diff --git a/.github/workflows/abipy-lint.yml b/.github/workflows/abipy-lint.yml deleted file mode 100644 index fefcb54d1..000000000 --- a/.github/workflows/abipy-lint.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: AbiPy linting - -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-latest - strategy: - max-parallel: 4 - matrix: - python-version: [3.6] - - steps: - - uses: actions/checkout@v1 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - - name: Lint with pycodestyle - run: | - pip install pycodestyle - pycodestyle abipy - #- name: Lint with mypy - # run: | - # pip install mypy - # mypy abipy - - name: Lint with flake8 - run: | - pip install flake8 - # stop the build if there are Python syntax errors or undefined names - flake8 --count --show-source --statistics abipy - # exit-zero treats all errors as warnings. - #flake8 --count --exit-zero --max-complexity=20 --statistics abipy - #- name: Lint with pylint - # run: | - # pip install pylint - # # stop the build if there are Python syntax errors or undefined names - # pylint --exit-zero abipy diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 000000000..48f292740 --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,88 @@ +name: Deploy documentation with GitHub Pages dependencies preinstalled + +on: + push: + branches: ["develop"] + workflow_dispatch: # enable manual workflow execution + +# Set permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + # prevent this action from running on forks + if: github.repository == 'abinit/abipy' + defaults: + run: + shell: bash -l {0} # enables conda/mamba env activation by reading bash profile + + strategy: + fail-fast: false + matrix: + config: + - os: ubuntu-latest + python: '3.11' + + runs-on: ubuntu-latest + env: + PMG_MAPI_KEY: ${{ secrets.PMG_MAPI_KEY }} + # This is used in the flow scripts to generate the graph with graphviz. + READTHEDOCS: 1 + + steps: + - name: Check out Abipy repo + uses: actions/checkout@v4 + + - name: Setup Pages + uses: actions/configure-pages@v3 + + - name: Set up Miniconda + uses: conda-incubator/setup-miniconda@v2 + with: + auto-update-conda: true + + - name: Installing abinit from conda-forge and abipy with python=${{ matrix.config.python }} + run: | + conda create -n abipy python=${{ matrix.config.python }} --yes + conda activate abipy + conda install abinit -c conda-forge --yes + mpirun -n 1 abinit --version + mpirun -n 1 abinit --build + pip install --editable . + mkdir -p $HOME/.abinit/abipy/ + cp abipy/data/managers/gh_manager.yml $HOME/.abinit/abipy/manager.yml + cp abipy/data/managers/gh_scheduler.yml $HOME/.abinit/abipy/scheduler.yml + # FIXME TEMPORARY HACK + #pip install git+https://github.com/gmatteo/pymatgen.git@master -U + + - name: Build docs with Sphinx + run: | + conda activate abipy + cd docs + source install.sh + make + + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: docs/_build/html/ # Important. Set to the website output dir + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..e958ac960 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,72 @@ +name: Run the Abipy test suite. + +on: + push: + branches: [develop, master] + paths-ignore: ["**/*.md", docs/**] + pull_request: + branches: [develop] + paths-ignore: ["**/*.md", docs/**] + workflow_dispatch: + workflow_call: # make this workflow reusable by release.yml + +permissions: + contents: read + +jobs: + test: + # prevent this action from running on forks + if: github.repository == 'abinit/abipy' + defaults: + run: + shell: bash -l {0} # enables conda/mamba env activation by reading bash profile + + strategy: + fail-fast: false + matrix: + config: + - os: ubuntu-latest + python: "3.11" + - os: ubuntu-latest + python: "3.12" + + runs-on: ${{ matrix.config.os }} + + env: + PMG_MAPI_KEY: ${{ secrets.PMG_MAPI_KEY }} + + steps: + - name: Checkout Abipy repo + uses: actions/checkout@v4 + + - name: Set up Miniconda + uses: conda-incubator/setup-miniconda@v2 + with: + auto-update-conda: true + + - name: Installing abinit from conda-forge and abipy with python=${{ matrix.config.python }} + run: | + conda create -n abipy python=${{ matrix.config.python }} --yes + conda activate abipy + conda install abinit -c conda-forge --yes + mpirun -n 1 abinit --version + mpirun -n 1 abinit --build + pip install -r requirements.txt + pip install -r requirements-optional.txt + pip install -r requirements-panel.txt + pip install --editable . + mkdir -p $HOME/.abinit/abipy/ + cp abipy/data/managers/gh_manager.yml $HOME/.abinit/abipy/manager.yml + cp abipy/data/managers/gh_scheduler.yml $HOME/.abinit/abipy/scheduler.yml + + - name: pytest + run: | + conda activate abipy + pip install -r requirements-tests.txt + pytest -v . + + - name: integration_tests + run: | + conda activate abipy + abicheck.py --with-flow + pytest -v abipy/integration_tests diff --git a/.gitignore b/.gitignore index af30b2900..fbc97cf65 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,9 @@ docs/flow_gallery # Pycharm .idea/ +# VSC +.vscode/ + # vim files *.swp *.swo diff --git a/.travis.yml b/.travis.yml index 2526353de..55eb24cd8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,17 +3,16 @@ language: python env: global: - - ABINIT_VERSION=8.10.1 + - ABINIT_VERSION=9.0.4 - ABIPY_PYTEST=yes + - ABIPY_SPHINX=no + - ABIPY_INSTALLER=pip + - ABIPY_COVERALLS=no - OPENBLAS_NUM_THREADS=1 - OMP_NUM_THREADS=1 matrix: include: - - os: linux - python: 3.6 - env: - - ABIPY_INSTALLER=pip ABIPY_PYTEST=no - os: linux python: 3.7 dist: xenial @@ -25,10 +24,15 @@ matrix: sudo: true env: - ABIPY_INSTALLER=conda ABIPY_SPHINX=yes -#- os: linux -# python: 3.8 -# env: -# - ABIPY_INSTALLER=conda ABIPY_PYTEST=no + - os: linux + python: 3.8 + env: + - ABIPY_INSTALLER=conda ABIPY_PYTEST=no + - os: linux + python: 3.9 + env: + - ABIPY_INSTALLER=pip ABIPY_SPHINX=yes ABIPY_COVERALLS=yes + install: #- set -ev # exit on first error, print each command @@ -55,7 +59,6 @@ install: conda uninstall -y pymatgen fi - - if [[ "${TRAVIS_PYTHON_VERSION}" == "2.7" ]]; then conda install mock; fi - pip install coverage>=4.4 -U --upgrade-strategy=eager # Mayavi (optional requirement) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 00ce8270e..f2f65fc27 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,4 +1,76 @@ -Release 0.8.0: xxxx-xx-xx +Release 0.9.8: + + * Support for python 3.12, scipy 1.14 and numpy 2.0 + * Compatibility with pymatgen v2024.9.10 + * Abipy can now read magmoms from the GSR file + * Workflows and post-processing tools for photoluminescence calculations. + * Additional tools for post-processing E-PH calculations. + +Release 0.9.6: + + * Version compatible with aiida-common-workflows. + +Release 0.9.5: + + * Force make_dte_inputs to consider the psp to be in LDA + * Fix ngfft issue when going to DTE + * Force DTE to overwrite nband and nbdbuf to number of VBs and 0 respectively + +Release 0.9.4: + + * pymatgen == 2023.7.17 is highly recommended. + +Release 0.9.3: + + * Require pymatgen >= 2023.3.23 + * Add ``ndivsm`` argument to PhononWork and EffMassLineWork to activate band + structure computation along k-path. + * Add new option to TaskManager (`limits_for_task_class`) to specify custom limits + depending on the name of the task class. See `abidoc.py manager` for syntax + * Deprecate `single` and `rapid` commands of abirun.py. + + +Release 0.9.2: + + * Require pymatgen >= 2022.0.14 + * Add abiview.py ifermi_fs + * G0W0WithQptdmFlow is deprecated and will be removed in v 0.9.3 + * Add abigui.py script + * Add abilab.abirobot function to create a Robot from a list of filepaths. + * Add plotly version of fatbands + * Support for dipquad and quadquad + +Release 0.9.1: + + * Add "-ew", "--expose-web", + * abiopen, abiview and abicomp now supports --plotly to produce plotly figures in the local browser + and --chart-studio to push the figure to the chart studio service. + Note that, at present, only DDB files support plotly. + * AbinitInput set_kpath and make_ebands_input now support negative values of ndivsm that + are interpreted as line_density following pymatgen conventions. + This option is the recommended one if the k-path contains two consecutive high symmetry k-points + that are very close as ndivsm > 0 may produce a very large number of wavevectors. + * Preliminary support for plotly plots (phonons). + * AbinitInputParser now can parse strings in the input file and read structure is the `structure:abivars` + syntax in used. + +Release 0.9.0: + + * Require pymatgen >= 2019.12.22 + * Integration with abinit 9.4.0 + * Support for py3.8 and py3.9 + * Converters for phonopy and tdep. + * Preliminary support for panel dashboards. + * Introduce ABIPY_TMPDIR environment variable to specify the workdir of the temporary tasks at runtime. + * Use last version of apscheduler. + * Minor bug fixes + * New tools for Phonon and EPH calculations. + * Note that this is the last AbiPy version supporting Abinit8. + AbiPy version 1.0 will start to take advantage of features and ameliorations introduced in Abinit9 + We will also take the opportunity to refactor the code base so backward incompatibe changes in the API + are expected in the next major version. + +Release 0.8.0: * Add abicheck.py --create-config option to install predefined yaml configuration files * Add support for NSCF calculations with meta-GGA. @@ -38,7 +110,7 @@ Release:0.3.0 2017-12-26 and ``flow-gallery`` with AbiPy flows are now automatically generated. * Add Shankland-Koelling-Wood Fourier interpolation scheme. -Release 0.2.0 <2017-03-10> +Release 0.2.0 2017-03-10 This is the first official release in which we have reached a relatively stable API and a well-defined interface with the netcdf files produced by Abinit. diff --git a/README.rst b/README.rst index fa468a098..8ec929b89 100644 --- a/README.rst +++ b/README.rst @@ -8,14 +8,14 @@ * - Package - |pypi-version| |download-with-anaconda| |supported-versions| * - Continuous Integration - - |travis-status| |coverage-status| + - |travis-status| |coverage-status| * - Documentation - - |docs-github| |launch-nbviewer| |launch-binder| + - |docs-github| |launch-nbviewer| |launch-binder| About ===== -AbiPy is a Python_ library to analyze the results produced by Abinit_, +AbiPy is a python library to analyze the results produced by Abinit_, an open-source program for the ab-initio calculations of the physical properties of materials within Density Functional Theory and Many-Body perturbation theory. It also provides tools to generate input files and workflows to automate @@ -24,11 +24,11 @@ AbiPy is interfaced with pymatgen_ and this allows users to benefit from the different tools and python objects available in the pymatgen ecosystem. The official documentation is hosted on `github pages `_. +Check out our `gallery of plotting scripts `_ +and the `gallery of AbiPy workflows `_. AbiPy can be used in conjunction with matplotlib_, pandas_, scipy_, seaborn_, ipython_ and jupyter_ notebooks thus providing a powerful and user-friendly environment for data analysis and visualization. -Check out our `gallery of plotting scripts `_ -and the `gallery of AbiPy workflows `_. To learn more about the integration between jupyter_ and AbiPy, visit `our collection of notebooks `_ @@ -39,25 +39,18 @@ The notebook will be opened in your browser after building. AbiPy is free to use. However, we also welcome your help to improve this library by making your own contributions. Please report any bugs and issues at AbiPy's `Github page `_. -.. important:: - - Note that the majority of the post-processing tools available in AbiPy require output files in - netcdf_ format so we **strongly** suggest to compile Abinit with netcdf support - (use ``--with-trio-flavor="netcdf"`` at configure time to activate the internal netcdf library, - to link Abinit against an external netcdf library please consult the configuration examples provided by abiconfig_). - - Links to talks ============== This section collects links to some of the talks given by the AbiPy developers. +* `The new features of AbiPy v0.9.1. 10th international ABINIT developer workshop, May 31 - June 4, 2021 `_ (New workflows, plotly interface, etc.) * `Automating ABINIT calculations with AbiPy. Boston MA, 3 March 2019 `_ (Introduction to AbiPy for newcomers). * `New features of AbiPy v0.7. Louvain-la-Neuve, Belgium, 20 May 2019 `_ (How to use the AbiPy command line interface in the terminal) -* `Automatize a DFT code: high-throughput workflows for Abinit +* `Automatize a DFT code: high-throughput workflows for Abinit `_ @@ -68,55 +61,47 @@ Stable version -------------- The version at the Python Package Index (PyPI) is always the latest stable release -that can be installed with:: +that can be installed in user mode with:: - pip install abipy + pip install abipy --user -Note that you may need to install pymatgen and other critical dependencies manually. +Note that you may need to install some optional dependencies manually. In this case, please consult the detailed installation instructions provided by the -`pymatgen howto `_ to install pymatgen +`pymatgen howto `_ to install pymatgen and then follow the instructions in `our howto `_. -The installation process is greatly simplified if you install the required -python packages through `Anaconda `_ (or conda). +The installation process is greatly simplified if you install the required +python packages through `Anaconda `_ (or conda). See `Installing conda`_ to install conda itself. We routinely use conda_ to test new developments with multiple Python versions and multiple virtual environments. -The anaconda distribution already provides the most critical dependencies (matplotlib_, scipy_, numpy_, netcdf4-python_) -in the form of pre-compiled packages that can be easily installed with e.g.:: - conda install numpy scipy netcdf4 +Create a new conda_ environment based on python 3.11 (let's call it ``abienv``) with:: -Create a new conda_ environment (let's call it ``abienv``) based on python3.6 with:: - - conda create --name abienv python=3.6 + conda create --name abienv python=3.11 and activate it with:: - source activate abienv + conda activate abienv You should see the name of the conda environment in the shell prompt. -Now add ``conda-forge``, and ``abinit`` to your conda channels with:: +Finally, install AbiPy with:: - conda config --add channels conda-forge - conda config --add channels abinit + conda install abipy -c conda-forge -These are the channels from which we will download pymatgen, abipy and abinit. - -Finally, install AbiPy from the abinit-channel_ with:: - - conda install abipy -c abinit +Please note that, at present, conda-forge does not provide executables Additional information on the steps required to install AbiPy with anaconda are available in the `anaconda howto `_. -We are also collaborating with the spack_ community -to provide packages for AbiPy and Abinit in order to facilitate the installation on large supercomputing centers. Developmental version --------------------- -Getting the developmental version of AbiPy is easy. +To install the developmental version of AbiPy with pip, use:: + + pip install git+https://github.com/abinit/abipy.git@develop + Clone the `github repository `_ with:: git clone https://github.com/abinit/abipy @@ -126,10 +111,9 @@ For pip, use:: pip install -r requirements.txt pip install -r requirements-optional.txt -If you are using conda_ (see `Installing conda`_ to install conda itself), create a new environment (``abienv``) -based on python3.6 with:: +If you are using conda_ (see `Installing conda`_ to install conda itself), create a new environment (``abienv``) with:: - conda create -n abienv python=3.6 + conda create -n abienv python=3.11 source activate abienv Add ``conda-forge``, and ``abinit`` to your channels with:: @@ -151,33 +135,12 @@ or alternately:: python setup.py develop -to install the package in developmental mode. +to install the package in developmental mode. This is the recommended approach, especially if you are planning to implement new features. -Note, however, that the developmental version of AbiPy is kept in sync with the -developmental version of pymatgen thus ```python setup.py develop``` may -try to download new versions from the PyPi portal and then fail with e.g. the error message:: - - ... - processing dependencies for abipy==0.6.0.dev0 - error: scipy 1.0.0 is installed but scipy>=1.0.1 is required by {'pymatgen'} - -due to inconsistent dependencies. -To solve the problem, use conda to update scipy to a version >= 1.0.1 with:: - - conda install "scipy>=1.0.1" - -then issue again python setup.py develop. If this fails, supposing you were upgrading abipy inside an already existing conda environment, try to restart by creating from scratch a fresh conda environment, see above. - -Use:: - - conda info pymatgen - -to display information about the installed version of pymatgen. - Also note that the BLAS/Lapack libraries provided by conda have multithreading support activated by default. -Each process will try to use all of the cores on your machine, which quickly overloads things -if there are multiple processes running. +Each process will try to use all of the cores on your machine, which quickly overloads things +if there are multiple processes running. (Also, this is a shared machine, so it is just rude behavior in general). To disable multithreading, add these lines to your ~/.bash_profile:: @@ -193,7 +156,7 @@ To run the suite of unit tests, make sure you have pytest_ installed and then ty pytest -in the AbiPy root directory. A quicker check might be obtained with:: +in the AbiPy root directory. A quicker check might be obtained with:: pytest abipy/core/tests -v @@ -201,10 +164,10 @@ Unit tests require ``scripttest`` that can be installed with:: pip install scripttest -Two tests rely on the availability of a +Two tests rely on the availability of a `pymatgen PMG_MAPI_KEY ` in ~/.pmgrc.yaml. -Note that several unit tests check the integration between AbiPy and Abinit. +Note that several unit tests check the integration between AbiPy and Abinit. In order to run the tests, you will need a working set of Abinit executables and a ``manager.yml`` configuration file. Contributing to AbiPy is relatively easy. @@ -218,18 +181,16 @@ to the latest stable release. Installing Abinit ================= -One of the big advantages of conda over pip is that conda can also install -libraries and executables written in Fortran. +One of the big advantages of conda over pip is that conda can also install libraries and executables written in Fortran. A pre-compiled sequential version of Abinit for Linux and OSx can be installed directly from the -abinit-channel_ with:: +conda-forge channel with:: - conda install abinit -c abinit + conda install abinit -c conda-forge Otherwise, follow the usual abinit installation instructions, and make sure abinit can be run with the command:: abinit --version - Configuration files for Abipy ============================= @@ -237,13 +198,13 @@ In order to run the Abipy tests, you will need a ``manager.yml`` configuration f For a detailed description of the syntax used in this configuration file please consult the `TaskManager documentation `_. -At this stage, for the purpose of checking the installation, you might +At this stage, for the purpose of checking the installation, you might take the ``shell_nompi_manager.yml`` file from the ``abipy/data/managers`` directory of this repository, and copy it with new name ``manager.yml`` to your `$HOME/.abinit/abipy` directory. Open this file and make sure that the ``pre_run`` section contains the shell commands needed to setup the environment before launching Abinit (e.g. Abinit is in $PATH), unless it is available from the environment (e.g. conda). -To complete the configuration files for Abipy, you might also copy the ``simple_scheduler.yml`` file from the same directory, +To complete the configuration files for Abipy, you might also copy the ``simple_scheduler.yml`` file from the same directory, and copy it with name ``scheduler.yml``. Modifications are needed if you are developer. Checking the installation @@ -274,12 +235,12 @@ To perform a basic validation of the build, execute:: Abinit should echo miscellaneous information, starting with:: - DATA TYPE INFORMATION: - REAL: Data type name: REAL(DP) + DATA TYPE INFORMATION: + REAL: Data type name: REAL(DP) Kind value: 8 Precision: 15 -and ending with:: +and ending with:: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Default optimizations: @@ -334,8 +295,7 @@ If the script fails with the error message:: Abinit executable does not support netcdf Abipy requires Abinit version >= 8.0.8 but got 0.0.0 -it means that your environment is not property configured or that there's a problem -with the binary executable. +it means that your environment is not property configured or that there's a problem with the binary executable. In this case, look at the files produced in the temporary directory of the flow. The script reports the name of the directory, something like:: @@ -344,7 +304,7 @@ The script reports the name of the directory, something like:: Check the `job.sh` script for possible typos, then search for possible error messages in `run.err`. The last test consists in executing a small calculation with AbiPy and Abinit. -Inside the shell, execute:: +Inside the terminal, execute:: abicheck.py --with-flow @@ -410,8 +370,9 @@ The following scripts can be invoked directly from the terminal: * ``abirun.py`` Execute AbiPy flow from terminal. * ``abidoc.py`` Document Abinit input variables and Abipy configuration files. * ``abinp.py`` Build input files (simplified interface for the AbiPy factory functions). +* ``abipsp.py`` Download pseudopotential tables from the PseudoDojo. -Use ``SCRIPT --help`` to get the list of supported commands and +Use ``SCRIPT --help`` to get the list of supported commands and ``SCRIPT COMMAND --help`` to get the documentation for ``COMMAND``. For further information, please consult the `scripts docs `_ section. @@ -424,7 +385,7 @@ A brief install guide, in case you have not yet used conda ... For a more extens `Anaconda Howto `_. Download the `miniconda installer `_. -Select python3.6 and the version corresponding to your operating system. +Select the version corresponding to your operating system. As an example, if you are a Linux user, download and install `miniconda` on your local machine with:: @@ -448,73 +409,6 @@ Source your ``.bashrc`` file to activate the changes done by ``miniconda`` to yo .. _troubleshooting: -Troubleshooting -=============== - -GLIBC error ------------ - -The python interpreter may raise the following exception when importing one of the pymatgen modules:: - - from pymatgen.util.coord import pbc_shortest_vectors - File "/python3.6/site-packages/pymatgen/util/coord.py", line 11, in - from . import coord_cython as cuc - ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /python3.6/site-packages/pymatgen/util/coord_cython.cpython-36m-x86_64-linux-gnu.so)` - -This means that the pre-compiled version of pymatgen is not compatible with the GLIBC version available on your machine. -To solve the problem, we suggest to build and install pymatgen from source using the local version of GLIBC and the gcc compiler. -In the example below, we use a conda environment to install most of the dependencies with the exception of pymatgen and abipy. - -Let's start by creating a conda environment with:: - - conda create -n glibc_env python=3.6 - source activate glibc_env - conda config --add channels conda-forge - -Use pip to install spglib:: - - pip install spglib - -and try to ``import spglib`` inside the python terminal. - -Download the pymatgen repository from github with:: - - git clone https://github.com/materialsproject/pymatgen.git - cd pymatgen - -If git is not installed, use ``conda install git`` - -Now use conda to install the pymatgen requirements listed in ``requirements.txt`` -but before that make sure that ``gcc`` is in ``$PATH``. -If you are working on a cluster, you may want to issue:: - - module purge - -to avoid compiling C code with the intel compiler (it's possible to use ``icc`` but ``gcc`` is less problematic). - -Remove the line:: - - enum34==1.1.6; python_version < '3.4' - -from ``requirements.txt`` as this syntax is not supported by conda then issue:: - - conda install -y --file requirements.txt - -At this point, we can build pymatgen and the C extensions:: - - python setup.py install - -then ``cd`` to another directory (important) and test the build inside the python terminal with:: - - import spglib - import pymatgen - -Finally, we can install Abipy from source with:: - - git clone https://github.com/abinit/abipy.git - cd abipy && conda install -y --file ./requirements.txt - - License ======= @@ -551,11 +445,11 @@ AbiPy is released under the GNU GPL license. For more details see the LICENSE fi :alt: Coverage status :target: https://coveralls.io/github/abinit/abipy?branch=develop -.. |download-with-anaconda| image:: https://anaconda.org/abinit/abipy/badges/installer/conda.svg +.. |download-with-anaconda| image:: https://anaconda.org/abinit/abipy/badges/installer/conda.svg :alt: Download with Anaconda - :target: https://conda.anaconda.org/abinit + :target: https://anaconda.org/conda-forge/abinit -.. |launch-binder| image:: https://mybinder.org/badge.svg +.. |launch-binder| image:: https://mybinder.org/badge.svg :alt: Launch binder :target: https://mybinder.org/v2/gh/abinit/abipy/develop diff --git a/abipy/__init__.py b/abipy/__init__.py index bb295d185..2508dcb66 100644 --- a/abipy/__init__.py +++ b/abipy/__init__.py @@ -1,5 +1,4 @@ """abipy is a set of tools for the analysis of ABINIT results.""" -from __future__ import absolute_import #----------------------------------------------------------------------------- # Setup everything diff --git a/abipy/abilab.py b/abipy/abilab.py index 6f5a37635..b7387e2f6 100644 --- a/abipy/abilab.py +++ b/abipy/abilab.py @@ -1,13 +1,17 @@ """ This module gathers the most important classes and helper functions used for scripting. """ +import sys import os import collections +from itertools import chain +from typing import ClassVar, Optional, List, Union +from tabulate import tabulate + #################### ### Monty import ### #################### -from monty.os.path import which from monty.termcolor import cprint ####################### @@ -24,10 +28,9 @@ from abipy.flowtk import Pseudo, PseudoTable, Mrgscr, Mrgddb, Flow, Work, TaskManager, AbinitBuild, flow_main from abipy.core.release import __version__, min_abinit_version from abipy.core.globals import enable_notebook, in_notebook, disable_notebook -from abipy.core import restapi from abipy.core.structure import (Lattice, Structure, StructureModifier, dataframes_from_structures, - mp_match_structure, mp_search, cod_search) -from abipy.core.mixins import CubeFile + mp_match_structure, mp_search, cod_search, display_structure) +from abipy.core.mixins import TextFile, JsonFile, CubeFile from abipy.core.func1d import Function1D from abipy.core.kpoints import set_atol_kdiff from abipy.abio.robots import Robot @@ -36,14 +39,15 @@ from abipy.abio.outputs import AbinitLogFile, AbinitOutputFile, OutNcFile, AboRobot from abipy.tools.printing import print_dataframe from abipy.tools.notebooks import print_source, print_doc -from abipy.tools.plotting import get_ax_fig_plt, get_axarray_fig_plt, get_ax3d_fig_plt +from abipy.tools.serialization import mjson_load, mjson_loads, mjson_write from abipy.abio.factories import * from abipy.electrons.ebands import (ElectronBands, ElectronBandsPlotter, ElectronDos, ElectronDosPlotter, - dataframe_from_ebands) + dataframe_from_ebands, EdosFile) from abipy.electrons.gsr import GsrFile, GsrRobot from abipy.electrons.eskw import EskwFile -from abipy.electrons.psps import PspsFile +from abipy.electrons.psps import PspsFile, PspsRobot from abipy.electrons.gw import SigresFile, SigresRobot +from abipy.electrons.gwr import GwrFile from abipy.electrons.bse import MdfFile, MdfRobot from abipy.electrons.scissors import ScissorsBuilder from abipy.electrons.scr import ScrFile @@ -61,15 +65,28 @@ from abipy.waves import WfkFile from abipy.eph.a2f import A2fFile, A2fRobot from abipy.eph.sigeph import SigEPhFile, SigEPhRobot +from abipy.eph.cumulant import CumulantEPhFile +from abipy.eph.varpeq import VarpeqFile from abipy.eph.eph_plotter import EphPlotter from abipy.eph.v1sym import V1symFile from abipy.eph.gkq import GkqFile, GkqRobot from abipy.eph.v1qnu import V1qnuFile from abipy.eph.v1qavg import V1qAvgFile +from abipy.eph.rta import RtaFile, RtaRobot from abipy.eph.transportfile import TransportFile +from abipy.eph.gstore import GstoreFile +from abipy.eph.gpath import GpathFile from abipy.wannier90 import WoutFile, AbiwanFile, AbiwanRobot from abipy.electrons.lobster import CoxpFile, ICoxpFile, LobsterDoscarFile, LobsterInput, LobsterAnalyzer +from abipy.dynamics.cpx import EvpFile +#try: +# from abipy.ml.aseml import AseMdLog +#except ImportError: +# AseMdLog = None + +#from abipy.electrons.abitk import ZinvConvFile, TetraTestFile + # Abinit Documentation. from abipy.abio.abivars_db import get_abinit_variables, abinit_help, docvar @@ -82,27 +99,51 @@ def _straceback(): # Abinit text files. Use OrderedDict for nice output in show_abiopen_exc2class. ext2file = collections.OrderedDict([ + # ABINIT files (".abi", AbinitInputFile), (".in", AbinitInputFile), (".abo", AbinitOutputFile), (".out", AbinitOutputFile), (".log", AbinitLogFile), (".cif", Structure), - ("POSCAR", Structure), + (".abivars", Structure), + (".ucell", Structure), (".cssr", Structure), + (".json", JsonFile), + (".py", TextFile), + (".sh", TextFile), + (".stdin", TextFile), + (".stderr", TextFile), + (".err", TextFile), + (".files", TextFile), + (".stdout", TextFile), (".cube", CubeFile), ("anaddb.nc", AnaddbNcFile), ("DEN", DensityFortranFile), + (".wout", WoutFile), + ("EDOS", EdosFile), + # Pseudos (".psp8", Pseudo), (".pspnc", Pseudo), (".fhi", Pseudo), ("JTH.xml", Pseudo), - (".wout", WoutFile), + (".upf", Pseudo), # Lobster files. ("COHPCAR.lobster", CoxpFile), ("COOPCAR.lobster", CoxpFile), ("ICOHPLIST.lobster", ICoxpFile), ("DOSCAR.lobster", LobsterDoscarFile), + # Vasp files. + ("POSCAR", Structure), + (".vasp", Structure), + # ASE files + (".xyz", Structure), + #("ZINVCONV.nc", ZinvConvFile), + #("TETRATEST.nc", TetraTestFile), + # QE/CP files + (".evp", EvpFile), + # ASE files produced by Abipy. + #("md.aselog", AseMdLog), ]) # Abinit files require a special treatment. @@ -123,6 +164,7 @@ def _straceback(): ("PHDOS.nc", PhdosFile), ("SCR.nc", ScrFile), ("SIGRES.nc", SigresFile), + ("GWR.nc", GwrFile), ("GRUNS.nc", GrunsNcFile), ("MDF.nc", MdfFile), ("FATBANDS.nc", FatBandsFile), @@ -131,12 +173,17 @@ def _straceback(): ("OPTIC.nc", OpticNcFile), ("A2F.nc", A2fFile), ("SIGEPH.nc", SigEPhFile), + ("GSTORE.nc", GstoreFile), + ("GPATH.nc", GpathFile), ("TRANSPORT.nc",TransportFile), + ("RTA.nc",RtaFile), ("V1SYM.nc", V1symFile), ("GKQ.nc", GkqFile), ("V1QNU.nc", V1qnuFile), ("V1QAVG.nc", V1qAvgFile), ("ABIWAN.nc", AbiwanFile), + ("EPH_CUMULANT.nc", CumulantEPhFile), + ("VARPEQ.nc", VarpeqFile), ]) @@ -144,17 +191,41 @@ def abiopen_ext2class_table(): """ Print the association table between file extensions and File classes. """ - from itertools import chain - from tabulate import tabulate table = [] - for ext, cls in chain(ext2file.items(), abiext2ncfile.items()): table.append((ext, str(cls))) return tabulate(table, headers=["Extension", "Class"]) -def abifile_subclass_from_filename(filename): +def extcls_supporting_panel(as_table=True, **tabulate_kwargs): + """ + Return list of (ext, cls) tuples where ext is the file extension supporting the `get_panel` method + i.e files that can be integrated with the panel dashboard and `cls` the python class associated to it. + """ + items = [] + + for ext, cls in chain(ext2file.items(), abiext2ncfile.items()): + if hasattr(cls, "get_panel"): items.append((ext, str(cls))) + + if not as_table: return items + + return tabulate(items, headers=["Extension", "Class"], **tabulate_kwargs) + + +def abipanel(**kwargs): + """ + Activate panel extensions used by AbiPy. Return panel module. + """ + try: + from abipy.panels.core import abipanel + return abipanel(**kwargs) + except ImportError as exc: + cprint("use `conda install panel` or `pip install panel` to install the python package.", "red") + raise exc + + +def abifile_subclass_from_filename(filename: str) -> ClassVar: """ Returns the appropriate class associated to the given filename. """ @@ -174,12 +245,15 @@ def abifile_subclass_from_filename(filename): for ext, cls in abiext2ncfile.items(): if filename.endswith(ext): return cls - msg = ("No class has been registered for file:\n\t%s\n\nFile extensions supported:\n\n%s" % - (filename, abiopen_ext2class_table())) + msg = f""" +abiopen cannot handle this file as no phython class has been registered for file:\n`{filename}`\n\n +This is the list of file extensions supported by abiopen:\n\n +{abiopen_ext2class_table()} +""" raise ValueError(msg) -def dir2abifiles(top, recurse=True): +def dir2abifiles(top: str, recurse: bool = True) -> dict: """ Analyze the filesystem starting from directory `top` and return an ordered dictionary mapping the directory name to the list @@ -203,7 +277,7 @@ def dir2abifiles(top, recurse=True): return collections.OrderedDict([(k, dl[k]) for k in sorted(dl.keys())]) -def isabifile(filepath): +def isabifile(filepath: str) -> bool: """ Return True if `filepath` can be opened with ``abiopen``. """ @@ -214,7 +288,7 @@ def isabifile(filepath): return False -def abiopen(filepath): +def abiopen(filepath: str): """ Factory function that opens any file supported by abipy. File type is detected from the extension @@ -251,70 +325,63 @@ def abiopen(filepath): # Assume Abinit log file. return AbinitLogFile.from_file(filepath) + if os.path.basename(filepath).endswith("phonopy_params.yaml"): + # Handle phonopy object. + import phonopy + return phonopy.load(filepath) + cls = abifile_subclass_from_filename(filepath) return cls.from_file(filepath) -def display_structure(obj, **kwargs): +def abirobot(filepaths: Union[str, List[str]]) -> Robot: """ - Use Jsmol to display a structure in the jupyter notebook. - Requires `nbjsmol` notebook extension installed on the local machine. - Install it with `pip install nbjsmol`. See also https://github.com/gmatteo/nbjsmol. + Factory function to create and return a Robot subclass from a list of filenames + The Robot subclass is detected from the extension of the first file hence + all files are assumed to have the same extension. Args: - obj: Structure object or file with a structure or python object with a `structure` attribute. - kwargs: Keyword arguments passed to `nbjsmol_display` - """ - try: - from nbjsmol import nbjsmol_display - except ImportError as exc: - raise ImportError(str(exc) + - "\ndisplay structure requires nbjsmol package\n." - "Install it with `pip install nbjsmol.`\n" - "See also https://github.com/gmatteo/nbjsmol.") - - # Cast to structure, get string with cif data and pass it to nbjsmol. - structure = Structure.as_structure(obj) - return nbjsmol_display(structure.to(fmt="cif"), ext=".cif", **kwargs) - - -def mjson_load(filepath, **kwargs): - """ - Read JSON file in MSONable format with MontyDecoder. Return dict with python objects. + filepaths: List of strings with the filename. """ - import json - from monty.json import MontyDecoder - with open(filepath, "rt") as fh: - return json.load(fh, cls=MontyDecoder, **kwargs) - + from monty.string import list_strings + filepaths = list_strings(filepaths) + path = filepaths[0] + idx = path.rfind("_") + if idx == -1: + raise ValueError("Cannot find `_` in the first string") + ext = path[idx+1:] -def mjson_loads(string, **kwargs): - """ - Read JSON string in MSONable format with MontyDecoder. Return dict with python objects. - """ - import json - from monty.json import MontyDecoder - return json.loads(string, cls=MontyDecoder, **kwargs) + cls = Robot.class_for_ext(ext) + robot = cls.from_files(filepaths) + return robot -def mjson_write(d, filepath, **kwargs): +def software_stack(as_dataframe: bool = False): """ - Write dictionary d to filepath in JSON format using MontyDecoder - """ - import json - from monty.json import MontyEncoder - with open(filepath, "wt") as fh: - json.dump(d, fh, cls=MontyEncoder, **kwargs) - - -def software_stack(): - """ - Import all the hard dependencies. Returns ordered dict: package --> string with version info. + Import all the hard dependencies and some optional packages. + Returns ordered dict: package --> string with version info or pandas dataframe if as_dataframe. """ import platform system, node, release, version, machine, processor = platform.uname() # These packages are required - import numpy, scipy, netCDF4, pymatgen, apscheduler, pydispatch, yaml + import numpy, scipy, netCDF4, pymatgen, apscheduler, pydispatch, plotly + import ruamel.yaml as yaml + + from importlib import import_module + + def get_version(pkg_name): + """Return version of package from string.""" + try: + mod = import_module(pkg_name) + return mod.__version__ + except Exception: + return None + + try: + from pymatgen.core import __version__ as pmg_version + #from pymatgen.settings import __version__ as pmg_version + except AttributeError: + pmg_version = pymatgen.__version__ d = collections.OrderedDict([ ("system", system), @@ -324,21 +391,23 @@ def software_stack(): ("netCDF4", netCDF4.__version__), ("apscheduler", apscheduler.version), ("pydispatch", pydispatch.__version__), - ("yaml", yaml.__version__), - ("pymatgen", pymatgen.__version__), + ("ruamel.yaml", yaml.__version__), + ("boken", get_version("bokeh")), + ("panel", get_version("panel")), + ("plotly", get_version("plotly")), + ("ase", get_version("ase")), + ("phonopy", get_version("phonopy")), + ("monty", get_version("monty")), + ("pymatgen", pmg_version), + ("abipy", __version__), ]) - # Optional but strongly suggested. - #try: - # import matplotlib - # d["matplotlib"] = "%s (backend: %s)" % (matplotlib.__version__, matplotlib.get_backend()) - #except ImportError: - # pass - - return d + if not as_dataframe: return d + import pandas as pd + return pd.Series(data=d, name="version").to_frame().rename_axis("Package") -def abicheck(verbose=0): +def abicheck(verbose: int = 0) -> str: """ This function tests if the most important ABINIT executables can be found in $PATH and whether the python modules needed @@ -355,7 +424,18 @@ def abicheck(verbose=0): app(_straceback()) # Get info on the Abinit build. - from abipy.core.testing import cmp_version + # This to avoid having to depend on pytest. + #from abipy.core.testing import cmp_version + def cmp_version(this: str, other: str, op: str = ">=") -> bool: + """ + Compare two version strings with the given operator ``op`` + >>> assert cmp_version("1.1.1", "1.1.0") and not cmp_version("1.1.1", "1.1.0", op="==") + """ + from packaging.version import parse as parse_version + from monty.operator import operator_from_str + op = operator_from_str(op) + return op(parse_version(this), parse_version(other)) + from abipy.flowtk import PyFlowScheduler if manager is not None: @@ -375,7 +455,6 @@ def abicheck(verbose=0): except Exception as exc: app(_straceback()) - from tabulate import tabulate try: d = software_stack() cprint("Installed packages:", color="blue") @@ -384,10 +463,15 @@ def abicheck(verbose=0): except ImportError: app(_straceback()) + import pprint + shell_vars = [os.environ.get(vname, "") for vname in ("PATH", "LD_LIBRARY_PATH", "TMPDIR")] + print("Important Shell Variables:") + pprint.pprint(shell_vars) + return "\n".join(err_lines) -def install_config_files(workdir=None, force_reinstall=False): +def install_config_files(workdir: Optional[str] = None, force_reinstall: Optional[bool] = False): """ Install pre-defined configuration files for the TaskManager and the Scheduler in the workdir directory. @@ -468,7 +552,7 @@ def install_config_files(workdir=None, force_reinstall=False): num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB """ # Write configuration files. @@ -496,7 +580,7 @@ def install_config_files(workdir=None, force_reinstall=False): return 0 -def abipy_logo1(): +def abipy_logo1() -> str: """http://www.text-image.com/convert/pic2ascii.cgi""" return r""" `:- -:` @@ -514,7 +598,7 @@ def abipy_logo1(): """ -def abipy_logo2(): +def abipy_logo2() -> str: """http://www.text-image.com/convert/pic2ascii.cgi""" return r""" MMMMMMMMMMMMMMMMNhdMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdhmMMMMMMMMMMMMMMM @@ -532,7 +616,7 @@ def abipy_logo2(): """ -def abipy_logo3(): +def abipy_logo3() -> str: """http://www.text-image.com/convert/pic2ascii.cgi""" return r"""\ `-. `--` @@ -545,4 +629,3 @@ def abipy_logo3(): ` ..` `:- :+ /: --` `-` ` `.` ..` """ - diff --git a/abipy/abio/abivar_database/README.md b/abipy/abio/abivar_database/README.md index 6767ebbd7..3a441c811 100644 --- a/abipy/abio/abivar_database/README.md +++ b/abipy/abio/abivar_database/README.md @@ -1,6 +1,11 @@ -To update the python modules using the more recent version available in the Abinit repository use vimdiff: +To update the python modules using the more recent version available in the Abinit repository +and use eg. vimdiff: - vimdiff ABINIT_REPO/abimkdocs/variables_abinit.py variables_abinit.py + vimdiff $ABINIT_REPO/abimkdocs/variables_abinit.py variables_abinit.py -and patch the file manually! +to patch the file manually! Do not change the initial part of the module since it's needed by AbiPy. + +To automate the process, use: + + invoke update-vars $ABINIT_REPO/ diff --git a/abipy/abio/abivar_database/variables.py b/abipy/abio/abivar_database/variables.py index 4e1f90f9f..3deb6cea0 100644 --- a/abipy/abio/abivar_database/variables.py +++ b/abipy/abio/abivar_database/variables.py @@ -326,7 +326,7 @@ def __init__(self, self.text = my_unicode(text) errors = [] - for a in ("abivarname", "varset", "vartype", "topics", "dimensions", "text"): + for a in ("abivarname", "varset", "vartype", "topics", "dimensions", "text", "added_in_version"): if getattr(self, a) is None: errors.append("attribute %s is mandatory" % a) if errors: diff --git a/abipy/abio/abivar_database/variables_abinit.py b/abipy/abio/abivar_database/variables_abinit.py index a0d674eef..6bc7f5a4b 100644 --- a/abipy/abio/abivar_database/variables_abinit.py +++ b/abipy/abio/abivar_database/variables_abinit.py @@ -16,8 +16,9 @@ dimensions="scalar", defaultval=0, mnemonics="ACCURACY", + added_in_version="before_v9", text=r""" -Allows to tune the accuracy of a calculation by setting automatically the +Allows to tune the accuracy of a ground-state or DFPT calculation [[optdriver]]=0 or 1, by setting automatically the variables according to the following table: accuracy | 1 | 2 | 3 | 4 | 5 | 6 @@ -41,15 +42,19 @@ [[prtden]] | 0 | 0 | 1 | 1 | 1 | 1 -[[accuracy]] = 4 corresponds to the default tuning of ABINIT. It is already a very accurate tuning. +*accuracy* = 4 corresponds to the default tuning of ABINIT. It is already a very accurate tuning. For a parallel calculation, [[timopt]] is enforced to be 0. E_min, E_med and E_max may be read from the pseudopotential file (available only for XML PAW atomic data files). If E_min, E_med and E_max are not given in the pseudopotential file, [[ecut]] must be given in the input file and E_max=E_med=E_max=ecut. -If the user wants to modify one of the input variable automatically tuned by [[accuracy]], +If the user wants to modify one of the input variable automatically tuned by *accuracy*, they must put it in the input file. The other input variables automatically tuned -by [[accuracy]] will not be affected. -[[accuracy]] = 0 means that this input variable is deactivated. +by *accuracy* will not be affected. +*accuracy* = 0 means that this input variable is deactivated. + +For the other values of [[optdriver]], many of the above input variables have no meaning, +so the accuracy has to be tuned by the user (e.g. for GW calculations, perform convergence studies +with respect to [[ecuteps]] and other relevant input variables). """, ), @@ -63,15 +68,16 @@ mnemonics="CELL lattice vector scaling", characteristics=['[[EVOLVING]]', '[[LENGTH]]'], commentdims="represented internally as acell(3,[[nimage]])", + added_in_version="before_v9", text=r""" -Gives the length scales by which dimensionless primitive translations (in -[[rprim]]) are to be multiplied. By default, given in Bohr atomic units (1 +Gives the length scales by which dimensionless primitive translations ([[rprim]]) +are to be multiplied. By default, given in Bohr atomic units (1 Bohr=0.5291772108 Angstroms), although Angstrom can be specified, if -preferred, since [[acell]] has the '[[LENGTH]]' characteristics. See further -description of [[acell]] related to the [[rprim]] input variable, the +preferred, since *acell* has the [[LENGTH]] characteristics. See further +description of *acell* related to the [[rprim]] input variable, the [[scalecart]] input variable, and the associated internal [[rprimd]] input variable. -Note that [[acell]] is NOT the length of the conventional orthogonal basis +Note that *acell* is **NOT** the length of the conventional orthogonal basis vectors, but the scaling factors of the primitive vectors. Use [[scalecart]] to scale the cartesian coordinates. """, @@ -86,6 +92,7 @@ defaultval=0, mnemonics="ADiabatic Path-Integral Molecular Dynamics", requires="[[imgmov]] == 9 or [[imgmov]] == 13", + added_in_version="before_v9", text=r""" Controls whether adiabatic Path-Integral Molecular Dynamics is performed or not. The corresponding adiabaticity parameter is given by [[adpimd_gamma]]. @@ -93,10 +100,12 @@ If equal to 0, no adiabatic Path-Integral Molecular Dynamics (standard PIMD) is performed. If equal to 1, adiabatic Path-Integral Molecular Dynamics is activated. Only relevant with [[pitransform]] = 1 (normal mode transformation). In that case, + - the mass associated with the zero-frequency mode is the true mass [[amu]], - the mass associated to the other higher frequency modes of the polymer chains is equal to the normal mode mass divided by [[adpimd_gamma]] (adiabaticity parameter), - the equation of motion on the zero-frequency mode is not thermostated. + NOT YET USABLE """, ), @@ -110,6 +119,7 @@ defaultval=1, mnemonics="ADiabatic Path-Integral Molecular Dynamics: GAMMA factor", requires="[[adpimd]] == 1 and [[imgmov]] in [9,13]", + added_in_version="before_v9", text=r""" Adiabaticity parameter to be used in adiabatic Path-Integral Molecular Dynamics. NOT YET USABLE @@ -124,6 +134,7 @@ dimensions=['[[ntypalch]]'], defaultval=MultipleValue(number='[[ntypalch]]', value=1), mnemonics="ALGorithm for generating ALCHemical pseudopotentials", + added_in_version="before_v9", text=r""" Used for the generation of alchemical pseudopotentials, that is, when [[ntypalch]] is non-zero. @@ -131,7 +142,7 @@ Give the algorithm to be used to generate the [[ntypalch]] alchemical potentials from the different [[npspalch]] pseudopotentials dedicated to this use. -Presently, [[algalch]] can only have the value 1, that is: +Presently, **algalch** can only have the value 1, that is: * the local potentials are mixed, thanks to the [[mixalch]] mixing coefficients * the form factors of the non-local projectors are all preserved, @@ -159,7 +170,8 @@ dimensions=['[[ntypat]]'], mnemonics="Atomic Mass Units", characteristics=['[[EVOLVING]]'], - commentdefault="provided by a database of atomic masses.", + commentdefault="Defaults provided by a database of atomic masses.", + added_in_version="before_v9", text=r""" Gives the masses in atomic mass units for each kind of atom in the input cell. These masses are used in performing molecular dynamical atomic motion if @@ -182,8 +194,8 @@ For alchemical pseudoatoms, the masses of the constituents atoms are mixed, according to the alchemical mixing coefficients [[mixalch]] -In most cases, the use of [[amu]] will be as a static (non-evolving) variable. -However, the possibility to have different values of [[amu]] for different +In most cases, the use of *amu* will be as a static (non-evolving) variable. +However, the possibility to have different values of *amu* for different images has been coded. A population of cells with different atomic characteristics can thus be considered, and can be made to evolve, e.g. with a genetic algorithm (not coded in v7.0.0 though). @@ -199,31 +211,32 @@ mnemonics="ANGles in DEGrees", characteristics=['[[INPUT_ONLY]]'], commentdefault="deduced from '[[rprim]]'", + added_in_version="before_v9", text=r""" Gives the angles between directions of primitive vectors of the unit cell (in -degrees), as an alternative to the input array [[rprim]]. Will be used to set +degrees), as an **alternative** to the input array [[rprim]]. Will be used to set up [[rprim]], that, together with the array [[acell]], will be used to define the primitive vectors. - * [[angdeg]](1) is the angle between the 2nd and 3rd vectors, - * [[angdeg]](2) is the angle between the 1st and 3rd vectors, - * [[angdeg]](3) is the angle between the 1st and 2nd vectors, + * *angdeg(1)* is the angle between the 2nd and 3rd vectors, + * *angdeg(2)* is the angle between the 1st and 3rd vectors, + * *angdeg(3)* is the angle between the 1st and 2nd vectors, If the three angles are equal within 1.0d-12 (except if they are exactly 90 degrees), the three primitive vectors are chosen so that the trigonal symmetry that exchange them is along the z cartesian axis: - R1=( a, 0,c) - R2=(-a/2, sqrt(3)/2*a,c) - R3=(-a/2,-sqrt(3)/2*a,c) + R1 = ( a, 0, c) + R2 = (-a/2, sqrt(3)/2*a, c) + R3 = (-a/2, -sqrt(3)/2*a, c) -where a 2 +c 2 =1.0d0 +where a 2 + c 2 = 1.0 If the angles are not all equal (or if they are all 90 degrees), one will have the following generic form: - * R1=(1,0,0) - * R2=(a,b,0) - * R3=(c,d,e) + * R1 = (1, 0, 0) + * R2 = (a, b, 0) + * R3 = (c, d, e) where each of the vectors is normalized, and form the desired angles with the others. """, @@ -231,15 +244,28 @@ Variable( abivarname="asr", - varset="eph", + varset="dfpt", vartype="integer", - topics=['DFPT_useful'], + topics=['DFPT_useful','Phonons_basic'], dimensions="scalar", defaultval=1, mnemonics="Acoustic Sum Rule", + added_in_version="before_v9", text=r""" -Govern the imposition of the Acoustic Sum Rule (ASR) in phonon calculations. -Same meaning as the corresponding anaddb variable. +Set the treatment of the Acoustic Sum Rule (ASR) in phonon calculations in the ABINIT code. +Same values as the corresponding ANADDB variable [[asr@anaddb]]. Please switch to this description. + +Using anaddb is indeed the recommended approach if you want to analyze the breaking of the sum rules. +Running different DFPT calculations from scratch just to change [[asr]] is indeed a waste of time as +you can compute the DDB only once and then use anaddb. + +Anyhow, this input variable is used in different contexts in ABINIT, in addition of being used in ANADDB : +[[optdriver]]=1 (phonon calculations), [[optdriver]]=7 (electron-phonon calculations) and +[[optdriver]]=10 (longwave calculations). +For [[optdriver]]=1, it does not modify the self-consistent calculations, neither the DDB generation, but only the echo in the main output file +of the dynamical matrix, and the subsequent echo of the phonon frequencies at Gamma, TO and LO parts. + +See also the variables [[chneut]] and [[chneut@anaddb]], that govern the imposition of the charge neutrality sum rule. """, ), @@ -253,6 +279,7 @@ mnemonics="ATomic potential (V) energy SHIFTs", characteristics=['[[DEVELOP]]'], requires="[[usepawu]] /= 0 and [[natvshift]] in [5,7]", + added_in_version="before_v9", text=r""" Defines for each atom and each spin channel (at present, can only be used with [[nsppol]] = 1 or 2, like the +U scheme), a possible potential shift, for the d @@ -279,45 +306,53 @@ defaultval=0, mnemonics="AUTOmatisation of the PARALlelism", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" -This input variable is used only when running ABINIT in parallel and for Ground-State calculations. -It controls the automatic determination of parameters related to parallel work -distribution (if not imposed in input file). Given a total number of -processors, ABINIT can find a suitable distribution that fill (when possible) +This input variable controls the automatic determination of input parameters related to parallel work +distribution if not specified in input file. + +!!! note + + Note that this variable is only used when running **ground-state calculations** in parallel with MPI ([[optdriver]]=1). + Other [[optdriver]] runlevels implement different MPI algorithms that rely on other input variables that are + not automatically set by [[autoparal]]. For example, consult the [[tutorial:paral_mbt|tutorial on parallelism for Many-Body Perturbation Theory]] to learn how + to run beyond-GS calculations with MPI. Other tutorials on parallelism are also available. + +Given a total number of processors, ABINIT can find a suitable distribution that fill (when possible) all the different levels of parallelization. ABINIT can also determine optimal parameters for the use of parallel Linear Algebra routines (using Scalapack or Cuda, at present). -The different values for [[autoparal]] are: +The different values are: - * 0 --> The [[autoparal]] feature is deactivated. For ground-state and response function calculations, + * 0 --> The *autoparal* feature is deactivated. For ground-state and response function calculations, ABINIT can only activate automatically the parallelism over spins and k-points. * 1 --> The number of processors per parallelization level is determined by mean of a simple (but relatively efficient) heuristic method. A scaling factor is attributed to each level and an simple speedup factor is computed. The selected parameters are those giving the best speedup factor. - Possibly concerned parameters: [[npimage]], [[npkpt]], [[npspinor]], [[npfft]], [[npband]], [[bandpp]]. + Possibly concerned parameters: [[npimage]], [[np_spkpt]], [[npspinor]], [[npfft]], [[npband]], [[bandpp]]. * 2 --> The number of processors per parallelization level is first determined by mean of a simple (but relatively efficient) heuristic method (see 1 above). Then the code performs a series of small benchmarks using the scheme applied for the LOBPCG algorithm (see [[wfoptalg]] = 4 or 14). The parallel distribution is then changed according to the benchmarks. - Possibly concerned parameters: [[npimage]], [[npkpt]], [[npspinor]], [[npfft]], [[npband]], [[bandpp]]. + Possibly concerned parameters: [[npimage]], [[np_spkpt]], [[npspinor]], [[npfft]], [[npband]], [[bandpp]]. - * 3 --> Same as [[autoparal]] = 1, plus automatic determination of Linear Algebra routines parameters. + * 3 --> Same as *autoparal* = 1, plus automatic determination of Linear Algebra routines parameters. In addition, the code performs a series of small benchmarks using the Linear Algebra routines (ScaLapack or Cuda-GPU). The parameters used to optimize Linear Algebra work distribution are then changed according to the benchmarks. Possibly concerned parameters (in addition to those modified for - [[autoparal]] = 1): [[use_slk]], [[np_slk]], [[gpu_linalg_limit]] + *autoparal* = 1): [[use_slk]], [[np_slk]], [[gpu_linalg_limit]] - * 4 --> combination of [[autoparal]] = 2 and [[autoparal]] = 3. + * 4 --> combination of *autoparal* 2 and 3. -Note that [[autoparal]] = 1 can be used on every set of processors; -[[autoparal]] > 1 should be used on a sufficiently large number of MPI process. -Also note that [[autoparal]] can be used simultaneously with [[max_ncpus]]; in -this case, ABINIT performs an optimization of process distribution for each +Note that *autoparal* = 1 can be used on every set of processors; +*autoparal* > 1 should be used on a sufficiently large number of MPI process. +Also note that *autoparal* can be used simultaneously with [[max_ncpus]]. +In this case, ABINIT performs an optimization of process distribution for each total number of processors from 2 to [[max_ncpus]]. A weight is associated to -each distribution and the higher this weight is the better the distribution -is. After having printed out the weights, the code stops. +each distribution and the higher this weight is the better the distribution is. +After having printed out the weights, the code stops. """, ), @@ -329,6 +364,7 @@ dimensions="scalar", defaultval=1, mnemonics="AUxiliary XC functional for hybrid functional, IXC number", + added_in_version="before_v9", text=r""" Specification of an auxiliary exchange-correlation functional, thanks to its [[ixc]] value, to possibly replace the heavy evaluation of an hybrid @@ -336,7 +372,7 @@ the self-consistent cycle, thanks to [[fockoptmix]] == 11, or when evaluating the correction to forces due to the density residual. This auxiliary exchange- correlation functional might be rescaled, thanks to [[auxc_scal]] when -[[fockoptmix]] == 11. If [[gwcalctyp]] == 5, 15 or 25, [[auxc_ixc]] refers to +[[fockoptmix]] == 11. If [[gwcalctyp]] == 5, 15 or 25, *auxc_ixc* refers to [[ixc_sigma]] instead of [[ixc]]. """, ), @@ -349,6 +385,7 @@ dimensions="scalar", defaultval=1.0, mnemonics="AUxiliary XC functional for hybrid functional- SCALing factor", + added_in_version="before_v9", text=r""" Possible scaling factor for the auxiliary exchange-correlation functional defined by [[auxc_ixc]] that has the goal to replace the Fock operator or @@ -369,6 +406,7 @@ defaultval=1, mnemonics=r"evaluate the Adler-Wiser expression of $\chi^{0}_{KS}$ assuming Time-Reversal", requires="[[optdriver]] == 3", + added_in_version="before_v9", text=r""" This input variable defines whether the irreducible polarizability $\chi^{0}_{KS}$ is evaluated taking advantage of time-reversal symmetry or not. @@ -377,11 +415,11 @@ In this case, the irreducible polarizability is calculated summing over all possible electronic transitions (both resonant and anti-resonant). * 1 --> Take advantage of time-reversal symmetry to halve the number of transitions to be explicitly considered. - This method leads to a decrease in the CPU time by a factor two with respect to the [[awtr]] = 0 case. + This method leads to a decrease in the CPU time by a factor two with respect to the *awtr* = 0 case. !!! important - Note that the parallel algorithm [[gwpara]] = 2 is not compatible with the choice [[awtr]] = 0. + Note that the parallel algorithm [[gwpara]] = 2 is not compatible with the choice *awtr* = 0. """, ), @@ -395,33 +433,40 @@ mnemonics="BAND Per Processor", characteristics=['[[DEVELOP]]'], requires="[[paral_kgb]] == 1", + added_in_version="before_v9", text=r""" -Control the size of the block in the LOBPCG algorithm. This keyword works only -with [[paral_kgb]] = 1 and has to be either 1 or a multiple of 2. - -With [[npband]] = 1: - -* 1 --> band-per-band algorithm -* n --> The minimization is performed using [[nband]] blocks of n bands. +Affect the size of a block in the LOBPCG algorithm. +One should use [[nblock_lobpcg]] instead, which sets **bandpp** depending on [[nband]] and [[npband]]. -!!! warning +!!! important - [[nband]] has to be an integer. + This keyword works only with [[paral_kgb]] = 1 and has to be either 1 or a multiple of 2. + Moreover [[nband]] / ([[npband]] $\times$ [[bandpp]]) has to be integer. -With [[npband]] $\\ne$ 1: +With [[npband]] = 1: -* 1 --> The minimization is performed using [[nband]]/[[npband]] blocks of [[npband]] bands. -* n --> The minimization is performed using [[nband]]/([[npband]] $\\times$ n) blocks of [[npband]] $\\times$ n bands. +* [[bandpp]]=1 --> band-per-band algorithm +* [[bandpp]]/=1 --> The minimization is performed using [[nband]]/[[bandpp]] blocks of [[bandpp]] bands. -!!! warning +With [[npband]] > 1: - [[nband]] / ([[npband]] $\\times$ n) has to be an integer. +* [[bandpp]]=1 --> The minimization is performed using [[nband]] / [[npband]] blocks of [[npband]] bands. +* [[bandpp]]/=1 --> The minimization is performed using [[nband]] / ([[npband]] $\times$ [[bandpp]]) blocks of [[npband]] $\times$ [[bandpp]] bands. By minimizing a larger number of bands together in LOBPCG, we increase the -convergence of the residual. The better minimization procedure (as concerns +convergence of the residuals. The better minimization procedure (as concerns the convergence, but not as concerns the speed) is generally performed by -using [[bandpp]] $\\times$ [[npband]] = [[nband]]. Put [[bandpp]] = 2 when [[istwfk]] = 2 -(the time spent in FFTs is divided by two). +using [[bandpp]] $\times$ [[npband]] = [[nband]]. + +When performing Gamma-only calculations ([[istwfk]] = 2), it is recommended to set [[bandpp]] = 2 +(or a multiple of 2) as the time spent in FFTs is divided by two. +Also, the time required to apply the non-local part of the KS Hamiltonian can be significantly +reduced if [[bandpp]] > 1 is used in conjunction with [[use_gemm_nonlop]] = 1. + +Note that increasing the value of [[bandpp]] can have a significant impact (reduction) on the computing time +(especially if [[use_gemm_nonlop]] is used) +but keep in mind that the size of the workspace arrays will also increase so the calculation may go out-of-memory +if a too large [[bandpp]] is used in systems if many atoms. """, ), @@ -434,6 +479,7 @@ defaultval=MultipleValue(number=4, value=0), mnemonics="BanD limits for BERRY phase", requires="[[berryopt]] in [1, 2, 3] and [[nberry]] > 0", + added_in_version="before_v9", text=r""" Give the lower band and the upper band of the set of bands for which the Berry phase must be computed. Irrelevant if [[nberry]] is not positive. When @@ -446,7 +492,7 @@ !!! important - Presently, [[bdberry]] MUST be initialized by the user in case of a Berry + Presently, *bdberry* MUST be initialized by the user in case of a Berry phase calculation with [[berryopt]] = 1, 2, or 3: the above-mentioned default will cause an early exit. """, @@ -461,13 +507,14 @@ defaultval=-1, mnemonics="BanD for second-order EIGenvalues from Response-Function", requires="[[ieig2rf]] in [1,2,3,4,5]", + added_in_version="before_v9", text=r""" -The variable [[bdeigrf]] is the maximum number of bands for which the second- +The variable *bdeigrf* is the maximum number of bands for which the second- order eigenvalues must be calculated: the full number of bands is still used during the computation of these corrections. -If [[bdeigrf]] is set to -1, the code will automatically set [[bdeigrf]] equal to [[nband]]. +If *bdeigrf* is set to -1, the code will automatically set *bdeigrf* equal to [[nband]]. """, ), @@ -480,11 +527,12 @@ defaultval=MultipleValue(number=None, value=0), mnemonics="BanDs for GW calculation", requires="[[optdriver]] in [4, 7]", + added_in_version="before_v9", text=r""" For each k-point with number `ikptgw` in the range (1:[[nkptgw]]) and each spin -index `isppol`, [[bdgw]](1,`ikptgw`,`isppol`) is the number of the lowest band for +index `isppol`, **bdgw**(1,`ikptgw`,`isppol`) is the number of the lowest band for which the self-energy computation must be done. -[[bdgw]](2,`ikptgw`,`isppol`) gives the index of the highest band for which the self-energy computation must be done. +**bdgw**(2,`ikptgw`,`isppol`) gives the index of the highest band for which the self-energy computation must be done. !!! note @@ -497,9 +545,9 @@ When [[gwcalctyp]] >= 20, the quasi-particle wavefunctions are computed and represented as linear combination of Kohn-Sham wavefunctions. In this case -[[bdgw]] designates the range of KS wavefunctions used as basis set. For each +**bdgw** designates the range of KS wavefunctions used as basis set. For each k-point, indeed, the quasi-particle wavefunctions are expanded considering only -the KS states between [[bdgw]](1,`ikptgw`,`isppol`) and [[bdgw]](2,`ikptgw`,`isppol`). +the KS states between **bdgw**(1,`ikptgw`,`isppol`) and **bdgw**(2,`ikptgw`,`isppol`). For self-consistent calculations, on the other hand, the basis set used to expand the GW wavefunctions should include all the degenerate states belonging @@ -516,6 +564,7 @@ dimensions="scalar", defaultval=0, mnemonics="BERRY phase OPTions", + added_in_version="before_v9", text=r""" Specifies the use of Berry phase for the computation of either the polarization, the derivatives with respect to the wavevector, or finite @@ -548,14 +597,14 @@ Other related input variables are: - * in case of [[berryopt]] = 1,2, or 3: [[bdberry]] and [[kberry]]; also, [[nberry]] must be larger than 0; - * in case of [[berryopt]] = -1,-2, or -3: the variable [[rfdir]] must be used to specify the primitive vector along which the projection of the polarization or the ddk will be computed. For example if [[berryopt]] = -1 and [[rfdir]] = 1 0 0, the projection of the polarization along the reciprocal lattice vector $G_1$ is computed. In case [[rfdir]] = 1 1 1, ABINIT computes the projection of P along $G_1$, $G_2$ and $G_3$ and transforms the results to cartesian coordinates; - * in cases where [[berryopt]] is negative, [[berrystep]] allow a computation of multiple-step Berry phase in order to accelerate the convergence. - * [[efield]] and [[rfdir]] in case of [[berryopt]] = 4; + * in case of *berryopt* = 1,2, or 3: [[bdberry]] and [[kberry]]; also, [[nberry]] must be larger than 0; + * in case of *berryopt* = -1,-2, or -3: the variable [[rfdir]] must be used to specify the primitive vector along which the projection of the polarization or the ddk will be computed. For example if *berryopt* = -1 and [[rfdir]] = 1 0 0, the projection of the polarization along the reciprocal lattice vector $G_1$ is computed. In case [[rfdir]] = 1 1 1, ABINIT computes the projection of P along $G_1$, $G_2$ and $G_3$ and transforms the results to cartesian coordinates; + * in cases where *berryopt* is negative, [[berrystep]] allow a computation of multiple-step Berry phase in order to accelerate the convergence. + * [[efield]] and [[rfdir]] in case of *berryopt* = 4; -The cases [[berryopt]] = -1,-2,-3, 4, 6, 7, 14, 16, and 17 have to be used with [[occopt]] = 1. +The cases *berryopt* = -1,-2,-3, 4, 6, 7, 14, 16, and 17 have to be used with [[occopt]] = 1. -The cases [[berryopt]] = -1 and 4, 6, 7, 14, 16, 17 are compatible with PAW, +The cases *berryopt* = -1 and 4, 6, 7, 14, 16, 17 are compatible with PAW, howevever, if in these cases one uses [[kptopt]] /= 3, one must also use only symmorphic symmetries (either because the space group is symmorphic or the variable [[symmorphi]] is set to zero). @@ -563,15 +612,15 @@ For a phonon calculation under a finite electric field, respect the following procedure. * a) Run a scf ground-state calculation at zero electric field to get wavefunctions to initialize the ground-state calculation in finite electric fields. - * b) Run a scf ground-state calculation in finite electric field. The electric field is controlled by the input variable [[efield]]. [[berryopt]] should be 4. The input variable [[kptopt]] should be set to be 2. - * c) Based on the wave functions obtained in step (2), perform phonon calculation by setting [[berryopt]] = 4, [[kptopt]] = 3 and The same value of [[efield]] than in step 2. [[nsym]] should be set to 1 currently but this restriction may be removed later. The other parameters are the same as phonon calculation at zero electric field. + * b) Run a scf ground-state calculation in finite electric field. The electric field is controlled by the input variable [[efield]]. *berryopt* should be 4. The input variable [[kptopt]] should be set to be 2. + * c) Based on the wave functions obtained in step (2), perform phonon calculation by setting *berryopt* = 4, [[kptopt]] = 3 and The same value of [[efield]] than in step 2. [[nsym]] should be set to 1 currently but this restriction may be removed later. The other parameters are the same as phonon calculation at zero electric field. !!! important The choice of k-point sampling N x N x N should be the same in the three runs and N should be an even number. In case of finite electric and displacement field calculations -([[berryopt]] = 4,6,7,14,16,17), see also the input variables [[berrysav]], +(*berryopt* = 4,6,7,14,16,17), see also the input variables [[berrysav]], [[dfield]], [[red_dfield]], [[red_efield]], [[ddamp]] """, ), @@ -584,6 +633,7 @@ dimensions="scalar", defaultval=0, mnemonics="BERRY SAVe", + added_in_version="before_v9", text=r""" * 0 --> for finite electric field calculation ([[berryopt]] = 4/14), the polarization branch will be chosen on each iteration from (-pi, pi). @@ -592,10 +642,10 @@ * 1 --> the polarization will be kept in the same branch on each iteration. At the end of the run, a file "POLSAVE" will be saved containing the reduced polarization in atomic units. - !!! note +!!! note - Make sure that "POLSAVE" is empty or it does not exist before the calculation, or else that - it specifies the desired polarization branch. + Make sure that "POLSAVE" is empty or it does not exist before the calculation, or else that + it specifies the desired polarization branch. """, ), @@ -608,6 +658,7 @@ defaultval=1, mnemonics="BERRY phase: multiple STEP", requires="0 > [[berryopt]]", + added_in_version="before_v9", text=r""" If [[berryopt]] is negative, this variable is used to compute berry phases using multiple discrete steps, in order to accelerate convergence. The single- @@ -619,7 +670,7 @@ The default value of this variable is 1, meaning that only the single-step berry phase calculation is done. If a larger value is set, ABINIT will compute all the multiple-step berry phase from the single-step to the -[[berrystep]]-step, and use the large-step values of berry phase to correct +*berrystep*-step, and use the large-step values of berry phase to correct the single-step berry phase. Use with care: while experience is still to be gained with this procedure, the outlook is promising. """, @@ -633,6 +684,7 @@ dimensions=[3], defaultval=MultipleValue(number=3, value=0.0), mnemonics="finite B FIELD calculation", + added_in_version="before_v9", text=r""" Perform finite magnetic field calculation. @@ -650,6 +702,7 @@ dimensions="scalar", defaultval=10, mnemonics="Barostat MASS", + added_in_version="before_v9", text=r""" bmass is the mass of the barostat when [[ionmov]] = 13 (constant pressure molecular dynamics) """, @@ -663,13 +716,14 @@ dimensions=[3], defaultval=[0.5, 0.5, 0.5], mnemonics="BOX CENTER", + added_in_version="before_v9", text=r""" Defines the center of the box, in reduced coordinates. At present, this information is only used in the case of Time-Dependent DFT computation of the -oscillator strength. One must take [[boxcenter]] such as to be roughly the center +oscillator strength. One must take *boxcenter* such as to be roughly the center of the cluster or molecule. The default is sensible when the vacuum surrounding the cluster or molecule has xred 0 or 1. On the contrary, when the -cluster or molecule is close to the origin, it is better to take [[boxcenter]] = [0.0, 0.0, 0.0]. +cluster or molecule is close to the origin, it is better to take *boxcenter* = [0.0, 0.0, 0.0]. """, ), @@ -677,20 +731,38 @@ abivarname="boxcutmin", varset="gstate", vartype="real", - topics=['Planewaves_useful', 'TuningSpeed_basic'], + topics=['Planewaves_useful', 'TuningSpeedMem_basic'], dimensions="scalar", defaultval=2.0, mnemonics="BOX CUT-off MINimum", + added_in_version="before_v9", text=r""" -The box cut-off ratio is the ratio between the wavefunction plane wave sphere -radius, and the radius of the sphere that can be inserted in the FFT box, in reciprocal space. - +The box cutoff ratio is the ratio between the radius of the G-sphere that can be inserted in the FFT box (see [[ngfft]]) +and the G-sphere used to represent the wavefunctions as computed from the input [[ecut]]. In order for the density to be exact (in the case of the plane wave part, not the PAW on-site terms), -this ratio should be at least two. If one uses a smaller ratio, one will gain speed, at the expense of accuracy. -In the case of pure ground state calculation (e.g. for the determination of geometries), this is sensible. +this ratio should be **at least two**. + +!!! warning + + If one uses a smaller ratio (e.g. 1.5), one will gain speed at the price of accuracy. + Keep in mind that using a value of [[boxcutmin]] too close to 1 may lead to runtime errors in the FFT routines + so a value larger than 1.1 is strongly recommended. -Prior to v8.9, the use of boxcutmin for DFPT calculations was forbidden. However, after testing, it was seen that -the deterioration in phonon band structures could be alleviated to a large extent by the imposition of the Acoustic Sum Rule [[asr]]. +It should also be stressed that the quality of the forces is affected by the value of [[boxcutmin]]. +The default value (2.0) is OK for ground state calculations and structural relaxations. +On the contrary, the computations of vibrational frequencies based on finite-difference methods such as those +implemented by |phonopy| turn out to be rather sensitive to the quality of the forces. +Tests have shown that, for particular systems, |phonopy| calculations require a larger [[boxcutmin]] (e.g. 3.0) +to reproduce the DFPT results. +The optimal value of [[boxcutmin]] likely depends on the pseudopotentials and the system under investigation, yet +this is something worth keeping in mind. + +!!! note + + Prior to v8.9, the use of boxcutmin for DFPT calculations was forbidden. + However, after testing, it was seen that + the deterioration in phonon band structures could be alleviated to a large extent by the imposition + of the Acoustic Sum Rule [[asr]]. """, ), @@ -703,6 +775,7 @@ defaultval=0, mnemonics="BRaVais LaTTice type", requires="[[spgroup]] != 0", + added_in_version="before_v9", text=r""" Set the type of Bravais lattice. The cell defined by [[acell]] and [[rprim]] or [[angdeg]] should be the CONVENTIONAL cell. @@ -716,10 +789,10 @@ [[rprim]] might thus differ from those derived directly from the input variables. Also, the input variable [[xred]] will refer to the CONVENTIONAL unit cell, but its echo will refer to the preprocessed PRIMITIVE unit cell. -There is of course no problem with [[xangst]] and [[xcart]], as they are +There is of course no problem with [[xcart]], as it is independent of the unit cell. -The echo of [[brvltt]] in the output file will be one of the following Bravais lattices: +The echo of *brvltt* in the output file will be one of the following Bravais lattices: * 1 = Primitive with no associated translations * 2 = Inner centered with (a/2 + b/2 + c/2) associated translation @@ -733,7 +806,7 @@ consistent with [[spgroup]]. The space groups 146, 148, 155, 160, 161, 166, 167, when used with -[[spgaxor]] = 1 (hexagonal axes) will have [[brvltt]] = 7 and two associated +[[spgaxor]] = 1 (hexagonal axes) will have *brvltt* = 7 and two associated translations: (2/3, 1/3, 1/3) and (1/3, 2/3, 2/3). For more details see the [[help:spacegroup]]. """, @@ -748,6 +821,7 @@ defaultval=2, mnemonics="Bethe-Salpeter ALGORITHM", requires="[[optdriver]] == 99", + added_in_version="before_v9", text=r""" This input variable defines the algorithm employed to calculate the macroscopic dielectric function. Possible values are in [1, 2, 3]: @@ -765,7 +839,7 @@ that [[zcut]] is larger than the typical energy spacing of the eigenvalues. Drawbacks: It is an iterative method therefore the convergence with respect to [[bs_haydock_niter]] should be checked. It is not possible to have direct information on the exciton spectrum, oscillator strengths and excitonic wave functions. - For the time being [[bs_algorithm]] = 2 cannot be used for calculations in which the coupling + For the time being *bs_algorithm* = 2 cannot be used for calculations in which the coupling term is included (Tamm-Dancoff approximation). * 3 --> Conjugate-gradient method. This method allows one to find the few first excitonic eigenvalues. @@ -782,6 +856,7 @@ defaultval=1, mnemonics="Bethe-Salpeter CALCulation TYPE", requires="[[optdriver]] == 99", + added_in_version="before_v9", text=r""" Possible values are in [1, 2, 3]. @@ -802,8 +877,9 @@ defaultval=11, mnemonics="Bethe-Salpeter COULOMB TERM", requires="[[optdriver]] == 99", + added_in_version="before_v9", text=r""" -This variable governs the choice among the different options that are +This variable governs the choice among the different options available for the treatment of Coulomb term of the Bethe-Salpeter Hamiltonian. **bs_coulomb_term** is the concatenation of two digits, labelled (A) and (B). @@ -835,6 +911,7 @@ defaultval=0, mnemonics="Bethe-Salpeter COUPLING", requires="[[optdriver]] == 99", + added_in_version="before_v9", text=r""" The **bs_coupling** input variable defines the treatment of the coupling block of the Bethe-Salpeter Hamiltonian. Possible values are 0, 1. @@ -857,6 +934,7 @@ defaultval=["-inf", "inf"], mnemonics="Bethe-Salpeter Electron-Hole CUTOFF", requires="[[optdriver]] == 99", + added_in_version="before_v9", text=r""" Used to define a cutoff in the e-h basis set. Only those transitions whose energy is between bs_eh_cutoff(1) and bs_eh_cutoff(2) will be considered @@ -873,6 +951,7 @@ defaultval=1, mnemonics="Bethe-Salpeter EXCHANGE TERM", requires="[[optdriver]] == 99", + added_in_version="before_v9", text=r""" * 0 --> The exchange term is not calculated. This is equivalent to neglecting local field effects in the macroscopic dielectric function. @@ -890,6 +969,7 @@ mnemonics="Bethe-Salpeter FREQuency MESH", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 99", + added_in_version="before_v9", text=r""" **bs_freq_mesh(1)** defines the first frequency for the calculation of the macroscopic dielectric function. @@ -909,6 +989,7 @@ defaultval=1, mnemonics="Bethe-Salpeter HAYdock TERMinator", requires="[[optdriver]] == 99 and [[bs_algorithm]] == 2", + added_in_version="before_v9", text=r""" Defines how to terminate the continued fraction expression for the dielectric function. The terminator reduces the number of iterations needed to converge @@ -931,6 +1012,7 @@ defaultval=100, mnemonics="Bethe-Salpeter HAYDOCK Number of ITERations", requires="[[optdriver]] == 99 and [[bs_algorithm]] == 2", + added_in_version="before_v9", text=r""" **bs_haydock_niter** defines the maximum number of iterations used to calculate the macroscopic dielectric function. @@ -948,6 +1030,7 @@ defaultval=[0.02, 0.0], mnemonics="Bethe-Salpeter HAYDOCK TOLerance", requires="[[optdriver]] == 99 and [[bs_algorithm]] == 2", + added_in_version="before_v9", text=r""" Defines the convergence criterion for the Haydock iterative method. The iterative algorithm stops when the difference between two consecutive @@ -976,6 +1059,7 @@ defaultval=[0, 0, 0], mnemonics="Bethe-Salpeter INTERPolation K-point MULTiplication factors", requires="[[bs_interp_mode]] > 0 and [[bs_algorithm]] == 2 and [[bs_coupling]] == 0", + added_in_version="before_v9", text=r""" **bs_interp_kmult** defines the number of divisions used to generate the dense mesh in the interpolation. [[ngkpt]] of the dense mesh = **bs_interp_kmult(:)** * [[ngkpt]] of the coarse mesh. @@ -991,6 +1075,7 @@ defaultval=1.0, mnemonics="Bethe-Salpeter INTERPolation Method3 WIDTH", requires="[[bs_interp_mode]] == 3 and [[bs_algorithm]] == 2 and [[bs_coupling]] == 0", + added_in_version="before_v9", text=r""" Defines the width of the region where divergence treatment is applied for BSE interpolation """, @@ -1005,6 +1090,7 @@ defaultval=1, mnemonics="Bethe-Salpeter INTERPolation METHOD", requires="[[bs_interp_mode]] > 0 and [[bs_algorithm]] == 2 and [[bs_coupling]] == 0", + added_in_version="before_v9", text=r""" *bs_interp_method* selects the interpolation method:: @@ -1022,6 +1108,7 @@ defaultval=0, mnemonics="Bethe-Salpeter INTERPolation MODE", requires="[[bs_interp_mode]] > 0 and [[bs_algorithm]] == 2 and [[bs_coupling]] == 0", + added_in_version="before_v9", text=r""" *bs_interp_mode* selects the mode of interpolation: @@ -1041,6 +1128,7 @@ defaultval=0, mnemonics="Bethe-Salpeter INTERPolation PREParation", requires="[[bs_interp_mode]] > 0 and [[bs_algorithm]] == 2 and [[bs_coupling]] == 0", + added_in_version="before_v9", text=r""" *bs_interp_prep* allows one to trigger the preparation of the interpolation with method 2 or method 3. It generates the decomposition of BSR in a, b, c coefficients used for the interpolation. @@ -1056,6 +1144,7 @@ defaultval=1, mnemonics="Bethe-Salpeter INTERPolation Rohlfing & Louie NeighBour", requires="[[bs_interp_mode]] > 0 and [[bs_algorithm]] == 2 and [[bs_interp_method]] == 1 and [[bs_coupling]] == 0", + added_in_version="before_v9", text=r""" Gives the index of the neighbour that is used in the Rohlfing and Louie method ([[cite:Rohlfing2000]]) """, @@ -1070,6 +1159,7 @@ defaultval=0, mnemonics="Bethe-Salpeter Lowest Occupied BAND", requires="[[optdriver]] == 99", + added_in_version="before_v9", text=r""" This variable defines the index of the lowest occupied band used for the construction of the electron-hole basis set. For spin polarized calculations, @@ -1086,7 +1176,8 @@ dimensions="scalar", defaultval=0, mnemonics="Bethe-Salpeter Number of STATES", - requires="[[optdriver]] == 99 and [[bs_algorithm]] in [2, 3]", + requires="[[optdriver]] == 99 and [[bs_algorithm]] in [1, 3]", + added_in_version="before_v9", text=r""" **bs_nstates** defines the maximum number of excitonic states calculated in the direct diagonalization of the excitonic matrix or in the conjugate-gradient method. @@ -1102,15 +1193,16 @@ topics=['Control_expert'], dimensions="scalar", defaultval=0, - mnemonics="BUIT-IN TEST number", + mnemonics="BUILT-IN TEST number", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" When [[builtintest]] is non-zero, the input file is a special one, that runs very quickly, and that is accompanied by a specific analysis by ABINIT, at the end of the run, against a hard-coded value of total energy (and possibly stresses, forces ...). The echo of the analysis is done in the STATUS file. In particular, such built-in tests can be used to check quickly whether ABINIT -fallbacks have been connected or not (bigdft, libxc, wannier90). At +fallbacks have been connected or not (bigdft, netcdf, libxc, wannier90). At present, [[builtintest]] = 1... 7 are allowed. See more information in tests/built-in/README. """, ), @@ -1124,6 +1216,7 @@ defaultval=2.0, mnemonics="BoX CuT-off MINimum for the Double Grid (PAW)", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" The box cut-off ratio is the ratio between the wavefunction plane wave sphere radius, and the radius of the sphere that can be inserted in the FFT box, in @@ -1152,6 +1245,7 @@ defaultval=0, mnemonics="Contour Deformation CUSTOM IMaginary FReQuencieS", requires="([[optdriver]] ==3 or [[optdriver]] ==4) and [[gwcalctyp]] in [2,9,12,19,22,29]", + added_in_version="before_v9", text=r""" [[cd_customnimfrqs]] lets the user define the grid points along the imaginary axis by hand. Set this to the number of frequencies you want. The frequencies @@ -1167,7 +1261,8 @@ dimensions="scalar", defaultval=1, mnemonics="Contour Deformation FReQuency integration on IMaginary axis Method", - requires="[[optdriver]] ==4 and [[gwcalctyp]] in [2,9,12,19,22,29]", + requires="[[optdriver]] ==4 and [[gwcalctyp]] in [2, 9, 12, 19, 22, 29]", + added_in_version="before_v9", text=r""" [[cd_frqim_method]] defines the choice of integration method along the imaginary frequency axis for Contour Deformation calculations. The default @@ -1266,6 +1361,7 @@ defaultval=0, mnemonics="Contour Deformation FULL GRID in complex plane", requires="[[optdriver]] == 3 and [[gwcalctyp]] in [2, 9, 12, 19, 22, 29]", + added_in_version="before_v9", text=r""" [[cd_full_grid]] enables the calculation of the screening [both chi0 and epsilon^(-1)] on a grid in the first quadrant of the complex plane. The grid @@ -1295,6 +1391,7 @@ mnemonics="Contour Deformation tangent grid HALFWAY FREQuency", characteristics=['[[ENERGY]]'], requires="([[optdriver]] == 3 or [[optdriver]] == 4) and [[gwcalctyp]] in [2,9,12,19,22,29]", + added_in_version="before_v9", text=r""" [[cd_halfway_freq]] determines the frequency where half of the number of points defined in [[nfreqre]] are used up. The tangent transformed grid is @@ -1309,7 +1406,8 @@ topics=['FrequencyMeshMBPT_expert'], dimensions=['[[cd_customnimfrqs]]'], mnemonics="Contour Deformation IMaginary FReQuencieS", - requires="[[optdriver]] == 3 and [[gwcalctyp]] in [2,9,12,19,22,29] and [[cd_customnimfrqs]] != 0", + requires="[[optdriver]] == 3 and [[gwcalctyp]] in [2, 9, 12, 19, 22, 29] and [[cd_customnimfrqs]] != 0", + added_in_version="before_v9", text=r""" [[cd_imfrqs]] specifies the grid points for the imaginary axis. The number of frequencies is set by the value of [[cd_customnimfrqs]]. For example, @@ -1339,6 +1437,7 @@ mnemonics="Contour Deformation grid MAXimum FREQuency", characteristics=['[[ENERGY]]'], requires="([[optdriver]] == 3 or [[optdriver]] == 4) and [[gwcalctyp]] in [2,9,12,19,22,29]", + added_in_version="before_v9", text=r""" [[cd_max_freq]] determines the frequency where all the points defined in [[nfreqre]] are used up. To be used in conjunction with [[gw_frqre_tangrid]]. @@ -1353,7 +1452,8 @@ dimensions=[2], defaultval=[1, '[[nfreqre]]'], mnemonics="Contour Deformation grid calculate SUBSET of FREQuencies", - requires="[[optdriver]] == 3 and [[gwcalctyp]] in [2,9,12,19,22,29] and [[gw_frqre_tangrid]] == 0", + requires="[[optdriver]] == 3 and [[gwcalctyp]] in [2, 9, 12, 19, 22, 29] and [[gw_frqre_tangrid]] == 0", + added_in_version="before_v9", text=r""" [[cd_subset_freq]] Specifies that only a subset of the frequencies defined by [[nfreqre]] are to be calculated. The first index is the start and the second @@ -1369,28 +1469,53 @@ ), Variable( - abivarname="charge", + abivarname="cellcharge", varset="gstate", vartype="real", topics=['Coulomb_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="CHARGE", + dimensions=['[[nimage]]'], + defaultval=MultipleValue(number=None, value=0), + mnemonics="CELL CHARGE", + added_in_version="v9.3.4", text=r""" Used to establish charge balance between the number of electrons filling the -bands and the nominal [[charge]] associated with the atomic cores. +bands and the nominal charge associated with the atomic cores. The code adds up the number of valence electrons provided by the -pseudopotentials of each type (call this "zval"), then add [[charge]], to get +pseudopotentials of each type (call this "zval"), then add [[cellcharge]], to get the number of electrons per unit cell, [[nelect]]. Then, if [[iscf]] is positive, the code adds up the band occupancies (given in array [[occ]]) for all bands at each k point, then multiplies by the k point weight [[wtk]] at each k point. Call this sum "nelect_occ" (for the number of electrons from occupation numbers). It is then required that: nelect_occ = [[nelect]]. To treat a neutral system, which is desired in nearly all cases, one must use -[[charge]] = 0. To treat a system missing one electron per unit cell, set [[charge]] = +1. +[[cellcharge]] = 0. To treat a system missing one electron per unit cell, set [[cellcharge]] = +1. + +[[cellcharge]] superceeds the old [[charge]] input variable, whose name was rather unspecific. + +When there are several images, [[cellcharge]] might depend on the image number, but ONLY +when [[imgmov]]=6 and [[occopt]]=0 or 2. In the checking routine, [[nelect]] is considered +separately for each image, while in the remaining of the code, [[nelect]](1) is propagated, +so that [[nelect]] is still a scalar. This is consistent with the pSIC algorithm, +see [[cite:Sadigh2015]] and [[cite:Sadigh2015a]]. +""", +), + +Variable( + abivarname="charge", + varset="gstate", + vartype="real", + topics=['Coulomb_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="CHARGE", + added_in_version="before_v9, obsolete", + text=r""" +The [[charge]] input variable is obsolete, and has been replaced by [[cellcharge]]. +It is still read during a transitional period, likely up to the end of v9 life cycle. """, ), + Variable( abivarname="chempot", varset="geo", @@ -1400,6 +1525,7 @@ defaultval=0.0, mnemonics="spatially varying CHEMical POTential", requires="[[nzchempot]] /= 0", + added_in_version="before_v9", text=r""" For each type of atoms, from 1 to [[ntypat]], specifies the spatially varying chemical potential, through the specification of [[nzchempot]] triplets of @@ -1436,12 +1562,21 @@ dimensions="scalar", defaultval=1, mnemonics="CHecK DILATMX", + added_in_version="before_v9", text=r""" If 0, the code will not stop execution if the threshold of [[dilatmx]] is exceeded, it will simply issue a warning. There will be no rescaling. If 1, after tentative rescaling as described in [[dilatmx]], the code will stop execution. Also, the use of [[chkdilatmx]] = 0 allows one to set [[dilatmx]] to a larger value than 1.15, otherwise forbidden as being a waste of CPU and memory. + +So, when using [[chkdilatmx]]=0, the relaxed lattice parameters might not be accurate, but will simply better +than the starting ones. + +[[chkdilatmx]]=0 is useful when the starting geometry is likely very inaccurate. However, if the user is in search +of an accurate geometry estimation, then a first determination of the (better but inaccurate) geometry with [[chkdilatmx]]=0 +should be followed by a more accurate second run from the better geometry with [[chkdilatmx]]=1 and [[dilatmx]] slightly larger than 1, +(possibly 1.05). """, ), @@ -1453,6 +1588,7 @@ dimensions="scalar", defaultval=0, mnemonics="CHecK whether the user want to EXIT", + added_in_version="before_v9", text=r""" If [[chkexit]] is 1 or 2, ABINIT will check whether the user wants to interrupt the run (using the keyword "exit" on the top of the input file or @@ -1467,6 +1603,39 @@ """, ), +Variable( + abivarname="chkparal", + varset="gstate", + vartype="integer", + topics=['parallelism_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="CHecK whether the PARALelism is adequate", + added_in_version="before_v9", + text=r""" +Not all parallelism types or level are allowed or simply relevant for the different [[optdriver]] values in ABINIT. +It has been observed that some users do not understand well their relation. In particular, their expectation of the adequacy +of some parallelism for some [[optdriver]] value was not correct, with a large loss of computing resources. +Indeed, if the user does not sufficiently understand the parallelism in ABINIT, huge amount of ressources might be spend +when they are booked for a run that cannot use these. +Accordingly, the user might blame ABINIT for being slow while the user has simply not activated +the relevant parallelism, or activated an irrelevant parallelism. + +However, if the user correctly understand the parallelism, +it might be more convenient to leave in the input file irrelevant variables. This is especially the case for high-throughput calculations +driven by workflows developed for earlier versions of ABINIT. + +The default value of [[chkparal]], will enforce some basic relevance of the input variables related to parallelism, +thus hopefully preventing some users to loose computing power. + +The following relevances and adequacies are checked at present if [[chkparal]]=1 : +the input variable [[autoparal]] is relevant only for [[optdriver]]=1 calculations (ground-state); +the input variable [[paral_kgb]] is relevant only for [[optdriver]]=1 calculations (ground-state) or for [[optdriver]]=66 (Laczos-Sternheimer GW). + +The relevance of [[paral_atom]] or [[paral_rf]] or [[gwpara]] is not checked at present. The default values should not yield loss of computing power. +""", +), + Variable( abivarname="chkprim", varset="gstate", @@ -1475,6 +1644,7 @@ dimensions="scalar", defaultval=1, mnemonics="CHecK whether the cell is PRIMitive", + added_in_version="before_v9", text=r""" If the symmetry finder is used (see [[nsym]]), a non-zero value of [[chkprim]] will make the code stop if a non-primitive cell is used. If [[chkprim]] = 0, a @@ -1489,67 +1659,148 @@ abivarname="chksymbreak", varset="gstate", vartype="integer", - topics=['k-points_basic'], + topics=['k-points_useful'], dimensions="scalar", defaultval=1, mnemonics="CHecK SYMmetry BREAKing", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" -This variable governs the behaviour of the code when there are potential -source of symmetry breaking, related e.g. to the k point grid or the presence -of non-symmorphic translations which might not be coherent with the exchange-correlation grid. - -When [[chksymbreak]] = 1, the code stops (or issue a warning) if: - - * (1) The k point grid is non-symmetric, in case [[kptopt]] =1, 2, or 4; - * (2) The non-symmorphic translation part of the symmetry operations has components that are not zero, - or simple fractions, with 2, 3, 4, 6, 8 or 12 as denominators. +This variable governs the behaviour of the code when there is a potential +source of symmetry breaking related to the k point grid. -Note that the check is disabled when the number of k-points in the BZ is greater than 40 ** 3. +When **chksymbreak** = 1, the code stops if +the k point grid is non-symmetric, in case [[kptopt]] =1, 2, or 4. +Also, the code stops if [[nshiftk]] is not 1, 2 or 4. -When [[chksymbreak]] = 0, there is no such check. +Note that the check is disabled when the number of k-points in the BZ is greater than $40^3$. -When [[chksymbreak]] = -1, the code stops if the condition (1) is met, -but in case the condition (2) is met, there will be a trial to shift the -atomic coordinates such as to obtain symmetry operations with the adequate non-symmorphic part. +When **chksymbreak** = 0, there is no such check. Explanation: In the ground-state calculation, such breaking of the symmetry is usually harmless. However, if the user is doing a calculation of phonons using DFPT ([[rfphon]] = 1), the convergence with respect to the number of k points will be -much worse with a non-symmetric grid than with a symmetric one. Also, if the -user is doing a GW calculation, the presence of non-symmorphic translations -that are not coherent with the FFT grid might cause problems. In the GW part, -indeed, one needs to reconstruct the wavefunctions in the full Brillouin zone +worse with a non-symmetric grid than with a symmetric one. + +So, it was decided to warn the user about such problem already at +the level of the ground state calculations, although such warning might be irrelevant. + +Concerning the values of [[nshiftk]], usage of values other then 1, 2, or 4 can hardly be understood, +as it will yield in many cases a non-homogeneous or non-symmetric k point grid. +So, it is usually an error of the user. + +If you encounter a problem outlined above, you have some choices: change your +k point grid, to make it more symmetric, and/or respect [[nshiftk]]=1, 2, or 4, or ignore the problem, and set **chksymbreak** = 0. +""", +), + +Variable( + abivarname="chksymtnons", + varset="gstate", + vartype="integer", + topics=['crystal_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="CHecK SYMmetry of TNONS", + characteristics=['[[INPUT_ONLY]]'], + added_in_version="9.2.0", + text=r""" +This variable governs the behaviour of the code when there is a potential +symmetry breaking, related to the presence +of non-symmorphic translations not leaving the FFT exchange-correlation grid invariant. + +When **chksymtnons** = 1, the code stops if +the non-symmorphic translation part of the symmetry operations has components that are not zero, +or simple fractions with 2, 3, 4, 5, 6, 8, 9, 10 or 12 as denominators. Also, suggestions +to bypass the problem are made in the output file. + +When **chksymtnons** = 2, the code makes similar check, but does not stop after providing +in the output file suggestions to bypass the problem. + +When **chksymtnons** = 3, the code acts as with **chksymtnons** = 1, but then generates a FFT grid which is +left invariant under the action of the spatial symmetry operations, which might enlarge it. +In case of Constrained DFT calculations (see [[constraint_kind]]), only **chksymtnons** = 3 or **chksymtnons** = 0 are allowed. + +When **chksymtnons** = 0, the code skips the check. + +Explanation: +In ground-state or DFPT calculations, such breaking of the symmetry is harmless. +However, for a GW, BSE or cDFT calculation, the presence of non-symmorphic translations +that are not coherent with the FFT grid will cause problems (e.g. enormous memory reservation, inducing segfault, or lack of convergence). + +For cDFT calculations, the local integral of magnetization or charge is evaluated in real space, on the FFT grid. So, if +the grids are locally different for two atoms related by symmetry (so in principle equivalent), there is a incoherency, that might induce +lack of convergence. + +In the GW or BSE parts of ABINIT, one needs to reconstruct the wavefunctions in the full Brillouin zone for calculating both the polarizability and the self-energy. The wavefunctions in the full Brillouin zone are obtained from the irreducible wedge by applying the symmetry operations of the space group of the crystal. In the present implementation, the symmetrisation of the wavefunctions is done in real space on the FFT mesh that, therefore, has to be coherent both with the rotational part as well as with the fractional translation of each symmetry operation. If -the condition (2) is met, the GW code will not be able to find a symmetry -preserving FFT mesh. +the condition above (2, 3, 4, 5, 6, 7, 8, 9, 10, or 12 as denominator) is not met, +the GW/BSE code will not be able to find a symmetry preserving FFT mesh. -So, it was decided to warn the user about these possible problems already at -the level of the ground state calculations, although such warning might be irrelevant. +So, it was decided to warn the user about such problem already at +the level of the ground-state calculations, although such warning might be irrelevant. -If you encounter a problem outlined above, you have two choices: change your +If you encounter the problem outlined above, you have two choices: change your atomic positions (translate them) such that the origin appears as the most -symmetric point; or ignore the problem, and set [[chksymbreak]] = 0. +symmetric point; or ignore the problem, and set **chksymtnons** = 2 or 0 (only the latter for cDFT).. +If **chksymtnons** = 2, ABINIT makes a suggestion of a possible global translation, +and corresponding translated atomic positions. """, ), + Variable( abivarname="chneut", - varset="eph", + varset="dfpt", vartype="integer", - topics=['Phonons_useful'], + topics=['Phonons_basic'], dimensions="scalar", - defaultval=0, + defaultval=1, mnemonics="CHarge NEUTrality treatment", + added_in_version="before_v9", + text=r""" +Set the treatment of the Charge Neutrality requirement for the effective charges in the ABINIT code. +Same values as the corresponding ANADDB variable [[chneut@anaddb]]. Please switch to this description. +Note however the different default value in abinit (1) and anaddb (0). + +Using anaddb is indeed the recommended approach if you want to analyze the breaking of the sum rules. +Running different DFPT calculations from scratch just to change [[chneut]] is indeed a waste of time as +you can compute the DDB only once and then use anaddb. + +Anyhow, this input variable is used in different contexts in ABINIT, in addition of being used in ANADDB : +[[optdriver]]=1 (phonon calculations), [[optdriver]]=7 (electron-phonon calculations) and +[[optdriver]]=10 (longwave calculations). +For [[optdriver]]=1, it does not modify the self-consistent calculations, neither the DDB generation, but only the echo in the main output file +of the Born effective charge, and the subsequent echo of the phonon frequencies at Gamma, LO part only. + +See also the variables [[asr]] and [[asr@anaddb]], that govern the imposition of the acoustic sum rule. +""", +), + +Variable( + abivarname="chrgat", + varset="gstate", + vartype="real", + topics=['ConstrainedDFT_useful'], + dimensions=ValueWithConditions({'[[natrd]]<[[natom]]': '[ [[natrd]] ]', 'defaultval': '[ [[natom]] ]'}), + defaultval=0.0, + mnemonics="CHARGE of the AToms", + added_in_version="before_v9", text=r""" -Set the treatment of the Charge Neutrality requirement for the effective charges. -Same meaning as the corresponding anaddb variable. +Gives the target integrated charge in case of constrained DFT calculations, see [[constraint_kind]]. +Given in atomic unit of charge (=minus the charge of the electron). +Note that this number is the net positive charge inside the sphere: one subtract from the +nucleus charge [[ziontypat]] the integrated valence electron density in a sphere defined by [[ratsph]]. +The latter has indeed a negative value. Note that if the sphere radius [[ratsph]] is not sufficiently large, +the amount of electrons will be smaller than expected based on chemical intuition. This means that there +is in this case a bias toward too positive integrated charges. By contrast, if the sphere radius is too large, +the spheres will overlap, and the electrons in the interatomic region will be double counted. """, ), @@ -1562,6 +1813,7 @@ defaultval=7, mnemonics="Climbing-Image Nudged Elastic Band: STARTing iteration", requires="[[imgmov]] == 5 and [[neb_algo]] == 2", + added_in_version="before_v9", text=r""" Gives the index of the first CI-NEB iteration. The CI-NEB method constitutes a small modification to the NEB method allowing @@ -1581,6 +1833,7 @@ defaultval=0, mnemonics="CONSTRAINT KIND in constrained DFT", requires="[[iscf]] > 1 and [[iscf]] < 10 and [[ionmov]] /= 4", + added_in_version="before_v9", text=r""" If [[constraint_kind]] is non-zero for at least one type of atom, the constrained DFT algorithm is activated. @@ -1595,8 +1848,9 @@ When [[constraint_kind]] is 10 or above, the charge constraint will be imposed. When [[constraint_kind]]=1 or 11, the exact value (vector in the non-collinear case, amplitude and sign in the collinear case) of the magnetization is constrained; -When [[constraint_kind]]=2 or 12, only the direction is constrained (only meaningful in the non-collinear case); -When [[constraint_kind]]=3 or 13, only the magnitude is constrained. +When [[constraint_kind]]=2 or 12, only the magnetization axis is constrained (only meaningful in the non-collinear case, albeit allowed); +When [[constraint_kind]]=3 or 13, only the magnetization magnitude is constrained. +When [[constraint_kind]]=4 or 14, only the magnetization direction is constrained (only meaningful in the non-collinear case, not allowed in the collinear case); For the algorithm, see [[topic:ConstrainedDFT]]. It makes important use of the potential residual, so the algorithm works only with [[iscf]] between 2 and 9. @@ -1613,10 +1867,126 @@ that they belong to different types, even if the same pseudopotential file is used for these atoms. There is an example in test [[test:v8_24]], the hydrogen dimer, where the charge around the first atom is constrained, and the charge around the second atom is left free. +Similarly, ABINIT is more careful about the control of symmetry: supposing that two atoms are related by some symmetry, then ABINIT +generates a FFT grid that is invariant under that symmetry, unless this additional constraint on the FFT grid is explicitly suppressed by the user. +In this respect, the default value of [[chksymtnons]] is not allowed, but [[chksymtnons]] must be equal to 3 (with the generation of a symmetric FFT grid) or 0. + +The difference between [[constraint_kind]]=4 or 14 and [[constraint_kind]]=2 or 12 lies in the fact that [[constraint_kind]]=2 or 12 will consider similarly +a magnetization vector and its opposite, as this constraint is just alignment on an axis, while [[constraint_kind]]=4 or 14 enforces that +the scalar product of the target magnetization direction (normalized vector) and the actual optimized magnetization direction (normalized vector) is positive. + Incidentally, [[ionmov]]==4 is not allowed in the present implementation of constrained DFT because the motion of atoms and simultaneous computation of constraints would be difficult to handle. """, ), +Variable( + abivarname="cprj_in_memory", + varset="gstate", + vartype="integer", + topics=['TuningSpeedMem_expert'], + dimensions="scalar", + defaultval="0", + mnemonics="C-PRoJectors IN MEMORY", + characteristics=['[[DEVELOP]]'], + added_in_version="", + text=r""" +For systems with many atoms, non-local operations are the most time-consuming part of the computation. +The non-local contribution of the wavefunction $\psi$ to the energy writes: + +$$ E_{non-local} = \sum_a\sum_{i,j} <\psi|p_{a,i}> e_{a,ij} $$ + +and the Hamiltonian applied to a wavefunction is: + +$$ H_{non-local}|\psi> = \sum_a\sum_{ij} |p_{a,i}> D_{a,ij} $$ + +The index "a" stands for atoms ([[natom]]), while "i" and "j" indices run over the set of available projectors in the pseudo-potential. +$e_{a,ij}$ and $D_{a,ij}$ are scalars. +In the PAW formalism ([[usepaw]] = 1), the overlap operator has the same structure than $H_{non-local}$. +Introducing the "cprj" coefficients: + +$$ cprj(a,i) = $$ + +the energy writes: + +$$ E_{non-local} = \sum_a\sum_{ij} \left(cprj(a,i)\right)^* e_{a,ij} cprj(a,j) $$ + +and the Hamiltonian becomes: + +$$ H_{non-local}|\psi> = \sum_a\sum_{i,j} |p_{a,i}> D_{a,ij} cprj(a,j) $$ + +With [[cprj_in_memory]] = 0, "cprj" coefficients are computed on-the-fly in many parts of the code, including ground-state computations. +If [[cprj_in_memory]] = 1, "cprj" coefficients are computed and stored in memory at the diagonalization step. This option is available only for LOBPCG ([[wfoptalg]]=114) and Chebyshev filtering ([[wfoptalg]]=111). +If [[cprj_in_memory]] = 2, "cprj" coefficients are stored in memory during the whole computation, and they evolve as the wavefunctions do. This feature is available only for [[wfoptalg]]=10. + +[[cprj_in_memory]] > 0 is expected to be faster than [[cprj_in_memory]] = 0 for big systems (many atoms and/or many bands). + +For now, [[cprj_in_memory]] = 1 is implemented only in the following context: + +* [[optdriver]] = 0 : ground-state computation. If optdriver/=0, [[cprj_in_memory]] is set to 0 automatically. + +* [[wfoptalg]] = 10,114 or 111 : using Congugate Gradient algorithm (PAW only), LOBPCG (PAW or NC) or Chebyshev filtering (PAW or NC) + +* [[rmm_diis]] = 0 : without the use of rmm_diis algorithm + +* [[berryopt]] = 0 : without finite electric-field + +* [[usefock]] = 0 : without Fock exchange term in the functional + +* [[nucdipmom]] = 0 : without nuclear dipolar moments + +For [[cprj_in_memory]] = 2, see [[cprj_update_lvl]] for a fine tuning of "cprj" updates (i.e. when they are computed directly from wavefunctions). + +""", +), + +Variable( + abivarname="cprj_update_lvl", + varset="dev", + vartype="integer", + topics=['TuningSpeedMem_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="C-PRoJectors UPDATE LeVeL", + characteristics=['[[DEVELOP]]'], + added_in_version="", + text=r""" +This variable is used to control the updates of "cprj" coefficients, which are kept in memory during the computation: + +$$ cprj(a,i) = $$ + +Read the [[cprj_in_memory]] documentation for details about the notations. +This feature is available only for [[cprj_in_memory]] = 2. +"cprj" coefficients are computed at the beginning of the run and evolves as the wave-function do. +In principle, there is no need to compute "cprj" coefficients directly from the wave-functions again after they are initialized. +However, numerical errors can accumulate and lead to a significant difference between "cprj" coefficients and wave-functions. +One can update the "cprj" coefficients from time to time, computing them directly from the wave-functions, in different places in the code: + +* A : at the beginning of the run, or after the move of atoms + +* B : after wave-functions orthogonalization + +* C : before the subspace diagonalization + +* D : at the end of an iteration in the conjugate gradient algorithm + +* E : at the beginning of the conjugate gradient algorithm + +The update is done depending on the [[cprj_update_lvl]] value according to the following table: + +cprj_update_lvl | A | B | C | D | E +--- | --- | --- | --- | --- | --- + 4 | X | | | | + 3 | X | X | | | + 2 | X | | X | | + 1 | X | X | X | | + -1 | X | X | X | X | + -2 | X | X | X | X | X + +The updates B, C and E add one computation of "cprj" coefficients per SCF step (see [[nstep]]), whereas the update D add one computation per "line" (see [[nline]]). +Places D and E are activated only for negative values of [[cprj_update_lvl]] and should be used only for debugging. +One can count the number of non-local operations done in a dataset using [[nonlop_ylm_count]] to precisely measure the effect of [[cprj_update_lvl]]. +""", +), Variable( abivarname="cpuh", @@ -1628,6 +1998,7 @@ mnemonics="CPU time limit in Hours", characteristics=['[[NO_MULTI]]', '[[INPUT_ONLY]]'], excludes="[[cpum]] or [[cpus]]", + added_in_version="before_v9", text=r""" Only one of the three real parameters [[cpus]], [[cpum]] and [[cpuh]] can be defined in the input file to set up a CPU time limit. When the job reaches @@ -1662,6 +2033,7 @@ mnemonics="CPU time limit in Minutes", characteristics=['[[NO_MULTI]]', '[[INPUT_ONLY]]'], excludes="[[cpuh]] or [[cpus]]", + added_in_version="before_v9", text=r""" Only one of the three real parameters [[cpus]], [[cpum]] and [[cpuh]] can be defined in the input file to set up a CPU time limit. When the job reaches @@ -1683,6 +2055,7 @@ mnemonics="CPU time limit in seconds", characteristics=['[[NO_MULTI]]', '[[INPUT_ONLY]]'], excludes="[[cpuh]] or [[cpum]]", + added_in_version="before_v9", text=r""" Only one of the three real parameters [[cpus]], [[cpum]] and [[cpuh]] can be defined in the input file to set up a CPU time limit. When the job reaches @@ -1694,40 +2067,19 @@ """, ), -Variable( - abivarname="dvdb_qcache_mb", - varset="eph", - vartype="real", - topics=['ElPhonInt_useful'], - dimensions="scalar", - defaultval=1024, - mnemonics="DVDB Q-CACHE size in Megabytes", - text=r""" -This variable activates a caching mechanism for the DFPT potentials. -The code will store in memory multiple q-points up to this size in Megabytes in order -to reduce the number of IO operations required to read the potentials from the DVDB file. - -This option leads to a **significant speedup** of calculations requiring integrations -in q-space ([[eph_task]] == 4) at the price of an increase of the memory requirements. -The speedup is important especially if the QP corrections are computed for several k-points. - -A negative value signals to the code that all the q-points in the DVDB should be stored in memory. -A zero value disables the cache. -""", -), - Variable( abivarname="d3e_pert1_atpol", varset="dfpt", vartype="integer", topics=['nonlinear_basic'], dimensions=[2], - defaultval=[1, 1], + defaultval=[1, '[[natom]]' ], mnemonics="3rd Derivative of Energy, mixed PERTurbation 1: limits of ATomic POLarisations", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" -Controls the range of atoms for which displacements will be considered in non- -linear computations (using the 2n+1 theorem), for the 1st perturbation. +Controls the range of atoms for which displacements will be considered in non-linear +computations (using the 2n+1 theorem), for the 1st perturbation. May take values from 1 to [[natom]], with **d3e_pert1_atpol** (1)<= **d3e_pert1_atpol** (2). See [[rfatpol]] for additional details. """, @@ -1739,9 +2091,10 @@ vartype="integer", topics=['nonlinear_basic'], dimensions=[3], - defaultval=[0, 0, 0], + defaultval=[1, 1, 1], mnemonics="3rd Derivative of Energy, mixed PERTurbation 1: DIRections", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Gives the directions to be considered in non-linear computations (using the 2n+1 theorem), for the 1st perturbation. @@ -1760,6 +2113,7 @@ defaultval=0, mnemonics="3rd Derivative of Energy, mixed PERTurbation 1: ELectric FielD", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Turns on electric field perturbation in non-linear computation, as 1st perturbation. Actually, such calculations requires first the non-self- @@ -1777,6 +2131,7 @@ defaultval=0, mnemonics="3rd Derivative of Energy, mixed PERTurbation 1: PHONons", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Turns on atomic displacement perturbation in non-linear computation, as 1st perturbation. See [[rfphon]] for additional details. @@ -1789,9 +2144,10 @@ vartype="integer", topics=['nonlinear_basic'], dimensions=[2], - defaultval=[1, 1], + defaultval=[1, '[[natom]]' ], mnemonics="3rd Derivative of Energy, mixed PERTurbation 2: limits of ATomic POLarisations", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Controls the range of atoms for which displacements will be considered in non- linear computations (using the 2n+1 theorem), for the 2nd perturbation. @@ -1809,6 +2165,7 @@ defaultval=[0, 0, 0], mnemonics="3rd Derivative of Energy, mixed PERTurbation 2: DIRections", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Gives the directions to be considered in non-linear computations (using the 2n+1 theorem), for the 2nd perturbation. @@ -1827,6 +2184,7 @@ defaultval=0, mnemonics="3rd Derivative of Energy, mixed PERTurbation 2: ELectric FielD", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Turns on electric field perturbation in non-linear computation, as 2nd perturbation. Actually, such calculations requires first the non-self- @@ -1844,6 +2202,7 @@ defaultval=0, mnemonics="3rd Derivative of Energy, mixed PERTurbation 2: PHONons", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Turns on atomic displacement perturbation in non-linear computation, as 2nd perturbation. See [[rfphon]] for additional details. @@ -1856,9 +2215,10 @@ vartype="integer", topics=['nonlinear_basic'], dimensions=[2], - defaultval=[1, 1], + defaultval=[1, '[[natom]]' ], mnemonics="3rd Derivative of Energy, mixed PERTurbation 3: limits of ATomic POLarisations", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Controls the range of atoms for which displacements will be considered in non- linear computations (using the 2n+1 theorem), for the 3rd perturbation. @@ -1876,6 +2236,7 @@ defaultval=[0, 0, 0], mnemonics="3rd Derivative of Energy, mixed PERTurbation 3: DIRections", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Gives the directions to be considered in non-linear computations (using the 2n+1 theorem), for the 3rd perturbation. @@ -1894,6 +2255,7 @@ defaultval=0, mnemonics="3rd Derivative of Energy, mixed PERTurbation 3: ELectric FielD", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Turns on electric field perturbation in non-linear computation, as 3rd perturbation. Actually, such calculations requires first the non-self- @@ -1912,6 +2274,7 @@ defaultval=0, mnemonics="3rd Derivative of Energy, mixed PERTurbation 3: PHONons", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Turns on atomic displacement perturbation in non-linear computation, as 3rd perturbation. See [[rfphon]] for additional details. @@ -1927,6 +2290,7 @@ defaultval=0.1, mnemonics="electric Displacement field DAMPing parameter", requires="[[berryopt]] in [6, 16]", + added_in_version="before_v9", text=r""" In case [[berryopt]] = 6, the electric field is updated after each SCF iteration according to $E_{n+1}=$[[ddamp]]$(D-4 \pi P_{n})+(1-$[[ddamp]]$)E_{n}$, where @@ -1948,10 +2312,11 @@ dimensions=[3], defaultval=[0, 0, 0], mnemonics="Derivative DataBase: Number of Grid points for Q-PoinTs", + added_in_version="before_v9", text=r""" This variable is mandatory when [[optdriver]] == 7. It defines the number of divisions in the (homogeneous) q-mesh used to generate the DDB file. See also -the description of the [[getddb]] input variable. +the description of the [[getddb]], [[getddb_filepath]] input variables. """, ), @@ -1963,6 +2328,7 @@ dimensions=[3], defaultval=[0.0, 0.0, 0.0], mnemonics="Derivative DataBase: SHIFT of the Q-points", + added_in_version="before_v9", text=r""" Only relevant when [[optdriver]] == 7. It defines the shift in the q-mesh used to generate the DDB file, which is defined by the [[ddb_ngqpt]] input @@ -1978,6 +2344,7 @@ dimensions="scalar", defaultval=0, mnemonics="DELAY between trials to PERMUTE atoms", + added_in_version="before_v9", text=r""" Delay (number of time steps) between trials to permute two atoms, in view of accelerated search of minima. Still in development. @@ -1988,26 +2355,6 @@ """, ), -Variable( - abivarname="chrgat", - varset="gstate", - vartype="real", - topics=['ConstrainedDFT_useful'], - dimensions=ValueWithConditions({'[[natrd]]<[[natom]]': '[ [[natrd]] ]', 'defaultval': '[ [[natom]] ]'}), - defaultval=0.0, - mnemonics="CHARGE of the AToms", - text=r""" -Gives the target integrated charge in case of constrained DFT calculations, see [[constraint_kind]]. -Given in atomic unit of charge (=minus the charge of the electron). -Note that this number is the net positive charge inside the sphere: one subtract from the -nucleus charge [[ziontypat]] the integrated valence electron density in a sphere defined by [[ratsph]]. -The latter has indeed a negative value. Note that if the sphere radius [[ratsph]] is not sufficiently large, -the amount of electrons will be smaller than expected based on chemical intuition. This means that there -is in this case a bias toward too positive integrated charges. By contrast, if the sphere radius is too large, -the spheres will overlap, and the electrons in the interatomic region will be double counted. -""", -), - Variable( abivarname="densfor_pred", varset="dev", @@ -2018,6 +2365,7 @@ mnemonics="DENSity and FORces PREDictor", characteristics=['[[DEVELOP]]'], requires="[[iscf]] > 0", + added_in_version="before_v9", text=r""" Used when [[iscf]] > 0, to define: @@ -2044,7 +2392,7 @@ Otherwise, use [[densfor_pred]] = 2 -!!! note "concerning the correction of forces (use of [[densfor_pred]] = 1, 2, 3, 4 or 6)" +!!! note "About the correction to forces (use of [[densfor_pred]] = 1, 2, 3, 4 or 6)" The force on the atom located at R is corrected by the addition of the following term: $F_{residual}=\int dr V_{residual} \frac{d \rho_{atomic}}{dR}$, @@ -2052,28 +2400,30 @@ - When such an atomic density ($\rho_{atomic}$) is found in the pseudopotential or PAW file, it is used. If not, a gaussian density (defined by [[densty]] parameter) is used. + - When SCF mixing is done on the density ([[iscf]] >= 10), the potential - residual ($V_residual$) is obtained from the density residual with the first + residual ($V_{residual}$) is obtained from the density residual with the first order formula $V_{residual}=\frac{dV}{d \rho} \rho_{residual}$ - and uses the exchange-correlation kernel - $ \frac{dV_{xc}}{d\rho}=K_{xc}$ whose computation is time-consuming for GGA - functionals. By default (positive values of [[densfor_pred]]), the local- - density part of the GGA exchange-correlation kernel is used (even for GGA, for - which it seems to give a reasonable accuracy). Using the full GGA exchange - correlation kernel (so, including derivatives with respect to the gradient of - the density) is always possible by giving a negative value to - [[densfor_pred]]. In case of hybrid functionals, a similar correction term is + and uses the exchange-correlation kernel $K_{xc}=\frac{dV_{xc}}{d\rho}$ whose computation + is time-consuming for GGA (or meta-GGA) functionals. + + - By default (positive values of [[densfor_pred]]), even for GGA and meta-GGA, + the local-density part of the exchange-correlation kernel is used, which gives a reasonable accuracy. + Using the full GGA exchange correlation kernel (so, including derivatives with respect to the gradient of + the density) is always possible by giving a negative value to [[densfor_pred]]. + + - In case of hybrid functionals, a similar correction term is added, although in the density mixing scheme, the related GGA kernel is used instead of the hybrid functional kernel. -!!! note "concerning the use of [[densfor_pred]] = 5 or 6 (density prediction)" +!!! note "About the use of [[densfor_pred]] = 5 or 6 (density prediction)" The algorithm is described in [[cite:Alfe1999]]. It uses an atomic (spherical) density. When such an atomic density is found in the pseudopotential or PAW file, it is used. If not, a gaussian density (defined by [[densty]] parameter) is used. Also note that, to be efficient, this algorithm requires a minimum convergence - of the SCF cycle; Typically, vres2 (or nres2) has to be small enough (10 -4 ...10 -5 ). + of the SCF cycle; Typically, vres2 (or nres2) has to be small enough (let's say smaller than 10e-4). """, ), @@ -2086,13 +2436,15 @@ defaultval=0.0, mnemonics="initial DENSity for each TYpe of atom", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives a rough description of the initial GS density, for each type of atom. -This value is only used to create the first exchange and correlation -potential, and is not used anymore afterwards. For the time being, it -corresponds to an average radius (a.u.) of the density, and is used to -generate a gaussian density. If set to 0.0d0, an optimized value is used. -No meaning for RF calculations. +This value is used to create the first exchange and correlation +potential. Afterwards, it is not used anymore, except in cases related to [[densfor_pred]]. + +[[densty]] gives an average radius (a.u.) of a Gaussian density, that will make each pseudoion neutral. +If set to 0.0, a tabulated value is used, announced as a 'decay length' in the log file. +No meaning for RF calculations or any calculation in which a starting density is taken as input. """, ), @@ -2105,6 +2457,7 @@ defaultval=MultipleValue(number=3, value=0.0), mnemonics="Displacement FIELD", requires="[[berryopt]] == 6 and [[efield]]", + added_in_version="before_v9", text=r""" In case [[berryopt]] = 6, [[dfield]] specifies the (unreduced) finite electric displacement field vector, in atomic units, that is to be imposed as a @@ -2121,11 +2474,12 @@ defaultval=0, mnemonics="DFPT SCISSor operator", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" -It is the value of the "scissors operator", the shift of conduction band +It is the value of the "scissors operator" [[cite:Levine1989]], the shift of conduction band eigenvalues, used in response function calculations. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[ecut]] has the -'[[ENERGY]]' characteristics (1 Ha = 27.2113845 eV). +[[ENERGY]] characteristics (1 Ha = 27.2113845 eV). Typical use is for response to electric field ([[rfelfd]] = 3), but NOT for d/dk ([[rfelfd]] = 2) and phonon responses. """, @@ -2140,13 +2494,14 @@ defaultval=2.2, mnemonics="DIElectric matrix energy CUToff", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Kinetic energy cutoff that controls the number of planewaves used to represent the dielectric matrix: $(1/2) [ 2 \pi \GG_{diel,max}]^2$ =[[diecut]] with $\GG_{diel,max}$ being the maximum length of the reciprocal space planewave wavevectors for the dielectric matrix. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[diecut]] has -the '[[ENERGY]]' characteristics. (1 Ha = 27.2113845 eV) +the [[ENERGY]] characteristics. (1 Ha = 27.2113845 eV) All planewaves inside this "basis sphere" centered at $\GG$=0 are included in the basis. This is useful only when [[iprcel]] > =21, which means that a preconditioning scheme based on the dielectric matrix is used. @@ -2169,12 +2524,13 @@ defaultval=0.1, mnemonics="DIElectric matrix GAP", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Gives a rough estimation of the dielectric gap between the highest energy level computed in the run, and the set of bands not represented. Used to extrapolate dielectric matrix when [[iprcel]] >= 21. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[diegap]] has -the '[[ENERGY]]' characteristics. (1 Ha = 27.2113845 eV). +the [[ENERGY]] characteristics (1 Ha = 27.2113845 eV). No meaning for RF calculations yet. """, @@ -2189,6 +2545,7 @@ defaultval=0.5, mnemonics="DIElectric matrix LAMbda", requires="[[iprcel]] >= 21", + added_in_version="before_v9", text=r""" Gives the amount of occupied states with mean energy given by the highest level computed in the run, included in the extrapolation of the dielectric matrix. @@ -2203,14 +2560,15 @@ vartype="real", topics=['SCFAlgorithms_useful'], dimensions="scalar", - defaultval="1.0774841d0", + defaultval="1.0774841", mnemonics="model DIElectric screening LeNGth", characteristics=['[[LENGTH]]'], + added_in_version="before_v9", text=r""" Used for screening length (in Bohr) of the model dielectric function, diagonal in reciprocal space. By default, given in Bohr atomic units (1 Bohr=0.5291772108 Angstrom), although Angstrom can be specified, if preferred, -since [[dielng]] has the '[[LENGTH]]' characteristics. +since [[dielng]] has the [[LENGTH]] characteristics. This model dielectric function is as follows (${\bf K}$ being a wavevector): \begin{equation} @@ -2245,6 +2603,7 @@ dimensions="scalar", defaultval=1000000.0, mnemonics="model DIElectric MACroscopic constant", + added_in_version="before_v9", text=r""" A rough knowledge of the macroscopic dielectric constant [[diemac]] of the system is a useful help to speed-up the SCF procedure: a model dielectric @@ -2264,7 +2623,7 @@ "extrapolar" technique, activated by the input variable [[iprcel]]. In sufficiently homogeneous systems, you might have to experiment a bit to find the best [[diemac]]. If you let [[diemac]] to its default value, you -might even never obtain the self-consistent convergence ! +might even never obtain the self-consistent convergence! For response function calculations, use the same values as for GS. The improvement in speed can be considerable for small (but non-zero) values of the wavevector. """, @@ -2281,6 +2640,7 @@ 'defaultval': None}), mnemonics="model DIElectric MIXing factor", requires="[[diemix]] >= 0.0 and [[diemix]] <= 1.0", + added_in_version="before_v9", text=r""" Gives overall factor of the preconditioned residual density/potential to be transferred in the SCF cycle. @@ -2309,6 +2669,7 @@ '[[iscf]]<10': '[[diemix]]', 'defaultval': '-[[diemix]]'}), mnemonics="model DIElectric MIXing factor for the MAGgnetization", + added_in_version="before_v9", text=r""" Gives overall factor of the preconditioned residual magnetization/magnetic field to be transferred in the SCF cycle (see [[diemix]] for further @@ -2333,6 +2694,7 @@ dimensions="scalar", defaultval=8, mnemonics="Direct Inversion in the Iterative Subspace MEMORY", + added_in_version="before_v9", text=r""" Gives the maximum number of "time" steps for which the forces and stresses are stored, and taken into account in the DIIS algorithm ([[ionmov]] = 20) to find @@ -2348,18 +2710,26 @@ dimensions="scalar", defaultval=1.0, mnemonics="lattice DILATation: MaXimal value", + added_in_version="before_v9", text=r""" [[dilatmx]] is an auxiliary variable used to book additional memory (see detailed description later) for possible -on-the-flight variations the plane wave basis set, due to cell optimization by ABINIT. -Useful only when [[ionmov]] == 2 or 22 and [[optcell]]/=0, that is, cell optimization. +on-the-flight enlargement of the plane wave basis set, due to cell volume increase during geometry optimization by ABINIT. +Useful only when doing cell optimization, e.g. [[optcell]]/=0, usually with [[ionmov]] == 2 or 22. +Supposing that the starting (estimated) lattice parameters are already rather accurate (or likely to be too large), +then the recommended value of [[dilatmx]] is 1.05. +When you have no idea of evolution of the lattice parameters, and suspect that a large increase during geometry optimization is possible, while +you need an accurate estimation of the geometry, then make a first +run with [[chkdilatmx]]=0, producing an inaccurate, but much better estimation, followed by a second run using +the newly estimated geometry, with [[chkdilatmx]]=1 (the default) and [[dilatmx]] set to 1.05. +If you are not in search of an accurate estimation of the lattice parameters anyhow, then run with [[chkdilatmx]]=0 only once. In the default mode ([[chkdilatmx]] = 1), when the [[dilatmx]] threshold is exceeded, ABINIT will rescale uniformly the tentative new primitive vectors to a value that leads at most to 90% of the maximal allowed [[dilatmx]] deviation from 1. It will do this three times (to prevent the geometry optimization algorithms to have taken a too large trial -step), but afterwards will exit. Setting [[chkdilatmx]] == 0 allows one to -book a larger planewave basis, but will not rescale the tentative new primitive vectors +Setting [[chkdilatmx]] == 0 allows one to +book a larger planewave basis (if [[dilatmx]] is set to be bigger than 1), but will not rescale the tentative new primitive vectors nor lead to an exit when the [[dilatmx]] threshold is exceeded. The obtained optimized primitive vectors will not be exactly the ones corresponding to the planewave basis set determined using [[ecut]] at the latter primitive vectors. Still, as an intermediate step in a geometry search @@ -2367,18 +2737,18 @@ Detailed explanation: The memory space for the planewave basis set is defined by multiplying [[ecut]] by [[dilatmx]] squared (the result is an "effective ecut", called -internally "ecut_eff". Other uses of [[ecut]] are not modified when [[dilatmx]] > 1.0. -Still, operations (like scalar products) are taking into account these fake non-used planewaves, -thus slowing down the ABINIT execution. +internally "ecut_eff"). Other uses of [[ecut]] are not modified when [[dilatmx]] > 1.0. +Still, operations (like scalar products) are done by taking into account these fake (non-used) planewaves, +even if their coefficients are set to zero, thus slowing down the ABINIT execution. Using [[dilatmx]]<1.0 is equivalent to changing [[ecut]] in all its uses. This is allowed, although its meaning is no longer related to a maximal expected scaling. Setting [[dilatmx]] to a large value leads to waste of CPU time and memory. By default, ABINIT will not accept that you define [[dilatmx]] bigger than 1.15. This behaviour will be overcome by using [[chkdilatmx]] == 0. -Supposing you think that the optimized [[acell]] values might be 10% larger -than your input values, use simply [[dilatmx]] 1.1. This will already lead to -an increase of the number of planewaves by a factor (1.1) 3 =1.331, and a +Supposing you think that the optimized [[acell]] values might be 5% larger +than your input values, use simply [[dilatmx]] 1.05. This will lead to +an increase of the number of planewaves by a factor $(1.05)^3$, which is about $1.158$, and a corresponding increase in CPU time and memory. It is possible to use [[dilatmx]] when [[optcell]] =0, but a value larger than 1.0 will be a waste. @@ -2393,6 +2763,7 @@ dimensions="scalar", defaultval=1, mnemonics="DIPole-DIPole interaction", + added_in_version="before_v9", text=r""" This variable defines the treatment of the dipole-dipole interaction. Same meaning as the corresponding anaddb variable [[dipdip@anaddb]] @@ -2411,9 +2782,10 @@ defaultval=MultipleValue(number=None, value=-10.0), mnemonics="initial Density MATrix for PAW+U", requires="[[usepaw]] == 1 and [[usepawu]] == 1 and [[usedmatpu]] != 0", + added_in_version="before_v9", text=r""" For Ground state calculations only. -Gives the value of an initial density matrix used in LDA+U and kept fixed +Gives the value of an initial density matrix used in DFT+U and kept fixed during the first abs([[usedmatpu]]) SCF iterations. Only components corresponding to [[lpawu]] angular momentum are requested. Restriction: In order to use dmatpawu, [[lpawu]] must be identical for all atom types (or -1). @@ -2431,7 +2803,7 @@ * m=2, $x^{2}-y^{2}$ [[dmatpawu]] must always be given as a "spin-up" occupation matrix (and -eventually a "spin-down" matrix). Be aware that its physical meaning depends +if needed a "spin-down" matrix). Be aware that its physical meaning depends on the magnetic properties imposed to the system (with [[nsppol]], [[nspinor]], [[nspden]]): @@ -2478,6 +2850,7 @@ defaultval=2, mnemonics="Density MATrix for PAW+U OPTion", requires="[[usepaw]] == 1 and [[usepawu]] == 1", + added_in_version="before_v9", text=r""" This option governs the way occupations of localized atomic levels are computed: @@ -2504,6 +2877,7 @@ defaultval=0, mnemonics="Density MATrix for paw+U, DIAGonalization", requires="[[usepaw]] == 1 and [[usepawu]] == 1 and [[nspden]] != 4", + added_in_version="before_v9", text=r""" Relevant only for Ground-State calculations. This option can be used to diagonalize the occupation matrix Nocc_{m,m_prime}. @@ -2522,10 +2896,12 @@ vartype="real", topics=['DMFT_expert'], dimensions="scalar", - defaultval=1, + defaultval=1e-06, mnemonics="Dynamical Mean Field Theory: charge density precision", + added_in_version="before_v9", text=r""" Precision to achieve in determining the charge density in the computation of the fermi level. +Should be decreased to increase precision. However, for a large system, it can increase importantly computer time. """, ), @@ -2538,10 +2914,15 @@ defaultval=1, mnemonics="Dynamical Mean Field Theory: Double Counting", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" -Value of double counting used for DMFT. Only value 1 is activated for the -moment and is the FLL double counting. +Value of double counting used for DMFT (so, only relevant for [[usedmft]]=1).. + + * 1 : corresponds to the "Full Localized Limit" double counting (to be used with [[usepawu]]=10). + * 2 : corresponds to the "Around Mean Field" double counting (this is not yet in production). + * 5 : the calculation is done without magnetism in the J term (cf [[cite:Park2015]] and [[cite:Chen2016a]]), to be used with [[usepawu]]=14. + * 6 : this option is in development. """, ), @@ -2554,6 +2935,7 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: ENTROPY", requires="[[usedmft]] == 1 and [[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" If 1, enables the calculation of the entropy within the DMFT framework and so allows one the calculation of the total energy (free energy). In the current @@ -2562,6 +2944,28 @@ """, ), +Variable( + abivarname="dmft_kspectral_func", + varset="dmft", + vartype="integer", + topics=['DMFT_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Dynamical Mean Field Theory: compute K-resolved SPECTRAL FUNCtion", + characteristics=['[[DEVELOP]]'], + added_in_version="9.0.0", + text=r""" + +When activated, in conjunction with [[iscf]] = -2 or -3, a calculation +of k-resolved spectral function (or density of state) is possible. +However, the calculation requires as input the self-energy computed in the real +axis using an external analytical continuation code. +The section 7 of the [[tutorial:dmft|tutorial on DFT+DMFT]] details how to obtain this data +and related informations. +""", +), + + Variable( abivarname="dmft_iter", varset="dmft", @@ -2571,6 +2975,7 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: number of ITERation", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Number of iterations for the DMFT inner loop. """, @@ -2585,8 +2990,9 @@ defaultval=0.3, mnemonics="Dynamical Mean Field Theory: MiXing parameter for the SelF energy", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" -Mixing parameter for the simple mixing of the self-energy (should be between 0.3 and 0.8). +Mixing parameter for the simple mixing of the self-energy (0.3 is safe, but it can be increased most of the time to 0.6). """, ), @@ -2600,6 +3006,7 @@ mnemonics="Dynamical Mean Field Theory: Number of LAMBDA points", characteristics=['[[DEVELOP]]'], requires="[[usedmft]] == 1 and [[dmft_entropy]] == 1", + added_in_version="before_v9", text=r""" [[dmft_nlambda]] gives the number of integration points for the thermodynamic integration in case of free energy calculation within DMFT. @@ -2616,6 +3023,7 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: Number of frequency omega (W) in the LInear mesh", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Number of Matsubara frequencies (linear mesh) """, @@ -2630,6 +3038,7 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: Number of frequency omega (W) in the LOg mesh", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Number of frequencies in the log mesh. """, @@ -2644,6 +3053,7 @@ defaultval=1, mnemonics="Dynamical Mean Field Theory: Occupation non-diagonal imaginary part", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" When 0 force non-diagonal occupations imaginary parts to be null. Do not use this, it is only for compatibility with old tests. """, @@ -2658,6 +3068,7 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: READ OCCupations (Non Diagonal)", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Flag to read/write Occupations as computed in DMFT. This flag is useful to restart a DFT+DMFT calculation with self-consistency over electronic density. @@ -2672,6 +3083,7 @@ An alternative and more simple way to restart a DFT+DMFT calculation is to use the density file (obtained with [[prtden]] = 1 or [[prtden]] = -1) and the self-energy (see [[dmft_rslf]]). +In this case, use [[dmft_read_occnd]]=0. """, ), @@ -2684,9 +3096,11 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: Read SeLF energy", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Flag to read/write Self-Energy. If put to one, self-energy is written and read at each DFT iteration. If self-energy file is missing, the self-energy is initialized to the double counting at the first iteration. +Importantly, in order to the calculation to restart easily, the self-energy is read and write in the same file. """, ), @@ -2699,15 +3113,17 @@ defaultval=5, mnemonics="Dynamical Mean Field Theory: choice of SOLVer", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Choice of solver for the Impurity model. * 0 --> No solver and U=0, J=0 (see [[upawu]] and [[jpawu]]). - * 1 --> LDA+U self-energy is used (for testing purpose) - * 2 --> Hubbard one solver. The Hubbard one solver is an approximation which gives a rough description of correlated Mott insulators. It should not be used for metals. - * 5 --> Use the Continuous Time Quantum Monte Carlo (CTQMC) solver CT-Hyb of ABINIT in the density density representation, CTQMC calculations are much more time consuming that Hubbard I calculations. Nevertheless, the calculation is fully parallelised. + * 1 --> DFT+U self-energy is used (for testing purpose) + * 2 --> Hubbard one solver in the density density approximation of the Coulomb interaction. The Hubbard one solver is an approximation which gives a rough description of correlated Mott insulators. It should not be used for metals. + * 5 --> Use the Continuous Time Quantum Monte Carlo (CTQMC) solver CT-Hyb of ABINIT in the density density approximation of the Coulomb interaction. The calculation is fully parallelised over MPI processes. * 6 --> Continuous Time Quantum Monte Carlo (CTQMC) solver CT-Hyb of TRIQS in the density density representation. * 7 --> Continuous Time Quantum Monte Carlo (CTQMC) solver CT-Hyb of TRIQS with the rotationally invariant formulation. + * 8 --> Same as 5, but off-diagonal elements of the hybridization function are taken into account (useful for low symetry systems or with spin orbit coupling). * 9 --> Python invocation. Give a symbolic link to your python interpreter as an input like 'input-tag'_TRIQS_python_lib and the python script as an input like 'input-tag'_TRIQS_script.py. The inputs for the script will be written in dft_for_triqs.nc and the output as triqs_for_dft.nc. The CT Hyb algorithm is described in [[cite:Werner2006]]. For a @@ -2736,6 +3152,7 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: t2g orbitals", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Can be set to 1 only if in cubic symmetry. It enables one to carry a DFT+DMFT @@ -2752,10 +3169,11 @@ defaultval=0.0001, mnemonics="Dynamical Mean Field Theory: TOLerance on DFT correlated electron occupation matrix for the definition of the FREQuency grid", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" -The LDA occupation matrix for correlated electrons can be computed directly. -It can be compared to the calculation of the same quantity using LDA Green's +The DFT occupation matrix for correlated electrons can be computed directly. +It can be compared to the calculation of the same quantity using DFT Green's function, a sum over Matsubara frequencies and a projection over correlated orbitals. Because the Matsubara grid is finite, the two quantities differ. If this difference is larger than dmft_tolfreq, then the code stops and an error @@ -2772,13 +3190,33 @@ defaultval=1e-05, mnemonics="Dynamical Mean Field Theory: TOLerance on Local Charge for convergence of the DMFT loop", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", + text=r""" +Tolerance for the variation of Local Charge for convergence of the DMFT Loop. +Most of the time however, DFT+DMFT calculations can converge fastly using [[dmft_iter]]=1, so +that this variable is not required. +""", +), + +Variable( + abivarname="dmft_wanorthnorm", + varset="dmft", + vartype="real", + topics=['DMFT_expert'], + dimensions="scalar", + defaultval=3, + mnemonics="Dynamical Mean Field Theory: WANnier OrthoNormalization", + characteristics=['[[DEVELOP]]'], + added_in_version="9.4.0", text=r""" -Tolerance for the variation of Local Charge during iterations of the DMFT Loop. -The default value is good for fast calculations. However, to obtain good -convergence of the DFT Loop, the DMFT Loop needs a better convergence criterion. +Definition of Wannier orthormalization in DMFT. +Default value is 3 (Normalization of the overlap of Wannier functions summed +over k-point) if [[natom]]=1, or 2 (Normalization of the overlap for each k-point) if +[[natom]]>1. """, ), + Variable( abivarname="dmftbandf", varset="dmft", @@ -2788,6 +3226,7 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: BAND: Final", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" [[dmftbandf]] is the last band taken into account in the Projected Local Orbitals scheme of DFT+DMFT. With [[dmftbandi]], they define the energy window @@ -2804,9 +3243,10 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: BAND: Initial", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" [[dmftbandi]] is the first band taken into account in the Projected Local -Orbitals scheme of LDA+DMFT. With [[dmftbandf]], they define the energy window +Orbitals scheme of DFT+DMFT. With [[dmftbandf]], they define the energy window used to define Wannier Functions (see [[cite:Amadon2008]]). """, ), @@ -2820,6 +3260,7 @@ defaultval=0, mnemonics="Dynamical Mean Field Theory: CHECKs", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Only for developer purposes. """, @@ -2835,6 +3276,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo BASIS", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Choose the basis to perform CTQMC calculation. @@ -2858,6 +3300,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo CHECK", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Check the fast calculations during the Monte Carlo simulation with very slow but robust methods. Should only be used for debugging. @@ -2879,6 +3322,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo CORRELations", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Flag to compute statistics about segments and anti-segments during the simulation. Slow down the simulation. @@ -2888,6 +3332,27 @@ """, ), +Variable( + abivarname="dmftctqmc_config", + varset="dmft", + vartype="integer", + topics=['DMFT_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Dynamical Mean Field Theory: CTQMC: calculation of weight of CONFIGurations", + characteristics=['[[DEVELOP]]'], + requires="[[dmft_solv]] in [5, 8]", + added_in_version="9.5.0", + text=r""" +Compute weight of configuration computed during CTQMC calculations. +For example, for a calculation on $d$ orbitals, the calculations +gives the weight of 0,1,2,3,4,5,6,7,8,9 and 10 electrons configurations. + * 0 --> Nothing done + * 1 --> Calculation of weight of configurations + * 2 --> Calculation of local magnetic susceptibilty +""", +), + Variable( abivarname="dmftctqmc_gmove", varset="dmft", @@ -2898,6 +3363,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo Global MOVEs", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Default is no global moves. The value of this variable is the modulo used to try a global move. A value of 5000 means that a global move is tried every 5000 Monte Carlo sweep. @@ -2914,6 +3380,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo GReeNs NoiSe", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Compute the statistical noise for each time slice of each green function. This is a good approximation only if there is enough Monte Carlo sweeps per cpu. @@ -2933,6 +3400,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo MEASurements", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" The modulo used to measure the interaction energy and the number of electrons. Example: 2 means the measure is perform every two sweeps. @@ -2949,6 +3417,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo MOVie", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Print a latex file per cpu displaying the full simulation. This option should only be use with very small number (<1000) of Monte Carlo sweeps since it @@ -2969,6 +3438,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo MARKov Analysis", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Measure the time evolution of the number of electrons for each orbital and perform a fourier transform. The result can be plotted using the "Markov_id.dat" file @@ -2988,6 +3458,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo perturbation ORDER", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Print a file containing the statistic distribution of the number of segments per orbital. The maximal order taken into account [[dmftctqmc_order]]: 50 @@ -3006,6 +3477,7 @@ mnemonics="Dynamical Mean Field Theory: Continuous Time Quantum Monte Carlo perturbation of TRIQS, Number of LEGendre polynomials", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] in [6, 7]", + added_in_version="before_v9", text=r""" Specify the number of Legendre polynomials used for the calculation of Green's function in CTQMC code from the library TRIQS. Default is 30. The value of @@ -3024,6 +3496,7 @@ mnemonics="Dynamical Mean Field Theory: Quantum Monte Carlo time sLices", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] >= 5", + added_in_version="before_v9", text=r""" Number of time slices used to represent the time green function. This value should be carefully chosen according to Niquist frequency and the [[tsmear]] value. @@ -3040,6 +3513,7 @@ mnemonics="Dynamical Mean Field Theory: Quantum Monte Carlo Number of sweeps", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] >= 5", + added_in_version="before_v9", text=r""" Number of Monte Carlo sweeps. Should be at least 106<\sup>. """, @@ -3055,6 +3529,7 @@ mnemonics="Dynamical Mean Field Theory: Quantum Monte Carlo SEED", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] >= 5", + added_in_version="before_v9", text=r""" Seed to initialize the random number generator. Should not be relevant except for testing purpose. @@ -3074,6 +3549,7 @@ mnemonics="Dynamical Mean Field Theory: Quantum Monte Carlo THERMalization", characteristics=['[[DEVELOP]]'], requires="[[dmft_solv]] == 5", + added_in_version="before_v9", text=r""" Number of Monte Carlo sweeps for the thermalization """, @@ -3088,14 +3564,15 @@ defaultval=0.0, mnemonics="DOS DELTA in Energy", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Defines the linear grid resolution (energy increment) to be used for the computation of the Density-Of-States, when [[prtdos]] is non-zero. If [[dosdeltae]] is set to zero (the default value), the actual increment is -0.001 Ha if [[prtdos]] = 1, and the much smaller value 0.00005 Ha if -[[prtdos]] = 2. This different default value arises because the [[prtdos]] = 1 -case, based on a smearing technique, gives a quite smooth DOS, while the DOS -from the tetrahedron method, [[prtdos]] = 2, is rapidly varying. +0.001 Ha if [[prtdos]] = 1 or 4 (smearing technique), and the much smaller value 0.00005 Ha if +[[prtdos]] = 2, 3 or 5 (tetrahedron technique). This different default value arises because the +smearing technique gives a quite smooth DOS, while the DOS +from the tetrahedron method is rapidly varying. """, ), @@ -3107,6 +3584,7 @@ dimensions="scalar", defaultval=100, mnemonics="Delta Time for IONs", + added_in_version="before_v9", text=r""" Used for controlling ion time steps. If [[ionmov]] is set to 1, 6, 7 and 15, then molecular dynamics is used to update atomic positions in response to forces. @@ -3139,6 +3617,7 @@ defaultval=MultipleValue(number=None, value=1), mnemonics="list of DYNamic IMAGEs", commentdefault="if [[imgmov]] in [2,5] (String Method, NEB), dynimage(1)=0 and dynimage([[nimage]])=0.", + added_in_version="before_v9", text=r""" This input variable is relevant when sets of images are activated (see [[imgmov]]). Not all images might be required to evolve from one time step to @@ -3161,27 +3640,30 @@ dimensions="scalar", mnemonics="Energy CUToff", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Used to define the kinetic energy cutoff which controls the number of planewaves at given k point. The allowed -plane waves are those with kinetic energy lower than [[ecut]], which translates to the following constraint +plane waves are those with kinetic energy lower than **ecut**, which translates to the following constraint on the planewave vector $\vec{G}$ in reciprocal space -$\frac{1}{2}(2\pi)^2 (\vec{k}+\vec{G})^2<$[[ecut]]. -All planewaves inside this "basis sphere" centered at k are included in the basis (except if [[dilatmx]] is defined). -Can be specified in Ha (the default), Ry, eV or Kelvin, since [[ecut]] has the -'[[ENERGY]]' characteristics. (1 Ha = 27.2113845 eV) +$$\frac{1}{2}(2\pi)^2 (\vec{k}+\vec{G})^2 < \text{ecut}.$$ + +All planewaves inside this **basis sphere** centered at k are included in the basis (except if [[dilatmx]] is defined). +The cutoff can be specified in Ha units (the default), Ry, eV or Kelvin, since **ecut** has the +[[ENERGY]] characteristics. (1 Ha = 27.2113845 eV) + This is the single parameter which can have an enormous effect on the quality -of a calculation; basically the larger [[ecut]] is, the better converged the +of a calculation; basically the larger **ecut** is, the better converged the calculation is. For fixed geometry, the total energy MUST always decrease as -[[ecut]] is raised because of the variational nature of the problem. +**ecut** is raised because of the variational nature of the problem. -_Usually one runs at least several calculations at various [[ecut]] to +_Usually one runs at least several calculations at various **ecut** to investigate the convergence needed for reliable results._ For k-points whose coordinates are build from 0 or 1/2, the implementation of time-reversal symmetry that links coefficients of the wavefunctions in reciprocal space has been realized. See the input variable [[istwfk]]. If -activated (which corresponds to the Default mode), this input variable +activated (which corresponds to the default mode), this input variable [[istwfk]] will allow to divide the number of plane wave (npw) treated explicitly by a factor of two. Still, the final result should be identical with the 'full' set of plane waves. @@ -3201,6 +3683,7 @@ mnemonics="Energy CUT-off for EPSilon (the dielectric matrix)", characteristics=['[[ENERGY]]'], requires="[[optdriver]] in [3, 4]", + added_in_version="before_v9", text=r""" [[ecuteps]] determines the cut-off energy of the planewave set used to represent the independent-particle susceptibility $\chi^{0}_{KS}$, the @@ -3218,12 +3701,13 @@ abivarname="ecutsigx", varset="gw", vartype="real", - topics=['SelfEnergy_compulsory'], + topics=['SelfEnergy_basic'], dimensions="scalar", defaultval=0.0, mnemonics="Energy CUT-off for SIGma eXchange", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" [[ecutsigx]] determines the cut-off energy of the planewave set used to generate the exchange part of the self-energy operator. For norm-conserving @@ -3231,6 +3715,8 @@ while for PAW calculations, the maximal useful value is [[pawecutdg]]. Thus, if you do not care about CPU time, please use these values. If you want to spare some CPU time, you might try to use a value between [[ecut]] and these upper limits. + +[[ecutsigx]] is actually used to initialize the internal variable [[npwsigx]]. """, ), @@ -3243,12 +3729,17 @@ defaultval=0.0, mnemonics="Energy CUToff SMearing", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" This input variable is important when performing relaxation of unit cell size and shape (non-zero [[optcell]]). Using a non-zero [[ecutsm]], the total energy curves as a function of [[ecut]], or [[acell]], can be smoothed, keeping consistency with the stress (and automatically including the Pulay -stress). The recommended value is 0.5 Ha. Actually, when [[optcell]]/=0, +stress). + +The recommended value is 0.5 Ha in such a case (non-zero [[optcell]]). + +Actually, when [[optcell]]/=0, ABINIT requires [[ecutsm]] to be larger than zero. If you want to optimize cell shape and size without smoothing the total energy curve (a dangerous thing to do), use a very small [[ecutsm]], on the order of one microHartree. @@ -3265,7 +3756,7 @@ and that at x=1, it is 1, with also vanishing derivative. If [[ecutsm]] is zero, the unmodified kinetic energy is used. [[ecutsm]] can be specified in Ha (the default), Ry, eV or Kelvin, since -[[ecutsm]] has the '[[ENERGY]]' characteristics. (1 Ha = 27.2113845 eV). +[[ecutsm]] has the [[ENERGY]] characteristics. (1 Ha = 27.2113845 eV). A few test for Silicon (diamond structure, 2 k-points) have shown 0.5 Ha to be largely enough for [[ecut]] between 2Ha and 6Ha, to get smooth curves. It is likely that this value is OK as soon as [[ecut]] is larger than 4Ha. @@ -3276,21 +3767,27 @@ abivarname="ecutwfn", varset="gw", vartype="real", - topics=['Susceptibility_compulsory', 'SelfEnergy_compulsory'], + topics=['Susceptibility_expert', 'SelfEnergy_expert'], dimensions="scalar", defaultval=ValueWithConditions({'[[optdriver]] in [3, 4]': '[[ecut]]', 'defaultval': 0.0}), mnemonics="Energy CUT-off for WaveFunctioNs", characteristics=['[[ENERGY]]'], requires=" [[optdriver]] in [3, 4]", + added_in_version="before_v9", text=r""" [[ecutwfn]] determines the cut-off energy of the planewave set used to represent the wavefunctions in the formula that generates the independent- particle susceptibility $\chi^{0}_{KS}$ (for [[optdriver]] = 3), or the self- energy (for [[optdriver]] = 4). -Usually, [[ecutwfn]] is smaller than [[ecut]], so that the wavefunctions are + +Although this is not recommended, one is allowed to set [[ecutwfn]] smaller than [[ecut]], so that the wavefunctions are filtered, and some components are ignored. As a side effect, the wavefunctions -are no more normalized, and also, no more orthogonal. Also, the set of plane -waves can be much smaller for [[optdriver]] = 3, than for [[optdriver]] = 4, +are no more normalized, and also, no more orthogonal. This also means +that the q=0, Q=0 or q=0, Q'=0 matrix elements of the susceptibility are not zero +as they should, which might be a problem in some cases depending on the intended usage of the +susceptibility matrix beyond standard GW and BSE calculations. + +Anyhow, the set of plane waves can be much smaller for [[optdriver]] = 3, than for [[optdriver]] = 4, although a convergence study is needed to choose correctly both values. The size of this set of planewaves is [[npwwfn]]. @@ -3306,6 +3803,7 @@ defaultval=1, mnemonics="EFFective MASS for the FREE electron", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" This parameter allows one to change the free electron mass, with respect to its experimental value. The electron mass is simply changed in the Schrodinger equation. @@ -3322,6 +3820,7 @@ defaultval=MultipleValue(number=3, value=0.0), mnemonics="Electric FIELD", requires="[[berryopt]] in [4, 6]", + added_in_version="before_v9", text=r""" In case [[berryopt]] = 4, a finite electric field calculation is performed. The value of this electric field, and its direction is determined by [[efield]]. @@ -3339,8 +3838,8 @@ !!! note - The atomic unit of electric field strength is: $\\frac{e_{Cb}}{4\pi\\varepsilon_0a_0^2}$, where - $e_{Cb}$ is the electronic charge in Coulomb (1.60217653$^{-19}$), $\\varepsilon_0$ is the + The atomic unit of electric field strength is: $\frac{e_{Cb}}{4\pi\varepsilon_0a_0^2}$, where + $e_{Cb}$ is the electronic charge in Coulomb (1.60217653$^{-19}$), $\varepsilon_0$ is the electric constant (8.854187817d-12 F/m), and $a_0$ is the Bohr radius in meter (0.5291772108$^{-10}$). """, @@ -3354,6 +3853,7 @@ dimensions="scalar", defaultval=0, mnemonics="EFfective MASs", + added_in_version="before_v9", text=r""" Turns on effective mass tensor calculations. Such calculations requires the non-self-consistent calculation of derivatives with respect to k, in the same @@ -3363,11 +3863,12 @@ * 1 --> effective mass tensor calculation !!! note + At the present time, both norm-conserving (NC) and PAW calculations are supported. Also, for PAW calculations only, [[nspinor]] == 2 and - [[pawspnorb]] == 1 (i.e. spin-orbit (SO) calculations) is supported. NC SO - calculations are NOT currently supported. Also, for both NC and PAW, - [[nspden]]/=1 and [[nsppol]]/=1 are NOT supported. + [[pawspnorb]] == 1 (i.e. spin-orbit (SO) calculations) is supported. + NC SO calculations are NOT currently supported. Also, for both NC and PAW, + [[nspden]] /= 1 and [[nsppol]] /= 1 are NOT supported. """, ), @@ -3380,6 +3881,7 @@ defaultval="The full range of band available in the calculation for each k-point.", mnemonics="EFfective MASs, BANDS to be treated.", requires="[[efmas]] == 1", + added_in_version="before_v9", text=r""" This variable controls the range of bands for which the effective mass is to be calculated. If a band is degenerate, all other bands of the degenerate @@ -3396,6 +3898,7 @@ defaultval=0, mnemonics="EFfective MASs, CALCulate along DIRectionS", requires="[[efmas]] == 1", + added_in_version="before_v9", text=r""" Allows the user to calculate the scalar effective mass of all bands specified by [[efmas_bands]] along specific directions in reciprocal space. This is @@ -3408,7 +3911,7 @@ [[efmas_dirs]]) and the effective masses along the 3 cartesian directions are output by default. When [[efmas_calc_dirs]] == 1, 2 or 3, [[efmas_n_dirs]] directions are read from -[[efmas_dirs]], assuming cartesian, reduced or angular ($\\theta$,$\phi$) +[[efmas_dirs]], assuming cartesian, reduced or angular ($\theta$,$\phi$) coordinates, respectively. In the case [[efmas_calc_dirs]] == 3, 2 real values per directions are read, whereas 3 real values are read in the two other cases. """, @@ -3423,6 +3926,7 @@ defaultval=1, mnemonics="EFfective MASs, activate DEGenerate formalism", requires="[[efmas]] > 0", + added_in_version="before_v9", text=r""" Activate (==1) or not (==0) the treatment of degenerate bands (criterion [[efmas_deg_tol]] is used to determine whether bands are degenerate). @@ -3441,10 +3945,11 @@ defaultval=1e-05, mnemonics="EFfective MASs, DEGeneracy TOLerance", requires="[[efmas_deg]] == 1", + added_in_version="before_v9", text=r""" Energy difference below which 2 bands are considered degenerate (and treated using the formalism activated with [[efmas_deg]] == 1). [[efmas_deg_tol]] has -the '[[ENERGY]]' characteristics. +the [[ENERGY]] characteristics. """, ), @@ -3457,6 +3962,7 @@ defaultval=3, mnemonics="EFfective MASs, DIMension of the effective mass tensor", requires="[[efmas]] == 1", + added_in_version="before_v9", text=r""" For 2D or 1D systems, the band dispersion goes to 0 perpendicular to the system, which causes the inverse effective mass to be singular, i.e. the @@ -3483,6 +3989,7 @@ defaultval=0, mnemonics="EFfective MASs, DIRectionS to be calculated", requires="[[efmas_calc_dirs]] > 0", + added_in_version="before_v9", text=r""" List of [[efmas_n_dirs]] directions to be considered according to the value of [[efmas_calc_dirs]]. The directions are specified by 3 real values if @@ -3499,6 +4006,7 @@ defaultval=0, mnemonics="EFfective MASs, Number of DIRectionS", requires="[[efmas_calc_dirs]] > 0", + added_in_version="before_v9", text=r""" Number of directions in [[efmas_dirs]], to be considered according to [[efmas_calc_dirs]]. """, @@ -3513,6 +4021,7 @@ defaultval=1000, mnemonics="EFfective MASs, Number of points for integration w/r to THETA", requires="[[efmas]] == 1 and [[efmas_bands]] == (degenerate band index)", + added_in_version="before_v9", text=r""" When a band is degenerate, the usual definition of effective mass becomes invalid. However, it is still possible to define a 'transport equivalent mass @@ -3532,6 +4041,7 @@ dimensions=[4], defaultval=[0, 0, 0, 0], mnemonics="Electron bands INTERPolation", + added_in_version="before_v9", text=r""" This variable activates the interpolation of the electronic eigenvalues. It can be used to interpolate KS eigenvalues at the end of the GS run or to @@ -3541,16 +4051,16 @@ The first element specifies the interpolation method. * 0 --> No interpolation (default) - * 1 --> Star-function interpolation (Shankland-Koelling-Wood Fourier interpolation scheme, see [[cite:Pickett1988]] + * 1 --> Star-function interpolation (modified Shankland-Koelling-Wood Fourier interpolation scheme, see [[cite:Pickett1988]]). The meaning of the other entries depend on the interpolation technique selected. In the case of star-function interpolation: * einterp(2): Number of star-functions per ab-initio k-point - * einterp(3): If non-zero, activate Fourier filtering according to Eq 9 of [[cite:Uehara2000]]. + * einterp(3): If non-zero, activate Fourier filtering according to Eq. 9 of [[cite:Uehara2000]]. In this case, rcut is given by einterp(2) * Rmax where Rmax is the maximum length of the lattice vectors included in the star expansion - * einterp(4): Used if einterp(2) /= 0. It defines rsigma in Eq 9 + * einterp(4): Used if einterp(3) /= 0. It defines rsigma in Eq. 9 """, ), @@ -3565,6 +4075,7 @@ mnemonics="ELectron-PHonon interaction at 2nd order: IMAGinary shift of the DENominator", characteristics=['[[ENERGY]]'], requires="[[ieig2rf]] != 0", + added_in_version="before_v9", text=r""" The variable [[elph2_imagden]] determines the imaginary shift of the @@ -3572,7 +4083,7 @@ $(e_{nk}-e_{n'k'}+i$[[elph2_imagden]]). One should use a width comparable with the Debye frequency or the maximum phonon frequency. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[ecut]] has the -'[[ENERGY]]' characteristics (1 Ha = 27.2113845 eV). +[[ENERGY]] characteristics (1 Ha = 27.2113845 eV). """, ), @@ -3584,8 +4095,9 @@ dimensions="scalar", defaultval=0, mnemonics="ENergy UNITs", + added_in_version="before_v9", text=r""" -Governs the units to be used for output of eigenvalues (and eventual phonon frequencies) +Governs the units to be used for output of eigenvalues (and if any, phonon frequencies) * 0 --> print eigenvalues in hartree; * 1 --> print eigenvalues in eV; @@ -3599,6 +4111,25 @@ """, ), +Variable( + abivarname="eph_ahc_type", + varset="eph", + vartype="integer", + topics=['ElPhonInt_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="Electron-PHonon: Allen-Heine-Cardona type", + added_in_version="9.11.6", + text=r""" +Only relevant for [[optdriver]]=7 and [[eph_task]]=4. +If set to 0, use the adiabatic version of the Allen-Heine-Cardona equation to compute the +zero-point renormalisation as well as temperature dependence. +If set to 1 (default), use the non-adiabatic version of the Allen-Heine-Cardona equation to compute the +zero-point renormalisation as well as temperature dependence. +Note: The use of [[eph_ahc_type]]=0 is not recommended in IR-active materials. +""", +), + Variable( abivarname="eph_extrael", varset="eph", @@ -3607,9 +4138,13 @@ dimensions="scalar", defaultval=0.0, mnemonics="Electron-PHonon: EXTRA ELectrons", + added_in_version="before_v9", text=r""" -Number of electrons per unit cell to be added to the initial value computed -from the pseudopotentials and unit cell. +Number of electrons per unit cell to be added/subtracted to the initial value computed +from the pseudopotentials and the unit cell. +Can be used to simulate doping within the rigid band approximation. +Require metallic occupation scheme [[occopt]] e.g. Fermi-Dirac. +See also [[eph_doping]] to specify the same quantity in terms of charge/cm^3 """, ), @@ -3622,10 +4157,13 @@ defaultval=0.0, mnemonics="Electron-PHonon: FERMI Energy", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" -This variable can be used to change the value of the Fermi level when -performing electron-phonon calculations with [[optdriver]] == 7. This variable -has effect only if set to a non-zero value. See also [[eph_extrael]]. +This variable can be used to change artificially the value of the Fermi level when +performing e-ph calculations. +The variable has effect only if set to a non-zero value. +This option is mutually exclusive with [[eph_extrael]] and [[eph_doping]]. +When [[eph_fermie]] is used the number of temperatures specified by [[tmesh]] cannot be greater than one. """, ), @@ -3637,8 +4175,9 @@ dimensions="scalar", defaultval=0, mnemonics="Electron-PHonon: FROHLICH Model", + added_in_version="before_v9", text=r""" -Only relevant for [[optdriver]]=7 and [[eph_task]]=6. +Only relevant for [[optdriver]]=7 and [[eph_task]]=6, 10. If set to 1, use the dynamical matrix at Gamma, the Born effective charges, the dielectric tensor, as well as the effective masses (must give a _EFMAS file as input, see [[prtefmas]] and [[getefmas]] or [[irdefmas]]), as the parameters of a Frohlich Hamiltonian. @@ -3648,15 +4187,34 @@ """, ), +Variable( + abivarname="eph_frohl_ntheta", + varset="eph", + vartype="integer", + topics=['ElPhonInt_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Electron-PHonon: FROHLIich Number of THETA points", + added_in_version="9.8.0", + text=r""" +Only relevant for [[optdriver]] = 7 and [[eph_task]] = 4 i.e. computation of the e-ph self-energy. +This variable defines the angular mesh for the spherical integration of the Frohlich divergence +in the microzone around the Gamma point to accelerate the convergence with the number of q-points. + +Set it to zero to disable the correction for testing purposes. +""", +), + Variable( abivarname="eph_fsewin", varset="eph", vartype="real", topics=['ElPhonInt_expert'], dimensions="scalar", - defaultval="0.01 Hartree", + defaultval="0.04 Hartree", mnemonics="Electron-Phonon: Fermi Surface Energy WINdow", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" This variable defines the energy window around the Fermi level used for e-ph calculations ([[optdriver]] = 7). Only states located in the energy range @@ -3676,9 +4234,12 @@ mnemonics="Electron-PHonon: Fermi surface SMEARing", characteristics=['[[ENERGY]]'], requires="[[eph_intmeth]] == 1", + added_in_version="before_v9", text=r""" -This variable defines the gaussian broadening used for the integration over -the Fermi surface when [[eph_intmeth]] == 1. +This variable defines the gaussian broadening used for the integration over the double delta +over the Fermi surface when [[eph_intmeth]] == 1. +A negative value, activates the adaptive gaussian broadening proposed in [[cite:Li2015]] +in which the broadening is automatically computed from the group velocities. """, ), @@ -3688,10 +4249,11 @@ vartype="integer", topics=['ElPhonInt_expert'], dimensions="scalar", - defaultval=2, + defaultval="2 (tetra) except when [[eph_task]] = 4 and when ([[eph_task]] = -4 and symsigma == 0), where 1 is used as default.", mnemonics="Electron-Phonon: INTegration METHod", + added_in_version="before_v9", text=r""" -This variable defines the technique for the integration over the Brillouin zone. +This variable defines the technique for the integration over the Brillouin zone in the EPH code. * 1 --> Gaussian technique with broadening factor * 2 --> Tetrahedron method. @@ -3701,13 +4263,21 @@ Phonon linewidths in metals (**eph_task** = 1): -: The default approach for the integration of the double-delta over the Fermi surface is 2 (tetrahedron). +: The default approach for the integration of the double-delta over the Fermi surface is 2 + (optimized tetrahedron by [[cite:Kawamura2014]]). When the gaussian method is used, the broadening is given by [[eph_fsmear]]. + A negative value activates the adaptive Gaussian broadening. See also [[eph_fsewin]]. -Electron-phonon self-energy +Electron-phonon self-energy (also spectral function) with **eph_task** = 4): + +: The default is [[eph_intmeth]] == 1, Lorentzian method with broadening specified by [[zcut]]. + Note that [[eph_intmeth]] == 2 is **still in development** for this case (ABINITv9.2). + +Imaginary part of the electron-phonon self-energy (**eph_task** = -4): -: The default is gaussian method with broadening specified by [[zcut]]. +: The default is [[eph_intmeth]] == 2, Tetrahedron method by [[cite:Bloechl1994]] except when [[symsigma]] == 0, + where it is [[eph_intmeth]] == 1. """, ), @@ -3719,6 +4289,7 @@ dimensions="scalar", defaultval=0.1, mnemonics="Electron-PHonon: MU STAR (electron-electron interaction strength)", + added_in_version="before_v9", text=r""" Average electron-electron interaction strength, for the computation of the superconducting Tc using Mc-Millan's formula. @@ -3733,6 +4304,7 @@ dimensions=[3], defaultval=[0, 0, 0], mnemonics="Electron-PHonon: Number of Grid Q-PoinTs in FINE grid.", + added_in_version="before_v9", text=r""" This variable activates the **interpolation** of the first-order variation of the self-consistent potential in the electron-phonon code ([[optdriver]] == 7). @@ -3749,7 +4321,7 @@ The computation of the e-ph matrix elements requires the knowledge of $\psi_{\bf k}$ and $\psi_{\bf k + q}$. This means that the k-mesh for electrons found in the WFK must be compatible with the one given in *eph_ngqpt_fine*. - The code can interpolate DFPT potentials but won't try to interpolate KS wavefunctions. + The code can interpolate DFPT potentials but is not able to interpolate KS wavefunctions, and will stop if ${\bf k + q}$ is not found in the WFK file. """, ), @@ -3763,27 +4335,52 @@ defaultval=1, requires="[[optdriver]] == 7", mnemonics="Electron-PHonon: Task", + added_in_version="before_v9", text=r""" Select the electron-phonon task to be performed when [[optdriver]] == 7. The choice is among: -* 0 --> No computation (mainly used to access the post-processing tools) +* 0 --> No computation. Mainly used to access the post-processing tools. * 1 --> Compute phonon linewidths in metals and superconducting properties (isotropic formalism). * 2 --> Compute e-ph matrix elements. Save results in GKK.nc file. * -2 --> Compute e-ph matrix elements. Save results in GKQ.nc file that can be post-processed with AbiPy. * 3 --> Compute phonon self-energy. -* 4 --> Compute electron self-energy (Fan-Migdal + Debye-Waller) and QP corrections. Generate SIGEPH.nc file. +* 4 --> Compute electron self-energy (Fan-Migdal + Debye-Waller) and QP corrections, also possibly the spectral function. Generate SIGEPH.nc file. * -4 --> Compute electron lifetimes due to e-ph interaction (imaginary part of Fan-Migdal self-energy). Generate SIGEPH.nc file. * 5 --> Interpolate DFPT potentials to produce a new DVDB file on the [[eph_ngqpt_fine]] q-mesh that can be read with [[getdvdb]] * -5 --> Interpolate DFPT potentials on the q-path specified by [[ph_qpath]] and [[ph_nqpath]]. Note that, in this case, the user has to provide the full list of q-points in the input, [[ph_ndivsm]] is not used to generate the q-path. -* 6 --> Estimate correction to the ZPR in polar materials using the Frohlich model. Requires EFMAS.nc file. -* 7 --> Compute phonon limited transport in semiconductors using lifetimes taken from SIGEPH.nc file. +* 6 --> Estimate correction to the ZPR in polar materials using the generalized Frohlich model. Requires EFMAS.nc file. See [[cite:Miglio2020]]. +* 7 --> Compute phonon limited transport in semiconductors using lifetimes taken from SIGEPH.nc file. See [[cite:Brunin2020b]]. +* 8 --> Compute phonon limited transport by solving the (linearized) IBTE using collision terms taken from SIGEPH.nc file. + Requires [[ibte_prep]] = 1 when computing the imaginary part of the e-ph self-energy with [[eph_task]] == -4. +* 9 --> Compute cumulant from SIGEPH.nc file specifcy via [[getsigeph_filepath]]. +* 10 --> Compute polaron effective mass, using the generalized Frohlich model, in the triply-degenerate VB or CB cubic case. + Polaron effective masses are computed along the 3 crystallographic directions: (100), (110) and (111). + Same requirements as for [[eph_task]] = 6. Reference: [[cite:Guster2021]] +* 11 --> Compute e-ph matrix elements on homogeneous k- and q-meshes. + Save results in GSTORE.nc file (requires netcdf library with MPI-IO support). + The k-mesh must be equal to the one associated to the input WFK file, the q-mesh is specified + by [[eph_ngqpt_fine]] (NB: the q-mesh must be a sub-mesh of the k-mesh or equal). +* 12 --> Migdal-Eliashberg equations (isotropic case). +* -12 --> Migdal-Eliashberg equations (anisotropic case). IN DEVELOPMENT. +* 13 --> Variational polaron equations +* -13 --> Compute polaron wavefunctions and atomic displacements in the supercell and write results to files +* 14 --> Compute the molecular Berry curvature from GSTORE.nc. No support for metals or non-collinear magnetism yet. Reference: [[cite:Saparov2022]], [[cite:Coh2023]]. * 15, -15 --> Write the average in r-space of the DFPT potentials to the V1QAVG.nc file. In the first case (+15) the q-points are specified via [[ph_nqpath]] and [[ph_qpath]]. The code assumes the - input DVDB contains q-points in the IBZ and the potentials along the path are interpolated with Fourier transform. + input DVDB contains q-points in the IBZ and the potentials along the path + are interpolated with Fourier transform. An array D(R) with the decay of the W(R,r) as a function of R is computed and saved to file In the second case (-15) the q-points are taken directly from the DVDB file. +* 16, -16 --> test_phrotation TO BE DOCUMENTED. +* 17 --> Compute e-ph matrix elements with the GWPT formalism IN DEVELOPMENT. +* 18 --> Compute e-ph matrix g(k,q) along high-symmetry path. See [[eph_fix_wavevec]] and other related variables. + +!!! important + + At the time of writing ( |today| ), PAW is not supported by the EPH code. + Also [[useylm]] must be set to 0 (default for NC pseudos). """, ), @@ -3795,6 +4392,7 @@ dimensions="scalar", defaultval=0, mnemonics="Electron-PHonon: TRANSPORT flag", + added_in_version="before_v9", text=r""" NB - this does not work yet. This variable can be used to turn on the calculation of transport quantities in the eph module of abinit. @@ -3812,11 +4410,12 @@ mnemonics="Energy SHIFT", characteristics=['[[DEVELOP]]', '[[ENERGY]]'], requires="[[wfoptalg]] == 3", + added_in_version="before_v9", text=r""" [[eshift]] gives the shift of the energy used in the shifted Hamiltonian squared. The algorithm will determine eigenvalues and eigenvectors centered on [[eshift]]. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[eshift]] has the -'[[ENERGY]]' characteristics. (1 Ha = 27.2113845 eV) +[[ENERGY]] characteristics. (1 Ha = 27.2113845 eV) """, ), @@ -3830,13 +4429,14 @@ mnemonics="Eigenvalue SMEARing", characteristics=['[[ENERGY]]'], requires="[[smdelta]] != 0", + added_in_version="before_v9", text=r""" The variable [[esmear]] determines the width of the functions approximating the delta function, $\delta(e_{nk}-e_{n'k'})$, present in the expression of the lifetimes. One should use a width comparable with the Debye frequency or the maximum phonon frequency. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[ecut]] has the -'[[ENERGY]]' characteristics (1 Ha = 27.2113845 eV). +[[ENERGY]] characteristics (1 Ha = 27.2113845 eV). """, ), @@ -3850,6 +4450,7 @@ mnemonics="EXCHange MIXing", characteristics=['[[DEVELOP]]'], requires="[[useexexch]] == 1", + added_in_version="before_v9", text=r""" [[exchmix]] allows one to tune the ratio of exact exchange when [[useexexch]] is used. The default value of 0.25 corresponds to PBE0. @@ -3860,11 +4461,12 @@ abivarname="exchn2n3d", varset="dev", vartype="integer", - topics=['TuningSpeed_expert'], + topics=['TuningSpeedMem_expert'], dimensions="scalar", defaultval=0, mnemonics="EXCHange N2 and N3 Dimensions", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" If [[exchn2n3d]] is 1, the internal representation of the FFT arrays in reciprocal space will be array(n1,n3,n2), where the second and third @@ -3873,16 +4475,36 @@ """, ), +Variable( + abivarname="expert_user", + varset="gstate", + vartype="integer", + topics=['UnitCell_expert','crystal_expert','SmartSymm_expert','GeoOpt_expert','k-points_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="EXPERTise of the USER", + added_in_version="9.2.2", + text=r""" +If set to 0, the checking provided by ABINIT is maximum (default values of [[chkprim]], [[chksymbreak]], [[chksymtnons]], [[chkdilatmx]], +[[chkparal]]). +If non-zero (up to three), the above-mentioned checking input variables are all disabled (set to zero) +although it is still possible to activate particular tests by specifying input variables directly in the input file. +In the future, the level three will always be the maximum allowed value, with all checks set to zero, +while a more refined behaviour might be implemented for [[expert_user]]==1 or 2). +""", +), + Variable( abivarname="extrapwf", varset="dev", vartype="integer", - topics=['TuningSpeed_expert', 'MolecularDynamics_expert'], + topics=['TuningSpeedMem_expert', 'MolecularDynamics_expert'], dimensions="scalar", defaultval=0, mnemonics="flag - EXTRAPolation of the Wave-Functions", characteristics=['[[DEVELOP]]'], requires="[[densfor_pred]] in [5, 6]", + added_in_version="before_v9", text=r""" This flag activates the extrapolation of wave-functions from one Molecular Dynamics (or Structural Relaxation) step to another. The wave functions are @@ -3906,6 +4528,7 @@ 'defaultval': 0}), mnemonics="F4 Over F2 ratio of Slater integrals", requires="[[usepaw]] == 1 and ([[usepawu]] == 1 or [[usedmft]] == 1)", + added_in_version="before_v9", text=r""" This gives the ratio of Slater Integrals F4 and F2. It is used in DFT+U or DFT+DMFT for the calculation of the orbital dependent screened coulomb interaction. @@ -3921,6 +4544,7 @@ defaultval=0.4943, mnemonics="F6 Over F2 ratio of Slater integrals", requires="([[usepawu]] == 1 or [[usedmft]] == 1) and [[lpawu]] == 3", + added_in_version="before_v9", text=r""" Gives the ratio of Slater Integrals F6 and F2. It is used with [[f4of2_sla]] == 3 in DFT+U or DFT+DMFT for the calculation of the orbital @@ -3940,6 +4564,7 @@ 'defaultval': 0.0}), mnemonics="Factor for the number of BANDs", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Governs the number of bands to be used in the code in the case the parameter [[nband]] is not defined in the input file (which means that [[occopt]] is not @@ -3972,32 +4597,53 @@ dimensions="scalar", defaultval=0, mnemonics="FERMI Energy for printing the NESTing function", + added_in_version="before_v9", text=r""" This input variable is only effective when [[prtnest]] = 1. The energy is relative to the calculated Fermi energy. """, ), +Variable( + abivarname="ffnl_lw", + varset="dfpt", + vartype="integer", + topics=['longwave_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="NonLocal Form Factors in LongWave calculation", + characteristics=['[[DEVELOP]]'], + added_in_version="v9.9", + text=r""" +In a longwave calculation, the nonlocal form factors and their derivatives are +by default computed for all k points and atom types at an initial step and then +specifically used for each type of perturbation. Depending on the calculation +parameters --in particular for dense k-point grids, large ecut and pseudopotentials +with large l and n values-- such approach might lead to high virtual memory usage. + +With [[ffnl_lw]] = 1 the form factors and derivatives are instead calculated +on-the-fly for each type of perturbation and k point when they are required. +This option saves virtual memory but makes the computation of spatial-dispersion +tensors slower. +""", +), + + Variable( abivarname="fftalg", varset="dev", vartype="integer", - topics=['TuningSpeed_useful'], + topics=['TuningSpeedMem_useful'], dimensions="scalar", - defaultval=ValueWithConditions({'[[FFTW3]] and [[usedmft]] == 0': 312, - '[[paral_kgb]] == 1': 401, - 'defaultval': 112}), + defaultval=ValueWithConditions({'[[FFTW3]] and [[usedmft]] == 0': 312, '[[paral_kgb]] == 1': 401, 'defaultval': 112}), mnemonics="Fast Fourier Transform ALGorithm", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" -This keyword is **irrelevant** when Fast Fourier Transforms are done using -**Graphics Processing Units** (GPU), i.e. when [[use_gpu_cuda]] = 1 -(in that case, it is ignored). - -Allows to choose the algorithm for Fast Fourier Transforms. These have to be -used when applied to wavefunctions (routine `fourwf`), as well as when -applied to densities and potentials (routine `fourdp.F90`). Presently, it is the -concatenation of three digits, labelled (A), (B) and (C). +Allows to choose the implementation for performing Fast Fourier Transforms. +These have to be used when applied to wavefunctions (routine `fourwf`), as well as when +applied to densities and potentials (routine `fourdp.F90`). +Presently, it is the concatenation of three digits, labelled (A), (B) and (C). The first digit (A) is to be chosen among 1, 2, 3, 4 or 5: @@ -4022,6 +4668,15 @@ This is very efficient for cache architectures. (coded for A==1 and A==4, but A==4 is not yet sufficiently tested) Internal representation as [[ngfft]](7). + +FFTW and DFTI are usually faster than the internal implementation and are therefore recommended. +These libraries, however, must be activated at configure time with e.g. the *with_fft_flavor* option. +In this case, the default value of [[fftalg]] is changed accordingly. + +!!! important + + This keyword is **ignored** when Fast Fourier Transforms are done using + **Graphics Processing Units** (GPU), i.e. when [[gpu_option]] > 0. """, ), @@ -4029,18 +4684,64 @@ abivarname="fftcache", varset="dev", vartype="integer", - topics=['TuningSpeed_expert'], + topics=['TuningSpeedMem_expert'], dimensions="scalar", defaultval=16, mnemonics="Fast Fourier Transform CACHE size", characteristics=['[[DEVELOP]]'], commentdefault="todo: Not yet machine-dependent", + added_in_version="before_v9", text=r""" Gives the cache size of the current machine, in Kbytes. Internal representation as [[ngfft]](8). """, ), +Variable( + abivarname="fft_count", + varset="dev", + vartype="integer", + topics=['TuningSpeedMem_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Fast Fourier Transform COUNTer", + characteristics=['[[DEVELOP]]'], + added_in_version="", + text=r""" +This variable is similar than [[nonlop_ylm_count]], but for FFT operations instead of non-local ones. + +FFT operations are one of the most time-consumming operations, especially for systems with few atoms. +It is then interesting to count the number of FFT operations in a dataset, which is done with [[fft_count]] = 1 (or any non-zero value). +More precisely, it counts the number of FFTs done in "fourdp" and "fourwf" routines. + +This feature is not equivalent to what other profiling tools would give (as the one included in Abinit, see [[timopt]]), because the number of FFTs done per call +depends on input options which vary during the computation. +Indeed, one or two FFTs could be done in one call. +The counting activated by [[fft_count]] takes into account this effect. +Also, one can count several datasets separately in one run. + +For now, this feature is available only in the following context: + +* [[optdriver]] = 0 : ground-state computation + +* [[paral_kgb]] = 0 : simple parallelization over k-points + +If the counting is activated, a little report is written in abinit output. +Here an example: + + --- FFT COUNTERS ------------------------------------------------------------ + total Number of Bands : NB = 64 + | total count (TC) | TC/NB + ----------------------------------------------------------------------------- + fourdp | 45 | + fourwf | 4918 | 76.8 + ----------------------------------------------------------------------------- + +The total count (TC) corresponds to the number of calls of the routine. +NB is the total number of bands, including the empty ones, summed over the k-points. +""", +), + Variable( abivarname="fftgw", varset="gw", @@ -4050,6 +4751,7 @@ defaultval=21, mnemonics="FFT for GW calculation", requires=" [[optdriver]] in [3, 4]", + added_in_version="before_v9", text=r""" The basic ingredients needed to perform both a screening and a sigma calculation are the so-called oscillator matrix elements defined as @@ -4060,7 +4762,7 @@ the number of reciprocal lattice vectors employed to describe the wavefunctions is given by [[ecutwfn]]. In the case of screening calculations, the number of **G** vectors in the above expression is defined by [[ecuteps]], -while [[ecutsigx]] defined the number of **G** used in sigma calculations. To +while [[ecutsigx]] defines the number of **G** used in sigma calculations. To improve the efficiency of the code, the oscillator matrix elements are evaluated in real space through FFT techniques, and the [[fftgw]] input variable is used to select the FFT mesh to be used. @@ -4088,6 +4790,25 @@ """, ), +Variable( + abivarname="field_red", + varset="ffield", + vartype="real", + topics=[], + dimensions=[3], + defaultval=MultipleValue(number=3, value=0.0), + mnemonics="FIELD in REDuced coordinates", + requires="[[berryopt]] in [4, 6, 14, 16, 17]", + added_in_version="v9.11.2", + text=r""" +Stores the field direction in reduced coordinates, deduced from [[dfield]], [[efield]], +[[red_efieldbar]], [[red_dfield]], [[red_efield]], and/or [[jfielddir]], +depending on the value of [[berryopt]], for the purpose of computing +the symmetries of the system placed in such field. +""", +), + + Variable( abivarname="fockdownsampling", varset="gstate", @@ -4097,6 +4818,7 @@ defaultval="3*1", mnemonics="FOCK operator, k-grid DOWNSAMPLING", requires="[[usefock]] == 1", + added_in_version="before_v9", text=r""" The k wavevector grid used to compute the Fock operator in the full Brillouin Zone might be a subset of the full Brillouin Zone of the k point grid used for @@ -4132,6 +4854,53 @@ """, ), +Variable( + abivarname="fock_icutcoul", + varset="gstate", + vartype="integer", + topics=['Hybrids_useful','Coulomb_useful'], + dimensions="scalar", + defaultval=3, + mnemonics="Integer that governs the CUT-off for COULomb interaction", + added_in_version="before_v9", + text=r""" +!!!Under development!!! +Electronic structure calculations for isolated systems, 1D and 2D systems +present a slow convergence with respect to the size of the supercell due to the +long ranged Coulomb interaction and the high degree of non-locality of the +operators involved. Thus, restricting the range of the Coulomb interaction, +in order to prevent supercell images to interact can significantly speed-up +convergence, or even can make convergence happen. Also, even in the ground-state +case, a cut-off Coulomb interaction might prove useful. + +[[fock_icutcoul]] defines the particular expression to be used for the Fock +operator in reciprocal space (see [[icutcoul]] for the Hartree contributions to ground state calculations, +and [[gw_icutcoul]] for the corresponding treatment in GW calculations). + +The choice of [[fock_icutcoul]] depends on the +dimensionality and the character of the XC functional used (or otherwise the +presence of the exclusive treatment of the short-range exchange interaction). +Possible values of [[fock_icutcoul]] are from 0 to 5, but currently are available +options 0 and 5. Option 5 is hard coded as the method to be applied to HSE functionals. + +Like for [[icutcoul]], for 1-dimensional and 2-dimensional systems, the geometry of the system has to be specified explicitly. +This is done thanks to [[vcutgeo]]. For 0-, 1- and 2-dimensional systems, a cut-off length has to be provided, thanks to [[rcut]]. + + * 0 --> Sphere (molecules, but also 3D-crystals, see below). See [[rcut]]. + * 1 --> (W.I.P.) cylinder (nanowires, nanotubes). See [[vcutgeo]] and [[rcut]]. + * 2 --> (W.I.P) Surface. See [[vcutgeo]] and [[rcut]]. + * 3 --> (W.I.P) 3D crystal (Coulomb interaction without cut-off). + * 4 --> (W.I.P.)ERF, long-range only Coulomb interaction. + * 5 --> ERFC, short-range only Coulomb interaction (e.g. as used in the HSE functional). + +Note that Spencer and Alavi showed that the +spherical cutoff can efficiently be used also for 3D systems [[cite:Spencer2008]]. +In the latter case, use a negative value for the cutoff radius of the sphere ([[rcut]]<0), +which is automatically calculated so that the volume enclosed in the sphere is +equal to the volume of the solid. +""", +), + Variable( abivarname="fockoptmix", varset="gstate", @@ -4141,6 +4910,7 @@ defaultval=0, mnemonics="FOCK operator: OPTions for MIXing", requires="[[usefock]] == 1", + added_in_version="before_v9", text=r""" Governs the mixing algorithm at the level of the Fock operator, i.e. how to mix it, and how the underlying SCF calculation is to be performed. It is the @@ -4153,7 +4923,7 @@ (it continues to use the previous potential/density pairs without worrying). 2. If [[fockoptmix]] == 1: the SCF algorithm is restarted (the previous potential/density pairs are discarded). -The second-to-last (dozen) digit governs the possible modification of the XC +The second-to-last (tens) digit governs the possible modification of the XC functional inside the SCF loop to take into account the lack of update of the Fock operator. Irrelevant when the unit digit is 0. If the value 1 is used (so, e.g. [[fockoptmix]] == 11), an auxiliary xc functional is used inside the @@ -4174,9 +4944,10 @@ defaultval=5.0, mnemonics="FREQuencies along the IMaginary axis ALPHA parameter", requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" [[freqim_alpha]] is used only for numerical integration of the GW self-energy -([[gwcalctyp]] = 2, 12, 22, 9, 19, 29). +([[gwcalctyp]] in [2, 12, 22, 9, 19, 29]). [[freqim_alpha]] determines the location of the maximum frequency point along the imaginary axis if the default grid is used in Contour Deformation (numerical integration) calculations. It is set as $\alpha*\omega_p$, where $\omega_p$ @@ -4196,9 +4967,10 @@ mnemonics="FREQuencies along the Real axis MAXimum", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 3", + added_in_version="before_v9", text=r""" [[freqremax]] is used only for numerical integration of the GW self-energy -([[gwcalctyp]] = 2, 12, 22, 9, 19, 29). +([[gwcalctyp]] in [2, 12, 22, 9, 19, 29]). [[freqremax]] sets the maximum real frequency used to calculate the dielectric matrix in order to perform the numerical integration of the GW self-energy. [[freqremax]], [[freqremin]] and [[nfreqre]] define the spacing of the frequency mesh along the real axis. @@ -4215,9 +4987,10 @@ mnemonics="FREQuencies along the Real axis MINimum", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 3", + added_in_version="before_v9", text=r""" [[freqremin]] is used only for numerical integration of the GW self-energy -([[gwcalctyp]] = 2, 12, 22, 9, 19, 29). +([[gwcalctyp]] in [2, 12, 22, 9, 19, 29]). [[freqremin]] sets the minimum real frequency used to calculate the dielectric matrix in order to perform the numerical integration of the GW self-energy. [[freqremin]] can be used to split a wide frequency interval into smaller @@ -4239,6 +5012,7 @@ mnemonics="FREQuencies for the SPectral function MAXimum", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" [[freqspmax]] sets the maximum real frequency used to calculate the spectral function from the GW Green's function. [[freqspmin]], [[freqspmax]] and @@ -4258,6 +5032,7 @@ mnemonics="FREQuencies for the SPectral function MINimum", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" [[freqspmin]] sets the minimum real frequency used to calculate the spectral function from the GW Green's function. [[freqspmin]] is set to -[[freqspmax]] @@ -4275,6 +5050,7 @@ dimensions="scalar", defaultval=0.001, mnemonics="internal FRICTION coefficient", + added_in_version="before_v9", text=r""" Gives the internal friction coefficient (atomic units) for Langevin dynamics (when [[ionmov]] = 9): fixed temperature simulations with random forces. @@ -4294,6 +5070,7 @@ dimensions="scalar", defaultval=0, mnemonics="FReeZe FERMI energy", + added_in_version="before_v9", text=r""" Can be used to suppress artificially the first-order change of Fermi energy, in case of Response Function calculation for metals at Q=0. If the input variable @@ -4309,6 +5086,7 @@ dimensions="scalar", defaultval=ValueWithUnit(units='(Bohr^2)/Hartree', value=1), mnemonics="Forces to (X) CARTesian coordinates FACTOR", + added_in_version="before_v9", text=r""" The forces multiplied by [[fxcartfactor]] will be treated like difference in cartesian coordinates in the process of optimization. This is a simple preconditioner. @@ -4325,6 +5103,7 @@ dimensions="scalar", defaultval=1, mnemonics="Genetic Algorithm - ALGOrithm selection", + added_in_version="before_v9", text=r""" Choosing method to make the structure selection. Only the enthalpy is used now but we plan to include, energy, electronic band gap and alchemical potentials. @@ -4340,6 +5119,7 @@ dimensions="scalar", defaultval=1, mnemonics="Genetic Algorithm FITNESS function selection", + added_in_version="before_v9", text=r""" Different methodologies to perform the roulette-wheel selection of parents. Even though, the objective function is the crystalline enthalpy (H_i), the @@ -4360,6 +5140,7 @@ dimensions="scalar", defaultval=1, mnemonics="Genetic Algorithm Number of RULES", + added_in_version="before_v9", text=r""" Different genetic rules have been implemented and the user has the change to choose between any of them. Right now we have 4 rules. See [[ga_rules]] @@ -4374,6 +5155,7 @@ dimensions="scalar", defaultval=0.2, mnemonics="Genetic Algorithm OPTimal PERCENT", + added_in_version="before_v9", text=r""" Percentage of the population that according to the fitness function passes to the following iteration. """, @@ -4387,6 +5169,7 @@ dimensions="scalar", defaultval=1, mnemonics="Genetic Algorithm RULES", + added_in_version="before_v9", text=r""" Different genetic rules have been implemented and the user has the change to choose between any of them. The chosen number of rules have been defined in [[ga_n_rules]] @@ -4412,6 +5195,7 @@ dimensions=[3], defaultval=MultipleValue(number=3, value=0), mnemonics="GENerator of the translation for Anti-FerroMagnetic space group", + added_in_version="before_v9", text=r""" This input variable might be used to define a Shubnikov type IV magnetic space group (anti-ferromagnetic space group). The user is advised to consult [[cite:Bradley1972]] @@ -4433,19 +5217,24 @@ dimensions="scalar", defaultval=0, mnemonics="GET the first-order density from _1DEN file", + added_in_version="before_v9", text=r""" Relevant only for non self consistent RF calculations (e.g. to get electron phonon matrix elements) or for non linear RF calculations (to get mixed higher order derivatives you need several perturbed densities and wave functions). Indicate the files from which first-order densities must be obtained, in multi-dataset mode (in single dataset mode, use [[ird1den]]). -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - - ndtset 3 jdtset 1 2 4 getXXX -1 -refers to dataset 2 when dataset 4 is initialized. + * If [[get1den]]=0, no previously computed values are used. + * If [[get1den]]>0, the value must be the index of the dataset from which the +cell data is to be used as input data. It must be the index of a dataset already +computed in the SAME run. + * If [[get1den]]=-1, the output data of the previous dataset must be taken, which +is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[get1den]]=another negative number, it indicates the number of datasets to go backward +to find the needed data (once again, going back beyond the first dataset is +equivalent to using a zero get variable). """, ), @@ -4457,13 +5246,26 @@ dimensions="scalar", defaultval=0, mnemonics="GET the first-order wavefunctions from _1WF file", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate starting wavefunctions, as an alternative to [[ird1wf]]. One should first read the explanations given for these latter variables. -This variable is typically used to chain the calculations in the multi-dataset mode, since they -describe from which dataset the OUTPUT wavefunctions are to be taken, as INPUT +This variable is typically used to chain the calculations in the multi-dataset mode, since it +describes from which dataset the OUTPUT wavefunctions are to be taken, as INPUT wavefunctions of the present dataset. + + * If [[get1wf]]=0, no previously computed values are used. + * If [[get1wf]]>0, the value must be the index of the dataset from which the +cell data is to be used as input data. It must be the index of a dataset already +computed in the SAME run. + * If [[get1wf]]=-1, the output data of the previous dataset must be taken, which +is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[get1wf]]=another negative number, it indicates the number of datasets to go backward +to find the needed data (once again, going back beyond the first dataset is +equivalent to using a zero get variable). + See also discussion in [[getwfk]]. """, ), @@ -4476,20 +5278,24 @@ dimensions="scalar", defaultval=0, mnemonics="GET the Bethe-Salpeter COUPling block from...", + added_in_version="before_v9", text=r""" -Eventually used when [[ndtset]] > 0 (multi-dataset mode) and, in the case of a -Bethe-Salpeter calculation to indicate that the starting coupling block of the +Eventually used when [[ndtset]] > 0 (multi-dataset mode), in the case of a +Bethe-Salpeter calculation, to indicate that the starting coupling block of the excitonic Hamiltonian will be taken from the output of a previous dataset. It is used to chain the calculations, since it describes from which dataset the OUTPUT coupling block is to be taken, as INPUT of the present dataset. -If [[getbscoup]] == 0, no such use of previously computed coupling block file is done. -If [[getbscoup]] is positive, its value gives the index of the dataset to be used as input. -If [[getbscoup]] is -1, the output of the previous dataset must be taken, -which is a frequently occurring case. -If [[getbscoup]] is a negative number, it indicates the number of datasets to -go backward to find the needed file. In this case, if one refers to a non -existent data set (prior to the first), the coupling block is not initialised -from a disk file, so that it is as if [[getbscoup]] = 0 for that initialisation. + + * If [[getbscoup]]=0, no previously computed values are used. + * If [[getbscoup]]>0, the value must be the index of the dataset from which the +cell data is to be used as input data. It must be the index of a dataset already +computed in the SAME run. + * If [[getbscoup]]=-1, the output data of the previous dataset must be taken, which +is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[getbscoup]]=another negative number, it indicates the number of datasets to go backward +to find the needed data (once again, going back beyond the first dataset is +equivalent to using a zero get variable). """, ), @@ -4501,21 +5307,24 @@ dimensions="scalar", defaultval=0, mnemonics="GET the Bethe-Salpeter EIGenstates from...", + added_in_version="before_v9", text=r""" -Eventually used when [[ndtset]] > 0 (multi-dataset mode) and, in the case of a -Bethe-Salpeter calculation to indicate that the starting excitonic eigenstates +Eventually used when [[ndtset]] > 0 (multi-dataset mode), in the case of a +Bethe-Salpeter calculation, to indicate that the starting excitonic eigenstates are to be taken from the output of a previous dataset. It is used to chain the calculations, since it describes from which dataset the OUTPUT eigenstates are to be taken, as INPUT eigenstates of the present dataset. -If [[getbseig]] == 0, no such use of previously computed output eigenstates file is done. -If [[getbseig]] is positive, its value gives the index of the dataset from -which the output states is to be used as input. -If [[getbseig]] is -1, the output eigenstates of the previous dataset must be -taken, which is a frequently occurring case. -If [[getbseig]] is a negative number, it indicates the number of datasets to -go backward to find the needed file. In this case, if one refers to a non -existent data set (prior to the first), the eigenstates are not initialised -from a disk file, so that it is as if [[getbseig]] = 0 for that initialisation. + + * If [[getbseig]]=0, no previously computed values are used. + * If [[getbseig]]>0, the value must be the index of the dataset from which the +cell data is to be used as input data. It must be the index of a dataset already +computed in the SAME run. + * If [[getbseig]]=-1, the output data of the previous dataset must be taken, which +is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[getbseig]]=another negative number, it indicates the number of datasets to go backward +to find the needed data (once again, going back beyond the first dataset is +equivalent to using a zero get variable). """, ), @@ -4527,20 +5336,24 @@ dimensions="scalar", defaultval=0, mnemonics="GET the Bethe-Salpeter RESOnant block from...", + added_in_version="before_v9", text=r""" -Eventually used when [[ndtset]] > 0 (multi-dataset mode) and, in the case of a -Bethe-Salpeter calculation to indicate that the starting resonant block of the +Eventually used when [[ndtset]] > 0 (multi-dataset mode), in the case of a +Bethe-Salpeter calculation, to indicate that the starting resonant block of the excitonic Hamiltonian will be taken from the output of a previous dataset. It is used to chain the calculations, since it describes from which dataset the OUTPUT resonant block is to be taken, as INPUT of the present dataset. -If [[getbsreso]] == 0, no such use of previously computed resonant block file is done. -If [[getbsreso]] is positive, its value gives the index of the dataset to be used as input. -If [[getbsreso]] is -1, the output of the previous dataset must be taken, -which is a frequently occurring case. -If [[getbsreso]] is a negative number, it indicates the number of datasets to -go backward to find the needed file. In this case, if one refers to a non -existent data set (prior to the first), the resonant block is not initialised -from a disk file, so that it is as if [[getbsreso]] = 0 for that initialisation. + + * If [[getbsreso]]=0, no previously computed values are used. + * If [[getbsreso]]>0, the value must be the index of the dataset from which the +cell data is to be used as input data. It must be the index of a dataset already +computed in the SAME run. + * If [[getbsreso]]=-1, the output data of the previous dataset must be taken, which +is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[getbsreso]]=another negative number, it indicates the number of datasets to go backward +to find the needed data (once again, going back beyond the first dataset is +equivalent to using a zero get variable). """, ), @@ -4552,21 +5365,23 @@ dimensions="scalar", defaultval=0, mnemonics="GET CELL parameters from...", + added_in_version="before_v9", text=r""" This variable is typically used to chain the calculations, in the multi- -dataset mode ([[ndtset]] > 0), since it describes from which dataset [[acell]] -and [[rprim]] are to be taken, as input of the present dataset. The cell -parameters are [[EVOLVING]] variables, for which such a chain of calculations is useful. -If 0, no previously computed values are used. -If >0, the value must be the index of the dataset from which the +dataset mode ([[ndtset]] > 0). It describes from which dataset the output [[acell]] +and [[rprim]] are to be taken (implicitly also [[scalecart]]), as input of the present dataset. +The cell parameters are [[EVOLVING]] variables, for which such a chain of calculations is useful. + + * If [[getcell]]=0, no previously computed values are used. + * If [[getcell]]>0, the value must be the index of the dataset from which the cell data is to be used as input data. It must be the index of a dataset already computed in the SAME run. -If equal to -1, the output data of the previous dataset must be taken, which + * If [[getcell]]=-1, the output data of the previous dataset must be taken, which is a frequently occurring case. However, if the first dataset is treated, -1 is equivalent to 0, since no dataset has been computed in the same run. -If another negative number, it indicates the number of datasets to go backward + * If [[getcell]]=another negative number, it indicates the number of datasets to go backward to find the needed data (once again, going back beyond the first dataset is -equivalent to using a null get variable). +equivalent to using a zero get variable). """, ), @@ -4578,12 +5393,13 @@ dimensions="scalar", defaultval=0, mnemonics="GET the DDB from...", + added_in_version="before_v9", text=r""" This variable should be used when performing electron-phonon or temperature-dependent calculations in semiconductors with the legacy implementation that computes the e-ph matrix elements at the end of the DFPT run (for the new EPH code, see [[eph_task]]). -More detailed explanation: +More detailed explanation... The Born effective charge as well as the dielectric tensor will be read from a previous DFPT calculations of the electric field at @@ -4592,20 +5408,19 @@ q-points. The use of this variable greatly improves the k-point convergence speed as the density of the k-point grid required to obtain the fulfillment of the charge neutrality sum rule is usually prohibitively large. -If [[getddb]] == 0, no such use of previously computed Born effective charge and dielectric tensor is done. -If [[getddb]] is positive, its value gives the index of the dataset from which the output density is to be used as input. -If [[getddb]] is -1, the output density of the previous dataset must be taken, which is a frequently occurring case. -If [[getddb]] is a negative number, it indicates the number of datasets to go backward to find the needed file. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - - ndtset 3 jdtset 1 2 4 getXXX -1 - -refers to dataset 2 when dataset 4 is initialized. + * If [[getddb]]=0, no previously computed values are used. + * If [[getddb]]>0, the value must be the index of the dataset from which the +cell data is to be used as input data. It must be the index of a dataset already +computed in the SAME run. + * If [[getddb]]=-1, the output data of the previous dataset must be taken, which +is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[getddb]]=another negative number, it indicates the number of datasets to go backward +to find the needed data (once again, going back beyond the first dataset is +equivalent to using a zero get variable). -Note also that, starting Abinit v9, one can also use [[getddb_path]] to specify the path of the file directly. +Note also that, starting Abinit v9, one can also use [[getddb_filepath]] to specify the path of the file directly. """, ), @@ -4617,44 +5432,30 @@ dimensions="scalar", defaultval=0, mnemonics="GET the DDK wavefunctions from _1WF file", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate -starting wavefunctions, as an alternative to -[[irdwfk]],[[irdwfq]],[[ird1wf]],[[irdddk]]. One should first read the -explanations given for these latter variables. -The **getwfk**, **getwfq**, **get1wf** and [[getddk]] variables are -typically used to chain the calculations in the multi-dataset mode, since they -describe from which dataset the OUTPUT wavefunctions are to be taken, as INPUT -wavefunctions of the present dataset. +starting DDK wavefunctions, as an alternative to [[irdddk]]. One should first read the +explanations given for the latter variable. +This variable is typically used to chain the calculations in the multi-dataset mode, since it +describes from which dataset the OUTPUT DDK wavefunctions are to be taken, as INPUT +DDK wavefunctions of the present dataset. + + * If [[getddk]]=0, no use of previously computed output DDK wavefunction file +appended with _DSx_1WF is done. + * If [[getddk]] is positive, its value gives the index of the dataset for which +the output wavefunction file appended with _1WF must be used. + * If [[getddk]] is -1, the output 1wf file with _1WF of the previous dataset must +be taken, which is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[getddk]] is a negative number, it indicates the number of datasets to go +backward to find the needed wavefunction file. +Going back beyond the first dataset is equivalent to using zero for the get variable. -We now focus on the **getwfk** input variable (the only one used in ground- -state calculations), but the rules for **getwfq** and **get1wf** are similar, -with _WFK replaced by _WFQ or _1WF. -If **getwfk** ==0, no use of previously computed output wavefunction file -appended with _DSx_WFK is done. -If **getwfk** is positive, its value gives the index of the dataset for which -the output wavefunction file appended with _WFK must be used. -If **getwfk** is -1, the output wf file with _WFK of the previous dataset must -be taken, which is a frequently occurring case. -If **getwfk** is a negative number, it indicates the number of datasets to go -backward to find the needed wavefunction file. In this case, if one refers to -a non existent data set (prior to the first), the wavefunctions are not -initialised from a disk file, so that it is as if **getwfk** =0 for that -initialisation. Thanks to this rule, the use of **getwfk** -1 is rather -straightforward: except for the first wavefunctions, that are not initialized -by reading a disk file, the output wavefunction of one dataset is input of the -next one. In the case of a ddk calculation in a multi dataset run, in order to compute -correctly the localisation tensor, it is mandatory to declare give getddk the +correctly the localisation tensor, it is mandatory to give [[getddk]] the value of the current dataset (i.e. getddk3 3 ) - this is a bit strange and should be changed in the future. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - - ndtset 3 jdtset 1 2 4 getXXX -1 - -refers to dataset 2 when dataset 4 is initialized. """, ), @@ -4666,93 +5467,60 @@ dimensions="scalar", defaultval=0, mnemonics="GET the 1st derivative of wavefunctions with respect to ELectric FielD, from _1WF file", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate -starting wavefunctions, as an alternative to -[[irdwfk]],[[irdwfq]],[[ird1wf]],[[irdddk]]. One should first read the -explanations given for these latter variables. -The **getwfk**, **getwfq**, **get1wf** and [[getddk]] variables are -typically used to chain the calculations in the multi-dataset mode, since they -describe from which dataset the OUTPUT wavefunctions are to be taken, as INPUT +starting wavefunctions for the 1st derivative of wavefunctions with respect to ELectric FielD, from _1WF file. +The [[getdelfd]] variable is +typically used to chain the calculations in the multi-dataset mode, since it +describes from which dataset the OUTPUT wavefunctions is to be taken, as INPUT wavefunctions of the present dataset. -We now focus on the **getwfk** input variable (the only one used in ground- -state calculations), but the rules for **getwfq** and **get1wf** are similar, -with _WFK replaced by _WFQ or _1WF. -If **getwfk** ==0, no use of previously computed output wavefunction file -appended with _DSx_WFK is done. -If **getwfk** is positive, its value gives the index of the dataset for which -the output wavefunction file appended with _WFK must be used. -If **getwfk** is -1, the output wf file with _WFK of the previous dataset must -be taken, which is a frequently occurring case. -If **getwfk** is a negative number, it indicates the number of datasets to go -backward to find the needed wavefunction file. In this case, if one refers to -a non existent data set (prior to the first), the wavefunctions are not -initialised from a disk file, so that it is as if **getwfk** =0 for that -initialisation. Thanks to this rule, the use of **getwfk** -1 is rather -straightforward: except for the first wavefunctions, that are not initialized -by reading a disk file, the output wavefunction of one dataset is input of the -next one. -In the case of a ddk calculation in a multi dataset run, in order to compute -correctly the localisation tensor, it is mandatory to declare give getddk the -value of the current dataset (i.e. getddk3 3 ) - this is a bit strange and -should be changed in the future. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - - ndtset 3 jdtset 1 2 4 getXXX -1 - -refers to dataset 2 when dataset 4 is initialized. + * If [[getdelfd]]=0, no use of previously computed output wavefunction file +appended with _DSx_1WF is done. + * If [[getdelfd]] is positive, its value gives the index of the dataset for which +the output wavefunction file appended with _1WF must be used. + * If [[getdelfd]] is -1, the output 1wf file with _1WF of the previous dataset must +be taken, which is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[getdelfd]] is a negative number, it indicates the number of datasets to go +backward to find the needed wavefunction file. +Going back beyond the first dataset is equivalent to using zero for the get variable. """, ), Variable( - abivarname="getdkdk", + abivarname="getden", varset="files", vartype="integer", topics=['multidtset_useful'], dimensions="scalar", defaultval=0, - mnemonics="GET the 2nd derivative of wavefunctions with respect to K, from _1WF file", + mnemonics="GET the DENsity from...", + added_in_version="before_v9", text=r""" -Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate -starting wavefunctions, as an alternative to -[[irdwfk]],[[irdwfq]],[[ird1wf]],[[irdddk]]. One should first read the -explanations given for these latter variables. -The **getwfk**, **getwfq**, **get1wf** and [[getddk]] variables are -typically used to chain the calculations in the multi-dataset mode, since they -describe from which dataset the OUTPUT wavefunctions are to be taken, as INPUT -wavefunctions of the present dataset. +Eventually used when [[ndtset]] > 0 (multi-dataset mode) and, in the case of a +ground-state calculation, if [[iscf]]<0 (non-SCF calculation), to indicate +that the starting density is to be taken from the output of a previous +dataset. It is used to chain the calculations, since it describes from which +dataset the OUTPUT density is to be taken, as INPUT density of the present dataset. +Alternative to [[getden_filepath]] and [[irdden]]. -We now focus on the **getwfk** input variable (the only one used in ground- -state calculations), but the rules for **getwfq** and **get1wf** are similar, -with _WFK replaced by _WFQ or _1WF. -If **getwfk** ==0, no use of previously computed output wavefunction file -appended with _DSx_WFK is done. -If **getwfk** is positive, its value gives the index of the dataset for which -the output wavefunction file appended with _WFK must be used. -If **getwfk** is -1, the output wf file with _WFK of the previous dataset must -be taken, which is a frequently occurring case. -If **getwfk** is a negative number, it indicates the number of datasets to go -backward to find the needed wavefunction file. In this case, if one refers to -a non existent data set (prior to the first), the wavefunctions are not -initialised from a disk file, so that it is as if **getwfk** =0 for that -initialisation. Thanks to this rule, the use of **getwfk** -1 is rather -straightforward: except for the first wavefunctions, that are not initialized -by reading a disk file, the output wavefunction of one dataset is input of the -next one. -In the case of a ddk calculation in a multi dataset run, in order to compute -correctly the localisation tensor, it is mandatory to declare give getddk the -value of the current dataset (i.e. getddk3 3) - this is a bit strange and -should be changed in the future. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: + * If [[getden]] == 0, no such use of previously computed output density file is done. - ndtset 3 jdtset 1 2 4 getXXX -1 + * If [[getden]] is positive, its value gives the index of the dataset from which +the output density is to be used as input. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. -refers to dataset 2 when dataset 4 is initialized. + * If [[getden]] is -1, the output density of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[getden]] is a negative number, it indicates the number of datasets to go +backward to find the needed file. Going back beyond the first dataset is equivalent to using zero for the get variable. + +Be careful: the output density file of a run with non-zero [[ionmov]] does +not have the proper name (it has a "TIM" indication) for use as an input of an [[iscf]]<0 calculation. +One should use the output density of a [[ionmov]] == 0 run. """, ), @@ -4764,87 +5532,55 @@ dimensions="scalar", defaultval=0, mnemonics="GET the mixed 2nd derivative of wavefunctions with respect to K and electric field, from _1WF file", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate -starting wavefunctions, as an alternative to -[[irdwfk]],[[irdwfq]],[[ird1wf]],[[irdddk]]. One should first read the -explanations given for these latter variables. -The **getwfk**, **getwfq**, **get1wf** and [[getddk]] variables are -typically used to chain the calculations in the multi-dataset mode, since they -describe from which dataset the OUTPUT wavefunctions are to be taken, as INPUT +starting DKDE wavefunctions. +The [[getdkde]] variable is +typically used to chain the calculations in the multi-dataset mode, since it +describes from which dataset the OUTPUT wavefunctions are to be taken, as INPUT wavefunctions of the present dataset. -We now focus on the **getwfk** input variable (the only one used in ground- -state calculations), but the rules for **getwfq** and **get1wf** are similar, -with _WFK replaced by _WFQ or _1WF. -If **getwfk** ==0, no use of previously computed output wavefunction file -appended with _DSx_WFK is done. -If **getwfk** is positive, its value gives the index of the dataset for which -the output wavefunction file appended with _WFK must be used. -If **getwfk** is -1, the output wf file with _WFK of the previous dataset must -be taken, which is a frequently occurring case. -If **getwfk** is a negative number, it indicates the number of datasets to go -backward to find the needed wavefunction file. In this case, if one refers to -a non existent data set (prior to the first), the wavefunctions are not -initialised from a disk file, so that it is as if **getwfk** =0 for that -initialisation. Thanks to this rule, the use of **getwfk** -1 is rather -straightforward: except for the first wavefunctions, that are not initialized -by reading a disk file, the output wavefunction of one dataset is input of the -next one. -In the case of a ddk calculation in a multi dataset run, in order to compute -correctly the localisation tensor, it is mandatory to declare give getddk the -value of the current dataset (i.e. getddk3 3 ) - this is a bit strange and -should be changed in the future. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - - ndtset 3 jdtset 1 2 4 getXXX -1 - -refers to dataset 2 when dataset 4 is initialized. + * If [[getdkde]]=0, no use of previously computed output DKDE wavefunction file +appended with _DSx_1WF is done. + * If [[getdkde]] is positive, its value gives the index of the dataset for which +the output wavefunction file appended with _1WF must be used. + * If [[getdkde]] is -1, the output 1wf file with _1WF of the previous dataset must +be taken, which is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[getdkde]] is a negative number, it indicates the number of datasets to go +backward to find the needed wavefunction file. +Going back beyond the first dataset is equivalent to using zero for the get variable. """, ), Variable( - abivarname="getden", + abivarname="getdkdk", varset="files", vartype="integer", topics=['multidtset_useful'], dimensions="scalar", defaultval=0, - mnemonics="GET the DENsity from...", + mnemonics="GET the 2nd derivative of wavefunctions with respect to K, from _1WF file", + added_in_version="before_v9", text=r""" -Eventually used when [[ndtset]] > 0 (multi-dataset mode) and, in the case of a -ground-state calculation, if [[iscf]]<0 (non-SCF calculation), to indicate -that the starting density is to be taken from the output of a previous -dataset. It is used to chain the calculations, since it describes from which -dataset the OUTPUT density are to be taken, as INPUT density of the present dataset. - -If [[getden]] == 0, no such use of previously computed output density file is done. - -If [[getden]] is positive, its value gives the index of the dataset from which -the output density is to be used as input. - -If [[getden]] is -1, the output density of the previous dataset must be taken, -which is a frequently occurring case. - -If [[getden]] is a negative number, it indicates the number of datasets to go -backward to find the needed file. In this case, if one refers to a non -existent data set (prior to the first), the density is not initialised from a -disk file, so that it is as if [[getden]] = 0 for that initialisation. Thanks to -this rule, the use of [[getden]] -1 is rather straightforward: except for the -first density, that is not initialized by reading a disk file, the output -density of one dataset is input of the next one. -Be careful: the output density file of a run with non-zero [[ionmov]] does -not have the proper name (it has a "TIM" indication) for use as an input of an [[iscf]]<0 calculation. -One should use the output density of a [[ionmov]] == 0 run. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - - ndtset 3 jdtset 1 2 4 getXXX -1 +Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate +starting DKDK wavefunctions. +The [[getdkdk]] variable is +typically used to chain the calculations in the multi-dataset mode, since it +describes from which dataset the OUTPUT wavefunctions are to be taken, as INPUT +wavefunctions of the present dataset. -refers to dataset 2 when dataset 4 is initialized. + * If [[getdkdk]]=0, no use of previously computed output DKDK wavefunction file +appended with _DSx_1WF is done. + * If [[getdkdk]] is positive, its value gives the index of the dataset for which +the output wavefunction file appended with _1WF must be used. + * If [[getdkdk]] is -1, the output 1wf file with _1WF of the previous dataset must +be taken, which is a frequently occurring case. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + * If [[getdkdk]] is a negative number, it indicates the number of datasets to go +backward to find the needed wavefunction file. +Going back beyond the first dataset is equivalent to using zero for the get variable. """, ), @@ -4856,13 +5592,26 @@ dimensions="scalar", defaultval=0, mnemonics="GET the DVDB from...", + added_in_version="before_v9", text=r""" This variable can be used when performing electron-phonon calculations with [[optdriver]] = 7 -to read a DVDB file produced in a previous dataset. +to read a DVDB file (derivative of potential) produced in a previous dataset. For example, one can concatenate a dataset in which an initial set of DFPT potentials on a relatively coarse q-mesh is interpolated on a denser q-mesh using [[eph_task]] = 5 and [[eph_ngqpt_fine]]. -Note also that, starting Abinit v9, one can also use [[getdvdb_path]] to specify the path of the file directly. + * If [[getdvdb]] == 0, no such use of previously computed output potential file is done. + + * If [[getdvdb]] is positive, its value gives the index of the dataset from which +the output potential is to be used as input. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + + * If [[getdvdb]] is -1, the output potential of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[getdvdb]] is a negative number, it indicates the number of datasets to go +backward to find the needed file. Going back beyond the first dataset is equivalent to using zero for the get variable. + +Note also that, starting Abinit v9, one can also use [[getdvdb_filepath]] to specify the path of the file directly. """ ), @@ -4874,10 +5623,24 @@ dimensions="scalar", defaultval=0, mnemonics="GET the EFfective MASses from...", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (multi-dataset mode). -Only relevant for [[optdriver]]=7 and [[eph_task]]=6. +Only relevant for [[optdriver]]=7 and [[eph_task]]=6. 10. If set to 1, take the data from a _EFMAS file as input. The latter must have been produced using [[prtefmas]]. + + * If [[getefmas]] == 0, no such use of previously computed output _EFMAS file is done. + + * If [[getefmas]] is positive, its value gives the index of the dataset from which +the output _EFMAS file is to be used as input. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + + * If [[getefmas]] is -1, the output _EFMAS file of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[getefmas]] is a negative number, it indicates the number of datasets to go +backward to find the needed file. Going back beyond the first dataset is equivalent to using zero for the get variable. + """, ), @@ -4890,6 +5653,7 @@ defaultval=0, mnemonics="GET the GAMma phonon data EIG2NKQ from dataset", requires="[[ieig2rf]] != 0 and [[qpt]] != (0.0, 0.0, 0.0)", + added_in_version="before_v9", text=r""" Relevant for second-order eigenvalue calculations using response-functions ([[ieig2rf]] != 0), and only for non-zero wavevectors [[qpt]]. @@ -4910,18 +5674,52 @@ dimensions="scalar", defaultval=0, mnemonics="GET the HAYDOCK restart file from...", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (multi-dataset mode) and, in the case of a Bethe-Salpeter calculation to indicate that the Haydock iterative technique will be restarted from the output of a previous dataset. -If [[gethaydock]] == 0, no such use of previously computed coupling block file is done. -If [[gethaydock]] is positive, its value gives the index of the dataset to be used as input. -If [[gethaydock]] is -1, the output of the previous dataset must be taken, + + * If [[gethaydock]] == 0, no such use of previously computed coupling block file is done. + + * If [[gethaydock]] is positive, its value gives the index of the dataset to be used as input. + + * If [[gethaydock]] is -1, the output of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[gethaydock]] is a negative number, it indicates the number of datasets to +go backward to find the needed file. Going back beyond the first dataset is equivalent to using zero for the get variable. +""", +), + +Variable( + abivarname="getkden", + varset="files", + vartype="integer", + topics=['multidtset_useful'], + dimensions="scalar", + defaultval="[[getden]]", + mnemonics="GET the Kinetic energy DENsity from...", + added_in_version="9.10.4", + text=r""" +Only relevant when [[usekden]]=1 (meta GGA exchange-correlation functionals). +Eventually used when [[ndtset]] > 0 (multi-dataset mode) and, in the case of a +ground-state calculation, if [[iscf]]<0 (non-SCF calculation), to indicate +that the starting **kinetic energy density** is to be taken from the output of a previous +dataset. It can be used to chain the calculations, since it describes from which +dataset the OUTPUT density is to be taken, as INPUT density of the present dataset. + + * If [[getkden]] == 0, no such use of previously computed output density file is done. + + * If [[getkden]] is positive, its value gives the index of the dataset from which +the output density is to be used as input. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + + * If [[getkden]] is -1, the output density of the previous dataset must be taken, which is a frequently occurring case. -If [[gethaydock]] is a negative number, it indicates the number of datasets to -go backward to find the needed file. In this case, if one refers to a non -existent data set (prior to the first), the coupling block is not initialised -from a disk file, so that it is as if [[gethaydock]] = 0 for that initialisation. + + * If [[getkden]] is a negative number, it indicates the number of datasets to go +backward to find the needed file. Going back beyond the first dataset is equivalent to using zero for the get variable. """, ), @@ -4933,32 +5731,29 @@ dimensions="scalar", defaultval=0, mnemonics="GET OCC parameters from...", + added_in_version="before_v9", text=r""" This variable is typically used to chain the calculations, in the multi- dataset mode ([[ndtset]] > 0), since it describes from which dataset the array [[occ]] is to be taken, as input of the present dataset. The occupation numbers are [[EVOLVING]] variables, for which such a chain of calculations is useful. -If [[getocc]] == 0, no such use of previously computed output occupations is done. -If [[getocc]] is positive, its value gives the index of the dataset from which + + * If [[getocc]] == 0, no such use of previously computed output occupations is done. + + * If [[getocc]] is positive, its value gives the index of the dataset from which the data are to be used as input data. It must be the index of a dataset already computed in the SAME run. -If [[getocc]] is -1, the output data of the previous dataset must be taken, + + * If [[getocc]] is -1, the output data of the previous dataset must be taken, which is a frequently occurring case. -If [[getocc]] is a negative number, it indicates the number of datasets to go -backward to find the needed data. In this case, if one refers to a non -existent data set (prior to the first), the date is not initialised from a -disk file, so that it is as if [[getocc]] == 0 for that initialisation. + + * If [[getocc]] is a negative number, it indicates the number of datasets to go +backward to find the needed data. Going back beyond the first dataset is equivalent to using zero for the get variable. + NOTE that a non-zero [[getocc]] MUST be used with [[occopt]] == 2, so that the number of bands has to be initialized for each k point. Of course, these numbers of bands must be identical to the numbers of bands of the dataset from which [[occ]] will be copied. The same is true for the number of k points. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - - ndtset 3 jdtset 1 2 4 getXXX -1 - -refers to dataset 2 when dataset 4 is initialized. """, ), @@ -4970,19 +5765,25 @@ dimensions="scalar", defaultval=0, mnemonics="GET QuasiParticle Structure", + added_in_version="before_v9", text=r""" Used when [[ndtset]] > 0 (multi-dataset mode) and [[optdriver]] = 3, or 4 (screening or sigma step of a GW calculation), to indicate that the eigenvalues and possibly the wavefunctions have to be taken from a previous -quasi-particle calculation (instead of the usual LDA starting point). This is +quasi-particle calculation (instead of the usual DFT starting point). This is to achieve quasi-particle self-consistency. See also [[irdqps]] -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - ndtset 3 jdtset 1 2 4 getXXX -1 + * If [[getqps]] == 0, no such use of previously computed values is done. -refers to dataset 2 when dataset 4 is initialized. + * If [[getqps]] is positive, its value gives the index of the dataset from which +the data are to be used as input data. It must be the index of a dataset +already computed in the SAME run. + + * If [[getqps]] is -1, the output data of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[getqps]] is a negative number, it indicates the number of datasets to go +backward to find the needed data. Going back beyond the first dataset is equivalent to using zero for the get variable. """, ), @@ -4994,30 +5795,26 @@ dimensions="scalar", defaultval=0, mnemonics="GET SCReening (the inverse dielectric matrix) from...", + added_in_version="before_v9", text=r""" Used when [[ndtset]] > 0 (multi-dataset mode) and [[optdriver]] = 4 (sigma step of a GW calculation), to indicate that the dielectric matrix (_SCR file) is to be taken from the output of a previous dataset. It is used to chain the calculations, since it describes from which dataset the OUTPUT dielectric matrix is to be taken, as INPUT of the present dataset. -Note also that, starting Abinit v9, one can also use [[getscr_path]] to specify the path of the file directly. - -If [[getscr]] == 0, no such use of previously computed output _SCR file is done. -If [[getscr]] is positive, its value gives the index of the dataset from which -the output _SCR file is to be used as input. -If [[getscr]] is -1, the output _SCR file of the previous dataset must be -taken, which is a frequently occurring case. -If [[getscr]] is a negative number, it indicates the number of datasets to go -backward to find the needed file. In this case, if one refers to a non -existent data set (prior to the first), the _SCR file is not initialised from -a disk file, so that it is as if [[getscr]] = 0 for that initialisation. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: +Note also that, starting Abinit v9, one can also use [[getscr_filepath]] to specify the path of the file directly. - ndtset 3 jdtset 1 2 4 getXXX -1 + * If [[getscr]] == 0, no such use of previously computed output _SCR file is done. -refers to dataset 2 when dataset 4 is initialized. + * If [[getscr]] is positive, its value gives the index of the dataset from which +the data are to be used as input data. It must be the index of a dataset +already computed in the SAME run. + + * If [[getscr]] is -1, the output data of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[getscr]] is a negative number, it indicates the number of datasets to go +backward to find the needed data. Going back beyond the first dataset is equivalent to using zero for the get variable. """, ), @@ -5029,6 +5826,7 @@ dimensions="scalar", defaultval=0, mnemonics="GET SUSCEPtibility (the irreducible polarizability) from...", + added_in_version="before_v9", text=r""" Used when [[ndtset]] > 0 (multi-dataset mode) and [[optdriver]] = 4 (sigma step of a GW calculation), to indicate that the irreducible polarizability (_SUSC @@ -5042,22 +5840,18 @@ to apply a cutoff to the Coulomb interaction in order to facilitate the convergence of the GW correction with respect to the size of the supercell (see [[vcutgeo]] and [[icutcoul]]) -If [[getsuscep]] == 0, no such use of previously computed output _SUSC file is done. -If [[getsuscep]] is positive, its value gives the index of the dataset from -which the output _SUSC file is to be used as input. -If [[getsuscep]] is -1, the output _SUSC file of the previous dataset must be -taken, which is a frequently occurring case. -If [[getsuscep]] is a negative number, it indicates the number of datasets to -go backward to find the needed file. In this case, if one refers to a non -existent data set (prior to the first), the _SUSC file is not initialised from -a disk file, so that it is as if [[getsuscep]] = 0 for that initialisation. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: - ndtset 3 jdtset 1 2 4 getXXX -1 + * If [[getsuscep]] == 0, no such use of previously computed output _SUSC file is done. -refers to dataset 2 when dataset 4 is initialized. + * If [[getsuscep]] is positive, its value gives the index of the dataset from which +the data are to be used as input data. It must be the index of a dataset +already computed in the SAME run. + + * If [[getsuscep]] is -1, the output data of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[getsuscep]] is a negative number, it indicates the number of datasets to go +backward to find the needed data. Going back beyond the first dataset is equivalent to using zero for the get variable """, ), @@ -5069,25 +5863,27 @@ dimensions="scalar", defaultval=0, mnemonics="GET VEL from...", + added_in_version="before_v9", text=r""" -These variables are typically used to chain the calculations, in the multi- +This variable is typically used to chain the calculations, in the multi- dataset mode ([[ndtset]] > 0) since they describe from which dataset the corresponding output variables are to be taken, as input of the present -dataset. The atomic positions and velocities are [[EVOLVING]] variables, for +dataset. The velocities are [[EVOLVING]] variables, for which such a chain of calculation is useful. -Note that the use of [[getxcart]] and [[getxred]] differs when [[acell]] and -[[rprim]] are different from one dataset to the other. -If 0, no previously computed values are used. -If >0, the integer should correspond to the index of the dataset from which the VEL data should be used. It must be the index of a dataset already computed in the SAME run. -If equal to -1, the output data of the previous dataset is taken, which -is a frequently occurring case. However, if the first dataset is treated, -1 -is equivalent to 0, since no dataset has yet been computed in the same run. -If another negative number, it indicates the number of datasets to go backward -to find the needed data (once again, going back beyond the first dataset is -equivalent to using a null get variable). -Note: [[getxred]] and [[getxcart]] cannot be simultaneously non-zero for the -same dataset. On the other hand the use of [[getvel]] with [[getxred]] is -allowed, despite the different coordinate system. + + * If [[getvel]] == 0, no such use of previously computed [[vel]] is done. + + * If [[getvel]] is positive, its value gives the index of the dataset from which +the data are to be used as input data. It must be the index of a dataset +already computed in the SAME run. + + * If [[getvel]] is -1, the output data of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[getvel]] is a negative number, it indicates the number of datasets to go +backward to find the needed data. Going back beyond the first dataset is equivalent to using zero for the get variable. + +Note: The use of [[getvel]] with [[getxred]] is allowed, despite the different coordinate system. """, ), @@ -5099,30 +5895,37 @@ dimensions="scalar", defaultval=0, mnemonics="GET the wavefunctions from _WFK file", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate -starting wavefunctions, as an alternative to [[irdwfk]],. -Note also that, starting Abinit v9, one can also use [[getwfk_path]] to specify the path of the file directly. +starting wavefunctions, as an alternative to [[irdwfk]]. +Note also that, starting Abinit v9, one can also use [[getwfk_filepath]] to specify the path of the file directly. +One should read the explanations given for these latter variables as well as the present one. + +The [[getwfk]] variable is +typically used to chain the calculations in the multi-dataset mode, since it +describes from which dataset the OUTPUT wavefunctions are to be taken, as INPUT +wavefunctions of the present dataset. -The [[getwfk]], **getwfq**, **get1wf** and **getddk** variables are typically -used to chain the calculations in the multi-dataset mode, since they describe -from which dataset the OUTPUT wavefunctions are to be taken, as INPUT wavefunctions of the present dataset. +We now focus on the [[getwfk]] input variable (the only one used in ground- +state calculations), but the rules for [[getwfq]], [[get1wf]], [[getddk]] are similar, +with _WFK replaced by _WFQ, _1WF or _DDK. -We now focus on the [[getwfk]] input variable (the only one used in ground-state calculations), -but the rules for **getwfq** and **get1wf** are similar, with _WFK replaced by _WFQ or _1WF. -If [[getwfk]] == 0, no use of previously computed output wavefunction file appended with _DSx_WFK is done. -If [[getwfk]] is positive, its value gives the index of the dataset for which + * If [[getwfk]] ==0, no use of previously computed output wavefunction file +appended with _DSx_WFK is done. + * If [[getwfk]] >0, its value gives the index of the dataset for which the output wavefunction file appended with _WFK must be used. -If [[getwfk]] is -1, the output wf file with _WFK of the previous dataset must + * If [[getwfk]]=-1, the output wf file with _WFK of the previous dataset must be taken, which is a frequently occurring case. -If [[getwfk]] is a negative number, it indicates the number of datasets to go + * If [[getwfk]] is a negative number, it indicates the number of datasets to go backward to find the needed wavefunction file. In this case, if one refers to a non existent data set (prior to the first), the wavefunctions are not -initialised from a disk file, so that it is as if [[getwfk]] = 0 for that +initialised from a disk file, so that it is as if [[getwfk]] =0 for that initialisation. Thanks to this rule, the use of [[getwfk]] -1 is rather straightforward: except for the first wavefunctions, that are not initialized by reading a disk file, the output wavefunction of one dataset is input of the next one. + NOTE: a negative value of a "get" variable indicates the number of datasets to go backwards; it is not the number to be subtracted from the current dataset to find the proper dataset. As an example: @@ -5141,34 +5944,26 @@ dimensions="scalar", defaultval=0, mnemonics="GET the fine grid wavefunctions from _WFK file", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate starting wavefunctions, as an alternative to [[irdwfkfine]]. One should first -read the explanations given for these latter variables. -The [[getwfkfine]] variables is typically used to chain the calculations in +read the explanations given for this latter variable. + +The [[getwfkfine]] variable is typically used to chain the calculations in the multi-dataset mode, since they describe from which dataset the OUTPUT wavefunctions are to be taken, as INPUT wavefunctions of the present dataset. -If [[getwfkfine]] == 0, no use of previously computed output wavefunction file + + * If [[getwfkfine]] == 0, no use of previously computed output wavefunction file appended with _DSx_WFK is done. -If [[getwfkfine]] is positive, its value gives the index of the dataset for + * If [[getwfkfine]] is positive, its value gives the index of the dataset for which the output wavefunction file appended with _WFK must be used. -If [[getwfkfine]] is -1, the output wf file with _WFK of the previous dataset + * If [[getwfkfine]] is -1, the output wf file with _WFK of the previous dataset must be taken, which is a frequently occurring case. -If [[getwfkfine]] is a negative number, it indicates the number of datasets to -go backward to find the needed wavefunction file. In this case, if one refers -to a non existent data set (prior to the first), the wavefunctions are not -initialised from a disk file, so that it is as if [[getwfkfine]] = 0 for that -initialisation. Thanks to this rule, the use of [[getwfkfine]] -1 is rather -straightforward: except for the first wavefunctions, that are not initialized -by reading a disk file, the output wavefunction of one dataset is input of the -next one. -NOTE: a negative value of a "get" variable indicates the number of datasets -to go backwards; it is not the number to be subtracted from the current -dataset to find the proper dataset. As an example: + * If [[getwfkfine]] is a negative number, it indicates the number of datasets to +go backward to find the needed wavefunction file. Going back beyond the first dataset is equivalent to using zero for the get variable. - ndtset 3 jdtset 1 2 4 getXXX -1 - -refers to dataset 2 when dataset 4 is initialized. Response-function calculation: +Response-function calculation: * one and only one of [[getwfkfine]] or [[irdwfkfine]] MUST be non-zero * if [[getwfkfine]] = 1: read ground state k -wavefunctions from a disk file appended with _WFK, @@ -5183,7 +5978,7 @@ produced in a previous ground state calculation * This variable or [[irdwfkfine]] is mandatory when [[bs_interp_mode]] == 1 -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. **This variable is experimental. In development.** """, @@ -5197,15 +5992,13 @@ dimensions="scalar", defaultval=0, mnemonics="GET the wavefunctions from _WFQ file", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (in the multi-dataset mode), to indicate -starting wavefunctions, as an alternative to [[irdwfq]]. -Note also that, starting Abinit v9, one can also use [[getwfq_path]] to specify the path of the file directly. +starting k+q wavefunctions, as an alternative to [[irdwfq]]. +Note also that, starting Abinit v9, one can also use [[getwfq_filepath]] to specify the path of the file directly. -The **getwfk**, [[getwfq]], **get1wf** and **getddk** variables are typically -used to chain the calculations in the multi-dataset mode, since they describe -from which dataset the OUTPUT wavefunctions are to be taken, as INPUT wavefunctions of the present dataset. -See discussion in [[getwfk]] +Similar to [[getwfk]] input variable, but will be used to initialize the wavefunctions at k+q. """, ), @@ -5217,24 +6010,30 @@ dimensions="scalar", defaultval=0, mnemonics="GET XCART from...", + added_in_version="before_v9", text=r""" -These variables are typically used to chain the calculations, in the multi- -dataset mode ([[ndtset]] > 0) since they describe from which dataset the +This variable is typically used to chain the calculations, in the multi- +dataset mode ([[ndtset]] > 0) since it describes from which dataset the corresponding output variables are to be taken, as input of the present -dataset. The atomic positions and velocities are [[EVOLVING]] variables, for +dataset. The atomic positions are [[EVOLVING]] variables, for which such a chain of calculation is useful. + Note that the use of [[getxcart]] and [[getxred]] differs when [[acell]] and [[rprim]] are different from one dataset to the other. -If 0, no previously computed values are used. -If >0, the integer must correspond to the index of the dataset from which the + + * If 0, no previously computed values are used. + + * If >0, the integer must correspond to the index of the dataset from which the data are to be used as input data. It must be the index of a dataset already computed in the SAME run. -If equal to -1, the output data of the previous dataset must be taken, which + + * If equal to -1, the output data of the previous dataset must be taken, which is a frequently occurring case. However, if the first dataset is treated, -1 is equivalent to 0, since no dataset has yet been computed in the same run. -If another negative number, it indicates the number of datasets to go backward -to find the needed data (once again, going back beyond the first dataset is -equivalent to using a null get variable). + + * If another negative number, it indicates the number of datasets to go backward +to find the needed data. Going back beyond the first dataset is equivalent to using a null get variable. + Note: [[getxred]] and [[getxcart]] cannot be simultaneously non-zero for the same dataset. On the other hand the use of [[getvel]] with [[getxred]] is allowed, despite the different coordinate system. @@ -5249,24 +6048,30 @@ dimensions="scalar", defaultval=0, mnemonics="GET XRED from...", + added_in_version="before_v9", text=r""" -These variables are typically used to chain the calculations, in the multi- -dataset mode ([[ndtset]] > 0) since they describe from which dataset the +This variable is typically used to chain the calculations, in the multi- +dataset mode ([[ndtset]] > 0) since it describes from which dataset the corresponding output variables are to be taken, as input of the present dataset. The atomic positions and velocities are [[EVOLVING]] variables, for which such a chain of calculation is useful. + Note that the use of [[getxcart]] and [[getxred]] differs when [[acell]] and [[rprim]] are different from one dataset to the other. -If 0, no use of previously computed values must occur. -If >0, the integer must correspond to the index of the dataset from which the + + * If 0, no previously computed values are used. + + * If >0, the integer must correspond to the index of the dataset from which the data are to be used as input data. It must be the index of a dataset already computed in the SAME run. -If equal to -1, the output data of the previous dataset must be taken, which + + * If equal to -1, the output data of the previous dataset must be taken, which is a frequently occurring case. However, if the first dataset is treated, -1 is equivalent to 0, since no dataset has yet been computed in the same run. -If another negative number, it indicates the number of datasets to go backward -to find the needed data (once again, going back beyond the first dataset is -equivalent to using a null get variable). + + * If another negative number, it indicates the number of datasets to go backward +to find the needed data. Going back beyond the first dataset is equivalent to using a null get variable. + Note: [[getxred]] and [[getxcart]] cannot be simultaneously non-zero for the same dataset. On the other hand the use of [[getvel]] with [[getxred]] is allowed, despite the different coordinate system. @@ -5281,6 +6086,7 @@ dimensions="scalar", defaultval=0, mnemonics="Geometry Optimization PRECONditioner equations", + added_in_version="before_v9", text=r""" Set the kind of preconditioner to be used for Geometry Optimization (Note: Under development now (2011.05.20)) @@ -5299,6 +6105,7 @@ dimensions=[3], defaultval=0, mnemonics="Geometry Optimization PREconditioner PaRaMeters equations", + added_in_version="before_v9", text=r""" Set the parameters use by the preconditioner to be used for Geometry Optimization @@ -5311,12 +6118,14 @@ varset="paral", vartype="integer", topics=['parallelism_expert'], - dimensions=[5], - defaultval=[-1, -1, -1, -1, -1], + dimensions=[12], + defaultval=12*(-1), mnemonics="GPU: choice of DEVICES on one node", - requires="[[use_gpu_cuda]] == 1 (CUDA functionality)", + requires="[[gpu_option]] > 0 and [[CUDA]] (Nvidia GPU)", + added_in_version="before_v9", text=r""" -To be used when several GPU devices are present on each node, assuming the +@legacy +This variable is intended to be used when several GPU devices are present on each node, assuming the same number of devices on all nodes. Allows to choose in which order the GPU devices are chosen and distributed among MPI processes (see examples below). When the default value (-1) is set, @@ -5324,23 +6133,42 @@ Examples: - * 2 GPU devices per node, 4 MPI processes per node, **gpu_device** =[-1,-1,-1,-1,-1] (default): + * 2 GPU devices per node, 4 MPI processes per node, **gpu_device** = *-1 (default): MPI processes 0 and 2 use the best GPU card, MPI processes 1 and 3 use the slowest GPU card. - * 3 GPU devices per node, 5 MPI processes per node, **gpu_device** =[1,0,2,-1,-1]: + * 3 GPU devices per node, 5 MPI processes per node, **gpu_device** =[1,0,2,-1,-1, . . .]: MPI processes 0 and 3 use GPU card 1, MPI processes 1 and 4 use GPU card 0, MPI process 2 uses GPU card 2. - * 3 GPU devices per node, 5 MPI processes per node, **gpu_device** =[0,1,-1,-1,-1]: + * 3 GPU devices per node, 5 MPI processes per node, **gpu_device** =[0,1,-1,-1, . . .]: MPI processes 0, 2 and 4 use GPU card 0, MPI processes 1 and 3 use GPU card 1; the 3rd GPU card is not used. -GPU card are numbered starting from 0; to get the GPU devices list, type +GPU card are numbered starting from 0; to get the GPU devices list, type f.i. (Nvidia): "nvidia-smi" or "lspci | grep -i nvidia". """, ), +Variable( + abivarname="gpu_kokkos_nthrd", + varset="paral", + vartype="integer", + topics=['parallelism_expert'], + dimensions="scalar", + defaultval="number of [[OPENMP]] threads", + mnemonics="GPU KOKKOS implementation: Number of THReaDs", + requires="[[gpu_option]] == 3 ([[KOKKOS]] GPU implementation)", + added_in_version="v9.12", + text=r""" +When GPU acceleration is enabled (via [[KOKKOS]] implementation), OpenMP parallelism +on CPU cores is not fully supported. ABINIT will ignore `OMP_NUM_THREADS` value, +using 1 instead. But we may locally increase the number of OpenMP threads to speed-up +some specific parts of the code. In that case we use [[gpu_kokkos_nthrd]] to specify +the number of OpenMP threads. +""", +), + Variable( abivarname="gpu_linalg_limit", varset="paral", @@ -5348,23 +6176,116 @@ topics=['parallelism_expert'], dimensions="scalar", defaultval=2000000, - mnemonics="GPU (Cuda): LINear ALGebra LIMIT", - requires="[[use_gpu_cuda]] == 1 (CUDA functionality)", - text=r""" -Use of linear algebra and matrix algebra on GPU is only efficient if the size + mnemonics="GPU: LINear ALGebra LIMIT", + requires="[[gpu_option]] == 1 and [[CUDA]] (Nvidia GPU, old CUDA implementation)", + added_in_version="before_v9", + text=r""" +@legacy +This variable is obsolete and is only intended to be used with the old 2013 cuda +implementation of ABINIT on GPU ([[gpu_option]]=1). +In that case, the use of linear/matrix algebra on GPU is only efficient if the size of the involved matrices is large enough. The [[gpu_linalg_limit]] parameter defines the threshold above which linear (and matrix) algebra operations are done on the Graphics Processing Unit. -The considered matrix size is equal to: - -* SIZE=([[mpw]] $\\times$ [[nspinor]] / [[npspinor]]) $\\times$ ([[npband]] $\\times$ [[bandpp]]) $^2$ - +The matrix size is evaluated as to: SIZE=([[mpw]] $\times$ [[nspinor]] / [[npspinor]]) $\times$ ([[npband]] $\times$ [[bandpp]]) $^2$ When SIZE>=[[gpu_linalg_limit]], [[wfoptalg]] parameter is automatically set -to 14 which corresponds to the use of LOBPCG algorithm for the calculation of +to 14 which corresponds to the use of the legacy LOBPCG algorithm for the calculation of the eigenstates. """, ), +Variable( + abivarname="gpu_nl_distrib", + varset="paral", + vartype="integer", + topics=['parallelism_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="GPU: Non-Local operator, DISTRIBute projections", + requires="[[use_gemm_nonlop]] == 1 and [[gpu_option]] == 2 ([[OPENMP_OFFLOAD]])", + added_in_version="9.12", + text=r""" +When using GPU acceleration, the wave-function projections ($<\tilde{p}_i|\Psi_{nk}> (used +in the non-local operator) are all stored on all GPU devices. +[[gpu_nl_distrib]] forces the distribution of these projections on several GPU devices. This +uses less memory per GPU but requires communications beween GPU devices. These communication +penalize the execution time. +[[gpu_nl_splitsize]] defines the number of blocks used to split the projections. +In standard executions, the distribution is only needed on large use cases to address +the high memory needs. Therefore ABINIT uses the "distributed mode" automatically +when needed. +""", +), + +Variable( + abivarname="gpu_nl_splitsize", + varset="paral", + vartype="integer", + topics=['parallelism_expert'], + dimensions="scalar", + defaultval=1, + mnemonics="GPU: Non-Local operator SPLITing SIZE", + requires="[[use_gemm_nonlop]] == 1 and [[gpu_option]] == 2 ([[OPENMP_OFFLOAD]])", + added_in_version="9.12", + text=r""" +Only relevant when [[gpu_nl_distrib]] = 1. +When using GPU acceleration, the wave-function projections ($<\tilde{p}_i|\Psi_{nk}> (used +in the non-local operator) are all stored on all GPU devices. +[[gpu_nl_splitsize]] defines the number of blocks used to split these projections +on several GPU devices. +In standard executions, the distribution is only needed on large use cases to address +the high memory needs. Therefore ABINIT uses the "distributed mode" automatically +when needed. +""", +), + +Variable( + abivarname="gpu_option", + varset="paral", + vartype="integer or string", + topics=['parallelism_useful'], + dimensions="scalar", + defaultval=ValueWithConditions({'[[OPENMP_OFFLOAD]]': 2, '[[KOKKOS]]': 3, '[[CUDA]]': 1, 'defaultval': 0}), + mnemonics="GPU: OPTION to choose the implementation", + added_in_version="v9.12", + text=r""" +Only relevant for Ground-State calculations ([[optdriver]] == 0). +This option is only available if ABINIT executable has been compiled for the purpose +of being used with GPU accelerators. It allows to choose between the different +GPU programming models available in ABINIT: + +- [[gpu_option]]= "GPU_DISABLED" or [[gpu_option]] = 0: no use of GPU (even if compiled for GPU). + +- [[gpu_option]]= "GPU_LEGACY" or [[gpu_option]] = 1: use the "legacy" 2013 implementation of GPU. This is a partial [[CUDA]] + implementation, using the `nvcc` [[CUDA]] compiler. The old LOBPCG algorithm is automatically + used to compute the eigenstates ([[wfoptalg]]=14). The external linear algebra library + `MAGMA can also be linked to ABINIT to improve performances on large systems + (see [[gpu_linalg_limit]]). + +- [[gpu_option]]= "GPU_OPENMP" or [[gpu_option]] = 2: use of the [[OPENMP_OFFLOAD]] programming model to execute time consuming + parts of the code on GPU. This implementation works on NVidia accelerators, if ABINIT has been + compiled with a [[CUDA]] compatible compiler and linked with NVidia FFT/linear algebra + libraries ([cuFFT](https://docs.nvidia.com/cuda/cufft), + [cuBLAS](https://docs.nvidia.com/cuda/cublas) and + [cuSOLVER](https://docs.nvidia.com/cuda/cusolvermp)). + It also works on `AMD accelerators (EXPERIMENTAL), + if ABINIT has been compiled with a AMD compatible compiler and linked with NVidia + FFT/linear algebra libraries ([ROCm](https://www.amd.com/fr/graphics/servers-solutions-rocm) + or [HIP](https://github.com/ROCm/HIP)). + +- [[gpu_option]]= "GPU_KOKKOS" or [[gpu_option]] = 3: use of the [[KOKKOS]]+[[CUDA]] programming model to execute time consuming + parts of the code on GPU. This implementation -- at present -- is only compatible with + NVidia accelerators. It required that ABINIT has been linked to the + [Kokkos](https://github.com/kokkos/kokkos) and [YAKL](https://github.com/mrnorman/YAKL) + performance libraries. It also uses NVidia FFT/linear algebra libraries + ([cuFFT](https://docs.nvidia.com/cuda/cufft), [cuBLAS](https://docs.nvidia.com/cuda/cublas)). + The [[KOKKOS]] GPU implementation can be used in conjuction with openMP threads + on CPU (see [[gpu_kokkos_nthrd]]). + +For an expert use of ABINIT on [[GPU]], some additional keywords can be used. See [[gpu_nl_distrib]], [[gpu_nl_splitsize]]. +""", +), + Variable( abivarname="gw_customnfreqsp", varset="gw", @@ -5373,7 +6294,8 @@ dimensions="scalar", defaultval=0, mnemonics="GW CUSTOM FREQuencies for SPectral function", - requires="[[optdriver]] == 4 and [[gwcalctyp]] in [2,9,12,19,22,29]", + requires="[[optdriver]] == 4 and [[gwcalctyp]] in [2, 9, 12, 19, 22, 29]", + added_in_version="before_v9", text=r""" [[gw_customnfreqsp]] lets the user define the grid points along the real frequency axis by hand for the calculation of the self-energy along the real @@ -5390,6 +6312,7 @@ defaultval=Range({'start': 1, 'stop': '[[gw_customnfreqsp]]'}), mnemonics="GW SPectral FREQuencies", requires="[[optdriver]] == 4 and [[gw_customnfreqsp]] > 0", + added_in_version="before_v9", text=r""" [[gw_freqsp]] specifies the grid points for the real frequency axis when the real and imaginary (spectral function) parts of sigma are calculated explicitly @@ -5413,13 +6336,14 @@ dimensions="scalar", defaultval=0, mnemonics="GW Contour Deformation FReQuencies on IMaginary axis Inverse Z Grid", - requires="[[optdriver]] in [3,4] and [[gwcalctyp]] in [2,9,12,19,22,29]", + requires="[[optdriver]] in [3,4] and [[gwcalctyp]] in [2, 9, 12, 19, 22, 29]", + added_in_version="before_v9", text=r""" [[gw_frqim_inzgrid]] creates grid points along the **imaginary** frequency axis by using an equidistant grid in the variable $z \subset [0,1]$ where the transform is: -$$ i\omega^\prime = w_p \\frac{z}{1-z}. $$ +$$ i\omega^\prime = w_p \frac{z}{1-z}. $$ Here $\omega_p$ is the plasma frequency (default can be overridden by setting [[ppmfrq]]). The equidistant grid in z is determined uniquely by [[nfreqim]]) @@ -5435,18 +6359,19 @@ dimensions="scalar", defaultval=0, mnemonics="GW Contour Deformation FReQuencies on REal axis Inverse Z Grid", - requires="[[optdriver]] in [3,4] and [[gwcalctyp]] in [2,9,12,19,22,29]", + requires="[[optdriver]] in [3, 4] and [[gwcalctyp]] in [2, 9, 12, 19, 22, 29]", + added_in_version="before_v9", text=r""" [[gw_frqre_inzgrid]] creates grid points along the **real** frequency axis by -using an equidistant grid in the variable $z \subset [0,1]$ where the transform is: +using an equidistant grid in the variable $z \subset [0, 1]$ where the transform is: -$$ \omega = \omega_p \\frac{z}{1-z}. $$ +$$ \omega = \omega_p \frac{z}{1-z}. $$ Here $\omega_p$ is the plasma frequency (default can be overridden by setting [[ppmfrq]]). The equidistant grid in z is determined uniquely by [[nfreqre]] ) and the points are distributed so that half of them lie below the plasma frequency. This is useful in conjunction with [[gw_frqim_inzgrid]] if one needs -to use a grid which maps $[0, \infty] \\rightarrow [0,1]$. Note that typically _many_ more +to use a grid which maps $[0, \infty] \rightarrow [0,1]$. Note that typically _many_ more points are needed along the real axis in order to properly resolve peak structures. In contrast, both the screening and self-energy are very smooth along the imaginary axis. Also, please note that this is **not** an efficient @@ -5466,9 +6391,10 @@ defaultval=0, mnemonics="GW Contour Deformation FReQencies on REal axis - Use Tangent Grid", requires="[[optdriver]] in [3,4] and [[gwcalctyp]] in [2,9,12,19,22,29]", + added_in_version="before_v9", text=r""" [[gw_frqre_tangrid]] defines a nonuniform grid to be used in frequency, with -stepsize increasing proportional to $\\tan(x)$. This makes the grid approximately +stepsize increasing proportional to $\tan(x)$. This makes the grid approximately linear to start with, with a rapid increase towards the end. Also, this is the grid which gives equal importance to each point used in the integration of a function which decays as $1/x^2$. To be used in conjunction with [[nfreqre]], @@ -5476,6 +6402,48 @@ """, ), +Variable( + abivarname="gw_icutcoul", + varset="gw", + vartype="integer", + topics=['GWls_compulsory', 'Susceptibility_basic', 'Coulomb_useful', 'SelfEnergy_basic'], + dimensions="scalar", + defaultval=6, + mnemonics="GW CUT-off for COULomb interaction", + requires="[[optdriver]] in [3,4]", + added_in_version="9.1", + text=r""" +Many-body calculations for fully periodic systems are problematic due to the +presence of the integrable Coulomb singularity at $\mathbf{G}=0$ that hinders +the convergence with respect to the number of q-points used to sample the +Brillouin zone. The convergence can be accelerated by integrating accurately +the zone in the neighborhood of $\mathbf{G}=0$. + +[[gw_icutcoul]] defines the particular expression to be used for such integration +in GW calculations. See [[icutcoul]] and [[fock_icutcoul]] for ground-state calculations. + +Like for [[icutcoul]], for 1-dimensional and 2-dimensional systems, the geometry of the system has to be specified explicitly. +This is done thanks to [[vcutgeo]]. For 0-, 1- and 2-dimensional systems, a cut-off length has to be provided, thanks to [[rcut]]. + + * 0 --> Sphere (molecules, but also 3D-crystals, see below). See [[rcut]]. + * 1 --> (W.I.P.) cylinder (nanowires, nanotubes). See [[vcutgeo]] and [[rcut]]. + * 2 --> Surface. See [[vcutgeo]] and [[rcut]]. + * 3 --> Integration in a spherical mini-Brillouin Zone, legacy value. + * 4 --> ERF, long-range only Coulomb interaction. + * 5 --> ERFC, short-range only Coulomb interaction (e.g. as used in the HSE functional). + * 6 --> auxiliary function integration for 3D systems from [[cite:Carrier2007]]. + * 7 --> auxiliary function for 3D systems of Gygi and Baldereschi [[cite:Gygi1986]]. + * 14 --> Monte-Carlo integration in the mini-Brillouin zone for ERF, long-range only Coulomb interaction. + * 15 --> Monte-Carlo integration in the mini-Brillouin zone for ERFC, short-range only Coulomb interaction. + * 16 --> Monte-Carlo integration in the mini-Brillouin zone for Full Coulomb interaction. + +It was shown in [[cite:Rangel2020]] that the Monte-Carlo approach [[gw_icutcoul]]=16 converges somewhat +faster as a function of the k-point sampling than the auxiliary function integration technique [[gw_icutcoul]]=6 +which is the current default. +However, the initialization might take time. +""", +), + Variable( abivarname="gw_invalid_freq", varset="gw", @@ -5485,6 +6453,7 @@ defaultval=0, mnemonics="GW treatment of INVALID FREQuency for Hybertsen-Louie PPM", requires="[[optdriver]] in [3,4] and [[ppmodel]] in [2]", + added_in_version="before_v9", text=r""" [[gw_invalid_freq]] sets the procedure to follow when a PPM frequency is invalid (negative or imaginary). @@ -5504,6 +6473,7 @@ defaultval=1, mnemonics="GW, Number of Q-points for the Long Wave-Length Limit", requires="[[optdriver]] in [3,4,99]", + added_in_version="before_v9", text=r""" Only relevant if [[optdriver]] = 3,4,99 that is, screening, sigma or Bethe- Salpeter calculations, although the actual meaning of the variable depends on @@ -5512,8 +6482,7 @@ [[gw_nqlwl]] defines the number of directions in reciprocal space used to describe the non-analytical behaviour of the heads ($G = G'=0$) and the wings ($G=0$ or $G'=0$) of the dielectric matrix in the optical limit (i.e. for $q$ -tending to zero). The number of directions is specified by the additional -variable [[gw_qlwl]]. +tending to zero). The number of directions is specified by the additional variable [[gw_qlwl]]. When [[optdriver]] = 3, [[gw_nqlwl]] and **gw_qlwl** define the set of "small" $q$ that will be calculated and stored in the final SCR file. Therefore, the two @@ -5535,19 +6504,19 @@ ), Variable( - abivarname="gw_nstep", + abivarname="gwr_nstep", varset="gw", vartype="integer", topics=['GW_basic'], dimensions="scalar", - defaultval=30, - mnemonics="GW Number of self-consistent STEPs", - requires="[[optdriver]] == 8", + defaultval=50, + mnemonics="GWR Number of self-consistent STEPs", + requires="[[optdriver]] == 6", + added_in_version="9.9.0", text=r""" -Gives the maximum number of self-consistent GW cycles (or "iterations") in -which G and/or W will be updated until the quasi-particle energies are -converged within [[gw_toldfeig]]. [[gwcalctyp]] and [[gw_sctype]] are used to -define the type of self-consistency. +Maximum number of self-consistent iterations in which G and/or W are be updated +until the quasi-particle energies are converged within [[gwr_tolqpe]]. +[[gwr_task]] defines the self-consistency type. """, ), @@ -5560,6 +6529,7 @@ defaultval=[1e-05, 2e-05, 3e-05], mnemonics="GW, Q-points for the Long Wave-Length limit", requires="[[optdriver]] in [3,4,99]", + added_in_version="before_v9", text=r""" When [[optdriver]] = 3, [[gw_qlwl]] defines the set of q-points around Gamma that are considered during the evaluation of the non-analytical behaviour of @@ -5577,20 +6547,21 @@ defaultval=0, mnemonics="GW QuasiParticle RANGE policy", requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" [[gw_qprange]] is active only when [[nkptgw]] is equal to zero (default value). This variable simplifies the specification of the list of kpoints and of the bands to be used for the computation of the quasi-particle corrections. The possible values are: - * 0 --> Compute the QP corrections only for the fundamental and the optical gap + * 0 --> Compute the QP corrections only for the fundamental and the direct gap * +num --> Compute the QP corrections for all the k-points in the irreducible zone, and include `num` bands above and below the Fermi level. * -num --> Compute the QP corrections for all the k-points in the irreducible zone. Include all occupied states and `num` empty states. The default value is 0 and is very handy for one-shot calculations. It is -important to stress, however, that the position of the optical/fundamental +important to stress, however, that the position of the direct/fundamental gaps is deduced from the energies computed on the k-mesh used for the WFK file. Therefore the computed gaps might differ from the correct ones that can only be obtained with an appropriate sampling of the irreducible zone. @@ -5605,39 +6576,6 @@ """, ), -Variable( - abivarname="gw_sctype", - varset="gw", - vartype="integer", - topics=['GW_basic'], - dimensions="scalar", - defaultval=1, - mnemonics="GW, Self-Consistency TYPE", - requires="[[optdriver]] in [3,4]", - text=r""" -This variable is used to partially define the kind of self-consistency for GW -calculations. The other piece of information is given by [[gwcalctyp]] that -defines the particular approximation for the self-energy operator as well as -whether the wavefunctions have to replaced by quasi-particle amplitudes. - -If [[gw_sctype]] is specified in the input file, the code will perform an -iterative update of the quantities entering the GW equations until the quasi- -particle energies are converged within [[gw_toldfeig]]. The maximum number of -iterations is specified by [[gw_nstep]]. Possible values are: - - * 1 --> standard one-shot method (one screening calculation followed by a single sigma run) - * 2 --> self-consistency only on W (iterative update of W followed by a sigma run in which G is approximated with the Kohn-Sham independent-particle Green's function G0) - * 3 --> self-consistency only of G (a single screening calculation to obtain the Kohn-Sham polarizability followed by an iterative update of the Green's functions in the self-energy) - * 4 --> fully self-consistent algorithm (iterative update of both G and W) - -It is possible to initialize the self-consistent procedure by reading a -previously calculated SCR or SUSC file via the variables [[getscr]] or -[[getsuscep]], respectively. [[getqps]] can be used to read a previous QPS -file thus initializing the Green functions to be used in the first self- -consistent iteration. -""", -), - Variable( abivarname="gw_sigxcore", varset="gw", @@ -5647,6 +6585,7 @@ defaultval=0, mnemonics="GW, SIGma (self-energy) for the CORE contribution", requires="[[optdriver]] == 4 and [[usepaw]] == 1", + added_in_version="before_v9", text=r""" Only available for PAW and relevant if [[optdriver]] = 4 that is, sigma calculations. @@ -5675,72 +6614,112 @@ ), Variable( - abivarname="gw_toldfeig", + abivarname="gwr_tolqpe", varset="gw", vartype="real", topics=['GW_basic'], dimensions="scalar", - defaultval=ValueWithUnit(units='eV', value=0.1), - mnemonics="GW TOLerance on the DiFference of the EIGenvalues", + defaultval=ValueWithUnit(units='eV', value=0.01), + mnemonics="GWR TOLerance on the difference of the QP Energies", characteristics=['[[ENERGY]]'], - requires="[[optdriver]] == 8", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", text=r""" -Sets a tolerance for absolute differences of QP energies that will cause one -self-consistent GW cycle to stop. -Can be specified in Ha (the default), Ry, eV or Kelvin, since **toldfe** has -the '[[ENERGY]]' characteristics (1 Ha = 27.2113845 eV) +Sets a tolerance for absolute differences of QP energies between to consecutive iterations +that will cause the self-consistent GWR cycle to stop. +Can be specified in Ha (the default), Ry, eV or Kelvin, since **gwr_tolqpe** has +the [[ENERGY]] characteristics (1 Ha = 27.2113845 eV) """, ), Variable( - abivarname="gwcalctyp", + abivarname="gw1rdm", varset="gw", vartype="integer", - topics=['GW_basic', 'SelfEnergy_basic', 'RPACorrEn_compulsory'], + topics=['GW_expert', 'SelfEnergy_expert'], dimensions="scalar", defaultval=0, - mnemonics="GW CALCulation TYPe", - requires="[[optdriver]] in [3,4]", + mnemonics="GW 1-Reduced Density Matrix", + requires="[[optdriver]] == 4", + added_in_version="9.4.0", text=r""" -[[gwcalctyp]] governs the choice between the different capabilities of the GW -code. +[[gw1rdm]] governs the calculation of the density matrix within the linearized GW approximation. +It must be used with [[gwcalctyp]]=21. - * 0 <= [[gwcalctyp]] <= 9: standard "1 shot" quasi-particle method. - * 10 <= [[gwcalctyp]] <= 19: self-consistent quasi-particle method on energies only. - * 20 <= [[gwcalctyp]] <= 29: self-consistent quasi-particle method on energies and wavefunctions. - - * [[gwcalctyp]] = 0, 10, or 20: standard Plasmon-Pole model GW calculation. - * [[gwcalctyp]] = 1: GW calculation where the self-energy along the real axis is obtained by performing the analytic continuation from the imaginary axis to the full complex plane via the Pade approximant. Only available for standard "1 shot" quasi-particle method. - * [[gwcalctyp]] = 2, 12, or 22: GW calculation using numerical integration (contour deformation method, see e.g. [[cite:Lebegue2003]]). - * [[gwcalctyp]] = 5, 15, or 25: Hybrid functional or Hartree-Fock calculation, with the identifier of the functional given by [[ixc_sigma]]. See the latter for the definition of other related variables. - * [[gwcalctyp]] = 6, 16, or 26: Screened Exchange calculation. - * [[gwcalctyp]] = 7, 17, or 27: COHSEX calculation. - * [[gwcalctyp]] = 8, 18, or 28: model GW calculation following [[cite:Faleev2004]] using a Plasmon-Pole model. - * [[gwcalctyp]] = 9, 19, or 29: model GW calculation following [[cite:Faleev2004]] using numerical integration (contour deformation method). +* 0: Do not update the density matrix. +* 1: Compute the update of the density matrix for the k-point list specified by [[kptgw]]. +* 2: Same as 1 but also compute the correction to the Fock operator and update total energies. """, ), Variable( - abivarname="gwcomp", + abivarname="gwaclowrank", varset="gw", vartype="integer", - topics=['SelfEnergy_useful'], + topics=['GW_useful', 'SelfEnergy_useful'], dimensions="scalar", defaultval=0, - mnemonics="GW COMPleteness", - requires="[[optdriver]] in [3,4]", + mnemonics="GW Analytic Continuation LOW RANK approximation", + requires="[[optdriver]] == 4", + added_in_version="9.2.0", text=r""" -[[gwcomp]] governs the use of an extrapolar approximation. If [[gwcomp]] == 1, -one improves the completeness in a truncated sum over states. In practice, -this permits one to reduce quite much the number of bands required in the -calculation of the screening or of the self-energy. The energy parameter -needed in the extrapolar approximation is set by [[gwencomp]]. See -[[cite:Bruneval2008]] for a description of the methodology. +**gwaclowrank** governs the number of eigenvectors of epsm1(iw') that will be retained in the calculation. +The default value **gwaclowrank** = 0 means all eigenvectors are retained and therefore no approximation is made. +**gwaclowrank** is by definition lower than the number of planewaves used for epsm1, which is set by [[npweps]] or indirectly by [[ecuteps]]. +The lower **gwaclowrank**, the faster the calculation. """, ), Variable( - abivarname="gwencomp", + abivarname="gwcalctyp", + varset="gw", + vartype="integer", + topics=['GW_basic', 'SelfEnergy_basic', 'RPACorrEn_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="GW CALCulation TYPe", + requires="[[optdriver]] in [3,4]", + added_in_version="before_v9", + text=r""" +**gwcalctyp** governs the choice between the different capabilities of the GW code. + + * 0 <= **gwcalctyp** <= 9: standard "1 shot" quasi-particle method. + * 10 <= **gwcalctyp** <= 19: self-consistent quasi-particle method on energies only. + * 20 <= **gwcalctyp** <= 29: self-consistent quasi-particle method on energies and wavefunctions. + + * **gwcalctyp** = 0, 10, or 20: standard Plasmon-Pole model GW calculation. + * **gwcalctyp** = 1: GW calculation where the self-energy along the real axis is obtained by performing the analytic continuation from the imaginary axis to the full complex plane via the Pade approximant. Only available for standard "1 shot" quasi-particle method. + * **gwcalctyp** = 2, 12, or 22: GW calculation using numerical integration (contour deformation method, see e.g. [[cite:Lebegue2003]]). + * **gwcalctyp** = 5, 15, or 25: Hybrid functional or Hartree-Fock calculation, with the identifier of the functional given by [[ixc_sigma]]. See the latter for the definition of other related variables. + * **gwcalctyp** = 6, 16, or 26: Screened Exchange calculation. + * **gwcalctyp** = 7, 17, or 27: COHSEX calculation. + * **gwcalctyp** = 8, 18, or 28: model GW calculation following [[cite:Faleev2004]] using a Plasmon-Pole model. + * **gwcalctyp** = 9, 19, or 29: model GW calculation following [[cite:Faleev2004]] using numerical integration (contour deformation method). +""", +), + +Variable( + abivarname="gwcomp", + varset="gw", + vartype="integer", + topics=['SelfEnergy_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="GW COMPleteness", + requires="[[optdriver]] in [3,4]", + added_in_version="before_v9", + text=r""" +[[gwcomp]] governs the use of an extrapolar approximation. If [[gwcomp]] == 1, +one improves the completeness in a truncated sum over states. In practice, +this permits one to reduce quite much the number of bands required in the +calculation of the screening or of the self-energy. The energy parameter +needed in the extrapolar approximation is set by [[gwencomp]]. See +[[cite:Bruneval2008]] for a description of the methodology. +""", +), + +Variable( + abivarname="gwencomp", varset="gw", vartype="real", topics=['SelfEnergy_useful', 'Susceptibility_useful'], @@ -5748,6 +6727,7 @@ defaultval=2.0, mnemonics="GW ENergy for COMPleteness", requires="[[optdriver]] in [3,4] and [[gwcomp]] == 1", + added_in_version="before_v9", text=r""" [[gwencomp]] sets the energy parameter used in the extrapolar approximation used to improve completeness and make the convergence against the number of @@ -5766,6 +6746,7 @@ defaultval=0, mnemonics="GW GAMMA", requires="[[optdriver]] = 3 or 4 (Sigma calculations)", + added_in_version="before_v9", text=r""" If [[gwgamma]] is 1, the vertex correction will be included leading to what is known as "GW-Gamma" approximation. see R. Del Sole, L. Reining, and R. W. @@ -5782,7 +6763,27 @@ can be disregarded [[cite:Chen2016]]. [[gwgamma]] = -8 activates the RPA bootstrap-like kernel (one-shot) (see [[cite:Berger2015]] -and [[cite:Rigamonti2015]]). +and [[cite:Rigamonti2015]]. + +[[gwgamma]] = -11 activates the Ward-identity compliant vertex kernel (see [[cite:Tal2021]]). +At present, the renormalization factor Z is fixed at 0.78, which is sufficiently accurate for most +semiconductors and insulators. +""", +), + +Variable( + abivarname="gwgmcorr", + varset="gw", + vartype="integer", + topics=['RPACorrEn_expert','GW_expert', 'SelfEnergy_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="GW Galitskii-Migdal CORRelation energy", + requires="[[optdriver]] == 3", + added_in_version="9.4.0", + text=r""" +[[gwgmcorr]]==1 allows to compute the GW correlation energy with the Galitskii-Migdal (GM) formula. +It must be used with [[gwrpacorr]]>0. For [[gwrpacorr]]=1 it will be obtained for free, while for [[gwrpacorr]]>1 it will require an extra inversion of the polarizability matrix. """, ), @@ -5795,8 +6796,9 @@ defaultval=1, mnemonics="GWLS BAND INDEX", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" -Governs the DFT eigenstate $|e\\rangle$ in which the self-energy will be evaluated, as +Governs the DFT eigenstate $|e\rangle$ in which the self-energy will be evaluated, as shown in Eq. (7) of [[cite:Laflamme2015]]. That is, it is the state to be corrected in the G0W0 scheme. """, @@ -5811,6 +6813,7 @@ defaultval=3, mnemonics="GWLS CORRELATION", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" Governs the use of a dielectric model (as explained in Sec. V of [[cite:Laflamme2015]] and the use of the Lanczos scheme to solve Eqs. (30) and @@ -5839,6 +6842,7 @@ defaultval=2, mnemonics="GWLS dielectric model", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" Not used yet. """, @@ -5853,6 +6857,7 @@ defaultval=1, mnemonics="GWLS exact EXCHANGE", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" Governs whether the exact exchange for the state to be corrected ([[gwls_band_index]]) is calculated ([[gwls_exchange]] == 1) or not @@ -5869,6 +6874,7 @@ defaultval="[[gwls_band_index]]", mnemonics="GWLS FIRST SEED vector", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" This variable sets the band index to be used to generate the first seed vector to be used in the construction of the Lanczos basis for the (static) @@ -5893,6 +6899,7 @@ defaultval=8, mnemonics="GWLS KMAX for the ANALYTIC term", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" Governs the number of iterations to be done in the shift Lanczos solution of Eq. (35) of [[cite:Laflamme2015]] to solve it at all external @@ -5910,6 +6917,7 @@ defaultval=1, mnemonics="GWLS KMAX for the COMPLEMENT space.", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" The G0W0 formalism involves the calculation of a summation conceptually linked to the trace of the dielectric matrix [see Eq. (38) of [[cite:Laflamme2015]]\]. @@ -5937,6 +6945,7 @@ defaultval=16, mnemonics="GWLS KMAX for the NUMERIC term", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" Governs the number of iterations to be done in the shift Lanczos solution of Eq. (30) of [[cite:Laflamme2015]] to solve it simultaneously at all @@ -5956,6 +6965,7 @@ defaultval=4, mnemonics="GWLS KMAX for the calculation of the POLES residue", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" The contour deformation technique, in the G0W0 context, will involve the calculation of pole residues associated to states lying between the one @@ -5982,6 +6992,7 @@ defaultval="*0.0", mnemonics="GWLS LIST of the PROJection FREQuencies", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" This variable sets the frequencies to be used to construct the basis in which the Hamiltonian is projected to accelerate the solution of the Sternheimer @@ -6003,6 +7014,7 @@ mnemonics="GWLS MODEL PARAMETER", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" This is the width of the lorentzian, in Ha, used to model the frequency dependence of the dielectric matrix in the GWLS calculation [see Eqs. (12-16) @@ -6031,6 +7043,7 @@ defaultval=0, mnemonics="GWLS Number of PROJection FREQuencies", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" This variable sets the number of frequencies, on top of $\infty$ and 0.0 (if [[gwls_recycle]] > 0), to be used for the construction of the basis in which @@ -6050,6 +7063,7 @@ defaultval=10, mnemonics="GWLS Number of PoinTs to use for the GAUSSian QUADrature", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" This variable defines the number of points used for the numerical integration of the self-energy over frequencies in GWLS computations [see Eq. (12) of @@ -6066,6 +7080,7 @@ defaultval=1, mnemonics="GWLS Number of SEED vectorS", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" This variable sets the number of seed vectors to be used in the construction of the Lanczos basis for the (static) dielectric matrix in a GWLS calculation. @@ -6083,6 +7098,7 @@ defaultval=0, mnemonics="GWLS PRINT level for DEBUGging", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" Influences the level of verbosity for debugging purposes in a GWLS calculation. Users should keep its value at the default. @@ -6098,6 +7114,7 @@ defaultval=2, mnemonics="GWLS RECYCLE", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" This variable let the user choose if and how he wants to recycle the solutions of the Sternheimer equations involved in the construction of the static dielectric matrix. @@ -6132,6 +7149,7 @@ defaultval=1, mnemonics="GWLS Kmax", requires="[[optdriver]] == 66", + added_in_version="before_v9", text=r""" This variable sets the dimension of the dielectric matrix used in a GWLS calculation [see Sec. IV of [[cite:Laflamme2015]]\]. Typically @@ -6144,11 +7162,12 @@ abivarname="gwmem", varset="gw", vartype="integer", - topics=['Susceptibility_expert', 'SelfEnergy_expert'], + topics=['Susceptibility_expert', 'SelfEnergy_expert', 'GW_expert', 'TuningSpeedMem_expert'], dimensions="scalar", defaultval=11, mnemonics="GW MEMory", requires="[[optdriver]] in [3,4]", + added_in_version="before_v9", text=r""" [[gwmem]] governs the memory strategy during a screening and/or a sigma run. @@ -6161,6 +7180,12 @@ The default is [[gwmem]] = 11, which is the fastest, but also the most memory consuming. When experiencing memory shortage, one should try [[gwmem]] = 0. The first digit is only meaningful when performing sigma calculations. + +!!! important + + Note that reading the screening file the SCR file during the sigma run leads to a **significant increase of the IO** + with a subsequent slowdown. Use this option if you really need it and make sure the sysadmin won't complain + about an abnormal IO activity of your jobs. """, ), @@ -6172,8 +7197,9 @@ dimensions="scalar", defaultval=2, mnemonics="GW PARAllelization level", - commentdefault="The default value has been changed in v8. From 1 to 2", + commentdefault="The default value has been changed in v8, from 1 to 2.", requires="[[optdriver]] in [3,4]", + added_in_version="before_v9", text=r""" gwpara is used to choose between the two different parallelization levels available in the GW code. The available options are: @@ -6185,6 +7211,17 @@ ([[gwpara]] = 2) allows one to reduce the memory allocated by each processor. Using [[gwpara]] = 1, indeed, requires the same amount of memory as a sequential run, irrespectively of the number of CPUs used. + +In the screening calculation [[optdriver]]=3, with [[gwpara]]=2, the +code distributes the wavefunctions such that each processing unit owns the +FULL set of occupied bands while the empty states are DISTRIBUTED among the +nodes. Thus the parallelisation is over the unoccupied states. + +The parallelism of the self-energy calculation [[optdriver]]=4, +with [[gwpara]]=2, is somehow different. It is over the entire set of bands, +and has different characteristics for the correlation calculation and for the exchange calculation.. +The MPI computation of the correlation part is efficient when the number of processors divides [[nband]]. +Optimal scaling in the exchange part is obtained only when each node possesses the full set of occupied states. """, ), @@ -6197,6 +7234,7 @@ defaultval=0, mnemonics="GW RPA CORRelation energy", requires="[[optdriver]] == 3 and [[gwcalctyp]] in [1,11,21]", + added_in_version="before_v9", text=r""" [[gwrpacorr]] governs the calculation of the RPA correlation energy. @@ -6217,6 +7255,7 @@ defaultval=0, mnemonics="Hybrid Monte Carlo Trial Trajectory", requires="[[ionmov]] == 25", + added_in_version="before_v9", text=r""" Number of steps per MC trial trajectory, for the Hybrid Monte Carlo algorithm [[ionmov]]=25. """, @@ -6231,6 +7270,7 @@ defaultval=0, mnemonics="Hybrid Monte Carlo Strain Step Trajectory", requires="[[ionmov]] == 25", + added_in_version="before_v9", text=r""" Number of strain teps per MC trial trajectory, for the Hybrid Monte Carlo algorithm [[ionmov]]=25. """, @@ -6242,13 +7282,14 @@ vartype="real", topics=['Hybrids_expert'], dimensions="scalar", - defaultval="-999.0d0", + defaultval="-999.0", mnemonics="HYBrid MIXING coefficient for unscreened fock operator", commentdefault="With the default, [[hyb_mixing]] is initialized from [[ixc]].", requires="[[usefock]] > 0", + added_in_version="before_v9", text=r""" Mixing coefficient for the unscreened Fock operator in case of hybrid -functionals. Hartree-Fock corresponds to 1.0, PBE0 to 0.25. +functionals. Hartree-Fock corresponds to 1.0, PBE0 to 0.25, and B3LYP to 0.2. ABINIT knows the correct value from [[ixc]]. Experts might nevertheless tune this mixing coefficient. """, @@ -6260,13 +7301,14 @@ vartype="real", topics=['Hybrids_expert'], dimensions="scalar", - defaultval="-999.0d0", + defaultval="-999.0", mnemonics="HYBrid MIXING coefficient for Short-Range screened fock operator", commentdefault="With the default, [[hyb_mixing_sr]] is initialized from [[ixc]].", requires="[[usefock]] > 0", + added_in_version="before_v9", text=r""" Mixing coefficient for the screened Fock operator in case of hybrid -functionals. HSE has 0.25, B3LYP has 0.2. +functionals. HSE has 0.25. ABINIT knows the correct value from [[ixc]]. Experts might nevertheless tune this mixing coefficient. @@ -6279,10 +7321,11 @@ vartype="real", topics=['Hybrids_expert'], dimensions="scalar", - defaultval="-999.0d0 or [[hyb_range_fock]] if it is defined by the user", + defaultval="-999.0 or [[hyb_range_fock]] if it is defined by the user", mnemonics="HYBrid RANGE for the DFT leftover from the screened fock operator", - commentdefault="With the default=-999.0d0, [[hyb_range_dft]] is initialized from [[ixc]].", + commentdefault="With the default=-999.0, [[hyb_range_dft]] is initialized from [[ixc]].", requires="[[usefock]] > 0", + added_in_version="before_v9", text=r""" Range of the DFT leftover from the screened Fock operator in case of hybrid functionals (actually, coefficient of the distance appearing in the erf @@ -6304,10 +7347,11 @@ vartype="real", topics=['Hybrids_expert'], dimensions="scalar", - defaultval="-999.0d0 or [[hyb_range_dft]] if it is defined by the user", + defaultval="-999.0 or [[hyb_range_dft]] if it is defined by the user", mnemonics="HYBrid RANGE for the screened FOCK operator", - commentdefault="With the default=-999.0d0, [[hyb_range_fock]] is initialized from [[ixc]].", + commentdefault="With the default=-999.0, [[hyb_range_fock]] is initialized from [[ixc]].", requires="[[usefock]] > 0", + added_in_version="before_v9", text=r""" Range of the screened Fock operator in case of hybrid functionals (actually, coefficient of the distance appearing in the erf function, thus it has the @@ -6334,6 +7378,7 @@ defaultval=0, mnemonics="Indices of AToms in CONstraint equations", characteristics=['[[NO_MULTI]]', '[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the indices of the atoms appearing in each of the [[nconeq]] independent equations constraining the motion of atoms during structural optimization or @@ -6350,6 +7395,7 @@ dimensions=['[[natfix]]'], mnemonics="Indices of AToms that are FIXed", requires="[[natfix]] > 0", + added_in_version="before_v9", text=r""" Give the index (in the range 1 to [[natom]] ) of each atom which is to be held fixed for structural optimization or molecular dynamics. The variable @@ -6385,6 +7431,7 @@ mnemonics="Indices of AToms that are FIXed along the X direction", characteristics=['[[INPUT_ONLY]]'], requires="[[natfixx]] > 0", + added_in_version="before_v9", text=r""" Give the index (in the range 1 to [[natom]] ) of each atom which is to be held fixed ALONG THE X direction for structural optimization or molecular dynamics. @@ -6404,6 +7451,7 @@ mnemonics="Indices of AToms that are FIXed along the Y direction", characteristics=['[[INPUT_ONLY]]'], requires="[[natfixy]] > 0", + added_in_version="before_v9", text=r""" Give the index (in the range 1 to [[natom]] ) of each atom which is to be held fixed ALONG THE Y direction for structural optimization or molecular dynamics. @@ -6423,6 +7471,7 @@ mnemonics="Indices of AToms that are FIXed along the Z direction", characteristics=['[[INPUT_ONLY]]'], requires="[[natfixz]] > 0", + added_in_version="before_v9", text=r""" Give the index (in the range 1 to [[natom]] ) of each atom which is to be held fixed ALONG THE Z direction for structural optimization or molecular dynamics. @@ -6437,14 +7486,15 @@ abivarname="iatsph", varset="gstate", vartype="integer", - topics=['printing_prdos', 'ElecBandStructure_useful', 'ElecDOS_useful'], + topics=['printing_prdos', 'ElecBandStructure_useful', 'ElecDOS_useful', 'AtomCentered_compulsory'], dimensions=['[[natsph]]'], defaultval=Range(start=1, stop='[[natsph]]'), mnemonics="Index for the ATomic SPHeres of the atom-projected density-of-states", - requires="[[prtdos]] == 3 or [[pawfatbnd]] in [1,2]", + requires="[[prtdos]] == 3 or 4 or [[pawfatbnd]] in [1,2]", + added_in_version="before_v9", text=r""" [[iatsph]] gives the number of the [[natsph]] atoms around which the sphere -for atom-projected density-of-states will be build, in the [[prtdos]] = 3 case. +for atom-projected density-of-states will be build, in the [[prtdos]] = 3 or 4 cases. The radius of these spheres is given by [[ratsph]]. If [[pawfatbnd]] = 1 or 2, it gives the number of the [[natsph]] atoms around which atom-projected band structure will be built. @@ -6455,10 +7505,11 @@ abivarname="iboxcut", varset="paw", vartype="integer", - topics=['TuningSpeed_expert'], + topics=['TuningSpeedMem_expert'], dimensions="scalar", defaultval=0, mnemonics="Integer governing the internal use of BOXCUT - not a very good choice of variable name", + added_in_version="before_v9", text=r""" Concern all summations in the reciprocal space and is allowed in PAW and norm-conserving. @@ -6471,56 +7522,59 @@ abivarname="icoulomb", varset="gstate", vartype="integer", - topics=['Coulomb_useful'], + topics=['Coulomb_expert'], dimensions="scalar", defaultval=0, mnemonics="Index for the COULOMB treatment", + added_in_version="before_v9", text=r""" -Defines the type of computation used for Hartree potential, local part of +Defines the type of computation (reciprocal space or real space) used for Hartree potential, local part of pseudo-potential and ion-ion interaction: - * [[icoulomb]] = 0: usual reciprocal space computation, using $1/\GG^2$ for the Hartree potential and using Ewald correction. + * [[icoulomb]] = 0: usual reciprocal space computation, using [[icutcoul]], [[gw_icutcoul]] and [[fock_icutcoul]] +to define the Hartree potential, and using Ewald correction. * [[icoulomb]] = 1: free boundary conditions are used when the Hartree potential is computed, real space expressions of pseudo-potentials are involved (restricted to GTH pseudo-potentials) - and simple coulomb interaction gives the ion-ion energy. + and simple coulomb interaction gives the ion-ion energy. The wavelet Coulomb solver is used in this case. """, ), Variable( abivarname="icutcoul", - varset="gw", + varset="gstate", vartype="integer", - topics=['GWls_compulsory', 'Susceptibility_basic', 'Coulomb_useful', 'SelfEnergy_basic'], + topics=['Coulomb_basic'], dimensions="scalar", - defaultval=6, + defaultval=3, mnemonics="Integer that governs the CUT-off for COULomb interaction", - requires="[[optdriver]] in [3,4]", - text=r""" -Many-body calculations for isolated systems present a slow convergence with -respect to the size of the supercell due to the long ranged Coulomb -interaction and the high degree of non-locality of the operators involved. A -similar issue also occurs in fully periodic systems due to the presence of the -integrable Coulomb singularity at $\mathbf{G}=0$ that hinders the convergence with -respect to the number of q-points used to sample the Brillouin zone. The -convergence can be accelerated by replacing the true bare Coulomb interaction -with other expressions. - -[[icutcoul]] defines the particular expression to be used for the Coulomb term -in reciprocal space. The choice of [[icutcoul]] depends on the dimensionality -of the system. Possible values of [[icutcoul]] are from 0 to 6. The -corresponding influential variables are [[vcutgeo]] and [[rcut]]. - - * 0 --> sphere (molecules but also 3D-crystals). - * 1 --> cylinder (nanowires, nanotubes). - * 2 --> surface. - * 3 --> 3D crystal (no cut-off, integration in a spherical mini-Brillouin Zone, legacy value). + added_in_version="before_v9", + text=r""" +Electronic structure calculations for isolated systems, 1D and 2D systems +present a slow convergence with respect to the size of the supercell due to the +long ranged Coulomb interaction and the high degree of non-locality of the +operators involved. Thus, restricting the range of the Coulomb interaction, +in order to prevent supercell images to interact can significantly speed-up +convergence, or even can make convergence happen. Also, even in the ground-state +case, a cut-off Coulomb interaction might prove useful. + +[[icutcoul]] defines the particular expression to be used for the Coulomb-like terms +in reciprocal space in ground-state calculations. See [[gw_icutcoul]] for GW calculationts, +and [[fock_icutcoul]] for the Fock-like terms in ground-state calculations -e.g. using hybrid functionals-. + +The choice of [[icutcoul]] depends on the dimensionality +of the system. Possible values of [[icutcoul]] are from 0 to 5. +For 1-dimensional and 2-dimensional systems, the geometry of the system (along which directions the cell is to be periodically repeated, +along which ones the system is finite) +has to be specified explicitly. +This is done thanks to [[vcutgeo]]. For 0-, 1- and 2-dimensional systems, a cut-off length might be provided, depending +on the methodology, thanks to [[rcut]]. + + * 0 --> Sphere (molecules, but also 3D-crystals, see below). See [[rcut]]. + * 1 --> (W.I.P.) cylinder (nanowires, nanotubes). See [[vcutgeo]] and [[rcut]]. + * 2 --> Surface. See [[vcutgeo]] and [[rcut]]. + * 3 --> 3D crystal (Coulomb interaction without cut-off). * 4 --> ERF, long-range only Coulomb interaction. - * 5 --> ERFC, short-range only Coulomb interaction (e.g. as used in the HSE functional). - * 6 --> auxiliary function integration for 3D systems from [[cite:Carrier2007]]. - * 7 --> auxiliary function for 3D systems of Gygi and Baldereschi [[cite:Gygi1986]]. - * 14 --> Monte-Carlo integration in the mini-Brillouin zone for ERF, long-range only Coulomb interaction. - * 15 --> Monte-Carlo integration in the mini-Brillouin zone for ERFC, short-range only Coulomb interaction. - * 16 --> Monte-Carlo integration in the mini-Brillouin zone for Full Coulomb interaction. + * 5 --> ERFC, short-range only Coulomb interaction (e.g. as used in the HSE functional). (W.I.P.) Note that Spencer and Alavi showed that the spherical cutoff can efficiently be used also for 3D systems [[cite:Spencer2008]]. @@ -6538,10 +7592,11 @@ dimensions="scalar", defaultval=0, mnemonics="Integer for second-order EIGenvalues from Response-Function", + added_in_version="before_v9", text=r""" -If [[ieig2rf]] is greater then 0, the code will produce a file, named with the -trailing suffix _EIGR2D, containing the second-order electronic eigenvalues -for the perturbation. These files are used in the calculation of the thermal +If [[ieig2rf]] is greater than 0, the code will produce a file, named with the +suffix _EIGR2D, containing the second-order electronic eigenvalues for the perturbation. +These files are used in the calculation of the thermal correction to the electronic eigenvalues. * If [[ieig2rf]] is set to 1, the second-order electronic eigenvalues will be @@ -6570,11 +7625,11 @@ less disk space and memory (but run a little bit slower). !!! note + [[ieig2rf]] = 4 and 5 can only be used if Abinit is compiled with NETCDF support. -Related variables: -[[bdeigrf]],[[elph2_imagden]],[[getgam_eig2nkq]],[[smdelta]] +Related variables: [[bdeigrf]], [[elph2_imagden]], [[getgam_eig2nkq]], [[smdelta]] """, ), @@ -6586,6 +7641,7 @@ dimensions="scalar", defaultval=0, mnemonics="IMaGe MOVEs", + added_in_version="before_v9", text=r""" Control the collective changes of images (see [[nimage]],[[npimage]], [[dynimage]], [[ntimimage]], [[tolimg]], [[istatimg]], [[prtvolimg]]). @@ -6609,6 +7665,7 @@ variables, as well as with the parallelism (see input variable [[npimage]]). ```fortran + do itimimage=1,ntimimage do iimage=1,nimage (possibly, parallelisation over images) @@ -6662,6 +7719,7 @@ defaultval=0, mnemonics="IMaGe WaveFunction STORage", requires="[[extrapwf]] == 0 and [[ntimimage]] > 0", + added_in_version="before_v9", text=r""" Govern the storage of wavefunctions at the level of the loop over images, see [[ntimimage]]. Possible values of [[imgwfstor]] are 0 or 1. @@ -6690,21 +7748,22 @@ defaultval=2, mnemonics="INCLude VKB", requires="[[optdriver]] in [3,99]", + added_in_version="before_v9", text=r""" -Possible values of [[inclvkb]] are 0,1,2. If [[inclvkb]] is 1 or 2, the +Possible values of [[inclvkb]] are 0,2. If [[inclvkb]] is 2, the commutator of the non-local part of the pseudopotential with the position -operator is correctly included in the q --> 0 contribution. This is -unfortunately time-consuming and in particular when the old algorithm -implemented by [[inclvkb]] = 1 is used ([[inclvkb]] = 2 is the recommended option). When -[[inclvkb]] is 0, this contribution is incorrectly omitted, but the computation is much faster. +operator is correctly included in the q --> 0 contribution. This is unfortunately time-consuming. +When [[inclvkb]] is 0, this contribution is incorrectly omitted, but the computation is much faster. The importance of this contribution depends on the number of k points. Turning -off [[inclvkb]] is to let to the choice of the user. +off [[inclvkb]] is let to the choice of the user. In general, the use of [[inclvkb]] = 0 is fine for GW calculations in crystalline systems provided that the k-point sampling is sufficiently converged. -The use of [[inclvkb]] = 2 is strongly recommended for the calculation of optical properties. +!!! important + + The use of [[inclvkb]] = 2 is strongly recommended for the calculation of optical properties. """, ), @@ -6717,24 +7776,42 @@ defaultval=0, mnemonics="INTerpolation for eXchange-Correlation", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" * 0 --> do "usual" xc quadrature on fft grid * 1 --> do higher accuracy xc quadrature using fft grid and additional points at the centers of each cube (doubles number of grid points)--the high accuracy version is only valid for boxcut>=2. If boxcut < 2, the code stops. For RF calculations only [[intxc]] = 0 is allowed yet. Moreover, the GS -preparation runs (giving the density file and zero-order wavefunctions) must -be done with [[intxc]] = 0 +preparation runs (giving the density file and zero-order wavefunctions) must be done with [[intxc]] = 0 Prior to ABINITv2.3, the choice [[intxc]] = 1 was favoured (it was the default), but the continuation of the development of the code lead to prefer the default [[intxc]] = 0. Indeed, the benefit of [[intxc]] = 1 is rather small, while making -it available for all cases is a non-negligible development effort. Other -targets are prioritary. You will notice that many automatic tests use +it available for all cases is a non-negligible development effort. +Other targets are prioritary. You will notice that many automatic tests use [[intxc]] = 1. Please, do not follow this historical choice for your production runs. """, ), +Variable( + abivarname="invovl_blksliced", + varset="dev", + vartype="integer", + topics=['parallelism_expert'], + dimensions="scalar", + mnemonics="INVerse OVerLap: BLocK-diagonal matrix applied SLICED", + added_in_version="9.7.2", + defaultval=ValueWithConditions({'[[gpu_option]] > 0': '0', 'defaultval': 1}), + text=r""" +Only relevant if [[wfoptalg]] == 1 or 111 (WF optimization by Chebyshev filtering algorithm). +In the Chebyshev-filtered subspace method (iterative diagonalization algorithm)) +one needs to apply the inverse of the overlap matrix. [[invovl_blksliced]] allows one +to choose between two variants, sliced (1) or non-sliced (0). +Default value is different for an execution on GPU. +""", +), + Variable( abivarname="iomode", varset="dev", @@ -6744,42 +7821,44 @@ defaultval=ValueWithConditions({'[[MPI_IO]] and [[paral_kgb]] == 1': 1, 'defaultval': 0}), mnemonics="Input-Output MODE", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" -This option selects the format used to produce the output wavefunction files -and the files containing densities and potentials. It mainly affects the -creation of the output files since several parts of Abinit are able to read -data from files independently of their format (either binary files or netcdf -files). The possible values are: +This option selects the format used to produce "large" binary files such as the output wavefunction files, +the files with densities and potentials (DEN, POT) as well as the SCR file produced by the GW code. +Other "small" netcdf files such as the GSR.nc are always produced independently of the value of **iomode**. + +Note that this variable mainly defines the format of the output files since Abinit is able to read +data from files independently of their format (either Fortran binary files or netcdf files). +The possible values are: * 0 --> Use standard Fortran IO (ok for sequential runs, not suitable for large parallel runs) * 1 --> Use MPI/IO routines (ok both for sequential and large parallel runs) * 3 --> Use NetCDF library to produce files according to the ETSF specification [[cite:Gonze2008]] (ok for sequential, requires netcdf4 + hdf5 + MPI-IO support for large parallel runs) -By default, Abinit produces Fortran files and uses parallel MPI-IO under the -hood when these operations cannot be implemented in terms of simple Fortran -write/read statements. For example, [[paral_kgb]] = 1 uses the MPI-IO API -provided by your MPI library. - -In a nutshell, use the default value and make sure that your MPI library -supports MPI-IO before embarking yourself in large parallel runs (HAVE_MPI_IO -should be set to 1 in ~abinit/config.h). Many MPI libraries, nowadays, support -the MPI-2 standard so it's very likely that your MPI supports parallel IO. If -you encounter problems, please ask your sysadmin to install a MPI library with MPI-IO capabilities. +By default, Abinit produces Fortran files and uses the MPI-IO API when these operations +cannot be implemented in terms of simple Fortran write/read statements. +For example, [[paral_kgb]] = 1 uses the MPI-IO API to generate a Fortran binary file that can be read with +plain Fortran read statements. + +There are cases, however, in which you would like to change the default behaviour. +For example, you may want to generate WFK or DEN files in netcdf +format because you need data in this format. +In this case, you have to use [[iomode]] == 3 in the input file to override the default behaviour. +Note, however, that you still need parallel IO capabilities enabled in the netcdf library if +you want to produce netcdf files in parallel with [[paral_kgb]] = 1 +(i.e. netcdf4 + hdf5 + MPI-IO). +At present, the internal fallbacks provided by Abinit do not support netcdf4 so you have +to link against an external netcdf library that supports hdf5+MPI-IO +and is compatible with the mpif90 used to compile Abinit. +See ~abinit/doc/build/config-examples/ubu_intel_17.0_openmpi.ac for a typical configuration file. -There are cases, however, in which you would like to change the default -behaviour. For example, you may want to generate WFK or DEN files in etsf-io -format because you need data in this format. In this case, you have to use -iomode==3 in the input file to override the default behaviour. Note however -that you still need parallel IO capabilities enabled in the netcdf library if -you want to produce netcdf files in parallel with [[paral_kgb]] = 1 (i.e. -netcdf4 + hdf5 + MPI-IO). At present, the internal fallbacks provided by -Abinit do not support netcdf4 so you have to link against an external netcdf -library that supports hdf5+MPI-IO and is compatible with the mpif90 used to -compile Abinit. See ~abinit/doc/build/config-examples/ubu_intel_17.0_openmpi.ac for a typical configuration file. +!!! important -Additional note: The use of the ETSF_IO library [[cite:Caliste2008]] has been disabled, and replaced by direct NetCDF calls. -The ETSF_IO library is not maintained anymore. + The use of the ETSF_IO library [[cite:Caliste2008]] has been disabled, and replaced + by direct NetCDF calls since the ETSF_IO library is not maintained anymore. + The netcdf files, however, are still written following the ETSF-IO specifications [[cite:Gonze2008]] + and extended with Abinit-specific quantities. """, ), @@ -6791,152 +7870,209 @@ dimensions="scalar", defaultval=0, mnemonics="IONic MOVEs", + added_in_version="before_v9", text=r""" -Choice of algorithm to control the displacements of ions, and eventually (see -[[optcell]]) changes of cell shape and size. - - * 0 --> Do not move ions; - - * 1 --> Move atoms using molecular dynamics with optional viscous damping (friction linearly proportional to velocity). The viscous damping is controlled by the parameter "[[vis]]". If actual undamped molecular dynamics is desired, set [[vis]] to 0. The implemented algorithm is the generalisation of the Numerov technique (6th order), but is NOT invariant upon time-reversal, so that the energy is not conserved. The value [[ionmov]] = 6 will usually be preferred, although the algorithm that is implemented is lower-order. The time step is governed by [[dtion]]. -**Purpose:** Molecular dynamics (if [[vis]] = 0), Structural optimization (if -[[vis]] >0) -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** Viscous parameter [[vis]], time step [[dtion]], index -of atoms fixed [[iatfix]] - - * 2 --> Conduct structural optimization using the Broyden-Fletcher-Goldfarb-Shanno minimization (BFGS). This is much more efficient for structural optimization than viscous damping, when there are less than about 10 degrees of freedom to optimize. Another version of the BFGS is available with [[ionmov]]==22, and is apparently more robust and efficient than [[ionmov]]==2. -**Purpose:** Structural optimization -**Cell optimization:** Yes (if [[optcell]]/=0) -**Related variables:** - - * 3 --> Conduct structural optimization using the Broyden-Fletcher-Goldfarb-Shanno minimization (BFGS), modified to take into account the total energy as well as the gradients (as in usual BFGS). -See [[cite:Schlegel1982]]. Might be better than [[ionmov]] = 2 for few degrees of freedom (less than 3 or 4). Can be very -unstable - use with caution! -**Purpose:** Structural optimization -**Cell optimization:** Yes (if [[optcell]]/=0) -**Related variables:** - - * 4 --> Conjugate gradient algorithm for simultaneous optimization of potential and ionic degrees of freedom. It can be used with [[iscf]] = 2 and [[iscf]] =5 or 6 (WARNING: this is under development, and does not work very well in many cases). -**Purpose:** Structural optimization -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** - - * 5 --> Simple relaxation of ionic positions according to (converged) forces. Equivalent to [[ionmov]] = 1 with zero masses, albeit the relaxation coefficient is not [[vis]], but [[iprcfc]]. -**Purpose:** Structural optimization -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** - - * 6 --> Molecular dynamics using the Verlet algorithm, see [[cite:Allen1987a]] p 81]. The only related parameter is the time step ([[dtion]]). -**Purpose:** Molecular dynamics -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** time step [[dtion]], index of atoms fixed [[iatfix]] - - * 7 --> Quenched Molecular dynamics using the Verlet algorithm, and stopping each atom for which the scalar product of velocity and force is negative. The only related parameter is the time step ([[dtion]]). The goal is not to produce a realistic dynamics, but to go as fast as possible to the minimum. For this purpose, it is advised to set all the masses to the same value (for example, use the Carbon mass, i.e. set [[amu]] to 12 for all type of atoms). -**Purpose:** Structural optimization -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** time step [[dtion]], index of atoms fixed [[iatfix]] +Choice of algorithm to control the displacements of ions, and possibly changes of cell shape and size (see [[optcell]]). +No meaning for RF calculations. + + * 0 --> Do not move ions (**default behaviour**) + + * 1 --> Move atoms using molecular dynamics with optional viscous damping (friction linearly proportional to velocity). + The viscous damping is controlled by the [[vis]] parameter. + If undamped molecular dynamics is desired, set [[vis]] to 0. + The implemented algorithm is the generalisation of the Numerov technique (6th order), but is NOT invariant upon time-reversal, + so that the energy is not conserved. + The value **ionmov** = 6 will usually be preferred, although the algorithm that is implemented is lower-order. + The time step is governed by [[dtion]]. + **Purpose:** Molecular dynamics (if [[vis]] = 0), Structural optimization (if [[vis]] >0) + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** Viscous parameter [[vis]], time step [[dtion]], index of atoms fixed [[iatfix]] + + * 2 --> Conduct structural optimization using the Broyden-Fletcher-Goldfarb-Shanno minimization (BFGS). + This is much more efficient for structural optimization than viscous damping, when there are + less than about 10 degrees of freedom to optimize. + Another version of the BFGS is available with **ionmov** == 22, and is apparently more robust and + efficient than **ionmov** == 2. + **Purpose:** Structural optimization + **Cell optimization:** Yes (if [[optcell]]/=0) + + * 3 --> Conduct structural optimization using the Broyden-Fletcher-Goldfarb-Shanno minimization (BFGS), + modified to take into account the total energy as well as the gradients (as in usual BFGS). + See [[cite:Schlegel1982]]. Might be better than **ionmov** = 2 for few degrees of freedom (less than 3 or 4). + Can be very unstable - use with caution! + **Purpose:** Structural optimization + **Cell optimization:** Yes (if [[optcell]]/=0) + + * 4 --> Conjugate gradient algorithm for simultaneous optimization of potential and ionic degrees of freedom. + It can be used with [[iscf]] = 2 and [[iscf]] =5 or 6 + (WARNING: this is under development, and does not work very well in many cases). + **Purpose:** Structural optimization + **Cell optimization:** No (Use [[optcell]] = 0 only) + + * 5 --> Simple relaxation of ionic positions according to (converged) forces. + Equivalent to **ionmov** = 1 with zero masses, albeit the relaxation coefficient is not [[vis]], but [[iprcfc]]. + **Purpose:** Structural optimization + **Cell optimization:** No (Use [[optcell]] = 0 only) + + * 6 --> Molecular dynamics using the Verlet algorithm, see [[cite:Allen1987a]] p 81]. + The only related parameter is the time step ([[dtion]]). + **Purpose:** Molecular dynamics + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** time step [[dtion]], index of atoms fixed [[iatfix]] + + * 7 --> Quenched Molecular dynamics using the Verlet algorithm, and stopping each atom for which + the scalar product of velocity and force is negative. The only related parameter is the time step ([[dtion]]). + The goal is not to produce a realistic dynamics, but to go as fast as possible to the minimum. + For this purpose, it is advised to set all the masses to the same value + (for example, use the Carbon mass, i.e. set [[amu]] to 12 for all type of atoms). + **Purpose:** Structural optimization + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** time step [[dtion]], index of atoms fixed [[iatfix]] * 8 --> Molecular dynamics with Nose-Hoover thermostat, using the Verlet algorithm. -**Purpose:** Molecular dynamics -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** time step ([[dtion]]), Temperatures ([[mdtemp]]), and -thermostat mass ([[noseinert]]). + **Purpose:** Molecular dynamics + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** time step ([[dtion]]), Temperatures ([[mdtemp]]), and thermostat mass ([[noseinert]]). * 9 --> Langevin molecular dynamics. -**Purpose:** Molecular dynamics -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** time step ([[dtion]]), temperatures ([[mdtemp]]) and -friction coefficient ([[friction]]). + **Purpose:** Molecular dynamics + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** time step ([[dtion]]), temperatures ([[mdtemp]]) and friction coefficient ([[friction]]). - * 10 --> Delocalized internal coordinates with BFGS simple -**Purpose:** Structural optimization -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** + * 10 --> Delocalized internal coordinates with simple BFGS + **Purpose:** Structural optimization + **Cell optimization:** No (Use [[optcell]] = 0 only) * 11 --> Delocalized internal coordinates with BFGS using total energy -**Purpose:** Structural optimization -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** + **Purpose:** Structural optimization + **Cell optimization:** No (Use [[optcell]] = 0 only) * 12 --> Isokinetic ensemble molecular dynamics. -The equation of motion of the ions in contact with a thermostat are solved with the algorithm proposed in [[cite:Zhang1997]], -as worked out in [[cite:Minary2003]]. -The conservation of the kinetic energy is obtained within machine precision, at each step. -As in [[cite:Evans1983]], when there is no fixing of atoms, the number of degrees of freedom in which the -microscopic kinetic energy is hosted is 3*natom-4. Indeed, the total kinetic energy is constrained, which accounts for -minus one degree of freedom (also mentioned in [[cite:Minary2003]]), but also there are three degrees of freedom -related to the total momentum in each direction, that cannot be counted as microscopic degrees of freedom, since the -total momentum is also preserved (but this is not mentioned in [[cite:Minary2003]]). When some atom is fixed in one or more direction, -e.g. using [[natfix]], [[natfixx]], [[natfixy]], or [[natfixz]], the number of degrees of freedom is decreased accordingly, -albeit taking into account that the total momentum is not preserved -anymore (e.g. fixing the position of one atom gives 3*natom-4, like in the non-fixed case). -**Purpose:** Molecular dynamics -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** time step ([[dtion]]) and the first temperature in [[mdtemp]] in case the velocities [[vel]] are not initialized, or all initialized to zero. - - * 13 --> Isothermal/isenthalpic ensemble. The equation of motion of the ions in contact with a thermostat and a barostat are solved with the algorithm proposed in [[cite:Martyna1996]]. -If optcell=1 or 2, the mass of the barostat ([[bmass]]) must be given in -addition. -**Purpose:** Molecular dynamics -**Cell optimization:** Yes (if [[optcell]]/=0) -**Related variables:** The time step ([[dtion]]), the temperatures -([[mdtemp]]), the number of thermostats ([[nnos]]), and the masses of -thermostats ([[qmass]]). - - * 14 --> Simple molecular dynamics with a symplectic algorithm proposed in [[cite:Blanes2002]] (called SRKNa14] of the kind first published in [[cite:Yoshida1990]]This algorithm requires at least 14 evaluation of the forces (actually 15 are done within Abinit) per time step. At this cost it usually gives much better energy conservation than the verlet algorithm ([[ionmov]] 6) for a 30 times bigger value of [[dtion]]. Notice that the potential energy of the initial atomic configuration is never evaluated using this algorithm. -**Purpose:** Molecular dynamics -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** - - * 15 --> Fast inertial relaxation engine (FIRE) algorithm proposed by -Erik Bitzek, Pekka Koskinen, Franz Gähler, Michael Moseler, and Peter Gumbsch in [[cite:Bitzek2006]]. -According to the authors, the efficiency of this method is nearly the same as L-bfgs ([[ionmov]]=22). -It is based on conventional molecular dynamics with additional velocity modifications and adaptive time steps. -The initial time step is set with [[dtion]]. Note that the physical meaning and unit of [[dtion]] are different from the default ones. -The purpose of this algorithm is relaxation, not molecular dynamics. [[dtion]] governs the ion position changes, but the cell parameter changes as well. -The positions are in reduced coordinates instead of in cartesian coordinates. The suggested first guess of dtion is 0.03. -**Purpose:** Relaxation -**Cell optimization:** Yes (if [[optcell]]/=0) -**Related variables:** The initial time step [[dtion]] - - * 20 --> Direct inversion of the iterative subspace. Given a starting point [[xred]] that is a vector of length 3*[[natom]] (reduced nuclei coordinates), and unit cell parameters ([[rprimd]]) this routine uses the DIIS (direct inversion of the iterative subspace) to minimize the gradient (forces) on atoms. The preconditioning used to compute errors from gradients is using an inverse hessian matrix obtained by a BFGS algorithm. This method is known to converge to the nearest point where gradients vanish. This is efficient to refine positions around a saddle point for instance. -**Purpose:** Structural optimization -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** DIIS memory [[diismemory]] - - * 22 --> Conduct structural optimization using the Limited-memory Broyden-Fletcher-Goldfarb-Shanno minimization (L-BFGS) [[cite:Nocedal1980]]. The working routines were based on the original implementation of J. Nocedal available on netlib.org. This algorithm can be much better than the native implementation of BFGS in ABINIT ([[ionmov]] = 2) when one approaches convergence, perhaps because of better treatment of numerical details. -**Purpose:** Structural optimization -**Cell optimization:** Yes (if [[optcell]]/=0) -**Related variables:** - - * 23 --> Use of Learn on The Fly method (LOTF) for Molecular Dynamics. In the framework of isokinetic MD, the atomic forces and positions are computed by using LOTF interpolation. A SCF computation is performed only any [[lotf_nitex]] steps. The results of the SCF are used to compute the parameters of a short range classical potential (for the moment only the glue potential for gold is implemented). Then these parameters are continuously tuned to compute atomic trajectories. LOTF has to be enabled at configure time. If LOTF is not enabled and [[ionmov]] = 23, abinit will set automatically [[ionmov]] = 12. -The LOTF cycle is divided in the following steps: -a) Initialization (SFC at t=0) and computation of potential parameters. -b) Extrapolation of the atomic forces and positions for [[lotf_nitex]] time -step. To perform this extrapolation, the potential computed in a) is used -(Verlet algorithm). -c) SFC at t=[[lotf_nitex]]. Computation of the potential parameters. -d) LOTF interpolation, linear interpolation of the potential parameters and -computation of the atomic forces and positions between t=0 and t=lotf_nitex. -**Purpose:** Molecular Dynamics -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** [[dtion]], [[lotf_classic]], [[lotf_nitex]], -[[lotf_nneigx]], [[lotf_version]]. - - * 24 --> Simple constant energy molecular dynamics using the velocity Verlet symplectic algorithm (second order), see [[cite:Hairer2003]]. The only related parameter is the time step ([[dtion]]). -**Purpose:** Molecular dynamics -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** time step [[dtion]] - - * 25 --> Hybrid Monte Carlo sampling of the ionic positions at fixed temperature and unit cell geometry (NVT ensemble). The underlying molecular dynamics corresponds to [[ionmov]]=24. The related parameters are the time step ([[dtion]]) and thermostat temperature ([[mdtemp]]). -Within the HMC algorithm [[cite:Duane1987]], the trial states are generated via short $NVE$ trajectories (ten [[ionmov]]=24 steps in current implementation). - The initial momenta for each trial are randomly sampled from Boltzmann distribution, and the final trajectory state is either accepted or rejected based on the Metropolis criterion. - Such strategy allows to simultaneously update all reduced coordinates, achieve higher acceptance ratio than classical Metropolis Monte Carlo and better sampling efficiency for shallow energy landscapes [[cite:Prokhorenko2018]]. -**Purpose:** Monte Carlo sampling -**Cell optimization:** No (Use [[optcell]] = 0 only) -**Related variables:** time step [[dtion]], thermostat temperature [[mdtemp]], - -No meaning for RF calculations. + The equation of motion of the ions in contact with a thermostat are solved with the + algorithm proposed in [[cite:Zhang1997]], as worked out in [[cite:Minary2003]]. + The conservation of the kinetic energy is obtained within machine precision at each step. + As in [[cite:Evans1983]], when there is no fixing of atoms, the number of degrees of freedom in which the + microscopic kinetic energy is hosted is 3*[[natom]] - 4. + Indeed, the total kinetic energy is constrained, which accounts for + minus one degree of freedom (also mentioned in [[cite:Minary2003]]), but also there are three degrees of freedom + related to the total momentum in each direction, that cannot be counted as microscopic degrees of freedom, since the + total momentum is also preserved (but this is not mentioned in [[cite:Minary2003]]). + When some atom is fixed in one or more direction, + e.g. using [[natfix]], [[natfixx]], [[natfixy]], or [[natfixz]], the number of degrees of freedom is decreased accordingly, + albeit taking into account that the total momentum is not preserved + anymore (e.g. fixing the position of one atom gives 3*natom-4, like in the non-fixed case). + **Purpose:** Molecular dynamics + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** time step ([[dtion]]) and the first temperature in [[mdtemp]] in case + the velocities [[vel]] are not initialized, or all initialized to zero. + + * 13 --> Isothermal/isenthalpic ensemble. The equation of motion of the ions in contact with a thermostat + and a barostat are solved with the algorithm proposed in [[cite:Martyna1996]]. + If optcell=1 or 2, the mass of the barostat ([[bmass]]) must be given in addition. + **Purpose:** Molecular dynamics + **Cell optimization:** Yes (if [[optcell]]/=0) + **Related variables:** The time step ([[dtion]]), the temperatures ([[mdtemp]]), + the number of thermostats ([[nnos]]), and the masses of thermostats ([[qmass]]). + + * 14 --> Simple molecular dynamics with a symplectic algorithm proposed in [[cite:Blanes2002]] (called SRKNa14] + of the kind first published in [[cite:Yoshida1990]]. + This algorithm requires at least 14 evaluation of the forces (actually 15 are done within Abinit) per time step. + At this cost it usually gives much better energy conservation than the verlet algorithm (**ionmov** 6) + for a 30 times bigger value of [[dtion]]. + Notice that the potential energy of the initial atomic configuration is never evaluated using this algorithm. + **Purpose:** Molecular dynamics + **Cell optimization:** No (Use [[optcell]] = 0 only) + + * 15 --> Fast inertial relaxation engine (FIRE) algorithm proposed by Erik Bitzek, Pekka Koskinen, Franz Gähler, + Michael Moseler, and Peter Gumbsch in [[cite:Bitzek2006]]. + According to the authors, the efficiency of this method is nearly the same as L-bfgs (**ionmov** = 22). + It is based on conventional molecular dynamics with additional velocity modifications and adaptive time steps. + The initial time step is set with [[dtion]]. Note that the physical meaning and unit of [[dtion]] are different + from the default ones. + The purpose of this algorithm is relaxation, not molecular dynamics. [[dtion]] governs the ion position changes, + but the cell parameter changes as well. + The positions are in reduced coordinates instead of in cartesian coordinates. + The suggested first guess of dtion is 0.03. + **Purpose:** Relaxation + **Cell optimization:** Yes (if [[optcell]]/=0) + **Related variables:** The initial time step [[dtion]] + + * 20 --> Direct inversion of the iterative subspace. + Given a starting point [[xred]] that is a vector of length 3*[[natom]] (reduced nuclei coordinates), + and unit cell parameters ([[rprimd]]) this routine uses the DIIS (direct inversion of the iterative subspace) + to minimize the gradient (forces) on atoms. + The preconditioning used to compute errors from gradients is using an inverse hessian matrix obtained by a BFGS algorithm. + This method is known to converge to the nearest point where gradients vanish. + This is efficient to refine positions around a saddle point for instance. + **Purpose:** Structural optimization + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** DIIS memory [[diismemory]] + + * 22 --> Conduct structural optimization using the Limited-memory + Broyden-Fletcher-Goldfarb-Shanno minimization (L-BFGS) [[cite:Nocedal1980]]. + The routines are based on the original implementation by J. Nocedal available on netlib.org. + This algorithm can be much better than the native implementation of BFGS in ABINIT (**ionmov** = 2) + when one approaches convergence, perhaps because of better treatment of numerical details. + **Purpose:** Structural optimization + **Cell optimization:** Yes (if [[optcell]]/=0) + + * 23 --> Use of Learn on The Fly method (LOTF) for Molecular Dynamics. + In the framework of isokinetic MD, the atomic forces and positions are computed by using LOTF interpolation. + A SCF computation is performed only any [[lotf_nitex]] steps. + The results of the SCF are used to compute the parameters of a short range classical potential + (for the moment only the glue potential for gold is implemented). Then these parameters are continuously + tuned to compute atomic trajectories. LOTF has to be enabled at configure time. + If LOTF is not enabled and **ionmov** = 23, abinit will set automatically **ionmov** = 12. + The LOTF cycle is divided in the following steps: + a) Initialization (SFC at t=0) and computation of potential parameters. + b) Extrapolation of the atomic forces and positions for [[lotf_nitex]] time + step. To perform this extrapolation, the potential computed in a) is used + (Verlet algorithm). + c) SFC at t=[[lotf_nitex]]. Computation of the potential parameters. + d) LOTF interpolation, linear interpolation of the potential parameters and + computation of the atomic forces and positions between t=0 and t=lotf_nitex. + **Purpose:** Molecular Dynamics + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** [[dtion]], [[lotf_classic]], [[lotf_nitex]], [[lotf_nneigx]], [[lotf_version]]. + + * 24 --> Simple constant energy molecular dynamics using + the velocity Verlet symplectic algorithm (second order), see [[cite:Hairer2003]]. + The only related parameter is the time step ([[dtion]]). + **Purpose:** Molecular dynamics + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** time step [[dtion]] + + * 25 --> Hybrid Monte Carlo sampling of the ionic positions at fixed temperature and unit cell geometry (NVT ensemble). + The underlying molecular dynamics corresponds to **ionmov** = 24. + The related parameters are the time step ([[dtion]]) and thermostat temperature ([[mdtemp]]). + Within the HMC algorithm [[cite:Duane1987]], the trial states are generated + via short $NVE$ trajectories (ten **ionmov** = 24 steps in current implementation). + The initial momenta for each trial are randomly sampled from Boltzmann distribution, + and the final trajectory state is either accepted or rejected based on the Metropolis criterion. + Such strategy allows to simultaneously update all reduced coordinates, achieve higher acceptance + ratio than classical Metropolis Monte Carlo and better sampling efficiency + for shallow energy landscapes [[cite:Prokhorenko2018]]. + **Purpose:** Monte Carlo sampling + **Cell optimization:** No (Use [[optcell]] = 0 only) + **Related variables:** time step [[dtion]], thermostat temperature [[mdtemp]], + + * 27 --> TO BE DOCUMENTED + + * 28 --> Update atomic positions and unit cell parameters using the i-pi client-server protocol + as described in [[cite:Kapil2019]]. + In this case, ABINIT (the client) sends total energies, forces and stress tensor to the server + that sends back the new configuration (atomic positions and cell parameters) to the ab-initio + engine for further calculations. + Note that the server is supposed to generate an input file that is consistent with the optimization/MD + algorithm implemented by ABINIT. + For instance, a server that wants to performs calculations with varying unit cells + should set [[optcell]] > 0 in the initial input. + Note that, at present, this feature is mainly used to interface ABINIT + with the ASE optimization routines. Moreover the user is responsible for creating an input + file with tuned tolerances to prevent Abinit from exiting when internal convergence is reached. + See examples available in the [ASE documentation](https://wiki.fysik.dtu.dk/ase/dev/ase/calculators/socketio/socketio.html) + **Purpose:** Structural optimization driver by the server (MD runs are not yet supported) + **Cell optimization:** Yes (provide [[optcell]] > 0 in the initial input) """, ), @@ -6948,6 +8084,7 @@ dimensions="scalar", defaultval=0, mnemonics="Integer for PReConditioning of ELectron response", + added_in_version="before_v9", text=r""" Used when [[iscf]] > 0, to define the SCF preconditioning scheme. Potential- based preconditioning schemes for the SCF loop (electronic part) are still a @@ -6993,6 +8130,7 @@ defaultval=0, mnemonics="Integer for PReConditioner of Force Constants", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used when [[iscf]] > 0, to define the SCF preconditioning scheme. Potential- based preconditioning schemes for the SCF loop are still under development. @@ -7019,6 +8157,7 @@ defaultval=0, mnemonics="Index for QPoinT generation", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Only used if [[nqpt]] = 1, and [[qptopt]] = 1 to 4. @@ -7042,6 +8181,7 @@ defaultval=3, mnemonics="Integer for the choice of the RANDOM number generator", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" For the time being, only used when [[imgmov]] = 9 (Langevin Path-Integral Molecular Dynamics). [[irandom]] defines the random number generator. @@ -7066,15 +8206,16 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[iscf]] < 0': 1, 'defaultval': 0}), mnemonics="Integer that governs the ReaDing of 1st-order DEN file", + added_in_version="before_v9", text=r""" -If first order density is needed in single dataset mode (for example in +If the first-order density is needed in single dataset mode (for example in nonlinear optical response), use [[ird1den]] = 1 to read first-order densities from _DENx files produced in other calculations. In multi-dataset mode use [[get1den]]. When [[iscf]] < 0, the reading of a DEN file is always enforced. A non-zero value of **ird1den** is treated in the same way as other "ird" variables. -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. """, ), @@ -7086,38 +8227,34 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of _1WF files", + added_in_version="before_v9", text=r""" -Indicates eventual starting wavefunctions. As alternative, one can use the -input variables [[getwfk]], [[getwfq]], [[get1wf]] or [[getddk]]. - -Ground-state calculation: +Indicates possible starting wavefunctions. As alternative, one can use the +input variable [[get1wf]]. +It is relevant only for Response-function calculation. - * only **irdwfk** and [[getwfk]] have a meaning - * at most one of **irdwfk** or [[getwfk]] can be non-zero - * if **irdwfk** and [[getwfk]] are both zero, initialize wavefunctions with random numbers for ground state calculation. - * if **irdwfk** = 1: read ground state wavefunctions from a disk file appended with _WFK, - produced in a previous ground state calculation. +The role of the different input variables [[irdwfk]], [[irdwfq]] and [[ird1wf]] and their getXXX counterparts +is described in the following. -Response-function calculation: - * one and only one of **irdwfk** or [[getwfk]] MUST be non-zero - * if **irdwfk** = 1: read ground state k -wavefunctions from a disk file appended with _WFK, + * one and only one of [[irdwfk]] or [[getwfk]] MUST be non-zero + * if [[irdwfk]] = 1: read ground state k -wavefunctions from a disk file appended with _WFK, produced in a previous ground state calculation. - * only one of **irdwfq** or [[getwfq]] can be non-zero, if both of them are non-zero, - use as k + q file the one defined by **irdwfk** and/or [[getwfk]] - * if **irdwfq** = 1: read ground state k+q -wavefunctions from a disk file appended with _WFQ, + * only one of [[irdwfq]] or [[getwfq]] can be non-zero, if both of them are non-zero, + use as k + q file the one defined by [[irdwfk]] and/or [[getwfk]] + * if [[irdwfq]] = 1: read ground state k+q -wavefunctions from a disk file appended with _WFQ, produced in a previous ground state calculation. * at most one of [[ird1wf]] or [[get1wf]] can be non-zero * if both are zero, initialize first order wavefunctions to zeroes * if [[ird1wf]] = 1: read first-order wavefunctions from a disk file appended with _1WFx, produced in a previous response function calculation. - * at most one of **irdddk** or [[getddk]] can be non-zero + * at most one of [[irdddk]] or [[getddk]] can be non-zero * one of them must be non-zero if an homogeneous electric field calculation is done (presently, a ddk calculation in the same dataset is not allowed) - * if **irdddk** = 1: read first-order ddk wavefunctions from a disk file appended with _1WFx, + * if [[irdddk]] = 1: read first-order ddk wavefunctions from a disk file appended with _1WFx, produced in a previous response function calculation. -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. """, ), @@ -7129,8 +8266,9 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of COUPling block", + added_in_version="before_v9", text=r""" -Start the Bethe-Salpeter calculation from the BSC file containing the coupling block produced in a previous run. +If 1, will start the Bethe-Salpeter calculation from the BSC file containing the coupling block produced in a previous run. """, ), @@ -7142,8 +8280,9 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of BS_EIG file", + added_in_version="before_v9", text=r""" -Start the Bethe-Salpeter calculation from the BS_EIG containing the exciton eigenvectors produced in a previous run. +If 1, will tart the Bethe-Salpeter calculation from the BS_EIG containing the exciton eigenvectors produced in a previous run. """, ), @@ -7155,12 +8294,29 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of RESOnant block", + added_in_version="before_v9", text=r""" -Start the Bethe-Salpeter calculation from the BSR file containing the resonant +If 1, will start the Bethe-Salpeter calculation from the BSR file containing the resonant block produced in a previous run. """, ), +Variable( + abivarname="irdchkprdm", + varset="files", + vartype="integer", + topics=['GW_expert', 'SelfEnergy_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Integer that governs ReaDing of CHecK-Point files for the GW 1-RDM", + requires="[[optdriver]] == 4", + added_in_version="9.4.0", + text=r""" +[[irdchkprdm]]==1 triggers the reading of binary checkpoint files when updating the density matrix for the the linearized GW approximation. +It is only meaningful when [[gw1rdm]]>0. The files that are read use the usual ABINIT input files naming convention with extension _CHKP_RDM_1. +""", +), + Variable( abivarname="irdddb", varset="files", @@ -7169,6 +8325,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[iscf]] < 0': '1', 'defaultval': 0}), mnemonics="Integer that governs the ReaDing of DDB file", + added_in_version="before_v9", text=r""" This variable should be used when performing electron-phonon or temperature- dependence calculations. The Born effective charge as well as the dielectric @@ -7180,8 +8337,10 @@ the charge neutrality sum rule is usually prohibitively large. A non-zero value of [[irdddb]] is treated in the same way as other "ird" variables. -For further information about the *files file*, consult the [[help:abinit#files-file]]. -Note also that, starting Abinit v9, one can also use [[getddb_path]] to specify the path of the DDB file directly. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. + +The input variable [[getddb]] is an alternative to [[irdddb]], in the multidataset case. +Note also that, starting Abinit v9, one can also use [[getddb_filepath]] to specify the path of the DDB file directly. """, ), @@ -7194,38 +8353,19 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of DDK wavefunctions, in _1WF files", + added_in_version="before_v9", text=r""" -Indicates eventual starting wavefunctions. As alternative, one can use the -input variables [[getwfk]], [[getwfq]], [[get1wf]] or [[getddk]]. - -Ground-state calculation: - - * only **irdwfk** and [[getwfk]] have a meaning - * at most one of **irdwfk** or [[getwfk]] can be non-zero - * if **irdwfk** and [[getwfk]] are both zero, initialize wavefunctions with random numbers for ground state calculation. - * if **irdwfk** = 1: read ground state wavefunctions from a disk file appended with _WFK, - produced in a previous ground state calculation +Indicates whether ABINIT should read the DDK wavefunctions as possible starting wavefunctions. +As alternative, one can use the +input variable [[getddk]]. -Response-function calculation: - - * one and only one of **irdwfk** or [[getwfk]] MUST be non-zero - * if **irdwfk** = 1: read ground state k -wavefunctions from a disk file appended with _WFK, - produced in a previous ground state calculation - * only one of **irdwfq** or [[getwfq]] can be non-zero, if both of them are non-zero, - use as k + q file the one defined by **irdwfk** and/or [[getwfk]] - * if **irdwfq** = 1: read ground state k+q -wavefunctions from a disk file appended with _WFQ, - produced in a previous ground state calculation - * at most one of **ird1wf** or [[get1wf]] can be non-zero - * if both are zero, initialize first order wavefunctions to zeroes - * if **ird1wf** = 1: read first-order wavefunctions from a disk file appended with _1WFx, - produced in a previous response function calculation * at most one of [[irdddk]] or [[getddk]] can be non-zero * one of them must be non-zero if an homogeneous electric field calculation is done (presently, a ddk calculation in the same dataset is not allowed) * if [[irdddk]] = 1: read first-order ddk wavefunctions from a disk file appended with _1WFx, produced in a previous response function calculation -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. """, ), @@ -7236,13 +8376,36 @@ topics=['multidtset_useful'], dimensions="scalar", defaultval=ValueWithConditions({'[[iscf]] < 0': '1', 'defaultval': 0}), - mnemonics="Integer that governs the ReaDing of DEN file", + mnemonics="Integer that governs the ReaDing of density DEN file", + added_in_version="before_v9", text=r""" -Start the ground-state calculation from the density file of a previous run. +If 1, will start the ground-state calculation from the density file of a previous run. When [[iscf]] < 0, the reading of a DEN file is always enforced. +Alternative to [[getden_filepath]] and [[getden]]. A non-zero value of [[irdden]] is treated in the same way as other "ird" variables. -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. +""", +), + +Variable( + abivarname="irdkden", + varset="files", + vartype="integer", + topics=['multidtset_useful'], + dimensions="scalar", + defaultval=ValueWithConditions({'[[iscf]] < 0': '1', 'defaultval': '[[irdden]]'}), + mnemonics="Integer that governs the ReaDing of Kinetic energy density KDEN file", + added_in_version="9.10.4", + text=r""" +Only relevant when [[usekden]]=1 (meta GGA exchange-correlation functionals). +If 1, will start the ground-state calculation from the **kinetic energy density** file +of a previous run. +When [[iscf]] < 0, the reading of a KDEN file is always enforced. +Alternative to [[getkden]]. + +A non-zero value of [[irdkden]] is treated in the same way as other "ird" variables. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. """, ), @@ -7253,9 +8416,10 @@ topics=['ElPhonInt_useful'], dimensions="scalar", mnemonics="Integer that governs the ReaDing of DVDB file", + added_in_version="before_v9", text=r""" -This variable can be used when performing electron-phonon calculations with [[optdriver]] = 7 -to read an *input* DVDB file. See also [[getdvdb]] +This variable can be used when performing electron-phonon calculations with [[optdriver]] = 7. +Set to 1, an *input* DVDB file will be read. See also [[getdvdb]] """, ), @@ -7267,9 +8431,10 @@ dimensions="scalar", defaultval=0, mnemonics="Integer to ReaD the EFfective MASses from...", + added_in_version="before_v9", text=r""" Eventually used when [[ndtset]] > 0 (multi-dataset mode). -Only relevant for [[optdriver]]=7 and [[eph_task]]=6. +Only relevant for [[optdriver]]=7 and [[eph_task]]=6, 10. If set to 1, take the data from a _EFMAS file as input. The latter must have been produced using [[prtefmas]] in another run. """, ), @@ -7282,8 +8447,9 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of the HAYDOCK restart file", + added_in_version="before_v9", text=r""" -Used to re-start the Haydock iterative technique from the HAYDR_SAVE file produced in a previous run. +If 1, will re-start the Haydock iterative technique from the HAYDR_SAVE file produced in a previous run. """, ), @@ -7295,8 +8461,9 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of QuasiParticle Structure", + added_in_version="before_v9", text=r""" -Relevant only when [[optdriver]] = 3 or 4. Indicate the file from which the +Relevant only when [[optdriver]] = 3 or 4. If 1, indicate that the eigenvalues and possibly the wavefunctions must be obtained, in order to achieve a self-consistent quasi-particle calculations. See also [[getqps]] """, @@ -7310,14 +8477,15 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of the SCReening", + added_in_version="before_v9", text=r""" -Relevant only when [[optdriver]] = 4. Indicate the file from which the -dielectric matrix must be obtained. As alternative, one can use the input variable [[getscr]]. +Relevant only when [[optdriver]] = 4. If non-zero, indicate that the +dielectric matrix must be obtained from an existing file. As alternative, one can use the input variable [[getscr]]. When [[optdriver]] = 4, at least one of [[irdscr]] or [[getscr]] (alternatively, [[irdsuscep]] or [[getsuscep]]) must be non-zero. A non-zero value of [[irdscr]] is treated in the same way as other "ird" variables. -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. """, ), @@ -7329,15 +8497,16 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of the SUSCEPtibility", + added_in_version="before_v9", text=r""" -Relevant only when [[optdriver]] = 4. Indicate the file from which the -irreducible polarizability must be obtained. +Relevant only when [[optdriver]] = 4. If non-zero, indicate that the +irreducible polarizability must be obtained from an existing file. As alternative, one can use the input variable [[getsuscep]]. When [[optdriver]] = 4, at least one of [[irdsuscep]] or [[getsuscep]] (alternatively, [[irdscr]] or [[getscr]]) must be non-zero. A non-zero value of [[irdsuscep]] is treated in the same way as other "ird" variables. -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. """, ), @@ -7350,6 +8519,7 @@ defaultval=0, mnemonics="Integer that governs the ReaDing of _VDW files", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used when [[vdw_xc]] > 0, to read previously calculated vdW-DF variables. Supported values: @@ -7367,9 +8537,11 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of _WFK files", + added_in_version="before_v9", text=r""" -Indicates eventual starting wavefunctions. As alternative, one can use the -input variables [[getwfk]], [[getwfq]], [[get1wf]] or [[getddk]]. +Indicates possible starting wavefunctions. As alternative, one can use the +input variables [[irdwfq]], [[ird1wf]] or [[irdddk]], as well as they getXXX counterparts. +Here follows a global description of the usage of these input variables. Ground-state calculation: @@ -7384,21 +8556,21 @@ * one and only one of [[irdwfk]] or [[getwfk]] MUST be non-zero * if [[irdwfk]] = 1: read ground state k -wavefunctions from a disk file appended with _WFK, produced in a previous ground state calculation - * only one of **irdwfq** or [[getwfq]] can be non-zero, if both of them are non-zero, + * only one of [[irdwfq]] or [[getwfq]] can be non-zero, if both of them are non-zero, use as k + q file the one defined by [[irdwfk]] and/or [[getwfk]] - * if **irdwfq** = 1: read ground state k+q -wavefunctions from a disk file appended with _WFQ, + * if [[irdwfq]] = 1: read ground state k+q -wavefunctions from a disk file appended with _WFQ, produced in a previous ground state calculation - * at most one of **ird1wf** or [[get1wf]] can be non-zero + * at most one of [[ird1wf]] or [[get1wf]] can be non-zero * if both are zero, initialize first order wavefunctions to 0's. - * if **ird1wf** = 1: read first-order wavefunctions from a disk file appended with _1WFx, + * if [[ird1wf]] = 1: read first-order wavefunctions from a disk file appended with _1WFx, produced in a previous response function calculation - * at most one of **irdddk** or [[getddk]] can be non-zero + * at most one of [[irdddk]] or [[getddk]] can be non-zero * one of them must be non-zero if an homogeneous electric field calculation is done (presently, a ddk calculation in the same dataset is not allowed) - * if **irdddk** = 1: read first-order ddk wavefunctions from a disk file appended with _1WFx, + * if [[irdddk]] = 1: read first-order ddk wavefunctions from a disk file appended with _1WFx, produced in a previous response function calculation -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. """, ), @@ -7410,8 +8582,9 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of the grid _WFK file on the FINE grid", + added_in_version="before_v9", text=r""" -Indicates eventual starting wavefunctions. As alternative, one can use the input variables [[getwfkfine]]. +If 1, will restart from existing wavefunctions on the fine grid. As alternative, one can use the input variables [[getwfkfine]]. Ground-state calculation: @@ -7434,7 +8607,7 @@ produced in a previous ground state calculation * This variable or [[getwfkfine]] is mandatory when [[bs_interp_mode]] = 1 -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. **This variable is experimental. In development.** """, @@ -7448,38 +8621,11 @@ dimensions="scalar", defaultval=0, mnemonics="Integer that governs the ReaDing of _WFQ files", + added_in_version="before_v9", text=r""" -Indicates eventual starting wavefunctions. As alternative, one can use the -input variables [[getwfk]], [[getwfq]], [[get1wf]] or [[getddk]]. - -Ground-state calculation: - - * only **irdwfk** and [[getwfk]] have a meaning - * at most one of **irdwfk** or [[getwfk]] can be non-zero - * if **irdwfk** and [[getwfk]] are both zero, initialize wavefunctions with random numbers for ground state calculation. - * if **irdwfk** = 1: read ground state wavefunctions from a disk file appended with _WFK, - produced in a previous ground state calculation - -Response-function calculation: - - * one and only one of **irdwfk** or [[getwfk]] MUST be non-zero - * if **irdwfk** = 1: read ground state k -wavefunctions from a disk file appended with _WFK, - produced in a previous ground state calculation - * only one of [[irdwfq]] or [[getwfq]] can be non-zero, if both of them are non-zero, - use as k + q file the one defined by **irdwfk** and/or [[getwfk]] - * if [[irdwfq]] = 1: read ground state k+q -wavefunctions from a disk file appended with _WFQ, - produced in a previous ground state calculation - * at most one of **ird1wf** or [[get1wf]] can be non-zero - * if both are zero, initialize first order wavefunctions to 0's. - * if **ird1wf** = 1: read first-order wavefunctions from a disk file appended with _1WFx, - produced in a previous response function calculation - * at most one of **irdddk** or [[getddk]] can be non-zero - * one of them must be non-zero if an homogeneous electric field calculation is done (presently, - a ddk calculation in the same dataset is not allowed) - * if **irdddk** = 1: read first-order ddk wavefunctions from a disk file appended with _1WFx, - produced in a previous response function calculation - -For further information about the *files file*, consult the [[help:abinit#files-file]]. +See detailed description at [[irdwfq]]. +As alternative, one can use the +input variable [[getwfq]]. """, ), @@ -7491,12 +8637,15 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[usepaw]] == 1': 17, '[[usewvl]] == 1': 0, 'defaultval': 7}), mnemonics="Integer for Self-Consistent-Field cycles", + added_in_version="before_v9", text=r""" -Controls the self-consistency. -Positive values --> this is the usual choice for doing the usual ground state -(GS) calculations or for structural relaxation, where the potential has to be -determined self-consistently. The choice between different algorithms for SCF -is possible: +Controls the self-consistency algorithm. + +Positive values correspond to the usual choice for doing the usual ground state +(GS) calculations or for structural relaxations, where the potential has to be +determined self-consistently while negative values correspond to non-self-consistent calculations. + +Different SCF algorithms (> 0) can be selected: * 0 --> SCF cycle, direct minimization scheme on the gradient of the wavefunctions. This algorithm is faster than diagonalisation and mixing but is working only for systems with a gap. It is implemented only on the wavelet basis set, when [[usewvl]] = 1. * 1 --> get the largest eigenvalue of the SCF cycle @@ -7524,49 +8673,65 @@ variable [[iprcel]]. The default value [[iprcel]] = 0 is often a good choice, but for inhomogeneous systems, you might gain a lot with [[iprcel]] = 45. -(Warning: if [[iscf]] > 10, at present (v4.6), the energy printed at each SCF +(Warning: if **iscf** > 10, at present (v4.6), the energy printed at each SCF cycle is not variational - this should not affect the other properties, and at convergence, all values are OK) -- In the norm-conserving case, the default option is [[iscf]] = 7, which is a -compromise between speed and reliability. The value [[iscf]] = 2 is safer but -slower. -- In the PAW case, default option is [[iscf]] = 17. In PAW you have the +- In the norm-conserving case, the default option is **iscf** = 7, which is a +compromise between speed and reliability. The value **iscf** = 2 is safer but slower. +- In the PAW case, default option is **iscf** = 17. In PAW you have the possibility to mix density/potential on the fine or coarse FFT grid (see [[pawmixdg]]). -- Note that a Pulay mixing ([[iscf]] = 7 or 17) with [[npulayit]] =1 (resp. 2) -is equivalent to an Anderson mixing with [[iscf]] = 3 or 13 (resp. 4 or 14). +- Note 1: a Pulay mixing (**iscf** = 7 or 17) with [[npulayit]] = 1 (resp. 2) +is equivalent to an Anderson mixing with **iscf** = 3 or 13 (resp. 4 or 14). +- Note 2: when a mixing of the density is activated ([[iscf]]>=10) the density residual +correction added to forces (see [[densfor_pred]]) needs the second derivative of the +exchange-correlation functionnal (namely Kxc). When the latter is not provided, [[iscf]] +is automatically switched to select the coresponding mixing of the potential ([[iscf]]<10). - Also note that: -* when mixing is done on potential (iscf <10), total energy is computed by "direct" decomposition. -* when mixing is done on density (iscf >=10), total energy is computed by "double counting" decomposition. +* when mixing is done on potential (iscf < 10), total energy is computed by "direct" decomposition. +* when mixing is done on density (iscf >= 10), total energy is computed by "double counting" decomposition. "Direct" and "double counting" decomposition of energy are equal when SCF cycle is converged. Note that, when using GGA XC functionals, these decompositions of energy can be slightly different due to imprecise computation of density gradients on FFT grid (difference decreases as size of FFT grid increases - see [[ecut]] for NC pseudopotentials, [[pawecutdg]] for PAW). -Other (negative) options: - - * -2 --> a non-self-consistent calculation is to be done; in this case an electron density rho(r) on a real space grid (produced in a previous calculation) will be read from a disk file (automatically if [[ndtset]] = 0, or according to the value of [[getden]] if [[ndtset]]/=0). -The name of th density file must be given as indicated [[help:abinit#files-file|here]]. -[[iscf]] = -2 would be used for band structure calculations, to permit -computation of the eigenvalues of occupied and unoccupied states at arbitrary -k points in the fixed self consistent potential produced by some integration -grid of k points. Due to this typical use, ABINIT insist that either -[[prtvol]] > 2 or [[prteig]] does not vanish when there are more than 50 k points. -To compute the eigenvalues (and wavefunctions) of unoccupied states in a -separate (non-selfconsistent) run, the user should save the self-consistent -rho(r) and then run [[iscf]] = -2 for the intended set of k-points and bands. -To prepare a run with [[iscf]] = -2, a density file can be produced using the -parameter [[prtden]] (see its description). When a self-consistent set of -wavefunctions is already available, abinit can be used with [[nstep]] = 0 (see -Test_v2/t47.in), and the adequate value of [[prtden]]. - - * -3 --> like -2, but initialize [[occ]] and [[wtk]], directly or indirectly (using [[ngkpt]] or [[kptrlatt]]) depending on the value of [[occopt]]. -For GS, this option might be used to generate Density-of-states (thanks to -[[prtdos]]), or to produce STM charge density map (thanks to [[prtstm]]). -For RF, this option is needed to compute the response to ddk perturbation. +Other (**negative**) options: + + * -2 --> a non-self-consistent calculation is to be done; + in this case an electron density rho(r) on a real space grid (produced in a previous calculation) + will be read from a disk file (automatically if [[ndtset]] = 0, or according to the value of [[getden]] if [[ndtset]]/=0). + The name of th density file must be given as indicated [[help:abinit#files-file|here]]. + **iscf** = -2 would be used for band structure calculations, to permit + computation of the eigenvalues of occupied and unoccupied states at arbitrary + k points in the fixed self consistent potential produced by some integration + grid of k points. Due to this typical use, ABINIT insist that either + [[prtvol]] > 2 or [[prteig]] does not vanish when there are more than 50 k points. + To compute the eigenvalues (and wavefunctions) of unoccupied states in a + separate (non-selfconsistent) run, the user should save the self-consistent + rho(r) and then run **iscf** = -2 for the intended set of k-points and bands. + To prepare a run with **iscf** = -2, a density file can be produced using the + parameter [[prtden]] (see its description). When a self-consistent set of + wavefunctions is already available, abinit can be used with [[nstep]] = 0 + and the adequate value of [[prtden]], see tests/v2/Input/t47.abi . + + * -3 --> like -2, but initialize [[occ]] and [[wtk]], directly or indirectly + (using [[ngkpt]] or [[kptrlatt]]) depending on the value of [[occopt]]. + For GS, this option might be used to generate Density-of-states (thanks to + [[prtdos]]), or to produce STM charge density map (thanks to [[prtstm]]). + For RF, this option is needed to compute the response to ddk perturbation. + + * -1 --> like -2, but the non-self-consistent calculation is followed by the determination of excited states within TDDFT. + This is only possible for [[nkpt]] = 1, with [[kpt]] = 0 0 0. + Note that the oscillator strength needs to be defined with respect to an origin of coordinate, + thanks to the input variable [[boxcenter]]. The maximal number of Kohn-Sham excitations to be used + to build the excited state TDDFT matrix can be defined by [[td_mexcit]], or indirectly + by the maximum Kohn-Sham excitation energy [[td_maxene]]. Only "LDA-like" XC kernels are implemented, + from native ABINIT XC functionals with specific values of [[ixc]]=[0,1,7,8,20,21,22]. In case you use a XC functional from the libxc, + corresponding to these values, there is no automatic translation, so that you have to specify explicitly + the [[ixc]] value among the above ones. As an example, if the [[ixc]] from your pseudopotentiel is -1012, + this corresponds to the same functional (LDA - Perdew Wang 1992) as [[ixc]]=7, and you should specify [[ixc]]=7. - * -1 --> like -2, but the non-self-consistent calculation is followed by the determination of excited states within TDDFT. This is only possible for [[nkpt]] = 1, with [[kpt]] = 0 0 0. Note that the oscillator strength needs to be defined with respect to an origin of coordinate, thanks to the input variable [[boxcenter]]. The maximal number of Kohn-Sham excitations to be used to build the excited state TDDFT matrix can be defined by [[td_mexcit]], or indirectly by the maximum Kohn-Sham excitation energy [[td_maxene]]. """, ), @@ -7579,6 +8744,7 @@ defaultval=0, mnemonics="Integer for level of SECURity choice", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" In the presently used algorithms, there is a compromise between speed and robustness, that can be tuned by using [[isecur]]. @@ -7603,6 +8769,7 @@ dimensions="scalar", defaultval=1, mnemonics="Integer governing the computation of STATic IMaGes", + added_in_version="before_v9", text=r""" This input variable is relevant when sets of images are activated (see [[imgmov]]). Not all images might be required to evolve from one time step to the other @@ -7624,6 +8791,7 @@ mnemonics="Integer for STATus file rate", characteristics=['[[DEVELOP]]', '[[NO_MULTI]]'], commentdefault="Values lower than 10 may not work on some machines.", + added_in_version="before_v9", text=r""" Govern the rate of output of the status file. This status file is written when the number of the call to the status subroutine is equal to [[istatshft]] @@ -7641,6 +8809,7 @@ defaultval=1, mnemonics="Integer for STATus file SHiFT", characteristics=['[[DEVELOP]]', '[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" Govern the rate of output of the status file. This status file is written when the number of the call to the status subroutine is equal to '[[istatshft]]' @@ -7653,11 +8822,12 @@ abivarname="istwfk", varset="dev", vartype="integer", - topics=['k-points_useful', 'TuningSpeed_basic'], + topics=['k-points_useful', 'TuningSpeedMem_basic'], dimensions=['[[nkpt]]'], defaultval=MultipleValue(number=None, value=0), mnemonics="Integer for choice of STorage of WaveFunction at each k point", - commentdefault="For RF calculations, the Default is not used: istwfk is forced to be 1 deep inside the code, for all k points. For spin-orbit calculations ([[nspinor]] = 2), istwfk is also forced to be 1, for all k points.", + commentdefault="For RF calculations, the Default is not used: **istwfk** is forced to be 1 deep inside the code, for all k points. For spin-orbit calculations ([[nspinor]] = 2), **istwfk** is also forced to be 1, for all k points.", + added_in_version="before_v9", text=r""" Control the way the wavefunction for each k-point is stored inside ABINIT, in reciprocal space. For the GS calculations, in the "cg" array containing the wavefunction @@ -7676,16 +8846,37 @@ used in the RF calculations. * 1 --> do NOT take advantage of the time-reversal symmetry - * 2 --> use time-reversal symmetry for k=( 0 0 0 ) - * 3 --> use time-reversal symmetry for k=(1/2 0 0 ) - * 4 --> use time-reversal symmetry for k=( 0 0 1/2) - * 5 --> use time-reversal symmetry for k=(1/2 0 1/2) - * 6 --> use time-reversal symmetry for k=( 0 1/2 0 ) - * 7 --> use time-reversal symmetry for k=(1/2 1/2 0 ) - * 8 --> use time-reversal symmetry for k=( 0 1/2 1/2) - * 9 --> use time-reversal symmetry for k=(1/2 1/2 1/2) - * 0 --> (preprocessed) for each k point, choose automatically the appropriate time-reversal - option when it is allowed, and chose [[istwfk]] = 1 for all the other k points. + * 2 --> use time-reversal symmetry for k = (0, 0, 0,) + * 3 --> use time-reversal symmetry for k = (1/2, 0, 0) + * 4 --> use time-reversal symmetry for k = (0, 0, 1/2) + * 5 --> use time-reversal symmetry for k = (1/2, 0, 1/2) + * 6 --> use time-reversal symmetry for k = (0, 1/2, 0) + * 7 --> use time-reversal symmetry for k = (1/2, 1/2, 0) + * 8 --> use time-reversal symmetry for k = (0, 1/2, 1/2) + * 9 --> use time-reversal symmetry for k = (1/2, 1/2, 1/2) + * 0 --> (preprocessed) for each k point, choose automatically + the appropriate time-reversal option when it is allowed, and chose **istwfk** = 1 for all the other k-points. +""", +), + +Variable( + abivarname="ivalence", + varset="gstate", + vartype="integer", + dimensions="scalar", + topics=['BandOcc_useful','DeltaSCF_expert'], + defaultval=0, + mnemonics="Index of the highest VALENCE band", + characteristics=['[[INPUT_ONLY]]'], + added_in_version="v9", + text=r""" +Only used if [[occopt] = 9. + +When [[occopt]]==9, the lowest [[ivalence]] bands are considered to be +valence bands and [[nqfd]] holes are constrained to exist in them. +Accordingly, higher energy bands (with index >= [[ivalence]] + 1) are +considered to be conduction bands, and [[nqfd]] electrons are constrained there. +See [[cite:Paillard2019]] for more details about the general method implemented. """, ), @@ -7698,6 +8889,7 @@ defaultval=1, mnemonics="Index of eXchange-Correlation functional", commentdefault="Default corresponds to Teter parametrization. However, if all the pseudopotentials have the same value of pspxc, the initial value of ixc will be that common value", + added_in_version="before_v9", text=r""" Controls the choice of exchange and correlation (xc). The list of XC functionals is given below. Positive values are for ABINIT native library of @@ -7710,8 +8902,8 @@ Unfortunately, pseudopotential (or PAW) generators for hybrid functionals and mGGA are currently under development, so that one usually uses GGA or LDA pseudopotentials instead. The error should be limited when GGA or LDA -pseudopotentials with semi-core states are used. Still this is a non- -controlled error. Moreover, the choices [[ixc]] = 1, 2, 3 and 7 are fits to the +pseudopotentials with semi-core states are used. +Still this is a non-controlled error. Moreover, the choices [[ixc]] = 1, 2, 3 and 7 are fits to the same data, from Ceperley-Alder, and are rather similar, at least for spin-unpolarized systems. The choice between the non-spin-polarized and spin-polarized case is governed by the value of [[nsppol]] (see below). @@ -7762,6 +8954,7 @@ * 40 --> Hartree-Fock * 41 --> PBE0, [[cite:Adamo1999]]. * 42 --> PBE0-1/3, [[cite:Guido2013]]. + * 50 --> IIT temperature-dependent Free Energy functional of [[cite:Ichimaru1987]] (designed for warm dense matter). The electronic temperature is taken from the [[tsmear]] if [[occopt]]=3 or 9 (Fermi-Dirac), from [[tphysel]] otherwise. **ETSF Lib XC functionals** @@ -7777,11 +8970,10 @@ (let us represent its identifier by XXX) and correlation functional (let us represent its identified by CCC), a six-digit number will have to be specified for [[ixc]], by concatenation, be it XXXCCC or CCCXXX. As an example, -[[ixc]] = -020 gives access to the Teter93 LDA, while [[ixc]] = -101130 gives -access to the PBE GGA. In version 0.9 of LibXC (December 2008), there are 16 -three-dimensional (S)LDA functionals (1 for X, 14 for C, 1 for combined XC), -and there are 41 three-dimensional GGA (23 for X, 8 for C, 10 for combined -XC). Note that for a meta-GGA, the kinetic energy density is needed. +[[ixc]] = -1012 gives the Perdew-Wang 1992 LDA ([[ixc]]=7 as well), +[[ixc]] = -020 gives the Teter93 LDA ([[ixc]]=1 as well), +while [[ixc]] = -101130 gives the PBE GGA ([[ixc]]=11 as well). +Note that for a meta-GGA, the kinetic energy density is needed. This means having [[usekden]] = 1. ==(S)LDA functionals== (do not forget to add a minus sign, as discussed above) @@ -7812,6 +9004,16 @@ * 030 --> XC_LDA_C_VWN_3 Vosko, Wilk, & Nussair (3) [[cite:Vosko1980]] * 031 --> XC_LDA_C_VWN_4 Vosko, Wilk, & Nussair (4) [[cite:Vosko1980]] +==LDA temperature-dependent functionals== (do not forget to add a minus sign, as discussed above) + The electronic temperature is taken from the [[tsmear]] if [[occopt]]=3 or 9 (Fermi-Dirac), from [[tphysel]] otherwise. + Use of [[occopt]]=3 is recommended to have a physical meaning of the temperature. + As these functionals do not provide Kxc (2nd derivative of Exc), a SCF mixing + of the potential is automatically selected ([[iscf]]<10). + + * 259 --> XC_LDA_XC_KSDT, LDA T-dependent functional: Karasiev, Sjostrom, Dufty, & Trickey [[cite:Karasiev2014]] + * 318 --> XC_LDA_XC_CORRKSDT, corrected KSDT by Karasiev, Dufty, & Trickey [[cite:Karasiev2018]] + * 577 --> XC_LDA_XC_GDSMFB, LDA T-dependent functional: Groth, Dornheim, Sjostrom, Malone, Foulkes, & Bonitz [[cite:Groth2017]] + ==GGA functionals== (do not forget to add a minus sign, as discussed above) * 084 --> XC_GGA_C_OP_XALPHA one-parameter progressive functional (G96 version) [[cite:Tsuneda1999]] @@ -7966,7 +9168,7 @@ * 207 --> XC_MGGA_X_BJ06 Becke & Johnson correction to Becke-Roussel 89 [[cite:Becke2006]] !!! warning - This Vxc-only mGGA can only be used with a LDA correlation, typically Perdew-Wang 92 [[cite:Perdew1992a]]. + This Vxc-only mGGA can only be used with a LDA correlation, typically Perdew-Wang 92 [[cite:Perdew1992a]], hence [[ixc]]=-12208 .. * 208 --> XC_MGGA_X_TB09 Tran-blaha - correction to Becke & Johnson correction to Becke-Roussel 89 [[cite:Tran2009]] @@ -8023,6 +9225,7 @@ mnemonics="Index of eXchange-Correlation functional used for self-energy calculations (SIGMA)", commentdefault="Default corresponds to Teter parametrization.", requires="mod([[gwcalctyp]],10)==5", + added_in_version="before_v9", text=r""" When [[gwcalctyp]] == 5, 15 or 25, [[ixc_sigma]] gives the identifier of the advanced functional (usually a hybrid) that is used perturbatively or self- @@ -8056,6 +9259,7 @@ mnemonics="Integer for the eXchange-Correlation applied to the electron-POSITRON interaction", commentdefault="(Teter parameterization). However, if all the pseudopotentials have the same value of pspxc, the initial value of ixc will be that common value", requires="[[positron]]/=0", + added_in_version="before_v9", text=r""" Relevant only when [[positron]]/=0. Define the type of electron-positron correlation that is used in case of a @@ -8092,12 +9296,13 @@ vartype="integer", topics=['DFPT_expert', 'xc_expert'], dimensions="scalar", - defaultval=3, + defaultval=1, mnemonics="Index of the XC ROTation method used to calculate first-order exchange-correlation potential in non-collinear DFPT calculations", + added_in_version="before_v9", text=r""" Method of calculation of the 1st order XC potential in non-collinear DFPT calculations. The possible values 1,2 and 3 correspond to the following -methods +methods: * If ixcrot=1, the spinor rotation matrix U at each FFT point is not calculated explicitly. Instead the needed expressions involving U are derived based on the general properties of the U matrix. * If ixcrot=2, U is computed explicitly @@ -8106,10 +9311,14 @@ In theory, all methods give identical results. However, due to different implementation approaches, the round-off errors can lead to slight differences intermediate and final results obtained using methods 1,2 and 3. The choice of -the method can also affect the convergence. For more details, see [[cite:Ricci2019]]. +the method can also affect the convergence. For more details, see [[cite:Ricci2019]] or [[cite:Gonze2020]]. +WARNING: in [[cite:Ricci2019]], the meaning of [[ixcrot]]=2 or 3 is inverted with respect to the implementation. On the contrary, +the implemention and [[cite:Gonze2020]] agree. More explicitly, the method refered to as method 1' in [[cite:Ricci2019]] +is [[ixcrot]]=2, and method refereed to as method 2 in [[cite:Ricci2019]] is [[ixcrot]]=3. !!! note - For non-zero perturbation wavevector, only ixcrot=3 implementation is currently available. + For non-zero perturbation wavevector ([[qpt]]/=0), only the [[ixcrot]]=3 implementation is currently available. + The code will stop with the default [[ixcrot]] value for non-zero perturbation wavevector. The user should then set [[ixcrot]]=3 and restart. """, ), @@ -8122,6 +9331,7 @@ defaultval=Range({'start': 1, 'stop': '[[ndtset]]'}), mnemonics="index -J- for DaTaSETs", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" Gives the dataset index of each of the datasets. This index will be used: @@ -8145,6 +9355,7 @@ dimensions="scalar", defaultval=0, mnemonics="include a JELLium SLAB in the cell", + added_in_version="before_v9", text=r""" If set to 1, a slab of uniform positive background charge density, that is, a jellium slab, is included in the calculation cell. A portion of the unit cell @@ -8168,22 +9379,23 @@ defaultval=MultipleValue(number=3, value=0), mnemonics="electric/displacement FIELD DIRection", requires="[[berryopt]] = 17", + added_in_version="before_v9", text=r""" When specifying mixed electric field boundary conditions ( [[berryopt]] = 17), [[jfielddir]] controls whether reduced electric field ([[jfielddir]] = 1) or reduced electric displacement field ([[jfielddir]] = 2) is chosen to be fixed, in each of the three lattice directions (i.e., in the reduced, not the Cartesian, -frame). For example, [[jfielddir]] = (1 1 2) tells the code to use fixed $\\bar{e}_1$ -and $\\bar{e}_2$ along the first two lattice directions and fixed $d_3$ along the third. +frame). For example, [[jfielddir]] = (1 1 2) tells the code to use fixed $\bar{e}_1$ +and $\bar{e}_2$ along the first two lattice directions and fixed $d_3$ along the third. For the case of mixed electric field boundary conditions, [[red_efieldbar]] -and [[red_dfield]] are used to control $\\bar{e}$ and $d$, respectively. For example, +and [[red_dfield]] are used to control $\bar{e}$ and $d$, respectively. For example, for electric boundary conditions corresponding to a material in a parallel- -plate capacitor, if you want to control $d_3=d_0$, while fixing $\\bar{e}_1=\\bar{e}_1=0$, +plate capacitor, if you want to control $d_3=d_0$, while fixing $\bar{e}_1=\bar{e}_1=0$, then the input files should have [[berryopt]] = 17, [[jfielddir]] = (1 1 2), [[red_efieldbar]] = (0.0 0.0 a), and [[red_dfield]] = ($b\ c\ d_0$). Here a, b, and c are the starting values. They can be chosen in this way: do a single run for fixed d calculation ([[red_dfield]] = 0,0,$d_0$), from the final results you will -have $\\bar{e}_3$, which is a good guess for a. Then do another single run for fixed +have $\bar{e}_3$, which is a good guess for a. Then do another single run for fixed ebar calculation ([[red_efieldbar]] = (0 0 0)), from the final results you will have $d_1$,$d_2$, these are good guesses for b, c. """, @@ -8199,6 +9411,7 @@ mnemonics="value of J for PAW+U", characteristics=['[[ENERGY]]'], requires="[[usepaw]] == 1 and [[usepawu]] == 1", + added_in_version="before_v9", text=r""" Gives the value of the screened exchange interaction between correlated electrons corresponding to [[lpawu]] for each species. @@ -8215,6 +9428,7 @@ defaultval=MultipleValue(number=None, value=0), mnemonics="K wavevectors for BERRY phase computation", requires="[[berryopt]] = 1, 2, or 3", + added_in_version="before_v9", text=r""" Used for values of [[berryopt]] = 1, 2, or 3. @@ -8248,6 +9462,7 @@ defaultval=[0, 0, 0], mnemonics="K - PoinTs", commentdefault="Adequate for one molecule in a supercell", + added_in_version="before_v9", text=r""" Contains the k points in terms of reciprocal space primitive translations (NOT in cartesian coordinates!). @@ -8280,6 +9495,7 @@ dimensions=[3, 'abs([[kptopt]])+1)'], mnemonics="K PoinT BOUNDarieS", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" It is used to generate the circuit to be followed by the band structure, when [[kptopt]] is negative (it is not read if [[kptopt]] is zero or positive). @@ -8290,7 +9506,7 @@ [[kptbounds]](1:3,1)/[[kptnrm]] and ending at [[kptbounds]](1:3,abs([[kptopt]])+1)/[[kptnrm]]. The number of divisions of each segment can be defined either using the array [[ndivk]] or the variable -[[ndivsm]] that just defines the number of divisions for the smallest segment +[[ndivsm]] (preferred) that just defines the number of divisions for the smallest segment. As for [[kpt]], [[kptbounds]] is specified using the primitive vectors in reciprocal space. If your Bravais lattice is simple, then it should be quite @@ -8500,6 +9716,7 @@ defaultval=MultipleValue(number=None, value=0.0), mnemonics="K-PoinTs for GW calculations", requires="[[optdriver]] in [4, 7]", + added_in_version="before_v9", text=r""" For each k-point with number igwpt in the range (1:[[nkptgw]]), [[kptgw]](1,igwpt) is the reduced coordinate of the k-point where the self-energy @@ -8520,13 +9737,14 @@ dimensions="scalar", defaultval=1, mnemonics="K - PoinTs NoRMalization", + added_in_version="before_v9", text=r""" Establishes a normalizing denominator for each k point. Needed only if [[kptopt]]<=0, otherwise deduced from other input variables. The k point coordinates as fractions of reciprocal lattice translations are therefore [[kpt]](mu,ikpt)/[[kptnrm]]. [[kptnrm]] defaults to 1 and can be ignored by the user. It is introduced to avoid the need for many digits in -representing numbers such as 1/3. It cannot be smaller than 1.0d0 +representing numbers such as 1/3. It cannot be smaller than 1.0 """, ), @@ -8538,6 +9756,7 @@ dimensions=[3, '[[nkpt]]'], mnemonics="K-PoinTs re-Normalized and Shifted", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" If [[nqpt]] = 0, or if one is doing a reponse calculation, this internal variable is derived from [[kpt]] and [[kptnrm]]: [[kptns]](1:3,:)= @@ -8558,6 +9777,7 @@ dimensions=[3, '[[nkpthf]]'], mnemonics="K-PoinTs re-Normalized and Shifted, for the Hartree-Fock operator", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" [[kptns_hf]] is the subset of the full Brillouin Zone k point grid for wavefunctions, used to build the Fock operator, see [[fockdownsampling]]. @@ -8572,6 +9792,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[nspden]] == 4': 4, 'defaultval': 1}), mnemonics="KPoinTs OPTion", + added_in_version="before_v9", text=r""" Controls the set up of the k-points list. The aim will be to initialize, by straight reading or by a preprocessing approach based on other input @@ -8585,6 +9806,8 @@ A global additional shift can be provided by [[qptn]] +The use of symmetries (spatial and/or time-reversal) is crucial to determine the action of [[kptopt]]. + * 0 --> read directly [[nkpt]], [[kpt]], [[kptnrm]] and [[wtk]]. * 1 --> rely on [[ngkpt]] or [[kptrlatt]], as well as on [[nshiftk]] and [[shiftk]] to set up the k points. Take fully into account the symmetry to generate the k points in the Irreducible Brillouin Zone only, @@ -8593,18 +9816,18 @@ * 2 --> rely on [[ngkpt]] or [[kptrlatt]], as well as on [[nshiftk]] and [[shiftk]] to set up the k points. Take into account only the time-reversal symmetry: k points will be generated in half the Brillouin zone, with the appropriate weights. - (This is to be used when preparing or executing a RF calculation at q=(0 0 0)) + (This is the usual mode when preparing or executing a RF calculation at q=(0 0 0) without non-collinear magnetism) * 3 --> rely on [[ngkpt]] or [[kptrlatt]], as well as on [[nshiftk]] and [[shiftk]] to set up the k points. Do not take into account any symmetry: k points will be generated in the full Brillouin zone, with the appropriate weights. - (This is to be used when preparing or executing a RF calculation at non-zero q) + (This is the usual mode when preparing or executing a RF calculation at non-zero q, or with non-collinear magnetism) * 4 --> rely on [[ngkpt]] or [[kptrlatt]], as well as on [[nshiftk]] and [[shiftk]] to set up the k points. Take into account all the symmetries EXCEPT the time-reversal symmetry to generate the k points in the Irreducible Brillouin Zone, with the appropriate weights. This has to be used when performing calculations with non-collinear magnetism allowed ([[nspden]] = 4) - * A negative value --> rely on [[kptbounds]], and [[ndivk]] ([[ndivsm]]) to set up a band structure calculation + * A negative value --> rely on [[kptbounds]], and [[ndivsm]] (or [[ndivk]]) to set up a band structure calculation along different lines (allowed only for [[iscf]] == -2). The absolute value of [[kptopt]] gives the number of segments of the band structure. Weights are usually irrelevant with this option, and will be left to their default value. @@ -8623,6 +9846,7 @@ defaultval=MultipleValue(number=None, value=0), mnemonics="K - PoinTs grid: Real space LATTice", excludes="[[ngkpt]]", + added_in_version="before_v9", text=r""" This input variable is used only when [[kptopt]] is positive. It partially defines the k point grid. The other piece of information is contained in @@ -8630,7 +9854,7 @@ The values [[kptrlatt]](1:3,1), [[kptrlatt]](1:3,2), [[kptrlatt]](1:3,3) are the coordinates of three vectors in real space, expressed in the [[rprimd]] -coordinate system (reduced coordinates). They defines a super-lattice in real +coordinate system (reduced coordinates). They define a super-lattice in real space. The k point lattice is the reciprocal of this super-lattice, possibly shifted (see [[shiftk]]). If neither [[ngkpt]] nor [[kptrlatt]] are defined, ABINIT will automatically @@ -8648,6 +9872,7 @@ dimensions="scalar", defaultval=30.0, mnemonics="K - PoinTs grid: Real space LENgth", + added_in_version="before_v9", text=r""" This input variable is used only when [[kptopt]] is positive and non-zero. @@ -8692,6 +9917,7 @@ dimensions="scalar", defaultval=1, mnemonics="Kohn Sham Structure file FORMat", + added_in_version="before_v9", text=r""" Governs the choice of the format for the file that contains the Kohn-Sham electronic structure information, for use in GW calculations, see the input @@ -8706,6 +9932,28 @@ """, ), +Variable( + abivarname="lambsig", + varset="paw", + vartype="real", + topics=['NMR_basic','MagField_expert'], + dimensions=['[[ntypat]]'], + defaultval=MultipleValue(number=None, value=0), + mnemonics="LAMB shielding SIGma", + added_in_version="v9", + text=r""" +Chemical shielding at each nucleus due to the core electrons. This quantity is +input as an array of values, one for each type, see [[ntypat]]. In calculations +where the orbital magnetic moment is requested in the presence of a nuclear magnetic +dipole moment (see [[orbmag]] and [[nucdipmom]]), the effect of this shielding +will be included. If a PAW dataset is used where this quantity is included, then a non-zero +value in [[lambsig]] will override the PAW value. +The value to be used here can be obtained from the PAW core wavefunctions and the +Lamb formula [[cite:Abragam1961]]. +""", +), + + Variable( abivarname="ldaminushalf", varset="paw", @@ -8714,10 +9962,11 @@ dimensions=['[[ntypat]]'], defaultval=MultipleValue(number=None, value=0), mnemonics="LDA minus half", + added_in_version="before_v9", text=r""" -For each type of atom, gives whether a LDA-${\\frac{1}{2}}$ calculation is to be performed. -[[ldaminushalf]] =0: the LDA-$\\frac{1}{2}$ approach is not used. -[[ldaminushalf]] =1: the LDA-$\\frac{1}{2}$ approach is used. +For each type of atom, gives whether a LDA-${\frac{1}{2}}$ calculation is to be performed. +**ldaminushalf** =0: the LDA-$\frac{1}{2}$ approach is not used. +**ldaminushalf** =1: the LDA-$\frac{1}{2}$ approach is used. """, ), @@ -8730,9 +9979,10 @@ defaultval=-1, mnemonics="value of angular momentum L for EXact EXCHange", requires="[[useexexch]] == 1", + added_in_version="before_v9", text=r""" -Give for each species the value of the angular momentum (only values 2 or 3 -are allowed) on which to apply the exact exchange correction. +Give for each species the value of the angular momentum +on which to apply the exact exchange correction. """, ), @@ -8745,6 +9995,7 @@ defaultval=1, mnemonics="LOCAL ReaD WaveFunctions", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" This input variable is used only when running abinit in parallel. If [[localrdwf]] = 1, the input wavefunction disk file or the KSS/SCR file in case @@ -8774,6 +10025,7 @@ defaultval=5, mnemonics="LOTF CLASSIC model for glue model", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Glue model used in LOTF. For the moment it is imposed to be 5. """, @@ -8788,6 +10040,7 @@ defaultval=10, mnemonics="LOTF Number of ITerations", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Set the number of Molecular Dynamics iterations which are computed by LOTF. """, @@ -8802,6 +10055,7 @@ defaultval=5, mnemonics="LOTF max Number of NEIGhbours", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Set the max number of Neighbours used in the LOTF method. For the moment it is imposed to be 40. @@ -8817,6 +10071,7 @@ defaultval=2, mnemonics="LOTF VERSION of MD algorithm", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Set the MD algorithm in the LOTF method. For the moment it is imposed to be 2. """, @@ -8831,15 +10086,114 @@ defaultval=MultipleValue(number=None, value=-1), mnemonics="value of angular momentum L for PAW+U", requires="[[usepawu]] == 1 or 2", + added_in_version="before_v9", + text=r""" +Give for each species the value of the angular momentum + on which to apply the DFT+U correction. + + * If equal to 1 (p-orbitals), 2 (d-orbitals) or 3 (f-orbitals), values of [[upawu]] and [[jpawu]] are used in the calculation. + * If equal to -1: do not apply DFT+U correction on the species. +""", +), + +Variable( + abivarname="lw_flexo", + varset="dfpt", + vartype="integer", + topics=['longwave_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="LongWave calculation of FLEXOelectricity related spatial dispersion tensors", + requires="[[optdriver]] = 10", + characteristics=['[[DEVELOP]]'], + added_in_version="v9", + text=r""" +Used to run the calculation of spatial dispersion tensorial quantities needed to +build the bulk flexoelectric tensor (the clamped-ion flexoelectric tensor is directly calculated by +abinit whereas the mixed and lattice-mediated ones are obtained through a postprocessing anaddb calculation, +see [[flexoflag@anaddb]]). + +This **requires** the precalculation of the ground-state wave-functions and +density, as well as response functions and densities to a set of perturbations as specified below. +The number of linear-response calculations to be explicitly precomputed can be reduced via symmetry arguments +selecting the appropiate value of the [[prepalw]] variable. + + * 0 --> No flexoelectric spatial dispersion tensors are calculated. + * 1 --> Four tensors required to build all the contributions to the bulk flexoelectric tensor + are calculated. Requires precomputed linear response functions + and densities: ddk, d2_dkdk, electric field, atomic displacement and strain. + * 2 --> Clamped-ion flexoelectric tensor is calculated. Requires precomputed linear response functions + and densities: ddk, d2_dkdk, electric field and strain. + * 3 --> Two tensors required to build the mixed flexoelectric tensor are calculated: + the first moment of polarization response to an atomic displacement and the first + moment of the IFCs. Related quantities that can be derived from these two tensors + are also printed: dynamical quadrupoles, clamped-ion piezoelectric tensor and + piezoelectric force response tensor. Requires precomputed linear response functions and densities: + ddk, d2_dkdk, electric field and atomic displacement. + * 4 --> Two tensors required to build the lattice-mediated flexoelectric tensor are calculated: + the first moment of the IFCs and the first moment of the piezoelectric force response + tensor. Related quantities that can be derived from these two tensors + are also printed: piezoelectric force response tensor and clamped-ion elastic tensor. + Requires precomputed linear response functions and densities: + ddk, atomic displacement and strain. +""", +), + +Variable( + abivarname="lw_natopt", + varset="dfpt", + vartype="integer", + topics=['longwave_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="LongWave calculation of NATural OPTical activity tensor", + requires="[[optdriver]] = 10", + characteristics=['[[DEVELOP]]'], + added_in_version="v9", + text=r""" +Used to run natural optical activity tensor calculation. + + * 0 --> No natural optical activity tensor is calculated. + * 1 --> Natural optical activity tensor is calculated. + +This **requires** the precalculation of the ground-state wave functions and +density as well as response functions and densities to the following perturbations: +ddk, d2_dkdk, electric fields. The number of linear-response calculations +to be explicitly precomputed can be reduced via symmetry arguments +selecting the appropriate value of the [[prepalw]] variable. +""", +), + +Variable( + abivarname="lw_qdrpl", + varset="dfpt", + vartype="integer", + topics=['longwave_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="LongWave calculation of dynamical QuaDRuPoLes tensor", + requires="[[optdriver]] = 10", + characteristics=['[[DEVELOP]]'], + added_in_version="v9", text=r""" -Give for each species the value of the angular momentum (only values 2 or 3 -are allowed) on which to apply the LDA+U correction. +Used to run dynamical quadrupoles tensor calculation (e.g., needed to include dipole-quadrupole +and/or quadrupole-quadrupole electrostatic interactions in the anaddb calculation of +phonons. See [[dipquad@anaddb]] and [[quadquad@anaddb]]). + + * 0 --> No dynamical quadrupoles are calculated + * 1 --> Dynamical quadrupoles are calculated. Related quantities that can be derived from + the dynamical quadrupoles are also printed: the first moment of the polarization + response to an atomic displacement and the clamped-ion piezoelectric tensor. - * If equal to 2 (d-orbitals) or 3 (f-orbitals), values of [[upawu]] and [[jpawu]] are used in the calculation. - * If equal to -1: do not apply LDA+U correction on the species. +This **requires** the precalculation of the ground-state wave functions and +density as well as response functions and densities to the following perturbations: +ddk, d2_dkdk, atomic displacements and electric fields. The number of linear-response calculations +to be explicitly precomputed can be reduced via symmetry arguments +selecting the appropiate value of the [[prepalw]] variable. """, ), + Variable( abivarname="macro_uj", varset="dev", @@ -8849,6 +10203,7 @@ defaultval=0, mnemonics="MACRO variable that activates the determination of the U and J parameter (for the PAW+U calculations)", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Sets proper input values for the determination of U and J i.e. for [[pawujat]] (first atom treated with PAW+U), [[irdwfk]] (=1), [[tolvrs]] (=10^(-8)), @@ -8876,6 +10231,7 @@ dimensions="scalar", defaultval=0.01, mnemonics="MAGnetization CONstraint LAMBDA parameter", + added_in_version="before_v9", text=r""" This variable gives the amplitude of the penalty function imposed on the magnetization vectors on each atom (turned on with flag variable @@ -8896,11 +10252,12 @@ dimensions="scalar", defaultval=0, mnemonics="turn MAGnetization CONstraint ON", + added_in_version="before_v9", text=r""" Turns on the imposition of a constraint on the magnetization, using a penalty function. For each atom, the magnetization is calculated in a sphere (radius [[ratsph]]) and a penalty function is applied to bring it to the input values of [[spinat]]. -The constraint can be either on the direction only ([[magconon]] = 1) or on the full +The constraint can be either on the direction/axis only ([[magconon]] = 1) or on the full vector ([[magconon]] = 2). The penalty function has an amplitude [[magcon_lambda]] that should be neither too big (bad or impossible convergence) nor too small (no effect). The penalty function is documented in [[cite:Ma2015]] as being a Lagrange @@ -8908,6 +10265,10 @@ the exact sought value for the magnetization. So, the true Lagrange approach has to be preferred, except for testing purposes. This is provided by the algorithm governed by the input variable [[constraint_kind]], which is actually also much more flexible than the implementation corresponding to [[magconon]]. + +Final subtlety: when [[magconon]] = 1, if [[nspden]]==2 (collinear case), then the direction of magnetization is constraint (positive or negative along z), +while if [[nspden]]==4, then the axis of magnetization is constraint (the actual direction is not imposed, both directions are equivalent). This might be +confusing. """, ), @@ -8919,6 +10280,7 @@ dimensions="scalar", defaultval=0, mnemonics="MAXimum Number of CPUS", + added_in_version="before_v9", text=r""" If [[autoparal]] > 1 and [[max_ncpus]] is greater than 0, ABINIT analyzes the efficiency of the process distribution for each possible number of processors @@ -8935,6 +10297,7 @@ defaultval=0.005, mnemonics="MAXimum Electric field STEP", requires="[[berryopt]] = 6, 16, or 17", + added_in_version="before_v9", text=r""" This variable controls the maximum change of electric field when updating the electric field after each SCF iteration. When the calculation is difficult to @@ -8952,6 +10315,7 @@ defaultval=384, mnemonics="MAXimum Number of SYMetries", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the maximum number of spatial symmetries allowed in the memory. The default value is sufficient for most applications. It might have to be @@ -8968,6 +10332,7 @@ dimensions="scalar", mnemonics="Maximum number of BANDs", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable derives the maximum number of bands over all k-points and spin-polarisation from [[nband]](1:nkpt*nsppol). @@ -8978,14 +10343,15 @@ abivarname="mbpt_sciss", varset="gw", vartype="real", - topics=['GW_useful', 'Susceptibility_useful', 'SelfEnergy_useful'], + topics=['GW_useful', 'Susceptibility_useful', 'SelfEnergy_useful', 'ElPhonInt_expert'], dimensions="scalar", defaultval=0.0, mnemonics="Many Body Perturbation Theory SCISSor operator", characteristics=['[[ENERGY]]'], - requires="[[optdriver]] in [3,4,99]", + requires="[[optdriver]] in [3,4,7,99]", + added_in_version="before_v9", text=r""" -The scissor operator energy added to the conductions states. In some cases, +The scissor operator energy added to the conductions states [[cite:Levine1989]]. In some cases, it mimics a second iteration self-consistent GW calculation. """, ), @@ -8999,11 +10365,12 @@ defaultval=0.0, mnemonics="Model Dielectric Function, EPSilon INFinity", requires="[[optdriver]] == 99 and [[bs_coulomb_term]] in [20,21] (Bethe-Salpeter calculations with a model dielectric function", + added_in_version="before_v9", text=r""" [[mdf_epsinf]] specifies the value of the macroscopic dielectric function used to model the screening function (see [[cite:Bechstedt1992]]). The proper spatial symmetry of the screening $W(\mathbf{r},\mathbf{r}^\prime)$ is enforced using -Eq. (7) of [[cite:vonderLinden1988]]. +Eq. (7) of [[cite:VonDerLinden1988]]. """, ), @@ -9015,6 +10382,7 @@ dimensions=[2], defaultval=[300, 300], mnemonics="Molecular Dynamics TEMPeratures", + added_in_version="before_v9", text=r""" Give the initial and final temperature of the Nose-Hoover thermostat ([[ionmov]] = 8) and Langevin dynamics ([[ionmov]] = 9), in Kelvin. This @@ -9035,6 +10403,7 @@ defaultval=10000.0, mnemonics="Molecular Dynamics WALL location", commentdefault="the walls are extremely far away", + added_in_version="before_v9", text=r""" Gives the location (atomic units) of walls on which the atoms will bounce back when [[ionmov]] = 6, 7, 8 or 9. For each cartesian direction idir=1, 2 or @@ -9042,8 +10411,7 @@ xcart(idir)=rprimd(idir,idir)+wall. Supposing the particle will cross the wall, its velocity normal to the wall is reversed, so that it bounces back. By default, given in Bohr atomic units (1 Bohr=0.5291772108 Angstroms), -although Angstrom can be specified, if preferred, since [[mdwall]] has the -'[[LENGTH]]' characteristics. +although Angstrom can be specified, if preferred, since [[mdwall]] has the [[LENGTH]] characteristics. """, ), @@ -9056,6 +10424,7 @@ defaultval=1, mnemonics="MEMory TEST", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" This variable controls the memory test done in the `memana` routine. Possible values: @@ -9074,6 +10443,7 @@ defaultval=ValueWithConditions({'[[imgmov]] == 5': 0.4, 'defaultval': 100.0}), mnemonics="Minimal Energy Path search: MaXimum allowed STEP size", characteristics=['[[LENGTH]]'], + added_in_version="before_v9", text=r""" Relevant only when [[imgmov]] = 1 (Steepest-Descent), 2 (String Method) or 5 (Nudged Elastic Band). @@ -9093,6 +10463,7 @@ topics=['TransPath_basic'], dimensions="scalar", mnemonics="Minimal Energy Path ordinary differential equation SOLVER", + added_in_version="before_v9", text=r""" Relevant only when [[imgmov]] = 2 (String Method) or 5 (Nudged Elastic Band). Gives the algorithm used to solve the Ordinary Differential Equation (ODE) @@ -9131,22 +10502,23 @@ abivarname="mixprec", varset="dev", vartype="integer", - topics=['TuningSpeed_useful'], + topics=['TuningSpeedMem_useful'], dimensions="scalar", defaultval=0, mnemonics="MIXed PRECision", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" This variable activates FFT transforms in single precision. The code thus works in mixed-precision mode in the sense that all the high-level -operations are done in double-precision while the FFT of wavefunctions densities and potentials +operations are done in double-precision while the FFT of wavefunctions, densities and potentials are done with workspace arrays in single precision. This option **requires** the linkage with external FFT libraries (FFTW3 or MKL-DFTI, see also [[fftalg]]) Tests showed a speedup of ~25% in calculations in which FFTs (in particular fourwf%pot) represent the dominant part. Typical examples are EPH calculation with [[optdriver]] = 7. -At present (|today|), only selected kernels support mixed-precision, in particular MPI-FFTs +At present ( |today| ), only selected kernels support mixed-precision, in particular MPI-FFTs in mixed precision **are not yet supported**. """, ), @@ -9159,6 +10531,7 @@ dimensions="scalar", mnemonics="Maximum of nGFFT", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable contains the maximum of [[ngfft]](1:3). """, @@ -9172,6 +10545,7 @@ dimensions="scalar", mnemonics="Maximum of nGFFT for the Double Grid", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable contains the maximum of [[ngfftdg]](1:3). """, @@ -9185,6 +10559,7 @@ dimensions=['[[npspalch]]', '[[ntypalch]]'], mnemonics="MIXing coefficients for ALCHemical potentials", characteristics=['[[EVOLVING]]'], + added_in_version="before_v9", text=r""" Used for the generation of alchemical pseudoatoms, that is, when [[ntypalch]] is non-zero. @@ -9253,6 +10628,7 @@ topics=['CrossingBarriers_useful'], dimensions=['[[nimage]]'], mnemonics="MIXing Electronic Structure IMAGE Factors", + added_in_version="before_v9", text=r""" Used in the algorithm Linear Combination of Constrained DFT Energies, that is, when [[imgmov]]==6. @@ -9270,6 +10646,7 @@ dimensions="scalar", mnemonics="Maximum number of Plane Waves", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable gives the maximum of the number of plane waves over all k-points. It is computed from [[ecut]] and the description of the cell, @@ -9286,6 +10663,7 @@ defaultval=3001, mnemonics="Maximum number of Q-space GRID points for pseudopotentials", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Govern the size of the one-dimensional information related to pseudopotentials, in reciprocal space: potentials, or projector functions. @@ -9301,6 +10679,7 @@ defaultval=3001, mnemonics="Maximum number of Q-wavevectors for the 1-dimensional GRID for the Double Grid in PAW", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Maximum number of wavevectors used to sample the local part of the potential, in PAW. Actually referred to as mqgrid_vl internally. Should change name to @@ -9317,6 +10696,7 @@ defaultval=0, mnemonics="Number of AToms in CONstraint equations", characteristics=['[[NO_MULTI]]', '[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the number of atoms appearing in each of the [[nconeq]] independent equations constraining the motion of atoms during structural optimization or @@ -9334,6 +10714,7 @@ mnemonics="Number of Atoms that are FIXed", characteristics=['[[INPUT_ONLY]]'], commentdefault="(no atoms held fixed)", + added_in_version="before_v9", text=r""" Gives the number of atoms (not to exceed [[natom]]) which are to be held fixed during a structural optimization or molecular dynamics. @@ -9351,6 +10732,7 @@ defaultval=0, mnemonics="Number of Atoms that are FIXed along the X direction", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the number of atoms (not to exceed [[natom]]) which are to be held fixed along the X direction during a structural optimization or molecular dynamics. @@ -9367,6 +10749,7 @@ defaultval=0, mnemonics="Number of Atoms that are FIXed along the Y direction", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the number of atoms (not to exceed [[natom]]) which are to be held fixed along the Y direction during a structural optimization or molecular dynamics. @@ -9383,6 +10766,7 @@ defaultval=0, mnemonics="Number of Atoms that are FIXed along the Z direction", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the number of atoms (not to exceed [[natom]]) which are to be held fixed along the Z direction during a structural optimization or molecular dynamics. @@ -9398,6 +10782,7 @@ dimensions="scalar", defaultval=1, mnemonics="Number of ATOMs", + added_in_version="before_v9", text=r""" Gives the total number of atoms in the unit cell. Default is 1 but you will obviously want to input this value explicitly. @@ -9417,8 +10802,9 @@ mnemonics="Number of AToms on which PAW+U is applied", characteristics=['[[INTERNAL_ONLY]]'], requires="[[usepawu]] == 1", + added_in_version="before_v9", text=r""" -This internal variable gives the number of atoms on which the LDA/GGA+U method +This internal variable gives the number of atoms on which the DFT+U method is applied. This value is determined from [[lpawu]]. """, ), @@ -9431,10 +10817,11 @@ dimensions="scalar", defaultval="[[natom]]", mnemonics="Number of AToms ReaD", + added_in_version="before_v9", text=r""" Gives the number of atoms to be read from the input file, in the case the atom manipulator or the smart symmetriser is used. In this case, [[natrd]] is also -used to dimension the array [[typat]], and the arrays [[xred]], [[xangst]] and [[xcart]]. +used to dimension the array [[typat]], and the arrays [[xred]] and [[xcart]]. Must take into account the vacancies (see [[vacnum]] and [[vaclst]]). Despite possible vacancies, cannot be bigger than [[natom]]. """, @@ -9444,14 +10831,15 @@ abivarname="natsph", varset="gstate", vartype="integer", - topics=['printing_prdos', 'ElecBandStructure_useful', 'ElecDOS_useful'], + topics=['printing_prdos', 'ElecBandStructure_useful', 'ElecDOS_useful','AtomCentered_compulsory'], dimensions="scalar", defaultval="[[natom]]", mnemonics="Number of ATomic SPHeres for the atom-projected density-of-states", - requires="[[prtdos]] == 3 or [[pawfatbnd]] in [1,2]", + requires="[[prtdos]] == 3 or 4 or [[pawfatbnd]] in [1,2]", + added_in_version="before_v9", text=r""" [[natsph]] gives the number of atoms around which the sphere for atom-projected -density-of-states will be built, in the [[prtdos]] = 3 case. The +density-of-states will be built, in the [[prtdos]] = 3 or 4 case. The indices of these atoms are given by [[iatsph]]. The radius of these spheres is given by [[ratsph]]. If [[pawfatbnd]] = 1 or 2, it gives the number of atoms around which atom-projected band structure will be built (the indices of these atoms are given by [[iatsph]]). @@ -9462,14 +10850,15 @@ abivarname="natsph_extra", varset="gstate", vartype="integer", - topics=['printing_prdos'], + topics=['printing_prdos','AtomCentered_compulsory'], dimensions="scalar", defaultval=0, mnemonics="Number of ATomic SPHeres for the l-projected density-of-states in EXTRA set", - requires="[[prtdos]] == 3 or [[pawfatbnd]] in [1,2]", + requires="[[prtdos]] == 3 or 4 or [[pawfatbnd]] in [1,2]", + added_in_version="before_v9", text=r""" [[natsph_extra]] gives the number of extra spheres for which the angular- -momentum-projected density-of-states will be built, in the [[prtdos]] = 3 case. +momentum-projected density-of-states will be built, in the [[prtdos]] = 3 or 4 case. The radius of these spheres is given by [[ratsph_extra]]. This simulates the STS signal for an STM tip atom placed at the sphere position, according to the chemical nature of the tip (s- p- d- wave etc...). @@ -9488,6 +10877,7 @@ defaultval=0, mnemonics="Number of ATomic potential (V) energy SHIFTs (per atom)", requires="[[usepawu]] /= 0, [[atvshift]]", + added_in_version="before_v9", text=r""" Number of atomic potential energy shifts (per atom), to be used to define the array [[atvshift]]. If non-zero, only two possibilities exist: 5 for d states @@ -9504,6 +10894,7 @@ dimensions="scalar", mnemonics="Number of BANDs", commentdefault=" the estimated number of occupied bands +1 (TODO provide the mathematical formulation)", + added_in_version="before_v9", text=r""" Gives number of bands, occupied plus possibly unoccupied, for which wavefunctions are being computed along with eigenvalues. @@ -9533,6 +10924,7 @@ dimensions="scalar", mnemonics="Number of BANDs for (Hartree)-Fock exact exchange", commentdefault="the estimated number of occupied bands (TODO: provide the mathematical formulation)", + added_in_version="before_v9", text=r""" Gives the maximum number of occupied bands with which Fock exact exchange is being computed for the wavefunctions. @@ -9547,6 +10939,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of BANDs in the KSS file", + added_in_version="before_v9", text=r""" This input variable is used for the preparation of a GW calculation: it is used in a GS run (where [[optdriver]] = 0) to generate a _KSS file. In this run, @@ -9576,11 +10969,12 @@ abivarname="nbdblock", varset="dev", vartype="integer", - topics=['TuningSpeed_expert'], + topics=['TuningSpeedMem_expert'], dimensions="scalar", defaultval=1, mnemonics="Number of BanDs in a BLOCK", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" In case of non-standard, blocked algorithms for the optimization of the wavefunctions (that is, if [[wfoptalg]] = 4): @@ -9599,10 +10993,25 @@ '[[optdriver]] == 1 and 3<=[[occopt]] and [[occopt]]<= 8': '2*[[nspinor]]', 'defaultval': 0}), mnemonics="Number of BanDs for the BUFfer", + added_in_version="before_v9", text=r""" [[nbdbuf]] gives the number of bands, the highest in energy, that, among the -[[nband]] bands, are to be considered as part of a buffer. This concept is -useful in three situations: in non-self-consistent calculations, for the +[[nband]] bands, are to be considered as part of a buffer. +A negative value (between -1 and -100) is interpreted as percentage of [[nband]] (added in v9). The value -101 is special, as described below. + + +!!! important + + The default value is usually too small, especially when performing GS NSCF calculations. + In this case, it is strongly recommended to specify nbdbuf in the input and increase [[nband]] accordingly. + For small systems (e.g. Silicon), nbdbuf = 4 is OK so using `nband 12 and nbdbuf = 4` + will give a band structure with the first 8 bands converged within [[tolwfr]]. + For more complex systems and/or GS NSCF calculations with many empty states, one usually needs + to increase [[nbdbuf]], let's say 10% of [[nband]]. + This can be easily achieved by using a negative value e.g.: nbdbuf -10 means 10% of nband. + + +This concept is useful in three situations: in non-self-consistent calculations, for the determination of the convergence tolerance; for response functions of metals, to avoid instabilities, and also when finite electric fields or non-linear responses (with electric field perturbations) are considered. For the two @@ -9613,9 +11022,10 @@ In non-self-consistent GS calculations ([[iscf]]<0), the highest levels might be difficult to converge, if they are degenerate with another level, that does not belong to the set of bands treated. Then, it might take extremely long to -reach [[tolwfr]], although the other bands are already extremely well- -converged, and the energy of the highest bands (whose residual are not yet +reach [[tolwfr]], although the other bands are already extremely well-converged, +and the energy of the highest bands (whose residual are not yet good enough), is also rather well converged. + In response to this problem, for non-zero [[nbdbuf]], the largest residual (residm), to be later compared with [[tolwfr]], will be computed only in the set of non-buffer bands (this modification applies for non-self-consistent as @@ -9624,19 +11034,27 @@ in the input file, then ABINIT will overcome the default [[nbdbuf]] value, and automatically set [[nbdbuf]] to 2. -In metallic RF calculations, in the conjugate gradient optimisation of first- -order wavefunctions, there is an instability situation when the q wavevector +In metallic RF calculations, in the conjugate gradient optimisation of first-order wavefunctions, +there is an instability situation when the q wavevector of the perturbation brings the eigenenergy of the highest treated band at some -k point higher than the lowest untreated eigenenergy at some k+q point. If one +k-point higher than the lowest untreated eigenenergy at some k+q point. If one accepts a buffer of frozen states, this instability can be made to disappear. -Frozen states receive automatically a residual value of -0.1d0. -For a RF calculation, with 3<=[[occopt]]<=7, supposing [[nbdbuf]] is not +Frozen states receive automatically a residual value of -0.1 +For a RF calculation, with 3 <= [[occopt]] <= 7, supposing [[nbdbuf]] is not initialized in the input file, then ABINIT will overcome the default [[nbdbuf]] value, and automatically set [[nbdbuf]] to 2. This value might be too low in some cases. Also, the number of active bands, in all cases, is imposed to be at least 1, irrespective of the value of [[nbdbuf]]. + +With [[nbdbuf]] = -101, the bands in the buffer are automatically defined through their occupancies. +The convergence criteria is normally $resid < tolwfr$, which means that the squared band residual should be lower than [[tolwfr]]. +With [[nbdbuf]] = -101, the convergence criteria becomes : $resid * occ < tolwfr$, where $occ$ is the band occupancy. +In that case, bands with null occupation numbers are completely ignored and bands with partial band occupancies are converged according to a modified criteria, equal to $tolwfr/occ$. +This functionality is still experimental and has not been tested on many systems yet. + +At last, we note that the convergence criteria for the diagonalization algorithm (see [[tolwfr_diago]]) is also affected by [[nbdbuf]]. """, ), @@ -9649,6 +11067,7 @@ defaultval=1, mnemonics="Number of BERRY phase computations", requires="[[berryopt]] = 1, 2, or 3", + added_in_version="before_v9", text=r""" Gives the number of Berry phase computations of polarisation, or finite- difference estimations of the derivative of wavefunctions with respect to the @@ -9671,6 +11090,45 @@ """, ), +Variable( + abivarname="nblock_lobpcg", + varset="gstate", + vartype="integer", + topics=['SCFAlgorithms_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="Number of BLOCKs in the LOBPCG algorithm", + requires="[[wfoptalg]] = 4, 14, or 114", + added_in_version="v9.11.6", + text=r""" +This variable controls the number of blocks in the LOBPCG algorithm. +It has to be a divisor of [[nband]]. +Contrary to the simple conjugate gradient, which is a band-by-band algorithm, LOBPCG can work on blocks of wavefunctions. +This is partly why LOBPCG is more robust and efficient, especially for systems with many atoms. +The size of a block is [[nband]] / **nblock_lobpcg**. +Blocks are treated sequentially, starting from the block of bands with the lowest eigenvalues up to the block of bands with the highest eigenvalues. + +With the default value, all bands are included in a single block (**nblock_lobpcg**=1), but it is very likely not the most efficient solution. +To increase the number of blocks (which decreases the block size) can be interesting as: + +* it decreases the time spend in every LOBPCG call (a part of the work to be done on each block is proportional to (blocksize)^3). +* it decreases the memory footprint, as the size of many work arrays is proportional to the block size. + +However, to increase the number of blocks has some drawbacks: + +* it decreases the algorithm robustness, so difficult systems may not converge. To use one block is the most robust choice. +* it decreases the convergence rate, so either more steps (see [[nstep]]) are needed to converge, or more "lines" are needed (see [[nline]]). +* when used in a parallel computation, it decreases the scalability, so less cores can be used efficiently. + +A first try could be **nblock_lobpcg**=4. +If possible one can slightly adapt [[nband]] in order to be a multiple of **nblock_lobpcg**. + +When use with [[paral_kgb]]=1, the bands of a block are distributed among [[npband]] MPI processes. +So [[npband]] has to be a divisor of [[nband]] / **nblock_lobpcg** and [[bandpp]] is internally set to [[nband]] / (**nblock_lobpcg** * [[npband]]). +**nblock_lobpcg** and [[bandpp]] cannot be used simultaneously, one should prefer **nblock_lobpcg**. +""", +), + Variable( abivarname="nc_xccc_gspace", varset="dev", @@ -9681,6 +11139,7 @@ mnemonics="Norm-Conserving pseudopotentials - use XC Core-Correction in G-SPACE", characteristics=['[[DEVELOP]]'], commentdefault="0 when [[usepaw]] = 0, 1 when [[usepaw]] = 1", + added_in_version="before_v9", text=r""" Historically, Abinit treats the model core charge used for the non-linear core correction in real space. Alternatively, it is possible to instruct the code @@ -9706,12 +11165,29 @@ defaultval=0, mnemonics="Number of CONstraint EQuations", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" Gives the number of independent equations constraining the motion of atoms during structural optimization or molecular dynamics (see [[natcon]], [[iatcon]], and [[wtatcon]]). """, ), +Variable( + abivarname="ncout", + varset="files", + vartype="integer", + topics=['printing_prgs'], + dimensions="scalar", + defaultval=1, + mnemonics="Print netCDF output files", + added_in_version="9.11.0", + text=r""" +If set to 1, ABINIT will produce a netCDF output file up to 10 datasets calculations. +If set to 0, said files will not be printed. +""", +), + + Variable( abivarname="nctime", varset="dev", @@ -9721,6 +11197,7 @@ defaultval=0, mnemonics="NetCdf TIME between output of molecular dynamics informations", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" When [[nctime]] is non-zero, the molecular dynamics information is output in NetCDF format, every [[nctime]] time step. Here is the content of an example file: @@ -9763,9 +11240,10 @@ dimensions=['abs([[kptopt]])'], mnemonics="Number of DIVisions of K lines", characteristics=['[[INPUT_ONLY]]'], - commentdefault="Will be generated automatically from [[ndivsm]] if the latter is defined.", + commentdefault="Will be generated automatically from [[ndivsm]] if the latter is defined, which is much more convenient.", excludes="[[ndivsm]]", requires="[[kptopt]] < 0", + added_in_version="before_v9", text=r""" Gives the number of divisions of each of the segments of the band structure, whose path is determined by [[kptopt]] and [[kptbounds]]. In this case, the @@ -9789,7 +11267,7 @@ Alternatively it is possible to generate automatically the array [[ndivk]] by just specifying the number of divisions for the smallest segment. See the -related input variable [[ndivsm]]. +related input variable [[ndivsm]]. This is much more convenient than using [[ndivk]]. """, ), @@ -9801,6 +11279,7 @@ dimensions="scalar", mnemonics="Number of DIVisions for the SMallest segment", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" This variable defines the number of divisions used to sample the smallest segment of the circuit employed in a band structure calculations (see related @@ -9823,6 +11302,7 @@ defaultval=0, mnemonics="Number of DaTaSETs", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" Gives the number of data sets to be treated. If 0, means that the multi-data set treatment is not used, so that the root @@ -9840,6 +11320,7 @@ dimensions="scalar", mnemonics="Number of DYNamical IMAGEs", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable gives the number of dynamical images, immediately deduced from the number of non-zero values present in [[dynimage]]. It is used @@ -9857,6 +11338,7 @@ defaultval=1, mnemonics="Nudged Elastic Band ALGOrithm", requires="[[imgmov]] == 5", + added_in_version="before_v9", text=r""" Gives the variant of the NEB method used. Possible values can be: @@ -9893,6 +11375,7 @@ defaultval=ValueWithConditions({'[[neb_algo]] == 2': ValueWithUnit(units='Hartree/Bohr^2', value=[0.02, 0.15]), 'defaultval': ValueWithUnit(units='Hartree/Bohr^2', value=[0.05, 0.05])}), mnemonics="Nudged Elastic Band: SPRING constant", requires="[[imgmov]] == 5", + added_in_version="before_v9", text=r""" Gives the minimal and maximal values (in Hartree/Bohr^2) of the spring constant connecting images for the NEB method. @@ -9912,11 +11395,15 @@ defaultval="[[AUTO_FROM_PSP]]", mnemonics="Number of ELECTrons", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable gives the number of electrons per unit cell, as computed from the sum of the valence electrons related to each atom (given in -the pseudopotential, where it is called "zion"), and the input variable [[charge]]: -[[nelect]] = zion-[[charge]]. +the pseudopotential, where it is called "zion"), and the input variable [[cellcharge]]: +[[nelect]] = zion-[[cellcharge]]. + +When there are several images, although [[cellcharge]] is an array, [[nelect]] is initialized +with the first image, namely [[nelect]] = zion-[[cellcharge]](1). """, ), @@ -9928,6 +11415,7 @@ dimensions="scalar", mnemonics="Number of FFT points", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" If space parallelization is not used (that is, if [[paral_kgb]] == 0), this internal variable gives the number of Fast Fourier Transform points in the @@ -9950,6 +11438,7 @@ dimensions="scalar", mnemonics="Number of FFT points for the Double Grid", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" If space parallelisation is not used (that is, if [[paral_kgb]] == 0), this internal variable gives the number of Fast Fourier Transform points in the @@ -9973,6 +11462,7 @@ defaultval=0, mnemonics="Number of FREQuencies along the IMaginary axis", requires="[[optdriver]] == 3 and [[gwcalctyp]] in [2,12,22,9,19,29]", + added_in_version="before_v9", text=r""" [[nfreqim]] sets the number of pure imaginary frequencies used to calculate the dielectric matrix in order to perform the numerical integration of the GW self-energy. @@ -9987,6 +11477,7 @@ dimensions="scalar", mnemonics="Nth FREQuency Moment of the Imaginary part of the Dielectric Matrix", requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" depending on the value of [[nfreqmidm]] will calculate the frequency moment of the dielectric matrix or its inverse, @@ -10008,6 +11499,7 @@ defaultval=0, mnemonics="Number of FREQuencies along the REal axis", requires="[[optdriver]] == 3 and [[gwcalctyp]] in [2,12,22,9,19,29]", + added_in_version="before_v9", text=r""" [[nfreqre]] sets the number of real frequencies used to calculate the dielectric matrix in order to perform the numerical integration of the GW self-energy. @@ -10035,6 +11527,7 @@ defaultval=0, mnemonics="Number of FREQuencies for the SPectral function", requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" [[nfreqsp]] defines the number of real frequencies used to calculate the spectral function of the GW Green's function. @@ -10050,6 +11543,7 @@ defaultval=[0, 0, 0], mnemonics="Number of Grid points for Fast Fourier Transform", commentdefault="(automatic selection of optimal values)", + added_in_version="before_v9", text=r""" Gives the size of fast Fourier transform (FFT) grid in three dimensions. Each number must be composed of the factors 2, 3, and 5 to be consistent with the @@ -10102,6 +11596,7 @@ defaultval=[0, 0, 0], mnemonics="Number of Grid points for Fast Fourier Transform: Double Grid", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" This variable has the same meaning as ngfft (gives the size of fast Fourier transform (fft) grid in three dimensions) but concerns the "double grid" only @@ -10120,6 +11615,7 @@ characteristics=['[[INPUT_ONLY]]'], excludes="[[kptrlatt]]", requires="[[kptopt]] >=0,", + added_in_version="before_v9", text=r""" Used when [[kptopt]] >= 0, if [[kptrlatt]] has not been defined ([[kptrlatt]] and [[ngkpt]] are exclusive of each other). @@ -10153,8 +11649,12 @@ characteristics=['[[INPUT_ONLY]]'], excludes="[[qptrlatt]]", requires="[[nqpt]] == 1 and [[kptopt]] >= 0", + added_in_version="before_v9", text=r""" -At variance with [[ngkpt]], note that only one q point is selected per dataset +WARNING : Only used if [[nqpt]] = 1. If [[nqpt]]=0 (which is the default value of [[nqpt]]), no reading of [[ngqpt]] is done, +and the default value of [[ngqpt]] is kept. + +Similar to [[ngkpt]], but for the q-wavevector. At variance with [[ngkpt]], note that only one q point is selected per dataset (see [[iqpt]]). Its three positive components give the number of q points of Monkhorst-Pack grids (defined with respect to primitive axis in reciprocal space) in each of @@ -10174,12 +11674,16 @@ dimensions="scalar", defaultval=1, mnemonics="Number of IMAGEs", + added_in_version="before_v9", text=r""" Give the number of images (or replicas) of the system, for which the forces -and stresses might be computed independently, in the context of the string -method, the genetic algorithm, hyperdynamics or Path-Integral Molecular -Dynamics depending on the value of [[imgmov]]). Related input variables: +and stresses might be computed independently, in the context of string +or NEB method, genetic algorithm, hyperdynamics, Path-Integral Molecular +Dynamics, linear combination of images, pSIC, genetic algorithm, etc, depending on the value of [[imgmov]]). Related input variables: [[dynimage]], [[npimage]], [[ntimimage]] and [[prtvolimg]]. +If [[nimage]]>1, the default choice for printing many files is set to zero, and the user might +want to manually reestablish the printing, using, e.g. [[prtgsr]], [[prtwf]], [[prtebands]], [[prteig]], etc. + Images might differ by the position of atoms in the unit cell, their velocity, as well as by their cell geometry. The following input variables might be used to define the images: @@ -10187,14 +11691,16 @@ * [[acell]] * [[amu]] * [[angdeg]] + * [[cellcharge]] * [[dmatpawu]] * [[jpawu]] * [[mixalch]] + * [[occ]] * [[rprim]] + * [[scalecart]] * [[upawu]] * [[vel]] * [[vel_cell]] - * [[xangst]] * [[xcart]] * [[xred]] @@ -10238,6 +11744,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of K-points defining the PATH", + added_in_version="before_v9", text=r""" This variable is used to define the number of high-symmetry k-points in the [[kptbounds]] array when [[kptopt]] > 0. Historically, [[kptbounds]] is used @@ -10262,6 +11769,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[kptopt]] == 0': 1, 'defaultval': 0}), mnemonics="Number of K - Points", + added_in_version="before_v9", text=r""" If non-zero, [[nkpt]] gives the number of k points in the k point array [[kpt]]. These points are used either to sample the Brillouin zone, or to @@ -10299,6 +11807,7 @@ defaultval=0, mnemonics="Number of K-PoinTs for GW corrections", requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" [[nkptgw]] gives the number of k-points for which the GW calculation must be done. It is used to dimension [[kptgw]]. @@ -10312,6 +11821,7 @@ topics=['Hybrids_expert'], dimensions="scalar", mnemonics="Number of K - Points for (Hartree) Fock exact exchange", + added_in_version="before_v9", text=r""" [[nkpthf]] gives the number of k points used to sample the full Brillouin zone for the Fock exact exchange contribution. It is obtained from the @@ -10326,18 +11836,28 @@ vartype="integer", topics=['SCFControl_expert'], dimensions="scalar", - defaultval=4, - mnemonics="Number of LINE minimisations", + defaultval=ValueWithConditions({'[[wfoptalg]] == 1 or 11 ': 6, 'defaultval': 4}), + mnemonics="Number of LINE minimizations", + commentdefault="4 for conjugate-gradient-based algorithm, 6 for spectrum-filtering-based algorithms", + added_in_version="before_v9", text=r""" -Gives maximum number of line minimizations allowed in preconditioned conjugate +For conjugate-gradient based algorithms (conjugate gradient or LOBPCG): + +[[nline]] gives the maximum number of line minimizations allowed in preconditioned conjugate gradient minimization for each band. The default, 4, is fine. Special cases, with degeneracies or near-degeneracies of levels at the Fermi energy may require a larger value of [[nline]] (5 or 6 ?). Line minimizations will be stopped anyway when improvement gets small (governed by [[tolrde]]). -With the input variable [[nnsclo]], governs the convergence of the -wavefunctions for fixed potential. Note that [[nline]] = 0 can be used to diagonalize the Hamiltonian matrix in the subspace spanned by the input wavefunctions. + +For algorithms using spectrum filtering (f.i. Chebyshev filtering, [[wfoptalg]]=1 or 111): + +[[nline]] gives the maximum degree of the Chebyshev polynomial used as filtering function. +The default is 6 to ensure a good quality of the filtering. + +With the input variable [[nnsclo]], [[nline]] governs the convergence of the +wavefunctions for fixed potential. """, ), @@ -10345,26 +11865,82 @@ abivarname="nloc_alg", varset="dev", vartype="integer", - topics=['TuningSpeed_expert'], + topics=['TuningSpeedMem_expert'], dimensions="scalar", defaultval=4, mnemonics="Non LOCal ALGorithm", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" -Allows to choose the algorithm for non-local operator application. On super- -scalar architectures, the default [[nloc_alg]] = 4 is the best. -More detailed explanations: +Allows to choose the algorithm for non-local operator application. +The default value is [[nloc_alg]] = 4, and the meaning of this variable depends on [[useylm]]. + +For [[useylm]] = 0 : + + On super-scalar architectures, [[nloc_alg]] = 4 is the best. + More detailed explanations: + + - [[nloc_alg]] = 2: Should be efficient on vector machines. It is indeed the + fastest algorithm for the NEC, but actual tests on Fujitsu machine did not + gave better performances than the other options. + - [[nloc_alg]] = 3: same as [[nloc_alg]] == 2, but the loop order is inverted. + - [[nloc_alg]] = 4: same as [[nloc_alg]] == 3, but maximal use of registers has + been coded. This should be especially efficient on scalar and super-scalar + machines. This has been confirmed by tests. + +For [[useylm]] = 1 : + +With spherical harmonics, the computation of the scalar product between a wave function $\psi$ and the projector $p_{a,nlm}$ writes: + +$$ = \frac{4\pi}\Omega \sum_{G} e^{iG.R_a} i^l ffnl_a(G,nlm) c(G) $$ + +where $\Omega$ is the unit cell volume, $G$ a vector of the reciprocal lattice, $R_a$ the atomic position, $nlm$ are atomic quantum numbers, $ffnl_a(G,nlm)$ real scalars and $c(G)$ the coefficients of the wave-function $\psi$. +This is computed in "opernla_ylm" routine, for every $nlm$ indices. +The non-local term of the Hamiltonian has a similar structure: + +$$ = \frac{4\pi}\Omega \sum_a \sum_{nlm} e^{-iG.R_a} (-i)^l ffnl_a(G,nlm) fac_a(nlm) $$ + +where $fac_a(nlm)$ are complex scalars. +This is computed in "opernlb_ylm" routine, for every $G$ vectors. -- [[nloc_alg]] = 2: Should be efficient on vector machines. It is indeed the - fastest algorithm for the NEC, but actual tests on Fujitsu machine did not - gave better performances than the other options. -- [[nloc_alg]] = 3: same as [[nloc_alg]] == 2, but the loop order is inverted. -- [[nloc_alg]] = 4: same as [[nloc_alg]] == 3, but maximal use of registers has - been coded. This should be especially efficient on scalar and super-scalar - machines. This has been confirmed by tests. +In both "opernla_ylm" and "opernlb_ylm" routines, these operations are implemented straightforwardly, taking advantage of the real or pure imaginary nature of some terms. +These implementations are used if [[nloc_alg]] = 4 (the default), or if derivatives are needed. +However, for both operations, a part of the computation can be done as a matrix-vector multiplication: + +$$ \sum_{G} ffnl_a(G,nlm) c(G) e^{iG.R_a} = \left(ffnl_a\right)_{nlm,G} \left( vect \right)_G $$ + +and: + +$$ \sum_{nlm} ffnl_a(G,nlm) fac_a(nlm) = \left(ffnl_a\right)_{G,nlm} \left( fac_a \right)_{nlm} $$ + +We note that in both cases the matrix is real, whereas the vector is complex. +An alternative implementation is proposed in "opernla_ylm_mv" and "opernlb_ylm_mv" routines, but only for ground-state quantities. +Forces and stress terms are always computed with "opernla_ylm" and "opernlb_ylm". +The matrix-vector multiplication is implemented either using two calls of BLAS "dgemv" routine (one call for the real part and one for the imaginary part) with [[nloc_alg]] = 2, or straightforwardly with [[nloc_alg]] = 3. + +Tests showed that the most efficient implementation is machine and system dependent, so it is very hard to determine which implementation to use a priori. +Furthermore, in some cases one implementation is the most efficient for "opernla" operation, but not for "opernlb". +So a mix of different implementations can be used with other values of [[nloc_alg]], as shown in the following table: + +nloc_alg | opernla | opernlb +--- | --- | --- + 2 | mv-dgemv | mv-dgemv + 3 | mv | mv + 4 (default) | native | native + 5 | mv-dgemv | mv + 6 | mv | mv-dgemv + 7 | mv-dgemv | native + 8 | native | mv + 9 | mv | native + 10 | native | mv-dgemv + +where "native" stands for "opernlX_ylm" routines, "mv" for "opernlX_ylm_mv" routines with straightforward implementation, and "mv-dgemv" for "opernlX_ylm_mv" routines with BLAS calls. + +The number of "opernla" and "opernlb" operations done in dataset can be written in the output using [[nonlop_ylm_count]]. Note: internally, [[nloc_alg]] is stored in `dtset%nloalg(1)`. See also [[nloc_mem]] for the tuning of the memory used in the non-local operator application. + """, ), @@ -10372,11 +11948,12 @@ abivarname="nloc_mem", varset="dev", vartype="integer", - topics=['TuningSpeed_expert'], + topics=['TuningSpeedMem_expert'], dimensions="scalar", defaultval=ValueWithConditions({'[[usepaw]] == 1': 2, 'defaultval': 1}), mnemonics="Non LOCal MEMOry", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Controls the memory use for the application of the non-local operator. More detailed explanations: @@ -10404,6 +11981,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of NOSe masses", + added_in_version="before_v9", text=r""" Gives the number of thermostats in the chain of oscillators thermostats as proposed in [[cite:Martyna1996]]. The thermostat chains can be used either to perform Molecular Dynamics (MD) ([[ionmov]] = 13) or to perform Path Integral Molecular Dynamics @@ -10412,6 +11990,80 @@ """, ), +Variable( + abivarname="nonlop_ylm_count", + varset="dev", + vartype="integer", + topics=['TuningSpeedMem_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="NON LOcal Operator (YLM version) COUNTer", + characteristics=['[[DEVELOP]]'], + added_in_version="", + text=r""" +This variable is similar than [[fft_count]], but for non-local operations instead of FFT ones. + +The non-local contribution of the wave-function $\psi$ to the energy writes: + +$$ E_{non-local} = \sum_a\sum_{i,j} <\psi|p_{a,i}> e_{a,ij} $$ + +and the Hamiltonian applied to a wave-function is: + +$$ H_{non-local}|\psi> = \sum_a\sum_{ij} |p_{a,i}> D_{a,ij} $$ + +The index "a" stands for atoms ([[natom]]), while "i" and "j" indices run over the set of available projectors of the pseudo-potential. +$e_{a,ij}$ and $D_{a,ij}$ are scalars. +In the PAW formalism ([[usepaw]] = 1), the overlap operator has the same structure than $H_{non-local}$. +The most time-consuming parts of the computation of non-local terms are : + +* the computation of $$ for every "a" and "i" + +* the computation of $\sum_a\sum_i |p_{a,i}> f_{a,i}$ where $f_{a,i} = \sum_j D_{a,ij} $ + +With the use of spherical harmonics ([[useylm]] = 1), the first operation is done in the routine "opernla_ylm", and the second one in "opernlb_ylm". +Both operations scale like $O\left(N_{at}N_{proj}N_{pw}\right)$ where $N_{at}$ is the number of atoms ([[natom]]), $N_{proj}$ the number of projectors $|p_{a,i}>$ per atom, and $N_{pw}$ the number of plane waves. +For systems with many atoms these two operations are the most time consuming, and can take a huge portion of the total computational time. +For that reason, it is interesting to count the number of non-local operations in a dataset, which is done with [[nonlop_ylm_count]] = 1 (or any non-zero value). + +This feature is not equivalent to what other profiling tools would give (as the one included in Abinit, see [[timopt]]), because the amount of work done inside the routines +depends on input options which vary during the computation. +For example, one can compute the application of both the Hamiltonian and the overlap operator in one call. +The counting activated by [[nonlop_ylm_count]] takes into account these effects. +Also, one can count several datasets separately in one run. + +For now, this feature is available only in the following context: + +* [[useylm]] = 1 : use of spherical harmonics + +* [[optdriver]] = 0 : ground-state computation + +* [[paral_kgb]] = 0 : simple parallelization over k-points + +If the counting is activated, a little report is written in abinit output. +Here an example: + + --- NONLOP YLM COUNTERS ----------------------------------------------------- + Number of Calls in nonlop_ylm : NC = 2 + total Number of Bands : NB = 64 + | total count (TC) | TC/NC | TC/NC/NB + ----------------------------------------------------------------------------- + opernla_ylm | 1152 | 576 | 9.0 + opernla_ylm_mv(dgemv)| 4022 | 2011 | 31.4 + opernlb_ylm_mv | 3254 | 1627 | 25.4 + ----------------------------------------------------------------------------- + +The total count (TC) corresponds to the number of calls of the routine. +In a call of "nonlop_ylm", the sum over atoms is divided by the number of atomic types, and then by blocks of 10 atoms, so in "opernl" routines the sum run over at most 10 atoms (of the same type). +As a consequence, "opernl" routines are called NC times in one call of "nonlop_ylm" to compute the sum over all atoms. +Finally, NB is the total number of bands, including the empty ones, summed over the k-points. + +With this report, one can look at the effect of [[cprj_in_memory]] and [[cprj_update_lvl]] on the total number of calls. + +As shown in the example, several versions of "opernla_ylm" and "opernlb_ylm" routines are implemented. +The choice of the implementation has an effect on performances and is controlled by [[nloc_alg]]. +""", +), + Variable( abivarname="nnsclo", varset="dev", @@ -10421,23 +12073,24 @@ defaultval=0, mnemonics="Number of Non-Self Consistent LOops", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the maximum number of non-self-consistent loops of [[nline]] line minimisations, in the SCF case (when [[iscf]] >0). In the case [[iscf]] <=0, the number of non-self-consistent loops is determined by [[nstep]]. - * The Default value of 0 -- for standard plane-wave calculations -- corresponds - to make the two first fixed potential determinations of wavefunctions have 2 - non-self consistent loops, and the next ones to have only 1 non-self - consistent loop. +* The Default value of 0 -- for standard plane-wave calculations -- corresponds +to make the two first fixed potential determinations of wavefunctions have 2 +non-self consistent loops, and the next ones to have only 1 non-self +consistent loop. - * The Default value of 0 -- for wavelets calculations ([[usewvl]] = 1) -- - corresponds to make 2 steps with 3 non-self consistent loops, 2 steps with 2 - non-self consistent loops, then the next ones with 1 non-self consistent loop. +* The Default value of 0 -- for wavelets calculations ([[usewvl]] = 1) -- +corresponds to make 2 steps with 3 non-self consistent loops, 2 steps with 2 +non-self consistent loops, then the next ones with 1 non-self consistent loop. - * A negative value corresponds to make the abs([[nnsclo]]) first fixed potential determinations - of wavefunctions have 5 non-self consistent loops, and the next ones to have only 1 non-self - consistent loop. +* A negative value corresponds to make the abs([[nnsclo]]) first fixed potential determinations +of wavefunctions have 5 non-self consistent loops, and the next ones to have only 1 non-self +consistent loop. """, ), @@ -10451,6 +12104,7 @@ defaultval=ValueWithConditions({'[[usefock]] == 1': 1, 'defaultval': 0}), mnemonics="Number of Non-Self Consistent LOops for (Hartree)-Fock exact exchange", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the maximum number of loops with non-self-consistent occupied states used to calculate Fock exact exchange, in the SCF case. @@ -10468,6 +12122,7 @@ defaultval=0, mnemonics="Number of OBJects", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the number of 'objects' to be used by the atom manipulator in order to find the full set of atoms. At present, only one or two objects can be @@ -10509,6 +12164,7 @@ mnemonics="Number of OMEGA to evaluate the Spectral Function", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 3 and [[spmeth]]!=0", + added_in_version="before_v9", text=r""" [[nomegasf]] defines the number of real frequencies used to describe the spectral function associated to the irreducible polarizability @@ -10532,6 +12188,7 @@ defaultval=12, mnemonics="Number of OMEGA(S) along the Imaginary axis", requires="[[optdriver]] == 4 and [[gwcalctyp]] == 1", + added_in_version="before_v9", text=r""" [[nomegasi]] defines the number of frequency points used to sample the self- energy along the imaginary axis. The frequency mesh is linear and covers the @@ -10548,6 +12205,7 @@ defaultval=9, mnemonics="Number of OMEGA to evaluate the Sigma Real axis Derivative", requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" The number of real frequencies around the KS energy where the self-energy $\Sigma$ is evaluated. From these values, the derivative of $\Sigma$ at the KS @@ -10564,6 +12222,7 @@ defaultval=0, mnemonics="Output NON-LINEAR INFOrmation", requires="[[optdriver]] == 5 and [[usepead]] == 0, or [[rf2_dkdk]]/=0 or [[rf2_dkde]]/=0", + added_in_version="before_v9", text=r""" Control the output of the non-linear implementation (only when [[usepead]] == 0). The default value, [[nonlinear_info]] == 0 does nothing. If [[nonlinear_info]] == 1, @@ -10592,6 +12251,7 @@ defaultval=0, mnemonics="NORMalize atomic PAW+U projector", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Defines whether the atomic wave function (used as projectors in PAW+U) should be renormalized to 1 within PAW sphere. @@ -10610,6 +12270,7 @@ defaultval=100000, mnemonics="NOSE thermostat INERTia factor", requires="[[ionmov]] == 8", + added_in_version="before_v9", text=r""" Give the inertia factor WT of the Nose-Hoover thermostat (when [[ionmov]] = 8), in atomic units of weight*length2, that is (electron mass)*(Bohr)2. The @@ -10631,15 +12292,16 @@ mnemonics="Number of mpi Processors used for ScaLapacK calls", characteristics=['[[DEVELOP]]'], requires="[[optdriver]] == 1 and [[paral_kgb]] == 1 (Ground-state calculations with LOBPCG algorithm)", + added_in_version="before_v9", text=r""" -When using Scalapack (or any similar Matrix Algebra library), the efficiency -of the eigenproblem resolution saturates as the number of CPU cores increases. -It is better to use a smaller number of CPU cores for the LINALG calls. -This maximum number of cores can be set with [[np_slk]]. +When using Scalapack (or any similar Matrix Algebra library such as ELPA), the efficiency +of the eigenproblem solver saturates as the number of CPU cores increases. +In this case, it is more efficient to use a smaller number of CPUs for the LINALG calls. +The maximum number of cores can be set with [[np_slk]]. A large number for [[np_slk]] (i.e. 1000000) means that all cores are used for the Linear Algebra calls. np_slk must divide the number of processors involved in diagonalizations -([[npband]] $\\times$ [[npfft]] $\\times$ [[npspinor]]). +([[npband]] $\times$ [[npfft]] $\times$ [[npspinor]]). Note (bef v8.8): an optimal value for this parameter can be automatically found by using the [[autoparal]] input keyword. Note (since v8.8 and only for LOBPCG ([[wfoptalg]] == 114) with [[paral_kgb]] = 1): @@ -10661,13 +12323,14 @@ defaultval=1, mnemonics="Number of Processors at the BAND level", requires="[[paral_kgb]] == 1", + added_in_version="before_v9", text=r""" Relevant only for the band/FFT parallelisation (see the [[paral_kgb]] input variable). [[npband]] gives the number of processors among which the work load over the -band level is shared. [[npband]], [[npfft]], [[npkpt]] and [[npspinor]] are +band level is shared. [[npband]], [[npfft]], [[np_spkpt]] and [[npspinor]] are combined to give the total number of processors (nproc) working on the band/FFT/k-point parallelisation. -See [[npfft]], [[npkpt]], [[npspinor]] and [[paral_kgb]] for the additional +See [[npfft]], [[np_spkpt]], [[npspinor]] and [[paral_kgb]] for the additional information on the use of band/FFT/k-point parallelisation. [[npband]] has to be a divisor or equal to [[nband]] Note: an optimal value for this parameter can be automatically found by using @@ -10684,14 +12347,15 @@ defaultval=1, mnemonics="Number of Processors at the FFT level", requires="[[paral_kgb]] == 1", + added_in_version="before_v9", text=r""" Relevant only for the band/FFT/k-point parallelisation (see the [[paral_kgb]] input variable). [[npfft]] gives the number of processors among which the work load over the -FFT level is shared. [[npfft]], [[npkpt]], [[npband]] and [[npspinor]] are +FFT level is shared. [[npfft]], [[np_spkpt]], [[npband]] and [[npspinor]] are combined to give the total number of processors (nproc) working on the band/FFT/k-point parallelisation. -See [[npband]], [[npkpt]], [[npspinor]], and [[paral_kgb]] for the additional +See [[npband]], [[np_spkpt]], [[npspinor]], and [[paral_kgb]] for the additional information on the use of band/FFT/k-point parallelisation. Note: [[ngfft]] is automatically adjusted to [[npfft]]. If the number of @@ -10710,15 +12374,16 @@ dimensions="scalar", defaultval=1, mnemonics="Number of Processors for (Hartree)-Fock exact exchange", + added_in_version="before_v9", text=r""" Relevant only for the k-point/fock parallelisation (option [[paral_kgb]] input variable). [[nphf]] gives the number of processors among which the work load over the -occupied states level is shared. [[nphf]] and [[npkpt]] are combined to give +occupied states level is shared. [[nphf]] and [[np_spkpt]] are combined to give the total number of processors (nproc) working on the parallelisation. Note: [[nphf]] should be a divisor or equal to the number of k-point times -the number of bands for exact exchange ([[nkpthf]] $\\times$ [[nbandhf]]) in order to +the number of bands for exact exchange ([[nkpthf]] $\times$ [[nbandhf]]) in order to have the better load-balancing and efficiency. """, ), @@ -10731,6 +12396,7 @@ dimensions="scalar", defaultval=1, mnemonics="Number of Processors at the IMAGE level", + added_in_version="before_v9", text=r""" Relevant only when sets of images are activated (see [[imgmov]] and [[nimage]] ). @@ -10740,7 +12406,7 @@ Note: an optimal value for this parameter can be automatically found by using the [[autoparal]] input keyword. -See [[paral_kgb]], [[npkpt]], [[npband]], [[npfft]] and [[npspinor]] for the +See [[paral_kgb]], [[np_spkpt]], [[npband]], [[npfft]] and [[npspinor]] for the additional information on the use of k-point/band/FFT parallelisation. """, ), @@ -10749,23 +12415,45 @@ abivarname="npkpt", varset="paral", vartype="integer", + topics=['parallelism_expert'], + dimensions="scalar", + defaultval=1, + mnemonics="Number of Processors at the SPin and K-Point Level", + requires="[[paral_kgb]] == 1", + added_in_version="before_v9", + text=r""" +This input variable has been superceded by [[np_spkpt]]. +For the time being, for backward compatibility with AbiPy, +[[npkpt]] is still recognized, with the same meaning than [[np_spkpt]], +despite the incorrect lack of mention of the spin parallelism in the name [[npkpt]]. +Please, stop using [[npkpt]] as soon as possible. +""", +), + +Variable( + abivarname="np_spkpt", + varset="paral", + vartype="integer", topics=['parallelism_useful'], dimensions="scalar", defaultval=1, - mnemonics="Number of Processors at the K-Point Level", + mnemonics="Number of Processors at the SPin and K-Point Level", requires="[[paral_kgb]] == 1", + added_in_version="9.4.0", text=r""" Relevant only for the band/FFT/k-point parallelisation (see the [[paral_kgb]] input variable). -[[npkpt]] gives the number of processors among which the work load over the -k-point/spin-component level is shared. [[npkpt]], [[npfft]], [[npband]] and +[[np_spkpt]] gives the number of processors among which the work load over the +k-point/spin-component level is shared. [[np_spkpt]], [[npfft]], [[npband]] and [[npspinor]] are combined to give the total number of processors (nproc) working on the band/FFT/k-point parallelisation. See [[npband]], [[npfft]], [[npspinor]] and [[paral_kgb]] for the additional information on the use of band/FFT/k-point parallelisation. -[[npkpt]] should be a divisor or equal to with the number of k-point/spin- -components ([[nkpt]] $\\times$ [[nsppol]]) in order to have the better load-balancing +Previously, this input variable was called [[npkpt]]. + +[[np_spkpt]] should be a divisor of or equal to the number of k-point/spin- +components ([[nkpt]] $\times$ [[nsppol]]) in order to have a good load-balancing and efficiency. Note: an optimal value for this parameter can be automatically found by using the [[autoparal]] input keyword. @@ -10781,12 +12469,12 @@ defaultval=1, mnemonics="Number of Processors at the PERTurbation level", requires="[[paral_rf]] == 1", + added_in_version="before_v9", text=r""" This parameter is used in connection to the parallelization over perturbations (see [[paral_rf]] ), for a linear response calculation. [[nppert]] gives the number of processors among which the work load over the -perturbation level is shared. It can even be specified separately for each -dataset. +perturbation level is shared. It can even be specified separately for each dataset. """, ), @@ -10797,13 +12485,13 @@ topics=['AtomTypes_useful', 'PseudosPAW_expert'], dimensions="scalar", defaultval="[[ntypat]]", - mnemonics="Number of PSeudoPotentials", + mnemonics="Number of PSeudoPotentials to be read", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" -Usually, the number of pseudopotentials to be read is equal to the number of -type of atoms. However, in the case an alchemical mixing of pseudopotential is -to be used, often the number of pseudopotentials to be read will not equal the -number of types of atoms. +Usually, the number of pseudopotentials to be read, [[npsp]], is equal to the number of +type of atoms, [[ntypat]]. However, in the case an alchemical mixing of pseudopotential is +used, [[npsp]] will be bigger than [[ntypat]]. Alchemical pseudopotentials will be present when [[ntypalch]] is non-zero. See [[ntypalch]] to understand how to use alchemical potentials in ABINIT. The @@ -10824,11 +12512,14 @@ defaultval="[[npsp]]-[[ntyppure]]", mnemonics='Number of PSeudoPotentials that are "ALCHemical"', characteristics=['[[INTERNAL_ONLY]]'], - requires="[[ntypalch]]/=0", + requires="[[ntypalch]]>0", + added_in_version="before_v9", text=r""" Gives the number of pseudopotentials that are used for alchemical mixing (when [[ntypalch]] is non-zero): [[npspalch]] = [[npsp]]-[[ntyppure]] + +When alchemical mixing of potentials is used (that is, when [[ntypalch]]>0), then [[npspalch]] must be greater than 0. """, ), @@ -10841,18 +12532,19 @@ defaultval=1, mnemonics="Number of Processors at the SPINOR level", requires="[[paral_kgb]] == 1", + added_in_version="before_v9", text=r""" Can be 1 or 2 (if [[nspinor]] = 2). Relevant only for the band/FFT/k-point parallelisation (see the [[paral_kgb]] input variable). [[npspinor]] gives the number of processors among which the work load over the spinorial components of wave-functions is shared. [[npspinor]], [[npfft]], -[[npband]] and [[npkpt]] are combined to give the total number of processors +[[npband]] and [[np_spkpt]] are combined to give the total number of processors (nproc) working on the band/FFT/k-point parallelisation. Note: an optimal value for this parameter can be automatically found by using the [[autoparal]] input keyword. -See [[npkpt]], [[npband]], [[npfft]], and [[paral_kgb]] for the additional +See [[np_spkpt]], [[npband]], [[npfft]], and [[paral_kgb]] for the additional information on the use of band/FFT/k-point parallelisation. """, ), @@ -10867,6 +12559,7 @@ mnemonics="Number of PULAY ITerations for SC mixing", characteristics=['[[DEVELOP]]'], requires="[[iscf]] in [7,17]", + added_in_version="before_v9", text=r""" Gives the number of previous iterations involved in Pulay mixing (mixing during electronic SC iterations). @@ -10882,6 +12575,7 @@ defaultval=0, mnemonics="Number of Particle VELocities", requires="[[optdriver]] == 3", + added_in_version="before_v9", text=r""" In the context of the electronic stopping power of impinging ion in matter, [[npvel]] sets the number of the ion velocities to be calculated via linear response. @@ -10899,6 +12593,7 @@ dimensions="scalar", mnemonics="Number of PlaneWaves for EPSilon (the dielectric matrix)", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" [[npweps]] determines the size of the planewave set used to represent the independent-particle susceptibility $\chi^{(0)}_{KS}$, the dielectric matrix @@ -10915,6 +12610,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of PlaneWaves in the KSS file", + added_in_version="before_v9", text=r""" This input variable is used for the preparation of a GW calculation: the GS run (where [[optdriver]] = 1 and [[nbandkss]]/=0) should be followed with a run @@ -10942,10 +12638,11 @@ dimensions="scalar", mnemonics="Number of PlaneWaves for SIGma eXchange", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" [[npwsigx]] determines the cut-off energy of the planewave set used to generate the exchange part of the self-energy operator. -It is an internal variable, determined from [[ecutsigx]]. +It is an internal variable, determined from the largest of [[ecutsigx]] or [[ecutwfn]]. """, ), @@ -10957,6 +12654,7 @@ dimensions="scalar", mnemonics="Number of PlaneWaves for WaveFunctioNs", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" [[npwwfn]] is the size of the planewave set used to represent the wavefunctions in the formula that generates the independent-particle @@ -10972,6 +12670,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of Q - POINTs", + added_in_version="before_v9", text=r""" Determines whether one q point must be read (See the variable [[qptn]]). Can be either 0 or 1. @@ -10981,7 +12680,27 @@ will be appended by _WFQ instead of _WFK Also, if 1 and a RF calculation is done, defines the wavevector of the perturbation. -For further information about the *files file*, consult the [[help:abinit#files-file]]. +For further information about the naming of files in ABINIT, consult the [[help:abinit#files-file]]. +""", +), + +Variable( + abivarname="nqfd", + varset="gstate", + vartype="real", + dimensions="scalar", + defaultval=0.0, + topics=['BandOcc_useful','DeltaSCF_expert'], + mnemonics="Number of Quasi Fermi-Dirac excited carriers", + characteristics=['[[INPUT_ONLY]]'], + added_in_version="v9", + text=r""" +Only used if [[occopt] = 9. + +Controls the numbers of electrons per cell constrained in conduction bands with index +strictly greater than [[ivalence]], and the number of holes per cell constrained in +valence bands with index between 1 and [[ivalence]]. +Internal variables ne_qFD (number of electrons) and nh_qFD (number of holes) are presently initialized to [[nqfd]], which is NOT INTERNAL. """, ), @@ -10994,6 +12713,7 @@ defaultval=0, mnemonics="Number of Q-PoinTs for the Dielectric Matrix", requires="[[optdriver]] == 3", + added_in_version="before_v9", text=r""" If [[nqptdm]] is equal to 0, the set of q points for computing the dielectric matrix is determined automatically considering all the possible differences @@ -11014,6 +12734,7 @@ dimensions="scalar", defaultval=16, mnemonics="Nth - SCaling Function ORDER", + added_in_version="before_v9", text=r""" This variable controls the order of used scaling functions when the Hartree potential is computed using the Poisson solver (see [[icoulomb]] input @@ -11031,11 +12752,16 @@ dimensions="scalar", defaultval=1, mnemonics="Number of SHIFTs for K point grids", + added_in_version="before_v9", text=r""" This parameter gives the number of shifted grids to be used concurrently to generate the full grid of k points. It can be used with primitive grids defined either from [[ngkpt]] or [[kptrlatt]]. The maximum allowed value of [[nshiftk]] is 8. The values of the shifts are given by [[shiftk]]. + +The use of [[nshiftk]]=1, 2, or 4 is quite common, see the values suggested in the +description of [[shiftk]]. The other values are either for debugging purposes by experts, +or can indicate an error. Such other values are allowed only if [[chksymbreak]]=0. """, ), @@ -11048,7 +12774,11 @@ defaultval=1, mnemonics="Number of SHIFTs for Q point grids", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" +WARNING : Only used if [[nqpt]] = 1. If [[nqpt]]=0 (which is the default value of [[nqpt]]), no reading of [[nshiftq]] is done, +and the default value of [[nshiftq]] is kept. + This parameter gives the number of shifted grids to be used concurrently to generate the full grid of q points. It can be used with primitive grids defined either from [[ngqpt]] or [[qptrlatt]]. The maximum allowed value of @@ -11064,6 +12794,7 @@ dimensions="scalar", defaultval="[[nsppol]]", mnemonics="Number of SPin-DENsity components", + added_in_version="before_v9", text=r""" If [[nspden]] = 1, no spin-magnetization the density matrix is diagonal, with same values spin-up and spin-down (compatible with [[nsppol]] = 1 only, for both @@ -11079,7 +12810,7 @@ [[nsppol]] = 1, either because there is spin-orbit without time-reversal symmetry - and thus spontaneous magnetization, or with spin-orbit, if one allows for spontaneous non-collinear magnetism). Available for -response functions [[cite:Ricci2019]]. Also note that, with [[nspden]] = 4, time-reversal symmetry +response functions [[cite:Ricci2019]]. Not yet available for mGGA. Also note that, with [[nspden]] = 4, time-reversal symmetry is not taken into account (at present; this has to be checked) and thus [[kptopt]] has to be different from 1 or 2. @@ -11096,6 +12827,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[pawspnorb]] == 1': 2, 'defaultval': 1}), mnemonics="Number of SPINORial components of the wavefunctions", + added_in_version="before_v9", text=r""" If [[nspinor]] = 1, usual case: scalar wavefunction (compatible with ([[nsppol]] = 1, [[nspden]] = 1) as well as ([[nsppol]] = 2, [[nspden]] = 2) ) @@ -11116,6 +12848,7 @@ dimensions="scalar", defaultval=1, mnemonics="Number of SPin POLarization", + added_in_version="before_v9", text=r""" Give the number of INDEPENDENT spin polarisations, for which there are non- related wavefunctions. Can take the values 1 or 2. @@ -11151,6 +12884,7 @@ dimensions="scalar", defaultval=30, mnemonics="Number of (non-)self-consistent field STEPS", + added_in_version="before_v9", text=r""" Gives the maximum number of cycles (or "iterations") in a SCF or non-SCF run. Full convergence from random numbers is usually achieved in 12-20 SCF @@ -11185,6 +12919,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of SYMmetry operations", + added_in_version="before_v9", text=r""" Gives number of space group symmetries to be applied in this problem. Symmetries will be input in array "[[symrel]]" and (nonsymmorphic) @@ -11232,15 +12967,25 @@ vartype="integer", topics=['MolecularDynamics_basic', 'GeoOpt_basic'], dimensions="scalar", - defaultval=0, + defaultval="0 if ionmvov == 0, set to 1000 if ionvmov != 0 and imgmov != 0 and the variable is not specified.", mnemonics="Number of TIME steps", + added_in_version="before_v9", text=r""" -Gives the number of molecular dynamics time steps or Broyden structural +Gives the maximum number of molecular dynamics time steps or structural optimization steps to be done if [[ionmov]] is non-zero. +Starting with Abinit9, ntime is automatically set to 1000 if [[ionmov]] is non-zero, +[[ntimimage]] is zero and [[ntime]] is not specified in the input file. +Users are encouraged to pass a **timelimit** to Abinit using the command line and the syntax: + + abinit --timelimit hours:minutes:seconds + +so that the code will try to stop smoothly before the timelimit and produce the DEN and the WFK files +that may be used to restart the calculation. + Note that at the present the option [[ionmov]] = 1 is initialized with four Runge-Kutta steps which costs some overhead in the startup. By contrast, the initialisation of other [[ionmov]] values is only one SCF call. -[[ntime]] is ignored if [[ionmov]] = 0. +Note that **ntime** is ignored if [[ionmov]] = 0. """, ), @@ -11252,6 +12997,7 @@ dimensions="scalar", defaultval=1, mnemonics="Number of TIME steps for IMAGE propagation", + added_in_version="before_v9", text=r""" Gives the maximal number of molecular dynamics time steps or structural optimization steps to be done for the set of images, referred to as 'image- @@ -11270,14 +13016,15 @@ dimensions="scalar", defaultval=0, mnemonics='Number of TYPe of atoms that are "ALCHemical"', + added_in_version="before_v9", text=r""" -Used for the generation of alchemical pseudopotentials: when [[ntypalch]] is +Used for the generation of alchemical pseudopotentials: when **ntypalch** is non-zero, alchemical mixing will be used. -Among the [[ntypat]] types of atoms, the last [[ntypalch]] will be +Among the [[ntypat]] types of atoms, the last **ntypalch** will be "alchemical" pseudoatoms, while only the first [[ntyppure]] will be uniquely associated with a pseudopotential (the [[ntyppure]] first of these, actually). -The [[ntypalch]] types of alchemical pseudoatoms are to be made from the +The **ntypalch** types of alchemical pseudoatoms are to be made from the remaining [[npspalch]] pseudopotentials. In this case, the input variables [[algalch]], [[mixalch]] are active, and @@ -11296,15 +13043,17 @@ defaultval=1, mnemonics="Number of TYPes of AToms", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" -Gives the number of types of atoms. -E.g. for a homopolar system (e.g. pure Si) [[ntypat]] is 1. +Gives the number of types of atoms in the unit cell. +E.g. for a homopolar system (e.g. pure Si) **ntypat** is 1. The code tries to read the same number of pseudopotential files. The first pseudopotential is assigned type number 1, and so on... -There is an exception in the case of alchemical mixing of potentials, for -which there is a different number of pseudopotentials atomic types. See [[mixalch]]. +There is an exception in the case of alchemical mixing of potentials. In this case, +the number of atomic types will differ from the number of pseudopotentials. +See [[mixalch]], [[npsp]], [[ntypalch]] and [[npspalch]]. """, ), @@ -11317,6 +13066,7 @@ defaultval="[[ntypat]]-[[ntypalch]]", mnemonics='Number of TYPe of atoms that are "PURE"', characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the number of type of atoms that are "pure" when alchemical mixing is used ([[ntypalch]] /= 0): @@ -11329,23 +13079,69 @@ abivarname="nucdipmom", varset="gstate", vartype="real", - topics=['MagField_expert'], + topics=['NMR_basic','MagField_expert'], dimensions=[3, '[[natom]]'], defaultval=0.0, mnemonics="NUClear DIPole MOMents", - requires="[[usepaw]] = 1; [[pawcpxocc]] = 2; [[kptopt]] > 2", + requires="[[usepaw]] = 1; [[pawcpxocc]] = 2; [[optforces]] = 0; [[optstress]] = 0; [[kptopt]] = 0, 4, or 3", + added_in_version="before_v9", text=r""" Places an array of nuclear magnetic dipole moments on the atomic positions, useful for computing the magnetization in the presence of -nuclear dipoles and thus the chemical shielding by the converse method -[[cite:Thonhauser2009]]. The presence of these dipoles breaks time +nuclear dipoles and thus the chemical shielding by the converse method (see [[orbmag]], +[[cite:Thonhauser2009]] and [[cite:Zwanziger2023]]). The presence of these dipoles breaks time reversal symmetry and lowers the overall spatial symmetry. The dipole -moment values are entered in atomic units. For reference, note that +moment values are entered in atomic units, as vectors in the Cartesian (not crystallographic) +coordinate frame. For reference, note that one Bohr magneton has value $1/2$ in atomic units, while one nuclear Bohr magneton has value $2.7321\times 10^{-4}$ in atomic units. """, ), +Variable( + abivarname="nucefg", + varset="paw", + vartype="integer", + topics=['EFG_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="NUClear site Electric Field Gradient", + requires="[[usepaw]] == 1", + added_in_version="before_v9", + text=r""" +If nonzero, calculate the electric field gradient at each atomic site in the unit cell. +Values will be written to the main output file (search for Electric Field Gradient). +If nucefg=1, the electric field gradient in both atomic units and SI units is given, +showing separate contributions from the valence electrons, the ion cores, and the PAW reconstruction. +If nucefg=2, the quadrupole couplings to the nuclear electric quadrupole moments are reported as well, +and are based on the input values of [[quadmom]]. +If nucefg=3, then in addition to the nucefg=2 output, the EFGs are computed using an ionic point charge model. +This is useful for comparing the accurate PAW-based results to those of simple ion-only models. +Use of nucefg=3 requires that the variable [[ptcharge]] be set as well. +The option nucefg is compatible with spin polarized calculations (see +[[nspden]]) and also DFT+U (see [[usepawu]]). +""", +), + +Variable( + abivarname="nucfc", + varset="paw", + vartype="integer", + topics=['EFG_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="NUClear site Fermi Contact term", + requires="[[usepaw]] == 1", + added_in_version="before_v9", + text=r""" + * If set to 1, print the Fermi contact interaction at each nuclear site, that + is, the electron density at each site. The result appears in the main output file + (search for FC). Note that this calculation is different than what is done by cut3d, + because it also computes the PAW on-site corrections in addition to the + contribution from the valence pseudo-wavefunctions. +""", +), + Variable( abivarname="nwfshist", varset="gstate", @@ -11354,6 +13150,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of WaveFunctionS HISTory", + added_in_version="before_v9", text=r""" In the wavelet basis set, the ground state is found by direct minimisation. The algorithm used can be either the steepest descent or the DIIS (Direct Inversion of Iteration Space). @@ -11372,6 +13169,7 @@ topics=['Artificial_expert'], dimensions="scalar", mnemonics="Number of Z reduced coordinates that define the spatial CHEMical POTential", + added_in_version="before_v9", text=r""" Defines the number of z reduced coordinates that defines the spatially varying chemical potential. See the input variable [[chempot]], of which [[nzchempot]] @@ -11388,9 +13186,10 @@ mnemonics="OBJect A: list of AToms", characteristics=['[[INPUT_ONLY]]'], requires="'[[nobj]] == 1'", + added_in_version="before_v9", text=r""" Gives the list of atoms in object a. This list is specified by giving, for -each atom, its index in the list of coordinates ([[xred]], [[xangst]] or +each atom, its index in the list of coordinates ([[xred]] or [[xcart]]), that also corresponds to a type of atom (given by the array type). These objects can be thought as molecules, or groups of atoms, or parts of molecules, to be repeated, rotated and translated to generate the full set of atoms. @@ -11408,12 +13207,12 @@ characteristics=['[[INPUT_ONLY]]', '[[LENGTH]]'], commentdefault="""[[objaax]] must be provided if ([[nobj]] == 1 and one component of [[objaro]] != 0). Moreover, [[objaax]] AND [[objbax]] must be provided if ( [[nobj]] == 2 and one component of [[objbro]] != 0 ).""", + added_in_version="before_v9", text=r""" Gives, for each object, the cartesian coordinates of two points (first point: [[objaax]](1:3) second point: [[objaax]](4:6). By default, given in Bohr atomic units (1 Bohr=0.5291772108 Angstroms), although Angstrom can be -specified, if preferred, since these variables have the '[[LENGTH]]' -characteristics. +specified, if preferred, since these variables have the [[LENGTH]] characteristics. The two points define an axis of rotation of the corresponding object. Note that the rotation of the object is done BEFORE the object is translated. The sign of the rotation angle is positive if the object is to be rotated @@ -11432,6 +13231,7 @@ characteristics=['[[INPUT_ONLY]]'], commentdefault=""" [[objan]] MUST be provided if [[nobj]] == 1. [[objan]] and [[objbn]] MUST be provided if [[nobj]] == 2.""", + added_in_version="before_v9", text=r""" Gives the number of atoms in object a. The list of atoms is given by the variables [[objaat]]. """, @@ -11446,6 +13246,7 @@ defaultval=[1, 1, 1], mnemonics="OBJect A: Repetition Factors", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives three repetition factors of the objects a. This gives the opportunity to generate a three-dimensional set of repeated @@ -11479,6 +13280,7 @@ mnemonics="OBJect A: ROtations", characteristics=['[[INPUT_ONLY]]'], commentdefault="(no rotation)", + added_in_version="before_v9", text=r""" Give, for each object, the angles of rotation in degrees to be applied to the corresponding object. @@ -11504,11 +13306,12 @@ mnemonics="OBJect A: TRanslations", characteristics=['[[INPUT_ONLY]]', '[[LENGTH]]'], commentdefault="(no translation)", + added_in_version="before_v9", text=r""" Give, for each object, the vectors of translations, in cartesian coordinates, to be applied to the corresponding object. By default, given in Bohr atomic units (1 Bohr=0.5291772108 Angstroms), although Angstrom can be specified, if -preferred, since these variables have the '[[LENGTH]]' characteristics. +preferred, since these variables have the [[LENGTH]] characteristics. The translation is applied after the rotation. The first vector [[objatr]](3,1) gives the translation to be applied to the first instance of the object. The second, third or fourth @@ -11532,9 +13335,10 @@ mnemonics="OBJect B: list of AToms", characteristics=['[[INPUT_ONLY]]'], requires="[[nobj]] == 2", + added_in_version="before_v9", text=r""" Gives the list of atoms in object b. This list is specified by giving, for -each atom, its index in the list of coordinates ([[xred]], [[xangst]] or +each atom, its index in the list of coordinates ([[xred]] or [[xcart]]), that also corresponds to a type of atom (given by the array type). These objects can be thought as molecules, or groups of atoms, or parts of molecules, to be repeated, rotated and translated to generate the full set of @@ -11553,12 +13357,12 @@ characteristics=['[[INPUT_ONLY]]', '[[LENGTH]]'], commentdefault="""[[objbax]] must be provided if ([[nobj]] == 1 and one component of [[objaro]] != 0). Moreover, [[objaax]] AND [[objbax]] must be provided if ( [[nobj]] == 2 and one component of [[objbro]] != 0 ).""", + added_in_version="before_v9", text=r""" Gives, for each object, the cartesian coordinates of two points (first point: [[objbax]](1:3) second point: [[objbax]](4:6). By default, given in Bohr atomic units (1 Bohr=0.5291772108 Angstroms), although Angstrom can be -specified, if preferred, since these variables have the '[[LENGTH]]' -characteristics. +specified, if preferred, since these variables have the [[LENGTH]] characteristics. The two points define an axis of rotation of the corresponding object. Note that the rotation of the object is done BEFORE the object is translated. The sign of the rotation angle is positive if the object is to be rotated @@ -11576,6 +13380,7 @@ mnemonics="OBJect B: Number of atoms", characteristics=['[[INPUT_ONLY]]'], commentdefault=" [[objan]] and [[objbn]] MUST be provided if [[nobj]] == 2.", + added_in_version="before_v9", text=r""" Gives the number of atoms in either object b. The list of atoms is given by the variables [[objbat]]. @@ -11591,6 +13396,7 @@ defaultval=[1, 1, 1], mnemonics="OBJect B: Repetition Factors", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives three repetition factors of the objects a or b. This gives the opportunity to generate a three-dimensional set of repeated @@ -11624,6 +13430,7 @@ mnemonics="OBJect B: ROtations", characteristics=['[[INPUT_ONLY]]'], commentdefault="(no rotation)", + added_in_version="before_v9", text=r""" Give, for each object, the angles of rotation in degrees to be applied to the corresponding object. @@ -11649,11 +13456,12 @@ mnemonics="OBJect B: TRanslations", characteristics=['[[INPUT_ONLY]]', '[[LENGTH]]'], commentdefault="(no translation)", + added_in_version="before_v9", text=r""" Give, for each object, the vectors of translations, in cartesian coordinates, to be applied to the corresponding object. By default, given in Bohr atomic units (1 Bohr=0.5291772108 Angstroms), although Angstrom can be specified, if -preferred, since these variables have the '[[LENGTH]]' characteristics. +preferred, since these variables have the [[LENGTH]] characteristics. The translation is applied after the rotation. The first vector [[objatr]](3,1) and [[objbtr]](3,1) gives the translation to be applied to the first instance of the object. The second, third or fourth @@ -11672,17 +13480,22 @@ varset="gstate", vartype="real", topics=['BandOcc_basic'], - dimensions=['[[nband]]', "[[mband]]", "[[nsppol]]"], + dimensions=['[[nband]]', '[[nsppol]]'], + commentdims="in case [[occopt]]=2, dimensions are ([[mband]],[[nkpt]],[[nsppol]])", defaultval=MultipleValue(number=None, value=0), mnemonics="OCCupation numbers", characteristics=['[[EVOLVING]]'], + added_in_version="before_v9", text=r""" Gives occupation numbers for all bands in the problem. Needed if [[occopt]] == 0 -or [[occopt]] == 2. Ignored otherwise. Also ignored when [[iscf]] = -2. -Typical band occupancy is either 2 or 0, but can be 1 for half-occupied band -or other choices in special circumstances. +or [[occopt]] == 2. Ignored otherwise (automatically computed). Also ignored when [[iscf]] = -2. +Typical band occupancy is either 2.0 or 0.0, but will usually be 1.0 or 0.0 for [[nsppol]]=2, or [[nspinor]]=2, +or half-occupied band, or other choices in special circumstances. If [[occopt]] is not 2, then the occupancies must be the same for each k point. +If [[nsppol]]=1, the total number of arrays which must be provided is [[nband]], in order of increasing energy. +If [[nsppol]]=2, the total number of arrays which must be provided is [[nband]]*[[nsppol]], +first spin up, in order of increasing electronic eigenenergy, then spin down, in order of increasing electronic eigenenergy. If [[occopt]] = 2, then the band occupancies must be provided explicitly for each band, EACH k POINT, and EACH SPIN-POLARIZATION, in an array which runs @@ -11692,7 +13505,10 @@ k-points spin down. The total number of array elements which must be provided is ( [[nband]](1)+[[nband]](2)+...+ [[nband]]([[nkpt]]) ) * [[nsppol]]. + The occupation numbers evolve only for metallic occupations, that is, [[occopt]] ≥ 3. + +When there are several images, [[occ]] might depend on the image number, see the description in [[nimage]]. """, ), @@ -11704,8 +13520,14 @@ dimensions="scalar", defaultval=1, mnemonics="OCCupation OPTion", + added_in_version="before_v9", text=r""" Controls how input parameters [[nband]], [[occ]], and [[wtk]] are handled. +Possible values are from 0 to 9. +For gapped materials (semiconductors, molecules, ...), [[occopt]]=1 is the favourite for most usages. +For metallic situations (also molecules with degenerate levels at Fermi energy), [[occopt]]=7 is the favourite for most usages, +and one needs moreover to control the input variable [[tsmear]]. +Use [[occopt]]=9 for quasi-Fermi energy calculations of excited states in gapped materials. * [[occopt]] = 0: All k points and spins have the same number of bands. All k points have the same occupancies of bands for a given spin @@ -11723,56 +13545,71 @@ equal to 1 or 0 in each k-point (spin-polarized case). If [[nsppol]] = 2 and [[occopt]] == 1 is used, the user has to impose the magnetization, using [[spinmagntarget]], except for the case of a single isolated Hydrogen atom. +Unfortunately, for the time being, in response function calculations, +only [[spinmagntarget]]=0.0d0 or equal to the default value is allowed. * [[occopt]] = 2: k points may optionally have different numbers of bands and different occupancies. [[nband]]([[nkpt]] * [[nsppol]]) is given explicitly as an array of [[nkpt]] * [[nsppol]] elements. [[occ]]() is given explicitly for all bands at -each k point, and eventually for each spin -- the total number of elements is +each k point, and possibly for each spin -- the total number of elements is the sum of [[nband]](ikpt) over all k points and spins. The k point weights [[wtk]] ([[nkpt]]) are NOT automatically normalized under this option. - * [[occopt]] = 3, 4, 5, 6 and 7: + * [[occopt]] = 3 to 8 : Metallic occupation of levels, using different occupation schemes (see below). +See the review of the different possibilities in [[cite:Santos2023]], that +delivers a nice pedagogical explanation of these. The corresponding thermal broadening, or cold smearing, is defined by the -input variable [[tsmear]] (see below: the variable xx is the energy in Ha, -divided by [[tsmear]]) +input variable [[tsmear]] (see below: the variable $x$ is the chemical potential minus the energy in Ha, +divided by [[tsmear]]). Like for [[occopt]] = 1, the variable [[occ]] is not read. All k points have the same number of bands, [[nband]] is given as a single number, read by the code. The k point weights in array [[wtk]]([[nkpt]]) are automatically normalized by -the code to add to 1. +the code to add to 1. The combination of a broadening and a physical temperature +can be obtained by using both [[tsmear]] and [[tphysel]]. * [[occopt]] = 3: -Fermi-Dirac smearing (finite-temperature metal) Smeared delta function: -0.25d0/(cosh(xx/2.0d0)**2) +Fermi-Dirac smearing (finite-temperature metal). Smeared delta function: +$\tilde{\delta}(x)=(2\cosh(x/2))^{-2}=(\exp(x/2)+\exp(-x/2))^{-2}=(2\cosh(x)+2)^{-1}$. +For usual calculations, at zero temperature, do not use [[occopt]]=3, +but [[occopt]]=7. If you want to do a calculation at finite temperature, please also read the +information about [[tphysel]]. * [[occopt]] = 4: "Cold smearing" of N. Marzari (see his thesis work), with a=-.5634 -(minimization of the bump) +(minimization of the bump). Smeared delta function: -exp(-xx 2 )/sqrt(pi) * (1.5d0+xx*(-a*1.5d0+xx*(-1.0d0+a*xx))) +$\tilde{\delta}(x)= (1.5+x(-1.5a+x(-1.0+ax))) \exp(-x^2)/\sqrt{\pi}$ . +Must be used with caution, see the note below. * [[occopt]] = 5: "Cold smearing" of N. Marzari (see his thesis work), with a=-.8165 (monotonic -function in the tail) +function in the tail). Same smeared delta function as [[occopt]] = 4, with different a. +Must be used with caution, see the note below. * [[occopt]] = 6: Smearing of Methfessel and Paxton [[cite:Methfessel1989]] with Hermite polynomial of degree 2, corresponding to "Cold smearing" of N. Marzari with a=0 (so, same smeared delta function as [[occopt]] = 4, with different a). +Must be used with caution, see the note below. * [[occopt]] = 7: -Gaussian smearing, corresponding to the 0 order Hermite polynomial of +Gaussian smearing, corresponding to the 0-order Hermite polynomial of Methfessel and Paxton. -Smeared delta function: 1.0d0*exp(-xx**2)/sqrt(pi) +Smeared delta function: $\tilde{\delta}(x)=\exp(-x^2)/\sqrt{\pi}$ . +Robust and quite efficient. * [[occopt]] = 8: Uniform smearing (the delta function is replaced by a constant function of value one over ]-1/2,1/2[ (with one-half value at the boundaries). Used for testing purposes only. + * [[occopt]] = 9: +Fermi-Dirac occupation is enforced with two distinct quasi-Fermi levels: [[nqfd]] holes are forced in bands 1 to [[ivalence]] and [[nqfd]] electrons are forced in bands with index > [[ivalence]]. See details in [[cite:Paillard2019]]. At present, the number of holes and electrons should be the same. Note that [[occopt]] = 9 cannot be used with fixed magnetization calculation. + !!! note One can use metallic occupation of levels in the case of a molecule, @@ -11784,6 +13621,7 @@ of this problem, a small variation of input parameters might lead to a jump of total energy, because there might be two or even three possible values of the Fermi energy, and the bisection algorithm finds one or the other. + See a more detailed explanation in [[cite:Santos2023]]. """, ), @@ -11797,6 +13635,7 @@ mnemonics="OMEGA to evaluate Sigma along the Imaginary axis D: MAXimal value", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 4 and [[gwcalctyp]] == 1", + added_in_version="before_v9", text=r""" [[omegasimax]] defines the maximum frequency along the imaginary the axis. In conjunction with [[nomegasi]], [[omegasimax]] uniquely defines the linear mesh @@ -11814,6 +13653,7 @@ mnemonics="OMEGA to evaluate the Sigma Real axis Derivative: MAXimal value", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" The maximum distance from the KS energy where to evaluate Sigma. Sigma is evaluated at [ KS_energy - [[omegasrdmax]], KS_energy + [[omegasrdmax]] ] @@ -11829,34 +13669,36 @@ dimensions="scalar", defaultval=0, mnemonics="OPTimize the CELL shape and dimensions", + added_in_version="before_v9", text=r""" Allows one to optimize the unit cell shape and dimensions, when [[ionmov]] >= 2 or 3. The configuration for which the stress almost vanishes is iteratively -determined, by using the same algorithms as for the nuclei positions. Will -eventually modify [[acell]] and/or [[rprim]]. The ionic positions are ALWAYS -updated, according to the forces. A target stress tensor might be defined, see -[[strtarget]]. - - * [[optcell]] = 0: modify nuclear positions, since [[ionmov]] = 2 or 3, but no cell shape and dimension optimisation. - * [[optcell]] = 1: optimisation of volume only (do not modify [[rprim]], and allow an homogeneous dilatation of the three components of [[acell]]) - * [[optcell]] = 2: full optimization of cell geometry (modify [[acell]] and [[rprim]] \- normalize the vectors of [[rprim]] to generate the [[acell]]). This is the usual mode for cell shape and volume optimization. It takes into account the symmetry of the system, so that only the effectively relevant degrees of freedom are optimized. - * [[optcell]] = 3: constant-volume optimization of cell geometry (modify [[acell]] and [[rprim]] under constraint \- normalize the vectors of [[rprim]] to generate the [[acell]]) - * [[optcell]] = 4, 5 or 6: optimize [[acell]](1), [[acell]](2), or [[acell]](3), respectively (only works if the two other vectors are orthogonal to the optimized one, the latter being along its cartesian axis). - * [[optcell]] = 7, 8 or 9: optimize the cell geometry while keeping the first, second or third vector unchanged (only works if the two other vectors are orthogonal to the one left unchanged, the latter being along its cartesian axis). +determined, by using the same algorithms as for the nuclei positions. +May modify [[acell]] and/or [[rprim]]. The ionic positions are ALWAYS +updated, according to the forces. A target stress tensor might be defined, see [[strtarget]]. +In most cell relaxations ([[optcell]]/=0), the user should define [[ecutsm]], [[dilatmx]], and [[tolrff]], because the default values +are NOT aimed at cell relaxation runs. The user should also be aware that convergence studies might need to modify the value of [[tolmxf]], the default being decent, but possibly not sufficiently stringent. + + * **optcell** = 0: modify nuclear positions, since [[ionmov]] = 2 or 3, but no cell shape and dimension optimisation. + * **optcell** = 1: optimisation of volume only (do not modify [[rprim]], and allow an homogeneous dilatation of the three components of [[acell]]) + * **optcell** = 2: full optimization of cell geometry (modify [[acell]] and [[rprim]] \- normalize the vectors of [[rprim]] to generate the [[acell]]). This is the usual mode for cell shape and volume optimization. It takes into account the symmetry of the system, so that only the effectively relevant degrees of freedom are optimized. + * **optcell** = 3: constant-volume optimization of cell geometry (modify [[acell]] and [[rprim]] under constraint \- normalize the vectors of [[rprim]] to generate the [[acell]]) + * **optcell** = 4, 5 or 6: optimize (both length and angle) the first, second or third vector, respectively (only works if, in the case **optcell**=6, the two other vectors lie in the xy cartesian plane; similarly for **optcell**=4 and **optcell**=5, the two clamped vectors must lie in the yz and xz plane respectively). + * **optcell** = 7, 8 or 9: optimize the cell geometry while keeping the first, second or third vector unchanged (only works if the two other vectors are orthogonal to the one left unchanged, the latter being along its cartesian axis). A few details require attention when performing unit cell optimisation: * one has to get rid of the discontinuities due to discrete changes of plane wave number with cell size, by using a suitable value of [[ecutsm]]; * one has to allow for the possibility of a larger sphere of plane waves, by using [[dilatmx]]; * one might have to adjust the scale of stresses to the scale of forces, by using [[strfact]]. - * if all the reduced coordinates of atoms are fixed by symmetry, one cannot use [[toldff]] to stop the SCF cycle. (Suggestion: use [[toldfe]] with a small value, like 1.0d-10) + * if all the reduced coordinates of atoms are fixed by symmetry, one cannot use [[tolrff]] (or [[toldff]]) to stop the SCF cycle. (Suggestion: use [[tolvrs]] with a small value, like 1.0d-14) It is STRONGLY suggested first to optimize the ionic positions without cell -shape and size optimization ([[optcell]] = 0), then start the cell shape and -size optimization from the cell with relaxed ionic positions. Presently +shape and size optimization (**optcell** = 0), then start the cell shape and +size optimization from the cell with relaxed ionic positions, possibly from the previous dataset, using [[getxred]] or [[getxcart]]. Presently (v3.1), one cannot restart ([[restartxf]]) a calculation with a non-zero -[[optcell]] value from the (x,f) history of another run with a different non- -zero [[optcell]] value. There are still a few problems at that level. +**optcell** value from the (x,f) history of another run with a different non- +zero **optcell** value. There are still a few problems at that level. """, ), @@ -11875,6 +13717,7 @@ dimensions="scalar", defaultval=0, mnemonics="OPTions for the DRIVER", + added_in_version="before_v9", text=r""" For each dataset, choose the task to be done, at the level of the "driver" routine. @@ -11886,15 +13729,17 @@ * 3 --> susceptibility and dielectric matrix calculation (SCR), routine *screening* * 4 --> self-energy calculation (SIG), routine *sigma*. * 5 --> non-linear response functions (NONLINEAR), using the 2n+1 theorem, routine *nonlinear*. - * 7 --> electron-phonon coupling (EPH) + * 6 --> GW real space imaginary time driver (GWR), using the [[cite:Liu2016]] algorithm, routine *gwr_driver*, see [[gwr_task]]. + * 7 --> electron-phonon coupling (EPH), see also [[eph_task]] input variable. * 8 --> Post-processing of WFK file, routine *wfk_analyze*. See also [[wfk_task]] input variable. + * 10 --> longwave response functions (LONGWAVE), routine *longwave*. See also [[lw_flexo]], [[lw_qdrpl]] or [[lw_natopt]] input variables. * 66 --> GW using Lanczos-Sternheimer, see input variables whose name start with `gwls_*`. * 99 --> Bethe-Salpeter calculation (BSE), routine *bethe_salpeter* If one of [[rfphon]], [[rfddk]], [[rfelfd]], or [[rfstrs]] is non-zero, while -[[optdriver]] is not defined in the input file, ABINIT will set [[optdriver]] +**optdriver** is not defined in the input file, ABINIT will set **optdriver** to 1 automatically. These input variables ([[rfphon]], [[rfddk]], [[rfelfd]], -and [[rfstrs]]) must be zero if [[optdriver]] is not set to 1. +and [[rfstrs]]) must be zero if **optdriver** is not set to 1. """, ), @@ -11907,12 +13752,13 @@ defaultval=ValueWithConditions({'[[toldff]] or [[tolrff]] != 0': 1, 'defaultval': 2}), mnemonics="OPTions for the calculation of FORCES", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Allows to choose options for the calculation of forces. - * [[optforces]] = 0: the forces are set to zero, and many steps of the computation of forces are skipped - * [[optforces]] = 1: calculation of forces at each SCF iteration, allowing to use forces as criterion to stop the SCF cycles - * [[optforces]] = 2: calculation of forces at the end of the SCF iterations (like the stresses) + * **optforces** = 0: the forces are set to zero, and many steps of the computation of forces are skipped + * **optforces** = 1: calculation of forces at each SCF iteration, allowing to use forces as criterion to stop the SCF cycles + * **optforces** = 2: calculation of forces at the end of the SCF iterations (like the stresses) """, ), @@ -11925,13 +13771,14 @@ defaultval=1, mnemonics="OPTion for the calculation of Non-Linear eXchange-Correlation Core Correction", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Allows to choose options for the calculation of non-linear XC correction. At present, only relevant for the FHI type of pseudopotentials, with pspcod=6. - * [[optnlxccc]] = 1: uses the old `psp6cc.f` routine, with inconsistent treatment of real-space derivatives of the core + * **optnlxccc** = 1: uses the old `psp6cc.f` routine, with inconsistent treatment of real-space derivatives of the core function (computed in this routine, while splined in the other parts of the code) - * [[optnlxccc]] = 2: consistent calculation derivatives, in the `psp6cc_dhr.f` routine from DHamann. + * **optnlxccc** = 2: consistent calculation derivatives, in the `psp6cc_dhr.f` routine from DHamann. """, ), @@ -11943,6 +13790,7 @@ dimensions="scalar", defaultval=1, mnemonics="OPTion for the computation of STRESS", + added_in_version="before_v9", text=r""" If set to 1, the computation of stresses is done, in the SCF case (under the conditions [[iscf]] > 0, [[prtstm]] == 0, [[positron]] == 0, and either @@ -11955,35 +13803,39 @@ Variable( abivarname="orbmag", - varset="gstate", + varset="dfpt", vartype="integer", - topics=['MagField_expert'], + topics=['NMR_basic','MagField_expert'], dimensions="scalar", defaultval=0, mnemonics="ORBital MAGnetization", characteristics=['[[DEVELOP]]'], requires="""[[usepaw]] == 1; [[usexcnhat]] == 0; -[[nspinor]] == 1; [[paral_atom]] == 0; [[paral_kgb]] == 0; -[[kptopt]] > 2 """, +([[kptopt]] == 3 or [[kptopt]] == 0) """, + added_in_version="before_v9", text=r""" -Compute quantities related to orbital magnetization. The - implementation assumes an insulator, so no empty or partially - filled bands, and currently restricted to [[nspinor]] 1. Such - insulators have orbital magnetization zero, except in the presence - of nonzero nuclear dipole moments, see [[nucdipmom]]. [[orbmag]] - is parallelized over k points only. The implementation follows the - theory outlined in [[cite:Gonze2011a]] extended to the PAW case; - see also [[cite:Ceresoli2006]]. The computed results are returned in the - standard output file, search for "Orbital magnetization" and "Chern number". +Compute quantities related to orbital magnetic moment. Typically used in the +presence of a nonzero nuclear magnetic dipole moment, see [[nucdipmom]], to compute +the nuclear magnetic shielding as measured in NMR. [[orbmag]] +is parallelized over k points only. The implementation follows the +theory outlined in [[cite:Zwanziger2023]]. The computed results are returned in the +standard output file, search for "Orbital magnetic moment". This calculation requires +both the ground state and DDK wavefunctions (see [[rfddk]] or [[berryopt]]). The +preferred way to use [[orbmag]] is at the end of a DFPT DDK calculation. Alternatively, it +can be called in a ground state calculation if [[berryopt]] -2 has also been called, +to generate discretized DDK wavefunctions. This latter method works only on a mesh of +kpoints, while the DFPT version works for both a mesh and for a single k point (as +encountered in studying an atom or molecule in a box, or a pariticularly large unit cell). +Note that convergence with kpt mesh is +*much* faster using the DFPT approach, and the [[berryopt]] approach is not recommended +unless a very specific ground state feature is also needed. -* [[orbmag]] = 1: Compute Chern number [[cite:Ceresoli2006]]. This computation is - faster than the full [[orbmag]] calculation, and a nonzero value indicates a circulating - electronic current. -* [[orbmag]] = 2: Compute electronic orbital magnetization. -* [[orbmag]] = 3: Compute both Chern number and electronic orbital magnetization. +* [[orbmag]] = 1: Compute orbital magnetization and Chern vector +* [[orbmag]] = 2: Same as [[orbmag]] 1 but also print out values of each term making up total +orbital magnetic moment and a band-by-band decomposition. """, ), @@ -11991,11 +13843,12 @@ abivarname="ortalg", varset="dev", vartype="integer", - topics=['TuningSpeed_expert'], + topics=['TuningSpeedMem_expert'], dimensions="scalar", defaultval=ValueWithConditions({'[[wfoptalg]] >= 10 ': -2, 'defaultval': 2}), mnemonics="ORThogonalisation ALGorithm", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Allows to choose the algorithm for orthogonalisation. Positive or zero values make two projections per line minimisation, one before @@ -12004,12 +13857,12 @@ Negative values make only one projection per line minimisation. The orthogonalisation step is twice faster, but the convergence is less good. This actually calls to a better understanding of this effect. -[[ortalg]] = 0, 1 or -1 is the conventional coding. -[[ortalg]] = 2 or -2 try to make better use of existing registers on the +**ortalg** = 0, 1 or -1 is the conventional coding. +**ortalg** = 2 or -2 try to make better use of existing registers on the particular machine one is running. -More demanding use of registers is provided by [[ortalg]] = 3 or -3, and so on. +More demanding use of registers is provided by **ortalg** = 3 or -3, and so on. The maximal value is presently 4 and -4. -Tests have shown that [[ortalg]] = 2 or -2 is suitable for use on the available platforms. +Tests have shown that **ortalg** = 2 or -2 is suitable for use on the available platforms. """, ), @@ -12021,6 +13874,7 @@ dimensions="scalar", defaultval=0, mnemonics="PAPI OPTion", + added_in_version="before_v9", text=r""" [PAPI](http://icl.cs.utk.edu/papi/index.html) aims to provide the tool designer and application engineer with a consistent interface and methodology @@ -12029,7 +13883,7 @@ the relation between software performance and processor events. This option can be used only when ABINIT has been compiled with the ` --enable-papi ` configure option. -If [[papiopt]] = 1, then PAPI counters are used instead of the usual time() +If **papiopt** = 1, then PAPI counters are used instead of the usual time() routine. All the timing output of ABINIT is then done with PAPI values. The measurements are more accurate and give also access to the flops of the calculation. """, @@ -12043,12 +13897,16 @@ dimensions="scalar", defaultval=1, mnemonics="activate PARALelization over (paw) ATOMic sites", + added_in_version="before_v9", text=r""" Relevant only for PAW calculations. This keyword controls the parallel distribution of memory over atomic sites. Calculations are also distributed using the "kpt-band" communicator. -Compatible with ground-state calculations and response function calculations -""", +Compatible with ground-state calculations and response function calculations. + +This parallelization concerns only a small part of the whole calculation in the sequential case. +When using parallelism, it might be that this small part becomes predominant if [[paral_atom]] is not activated. +""" ), Variable( @@ -12059,31 +13917,40 @@ dimensions="scalar", defaultval=0, mnemonics="activate PARALelization over K-point, G-vectors and Bands", + added_in_version="before_v9", text=r""" + +!!! note + + Note that this variable is only used when running **ground-state calculations** in parallel with MPI ([[optdriver]]=1) (or GW Lanczos-Sternheimer [[optdriver]]=66, but this is very rare). + Other [[optdriver]] runlevels implement different MPI algorithms that rely on other input variables that are + not automatically set by [[autoparal]]. For example, consult the [[tutorial:paral_mbt|tutorial on parallelism for Many-Body Perturbation Theory]] to learn how + to run beyond-GS calculations with MPI. Other tutorials on parallelism are also available. + **If paral_kgb is not explicitely put in the input file**, ABINIT automatically detects if the job has been sent in sequential or in parallel. In this last case, it detects the number of processors on which the job has -been sent and calculates values of [[npkpt]], [[npfft]], [[npband]], +been sent and calculates values of [[np_spkpt]], [[npfft]], [[npband]], [[bandpp]], [[npimage]] and [[npspinor]] that are compatible with the number -of processors. It then set paral_kgb to 0 or 1 (see hereunder) and launches the job. +of processors. It then set **paral_kgb** to 0 or 1 (see hereunder) and launches the job. -**If paral_kgb=0**, the parallelization over k-points only is activated. In -this case, [[npkpt]], [[npspinor]], [[npfft]] and [[npband]] are ignored. +**If paral_kgb = 0**, the parallelization over k-points only is activated. In +this case, [[np_spkpt]], [[npspinor]], [[npfft]] and [[npband]] are ignored. Require compilation option --enable-mpi="yes". -**If paral_kgb=1**, the parallelization over bands, FFTs, and k-point/spin- -components is activated (see [[npkpt]], [[npfft]] [[npband]] and eventually +**If paral_kgb = 1**, the parallelization over bands, FFTs, and k-point/spin- +components is activated (see [[np_spkpt]], [[npfft]] [[npband]] and possibly [[npspinor]]). With this parallelization, the work load is split over four levels of parallelization (three level of parallelisation (kpt-band-fft )+ -spin) The different communications almost occur along one dimension only. +spin). The different communications almost occur along one dimension only. Require compilation option --enable-mpi="yes". HOWTO fix the number of processors along one level of parallelisation: At first, try to parallelise over the k point and spin (see -[[npkpt]],[[npspinor]]). Otherwise, for unpolarized calculation at the gamma +[[np_spkpt]],[[npspinor]]). Otherwise, for unpolarized calculation at the gamma point, parallelise over the two other levels: the band and FFT ones. For nproc $\leq$ 50, the best speed-up is achieved for [[npband]] = nproc and [[npfft]] = 1 (which is not yet the default). For nproc $\geq$ 50, the best speed-up is achieved -for [[npband]] $\geq$ 4 $\\times$ [[npfft]]. +for [[npband]] $\geq$ 4 $\times$ [[npfft]]. For additional information, download F. Bottin presentation at the [ABINIT workshop 2007](https://www.abinit.org/sites/default/files/oldsites/workshop_07/program.html) @@ -12092,11 +13959,11 @@ [[cite:Bottin2008]], also available on arXiv, http://arxiv.org/abs/0707.3405. If the total number of processors used is compatible with the four levels of -parallelization, the values for [[npkpt]], [[npspinor]], [[npfft]], [[npband]] +parallelization, the values for [[np_spkpt]], [[npspinor]], [[npfft]], [[npband]] and [[bandpp]] will be filled automatically, although the repartition may not be optimal. To optimize the repartition use: -**If paral_kgb=1** and **max_ncpus = n $\\ne$ 0** ABINIT will test automatically +**If paral_kgb = 1** and **max_ncpus = n $\ne$ 0** ABINIT will test automatically if all the processor numbers between 2 and n are convenient for a parallel calculation and print the possible values in the log file. A weight is attributed to each possible processors repartition. It is adviced to select a @@ -12104,9 +13971,9 @@ processors as possible). The code will then stop after the printing. This test can be done as well with a sequential as with a parallel version of the code. The user can then choose the adequate number of processor on which he can run -his job. He must put again paral_kgb=1 in the input file and put the -corresponding values for [[npkpt]], [[npfft]], [[npband]],[[bandpp]] and -eventually [[npspinor]] in the input file. +his job. He must put again paral_kgb = 1 in the input file and put the +corresponding values for [[np_spkpt]], [[npfft]], [[npband]],[[bandpp]] and +possibly [[npspinor]] in the input file. """, ), @@ -12117,7 +13984,8 @@ topics=['parallelism_basic'], dimensions="scalar", defaultval=0, - mnemonics="activate PARALlelization over Response Function perturbations", + mnemonics="Activate PARALlelization over Response Function perturbations", + added_in_version="before_v9", text=r""" This parameter activates the parallelization over perturbations which can be used during RF-Calculation. It is possible to use this type of parallelization @@ -12126,10 +13994,10 @@ Currently total energies calculated by groups, where the master process is not in, are saved in.status_LOGxxxx files. -If [[paral_rf]] is set to -1, the code reports the list of irreducible +If **paral_rf** is set to -1, the code reports the list of irreducible perturbations for the specified q-point in the log file (YAML format) and then stops. -[[paral_rf]] can be specified separately for each dataset. +**paral_rf** can be specified separately for each dataset. """, ), @@ -12143,6 +14011,7 @@ 'defaultval': 1}), mnemonics="PAW - use ComPleX rhoij OCCupancies", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" The only possible values for [[pawcpxocc]] are 1 or 2. When [[pawcpxocc]] == 1, "direct" decomposition of total energy cannot be @@ -12173,6 +14042,7 @@ defaultval=0, mnemonics="PAW - add CROSS term in oscillator strengths", requires="([[optdriver]] == 3 or [[optdriver]] == 4) and [[usepaw]] == 1", + added_in_version="before_v9", text=r""" When **pawcross=1**, the overlap between the plane-wave part of one band and the on-site part of an other is taken into account in the computation of the @@ -12191,6 +14061,7 @@ characteristics=['[[ENERGY]]'], commentdefault="pawecutdg MUST be specified for PAW calculations.", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" Define the energy cut-off for the fine FFT grid (the "double grid", that allows one to transfer data from the normal, coarse, FFT grid to the spherical @@ -12217,13 +14088,14 @@ abivarname="pawfatbnd", varset="paw", vartype="integer", - topics=['PAW_useful', 'ElecBandStructure_useful'], + topics=['PAW_useful', 'ElecBandStructure_useful', 'AtomCentered_useful'], dimensions="scalar", defaultval=0, mnemonics="PAW: print band structure in the FAT-BaND representation", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" -For Ground-State calculations and non self-consistent calculations only. +For Ground-State calculations using PAW and non self-consistent calculations only. This option can be used to plot band structure. For each atom (specified by [[natsph]] and [[iatsph]]), each angular momentum, and each spin polarisation, the band structure is written in files (such as e.g. @@ -12249,6 +14121,7 @@ defaultval=10, mnemonics="PAW - L angular momentum used to CUT the development in moments of the Densities", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" The expansion of the densities in angular momenta is performed up to l=[[pawlcutd]]. @@ -12272,6 +14145,7 @@ defaultval=10, mnemonics="PAW - maximum L used in the spherical part MIXing", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" The choice made for this variable determine how the spherical part of the density is mixed during electronic iterations. @@ -12293,6 +14167,7 @@ defaultval=ValueWithConditions({'[[npfft]] == 1': 0, 'defaultval': 1}), mnemonics="PAW - MIXing is done (or not) on the (fine) Double Grid", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" The choice made for this variable determines the grid on which the density (or potential) is mixed during the SCF cycle. @@ -12328,6 +14203,7 @@ defaultval=1, mnemonics="PAW - Flag for exact computation of gradients of NHAT density in eXchange-Correlation.", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" Relevant only when a GGA exchange-correlation functional is used. When this flag is activated, the gradients of compensation charge density @@ -12350,6 +14226,7 @@ defaultval=13, mnemonics="PAW - Number of PHI angles used to discretize the sphere around each atom.", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" Number of phi angles (longitude) used to discretize the data on the atomic spheres. This discretization is completely defined by [[pawnphi]] and [[pawntheta]]. @@ -12365,6 +14242,7 @@ defaultval=12, mnemonics="PAW - Number of THETA angles used to discretize the sphere around each atom.", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" Number of theta angles (latitude) used to discretize the data on the atomic spheres. This discretization is completely defined by [[pawntheta]] and [[pawnphi]]. @@ -12380,6 +14258,7 @@ defaultval=1, mnemonics="PAW - only compute Non-Zero LM-moments of the contributions to the density from the spheres", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" Concerns the computation of the contributions to the density from the spheres (named rho_1 - rho_tild_1). @@ -12401,19 +14280,20 @@ defaultval=0, mnemonics="PAW - OPTion for the MIXing of the spherical part", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" In the case of PAW computations, during the self-consistent cycle, ABINIT -mixes the density $\\rho(r)= \\tilde{\\rho}(r) +\\hat{\\rho}(r)$ and the occupancy matrix $\\rho_{ij}$. ($\\tilde{\\rho}(r)$ is -the pseudo density, $\\hat{\\rho}(r)$ is the compensation charge density). It can be -redundant as $\\rho_{ij}$ is contained in $\\hat{\\rho}(r)$. +mixes the density $\rho(r)= \tilde{\rho}(r) +\hat{\rho}(r)$ and the occupancy matrix $\rho_{ij}$. ($\tilde{\rho}(r)$ is +the pseudo density, $\hat{\rho}(r)$ is the compensation charge density). It can be +redundant as $\rho_{ij}$ is contained in $\hat{\rho}(r)$. * If **pawoptmix** =0: -ABINIT mixes $\\rho(r)$ and $\\rho_{ij}$ but the residual used to control the mixing -algorithm is only based on $\\rho(r)$. +ABINIT mixes $\rho(r)$ and $\rho_{ij}$ but the residual used to control the mixing +algorithm is only based on $\rho(r)$. * If **pawoptmix** =1: -ABINIT mixes $\\rho(r)$ and $\\rho_{ij}$ and the residual used to control the mixing -algorithm is based on $\\rho(r)$ and $\\rho_{ij}$. +ABINIT mixes $\rho(r)$ and $\rho_{ij}$ and the residual used to control the mixing +algorithm is based on $\rho(r)$ and $\rho_{ij}$. This has only an influence on the efficiency of the mixing algorithm. In case of mixing problems, the first suggestion is to increase the size of the @@ -12430,6 +14310,7 @@ dimensions="scalar", defaultval=0, mnemonics="PAW - OPTion for the computation of the OSCillator matrix elements", + added_in_version="before_v9", text=r""" Only relevant for GW or Bethe-Salpeter calculations with PAW. This variable defines the approach used for the evaluation of the oscillator @@ -12453,21 +14334,26 @@ defaultval=5.0, mnemonics="PAW - spheres OVerLaP allowed (in percentage)", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" When PAW is activated, a localized atomic basis is added to describe wave functions. Spheres around atoms are defined and they are IN PRINCIPLE not allowed to overlap. However, a small overlap can be allowed without compromising the accuracy of results. Be aware that too high overlaps can lead to unphysical results. -With the [[pawovlp]] variable, the user can control the (voluminal) overlap +With the **pawovlp** variable, the user can control the (voluminal) overlap percentage allowed without stopping the execution. -[[pawovlp]] is the value (in percentage: 0...100%) obtained by dividing the +**pawovlp** is the value (in percentage: 0...100%) obtained by dividing the volume of the overlap of two spheres by the volume of the smallest sphere. -The following values are permitted for [[pawovlp]]: +The following values are permitted for **pawovlp**: + +- **pawovlp** < 0 --> overlap is always allowed +- **pawovlp** = 0 --> no overlap is allowed +- **pawovlp** > 0 and < 100 --> overlap is allowed only if it is less than **pawovlp** % -- [[pawovlp]] < 0 --> overlap is always allowed -- [[pawovlp]] = 0 --> no overlap is allowed -- [[pawovlp]] > 0 and < 100 --> overlap is allowed only if it is less than [[pawovlp]] % +Note that ABINIT will not stop at the first time a too large overlap is identified, in case of [[ionmov]]/=0 +or [[imgmov]]/=0, but only at the second time in the same dataset. Indeed, such trespassing might only be transient. +However, a second trespassing in the same dataset, or if both [[ionmov]]=0 and [[imgmov]]=0, will induce stop. """, ), @@ -12480,6 +14366,7 @@ defaultval=0, mnemonics="PAW PRinT band", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Forces the output of the all-electron wavefunction for only a single band. To be used in conjunction with: [[pawprtwf]] = 1 and [[pawprt_k]]. @@ -12496,6 +14383,7 @@ defaultval=0, mnemonics="PAW PRinT K-point", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Forces the output of the all-electron wavefunction for only a single k-point. To be used in conjunction with: [[pawprtwf]] = 1 and [[pawprt_b]]. @@ -12513,6 +14401,7 @@ defaultval=0, mnemonics="PAW: PRinT total physical electron DENsity", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" **Deprecated:** See the [[prtden]]. """, @@ -12522,20 +14411,21 @@ abivarname="pawprtdos", varset="paw", vartype="integer", - topics=['PAW_useful', 'ElecDOS_useful'], + topics=['PAW_useful', 'ElecDOS_useful', 'AtomCentered_useful'], dimensions="scalar", defaultval=0, mnemonics="PAW: PRinT partial DOS contributions", requires="[[usepaw]] == 1 and [[prtdos]] == 3", + added_in_version="before_v9", text=r""" This input variable controls the computation and/or printing of contributions to the PAW partial DOS in _DOS file(s): * Plane-waves contribution - $+$ "on-site" all-electron contribution ($\\phi$) + $+$ "on-site" all-electron contribution ($\phi$) - $-$ "on-site" pseudo contribution ($\\tilde{\\phi}$). + $-$ "on-site" pseudo contribution ($\tilde{\phi}$). If **pawprtdos=0:** @@ -12564,21 +14454,22 @@ defaultval=0, mnemonics="PAW: PRinT VOLume", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" Control print volume and debugging output for PAW in log file or standard output. If set to 0, the print volume is at its minimum. **pawprtvol** can have values from -3 to 3: -- **pawprtvol** = -1 or 1: matrices $\\rho_{ij}$ (atomic occupancies) and $D_{ij}$ (psp +- **pawprtvol** = -1 or 1: matrices $\rho_{ij}$ (atomic occupancies) and $D_{ij}$ (psp strength) are printed at each SCF cycle with details about their contributions. - **pawprtvol** = -2 or 2: like -1 or 1 plus additional printing: moments of "on-site" densities, details about local exact exchange. - **pawprtvol** = -3 or 3: like -2 or 2 plus additional printing: details about PAW+U, rotation matrices of spherical harmonics. -When **pawprtvol** >= 0, up to 12 components of $\\rho_{ij}$ and $D_{ij}$ matrices for the +When **pawprtvol** >= 0, up to 12 components of $\rho_{ij}$ and $D_{ij}$ matrices for the 1st and last atom are printed. -When **pawprtvol** < 0, all components of $\\rho_{ij}$ and $D_{ij}$ matrices for all atoms are printed. +When **pawprtvol** < 0, all components of $\rho_{ij}$ and $D_{ij}$ matrices for all atoms are printed. """, ), @@ -12591,6 +14482,7 @@ defaultval=0, mnemonics="PAW: PRinT WaveFunctions", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" This input variable controls the output of the **full** PAW wave functions including the on-site contributions inside each PAW sphere needed to @@ -12620,6 +14512,7 @@ defaultval=ValueWithConditions({'[[nspinor]] == 2': 1, 'defaultval': 0}), mnemonics="PAW - option for SPiN-ORBit coupling", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" When PAW is activated, the **spin-orbit coupling** can be added without the use of specific PAW datasets (pseudopotentials). @@ -12631,7 +14524,7 @@ taken into account; this is a very good approximation but requires the following conditions to be fulfilled: -1- the $\\tilde{\\phi}_{i}$ basis is complete enough +1- the $\tilde{\phi}_{i}$ basis is complete enough 2- the electronic density is mainly contained in the PAW sphere @@ -12643,8 +14536,7 @@ spatial symmetries used to generate k-points). Be careful if you choose to use [[kptopt]] = 0 (k-points given by hand); Time- reversal symmetry has to be avoided. -An artificial scaling of the spin-orbit can be introduced thanks to the -[[spnorbscl]] input variable. +An artificial scaling of the spin-orbit can be introduced thanks to the [[spnorbscl]] input variable. """, ), @@ -12657,6 +14549,7 @@ defaultval=1, mnemonics="PAW - option for the STorage of G_l(r).YLM(r)", requires="[[usepaw]] = 1", + added_in_version="before_v9", text=r""" When PAW is activated, the computation of compensation charge density (so called "hat" density) requires the computation of $g_{l}(r).Y_{lm}(r)$ factors (and @@ -12687,6 +14580,7 @@ defaultval=0, mnemonics="PAW - SUSceptibility, inclusion of HAT (compensation charge) contribution", requires="[[usepaw]] == 1 and [[optdriver]] == 0", + added_in_version="before_v9", text=r""" Ground-State calculation only. When a sophisticated preconditioning scheme is selected for the SCF cycle of a @@ -12716,6 +14610,7 @@ mnemonics="PAW+macro_UJ, ATom number", characteristics=['[[DEVELOP]]'], commentdefault=" i.e. the first atom treated with PAW+U.", + added_in_version="before_v9", text=r""" Determines the atom for which U (or J) should be determined. See also [[macro_uj]]. """, @@ -12730,6 +14625,7 @@ defaultval=ValueWithUnit(units='a.u.', value=20), mnemonics="PAW+macro_UJ, sphere RADius", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" The sphere radius serves to extrapolate the U value calculated at r_paw to a larger sphere radius. See also [[macro_uj]]. As most projector functions are @@ -12747,6 +14643,7 @@ defaultval=ValueWithUnit(units='eV', value=0.1), mnemonics="PAW+macro_UJ, potential shift (V)", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Amplitude of the potential shift for the determination of U (or J). See also [[macro_uj]]. """, @@ -12761,13 +14658,18 @@ defaultval=1, mnemonics="PAW - option for the USE of CPrj in memory (cprj=WF projected with NL projector)", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" When PAW is activated, the computation of cprj arrays is memory and time consuming. When [[pawusecp]] = 0, then the cprj are never kept in memory, they are recomputed when needed (this is CPU-time consuming). When [[pawusecp]] = 1, then the cprj are computed once and then kept in memory. Change the value of the keyword only if you are an experienced user (developer). -Remember: $cprj = <\\tilde{\\psi}_{m}.p_{i}>$ ($\\tilde{\\psi}_{n}$=wave function, $p_{i}$=non-local projector). +Remember: + +$$ cprj = \langle\tilde{\psi}_{m}.p_{i} \rangle $$ + +with $\tilde{\psi}_{n}$ is the wave function, and $p_{i}$ the non-local projector. For the time being, only activated for RF calculations. """, @@ -12782,12 +14684,14 @@ defaultval=1, mnemonics="PAW - choice for eXchange-Correlation DEVelopment (spherical part)", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" * If set to 0, the exchange-correlation term in the spherical part of energy is totally computed on the angular mesh (time consuming but exact!) * If set to 1, the exchange-correlation term in the spherical part of energy is developed onto lm-moments at order 1 * If set to 2, the exchange-correlation term in the spherical part of energy is developed onto lm-moments at order 2 Be careful: Response function (DFPT) + PAW + GGA requires [[pawxcdev]] = 0. But if you plan to do DFPT calculations, it is better to use this option also in the preliminary ground state calculation. +However, if [[nspden]] = 4 (non-collinear calculations) with GGA and [[usepawu]]/=0, one needs to use [[pawxcdev]] = 1. """, ), @@ -12799,12 +14703,13 @@ dimensions="scalar", defaultval=2, mnemonics="PHonons: INTegration METHod", + added_in_version="before_v9", text=r""" Select the integration technique for computing the phonon DOS and the Eliashberg function $\alpha^2F(\omega)$. - * 1 --> Gaussian scheme (see also [[ph_smear]]). - * 2 --> tetrahedron method (no other input is needed but requires at least 4 q-points in the BZ) + * 1 --> Gaussian scheme (see also [[ph_smear]] for the broadening). + * 2 --> Tetrahedron method (no other input is needed but at least 4 q-points in the BZ are required). """, ), @@ -12816,6 +14721,7 @@ dimensions="scalar", defaultval=20, mnemonics="PHonons: Number of DIVisions for sampling the SMallest segment", + added_in_version="before_v9", text=r""" This variable is used in conjunction with [[ph_nqpath]] and [[ph_qpath]] to define the q-path used for phonon band structures and phonon linewidths. It @@ -12832,6 +14738,7 @@ dimensions=[3], defaultval=[20, 20, 20], mnemonics="PHonons: Number of Grid points for Q-PoinT mesh.", + added_in_version="before_v9", text=r""" This variable defines the q-mesh used to compute the phonon DOS and the Eliashberg function via Fourier interpolation. @@ -12847,6 +14754,7 @@ dimensions="scalar", defaultval=0, mnemonics="PHonons: Number of Q-points defining the PATH", + added_in_version="before_v9", text=r""" This integer defines the number of points in the [[ph_qpath]] array. """, @@ -12860,6 +14768,7 @@ dimensions="scalar", defaultval=1, mnemonics="PHonons: Number of Q-SHIFTs", + added_in_version="before_v9", text=r""" This variable defines the number of shifts in the q-mesh used for the phonon DOS and for the Eliashberg functions (see [[ph_ngqpt]]). If not given, the @@ -12876,6 +14785,7 @@ defaultval="None", mnemonics="Phonons: Q-PATH", requires="specified([[ph_nqpath]])", + added_in_version="before_v9", text=r""" This array contains the list of special q-points used to construct the q-path used to (Fourier) interpolate phonon band structures and phonon linewidths. @@ -12892,6 +14802,7 @@ defaultval=[0, 0, 0], mnemonics="PHonons: Q-SHIFTs for mesh.", requires="[[ph_nqshift]]", + added_in_version="before_v9", text=r""" This array gives the shifts to be used to construct the q-mesh for computing the phonon DOS and the Eliashberg functions (see also [[ph_nqshift]]). @@ -12909,8 +14820,9 @@ mnemonics="PHonons: SMEARing factor", characteristics=['[[ENERGY]]'], requires="[[ph_intmeth]] == 1", + added_in_version="before_v9", text=r""" -The gaussian broadening used for the integration of the phonon DOS and the +The Gaussian broadening used for the integration of the phonon DOS and the Eliashberg function. See also [[ph_intmeth]] and [[ph_ngqpt]]. """, ), @@ -12922,8 +14834,9 @@ topics=['q-points_useful'], dimensions="scalar", defaultval="0.1 meV", - mnemonics="PHonons: frequency(W) STEP.", + mnemonics="PHonons: frequency(W) STEP.", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" The step used to generate the (linear) frequency mesh for the phonon DOS and the Eliashberg function. The extrema of the mesh are automatically computed by the code. @@ -12939,6 +14852,7 @@ defaultval="[[ntypat]]", mnemonics="Path Integral fictitious MASSes", requires="[[imgmov]] = 9 or 13", + added_in_version="before_v9", text=r""" Only relevant if [[imgmov]] = 9 or 13 (Path-Integral Molecular Dynamics). Gives the fictitious masses ( [[cite:Marx1996]]) in atomic mass units for each kind of atom in cell. These masses are the inertial masses used in performing Path Integral Molecular @@ -12961,6 +14875,7 @@ defaultval=0, mnemonics="Path-Integral Molecular Dynamics: CONSTRAINT to be applied on a reaction coordinate", requires="[[imgmov]] = 9 or 13", + added_in_version="before_v9", text=r""" Only relevant for Path-Integral Molecular Dynamics. Selects a constraint to be applied during the PIMD trajectory. The constraint @@ -12990,6 +14905,7 @@ dimensions="scalar", defaultval=0, mnemonics="Path Integral coordinate TRANSFORMation", + added_in_version="before_v9", text=r""" Only relevant if [[imgmov]] = 9 or 13 (Path-Integral Molecular Dynamics). Coordinate transformation used in the integration of the Path Integral @@ -13015,6 +14931,7 @@ defaultval=0, mnemonics="Projected Local Orbital WANnier functions BAND Final", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the upper band to include in the calculation of Wannier functions @@ -13030,6 +14947,7 @@ defaultval=0, mnemonics="Projected Local Orbital WANnier functions BAND Initial", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the lower band to include in the calculation of Wannier functions """, @@ -13044,6 +14962,7 @@ defaultval=0, mnemonics="Projected Local Orbital WANnier functions COMPUTATION", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Activate computation of Projected Local Orbital Wannier functions (PLO @@ -13073,6 +14992,7 @@ defaultval=0, mnemonics="Projected Local Orbital WANnier functions, Index of ATOM", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the indices of the [[plowan_natom]] atoms on which the projections will be done. @@ -13088,6 +15008,7 @@ defaultval=0, mnemonics="Projected Local Orbital WANnier functions, Index of Translation.", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Requires [[plowan_realspace]] to be greater than 0 and [[plowan_nt]] to be greater than 0. Precise a given set of selected real space translation by @@ -13106,6 +15027,7 @@ defaultval=-1, mnemonics="Projected Local Orbital WANnier functions, L values to use for CALCulation", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the [[plowan_nbl]] values of angular momenta for each atom, in the order of the atoms as given in [[plowan_iatom]]. @@ -13121,6 +15043,7 @@ defaultval=0, mnemonics="Projected Local Orbital WANnier functions, Number of ATOMs", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the number of atoms on which the projection will be done """, @@ -13135,6 +15058,7 @@ defaultval=0, mnemonics="Projected Local Orbital WANnier functions, NumBer of L values", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the total number of angular momenta (over all atoms) to compute the projections. """, @@ -13150,6 +15074,7 @@ mnemonics="""Projected Local Orbital WANnier functions, Number of Translation on which the real space values of energy are computed""", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Requires [[plowan_realspace]] to be greater than 0. Gives a number of selected atoms. These atoms are used to define Wannier functions in real space. These @@ -13166,6 +15091,7 @@ defaultval=-1, mnemonics="Projected Local Orbital WANnier functions, PROJectors values to use for CALCulation", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Gives the [[plowan_nbl]] values of projectors for each atom, in the order of the atoms as given in [[plowan_iatom]]. The index i for the projectors refers @@ -13182,6 +15108,7 @@ defaultval=0, mnemonics="Projected Local Orbital WANnier functions, activate REAL SPACE calculation.", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Can take the following values: @@ -13201,6 +15128,7 @@ dimensions=[3], defaultval=MultipleValue(number=3, value=0), mnemonics="POLarization for CENtrosymmetric geometry", + added_in_version="before_v9", text=r""" When doing a finite electric displacement field calculation, if the structure is centrosymmetric but the polarization is non-zero (such as for AlAs), this @@ -13217,6 +15145,7 @@ dimensions="scalar", defaultval=0, mnemonics="POSitron computation of DOPPLER broadening", + added_in_version="before_v9", text=r""" Relevant only when [[positron]]/=0. This input parameter activates the calculation of the Doppler broadening of @@ -13238,6 +15167,7 @@ dimensions="scalar", defaultval=0, mnemonics="POSITRON calculation", + added_in_version="before_v9", text=r""" This input parameter can be positive or negative. Negative values for [[positron]] are only relevant for PAW calculations. @@ -13373,6 +15303,7 @@ dimensions="scalar", defaultval=50, mnemonics="POSitron calculation: max. Number of STEPs for the two-component DFT", + added_in_version="before_v9", text=r""" Relevant only when [[positron]]<0. Sets the maximum number of electronic/positronic iterations that, when @@ -13392,6 +15323,7 @@ dimensions="scalar", defaultval=1, mnemonics="POSitron calculation: OCCupation number for the positron", + added_in_version="before_v9", text=r""" Relevant only when [[positron]]/=0. Sets the occupation number for the positron. Has to be <=1. @@ -13411,6 +15343,7 @@ defaultval=ValueWithConditions({'[[postoldff]] = 0': 1e-06, 'defaultval': 0.0}), mnemonics="POSitron calculation: TOLerance on the DiFference of total Energy", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Relevant only when [[positron]]<0. Sets a tolerance for absolute difference of total energy (of @@ -13418,8 +15351,7 @@ to stop before the number of steps is [[nstep]] or the number of electronic/positronic steps is [[posnstep]]. -Can be specified in Ha (the default), Ry, eV or Kelvin, since [[postoldfe]] has -the [[ENERGY]] characteristics. +Can be specified in Ha (the default), Ry, eV or Kelvin, since [[postoldfe]] has the [[ENERGY]] characteristics. One and only one of [[postoldfe]] or [[postoldff]] can be set. """, ), @@ -13432,6 +15364,7 @@ dimensions="scalar", defaultval=0, mnemonics="POSitron calculation: TOLerance on the DiFference of Forces", + added_in_version="before_v9", text=r""" Relevant only when [[positron]] < 0. Sets a tolerance for absolute difference of maximum force (in hartree/Bohr) acting on ions (due @@ -13452,11 +15385,14 @@ mnemonics="Plasmon Pole Model FReQuency", characteristics=['[[ENERGY]]'], requires="[[optdriver]] in [3,4]", + added_in_version="before_v9", text=r""" **In plasmon-pole calculations** -Usually only effective if GW corrections are evaluated using the plasmon-pole +Relevant only if GW corrections are evaluated using the plasmon-pole model of Godby-Needs ([[ppmodel]] == 1). +The default value is automatically replaced by the Drude plasma frequency, +computed from the valence charge density (echoed in the main output file as omega_plasma).. In the present status of the GW code, the convolution in frequency space defining the self-energy operator can be evaluated using two different @@ -13469,7 +15405,7 @@ screened interaction through simple analytical expressions, the so-called plasmon-pole models. In the plasmon-pole model proposed by Godby-Needs ([[ppmodel]] = 1), the screening must be available at zero frequency, as well as -at another imaginary frequency, of the order of the plasmon frequency (the +at another imaginary frequency, on the order of the plasmon frequency (the peak in the EELS spectrum). This information is used to model the behaviour of the dielectric matrix for all frequencies. During the calculation of the screening, [[ppmfrq]] defines the imaginary frequency where the dielectric @@ -13502,28 +15438,80 @@ defaultval=1, mnemonics="Plasmon Pole MODEL", requires="[[optdriver]] in [3,4]", + added_in_version="before_v9", text=r""" - * [[ppmodel]] = 1: PP model of Godby and Needs [[cite:Godby1989]]. - * [[ppmodel]] = 2: PP model of Hybertsen and Louie [[cite:Hybertsen1986]]. - * [[ppmodel]] = 3: PP model of W. von der Linden and P. Horsh [[cite:vonderLinden1988]]. - * [[ppmodel]] = 4: PP model of Farid and Engel [[cite:Engel1993]]. - * [[ppmodel]] = 0: no PP model, numerical integration (contour deformation method [[cite:Lebegue2003]]). + * **ppmodel** = 1: PP model of Godby and Needs [[cite:Godby1989]]. + * **ppmodel** = 2: PP model of Hybertsen and Louie [[cite:Hybertsen1986]]. + * **ppmodel** = 3: PP model of W. von der Linden and P. Horsh [[cite:VonDerLinden1988]]. + * **ppmodel** = 4: PP model of Farid and Engel [[cite:Engel1993]]. + * **ppmodel** = 0: no PP model, numerical integration (contour deformation method [[cite:Lebegue2003]]). -Please note the difference between [[ppmodel]] 1 and [[ppmodel]] 2,3,4. In the -first case ([[ppmodel]] = 1), the plasmon-pole parameters are determined in +Please note the difference between **ppmodel** 1 and **ppmodel** 2,3,4. In the +first case (**ppmodel** = 1), the plasmon-pole parameters are determined in order to reproduce the behaviour of the dielectric matrix at two calculated frequencies: the static limit ($\omega=0$) and the imaginary frequency defined by [[ppmfrq]]. In the last three cases, instead, the plasmon-pole parameters are found by using the dielectric matrix calculated only at $\omega=0$ and enforcing the so-called f-sum rule. See also [[nfreqre]]. -Please note also that in the case of [[ppmodel]] 4, the plasmon energies are +Please note also that in the case of **ppmodel** 4, the plasmon energies are not simple mathematical parameters, but rather have a physical meaning (at least the lowest ones). Thus the calculated plasmon band structure (plasmon energy vs q vector) is reported in the output file for the lowest 10 bands. """, ), + +Variable( + abivarname="prepalw", + varset="dfpt", + vartype="integer", + topics=['longwave_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="PREPAre LongWave calculation", + characteristics=['[[DEVELOP]]'], + added_in_version="v9", + text=r""" +The computation of spatial-dispersion quantities from the longwave DFPT +approach requires the first-order wavefunctions and densities obtained from +a linear response calculation. The standard approach in a linear response calculation is: + + * compute only the irreducible perturbations; + * use symmetries to reduce the number of k-points for the k-point integration. + +This approach cannot be applied, presently (v9.x), if the first-order +wavefunctions are to be used to compute spatial dispersion properties. +During the linear response calculation, in order to prepare a longwave +calculation, one should use [[prepalw]] /= 0 in order to force ABINIT to keep +the full number of k-points in half the BZ (kptopt=2), or the full BZ (kptopt=3). +Different options can then be used to set the reducible perturbations that +are enforced to be explicitly calculated: + + * 1 --> Activates the calculation of perturbations required to build spatial- + dispersion tensors which depend on strain. It is therefore the option + to choose if one intends to run subsequent longwave calculations with + [[lw_flexo]] = 1, 2, or 4. + + * 2 --> Activates the calculation of perturbations required to build spatial- + dispersion tensors which combine electric field and atomic displacement + perturbations. It is therefore the option to choose if one intends to + run subsequent longwave calculations with [[lw_qdrpl]] = 1. + + * 3 --> Activates the calculation of perturbations required to build spatial- + dispersion tensors which combine electric field and atomic displacement + perturbations as well as two atomic displacements. It is therefore the + option to choose if one intends to run subsequent longwave calculations + with [[lw_flexo]] = 3. + + * 4 --> Activates the calculation of perturbations required to build spatial- + dispersion tensors which combine two electric field perturbations. + It is therefore the option to choose if one intends to run subsequent + longwave calculations with [[lw_natopt]] = 1. +""", +), + + Variable( abivarname="prepanl", varset="dfpt", @@ -13532,6 +15520,7 @@ dimensions="scalar", defaultval=0, mnemonics="PREPAre Non-Linear response calculation", + added_in_version="before_v9", text=r""" The computation of third-order derivatives from the 2n+1 theorem requires the first-order wavefunctions and densities obtained from a linear response @@ -13565,6 +15554,7 @@ dimensions="scalar", defaultval=0, mnemonics="PREPAre GKK calculation", + added_in_version="before_v9", text=r""" The calculation of electron-phonon coupling quantities requires the presence of all the perturbations (all atoms in all directions) for the chosen set of @@ -13583,6 +15573,7 @@ defaultval=0, mnemonics="PREPare Self-Consistent PHONon calculation", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Print PCINFO, PHFREQ, and PHVEC files, for use with self-consistent phonon runs, after a perturbation calculation. Only prints out files for the present @@ -13600,6 +15591,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT 1-DiMensional potential and density", + added_in_version="before_v9", text=r""" If set >= 1, provide one-dimensional projection of potential and density, for each of the three axis. This corresponds to averaging the potential or the @@ -13616,6 +15608,7 @@ defaultval=0, mnemonics="PRinT by ATom LIST of ATom", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" This is an array of the numbers associated to the index atoms that the user want to print in the output or log files, this is useful when you have a large @@ -13634,6 +15627,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT Band-By-Band decomposition", + added_in_version="before_v9", text=r""" If [[prtbbb]] is 1, print the band-by-band decomposition of Born effective charges and localization tensor, in case they are computed. See [[cite:Ghosez2000]]. @@ -13649,6 +15643,7 @@ defaultval=0, mnemonics="PRinT output for BoLTZTRaP code", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Print out geometry _BLZTRP_GEOM and eigenenergy _BLZTRP_EIGEN files for the [BoltzTraP code](https://www.imc.tuwien.ac.at/forschungsbereich_theoretische_chemie/forschungsgruppen/prof_dr_gkh_madsen_theoretical_materials_chemistry/boltztrap/) by Georg Madsen. @@ -13664,12 +15659,44 @@ defaultval=0, mnemonics="PRinT Crystallographic Information File", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" If set to 1, a CIF file is output with the crystallographic data for the present run (cell size shape and atomic positions). """, ), +Variable( + abivarname="prtchkprdm", + varset="files", + vartype="integer", + topics=['GW_expert', 'SelfEnergy_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Integer that governs PrinTing of CHecK-Point files for the GW 1-RDM", + requires="[[optdriver]] == 4", + added_in_version="9.4.0", + text=r""" +[[prtchkprdm]]==1 triggers the priting of binary checkpoint files when updating the density matrix for the the linearized GW approximation. +It is only meaningful when [[gw1rdm]]>0. The files that are printed use the usual ABINIT output files naming convention with extension _CHKP_RDM_1. +""", +), + +Variable( + abivarname="prtddb", + varset="files", + vartype="integer", + topics=['printing_prgs'], + dimensions="scalar", + defaultval=1, + mnemonics="PRinT the Derivative Data Base file", + added_in_version="9.11.0", + text=r""" +If set to 1, ABINIT will produce a DDB file. +""", +), + + Variable( abivarname="prtden", varset="files", @@ -13678,6 +15705,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[nimage]] > 1': 0, 'defaultval': 1}), mnemonics="PRinT the DENsity", + added_in_version="before_v9", text=r""" If set to 1 or a larger value, provide output of electron density in real space rho(r), in units of electrons/Bohr^3. @@ -13757,6 +15785,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'defaultval': 1}), mnemonics="PRinT integral of DENsity inside atomic SPHeres", + added_in_version="before_v9", text=r""" When this flag is activated, values of integral(s) of total density inside sphere(s) around each atom are printed in output file (for each spin @@ -13785,6 +15814,7 @@ defaultval=0, mnemonics="PRinT DIPOLE", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Print out dipole of unit cell, calculated in real space for the primitive cell only. Under development. @@ -13795,16 +15825,19 @@ abivarname="prtdos", varset="files", vartype="integer", - topics=['printing_prdos', 'ElecDOS_basic'], + topics=['printing_prdos', 'ElecDOS_basic', 'AtomCentered_useful'], dimensions="scalar", defaultval=0, mnemonics="PRinT the Density Of States", + added_in_version="before_v9", text=r""" -Provide output of Density of States if set to 1, 2 or 3. Can either use a -smearing technique ([[prtdos]] = 1), or the tetrahedron method ([[prtdos]] = 2). -If [[prtdos]] = 3, provide output of Local Density of States inside a sphere -centered on an atom, as well as the angular-momentum projected DOS, in the -same sphere. The resolution of the linear grid of energies for which the DOS +Provide output of Density of States if set to 1...5. Can either use a +smearing technique ([[prtdos]] = 1 or 4), or the tetrahedron method ([[prtdos]] = 2, 3 or 5). +If [[prtdos]] = 3 or 4, provide output of angular-momentum projected Local Density of States inside a sphere +centered on different atoms (all or only those specified by [[iatsph]]), +and possibly output m-decomposed LDOS if [[prtdosm]] is defined. + +The resolution of the linear grid of energies for which the DOS is computed can be tuned thanks to [[dosdeltae]]. If [[prtdos]] = 1, the smeared density of states is obtained from the @@ -13849,8 +15882,8 @@ * then followed by _DOS. If [[prtdos]] = 3, the same tetrahedron method as for [[prtdos]] = 2 is used, but -the DOS inside a sphere centered on some atom is delivered, as well as the -angular-momentum projected (l=0,1,2,3,4) DOS in the same sphere. The +the angular-momentum projected (l=0,1,2,3,4) DOS in sphere centered on the atoms +is computed (not directly the total atom-centered DOS). The preparation of this case, the parameters under which the computation is to be done, and the file denomination is similar to the [[prtdos]] = 2 case. However, three additional input variables might be provided, describing the atoms that @@ -13860,19 +15893,14 @@ radius of the atom types considered (which is read from the PAW atomic data file; see rc_sph or r_paw). Additionally, printing and/or approximations in PAW mode can be controlled with [[pawprtdos]] keyword (in -particular,[[pawprtdos]] = 2 can be used to compute quickly a very good +particular, [[pawprtdos]] = 2 can be used to compute quickly a very good approximation of the DOS). - * Note 1: when [[prtdos]] = 3, it is possible to output m-decomposed LDOS in _DOS -file; simply use [[prtdosm]] keyword. - * Note 2: the integrated total DOS in spheres around atoms can be obtained when -[[prtdensph]] flag is activated. It can be compared to the integrated DOS -provided in _DOS file when [[prtdos]] = 3. - -[[prtdos]] = 4 delivers the sphere-projected DOS (like [[prtdos]] = 3), on the -basis of a smearing approach (like [[prtdos]] = 1) +If [[prtdos]] = 4, delivers the sphere-projected DOS (like [[prtdos]] = 3), on the +basis of a smearing approach (like [[prtdos]] = 1). See (like [[prtdos]] = 1 +for the additional input variables to be specified. -[[prtdos]] = 5 delivers the spin-spin DOS in the [[nspinor]] == 2 case, using the +If [[prtdos]] = 5, delivers the spin-spin DOS in the [[nspinor]] == 2 case, using the tetrahedron method (as [[prtdos]] = 2). """, ), @@ -13881,20 +15909,21 @@ abivarname="prtdosm", varset="files", vartype="integer", - topics=['printing_prdos', 'ElecDOS_basic'], + topics=['printing_prdos', 'ElecDOS_basic', 'AtomCentered_useful'], dimensions="scalar", defaultval=0, mnemonics="PRinT the Density Of States with M decomposition", + added_in_version="before_v9", text=r""" Relevant only when [[prtdos]] = 3. If set to 1, the m-decomposed LDOS is delivered in DOS file. Note that [[prtdosm]] computes the M-resolved partial dos for complex spherical harmonics,giving e.g. DOS(L,M) == DOS(L,-M) (without spin-orbit). In -the contrary, the LDA+U occupation matrix, see [[dmatpawu]] is in the real +the contrary, the DFT+U occupation matrix, see [[dmatpawu]] is in the real spherical harmonics basis. If set to 2, the m-decomposed LDOS is delivered in DOS file. In this case, [[prtdosm]] computes the M-resolved partial dos for real -spherical harmonics in the same basis as the LDA+U occupation matrix. +spherical harmonics in the same basis as the DFT+U occupation matrix. """, ), @@ -13906,6 +15935,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[nimage]] > 1': 0, 'defaultval': 1}), mnemonics="PRinT Electron BANDS", + added_in_version="before_v9", text=r""" This option activates the output of the electron eigenvalues. Possible values: @@ -13917,30 +15947,6 @@ """, ), -Variable( - abivarname="prtefg", - varset="paw", - vartype="integer", - topics=['printing_prngs', 'EFG_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="PRint Electric Field Gradient", - requires="[[usepaw]] == 1, [[quadmom]]", - text=r""" -If nonzero, calculate the electric field gradient at each atomic site in the unit cell. -Using this option requires [[quadmom]] to be set as well. -Values will be written to main output file (search for Electric Field Gradient). -If prtefg=1, only the quadrupole coupling in MHz and asymmetry are reported. -If prtefg=2, the full electric field gradient tensors in atomic units are also given, -showing separate contributions from the valence electrons, the ion cores, and the PAW reconstruction. -If prtefg=3, then in addition to the prtefg=2 output, the EFGs are computed using an ionic point charge model. -This is useful for comparing the accurate PAW-based results to those of simple ion-only models. -Use of prtefg=3 requires that the variable [[ptcharge]] be set as well. -The option prtefg is compatible with spin polarized calculations (see -[[nspden]]) and also LDA+U (see [[usepawu]]). -""", -), - Variable( abivarname="prtefmas", varset="dfpt", @@ -13950,6 +15956,7 @@ defaultval=1, mnemonics="PRint EFfective MASs data", requires="[[efmas]] == 1", + added_in_version="before_v9", text=r""" If 1, at the end of an effective mass calculation ([[efmas]] = 1), create a file *_EFMAS, that contains the generalized second-order k-derivatives, see Eq.(66) in [[cite:Laflamme2016]], @@ -13965,8 +15972,19 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[nimage]] > 1': 0, 'defaultval': 1}), mnemonics="PRinT EIGenenergies", + added_in_version="before_v9", text=r""" If set to 1, a file *_EIG, containing the k-points and one-electron eigenvalues is printed. + +If set to 2, with [[ionmov]] /= 0, eigenenergies file will be output at each time step, with +the name being made of + + * the root output name, + * followed by _TIMx, where x is related to the time step (see later) + * then followed by _EIG. + +The file structure of this unformatted output file is described in [[help:abinit#localpotfile|this section]]. +No output is provided by a negative value of this variable. """, ), @@ -13978,6 +15996,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT Electron Localization Function (ELF)", + added_in_version="before_v9", text=r""" If set to 1 or a larger value, provide output of ELF in real space elf(r). This is a dimensionless quantity bounded between 0 and 1. @@ -14004,19 +16023,20 @@ ), Variable( - abivarname="prtfc", - varset="paw", + abivarname="prtevk", + varset="files", vartype="integer", - topics=['printing_prden', 'EFG_basic'], + topics=['printing_prgs'], dimensions="scalar", defaultval=0, - mnemonics="PRinT Fermi Contact term", - requires="[[usepaw]] == 1", + mnemonics="PRinT EVK", + added_in_version="9.11.0", text=r""" - * If set to 1, print the Fermi contact interaction at each nuclear site, that is, the electron density at each site. The result appears in the main output file (search for FC). Note that this calculation is different than what is done by cut3d, because it also computes the PAW on-site corrections in addition to the contribution from the valence pseudo-wavefunctions. + If set to 1, ABINIT will produce a netCDF EVK file. """, ), + Variable( abivarname="prtfull1wf", varset="dfpt", @@ -14025,6 +16045,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT FULL 1st-order WaveFunction", + added_in_version="before_v9", text=r""" If set to 1, the output _1WF files will contain the full 1st-order wavefunctions, for both valence and conduction bands. Otherwise, the _1WF files are not really 1st-order perturbed wavefunctions, but merely a set of perturbed wavefunctions that yield the correct perturbed density. @@ -14040,6 +16061,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT Fermi SURFace file", + added_in_version="before_v9", text=r""" If set to 1, provide Fermi surface file in the BXSF format (Xcrysden) If [[prtfsurf]] = 1, a _BXSF file readable by [XCrySDen](http://www.xcrysden.org) @@ -14064,6 +16086,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT the Gradient of electron DENsity", + added_in_version="before_v9", text=r""" If set to 1 or a larger value, provide output of gradient of electron density in real space grho(r), in units of Bohr^-(5/2). @@ -14082,8 +16105,9 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT the GEOmetry analysis", + added_in_version="before_v9", text=r""" -If set to 1 or a larger value, provide output of geometrical analysis (bond +If set to 1 or a larger value, provide output of geometry analysis (bond lengths and bond angles). The value of [[prtgeo]] is taken by the code to be the maximum coordination number of atoms in the system. It will deduce a maximum number of "nearest" and "next-nearest" neighbors @@ -14111,12 +16135,14 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT the GKK matrix elements file", + added_in_version="before_v9", text=r""" If set to 1, provide output of electron-phonon "gkk" matrix elements, for further treatment by mrggkk utility or anaddb utility. Note that symmetry will be disabled for the calculation of the perturbation, forcing the inclusion of all k-points and all perturbation directions. Additional information on -electron-phonon treatment in ABINIT is given in the tutorial [[tutorial:eph]]. +electron-phonon treatment in ABINIT is given in the tutorial [[tutorial:eph_intro]] and subsequent ones, [[tutorial:eph4mob]] +and [[tutorial:eph4zpr]]. """, ), @@ -14126,16 +16152,33 @@ vartype="integer", topics=['printing_prgs'], dimensions="scalar", - defaultval="prtgsr = 0", + defaultval=ValueWithConditions({'[[nimage]] > 1': 0, 'defaultval': 1}), mnemonics="PRinT the GSR file", + added_in_version="before_v9", text=r""" If set to 1, ABINIT will produce a GSR file at the end of the GS calculation. The GSR file contains the most important GS results (band structure, forces, stresses, electronic density). The GSR file can be read by AbiPy and used for further post-processing. -Note that, by default, the GSR file contains the electronic density unless [[prtden]] is set to 0. """, ), +Variable( + abivarname="prthist", + varset="files", + vartype="integer", + topics=['printing_prgs'], + dimensions="scalar", + defaultval=1, + mnemonics="PRinT the HISTory file", + added_in_version="9.11.0", + text=r""" +If set to 1, ABINIT will produce a HIST file. The HIST file contains the history +of structural relaxations or molecular dynamics calculations. This file can be +used to restart the calculation or to analyze the results at the end of calculation. +""", +), + + Variable( abivarname="prtkden", varset="files", @@ -14144,16 +16187,15 @@ dimensions="scalar", defaultval="1 if [[usekden]] == 1 and [[nimage]] == 1 else 0", mnemonics="PRinT the Kinetic energy DENsity", + added_in_version="before_v9", text=r""" If set to 1 or a larger value, provide output of kinetic energy density in real space tau(r), in units of Bohr^-5. The name of the kinetic energy density file will be the root output name, followed by _KDEN. Like a _DEN file, it can be analyzed by cut3d. The file structure of this unformatted output file is described in [[help:abinit#denfile|this section]]. -Note that the computation of the kinetic energy density must be activate, +Note that the computation of the kinetic energy density must be activated, thanks to the input variable [[usekden]]. -Please note that kinetic energy density is **not** yet implemented in the case -of PAW ([[usepaw]] = 1) calculations. """, ), @@ -14165,6 +16207,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT the K-PoinTs sets", + added_in_version="before_v9", text=r""" If set /= 0, proceeds to a detailed analysis of different k point grids. Works only if [[kptopt]] is positive, and neither [[kptrlatt]] nor [[ngkpt]] @@ -14202,6 +16245,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT the Laplacian of electron DENsity", + added_in_version="before_v9", text=r""" If set to 1 or a larger value, provide output of Laplacian of electron density in real space grho(r), in units of Bohr^-(7/2). @@ -14220,6 +16264,7 @@ defaultval=0, mnemonics="PRint NABLA", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" * If set to 1, calculate the matrix elements and write it in file _OPT to be read by the code conducti (see [[cite:Mazevet2010]]). """, @@ -14227,17 +16272,25 @@ Variable( abivarname="prtnest", - varset="dev", + varset="eph", vartype="integer", topics=['printing_prfermi'], dimensions="scalar", defaultval=0, mnemonics="PRinT NESTing function", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" -If set to 1, the nesting function for the k-point grid is printed. For the -moment the path in q space for the nesting function is fixed, but will become -an input as well. +Same meaning as [[prtnest@anaddb]]. +The only difference with respect to the anaddb version is that the path in q-space +must be specified in terms of [[ph_qpath]] and [[ph_nqpath]]. + +By default, the nesting factor is computed using the Fermi level obtained in the GS run. +In order to shift the Fermi level, use [[fermie_nest]]. +Note that, for the time being, the implementation is not compatible with [[nshiftk]] > 1. + +[[prtnest]] can be used either in the GS part or in the EPH code [[optdriver]] == 7 (possibly with +[[eph_task]] = 0). """, ), @@ -14249,6 +16302,7 @@ dimensions="scalar", defaultval=1, mnemonics="PRinT PHonon BANDS", + added_in_version="before_v9", text=r""" This option activates the output of the phonon frequencies in the EPH code. Possible values: @@ -14271,6 +16325,7 @@ defaultval=1, mnemonics="PRinT the PHonon Density Of States", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Print the phonon density of states. It is activated by default when [[optdriver]] == 7. @@ -14287,6 +16342,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT PHonon iso-SURFace", + added_in_version="before_v9", text=r""" Print a bxsf file (Xcrysden format) with the (interpolated) phonon frequencies computed of the q-mesh determined by [[ph_ngqpt]]. The file can be use to @@ -14305,11 +16361,14 @@ defaultval=0, mnemonics="PRinT POSCAR file", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Print out VASP-style POSCAR and FORCES files, for use with PHON or frophon codes for frozen phonon calculations. See the associated script in -{% modal ../scripts/post_processing/phondisp2abi.py %} for further details on -interfacing with PHON, PHONOPY, etc... + +{% dialog ../scripts/post_processing/phondisp2abi.py %} + +for further details on interfacing with PHON, PHONOPY, etc... """, ), @@ -14321,6 +16380,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT total POTential", + added_in_version="before_v9", text=r""" If set >=1, provide output of the total (Kohn-Sham) potential (sum of local pseudo-potential, Hartree potential, and xc potential). @@ -14336,6 +16396,29 @@ The file structure of this unformatted output file is described in [[help:abinit#localpotfile|this section]]. No output is provided by a negative value of this variable. + +NB: In DFPT calculations, prtpot is automatically set to 1 as the POT files might be used to perform EPH calculations +unless the user explictly sets prtpot to 0 in the input file. +""", +), + +Variable( + abivarname="prtprocar", + varset="dev", + vartype="integer", + topics=['printing_prgs'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT PROCAR file", + characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", + text=r""" +Print out VASP-style PROCAR files, to generate "fat band" structures, where the +thickness is proportional to the atomic and angular momentum character. Used in +particular with the [pyprocar](https://github.com/romerogroup/pyprocar) +package. The same fractions are used as with [[prtdos]] 3, but output in the +VASP format. Attempts have been made to support spin polarized and spinor +calculations, but there may be subtle inconsistencies. """, ), @@ -14347,6 +16430,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRint the PSPS file", + added_in_version="before_v9", text=r""" If set to 1, the code produces a netcdf file (PSPS.nc) with the internal tables used by Abinit to apply the pseudopotential part of the KS Hamiltonian. @@ -14363,6 +16447,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT the SPin CURrent density", + added_in_version="before_v9", text=r""" If set to 1 or a larger value, provide output of the current density of different direction spins (x,y,z) in the whole unit cell. Should require @@ -14378,12 +16463,23 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT the STM density", + added_in_version="before_v9", text=r""" -If set to 1 or a larger value, provide output of the electron density in real +If set to 1, provide output of the electron density in real space rho(r), made only from the electrons close to the Fermi energy, in a range of energy (positive or negative), determined by the (positive or negative, but non-zero) value of the STM bias [[stmbias]]. -This is a very approximate way to obtain STM profiles: one can choose an + +Specifying a non-zero negative value is also allowed, and will produce also +the output of an electron density in real space, like the above, but moreover +will additionally filter it to have the contribution of one band only, +whose number is the absolute value of [[prtstm]]. Obviously abs([[prtstm]]) +must be smaller or equal to [[nband]]. +This allow one to perform a detailed band-by-band +analysis. + +The electron density obtained from [[prtstm]]=1, +is a very approximate way to obtain STM profiles: one can choose an equidensity surface, and consider that the STM tip will follow this surface. Such equidensity surface might be determined with the help of Cut3D, and further post-processing of it (to be implemented). The big approximations of @@ -14392,11 +16488,13 @@ The charge density is provided in units of electrons/Bohr^3. The name of the STM density file will be the root output name, followed by _STM. Like a _DEN file, it can be analyzed by cut3d. + The file structure of this unformatted output file is described in [[help:abinit#denfile|this section]]. For the STM charge density to be generated, one must give, as an input file, the converged wavefunctions obtained from a previous run, at exactly the same k-points and cut-off energy, self-consistently determined, using the occupation numbers from [[occopt]] = 7. + In the run with positive [[prtstm]], one has to use: * positive [[iscf]] @@ -14410,7 +16508,6 @@ treatment of unoccupied states, because the automatic determination of [[nband]] will often not include enough unoccupied states. When [[prtstm]] is non-zero, the stress tensor is set to zero. -No output of _STM file is provided by [[prtstm]] lower or equal to 0. No other printing variables for density or potentials should be activated (e.g. [[prtden]] has to be set to zero). """, @@ -14424,6 +16521,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT the SUSCEPtibility file (the irreducible polarizability)", + added_in_version="before_v9", text=r""" If set to 0, no _SUSC file will be produced after the screening calculation, only the _SCR file will be output. @@ -14438,6 +16536,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT V CouLoMB", + added_in_version="before_v9", text=r""" If set >= 0 outputs a file with the Coulomb potential, defined as Hartree + local Pseudopotential. @@ -14458,6 +16557,7 @@ defaultval=0, mnemonics="PRinT Van Der Waals file", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Print out a NetCDF file containing a vdW-DF kernel. """, @@ -14471,6 +16571,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT V_HArtree", + added_in_version="before_v9", text=r""" If set >=1, provide output of the Hartree potential. @@ -14496,6 +16597,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT V_HXC", + added_in_version="before_v9", text=r""" If set >=1, provide output of the sum of the Hartree potential and xc potential. @@ -14521,6 +16623,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT VOLume", + added_in_version="before_v9", text=r""" Control the volume of printed output. In particular, this concerns the explicit echo of eigenenergies and residuals for all bands and k points in the @@ -14564,6 +16667,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT VOLume for IMaGes", + added_in_version="before_v9", text=r""" Control the volume of printed output when an algorithm using images of the cell is used ([[nimage]] > 1). @@ -14585,6 +16689,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT V_PSeudoPotential", + added_in_version="before_v9", text=r""" If set >=1, provide output of the local pseudo potential. @@ -14608,6 +16713,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT V_XC", + added_in_version="before_v9", text=r""" If set >=1, provide output of the exchange-correlation potential. @@ -14633,6 +16739,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT WANT file", + added_in_version="before_v9", text=r""" Flag used to indicate that either the Wannier90 or the WanT interfaces will be used. @@ -14647,19 +16754,19 @@ Notes: Several requirements must be fulfilled by the wavefunction. Among them, two are mandatory: - * 1. An uniform grid of k-points, including the GAMMA point must be used. - * 2. The use of time reversal symmetry is not allowed (istwfk=1) - * 3. The list of k-points must be ordered, such that the coordinates, namely - three-components vectors has the third index varying the most rapidly, then the second index, then the first index +* An uniform grid of k-points, including the GAMMA point must be used. +* The use of time reversal symmetry is not allowed (istwfk=1) +* The list of k-points must be ordered, such that the coordinates, namely + three-components vectors has the third index varying the most rapidly, then the second index, then the first index -If these requirement are not fulfilled, the program will stop and an error -message is returned. +If these requirement are not fulfilled, the program will stop and an error message is returned. As an example of k-point grid in case of systems that have some 3D character (1D systems are easy): nkpt 8 - kpt 0 0 0 + kpt + 0 0 0 0 0 1/2 0 1/2 0 0 1/2 1/2 @@ -14667,7 +16774,7 @@ 1/2 0 1/2 1/2 1/2 0 1/2 1/2 1/2 - istwfk 8*1 + istwfk *1 Also, in order to use WanT as a post-processing program for ABINIT you might have to recompile it with the appropriate flags (see ABINIT makefile). Up to @@ -14694,7 +16801,7 @@ !!! Notes - * An input file of LDA wave functions is required which is completely consistent with the _KSS file used in the self-consistent GW calculation. This means that [[kssform]] 3 must be used to create the _KSS file and the output _WFK file from the same run must be used as input here. + * An input file of DFT wave functions is required which is completely consistent with the _KSS file used in the self-consistent GW calculation. This means that [[kssform]] 3 must be used to create the _KSS file and the output _WFK file from the same run must be used as input here. * Wannier90 requires [[nshiftk]] = 1, and [[shiftk]] = 0 0 0 is recommended. The k-point set used for the GW calculation, typically the irreducible BZ set created using [[kptopt]] = 1, and that for the Abinit- Wannier90 interface must be consistent. * Full-BZ wavefunctions should be generated in the run calling the interface by setting [[kptopt]] = 3, [[iscf]] = -2, and [[nstep]] = 3. This will simply use symmetry to transform the input IBZ wavefunctions to the full BZ set, still consistent with the GW _KSS input. * The final _QPS file created by the self-consistent GW run is required as input. @@ -14710,6 +16817,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'[[nimage]] > 1': 0, 'defaultval': 1}), mnemonics="PRinT the WaveFunction", + added_in_version="before_v9", text=r""" If [[prtwf]] = 1, provide output of wavefunction and eigenvalue file The file structure of this unformatted output file is described in [[help:abinit#wfkfile|this section]]. @@ -14718,11 +16826,12 @@ will be followed by _WFQ. For response-function calculations, the root name will be followed by _1WFx, where x is the number of the perturbation. The dataset information will be added as well, if relevant. -No wavefunction output is provided by [[prtwf]] = 0. + +If [[prtwf]] = 0, no wavefunction output is provided. + If [[prtwf]] = -1, the code writes the wavefunction file only if convergence is not achieved in the self-consistent cycle. - If [[prtwf]] = 2, a file pwfn.data is produced, to be used as input for the CASINO QMC code. See more explanation at the end of this section. If [[prtwf]] = 3, the file that is created is nearly the same as with @@ -14733,6 +16842,8 @@ number of conduction bands, so that the DDK file might be huge if it contains the wavefunctions. +If [[tfkinfunc]]=2, [[prtwf]]=0 is enforced. + Further explanation for the [[prtwf]] = 2 case. To produce a wave function suitable for use as a CASINO trial wave function, certain ABINIT parameters must be set correctly. Primarily, CASINO (and QMC methods generally) can only @@ -14802,6 +16913,7 @@ defaultval=0, mnemonics="PRinT Wavefunction file on the FULL mesh", requires="[[prtwf]] == 1", + added_in_version="before_v9", text=r""" If set to 1 in a ground-state calculation, the code will output another WFK file (with extension FULL_WFK) containing the wavefunctions in the full BZ as @@ -14813,6 +16925,23 @@ """, ), +Variable( + abivarname="prt_lorbmag", + varset="gstate", + vartype="integer", + topics=['printing_prden', 'AtomCentered_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT L ORBital MAGnetic moment inside PAW spheres", + requires="[[nspden]] == 4 and [[usepaw]] == 1 and [[usepawu]] != 0", + added_in_version="v9", + text=r""" +If set to 1, prints in the output the orbital magnetic moment integrated inside the PAW spheres (Bohr magneton). +The orbital magnetic moment is resolved orbital by orbital (p, d and f, the s orbital moment being always zero) on each atom. +Works only if PAW and DFT+U is used and if the spin-orbit coupling is on (with [[nspden]] == 4). +""", +), + Variable( abivarname="prtxml", varset="files", @@ -14821,6 +16950,7 @@ dimensions="scalar", defaultval=0, mnemonics="PRinT an XML output", + added_in_version="before_v9", text=r""" Create an XML output with common values. The corresponding DTD is distributed in sources as extras/post_processing/abinitRun.dtd. All the DTD is not yet @@ -14837,9 +16967,20 @@ dimensions=['[[ntypat]]'], defaultval=MultipleValue(number=None, value=0), mnemonics="PoinT CHARGEs", - requires="[[usepaw]] == 1 and [[prtefg]]>=3", + requires="[[usepaw]] == 1 and [[nucefg]]>=3", + added_in_version="before_v9", text=r""" - * Array of point charges, in atomic units, of the nuclei. In the normal computation of electric field gradients (see [[prtefg]]) the ionic contribution is calculated from the core charges of the atomic sites. Thus for example in a PAW data set for oxygen where the core is $1s^{2}$, the core charge is +6 (total nuclear charge minus core electron charge). In point charge models, which are much less accurate than PAW calculations, all atomic sites are treated as ions with charges determined by their valence states. In such a case oxygen almost always would have a point charge of -2. The present variable taken together with [[prtefg]] performs a full PAW computation of the electric field gradient and also a simple point charge computation. The user inputs whatever point charges he/she wishes for each atom type. + Array of point charges, in atomic units, of the nuclei. In the normal + computation of electric field gradients (see [[nucefg]]) the ionic + contribution is calculated from the core charges of the atomic sites. Thus + for example in a PAW data set for oxygen where the core is $1s^{2}$, the core + charge is +6 (total nuclear charge minus core electron charge). In point + charge models, which are much less accurate than PAW calculations, all atomic + sites are treated as ions with charges determined by their valence states. In + such a case oxygen almost always would have a point charge of -2. The present + variable taken together with [[nucefg]] performs a full PAW computation of + the electric field gradient and also a simple point charge computation. The + user inputs whatever point charges he/she wishes for each atom type. """, ), @@ -14852,6 +16993,7 @@ defaultval=0, mnemonics="PoinT GROUP number for the MAgnetic space group", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable characterizes a Shubnikov type III magnetic space group (anti-ferromagnetic space group). The user is advised to consult [[cite:Bradley1972]]. @@ -14884,6 +17026,7 @@ defaultval=MultipleValue(number=3, value=1.0), mnemonics="Particle VELocity MAXimum", requires="[[optdriver]] == 3", + added_in_version="before_v9", text=r""" When [[npvel]] is larger than 0, it performs electronic stopping power calculations on a velocity grid along the direction determined by [[pvelmax]]. @@ -14901,6 +17044,7 @@ defaultval="40%", mnemonics="Plane Wave UNBALancing: THRESHold for balancing procedure", requires="[[paral_kgb]] == 1", + added_in_version="before_v9", text=r""" This parameter (in %) activates a load balancing procedure when the distribution of plane wave components over MPI processes is not optimal. The @@ -14918,6 +17062,7 @@ dimensions=['[[nnos]]'], defaultval=MultipleValue(number=None, value=10.0), mnemonics="Q thermostat MASS", + added_in_version="before_v9", text=r""" This are the masses of the chains of [[nnos]] thermostats to be used when [[ionmov]] = 13 (Molecular Dynamics) or [[imgmov]] = 13 (Path Integral Molecular @@ -14941,6 +17086,7 @@ mnemonics="Q-wavevector of the PERTurbation", characteristics=['[[DEVELOP]]'], requires="[[vprtrb]]", + added_in_version="before_v9", text=r""" Gives the wavevector, in units of reciprocal lattice primitive translations, of a perturbing potential of strength [[vprtrb]]. See [[vprtrb]] for more info. @@ -14956,8 +17102,10 @@ defaultval=[0, 0, 0], mnemonics="Q PoinT", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" -Only used if [[nqpt]] = 1. +WARNING : Only used if [[nqpt]] = 1. If [[nqpt]]=0 (which is the default value of [[nqpt]]), no reading of [[qpt]] is done, +and the default value of [[qpt]], namely the null vector, is kept. Combined with [[qptnrm]], define the q vector [[qptn]](1:3) in the case [[qptopt]] = 0. @@ -14976,6 +17124,7 @@ defaultval=MultipleValue(number=None, value=0.0), mnemonics="Q-PoinTs for the Dielectric Matrix", requires="[[optdriver]] == 3 and [[nqptdm]]!=0", + added_in_version="before_v9", text=r""" [[qptdm]] contains the set of q points used in the screening part of ABINIT, instead of the automatic generation of the q points when [[nqptdm]] = 0. These q @@ -14994,16 +17143,17 @@ mnemonics="Q-PoinT re-Normalized", characteristics=['[[INTERNAL_ONLY]]'], requires="[[nqpt]] == 1", + added_in_version="before_v9", text=r""" Only used if [[nqpt]] = 1. -In ground-state calculation, the vector [[qptn]](1:3) is added to each -renormalized k point (whatever the value of [[kptopt]] that was used) to +In ground-state calculation, the vector **qptn**(1:3) is added to each +renormalized k point (whatever the value of [[kptopt]] used) to generate the normalized, shifted, set of k-points [[kptns]](1:3,1: **nkpt** ). -In response-function calculations, [[qptn]](1:3) is the wavevector of the +In response-function calculations, **qptn**(1:3) defines the wavevector of the phonon-type calculation. -[[qptn]](1:3) can be produced on the basis of the different methods described +**qptn**(1:3) can be produced on the basis of the different methods described in [[qptopt]], like using [[qpt]](1:3) with renormalisation provided by [[qptnrm]], or using the other possibilities defined by [[iqpt]], [[ngqpt]], [[nshiftq]], [[qptrlatt]], [[shiftq]]. @@ -15025,6 +17175,7 @@ defaultval=1.0, mnemonics="Q PoinTs NoRMalization", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Only used if [[nqpt]] = 1 and [[qptopt]] = 0 @@ -15042,8 +17193,10 @@ defaultval=0, mnemonics="QPoinTs OPTion", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" -Only used if [[nqpt]] = 1. +WARNING : Only used if [[nqpt]] = 1. If [[nqpt]]=0 (which is the default value of [[nqpt]]), no reading of [[qptopt]] is done, +and the default value of [[qptopt]] is kept. Controls the set up to generate the Q point [[qptn]](1:3) to be used for the specific dataset, either as a shift of k-point grid in ground-state @@ -15064,7 +17217,7 @@ [[nsym]] = 1, sometimes needed for T-dependent electronic structure, still decreasing the number of q points in the case [[qptopt]] = 1 or [[qptopt]] = 3. - * 0 --> read directly [[qpt]], and its (eventual) renormalisation factor [[qptnrm]]. + * 0 --> read directly [[qpt]], and its (possible) renormalisation factor [[qptnrm]]. * 1 --> Take fully into account the symmetry to generate the grid of q points in the Irreducible Brillouin Zone only. (This is the usual mode for RF calculations) @@ -15092,14 +17245,18 @@ mnemonics="Q - PoinTs grid: Real space LATTice", characteristics=['[[INPUT_ONLY]]'], excludes="[[ngqpt]]", + added_in_version="before_v9", text=r""" +WARNING : Only used if [[nqpt]] = 1. If [[nqpt]]=0 (which is the default value of [[nqpt]]), no reading of [[qptrlatt]] is done, +and the default value of [[qptrlatt]] is kept. + This input variable is used only when [[qptopt]] is positive. It partially defines the q point grid. The other piece of information is contained in [[shiftq]]. [[qptrlatt]] cannot be used together with [[ngqpt]]. The values [[qptrlatt]](1:3,1), [[qptrlatt]](1:3,2), [[qptrlatt]](1:3,3) are the coordinates of three vectors in real space, expressed in the [[rprimd]] -coordinate system (reduced coordinates). They defines a super-lattice in real +coordinate system (reduced coordinates). They define a super-lattice in real space. The k point lattice is the reciprocal of this super-lattice, possibly shifted (see [[shiftq]]). @@ -15118,9 +17275,14 @@ dimensions=['[[ntypat]]'], defaultval=MultipleValue(number=None, value=0), mnemonics="QUADrupole MOMents", - requires="[[usepaw]] == 1 and [[prtefg]]>=1", + requires="[[usepaw]] == 1 and [[nucefg]]>1", + added_in_version="before_v9", text=r""" - * Array of quadrupole moments, in barns, of the nuclei. These values are used in conjunction with the electric field gradients computed with [[prtefg]] to calculate the quadrupole couplings in MHz, as well as the asymmetries. Note that the electric field gradient at a nuclear site is independent of the nuclear quadrupole moment, thus the quadrupole moment of a nucleus can be input as 0, and the option [[prtefg]] = 2 used to determine the electric field gradient at the site. + * Array of quadrupole moments, in barns, of the nuclei. These values are used + in conjunction with the electric field gradients computed with [[nucefg]] to + calculate the quadrupole couplings in MHz, as well as the asymmetries. Note that + the electric field gradient at a nuclear site is independent of the nuclear + quadrupole moment, thus the quadrupole moment of a nucleus can be input as 0. """, ), @@ -15132,6 +17294,7 @@ dimensions="scalar", defaultval=0, mnemonics="RANDOM ATomic POSitions", + added_in_version="before_v9", text=r""" Control the inner coordinates, which can be generated randomly by using 4 different methods depending ont its value @@ -15152,6 +17315,7 @@ dimensions="scalar", defaultval=ValueWithConditions({'any([[constraint_kind]] > 1)': 0.05, 'defaultval': 0.00}), mnemonics="Radii of the ATomic spheres SMearing", + added_in_version="before_v9", text=r""" Smearing width for the atomic spheres whose radius is determined by [[ratsph]]. For each spherical zone around each atom, the integrating function goes @@ -15165,22 +17329,23 @@ abivarname="ratsph", varset="gstate", vartype="real", - topics=['printing_prdos', 'MagMom_useful', 'ElecBandStructure_useful', 'ElecDOS_useful', 'ConstrainedDFT_basic'], + topics=['printing_prdos', 'MagMom_useful', 'ElecBandStructure_useful', 'ElecDOS_useful', 'ConstrainedDFT_basic', 'AtomCentered_basic'], dimensions=['[[ntypat]]'], defaultval=ValueWithConditions({'[[usepaw]] == 1': '[[AUTO_FROM_PSP]]', 'defaultval': 2.00}), mnemonics="Radii of the ATomic SPHere(s)", + added_in_version="before_v9", text=r""" Relevant only when [[prtdensph]] = 1, or [[magconon]]/=0, or any([[constraint_kind]](:)/=0) (that is, constrained DFT), or [[prtdos]] = 3. In most cases (see later for [[prtdos]] = 3), provides the radius of the spheres around each atom in which the total charge density or magnetization will be integrated. The integral within the sphere is obtained by a sum over real space FFT points inside the sphere, multiplied by a function that is one inside the sphere, except in a small boundary zone determined by [[ratsm]], -where this fonction goes smoothly from 1 to 0. +where this function goes smoothly from 1 to 0. In case of PAW, [[ratsph]] radius has to be greater or equal to PAW radius of considered atom type (which is read from the PAW dataset file; see **rc_sph** or **r_paw**). In case of constrained DFT, note that the sphere for different atoms are not allowed to overlap. -When [[prtdos]] = 3: +When [[prtdos]] = 3 or 4 : Provides the radius of the spheres around the [[natsph]] atoms of indices [[iatsph]], in which the local DOS and its angular-momentum projections will @@ -15211,11 +17376,12 @@ abivarname="ratsph_extra", varset="gstate", vartype="real", - topics=['printing_prdos'], + topics=['printing_prdos','AtomCentered_useful'], dimensions="scalar", defaultval=ValueWithUnit(units='Bohr', value=2.0), mnemonics="Radii of the ATomic SPHere(s) in the EXTRA set", characteristics=['[[LENGTH]]'], + added_in_version="before_v9", text=r""" Radius for extra spheres the DOS is projected into. See [[natsph_extra]] and [[xredsph_extra]] for the number and positions of the spheres. @@ -15224,15 +17390,30 @@ Variable( abivarname="rcut", - varset="gw", + varset="gstate", vartype="real", - topics=['GWls_compulsory', 'Susceptibility_basic', 'SelfEnergy_basic'], + topics=['Coulomb_useful','GWls_compulsory', 'Susceptibility_basic', 'SelfEnergy_basic'], dimensions="scalar", defaultval=0.0, mnemonics="Radius of the CUT-off for coulomb interaction", + added_in_version="before_v9", text=r""" Truncation of the Coulomb interaction in real space. The meaning of [[rcut]] -is governed by the cutoff shape option [[icutcoul]]. +is governed by the cutoff shape options [[icutcoul]], [[gw_icutcoul]] and/or [[fock_icutcoul]]. +See complementary information in [[vcutgeo]]. + +In the method of Ismail-Beigi [[cite:Ismail-Beigi2006]] for one-dimensional systems, the cutoff region is given by the +Wigner-Seitz cell centered on the axis of the cylinder. The cutoff region is +thus automatically defined by the unit cell and there is no need to specify +the value of [[rcut]]. For two-dimensional systems, Ismail-Beigi [[cite:Ismail-Beigi2006]] also fixes the cutoff region, +at half the replication length perpendicular to the (truly) periodic plane. + +Thus, when the Beigi methods in 1D or 2D are expected, [[rcut]] must be 0.0. +Using another value of [[rcut]] will prevent the Beigi method to be used. +See complementary information in [[vcutgeo]]. + +On the other hand, when the Rozzi methods in 1D or 2D are expected, which is the case when one component of [[vcutgeo]] is negative, +[[rcut]] mut be defined. If [[rcut]] is negative, the cutoff is automatically calculated so to enclose the same volume inside the cutoff as the volume of the primitive cell. @@ -15248,6 +17429,7 @@ defaultval=0, mnemonics="RECursion - initial guess of the FERMI Energy", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used in Recursion method ([[tfkinfunc]] = 2). In the first SCF calculation it fixes the initial guess for the Fermi energy. @@ -15263,6 +17445,7 @@ defaultval=1, mnemonics="RECursion - Grid RATIO", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used in Recursion method ([[tfkinfunc]] = 2). It represents the ratio of the two grid step: [[recgratio]] = fine_step/coarse_step and it is bigger or equal than @@ -15284,6 +17467,7 @@ defaultval=500, mnemonics="RECursion - Number of point for PATH integral calculations", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used in Recursion method ([[tfkinfunc]] = 2). Determine the number of discretisation points to compute some path integral in the recursion method; @@ -15301,6 +17485,7 @@ defaultval=10, mnemonics="RECursion - Number of RECursions", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used in Recursion method ([[tfkinfunc]] = 2). Determine the maximum order of recursion, that is the dimension of the krylov space we use to compute @@ -15318,6 +17503,7 @@ defaultval=0, mnemonics="RECursion - TROTTer parameter", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used in Recursion method ([[tfkinfunc]] = 2). Determine the trotter parameter used to compute the exponential of the hamiltonian in the recursion method: @@ -15348,6 +17534,7 @@ defaultval=0, mnemonics="RECursion - CUTing Radius", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used in Recursion method ([[tfkinfunc]] = 2). Used to improve the computational time in the case of the recursion method in a large cell: the density at a @@ -15364,6 +17551,7 @@ defaultval=0, mnemonics="RECursion - TEST on Electron Gas", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Used in Recursion method ([[tfkinfunc]] = 2). It is used to test an electron gas by putting the ion potential equal to zero. @@ -15380,6 +17568,7 @@ mnemonics="RECursion - TOLerance on the difference of electronic DENsity", characteristics=['[[DEVELOP]]'], commentdefault="Default value to be changed.", + added_in_version="before_v9", text=r""" Used in Recursion method ([[tfkinfunc]] = 2). Sets a tolerance for differences of electronic density that, reached TWICE successively, will cause one SCF @@ -15397,6 +17586,7 @@ defaultval=MultipleValue(number=3, value=0.0), mnemonics="REDuced Displacement FIELD", requires="[[berryopt]] = 16, [[red_efield]]", + added_in_version="before_v9", text=r""" In case [[berryopt]] = 16, a reduced finite electric displacement field calculation is performed. The value of this displacement field, and its @@ -15415,6 +17605,7 @@ defaultval=MultipleValue(number=3, value=0.0), mnemonics="REDuced Electric FIELD", requires="[[berryopt]] = 16", + added_in_version="before_v9", text=r""" In case [[berryopt]] = 16, a reduced finite electric displacement field calculation is performed. In this case, the parameter [[red_efield]] specifies the @@ -15433,6 +17624,7 @@ defaultval=MultipleValue(number=3, value=0.0), mnemonics="REDuced Electric FIELD BAR", requires="[[berryopt]] = 14", + added_in_version="before_v9", text=r""" In case [[berryopt]] = 14, a reduced finite electric field calculation is performed. The magnitude and direction of this electric field are determined @@ -15450,47 +17642,37 @@ dimensions="scalar", defaultval=0, mnemonics="RESTART from (X,F) history", + added_in_version="before_v9", text=r""" Control the restart of a molecular dynamics or structural optimization job. -**restartxf >0 (Deprecated) **:The code reads from the input wf file, the -previous history of atomic coordinates and corresponding forces, in order to -continue the work done by the job that produced this wf file. If -[[optcell]]/=0, the history of [[acell]] and [[rprim]] variables is also taken -into account. The code will take into consideration the whole history (if -[[restartxf]] = 1), or discard the few first (x,f) pairs, and begin only at the -pair whose number corresponds to [[restartxf]]. -Works only for [[ionmov]] = 2 or 22 (Broyden) and when an input wavefunction file is -specified, thanks to the appropriate values of [[irdwfk]] or [[getwfk]]. +**restartxf = 0 (Default)**: No restart procedure is enabled and the code will start a +Molecular dynamics or structural optimization from scratch. -NOTES: -* The input wf file must have been produced by a run that exited cleanly. It cannot be one of the temporary wf files that exist when a job crashed. -* One cannot restart a calculation with a non-zero [[optcell]] value from the (x,f) history of another run with a different non-zero [[optcell]] value. Starting a non-zero [[optcell]] run from a zero [[optcell]] run should work. -* Deprecated, the use of the new options (-1 and -2) is preferred. - -**restartxf=0 (Default)**: No restart procedure is enable and will start a -Molecular dynamics or structural optimization from scratch. - -**restartxf=-1 (New)**: Use the HIST file to reconstruct a partial +**restartxf = -1 (New)**: Use the HIST.nc file to reconstruct a partial calculation. It will reconstruct the different configurations using the forces -and stress store in the HIST file, instead of calling the SCF procedure. -Enable **restartxf=-1** from the beginning is harmless. The only condition is +and the stresses stored in the HIST.nc file, instead of calling the SCF procedure. +Using **restartxf = -1** from the beginning is harmless. The only condition is to keep the input file the same in such a way that the same predictor is used -and it will predict the same structure recorded in the HIST file. +and it will predict the same structure recorded in the HIST.nc file. This option will always compute extra [[ntime]] iterations independent of the number of iterations recovered previously. -**restartxf=-2 (New)**:Read the HIST file and select the atomic positions and +**restartxf = -2 (New)**: Read the HIST.nc file and select the atomic positions and cell parameters with the lowest energy. Forget all the history and start the calculation using those values. The original atomic coordinates and cell -parameters are irrelevant in that case. +parameters are irrelevant in this case. -**restartxf=-3 (New)**:Read **ONLY** the last require the atomic positions and cell parameters in the HIST file to restart the Molecular dynamics or structural optimization. +**restartxf = -3 (New)**: Read **ONLY** the last required atomic positions and cell parameters +in the HIST.nc file to restart the Molecular dynamics or structural optimization. NOTES: + * You can use **restartxf=-1, -2 or -3** for all predictors that make no use of random numbers. -* You can use **restartxf=-1, -2 or -3** to restart a calculation that was not completed. The HIST file is written on each iteration. So you always have something to recover from. +* You can use **restartxf=-1, -2 or -3** to restart a calculation that was not completed. The HIST.nc file is written on each iteration. So you always have something to recover from. * You can take advantage of the appropriate values of [[irdwfk]] or [[getwfk]] to get a good wave function to continue your job. + +Previously, positive values of restartxf were allowed, but these are deprecated since ABINITv8. """, ), @@ -15502,6 +17684,7 @@ dimensions="scalar", defaultval=0, mnemonics="Response Function: 2nd Derivative of wavefunctions with respect to K", + added_in_version="before_v9", text=r""" If is equal to 1, activates computation of second derivatives of wavefunctions with respect to wavevectors (ipert = natom+10 is activated). This is not strictly a response function but is a needed @@ -15514,6 +17697,19 @@ the perturbation "lambda_1" ("lambda_2"). If ALL directions are activated (default behavior) AND [[prepanl]] == 1, then the code automatically selects only the directions that will be used by the non-linear routine ([[optdriver]] == 5) using crystal symmetries. + +Since v9.x this variable also activates the computation of the response to a vector potential +in the long-wavelength limit. At first order in the momentum, the perturbation and response can be split +into symmetric plus antisymmetric parts, see Refs. [[cite:Royo2019]] and [[cite:Zabalo2022]]. +The symmetric part, activated with [[rf2_dkdk]] == 1, corresponds to the aforementioned second derivatives +of wavefunctions with respect to wavevectors. The antisymmetric part, activated with [[rf2_dkdk]] == 2, +gives the response to a uniform orbital magnetic field, as defined in Ref. [[cite:Essin2010]]. The total, +symmetric plus antisymmetric, response is activated with [[rf2_dkdk]] == 3. + +The response function to a long-wavelength vector potential is a crucial ingredient to compute some of the +spatial-dispersion quantities available in the longwave driver. In particular, those that involve the gradient of an +electric field: the clamped-ion flexoelectric tensor, the first moment of the polarization +response to an atomic displacement and the natural optical activity tensor. """, ), @@ -15525,6 +17721,7 @@ dimensions="scalar", defaultval=0, mnemonics="Response Function: mixed 2nd Derivative of wavefunctions with respect to K and electric field", + added_in_version="before_v9", text=r""" If is equal to 1, activates computation of mixed second derivatives of wavefunctions with respect to wavevector and electric field (ipert = natom+11 is activated). This is not strictly a response function @@ -15542,6 +17739,7 @@ dimensions=[3], defaultval=[1, 1, 1], mnemonics="Response Function (2nd order Sternheimer equation): 1st PERTurbation DIRection", + added_in_version="before_v9", text=r""" Gives the directions of the 1st perturbation to be considered when solving the 2nd order Sternheimer equation. The three elements corresponds to the three primitive vectors, either in real @@ -15561,6 +17759,7 @@ dimensions=[3], defaultval=[1, 1, 1], mnemonics="Response Function (2nd order Sternheimer equation): 2nd PERTurbation DIRection", + added_in_version="before_v9", text=r""" Gives the directions of the 2nd perturbation to be considered when solving the 2nd order Sternheimer equation. The three elements corresponds to the three primitive vectors, either in real @@ -15572,57 +17771,36 @@ """, ), -Variable( - abivarname="rfasr", - varset="dfpt", - vartype="integer", - topics=['Phonons_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="Response Function: Acoustic Sum Rule", - text=r""" -Control the evaluation of the acoustic sum rule in effective charges and -dynamical matrix at Gamma within a response function calculation (not active -at the level of producing the DDB, but at the level of the phonon -eigenfrequencies output). - - * 0 --> no acoustic sum rule imposed - * 1 --> acoustic sum rule imposed for dynamical matrix at Gamma, and charge neutrality - imposed with extra charge evenly distributed among atoms - * 2 --> acoustic sum rule imposed for dynamical matrix at Gamma, and charge neutrality - imposed with extra charge given proportionally to those atoms with the largest effective charge. - -The treatment of the acoustic sum rule and charge neutrality sum rule is finer -at the level of the ANADDB utility, with the two independent input variables -[[anaddb:asr]] and [[anaddb:chneut]]. -""", -), - Variable( abivarname="rfatpol", varset="dfpt", vartype="integer", topics=['DFPT_basic', 'Elastic_compulsory', 'Phonons_compulsory'], dimensions=[2], - defaultval=[1, 1], + defaultval=[1, '[[natom]]' ], mnemonics="Response Function: ATomic POLarisation", + added_in_version="before_v9", text=r""" Control the range of atoms for which displacements will be considered in phonon calculations (atomic polarizations). These values are only relevant to phonon response function calculations. May take values from 1 to [[natom]], with [[rfatpol]](1)<=[[rfatpol]](2). -The atoms to be moved will be defined by the -do-loop variable iatpol: +The atoms to be moved will be defined by the do-loop variable iatpol: - do iatpol=[[rfatpol]](1),[[rfatpol]](2) For the calculation of a full dynamical matrix, use [[rfatpol]](1)=1 and -[[rfatpol]](2)=[[natom]], together with [[rfdir]] 1 1 1. For selected +[[rfatpol]](2)=[[natom]], together with [[rfdir]] 1 1 1, both being the default values. +For selected elements of the dynamical matrix, use different values of [[rfatpol]] and/or [[rfdir]]. The name 'iatpol' is used for the part of the internal variable ipert when it runs from 1 to [[natom]]. The internal variable ipert can also assume values larger than [[natom]], denoting perturbations of electric field -or stress type (see [the DFPT help file](../guide/respfn)). +or stress type (see [the DFPT help file](/guide/respfn)). + +As a side technical information, the value [[rfatpol]](1)=-1 is admitted, and transformed +immediately to [[rfatpol]](1)=1, while [[rfatpol]](2)=-1 is transformed to [[rfatpol]](2)=[[natom]], +while the default input values are actually [[rfatpol]]=-1 . """, ), @@ -15634,10 +17812,12 @@ dimensions="scalar", defaultval=0, mnemonics="Response Function with respect to Derivative with respect to K", + added_in_version="before_v9", text=r""" Activates computation of derivatives of ground state wavefunctions with respect to wavevectors. This is not strictly a response function but is a -needed auxiliary quantity in the electric field calculations (see [[rfelfd]]). +needed auxiliary quantity in the electric field calculations (see [[rfelfd]]) and orbital magnetism calculations +(see [[orbmag]]). The directions for the derivatives are determined by [[rfdir]]. * 0 --> no derivative calculation @@ -15652,8 +17832,9 @@ vartype="integer", topics=['DFPT_compulsory', 'Elastic_compulsory', 'Phonons_compulsory'], dimensions=[3], - defaultval=[0, 0, 0], + defaultval=[1, 1, 1], mnemonics="Response Function: DIRections", + added_in_version="before_v9", text=r""" Gives the directions to be considered for response function calculations (also for the Berry phase computation of the polarization, see the [[berryopt]] @@ -15663,8 +17844,9 @@ electric field, homogeneous magnetic field calculations). So, they generate a basis for the generation of the dynamical matrix or the macroscopic dielectric tensor or magnetic susceptibility and magnetic shielding, or the effective charge tensors. -If equal to 1, response functions, as defined by [[rfddk]], [[rfelfd]], -[[rfphon]], [[rfdir]] and [[rfatpol]], are to be computed for the +If equal to 1, response functions, as defined by [[rfdir]], [[rfddk]], [[rfelfd]], +[[rfphon]], [[rfstrs]], [[rfmagn]], [[rfatpol]], and possibly other response-function activating +input variables, but also [[berryopt]] are to be computed for the corresponding direction. If 0, this direction should not be considered. """, ), @@ -15677,6 +17859,7 @@ dimensions="scalar", defaultval=0, mnemonics="Response Function with respect to the ELectric FielD", + added_in_version="before_v9", text=r""" Turns on electric field response function calculations. Actually, such calculations requires first the non-self-consistent calculation of derivatives @@ -15692,7 +17875,7 @@ electric field are different, one often does the calculation of derivatives in a separate dataset, followed by calculation of electric field response as well as phonon. The options 2 and 3 proves useful in that context; also, in case a scissor - shift is to be used, it is usually not applied for the $\,d / \,d k$ response). + shift is to be used, it is usually not applied for the $\,d / \,d k$ response [[cite:Levine1989]]). """, ), @@ -15704,6 +17887,7 @@ dimensions="scalar", defaultval=0, mnemonics="Response Function with respect to MAGNetic B-field perturbation", + added_in_version="before_v9", text=r""" [[rfmagn]] allows one to run response function calculations with respect to external magnetic field if set to 1. Currently, orbital magnetism is not taken into @@ -15719,6 +17903,7 @@ dimensions="scalar", defaultval=1, mnemonics="Response Function METHod", + added_in_version="before_v9", text=r""" Selects method used in response function calculations. Presently, only abs([[rfmeth]]) = 1 is allowed. This corresponds to storing matrix elements of the 2DTE computed using non-stationary expressions, @@ -15741,6 +17926,7 @@ dimensions="scalar", defaultval=0, mnemonics="Response Function with respect to PHONons", + added_in_version="before_v9", text=r""" It must be equal to 1 to run phonon response function calculations. """, @@ -15754,6 +17940,7 @@ dimensions="scalar", defaultval=0, mnemonics="Response Function with respect to STRainS", + added_in_version="before_v9", text=r""" Used to run strain response-function calculations (e.g. needed to get elastic constants). Define, with [[rfdir]], the set of perturbations. @@ -15767,6 +17954,26 @@ """, ), +Variable( + abivarname="rfstrs_ref", + varset="dfpt", + vartype="integer", + topics=['longwave_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Response Function with respect to STRainS with the energy REFerence at the average electrostatic potential", + added_in_version="v9", + text=r""" +If equal to 1 and [[rfstrs]] /= 0 the strain response-function calculations are performed with the +reference energy placed at the average electrostatic potential. The later is the reference adopted +in the longwave driver. Since v9.x, [[rfstrs_ref]] = 1 is warned if [[prepalw]]/=0 because first-order +energies are no longer recomputed by the longwave driver but read from the precalculated 1WF files. + +Strain first-order energies calculated with [[rfstrs_ref]] = 1 are useful, for instance, +in the calculation of absolute deformation potentials [[cite:Stengel2015]]. +""", +), + Variable( abivarname="rfuser", varset="dfpt", @@ -15775,6 +17982,7 @@ dimensions="scalar", defaultval=0, mnemonics="Response Function, USER-defined", + added_in_version="before_v9", text=r""" Available to the developers, to activate the use of ipert=natom+6 and ipert=natom+7, two sets of perturbations that the developers can define. @@ -15805,6 +18013,7 @@ dimensions="scalar", defaultval=1.0, mnemonics="RHO QuasiParticle MIXing", + added_in_version="before_v9", text=r""" For self-consistent GW runs, [[rhoqpmix]] sets the mixing coefficient between the new and the previous electronic densities. This mixing damps the spurious @@ -15824,19 +18033,20 @@ mnemonics="Real space PRIMitive translations", characteristics=['[[EVOLVING]]'], commentdims="Internally, it is represented as rprim(3,3,[[nimage]])", + added_in_version="before_v9", text=r""" Give the three dimensionless primitive translations in real space, to be rescaled by [[acell]] and [[scalecart]]. The three first numbers are the coordinates of the first vector, the next three numbers are the coordinates of the second, and the last three the coordinates of the third. -It is [[EVOLVING]] only if [[ionmov]] == 2 or 22 and [[optcell]]/=0, otherwise it is -fixed. -If the Default is used, that is, [[rprim]] is the unity matrix, the three +It is [[EVOLVING]] only if [[ionmov]] == 2 or 22 and [[optcell]]/=0, otherwise it is fixed. + +If the Default is used, that is, **rprim** is the unity matrix, the three dimensionless primitive vectors are three unit vectors in cartesian -coordinates. The coordinates (and hence the length) of each vector will be (possibly) multiplied by the corresponding [[acell]] -value, then (possibly) stretched along the cartesian coordinates by the -corresponding [[scalecart]] value, to give the dimensional primitive vectors, -called [[rprimd]]. +coordinates. The coordinates (and hence the length) of each vector will be (possibly) +multiplied by the corresponding [[acell]] value, then (possibly) stretched along the +cartesian coordinates by the corresponding [[scalecart]] value, to give the dimensional primitive vectors, called [[rprimd]]. + In the general case, the dimensional cartesian coordinates of the crystal primitive translations R1p, R2p and R3p, see [[rprimd]], are @@ -15869,12 +18079,12 @@ Alternatively to [[rprim]], directions of dimensionless primitive vectors can be specified by using the input variable [[angdeg]]. This is especially useful for hexagonal lattices (with 120 or 60 degrees angles). Indeed, in order for -symmetries to be recognized, rprim must be symmetric up to [[tolsym]] (10 -digits by default), inducing a specification such as +symmetries to be recognized, rprim must be symmetric up to [[tolsym]] (1.0e-5 by default), +inducing a specification such as - rprim 0.86602540378 0.5 0.0 - -0.86602540378 0.5 0.0 - 0.0 0.0 1.0 + rprim 0.86602 0.5 0.0 + -0.86602 0.5 0.0 + 0.0 0.0 1.0 that can be avoided thanks to [[angdeg]]: @@ -15913,7 +18123,7 @@ Indeed, the cell has been stretched along the cartesian coordinates, by "a", "a" and "c" factors. -At variance, the following is WRONG: +At variance, the following is **WRONG**: rprim 1 0 0 0 1 0 @@ -15947,6 +18157,7 @@ mnemonics="Real space PRIMitive translations, Dimensional", characteristics=['[[INTERNAL_ONLY]]', '[[EVOLVING]]'], commentdims="Internally, it is represented as rprimd(3,3,[[nimage]]).", + added_in_version="before_v9", text=r""" This internal variable gives the dimensional real space primitive vectors, computed from [[acell]], [[scalecart]], and [[rprim]]. @@ -15968,6 +18179,7 @@ defaultval=MultipleValue(number=3, value=1), mnemonics="SCALE CARTesian coordinates", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the scaling factors of cartesian coordinates by which dimensionless primitive translations (in "[[rprim]]") are to be multiplied. @@ -15990,6 +18202,7 @@ dimensions=[3], defaultval=[1, 1, 1], mnemonics="Self Consistent PHONon SUPERCELL", + added_in_version="before_v9", text=r""" Give extent, in number of primitive unit cells, of the supercell being used for a self-consistent phonon calculation. Presumes the phonon frequencies and @@ -16008,6 +18221,7 @@ defaultval=0.0, mnemonics="Self Consistent PHONon TEMPerature", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Temperature which is imposed on phonon distribution, in the self-consistent scheme of [[cite:Souvatzis2008]]. Determines the extent of the @@ -16023,6 +18237,7 @@ dimensions=[3, '[[nshiftk]]'], defaultval=ValueWithConditions({'[[nshiftk]]>1': None, 'defaultval': [0.5, 0.5, 0.5]}), mnemonics="SHIFT for K points", + added_in_version="before_v9", text=r""" It is used only when [[kptopt]] >= 0, and must be defined if [[nshiftk]] is larger than 1. @@ -16040,14 +18255,17 @@ values of the shifts, to be used with even values of [[ngkpt]]. This list is much less exhaustive than the above-mentioned automatic procedure. -1) When the primitive vectors of the lattice do NOT form a FCC or a BCC -lattice, the default (shifted) Monkhorst-Pack grids are formed by using +1) The default (shifted) Monkhorst-Pack grids are formed by using [[nshiftk]] = 1 and [[shiftk]] 0.5 0.5 0.5. This is often the preferred k point -sampling, as the shift improves the sampling efficiency. However, it can also -break symmetry, if the 111 direction is not an axis of rotation, e.g. in -tetragonal or hexagonal systems. Abinit will complain about this breaking, and -you should adapt [[shiftk]]. For a non-shifted Monkhorst-Pack grid, use -[[nshiftk]] = 1 and [[shiftk]] 0.0 0.0 0.0, which will be compatible with all +sampling, as the shift improves the sampling efficiency with respect +to the other simple (non-shifted) possibility [[nshiftk]] = 1 and [[shiftk]] 0.0 0.0 0.0. +There are other interesting possibilities for FCC, BCC and HCP lattices, see later. +However, this default can also break symmetry, if the 111 direction +is not an axis of rotation. This happens e.g. in tetragonal or hexagonal systems. +Abinit will complain about this breaking, and +you should adapt [[shiftk]]. +Easy back-up : use [[nshiftk]] = 1 and [[shiftk]] 0.0 0.0 0.0, +to get a non-shifted Monkhorst-Pack grid, which will be compatible with all symmetries, and is necessary for some features such as k-point interpolation. 2) When the primitive vectors of the lattice form a FCC lattice, with [[rprim]] @@ -16086,8 +18304,6 @@ one can use [[nshiftk]] = 1 and [[shiftk]] 0.0 0.0 0.5 -In rhombohedral axes, e.g. using [[angdeg]] 3*60., this corresponds to -[[shiftk]] 0.5 0.5 0.5, to keep the shift along the symmetry axis. """, ), @@ -16100,7 +18316,11 @@ defaultval=ValueWithConditions({'[[nshiftq]]>1': None, 'defaultval': [0.5, 0.5, 0.5]}), mnemonics="SHIFT for Q points", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" +WARNING : Only used if [[nqpt]] = 1. If [[nqpt]]=0 (which is the default value of [[nqpt]]), no reading of [[shiftq]] is done, +and the default value of [[shiftq]] is kept. + It is used only when [[qptopt]] >= 0, and must be defined if [[nshiftq]] is larger than 1. [[shiftq]](1:3,1:[[nshiftq]]) defines [[nshiftq]] shifts of the homogeneous grid of q points based on [[ngqpt]] or [[qptrlatt]]. @@ -16118,6 +18338,7 @@ dimensions="scalar", defaultval=1, mnemonics="SIGN of PERMutation potential", + added_in_version="before_v9", text=r""" +1 favors alternation of species -1 favors segregation """, @@ -16132,6 +18353,7 @@ defaultval=0.0, mnemonics="jellium SLAB Wigner-Seitz RADius", characteristics=['[[LENGTH]]'], + added_in_version="before_v9", text=r""" Fix the bulk-mean positive charge density $n_{bulk}$ of a jellium slab (if the latter is employed, e.g. [[jellslab]]/=0). Often called $r_s$ (see for example @@ -16160,6 +18382,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="jellium SLAB BEGinning edge along the z-direction", + added_in_version="before_v9", text=r""" Define the edges of the jellium slab (if used, so if [[jellslab]]/=0) along z, namely the slab starts at a point along z which is expressed in Bohr by @@ -16191,6 +18414,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="jellium SLAB ENDing edge along the z-direction", + added_in_version="before_v9", text=r""" Define the edges of the jellium slab (if used, so if [[jellslab]]/=0) along z, namely the slab starts at a point along z which is expressed in Bohr by @@ -16222,6 +18446,7 @@ dimensions="scalar", defaultval=[1000], mnemonics="ScaLapacK matrix RANK Per Process", + added_in_version="before_v9", text=r""" This variable controls how the number of processes to be used in Scalapack diagonalization algorithm: [[np_slk]] will be calculated according to this value. This value is the matrix rank that each process will hold for the diagonalization. @@ -16245,6 +18470,7 @@ dimensions="scalar", defaultval=0, mnemonics="SMeared DELTA function", + added_in_version="before_v9", text=r""" When [[smdelta]] in non-zero, it will trigger the calculation of the imaginary part of the second-order electronic eigenvalues, which can be related to the @@ -16267,6 +18493,7 @@ defaultval=MultipleValue(number='[[npsp]]', value=1), mnemonics="Spin-Orbit treatment for each PSeudoPotential", requires="[[nspinor]] == 2 and [[usepaw]] == 0", + added_in_version="before_v9", text=r""" For each type of atom (each pseudopotential), specify the treatment of spin-orbit interaction (if [[nspinor]] == 2 and Norm-conserving pseudopotentials i.e. [[usepaw]] == 0) @@ -16304,6 +18531,7 @@ mnemonics="SPectral BROADening", characteristics=['[[ENERGY]]'], requires="[[optdriver]] == 3 and [[spmeth]] == 2", + added_in_version="before_v9", text=r""" When a screening calculation ([[optdriver]] == 3) uses a spectral representation of the irreducible polarizability in which the delta function is replaced by @@ -16320,6 +18548,7 @@ dimensions="scalar", defaultval=1, mnemonics="SPace Group: AXes ORientation", + added_in_version="before_v9", text=r""" It is taken into account only when [[spgroup]]/=0; it allows one to define the axes orientation for the specific space groups for which this is needed. @@ -16372,6 +18601,7 @@ defaultval=1, mnemonics="SPace Group: ORIGin", requires="[[spgroup]]!=0", + added_in_version="before_v9", text=r""" Gives the choice of origin for the axes system. It is defined according to the origin choice in the International Tables of @@ -16390,6 +18620,7 @@ dimensions="scalar", defaultval=0, mnemonics="SPace GROUP number", + added_in_version="before_v9", text=r""" Gives the Fedorov space group number of the system. It should be between 1 and 230, see [[help:spacegroup]]. @@ -16418,6 +18649,7 @@ defaultval=0, mnemonics="SPace GROUP number defining a MAgnetic space group", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" This input variable might be used to define a Shubnikov magnetic space group (anti-ferromagnetic space group). The user is advised to consult [[cite:Bradley1972]]. @@ -16427,17 +18659,26 @@ Such a Shubnikov type IV magnetic space group might be defined by its Fedorov space group (set of spatial symmetries that do not change the magnetization), and an additional magnetic space group number [[spgroupma]]. +In this case, the Fedorov space group associated with [[spgroup]] is a subgroup +of the magnetic space group number associated with [[spgroupma]], the latter +has twice the number of operations than the former. -A Shubnikov type III magnetic space group does not contain a translation in real space -wollowed by a spin flip. It might be defined by its Fedorov +Unlike Shubnikov type IV magnetic space groups, +a Shubnikov type III magnetic space group does not contain a translation in real space +followed by a spin flip. It might be defined by a covering Fedorov space group (set of all spatial symmetries, irrespective of their magnetic action), and an additional magnetic space group number [[spgroupma]]. -For the additional number [[spgroupma]], we follow the definition of Table 7.4 -of the above-mentioned [[cite:Bradley1972]]. - +In this case, the covering Fedorov space group is a supergroup of the +magnetic space group number [[spgroupma]], the former +has twice the number of operations than the latter. Thus, one way to specify a Shubnikov type IV magnetic space group, is to define both [[spgroup]] and [[spgroupma]]. For example, the group P2_1/c_prime has [[spgroup]] = 14 and [[spgroupma]] = 78. + +For the meaning of the number [[spgroupma]], in both Shubnikov type III and IV, +we follow the definition of Table 7.4 +of the above-mentioned [[cite:Bradley1972]]. + Alternatively, for Shubnikov type IV magnetic groups, one might define [[spgroup]] and [[genafm]]. For both the types III and IV, one might define by hand the set of symmetries, using [[symrel]], [[tnons]] and [[symafm]]. @@ -16457,6 +18698,7 @@ dimensions=ValueWithConditions({'[[natrd]]<[[natom]]': '[3, [[natrd]] ]', 'defaultval': '[3, [[natom]] ]'}), defaultval=0.0, mnemonics="SPIN for AToms", + added_in_version="before_v9", text=r""" Gives the initial electronic spin-magnetization for each atom, in unit of $\hbar/2$, as well as, in case of fixed magnetization calculations (see [[constraint_kind]] and [[magconon]]), the target value of the magnetization. @@ -16501,24 +18743,39 @@ dimensions="scalar", defaultval=-99.99, mnemonics="SPIN-MAGNetization TARGET", - text=r""" -This input variable is active only in the [[nsppol]] = 2 case. If -[[spinmagntarget]] is not the "magic" value of -99.99, the spin- -magnetization of the primitive cell will be fixed (or optimized, if it is not -possible to impose it) to the value of [[spinmagntarget]], in Bohr magneton -units (for an Hydrogen atom, it is 1). -If [[occopt]] is a metallic one, the Fermi energies for spin up and spin down -are adjusted to give the target spin-polarisation (this is equivalent to an -exchange splitting). If [[occopt]] = 1 and [[nsppol]] = 2, the occupation numbers -for spin up and spin down will be adjusted to give the required spin- -magnetization (occupation numbers are identical for all k-points, with + added_in_version="before_v9", + text=r""" +This input variable is active only in the [[nsppol]] = 2 case. +It is an auxiliary input variable, that is used to define how the occupation numbers +are generated (see [[occ]] input variable). + +When [[occopt]] defines a metallic occupation ([[occopt]]=3 ... 8), +the Fermi energies for spin up and spin down +are adjusted to deliver the target spin-magnetization [[spinmagntarget]], +in Bohr magneton units (for an Hydrogen atom, it is 1). +The difference in Fermi energies is equivalent to an exchange splitting. +However, still in the metallic occupation case, if [[spinmagntarget]] is the "magic" (default) value -99.99, +the occupation numbers (and hence the spin-magnetization) are not +constrained, and are determined self-consistently, by having the same spin +up and spin down Fermi energy. + +If [[occopt]] = 1 and [[nsppol]] = 2, the occupation numbers +for spin up and spin down are initialized (and kept unchanged afterwards) to give the required +spin-magnetization (occupation numbers are identical for all k-points with [[occopt]] = 1). The definition of [[spinmagntarget]] is actually requested in this case, except for the single isolated Hydrogen atom. -If [[spinmagntarget]] is the default one, the spin-magnetization will not be -constrained, and will be determined self-consistently, by having the same spin -up and spin down Fermi energy in the metallic case, while for the other cases, -there will be no spin-magnetization, except for an odd number of electrons if -[[occopt]] = 1 and [[nsppol]] = 2. +Still in the [[occopt]] = 1 case, if [[spinmagntarget]] is the "magic" (default) value of -99.99, +there is no spin-magnetization, except for an odd number of electrons, +where one more band is occupied spin up than spin down. + +If [[occopt]] = 0 or 2, the [[occ]] input variable is defined directly by the user, +and does not change during the SCF procedure. +[[spinmagntarget]] is not used. + +For the time being, in response-function calculations, only [[spinmagntarget]]=0.0 or the default +value are allowed. Moreover, the occupation numbers for the ground-state and for the reponse-function +calculations must be identical. Thus, ferromagnetic insulators must rely on +[[occopt]]=0 or 2, with explicit definition of the occupation numbers. !!! note For the time being, only the spin down Fermi energy is written out in @@ -16536,6 +18793,7 @@ defaultval=0, mnemonics="SPectral METHod", requires="[[optdriver]] == 4", + added_in_version="before_v9", text=r""" The [[spmeth]] input variable defines the method used to calculate the irreducible polarizability $\chi^{(0)}_{KS}$. @@ -16578,12 +18836,16 @@ dimensions="scalar", defaultval=1.0, mnemonics="SPin-ORBit SCaLing", - requires="[[usepaw]] == 1 and [[pawspnorb]] >= 1", + requires="( [[usepaw]] == 1 and [[pawspnorb]] >= 1) .or NC pseudos with SOC terms.", + added_in_version="before_v9", text=r""" -Scaling of the spin-orbit interaction. The default values gives the first- -principles value, while other values are used for the analysis of the effect +Scaling of the spin-orbit interaction. The default values (one) gives +the first-principles value, while other values are used for the analysis of the effect of the spin-orbit interaction, but are not expected to correspond to any physical situation. + +Note that, starting with version 9.5.2, this option is also compatible with NC pseudos provided +the pseudopotential files include the SOC term. """, ), @@ -16596,6 +18858,7 @@ defaultval=0.0, mnemonics="Scanning Tunneling Microscopy BIAS voltage", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Gives, in Hartree, the bias of the STM tip, with respect to the sample, in order to generate the STM density map. @@ -16606,7 +18869,7 @@ states only, while negative [[stmbias]] will lead to the inclusion of unoccupied (conduction) states only. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[stmbias]] has -the '[[ENERGY]]' characteristics (0.001 Ha = 27.2113845 meV = 315.773 Kelvin). +the [[ENERGY]] characteristics (0.001 Ha = 27.2113845 meV = 315.773 Kelvin). With [[occopt]] = 7, one has also to specify an independent broadening [[tsmear]]. """, ), @@ -16619,9 +18882,10 @@ dimensions="scalar", defaultval=100, mnemonics="STRess FACTor", + added_in_version="before_v9", text=r""" -The stresses multiplied by [[strfact]] will be treated like forces in the -process of optimization ([[ionmov]] = 2 or 22, non-zero [[optcell]]). +The stresses (in atomic units) multiplied by [[strfact]] will be treated like forces (in atomic units) in the +algorithms for optimization ([[ionmov]] = 2 or 22, non-zero [[optcell]]). For example, the stopping criterion defined by [[tolmxf]] relates to these scaled stresses. """, @@ -16635,6 +18899,7 @@ dimensions="scalar", defaultval=1, mnemonics="STRING method ALGOrithm", + added_in_version="before_v9", text=r""" Relevant only when [[imgmov]] = 2 (String Method). Gives the variant of the String Method method used. @@ -16665,6 +18930,7 @@ dimensions="scalar", defaultval=1.0, mnemonics="STRess PRECONditioner", + added_in_version="before_v9", text=r""" This is a scaling factor to initialize the part of the Hessian related to the treatment of the stresses (optimisation of the unit cell). In case there is an @@ -16680,10 +18946,14 @@ dimensions=[6], defaultval=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], mnemonics="STRess TARGET", + added_in_version="before_v9", text=r""" +Define the target stress to be obtained by optimization of the cell. The components of the stress tensor must be stored according to: (1,1) -->1; (2,2) --> 2; (3,3) --> 3; (2,3) --> 4; (3,1) --> 5; (1,2) -->6. The conversion factor -between Ha/Bohr**3 and GPa is: 1 Ha/Bohr**3 = 29421.033d0 GPa. +between Ha/Bohr**3 (the atomic unit for stress) and GPa is: 1 Ha/Bohr**3 = 29421.033 GPa. +If a hydrostatic stress (so, a pressure P) is wanted, define [[strtarget]] as +-P -P -P 0 0 0 . Not used if [[optcell]] == 0. """, ), @@ -16696,6 +18966,7 @@ dimensions=['[[nsym]]'], defaultval=MultipleValue(number='[[nsym]]', value=1), mnemonics="SYMmetries, Anti-FerroMagnetic characteristics", + added_in_version="before_v9", text=r""" In case the material is magnetic, [[nspden]]=2 or 4, additional symmetry operations might appear, that change the sign of the magnetization (spin-flip). They have been introduced by @@ -16725,13 +18996,15 @@ (so-called black and white symmetry groups). By contrast, in the second case, the real space symmetry operations act on the magnetization vector. The rationale for such different treatment comes from the fact that the treatment of spin-orbit coupling is incompatible with collinear magnetism [[nspden]]=2, -so there is no need to worry about it in this case. On the contrary, many calculations with [[nspden]]=2 +so there is no need to worry about it in this case. On the contrary, many calculations with [[nspden]]=4 will include spin-orbit coupling. The symmetry operations should thus act coherently on the spin-orbit coupling, which implies that the real space operations should act also on the magnetization vector in the [[nspden]]=4 case. So, with [[nspden]]=4, even with [[symafm]]=1, symmetry operations might change the magnetization vector, e.g. possibly reverse it from one atom to another atom. Still, when real space operations also act on the magnetization vector, nothing prevents to have ADDITIONAL "spin-flip" operations, which is indeed then the meaning of [[symafm]]=-1 in the [[nspden]]=4 case. +Note that real-space operations act on the magnetization as an axial vector, not as a normal vector. For example, the inversion symmetry +does not change the magnetization vector. Let's illustrate this with an example. Take an H$_2$ system, with the two H atoms quite distant from each other. The electron on the first H atom might be 1s spin up, and the electron on the second atom might be 1s spin down. @@ -16759,6 +19032,7 @@ mnemonics=r"SYMmetryze $\chi_0$", characteristics=['[[DEVELOP]]'], requires="[[optdriver]] == 3", + added_in_version="before_v9", text=r""" The evaluation of the irreducible polarizability for a given q point requires an integration over the Brillouin zone (BZ) which is approximated by a @@ -16781,6 +19055,7 @@ dimensions="scalar", defaultval=1, mnemonics="SYMmetrize the DYNamical MATrix", + added_in_version="before_v9", text=r""" If symdynmat is equal to 1, the dynamical matrix is symmetrized before the diagonalization (same meaning as the corresponding anaddb variable). Note that @@ -16798,6 +19073,7 @@ defaultval=1, mnemonics="SYMMORPHIc symmetry operation selection", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" With [[symmorphi]] = 1, symmetry operations with a non-symmorphic vector are allowed. With [[symmorphi]] = 0, they are not allowed. In the latter case, if @@ -16822,14 +19098,21 @@ dimensions=[3, 3, '[[nsym]]'], defaultval=ValueWithConditions({'[[nsym]] == 1': [[1, 0, 0], [0, 1, 0], [0, 0, 1]], 'defaultval': None}), mnemonics="SYMmetry in REaL space", + added_in_version="before_v9", text=r""" Gives "[[nsym]]" 3x3 matrices expressing space group symmetries in terms of their action on the direct (or real) space primitive translations. It turns out that these can always be expressed as integers. Always give the identity matrix even if no other symmetries hold, e.g. [[symrel]] 1 0 0 0 1 0 0 0 1. + Also note that for this array, as for all others, the array elements are filled -in a columnwise order as is usual for Fortran. +in a columnwise order as is usual for Fortran. Explicitly, +[[symrel]] 1 0 0 -1 -1 0 0 0 1 for symmetry operation isym is stored internally as +symrel(1,1,isym)=1, symrel(1,2)=-1, ... +The atom located at xred(1:3) is send to location +xred_sym(jj)=symrel(jj,1,isym)*xred(1)+symrel(jj,2,isym)*xred(2)+symrel(jj,3,isym)*xred(3)+tnons(jj). + The relation between the above symmetry matrices [[symrel]], expressed in the basis of primitive translations, and the same symmetry matrices expressed in cartesian coordinates, is as follows. Denote the matrix whose columns are the @@ -16848,9 +19131,11 @@ vartype="integer", topics=['SelfEnergy_expert'], dimensions="scalar", - defaultval=0, + defaultval=1, mnemonics="SYMmetrization of SIGMA matrix elements", requires="[[optdriver]] in [4, 7]", + commentdefault="The default value changed in Abinitv9 from 0 to 1", + added_in_version="before_v9", text=r""" This option activates the symmetrization of the self-energy matrix elements ([[symsigma]] = 1). In this case the BZ integration defining the self-energy @@ -16879,6 +19164,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="Time-Dependent dft: MAXimal kohn-sham ENErgy difference", + added_in_version="before_v9", text=r""" The Matrix to be diagonalized in the Casida framework (see [[cite:Casida1995]]) is a NxN matrix, where, by default, N is the product of the number of occupied @@ -16890,6 +19176,20 @@ """, ), +Variable( + abivarname="tolcum", + varset="eph", + vartype="real", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=0.0, + mnemonics="TOLerance on CUMulant", + added_in_version="9.8.0", + text=r""" +This variable is active when computing the cumulant with [[eph_task]] = 9. +""", +), + Variable( abivarname="td_mexcit", varset="dfpt", @@ -16898,6 +19198,7 @@ dimensions="scalar", defaultval=0, mnemonics="Time-Dependent dft: Maximal number of EXCITations", + added_in_version="before_v9", text=r""" The Matrix to be diagonalized in the Casida framework (see [[cite:Casida1995]]) is a NxN matrix, where, by default, N is the product of the number of occupied @@ -16918,6 +19219,7 @@ defaultval=0, mnemonics="Thomas-Fermi KINetic energy FUNCtional", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" * [[tfkinfunc]] = 1: Thomas-Fermi kinetic functional (explicit functional of the density) is used instead of Kohn-Sham kinetic energy functional (implicit functional of the density through Kohn-Sham wavefunctions). See [[cite:Perrot1979]]. @@ -16969,14 +19271,14 @@ mnemonics="Thomas-Fermi-Weizsacker: TOLerance on the DiFference of total Energy, for initialization steps", characteristics=['[[ENERGY]]'], requires="[[tfkinfunc]] = 11", + added_in_version="before_v9", text=r""" This input variable has the same definition as [[toldfe]] and is only relevant when [[tfkinfunc]] = 11. It sets a tolerance for absolute differences of total energy that, reached TWICE successively, will cause the initialization steps (without gradient correction) to stop and the gradient correction to be added. -Can be specified in Ha (the default), Ry, eV or Kelvin, since it has the -'ENERGY' characteristics. +Can be specified in Ha (the default), Ry, eV or Kelvin, since it has the [[ENERGY]] characteristics. """, ), @@ -16989,6 +19291,7 @@ defaultval=0, mnemonics="TIMe 1st order REVersal", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Allowed values are 0 or 1. @@ -17009,6 +19312,7 @@ defaultval=ValueWithConditions({'[[SEQUENTIAL]]': 1, 'defaultval': 0}), mnemonics="TIMing OPTion", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" This input variable allows one to modulate the use of the timing routines. @@ -17022,6 +19326,11 @@ * If 4 --> close to [[timopt]] = 1, except that the different parts of the lobpcg routine are timed in detail. A different splitting of lobpcg than for [[timopt]] = -3 is provided. + * If 10 --> relevant only when the wavelet basis set is used (i.e. [[usewvl]] = 1). + When activated, a file named `wvl_timings.yaml`, + in [YAML format](https://en.wikipedia.org/wiki/YAML), is created. + It contains a time analysis of the _BigDFT_ wavelet routines. + See the [[tutorial:paral_gswvl|tutorial on parallelism using wavelets]] * If -1 --> a full analysis of timings is delivered * If -2 --> a full analysis of timings is delivered, except timing the timer * If -3 --> a full analysis of timings is delivered, including the detailed @@ -17044,6 +19353,7 @@ dimensions="scalar", defaultval=30, mnemonics="TaiL maximum Number of PReConditioner Conjugate Gradient iterations", + added_in_version="before_v9", text=r""" This variable is similar to [[wvl_nprccg]] but for the preconditioner iterations during the tail corrections (see [[tl_radius]]). @@ -17059,6 +19369,7 @@ defaultval=0.0, mnemonics="TaiL expansion RADIUS", characteristics=['[[LENGTH]]'], + added_in_version="before_v9", text=r""" In the wavelet computation case, the linkage between the grid and the free boundary conditions can be smoothed using an exponential decay. This means a @@ -17077,6 +19388,7 @@ topics=['crystal_useful'], dimensions=[3, '[[nsym]]'], mnemonics="Translation NON-Symmorphic vectors", + added_in_version="before_v9", text=r""" Gives the (nonsymmorphic) translation vectors associated with the symmetries expressed in "[[symrel]]". @@ -17087,6 +19399,13 @@ When the symmetry finder is used (see [[nsym]]), [[tnons]] is computed automatically. +For the ground-state and DFPT drivers of ABINIT, the value of tnons is unrestricted. +However, for GW and BSE, the symmetry operations must leave the FFT grid invariant. +Preparatory (Ground-state) runs must also use the same atomic geometry, hence the same tnons. +As ABINIT cannot guess whether the user has in mind to do a GW or BSE run after the GS run, +a conservative approach is implemented, requiring such match of symmetry operations +and FFT grid also in the GS case. See more details in the section describing the input variable [[chksymtnons]]. + See also [[symafm]] for the complete description of the symmetry operation. """, ), @@ -17100,31 +19419,39 @@ defaultval=0.0, mnemonics="TOLerance on the DiFference of total Energy", characteristics=['[[ENERGY]]'], - commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[tolwfr]], [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] must differ from zero.", - excludes="[[tolwfr]] or [[toldff]] or [[tolrff]] or [[tolvrs]]", + commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] can differ from zero.", + excludes="[[toldff]] or [[tolrff]] or [[tolvrs]]", + added_in_version="before_v9", text=r""" Sets a tolerance for absolute differences of total energy that, reached TWICE successively, will cause one SCF cycle to stop (and ions to be moved). Can be specified in Ha (the default), Ry, eV or Kelvin, since [[toldfe]] has -the '[[ENERGY]]' characteristics (1 Ha = 27.2113845 eV). +the [[ENERGY]] characteristics (1 Ha = 27.2113845 eV). If set to zero, this stopping condition is ignored. Effective only when SCF cycles are done ([[iscf]]>0). Because of machine precision, it is not worth to try to obtain differences in energy that are smaller than about 1.0d-12 of the total energy. To get accurate stresses may be quite demanding. + When the geometry is optimized (relaxation of atomic positions or primitive -vectors), the use of [[toldfe]] is to be avoided. The use of [[toldff]] or -[[tolrff]] is by far preferable, in order to have a handle on the geometry +vectors), the use of [[toldfe]] is to be avoided. The use of [[tolrff]] +(or [[tolrff]]) is by far preferable, in order to have a handle on the geometry characteristics. When all forces vanish by symmetry (e.g. optimization of the lattice parameters of a high-symmetry crystal), then place [[toldfe]] to 1.0d-12, or use (better) [[tolvrs]]. -Since [[toldfe]], [[toldff]], [[tolrff]], [[tolvrs]] and [[tolwfr]] are aimed + +Since [[toldfe]], [[toldff]], [[tolrff]] and [[tolvrs]] are aimed at the same goal (causing the SCF cycle to stop), they are seen as a unique input variable at reading. Hence, it is forbidden that two of these input variables have non-zero values for the same dataset, or generically (for all datasets). However, a non-zero value for one such variable for one dataset will have precedence on the non-zero value for another input variable defined generically. + +**toldfe** can be coupled with [[tolwfr]]. In that case, SCF cycle is stopped when both criteria are satisfied. +To do so one has to specify both criteria for the same dataset. +Note that a tolerance defined generically does not couple with a criterion defined for one particular dataset. +See [[tolwfr]] for more details about coupling two criteria. """, ), @@ -17136,8 +19463,9 @@ dimensions="scalar", defaultval=0.0, mnemonics="TOLerance on the DiFference of Forces", - commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[tolwfr]], [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] must differ from zero.", - excludes="[[tolwfr]] or [[toldfe]] or [[tolrff]] or [[tolvrs]]", + commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] can differ from zero.", + excludes="[[toldfe]] or [[tolrff]] or [[tolvrs]]", + added_in_version="before_v9", text=r""" Sets a tolerance for differences of forces (in hartree/Bohr) that, reached TWICE successively, will cause one SCF cycle to stop (and ions to be moved). @@ -17149,12 +19477,17 @@ A value ten times smaller than [[tolmxf]] is suggested (for example 5.0d-6 hartree/Bohr). This stopping criterion is not allowed for RF calculations. -Since [[toldfe]], [[toldff]], [[tolrff]], [[tolvrs]] and [[tolwfr]] are aimed +Since [[toldfe]], [[toldff]], [[tolrff]] and [[tolvrs]] are aimed at the same goal (causing the SCF cycle to stop), they are seen as a unique input variable at reading. Hence, it is forbidden that two of these input variables have non-zero values for the same dataset, or generically (for all datasets). However, a non-zero value for one such variable for one dataset will have precedence on the non-zero value for another input variable defined generically. + +**toldff** can be coupled with [[tolwfr]]. In that case, SCF cycle is stopped when both criteria are satisfied. +To do so one has to specify both criteria for the same dataset. +Note that a tolerance defined generically does not couple with a criterion defined for one particular dataset. +See [[tolwfr]] for more details about coupling two criteria. """, ), @@ -17167,6 +19500,7 @@ defaultval=5e-05, mnemonics="TOLerance on the mean total energy for IMaGes", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Sets a maximal absolute energy tolerance (in hartree, averaged over dynamic images) below which iterations on images (the one governed by the @@ -17188,6 +19522,7 @@ defaultval=0.0, mnemonics="TOLerance on the MaXimal Difference in Energy", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Sets a maximal difference in energy with respect to the two previous steps below which BFGS structural relaxation iterations will stop. @@ -17205,6 +19540,7 @@ dimensions="scalar", defaultval=5e-05, mnemonics="TOLerance on the MaXimal Force", + added_in_version="before_v9", text=r""" Sets a maximal absolute force tolerance (in hartree/Bohr) below which BFGS structural relaxation iterations will stop. @@ -17228,6 +19564,7 @@ dimensions="scalar", defaultval=0.005, mnemonics="TOLerance on the Relative Difference of Eigenenergies", + added_in_version="before_v9", text=r""" Sets a tolerance for the ratio of differences of eigenenergies in the line minimisation conjugate-gradient algorithm. It compares the decrease of the @@ -17235,9 +19572,8 @@ first line minimisation. When the ratio is lower than [[tolrde]], the next line minimisations are skipped. The number of line minimisations is limited by [[nline]] anyhow. -This stopping criterion is present for both GS and RF calculations. In RF -calculations, [[tolrde]] is actually doubled before comparing with the above- -mentioned ratio, for historical reasons. +This stopping criterion is present only for band-by-band conjugate gradient ([[wfoptalg]] different than 1,4,14 and 114) and [[rmm_diis]], but both GS and RF calculations. +In RF calculations, [[tolrde]] is actually doubled before comparing with the above-mentioned ratio, for historical reasons. """, ), @@ -17249,8 +19585,9 @@ dimensions="scalar", defaultval=0.0, mnemonics="TOLerance on the Relative diFference of Forces", - commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[tolwfr]], [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] must differ from zero.", - excludes="[[tolwfr]] or [[toldfe]] or [[toldff]] or [[tolvrs]]'", + commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] can differ from zero.", + excludes="[[toldfe]] or [[toldff]] or [[tolvrs]]'", + added_in_version="before_v9", text=r""" Sets a tolerance for the ratio of differences of forces (in hartree/Bohr) to maximum force, that, reached TWICE successively, will cause one SCF cycle to @@ -17262,13 +19599,18 @@ configuration (select [[ionmov]]), or in case of molecular dynamics ([[ionmov]] = 1) A value of 0.02 is suggested. This stopping criterion is not allowed for RF calculations. -Since [[toldfe]], [[toldff]], [[tolrff]], [[tolvrs]] and [[tolwfr]] are aimed +Since [[toldfe]], [[toldff]], [[tolrff]] and [[tolvrs]] are aimed at the same goal (causing the SCF cycle to stop), they are seen as a unique input variable at reading. Hence, it is forbidden that two of these input variables have non-zero values for the same dataset, or generically (for all datasets). However, a non-zero value for one such variable for one dataset will have precedence on the non-zero value for another input variable defined generically. + +**tolrff** can be coupled with [[tolwfr]]. In that case, SCF cycle is stopped when both criteria are satisfied. +To do so one has to specify both criteria for the same dataset. +Note that a tolerance defined generically does not couple with a criterion defined for one particular dataset. +See [[tolwfr]] for more details about coupling two criteria. """, ), @@ -17278,8 +19620,9 @@ vartype="real", topics=['crystal_useful'], dimensions="scalar", - defaultval=1e-08, + defaultval=1e-05, mnemonics="TOLERANCE for SYMmetries", + added_in_version="before_v9", text=r""" Gives the tolerance on the atomic positions (reduced coordinates), primitive vectors, or magnetization, to be considered equivalent, thanks to symmetry @@ -17289,11 +19632,11 @@ 0.01 is considered to be unacceptable, whatever the value of [[tolsym]] (so, it is not worth to set [[tolsym]] bigger than 0.01). -Note: ABINIT needs the atomic positions to be symmetric to each others +Note: internally ABINIT relies on the atomic positions to be symmetric to each others within 1.e-8, irrespective of [[tolsym]]. -So, if [[tolsym]] is set to a larger value than 1.e-8, then the -input atomic coordinates will be nevertheless automatically symmetrized by the symmetry -operations that will have been found. +If [[tolsym]] is set to a larger value than 1.e-8 (and the default is larger than 1.e-8), then the +input atomic coordinates and lattice parameters are automatically re-symmetrized by the symmetry +operations that have been found. """ ), @@ -17305,8 +19648,9 @@ dimensions="scalar", defaultval=0.0, mnemonics="TOLerance on the potential V(r) ReSidual", - commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[tolwfr]], [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] must differ from zero.", - excludes="[[tolwfr]] or [[toldfe]] or [[toldff]] or [[tolrff]]'", + commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] can differ from zero.", + excludes="[[toldfe]] or [[toldff]] or [[tolrff]]'", + added_in_version="before_v9", text=r""" Sets a tolerance for potential residual that, when reached, will cause one SCF cycle to stop (and ions to be moved). @@ -17326,13 +19670,18 @@ of the residual of the potential (or the trace of the potential matrix, if the system is spin-polarized), then summing the square of this function over all FFT grid points. The result should be lower than [[tolvrs]]. -Since [[toldfe]], [[toldff]], [[tolrff]], [[tolvrs]] and [[tolwfr]] are aimed +Since [[toldfe]], [[toldff]], [[tolrff]] and [[tolvrs]] are aimed at the same goal (causing the SCF cycle to stop), they are seen as a unique input variable at reading. Hence, it is forbidden that two of these input variables have non-zero values for the same dataset, or generically (for all datasets). However, a non-zero value for one such variable for one dataset will have precedence on the non-zero value for another input variable defined generically. + +**tolvrs** can be coupled with [[tolwfr]]. In that case, SCF cycle is stopped when both criteria are satisfied. +To do so one has to specify both criteria for the same dataset. +Note that a tolerance defined generically does not couple with a criterion defined for one particular dataset. +See [[tolwfr]] for more details about coupling two criteria. """, ), @@ -17342,47 +19691,72 @@ vartype="real", topics=['SCFControl_basic'], dimensions="scalar", + mnemonics="TOLerance on the Wavefunction Residuals", defaultval=0.0, - mnemonics="TOLerance on WaveFunction squared Residual", - commentdefault="The default value implies that this stopping condition is ignored. For the SCF case, one and only one of the input tolerance criteria [[tolwfr]], [[toldff]], [[tolrff]], [[toldfe]] or [[tolvrs]] must differ from zero.", - excludes="[[toldfe]] or [[toldff]] or [[tolrff]] or [[tolvrs]]", + added_in_version="before_v9", text=r""" The signification of this tolerance depends on the basis set. In plane waves, it gives a convergence tolerance for the largest squared "residual" (defined below) for any given band. The squared residual is: - < nk|(H-E)2|nk >, E = < nk|H|nk > +$$ +\langle \nk| (H - \enk)^2 |\nk \rangle, \,\text{with}\; \enk = \langle \nk|H|\nk \rangle +$$ -which clearly is nonnegative and goes to 0 as the iterations converge to an -eigenstate. With the squared residual expressed in Hartrees 2 (Hartrees -squared), the largest squared residual (called residm) encountered over all -bands and k points must be less than [[tolwfr]] for iterations to halt due to -successful convergence. -Note that if [[iscf]]>0, this criterion should be replaced by those based on +which clearly is non-negative and goes to 0 as the iterations converge to an +eigenstate. With the squared residual expressed in Hartrees^2 (Hartrees +squared), the largest squared residual (called *residm* in the code) encountered over all +bands and k-points must be less than **tolwfr** for iterations to halt due to successful convergence. +Note that if [[iscf]] > 0, this criterion should be replaced by those based on [[toldfe]] (preferred for [[ionmov]] == 0), [[toldff]] [[tolrff]] (preferred for -[[ionmov]]/=0), or [[tolvrs]] (preferred for theoretical reasons!). -When [[tolwfr]] is 0.0, this criterion is ignored, and a finite value of -[[toldfe]], [[toldff]] or [[tolvrs]] must be specified. This also imposes a +[[ionmov]] /= 0), or [[tolvrs]] (preferred for theoretical reasons!). +When **tolwfr** is 0.0, this criterion is ignored, and a finite value of +[[toldfe]], [[toldff]], [[tolrff]] or [[tolvrs]] must be specified. This also imposes a restriction on taking an ion step; ion steps are not permitted unless the -largest squared residual is less than [[tolwfr]], ensuring accurate forces. +largest squared residual is less than **tolwfr**, ensuring accurate forces. To get accurate stresses may be quite demanding. -Note that the preparatory GS calculations before a RF calculations must be -highly converged. -Typical values for these preparatory runs are [[tolwfr]] between 1.0d-16 and 1.0d-22. +Note that the preparatory GS calculations before a RF calculations must be highly converged. +Typical values for these preparatory runs are **tolwfr** between 1.0d-16 and 1.0d-22. + +Note that **tolwfr** is often used in the test cases, but this is +purely for historical reasons: except when [[iscf]] < 0, **other criteria should be used**. +Indeed, the squared residual can be small even with non self-consistent density and potential. -Note that [[tolwfr]] is often used in the test cases, but this is [[tolwfr]] -purely for historical reasons: except when [[iscf]] <0, other criteria should be used. +**tolwfr** alone should not be used as SCF criterion, but it can be coupled with [[toldfe]], [[toldff]], [[tolrff]] or [[tolvrs]]. +In that case, SCF cycle is stopped when both criteria are satisfied. +That way one can insure that physical properties are converged (=SCF converged) while insuring that wavefunctions are converged. +For example, a ground state computations done before DFPT can use stringent values of **tolwfr** in addition to a desired criterion on self-consistency. + +**tolwfr** is coupled with an other tolerance only if both criteria are specified for one particular dataset, or if both criteria are given generically. +If a single criterion is given (for a single dataset or generically), it will not be coupled with another criterion (defined generically or for a single dataset, respectfully). In the wavelet case (see [[usewvl]] = 1), this criterion is the favoured one. -It is based on the norm 2 of the gradient of the wavefunctions. Typical values -range from 5*10 -4 to 5*10 -5. +It is based on the norm 2 of the gradient of the wavefunctions. +Typical values range from 5*10^-4 to 5*10^-5. +""", +), -Since [[toldfe]], [[toldff]], [[tolrff]], [[tolvrs]] and [[tolwfr]] are aimed -at the same goal (causing the SCF cycle to stop), they are seen as a unique -input variable at reading. Hence, it is forbidden that two of these input -variables have non-zero values for the same dataset, or generically (for all -datasets). However, a non-zero value for one such variable for one dataset -will have precedence on the non-zero value for another input variable defined generically. +Variable( + abivarname="tolwfr_diago", + varset="basic", + vartype="real", + topics=['SCFControl_expert'], + dimensions="scalar", + defaultval="[[tolwfr]]", + mnemonics="TOLerance on WaveFunction squared Residual at the DIAGOnalization level", + added_in_version="9.11.3", + text=r""" +This criterion is the same than [[tolwfr]], but used to control the diagonalization algorithm instead of the SCF cycles. +In practice it is used to reduce the number of "lines" done at the diagonalization step (see [[nline]]), saving computational time. +If the squared residual becomes lower than **tolwfr_diago**, the remaining "lines" to be done are skipped. +For LOBPCG, "lines" are skipped if the biggest squared residual of the block is less than **tolwfr_diago**. +If **tolwfr_diago**=0, [[nline]] "lines" are done at every self-consistent step. +By default **tolwfr_diago** is equal to [[tolwfr]], but can be used independently. +One can use [[tolvrs]] (or any other tolerance) to define a criterion for SCF cycles, and use **tolwfr_diago** to save computational time. +However, when [[tolwfr]]>0, **tolwfr_diago**>[[tolwfr]] is forbidden as the SCF cycles cannot converge in that case. + +For [[wfoptalg]]=114 only (LOBPCG), if **tolwfr_diago**=0 then it is set to 1e-20 internally. +As a consequence, to ensure that no lines are skipped one has to set **tolwfr_diago**=1e-30 in the input (instead of 0) in this particular case. """, ), @@ -17395,17 +19769,18 @@ defaultval=0.0, mnemonics="Temperature (PHYSical) of the ELectrons", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" -Gives, in Hartree, the physical temperature of the system, in case -[[occopt]] = 4, 5, 6, or 7. +Gives, in Hartree, the physical temperature of the system, in case [[occopt]] = 4, 5, 6, or 7. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[tphysel]] has the -'[[ENERGY]]' characteristics (0.001 Ha = 27.2113845 meV = 315.773 Kelvin). One +[[ENERGY]] characteristics (0.001 Ha = 27.2113845 meV = 315.773 Kelvin). One has to specify an independent broadening [[tsmear]]. The combination of the two parameters [[tphysel]] and [[tsmear]] is described in [[cite:Verstraete2002]]. Note that the signification of the entropy is modified with respect to the usual entropy. The choice has been made to use [[tsmear]] as a prefactor of the entropy, to define the entropy contribution to the free energy. +Note that [[tphysel]] might be used as parameter for Free Energy exchange-correlation functionals (see [[ixc]]). """, ), @@ -17418,10 +19793,11 @@ defaultval=0.01, mnemonics="Temperature of SMEARing", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Gives the broadening of occupation numbers [[occ]], in the metallic cases ([[occopt]] = 3, 4, 5, 6 and 7). Can be specified in Ha (the default), eV, Ry, -or Kelvin, since [[tsmear]] has the '[[ENERGY]]' characteristics (0.001 Ha = +or Kelvin, since [[tsmear]] has the [[ENERGY]] characteristics (0.001 Ha = 27.2113845 meV = 315.773 Kelvin). Default is 0.01 Ha. This should be OK using gaussian like smearings ([[occopt]] = 4,5,6,7) for a free-electron metal like Al. For d-band metals, you may need to @@ -17445,6 +19821,7 @@ dimensions=ValueWithConditions({'[[natrd]]<[[natom]]': [3, '[[natrd]]'], 'defaultval': [3, '[[natom]]']}), defaultval=ValueWithConditions({'[[natom]] == 1': 1, 'defaultval': None}), mnemonics="TYPe of AToms", + added_in_version="before_v9", text=r""" Array giving an integer label to every atom in the unit cell to denote its type. @@ -17457,7 +19834,7 @@ typat 1 2 3 3 3 The array [[typat]] has to agree with the actual locations of atoms given in -[[xred]], [[xcart]] or [[xangst]], and the input of pseudopotentials has to +[[xred]] or [[xcart]], and the input of pseudopotentials has to be ordered to agree with the atoms identified in [[typat]]. The nuclear charge of the elements, given by the array [[znucl]], also must agree with the type of atoms designated in "[[typat]]". @@ -17476,18 +19853,18 @@ abivarname="ucrpa", varset="gw", vartype="integer", - topics=['CRPA_compulsory'], + topics=['CalcUJ_compulsory'], dimensions="scalar", defaultval=0, mnemonics="calculation of the screened interaction U with the Constrained RPA method", requires="[[nspinor]] == 1", + added_in_version="before_v9", text=r""" When equal to one or two, this variable allows one to calculate U with -the cRPA method. An explicit test is shown in automatic tests -[[test:v7_23]], [[test:v7_24]], [[test:v7_25]], [[test:v7_68]], and [[test:v7_69]]. +the cRPA method. The present implementation is parallelized (as for usual GW calculations), use symmetry over k points only for calculations involving one -correlated atom, and can be use when correlated bands are entangled or not. +correlated atom, and can be used when correlated bands are entangled or not. The constrained calculation of the polarisability can be done by eliminating transition betweens correlated bands (and not orbitals) with the variable [[ucrpa_bands]]. @@ -17513,11 +19890,12 @@ abivarname="ucrpa_bands", varset="gw", vartype="integer", - topics=['CRPA_basic'], + topics=['CalcUJ_basic'], dimensions=[2], defaultval=[-1, -1], mnemonics="For the calculation of U with the Constrained RPA method, gives correlated BANDS", commentdefault="That is, the default includes no band.", + added_in_version="before_v9", text=r""" Gives the first and last correlated bands for the cRPA calculation of the polarisability. """, @@ -17527,11 +19905,12 @@ abivarname="ucrpa_window", varset="gw", vartype="real", - topics=['CRPA_basic'], + topics=['CalcUJ_basic'], dimensions=[2], defaultval=[-1, -1], mnemonics="For the calculation of U with the Constrained RPA method, gives energy WINDOW", commentdefault="That is, the energy window is empty by default.", + added_in_version="before_v9", text=r""" Specify a window of energy for the cRPA calculation of the polarisability. The transition inside this window will not be taken into account in the @@ -17550,6 +19929,7 @@ dimensions=[2], mnemonics="Upper limit on DaTa SETs", commentdefault="It is not used when it is not defined", + added_in_version="before_v9", text=r""" Used to define the set of indices in the multi-data set mode, when a double loop is needed (see later). @@ -17584,6 +19964,7 @@ mnemonics="value of U for PAW+U", characteristics=['[[ENERGY]]'], requires="[[usepaw]] == 1 and [[usepawu]] == 1", + added_in_version="before_v9", text=r""" Gives the value of the screened coulomb interaction between correlated electrons corresponding to [[lpawu]] for each species. @@ -17592,7 +19973,9 @@ be REMOVED from the self energy. In particular, for G0 W0 calculations (perturbative calculations), the energy eigenvalues obtained after an underlying DFT+U calculation will be -$E_{GW} = E_{DFT+U} + < \\phi | Self-energy - U | \\phi>$ + +$$E_{GW} = E_{DFT+U} + < \phi | Self-energy - U | \phi>$$ + Actually, in order to perform a GW @ DFT+U calculation, one should define the same value of U in the self-energy calculation, than the one defined in the DFT calculation. The easiest is actually to define the value of U for the @@ -17626,41 +20009,24 @@ mnemonics="USE the GEMM routine for the application of the NON-Local OPerator", characteristics=['[[DEVELOP]]'], commentdefault="because it is not usually worth using it unless bandpp is large and it requires additional memory", + added_in_version="before_v9", text=r""" -This keyword tells abinit to use a BLAS routine to speed up the computation of +This keyword tells abinit to use a BLAS3 routine to speed up the computation of the non-local operator. This requires the pre-computation of a large matrix, and has a significant memory overhead. In exchange, it provides improved performance when used on several bands at once (Chebyshev or LOBPCG algorithm -with [[bandpp]] +with [[bandpp] > 1] The memory overhead is proportional to the number of atoms, the number of plane waves, and the number of projectors per atom. It can be mitigated by distributing the array with [[npfft]] - The performance depends crucially on having a good BLAS installed. Provided the BLAS supports OpenMP, this option also yields very good scaling for the nonlocal operator. -""", -), - -Variable( - abivarname="use_gpu_cuda", - varset="paral", - vartype="integer", - topics=['parallelism_expert'], - dimensions="scalar", - defaultval=ValueWithConditions({'[[optdriver]] == 0 and [[CUDA]]': 1, 'defaultval': 0}), - mnemonics="activate USE of GPU accelerators with CUDA (nvidia)", - text=r""" -Only available if ABINIT executable has been compiled with cuda nvcc compiler. -This parameter activates the use of NVidia graphic accelerators (GPU) if present. -If [[use_gpu_cuda]] = 1, some parts of the computation are transmitted to the GPUs. -If [[use_gpu_cuda]] = 0, no computation is done on GPUs, even if present. -Note that, while running ABINIT on GPUs, it is recommended to use MAGMA -external library (i.e. Lapack on GPUs). The latter is activated during -compilation stage (see "configure" step of ABINIT compilation process). If -MAGMA is not used, ABINIT performances on GPUs can be poor. +This option is available only if [[useylm]] is 1. ABINIT will automatically set [[useylm]] to 1 +if [[use_gemm_nonlop]] is set to 1 in the input file (actually, this is only needed when NC pseudos are used as +PAW already uses 1 for [[useylm]]). """, ), @@ -17674,6 +20040,7 @@ mnemonics="USE NON-SCF calculation of GKK matrix elements (electron phonon)", characteristics=['[[DEVELOP]]'], commentdefault="Default is 0 for the moment. Do not use non-scf method.", + added_in_version="before_v9", text=r""" When this flag is activated during a phonon calculation with abinit, all of the perturbations are cycled through, but only the symmetry-irreducible ones @@ -17705,23 +20072,12 @@ defaultval=0, mnemonics="USE ScaLapacK", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" If set to 1, enable the use of ScaLapack within LOBPCG. """, ), -Variable( - abivarname="use_yaml", - varset="dev", - vartype="integer", - topics=[], - dimensions="scalar", - defaultval=0, - mnemonics="USE YAML", - characteristics=['[[DEVELOP]]'], - text="If set to 1, enable the printing of YAML document in ouput.", -), - Variable( abivarname="usedmatpu", varset="paw", @@ -17731,11 +20087,12 @@ defaultval=0, mnemonics="USE of an initial Density MATrix in Paw+U", requires="[[usepaw]] == 1 and [[usepawu]] == 1", + added_in_version="before_v9", text=r""" When [[usedmatpu]]/=0, an initial density matrix (given by [[dmatpawu]] keyword) is used and kept fixed during the first ABS([[usedmatpu]]) SCF steps. This starting value of the density matrix can be useful to find the correct -ground state. Within LDA+U formalism, finding the minimal energy of the system +ground state. Within DFT+U formalism, finding the minimal energy of the system is tricky; thus it is advised to test several values of the initial density matrix. Note also that the density matrix has to respect some symmetry rules @@ -17758,6 +20115,7 @@ defaultval=0, mnemonics="USE Dynamical Mean Field Theory", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" If set to 1, enable the use of DFT+DMFT, see in particular the important variables [[dmft_solv]], [[dmftbandi]], [[dmftbandf]], [[dmft_nwli]], @@ -17820,6 +20178,7 @@ defaultval=0, mnemonics="USE of EXact EXCHange", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" When [[useexexch]] = 1, the hybrid functional PBE0 is used in PAW, inside PAW spheres only, and only for correlated orbitals given by [[lexexch]]. To change @@ -17836,6 +20195,7 @@ defaultval=0, mnemonics="USE FOCK exact exchange", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable is automatically set to 1 when the value of [[ixc]] refers to an Hartree-Fock calculation or hybrid functionals. @@ -17853,12 +20213,13 @@ dimensions="scalar", defaultval=0, mnemonics="USE Kinetic energy DENsity", + added_in_version="before_v9", text=r""" If [[usekden]] = 1 the kinetic energy density will be computed during the self-consistent loop, in a way similar to the computation of the density. This is needed if a meta-GGA is to be used as XC functional. By default ([[usekden]] = 0), the kinetic energy density is not computed during the self- -consistent loop. +consistent loop. [[usekden]] = 1 is not yet allowed with [[nspden]]=4 (non-collinear magnetism). """, ), @@ -17871,6 +20232,7 @@ defaultval="[[AUTO_FROM_PSP]]", mnemonics="USE Projector Augmented Waves method", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This variable is determined by the pseudopotentials files. PAW calculations (see [[tutorial:paw1]]) can only be performed with PAW atomic data input files, @@ -17889,24 +20251,31 @@ defaultval=0, mnemonics="USE PAW+U (spherical part)", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" Must be non-zero if a DFT+U calculation is done, or if a GW calculation -following a DFT+U calculation is done (important!). +following a DFT+U calculation is done (important!), or if a DMFT calculation is done.. - * If set to 0, the LDA+U method is not used. + * If set to 0, the DFT+U method is not used. - * If set to 1, 2 or 4, the LDA+U method (cf [[cite:Anisimov1991a]]) is used. + * If the absolute value is set to 1, 2 or 4, the DFT+U method (cf [[cite:Anisimov1991a]]) is used. The full rotationally invariant formulation is used (see Eq. (3) of [[cite:Liechtenstein1995]]) for the interaction term of the energy. Three choices are allowed concerning the double counting term: - * If [[usepawu]] = 1, the Full Localized Limit (FLL) (or Atomic limit) double counting is used (cf Eq. (4) of [[cite:Liechtenstein1995]] or Eq. (8) of [[cite:Czyzyk1994]]). + * If abs([[usepawu]]) = 1 or 10, the Full Localized Limit (FLL) (or Atomic limit) double counting is used (cf Eq. (4) of [[cite:Liechtenstein1995]] or Eq. (8) of [[cite:Czyzyk1994]]). - * If [[usepawu]] = 2, the Around Mean Field (AMF) double counting is used (cf Eq. (7) of [[cite:Czyzyk1994]]). Not valid if nspinor=2. + * If abs([[usepawu]]) = 2, the Around Mean Field (AMF) double counting is used (cf Eq. (7) of [[cite:Czyzyk1994]]). Not valid if nspinor=2. - * If [[usepawu]] = 4, the FLL double counting is used. However, and in comparison to usepaw=1, the calculation is done without + * If abs([[usepawu]]) = 4 or 14, the FLL double counting is used. However, and in comparison to usepaw=1, the calculation is done without polarization in the exchange correlation functional (cf [[cite:Park2015]] and [[cite:Chen2016a]]). In this case, one must use [[iscf]]<10. -If LDA+U is activated ([[usepawu]] = 1 or 2), the [[lpawu]], [[upawu]] and +For DMFT calculations [[usedmft]]=1, only [[usepawu]]=10 or 14 is permitted. For other types of calculations, abs([[usepawu]])=10 or 14 cannot be used. +Positive and negative values of [[usedmft]], only differ by their internal implementation. At some stage, only positive values will be used again. + +If [[nspden]] = 4 (non-collinear calculations) with GGA, one needs to use [[pawxcdev]] = 1, +and either abs([[usepawu]])=0, 1, 4, 10 or 14. + +If DFT+U is activated ([[usepawu]]/=0), the [[lpawu]], [[upawu]] and [[jpawu]] input variables are read. The implementation is done inside PAW augmentation regions only (cf [[cite:Bengone2000]]). The initial density matrix can be given in the input file (see [[usedmatpu]]). @@ -17929,8 +20298,7 @@ smaller U than the one used in the DFT calculation. See the description of the [[upawu]] input variable. - -Suggested acknowledgment:[[cite:Amadon2008a]]. +Suggested acknowledgment [[cite:Amadon2008a]]. """, ), @@ -17944,6 +20312,7 @@ defaultval=1, mnemonics="USE of PEAD formalism", requires="[[optdriver]] == 5 (non-linear response computations)", + added_in_version="before_v9", text=r""" Determine which non-linear implementation is used. If [[usepead]]=1, the Perturbation Expansion After Discretization formalism is used, as in [[cite:Veithen2005]]. @@ -17964,15 +20333,19 @@ abivarname="usepotzero", varset="dev", vartype="integer", - topics=['Coulomb_useful'], + topics=['Coulomb_useful','Verification_useful'], dimensions="scalar", defaultval=0, mnemonics="USE POTential ZERO", + added_in_version="before_v9", text=r""" Fix the convention for the choice of the average value of the Hartree potential, as described in [[cite:Bruneval2014]]. + * [[usepotzero]] = 0, the usual convention: the smooth potential is set to zero average value. + * [[usepotzero]] = 1, the new convention: the all-electron physical potential is set to zero average value. - * [[usepotzero]] = 2, the PWscf convention: the potential of equivalent point charges is set to + + * [[usepotzero]] = 2, the QE/PWscf convention: the potential of equivalent point charges is set to zero average value (convention also valid for NC pseudopotentials). """, ), @@ -17986,6 +20359,7 @@ defaultval=0, mnemonics="USE RECursion", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" This internal variable is set to 1 when the recursion method is activated (see [[tfkinfunc]]). """, @@ -17999,6 +20373,7 @@ dimensions="scalar", defaultval=0, mnemonics="USER Integer variable A", + added_in_version="before_v9", text=r""" These are user-definable integers which the user may input and then utilize in subroutines of his/her own design. They are not used in the official versions @@ -18016,6 +20391,7 @@ dimensions="scalar", defaultval=0, mnemonics="USER Integer variable B", + added_in_version="before_v9", text=r""" These are user-definable integers which the user may input and then utilize in subroutines of his/her own design. They are not used in the official versions @@ -18033,6 +20409,7 @@ dimensions="scalar", defaultval=0, mnemonics="USER Integer variable C", + added_in_version="before_v9", text=r""" These are user-definable integers which the user may input and then utilize in subroutines of his/her own design. They are not used in the official versions @@ -18050,6 +20427,7 @@ dimensions="scalar", defaultval=0, mnemonics="USER Integer variable D", + added_in_version="before_v9", text=r""" These are user-definable integers which the user may input and then utilize in subroutines of his/her own design. They are not used in the official versions @@ -18067,6 +20445,7 @@ dimensions="scalar", defaultval=0, mnemonics="USER Integer variable E", + added_in_version="before_v9", text=r""" These are user-definable integers which the user may input and then utilize in subroutines of his/her own design. They are not used in the official versions @@ -18084,6 +20463,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="USER Real variable A", + added_in_version="before_v9", text=r""" These are user-definable with the same purpose as [[useria]] and cie. """, @@ -18097,6 +20477,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="USER Real variable B", + added_in_version="before_v9", text=r""" These are user-definable with the same purpose as [[useria]] and cie. """, @@ -18110,6 +20491,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="USER Real variable C", + added_in_version="before_v9", text=r""" These are user-definable with the same purpose as [[useria]] and cie. """, @@ -18123,6 +20505,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="USER Real variable D", + added_in_version="before_v9", text=r""" These are user-definable with the same purpose as [[useria]] and cie. """, @@ -18136,6 +20519,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="USER Real variable E", + added_in_version="before_v9", text=r""" These are user-definable with the same purpose as [[useria]] and cie. """, @@ -18150,6 +20534,7 @@ defaultval=0, mnemonics="Use WaVeLet basis set", commentdefault="use plane-wave basis set", + added_in_version="before_v9", text=r""" Used to define if the calculation is done on a wavelet basis set or not. The values of [[usewvl]] must be 0 or 1. Putting [[usewvl]] to 1, makes @@ -18174,17 +20559,34 @@ defaultval=-1, mnemonics="USE eXchange-Correlation with NHAT (compensation charge density)", requires="[[usepaw]] == 1", + added_in_version="before_v9", text=r""" This flag determines how the exchange-correlation terms are computed for the pseudo-density. -When [[usexcnhat]] = 0, exchange-correlation potential does not include the -compensation charge density, i.e. $V_{xc}=V_{xc}(\\tilde{n}_{core} + \\tilde{n}_{valence})$. -When [[usexcnhat]] = 1, exchange-correlation potential includes the compensation -charge density, i.e. $V_{xc}=V_{xc}(\\tilde{n}_{core} + \\tilde{n}_{valence}+\\hat{n})$. -When [[usexcnhat]] = -1,the value of [[usexcnhat]] is determined from the -reading of the PAW dataset file (pseudopotential file). When PAW datasets with -different treatment of $V_{xc}$ are used in the same run, the code stops. + + * When **usexcnhat** = 0, the exchange-correlation potential does not include the +compensation charge density, i.e. $V_{xc}=V_{xc}(\tilde{n}_{core} + \tilde{n}_{valence})$. + + * When **usexcnhat** = 1, the exchange-correlation potential includes the compensation +charge density, i.e. $V_{xc}=V_{xc}(\tilde{n}_{core} + \tilde{n}_{valence}+\hat{n})$. + + * When **usexcnhat** = -1,the value of **usexcnhat** is determined from the +reading of the PAW dataset file (pseudopotential file). + +When PAW datasets with different treatment of $V_{xc}$ are used in the same run, the code stops. + +The difference between these treatments has been studied in detail in [[cite:Torrent2010]]. +The choice **usexcnhat** = 1 is implemented in VASP and QE, but **usexcnhat** = 0 is not available in these software (as of 2022). +However, in [[cite:Torrent2010]] several advantages of the choice **usexcnhat** = 0 are made clear. + +The value **usexcnhat** = 0 corresponds to Bloechl form, see Eq.(2) of [[cite:Torrent2010]]. +The PAW atomic datasets from JTH table [[cite:Jollet2014]] yield **usexcnhat** = 0 by default, +and it is expected that all future versions of this table will also yield **usexcnhat** = 0 by default.. +The value **usexcnhat** = 1 corresponds to Kresse form, see Eq.(3) of [[cite:Torrent2010]]. +With ABINIT, only the oldest PAW atomic datasets favour **usexcnhat** = 1. + +Still, the ABINIT user has both options. """, ), @@ -18192,11 +20594,12 @@ abivarname="useylm", varset="dev", vartype="integer", - topics=['TuningSpeed_expert'], + topics=['TuningSpeedMem_expert'], dimensions="scalar", - defaultval=ValueWithConditions({'[[tfkinfunc]] == 1': 1, '[[usepaw]] == 1': 1, 'defaultval': 0}), + defaultval=ValueWithConditions({'[[usepaw]] == 1': 1, '[[gpu_option]] > 0': 1, '[[tfkinfunc]] == 1': 1, 'defaultval': 0}), mnemonics="USE YLM (the spherical harmonics)", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" When this flag is activated, the non-local operator is applied using an algorithm based on spherical harmonics. Non-local projectors are used with @@ -18216,6 +20619,7 @@ dimensions=['[[vacnum]]'], mnemonics="VACancies LiST", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the identification number(s) of atoms to be subtracted from the set of atoms that are obtained after having rotated, translated and repeated the objects. @@ -18231,6 +20635,7 @@ dimensions="scalar", defaultval=0, mnemonics="VACancies NUMber", + added_in_version="before_v9", text=r""" Gives the number of atoms to be subtracted from the list of atoms after the rotations, translations and repetitions have been done. The list of these @@ -18246,6 +20651,7 @@ dimensions=[3], mnemonics="VACUUM identification", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Establishes the presence (if [[vacuum]] = 1) or absence (if [[vacuum]] = 0) of a vacuum layer, along the three possible directions normal to the primitive axes. @@ -18272,12 +20678,13 @@ defaultval=10.0, mnemonics="VACuum WIDTH", characteristics=['[[INPUT_ONLY]]', '[[LENGTH]]'], + added_in_version="before_v9", text=r""" Give a minimum "projected" distance between atoms to be found in order to declare that there is some [[vacuum]] present for each of the three directions. By default, given in Bohr atomic units (1 Bohr=0.5291772108 Angstroms), although Angstrom can be specified, if preferred, since -[[vacwidth]] has the '[[LENGTH]]' characteristics. +[[vacwidth]] has the [[LENGTH]] characteristics. The precise requirement is that a slab of width [[vacwidth]], delimited by two planes of constant reduced coordinates in the investigated direction, must be empty of atoms. """, @@ -18285,26 +20692,34 @@ Variable( abivarname="vcutgeo", - varset="gw", + varset="gstate", vartype="real", - topics=['GWls_compulsory', 'Susceptibility_basic', 'SelfEnergy_basic'], + topics=['Coulomb_useful','GWls_compulsory', 'Susceptibility_basic', 'SelfEnergy_basic'], dimensions=[3], defaultval=MultipleValue(number=3, value=0.0), mnemonics="V (potential) CUT-off GEOmetry", requires="[[icutcoul]] in [1,2]", - text=r""" -[[vcutgeo]] is used in conjunction with [[icutcoul]] to specify the geometry -used to truncate the Coulomb interaction, as well as the particular approach -to be used. It has a meaning only for the cylindrical symmetry -([[icutcoul]] = 1) or in the case of surfaces ([[icutcoul]] = 2). For each + added_in_version="before_v9", + text=r""" +[[vcutgeo]] is used in conjunction with [[icutcoul]], [[fock_icutcoul]] and/or [[gw_icutcoul]] +to specify the geometry used to truncate the Coulomb interaction, as well as the particular approach +to be used. It has a meaning either for a periodic one-dimensional system, typically +a nanowire, nanotube or polymer surrounded by vacuum separating the system +from images in neighbouring cells +([[icutcoul]] = 1) or in the case of periodic two-dimensional system, +typically a slab with vacuum separating it from images in neighbouring cells ([[icutcoul]] = 2). + +When a non-zero component of this three-dimensional vector is non-zero, this indicate that the system is +periodic along this dimension. Note that the components of this vector are real numbers, which is +useful in the current implementation of the Rozzi methods [[cite:Rozzi2006]]. Of course, just specifying 0 or 1 is allowed, +but will be read as 0.0 or 1.0. + +For each geometry, two different definitions of the cutoff region are available (see -Phys. Rev. B 73, 233103 and Phys. Rev. B 73, 205119 for a complete description -of the methods) - -In the method of Ismail-Beigi [[cite:Ismail-Beigi2006]], the cutoff region is given by the -Wigner-Seitz cell centered on the axis of the cylinder. The cutoff region is -thus automatically defined by the unit cell and there is no need to specify -When [[rcut]]. +[[cite:Ismail-Beigi2006]] and [[cite:Rozzi2006]] for a complete description +of the methods). +The Beigi method is used by default. The Rozzi method is used if [[rcut]] is not at its default value (0.0), or if +one component of [[vcutgeo]] is negative. To define a cylinder along the z-axis use the following lines: ``` @@ -18312,14 +20727,18 @@ vcutgeo 0 0 1 ``` -Please note that the method of Ismail-Beigi is implemented only in the case if an +Please note that the method of Ismail-Beigi is implemented only in the case of an orthorhombic Bravais lattice. For hexagonal lattices, one has to use the method of Rozzi [[cite:Rozzi2006]]. In this case, the interaction is truncated -in a finite cylinder. Contrarily to the first approach, here one has to +in a finite cylinder. Contrarily to the first approach, the user has to specify both the radius of the cylinder with [[rcut]] as well as the length of -the cylinder along the periodic dimension that should always be smaller than +the cylinder along the periodic dimension, that should always be smaller than the extension of the Born von Karman box. The length of the cylinder is given -in terms of the fraction of the primitive vector along the periodic direction. +in terms of a multiple of the primitive vector along the periodic direction. +Another option provided by Rozzi [[cite:Rozzi2006]] is the infinite length cylinder. +In order to activate it in ABINIT, +one needs to use a very large negative [[vcutgeo]] value on the third direction +(i.e. vcutgeo(3) <= -999). For example, in order to define a finite cylinder along z of radius 2.5 Bohr and length 3*R3, @@ -18329,25 +20748,31 @@ rcut 2.5 ``` -For surface calculations ([[icutcoul]] = 2), [[vcutgeo]] is used to define the -two periodic directions defining the surface. Also in this case two different +For two-dimensional systems ([[icutcoul]] = 2), [[vcutgeo]] is used to define the +two periodic directions. Also in this case two different techniques are available. In the method of Ismail-Beigi, the (positive) non-zero components of vcutgeo define the periodic directions of the infinite surface. -The interaction is truncated within a slab of width L where L is the length of -the primitive vector of the lattice along the non-periodic dimension. For +The interaction is truncated within a slab of width L where L is the projection of +the primitive vector of the lattice along the direction perpendicular to the periodic plane. For example: ``` icutcoul 2 vcutgeo 1 1 0 ``` +At present, the implementation of the Beigi technique for two-dimensional systems is restricted +to the periodic directions being in the x-y plane. -It is also possible to define a finite -surface by employing negative values. For example: +In Rozzi's method, it is also possible to define a finite range +for the Coulomb interaction in the periodic directions by employing negative values. For example: ``` icutcoul 2 vcutgeo -3 -2 0 ``` **Definition to be added** + +Note that not all k-point grids are allowed in these 1D and 2D cases: +the k point vector component(s) along non-periodic direction(s) must vanish. +So, if the 2D Ismail-Beigi technique is used, the z-component of the k points must vanish. """, ), @@ -18361,6 +20786,7 @@ mnemonics="vdW-DF MINimum Angular CUT-off", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build angular meshes for the vdW-DF kernel. """, @@ -18376,6 +20802,7 @@ mnemonics="""vdW-DF Angle RATIO between the highest and lowest angles.""", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build angular meshes for the vdW-DF kernel. """, @@ -18391,6 +20818,7 @@ mnemonics="vdW-DF Delta for Angles, MAXimum", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build angular meshes for the vdW-DF kernel. """, @@ -18406,6 +20834,7 @@ mnemonics="vdW-DF Delta for Angles, MINimum", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build angular meshes for the vdW-DF kernel. """, @@ -18421,6 +20850,7 @@ mnemonics="vdW-DF D-mesh CUT-off", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18437,6 +20867,7 @@ lowest D, RATIO.""", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18452,6 +20883,7 @@ mnemonics="vdW-DF Distance for SOFTening.", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18467,6 +20899,7 @@ mnemonics="vdW-DF G-space CUT-off", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to filter the vdW-DF kernel in reciprocal space. """, @@ -18482,6 +20915,7 @@ mnemonics="vdW-DF Number of D-mesh PoinTS", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18497,6 +20931,7 @@ mnemonics="vdW-DF Number of G-mesh PoinTS", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18512,6 +20947,7 @@ mnemonics="vdW-DF Number of Q-mesh PoinTS", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18527,6 +20963,7 @@ mnemonics="vdW-DF Number of R-PoinTS", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to define the sampling of the vdW-DF-kernel in real-space. """, @@ -18542,6 +20979,7 @@ mnemonics="vdW-DF Number of SMOOTHening iterations", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to exponentially smoothen q near q0. """, @@ -18557,6 +20995,7 @@ mnemonics="vdW-DF PHI value SOFTening.", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18572,6 +21011,7 @@ mnemonics="vdW-DF Q-mesh CUT-off", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18587,6 +21027,7 @@ mnemonics="vdW-DF, between highest and lowest Q, RATIO.", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0,. """, @@ -18602,6 +21043,7 @@ mnemonics="vdW-DF Real-space CUT-off", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to define the vdW-DF kernel cut-off radius. """, @@ -18617,6 +21059,7 @@ mnemonics="vdW-DF radius SOFTening.", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18632,6 +21075,7 @@ mnemonics="vdW-DF energy calculation THRESHOLD", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Sets a threshold for the energy gradient that, when reached, will cause the vdW-DF interactions to be calculated. @@ -18651,6 +21095,7 @@ mnemonics="vdW-DF global TOLERANCE.", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. """, @@ -18666,6 +21111,7 @@ mnemonics="vdW-DF TWEAKS.", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, to build the vdW-DF kernel. @@ -18687,6 +21133,7 @@ mnemonics="vdW-DF ZAB parameter", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]]>0", + added_in_version="before_v9", text=r""" Used when [[vdw_xc]]>0, as introduced in [[cite:Dion2004]]. """, @@ -18702,6 +21149,7 @@ mnemonics="Van Der Waals Number of interacting FRAGments", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]] in [10,11]", + added_in_version="before_v9", text=r""" The absolute value of vdw_nfrag is the number of vdW interacting fragments in the unit cell. As wannierization takes place in reciprocal space, the MLWF @@ -18723,6 +21171,7 @@ mnemonics="Van Der Waals correction from Wannier functions in SUPERCELL", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]] in [10,11]", + added_in_version="before_v9", text=r""" Set of dimensionless positive numbers which define the maximum multiples of the primitive translations ([[rprimd]]) in the supercell construction. Each @@ -18746,6 +21195,7 @@ mnemonics="Van Der Waals TOLerance", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]] == 5", + added_in_version="before_v9", text=r""" The DFT-D methods [[cite:Grimme2010]] dispersion potentials, [[vdw_xc]] == 5 or 6 or 7, include a pair potential. The number of pairs of atoms contributing to @@ -18765,6 +21215,7 @@ characteristics=['[[DEVELOP]]'], commentdefault="Do include the 3-body term in the correction", requires="[[vdw_xc]] == 6", + added_in_version="before_v9", text=r""" Control the computation of the 3-body correction inside DFT-D3 dispersion correction (Grimme approach) to the total energy: @@ -18798,6 +21249,7 @@ mnemonics="Van Der Waals TYPe of FRAGment", characteristics=['[[DEVELOP]]'], requires="[[vdw_xc]] in [10,11]", + added_in_version="before_v9", text=r""" This array defines the interacting fragments by assigning to each atom an integer index from 1 to **vdw_nfrag**. The ordering of [[vdw_typfrag]] is the @@ -18817,21 +21269,22 @@ defaultval=0, mnemonics="Van Der Waals eXchange-Correlation functional", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" Selects a van-der-Waals density functional to apply the corresponding correction to the exchange-correlation energy. If set to zero, no correction -will be applied. +will be applied. For response functions, only [[vdw_xc]]=5, 6 and 7 have been implemented (obviously also 0).. Possible values are: * 0: no correction. - * 1: apply vdW-DF1 (DRSLL) from [[cite:Dion2004]]. - * 2: apply vdw-DF2 (LMKLL) from [[cite:Lee2010]]. - * 5: apply vdw-DFT-D2 as proposed by S. Grimme [[cite:Grimme2006]] (adding a semi-empirical dispersion potential). Available only for ground-state calculations and response functions; see [[vdw_tol]] variable to control convergence. - * 6: apply vdw-DFT-D3 as proposed by S. Grimme [[cite:Grimme2010]] (refined version of DFT-D2). Available only for ground-state calculations and response functions; see [[vdw_tol]] variable to control convergence and [[vdw_tol_3bt]] variable to include 3-body corrections. - * 7: apply vdw-DFT-D3(BJ) as proposed by Grimme (based on Becke-Jonhson method from [[cite:Becke2006]]). Available only for ground-state calculations and response functions; see [[vdw_tol]] variable to control convergence. - * 10: evaluate the vdW correlation energy from maximally localized Wannier functions, as proposed by P. L. Silvestrelli, also known as vdW-WF1 method [[cite:Silvestrelli2008]]. For details on this implementation please check [[cite:Espejo2012]]. The improvements introduced by Andrinopoulos _et al._ [[cite:Andrinopoulos2011]], namely the amalgamation procedure, splitting of p-like MLWFs into two s-like Wannier functions and fractional occupation of MLWFs are performed automatically. - * 11: evaluate the vdW correlation energy from maximally localized Wannier functions, as proposed by A. Ambrosetti and P. L. Silvestrelli, also known as vdW-WF2 method [[cite:Ambrosetti2012]]. - * 14: apply DFT/vdW-QHO-WF method as proposed by Silvestrelli, which combines the quantum harmonic oscillator-model with localized Wannier functions [[cite:Silvestrelli2013]]. For periodic systems a supercell approach has to be used since **vdw_supercell** is not enabled in this case. + * 1: apply vdW-DF1 (DRSLL) from [[cite:Dion2004]]. Not available for response functions. + * 2: apply vdw-DF2 (LMKLL) from [[cite:Lee2010]]. Not available for response functions. + * 5: apply vdw-DFT-D2 as proposed by S. Grimme [[cite:Grimme2006]] (adding a semi-empirical dispersion potential). Available for ground-state calculations and response functions; see [[vdw_tol]] variable to control convergence. + * 6: apply vdw-DFT-D3 as proposed by S. Grimme [[cite:Grimme2010]] (refined version of DFT-D2). Available for ground-state calculations and response functions; see [[vdw_tol]] variable to control convergence and [[vdw_tol_3bt]] variable to include 3-body corrections. + * 7: apply vdw-DFT-D3(BJ) as proposed by Grimme (based on Becke-Jonhson method from [[cite:Becke2006]]). Available for ground-state calculations and response functions; see [[vdw_tol]] variable to control convergence. + * 10: evaluate the vdW correlation energy from maximally localized Wannier functions, as proposed by P. L. Silvestrelli, also known as vdW-WF1 method [[cite:Silvestrelli2008]]. For details on this implementation please check [[cite:Espejo2012]]. The improvements introduced by Andrinopoulos _et al._ [[cite:Andrinopoulos2011]], namely the amalgamation procedure, splitting of p-like MLWFs into two s-like Wannier functions and fractional occupation of MLWFs are performed automatically. Not available for response functions. + * 11: evaluate the vdW correlation energy from maximally localized Wannier functions, as proposed by A. Ambrosetti and P. L. Silvestrelli, also known as vdW-WF2 method [[cite:Ambrosetti2012]]. Not available for response functions. + * 14: apply DFT/vdW-QHO-WF method as proposed by Silvestrelli, which combines the quantum harmonic oscillator-model with localized Wannier functions [[cite:Silvestrelli2013]]. For periodic systems a supercell approach has to be used since **vdw_supercell** is not enabled in this case. Not available for response functions. For [[vdw_xc]] = 1 and [[vdw_xc]] = 2, the implementation follows the strategy devised in the article of Roman-Perez and Soler [[cite:Romanperez2009]]. @@ -18849,6 +21302,7 @@ characteristics=['[[EVOLVING]]'], commentdims="It is represented internally as [[vel]](3,[[natom]],[[nimage]])", requires="[[ionmov]] > 0", + added_in_version="before_v9", text=r""" Gives the starting velocities of atoms, in cartesian coordinates, in Bohr/atomic time units (atomic time units given where [[dtion]] is described). @@ -18873,6 +21327,7 @@ commentdims="It is represented internally as [[vel_cell]](3,3,[[nimage]])", requires="""[[imgmov]] in [9,13] and [[optcell]] > 0 (Path-Integral Molecular Dynamics with NPT algorithm)""", + added_in_version="before_v9", text=r""" Irrelevant unless [[imgmov]] = 9 or 13 and [[optcell]]>0 (Path-Integral Molecular Dynamics with NPT algorithm). @@ -18889,6 +21344,7 @@ dimensions="scalar", defaultval=100, mnemonics="VIScosity", + added_in_version="before_v9", text=r""" The equation of motion is: @@ -18906,6 +21362,29 @@ """, ), +Variable( + abivarname="vloc_rcut", + varset="dev", + vartype="real", + topics=['Planewaves_expert'], + dimensions="scalar", + defaultval=6.0, + mnemonics="VLOCal Radial CUToff", + characteristics=['[[LENGTH]]'], + added_in_version="9.8.0", + text=r""" +This variable defines the cutoff for the radial mesh used to compute `epsatm` +(the alpha term in the total energy due to the pseudos) and the Bessel transform +for the local part in the case of NC pseudos given in UPF2 format. + +This parameter can be used to cut off the numerical noise arising from the large-r tail when integrating V_loc(r) - Z_v/r. +In QE, vloc_rcut is harcoded to 10 Bohr but numerical experiments showed that such value leads to oscillations +in the second order derivatives of the vloc form factors. +For this reason, the default value in Abinit is set to 6.0. +""", +), + + Variable( abivarname="vprtrb", varset="ffield", @@ -18916,10 +21395,11 @@ mnemonics="potential -V- for the PeRTuRBation", characteristics=['[[DEVELOP]]', '[[ENERGY]]'], requires="[[qprtrb]]", + added_in_version="before_v9", text=r""" Gives the real and imaginary parts of a scalar potential perturbation. Can be specified in Ha (the default), Ry, eV or Kelvin, since [[vprtrb]] has the -'[[ENERGY]]' characteristics. +[[ENERGY]] characteristics. This is made available for testing responses to such perturbations. The form of the perturbation, which is added to the local potential, is: @@ -18937,6 +21417,7 @@ defaultval=1, mnemonics="Wannier90- INItial PROJections", requires="[[prtwant]] == 2 or [[prtwant]] == 3", + added_in_version="before_v9", text=r""" In order to find the Maximally Localized Wannier Functions, the user has to provide an initial guess. A set of localized trial orbitals is chosen @@ -18965,6 +21446,7 @@ mnemonics="Wannier90- PRINT UNKp.s file", commentdefault="""The default is set to zero because UNKp.s files occupy a lot of memory.""", requires="[[prtwant]] == 2 or [[prtwant]] == 3", + added_in_version="before_v9", text=r""" Defines whether or not the UNKp.s file will be printed. @@ -19009,6 +21491,26 @@ """, ), +Variable( + abivarname="wfinit", + varset="gstate", + vartype="integer", + topics=['TuningSpeedMem_useful','SCFAlgorithms_useful','PseudosPAW_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="WaveFunctions INITialization", + added_in_version="9.9.0", + text=r""" +This option specifies how to initialize the wavefunctions in the case of GS calculations. +It requires pseudos with pseudized wavefunctions e.g. UPF2. +Possible values are: + + * 0: Start from random wavefunctions (default) + * 1: Use atomic orbitals + random numbers. + * 2: Use atomic orbitals without random numbers. +""", +), + Variable( abivarname="wfmix", varset="gstate", @@ -19018,6 +21520,7 @@ defaultval=1.0, mnemonics="WaveFunctions MIXing factor", requires="[[usefock]] > 0 and [[nnsclohf]] >0 and [[fockoptmix]]/100 > 0", + added_in_version="before_v9", text=r""" When the wavefunctions are determined using a SCF double loop (hybrid functionals), [[wfmix]] provides the mixing factor to obtain the new input @@ -19042,6 +21545,7 @@ mnemonics="WaveFunction OPTimisation ALGorithm", characteristics=['[[DEVELOP]]'], commentdefault="0 when [[usepaw]] = 0 (norm-conserving pseudopotentials), 10 when [[usepaw]] = 1 (PAW); 114 if [[paral_kgb]] = 1.", + added_in_version="before_v9", text=r""" Allows one to choose the algorithm for the optimisation of the wavefunctions. The different possibilities are: @@ -19071,12 +21575,80 @@ * [[wfoptalg]] = 1: new algorithm based on Chebyshev filtering, designed for very large number of processors, in the regime where LOBPCG does not scale anymore. It is not able to use preconditionning and therefore might converge slower than other algorithms. By design, it will **not** converge the last bands: it is recommended to use slightly more bands than necessary. - For usage with [[tolwfr]], it is imperative to use [[nbdbuf]]. For more performance, try [[use_gemm_nonlop]]. - For more information, see the [performance guide](../../theory/howto_chebfi.pdf) and the [[cite:Levitt2015]]. Status: experimental but usable. + For usage with [[tolwfr_diago]], it is imperative to use [[nbdbuf]]. For more performance, try [[use_gemm_nonlop]]. + For more information, see the [performance guide](/theory/howto_chebfi.pdf) and the [[cite:Levitt2015]]. Status: experimental but usable. Questions and bug reports should be sent to antoine (dot) levitt (at) gmail.com. """, ), +Variable( + abivarname="write_files", + varset="files", + vartype="string", + topics=['printing_prgs'], + dimensions="scalar", + defaultval="default", + mnemonics="write files", + added_in_version="9.11.0", + text=r""" +Supra-variable controlling the underlying printing options of the prt-type variables. +It can be used as a simple string flagging the desired outputs as follows: + + * "default" --> An empty string will produce only the log and abo files + * "none" --> It will deactivate all printing options currently available. Only the log and abo file will be produced following a calculation. + * "ddb" --> Activates the printing of the DDB file. Refer to [[prtddb]] for further documentation. + * "den_1" --> Activates the printing of the density file under option 1 of the [[prtden]] variable. + * "den_2" --> Activates the printing of the density file under option 2 of the [[prtden]] variable. + * "den_3" --> Activates the printing of the density file under option 3 of the [[prtden]] variable. + * "den_4" --> Activates the printing of the density file under option 4 of the [[prtden]] variable. + * "den_5" --> Activates the printing of the density file under option 5 of the [[prtden]] variable. + * "den_6" --> Activates the printing of the density file under option 6 of the [[prtden]] variable. + * "den_7" --> Activates the printing of the density file under option 7 of the [[prtden]] variable. + * "dos_1" --> Activates the printing of the density of states file under option 1 of the [[prtdos]] variable. + * "dos_2" --> Activates the printing of the density of states file under option 2 of the [[prtdos]] variable. + * "dos_3" --> Activates the printing of the density of states file under option 3 of the [[prtdos]] variable. + * "dos_4" --> Activates the printing of the density of states file under option 4 of the [[prtdos]] variable. + * "dos_5" --> Activates the printing of the density of states file under option 5 of the [[prtdos]] variable. + * "dosm_1" --> Activates the printing of the density of states file with M decomposition. Refer to [[prtdosm]] variable for further documentation. + * "ebands_1" --> Activates the printing of the electronic bands using option 1 as in [[prtebands]]. + * "ebands_2" --> Activates the printing of the electronic bands using option 2 as in [[prtebands]]. + * "eig" --> Activates the printing of the eigenvalues file. Refer to [[prteig]] for further documentation. + * "elf" --> Activates the printing of the electron localization function. Refer to [[prtelf]] for further documentation. + * "evk" --> Activates the printing of the netCDF EVK file. Refer to [[prtevk]] for further documentation. + * "fsurf" --> Activates the printing of the Fermi surface file. Refer to [[prtfsurf]] for further documentation. + * "gden" --> Activates the printing of the gradient of the electronic density file. Refer to [[prtgden]] for further documentation. + * "geo" --> Activates the printing of the geometry analysis. Refer to [[prtgeo]] for further documentation. + * "gkk" --> Activates the printing of the GKK matrix file. Refer to [[prtgkk]] for further documentation. + * "gsr" --> Activates the printing of the GSR file. Refer to [[prtgsr]] for further documention. + * "hist" --> Activates the printing of the HIST file. Refer to [[prthist]] for further documentation. + * "kbff" --> Activates the printing of the Kleynman-Bylander form factors. Refer to [[prtkbff]] for further documentation. + * "kden" --> Activates the printing of the kinetic energy density file. Refer to [[prtkden]] for further documentation. + * "lden" --> Activates the printing of the Laplacian of the eletronic density. Refer to [[prtlden]] for further documentation. + * "ncout" --> Activates the printing of the OUT file in netCDF format. Refer to [[ncout]] for further documentation. + * "pot" --> Activates the printing of the total potential. Refer to [[prtpot]] for further documentation. + * "psps_1" --> Activates the printing of the pseudopotential tables in netCDF format. Refer to [[prtpsps]] for further documentation. + * "psps_-1" --> Activates the printing of the pseudopotential tables in netCDF format with code exit after printing. Refer to [[prtpsps]] for further documentation. + * "stm" --> Activates the printing of the STM density. Refer to [[prtstm]] for further documentation. + * "suscep" --> Activates the printing of the susceptibility file. Refer to [[prtsuscep]] for further documentation. + * "vclmb_1" --> Activates the printing of the Coulomb potential. Refer to [[prtvclmb]] for further documentation. + * "vclmb_2" --> Activates the printing of the Coulomb potential. Refer to [[prtvclmb]] for further documentation. + * "vha" --> Activates the printing of the Hartree potential. Refer to [[prtvha]] for further documentation. + * "vhxc" --> Activates the printing of the sum of the Hartree and XC potentials. Refer to [[prtvhxc]] for further documentation. + * "vpsp" --> Activates the printing of the local pseudopotential. Refer to [[prtvpsp]] for further documentation. + * "vxc" --> Activates the printing of the XC potential. Refer to [[prtvxc]] for further documentation. + * "want_1" --> Activates the printing of the Wannierization in different settings. Refer to [[prtwant]] for further documentation. + * "want_2" --> Activates the printing of the Wannierization in different settings. Refer to [[prtwant]] for further documentation. + * "want_2" --> Activates the printing of the Wannierization in different settings. Refer to [[prtwant]] for further documentation. + * "wf_1" --> Activates the printing of the wavefunction file. Refer to [[prtwf]] for further documentation. + * "wf_full_1" --> Activates the printing of the wavefunction file on the full mesh. Refer to [[prtwf_full]] for further documentation. + * "wf_2" --> Activates the printing of the wavefunction file. Refer to [[prtwf]] for further documentation. + * "wf_3" --> Activates the printing of the wavefunction file. Refer to [[prtwf]] for further documentation. + * "wf_-1" --> Activates the printing of the wavefunction file. Refer to [[prtwf]] for further documentation. + * "xml" --> Activates the printing of the xml file. Refer to [[prtxml]] for further documentation. +""", +), + + Variable( abivarname="wtatcon", varset="rlx", @@ -19086,6 +21658,7 @@ defaultval=0, mnemonics="WeighTs for AToms in CONstraint equations", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" Gives the weights determining how the motion of atoms is constrained during structural optimization or molecular dynamics (see [[nconeq]], [[natcon]], @@ -19116,6 +21689,7 @@ defaultval=MultipleValue(number='[[nkpt]]', value=1.0), mnemonics="WeighTs for K points", commentdefault="Except when [[kptopt]]/=0", + added_in_version="before_v9", text=r""" Gives the k point weights. The k point weights will have their sum (re)normalized to 1 (unless @@ -19135,6 +21709,7 @@ defaultval=1, mnemonics="WeighTs for the current Q-points", commentdefault="Except when [[qptopt]]/=0", + added_in_version="before_v9", text=r""" Gives the current q-point weight. """, @@ -19148,6 +21723,7 @@ dimensions="scalar", defaultval=0, mnemonics="WaVeLet BIGDFT Comparison", + added_in_version="before_v9", text=r""" This variable is used for the wavelets capabilities of ABINIT (see [[usewvl]]). It is used to compare the results obtained with ABINIT with those obtained @@ -19164,6 +21740,7 @@ dimensions="scalar", defaultval=6.0, mnemonics="WaVeLet Coarse grid Radius MULTiplier", + added_in_version="before_v9", text=r""" This factor is used to define the expansion of the coarse resolution grid in the case of wavelets (see [[usewvl]]). The grid is made of points inside @@ -19181,6 +21758,7 @@ dimensions="scalar", defaultval=10.0, mnemonics="WaVeLet Fine grid Radius MULTiplier", + added_in_version="before_v9", text=r""" This factor is used to define the expansion of the fine resolution grid in the case of wavelets (see [[usewvl]]). This fine resolution grid has the same @@ -19202,6 +21780,7 @@ defaultval=0.5, mnemonics="WaVeLet H step GRID", characteristics=['[[LENGTH]]'], + added_in_version="before_v9", text=r""" It gives the step size in real space for the grid resolution in the wavelet basis set. This value is highly responsible for the memory occupation in the @@ -19217,6 +21796,7 @@ dimensions=[2], defaultval=[1, 100], mnemonics="WaVeLet Number of GAUSSians", + added_in_version="before_v9", text=r""" In the wavelet-PAW computation case, projectors may be fitted to a sum of complex Gaussians. The fit is done for [[wvl_ngauss]](1), [[wvl_ngauss]](1)+1... up @@ -19232,6 +21812,7 @@ dimensions="scalar", defaultval=5, mnemonics="WaVeLet maximum Number of PReConditioner Conjugate Gradient iterations", + added_in_version="before_v9", text=r""" In the wavelet computation case, the wavefunctions are directly minimised using a real-space preconditioner. This preconditioner has internally some @@ -19241,25 +21822,18 @@ ), Variable( - abivarname="xangst", - varset="basic", - vartype="real", - topics=['crystal_compulsory'], - dimensions=[3, 'min([[natom]],[[natrd]])'], - mnemonics="vectors (X) of atom positions in cartesian coordinates -length in ANGSTrom-", - characteristics=['[[INPUT_ONLY]]'], + abivarname="x1rdm", + varset="gw", + vartype="integer", + topics=['GW_expert', 'SelfEnergy_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="EXchange-only 1-Reduced Density Matrix", + requires="[[optdriver]] == 4", + added_in_version="9.4.0", text=r""" -Gives the cartesian coordinates of atoms within unit cell, in angstrom. This -information is redundant with that supplied by array [[xred]] or [[xcart]]. -If [[xred]] and [[xangst]] are ABSENT from the input file and [[xcart]] is -provided, then the values of [[xred]] will be computed from the provided -[[xcart]] (i.e. the user may use xangst instead of [[xred]] or [[xcart]] to -provide starting coordinates). -One and only one of [[xred]], [[xcart]] and [[xangst]] must be provided. -The conversion factor between Bohr and Angstrom is 1 Bohr=0.5291772108 -Angstrom, see the [NIST site](http://physics.nist.gov/cuu/Constants/index.html). -Atomic positions evolve if [[ionmov]]/=0. In constrast with [[xred]] and -[[xcart]], [[xangst]] is not internal. +[[x1rdm]]==1 forces the update of the density-matrix using only the exchange operator (instead of exchange and GW correlation). +It must be used with [[gwcalctyp]]==21 and [[gw1rdm]]>0. """, ), @@ -19272,6 +21846,7 @@ defaultval=1e-14, mnemonics="eXchange-Correlation - DENsity POSitivity value", characteristics=['[[DEVELOP]]'], + added_in_version="before_v9", text=r""" For the evaluation of the exchange-correlation functionals, the density cannot be negative, or even too small (e.g. the LDA exchange kernel behaves like the @@ -19285,7 +21860,33 @@ It has been observed that the SCF cycle of the Tran-Blaha mGGA can be quite hard to make converge, for systems for which there is some vacuum. In this -case, setting [[xc_denpos]] to 1.0e-7 ... 1.0e-6 has been seen to allow good +case, setting first [[xc_taupos]] to 1.0e-7 ... 1.0e-6 , and increasing if necessary [[xc_denpos]] +has been seen to allow good convergence. Of course, this will affect the numerical results somehow, +and one should play a bit with this value to avoid incorrect calculations. +""", +), + +Variable( + abivarname="xc_taupos", + varset="dev", + vartype="real", + topics=['xc_expert'], + dimensions="scalar", + defaultval="[[xc_denpos]]", + mnemonics="eXchange-Correlation - TAU kinetic energy DENsity POSitivity value", + characteristics=['[[DEVELOP]]'], + added_in_version="9.10.4", + text=r""" +For the evaluation of the meta-GGA exchange-correlation functionals, +the kinetic energy density (usually named tau) cannot be negative, or even too small. +[[xc_taupos]] is the smallest value that the kinetic energy density can assume +at the time of the evaluation of a XC functional, in ABINIT. +When then computed kinetic energy density drops below [[xc_taupos]] before +attacking the evaluation of the XC functional, then it will be replaced by [[xc_denpos]]. + +It has been observed that the SCF cycle using meta-GGA functionals can be quite +hard to make converge, for systems for which there is some vacuum. In this +case, setting [[xc_taupos]] to 1.0e-7 ... 1.0e-6 has been seen to allow good convergence. Of course, this will affect the numerical results somehow, and one should play a bit with this value to avoid incorrect calculations. """, @@ -19299,9 +21900,10 @@ dimensions="scalar", defaultval=99.99, mnemonics="Value of the c parameter in the eXchange-Correlation TB09 functional", + added_in_version="before_v9", text=r""" The modified Becke-Johnson exchange-correlation functional by -[[cite:Tran2009 | Tran and Blaha]] reads: +[[cite:Tran2009 | Tran and Blaha]] (acronym TB09, used when [[ixc]]=-12208, which needs [[usekden]]=1) reads: $$ V_x(r) = c V_x^{BR}(r) + @@ -19310,7 +21912,7 @@ where $\rho(r)$ is the electron density, $t(r)$ is the kinetic-energy density, and -$ V_x^{BR}(r)$ is the Becke-Roussel potential. +$V_x^{BR}(r)$ is the Becke-Roussel potential. In this equation the parameter $c$ can be evaluated at each SCF step according to the following equation: @@ -19334,17 +21936,17 @@ dimensions=[3, 'min([[natom]],[[natrd]])'], mnemonics="vectors (X) of atom positions in CARTesian coordinates", characteristics=['[[EVOLVING]]', '[[LENGTH]]'], + added_in_version="before_v9", text=r""" Gives the cartesian coordinates of atoms within unit cell. This information is -redundant with that supplied by array [[xred]] or [[xangst]]. By default, +redundant with that supplied by array [[xred]]. By default, [[xcart]] is given in Bohr atomic units (1 Bohr=0.5291772108 Angstroms), -although Angstrom can be specified, if preferred, since [[xcart]] has the -'[[LENGTH]]' characteristics. -If [[xred]] and [[xangst]] are ABSENT from the input file and [[xcart]] is +although Angstrom can be specified, if preferred, since [[xcart]] has the [[LENGTH]] characteristics. +If [[xred]] are ABSENT from the input file and [[xcart]] is provided, then the values of [[xred]] will be computed from the provided -[[xcart]] (i.e. the user may use [[xcart]] instead of [[xred]] or [[xangst]] +[[xcart]] (i.e. the user may use [[xcart]] instead of [[xred]] to provide starting coordinates). -One and only one of [[xred]], [[xcart]] and **xangst** must be provided. +One and only one of [[xred]] or [[xcart]] must be provided. Atomic positions evolve if [[ionmov]]/=0. """, ), @@ -19358,6 +21960,7 @@ defaultval=0, mnemonics="eXchange Correlation functional LEVEL", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" Automatically determined from the value of [[ixc]]. @@ -19378,21 +21981,25 @@ mnemonics="vectors (X) of atom positions in REDuced coordinates", characteristics=['[[EVOLVING]]'], commentdims="represented internally as xred(3,[[natom]],[[nimage]])", + added_in_version="before_v9", text=r""" Gives the atomic locations within unit cell in coordinates relative to real -space primitive translations (NOT in cartesian coordinates). Thus these are +space primitive translations (**NOT in cartesian coordinates**). Thus these are fractional numbers typically between 0 and 1 and are dimensionless. The cartesian coordinates of atoms (in Bohr) are given by: -R_cartesian = xred1*rprimd1+xred2*rprimd2+xred3*rprimd3 +R_cartesian = xred1 * rprimd1 + xred2 * rprimd2 + xred3 * rprimd3 where (xred1,xred2,xred3) are the "reduced coordinates" given in columns of "[[xred]]", (rprimd1,rprimd2,rprimd3) are the columns of primitive vectors array "[[rprimd]]" in Bohr. If you prefer to work only with cartesian coordinates, you may work entirely -with "[[xcart]]" or "[[xangst]]" and ignore [[xred]], in which case [[xred]] +with "[[xcart]]" and ignore [[xred]], in which case [[xred]] must be absent from the input file. -One and only one of [[xred]], [[xcart]] and [[xangst]] must be provided. +One and only one of [[xred]] or [[xcart]] must be provided. Atomic positions evolve if [[ionmov]]/=0. + +The echo of [[xcart]] in the main output file is accompanied by its echo in Angstrom, +named `xangst`. """, ), @@ -19400,11 +22007,12 @@ abivarname="xredsph_extra", varset="gstate", vartype="real", - topics=['printing_prdos'], + topics=['printing_prdos','AtomCentered_useful'], dimensions=[3, '[[natsph_extra]]'], defaultval=MultipleValue(number=None, value=0.0), mnemonics="X(position) in REDuced coordinates of the SPHeres for dos projection in the EXTRA set", requires="[[natsph_extra]] > 0", + added_in_version="before_v9", text=r""" The positions in reduced coordinates of extra spheres used in the DOS projection, simulating an STS signal. See [[natsph_extra]] for a more complete description. @@ -19419,9 +22027,10 @@ dimensions="scalar", mnemonics="XYZ FILE input for geometry", characteristics=['[[INPUT_ONLY]]'], + added_in_version="before_v9", text=r""" Gives the name of a xyz format file, to take [[natom]], [[ntypat]], [[typat]], -[[znucl]], and [[xangst]] from. This input can not be mixed with normal atom +[[znucl]], and [[xcart]] (in Angstrom) from it. This input can not be mixed with normal atom specifications for other datasets. Notes: do not quote the file name in the abinit input file, simply leave a @@ -19440,25 +22049,31 @@ defaultval=0.0036749326, mnemonics="Z-CUT", characteristics=['[[ENERGY]]'], - commentdefault="0.0036749326 Ha = 0.1 eV", - requires="[[optdriver]] in [3,4,99]", + commentdefault="0.1 eV (0.0036749326 Ha)", + requires="[[optdriver]] in [3, 4, 7, 99]", + added_in_version="before_v9", text=r""" It is meant to avoid some divergences that might occur during the evaluation of the Adler-Wiser expression of the irreducible polarizability ([[optdriver]] = 3) or during the numerical treatment of the integrals defining the contribution to the self-energy matrix elements ([[optdriver]] = 4). If the -denominator becomes smaller than [[zcut]], a small imaginary part (depending -on [[zcut]]) is added, in order to avoid the divergence. +denominator becomes smaller than **zcut**, a small imaginary part (depending +on **zcut**) is added, in order to avoid the divergence. -When [[optdriver]] = 99, [[zcut]] defines the small complex shift used to avoid +When [[optdriver]] = 99, **zcut** defines the small complex shift used to avoid divergences in the expression for the macroscopic dielectric function. It simulates the experimental uncertainty and the finite lifetime of the quasi-particles (although the true lifetime should be k- and band-dependent). -The value of [[zcut]] affects the number of iteration needed to achieve -convergence in the Haydock iterative method. In this case, [[zcut]] should be +The value of **zcut** affects the number of iteration needed to achieve +convergence in the Haydock iterative method. In this case, **zcut** should be larger than the typical distance between the eigenvalues of the exciton Hamiltonian. -Ideally, one should make a convergence study decreasing the value of [[zcut]] +Ideally, one should make a convergence study decreasing the value of **zcut** for increasing number of k points. + +When [[optdriver]] = 7, **zcut** defines the small complex shift used to avoid +divergences in the expression for the Fan-Migdal e-ph self-energy. +Note that the default value is too large for e-ph calculations, smaller values of the order +of 0.001 or 0.001 eV should be used (and carefully tested). """, ), @@ -19471,6 +22086,7 @@ defaultval=0, mnemonics="ZEEMAN FIELD", characteristics=['[[MAGNETIC_FIELD]]'], + added_in_version="before_v9", text=r""" Give the value of the Zeeman field, $H$, acting on the spinorial wavefunctions. Note that Tesla are admitted. This sets the magnitude of $\mu_0H$, in Tesla, @@ -19487,8 +22103,9 @@ defaultval="[[AUTO_FROM_PSP]]", mnemonics="Z (charge) of the IONs for the different TYPes of AToms", characteristics=['[[INTERNAL_ONLY]]'], + added_in_version="before_v9", text=r""" -Charge of the pseudo-ion (=number of valence electrons that are needed to +Charge of the pseudo-ion (defined as the number of valence electrons that are needed to screen exactly the pseudopotential). """, ), @@ -19501,6 +22118,7 @@ dimensions=['[[npsp]]'], mnemonics="charge -Z- of the NUCLeus", characteristics=['[[NO_MULTI]]'], + added_in_version="before_v9", text=r""" Gives nuclear charge for each type of pseudopotential, in order. If [[znucl]] does not agree with nuclear charge, as given in pseudopotential @@ -19514,7 +22132,7 @@ with only a jellium surface, ABINIT sets arbitrarily the covalent radius to one. """, ), -#{"abinit_version": "8.7.3"}, + Variable( abivarname="tmesh", varset="eph", @@ -19523,10 +22141,13 @@ defaultval=[5.0, 59.0, 6.0], dimensions=[3], mnemonics="Temperature MESH", + added_in_version="8.7.3", text=r""" This variable defines the linear mesh of temperatures used in the EPH code ([[optdriver]] = 7). -The first entry gives the initial temperature in Kelvin, the second entry the linear step in Kelvin, -the third entry is the number of points in the mesh. The default value corresponds to 6 points between 5 K and 300 K. +The first entry gives the **initial** temperature in Kelvin, +the second entry the **linear step** in Kelvin, +the third entry is the **number of points** in the mesh. +The default value corresponds to 6 points between 5 K and 300 K. """, ), @@ -19539,13 +22160,15 @@ dimensions="scalar", requires="[[iomode]] == 3", mnemonics="PRinT Kleynman-Bylander Form Factors", + added_in_version="8.7.3", text=r""" This input variable activates the output of the Kleynman-Bylander form factors in the **netcdf** WFK file produced at the end of the ground-state calculation. Remember to set [[iomode]] to 3. The form factors are needed to compute the matrix elements of the commutator [Vnl, r] of the non-local part of the (NC) pseudopotentials. -This WFK file can therefore be used to perform optical and/or many-body calculations with external codes such as DP/EXC and Yambo. +This WFK file can therefore be used to perform optical and/or many-body calculations with external +codes such as DP/EXC and Yambo. The option is ignored if PAW. !!! important @@ -19565,18 +22188,20 @@ dimensions=[3], requires="[[optdriver]] in [4, 7]", mnemonics="SIGMA: Number of Grid points for K PoinTs generation", + added_in_version="9.0.0", text=r""" This variable allows the user to specify the list of k-points in the self-energy $\Sigma_{n\kk}$ -in terms of a homogeneous mesh in the IBZ instead of the traditional approach based -on [[nkptgw]], [[kptgw]], [[bdgw]]. +in terms of a homogeneous mesh in the IBZ instead of the traditional approach based on [[nkptgw]], [[kptgw]], [[bdgw]]. The specification in terms of sigma_ngkpt is easier to use in particular when -the self-energy is needed on a sub-mesh. -The use of this variables requires a range of bands specified via [[gw_qprange]]. +the self-energy is needed on a sub-mesh used to generate the input WFK file. + +The set of bands can be specified either with [[sigma_erange]] or [[gw_qprange]]. +[[sigma_erange]] is the recommended approach when computing transport properties. !!! important - sigma_ngkpt and [[nkptgw]] and [[sigma_erange]] are mutually exclusive. + sigma_ngkpt and [[nkptgw]] are mutually exclusive. """, ), @@ -19589,6 +22214,7 @@ dimensions="scalar", requires="[[optdriver]] in [4, 7] and [[sigma_shiftk]]", mnemonics="SIGMA: Number of SHIFTs for K point grids", + added_in_version="9.0.0", text=r""" The number of shifts in [[sigma_shiftk]]. """, @@ -19604,6 +22230,7 @@ requires="[[optdriver]] in [4, 7] and [[sigma_nshiftk]]", mnemonics="SHIFT for K points", excludes="[[sigma_erange]] or [[nkptgw]]", + added_in_version="9.0.0", text=r""" The shifts of the k-mesh used to define the list of k-points for the computation of the electron self-energy $\Sigma_{n\kk}$. @@ -19623,28 +22250,64 @@ defaultval=0, dimensions="scalar", requires="[[optdriver]] == 8", - mnemonics="WFK TASK", + mnemonics="WaveFunction at K TASK", + added_in_version="9.0.0", text=r""" -This variable defines the quantity to compute starting from a previously generated WFK file. +This variable defines the quantity that should be computed starting from a previously generated WFK file. Possible values are: - * "wfk_full" --> Read WFK file and produce new WFK file with k-points in the full BZ. - Wavefunctions with [[istwfk]] > 2 are automatically converted into the full G-sphere representation. - This option can be used to interface Abinit with external tools requiring k-points in the full BZ. + * "wfk_fullbz" --> Read input WFK file and produce new WFK file with $\kk$-points in the full BZ. + Wavefunctions with [[istwfk]] > 2 are automatically converted into the full G-sphere representation. + This option can be used to interface Abinit with external tools (e.g. lobster) requiring $\kk$-points in the full BZ. + Use [[iomode]] = 3 and [[prtkbff]] = 1 to produce a WFK file in netcdf format with Kleynmann-Bylander form factors. + + * "wfk_einterp" --> Read energies from WFK file and interpolate the band structure with the modified SKW method [[cite:Pickett1988]], + using the parameters specified by [[einterp]]. + + * "wfk_ddk" --> Compute velocity matrix elements for all bands and $\kk$-points found the input WFK file. + The code generates three `_EVK.nc` netcdf files with the matrix element of the $\frac{d}{d{\kk_i}}$ + operator using the same list of $\kk$-points found in the input WFK file i.e. the same value of [[kptopt]]. + These files can then be passed to optics via the `ddkfile_1, ddkfile_2, ddkfile_3` variables + without having to call the DFPT part that is much more expensive at the level of memory. + + Please note that, at present, the computation of non-linear optical properties in optic requires + [[kptopt]] = 3 i.e. $\kk$-points in the full BZ whereas the computation of linear optical properties + can take advantage of spatial and time-reversal symmetries. + If you use **wfk_ddk** to generate input files for optics, please make sure that your input WFK file + has the correct value of [[kptopt]] according to the physical properties you want to compute. + + In other words, don't use a WFK with [[kptopt]] != 3 if you plan to compute non-linear optical properties. + To work around the limitation of the non-linear part of optics, one can use "wfk_optics_fullbz" + to generate WKF and EVK files in the full BZ starting from a WFK defined in the IBZ. - * "wfk_einterp" --> Read energies from WFK file and interpolate band structure using the parameters specified by [[einterp]]. + * "wfk_optics_fullbz" --> Similar to "wfk_ddk" but accepts a WFK with wavefunctions in the IBZ + and generates a new WFK and three `_EVK.nc` files with $\kk$-points in the full BZ. + This procedure is equivalent to performing a NSCF + DDK calculation with [[kptopt]] = 3 as documented + in the tutorial [[tutorial:optic]] for non-linear optical properties but it is much faster and, most importantly, + less memory demanding. - * "wfk_ddk" --> Compute DDK matrix elements for all bands and k-points in the WFK file. - The contribution due to the non-local part of the pseudopotential can be ignored - by setting [[inclvkb]] = 0 (not recommended unless you know what you are doing). + * "wfk_kpts_erange" --> Read WFK file, use star-function and [[einterp]] parameters to interpolate + electron energies onto fine k-mesh defined by [[sigma_ngkpt]] and [[sigma_shiftk]]. + Find k-points inside (electron/hole) pockets according to the values specified by [[sigma_erange]]. + Write KERANGE.nc file with all the tables required by the code to automate NSCF band structure calculations + inside the pocket(s) and electron lifetime computation in the EPH code when [[eph_task]] = -4. - * "wfk_kpts_erange" --> Read WFK file, - use star-function and [[einterp]] parameters to interpolate electron energies onto fine k-mesh - defined by [[sigma_ngkpt]] and [[sigma_shiftk]]. - Find k-points inside (electron/hole) pockets according to the values specified in [[sigma_erange]]. - Write KERANGE.nc file with the tables required by the code to automate NSCF band structure calculations - inside the pocket(s) and electron lifetime computation in the EPH code when [[eph_task]] = -4. + * "wannier" --> Read WFK file and run Wannierization. It has the similar effect of + [[prtwant]] = 2, which uses the **ABINIT- Wannier90** interface. The difference is that with wfk_task "wannier", + the $\kk$-points in the full BZ is not necessary. Instead, the wavefunctions with the $\kk$-points not in + the IBZ will be reconstructed by symmetry. This functionality does not yet work with PAW when the wavefunction + is not already in full BZ. + + ABINIT will produce the input files required by Wannier90 and it will run + Wannier90 to produce the Maximally-locallized Wannier functions (see [ + http://www.wannier.org ](http://www.wannier.org) ). + !!! Notes + + * The files that are created can also be used by Wannier90 in stand-alone mode. + * In order to use Wannier90 as a post-processing program for ABINIT you might have to + compile it with the appropriate flags (see ABINIT makefile). You might use ./configure --enable-wannier90 + * There are some other variables related to the interface of Wannier90 and ABINIT. See [[varset:w90]]. """, ), @@ -19657,6 +22320,7 @@ dimensions=[2], requires="[[optdriver]] in [7]", mnemonics="SIGMA: Band SUM RANGE", + added_in_version="9.0.0", text=r""" This variable allows the user to specify the range of bands in the sum over states for the e-ph self-energy $\Sigma_{n\kk}$. If not specified, the code includes all the states from 1 up to [[nband]]. @@ -19666,20 +22330,6 @@ """, ), -Variable( - abivarname="frohl_params", - varset="gw", - topics=['SelfEnergy_expert'], - vartype="real", - defaultval=[0, 0, 0, 0], - dimensions=[4], - requires="[[optdriver]] in [7]", - mnemonics="FROHLich PARAMeterS", - text=r""" -This variable is still under development. -""", -), - Variable( abivarname="prteliash", varset="eph", @@ -19689,6 +22339,7 @@ dimensions="scalar", requires="[[optdriver]] in [7]", mnemonics="PRINT ELIASHberg function.", + added_in_version="9.0.0", text=r""" This variable controls the output of the generalized Eliashberg function when [[eph_task]] is +4 or -4. If set 1, the EPH code will compute the generalized Eliashberg function and will save the results in the SIGEPH.nc file. @@ -19700,25 +22351,34 @@ varset="eph", topics=['SelfEnergy_expert'], vartype="real", - defaultval=[-1.0, -1.0], + defaultval=[0.0, 0.0], dimensions=[2], mnemonics="SIGMA Energy-range.", characteristics=['[[ENERGY]]'], + added_in_version="9.0.0", text=r""" -This variable selects the k-points and the bands in the self-energy matrix elements on the basis -of their position with respect to the band edges (energy differences are **always positive**, even for holes). +This variable consists of two entries that allow one to select the k-points and the bands +in the e-ph self-energy $\Sigma_\nk$ on the basis of their KS energy $\ee_\nk$. +This variable is used in [[eph_task]] = -4 to compute phonon-limited mobilities in the energy region relevant for transport. + +If both entries in [[sigma_erange]] are negative, the code assumes a metal and only states within the energy +window [efermi - abs(sigma_erange(1)), efermi + abs(sigma_erange(2)] are included in the calculation. + +Positive (or zero) values are used in semiconductors to define an energy range with respect to the band edges. +In this case, the first entry given the position of the holes with respect to the CBM while the second entry +gives the position of electrons with respect to the VBM (energy differences are **always positive**, even for holes). +A zero entry can be used to exclude either holes or electrons from the calculation. -Only the k-points and the bands whose energy difference if less than this value will be included in the calculation. -The first entry refers to holes, the second one to electrons. -A negative entry can be used to exclude either holes or electrons from the calculation. +If both entries are zero, the variable is ignored. +Note that [[sigma_erange]] is not compatible with [[nkptgw]] and [[sigma_ngkpt]]. !!! important - By default, this variable is given in Hartree. Use + By default, this variable is given in Hartree. Use e.g. - sigma_erange 1 1 eV + sigma_erange 0.0 0.5 eV - to specify the energy intervals in eV units. + to specify the energy intervals in eV units. meV is supported as well. """, ), @@ -19730,9 +22390,10 @@ defaultval=[1e-12, 1e-12], dimensions=[2], mnemonics="EPH TOLeranceS on Integral of DELTA.", + added_in_version="9.0.0", text=r""" This variable can be used to introduce a cutoff on the q-points when computing the imaginary -part of the electron-phonon self-energy ([[eph_task]] = -4) with the tetrahedron method ([[eph_intmeth]] = 2) +part of the electron-phonon self-energy ([[eph_task]] = -4) with the tetrahedron method ([[eph_intmeth]] = 2). The first entry refers to phonon absorption while the second one is associated to phonon emission. A q-point is included in the sum of the tetrahedron weights for phonon absorption/emission are larger that these values. """, @@ -19742,80 +22403,267 @@ abivarname="eph_phrange", varset="eph", topics=['SelfEnergy_expert'], - vartype="real", + vartype="integer", defaultval=[0, 0], dimensions=[2], mnemonics="EPH PHonon mode RANGE.", + added_in_version="9.0.0", text=r""" -This variable is used to select the range of phonon modes included in the computation of the electron-phonon self-energy. -By default all phonon modes are included ([0, 0]), otherwise only the phonon modes with index between the first -and second entry are included. +This variable is used to select the range of phonon indices included in the computation +of the electron-phonon self-energy. +By default all phonon indices are included ([0, 0]), otherwise only the phonon indices between the first +and second entry are **included**. +Note that one can also use negative values to **exclude** a range of indices provided that +abs(eph_phrange(1)) < abs(eph_phrange(2)). + +To summarize: use e.g. eph_phrange 4 6 to include phonon indices 4, 5, 6 in the calculation or +use eph_phrange -4 -6 to include **ALL** phonon indices except 4, 5, 6. + +!!! important + + The indices do not necessary correspond to phonon modes if there are crossings + in the phonon band structure. + At each q-point, indeed, phonons are ordered according to their energy. + and this order does not necessarly reflect the connection of the energy branch in q-space. """, ), Variable( - abivarname="eph_restart", + abivarname="eph_phrange_w", varset="eph", - topics=['ElPhonInt_basic'], - vartype="integer", - defaultval=0, - dimensions="scalar", - mnemonics="EPH RESTART.", + topics=['SelfEnergy_expert'], + vartype="real", + defaultval=[0, 0], + dimensions=[2], + mnemonics="EPH PHonon mode RANGE (Frequency)", + characteristics=['[[ENERGY]]'], + added_in_version="9.6.2", text=r""" -This variable can be used to restart an EPH calculation. -At present, this feature is supported only when computing the electron-phonon self-energy ([[eph_task]] = 4, -4). -In this case, the code will look for a pre-existing SIGEPH.nc file and will compute the remaining k-points -provided that the metadata found in the netcdf file is compatible with the input variables specified in the input file. -The code aborts if the metadata reported in the SIGEPH.nc file is not compatible with the input file. -Note that the restart in done in-place that is the output SIGEPH.nc is used as input of the calculation so there is no -need to specify getsigeph or irdsigeph input variables. +This variable is used to include/exclude phonon modes in the computation of the electron-phonon self-energy +on the basis of the vibrational energy instead of the index as done in [[eph_phrange]]. +The usage of [[eph_phrange_w]] is recommended especially if there are crossings in the phonon band structure. + +By default all phonon frequencies are included ([0, 0]), otherwise only the phonons +whose energy is between the first and second entry are **included**. +Note that one can also use negative values to **exclude** energies inside a range provided that +abs(eph_phrange_w(1)) < abs(eph_phrange_w(2)). + +To summarize: use e.g. eph_phrange_w 40 60 meV to **include** phonon frequencies between 40 and 60 meV. +Use eph_phrange_w -40 -60 meV to **exclude** phonon frequencies between 40 and 60 meV. + +!!! important + + This variable has the [[ENERGY]] characteristics so the code assume Hartree units by default. """, ), Variable( - abivarname="eph_stern", + abivarname="transport_ngkpt", varset="eph", + topics=['SelfEnergy_expert'], vartype="integer", - topics=['ElPhonInt_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="Electron-PHonon: use STERNheimer approach to replace sum over empty states.", - requires="[[tolwfr]] > 0", + defaultval=[0, 0, 0], + dimensions=[3], + requires="[[optdriver]] == 7 and [[eph_task]] in [-4,7]", + mnemonics="TRANSPORT: Number of Grid points for K PoinTs integration in transport computations", + added_in_version="9.0.0", text=r""" -This variable activates the Sternheimer method in the calculation of the e-ph self-energy ([[eph_task]] == 4) -This technique replaces the explicit sum over empty states **above** [[nband]] -with the NSCF computation of the first order derivative of the KS wavefunctions (actually -the projection in the subspace orthogonal to the nband states). - -The Sternheimer approach requires an external file with the KS potential produced by setting [[prtpot]] = 1 -during the GS run and the specification of [[tolwfr]] in the EPH input file. -The path to the POT file used in the EPH calculation is specified via [[getpot_path]]. -The number of line minimisations for the Sternheimer solver is defined by [[nline]]. - -!!! important - - The Sternheimer approach approximates the e-ph self-energy with the adiabatic expression - in which phonon frequencies are neglected and the frequency dependence of $\Sigma_{n\kk}(\omega)$ is - replaced by $\Sigma_{n\kk}(\ee_{n\kk})$. - This approximation is valid provided that **enough** bands above the states of interest are explicitly included. - The calculation should therefore be converged with respect to the value of [[nband]]. - Note however that the memory requirements and the computational cost of the Sternheimer solver increases with **nband**. +This in an advanced option that is mainly used to downsample the k-points used +to compute the carrier mobility obtained with ([[eph_task]] = -4 or [[eph_task]] = 7). +If this variable is not specified, the code uses the k-mesh specified by [[ngkpt]] +(i.e. the k-mesh corresponding to the WFK file) for computing the mobility integral in the BZ. +In some cases, however, one may want to employ a submesh of k-points to analyze the convergence behaviour. +For instance one may have performed a calculation with a 100x100x100 k-mesh and may be interested in the values +obtained with a 50x50x50 without having to perform a full lifetime calculation on a 50x50x50 from scratch. """, ), Variable( - abivarname="getkerange_path", + abivarname="ibte_abs_tol", + varset="eph", + topics=['ElPhonInt_expert'], + vartype="real", + defaultval=-1.0, + dimensions="scalar", + mnemonics="Iterative Boltzmann Equation: ABSolute TOLerance for convergence", + added_in_version="9.3.0", + text=r""" +This variable defines the absolute tolerance used to stop the iterative solution of the Boltzmann equation. +The code stops the iterations when $$ \max_\kk |{\bm F}_\kk^i - {\bm F}_\kk^{i-1}| $$ +is less than [[ibte_abs_tol]] where $${\bm F}_\kk^i$$ is the solution at iteration step i. + +Note, however, that the absolute value of $${\bm F}$$ strongly depends on the position of the Fermi level +that in turns defines the free carrier density. +As a consequence, the value of [[ibte_abs_tol]] should be adjusted according to the system +under investigation. + +Since this procedure is not very practical, it's much easier to use a negative value +for [[ibte_abs_tol]] (default behaviour) and let the code +automatically define the convergence threshold from the free carrier density computed at runtime. + +According to numerical tests, a reasonable value of [[ibte_abs_tol]] can be estimated using +1e-20 * carrier_density in cm^-3. +""", +), + +Variable( + abivarname="ibte_alpha_mix", + varset="eph", + topics=['ElPhonInt_expert'], + vartype="real", + defaultval=0.7, + dimensions="scalar", + mnemonics="Iterative Boltzmann Equation: ALPHA Mixing factor", + added_in_version="9.3.0", + text=r""" +This variable defines the coefficient for the linear mixing used in the IBTE solver. +If the algorithm has problems to converge try to decrease [[ibte_alpha_mix]] and increase [[ibte_niter]]. +""", +), + +Variable( + abivarname="ibte_niter", + varset="eph", + topics=['ElPhonInt_useful'], + vartype="integer", + defaultval=100, + dimensions="scalar", + mnemonics="Iterative Boltzmann Equation: max Number of ITERations", + added_in_version="9.3.0", + text=r""" +This variable defines the maximum number of iterations of the IBTE solver. +""", +), + +Variable( + abivarname="ibte_prep", + varset="eph", + topics=['ElPhonInt_useful'], + vartype="integer", + defaultval=0, + dimensions="scalar", + mnemonics="Iterative Boltzmann Equation PREPare", + added_in_version="9.3.0", + text=r""" +This variable is used when computing the imaginary part of the e-ph self-energy ([[eph_task]] = - 4) +to save the collision term to the SIGEPH file. +This step is required for solving the iterative BTE. + +Note that, once you have a SIGEPH file with the collision terms, it is possible to run the IBTE solver in standalone +mode by using [[eph_task]] = 8 with [[getsigeph_filepath]]. + +!!! important + + IBTE calculations cannot use [[sigma_ngkpt]] to donwsample the k-mesh. + The k-mesh ([[ngkpt]] and the q-mesh [[eph_ngqpt_fine]] must be equal. +""", +), + +Variable( + abivarname="eph_prtscratew", + varset="eph", + topics=['ElPhonInt_expert'], + vartype="integer", + defaultval=0, + dimensions="scalar", + mnemonics="EPH PRINT spectral decomposition of SCATTERING RATES as a function of omega phonon.", + added_in_version="9.6.7", + text=r""" +This variable can be used to compute the spectral decomposition of the SERTA/MRTA scattering rates +in terms of an integral over phonon frequencies: + +$$ +1/tau_{n\kk} = \int_0^\infty f_{n\kk}(\ww)\dd\ww +$$ + +This option is available only when computing the imaginary part of the e-ph self-energy ([[eph_task]] = -4). +The values of $f_{n\kk}(\ww)$ are stored in the SIGEPH file (scratew netcdf variable). + +The delta function $\delta(\omega - \omega_{\qnu})$ is approximated with a gaussian of standard deviation [[ph_smear]] +and the spectral decomposition is evaluated on a linear mesh of step [[ph_wstep]] covering the entire vibrational spectrum. +""", +), + +Variable( + abivarname="eph_restart", + varset="eph", + topics=['ElPhonInt_basic'], + vartype="integer", + defaultval=0, + dimensions="scalar", + mnemonics="EPH RESTART.", + added_in_version="9.0.0", + text=r""" +This variable can be used to restart an EPH calculation. +At present, this feature is supported only when computing the electron-phonon self-energy ([[eph_task]] = 4, -4) +and solving the variational polaron equations ([[eph_task]] = 13). + +In the first case, the code will look for a **pre-existing** SIGEPH.nc file and will compute the remaining k-points. +Note that the restart in done **in-place** that is the output SIGEPH.nc is used as input of the calculation so there is no +need to specify getsigeph or irdsigeph input variables. + +In the second case, the code will look for a **pre-existing** VARPEQ.nc file and continue the optimization +process from the last iteration available in the netcdf file. + +!!! note + + The code aborts if the metadata reported in the file netcdf is not compatible with the input file. +""", +), + +Variable( + abivarname="eph_stern", + varset="eph", + vartype="integer", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Electron-PHonon: use STERNheimer approach to replace sum over empty states.", + requires="[[tolwfr]] > 0", + added_in_version="9.0.0", + text=r""" +This variable activates the Sternheimer method in the calculation of the e-ph self-energy ([[eph_task]] == 4) +This technique replaces the explicit sum over empty states **above** [[nband]] +with the NSCF computation of the first order derivative of the KS wavefunctions (actually +the projection in the subspace orthogonal to the nband states). + +The Sternheimer approach requires an external file with the KS potential produced by setting [[prtpot]] = 1 +during the GS run. +The path to the external POT file used in the EPH calculation is specified via [[getpot_filepath]]. +The number of line minimisations for the Sternheimer solver is defined by [[nline]]. +The solver stops when the solution is converged within [[tolwfr]]. + +!!! important + + The Sternheimer approach approximates the e-ph self-energy with the adiabatic expression + in which phonon frequencies are neglected and the frequency dependence of $\Sigma_{n\kk}(\omega)$ is + replaced by $\Sigma_{n\kk}(\ee_{n\kk})$. + This approximation is valid provided that **enough** bands above the states of interest are explicitly included. + The calculation should therefore be converged with respect to the value of [[nband]]. + Note however that the memory requirements and the computational cost of the Sternheimer solver increases with **nband** + as this part is not yet parallelized. +""", +), + +Variable( + abivarname="getkerange_filepath", varset="eph", vartype="string", topics=['ElPhonInt_expert'], dimensions="scalar", defaultval=None, mnemonics="KERANGE PATH", + added_in_version="9.0.0", text=r""" -This variable defines the path of the external KERANGE.nc file with the list of k-points in the electron/hole pockets. -The tables stored in the file are used for the calculation of the imaginary part of the e-ph self-energy ([[eph_task]] == -4) -This file is generated by running a preliminary step with [[wfk_task]] = "wfk_einterp". +This variable defines the path of the external KERANGE.nc file with the list of k-points in the +electron/hole pockets for semiconductors or the k-points withing an energy window around the Fermi level +as specified by [[sigma_erange]]. + +The tables stored in the netcdf file are used for the calculation of the imaginary part of +the e-ph self-energy ([[eph_task]] == -4). +This file is generated by running a preliminary step with [[wfk_task]] = "wfk_kpts_erange". +For an example, see [[test:v9_57]] """, ), @@ -19827,9 +22675,10 @@ dimensions="scalar", defaultval=0, mnemonics="SYMmetrize V1 DFPT SCF potentials", + added_in_version="9.0.0", text=r""" If *symv1scf* is equal to 1, the spatial-symmetry on the first-order DFPT potentials -is enforced every time a set of potentials in the BZ is recostructed by symmetry +is enforced every time a set of potentials in the BZ is reconstructed by symmetry starting from the initial values in the IBZ. This option is similar to [[symdynmat]] but it acts on the DFPT potentials instead of the dynamical matrix. @@ -19844,26 +22693,42 @@ dimensions="scalar", defaultval=1, mnemonics="DVDB ADD Long-Range part when interpolating DFPT potentials.", + added_in_version="9.0.0", text=r""" This flag is used in the Fourier interpolation in q-space of the DFPT potentials. +This option is similar to [[dipdip]] but it acts on the DFPT potentials instead of the dynamical matrix. + In polar materials there is a long range (LR) component in the first-order variation of the KS potential that can be modeled in terms of the Born effective charges and -the macroscopic dielectric tensor [[cite:Verdi2015]], [[cite:Giustino2017]]. -Possible values are [0, -1, 1]. - -Setting this flag to 0 deactivates the treatment of the LR contribution (not recommended in polar materials). +the macroscopic dielectric tensor [[cite:Verdi2015]], [[cite:Giustino2017]] (dipolar part) +and two additional terms of quadrupolar character related to the dynamical quadrupoles and +the response to the electric field ([[cite:Brunin2020]], [[cite:Brunin2020b]]. If *dvdb_add_lr* is set to 1, the LR part is removed when computing the real-space representation -of the DFPT potentials so that the potential in real space is short-ranged and ameneable to Fourier interpolation. +of the DFPT potentials so that the potential in real space is short-ranged and amenable to Fourier interpolation. The long-range contribution is then added back when interpolating the DFPT potentials at arbitrary q-points +This is the default behaviour that relies on a DDB file with all the entries required to build the LR mode. + +Setting this flag to 0 deactivates the treatment of the LR contribution. +This is just for testing purposes and it is not recommended in polar materials. If *dvdb_add_lr* is set to -1, the LR part is removed before computing the real-space representation but the LR term is **not** reintroduced during the interpolation in $\qq$-space. This option is mainly used for debugging purposes. -By default, the code will always treat the LR term if the DDB file contains the Born effective charges -and the macroscopic dielectric tensor. -This option is similar to [[dipdip]] but it acts on the DFPT potentials instead of the dynamical matrix. +Other options (again for testing purposes): + + 0: --> No treatment + 1: --> Remove LR model when building W(R,r). Add it back after W(R,r) --> v(q) Fourier interpolation + This is the standard approach for polar materials. + -1: --> Remove LR model when building W(R,r). DO NOT reintroduce it after the Fourier interpolation. + 2: --> Similar to 1 but include only the dipole part. Q* are set to zero even if the DDB file contains them. + 4, 5, 6: --> Use model for the LR part only: + + 4: --> Use dipole + quadrupole part + 5: --> Use dipole part only. + 6: --> Use quadrupole part only. + """, ), @@ -19875,11 +22740,12 @@ dimensions=[5], defaultval=0, mnemonics="EPH Number of Processors for Perturbations, Q-points, Bands, K-points, Spin.", + added_in_version="9.1.0", text=r""" This variable defines the Cartesian grid of MPI processors used for EPH calculations. If not specified in the input, the code will generate this grid automatically using the total number of processors and the basic dimensions of the job computed at runtime. -At present (|today|), this variable is supported only in the calculation of the phonon einewidths ([[eph_task]] 1) +At present (|today|), this variable is supported only in the calculation of the phonon linewidths ([[eph_task]] 1) and in the computation of the e-ph self-energy ([[eph_task]] 4 or -4). In all the other tasks, this variable is ignored. @@ -19887,17 +22753,17 @@ EPH calculations require very dense samplings of the BZ to converge and the memory requirements increase quickly with the number of k-points, q-points and [[natom]]. -The EPH code can MPI-distribute the most important datastructures but non all the MPI-levels +The EPH code can MPI-distribute the most important data structures but non all the MPI-levels present the same scalability and the same parallel efficiency. Besides the maximum number of MPI processes that can be used for the different MPI-levels is related to the basic dimensions of the calculation. -In what follows, we explain briefly the pros and cons of the different MPI-levels, then we specialize +In what follows, we briefly explain the pros and cons of the different MPI-levels, then we specialize the discussion to the different calculations activated by [[eph_task]]. The parallelization over perturbations (**np**) is network intensive but it allows one to decrease the memory needed for the DFPT potentials especially when computing the e-ph self-energy. -The maximum valus for **np** is 3 * [[natom]] and the workload is equally distributed provided **np** +The maximum value for **np** is 3 * [[natom]] and the workload is equally distributed provided **np** divides 3 * [[natom]] equally. Using **np** == [[natom]] usually gives good parallel efficiency. @@ -19930,13 +22796,18 @@ parallelize along this dimension. The parallelization over q-points seem to be more efficient than the one over perturbations although it introduces some load imbalance because, due to memory reasons, the code distributes the q-points in the IBZ (nqibz) instead of the q-points in the full BZ (nqbz). - Moreover non all the q-points in the IBZ contribute to the imaginary part of $$\Sigma_nk$$. + Moreover non all the q-points in the IBZ contribute to the imaginary part of $\Sigma_{nk}$. The MPI parallelism over k-points and spins is supported with similar behaviour as in **eph_task** +4. !!! important The total number of MPI processes must be equal to the product of the different entries. + + Note also that the EPH code implements its own MPI-algorithm and [[eph_np_pqbks]] is + the **only variable** that should be used to change the default behaviour. + Other variables such as [[nppert]], [[npband]], [[npfft]], [[np_spkpt]] and [[paral_kgb]] + are **not used** in the EPH subdriver. """, ), @@ -19948,180 +22819,153 @@ dimensions="scalar", defaultval=0, mnemonics="EPH FORCE Fourier Transform Interpolation of DFPT potentials.", + added_in_version="9.0.0", text=r""" -This is an *advanced option* used for testing/debugging the interpolation of the DFPT potentials when [[eph_task]] in (2, -2) +This is an *advanced option* used for testing/debugging the interpolation of the DFPT potentials when [[eph_task]] in (2, -2). By default, the code seeks for the q-point in the input DVDB file when *eph_use_ftinterp* is set to zero (default) and stops is the q-point in not found in the file. -When *eph_use_ftinterp* is set to 1, the input DVDB file (assumed to be on the [[ddb_ngqpt]] q-mesh) -will be used to generate the real-space representation of the DFPT potentials and interpolated the potential +When *eph_use_ftinterp* is set to 1, the input DVDB file (assumed to contain the [[ddb_ngqpt]] q-mesh) +will be used to generate the real-space representation of the DFPT potentials and interpolate the potential at the input [[qpt]]. """, ), -#Variable( -# abivarname="eph_alpha_gmin", -# varset="eph", -# vartype="real", -# topics=['ElPhonInt_expert'], -# dimensions="scalar", -# defaultval=0, -# mnemonics="EPH ALPHA times norm of GMIN.", -# text=r""" -#This is an *advanced option* used to compute the long-range part of the DFTP potential. -#TO BE DESCRIBED WHEN WE ENTER PRODUCTION -#""", -#), - Variable( - abivarname="getpot_path", + abivarname="getpot_filepath", varset="files", vartype="string", topics=['multidtset_useful'], dimensions="scalar", defaultval=None, - mnemonics="GET the KS POTential from PATH", + mnemonics="GET the KS POTential from FILEPATH", + added_in_version="9.0.0", text=r""" This variable defines the path of the POT file containing the KS ground-state potential that should be used in input. -At present, it is mainly used in EPH code when performing calculation with the Sternheimer equation. +At present, it is mainly used in the EPH code when performing calculation with the Sternheimer equation. Note that the path must be inserted between quotation marks. Note also that relative paths are interpreted according to the working directory in which Abinit is executed! """, ), Variable( - abivarname="ddb_qrefine", - varset="eph", - vartype="integer", - topics=['ElPhonInt_expert'], - dimensions=[3], - defaultval=[1, 1, 1], - mnemonics="Q-point REFINEment order (experimental)", - text=r""" -If **ddb_qrefine** is superior to 1, the EPH code attempts to initialize a first set of -dynamical matrices from the DDB file and DFPT potentials from the DVDB file, with a q-point grid which is -[[ddb_ngqpt]] divided by **qrefine** (e.g. ddb_ngqpt 4 4 2 ddb_qrefine 2 2 1 starts with a 2x2x2 grid). -The dynamical matrices and DFPT potentials are interpolated onto the full -[[ddb_ngqpt]] grid and any additional information found in the DDB file is -imposed, before proceeding to normal band structure and other interpolations. -Should implement Gaal-Nagy's algorithm in [[cite:GaalNagy2006]]. - -A similar option is also available in anaddb. The main difference is that ddb_qrefine will also densify -the q-mesh used for the Fourier transform of the DFPT potentials. -""", -), - -Variable( - abivarname="getwfk_path", + abivarname="getwfk_filepath", varset="files", vartype="string", topics=['multidtset_useful'], dimensions="scalar", defaultval=None, mnemonics="GET the wavefunctions from WFK PATH", + added_in_version="9.0.0", text=r""" Specify the path of the WFK file using a string instead of the dataset index. Alternative to [[getwfk]] and [[irdwfk]]. The string must be enclosed between quotation marks: - getwfk_path "../outdata/out_WFK" + getwfk_filepath "../outdata/out_WFK" """ ), Variable( - abivarname="getwfkfine_path", + abivarname="getwfkfine_filepath", varset="files", vartype="string", topics=['multidtset_useful'], dimensions="scalar", defaultval=None, - mnemonics="GET the fine wavefunctions from PATH", + mnemonics="GET the fine wavefunctions from FILEPATH", + added_in_version="9.0.0", text=r""" Specify the path of the fine WFK file using a string instead of the dataset index. Alternative to [[getwfkfine]] and [[irdwfkfine]]. The string must be enclosed between quotation marks: - getwfkfine_path "../outdata/out_WFK" + getwfkfine_filepath "../outdata/out_WFK" """ ), Variable( - abivarname="getwfq_path", + abivarname="getwfq_filepath", varset="files", vartype="string", topics=['multidtset_useful'], dimensions="scalar", defaultval=None, mnemonics="GET the k+q wavefunctions from WFQ PATH", + added_in_version="9.0.0", text=r""" Specify the path of the WFQ file using a string instead of the dataset index. Alternative to [[getwfq]] and [[irdwfq]]. The string must be enclosed between quotation marks: - getwfq_path "../outdata/out_WFQ" + getwfq_filepath "../outdata/out_WFQ" """ ), Variable( - abivarname="getddb_path", + abivarname="getddb_filepath", varset="files", vartype="string", topics=['multidtset_useful'], dimensions="scalar", defaultval="None", - mnemonics="GET the DDB from PATH", + mnemonics="GET the DDB from FILEPATH", + added_in_version="9.0.0", text=r""" Specify the path of the DDB file using a string instead of the dataset index. Alternative to [[getddb]] and [[irdddb]]. The string must be enclosed between quotation marks: - getddb_path "../outdata/out_DDB" + getddb_filepath "../outdata/out_DDB" """ ), Variable( - abivarname="getdvdb_path", + abivarname="getdvdb_filepath", varset="files", vartype="string", topics=['multidtset_useful'], dimensions="scalar", defaultval=None, - mnemonics="GET the DVDB file from PATH", + mnemonics="GET the DVDB file from FILEPATH", + added_in_version="9.0.0", text=r""" Specify the path of the DVDB file using a string instead of the dataset index. Alternative to [[getdvdb]] and [[irddvdb]]. The string must be enclosed between quotation marks: - getdvdb_path "../outdata/out_DVDB" + getdvdb_filepath "../outdata/out_DVDB" """ ), Variable( - abivarname="getden_path", + abivarname="getden_filepath", varset="files", vartype="string", topics=['multidtset_useful'], dimensions="scalar", defaultval=None, - mnemonics="GET the DEN file from PATH", + mnemonics="GET the DEN file from FILEPATH", + added_in_version="9.0.0", text=r""" Specify the path of the DEN file using a string instead of the dataset index. Alternative to [[getden]] and [[irdden]]. The string must be enclosed between quotation marks: - getden_path "../outdata/out_DEN" + getden_filepath "../outdata/out_DEN" """ ), Variable( - abivarname="getscr_path", + abivarname="getscr_filepath", varset="files", vartype="string", topics=['multidtset_useful'], dimensions="scalar", defaultval=None, - mnemonics="GET the SCR file from PATH", + mnemonics="GET the SCR file from FILEPATH", + added_in_version="9.0.0", text=r""" Specify the path of the SCR file using a string instead of the dataset index. Alternative to [[getscr]] and [[irdscr]]. The string must be enclosed between quotation marks: - getscr_path "../outdata/out_SCR" + getscr_filepath "../outdata/out_SCR" """ ), @@ -20134,6 +22978,7 @@ defaultval="0.0 Hartree", mnemonics="Electron-Phonon: Energy CUToff for OSCillator matrix elements", characteristics=['[[ENERGY]]'], + added_in_version="9.0.0", text=r""" This variable defines the energy cutoff defining the number of G-vectors in the oscillator matrix elements: @@ -20144,13 +22989,15 @@ Possible values: - - = 0 --> Approximate oscillators with $ \delta_{b_1 b_2} $ - - > 0 --> Use full expression with G-dependence - - < 0 --> Deactivate computation of oscillators. +- $= 0$ --> Approximate oscillators with $ \delta_{b_1 b_2} $ +- $> 0$ --> Use full expression with G-dependence +- $< 0$ --> Deactivate computation of oscillators. !!! important eph_ecutosc cannot be greater than [[ecut]] + +This variable is still under development! """, ), @@ -20162,6 +23009,7 @@ dimensions="scalar", defaultval=None, mnemonics="OUTPUT FILE", + added_in_version="9.0.0", text=r""" String specifying the name of the main output file when Abinit is executed with the new syntax: @@ -20170,9 +23018,9 @@ If not specified, the name of the output file is automatically generated by replacing the file extension of the input file with `.abo`. -To specify the filename in the input use the syntax +To specify the filename in the input use the syntax: - output_file = "t01.out" + output_file "t01.out" with the string enclosed between double quotation marks. """ @@ -20186,37 +23034,37 @@ dimensions="scalar", defaultval=None, mnemonics="INput DATA PREFIX", + added_in_version="9.0.0", text=r""" -Prefix for input files. Replaces the analogous entry in the obsolete *files_file* +Prefix for input files. Replaces the analogous entry in the obsolete *files_file* . This variable is used when Abinit is executed with the new syntax: abinit run.abi > run.log 2> run.err & If this option is not specified, a prefix is automatically constructed from the input file name -provided the file ends with e.g. `.ext`. (`.abi` is recommended) - -If the input file does not have a file extension, a default is provided. +provided the filename ends with an extension, e.g. `.ext`. (`.abi` is recommended) +If the input filename does not have a file extension, a default is provided. """ ), Variable( - abivarname="outdata_file", + abivarname="outdata_prefix", varset="files", vartype="string", topics=['Control_useful'], dimensions="scalar", defaultval=None, mnemonics="OUTput DATA PREFIX", + added_in_version="9.0.0", text=r""" -Prefix for output files. Replaces the analogous entry in the obsolete *files_file* +Prefix for output files. Replaces the analogous entry in the obsolete *files_file* . This variable is used when Abinit is executed with the new syntax: abinit run.abi > run.log 2> run.err & If this option is not specified, a prefix is automatically constructed from the input file name -provided the file ends with e.g. `.ext`. (`.abi` is recommended) - -If the input file does not have a file extension, a default is provided. +provided the filename ends with an extension, e.g. `.ext`. (`.abi` is recommended) +If the input filename does not have a file extension, a default is provided. """ ), @@ -20228,16 +23076,17 @@ dimensions="scalar", defaultval=None, mnemonics="TeMPorary DATA PREFIX", + added_in_version="9.0.0", text=r""" -Prefix for temporary files. Replaces the analogous entry in the obsolete *files_file* +Prefix for temporary files. Replaces the analogous entry in the obsolete *files_file* . This variable is used when Abinit is executed with the new syntax: abinit run.abi > run.log 2> run.err & If this option is not specified, a prefix is automatically constructed from the input file name -provided the file ends with `.ext`. +provided the filename ends with an extension, e.g. `.ext`. -If the input file does not have a file extension, a default is provided. +If the input filename does not have a file extension, a default is provided. """ ), @@ -20249,45 +23098,1730 @@ dimensions="scalar", defaultval="", mnemonics="PseudoPotential DIRectory PATH", + added_in_version="9.0.0", text=r""" -Directory prependeded to the pseudopotential basename specified in [[pseudos]]. +This variable specifies the directory that will be prepended to the names of the pseudopotentials +specified in [[pseudos]]. +This option is useful when all your pseudos are gathered in a single directory in your file system +and you don not want to type the absolute path for each pseudopotential file. + This variable is used when Abinit is executed with the new syntax: - abinit run.abi > run.log 2> run.err & + abinit abi_in >& log & The string must be quoted in double quotation marks: - pp_dirpath = "/home/user/my_pseudos/" + pp_dirpath "/home/user/my_pseudos/" + pseudos "al.psp8, as.psp8" + +If [[pp_dirpath]] is not present, the filenames specified in [[pseudos]] are used directly. +""" +), -If not present, the list in [[pseudos]] is used directly. +Variable( + abivarname="supercell_latt", + varset="gstate", + vartype="integer", + topics=['UnitCell_useful'], + dimensions=[3], + defaultval=[1, 1, 1], + mnemonics="SUPERCELL LATTice", + added_in_version="before v9", + text=r""" +Factor that multiplies the three primitive vectors to generate a supercell. +The starting nuclei types [[typat]] and coordinates [[xred]] and [[xcart]] +are simply replicated in the different images of the original primitive cell. +If present, [[spinat]] and [[chrgat]] are also replicated without change. +Note that [[supercell_latt]] is not echoed. It is immediately used to change +[[natom]], [[typat]], and all input variables that depend on [[natom]] and [[typat]]. + +This input variable cannot be used jointly with non-default values of [[natrd]] and [[nobj]]. +Also, [[nsym]] is set to 1. Also note that [[vel]], if defined, must have the dimensions of the +number of atoms in the supercell, not the initial [[natom]], because it is not replicated. +[[supercell_latt]] is typically used to initialize molecular dynamics runs. """ ), + Variable( abivarname="pseudos", varset="files", vartype="string", - topics=['Control_useful'], + topics=['Control_basic'], dimensions="scalar", defaultval="", mnemonics="PSEUDOpotentialS", + added_in_version="9.0.0", text=r""" -String defining the list of pseudopotential files -when Abinit is executed with the new syntax: +String defining the list of pseudopotential files when Abinit is executed with the new syntax: - abinit run.abi > run.log 2> run.err & + abinit abi_in >& log & The string must be quoted in double quotation marks and multiple files should be separated by a comma, e.g. - pseudos = "al.psp8, as.psp8" + pseudos "al.psp8, as.psp8" + +This variable is **mandatory** and the list must contain [[ntypat]] pseudos ordered according to the [[znucl]] array. + +Relative and absolute paths are allowed as in: + + pseudos "../pseudos/al.psp8, ..//pseudos/as.psp8" + + +or + + pseudos "/home/user/pseudos/al.psp8, /home/user/pseudos/as.psp8" + + +If all the pseudos are located in the same directory, it is much easier to use a common prefix with [[pp_dirpath]]. +For instance, the previous example is equivalent to: + + pp_dirpath "/home/user/pseudos" + pseudos "al.psp8, as.psp8" + +!!! important + + Shell variables e.g. $HOME or tilde syntax `~` for user home are not supported in pseudopotential names. + The only exception is the shell variable `$ABI_PSPDIR` that can be used in conjunction with [[pp_dirpath]] + + pp_dirpath = "$ABI_PSPDIR" + pseudos "al.psp8, as.psp8" + + Before running the calculation, one should set the value of $ABI_PSPDIR inside the terminal using: + + ```sh + export ABI_PSPDIR="/home/user/pseudos" + ``` +""" +), + +Variable( + abivarname="structure", + varset="basic", + vartype="string", + topics=['crystal_useful'], + dimensions="scalar", + defaultval="", + mnemonics="initialize the crystalline STRUCTURE from ...", + added_in_version="9.0.0", + text=r""" +This variable provides a simplified interface to build the crystalline structure from an external file. +The idea is to keep the **geometry information** separated from the input file so that one +can perform multiple calculations in different input files sharing the same structure +without having to copy & paste the description of the unit cell inside the input. +The single source of truth is now given by an external file that can be easily shared. +As a side effect one can easily restart structure relaxations in place by reading +the structure from the output file of a previous run. + +The [[structure]] variable is a string in the format **filetype:filepath** where: + +* filetype specifies the format of the external file +* filepath gives the path to the file *relative* to the directory where the input file is located. + +Variables such as [[natom]], [[ntypat]], [[typat]] and [[znucl]] are automatically initialized from +the external file and need not to be specified in the ABINIT input. + +At present ( |today| ), the allowed values for **filetype** are: + +* abifile --> An output file produced by Abinit (only netcdf files are supported for the time being) +* abivars --> A txt input file with Abinit variables +* poscar --> POSCAR files in VASP-5 format (element symbol after the atomic position is required). + +Some examples will help clarify. + +To read the structure from an external netcdf file produced by Abinit (e.g. *out_GSR.nc*) +use the **abifile** prefix and the syntax: + + structure "abifile:out_GSR.nc" + +Other Abinit output files such as the `WFK.nc`, the `DEN.nc` and the `HIST.nc` file +are supported as well e.g. + + structure "abifile:out_HIST.nc" + +In the case of structural relaxations, these files contain the final geometry (not necessarily relaxed +within the given tolerance) hence [[structure]] can be used to perform an in-place restart by reading +the output of a previous run. + +To read the structure from an external file with the structure in Abinit format, use: + + structure "abivars:my_text_file" + +where *my_text_file* specifies the lattice in terms [[acell], ([[rprimd]] or [[angdeg]]) +while the atomic positions are specified with [[natom]] and the special variable **xred_symbols** that +can only be used inside this external file. + +``` +# MgB2 lattice structure + +acell 2*3.086 3.523 Angstrom + +rprim 0.866025403784439 0.5 0.0 + -0.866025403784439 0.5 0.0 + 0.0 0.0 1.0 -The **mandatory** list must contain [[ntypat]] pseudos ordered according to the [[znucl]] array. -The directory where all pseudos are located can be specified with [[pp_dirpath]]. +natom 3 + +# Reduced positions followed by element symbol. + +xred_symbols + 0.0 0.0 0.0 Mg + 1/3 2/3 0.5 B + 2/3 1/3 0.5 B +``` + + +To read the structure from an external POSCAR file, use: + + structure "poscar:t04_POSCAR" + +where `t04_POSCAR` is the name of external file. + +!!! critical + + Note that the Abinit parser does not support all the possible variants of the POSCAR format. + More specifically, we assume a subset of the POSCAR specifications in VASP-5 format. + This means that the list of element symbols must be present and **written on a single line**. + Only the "direct" and "cartesian" keywords before the atomic positions are allowed (case insensitive). + +A typical POSCAR file for hexagonal MgB2 looks like (ignore comments): + +``` +Mg1 B2 # Title string (ignored by Abinit) +1.0 # Scaling factor for lattice vectors. +2.672554 1.543000 0.000000 # Lattice vectors in Angstrom (NOTE: ABINIT uses BOHR by default) +-2.672554 1.543000 0.000000 +0.000000 0.000000 3.523000 +Mg B # List of element symbols +1 2 # Number of atoms for each symbol +direct # "direct" for reduced coordinates or "cartesian". +0.000000 0.000000 0.0 Mg # Coordinates followed by the chemical symbol of the atom. +0.333333 0.666667 0.5 B +0.666667 0.333333 0.5 B +``` + +A positive scaling factor can be used to rescale the lattice vectors +whereas a negative value is interpreted as the volume of the unit cell in Angstrom**3. +Obviously, zero is not allowed! + +The [[typat]] variable is automatically initialized from the list of chemical symbols +according to their position in the list. +In this example, Mg is of type 1 while B is of type 2. + +The ABINIT variables associated to this POSCAR are therefore: + + ntypat 2 + typat 1 2 2 + znucl 12.0 5.0 + +These are the **ONLY QUANTITIES** that are initialized from the external POSCAR so please make sure that +your POSCAR resembles the example given above and do not expect ABINIT to understand other entries +such as `Selective dynamics` or velocities. !!! important - Shell variables e.g. $HOME or tilde syntax `~` for user home are not supported. + Several POSCAR files available on the internet give atomic positions and lattice vectors with ~6 digits. + The ABINIT routines use tighter tolerances to detect the space group thus it may happen that ABINIT does not + detect all the symmetry operations with a consequent **INCREASE** of the number of k-points in the IBZ + and the associated computational cost. This is especially true for hexagonal or rhombohedral lattices. + A possible solution is to increase the value of [[tolsym]] in the input file to e.g. 1e-4 + so that ABINIT will automatically refine the atomic positions. + +Note the following important remarks: + +- The structure is initialized by the parser at the very beginning of the calculation + hence the external files **must exist** when Abinit starts to analyze the input file. + In a nutshell, [[structure]] variables cannot be used to pass the output geometry from one dataset + to the next one. + +- Multidatasets are supported but mind that some variables such as + [[ntypat]], [[typat]] and [[znucl]] are tagged as [[NO_MULTI]]. + In other words, one can read different files via [[structure]] and the multi dataset syntax + provided these quantities do not change. + ABINIT syntax such as `xred+` are, obviously, not supported. + +- The value of [[typat]] and [[znucl]] given in the input file (if any) is ignored by the parser. + The value of [[natom]], [[ntypat]] is checked for consistency. + +- As a rule of thumb, do not try to mix the two approaches: either use [[structure]] or the standard + (more verbose) approach based on [[ntypat]], [[typat]] and [[znucl]] to define the unit cell. + + +Limitations: + +- The specification of structures for calculations with images is not supported. +- Alchemical mixing is not supported. +- Reading structure from Fortran file is not yet implemented. It is just a technical problem + that will be hopefully solved in the next releases. + +In all these cases in which the [[structure]] variable is not supported, +one has to resort to the **standard approach** to define the list of atoms and their type. """ ), +Variable( + abivarname="dvdb_rspace_cell", + varset="eph", + vartype="integer", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="DVDB R-SPACE CELL", + added_in_version="9.1.0", + text=r""" +This **advanced** variable sets the list of supercell $\RR$-points used to construct the scattering potential +in the real-space representation with the associated weights for the Fourier transform +to go from $W(\rr,\RR)$ to $v1scf(\rr,\qq)$. + +Possible values are: + +0 --> Use unit super cell for $\RR$ space. All weights set to 1. +1 --> Use Wigner-Seitz super cell and atom-dependent weights (same algorithm as for the dynamical matrix). + Note that this option leads to more $\RR$-points with a non-negligible increase of the memory allocated. + +!!! tip + + Reducing the value of [[boxcutmin]] to e.g. 1.1 allows one to reduce the number, [[nfft]], of $\rr$-points + with a considerable memory saving for $W(\rr,\RR)$. +""", +), + +Variable( + abivarname="dvdb_qdamp", + varset="eph", + vartype="real", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=0.1, + mnemonics="DVDB Q-DAMPing", + added_in_version="9.1.0", + text=r""" +This **advanced** variable defines the $\alpha$ parameter in the Gaussian filter $e^{-\frac{|\qG|^2}{4\alpha}}$ +that multiplies the Fourier components of the model potential in the long wavelength limit (Eq 24 of [[cite:Brunin2020b]] +see also [[cite:Sjakste2015]] and [[cite:Giustino2017]]). + +The $\alpha$ parameter determines the separation between the long-range and the short-range parts +of the interaction and is used to express Ewald sums [[cite:Gonze1997]]. +in terms of a sum in $\GG$-space (long-range part) and a sum in real space that, being short ranged, +is not relevant for the definition of the LR model. +""", +), + +Variable( + abivarname="getsigeph_filepath", + varset="files", + vartype="string", + topics=['multidtset_useful'], + dimensions="scalar", + defaultval="Output filename of the present dataset", + mnemonics="GET the SIGEPH from FILEPATH", + added_in_version="9.1.0", + text=r""" +This variable defines the path of the SIGEPH file with the e-ph self-energy results +that should be used as input for further analysis. +At present, it is used by the transport driver ([[eph_task]] = 7) to read the lifetimes needed +to compute carrier mobilities within the RTA. +""", +), + +Variable( + abivarname="brav", + varset="eph", + vartype="integer", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=1, + mnemonics="BRAVais", + added_in_version="9.1.4", + text=r""" + See [[brav@anaddb]] +""", +), + +Variable( + abivarname="eph_doping", + varset="eph", + vartype="real", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=0.0, + mnemonics="EPH doping", + added_in_version="9.2.0", + text=r""" +Gives the doping charge in units of |e_charge| / cm^3. +Negative for n-doping, positive for p-doping. +Alternative to [[eph_extrael]] for simulating doping within the rigid band approximation. +Require metallic occupation scheme [[occopt]] e.g. Fermi-Dirac. +""", +), + +Variable( + abivarname="eph_phwinfact", + varset="eph", + vartype="real", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=1.1, + mnemonics="EPH PHonon FACTor for energy WINdow", + added_in_version="9.2.0", + text=r""" +This variable defines the effective energy window for the $\kq$ KS states +in the computation of electron lifetimes ([[eph_task]] -4) and is used to predict +the list of $\qq$-points in the BZ that will be needeed during the calculation. + +The code uses e.g. the input [[sigma_erange]] to select the $\nk$ states in $\tau_\nk$ but then this +initial energy window must be increased a bit to accommodate for phonon absorption/emission (from $\kk$ to $\kq$). +This is important for $\nk$ states that are close to edge of the initial energy window as this states may be needed +for the linear interpolation used in tetrahedron method. + +In a nutshell, the code increases the initial window using the max phonon frequency multiplied by [[eph_phwinfact]]. +The default value is a compromise between numerical stability and efficiency. +Reducing [[eph_phwinfact]] to a value closer to one (still > 1) can lead to a substantial decrease in the number of +$\kq$ KS states that must be read from file with a subsequent decrease in the memory requirements for the wavefunctions. +We recommended to perform initial tests to decide whether a value smaller than four can be used. +""", +), + +Variable( + abivarname="rifcsph", + varset="eph", + vartype="real", + topics=['Phonons_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Radius of the Interatomic Force Constant SPHere", + added_in_version="9.2.0", + text=r""" +Same meaning as [[rifcsph@anaddb]]. +""", +), + +Variable( + abivarname="rmm_diis", + varset="gstate", + vartype="integer", + topics=['TuningSpeedMem_useful','SCFAlgorithms_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Activate the RMM-DIIS eigensolver for GS calculations.", + added_in_version="9.3.0", + text=r""" + +This variable activates the Residual Minimization Method, Direct Inversion in the Iterative Subspace (RMM-DIIS) +eigensolver to **accelerate** GS computations, structural relaxations and molecular-dynamics simulations. +The algorithm is inspired to [[cite:Kresse1996]] although the ABINIT implementation is not +completely equivalent to the original formulation. +RMM-DIIS can be used both with NC and PAW pseudos and is fully compatible with the [[paral_kgb]] distribution. +Note, however, that PAW seems to be more sensitive to some internal tricks used to accelerate the computation +so you should not expect to see the same speedup as in the NC case. +This variable has no effect when [[optdriver]] > 0. + +It is worth noting that RMM-DIIS is usually employed **in conjunction with another eigenvalue solver** +that is used to perform the initial SCF iterations. +RMM-DIIS, indeed, **is not guaranteed to converge to the ground state** +as the algorithm will find the eigenvector/eigenvalue pair closest to the input trial state. +The reliability of RMM-DIIS thus **strongly** depends on the initialisation of the SCF cycle +and on the quality of the input wavefunctions that are supposed to be reasonably close to the final solution. + +Both the CG and the LOBPCG solver can be used in conjunction with RMM-DIIS although +it is strongly suggested to use LOBPCG with [[paral_kgb]] = 1 to take advantage of +its better efficiency and improved parallel scalability. +To activate RMM-DIIS with e.g. LOBPCG, it is sufficient to use: + +``` +paral_kgb 1 +rmm_diis 1 +``` + +in the input file and then select the value of [[np_spkpt]], [[npband]], [[npfft]], [[npspinor]] according to the system. + +!!! tip + + Using [[use_gemm_nonlop]] = 1 with [[bandpp]] > 1 can lead to a significant speedup + at the price of increased memory requirements. + +In the case of standard SCF calculations, Abinit activates the RMM-DIIS solver after 3 + [[rmm_diis]] SCF iterations. +When performing structural relaxations, RMM-DIIS is activated after [[rmm_diis]] SCF iterations +once the first GS calculation is completed. +This means that using [[rmm_diis]] = 1 for a structural relaxation leads to: + + - 4 SCF iterations with the CG/LOBPCG eigensolver followed by RMM-DIIS when are performing the **first GS calculation**. + - 1 SCF iterations with CG/LOBPCG followed by RMM-DIIS for all the subsequent relaxation steps. + +A negative value [[rmm_diis]] (e.g. -3) can be used to bypass the initial CG/LOBPCG iterations +but this option should be used with extreme care and it is not recommended in general. + +RMM-DIIS usually requires less wall-time per iteration when compared to other approaches since +there is no explicit orthogonalization while optimizing the trial states. +Only a single full-band Cholesky orthogonalization is performed per SCF iteration before recomputing the new density. +As a consequence, one RMM-DIIS iteration is usually faster (sometimes even by a factor two) than one CG/LOBPCG iteration, +especially in systems with relatively large [[mpw]]. +However, the additional steps of the algorithm (subspace rotation and Cholesky orthogonalization) +present poor MPI-scalability hence this part will start to dominate the wall-time in systems with large [[nband]]. + +The algorithm can also be used for NSCF band structure calculations although one should not expect RMM-DIIS +to provide **high-energy** states of the same quality as the one obtained with other eigenvalue solvers. +Although RMM-DIIS can be used for computing band structures and electron DOS with [[iscf]] = -2, we do not recommend +using this solver to produce WFK files with many empty states as required by many-body calculations. + +From the above discussion, it should be clear that RMM-DIIS is **less stable** than the other eigenvalue solvers +and you should be aware (and accept) that RMM-DIIS calculations **may fail**. +In the best case scenario, one clearly sees the problem as the SCF cycle does not convergence and/or +the code aborts with a non-zero exit status returned by one of the LAPACK routines. +In the worst case scenario, RMM-DIIS may seamlessly **converge to the wrong solution**. +This is especially true if the first LOBPCG/CG iterations fail to provide a reasonably-good initial starting point. + +In problematic cases, you may want to increase the value of [[rmm_diis]] so that more SCF iterations are done +with LOBPCG/CG before activating RMM-DIIS. +RMM-DIIS is indeed very sensitive to density mixing and increasing [[rmm_diis]] is a possible solution if you don't want +to play with the variables defining the mixing algorithm. + +As a general rule, we **strongly suggest** to include in the calculation more [[nband]] bands that what is strictly +needed to accommodate all the valence electrons (let's say > 10% of the occupied bands). +Increasing [[nband]], indeed, increases the number of vectors used +for the Rayleigh-Ritz subspace rotation and this step is crucial for finding the most accurate variational approximation +to the eigenvectors before starting the DIIS optimization. + +For a given precision, RMM-DIIS usually requires more iterations than the other eigensolvers. +For performance reasons, one should avoid using tight tolerances. +Something of the order of [[tolvrs]] = 1e-8 or [[toldfe]] = 1e-10 to stop the SCF cycle should be fine. +Avoid using ([[tolwfr]]) (criterion on the residuals) as converge criterion for SCF cycles +Use [[tolwfr]] only if you are using RMM-DIIS for NSCF band structure calculations (as this is the only converge criterion +available for NSCF calculations). + +Last but not least, note that the default implementation is quite aggressive at the level of memory allocations. +A less memory-intensive version of the algorithm can be activated via [[rmm_diis_savemem]] = 1. +""", +), + +Variable( + abivarname="rmm_diis_savemem", + varset="gstate", + vartype="integer", + topics=['TuningSpeedMem_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Save memory in the RMM-DIIS eigensolver.", + added_in_version="9.3.0", + text=r""" +This variable allows one to save memory in the RMM-DIIS eigensolver when [[rmm_diis]] /= 0. +By default, the RMM-DIIS routine allocates two extra arrays to reduce the number of applications of the Hamiltonian. +The size of these arrays depends on the number of plane-waves treated by each processor and [[nband]]. +The amount of memory scales with [[npband]] and [[npfft]] yet this extra memory is not negligible and the code +may go out of memory for large systems. +In this case, one can use [[rmm_diis_savemem]] = 1 to activate a version of RMM-DIIS that avoids these extra allocations. +""", +), + +Variable( + abivarname="useextfpmd", + varset="gstate", + vartype="integer", + topics=['ExtFPMD_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="USE EXTended FPMD model", + added_in_version="9.5.2", + text=r""" +Enables the calculation of contributions to the energy, entropy, stresses, +number of electrons and chemical potential using the extended First Principle +Molecular Dynamics model for high temperature simulations. + +For now, ExtFPMD is only available with [[occopt]] = 3, with [[tsmear]] defined +as the electronic temperature. More occupation options will be supported in the +future. + +In case of electronic SCF cycle convergency problems, try to set a number of +unoccupied bands in the buffer with [[extfpmd_nbdbuf]] input variable. + + * **useextfpmd** = 1 *(Recommended)*, the energy shift will be evaluated +by making an integration of the trial potential over the real space and the +contributions will be computed using the density of states of the Fermi gas. + + * **useextfpmd** = 2, the energy shift will be evaluated by making +the average between the eigenvalues and the Fermi gas energy over the last +[[extfpmd_nbcut]] bands, and the contributions will be computed with integrals +over the band number. + + * **useextfpmd** = 3, the energy shift will be evaluated by making the +average between the eigenvalues and the kinetic energies over the last +[[extfpmd_nbcut]] bands, and the contributions will be computed using the +density of states of the Fermi gas. + + * **useextfpmd** = 4, the energy shift will be evaluated +by making an integration of the trial potential over the real space and the +contributions will be computed with integrals over the band number. + + * **useextfpmd** = 5, the energy shift will be evaluated +by making an integration of the trial potential over the real space and the +contributions will be computed with discrete integer sums over the band indices. +[[extfpmd_nband]] sets the last band index, which acts like [[nband]] for a +conventional calculation. +""", +), + +Variable( + abivarname="extfpmd_nband", + varset="gstate", + vartype="integer", + topics=['ExtFPMD_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="EXTended FPMD: Number of Bands", + added_in_version="10.1.0", + text=r""" +Specifies the number of bands to use for extended First-Principles Molecular Dynamics contributions when using [[useextfpmd]] = 5. +This acts like [[nband]] for a conventional calculation. **extfpmd_nband** must be sufficiently high +so that its occupancy is close to zero. Extended FPMD contributions will be computed from [[nband]] to [[extfpmd_nband]]. + +**extfpmd_nband** must be greater than [[nband]]. +""", +), + +Variable( + abivarname="extfpmd_nbcut", + varset="gstate", + vartype="integer", + topics=['ExtFPMD_basic'], + dimensions="scalar", + defaultval=25, + mnemonics="EXTended FPMD: Number of Bands at CUT", + added_in_version="9.5.2", + text=r""" +Specifies the number of bands to use when averaging over last bands to get the +energy shift when [[useextfpmd]] = 2 or 3. + +**extfpmd_nbcut** must be less than or equal to [[nband]]. +""", +), + +Variable( + abivarname="extfpmd_nbdbuf", + varset="gstate", + vartype="integer", + topics=['ExtFPMD_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="EXTended FPMD: Number of BanDs for the BUFfer", + added_in_version="9.9.0", + text=r""" +Specifies the number of bands to use for the buffer when [[useextfpmd]] /= 0. +Among the total number of bands [[nband]], last [[extfpmd_nbdbuf]] bands +occupation will be set to 0, and ExtFPMD model will take charge of computing +electronic contributions starting from [[nband]] - [[extfpmd_nbdbuf]]. + +In some cases, setting this input variable to a positive number can solve +convergency problems due to high variations of electron density within the SCF +cycle. + +**extfpmd_nbdbuf** must be less than or equal to [[nband]]. +""", +), + +Variable( + abivarname="dipquad", + varset="eph", + vartype="integer", + topics=['longwave_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="DIPole-QUADdrupole interaction", + characteristics=['[[DEVELOP]]'], + added_in_version="v9.5.2", + text=r""" + +Same meaning as [[dipquad@anaddb]] +""", +), + +Variable( + abivarname="quadquad", + varset="eph", + vartype="integer", + topics=['longwave_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="QUADdrupole-QUADdrupole interaction", + characteristics=['[[DEVELOP]]'], + added_in_version="v9.5.2", + text=r""" + +Same meaning as [[quadquad@anaddb]] +""", +), + +Variable( + abivarname="use_oldchi", + varset="gw", + vartype="integer", + topics=['Susceptibility_expert'], + dimensions="scalar", + defaultval=1, + mnemonics=r"USE OLD CHI implementation for evaluating $\chi^{0}$ with eigenvalues taken from a QPS file", + characteristics=['[[DEVELOP]]'], + requires="[[optdriver]] == 3", + added_in_version="9.5.2", + text=r""" +This input variable defines whether to keep the old implementation in which the polarizability +$\chi^{0}$ is evaluated when the eigenvalues are read from an existing QPS file (e.g. in quasiparticle +self-consistent QS$GW$ or $G_0W_0$ starting from a hybrid-functional starting point.) + +* 0 --> Do not use the old implementation. + +* 1 --> Keep the old implementation. + +See line 743 in src/95_drive/screening.F90 . +""", +), + +Variable( + abivarname="gstore_cplex", + varset="eph", + vartype="integer", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval=2, + mnemonics=r"GSTORE ComPLEX dimension", + requires="[[optdriver]] == 7", + added_in_version="9.6.2", + text=r""" +This input variable specifies whether the EPH code should store $|g|^2$ or $g$ +when computing the e-ph matrix elements ([[eph_task]] == 11) +Possible values are: + + 1 --> compute and store $|g|^2$ in GSTORE.nc. + Use this option to reduce the size of the file but keep in mind + that the GSTORE can only be used to compute expression in which + only $|g|^2$ is needed. + 2 --> compute and store complex $g$ in GSTORE.nc (default) +""", +), + +Variable( + abivarname="gstore_with_vk", + varset="eph", + vartype="integer", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval=1, + mnemonics=r"GSTORE WITH Velocity_k", + requires="[[optdriver]] == 7", + added_in_version="9.6.2", + text=r""" +This input variable specifies whether the EPH code should compute and store +the matrix elements of the velocity operator when computing the e-ph matrix elements ([[eph_task]] == 11) +Possible values are: + + 0 --> Do not compute velocity matrix elements + 1 --> compute and store the diagonal matrix elements (default) + 2 --> compute and store diagonal + off-diagonal terms. +""", +), + +Variable( + abivarname="gstore_kzone", + varset="eph", + vartype="string", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="ibz", + mnemonics=r"GSTORE K-point ZONE", + requires="[[optdriver]] == 7", + added_in_version="9.6.2", + text=r""" +This input variable specifies whether the EPH code should compute the $g(\kk, \qq)$ +matrix elements for $\kk$ in the IBZ or in the BZ. + +!!! important + + The combination [[gstore_kzone]] = "ibz" with [[gstore_qzone]] = "ibz" is not allowed. + One usually restricts one wavevector to the IBZ while the other wavevector covers the full BZ. + Using the BZ for both $\kk$ and $\qq$ is usually used for testing purposes. +""", +), + +Variable( + abivarname="gstore_qzone", + varset="eph", + vartype="string", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="bz", + mnemonics=r"GSTORE Q-point ZONE", + requires="[[optdriver]] == 7", + added_in_version="9.6.2", + text=r""" +This input variable specifies whether the EPH code should compute the $g(\kk, \qq)$ +e-ph matrix elements for $\qq$ in the IBZ or in the BZ. + +!!! important + + The combination [[gstore_kzone]] = "ibz" with [[gstore_qzone]] = "ibz" is not allowed. + One usually restricts one wavevector to the IBZ while the other wavevector covers the full BZ. + Using the BZ for both $\kk$ and $\qq$ is usually used for testing purposes. +""", +), + +Variable( + abivarname="gstore_kfilter", + varset="eph", + vartype="string", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="none", + mnemonics=r"GSTORE K-FILTER", + requires="[[optdriver]] == 7", + added_in_version="9.6.2", + text=r""" +This input variable can be used to introduce a filter in the electronic wavevectors (k and k+q) +when computing the e-ph matrix elements with [[eph_task]] == 11. +Possible values are: + + "none" --> No filter is applied. + "fs_tetra" --> Use tetrahedron method to filter k/k+q states on the Fermi surface. + +Note that it is possible to use another filter based on the position of the energy states wrt to either +the CBM/VBM or the position wrt to the Fermi level via [[gstore_erange]]. +""", +), + +Variable( + abivarname="gstore_gmode", + varset="eph", + vartype="string", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="phonon", + mnemonics=r"GSTORE GMODE", + requires="[[optdriver]] == 7", + added_in_version="10.1.2", + text=r""" +This input variable specifies the representation used to store the e-ph matrix elements in the GSTORE.nc file + +Possible values are: + + "phonon" --> Store e-ph matrix elements in the phonon representation (collective displacement) + "atom" --> Store e-ph matrix elements in the atom representation (displacement of a single atom along one of the reduced directions) +""", +), + +Variable( + abivarname="gstore_brange", + varset="eph", + vartype="int", + topics=['ElPhonInt_basic'], + dimensions=[2, "[[nsppol]]"], + defaultval=0, + mnemonics=r"GSTORE Band RANGE", + requires="[[optdriver]] == 7", + added_in_version="9.6.2", + text=r""" +This input variable can be used to specify the band range +when computing the GSTORE.nc file with [[eph_task]] == 11. +The first entry gives the first band to be included while the second index specifies the last band. + +Note that the array depends on the value of [[nsppol]] thus one has to provide four integers for the +two different spin channels when [[nsppol]] == 2. + +If not specified in input, ABINIT will use all the bands from 1 up to the maximum number of bands +unless additional filters are activated, see [[gstore_kfilter]] and [[gstore_erange]]. +""", +), + +Variable( + abivarname="getgstore_filepath", + varset="eph", + vartype="string", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="None", + mnemonics="GET the GSTORE.nc from FILEPATH", + requires="[[optdriver]] == 7", + added_in_version="9.6.2", + text=r""" +This variable defines the path of the GSTORE.nc file with the e-ph matrix elements +that should be used as input for further analysis. + +This variable can also be used when [[eph_task]] == 11 i.e. when we compute the GSTORE file. +In this case, the code assumes we want to restart a GSTORE calculation and only the (k, q) entries +that are missing in the nc file are computed. +This option is very useful if the previous job has been killed due to timeout limit. +""", +), + +Variable( + abivarname="getabiwan_filepath", + varset="eph", + vartype="string", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="None", + mnemonics="GET the ABIWAN.nc from FILEPATH", + added_in_version="10.1.1", + text=r""" +This variable defines the path of the ABIWAN.nc file with the Wannier rotation matrices produced by ABINIT +when wannier90 in invoked in library mode. +See also [[getabiwan]]. +""", +), + +Variable( + abivarname="getabiwan", + varset="eph", + vartype="int", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="None", + mnemonics="GET the ABIWAN.nc from dataset", + added_in_version="10.1.1", + text=r""" +This variable is similar in spirit to [[getabiwan_filepath]] but uses the dataset index +instead of the filepath. +""", +), + +Variable( + abivarname="getgwan_filepath", + varset="eph", + vartype="string", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="None", + mnemonics="GET the GWAN.nc from FILEPATH", + added_in_version="10.1.1", + text=r""" +This variable defines the path of the GWAN.nc file with the e-ph matrix elements in the Wannier representation +See also [[getgwan]]. +""", +), + +Variable( + abivarname="getgwan", + varset="eph", + vartype="int", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="None", + mnemonics="GET the GWAN.nc from dataset", + added_in_version="10.1.1", + text=r""" +This variable is similar in spirit to [[getgwan_filepath]] but uses the dataset index +instead of the filepath. +""", +), + +Variable( + abivarname="gstore_erange", + varset="eph", + vartype="real", + topics=['ElPhonInt_basic'], + dimensions=[2, "[[nsppol]]"], + characteristics=['[[ENERGY]]'], + requires="[[optdriver]] == 7", + mnemonics="GSTORE Energy RANGE", + added_in_version="9.6.2", + text=r""" +This variable is used when [[eph_task]] = 11 to define the k/q points that should be considered when +producing the GSTORE.nc file +This variable consists of two x [[nsppol]] entries that allow one to select the k-points and the bands +on the basis of their KS energy $\ee_\nk$. + +If both entries in [[gstore_erange]] are negative, the code assumes a metal and only states within the energy +window [efermi - abs(gstore_erange(1)), efermi + abs(gstore_erange(2)] are included in the calculation. + +Positive (or zero) values are used in semiconductors to define an energy range with respect to the band edges. +In this case, the first entry given the position of the holes with respect to the CBM while the second entry +gives the position of electrons with respect to the VBM (energy differences are **always positive**, even for holes). +A zero entry can be used to exclude either holes or electrons from the calculation. + +If both entries are zero, the variable is ignored. +Note that [[gstore_erange]] is not compatible with [[gstore_brange]]. + +!!! important + + By default, this variable is given in Hartree. Use e.g. + + gstore_erange 0.0 0.5 eV + + to specify the energy intervals in eV units. meV is supported as well. +""", +), + +Variable( + abivarname="gwr_np_kgts", + varset="gw", + vartype="integer", + topics=['GWR_expert'], + dimensions=[4], + defaultval=0, + mnemonics="GWR Number of Processors for K-vectors, G-vectors, Tau-points, Spin.", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", + text=r""" +This variable defines the Cartesian grid of MPI processors used for GWR calculations. +If not specified in the input, the code will generate this grid automatically using the total number of processors +and the basic dimensions of the job computed at runtime. + +!!! important + + The total number of MPI processes must be equal to the product of the different entries. + + Note also that the GWR code implements its own MPI-algorithm and [[gwr_np_kgts]] is + the **only variable** that should be used to change the default behaviour. + Other variables such as [[npband]], [[npfft]], [[np_spkpt]] and [[paral_kgb]] + are **not used** in the GWR subdriver. +""", +), + +Variable( + abivarname="gwr_ucsc_batch", + varset="gw", + vartype="integer", + topics=['GWR_expert'], + dimensions=[2], + defaultval=-1, + mnemonics="GWR Unit Cell, Supercell BATCH SIZE.", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", + text=r""" +This variable defines the maximum number of FFTs performed in the unit cell/super cell. +If not specified in the input, the code will automatically define these values in order +to find a good compromise betweeen memory and performance. +""", +), + +Variable( + abivarname="gwr_task", + varset="gw", + vartype="string", + topics=['GWR_basic'], + dimensions=[1], + defaultval="None", + mnemonics="GWR TASK", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", + text=r""" +Select the task to be performed when [[optdriver]] == 6 i.e. GWR code. +The choice is among: + +* HDIAGO --> direct diagonalization of the KS Hamiltonian to produce [[nband]] eigenvectors +* HDIAGO_FULL --> direct diagonalization of the KS Hamiltonian for maximum number of eigenvectors defined by [[ecut]] +* G0W0 --> one-shot GW +* G0V --> +* EGEW --> +* EGW0 --> +* G0EW --> +* RPA_ENERGY --> Compute RPA correlation energy within the ACFDT framework. +* CC4S --> Read density from file, diagonalize the KS Hamiltonian and produce output files required by CC4S. +* CC4S_FULL --> Same as CC4S but compute maximum number of eigenvectors according to [[ecut]] +* CC4S_FROM_WFK --> Same as CC4S but read single particle orbitals from an external WFK file. + +!!! important + + At the time of writing, PAW is not supported by the GWR code. +""", +), + +Variable( + abivarname="gwr_ntau", + varset="gw", + vartype="integer", + topics=['GWR_basic'], + dimensions=[1], + defaultval=12, + mnemonics="GWR Number of TAU points.", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", + text=r""" +This variable defines the number of imaginary-time points in the minimax mesh. +""", +), + +Variable( + abivarname="gwr_chi_algo", + varset="gw", + vartype="integer", + topics=['GWR_basic'], + dimensions=[1], + defaultval=1, + mnemonics="GWR CHI ALGOrithm.", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", + text=r""" +This input variable selects the algorithm used to compute the polarizability in the GWR code. +Possible values are + +* 0 --> Automatic selection. +* 1 --> Use supercell. +* 2 --> Use convolutions in the BZ. +""", +), + +Variable( + abivarname="gwr_rpa_ncut", + varset="gw", + vartype="integer", + topics=['GWR_basic'], + dimensions=[1], + defaultval=5, + mnemonics="GWR RPA Number of CUToff", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", + text=r""" +Number of cutoff energies for extrapolating RPA correlation energy. +""", +), + +Variable( + abivarname="gwr_sigma_algo", + varset="gw", + vartype="integer", + topics=['GWR_basic'], + dimensions=[1], + defaultval=12, + mnemonics="GWR SIGMA ALGOrithm.", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", + text=r""" +This input variable selects the algorithm used to compute the self-energy in the GWR code. +Possible values are + +* 0 --> Automatic selection. +* 1 --> Use supercell. +* 2 --> Use convolutions in the BZ. +""", +), + +Variable( + abivarname="gwr_boxcutmin", + varset="gw", + vartype="real", + topics=['GWR_useful'], + dimensions=[1], + defaultval=1.0, + mnemonics="GWR BOX CUT-off MINimum", + requires="[[optdriver]] == 6", + added_in_version="9.6.2", + text=r""" +See the corresponding input variable for the usual GS grid [[boxcutmin]]. +""", +), + +Variable( + abivarname="gwr_max_hwtene", + varset="gw", + vartype="real", + topics=['GWR_useful'], + dimensions=[1], + defaultval=-1.0, + mnemonics="GWR MAX Head Wings Transition ENErgy", + requires="[[optdriver]] == 6", + added_in_version="9.8.0", + text=r""" +Energy window in Hartree for the empty states used in the computation of the head/wings of the polarizability. +""", +), + + +Variable( + abivarname="gwr_regterm", + varset="gw", + vartype="real", + topics=['GWR_expert'], + dimensions=[1], + defaultval=-1.0, + mnemonics="GWR REGularization TERM", + requires="[[optdriver]] == 6", + added_in_version="9.8.0", + text=r""" +TODO: To be described. +Negative value means automatic regularization. +Zero to deactivate it. +Positive to use specific value. +""", +), + + +Variable( + abivarname="optdcmagpawu", + varset="paw", + vartype="integer", + topics=['DFT+U_expert'], + dimensions="scalar", + defaultval=3, + mnemonics="OPTion for Double-Counting MAGnetic term in PAW+U formalism", + requires="[[usepaw]] == 1, [[usepawu]] == 1 or 4, and [[nspden]] == 4", + added_in_version="9.8.2", + text=r""" +This option is usefull only for tests and code comparisons. For magnetic computations ([[nspden]]==4), +it defines how the magnetism is treated in the double counting term in the PAW+U formalism. +Abinit versions before 9.8 correspond to [[optdcmagpawu]]=1, without magnetism in the DC term, +while [[optdcmagpawu]]=3 takes into account magnetism in the DC term, that is currently the default. +""", +), + + +Variable( + abivarname="gwpt_np_wpqbks", + varset="eph", + vartype="integer", + topics=['ElPhonInt_expert'], + dimensions=[6], + defaultval=0, + mnemonics="GWPT Number of Processors for Wavevector sum, Perturbations, Q-points, Bands, K-points, Spin.", + added_in_version="10.1.4", + text=r""" +This variable defines the Cartesian grid of MPI processors used for GWPT calculations. +If not specified in the input, the code will generate this grid automatically using the total number of processors +and the basic dimensions of the job computed at runtime. + +Preliminary considerations: + +!!! important + + The total number of MPI processes must be equal to the product of the different entries. + + Note also that the GWPT code implements its own MPI-algorithm and [[gwpt_np_wpqbks]] is + the **only variable** that should be used to change the default behaviour. + Other variables such as [[nppert]], [[npband]], [[npfft]], [[np_spkpt]] and [[paral_kgb]] + are **not used** in the EPH subdriver. +""", +), + +Variable( + abivarname="xg_nonlop_option", + varset="dev", + vartype="integer", + topics=['TuningSpeedMem_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="OPTION for XG_NONLOP routines", + added_in_version="10.2.2", + text=r""" +When using [[cprj_in_memory]]=1 with [[wfoptalg]]==111, the non-local terms of the Hamiltonian (see [[cprj_in_memory]]) +can be computed in two different ways, corresponding to [[xg_nonlop_option]]=0 or 1. +[[xg_nonlop_option]]=0 requires more memory than [[xg_nonlop_option]]=1, but much less MPI communications, so it is more efficient. +""", +), + +Variable( + abivarname="getdrhodb", + varset="files", + vartype="integer", + topics=['ElPhonInt_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="GET the DRHODB from...", + added_in_version="10.3.0", + text=r""" +This variable can be used when performing GWPT calculations with [[optdriver]] = 17 +to read a DVDB file with the derivative of densities produced in a previous dataset. +For example, one can concatenate a dataset in which an initial set of DFPT densities +on a relatively coarse q-mesh is interpolated on a denser q-mesh using [[eph_task]] = 5 and [[eph_ngqpt_fine]]. + + * If [[getdrhodb]] == 0, no such use of previously computed output potential file is done. + + * If [[getdrhodb]] is positive, its value gives the index of the dataset from which +the output potential is to be used as input. However, if the first dataset is treated, -1 +is equivalent to 0, since no dataset has been computed in the same run. + + * If [[getdrhodb]] is -1, the output potential of the previous dataset must be taken, +which is a frequently occurring case. + + * If [[getdrhodb]] is a negative number, it indicates the number of datasets to go +backward to find the needed file. Going back beyond the first dataset is equivalent to using zero for the get variable. + +Note also that one can also use [[getdrhodb_filepath]] to specify the path of the file directly. +""", +), + +Variable( + abivarname="getdrhodb_filepath", + varset="files", + vartype="string", + topics=['multidtset_useful'], + dimensions="scalar", + defaultval=None, + mnemonics="GET the DRHODB file from FILEPATH", + added_in_version="10.3.0", + text=r""" +Specify the path of the DVDB file with the first-order densities using a string instead of the dataset index. +Alternative to [[getdrhodb]] and [[irddrhodb]]. The string must be enclosed between quotation marks: + + getdrhodb_filepath "../outdata/out_DRHODB" +""", +), + + +Variable( + abivarname="irddrhodb", + varset="files", + vartype="integer", + topics=['ElPhonInt_useful'], + dimensions="scalar", + mnemonics="Integer that governs the ReaDing of DRHODB file", + added_in_version="10.3.0", + text=r""" +This variable can be used when performing GWPT calculations with [[optdriver]] = 17. +Set to 1, an *input* DRHODB file will be read. See also [[getdrhodb]] +""", +), + +Variable( + abivarname="getvarpeq_filepath", + varset="eph", + vartype="string", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=None, + mnemonics="GET the VARPEQ.nc from FILEPATH", + requires="[[eph_task]] in [13, -13]", + added_in_version="10.1.4", + text=r""" +This variable defines the path of the VARPEQ.nc file with the variational polaron +equations optimization results. + +This variable can be used when [[eph_task]] == 13 i.e. when we solve the variational +polaron equations. +In this case, if [[eph_restart]] / [[varpeq_interp]] == 1, the code assumes we want to +initialize the solution by restarting/interpolating from the solution available in +the VARPEQ.nc file. + +If [[eph_task]] == -13, the variable is required to produce *.xsf files containing +polaronic wavefunction and induced displacements that can be visualized with VESTA or Xcrysden. +""", +), + +Variable( + abivarname="getvarpeq", + varset="eph", + vartype="int", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=None, + mnemonics="GET the VARPEQ.nc from dataset", + requires="[[eph_task]] in [13, -13]", + added_in_version="10.1.4", + text=r""" +This variable is similar in spirit to [[getvarpeq_filepath]] but uses the dataset index +instead of the filepath. +""", +), + +Variable( + abivarname="varpeq_aseed", + varset="eph", + vartype="string", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval="gau_energy", + mnemonics="VARiational Polaron EQuations: A_nk-coefficients SEED", + requires="[[eph_task]] == 13", + added_in_version="10.1.4", + text=r""" +This variable specifies the type of initial seed for the electronic coefficients +$A_{n\mathbf{k}}$, defining the charge localization in the variational polaron +equations. + +Possible values: + +- "gau_energy" --> Gaussian based on the electronic eigenergies + $\varepsilon_{n\mathbf{k}}$: + + $$A_{n\mathbf{k}} \sim e^{-\frac{(\varepsilon_{n\mathbf{k}} - \mu)^2}{2\sigma^2}}.$$ + + The mean value $\mu$ and the standard deviation $\sigma$ are defined by the + [[varpeq_gpr_energy]] variable. + +- "gau_length" --> Gaussian based on the user-defined polaron localization lengths + $a_x$, $a_y$, $a_z$: + + $$A_{n\mathbf{k}} \sim e^{-\frac{1}{2}(a^2_x k^2_x + a^2_y k^2_y + a^2_z k^2_z)}.$$ + + The value of the localization lenghts are defined by the [[varpeq_gpr_length]] variable. + This option is still under development. + +- "random" --> Random initialization. + +- "even" --> Even contribution from each electronic state $\psi_n{\mathbf{k}}$. + +""", +), + + +Variable( + abivarname="varpeq_pkind", + varset="eph", + vartype="string", + topics=['Polaron_basic'], + dimensions="scalar", + requires="[[eph_task]] == 13", + added_in_version="10.1.4", + text=r""" +This variable specifies the kind of polaron to be obtained within the variational +polaron equations framework. + +Possible values: + +- "electron" --> electron polaron. + +- "hole" --> hole polaron. + +!!! important + + The "electron"/"hole" option requires exclusively conduction/valence manifold + provided in the GSTORE.nc file required to setup the variational polaron + equations calculation. + Intermixing conduction and valence states will lead to erroneous results. + +!!! note + + If the "hole" option is chosen, valence states are flipped, so one always + deals with the minimization problem, regardless of the polaron kind. + + Also, the polaron binding and localized state energy $E_p$ and $\varepsilon$ + are positive in case of a hole polaron, and negatie in case of an electron + polaron. +""", +), + + +Variable( + abivarname="varpeq_avg_g", + varset="eph", + vartype="integer", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="VARiational Polaron EQuations: AVeraGe matrix-elements at Gamma", + requires="[[eph_task]] == 13", + added_in_version="10.1.4", + text=r""" +If non-zero, this variable activates the correction to the the electron-phonon +matrix elements' Fröhlich divergence. +In this sense correction terms $g^\mathrm{avg}_\nu(0)$ are added to the matrix +elements at $\mathbf{q} = \Gamma$: + +$$ g^\mathrm{corr}_{nn\nu}(\mathbf{k}, 0) = g_{nn\nu}(\mathbf{k}, 0) + g^\mathrm{avg}_\nu(0). $$ + +These correction terms are computed from spherical integration of the long-range +electron-phonon contribution to the polaron enregy around $\Gamma$-point. +The spherical mesh for the integration is controlled by the [[eph_frohl_ntheta]] variable. + +Three scenarios are possible: + +- [[eph_frohl_ntheta]] == 0, [[varpeq_avg_g]] == 0 + +No integration of the electron-phonon energy, and variational polaron equations +are solved without $g^\mathrm{avg}_\nu(0)$ corrections. + +- [[eph_frohl_ntheta]] > 0, [[varpeq_avg_g]] == 0 + +Integration of the electron-phonon energy is performed, and variational polaron +equations are solved without $g^\mathrm{avg}_\nu(0)$ corrections. +In this scenario, the integrated energy can be added a posteriori to the optimized +polaron binding energy to account for the long-range effects. + +- [[eph_frohl_ntheta]] > 0, [[varpeq_avg_g]] != 0 + +Integration of the electron-phonon energy is performed, and variational polaron +equations are solved with $g^\mathrm{avg}_\nu(0)$ corrections. +This option is expected to accelerate the convergence of the optimization process. + +""", +), + + +Variable( + abivarname="varpeq_interp", + varset="eph", + vartype="integer", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="VARiational Polaron EQuations: INTERPolation", + requires="[[eph_task]] == 13", + added_in_version="10.1.4", + text=r""" +If non-zero, this variable activates the interpolation of the initial guess for +the electronic vector in the variational polaron equations. +In this case, the code reads a pre-existing VARPEQ.nc file and performs a linear +interpolation of $A_{n\mathbf{k}}$ provided the metadata found in the netcdf file +is compatible with the input file. + +With this feature, if a polaronic solution is obtained for a certain $\mathbf{k}$-grid, +it can then be read and interpolated to be used as a starting point for different grids. +This option is expected to lead the optimization proccess to the same polaronic configuration +and accelarate the convergence. +""", +), + + +Variable( + abivarname="varpeq_nstates", + varset="eph", + vartype="integer", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=1, + mnemonics="VARiational Polaron EQuations: Number of polaronic STATES", + requires="[[optdriver]] == 7 and [[eph_task]] == 13", + added_in_version="10.1.4", + text=r""" +This variables specifies the number of polaronic states to be found by solving the +variational polaron equations. +Each new state if found by imposing the orthogonalisation constraint to the all +previously found states during the optimization process. + +!!! important + + Since polaronic solutions are not necessarly orthogonal to each other, only the + first solution is expected to reach the required tolerance during optimization. + Imposing the orthogonalisation constraint, however, helps to find "metastable" + polarons that are far away from the obtained polaronic configurations. + One then can use other features, e.g. [[varpeq_select]] or [[varpeq_nstep_ort]] + to fully converge a "metastable" state without any constraints. + + Also, a single polaronic solution is invariant by primitive translations in a + supercell. + In order to eliminiate such trivial solutions, [[varpeq_translate]] variable + can be used. +""", +), + +Variable( + abivarname="varpeq_nstep", + varset="eph", + vartype="integer", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=50, + mnemonics="VARiational Polaron EQuations: Number of iteration STEPs", + requires="[[optdriver]] == 7 and [[eph_task]] == 13", + added_in_version="10.1.4", + text=r""" +This variables sets the maximum number of iterations in the optimization of +variational polaron equations. +""", +), + + +Variable( + abivarname="varpeq_select", + varset="eph", + vartype="integer", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=-1, + mnemonics="VARiational Polaron EQuations: SELECT polaronic state", + requires="[[eph_task]] == 13", + added_in_version="10.1.4", + text=r""" +If non-zero, this variable selects a single polaronic state to be optimized from +a **pre-existing** VARPEQ.nc file. +Requires [[eph_restart]] == 1 or [[varpeq_interp]] == 1. +Also, since a single polaronic state is selected, [[varpeq_nstates]] must be 1 in the +input file. +""", +), + + +Variable( + abivarname="varpeq_tolgrs", + varset="eph", + vartype="real", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=1e-6, + mnemonics="VARiational Polaron EQuations: TOLerance on the Gradient ReSidual", + requires="[[eph_task]] == 13", + added_in_version="10.1.4", + text=r""" +This variable sets a tolerance for the electronic gradient residual in the optimization +of the varitional polaron equations. +When reached, the iterative process will finish for a current polaronic state and move +to the next one, up to [[varpeq_nstates]]. +""", +), + + +Variable( + abivarname="varpeq_gpr_energy", + varset="eph", + vartype="real", + topics=['Polaron_basic'], + dimensions="(2)", + defaultval=[0, 1], + mnemonics="VARiational Polaron EQuations: Gaussian PaRameters -- electronic ENERGY", + requires='[[eph_task]] == 13 and [[varpeq_aseed]] == "gau_energy"', + added_in_version="10.1.4", + text=r""" +If [[varpeq_aseed]] == "gau_energy", this variable defines the mean value and the +standard deviation [[varpeq_gpr_energy]](:) = $\mu$, $\sigma$ for the Gaussian function to +be used as initial seed for the vector electronic coefficients. +See [[varpeq_aseed]] for details. +""", +), + + +Variable( + abivarname="varpeq_gpr_length", + varset="eph", + vartype="real", + topics=['Polaron_basic'], + dimensions="(3)", + defaultval=[1, 1, 1], + mnemonics="VARiational Polaron EQuations: Gaussian PaRameters -- localization LENGTH", + requires='[[eph_task]] == 13 and [[varpeq_aseed]] == "gau_length"', + added_in_version="10.1.4", + text=r""" +If [[varpeq_aseed]] == "gau_length", this variable defines the estimated polaron +localization lengths $a_x$, $a_y$, $a_z$ for the spread of gaussian function to be used +as initial seed for the vector electronic coefficients. +See [[varpeq_aseed]] for details. +""", +), + +Variable( + abivarname="varpeq_translate", + varset="eph", + vartype="integer", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="VARiational Polaron EQuations: TRANSLATE solutions", + requires='[[eph_task]] == 13 and [[varpeq_nstates]] > 1', + added_in_version="10.1.4", + text=r""" +If non-zero and [[varpeq_nstates]] > 1, this variable activates the translation +of previously obtained polaronic solutions prior to solving variational polaron +equations for a new one. +This helps to eliminate trivial states that are invariant by primitie translations. +See also [[varpeq_nstates]]. +""", +), + +Variable( + abivarname="varpeq_nstep_ort", + varset="eph", + vartype="integer", + topics=['Polaron_basic'], + dimensions="scalar", + defaultval=50, + mnemonics="VARiational Polaron EQuations: Number of STEPs with ORThogonalisation", + requires='[[eph_task]] == 13 and [[varpeq_nstates]] > 1', + added_in_version="10.1.4", + text=r""" +This variable defines the number of optimization steps, up to which the orthogonalization +to previous polaronic solutions is performed. +After [[varpeq_nstep_ort]] the orthogonalization constraint is lifted, which helps to +fully relax the polaron, while keeping it far from the previously obtained states. +See also [[varpeq_nstates]]. +""", +), + +Variable( + abivarname="eph_fix_korq", + varset="eph", + vartype="string", + topics=['ElPhonInt_basic'], + dimensions="scalar", + defaultval="k", + mnemonics="Electron-PHonon: FIX K-point OR Q-point", + requires="[[eph_task]] == 18", + added_in_version="10.1.4", + text=r""" +This variable defines whether one should fix the k-point or the q-point when computing the e-ph matrix elements +g(k,q) along either a q-path or k-path ([[eph_task]] == 18]. +Use "k" to fix the k-point or "q" to fix the q-point. + +The other piece of information is given by [[eph_fix_wavevec]] that specifies the reduced coordinates of the wavevector. +""", +), + +Variable( + abivarname="eph_fix_wavevec", + varset="eph", + vartype="real", + topics=['ElPhonInt_basic'], + dimensions=[3], + defaultval=[0, 0, 0], + mnemonics="Electron-PHonon: FIX WAVE-VECtor", + requires="[[eph_task]] == 18", + added_in_version="10.1.4", + text=r""" +This variable defines the wavevector in reduced coordinates of the reciprocal lattice +that should be fixed when computing the e-ph matrix elements g(k,q) along either a q-path or k-path ([[eph_task]] == 18]. +The other piece of information is given by [[eph_fix_korq]] that specifies whether one should fix the k-point or the q-point. + +To compute e-ph matrix as a function of the q-point: + +``` + optdriver 7 + eph_task 18 + + nstep 100 # NSCF cycle for electronic wavefunctions. + tolwfr 1e-18 + nbdbuf 4 + getpot_filepath "gs_POT" # Need to read the GS potential from file produced in a previous run. + + + # OTHER VARIABLES required by the EPH code such as getdvdb_filepath ... + + eph_fix_korq "k" # k is fixed in g(k,q) + eph_fix_wavevec 0.0 0 0 # k-point + + eph_path_brange 1 4 # Compute g(k,q) with m and n ranging from 4 up to 10 + nband 40 + + ph_ndivsm 10 # the q-path in g(k,q) + ph_nqpath 3 + ph_qpath + 0.0 0.0 0.0 + 0.5 0.0 0.5 + 0.5 0.25 0.75 +``` + +To compute e-ph matrix as a function of the k-point: + +``` + optdriver 7 + eph_task 18 + + eph_fix_korq "q" + eph_fix_wavevec 0.5 0 0 + nband 10 + eph_path_brange 4 + + ndivsm 10 + nkpath 3 + kptbounds + 0.0 0.0 0.0 + 0.5 0.0 0.5 + 0.5 0.25 0.75 +``` +""", +), + + +Variable( + abivarname="eph_path_brange", + varset="eph", + vartype="int", + topics=['ElPhonInt_useful'], + dimensions=[2], + defaultval=[0, 0], + mnemonics="Electron-PHonon: Band RANGE", + requires="[[eph_task]] == 18", + added_in_version="10.1.4", + text=r""" + +This variable defines the first and the last band that should be included when computing the e-ph matrix elements +g(k,q) along either a q-path or k-path ([[eph_task]] == 18]. +One can use these two variables to select the band range of interest and skip, for instance, low-energy states. +If not specied all bands from 1 up to [[nband]] are included, +If specified in input, eph_path_brange(2) must be <= [[nband]]. +""", +), + ] diff --git a/abipy/abio/abivar_database/variables_aim.py b/abipy/abio/abivar_database/variables_aim.py index 051cfb1c2..01aab7849 100644 --- a/abipy/abio/abivar_database/variables_aim.py +++ b/abipy/abio/abivar_database/variables_aim.py @@ -17,6 +17,7 @@ dimensions="scalar", defaultval=1, mnemonics="index of ATOM", + added_in_version="before_v9", text=r""" Index of the investigated atom. """, @@ -30,6 +31,7 @@ dimensions="scalar", defaultval=1.0, mnemonics="bader ATomic RADius", + added_in_version="before_v9", text=r""" A first estimation of the Bader radius (not too important - it is used only two times) @@ -44,6 +46,7 @@ dimensions="scalar", defaultval=0.98, mnemonics="COeFFicient 1", + added_in_version="before_v9", text=r""" See the input variable [[ratmin@aim]]. """, @@ -57,6 +60,7 @@ dimensions="scalar", defaultval=0.95, mnemonics="COeFFicient 2", + added_in_version="before_v9", text=r""" See the input variable [[ratmin@aim]]. """, @@ -70,6 +74,7 @@ dimensions="scalar", defaultval=0, mnemonics="computation of CRITical points", + added_in_version="before_v9", text=r""" Drives the computation of critical points. @@ -104,6 +109,7 @@ dimensions="scalar", defaultval=0, mnemonics="electronic DENsity OUTput", + added_in_version="before_v9", text=r""" Output of the electronic density. The specification of the line (plane) in the real space must be given in the input variable [[vpts@aim]] and grid in @@ -124,6 +130,7 @@ dimensions="scalar", defaultval=0, mnemonics="Density or Laplacian TYP output", + added_in_version="before_v9", text=r""" Specification of the contribution of the electronic density corresponding to the density and/or laplacian output (see [[denout@aim]] and [[lapout@aim]]) @@ -142,10 +149,11 @@ dimensions="scalar", defaultval="1.d-2", mnemonics="DPCLIM", + added_in_version="before_v9", text=r""" If two "numerically different" critical points are separated by less than -**dpclim** , they are considered to be the same critical point. This often -happens because of numerical inaccuracies : one CP might be "seen" by two +**dpclim**, they are considered to be the same critical point. This often +happens because of numerical inaccuracies: one CP might be "seen" by two different finite elements. The default should be OK when the ecut is quite large, on the order of 60 Hartree. For less accurate calculations of the density, increase the default value to 5.d-2, let's say. @@ -160,6 +168,7 @@ dimensions=[3], defaultval="3*0.0", mnemonics="FOLlow DEParture", + added_in_version="before_v9", text=r""" Needed in the case [[aim:follow]]=1 only. Defines the starting point. """, @@ -173,6 +182,7 @@ dimensions="scalar", defaultval=0, mnemonics="FOLLOW the gradient path", + added_in_version="before_v9", text=r""" Follow the gradient path to the corresponding atom starting from the position specified in the input variable [[aim:foldep]]. @@ -187,6 +197,7 @@ dimensions="scalar", defaultval=0.5, mnemonics="FOLlow STeP", + added_in_version="before_v9", text=r""" The first step for following the gradient path. """, @@ -200,6 +211,7 @@ dimensions="scalar", defaultval=0, mnemonics="GraPhic output for the bader SURFace", + added_in_version="before_v9", text=r""" Drives the graphic output (gnuplot script) of the irreducible part of the calculated Bader surface. @@ -217,6 +229,7 @@ dimensions="scalar", defaultval=100, mnemonics="numer of INtegration PoinTs", + added_in_version="before_v9", text=r""" Number of radial points used for integration of the Bader charge (not too sensitive). @@ -231,6 +244,7 @@ dimensions="scalar", defaultval=0, mnemonics="Integration of the charge density RHO", + added_in_version="before_v9", text=r""" Drives the integration of the charge of the Bader atom. @@ -247,6 +261,7 @@ dimensions="scalar", defaultval=0, mnemonics="Integration of the VOLume", + added_in_version="before_v9", text=r""" Drives the integration of the volume of the Bader atom. @@ -263,6 +278,7 @@ dimensions="scalar", defaultval=0, mnemonics="electronic density LAPlacian OUTput", + added_in_version="before_v9", text=r""" Output of the laplacian of electronic density. The specification of the line (plane) in the real space must be given in the input variable [[aim:vpts]] and @@ -283,6 +299,7 @@ dimensions="scalar", defaultval="1.d-12", mnemonics="Low GRADient criterion", + added_in_version="before_v9", text=r""" The search for one particular CP is decided to be successful when either the norm of the gradient of the electron density is smaller than **lgrad** or when @@ -303,6 +320,7 @@ dimensions="scalar", defaultval="1.d-5", mnemonics="Low GRADient criterion 2", + added_in_version="before_v9", text=r""" Determines the criterion for deciding that a CP has been found. See [[aim:lgrad]] for more details. @@ -317,6 +335,7 @@ dimensions="scalar", defaultval="1.d-10", mnemonics="Length of the planned search STEP", + added_in_version="before_v9", text=r""" Determines the criterion for deciding a CP has been found. See [[aim:lgrad]] for more details. @@ -331,6 +350,7 @@ dimensions="scalar", defaultval="1.d-5", mnemonics="Length of the planned search STEP 2", + added_in_version="before_v9", text=r""" Determines the criterion for deciding that a CP has been found. See [[aim:lgrad]] for more details. @@ -345,6 +365,7 @@ dimensions="scalar", defaultval=10.0, mnemonics="MAXimal ATomic Distance", + added_in_version="before_v9", text=r""" Atoms within this maximal distance are considered in order to start the search of a CP. @@ -363,6 +384,7 @@ dimensions="scalar", defaultval=5.0, mnemonics="MAXimal CP Distance", + added_in_version="before_v9", text=r""" The CPs are searched for within this maximal distance. @@ -380,6 +402,7 @@ dimensions=[2], defaultval="2*30", mnemonics="Number of GRID points", + added_in_version="before_v9", text=r""" Defines the grid in real space, for the density and laplacian outputs, governed by [[aim:denout]] and [[aim:lapout]]. @@ -394,6 +417,7 @@ dimensions="scalar", defaultval=48, mnemonics="Number of PHI angle", + added_in_version="before_v9", text=r""" With [[aim:ntheta]], this variable defines the angular grid for the integration within the Bader volume, in particular, the number of phi angles, @@ -412,9 +436,10 @@ dimensions="scalar", defaultval=3, mnemonics="Number of Supercell points in direction A", + added_in_version="before_v9", text=r""" These variables define a "supercell", from the primitive cell repeated along -each primitive direction. This supercell is build as follows : +each primitive direction. This supercell is build as follows: @@ -438,9 +463,10 @@ dimensions="scalar", defaultval=3, mnemonics="Number of Supercell points in direction B", + added_in_version="before_v9", text=r""" These variables define a "supercell", from the primitive cell repeated along -each primitive direction. This supercell is build as follows : +each primitive direction. This supercell is build as follows: @@ -464,9 +490,10 @@ dimensions="scalar", defaultval=3, mnemonics="Number of Supercell points in direction C", + added_in_version="before_v9", text=r""" These variables define a "supercell", from the primitive cell repeated along -each primitive direction. This supercell is build as follows : +each primitive direction. This supercell is build as follows: @@ -490,6 +517,7 @@ dimensions="scalar", defaultval=32, mnemonics="Number of THETA angles", + added_in_version="before_v9", text=r""" With [[aim:nphi]], this variable defines the angular grid for the integration within the Bader volume, in particular, the number of theta angles, to be used @@ -507,6 +535,7 @@ dimensions="scalar", defaultval=2.0, mnemonics="PHI MAXimal angle", + added_in_version="before_v9", text=r""" Angular limits of integration of the Bader volume for the phi variables. The number of integration points is given by [[aim:nphi]]. The range of @@ -522,6 +551,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="PHI MINimal angle", + added_in_version="before_v9", text=r""" Angular limits of integration of the Bader volume for the phi variables. The number of integration points is given by [[aim:nphi]]. The range of @@ -537,6 +567,7 @@ dimensions="scalar", defaultval=0.05, mnemonics="RADial STeP", + added_in_version="before_v9", text=r""" The length of the first step in the search of the exact Bader radius. """, @@ -550,6 +581,7 @@ dimensions="scalar", defaultval=1.0, mnemonics="Radius Atomic MINimal", + added_in_version="before_v9", text=r""" The first estimation of the smallest radius of the basin of the atom (the distance at which the procedure that follows the gradient path announces that @@ -571,6 +603,7 @@ dimensions=[2], defaultval="2*0.0", mnemonics="Radius SURface DIRection", + added_in_version="before_v9", text=r""" In the case [[aim:rsurf]]=1, gives the direction (angular coordinates theta,phi) along which the radius of the Bader surface is to be determined. @@ -585,6 +618,7 @@ dimensions="scalar", defaultval=0, mnemonics="computation of the Radius bader SURFace", + added_in_version="before_v9", text=r""" Drive the computation of the radius of the Bader surface for the angles specified in the input variable [[aim:rsurdir]] @@ -602,6 +636,7 @@ dimensions=[3], defaultval="1.0 1.0 1.0", mnemonics="SCALing of the cartesian coordinates", + added_in_version="before_v9", text=r""" SCALing of the cartesian coordinates. """, @@ -615,6 +650,7 @@ dimensions="scalar", defaultval=0, mnemonics="computation of the bader SURFace", + added_in_version="before_v9", text=r""" Drive the computation of the full Bader surface. @@ -631,6 +667,7 @@ dimensions="scalar", defaultval=r"$\pi$", mnemonics="THETA MAXimal angle", + added_in_version="before_v9", text=r""" Angular limits of integration of the Bader volume for the theta variables. The number of integration points is given by [[aim:ntheta]]. The range of @@ -646,6 +683,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="THETA MINimal angle", + added_in_version="before_v9", text=r""" Angular limits of integration of the Bader volume for the theta variables. The number of integration points is given by [[aim:ntheta]]. The range of @@ -662,6 +700,7 @@ defaultval="6*0.0", mnemonics="Vectors defining the PoinTS of the surface", commentdims="6 for 1D, 9 for 2D", + added_in_version="before_v9", text=r""" Basic vectors of the line or rectangle in real space, defining the points for which the density or laplacian will be computed, thanks to [[aim:denout]] or diff --git a/abipy/abio/abivar_database/variables_anaddb.py b/abipy/abio/abivar_database/variables_anaddb.py index 987414714..727d1887a 100644 --- a/abipy/abio/abivar_database/variables_anaddb.py +++ b/abipy/abio/abivar_database/variables_anaddb.py @@ -6,34 +6,36 @@ #from abimkdocs.variables import ValueWithUnit, MultipleValue, Range from abipy.abio.abivar_database.variables import ValueWithUnit, MultipleValue, Range, ValueWithConditions ValueWithConditions = dict -Variable=dict +Variable = dict variables = [ -Variable( - abivarname="a2fsmear@anaddb", - varset="anaddb", - vartype="real", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval=2e-05, - mnemonics="Alpha2F SMEARing factor", - characteristics=['[[ENERGY]]'], - text=r""" -Smearing width for the Eliashberg $\\alpha^2$F function (similar to a phonon DOS), + Variable( + abivarname="a2fsmear@anaddb", + varset="anaddb", + vartype="real", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval=2e-05, + mnemonics="Alpha2F SMEARing factor", + characteristics=['[[ENERGY]]'], + added_in_version="before_v9", + text=r""" +Smearing width for the Eliashberg $\alpha^2$F function (similar to a phonon DOS), which is sampled on a finite q and k grid. The Dirac delta functions in energy are replaced by Gaussians of width **a2fsmear** (by default in Hartree). """, -), - -Variable( - abivarname="alphon@anaddb", - varset="anaddb", - vartype="integer", - topics=['nonlinear_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="ALign PHONon mode eigendisplacements", - text=r""" + ), + + Variable( + abivarname="alphon@anaddb", + varset="anaddb", + vartype="integer", + topics=['nonlinear_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="ALign PHONon mode eigendisplacements", + added_in_version="before_v9", + text=r""" In case **alphon** is set to 1, ANADDB will compute linear combinations of the eigendisplacements of modes that are degenerate (twice or three times), in order to align the mode effective charges along the cartesian axes. This @@ -41,19 +43,21 @@ and to compute the Raman susceptibilities of individual phonon modes. In case of uniaxial crystals, the z-axis should be chosen along the optical axis. """, -), - -Variable( - abivarname="asr@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_basic', 'PhononBands_basic'], - dimensions="scalar", - defaultval=1, - mnemonics="Acoustic Sum Rule", - commentdefault="was 0 before v5.3", - text=r""" -Governs the imposition of the Acoustic Sum Rule (ASR). + ), + + Variable( + abivarname="asr@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_basic', 'PhononBands_basic'], + dimensions="scalar", + defaultval=1, + mnemonics="Acoustic Sum Rule", + commentdefault="was 0 before v5.3", + added_in_version="before_v9", + text=r""" +Governs the imposition of the Acoustic Sum Rule (ASR) in the ANADDB application. +Note that there is a similar input variable [[asr]] for ABINIT. * 0 --> no ASR for interatomic force constants is imposed. * 1 or 2 --> the ASR for interatomic force constants is imposed by modifying @@ -81,9 +85,10 @@ determined, and the self-force will be imposed to be consistent with the ASR. This correction will work if IFCs are computed ([[anaddb:ifcflag]]/=0), as well as if the IFCs are not computed ([[anaddb:ifcflag]]==0). In both cases, -the phonon frequencies will not be the same as the ones determined by the -output of abinit, RF case. If you want to check that the DDB is correct, by -comparing phonon frequencies from abinit and anaddb, you should turn off both +the phonon frequencies might not be the same as the ones determined by the +output of abinit, RF case, unless the same values of asr and chneut are used, +if the IFCs are not computed. If you want to check that the DDB is correct, by +comparing phonon frequencies from abinit and anaddb, it is best to turn off both **asr** and [[anaddb:chneut]]. Until now, we have not explained the difference between **asr** =1 and **asr** @@ -104,54 +109,56 @@ diagonalisation routine. Of course, when the matrix at Gamma has been generated from IFCs coming from dynamical matrices none of which are Gamma, the breaking of the ASR is rather severe. In order to clear the situation, one -should use a diagonalisation routine for non-hermitian matrices. So, at the -present status of understanding, one should always use the **asr** =2 option +should use a diagonalisation routine for non-hermitian matrices. ). """, -), - -Variable( - abivarname="atifc@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_basic'], - dimensions=['[[anaddb:natifc]]'], - defaultval=0, - mnemonics="AToms for IFC analysis", - text=r""" + ), + + Variable( + abivarname="atifc@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_basic'], + dimensions=['[[anaddb:natifc]]'], + defaultval=0, + mnemonics="AToms for IFC analysis", + added_in_version="before_v9", + text=r""" The actual numbers of the atoms for which the interatomic force constant have to be written and eventually analysed. WARNING: there will be an in-place change of meaning of atifc (this is confusing, and should be taken away in one future version - sorry for this). """, -), - -#FIXME NOTE XG20170811: apparently no effective test for this input variable. Also, -# the description is strange ...! -Variable( - abivarname="band_gap@anaddb", - varset="anaddb", - vartype="real", - topics=['ElPhonTransport_expert'], - dimensions="scalar", - defaultval=999.0, - mnemonics="BAND GAP", - characteristics=['[[ENERGY]]'], - text=r""" + ), + + # FIXME NOTE XG20170811: apparently no effective test for this input variable. Also, + # the description is strange ...! + Variable( + abivarname="band_gap@anaddb", + varset="anaddb", + vartype="real", + topics=['ElPhonTransport_expert'], + dimensions="scalar", + defaultval=999.0, + mnemonics="BAND GAP", + characteristics=['[[ENERGY]]'], + added_in_version="before_v9", + text=r""" Allow setting the target band gap, in eV. ([[anaddb:elphflag]]=1). """, -), - -Variable( - abivarname="brav@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=1, - mnemonics="BRAVais", - text=r""" + ), + + Variable( + abivarname="brav@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="BRAVais", + added_in_version="before_v9", + text=r""" Allows to specify the Bravais lattice of the crystal, in order to help to generate a grid of special q points. @@ -178,42 +185,47 @@ than the default **brav** = 1 algorithm based on Wigner-Seitz cells (new as v8.7). The default algorithm has a correct treatment of symmetries. """, -), - -Variable( - abivarname="chneut@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Integer for CHarge NEUTrality treatment", - text=r""" -Set the treatment of the Charge Neutrality requirement for the effective charges. - - * chneut=0 --> no ASR for effective charges is imposed - * chneut=1 --> the ASR for effective charges is imposed by giving to each atom + ), + + Variable( + abivarname="chneut@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="CHarge NEUTrality treatment", + added_in_version="before_v9", + text=r""" +Set the treatment of the Charge Neutrality requirement for the effective charges in the ANADDB application. +Note that there is a similar input variable [[abinit:chneut]] for ABINIT, however its default value is different.. + + * **chneut**=0 --> no charge neutrality for effective charges is imposed + * **chneut**=1 --> the charge neutrality for effective charges is imposed by giving to each atom an equal portion of the missing charge. See Eq.(48) in [[cite:Gonze1997a]]. - * chneut=2 --> the ASR for effective charges is imposed by giving to each atom a portion + * **chneut**=2 --> the charge neutrality for effective charges is imposed by giving to each atom a portion of the missing charge proportional to the screening charge already present. See Eq.(49) in [[cite:Gonze1997a]]. More detailed explanation: the sum of the effective charges in the unit cell should be equal to zero. It is not the case in the DDB, and this sum rule is sometimes strongly violated. In particular, this will make the lowest -frequencies at Gamma non-zero. There is no "best" way of imposing the ASR on effective charges. -""", -), - -Variable( - abivarname="dieflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="DIElectric FLAG", - text=r""" +frequencies at Gamma non-zero. There is no "best" way of imposing the cherge neutrality on effective charges. + +See also [[asr@anaddb]] and [[asr]]. +""", + ), + + Variable( + abivarname="dieflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="DIElectric FLAG", + added_in_version="before_v9", + text=r""" Frequency-dependent dielectric tensor flag. * 0 --> No dielectric tensor is calculated. @@ -223,7 +235,7 @@ Set [[rfstrs]] = 1, 2, or 3 (preferably 3). Set [[rfatpol]] and [[rfdir]] to do a full calculation of phonons at Q=0. The frequencies are defined by the [[anaddb:nfreq]], [[anaddb:frmin]], [[anaddb:frmax]] variables. Also, the generalized Lyddane-Sachs-Teller relation will be used as an independent check of the dielectric tensor - at zero frequency (this for the directions defined in the phonon list 2. See [[anaddb:nph2l]]. + at zero frequency (this for the directions defined in the phonon list 2, see [[anaddb:nph2l]]). * 2 --> Only the electronic dielectric tensor is calculated. It corresponds to a zero-frequency homogeneous field, with quenched atomic positions. For large band gap materials, this quantity is measurable because the @@ -248,112 +260,188 @@ We need information of internal strain and elastic tensor (relaxed ion) in this computation. So please set: [[anaddb:elaflag]]=2,3,4 or 5 and [[anaddb:instrflag]]=1 """, -), - -Variable( - abivarname="dipdip@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_basic'], - dimensions="scalar", - defaultval=1, - mnemonics="DIPole-DIPole interaction", - text=r""" + ), + + Variable( + abivarname="dipdip@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_basic'], + dimensions="scalar", + defaultval=1, + mnemonics="DIPole-DIPole interaction", + added_in_version="before_v9", + text=r""" * 0 --> the dipole-dipole interaction is not handled separately in the treatment of the interatomic forces. - This option is available for testing purposes or if effective charge and/or dielectric tensor is not available - in the derivative database. It gives results much less accurate than **dipdip** =1. + This option is available for testing purposes or if effective charge and/or dielectric tensor are not available + in the DDB file. In semiconductors, this option gives results much less accurate than **dipdip** = 1. + Using this value in metals is fine since the interatomic forces are usually short-ranged. + * 1 --> the dipole-dipole interaction is subtracted from the dynamical matrices before Fourier transform, so that only the short-range part is handled in real space. Of course, it is reintroduced analytically when the phonon spectrum is interpolated, or if the interatomic force constants have to be analysed in real space. + Note that the Ewald contribution to the dynamical matrix consists of two terms: a G-space sum and + and another (expensive) sum in R-space. + See [[cite:Gonze1997a]], equations (71) to (75). + This approach is very accurate but the computation of the R-space sum is rather expensive, especially + when one has to interpolate many q-points e.g. for PHDOS computations. + See dipdip -1 option below for a faster algorithm. + + * -1 --> Similar to +1 with the difference that the code computes a material-dependent width for + the Gaussians that will hopefully make the Ewald real-space summation unnecessary. + This option is **much faster** that dipdip 1 and is activated by default when + [[anaddb:dipquad]] or [[anaddb:quadquad]] are set to 1. + It is recommended to check that calculations with dipdip = 1 and -1 (both with dipquad = 0 and quadquad = 0) + lead to identical results. Otherwise increase the resolution of the q-point grid and repeat this test. +""", + ), + + Variable( + abivarname="dipquad@anaddb", + varset="anaddb", + vartype="integer", + topics=['longwave_basic'], + dimensions="scalar", + defaultval=1, + mnemonics="DIPole-QUADdrupole interaction", + characteristics=['[[DEVELOP]]'], + added_in_version="v9", + text=r""" +* 0 --> the dipole-quadrupole interaction is not handled separately in the treatment of the interatomic forces. +* 1 --> the dipole-quadrupole interaction is subtracted from the dynamical matrices before Fourier transform, + so that only the short-range part is handled in real space. Of course, it is reintroduced analytically + when the phonon spectrum is interpolated. Requires a preceding generation of 3rd order DDB with a [[lw_qdrpl]] = 1 + or a [[lw_flexo]] = 1 or 2 run. -The abinit input variable [[dipdip]] has a similar meaning. -""", -), +!!! important + + The default value is 1. + This means that the dipole-quadrupole interaction is always included **provided** the DDB file contains + the dynamical quadrupoles. + If the DDB file does not contain the dynamical quadrupoles, this variable is automatically set to zero at runtime. +""", + ), + + Variable( + abivarname="quadquad@anaddb", + varset="anaddb", + vartype="integer", + topics=['longwave_basic'], + dimensions="scalar", + defaultval=1, + mnemonics="QUADdrupole-QUADdrupole interaction", + characteristics=['[[DEVELOP]]'], + added_in_version="v9", + text=r""" +* 0 --> the quadrupole-quadrupole interaction is not handled separately in the treatment of the interatomic forces. +* 1 --> the quadrupole-quadrupole interaction is subtracted from the dynamical matrices before Fourier transform, + so that only the short-range part is handled in real space. Of course, it is reintroduced analytically + when the phonon spectrum is interpolated. Requires a preceding generation of 3rd order DDB with a [[lw_qdrpl]] = 1 + or a [[lw_flexo]] = 1 or 2 run. -Variable( - abivarname="dosdeltae@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval="4.5E-06 Hartree = 1 cm$^{-1}$", - mnemonics="DOS DELTA in Energy", - text=r""" +!!! important + + The default value is 1. + This means that the quadrupole-quadrupole interaction is always included **provided** the DDB file contains + the dynamical quadrupoles. + If the DDB file does not contain the dynamical quadrupoles, this variable is automatically set to zero at runtime. +""", + ), + + Variable( + abivarname="dosdeltae@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval="0.2 cm$^{-1}$ (about 0.9E-06 Hartree)", + mnemonics="DOS DELTA in Energy", + added_in_version="before_v9", + text=r""" The input variable **dosdeltae** is used to define the step of the frequency grid used to calculate the phonon density of states when [[anaddb:prtdos]] = 1. -""", -), - -Variable( - abivarname="dossmear@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval="4.5E-05 Hartree = 10 cm$^{-1}$", - mnemonics="DOS SMEARing value", - characteristics=['[[ENERGY]]'], - text=r""" + +Prior to v9.10, the default was 1 cm$^{-1}$. +""", + ), + + Variable( + abivarname="dossmear@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval="1 cm$^{-1}$ (about 4.5E-06 Hartree)", + mnemonics="DOS SMEARing value", + characteristics=['[[ENERGY]]'], + added_in_version="before_v9", + text=r""" **dossmear** defines the gaussian broadening used to calculate the phonon density of states when [[anaddb:prtdos]] = 1. + +Prior to v9.10, the default was 5 cm$^{-1}$. """, -), - -Variable( - abivarname="dossum@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="DOS SUM", - text=r""" + ), + + Variable( + abivarname="dossum@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="DOS SUM", + added_in_version="before_v9", + text=r""" Set the flag to 1 to calculate the two phonon dos density of states. Sum and Difference for the Gamma point. The DOS is converged and based on that, the sum and difference are reported in the output file. """, -), - -Variable( - abivarname="dostol@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0.25, - mnemonics="DOS TOLerance", - text=r""" + ), + + Variable( + abivarname="dostol@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0.25, + mnemonics="DOS TOLerance", + added_in_version="before_v9", + text=r""" The relative tolerance on the phonon density of state. This number will determine when the series of grids with which the DOS is calculated can be stopped, i.e. the mean of the relative change going from one grid to the next bigger is smaller than **dostol**. """, -), - -Variable( - abivarname="eivec@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_useful', 'PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="EIgenVECtors", - text=r""" + ), + + Variable( + abivarname="eivec@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_useful', 'PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="EIgenVECtors", + added_in_version="before_v9", + text=r""" * 0 --> do not write the phonon eigenvectors; * 1 or 2 --> write the phonon eigenvectors; * 4 --> generate output files for band2eps (drawing tool for the phonon band structure); """, -), - -Variable( - abivarname="elaflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['Elastic_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="ELAstic tensor FLAG", - text=r""" + ), + + Variable( + abivarname="elaflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['Elastic_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="ELAstic tensor FLAG", + added_in_version="before_v9", + text=r""" Flag for calculation of elastic and compliance tensors * 0 --> No elastic or compliance tensor will be calculated. @@ -381,60 +469,64 @@ to merge the first order derivative data base (DDB file) with the second order derivative data base (DDB file) into a new DDB file, which can contain both information. And the program will also check for the users. """, -), - -Variable( - abivarname="elph_fermie@anaddb", - varset="anaddb", - vartype="real", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval=0.0, - mnemonics="ELectron-PHonon FERMI Energy", - characteristics=['[[ENERGY]]'], - text=r""" + ), + + Variable( + abivarname="elph_fermie@anaddb", + varset="anaddb", + vartype="real", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval=0.0, + mnemonics="ELectron-PHonon FERMI Energy", + characteristics=['[[ENERGY]]'], + added_in_version="before_v9", + text=r""" If non-zero, will fix artificially the value of the Fermi energy (e.g. for semiconductors), in the electron-phonon case. Note that [[anaddb:elph_fermie]] and [[anaddb:ep_extrael]] should not be used at the same time. ([[anaddb:elphflag]]=1). """, -), - -Variable( - abivarname="elphflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononWidth_compulsory', 'ElPhonTransport_compulsory'], - dimensions="scalar", - defaultval=0, - mnemonics="ELectron-PHonon FLAG", - text=r""" + ), + + Variable( + abivarname="elphflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononWidth_compulsory', 'ElPhonTransport_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="ELectron-PHonon FLAG", + added_in_version="before_v9", + text=r""" If **elphflag** is 1, anaddb performs an analysis of the electron-phonon coupling. """, -), - -Variable( - abivarname="elphsmear@anaddb", - varset="anaddb", - vartype="real", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval="0.01 Hartree", - mnemonics="ELectron-PHonon SMEARing factor", - characteristics=['[[ENERGY]]'], - text=r""" + ), + + Variable( + abivarname="elphsmear@anaddb", + varset="anaddb", + vartype="real", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval="0.01 Hartree", + mnemonics="ELectron-PHonon SMEARing factor", + characteristics=['[[ENERGY]]'], + added_in_version="before_v9", + text=r""" Smearing width for the Fermi surface integration (in Hartree by default). """, -), - -Variable( - abivarname="enunit@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_useful', 'PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="ENergy UNITs", - text=r""" + ), + + Variable( + abivarname="enunit@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_useful', 'PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="ENergy UNITs", + added_in_version="before_v9", + text=r""" Give the energy for the phonon frequency output (in the output file, not in the console log file, for which Hartree units are used). @@ -442,48 +534,51 @@ * 1 --> meV and Thz; * 2 --> Hartree, cm$^{-1}$, meV, Thz, and Kelvin. """, -), - -Variable( - abivarname="ep_b_max@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Electron Phonon integration Band MAXimum", - text=r""" + ), + + Variable( + abivarname="ep_b_max@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Electron Phonon integration Band MAXimum", + added_in_version="before_v9", + text=r""" When set, and [[anaddb:telphint]] is equal to 2, this variable determines the k-point integration weights which are used in the electron-phonon part of the code. Instead of weighting according to a distance from the Fermi surface, an equal weight is given to all k-points, for all bands between [[anaddb:ep_b_min]] and **ep_b_max**. """, -), - -Variable( - abivarname="ep_b_min@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Electron Phonon integration Band MINimum", - text=r""" + ), + + Variable( + abivarname="ep_b_min@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Electron Phonon integration Band MINimum", + added_in_version="before_v9", + text=r""" As for [[anaddb:ep_b_max]], but **ep_b_min** is the lower bound on the band integration, instead of the upper bound. See also [[anaddb:telphint]]. """, -), - -Variable( - abivarname="ep_extrael@anaddb", - varset="anaddb", - vartype="real", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval=0.0, - mnemonics="Electron-Phonon EXTRA ELectrons", - text=r""" + ), + + Variable( + abivarname="ep_extrael@anaddb", + varset="anaddb", + vartype="real", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval=0.0, + mnemonics="Electron-Phonon EXTRA ELectrons", + added_in_version="before_v9", + text=r""" If non-zero, will fix artificially the number of extra electrons per unit cell (positive for electron doping), according to a doped case. (e.g. for semiconductors), in the electron-phonon case. This field can also be filled @@ -491,107 +586,114 @@ doping). Note that **ep_extrael** and [[anaddb:elph_fermie]] should not be used at the same time. ([[anaddb:elphflag]]=1). """, -), - -Variable( - abivarname="ep_int_gkk@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononWidth_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Electron-Phonon INTerpolation of GKK", - text=r""" + ), + + Variable( + abivarname="ep_int_gkk@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononWidth_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Electron-Phonon INTerpolation of GKK", + added_in_version="before_v9", + text=r""" This flag determines whether the interpolation of the electron-phonon matrix elements over the coarse k-grid is done ( **ep_int_gkk** 1) before summing with appropriate Fermi Surface weights. In this way, the two integration weights are treated symmetrically. """, -), - -Variable( - abivarname="ep_keepbands@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="Electron-Phonon KEEP dependence on electron BANDS", - text=r""" + ), + + Variable( + abivarname="ep_keepbands@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="Electron-Phonon KEEP dependence on electron BANDS", + added_in_version="before_v9", + text=r""" This flag determines whether the dependency of the electron-phonon matrix elements on the electron band index is kept ( **ep_keepbands** 1), or whether it is summed over immediately with appropriate Fermi Surface weights. For transport calculations **ep_keepbands** must be set to 1. """, -), - -Variable( - abivarname="ep_nqpt@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="Electron Phonon Number of Q PoinTs", - text=r""" + ), + + Variable( + abivarname="ep_nqpt@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Electron Phonon Number of Q PoinTs", + added_in_version="before_v9", + text=r""" In case a non-uniform grid of q-points is being used, for direct calculation of the electron-phonon quantities without interpolation, this specifies the number of q-points to be found in the GKK file, independently of the normal anaddb input (ngqpt) """, -), - -Variable( - abivarname="ep_nspline@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval=20, - mnemonics="Electron Phonon Number for SPLINE interpolation", - text=r""" + ), + + Variable( + abivarname="ep_nspline@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval=20, + mnemonics="Electron Phonon Number for SPLINE interpolation", + added_in_version="before_v9", + text=r""" The scale factor for cubic spline interpolation, only used in the relaxation time approximation ([[anaddb:ifltransport]]=3). """, -), - -Variable( - abivarname="ep_prt_yambo@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonInt_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="Electron Phonon PRinTout YAMBO data", - text=r""" + ), + + Variable( + abivarname="ep_prt_yambo@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Electron Phonon PRinTout YAMBO data", + added_in_version="before_v9", + text=r""" For electron-phonon calculations, print out matrix elements for use by the yambo code. """, -), - -Variable( - abivarname="ep_qptlist@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononWidth_useful'], - dimensions=[3, '[[anaddb:ep_nqpt]]'], - defaultval="(3*[[anaddb:ep_nqpt]])*0", - mnemonics="Electron Phonon Q PoinT LIST", - text=r""" + ), + + Variable( + abivarname="ep_qptlist@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononWidth_useful'], + dimensions=[3, '[[anaddb:ep_nqpt]]'], + defaultval="(3*[[anaddb:ep_nqpt]])*0", + mnemonics="Electron Phonon Q PoinT LIST", + added_in_version="before_v9", + text=r""" In case a non-uniform grid of q-points is being used, for direct calculation of the electron-phonon quantities without interpolation, this specifies the q-points to be found in the GKK file, independently of the normal anaddb input (ngqpt), in reduced coordinates of the reciprocal space lattice. """, -), - -Variable( - abivarname="ep_scalprod@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononWidth_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="DO SCALar PRODuct for gkk matrix elements", - text=r""" + ), + + Variable( + abivarname="ep_scalprod@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononWidth_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="DO SCALar PRODuct for gkk matrix elements", + added_in_version="before_v9", + text=r""" The input variable **ep_scalprod** is a flag determining whether the scalar product of the electron-phonon matrix elements (gkk) with the phonon displacement vectors is done before or after interpolation. Doing so before ( @@ -601,28 +703,58 @@ but sometimes gives small spikes in the phonon linewidths near band crossings or high symmetry points. I do not know why... """, -), - -Variable( - abivarname="freeze_displ@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_expert'], - dimensions="scalar", - defaultval=0.0, - mnemonics="FREEZE DISPLacement of phonons into supercells", - text=r""" + ), + + Variable( + abivarname="flexoflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['longwave_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="FLEXOelectric tensor FLAG", + characteristics=['[[DEVELOP]]'], + added_in_version="v9", + text=r""" +Flag for calculation of bulk flexoelectrics tensors + + * 0 --> No flexoelectric tensor is calculated. + * 1 --> All the contributions to the bulk flexoelectric tensor (clamped-ion, mixed and lattice-mediated) and + related quantities (piezoelectric and flexoelectric internal strain tensors and Lagrange elastic tensors) + are calculated. Requires a preceding generation of 2nd and 3rd order DDB with a [[lw_flexo]] = 1 run. + * 2 --> The clamped-ion flexoelectric tensor is printed. Requires a preceding generation of 2nd and 3rd order + DDB with a [[lw_flexo]] = 1 or 2 run. + * 3 --> The mixed flexoelectric tensor is calculated and printed along with the piezoelectric internal strain tensors. + Requires a preceding generation of 2nd and 3rd order DDB with a [[lw_flexo]] = 1 or 3 run. + * 4 --> The lattice-mediated flexoelectric tensor is calculated and printed along with the piezoelectric and flexoelectric + internal strain tensors and the Lagrange elastic tensors. + Requires a preceding generation of 2nd and 3rd order DDB with a [[lw_flexo]] = 1 or 4 run. +""", + ), + + Variable( + abivarname="freeze_displ@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_expert'], + dimensions="scalar", + defaultval=0.0, + mnemonics="FREEZE DISPLacement of phonons into supercells", + added_in_version="before_v9", + text=r""" If different from zero, **freeze_displ** will be used as the amplitude of a phonon displacement. For each q-point and mode in the [[anaddb:qph1l]] list, a file will be created containing a supercell of atoms with the corresponding phonon displacements frozen in. This is typically useful to freeze a soft phonon mode, then let it relax in abinit afterwards. -**freeze_displ** is unitless, but has a physical meaning: it is related to the +**freeze_displ** is unitless (for abinit), but has a physical meaning: it is related to the Bose distribution $n_B$ and the frequency $\omega_{qs}$ of the phonon mode. At a given -temperature T, **freeze_displ** will give the mean square displacement of -atoms (along with the displacement vectors, which are in Bohr). In atomic -units **freeze_displ** = $\sqrt{(0.5 + n_B(\omega_{qs}/kT) / \omega_{qs}}$. +temperature $T$, **freeze_displ** will give the root mean square displacement of +atoms (along with the displacement vectors, which are in *Bohr*). In atomic +units **freeze_displ** = $\sqrt{< \hat{x}^2 >} = \sqrt{(0.5 + n_B(\omega_{qs}/kT))/ \omega_{qs}}$ +where $\hat{x}\propto \hat{a} + \hat{a}^\dagger$ is the +displacement operator and $a^\dagger$ and $a$ are the phonon creation and annihilation operators respectively. Typical values are 50-200 for a frequency of a few hundred cm$^{-1}$ and room temperature. If all you want is to break the symmetry in the right direction, any reasonable value (10-50) should be ok. @@ -630,119 +762,131 @@ **WARNING**: this will create a _lot_ of files (3*natom*nph1l), so it should be used with a small number [[anaddb:nph1l]] of q-points for interpolation. """, -), - -Variable( - abivarname="frmax@anaddb", - varset="anaddb", - vartype="real", - topics=['Phonons_useful'], - dimensions="scalar", - defaultval=10.0, - mnemonics="FRequency MAXimum", - text=r""" + ), + + Variable( + abivarname="frmax@anaddb", + varset="anaddb", + vartype="real", + topics=['Phonons_useful'], + dimensions="scalar", + defaultval=10.0, + mnemonics="FRequency MAXimum", + added_in_version="before_v9", + text=r""" Value of the largest frequency for the frequency-dependent dielectric tensor, in Hartree. """, -), - -Variable( - abivarname="frmin@anaddb", - varset="anaddb", - vartype="real", - topics=['Phonons_useful'], - dimensions="scalar", - defaultval=0.0, - mnemonics="FRequency MINimum", - text=r""" + ), + + Variable( + abivarname="frmin@anaddb", + varset="anaddb", + vartype="real", + topics=['Phonons_useful'], + dimensions="scalar", + defaultval=0.0, + mnemonics="FRequency MINimum", + added_in_version="before_v9", + text=r""" Value of the lowest frequency for the frequency-dependent dielectric tensor, in Hartree. """, -), - -Variable( - abivarname="gkqwrite@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonInt_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="GKk for input Q grid to be WRITtEn to disk", - text=r""" + ), + + Variable( + abivarname="gkqwrite@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonInt_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="GKk for input Q grid to be WRITtEn to disk", + added_in_version="before_v9", + text=r""" Flag to write out the reciprocal space matrix elements to a disk file named gkqfile. This reduces strongly the memory needed for an electron-phonon run. """, -), - -Variable( - abivarname="gruns_ddbs@anaddb", - varset="anaddb", - vartype="string", - topics=['Temperature_useful'], - dimensions=['[[anaddb:gruns_nddbs]]'], - defaultval="Empty", - mnemonics="GRUNeiSen DDBS", - text=r""" + ), + + Variable( + abivarname="gruns_ddbs@anaddb", + varset="anaddb", + vartype="string", + topics=['Temperature_useful'], + dimensions=['[[anaddb:gruns_nddbs]]'], + defaultval="Empty", + mnemonics="GRUNeiSen DDBS", + added_in_version="before_v9", + text=r""" List of strings with the paths of the DDB files used for the calculation of the Gruneisen parameters. Each string must be enclosed by quotation marks. The number of DDB files is defined by [[anaddb:gruns_nddbs]] (possible values are: 3,5,7,9) The DDB files correspond to phonon calculations performed at different volumes (usually ± 1% of the equilibrium volume). The DDB files must be ordered according to the volume of the unit cell (the DDB with smallest -volume comes first) and the volume increment must be constant. The code +volume comes first) and the volume increment must be constant to a precision of +better than 1 part in $10^4$. The code computes the derivative of the dynamical matrix wrt the volume using central finite difference. """, -), - -Variable( - abivarname="gruns_nddbs@anaddb", - varset="anaddb", - vartype="integer", - topics=['Temperature_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="GRUNeiSen Number of DDB files", - text=r""" + ), + + Variable( + abivarname="gruns_nddbs@anaddb", + varset="anaddb", + vartype="integer", + topics=['Temperature_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="GRUNeiSen Number of DDB files", + added_in_version="before_v9", + text=r""" This variable defines the number of DDB files (read from [[anaddb:gruns_ddbs]]) -used for the calculation of the Gruneisen parameters. -""", -), - -Variable( - abivarname="iatfix@anaddb", - varset="anaddb", - vartype="integer", - topics=['ConstrainedPol_useful'], - dimensions=['[[anaddb:natfix]]'], - defaultval=0, - mnemonics="Indices of the AToms that are FIXed", - text=r""" +used for the calculation of the Gruneisen parameters. Note that computation of +the Grunheisen parameters is currently incompatible with many other features of +ANADDB, and so should be computed in a separate run from calculation of other +possible responses. +""", + ), + + Variable( + abivarname="iatfix@anaddb", + varset="anaddb", + vartype="integer", + topics=['ConstrainedPol_useful'], + dimensions=['[[anaddb:natfix]]'], + defaultval=0, + mnemonics="Indices of the AToms that are FIXed", + added_in_version="before_v9", + text=r""" Indices of the atoms that are fixed during a structural relaxation at constrained polarization. See [[anaddb:polflag]]. """, -), - -Variable( - abivarname="iatprj_bs@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions=['[[anaddb:natprj_bs]]'], - defaultval="0*'[[anaddb:natprj_bs]]'", - mnemonics="Indices of the AToms for the PRoJection of the phonon Band Structure", - text=r""" + ), + + Variable( + abivarname="iatprj_bs@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions=['[[anaddb:natprj_bs]]'], + defaultval="0*'[[anaddb:natprj_bs]]'", + mnemonics="Indices of the AToms for the PRoJection of the phonon Band Structure", + added_in_version="before_v9", + text=r""" Indices of the atoms that are chosen for projection of the phonon eigenvectors, giving a weighted phonon band structure file. """, -), - -Variable( - abivarname="ifcana@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="IFC ANAlysis", - text=r""" + ), + + Variable( + abivarname="ifcana@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="IFC ANAlysis", + added_in_version="before_v9", + text=r""" * 0 --> no analysis of interatomic force constants; * 1 --> analysis of interatomic force constants. @@ -754,21 +898,22 @@ local coordinate reference (the first vector is along the bond; the second vector is along the perpendicular force exerted on the generic atom by a longitudinal displacement of the neighbouring atom - in case it does not -vanish; the third vector is perpendicular to the two other) also calculate +vanish; the third vector is perpendicular to the two others). Also calculate ratios with respect to the longitudinal force constant ( the (1,1) element of the matrix in local coordinates). """, -), - -Variable( - abivarname="ifcflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_compulsory'], - dimensions="scalar", - defaultval=0, - mnemonics="Interatomic Force Constants FLAG", - text=r""" + ), + + Variable( + abivarname="ifcflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="Interatomic Force Constants FLAG", + added_in_version="before_v9", + text=r""" * 0 --> do all calculations directly from the DDB, without the use of the interatomic force constant. * 1 --> calculate and use the interatomic force constants for interpolating the phonon spectrum and dynamical matrices at every q wavevector, and eventually analyse the interatomic force constants, @@ -789,49 +934,52 @@ suggested to always use **ifcflag** =1. The **ifcflag** =0 option is available for checking purpose, and if there is not enough information in the DDB. """, -), - -Variable( - abivarname="ifcout@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="IFC OUTput", - text=r""" + ), + + Variable( + abivarname="ifcout@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="IFC OUTput", + added_in_version="before_v9", + text=r""" For each atom in the list [[anaddb:atifc]] (generic atoms), **ifcout** give the number of neighbouring atoms for which the ifc's will be output (written) and eventually analysed. The neighbouring atoms are selected by decreasing distance with respect to the generic atom. """, -), - -Variable( - abivarname="ifltransport@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="IFLag for TRANSPORT", - text=r""" + ), + + Variable( + abivarname="ifltransport@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="IFLag for TRANSPORT", + added_in_version="before_v9", + text=r""" if **ifltransport** =1 (LOVA) or **ifltransport** =2 (non-LOVA), anaddb calculates the transport properties: electrical and thermal resistivities from electron- phonon interactions in the variational approach. If **ifltransport** =3, anaddb calculates the k-dependent relaxation time. (needs [[anaddb:elphflag]] = 1) """, -), - -Variable( - abivarname="instrflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['Elastic_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="INternal STRain FLAG", - text=r""" + ), + + Variable( + abivarname="instrflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['Elastic_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="INternal STRain FLAG", + added_in_version="before_v9", + text=r""" Internal strain tensor flag. * 0 --> No internal-strain calculation. @@ -839,17 +987,18 @@ Requirements for preceding response-function DDB generation run: Strain and full atomic-displacement responses. Set [[rfstrs]] = 1, 2, or 3 (preferably 3). Set [[rfatpol]] and [[rfdir]] to do a full calculation of phonons at Q=0. """, -), - -Variable( - abivarname="istrfix@anaddb", - varset="anaddb", - vartype="integer", - topics=['ConstrainedPol_useful'], - dimensions=['[[anaddb:nstrfix]]'], - defaultval=0, - mnemonics="Index of STRain FIXed", - text=r""" + ), + + Variable( + abivarname="istrfix@anaddb", + varset="anaddb", + vartype="integer", + topics=['ConstrainedPol_useful'], + dimensions=['[[anaddb:nstrfix]]'], + defaultval=0, + mnemonics="Index of STRain FIXed", + added_in_version="before_v9", + text=r""" Indices of the elements of the strain tensor that are fixed during a structural relaxation at constrained polarisation: @@ -878,192 +1027,388 @@ See [[anaddb:polflag]]. """, -), - -Variable( - abivarname="kptrlatt@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_basic', 'PhononWidth_basic'], - dimensions=[3, 3], - defaultval="9*0", - mnemonics="K PoinT Reciprocal LATTice", - text=r""" + ), + + Variable( + abivarname="kptrlatt@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_basic', 'PhononWidth_basic'], + dimensions=[3, 3], + defaultval="9*0", + mnemonics="K PoinT Reciprocal LATTice", + added_in_version="before_v9", + text=r""" Unnormalized lattice vectors for the k-point grid in reciprocal space (see -[[kptrlatt]] abinit variable definitionas well). Input needed in electron-phonon +[[kptrlatt]] abinit variable definition as well). Input needed in electron-phonon calculations using nesting functions or tetrahedron integration. """, -), - -Variable( - abivarname="kptrlatt_fine@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_expert'], - dimensions=[3, 3], - defaultval="9*0", - mnemonics="K PoinT Reciprocal LATTice for FINE grid", - text=r""" + ), + + Variable( + abivarname="kptrlatt_fine@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_expert'], + dimensions=[3, 3], + defaultval="9*0", + mnemonics="K PoinT Reciprocal LATTice for FINE grid", + added_in_version="before_v9", + text=r""" As kptrlatt above, but for a finer grid of k-points. Under development. Does not work yet, as of |today|. """, -), - -Variable( - abivarname="mustar@anaddb", - varset="anaddb", - vartype="real", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval=0.1, - mnemonics="MU STAR", - text=r""" + ), + + Variable( + abivarname="lwf_anchor_ibands@anaddb", + varset="anaddb", + vartype="integer", + topics=['LatticeWannier_basic'], + dimensions=['[[anaddb:lwf_nwann]]'], + defaultval=['[0]*[[anaddb:lwf_nwann]]'], + mnemonics="Lattice Wannier Function: the ANCHOR Indices of BANDS", + added_in_version="9.8.0", + text=r""" +The indices of bands of the anchor points. Together with the [[anaddb:lwf_anchor_qpt]], it gives the phonon modes used as anchor points. For example, lwf_anchor_qpt = 0.0 0.0 0.0 and lwf_anchor_ibands= 0 1 2 means the lowest three modes are used as anchor points. The number of anchor ibands should be equal to the number of Wannier functions. +""", + ), + + + + Variable( + abivarname="lwf_anchor_proj@anaddb", + varset="anaddb", + vartype="integer", + topics=['LatticeWannier_basic'], + dimensions='scalar', + defaultval="0", + mnemonics="Lattice Wannier Function ANCHOR point PROJection", + added_in_version="9.8.0", + text=r""" +Whether to multiply the projection to the anchor points when calculating the weight for the disentanglement when constructing Lattice Wannier function. + + * 0 --> Do not multiply the projection. + + * 1 --> Multiply the projection. + +""", + ), + + + + Variable( + abivarname="lwf_anchor_qpt@anaddb", + varset="anaddb", + vartype="real", + topics=['LatticeWannier_basic'], + dimensions=[3], + defaultval=[0, 0, 0], + mnemonics="Lattice Wannier Function: the ANCHOR QPoinTs", + added_in_version="9.8.0", + text=r""" +The q-point of the anchor points. Together with the [[anaddb:lwf_anchor_ibands]], it gives the phonon modes used as anchor points. For example, lwf_anchor_qpt = 0.0 0.0 0.0 and lwf_anchor_ibands= 0 1 2 means the lowest three modes are used as anchor points. +""", + ), + + + Variable( + abivarname="lwf_disentangle@anaddb", + varset="anaddb", + vartype="integer", + topics=['LatticeWannier_basic'], + dimensions='scalar', + defaultval=0, + mnemonics="Lattice Wannier Function DISENTANGLE function", + added_in_version="9.8.0", + text=r""" +Type of weight function used in the "disentanglement via entanglement" method. For any phonon mode, the weight function +to represent the importance of the eigen mode, is a defined as a function of the eigen value (\lambda). + + * 0 --> The unity function, equals to 1 for any energy. + + * 1 --> The Erfc function, $f(\lambda)=\frac{1}{2} erfc(\frac{\lambda-\mu}{\sigma}) $. + + * 2 --> The Gaussian function $f(\lambda) = exp(\frac{-(\lambda-\mu)^2}{\sigma^2})$. + +The value of $\mu$ and $\sigma$ are defined with [[anaddb:lwf_mu]] and [[anaddb:lwf_sigma]], respectively. + +""", + ), + + Variable( + abivarname="lwf_mu@anaddb", + varset="anaddb", + vartype="real", + topics=['LatticeWannier_basic'], + dimensions='scalar', + defaultval=0.0, + mnemonics="Lattice Wannier Function: the MU value", + added_in_version="9.8.0", + text=r""" +The mu ($\mu$) parameter in the Lattice Wannier function disentanglement function. +See [[anaddb:lwf_disentangle]] for more details. +""", + ), + + Variable( + abivarname="lwf_sigma@anaddb", + varset="anaddb", + vartype="real", + topics=['LatticeWannier_basic'], + dimensions='scalar', + defaultval=0.0, + mnemonics="Lattice Wannier Function: the sigma value", + added_in_version="9.8.0", + text=r""" +The sigma ($\sigma$) parameter in the Lattice Wannier function disentanglement function. +See [[anaddb:lwf_disentangle]] for more details. +""", + ), + + + + Variable( + abivarname="lwf_ngqpt@anaddb", + varset="anaddb", + vartype="integer", + topics=['LatticeWannier_basic'], + dimensions=[3], + defaultval=[0, 0, 0], + mnemonics="Lattice Wannier Function: the Number of Grid of Q-PoinTs", + added_in_version="9.8.0", + text=r""" +The Monkhorst-Pack grid used for construction Lattice Wannier functions. +""", + ), + + + + + Variable( + abivarname="lwf_nwann@anaddb", + varset="anaddb", + vartype="integer", + topics=['LatticeWannier_basic'], + dimensions='scalar', + defaultval=0, + mnemonics="Lattice Wannier Function: Number of WANNier functions", + added_in_version="9.8.0", + text=r""" +The number of Lattice Wannier functions to be constructed. +""", + ), + + + Variable( + abivarname="lwf_projector@anaddb", + varset="anaddb", + vartype="integer", + topics=['LatticeWannier_basic'], + dimensions=['[[anaddb:lwf_nwann]]'], + defaultval=['[0]*[[anaddb:lwf_nwann]]'], + mnemonics="Lattice Wannier Function: the PROJECTORs", + added_in_version="9.8.0", + text=r""" +The indices of atomic displacements used as projectors in the construction of Lattice Wannier function with the projected Wannier function method. +For each atom, there are three displacements along x, y, and z in the cartesian coordinate. The list of the displacements are thus (atom 1, x), (atoms 1, y), (atom 1, z), (atom 2, x), etc. The lwf_projector option specifies the indices of the se displacement to be used as projectors. The number of the projectors should equal the number of wannier functions. +""", + ), + + + + + + Variable( + abivarname="lwfflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['LatticeWannier_basic'], + dimensions='scalar', + defaultval=0, + mnemonics="Lattice Wannier Function Flag", + added_in_version="9.8.0", + text=r""" +Lattice Wannier function flag. + + * 0 --> No Lattice Wannier function constructed. + + * 1 --> Lattice Wannier function constructed. + +""", + ), + + + + + + Variable( + abivarname="mustar@anaddb", + varset="anaddb", + vartype="real", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval=0.1, + mnemonics="MU STAR", + added_in_version="before_v9", + text=r""" Average electron-electron interaction strength, for the computation of the superconducting Tc using Mc-Millan's formula. """, -), - -Variable( - abivarname="natfix@anaddb", - varset="anaddb", - vartype="integer", - topics=['ConstrainedPol_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Number of AToms FIXed", - text=r""" + ), + + Variable( + abivarname="natfix@anaddb", + varset="anaddb", + vartype="integer", + topics=['ConstrainedPol_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Number of AToms FIXed", + added_in_version="before_v9", + text=r""" Number of atoms that are fixed during a structural optimisation at constrained polarization. See [[anaddb:polflag]]. """, -), - -Variable( - abivarname="natifc@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Number of AToms for IFC analysis", - text=r""" + ), + + Variable( + abivarname="natifc@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Number of AToms for IFC analysis", + added_in_version="before_v9", + text=r""" Give the number of atoms for which IFCs are written and eventually analysed. The list of these atoms is provided by [[anaddb:atifc]]. """, -), - -Variable( - abivarname="natprj_bs@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Number of AToms for PRoJection of the Band Structure", - text=r""" + ), + + Variable( + abivarname="natprj_bs@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Number of AToms for PRoJection of the Band Structure", + added_in_version="before_v9", + text=r""" Give the number of atoms for which atomic-projected phonon band structures will be output. The list of these atoms is provided by [[anaddb:iatprj_bs]]. """, -), - -Variable( - abivarname="nchan@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_expert'], - dimensions="scalar", - defaultval=800, - mnemonics="Number of CHANnels", - text=r""" + ), + + Variable( + abivarname="nchan@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_expert'], + dimensions="scalar", + defaultval=800, + mnemonics="Number of CHANnels", + added_in_version="before_v9", + text=r""" The number of channels of width 1 cm$^{-1}$ used in calculating the phonon density of states through the histogram method, or, equivalently, the largest frequency sampled. The first channel begins at 0. """, -), - -Variable( - abivarname="ndivsm@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_basic', 'PhononWidth_useful'], - dimensions="scalar", - defaultval=20, - mnemonics="Number of DIVisions for the SMallest segment", - text=r""" + ), + + Variable( + abivarname="ndivsm@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_basic', 'PhononWidth_useful'], + dimensions="scalar", + defaultval=20, + mnemonics="Number of DIVisions for the SMallest segment", + added_in_version="before_v9", + text=r""" This variable defines the number of divisions used to sample the smallest -segment of the q-path used for the phonon band structure. If ndivsm is +segment of the q-path used for the phonon band structure. If [[anaddb:ndivsm]] is specified in the input file, the code will automatically generate the points along the path using the coordinates given in the array [[anaddb:qpath]]. """, -), - -Variable( - abivarname="nfreq@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_useful'], - dimensions="scalar", - defaultval=1, - mnemonics="Number of FREQuencies", - text=r""" + ), + + Variable( + abivarname="nfreq@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="Number of FREQuencies", + added_in_version="before_v9", + text=r""" Number of frequencies wanted for the frequency-dependent dielectric tensor. Should be positive. See [[anaddb:dieflag]]. The code will take **nfreq** equidistant values from [[anaddb:frmin]] to [[anaddb:frmax]]. """, -), - -Variable( - abivarname="ng2qpt@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions=[3], - defaultval="3*0", - mnemonics="Number of Grids points for Q PoinTs (grid 2)", - text=r""" + ), + + Variable( + abivarname="ng2qpt@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions=[3], + defaultval="3*0", + mnemonics="Number of Grids points for Q PoinTs (grid 2)", + added_in_version="before_v9", + text=r""" The Monkhorst-Pack grid linear dimensions, for the finer of the series of fine grids. Used for the integration of thermodynamical functions (Bose-Einstein distribution) or for the DOS. """, -), - -Variable( - abivarname="ngqpt@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_basic', 'PhononBands_basic'], - dimensions=[3], - defaultval="3*0", - mnemonics="Number of Grids points for Q PoinTs", - text=r""" + ), + + Variable( + abivarname="ngqpt@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_basic', 'PhononBands_basic'], + dimensions=[3], + defaultval="3*0", + mnemonics="Number of Grids points for Q PoinTs", + added_in_version="before_v9", + text=r""" The Monkhorst-Pack grid linear dimensions (coarse grid). Should correspond to the grid of points available in the DDB or to a sub-grid. """, -), - -Variable( - abivarname="ngrids@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_expert'], - dimensions="scalar", - defaultval=4, - mnemonics="Number of GRIDS", - text=r""" + ), + + Variable( + abivarname="ngrids@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_expert'], + dimensions="scalar", + defaultval=4, + mnemonics="Number of GRIDS", + added_in_version="before_v9", + text=r""" This number define the series of grids that will be used for the estimation of the phonon DOS. The coarsest will be tried first, then the next, ... then the one described by [[anaddb:ng2qpt]]. The intermediate grids are defined for -igrid=1... **ngrids**, by the numbers ngqpt_igrid(ii)=(ng2qpt(ii)*igrid)/**ngrids** -""", -), - -Variable( - abivarname="nlflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['nonlinear_compulsory'], - dimensions="scalar", - defaultval=0, - mnemonics="Non-Linear FLAG", - text=r""" +igrid=1... [[anaddb:ngrids]], by the numbers +ngqpt_igrid(ii)=(igrid ng2qpt(ii))/[[anaddb:ngrids]]s +""", + ), + + Variable( + abivarname="nlflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['nonlinear_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="Non-Linear FLAG", + added_in_version="before_v9", + text=r""" Non-linear properties flag. * 0 --> do not compute non-linear properties ; @@ -1072,17 +1417,18 @@ induced by an atomic displacement are calculated; * 3 --> only the non-linear optical susceptibility is calculated. """, -), - -Variable( - abivarname="nph1l@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="Number of PHonons in List 1", - text=r""" + ), + + Variable( + abivarname="nph1l@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="Number of PHonons in List 1", + added_in_version="before_v9", + text=r""" The number of wavevectors in phonon list 1, used for interpolation of the phonon frequencies. The values of these wavevectors will be specified by [[anaddb:qph1l]]. The dynamical matrix for these wavevectors, obtained either @@ -1090,17 +1436,18 @@ forces interpolation - if [[anaddb:ifcflag]]=1 -), will be diagonalized, and the corresponding eigenfrequencies will be printed. """, -), - -Variable( - abivarname="nph2l@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="Number of PHonons in List 2", - text=r""" + ), + + Variable( + abivarname="nph2l@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="Number of PHonons in List 2", + added_in_version="before_v9", + text=r""" The number of wavevectors in phonon list 2, defining the directions along which the non-analytical splitting of phonon frequencies at Gamma will be calculated. The actual values of the wavevector directions will be specified @@ -1116,48 +1463,51 @@ * calculate the generalized Lyddane-Sachs-Teller relation. Note that if the three first numbers are zero, then the code will do a calculation at Gamma without non-analyticities. """, -), - -Variable( - abivarname="nqpath@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_basic', 'PhononWidth_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="Number of Q wavevectors defining a PATH", - text=r""" + ), + + Variable( + abivarname="nqpath@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_basic', 'PhononWidth_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="Number of Q wavevectors defining a PATH", + added_in_version="before_v9", + text=r""" Number of q-points in the array [[anaddb:qpath]] defining the path along which the phonon band structure and phonon linewidths are interpolated. """, -), - -Variable( - abivarname="nqshft@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=1, - mnemonics="Number of Q SHiFTs", - text=r""" + ), + + Variable( + abivarname="nqshft@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="Number of Q SHiFTs", + added_in_version="before_v9", + text=r""" The number of vector shifts of the simple Monkhorst and Pack grid, needed to generate the coarse grid of q points (for the series of fine grids, the number of shifts it is always taken to be 1). Usually, put it to 1. Use 2 if BCC sampling (Warning: not BCC lattice, BCC *sampling*), and 4 for FCC sampling (Warning: not FCC lattice, FCC *sampling*). """, -), - -Variable( - abivarname="nsphere@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Number of atoms in SPHERe", - text=r""" + ), + + Variable( + abivarname="nsphere@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Number of atoms in SPHERe", + added_in_version="before_v9", + text=r""" Number of atoms included in the cut-off sphere for interatomic force constant, see also the alternative [[anaddb:rifcsph]]. If **nsphere** = 0: maximum extent allowed by the grid. If **nsphere** = -1: the code analyzes different @@ -1174,31 +1524,33 @@ the range of the interatomic force constants), because the acoustic sum rule will be violated if some atoms are no more included in the inverse Fourier Transform. """, -), - -Variable( - abivarname="nstrfix@anaddb", - varset="anaddb", - vartype="integer", - topics=['ConstrainedPol_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="Number of STRain components FIXed", - text=r""" + ), + + Variable( + abivarname="nstrfix@anaddb", + varset="anaddb", + vartype="integer", + topics=['ConstrainedPol_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Number of STRain components FIXed", + added_in_version="before_v9", + text=r""" Number of strain component that are fixed during a structural optimisation at constrained polarization. See [[anaddb:polflag]]. """, -), - -Variable( - abivarname="ntemper@anaddb", - varset="anaddb", - vartype="integer", - topics=['Temperature_basic'], - dimensions="scalar", - defaultval=10, - mnemonics="Number of TEMPERatures", - text=r""" + ), + + Variable( + abivarname="ntemper@anaddb", + varset="anaddb", + vartype="integer", + topics=['Temperature_basic'], + dimensions="scalar", + defaultval=10, + mnemonics="Number of TEMPERatures", + added_in_version="before_v9", + text=r""" Number of temperatures at which the thermodynamical quantities have to be evaluated. Now also used for the output of transport quantities in electron- phonon calculations. The full grid is specified with the [[anaddb:tempermin]] @@ -1208,65 +1560,69 @@ anaddb will be important. For weakly bounded systems (e.g. Van der Waals solids), such anharmonic effects might be important already at room temperature. """, -), - -Variable( - abivarname="nwchan@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=10, - mnemonics="Number of Widths of CHANnels", - text=r""" + ), + + Variable( + abivarname="nwchan@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=10, + mnemonics="Number of Widths of CHANnels", + added_in_version="before_v9", + text=r""" The width of the largest channel used to sample the frequencies. The code will generate different sets of channels, with decreasing widths (by step of 1 cm$^{-1}$), from this channel width to 1, eventually. It considers to have converged when the convergence criterion based on [[anaddb:dostol]] and [[anaddb:thmtol]] have been fulfilled. """, -), - -Variable( - abivarname="outboltztrap@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="OUTput files for BOLTZTRAP code", - text=r""" + ), + + Variable( + abivarname="outboltztrap@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="OUTput files for BOLTZTRAP code", + added_in_version="before_v9", + text=r""" If set to 1, the phonon frequencies on the [[anaddb:ngqpt]] grid are output in a format legible by the BoltzTrap code, which does band interpolation and gets group velocities. The output file will be appended _BTRAP """, -), - -Variable( - abivarname="outscphon@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="OUTput files for Self Consistent PHONons", - text=r""" + ), + + Variable( + abivarname="outscphon@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="OUTput files for Self Consistent PHONons", + added_in_version="before_v9", + text=r""" If set to 1, the phonon frequency and eigenvector files needed for a Self Consistent phonon run (as in [[cite:Souvatzis2008]]) will be output to files appended _PHFRQ and _PHVEC. The third file needed is appended _PCINFO for Primitive Cell INFOrmation. """, -), - -Variable( - abivarname="piezoflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['Elastic_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="PIEZOelectric tensor FLAG", - text=r""" + ), + + Variable( + abivarname="piezoflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['Elastic_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="PIEZOelectric tensor FLAG", + added_in_version="before_v9", + text=r""" Flag for calculation of piezoelectric tensors * 0 --> No piezoelectric tensor will be calculated. @@ -1304,17 +1660,18 @@ * 7 --> calculate all the possible piezoelectric tensors, including e (clamped and relaxed ion), d, g and h tensors. The flags should be set to satisfy the above rules from 1 to 6. """, -), - -Variable( - abivarname="polflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['ConstrainedPol_compulsory'], - dimensions="scalar", - defaultval=0, - mnemonics="POLarization FLAG", - text=r""" + ), + + Variable( + abivarname="polflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['ConstrainedPol_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="POLarization FLAG", + added_in_version="before_v9", + text=r""" If activated, compute polarization in cartesian coordinates, and update lattice constants and atomic positions in order to perform a structural optimization at constrained polarization. @@ -1341,48 +1698,51 @@ difference expression of the ddk ([[berryopt]]=2 or -2) in the linear response calculation of the effective charges and the piezoelectric tensor. """, -), - -Variable( - abivarname="prt_ifc@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT the Interatomic Force Constants", - text=r""" + ), + + Variable( + abivarname="prt_ifc@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT the Interatomic Force Constants", + added_in_version="before_v9", + text=r""" Flag to print out the Interatomic Force Constants in real space to a file. The available options are: * 0 --> do nothing (IFC are printed to the log file); * 1 --> write out the IFC in file ifcinfo.out (the name is fixed) to be used by AI2PS from John Rehr's group """, -), - -Variable( - abivarname="prtbltztrp@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT input files for BoLTZTRaP code.", - text=r""" + ), + + Variable( + abivarname="prtbltztrp@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT input files for BoLTZTRaP code.", + added_in_version="before_v9", + text=r""" * 0 --> do not write the BoltzTraP input files; * 1 --> write out the input files for BoLTZTRaP code. """, -), - -Variable( - abivarname="prtddb@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT the Derivative DataBase files", - text=r""" + ), + + Variable( + abivarname="prtddb@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT the Derivative DataBase files", + added_in_version="before_v9", + text=r""" Flag to print out the DDB file interpolated with the Interatomic Force Constants. The available options are: @@ -1390,17 +1750,18 @@ * 0 --> no output of DDB; * 1 --> Interpolate the DDB and write out the DDB and DDB.nc files. """, -), - -Variable( - abivarname="prtdos@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT the phonon Density Of States", - text=r""" + ), + + Variable( + abivarname="prtdos@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT the phonon Density Of States", + added_in_version="before_v9", + text=r""" The **prtdos** variable is used to calculate the phonon density of states, PHDOS, by Fourier interpolating the interatomic force constants on the (dense) q-mesh defined by [[anaddb:ng2qpt]]. Note that the variable [[anaddb:ifcflag]] @@ -1408,24 +1769,25 @@ The available options are: - * 0 --> no output of PHDOS (default); - * 1 --> calculate PHDOS using the gaussian method and the broadening defined by [[anaddb:dossmear]]. - * 2 --> calculate PHDOS using the tetrahedron method. + * 0 --> No output of PHDOS (default); + * 1 --> Calculate PHDOS using the gaussian method and the broadening defined by [[anaddb:dossmear]]. This is the recommended technique, as usually the interpolation q-point grid is very fine. + * 2 --> Calculate PHDOS using the tetrahedron method. The tetrahedron DOS has Van Hove singularities, and this might yield problems with further post-treatment of the DOS. The step of the frequency grid employed to calculate the DOS can be defined through the input variable [[anaddb:dosdeltae]]. """, -), - -Variable( - abivarname="prtfsurf@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT the Fermi SURFace", - text=r""" + ), + + Variable( + abivarname="prtfsurf@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT the Fermi SURFace", + added_in_version="before_v9", + text=r""" Only for electron-phonon calculations. The available options are: * 0 --> do not write the Fermi Surface; @@ -1443,40 +1805,43 @@ [[kptrlatt]] is used to generate the k-grid, all the off-diagonal elements of this array must be zero. """, -), - -Variable( - abivarname="prtmbm@anaddb", - varset="anaddb", - vartype="integer", - topics=['nonlinear_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT Mode-By-Mode decomposition of the electrooptic tensor", - text=r""" + ), + + Variable( + abivarname="prtmbm@anaddb", + varset="anaddb", + vartype="integer", + topics=['nonlinear_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT Mode-By-Mode decomposition of the electrooptic tensor", + added_in_version="before_v9", + text=r""" * 0 --> do not write the mode-by-mode decomposition of the electrooptic tensor; * 1 --> write out the contribution of the individual zone-center phonon modes to the electrooptic tensor. """, -), - -Variable( - abivarname="prtnest@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononWidth_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT the NESTing function", - text=r""" + ), + + Variable( + abivarname="prtnest@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononWidth_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT the NESTing function", + added_in_version="before_v9", + text=r""" Only for electron-phonon calculations. This input variable is used to calculate the nesting function defined as: + $$ \chi_{nm}(q) = \sum_k\delta(\epsilon_{k,n}-\epsilon_F) \delta(\epsilon_{k+q,m}-\epsilon_F). $$ The nesting factor is calculated for every point of the k-grid employed during the previous GS calculation. The values are subsequently interpolated along the -trajectory in q space defined by [[anaddb:qpath]], and written in the _NEST +trajectory in q space defined by [[anaddb:qpath]], and written in the `kpluq` file using the X-Y format ( **prtnest** =1). It is also possible to analyze the behavior of the function in the reciprocal unit cell saving the values in the NEST_XSF file that can be read using [XCrySDen](http://www.xcrysden.org) (**prtnest** =2). @@ -1491,17 +1856,18 @@ * 1 --> write only the nesting function along the q-path in the X-Y format; * 2 --> write out the nesting function both in the X-Y and in the XSF format. """, -), - -Variable( - abivarname="prtphbands@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=1, - mnemonics="PRinT PHonon BANDS", - text=r""" + ), + + Variable( + abivarname="prtphbands@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="PRinT PHonon BANDS", + added_in_version="before_v9", + text=r""" Only if [[anaddb:ifcflag]]=1. This option specifies the file format for the phonon band structure. Possible values: @@ -1510,49 +1876,53 @@ * 2 Write frequencies in gnuplot format. The code produces a `PHBANDS.dat` file with the eigenvalues and a `PHBANDS.gnuplot` script. Use `gnuplot file_PHBANDS.gnuplot` to visualize the phonon band structure. """, -), - -Variable( - abivarname="prtsrlr@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT the Short-Range/Long-Range decomposition of phonon FREQuencies", - text=r""" + ), + + Variable( + abivarname="prtsrlr@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT the Short-Range/Long-Range decomposition of phonon FREQuencies", + added_in_version="before_v9", + text=r""" Only if [[anaddb:ifcflag]]=1. The available options are: * 0 --> do not write the SR/LR decomposition of phonon frequencies; * 1 --> write out the SR/LR decomposition of the square of phonon frequencies at each q-point specified in [[anaddb:qph1l]]. For details see [[cite:Ghosez1996]]. -See also [[anaddb:ifcflag]], [[anaddb:ifcflag]] and [[anaddb:dipdip]]. -""", -), - -Variable( - abivarname="prtvol@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_useful', 'PhononBands_useful', 'Temperature_useful', 'PhononWidth_useful', 'ElPhonTransport_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="PRinT VOLume", - text=r""" +See also [[anaddb:ifcflag]] and [[anaddb:dipdip]]. +""", + ), + + Variable( + abivarname="prtvol@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_useful', 'PhononBands_useful', 'Temperature_useful', + 'PhononWidth_useful', 'ElPhonTransport_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT VOLume", + added_in_version="before_v9", + text=r""" Control the volume of printed output. """, -), - -Variable( - abivarname="q1shft@anaddb", - varset="anaddb", - vartype="real", - topics=['Phonons_useful', 'PhononBands_useful'], - dimensions=['[[anaddb:nqshft]]'], - defaultval=0, - mnemonics="Q shifts for the grid number 1", - text=r""" + ), + + Variable( + abivarname="q1shft@anaddb", + varset="anaddb", + vartype="real", + topics=['Phonons_useful', 'PhononBands_useful'], + dimensions=['[[anaddb:nqshft]]'], + defaultval=0, + mnemonics="Q shifts for the grid number 1", + added_in_version="before_v9", + text=r""" This vector gives the shifts needed to define the coarse q-point grid. a) Case [[anaddb:nqshft]]=1 In general, 0.5 0.5 0.5 with the ngqpt's even will give @@ -1596,48 +1966,51 @@ For a FCC lattice, it is possible to sample only the Gamma point by using a 1x1x1 BCC sampling ([[anaddb:nqshft]]=2). """, -), - -Variable( - abivarname="q2shft@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_useful'], - dimensions=[3], - defaultval="3* 0", - mnemonics="Q points SHiFTs for the grids 2", - text=r""" + ), + + Variable( + abivarname="q2shft@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_useful'], + dimensions=[3], + defaultval="3* 0", + mnemonics="Q points SHiFTs for the grids 2", + added_in_version="before_v9", + text=r""" Similar to [[anaddb:q1shft]], but for the series of fine grids. Note that [[anaddb:nqshft]] for this series of grids corresponds to 1. """, -), - -Variable( - abivarname="qgrid_type@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononWidth_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="Q GRID TYPE", - text=r""" + ), + + Variable( + abivarname="qgrid_type@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononWidth_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Q GRID TYPE", + added_in_version="before_v9", + text=r""" If **qgrid_type** is set to 1, the electron-phonon part of anaddb will use the [[anaddb:ep_nqpt]] and [[anaddb:ep_qptlist]] variables to determine which q-points to calculate the electron-phonon coupling for. This is an alternative to a regular grid as in the rest of anaddb (using [[anaddb:ngqpt]]). """, -), - -Variable( - abivarname="qpath@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_basic', 'PhononWidth_basic'], - dimensions=[3, '[[anaddb:nqpath]]'], - defaultval=0.0, - mnemonics="Q wavevectors defining a PATH", - text=r""" + ), + + Variable( + abivarname="qpath@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_basic', 'PhononWidth_basic'], + dimensions=[3, '[[anaddb:nqpath]]'], + defaultval=0.0, + mnemonics="Q wavevectors defining a PATH", + added_in_version="before_v9", + text=r""" It is used to generate the path along which the phonon band structure and phonon linewidths are interpolated. There are [[anaddb:nqpath]]-1 segments to be defined, each of which starts from the end point of the previous one. The @@ -1645,17 +2018,18 @@ code to respect the proportion between the segments. The same circuit is used for the output of the nesting function if [[anaddb:prtnest]]=1. """, -), - -Variable( - abivarname="qph1l@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_basic'], - dimensions=[4, '[[anaddb:nph1l]]'], - defaultval=0, - mnemonics="Q for PHonon List 1", - text=r""" + ), + + Variable( + abivarname="qph1l@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_basic'], + dimensions=[4, '[[anaddb:nph1l]]'], + defaultval=0, + mnemonics="Q for PHonon List 1", + added_in_version="before_v9", + text=r""" List of [[anaddb:nph1l]] wavevectors, at which the phonon frequencies will be interpolated. Defined by 4 numbers: the wavevector is made by the three first numbers divided by the fourth one (a normalisation factor). The coordinates @@ -1667,17 +2041,18 @@ the three first numbers are stored in the array qph1l(3,nph1l), while the fourth is stored in the array qnrml1(nph1l). """, -), - -Variable( - abivarname="qph2l@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_basic'], - dimensions=[4, '[[anaddb:nph2l]]'], - defaultval=0, - mnemonics="PHonon List 2", - text=r""" + ), + + Variable( + abivarname="qph2l@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_basic'], + dimensions=[4, '[[anaddb:nph2l]]'], + defaultval=0, + mnemonics="PHonon List 2", + added_in_version="before_v9", + text=r""" List of phonon wavevector _directions_ along which the non-analytical correction to the Gamma-point phonon frequencies will be calculated (for insulators). Four numbers, as for [[anaddb:qph1l]], but where the last one, @@ -1697,17 +2072,18 @@ the three first numbers are stored in the array qph2l(3,nph2l), while the fourth is stored in the array qnrml2(nph2l). """, -), - -Variable( - abivarname="qrefine@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononBands_expert'], - dimensions=[3], - defaultval=0, - mnemonics="Q-point REFINEment order (experimental)", - text=r""" + ), + + Variable( + abivarname="qrefine@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_expert'], + dimensions=[3], + defaultval=0, + mnemonics="Q-point REFINEment order (experimental)", + added_in_version="before_v9", + text=r""" If **qrefine** is superior to 1, attempts to initialize a first set of dynamical matrices from the DDB file, with a q-point grid which is [[anaddb:ngqpt]] divided by **qrefine** (e.g. ngqpt 4 4 2 qrefine 2 2 1 starts @@ -1716,17 +2092,18 @@ imposed, before proceeding to normal band structure and other interpolations. Should implement Gaal-Nagy's algorithm in [[cite:GaalNagy2006]]. """, -), - -Variable( - abivarname="ramansr@anaddb", - varset="anaddb", - vartype="integer", - topics=['nonlinear_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="RAMAN Sum-Rule", - text=r""" + ), + + Variable( + abivarname="ramansr@anaddb", + varset="anaddb", + vartype="integer", + topics=['nonlinear_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="RAMAN Sum-Rule", + added_in_version="before_v9", + text=r""" Governs the imposition of the sum-rule on the Raman tensors. As in the case of the Born effective charges, the first-order derivatives of the linear dielectric susceptibility with respect to an atomic displacement @@ -1741,45 +2118,48 @@ For the time being, **ramansr** =1 is the preferred choice. """, -), - -Variable( - abivarname="relaxat@anaddb", - varset="anaddb", - vartype="integer", - topics=['ConstrainedPol_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="RELAXation of AToms", - text=r""" + ), + + Variable( + abivarname="relaxat@anaddb", + varset="anaddb", + vartype="integer", + topics=['ConstrainedPol_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="RELAXation of AToms", + added_in_version="before_v9", + text=r""" If **relaxat** =1, relax atomic positions during a structural relaxation at constrained polarization. See [[anaddb:polflag]]. """, -), - -Variable( - abivarname="relaxstr@anaddb", - varset="anaddb", - vartype="integer", - topics=['ConstrainedPol_useful'], - dimensions="scalar", - defaultval=0, - mnemonics="RELAXation of STRain", - text=r""" + ), + + Variable( + abivarname="relaxstr@anaddb", + varset="anaddb", + vartype="integer", + topics=['ConstrainedPol_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="RELAXation of STRain", + added_in_version="before_v9", + text=r""" If **relaxstr** =1, relax lattice constants (lengths/angles) during a structural relaxation at constrained polarization. See [[anaddb:polflag]]. """, -), - -Variable( - abivarname="rfmeth@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_expert'], - dimensions="scalar", - defaultval=1, - mnemonics="Response-Function METHod", - text=r""" + ), + + Variable( + abivarname="rfmeth@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_expert'], + dimensions="scalar", + defaultval=1, + mnemonics="Response-Function METHod", + added_in_version="before_v9", + text=r""" Select a particular set of Data Blocks in the DDB. (PRESENTLY, ONLY OPTION 1 IS AVAILABLE) * 1 --> Blocks obtained by a non-stationary formulation. @@ -1788,17 +2168,18 @@ For more detailed explanations, see [[help:abinit]]. If the information in the DDB is available, always use the option 2. If not, you can try option 1, which is less accurate. """, -), - -Variable( - abivarname="rifcsph@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_useful'], - dimensions="scalar", - defaultval="zero", - mnemonics="Radius of the Interatomic Force Constant SPHere", - text=r""" + ), + + Variable( + abivarname="rifcsph@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval="zero", + mnemonics="Radius of the Interatomic Force Constant SPHere", + added_in_version="before_v9", + text=r""" Cut-off radius for the sphere for interatomic force constant, see also the alternative [[anaddb:nsphere]]. If **rifcsph** = 0: maximum extent allowed by the grid. @@ -1806,17 +2187,18 @@ interatomic force constants, after imposition of the acoustic sum rule, will not be put to zero. """, -), - -Variable( - abivarname="selectz@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="SeLECT Z", - text=r""" + ), + + Variable( + abivarname="selectz@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="SeLECT Z", + added_in_version="before_v9", + text=r""" Select some parts of the effective charge tensor. (This is done after the application or non-application of the ASR for effective charges). The transformed effective charges are then used for all the subsequent @@ -1830,18 +2212,19 @@ Note: this is for analysis the effect of anisotropy in the effective charge. The result with non-zero **selectz** are unphysical. """, -), - -Variable( - abivarname="symdynmat@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_useful', 'PhononBands_useful'], - dimensions="scalar", - defaultval=1, - mnemonics="SYMmetrize the DYNamical MATrix", - commentdefault="(was 0 before v5.3)", - text=r""" + ), + + Variable( + abivarname="symdynmat@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_useful', 'PhononBands_useful'], + dimensions="scalar", + defaultval=1, + mnemonics="SYMmetrize the DYNamical MATrix", + commentdefault="(was 0 before v5.3)", + added_in_version="before_v9", + text=r""" If **symdynmat** is equal to 1, the dynamical matrix is symmetrized before the diagonalization. This is especially useful when the set of primitive vectors of the unit cell and their opposite do not reflect the symmetries of the Bravais lattice @@ -1850,62 +2233,66 @@ interpolation procedure based on interatomic force constant is used: there are some slight symmetry breaking effects. The latter can be bypassed by this additional symmetrization. """, -), - -Variable( - abivarname="symgkq@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonInt_expert'], - dimensions="scalar", - defaultval=1, - mnemonics="SYMmetrize the GKk matrix elements for each Q", - text=r""" + ), + + Variable( + abivarname="symgkq@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonInt_expert'], + dimensions="scalar", + defaultval=1, + mnemonics="SYMmetrize the GKk matrix elements for each Q", + added_in_version="before_v9", + text=r""" If **symgkq** is equal to 1, the electron-phonon matrix elements are symmetrized over the small group of the q-point they correspond to. This should always be used, except for debugging or test purposes. """, -), - -Variable( - abivarname="targetpol@anaddb", - varset="anaddb", - vartype="real", - topics=['ConstrainedPol_useful'], - dimensions=[3], - defaultval=0.0, - mnemonics="TARGET POLarization", - text=r""" + ), + + Variable( + abivarname="targetpol@anaddb", + varset="anaddb", + vartype="real", + topics=['ConstrainedPol_useful'], + dimensions=[3], + defaultval=0.0, + mnemonics="TARGET POLarization", + added_in_version="before_v9", + text=r""" Target value of the polarization in cartesian coordinates and in C/m$^2$. See [[anaddb:polflag]]. """, -), - -Variable( - abivarname="telphint@anaddb", - varset="anaddb", - vartype="integer", - topics=['ElPhonTransport_basic', 'PhononWidth_basic'], - dimensions="scalar", - defaultval=1, - mnemonics="Technique for ELectron-PHonon INTegration", - text=r""" + ), + + Variable( + abivarname="telphint@anaddb", + varset="anaddb", + vartype="integer", + topics=['ElPhonTransport_basic', 'PhononWidth_basic'], + dimensions="scalar", + defaultval=1, + mnemonics="Technique for ELectron-PHonon INTegration", + added_in_version="before_v9", + text=r""" Flag controlling the Fermi surface integration technique used for electron-phonon quantities. * 0 = tetrahedron method (no adjustable parameter) * 1 = Gaussian smearing (see [[anaddb:elphsmear]]) * 2 = uniformly weighted band window between [[anaddb:ep_b_min]] and [[anaddb:ep_b_max]], for all k-points """, -), - -Variable( - abivarname="temperinc@anaddb", - varset="anaddb", - vartype="real", - topics=['Temperature_basic'], - dimensions="scalar", - defaultval=100.0, - mnemonics="TEMPERature INCrease", - text=r""" + ), + + Variable( + abivarname="temperinc@anaddb", + varset="anaddb", + vartype="real", + topics=['Temperature_basic'], + dimensions="scalar", + defaultval=100.0, + mnemonics="TEMPERature INCrease", + added_in_version="before_v9", + text=r""" Increment of the temperature in Kelvin, for thermodynamical and el-phon transport properties. See the associated [[anaddb:tempermin]] and [[anaddb:ntemper]] variables. The default temperature grid goes from 100K to @@ -1914,17 +2301,18 @@ anaddb will be important. For weakly bounded systems (e.g. Van der Waals solids), such anharmonic effects might be important already at room temperature. """, -), - -Variable( - abivarname="tempermin@anaddb", - varset="anaddb", - vartype="real", - topics=['Temperature_basic'], - dimensions="scalar", - defaultval=100.0, - mnemonics="TEMPERature MINimum", - text=r""" + ), + + Variable( + abivarname="tempermin@anaddb", + varset="anaddb", + vartype="real", + topics=['Temperature_basic'], + dimensions="scalar", + defaultval=100.0, + mnemonics="TEMPERature MINimum", + added_in_version="before_v9", + text=r""" Lowest temperature (Kelvin) at which the thermodynamical quantities have to be evaluated. Cannot be zero when [[anaddb:thmflag]] is 1. @@ -1935,19 +2323,20 @@ be important. For weakly bounded systems (e.g. Van der Waals solids), such anharmonic effects might be important already at room temperature. """, -), - -Variable( - abivarname="thermal_supercell@anaddb", - varset="anaddb", - vartype="integer", - topics=['Phonons_expert'], - dimensions=[3, 3], - defaultval="(/(/0,0,0/), (/0,0,0/), (/0,0,0/)/)", - mnemonics="THERMALized SUPERCELL lattice vectors", - characteristics=['[[DEVELOP]]'], - commentdefault="do not calculate any thermalized supercells", - text=r""" + ), + + Variable( + abivarname="thermal_supercell@anaddb", + varset="anaddb", + vartype="integer", + topics=['Phonons_expert'], + dimensions=[3, 3], + defaultval="(/(/0,0,0/), (/0,0,0/), (/0,0,0/)/)", + mnemonics="THERMALized SUPERCELL lattice vectors", + characteristics=['[[DEVELOP]]'], + commentdefault="do not calculate any thermalized supercells", + added_in_version="before_v9", + text=r""" Thermal_supercell defines the real space supercell in which a thermalized atomic configuration should be produced, following the prescription of [[cite:Zacharias2016]]. The displacements are chosen @@ -1965,17 +2354,18 @@ For the moment this feature is under development and it looks like the relative phases of the displacements are not fixed properly yet... (Aug 2017) """, -), - -Variable( - abivarname="thmflag@anaddb", - varset="anaddb", - vartype="integer", - topics=['Temperature_compulsory'], - dimensions="scalar", - defaultval=0, - mnemonics="THerMal FLAG", - text=r""" + ), + + Variable( + abivarname="thmflag@anaddb", + varset="anaddb", + vartype="integer", + topics=['Temperature_compulsory'], + dimensions="scalar", + defaultval=0, + mnemonics="THerMal FLAG", + added_in_version="before_v9", + text=r""" Flag controlling the calculation of thermal quantities. * When **thmflag** == 1, the code will compute, using the histogram method: @@ -1998,49 +2388,52 @@ [[anaddb:tempermin]], as well as the wavevector grid number 2 definition, [[anaddb:ng2qpt]], [[anaddb:ngrids]], [[anaddb:q2shft]]. """, -), - -Variable( - abivarname="thmtol@anaddb", - varset="anaddb", - vartype="real", - topics=['Temperature_useful'], - dimensions="scalar", - defaultval=0.05, - mnemonics="THerModynamic TOLerance", - text=r""" + ), + + Variable( + abivarname="thmtol@anaddb", + varset="anaddb", + vartype="real", + topics=['Temperature_useful'], + dimensions="scalar", + defaultval=0.05, + mnemonics="THerModynamic TOLerance", + added_in_version="before_v9", + text=r""" The relative tolerance on the thermodynamical functions This number will determine when the series of channel widths with which the DOS is calculated can be stopped, i.e. the mean of the relative change going from one grid to the next bigger is smaller than **thmtol**. """, -), - -Variable( - abivarname="use_k_fine@anaddb", - varset="anaddb", - vartype="integer", - topics=['PhononWidth_expert'], - dimensions="scalar", - defaultval=0, - mnemonics="USE K-grid FINEr than the coarse k-grid", - text=r""" + ), + + Variable( + abivarname="use_k_fine@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononWidth_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="USE K-grid FINEr than the coarse k-grid", + added_in_version="before_v9", + text=r""" When set, [[anaddb:kptrlatt_fine]] is suggested to be given. For the present version, both eigenvalues (denser grid GKK, obtained from mrggkk with only the GS WFK file) and electronic velocities(GKK files from DDK calculation) are needed. Note that the coarse k-grid must be a subset of the fine k-grid. """, -), - -Variable( - abivarname="vs_qrad_tolkms@anaddb", - varset="anaddb", - vartype="real", - topics=['PhononBands_useful'], - dimensions=[2], - defaultval="2*0.0d0", - mnemonics="Speed of Sound Q-radius, TOLerance KiloMeter/Second", - text=r""" + ), + + Variable( + abivarname="vs_qrad_tolkms@anaddb", + varset="anaddb", + vartype="real", + topics=['PhononBands_useful'], + dimensions=[2], + defaultval="2*0.0d0", + mnemonics="Speed of Sound Q-radius, TOLerance KiloMeter/Second", + added_in_version="before_v9", + text=r""" This variable activates the calculation of the speed of sound (requires [[anaddb:ifcflag]] = 1). The first entry of the array defines the radius of the small sphere around the Gamma point (Bohr$^{-1}$). The second entry gives the @@ -2052,41 +2445,43 @@ The default values will not work. """, -), - -# ABINIT 9 -Variable( - abivarname="ddb_path@anaddb", - varset="anaddb", - vartype="string", - topics=['Control_useful'], - dimensions="scalar", - defaultval="", - mnemonics="DDB PATH", - text=r""" + ), + + # ABINIT 9 + Variable( + abivarname="ddb_filepath@anaddb", + varset="anaddb", + vartype="string", + topics=['Control_useful'], + dimensions="scalar", + defaultval="", + mnemonics="DDB PATH", + added_in_version="9.0.0", + text=r""" This variable specifies the input DDB file when anaddb is invoked with the new syntax: anaddb t01.in > log 2> err instead of the legacy mode based on the files file. Example: - ddb_path = "out_DDB" + ddb_filepath = "out_DDB" !!! important Shell variables e.g. $HOME or tilde syntax `~` for user home are not supported. """, -), - -Variable( - abivarname="output@anaddb", - varset="anaddb", - vartype="string", - topics=['Control_useful'], - dimensions="scalar", - defaultval="", - mnemonics="OUTPUT file", - text=r""" + ), + + Variable( + abivarname="output_file@anaddb", + varset="anaddb", + vartype="string", + topics=['Control_useful'], + dimensions="scalar", + defaultval="", + mnemonics="OUTPUT FILE", + added_in_version="9.0.0", + text=r""" This variable specifies the name of the output file when anaddb is invoked with the new syntax: anaddb t01.in > log 2> err @@ -2095,35 +2490,36 @@ output = "t01.out" """, -), - -#Variable( -# abivarname="md_output@anaddb", -# varset="anaddb", -# vartype="string", -# topics=['Control_useful'], -# dimensions="scalar", -# defaultval="", -# mnemonics="Molecular Dynamics OUTPUT", -# text=r""" -#This variable specifies the name of the MD output file when anaddb is invoked with the new syntax: -# -# anaddb t01.in > log 2> err -# -#instead of the legacy mode based on the files file. -#Note This variable is optional and used ... -#""", -#), - -Variable( - abivarname="gkk_path@anaddb", - varset="anaddb", - vartype="string", - topics=['Control_useful'], - dimensions="scalar", - defaultval="", - mnemonics="GKK PATH", - text=r""" + ), + + # Variable( + # abivarname="md_output@anaddb", + # varset="anaddb", + # vartype="string", + # topics=['Control_useful'], + # dimensions="scalar", + # defaultval="", + # mnemonics="Molecular Dynamics OUTPUT", + # text=r""" + # This variable specifies the name of the MD output file when anaddb is invoked with the new syntax: + # + # anaddb t01.in > log 2> err + # + # instead of the legacy mode based on the files file. + # Note This variable is optional and used ... + # """, + # ), + + Variable( + abivarname="gkk_filepath@anaddb", + varset="anaddb", + vartype="string", + topics=['Control_useful'], + dimensions="scalar", + defaultval="", + mnemonics="GKK PATH", + added_in_version="9.0.0", + text=r""" This variable specifies the name of the GKK file when anaddb is invoked with the new syntax: anaddb t01.in > log 2> err @@ -2131,17 +2527,18 @@ instead of the legacy mode based on the files file. This variable is optional and used for performing EPH calculation with [[elphflag@anaddb]]. """, -), - -Variable( - abivarname="eph_prefix@anaddb", - varset="anaddb", - vartype="string", - topics=['Control_useful'], - dimensions="scalar", - defaultval="", - mnemonics="EPH PREFIX", - text=r""" + ), + + Variable( + abivarname="eph_prefix@anaddb", + varset="anaddb", + vartype="string", + topics=['Control_useful'], + dimensions="scalar", + defaultval="", + mnemonics="EPH PREFIX", + added_in_version="9.0.0", + text=r""" This variable specifies the prefix for the elphon output files when anaddb is invoked with the new syntax: anaddb t01.in > log 2> err @@ -2149,26 +2546,77 @@ instead of the legacy mode based on the files file. This variable is optional and used for performing EPH calculation with [[elphflag@anaddb]]. """, -), + ), + + Variable( + abivarname="ddk_filepath@anaddb", + varset="anaddb", + vartype="string", + topics=['Control_useful'], + dimensions="scalar", + defaultval="", + mnemonics="DDK PATH", + added_in_version="9.0.0", + text=r""" +This variable specifies the name of the input file from which the list of 3 files containing the matrix +elements of the velocity operator are obtained. -Variable( - abivarname="ddk_path@anaddb", - varset="anaddb", - vartype="string", - topics=['Control_useful'], - dimensions="scalar", - defaultval="", - mnemonics="DDK PATH", - text=r""" -This variable specifies the name the input file with the matrix elements of the velocity operator -when anaddb is invoked with the new syntax: +This option is needed when anaddb is invoked with the new syntax: anaddb t01.in > log 2> err instead of the legacy mode based on the files file. This variable is optional and used for performing transport calculations with [[elphflag@anaddb]]. + +Example: + + ddk_filepath = "t94.ddk" + +where t94.ddk contains the list of file names. + + t90o_DS10_GKK4 + t90o_DS10_GKK5 + t90o_DS10_GKK6 """, -), + ), -] + Variable( + abivarname="outdata_prefix@anaddb", + varset="anaddb", + vartype="string", + topics=['Control_useful'], + dimensions="string", + defaultval="", + mnemonics="OUTput DATA PREFIX", + added_in_version="9.2.2", + text=r""" +This variable specifies the prefix name of the output files when anaddb is invoked with the new syntax: + + anaddb t01.in > log 2> err +instead of the legacy mode based on the files file. Example: + + outdata_prefix = "t01_o" + +See also [[outdata_prefix@abinit]] +""", + ), + + Variable( + abivarname="dos_maxmode@anaddb", + varset="anaddb", + vartype="integer", + topics=['PhononBands_useful'], + dimensions="scalar", + defaultval=0, + mnemonics="Phonon DOS MAX MODE included", + added_in_version="9.5", + text=r""" +This variable specifies the maximum phonon mode index (up to 3*natom) +included in the computation of the phonon DOS + +If set to 0, which is the default value, all modes are included in the DOS. +""", + ), + +] diff --git a/abipy/abio/abivar_database/variables_multibinit.py b/abipy/abio/abivar_database/variables_multibinit.py index 8bde19dde..af258f14c 100644 --- a/abipy/abio/abivar_database/variables_multibinit.py +++ b/abipy/abio/abivar_database/variables_multibinit.py @@ -6,7 +6,7 @@ #from abimkdocs.variables import ValueWithUnit, MultipleValue, Range from abipy.abio.abivar_database.variables import ValueWithUnit, MultipleValue, Range, ValueWithConditions ValueWithConditions = dict -Variable=dict +Variable = dict variables = [ Variable( @@ -17,6 +17,7 @@ dimensions="scalar", defaultval=1, mnemonics="DIPole-DIPole interaction", + added_in_version="before_v9", text=r""" * 0 --> Do not recompute the dipole-dipole interaction. * 1 --> Recompute the dipole-dipole interaction based on ewald summation . @@ -31,6 +32,7 @@ dimensions="scalar", defaultval=0, mnemonics="DIPole-DIPole PRinT", + added_in_version="before_v9", text=r""" * 1 --> Print the dipole-dipole interaction into the XML. * 0 --> Do not print the dipole-dipole interaction into the XML. @@ -44,7 +46,8 @@ topics=['LatticeModel_expert'], dimensions=[3], defaultval=0, - mnemonics="Dipole-Dipole interaction", + mnemonics="Dipole-Dipole range", + added_in_version="before_v9", text=r""" Depending of the cases, the range of the dipole-dipole interaction will be parameted by: @@ -70,6 +73,7 @@ defaultval=0.0, mnemonics="Energy of the refences structure", characteristics=['[[ENERGY]]'], + added_in_version="before_v9", text=r""" Set the energy of the reference structure (from the DFT calculation) if the energy of the reference is not specified in the DDB, @@ -78,6 +82,230 @@ """, ), +Variable( + abivarname="lwf_dynamics@multibinit", + varset="multibinit", + vartype="integer", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval=0, + mnemonics="Lattice Wannier Function DYNAMICS", + added_in_version="9.8", + text=r""" +Kind of LWF dynamics to run. Currently there is only the option 3. + +* 0: Do not run LWF dynamics. + +* 3: Run NVT LWF dynamics with the Berendsen thermalstat. + +""", +), + + +Variable( + abivarname="lwf_init_hist_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['LWFModel_basic'], + dimensions="scalar", + defaultval="", + mnemonics="LWF INITIAL state HISTory file name", + added_in_version="9.8", + text=r""" +Specify the initial state of the multibinit LWF dynamics calculation, which can be a lwf_hist netcdf file, usually generated from previous LWF dynamics calculations. It is used when [[multibinit:lwf_init_state]]=4 The string must be enclosed between quotation marks, for example: + + lwf_init_hist_fname "last_step_lwf_hist.nc" +""", +), + + +Variable( + abivarname="lwf_init_state@multibinit", + varset="multibinit", + vartype="integer", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval=1, + mnemonics="Lattice Wannier Function INITial STATE", + added_in_version="before_v9", + text=r""" +Flag to initialize spin state. + +* 1 --> The LWF amplitudes are homogenous random numbers between -0.1 to 0.1 Bohr. + +* 2 --> The LWF amplitudes are 0. + +* 4 --> Restart from an input spin hist file, as specified in [[multibinit:lwf_init_hist_fname]]. +""", +), + +Variable( + abivarname="lwf_constraint@multibinit", + varset="multibinit", + vartype="integer", + topics=["LWFModel_expert"], + dimensions="scalar", + defaultval=0, + mnemonics="Lattice Wannier Function use CONSTRAINT", + added_in_version="9.8", + text=r""" + Whether to use constraint in Lattice Wannier function dynamics. The constraints are defined in a LWF initial state file by three parameters: + n_fixed_lwf: number of fixed LWF. + fixed_lwf_ids: indices of fixed LWFs. + fixed_lwf_values: values of fixed LWFs. +""", +), + +Variable( + abivarname="lwf_dt@multibinit", + varset="multibinit", + vartype="real", + topics=['LWFModel_basic'], + dimensions="scalar", + defaultval=100, + mnemonics="Lattice Wannier Function Delta Time", + added_in_version="9.8", + text=r""" +Time step for lwf dynamics. Default value is 100. +Default unit is atomic unit (2.419e-17 s). +S, Sec or Second can be appended as unit. (e.g. 1e-16 Sec). +""", +), + + + +Variable( + abivarname="lwf_nctime@multibinit", + varset="multibinit", + vartype="integer", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval=0, + mnemonics="Lattice Wannier function dynamics NetCdf write per number of TIME steps", + added_in_version="before_v9", + text=r""" +Write LWF amplitude into netcdf file in every lwf_nctime of spin dynamics time steps. +""", +), + + + +Variable( + abivarname="lwf_ntime@multibinit", + varset="multibinit", + vartype="integer", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval=0, + mnemonics="Lattice Wannier function dynamics total Number of TIME steps", + added_in_version="9.8", + text=r""" +Total number of lattice Wannier function dynamics time steps. +""", +), + +Variable( + abivarname="lwf_pot_fname@multibinit", + varset="multibinit", + vartype="string", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval="", + mnemonics="Lattice Wannier function POTential File NAME", + added_in_version="9.8", + text=r""" +Specify the LWF potential file name in the multibinit lwf dynamics calculation, which is a netcdf file. The string must be enclosed between quotation marks: + + lwf_pot_fname "BaTiO3_lwf_pot.nc" +""" + +), + + +Variable( + abivarname="lwf_taut@multibinit", + varset="multibinit", + vartype="integer", + topics=['LWFModel_basic'], + dimensions="scalar", + defaultval=1000, + mnemonics="Lattice Wannier function dynamics relaxation time TAUT", + added_in_version="9.8", + text=r""" + Parameter used in Berendsen lattice dynamics [[multibinit:lwf_dynamics]] = 3, in which the temperature is relaxed exponentially to the target temperature, with the characteristic time of lwf_taut. + The default unit is atomic unit. But it is possible to use the second as the unit by adding Second or S at the end of the line, for example: + + lwf_taut 1d-15 S +""", +), + + + +Variable( + abivarname="lwf_temperature_start@multibinit", + varset="multibinit", + vartype="real", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval=0.0, + mnemonics="Lattice Wannier function TEMPERATURE START", + added_in_version="9.8", + text=r""" +Start point of variable temperature LWF dynamcis calculation (see [[multibinit:lwf_var_temperature]]) in lwf dynamics calculation. +""", +), + +Variable( + abivarname="lwf_temperature_end@multibinit", + varset="multibinit", + vartype="real", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval=0.0, + mnemonics="Lattice Wannier function TEMPERATURE END", + added_in_version="9.8", + text=r""" +End point of variable temperature LWF dynamics calculation (see [[multibinit:LWF_var_temperature]]) in LWF dynamics calculation. +""", +), + +Variable( + abivarname="lwf_temperature_nstep@multibinit", + varset="multibinit", + vartype="integer", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval=0, + mnemonics="Lattice Wannier function TEMPERATURE Number of STEPs", + added_in_version="9.8", + text=r""" +Number of steps in the variable temperature LWF dynamics calculation (see [[multibinit:lwf_var_temperature]]) in lwf dynamics calculation. +""", +), + +Variable( + abivarname="lwf_var_temperature@multibinit", + varset="multibinit", + vartype="integer", + topics=["LWFModel_basic"], + dimensions="scalar", + defaultval=0, + mnemonics="Lattice Wannier function VARiable TEMPERATURE", + added_in_version="9.8", + text=r""" +Switch for variable temperature calculation in LWF dynamics. 0: off. 1: on. +If switched on, a series of LWF dynamics calculation with temperatures from +[[multibinit:lwf_temperature_start]] to [[multibinit:lwf_temperature_end]], +with number of steps [[multibinit:lwf_temperature_nstep]] will be done. +The corresponding _lwf_hist.nc file has the corresponding temperature in the filename. +""", +), + + + + + + Variable( abivarname="ncoeff@multibinit", varset="multibinit", @@ -86,6 +314,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of anharmonic COEFFicients", + added_in_version="before_v9", text=r""" Set the number of anharmonic coefficients in the model. This number have to be in agreement with the number of coefficients present in the XML file. @@ -101,6 +330,7 @@ dimensions=['[[multibinit:ncoeff]]'], defaultval=0.0, mnemonics="values of the COEFFICIENTS", + added_in_version="before_v9", text=r""" Set the values of the coefficients present in the XML file """, @@ -115,6 +345,7 @@ dimensions=[3], defaultval="3*1", mnemonics="Number of Grids points for Q PoinTs", + added_in_version="before_v9", text=r""" The Monkhorst-Pack grid linear dimensions, for the DDB (coarse grid). """, @@ -128,6 +359,7 @@ dimensions="scalar", defaultval=1, mnemonics="Number of Q SHiFTs", + added_in_version="before_v9", text=r""" The number of vector shifts of the simple Monkhorst and Pack grid, needed to generate the coarse grid of q points (for the series of fine grids, the number @@ -137,6 +369,23 @@ """, ), +Variable( + abivarname="prt_GF_csv@multibinit", + varset="multibinit", + vartype="integer", + topics=['LatticeModel_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Print the Goal-Function values in a CSV file", + added_in_version="v9", + text=r""" +* 0 --> do nothing (Default) +* 1 --> Print the Goal-Function Values (GF) for all coefficients on a given processor + at a given fit iteration into a csv file. Each iteration each processor + prints a csv file. The colums are the GF on Energy, Force+Stresses, Forces, Stresses. +""", +), + Variable( abivarname="prt_model@multibinit", varset="multibinit", @@ -144,7 +393,8 @@ topics=['LatticeModel_basic'], dimensions="scalar", defaultval=0, - mnemonics="Effective potential XML output", + mnemonics="PRinT the MODEL", + added_in_version="before_v9", text=r""" * 0 --> do nothing (Default). * 1 --> Generate the XML file with: @@ -166,6 +416,21 @@ """, ), +Variable( + abivarname="test_prt_ph@multibinit", + varset="multibinit", + vartype="integer", + topics=['LatticeModel_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="Prt test-set evaluation into file ph_test.nc", + added_in_version="before_v9", + text=r""" +Flag to activate the printing of the evaluation of the effective potential on to a test set into a seperate netcdf file called ph_test.nc. + +Forces, Energies, Stresses and Atomic Positions are written in ph_test.nc. +""", +), Variable( abivarname="fit_coeff@multibinit", @@ -175,6 +440,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT anharmonic COEFFficients", + added_in_version="before_v9", text=r""" * 0 --> do not active the fit process @@ -184,6 +450,40 @@ """, ), +Variable( + abivarname="fit_EFS@multibinit", + varset="multibinit", + vartype="integer", + topics=['FitProcess_basic'], + dimensions=[3], + defaultval=[0,1,1], + mnemonics="FIT on Energy, Forces, and or, Stresses", + added_in_version="v9", + text=r""" +Specifies on which first-principles quantities the anharmonic coefficients will be fitted. +The first number flags the fitting on the energies, the second the fitting on the forces, and the third on the stressses. + +Default value is 0 1 1, so anharmonic coefficients get fitted on Forces and Stresses but not on energies +""", +), + +Variable( + abivarname="fit_factors@multibinit", + varset="multibinit", + vartype="real", + topics=['FitProcess_basic'], + dimensions=[3], + defaultval=[1,1,1], + mnemonics="FIT FACTORS for Goal Function of Energy, Forces, and Stresses", + added_in_version="v9", + text=r""" +Specifies three factors for Energy, Forces and Stresses in the calcluation of the Goal Function which is to be minimized during the +fit process allowing to change the relative weight of the three quantities. + +Default value is 1 1 1, equally balancing energy, forces and stresses. +""", +), + Variable( abivarname="fit_ncoeff@multibinit", varset="multibinit", @@ -192,11 +492,27 @@ dimensions="scalar", defaultval=0, mnemonics="FIT Number of COEFFicients", + added_in_version="before_v9", text=r""" Give the number of anharmonic coefficients to add in the model during the fit process """, ), +Variable( + abivarname="fit_ncoeff_per_iatom@multibinit", + varset="multibinit", + vartype="integer", + topics=['FitProcess_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="FIT Number of COEFFicients per Irreducible ATOM", + added_in_version="before_v9", + text=r""" +Give the number of anharmonic coefficients per symmetric irreducible atom to add during fit process. +[[multibinit:fit_ncoeff]]/(nirred_atoms*fit_ncoeff_per_iatom) gives the number of fitting loops performed during the fit process, where in each loop fit_ncoeff_per_iatom coefficients for each irreducible atom will be added to the anharmonic potential. +""", +), + Variable( abivarname="fit_generateCoeff@multibinit", varset="multibinit", @@ -205,10 +521,26 @@ dimensions="scalar", defaultval=1, mnemonics="FIT GENERATE anharmonic COEFFicient ", + added_in_version="before_v9", text=r""" Flag to activate the generation of the anharmonic coefficient for the fit process -**Related variables:** The power range of the coefficients ([[multibinit:fit_rangePower]]), the cut off of the interactions ([[multibinit:fit_cutoff]]), the flag to add ahnarmonic strain ([[multibinit:fit_anhaStrain]]), the flag to add phonon strain coupling ([[multibinit:fit_SPCoupling]]) +**Related variables:** The power range of the coefficients ([[multibinit:fit_rangePower]]), the cut off of the interactions ([[multibinit:fit_cutoff]]), the flag to add anharmonic strain ([[multibinit:fit_anhaStrain]]), the flag to add phonon strain coupling ([[multibinit:fit_SPCoupling]]) +""", +), + +Variable( + abivarname="fit_iatom@multibinit", + varset="multibinit", + vartype="integer", + topics=['FitProcess_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="FIT anharmonic terms around ATOM I", + added_in_version="before_v9", + text=r"""Gives the index of the atom in the reference structure around which the anharmonic terms will be generated. +If 0 (default) a loop over all atoms in the reference structure will be perforemed and fit_ncoeff coefficienst will be fitted and selected per atom. +If -1 all possible cross terms will be generated (e.G. (A_x-B_x)^2*(C_y-D_y)^1. This options generates much more terms. """, ), @@ -220,6 +552,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT INITIALIZE DATA for the fit", + added_in_version="before_v9", text=r""" Flag to de/activate the precomputing and storage of all the data for the fit, it will reduce the computation time but increase a lot the memory... """, @@ -233,6 +566,7 @@ dimensions=[2], defaultval="3 4", mnemonics="FIT RANGE POWER for the coefficients", + added_in_version="before_v9", text=r""" Set the range of the powers for the anharmonic coefficients """, @@ -246,6 +580,7 @@ dimensions="scalar", defaultval="Unit cell", mnemonics="FIT CUT-OFF of the anharmonic phonon interaction", + added_in_version="before_v9", text=r""" Cut-off for the anharmonic phonon interaction (in Bohr) """, @@ -259,6 +594,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT ANHARmonic STRAIN coefficients", + added_in_version="before_v9", text=r""" Flag to activate the anharmonic strain. This option will add coefficients like (eta^4) """, @@ -272,11 +608,41 @@ dimensions="scalar", defaultval=1, mnemonics="FIT anharmonic Strain-Phonon COUPLING coefficients", + added_in_version="before_v9", text=r""" Flag to activate the strain phonon coupling. This option will add coefficients like (Sr-Ti)^1 (eta^4) """, ), +Variable( + abivarname="fit_dispterms@multibinit", + varset="multibinit", + vartype="integer", + topics=['FitProcess_basic'], + dimensions="scalar", + defaultval=1, + mnemonics="FIT anharmonic Strain-Phonon COUPLING coefficients", + added_in_version="before_v9", + text=r""" +Flag to activate the generation of pure displacement coefficients. This option will generate coefficients like (Sr-Ti)^2*(Sr-O), where only atomic displacements occur. + +Default value: 1 -> displacement terms are generated. +""", +), + +Variable( + abivarname="fit_SPC_maxS@multibinit", + varset="multibinit", + vartype="integer", + topics=['FitProcess_basic'], + dimensions="scalar", + defaultval=1, + mnemonics="FIT Strain Phonon Coupling maximum Strain", + added_in_version="v9", + text=r""" +Set maximum power of strain body in strain-phonon coupling terms. +""", +), Variable( abivarname="fit_tolMSDE@multibinit", @@ -286,6 +652,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT TOLerance on Mean Standard Deviation of the Energy", + added_in_version="before_v9", text=r""" Tolerance of the fit based on the Mean Standard Deviation of the Energy in (meV/atm) """, @@ -299,6 +666,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT TOLerance on Mean Standard Deviation of the Stresses", + added_in_version="before_v9", text=r""" Tolerance of the fit based on the Mean Standard Deviation of the Stresses in (eV^2/A^2) """, @@ -312,6 +680,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT TOLerance on Mean Standard Deviation of the Forces", + added_in_version="before_v9", text=r""" Tolerance of the fit based on the Mean Standard Deviation of the Forces (eV^2/A^2) """, @@ -325,6 +694,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT TOLerance on Mean Standard Deviation of the Forces and Stresses", + added_in_version="before_v9", text=r""" Tolerance of the fit based on the Mean Standard Deviation of the Forces and Sressses (eV^2/A^2) """, @@ -338,6 +708,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT Number of FIXed COEFFicients", + added_in_version="before_v9", text=r""" Number of imposed coefficients during the fit process for the model: @@ -357,11 +728,46 @@ dimensions=['[[multibinit:fit_nfixcoeff]]'], defaultval=0, mnemonics="FIT FIXed COEFFicients", + added_in_version="before_v9", + text=r""" +Indices of the imposed coefficients during the fit process for the model: +""", +), + + +Variable( + abivarname="fit_nimposecoeff@multibinit", + varset="multibinit", + vartype="integer", + topics=['FitProcess_expert'], + dimensions="scalar", + defaultval=0, + mnemonics="FIT Number of IMPOSEd COEFFicients", + added_in_version="before_v9", text=r""" -Indexes of the imposed coefficients during the fit process for the model: +Number of coefficients imposed with fixed value as in the input xml during the fit process for the model: + +* -1 --> fix all the coefficients + +* 0 --> do not fix coefficients + +* n --> fix n coefficients (requires [[multibinit:fit_imposecoeff]] input variable) """, ), +Variable( + abivarname="fit_imposecoeff@multibinit", + varset="multibinit", + vartype="integer", + topics=['FitProcess_expert'], + dimensions=['[[multibinit:fit_nimposecoeff]]'], + defaultval=0, + mnemonics="FIT Number of IMPOSEd COEFFicients", + added_in_version="before_v9", + text=r""" +Indices of the imposed coefficients with fixed coefficient value during the fit process for the model. +""", +), Variable( abivarname="fit_nbancoeff@multibinit", @@ -371,6 +777,7 @@ dimensions="scalar", defaultval=0, mnemonics="FIT Number of BANed COEFFicients", + added_in_version="before_v9", text=r""" Number of imposed coefficients during the fit process of the model: @@ -388,8 +795,9 @@ dimensions=['[[multibinit:fit_nbancoeff]]'], defaultval=0, mnemonics="FIT BANed COEFFicients", + added_in_version="before_v9", text=r""" -Indexes of the banned coefficients during the fit process of the model +Indices of the banned coefficients during the fit process of the model """, ), @@ -400,7 +808,8 @@ topics=['FitProcess_useful'], dimensions="scalar", defaultval=0, - mnemonics="FIT Training Set OPTION", + mnemonics="fit Training Set OPTION", + added_in_version="before_v9", text=r""" * 0 --> the Training is hist from ABINIT @@ -408,6 +817,23 @@ """, ), +Variable( + abivarname="bound_factors@multibinit", + varset="multibinit", + vartype="real", + topics=['FitProcess_basic'], + dimensions=[3], + defaultval=[1,1,1], + mnemonics="FACTORS for Goal Function of Energy, Forces, and Stresses during bounding process", + added_in_version="v9", + text=r""" +Specify three factors for Energy, Forces and Stresses in the calculation of the Goal Function which is to be minimized during the +bounding process, allowing to change the relative weights of the three quantities. + +Default value is 1 1 1, equally balancing energy, forces and stresses. +""", +), + Variable( abivarname="bound_model@multibinit", varset="multibinit", @@ -415,7 +841,8 @@ topics=['BoundingProcess_basic'], dimensions="scalar", defaultval=0, - mnemonics="BOUND COEFFicient", + mnemonics="BOUND MODEL", + added_in_version="before_v9", text=r""" Flag to activate the bound process: @@ -428,7 +855,6 @@ **Related variables:1 and 2** The number of maximum additional coefficient in the polynome ([[multibinit:bound_maxCoeff]]), the power range for the additional coefficients ([[multibinit:bound_rangePower]]), the cut off of the additional interactions ([[multibinit:bound_cutoff]]) *3 --> Check each anharmonic term in the effective potential. If the term contains has a negative coefficient and is even in its displacement or contains odd powers in the displacement generate high order bounding terms of the same combination of displacement within the range of powers defined by the user ([[multibinit:bound_rangePower]]). The coefficients of the added high-order terms are optimized until the precision of the original effective potential is retained. - """, ), @@ -440,11 +866,26 @@ dimensions="scalar", defaultval=0, mnemonics="BOUND MAX COEFFicient", + added_in_version="before_v9", text=r""" Number of maximum additional coefficients for the bound process """, ), +Variable( + abivarname="bound_penalty@multibinit", + varset="multibinit", + vartype="real", + topics=['FitProcess_basic'], + dimensions="scalar", + defaultval=1.001, + mnemonics="Goal Function penalty for determination of bounding coefficients", + added_in_version="v9", + text=r""" +Relative penalty for the determination of bounding coefficient values. The penalty defines the ration of the goal function before and after adding the coefficient. If the optimum value of the coefficient (-one that decreases the value of the goal function-) is negative a positive value that . +""", +), + Variable( abivarname="bound_rangePower@multibinit", varset="multibinit", @@ -453,6 +894,7 @@ dimensions=[2], defaultval="6,6", mnemonics="BOUND RANGE POWER", + added_in_version="before_v9", text=r""" Range of the power for the additional coefficients in the bound process """, @@ -466,6 +908,7 @@ dimensions="scalar", defaultval="1 unit cell", mnemonics="BOUND CUT OFF", + added_in_version="before_v9", text=r""" Cut-off for the anharmonic phonon interaction during the bound process (in Bohr) """, @@ -480,6 +923,7 @@ dimensions="scalar", defaultval=0, mnemonics="BOUND ANHArmonic STRAIN coefficients", + added_in_version="before_v9", text=r""" Flag to activate the anharmonic strain. When the bound process will generate the possible coefficients for the fit, if this input variable is set to 1, the generator will consider coefficients like eta^4 """, @@ -493,6 +937,7 @@ dimensions="scalar", defaultval=1, mnemonics="BOUND Strain Phonon COUPLING coefficients", + added_in_version="before_v9", text=r""" Flag to activate the strain phonon coupling. When the bound process will generate the possible coefficients for the fit, if this input variable is set to 1, the generator will consider coefficients like (Sr-Ti)^2 eta^2 """, @@ -506,6 +951,7 @@ dimensions=[3], defaultval="6,6,6", mnemonics="BOUND superCELL size for the molecular dynamics", + added_in_version="before_v9", text=r""" When the process will try a given model, this input variable is used to set the size of the supercell for the molecular dynamics """, @@ -519,6 +965,7 @@ dimensions="scalar", defaultval=500, mnemonics="BOUND TEMPerature for the molecular dynamics (in Kelvin)", + added_in_version="before_v9", text=r""" When the process will try a given model, this input variable is used to set the temperature for the molecular dynamics """, @@ -532,6 +979,7 @@ dimensions="scalar", defaultval=1000, mnemonics="BOUND number of STEP for the molecular dynamics", + added_in_version="before_v9", text=r""" When the process will try a given model, this input variable is used to set the maximum number of molecular dynamics steps """, @@ -545,11 +993,40 @@ dimensions="scalar", defaultval=0, mnemonics="Dynamics option for Multibinit", + added_in_version="before_v9", text=r""" Set the Dynamics option for Multibinit. This option is equivalent to [[abinit:ionmov]] for numbers < 100. For numbers >100, it uses algorithms implemented inside Multibinit: * 0 --> do nothing + * 1 --> Move atoms using molecular dynamics with optional viscous damping (friction linearly proportional to velocity). The viscous damping is controlled by the parameter "[[vis]]". If actual undamped molecular dynamics is desired, set [[vis]] to 0. The implemented algorithm is the generalisation of the Numerov technique (6th order), but is NOT invariant upon time-reversal, so that the energy is not conserved. The value [[ionmov]] = 6 will usually be preferred, although the algorithm that is implemented is lower-order. The time step is governed by [[dtion]]. +**Purpose:** Molecular dynamics (if [[vis]] = 0), Structural optimization (if +[[vis]] >0) +**Cell optimization:** No (Use [[optcell]] = 0 only) +**Related variables:** Viscous parameter [[vis]], time step [[dtion]], index +of atoms fixed [[iatfix]] + + * 2 --> Conduct structural optimization using the Broyden-Fletcher-Goldfarb-Shanno minimization (BFGS). This is much more efficient for structural optimization than viscous damping, when there are less than about 10 degrees of freedom to optimize. Another version of the BFGS is available with [[ionmov]]==22, and is apparently more robust and efficient than [[ionmov]]==2. +**Purpose:** Structural optimization +**Cell optimization:** Yes (if [[optcell]]/=0) +**Related variables:** + + * 6 --> Molecular dynamics using the Verlet algorithm, see [[cite:Allen1987a]] p 81]. The only related parameter is the time step ([[dtion]]). +**Purpose:** Molecular dynamics +**Cell optimization:** No (Use [[optcell]] = 0 only) +**Related variables:** time step [[dtion]], index of atoms fixed [[iatfix]] + + * 7 --> Quenched Molecular dynamics using the Verlet algorithm, and stopping each atom for which the scalar product of velocity and force is negative. The only related parameter is the time step ([[dtion]]). The goal is not to produce a realistic dynamics, but to go as fast as possible to the minimum. For this purpose, it is advised to set all the masses to the same value (for example, use the Carbon mass, i.e. set [[amu]] to 12 for all type of atoms). +**Purpose:** Structural optimization +**Cell optimization:** No (Use [[optcell]] = 0 only) +**Related variables:** time step [[dtion]], index of atoms fixed [[iatfix]] + + * 9 --> Langevin molecular dynamics. +**Purpose:** Molecular dynamics +**Cell optimization:** No (Use [[optcell]] = 0 only) +**Related variables:** time step ([[dtion]]), temperatures ([[mdtemp]]) and +friction coefficient ([[friction]]). + * 12 --> Isokinetic ensemble molecular dynamics. The equation of motion of the ions in contact with a thermostat are solved with the algorithm proposed by Zhang [J. Chem. Phys. 106, 6102 (1997)], as worked out by Minary et al [J. Chem. Phys. 188, 2510 (2003)]. The conservation of the kinetic energy is obtained within machine precision, at each step. **Purpose:** Molecular dynamics **Cell optimization:** No (Use [[optcell]]=0 only) @@ -563,18 +1040,36 @@ ([[mdtemp]]), the number of thermostats ([[nnos]]), and the masses of thermostats ([[qmass]]). + * 22 --> Conduct structural optimization using the Limited-memory Broyden-Fletcher-Goldfarb-Shanno minimization (L-BFGS) [[cite:Nocedal1980]]. The working routines were based on the original implementation of J. Nocedal available on netlib.org. This algorithm can be much better than the native implementation of BFGS in ABINIT ([[ionmov]] = 2) when one approaches convergence, perhaps because of better treatment of numerical details. +**Purpose:** Structural optimization +**Cell optimization:** Yes (if [[optcell]]/=0) +**Related variables:** + + * 24 --> Simple constant energy molecular dynamics using the velocity Verlet symplectic algorithm (second order), see [[cite:Hairer2003]]. The only related parameter is the time step ([[dtion]]). +**Purpose:** Molecular dynamics +**Cell optimization:** No (Use [[optcell]] = 0 only) +**Related variables:** time step [[dtion]] + + * 25 --> Hybrid Monte Carlo sampling of the ionic positions at fixed temperature and unit cell geometry (NVT ensemble). The underlying molecular dynamics corresponds to [[ionmov]]=24. The related parameters are the time step ([[dtion]]) and thermostat temperature ([[mdtemp]]). +Within the HMC algorithm [[cite:Duane1987]], the trial states are generated via short $NVE$ trajectories (ten [[ionmov]]=24 steps in current implementation). + The initial momenta for each trial are randomly sampled from Boltzmann distribution, and the final trajectory state is either accepted or rejected based on the Metropolis criterion. + Such strategy allows to simultaneously update all reduced coordinates, achieve higher acceptance ratio than classical Metropolis Monte Carlo and better sampling efficiency for shallow energy landscapes [[cite:Prokhorenko2018]]. +**Purpose:** Monte Carlo sampling +**Cell optimization:** No (Use [[optcell]] = 0 only) +**Related variables:** time step [[dtion]], thermostat temperature [[mdtemp]], + * 101 --> NVE ensemble with velocity Verlet algorithm [[cite:Swope1982]] . **Purpose:** Molecular dynamics **Cell optimization:** No (Use [[optcell]]=0 only) **Related variables:** The time step ([[dtion]]), the temperatures -([[multibinit:temperature]]). - +([[multibinit:temperature]]). The time step should be small enough to make the energy conserved. The temperature is set to intialize the velocities of the atoms, which is in principle not preserved during the NVE run. * 102 --> NVT ensemble with Langevin algorithm. [[cite:Vanden2006]] . **Purpose:** Molecular dynamics **Cell optimization:** No (Use [[optcell]]=0 only) **Related variables:** The time step ([[dtion]]), the temperatures ([[multibinit:temperature]]), the friction [[multibinit:latt_friction]]. +The atoms are coupled to the heat bath, which is represented by a gauss noise in the forces, whose amplitude is defined by the temperature, and a friction term. * 103 --> NVT ensemble. The temperature is approached by scaling the velocity of atoms. The method is proposed by Berendsen et al. in J. Chem. Phys., 81 3684–3690 (1984) [[cite:Berendsen1984]]. Note that this method does NOT generate properly the thermostated ensemble. It does not have the correct distribution of the kinetic energy but have the correct average. However, it approches the target temperature exponentially without oscillation, for which the steps can be easily controlled. @@ -583,17 +1078,52 @@ **Related variables:** The time step ([[dtion]]), the temperatures ([[multibinit:temperature]]), the ion relaxation time [[multibinit:latt_taut]]. -* 104 --> NPT ensemble with method. Similar to option 103, except the pressure is also scaled. -**Purpose:** Molecular dynamics -**Cell optimization:** No (Use [[optcell]]=0 only) -**Related variables:** The time step ([[dtion]]), the temperatures -([[multibinit:temperature]]), the ion relaxation time [[multibinit:latt_taut]], the pressure relaxation time [[multibinit:latt_taup]]. +* 120 --> Dummy mover. Atoms does not move. For testing only. +""", +# Not yet fully implemented. Need to be properly documented and tested. Disactivated temporarily. +#* 104 --> NPT ensemble with method. Similar to option 103, except the pressure is also scaled. +#**Purpose:** Molecular dynamics +#**Cell optimization:** No (Use [[optcell]]=0 only) +#**Related variables:** The time step ([[dtion]]), the temperatures +#([[multibinit:temperature]]), the ion relaxation time [[multibinit:latt_taut]], the pressure relaxation time [[multibinit:latt_taup]]. -* 120 --> Dummy mover. Atoms does not move. For testing only. + + +), + +Variable( + abivarname="dyn_chksym@multibinit", + varset="multibinit", + vartype="integer", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="DYNamics CHeK SYMmetry", + added_in_version="v9", + text=r""" +Flag to activate symmetry finder and imposition of symmetry of the restart structure before dynamics run, when restartxf is negativ. +Useful to do symmetry constrained relaxation with structural realxations algorithms. +Be cautious to use it with large number of atoms, symmetry detection might take a long time. + +**Related variables:** Restart flag for multibinit dynamcis ([[multibinit:restartxf]]), symmetry on symmetry finder ([[multibinit:dyn_tolsym]])) """, +), +Variable( + abivarname="dyn_tolsym@multibinit", + varset="multibinit", + vartype="real", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval=1e-10, + mnemonics="DYNamics TOLerance on SYMmetries", + added_in_version="v9", + text=r""" +Tolerance on symmetry finder. +**Related variables:** Activation flag for symmetry finder ([[multibinit:dyn_chksym]]) +""", ), Variable( @@ -604,6 +1134,7 @@ dimensions="scalar", defaultval=100, mnemonics="Delta Time for IONs", + added_in_version="before_v9", text=r""" See [[abinit:dtion]] """, @@ -617,11 +1148,98 @@ dimensions="scalar", defaultval=1e-4, mnemonics="LATTice dynamics FRICTION parameter", + added_in_version="before_v9", text=r""" - Parameter of the friction used in Langevin dynamcis [[multibinit:dynamics]] =101. + Parameter of the friction coefficient used in Langevin dynamics [[multibinit:dynamics]] =102. Typical value is 1e-4 to 1e-2. """, ), +Variable( + abivarname="latt_anharm_pot_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval="", + mnemonics="LATTice HARMornic POTential File NAME", + added_in_version="9.8", + text=r""" +Specify the input coefficients from fitted polynomial in multibinit lattice calculation, which can be a xml file. The string must be enclosed between quotation marks: + + lat_anharm_pot_fname "BaTiO3_coeff.xml" + +""" +), + + +Variable( + abivarname="latt_harm_pot_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval="", + mnemonics="LATTice HARMonic POTential File NAME", + added_in_version="9.8", + text=r""" +Specify the input derivative database of reference structure in multibinit lattice calculation, which can be a DDB file or a xml file. The string must be enclosed between quotation marks: + + latt_harm_pot_fname "BaTiO3.ddb" + +""" +), + +Variable( + abivarname="latt_training_set_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval="", + mnemonics="LATTice potential TRAINING SET File NAME", + added_in_version="9.3.3", + text=r""" +Specify the training set file name for building multibinit lattice potential, which is usually a abinit molecular dynamics history netcdf file. The string must be enclosed between quotation marks: + + latt_training_set_fname "BaTiO3_md_hist.nc" + +""" +), + +Variable( + abivarname="latt_test_set_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval="", + mnemonics="LATTice potential TEST SET File NAME", + added_in_version="9.8", + text=r""" +Specify the test set file name for building multibinit lattice potential, which is usually a abinit molecular dynamics history netcdf file. The string must be enclosed between quotation marks: + + latt_test_set_fname "BaTiO3_md_hist.nc" + +""" +), + + +Variable( + abivarname="latt_pot_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval="", + mnemonics="LATTice POTential FileNAME", + added_in_version="9.8", + text=r""" +Specify the lattice potential file name in the multibinit lattice dynamics calculation, which can be a netcdf file. This variable is only used in the harmonic-only lattice potential for testing only. The string must be enclosed between quotation marks: + + latt_pot_fname "BaTiO3.nc" +""" +), + Variable( abivarname="latt_taut@multibinit", @@ -631,9 +1249,13 @@ dimensions="scalar", defaultval=1000, mnemonics="LATTice dynamics relaxation time TAUT", + added_in_version="before_v9", text=r""" - Parameter used in Berendsen lattice dynamcis [[multibinit:dynamics]] =102 and 103, in which the temperature is relaxed exponentially to the target temperature, with the characteristic time of latt_taut. - The unit is atomic unit, same as [[dtion]]. + Parameter used in Berendsen lattice dynamics [[multibinit:dynamics]] =102 and 103, in which the temperature is relaxed exponentially to the target temperature, with the characteristic time of latt_taut. + The default unit is atomic unit. But it is possible to use the second as the unit by adding Second or S at the end of the line, for example: + + latt_taut 1d-15 S + """, ), @@ -644,10 +1266,15 @@ topics=['DynamicsMultibinit_basic'], dimensions="scalar", defaultval=1000, - mnemonics="LATTice dynamics relaxation time TAUT", + mnemonics="LATTice dynamics relaxation time TAUP", + added_in_version="before_v9", text=r""" - Parameter used in Berendsen lattice dynamcis [[multibinit:dynamics]] =103, in which the pressure is relaxed exponentially to the target temperature, with the characteristic time of latt_taup. - The unit is atomic unit, same as [[dtion]]. + Parameter used in Berendsen lattice dynamics [[multibinit:dynamics]] =103, in which the pressure is relaxed exponentially to the target temperature, with the characteristic time of latt_taup. + The default unit is atomic unit. But it is possible to use the second as the unit by adding Second or S at the end of the line, for example: + + latt_taup 1d-15 S + + """, ), @@ -661,8 +1288,9 @@ dimensions="scalar", defaultval=200, mnemonics="Number of TIME step", + added_in_version="before_v9", text=r""" -Number of step for the dynamics +Number of step for the dynamics. """, ), @@ -674,6 +1302,7 @@ dimensions="scalar", defaultval=0, mnemonics="Number of NOSe masses", + added_in_version="before_v9", text=r""" See [[abinit:nnos]] """, @@ -687,6 +1316,7 @@ dimensions=['[[abinit:nnos]]'], defaultval=0, mnemonics="Q thermostat MASS", + added_in_version="before_v9", text=r""" See [[abinit:qmass]] """, @@ -700,6 +1330,7 @@ dimensions="scalar", defaultval=1, mnemonics="NetCdf TIME between output of molecular dynamics informations ", + added_in_version="before_v9", text=r""" Set the number of step between output the molecular dynamics informations in the NetCDF file """, @@ -713,6 +1344,7 @@ dimensions="scalar", defaultval=325, mnemonics="molecular dynamics TEMPERATURE (in Kelvin)", + added_in_version="before_v9", text=r""" Give the temperature of the dynamics in Kelvin """, @@ -726,11 +1358,64 @@ dimensions=[3], defaultval=[6,6,6], mnemonics="Number of Cell", + added_in_version="before_v9", text=r""" Give the size of the supercell for the dynamics """, ), +Variable( + abivarname="ncellmat@multibinit", + varset="multibinit", + vartype="integer", + topics=['DynamicsMultibinit_basic'], + dimensions=[3, 3], + defaultval=[[1,0,0],[0,1,0], [0,0,1]], + mnemonics="Number of superCELL MATtrix", + added_in_version="9.5.0", + text=r""" +Give the size of the supercell for the dynamics in the format of a matrix. +Currently allowed in spin dynamics and spin and LWF dynamics. +It will override the [[multibinit:ncell]] if specified. +""" +), + +Variable( + abivarname="outdata_prefix", + varset="multibinit", + vartype="string", + topics=['Control_useful'], + dimensions="scalar", + defaultval=None, + mnemonics="OUTput DATA PREFIX", + added_in_version="9.3.3", + text=r""" +Prefix for output files. Replaces the analogous entry in the obsolete *files_file* . +This variable is used when Abinit is executed with the new syntax: + + multibinit run.abi > run.log 2> run.err & + +If this option is not specified, a prefix is automatically constructed from the input file name +provided the filename ends with an extension, e.g. `.ext`. (`.abi` is recommended) +If the input filename does not have a file extension, a default is provided. +""" +), + + +Variable( + abivarname="strfact@multibinit", + varset="multibinit", + vartype="real", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval=100.0, + mnemonics="STRess FACTor", + added_in_version="v9.1", + text=r""" +See [[abinit:strfact]] +""", +), + Variable( abivarname="strtarget@multibinit", varset="multibinit", @@ -739,6 +1424,7 @@ dimensions=[6], defaultval=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], mnemonics="STRess TARGET", + added_in_version="before_v9", text=r""" See [[abinit:strtarget]] """, @@ -752,6 +1438,7 @@ dimensions="scalar", defaultval=10, mnemonics="Barostat MASS", + added_in_version="before_v9", text=r""" See [[abinit:bmass]] """, @@ -765,6 +1452,7 @@ dimensions="scalar", defaultval=0, mnemonics="OPTimize the CELL shape and dimensions", + added_in_version="before_v9", text=r""" See [[abinit:optcell]] """, @@ -778,46 +1466,66 @@ dimensions="scalar", defaultval=0, mnemonics="RESTART from (X,F) history", + added_in_version="before_v9", text=r""" See [[abinit:restartxf]] """, ), Variable( - abivarname="spin_calc_correlation_obs@multibinit", - varset="multibinit", - vartype="integer", - topics=['SpinDynamicsMultibinit_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="SPIN CALCulate CORRELATION OBServables", - text=r""" -Flag to calculate spin correlation function based observables. - -* 0 --> do not calculate. - -* 1 --> calculate. -""", -), - - -Variable( - abivarname="spin_calc_traj_obs@multibinit", + abivarname="sel_EFS@multibinit", varset="multibinit", vartype="integer", - topics=['SpinDynamicsMultibinit_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="SPIN CALCulate TRAJectory based OBServables", - text=r""" -Flag to calculate spin trajectory based observables. (Nothing included yet.) - -* 0 --> do not calculate. - -* 1 --> calculate. -""", -), - + topics=['FitProcess_basic'], + dimensions=[3], + defaultval=[0,1,1], + added_in_version="v9", + mnemonics="Select on Energy, Forces, and or, Stresses", + text=r""" +Specifies on which goal function quantities the anharmonic coefficients will be selected. +The first number flags the selecting on the energies, the second the fitting on the forces, and the third on the stressses. + +Default value is 0 1 1, so anharmonic coefficients get selected on Forces and Stresses but not on energies +""", +), + +# The below are not yet functioning, comment out temporarily. +#Variable( +# abivarname="spin_calc_correlation_obs@multibinit", +# varset="multibinit", +# vartype="integer", +# topics=['SpinDynamicsMultibinit_basic'], +# dimensions="scalar", +# defaultval=0, +# mnemonics="SPIN CALCulate CORRELATION OBServables", +# added_in_version="before_v9", +# text=r""" +#Flag to calculate spin correlation function based observables. +# +#* 0 --> do not calculate. +# +#* 1 --> calculate. +#""", +#), +# +# +#Variable( +# abivarname="spin_calc_traj_obs@multibinit", +# varset="multibinit", +# vartype="integer", +# topics=['SpinDynamicsMultibinit_basic'], +# dimensions="scalar", +# defaultval=0, +# mnemonics="SPIN CALCulate TRAJectory based OBServables", +# added_in_version="before_v9", +# text=r""" +#Flag to calculate spin trajectory based observables. (Nothing included yet.) +# +#* 0 --> do not calculate. +# +#* 1 --> calculate. +#""", +#), Variable( abivarname="spin_calc_thermo_obs@multibinit", @@ -827,6 +1535,7 @@ dimensions="scalar", defaultval=1, mnemonics="SPIN CALCulate THERMO dynamics OBServables", + added_in_version="before_v9", text=r""" Flag to calculate spin thermo dynamics observables, including the specific heat, magnetic susceptibility, Binder U4 value. @@ -847,6 +1556,7 @@ dimensions="scalar", defaultval=-1.0, mnemonics="SPIN gilbert DAMPING factor", + added_in_version="before_v9", text=r""" Gilbert damping factor in LLG equation for spin dynamics. @@ -856,21 +1566,22 @@ """, ), -Variable( - abivarname="spin_dipdip@multibinit", - varset="multibinit", - vartype="integer", - topics=['SpinDynamicsMultibinit_basic'], - dimensions="scalar", - defaultval=0, - mnemonics="SPIN DIPole DIPole interaction", - text=r""" -* 0 --> Switch off spin dipole-dipole interaction. - -* 1 --> Switch on spin dipole-dipole interaction. - (Not yet implemented.) -""", -), +#Variable( +# abivarname="spin_dipdip@multibinit", +# varset="multibinit", +# vartype="integer", +# topics=['SpinDynamicsMultibinit_basic'], +# dimensions="scalar", +# defaultval=0, +# mnemonics="SPIN DIPole DIPole interaction", +# added_in_version="before_v9", +# text=r""" +#* 0 --> Switch off spin dipole-dipole interaction. +# +#* 1 --> Switch on spin dipole-dipole interaction. +# (Not yet implemented.) +#""", +#), Variable( abivarname="spin_dt@multibinit", @@ -880,6 +1591,7 @@ dimensions="scalar", defaultval=100, mnemonics="SPIN Delta Time", + added_in_version="before_v9", text=r""" Time step for spin dynamics. Default value is 100. Default unit is atomic unit (2.419e-17 s). @@ -896,6 +1608,7 @@ dimensions="scalar", defaultval=0, mnemonics="SPIN DYNAMICS", + added_in_version="before_v9", text=r""" Flag to run spin dynamics. @@ -916,6 +1629,25 @@ """, ), +Variable( + abivarname="spin_init_hist_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['SpinDynamicsMultibinit_basic'], + dimensions="scalar", + defaultval="", + mnemonics="SPIN INITIAL state HISTory file name", + added_in_version="9.3.3", + text=r""" +Specify the initial state of the multibinit spin dynamics calculation, which can be a spin_hist netcdf file, usually generated from previous spin dynamics calculations. It is used when [[multibinit:spin_init_state]]=4 The string must be enclosed between quotation marks, for example: + + spin_init_hist_fname "last_step_spin_hist.nc" +""" + +), + + + Variable( abivarname="spin_init_state@multibinit", varset="multibinit", @@ -924,6 +1656,7 @@ dimensions="scalar", defaultval=1, mnemonics="SPIN INITial STATE", + added_in_version="before_v9", text=r""" Flag to initialize spin state. @@ -933,7 +1666,7 @@ * 3 --> State with q-vector using [[multibinit:spin_init_qpoint]], [[multibinit:spin_init_rotate_axis]], and [[multibinit:spin_init_orientation]]. Please check default values for those variables. -* 4 --> Restart from last step of input spin hist file. "{output}_spinhist_input.nc". +* 4 --> Restart from last step of input spin hist file, as specified in [[multibinit:spin_init_hist_fname]]. """, ), @@ -946,6 +1679,7 @@ dimensions=[3], defaultval=[0,0,0], mnemonics="SPIN Magnetic Field", + added_in_version="before_v9", text=r""" External magnetic field. Unit: Tesla. """, @@ -960,6 +1694,7 @@ dimensions="scalar", defaultval=0, mnemonics="SPIN NetCdf write per number of TIME steps", + added_in_version="before_v9", text=r""" Write spin into netcdf file in every spin_nctime of spin dynamics time steps. """, @@ -973,6 +1708,7 @@ dimensions="scalar", defaultval=0, mnemonics="SPIN dynamics total Number of TIME steps", + added_in_version="before_v9", text=r""" Total number of spin dynamics time steps. """, @@ -987,6 +1723,7 @@ dimensions="scalar", defaultval=0, mnemonics="SPIN dynamics total Number of TIME steps for PREparing", + added_in_version="before_v9", text=r""" Total number of spin dynamics time steps for preparing the system. The results of these time step are not written to trajectory spinhist.nc file, @@ -1003,6 +1740,7 @@ dimensions=[3], defaultval=[0,0,1], mnemonics="SPIN INITial ORIENTATION", + added_in_version="before_v9", text=r""" Spin initial orientation. It is used for setting the initial spin in a supercell. For a spin in a cell labeled with R, the rotation angle is $2\pi Q\cdot R$ @@ -1022,6 +1760,7 @@ dimensions=[3], defaultval=[0,0,0], mnemonics="SPIN INITial QPOINT", + added_in_version="before_v9", text=r""" Spin wave vector. It is used for setting the initial spin in a supercell. For a spin in a cell labeled with R, the rotation angle is $2\pi Q\cdot R$ @@ -1040,6 +1779,7 @@ dimensions=[3], defaultval=[1,0,0], mnemonics="SPIN INITial ROTATE AXIS", + added_in_version="before_v9", text=r""" Spin initial rotate axis. It is used for setting the initial spin in a supercell. For a spin in a cell labeled with R, the rotation angle is $2\pi Q\cdot R$ @@ -1048,7 +1788,22 @@ """, ), +Variable( + abivarname="spin_pot_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['SpinDynamicsMultibinit_basic'], + dimensions="scalar", + defaultval="", + mnemonics="SPIN POTential File NAME", + added_in_version="9.3.3", + text=r""" +Specify the spin potential file name in the multibinit spin dynamics calculation, which can be either a xml or a netcdf file. The string must be enclosed between quotation marks: + + spin_pot_fname "Fe.xml" +""" +), Variable( abivarname="spin_projection_qpoint@multibinit", @@ -1058,6 +1813,7 @@ dimensions=[3], defaultval=[0,0,0], mnemonics="SPIN PROJECTION QPOINT", + added_in_version="before_v9", text=r""" Spin wave vector. It is used for getting the total spin. $M_{tot}=\sum_i M_i exp(i q \cdot R_i)$. The unit is the reciprocal lattice vectors of the unitcell. Default is Gamma. (0, 0, 0) @@ -1073,8 +1829,9 @@ dimensions="scalar", defaultval=0, mnemonics="SPIN Single Ion Anistropy ADD", + added_in_version="before_v9", text=r""" -Add single ion anistropy term to the spin model hamiltonian. +Add single ion anisotropy term to the spin model hamiltonian. with user defined values (see [[multibinit:spin_sia_k1amp]] and [[multibinit:spin_sia_k1dir]]. * 0 --> Do not add, use the term defined in the spin model xml file. @@ -1096,6 +1853,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="SPIN Single Ion Anistropy K1 AMPtitude", + added_in_version="before_v9", text=r""" User defined amplitude of single ion anistropy. Only used when [[multibinit:spin_sia_add]] is not 0. The direction is defined with [[multibinit:spin_sia_k1dir]]. The unit is Ha. To use eV or Ry as unit, @@ -1112,6 +1870,7 @@ dimensions=[3], defaultval=[0.0,0.0,1.0], mnemonics="SPIN Single Ion Anistropy K1 DIRection", + added_in_version="before_v9", text=r""" User defined direction of single ion anistropy. Only used when [[multibinit:spin_sia_add]] is not 0. It will be automatically normalized to 1.0. The amplitude is defined with [[multibinit:spin_sia_k1amp]]. @@ -1128,6 +1887,7 @@ dimensions="scalar", defaultval=325, mnemonics="SPIN TEMPERATURE", + added_in_version="before_v9", text=r""" Temperature of spin for spin dynamics. Unit: Kelvin. Default value: 325. @@ -1143,6 +1903,7 @@ dimensions="scalar", defaultval=0, mnemonics="SPIN VARiable TEMPERATURE", + added_in_version="before_v9", text=r""" Switch for variable temperature calculation. 0: off. 1: on. If switched on, a series of spin dynamics calculation with temperatures from @@ -1161,6 +1922,7 @@ dimensions="scalar", defaultval=1, mnemonics="SPIN WRITE TRAJectory to spinhist.nc file", + added_in_version="before_v9", text=""" Switch for writting of spin trajectory file. 0: off. 1 on. The trajectory is needed for postprocessing of correlation functions. @@ -1176,6 +1938,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="SPIN TEMPERATURE START", + added_in_version="before_v9", text=r""" Start point of variable temperature spin dynamcis calculation (see [[multibinit:spin_var_temperature]]) in spin dynamics calculation. """, @@ -1189,6 +1952,7 @@ dimensions="scalar", defaultval=0.0, mnemonics="SPIN TEMPERATURE END", + added_in_version="before_v9", text=r""" End point of variable temperature spin dynamics calculation (see [[multibinit:spin_var_temperature]]) in spin dynamics calculation. """, @@ -1202,6 +1966,7 @@ dimensions="scalar", defaultval=0, mnemonics="SPIN TEMPERATURE Number of STEPs", + added_in_version="before_v9", text=r""" Number of steps in the variable temperature spin dynamics calculation (see [[multibinit:spin_var_temperature]]) in spin dynamics calculation. """, @@ -1215,25 +1980,44 @@ dimensions="scalar", defaultval=0, mnemonics="TEST EFFective POTential", + added_in_version="before_v9", text=r""" * 0 --> nothing. -* 1 --> Evaluate the effective potential with respect to given test-set and calculate mean square differences between ab-initio energy/forces and model energy/forces""", +* 1 --> Evaluate the effective potential with respect to given test-set and calculate mean square differences between ab-initio energy/forces and model energy/forces +""", +), + +Variable( + abivarname="tolmxf@multibinit", + varset="multibinit", + vartype="real", + topics=['DynamicsMultibinit_basic'], + dimensions="scalar", + defaultval=2e-5, + mnemonics="TOLerance on the MaXimal Force", + added_in_version="v9", + text=r""" +Sets a maximal absolute force tolerance (in hartree/Bohr) below which BFGS structural relaxation iterations will stop. Corresponds to [[tolmxf]] of Abinit. +""", ), + Variable( - abivarname="analyze_anh_pot@multibinit", +abivarname="analyze_anh_pot@multibinit", varset="multibinit", vartype="integer", topics=['LatticeModel_expert'], dimensions="scalar", defaultval=0, mnemonics="ANALYZE ANHarmonic POTential", + added_in_version="before_v9", text=r""" -* 0 --> nothing. +* 0 --> Nothing. * 1 --> Print energy contribution of each anharmonic term in the effective Potential. - If it is a Molecular Dynamics (MD) run the contribution of each term is printed for each MD-step into MD_anharmonic_terms_energy.dat - If the effective potential is tested against a test set the contribution of each term for each configuration in the test is set is printed in TES_anharmonic_terms_energy.dat - If the a effective potential is fitted the contribution of each selected term for each configuration in the training set is printed in TRS_anharmonic_terms_energy.dat""", + If it is a Molecular Dynamics (MD) run, the contribution of each term is printed for each MD-step into MD_anharmonic_terms_energy.dat . + If the effective potential is tested against a test set the contribution of each term for each configuration in the test set is printed in TES_anharmonic_terms_energy.dat . + If the effective potential is fitted, the contribution of each selected term for each configuration in the training set is printed in TRS_anharmonic_terms_energy.dat +""", ), @@ -1245,12 +2029,31 @@ dimensions="scalar", defaultval=0, mnemonics="OPTimize EFFective POTential", + added_in_version="before_v9", text=r""" -* 0 --> nothing. -* 1 --> Turn on reading of optimization of effective potential keywords (opt_) +* 0 --> Nothing. +* 1 --> Turn on reading of optimization of effective potential keywords (opt_). The optimization process gives the user the ability to refit the coefficients of specified terms with respect to the training set while keeping the rest fixed. -**Related variables:** The number of coefficients to refit ([[multibinit:opt_ncoeff]]), the indexes of the coefficients to optimize ([[multibinit:opt_coeff]])""" +**Related variables:** The number of coefficients to refit ([[multibinit:opt_ncoeff]]), the indices of the coefficients to optimize ([[multibinit:opt_coeff]]). +""", +), + +Variable( + abivarname="opt_factors@multibinit", + varset="multibinit", + vartype="real", + topics=['FitProcess_basic'], + dimensions=[3], + defaultval=[1,1,1], + mnemonics="FACTORS for Goal Function of Energy, Forces, and Stresses during optimization of coefficients", + added_in_version="v9", + text=r""" +Specifies three factors for Energy, Forces and Stresses in the calcluation of the Goal Function which is to be minimized during the +optimization process allowing to change the relative weight of the three quantities. + +Default value is 1 1 1, equally balancing energy, forces and stresses. +""", ), Variable( @@ -1261,8 +2064,11 @@ dimensions="scalar", defaultval=0, mnemonics="OPTimize NUMBER of COEFFicients", + added_in_version="before_v9", text=r""" -* Number of anharmonic terms to refit in the effective potential""" +* Number of anharmonic terms to refit in the effective potential. +**Related variables:** [[multibinit:opt_coeff]] +""", ), Variable( @@ -1273,11 +2079,106 @@ dimensions=['[[multibinit:opt_ncoeff]]'], defaultval=0, mnemonics="OPTimize Cofficients", + added_in_version="before_v9", + text=r""" +Indices of the terms to refit in the effective potential. +""", +), + +Variable( + abivarname="randomseed@multibinit", + varset="multibinit", + vartype="integer", + topics=['SpinDynamicsMultibinit_expert'], + dimensions='scalar', + defaultval=0, + mnemonics="RANDOM SEED", + added_in_version="9.8", text=r""" -Indexes of the terms to refit in the effective potential. """, +Random seed to be used in Multibinit spin/LWF dynamics. +It should be 0, or a large positive integer. +The default value 0 means it will use the current clock time. +DO NOT set this number unless you want to repeat the previous result. If a series +of dynamics is done with the same seed, the results could be wrong due to the +artificial periodicity of the random number that is generated. Even [[randomseed@multibinit]] is set, it is not guranteed +that the previous result can be recovered, as the generation of numbers is also affected by the number of +processors, type of type of CPU, compiler, and version of MULTIBINIT. +""", ), -] +Variable( + abivarname="slc_coupling@multibinit", + varset="multibinit", + vartype="integer", + topics=['SpinDynamicsMultibinit_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="SpinLatticeCoupling_Coupling", + added_in_version="9.0.0", + text=r""" +Which spin-lattice coupling terms are used in the calculation, different terms can be combined in a binary fashion, i.e. 1010 turns on all terms quadratic in spin. + +* 0 --> No coupling. +* 0001 --> Coupling term linear in spin and lattice coordinate + +* 0010 --> Coupling term quadratic in spin and linear in lattice coordinate + +* 0100 --> Coupling term linear in spin and quadratic in lattice coordinate + +* 1000 --> Coupling term quadratic in spin and lattice coordinate +""", +), + +Variable( + abivarname="slc_pot_fname@multibinit", + varset="multibinit", + vartype="string", + topics=['SpinDynamicsMultibinit_basic'], + dimensions="scalar", + defaultval="", + mnemonics="SLC POTential FileNAME", + added_in_version="9.3.3", + text=r""" +Specify the spin-lattice-coupling potential file name in the coupled spin-lattice multibinit dynamics calculation, which can be a netcdf file. The string must be enclosed between quotation marks: + + slc_pot_fname "BaTiO3_slc.nc" +""" + +), + +Variable( + abivarname="outdata_prefix@multibinit", + varset="multibinit", + vartype="string", + topics=['Control_useful'], + dimensions="scalar", + defaultval=None, + mnemonics="OUTput DATA PREFIX", + added_in_version="9.8.0", + text=r""" +Prefix for output files. Replaces the analogous entry in the obsolete *files_file* . +This variable is used when MULTIBINIT is executed with the new syntax: + + multibinit run.abi > run.log 2> run.err & + +If this option is not specified, a prefix is automatically constructed from the input file name +provided the filename ends with an extension, e.g. `.ext`. (`.abi` is recommended) +If the input filename does not have a file extension, a default is provided. + +Example: + + outdata_prefix = "t01_o" + +See also [[outdata_prefix@abinit]] and [[outdata_prefix@anaddb]] + +""" +), + + + + + +] diff --git a/abipy/abio/abivar_database/variables_optic.py b/abipy/abio/abivar_database/variables_optic.py index c68972a19..b71b91835 100644 --- a/abipy/abio/abivar_database/variables_optic.py +++ b/abipy/abio/abivar_database/variables_optic.py @@ -17,6 +17,7 @@ dimensions="scalar", defaultval="1.d-3 Ha", mnemonics="BROADENING", + added_in_version="before_v9", text=r""" This parameter applies a broadening to the spectrum and is used to avoid divergences in the sum-over-states approach. @@ -43,13 +44,17 @@ dimensions="scalar", mnemonics="DDK FILE", commentdefault="no default", + added_in_version="before_v9", text=r""" This parameter specifies the name of the file containing the matrix elements of the $d/dk$ operator in direction X, as the string ddkfile_X. This file should have been produced by a preparatory Abinit run. This file must not contain the first-order wavefunctions, and may be generated -using [[prtwf]] 3. Make sure that the number of bands, spin channels, and -k-points are the same in all the files. +using [[prtwf]] 3. + +!!! important + + Make sure that the number of bands, spin channels, and k-points are the same in all the files. """, ), @@ -61,6 +66,7 @@ dimensions="scalar", defaultval="1.d-3 Ha", mnemonics="Delta OMEGA", + added_in_version="before_v9", text=r""" This parameter specifies the step size $\Delta\omega$ for the grid over which the optic utility computes the susceptibilities. The maximum energy is set by the @@ -79,6 +85,7 @@ dimensions=[['num_lin_comp']], defaultval=0, mnemonics="LINear COMPonents", + added_in_version="before_v9", text=r""" This parameter specifies the directions of the [[optic:num_lin_comp]] requested components of the dielectric tensor. The components are specified in @@ -97,6 +104,7 @@ dimensions="scalar", defaultval="1 Ha", mnemonics="MAXimum value of OMEGA", + added_in_version="before_v9", text=r""" This parameter specifies the maximum energy for the grid over which the optic utility computes the susceptibilities. The grid step size is set by the @@ -115,6 +123,7 @@ dimensions=[['num_nonlin_comp']], defaultval=0, mnemonics="NON-LINear COMPonents", + added_in_version="before_v9", text=r""" This parameter specifies the directions of the [[optic:num_nonlin_comp]] requested components of the second-order nonlinear dielectric tensor. The components are specified in @@ -133,6 +142,7 @@ dimensions="scalar", defaultval=0, mnemonics="NUMber of LINear COMPonents", + added_in_version="before_v9", text=r""" This parameter specifies how many components (out of 9 possible) of the linear optical dielectric tensor to calculate. @@ -151,6 +161,7 @@ dimensions="scalar", defaultval=0, mnemonics="NUMber of NON-LINear COMPonents", + added_in_version="before_v9", text=r""" This parameter specifies how many components (out of 27 possible) of the second-order nonlinear optical tensor to calculate. @@ -167,6 +178,7 @@ dimensions="scalar", defaultval=0, mnemonics="NUMber of LINear ELetro-optic COMPonents", + added_in_version="before_v9", text=r""" This parameter specifies how many components (out of 27 possible) of the linear electro-optical susceptibility to calculate. @@ -175,6 +187,24 @@ """, ), +Variable( + abivarname="prtlincompmatrixelements@optic", + varset="optic", + vartype="integer", + topics=['Optic_basic'], + dimensions="scalar", + defaultval=0, + mnemonics="PRinT the LINear COMPonent of the dielectric tensor's MATRIX ELEMENTS", + added_in_version="v9.5", + text=r""" +If set to 1, the matrix elements, the renormalized (but unshifted) Kohn-Sham eigenvalues, +the occupations and the kpts weights are all printed out in the ‘_OPTIC.nc’ file +generated by the optic tool. The matrix elements are the ones used to build the linear +components of the dielectric tensor. Useful for post processing of matrix elements or +rebuild the linear components of the dielectric tensor in an external script. +""", +), + Variable( abivarname="linel_comp@optic", varset="optic", @@ -183,6 +213,7 @@ dimensions=[['num_linel_comp']], defaultval=0, mnemonics="LINear ELectro-optic COMPonents", + added_in_version="before_v9", text=r""" This parameter specifies the directions of the [[optic:num_linel_comp]] requested components of the linear electro-optical susceptibility. The components are specified in @@ -201,11 +232,12 @@ defaultval=0.0, mnemonics="SCISSOR operator", commentdefault="in Ha", + added_in_version="before_v9", text=r""" This parameter provides a fixed shift to all the conduction bands. As LDA/GGA are known to underestimate the band-gap by a significant amount in some cases, in order to obtain a reasonable optical spectrum and make a realistic -comparison with experiments one needs to correct for this. +comparison with experiments one needs to correct for this [[cite:Levine1989]]. The scissors shift is normally chosen to be the difference between the experimental and theoretical band-gap, and simply shifts the conduction bands. Alternatively, one may determine the self energy using the [[tutorial:gw1|GW approach]], in which case @@ -221,6 +253,7 @@ dimensions="scalar", defaultval="1.d-3 Ha", mnemonics="TOLERANCE", + added_in_version="before_v9", text=r""" This parameter sets a scale for discarding small energy denominators. When energy denominators are smaller than **tolerance**, the term is discarded from the sum. @@ -236,6 +269,7 @@ dimensions="scalar", mnemonics="WaveFunction K FILE", commentdefault="no default", + added_in_version="before_v9", text=r""" This parameter specifies the name of the ground state wavefunction file, which should have been produced in a preparatory Abinit run. It should include both @@ -244,4 +278,27 @@ """, ), +Variable( + abivarname="nband_sum@optic", + varset="optic", + vartype="integer", + topics=['Optic_basic'], + dimensions="scalar", + mnemonics="Number of BANDs in SUM", + commentdefault="-1 i.e. use all bands found in external files. ", + added_in_version="9.6.2", + text=r""" +This variable specifies the number of bands included in the sum over states expressions. +If not given in input, all the bands found in the external files are used. + +This option can be used to perform convergence studies with respect to the number of bands +for fixed BZ sampling without having to perform multiple calculations from scratch +just to change the number of states. +The idea is very simple: compute the WFK and the DDK files with a sufficiently large number of +bands then use nband_sum to change this parameter when running optic. + +Obviously nband_sum cannot be greater than the number of bands stored on disk. +""", +), + ] diff --git a/abipy/abio/abivars.py b/abipy/abio/abivars.py index 86ccf82aa..02783a55c 100644 --- a/abipy/abio/abivars.py +++ b/abipy/abio/abivars.py @@ -1,9 +1,12 @@ """This module contains lookup table with the name of the ABINIT variables.""" +from __future__ import annotations + import os import warnings import numpy as np +from typing import Union -from pprint import pformat +from pprint import pformat #, pprint from monty.string import is_string, boxed from monty.functools import lazy_property from monty.termcolor import cprint @@ -17,15 +20,16 @@ "is_abiunit", "AbinitInputFile", "AbinitInputParser", + "structure_from_abistruct_fmt", ] -def is_anaddb_var(varname): +def is_anaddb_var(varname: str) -> bool: """True if varname is a valid Anaddb variable.""" return varname in get_codevars()["anaddb"] -def is_abivar(varname): +def is_abivar(varname: str) -> bool: """True if s is an ABINIT variable.""" # Add include statement # FIXME: These variables should be added to the database. @@ -45,7 +49,7 @@ def is_abivar(varname): } -def is_abiunit(s): +def is_abiunit(s: str) -> bool: """ True if string is one of the units supported by the ABINIT parser """ @@ -53,7 +57,7 @@ def is_abiunit(s): return s.lower() in ABI_UNIT_NAMES -def expand_star_syntax(s): +def expand_star_syntax(s: str) -> str: """ Evaluate star syntax. Return new string Remember that Abinit does not accept white spaces. @@ -117,7 +121,7 @@ def str2array_bohr(obj): raise ValueError("Don't know how to handle unit: %s" % str(unit)) -def str2array(obj, dtype=float): +def str2array(obj, dtype=float) -> np.ndarray: if not is_string(obj): return np.asarray(obj) if obj.startswith("*"): raise ValueError("This case should be treated by the caller: %s" % str(obj)) @@ -127,10 +131,107 @@ def str2array(obj, dtype=float): return np.fromstring(s, sep=" ", dtype=dtype) +def eval_abinit_operators(tokens: list[str]) -> list[str]: + """ + Receive a list of strings, find the occurences of operators supported + in the input file (e.g. sqrt), evalute the expression and return new list of strings. + + .. note: + + This function is not recursive hence expr like sqrt(1/2) are not supported + """ + import math # noqa: F401 + import re + re_sqrt = re.compile(r"[+|-]?sqrt\((.+)\)") + + values = [] + for tok in tokens: + if tok.startswith("'") or tok.startswith('"'): + values.append(tok) + else: + m = re_sqrt.match(tok) + if m: + tok = tok.replace("sqrt", "math.sqrt") + tok = str(eval(tok)) + if "/" in tok: + tok = str(eval(tok)) + values.append(tok) + + return values + + +def abi_tokenize(string: str) -> list[str]: + + string = string.strip() + + # stack = [(char, [start, end]), ...] where char is " or ' + stack = [] + for i, c in enumerate(string): + if c in ("'", '"'): + if stack and stack[-1][1][1] == -1: + # Close quotation mark. Note that the algo is not very robust as nested quotation marks are not supported! + entry = stack[-1] + if c != entry[0]: + raise ValueError("Found unclosed quotation marks in: %s" % string) + entry = stack[-1][1][1] = i + else: + # First hit. + stack.append((c, [i, -1])) + + if not stack: + # No ' or " found in string. + return string.split() + + # Unroll stack and buid tokens so that e.g. "foo bar" is treated as a single token. + tokens = [] + base = 0 + for item in stack: + start, stop = item[1][0], item[1][1] + # Consistency check: + if stop == -1: + raise ValueError("Found unclosed quotation mark in: %s" % string) + if start > 0: + tokens.extend(string[base:start-1].strip().split()) + base = stop + 1 + tokens.append(string[start:stop + 1]) + + if base < len(string): + tokens.append(string[base:]) + + return tokens + + class Dataset(dict, Has_Structure): @lazy_property - def structure(self): + def structure(self) -> Structure: + """ + The initial structure associated to the dataset. + """ + + # First of all check whether the structure is defined through an external file. + if "structure" in self: + s = self["structure"].replace('"', "") + filetype, path = s.split(":") + #print("filetype:", filetype) + from abipy import abilab + if filetype == "poscar": + return abilab.Structure.from_file(path) + + elif filetype == "abivars": + with open(path, "rt") as fh: + return structure_from_abistruct_fmt(fh.read()) + + else: + try: + with abilab.abiopen(path) as abifile: + if hasattr(abifile, "final_structure"): + return abifile.final_structure + else: + return abifile.structure + except Exception as exc: + raise RuntimeError("Error while opening file: `%s`:\n%s" % (path, exc)) + # Get lattice. kwargs = {} if "angdeg" in self: @@ -187,7 +288,7 @@ def structure(self): print("acell:", acell, "znucl:", znucl, "typat:", typat, "kwargs:", kwargs, sep="\n") raise exc - def get_vars(self): + def get_vars(self) -> dict: """ Return dictionary with variables. The variables describing the crystalline structure are removed from the output dictionary. @@ -195,10 +296,10 @@ def get_vars(self): geovars = {"acell", "angdeg", "rprim", "ntypat", "natom", "znucl", "typat", "xred", "xcart", "xangst"} return {k: self[k] for k in self if k not in geovars} - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, post=None, mode="text", verbose=0): + def to_string(self, post=None, mode="text", verbose=0) -> str: """ String representation. @@ -233,8 +334,9 @@ class AbinitInputFile(TextFile, Has_Structure, NotebookWriter): the input variables. Mainly used for inspecting the structure declared in the Abinit input file. """ + @classmethod - def from_string(cls, string): + def from_string(cls, string: str) -> AbinitInputFile: """Build the object from string.""" import tempfile _, filename = tempfile.mkstemp(suffix=".abi", text=True) @@ -242,7 +344,7 @@ def from_string(cls, string): fh.write(string) return cls(filename) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) with open(filepath, "rt") as fh: @@ -251,10 +353,10 @@ def __init__(self, filepath): self.datasets = AbinitInputParser().parse(self.string) self.ndtset = len(self.datasets) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = [] app = lines.append @@ -286,7 +388,7 @@ def to_string(self, verbose=0): return "\n".join(lines) @lazy_property - def has_multi_structures(self): + def has_multi_structures(self) -> bool: """True if input defines multiple structures.""" return self.structure is None @@ -296,11 +398,11 @@ def _repr_html_(self): return repr_html_from_abinit_string(self.string) #return self.to_string(mode="html")) - def close(self): + def close(self) -> None: """NOP, required by ABC.""" @lazy_property - def structure(self): + def structure(self) -> Structure: """ The structure defined in the input file. @@ -320,8 +422,6 @@ def structure(self): return self.datasets[0].structure - #def to_abinit_input(self): - def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. @@ -334,7 +434,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield dt.structure.plot(show=False) yield dt.structure.plot_bz(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write an ipython notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -362,18 +462,58 @@ def write_notebook(self, nbpath=None): return self._write_nb_nbpath(nb, nbpath) + def get_differences(self, other, ignore_vars=None) -> list[str]: + """ + Get the differences between this AbinitInputFile and another. + """ + diffs = [] + to_ignore = {"acell", "angdeg", "rprim", "ntypat", "natom", "znucl", "typat", "xred", "xcart", "xangst"} + if ignore_vars is not None: + to_ignore.update(ignore_vars) + if self.ndtset != other.ndtset: + diffs.append(f"Number of datasets in this file is {self.ndtset} " + f"while other file has {other.ndtset} datasets.") + return diffs + for idataset, self_dataset in enumerate(self.datasets): + other_dataset = other.datasets[idataset] + if self_dataset.structure != other_dataset.structure: + diffs.append("Structures are different.") + self_dataset_dict = dict(self_dataset) + other_dataset_dict = dict(other_dataset) + for k in to_ignore: + if k in self_dataset_dict: + del self_dataset_dict[k] + if k in other_dataset_dict: + del other_dataset_dict[k] + common_keys = set(self_dataset_dict.keys()).intersection(other_dataset_dict.keys()) + self_only_keys = set(self_dataset_dict.keys()).difference(other_dataset_dict.keys()) + other_only_keys = set(other_dataset_dict.keys()).difference(self_dataset_dict.keys()) + if self_only_keys: + diffs.append(f"The following variables are in this file but not in other: " + f"{', '.join([str(k) for k in self_only_keys])}") + if other_only_keys: + diffs.append(f"The following variables are in other file but not in this one: " + f"{', '.join([str(k) for k in other_only_keys])}") + for k in common_keys: + if self_dataset_dict[k] != other_dataset_dict[k]: + diffs.append(f"The variable '{k}' is different in the two files:\n" + f" - this file: '{self_dataset_dict[k]}'\n" + f" - other file: '{other_dataset_dict[k]}'") + return diffs + + +class AbinitInputParser: -class AbinitInputParser(object): verbose = 0 - def parse(self, s): + def parse(self, s: str): """ This function receives a string `s` with the Abinit input and return a list of :class:`Dataset` objects. """ - # TODO: Parse PSEUDO section if present! - # Remove comments from lines. + # Remove "=" and comments from lines. lines = [] + s = s.replace("=", " ") for line in s.splitlines(): line.strip() i = line.find("#") @@ -382,35 +522,46 @@ def parse(self, s): if i != -1: line = line[:i] if line: lines.append(line) - # 1) Build string of the form "var1 value1 var2 value2" - # 2) split string in tokens. + # 1) Build string of the form `var1 value1 var2 value2` + # 2) Split string in tokens. # 3) Evaluate star syntax i.e. "3*2" ==> '2 2 2' # 4) Evaluate operators e.g. sqrt(0.75) - tokens = " ".join(lines).split() - # Step 3 is needed because we are gonna use python to evaluate the operators and - # in abinit `2*sqrt(0.75)` means `sqrt(0.75) sqrt(0.75)` and not math multiplication! + # + # NB: Step 3 is needed because we are gonna use python to evaluate the operators and + # in abinit `2*sqrt(0.75)` means `sqrt(0.75) sqrt(0.75)` and not math multiplication! + # + #tokens = " ".join(lines).split() + #print("tokens:\n", pformat(tokens)) + + tokens = abi_tokenize(" ".join(lines)) #print("new tokens:\n", pformat(tokens)) if self.verbose: print("tokens", tokens) + + # Step 3-4 new_tokens = [] for t in tokens: - l = expand_star_syntax(t).split() - #print("t", t, "l", l) - new_tokens.extend(l) + if t.startswith("'") or t.startswith('"'): + new_tokens.append(t) + else: + l = expand_star_syntax(t).split() # ;print(l) + new_tokens.extend(l) + tokens = new_tokens if self.verbose: print("new_tokens", new_tokens) - tokens = self.eval_abinit_operators(tokens) - #print(tokens) + tokens = self.eval_abinit_operators(tokens) # ; print(tokens) varpos = [] for pos, tok in enumerate(tokens): #if not isnewvar(ok): continue + #print("token:", tok) if tok[0].isalpha(): - # Either new variable, string defining the unit or operator e.g. sqrt + #print("tok[0]", tok[0]) + # Either new variable or string defining the unit or operator e.g. sqrt if is_abiunit(tok) or tok in ABI_OPERATORS or "?" in tok: continue - # Have new variable + # Got new variable if tok[-1].isdigit(): # and "?" not in tok: # Handle dataset index. l = [] @@ -424,7 +575,7 @@ def parse(self, s): #continue #raise ValueError("Expecting variable but got: %s" % tok) - #print("new var", tok, pos) + #print("new varname `", tok, "` at positions", pos) varpos.append(pos) varpos.append(len(tokens)) @@ -432,13 +583,13 @@ def parse(self, s): # Build dict {varname --> value_string} dvars = {} for i, pos in enumerate(varpos[:-1]): - varname = tokens[pos] + varname = tokens[pos] # ; print("varname:", varname) if pos + 2 == len(tokens): dvars[varname] = tokens[-1] else: dvars[varname] = " ".join(tokens[pos+1: varpos[i+1]]) + # print("dvars:\n", pformat(dvars)) - #print(dvars) err_lines = [] for k, v in dvars.items(): if not v: @@ -528,28 +679,7 @@ def parse(self, s): @staticmethod def eval_abinit_operators(tokens): - """ - Receive a list of strings, find the occurences of operators supported - in the input file (e.g. sqrt), evalute the expression and return new list of strings. - - .. note: - - This function is not recursive hence expr like sqrt(1/2) are not supported - """ - import math # noqa: F401 - import re - re_sqrt = re.compile(r"[+|-]?sqrt\((.+)\)") - - values = [] - for tok in tokens: - m = re_sqrt.match(tok) - if m: - tok = tok.replace("sqrt", "math.sqrt") - tok = str(eval(tok)) - if "/" in tok: - tok = str(eval(tok)) - values.append(tok) - return values + return eval_abinit_operators(tokens) @staticmethod def varname_dtindex(tok): @@ -573,6 +703,143 @@ def varname_dtindex(tok): return varname, dtidx +def format_string_abivars(varname, value, code="abinit") -> str: + """ + Given a variable and its value, check if it is of string type and wraps it + in double quotes if needed. + + Args: + varname: the name of the variable. + value: the value to format. + code: the code the variable refers to (e.g. "abinit", "anaddb") + + Returns: + The properly formatted value. + """ + + var = get_codevars()[code].get(varname) + if var and var.vartype == "string": + if not isinstance(value, (list, tuple)): + value = [value] + + str_values = [str(v).strip() for v in value] + + # handle gruns_ddbs separately as it supports a different syntax + # incompatible with other variables + if varname == "gruns_ddbs": + join_str = "\n " + for i, str_val in enumerate(str_values): + if str_val[0] != '"': + str_values[i] = '"' + str_val + if str_val[-1] != '"': + str_values[i] += '"' + else: + join_str = ",\n " + if str_values[0][0] != '"': + str_values[0] = '"' + str_values[0] + if str_values[-1][-1] != '"': + str_values[-1] += '"' + + if len(str_values) > 1: + str_values[0] = "\n " + str_values[0] + + return join_str.join(str_values) + return value + + +def structure_from_abistruct_fmt(string): + """ + Parse geometrical information given in the structure:abivars format return Structure object + + A typical input file in "structure:abivars" format looks like:: + + # MgB2 lattice structure. + natom 3 + acell 2*3.086 3.523 Angstrom + rprim 0.866025403784439 0.5 0.0 + -0.866025403784439 0.5 0.0 + 0.0 0.0 1.0 + + # Atomic positions + xred_symbols + 0.0 0.0 0.0 Mg + 1/3 2/3 0.5 B + 2/3 1/3 0.5 B + + i.e. the zcucl, typat and ntypat vars are implicitly defined via the xred_symbols table. + """ + # Algorithm is as follows: + # 1) parse the xred_symbols section using a record-based parser. + # 2) Compute xred, znucl, ntypat and typat from the xred_symbols section + # 3) Add these values in string format to the head to get a "standard" Abinit input file. + # 4) Init structure from the "standard" Abinit input file. + found = 0 + head = [] + xred, symbols = [], [] + + for line in string.split("\n"): + line = line.strip() + + if line.lower() == "xred_symbols": + found += 1 + continue + if not found: + head.append(line) + if found and line: + tokens = line.split() #; print(line) + xred.append([float(t) for t in eval_abinit_operators(tokens[:3])]) + symbols.append(tokens[3]) + + if not xred: + raise ValueError("Cannot find xred_symbols section in string:\n %s" % string) + + xred = np.reshape(xred, (-1, 3)) + + # Set small values to zero. This usually happens when the CIF file + # does not give structure parameters with enough digits. + xred = np.where(np.abs(xred) > 1e-8, xred, 0.0) + + # Compute ntypat, typat, znucl from xred and symbols. + natom = len(xred) + ntypat = 1 + typat = [0] + for iatom in range(1, natom): + found = -1 + for jj in range(ntypat): + if symbols[iatom] == symbols[typat[jj]]: + found = jj + break + if found == -1: + ntypat += 1 + typat.append(ntypat - 1) + else: + typat.append(found) + + from pymatgen.core.periodic_table import Element + znucl = np.empty(ntypat) + for iatom in range(natom): + itypat = typat[iatom] + znucl[itypat] = Element(symbols[iatom]).Z + + # Convert C indexing to Fortran. + typat = np.array(typat) + 1 + + # Build standard Abinit input string. + lines = [] + app = lines.append + app("ntypat %d" % ntypat) + app("typat " + " ".join("%d" % t for t in typat)) + app("znucl " + " ".join("%f" % z for z in znucl)) + app("xred ") + for iatom in range(natom): + v = xred[iatom] + lines.append("%.16f %.16f %.16f" % (v[0], v[1], v[2])) + + s = "\n".join(head) + "\n" + "\n".join(lines) #; print(s) + + return AbinitInputFile.from_string(s).structure + + def validate_input_parser(abitests_dir=None, input_files=None): """ validate/test AbinitInput parser. diff --git a/abipy/abio/abivars_db.py b/abipy/abio/abivars_db.py index a12ff942d..10e9256a0 100644 --- a/abipy/abio/abivars_db.py +++ b/abipy/abio/abivars_db.py @@ -1,9 +1,10 @@ """Database with the names of the input variables used in Abinit and in other main programs.""" +from __future__ import annotations + import sys from collections import OrderedDict - ############## # Public API # ############## @@ -15,13 +16,19 @@ def get_abinit_variables(): return get_codevars()["abinit"] +def get_anaddb_variables(): + """Returns the database with the description of the ANADDB variables.""" + from abipy.abio.abivar_database.variables import get_codevars + return get_codevars()["anaddb"] + + def docvar(varname, executable="abinit"): """Return the `Variable` object associated to this name.""" from abipy.abio.abivar_database.variables import get_codevars return get_codevars()[executable][varname] -def abinit_help(varname, info=True, stream=sys.stdout): +def abinit_help(varname: str, info=True, stream=sys.stdout) -> None: """ Print the abinit documentation on the ABINIT input variable `varname` """ @@ -45,10 +52,11 @@ def abinit_help(varname, info=True, stream=sys.stdout): stream.write("\n") -def repr_html_from_abinit_string(text): +def repr_html_from_abinit_string(text: str) -> str: """ Given a string `text` with an Abinit input file, replace all variables - with HTML links pointing to the official documentation. Return new string. + with HTML links pointing to the official documentation. + Return new string. """ var_database = get_abinit_variables() diff --git a/abipy/abio/decorators.py b/abipy/abio/decorators.py index 0a3ed5856..4e743abcb 100644 --- a/abipy/abio/decorators.py +++ b/abipy/abio/decorators.py @@ -1,16 +1,14 @@ # coding: utf-8 """Decorators for AbinitInput or MultiDataset objects.""" +from __future__ import annotations import abc import pymatgen.io.abinit.abiobjects as aobj from monty.json import MSONable -from pymatgen.util.serialization import pmg_serialize +from abipy.tools.serialization import pmg_serialize from abipy.flowtk.abiobjects import LdauParams, LexxParams from .inputs import AbinitInput, MultiDataset -import logging -logger = logging.getLogger(__file__) - class InputDecoratorError(Exception): """Error class raised by :class:`AbinitInputDecorator`.""" @@ -89,16 +87,17 @@ def _decorate(self, inp, deepcopy=True): class SpinDecorator(AbinitInputDecorator): """This decorator changes the spin polarization.""" + def __init__(self, spinmode, kptopt_ifspinor=4): self.spinmode = aobj.SpinMode.as_spinmode(spinmode) self.kptopt_ifspinor = kptopt_ifspinor @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return dict(spinmode=self.spinmode.as_dict(), kptopt_ifspinor=self.kptopt_ifspinor) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> SpinDecorator: return cls(aobj.SpinMode.from_dict(d["spinmode"]), kptopt_ifspinor=d["kptopt_ifspinor"]) def _decorate(self, inp, deepcopy=True): @@ -123,15 +122,16 @@ def _decorate(self, inp, deepcopy=True): class SmearingDecorator(AbinitInputDecorator): """This decorator changes the electronic smearing.""" + def __init__(self, smearing): self.smearing = aobj.Smearing.as_smearing(smearing) @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return {"smearing": self.smearing.as_dict()} @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> SmearingDecorator: return cls(aobj.Smearing.from_dict(d["smearing"])) def _decorate(self, inp, deepcopy=True): @@ -142,7 +142,8 @@ def _decorate(self, inp, deepcopy=True): class XcDecorator(AbinitInputDecorator): """Change the exchange-correlation functional.""" - def __init__(self, ixc): + + def __init__(self, ixc: int): """ Args: ixc: Abinit input variable @@ -154,7 +155,7 @@ def as_dict(self): return {"ixc": self.ixc} @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> XcDecorator: return cls(d["ixc"]) def _decorate(self, inp, deepcopy=True): @@ -169,6 +170,7 @@ def _decorate(self, inp, deepcopy=True): class LdaUDecorator(AbinitInputDecorator): """This decorator adds LDA+U parameters to an :class:`AbinitInput` object.""" + def __init__(self, symbols_luj, usepawu=1, unit="eV"): """ Args: @@ -179,11 +181,11 @@ def __init__(self, symbols_luj, usepawu=1, unit="eV"): self.symbols_luj, self.usepawu, self.unit = symbols_luj, usepawu, unit @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return dict(symbols_luj=self.symbols_luj, usepawu=self.usepawu, unit=self.unit) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> LdaUDecorator: return cls(**{k: v for k, v in d.items() if not k.startswith("@")}) def _decorate(self, inp, deepcopy=True): @@ -204,7 +206,8 @@ def _decorate(self, inp, deepcopy=True): class LexxDecorator(AbinitInputDecorator): - """This decorator add local exact exchange to an :class:`AbinitInput` object.""" + """This decorator add local exact exchange to a :class:`AbinitInput` object.""" + def __init__(self, symbols_lexx, exchmix=None): """ Args: @@ -219,11 +222,11 @@ def __init__(self, symbols_lexx, exchmix=None): self.symbols_lexx, self.exchmix = symbols_lexx, exchmix @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> LexxDecorator: return cls(**{k:v for k, v in d.items() if not k.startswith("@")}) @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return {"symbols_lexx": self.symbols_lexx, "exchmix": self.exchmix} def _decorate(self, inp, deepcopy=True): diff --git a/abipy/abio/enums.py b/abipy/abio/enums.py new file mode 100644 index 000000000..ae0f9cc27 --- /dev/null +++ b/abipy/abio/enums.py @@ -0,0 +1,95 @@ +""" +This module defines enumerators associated to important Abinit input variables +""" +from __future__ import annotations + +import enum + +class EnumMixin: + """Mixin for enums provides extra capabilities.""" + + @classmethod + def validate(cls, value) -> None: + """Validate value""" + values = [member.value for member in cls] + if value not in values: + raise ValueError(f"{value=} is not valid. Must be among: {values=}") + + +class StrEnum(str, enum.Enum): # StrEnum added in 3.11 + def __new__(cls, *args): + for arg in args: + if not isinstance(arg, (str, enum.auto)): + raise TypeError( + "Values of StrEnums must be strings: {} is a {}".format( + repr(arg), type(arg) + ) + ) + return super().__new__(cls, *args) + + def __str__(self): + return self.value + + # The first argument to this function is documented to be the name of the + # enum member, not `self`: + # https://docs.python.org/3.6/library/enum.html#using-automatic-values + def _generate_next_value_(name, *_): + return name + + +class RUNL(EnumMixin, enum.IntEnum): + """ + Values of optdriver corresponding to the different run-levels. See defs_basis.F90 + """ + GSTATE = 0 + RESPFN = 1 + SCREENING = 3 + SIGMA = 4 + NONLINEAR = 5 + GWR = 6 + EPH = 7 + WFK = 8 + RTTDDFT = 9 + GWLS = 66 + BSE = 99 + LONGWAVE = 10 + + def __str__(self): + return str(self.value) + + +class WFK_TASK(EnumMixin, enum.IntEnum): + """ + Integer flags defining the task to be performed in wfk_analyze. See defs_basis.F90 + """ + NONE = 0 + FULLBZ = 1 + CLASSIFY = 2 + PAW_AEPSI = 3 + EINTERP = 4 + DDK = 5 + DDK_DIAGO = 6 + OPTICS_FULLBZ = 7 + KPTS_ERANGE= 8 + CHECK_SYMTAB = 9 + + def __str__(self): + return str(self.value) + + +class GWR_TASK(EnumMixin, StrEnum): # StrEnum added in 3.11 + """ + String flags defining the task to be performed in the GWR code. + """ + HDIAGO = "HDIAGO" + HDIAGO_FULL = "HDIAGO_FULL" + CC4S = "CC4S" + CC4S_FULL = "CC4S_FULL" + G0W0 = "G0W0" + G0V = "G0V" + EGEW = "EGEW" + EGW0 = "EGW0" + G0EW = "G0EW" + RPA_ENERGY = "RPA_ENERGY" + GAMMA_GW = "GAMMA_GW" + CHI0 = "CHI0" diff --git a/abipy/abio/factories.py b/abipy/abio/factories.py index bb612e0b5..c776eacb1 100644 --- a/abipy/abio/factories.py +++ b/abipy/abio/factories.py @@ -1,17 +1,22 @@ # coding: utf-8 """Factory functions for Abinit input files """ +from __future__ import annotations + import numpy as np import pymatgen.io.abinit.abiobjects as aobj +import abipy.core.abinit_units as abu import abipy.abio.input_tags as atags from enum import Enum +from typing import Any from collections import namedtuple from monty.collections import AttrDict from monty.string import is_string from monty.json import jsanitize, MontyDecoder, MSONable -from pymatgen.util.serialization import pmg_serialize +from pymatgen.io.abinit.pseudos import PseudoTable from abipy.core.structure import Structure from abipy.abio.inputs import AbinitInput, MultiDataset +from abipy.tools.serialization import pmg_serialize __all__ = [ @@ -27,8 +32,12 @@ "piezo_elastic_inputs_from_gsinput", "scf_piezo_elastic_inputs", "scf_for_phonons", + "ddkpert_from_gsinput", + "ddepert_from_gsinput", + "dtepert_from_gsinput", "dte_from_gsinput", "dfpt_from_gsinput", + "minimal_scf_input", ] @@ -74,7 +83,7 @@ class ShiftMode(Enum): OneSymmetric = 'O' @classmethod - def from_object(cls, obj): + def from_object(cls, obj: Any) -> ShiftMode: """ Returns an instance of ShiftMode based on the type of object passed. Converts strings to ShiftMode depending on the iniital letter of the string. G for GammaCenterd, M for MonkhorstPack, S for Symmetric, O for OneSymmetric. @@ -88,15 +97,16 @@ def from_object(cls, obj): raise TypeError('The object provided is not handled: type %s' % type(obj)) -def _stopping_criterion(runlevel, accuracy): +def _stopping_criterion(runlevel: str, accuracy: str) -> dict: """Return the stopping criterion for this runlevel with the given accuracy.""" tolname = _runl2tolname[runlevel] return {tolname: getattr(_tolerances[tolname], accuracy)} -def _find_ecut_pawecutdg(ecut, pawecutdg, pseudos, accuracy): - """Return a |AttrDict| with the value of ``ecut`` and ``pawecutdg``.""" +def _find_ecut_pawecutdg(ecut, pawecutdg, pseudos, accuracy) -> AttrDict: + """Return an |AttrDict| with the value of ``ecut`` and ``pawecutdg``.""" # Get ecut and pawecutdg from the pseudo hints. + has_hints = False if ecut is None or (pawecutdg is None and any(p.ispaw for p in pseudos)): has_hints = all(p.has_hints for p in pseudos) @@ -115,7 +125,7 @@ def _find_ecut_pawecutdg(ecut, pawecutdg, pseudos, accuracy): return AttrDict(ecut=ecut, pawecutdg=pawecutdg) -def _find_scf_nband(structure, pseudos, electrons, spinat=None): +def _find_scf_nband(structure, pseudos, electrons, spinat=None) -> int: """Find the value of ``nband``.""" if electrons.nband is not None: return electrons.nband @@ -147,17 +157,46 @@ def _find_scf_nband(structure, pseudos, electrons, spinat=None): return int(nband) -def _get_shifts(shift_mode, structure): +def _find_nscf_nband_from_gsinput(gs_input: AbinitInput) -> int: + """ + Find the value of nband for a NSCF calculation based on the input of a previous gs calculation. + + Args: + gs_input (AbinitInput): the ground state input. + + Returns: + the value of nband. + """ + scf_nband = gs_input.get("nband") + if scf_nband is None: + occopt = gs_input.get("occopt", 1) + tsmear = gs_input.get("tsmear", 0.01) + smearing = aobj.Smearing(occopt, tsmear) + + # only nsppol is used in _find_scf_nband, so just set that with a meaningful value + nsppol = gs_input.get("nsppol", 1) + spin_mode = aobj.SpinMode(mode="test", nsppol=nsppol, nspinor=1, nspden=nsppol) + + charge = gs_input.get("charge", 0) + electrons = aobj.Electrons(spin_mode=spin_mode, smearing=smearing, charge=charge) + spinat = gs_input.get('spinat', None) + scf_nband = _find_scf_nband(gs_input.structure, gs_input.pseudos, electrons, spinat) + + return scf_nband + 10 + + +def _get_shifts(shift_mode: str, structure: Structure): """ Gives the shifts based on the selected shift mode and on the symmetry of the structure. + G: Gamma centered M: Monkhorst-Pack ((0.5, 0.5, 0.5)) S: Symmetric. Respects the chksymbreak with multiple shifts - O: OneSymmetric. Respects the chksymbreak with a single shift (as in 'S' if a single shift is given, gamma - centered otherwise. + O: OneSymmetric. Respects the chksymbreak with a single shift (as in 'S' if a single shift is given, + gamma-centered otherwise. - Note: for some cases (e.g. body centered tetragonal), both the Symmetric and OneSymmetric may fail to satisfy the - ``chksymbreak`` condition (Abinit input variable). + Note: for some cases (e.g. body centered tetragonal), both the Symmetric and OneSymmetric + may fail to satisfy the ``chksymbreak`` condition (Abinit input variable). """ if shift_mode == ShiftMode.GammaCentered: return ((0, 0, 0)) @@ -177,11 +216,11 @@ def _get_shifts(shift_mode, structure): raise ValueError("invalid shift_mode: `%s`" % str(shift_mode)) -def gs_input(structure, pseudos, +def gs_input(structure: Structure, pseudos, kppa=None, ecut=None, pawecutdg=None, scf_nband=None, accuracy="normal", spin_mode="polarized", - smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None): + smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None) -> AbinitInput: """ - Returns a |AbinitInput| for ground-state calculation. + Returns an |AbinitInput| for ground-state calculation. Args: structure: |Structure| object. @@ -199,17 +238,19 @@ def gs_input(structure, pseudos, scf_algorithm: Algorithm used for solving of the SCF cycle. """ multi = ebands_input(structure, pseudos, - kppa=kppa, ndivsm=0, - ecut=ecut, pawecutdg=pawecutdg, scf_nband=scf_nband, accuracy=accuracy, spin_mode=spin_mode, - smearing=smearing, charge=charge, scf_algorithm=scf_algorithm) + kppa=kppa, ndivsm=0, + ecut=ecut, pawecutdg=pawecutdg, scf_nband=scf_nband, + accuracy=accuracy, spin_mode=spin_mode, + smearing=smearing, charge=charge, scf_algorithm=scf_algorithm) return multi[0] -def ebands_input(structure, pseudos, +def ebands_input(structure: Structure, pseudos, kppa=None, nscf_nband=None, ndivsm=15, ecut=None, pawecutdg=None, scf_nband=None, accuracy="normal", spin_mode="polarized", - smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None, dos_kppa=None): + smearing="fermi_dirac:0.1 eV", charge=0.0, + scf_algorithm=None, dos_kppa=None) -> MultiDataset: """ Returns a |MultiDataset| object for band structure calculations. @@ -229,7 +270,7 @@ def ebands_input(structure, pseudos, spin_mode: Spin polarization. smearing: Smearing technique. charge: Electronic charge added to the unit cell. - scf_algorithm: Algorithm used for solving of the SCF cycle. + scf_algorithm: Algorithm used for solving the SCF cycle. dos_kppa: Scalar or List of integers with the number of k-points per atom to be used for the computation of the DOS (None if DOS is not wanted). """ @@ -288,7 +329,8 @@ def ebands_input(structure, pseudos, def ion_ioncell_relax_input(structure, pseudos, kppa=None, nband=None, ecut=None, pawecutdg=None, accuracy="normal", spin_mode="polarized", - smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None, shift_mode='Monkhorst-pack'): + smearing="fermi_dirac:0.1 eV", charge=0.0, + scf_algorithm=None, shift_mode='Monkhorst-pack') -> MultiDataset: """ Returns a |MultiDataset| for a structural relaxation. The first dataset optmizes the atomic positions at fixed unit cell. The second datasets optimizes both ions and unit cell parameters. @@ -304,33 +346,17 @@ def ion_ioncell_relax_input(structure, pseudos, charge: Electronic charge added to the unit cell. scf_algorithm: Algorithm used for the solution of the SCF cycle. """ - structure = Structure.as_structure(structure) - multi = MultiDataset(structure, pseudos, ndtset=2) - - # Set the cutoff energies. - multi.set_vars(_find_ecut_pawecutdg(ecut, pawecutdg, multi.pseudos, accuracy)) - - kppa = _DEFAULTS.get("kppa") if kppa is None else kppa - - shift_mode = ShiftMode.from_object(shift_mode) - shifts = _get_shifts(shift_mode, structure) - ksampling = aobj.KSampling.automatic_density(structure, kppa, chksymbreak=0, shifts=shifts) - electrons = aobj.Electrons(spin_mode=spin_mode, smearing=smearing, algorithm=scf_algorithm, - charge=charge, nband=nband, fband=None) - - if spin_mode == "polarized": - spinat_dict = multi[0].set_autospinat() - multi[1].set_vars(spinat_dict) - - if electrons.nband is None: - electrons.nband = _find_scf_nband(structure, multi.pseudos, electrons, multi[0].get('spinat', None)) + # Scf options + inp = scf_input(structure=structure, pseudos=pseudos, kppa=kppa, + ecut=ecut, pawecutdg=pawecutdg, nband=nband, + accuracy=accuracy, spin_mode=spin_mode, smearing=smearing, + charge=charge, scf_algorithm=scf_algorithm, shift_mode=shift_mode) + # Relaxation-specific options + multi = MultiDataset.replicate_input(inp, ndtset=2) ion_relax = aobj.RelaxationMethod.atoms_only(atoms_constraints=None) ioncell_relax = aobj.RelaxationMethod.atoms_and_cell(atoms_constraints=None) - multi.set_vars(electrons.to_abivars()) - multi.set_vars(ksampling.to_abivars()) - multi[0].set_vars(ion_relax.to_abivars()) multi[0].set_vars(_stopping_criterion("relax", accuracy)) @@ -342,8 +368,9 @@ def ion_ioncell_relax_input(structure, pseudos, def ion_ioncell_relax_and_ebands_input(structure, pseudos, kppa=None, nband=None, - ecut=None, pawecutdg=None, accuracy="normal", spin_mode="polarized", - smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None): + ecut=None, pawecutdg=None, accuracy="normal", + spin_mode="polarized", smearing="fermi_dirac:0.1 eV", + charge=0.0, scf_algorithm=None) -> MultiDataset: """ Returns a |MultiDataset| for a structural relaxation followed by a band structure run. The first dataset optimizes the atomic positions at fixed unit cell. @@ -383,12 +410,50 @@ def ion_ioncell_relax_and_ebands_input(structure, pseudos, return relax_multi + ebands_multi +def scr_from_nscfinput(nscf_input, nband=None, ecuteps=3.0, ecutwfn=None, inclvkb=2, w_type="RPA", + sc_mode="one_shot", hilbert=None, accuracy="normal") -> AbinitInput: + """Return a screening input.""" + scr_input = nscf_input.deepcopy() + scr_input.pop_irdvars() + if nband is None: + nband = nscf_input.get("nband") + screening = aobj.Screening(ecuteps, nband, w_type=w_type, sc_mode=sc_mode, + hilbert=hilbert, ecutwfn=ecutwfn, inclvkb=inclvkb) + + scr_input.set_vars(screening.to_abivars()) + scr_input.set_vars(_stopping_criterion("screening", accuracy)) # Dummy + + return scr_input + + +def sigma_from_inputs(nscf_input, scr_input, nband=None, ecutwfn=None, ecuteps=None, ecutsigx=None, + ppmodel="godby", gw_qprange=1, accuracy="normal") -> AbinitInput: + """Return a sigma input.""" + self_input = nscf_input.deepcopy() + self_input.pop_irdvars() + if nband is None: + nband = nscf_input.get("nband") + screening = aobj.Screening(ecuteps=scr_input["ecuteps"], nband=scr_input["nband"], + w_type="RPA", + sc_mode="one_shot", + hilbert=None, + ecutwfn=scr_input["ecutwfn"],) + ecuteps = ecuteps if ecuteps is not None else screening.ecuteps + self_energy = aobj.SelfEnergy(se_type="gw", sc_mode="one_shot", nband=nband, ecutsigx=ecutsigx, screening=screening, + gw_qprange=gw_qprange, ppmodel=ppmodel, ecuteps=ecuteps, ecutwfn=ecutwfn, gwpara=2) + + self_input.set_vars(self_energy.to_abivars()) + self_input.set_vars(_stopping_criterion("sigma", accuracy)) # Dummy + + return self_input + + def g0w0_with_ppmodel_inputs(structure, pseudos, kppa, nscf_nband, ecuteps, ecutsigx, ecut=None, pawecutdg=None, shifts=(0.0, 0.0, 0.0), accuracy="normal", spin_mode="polarized", smearing="fermi_dirac:0.1 eV", ppmodel="godby", charge=0.0, scf_algorithm=None, inclvkb=2, scr_nband=None, - sigma_nband=None, gw_qprange=1): + sigma_nband=None, gw_qprange=1) -> MultiDataset: """ Returns a |MultiDataset| object that performs G0W0 calculations with the plasmon pole approximation. @@ -422,61 +487,41 @@ def g0w0_with_ppmodel_inputs(structure, pseudos, """ structure = Structure.as_structure(structure) - multi = MultiDataset(structure, pseudos, ndtset=4) - - # Set the cutoff energies. - multi.set_vars(_find_ecut_pawecutdg(ecut, pawecutdg, multi.pseudos, accuracy)) - - scf_ksampling = aobj.KSampling.automatic_density(structure, kppa, chksymbreak=0, shifts=shifts) + # Scf input + # Note that kppa and shift_mode here are dummy as, they will be overwritten just after. + scf_inp = scf_input(structure=structure, pseudos=pseudos, kppa=kppa, + ecut=ecut, pawecutdg=pawecutdg, nband=None, accuracy=accuracy, + spin_mode=spin_mode, smearing=smearing, charge=charge, scf_algorithm=scf_algorithm, + shift_mode="Monkhorst-Pack") + ksampling = aobj.KSampling.automatic_density(structure, kppa, chksymbreak=0, shifts=shifts) + scf_inp.set_vars(ksampling.to_abivars()) + scf_inp.set_vars(istwfk="*1") + # The following is to keep the previous behavior + # - The spinat is not set + # - The number of bands is not adapted for spinat + # TODO: Should we consider changing that and update the reference files accordingly ? + scf_inp.pop_vars('spinat') scf_electrons = aobj.Electrons(spin_mode=spin_mode, smearing=smearing, algorithm=scf_algorithm, charge=charge, nband=None, fband=None) + nband = _find_scf_nband(structure, scf_inp.pseudos, scf_electrons) + scf_inp.set_vars(nband=nband) + # Non-Scf input + nscf_inp = nscf_from_gsinput(gs_input=scf_inp, nband=nscf_nband, accuracy=accuracy) + # Scr input + scr_inp = scr_from_nscfinput(nscf_input=nscf_inp, nband=scr_nband, ecuteps=ecuteps, ecutwfn=None, + inclvkb=inclvkb, w_type="RPA", sc_mode="one_shot", hilbert=None, accuracy="normal") + # Sigma input + sigma_inp = sigma_from_inputs(nscf_input=nscf_inp, scr_input=scr_inp, nband=sigma_nband, + ecutwfn=None, ecuteps=None, ecutsigx=ecutsigx, + ppmodel=ppmodel, gw_qprange=gw_qprange) - if scf_electrons.nband is None: - scf_electrons.nband = _find_scf_nband(structure, multi.pseudos, scf_electrons) - - multi[0].set_vars(scf_ksampling.to_abivars()) - multi[0].set_vars(scf_electrons.to_abivars()) - multi[0].set_vars(_stopping_criterion("scf", accuracy)) - - nscf_ksampling = aobj.KSampling.automatic_density(structure, kppa, chksymbreak=0, shifts=shifts) - nscf_electrons = aobj.Electrons(spin_mode=spin_mode, smearing=smearing, algorithm={"iscf": -2}, - charge=charge, nband=nscf_nband, fband=None) - - multi[1].set_vars(nscf_ksampling.to_abivars()) - multi[1].set_vars(nscf_electrons.to_abivars()) - multi[1].set_vars(_stopping_criterion("nscf", accuracy)) - # nbdbuf - - # Screening. - if scr_nband is None: scr_nband = nscf_nband - screening = aobj.Screening(ecuteps, scr_nband, w_type="RPA", sc_mode="one_shot", - hilbert=None, ecutwfn=None, inclvkb=inclvkb) - - multi[2].set_vars(nscf_ksampling.to_abivars()) - multi[2].set_vars(nscf_electrons.to_abivars()) - multi[2].set_vars(screening.to_abivars()) - multi[2].set_vars(_stopping_criterion("screening", accuracy)) # Dummy - - # Sigma. - if sigma_nband is None: sigma_nband = nscf_nband - self_energy = aobj.SelfEnergy("gw", "one_shot", sigma_nband, ecutsigx, screening, - gw_qprange=gw_qprange, ppmodel=ppmodel) - - multi[3].set_vars(nscf_ksampling.to_abivars()) - multi[3].set_vars(nscf_electrons.to_abivars()) - multi[3].set_vars(self_energy.to_abivars()) - multi[3].set_vars(_stopping_criterion("sigma", accuracy)) # Dummy - - # TODO: Cannot use istwfk != 1. - multi.set_vars(istwfk="*1") - - return multi + return MultiDataset.from_inputs([scf_inp, nscf_inp, scr_inp, sigma_inp]) def g0w0_convergence_inputs(structure, pseudos, kppa, nscf_nband, ecuteps, ecutsigx, scf_nband, ecut, accuracy="normal", spin_mode="polarized", smearing="fermi_dirac:0.1 eV", response_models=None, charge=0.0, scf_algorithm=None, inclvkb=2, - gw_qprange=1, gamma=True, nksmall=None, extra_abivars=None): + gw_qprange=1, gamma=True, nksmall=None, extra_abivars=None) -> MultiDataset: """ Returns a |MultiDataset| object to generate a G0W0 work for the given the material. See also :cite:`Setten2017`. @@ -629,7 +674,8 @@ def g0w0_convergence_inputs(structure, pseudos, kppa, nscf_nband, ecuteps, ecuts # sigma_nband = nscf_nband_nscf if 'cd' in response_models: - hilbert = aobj.HilbertTransform(nomegasf=100, domegasf=None, spmeth=1, nfreqre=None, freqremax=None, nfreqim=None, + hilbert = aobj.HilbertTransform(nomegasf=100, domegasf=None, spmeth=1, nfreqre=None, + freqremax=None, nfreqim=None, freqremin=None) scr_inputs = [] sigma_inputs = [] @@ -667,12 +713,12 @@ def g0w0_convergence_inputs(structure, pseudos, kppa, nscf_nband, ecuteps, ecuts return scf_inputs, nscf_inputs, scr_inputs, sigma_inputs -def bse_with_mdf_inputs(structure, pseudos, +def bse_with_mdf_inputs(structure: Structure, pseudos, scf_kppa, nscf_nband, nscf_ngkpt, nscf_shiftk, ecuteps, bs_loband, bs_nband, mbpt_sciss, mdf_epsinf, ecut=None, pawecutdg=None, exc_type="TDA", bs_algo="haydock", accuracy="normal", spin_mode="polarized", - smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None): + smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None) -> MultiDataset: """ Returns a |MultiDataset| object that performs a GS + NSCF + Bethe-Salpeter calculation. The self-energy corrections are approximated with the scissors operator. @@ -751,7 +797,7 @@ def bse_with_mdf_inputs(structure, pseudos, def scf_phonons_inputs(structure, pseudos, kppa, ecut=None, pawecutdg=None, scf_nband=None, accuracy="normal", spin_mode="polarized", - smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None): + smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None, qptopt=1) -> list[AbinitInput]: # TODO: Please check the unused variables in the function """ Returns a list of input files for performing phonon calculations. @@ -771,6 +817,7 @@ def scf_phonons_inputs(structure, pseudos, kppa, smearing: Smearing technique. charge: Electronic charge added to the unit cell. scf_algorithm: Algorithm used for solving of the SCF cycle. + qptopt: Option for the generation of q-points. Default: 1 """ # Build the input file for the GS run. gs_inp = AbinitInput(structure=structure, pseudos=pseudos) @@ -784,7 +831,7 @@ def scf_phonons_inputs(structure, pseudos, kppa, # Get the qpoints in the IBZ. Note that here we use a q-mesh with ngkpt=(4,4,4) and shiftk=(0,0,0) # i.e. the same parameters used for the k-mesh in gs_inp. - qpoints = gs_inp.abiget_ibz(ngkpt=(4, 4, 4), shiftk=(0, 0, 0), kptopt=1).points + qpoints = gs_inp.abiget_ibz(ngkpt=(4, 4, 4), shiftk=(0, 0, 0), kptopt=qptopt).points #print("get_ibz qpoints:", qpoints) # Build the input files for the q-points in the IBZ. @@ -828,7 +875,8 @@ def scf_phonons_inputs(structure, pseudos, kppa, def phonons_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, with_ddk=True, with_dde=True, with_bec=False, - ph_tol=None, ddk_tol=None, dde_tol=None, wfq_tol=None, qpoints_to_skip=None, manager=None): + ph_tol=None, ddk_tol=None, dde_tol=None, wfq_tol=None, + qpoints_to_skip=None, qptopt=1, manager=None): """ Returns a list of inputs in the form of a MultiDataset to perform phonon calculations, based on a ground state |AbinitInput|. @@ -839,7 +887,7 @@ def phonons_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, with_ddk=True, wit Args: gs_inp: an |AbinitInput| representing a ground state calculation, likely the SCF performed to get the WFK. ph_ngqpt: a list of three integers representing the gamma centered q-point grid used for the calculation. - If None and qpoint==None the ngkpt value present in the gs_input will be used. + If None and qpoint is None None, the ngkpt value present in the gs_input will be used. Incompatible with qpoints. qpoints: a list of coordinates of q points in reduced coordinates for which the phonon perturbations will be calculated. Incompatible with ph_ngqpt. @@ -861,6 +909,8 @@ def phonons_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, with_ddk=True, wit qpoints_to_skip: a list of coordinates of q points in reduced coordinates that will be skipped. Useful when calculating multiple grids for the same system to avoid duplicate calculations. If a DDB needs to be extended with more q points use e.g. ddb.qpoints.to_array(). + qptopt: Option for the generation of q-points. Default: 1 + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. """ gs_inp = gs_inp.deepcopy() @@ -896,7 +946,7 @@ def phonons_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, with_ddk=True, wit else: ph_ngqpt = np.array(ph_ngqpt) - qpoints = gs_inp.abiget_ibz(ngkpt=ph_ngqpt, shiftk=(0, 0, 0), kptopt=1, manager=manager).points + qpoints = gs_inp.abiget_ibz(ngkpt=ph_ngqpt, shiftk=(0, 0, 0), kptopt=qptopt, manager=manager).points if qpoints_to_skip: preserved_qpoints = [] @@ -955,7 +1005,7 @@ def phonons_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, with_ddk=True, wit def piezo_elastic_inputs_from_gsinput(gs_inp, ddk_tol=None, rf_tol=None, ddk_split=False, rf_split=False, - manager=None): + manager=None) -> MultiDataset: """ Returns a |MultiDataset| for performing elastic and piezoelectric constants calculations. GS input + the input files for the elastic and piezoelectric constants calculation. @@ -1043,7 +1093,7 @@ def piezo_elastic_inputs_from_gsinput(gs_inp, ddk_tol=None, rf_tol=None, ddk_spl def scf_piezo_elastic_inputs(structure, pseudos, kppa, ecut=None, pawecutdg=None, scf_nband=None, accuracy="normal", spin_mode="polarized", smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None, - ddk_tol=None, rf_tol=None, ddk_split=False, rf_split=False): + ddk_tol=None, rf_tol=None, ddk_split=False, rf_split=False) -> MultiDataset: """ Returns a |MultiDataset| for performing elastic and piezoelectric constants calculations. @@ -1088,7 +1138,7 @@ def scf_piezo_elastic_inputs(structure, pseudos, kppa, ecut=None, pawecutdg=None def scf_input(structure, pseudos, kppa=None, ecut=None, pawecutdg=None, nband=None, accuracy="normal", spin_mode="polarized", smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None, - shift_mode="Monkhorst-Pack"): + shift_mode="Monkhorst-Pack") -> AbinitInput: """ Returns an |AbinitInput| object for standard GS calculations. """ @@ -1121,55 +1171,140 @@ def scf_input(structure, pseudos, kppa=None, ecut=None, pawecutdg=None, nband=No return abinit_input -def ebands_from_gsinput(gsinput, nband=None, ndivsm=15, accuracy="normal"): +def ebands_from_gsinput(gs_input, nband=None, ndivsm=15, accuracy="normal", + projection=None) -> AbinitInput: """ Return an |AbinitInput| object to compute a band structure from a GS SCF input. Args: - gsinput: - nband: - ndivsm: - accuracy: + gs_input: the |AbinitInput| that was used to calculated the charge density. + nband: the number of bands to be used for the calculation. If None it will be + automatically generated. + ndivsm: Number of divisions used to sample the smallest segment of the k-path. + accuracy: Accuracy of the calculation. + projection: which projection should be performed. If None no projection, otherwise "l" or "lm" Return: |AbinitInput| """ # create a copy to avoid messing with the previous input - bands_input = gsinput.deepcopy() + bands_input = gs_input.deepcopy() bands_input.pop_irdvars() - nscf_ksampling = aobj.KSampling.path_from_structure(ndivsm, gsinput.structure) + nscf_ksampling = aobj.KSampling.path_from_structure(ndivsm, gs_input.structure) if nband is None: - nband = gsinput.get("nband", gsinput.structure.num_valence_electrons(gsinput.pseudos)) + 10 + nband = _find_nscf_nband_from_gsinput(gs_input) bands_input.set_vars(nscf_ksampling.to_abivars()) bands_input.set_vars(nband=nband, iscf=-2) bands_input.set_vars(_stopping_criterion("nscf", accuracy)) + if projection is None: + pass + elif projection == "l": + bands_input.set_vars(prtdos=3) + elif projection == "lm": + bands_input.set_vars(prtdos=3, prtdosm=1) + else: + raise ValueError(f"Unrecognized value for projection: {projection}") + return bands_input -def dos_from_gsinput(gsinput, dos_kppa, nband=None, accuracy="normal", pdos=False): +def nscf_from_gsinput(gs_input, kppa=None, nband=None, accuracy="normal", + shift_mode="Monkhorst-Pack") -> AbinitInput: + """ + Return an |AbinitInput| object to perform a NSCF calculation from a GS SCF input. + + Args: + gs_input: the |AbinitInput| that was used to calculated the charge density. + kppa: defines the kpt sampling used for the NSCF run. If None the kpoint sampling and + shifts will be the same as in the SCF input. + nband: the number of bands to be used for the calculation. If None it will be + automatically generated. + accuracy: accuracy of the calculation. + shift_mode: the mode to be used for the shifts. Options are "Gamma", "Monkhorst-Pack", + "Symmetric", "OneSymmetric". See ShiftMode object for more details. Only used if kppa + is not None. + Return: |AbinitInput| + """ # create a copy to avoid messing with the previous input - dos_input = gsinput.deepcopy() - dos_input.pop_irdvars() + nscf_input = gs_input.deepcopy() + nscf_input.pop_irdvars() - dos_ksampling = aobj.KSampling.automatic_density(dos_input.structure, dos_kppa, chksymbreak=0) - dos_input.set_vars(dos_ksampling.to_abivars()) - dos_input.set_vars(iscf=-2, ionmov=0) - dos_input.set_vars(_stopping_criterion("nscf", accuracy)) + if kppa is not None: + shift_mode = ShiftMode.from_object(shift_mode) + shifts = _get_shifts(shift_mode, gs_input.structure) + dos_ksampling = aobj.KSampling.automatic_density(nscf_input.structure, kppa, chksymbreak=0, shifts=shifts) + nscf_input.set_vars(dos_ksampling.to_abivars()) - if pdos: - # FIXME - raise NotImplementedError() + if nband is None: + nband = _find_nscf_nband_from_gsinput(gs_input) + + nscf_input.set_vars(nband=nband, iscf=-2) + nscf_input.set_vars(_stopping_criterion("nscf", accuracy)) + + return nscf_input + + +def dos_from_gsinput(gs_input, kppa=None, nband=None, accuracy="normal", dos_method="tetra", + projection="l", shift_mode="Monkhorst-Pack") -> AbinitInput: + """ + Return an |AbinitInput| object to perform a DOS calculation from a GS SCF input. + + Args: + gs_input: the |AbinitInput| that was used to calculated the charge density. + kppa: defines the kpt sampling used for the NSCF run. If None the kpoint sampling and + shifts will be the same as in the SCF input. + nband: the number of bands to be used for the calculation. If None it will be + automatically generated. + accuracy: accuracy of the calculation. + dos_method: method to calculate the DOS in abinit (NB: not the one used from postprocessing + in abipy). Set to "tetra" for the tetrahedron method (prtdos 2 or 3). If "smearing", + occopt and tsmear will be taken from gs_input else a "smearing-type: smearing value" + (prtdos 1 or 4). + projection: which projection should be performed. If None no projection, otherwise "l" or "lm" + shift_mode: the mode to be used for the shifts. Options are "Gamma", "Monkhorst-Pack", + "Symmetric", "OneSymmetric". See ShiftMode object for more details. Only used if kppa + is not None. + + Return: |AbinitInput| + """ + dos_input = nscf_from_gsinput(gs_input, kppa=kppa, nband=nband, accuracy=accuracy, shift_mode=shift_mode) + + if dos_method == "tetra": + if projection is None: + dos_input.set_vars(prtdos=2) + elif projection == "l": + dos_input.set_vars(prtdos=3) + elif projection == "lm": + dos_input.set_vars(prtdos=3, prtdosm=1) + else: + ValueError(f"Unrecognized value for projection: {projection}") + else: + if dos_method != "smearing": + smear_obj = aobj.Smearing.as_smearing(dos_method) + dos_input.set_vars(smear_obj.to_abivars()) + + if projection is None: + dos_input.set_vars(prtdos=1) + elif projection == "l": + dos_input.set_vars(prtdos=4) + elif projection == "lm": + raise ValueError("lm projection is only allowed for dos_method 'tetra'") + else: + ValueError(f"Unrecognized value for projection: {projection}") + + if projection is not None and "m" in projection.lower(): + dos_input.set_vars(prtdosm=1) return dos_input -def ioncell_relax_from_gsinput(gsinput, accuracy="normal"): +def ioncell_relax_from_gsinput(gs_input: AbinitInput, accuracy="normal") -> AbinitInput: - ioncell_input = gsinput.deepcopy() + ioncell_input = gs_input.deepcopy() ioncell_input.pop_irdvars() ioncell_relax = aobj.RelaxationMethod.atoms_and_cell(atoms_constraints=None) @@ -1179,9 +1314,10 @@ def ioncell_relax_from_gsinput(gsinput, accuracy="normal"): return ioncell_input -def hybrid_oneshot_input(gsinput, functional="hse06", ecutsigx=None, gw_qprange=1): +def hybrid_oneshot_input(gs_input: AbinitInput, + functional="hse06", ecutsigx=None, gw_qprange=1) -> AbinitInput: - hybrid_input = gsinput.deepcopy() + hybrid_input = gs_input.deepcopy() hybrid_input.pop_irdvars() functional = functional.lower() @@ -1203,16 +1339,16 @@ def hybrid_oneshot_input(gsinput, functional="hse06", ecutsigx=None, gw_qprange= ecut = hybrid_input['ecut'] ecutsigx = ecutsigx or 2*ecut - hybrid_input.set_vars(optdriver=4, gwcalctyp=gwcalctyp, gw_nstep=1, gwpara=2, icutcoul=icutcoul, rcut=rcut, + hybrid_input.set_vars(optdriver=4, gwcalctyp=gwcalctyp, gwpara=2, icutcoul=icutcoul, rcut=rcut, gw_qprange=gw_qprange, ecutwfn=ecut*0.995, ecutsigx=ecutsigx) return hybrid_input -def hybrid_scf_input(gsinput, functional="hse06", ecutsigx=None, gw_qprange=1): - - hybrid_input = hybrid_oneshot_input(gsinput=gsinput, functional=functional, ecutsigx=ecutsigx, gw_qprange=gw_qprange) +def hybrid_scf_input(gs_input: AbinitInput, + functional="hse06", ecutsigx=None, gw_qprange=1) -> AbinitInput: + hybrid_input = hybrid_oneshot_input(gs_input=gs_input, functional=functional, ecutsigx=ecutsigx, gw_qprange=gw_qprange) hybrid_input['gwcalctyp'] += 10 return hybrid_input @@ -1220,15 +1356,19 @@ def hybrid_scf_input(gsinput, functional="hse06", ecutsigx=None, gw_qprange=1): def scf_for_phonons(structure, pseudos, kppa=None, ecut=None, pawecutdg=None, nband=None, accuracy="normal", spin_mode="polarized", smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None, - shift_mode="Symmetric"): + shift_mode="Symmetric") -> AbinitInput: + + # add the band for nbdbuf, if needed + nbdbuf = 4 + if nband is not None: + nband += nbdbuf abiinput = scf_input(structure=structure, pseudos=pseudos, kppa=kppa, ecut=ecut, pawecutdg=pawecutdg, nband=nband, accuracy=accuracy, spin_mode=spin_mode, smearing=smearing, charge=charge, scf_algorithm=scf_algorithm, shift_mode=shift_mode) - nbdbuf = 4 - # with no smearing set the minimum number of bands plus some nbdbuf - if smearing is None: + # with no bands set and no smearing the minimum number of bands plus some nbdbuf + if nband is None and smearing is None: nval = structure.num_valence_electrons(pseudos) nval -= abiinput['charge'] nband = int(round(nval / 2) + nbdbuf) @@ -1239,9 +1379,85 @@ def scf_for_phonons(structure, pseudos, kppa=None, ecut=None, pawecutdg=None, nb return abiinput +def ddkpert_from_gsinput(gs_input, ddk_pert, nband=None, use_symmetries=False, ddk_tol=None, manager=None) -> AbinitInput: + """ + Returns an |AbinitInput| to perform a DDK calculations for a specific perturbation based on a ground state |AbinitInput|. -def dte_from_gsinput(gs_inp, use_phonons=True, ph_tol=None, ddk_tol=None, dde_tol=None, - skip_dte_permutations=False, manager=None): + Args: + gs_input: an |AbinitInput| representing a ground state calculation, likely the SCF performed to get the WFK. + ddk_pert: dict with the Abinit variables defining the perturbation + Example: {'idir': 1, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}, + use_symmetries: boolean that determines if the irreducible components of the perturbation are used. + Default to False. (TODO: Should be implemented) + ddk_tol: a dictionary with a single key defining the type of tolerance used for the DDK calculations and its value. + Default: {"tolvrs": 1.0e-22}. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + gs_input = gs_input.deepcopy() + gs_input.pop_irdvars() + gs_input.pop_vars(['autoparal', 'npfft']) + + if ddk_tol is None: + ddk_tol = {"tolwfr": 1.0e-22} + + ddk_inp = gs_input.make_ddkpert_input(perturbation=ddk_pert, use_symmetries=use_symmetries, tolerance=ddk_tol, manager=manager) + + # TODO: add to see how it behaves wrt nband from atomate2 + #if nband is None: + # nband = _find_nscf_nband_from_gsinput(gs_input) + + #ddk_inp.set_vars(nband=nband) + + return ddk_inp + + +def ddepert_from_gsinput(gs_input, dde_pert, use_symmetries=True, dde_tol=None, manager=None) -> AbinitInput: + """ + Returns an |AbinitInput| to perform a DDE calculations for a specific perturbation based on a ground state |AbinitInput|. + + Args: + gs_input: an |AbinitInput| representing a ground state calculation, likely the SCF performed to get the WFK. + dde_pert: dict with the Abinit variables defining the perturbation + Example: {'idir': 1, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}, + use_symmetries: boolean that determines if the irreducible components of the perturbation are used. + Default to True. Should be set to False for nonlinear coefficients calculation. + dde_tol: a dictionary with a single key defining the type of tolerance used for the DDE calculations and + its value. Default: {"tolvrs": 1.0e-22}. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + gs_input = gs_input.deepcopy() + gs_input.pop_irdvars() + gs_input.pop_vars(['autoparal', 'npfft']) + + if dde_tol is None: + dde_tol = {"tolvrs": 1.0e-22} + + dde_inp = gs_input.make_ddepert_input(perturbation=dde_pert, use_symmetries=use_symmetries, tolerance=dde_tol, manager=manager) + + return dde_inp + + +def dtepert_from_gsinput(gs_input, dte_pert, manager=None) -> AbinitInput: + """ + Returns an |AbinitInput| to perform a DTE calculations for a specific perturbation based on a ground state |AbinitInput|. + + Args: + gs_input: an |AbinitInput| representing a ground state calculation, likely the SCF performed to get the WFK. + dte_pert: dict with the Abinit variables defining the perturbation + Example: {'idir': 1, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}, + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + gs_input = gs_input.deepcopy() + gs_input.pop_irdvars() + gs_input.pop_vars(['autoparal', 'npfft']) + + dte_inp = gs_input.make_dtepert_input(perturbation=dte_pert, manager=manager) + + return dte_inp + + +def dte_from_gsinput(gs_input, use_phonons=True, ph_tol=None, ddk_tol=None, dde_tol=None, + skip_dte_permutations=False, manager=None) -> MultiDataset: """ Returns a list of inputs in the form of a |MultiDataset| to perform calculations of non-linear properties, based on a ground state AbinitInput. @@ -1250,7 +1466,7 @@ def dte_from_gsinput(gs_inp, use_phonons=True, ph_tol=None, ddk_tol=None, dde_to All of them have the tag "dfpt". Args: - gs_inp: an |AbinitInput| representing a ground state calculation, likely the SCF performed to get the WFK. + gs_input: an |AbinitInput| representing a ground state calculation, likely the SCF performed to get the WFK. use_phonons: determine wether the phonon perturbations at gamma should be included or not ph_tol: a dictionary with a single key defining the type of tolerance used for the phonon calculations and its value. Default: {"tolvrs": 1.0e-22}. @@ -1263,8 +1479,8 @@ def dte_from_gsinput(gs_inp, use_phonons=True, ph_tol=None, ddk_tol=None, dde_to duplicated outputs. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. """ - gs_inp = gs_inp.deepcopy() - gs_inp.pop_irdvars() + gs_input = gs_input.deepcopy() + gs_input.pop_irdvars() if ph_tol is None: ph_tol = {"tolvrs": 1.0e-22} @@ -1277,27 +1493,27 @@ def dte_from_gsinput(gs_inp, use_phonons=True, ph_tol=None, ddk_tol=None, dde_to multi = [] - multi_ddk = gs_inp.make_ddk_inputs(tolerance=ddk_tol) + multi_ddk = gs_input.make_ddk_inputs(tolerance=ddk_tol) multi_ddk.add_tags(atags.DDK) multi.extend(multi_ddk) - multi_dde = gs_inp.make_dde_inputs(dde_tol, use_symmetries=False, manager=manager) + multi_dde = gs_input.make_dde_inputs(dde_tol, use_symmetries=False, manager=manager) multi_dde.add_tags(atags.DDE) multi.extend(multi_dde) if use_phonons: - multi_ph = gs_inp.make_ph_inputs_qpoint([0,0,0], ph_tol, manager=manager) + multi_ph = gs_input.make_ph_inputs_qpoint([0, 0, 0], ph_tol, manager=manager) multi_ph.add_tags(atags.PH_Q_PERT) multi.extend(multi_ph) # non-linear calculations do not accept more bands than those in the valence. Set the correct values. # Do this as last, so not to interfere with the the generation of the other steps. - nval = gs_inp.structure.num_valence_electrons(gs_inp.pseudos) - nval -= gs_inp['charge'] + nval = gs_input.structure.num_valence_electrons(gs_input.pseudos) + nval -= gs_input['charge'] nband = int(round(nval / 2)) - gs_inp.set_vars(nband=nband) - gs_inp.pop('nbdbuf', None) - multi_dte = gs_inp.make_dte_inputs(phonon_pert=use_phonons, skip_permutations=skip_dte_permutations, - manager=manager) + gs_input.set_vars(nband=nband) + gs_input.pop('nbdbuf', None) + multi_dte = gs_input.make_dte_inputs(phonon_pert=use_phonons, skip_permutations=skip_dte_permutations, + manager=manager) multi_dte.add_tags(atags.DTE) multi.extend(multi_dte) @@ -1309,7 +1525,7 @@ def dte_from_gsinput(gs_inp, use_phonons=True, ph_tol=None, ddk_tol=None, dde_to def dfpt_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, do_ddk=True, do_dde=True, do_strain=True, do_dte=False, ph_tol=None, ddk_tol=None, dde_tol=None, wfq_tol=None, strain_tol=None, - skip_dte_permutations=False, manager=None): + skip_dte_permutations=False, manager=None) -> MultiDataset: """ Returns a list of inputs in the form of a MultiDataset to perform a set of calculations based on DFPT including phonons, elastic and non-linear properties. Requires a ground state |AbinitInput| as a starting point. @@ -1319,7 +1535,7 @@ def dfpt_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, do_ddk=True, do_dde=T "scf", "ddk", "dde", "nscf", "ph_q_pert", "strain", "dte", "dfpt". N.B. Currently (version 8.8.3) anaddb does not support a DDB containing both 2nd order derivatives with qpoints - different from gamma AND 3rd oreder derivatives. The calculations could be run, but the global DDB will not + different from gamma AND 3rd order derivatives. The calculations could be run, but the global DDB will not be directly usable as is. Args: @@ -1412,6 +1628,155 @@ def dfpt_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, do_ddk=True, do_dde=T return multi +def conduc_from_inputs(scf_input, nscf_input, tmesh, ddb_ngqpt, eph_ngqpt_fine, sigma_erange, + boxcutmin=1.1, mixprec=1) -> MultiDataset: + """ + Returns a list of inputs in the form of a MultiDataset to perform a set of calculations to determine conductivity. + This part require a ground state |AbinitInput| and a non self-consistent |AbinitInput|. You will also need + a work to get DDB and DVDB since |ConducWork| needs these files. + + Args: + scf_input: |AbinitInput| representing a ground state calculation, the SCF performed to get the WFK. + nscf_input: |AbinitInput| representing a nscf ground state calculation, the NSCF performed to get the WFK. + most parameters for subsequent tasks will be taken from this inputs. + tmesh: The mesh of temperature (in Kelvin) where we calculate the conductivity. + ddb_ngqpt: the coarse grid of q-points used to compute the DDB and DVDB files in the previous phonon_work. + eph_ngqpt_fine: the fine grid of q-points used for the Fourier nterpolation. + boxcutmin: For the last task only, 1.1 is often used to decrease memory and is faster over the Abinit default of 2. + mixprec: For the last task only, 1 is often used to make the EPH calculation faster. Note that Abinit default is 0. + """ + # Create a MultiDataset from scf input + multi = MultiDataset.from_inputs([scf_input]) + + # Add 2 times the nscf input at the end of the MultiDataset + extension = MultiDataset.replicate_input(nscf_input, 2) + multi.extend(extension) + + # Modify the second nscf input to get a task that interpolate the DVDB + #multi[2].pop_vars("iscf") + #multi[2].set_vars(irdden=0, optdriver=7, + # ddb_ngqpt=ddb_ngqpt, + # eph_task=5, + # eph_ngqpt_fine=eph_ngqpt_fine) + + # Modify the third nscf input to get a conductivity task + multi[2].pop_vars("iscf") + multi[2].set_vars(irdden=0, + optdriver=7, + ddb_ngqpt=ddb_ngqpt, + eph_ngqpt_fine=eph_ngqpt_fine, + eph_task=-4, + tmesh=tmesh, + sigma_erange=sigma_erange, + boxcutmin=boxcutmin, + mixprec=mixprec) + + return multi + + +def conduc_kerange_from_inputs(scf_input, nscf_input, tmesh, ddb_ngqpt, eph_ngqpt_fine, + sigma_ngkpt, sigma_erange, sigma_kerange=None, epad=0.25*abu.eV_Ha, + einterp=(1, 5, 0, 0), boxcutmin=1.1, mixprec=1) -> MultiDataset: + """ + Returns a list of inputs in the form of a MultiDataset to perform a set of calculations to determine the conductivity. + This part require a ground state |AbinitInput| and a non self-consistent |AbinitInput|. You will also need + a work to get DDB and DVDB since |ConducWork| needs these files. + + Args: + scf_input: |AbinitInput| representing a ground state calculation, the SCF performed to get the WFK. + nscf_input: |AbinitInput| representing a nscf ground state calculation, the NSCF performed to get the WFK. + most parameters for subsequent tasks will be taken from this inputs. + ddb_ngqpt: the coarse q-point grid used to get the DDB and DVDB files. + eph_ngqpt_fine: the fine qpoints grid that will be interpolated. + sigma_ngkpt: The fine grid of kpt inside the sigma interval + sigma_erange: The energy range for Sigma_nk + sigma_kerange: The energy window for the WFK generation (should be larger than sigma_erange). Can be specified directly + or determined from epad, if sigma_kerange is None. + epad: Additional energy range to sigma_erange to determine sigma_kerange automatically. + einterp: The interpolation used. By default it is a star-function interpolation. + boxcutmin: For the last task only, 1.1 is often used to decrease memory and is faster over the Abinit default of 2. + mixprec: For the last task only, 1 is often used to make the EPH calculation faster. Note that Abinit default is 0. + """ + # Create a MultiDataset from scf input + multi = MultiDataset.from_inputs([scf_input]) + + # Add 4 times the nscf input at the end of the MultiDataset + extension = MultiDataset.replicate_input(nscf_input, 4) + multi.extend(extension) + + # If sigma_kerange is None, we determine it automatically based on epad + # We have to consider semiconductors and metals, electrons and holes + if sigma_kerange is None: + h_range = sigma_erange[0] + e_range = sigma_erange[1] + sigma_kerange = [h_range, e_range] + if h_range < 0: + sigma_kerange[0] -= epad + if e_range < 0: + sigma_kerange[1] -= epad + if h_range > 0: + sigma_kerange[0] += epad + if e_range > 0: + sigma_kerange[1] += epad + + # Modify the second nscf input to get a task that calculate the kpt in the sigma interval (Kerange.nc file) + multi[2].set_vars(optdriver=8, wfk_task='"wfk_kpts_erange"', kptopt=1, + sigma_ngkpt=sigma_ngkpt, einterp=einterp, sigma_erange=sigma_kerange) + + # Modify the third nscf input to get a task that add the kpt of Kerange.nc to the WFK file + multi[3].set_vars(optdriver=0, iscf=-2, kptopt=0, ddb_ngqpt=ddb_ngqpt) + + # Modify the fourth nscf input to get a task that interpolate the DVDB + #multi[4].pop_vars("iscf") + #multi[4].set_vars(irdden=0, optdriver=7, + # ddb_ngqpt=ddb_ngqpt, + # eph_task=5, + # eph_ngqpt_fine=eph_ngqpt_fine) + + # Modify the third nscf input to get a conductivity task + multi[4].pop_vars("iscf") + multi[4].set_vars(irdden=0, + optdriver=7, + ddb_ngqpt=ddb_ngqpt, + eph_ngqpt_fine=eph_ngqpt_fine, + eph_task=-4, + tmesh=tmesh, + sigma_erange=sigma_erange, + ngkpt=sigma_ngkpt, + boxcutmin=boxcutmin, + mixprec=mixprec) + + return multi + + +def minimal_scf_input(structure: Structure, pseudos) -> AbinitInput: + """ + Provides an input for a calculation with the minimum possible requirements. + Can be used to execute abinit with minimal requirements when needing files + that are produced only after a full calculation completes. + In general this will contain 1 kpt, 1 band, very low cutoff, no polarization, + no smearing. Disables checks on primitive cell and symmetries. + Even for large system it will require small memory allocations and few seconds to execute. + + Args: + structure: |Structure| object. + pseudos: List of filenames or list of |Pseudo| objects or |PseudoTable| object. + """ + inp = scf_input(structure, pseudos, smearing=None, spin_mode="unpolarized") + inp["ngkpt"] = [1, 1, 1] + inp["nshiftk"] = 1 + inp["shiftk"] = [[0, 0, 0]] + inp["nstep"] = 0 + inp["ecut"] = 3 # should be reasonable, otherwise abinit raises an error + inp["nband"] = 1 + inp["chkprim"] = 0 + inp["chksymbreak"] = 0 + inp["maxnsym"] = 100000 # to be able to deal with supercells + inp["charge"] = structure.num_valence_electrons(inp.pseudos) - 1 + inp["boxcutmin"] = 1.2 + return inp + + #FIXME if the pseudos are passed as a PseudoTable the whole table will be serialized, # it would be better to filter on the structure elements class InputFactory(MSONable): @@ -1446,12 +1811,12 @@ def build_input(self, previous_input=None): return abiinput @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: # sanitize to avoid numpy arrays and serialize MSONable objects return jsanitize(dict(args=self.args, kwargs=self.kwargs), strict=True) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict): dec = MontyDecoder() return cls(*dec.process_decoded(d['args']), **dec.process_decoded(d['kwargs'])) diff --git a/abipy/abio/inputs.py b/abipy/abio/inputs.py index 15059592d..5c0a31cc0 100644 --- a/abipy/abio/inputs.py +++ b/abipy/abio/inputs.py @@ -1,7 +1,8 @@ """ This module defines objects to facilitate the creation of ABINIT input files. -The syntax is similar to the one used in ABINIT with small differences. """ +from __future__ import annotations + import os import collections import itertools @@ -9,27 +10,33 @@ import time import abc import json +import tempfile +import tarfile import numpy as np +import pandas as pd import abipy.abio.input_tags as atags from collections import OrderedDict from collections.abc import MutableMapping +from typing import Any, Union, Iterable, Iterator from monty.collections import dict2namedtuple from monty.string import is_string, list_strings from monty.json import MontyDecoder, MSONable from pymatgen.core.units import Energy -from pymatgen.util.serialization import pmg_serialize from pymatgen.symmetry.bandstructure import HighSymmKpath from abipy.tools.numtools import is_diagonal from abipy.core.structure import Structure from abipy.core.mixins import Has_Structure from abipy.core.kpoints import has_timrev_from_kptopt +from abipy.tools.serialization import pmg_serialize from abipy.abio.variable import InputVariable -from abipy.abio.abivars import is_abivar, is_anaddb_var -from abipy.abio.abivars_db import get_abinit_variables +from abipy.abio.abivars import is_abivar, is_anaddb_var, format_string_abivars +from abipy.abio.abivars_db import get_abinit_variables, get_anaddb_variables +from abipy.tools import duck from abipy.flowtk import PseudoTable, Pseudo, AbinitTask, AnaddbTask, ParalHintsParser, NetcdfReader from abipy.flowtk.abiinspect import yaml_read_irred_perts from abipy.flowtk import abiobjects as aobj +from .enums import RUNL, WFK_TASK, GWR_TASK import logging logger = logging.getLogger(__file__) @@ -37,8 +44,9 @@ # List of Abinit variables used to specify the structure. # This variables should not be passed to set_vars since -# they will be generated with structure.to_abivars() -GEOVARS = set([ +# they will be automatically generated by calling structure.to_abivars() + +GEOVARS = { "acell", "rprim", "rprimd" @@ -50,31 +58,31 @@ "typat", "ntypat", "natom", -]) +} # Variables defining tolerances (used in pop_tolerances) -_TOLVARS = set([ +_TOLVARS = { 'toldfe', 'tolvrs', 'tolwfr', 'tolrff', "toldff", - "tolimg", # ? + "tolimg", # ? "tolmxf", "tolrde", -]) +} -# Variables defining tolerances for the SCF cycle that are mutally exclusive -_TOLVARS_SCF = set([ +# Variables defining tolerances for the SCF cycle (mutually exclusive). +_TOLVARS_SCF = { 'toldfe', 'tolvrs', 'tolwfr', 'tolrff', "toldff", -]) +} # Variables determining if data files should be read in input -_IRDVARS = set([ +_IRDVARS = { "irdbseig", "irdbsreso", "irdhaydock", @@ -89,8 +97,15 @@ "irdwfk", "irdwfkfine", "irdwfq", - "ird1wf", -]) + "ird1wf" +} + +# variable and default values of the prefix used in abipy +_DATA_PREFIX = { + "indata_prefix": "indata/in", + "tmpdata_prefix": "tmpdata/tmp", + "outdata_prefix": "outdata/out", +} # FIXME __mul__ operator in pymatgen should allow for grouping atoms by individual cells # The present version group by image. @@ -103,66 +118,121 @@ # raise ValueError("Don't know how to reallocate variable %s" % str(name)) + + class AbstractInput(MutableMapping, metaclass=abc.ABCMeta): """ - Abstract class defining the methods that must be implemented by Input objects. + Abstract class defining the methods that must be implemented by Input classes. """ - # ABC protocol: __delitem__, __getitem__, __iter__, __len__, __setitem__ - def __delitem__(self, key): + # ABC protocol + def __delitem__(self, key: str): return self.vars.__delitem__(key) - def __getitem__(self, key): + def __getitem__(self, key: str): return self.vars.__getitem__(key) def __iter__(self): return self.vars.__iter__() - def __len__(self): + def __len__(self) -> int: return len(self.vars) - def __setitem__(self, key, value): + def __setitem__(self, key: str, value: Any): self._check_varname(key) return self.vars.__setitem__(key, value) - def __repr__(self): + def __repr__(self) -> str: return "<%s at %s>" % (self.__class__.__name__, id(self)) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def write(self, filepath="run.abi"): + def write(self, filepath: str = "run.abi", files_file: bool = False) -> None: """ - Write the input file to file to ``filepath``. + Write the input file to file ``filepath``. """ dirname = os.path.dirname(os.path.abspath(filepath)) if not os.path.exists(dirname): os.makedirs(dirname) - # Write the input file. with open(filepath, "wt") as fh: - fh.write(str(self)) + fh.write(self.to_string(files_file=files_file)) + + def make_targz(self, tarname: str = "input.tar.gz", **kwargs) -> str: + """ + Build targz file with the Abinit input and the associated pseudos. + Return path to the targz file. + """ + back = os.getcwd() + tmpdir = tempfile.mkdtemp() + os.chdir(tmpdir) + + name = os.path.join(tmpdir, tarname) + with tarfile.open(name=name, mode='w:gz', **kwargs) as tar: + filepath = "run.abi" + self.write(filepath=filepath) + tar.add(filepath) + + if hasattr(self, "pseudos"): + for pseudo in self.pseudos: + tar.add(pseudo.filepath, arcname=pseudo.basename) + + for dirname in ("indata", "tmpdata", "outdata"): + #print("Adding dir:", dirname) + os.mkdir(dirname) + p = os.path.join(dirname, "__empty__") + with open(p, "wt") as fh: + fh.write("Empty placeholder") + tar.add(p) + + os.chdir(back) + return name def deepcopy(self): """Deep copy of the input.""" return copy.deepcopy(self) - def set_vars(self, *args, **kwargs): + def set_vars(self, *args, **kwargs) -> dict: """ - Set the value of the variables. - Return dict with the variables added to the input. + Set the value of the variables. Accept also comment="string" + Return: dict with the variables added to the input. - Example: + .. Example:: input.set_vars(ecut=10, ionmov=3) """ kwargs.update(dict(*args)) + + # handle comment + comment = kwargs.pop("comment", None) + if comment is not None: + self.set_comment(comment) + for varname, varvalue in kwargs.items(): self[varname] = varvalue + + # Just to make life easier to the user, we update some dimensions + # if only the "array" part with shape (dimname, 3) is given in input. + vname_dimname = [ + # arr_name, dim_name + ("shiftk", "nshiftk"), + ("ph_qpath", "ph_nqpath"), + ("kptgw", "nkptgw"), + ] + + for vname, dimname in vname_dimname: + if vname in kwargs: + try: + # e.g. self["nshiftk"] = len(np.reshape(self["shiftk"], (-1, 3))) + self[dimname] = len(np.reshape(self[vname], (-1, 3))) + except ValueError as exc: + raise ValueError(f"Wrong value for variable: `{vname}`, value: `{self[vname]}`") from exc + return kwargs - def set_vars_ifnotin(self, *args, **kwargs): + def set_vars_ifnotin(self, *args, **kwargs) -> dict: """ - Set the value of the variables but only if the variable is not already present. + Set the value of the variables only if the variable is not already present. Return dict with the variables added to the input. Example: @@ -173,25 +243,26 @@ def set_vars_ifnotin(self, *args, **kwargs): added = {} for varname, varvalue in kwargs.items(): if varname not in self: - self[varname] = varvalue added[varname] = varvalue - return added - def pop_vars(self, keys): + return self.set_vars(**added) + + def pop_vars(self, keys: list[str]) -> dict: """ Remove the variables listed in keys. Return dictionary with the variables that have been removed. - Unlike remove_vars, no exception is raised if the variables are not in the input. + Unlike ``remove_vars``, no exception is raised if the variables are not in the input. Args: keys: string or list of strings with variable names. Example: + inp.pop_vars(["ionmov", "optcell", "ntime", "dilatmx"]) """ return self.remove_vars(keys, strict=False) - def remove_vars(self, keys, strict=True): + def remove_vars(self, keys: Union[Iterable[str], str], strict: bool = True) -> dict: """ Remove the variables listed in keys. Return dictionary with the variables that have been removed. @@ -210,16 +281,16 @@ def remove_vars(self, keys, strict=True): return removed @abc.abstractproperty - def vars(self): - """Dictionary with the input variables. Used to implement dict-like interface.""" + def vars(self) -> dict: + """Dictionary with the input variables. Used to implement the dict-like interface.""" @abc.abstractmethod - def _check_varname(self, key): + def _check_varname(self, key) -> None: """Check if key is a valid name. Raise self.Error if not valid.""" @abc.abstractmethod - def to_string(self): - """Returns a string with the input.""" + def to_string(self, files_file: bool = False) -> str: + """Returns string with the input.""" def generate(self, **kwargs): """ @@ -240,10 +311,11 @@ def generate(self, **kwargs): for inp_ecut in gs_inpt.generate(ecut=[10, 20], nsppol=[1, 2]): print("do something with inp_ecut %s" % inp_ecut) """ + # TODO: Is this method still used? for new_vars in product_dict(kwargs): new_inp = self.deepcopy() # Remove the variable names to avoid annoying warnings if the variable is overwritten. - new_inp.remove_vars(new_vars.keys()) + new_inp.remove_vars(list(new_vars.keys())) new_inp.set_vars(**new_vars) yield new_inp @@ -254,7 +326,7 @@ class AbiAbstractInput(AbstractInput): associated to Abinit executables. """ - def add_abiobjects(self, *abi_objects): + def add_abiobjects(self, *abi_objects) -> dict: """ This function receive a list of ``AbiVarable`` objects and add the corresponding variables to the input. @@ -271,11 +343,11 @@ def abivalidate(self, workdir=None, manager=None): """ This method should invoke the executable associated to the input object. to test whether the input variables are correct and consistent. - The executable is supposed to implemente some sort of `--dry-run` option - that invokes the parser to validate the input and exits. + The executable is supposed to implement some sort of `--dry-run` option + that invokes the parser to validate the input and exits immediately. Args: - workdir: Working directory of the fake task used to compute the ibz. Use None for temporary dir. + workdir: Working directory of the fake task used to compute the IBZ. Use None for temporary dir. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. Return: @@ -288,7 +360,6 @@ def abivalidate(self, workdir=None, manager=None): task: Task object """ - class AbinitInputError(Exception): """Base error class for exceptions raised by ``AbinitInput``.""" @@ -299,11 +370,17 @@ class AbinitInput(AbiAbstractInput, MSONable, Has_Structure): .. rubric:: Inheritance Diagram .. inheritance-diagram:: AbinitInput + + The name of methods that invoke the Abinit executable to extact dimensions and + additional quantities such as list of q-points, perturbations, etc + start with the `abiget_` prefix. """ + Error = AbinitInputError - def __init__(self, structure, pseudos, pseudo_dir=None, comment=None, decorators=None, abi_args=None, - abi_kwargs=None, tags=None): + def __init__(self, structure, pseudos, + pseudo_dir=None, comment=None, decorators=None, abi_args=None, + abi_kwargs=None, tags=None, enforce_znucl=None, enforce_typat=None): """ Args: structure: Parameters defining the crystalline structure. Accepts |Structure| object @@ -318,11 +395,15 @@ def __init__(self, structure, pseudos, pseudo_dir=None, comment=None, decorators abi_args: list of tuples (key, value) with the initial set of variables. Default: Empty abi_kwargs: Dictionary with the initial set of variables. Default: Empty tags: list/set of tags describing the input + enforce_znucl: Use this value of `znucl` (ntypat entries) when converting the structure to Abinit variables. + Mainly used when we are running calculations that need to read external files + with an ordering of the types that differ from the one used by AbiPy that is based on the first + occurrence of the element in structure.sites. + enforce_typat: Use this value of `typat` (natom array) when converting the structure to Abinit variables. + Requires `enforce_typat`. """ self._spell_check = True - # Internal dict with variables. we use an ordered dict so that - # variables will be likely grouped by `topics` when we fill the input. abi_args = [] if abi_args is None else abi_args for key, value in abi_args: self._check_varname(key) @@ -333,15 +414,13 @@ def __init__(self, structure, pseudos, pseudo_dir=None, comment=None, decorators args = list(abi_args)[:] args.extend(list(abi_kwargs.items())) - #print(args) self._vars = OrderedDict(args) - self.set_structure(structure) - if pseudo_dir is not None: + if pseudo_dir: pseudo_dir = os.path.abspath(pseudo_dir) - if not os.path.exists(pseudo_dir): raise self.Error("Directory %s does not exist" % pseudo_dir) + if not os.path.exists(pseudo_dir): raise self.Error("Directory `%s` does not exist" % pseudo_dir) pseudos = [os.path.join(pseudo_dir, p) for p in list_strings(pseudos)] try: @@ -354,12 +433,53 @@ def __init__(self, structure, pseudos, pseudo_dir=None, comment=None, decorators self._decorators = [] if not decorators else decorators[:] self.tags = set() if not tags else set(tags) - def variable_checksum(self): + self.enforce_znucl_and_typat(enforce_znucl, enforce_typat) + + # Note that pseudos **must** be sorted according to znucl. + # Here we reorder the pseudos if the initial order is wrong. + + if enforce_znucl is not None: + znucl = self.enforce_znucl + else: + znucl = [specie.number for specie in self.structure.species_by_znucl] + + ord_pseudos = [] + for z in znucl: + for p in self.pseudos: + if p.Z == z: + ord_pseudos.append(p) + break + else: + raise ValueError("Cannot find pseudo with znucl %s in pseudos:\n%s" % (z, self.pseudos)) + + self._pseudos = ord_pseudos + + def enforce_znucl_and_typat(self, znucl, typat): + """ + These arrays are used to enforce a particular value of `znucl` and `typat` when writing the Abinit input file + This trick may be useful if the ordering of the types based on the sites in the structure does not + match the one used to produce other input file such as DDB/DVDB. + The ordering indeed changed ... + + znucl[ntypat] = + typat[natom] = Fortran convention. Start to count from 1. + """ + self.enforce_znucl = znucl + self.enforce_typat = typat + if znucl is None and typat is None: return + + # Consistency check + if len(typat) != len(self.structure): + raise ValueError("typat contains %d entries while it should be natom: %d" % (len(typat), len(self.structure))) + + ntypat = self.structure.n_elems + if len(znucl) != ntypat: + raise ValueError("znucl contains %d entries while it should be ntypat: %d" % (len(znucl), ntypat)) + + def variable_checksum(self) -> str: """ Return string with sha1 value in hexadecimal format. - This method is mainly used in unit tests to check the invariance - of the input objects. Note, indeed, that AbintInput is mutable and therefore - should not be used as keyword in dictionaries. + This method is mainly used in unit tests to check the invariance of the input objects """ # Use sha1 from hashlib because python builtin hash is not deterministic # (hash is version- and machine-dependent) @@ -371,7 +491,7 @@ def tos(s): # Add key, values to sha1 # (not sure this is code is portable: roundoff errors and conversion to string) - # We could just compute the hash from the keys (hash equality does not necessarily imply __eq__!) + # We may just compute the hash from the keys (hash equality does not necessarily imply __eq__!) for key in sorted(self.keys()): value = self[key] if isinstance(value, np.ndarray): value = value.tolist() @@ -393,68 +513,102 @@ def tos(s): return sha1.hexdigest() @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: """ JSON interface used in pymatgen for easier serialization. """ - #vars = OrderedDict() - # Use a list of (key, value) to serialize the OrderedDict abi_args = [] for key, value in self.items(): if isinstance(value, np.ndarray): value = value.tolist() abi_args.append((key, value)) + pseudo_dicts = [p.as_dict() for p in self.pseudos] + + # replace absolute machine dependent filepaths with REPO prefix + relative path + # if we are using one of the "official" tables. + from abipy.flowtk.psrepos import encode_pseudopath + for d in pseudo_dicts: + d["filepath"] = encode_pseudopath(d["filepath"]) + return dict(structure=self.structure.as_dict(), - pseudos=[p.as_dict() for p in self.pseudos], + pseudos=pseudo_dicts, comment=self.comment, decorators=[dec.as_dict() for dec in self.decorators], abi_args=abi_args, - tags=list(self.tags)) + tags=list(self.tags), + enforce_znucl=self.enforce_znucl, + enforce_typat=self.enforce_typat, + ) @property - def vars(self): + def vars(self) -> dict[str, Any]: + """Dictionary with variables.""" return self._vars + @property + def is_multidataset(self) -> bool: + """Used to understand if we have an AbinitInput or a MultiDataset in polymorphic APIs.""" + return False + + @property + def is_input(self) -> bool: + """Used to understand if we have an AbinitInput or a MultiDataset in polymorphic APIs.""" + return True + @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> AbinitInput: """ JSON interface used in pymatgen for easier serialization. """ + # TODO: We may replace abi_args with abi_kwargs to facilitate MongoDB queries + # and render the document more readable. At the time, we decided to use abi_args + # because the order is preserved but with py2.7 there's no need for this. + # Similar changes may be done in AnaddbInput. + + # First of all, let's check if are using a pseudo whose filepath is given + # in the form: REPO prefix + relative path and convert it to an absolute + # path on this machine. NB: I'm assuming the the PS REPO is already installed. + # else from_file will fail. + from abipy.flowtk.psrepos import decode_pseudopath + for pseudo_dict in d["pseudos"]: + pseudo_dict["filepath"] = decode_pseudopath(pseudo_dict["filepath"]) + pseudos = [Pseudo.from_file(p['filepath']) for p in d['pseudos']] dec = MontyDecoder() + return cls(d["structure"], pseudos, decorators=dec.process_decoded(d["decorators"]), - comment=d["comment"], abi_args=d["abi_args"], tags=d["tags"]) + comment=d["comment"], abi_args=d["abi_args"], tags=d["tags"], + enforce_znucl=d.get("enforce_znucl", None), + enforce_typat=d.get("enforce_typat", None), + ) - def __setitem__(self, key, value): + def __setitem__(self, key: str, value: Any): + """Implements: self[key] = value""" if key in _TOLVARS_SCF and hasattr(self, '_vars') and any(t in self._vars and t != key for t in _TOLVARS_SCF): logger.info("Replacing previously set tolerance variable: {0}." .format(self.remove_vars(_TOLVARS_SCF, strict=False))) return super().__setitem__(key, value) - def _check_varname(self, key): + def _check_varname(self, key: str) -> None: + """Check whether key is a valid (and allowed) variable name""" if key in GEOVARS: - raise self.Error("You cannot set the value of a variable associated to the structure.\n" + raise self.Error("You cannot set the value of a variable associated to the crystalline structure.\n" "Use Structure objects to prepare the input file.") if self.spell_check and not is_abivar(key): raise self.Error(""" -Cannot find variable `%s` in internal database. -If you think this is not a typo, use: +Cannot find variable `%s` in the internal database. If you believe this is not a typo, use: input.set_spell_check(False) to disable spell checking. Perhaps the internal database is not in synch with the Abinit version you are using. Please contact the AbiPy developers.""" % key) - #def __eq__(self, other) - #def __ne__(self, other) - # return not self.__eq__(other) - @property def runlevel(self): """ - A set of strings defining the type of run of the current input. + A set of strings defining the calculation type. """ optdriver = self.get("optdriver") @@ -465,7 +619,9 @@ def runlevel(self): optdriver = 0 runlevel = set() + if optdriver == 0: + # GS run runlevel.add(atags.GROUND_STATE) iscf = self.get("iscf", 17 if self.pseudos[0].ispaw else 7) ionmov = self.get("ionmov", 0) @@ -477,7 +633,7 @@ def runlevel(self): runlevel.add(atags.BANDS) else: runlevel.add(atags.SCF) - elif ionmov in (2, 3, 4, 5, 7, 10, 11, 20): + elif ionmov in (2, 3, 4, 5, 7, 10, 11, 20, 22): runlevel.add(atags.RELAX) if optcell == 0: runlevel.add(atags.ION_RELAX) @@ -485,7 +641,9 @@ def runlevel(self): runlevel.add(atags.IONCELL_RELAX) elif ionmov in [1, 6, 8, 9, 12, 13, 14, 23]: runlevel.add(atags.MOLECULAR_DYNAMICS) + elif optdriver == 1: + # DFPT run. runlevel.add(atags.DFPT) rfelfd = self.get("rfelfd") rfphon = self.get("rfphon") @@ -500,33 +658,45 @@ def runlevel(self): runlevel.add(atags.PH_Q_PERT) elif self.get("rfstrs ") > 0: runlevel.add(atags.STRAIN) + elif optdriver == 3: + # SCR run. runlevel.update([atags.MANY_BODY, atags.SCREENING]) + elif optdriver == 4: + # SIGMA run. gwcalctyp = self.get("gwcalctyp") if int(gwcalctyp) > 100: runlevel.add(atags.HYBRID) else: runlevel.update([atags.MANY_BODY, atags.SIGMA]) + + elif optdriver == 5: + # DTE run. + runlevel.add(atags.DFPT) + runlevel.add(atags.DTE) + elif optdriver == 99: + # BSE run runlevel.update([atags.MANY_BODY, atags.BSE]) return runlevel @property - def decorators(self): + def decorators(self) -> list: + """List of decorators.""" return self._decorators - def register_decorator(self, decorator): + def register_decorator(self, decorator) -> None: """Register a :class:`AbinitInputDecorator`.""" self._decorators.append(decorator) - def set_mnemonics(self, boolean): + def set_mnemonics(self, boolean: bool) -> None: """True if mnemonics should be printed""" self._mnemonics = bool(boolean) @property - def mnemonics(self): + def mnemonics(self) -> bool: """Return True if mnemonics should be printed""" try: return self._mnemonics @@ -534,26 +704,24 @@ def mnemonics(self): return False @property - def uses_ktimereversal(self): + def uses_ktimereversal(self) -> bool: """ True if time-reversal symmetry is used to generate k-points in the IBZ. """ return has_timrev_from_kptopt(self.get("kptopt", 1)) - def set_spell_check(self, false_or_true): + def set_spell_check(self, false_or_true: bool) -> None: """Activate/Deactivate spell-checking""" self._spell_check = bool(false_or_true) @property - def spell_check(self): + def spell_check(self) -> bool: """True if spell checking is activated.""" - try: - return self._spell_check - except AttributeError: # TODO: This is to maintain compatibility with pickle - return False + return self._spell_check def to_string(self, sortmode="section", post=None, with_mnemonics=False, mode="text", - with_structure=True, with_pseudos=True, exclude=None, verbose=0): + with_structure=True, with_pseudos=True, exclude=None, verbose=0, + files_file=False) -> str: r""" String representation. @@ -572,14 +740,15 @@ def to_string(self, sortmode="section", post=None, with_mnemonics=False, mode="t with_structure: False if section with structure variables should not be printed. with_pseudos: False if JSON section with pseudo data should not be added. exclude: List of variable names that should be ignored. + files_file: if True a string compatible with the presence of a files file + will be generated. Otherwise all the required variables will be added + to the string. """ if mode == "html": import html - def escape(text): return html.escape(text, quote=True) else: - def escape(text): return text @@ -606,10 +775,17 @@ def escape(text): keys = [k for k, v in self.items() if k not in exclude and v is not None] if sortmode == "a": keys = sorted(keys) - # Extract the items from the dict and add the geo variables at the end + # Extract the items from the dict and add the files file and geo variables at the end items = [(k, self[k]) for k in keys] + + if not files_file: + for k, v in _DATA_PREFIX.items(): + if k not in self: + items.append((k, v)) + items.extend(list(self.pseudos_abivars.items())) + if with_structure: - items.extend(list(self.structure.to_abivars().items())) + items.extend(list(self.structure_abivars.items())) for name, value in items: if mnemonics and value is not None: @@ -618,47 +794,65 @@ def escape(text): # Build variable, convert to string and append it vname = name + post if mode == "html": vname = var_database[name].html_link(label=vname) + value = format_string_abivars(vname, value, "abinit") app(str(InputVariable(vname, value))) elif sortmode == "section": # Group variables by section. # Get dict mapping section_name --> list of variable names belonging to the section. - keys = [k for (k, v) in self.items() if k not in exclude and v is not None] + vars = dict(self) + if not files_file: + for k, v in _DATA_PREFIX.items(): + if k not in vars: + vars[k] = v + vars.update(self.pseudos_abivars.items()) + + keys = [k for (k, v) in vars.items() if k not in exclude and v is not None] sec2names = var_database.group_by_varset(keys) w = 46 for sec, names in sec2names.items(): app(w * "#") - app("####" + ("SECTION: %s" % sec).center(w - 1)) + #app("####" + ("SECTION: %s" % sec).center(w - 1)) + app("####" + ("SECTION: %s" % sec).center(w - 1).rstrip()) app(w * "#") for name in names: - value = self[name] + value = vars[name] if mnemonics and value is not None: + #print(f"{name=}") app(escape("#### <" + var_database[name].mnemonics + ">")) # Build variable, convert to string and append it vname = name + post if mode == "html": vname = var_database[name].html_link(label=vname) - + value = format_string_abivars(vname, value, "abinit") app(str(InputVariable(vname, value))) if with_structure: app(w * "#") - app("####" + ("STRUCTURE").center(w - 1)) + #app("####" + "STRUCTURE".center(w - 1)) + app("####" + "STRUCTURE".center(w - 1).rstrip()) app(w * "#") - for name, value in self.structure.to_abivars().items(): + #print("abivars keys:", self.structure_abivars.keys()) + for name, value in self.structure_abivars.items(): if mnemonics and value is not None: app(escape("#### <" + var_database[name].mnemonics + ">")) vname = name + post if mode == "html": vname = var_database[name].html_link(label=vname) + #print(f"{vname=}, {value=}") app(str(InputVariable(vname, value))) else: raise ValueError("Unsupported value for sortmode %s" % str(sortmode)) + def to_html(string): + string = string.replace("\n", "
") + # insert text inside div so that we can style it. + return f'
\n{string}\n
' + s = "\n".join(lines) if not with_pseudos: - return s if mode != "html" else s.replace("\n", "
") + return s if mode != "html" else to_html(s) # Add JSON section with pseudo potentials. ppinfo = ["\n\n\n#"] @@ -667,33 +861,74 @@ def escape(text): ppinfo.append("") s += escape("\n#".join(ppinfo)) - if mode == "html": s = s.replace("\n", "
") + if mode == "html": s = to_html(s) return s - def _repr_html_(self): + def _repr_html_(self) -> str: """Integration with jupyter notebooks.""" return self.to_string(sortmode="section", with_mnemonics=False, mode="html", with_structure=True, with_pseudos=False) @property - def comment(self): + def structure_abivars(self) -> dict: + """ + A dictionary with the abivars related to the structure. + """ + kws = dict(enforce_znucl=self.enforce_znucl, enforce_typat=self.enforce_typat) + return self.structure.to_abivars(**kws) + + @property + def pseudos_abivars(self) -> dict: + """ + A dictionary with the abivars related to the pseudopotentials extracted from + the path of the internal pseudopotentials. Empty if pseudopotential + related variables are already defined. + """ + if self.get("pseudos") or self.get("pp_dirpath"): + return {} + znucl = self.structure_abivars["znucl"] + sorted_paths = [] + for z in znucl: + for p in self.pseudos: + if p.Z == z: + sorted_paths.append(p.filepath) + break + else: + raise ValueError(f"Missing pseudo for znucl {z}") + + if len(sorted_paths) > 1: + common_path = os.path.commonpath(sorted_paths) + relative_paths = [os.path.relpath(p, common_path) for p in sorted_paths] + abivars = dict( + pp_dirpath=common_path, + pseudos=relative_paths, + ) + else: + abivars = dict(pseudos=sorted_paths[0]) + + return abivars + + @property + def comment(self) -> Union[str, None]: """Optional string with comment. None if comment is not set.""" try: return self._comment except AttributeError: return None - def set_comment(self, comment): + def set_comment(self, comment: str) -> None: """Set a comment to be included at the top of the file.""" self._comment = comment + if not self._comment.startswith("#"): + self._comment = "# " + self._comment @property - def structure(self): + def structure(self) -> Structure: """The |Structure| object associated to this input.""" return self._structure - def set_structure(self, structure): + def set_structure(self, structure: Any) -> Structure: """Set structure.""" self._structure = Structure.as_structure(structure) @@ -704,8 +939,115 @@ def set_structure(self, structure): return self._structure + def replicate(self, ndtset: int) -> MultiDataset: + """ + Helper function to construct a |Multidataset| with ndtset datasets from an |AbinitInput|. + """ + return MultiDataset.replicate_input(self, ndtset) + + def _check_nsppol_nspinor(self, nsppol: int, nspinor: int) -> None: + """ + Internal function to check consistency between nsppol and nspinor provided by the user. + Raises: AbinitInputError if inconsistent values. + """ + errors = [] + eapp = errors.append + + if nsppol not in (1, 2): + eapp(f"nsppol should be either 1 or 2 while it is: {nsppol}") + + if nspinor == 1: + if nsppol not in (1, 2): + eapp(f"nsppol should be 1 or 2 when nspinor == 2 while it is: {nsppol}") + + elif nspinor == 2: + if nsppol != 1: eapp(f"nsppol must be 1 when nspinor == 1 while it is: {nsppol}") + nspden = self.get("nspden", None) + if nspden is not None and nspden not in (1, 4): + eapp(f"nspden should be either 1 or 4 when nspinor == 2 while it is: {nspden}") + else: + eapp(f"Invalid {nspinor=}") + + if errors: + raise self.Error("\n".join(errors)) + + ######################################################################## # Helper functions to facilitate the specification of several variables. - def set_kmesh(self, ngkpt, shiftk, kptopt=1): + ######################################################################## + + def set_cutoffs_for_accuracy(self, accuracy: str) -> dict: + """ + Set the value of ecut and pawecutdg (if PAW) using the hints reported in the pseudos. + Raises ``AbinitInputError`` if pseudos do not provide hints. + In the case of PAW, pawecutdg is either taken from the hints or computed from the recommended + value of ecut using a scaling factor that depends on ``accuracy``. + + Args: + accuracy: + + Return: Dictionary with variables. + """ + ecut, pawecutdg = 0.0, 0.0 + has_paw = 0 + for pseudo in self.pseudos: + hint = pseudo.hint_for_accuracy(accuracy) + if hint.ecut <= 0: + raise self.Error(f"Pseudo {repr(pseudo)} does not provide hints for ecut!") + ecut = max(ecut, hint.ecut) + if pseudo.ispaw: + has_paw += 1 + pawecutdg = max(pawecutdg, hint.pawecutdg) + + if has_paw and pawecutdg == 0.0: + fact = {"low": 1.0, "normal": 1.5, "high": 2}[accuracy] + pawecutdg = fact * ecut + + d = dict(ecut=ecut) + if has_paw: d.update(pawecutdg=pawecutdg) + return self.set_vars(**d) + + def set_scf_nband_semicond(self, nsppol=1, nspinor=1, nspden=1, charge=0.0, spinat=None) -> dict: + """ + Set electronic pararameters, smearing options and compute ``nband`` for a GS-SCF run. + assuming a semiconductor. See set_scf_nband. + Return dict with variables. + """ + return self.set_scf_nband(nsppol=nsppol, nspinor=nspinor, nspden=nspden, + occopt=1, tsmear=0.0, charge=0.0, spinat=None) + + def set_scf_nband(self, nsppol: int, nspinor: int, nspden: int, + occopt: int, tsmear: float, charge: float, spinat) -> dict: + """ + Set electronic pararameters, smearing options and compute ``nband`` for a GS-SCF run. + Return dict with variables. + + Args: + nsppol: Number of spins. + nspinor: Number of spinor components. + nspden: Number of spin density components. + occopt: Occoputation option. + tsmear: Electronic smearing. + charge: Extra charge. + spinat: If None and nsppol 2, spinat is automatically computed. + """ + self._check_nsppol_nspinor(nsppol, nspinor) + spin_mode = aobj.SpinMode(mode="test", nsppol=nsppol, nspinor=nspinor, nspden=nsppol) + smearing = aobj.Smearing(occopt, tsmear) + + scf_electrons = aobj.Electrons(spin_mode=spin_mode, smearing=smearing, algorithm=None, + charge=charge, nband=None, fband=None) + + if nsppol == 2 and spinat is None: + self.set_autospinat() + spinat = self["spinat"] + + from abipy.abio.factories import _find_scf_nband + nband = _find_scf_nband(self.structure, self.pseudos, scf_electrons, spinat=spinat) + return self.set_vars(nsppol=nsppol, nspinor=nspinor, nspden=nspden, + occopt=occopt, tsmear=tsmear, charge=charge, + nband=nband, spinat=spinat) + + def set_kmesh(self, ngkpt, shiftk, kptopt: int = 1) -> dict: """ Set the variables for the sampling of the BZ. @@ -717,11 +1059,11 @@ def set_kmesh(self, ngkpt, shiftk, kptopt=1): shiftk = np.reshape(shiftk, (-1, 3)) return self.set_vars(ngkpt=ngkpt, kptopt=kptopt, nshiftk=len(shiftk), shiftk=shiftk) - def set_gamma_sampling(self): + def set_gamma_sampling(self) -> dict: """Gamma-only sampling of the BZ.""" return self.set_kmesh(ngkpt=(1, 1, 1), shiftk=(0, 0, 0)) - def set_autokmesh(self, nksmall, kptopt=1): + def set_autokmesh(self, nksmall: int, kptopt: int = 1) -> dict: """ Set the variables (ngkpt, shift, kptopt) for the sampling of the BZ. @@ -733,7 +1075,7 @@ def set_autokmesh(self, nksmall, kptopt=1): return self.set_vars(ngkpt=self.structure.calc_ngkpt(nksmall), kptopt=kptopt, nshiftk=len(shiftk), shiftk=shiftk) - def get_ngkpt_shiftk(self): + def get_ngkpt_shiftk(self) -> tuple: """ Return info on the k-point sampling from the input file, more specifically a tuple with nkgpt and shift. @@ -756,7 +1098,7 @@ def get_ngkpt_shiftk(self): return ngkpt, shiftk - def set_phdos_qmesh(self, nqsmall, method="tetra", ph_qshift=(0, 0, 0)): + def set_phdos_qmesh(self, nqsmall, method="tetra", ph_qshift=(0, 0, 0)) -> dict: """ Set the variables (ngkpt, shift, kptopt) for the computation of the Phonon DOS in Abinit. Remember that the Phdos is computed via Fourier interpolation so there's no constraint @@ -764,7 +1106,7 @@ def set_phdos_qmesh(self, nqsmall, method="tetra", ph_qshift=(0, 0, 0)): Args: nqsmall: Number of k-points used to sample the smallest lattice vector. - method: gaussian or tetra. + method: "gaussian" or "tetra". ph_qshift: Shift for the mesh. """ # q-mesh for Fourier interpolatation of IFC and a2F(w) @@ -784,28 +1126,38 @@ def set_phdos_qmesh(self, nqsmall, method="tetra", ph_qshift=(0, 0, 0)): ph_nqshift=len(ph_qshift), ) - def set_kpath(self, ndivsm, kptbounds=None, iscf=-2): + def set_kpath(self, ndivsm: int, kptbounds=None, iscf=-2) -> dict: """ - Set the variables for the computation of the electronic band structure. + Set the variables for the NSCF computation of the electronic band structure. Args: - ndivsm: Number of divisions for the smallest segment. + ndivsm: + if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. + This option is the recommended one if the k-path contains two consecutive + high symmetry k-points that are very close as ndivsm > 0 may produce + a very large number of wavevectors. kptbounds: k-points defining the path in k-space. If None, we use the default high-symmetry k-path defined in the pymatgen database. """ - if kptbounds is None: kptbounds = self.structure.calc_kptbounds() - kptbounds = np.reshape(kptbounds, (-1, 3)) #self.pop_vars(["ngkpt", "shiftk"]) ?? - return self.set_vars(kptbounds=kptbounds, kptopt=-(len(kptbounds) - 1), ndivsm=ndivsm, iscf=iscf) + if ndivsm > 0: + if kptbounds is None: kptbounds = self.structure.calc_kptbounds() + kptbounds = np.reshape(kptbounds, (-1, 3)) + return self.set_vars(kptbounds=kptbounds, kptopt=-(len(kptbounds) - 1), ndivsm=ndivsm, iscf=iscf) + else: + kpts = kpoints_from_line_density(self.structure, abs(ndivsm)) + return self.set_vars(kptopt=0, nkpt=len(kpts), kpt=kpts, iscf=iscf) - def set_qpath(self, ndivsm, qptbounds=None): + def set_qpath(self, ndivsm: int, qptbounds=None) -> dict: """ Set the variables for the computation of the phonon band structure - and phonon linewidths. + and phonon linewidths in the EPH part. Args: - ndivsm: Number of divisions for the smallest segment. + ndivsm: Number of divisions for the smallest segment in the q-path. qptbounds: q-points defining the path in q-space. If None, we use the default high-symmetry q-path defined in the pymatgen database. """ @@ -814,14 +1166,14 @@ def set_qpath(self, ndivsm, qptbounds=None): return self.set_vars(ph_ndivsm=ndivsm, ph_nqpath=len(qptbounds), ph_qpath=qptbounds) - def set_kptgw(self, kptgw, bdgw): + def set_kptgw(self, kptgw, bdgw) -> dict: """ - Set the variables (k-points, bands) for the computation of GW corrections. + Set the variables (k-points, bands) and nkptgw for the computation of self-energy matrix elements. Args: kptgw: List of k-points in reduced coordinates. bdgw: Specifies the range of bands for the GW corrections. - Accepts iterable that be reshaped to (nkptgw, 2) + Accepts iterable that can be reshaped as (nkptgw, 2) or a tuple of two integers if the extrema are the same for each k-point. """ kptgw = np.reshape(kptgw, (-1,3)) @@ -830,7 +1182,7 @@ def set_kptgw(self, kptgw, bdgw): return self.set_vars(kptgw=kptgw, nkptgw=nkptgw, bdgw=np.reshape(bdgw, (nkptgw, 2))) - def set_spin_mode(self, spin_mode): + def set_spin_mode(self, spin_mode) -> dict: """ Set the variables used to the treat the spin degree of freedom. Return dictionary with the variables that have been removed. @@ -849,10 +1201,10 @@ def set_spin_mode(self, spin_mode): self.add_abiobjects(aobj.SpinMode.as_spinmode(spin_mode)) return old_vars - def set_autospinat(self, default=0.6): + def set_autospinat(self, default=0.6) -> dict: """ - Set the variable spinat for collinear calculation in the format (0, 0, m) with the value of m determined - with the following order of preference: + Set the variable spinat for collinear calculations in the format (0, 0, m) + with the value of m determined with the following order of preference: 1. If the site of the structure has a magmom setting, that is used. 2. If the species on the site has a spin setting, that is used. @@ -885,7 +1237,7 @@ def set_autospinat(self, default=0.6): for site in self.structure: if hasattr(site, 'magmom'): spinat.append((0., 0., site.magmom)) - elif hasattr(site.specie, 'spin'): + elif hasattr(site.specie, 'spin') and site.specie.spin: spinat.append((0., 0., site.specie.spin)) elif str(site.specie) in magmom_mp_conf: spinat.append((0., 0., magmom_mp_conf.get(str(site.specie)))) @@ -894,41 +1246,172 @@ def set_autospinat(self, default=0.6): return self.set_vars(spinat=spinat) + def set_spinat_from_symbols(self, symb2spinat: dict, default=(0, 0, 0)) -> dict: + """ + Set spinat parameters from a dictionary mapping chemical simbol to spinat value. + If an element in the structure is not present in symb2luj, default is used. + + Example: + + symb2spinat = {"Eu": [0, 0, 7]} + inp.set_spinat_from_symbols(symb2spinat) + """ + spinat = [] + for site in self.structure: + m = symb2spinat.get(site.species_string, default) + spinat.append(np.reshape(m, (3,))) + + # Use "*" Abinit syntax to shorten a bit the string by grouping repeated magnetization + # vectors e.g. 0 0 0 0 0 0 0 0 7 --> 9*0 0 0 7 + # TODO: This piece of code can be encapsulate in a more genering function + natom = len(self.structure) + np.reshape(spinat, (natom, 3)) + stack = [[spinat[0], 1]] + for iat in range(1, natom): + vec = spinat[iat] + if np.all(vec == stack[-1][0]) and np.all(vec == vec[0]): + stack[-1][1] += 1 + else: + stack.append([vec, 1]) + + s = "" + for item in stack: + vec, count = item + if count > 1: + assert np.all(vec == vec[0]) + s += f"{count*len(vec)}*{vec[0]} " + else: + s += f"{vec[0]} {vec[1]} {vec[2]} " + #print(s) + + return self.set_vars(spinat=s) + + def set_usepawu(self, usepawu, symb2luj, units="eV") -> dict: + """ + Set DFT+U parameters for PAW calculations. + + Args: + usepawu: Option specifying the DFT+U flavor (Abinit input variable). + symb2luj: Dictionary mapping chemical symbol to the values of `lpawu`, `upawu` and `jpawu`. + If an element in the structure is not present in symb2luj, the U+J term is automatically + disabled for this element. In other words, only the element on which U+J should be applied + must be speficied. + units: Energy units for U and J. Note that defaultis eV although ABINIT uses Hartree by default! + + Example: + + symb2luj = {"Eu": {"lpawu": 3, "upawu": 7, "jpawu": 0.7} + inp.set_luj(symb2luj) + """ + lpawu, upawu, jpawu = [], [], [] + + for element in self.structure.species_by_znucl: + d = symb2luj.get(element.name, None) + if d is None: + lpawu.append(-1) + upawu.append(0) + jpawu.append(0) + else: + lpawu.append(d["lpawu"]) + upawu.append(d["upawu"]) + jpawu.append(d["jpawu"]) + + # Add units. + upawu.append(units) + jpawu.append(units) + + return self.set_vars(usepawu=usepawu, lpawu=lpawu, upawu=upawu, jpawu=jpawu) + + def set_kmesh_nband_and_occ(self, ngkpt, shiftk, nsppol, occ1k_spin, + nspinor=1, kptopt=1, occopt=2) -> dict: + """ + Helper function to set occupancies when occopt == 2 + + Args: + ngkpt: Divisions of the k-mesh. + shiftk: Shifts in reduced coordinates. + nsppol: Spin polarization (Abinit input variable). + occ1k_spin: List of `nppols` strings with the occupations for a single kpoint and + the spin_up, spin_down channels if nsppol is 2. + nspinor: + kptopt: + occopt: + """ + self._check_nsppol_nspinor(nsppol, nspinor) + + # Call Abinit to get the list of irreducible k-points. + #from abipy.core.kpoints import IrredZone + #ibz = IrredZone.from_ngkpt(self.structure, ngkpt, shiftk, kptopt=kptopt, spin_mode=spin_mode) + #nkpt = len(ibz) + + d = self.set_kmesh(ngkpt, shiftk, kptopt=kptopt) + d.update(self.set_vars(nspinor=nspinor, nsppol=nsppol, occopt=occopt)) + ibz = self.abiget_ibz() + nkpt = len(ibz.points) + + occ1k_spin = np.reshape(occ1k_spin, (nsppol,)) + #print("occ1k_spin", occ1k_spin) + occ_str = "" + from abipy.abio.abivars import expand_star_syntax + + nband_spin = [] + for spin in range(nsppol): + s = occ1k_spin[spin] + nband_k = len(expand_star_syntax(s).split()) + #print("nband_k", nband_k) + nband_spin.append(nband_k) + occ_str += s * nkpt + "\n" + + #print("nkpt:", nkpt, "\nnband_spin:", nband_spin, "\nocc_str:", occ_str) + if nsppol == 2 and nband_spin[0] != nband_spin[1]: + raise ValueError("Different number of bands for the two spin channels: %s", str(nband_spin)) + + nband = "*%d" % nband_spin[0] + + d.update(self.set_vars(nband=nband, occ=occ_str)) + d["nkpt"] = nkpt # Return nkpt as well as it may be useful for generating workflows. + + return d + @property - def pseudos(self): + def pseudos(self) -> list[Pseudo]: """List of |Pseudo| objects.""" return self._pseudos @property - def ispaw(self): - """True if PAW calculation.""" + def ispaw(self) -> bool: + """True if this is a PAW calculation.""" return all(p.ispaw for p in self.pseudos) @property - def isnc(self): - """True if norm-conserving calculation.""" + def isnc(self) -> bool: + """True if this is a norm-conserving calculation.""" return all(p.isnc for p in self.pseudos) @property - def num_valence_electrons(self): + def num_valence_electrons(self) -> int: """Number of valence electrons computed from the pseudos and the structure.""" return self.structure.num_valence_electrons(self.pseudos) @property - def valence_electrons_per_atom(self): + def valence_electrons_per_atom(self) -> int: """Number of valence electrons for each atom in the structure.""" return self.structure.valence_electrons_per_atom(self.pseudos) - def linspace(self, varname, start, stop, num=50, endpoint=True): + def linspace(self, varname, start, stop, num=50, endpoint=True) -> list[AbinitInput]: """ - Returns `num` evenly spaced samples, calculated over the interval [`start`, `stop`]. - + Generate `num` input files by changing the value of variable `varname` + over the interval [`start`, `stop`]. The endpoint of the interval can optionally be excluded. + Example: + + input_list = gs_template.linspace("ecut", start=10, stop=60) + Args: start: The starting value of the sequence. stop: The end value of the sequence, unless `endpoint` is set to False. - In that case, the sequence consists of all but the last of ``ndtset + 1`` + In this case, the sequence consists of all but the last of ``ndtset + 1`` evenly spaced samples, so that `stop` is excluded. Note that the step size changes when `endpoint` is False. num (int): Number of samples to generate. Default is 50. @@ -937,21 +1420,24 @@ def linspace(self, varname, start, stop, num=50, endpoint=True): """ inps = [] for value in np.linspace(start, stop, num=num, endpoint=endpoint, retstep=False): - inp = self.deepcopy() - inp[varname] = value + inp = self.new_with_vars(**{varname: value}) inps.append(inp) return inps - def arange(self, varname, start, stop, step): + def arange(self, varname: str, start, stop, step) -> list[AbinitInput]: """ - Return evenly spaced values within a given interval. - + Generate list of input files by changing the value of variable `varname` + over the interval [`start`, `stop`]. Values are generated within the half-open interval ``[start, stop)`` (in other words, the interval including `start` but excluding `stop`). When using a non-integer step, such as 0.1, the results will often not - be consistent. It is better to use ``linspace`` for these cases. + be consistent. It is better to use ``linspace`` for these cases. + + Example: + + input_list = gs_template.linspace("ecut", start=10, stop=60, step=10) Args: start: Start of interval. The interval includes this value. The default start value is 0. @@ -969,13 +1455,13 @@ def arange(self, varname, start, stop, step): return inps - def product(self, *items): + def product(self, *items) -> list[AbinitInput]: """ Cartesian product of input iterables. Equivalent to nested for-loops. .. code-block:: python - inp.product("ngkpt", "tsmear", [[2,2,2], [4,4,4]], [0.1, 0.2, 0.3]) + inp.product("ngkpt", "tsmear", [[2, 2, 2], [4, 4, 4]], [0.1, 0.2, 0.3]) """ # Split items into varnames and values for i, item in enumerate(items): @@ -998,29 +1484,27 @@ def product(self, *items): for names, values in zip(varnames, values): inp = self.deepcopy() inp.set_vars(**{k: v for k, v in zip(names, values)}) + inp.enforce_znucl_and_typat(self.enforce_znucl, self.enforce_typat) inps.append(inp) return inps - def new_with_vars(self, *args, **kwargs): + def new_with_vars(self, *args, **kwargs) -> AbinitInput: """ Return a new input with the given variables. Example: - new = input.new_with_vars(ecut=20) + + new = input.new_with_vars(ecut=20, tsmear=0.04) """ # Avoid modifications in self. new = self.deepcopy() new.set_vars(*args, **kwargs) return new - #def new_with_supercell(self, scdims): - # sucell = self.structure * scdims - # return new_with_structure(sucell, scdims=scdims) - - def new_with_structure(self, new_structure, scdims=None, verbose=1): + def new_with_structure(self, new_structure, scdims=None, verbose=1, **abi_vars) -> AbinitInput: """ - Return a new |AbinitInput| with different structure. + Return a new |AbinitInput| with a different structure. See notes below for the constraints that must be fulfilled by the new structure Args: @@ -1030,6 +1514,7 @@ def new_with_structure(self, new_structure, scdims=None, verbose=1): Must be used when `new_structure` represents a supercell of the initial structure defined in the input file. verbose: Verbosity level. + abi_vars: Abinit variables added to the Abinit input. .. warning:: @@ -1038,11 +1523,15 @@ def new_with_structure(self, new_structure, scdims=None, verbose=1): When structure represents a supercell, `scdims` must be coherent with the `new_structure` passed as argument. """ + new_structure = Structure.as_structure(new_structure) + # Check structure if scdims is None: # Assume same value of natom and typat if len(self.structure) != len(new_structure): - raise ValueError("Structures must have same value of natom") + raise ValueError(f"Structures must have same value of natom." + + f"new_structure has {len(new_structure)} atoms." + + f"input.structure has {len(self.structure)}") errors = [] for i, (site1, site2) in enumerate(zip(self.structure, new_structure)): if site1.specie.symbol != site2.specie.symbol: @@ -1055,13 +1544,16 @@ def new_with_structure(self, new_structure, scdims=None, verbose=1): if scdims.shape != (3,): raise ValueError("Expecting 3 int in scdims but got %s" % str(scdims)) - numcells = np.product(scdims) + numcells = np.prod(scdims) if len(new_structure) != numcells * len(self.structure): errmsg = "Number of atoms in the input structure should be %d * %d but found %d" % ( numcells, len(self.structure), len(new_structure)) raise ValueError(errmsg) - expected_symbols = numcells * [site.specie.symbol for site in self.structure] + expected_supercell=self.structure.copy() + expected_supercell.make_supercell(scdims) + + expected_symbols = [site.specie.symbol for site in expected_supercell] supcell_symbols = [site.specie.symbol for site in new_structure] if not np.array_equal(expected_symbols, supcell_symbols): msg = ("Wrong supercell. The routine assumes the atoms in the other cells have the\n" @@ -1101,7 +1593,11 @@ def new_with_structure(self, new_structure, scdims=None, verbose=1): # Rescale nband and k-point sampling iscale = int(np.ceil(len(new.structure) / len(self.structure))) if "nband" in new: - new["nband"] = int(self["nband"] * iscale) + # take care of nband in format "*xxx" + if str(self["nband"])[0]=="*": #, convert to a string if nband considered as a int + new["nband"] = "*%d" %(int(self["nband"][1:])*iscale) + else: + new["nband"] = int(self["nband"] * iscale) if verbose: print("self['nband']", self["nband"], "new['nband']", new["nband"]) if "ngkpt" in new: @@ -1119,9 +1615,11 @@ def new_with_structure(self, new_structure, scdims=None, verbose=1): # Add chkprim if not yet done. new.set_vars_ifnotin(chkprim=0) + new.set_vars(**abi_vars) + return new - def new_with_decorators(self, decorators): + def new_with_decorators(self, decorators) -> AbinitInput: """ This function receives a list of :class:`AbinitInputDecorator` objects or just a single object, applies the decorators to the input and returns a new |AbinitInput| object. self is not changed. @@ -1135,16 +1633,56 @@ def new_with_decorators(self, decorators): return inp - def pop_tolerances(self): + def news_varname_values(self, varname_values) -> list[AbinitInput]: """ - Remove all the tolerance variables present in self. + Return list of new inputs by adding the variable and values + specified in `varname_values`. Useful for performing convergence studies. + Two cases are possible: + + 1) Generate e.g. 3 inputs with different number of `nband`: + + varname_values = ("nband", [8, 12, 14]) + + for new_inp in input.news_with_varname_values(varname_values): + print(new_inp) + + 2) Take Cartesian product of two or multiple variables: + + var_vals = [ + ("nband", [8, 12]), + ("ecut", [4, 8]), + ] + + for new_inp in input.news_with_varname_values(varname_values): + print(new_inp) + """ + if duck.is_string(varname_values[0]): + # varname_values = ("nband", [8, 12, 14]) + varname, values = varname_values + if len(values) == 1: values = [values] + new_inputs = [] + for val in values: + new_inputs.append(self.new_with_vars(**{varname: val})) + return new_inputs + else: + #varname_values = [ + # ("nband", [8, 12]), + # ("gwr_ntau", [6, 8]), + #] + items = [t[0] for t in varname_values] + items.extend(t[1] for t in varname_values) + return self.product(*items) + + def pop_tolerances(self) -> dict: + """ + Remove all the tolerance variables present in the input. Return dictionary with the variables that have been removed. """ return self.remove_vars(_TOLVARS, strict=False) - def pop_irdvars(self): + def pop_irdvars(self) -> dict: """ - Remove all the `ird*` variables present in self. + Remove all the `ird*` variables present in the input. Return dictionary with the variables that have been removed. """ return self.remove_vars(_IRDVARS, strict=False) @@ -1157,10 +1695,10 @@ def pop_irdvars(self): # return self.pop_vars(["ionmov", "optcell", "ntime", "dilatmx"]) @property - def scf_tolvar(self): + def scf_tolvar(self) -> tuple[str, float]: """ Returns the tolerance variable and value relative to the SCF convergence. - If more than one is present raise an error + If more than one is present, an error is raised. """ tolvar, value = None, None for t in _TOLVARS_SCF: @@ -1172,84 +1710,134 @@ def scf_tolvar(self): return tolvar, value - def make_ebands_input(self, ndivsm=15, tolwfr=1e-20, nscf_nband=None): + def make_ebands_input(self, ndivsm=15, tolwfr=1e-20, nscf_nband=None, nb_extra=10, + nbdbuf=None, nstep=100) -> AbinitInput: """ - Generate an input file for band structure calculation from a GS-SCF input. + Generate an input file for a NSCF band structure calculation along k-path from a GS SCF input. Args: - ndivsm: Number of divisions used to sample the smallest segment of the k-path. - tolwfr: Tolerance on residuals for NSCF calculation - nscf_nband: Number of bands for NSCF calculation. +10 if None. + ndivsm: if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. + This option is the recommended one if the k-path contains two high symmetry k-points that are very close + as ndivsm > 0 may produce a very large number of wavevectors. + tolwfr: Tolerance on residuals for NSCF calculation. + nscf_nband: Number of bands for NSCF calculation. If None, use nband + nb_extra + nb_extra: Extra bands to to be added to input nband if nscf_nband is None. + nbdbuf: Number of states in buffer + nstep: Max number of NSCF iterations. """ nscf_input = self.deepcopy() - nscf_input.pop_vars(["ngkpt", "shiftk"]) + nscf_input.pop_vars(["ngkpt", "nshiftk", "shiftk"]) nscf_input.pop_tolerances() - # Define k-path. - nscf_ksampling = aobj.KSampling.path_from_structure(ndivsm, self.structure) - nscf_nband = self["nband"] + 10 if nscf_nband is None else nscf_nband - - nscf_input.set_vars(nscf_ksampling.to_abivars()) - nscf_input.set_vars(iscf=-2, nband=nscf_nband, tolwfr=tolwfr) - #nscf_input.set_vars(_stopping_criterion("nscf", accuracy)) + # Define k-path from ndivsm. + if ndivsm > 0: + nscf_ksampling = aobj.KSampling.path_from_structure(ndivsm, self.structure) + nscf_input.set_vars(nscf_ksampling.to_abivars()) + else: + kpts = kpoints_from_line_density(self.structure, abs(ndivsm)) + nscf_input.set_vars(kptopt=0, nkpt=len(kpts), kpt=kpts) + + #nbdbuf = None + if nscf_nband is None: + # Get number of bands from input file taking into account *5 syntax + nb = self["nband"] + has_star = False + if duck.is_string(nb): + # Handle the case in which nband is specified with the `*91` syntax (occopt 2) + if nb.startswith("*"): + has_star = True + nb = nb.replace("*", "", 1) + nb = int(nb) + + nscf_nband = nb + nb_extra + if has_star: nscf_nband = f"*{nscf_nband}" + + # Add buffer + if nbdbuf is None: + nbdbuf = nb_extra - 4 + if nbdbuf <= 0: nbdbuf = None + + nscf_input.set_vars(iscf=-2, + nband=nscf_nband, + tolwfr=tolwfr, + nbdbuf=nbdbuf, + nstep=nstep, + comment="Input file for NSCF band structure calculation from a GS SCF input.") return nscf_input - def make_edos_input(self, ngkpt, shiftk=(0, 0, 0), tolwfr=1e-20, nscf_nband=None): + def make_edos_input(self, ngkpt, shiftk=(0, 0, 0), tolwfr=1e-20, nscf_nband=None, + nb_extra=10, nstep=100) -> AbinitInput: """ Generate an input file for electron DOS calculation from a GS-SCF input. Args: ngkpt: Number of divisions for the k-mesh. - shiftk: List of shifts. + shiftk: List of k-mesh shifts. tolwfr: Tolerance on residuals for NSCF calculation - nscf_nband: Number of bands for NSCF calculation. +10 if None. - """ - dos_input = self.deepcopy() - dos_input.pop_tolerances() - nscf_nband = self["nband"] + 10 if nscf_nband is None else nscf_nband - dos_input.set_vars(iscf=-2, nband=nscf_nband, tolwfr=tolwfr) - dos_input.set_kmesh(ngkpt, shiftk) + nscf_nband: Number of bands for NSCF calculation. If None, use nband + nb_extra + nb_extra: Extra bands to to be added to input nband if nscf_nband is None. + nstep: Max number of NSCF iterations. + """ + edos_input = self.deepcopy() + edos_input.pop_tolerances() + nscf_nband = self["nband"] + nb_extra if nscf_nband is None else nscf_nband + edos_input.set_vars(iscf=-2, + nband=nscf_nband, + tolwfr=tolwfr, + nstep=nstep + ) + edos_input.set_kmesh(ngkpt, shiftk) + edos_input.set_comment("Input file for electron DOS calculation from a GS SCF input (NSCF on kmesh)") - return dos_input + return edos_input - def make_nscf_kptopt0_input(self, kpts, tolwfr=1e-20, iscf=-2): + def make_nscf_kptopt0_input(self, kpts, tolwfr=1e-20, iscf=-2) -> AbinitInput: """ - Build an input for NSCF calculation from a GS-SCF one. - Uses explicit list of k-points and kptopt 0 + Build an input for NSCF calculation from a GS SCF one. + Uses explicit list of k-points and kptopt 0. Args: kpts: List of k-points in reduced coordinates. tolwfr: Tolerance on residuals. """ nscf_input = self.deepcopy() - nscf_input.pop_vars(["ngkpt", "shiftk"]) + nscf_input.pop_vars(["ngkpt", "ngkpt", "shiftk"]) nscf_input.pop_tolerances() kpts = np.reshape(kpts, (-1, 3)) - nscf_input.set_vars(tolwfr=tolwfr, kptopt=0, iscf=-2, nkpt=len(kpts), kpt=kpts) + nscf_input.set_vars(tolwfr=tolwfr, kptopt=0, iscf=iscf, nkpt=len(kpts), kpt=kpts) + nscf_input.set_comment("Input file for NSCF run from a GS SCF input with explicit list of k-points") + return nscf_input - def make_dfpt_effmass_input(self, kpts, effmass_bands_f90, tolwfr=1e-20, iscf=-2): + def make_dfpt_effmass_inputs(self, kpts, effmass_bands_f90, ngfft=None, + tolwfr=1e-20, iscf=-2) -> MultiDataset: """ - Return |MultiDataset| with 2 inputs for the calculation of effective masses with DFPT - The first input in a standard NSCF run, the second input computes the effective masses. + Return a |MultiDataset| object with 2 inputs for the calculation of effective masses with DFPT + The first input in a standard NSCF run, the second input computes the effective masses. Args: kpts: List of k-points in reduced coordinates where effective masses are wanted. - efmas_bands_f90: (nkpt, 2) array with band range for effmas computation. + effmas_bands_f90: (nkpt, 2) array with band range for effmas computation. WARNING: Assumes Fortran convention with indices starting from 1. + ngfft: FFT divisions (3 integers). Used to enforce the same FFT mesh in the NSCF run as the one used for GS. tolwfr: Tolerance on residuals. """ multi = MultiDataset.replicate_input(input=self, ndtset=3) - multi.pop_vars(["ngkpt", "shiftk", "iscf"]) + multi.pop_vars(["ngkpt", "nshiftk", "shiftk", "iscf"]) multi.pop_tolerances() kpts = np.reshape(kpts, (-1, 3)) nkpt = len(kpts) + # NSCF calculation (requires DEN) - multi[0].set_vars(tolwfr=tolwfr, kptopt=0, iscf=-2, nkpt=nkpt, kpt=kpts, prtwf=1) + multi[0].set_vars(tolwfr=tolwfr, kptopt=0, iscf=-2, + nkpt=nkpt, kpt=kpts, prtwf=1, ngfft=ngfft, + comment="NSCF input to prepare effective masses calculation") - # Response Function calculation: d/dk (requires DEN and GS WFK) + # Response function calculation: d/dk (requires DEN and GS WFK) multi[1].set_vars( rfelfd=2, # Activate d/dk perturbation (required for effective mass calc.) efmas=1, # Activate calculation of effective mass tensors @@ -1262,6 +1850,8 @@ def make_dfpt_effmass_input(self, kpts, effmass_bands_f90, tolwfr=1e-20, iscf=-2 efmas_calc_dirs=1, efmas_n_dirs=7, efmas_dirs=np.reshape([1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0], (7, 3)), + ngfft=ngfft, + comment="Computation of effective masses", ) # Input variables for Frohlich model calculation (need DDB, WFK and EFMAS file) @@ -1276,37 +1866,38 @@ def make_dfpt_effmass_input(self, kpts, effmass_bands_f90, tolwfr=1e-20, iscf=-2 asr=2, chneut=1, prtphdos=0, + comment="Computation of ZPR with generalized Frohlich model", ) return multi - def make_ph_inputs_qpoint(self, qpt, tolerance=None, prtwf=-1, prepgkk=0, manager=None): + def make_ph_inputs_qpoint(self, qpt, tolerance=None, + prtwf=-1, prepgkk=0, manager=None) -> MultiDataset: """ - Builds and returns a |MultiDataset| list of input files - for the calculation of phonons at the given q-point `qpt`. - It should be called with an input the represents a GS run. + Builds and returns a |MultiDataset| list of input files for the calculation of phonons + at the given q-point `qpt`. This method should be called with an input the represents a GS run. Args: qpt: q-point in reduced coordinates. tolerance: dict {varname: value} with the tolerance to be used in the DFPT run. Defaults to {"tolvrs": 1.0e-10}. - prtwf: 1WFs are only needed for restarting or non-linear response. + prtwf: 1WFs are only needed for restarting 2nd order DFPT or non-linear response. Since these files are huge, we use prtwf -1 so that the 1WF file is produced only if the calculation is not converged so that AbiPy can restart it. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. .. WARNING:: - The routine assumes the q-point is such that k + q belongs to the initial GS mesh. + The routine assumes the q-point is such that k + q belongs to the initial GS mesh so that the DFPT run can be started from the WFK file directly without having - to generate WFQ files. + to generate intermediate WFQ files. """ if tolerance is None: tolerance = {"tolvrs": 1.0e-10} if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): - raise self.Error("Invalid tolerance: %s" % str(tolerance)) + raise self.Error(f"Invalid {tolerance=}") - # Call Abinit to get the list of irred perts. + # Call Abinit to get the list of irreducible perts. perts = self.abiget_irred_phperts(qpt=qpt, manager=manager, prepgkk=prepgkk) # Build list of datasets (one input per perturbation) @@ -1314,9 +1905,12 @@ def make_ph_inputs_qpoint(self, qpt, tolerance=None, prtwf=-1, prepgkk=0, manage ph_inputs = MultiDataset.replicate_input(input=self, ndtset=len(perts)) ph_inputs.pop_vars("iscf") - # Set kptopt depending on the q-points i.e use time-reversal if Gamma + # Set kptopt depending on the q-point i.e use time-reversal + # if q == Gamma and kptopt allows it. + scf_kptopt = self.get("kptopt", 1) kptopt = 3 - if np.allclose(qpt, 0): kptopt = 2 + if np.allclose(qpt, 0) and scf_kptopt in (1, 2): + kptopt = 2 # Note: this will work for phonons, but not for the other types of perturbations. for pert, ph_input in zip(perts, ph_inputs): @@ -1330,14 +1924,75 @@ def make_ph_inputs_qpoint(self, qpt, tolerance=None, prtwf=-1, prepgkk=0, manage rfatpol=[pert.ipert, pert.ipert], rfdir=rfdir, kptopt=kptopt, + comment="Input file for PH calculation with DFPT.", ) - #if "prtwf" not in ph_input: ph_input["prtwf"] = prtwf + + #if "prtwf" not in ph_input: ph_input["prtwf"] = prtwf ph_input.pop_tolerances() ph_input.set_vars(tolerance) return ph_inputs - def make_ddk_inputs(self, tolerance=None, kptopt=2, only_vk=False, manager=None): + def make_ddkpert_input(self, perturbation, kptopt=2, only_vk=False, use_symmetries=False, tolerance=None, manager=None) -> AbinitInput: + """ + Returns |AbinitInput| for the calculation of an electric field perturbation. + This function should be called with an input that represents a GS run and + an electric field perturbation. + + Args: + perturbation: dict with the Abinit variables defining the irreducible perturbation + Example: {'idir': 1, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}, + kptopt: 2 to take into account time-reversal symmetry. Note that kptopt 1 is not available. + only_vk: If only matrix elements of the velocity operator are needed. + First-order wavefunctions won't be converged --> not usable for other DFPT calculations. + use_symmetries: boolean that determines if the irreducible components of the perturbation are used. + Default to False. (TODO: Should be implemented) + tolerance: dict {varname: value} with the tolerance to be used in the DFPT run. + Defaults to {"tolwfr": 1.0e-22}. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + if tolerance is None: + tolerance = {"tolwfr": 1.0e-22} + + if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): + raise self.Error("Invalid tolerance: %s" % str(tolerance)) + + if "tolvrs" in tolerance: + raise self.Error("tolvrs should not be used in a DDK calculation") + + inp = self.deepcopy() + inp.pop_irdvars() + + rfdir = 3 * [0] + rfdir[perturbation['idir'] - 1] = 1 + + inp.set_vars( + rfelfd=2, # Activate the calculation of the d/dk perturbation + # only the derivative of ground-state wavefunctions with respect to k + rfdir=rfdir, # Direction of the ddk. + nqpt=1, # One wavevector is to be considered + qpt=(0, 0, 0), # q-wavevector. + kptopt=kptopt, # 2 to take into account time-reversal symmetry. + iscf=-3, # The d/dk perturbation must be treated in a non-self-consistent way + ) + + inp.pop_vars("dfpt_sciss") # TODO: to add? + + if only_vk: + inp.set_vars(nstep=1, nline=1) + + # TODO: to implement + #if not use_symmetries: + # inp.set_vars( + # comment="Input file for ddk calculation without symmetries.", + # ) + + inp.pop_tolerances() + inp.set_vars(tolerance, comment="Input file for DDK calculation.") + + return inp + + def make_ddk_inputs(self, tolerance=None, kptopt=2, only_vk=False, manager=None) -> MultiDataset: """ Return inputs for performing DDK calculations. This functions should be called with an input the represents a GS run. @@ -1350,13 +2005,12 @@ def make_ddk_inputs(self, tolerance=None, kptopt=2, only_vk=False, manager=None) First-order wavefunctions won't be converged --> not usable for other DFPT calculations. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. - Return: - List of |AbinitInput| objects for DFPT runs. + Return: |MultiDataset| object for DFPT runs. """ if tolerance is None: tolerance = {"tolwfr": 1.0e-22} if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): - raise self.Error("Invalid tolerance: %s" % str(tolerance)) + raise self.Error(f"Invalid {tolerance=}") if "tolvrs" in tolerance: raise self.Error("tolvrs should not be used in a DDK calculation") @@ -1374,25 +2028,112 @@ def make_ddk_inputs(self, tolerance=None, kptopt=2, only_vk=False, manager=None) ddk_input.set_vars( rfelfd=2, # Activate the calculation of the d/dk perturbation # only the derivative of ground-state wavefunctions with respect to k - rfdir=rfdir, # Direction of the per ddk. + rfdir=rfdir, # Direction of the ddk. nqpt=1, # One wavevector is to be considered qpt=(0, 0, 0), # q-wavevector. kptopt=kptopt, # 2 to take into account time-reversal symmetry. iscf=-3, # The d/dk perturbation must be treated in a non-self-consistent way ) + ddk_input.pop_vars("dfpt_sciss") ddk_input.pop_tolerances() - ddk_input.set_vars(tolerance) + ddk_input.set_vars(tolerance, comment="Input file for DDK calculation.") if only_vk: ddk_inputs.set_vars(nstep=1, nline=1) return ddk_inputs - def make_dde_inputs(self, tolerance=None, use_symmetries=True, manager=None): + def make_dkdk_input(self, tolerance=None, kptopt=2, manager=None) -> AbinitInput: """ - Return |MultiDataset| inputs for the calculation of the electric field perturbations. - This functions should be called with an input the represents a gs run. + Return an input for performing d2/dkdk calculations. + This functions should be called with an input the represents a GS run. + + Args: + tolerance: dict {varname: value} with the tolerance to be used in the DFPT run. + Defaults to {"tolwfr": 1.0e-22}. + kptopt: 2 to take into account time-reversal symmetry. Note that kptopt 1 is not available. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + + Return: |AbinitInput| object. + """ + if tolerance is None: tolerance = {"tolwfr": 1.0e-22} + + if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): + raise self.Error(f"Invalid {tolerance=}") + + if "tolvrs" in tolerance: + raise self.Error("tolvrs should not be used in a DKDK calculation") + + # See Dataset 3 of https://docs.abinit.org/tests/tutorespfn/Input/tlw_4.abi + dkdk_input= self.new_with_vars( + qpt=(0, 0, 0), # q-wavevector. + kptopt=kptopt, # 2 to take into account time-reversal symmetry. + iscf=-3, # The d2/dk perturbation is treated in a non-self-consistent way + rf2_dkdk=1, + #rf2_dkdk=3, + useylm=1, + comment="Input file for DKDK calculation.", + ) + + dkdk_input.pop_tolerances() + dkdk_input.set_vars(tolerance) + + return dkdk_input + + def make_ddepert_input(self, perturbation, use_symmetries=True, tolerance=None, manager=None) -> AbinitInput: + """ + Returns |AbinitInput| for the calculation of an electric field perturbation. + This function should be called with an input that represents a GS run and + an electric field perturbation. + + Args: + perturbation: dict with the Abinit variables defining the irreducible perturbation + Example: {'idir': 1, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}, + use_symmetries: boolean that determines if the irreducible components of the perturbation are used. + Default to True. Should be set to False for nonlinear coefficients calculation. + tolerance: dict {varname: value} with the tolerance to be used in the DFPT run. + Defaults to {"tolvrs": 1.0e-22}. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + if tolerance is None: + tolerance = {"tolvrs": 1.0e-22} + + if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): + raise self.Error("Invalid tolerance: %s" % str(tolerance)) + + inp = self.deepcopy() + inp.pop_irdvars() + + rfdir = 3 * [0] + rfdir[perturbation['idir'] - 1] = 1 + + inp.set_vars( + rfdir=rfdir, # Direction of the dde perturbation. + comment="Input file for DDE calculation with symmetries.", + rfelfd=3, # Activate the calculation of the electric field perturbation + # Assuming the data on derivative of ground-state wavefunction with respect + # to k (DDK) is available on disk and will be read with getddk/irddk + nqpt=1, # One wavevector is to be considered + qpt=(0, 0, 0), # q-wavevector. + kptopt=2, # Take into account time-reversal symmetry. + ) + + if not use_symmetries: + inp.set_vars( + comment="Input file for DDE calculation without symmetries.", + prepanl=1, + ) + + inp.pop_tolerances() + inp.set_vars(tolerance) + + return inp + + def make_dde_inputs(self, tolerance=None, use_symmetries=True, manager=None) -> MultiDataset: + """ + Return |MultiDataset| inputs for the calculation of electric field perturbations. + This functions should be called with an input the represents a GS run. Args: tolerance: dict {varname: value} with the tolerance to be used in the DFPT run. @@ -1405,7 +2146,7 @@ def make_dde_inputs(self, tolerance=None, use_symmetries=True, manager=None): tolerance = {"tolvrs": 1.0e-22} if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): - raise self.Error("Invalid tolerance: %s" % str(tolerance)) + raise self.Error(f"Invalid {tolerance=}") if use_symmetries: # Call Abinit to get the list of irred perts. @@ -1421,37 +2162,99 @@ def make_dde_inputs(self, tolerance=None, use_symmetries=True, manager=None): inp.set_vars( rfdir=rfdir, # Direction of the dde perturbation. + comment="Input file for DDE calculation with symmetries." ) else: # Compute all the directions of the perturbation dde_rfdirs = [(1, 0, 0), (0, 1, 0), (0, 0, 1)] - # Build list of datasets (one input per perturbation) - multi = MultiDataset.replicate_input(input=self, ndtset=len(dde_rfdirs)) + # Build list of datasets (one input per perturbation) + multi = MultiDataset.replicate_input(input=self, ndtset=len(dde_rfdirs)) + + # See tutorespfn/Input/tnlo_2.in dataset 4 + for rfdir, inp in zip(dde_rfdirs, multi): + inp.set_vars( + rfdir=rfdir, # Direction of the per ddk. + prepanl=1, # Prepare Non-linear RF calculations. + comment="Input file for DDE calculation without symmetries." + ) + + multi.set_vars( + rfelfd=3, # Activate the calculation of the electric field perturbation + # Assuming the data on derivative of ground-state wavefunction with respect + # to k (DDK) is available on disk and will be read with getddk/irddk + nqpt=1, # One wavevector is to be considered + qpt=(0, 0, 0), # q-wavevector. + kptopt=2, # Take into account time-reversal symmetry. + ) + + multi.pop_tolerances() + multi.set_vars(tolerance) + + return multi + + def make_dtepert_input(self, perturbation, ixc=None, manager=None) -> AbinitInput: + """ + Return |AbinitInput| for DTE calculation for a given perturbation. + This functions should be called with an input that represents a GS run. + + Args: + perturbation: dict with the Abinit variables defining the irreducible perturbation + Example: {'idir': 1, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}, + ixc: Value of ixc variable. Used to overwrite the default value read from pseudos. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + inp = self.deepcopy() + # non-linear calculations do not accept more bands than those in the valence. Set the correct values. + # Do this as last, so not to interfere with the the generation of the other steps. + nval = inp.structure.num_valence_electrons(inp.pseudos) + nval -= inp['charge'] + nband = int(round(nval / 2)) + inp.set_vars(nband=nband) + inp.pop('nbdbuf', None) + + if ixc is not None: + inp.set_vars(ixc=int(ixc)) + + # See tutorespfn/Input/tnlo_2.in + na = len(self.structure) + + rfdir1 = 3 * [0] + rfdir1[perturbation['i1dir'] - 1] = 1 + rfdir2 = 3 * [0] + rfdir2[perturbation['i2dir'] - 1] = 1 + rfdir3 = 3 * [0] + rfdir3[perturbation['i3dir'] - 1] = 1 - # See tutorespfn/Input/tnlo_2.in dataset 4 - for rfdir, inp in zip(dde_rfdirs, multi): - inp.set_vars( - rfdir=rfdir, # Direction of the per ddk. - prepanl=1, # Prepare Non-linear RF calculations. - ) + # atpol if needed. Since there can be only one spatial perturbation + m = min(perturbation['i1pert'], perturbation['i2pert'], perturbation['i3pert']) + atpol = [m, m] if m <= na else None - multi.set_vars( - rfelfd=3, # Activate the calculation of the electric field perturbation - # Assuming the data on derivative of ground-state wavefunction with respect - # to k (DDK) is available on disk and will be read with getddk/irddk + inp.set_vars( + # Activate the calculation of the electric field perturbation + d3e_pert1_elfd=1 if perturbation['i1pert'] == na + 2 else 0, + d3e_pert2_elfd=1 if perturbation['i2pert'] == na + 2 else 0, + d3e_pert3_elfd=1 if perturbation['i3pert'] == na + 2 else 0, + d3e_pert1_dir=rfdir1, # Direction of the dte perturbation. + d3e_pert2_dir=rfdir2, + d3e_pert3_dir=rfdir3, + d3e_pert1_phon=1 if perturbation['i1pert'] <= na else 0, + d3e_pert2_phon=1 if perturbation['i2pert'] <= na else 0, + d3e_pert3_phon=1 if perturbation['i3pert'] <= na else 0, + d3e_pert1_atpol=atpol, nqpt=1, # One wavevector is to be considered qpt=(0, 0, 0), # q-wavevector. + optdriver=5, # non-linear response functions, using the 2n+1 theorem. kptopt=2, # Take into account time-reversal symmetry. + comment="Input file for DTE calculation.", ) - multi.pop_tolerances() - multi.set_vars(tolerance) + inp.pop_tolerances() - return multi + return inp - def make_dte_inputs(self, phonon_pert=False, skip_permutations=False, ixc=None, manager=None): + def make_dte_inputs(self, phonon_pert=False, skip_permutations=False, ixc=None, manager=None) -> MultiDataset: """ Return |MultiDataset| inputs for DTE calculation. This functions should be called with an input that represents a GS run. @@ -1464,7 +2267,7 @@ def make_dte_inputs(self, phonon_pert=False, skip_permutations=False, ixc=None, ixc: Value of ixc variable. Used to overwrite the default value read from pseudos. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. """ - # Call Abinit to get the list of irred perts. + # Call Abinit to get the list of irreducible perturbations perts = self.abiget_irred_dteperts(phonon_pert=phonon_pert, ixc=ixc, manager=manager) if skip_permutations: @@ -1500,9 +2303,9 @@ def make_dte_inputs(self, phonon_pert=False, skip_permutations=False, ixc=None, inp.set_vars( # Activate the calculation of the electric field perturbation - d3e_pert1_elfd=1 if pert.i1pert == na+2 else 0, - d3e_pert2_elfd=1 if pert.i2pert == na+2 else 0, - d3e_pert3_elfd=1 if pert.i3pert == na+2 else 0, + d3e_pert1_elfd=1 if pert.i1pert == na + 2 else 0, + d3e_pert2_elfd=1 if pert.i2pert == na + 2 else 0, + d3e_pert3_elfd=1 if pert.i3pert == na + 2 else 0, d3e_pert1_dir=rfdir1, # Direction of the dte perturbation. d3e_pert2_dir=rfdir2, d3e_pert3_dir=rfdir3, @@ -1514,30 +2317,42 @@ def make_dte_inputs(self, phonon_pert=False, skip_permutations=False, ixc=None, qpt=(0, 0, 0), # q-wavevector. optdriver=5, # non-linear response functions, using the 2n+1 theorem. kptopt=2, # Take into account time-reversal symmetry. + comment="Input file for DTE calculation.", ) inp.pop_tolerances() return multi - def make_bec_inputs(self, tolerance=None, manager=None): + def make_bec_inputs(self, tolerance=None, prepalw=0, manager=None) -> MultiDataset: """ - Return |MultiDataset| inputs for the calculation of the Born effective charges. + Return |MultiDataset| inputs for the calculation of Born effective charges. This functions should be called with an input that represents a GS run. + + Args: + tolerance: dict {varname: value} with the tolerance to be used in the DFPT run. + Defaults to {"tolvrs": 1.0e-10}. + prepalw: 1 to activate computation of all 3*natom perts. Used to prepare longwave-limit calculation. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. """ if tolerance is None: tolerance = {"tolvrs": 1.0e-10} if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): - raise self.Error("Invalid tolerance: %s" % str(tolerance)) + raise self.Error(f"Invalid {tolerance=}") # Call Abinit to get the list of irred perts. - # TODO: - # Check that one can use the same list of irred perts as in phonons - perts = self.abiget_irred_phperts(qpt=(0, 0, 0), manager=manager) + perts = self.abiget_irred_phperts(qpt=(0, 0, 0), prepalw=prepalw, manager=manager) # Build list of datasets (one input per perturbation) multi = MultiDataset.replicate_input(input=self, ndtset=len(perts)) + # Important: this is needed to avoid Q* computations complaining about indkpt1 + if prepalw != 0: multi.set_vars(prepalw=prepalw) + + scf_kptopt = self.get("kptopt", 1) + kptopt = 3 + if scf_kptopt in (1, 2): kptopt = 2 + # See tutorespfn/Input/trf1_5.in dataset 3 for pert, inp in zip(perts, multi): rfdir = 3 * [0] @@ -1550,7 +2365,8 @@ def make_bec_inputs(self, tolerance=None, manager=None): rfelfd=3, # Activate the calculation of the electric field perturbation nqpt=1, # One wavevector is to be considered qpt=(0, 0, 0), # q-wavevector. - kptopt=2, # Take into account time-reversal symmetry. + kptopt=kptopt, # Take into account time-reversal symmetry if allowed. + comment="Input file for BECs calculation.", ) inp.pop_tolerances() @@ -1558,25 +2374,66 @@ def make_bec_inputs(self, tolerance=None, manager=None): return multi - def make_strain_perts_inputs(self, tolerance=None, phonon_pert=True, kptopt=2, manager=None): + def make_quad_input(self, tolerance=None, kptopt=2, nstep=100, manager=None) -> AbinitInput: + """ + Return an |AbinitInput| for the calculation of dynamical quadrupoles.. + This function should be called with an input that represents a GS run. + + Note that only selected features are compatible with dynamical quadrupoles. + Please consult . + + Args: + tolerance: dict {varname: value} with the tolerance to be used in the DFPT run. + Defaults to {"tolvrs": 1.0e-10}. + kptopt: 2 to take into account time-reversal symmetry. + nstep: Max number of SCF iterations. Since AbiPy is still not able to restart + a Quadrupole calculation, we increase the value if not already provided by the user. + """ + if tolerance is None: tolerance = {"tolvrs": 1.0e-10} + + if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): + raise self.Error("Invalid {tolerance=}") + + # See + inp = self.new_with_vars( + optdriver=10, + kptopt=2, + lw_qdrpl=1, + useylm=1, # Require Yml in nonlop. + nqpt=1, + qpt=(0, 0, 0), + nstep=max(nstep, self.get("nstep", 0)), + comment="Input file for dynamical quadrupole calculation.", + ) + + inp.pop_tolerances() + inp.set_vars(tolerance) + + return inp + + def make_strain_perts_inputs(self, tolerance=None, phonon_pert=True, efield_pert=False, + kptopt=2, prepalw=0, manager=None) -> MultiDataset: """ Return |MultiDataset| inputs for strain perturbation calculation. - This functions should be called with an input that represents a GS run. + This function should be called with an input that represents a GS run. Args: tolerance: dict {varname: value} with the tolerance to be used in the DFPT run. Defaults to {"tolvrs": 1.0e-12}. - manager: |TaskManager| of the task. If None, the manager is initialized from the config file. - phonon_pert: is True also the phonon perturbations will be considered. Default False. + phonon_pert: isf True also the phonon perturbations are considered. Default True. + efield_pert: if True, the electric field perturbation at gamma is included. Requires DDK files kptopt: 2 to take into account time-reversal symmetry. + prepalw: 1 to activate computation of all 3*natom perts. Used to prepare calculation of flexoelectric tensor. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. """ if tolerance is None: tolerance = {"tolvrs": 1.0e-12} if len(tolerance) != 1 or any(k not in _TOLVARS for k in tolerance): - raise self.Error("Invalid tolerance: {}".format(str(tolerance))) + raise self.Error(f"Invalid {tolerance=}") - perts = self.abiget_irred_strainperts(kptopt=kptopt, manager=manager, phonon_pert=phonon_pert) + perts = self.abiget_irred_strainperts(kptopt=kptopt, phonon_pert=phonon_pert, + efield_pert=efield_pert, prepalw=prepalw, manager=manager) #print("Stress perts:", perts) # Build list of datasets (one input per perturbation) @@ -1594,7 +2451,20 @@ def make_strain_perts_inputs(self, tolerance=None, phonon_pert=True, kptopt=2, m qpt=(0, 0, 0), # q-wavevector. kptopt=kptopt, # No symmetries #iscf=7, - paral_kgb=0 + paral_kgb=0, + comment="Input file for phonon calculation.", + ) + + elif pert.ipert == len(self.structure) + 2: + inp.set_vars(#rfphon=1, # Activate the calculation of the electric field perturbation + #rfatpol=[pert.ipert, pert.ipert], + rfdir=rfdir, + nqpt=1, # One wavevector is to be considered + qpt=(0, 0, 0), # q-wavevector. + kptopt=kptopt, # No symmetries + #iscf=7, + paral_kgb=0, + comment="Input file for electric field calculation.", ) elif pert.ipert == len(self.structure) + 3: @@ -1604,7 +2474,8 @@ def make_strain_perts_inputs(self, tolerance=None, phonon_pert=True, kptopt=2, m qpt=(0, 0, 0), # q-wavevector. kptopt=kptopt, # No symmetries #iscf=7, - paral_kgb=0 + paral_kgb=0, + comment="Input file for uniaxial strain calculation.", ) elif pert.ipert == len(self.structure) + 4: @@ -1614,20 +2485,191 @@ def make_strain_perts_inputs(self, tolerance=None, phonon_pert=True, kptopt=2, m qpt=(0, 0, 0), # q-wavevector. kptopt=kptopt, # No symmetries #iscf=7, - paral_kgb=0 + paral_kgb=0, + comment="Input file for shear strain calculation.", ) + else: + raise RuntimeError("Don't know how to handle perturbation:\n %s" % str(pert)) inp.pop_tolerances() inp.set_vars(tolerance) + if efield_pert: + multi.set_vars(rfelfd=3) + + return multi + + def make_wfk_kerange_inputs(self, sigma_kerange, sigma_ngkpt, + kptopt=1, einterp=(1, 5, 0, 0)) -> MultiDataset: + """ + Return a |MultiDataset| with two inputs for performing a WFK calculation with the kerange trick. + This method should be called with the input associated to the NSCF run that produces + the WFK file used for the interpolation. + + Args: + sigma_kerange: The energy window for the WFK generation. + sigma_ngkpt: The fine grid of kpt inside the sigma_kerange interval. + kptopt: Option for the generation of the mesh. Default: use all symmetries. + einterp: The interpolation used. By default it is a star-function interpolation. + """ + # Create a MultiDataset from the nscf input + multi = MultiDataset.from_inputs([self, self]) + + # Activate the options needed to calculates the kpts within the sigma interval (Kerange.nc file) + multi[0].set_vars(optdriver=8, wfk_task='"wfk_kpts_erange"', kptopt=kptopt, + sigma_ngkpt=sigma_ngkpt, sigma_nshiftk=1, sigma_shiftk=[0, 0, 0], + einterp=einterp, sigma_erange=sigma_kerange, prtwf=0, + comment="Input file for wfk_kpts_erange calculation." + ) + multi[0].pop_vars(["iscf", "tolwfr", "prtden"]) + + # Modify the second nscf input to get a task that adds the kpt from Kerange.nc to the input file + # used to compute the WFK file. + multi[1].set_vars(optdriver=0, iscf=-2, kptopt=0, ngkpt=sigma_ngkpt, + comment="Input file for NSCF run with kerange.") + return multi + def make_eph_transport_input(self, ddb_ngqpt, sigma_erange, tmesh, eph_ngqpt_fine=None, kptopt=1, + mixprec=1, boxcutmin=1.1, ibte_prep=0, ibte_niter=200, ibte_abs_tol=0, + eph_restart=1) -> AbinitInput: + """ + Return an |AbinitInput| to perform phonon-limited transport calculations. + This method is usually called with the input associated to the NSCF run that produces + the WFK file used to start the EPH run so that we can directly inherit the k-mesh + + Args: + ddb_ngqpt: the coarse q-grid used to compute the DDB and the DVDB file. + sigma_erange: Energy window for k-states (see Abinit variable) + tmesh: The mesh of temperatures (in Kelvin) + eph_ngqpt_fine: the fine q-grid used for the Fourier interpolation. + kptopt: Option for the generation of the mesh. Default: use all symmetries. + mixprec: For the last task only, 1 is often used to make the EPH calculation faster. + Note that the Abinit default is 0. + boxcutmin: For the last task only, 1.1 is often used to decrease memory + and is faster over the Abinit default of 2. + ibte_prep: Set it to 1 to activate the iterative Boltzmann equation. Default is SERTA/MRTA. + ibte_niter: Max number of iterations to solve the Boltzmann equation. + ibte_abs_tol: Stopping criterion for the IBTE. 0 activatess the automatic determination of the threshold. + eph_restart: 1 to allow the restart of a run based on the SIGEPH.nc file. + """ + eph_ngqpt_fine = self.get("ngkpt") if eph_ngqpt_fine is None else eph_ngqpt_fine + nbdbuf = 0 if self.get("nbdbuf") is None else self.get("nbdbuf") + nband = self.get("nband") - nbdbuf # If nbdbuf is used in the NSCF computation, + # it cannot be used in the EPH driver and should be removed + new = self.new_with_vars( + optdriver=7, # Enter EPH driver. + eph_task=-4, # Compute imag part of sigma_eph. + ddb_ngqpt=ddb_ngqpt, # Ab-initio coarse q-mesh used to produce the DDB/DVDB files. + eph_ngqpt_fine=eph_ngqpt_fine, # Interpolate DFPT potentials on this denser q-mesh. + sigma_erange=sigma_erange, + tmesh=tmesh, + mixprec=mixprec, + boxcutmin=boxcutmin, + ibte_prep=ibte_prep, + ibte_niter=ibte_niter, + ibte_abs_tol=ibte_abs_tol, + nband=nband, + kptopt=kptopt, + eph_restart=eph_restart, + comment="Input file for phonon-limited transport calculations.", + ) + + new.pop_vars(["iscf", "prtwf", "tolwfr", "prtden", "nbdbuf"]) + #new.add_phbbands_vars() + + return new + + #def make_eph_zpr_input(self, ddb_ngqpt, tmesh, eph_ngqpt_fine=None,, + # mixprec=1, boxcutmin=1.1): + # """ + # Return an |AbinitInput| to perform phonon-limited transport calculations. + # This method is usually called with with the input associated to the NSCF run that produces + # the WFK file used to start the EPH run so that we can directly inherit the k-mesh + + # Args: + # ddb_ngqpt: the coarse qpt grid used to compute the DDB and DVDB files in the phonon_work. + # eph_ngqpt_fine: the fine qpt grid used for the Fourier interpolation. + # sigma_erange: Energy window for k-states (see Abinit variable) + # tmesh: The mesh of temperatures (in Kelvin) + # boxcutmin: For the last task only, 1.1 is often used to decrease memory and is faster over the Abinit default of 2. + # mixprec: For the last task only, 1 is often used to make the EPH calculation faster. Note that Abinit default is 0. + # """ + # eph_ngqpt_fine = self.get("ngkpt") if eph_ngqpt_fine is None else eph_ngqpt_fine + # new = self.new_with_vars( + # optdriver=7, # Enter EPH driver. + # eph_task=+4, # Compute real and imag part of sigma_eph. + # ddb_ngqpt=ddb_ngqpt, # Ab-initio coarse q-mesh used to produce the DDB/DVDB files. + # eph_ngqpt_fine=eph_ngqpt_fine, # Interpolate DFPT potentials on this denser q-mesh. + # tmesh=tmesh, + # mixprec=mixprec, + # boxcutmin=boxcutmin, + # ) + # #new.add_phbbands_vars() + + # return new + + #def make_eph_isotc_input(self, ddb_ngqpt, eph_fsewin, eph_ngqpt_fine=None,, + # mixprec=1, boxcutmin=1.1): + # """ + # Return an |AbinitInput| to perform phonon-limited transport calculations. + # This method is usually called with with the input associated to the NSCF run that produces + # the WFK file used to start the EPH run so that we can directly inherit the k-mesh + + # Args: + # ddb_ngqpt: the coarse qpt grid used to compute the DDB and DVDB files in the phonon_work. + # eph_fsewin: + # eph_ngqpt_fine: the fine qpt grid used for the Fourier interpolation. + # boxcutmin: For the last task only, 1.1 is often used to decrease memory and is faster over the Abinit default of 2. + # mixprec: For the last task only, 1 is often used to make the EPH calculation faster. Note that Abinit default is 0. + # """ + # eph_ngqpt_fine = self.get("ngkpt") if eph_ngqpt_fine is None else eph_ngqpt_fine + # new = self.new_with_vars( + # optdriver=7, # Enter EPH driver. + # eph_task=-4, # Compute imag part of Phi phonon self-energy due to to electrons. + # ddb_ngqpt=ddb_ngqpt, # Ab-initio coarse q-mesh used to produce the DDB/DVDB files. + # eph_ngqpt_fine=eph_ngqpt_fine, # Interpolate DFPT potentials on this denser q-mesh. + # eph_fsewin=eph_fsewin, + # mixprec=mixprec, + # boxcutmin=boxcutmin, + # comment="", + # ) + # #new.add_phbbands_vars() + + # return new + + def make_gwr_qprange_input(self, gwr_ntau, nband, ecuteps, gw_qprange=0, gwr_task=GWR_TASK.G0W0, + **kwargs) -> AbinitInput: + """ + Build and return an input file to compute QP corrections with the GWR code. + + Args: + gwr_ntau: Number of minimax points. + nband: Number of bands in Green's function + ecuteps: Cutoff energy for chi0 + gw_qprange = 0 to compute the QP corrections only for the fundamental and the direct gap. + gwr_task: String defining the GWR task + """ + new = self.new_with_vars( + optdriver=RUNL.GWR, + gwr_task=gwr_task, + gwr_ntau=gwr_ntau, + nband=nband, + ecuteps=ecuteps, + ecutsigx=4 * self["ecut"], # Exact, perhaps a bit overkilling. + nkptgw=0, + gw_qprange=gw_qprange, + comment="Input file for GWR QP calculations generated by AbiPy", + **kwargs + ) + return new + def abivalidate(self, workdir=None, manager=None): """ - Run ABINIT in dry-run mode to validate the input file. + Run ABINIT in dry-run mode to validate the input file. No change done in the input file. Args: - workdir: Working directory of the fake task used to compute the ibz. Use None for temporary dir. + workdir: Working directory of the temporary task. Use None for temporary dir. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. Return: @@ -1635,8 +2677,8 @@ def abivalidate(self, workdir=None, manager=None): retcode: Return code. 0 if OK. output_file: output file of the run. - log_file: log file of the Abinit run, use log_file.read() to access its content. - stderr_file: stderr file of the Abinit run. use stderr_file.read() to access its content. + log_file: log file of the Abinit run, use log_file.read() to access the content. + stderr_file: stderr file of the Abinit run. use stderr_file.read() to access the content. task: Task object """ task = AbinitTask.temp_shell_task(inp=self, workdir=workdir, manager=manager) @@ -1644,15 +2686,33 @@ def abivalidate(self, workdir=None, manager=None): return dict2namedtuple(retcode=retcode, output_file=task.output_file, log_file=task.log_file, stderr_file=task.stderr_file, task=task) + def abiget_dryrun_task(self, workdir, manager, **extra_vars): + """ + Run ABINIT in dry-run mode. Change some control variable to prevent Abinit from stopping. + Return Task object. + """ + # Avoid modifications in self. + inp = self.new_with_vars( + chksymbreak=0, # Bypass Abinit check as we always want to return results. + mem_test=0, # Disable memory check. + ) + if extra_vars: + inp.set_vars(**extra_vars) + + # Build a Task to run Abinit in --dry-run mode. + task = AbinitTask.temp_shell_task(inp, workdir=workdir, manager=manager) + task.start_and_wait(autoparal=False, exec_args=["--dry-run"]) + return task + def abiget_spacegroup(self, tolsym=None, retdict=False, workdir=None, manager=None, verbose=0): """ This function invokes Abinit to get the space group (as detected by Abinit, not by spglib) It should be called with an input file that contains all the mandatory variables required by ABINIT. Args: - tolsym: Abinit tolsym input variable. None correspondes to the default value. + tolsym: Abinit tolsym input variable. None corresponds to the default value. retdict: True to return dictionary with space group information instead of Structure. - workdir: Working directory of the fake task used to compute the ibz. Use None for temporary dir. + workdir: Working directory of the temporary task used to compute the IBZ. None for temporary dir. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. verbose: Verbosity level. @@ -1661,35 +2721,46 @@ def abiget_spacegroup(self, tolsym=None, retdict=False, workdir=None, manager=No else dict with e.g. {'bravais': 'Bravais cF (face-center cubic)', 'spg_number': 227, 'spg_symbol': 'Fd-3m'}. """ - # Avoid modifications in self. - inp = self.deepcopy() - if tolsym is not None: inp["tolsym"] = float(tolsym) - - # Bypass Abinit check as we always want to return results. - inp["chksymbreak"] = 0 - # Disable memory check. - inp["mem_test"] = 0 - - # Build a Task to run Abinit in --dry-run mode. - task = AbinitTask.temp_shell_task(inp, workdir=workdir, manager=manager) - task.start_and_wait(autoparal=False, exec_args=["--dry-run"]) - - # Parse the output file and return structure extracted from run.abo - from abipy.abio.outputs import AbinitOutputFile + extra_vars = {} + if tolsym is not None: extra_vars["tolsym"] = float(tolsym) + task = self.abiget_dryrun_task(workdir, manager, **extra_vars) try: - with AbinitOutputFile(task.output_file.path) as out: + with task.get_output_file() as out: if not retdict: return out.initial_structure else: dims_dataset, spginfo_dataset = out.get_dims_spginfo_dataset(verbose=verbose) return spginfo_dataset[1] + except Exception as exc: + self._handle_task_exception(task, exc) + def abiget_dims_spginfo(self, workdir=None, manager=None, verbose=0) -> tuple[dict, dict]: + """ + Return tuple of dictionaries with dimensions and spacegroup info. + """ + task = self.abiget_dryrun_task(workdir, manager) + try: + with task.get_output_file() as out: + dims_dataset, spginfo_dataset = out.get_dims_spginfo_dataset(verbose=verbose) + return dims_dataset[1], spginfo_dataset[1] except Exception as exc: self._handle_task_exception(task, exc) + #def get_qptopt(self) -> int: + # """Helper function that returns""" + # if "qptopt" in self: + # return self["qptopt"] + + # kptopt = self.get("kptopt", 1) + # nspinor = self.get("nspinor", 1) + # nsppol = self.get("nsppol", 1) + # nspden = self.get("nspden", 1) + # qptopt = 1 + # return qptopt + def abiget_ibz(self, ngkpt=None, shiftk=None, kptopt=None, workdir=None, manager=None, verbose=0): """ - This function computes the list of points in the IBZ and the corresponding weights. + This function computes the list of points in the IBZ with the corresponding weights. It should be called with an input file that contains all the mandatory variables required by ABINIT. Args: @@ -1703,17 +2774,14 @@ def abiget_ibz(self, ngkpt=None, shiftk=None, kptopt=None, workdir=None, manager Returns: `namedtuple` with attributes: points: |numpy-array| with points in the IBZ in reduced coordinates. - weights: |numpy-array| with weights of the points. + weights: |numpy-array| with the weights of the points. """ # Avoid modifications in self. - inp = self.deepcopy() - - # The magic value that makes ABINIT print the ibz and then stop. - inp["prtkpt"] = -2 - # Bypass Abinit check as we always want to return results. - inp["chksymbreak"] = 0 - # Disable memory check. - inp["mem_test"] = 0 + inp = self.new_with_vars( + prtkpt=-2, # The magic value that makes ABINIT print the IBZ and then stop. + chksymbreak=0, # Bypass Abinit check as we always want to return results. + mem_test=0, # Disable memory check. + ) if ngkpt is not None: inp["ngkpt"] = ngkpt if shiftk is not None: @@ -1738,20 +2806,67 @@ def abiget_ibz(self, ngkpt=None, shiftk=None, kptopt=None, workdir=None, manager except Exception as exc: self._handle_task_exception(task, exc) + def abiget_scr_ibz(self, ngkpt=None, shiftk=None, kptopt=None, workdir=None, manager=None, verbose=0): + """ + This function computes the list of points in the IBZ expected by the SCREENING code + It should be called with an input file that contains all the mandatory variables required by ABINIT. + This is usually the NSCF input file used to generate the WFK file used by SCR/SIGMA + + Args: + ngkpt: Number of divisions for the k-mesh (default None i.e. use ngkpt from self) + shiftk: List of shifts (default None i.e. use shiftk from self) + kptopt: Option for k-point generation. If None, the value in self is used. + workdir: Working directory of the fake task used to compute the ibz. Use None for temporary dir. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + verbose: verbosity level. + + Returns: + `namedtuple` with attributes: + points: |numpy-array| with q-points in the IBZ in reduced coordinates. + weights: |numpy-array| with the weights of the points. + """ + # Avoid modifications in self. + inp = self.new_with_vars( + nqptdm=-1, # The magic value that makes ABINIT print the q-points + chksymbreak=0, # Bypass Abinit check as we always want to return results. + mem_test=0, # Disable memory check. + ) + + if ngkpt is not None: inp["ngkpt"] = ngkpt + if shiftk is not None: + shiftk = np.reshape(shiftk, (-1, 3)) + inp.set_vars(shiftk=shiftk, nshiftk=len(shiftk)) + + if kptopt is not None: inp["kptopt"] = kptopt + if verbose: + print("Computing qptdms with input:\n", str(inp)) + + # Build a Task to run Abinit in a shell subprocess + task = AbinitTask.temp_shell_task(inp, workdir=workdir, manager=manager) + task.start_and_wait(autoparal=False) + + # Read the list of k-points from the netcdf file. + try: + with NetcdfReader(os.path.join(task.workdir, "qptdms.nc")) as r: + scr_ibz = collections.namedtuple("scr_ibz", "points weights") + return scr_ibz(points=r.read_value("reduced_coordinates_of_kpoints"), + weights=r.read_value("kpoint_weights")) + + except Exception as exc: + self._handle_task_exception(task, exc) + def _handle_task_exception(self, task, prev_exc): """ This method is called when we have executed a temporary task but we encounter - an exception when we try to extract data from the output results produced by Abinit + an exception when trying to extract data from the output results produced by Abinit It tries to extract information about the error and finally raises self.Error. .. example:: try: - do_something_with_the_output_files_produced_by_the_task except Exception as exc: - self._handle_task_exception(task, exc) """ # Check if there are errors in the log file. @@ -1760,9 +2875,9 @@ def _handle_task_exception(self, task, prev_exc): raise self.Error(str(report)) # Weird condition. Possible explanations: - # 1) Abinit cannot be executed or runtime errors due e.g to libraries + # 1) Abinit cannot be executed or runtime errors due e.g to libraries not in LD_LIBRARY_PATH # 2) IO buffering (Abinit called MPI_ABORT but files are not flushed before aborting. - # Try to return as much iformation as possible to aid debugging + # Try to return as much information as possible to faciliate debugging. errors = ["Problem in temp Task executed in %s" % task.workdir, "Previous exception %s" % prev_exc] @@ -1777,12 +2892,12 @@ def _handle_task_exception(self, task, prev_exc): emsg = "\n".join(errors) try: - # TODO: in principle task.debug() but I have to change pymatgen.io.abinit task.flow.debug() finally: raise self.Error(emsg) - def _abiget_irred_perts(self, perts_vars, qpt=None, ngkpt=None, shiftk=None, kptopt=None, workdir=None, manager=None): + def _abiget_irred_perts(self, perts_vars, qpt=None, ngkpt=None, shiftk=None, kptopt=None, + workdir=None, manager=None): """ This function, computes the list of irreducible perturbations for DFPT. It should be called with an input file that contains all the mandatory variables required by ABINIT. @@ -1798,7 +2913,7 @@ def _abiget_irred_perts(self, perts_vars, qpt=None, ngkpt=None, shiftk=None, kpt manager: |TaskManager| of the task. If None, the manager is initialized from the config file. Returns: - List of dictionaries with the Abinit variables defining the irreducible perturbation + List of dictionaries with the Abinit variables defining the irreducible perturbations Example: [{'idir': 1, 'ipert': 1, 'qpt': [0.25, 0.0, 0.0]}, @@ -1816,7 +2931,7 @@ def _abiget_irred_perts(self, perts_vars, qpt=None, ngkpt=None, shiftk=None, kpt if ngkpt is not None: inp["ngkpt"] = ngkpt if shiftk is not None: - shiftk = np.reshape(shiftk, (-1,3)) + shiftk = np.reshape(shiftk, (-1, 3)) inp.set_vars(shiftk=shiftk, nshiftk=len(inp['shiftk'])) inp.set_vars( @@ -1832,6 +2947,7 @@ def _abiget_irred_perts(self, perts_vars, qpt=None, ngkpt=None, shiftk=None, kpt # Build a Task to run Abinit in a shell subprocess task = AbinitTask.temp_shell_task(inp, workdir=workdir, manager=manager) task.start_and_wait(autoparal=False) + #print("-- log_file path:", task.log_file.path) # Parse the file to get the perturbations. try: @@ -1839,13 +2955,17 @@ def _abiget_irred_perts(self, perts_vars, qpt=None, ngkpt=None, shiftk=None, kpt except Exception as exc: # Sometimes the previous call raises: Cannot find next YAML document in /tmp/tmpskvdr_bo/run.log # perhaps because the log file is still being written (?) so let's wait a bit. + # On some machines, we found that the log file is truncated when MPI_ABORT is called and mpirun is used + # even to run simple tasks with 1 procs. + # In this case, one should try to use `shell_runner: ""` in manager.yaml to avoid using mpirun. time.sleep(5.0) try: return yaml_read_irred_perts(task.log_file.path) except Exception as exc: self._handle_task_exception(task, exc) - def abiget_irred_phperts(self, qpt=None, ngkpt=None, shiftk=None, kptopt=None, prepgkk=0, workdir=None, manager=None): + def abiget_irred_phperts(self, qpt=None, ngkpt=None, shiftk=None, kptopt=None, + prepgkk=0, prepalw=0, workdir=None, manager=None): """ This function, computes the list of irreducible perturbations for DFPT. It should be called with an input file that contains all the mandatory variables required by ABINIT. @@ -1856,6 +2976,7 @@ def abiget_irred_phperts(self, qpt=None, ngkpt=None, shiftk=None, kptopt=None, p ngkpt: Number of divisions for the k-mesh (default None i.e. use ngkpt from self) shiftk: Shiftks (default None i.e. use shiftk from self) kptopt: Option for k-point generation. If None, the value in self is used. + prepalw: 1 to activate computation of all 3*natom perts. Used to prepare longwave-limit calculation. prepgkk: 1 to activate computation of all 3*natom perts (debugging option). workdir: Working directory of the fake task used to compute the ibz. Use None for temporary dir. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. @@ -1872,6 +2993,7 @@ def abiget_irred_phperts(self, qpt=None, ngkpt=None, shiftk=None, kptopt=None, p rfatpol=[1, len(self.structure)], # Set of atoms to displace. rfdir=[1, 1, 1], # Along this set of reduced coordinate axis. prepgkk=prepgkk, + prepalw=prepalw, ) return self._abiget_irred_perts(phperts_vars, qpt=qpt, ngkpt=ngkpt, shiftk=shiftk, kptopt=kptopt, @@ -1879,7 +3001,7 @@ def abiget_irred_phperts(self, qpt=None, ngkpt=None, shiftk=None, kptopt=None, p def abiget_irred_ddeperts(self, ngkpt=None, shiftk=None, kptopt=None, workdir=None, manager=None): """ - This function, computes the list of irreducible perturbations for DFPT. + This function, computes the list of irreducible perturbations for DFPT computations. It should be called with an input file that contains all the mandatory variables required by ABINIT. Args: @@ -1929,7 +3051,7 @@ def abiget_irred_dteperts(self, ngkpt=None, shiftk=None, kptopt=None, ixc=None, {'idir': 2, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}] """ - dteperts_vars = dict(d3e_pert1_phon=1 if phonon_pert else 0, # phonon-type perturbation + dteperts_vars = dict(d3e_pert1_phon=1 if phonon_pert else 0, # phonon-type perturbation d3e_pert2_phon=0, d3e_pert3_phon=0, d3e_pert1_atpol=[1, len(self.structure)] if phonon_pert else None, @@ -1948,8 +3070,8 @@ def abiget_irred_dteperts(self, ngkpt=None, shiftk=None, kptopt=None, ixc=None, return self._abiget_irred_perts(dteperts_vars, qpt=(0, 0, 0), ngkpt=ngkpt, shiftk=shiftk, kptopt=kptopt, workdir=workdir, manager=manager) - def abiget_irred_strainperts(self, ngkpt=None, shiftk=None, kptopt=None, workdir=None, manager=None, - phonon_pert=True): + def abiget_irred_strainperts(self, ngkpt=None, shiftk=None, kptopt=None, phonon_pert=True, + efield_pert=False, prepalw=0, workdir=None, manager=None): """ This function, computes the list of irreducible perturbations for strain perturbations in DFPT. It should be called with an input file that contains all the mandatory variables required by ABINIT. @@ -1958,9 +3080,11 @@ def abiget_irred_strainperts(self, ngkpt=None, shiftk=None, kptopt=None, workdir ngkpt: Number of divisions for the k-mesh (default None i.e. use ngkpt from self) shiftk: Shiftks (default None i.e. use shiftk from self) kptopt: Option for k-point generation. If None, the value in self is used. + phonon_pert: if True the phonon perturbation at gamma is included. + efield_pert: if True, the electric field perturbation at gamma is included. Requires DDK files + prepalw: 1 to activate computation of all 3*natom perts. Used to prepare calculation of flexoelectric tensor. workdir: Working directory of the fake task used to compute the ibz. Use None for temporary dir. manager: |TaskManager| of the task. If None, the manager is initialized from the config file. - phonon_pert: if True the phonon perturbation at gamma will be included. Returns: List of dictionaries with the Abinit variables defining the irreducible perturbation @@ -1970,26 +3094,36 @@ def abiget_irred_strainperts(self, ngkpt=None, shiftk=None, kptopt=None, workdir [{'idir': 1, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}, {'idir': 2, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]}] """ - strainperts_vars = dict(rfstrs=3, # Do the strain perturbations - rfdir=(1,1,1), # All directions - # nqpt=1, # One wavevector is to be considered - # qpt=(0, 0, 0), # q-wavevector. - kptopt=kptopt, # Take into account time-reversal symmetry. - iscf=7 # Just so that it works with PAW ... #TODO: check this + strainperts_vars = dict(rfstrs=3, # Do all strain perturbations + rfdir=(1, 1, 1), # All directions + # nqpt=1, # One wavevector is to be considered + # qpt=(0, 0, 0), # q-wavevector. + kptopt=kptopt, # Take into account time-reversal symmetry. + iscf=7, # Just so that it works with PAW ... #TODO: check this + prepalw=prepalw, ) if phonon_pert: - strainperts_vars['rfphon'] = 1 # No phonon-type perturbation - strainperts_vars['rfatpol'] = (1,len(self.structure)) # Perturbation of all atoms + strainperts_vars['rfphon'] = 1 # No phonon-type perturbation + strainperts_vars['rfatpol'] = (1, len(self.structure)) # Perturbation of all atoms - return self._abiget_irred_perts(strainperts_vars, qpt=(0, 0, 0), ngkpt=ngkpt, shiftk=shiftk, - kptopt=kptopt, - workdir=workdir, manager=manager) + if efield_pert: + strainperts_vars['rfelfd'] = 3 # Activate E-field. Requires DDK files. - def pop_par_vars(self, all=False): + perts = self._abiget_irred_perts(strainperts_vars, qpt=(0, 0, 0), ngkpt=ngkpt, shiftk=shiftk, + kptopt=kptopt, workdir=workdir, manager=manager) + + #for i, p in enumerate(perts): + # if i == 0: print("abiget_irred_strainperts:") + # print(p) + + return perts + + def pop_par_vars(self, all=False) -> dict: """ Remove all the variables associated to parallelism from the input file. - Useful in case of a restart when we need to remove the parallel variables before rerunning autoparal + Useful in case of a restart when we need to remove the parallel variables + before rerunning autoparal """ parvars = ['npkpt', 'npfft', 'npband', 'npspinor', 'npimage'] if all: @@ -2000,18 +3134,18 @@ def pop_par_vars(self, all=False): return popped - def abiget_autoparal_pconfs(self, max_ncpus, autoparal=1, workdir=None, manager=None, verbose=0): + def abiget_autoparal_pconfs(self, max_ncpus, + autoparal=1, workdir=None, manager=None, verbose=0): """ Get all the possible configurations up to ``max_ncpus``. Return list of parallel configurations. """ - inp = self.deepcopy() - inp.set_vars(autoparal=autoparal, max_ncpus=max_ncpus) - - # Bypass Abinit check as we always want to return results. - inp["chksymbreak"] = 0 - # Disable memory check. - inp["mem_test"] = 0 + inp = self.new_with_vars( + autoparal=autoparal, + max_ncpus=max_ncpus, + chksymbreak=0, # Bypass Abinit check as we always want to return results. + mem_test=0, # Disable memory check. + ) # Run the job in a shell subprocess with mpi_procs = 1 # Return code is always != 0 @@ -2031,7 +3165,7 @@ def abiget_autoparal_pconfs(self, max_ncpus, autoparal=1, workdir=None, manager= def add_tags(self, tags): """ - Add tags to the input + Add tags to the input. Args: tags: A single tag or list/tuple/set of tags @@ -2043,7 +3177,7 @@ def add_tags(self, tags): def remove_tags(self, tags): """ - Remove tags from the input + Remove tags from the input. Args: tags: A single tag or list/tuple/set of tags @@ -2053,15 +3187,32 @@ def remove_tags(self, tags): else: self.tags.discard(tags) + def run_in_shell(self, workdir=None, manager=None, verbose=0) -> AbinitTask: + """ + Helper method to quickly execute abinit in a shell. + + Args: + workdir: Working directory of the fake task used to compute the ibz. Use None for temporary dir. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + verbose: verbosity level. + + Returns: + an |AbinitTask| of the executed calculation. + """ + task = AbinitTask.temp_shell_task(self, workdir=workdir, manager=manager) + if verbose: print("Running in:", task.workdir) + task.start_and_wait(autoparal=False) + return task + -class MultiDataset(object): +class MultiDataset: """ This object is essentially a list of |AbinitInput| objects. - that provides an easy-to-use interface to apply global changes to the - the inputs stored in the objects. + It provides an easy-to-use interface to apply global changes to the inputs. - Let's assume for example that multi contains two ``AbinitInput`` objects and we - want to set `ecut` to 1 in both dictionaries. The direct approach would be: + Let's assume for example that multi contains two ``AbinitInput`` objects and that we + want to set `ecut` to 1 in both dictionaries. + A direct (lengthy) approach would be: for inp in multi: inp.set_vars(ecut=1) @@ -2075,7 +3226,7 @@ class MultiDataset(object): multi.set_vars(ecut=1) - multi.get("ecut") returns a list of values. It's equivalent to: + multi.get("ecut") returns a list of values. It is equivalent to: [inp["ecut"] for inp in multi] @@ -2093,8 +3244,8 @@ class MultiDataset(object): Error = AbinitInputError @classmethod - def from_inputs(cls, inputs): - """Build object from a list of |AbinitInput| objects.""" + def from_inputs(cls, inputs: Union[list[AbinitInput], MultiDataset]) -> MultiDataset: + """Build a |MultiDataset| from a list of |AbinitInput| objects.""" for inp in inputs: if any(p1 != p2 for p1, p2 in zip(inputs[0].pseudos, inp.pseudos)): raise ValueError("Pseudos must be consistent when from_inputs is invoked.") @@ -2102,22 +3253,29 @@ def from_inputs(cls, inputs): # Build MultiDataset from input structures and pseudos and add inputs. multi = cls(structure=[inp.structure for inp in inputs], pseudos=inputs[0].pseudos, ndtset=len(inputs)) - # Add variables, decorators and tags. + # Add variables, decorators, tags and propagate enforce_znucl and enforce_typat (if any). for inp, new_inp in zip(inputs, multi): new_inp.set_vars(**inp) new_inp._decorators = inp.decorators + if inp.comment: + new_inp.set_comment(inp.comment) new_inp.tags = set(inp.tags) + if inp.enforce_znucl: + new_inp.enforce_znucl_and_typat(inp.enforce_znucl, inp.enforce_typat) return multi @classmethod - def replicate_input(cls, input, ndtset): + def replicate_input(cls, input: AbinitInput, ndtset: int) -> MultiDataset: """Construct a multidataset with ndtset from the |AbinitInput| input.""" multi = cls(input.structure, input.pseudos, ndtset=ndtset) for inp in multi: inp.set_vars({k: v for k, v in input.items()}) + if input.comment: + inp.set_comment(input.comment) inp.tags = set(input.tags) + inp.enforce_znucl_and_typat(input.enforce_znucl, input.enforce_typat) return multi @@ -2168,8 +3326,18 @@ def __init__(self, structure, pseudos, pseudo_dir="", ndtset=1): # raise selfError("Pseudos must be consistent when from_inputs is invoked.") @property - def ndtset(self): - """Number of inputs in self.""" + def is_multidataset(self) -> bool: + """Used to understand if we have an AbinitInput or a MultiDataset in polymorphic APIs.""" + return True + + @property + def is_input(self) -> bool: + """Used to understand if we have an AbinitInput or a MultiDataset in polymorphic APIs.""" + return False + + @property + def ndtset(self) -> int: + """Number of inputs in MultiDataset.""" return len(self) @property @@ -2178,25 +3346,26 @@ def pseudos(self): return self[0].pseudos @property - def ispaw(self): + def ispaw(self) -> bool: """True if PAW calculation.""" return all(p.ispaw for p in self.pseudos) @property - def isnc(self): + def isnc(self) -> bool: """True if norm-conserving calculation.""" return all(p.isnc for p in self.pseudos) - def __len__(self): + def __len__(self) -> int: + """Number of inputs.""" return len(self._inputs) - def __getitem__(self, key): + def __getitem__(self, key: int) -> AbinitInput: return self._inputs[key] - def __iter__(self): + def __iter__(self) -> Iterator[AbinitInput]: return self._inputs.__iter__() - def __getattr__(self, name): + def __getattr__(self, name: str): _inputs = object.__getattribute__(self, "_inputs") m = getattr(_inputs[0], name) if m is None: @@ -2219,7 +3388,7 @@ def on_all(*args, **kwargs): if isattr: on_all = on_all() return on_all - def __add__(self, other): + def __add__(self, other: Union[AbinitInput, MultiDataset]) -> MultiDataset: """self + other""" if isinstance(other, AbinitInput): new_mds = MultiDataset.from_inputs(self) @@ -2232,7 +3401,7 @@ def __add__(self, other): else: raise NotImplementedError("Operation not supported") - def __radd__(self, other): + def __radd__(self, other: Union[AbinitInput, MultiDataset]) -> MultiDataset: if isinstance(other, AbinitInput): new_mds = MultiDataset.from_inputs([other]) new_mds.extend(self) @@ -2242,14 +3411,14 @@ def __radd__(self, other): else: raise NotImplementedError("Operation not supported") - def append(self, abinit_input): + def append(self, abinit_input: AbinitInput) -> None: """Add a |AbinitInput| to the list.""" assert isinstance(abinit_input, AbinitInput) if any(p1 != p2 for p1, p2 in zip(abinit_input.pseudos, abinit_input.pseudos)): raise ValueError("Pseudos must be consistent when from_inputs is invoked.") self._inputs.append(abinit_input) - def extend(self, abinit_inputs): + def extend(self, abinit_inputs: Union[AbinitInput, MultiDataset]) -> None: """Extends self with a list of |AbinitInput| objects.""" assert all(isinstance(inp, AbinitInput) for inp in abinit_inputs) for inp in abinit_inputs: @@ -2257,33 +3426,36 @@ def extend(self, abinit_inputs): raise ValueError("Pseudos must be consistent when from_inputs is invoked.") self._inputs.extend(abinit_inputs) - def addnew_from(self, dtindex): + def addnew_from(self, dtindex: int) -> None: """Add a new entry in the multidataset by copying the input with index ``dtindex``.""" self.append(self[dtindex].deepcopy()) - def split_datasets(self): + def split_datasets(self) -> list[AbinitInput]: """Return list of |AbinitInput| objects..""" return self._inputs - def deepcopy(self): + def deepcopy(self) -> MultiDataset: """Deep copy of the MultiDataset.""" return copy.deepcopy(self) @property - def has_same_structures(self): - """True if all inputs in MultiDataset are equal.""" + def has_same_structures(self) -> bool: + """True if all inputs in the MultiDataset are equal.""" return all(self[0].structure == inp.structure for inp in self) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, mode="text", verbose=0, with_pseudos=True): + def to_string(self, mode="text", verbose=0, with_pseudos=True, files_file=False) -> str: """ - String representation i.e. the input file read by Abinit. + String representation i.e. the ABINIT input file. Args: mode: Either ``text`` or ``html`` if HTML output with links is wanted. with_pseudos: False if JSON section with pseudo data should not be added. + files_file: if True a string compatible with the presence of a files file + will be generated. Otherwise all the required variables will be added + to the string. """ if mode == "html": var_database = get_abinit_variables() @@ -2300,7 +3472,7 @@ def has_same_variable(kref, vref, other_inp): # Don't repeat variable that are common to the different datasets. # Put them in the `Global Variables` section and exclude these variables in inp.to_string - global_vars = set() + global_vars = list() for k0, v0 in self[0].items(): isame = True for i in range(1, self.ndtset): @@ -2308,17 +3480,24 @@ def has_same_variable(kref, vref, other_inp): if not isame: break if isame: - global_vars.add(k0) + global_vars.append((k0, v0)) #print("global_vars vars", global_vars) + if not files_file: + for k, v in _DATA_PREFIX.items(): + if k not in self[0]: + global_vars.append((k, v)) + global_vars.extend(self[0].pseudos_abivars.items()) + w = 92 if global_vars: lines.append(w * "#") lines.append("#### Global Variables.") lines.append(w * "#") - for key in global_vars: + for key, value in global_vars: vname = key if mode == "text" else var_database[key].html_link(label=key) - lines.append(str(InputVariable(vname, self[0][key]))) + value = format_string_abivars(vname, value, "abinit") + lines.append(str(InputVariable(vname, value))) has_same_structures = self.has_same_structures if has_same_structures: @@ -2326,15 +3505,17 @@ def has_same_variable(kref, vref, other_inp): lines.append(w * "#") lines.append("####" + ("STRUCTURE").center(w - 1)) lines.append(w * "#") - for key, value in self[0].structure.to_abivars().items(): + for key, value in self[0].structure_abivars.items(): vname = key if mode == "text" else var_database[key].html_link(label=key) lines.append(str(InputVariable(vname, value))) + global_vars_names = [v[0] for v in global_vars] + for i, inp in enumerate(self): header = "##### DATASET %d #####" % (i + 1) is_last = (i == self.ndtset - 1) s = inp.to_string(post=str(i + 1), with_pseudos=is_last and with_pseudos, mode=mode, - with_structure=not has_same_structures, exclude=global_vars) + with_structure=not has_same_structures, exclude=global_vars_names) if s: header = len(header) * "#" + "\n" + header + "\n" + len(header) * "#" + "\n" s = "\n" + header + s + "\n" @@ -2351,11 +3532,11 @@ def has_same_variable(kref, vref, other_inp): # the input and output files thus complicating the algorithms we have to use to locate the files. return self[0].to_string(mode=mode, with_pseudos=with_pseudos) - def _repr_html_(self): + def _repr_html_(self) -> str: """Integration with jupyter_ notebooks.""" return self.to_string(mode="html") - def get_vars_dataframe(self, *varnames): + def get_vars_dataframe(self, *varnames) -> pd.DataFrame: """ Return pandas DataFrame with the value of the variables specified in `varnames`. @@ -2363,7 +3544,6 @@ def get_vars_dataframe(self, *varnames): df = multi.get_vars_dataframe("ecut", "ngkpt") """ - import pandas as pd frames = [] for i, inp in enumerate(self): df = pd.DataFrame([{v: inp.get(v, None) for v in varnames}], @@ -2371,9 +3551,9 @@ def get_vars_dataframe(self, *varnames): frames.append(df) return pd.concat(frames) - def filter_by_tags(self, tags=None, exclude_tags=None): + def filter_by_tags(self, tags=None, exclude_tags=None) -> MultiDataset: """ - Filters the input according to the tags + Filters the inputs according to the tags Args: tags: A single tag or list/tuple/set of tags @@ -2402,7 +3582,7 @@ def filter_by_tags(self, tags=None, exclude_tags=None): return MultiDataset.from_inputs(inputs) if inputs else None - def add_tags(self, tags, dtindeces=None): + def add_tags(self, tags, dtindeces=None) -> None: """ Add tags to the selected inputs @@ -2413,7 +3593,7 @@ def add_tags(self, tags, dtindeces=None): for i in dtindeces if dtindeces else range(len(self)): self[i].add_tags(tags) - def remove_tags(self, tags, dtindeces=None): + def remove_tags(self, tags, dtindeces=None) -> None: """ Remove tags from the selected inputs @@ -2424,7 +3604,7 @@ def remove_tags(self, tags, dtindeces=None): for i in dtindeces if dtindeces else range(len(self)): self[i].remove_tags(tags) - def filter_by_runlevel(self, runlevel): + def filter_by_runlevel(self, runlevel) -> MultiDataset: """ Return new |MultiDataset| object in which only the inputs with the given runlevel are selected. """ @@ -2437,33 +3617,97 @@ def filter_by_runlevel(self, runlevel): return MultiDataset.from_inputs(inputs) if inputs else None - def write(self, filepath="run.abi"): + def write(self, filepath: str = "run.abi", split: bool = True) -> None: """ - Write ``ndset`` input files to disk. The name of the file - is constructed from the dataset index e.g. run0.abi + Write ``ndset`` input files to disk. + The name of the file is constructed from the dataset index e.g. runDS0.abi """ - root, ext = os.path.splitext(filepath) - for i, inp in enumerate(self): - p = root + "DS%d" % i + ext - inp.write(filepath=p) + if split: + root, ext = os.path.splitext(filepath) + for i, inp in enumerate(self): + p = root + "DS%d" % i + ext + inp.write(filepath=p) + else: + with open(filepath, "wt") as fh: + fh.write(str(self)) + + def make_targz(self, tarname: str = "input.tar.gz", **kwargs) -> str: + """ + Build targz file with the Multidataset input and the associated pseudos. + Return path to the targz file. + """ + back = os.getcwd() + tmpdir = tempfile.mkdtemp() + os.chdir(tmpdir) + + name = os.path.join(tmpdir, tarname) + with tarfile.open(name=name, mode='w:gz', **kwargs) as tar: + filepath = "run.abi" + self.write(filepath=filepath, split=False) + tar.add(filepath) + + for dirname in ("indata", "tmpdata", "outdata"): + #print("Adding dir:", dirname) + os.mkdir(dirname) + p = os.path.join(dirname, "__empty__") + with open(p, "wt") as fh: + fh.write("Empty placeholder") + tar.add(p) + + for pseudo in self.pseudos: + tar.add(pseudo.filepath, arcname=pseudo.basename) + + os.chdir(back) + return name class AnaddbInputError(Exception): """Base error class for exceptions raised by `AnaddbInput`""" -class AnaddbInput(AbiAbstractInput, Has_Structure): +class AnaddbInput(AbiAbstractInput, MSONable, Has_Structure): """ This object stores the anaddb variables. - .. rubric:: Inheritance Diagram .. inheritance-diagram:: AnaddbInput """ Error = AnaddbInputError - def __init__(self, structure, comment="", anaddb_args=None, anaddb_kwargs=None, spell_check=True): + @pmg_serialize + def as_dict(self) -> dict: + """ + JSON interface used in pymatgen for easier serialization. + """ + anaddb_args = [] + for key, value in self.items(): + if isinstance(value, np.ndarray): value = value.tolist() + anaddb_args.append((key, value)) + + return dict(structure=self.structure.as_dict(), + comment=self.comment, + anaddb_args=anaddb_args, + spell_check=self.spell_check, + ) + + @classmethod + def from_dict(cls, d: dict) -> AnaddbInput: + """ + JSON interface used in pymatgen for easier serialization. + """ + return cls(d["structure"], + comment=d["comment"], + anaddb_args=d["anaddb_args"], + spell_check=d["spell_check"], + ) + + def __init__(self, + structure: Structure, + comment: str = "", + anaddb_args=None, + anaddb_kwargs=None, + spell_check: bool = True): """ Args: @@ -2474,7 +3718,7 @@ def __init__(self, structure, comment="", anaddb_args=None, anaddb_kwargs=None, spell_check: False to disable spell checking for input variables. """ self.set_spell_check(spell_check) - self._structure = structure + self._structure = Structure.as_structure(structure) self.comment = "" if comment is None else str(comment) anaddb_args = [] if anaddb_args is None else anaddb_args @@ -2491,26 +3735,25 @@ def __init__(self, structure, comment="", anaddb_args=None, anaddb_kwargs=None, self._vars = OrderedDict(args) @property - def vars(self): + def vars(self) -> dict: return self._vars - def set_spell_check(self, false_or_true): + def set_spell_check(self, false_or_true: bool) -> None: """Activate/Deactivate spell-checking""" self._spell_check = bool(false_or_true) @property - def spell_check(self): + def spell_check(self) -> bool: """True if spell checking is activated.""" try: return self._spell_check except AttributeError: # This is to maintain compatibility with pickle return False - def _check_varname(self, key): + def _check_varname(self, key: str) -> None: if self.spell_check and not is_anaddb_var(key): raise self.Error(""" -Cannot find variable `%s` in internal database. -If you think this is not a typo, use: +Cannot find variable `%s` in the internal database. If you think this is not a typo, use: input.set_spell_check(False) @@ -2518,8 +3761,10 @@ def _check_varname(self, key): with the Abinit version you are using. Please contact the AbiPy developers.""" % key) @classmethod - def modes_at_qpoint(cls, structure, qpoint, asr=2, chneut=1, dipdip=1, ifcflag=0, lo_to_splitting=False, - directions=None, anaddb_args=None, anaddb_kwargs=None, spell_check=False): + def modes_at_qpoint(cls, structure, qpoint, asr=2, chneut=1, dipdip=1, dipquad=1, quadquad=1, + ifcflag=0, lo_to_splitting=False, + directions=None, anaddb_args=None, + anaddb_kwargs=None, spell_check=False) -> AnaddbInput: """ Build an |AnaddbInput| for the calculation of the phonon frequencies at a given q-point. @@ -2527,6 +3772,7 @@ def modes_at_qpoint(cls, structure, qpoint, asr=2, chneut=1, dipdip=1, ifcflag=0 structure: |Structure| object qpoint: Reduced coordinates of the q-point where phonon frequencies and modes are wanted asr, chneut, dipdp, ifcflag: Anaddb input variable. See official documentation. + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). lo_to_splitting: if True calculation of the LO-TO splitting will be included if qpoint==Gamma directions: list of 3D directions along which the LO-TO splitting will be calculated. If None the three cartesian direction will be used @@ -2534,32 +3780,76 @@ def modes_at_qpoint(cls, structure, qpoint, asr=2, chneut=1, dipdip=1, ifcflag=0 anaddb_kwargs: Dictionary with Anaddb input variables (default: empty) spell_check: False to disable spell checking for input variables. """ - new = cls(structure, comment="ANADDB input for phonon frequencies at one q-point", - anaddb_args=anaddb_args, anaddb_kwargs=anaddb_kwargs, spell_check=spell_check) - # We need a numpy array. qpoint = qpoint.frac_coords if hasattr(qpoint, "frac_coords") else np.array(qpoint) if len(qpoint) != 3: raise ValueError("Wrong q-point %s" % qpoint) + return cls.modes_at_qpoints(structure=structure, qpoints=[qpoint], asr=asr, chneut=chneut, dipdip=dipdip, + dipquad=dipquad, quadquad=quadquad, + ifcflag=ifcflag, lo_to_splitting=lo_to_splitting, directions=directions, + anaddb_args=anaddb_args, anaddb_kwargs=anaddb_kwargs, spell_check=spell_check) + + @classmethod + def modes_at_qpoints(cls, structure, qpoints, asr=2, chneut=1, dipdip=1, dipquad=1, quadquad=1, + ifcflag=0, lo_to_splitting=False, + directions=None, ngqpt=None, q1shft=(0, 0, 0), anaddb_args=None, anaddb_kwargs=None, + spell_check=False) -> AnaddbInput: + """ + Build an |AnaddbInput| for the calculation of the phonon frequencies at a given q-point. + + Args: + structure: |Structure| object + qpoints: List of reduced coordinates of the q-point where phonon frequencies and modes are wanted + asr, chneut, dipdp, ifcflag: Anaddb input variable. See official documentation. + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). + lo_to_splitting: if True calculation of the LO-TO splitting will be included if qpoint==Gamma + directions: list of 3D directions along which the LO-TO splitting will be calculated. If None the three + cartesian direction will be used + ngqpt: Monkhorst-Pack divisions for the phonon Q-mesh. Required if ifcflag=1. + q1shft: Shifts used for the coarse Q-mesh + anaddb_args: List of tuples (key, value) with Anaddb input variables (default: empty) + anaddb_kwargs: Dictionary with Anaddb input variables (default: empty) + spell_check: False to disable spell checking for input variables. + """ + if ifcflag == 1 and ngqpt is None: + raise ValueError("If ifcflag is activated ngqpt should be defined.") + + new = cls(structure, comment="ANADDB input for phonon frequencies for a list of q-points generated by AbiPy.", + anaddb_args=anaddb_args, anaddb_kwargs=anaddb_kwargs, spell_check=spell_check) + + # We need a numpy array. + qpoints = np.array([qpoint.frac_coords if hasattr(qpoint, "frac_coords") else qpoint for qpoint in qpoints]) + n_qpoints = len(qpoints) + new.set_vars( ifcflag=ifcflag, # Interatomic force constant flag asr=asr, # Acoustic Sum Rule chneut=chneut, # Charge neutrality requirement for effective charges. dipdip=dipdip, # Dipole-dipole interaction treatment + dipquad=dipquad, + quadquad=quadquad, # This part is fixed - nph1l=1, - qph1l=np.append(qpoint, 1) + nph1l=n_qpoints, + qph1l=np.append(qpoints, [[1]] * n_qpoints, axis=-1) ) - if lo_to_splitting and np.allclose(qpoint, [0, 0, 0]): + if ngqpt is not None: + q1shft = np.reshape(q1shft, (-1, 3)) + new.set_vars( + ngqpt=ngqpt, + q1shft=q1shft, + nqshft=len(q1shft) + ) + + if lo_to_splitting and any(np.allclose(q, [0, 0, 0]) for q in qpoints): if directions is None: directions = [1, 0, 0, 0, 1, 0, 0, 0, 1] directions = np.reshape(directions, (-1, 3)) # append 0 to specify that these are directions, directions = np.c_[directions, np.zeros(len(directions))] - # add + # add variables. new.set_vars( nph2l=len(directions), qph2l=directions @@ -2569,7 +3859,7 @@ def modes_at_qpoint(cls, structure, qpoint, asr=2, chneut=1, dipdip=1, ifcflag=0 @classmethod def piezo_elastic(cls, structure, relaxed_ion=True, stress_correction=False, - asr=2, chneut=1, dipdip=1, anaddb_args=None, anaddb_kwargs=None): + asr=2, chneut=1, dipdip=1, anaddb_args=None, anaddb_kwargs=None) -> AnaddbInput: """ Build an |AnaddbInput| for the calculation of piezoelectric and elastic tensor calculations. @@ -2585,8 +3875,10 @@ def piezo_elastic(cls, structure, relaxed_ion=True, stress_correction=False, @classmethod def phbands_and_dos(cls, structure, ngqpt, nqsmall, qppa=None, ndivsm=20, line_density=None, q1shft=(0, 0, 0), - qptbounds=None, asr=2, chneut=0, dipdip=1, dos_method="tetra", lo_to_splitting=False, - anaddb_args=None, anaddb_kwargs=None, spell_check=False, comment=None): + qptbounds=None, asr=2, chneut=0, dipdip=1, dipquad=1, quadquad=1, + dos_method="tetra", lo_to_splitting=False, + with_ifc=False, anaddb_args=None, anaddb_kwargs=None, + spell_check=False, comment=None) -> AnaddbInput: """ Build an |AnaddbInput| for the computation of phonon bands and phonon DOS. @@ -2595,7 +3887,7 @@ def phbands_and_dos(cls, structure, ngqpt, nqsmall, qppa=None, ndivsm=20, line_d ngqpt: Monkhorst-Pack divisions for the phonon Q-mesh (coarse one) nqsmall: Used to generate the (dense) mesh for the DOS. It defines the number of q-points used to sample the smallest lattice vector. - qppa: Defines the homogeneous q-mesh used for the DOS in units of q-points per reciproval atom. + qppa: Defines the homogeneous q-mesh used for the DOS in units of q-points per atom. Overrides nqsmall. line_density: Defines the a density of k-points per reciprocal atom to plot the phonon dispersion. Overrides ndivsm. @@ -2604,10 +3896,13 @@ def phbands_and_dos(cls, structure, ngqpt, nqsmall, qppa=None, ndivsm=20, line_d q1shft: Shifts used for the coarse Q-mesh qptbounds Boundaries of the path. If None, the path is generated from an internal database depending on the input structure. - asr, chneut, dipdp: Anaddb input variable. See official documentation. + asr, chneut: Anaddb input variable. See official documentation. + dipdip: 1 to activate the treatment of the dipole-dipole interaction (requires BECS and dielectric tensor). + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). dos_method: Possible choices: "tetra", "gaussian" or "gaussian:0.001 eV". In the later case, the value 0.001 eV is used as gaussian broadening lo_to_splitting: if True calculation of the LO-TO splitting will be included + with_ifc: if True calculation of the interatomic force constants will be included. anaddb_args: List of tuples (key, value) with Anaddb input variables (default: empty) anaddb_kwargs: Dictionary with Anaddb input variables (default: empty) spell_check: False to disable spell checking for input variables. @@ -2626,7 +3921,7 @@ def phbands_and_dos(cls, structure, ngqpt, nqsmall, qppa=None, ndivsm=20, line_d else: raise NotImplementedError("Wrong value for dos_method: %s" % str(dos_method)) - new = cls(structure, comment="ANADDB input for phonon bands and DOS" if not comment else comment, + new = cls(structure, comment="ANADDB input for phonon bands and DOS generated by AbiPy" if not comment else comment, anaddb_args=anaddb_args, anaddb_kwargs=anaddb_kwargs, spell_check=spell_check) # Parameters for the DOS @@ -2642,15 +3937,8 @@ def phbands_and_dos(cls, structure, ngqpt, nqsmall, qppa=None, ndivsm=20, line_d # Parameters for the Bandstructure. if line_density: - hs = HighSymmKpath(structure, symprec=1e-2) - qpts, labels_list = hs.get_kpoints(line_density=line_density, coords_are_cartesian=False) - # remove repeated q-points since those do - # interfere with _set_split_vals in the phonon plotter - qph1l = [qpts[0]] - for qpt in qpts[1:]: - if not np.array_equal(qpt,qph1l[-1]): - qph1l.append(qpt) - #set new variables + qph1l = kpoints_from_line_density(structure, line_density) + # Set new variables new['qph1l'] = [q.tolist()+[1] for q in qph1l] new['nph1l'] = len(qph1l) qptbounds = structure.calc_kptbounds() @@ -2667,6 +3955,8 @@ def phbands_and_dos(cls, structure, ngqpt, nqsmall, qppa=None, ndivsm=20, line_d asr=asr, chneut=chneut, dipdip=dipdip, + dipquad=dipquad, + quadquad=quadquad, ) if lo_to_splitting: @@ -2690,10 +3980,20 @@ def phbands_and_dos(cls, structure, ngqpt, nqsmall, qppa=None, ndivsm=20, line_d qph2l=directions ) + if with_ifc: + new.set_vars( + ifcout=10000000, + natifc=len(structure), + atifc=list(range(1, len(structure) + 1)), + ifcana=1, + prt_ifc=1 + ) + return new @classmethod - def modes(cls, structure, enunit=2, asr=2, chneut=1, anaddb_args=None, anaddb_kwargs=None): + def modes(cls, structure, + enunit=2, asr=2, chneut=1, anaddb_args=None, anaddb_kwargs=None) -> AnaddbInput: """ Build an |AnaddbInput| for the computation of phonon modes. @@ -2709,7 +4009,8 @@ def modes(cls, structure, enunit=2, asr=2, chneut=1, anaddb_args=None, anaddb_kw anaddb_args: List of tuples (key, value) with Anaddb input variables (default: empty) anaddb_kwargs: Dictionary with Anaddb input variables (default: empty) """ - new = cls(structure, comment="ANADDB input for modes", anaddb_args=anaddb_args, anaddb_kwargs=anaddb_kwargs) + new = cls(structure, comment="ANADDB input for modes generated by AbiPy", + anaddb_args=anaddb_args, anaddb_kwargs=anaddb_kwargs) new.set_vars( enunit=enunit, @@ -2729,7 +4030,7 @@ def modes(cls, structure, enunit=2, asr=2, chneut=1, anaddb_args=None, anaddb_kw @classmethod def ifc(cls, structure, ngqpt, ifcout=None, q1shft=(0, 0, 0), asr=2, chneut=1, dipdip=1, anaddb_args=None, - anaddb_kwargs=None): + anaddb_kwargs=None) -> AnaddbInput: """ Build an |AnaddbInput| for the computation of interatomic force constants. @@ -2742,7 +4043,7 @@ def ifc(cls, structure, ngqpt, ifcout=None, q1shft=(0, 0, 0), asr=2, chneut=1, d anaddb_args: List of tuples (key, value) with Anaddb input variables (default: empty) anaddb_kwargs: Dictionary with Anaddb input variables (default: empty) """ - new = cls(structure, comment="ANADDB input for IFC", + new = cls(structure, comment="ANADDB input for IFC generated by AbiPy.", anaddb_args=anaddb_args, anaddb_kwargs=anaddb_kwargs) q1shft = np.reshape(q1shft, (-1, 3)) @@ -2772,7 +4073,7 @@ def ifc(cls, structure, ngqpt, ifcout=None, q1shft=(0, 0, 0), asr=2, chneut=1, d def dfpt(cls, structure, ngqpt=None, relaxed_ion=False, piezo=False, dde=False, strain=False, dte=False, raman=False, stress_correction=False, nqsmall=None, qppa=None, ndivsm=20, line_density=None, q1shft=(0, 0, 0), qptbounds=None, asr=2, chneut=1, dipdip=1, ramansr=1, alphon=1, dos_method="tetra", - directions=None, anaddb_args=None, anaddb_kwargs=None, comment=None): + directions=None, anaddb_args=None, anaddb_kwargs=None, comment=None) -> AnaddbInput: """ Builds an |AnaddbInput| to post-process a generic DFPT calculation. @@ -2891,11 +4192,11 @@ def dfpt(cls, structure, ngqpt=None, relaxed_ion=False, piezo=False, dde=False, return anaddb_input @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure - def to_string(self, sortmode=None, mode="text", verbose=0): + def to_string(self, sortmode=None, mode="text", verbose=0, files_file=False) -> str: """ String representation. @@ -2918,19 +4219,31 @@ def to_string(self, sortmode=None, mode="text", verbose=0): else: raise ValueError("Unsupported value for sortmode %s" % str(sortmode)) - root = "https://docs.abinit.org/variables/anaddb/" - for varname in keys: - value = self[varname] - if mode == "html": varname = root + "#%s" % varname - app(str(InputVariable(varname, value))) + if mode == "html": + var_database = get_anaddb_variables() + + if not files_file and "outdata_prefix" not in keys: + value = format_string_abivars("outdata_prefix", _DATA_PREFIX["outdata_prefix"], "anaddb") + app(str(InputVariable("outdata_prefix", value))) + + for vname in keys: + if files_file and any(p in vname for p in ("prefix", "file")): + continue + value = self[vname] + #root = "https://docs.abinit.org/variables/anaddb/" + #if mode == "html": vname = root + "#%s" % vname + if mode == "html": vname = var_database[vname].html_link(label=vname) + value = format_string_abivars(vname, value, "anaddb") + #print("vname:", vname, "value:", value) + app(str(InputVariable(vname, value))) return "\n".join(lines) if mode == "text" else "\n".join(lines).replace("\n", "
") - def _repr_html_(self): + def _repr_html_(self) -> str: """Integration with jupyter_ notebooks.""" return self.to_string(mode="html") - def set_qpath(self, ndivsm, qptbounds=None): + def set_qpath(self, ndivsm, qptbounds=None) -> dict: """ Set the variables for the computation of the phonon band structure. @@ -2944,7 +4257,7 @@ def set_qpath(self, ndivsm, qptbounds=None): return self.set_vars(ndivsm=ndivsm, nqpath=len(qptbounds), qpath=qptbounds) - def set_autoqmesh(self, nqsmall): + def set_autoqmesh(self, nqsmall) -> dict: """ Set the variable nqpt for the sampling of the BZ. @@ -2953,7 +4266,7 @@ def set_autoqmesh(self, nqsmall): """ return self.set_vars(ng2qpt=self.structure.calc_ngkpt(nqsmall)) - def abivalidate(self, workdir=None, manager=None): + def abivalidate(self, workdir: str = None, manager=None): """ Run ANADDB in dry-run mode to validate the input file. @@ -2984,12 +4297,12 @@ def __str__(self): return (4*" ").join([sval, "!" + self.help]) @property - def url(self): + def url(self) -> str: """The url associated to the variable.""" root = "https://docs.abinit.org/variables/optic/" return root + "#%s" % self.name - def html_link(self, label=None): + def html_link(self, label=None) -> str: """String with the URL of the web page.""" return '%s' % (self.url, self.name if label is None else label) @@ -3055,7 +4368,7 @@ class OpticInput(AbiAbstractInput, MSONable): _NAME2VAR = {v.name: v for v in _VARIABLES} def __init__(self, **kwargs): - # Initalize with default values. + # Initialize with default values. self._vars = collections.OrderedDict((v.name, v.default) for v in self._VARIABLES) # Update the variables with the values passed by the user @@ -3068,23 +4381,23 @@ def __str__(self): return self.to_string() @property - def vars(self): + def vars(self) -> dict: return self._vars - def _check_varname(self, key): + def _check_varname(self, key: str) -> None: if key not in self._VARNAMES: raise self.Error("%s is not a valid optic variable.\n" "If you are sure the name is correct, please change the _VARIABLES list in:\n%s" % (key, __file__)) - def get_default(self, key): + def get_default(self, key: str): """Return the default value of variable `key`.""" for var in self._VARIABLES: if var.name == key: return var.default raise self.Error("Cannot find %s in _VARIABLES" % str(key)) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> OpticInput: """ JSON interface used in pymatgen for easier serialization. """ @@ -3096,7 +4409,7 @@ def from_dict(cls, d): # TODO #@pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: """ JSON interface used in pymatgen for easier serialization. """ @@ -3116,7 +4429,7 @@ def as_dict(self): return my_dict - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0, files_file: bool = False) -> str: """String representation.""" table = [] app = table.append @@ -3140,10 +4453,6 @@ def to_string(self, verbose=0): return "\n".join(lines) - #def _repr_html_(self): - # """Integration with jupyter notebooks.""" - # return self.to_string(mode="html") - def only_independent_chi_components(self, structure, assume_symmetric_tensor=False, symprec=1e-3, angle_tolerance=5): """ @@ -3215,7 +4524,7 @@ def abivalidate(self, workdir=None, manager=None): stderr_file=None, task=None) -class Cut3DInput(MSONable, object): +class Cut3DInput(MSONable): """ This object stores the options to run a single cut3d analysis. @@ -3240,13 +4549,13 @@ def __init__(self, infile_path=None, output_filepath=None, options=None): def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """Returns a string with the input.""" lines = [self.infile_path] lines.extend(self.options) return '\n'.join(lines) - def write(self, filepath): + def write(self, filepath: str) -> None: """Writes the input to a file.""" if self.infile_path is None or self.options is None: raise ValueError("Infile path and options should be provided") @@ -3255,7 +4564,7 @@ def write(self, filepath): f.write(self.to_string()) @classmethod - def _convert(cls, infile_path, output_filepath, out_option): + def _convert(cls, infile_path, output_filepath, out_option) -> Cut3DInput: """ Generic function used to generate the input for convertions using cut3d @@ -3273,7 +4582,7 @@ def _convert(cls, infile_path, output_filepath, out_option): return cls(infile_path=infile_path, output_filepath=output_filepath, options=options) @classmethod - def den_to_3d_formatted(cls, density_filepath, output_filepath): + def den_to_3d_formatted(cls, density_filepath, output_filepath) -> Cut3DInput: """ Generates a cut3d input for the conversion to a 3D formatted format. @@ -3287,7 +4596,7 @@ def den_to_3d_formatted(cls, density_filepath, output_filepath): return cls._convert(density_filepath, output_filepath, 5) @classmethod - def den_to_3d_indexed(cls, density_filepath, output_filepath): + def den_to_3d_indexed(cls, density_filepath, output_filepath) -> Cut3DInput: """ Generates a cut3d input for the conversion to a 3D indexed format. @@ -3301,7 +4610,7 @@ def den_to_3d_indexed(cls, density_filepath, output_filepath): return cls._convert(density_filepath, output_filepath, 6) @classmethod - def den_to_molekel(cls, density_filepath, output_filepath): + def den_to_molekel(cls, density_filepath, output_filepath) -> Cut3DInput: """ Generates a cut3d input for the conversion to a Molekel format. @@ -3315,7 +4624,7 @@ def den_to_molekel(cls, density_filepath, output_filepath): return cls._convert(density_filepath, output_filepath, 7) @classmethod - def den_to_tecplot(cls, density_filepath, output_filepath): + def den_to_tecplot(cls, density_filepath, output_filepath) -> Cut3DInput: """ Generates a cut3d input for the conversion to a Tecplot format. @@ -3329,7 +4638,7 @@ def den_to_tecplot(cls, density_filepath, output_filepath): return cls._convert(density_filepath, output_filepath, 8) @classmethod - def den_to_xsf(cls, density_filepath, output_filepath, shift=None): + def den_to_xsf(cls, density_filepath, output_filepath, shift=None) -> Cut3DInput: """ Generates a cut3d input for the conversion to an xsf format. @@ -3353,7 +4662,7 @@ def den_to_xsf(cls, density_filepath, output_filepath, shift=None): return cls(infile_path=density_filepath, output_filepath=output_filepath, options=options) @classmethod - def den_to_cube(cls, density_filepath, output_filepath): + def den_to_cube(cls, density_filepath, output_filepath) -> Cut3DInput: """ Generates a cut3d input for the conversion to a cube format. @@ -3367,7 +4676,7 @@ def den_to_cube(cls, density_filepath, output_filepath): return cls._convert(density_filepath, output_filepath, 14) @classmethod - def hirshfeld(cls, density_filepath, all_el_dens_paths): + def hirshfeld(cls, density_filepath, all_el_dens_paths) -> Cut3DInput: """ Generates a cut3d input for the calculation of the Hirshfeld charges from the density. @@ -3385,14 +4694,14 @@ def hirshfeld(cls, density_filepath, all_el_dens_paths): return cls(infile_path=density_filepath, options=options) @classmethod - def hirshfeld_from_fhi_path(cls, density_filepath, structure, fhi_all_el_path): + def hirshfeld_from_fhi_path(cls, density_filepath, structure, fhi_all_el_path) -> Cut3DInput: """ Generates a cut3d input for the calculation of the Hirshfeld charges from the density. Automatically selects the all-electron density files from a folder containing the fhi all-electron density files: https://www.abinit.org/downloads/all_core_electron This will work only if the input has been generated with AbinitInput and the Structure object is the same - provided to AbinitInput. + provided to AbinitInput because the order of the pseudos depends on znucl. Args: density_filepath: absolute or relative path to the input density produced by abinit. Can be None to be @@ -3401,21 +4710,21 @@ def hirshfeld_from_fhi_path(cls, density_filepath, structure, fhi_all_el_path): fhi_all_el_path: path to the folder containing the fhi all-electron density files """ all_el_dens_paths = [] - # This relies on AbinitInput using Structure.types_of_specie to define znucl - for e in structure.types_of_specie: + # This relies on AbinitInput using Structure.species_by_znucl to define znucl when writing the input file. + for e in structure.species_by_znucl: all_el_dens_paths.append(os.path.join(fhi_all_el_path, "0.{:02}-{}.8.density.AE".format(e.number, e.name))) return cls.hirshfeld(density_filepath, all_el_dens_paths) @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: """ JSON interface used in pymatgen for easier serialization. """ return dict(infile_path=self.infile_path, output_filepath=self.output_filepath, options=self.options) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> Cut3DInput: """ JSON interface used in pymatgen for easier serialization. """ @@ -3423,7 +4732,7 @@ def from_dict(cls, d): options=d.get('options', None)) -def product_dict(d): +def product_dict(d: dict): """ This function receives a dictionary d where each key defines a list of items or a simple scalar. It constructs the Cartesian product of the values (equivalent to nested for-loops), @@ -3447,7 +4756,7 @@ def product_dict(d): """ keys, vals = d.keys(), d.values() - # Each item in vals must be iterable. + # Each item in values must be iterable. values = [] for v in vals: @@ -3463,3 +4772,30 @@ def product_dict(d): vars_prod.append(dprod) return vars_prod + + +def kpoints_from_line_density(structure, line_density, symprec=1e-2): + """ + Compute an high-symmetry k-path using pymatgen conventions and line_density + + Args: + line_density: Number of points in each segment is computed as: int(ceil(distance * line_density)) + where distance is the lenght of the segment. + This option is the recommended one if the k-path contains two consecutive high symmetry k-points + that are very close as ndivsm > 0 may produce a very large number of wavevectors. + symprec: Symmetry precision passed to spglib. + + Return: (nkpt, 3) numpy array with k-points in reduced coords. + """ + if line_density <= 0: + raise ValueError(f"Invalid {line_density=}") + + hs = HighSymmKpath(structure, symprec=1e-2) + qpts, labels_list = hs.get_kpoints(line_density=line_density, coords_are_cartesian=False) + # remove repeated q-points since those do interfere with _set_split_vals in the phonon plotter + qph1l = [qpts[0]] + for qpt in qpts[1:]: + if not np.array_equal(qpt, qph1l[-1]): + qph1l.append(qpt) + + return np.reshape(qph1l, (-1, 3)) diff --git a/abipy/abio/outputs.py b/abipy/abio/outputs.py index 66dbbbe5b..5daeef74a 100644 --- a/abipy/abio/outputs.py +++ b/abipy/abio/outputs.py @@ -1,12 +1,15 @@ """ Objects used to extract and plot results from output files in text format. """ +from __future__ import annotations + import os import numpy as np import pandas as pd from collections import OrderedDict from io import StringIO +from typing import Union from monty.string import is_string, marquee from monty.functools import lazy_property from monty.termcolor import cprint @@ -15,6 +18,7 @@ from abipy.core.structure import Structure, dataframes_from_structures from abipy.core.kpoints import has_timrev_from_kptopt from abipy.core.mixins import TextFile, AbinitNcFile, NotebookWriter +from abipy.tools.typing import Figure from abipy.abio.inputs import GEOVARS from abipy.abio.timer import AbinitTimerParser from abipy.abio.robots import Robot @@ -26,7 +30,7 @@ class AbinitTextFile(TextFile): Base class for the ABINIT main output files and log files. """ @property - def events(self): + def events(self) -> list: """ List of ABINIT events reported in the file. """ @@ -36,7 +40,7 @@ def events(self): self._events = EventsParser().parse(self.filepath) return self._events - def get_timer(self): + def get_timer(self) -> AbinitTimerParser: """ Timer data. """ @@ -47,26 +51,35 @@ def get_timer(self): class AbinitLogFile(AbinitTextFile, NotebookWriter): """ - Class representing the Abinit log file. + Class representing the ABINIT log file. .. rubric:: Inheritance Diagram .. inheritance-diagram:: AbinitLogFile """ - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: + """String representation with verbosity level verbose.""" return str(self.events) def plot(self, **kwargs): """Empty placeholder.""" return None + #@add_fig_kwargs + #def plot_mem(self, **kwargs) -> Figure: + # return fig + + #@add_fig_kwargs + #def plot_time(self, **kwargs) -> Figure: + # return fig + def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. """ yield None - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -90,12 +103,12 @@ class AbinitOutputFile(AbinitTextFile, NotebookWriter): """ # TODO: Extract number of errors and warnings. - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.debug_level = 0 self._parse() - def _parse(self): + def _parse(self) -> None: """ header: String with the input variables footer: String with the output variables @@ -106,7 +119,7 @@ def _parse(self): self.overall_cputime, self.overall_walltime = 0.0, 0.0 self.proc0_cputime, self.proc0_walltime = 0.0, 0.0 - with open(self.filepath) as fh: + with open(self.filepath, "rt") as fh: for line in fh: if self.version is None and line.startswith(".Version"): self.version = line.split()[1] @@ -182,7 +195,7 @@ def _parse(self): else: self.final_vars_global, self.final_vars_dataset = self._parse_variables("footer") - def _parse_variables(self, what): + def _parse_variables(self, what: str): vars_global = OrderedDict() vars_dataset = OrderedDict([(k, OrderedDict()) for k in self.datasets.keys()]) #print("keys", vars_dataset.keys()) @@ -245,7 +258,13 @@ def pop_stack(): if dtidx is None: vars_global[key] = value else: - vars_dataset[dtidx][key] = value + try: + vars_dataset[dtidx][key] = value + except KeyError: + if dtidx==0: + vars_global[key] = value + else: + raise Exception("dataset index != 0 but still not found in vars_dataset") for line in lines: if not line: continue @@ -266,7 +285,7 @@ def pop_stack(): return vars_global, vars_dataset - def _get_structures(self, what): + def _get_structures(self, what: str) -> list[Structure]: if what == "header": vars_global, vars_dataset = self.initial_vars_global, self.initial_vars_dataset elif what == "footer": @@ -302,7 +321,7 @@ def _get_structures(self, what): raise ValueError("Don't know how to handle unit: %s" % unit) s = " ".join(tokens) - dtype = np.float if key not in ("ntypat", "typat", "natom") else np.int + dtype = float if key not in ("ntypat", "typat", "natom") else int try: #print(key, s) value = np.fromstring(s, sep=" ", dtype=dtype) @@ -325,23 +344,23 @@ def _get_structures(self, what): spgid = int(spgd.get("spgroup", 0)) if "symrel" not in spgd: - symrel = np.reshape(np.eye(3, 3, dtype=np.int), (1, 3, 3)) + symrel = np.reshape(np.eye(3, 3, dtype=int), (1, 3, 3)) spgd["symrel"] = " ".join((str(i) for i in symrel.flatten())) else: - symrel = np.reshape(np.array([int(n) for n in spgd["symrel"].split()], dtype=np.int), (-1, 3, 3)) + symrel = np.reshape(np.array([int(n) for n in spgd["symrel"].split()], dtype=int), (-1, 3, 3)) nsym = len(symrel) assert nsym == spgd.get("nsym", nsym) #; print(symrel.shape) if "tnons" in spgd: - tnons = np.reshape(np.array([float(t) for t in spgd["tnons"].split()], dtype=np.float), (nsym, 3)) + tnons = np.reshape(np.array([float(t) for t in spgd["tnons"].split()], dtype=float), (nsym, 3)) else: tnons = np.zeros((nsym, 3)) if "symafm" in spgd: - symafm = np.array([int(n) for n in spgd["symafm"].split()], dtype=np.int) + symafm = np.array([int(n) for n in spgd["symafm"].split()], dtype=int) symafm.shape = (nsym,) else: - symafm = np.ones(nsym, dtype=np.int) + symafm = np.ones(nsym, dtype=int) try: has_timerev = has_timrev_from_kptopt(vars_dataset[i].get("kptopt", global_kptopt)) @@ -355,17 +374,17 @@ def _get_structures(self, what): return structures @lazy_property - def initial_structures(self): + def initial_structures(self) -> list[Structure]: """List of initial |Structure|.""" return self._get_structures("header") @property - def has_same_initial_structures(self): + def has_same_initial_structures(self) -> bool: """True if all initial structures are equal.""" return all(self.initial_structures[0] == s for s in self.initial_structures) @lazy_property - def final_structures(self): + def final_structures(self) -> list[Structure]: """List of final |Structure|.""" if self.run_completed: return self._get_structures("footer") @@ -374,7 +393,7 @@ def final_structures(self): return [] @lazy_property - def initial_structure(self): + def initial_structure(self) -> Structure: """ The |Structure| defined in the output file. @@ -393,12 +412,12 @@ def initial_structure(self): return self.initial_structures[0] @property - def has_same_final_structures(self): + def has_same_final_structures(self) -> bool: """True if all initial structures are equal.""" return all(self.final_structures[0] == s for s in self.final_structures) @lazy_property - def final_structure(self): + def final_structure(self) -> Union[Structure, None]: """ The |Structure| defined in the output file. @@ -449,10 +468,10 @@ def diff_datasets(self, dt_list1, dt_list2, with_params=True, differ="html", dry else: return os.system(cmd) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = ["ndtset: %d, completed: %s" % (self.ndtset, self.run_completed)] app = lines.append @@ -496,7 +515,7 @@ def to_string(self, verbose=0): return "\n".join(lines) - def get_dims_spginfo_dataframe(self, verbose=0): + def get_dims_spginfo_dataframe(self, verbose: int = 0) -> pd.DataFrame: """ Parse the section with the dimensions of the calculation. Return Dataframe. """ @@ -513,7 +532,7 @@ def get_dims_spginfo_dataframe(self, verbose=0): df = df.set_index('dataset') return df - def get_dims_spginfo_dataset(self, verbose=0): + def get_dims_spginfo_dataset(self, verbose=0) -> tuple[dict, dict]: """ Parse the section with the dimensions of the calculation. Return dictionaries @@ -521,6 +540,7 @@ def get_dims_spginfo_dataset(self, verbose=0): verbose: Verbosity level. Return: (dims_dataset, spginfo_dataset) + where dims_dataset[i] is an OrderedDict with the dimensions of dataset `i` spginfo_dataset[i] is a dictionary with space group information. """ @@ -570,6 +590,11 @@ def parse_spgline(line): """Parse the line with space group info, return dict.""" # Could use regular expressions ... i = line.find("space group") + + if i == -1: + # the unit cell is not primitive + return {} + spg_str, brav_str = line[i:].replace("space group", "").split(";") toks = spg_str.split() return { @@ -634,13 +659,13 @@ def parse_spgline(line): return dims_dataset, spginfo_dataset - def next_gs_scf_cycle(self): + def next_gs_scf_cycle(self) -> GroundStateScfCycle: """ Return the next :class:`GroundStateScfCycle` in the file. None if not found. """ return GroundStateScfCycle.from_stream(self) - def get_all_gs_scf_cycles(self): + def get_all_gs_scf_cycles(self) -> list[GroundStateScfCycle]: """Return list of :class:`GroundStateScfCycle` objects. Empty list if no entry is found.""" # NOTE: get_all should not used with next because of the call to self.seek(0) # The API should be refactored @@ -650,16 +675,17 @@ def get_all_gs_scf_cycles(self): cycle = self.next_gs_scf_cycle() if cycle is None: break cycles.append(cycle) + self.seek(0) return cycles - def next_d2de_scf_cycle(self): + def next_d2de_scf_cycle(self) -> D2DEScfCycle: """ Return :class:`D2DEScfCycle` with information on the DFPT iterations. None if not found. """ return D2DEScfCycle.from_stream(self) - def get_all_d2de_scf_cycles(self): + def get_all_d2de_scf_cycles(self) -> list[D2DEScfCycle]: """Return list of :class:`D2DEScfCycle` objects. Empty list if no entry is found.""" cycles = [] self.seek(0) @@ -676,8 +702,8 @@ def plot(self, tight_layout=True, with_timer=False, show=True): Args: with_timer: True if timer section should be plotted """ - from abipy.tools.plotting import MplExpose - with MplExpose(slide_mode=False, slide_timeout=5.0) as e: + from abipy.tools.plotting import MplExposer #, PanelExposer + with MplExposer(slide_mode=False, slide_timeout=5.0) as e: e(self.yield_figs(tight_layout=tight_layout, with_timer=with_timer)) # TODO: Use header and vars to understand if we have SCF/DFPT/Relaxation @@ -689,10 +715,10 @@ def yield_figs(self, **kwargs): # pragma: no cover with_timer = kwargs.pop("with_timer", True) for icycle, cycle in enumerate(self.get_all_gs_scf_cycles()): - yield cycle.plot(title="SCF cycle #%d" % icycle, tight_layout=tight_layout, show=False) + yield cycle.plot(title=f"SCF cycle {icycle}", tight_layout=tight_layout, show=False) for icycle, cycle in enumerate(self.get_all_d2de_scf_cycles()): - yield cycle.plot(title="DFPT cycle #%d" % icycle, tight_layout=tight_layout, show=False) + yield cycle.plot(title=f"DFPT cycle {icycle}", tight_layout=tight_layout, show=False) if with_timer: self.seek(0) @@ -701,7 +727,26 @@ def yield_figs(self, **kwargs): # pragma: no cover except Exception: print("Abinit output files does not contain timopt data") - def compare_gs_scf_cycles(self, others, show=True): + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + """ + with_timer = kwargs.pop("with_timer", True) + + for icycle, cycle in enumerate(self.get_all_gs_scf_cycles()): + yield cycle.plotly(title=f"SCF cycle {icycle}", show=False) + + for icycle, cycle in enumerate(self.get_all_d2de_scf_cycles()): + yield cycle.plotly(title=f"DFPT cycle {icycle}", show=False) + + #if with_timer: + # self.seek(0) + # try: + # yield self.get_timer().plot_all(tight_layout=tight_layout, show=False) + # except Exception: + # print("Abinit output files does not contain timopt data") + + def compare_gs_scf_cycles(self, others, show=True) -> list[Figure]: """ Produce and returns a list of matplotlib_ figure comparing the GS self-consistent cycle in self with the ones in others. @@ -740,9 +785,9 @@ def compare_gs_scf_cycles(self, others, show=True): return figures - def compare_d2de_scf_cycles(self, others, show=True): + def compare_d2de_scf_cycles(self, others, show=True) -> list[Figure]: """ - Produce and returns a matplotlib_ figure comparing the DFPT self-consistent + Produce and returns a list of matplotlib_ figure comparing the DFPT self-consistent cycle in self with the ones in others. Args: @@ -779,14 +824,14 @@ def compare_d2de_scf_cycles(self, others, show=True): return figures - def get_panel(self): + def get_panel(self, **kwargs): """ Build panel with widgets to interact with the Abinit output file either in a notebook or in panel app. """ from abipy.panels.outputs import AbinitOutputFilePanel - return AbinitOutputFilePanel(self).get_panel() + return AbinitOutputFilePanel(self).get_panel(**kwargs) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If ``nbpath`` is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -802,7 +847,7 @@ def write_notebook(self, nbpath=None): return self._write_nb_nbpath(nb, nbpath) -def validate_output_parser(abitests_dir=None, output_files=None): # pragma: no cover +def validate_output_parser(abitests_dir=None, output_files=None) -> int: # pragma: no cover """ Validate/test Abinit output parser. @@ -889,9 +934,9 @@ class AboRobot(Robot): """ EXT = "abo" - def get_dims_dataframe(self, with_time=True, index=None): + def get_dims_dataframe(self, with_time=True, index=None) -> pd.DataFrame: """ - Build and return |pandas-DataFrame| with the dimensions of the calculation. + Build and return a |pandas-DataFrame| with the dimensions of the calculation. Args: with_time: True if walltime and cputime should be added @@ -917,7 +962,7 @@ def get_dims_dataframe(self, with_time=True, index=None): return pd.DataFrame(rows, index=my_index, columns=list(rows[0].keys())) - def get_dataframe(self, with_geo=True, with_dims=True, abspath=False, funcs=None): + def get_dataframe(self, with_geo=True, with_dims=True, abspath=False, funcs=None) -> pd.DataFrame: """ Return a |pandas-DataFrame| with the most important results and the filenames as index. @@ -951,7 +996,7 @@ def get_dataframe(self, with_geo=True, with_dims=True, abspath=False, funcs=None row_names = row_names if not abspath else self._to_relpaths(row_names) return pd.DataFrame(rows, index=row_names, columns=list(rows[0].keys())) - def get_time_dataframe(self): + def get_time_dataframe(self) -> pd.DataFrame: """ Return a |pandas-DataFrame| with the wall-time, cpu time in seconds and the filenames as index. """ @@ -974,7 +1019,7 @@ def yield_figs(self, **kwargs): # pragma: no cover """ yield None - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -1002,7 +1047,8 @@ class OutNcFile(AbinitNcFile): via instance attribute e.g. ``outfile.ecut``. Provides integration with ipython_. """ # TODO: This object is deprecated - def __init__(self, filepath): + + def __init__(self, filepath: str): super().__init__(filepath) self.reader = NetcdfReader(filepath) self._varscache = {k: None for k in self.reader.rootgrp.variables} @@ -1025,11 +1071,11 @@ def __getattribute__(self, name): return varscache[name] @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" return {} - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() diff --git a/abipy/abio/robots.py b/abipy/abio/robots.py index e00c9ae33..4be9b0b76 100644 --- a/abipy/abio/robots.py +++ b/abipy/abio/robots.py @@ -3,21 +3,31 @@ This module defines the Robot BaseClass. Robots operates on multiple files and provide helper functions to plot the data e.g. convergence studies and to build pandas dataframes from the output files. """ +from __future__ import annotations + import sys import os import inspect import itertools +import json import numpy as np +import pandas as pd from collections import OrderedDict, deque +from typing import Callable, Union, Any from functools import wraps from monty.string import is_string, list_strings from monty.termcolor import cprint +from monty.json import MontyEncoder +from abipy.tools.serialization import pmg_serialize +from abipy.tools.iotools import make_executable +from abipy.core.structure import Structure from abipy.core.mixins import NotebookWriter from abipy.tools.numtools import sort_and_groupby from abipy.tools import duck +from abipy.tools.typing import Figure from abipy.tools.plotting import (plot_xy_with_hue, add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, - rotate_ticklabels, set_visible) + rotate_ticklabels, set_visible, ConvergenceAnalyzer) class Robot(NotebookWriter): @@ -42,6 +52,9 @@ class Robot(NotebookWriter): _LINE_STYLES = ["-", ":", "--", "-.",] _LINE_WIDTHS = [2, ] + # matplotlib option to fill convergence window. + HATCH = "/" + def __init__(self, *args): """ Args: @@ -54,14 +67,14 @@ def __init__(self, *args): self.add_file(label, abifile) @classmethod - def get_supported_extensions(self): + def get_supported_extensions(self) -> list[str]: """List of strings with extensions supported by Robot subclasses.""" # This is needed to have all subclasses. from abipy.abilab import Robot return sorted([cls.EXT for cls in Robot.__subclasses__()]) @classmethod - def class_for_ext(cls, ext): + def class_for_ext(cls, ext: str): """Return the Robot subclass associated to the given extension.""" for subcls in cls.__subclasses__(): if subcls.EXT in (ext, ext.upper()): @@ -77,15 +90,15 @@ def class_for_ext(cls, ext): str(cls.get_supported_extensions())) @classmethod - def from_dir(cls, top, walk=True, abspath=False): + def from_dir(cls, top: str, walk: bool = True, abspath: bool = False) -> Robot: """ - This class method builds a robot by scanning all files located within directory `top`. + Build a robot by scanning all files located within directory `top`. This method should be invoked with a concrete robot class, for example: robot = GsrRobot.from_dir(".") Args: - top (str): Root directory + top: Root directory walk: if True, directories inside `top` are included as well. abspath: True if paths in index should be absolute. Default: Relative to `top`. """ @@ -94,7 +107,7 @@ def from_dir(cls, top, walk=True, abspath=False): return new @classmethod - def from_dirs(cls, dirpaths, walk=True, abspath=False): + def from_dirs(cls, dirpaths: list[str], walk: bool = True, abspath: bool = False) -> Robot: """ Similar to `from_dir` but accepts a list of directories instead of a single directory. @@ -110,7 +123,7 @@ def from_dirs(cls, dirpaths, walk=True, abspath=False): return new @classmethod - def from_dir_glob(cls, pattern, walk=True, abspath=False): + def from_dir_glob(cls, pattern: str, walk: bool = True, abspath: bool = False) -> Robot: """ This class method builds a robot by scanning all files located within the directories matching `pattern` as implemented by glob.glob @@ -119,7 +132,7 @@ def from_dir_glob(cls, pattern, walk=True, abspath=False): robot = GsrRobot.from_dir_glob("flow_dir/w*/outdata/") Args: - pattern: Pattern string + pattern: Pattern string. walk: if True, directories inside `top` are included as well. abspath: True if paths in index should be absolute. Default: Relative to getcwd(). """ @@ -132,15 +145,17 @@ def from_dir_glob(cls, pattern, walk=True, abspath=False): return new @classmethod - def _open_files_in_dir(cls, top, walk): - """Open files in directory tree starting from `top`. Return list of Abinit files.""" + def _open_files_in_dir(cls, top: str, walk: bool) -> list: + """ + Open files in directory tree starting from `top`. Return list of Abinit files. + """ if not os.path.isdir(top): raise ValueError("%s: no such directory" % str(top)) from abipy.abilab import abiopen items = [] if walk: for dirpath, dirnames, filenames in os.walk(top): - filenames = [f for f in filenames if cls.class_handles_filename(f)] + filenames = sorted([f for f in filenames if cls.class_handles_filename(f)]) for f in filenames: abifile = abiopen(os.path.join(dirpath, f)) if abifile is not None: items.append((abifile.filepath, abifile)) @@ -153,8 +168,10 @@ def _open_files_in_dir(cls, top, walk): return items @classmethod - def class_handles_filename(cls, filename): - """True if robot class handles filename.""" + def class_handles_filename(cls, filename: str) -> bool: + """ + True if robot class handles filename. + """ # Special treatment of AnaddbNcRobot if cls.EXT == "anaddb" and os.path.basename(filename).lower() == "anaddb.nc": return True @@ -163,10 +180,10 @@ def class_handles_filename(cls, filename): filename.endswith("." + cls.EXT)) # This for .abo @classmethod - def from_files(cls, filenames, labels=None, abspath=False): + def from_files(cls, filenames, labels=None, abspath=False) -> Robot: """ Build a Robot from a list of `filenames`. - if labels is None, labels are automatically generated from absolute paths. + If labels is None, labels are automatically generated from absolute paths. Args: abspath: True if paths in index should be absolute. Default: Relative to `top`. @@ -192,7 +209,75 @@ def from_files(cls, filenames, labels=None, abspath=False): return new @classmethod - def from_flow(cls, flow, outdirs="all", nids=None, ext=None, task_class=None): + def from_json_file(cls, filepath: str): + """ + Build Robot from a file in json format. + """ + from abipy.tools.serialization import mjson_load + new = mjson_load(filepath) + return new + + @classmethod + def from_top_and_json_basename(cls, top: str, json_basename: str) -> Robot: + """ + Build a robot by scanning all json files located within directory `top`. + and matching json_basename. + + Example: + + gwr_robot = Robot.from_top_and_json_basename(".", "gwr_robot.json") + """ + json_paths = [] + for root, dirs, files in os.walk(top): + for name in files: + if name == json_basename: + json_paths.append(os.path.join(root, name)) + + return cls.from_json_files(json_paths) + + @classmethod + def from_json_files(cls, json_paths: list[str]): + """ + Build Robot from a list of json files. + Each json file should have a list of filepaths and @module and @class as required by msonable. + """ + # Merge filepaths and chech that module and class are equal across files. + robot_filepaths = [] + _module, _class = None, None + for path in json_paths: + with open(path, "rt") as fh: + d = json.load(fh) + + if "filepaths" not in d: + raise ValueError(f"{path=} does not provide `filepaths` entry") + + # Merge filepaths + robot_filepaths.extend(d["filepaths"]) + + if _module is None: + _module, _class = d["@module"], d["@class"] + else: + if _module != d["@module"]: + raise ValueError(f'{_module=} != {d["@module"]=}') + if _class != d["@class"]: + raise ValueError(f'{_class=} != {d["@class"]=}') + + # Build Robot instance from string in json format. + #print("Merged filepaths:", robot_filepaths) + from abipy.tools.serialization import mjson_loads + data = {"filepaths": robot_filepaths, "@class": _class, "@module": _module} + return mjson_loads(json.dumps(data)) + + @classmethod + def from_work(cls, work, outdirs="all", nids=None, ext=None, task_class=None) -> Robot: + """ + Build a robot from a |Work| object. + """ + nids = [work.node_id] + [task.node_id for task in work] + return cls.from_flow(work.flow, nids=nids) + + @classmethod + def from_flow(cls, flow, outdirs="all", nids=None, ext=None, task_class=None) -> Robot: """ Build a robot from a |Flow| object. @@ -216,10 +301,6 @@ def from_flow(cls, flow, outdirs="all", nids=None, ext=None, task_class=None): with abilab.GsrRobot.from_flow(flow) as robot: print(robot) - # That is equivalent to: - with Robot.from_flow(flow, ext="GSR") as robot: - print(robot) - Returns: ``Robot`` subclass. """ @@ -253,7 +334,31 @@ def from_flow(cls, flow, outdirs="all", nids=None, ext=None, task_class=None): return robot - def add_extfile_of_node(self, node, nids=None, task_class=None): + + def __len__(self): + return len(self._abifiles) + + #def __iter__(self): + # return iter(self._abifiles) + + def __getitem__(self, key): + # self[key] + return self._abifiles.__getitem__(key) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Activated at the end of the with statement.""" + self.close() + + def keys(self): + return self._abifiles.keys() + + def items(self): + return self._abifiles.items() + + def add_extfile_of_node(self, node, nids=None, task_class=None) -> None: """ Add the file produced by this node to the robot. @@ -286,16 +391,15 @@ def add_extfile_of_node(self, node, nids=None, task_class=None): self.add_file(label, filepath) - def scan_dir(self, top, walk=True): + def scan_dir(self, top: str, walk: bool = True) -> int: """ - Scan directory tree starting from ``top``. Add files to the robot instance. + Scan directory tree starting from ``top``. + Add files to the robot instance. + Return: Number of files found. Args: - top (str): Root directory + top: Root directory walk: if True, directories inside ``top`` are included as well. - - Return: - Number of files found. """ count = 0 for filepath, abifile in self.__class__._open_files_in_dir(top, walk): @@ -304,7 +408,7 @@ def scan_dir(self, top, walk=True): return count - def add_file(self, label, abifile, filter_abifile=None): + def add_file(self, label, abifile, filter_abifile=None) -> None: """ Add a file to the robot with the given label. @@ -330,19 +434,33 @@ def add_file(self, label, abifile, filter_abifile=None): self._abifiles[label] = abifile - #def pop_filepath(self, filepath): + @pmg_serialize + def as_dict(self) -> dict: + """Return dict with filepaths that can be used to reconstruct the Robot.""" + return dict(filepaths=[abifile.filepath for abifile in self.abifiles]) + + @classmethod + def from_dict(cls, d: dict): + """Recontruct object from dictionary with filepaths.""" + return cls.from_files(d["filepaths"]) + + def to_json(self) -> str: + """ + Returns a JSON string representation of the object. + """ + return json.dumps(self.as_dict(), cls=MontyEncoder) + + def get_pyscript(self, filepath: str) -> RobotPythonScript: + """Return RobotPythonScript to br used as context manager.""" + return RobotPythonScript(self, filepath) + + #def pop_filepath(self, filepath: str) -> None: # """ - # Remove the file with the given `filepath` and close it. + # Remove the file with the given `filepath`. # """ # if label, abifile in self._abifiles.items(): # if abifile.filepath != filepath: continue # self._abifiles.pop(label) - # if self._do_close.pop(abifile.filepath, False): - # try: - # abifile.close() - # except Exception as exc: - # print("Exception while closing: ", abifile.filepath) - # print(exc) def iter_lineopt(self): """Generates matplotlib linestyles.""" @@ -350,7 +468,7 @@ def iter_lineopt(self): yield {"linewidth": o[0], "linestyle": o[1], "color": o[2]} @staticmethod - def ordered_intersection(list_1, list_2): + def ordered_intersection(list_1, list_2) -> list: """Return ordered intersection of two lists. Items must be hashable.""" set_2 = frozenset(list_2) return [x for x in list_1 if x in set_2] @@ -364,12 +482,17 @@ def ordered_intersection(list_1, list_2): # return values @staticmethod - def _to_relpaths(paths): + def _to_relpaths(paths) -> list[str]: """Convert a list of absolute paths to relative paths.""" root = os.getcwd() return [os.path.relpath(p, root) for p in paths] - def pop_label(self, label): + def remove(self) -> None: + """Close the file handle, remove the file from disk for each file in the robot.""" + for abifile in self.abifiles: + abifile.remove() + + def pop_label(self, label: str) -> None: """ Remove file with the given ``label`` and close it. """ @@ -382,7 +505,7 @@ def pop_label(self, label): print("Exception while closing: ", abifile.filepath) print(exc) - def change_labels(self, new_labels, dryrun=False): + def change_labels(self, new_labels: list[str], dryrun: bool = False) -> dict: """ Change labels of the files. @@ -409,7 +532,7 @@ def change_labels(self, new_labels, dryrun=False): return new2old - def remap_labels(self, function, dryrun=False): + def remap_labels(self, function: Callable, dryrun: bool = False) -> dict: """ Change labels of the files by executing ``function`` @@ -428,7 +551,7 @@ def remap_labels(self, function, dryrun=False): return self.change_labels(new_labels, dryrun=dryrun) - def trim_paths(self, start=None): + def trim_paths(self, start=None) -> str: """ Replace absolute filepaths in the robot with relative paths wrt to ``start`` directory. If start is None, os.getcwd() is used. Set ``self.start`` attribute, return ``self.start``. @@ -445,46 +568,26 @@ def trim_paths(self, start=None): return self.start @property - def exceptions(self): + def exceptions(self) -> list: """List of exceptions.""" return self._exceptions - def __len__(self): - return len(self._abifiles) - - #def __iter__(self): - # return iter(self._abifiles) - - #def __contains__(self, item): - # return item in self._abifiles - - def __getitem__(self, key): - # self[key] - return self._abifiles.__getitem__(key) - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - """Activated at the end of the with statement.""" - self.close() - - def keys(self): - return self._abifiles.keys() - - def items(self): - return self._abifiles.items() - @property - def labels(self): + def labels(self) -> list[str]: + """ + List of strings used to create labels in matplotlib figures when plotting results + taked from multiple files. By default, labels is initialized with the path of the files in the robot. + Use change_labels to change the list. + """ return list(self._abifiles.keys()) def get_label_files_str(self): """Return string with [label, filepath].""" from tabulate import tabulate - return tabulate([(label, abifile.relpath) for label, abifile in self.items()], headers=["Label", "Relpath"]) + "\n" + return tabulate([(label, abifile.relpath) for label, abifile in self.items()], + headers=["Label", "Relpath"]) + "\n" - def show_files(self, stream=sys.stdout): + def show_files(self, stream=sys.stdout) -> None: """Show label --> file path""" stream.write(self.get_label_files_str()) @@ -496,7 +599,7 @@ def __str__(self): """Invoked by str.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = ["%s with %d files in memory:\n" % (self.__class__.__name__, len(self.abifiles))] app = lines.append @@ -506,19 +609,63 @@ def to_string(self, verbose=0): return "\n".join(lines) - def _repr_html_(self): + def _repr_html_(self) -> str: """Integration with jupyter_ notebooks.""" return '
    \n{}\n
'.format("\n".join("
  • %s
  • " % label for label, abifile in self.items())) + def getattrs_alleq(self, *aname_args) -> list: + """ + Return list of attribute values for each attribute name in *aname_args. + """ + return [self.getattr_alleq(aname) for aname in aname_args] + + def getattr_alleq(self, aname: str): + """ + Return the value of attribute aname. Try firs in self then in self.r + Raises ValueError if value is not the same across all the files in the robot. + """ + + def get_obj_list(what: str): + if what == "abifiles": + return self.abifiles + elif what == "r": + return [abifile.r for abifile in self.abifiles] + + raise ValueError(f"Invalid {what=}") + + err_msg = [] + + for what in ["abifiles", "r"]: + objs = get_obj_list(what) + + try: + val1 = getattr(objs[0], aname) + except AttributeError as exc: + err_msg.append(str(exc)) + continue + + for obj in objs[1:]: + val2 = getattr(obj, aname) + if isinstance(val1, (str, int, float)): + eq = val1 == val2 + elif isinstance(val1, np.ndarray): + eq = np.allclose(val1, val2) + if not eq: + raise ValueError(f"Different values of {aname=}, {val1=}, {val2=}") + + return val1 + + if err_msg: + raise ValueError("\n".join(err_msg)) + @property - def abifiles(self): + def abifiles(self) -> list: """List of netcdf files.""" return list(self._abifiles.values()) - def has_different_structures(self, rtol=1e-05, atol=1e-08): + def has_different_structures(self, rtol=1e-05, atol=1e-08) -> str: """ - Check if structures are equivalent, - return string with info about differences (if any). + Check if structures are equivalent, return string with info about differences (if any). """ if len(self) <= 1: return "" formulas = set([af.structure.composition.formula for af in self.abifiles]) @@ -536,24 +683,47 @@ def has_different_structures(self, rtol=1e-05, atol=1e-08): return "\n".join(lines) - #def apply(self, func_or_string, args=(), **kwargs): - # """ - # Applies function to all ``abifiles`` available in the robot. + def _get_ref_abifile_from_basename(self, ref_basename: str | None): + """ + Find reference abifile. If None, the first file in the robot is used. + """ + ref_file = self.abifiles[0] + if ref_basename is None: + return ref_file - # Args: - # func_or_string: If callable, the output of func_or_string(abifile, ...) is used. - # If string, the output of getattr(abifile, func_or_string)(...) - # args (tuple): Positional arguments to pass to function in addition to the array/series - # kwargs: Additional keyword arguments will be passed as keywords to the function + for i, abifile in enumerate(self.abifiles): + if abifile.basename == ref_basename: + return abifile - # Return: List of results - # """ - # if callable(func_or_string): - # return [func_or_string(abifile, *args, *kwargs) for abifile in self.abifiles] - # else: - # return [duck.getattrd(abifile, func_or_string)(*args, **kwargs) for abifile in self.abifiles] + raise ValueError(f"Cannot find {ref_basename=}") + + @staticmethod + def _compare_attr_name(aname: str, ref_abifile, other_abifile) -> None: + """ + Compare the value of attribute `aname` in two files. + """ + # Get attributes in abifile first, then in abifile.r, else raise. + if hasattr(ref_abifile, aname): + val1, val2 = getattr(ref_abifile, aname), getattr(other_abifile, aname) + + elif hasattr(ref_abifile , "r") and hasattr(ref_abifile.r, aname): + val1, val2 = getattr(ref_abifile.r, aname), getattr(other_abifile.r, aname) + + else: + raise AttributeError(f"Cannot find attribute `{aname =}`") + + # Now compare val1 and val2 taking into account the type. + if isinstance(val1, (str, int, float, Structure)): + eq = val1 == val2 + elif isinstance(val1, np.ndarray): + eq = np.allclose(val1, val2) + else: + raise TypeError(f"Don't know how to handle comparison for type: {type(val1)}") - def is_sortable(self, aname, raise_exc=False): + if not eq: + raise ValueError(f"Different values of {aname=}, {val1=}, {val2=}") + + def is_sortable(self, aname: str, raise_exc: bool = False) -> bool: """ Return True if ``aname`` is an attribute of the netcdf file If raise_exc is True, AttributeError with an explicit message is raised. @@ -561,7 +731,7 @@ def is_sortable(self, aname, raise_exc=False): try: obj = None try: - # abiifile.foo.bar? + # abifile.foo.bar ? obj = duck.getattrd(self.abifiles[0], aname) except AttributeError: # abifile.params[aname] ? @@ -580,7 +750,7 @@ def is_sortable(self, aname, raise_exc=False): if key.startswith('_') or callable(obj) or hasattr(obj, "__len__"): continue attrs.append(key) - # Add entries in params. + # Add all keys in params dict. if hasattr(self.abifiles[0], "params") and hasattr(self.abifiles[0].params, "keys"): attrs.extend(self.abifiles[0].params.keys()) @@ -594,8 +764,8 @@ def is_sortable(self, aname, raise_exc=False): def _sortby_labelfile_list(self, labelfile_list, func_or_string, reverse=False, unpack=False): """ - Return: list of (label, abifile, param) tuples where param is obtained via ``func_or_string``. - or labels, abifiles, params if ``unpack`` + Return: list of (label, abifile, xs) tuples where xs is obtained via ``func_or_string``. + or labels, abifiles, xs if ``unpack`` """ if not func_or_string: # Catch None or empty @@ -614,7 +784,16 @@ def _sortby_labelfile_list(self, labelfile_list, func_or_string, reverse=False, self.is_sortable(func_or_string, raise_exc=True) if duck.hasattrd(self.abifiles[0], func_or_string): items = [(label, abifile, duck.getattrd(abifile, func_or_string)) for (label, abifile) in labelfile_list] + + #elif hasattr(self.abifiles[0], "reader") and duck.hasattrd(self.abifiles[0].reader, func_or_string): + # items = [(label, abifile, duck.getattrd(abifile.reader, func_or_string)) for (label, abifile) in labelfile_list] + + #elif hasattr(self.abifiles[0], "r") and duck.hasattrd(self.abifiles[0].r, func_or_string): + #elif hasattr(self.abifiles[0], "r"): + # items = [(label, abifile, duck.getattrd(abifile.r, func_or_string)) for (label, abifile) in labelfile_list] + else: + #print("Cannot find", func_or_string, " in self.abifiles[0]") items = [(label, abifile, abifile.params[func_or_string]) for (label, abifile) in labelfile_list] items = sorted(items, key=lambda t: t[2], reverse=reverse) @@ -623,30 +802,33 @@ def _sortby_labelfile_list(self, labelfile_list, func_or_string, reverse=False, else: return [t[0] for t in items], [t[1] for t in items], [t[2] for t in items] - def sortby(self, func_or_string, reverse=False, unpack=False): + def sortby(self, func_or_string: Union[Callable, str, None], + reverse: bool = False, unpack: bool = False) -> list[tuple]: """ Sort files in the robot by ``func_or_string``. Args: - func_or_string: Either None, string, callable defining the quantity to be used for sorting. + func_or_string: Can be None, string or callable defining the quantity to be used for sorting. If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. If callable, the output of func_or_string(abifile) is used. If None, no sorting is performed. reverse: If set to True, then the list elements are sorted as if each comparison were reversed. - unpack: Return (labels, abifiles, params) if True + unpack: Return (labels, abifiles, xs) if True - Return: list of (label, abifile, param) tuples where param is obtained via ``func_or_string``. - or labels, abifiles, params if ``unpack`` + Return: list of (label, abifile, xs) tuples where xs is obtained via ``func_or_string``. + or labels, abifiles, xs if ``unpack`` """ labelfile_list = list(self.items()) return self._sortby_labelfile_list(labelfile_list, func_or_string, reverse=reverse, unpack=unpack) - def group_and_sortby(self, hue, func_or_string): + def group_and_sortby(self, + hue: Union[Callable, str], + func_or_string: Union[Callable, str, None]) -> list[HueGroup]: """ Group files by ``hue`` and, inside each group` sort items by ``func_or_string``. Args: - hue: Variable that define subsets of the data, which will be drawn on separate lines. + hue: Variable that defines subsets of the data, which will be drawn on separate lines. Accepts callable or string If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. Dot notation is also supported e.g. hue="structure.formula" --> abifile.structure.formula @@ -685,7 +867,7 @@ def group_and_sortby(self, hue, func_or_string): return groups - def close(self): + def close(self) -> None: """ Close all files that have been opened by the Robot. """ @@ -697,47 +879,7 @@ def close(self): print("Exception while closing: ", abifile.filepath) print(exc) - #@classmethod - #def open(cls, obj, nids=None, **kwargs): - # """ - # Flexible constructor. obj can be a :class:`Flow` or a string with the directory containing the Flow. - # `nids` is an optional list of :class:`Node` identifiers used to filter the set of :class:`Task` in the Flow. - # """ - # has_dirpath = False - # if is_string(obj): - # try: - # from abipy.flowtk import Flow - # obj = Flow.pickle_load(obj) - # except: - # has_dirpath = True - - # if not has_dirpath: - # # We have a Flow. smeth is the name of the Task method used to open the file. - # items = [] - # smeth = "open_" + cls.EXT.lower() - # for task in obj.iflat_tasks(nids=nids): #, status=obj.S_OK): - # open_method = getattr(task, smeth, None) - # if open_method is None: continue - # abifile = open_method() - # if abifile is not None: items.append((task.pos_str, abifile)) - # return cls(*items) - - # else: - # # directory --> search for files with the appropriate extension and open it with abiopen. - # if nids is not None: raise ValueError("nids cannot be used when obj is a directory.") - # return cls.from_dir(obj) - - #def get_attributes(self, attr_name, obj=None, retdict=False): - # od = OrderedDict() - # for label, abifile in self.items(): - # obj = abifile if obj is None else getattr(abifile, obj) - # od[label] = getattr(obj, attr_name) - # if retdict: - # return od - # else: - # return list(od.values()) - - def _exec_funcs(self, funcs, arg): + def _exec_funcs(self, funcs, arg) -> dict: """ Execute list of callable functions. Each function receives arg as argument. """ @@ -753,7 +895,7 @@ def _exec_funcs(self, funcs, arg): return d @staticmethod - def sortby_label(sortby, param): + def sortby_label(sortby, param) -> str: """Return the label to be used when files are sorted with ``sortby``.""" return "%s %s" % (sortby, param) if not (callable(sortby) or sortby is None) else str(param) @@ -775,17 +917,17 @@ def get_structure_dataframes(self, abspath=False, filter_abifile=None, **kwargs) abifiles = self.abifiles if filter_abifile is not None else list(filter(filter_abifile, self.abifiles)) return dataframes_from_structures(struct_objects=abifiles, **kwargs) - def get_lattice_dataframe(self, **kwargs): + def get_lattice_dataframe(self, **kwargs) -> pd.DataFrame: """Return |pandas-DataFrame| with lattice parameters.""" dfs = self.get_structure_dataframes(**kwargs) return dfs.lattice - def get_coords_dataframe(self, **kwargs): + def get_coords_dataframe(self, **kwargs) -> pd.DataFrame: """Return |pandas-DataFrame| with atomic positions.""" dfs = self.get_structure_dataframes(**kwargs) return dfs.coords - def get_params_dataframe(self, abspath=False): + def get_params_dataframe(self, abspath: bool = False) -> pd.DataFrame: """ Return |pandas-DataFrame| with the most important parameters. that are usually subject to convergence studies. @@ -803,7 +945,6 @@ def get_params_dataframe(self, abspath=False): row_names.append(label) row_names = row_names if abspath else self._to_relpaths(row_names) - import pandas as pd return pd.DataFrame(rows, index=row_names, columns=list(rows[0].keys())) ############################################## @@ -812,11 +953,11 @@ def get_params_dataframe(self, abspath=False): @staticmethod @wraps(plot_xy_with_hue) - def plot_xy_with_hue(*args, **kwargs): + def plot_xy_with_hue(*args, **kwargs) -> Figure: return plot_xy_with_hue(*args, **kwargs) @staticmethod - def _get_label(func_or_string): + def _get_label(func_or_string) -> str: """ Return label associated to ``func_or_string``. If callable, docstring __doc__ is used. @@ -832,7 +973,9 @@ def _get_label(func_or_string): return str(func_or_string) @add_fig_kwargs - def plot_convergence(self, item, sortby=None, hue=None, ax=None, fontsize=8, **kwargs): + def plot_convergence(self, item: Union[str, Callable], + sortby=None, hue=None, abs_conv=None, + ax=None, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of ``item`` wrt the ``sortby`` parameter. Values can optionally be grouped by ``hue``. @@ -840,17 +983,18 @@ def plot_convergence(self, item, sortby=None, hue=None, ax=None, fontsize=8, **k Args: item: Define the quantity to plot. Accepts callable or string If string, it's assumed that the abifile has an attribute with the same name and `getattr` is invoked. - Dot notation is also supported e.g. hue="structure.formula" --> abifile.structure.formula - If callable, the output of item(abifile) is used. + Dot notation is also supported e.g. hue="structure.formula" --> `abifile.structure.formula`. + If callable, the output of `item(abifile)` is used. sortby: Define the convergence parameter, sort files and produce plot labels. Can be None, string or function. If None, no sorting is performed. If string and not empty it's assumed that the abifile has an attribute with the same name and `getattr` is invoked. If callable, the output of sortby(abifile) is used. hue: Variable that define subsets of the data, which will be drawn on separate lines. - Accepts callable or string + Accepts callable or string. If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. If callable, the output of hue(abifile) is used. + abs_conv: If not None, plot f(x) and abs(f(x) - f(x_inf)) in log scale. ax: |matplotlib-Axes| or None if a new figure should be created. fontsize: legend and label fontsize. kwargs: keyword arguments passed to matplotlib plot method. @@ -860,45 +1004,57 @@ def plot_convergence(self, item, sortby=None, hue=None, ax=None, fontsize=8, **k Example: robot.plot_convergence("energy") - robot.plot_convergence("energy", sortby="nkpt") - robot.plot_convergence("pressure", sortby="nkpt", hue="tsmear") + robot.plot_convergence("pressure", sortby="nkpt", hue="tsmear", abs_conv=1e-3) """ - ax, fig, plt = get_ax_fig_plt(ax=ax) if "marker" not in kwargs: kwargs["marker"] = "o" - def get_yvalues(abifiles): - if callable(item): - return [float(item(a)) for a in abifiles] - else: - return [float(getattr(a, item)) for a in abifiles] + if abs_conv is None: + # Plot f(x) only + ax1, fig, plt = get_ax_fig_plt(ax=ax) + ax2 = None + else: + # Plot f(x) and |f(x) - f(x_inf)| in log scale. + (ax1, ax2), fig, plt = get_axarray_fig_plt(ax, nrows=2, ncols=1, + sharex=True, sharey=False, squeeze=True) + ax2.grid(True) if hue is None: - labels, abifiles, params = self.sortby(sortby, unpack=True) - yvals = get_yvalues(abifiles) - #print("params", params, "\nyvals", yvals) - ax.plot(params, yvals, **kwargs) + labels, abifiles, xs = self.sortby(sortby, unpack=True) + yvals = self.get_yvals_item_abifiles(item, abifiles) + ax1.plot(xs, yvals, **kwargs) + + if ax2: + self.plot_abs_conv(ax1, ax2, xs, yvals, abs_conv, self._get_label(sortby), + fontsize, self.HATCH, **kwargs) + else: groups = self.group_and_sortby(hue, sortby) for g in groups: - yvals = get_yvalues(g.abifiles) + yvals = self.get_yvals_item_abifiles(item, g.abifiles) label = "%s: %s" % (self._get_label(hue), g.hvalue) - ax.plot(g.xvalues, yvals, label=label, **kwargs) + ax1.plot(g.xvalues, yvals, label=label, **kwargs) + + if ax2: + self.plot_abs_conv(ax1, ax2, g.xvalues, yvals, abs_conv, self._get_label(sortby), + fontsize, self.HATCH, **kwargs) - ax.grid(True) - ax.set_xlabel("%s" % self._get_label(sortby)) - if sortby is None: rotate_ticklabels(ax, 15) - ax.set_ylabel("%s" % self._get_label(item)) + ax1.grid(True) + ax1.set_xlabel("%s" % self._get_label(sortby)) + if sortby is None: rotate_ticklabels(ax1, 15) + ax1.set_ylabel("%s" % self._get_label(item)) if hue is not None: - ax.legend(loc="best", fontsize=fontsize, shadow=True) + ax1.legend(loc="best", fontsize=fontsize, shadow=True) return fig @add_fig_kwargs - def plot_convergence_items(self, items, sortby=None, hue=None, fontsize=6, **kwargs): + def plot_convergence_items(self, items: list[Union[str, Callable]], + sortby=None, hue=None, abs_conv=None, + fontsize=8, **kwargs) -> Figure: """ Plot the convergence of a list of ``items`` wrt to the ``sortby`` parameter. Values can optionally be grouped by ``hue``. @@ -915,6 +1071,9 @@ def plot_convergence_items(self, items, sortby=None, hue=None, fontsize=6, **kwa If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. Dot notation is also supported e.g. hue="structure.formula" --> abifile.structure.formula If callable, the output of hue(abifile) is used. + abs_conv: If not None, plot f(x) and abs(f(x) - f(x_inf)) in log scale. + Since we are plotting multiple quantities, abs_conv is a dict mapping the name of the item to + to the convergence. fontsize: legend and label fontsize. kwargs: keyword arguments are passed to ax.plot @@ -924,56 +1083,76 @@ def plot_convergence_items(self, items, sortby=None, hue=None, fontsize=6, **kwa # this one is faster as sorting is done only once. # Build grid plot. - nrows, ncols = len(items), 1 - ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + nrows, ncols = len(items), 1 if abs_conv is None else 2 + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, sharex=True, sharey=False, squeeze=False) - ax_list = ax_list.ravel() # Sort and group files if hue. if hue is None: - labels, ncfiles, params = self.sortby(sortby, unpack=True) + labels, ncfiles, xs = self.sortby(sortby, unpack=True) else: groups = self.group_and_sortby(hue, sortby) - marker = kwargs.pop("marker", "o") - for i, (ax, item) in enumerate(zip(ax_list, items)): + if "marker" not in kwargs: + kwargs["marker"] = "o" + + for i, (ax_row, item) in enumerate(zip(ax_mat, items)): + ax1 = ax_row[0] + ax2 = ax_row[1] if abs_conv is not None else None + if hue is None: # Extract data. - if callable(item): - yvals = [float(item(gsr)) for gsr in self.abifiles] - else: - yvals = [duck.getattrd(gsr, item) for gsr in self.abifiles] + yvals = self.get_yvals_item_abifiles(item, self.abifiles) + + self.plot_xvals_or_xstr_ax(ax1, xs, yvals, fontsize, **kwargs) + + if ax2: + xlabel = self._get_label(sortby) if i == len(items) - 1 else None + self.plot_abs_conv(ax1, ax2, xs, yvals, abs_conv[item], xlabel, fontsize, self.HATCH, + **kwargs) - if not is_string(params[0]): - ax.plot(params, yvals, marker=marker, **kwargs) - else: - # Must handle list of strings in a different way. - xn = range(len(params)) - ax.plot(xn, yvals, marker=marker, **kwargs) - ax.set_xticks(xn) - ax.set_xticklabels(params, fontsize=fontsize) else: for g in groups: - # Extract data. - if callable(item): - yvals = [float(item(gsr)) for gsr in g.abifiles] - else: - yvals = [duck.getattrd(gsr, item) for gsr in g.abifiles] + # Extract data in group + yvals = self.get_yvals_item_abifiles(item, g.abifiles) + label = "%s: %s" % (self._get_label(hue), g.hvalue) - ax.plot(g.xvalues, yvals, label=label, marker=marker, **kwargs) + ax1.plot(g.xvalues, yvals, label=label, **kwargs) + + if ax2: + self.plot_abs_conv(ax1, ax2, g.xvalues, yvals, abs_conv[item], None, + fontsize, self.HATCH, **kwargs) + + ax1.grid(True) + ax1.set_ylabel(self._get_label(item)) + if ax2: + ax2.grid(True) - ax.grid(True) - ax.set_ylabel(self._get_label(item)) if i == len(items) - 1: - ax.set_xlabel("%s" % self._get_label(sortby)) - if sortby is None: rotate_ticklabels(ax, 15) + ax1.set_xlabel("%s" % self._get_label(sortby)) + if sortby is None: rotate_ticklabels(ax1, 15) + if i == 0 and hue is not None: - ax.legend(loc="best", fontsize=fontsize, shadow=True) + ax1.legend(loc="best", fontsize=fontsize, shadow=True) return fig + def get_convergence_analyzer(self, xname: str, ytols_dict: dict) -> ConvergenceAnalyzer: + """ + The main difference is that ConvergenceAnalyze supports multiple convergence tolerances + for a given y-value. + + Args: + xname: Name of the x-variable. + ytols_dict: dict mapping the name of the y-variable to the tolerance(s). + + Example: + """ + df = self.get_dataframe() + return ConvergenceAnalyzer.from_dataframe(df, xname, ytols_dict) + @add_fig_kwargs - def plot_lattice_convergence(self, what_list=None, sortby=None, hue=None, fontsize=8, **kwargs): + def plot_lattice_convergence(self, what_list=None, sortby=None, hue=None, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the lattice parameters (a, b, c, alpha, beta, gamma). wrt the``sortby`` parameter. Values can optionally be grouped by ``hue``. @@ -986,8 +1165,7 @@ def plot_lattice_convergence(self, what_list=None, sortby=None, hue=None, fontsi with the same name and `getattr` is invoked. If callable, the output of item(abifile) is used. sortby: Define the convergence parameter, sort files and produce plot labels. - Can be None, string or function. - If None, no sorting is performed. + Can be None, string or function. If None, no sorting is performed. If string and not empty it's assumed that the abifile has an attribute with the same name and `getattr` is invoked. If callable, the output of sortby(abifile) is used. @@ -1064,7 +1242,7 @@ def gamma(afile): return fig - def get_baserobot_code_cells(self, title=None): + def get_baserobot_code_cells(self, title=None) -> list: """ Return list of jupyter_ cells with calls to methods provided by the base class. """ @@ -1078,10 +1256,59 @@ def get_baserobot_code_cells(self, title=None): nbv.new_code_cell("#robot.get_coords_dataframe()"), ] + ########################################################## + # Helper functions used by Robot to extract and plot data + ########################################################## + + @staticmethod + def get_yvals_item_abifiles(item: Any, abifiles: list) -> np.ndarray: + """Extract values for a list of Abinit files.""" + def _float(obj): + if obj is None: return obj + return float(obj) + + if callable(item): + return np.array([_float(item(a)) for a in abifiles]) + else: + return np.array([_float(duck.getattrd(a, item)) for a in abifiles]) + + @staticmethod + def plot_xvals_or_xstr_ax(ax, xs, yvals, fontsize, **kwargs) -> list: + """Plot xs where xs can contain either numbers or strings.""" + if not is_string(xs[0]): + lines = ax.plot(xs, yvals, **kwargs) + else: + # Must handle list of strings in a different way. + xn = range(len(xs)) + lines = ax.plot(xn, yvals, **kwargs) + ax.set_xticks(xn) + ax.set_xticklabels(xs, fontsize=fontsize) -class HueGroup(object): + return lines + + @staticmethod + def plot_abs_conv(ax1, ax2, xs, yvals, abs_conv, xlabel, fontsize, hatch, **kwargs) -> None: + """ + Plot |y - y_xmax| in log scale on ax2 and add hspan to ax1. + """ + y_xmax = yvals[-1] + span_style = dict(alpha=0.2, color="green", hatch=hatch) + ax1.axhspan(y_xmax - abs_conv, y_xmax + abs_conv, label=r"$|y-y(x_{max})| \leq %s$" % abs_conv, **span_style) + + # Plot |y - y_xmax| in log scale on ax2. + ax2.plot(xs, np.abs(yvals - y_xmax), **kwargs) + ax2.set_yscale("log") + ax2.set_ylabel(r"$|y-y_{x_{max}}|$", fontsize=fontsize) + ax2.axhspan(0, abs_conv, label=r"$|y-y(x_{max})| \leq %s$" % abs_conv, **span_style) + ax2.legend(loc="best", fontsize=fontsize, shadow=True) + if xlabel: + ax2.set_xlabel("%s" % xlabel) + + + +class HueGroup: """ - This small object is used by ``group_and_sortby`` to store information abouth the group. + This small object is used by ``group_and_sortby`` to store information about the group. """ def __init__(self, hvalue, xvalues, abifiles, labels): @@ -1100,20 +1327,76 @@ def __init__(self, hvalue, xvalues, abifiles, labels): assert len(abifiles) == len(labels) assert len(abifiles) == len(xvalues) - def __len__(self): + def __len__(self) -> int: return len(self.abifiles) def __iter__(self): """Iterate over (label, abifile, xvalue).""" return zip(self.labels, self.abifiles, self.xvalues) - #@lazy_property - #def pretty_hvalue(self): - # """Return pretty string with hvalue.""" - # if duck.is_intlike(self.hvalue): - # return "%d" % self.havalue - # else: - # try: - # return "%.3f" % self.hvalue - # except: - # return str(self.hvalue) + + +class RobotPythonScript: + """ + Small object used to generate a python script that reconstructs the + robot from a json file containing the list of files. + Client code can then add additional logic to the script and write it to disk. + + This object is typically used in the `on_all_ok` method of Works + to generate ready-to-use python scripts to post-process/visualize the results. + + Example: + + with gsr_robot.get_pyscript(work.outdir.path_in("gsr_robot.py")) as script: + script.add_text("a = 1") + """ + + def __init__(self, robot: Robot, filepath_py: str): + self.robot = robot + self.filepath_py = filepath_py + + root, _ = os.path.splitext(filepath_py) + self.filepath_json = root + ".json" + basename = os.path.basename(filepath_py) + + self.pytext = f"""\ +#!/usr/bin/env python +# This script has been automatically generated by AbiPy. +from __future__ import annotations + +if False: + import seaborn as sns + sns.set(context="paper", style='darkgrid', palette='deep', + font='sans-serif', font_scale=0.8, color_codes=False, rc=None) + +from abipy.abio.robots import Robot +robot = Robot.from_json_file("{self.filepath_json}") +print(robot) + +# Uncomment these two lines to produce an excel file +#df = robot.get_dataframe(with_geo=False) +#df.to_excel("{basename}.xls") +#df.to_csv("{basename}.csv") +""" + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Activated at the end of the with statement.""" + self.write() + + def add_text(self, text: str) -> None: + """Add `text` to the script.""" + self.pytext += "\n" + text + + def write(self) -> None: + """ + Write python script and json file with the list of files in the Robot. + """ + with open(self.filepath_py, "wt") as fh: + fh.write(self.pytext) + make_executable(self.filepath_py) + + with open(self.filepath_json, "wt") as fh: + fh.write(self.robot.to_json()) diff --git a/abipy/abio/tests/test_abivars.py b/abipy/abio/tests/test_abivars.py index 3edd7bc3e..b725de395 100644 --- a/abipy/abio/tests/test_abivars.py +++ b/abipy/abio/tests/test_abivars.py @@ -6,11 +6,23 @@ from pymatgen.core.units import bohr_to_ang from abipy.core.structure import * from abipy.core.testing import AbipyTest -from abipy.abio.abivars import AbinitInputFile, AbinitInputParser +from abipy.abio.abivars import AbinitInputFile, AbinitInputParser, expand_star_syntax, structure_from_abistruct_fmt +from abipy.abio.abivars import format_string_abivars class TestAbinitInputParser(AbipyTest): + def test_helper_functions(self): + assert expand_star_syntax("3*2") == '2 2 2' + assert expand_star_syntax("2 *1") == '1 1' + assert expand_star_syntax("1 2*2") == '1 2 2' + assert expand_star_syntax("*2") == '*2' + + s = expand_star_syntax("64*1 6*1 0 1/3 1/3 1/3 17*0") + values = s.split() + assert len(values) == 91 + #assert np.sum(values) == 71 + def test_static_methods(self): """Testing AbinitInputParser static methods.""" p = AbinitInputParser() @@ -56,7 +68,7 @@ def test_simple_input(self): # acell and rprimd with unit. s = ("acell 1 2*1 Bohr rprim 1 0 0 0 1 0 0 0 1 Bohr natom 1 " - "ntypat 1 typat *1 znucl 1*14 xangst 0 0 0") + "ntypat 1 typat *1 znucl 1*14 xred 0 0 0") with AbinitInputFile.from_string(s) as inp: assert inp.structure == si1_structure if self.has_nbformat(): @@ -125,8 +137,8 @@ def test_input_with_serie(self): """ inp = AbinitInputFile.from_string(s) assert inp.ndtset == 3 - self.assertArrayEqual([dt["ecut"] for dt in inp.datasets], [10, 15, 20]) - self.assertArrayEqual([dt["pawecutdg"] for dt in inp.datasets], [2, 6, 18]) + self.assert_equal([dt["ecut"] for dt in inp.datasets], [10, 15, 20]) + self.assert_equal([dt["pawecutdg"] for dt in inp.datasets], [2, 6, 18]) repr(inp); str(inp) # Test arithmetic series with xcart. @@ -170,13 +182,13 @@ def test_tricky_inputs(self): """ inp = AbinitInputFile.from_string(s) assert inp.ndtset == 1 and inp.structure is not None and len(inp.structure) == 2 - self.assertArrayEqual(inp.structure[0].frac_coords, [0, 0, 0]) - self.assertArrayEqual(inp.structure[0].specie.symbol, "Ga") - self.assertArrayEqual(inp.structure[1].frac_coords, [1/4, 1/4, 1/4]) - self.assertArrayEqual(inp.structure[1].specie.symbol, "As") + self.assert_equal(inp.structure[0].frac_coords, [0, 0, 0]) + self.assert_equal(inp.structure[0].specie.symbol, "Ga") + self.assert_equal(inp.structure[1].frac_coords, [1/4, 1/4, 1/4]) + self.assert_equal(inp.structure[1].specie.symbol, "As") mat = 5.6533 * np.array([0, 1/2, 1/2, 1/2, 0, 1/2, 1/2, 1/2, 0]) mat.shape = (3, 3) - self.assertArrayEqual(inp.structure[1].lattice.matrix, mat) + self.assert_equal(inp.structure[1].lattice.matrix, mat) # tutorial/input/tbase2_1 # 2 datasets with different natom (should use typat[:1] in 2nd dataset) @@ -210,6 +222,48 @@ def test_tricky_inputs(self): assert len(inp.datasets[1].structure) == 1 str(inp) + def test_abinitv9(self): + """Test Abinit input file with v9 syntax.""" + + s = """ + pseudos = "Cd.psp8, Se.psp8" + optdriver 7 + + getwfk_filepath "flow_phonons/w0/t0/outdata/out_WFK" + getddb_filepath "flow_phonons/w0/outdata/out_DDB" + getdvdb_filepath 'flow_phonons/w0/outdata/out_DVDB' + ddb_ngqpt 2 2 2 + + eph_task +4 + #sigma_erange -0.2 -0.2 eV + nkptgw 1 + kptgw 0 0 0 + bdgw 36 37 + + ############################################## + natom 2 + ntypat 2 + typat 1 2 + znucl 48 34 + xred + 0.0000000000 0.0000000000 0.0000000000 + 0.2500000000 0.2500000000 0.2500000000 + acell 1.0 1.0 1.0 + rprim + 0.0000000000 5.8556815705 5.8556815705 + 5.8556815705 0.0000000000 5.8556815705 + 5.8556815705 5.8556815705 0.0000000000 +""" + + inp = AbinitInputFile.from_string(s) + assert inp.ndtset == 1 and len(inp.structure) == 2 + dt = inp.datasets[0] + assert int(dt["eph_task"]) == 4 + assert dt["pseudos"] == '"Cd.psp8, Se.psp8"' + assert dt["getwfk_filepath"] == '"flow_phonons/w0/t0/outdata/out_WFK"' + assert dt["getdvdb_filepath"] == "'flow_phonons/w0/outdata/out_DVDB'" + str(inp) + def test_all_inputs_in_tests(self): """ Try to parse all Abinit input files inside the Abinit `tests` directory. @@ -226,3 +280,122 @@ def test_all_inputs_in_tests(self): assert os.path.exists(abitests_dir) retcode = validate_input_parser(abitests_dir=abitests_dir) assert retcode == 0 + + def test_abistruct_from_abistruct_format(self): + + string = """ +# MgB2 lattice structure. +natom 3 +acell 2*3.086 3.523 Angstrom +rprim 0.866025403784439 0.5 0.0 + -0.866025403784439 0.5 0.0 + 0.0 0.0 1.0 + +# Atomic positions +xred_symbols + 0.0 0.0 0.0 Mg + 1/3 2/3 0.5 B + 2/3 1/3 0.5 B +""" + + mgb2 = structure_from_abistruct_fmt(string) + + assert len(mgb2) == 3 + assert [site.specie.symbol for site in mgb2] == ["Mg", "B", "B"] + abivars = mgb2.to_abivars() + assert abivars["ntypat"] == 2 + self.assert_equal(abivars["typat"], [1, 2, 2]) + self.assert_equal(abivars["znucl"], [12, 5]) + self.assert_equal(abivars["xred"].flatten(), [0.0, 0.0, 0.0, + 1/3, 2/3, 0.5, + 2/3, 1/3, 0.5]) + + # Test wrapper provided by AbiPy structure. + from abipy.core.structure import Structure + same_mgb2 = Structure.from_abistring(string) + assert same_mgb2 == mgb2 + + def test_format_string_abivars(self): + assert format_string_abivars("ecut", 30) == 30 + assert format_string_abivars("pseudos", ["xxx", "yyy"]) == '\n "xxx,\n yyy"' + assert format_string_abivars("pseudos", 'xxx') == '"xxx"' + assert format_string_abivars("pseudos", '"xxx"') == '"xxx"' + + def test_get_differences(self): + s1 = """ + ngkpt 2 2 2 + natom 2 + ntypat 2 + typat 1 2 + znucl 48 34 + xred + 0.0000000000 0.0000000000 0.0000000000 + 0.2500000000 0.2500000000 0.2500000000 + acell 1.0 1.0 1.0 + rprim + 0.0000000000 5.8556815705 5.8556815705 + 5.8556815705 0.0000000000 5.8556815705 + 5.8556815705 5.8556815705 0.0000000000 + """ + s2 = """ + ngkpt 2 2 2 + natom 2 + ntypat 2 + typat 1 2 + znucl 48 34 + xred + 0.0000000000 0.0000000000 0.0000000000 + 0.2500000000 0.2500000000 0.2500000000 + acell 0.5 0.5 0.5 + rprim + 0.0000000000 11.711363141 11.711363141 + 11.711363141 0.0000000000 11.711363141 + 11.711363141 11.711363141 0.0000000000 + """ + inp1 = AbinitInputFile.from_string(s1) + inp2 = AbinitInputFile.from_string(s2) + assert inp1.get_differences(inp2) == [] + s1 = "natom 1 ntypat 1 typat 1 znucl 14 xred 0 0 0 ngkpt 2 2 2" + s2 = "natom 1 ntypat 1 typat 1 znucl 14 xred 0 0 0 ngkpt 3 3 3" + s3 = "natom 1 ntypat 1 typat 1 znucl 8 xred 0 0 0 ngkpt 2 2 2" + s4 = "natom 1 ntypat 1 typat 1 znucl 14 xred 0 0 0 ngkpt 2 2 2 ecut 6.0" + inp1 = AbinitInputFile.from_string(s1) + inp2 = AbinitInputFile.from_string(s2) + inp3 = AbinitInputFile.from_string(s3) + inp4 = AbinitInputFile.from_string(s4) + diffs = inp1.get_differences(inp2) + assert len(diffs) == 1 + assert diffs[0] == "The variable 'ngkpt' is different in the two files:\n" \ + " - this file: '2 2 2'\n" \ + " - other file: '3 3 3'" + diffs = inp2.get_differences(inp1) + assert len(diffs) == 1 + assert diffs[0] == "The variable 'ngkpt' is different in the two files:\n" \ + " - this file: '3 3 3'\n" \ + " - other file: '2 2 2'" + diffs = inp1.get_differences(inp2, ignore_vars=['ngkpt']) + assert diffs == [] + diffs = inp1.get_differences(inp3) + assert diffs == ["Structures are different."] + diffs = inp1.get_differences(inp4) + assert diffs == ["The following variables are in other file but not in this one: ecut"] + diffs = inp4.get_differences(inp1) + assert diffs == ["The following variables are in this file but not in other: ecut"] + diffs = inp1.get_differences(inp4, ignore_vars=['ecut']) + assert diffs == [] + diffs = inp2.get_differences(inp4) + assert len(diffs) == 2 + assert "The following variables are in other file but not in this one: ecut" in diffs + assert "The variable 'ngkpt' is different in the two files:\n" \ + " - this file: '3 3 3'\n" \ + " - other file: '2 2 2'" in diffs + diffs = inp2.get_differences(inp4, ignore_vars=["ecut"]) + assert diffs == [ + "The variable 'ngkpt' is different in the two files:\n" + " - this file: '3 3 3'\n" + " - other file: '2 2 2'" + ] + diffs = inp2.get_differences(inp4, ignore_vars=["ngkpt"]) + assert diffs == ["The following variables are in other file but not in this one: ecut"] + diffs = inp2.get_differences(inp4, ignore_vars=["ngkpt", "ecut"]) + assert diffs == [] diff --git a/abipy/abio/tests/test_decorators.py b/abipy/abio/tests/test_decorators.py index 9d7cc310a..a0e40b99d 100644 --- a/abipy/abio/tests/test_decorators.py +++ b/abipy/abio/tests/test_decorators.py @@ -57,7 +57,7 @@ def validate_inp(self, inp, ndec=1): def test_spin_decorator(self): """Testing spin decorator.""" spinor_deco = ideco.SpinDecorator("spinor") - self.assertMSONable(spinor_deco) + self.assert_msonable(spinor_deco) print(spinor_deco) new_inp = spinor_deco(self.si_ebands) @@ -79,7 +79,7 @@ def test_spin_decorator(self): def test_smearing_decorator(self): """Testing electronic smearing decorator.""" smearing_deco = ideco.SmearingDecorator("fermi_dirac:0.1 eV") - self.assertMSONable(smearing_deco) + self.assert_msonable(smearing_deco) new_inp = smearing_deco(self.si_ebands) self.validate_inp(new_inp) @@ -87,7 +87,7 @@ def test_smearing_decorator(self): def test_xcdecorator(self): """Testing XCdecorator.""" xc_deco = ideco.XcDecorator(17) - self.assertMSONable(xc_deco) + self.assert_msonable(xc_deco) new_inp = xc_deco(self.si_ebands) self.validate_inp(new_inp) @@ -97,7 +97,7 @@ def test_ldau_decorators(self): symbols_luj = dict(Ni=dict(l=2, u=5.0, j=0.5)) ldau_deco = ideco.LdaUDecorator(symbols_luj, usepawu=1, unit="eV") - self.assertMSONable(ldau_deco) + self.assert_msonable(ldau_deco) new_inp = ldau_deco(self.nio_ebands) new_inp.set_vars(chkprim=0, ecut=3, pawecutdg=3) @@ -112,7 +112,7 @@ def test_ldau_decorators(self): def test_lexx_decorators(self): """Testing LexxDecorator.""" lexx_deco = ideco.LexxDecorator({"Ni": 2}) - self.assertMSONable(lexx_deco) + self.assert_msonable(lexx_deco) new_inp = lexx_deco(self.nio_ebands) new_inp.set_vars(chkprim=0, ecut=3, pawecutdg=3) diff --git a/abipy/abio/tests/test_enums.py b/abipy/abio/tests/test_enums.py new file mode 100644 index 000000000..5470e53f8 --- /dev/null +++ b/abipy/abio/tests/test_enums.py @@ -0,0 +1,25 @@ +"""Tests for enums module""" + +import pytest + +from abipy.core.testing import AbipyTest +from abipy.abio.enums import GWR_TASK, WFK_TASK, RUNL + + +class TestEnums(AbipyTest): + + def test_api(self): + assert RUNL.GSTATE == 0 + assert str(RUNL.GSTATE) == "0" + assert RUNL.validate(0) is None + with pytest.raises(ValueError): + RUNL.validate(-666) + assert RUNL.GWR == 6 + + assert GWR_TASK.HDIAGO == "HDIAGO" + assert GWR_TASK.HDIAGO != "HDIAG" + assert GWR_TASK.validate("HDIAGO_FULL") is None + with pytest.raises(ValueError): + GWR_TASK.validate("foobar") + with pytest.raises(ValueError): + GWR_TASK.validate(1) diff --git a/abipy/abio/tests/test_factories.py b/abipy/abio/tests/test_factories.py index 973b3a058..c7337d92d 100644 --- a/abipy/abio/tests/test_factories.py +++ b/abipy/abio/tests/test_factories.py @@ -1,3 +1,4 @@ +import json import abipy.data as abidata import abipy.abilab as abilab @@ -5,10 +6,11 @@ from abipy.core.testing import AbipyTest from abipy.abio.inputs import AbinitInput from abipy.abio.factories import * -from abipy.abio.factories import BandsFromGsFactory, IoncellRelaxFromGsFactory, HybridOneShotFromGsFactory -from abipy.abio.factories import ScfForPhononsFactory, PhononsFromGsFactory -from abipy.abio.factories import PiezoElasticFactory, PiezoElasticFromGsFactory -import json +from abipy.abio.factories import (BandsFromGsFactory, IoncellRelaxFromGsFactory, HybridOneShotFromGsFactory, + ScfForPhononsFactory, PhononsFromGsFactory, PiezoElasticFactory, PiezoElasticFromGsFactory, ShiftMode) +from abipy.abio.factories import _find_nscf_nband_from_gsinput, minimal_scf_input +from abipy.abio.input_tags import DDK, DDE, PH_Q_PERT, STRAIN, DTE, PH_Q_PERT + write_inputs_to_json = False @@ -17,7 +19,6 @@ class ShiftModeTest(AbipyTest): def test_shiftmode(self): """Testing shiftmode""" - from abipy.abio.factories import ShiftMode gamma = ShiftMode.GammaCentered assert ShiftMode.from_object("G") == gamma assert ShiftMode.from_object(gamma) == gamma @@ -25,6 +26,38 @@ def test_shiftmode(self): ShiftMode.from_object({}) +class HelperTest(AbipyTest): + + @classmethod + def setUpClass(cls): + cls.si_structure = abidata.structure_from_cif("si.cif") + cls.si_pseudo = abidata.pseudos("14si.pspnc") + + def test_find_nscf_nband_from_gsinput(self): + gsi = AbinitInput(self.si_structure, self.si_pseudo) + gsi.set_vars(nband=100) + assert _find_nscf_nband_from_gsinput(gsi) == 110 + + gsi = AbinitInput(self.si_structure, self.si_pseudo) + gsi.set_vars(occopt=1, nsppol=1) + assert _find_nscf_nband_from_gsinput(gsi) == 18 + + sc4 = self.si_structure.copy() + sc4.make_supercell([4, 4, 4]) + gsi = AbinitInput(sc4, self.si_pseudo) + gsi.set_vars(occopt=1, nsppol=1) + assert _find_nscf_nband_from_gsinput(gsi) == 292 + + gsi.set_vars(occopt=3) + assert _find_nscf_nband_from_gsinput(gsi) == 318 + + gsi.set_vars(nsppol=2) + assert _find_nscf_nband_from_gsinput(gsi) == 318 + + gsi.set_vars(spinat=[[0, 0, 1]] * len(sc4)) + assert _find_nscf_nband_from_gsinput(gsi) == 382 + + class FactoryTest(AbipyTest): def setUp(self): @@ -39,6 +72,7 @@ def setUp(self): def test_gs_input(self): """Testing gs_input factory.""" inp = gs_input(self.si_structure, self.si_pseudo, kppa=None, ecut=2, spin_mode="unpolarized") + assert inp["nband"] == 14 self.abivalidate_input(inp) if False: @@ -94,6 +128,15 @@ def test_ion_ioncell_relax_input(self): self.assertIn('ion_relax', ion_inp.runlevel) self.assertIn('relax', ion_inp.runlevel) self.assertIn('ground_state', ion_inp.runlevel) + + if write_inputs_to_json: + with open('ion_ioncell_relax_ion_input.json', mode='w') as fp: + json.dump(ion_inp.as_dict(), fp, indent=2) + with open('ion_ioncell_relax_ioncell_input.json', mode='w') as fp: + json.dump(ioncell_inp.as_dict(), fp, indent=2) + + self.assert_input_equality('ion_ioncell_relax_ion_input.json', ion_inp) + self.assert_input_equality('ion_ioncell_relax_ioncell_input.json', ioncell_inp) flow = Flow.temporary_flow() flow.register_work(RelaxWork(ion_inp, ioncell_inp)) assert flow.build_and_pickle_dump(abivalidate=True) == 0 @@ -207,7 +250,7 @@ def test_convergence_inputs_conv(self): if write_inputs_to_json: with open(ref_file, mode='w') as fp: json.dump(inp.as_dict(), fp, indent=2) - # self.assert_input_equallity(ref_file, inp) + # self.assert_input_equality(ref_file, inp) for inp in [item for sublist in inputs for item in sublist]: self.abivalidate_input(inp) @@ -215,11 +258,11 @@ def test_convergence_inputs_conv(self): # the rest is redundant now.. self.assertEqual(len(inputs_flat), 24) nbands = [inp['nband'] for inp in inputs_flat] - print(nbands) + #print(nbands) ecuteps = [inp.get('ecuteps', None) for inp in inputs_flat] - print(ecuteps) + #print(ecuteps) ecuts = [inp.get('ecut', None) for inp in inputs_flat] - print(ecuts) + #print(ecuts) self.assertEqual(nbands, [10, 10, 10, 14, 14, 14, 10, 12, 14, 10, 12, 14, 10, 12, 14, 10, 12, 14, 10, 12, 14, 10, 12, 14]) @@ -263,7 +306,6 @@ def test_phonons_from_gsinput(self): with_bec=False, ph_tol=None, ddk_tol=None, dde_tol=None) self.abivalidate_multi(multi) - from abipy.abio.input_tags import DDK, DDE, PH_Q_PERT inp_ddk = multi.filter_by_tags(DDK)[0] inp_dde = multi.filter_by_tags(DDE)[0] inp_ph_q_pert_1 = multi.filter_by_tags(PH_Q_PERT)[0] @@ -287,7 +329,7 @@ def test_phonons_from_gsinput(self): factory_obj = PhononsFromGsFactory(ph_ngqpt=[4, 4, 4], with_ddk=True, with_dde=True, with_bec=False, ph_tol=None, ddk_tol=None, dde_tol=None) - self.assertMSONable(factory_obj) + self.assert_msonable(factory_obj) multi_obj = factory_obj.build_input(gs_inp) inp_ddk_obj = multi_obj.filter_by_tags(DDK)[0] @@ -306,7 +348,7 @@ def test_elastic_inputs_from_gsinput(self): multi = piezo_elastic_inputs_from_gsinput(gs_inp, ddk_tol=None, rf_tol=None, ddk_split=False, rf_split=False) self.abivalidate_multi(multi) factory_obj = PiezoElasticFromGsFactory(ddk_tol=None, rf_tol=None, ddk_split=False, rf_split=False) - self.assertMSONable(factory_obj) + self.assert_msonable(factory_obj) multi_obj = factory_obj.build_input(gs_inp) def test_scf_piezo_elastic_inputs(self): @@ -322,7 +364,7 @@ def test_scf_piezo_elastic_inputs(self): scf_nband=None, accuracy="normal", spin_mode="polarized", smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None, ddk_tol=None, rf_tol=None, ddk_split=False, rf_split=False) - self.assertMSONable(factory_obj) + self.assert_msonable(factory_obj) multi_obj = factory_obj.build_input() def test_scf_input(self): @@ -332,24 +374,47 @@ def test_scf_input(self): accuracy="normal", spin_mode="polarized", smearing="fermi_dirac:0.1 eV", charge=0.0, scf_algorithm=None, shift_mode="Monkhorst-Pack") + assert inp["nband"] == 16 + with self.assertRaises(AssertionError): self.abivalidate_input(inp) + inp["ecut"] = 2 self.abivalidate_input(inp) - def test_ebands_dos_from_gsinput(self): + def test_nscf_ebands_dos_from_gsinput(self): """Testing ebands_from_gsinput and dos_from_gsinput""" - from abipy.abio.factories import ebands_from_gsinput, dos_from_gsinput + from abipy.abio.factories import ebands_from_gsinput, dos_from_gsinput, nscf_from_gsinput gs_inp = gs_input(self.si_structure, self.si_pseudo, kppa=None, ecut=2, spin_mode="unpolarized") + + nscf_inp = nscf_from_gsinput(gs_inp, kppa=None, nband=120) + self.assert_equal(gs_inp["ngkpt"], nscf_inp["ngkpt"]) + self.assertEqual(nscf_inp["nband"], 120) + ebands_inp = ebands_from_gsinput(gs_inp, nband=None, ndivsm=15, accuracy="normal") self.abivalidate_input(ebands_inp) + ebands_inp = ebands_from_gsinput(gs_inp, nband=None, ndivsm=15, accuracy="normal", projection="lm") + self.assertEqual(ebands_inp["prtdos"], 3) + self.assertEqual(ebands_inp["prtdosm"], 1) + dos_kppa = 3000 - edos_inp = dos_from_gsinput(gs_inp, dos_kppa, nband=None, accuracy="normal", pdos=False) + edos_inp = dos_from_gsinput(gs_inp, dos_kppa, nband=None, accuracy="normal") self.abivalidate_input(edos_inp) + edos_inp = dos_from_gsinput(gs_inp, dos_method="smearing", projection="l") + self.assertEqual(gs_inp["occopt"], edos_inp["occopt"]) + self.assertEqual(edos_inp["prtdos"], 4) + + with self.assertRaises(ValueError): + edos_inp = dos_from_gsinput(gs_inp, dos_method="smearing", projection="lm") + + edos_inp = dos_from_gsinput(gs_inp, dos_method="marzari5: 0.01 eV", projection="l") + self.assertEqual(edos_inp["occopt"], 5) + self.assertNotIn("prtdosm", edos_inp) + factory_obj = BandsFromGsFactory(nband=None, ndivsm=15, accuracy="normal") - self.assertMSONable(factory_obj) + self.assert_msonable(factory_obj) ebands_input_obj = factory_obj.build_input(gs_inp) def test_ioncell_relax_from_gsinput(self): @@ -360,7 +425,7 @@ def test_ioncell_relax_from_gsinput(self): self.abivalidate_input(icrelax_input) factory_obj = IoncellRelaxFromGsFactory() - self.assertMSONable(factory_obj) + self.assert_msonable(factory_obj) icrelax_input_obj = factory_obj.build_input(gs_inp) def test_hybrid_oneshot_input(self): @@ -375,7 +440,7 @@ def test_hybrid_oneshot_input(self): self.assertNotIn('many_body', hyb_inp.runlevel) factory_obj = HybridOneShotFromGsFactory(functional="hse06", ecutsigx=None, gw_qprange=1) - self.assertMSONable(factory_obj) + self.assert_msonable(factory_obj) hyb_inp_obj = factory_obj.build_input(gs_inp) def test_scf_for_phonons(self): @@ -392,7 +457,7 @@ def test_scf_for_phonons(self): self.assert_input_equality('scf_for_phonons.json', scf_inp) factory_obj = ScfForPhononsFactory(self.si_structure, self.si_pseudo, kppa=1000, ecut=3) - self.assertMSONable(factory_obj) + self.assert_msonable(factory_obj) scf_inp_obj = factory_obj.build_input(scf_inp) self.assert_input_equality('scf_for_phonons.json', scf_inp_obj) @@ -435,7 +500,7 @@ def test_dfpt_from_gsinput(self): do_dte=True, ph_tol=None, ddk_tol=None, dde_tol=None) self.abivalidate_multi(multi) - from abipy.abio.input_tags import DDK, DDE, PH_Q_PERT, STRAIN, DTE + inp_ddk = multi.filter_by_tags(DDK)[0] inp_dde = multi.filter_by_tags(DDE)[0] inp_ph_q_pert_1 = multi.filter_by_tags(PH_Q_PERT)[0] @@ -464,3 +529,63 @@ def test_dfpt_from_gsinput(self): self.assert_input_equality('dfpt_from_gsinput_ph_q_pert_2.json', inp_ph_q_pert_2) self.assert_input_equality('dfpt_from_gsinput_strain.json', inp_strain) self.assert_input_equality('dfpt_from_gsinput_dte.json', inp_dte) + + def test_minimal_scf_input(self): + inp = minimal_scf_input(self.si_structure, self.si_pseudo) + + self.abivalidate_input(inp) + self.assertEqual(inp["nband"], 1) + self.assertEqual(inp["nstep"], 0) + + def test_ddkpert_from_gsinput(self): + gs_inp = gs_input(self.si_structure, self.si_pseudo, kppa=None, ecut=2, spin_mode="unpolarized") + gs_inp["nband"] = 4 + gs_inp["autoparal"] = 1 + gs_inp["npfft"] = 10 + + ddk_pert = {'idir': 1, 'ipert': 3, 'qpt': [0.0, 0.0, 0.0]} + ddk_input = ddkpert_from_gsinput(gs_inp, ddk_pert) + assert "autoparal" not in ddk_input + assert "npfft" not in ddk_input + assert ddk_input["tolwfr"] == 1.0e-22 + self.abivalidate_input(ddk_input) + + def test_ddepert_from_gsinput(self): + gs_inp = gs_input(self.si_structure, self.si_pseudo, kppa=None, ecut=2, spin_mode="unpolarized") + gs_inp["nband"] = 4 + gs_inp["autoparal"] = 1 + gs_inp["npfft"] = 10 + + dde_pert = {'idir': 1, 'ipert': 4, 'qpt': [0.0, 0.0, 0.0]} + dde_input = ddepert_from_gsinput(gs_inp, dde_pert) + assert "autoparal" not in dde_input + assert "npfft" not in dde_input + assert dde_input["tolvrs"] == 1.0e-22 + self.abivalidate_input(dde_input) + + def test_dtepert_from_gsinput(self): + gs_inp = scf_for_phonons(self.si_structure, self.si_pseudo, kppa=None, ecut=2, smearing="nosmearing", spin_mode="unpolarized") + gs_inp["nband"] = 4 + gs_inp["autoparal"] = 1 + gs_inp["npfft"] = 1 + + dte_pert = {'i1dir': 1, 'i1pert': 4, 'qpt': [0.0, 0.0, 0.0], + 'i2dir': 1, 'i2pert': 4, + 'i3dir': 1, 'i3pert': 4,} + dte_input = dtepert_from_gsinput(gs_inp, dte_pert) + dte_input["ixc"] = 7 + + assert "autoparal" not in dte_input + assert "npfft" not in dte_input + assert dte_input["optdriver"] == 5 + assert dte_input["d3e_pert1_elfd"] == 1 + assert dte_input["d3e_pert2_elfd"] == 1 + assert dte_input["d3e_pert3_elfd"] == 1 + assert dte_input["d3e_pert1_dir"] == [1,0,0] + assert dte_input["d3e_pert2_dir"] == [1,0,0] + assert dte_input["d3e_pert3_dir"] == [1,0,0] + assert dte_input["d3e_pert1_phon"] == 0 + assert dte_input["d3e_pert2_phon"] == 0 + assert dte_input["d3e_pert3_phon"] == 0 + self.abivalidate_input(dte_input) + diff --git a/abipy/abio/tests/test_inputs.py b/abipy/abio/tests/test_inputs.py index c0784e07e..8ca74f349 100644 --- a/abipy/abio/tests/test_inputs.py +++ b/abipy/abio/tests/test_inputs.py @@ -1,4 +1,4 @@ -"""Tests for input module""" +"""Tests for inputs module""" import os import numpy as np import abipy.data as abidata @@ -10,6 +10,7 @@ import abipy.abio.decorators as ideco from abipy.abio.factories import * +from abipy.flowtk.abiphonopy import * class TestAbinitInput(AbipyTest): @@ -32,13 +33,13 @@ def test_api(self): } inp = AbinitInput(structure=unit_cell, pseudos=abidata.pseudos("14si.pspnc")) - repr(inp), str(inp) + assert len(inp) == 0 and not inp assert inp.get("foo", "bar") == "bar" and inp.pop("foo", "bar") == "bar" assert inp.comment is None inp.set_comment("This is a comment") - assert inp.comment == "This is a comment" + assert inp.comment == "# This is a comment" assert inp.isnc and not inp.ispaw assert not inp.decorators assert len(inp.structure) == 2 and inp.num_valence_electrons == 8 @@ -47,7 +48,12 @@ def test_api(self): with self.assertRaises(inp.Error): inp["foo"] = 1 - # unless we deactive spell_check + with self.assertRaises(inp.Error): inp._check_nsppol_nspinor(3, 1) + with self.assertRaises(inp.Error): inp._check_nsppol_nspinor(2, 2) + with self.assertRaises(inp.Error): inp._check_nsppol_nspinor(1, 4) + with self.assertRaises(inp.Error): inp.set_cutoffs_for_accuracy("normal") + + # unless we deactivate spell_check assert inp.spell_check inp.set_spell_check(False) inp["foo"] = 1 @@ -73,15 +79,19 @@ def test_api(self): assert inp.to_string(sortmode=None, with_structure=True, with_pseudos=True) assert inp.to_string(sortmode=None, with_structure=True, with_pseudos=False, mode="html") assert inp.to_string(sortmode="a", with_structure=False, with_pseudos=False, mode="html") + assert inp.to_string(sortmode=None, with_structure=True, with_pseudos=True, files_file=False) + assert inp.to_string(sortmode="section", with_structure=True, with_pseudos=True, files_file=False) assert inp._repr_html_() - inp.set_vars(ecut=5, toldfe=1e-6) + inp.set_vars(ecut=5, toldfe=1e-6, comment="hello") assert inp["ecut"] == 5 + assert inp.comment == "# hello" inp.set_vars_ifnotin(ecut=-10) assert inp["ecut"] == 5 assert inp.scf_tolvar == ("toldfe", inp["toldfe"]) inp.write(filepath=self.get_tmpname(text=True)) + assert inp.make_targz().endswith(".tar.gz") # Cannot change structure variables directly. with self.assertRaises(inp.Error): @@ -94,6 +104,10 @@ def test_api(self): inp.remove_vars("foo", strict=True) assert not inp.remove_vars("foo", strict=False) + with self.assertRaises(inp.Error): + # Pseudos do not provide hints + inp.set_cutoffs_for_accuracy("normal") + # Test deepcopy and remove_vars. inp["bdgw"] = [1, 2] inp_copy = inp.deepcopy() @@ -118,7 +132,7 @@ def test_api(self): # Compatible with Pickle and MSONable? self.serialize_with_pickle(inp, test_eq=False) - self.assertMSONable(inp) + self.assert_msonable(inp) # Test generate method. ecut_list = [10, 20] @@ -144,6 +158,40 @@ def test_api(self): assert popped["npband"] == 2 and "npband" not in new_inp assert popped["npfft"] == 3 and "npfft" not in new_inp + new_inp.set_vars(shiftk=[0, 0, 0, 0.5, 0, 0, 0, 0, 0.5]) + assert new_inp["nshiftk"] == 3 + other_inp = new_inp.new_with_vars(ph_qpath=[0, 0, 0, 0.5, 0, 0], kptgw=[0, 0, 0, 1, 1, 1, 2, 2, 2]) + assert other_inp["ph_nqpath"] == 2 + assert other_inp["nkptgw"] == 3 + + # Test news_varname_values with single variable. + varname_values = ("nband", [1, 4]) + inp_list = new_inp.news_varname_values(varname_values) + assert len(inp_list) == len(varname_values[1]) + for inp, nband in zip(inp_list, varname_values[1]): + assert inp["nband"] == nband + + # Test news_varname_values with Cartesian product. + varname_values = [ + ("nband", [8, 12]), + ("ecut", [4, 8]), + ] + + inp_list = new_inp.news_varname_values(varname_values) + assert len(inp_list) == 4 + i = -1 + for nband in varname_values[0][1]: + for ecut in varname_values[1][1]: + i += 1 + assert inp_list[i]["nband"] == nband + assert inp_list[i]["ecut"] == ecut + + new_inp["outdata_prefix"] = "some/path" + assert "some/path" in new_inp.to_string() + assert len(new_inp.pseudos_abivars) == 1 + new_inp["pseudos"] = ["si.psp"] + assert len(new_inp.pseudos_abivars) == 0 + def test_input_errors(self): """Testing typical AbinitInput Error""" si_structure = abilab.Structure.from_file(abidata.cif_file("si.cif")) @@ -200,6 +248,9 @@ def test_helper_functions(self): inp.set_kpath(ndivsm=3, kptbounds=None) assert inp["ndivsm"] == 3 and inp["iscf"] == -2 and len(inp["kptbounds"]) == 12 + inp.set_kpath(ndivsm=-20) + assert inp["nkpt"] in (156, 157) and inp["iscf"] == -2 + inp.set_qpath(ndivsm=3, qptbounds=None) assert len(inp["ph_qpath"]) == 12 and inp["ph_nqpath"] == 12 and inp["ph_ndivsm"] == 3 @@ -226,10 +277,20 @@ def test_helper_functions(self): inp["kptopt"] = 4 assert not inp.uses_ktimereversal - # TODO + assert inp.pseudos_abivars["pseudos"] == f"{pseudo.filepath}" + + # Test set_scf_nband. + d = inp.set_scf_nband(nsppol=1, nspinor=1, nspden=1, + occopt=1, tsmear=0.0, charge=0.0, spinat=None) + assert d["nband"] == 8 + + # Test set_scf_nband_semicond. + d = inp.set_scf_nband_semicond() + assert d["nband"] == 8 + + def test_new_with_structure(self): """Testing new_with_structure.""" - si2_inp = AbinitInput(structure=abidata.cif_file("si.cif"), pseudos=abidata.pseudos("14si.pspnc"), abi_kwargs={"ecut": 4, "toldfe": 1e-10, "nband": 6, "ngkpt": [12, 12, 12]}) @@ -250,6 +311,7 @@ def test_new_with_structure(self): # Note: This will return a pymatgen structure, not an Abipy structure. super_structure = si2_inp.structure * scdims sc_inp = si2_inp.new_with_structure(super_structure, scdims=scdims) + sc_inp["chksymtnons"] = 0 assert isinstance(sc_inp.structure, abilab.Structure) assert len(sc_inp.structure) == 2 * scdims.prod() self.assert_almost_equal(sc_inp.structure.volume, si2_inp.structure.volume * scdims.prod()) @@ -272,6 +334,44 @@ def test_new_with_structure(self): #new_inp = si2_inp.new_with_structure(super_structure, scdims=scdims) #self.abivalidate_input(new_inp) + def test_new_with_structure_2(self): + """Testing new_with_structure with occopt=2 nband='*xxx' format .""" + + abi_kwargs = dict(ecut=15, chksymbreak=0,) + + inp = AbinitInput(structure=abidata.cif_file("NV_center_64_at_sc.cif"), + pseudos=abidata.pseudos("C.psp8", "N.psp8"), + abi_kwargs=abi_kwargs) + + n_val = inp.num_valence_electrons + n_cond = round(10) + + spin_up_gs = f"\n{int((n_val - 3) / 2)}*1 1 1 1 {n_cond}*0" + spin_dn_gs = f"\n{int((n_val - 3) / 2)}*1 1 0 0 {n_cond}*0" + + nsppol = 2 + ngkpt=[2,2,2] + shiftk=[0,0,0] + + inp.set_kmesh_nband_and_occ(ngkpt, shiftk, nsppol, [spin_up_gs, spin_dn_gs]) + sc_stru=inp.structure.copy() + sc_stru.make_supercell([2,1,1]) + + new_inp = inp.new_with_structure(new_structure=sc_stru, + scdims=[2,1,1],verbose=0) + assert new_inp["nband"] == '*276' + #self.abivalidate_input(new_inp) + # Not valid now because occ should be rewritten as well + # TODO + # go from + # occ='125*1 1 1 1 10*0' + # to + # occ='125*1 1 1 1 125*1 1 1 1 10*0 10*0 ' + # if size is doubled. + + + + def test_abinit_calls(self): """Testing AbinitInput methods invoking Abinit.""" inp_si = AbinitInput(structure=abidata.cif_file("si.cif"), pseudos=abidata.pseudos("14si.pspnc")) @@ -280,6 +380,7 @@ def test_abinit_calls(self): inp_gan = AbinitInput(structure=abidata.cif_file("gan.cif"), pseudos=abidata.pseudos("31ga.pspnc", "7n.pspnc")) inp_gan.set_kmesh(ngkpt=(2, 2, 2), shiftk=(0, 0, 0)) + inp_gan["ecut"] = 2 # The code below invokes Abinit (the test must fail because of wrong input) inp_si.set_vars(ecut=-1) @@ -300,12 +401,22 @@ def test_abinit_calls(self): assert structure_with_abispg.abi_spacegroup is not None assert structure_with_abispg.abi_spacegroup.spgid == 227 + # Test abiget_dims_spginfo + dims, spginfo = inp_si.abiget_dims_spginfo() + assert dims["nsppol"] == 1 + assert dims["mpw"] == 20 + assert spginfo["spg_number"] == 227 + # Test abiget_ibz ibz = inp_si.abiget_ibz() assert np.all(ibz.points == [[ 0., 0., 0.], [0.5, 0., 0.], [0.5, 0.5, 0.]]) assert np.all(ibz.weights == [0.125, 0.5, 0.375]) - # This to test what happes with wrong inputs and Abinit errors. + scr_ibz = inp_si.abiget_scr_ibz() + assert np.all(scr_ibz.points == [[ 0., 0., 0.], [0.5, 0., 0.], [0.5, 0.5, 0.]]) + assert np.all(scr_ibz.weights == [0.125, 0.5, 0.375]) + + # This to test what happens with wrong inputs and Abinit errors. wrong = inp_si.deepcopy() removed = wrong.pop_vars("ecut") assert "ecut" not in wrong @@ -332,6 +443,8 @@ def test_abinit_calls(self): {'idir': 2, 'ipert': 3, 'qpt': [0.5, 0.0, 0.0]}, {'idir': 3, 'ipert': 3, 'qpt': [0.5, 0.0, 0.0]}] for a, b in zip(irred_perts, irred_perts_values): + # The nkpt_rbz entry was added in Abinit v9.5 but it's not used by AbiPy. + if "nkpt_rbz" in a: b["nkpt_rbz"] = a["nkpt_rbz"] self.assertDictEqual(a, b) # Test abiget_autoparal_pconfs @@ -340,6 +453,9 @@ def test_abinit_calls(self): inp_si["paral_kgb"] = 1 pconfs = inp_si.abiget_autoparal_pconfs(max_ncpus=5) + # Test run_in_shell + assert inp_si.run_in_shell() + def test_dict_methods(self): """ Testing AbinitInput dict methods """ inp = ebands_input(abidata.cif_file("si.cif"), abidata.pseudos("14si.pspnc"), kppa=10, ecut=2)[0] @@ -348,7 +464,73 @@ def test_dict_methods(self): #self.assertIsInstance(inp_dict['abi_kwargs'], collections.OrderedDict) assert "abi_args" in inp_dict and len(inp_dict["abi_args"]) == len(inp) assert all(k in inp for k, _ in inp_dict["abi_args"]) - self.assertMSONable(inp) + self.assert_msonable(inp) + + def test_enforce_znucl_and_typat(self): + """ + Test the order of typat and znucl in the Abinit input when enforce_typat, enforce_znucl are used. + """ + # Ga Ga1 1 0.33333333333333 0.666666666666667 0.500880 1.0 + # Ga Ga2 1 0.66666666666667 0.333333333333333 0.000880 1.0 + # N N3 1 0.333333333333333 0.666666666666667 0.124120 1.0 + # N N4 1 0.666666666666667 0.333333333333333 0.624120 1.0 + gan2 = Structure.from_file(abidata.cif_file("gan2.cif")) + pseudos = abidata.pseudos("31ga.pspnc", "7n.pspnc") + + def_znucl = [31, 7] + def_typat = [1, 1, 2, 2] + + # Build AbinitInput with default sorting algorithm for znucl and typat + def_inp = AbinitInput(gan2, pseudos) + def_dict = def_inp.as_dict() + assert def_dict["enforce_znucl"] is None + assert def_dict["enforce_typat"] is None + + # Build AbinitInput with specific znucl and typat. + enforce_znucl = [7 ,31] + enforce_typat = [2, 2, 1, 1] + enf_inp = AbinitInput(gan2, pseudos, enforce_znucl=enforce_znucl, enforce_typat=enforce_typat) + + enf_dict = enf_inp.as_dict() + self.assert_equal(enf_dict["enforce_znucl"], enforce_znucl) + self.assert_equal(enf_dict["enforce_typat"], enforce_typat) + + # Parser the input string and make sure znucl and typat are what we expect. + from abipy.abio.abivars import AbinitInputFile + def_string = def_inp.to_string() + enf_string = enf_inp.to_string() + #print("\ndef_string\n", def_string, "\nenf_string:\n", enf_string) + assert def_string != enf_string + def_inpfile = AbinitInputFile.from_string(def_string) + enf_inpfile = AbinitInputFile.from_string(enf_string) + assert def_inpfile.structure == enf_inpfile.structure + + self.assert_equal(def_inpfile.datasets[0]["znucl"], " ".join(str(e) for e in def_znucl)) + self.assert_equal(def_inpfile.datasets[0]["typat"], " ".join(str(t) for t in def_typat)) + self.assert_equal(enf_inpfile.datasets[0]["znucl"], " ".join(str(e) for e in enforce_znucl)) + self.assert_equal(enf_inpfile.datasets[0]["typat"], " ".join(str(t) for t in enforce_typat)) + + other_enf_dict = AbinitInput.from_dict(enf_dict).as_dict() + self.assert_equal(other_enf_dict["enforce_znucl"], enforce_znucl) + self.assert_equal(other_enf_dict["enforce_typat"], enforce_typat) + + # Make sure we detect wrong calls. + with self.assertRaises(ValueError): + AbinitInput(gan2, pseudos, enforce_znucl=[1,], enforce_typat=enforce_typat) + with self.assertRaises(ValueError): + AbinitInput(gan2, pseudos, enforce_znucl=enforce_znucl, enforce_typat=[1, 2]) + + # Make sure enforce flags are propagated in MultiDataset and other methods. + inputs = enf_inp.product("ngkpt", "tsmear", [[2, 2, 2], [4, 4, 4]], [0.1, 0.2, 0.3]) + for inp in inputs: + self.assert_equal(inp.enforce_znucl, enforce_znucl) + self.assert_equal(inp.enforce_typat, enforce_typat) + + multi = MultiDataset.from_inputs(inputs) + for znucl in multi.enforce_znucl: + self.assert_equal(znucl, enforce_znucl) + for typat in multi.enforce_typat: + self.assert_equal(typat, enforce_typat) def test_dfpt_methods(self): """Testing DFPT methods.""" @@ -364,14 +546,17 @@ def test_dfpt_methods(self): 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5], - #shiftk=[0, 0, 0], paral_kgb=1, nstep=25, tolvrs=1.0e-10, ) + assert gs_inp.is_input and not gs_inp.is_multidataset + multi = gs_inp.replicate(2) + assert multi.ndtset == 2 and multi.is_multidataset and not multi.is_input + # Test make_nscf_kptopt0_input - nscf_inp = gs_inp.make_nscf_kptopt0_input(kpts=[1,2,3,4,5,6]) + nscf_inp = gs_inp.make_nscf_kptopt0_input(kpts=[1, 2, 3, 4, 5, 6]) assert "ngkpt" not in nscf_inp and "shiftk" not in nscf_inp assert nscf_inp["kptopt"] == 0 and nscf_inp["nkpt"] == 2 and nscf_inp["iscf"] == -2 @@ -381,6 +566,18 @@ def test_dfpt_methods(self): assert nscf_inp["iscf"] == -2 and nscf_inp["tolwfr"] == 1e-5 assert nscf_inp["nband"] == gs_inp["nband"] + 10 + nscf_inp = gs_inp.make_ebands_input(ndivsm=-20, tolwfr=1e-5) + assert "ngkpt" not in nscf_inp and "shiftk" not in nscf_inp + assert nscf_inp["iscf"] == -2 and nscf_inp["tolwfr"] == 1e-5 + assert nscf_inp["nkpt"] == 149 + self.abivalidate_input(nscf_inp) + + # Test make_ebands_input with nband = "*91" (occopt 2) + gs_occopt2 = gs_inp.new_with_vars(nband="*91", occopt=2, paral_kgb=0) + nscf_inp = gs_occopt2.make_ebands_input(nb_extra=10) + assert nscf_inp["nband"] == "*101" + self.abivalidate_input(nscf_inp) + # Test make_edos_input ngkpt = [4, 4, 4] shiftk = [(0.5, 0.5, 0.5)] @@ -392,10 +589,12 @@ def test_dfpt_methods(self): assert dos_input["nband"] == 9 # Test make_dfpt_effmass_input - multi = gs_inp.make_dfpt_effmass_input(kpts=[0, 0, 0, 0.5, 0, 0], effmass_bands_f90=[1, 4, 5, 5]) + multi = gs_inp.make_dfpt_effmass_inputs(kpts=[0, 0, 0, 0.5, 0, 0], effmass_bands_f90=[1, 4, 5, 5]) assert len(multi) == 3 assert all(inp["kptopt"] == 0 for inp in multi) assert all(inp["nkpt"] == 2 for inp in multi) + assert multi.is_multidataset and not multi.is_input + assert multi.make_targz().endswith(".tar.gz") inp0, inp1, inp2 = multi assert inp0["iscf"] == -2 @@ -448,6 +647,20 @@ def test_dfpt_methods(self): # Validate with Abinit self.abivalidate_multi(bec_inputs) + ####################### + # dynamical quadrupoles + ####################### + quad_input = gs_inp.make_quad_input() + assert quad_input["kptopt"] == 2 + assert quad_input["optdriver"] == 10 + assert quad_input["lw_qdrpl"] == 1 + assert quad_input["useylm"] == 1 + assert quad_input["nstep"] == 100 + + # Validate with Abinit + # This is expected to fail since we have NC pseudos with NLCC. + #self.abivalidate_input(quad_input) + ############# # DDK methods ############# @@ -469,6 +682,16 @@ def test_dfpt_methods(self): assert inp["nstep"] == 1 assert inp["nline"] == 1 + ############# + # DKDK methods + ############# + dkdk_input = gs_inp.make_dkdk_input() + assert dkdk_input["kptopt"] == 2 + assert dkdk_input["rf2_dkdk"] == 1 + assert dkdk_input["useylm"] == 1 + # Validate with Abinit + self.abivalidate_input(dkdk_input) + ############# # DDE methods ############# @@ -483,7 +706,7 @@ def test_dfpt_methods(self): self.abivalidate_multi(dde_inputs) dde_inputs = gs_inp.make_dde_inputs(tolerance=None, use_symmetries=True) - print("DDE inputs\n", dde_inputs) + #print("DDE inputs\n", dde_inputs) assert len(dde_inputs) == 1 assert all(np.all(inp["tolvrs"] == 1.0e-22 for inp in dde_inputs)) assert all(inp["rfelfd"] == 3 for inp in dde_inputs) @@ -502,19 +725,53 @@ def test_dfpt_methods(self): # Validate with Abinit self.abivalidate_multi(strain_inputs) + ############### + # EPH mobility + ############### + + nscf_inp = gs_inp.new_with_vars(iscf=-2, tolwfr=1e-5, comment="this is just to have a NSCF input.") + sigma_erange = sigma_kerange = [0, 1.0] + sigma_ngkpt = [4, 4, 4] + kerange_inputs = nscf_inp.make_wfk_kerange_inputs(sigma_kerange, sigma_ngkpt, einterp=(1, 5, 0, 0)) + inp_0, inp_1 = kerange_inputs + assert inp_0["wfk_task"] == '"wfk_kpts_erange"' + assert "iscf" not in inp_0 + assert inp_0["sigma_erange"] == sigma_erange + assert inp_0["kptopt"] == 1 + assert inp_0["sigma_ngkpt"] == sigma_ngkpt + + assert inp_1["iscf"] == -2 + assert inp_1["kptopt"] == 0 + assert inp_1["ngkpt"] == sigma_ngkpt + + self.abivalidate_multi(kerange_inputs) + + ddb_ngqpt = [4, 4, 4] + tmesh = [0, 300, 10] + + trans_inp = nscf_inp.make_eph_transport_input(ddb_ngqpt, sigma_erange, tmesh, kptopt=2, eph_ngqpt_fine=None, + mixprec=1, boxcutmin=1.1, ibte_prep=0, ibte_niter=200, + ibte_abs_tol=1e-3) + assert trans_inp["optdriver"] == 7 + assert trans_inp["eph_task"] == -4 + assert trans_inp["kptopt"] == 2 + assert trans_inp["eph_ngqpt_fine"] == trans_inp["ngkpt"] + + self.abivalidate_input(trans_inp) + ##################### # Non-linear methods #################### - if self.has_abinit(version='8.3.2'): - dte_inputs = gs_inp.make_dte_inputs(phonon_pert=True, skip_permutations=True, ixc=3) - print("dte inputs\n", dte_inputs) - assert len(dte_inputs) == 8 - assert np.all(dte_inputs[0]["d3e_pert2_dir"] == [1, 0, 0]) - assert np.all(dte_inputs[3]["d3e_pert1_atpol"] == [2, 2]) - assert all(np.all(inp["optdriver"] == 5 for inp in dte_inputs)) + #if self.has_abinit(version='8.3.2'): + dte_inputs = gs_inp.make_dte_inputs(phonon_pert=True, skip_permutations=True, ixc=3) + #print("dte inputs\n", dte_inputs) + assert len(dte_inputs) == 8 + assert np.all(dte_inputs[0]["d3e_pert2_dir"] == [1, 0, 0]) + assert np.all(dte_inputs[3]["d3e_pert1_atpol"] == [2, 2]) + assert all(np.all(inp["optdriver"] == 5 for inp in dte_inputs)) - # Validate with Abinit - self.abivalidate_multi(dte_inputs) + # Validate with Abinit + self.abivalidate_multi(dte_inputs) def test_input_check_sum(self): """Testing the hash method of AbinitInput""" @@ -524,6 +781,68 @@ def test_input_check_sum(self): inp.set_vars({'ecut': ecut}) assert inp_cs == inp.variable_checksum() + def test_explicit_occ(self): + """Testing helper function to set occupancies when occopt == 2""" + + abi_kwargs = dict(ecut=15, pawecutdg=30, tolvrs=1e-12, chksymbreak=0) + + inp = AbinitInput(structure=abidata.cif_file("SrO_Eu_222.cif"), + pseudos=abidata.pseudos("Sr.xml", "o.paw", "Eu.xml"), + #pseudos=abidata.pseudos("Sr.xml", "O.xml", "Eu.xml")) + abi_kwargs=abi_kwargs) + + assert inp.ispaw and len(inp.structure) == 16 + #abivars = inp.to_abivars() + symb2luj = {"Eu": {"lpawu": 3, "upawu": 7, "jpawu": 0.7}} + usepawu = 1 + inp.set_usepawu(usepawu, symb2luj, units="eV") + + assert inp["usepawu"] == usepawu + assert inp["lpawu"] == [-1, 3, -1] + assert inp["upawu"] == [0, 7, 0, "eV"] + assert inp["jpawu"] == [0, 0.7, 0, "eV"] + + symb2spinat = {"Eu": [0, 0, 7]} + inp.set_spinat_from_symbols(symb2spinat, default=(0, 0, 0)) + assert inp["spinat"] == "21*0 0 0 7 24*0 " + + nsppol = 2 + ngkpt = [2, 2, 2] + shiftk = [0.5, 0.5, 0.5] + n_cond = round(20) + n_val = inp.num_valence_electrons + + spin_up_gs = f"\n{int((n_val - 7) / 2)}*1 7*1 {n_cond}*0" + spin_up_ex = f"\n{int((n_val - 7) / 2)}*1 6*1 0 1/3 1/3 1/3 {n_cond - 3}*0" # Fractional occ works better for SrO + spin_dn = f"\n{int((n_val - 7) / 2)}*1 7*0 {n_cond}*0" + + #occ1k_spin = [spin_up_gs, spin_dn] + occ1k_spin = [spin_up_ex, spin_dn] + + inp.set_kmesh_nband_and_occ(ngkpt, shiftk, nsppol, occ1k_spin, + # nspinor=1, kptopt=1, occopt=2) + ) + + assert inp["kptopt"] == 1 and inp["occopt"] == 2 + + # nband + # shiftk 0.5 0.5 0.5 + # ngkpt 2 2 2 + assert inp["nsppol"] == 2 and inp["occopt"] == 2 # and inp["nspden"] == 2 + + # occ + assert inp["nband"] == "*91" + assert inp["occ"] == """ +64*1 6*1 0 1/3 1/3 1/3 17*0 +64*1 6*1 0 1/3 1/3 1/3 17*0 + +64*1 7*0 20*0 +64*1 7*0 20*0 +""" + + # Call Abinit in dry run mode to validate input. + self.abivalidate_input(inp) + class TestMultiDataset(AbipyTest): """Unit tests for MultiDataset.""" @@ -549,8 +868,9 @@ def test_api(self): assert multi[0].structure == multi[1].structure assert multi[0].structure is not multi[1].structure - multi.set_vars(ecut=2) + multi.set_vars(ecut=2, comment="hello") assert all(inp["ecut"] == 2 for inp in multi) + assert all(inp.comment == "# hello" for inp in multi) self.assert_equal(multi.get("ecut"), [2, 2]) df = multi.get_vars_dataframe("ecut", "foobar") @@ -585,7 +905,8 @@ def test_api(self): assert multi._repr_html_() inp.write(filepath=self.tmpfileindir("run.abi")) - multi.write(filepath=self.tmpfileindir("run.abi")) + multi.write(filepath=self.tmpfileindir("run.abi"), split=True) + multi.write(filepath=self.tmpfileindir("run.abi"), split=False) new_multi = MultiDataset.from_inputs([inp for inp in multi]) assert new_multi.ndtset == multi.ndtset @@ -605,10 +926,10 @@ def test_api(self): # Compatible with Pickle and MSONable? self.serialize_with_pickle(multi, test_eq=False) - #self.assertMSONable(multi) + #self.assert_msonable(multi) # Test tags - new_multi.add_tags([GROUND_STATE, RELAX], [0,2]) + new_multi.add_tags([GROUND_STATE, RELAX], [0, 2]) assert len(new_multi[0].tags) == 2 sub_multi = new_multi.filter_by_tags(GROUND_STATE) assert len(sub_multi) == 2 @@ -627,13 +948,14 @@ def test_phbands_and_dos(self): inp = AnaddbInput(self.structure, comment="hello anaddb", anaddb_kwargs={"brav": 1}) repr(inp); str(inp) assert inp.to_string(sortmode="a") + assert inp.to_string(sortmode=None, files_file=False) assert inp._repr_html_() assert "brav" in inp assert inp["brav"] == 1 assert inp.get("brav") == 1 self.serialize_with_pickle(inp, test_eq=False) - #self.assertMSONable(inp, test_if_subclass=False) + self.assert_msonable(inp) # Unknown variable. with self.assertRaises(AnaddbInput.Error): @@ -757,7 +1079,7 @@ def test_dfpt(self): class TestCut3DInput(AbipyTest): - """Unit tests for AbinitInput.""" + """Unit tests for Cut3dInput.""" def setUp(self): self.structure = abidata.structure_from_ucell("Si") @@ -768,7 +1090,7 @@ def test_dict_methods(self): cut3d_input.write(self.get_tmpname(text=True)) self.serialize_with_pickle(cut3d_input, test_eq=False) - self.assertMSONable(cut3d_input, test_if_subclass=False) + self.assert_msonable(cut3d_input) def test_generation_methods(self): cut3d_input = Cut3DInput.den_to_cube('/path/to/den', 'outfile_name') @@ -832,7 +1154,7 @@ def test_real_optic_input(self): self.serialize_with_pickle(optic_input, test_eq=True) # TODO: But change function that build namelist to ignore @module ... - #self.assertMSONable(optic_input) + #self.assert_msonable(optic_input) self.abivalidate_input(optic_input) diff --git a/abipy/abio/tests/test_outputs.py b/abipy/abio/tests/test_outputs.py index 754e2e05b..aff92d7cf 100644 --- a/abipy/abio/tests/test_outputs.py +++ b/abipy/abio/tests/test_outputs.py @@ -1,6 +1,7 @@ # coding: utf-8 """Test for output files""" import os +import pytest import abipy.data as abidata from abipy import abilab @@ -73,7 +74,8 @@ def test_gs_output(self): timer = abo.get_timer() assert len(timer) == 1 - assert str(timer.summarize()) + # TODO: Fixme pandas removed append method. + #assert str(timer.summarize()) if self.has_matplotlib(): abo.compare_gs_scf_cycles([abo_path], show=False) diff --git a/abipy/abio/timer.py b/abipy/abio/timer.py index 93dfb2bf0..5a824b8e5 100644 --- a/abipy/abio/timer.py +++ b/abipy/abio/timer.py @@ -2,10 +2,11 @@ This module provides objects for extracting timing data from the ABINIT output files It also provides tools to analyze and to visualize the parallel efficiency. """ +from __future__ import annotations + from abipy.core.mixins import NotebookWriter from abipy.flowtk import AbinitTimerParser as _Parser - class AbinitTimerParser(_Parser, NotebookWriter): def yield_figs(self, **kwargs): # pragma: no cover @@ -17,7 +18,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot_efficiency(show=False) yield self.plot_pie(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write an ipython notebook to nbpath. If nbpath is None, a temporary file in the current working directory is created. Return path to the notebook. diff --git a/abipy/abio/variable.py b/abipy/abio/variable.py index ba942451a..ad50dae3f 100644 --- a/abipy/abio/variable.py +++ b/abipy/abio/variable.py @@ -1,7 +1,12 @@ +"""Support for Abinit input variables.""" +from __future__ import annotations + import string import collections import numpy as np +from typing import Any + __all__ = [ 'InputVariable', @@ -24,11 +29,18 @@ } -class InputVariable(object): +class InputVariable: """ An Abinit input variable. """ - def __init__(self, name, value, units='', valperline=3): + def __init__(self, name: str, value: Any, units='', valperline=3): + """ + Args: + name: Name of the variable. + value: Value of the variable. + units: String specifying one of the units supported by Abinit. Default: atomic units. + valperline: Number of items printed per line. + """ self._name = name self.value = value @@ -51,26 +63,27 @@ def get_value(self): return self.value @property - def name(self): + def name(self) -> str: + """Name of the variable.""" return self._name @property - def basename(self): + def basename(self) -> str: """Return the name trimmed of any dataset index.""" basename = self.name return basename.rstrip(_DATASET_INDICES) @property - def dataset(self): + def dataset(self) -> str: """Return the dataset index in string form.""" return self.name.split(self.basename)[-1] @property - def units(self): - """Return the units.""" + def units(self) -> str: + """Return the units. Empty if unitless.""" return self._units - def __str__(self): + def __str__(self) -> str: """Declaration of the variable in the input file.""" value = self.value if value is None or not str(value): @@ -85,6 +98,10 @@ def __str__(self): # For some inputs, enforce number of decimal points... if any(inp in var for inp in ('xred', 'xcart', 'rprim', 'qpt', 'kpt')): floatdecimal = 16 + #floatdecimal = 32 + + if var == 'qpt': + floatdecimal = 22 # ...but not for those if any(inp in var for inp in ('ngkpt', 'kptrlatt', 'ngqpt', 'ng2qpt')): @@ -117,7 +134,7 @@ def __str__(self): return line - def format_scalar(self, val, floatdecimal=0): + def format_scalar(self, val, floatdecimal=0) -> str: """ Format a single numerical value into a string with the appropriate number of decimal. @@ -139,7 +156,11 @@ def format_scalar(self, val, floatdecimal=0): addlen = 8 ndec = max(len(str(fval-int(fval)))-2, floatdecimal) - ndec = min(ndec, 10) + + if floatdecimal > 16: + ndec = max(floatdecimal,ndec) + else: + ndec = min(ndec, 10) sval = '{v:>{l}.{p}{f}}'.format(v=fval, l=ndec+addlen, p=ndec, f=form) @@ -147,8 +168,10 @@ def format_scalar(self, val, floatdecimal=0): return sval - def format_list2d(self, values, floatdecimal=0): - """Format a list of lists.""" + def format_list2d(self, values: list[list], floatdecimal=0) -> str: + """ + Format a list of lists. + """ lvals = flatten(values) # Determine the representation @@ -187,7 +210,7 @@ def format_list2d(self, values, floatdecimal=0): return line.rstrip('\n') - def format_list(self, values, floatdecimal=0): + def format_list(self, values: list, floatdecimal=0) -> str: """ Format a list of values into a string. The result might be spread among several lines. @@ -207,7 +230,7 @@ def format_list(self, values, floatdecimal=0): return line.rstrip('\n') -def is_iter(obj): +def is_iter(obj: Any) -> bool: """Return True if the argument is list-like.""" return hasattr(obj, '__iter__') diff --git a/abipy/benchmarks/gs_au108.py b/abipy/benchmarks/gs_au108.py index c115387f6..7f9711709 100755 --- a/abipy/benchmarks/gs_au108.py +++ b/abipy/benchmarks/gs_au108.py @@ -1,7 +1,7 @@ #!/usr/bin/env python """ Gold with 107 atoms. Gamma-point. -GS calculations with paralkgb==1 and wfoptalg in [default, 1] +GS calculations with paral_kgb == 1 and wfoptalg in [default, 1] """ import sys import operator @@ -17,7 +17,7 @@ def make_input(): """ - GS calculations with paralkgb==1 + GS calculations with paral_kgb == 1 Gold with 107 atoms. """ pseudos = abidata.pseudos("au.paw") @@ -192,10 +192,10 @@ def build_flow(options): # Processor distribution. pconfs = [ - dict(npkpt=1, npband=13, npfft=10), # 130 - dict(npkpt=1, npband=26, npfft=10), # 260 - dict(npkpt=1, npband=65, npfft=8), # 520 - dict(npkpt=1, npband=65, npfft=16), # 1040 + dict(npkpt=1, npband=13, npfft=10), # 130 + dict(npkpt=1, npband=26, npfft=10), # 260 + dict(npkpt=1, npband=65, npfft=8), # 520 + dict(npkpt=1, npband=65, npfft=16), # 1040 ] for wfoptalg in [None, 1]: diff --git a/abipy/benchmarks/gs_paralkgb.py b/abipy/benchmarks/gs_paralkgb.py index ef82752f9..7f8fa5c67 100755 --- a/abipy/benchmarks/gs_paralkgb.py +++ b/abipy/benchmarks/gs_paralkgb.py @@ -1,7 +1,7 @@ #!/usr/bin/env python """ Benchmark paral_kgb=1 algorithm with wfoptalg in [default, 1]. -default correspongs to the lobpcg algorithm, 1 enables the Chebyschev solver. +default corresponds to the LOBPCG algorithm, 1 enables the Chebyschev solver. """ import sys import operator @@ -58,10 +58,10 @@ def build_flow(options): # Processor distribution. pconfs = [ - dict(npkpt=64, npband=1, npfft=2), # 128 - dict(npkpt=64, npband=2, npfft=2), # 256 - dict(npkpt=64, npband=2, npfft=4), # 512 - dict(npkpt=64, npband=4, npfft=4), # 1024 + dict(npkpt=64, npband=1, npfft=2), # 128 + dict(npkpt=64, npband=2, npfft=2), # 256 + dict(npkpt=64, npband=2, npfft=4), # 512 + dict(npkpt=64, npband=4, npfft=4), # 1024 ] flow = BenchmarkFlow(workdir=options.get_workdir(__file__), remove=options.remove) diff --git a/abipy/benchmarks/gs_ti256.py b/abipy/benchmarks/gs_ti256.py index 8b0614f4c..8867462e8 100755 --- a/abipy/benchmarks/gs_ti256.py +++ b/abipy/benchmarks/gs_ti256.py @@ -1,7 +1,7 @@ #!/usr/bin/env python """ Titanium with 256 atoms and k-point sampling. -GS calculations with paralkgb==1 and wfoptalg in [default, 1] +GS calculations with paralkgb == 1 and wfoptalg in [default, 1] """ import sys import operator @@ -17,8 +17,7 @@ def make_input(paw=True): """ - Titanium with 256 atoms. - GS calculations with paralkgb==1 + Titanium with 256 atoms. GS calculations with paral_kgb == 1 """ pseudos = abidata.pseudos("ti.paw") if paw else abidata.pseudos("Ti-sp.psp8") @@ -280,7 +279,7 @@ def make_input(paw=True): 0.93254833333333 0.97751666666666 0.81711666666667 0.91770833333333 0.93970666666666 0.99482666666667 0.92680333333333 0.14577666666666 0.95922666666667 -""", sep=" ").reshape((-1,3)) +""", sep=" ").reshape((-1, 3)) # Crystal structure. structure = abilab.Structure.from_abivars( @@ -295,8 +294,8 @@ def make_input(paw=True): inp.set_vars( # SCF algorithm paral_kgb=1, - wfoptalg=1, - fftalg=402, + #wfoptalg=1, + #fftalg=402, #fftalg-302, # To use FFTW instead of ABINIT FFT # Basis set @@ -341,11 +340,11 @@ def build_flow(options): # Processor distribution. pconfs = [ - dict(npkpt=2, npband=8 , npfft=8), # 128 - dict(npkpt=2, npband=8 , npfft=16), # 256 - dict(npkpt=2, npband=16, npfft=16), # 512 - dict(npkpt=2, npband=16, npfft=32), # 1024 - dict(npkpt=2, npband=32, npfft=32), # 2048 + dict(npkpt=2, npband=8 , npfft=8), # 128 + dict(npkpt=2, npband=8 , npfft=16), # 256 + dict(npkpt=2, npband=16, npfft=16), # 512 + dict(npkpt=2, npband=16, npfft=32), # 1024 + dict(npkpt=2, npband=32, npfft=32), # 2048 ] for wfoptalg in [None, 1]: diff --git a/abipy/benchmarks/gs_uo2.py b/abipy/benchmarks/gs_uo2.py index 659fa35fe..6a8a786ac 100755 --- a/abipy/benchmarks/gs_uo2.py +++ b/abipy/benchmarks/gs_uo2.py @@ -1,7 +1,8 @@ #!/usr/bin/env python """ UO2 with 96 atoms. PAW and nsppol=2 -GS calculations with paralkgb==1. Compare wfoptalg in [default, 1]. +GS calculations with paral_kgb == 1. +Compare wfoptalg in [default, 1]. """ import sys import operator @@ -18,8 +19,7 @@ def make_input(): """ - UO2 with 96 atoms. - GS calculations with paralkgb==1 + UO2 with 96 atoms. GS calculations with paral_kgb == 1 """ pseudos = abidata.pseudos("u.paw", "o.paw") diff --git a/abipy/benchmarks/gs_useylm.py b/abipy/benchmarks/gs_useylm.py index 762efc416..dd7a3bebd 100755 --- a/abipy/benchmarks/gs_useylm.py +++ b/abipy/benchmarks/gs_useylm.py @@ -14,10 +14,10 @@ def make_input(): pseudos = abidata.pseudos("14si.pspnc", "8o.pspnc") structure = abidata.structure_from_ucell("SiO2-alpha") - #structure.make_supercell([3,3,3]) + #structure.make_supercell([3, 3, 3]) inp = abilab.AbinitInput(structure, pseudos) - inp.set_kmesh(ngkpt=[4,4,4], shiftk=[0,0,0]) + inp.set_kmesh(ngkpt=[4, 4, 4], shiftk=[0, 0, 0]) # Global variables ecut = 24 diff --git a/abipy/core/abinit_units.py b/abipy/core/abinit_units.py index 80426d32e..85a091f5d 100644 --- a/abipy/core/abinit_units.py +++ b/abipy/core/abinit_units.py @@ -3,6 +3,8 @@ This module defines constants and conversion factors matching those present in abinit that can be used when it is important to preserve consistency with the results produced by abinit. """ +from __future__ import annotations + import numpy as np # taken from abinit/10_defs/defs_basis.F90 @@ -15,6 +17,7 @@ # 1 Hartree, in eV Ha_eV = 27.21138386 Ha_to_eV = Ha_eV +Ha_to_meV = Ha_eV * 1000 # 1 eV in Hartree eV_Ha = 1. / Ha_eV # 1 eV in Rydberg @@ -74,7 +77,7 @@ dipole_moment_debye = 0.393430307 -def phfactor_ev2units(units): +def phfactor_ev2units(units: str) -> float: """ Return conversion factor eV --> units for phonons (case-insensitive) """ @@ -88,20 +91,27 @@ def phfactor_ev2units(units): raise KeyError('Value for units `{}` unknown\nPossible values are:\n {}'.format(units, list(d.keys()))) -def phunit_tag(units): +def phunit_tag(units: str, unicode=False) -> str: """ - Return latex string from ``units`` (used for phonons) + Mainly used for phonons. + Return latex string from ``units``. + If unicode is True, replace Latex superscript with unitcode. """ d = {"ev": "(eV)", "mev": "(meV)", "ha": '(Ha)', "cm-1": "(cm$^{-1}$)", 'cm^-1': "(cm$^{-1}$)", "thz": '(Thz)', } try: - return d[units.lower().strip()] + s = d[units.lower().strip()] except KeyError: raise KeyError('Value for units `{}` unknown\nPossible values are:\n {}'.format(units, list(d.keys()))) + if unicode: + s = s.replace('$^{-1}$', '⁻¹') + + return s -def wlabel_from_units(units): + +def wlabel_from_units(units: str, unicode=False) -> str: """ Return latex string for phonon frequencies in ``units``. """ @@ -109,14 +119,20 @@ def wlabel_from_units(units): 'cm-1': r'Frequency (cm$^{-1}$)', 'cm^-1': r'Frequency (cm$^{-1}$)', 'thz': r'Frequency (Thz)', + 'hbar': r'Angular momentum ($\hbar$)', } try: - return d[units.lower().strip()] + s = d[units.lower().strip()] except KeyError: raise KeyError('Value for units `{}` unknown\nPossible values are:\n {}'.format(units, list(d.keys()))) + if unicode: + s = s.replace('$^{-1}$', '⁻¹') -def phdos_label_from_units(units): + return s + + +def phdos_label_from_units(units: str, unicode=False) -> str: """ Return latex string for phonon DOS values in ``units``. """ @@ -125,12 +141,17 @@ def phdos_label_from_units(units): "thz": '(states/Thz)', } try: - return d[units.lower().strip()] + s = d[units.lower().strip()] except KeyError: raise KeyError('Value for units `{}` unknown\nPossible values are:\n {}'.format(units, list(d.keys()))) + if unicode: + s = s.replace('$^{-1}$', '⁻¹') + + return s + -def s2itup(comp): +def s2itup(comp: str) -> tuple: """ Convert string in the form ``xx``, ``xyz`` into tuple of two (three) indices that can be used to slice susceptibility tensors (numpy array). @@ -148,7 +169,7 @@ def s2itup(comp): raise ValueError("Expecting component in the form `xy` or `xyz` but got `%s`" % comp) -def itup2s(t): +def itup2s(t: tuple) -> str: """ Convert tuple of 2 (3) integers into string in the form ``xx`` (``xyz``). Assume C-indexing e.g. 0 --> x diff --git a/abipy/core/atom.py b/abipy/core/atom.py new file mode 100644 index 000000000..5c767f7b1 --- /dev/null +++ b/abipy/core/atom.py @@ -0,0 +1,589 @@ +# coding: utf-8 +"""This module provides objects and helper functions for atomic calculations.""" +from __future__ import annotations + +import collections +import numpy as np + +from io import StringIO +from dataclasses import dataclass +from typing import Any, Union, Optional, Iterable +from monty.functools import lazy_property +from monty.string import marquee # is_string, list_strings, +from scipy.interpolate import UnivariateSpline +try : + from scipy.integrate import cumulative_trapezoid as cumtrapz +except ImportError: + from scipy.integrate import cumtrapz + +from abipy.data import nist_database +from abipy.tools.serialization import pmg_serialize + +__version__ = "0.1" +__author__ = "Matteo Giantomassi" +__maintainer__ = "Matteo Giantomassi" + +__all__ = [ + "NlkState", + "QState", + "AtomicConfiguration", + "RadialFunction", + "RadialWaveFunction", +] + +char2l = { + "s": 0, + "p": 1, + "d": 2, + "f": 3, + "g": 4, + "h": 5, + "i": 6, +} + +l2char = { + 0: "s", + 1: "p", + 2: "d", + 3: "f", + 4: "g", + 5: "h", + 6: "i", +} + +# Accept strings as keys as well. +l2char.update({str(l): l2char[l] for l in l2char}) + + +def _asl(obj: Any) -> int: + try: + return char2l[obj] + except KeyError: + return int(obj) + + +def states_from_string(confstr: str) -> list[QState]: + """ + Parse a string with an atomic configuration and build a list of `QState` instance. + """ + states = [] + tokens = confstr.split() + + if tokens[0].startswith("["): + noble_gas = AtomicConfiguration.neutral_from_symbol(tokens.pop(0)[1:-1]) + states = noble_gas.states + + states.extend(parse_orbtoken(t) for t in tokens) + return states + + +def parse_orbtoken(orbtoken: str) -> QState: + import re + m = re.match(r"(\d+)([spdfghi]+)(\d+)", orbtoken.strip()) + if m: + return QState(n=m.group(1), l=m.group(2), occ=m.group(3)) + + raise ValueError("Don't know how to interpret %s" % str(orbtoken)) + + +class NlkState(collections.namedtuple("NlkState", "n, l, k")): + """ + Named tuple storing (n, l) or (n, l, k) if relativistic pseudos. + k is set to None if we are in non-relativistic mode. + """ + + # The relativistic code utilizes a new main program, oncvpsp_r, rather than + # complicate oncvpsp with lots of branching. Many arrays have acquired an + # additional final index, and most loops over angular momenta include inner + # loops over this "ikap=1,2" index referring to the additional quantum number of + # the radial Dirac equations kappa (kap) =l, -(l+1) for j=l -/+ 1/2. + + def __new__(cls, n: int, l: int, k: Optional[int] = None): + """ + Extends super.__new__ adding type conversion and default values. + """ + if k is not None: + if k not in (1, 2): + raise ValueError(f"Invalid k index: {k} for l: {l}") + if l == 0 and k != 1: + raise ValueError(f"When l is 0, k must be 1 while it is: {k}") + + #if n <= 0: + # raise ValueError(f"Invalid value for n: {n}") + if l < 0: + raise ValueError(f"Invalid value for l: {l}") + + return super().__new__(cls, n, l, k) + + @classmethod + def from_nlkap(cls, n: int, l: int, kap: Union[int, None]) -> NlkState: + k = None + if kap is not None: + #if(ikap==1) kap=-(ll+1) + #if(ikap==2) kap= ll + k = 1 + if l != 0: + k = {-(l + 1): 1, l:2}[kap] + + return cls(n=n, l=l, k=k) + + def __repr__(self) -> str: + return f"n={self.n}, l={self.l}" if self.k is None else f"n={self.n}, l={self.l}, k={self.k}" + + def __str__(self) -> str: + lc = l2char[self.l] + if self.k is None: + return f"{self.n}{lc}" # e.g. 2s + else: + return f"{self.n}{lc}{self.ksign}" # e.g. 2s+ + + @lazy_property + def latex(self) -> str: + lc = l2char[self.l] + # e.g. 2s or 2s^+ + return f"${self.n}{lc}$" if self.k is None else f"${self.n}{lc}^{self.ksign}$" + + @lazy_property + def latex_l(self) -> str: + lc = l2char[self.l] + # e.g. s or s^+ + return f"${lc}$" if self.k is None else f"${lc}^{self.ksign}$" + + @lazy_property + def ksign(self) -> str: + return {1: "+", 2: "-"}[self.k] + + @lazy_property + def j(self) -> int: + """Total angular momentum""" + l = self.l + if self.k is None: return l + return l - 1/2 if self.k == l else l + 1/2 + + @pmg_serialize + def as_dict(self) -> dict: + """Makes Nlk obey the general json interface used in pymatgen for easier serialization.""" + return {"n": self.n, "l": self.l, "k": self.k} + + def get_dict4pandas(self) -> dict: + """Dictionary used to build pandas DataFrames.""" + return {k: v for k, v in self.as_dict().items() if not k.startswith("@")} + + def from_dict(cls, d: dict) -> NlkState: + """ + Reconstruct object from the dictionary in MSONable format produced by as_dict. + """ + return cls(n=d["n"], l=d["l"], k=d["k"]) + + +class QState(collections.namedtuple("QState", "n, l, occ, eig, j, s")): + """ + This object collects the set of quantum numbers and the physical properties + associated to a single electron in a spherically symmetric atom. + + .. attributes: + + n: Principal quantum number. + l: Angular momentum. + occ: Occupancy of the atomic orbital. + eig: Eigenvalue of the atomic orbital. + j: J quantum number. None if spin is a good quantum number. + s: Spin polarization. None if spin is not taken into account. + """ + # TODO + # Spin +1, -1 or 1,2 or 0,1? + + def __new__(cls, n: int, l: int, occ: float, + eig: Optional[float] = None, + j: Optional[int] = None, + s: Optional[int] = None): + """ + Extends super.__new__ adding type conversion and default values. + """ + eig = float(eig) if eig is not None else eig + j = int(j) if j is not None else j + s = int(s) if s is not None else s + return super().__new__(cls, int(n), _asl(l), float(occ), eig=eig, j=j, s=s) + + @property + def has_j(self) -> bool: + return self.j is not None + + @property + def has_s(self) -> bool: + return self.s is not None + + +class AtomicConfiguration: + """ + Atomic configuration of an all-electron atom. + """ + def __init__(self, Z: int, states: list[QState]) -> None: + """ + Args: + Z: Atomic number. + states: List of :class:`QState` instances. + """ + self.Z = Z + self.states = states + + @classmethod + def from_string(cls, Z: int, string: str, + has_s: bool = False, has_j: bool = False) -> AtomicConfiguration: + if not has_s and not has_j: + # Ex: [He] 2s2 2p3 + states = states_from_string(string) + else: + raise NotImplementedError("") + + return cls(Z, states) + + @classmethod + def neutral_from_symbol(cls, symbol: Union[str, int]) -> AtomicConfiguration: + """ + symbol: str or int + Can be a chemical symbol (str) or an atomic number (int). + """ + entry = nist_database.get_neutral_entry(symbol) + states = [QState(n=s[0], l=s[1], occ=s[2]) for s in entry.states] + return cls(entry.Z, states) + + def __str__(self) -> str: + lines = ["%s: " % self.Z] + lines += [str(state) for state in self] + return "\n".join(lines) + + def __len__(self) -> int: + return len(self.states) + + def __iter__(self) -> Iterable: + return self.states.__iter__() + + def __eq__(self, other: AtomicConfiguration) -> bool: + if len(self.states) != len(other.states): + return False + + return (self.Z == other.Z and + all(s1 == s2 for s1, s2 in zip(self.states, other.states))) + + def __ne__(self, other: AtomicConfiguration) -> bool: + return not self == other + + def copy(self) -> AtomicConfiguration: + """Shallow copy of self.""" + return AtomicConfiguration(self.Z, [s for s in self.states]) + + @property + def symbol(self) -> str: + """Chemical symbol""" + return nist_database.symbol_from_Z(self.Z) + + @property + def spin_mode(self) -> str: + """ + unpolarized: Spin-unpolarized calculation. + polarized: Spin-polarized calculation. + """ + for state in self: + # FIXME + if state.s is not None and state.s == 2: + return "polarized" + return "unpolarized" + + @property + def echarge(self) -> float: + """Electronic charge (float < 0 ).""" + return -sum(state.occ for state in self) + + @property + def isneutral(self) -> bool: + """True if self is a neutral configuration.""" + return abs(self.echarge + self.Z) < 1.e-8 + + def add_state(self, **qnumbers) -> None: + """Add a list of :class:`QState` instances to self.""" + self._push(QState(**qnumbers)) + + def remove_state(self, **qnumbers) -> None: + """Remove a quantum state from self.""" + self._pop(QState(**qnumbers)) + + def _push(self, state) -> None: + # TODO check that ordering in the input does not matter! + if state in self.states: + raise ValueError("state %s is already in self" % str(state)) + self.states.append(state) + + def _pop(self, state) -> None: + try: + self.states.remove(state) + except ValueError: + raise + + +class RadialFunction: + """ + A RadialFunction has a name, a radial mesh and values defined on this mesh. + """ + + def __init__(self, name: str, rmesh, values): + """ + Args: + name: Name of the function (string). + rmesh: Iterable with the points of the radial mesh. + values: Iterable with the values of the function on the radial mesh. + """ + self.name = name + self.rmesh = np.ascontiguousarray(rmesh) + self.values = np.ascontiguousarray(values) + assert len(self.rmesh) == len(self.values) + + @classmethod + def from_filename(cls, filename: str, rfunc_name=None, cols=(0, 1)) -> RadialFunction: + """ + Initialize the object reading data from filename (txt format). + + Args: + filename: Path to the file containing data. + rfunc_name: Optional name for the RadialFunction (defaults to filename) + cols: List with the index of the columns containing the radial mesh and the values. + """ + data = np.loadtxt(filename) + rmesh, values = data[:,cols[0]], data[:,cols[1]] + name = filename if rfunc_name is None else rfunc_name + return cls(name, rmesh, values) + + def __len__(self) -> int: + return len(self.values) + + def __iter__(self) -> Iterable: + """Iterate over (rpoint, value).""" + return iter(zip(self.rmesh, self.values)) + + def __getitem__(self, rslice): + return self.rmesh[rslice], self.values[rslice] + + def __repr__(self) -> str: + return "<%s, name=%s at %s>" % (self.__class__.__name__, self.name, id(self)) + + def __str__(self) -> str: + stream = StringIO() + self.pprint(stream=stream) + return stream.getvalue() + + #def __add__(self, other): + #def __sub__(self, other): + #def __mul__(self, other): + + def __abs__(self) -> RadialFunction: + return self.__class__(self.rmesh, np.abs(self.values)) + + @property + def to_dict(self) -> dict: + return dict( + name=str(self.name), + rmesh=list(self.rmesh), + values=list(self.values), + ) + + def pprint(self, what: str = "rmesh+values", stream=None) -> None: + """pprint method (useful for debugging)""" + from pprint import pprint + if "rmesh" in what: + pprint("rmesh:", stream=stream) + pprint(self.rmesh, stream=stream) + + if "values" in what: + pprint("values:", stream=stream) + pprint(self.values, stream=stream) + + @property + def rmax(self) -> float: + """Outermost point of the radial mesh.""" + return self.rmesh[-1] + + @property + def rsize(self) -> float: + """Size of the radial mesh.""" + return len(self.rmesh) + + @property + def minmax_ridx(self) -> tuple[int, int]: + """ + Returns the indices of the values in a list with the maximum and minimum value. + """ + minimum = min(enumerate(self.values), key=lambda s: s[1]) + maximum = max(enumerate(self.values), key=lambda s: s[1]) + return minimum[0], maximum[0] + + @property + def inodes(self) -> list[int]: + """" + List with the index of the nodes of the radial function. + """ + inodes = [] + for i in range(len(self.values)-1): + if self.values[i] * self.values[i+1] <= 0: + inodes.append(i) + return inodes + + @lazy_property + def spline(self): + """Cubic spline.""" + #return UnivariateSpline(self.rmesh, self.values, s=0) + return UnivariateSpline(self.rmesh, self.values, s=None) + + @lazy_property + def roots(self): + """Return the zeros of the spline.""" + return self.spline.roots() + + def get_peaks(self, **kwargs): + """ + """ + from scipy.signal import find_peaks + inds, properties = find_peaks(self.values, **kwargs) + xs = self.rmesh[inds] if len(inds) else [] + ys = self.values[inds] if len(inds) else [] + return Peaks(xs=xs, ys=ys, inds=inds, properties=properties) + + def derivatives(self, r): + """Return all derivatives of the spline at the point r.""" + return self.spline.derivatives(r) + + def integral(self) -> RadialFunction: + r""" + Cumulatively integrate y(x) using the composite trapezoidal rule. + + Returns: + `Function1d` with :math:`\int y(x) dx` + """ + integ = cumtrapz(self.values, x=self.rmesh) + pad_intg = np.zeros(len(self.values)) + pad_intg[1:] = integ + + return self.__class__(self.rmesh, pad_intg) + + def integral3d(self, a=None, b=None): + """ + Return definite integral of the spline of (r**2 values**2) between two given points a and b + + Args: + a: First point. rmesh[0] if a is None + b: Last point. rmesh[-1] if a is None + """ + a = self.rmesh[0] if a is None else a + b = self.rmesh[-1] if b is None else b + r2v2_spline = UnivariateSpline(self.rmesh, (self.rmesh * self.values) ** 2, s=0) + + return r2v2_spline.integral(a, b) + + def ifromr(self, rpoint) -> int: + """ + The index of the point in the radial mesh. + """ + for (i, r) in enumerate(self.rmesh): + if r > rpoint: + return i - 1 + + if rpoint == self.rmesh[-1]: + return len(self.rmesh) + else: + raise ValueError("Cannot find %s in rmesh" % rpoint) + + def ir_small(self, abs_tol: float = 0.01) -> int: + """ + Returns the rightmost index where the abs value of the wf becomes greater than abs_tol + + Args: + abs_tol: Absolute tolerance. + + .. warning:: + + Assumes that self.values are tending to zero for r --> infinity. + """ + for i in range(len(self.rmesh)-1, -1, -1): + if abs(self.values[i]) > abs_tol: + break + return i + + def r2f2_integral(self): + """ + Cumulatively integrate r**2 f**2(r) using the composite trapezoidal rule. + """ + integ = cumtrapz(self.rmesh**2 * self.values**2, x=self.rmesh) + pad_intg = np.zeros(len(self)) + pad_intg[1:] = integ + + return pad_intg + + def r2f_integral(self): + """ + Cumulatively integrate r**2 f(r) using the composite trapezoidal rule. + """ + integ = cumtrapz(self.rmesh**2 * self.values, x=self.rmesh) + pad_intg = np.empty(len(self)) + pad_intg[1:] = integ + return pad_intg + + def get_intr2j0(self, ecut: float, numq: float = 3001): + r""" + Compute 4\pi\int[(\frac{\sin(2\pi q r)}{2\pi q r})(r^2 n(r))dr]. + """ + qmax = np.sqrt(ecut / 2) / np.pi + qmesh = np.linspace(0, qmax, num=numq, endpoint=True) + outs = np.empty(len(qmesh)) + + # Treat q == 0. Note that rmesh[0] > 0 + f = 4 * np.pi * self.rmesh**2 * self.values + outs[0] = cumtrapz(f, x=self.rmesh)[-1] + + for i, q in enumerate(qmesh[1:]): + twopiqr = 2 * np.pi * q * self.rmesh + f = 4 * np.pi * (np.sin(twopiqr) / twopiqr) * self.rmesh**2 * self.values + outs[i+1] = cumtrapz(f, x=self.rmesh)[-1] + + from abipy.core.func1d import Function1D + ecuts = 2 * np.pi**2 * qmesh**2 + return Function1D(ecuts, outs) + + +class RadialWaveFunction(RadialFunction): + """ + Extends :class:`RadialFunction` adding info on the set of quantum numbers. + and methods specialized for electronic wavefunctions. + """ + + def __init__(self, nlk: NlkState, name: str, rmesh, values): + super().__init__(name, rmesh, values) + self.nlk = nlk + + +@dataclass +class Peaks: + """ + Store information on the peaks of the radial functions. + """ + xs: np.ndarray # Absissas of the peaks + ys: np.ndarray # Values of the peaks + inds: np.ndarray # Indices of the peaks. + properties: dict # Dict with peaks properties. + + def __bool__(self) -> bool: + return bool(len(self.xs)) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, title=None, verbose=0) -> str: + """ + String representation. + """ + lines = []; app = lines.append + if title is not None: app(marquee(title, mark="=")) + + if self: + app(f"last peak at: {round(self.xs[-1], 2)}, num peaks: {len(self.xs)}") + + return "\n".join(lines) + diff --git a/abipy/core/fields.py b/abipy/core/fields.py index 9dda02ca1..ef71c4e08 100644 --- a/abipy/core/fields.py +++ b/abipy/core/fields.py @@ -1,9 +1,13 @@ # coding: utf-8 """This module contains the class describing densities in real space on uniform 3D meshes.""" -import numpy as np +from __future__ import annotations + import collections -import pymatgen.core.units as pmgu import os +import numpy as np +import pandas as pd +import pymatgen.core.units as pmgu +import typing from collections import OrderedDict from monty.collections import AttrDict @@ -11,8 +15,6 @@ from monty.string import is_string, marquee from monty.termcolor import cprint from monty.inspect import all_subclasses -from pymatgen.io.vasp.inputs import Poscar -from pymatgen.io.vasp.outputs import Chgcar from pymatgen.core.units import bohr_to_angstrom from abipy.core.structure import Structure from abipy.core.mesh3d import Mesh3D @@ -21,8 +23,12 @@ from abipy.tools import duck from abipy.tools.numtools import transpose_last3dims from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt +from abipy.tools.typing import Figure from abipy.iotools import Visualizer, xsf, ETSF_Reader, cube +if typing.TYPE_CHECKING: + from pymatgen.io.vasp.outputs import Chgcar + __all__ = [ "Density", @@ -33,7 +39,7 @@ ] -def latexlabel_ispden(ispden, nspden): +def latexlabel_ispden(ispden: int, nspden: int): """Return latexlabel from ``ispden`` with given ``nspden``.""" if nspden == 1: return None @@ -60,10 +66,11 @@ class _Field(Has_Structure): latex_label: String used in plot to set the axis label. """ netcdf_name = "Unknown" + latex_label = " " @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str): """Initialize the object from a netCDF file.""" with FieldReader(filepath) as r: return r.read_denpot(varname=cls.netcdf_name, field_cls=cls) @@ -87,7 +94,7 @@ def __init__(self, nspinor, nsppol, nspden, datar, structure, iorder="c"): assert iorder in ["f", "c"] if iorder == "f": - # (z,x,y) --> (x,y,z) + # (z,y,x) --> (x,y,z) datar = transpose_last3dims(datar) # Init Mesh3D @@ -165,11 +172,11 @@ def __abs__(self): structure=self.structure, iorder="c") @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure - def to_string(self, verbose=0, title=None): + def to_string(self, verbose=0, title=None) -> str: """String representation""" lines = []; app = lines.append if title is not None: app(marquee(title), mark="=") @@ -182,66 +189,66 @@ def to_string(self, verbose=0, title=None): return "\n".join(lines) @property - def datar(self): + def datar(self) -> np.ndarray: """|numpy-array| with data in real space. shape: [nspden, nx, ny, nz]""" return self._datar @lazy_property - def datag(self): + def datag(self) -> np.ndarray: """|numpy-array| with data in reciprocal space. shape: [nspden, nx, ny, nz]""" # FFT R --> G. return self.mesh.fft_r2g(self.datar) @property - def mesh(self): + def mesh(self) -> Mesh3D: """|Mesh3D| object. datar and datag are defined on this mesh.""" return self._mesh @property - def shape(self): + def shape(self) -> tuple: """Shape of the array.""" assert self.datar.shape == self.datag.shape return self.datar.shape @property - def nx(self): + def nx(self) -> int: """Number of points along x.""" return self.mesh.nx @property - def ny(self): + def ny(self) -> int: """Number of points along y.""" return self.mesh.ny @property - def nz(self): + def nz(self) -> int: """Number of points along z.""" return self.mesh.nz @property - def is_density_like(self): + def is_density_like(self) -> bool: """True if field is density-like.""" return isinstance(self, _DensityField) @property - def is_potential_like(self): + def is_potential_like(self) -> bool: """True if field is potential-like.""" return isinstance(self, _PotentialField) @property - def is_collinear(self): + def is_collinear(self) -> bool: """True if collinear i.e. nspinor==1.""" return self.nspinor == 1 @staticmethod - def _check_space(space): + def _check_space(space) -> str: """Helper function used in __add__ ... methods to check Consistency.""" space = space.lower() if space not in ("r", "g"): raise ValueError("Wrong space %s" % space) return space - def mean(self, space="r", axis=0): + def mean(self, space="r", axis=0) -> np.ndarray: """ Returns the average of the array elements along the given axis. """ @@ -307,7 +314,7 @@ def export(self, filename, visu=None, verbose=1): else: return visu(filename) - def visualize(self, appname): + def visualize(self, appname: str): """ Visualize data with visualizer. @@ -351,7 +358,7 @@ def get_interpolator(self): # raise NotImplementedError("nspinor != 1 not implenented") @add_fig_kwargs - def plot_line(self, point1, point2, num=200, cartesian=False, ax=None, fontsize=12, **kwargs): + def plot_line(self, point1, point2, num=200, cartesian=False, ax=None, fontsize=8, **kwargs) -> Figure: """ Plot (interpolated) density/potential in real space along a line defined by ``point1`` and ``point2``. @@ -390,7 +397,7 @@ def plot_line(self, point1, point2, num=200, cartesian=False, ax=None, fontsize= return fig @add_fig_kwargs - def plot_line_neighbors(self, site_index, radius, num=200, max_nn=10, fontsize=12, **kwargs): + def plot_line_neighbors(self, site_index, radius, num=200, max_nn=10, fontsize=12, **kwargs) -> Figure: """ Plot (interpolated) density/potential in real space along the lines connecting an atom specified by ``site_index`` and all neighbors within a sphere of given ``radius``. @@ -415,7 +422,7 @@ def plot_line_neighbors(self, site_index, radius, num=200, max_nn=10, fontsize=1 cprint("Zero neighbors found for radius %s Ang. Returning None." % radius, "yellow") return None # Sorte sites by distance. - nn_list = list(sorted(nn_list, key=lambda t: t[1])) + nn_list = list(sorted(nn_list, key=lambda t: t.nn_distance)) if max_nn is not None and len(nn_list) > max_nn: cprint("For radius %s, found %s neighbors but only max_nn %s sites are show." % @@ -431,7 +438,10 @@ def plot_line_neighbors(self, site_index, radius, num=200, max_nn=10, fontsize=1 interpolator = self.get_interpolator() for i, (nn, ax) in enumerate(zip(nn_list, ax_list)): - nn_site, nn_dist, nn_sc_index = nn + #nn_site, nn_dist, nn_sc_index = nn + nn_site = nn + nn_dist = nn.nn_distance + nn_sc_index = nn.index title = "%s, %s, dist=%.3f A" % (nn_site.species_string, str(nn_site.frac_coords), nn_dist) r = interpolator.eval_line(site.frac_coords, nn_site.frac_coords, num=num, kpoint=None) @@ -451,7 +461,7 @@ def plot_line_neighbors(self, site_index, radius, num=200, max_nn=10, fontsize=1 return fig - def integrate_in_spheres(self, rcut_symbol=None, out=False): + def integrate_in_spheres(self, rcut_symbol=None, out=False) -> pd.DataFrame: """ Integrate field (e.g. density/potential) inside atom-centered spheres of given radius. Can be used to get a rough estimate of the charge/magnetization associated to a given site. @@ -514,7 +524,6 @@ def integrate_in_spheres(self, rcut_symbol=None, out=False): ("rsph_ang", rcut_symbol[symbol]), ("frac_coords", site.frac_coords), ])) - import pandas as pd df = pd.DataFrame(rows, columns=list(rows[0].keys())) # Use iatom as index and remove columns with None. df = df.set_index("iatom").dropna(axis="columns", how='any') @@ -531,7 +540,7 @@ class _DensityField(_Field): """Base class for density-like fields.""" -def core_density_from_file(filepath): +def core_density_from_file(filepath: str) -> np.ndarray: """ Parses a file and extracts two numpy array, containing radii and the core densities, respectively. Can be used to provide the core densities to Density.ae_core_density_on_mesh @@ -576,7 +585,8 @@ class Density(_DensityField): latex_label = "Density [$e/A^3$]" @classmethod - def ae_core_density_on_mesh(cls, valence_density, structure, rhoc, maxr=2.0, nelec=None, tol=0.01, + def ae_core_density_on_mesh(cls, valence_density, structure, rhoc, + maxr=2.0, nelec=None, tol=0.01, method='get_sites_in_sphere', small_dist_mesh=(8, 8, 8), small_dist_factor=1.5): """ Initialize the all electron core density of the structure from the pseudopotentials *rhoc* files. @@ -739,7 +749,9 @@ def ae_core_density_on_mesh(cls, valence_density, structure, rhoc, maxr=2.0, nel for iz in range(valence_density.mesh.nz): rpoint = valence_density.mesh.rpoint(ix=ix, iy=iy, iz=iz) sites = structure.get_sites_in_sphere(pt=rpoint, r=maxr, include_index=True) - for site, dist, site_index in sites: + #for site, dist, site_index in sites: + for site in sites: + dist, site_index = site.nn_distance, site.index if dist > smallradius: core_den[0, ix, iy, iz] += rhoc_atom_splines[site_index](dist) # For small distances, integrate over the small volume dv around the point as the core @@ -780,7 +792,7 @@ def get_nelect(self, spin=None): return self.mesh.integrate(self.datar[0]) @lazy_property - def total_rhor(self): + def total_rhor(self) -> np.ndarray: """ |numpy-array| with the total density in real space on the FFT mesh. """ @@ -801,13 +813,13 @@ def total_rhor_as_density(self): structure=self.structure, iorder="c") @lazy_property - def total_rhog(self): + def total_rhog(self) -> np.ndarray: """|numpy-array| with the total density in G-space.""" # FFT R --> G. return self.mesh.fft_r2g(self.total_rhor) @lazy_property - def magnetization_field(self): + def magnetization_field(self) -> np.ndarray: """ |numpy-array| with the magnetization field in real space on the FFT mesh: @@ -835,7 +847,7 @@ def magnetization(self): return self.mesh.integrate(self.magnetization_field) @lazy_property - def nelect_updown(self): + def nelect_updown(self) -> tuple: """ Tuple with the number of electrons in the up/down channel. Return (None, None) if non-collinear. @@ -853,7 +865,7 @@ def nelect_updown(self): return nup, ndown @lazy_property - def zeta(self): + def zeta(self) -> np.ndarray: """ |numpy-array| with Magnetization(r) / total_density(r) """ @@ -890,7 +902,7 @@ def zeta(self): # vhr = self.mesh.fft_g2r(vhg, fg_ishifted=False) # return vhr, vhg - def export_to_cube(self, filename, spin='total'): + def export_to_cube(self, filename, spin='total') -> None: """ Export real space density to CUBE file ``filename``. """ @@ -910,7 +922,7 @@ def from_cube(cls, filename, spin='total'): if spin != 'total': raise ValueError('Argument "spin" should be "total"') - structure, mesh, datar = cube.cube_read_structure_mesh_data(file=filename) + structure, mesh, datar = cube.cube_read_structure_mesh_data(filepath=filename) return cls(nspinor=1, nsppol=1, nspden=1, datar=datar, structure=structure, iorder="c") #@lazy_property @@ -918,7 +930,7 @@ def from_cube(cls, filename, spin='total'): #"""Compute the kinetic energy density in real- and reciprocal-space.""" #return kindr, kindgg - def to_chgcar(self, filename=None): + def to_chgcar(self, filename=None) -> 'Chgcar': """ Convert a :class:`Density` object into a ``Chgar`` object. If ``filename`` is not None, density is written to this file in Chgar format @@ -937,6 +949,9 @@ def to_chgcar(self, filename=None): For non collinear calculations the CHGCAR file contains the total charge density and the magnetisation density in the x, y and z direction in this order. """ + from pymatgen.io.vasp.inputs import Poscar + from pymatgen.io.vasp.outputs import Chgcar + myrhor = self.datar * self.structure.volume if self.nspinor == 1: @@ -969,6 +984,9 @@ def from_chgcar_poscar(cls, chgcar, poscar): The Chgcar object provided by pymatgen does not provided enough information to understand if the calculation is collinear or no. """ + from pymatgen.io.vasp.inputs import Poscar + from pymatgen.io.vasp.outputs import Chgcar + if is_string(chgcar): chgcar = Chgcar.from_file(chgcar) if is_string(poscar): @@ -1058,7 +1076,7 @@ class FieldReader(ETSF_Reader): .. inheritance-diagram:: FieldReader """ - def read_den_dims(self): + def read_den_dims(self) -> AttrDict: """Returns a |AttrDict| dictionary with the basic dimensions.""" return AttrDict( nspinor=self.read_dimvalue("number_of_spinor_components"), @@ -1102,6 +1120,10 @@ def read_vks(self, field_cls=VksPotential): """Read potential data. Return :class:`VksPotential` object.""" return self.read_denpot(varname=field_cls.netcdf_name, field_cls=field_cls) + #def read_vks1(self, field_cls=Vks1Potential): + # """Read potential data. Return :class:`Vks1Potential` object.""" + # return self.read_denpot(varname=field_cls.netcdf_name, field_cls=field_cls) + def read_denpot(self, varname, field_cls): """ Factory function to read den/pot data from netcdf_ files and instantiate :class:`_Field` objects. @@ -1129,7 +1151,7 @@ def read_denpot(self, varname, field_cls): assert dims.nsppol == 1 elif dims.nspden == 2: - assert dims.nsppol == 2 + # assert dims.nsppol == 2 if issubclass(field_cls, _DensityField): # If Density: store rho_up, rho_down instead of rho_total, rho_up. total = datar[0].copy() @@ -1164,7 +1186,7 @@ def read_denpot(self, varname, field_cls): datar *= fact - # use iorder="f" to transpose the last 3 dimensions since ETSF + # use iorder = "f" to transpose the last 3 dimensions since ETSF # stores data in Fortran order while AbiPy uses C-ordering. if cplex == 1: return field_cls(dims.nspinor, dims.nsppol, dims.nspden, datar, structure, iorder="f") diff --git a/abipy/core/func1d.py b/abipy/core/func1d.py index f9e2a09b1..f0110b245 100644 --- a/abipy/core/func1d.py +++ b/abipy/core/func1d.py @@ -3,23 +3,30 @@ Function1D describes a function of a single variable and provides an easy-to-use API for performing common tasks such as algebraic operations, integrations, differentiations, plots ... """ +from __future__ import annotations + import numpy as np from io import StringIO +from typing import Tuple, Union from monty.functools import lazy_property -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, data_from_cplx_mode +from abipy.tools.typing import Figure +from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, add_plotly_fig_kwargs, PlotlyRowColDesc, get_fig_plotly) from abipy.tools.derivatives import finite_diff +from abipy.tools.numtools import data_from_cplx_mode __all__ = [ "Function1D", ] -class Function1D(object): - """Immutable object representing a (real|complex) function of real variable.""" +class Function1D: + """ + Immutable object representing a real|complex function of real variable. + """ @classmethod - def from_constant(cls, mesh, const): + def from_constant(cls, mesh, const) -> Function1D: """Build a constant function from the mesh and the scalar ``const``""" mesh = np.ascontiguousarray(mesh) return cls(mesh, np.ones(mesh.shape) * const) @@ -36,51 +43,52 @@ def __init__(self, mesh, values): assert len(self.mesh) == len(self.values) @property - def mesh(self): + def mesh(self) -> np.ndarray: """|numpy-array| with the mesh points""" return self._mesh @property - def values(self): + def values(self) -> np.ndarray: """Values of the functions.""" return self._values - def __len__(self): + def __len__(self) -> int: return len(self.mesh) def __iter__(self): return zip(self.mesh, self.values) - def __getitem__(self, slice): + def __getitem__(self, slice) -> Tuple[float, float]: return self.mesh[slice], self.values[slice] - def __eq__(self, other): + def __eq__(self, other) -> bool: if other is None: return False return (self.has_same_mesh(other) and np.allclose(self.values, other.values)) - def __ne__(self, other): + def __ne__(self, other) -> bool: return not (self == other) - def __neg__(self): + def __neg__(self) -> Function1D: return self.__class__(self.mesh, -self.values) - def __pos__(self): + def __pos__(self) -> Function1D: return self - def __abs__(self): + def __abs__(self) -> Function1D: return self.__class__(self.mesh, np.abs(self.values)) - def __add__(self, other): + def __add__(self, other) -> Function1D: cls = self.__class__ if isinstance(other, cls): assert self.has_same_mesh(other) return cls(self.mesh, self.values+other.values) else: - return cls(self.mesh, self.values+np.array(other)) + return cls(self.mesh, self.values + np.array(other)) + __radd__ = __add__ - def __sub__(self, other): + def __sub__(self, other) -> Function1D: cls = self.__class__ if isinstance(other, cls): assert self.has_same_mesh(other) @@ -88,54 +96,56 @@ def __sub__(self, other): else: return cls(self.mesh, self.values-np.array(other)) - def __rsub__(self, other): + def __rsub__(self, other) -> Function1D: return -self + other - def __mul__(self, other): + def __mul__(self, other) -> Function1D: cls = self.__class__ if isinstance(other, cls): assert self.has_same_mesh(other) return cls(self.mesh, self.values*other.values) else: return cls(self.mesh, self.values*other) + __rmul__ = __mul__ - def __truediv__(self, other): + def __truediv__(self, other) -> Function1D: cls = self.__class__ if isinstance(other, cls): assert self.has_same_mesh(other) return cls(self.mesh, self.values/other.values) else: return cls(self.mesh, self.values/other) + __rtruediv__ = __truediv__ - def __pow__(self, other): + def __pow__(self, other) -> Function1D: return self.__class__(self.mesh, self.values**other) - def _repr_html_(self): + def _repr_html_(self) -> Figure: """Integration with jupyter_ notebooks.""" return self.plot(show=False) @property - def real(self): + def real(self) -> Function1D: """Return new :class:`Function1D` with the real part of self.""" return self.__class__(self.mesh, self.values.real) @property - def imag(self): + def imag(self) -> Function1D: """Return new :class:`Function1D` with the imaginary part of self.""" return self.__class__(self.mesh, self.values.real) - def conjugate(self): + def conjugate(self) -> Function1D: """Return new :class:`Function1D` with the complex conjugate.""" return self.__class__(self.mesh, self.values.conjugate) - def abs(self): + def abs(self) -> Function1D: """Return :class:`Function1D` with the absolute value.""" return self.__class__(self.mesh, np.abs(self.values)) @classmethod - def from_func(cls, func, mesh): + def from_func(cls, func, mesh) -> Function1D: """ Initialize the object from a callable. @@ -146,7 +156,7 @@ def from_func(cls, func, mesh): return cls(mesh, np.vectorize(func)(mesh)) @classmethod - def from_file(cls, path, comments="#", delimiter=None, usecols=(0, 1)): + def from_file(cls, path, comments="#", delimiter=None, usecols=(0, 1)) -> Function1D: """ Initialize an instance by reading data from path (txt format) see also :func:`np.loadtxt` @@ -162,7 +172,7 @@ def from_file(cls, path, comments="#", delimiter=None, usecols=(0, 1)): usecols=usecols, unpack=True) return cls(mesh, values) - def to_file(self, path, fmt='%.18e', header=''): + def to_file(self, path, fmt='%.18e', header='') -> None: """ Save data in a text file. Use format fmr. A header is added at the beginning. """ @@ -172,18 +182,18 @@ def to_file(self, path, fmt='%.18e', header=''): for x, y in zip(self.mesh, self.values): fh.write(fmt % (x, y)) - def __repr__(self): + def __repr__(self) -> str: return "%s at %s, size = %d" % (self.__class__.__name__, id(self), len(self)) - def __str__(self): + def __str__(self) -> str: stream = StringIO() for x, y in zip(self.mesh, self.values): stream.write("%.18e %.18e\n" % (x, y)) return "".join(stream.getvalue()) - def has_same_mesh(self, other): + def has_same_mesh(self, other: Function1D) -> bool: """True if self and other have the same mesh.""" - if (self.h, other.h) is (None, None): + if self.h is None and other.h is None: # Generic meshes. return np.allclose(self.mesh, other.mesh) else: @@ -191,12 +201,12 @@ def has_same_mesh(self, other): return len(self.mesh) == len(other.mesh) and self.h == other.h @property - def bma(self): + def bma(self) -> float: """Return b-a. f(x) is defined in [a,b]""" return self.mesh[-1] - self.mesh[0] @property - def max(self): + def max(self) -> float: """Max of f(x) if f is real, max of :math:`|f(x)|` if complex.""" if not self.iscomplexobj: return self.values.max() @@ -205,7 +215,7 @@ def max(self): return np.max(np.abs(self.values)) @property - def min(self): + def min(self) -> float: """Min of f(x) if f is real, min of :math:`|f(x)|` if complex.""" if not self.iscomplexobj: return self.values.min() @@ -213,7 +223,7 @@ def min(self): return np.max(np.abs(self.values)) @property - def iscomplexobj(self): + def iscomplexobj(self) -> bool: """ Check if values is array of complex numbers. The type of the input is checked, not the value. Even if the input @@ -222,12 +232,12 @@ def iscomplexobj(self): return np.iscomplexobj(self.values) @lazy_property - def h(self): + def h(self) -> Union[float, None]: """The spacing of the mesh. None if mesh is not homogeneous.""" return self.dx[0] if np.allclose(self.dx[0], self.dx) else None @lazy_property - def dx(self): + def dx(self) -> np.ndarray: """ |numpy-array| of len(self) - 1 elements giving the distance between two consecutive points of the mesh, i.e. dx[i] = ||x[i+1] - x[i]||. @@ -237,7 +247,7 @@ def dx(self): dx[i] = self.mesh[i+1] - x return dx - def find_mesh_index(self, value): + def find_mesh_index(self, value) -> int: """ Return the index of the first point in the mesh whose value is >= value -1 if not found @@ -247,7 +257,7 @@ def find_mesh_index(self, value): return i return -1 - def finite_diff(self, order=1, acc=4): + def finite_diff(self, order: int = 1, acc: int = 4) -> Function1D: """ Compute the derivatives by finite differences. @@ -263,7 +273,7 @@ def finite_diff(self, order=1, acc=4): return self.__class__(self.mesh, finite_diff(self.values, self.h, order=order, acc=acc)) - def integral(self, start=0, stop=None): + def integral(self, start=0, stop=None) -> Function1D: r""" Cumulatively integrate y(x) from start to stop using the composite trapezoidal rule. @@ -272,12 +282,14 @@ def integral(self, start=0, stop=None): """ if stop is None: stop = len(self.values) + 1 x, y = self.mesh[start:stop], self.values[start:stop] - from scipy.integrate import cumtrapz - integ = cumtrapz(y, x=x) - pad_intg = np.zeros(len(y)) - pad_intg[1:] = integ + try : + from scipy.integrate import cumulative_trapezoid as cumtrapz + except ImportError: + from scipy.integrate import cumtrapz - return self.__class__(x, pad_intg) + integ = cumtrapz(y, x=x, initial=0.0) + + return self.__class__(x, integ) @lazy_property def spline(self): @@ -290,7 +302,7 @@ def spline_roots(self): """Zeros of the spline.""" return self.spline.roots() - def spline_on_mesh(self, mesh): + def spline_on_mesh(self, mesh) -> Function1D: """Spline the function on the given mesh, returns :class:`Function1D` object.""" return self.__class__(mesh, self.spline(mesh)) @@ -316,16 +328,16 @@ def integral_value(self): return self.integral()[-1][1] @lazy_property - def l1_norm(self): + def l1_norm(self) -> float: r"""Compute :math:`\int |f(x)| dx`.""" return abs(self).integral()[-1][1] @lazy_property - def l2_norm(self): + def l2_norm(self) -> float: r"""Compute :math:`\sqrt{\int |f(x)|^2 dx}`.""" return np.sqrt((abs(self)**2).integral()[-1][1]) - def fft(self): + def fft(self) -> Function1D: """Compute the FFT transform (negative sign).""" # Compute FFT and frequencies. from scipy import fftpack @@ -339,7 +351,7 @@ def fft(self): return self.__class__(freqs, fft_vals) - def ifft(self, x0=None): + def ifft(self, x0=None) -> Function1D: r"""Compute the FFT transform :math:`\int e+i`""" # Rearrange values in the standard order then perform IFFT. from scipy import fftpack @@ -378,87 +390,87 @@ def ifft(self, x0=None): # smooth_vals = smooth(self.values, window_len=window_len, window=window) # return self.__class__(self.mesh, smooth_vals) - def real_from_kk(self, with_div=True): - """ - Compute the Kramers-Kronig transform of the imaginary part - to get the real part. Assume self represents the Fourier - transform of a response function. - - Args: - with_div: True if the divergence should be treated numerically. - If False, the divergence is ignored, results are less accurate - but the calculation is faster. - - .. seealso:: - """ - from scipy.integrate import cumtrapz, quad - from scipy.interpolate import UnivariateSpline - wmesh = self.mesh - num = np.array(self.values.imag * wmesh, dtype=np.double) - - if with_div: - spline = UnivariateSpline(self.mesh, num, s=0) - - kk_values = np.empty(len(self)) - for i, w in enumerate(wmesh): - den = wmesh**2 - w**2 - # Singularity is treated below. - den[i] = 1 - f = num / den - f[i] = 0 - integ = cumtrapz(f, x=wmesh) - kk_values[i] = integ[-1] - - if with_div: - func = lambda x: spline(x) / (x**2 - w**2) - w0 = w - self.h - w1 = w + self.h - y, abserr = quad(func, w0, w1, points=[w]) - kk_values[i] += y - - return self.__class__(self.mesh, (2 / np.pi) * kk_values) - - def imag_from_kk(self, with_div=True): - """ - Compute the Kramers-Kronig transform of the real part - to get the imaginary part. Assume self represents the Fourier - transform of a response function. - - Args: - with_div: True if the divergence should be treated numerically. - If False, the divergence is ignored, results are less accurate - but the calculation is faster. - - .. seealso:: - """ - from scipy.integrate import cumtrapz, quad - from scipy.interpolate import UnivariateSpline - wmesh = self.mesh - num = np.array(self.values.real, dtype=np.double) - - if with_div: - spline = UnivariateSpline(self.mesh, num, s=0) - - kk_values = np.empty(len(self)) - for i, w in enumerate(wmesh): - den = wmesh**2 - w**2 - # Singularity is treated below. - den[i] = 1 - f = num / den - f[i] = 0 - integ = cumtrapz(f, x=wmesh) - kk_values[i] = integ[-1] - - if with_div: - func = lambda x: spline(x) / (x**2 - w**2) - w0 = w - self.h - w1 = w + self.h - y, abserr = quad(func, w0, w1, points=[w]) - kk_values[i] += y - - return self.__class__(self.mesh, -(2 / np.pi) * wmesh * kk_values) - - def plot_ax(self, ax, exchange_xy=False, xfactor=1, yfactor=1, *args, **kwargs): + #def real_from_kk(self, with_div=True): + # """ + # Compute the Kramers-Kronig transform of the imaginary part + # to get the real part. Assume self represents the Fourier + # transform of a response function. + + # Args: + # with_div: True if the divergence should be treated numerically. + # If False, the divergence is ignored, results are less accurate + # but the calculation is faster. + + # .. seealso:: + # """ + # from scipy.integrate import cumtrapz, quad + # from scipy.interpolate import UnivariateSpline + # wmesh = self.mesh + # num = np.array(self.values.imag * wmesh, dtype=np.double) + + # if with_div: + # spline = UnivariateSpline(self.mesh, num, s=0) + + # kk_values = np.empty(len(self)) + # for i, w in enumerate(wmesh): + # den = wmesh**2 - w**2 + # # Singularity is treated below. + # den[i] = 1 + # f = num / den + # f[i] = 0 + # integ = cumtrapz(f, x=wmesh) + # kk_values[i] = integ[-1] + + # if with_div: + # func = lambda x: spline(x) / (x**2 - w**2) + # w0 = w - self.h + # w1 = w + self.h + # y, abserr = quad(func, w0, w1, points=[w]) + # kk_values[i] += y + + # return self.__class__(self.mesh, (2 / np.pi) * kk_values) + + #def imag_from_kk(self, with_div=True): + # """ + # Compute the Kramers-Kronig transform of the real part + # to get the imaginary part. Assume self represents the Fourier + # transform of a response function. + + # Args: + # with_div: True if the divergence should be treated numerically. + # If False, the divergence is ignored, results are less accurate + # but the calculation is faster. + + # .. seealso:: + # """ + # from scipy.integrate import cumtrapz, quad + # from scipy.interpolate import UnivariateSpline + # wmesh = self.mesh + # num = np.array(self.values.real, dtype=np.double) + + # if with_div: + # spline = UnivariateSpline(self.mesh, num, s=0) + + # kk_values = np.empty(len(self)) + # for i, w in enumerate(wmesh): + # den = wmesh**2 - w**2 + # # Singularity is treated below. + # den[i] = 1 + # f = num / den + # f[i] = 0 + # integ = cumtrapz(f, x=wmesh) + # kk_values[i] = integ[-1] + + # if with_div: + # func = lambda x: spline(x) / (x**2 - w**2) + # w0 = w - self.h + # w1 = w + self.h + # y, abserr = quad(func, w0, w1, points=[w]) + # kk_values[i] += y + + # return self.__class__(self.mesh, -(2 / np.pi) * wmesh * kk_values) + + def plot_ax(self, ax, exchange_xy=False, normalize=False, xfactor=1, yfactor=1, *args, **kwargs) -> list: """ Helper function to plot self on axis ax. @@ -466,6 +478,7 @@ def plot_ax(self, ax, exchange_xy=False, xfactor=1, yfactor=1, *args, **kwargs): ax: |matplotlib-Axes|. exchange_xy: True to exchange the axis in the plot. args: Positional arguments passed to ax.plot + normalize: Normalize the ydata to 1. xfactor, yfactor: xvalues and yvalues are multiplied by this factor before plotting. kwargs: Keyword arguments passed to ``matplotlib``. Accepts @@ -492,6 +505,7 @@ def plot_ax(self, ax, exchange_xy=False, xfactor=1, yfactor=1, *args, **kwargs): xx, yy = self.mesh, data_from_cplx_mode(c, self.values) if xfactor != 1: xx = xx * xfactor if yfactor != 1: yy = yy * yfactor + if normalize: yy = yy / np.max(yy) if exchange_xy: xx, yy = yy, xx @@ -501,9 +515,9 @@ def plot_ax(self, ax, exchange_xy=False, xfactor=1, yfactor=1, *args, **kwargs): return lines @add_fig_kwargs - def plot(self, ax=None, **kwargs): + def plot(self, ax=None, **kwargs) -> Figure: """ - Plot the function. + Plot the function with matplotlib. Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -522,3 +536,70 @@ def plot(self, ax=None, **kwargs): self.plot_ax(ax, exchange_xy=exchange_xy, **kwargs) return fig + + def plotly_traces(self, fig, rcd=None, exchange_xy=False, xfactor=1, yfactor=1, *args, **kwargs): + """ + Helper function to plot the function with plotly. + + Args: + fig: plotly.graph_objects.Figure. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. + exchange_xy: True to exchange the x and y in the plot. + xfactor, yfactor: xvalues and yvalues are multiplied by this factor before plotting. + args: Positional arguments passed to 'plotly.graph_objects.Scatter' + kwargs: Keyword arguments passed to 'plotly.graph_objects.Scatter'. + Accepts also AbiPy specific kwargs: + + ============== =============================================================== + kwargs Meaning + ============== =============================================================== + cplx_mode string defining the data to print. + Possible choices are (case-insensitive): `re` for the real part + "im" for the imaginary part, "abs" for the absolute value. + "angle" to display the phase of the complex number in radians. + Options can be concatenated with "-" + ============== =============================================================== + """ + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col = rcd.ply_row, rcd.ply_col + + import plotly.graph_objects as go + + if self.iscomplexobj: + cplx_mode = kwargs.pop("cplx_mode", "re-im") + else: + cplx_mode = kwargs.pop("cplx_mode", "re") + + showlegend = False + if "name" in kwargs: showlegend = True + showlegend = kwargs.pop("showlegend", showlegend) + + for c in cplx_mode.lower().split("-"): + xx, yy = self.mesh, data_from_cplx_mode(c, self.values) + if xfactor != 1: xx = xx * xfactor + if yfactor != 1: yy = yy * yfactor + + if exchange_xy: + xx, yy = yy, xx + + fig.add_trace(go.Scatter(x=xx, y=yy, mode="lines", showlegend=showlegend, *args, **kwargs), + row=ply_row, col=ply_col) + + @add_plotly_fig_kwargs + def plotly(self, exchange_xy=False, fig=None, rcd=None, **kwargs): + """ + Plot the function with plotly. + + Args: + exchange_xy: True to exchange x- and y-axis (default: False) + fig: plotly figure or None if a new figure should be created. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) + of the subplot in the grid. + + Returns: plotly-Figure + """ + fig, _ = get_fig_plotly(fig=fig) + rcd = PlotlyRowColDesc.from_object(rcd) + self.plotly_traces(fig, rcd=rcd, exchange_xy=exchange_xy, **kwargs) + + return fig diff --git a/abipy/core/globals.py b/abipy/core/globals.py index 5eb312153..b03b4ac78 100644 --- a/abipy/core/globals.py +++ b/abipy/core/globals.py @@ -1,6 +1,8 @@ """ Global variables used to initialize AbiPy environment in notebooks. """ +from __future__ import annotations + from monty.termcolor import cprint import os @@ -10,18 +12,18 @@ __IN_NOTEBOOK = False -def in_notebook(): +def in_notebook() -> bool: """True if we are running inside a jupyter notebook (and enable_notebook has been called).""" return __IN_NOTEBOOK -def disable_notebook(): +def disable_notebook() -> None: """Set ``in_notebook`` flag to False.""" global __IN_NOTEBOOK __IN_NOTEBOOK = False -def enable_notebook(with_seaborn=True): +def enable_notebook(with_seaborn=True) -> None: """ Set ``in_notebook`` flag to True and activate seaborn settings for notebooks if ``with_seaborn``. """ @@ -35,7 +37,7 @@ def enable_notebook(with_seaborn=True): font='sans-serif', font_scale=1, color_codes=False, rc=None) -def get_abinb_workdir(): +def get_abinb_workdir() -> str: """ Return the absolute path of the scratch directory used to produce and save temporary files when we are runnning inside a jupyter_ notebook. @@ -49,7 +51,7 @@ def get_abinb_workdir(): return wdir -def abinb_mkstemp(force_abinb_workdir=False, use_relpath=False, **kwargs): +def abinb_mkstemp(force_abinb_workdir=False, use_relpath=False, **kwargs) -> tuple: """ Invoke mkstep with kwargs, return the (fd, name) of the temporary file. kwargs are passed to ``mkstemp`` except for ``dir`` if we are inside a jupyter notebook. @@ -78,3 +80,16 @@ def abinb_mkstemp(force_abinb_workdir=False, use_relpath=False, **kwargs): path = os.path.relpath(path) return fd, path + + +def get_workdir(workdir: str) -> str: + """ + Return temporary directory if workdir is None else workdir. + Allow users to specify the temporary directory via ABIPY_TMPDIR env variable. + """ + if workdir is None: + dir = os.getenv("ABIPY_TMPDIR", default=None) + import tempfile + workdir = tempfile.mkdtemp(dir=dir) + + return workdir diff --git a/abipy/core/gsphere.py b/abipy/core/gsphere.py index a971213a5..8afca5191 100644 --- a/abipy/core/gsphere.py +++ b/abipy/core/gsphere.py @@ -1,5 +1,9 @@ # coding: utf-8 -"""This module contains the class defining the G-sphere for wavefunctions, densities and potentials""" +""" +This module contains the class defining the G-sphere for wavefunctions, densities and potentials +""" +from __future__ import annotations + import collections import numpy as np @@ -36,7 +40,7 @@ def __init__(self, ecut, lattice, kpoint, gvecs, istwfk=1): raise NotImplementedError("istwfk %d is not implemented" % self.istwfk) @property - def gvecs(self): + def gvecs(self) -> np.ndarray: """|numpy-array| with the G-vectors in reduced coordinates.""" return self._gvecs @@ -48,7 +52,7 @@ def gvecs(self): # return self._kpg2 # Sequence protocol - def __len__(self): + def __len__(self) -> int: return self.gvecs.shape[0] def __getitem__(self, slice): @@ -60,7 +64,7 @@ def __iter__(self): def __contains__(self, gvec): return np.asarray(gvec) in self.gvecs - def index(self, gvec): + def index(self, gvec) -> int: """ return the index of the G-vector ``gvec`` in self. Raises: `ValueError` if the value is not present. @@ -72,7 +76,7 @@ def index(self, gvec): else: raise ValueError("Cannot find %s in Gsphere" % str(gvec)) - def count(self, gvec): + def count(self, gvec) -> int: """Return number of occurrences of gvec.""" return np.count_nonzero(np.all(g == gvec) for g in self) @@ -90,17 +94,17 @@ def __eq__(self, other): def __ne__(self, other): return not (self == other) - def copy(self): + def copy(self) -> GSphere: """shallow copy.""" return self.__class__(self.ecut, self.lattice.copy(), self.kpoint.copy(), self.gvecs.copy(), istwfk=self.istwfk) - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" name = str(self.__class__) s = name + ": kpoint: %(kpoint)s, ecut: %(ecut)f, npw: %(npw)d, istwfk: %(istwfk)d" % self.__dict__ return s - def _new_array(self, dtype=np.float, zero=True, extra_dims=()): + def _new_array(self, dtype=float, zero=True, extra_dims=()): """Returns a numpy array defined on the sphere.""" shape = (self.npw,) @@ -114,7 +118,7 @@ def _new_array(self, dtype=np.float, zero=True, extra_dims=()): else: return np.empty(shape, dtype) - def zeros(self, dtype=np.float, extra_dims=()): + def zeros(self, dtype=float, extra_dims=()) -> np.ndarray: """ Returns new zeroed 1D |numpy-array|. @@ -123,11 +127,11 @@ def zeros(self, dtype=np.float, extra_dims=()): """ return self._new_array(dtype=dtype, zero=True, extra_dims=extra_dims) - def czeros(self, extra_dims=()): + def czeros(self, extra_dims=()) -> np.ndarray: """New zeroed 1D complex |numpy-array|.""" - return self._new_array(dtype=np.complex, zero=True, extra_dims=extra_dims) + return self._new_array(dtype=complex, zero=True, extra_dims=extra_dims) - def empty(self, dtype=np.float, extra_dims=()): + def empty(self, dtype=float, extra_dims=()) -> np.ndarray: """ Returns new uninitialized 1D |numpy-array|. @@ -136,15 +140,15 @@ def empty(self, dtype=np.float, extra_dims=()): """ return self._new_array(dtype=dtype, zero=False, extra_dims=extra_dims) - def cempty(self, extra_dims=()): + def cempty(self, extra_dims=()) -> np.ndarray: """Returns new uninitialized 1D complex |numpy-array|.""" - return self._new_array(dtype=np.complex, zero=False, extra_dims=extra_dims) + return self._new_array(dtype=complex, zero=False, extra_dims=extra_dims) #def build_fftbox(self, boxsph_ratio=1.05): # """Returns the number of divisions of the FFT box enclosing the sphere.""" # #return ndivs - def tofftmesh(self, mesh, arr_on_sphere): + def tofftmesh(self, mesh, arr_on_sphere) -> np.ndarray: """ Insert the array ``arr_on_sphere`` given on the sphere inside the FFT mesh. @@ -185,7 +189,7 @@ def tofftmesh(self, mesh, arr_on_sphere): return arr_on_mesh - def fromfftmesh(self, mesh, arr_on_mesh): + def fromfftmesh(self, mesh, arr_on_mesh) -> np.ndarray: """ Transfer ``arr_on_mesh`` given on the FFT mesh to the G-sphere. """ diff --git a/abipy/core/kpoints.py b/abipy/core/kpoints.py index 08c338c59..48c2db25c 100644 --- a/abipy/core/kpoints.py +++ b/abipy/core/kpoints.py @@ -1,5 +1,7 @@ # coding: utf-8 """This module defines objects describing the sampling of the Brillouin Zone.""" +from __future__ import annotations + import collections import json import sys @@ -8,16 +10,14 @@ from itertools import product from tabulate import tabulate -from monty.json import MontyEncoder from monty.collections import AttrDict, dict2namedtuple from monty.functools import lazy_property from monty.string import marquee -from pymatgen.core.lattice import Lattice -from pymatgen.util.serialization import pmg_serialize -from pymatgen.util.serialization import SlotPickleMixin +from abipy.tools.serialization import pmg_serialize from abipy.iotools import ETSF_Reader from abipy.tools.derivatives import finite_diff from abipy.tools.numtools import add_periodic_replicas, is_diagonal +from abipy.core.mixins import SlotPickleMixin import logging logger = logging.getLogger(__name__) @@ -101,7 +101,6 @@ def issamek(k1, k2, atol=None): """ k1 = np.asarray(k1) k2 = np.asarray(k2) - #if k1.shape != k2.shape: return is_integer(k1 - k2, atol=atol) @@ -155,7 +154,7 @@ def rc_list(mp, sh, pbc=False, order="bz"): if c > xm1: break else: - raise ValueError() + raise ValueError("Error while inserting xm1") rc.insert(i, xm1) @@ -163,7 +162,7 @@ def rc_list(mp, sh, pbc=False, order="bz"): rc.append(rc[0] + 1.0) else: - raise ValueError("Wrong order %s" % order) + raise ValueError(f"Wrong {order=}") return np.array(rc) @@ -177,7 +176,7 @@ def kmesh_from_mpdivs(mpdivs, shifts, pbc=False, order="bz"): mpdivs: The three MP divisions. shifts: Array-like object with the MP shift. pbc: If True, periodic images of the k-points will be included i.e. closed mesh. - order: "unit_cell" if the kpoint coordinates must be in [0,1) + order: "unit_cell" if the kpoint coordinates must be in [0, 1) "bz" if the kpoint coordinates must be in [-1/2, +1/2) """ shifts = np.reshape(shifts, (-1, 3)) @@ -214,21 +213,22 @@ def map_grid2ibz(structure, ibz, ngkpt, has_timrev, pbc=False): Returns: bz2ibz: 1d array with BZ --> IBZ mapping """ - ngkpt = np.asarray(ngkpt, dtype=np.int) + ngkpt = np.asarray(ngkpt, dtype=int) # Extract (FM) symmetry operations in reciprocal space. abispg = structure.abi_spacegroup if abispg is None: raise ValueError("Structure does not contain Abinit spacegroup info!") + # Extract rotations in reciprocal space (FM part). symrec_fm = [o.rot_g for o in abispg.fm_symmops] # Compute TS k_ibz. - bzgrid2ibz = -np.ones(ngkpt, dtype=np.int) + bzgrid2ibz = -np.ones(ngkpt, dtype=int) for ik_ibz, kibz in enumerate(ibz): - gp_ibz = np.array(np.rint(kibz * ngkpt), dtype=np.int) + gp_ibz = np.array(np.rint(kibz * ngkpt), dtype=int) for rot in symrec_fm: rot_gp = np.matmul(rot, gp_ibz) gp_bz = rot_gp % ngkpt @@ -243,27 +243,15 @@ def map_grid2ibz(structure, ibz, ngkpt, has_timrev, pbc=False): if np.any(bzgrid2ibz == -1): #for ik_bz, ik_ibz in enumerate(self.bzgrid2ibz): print(ik_bz, ">>>", ik_ibz) - msg = "Found %s/%s invalid entries in bzgrid2ibz array" % ((bzgrid2ibz == -1).sum(), bzgrid2ibz.size) - msg += "This can happen if there an inconsistency between the input IBZ and ngkpt" - msg += "ngkpt: %s, has_timrev: %s" % (str(ngkpt), has_timrev) + msg = " Found %s/%s invalid entries in bzgrid2ibz array\n" % ((bzgrid2ibz == -1).sum(), bzgrid2ibz.size) + msg += " This can happen if there is an inconsistency between the input IBZ and ngkpt\n" + msg += " ngkpt: %s, has_timrev: %s\n" % (str(ngkpt), has_timrev) + msg += f" {abispg=}\n" raise ValueError(msg) bz2ibz = bzgrid2ibz.flatten() return bz2ibz - """ - for ik_bz, kbz in enumerate(bz): - found = False - for ik_ibz, kibz in enumerate(ibz): - if found: break - for symmop in structure.spacegroup: - krot = symmop.rotate_k(kibz) - if issamek(krot, kbz): - bz2ibz[ik_bz] = ik_ibz - found = True - break - """ - def has_timrev_from_kptopt(kptopt): """ @@ -340,7 +328,7 @@ def map_kpoints(other_kpoints, other_lattice, ref_lattice, ref_kpoints, ref_symr kmap = collections.namedtuple("kmap", "ik_ref, tsign, isym, g0") for ik_oth, okpt in enumerate(other_kpoints): - # Get other k-point in reduced coordinates in the referece lattice. + # Get other k-point in reduced coordinates in the reference lattice. okpt_red = np.matmul(ref_gprimd_inv, np.matmul(other_gprimd, okpt)) # k_other = TS k_ref + G0 @@ -406,6 +394,42 @@ def map_kpoints(other_kpoints, other_lattice, ref_lattice, ref_kpoints, ref_symr # #return irred_map +def kpoints_indices(frac_coords, ngkpt, check_mesh=0) -> np.ndarray: + """ + This function is used when we need to insert k-dependent quantities in a (nx, ny, nz) array. + It computes the indices of the k-points assuming these points belong to a mesh with ngkpt divisions. + + Args: + frac_coords + ngkpt: + check_mesh: + """ + + # Transforms kpt in its corresponding reduced number in the interval [0,1[ + k_indices = [np.round((kpt % 1) * ngkpt) for kpt in frac_coords] + k_indices = np.array(k_indices, dtype=int) + + # Debug secction. + if check_mesh: + print(f"kpoints_indices: Testing whether k-points belong to the {ngkpt =} mesh") + ierr = 0 + for kpt, inds in zip(frac_coords, k_indices): + if check_mesh > 1: print("kpt:", kpt, "inds:", inds) + same_k = np.array((inds[0]/ngkpt[0], inds[1]/ngkpt[1], inds[2]/ngkpt[2])) + if not issamek(kpt, same_k): + ierr += 1; print(kpt, "-->", same_k) + if ierr: + raise ValueError("Wrong mapping") + + #for kpt, inds in zip(frac_coords, k_indices): + # if np.any(inds >= ngkpt): + # raise ValueError(f"inds >= nkgpt for {kpt=}, {np.round(kpt % 1)=} {inds=})") + + print("Check succesfull!") + + return k_indices + + def find_irred_kpoints_generic(structure, kfrac_coords, verbose=1): """ Remove the k-points that are connected to each other by one of the @@ -457,7 +481,7 @@ def find_irred_kpoints_generic(structure, kfrac_coords, verbose=1): print("Entered with ", len(uc_kcoords), "k-points") print("Found ", len(irred_map), "irred k-points") - return dict2namedtuple(irred_map=np.array(irred_map, dtype=np.int)) + return dict2namedtuple(irred_map=np.array(irred_map, dtype=int)) def kpath_from_bounds_and_ndivsm(bounds, ndivsm, structure): @@ -474,7 +498,7 @@ def kpath_from_bounds_and_ndivsm(bounds, ndivsm, structure): bounds = np.reshape(bounds, (-1, 3)) nbounds = len(bounds) if nbounds == 1: - raise ValueError("Need at least two points to define the k-path!") + raise ValueError("Need at least two points to define a k-path!") lens = [] for i in range(nbounds - 1): @@ -487,12 +511,13 @@ def kpath_from_bounds_and_ndivsm(bounds, ndivsm, structure): raise ValueError("Found two equivalent consecutive points in bounds!") minlen = minlen / ndivsm - ndivs = np.rint(lens / minlen).astype(np.int) + ndivs = np.rint(lens / minlen).astype(int) path = [] for i in range(nbounds - 1): for j in range(ndivs[i]): p = bounds[i] + j * (bounds[i + 1] - bounds[i]) / ndivs[i] path.append(p) + path.append(bounds[-1]) return np.array(path) @@ -536,8 +561,8 @@ def as_kpoints(obj, lattice, weights=None, names=None): if names is None: names = nk * [None] return [Kpoint(rc, lattice, weight=w, name=l) for (rc, w, l) in zip(obj, weights, names)] - else: - raise ValueError("ndim > 2 is not supported") + + raise ValueError(f"{ndim=} > 2 is not supported!") class Kpoint(SlotPickleMixin): @@ -559,30 +584,31 @@ class Kpoint(SlotPickleMixin): "_hash", ] + @classmethod + def from_name_and_structure(cls, name, structure): + """ + Build Kpoint object from string with name and structure. + """ + frac_coords = structure.get_kcoords_from_names(name) + frac_coords = np.reshape(frac_coords, (3,)) + return cls(frac_coords, structure.reciprocal_lattice, weight=None, name=name) + def __init__(self, frac_coords, lattice, weight=None, name=None): """ Args: - frac_coords: Reduced coordinates. + frac_coords: Reduced coordinates of the k-point. lattice: |Lattice| object describing the reciprocal lattice. weights: k-point weight (optional, set to zero if not given). name: string with the name of the k-point (optional) """ self._frac_coords = np.asarray(frac_coords) - assert len(self.frac_coords) == 3 + if len(self.frac_coords) != 3: + raise TypeError("Expecting vector with 3 items, got `%s`" % str(self.frac_coords)) self._lattice = lattice self.set_weight(weight) self.set_name(name) - #def __array__(self, **kwargs): - # """np.array(self)""" - # print(kwargs) - # dtype = kwargs.pop("dtype", None) - # if dtype is None: - # return self._frac_coords - # else: - # return np.array(self._frac_coords, dtype=dtype) - def __hash__(self): """ Kpoint objects can be used as keys in dictionaries. @@ -652,32 +678,51 @@ def on_border(self): def __repr__(self): s = "[%+.3f, %+.3f, %+.3f]" % tuple(self.frac_coords) if self.name is not None: - s += " %s" % self.name + s = "%s %s" % (self.name, s) return s - def tos(self, m="fract"): + def tos(self, m="fract", scale=False): """ Return string with fractional or cartesian coords depending on mode `m` in ("fract", "cart", "fracart") """ + def rescale(vec): + #return vec + if not scale: return vec + vec = np.array(vec) + abs_dens = np.abs(np.array([v for v in vec if v != 0.0])) + if len(abs_dens) == 0: return vec + d = min(v for v in abs_dens if v != 0) + outs = vec / d + #print("outs", outs, np.all(np.mod(outs, 1) == 0)) + if np.all(np.mod(outs, 1) == 0): return outs + return vec + if m == "fract": - return "[%+.3f, %+.3f, %+.3f]" % tuple(self.frac_coords) + return "[%.3f, %.3f, %.3f]" % tuple(rescale(self.frac_coords)) elif m == "cart": - return "(%+.3f, %+.3f, %+.3f)" % tuple(self.cart_coords) + return "(%.3f, %.3f, %.3f)" % tuple(rescale(self.cart_coords)) elif m == "fracart": - return "%s, %s" % (self.tos(m="fract"), self.tos(m="cart")) + return "%s, %s" % (self.tos(m="fract", scale=scale), self.tos(m="cart", scale=scale)) else: - raise ValueError("Invalid mode: `%s`" % str(m)) + raise ValueError(f"Invalid mode: {m}") - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" - s = "[%+.3f, %+.3f, %+.3f]" % tuple(self.frac_coords) + if verbose == 0 : + s = "[%+.3f, %+.3f, %+.3f]" % tuple(self.frac_coords) + elif verbose == 1: + s = "[%+.6f, %+.6f, %+.6f]" % tuple(self.frac_coords) + else: + s = "[%+.9f, %+.9f, %+.9f]" % tuple(self.frac_coords) + if self.name is not None: - s += ", name: %s" % self.name - if self._weight is not None: s += ", weight: %.3f" % self.weight + s = "%s %s" % (self.name, s) + if self._weight is not None and float(self._weight) > 0.0: s += ", weight: %.3f" % self.weight + return s # Kpoint algebra. @@ -803,19 +848,20 @@ class KpointList(collections.abc.Sequence): Error = KpointsError @classmethod - def subclass_from_name(cls, name): + def subclass_from_name(cls, name: str): """Return the class with the given name.""" if cls.__name__ == name: return cls for c in cls.__subclasses__(): if c.__name__ == name: return c - raise ValueError("Cannot find subclass associated to name: %s" % name) + raise ValueError(f"Cannot find subclass associated to {name=}") @classmethod def from_dict(cls, d): """ Makes Kpoints obey the general json interface used in pymatgen for easier serialization. """ + from pymatgen.core.lattice import Lattice reciprocal_lattice = Lattice.from_dict(d["reciprocal_lattice"]) return cls(reciprocal_lattice, d["frac_coords"], weights=d["weights"], names=d["names"], ksampling=d["ksampling"]) @@ -869,17 +915,15 @@ def reciprocal_lattice(self): """|Lattice| object defining the reciprocal lattice.""" return self._reciprocal_lattice - def __repr__(self): - return self.to_string(func=repr) - - def __str__(self): - return self.to_string(func=str) + def __str__(self) -> str: + return self.to_string() - def to_string(self, func=str, title=None, verbose=0): + def to_string(self, title=None, verbose=0, pre_string="") -> str: """String representation.""" lines = []; app = lines.append if title is not None: app(marquee(title, mark="=")) - lines.extend(["%d) %s" % (i, func(kpoint)) for i, kpoint in enumerate(self)]) + func = str + lines.extend(["%s%d) %s" % (pre_string, i, func(kpoint)) for i, kpoint in enumerate(self)]) return "\n".join(lines) @@ -901,7 +945,7 @@ def __reversed__(self): def __add__(self, other): if self.reciprocal_lattice != other.reciprocal_lattice: - raise ValueError("Cannot merge k-points with different reciprocal lattice.") + raise ValueError("Cannot merge k-points with different reciprocal lattices.") return KpointList(self.reciprocal_lattice, frac_coords=[k.frac_coords for k in self] + [k.frac_coords for k in other], @@ -918,7 +962,7 @@ def __eq__(self, other): def __ne__(self, other): return not (self == other) - def index(self, kpoint): + def index(self, kpoint) -> int: """ Returns: the first index of kpoint in self. @@ -941,7 +985,7 @@ def get_all_kindices(self, kpoint): if k == k0: kinds.append(ik) return np.array(kinds) - def find(self, kpoint): + def find(self, kpoint) -> int: """ Returns: first index of kpoint. -1 if not found """ @@ -977,7 +1021,7 @@ def find_closest(self, obj): dist = np.empty(len(self)) for i, kpt in enumerate(self): - dist[i] = kpt.lattice.norm(kpt.frac_coords - frac_coords) + dist[i] = float(kpt.lattice.norm(kpt.frac_coords - frac_coords)) ind = dist.argmin() return ind, self[ind], np.copy(dist[ind]) @@ -1049,6 +1093,34 @@ def check_weights(self): err_msg += "%s\n%s" % (self.__class__, self.to_string(verbose=0)) raise ValueError(err_msg) + def get_highsym_datataframe(self, with_cart_coords=False): + """ + Return pandas Dataframe with the names of the high-symmetry k-points + and the reduced coordinates. + + Args: + with_cart_coords: True to add extra column with the Cartesian coordinates. + + Return: |pandas-DataFrame| + """ + replace = { + r"$\Gamma$": "Γ", + } + + import pandas as pd + rows, index = [], [] + for ik, kpt in enumerate(self): + if kpt.name is None: continue + d = dict(name=replace.get(kpt.name, kpt.name), frac_coords=kpt.frac_coords) + if with_cart_coords: d["cart_coords"] = kpt.cart_coords + rows.append(d) + index.append(ik) + + df = pd.DataFrame(rows, index=index) + df.index.name = "Idx" + + return df + def remove_duplicated(self): """ Remove duplicated k-points from self. Returns new :class:`KpointList` instance. @@ -1081,6 +1153,7 @@ def to_json(self): """ Returns a JSON_ string representation of the MSONable object. """ + from monty.json import MontyEncoder return json.dumps(self.as_dict(), cls=MontyEncoder) def plot(self, ax=None, **kwargs): @@ -1099,6 +1172,19 @@ def plot(self, ax=None, **kwargs): return plot_brillouin_zone(self.reciprocal_lattice, kpoints=self.frac_coords, ax=ax, fold=fold, **kwargs) + def plotly(self, fig=None, **kwargs): + """Plot k-points with plotly.""" + from abipy.tools.plotting import plotly_brillouin_zone + fold = False + if self.is_path: + labels = {k.name: k.frac_coords for k in self if k.name} + frac_coords_lines = [self.frac_coords[line] for line in self.lines] + return plotly_brillouin_zone(self.reciprocal_lattice, lines=frac_coords_lines, labels=labels, + fig=fig, fold=fold, **kwargs) + else: + return plotly_brillouin_zone(self.reciprocal_lattice, kpoints=self.frac_coords, + fig=fig, fold=fold, **kwargs) + def get_k2kqg_map(self, qpt, atol_kdiff=None): """ Compute mapping k_index --> (k + q)_index, g0 @@ -1117,7 +1203,7 @@ def get_k2kqg_map(self, qpt, atol_kdiff=None): k2kqg = collections.OrderedDict() if np.all(np.abs(qfrac_coords) <= 1e-6): # Gamma point, DOH! - g0 = np.zeros(3, dtype=np.int) + g0 = np.zeros(3, dtype=int) for ik, _ in enumerate(self): k2kqg[ik] = (ik, g0) else: @@ -1180,18 +1266,24 @@ def from_names(cls, structure, knames, line_density=20): @classmethod def from_vertices_and_names(cls, structure, vertices_names, line_density=20): """ - Generate normalized K-path from a list of vertices and the corresponding labels. + Generate normalized k-path from a list of vertices and the corresponding labels. Args: structure: |Structure| object. vertices_names: List of tuple, each tuple is of the form (kfrac_coords, kname) where kfrac_coords are the reduced coordinates of the k-point and kname is a string with the name of the k-point. Each point represents a vertex of the k-path. - line_density: Number of points used to sample the smallest segment of the path + line_density: Number of points used to sample the smallest segment of the path. + If 0, use list of k-points given in vertices_names """ + if line_density == 0: + frac_coords = [vn[0] for vn in vertices_names] + knames = [vn[1] for vn in vertices_names] + return cls(structure.lattice.reciprocal_lattice, frac_coords=frac_coords, weights=None, names=knames) + gmet = structure.lattice.reciprocal_lattice.metric_tensor vnames = [str(vn[1]) for vn in vertices_names] - vertices = np.array([vn[0] for vn in vertices_names], dtype=np.float) + vertices = np.array([vn[0] for vn in vertices_names], dtype=float) vertices.shape = (-1, 3) dl_vals = [] @@ -1220,13 +1312,12 @@ def from_vertices_and_names(cls, structure, vertices_names, line_density=20): knames.append(vnames[-1]) frac_coords.append(vertices[-1]) - return cls(structure.lattice.reciprocal_lattice, frac_coords=frac_coords, - weights=None, names=knames) + return cls(structure.lattice.reciprocal_lattice, frac_coords=frac_coords, weights=None, names=knames) def __str__(self): return self.to_string() - def to_string(self, verbose=0, title=None, **kwargs): + def to_string(self, verbose=0, title=None, **kwargs) -> str: """ String representation. @@ -1290,6 +1381,8 @@ def lines(self): for line in self.lines: vals_on_line = eigens[spin, line, band] """ + if len(self) < 2: + return tuple() prev = self.versors[0] lines = [[0]] @@ -1356,13 +1449,15 @@ def finite_diff(self, values, order=1, acc=4): der = finite_diff(vals_on_line, h, order=order, acc=acc) ders_on_lines.append(der) - return np.array(ders_on_lines) + return np.array(ders_on_lines, dtype=object) + #return np.array(ders_on_lines) class IrredZone(KpointList): """ - An :class:`IrredZone` is a (immutable) sequence of points in the irreducible wedge of the BZ. - Each point has a weight whose sum must equal 1 so that we can integrate quantities in the full Brillouin zone. + Immutable sequence of points in the irreducible wedge of the BZ. + Each point has a weight whose sum must equal 1 so that we can integrate + quantities in the full Brillouin zone. .. note:: @@ -1386,34 +1481,24 @@ class IrredZone(KpointList): .. inheritance-diagram:: IrredZone """ - #@classmethod - #def from_ngkpt_or_kppa(cls, structure, ngkpt, shiftk, kptopt=1, verbose=0): - # from abipy.tools import duck - # if duck.is_listlike(ngkpt): - # return cls.from_ngkpt(structure, ngkpt, shiftk, kptopt=kptopt, verbose=verbose) - # else: - # return cls.from_kppa(structure, kppa, shiftk, kptopt=kptopt, verbose=verbose) @classmethod - def from_ngkpt(cls, structure, ngkpt, shiftk, kptopt=1, verbose=0): + def from_ngkpt(cls, structure, ngkpt, shiftk, kptopt=1, spin_mode="unpolarized", verbose=0) -> IrredZone: """ - Build an IrredZone object from (ngkpt, shift) by calling Abinit - to get the list of irreducible k-points. + Build an IrredZone instance from (ngkpt, shift) by calling Abinit to get the list of IBZ k-points. """ from abipy.abio.factories import gs_input from abipy.data.hgh_pseudos import HGH_TABLE - gsinp = gs_input(structure, HGH_TABLE, spin_mode="unpolarized") + gsinp = gs_input(structure, HGH_TABLE, spin_mode=spin_mode) ibz = gsinp.abiget_ibz(ngkpt=ngkpt, shiftk=shiftk, kptopt=kptopt, verbose=verbose) ksampling = KSamplingInfo.from_mpdivs(ngkpt, shiftk, kptopt) - return cls(structure.reciprocal_lattice, ibz.points, weights=ibz.weights, - names=None, ksampling=ksampling) + return cls(structure.reciprocal_lattice, ibz.points, weights=ibz.weights, names=None, ksampling=ksampling) @classmethod - def from_kppa(cls, structure, kppa, shiftk, kptopt=1, verbose=0): + def from_kppa(cls, structure, kppa, shiftk, kptopt=1, verbose=0) -> IrredZone: """ - Build an IrredZone object from (kppa, shift) by calling Abinit - to get the list of irreducible k-points. + Build an IrredZone instance from (kppa, shift) by calling Abinit to get the list of IBZ k-points. """ from abipy.abio.factories import gs_input from abipy.data.hgh_pseudos import HGH_TABLE @@ -1421,8 +1506,7 @@ def from_kppa(cls, structure, kppa, shiftk, kptopt=1, verbose=0): ibz = gsinp.abiget_ibz(ngkpt=None, shiftk=shiftk, kptopt=kptopt, verbose=verbose) ksampling = KSamplingInfo.from_mpdivs(gsinp["ngkpt"], shiftk, kptopt) - return cls(structure.reciprocal_lattice, ibz.points, weights=ibz.weights, - names=None, ksampling=ksampling) + return cls(structure.reciprocal_lattice, ibz.points, weights=ibz.weights, names=None, ksampling=ksampling) def __init__(self, reciprocal_lattice, frac_coords, weights=None, names=None, ksampling=None): """ @@ -1433,8 +1517,7 @@ def __init__(self, reciprocal_lattice, frac_coords, weights=None, names=None, ks names: List with the name of the k-points. ksampling: Info on the k-point sampling """ - super().__init__(reciprocal_lattice, frac_coords, - weights=weights, names=names, ksampling=ksampling) + super().__init__(reciprocal_lattice, frac_coords, weights=weights, names=names, ksampling=ksampling) # Weights must be normalized to one. wsum = self.sum_weights() @@ -1444,10 +1527,10 @@ def __init__(self, reciprocal_lattice, frac_coords, weights=None, names=None, ks print(err_msg) #raise ValueError(err_msg) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, func=str, verbose=0, title=None): + def to_string(self, verbose: int=0, title=None) -> str: """String representation.""" lines = []; app = lines.append if title is not None: app(marquee(title, mark="=")) @@ -1471,44 +1554,6 @@ def to_string(self, func=str, verbose=0, title=None): return "\n".join(lines) - #@property - #def len_bz(self): - # """Number of points in the full BZ.""" - # return self.mpdivs.prod() * self.num_shifts - - #def iter_bz_coords(self): - # """ - # Generates the fractional coordinates of the points in the BZ. - # .. note: - # points are ordered in blocks, one block for each shift. - # Inside the block, points are ordered following the C convention. - # """ - # for shift in self.shifts: - # for i in range(mpdivs[0]): - # x = (i + shift[0]) / mpdivs[0] - # for j in range(mpdivs[1]): - # y = (j + shift[1]) / mpdivs[1] - # for k in range(mpdivs[2]): - # z = (k + shift[2]) / mpdivs[2] - # yield np.array((x, y, z)) - - #def plane_cut(self, values_ibz): - # """ - # Symmetrize values in the IBZ to have them on the full BZ, then - # select a slice along the specified plane E.g. plane = (1,1,0). - # """ - # assert len(values_ibz) == len(self) - # #indices = - # z0 = 0 - # plane = np.empty((self.nx, self.ny)) - # kx, ky = range(self.nx), range(self.ny) - # for x in kx: - # for y in ky: - # ibz_idx = self.map_xyz2ibz[x, y, z0] - # plane[x, y] = values_ibz[ibz_idx] - # kx, ky = np.meshgrid(kx, ky) - # return kx, ky, plane - class KSamplingInfo(AttrDict): """ @@ -1526,7 +1571,7 @@ class KSamplingInfo(AttrDict): ]) @classmethod - def as_ksampling(cls, obj): + def as_ksampling(cls, obj) -> KSamplingInfo: """" Convert obj into a :class:`KSamplingInfo` instance. Accepts: :class:`KSamplingInfo` instance, None (if info are not available) or dict-like object. @@ -1548,7 +1593,7 @@ def as_ksampling(cls, obj): raise TypeError("Don't know how to convert `%s` into KSamplingInfo object:\n%s" % (type(obj), str(exc))) @classmethod - def from_mpdivs(cls, mpdivs, shifts, kptopt): + def from_mpdivs(cls, mpdivs, shifts, kptopt) -> KSamplingInfo: """ Homogeneous sampling specified in terms of ``mpdivs`` (ngkpt in abinit), the set of ``shifts`` and the value of ``kptopt``. @@ -1560,7 +1605,7 @@ def from_mpdivs(cls, mpdivs, shifts, kptopt): kptrlatt=kptrlatt, kptrlatt_orig=kptrlatt_orig, kptopt=kptopt) @classmethod - def from_kptrlatt(cls, kptrlatt, shifts, kptopt): + def from_kptrlatt(cls, kptrlatt, shifts, kptopt) -> KSamplingInfo: """ Homogeneous sampling specified in terms of ``kptrlatt`` the set of ``shifts`` and the value of ``kptopt``. @@ -1574,7 +1619,7 @@ def from_kptrlatt(cls, kptrlatt, shifts, kptopt): kptrlatt=kptrlatt, kptrlatt_orig=kptrlatt_orig, kptopt=kptopt) @classmethod - def from_kbounds(cls, kbounds): + def from_kbounds(cls, kbounds) -> KSamplingInfo: """ Metadata associated to a k-path specified in terms of boundaries. """ @@ -1586,9 +1631,9 @@ def from_kbounds(cls, kbounds): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - for k in self: - if k not in self.KNOWN_KEYS: - raise ValueError("Unknow key %s" % k) + for key in self: + if key not in self.KNOWN_KEYS: + raise ValueError(f"Unknown {key=}") # FIXME: monkhorst_pack_folding is not written in e.g. DEN.nc files # so we get crazy results because of netCDF4._default_fillvals @@ -1610,7 +1655,7 @@ def __init__(self, *args, **kwargs): def __str__(self): return self.to_string() - def to_string(self, verbose=0, title=None, **kwargs): + def to_string(self, verbose=0, title=None, **kwargs) -> str: """String representation.""" lines = []; app = lines.append if title is not None: app(marquee(title, mark="=")) @@ -1633,12 +1678,12 @@ def to_string(self, verbose=0, title=None, **kwargs): return "\n".join(lines) @property - def is_mesh(self): + def is_mesh(self) -> bool: """True if we have a mesh in the BZ.""" return self.kptopt > 0 and (self.mpdivs is not None or self.kptrlatt is not None) @property - def is_path(self): + def is_path(self) -> bool: """True if we have a path in the BZ.""" return self.kptopt < 0 @@ -1648,13 +1693,13 @@ def is_path(self): # return self.kptopt > 0 and (self.mpdivs is not None or self.kptrlatt is not None) @property - def has_diagonal_kptrlatt(self): + def has_diagonal_kptrlatt(self) -> bool: """True if sampling with diagonal kptrlatt.""" if self.kptrlatt is None: return False return is_diagonal(self.kptrlatt) -class KpointsReaderMixin(object): +class KpointsReaderMixin: """ Mixin class that provides methods for reading k-point data from a netcdf file written according to the ETSF-IO specifications. @@ -1669,7 +1714,6 @@ def read_kpoints(self): weights = self.read_kweights() ksampling = self.read_ksampling_info() - #if ksampling.kptopt < 0: if ksampling.kptopt < 0 or np.all(weights == 1): # We have a path in the BZ. kpath = Kpath(structure.reciprocal_lattice, frac_coords, ksampling=ksampling) @@ -1688,7 +1732,7 @@ def read_kpoints(self): # We have a homogeneous sampling of the BZ. return IrredZone(structure.reciprocal_lattice, frac_coords, weights=weights, ksampling=ksampling) - def read_ksampling_info(self): + def read_ksampling_info(self) -> KSamplingInfo: """ Read information on the k-point sampling. Return :class:`KSamplingInfo` object. """ @@ -1705,27 +1749,35 @@ def read_ksampling_info(self): kptopt=int(self.read_value("kptopt", default=0)), ) - def read_kfrac_coords(self): + def read_kfrac_coords(self) -> np.ndarray: """Fractional coordinates of the k-points""" return self.read_value("reduced_coordinates_of_kpoints") - def read_kweights(self): + def read_kweights(self) -> np.ndarray: """Returns the weight of the k-points. None if not found.""" return self.read_value("kpoint_weights") - def read_kshifts(self): + def read_kshifts(self) -> np.ndarray: """Returns the shifts of the k-mesh in reduced coordinates. None if not found.""" try: return self.read_value("shiftk") except self.Error: return self.read_value("kpoint_grid_shift") - def read_kmpdivs(self): + def read_kmpdivs(self) -> np.ndarray: """Returns the Monkhorst-Pack divisions defining the mesh. None if not found.""" - #return self.read_value("monkhorst_pack_folding") - return self.none_if_masked_array(self.read_value("monkhorst_pack_folding")) - def read_kptrlatt(self): + if "monkhorst_pack_folding" in self.rootgrp.variables: + return self.none_if_masked_array(self.read_value("monkhorst_pack_folding")) + else: + kptrlatt = self.read_kptrlatt() + kmpdivs = np.diag(kptrlatt) + for i in range(3): + for j in range(3): + if i != j and kptrlatt[i, j] != 0: kmpdivs = None + return kmpdivs + + def read_kptrlatt(self) -> np.ndarray: """Returns ABINIT variable kptrlatt. None if not found.""" try: return self.read_value("kptrlatt") @@ -1741,7 +1793,7 @@ class KpointsReader(ETSF_Reader, KpointsReaderMixin): """ -class Ktables(object): +class Ktables: """ Call spglib to compute the k-points in the IBZ with the corresponding weights as well as the mapping BZ --> IBZ. @@ -1763,7 +1815,6 @@ class Ktables(object): """ def __init__(self, structure, mesh, is_shift, has_timrev): """ - Args: structure mesh @@ -1780,7 +1831,7 @@ def __init__(self, structure, mesh, is_shift, has_timrev): is_shift=self.is_shift, is_time_reversal=self.has_timrev, symprec=_SPGLIB_SYMPREC) uniq, self.weights = np.unique(mapping, return_counts=True) - self.weights = np.asarray(self.weights, dtype=np.float) / len(self.grid) + self.weights = np.asarray(self.weights, dtype=float) / len(self.grid) self.nibz = len(uniq) self.kshift = [0., 0., 0.] if is_shift is None else 0.5 * np.asarray(is_shift) self.ibz = (self.grid[uniq] + self.kshift) / self.mesh @@ -1789,16 +1840,16 @@ def __init__(self, structure, mesh, is_shift, has_timrev): # All k-points and mapping to ir-grid points. # FIXME This is slow. - self.bz2ibz = np.empty(len(self.bz), dtype=np.int) + self.bz2ibz = np.empty(len(self.bz), dtype=int) for ik_bz, ir_gp_id in enumerate(mapping): inds = np.where(uniq == ir_gp_id) assert len(inds) == 1 - self.bz2ibz[ik_bz] = inds[0] + self.bz2ibz[ik_bz] = int(inds[0]) def __str__(self): return self.to_string() - def to_string(self, verbose=0, title=None, **kwargs): + def to_string(self, verbose=0, title=None, **kwargs) -> str: """String representation""" lines = collections.deque(); app = lines.append if title is not None: app(marquee(title, mark="=")) @@ -1812,7 +1863,7 @@ def to_string(self, verbose=0, title=None, **kwargs): return "\n".join(lines) - def print_bz2ibz(self, file=sys.stdout): + def print_bz2ibz(self, file=sys.stdout) -> None: """Print BZ --> IBZ mapping.""" print("BZ points --> IBZ points mapping", file=file) for ik_bz, ik_ibz in enumerate(self.bz2ibz): @@ -1836,6 +1887,7 @@ def dist_point_from_line(x0, x1, x2): def find_points_along_path(cart_bounds, cart_coords, dist_tol): """ Find points in ``cart_coords`` lying on the path defined by ``cart_bounds``. + Result are ordered according to distance along the path. Args: cart_bounds: [N, 3] array with the boundaries of the path in Cartesian coordinates. @@ -1888,7 +1940,7 @@ def find_points_along_path(cart_bounds, cart_coords, dist_tol): path_ticks=np.array(path_ticks)) -def build_segments(k0_list, npts, step, red_dirs, reciprocal_lattice): +def build_segments(k0_list, npts, step, red_dirs, reciprocal_lattice) -> np.ndarray: """ For each point in k0_list, build a line passing through the point for each reduced direction in red_dir. Each line consists of `npts` points with step `step` in Ang-1 @@ -1917,4 +1969,9 @@ def build_segments(k0_list, npts, step, red_dirs, reciprocal_lattice): # Cart --> Frac out = reciprocal_lattice.get_fractional_coords(kpts) - return np.reshape(out, (len(k0_list), len(red_dirs) * npts, 3)) + + out = np.reshape(out, (len(k0_list), len(red_dirs) * npts, 3)) + + # Set small values to zero. + out = np.where(np.abs(out) > 1e-12, out, 0.0) + return out diff --git a/abipy/core/mesh3d.py b/abipy/core/mesh3d.py index 6acbeed7b..2fb93509c 100644 --- a/abipy/core/mesh3d.py +++ b/abipy/core/mesh3d.py @@ -1,5 +1,6 @@ # coding: utf-8 """This module contains the class defining Uniform 3D meshes.""" +from __future__ import annotations import numpy as np @@ -15,7 +16,7 @@ ] -class Mesh3D(object): +class Mesh3D: r""" Descriptor-class for uniform 3D meshes. @@ -54,7 +55,7 @@ def __init__(self, shape, vectors): ``dv`` Volume per grid point. ========== ======================================================== """ - self.shape = tuple(np.asarray(shape, np.int)) + self.shape = tuple(np.asarray(shape, int)) self.size = np.prod(self.shape) self.vectors = np.reshape(vectors, (3, 3)) @@ -91,28 +92,28 @@ def iter_ixyz_r(self): for iy in range(self.ny): for iz in range(self.nz): rr = ix * self.dvx + iy * self.dvy + iz * self.dvz - yield np.array((ix, iy, iz), dtype=np.int), rr + yield np.array((ix, iy, iz), dtype=int), rr def rpoint(self, ix, iy, iz): """The vector corresponding to the (ix, iy, iz) indices""" return ix * self.dvx + iy * self.dvy + iz * self.dvz - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" return self.__class__.__name__ + ": nx=%d, ny=%d, nz=%d" % self.shape @property - def nx(self): + def nx(self) -> int: """Number of points along x.""" return self.shape[0] @property - def ny(self): + def ny(self) -> int: """Number of points along y.""" return self.shape[1] @property - def nz(self): + def nz(self) -> int: """Number of points along z.""" return self.shape[2] @@ -120,7 +121,7 @@ def nz(self): def inv_vectors(self): return np.linalg.inv(self.vectors) - def _new_array(self, dtype=np.float, zero=True, extra_dims=()): + def _new_array(self, dtype=float, zero=True, extra_dims=()): shape = self.shape if duck.is_intlike(extra_dims): @@ -133,7 +134,7 @@ def _new_array(self, dtype=np.float, zero=True, extra_dims=()): else: return np.empty(shape, dtype) - def zeros(self, dtype=np.float, extra_dims=()): + def zeros(self, dtype=float, extra_dims=()) -> np.ndarray: """ Returns new zeroed 3D array for this domain. @@ -142,11 +143,11 @@ def zeros(self, dtype=np.float, extra_dims=()): """ return self._new_array(dtype=dtype, zero=True, extra_dims=extra_dims) - def czeros(self, extra_dims=()): + def czeros(self, extra_dims=()) -> np.ndarray: """Returns new zeroed 3D complex array for this domain.""" - return self._new_array(dtype=np.complex, zero=True, extra_dims=extra_dims) + return self._new_array(dtype=complex, zero=True, extra_dims=extra_dims) - def empty(self, dtype=np.float, extra_dims=()): + def empty(self, dtype=float, extra_dims=()): """ Returns new uninitialized 3D |numpy-array| for this domain. @@ -155,11 +156,11 @@ def empty(self, dtype=np.float, extra_dims=()): """ return self._new_array(dtype=dtype, zero=False, extra_dims=extra_dims) - def cempty(self, extra_dims=()): + def cempty(self, extra_dims=()) -> np.ndarray: """Returns new uninitialized 3D complex |numpy-array| for this domain.""" - return self._new_array(dtype=np.complex, zero=False, extra_dims=extra_dims) + return self._new_array(dtype=complex, zero=False, extra_dims=extra_dims) - def random(self, dtype=np.float, extra_dims=()): + def random(self, dtype=float, extra_dims=()) -> np.ndarray: """Returns random real |numpy-array| for this domain with val in [0.0, 1.0).""" shape = self.shape if duck.is_intlike(extra_dims): @@ -168,19 +169,19 @@ def random(self, dtype=np.float, extra_dims=()): shape = extra_dims + tuple(shape) re = np.random.random(shape) - if dtype == np.float: + if dtype == float: return re - elif dtype == np.complex: + elif dtype == complex: im = self.random(extra_dims=extra_dims) return re + 1j*im else: raise ValueError("Wrong dtype: %s" % str(dtype)) - def crandom(self, extra_dims=()): + def crandom(self, extra_dims=()) -> np.ndarray: """Returns random complex |numpy-array| for this domain with val in [0.0, 1.0).""" - return self.random(dtype=np.complex, extra_dims=extra_dims) + return self.random(dtype=complex, extra_dims=extra_dims) - def reshape(self, arr): + def reshape(self, arr) -> np.ndarray: """ Reshape the array arr defined on the FFT box. @@ -190,7 +191,7 @@ def reshape(self, arr): #shape = extra_dims + self.shape) return np.reshape(arr, (-1,) + self.shape) - def fft_r2g(self, fr, shift_fg=False): + def fft_r2g(self, fr, shift_fg=False) -> np.ndarray: """ FFT of array ``fr`` given in real space. """ @@ -216,7 +217,7 @@ def fft_r2g(self, fr, shift_fg=False): return fg / self.size - def fft_g2r(self, fg, fg_ishifted=False): + def fft_g2r(self, fg, fg_ishifted=False) -> np.ndarray: """ FFT of array ``fg`` given in G-space. """ @@ -283,7 +284,7 @@ def integrate(self, fr): raise NotImplementedError("ndim < 3 are not supported") @lazy_property - def gvecs(self): + def gvecs(self) -> np.ndarray: """ Array with the reduced coordinates of the G-vectors. @@ -299,7 +300,7 @@ def gvecs(self): gz_list = np.rint(fftfreq(self.nz) * self.nz) #print(gz_list, gy_list, gx_list) - gvecs = np.empty((self.size, 3), dtype=np.int) + gvecs = np.empty((self.size, 3), dtype=int) idx = -1 for gx in gx_list: @@ -311,7 +312,7 @@ def gvecs(self): return gvecs @lazy_property - def gmods(self): + def gmods(self) -> np.ndarray: """[ng] |numpy-array| with :math:`|G|`""" gmet = np.dot(self.inv_vectors.T, self.inv_vectors) gmods = np.empty(self.size) @@ -325,7 +326,7 @@ def gmods(self): # return self.gmods.max() @lazy_property - def rpoints(self): + def rpoints(self) -> np.ndarray: """|numpy-array| with the points in real space in reduced coordinates.""" nx, ny, nz = self.nx, self.ny, self.nz rpoints = np.empty((self.size, 3)) @@ -404,7 +405,7 @@ def rpoints(self): # tnons_fft[isym] = np.dot(red2fft, tau) # # Indeces of $R^{-1}(r-\tau)$ in the FFT box. - # irottable = np.empty((nsym, nx*ny*nz), dtype=np.int) + # irottable = np.empty((nsym, nx*ny*nz), dtype=int) # #max_err = 0.0 # nxyz = np.array((nx, ny, nz), np.int) @@ -430,7 +431,7 @@ def rpoints(self): # return irottable - def i_closest_gridpoints(self, points): + def i_closest_gridpoints(self, points) -> np.ndarray: """ Given a list of points, this function return a |numpy-array| with the indices of the closest gridpoint. """ diff --git a/abipy/core/mixins.py b/abipy/core/mixins.py index 870ff1a2f..baa4919fc 100644 --- a/abipy/core/mixins.py +++ b/abipy/core/mixins.py @@ -1,18 +1,22 @@ # coding: utf-8 -"""This module provides mixin classes""" +"""Mixin classes""" +from __future__ import annotations + import abc import os import collections import tempfile import pickle import numpy as np +import pandas as pd from time import ctime -from monty.os.path import which +from shutil import which from monty.termcolor import cprint from monty.string import list_strings from monty.collections import dict2namedtuple from monty.functools import lazy_property +from abipy.tools.typing import Figure __all__ = [ @@ -22,6 +26,7 @@ "Has_PhononBands", "NotebookWriter", "Has_Header", + "SlotPickleMixin" ] @@ -30,7 +35,8 @@ class BaseFile(metaclass=abc.ABCMeta): Abstract base class defining the methods that must be implemented by the concrete classes representing the different files produced by ABINIT. """ - def __init__(self, filepath): + def __init__(self, filepath: str): + filepath = str(filepath) self._filepath = os.path.abspath(filepath) # Save stat values @@ -39,24 +45,22 @@ def __init__(self, filepath): self._last_mtime = stat.st_mtime self._last_ctime = stat.st_ctime - def __repr__(self): + def __repr__(self) -> str: return "<%s, %s>" % (self.__class__.__name__, self.relpath) @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str): """Initialize the object from a string.""" if isinstance(filepath, cls): return filepath - - #print("Perhaps the subclass", cls, "must redefine the classmethod from_file.") return cls(filepath) @property - def filepath(self): + def filepath(self) -> str: """Absolute path of the file.""" return self._filepath @property - def relpath(self): + def relpath(self) -> str: """Relative path.""" try: return os.path.relpath(self.filepath) @@ -65,16 +69,16 @@ def relpath(self): return self.filepath @property - def basename(self): + def basename(self) -> str: """Basename of the file.""" return os.path.basename(self.filepath) @property - def filetype(self): + def filetype(self) -> str: """String defining the filetype.""" return self.__class__.__name__ - def filestat(self, as_string=False): + def filestat(self, as_string: bool = False) -> dict: """ Dictionary with file metadata, if ``as_string`` is True, a string is returned. """ @@ -83,23 +87,27 @@ def filestat(self, as_string=False): return "\n".join("%s: %s" % (k, v) for k, v in d.items()) @abc.abstractmethod - def close(self): + def close(self) -> None: """Close the file.""" def __enter__(self): return self - def __exit__(self, exc_type, exc_val, exc_tb): + def __exit__(self, exc_type, exc_val, exc_tb) -> None: """Activated at the end of the with statement. It automatically closes the file.""" self.close() + def remove(self) -> None: + """Close the file handle, remove the file from disk.""" + self.close() + try: + os.remove(self.filepath) + except FileNotFoundError: + pass + class TextFile(BaseFile): - #@classmethood - #def from_string(cls, s): - # return cls.from_file(filepath) - def __enter__(self): # Open the file self._file @@ -113,17 +121,53 @@ def _file(self): """File object open in read-only mode.""" return open(self.filepath, mode="rt") - def close(self): + def close(self) -> None: """Close the file.""" try: self._file.close() except Exception: pass - def seek(self, offset, whence=0): + def seek(self, offset, whence: int = 0) -> None: """Set the file's current position, like stdio's fseek().""" self._file.seek(offset, whence) + def get_panel(self, **kwargs): + import panel as pn + import panel.widgets as pnw + + root, ext = os.path.splitext(self.basename) + text = open(self.filepath, "rt").read() + if not text: text = "This file is empty!" + + # Use Markdown for selected extensions else Ace editor. + if ext and len(ext) > 1: ext = ext[1:] + ext2format = dict(sh="shell", py="python", stdin="shell", stdout="shell", stderr="shell") + + if ext in ext2format: + fmt = ext2format[ext] + obj = pn.pane.Markdown(f"```{fmt}\n{text}\n```", sizing_mode="stretch_both") + else: + obj = pnw.Ace(value=text, language='text', readonly=True, + sizing_mode='stretch_width', height=1200) + + return pn.Column(f"## File: {self.filepath}", + obj, + pn.layout.Divider(), + sizing_mode="stretch_width") + + +class JsonFile(TextFile): + """ + A TextFile containing JSON data. + Provides get_panel method so that we can visualize the file with `abiopen.py FILE --panel` + """ + + def get_panel(self, **kwargs): + import json + from abipy.panels.viewers import JSONViewer + with self: + return JSONViewer(json.load(self._file)) class AbinitNcFile(BaseFile): @@ -132,34 +176,77 @@ class AbinitNcFile(BaseFile): according to the ETSF-IO specifications (when available). An AbinitNcFile has a netcdf reader to read data from file and build objects. """ - def ncdump(self, *nc_args, **nc_kwargs): + + @classmethod + def from_binary_string(cls, bstring) -> AbinitNcFile: + """ + Build object from a binary string with the netcdf data. + Useful for implementing GUIs in which widgets returns binary data. + """ + workdir = tempfile.mkdtemp() + fd, tmp_path = tempfile.mkstemp(suffix=".nc") + with open(tmp_path, "wb") as fh: + fh.write(bstring) + return cls.from_file(tmp_path) + + def ncdump(self, *nc_args, **nc_kwargs) -> str: """Returns a string with the output of ncdump.""" return NcDumper(*nc_args, **nc_kwargs).dump(self.filepath) @lazy_property - def abinit_version(self): - """String with abinit version: three digits separated by comma.""" + def abinit_version(self) -> str: + """String with the abinit version: three digits separated by comma.""" return self.reader.rootgrp.getncattr("abinit_version") @abc.abstractproperty - def params(self): + def params(self) -> dict: """ - :class:`OrderedDict` with the convergence parameters - Used to construct |pandas-DataFrames|. + dict with the convergence parameters used to construct |pandas-DataFrames|. """ + def get_dims_dataframe(self, as_dict=False, path="/") -> pd.DataFrame: + """ + Return: |pandas-Dataframe| with the dimensions defined in the `path` group. + or dict if as_dict is True. + """ + grp = self.reader.rootgrp if path == "/" else self.path2group[path] + d = {k: len(v) for k, v in grp.dimensions.items()} + + if as_dict: return d + + # Since this is a Series but we want a dataframe to facilitate interoperability. + # we have to call init with additional kwargs. + return pd.DataFrame.from_dict(d, orient='index', columns=['value']) + + def get_input_string(self) -> str: + """ + Read and return input string stored in the netcdf. + Only nc files generared by Abinit9 have this variable. + """ + if "input_string" in self.reader.rootgrp.variables: + return self.reader.read_string("input_string") + else: + return "Nc file does not contain `input_string`" + + def get_ncfile_view(self, **kwargs): + """ + Return panel Parameterized object with widgets to visualize + netcdf dimensions and variables. + """ + from abipy.panels.core import NcFileViewer + return NcFileViewer(self).get_ncfile_view(**kwargs) + class AbinitFortranFile(BaseFile): """ - Abstract class representing a fortran file containing output data from abinit. + Abstract class representing a Fortran file containing output data from abinit. """ - def close(self): - pass + def close(self) -> None: + """nop, just to fulfill the abstract interface.""" class CubeFile(BaseFile): """ - .. attribute:: structure |Structure| object @@ -172,12 +259,12 @@ class CubeFile(BaseFile): |numpy-array| of shape [nx, ny, nz] with numerical values on the real-space mesh. """ - def __init__(self, filepath): + def __init__(self, filepath: str): from abipy.iotools.cube import cube_read_structure_mesh_data super().__init__(filepath) self.structure, self.mesh, self.data = cube_read_structure_mesh_data(self.filepath) - def close(self): + def close(self) -> None: """nop, just to fulfill the abstract interface.""" #@classmethod @@ -188,13 +275,15 @@ def close(self): class Has_Structure(metaclass=abc.ABCMeta): - """Mixin class for |AbinitNcFile| containing crystallographic data.""" + """ + Mixin class for |AbinitNcFile| containing crystallographic data. + """ @abc.abstractproperty def structure(self): """Returns the |Structure| object.""" - def plot_bz(self, **kwargs): + def plot_bz(self, **kwargs) -> Figure: """ Gives the plot (as a matplotlib object) of the symmetry line path in the Brillouin Zone. """ @@ -203,7 +292,7 @@ def plot_bz(self, **kwargs): # To maintain backward compatbility show_bz = plot_bz - def export_structure(self, filepath): + def export_structure(self, filepath: str): """ Export the structure on file. @@ -211,7 +300,7 @@ def export_structure(self, filepath): """ return self.structure.export(filepath) - def visualize_structure_with(self, appname): + def visualize_structure_with(self, appname: str): """ Visualize the crystalline structure with the specified visualizer. @@ -264,7 +353,7 @@ def _get_atomview(self, view, select_symbols=None, verbose=0): if select_symbols is not None: select_symbols = set(list_strings(select_symbols)) iatom_list = [i for i in iatom_list if self.structure[i].specie.symbol in select_symbols] - iatom_list = np.array(iatom_list, dtype=np.int) + iatom_list = np.array(iatom_list, dtype=int) # Slice full arrays. wyckoffs = ea.wyckoffs[iatom_list] @@ -277,6 +366,10 @@ def yield_structure_figs(self, **kwargs): """*Generates* a predefined list of matplotlib figures with minimal input from the user.""" yield self.structure.plot(show=False) + def yield_structure_plotly_figs(self, **kwargs): + """*Generates* a predefined list of plotly figures with minimal input from the user.""" + yield self.structure.plotly(show=False) + class Has_ElectronBands(metaclass=abc.ABCMeta): """Mixin class for |AbinitNcFile| containing electron data.""" @@ -286,37 +379,37 @@ def ebands(self): """Returns the |ElectronBands| object.""" @property - def nsppol(self): + def nsppol(self) -> int: """Number of spin polarizations""" return self.ebands.nsppol @property - def nspinor(self): + def nspinor(self) -> int: """Number of spinors""" return self.ebands.nspinor @property - def nspden(self): + def nspden(self) -> int: """Number of indepedendent spin-density components.""" return self.ebands.nspden @property - def mband(self): + def mband(self) -> int: """Maximum number of bands.""" return self.ebands.mband @property - def nband(self): + def nband(self) -> int: """Maximum number of bands.""" return self.ebands.nband @property - def nelect(self): + def nelect(self) -> float: """Number of electrons per unit cell""" return self.ebands.nelect @property - def nkpt(self): + def nkpt(self) -> int: """Number of k-points.""" return self.ebands.nkpt @@ -329,7 +422,7 @@ def kpoints(self): def tsmear(self): return self.ebands.smearing.tsmear_ev.to("Ha") - def get_ebands_params(self): + def get_ebands_params(self) -> dict: """:class:`OrderedDict` with the convergence parameters.""" return collections.OrderedDict([ ("nsppol", self.nsppol), @@ -339,11 +432,11 @@ def get_ebands_params(self): ("nkpt", self.nkpt), ]) - def plot_ebands(self, **kwargs): + def plot_ebands(self, **kwargs) -> Figure: """Plot the electron energy bands. See the :func:`ElectronBands.plot` for the signature.""" return self.ebands.plot(**kwargs) - def plot_ebands_with_edos(self, edos, **kwargs): + def plot_ebands_with_edos(self, edos, **kwargs) -> Figure: """Plot the electron energy bands with DOS. See the :func:`ElectronBands.plot_with_edos` for the signature.""" return self.ebands.plot_with_edos(edos, **kwargs) @@ -353,23 +446,56 @@ def get_edos(self, **kwargs): def yield_ebands_figs(self, **kwargs): """*Generates* a predefined list of matplotlib figures with minimal input from the user.""" - with_gaps = not self.ebands.has_metallic_scheme + with_gaps = not self.ebands.is_metal if self.ebands.kpoints.is_path: yield self.ebands.plot(with_gaps=with_gaps, show=False) - yield self.ebands.kpoints.plot(show=False) + if len(self.ebands.kpoints) > 1: + yield self.ebands.kpoints.plot(show=False) else: edos = self.ebands.get_edos() yield self.ebands.plot_with_edos(edos, with_gaps=with_gaps, show=False) yield edos.plot(show=False) - def expose_ebands(self, slide_mode=False, slide_timeout=None, **kwargs): + def yield_ebands_plotly_figs(self, **kwargs): + """*Generates* a predefined list of plotly figures with minimal input from the user.""" + with_gaps = not self.ebands.is_metal + + if self.ebands.kpoints.is_path: + yield self.ebands.plotly(with_gaps=with_gaps, show=False) + if len(self.ebands.kpoints) > 1: + yield self.ebands.kpoints.plotly(show=False) + else: + edos = self.ebands.get_edos() + yield self.ebands.plotly_with_edos(edos, with_gaps=with_gaps, show=False) + yield edos.plotly(show=False) + + def expose_ebands(self, slide_mode=False, slide_timeout=None, expose_web=False, **kwargs): """ Shows a predefined list of matplotlib figures for electron bands with minimal input from the user. """ - from abipy.tools.plotting import MplExpose - with MplExpose(slide_mode=slide_mode, slide_timeout=slide_mode, verbose=1) as e: + from abipy.tools.plotting import MplExposer, PanelExposer + + if expose_web: + e = PanelExposer(title=f"e-Bands of {self.structure.formula}") + else: + e = MplExposer(slide_mode=slide_mode, slide_timeout=slide_mode, verbose=1) + + with e: e(self.yield_ebands_figs(**kwargs)) + #def plotly_expose_ebands(self, **kwargs): + # """ + # This function *generates* a predefined list of plotly figures with minimal input from the user. + # """ + # chart_studio = kwargs.pop("chart_studio", None) + # verbose = kwargs.pop("verbose", 0) + # kwargs.update(dict( + # renderer="chart_studio" if chart_studio else None, + # title=f"Band structure of {self.ebands.structure.formula}", + # with_gaps = not self.ebands.has_metallic_scheme, + # )) + # self.ebands.plotly(**kwargs) + class Has_PhononBands(metaclass=abc.ABCMeta): """ @@ -380,13 +506,13 @@ class Has_PhononBands(metaclass=abc.ABCMeta): def phbands(self): """Returns the |PhononBands| object.""" - def get_phbands_params(self): + def get_phbands_params(self) -> dict: """:class:`OrderedDict` with the convergence parameters.""" return collections.OrderedDict([ ("nqpt", len(self.phbands.qpoints)), ]) - def plot_phbands(self, **kwargs): + def plot_phbands(self, **kwargs) -> Figure: """ Plot the electron energy bands. See the :func:`PhononBands.plot` for the signature."" """ @@ -405,17 +531,29 @@ def yield_phbands_figs(self, **kwargs): # pragma: no cover yield self.phbands.plot(units=units, show=False) yield self.phbands.plot_colored_matched(units=units, show=False) + def yield_phbands_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + units = kwargs.get("units", "mev") + yield self.phbands.qpoints.plotly(show=False) + yield self.phbands.plotly(units=units, show=False) + yield self.phbands.plot_colored_matched(units=units, show=False) + def expose_phbands(self, slide_mode=False, slide_timeout=None, **kwargs): """ Shows a predefined list of matplotlib figures for phonon bands with minimal input from the user. """ - from abipy.tools.plotting import MplExpose - with MplExpose(slide_mode=slide_mode, slide_timeout=slide_mode, verbose=1) as e: + from abipy.tools.plotting import MplExposer + with MplExposer(slide_mode=slide_mode, slide_timeout=slide_mode, verbose=1) as e: e(self.yield_phbands_figs(**kwargs)) class NcDumper(object): - """Wrapper object for the ncdump tool.""" + """ + Wrapper object for the ncdump tool. + """ def __init__(self, *nc_args, **nc_kwargs): """ @@ -427,7 +565,7 @@ def __init__(self, *nc_args, **nc_kwargs): self.nc_kwargs = nc_kwargs self.ncdump = which("ncdump") - def dump(self, filepath): + def dump(self, filepath: str) -> str: """Returns a string with the output of ncdump.""" if self.ncdump is None: return "Cannot find ncdump tool in $PATH" @@ -437,12 +575,12 @@ def dump(self, filepath): _ABBREVS = [ - (1 << 50, 'Pb'), - (1 << 40, 'Tb'), - (1 << 30, 'Gb'), - (1 << 20, 'Mb'), - (1 << 10, 'kb'), - (1, 'b'), + (1 << 50, 'PB'), + (1 << 40, 'TB'), + (1 << 30, 'GB'), + (1 << 20, 'MB'), + (1 << 10, 'kB'), + (1, 'B'), ] @@ -454,7 +592,7 @@ def size2str(size): return "%.2f " % (size / factor) + suffix -def get_filestat(filepath): +def get_filestat(filepath: str) -> dict: stat = os.stat(filepath) return collections.OrderedDict([ ("Name", os.path.basename(filepath)), @@ -466,21 +604,27 @@ def get_filestat(filepath): ]) -class NotebookWriter(metaclass=abc.ABCMeta): - """ - Mixin class for objects that are able to generate jupyter_ notebooks. - Subclasses must provide a concrete implementation of `write_notebook`. - """ +class HasNotebookTools: + + def has_panel(self): + """ + Return panel module (that evaluates to True) if panel is installed else False. + """ + try: + import panel as pn + return pn + except ImportError: + return False def make_and_open_notebook(self, nbpath=None, foreground=False, - classic_notebook=False, no_browser=False): # pragma: no cover + classic_notebook=False, no_browser=False) -> int: # pragma: no cover """ - Generate an jupyter_ notebook and open it in the browser. + Generate a jupyter_ notebook and open it in the browser. Args: nbpath: If nbpath is None, a temporay file is created. - foreground: By default, jupyter is executed in background and stdout, stderr are redirected. - to devnull. Use foreground to run the process in foreground + foreground: By default, jupyter is executed in background and stdout, stderr are redirected. + to devnull. Use foreground to run the process in foreground classic_notebook: True to use the classic notebook instead of jupyter-lab (default) no_browser: Start the jupyter server to serve the notebook but don't open the notebook in the browser. Use this option to connect remotely from localhost to the machine running the kernel @@ -522,9 +666,9 @@ def make_and_open_notebook(self, nbpath=None, foreground=False, See also https://jupyter.readthedocs.io/en/latest/install.html """) + app_path = app_path + " notebook " if not no_browser: - if foreground: return os.system("%s %s" % (app_path, nbpath)) else: @@ -544,14 +688,7 @@ def make_and_open_notebook(self, nbpath=None, foreground=False, print("nbpath:", nbpath) import socket - def find_free_port(): - """https://stackoverflow.com/questions/1365265/on-localhost-how-do-i-pick-a-free-port-number""" - from contextlib import closing - with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: - s.bind(('', 0)) - s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - return s.getsockname()[1] - + from abipy.tools.notebooks import find_free_port username = os.getlogin() hostname = socket.gethostname() port = find_free_port() @@ -572,9 +709,9 @@ def find_free_port(): http://localhost:{port}/notebooks/{notebook_name} """) if not classic_notebook: - cmd = f'{app_path} {notebook_name} --no-browser --port {port} --notebook-dir {dirname}' + cmd = f'{app_path} {notebook_name} --no-browser --port {port} --notebook-dir {dirname}' else: - cmd = f'{app_path} notebook {notebook_name} --no-browser --port {port} --notebook-dir {dirname}' + cmd = f'{app_path} notebook {notebook_name} --no-browser --port {port} --notebook-dir {dirname}' print("Executing:", cmd) print('NOTE: make sure to open `{}` in your local machine\n'.format(notebook_name)) @@ -582,13 +719,13 @@ def find_free_port(): return os.system(cmd) @staticmethod - def get_nbformat_nbv(): - """Return nbformat module, notebook version module""" + def get_nbformat_nbv() -> tuple: + """Return (nbformat module, notebook version module)""" import nbformat nbv = nbformat.v4 return nbformat, nbv - def get_nbformat_nbv_nb(self, title=None): + def get_nbformat_nbv_nb(self, title=None) -> tuple: """ Return ``nbformat`` module, notebook version module and new notebook with title and import section @@ -629,8 +766,31 @@ def get_nbformat_nbv_nb(self, title=None): return nbformat, nbv, nb + @staticmethod + def _write_nb_nbpath(nb, nbpath: str) -> str: + """ + This method must be called at the end of ``write_notebook``. + nb is the jupyter notebook and nbpath the argument passed to ``write_notebook``. + """ + import io, os, tempfile + if nbpath is None: + _, nbpath = tempfile.mkstemp(prefix="abinb_", suffix='.ipynb', dir=os.getcwd(), text=True) + + # Write notebook + import nbformat + with io.open(nbpath, 'wt', encoding="utf8") as fh: + nbformat.write(nb, fh) + return nbpath + + +class NotebookWriter(HasNotebookTools, metaclass=abc.ABCMeta): + """ + Mixin class for objects that are able to generate jupyter_ notebooks. + Subclasses must provide a concrete implementation of `write_notebook`. + """ + @abc.abstractmethod - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If nbpath is None, a temporay file is created. Return path to the notebook. A typical template: @@ -652,24 +812,8 @@ def write_notebook(self, nbpath=None): return self._write_nb_nbpath(nb, nbpath) """ - @staticmethod - def _write_nb_nbpath(nb, nbpath): - """ - This method must be called at the end of ``write_notebook``. - nb is the jupyter notebook and nbpath the argument passed to ``write_notebook``. - """ - import io, os, tempfile - if nbpath is None: - _, nbpath = tempfile.mkstemp(prefix="abinb_", suffix='.ipynb', dir=os.getcwd(), text=True) - - # Write notebook - import nbformat - with io.open(nbpath, 'wt', encoding="utf8") as fh: - nbformat.write(nb, fh) - return nbpath - @classmethod - def pickle_load(cls, filepath): + def pickle_load(cls, filepath: str): """ Loads the object from a pickle file. """ @@ -678,7 +822,7 @@ def pickle_load(cls, filepath): #assert cls is new.__class__ return new - def pickle_dump(self, filepath=None): + def pickle_dump(self, filepath=None) -> str: """ Save the status of the object in pickle format. If filepath is None, a temporary file is created. @@ -699,21 +843,121 @@ def yield_figs(self, **kwargs): # pragma: no cover Used in abiview.py to get a quick look at the results. """ - def expose(self, slide_mode=False, slide_timeout=None, **kwargs): + #@abc.abstractmethod + #def yield_plotly_figs(self, **kwargs): # pragma: no cover + # """ + # This function *generates* a predefined list of matplotlib figures with minimal input from the user. + # Used in abiview.py to get a quick look at the results. + # """ + + def _get_panel_and_template(self) -> tuple: + # Create panel template with matplotlib figures and show them in the browser. + import panel as pn + pn.config.sizing_mode = 'stretch_width' + from abipy.panels.core import get_template_cls_from_name + cls = get_template_cls_from_name("FastGridTemplate") + + title = self.__class__.__name__ + if hasattr(self, "structure"): title = f"{title} ({self.structure.formula})" + template = cls( + title=title, + header_background="#ff8c00 ", # Dark orange + ) + + return pn, template + + def expose(self, slide_mode=False, slide_timeout=None, use_web=False, **kwargs): """ - Shows a predefined list of matplotlib figures with minimal input from the user. + Shows a predefined list of figures with minimal input from the user. + Relies on the ``yield_fig``s methods implemented by the subclass to generate such figures. + + Args: + use_web: True to show all figures inside a panel template executed in the local browser. + False to show figures in different GUIs. """ - from abipy.tools.plotting import MplExpose - with MplExpose(slide_mode=slide_mode, slide_timeout=slide_mode, verbose=1) as e: - e(self.yield_figs(**kwargs)) + if not use_web: + # Produce all matplotlib figures and show them with the X-server. + from abipy.tools.plotting import MplExposer + with MplExposer(slide_mode=slide_mode, slide_timeout=slide_mode, verbose=1) as e: + e(self.yield_figs(**kwargs)) + + else: + # Create panel template with matplotlib figures and show them in the browser. + pn, template = self._get_panel_and_template() + pn.config.sizing_mode = 'stretch_width' + from abipy.panels.core import mpl, dfc + for i, fig in enumerate(self.yield_figs()): + row, col = divmod(i, 2) + #if isinstance(fig, pd.DataFrame, pd.Series): + # p = dfc(fig) + #elsse + p = mpl(fig, with_divider=False, dpi=82) + if hasattr(template.main, "append"): + template.main.append(p) + else: + # Assume .main area acts like a GridSpec + row_slice = slice(3 * row, 3 * (row + 1)) + if col == 0: template.main[row_slice, :6] = p + if col == 1: template.main[row_slice, 6:] = p + + return template.show() + + def plotly_expose(self, **kwargs): + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + Relies on the yield_plotly_figs method implemented by the subclass in order to generate the figures. + """ + #print("in plotly expose") + pn, template = self._get_panel_and_template() + pn.config.sizing_mode = 'stretch_width' + from abipy.panels.core import mpl, ply + + # Insert figure in template.main. + from abipy.tools.plotting import is_mpl_figure, is_plotly_figure + for i, fig in enumerate(self.yield_plotly_figs()): + row, col = divmod(i, 2) + # Handle both matplotlib and plotly figures since we dont' support plotly everywhere. + if is_plotly_figure(fig): + p = ply(fig, with_divider=False) + elif is_mpl_figure(fig): + p = mpl(fig, with_divider=False) + else: + raise TypeError(f"Don't know how to handle type: `{type(fig)}`") + if hasattr(template.main, "append"): + template.main.append(p) + else: + # Assume main area acts like a panel GridSpec + row_slice = slice(3 * row, 3 * (row + 1)) + if col == 0: template.main[row_slice, :6] = p + if col == 1: template.main[row_slice, 6:] = p + + return template.show() -class Has_Header(object): - """Mixin class for netcdf_ files containing the Abinit header.""" + +class Has_Header: + """ + Mixin class for netcdf files containing the Abinit header. + """ @lazy_property def hdr(self): """|AttrDict| with the Abinit header e.g. hdr.ecut.""" - return self.reader.read_abinit_hdr() + if hasattr(self, "reader"): + return self.reader.read_abinit_hdr() + return self.r.read_abinit_hdr() #def compare_hdr(self, other_hdr): + + +class SlotPickleMixin: + """ + This mixin makes it possible to pickle/unpickle objects with __slots__ + """ + + def __getstate__(self) -> dict: + return {slot: getattr(self, slot) for slot in self.__slots__ if hasattr(self, slot)} + + def __setstate__(self, state: dict) -> None: + for slot, value in state.items(): + setattr(self, slot, value) diff --git a/abipy/core/release.py b/abipy/core/release.py index 003e82ba0..03d5060fc 100644 --- a/abipy/core/release.py +++ b/abipy/core/release.py @@ -1,5 +1,7 @@ # coding: utf-8 -"""Release data for the AbiPy project.""" +""" +Release data for the AbiPy project. +""" from collections import OrderedDict @@ -10,8 +12,8 @@ # version information. An empty _version_extra corresponds to a full # release. 'dev' as a _version_extra string means this is a development version _version_major = 0 -_version_minor = 8 -_version_micro = '0' # use '' for first of series, number for 1 and above +_version_minor = 9 +_version_micro = 8 # use '' for first of series, number for 1 and above #_version_extra = 'dev' _version_extra = '' # Uncomment this for full releases @@ -25,7 +27,7 @@ version = __version__ # backwards compatibility name # The minimum Abinit version compatible with AbiPy -min_abinit_version = "8.0.8" +min_abinit_version = "9.2.0" description = "Python package to automate ABINIT calculations and analyze the results." @@ -68,9 +70,11 @@ platforms = ['Linux', 'darwin'] keywords = ["ABINIT", "ab-initio", "density-function-theory", "first-principles", "electronic-structure", "pymatgen"] classifiers = [ - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", diff --git a/abipy/core/restapi.py b/abipy/core/restapi.py index 984bc13d1..f7da87be1 100644 --- a/abipy/core/restapi.py +++ b/abipy/core/restapi.py @@ -2,19 +2,21 @@ This module provides interfaces with the Materials Project REST API v2 to enable the creation of data structures and pymatgen objects using Materials Project data. """ +from __future__ import annotations + import sys +import pandas as pd from collections import OrderedDict from pprint import pprint from monty.functools import lazy_property from monty.string import marquee -from pymatgen import SETTINGS + from pymatgen.ext.matproj import MPRester, MPRestError from abipy.tools.printing import print_dataframe from abipy.core.mixins import NotebookWriter -MP_DEFAULT_ENDPOINT = "https://materialsproject.org/rest/v2" MP_KEYS_FOR_DATAFRAME = ( "pretty_formula", "e_above_hull", "energy_per_atom", @@ -24,126 +26,113 @@ ) -def get_mprester(api_key=None, endpoint=None): +def get_mprester(): """ Args: - api_key (str): A String API key for accessing the MaterialsProject - REST interface. Please apply on the Materials Project website for one. - If this is None, the code will check if there is a `PMG_MAPI_KEY` in - your .pmgrc.yaml. If so, it will use that environment - This makes easier for heavy users to simply add - this environment variable to their setups and MPRester can - then be called without any arguments. - endpoint (str): Url of endpoint to access the MaterialsProject REST interface. - Defaults to the standard Materials Project REST address, but - can be changed to other urls implementing a similar interface. - """ - if api_key is None: - api_key = SETTINGS.get("PMG_MAPI_KEY") - if api_key is None: - raise RuntimeError("Cannot find PMG_MAPI_KEY in pymatgen settings. Add it to $HOME/.pmgrc.yaml") - - if endpoint is None: endpoint = MP_DEFAULT_ENDPOINT - return MyMPRester(api_key=api_key, endpoint=endpoint) - - -class MyMPRester(MPRester): """ - Subclass Materials project Rester. - See :cite:`Jain2013,Ong2015`. - - .. rubric:: Inheritance Diagram - .. inheritance-diagram:: MyMPRester - """ - Error = MPRestError - - def get_phasediagram_results(self, elements): - """ - Contact the materials project database, fetch entries and build :class:``PhaseDiagramResults`` instance. - - Args: - elements: List of chemical elements. - """ - entries = self.get_entries_in_chemsys(elements, inc_structure="final") - return PhaseDiagramResults(entries) - - -class PhaseDiagramResults(object): - """ - Simplified interface to phase-diagram pymatgen API. - - Inspired to: - - https://anaconda.org/matsci/plotting-and-analyzing-a-phase-diagram-using-the-materials-api/notebook - - See also: :cite:`Ong2008,Ong2010` - """ - def __init__(self, entries): - self.entries = entries - from abipy.core.structure import Structure - for e in entries: - e.structure = Structure.as_structure(e.structure) - - self.structures = [e.structure for e in entries] - self.mpids = [e.entry_id for e in entries] - - # Create phase diagram. - from pymatgen.analysis.phase_diagram import PhaseDiagram - self.phasediagram = PhaseDiagram(self.entries) - - def plot(self, show_unstable=True, show=True): - """ - Plot phase diagram. - - Args: - show_unstable (float): Whether unstable phases will be plotted as - well as red crosses. If a number > 0 is entered, all phases with - ehull < show_unstable will be shown. - show: True to show plot. - - Return: plotter object. - """ - from pymatgen.analysis.phase_diagram import PDPlotter - plotter = PDPlotter(self.phasediagram, show_unstable=show_unstable) - if show: - plotter.show() - return plotter - - @lazy_property - def dataframe(self): - """Pandas dataframe with the most important results.""" - rows = [] - for e in self.entries: - d = e.structure.get_dict4pandas(with_spglib=True) - decomp, ehull = self.phasediagram.get_decomp_and_e_above_hull(e) - - rows.append(OrderedDict([ - ("Materials ID", e.entry_id), - ("spglib_symb", d["spglib_symb"]), ("spglib_num", d["spglib_num"]), - ("Composition", e.composition.reduced_formula), - ("Ehull", ehull), # ("Equilibrium_reaction_energy", pda.get_equilibrium_reaction_energy(e)), - ("Decomposition", " + ".join(["%.2f %s" % (v, k.composition.formula) for k, v in decomp.items()])), - ])) - - import pandas as pd - return pd.DataFrame(rows, columns=list(rows[0].keys()) if rows else None) - - def print_dataframes(self, with_spglib=False, file=sys.stdout, verbose=0): - """ - Print pandas dataframe to file `file`. - - Args: - with_spglib: True to compute spacegroup with spglib. - file: Output stream. - verbose: Verbosity level. - """ - print_dataframe(self.dataframe, file=file) - if verbose: - from abipy.core.structure import dataframes_from_structures - dfs = dataframes_from_structures(self.structures, index=self.mpids, with_spglib=with_spglib) - print_dataframe(dfs.lattice, title="Lattice parameters:", file=file) - if verbose > 1: - print_dataframe(dfs.coords, title="Atomic positions (columns give the site index):", file=file) + rester = MPRester() + #print(f"{type(rester)=}") + return rester + + +#class MyMPRester(MPRester): +# """ +# Subclass Materials project Rester. +# See :cite:`Jain2013,Ong2015`. +# +# .. rubric:: Inheritance Diagram +# .. inheritance-diagram:: MyMPRester +# """ +# Error = MPRestError +# +# def get_phasediagram_results(self, elements) -> PhaseDiagramResults: +# """ +# Contact the materials project database, fetch entries and build :class:``PhaseDiagramResults`` instance. +# +# Args: +# elements: List of chemical elements. +# """ +# entries = self.get_entries_in_chemsys(elements, inc_structure="final") +# return PhaseDiagramResults(entries) + + +#class PhaseDiagramResults: +# """ +# Simplified interface to phase-diagram pymatgen API. +# +# Inspired to: +# +# https://anaconda.org/matsci/plotting-and-analyzing-a-phase-diagram-using-the-materials-api/notebook +# +# See also: :cite:`Ong2008,Ong2010` +# """ +# def __init__(self, entries): +# self.entries = entries +# # Convert pymatgen structure to Abipy. +# from abipy.core.structure import Structure +# for e in entries: +# e.structure.__class__ = Structure +# +# self.structures = [e.structure for e in entries] +# self.mpids = [e.entry_id for e in entries] +# +# # Create phase diagram. +# from pymatgen.analysis.phase_diagram import PhaseDiagram +# self.phasediagram = PhaseDiagram(self.entries) +# +# def plot(self, show_unstable=True, show=True): +# """ +# Plot phase diagram. +# +# Args: +# show_unstable (float): Whether unstable phases will be plotted as +# well as red crosses. If a number > 0 is entered, all phases with +# ehull < show_unstable will be shown. +# show: True to show plot. +# +# Return: plotter object. +# """ +# from pymatgen.analysis.phase_diagram import PDPlotter +# plotter = PDPlotter(self.phasediagram, show_unstable=show_unstable) +# if show: +# plotter.show() +# return plotter +# +# @lazy_property +# def dataframe(self) -> pd.DataFrame: +# """Pandas dataframe with the most important results.""" +# rows = [] +# for e in self.entries: +# d = e.structure.get_dict4pandas(with_spglib=True) +# decomp, ehull = self.phasediagram.get_decomp_and_e_above_hull(e) +# +# rows.append(OrderedDict([ +# ("Materials ID", e.entry_id), +# ("spglib_symb", d["spglib_symb"]), ("spglib_num", d["spglib_num"]), +# ("Composition", e.composition.reduced_formula), +# ("Ehull", ehull), # ("Equilibrium_reaction_energy", pda.get_equilibrium_reaction_energy(e)), +# ("Decomposition", " + ".join(["%.2f %s" % (v, k.composition.formula) for k, v in decomp.items()])), +# ])) +# +# import pandas as pd +# return pd.DataFrame(rows, columns=list(rows[0].keys()) if rows else None) +# +# def print_dataframes(self, with_spglib=False, file=sys.stdout, verbose=0) -> None: +# """ +# Print pandas dataframe to file `file`. +# +# Args: +# with_spglib: True to compute spacegroup with spglib. +# file: Output stream. +# verbose: Verbosity level. +# """ +# print_dataframe(self.dataframe, file=file) +# if verbose: +# from abipy.core.structure import dataframes_from_structures +# dfs = dataframes_from_structures(self.structures, index=self.mpids, with_spglib=with_spglib) +# print_dataframe(dfs.lattice, title="Lattice parameters:", file=file) +# if verbose > 1: +# print_dataframe(dfs.coords, title="Atomic positions (columns give the site index):", file=file) class DatabaseStructures(NotebookWriter): @@ -169,9 +158,10 @@ def __init__(self, structures, ids, data=None): def __bool__(self): """bool(self)""" return bool(self.structures) + __nonzero__ = __bool__ # py2 - def filter_by_spgnum(self, spgnum): + def filter_by_spgnum(self, spgnum: int) -> MpStructures: """Filter structures by space group number. Return new MpStructures object.""" inds = [i for i, s in enumerate(self.structures) if s.get_space_group_info()[1] == int(spgnum)] new_data = None if self.data is None else [self.data[i] for i in inds] @@ -195,12 +185,12 @@ def add_entry(self, structure, entry_id, data_dict=None): return self.__class__(self.structures + [structure], self.ids + [entry_id], data=new_data) @property - def lattice_dataframe(self): + def lattice_dataframe(self) -> pd.DataFrame: """pandas DataFrame with lattice parameters.""" return self.structure_dataframes.lattice @property - def coords_dataframe(self): + def coords_dataframe(self) -> pd.DataFrame: """pandas DataFrame with atomic positions.""" return self.structure_dataframes.coords @@ -210,7 +200,7 @@ def structure_dataframes(self): from abipy.core.structure import dataframes_from_structures return dataframes_from_structures(self.structures, index=self.ids, with_spglib=True) - def print_results(self, fmt="abivars", verbose=0, file=sys.stdout): + def print_results(self, fmt="abivars", verbose=0, file=sys.stdout) -> None: """ Print pandas dataframe, structures using format `fmt`, and data to file `file`. `fmt` is automaticall set to `cif` if structure is disordered. @@ -244,7 +234,7 @@ def yield_figs(self, **kwargs): # pragma: no cover """NOP required by NotebookWriter protocol.""" yield None - def write_notebook(self, nbpath=None, title=None): + def write_notebook(self, nbpath=None, title=None) -> str: """ Write a jupyter notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -276,8 +266,10 @@ class MpStructures(DatabaseStructures): dbname = "Materials Project" @lazy_property - def dataframe(self): - """Pandas dataframe constructed from self.data. None if data is not available.""" + def dataframe(self) -> pd.DataFrame: + """ + Pandas dataframe constructed from self.data. None if data is not available. + """ if not self.data: return None import pandas as pd rows = [] @@ -317,7 +309,7 @@ class CodStructures(DatabaseStructures): dbname = "COD" @lazy_property - def dataframe(self): + def dataframe(self) -> pd.DataFrame: """ |pandas-Dataframe| constructed. Essentially geometrical info and space groups found by spglib_ as COD API is rather limited. diff --git a/abipy/core/site_symmetries.py b/abipy/core/site_symmetries.py index 289332599..6a386d1b3 100644 --- a/abipy/core/site_symmetries.py +++ b/abipy/core/site_symmetries.py @@ -1,17 +1,21 @@ """ This module provides objects related to site symmetries """ +from __future__ import annotations + import numpy as np +import pandas as pd import sympy as sp from collections import OrderedDict from monty.termcolor import cprint from abipy.core.mixins import Has_Structure +from abipy.core.structure import Structure class SiteSymmetries(Has_Structure): - def __init__(self, structure): + def __init__(self, structure: Structure): """ Args: structure: |Structure| object. @@ -69,21 +73,21 @@ def __init__(self, structure): # # isite_eq = rm1(irred_site - tau) + l0 @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation with verbosity level verbose.""" lines = []; app = lines.append app(self.structure.to_string(verbose=verbose, title="Structure")) return "\n".join(lines) - def get_wyckoff_dataframe(self, view="all", select_symbols=None, decimals=5, verbose=0): + def get_wyckoff_dataframe(self, view="all", select_symbols=None, decimals=5, verbose=0) -> pd.DataFrame: """ Find Wyckoff positions. @@ -145,11 +149,10 @@ def get_wyckoff_dataframe(self, view="all", select_symbols=None, decimals=5, ver d.update({str(k): str(v) for k, v in solutions[0].items()}) rows.append(d) - import pandas as pd df = pd.DataFrame(rows, index=None, columns=list(rows[0].keys()) if rows else None) return df - def get_tensor_rank2_dataframe(self, view="all", select_symbols=None, decimals=5, verbose=0): + def get_tensor_rank2_dataframe(self, view="all", select_symbols=None, decimals=5, verbose=0) -> pd.DataFrame: """ Use site symmetries to detect indipendent elements of rank 2 tensor. @@ -216,7 +219,7 @@ def get_tensor_rank2_dataframe(self, view="all", select_symbols=None, decimals=5 df = pd.DataFrame(rows, index=None, columns=list(rows[0].keys()) if rows else None) return df - def check_site_symmetries(self, tcart, verbose=0): + def check_site_symmetries(self, tcart, verbose=0) -> float: """ Test whether a set of tensors associated to the crystalline sites are compatible with the space group symmetries. diff --git a/abipy/core/skw.py b/abipy/core/skw.py index 45ad8968b..321411fb5 100644 --- a/abipy/core/skw.py +++ b/abipy/core/skw.py @@ -3,6 +3,8 @@ Shankland-Koelling-Wood Fourier interpolation scheme. For the theoretical background see :cite:`Euwema1969,Koelling1986,Pickett1988,Madsen2006`. """ +from __future__ import annotations + import abc import itertools import pickle @@ -11,6 +13,7 @@ import time from collections import deque, OrderedDict +#from typing import from monty.termcolor import cprint from monty.collections import dict2namedtuple from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt @@ -36,12 +39,12 @@ class ElectronInterpolator(metaclass=abc.ABCMeta): use_cache = True @classmethod - def pickle_load(cls, filepath): + def pickle_load(cls, filepath: str): """Loads the object from a pickle file.""" with open(filepath, "rb") as fh: return pickle.load(fh) - def pickle_dump(self, filepath): + def pickle_dump(self, filepath: str) -> None: """Save the status of the object in pickle format.""" with open(filepath, "wb") as fh: pickle.dump(self, fh) @@ -70,7 +73,7 @@ def get_sampling(self, mesh, is_shift): is_shift=is_shift, is_time_reversal=self.has_timrev, symprec=self.symprec) uniq, weights = np.unique(mapping, return_counts=True) - weights = np.asarray(weights, dtype=np.float) / len(grid) + weights = np.asarray(weights, dtype=float) / len(grid) nkibz = len(uniq) ibz = grid[uniq] / mesh if self.verbose: @@ -80,12 +83,12 @@ def get_sampling(self, mesh, is_shift): bz = (grid + kshift) / mesh # All k-points and mapping to ir-grid points - bz2ibz = np.empty(len(bz), dtype=np.int) + bz2ibz = np.empty(len(bz), dtype=int) for i, (ir_gp_id, gp) in enumerate(zip(mapping, grid)): inds = np.where(uniq == ir_gp_id) #print("inds", inds, "inds[0]", inds[0]) assert len(inds) == 1 - bz2ibz[i] = inds[0] + bz2ibz[i] = int(inds[0]) #print("%3d ->%3d %s" % (i, ir_gp_id, (gp + [0.5, 0.5, 0.5]) / mesh)) #print("%3d ->%3d %s" % (i, ir_gp_id, (gp + kshift) / mesh)) @@ -105,7 +108,7 @@ def get_sampling(self, mesh, is_shift): # return self.fermie @property - def val_ib(self): + def val_ib(self) -> int: """The index of the valence band.""" if self.occtype != "insulator": print("Trying to access valence band index with occtype:", self.occtype) @@ -214,7 +217,12 @@ def get_edos(self, kmesh, is_shift=None, method="gaussian", step=0.1, width=0.2, values[spin] += wtk * gaussian(wmesh, width, center=eigens[spin, ik, band]) # Compute IDOS - integral = scipy.integrate.cumtrapz(values, x=wmesh, initial=0.0) + try : + from scipy.integrate import cumulative_trapezoid as cumtrapz + except ImportError: + from scipy.integrate import cumtrapz + + integral = cumtrapz(values, x=wmesh, initial=0.0) else: raise ValueError("Method %s is not supported" % method) @@ -453,7 +461,7 @@ def plot_dos_vs_kmeshes(self, kmeshes, is_shift=None, method="gaussian", step=0. """ ax, fig, plt = get_ax_fig_plt(ax=ax) - kmeshes = np.reshape(np.asarray(kmeshes, dtype=np.int), (-1, 3)) + kmeshes = np.reshape(np.asarray(kmeshes, dtype=int), (-1, 3)) for kmesh in kmeshes: edos = self.get_edos(kmesh, is_shift=is_shift, method=method, step=step, width=width) for spin in range(self.nsppol): @@ -487,7 +495,7 @@ def plot_dos_vs_kmeshes(self, kmeshes, is_shift=None, method="gaussian", step=0. # Returns: |matplotlib-Figure| # """ # ax, fig, plt = get_ax_fig_plt(ax=ax) - # kmeshes = np.reshape(np.asarray(kmeshes, dtype=np.int), (-1, 3)) + # kmeshes = np.reshape(np.asarray(kmeshes, dtype=int), (-1, 3)) # for kmesh in kmeshes: # jdos = self.get_jdos_q0(kmesh, is_shift=is_shift, method=method, step=step, width=width) # for spin in range(self.nsppol): @@ -560,7 +568,7 @@ def plot_dos_vs_kmeshes(self, kmeshes, is_shift=None, method="gaussian", step=0. # ax, fig, plt = get_ax_fig_plt(ax=ax) # qpoints = self._get_kpts_kticks_klabels(ax, qvertices_names, line_density) - # kmeshes = np.reshape(np.asarray(kmeshes, dtype=np.int), (-1, 3)) + # kmeshes = np.reshape(np.asarray(kmeshes, dtype=int), (-1, 3)) # e0 = self.interpolated_fermie if e0 is None else e0 # for kmesh in kmeshes: # nest_sq = self.get_nesting_at_e0(qpoints, kmesh, e0, width=width, is_shift=is_shift) @@ -714,13 +722,6 @@ class SkwInterpolator(ElectronInterpolator): the names of the variables are chosen assuming we are interpolating electronic eigenvalues but the same object can be used to interpolate other quantities. Just set the first dimension to 1. """ - #@class method - #def from_ncreader(cls, reader): - # return cls(lpratio, kpts, eigens, fermie, nelect, cell, symrel, has_timrev, - # filter_params=None, verbose=1) - - #@class method - #def from_file(cls, filepath) def __init__(self, lpratio, kpts, eigens, fermie, nelect, cell, symrel, has_timrev, filter_params=None, verbose=1): @@ -779,8 +780,8 @@ def __init__(self, lpratio, kpts, eigens, fermie, nelect, cell, symrel, has_timr nrwant = lpratio * self.nkpt fact = 1/2 if has_inversion else 1 - rmax = int((1.0 + (lpratio * self.nkpt * self.ptg_nsym * fact) / 2.0) ** (1/3.)) * np.ones(3, dtype=np.int) - #rmax = int((1.0 + (lpratio * self.nkpt) / 2.0) ** (1/3.)) * np.ones(3, dtype=np.int) + rmax = int((1.0 + (lpratio * self.nkpt * self.ptg_nsym * fact) / 2.0) ** (1/3.)) * np.ones(3, dtype=int) + #rmax = int((1.0 + (lpratio * self.nkpt) / 2.0) ** (1/3.)) * np.ones(3, dtype=int) while True: self.rpts, r2vals, ok = self._find_rstar_gen(nrwant, rmax) @@ -801,12 +802,12 @@ def __init__(self, lpratio, kpts, eigens, fermie, nelect, cell, symrel, has_timr # Construct star functions for the ab-initio k-points. nsppol, nband, nkpt, nr = self.nsppol, self.nband, self.nkpt, self.nr - self.skr = np.empty((nkpt, nr), dtype=np.complex) + self.skr = np.empty((nkpt, nr), dtype=complex) for ik, kpt in enumerate(kpts): self.skr[ik] = self.get_stark(kpt) # Build H(k,k') matrix (Hermitian) - hmat = np.empty((nkpt-1, nkpt-1), dtype=np.complex) + hmat = np.empty((nkpt-1, nkpt-1), dtype=complex) for jk in range(nkpt-1): v_jkr = self.skr[jk, 1:] - self.skr[nkpt-1, 1:] #for ik in range(jk + 1): @@ -816,7 +817,7 @@ def __init__(self, lpratio, kpts, eigens, fermie, nelect, cell, symrel, has_timr if ik == jk: hmat[ik, jk] = hmat[ik, jk].real # Solving system of linear equations to get lambda coeffients (eq. 10 of PRB 38 2721)..." - de_kbs = np.empty((nkpt-1, nband, nsppol), dtype=np.complex) + de_kbs = np.empty((nkpt-1, nband, nsppol), dtype=complex) for spin in range(nsppol): for ib in range(nband): de_kbs[:, ib, spin] = eigens[spin, 0:nkpt-1, ib] - eigens[spin, nkpt-1, ib] @@ -842,7 +843,7 @@ def __init__(self, lpratio, kpts, eigens, fermie, nelect, cell, symrel, has_timr lmb_kbs = np.reshape(lmb_kbs, (-1, nband, nsppol)) # Compute coefficients. - self.coefs = np.empty((nsppol, nband, nr), dtype=np.complex) + self.coefs = np.empty((nsppol, nband, nr), dtype=complex) for spin in range(nsppol): for ib in range(nband): for ir in range(1, nr): @@ -889,15 +890,15 @@ def __init__(self, lpratio, kpts, eigens, fermie, nelect, cell, symrel, has_timr cprint("FIT vs input data: Mean Absolute Error= %.3e (meV)" % mae, color="red" if warn else "green") if warn: # Issue warning if error too large. - cprint("Large error in SKW interpolation!", "red") - cprint("MAE:", mae, "[meV]", "red") + cprint("Large error in SKW interpolation!", color="red") + cprint(f"MAE: {mae} [meV]", color="red") self.mae = mae def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = [] app = lines.append @@ -911,7 +912,7 @@ def to_string(self, verbose=0): return "\n".join(lines) - def eval_sk(self, spin, kpt, der1=None, der2=None): + def eval_sk(self, spin, kpt, der1=None, der2=None) -> np.ndarray: """ Interpolate eigenvalues for all bands at a given (spin, k-point). Optionally compute gradients and Hessian matrices. @@ -992,7 +993,7 @@ def eval_sk(self, spin, kpt, der1=None, der2=None): # return oeig, der1, der2 - def get_stark(self, kpt): + def get_stark(self, kpt) -> np.ndarray: """ Return the star function for k-point `kpt`. @@ -1003,7 +1004,7 @@ def get_stark(self, kpt): complex array of shape [self.nr] """ two_pi = 2.0 * np.pi - skr = np.zeros(self.nr, dtype=np.complex) + skr = np.zeros(self.nr, dtype=complex) _np_exp = np.exp for omat in self.ptg_symrel: sk = two_pi * np.matmul(omat.T, kpt) @@ -1012,7 +1013,7 @@ def get_stark(self, kpt): return skr - def get_stark_dk1(self, kpt): + def get_stark_dk1(self, kpt) -> np.ndarray: """ Compute the 1st-order derivative of the star function wrt k @@ -1023,7 +1024,7 @@ def get_stark_dk1(self, kpt): complex array [3, self.nr] with the derivative of the star function wrt k in reduced coordinates. """ - srk_dk1 = np.zeros((3, self.nr), dtype=np.complex) + srk_dk1 = np.zeros((3, self.nr), dtype=complex) two_pi = 2.0 * np.pi rpts_t = self.rpts.T @@ -1038,7 +1039,7 @@ def get_stark_dk1(self, kpt): srk_dk1 *= 1.j / self.ptg_nsym return srk_dk1 - def get_stark_dk2(self, kpt): + def get_stark_dk2(self, kpt) -> np.ndarray: """ Compute the 2nd-order derivatives of the star function wrt k. @@ -1049,7 +1050,7 @@ def get_stark_dk2(self, kpt): Complex numpy array of shape [3, 3, self.nr] with the 2nd-order derivatives of the star function wrt k in reduced coordinates. """ - srk_dk2 = np.zeros((3, 3, self.nr), dtype=np.complex) + srk_dk2 = np.zeros((3, 3, self.nr), dtype=complex) raise NotImplementedError() #work = zero #do isym=1,self.ptg_nsym @@ -1088,7 +1089,7 @@ def get_stark_dk2(self, kpt): # return results - def _find_rstar_gen(self, nrwant, rmax): + def _find_rstar_gen(self, nrwant, rmax) -> tuple: """ Find all lattice points generating the stars inside the supercell defined by `rmax` @@ -1100,7 +1101,7 @@ def _find_rstar_gen(self, nrwant, rmax): tuple: (rpts, r2vals, ok) """ msize = (2 * rmax + 1).prod() - rtmp = np.empty((msize, 3), dtype=np.int) + rtmp = np.empty((msize, 3), dtype=int) r2tmp = np.empty(msize) if self.verbose: print("rmax", rmax, "msize:", msize) @@ -1121,14 +1122,14 @@ def _find_rstar_gen(self, nrwant, rmax): #return rtmp, r2tmp, True # Find shells - r2sh = np.empty(msize, dtype=np.int) # Correspondence between R and shell index. - shlim = np.empty(msize, dtype=np.int) # For each shell, the index of the initial G-vector. + r2sh = np.empty(msize, dtype=int) # Correspondence between R and shell index. + shlim = np.empty(msize, dtype=int) # For each shell, the index of the initial G-vector. nsh = 1 r2sh[0] = 0 shlim[0] = 0 r2_prev = 0.0 for ir in range(1, msize): - if (abs(r2tmp[ir] - r2_prev) > r2tmp[ir] * 1e-8): + if abs(r2tmp[ir] - r2_prev) > r2tmp[ir] * 1e-8: r2_prev = r2tmp[ir] shlim[nsh] = ir nsh += 1 @@ -1173,7 +1174,7 @@ def _find_rstar_gen(self, nrwant, rmax): if self.verbose: print("stars", time.time() - start) start = time.time() - rgen = np.array(rgen, dtype=np.int) + rgen = np.array(rgen, dtype=int) nstars = len(rgen) # Store rpts and compute ||R||**2. @@ -1195,7 +1196,7 @@ def _find_rstar_gen(self, nrwant, rmax): return rpts, r2vals, ok -def extract_point_group(symrel, has_timrev): +def extract_point_group(symrel, has_timrev) -> tuple: """ Extract the point group rotations from the spacegroup. Add time-reversal if spatial inversion is not present and `has_timrev`. @@ -1205,7 +1206,7 @@ def extract_point_group(symrel, has_timrev): """ nsym = len(symrel) tmp_nsym = 1 - work_symrel = np.empty((2*nsym, 3, 3), dtype=np.int) + work_symrel = np.empty((2*nsym, 3, 3), dtype=int) work_symrel[0] = symrel[0] for isym in range(1, nsym): @@ -1214,13 +1215,13 @@ def extract_point_group(symrel, has_timrev): work_symrel[tmp_nsym] = symrel[isym] tmp_nsym += 1 - inversion_3d = -np.eye(3, dtype=np.int) + inversion_3d = -np.eye(3, dtype=int) has_inversion = any(np.all(w == inversion_3d) for w in work_symrel[:tmp_nsym]) # Now we know the symmetries of the point group. ptg_nsym = 2 * tmp_nsym if not has_inversion and has_timrev else tmp_nsym - ptg_symrel = np.empty((ptg_nsym, 3, 3), dtype=np.int) - ptg_symrec = np.empty((ptg_nsym, 3, 3), dtype=np.int) + ptg_symrel = np.empty((ptg_nsym, 3, 3), dtype=int) + ptg_symrec = np.empty((ptg_nsym, 3, 3), dtype=int) ptg_symrel[:tmp_nsym] = work_symrel[:tmp_nsym] for isym in range(tmp_nsym): diff --git a/abipy/core/structure.py b/abipy/core/structure.py index a96d1718f..7233114e2 100644 --- a/abipy/core/structure.py +++ b/abipy/core/structure.py @@ -2,31 +2,34 @@ """ This module defines basic objects representing the crystalline structure. """ +from __future__ import annotations + import sys import os import collections import tempfile import numpy as np +import pandas as pd import pickle -import pymatgen import pymatgen.core.units as pmg_units from pprint import pformat -from warnings import warn from collections import OrderedDict +from typing import Any from monty.collections import AttrDict, dict2namedtuple from monty.functools import lazy_property from monty.string import is_string, marquee, list_strings from monty.termcolor import cprint +#from monty.dev import deprecated +from pymatgen.core.structure import Structure as pmg_Structure from pymatgen.core.sites import PeriodicSite from pymatgen.core.lattice import Lattice from pymatgen.symmetry.analyzer import SpacegroupAnalyzer -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt -from abipy.flowtk import PseudoTable from abipy.core.mixins import NotebookWriter from abipy.core.symmetries import AbinitSpaceGroup +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, add_plotly_fig_kwargs from abipy.iotools import as_etsfreader, Visualizer -from abipy.flowtk.abiobjects import structure_from_abivars, structure_to_abivars +from abipy.tools.typing import Figure __all__ = [ @@ -38,14 +41,12 @@ ] -def mp_match_structure(obj, api_key=None, endpoint=None, final=True): +def mp_match_structure(obj): """ Finds matching structures on the Materials Project database. Args: obj: filename or |Structure| object. - api_key (str): A String API key for accessing the MaterialsProject REST interface. - endpoint (str): Url of endpoint to access the MaterialsProject REST interface. final (bool): Whether to get the final structure, or the initial (pre-relaxation) structure. Defaults to True. @@ -55,18 +56,20 @@ def mp_match_structure(obj, api_key=None, endpoint=None, final=True): """ structure = Structure.as_structure(obj) # Must use pymatgen structure else server does not know how to handle the JSON doc. - structure.__class__ = pymatgen.Structure + structure.__class__ = pmg_Structure from abipy.core import restapi - structures = [] - with restapi.get_mprester(api_key=api_key, endpoint=endpoint) as rest: + structures, mpids = [], [] + with restapi.get_mprester() as rest: try: + if getattr(rest, "get_data") is None: + raise RuntimeError("mp_match_structure requires mp-api, please install it with `pip install mp-api`") + mpids = rest.find_structure(structure) if mpids: - structures = [Structure.from_mpid(mid, final=final, api_key=api_key, endpoint=endpoint) - for mid in mpids] + structures = [Structure.from_mpid(mid) for mid in mpids] - except rest.Error as exc: + except Exception as exc: cprint(str(exc), "red") finally: @@ -77,7 +80,7 @@ def mp_match_structure(obj, api_key=None, endpoint=None, final=True): return restapi.MpStructures(structures=structures, ids=mpids) -def mp_search(chemsys_formula_id, api_key=None, endpoint=None): +def mp_search(chemsys_formula_id): """ Connect to the materials project database. Get a list of structures corresponding to a chemical system, formula, or materials_id. @@ -85,32 +88,32 @@ def mp_search(chemsys_formula_id, api_key=None, endpoint=None): Args: chemsys_formula_id (str): A chemical system (e.g., Li-Fe-O), or formula (e.g., Fe2O3) or materials_id (e.g., mp-1234). - api_key (str): A String API key for accessing the MaterialsProject REST interface. - If this is None, the code will check if there is a `PMG_MAPI_KEY` in your .pmgrc.yaml. - endpoint (str): Url of endpoint to access the MaterialsProject REST interface. Returns: :class:`MpStructures` object with List of Structure objects, Materials project ids associated to structures. and List of dictionaries with MP data (same order as structures). - Note that the attributes evalute to False if no match is found + Note that the attributes evalute to False if no match is found. """ chemsys_formula_id = chemsys_formula_id.replace(" ", "") structures, mpids, data = [], [], None from abipy.core import restapi - with restapi.get_mprester(api_key=api_key, endpoint=endpoint) as rest: + from pymatgen.ext.matproj import MPRestError + with restapi.get_mprester() as rest: try: + if getattr(rest, "get_data") is None: + raise RuntimeError("mp_search requires mp-api, please install it with `pip install mp-api`") + data = rest.get_data(chemsys_formula_id, prop="") if data: - structures = [Structure.from_str(d["cif"], fmt="cif", primitive=False, sort=False) - for d in data] + structures = [Structure.from_str(d["cif"], fmt="cif", primitive=False, sort=False) for d in data] mpids = [d["material_id"] for d in data] # Want AbiPy structure. structures = list(map(Structure.as_structure, structures)) - except rest.Error as exc: + except MPRestError: cprint(str(exc), "magenta") return restapi.MpStructures(structures, mpids, data=data) @@ -144,20 +147,78 @@ def cod_search(formula, primitive=False): return restapi.CodStructures(structures, cod_ids, data=data) -class Structure(pymatgen.Structure, NotebookWriter): +def display_structure(obj, **kwargs): """ - Extends :class:`pymatgen.core.structure.Structure` with Abinit-specific methods. + Use Jsmol to display a structure in the jupyter notebook. + Requires `nbjsmol` notebook extension installed on the local machine. + Install it with `pip install nbjsmol`. See also https://github.com/gmatteo/nbjsmol. + + Args: + obj: Structure object or file with a structure or python object with a `structure` attribute. + kwargs: Keyword arguments passed to `nbjsmol_display` + """ + try: + from nbjsmol import nbjsmol_display + except ImportError as exc: + raise ImportError(str(exc) + + "\ndisplay structure requires nbjsmol package\n." + "Install it with `pip install nbjsmol.`\n" + "See also https://github.com/gmatteo/nbjsmol.") + + # Cast to structure, get string with cif data and pass it to nbjsmol. + structure = Structure.as_structure(obj) + return nbjsmol_display(structure.to(fmt="cif"), ext=".cif", **kwargs) - A jupyter_ notebook documenting the usage of this object is available at - - For the pymatgen project see :cite:`Ong2013`. +def get_structures_from_file(filepath: PathLike, index) -> list[Structure]: + """ + """ + #if index is None: + # index = -1 + + if filepath.endswith(".traj"): + # ASE trajectory file. + from ase.atoms import Atoms + from ase.io import read + atoms_list = read(filepath, index=index) + if not isinstance(atoms_list, list): + assert isinstance(atoms_list, Atoms) + atoms_list = [atoms_list] + + # TODO: HIST.nc and XDATCAR + #elif filepath.endswith("_HIST.nc"): + # from abipy.dynamics.hist import HistFile + # with HistFile(filepath) as hist: + # return hist.read_structures(index) + + #elif filepath.endswith("XDATCAR"): + + else: + raise NotImplementedError(f"Don't know how to extract structures with index from {filepath=}") + + return [Structure.as_structure(atoms) for atoms in atoms_list] + + +def get_first_and_last_structure_from_file(filepath: PathLike) -> tuple[Structure]: + """ + Helper function to read the first and the last structure from a trajectory file. + Simplified wrapper around get_structures_from_file. + """ + first_structure = get_structures_from_file(filepath, index=0)[0] + last_structure = get_structures_from_file(filepath, index=-1)[0] + return first_structure, last_structure + + +class Structure(pmg_Structure, NotebookWriter): + """ + Extends :class:`pymatgen.core.structure.Structure` with Abinit-specific methods. .. rubric:: Inheritance Diagram .. inheritance-diagram:: Structure """ + @classmethod - def as_structure(cls, obj): + def as_structure(cls, obj: Any) -> Structure: """ Convert obj into a |Structure|. Accepts: @@ -165,12 +226,24 @@ def as_structure(cls, obj): - Filename - Dictionaries (JSON_ format or dictionaries with abinit variables). - Objects with a ``structure`` attribute. + - ASE atoms. """ - if isinstance(obj, cls): return obj - if isinstance(obj, pymatgen.Structure): + if isinstance(obj, cls): + return obj + + if isinstance(obj, pmg_Structure): obj.__class__ = cls return obj + if hasattr(obj, "ase_objtype"): + # ASE Atoms. + from pymatgen.io.ase import AseAtomsAdaptor + return AseAtomsAdaptor.get_structure(obj, cls=cls) + + if hasattr(obj, "atoms") and hasattr(obj.atoms, "ase_objtype"): + # Handle ASE constraints e.g. ExpCellFilter. Note recursive call + return Structure.as_structure(obj.atoms) + if is_string(obj): return cls.from_file(obj) @@ -182,6 +255,7 @@ def as_structure(cls, obj): if hasattr(obj, "structure"): return cls.as_structure(obj.structure) + elif hasattr(obj, "final_structure"): # This for HIST.nc file return cls.as_structure(obj.final_structure) @@ -189,7 +263,7 @@ def as_structure(cls, obj): raise TypeError("Don't know how to convert %s into a structure" % type(obj)) @classmethod - def from_file(cls, filepath, primitive=False, sort=False): + def from_file(cls, filepath: str, primitive: bool = False, sort: bool = False) -> Structure: """ Reads a structure from a file. For example, anything ending in a "cif" is assumed to be a Crystallographic Information Format file. @@ -209,7 +283,6 @@ def from_file(cls, filepath, primitive=False, sort=False): Returns: |Structure| object """ - #zipped_exts = (".bz2", ".gz", ".z"): root, ext = os.path.splitext(filepath) if filepath.endswith("_HIST.nc"): @@ -224,7 +297,9 @@ def from_file(cls, filepath, primitive=False, sort=False): ncfile, closeit = as_etsfreader(filepath) new = ncfile.read_structure(cls=cls) - new.set_abi_spacegroup(AbinitSpaceGroup.from_ncreader(ncfile)) + + if "space_group" in ncfile.rootgrp.variables: + new.set_abi_spacegroup(AbinitSpaceGroup.from_ncreader(ncfile)) # Try to read indsym table from file (added in 8.9.x) indsym = ncfile.read_value("indsym", default=None) @@ -236,23 +311,27 @@ def from_file(cls, filepath, primitive=False, sort=False): if closeit: ncfile.close() elif filepath.endswith(".abi") or filepath.endswith(".in"): - # Abinit input file. - # Here I assume that the input file contains a single structure. + # Abinit input file. Here I assume that the input file contains a single structure. from abipy.abio.abivars import AbinitInputFile return AbinitInputFile.from_file(filepath).structure elif filepath.endswith(".abo") or filepath.endswith(".out"): # Abinit output file. We can have multi-datasets and multiple initial/final structures! - # By desing, we return the last structure if out is completed else the initial one. + # By design, we return the last structure if out is completed else the initial one. # None is returned if the structures are different. from abipy.abio.outputs import AbinitOutputFile with AbinitOutputFile(filepath) as out: #print("initial_structures:\n", out.initial_structures, "\nfinal_structures:\n", out.final_structures) if out.final_structures: return out.final_structure if out.initial_structures: return out.initial_structure + raise ValueError("Cannot find structure in Abinit output file `%s`" % filepath) - elif filepath.endswith("_DDB") or root.endswith("_DDB"): + elif filepath.endswith(".abivars") or filepath.endswith(".ucell"): + with open(filepath, "rt") as fh: + return cls.from_abistring(fh.read()) + + elif filepath.endswith("_DDB") or root.endswith("_DDB") or filepath.endswith(".ddb"): # DDB file. from abipy.abilab import abiopen with abiopen(filepath) as abifile: @@ -262,26 +341,33 @@ def from_file(cls, filepath, primitive=False, sort=False): # From pickle. with open(filepath, "rb") as fh: new = pickle.load(fh) - if not isinstance(new, pymatgen.Structure): + if not isinstance(new, pmg_Structure): # Is it a object with a structure property? if hasattr(new, "structure"): new = new.structure - if not isinstance(new, pymatgen.Structure): + if not isinstance(new, pmg_Structure): raise TypeError("Don't know how to extract a Structure from file %s, received type %s" % (filepath, type(new))) if new.__class__ != cls: new.__class__ = cls + elif filepath.endswith(".xyz"): + # ASE extended xyz format. + try: + from ase.io import read + except ImportError as exc: + raise RuntimeError("ase is required to read xyz files. Use `pip install ase`") from exc + return cls.as_structure(read(filepath)) + else: - # Invoke pymatgen and change class - # Note that AbinitSpacegroup is missing here. + # Invoke pymatgen and change class. Note that AbinitSpacegroup is missing here. new = super().from_file(filepath, primitive=primitive, sort=sort) if new.__class__ != cls: new.__class__ = cls return new @classmethod - def from_mpid(cls, material_id, final=True, api_key=None, endpoint=None): + def from_mpid(cls, material_id: str) -> Structure: """ Get a Structure corresponding to a material_id. @@ -289,32 +375,28 @@ def from_mpid(cls, material_id, final=True, api_key=None, endpoint=None): material_id (str): Materials Project material_id (a string, e.g., mp-1234). final (bool): Whether to get the final structure, or the initial (pre-relaxation) structure. Defaults to True. - api_key (str): A String API key for accessing the MaterialsProject - REST interface. Please apply on the Materials Project website for one. - If this is None, the code will check if there is a ``PMG_MAPI_KEY`` in your .pmgrc.yaml. - If so, it will use that environment - This makes easier for heavy users to simply add this environment variable - to their setups and MPRester can then be called without any arguments. - endpoint (str): Url of endpoint to access the MaterialsProject REST interface. - Defaults to the standard Materials Project REST address, but - can be changed to other urls implementing a similar interface. Returns: |Structure| object. """ + material_id = str(material_id) + if not material_id.startswith("mp-"): + raise ValueError("Materials project ID should start with mp-") + # Get pytmatgen structure and convert it to abipy structure from abipy.core import restapi - with restapi.get_mprester(api_key=api_key, endpoint=endpoint) as rest: - new = rest.get_structure_by_material_id(material_id, final=final) + with restapi.get_mprester() as rest: + new = rest.get_structure_by_material_id(material_id) return cls.as_structure(new) @classmethod - def from_cod_id(cls, cod_id, primitive=False, **kwargs): + def from_cod_id(cls, cod_id: int, primitive: bool = False, **kwargs) -> Structure: """ - Queries the COD_ for a structure by id. Returns |Structure| object. + Queries the COD_ database for a structure by id. Returns |Structure| object. Args: cod_id (int): COD id. - primitive (bool): True if primitive structures are wanted. Note that many COD structures are not primitive. + primitive (bool): True if primitive structures are wanted. + Note that many COD structures are not primitive. kwargs: Arguments passed to ``get_structure_by_id`` Returns: |Structure| object. @@ -325,47 +407,61 @@ def from_cod_id(cls, cod_id, primitive=False, **kwargs): return cls.as_structure(new) @classmethod - def from_ase_atoms(cls, atoms): + def from_ase_atoms(cls, atoms) -> Structure: """ Returns structure from ASE Atoms. Args: atoms: ASE Atoms object - - Returns: - Equivalent Structure """ import pymatgen.io.ase as aio return aio.AseAtomsAdaptor.get_structure(atoms, cls=cls) - def to_ase_atoms(self): + # FIXME: Temporary workaround to maintain compatbility with old pymatgen versions. + # m_elems was added in v2024.7.18 + @property + def n_elems(self) -> int: + """Number of types of atoms.""" + return len(self.types_of_species) + + def to_ase_atoms(self, calc=None): """ - Returns ASE_ Atoms object from structure. + Returns ASE Atoms object from structure and attach calculator calc. """ import pymatgen.io.ase as aio - return aio.AseAtomsAdaptor.get_atoms(self) + atoms = aio.AseAtomsAdaptor.get_atoms(self) + if calc is not None: atoms.calc = calc + return atoms + + def get_phonopy_atoms(self): + """ + Convert a pymatgen Structure object to a PhonopyAtoms object. + """ + from pymatgen.io.phonopy import get_phonopy_structure + return get_phonopy_structure(self) @classmethod - def boxed_molecule(cls, pseudos, cart_coords, acell=3*(10,)): + def boxed_molecule(cls, pseudos, cart_coords, acell=3 * (10,)) -> Structure: """ - Creates a molecule in a periodic box of lengths acell [Bohr] + Creates a molecule in a periodic box of lengths acell in Bohr. Args: pseudos: List of pseudopotentials cart_coords: Cartesian coordinates acell: Lengths of the box in *Bohr* """ + from pymatgen.core.structure import Molecule cart_coords = np.atleast_2d(cart_coords) - molecule = pymatgen.Molecule([p.symbol for p in pseudos], cart_coords) + molecule = Molecule([p.symbol for p in pseudos], cart_coords) l = pmg_units.ArrayWithUnit(acell, "bohr").to("ang") new = molecule.get_boxed_structure(l[0], l[1], l[2]) return cls.as_structure(new) @classmethod - def boxed_atom(cls, pseudo, cart_coords=3*(0,), acell=3*(10,)): + def boxed_atom(cls, pseudo, cart_coords=3*(0,), acell=3*(10,)) -> Structure: """ - Creates an atom in a periodic box of lengths acell [Bohr] + Creates an atom in a periodic box of lengths acell in Bohr. Args: pseudo: Pseudopotential object. @@ -375,7 +471,7 @@ def boxed_atom(cls, pseudo, cart_coords=3*(0,), acell=3*(10,)): return cls.boxed_molecule([pseudo], cart_coords, acell=acell) @classmethod - def bcc(cls, a, species, primitive=True, units="ang", **kwargs): + def bcc(cls, a, species, primitive=True, units="ang", **kwargs) -> Structure: """ Build a primitive or a conventional bcc crystal structure. @@ -404,7 +500,7 @@ def bcc(cls, a, species, primitive=True, units="ang", **kwargs): return cls(lattice, species, coords=coords, **kwargs) @classmethod - def fcc(cls, a, species, primitive=True, units="ang", **kwargs): + def fcc(cls, a: float, species, primitive=True, units="ang", **kwargs) -> Structure: """ Build a primitive or a conventional fcc crystal structure. @@ -433,7 +529,7 @@ def fcc(cls, a, species, primitive=True, units="ang", **kwargs): return cls(lattice, species, coords=coords, **kwargs) @classmethod - def zincblende(cls, a, species, units="ang", **kwargs): + def zincblende(cls, a, species, units="ang", **kwargs) -> Structure: """ Build a primitive zincblende crystal structure. @@ -444,9 +540,7 @@ def zincblende(cls, a, species, units="ang", **kwargs): kwargs: All keyword arguments accepted by :class:`pymatgen.Structure` Example:: - Structure.zincblende(a, ["Zn", "S"]) - """ a = pmg_units.Length(a, units).to("ang") lattice = 0.5 * float(a) * np.array([ @@ -458,7 +552,7 @@ def zincblende(cls, a, species, units="ang", **kwargs): return cls(lattice, species, frac_coords, coords_are_cartesian=False, **kwargs) @classmethod - def rocksalt(cls, a, species, units="ang", **kwargs): + def rocksalt(cls, a, species, units="ang", **kwargs) -> Structure: """ Build a primitive fcc crystal structure. @@ -469,9 +563,7 @@ def rocksalt(cls, a, species, units="ang", **kwargs): kwargs: All keyword arguments accepted by :class:`pymatgen.Structure` Example:: - Structure.rocksalt(a, ["Na", "Cl"]) - """ a = pmg_units.Length(a, units).to("ang") lattice = 0.5 * float(a) * np.array([ @@ -483,7 +575,7 @@ def rocksalt(cls, a, species, units="ang", **kwargs): return cls(lattice, species, frac_coords, coords_are_cartesian=False, **kwargs) @classmethod - def ABO3(cls, a, species, units="ang", **kwargs): + def ABO3(cls, a, species, units="ang", **kwargs) -> Structure: """ Peroviskite structures. @@ -506,13 +598,19 @@ def ABO3(cls, a, species, units="ang", **kwargs): return cls(lattice, species, frac_coords, coords_are_cartesian=False, **kwargs) @classmethod - def from_abistring(cls, string): - """Initialize Structure from string with Abinit input variables.""" - from abipy.abio.abivars import AbinitInputFile - return AbinitInputFile.from_string(string).structure + def from_abistring(cls, string: str) -> Structure: + """ + Initialize Structure from a string with Abinit input variables. + """ + from abipy.abio.abivars import AbinitInputFile, structure_from_abistruct_fmt + if "xred_symbols" not in string: + # Standard (verbose) input file with znucl, typat etc. + return AbinitInputFile.from_string(string).structure + else: + return structure_from_abistruct_fmt(string) @classmethod - def from_abivars(cls, *args, **kwargs): + def from_abivars(cls, *args, **kwargs) -> Structure: """ Build a |Structure| object from a dictionary with ABINIT variables. @@ -531,13 +629,35 @@ def from_abivars(cls, *args, **kwargs): ``xred`` can be replaced with ``xcart`` or ``xangst``. """ + from abipy.flowtk.abiobjects import structure_from_abivars return structure_from_abivars(cls, *args, **kwargs) - def __str__(self): + @property + def species_by_znucl(self): + """ + Return list of unique species found in the structure **ordered according to sites**. + + Example: + + Site0: 0.5 0 0 O + Site1: 0 0 0 Si + + produces [Specie_O, Specie_Si] and not set([Specie_O, Specie_Si]) as in `types_of_specie`. + + Important:: We call this method `species_by_znucl` but this does not mean that the list can automagically + reproduce the value of `znucl(ntypat)` specified in an **arbitrary** ABINIT input file created by the user. + This array is ordered as the znucl list produced by AbiPy when writing the structure to the input file. + """ + from abipy.flowtk.abiobjects import species_by_znucl + return species_by_znucl(self) + + def __str__(self) -> str: return self.to_string() - def to_string(self, title=None, verbose=0): - """String representation.""" + def to_string(self, title=None, verbose=0) -> str: + """ + String representation. Extends the implementation of the superclass. + """ lines = []; app = lines.append if title is not None: app(marquee(title, mark="=")) if verbose: @@ -545,13 +665,17 @@ def to_string(self, title=None, verbose=0): else: app(super().__str__()) + if verbose > 1: + for i, vec in enumerate(self.lattice.matrix): + app("a_%d: %.8f %.8f %.8f" % (i + 1, vec[0], vec[1], vec[2])) + if self.abi_spacegroup is not None: app("\nAbinit Spacegroup: %s" % self.abi_spacegroup.to_string(verbose=verbose)) return "\n".join(lines) def to(self, fmt=None, filename=None, **kwargs): - __doc__ = pymatgen.Structure.to.__doc__ + \ + __doc__ = pmg_Structure.to.__doc__ + \ "\n Accepts also fmt=`abinit` or `abivars` or `.abi` as Abinit input file extension" filename = filename or "" @@ -567,7 +691,40 @@ def to(self, fmt=None, filename=None, **kwargs): else: return super().to(fmt=fmt, filename=filename, **kwargs) - def __mul__(self, scaling_matrix): + def mp_match(self, **kwargs): + """ + Finds matching structures on the Materials Project database. + Just a wrapper around mp_match_structure. + """ + return mp_match_structure(self, **kwargs) + + def write_cif_with_spglib_symms(self, filename, symprec=1e-3, angle_tolerance=5.0, + significant_figures=8, + ret_string=False): + """ + Write CIF file with symmetries as detected by spglib. + + Args: + symprec (float): If not none, finds the symmetry of the structure + and writes the cif with symmetry information. Passes symprec + to the SpacegroupAnalyzer. + significant_figures (int): Specifies precision for formatting of floats. Defaults to 8. + angle_tolerance (float): Angle tolerance for symmetry finding. Passes + angle_tolerance to the SpacegroupAnalyzer. Used only if symprec is not None. + ret_string: True to return string. + """ + from pymatgen.io.cif import CifWriter + cif_str = str(CifWriter(self, + symprec=symprec, significant_figures=significant_figures, angle_tolerance=angle_tolerance, + refine_struct=False)) + + if not ret_string: + with open(filename, "wt") as fh: + fh.write(cif_str) + else: + return cif_str + + def __mul__(self, scaling_matrix) -> Structure: """ Makes a supercell. Allowing to have sites outside the unit cell See pymatgen for docs. @@ -579,38 +736,109 @@ def __mul__(self, scaling_matrix): __rmul__ = __mul__ - def to_abivars(self, **kwargs): - """Returns a dictionary with the ABINIT variables.""" - return structure_to_abivars(self, **kwargs) + def to_abivars(self, enforce_znucl=None, enforce_typat=None, **kwargs) -> dict: + """ + Returns a dictionary with the ABINIT variables. + + Args: + enforce_znucl[ntypat] = Enforce this value for znucl. + enforce_typat[natom] = Fortran conventions. Start to count from 1. + """ + from abipy.flowtk.abiobjects import structure_to_abivars + return structure_to_abivars(self, enforce_znucl=enforce_znucl, enforce_typat=enforce_typat, **kwargs) @property - def latex_formula(self): - """LaTeX formatted formula. E.g., Fe2O3 is transformed to Fe$_{2}$O$_{3}$.""" + def latex_formula(self) -> str: + """LaTeX formatted formula: e.g., Fe2O3 is transformed to Fe$_{2}$O$_{3}$.""" from pymatgen.util.string import latexify return latexify(self.formula) @property - def abi_string(self): - """Return a string with the ABINIT input associated to this structure.""" - from abipy.abio.variable import InputVariable + def poscar_string(self) -> str: + """String with the structure in POSCAR format.""" + return self.to(fmt="POSCAR") + + @property + def abi_string(self) -> str: + """String with the ABINIT input associated to this structure.""" + return self.get_abi_string(fmt="abinit_input") + + def get_abi_string(self, fmt: str = "abinit_input") -> str: + """ + Return a string with the ABINIT input associated to this structure. Two formats are available. + fmt="abinit_input" corresponds to the standard format with `typat`, `znucl`. + fmt="abicell" is the lightweight format that uses `xred_symbols` + This format can be used to include the structure in the input via the structure "abivars:FILE" syntax. + """ lines = [] app = lines.append - abivars = self.to_abivars() - for varname, value in abivars.items(): - app(str(InputVariable(varname, value))) - return("\n".join(lines)) + if fmt == "abinit_input": + from abipy.abio.variable import InputVariable + abivars = self.to_abivars() + for varname, value in abivars.items(): + app(str(InputVariable(varname, value))) + + return "\n".join(lines) + + if fmt == "abicell": + # # MgB2 lattice structure. + # natom 3 + # acell 2*3.086 3.523 Angstrom + # rprim 0.866025403784439 0.5 0.0 + # -0.866025403784439 0.5 0.0 + # 0.0 0.0 1.0 + + # # Atomic positions in reduced coordinates followed by element symbol. + # xred_symbols + # 0.0 0.0 0.0 Mg + # 1/3 2/3 0.5 B + # 2/3 1/3 0.5 B + + rprim = pmg_units.ArrayWithUnit(self.lattice.matrix, "ang").to("bohr") + #angdeg = structure.lattice.angles + xred = np.reshape([site.frac_coords for site in self], (-1, 3)) + + # Set small values to zero. This usually happens when the CIF file + # does not give structure parameters with enough digits. + rprim = np.where(np.abs(rprim) > 1e-8, rprim, 0.0) + xred = np.where(np.abs(xred) > 1e-8, xred, 0.0) + symbols = [site.specie.symbol for site in self] + + app(f"# formula: {self.composition.formula}") + app(f"natom {len(self)}") + app("acell 1.0 1.0 1.0") + app("rprim") + + def v_to_s(vec): + return "%.8f %.8f %.8f" % (vec[0], vec[1], vec[2]) + + for avec in rprim: + app(v_to_s(avec)) + app("# Atomic positions in reduced coordinates followed by element symbol.") + app("xred_symbols") + for (frac_coords, symbol) in zip(xred, symbols): + app(v_to_s(frac_coords) + f" {symbol}") + + return("\n".join(lines)) + + raise ValueError(f"Unknown fmt: {fmt}") + + def get_panel(self, with_inputs=True, **kwargs): + """ + Build panel with widgets to interact with the structure either in a notebook or in a bokeh app. - def get_panel(self): - """Build panel with widgets to interact with the structure either in a notebook or in a bokeh app""" + Args: + with_inputs: True if tabs for generating input files should be shown. + """ from abipy.panels.structure import StructurePanel - return StructurePanel(self).get_panel() + return StructurePanel(structure=self).get_panel(with_inputs=with_inputs, **kwargs) def get_conventional_standard_structure(self, international_monoclinic=True, - symprec=1e-3, angle_tolerance=5): + symprec=1e-3, angle_tolerance=5) -> Structure: """ - Gives a structure with a conventional cell according to certain - standards. The standards are defined in :cite:`Setyawan2010` + Gives a structure with a conventional cell according to certain standards. + The standards are defined in :cite:`Setyawan2010` They basically enforce as much as possible norm(a1) < norm(a2) < norm(a3) Returns: The structure in a conventional standardized cell @@ -619,9 +847,8 @@ def get_conventional_standard_structure(self, international_monoclinic=True, new = spga.get_conventional_standard_structure(international_monoclinic=international_monoclinic) return self.__class__.as_structure(new) - def abi_primitive(self, symprec=1e-3, angle_tolerance=5, no_idealize=0): - #TODO: this should be moved to pymatgen in the get_refined_structure or so ... - # to be considered in February 2016 + def abi_primitive(self, symprec=1e-3, angle_tolerance=5, no_idealize=0) -> Structure: + #TODO: this should be moved to pymatgen in the get_refined_structure or so ... to be considered in February 2016 import spglib from pymatgen.io.ase import AseAtomsAdaptor try: @@ -632,14 +859,52 @@ def abi_primitive(self, symprec=1e-3, angle_tolerance=5, no_idealize=0): s = self.get_sorted_structure() ase_adaptor = AseAtomsAdaptor() ase_atoms = ase_adaptor.get_atoms(structure=s) - standardized = spglib.standardize_cell(ase_atoms, to_primitive=1, no_idealize=no_idealize, + + #standardized = spglib.standardize_cell(ase_atoms, to_primitive=1, no_idealize=no_idealize, + # symprec=symprec, angle_tolerance=angle_tolerance) + + spglib_cell = (ase_atoms.cell, ase_atoms.get_scaled_positions(), ase_atoms.get_atomic_numbers()) + standardized = spglib.standardize_cell(spglib_cell, to_primitive=1, no_idealize=no_idealize, symprec=symprec, angle_tolerance=angle_tolerance) + standardized_ase_atoms = Atoms(scaled_positions=standardized[1], numbers=standardized[2], cell=standardized[0]) standardized_structure = ase_adaptor.get_structure(standardized_ase_atoms) return self.__class__.as_structure(standardized_structure) - def refine(self, symprec=1e-3, angle_tolerance=5): + def new_with_uptri_lattice(self, mode="uptri") -> Structure: + """ + Build and return new structure with cell matrix in upper triangle form. + In the cell matrix, lattice vectors are along rows. + + Args: + mode="lowtri" if lower triangle cell matrix is wanted. + """ + a, b, c = self.lattice.abc + alpha, beta, gamma = self.lattice.angles + + # vesta = True means that we have a lower triangle lattice matrix (row vectors) + from pymatgen.core.lattice import Lattice + lattice = Lattice.from_parameters(a, b, c, alpha, beta, gamma, vesta=True) + + if mode == "lowtri": + a1, a2, a3 = lattice.matrix + elif mode =="uptri": + new_matrix = lattice.matrix.copy() + for i in range(3): + new_matrix[i,0] = lattice.matrix[i,2] + new_matrix[i,2] = lattice.matrix[i,0] + a1, a2, a3 = new_matrix[2], new_matrix[1], new_matrix[0] + else: + raise ValueError(f"Invalid {mode=}") + + from ase.cell import Cell + atoms = self.to_ase_atoms() + atoms.set_cell(Cell([a1, a2, a3]), scale_atoms=True) + + return Structure.from_ase_atoms(atoms) + + def refine(self, symprec=1e-3, angle_tolerance=5) -> Structure: """ Get the refined structure based on detected symmetry. The refined structure is a *conventional* cell setting with atoms moved to the @@ -651,7 +916,8 @@ def refine(self, symprec=1e-3, angle_tolerance=5): new = sym_finder.get_refined_structure() return self.__class__.as_structure(new) - def abi_sanitize(self, symprec=1e-3, angle_tolerance=5, primitive=True, primitive_standard=False): + def abi_sanitize(self, symprec=1e-3, angle_tolerance=5, + primitive=True, primitive_standard=False) -> Structure: """ Returns a new structure in which: @@ -663,8 +929,12 @@ def abi_sanitize(self, symprec=1e-3, angle_tolerance=5, primitive=True, primitiv symprec (float): Symmetry precision used to refine the structure. angle_tolerance (float): Tolerance on angles. if ``symprec`` is None and `angle_tolerance` is None, no structure refinement is peformed. - primitive (bool): Whether to convert to a primitive cell following :cite:`Setyawan2010` - primitive_standard (bool): Returns most primitive structure found. + primitive (bool): Returns most primitive structure found. + primitive_standard (bool): Whether to convert to a primitive cell using + the standards defined in Setyawan, W., & Curtarolo, S. (2010). + High-throughput electronic band structure calculations: + Challenges and tools. Computational Materials Science, 49(2), 299-312. + doi:10.1016/j.commatsci.2010.05.010 """ from pymatgen.transformations.standard_transformations import PrimitiveCellTransformation, SupercellTransformation structure = self.__class__.from_sites(self) @@ -674,6 +944,7 @@ def abi_sanitize(self, symprec=1e-3, angle_tolerance=5, primitive=True, primitiv structure = structure.refine(symprec=symprec, angle_tolerance=angle_tolerance) # Convert to primitive structure. + #primitive_standard = False if primitive: if primitive_standard: # Setyawan, W., & Curtarolo, S. @@ -688,6 +959,7 @@ def abi_sanitize(self, symprec=1e-3, angle_tolerance=5, primitive=True, primitiv m = structure.lattice.matrix x_prod = np.dot(np.cross(m[0], m[1]), m[2]) if x_prod < 0: + #print("Negative triple product --> exchanging last two lattice vectors.") trans = SupercellTransformation(((1, 0, 0), (0, 0, 1), (0, 1, 0))) structure = trans.apply_transformation(structure) m = structure.lattice.matrix @@ -696,7 +968,7 @@ def abi_sanitize(self, symprec=1e-3, angle_tolerance=5, primitive=True, primitiv return self.__class__.as_structure(structure) - def get_oxi_state_decorated(self, **kwargs): + def get_oxi_state_decorated(self, **kwargs) -> Structure: """ Use :class:`pymatgen.analysis.bond_valence.BVAnalyzer` to estimate oxidation states Return oxidation state decorated structure. @@ -715,27 +987,19 @@ def get_oxi_state_decorated(self, **kwargs): @property def reciprocal_lattice(self): """ - Reciprocal lattice of the structure. - """ - return self._lattice.reciprocal_lattice + Reciprocal lattice of the structure. Note that this is the standard + reciprocal lattice used for solid state physics with a factor of 2 * pi + i.e. a_j . b_j = 2pi delta_ij - def lattice_vectors(self, space="r"): + If you are looking for the crystallographic reciprocal lattice, + use the reciprocal_lattice_crystallographic property. """ - Returns the vectors of the unit cell in Angstrom. - - Args: - space: "r" for real space vectors, "g" for reciprocal space basis vectors. - """ - if space.lower() == "r": - return self.lattice.matrix - if space.lower() == "g": - return self.lattice.reciprocal_lattice.matrix - raise ValueError("Wrong value for space: %s " % str(space)) + return self._lattice.reciprocal_lattice - def spget_lattice_type(self, symprec=1e-3, angle_tolerance=5): + def spget_lattice_type(self, symprec=1e-3, angle_tolerance=5) -> str: """ Call spglib to get the lattice for the structure, e.g., (triclinic, - orthorhombic, cubic, etc.).This is the same than the + orthorhombic, cubic, etc.). This is the same than the crystal system with the exception of the hexagonal/rhombohedral lattice Args: @@ -781,7 +1045,7 @@ def spget_equivalent_atoms(self, symprec=1e-3, angle_tolerance=5, printout=False wyckoffs = np.array(spgdata["wyckoffs"]) wyck_mult = [np.count_nonzero(equivalent_atoms == equivalent_atoms[i]) for i in range(natom)] - wyck_mult = np.array(wyck_mult, dtype=np.int) + wyck_mult = np.array(wyck_mult, dtype=int) irred_pos = [] eqmap = collections.defaultdict(list) @@ -793,7 +1057,7 @@ def spget_equivalent_atoms(self, symprec=1e-3, angle_tolerance=5, printout=False # Convert to numpy arrays irred_pos = np.array(irred_pos) for eqpos in eqmap: - eqmap[eqpos] = np.array(eqmap[eqpos], dtype=np.int) + eqmap[eqpos] = np.array(eqmap[eqpos], dtype=int) if printout: print("Found %d inequivalent position(s):" % len(irred_pos)) @@ -817,7 +1081,7 @@ def spget_equivalent_atoms(self, symprec=1e-3, angle_tolerance=5, printout=False wyck_mult=wyck_mult, wyck_labels=wyck_labels, site_labels=np.array(site_labels), spgdata=spgdata) - def spget_summary(self, symprec=1e-3, angle_tolerance=5, site_symmetry=False, verbose=0): + def spget_summary(self, symprec=1e-3, angle_tolerance=5, site_symmetry=False, verbose=0) -> str: """ Return string with full information about crystalline structure i.e. space group, point group, wyckoff positions, equivalent sites. @@ -838,10 +1102,8 @@ def spget_summary(self, symprec=1e-3, angle_tolerance=5, site_symmetry=False, ve "Reduced Formula: {}".format(self.composition.reduced_formula)] app = outs.append to_s = lambda x: "%0.6f" % x - outs.append("abc : " + " ".join([to_s(i).rjust(10) - for i in self.lattice.abc])) - outs.append("angles: " + " ".join([to_s(i).rjust(10) - for i in self.lattice.angles])) + outs.append("abc : " + " ".join([to_s(i).rjust(10) for i in self.lattice.abc])) + outs.append("angles: " + " ".join([to_s(i).rjust(10) for i in self.lattice.angles])) app("") app("Spglib space group info (magnetic symmetries not taken into account).") app("Spacegroup: %s (%s), Hall: %s, Abinit spg_number: %s" % ( @@ -893,12 +1155,12 @@ def abi_spacegroup(self): except AttributeError: return None - def set_abi_spacegroup(self, spacegroup): + def set_abi_spacegroup(self, spacegroup) -> None: """``AbinitSpaceGroup`` setter.""" self._abi_spacegroup = spacegroup @property - def has_abi_spacegroup(self): + def has_abi_spacegroup(self) -> bool: """True is the structure contains info on the spacegroup.""" return self.abi_spacegroup is not None @@ -944,7 +1206,7 @@ def indsym(self): """ Compute indsym (natom, nsym, 4) array. - For each isym,iatom, the fourth element is label of atom into + For each isym, iatom, the fourth element is label of atom into which iatom is sent by INVERSE of symmetry operation isym; first three elements are the primitive translations which must be subtracted after the transformation to get back to the original unit cell (see symatm.F90). @@ -989,7 +1251,7 @@ def spget_site_symmetries(self): return sitesym_labels - def abiget_spginfo(self, tolsym=None, pre=None): + def abiget_spginfo(self, tolsym=None, pre=None) -> dict: """ Call Abinit to get spacegroup information. Return dictionary with e.g. @@ -1007,7 +1269,7 @@ def abiget_spginfo(self, tolsym=None, pre=None): if pre: d = {pre + k: v for k, v in d.items()} return d - def print_neighbors(self, radius=2.0): + def print_neighbors(self, radius=2.0) -> None: """ Get neighbors for each atom in the unit cell, out to a distance ``radius`` in Angstrom Print results. @@ -1023,6 +1285,50 @@ def print_neighbors(self, radius=2.0): print("\t", repr(s), " at distance", dist) print("") + @lazy_property + def has_zero_dynamical_quadrupoles(self): + """ + Dynamical quadrupoles are nonzero in all noncentrosymmetric crystals, + but also in centrosymmetric ones if one or more atoms are placed at noncentrosymmetric sites. + """ + def create_image(s1, s2): + """ + Creates the image of s2 through s1 + This image is a fictitious atom in the structure + """ + image = PeriodicSite.from_dict(s2.as_dict()) + image.coords = s1.coords - (s2.coords - s1.coords) + image.frac_coords = s1.frac_coords - (s2.frac_coords - s1.frac_coords) + + return image + + def check_image(structure, site): + """ + Checks if a fictitious site is an image of a site of the structure + """ + for site in structure.sites: + if site.is_periodic_image(site): + return True + + return False + + # If the centrosymmetry is broken at a given atomic site of the given structure, + # returns False. Else, return True + sites = self.sites + + for s1 in sites: + for s2 in sites: + # Do not take s1 = s2 into account + if s2 != s1: + # Create the image of s2 through s1 (fictitious atom) + image = create_image(s1, s2) + is_image = check_image(self, image) + if not is_image: + return False + + return True + + @lazy_property def hsym_kpath(self): """ @@ -1050,7 +1356,7 @@ def hsym_kpoints(self): from .kpoints import KpointList return KpointList(self.reciprocal_lattice, frac_coords, weights=None, names=names) - def get_kcoords_from_names(self, knames, cart_coords=False): + def get_kcoords_from_names(self, knames, cart_coords=False) -> np.ndarray: """ Return numpy array with the fractional coordinates of the high-symmetry k-points listed in `knames`. @@ -1060,6 +1366,7 @@ def get_kcoords_from_names(self, knames, cart_coords=False): instead of Reduced coordinates. """ kname2frac = {k.name: k.frac_coords for k in self.hsym_kpoints} + # Add aliases for Gamma. if r"$\Gamma$" in kname2frac: kname2frac["G"] = kname2frac[r"$\Gamma$"] @@ -1068,7 +1375,7 @@ def get_kcoords_from_names(self, knames, cart_coords=False): try: kcoords = np.reshape([kname2frac[name] for name in list_strings(knames)], (-1, 3)) except KeyError: - cprint("Internal list of high-symmetry k-points:\n" % str(self.hsym_kpoints)) + cprint("Internal list of high-symmetry k-points:\n%s" % str(self.hsym_kpoints)) raise if cart_coords: @@ -1077,7 +1384,7 @@ def get_kcoords_from_names(self, knames, cart_coords=False): return kcoords @lazy_property - def hsym_stars(self): + def hsym_stars(self) -> list: """ List of |KpointStar| objects. Each star is associated to one of the special k-points present in the pymatgen database. @@ -1099,7 +1406,7 @@ def hsym_stars(self): # #for k in kstar: # # print(4 * " ", repr(k)) - def get_sorted_structure_z(self): + def get_sorted_structure_z(self) -> Structure: """Order the structure according to increasing Z of the elements""" return self.__class__.from_sites(sorted(self.sites, key=lambda site: site.specie.Z)) @@ -1129,7 +1436,7 @@ def findname_in_hsym_stars(self, kpoint): else: return None - def get_symbol2indices(self): + def get_symbol2indices(self) -> dict: """ Return a dictionary mapping chemical symbols to numpy array with the position of the atoms. @@ -1139,7 +1446,7 @@ def get_symbol2indices(self): """ return {symbol: np.array(self.indices_from_symbol(symbol)) for symbol in self.symbol_set} - def get_symbol2coords(self): + def get_symbol2coords(self) -> dict: """ Return a dictionary mapping chemical symbols to a [ntype_symbol, 3] numpy array with the fractional coordinates. @@ -1187,7 +1494,7 @@ def norm(self, coords, space="r", frac_coords=True): """ return np.sqrt(self.dot(coords, coords, space=space, frac_coords=frac_coords)) - def scale_lattice(self, new_volume): + def scale_lattice(self, new_volume) -> Structure: """ Return a new |Structure| with volume new_volume by performing a scaling of the lattice vectors so that length proportions and angles are preserved. @@ -1195,9 +1502,9 @@ def scale_lattice(self, new_volume): new_lattice = self.lattice.scale(new_volume) return self.__class__(new_lattice, self.species, self.frac_coords) - def get_dict4pandas(self, symprec=1e-2, angle_tolerance=5.0, with_spglib=True): + def get_dict4pandas(self, symprec=1e-2, angle_tolerance=5.0, with_spglib=True) -> dict: """ - Return a :class:`OrderedDict` with the most important structural parameters: + Return a dict with the most important structural parameters: - Chemical formula and number of atoms. - Lattice lengths, angles and volume. @@ -1217,10 +1524,12 @@ def get_dict4pandas(self, symprec=1e-2, angle_tolerance=5.0, with_spglib=True): spglib_symbol, spglib_number, spglib_lattice_type = None, None, None if with_spglib: try: - spglib_symbol, spglib_number = self.get_space_group_info(symprec=symprec, angle_tolerance=angle_tolerance) + spglib_symbol, spglib_number = self.get_space_group_info(symprec=symprec, + angle_tolerance=angle_tolerance) spglib_lattice_type = self.spget_lattice_type(symprec=symprec, angle_tolerance=angle_tolerance) except Exception as exc: - cprint("Spglib couldn't find space group symbol and number for composition %s" % str(self.composition), "red") + cprint("Spglib couldn't find space group symbol and number for composition: `%s`" % + str(self.composition), "red") print("Exception:\n", exc) # Get spacegroup number computed by Abinit if available. @@ -1239,19 +1548,55 @@ def get_dict4pandas(self, symprec=1e-2, angle_tolerance=5.0, with_spglib=True): return od + def get_symb2coords_dataframe(self, with_cart_coords=False) -> dict: + """ + Return dictionary mapping element symbol to DataFrame with atomic positions + in cartesian coordinates. + + Args: + with_cart_coords: True if Cartesian coordinates should be added as well. + """ + if with_cart_coords: + group = {symb: {"site_idx": [], "frac_coords": [], "cart_coords": []} for symb in self.symbol_set} + else: + group = {symb: {"site_idx": [], "frac_coords": []} for symb in self.symbol_set} + + for idx, site in enumerate(self): + symb = site.specie.symbol + group[symb]["site_idx"].append(idx) + group[symb]["frac_coords"].append(site.frac_coords) + if with_cart_coords: + group[symb]["cart_coords"].append(site.coords) + + out = {symb: pd.DataFrame.from_dict(d) for symb, d in group.items()} + # Use site_idx and new index. + for df in out.values(): + df.set_index("site_idx", inplace=True) + + return out + @add_fig_kwargs def plot(self, **kwargs): """ - Plot structure with matplotlib. Return matplotlib Figure - See plot_structure for kwargs + Plot structure in 3D with matplotlib. Return matplotlib Figure. + See plot_structure for kwargs. """ from abipy.tools.plotting import plot_structure return plot_structure(self, **kwargs) + @add_plotly_fig_kwargs + def plotly(self, **kwargs): + """ + Plot structure in 3D with plotly. Return plotly Figure. + See plot_structure for kwargs + """ + from abipy.tools.plotting import plotly_structure + return plotly_structure(self, **kwargs) + @add_fig_kwargs def plot_bz(self, ax=None, pmg_path=True, with_labels=True, **kwargs): """ - Gives the plot (as a matplotlib object) of the symmetry line path in the Brillouin Zone. + Use matplotlib to plot the symmetry line path in the Brillouin Zone. Args: ax: matplotlib :class:`Axes` or None if a new figure should be created. @@ -1267,9 +1612,28 @@ def plot_bz(self, ax=None, pmg_path=True, with_labels=True, **kwargs): else: return plot_brillouin_zone(self.reciprocal_lattice, ax=ax, labels=labels, show=False, **kwargs) + @add_plotly_fig_kwargs + def plotly_bz(self, fig=None, pmg_path=True, with_labels=True, **kwargs): + """ + Use plotly to plot the symmetry line path in the Brillouin Zone. + + Args: + fig: plotly figure or None if a new figure should be created. + pmg_path (bool): True if the default path used in pymatgen should be show. + with_labels (bool): True to plot k-point labels. + + Returns: plotly.graph_objects.Figure + """ + from abipy.tools.plotting import plotly_brillouin_zone_from_kpath, plotly_brillouin_zone + labels = None if not with_labels else self.hsym_kpath.kpath["kpoints"] + if pmg_path: + return plotly_brillouin_zone_from_kpath(self.hsym_kpath, fig=fig, show=False, **kwargs) + else: + return plotly_brillouin_zone(self.reciprocal_lattice, fig=fig, labels=labels, show=False, **kwargs) + @add_fig_kwargs def plot_xrd(self, wavelength="CuKa", symprec=0, debye_waller_factors=None, - two_theta_range=(0, 90), annotate_peaks=True, ax=None, **kwargs): + two_theta_range=(0, 90), annotate_peaks=True, ax=None, **kwargs) -> Figure: """ Use pymatgen :class:`XRDCalculator` to show the XRD plot. @@ -1355,14 +1719,14 @@ def export(self, filename, visu=None, verbose=1): else: return visu(filename) - def chemview(self, **kwargs): # pragma: no cover + def get_chemview(self, **kwargs): # pragma: no cover """ Visualize structure inside the jupyter notebook using chemview package. """ from pymatgen.vis.structure_chemview import quick_view return quick_view(self, **kwargs) - def vtkview(self, show=True, **kwargs): + def plot_vtk(self, show=True, **kwargs): """ Visualize structure with VTK. Requires vVTK python bindings. @@ -1378,14 +1742,56 @@ def vtkview(self, show=True, **kwargs): if show: vis.show() return vis - def mayaview(self, figure=None, show=True, **kwargs): + def plot_mayaview(self, figure=None, show=True, **kwargs): """Visualize structure with mayavi.""" from abipy.display import mvtk return mvtk.plot_structure(self, figure=figure, show=show, **kwargs) - def get_nglview(self): # pragma: no cover + @add_fig_kwargs + def plot_atoms(self, rotations="default", **kwargs): + """ + Plot 2d representation with matplotlib using ASE `plot_atoms` function. + + Args: + rotations: String or List of strings. + Each string defines a rotation (in degrees) in the form '10x,20y,30z' + Note that the order of rotation matters, i.e. '50x,40z' is different from '40z,50x'. + kwargs: extra kwargs passed to plot_atoms ASE function. + + Returns: |matplotlib-Figure| + """ + if rotations == "default": + rotations = [ + "", "90x", "90y", + "45x,45y", "45y,45z", "45x,45z", + ] + else: + rotations = list_strings(rotations) + + nrows, ncols, num_plots = 1, 1, len(rotations) + if num_plots > 1: + ncols = 3 + nrows = num_plots // ncols + num_plots % ncols + + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=True, squeeze=False) + + # don't show the last ax if num_plots is odd. + if num_plots % ncols != 0: ax_mat[-1, -1].axis("off") + + from ase.visualize.plot import plot_atoms + atoms = self.to_ase_atoms() + for rotation, ax in zip(rotations, ax_mat.flat): + plot_atoms(atoms, ax=ax, rotation=rotation, **kwargs) + ax.set_axis_off() + if rotation: + ax.set_title("rotation: %s" % str(rotation), fontsize=6) + + return fig + + def get_ngl_view(self): # pragma: no cover """ - Visualize structure with nglview inside a jupyter notebook. + Visualize the structure with nglview inside the jupyter notebook. """ try: import nglview as nv @@ -1396,43 +1802,46 @@ def get_nglview(self): # pragma: no cover view.add_unitcell() return view - def crystaltoolkitview(self): # pragma: no cover + def get_crystaltk_view(self): # pragma: no cover """ Visualize the structure with crystal_toolkit inside the jupyter notebook. """ try: + # FIXME: It seems they changed the API. from crystal_toolkit import view except ImportError: raise ImportError("crystal_toolkit is not installed. See https://docs.crystaltoolkit.org/jupyter") return view(self) - def get_jsmol(self, symprec=None, verbose=0, **kwargs): # pragma: no cover + def get_jsmol_view(self, symprec=None, verbose=0, **kwargs): # pragma: no cover """ + Visualize the structure with jsmol inside the jupyter notebook. Args: symprec (float): If not none, finds the symmetry of the structure and writes the CIF with symmetry information. - Passes symprec to the SpacegroupAnalyzer + Passes symprec to the spglib SpacegroupAnalyzer. verbose: Verbosity level. """ try: - from jupyter_jsmol import JsmolView + from jupyter_jsmol import JsmolView except ImportError: raise ImportError("jupyter_jsmol is not installed. See https://github.com/fekad/jupyter-jsmol") - from pymatgen.io.cif import CifWriter - data = str(CifWriter(self, symprec=symprec)) + cif_str = self.write_cif_with_spglib_symms(None, symprec=symprec, ret_string=True) + #print("cif_str:\n", cif_str) + #return JsmolView.from_str(cif_str) - from IPython.display import display, HTML + #from IPython.display import display, HTML # FIXME TEMPORARY HACK TO LOAD JSMOL.js # See discussion at # https://stackoverflow.com/questions/16852885/ipython-adding-javascript-scripts-to-ipython-notebook - display(HTML('')) + #display(HTML('')) jsmol = JsmolView(color='white') - display(jsmol) - cmd = 'load inline "%s" {1 1 1}' % data + #display(jsmol) + cmd = 'load inline "%s" {1 1 1}' % cif_str if verbose: print("executing cmd:", cmd) jsmol.script(cmd) @@ -1444,8 +1853,8 @@ def visualize(self, appname="vesta"): See |Visualizer| for the list of applications and formats supported. """ if appname in ("mpl", "matplotlib"): return self.plot() - if appname == "vtk": return self.vtkview() - if appname == "mayavi": return self.mayaview() + if appname == "vtk": return self.plot_vtk() + if appname == "mayavi": return self.plot_mayaview() # Get the Visualizer subclass from the string. visu = Visualizer.from_name(appname) @@ -1462,10 +1871,10 @@ def visualize(self, appname="vesta"): else: raise visu.Error("Don't know how to export data for %s" % appname) - def convert(self, fmt="cif", **kwargs): + def convert(self, fmt: str = "cif", **kwargs) -> str: """ Return string with the structure in the given format `fmt` - Options include "abivars", "cif", "xsf", "poscar", "siesta", "wannier90", "cssr", "json". + Options include: "abivars", "cif", "xsf", "poscar", "siesta", "wannier90", "cssr", "json". """ if fmt in ("abivars", "abinit"): return self.abi_string @@ -1479,37 +1888,24 @@ def convert(self, fmt="cif", **kwargs): elif fmt in ("wannier90", "w90"): from abipy.wannier90.win import structure2wannier90 return structure2wannier90(self) + elif fmt.lower() == "poscar": + # Don't call super for poscar because we need more significant_figures to + # avoid problems with abinit space group routines where the default numerical tolerance is tight. + from pymatgen.io.vasp import Poscar + try: + return Poscar(self).get_str(significant_figures=12) + except AttributeError: + return Poscar(self).get_string(significant_figures=12) + + elif fmt.lower() == "lammps": + from pymatgen.io.lammps.data import LammpsData + # Convert the structure to a LAMMPS data file + lammps_data = LammpsData.from_structure(self) + return lammps_data.get_str() + else: return super().to(fmt=fmt, **kwargs) - #def get_max_overlap_and_sites(self, pseudos): - # # For each site in self: - # # 1) Get the radius of the pseudopotential sphere - # # 2) Get the neighbors of the site (considering the periodic images). - - # pseudos = PseudoTable.as_table(pseudos) - # max_overlap, ovlp_sites = 0.0, None - # for site in self: - # symbol = site.specie.symbol - # pseudo = pseudos[symbol] - # r1 = Length(pseudo.r_cut, "Bohr").to("ang") - # sitedist_list = self.get_neighbors_old(site, r1, include_index=False) - - # if sitedist_list: - # # Spheres are overlapping: compute overlap and update the return values - # # if the new overlap is larger than the previous one. - # for other_site, dist in sitedist_list: - # other_symbol = other_site.specie.symbol - # other_pseudo = pseudos[other_symbol] - # r2 = Length(other_pseudo.r_cut, "Bohr").to("ang") - # # Eq 16 of http://mathworld.wolfram.com/Sphere-SphereIntersection.html - # overlap = sphere_overlap(site.coords, r1, other_site.coords, r2) - # if overlap > max_overlap: - # max_overlap = overlap - # ovlp_sites = (site, other_site) - - # return max_overlap, ovlp_sites - def displace(self, displ, eta, frac_coords=True, normalize=True): """ Displace the sites of the structure along the displacement vector displ. @@ -1547,35 +1943,34 @@ def displace(self, displ, eta, frac_coords=True, normalize=True): def get_smallest_supercell(self, qpoint, max_supercell): """ Args: - qpoint: q vector in reduced coordinate in reciprocal space + qpoint: q vector in reduced coordinates in reciprocal space. max_supercell: vector with the maximum supercell size Returns: the scaling matrix of the supercell """ - if np.allclose(qpoint, 0): - scale_matrix = np.eye(3, 3) - return scale_matrix + if np.allclose(qpoint, 0.0): + return np.eye(3, 3) l = max_supercell # Inspired from Exciting Fortran code phcell.F90 - # It should be possible to improve this code taking advantage of python ! - scale_matrix = np.zeros((3, 3), dtype=np.int) + # It should be possible to improve this coding. + scale_matrix = np.zeros((3, 3), dtype=int) dmin = np.inf found = False # Try to reduce the matrix rprimd = self.lattice.matrix - for l1 in np.arange(-l[0], l[0]+1): - for l2 in np.arange(-l[1], l[1]+1): - for l3 in np.arange(-l[2], l[2]+1): + for l1 in np.arange(-l[0], l[0] + 1): + for l2 in np.arange(-l[1], l[1] + 1): + for l3 in np.arange(-l[2], l[2] + 1): lnew = np.array([l1, l2, l3]) ql = np.dot(lnew, qpoint) # Check if integer and non zero ! if np.abs(ql - np.round(ql)) < 1e-6: Rl = np.dot(lnew, rprimd) # Normalize the displacement so that the maximum atomic displacement is 1 Angstrom. - dnorm = np.sqrt(np.dot(Rl,Rl)) + dnorm = np.sqrt(np.dot(Rl, Rl)) if dnorm < (dmin-1e-6) and dnorm > 1e-6: found = True scale_matrix[:, 0] = lnew @@ -1585,13 +1980,13 @@ def get_smallest_supercell(self, qpoint, max_supercell): found = False dmin = np.inf - for l1 in np.arange(-l[0], l[0]+1): - for l2 in np.arange(-l[1], l[1]+1): - for l3 in np.arange(-l[2], l[2]+1): + for l1 in np.arange(-l[0], l[0] + 1): + for l2 in np.arange(-l[1], l[1] + 1): + for l3 in np.arange(-l[2], l[2] + 1): lnew = np.array([l1, l2, l3]) # Check if not parallel ! cp = np.cross(lnew, scale_matrix[:,0]) - if np.dot(cp,cp) > 1e-6: + if np.dot(cp, cp) > 1e-6: ql = np.dot(lnew, qpoint) # Check if integer and non zero ! if np.abs(ql - np.round(ql)) < 1e-6: @@ -1606,16 +2001,16 @@ def get_smallest_supercell(self, qpoint, max_supercell): dmin = np.inf found = False - for l1 in np.arange(-l[0], l[0]+1): - for l2 in np.arange(-l[1], l[1]+1): - for l3 in np.arange(-l[2], l[2]+1): + for l1 in np.arange(-l[0], l[0] + 1): + for l2 in np.arange(-l[1], l[1] + 1): + for l3 in np.arange(-l[2], l[2] + 1): lnew = np.array([l1, l2, l3]) - # Check if not parallel ! + # Check if not parallel! cp = np.dot(np.cross(lnew, scale_matrix[:, 0]), scale_matrix[:, 1]) if cp > 1e-6: - # Should be positive as (R3 X R1).R2 > 0 for abinit ! + # Should be positive as (R3 X R1).R2 > 0 for abinit! ql = np.dot(lnew, qpoint) - # Check if integer and non zero ! + # Check if integer and non zero! if np.abs(ql - np.round(ql)) < 1e-6: Rl = np.dot(lnew, rprimd) dnorm = np.sqrt(np.dot(Rl,Rl)) @@ -1627,7 +2022,45 @@ def get_smallest_supercell(self, qpoint, max_supercell): raise ValueError('max_supercell is not large enough for this q-point') # Fortran 2 python!!! - return scale_matrix.T + return scale_matrix.T.copy() + + def make_doped_supercells(self, scaling_matrix, replaced_atom, dopant_atom): + """ + Returns a list doped supercell structures, one for each non-equivalent site of the replaced atom. + + Args: + scaling_matrix: A scaling matrix for transforming the lattice vectors. + Has to be all integers. Several options are possible: + a. A full 3x3 scaling matrix defining the linear combination of the old lattice vectors. + E.g., [[2,1,0],[0,3,0],[0,0,1]] generates a new structure with lattice vectors + a' = 2a + b, b' = 3b, c' = c + where a, b, and c are the lattice vectors of the original structure. + b. A sequence of three scaling factors. e.g., [2, 1, 1] + specifies that the supercell should have dimensions 2a x b x c. + c. A number, which simply scales all lattice vectors by the same factor. + replaced atom: Symbol of the atom to be replaced (ex: 'Sr') + dopant_atom: Symbol of the dopant_atom (ex: 'Eu') + """ + ### list of positions of non-equivalent sites for the replaced atom. ### + irred = self.spget_equivalent_atoms().eqmap # mapping from inequivalent sites to atoms sites + positions = self.get_symbol2indices()[replaced_atom] # get indices of the replaced atom + + index_non_eq_sites = [] + for pos in positions: + if len(irred[pos]) != 0: + index_non_eq_sites.append(irred[pos][0]) + + doped_supercell = self.copy() + doped_supercell.make_supercell(scaling_matrix) + + doped_structure_list = [] + + for index in index_non_eq_sites: + final_structure=doped_supercell.copy() + final_structure.replace(index,dopant_atom) + doped_structure_list.append(final_structure) + + return doped_structure_list def get_trans_vect(self, scale_matrix): """ @@ -1660,8 +2093,8 @@ def range_vec(i): # find the translation vectors (in terms of the initial lattice vectors) # that are inside the unit cell defined by the scale matrix - # we're using a slightly offset interval from 0 to 1 to avoid numerical - # precision issues + # we're using a slightly offset interval from 0 to 1 to avoid numerical precision issues + #print(scale_matrix) inv_matrix = np.linalg.inv(scale_matrix) frac_points = np.dot(all_points, inv_matrix) @@ -1672,7 +2105,7 @@ def range_vec(i): return tvects def write_vib_file(self, xyz_file, qpoint, displ, do_real=True, frac_coords=True, - scale_matrix=None, max_supercell=None): + scale_matrix=None, max_supercell=None) -> None: """ Write into the file descriptor xyz_file the positions and displacements of the atoms @@ -1687,7 +2120,7 @@ def write_vib_file(self, xyz_file, qpoint, displ, do_real=True, frac_coords=True """ if scale_matrix is None: if max_supercell is None: - raise ValueError("If scale_matrix is not provided, please provide max_supercell !") + raise ValueError("If scale_matrix is not provided, please provide max_supercell!") scale_matrix = self.get_smallest_supercell(qpoint, max_supercell=max_supercell) @@ -1696,7 +2129,7 @@ def write_vib_file(self, xyz_file, qpoint, displ, do_real=True, frac_coords=True tvects = self.get_trans_vect(scale_matrix) - new_displ = np.zeros(3, dtype=np.float) + new_displ = np.zeros(3, dtype=float) fmtstr = "{{}} {{:.{0}f}} {{:.{0}f}} {{:.{0}f}} {{:.{0}f}} {{:.{0}f}} {{:.{0}f}}\n".format(6) @@ -1727,8 +2160,8 @@ def write_vib_file(self, xyz_file, qpoint, displ, do_real=True, frac_coords=True def frozen_2phonon(self, qpoint, displ1, displ2, eta=1, frac_coords=False, scale_matrix=None, max_supercell=None): """ Creates the supercell needed for a given qpoint and adds the displacements. - The displacements are normalized so that the largest atomic displacement will correspond to the - value of eta in Angstrom. + The displacements are normalized so that the largest atomic displacement will correspond + to the value of eta in Angstrom. Args: qpoint: q vector in reduced coordinate in reciprocal space. @@ -1775,8 +2208,8 @@ def frozen_2phonon(self, qpoint, displ1, displ2, eta=1, frac_coords=False, scale displ1 = eta * displ1 / norm_factor displ2 = eta * displ2 / norm_factor - new_displ1 = np.zeros(3, dtype=np.float) - new_displ2 = np.zeros(3, dtype=np.float) + new_displ1 = np.zeros(3, dtype=float) + new_displ2 = np.zeros(3, dtype=float) new_sites = [] displ_list = [] for at,site in enumerate(self): @@ -1803,15 +2236,14 @@ def frozen_phonon(self, qpoint, displ, eta=1, frac_coords=False, scale_matrix=No value of eta in Angstrom. Args: - qpoint: q vector in reduced coordinate in reciprocal space. + qpoint: q-vector in reduced coordinate in reciprocal space. displ: displacement in real space of the atoms. - eta: pre-factor multiplying the displacement. Gives the value in Angstrom of the - largest displacement. + eta: pre-factor multiplying the displacement. Gives the value in Angstrom of the largest displacement. frac_coords: whether the displacements are given in fractional or cartesian coordinates scale_matrix: the scaling matrix of the supercell. If None a scaling matrix suitable for the qpoint will be determined. max_supercell: mandatory if scale_matrix is None, ignored otherwise. Defines the largest - supercell in the search for a scaling matrix suitable for the q point. + supercell in the search for a scaling matrix suitable for the input q-point. Returns: A namedtuple with a Structure with the displaced atoms, a numpy array containing the @@ -1820,33 +2252,34 @@ def frozen_phonon(self, qpoint, displ, eta=1, frac_coords=False, scale_matrix=No if scale_matrix is None: if max_supercell is None: - raise ValueError("If scale_matrix is not provided, please provide max_supercell !") - + raise ValueError("If scale_matrix is not provided in input, please provide max_supercell!") scale_matrix = self.get_smallest_supercell(qpoint, max_supercell=max_supercell) scale_matrix = np.array(scale_matrix, np.int16) if scale_matrix.shape != (3, 3): scale_matrix = np.array(scale_matrix * np.eye(3), np.int16) + #print("scale_matrix:\n", scale_matrix) old_lattice = self._lattice new_lattice = Lattice(np.dot(scale_matrix, old_lattice.matrix)) tvects = self.get_trans_vect(scale_matrix) + #print("tvects\n", tvects) if frac_coords: - displ = np.array((old_lattice.get_cartesian_coords(d) for d in displ)) + displ = np.array([old_lattice.get_cartesian_coords(d) for d in displ]) else: displ = np.array(displ) - # from here displ are in cartesian coordinates + # from here on, displ is in cartesian coordinates. displ = eta * displ / np.linalg.norm(displ, axis=1).max() - new_displ = np.zeros(3, dtype=np.float) + new_displ = np.zeros(3, dtype=float) new_sites = [] displ_list = [] - for at, site in enumerate(self): + for iat, site in enumerate(self): for t in tvects: - new_displ[:] = np.real(np.exp(2*1j*np.pi*(np.dot(qpoint,t)))*displ[at,:]) + new_displ[:] = np.real(np.exp(2*1j*np.pi * (np.dot(qpoint, t))) * displ[iat,:]) displ_list.append(list(new_displ)) coords = site.coords + old_lattice.get_cartesian_coords(t) + new_displ @@ -1860,15 +2293,14 @@ def frozen_phonon(self, qpoint, displ, eta=1, frac_coords=False, scale_matrix=No return dict2namedtuple(structure=new_structure, displ=np.array(displ_list), scale_matrix=scale_matrix) - def calc_kptbounds(self): + def calc_kptbounds(self) -> np.array: """Returns the suggested value for the ABINIT variable ``kptbounds``.""" kptbounds = [k.frac_coords for k in self.hsym_kpoints] return np.reshape(kptbounds, (-1, 3)) - def get_kpath_input_string(self, fmt="abinit", line_density=10): + def get_kpath_input_string(self, fmt: str = "abinit", line_density: int = 10) -> str: """ - Return string with input variables for band-structure calculations - in the format used by code `fmt`. + Return string with input variables for band-structure calculations in the format used by code `fmt`. Use `line_density` points for the smallest segment (if supported by code). """ lines = []; app = lines.append @@ -1912,7 +2344,7 @@ def get_kpath_input_string(self, fmt="abinit", line_density=10): return "\n".join(lines) - def calc_ksampling(self, nksmall, symprec=0.01, angle_tolerance=5): + def calc_ksampling(self, nksmall, symprec=0.01, angle_tolerance=5) -> AttrDict: """ Return the k-point sampling from the number of divisions ``nksmall`` to be used for the smallest reciprocal lattice vector. @@ -1922,7 +2354,7 @@ def calc_ksampling(self, nksmall, symprec=0.01, angle_tolerance=5): return AttrDict(ngkpt=ngkpt, shiftk=shiftk) - def calc_ngkpt(self, nksmall): + def calc_ngkpt(self, nksmall) -> np.ndarray: """ Compute the ABINIT variable ``ngkpt`` from the number of divisions used for the smallest lattice vector. @@ -1933,7 +2365,7 @@ def calc_ngkpt(self, nksmall): lengths = self.lattice.reciprocal_lattice.abc lmin = np.min(lengths) - ngkpt = np.ones(3, dtype=np.int) + ngkpt = np.ones(3, dtype=int) for i in range(3): ngkpt[i] = int(round(nksmall * lengths[i] / lmin)) if ngkpt[i] == 0: @@ -1941,7 +2373,7 @@ def calc_ngkpt(self, nksmall): return ngkpt - def calc_shiftk(self, symprec=0.01, angle_tolerance=5): + def calc_shiftk(self, symprec=0.01, angle_tolerance=5) -> np.ndarray: """ Find the values of ``shiftk`` and ``nshiftk`` appropriated for the sampling of the Brillouin zone. @@ -2040,13 +2472,14 @@ def calc_shiftk(self, symprec=0.01, angle_tolerance=5): return np.reshape(shiftk, (-1, 3)) - def num_valence_electrons(self, pseudos): + def num_valence_electrons(self, pseudos) -> float: """ Returns the number of valence electrons. Args: pseudos: List of |Pseudo| objects or list of filenames. """ + from abipy.flowtk import PseudoTable nval, table = 0, PseudoTable.as_table(pseudos) for site in self: pseudo = table.pseudo_with_symbol(site.specie.symbol) @@ -2054,13 +2487,14 @@ def num_valence_electrons(self, pseudos): return int(nval) if int(nval) == nval else nval - def valence_electrons_per_atom(self, pseudos): + def valence_electrons_per_atom(self, pseudos) -> list: """ Returns the number of valence electrons for each atom in the structure. Args: pseudos: List of |Pseudo| objects or list of filenames. """ + from abipy.flowtk import PseudoTable table = PseudoTable.as_table(pseudos) psp_valences = [] for site in self: @@ -2069,7 +2503,7 @@ def valence_electrons_per_atom(self, pseudos): return psp_valences - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -2092,9 +2526,13 @@ def write_notebook(self, nbpath=None): nbv.new_code_cell("if structure.abi_spacegroup is not None: print(structure.abi_spacegroup)"), nbv.new_code_cell("print(structure.hsym_kpoints)"), nbv.new_code_cell("structure.plot_bz();"), - nbv.new_code_cell("structure.plot_xrd();"), + nbv.new_code_cell("#import panel as pn; pn.extension()\n#structure.get_panel()"), nbv.new_code_cell("# sanitized = structure.abi_sanitize(); print(sanitized)"), nbv.new_code_cell("# ase_atoms = structure.to_ase_atoms()"), + nbv.new_code_cell("# structure.plot_atoms();"), + nbv.new_code_cell("# jsmol_view = structure.get_jsmol_view(); jsmol_view"), + nbv.new_code_cell("# ngl_view = structure.get_ngl_view(); ngl_view"), + nbv.new_code_cell("# ctk_view = structure.get_crystaltk_view(); ctk_view"), ]) return self._write_nb_nbpath(nb, nbpath) @@ -2136,7 +2574,6 @@ def dataframes_from_structures(struct_objects, index=None, symprec=1e-2, angle_t odict_list = [(structure.get_dict4pandas(with_spglib=with_spglib, symprec=symprec, angle_tolerance=angle_tolerance)) for structure in structures] - import pandas as pd lattice_frame = pd.DataFrame(odict_list, index=index, columns=list(odict_list[0].keys()) if odict_list else None) @@ -2156,7 +2593,7 @@ def dataframes_from_structures(struct_objects, index=None, symprec=1e-2, angle_t return dict2namedtuple(lattice=lattice_frame, coords=coords_frame, structures=structures) -class StructureModifier(object): +class StructureModifier: """ This object provides an easy-to-use interface for generating new structures according to some algorithm. @@ -2171,7 +2608,7 @@ class StructureModifier(object): For example one can pass a length in Bohr that will be automatically converted into Angstrom before calling the pymatgen methods """ - def __init__(self, structure): + def __init__(self, structure: Structure): """ Args: structure: Structure object. @@ -2179,11 +2616,11 @@ def __init__(self, structure): # Get a copy to avoid any modification of the input. self._original_structure = structure.copy() - def copy_structure(self): + def copy_structure(self) -> Structure: """Returns a copy of the original structure.""" return self._original_structure.copy() - def scale_lattice(self, vol_ratios): + def scale_lattice(self, vol_ratios: list) -> list: """ Scale the lattice vectors so that length proportions and angles are preserved. @@ -2203,7 +2640,7 @@ def scale_lattice(self, vol_ratios): return news - def make_supercell(self, scaling_matrix): + def make_supercell(self, scaling_matrix) -> Structure: """ Create a supercell. @@ -2277,13 +2714,9 @@ def diff_structures(structures, fmt="cif", mode="table", headers=(), file=sys.st outs = [s.convert(fmt=fmt).splitlines() for s in map(Structure.as_structure, structures)] if mode == "table": - try: - from itertools import izip_longest as zip_longest # Py2 - except ImportError: - from itertools import zip_longest # Py3k - - table = [r for r in zip_longest(*outs, fillvalue=" ")] + from itertools import zip_longest # Py3k from tabulate import tabulate + table = [r for r in zip_longest(*outs, fillvalue=" ")] print(tabulate(table, headers=headers), file=file) elif mode == "diff": @@ -2295,35 +2728,35 @@ def diff_structures(structures, fmt="cif", mode="table", headers=(), file=sys.st print(diff, file=file) else: - raise ValueError("Unsupported mode: `%s`" % str(mode)) + raise ValueError(f"Unsupported {mode=}") -def structure2siesta(structure, verbose=0): +def structure2siesta(structure: Structure, verbose=0) -> str: """ Return string with structural information in Siesta format from pymatgen structure Args: - structure: pymatgen structure. + structure: AbiPy structure. verbose: Verbosity level. """ if not structure.is_ordered: raise NotImplementedError("""\ -Received disordered structure with partial occupancies that cannot be converted into a Siesta input +Received disordered structure with partial occupancies that cannot be converted to a Siesta input Please use OrderDisorderedStructureTransformation or EnumerateStructureTransformation to build an appropriate supercell from partial occupancies or alternatively use the Virtual Crystal Approximation.""") - types_of_specie = structure.types_of_specie + species_by_znucl = structure.species_by_znucl lines = [] app = lines.append app("NumberOfAtoms %d" % len(structure)) - app("NumberOfSpecies %d" % structure.ntypesp) + app("NumberOfSpecies %d" % structure.n_elems) if verbose: app("# The species number followed by the atomic number, and then by the desired label") app("%block ChemicalSpeciesLabel") - for itype, specie in enumerate(types_of_specie): + for itype, specie in enumerate(species_by_znucl): app(" %d %d %s" % (itype + 1, specie.number, specie.symbol)) app("%endblock ChemicalSpeciesLabel") @@ -2345,9 +2778,109 @@ def structure2siesta(structure, verbose=0): app("AtomicCoordinatesFormat Fractional") app("%block AtomicCoordinatesAndAtomicSpecies") for i, site in enumerate(structure): - itype = types_of_specie.index(site.specie) + itype = species_by_znucl.index(site.specie) fc = np.where(np.abs(site.frac_coords) > 1e-8, site.frac_coords, 0.0) app(" %.10f %.10f %.10f %d" % (fc[0], fc[1], fc[2], itype + 1)) app("%endblock AtomicCoordinatesAndAtomicSpecies") return "\n".join(lines) + + +class StructDiff: + """ + Print difference among structures. + """ + def __init__(self, labels: list[str], structures): + """ + Args: + labels: Labels associated to structures + structures: List of structures or objects that can be converted to structures. + """ + self.labels = labels + self.structs = [Structure.as_structure(s) for s in structures] + + # Consistency check. + if len(self.labels) != len(self.structs): + raise ValueError("len(self.labels) != len(self.structs)") + if len(self.labels) != len(self.labels): + raise ValueError(f"Found duplicated entries in: {self.labels}") + natom = len(self.structs[0]) + if any(len(s) != natom for s in self.structs): + raise ValueError(f"structures have different number of atoms!") + + def del_label(self, label: str) -> None: + """Remove entry associated to label.""" + for il, this_label in enumerate(self.labels): + if label == this_label: + del self.labels[il] + del self.structs[il] + + def get_lattice_dataframe(self) -> pd.DataFrame: + """ + Build dataframe with lattice parameters. + """ + d_list = [] + for label, structure in zip(self.labels, self.structs): + d = {"label": label} + for i, k in enumerate(["a", "b", "c"]): + d[k] = structure.lattice.abc[i] + for i, k in enumerate(["alpha", "beta", "gamma"]): + d[k] = structure.lattice.angles[i] + d_list.append(d) + + return pd.DataFrame(d_list).set_index("label", inplace=False) + + def get_sites_dataframe(self, with_cart_coords=False) -> pd.DataFrame: + """ + Build dataframe with site positions. + """ + # Handle possible rigid shift. + #shift_cart, shift_frac = np.zeros(3), np.zeros(3) + #if allow_rigid_shift: + # site1, site2 = self.structs[0][0], self.structs[1][0] + # shift_cart = site2.coords - site1.coords + # shift_frac = site2.frac_coords - site1.frac_coords + + d_list = [] + natom = len(self.structs[0]) + for isite in range(natom): + for label, structure in zip(self.labels, self.structs): + site = structure[isite] + d = {"label": label, "site_index": isite} + for i, k in enumerate(["xred1", "xred2", "xred3"]): + d[k] = site.frac_coords[i] + if with_cart_coords: + for i, k in enumerate(["xcart1", "xcart2", "xcart3"]): + d[k] = site.coords[i] + d_list.append(d) + + return pd.DataFrame(d_list).set_index("label", inplace=False) + + def tabulate(self, only_lattice=False, allow_rigid_shift=True, with_cart_coords=False, file=sys.stdout) -> None: + """ + Tabulate lattice parameters and atomic positions. + + Args: + only_lattice: + allow_rigid_shift: + with_cart_coords: + file: Output stream + """ + # Compare lattices. + df = self.get_lattice_dataframe() + print("\nLattice parameters (Ang units):", file=file) + print(df.to_string(), file=file) + if only_lattice: return + + # Compare sites. + natom = len(self.structs[0]) + if any(len(s) != natom for s in self.structs): return + df = self.get_sites_dataframe(with_cart_coords=with_cart_coords) + + print("\nAtomic sites (Ang units):", file=file) + print(df.to_string(), file=file) + print("", file=file) + + #def diff(self, ref_label, with_cart_coords=False, file=sys.stdout) -> None: + # df = self.get_lattice_dataframe() + # df = self.get_sites_dataframe(with_cart_coords=with_cart_coords) diff --git a/abipy/core/symmetries.py b/abipy/core/symmetries.py index e0ebfc683..69ecad163 100644 --- a/abipy/core/symmetries.py +++ b/abipy/core/symmetries.py @@ -1,10 +1,13 @@ # coding: utf-8 """Objects used to deal with symmetry operations in crystals.""" +from __future__ import annotations + import sys import abc import warnings import collections import numpy as np +import pandas as pd import spglib from monty.string import is_string @@ -13,8 +16,8 @@ from monty.termcolor import cprint from monty.collections import dict2namedtuple from pymatgen.symmetry.analyzer import SpacegroupAnalyzer -from pymatgen.util.serialization import SlotPickleMixin from abipy.core.kpoints import wrap_to_ws, issamek, has_timrev_from_kptopt +from abipy.core.mixins import SlotPickleMixin __all__ = [ @@ -30,7 +33,7 @@ def wrap_in_ucell(x): return x % 1 -def is_integer(x, atol=1e-08): +def is_integer(x, atol=1e-08) -> bool: """ True if all x is integer within the absolute tolerance atol. @@ -61,9 +64,9 @@ def mati3inv(mat3, trans=True): Used for symmetry operations. This function applies to *ORTHOGONAL* matrices only. Since these form a group, inverses are also integer arrays. """ - mat3 = np.reshape(np.array(mat3, dtype=np.int), (3, 3)) + mat3 = np.reshape(np.array(mat3, dtype=int), (3, 3)) - mit = np.empty((3, 3), dtype=np.int) + mit = np.empty((3, 3), dtype=int) mit[0,0] = mat3[1,1] * mat3[2,2] - mat3[2,1] * mat3[1,2] mit[1,0] = mat3[2,1] * mat3[0,2] - mat3[0,1] * mat3[2,2] mit[2,0] = mat3[0,1] * mat3[1,2] - mat3[1,1] * mat3[0,2] @@ -87,7 +90,7 @@ def mati3inv(mat3, trans=True): return mit.T.copy() -def _get_det(mat): +def _get_det(mat) -> float: """ Return the determinant of a 3x3 rotation matrix mat. @@ -121,8 +124,6 @@ def indsym_from_symrel(symrel, tnons, structure, tolsym=1e-8): tnons: float (nsym, 3) array with nonsymmorphic translations for each symmetry. structure: |Structure| object. tolsym: tolerance for the symmetries - - Returns: """ natom = len(structure) nsym = len(symrel) @@ -172,7 +173,7 @@ def indsym_from_symrel(symrel, tnons, structure, tolsym=1e-8): difmax = np.abs(difmin).max() err = max(err, difmax) if difmax > tolsym: - cprint(""" + cprint(f""" Trouble finding symmetrically equivalent atoms. Applying inverse of symm number {isym} to atom number {iatom} of typat',typat(iatom) gives tratom=',tratom(1:3) This is further away from every atom in crystal than the allowed tolerance. @@ -185,7 +186,7 @@ def indsym_from_symrel(symrel, tnons, structure, tolsym=1e-8): This indicates that when symatm attempts to find atoms symmetrically related to a given atom, the nearest candidate is further away than some tolerance. Should check atomic coordinates and symmetry group input data. -""".format(), "red") +""", color="red") if err > tolsym: raise ValueError("maximum err %s is larger than tolsym: %s" % (err, tolsym)) @@ -316,9 +317,9 @@ def inverse(self): afm_sign=self.afm_sign) @lazy_property - def isE(self): + def isE(self) -> bool: """True if identity operator.""" - return (np.all(self.rot_r == np.eye(3, dtype=np.int)) and + return (np.all(self.rot_r == np.eye(3, dtype=int)) and is_integer(self.tau, atol=self._ATOL_TAU) and self.time_sign == 1 and self.afm_sign == 1) @@ -342,7 +343,7 @@ def __repr__(self): def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: def vec2str(vec): return "%2d,%2d,%2d" % tuple(v for v in vec) @@ -356,37 +357,37 @@ def vec2str(vec): return s @lazy_property - def is_symmorphic(self): + def is_symmorphic(self) -> bool: """True if the fractional translation is non-zero.""" return np.any(np.abs(self.tau) > 0.0) @lazy_property - def det(self): + def det(self) -> int: """Determinant of the rotation matrix [-1, +1].""" return _get_det(self.rot_r) @lazy_property - def trace(self): + def trace(self) -> int: """Trace of the rotation matrix.""" return self.rot_r.trace() @lazy_property - def is_proper(self): + def is_proper(self) -> bool: """True if the rotational part has determinant == 1.""" return self.det == +1 @lazy_property - def has_timerev(self): + def has_timerev(self) -> bool: """True if symmetry contains the time-reversal operator.""" return self.time_sign == -1 @lazy_property - def is_fm(self): + def is_fm(self) -> bool: """True if self if ferromagnetic symmetry.""" return self.afm_sign == +1 @lazy_property - def is_afm(self): + def is_afm(self) -> bool: """True if self if anti-ferromagnetic symmetry.""" return self.afm_sign == -1 @@ -416,7 +417,7 @@ def preserve_k(self, frac_coords, ret_g0=True): sk = self.rotate_k(frac_coords, wrap_tows=False) if ret_g0: - return issamek(sk, frac_coords), np.array(np.round(sk - frac_coords), dtype=np.int) + return issamek(sk, frac_coords), np.array(np.round(sk - frac_coords), dtype=int) else: return issamek(sk, frac_coords) @@ -481,15 +482,15 @@ def __str__(self): lines = [str(op) for op in self] return "\n".join(lines) - def show_ops(self, stream=sys.stdout): + def show_ops(self, stream=sys.stdout) -> None: lines = [str(op) for op in self] stream.writelines("\n".join(lines)) - def count(self, op): + def count(self, op) -> int: """Returns the number of occurences of operation op in self.""" return self._ops.count(op) - def index(self, op): + def index(self, op) -> int: """ Return the (first) index of operation op in self. @@ -498,14 +499,14 @@ def index(self, op): """ return self._ops.index(op) - def find(self, op): + def find(self, op) -> int: """Return the (first) index of op in self. -1 if not found.""" try: return self.index(op) except ValueError: return -1 - def is_group(self): + def is_group(self) -> bool: """True if this set of operations represent a group.""" check = 0 @@ -528,17 +529,17 @@ def is_group(self): return check == 0 - def is_commutative(self): + def is_commutative(self) -> bool: """True if all operations commute with each other.""" for op1, op2 in iuptri(self, diago=False): if op1 * op2 != op2 * op1: return False return True - def is_abelian_group(self): + def is_abelian_group(self) -> bool: """True if commutative group.""" return self.is_commutative() and self.is_group() - def asdict(self): + def asdict(self) -> dict: """ Returns a dictionary where the keys are the symmetry operations and the values are the indices of the operations in the iterable. @@ -555,13 +556,13 @@ def asdict(self): #def is_superset(self, other) @lazy_property - def mult_table(self): + def mult_table(self) -> np.ndarray: """ Given a set of nsym 3x3 operations which are supposed to form a group, this routine constructs the multiplication table of the group. mtable[i,j] gives the index of the product S_i * S_j. """ - mtable = np.empty((len(self), len(self)), dtype=np.int) + mtable = np.empty((len(self), len(self)), dtype=int) d = self.asdict() for i, op1 in enumerate(self): @@ -577,12 +578,12 @@ def mult_table(self): return mtable @property - def num_classes(self): + def num_classes(self) -> int: """Number of classes.""" return len(self.class_indices) @lazy_property - def class_indices(self): + def class_indices(self) -> list: """ A class is defined as the set of distinct elements obtained by considering for each element, S, of the group all its conjugate @@ -739,14 +740,14 @@ def from_structure(cls, structure, has_timerev=True, symprec=1e-5, angle_toleran has_timerev=has_timerev, inord="C") - def __repr__(self): + def __repr__(self) -> str: return "spgid: %d, num_spatial_symmetries: %d, has_timerev: %s, symmorphic: %s" % ( self.spgid, self.num_spatial_symmetries, self.has_timerev, self.is_symmorphic) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = ["spgid: %d, num_spatial_symmetries: %d, has_timerev: %s, symmorphic: %s" % ( self.spgid, self.num_spatial_symmetries, self.has_timerev, self.is_symmorphic)] @@ -759,12 +760,12 @@ def to_string(self, verbose=0): return "\n".join(lines) @lazy_property - def is_symmorphic(self): + def is_symmorphic(self) -> bool: """True if there's at least one operation with non-zero fractional translation.""" return any(op.is_symmorphic for op in self) @property - def has_timerev(self): + def has_timerev(self) -> bool: """True if time-reversal symmetry is present.""" return self._has_timerev @@ -795,7 +796,7 @@ def symafm(self): return self._symafm @property - def num_spatial_symmetries(self): + def num_spatial_symmetries(self) -> int: fact = 2 if self.has_timerev else 1 return int(len(self) / fact) @@ -886,6 +887,21 @@ def find_little_group(self, kpoint): k_symmops = [self[i] for i in to_spgrp] return LittleGroup(kpoint, k_symmops, g0vecs) + def get_spglib_hall_number(self, symprec=1e-5): + """ + Uses spglib.get_hall_number_from_symmetry to determine the hall number + based on the symmetry operations. Useful when the space group number + is not available, but the symmetries are (e.g. the DDB file) + + Args: + symprec: distance tolerance in fractional coordinates (not the standard + in cartesian coordinates). See spglib docs for more details. + + Returns: + int: the hall number. + """ + return spglib.get_hall_number_from_symmetry(self.symrel, self.tnons, symprec=symprec) + # FIXME To maintain backward compatibility. SpaceGroup = AbinitSpaceGroup @@ -911,7 +927,7 @@ def __init__(self, kpoint, symmops, g0vecs): self.kgroup = LatticePointGroup(krots) @lazy_property - def is_symmorphic(self): + def is_symmorphic(self) -> bool: """True if there's at least one operation with non-zero fractional translation.""" return any(op.is_symmorphic for op in self) @@ -920,7 +936,7 @@ def symmops(self): return self._ops @lazy_property - def on_bz_border(self): + def on_bz_border(self) -> bool: """ True if the k-point is on the border of the BZ. """ @@ -939,7 +955,7 @@ def __repr__(self): def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation of little group.""" lines = ["Kpoint-group: %s, Kpoint: %s, Symmorphic: %s" % (self.kgroup, self.kpoint, self.is_symmorphic)] app = lines.append @@ -986,12 +1002,12 @@ def __str__(self): return "%s, %s (%d)" % (self.herm_symbol, self.sch_symbol, self.spgid) @property - def sch_symbol(self): + def sch_symbol(self) -> str: """Schoenflies symbol""" return herm2sch(self.herm_symbol) @property - def spgid(self): + def spgid(self) -> int: """ID in the space group table.""" return sch2spgid(self.sch_symbol) @@ -1009,10 +1025,10 @@ class LatticeRotation(Operation): This object is immutable and therefore we do not inherit from |numpy-array|. """ - _E3D = np.identity(3, np.int) + _E3D = np.identity(3, int) def __init__(self, mat): - self.mat = np.asarray(mat, dtype=np.int) + self.mat = np.asarray(mat, dtype=int) self.mat.shape = (3, 3) def _find_order_and_rootinv(self): @@ -1159,7 +1175,7 @@ def name(self): # TODO: Need to find an easy way to map classes in internal database # onto classes computed by client code when calculation has been done # with non-conventional settings (spglib?) -class Irrep(object): +class Irrep: """ This object represents an irreducible representation. @@ -1207,7 +1223,7 @@ def character(self): #def dataframe(self): -def bilbao_ptgroup(sch_symbol): +def bilbao_ptgroup(sch_symbol: str): """ Returns an instance of :class:`BilbaoPointGroup` from a string with the point group symbol or a number with the spacegroup ID. @@ -1222,7 +1238,7 @@ def bilbao_ptgroup(sch_symbol): return BilbaoPointGroup(**entry) -class BilbaoPointGroup(object): +class BilbaoPointGroup: """ A :class:`BilbaoPointGroup` is a :class:`Pointgroup` with irreducible representations """ @@ -1249,32 +1265,32 @@ def __init__(self, sch_symbol, rotations, class_names, class_range, irreps): self.irreps_by_name[name] = irrep @property - def herm_symbol(self): + def herm_symbol(self) -> str: """Hermann-Mauguin symbol.""" return herm2sch(self.sch_symbol) @property - def spgid(self): + def spgid(self) -> int: """ID in the space group table.""" return sch2spgid(self.sch_symbol) @property - def num_rots(self): + def num_rots(self) -> int: """Number of rotations.""" return len(self.rotations) @property - def num_irreps(self): + def num_irreps(self) -> int: """Number of irreducible representations.""" return len(self.irreps) @property - def irrep_names(self): + def irrep_names(self) -> list: """List with the names of the irreps.""" return list(self.irreps_by_name.keys()) @lazy_property - def character_table(self): + def character_table(self) -> pd.DataFrame: """ Dataframe with irreps. """ @@ -1299,7 +1315,7 @@ def character_table(self): return df - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """ Return string with the character_table """ diff --git a/abipy/core/testing.py b/abipy/core/testing.py index bb94ea2da..f1a0c9fe6 100644 --- a/abipy/core/testing.py +++ b/abipy/core/testing.py @@ -6,9 +6,10 @@ This single module should provide all the common functionality for abipy tests in a single location, so that test scripts can just import it and work right away. """ +from __future__ import annotations + import os import numpy -import subprocess import json import tempfile import unittest @@ -18,13 +19,13 @@ import numpy.testing.utils as nptu import abipy.data as abidata +from typing import Optional from functools import wraps -from monty.os.path import which +from shutil import which from monty.string import is_string from pymatgen.util.testing import PymatgenTest - -import logging -logger = logging.getLogger(__file__) +from abipy.core.structure import Structure +from abipy.abio.inputs import AbinitInput, MultiDataset root = os.path.dirname(__file__) @@ -33,18 +34,18 @@ ] -def cmp_version(this, other, op=">="): +def cmp_version(this: str, other: str, op: str = ">=") -> bool: """ Compare two version strings with the given operator ``op`` >>> assert cmp_version("1.1.1", "1.1.0") and not cmp_version("1.1.1", "1.1.0", op="==") """ - from pkg_resources import parse_version + from packaging.version import parse as parse_version from monty.operator import operator_from_str op = operator_from_str(op) return op(parse_version(this), parse_version(other)) -def has_abinit(version=None, op=">=", manager=None): +def has_abinit(version: Optional[str] = None, op: str = ">=", manager=None) -> bool: """ True if abinit is available via TaskManager configuration options. If version is not None, `abinit_version op version` is evaluated and the result is returned. @@ -61,7 +62,7 @@ def has_abinit(version=None, op=">=", manager=None): _HAS_MATPLOTLIB_CALLS = 0 -def has_matplotlib(version=None, op=">="): +def has_matplotlib(version: Optional[str] = None, op: str = ">=") -> bool: """ True if matplotlib_ is installed. If version is None, the result of matplotlib.__version__ `op` version is returned. @@ -96,7 +97,23 @@ def has_matplotlib(version=None, op=">="): return cmp_version(matplotlib.__version__, version, op=op) -def has_seaborn(): +def has_plotly(version: Optional[str] = None, op: str = ">=") -> bool: + """ + True if plotly is installed. + If version is None, the result of plotly.__version__ `op` version is returned. + """ + try: + import plotly + # have_display = "DISPLAY" in os.environ + except ImportError: + print("Skipping plotlyt test") + return False + + if version is None: return True + return cmp_version(plotly.__version__, version, op=op) + + +def has_seaborn() -> bool: """True if seaborn_ is installed.""" try: import seaborn as sns @@ -105,7 +122,7 @@ def has_seaborn(): return False -def has_phonopy(version=None, op=">="): +def has_phonopy(version: Optional[str] = None, op: str = ">=") -> bool: """ True if phonopy_ is installed. If version is None, the result of phonopy.__version__ `op` version is returned. @@ -136,12 +153,11 @@ def get_mock_module(): return mock -def json_read_abinit_input_from_path(json_path): +def json_read_abinit_input_from_path(json_path: str) -> AbinitInput: """ - Read a json file from the absolute path ``json_path``, return |AbinitInput| instance. + Read a json file from the absolute path ``json_path``, + returns: |AbinitInput| instance. """ - from abipy.abio.inputs import AbinitInput - with open(json_path, "rt") as fh: d = json.load(fh) @@ -277,7 +293,6 @@ def get_gsinput_alas_ngkpt(ngkpt, usepaw=0, as_task=False): pseudos = abidata.pseudos("13al.981214.fhi", "33as.pspnc") structure = abidata.structure_from_ucell("AlAs") - from abipy.abio.inputs import AbinitInput scf_input = AbinitInput(structure, pseudos=pseudos) scf_input.set_vars( @@ -307,31 +322,58 @@ class AbipyTest(PymatgenTest): SkipTest = unittest.SkipTest @staticmethod - def which(program): + def which(program: str) -> bool: """Returns full path to a executable. None if not found or not executable.""" return which(program) @staticmethod - def has_abinit(version=None, op=">="): + def has_abinit(version: Optional[str] = None, op: str = ">=") -> bool: """Return True if abinit is in $PATH and version is op min_version.""" return has_abinit(version=version, op=op) - def skip_if_abinit_not_ge(self, version): + def skip_if_abinit_not_ge(self, version: str) -> None: """Skip test if Abinit version is not >= `version`""" op = ">=" if not self.has_abinit(version, op=op): raise unittest.SkipTest("This test requires Abinit version %s %s" % (op, version)) @staticmethod - def has_matplotlib(version=None, op=">="): + def test_mprester(): + """Skip MP rester tests.""" + raise unittest.SkipTest("MPRester tests have been disabled") + #return True + + def is_url_reachable(url: str) -> bool: + """check if a URL is reachable:""" + import requests + try: + # Send a HEAD request to the URL + response = requests.head(url, timeout=5) + + # Check if the response status code is 200 (OK) + if response.status_code == 200: + return True + else: + return False + except requests.exceptions.RequestException as e: + # Handle any request exceptions (e.g., connection errors) + #print(f"Error: {e}") + return False + + @staticmethod + def has_matplotlib(version: Optional[str] = None, op: str = ">=") -> bool: return has_matplotlib(version=version, op=op) @staticmethod - def has_seaborn(): + def has_plotly(version: Optional[str] = None, op: str = ">=") -> bool: + return has_plotly(version=version, op=op) + + @staticmethod + def has_seaborn() -> bool: return has_seaborn() @staticmethod - def has_ase(version=None, op=">="): + def has_ase(version: Optional[str] = None, op: str = ">=") -> bool: """True if ASE_ package is available.""" try: import ase @@ -342,7 +384,16 @@ def has_ase(version=None, op=">="): return cmp_version(ase.__version__, version, op=op) @staticmethod - def has_skimage(): + def has_ifermi() -> bool: + """True if ifermi package is available.""" + try: + from ifermi.interpolate import FourierInterpolator + return True + except ImportError: + return False + + @staticmethod + def has_skimage() -> bool: """True if skimage package is available.""" try: from skimage import measure @@ -351,7 +402,7 @@ def has_skimage(): return False @staticmethod - def has_python_graphviz(need_dotexec=True): + def has_python_graphviz(need_dotexec: bool = True) -> bool: """ True if python-graphviz package is installed and dot executable in path. """ @@ -363,7 +414,7 @@ def has_python_graphviz(need_dotexec=True): return which("dot") is not None if need_dotexec else True @staticmethod - def has_mayavi(): + def has_mayavi() -> bool: """ True if mayavi_ is available. Set also offscreen to True """ @@ -381,7 +432,7 @@ def has_mayavi(): mlab.options.backend = "test" return True - def has_panel(self): + def has_panel(self) -> bool: """False if Panel library is not installed.""" try: import param @@ -391,7 +442,7 @@ def has_panel(self): except ImportError: return False - def has_networkx(self): + def has_networkx(self) -> bool: """False if networkx library is not installed.""" try: import networkx as nx @@ -399,7 +450,7 @@ def has_networkx(self): except ImportError: return False - def has_graphviz(self): + def has_graphviz(self) -> bool: """True if graphviz library is installed and `dot` in $PATH""" try: from graphviz import Digraph @@ -410,19 +461,26 @@ def has_graphviz(self): if self.which("dot") is None: return False return graphviz + def has_phonopy(self, version: Optional[str] = None, op: str = ">=") -> bool: + """ + True if phonopy_ is installed. + If version is None, the result of phonopy.__version__ `op` version is returned. + """ + return has_phonopy(version=version, op=op) + @staticmethod - def get_abistructure_from_abiref(basename): + def get_abistructure_from_abiref(basename: str) -> Structure: """Return an Abipy |Structure| from the basename of one of the reference files.""" from abipy.core.structure import Structure return Structure.as_structure(abidata.ref_file(basename)) @staticmethod - def mkdtemp(**kwargs): + def mkdtemp(**kwargs) -> str: """Invoke mkdtep with kwargs, return the name of a temporary directory.""" return tempfile.mkdtemp(**kwargs) @staticmethod - def tmpfileindir(basename, **kwargs): + def tmpfileindir(basename: str, **kwargs) -> str: """ Return the absolute path of a temporary file with basename ``basename`` created in a temporary directory. """ @@ -430,13 +488,24 @@ def tmpfileindir(basename, **kwargs): return os.path.join(tmpdir, basename) @staticmethod - def get_tmpname(**kwargs): + def get_tmpname(**kwargs) -> str: """Invoke mkstep with kwargs, return the name of a temporary file.""" _, tmpname = tempfile.mkstemp(**kwargs) return tmpname + def tmpfile_write(self, string: str) -> str: + """ + Write string to a temporary file. Returns the name of the temporary file. + """ + fd, tmpfile = tempfile.mkstemp(text=True) + + with open(tmpfile, "wt") as fh: + fh.write(string) + + return tmpfile + @staticmethod - def has_nbformat(): + def has_nbformat() -> bool: """Return True if nbformat is available and we can test the generation of jupyter_ notebooks.""" try: import nbformat @@ -444,10 +513,10 @@ def has_nbformat(): except ImportError: return False - def run_nbpath(self, nbpath): - """Test that the notebook in question runs all cells correctly.""" - nb, errors = notebook_run(nbpath) - return nb, errors + #def run_nbpath(self, nbpath: str): + # """Test that the notebook in question runs all cells correctly.""" + # nb, errors = notebook_run(nbpath) + # return nb, errors @staticmethod def has_ipywidgets(): @@ -464,26 +533,26 @@ def has_ipywidgets(): return False @staticmethod - def assert_almost_equal(actual, desired, decimal=7, err_msg='', verbose=True): + def assert_almost_equal(actual, desired, decimal=7, err_msg='', verbose=True) -> None: """ Alternative naming for assertArrayAlmostEqual. """ return nptu.assert_almost_equal(actual, desired, decimal, err_msg, verbose) @staticmethod - def assert_equal(actual, desired, err_msg='', verbose=True): + def assert_equal(actual, desired, err_msg='', verbose=True) -> None: """ Alternative naming for assertArrayEqual. """ return nptu.assert_equal(actual, desired, err_msg=err_msg, verbose=verbose) @staticmethod - def json_read_abinit_input(json_basename): + def json_read_abinit_input(json_basename: str) -> AbinitInput: """Return an |AbinitInput| from the basename of the file in abipy/data/test_files.""" return json_read_abinit_input_from_path(os.path.join(root, '..', 'test_files', json_basename)) @staticmethod - def assert_input_equality(ref_basename, input_to_test, rtol=1e-05, atol=1e-08, equal_nan=False): + def assert_input_equality(ref_basename, input_to_test, rtol=1e-05, atol=1e-08, equal_nan=False) -> None: """ Check equality between an input and a reference in test_files. only input variables and structure are compared. @@ -508,7 +577,7 @@ def straceback(): return traceback.format_exc() @staticmethod - def skip_if_not_phonopy(version=None, op=">="): + def skip_if_not_phonopy(version: Optional[str] = None, op: str = ">=") -> None: """ Raise SkipTest if phonopy_ is not installed. Use ``version`` and ``op`` to ask for a specific version @@ -521,7 +590,7 @@ def skip_if_not_phonopy(version=None, op=">="): raise unittest.SkipTest(msg) @staticmethod - def skip_if_not_bolztrap2(version=None, op=">="): + def skip_if_not_bolztrap2(version: Optional[str] = None, op: str = ">=") -> None: """ Raise SkipTest if bolztrap2 is not installed. Use ``version`` and ``op`` to ask for a specific version @@ -536,7 +605,7 @@ def skip_if_not_bolztrap2(version=None, op=">="): msg = "This test requires bolztrap2 version %s %s" % (op, version) raise unittest.SkipTest(msg) - def skip_if_not_executable(self, executable): + def skip_if_not_executable(self, executable: str) -> None: """ Raise SkipTest if executable is not installed. """ @@ -544,7 +613,7 @@ def skip_if_not_executable(self, executable): raise unittest.SkipTest("This test requires `%s` in PATH" % str(executable)) @staticmethod - def skip_if_not_pseudodojo(): + def skip_if_not_pseudodojo() -> None: """ Raise SkipTest if pseudodojo package is not installed. """ @@ -560,14 +629,14 @@ def get_mock_module(): def decode_with_MSON(self, obj): """ - Convert obj into JSON assuming MSONable protocolo. Return new object decoded with MontyDecoder + Convert obj into JSON assuming MSONable protocol. Return new object decoded with MontyDecoder """ from monty.json import MSONable, MontyDecoder self.assertIsInstance(obj, MSONable) return json.loads(obj.to_json(), cls=MontyDecoder) @staticmethod - def abivalidate_input(abinput, must_fail=False): + def abivalidate_input(abinput: AbinitInput, must_fail: bool = False) -> None: """ Invoke Abinit to test validity of an |AbinitInput| object Print info to stdout if failure before raising AssertionError. @@ -587,7 +656,7 @@ def abivalidate_input(abinput, must_fail=False): assert v.retcode == 0 @staticmethod - def abivalidate_multi(multi): + def abivalidate_multi(multi: MultiDataset) -> None: """ Invoke Abinit to test validity of a |MultiDataset| or a list of |AbinitInput| objects. """ @@ -606,7 +675,9 @@ def abivalidate_multi(multi): if errors: for e in errors: + print(90 * "=") print(e) + print(90 * "=") assert not errors @@ -646,33 +717,131 @@ def get_gsinput_alas_ngkpt(*args, **kwargs): return get_gsinput_alas_ngkpt(*args, **kwargs) -def notebook_run(path): - """ - Execute a notebook via nbconvert and collect output. +ABIPY_TESTDB_NAME = "abipy_unit_tests" - Taken from - https://blog.thedataincubator.com/2016/06/testing-jupyter-notebooks/ - Args: - path (str): file path for the notebook object +def abipy_has_mongodb(host='localhost', port=27017, name=ABIPY_TESTDB_NAME, username=None, password=None) -> bool: + try: + from pymongo import MongoClient + connection = MongoClient(host, port, j=True) + db = connection[name] + if username: + db.authenticate(username, password) + return True + except Exception: + return False - Returns: (parsed nb object, execution errors) - """ - import nbformat - dirname, __ = os.path.split(path) - os.chdir(dirname) - with tempfile.NamedTemporaryFile(suffix=".ipynb") as fout: - args = ["jupyter", "nbconvert", "--to", "notebook", "--execute", - "--ExecutePreprocessor.timeout=300", - "--ExecutePreprocessor.allow_errors=True", - "--output", fout.name, path] - subprocess.check_call(args) - - fout.seek(0) - nb = nbformat.read(fout, nbformat.current_nbformat) - - errors = [output for cell in nb.cells if "outputs" in cell - for output in cell["outputs"] if output.output_type == "error"] - - return nb, errors +class AbipyTestWithMongoDb(AbipyTest): + """A suite of tests requiring a MongoDB database.""" + + #def has_mongodb(self): + # """True if mongodb server is reachable.""" + # return abipy_has_mongodb() + + #@classmethod + #def setUpClass(cls): + + #@classmethod + #def tearDownClass(cls): + + #@classmethod + #def setup_mongodb(cls): + # try: + # cls._connection = connect(db=TESTDB_NAME) + # cls._connection.drop_database(TESTDB_NAME) + # cls.db = get_db() + # except Exception: + # cls.db = None + # cls._connection = None + # + #@classmethod + #def teardown_mongodb(cls): + # if cls._connection: + # cls._connection.drop_database(TESTDB_NAME) + +#class MongoTemporaryInstance: +# """Singleton to manage a temporary MongoDB instance +# +# Use this for testing purpose only. The instance is automatically destroyed +# at the end of the program. +# +# """ +# _instance = None +# +# @classmethod +# def get_instance(cls): +# if cls._instance is None: +# cls._instance = cls() +# atexit.register(cls._instance.shutdown) +# return cls._instance +# +# def __init__(self): +# self._tmpdir = tempfile.mkdtemp() +# self._process = subprocess.Popen(['mongod', '--bind_ip', 'localhost', +# '--port', str(MONGODB_TEST_PORT), +# '--dbpath', self._tmpdir, +# '--nojournal', '--nohttpinterface', +# '--noauth', '--smallfiles', +# '--syncdelay', '0', +# '--maxConns', '10', +# '--nssize', '1', ], +# stdout=open(os.devnull, 'wb'), +# stderr=subprocess.STDOUT) +# +# # wait for the instance to be ready +# # Mongo is ready in a glance, we just wait to be able to open a +# # Connection. +# import pymongo +# for i in range(3): +# time.sleep(0.1) +# try: +# self._conn = pymongo.Connection('localhost', MONGODB_TEST_PORT) +# except pymongo.errors.ConnectionFailure: +# continue +# else: +# break +# else: +# self.shutdown() +# assert False, 'Cannot connect to the mongodb test instance' +# +# @property +# def conn(self): +# return self._conn +# +# def shutdown(self): +# if self._process: +# self._process.terminate() +# self._process.wait() +# self._process = None +# shutil.rmtree(self._tmpdir, ignore_errors=True) + + +#def notebook_run(path): +# """ +# Execute a notebook via nbconvert and collect output. +# +# Taken from: https://blog.thedataincubator.com/2016/06/testing-jupyter-notebooks/ +# +# Args: +# path (str): file path for the notebook object +# +# Returns: (parsed nb object, execution errors) +# """ +# import nbformat +# dirname, _ = os.path.split(path) +# os.chdir(dirname) +# with tempfile.NamedTemporaryFile(suffix=".ipynb") as fout: +# args = ["jupyter", "nbconvert", "--to", "notebook", "--execute", +# "--ExecutePreprocessor.timeout=300", +# "--ExecutePreprocessor.allow_errors=True", +# "--output", fout.name, path] +# subprocess.check_call(args) +# +# fout.seek(0) +# nb = nbformat.read(fout, nbformat.current_nbformat) +# +# errors = [output for cell in nb.cells if "outputs" in cell +# for output in cell["outputs"] if output.output_type == "error"] +# +# return nb, errors diff --git a/abipy/core/tests/test_atom.py b/abipy/core/tests/test_atom.py new file mode 100644 index 000000000..bd732c4a8 --- /dev/null +++ b/abipy/core/tests/test_atom.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python +import collections +import os + +from abipy.core.testing import AbipyTest + +from abipy.core.atom import ( + NlkState, + #QState, + AtomicConfiguration, + RadialFunction, + #RadialWaveFunction, +) + +from abipy.data import nist_database + + +class NlkTest(AbipyTest): + + def test_nlk_api(self): + """Testing NlkState API.""" + nlk = NlkState(n=1, l=0, k=None) + str(nlk), repr(nlk) + assert nlk.latex + assert nlk.j == nlk.l + d = {nlk: "foo"} + assert d[nlk] == "foo" + + same_nlk = NlkState(n=1, l=0) + assert nlk == same_nlk and d[same_nlk] == "foo" + + +class AtomicConfigurationTest(AbipyTest): + + def test_neutrals(self): + """Testing neutral configurations.""" + for symbol in nist_database.allsymbols: + aconf = AtomicConfiguration.neutral_from_symbol(symbol) + + repr(aconf); str(aconf) + for state in aconf: + repr(state) + str(state) + + # Test the shallow copy of states. + newc = aconf.copy() + assert newc.states is not aconf.states + assert newc.states == aconf.states + assert aconf == newc + + newc.add_state(n=15, l=0, occ=1.0) + assert aconf != newc + + # Cannot add the same state twice. + with self.assertRaises(ValueError): + newc.add_state(n=15, l="s", occ=1.0) + + # aconf is neutral, newc is not. + assert symbol == aconf.symbol + assert aconf.isneutral + assert not newc.isneutral + + assert aconf.spin_mode == "unpolarized" + + # Remove the new state. + newc.remove_state(n=15, l="s", occ=1.0) + assert newc.isneutral + assert aconf == newc + + # Cannot remove the same state twice + with self.assertRaises(ValueError): + newc.remove_state(n=15, l="s", occ=1.0) + + def test_init_from_string(self): + """Initialization of atomic configurations from string""" + for symbol, confstr in nist_database._neutral.items(): + #print("symbol", symbol, confstr) + Z = nist_database.Z_from_symbol(symbol) + aconf = AtomicConfiguration.from_string(Z, confstr) + + assert aconf == AtomicConfiguration.neutral_from_symbol(symbol) + + +class RadialFunctionTest(AbipyTest): + + def test_base(self): + """Basic tests for RadialFunction.""" + filename = os.path.join(os.path.dirname(__file__), "wf-3s.ape") + + rf = RadialFunction.from_filename(filename) + rf_der = RadialFunction.from_filename(filename, cols=(0,2)) + + repr(rf); str(rf) + assert isinstance(rf, collections.abc.Iterable) + + # Integral in 3D + self.assert_almost_equal(rf.integral3d(), 1.0) + + for r, v in rf: + rf.derivatives(r) + + rslice, vslice = rf[1:4] + self.assert_equal(rslice, rf.rmesh[1:4]) + self.assert_equal(vslice, rf.values[1:4]) diff --git a/abipy/core/tests/test_fields.py b/abipy/core/tests/test_fields.py index ace99dbcb..382c83dfb 100644 --- a/abipy/core/tests/test_fields.py +++ b/abipy/core/tests/test_fields.py @@ -167,7 +167,7 @@ def test_silicon_density(self): core_den_2 = Density.ae_core_density_on_mesh(si_den, si_den.structure, rhoc, maxr=1.5, method='mesh3d_dist_gridpoints', small_dist_mesh=(6, 6, 6)) self.assertAlmostEqual(np.sum(core_den_1.datar) * si_den.mesh.dv, 20, delta=0.5) - self.assertArrayAlmostEqual(core_den_1.datar, core_den_2.datar, decimal=1) + self.assert_almost_equal(core_den_1.datar, core_den_2.datar, decimal=1) with self.assertRaises(ValueError): Density.ae_core_density_on_mesh(si_den, si_den.structure, rhoc, maxr=1, nelec=20, tol=0.001, method='get_sites_in_sphere', small_dist_mesh=(2, 2, 2)) @@ -177,7 +177,7 @@ def test_ni_density(self): """Testing density object (spin polarized, collinear).""" ni_den = Density.from_file(abidata.ref_file("ni_666k_DEN.nc")) repr(ni_den); str(ni_den) - ni_den.to_string(verbose=1) + assert ni_den.to_string(verbose=1) self.assert_almost_equal(ni_den.mesh.vectors, pmgu.bohr_to_angstrom * np.reshape([0.0000000, 3.3259180, 3.3259180, diff --git a/abipy/core/tests/test_func1d.py b/abipy/core/tests/test_func1d.py index 88694d96f..3c5b683d9 100644 --- a/abipy/core/tests/test_func1d.py +++ b/abipy/core/tests/test_func1d.py @@ -83,14 +83,20 @@ def primitive(x): # Test Kramers-Kronig methods. # TODO: This is not a response function. Should use realistic values. - for with_div in (True, False): - real_part = eix.real_from_kk(with_div=with_div) - imag_part = real_part.imag_from_kk(with_div=with_div) + #for with_div in (True, False): + # real_part = eix.real_from_kk(with_div=with_div) + # imag_part = real_part.imag_from_kk(with_div=with_div) if self.has_matplotlib(): - cosf.plot(show=False) - eix.plot(show=False) - eix.plot(cplx_mode="re", exchange_xy=True, xfactor=2, yfactor=3, show=False) + assert cosf.plot(show=False) + assert eix.plot(show=False) + assert eix.plot(cplx_mode="re", exchange_xy=True, xfactor=2, yfactor=3, show=False) + + if self.has_plotly(): + assert cosf.plotly(show=False) + from abipy.tools.plotting import get_fig_plotly + fig, go = get_fig_plotly() + eix.plotly_traces(fig, cplx_mode="re", exchange_xy=True, xfactor=2, yfactor=3) def test_fft(self): """Test FFT transforms.""" diff --git a/abipy/core/tests/test_gsphere.py b/abipy/core/tests/test_gsphere.py index d1c1380ca..8d1143058 100644 --- a/abipy/core/tests/test_gsphere.py +++ b/abipy/core/tests/test_gsphere.py @@ -35,7 +35,7 @@ def test_base(self): assert np.all(gsphere.zeros() == 0) values = gsphere.czeros() - assert values.dtype == np.complex + assert values.dtype == complex assert np.all(values == 0) assert len(gsphere.empty()) == len(gsphere) @@ -49,7 +49,7 @@ def test_fft(self): mesh = Mesh3D( (12,3,5), rprimd) extra_dims = [(), 1, (2,), (3,4)] - types = [np.float, np.complex] + types = [float, complex] for exdim in extra_dims: for typ in types: diff --git a/abipy/core/tests/test_kpoints.py b/abipy/core/tests/test_kpoints.py index bc3598431..0d69ac0bb 100644 --- a/abipy/core/tests/test_kpoints.py +++ b/abipy/core/tests/test_kpoints.py @@ -41,9 +41,9 @@ def test_wrap_to_bz(self): def test_is_diagonal(self): """Testing is_diagonal""" from abipy.core.kpoints import is_diagonal - assert is_diagonal(np.eye(3, dtype=np.int)) - assert is_diagonal(np.eye(3, dtype=np.float)) - a = np.eye(3, dtype=np.float) + assert is_diagonal(np.eye(3, dtype=int)) + assert is_diagonal(np.eye(3, dtype=float)) + a = np.eye(3, dtype=float) atol = 1e-12 a[1, 2] = atol assert is_diagonal(a, atol=atol) @@ -77,11 +77,12 @@ def test_kpath_from_bounds_and_ndivsm(self): [0.4, 0.0, 0.0 ], [0.5, 0.0, 0.0 ]]) + class TestKpoint(AbipyTest): """Unit tests for Kpoint object.""" def setUp(self): - self.lattice = Lattice([0.5,0.5,0,0,0.5,0,0,0,0.4]) + self.lattice = Lattice([0.5, 0.5, 0, 0, 0.5, 0, 0, 0, 0.4]) # Test API to set tolerances. @@ -105,6 +106,8 @@ def test_kpoint_algebra(self): X = Kpoint([0.5, 0, 0], lattice) K = Kpoint([1/3, 1/3, 1/3], lattice) repr(X); str(X) + assert X.to_string(verbose=0) + assert X.to_string(verbose=1) assert X.to_string(verbose=2) assert X.tos(m="fract") assert X.tos(m="cart") @@ -190,7 +193,7 @@ def test_kpointlist(self): repr(klist); str(klist) self.serialize_with_pickle(klist, protocols=[-1]) - self.assertMSONable(klist, test_if_subclass=False) + self.assert_msonable(klist, test_is_subclass=False) self.assert_equal(klist.frac_coords.flatten(), frac_coords) self.assert_equal(klist.get_cart_coords(), np.reshape([k.cart_coords for k in klist], (-1, 3))) @@ -283,6 +286,14 @@ def test_kpath_api(self): #assert kpath.ksampling.kptopt == 1 #self.assert_equal(kpath.ksampling.mpdivs, [4, 4, 4]) + df = kpath.get_highsym_datataframe(with_cart_coords=True) + #print(df) + assert "G" in df["name"].values + assert "cart_coords" in df + self.assert_equal(df["frac_coords"][0], [0.0, 0.0, 0.0]) + + assert Kpoint.from_name_and_structure("Gamma", structure) == kpath[0] + assert len(kpath.ds) == len(kpath) - 1 assert len(kpath.versors) == len(kpath) - 1 assert len(kpath.lines) == len(knames) - 1 @@ -292,7 +303,7 @@ def test_kpath_api(self): r = kpath.find_points_along_path(kpath.get_cart_coords()) assert len(r.ikfound) == len(kpath) self.assert_equal(r.ikfound, - [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0]) + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0]) #kpath = IrredZone.from_kppa(structure, kppa=1000, shiftk=[0.5, 0.5, 0.5], kptopt=1, verbose=1) #assert not kpath.is_ibz and kpath.is_path @@ -361,7 +372,7 @@ def test_reading(self): # Test pickle and json self.serialize_with_pickle(kpoints) - self.assertMSONable(kpoints, test_if_subclass=False) + self.assert_msonable(kpoints, test_is_subclass=False) class KmeshTest(AbipyTest): diff --git a/abipy/core/tests/test_mesh3d.py b/abipy/core/tests/test_mesh3d.py index cbf18ef74..5b9d62b36 100644 --- a/abipy/core/tests/test_mesh3d.py +++ b/abipy/core/tests/test_mesh3d.py @@ -41,19 +41,19 @@ def test_base(self): assert rpoints is mesh_444.rpoints empty = mesh_444.empty() - assert empty.shape == mesh_444.shape and empty.dtype == np.float + assert empty.shape == mesh_444.shape and empty.dtype == float cempty = mesh_444.cempty() - assert cempty.shape == mesh_444.shape and cempty.dtype == np.complex + assert cempty.shape == mesh_444.shape and cempty.dtype == complex rand_vas = mesh_443.random() - assert rand_vas.shape == mesh_443.shape and rand_vas.dtype == np.float + assert rand_vas.shape == mesh_443.shape and rand_vas.dtype == float crand_vas = mesh_443.crandom() - assert crand_vas.shape == mesh_443.shape and crand_vas.dtype == np.complex + assert crand_vas.shape == mesh_443.shape and crand_vas.dtype == complex zeros = mesh_444.zeros() - assert zeros.shape == mesh_444.shape and np.all(zeros == 0) and zeros.dtype == np.float + assert zeros.shape == mesh_444.shape and np.all(zeros == 0) and zeros.dtype == float czeros = mesh_444.czeros() - assert czeros.shape == mesh_444.shape and np.all(czeros == 0) and czeros.dtype == np.complex + assert czeros.shape == mesh_444.shape and np.all(czeros == 0) and czeros.dtype == complex # Iteration # i = iz + iy * nz + ix * ny * nz @@ -84,7 +84,7 @@ def test_fft(self): mesh = Mesh3D( (12, 3, 5), rprimd) extra_dims = [(), 1, (2,), (3, 1)] - types = [np.float, np.complex] + types = [float, complex] for exdim in extra_dims: for typ in types: diff --git a/abipy/core/tests/test_restapi.py b/abipy/core/tests/test_restapi.py index a76f50ddf..e18c6f75a 100644 --- a/abipy/core/tests/test_restapi.py +++ b/abipy/core/tests/test_restapi.py @@ -1,5 +1,6 @@ """Tests for core.restapi module""" import contextlib +import pytest import abipy.data as abidata from abipy import abilab @@ -10,19 +11,10 @@ class TestMpRestApi(AbipyTest): """Test interfaces with the Materials Project REST API.""" + @pytest.mark.skip(reason="Interface with MP rester is broken") def test_mprester(self): """Testing MP Rest API wrappers.""" - with restapi.get_mprester() as rest: - print(rest.Error) - #pdr = rest.get_phasediagram_results("Li-Fe-O".split("-")) - pdr = rest.get_phasediagram_results("Ga-Ge-As".split("-")) # This one is faster. - repr(pdr); str(pdr) - pdr.print_dataframes(verbose=2) - if self.has_matplotlib(): - plotter = pdr.plot(show_unstable=True, show=False) - assert hasattr(plotter, "show") - # Test mp_search mp = abilab.mp_search("MgB2") repr(mp); str(mp) diff --git a/abipy/core/tests/test_structure.py b/abipy/core/tests/test_structure.py index 087917600..82fa04f26 100644 --- a/abipy/core/tests/test_structure.py +++ b/abipy/core/tests/test_structure.py @@ -2,6 +2,7 @@ import numpy as np import sys import abipy.data as abidata +import abipy.core.abinit_units as abu from pymatgen.core.lattice import Lattice from pymatgen.core.units import bohr_to_ang @@ -38,6 +39,8 @@ def test_structure_from_ncfiles(self): if self.has_ase(): assert structure == Structure.from_ase_atoms(structure.to_ase_atoms()) + if self.has_matplotlib(): + assert structure.plot_atoms(show=False) def test_utils(self): """Test utilities for the generation of Abinit inputs.""" @@ -56,6 +59,13 @@ def test_utils(self): self.assert_equal(kfrac_coords, ([[0. , 0. , 0. ], [0.5, 0. , 0.5], [0.5, 0.5, 0.5], [0. , 0. , 0. ]])) + d = si.get_symb2coords_dataframe(with_cart_coords=True) + assert "Si" in d + df = d["Si"] + assert "frac_coords" in df and len(df.frac_coords) == 2 + for i in range(2): + self.assert_equal(si.frac_coords[i], df.frac_coords.values[i]) + si_wfk = Structure.as_structure(abidata.ref_file("si_scf_WFK.nc")) assert si_wfk.formula == "Si2" si_wfk.print_neighbors(radius=2.5) @@ -137,8 +147,8 @@ def test_utils(self): assert si.plot_xrd(show=False) if self.has_mayavi(): - #assert si.vtkview(show=False) # Disabled due to (core dumped) on travis - assert si.mayaview(show=False) + #assert si.plot_vtk(show=False) # Disabled due to (core dumped) on travis + assert si.plot_mayaview(show=False) if self.has_panel(): assert hasattr(si.get_panel(), "show") @@ -174,24 +184,50 @@ def test_utils(self): same = Structure.rocksalt(7.7030079150, ["Li", "F"], units="ang") self.assert_almost_equal(lif.lattice.a, same.lattice.a) - si = Structure.from_mpid("mp-149") - assert si.formula == "Si2" - - # Test abiget_spginfo - d = si.abiget_spginfo(tolsym=None, pre="abi_") - assert d["abi_spg_symbol"] == "Fd-3m" - assert d["abi_spg_number"] == 227 - assert d["abi_bravais"] == "Bravais cF (face-center cubic)" + # Test string with Abinit simplified format (structure variable in abivars format) + mgb2 = Structure.from_abistring(""" +# MgB2 lattice structure. +natom 3 +acell 2*3.086 3.523 Angstrom +rprim 0.866025403784439 0.5 0.0 + -0.866025403784439 0.5 0.0 + 0.0 0.0 1.0 + +# Atomic positions +xred_symbols + 0.0 0.0 0.0 Mg + 1/3 2/3 0.5 B + 2/3 1/3 0.5 B +""") + print(mgb2) + assert len(mgb2) == 3 + assert mgb2.formula == "Mg1 B2" + self.assert_almost_equal(mgb2.lattice.angles, (90.0, 90.0, 120.00000000000001)) + self.assert_almost_equal(mgb2.lattice.volume * abu.Ang_Bohr ** 3, 196.07928976151663) + + if self.test_mprester(): + si = Structure.from_mpid("mp-149") + assert si.formula == "Si2" + with self.assertRaises(ValueError): + Structure.from_mpid("foobar") + + # Test abiget_spginfo + d = si.abiget_spginfo(tolsym=None, pre="abi_") + assert d["abi_spg_symbol"] == "Fd-3m" + assert d["abi_spg_number"] == 227 + assert d["abi_bravais"] == "Bravais cF (face-center cubic)" + + # Temporarily disables as webserver is down. + #if self.is_url_reachable("www.crystallography.net"): + mgb2_cod = Structure.from_cod_id(1526507, primitive=True) + assert mgb2_cod.formula == "Mg1 B2" + assert mgb2_cod.spget_lattice_type() == "hexagonal" llzo = Structure.from_file(abidata.cif_file("LLZO_oxi.cif")) assert llzo.is_ordered d = llzo.abiget_spginfo(tolsym=0.001) assert d["spg_number"] == 142 - mgb2_cod = Structure.from_cod_id(1526507, primitive=True) - assert mgb2_cod.formula == "Mg1 B2" - assert mgb2_cod.spget_lattice_type() == "hexagonal" - mgb2 = abidata.structure_from_ucell("MgB2") if self.has_ase(): mgb2.abi_primitive() @@ -216,7 +252,6 @@ def test_utils(self): mgb2.get_conventional_standard_structure() assert len(mgb2.abi_string) assert len(mgb2.spget_summary(site_symmetry=True, verbose=10)) - #print(structure._repr_html_()) self.serialize_with_pickle(mgb2) @@ -271,6 +306,38 @@ def test_utils(self): if self.has_nbformat(): assert mgb2.write_notebook(nbpath=self.get_tmpname(text=True)) + def test_znucl_typat(self): + """Test the order of typat and znucl in the Abinit input and enforce_typat, enforce_znucl.""" + + # Ga Ga1 1 0.33333333333333 0.666666666666667 0.500880 1.0 + # Ga Ga2 1 0.66666666666667 0.333333333333333 0.000880 1.0 + # N N3 1 0.333333333333333 0.666666666666667 0.124120 1.0 + # N N4 1 0.666666666666667 0.333333333333333 0.624120 1.0 + gan2 = Structure.from_file(abidata.cif_file("gan2.cif")) + + # By default, znucl is filled using the first new type found in sites. + def_vars = gan2.to_abivars() + def_znucl = def_vars["znucl"] + self.assert_equal(def_znucl, [31, 7]) + def_typat = def_vars["typat"] + self.assert_equal(def_typat, [1, 1, 2, 2]) + + # But it's possible to enforce a particular value of typat and znucl. + enforce_znucl = [7 ,31] + enforce_typat = [2, 2, 1, 1] + enf_vars = gan2.to_abivars(enforce_znucl=enforce_znucl, enforce_typat=enforce_typat) + self.assert_equal(enf_vars["znucl"], enforce_znucl) + self.assert_equal(enf_vars["typat"], enforce_typat) + self.assert_equal(def_vars["xred"], enf_vars["xred"]) + + assert [s.symbol for s in gan2.species_by_znucl] == ["Ga", "N"] + + for itype1, itype2 in zip(def_typat, enforce_typat): + assert def_znucl[itype1 - 1] == enforce_znucl[itype2 -1] + + with self.assertRaises(Exception): + gan2.to_abivars(enforce_znucl=enforce_znucl, enforce_typat=None) + def test_dataframes_from_structures(self): """Testing dataframes from structures.""" mgb2 = abidata.structure_from_ucell("MgB2") @@ -322,21 +389,21 @@ def test_frozen_phonon_methods(self): max_supercell=mx_sc, scale_matrix=scale_matrix) max_displ = np.linalg.norm(displ, axis=1).max() - self.assertArrayAlmostEqual(fp_data.structure[0].coords, + self.assert_almost_equal(fp_data.structure[0].coords, structure[0].coords + 0.5*displ[0]/max_displ) - self.assertArrayAlmostEqual(fp_data.structure[8].coords, + self.assert_almost_equal(fp_data.structure[8].coords, structure[1].coords + 0.5*displ[1]/max_displ) displ2 = np.array([[1, 0, 0], [0, 1, 1]]) f2p_data = structure.frozen_2phonon(qpoint, 0.05 * displ, 0.02*displ2, eta=0.5, frac_coords=False, - max_supercell=mx_sc, scale_matrix=scale_matrix) + max_supercell=mx_sc, scale_matrix=scale_matrix) - d_tot = 0.05*displ+0.02*displ2 + d_tot = 0.05 *displ + 0.02 * displ2 max_displ = np.linalg.norm(d_tot, axis=1).max() - self.assertArrayAlmostEqual(f2p_data.structure[0].coords, + self.assert_almost_equal(f2p_data.structure[0].coords, structure[0].coords + 0.5*d_tot[0]/max_displ) - self.assertArrayAlmostEqual(f2p_data.structure[8].coords, + self.assert_almost_equal(f2p_data.structure[8].coords, structure[1].coords + 0.5*d_tot[1]/max_displ) #print("Structure = ", structure) diff --git a/abipy/core/tests/test_symmetries.py b/abipy/core/tests/test_symmetries.py index c6dc47fa1..9a342bfbe 100644 --- a/abipy/core/tests/test_symmetries.py +++ b/abipy/core/tests/test_symmetries.py @@ -18,13 +18,13 @@ def test_mati3inv(self): with self.assertRaises(ValueError): mati3inv(np.zeros(3)) with self.assertRaises(ValueError): - mati3inv(np.zeros((3, 3), dtype=np.int)) + mati3inv(np.zeros((3, 3), dtype=int)) mat = np.reshape([0, -1, 1, 0, -1, 0, 1, -1, 0], (3, 3)) mat_it = mati3inv(mat) - self.assert_equal(np.dot(mat_it.T, mat), np.eye(3, dtype=np.int)) + self.assert_equal(np.dot(mat_it.T, mat), np.eye(3, dtype=int)) mat_it = mati3inv(mat, trans=False) - self.assert_equal(np.dot(mat_it, mat), np.eye(3, dtype=np.int)) + self.assert_equal(np.dot(mat_it, mat), np.eye(3, dtype=int)) def test_silicon(self): """Test silicon space group.""" @@ -62,12 +62,13 @@ def test_silicon(self): assert spgrp.has_timerev assert len(spgrp) == 48 * 2 assert spgrp.num_spatial_symmetries == 48 + assert spgrp.get_spglib_hall_number() == 525 assert spgrp.is_group() # TODO #si_symrel = si_tnons = np.reshape(24 * [0, 0, 0, 0.25, 0.25, 0.25], (48, 3)) - si_symafm = np.ones(48, dtype=np.int) + si_symafm = np.ones(48, dtype=int) self.assert_almost_equal(si_tnons, spgrp.tnons) self.assert_almost_equal(si_symafm, spgrp.symafm) diff --git a/abipy/core/tests/wf-3s.ape b/abipy/core/tests/wf-3s.ape new file mode 100644 index 000000000..be9dd017a --- /dev/null +++ b/abipy/core/tests/wf-3s.ape @@ -0,0 +1,607 @@ +# Radial wavefunctions and first derivative. +# Energy units: hartree +# Length units: bohr +# +# State: 3s +# Nodes: 0.151115 0.725339 +# Peaks: 0.056513 0.384388 1.755403 + 3.74165729E-05 8.05287802E+00 -1.16296653E+03 + 3.83598792E-05 8.05180187E+00 -1.14084142E+03 + 3.93269671E-05 8.05070696E+00 -1.11849500E+03 + 4.03184362E-05 8.04960217E+00 -1.09629849E+03 + 4.13349012E-05 8.04849583E+00 -1.07459827E+03 + 4.23769921E-05 8.04738798E+00 -1.05340022E+03 + 4.34453551E-05 8.04627572E+00 -1.03258848E+03 + 4.45406526E-05 8.04515670E+00 -1.01206842E+03 + 4.56635635E-05 8.04403129E+00 -9.91857107E+02 + 4.68147840E-05 8.04290042E+00 -9.71993535E+02 + 4.79950279E-05 8.04176468E+00 -9.52502071E+02 + 4.92050268E-05 8.04062396E+00 -9.33378305E+02 + 5.04455309E-05 8.03947797E+00 -9.14610204E+02 + 5.17173092E-05 8.03832660E+00 -8.96191716E+02 + 5.30211502E-05 8.03716994E+00 -8.78125714E+02 + 5.43578623E-05 8.03600802E+00 -8.60412107E+02 + 5.57282741E-05 8.03484087E+00 -8.43050206E+02 + 5.71332353E-05 8.03366849E+00 -8.26038232E+02 + 5.85736168E-05 8.03249078E+00 -8.09370466E+02 + 6.00503117E-05 8.03130772E+00 -7.93043815E+02 + 6.15642354E-05 8.03011932E+00 -7.77056498E+02 + 6.31163265E-05 8.02892549E+00 -7.61402966E+02 + 6.47075473E-05 8.02772620E+00 -7.46079738E+02 + 6.63388842E-05 8.02652143E+00 -7.31084156E+02 + 6.80113486E-05 8.02531109E+00 -7.16409733E+02 + 6.97259774E-05 8.02409510E+00 -7.02052064E+02 + 7.14838335E-05 8.02287345E+00 -6.88008356E+02 + 7.32860069E-05 8.02164601E+00 -6.74272043E+02 + 7.51336146E-05 8.02041271E+00 -6.60837862E+02 + 7.70278023E-05 8.01917351E+00 -6.47703017E+02 + 7.89697442E-05 8.01792828E+00 -6.34861158E+02 + 8.09606443E-05 8.01667691E+00 -6.22306010E+02 + 8.30017367E-05 8.01541936E+00 -6.10034861E+02 + 8.50942870E-05 8.01415549E+00 -5.98042029E+02 + 8.72395924E-05 8.01288516E+00 -5.86320340E+02 + 8.94389830E-05 8.01160831E+00 -5.74866912E+02 + 9.16938222E-05 8.01032481E+00 -5.63677008E+02 + 9.40055079E-05 8.00903449E+00 -5.52743126E+02 + 9.63754734E-05 8.00773725E+00 -5.42061532E+02 + 9.88051880E-05 8.00643299E+00 -5.31628569E+02 + 1.01296158E-04 8.00512152E+00 -5.21437331E+02 + 1.03849927E-04 8.00380268E+00 -5.11482509E+02 + 1.06468080E-04 8.00247637E+00 -5.01761362E+02 + 1.09152238E-04 8.00114243E+00 -4.92268324E+02 + 1.11904067E-04 7.99980063E+00 -4.82996616E+02 + 1.14725271E-04 7.99845086E+00 -4.73943562E+02 + 1.17617601E-04 7.99709297E+00 -4.65105153E+02 + 1.20582849E-04 7.99572671E+00 -4.56474657E+02 + 1.23622854E-04 7.99435191E+00 -4.48047824E+02 + 1.26739500E-04 7.99296844E+00 -4.39822044E+02 + 1.29934720E-04 7.99157606E+00 -4.31792099E+02 + 1.33210494E-04 7.99017453E+00 -4.23951800E+02 + 1.36568853E-04 7.98876369E+00 -4.16298799E+02 + 1.40011880E-04 7.98734335E+00 -4.08829662E+02 + 1.43541708E-04 7.98591322E+00 -4.01538469E+02 + 1.47160527E-04 7.98447308E+00 -3.94420836E+02 + 1.50870580E-04 7.98302275E+00 -3.87474734E+02 + 1.54674166E-04 7.98156198E+00 -3.80696096E+02 + 1.58573644E-04 7.98009046E+00 -3.74079061E+02 + 1.62571432E-04 7.97860795E+00 -3.67620866E+02 + 1.66670008E-04 7.97711427E+00 -3.61319231E+02 + 1.70871912E-04 7.97560909E+00 -3.55169729E+02 + 1.75179751E-04 7.97409208E+00 -3.49167140E+02 + 1.79596194E-04 7.97256302E+00 -3.43309610E+02 + 1.84123979E-04 7.97102165E+00 -3.37594636E+02 + 1.88765915E-04 7.96946763E+00 -3.32017698E+02 + 1.93524877E-04 7.96790059E+00 -3.26574381E+02 + 1.98403818E-04 7.96632030E+00 -3.21263216E+02 + 2.03405761E-04 7.96472645E+00 -3.16081664E+02 + 2.08533808E-04 7.96311866E+00 -3.11025338E+02 + 2.13791137E-04 7.96149653E+00 -3.06090439E+02 + 2.19181009E-04 7.95985981E+00 -3.01275702E+02 + 2.24706764E-04 7.95820815E+00 -2.96578713E+02 + 2.30371829E-04 7.95654112E+00 -2.91995370E+02 + 2.36179715E-04 7.95485829E+00 -2.87522210E+02 + 2.42134023E-04 7.95315937E+00 -2.83158126E+02 + 2.48238445E-04 7.95144399E+00 -2.78900960E+02 + 2.54496765E-04 7.94971167E+00 -2.74747008E+02 + 2.60912863E-04 7.94796193E+00 -2.70692885E+02 + 2.67490717E-04 7.94619443E+00 -2.66737604E+02 + 2.74234404E-04 7.94440879E+00 -2.62879358E+02 + 2.81148107E-04 7.94260447E+00 -2.59114947E+02 + 2.88236109E-04 7.94078095E+00 -2.55440908E+02 + 2.95502807E-04 7.93893782E+00 -2.51856251E+02 + 3.02952706E-04 7.93707467E+00 -2.48359582E+02 + 3.10590423E-04 7.93519096E+00 -2.44948281E+02 + 3.18420693E-04 7.93328606E+00 -2.41618892E+02 + 3.26448373E-04 7.93135951E+00 -2.38370111E+02 + 3.34678437E-04 7.92941086E+00 -2.35200981E+02 + 3.43115989E-04 7.92743954E+00 -2.32109488E+02 + 3.51766259E-04 7.92544489E+00 -2.29092516E+02 + 3.60634611E-04 7.92342631E+00 -2.26148065E+02 + 3.69726542E-04 7.92138333E+00 -2.23275521E+02 + 3.79047689E-04 7.91931535E+00 -2.20473465E+02 + 3.88603830E-04 7.91722169E+00 -2.17739446E+02 + 3.98400891E-04 7.91510161E+00 -2.15070768E+02 + 4.08444945E-04 7.91295456E+00 -2.12466740E+02 + 4.18742218E-04 7.91077992E+00 -2.09926503E+02 + 4.29299096E-04 7.90857700E+00 -2.07448338E+02 + 4.40122121E-04 7.90634498E+00 -2.05029635E+02 + 4.51218006E-04 7.90408313E+00 -2.02668793E+02 + 4.62593628E-04 7.90179082E+00 -2.00365381E+02 + 4.74256039E-04 7.89946732E+00 -1.98118328E+02 + 4.86212471E-04 7.89711181E+00 -1.95925752E+02 + 4.98470336E-04 7.89472336E+00 -1.93785285E+02 + 5.11037233E-04 7.89230124E+00 -1.91696178E+02 + 5.23920952E-04 7.88984470E+00 -1.89657924E+02 + 5.37129482E-04 7.88735290E+00 -1.87669356E+02 + 5.50671012E-04 7.88482487E+00 -1.85728554E+02 + 5.64553935E-04 7.88225960E+00 -1.83833600E+02 + 5.78786861E-04 7.87965631E+00 -1.81984112E+02 + 5.93378611E-04 7.87701411E+00 -1.80179535E+02 + 6.08338233E-04 7.87433205E+00 -1.78418710E+02 + 6.23675000E-04 7.87160900E+00 -1.76699805E+02 + 6.39398422E-04 7.86884390E+00 -1.75021290E+02 + 6.55518245E-04 7.86603583E+00 -1.73382908E+02 + 6.72044464E-04 7.86318379E+00 -1.71784113E+02 + 6.88987325E-04 7.86028668E+00 -1.70223819E+02 + 7.06357330E-04 7.85734326E+00 -1.68700345E+02 + 7.24165250E-04 7.85435232E+00 -1.67212420E+02 + 7.42422123E-04 7.85131284E+00 -1.65759844E+02 + 7.61139269E-04 7.84822368E+00 -1.64342122E+02 + 7.80328292E-04 7.84508358E+00 -1.62958274E+02 + 8.00001087E-04 7.84189116E+00 -1.61606797E+02 + 8.20169852E-04 7.83864509E+00 -1.60286540E+02 + 8.40847090E-04 7.83534416E+00 -1.58997340E+02 + 8.62045620E-04 7.83198710E+00 -1.57738777E+02 + 8.83778585E-04 7.82857251E+00 -1.56510012E+02 + 9.06059458E-04 7.82509886E+00 -1.55309735E+02 + 9.28902052E-04 7.82156460E+00 -1.54136817E+02 + 9.52320529E-04 7.81796837E+00 -1.52991100E+02 + 9.76329407E-04 7.81430876E+00 -1.51872260E+02 + 1.00094357E-03 7.81058419E+00 -1.50779612E+02 + 1.02617828E-03 7.80679295E+00 -1.49712058E+02 + 1.05204918E-03 7.80293330E+00 -1.48668442E+02 + 1.07857231E-03 7.79900367E+00 -1.47648555E+02 + 1.10576411E-03 7.79500246E+00 -1.46652181E+02 + 1.13364145E-03 7.79092793E+00 -1.45678791E+02 + 1.16222159E-03 7.78677820E+00 -1.44727508E+02 + 1.19152227E-03 7.78255129E+00 -1.43797191E+02 + 1.22156164E-03 7.77824535E+00 -1.42887451E+02 + 1.25235834E-03 7.77385861E+00 -1.41998183E+02 + 1.28393145E-03 7.76938915E+00 -1.41129032E+02 + 1.31630054E-03 7.76483490E+00 -1.40279351E+02 + 1.34948569E-03 7.76019365E+00 -1.39448167E+02 + 1.38350747E-03 7.75546322E+00 -1.38634742E+02 + 1.41838697E-03 7.75064159E+00 -1.37838997E+02 + 1.45414581E-03 7.74572663E+00 -1.37060719E+02 + 1.49080617E-03 7.74071608E+00 -1.36299456E+02 + 1.52839077E-03 7.73560752E+00 -1.35554480E+02 + 1.56692291E-03 7.73039842E+00 -1.34824920E+02 + 1.60642648E-03 7.72508644E+00 -1.34110552E+02 + 1.64692597E-03 7.71966922E+00 -1.33411272E+02 + 1.68844649E-03 7.71414427E+00 -1.32726780E+02 + 1.73101378E-03 7.70850895E+00 -1.32056552E+02 + 1.77465424E-03 7.70276041E+00 -1.31399814E+02 + 1.81939491E-03 7.69689589E+00 -1.30756022E+02 + 1.86526353E-03 7.69091276E+00 -1.30125118E+02 + 1.91228854E-03 7.68480824E+00 -1.29506928E+02 + 1.96049910E-03 7.67857944E+00 -1.28901099E+02 + 2.00992509E-03 7.67222327E+00 -1.28307066E+02 + 2.06059715E-03 7.66573651E+00 -1.27724130E+02 + 2.11254670E-03 7.65911613E+00 -1.27152077E+02 + 2.16580595E-03 7.65235906E+00 -1.26590831E+02 + 2.22040792E-03 7.64546212E+00 -1.26040173E+02 + 2.27638645E-03 7.63842194E+00 -1.25499712E+02 + 2.33377625E-03 7.63123494E+00 -1.24968867E+02 + 2.39261290E-03 7.62389755E+00 -1.24447130E+02 + 2.45293288E-03 7.61640635E+00 -1.23934422E+02 + 2.51477357E-03 7.60875780E+00 -1.23430622E+02 + 2.57817333E-03 7.60094820E+00 -1.22935470E+02 + 2.64317146E-03 7.59297368E+00 -1.22448554E+02 + 2.70980825E-03 7.58483016E+00 -1.21969318E+02 + 2.77812501E-03 7.57651369E+00 -1.21497492E+02 + 2.84816411E-03 7.56802037E+00 -1.21033023E+02 + 2.91996895E-03 7.55934614E+00 -1.20575752E+02 + 2.99358406E-03 7.55048673E+00 -1.20125398E+02 + 3.06905507E-03 7.54143772E+00 -1.19681538E+02 + 3.14642878E-03 7.53219450E+00 -1.19243688E+02 + 3.22575315E-03 7.52275267E+00 -1.18811709E+02 + 3.30707736E-03 7.51310775E+00 -1.18385523E+02 + 3.39045183E-03 7.50325509E+00 -1.17964953E+02 + 3.47592824E-03 7.49318985E+00 -1.17549710E+02 + 3.56355960E-03 7.48290697E+00 -1.17139379E+02 + 3.65340022E-03 7.47240133E+00 -1.16733600E+02 + 3.74550581E-03 7.46166797E+00 -1.16332293E+02 + 3.83993346E-03 7.45070179E+00 -1.15935349E+02 + 3.93674172E-03 7.43949748E+00 -1.15542566E+02 + 4.03599061E-03 7.42804954E+00 -1.15153639E+02 + 4.13774165E-03 7.41635225E+00 -1.14768169E+02 + 4.24205793E-03 7.40439996E+00 -1.14385938E+02 + 4.34900412E-03 7.39218708E+00 -1.14006878E+02 + 4.45864653E-03 7.37970780E+00 -1.13630853E+02 + 4.57105312E-03 7.36695614E+00 -1.13257646E+02 + 4.68629358E-03 7.35392587E+00 -1.12886948E+02 + 4.80443936E-03 7.34061058E+00 -1.12518395E+02 + 4.92556370E-03 7.32700402E+00 -1.12151846E+02 + 5.04974170E-03 7.31309988E+00 -1.11787218E+02 + 5.17705035E-03 7.29889162E+00 -1.11424361E+02 + 5.30756856E-03 7.28437253E+00 -1.11063055E+02 + 5.44137725E-03 7.26953562E+00 -1.10702994E+02 + 5.57855939E-03 7.25437381E+00 -1.10343875E+02 + 5.71920001E-03 7.23888015E+00 -1.09985592E+02 + 5.86338632E-03 7.22304756E+00 -1.09628040E+02 + 6.01120769E-03 7.20686874E+00 -1.09271053E+02 + 6.16275578E-03 7.19033619E+00 -1.08914400E+02 + 6.31812453E-03 7.17344214E+00 -1.08557779E+02 + 6.47741028E-03 7.15617884E+00 -1.08200969E+02 + 6.64071176E-03 7.13853861E+00 -1.07843877E+02 + 6.80813022E-03 7.12051357E+00 -1.07486372E+02 + 6.97976946E-03 7.10209563E+00 -1.07128272E+02 + 7.15573588E-03 7.08327646E+00 -1.06769331E+02 + 7.33613858E-03 7.06404754E+00 -1.06409263E+02 + 7.52108940E-03 7.04440043E+00 -1.06047912E+02 + 7.71070299E-03 7.02432669E+00 -1.05685178E+02 + 7.90509692E-03 7.00381767E+00 -1.05320915E+02 + 8.10439170E-03 6.98286447E+00 -1.04954930E+02 + 8.30871089E-03 6.96145799E+00 -1.04586975E+02 + 8.51818115E-03 6.93958896E+00 -1.04216786E+02 + 8.73293235E-03 6.91724826E+00 -1.03844235E+02 + 8.95309762E-03 6.89442669E+00 -1.03469201E+02 + 9.17881346E-03 6.87111484E+00 -1.03091529E+02 + 9.41021981E-03 6.84730308E+00 -1.02711019E+02 + 9.64746013E-03 6.82298157E+00 -1.02327421E+02 + 9.89068149E-03 6.79814043E+00 -1.01940521E+02 + 1.01400347E-02 6.77276992E+00 -1.01550201E+02 + 1.03956743E-02 6.74686012E+00 -1.01156318E+02 + 1.06577588E-02 6.72040093E+00 -1.00758699E+02 + 1.09264508E-02 6.69338206E+00 -1.00357126E+02 + 1.12019167E-02 6.66579304E+00 -9.99513561E+01 + 1.14843273E-02 6.63762358E+00 -9.95412370E+01 + 1.17738578E-02 6.60886339E+00 -9.91266444E+01 + 1.20706876E-02 6.57950202E+00 -9.87074263E+01 + 1.23750007E-02 6.54952885E+00 -9.82833989E+01 + 1.26869859E-02 6.51893309E+00 -9.78543415E+01 + 1.30068365E-02 6.48770385E+00 -9.74200192E+01 + 1.33347509E-02 6.45583050E+00 -9.69802884E+01 + 1.36709322E-02 6.42330242E+00 -9.65350207E+01 + 1.40155890E-02 6.39010885E+00 -9.60840634E+01 + 1.43689349E-02 6.35623894E+00 -9.56272362E+01 + 1.47311890E-02 6.32168171E+00 -9.51643277E+01 + 1.51025759E-02 6.28642616E+00 -9.46951238E+01 + 1.54833258E-02 6.25046160E+00 -9.42194863E+01 + 1.58736747E-02 6.21377735E+00 -9.37372790E+01 + 1.62738646E-02 6.17636270E+00 -9.32483440E+01 + 1.66841438E-02 6.13820687E+00 -9.27524992E+01 + 1.71047664E-02 6.09929903E+00 -9.22495405E+01 + 1.75359933E-02 6.05962866E+00 -9.17393089E+01 + 1.79780919E-02 6.01918541E+00 -9.12216726E+01 + 1.84313362E-02 5.97795897E+00 -9.06964830E+01 + 1.88960071E-02 5.93593906E+00 -9.01635709E+01 + 1.93723929E-02 5.89311543E+00 -8.96227503E+01 + 1.98607888E-02 5.84947819E+00 -8.90738758E+01 + 2.03614976E-02 5.80501777E+00 -8.85168229E+01 + 2.08748297E-02 5.75972465E+00 -8.79514523E+01 + 2.14011034E-02 5.71358946E+00 -8.73776075E+01 + 2.19406449E-02 5.66660299E+00 -8.67951217E+01 + 2.24937888E-02 5.61875653E+00 -8.62038690E+01 + 2.30608780E-02 5.57004170E+00 -8.56037334E+01 + 2.36422640E-02 5.52045031E+00 -8.49945861E+01 + 2.42383072E-02 5.46997444E+00 -8.43762855E+01 + 2.48493773E-02 5.41860662E+00 -8.37487097E+01 + 2.54758530E-02 5.36633993E+00 -8.31117591E+01 + 2.61181227E-02 5.31316776E+00 -8.24653258E+01 + 2.67765847E-02 5.25908385E+00 -8.18092918E+01 + 2.74516471E-02 5.20408254E+00 -8.11435589E+01 + 2.81437284E-02 5.14815877E+00 -8.04680434E+01 + 2.88532577E-02 5.09130791E+00 -7.97826549E+01 + 2.95806749E-02 5.03352597E+00 -7.90873133E+01 + 3.03264310E-02 4.97480962E+00 -7.83819522E+01 + 3.10909883E-02 4.91515611E+00 -7.76665019E+01 + 3.18748208E-02 4.85456346E+00 -7.69409090E+01 + 3.26784144E-02 4.79303044E+00 -7.62051275E+01 + 3.35022673E-02 4.73055648E+00 -7.54591137E+01 + 3.43468904E-02 4.66714196E+00 -7.47028423E+01 + 3.52128071E-02 4.60278804E+00 -7.39362903E+01 + 3.61005545E-02 4.53749678E+00 -7.31594476E+01 + 3.70106827E-02 4.47127121E+00 -7.23723153E+01 + 3.79437561E-02 4.40411528E+00 -7.15749015E+01 + 3.89003532E-02 4.33603405E+00 -7.07672309E+01 + 3.98810670E-02 4.26703353E+00 -6.99493335E+01 + 4.08865054E-02 4.19712095E+00 -6.91212570E+01 + 4.19172919E-02 4.12630462E+00 -6.82830570E+01 + 4.29740655E-02 4.05459408E+00 -6.74348045E+01 + 4.40574813E-02 3.98200008E+00 -6.65765818E+01 + 4.51682110E-02 3.90853469E+00 -6.57084864E+01 + 4.63069432E-02 3.83421130E+00 -6.48306286E+01 + 4.74743840E-02 3.75904465E+00 -6.39431327E+01 + 4.86712569E-02 3.68305092E+00 -6.30461382E+01 + 4.98983042E-02 3.60624775E+00 -6.21397994E+01 + 5.11562864E-02 3.52865428E+00 -6.12242862E+01 + 5.24459836E-02 3.45029116E+00 -6.02997828E+01 + 5.37681951E-02 3.37118071E+00 -5.93664914E+01 + 5.51237409E-02 3.29134677E+00 -5.84246277E+01 + 5.65134612E-02 3.21081493E+00 -5.74744267E+01 + 5.79382177E-02 3.12961241E+00 -5.65161375E+01 + 5.93988935E-02 3.04776824E+00 -5.55500283E+01 + 6.08963944E-02 2.96531314E+00 -5.45763827E+01 + 6.24316486E-02 2.88227969E+00 -5.35955024E+01 + 6.40056080E-02 2.79870227E+00 -5.26077068E+01 + 6.56192484E-02 2.71461707E+00 -5.16133312E+01 + 6.72735702E-02 2.63006228E+00 -5.06127316E+01 + 6.89695989E-02 2.54507786E+00 -4.96062785E+01 + 7.07083860E-02 2.45970574E+00 -4.85943618E+01 + 7.24910096E-02 2.37398978E+00 -4.75773888E+01 + 7.43185748E-02 2.28797574E+00 -4.65557841E+01 + 7.61922146E-02 2.20171126E+00 -4.55299888E+01 + 7.81130905E-02 2.11524615E+00 -4.45004654E+01 + 8.00823935E-02 2.02863192E+00 -4.34676895E+01 + 8.21013445E-02 1.94192204E+00 -4.24321544E+01 + 8.41711951E-02 1.85517197E+00 -4.13943721E+01 + 8.62932285E-02 1.76843896E+00 -4.03548688E+01 + 8.84687603E-02 1.68178223E+00 -3.93141891E+01 + 9.06991393E-02 1.59526269E+00 -3.82728910E+01 + 9.29857482E-02 1.50894309E+00 -3.72315491E+01 + 9.53300046E-02 1.42288797E+00 -3.61907533E+01 + 9.77333619E-02 1.33716344E+00 -3.51511064E+01 + 1.00197310E-01 1.25183729E+00 -3.41132254E+01 + 1.02723377E-01 1.16697890E+00 -3.30777412E+01 + 1.05313128E-01 1.08265891E+00 -3.20452941E+01 + 1.07968169E-01 9.98949632E-01 -3.10165399E+01 + 1.10690146E-01 9.15924364E-01 -2.99921408E+01 + 1.13480746E-01 8.33657681E-01 -2.89727701E+01 + 1.16341700E-01 7.52225373E-01 -2.79591120E+01 + 1.19274782E-01 6.71704039E-01 -2.69518563E+01 + 1.22281809E-01 5.92170885E-01 -2.59516967E+01 + 1.25364646E-01 5.13704161E-01 -2.49593371E+01 + 1.28525205E-01 4.36382266E-01 -2.39754805E+01 + 1.31765443E-01 3.60284082E-01 -2.30008341E+01 + 1.35087372E-01 2.85488822E-01 -2.20361080E+01 + 1.38493049E-01 2.12075533E-01 -2.10820096E+01 + 1.41984586E-01 1.40122988E-01 -2.01392428E+01 + 1.45564149E-01 6.97095821E-02 -1.92085079E+01 + 1.49233955E-01 9.12995250E-04 -1.82904977E+01 + 1.52996281E-01 -6.61881407E-02 -1.73859184E+01 + 1.56853458E-01 -1.31519930E-01 -1.64954225E+01 + 1.60807878E-01 -1.95006132E-01 -1.56196929E+01 + 1.64861993E-01 -2.56573237E-01 -1.47593850E+01 + 1.69018316E-01 -3.16150600E-01 -1.39151248E+01 + 1.73279423E-01 -3.73667921E-01 -1.30875395E+01 + 1.77647957E-01 -4.29057569E-01 -1.22772314E+01 + 1.82126626E-01 -4.82254537E-01 -1.14847793E+01 + 1.86718206E-01 -5.33196370E-01 -1.07107400E+01 + 1.91425544E-01 -5.81823174E-01 -9.95564957E+00 + 1.96251559E-01 -6.28078964E-01 -9.22000883E+00 + 2.01199241E-01 -6.71910376E-01 -8.50429912E+00 + 2.06271660E-01 -7.13268388E-01 -7.80896406E+00 + 2.11471958E-01 -7.52106979E-01 -7.13442564E+00 + 2.16803361E-01 -7.88385037E-01 -6.48106422E+00 + 2.22269174E-01 -8.22065553E-01 -5.84922882E+00 + 2.27872785E-01 -8.53115850E-01 -5.23923545E+00 + 2.33617667E-01 -8.81508351E-01 -4.65136010E+00 + 2.39507384E-01 -9.07220233E-01 -4.08584344E+00 + 2.45545586E-01 -9.30233968E-01 -3.54288601E+00 + 2.51736017E-01 -9.50537300E-01 -3.02264943E+00 + 2.58082514E-01 -9.68123486E-01 -2.52525452E+00 + 2.64589012E-01 -9.82991649E-01 -2.05077844E+00 + 2.71259545E-01 -9.95146453E-01 -1.59925860E+00 + 2.78098248E-01 -1.00459879E+00 -1.17068603E+00 + 2.85109361E-01 -1.01136516E+00 -7.65012212E-01 + 2.92297231E-01 -1.01546862E+00 -3.82139567E-01 + 2.99666313E-01 -1.01693805E+00 -2.19292006E-02 + 3.07221177E-01 -1.01580858E+00 3.15803309E-01 + 3.14966506E-01 -1.01212147E+00 6.31286553E-01 + 3.22907102E-01 -1.00592410E+00 9.24793367E-01 + 3.31047888E-01 -9.97269878E-01 1.19663993E+00 + 3.39393910E-01 -9.86218141E-01 1.44718477E+00 + 3.47950344E-01 -9.72834415E-01 1.67683150E+00 + 3.56722493E-01 -9.57188882E-01 1.88601405E+00 + 3.65715795E-01 -9.39358049E-01 2.07521304E+00 + 3.74935828E-01 -9.19424056E-01 2.24494928E+00 + 3.84388306E-01 -8.97473269E-01 2.39577037E+00 + 3.94079089E-01 -8.73597205E-01 2.52825991E+00 + 4.04014186E-01 -8.47891784E-01 2.64303053E+00 + 4.14199756E-01 -8.20457203E-01 2.74072303E+00 + 4.24642114E-01 -7.91397466E-01 2.82200221E+00 + 4.35347733E-01 -7.60820136E-01 2.88755485E+00 + 4.46323251E-01 -7.28835853E-01 2.93808558E+00 + 4.57575471E-01 -6.95558120E-01 2.97431531E+00 + 4.69111370E-01 -6.61102795E-01 2.99697695E+00 + 4.80938100E-01 -6.25587699E-01 3.00681231E+00 + 4.93062993E-01 -5.89132220E-01 3.00456907E+00 + 5.05493566E-01 -5.51857073E-01 2.99099934E+00 + 5.18237525E-01 -5.13883563E-01 2.96685349E+00 + 5.31302770E-01 -4.75333459E-01 2.93288007E+00 + 5.44697403E-01 -4.36328450E-01 2.88982172E+00 + 5.58429726E-01 -3.96989783E-01 2.83841304E+00 + 5.72508255E-01 -3.57437869E-01 2.77937820E+00 + 5.86941715E-01 -3.17791855E-01 2.71342836E+00 + 6.01739057E-01 -2.78169253E-01 2.64125978E+00 + 6.16909453E-01 -2.38685591E-01 2.56355223E+00 + 6.32462309E-01 -1.99454018E-01 2.48096707E+00 + 6.48407267E-01 -1.60584952E-01 2.39414585E+00 + 6.64754212E-01 -1.22185739E-01 2.30370905E+00 + 6.81513278E-01 -8.43602887E-02 2.21025470E+00 + 6.98694856E-01 -4.72087779E-02 2.11435770E+00 + 7.16309598E-01 -1.08273587E-02 2.01656923E+00 + 7.34368423E-01 2.46921616E-02 1.91741587E+00 + 7.52882528E-01 5.92626515E-02 1.81739856E+00 + 7.71863390E-01 9.28018504E-02 1.71699275E+00 + 7.91322778E-01 1.25232662E-01 1.61664791E+00 + 8.11272754E-01 1.56483361E-01 1.51678726E+00 + 8.31725688E-01 1.86487868E-01 1.41780682E+00 + 8.52694259E-01 2.15185871E-01 1.32007601E+00 + 8.74191468E-01 2.42523029E-01 1.22393710E+00 + 8.96230640E-01 2.68451106E-01 1.12970490E+00 + 9.18825441E-01 2.92928072E-01 1.03766684E+00 + 9.41989877E-01 3.15918180E-01 9.48082733E-01 + 9.65738310E-01 3.37392004E-01 8.61184773E-01 + 9.90085463E-01 3.57326433E-01 7.77177523E-01 + 1.01504643E+00 3.75704634E-01 6.96238184E-01 + 1.04063669E+00 3.92515961E-01 6.18516799E-01 + 1.06687210E+00 4.07755838E-01 5.44136852E-01 + 1.09376893E+00 4.21425593E-01 4.73195996E-01 + 1.12134385E+00 4.33532268E-01 4.05767069E-01 + 1.14961396E+00 4.44088396E-01 3.41899384E-01 + 1.17859679E+00 4.53111772E-01 2.81620254E-01 + 1.20831030E+00 4.60625172E-01 2.24936765E-01 + 1.23877292E+00 4.66656138E-01 1.71837614E-01 + 1.27000352E+00 4.71236691E-01 1.22295080E-01 + 1.30202148E+00 4.74403099E-01 7.62668938E-02 + 1.33484664E+00 4.76195631E-01 3.36980161E-02 + 1.36849936E+00 4.76658325E-01 -5.47778202E-03 + 1.40300049E+00 4.75838765E-01 -4.13365621E-02 + 1.43837142E+00 4.73787848E-01 -7.39630774E-02 + 1.47463409E+00 4.70559556E-01 -1.03449844E-01 + 1.51181098E+00 4.66210715E-01 -1.29896382E-01 + 1.54992513E+00 4.60800746E-01 -1.53408584E-01 + 1.58900017E+00 4.54391396E-01 -1.74098158E-01 + 1.62906033E+00 4.47046449E-01 -1.92082113E-01 + 1.67013044E+00 4.38831430E-01 -2.07482241E-01 + 1.71223597E+00 4.29813284E-01 -2.20424612E-01 + 1.75540301E+00 4.20060016E-01 -2.31038917E-01 + 1.79965834E+00 4.09640400E-01 -2.39458005E-01 + 1.84502939E+00 3.98623553E-01 -2.45817043E-01 + 1.89154428E+00 3.87078616E-01 -2.50252928E-01 + 1.93923185E+00 3.75074379E-01 -2.52903506E-01 + 1.98812168E+00 3.62678914E-01 -2.53906804E-01 + 2.03824406E+00 3.49959227E-01 -2.53400260E-01 + 2.08963007E+00 3.36980917E-01 -2.51519965E-01 + 2.14231157E+00 3.23807841E-01 -2.48399868E-01 + 2.19632122E+00 3.10501823E-01 -2.44171109E-01 + 2.25169250E+00 2.97122353E-01 -2.38961280E-01 + 2.30845974E+00 2.83726341E-01 -2.32893829E-01 + 2.36665814E+00 2.70367871E-01 -2.26087445E-01 + 2.42632377E+00 2.57098017E-01 -2.18655612E-01 + 2.48749363E+00 2.43964655E-01 -2.10706110E-01 + 2.55020564E+00 2.31012328E-01 -2.02340694E-01 + 2.61449867E+00 2.18282139E-01 -1.93654791E-01 + 2.68041260E+00 2.05811666E-01 -1.84737292E-01 + 2.74798827E+00 1.93634919E-01 -1.75670417E-01 + 2.81726759E+00 1.81782319E-01 -1.66529647E-01 + 2.88829350E+00 1.70280706E-01 -1.57383721E-01 + 2.96111004E+00 1.59153377E-01 -1.48294703E-01 + 3.03576235E+00 1.48420147E-01 -1.39318095E-01 + 3.11229672E+00 1.38097427E-01 -1.30503001E-01 + 3.19076059E+00 1.28198336E-01 -1.21892342E-01 + 3.27120260E+00 1.18732817E-01 -1.13523103E-01 + 3.35367264E+00 1.09707778E-01 -1.05426611E-01 + 3.43822182E+00 1.01127245E-01 -9.76288359E-02 + 3.52490256E+00 9.29925278E-02 -9.01507215E-02 + 3.61376860E+00 8.53023942E-02 -8.30085144E-02 + 3.70487504E+00 7.80532504E-02 -7.62141154E-02 + 3.79827835E+00 7.12393344E-02 -6.97754262E-02 + 3.89403645E+00 6.48529040E-02 -6.36967058E-02 + 3.99220870E+00 5.88844340E-02 -5.79789136E-02 + 4.09285596E+00 5.33228074E-02 -5.26200544E-02 + 4.19604063E+00 4.81555115E-02 -4.76155091E-02 + 4.30182668E+00 4.33688335E-02 -4.29583603E-02 + 4.41027970E+00 3.89480398E-02 -3.86396976E-02 + 4.52146691E+00 3.48775678E-02 -3.46489187E-02 + 4.63545726E+00 3.11411870E-02 -3.09739988E-02 + 4.75232141E+00 2.77221817E-02 -2.76017630E-02 + 4.87213182E+00 2.46035042E-02 -2.45181277E-02 + 4.99496275E+00 2.17679278E-02 -2.17083307E-02 + 5.12089037E+00 1.91981808E-02 -1.91571349E-02 + 5.24999273E+00 1.68770896E-02 -1.68490319E-02 + 5.38234989E+00 1.47876868E-02 -1.47684061E-02 + 5.51804389E+00 1.29133236E-02 -1.28996950E-02 + 5.65715886E+00 1.12377664E-02 -1.12275281E-02 + 5.79978105E+00 9.74528490E-03 -9.73685164E-03 + 5.94599888E+00 8.42071371E-03 -8.41302309E-03 + 6.09590299E+00 7.24953046E-03 -7.24191606E-03 + 6.24958632E+00 6.21789171E-03 -6.20998053E-03 + 6.40714416E+00 5.31267913E-03 -5.30430901E-03 + 6.56867416E+00 4.52153157E-03 -4.51268570E-03 + 6.73427650E+00 3.83285237E-03 -3.82360846E-03 + 6.90405381E+00 3.23583018E-03 -3.22632136E-03 + 7.07811137E+00 2.72043069E-03 -2.71081642E-03 + 7.25655709E+00 2.27739855E-03 -2.26784362E-03 + 7.43950158E+00 1.89823064E-03 -1.88889067E-03 + 7.62705827E+00 1.57516732E-03 -1.56617939E-03 + 7.81934344E+00 1.30115721E-03 -1.29263455E-03 + 8.01647630E+00 1.06983091E-03 -1.06186063E-03 + 8.21857905E+00 8.75464642E-04 -8.68107670E-04 + 8.42577700E+00 7.12942712E-04 -7.06235328E-04 + 8.63819861E+00 5.77720303E-04 -5.71676721E-04 + 8.85597556E+00 4.65778612E-04 -4.60394124E-04 + 9.07924287E+00 3.73587197E-04 -3.68841612E-04 + 9.30813895E+00 2.98061027E-04 -2.93922102E-04 + 9.54280571E+00 2.36520136E-04 -2.32946847E-04 + 9.78338864E+00 1.86650194E-04 -1.83595699E-04 + 1.00300369E+01 1.46464463E-04 -1.43878696E-04 + 1.02829034E+01 1.14268169E-04 -1.12100024E-04 + 1.05421448E+01 8.86237876E-05 -8.68228773E-05 + 1.08079220E+01 6.83202218E-05 -6.68382401E-05 + 1.10803997E+01 5.23435692E-05 -5.11352796E-05 + 1.13597468E+01 3.98502200E-05 -3.88741142E-05 + 1.16461365E+01 3.01431363E-05 -2.93618123E-05 + 1.19397463E+01 2.26502283E-05 -2.20305355E-05 + 1.22407583E+01 1.69050517E-05 -1.64180530E-05 + 1.25493591E+01 1.25300023E-05 -1.21507983E-05 + 1.28657400E+01 9.22163971E-06 -8.92909369E-06 + 1.31900972E+01 6.73773460E-06 -6.51413697E-06 + 1.35226317E+01 4.88646209E-06 -4.71715995E-06 + 1.38635497E+01 3.51700959E-06 -3.39002669E-06 + 1.42130626E+01 2.51173477E-06 -2.41739891E-06 + 1.45713870E+01 1.77956220E-06 -1.71015374E-06 + 1.49387451E+01 1.25057420E-06 -1.20000291E-06 + 1.53153646E+01 8.71519134E-07 -8.35035446E-07 + 1.57014791E+01 6.02182309E-07 -5.76124394E-07 + 1.60973278E+01 4.12451097E-07 -3.94027861E-07 + 1.65031563E+01 2.79974775E-07 -2.67082978E-07 + 1.69192161E+01 1.88308591E-07 -1.79381457E-07 + 1.73457651E+01 1.25467010E-07 -1.19350696E-07 + 1.77830678E+01 8.27934344E-08 -7.86480109E-08 + 1.82313954E+01 5.40960657E-08 -5.13171997E-08 + 1.86910257E+01 3.49891557E-08 -3.31471202E-08 + 1.91622436E+01 2.23969612E-08 -2.11898017E-08 + 1.96453415E+01 1.41846964E-08 -1.34028080E-08 + 2.01406186E+01 8.88607356E-09 -8.38566784E-09 + 2.06483822E+01 5.50472003E-09 -5.18855013E-09 + 2.11689469E+01 3.37106407E-09 -3.17367122E-09 + 2.17026356E+01 2.04031660E-09 -1.91845600E-09 + 2.22497791E+01 1.22012291E-09 -1.14587027E-09 + 2.28107165E+01 7.20697608E-10 -6.76041256E-10 + 2.33857957E+01 4.20348066E-10 -3.93849101E-10 + 2.39753732E+01 2.42011456E-10 -2.26500428E-10 + 2.45798144E+01 1.37496632E-10 -1.28543160E-10 + 2.51994942E+01 7.70596386E-11 -7.19645903E-11 + 2.58347967E+01 4.25891050E-11 -3.97316287E-11 + 2.64861157E+01 2.32032588E-11 -2.16243719E-11 + 2.71538551E+01 1.24571799E-11 -1.15979534E-11 + 2.78384288E+01 6.58803021E-12 -6.12765864E-12 + 2.85402613E+01 3.43074676E-12 -3.18797561E-12 + 2.92597876E+01 1.75854487E-12 -1.63258921E-12 + 2.99974538E+01 8.86868514E-13 -8.22601135E-13 + 3.07537172E+01 4.39902892E-13 -4.07664501E-13 + 3.15290468E+01 2.14509714E-13 -1.98617796E-13 + 3.23239231E+01 1.02789534E-13 -9.50942197E-14 + 3.31388390E+01 4.83800047E-14 -4.47212395E-14 + 3.39742997E+01 2.23552178E-14 -2.06479987E-14 + 3.48308231E+01 1.01363958E-14 0.00000000E+00 + 3.57089403E+01 0.00000000E+00 0.00000000E+00 + 3.66091956E+01 0.00000000E+00 0.00000000E+00 + 3.75321471E+01 0.00000000E+00 0.00000000E+00 + 3.84783671E+01 0.00000000E+00 0.00000000E+00 + 3.94484422E+01 0.00000000E+00 0.00000000E+00 + 4.04429738E+01 0.00000000E+00 0.00000000E+00 + 4.14625785E+01 0.00000000E+00 0.00000000E+00 + 4.25078883E+01 0.00000000E+00 0.00000000E+00 + 4.35795513E+01 0.00000000E+00 0.00000000E+00 + 4.46782320E+01 0.00000000E+00 0.00000000E+00 + 4.58046114E+01 0.00000000E+00 0.00000000E+00 + 4.69593879E+01 0.00000000E+00 0.00000000E+00 + 4.81432773E+01 0.00000000E+00 0.00000000E+00 + 4.93570137E+01 0.00000000E+00 0.00000000E+00 + 5.06013496E+01 0.00000000E+00 0.00000000E+00 + 5.18770562E+01 0.00000000E+00 0.00000000E+00 + 5.31849246E+01 0.00000000E+00 0.00000000E+00 + 5.45257656E+01 0.00000000E+00 0.00000000E+00 + 5.59004104E+01 0.00000000E+00 0.00000000E+00 + 5.73097113E+01 0.00000000E+00 0.00000000E+00 + 5.87545419E+01 0.00000000E+00 0.00000000E+00 + 6.02357981E+01 0.00000000E+00 0.00000000E+00 + 6.17543981E+01 0.00000000E+00 0.00000000E+00 + 6.33112834E+01 0.00000000E+00 0.00000000E+00 + 6.49074192E+01 0.00000000E+00 0.00000000E+00 + 6.65437950E+01 0.00000000E+00 0.00000000E+00 + 6.82214255E+01 0.00000000E+00 0.00000000E+00 + 6.99413505E+01 0.00000000E+00 0.00000000E+00 + 7.17046364E+01 0.00000000E+00 0.00000000E+00 + 7.35123764E+01 0.00000000E+00 0.00000000E+00 + 7.53656911E+01 0.00000000E+00 0.00000000E+00 + 7.72657297E+01 0.00000000E+00 0.00000000E+00 + 7.92136699E+01 0.00000000E+00 0.00000000E+00 + 8.12107196E+01 0.00000000E+00 0.00000000E+00 + 8.32581167E+01 0.00000000E+00 0.00000000E+00 + 8.53571305E+01 0.00000000E+00 0.00000000E+00 + 8.75090625E+01 0.00000000E+00 0.00000000E+00 + 8.97152466E+01 0.00000000E+00 0.00000000E+00 + 9.19770507E+01 0.00000000E+00 0.00000000E+00 + 9.42958769E+01 0.00000000E+00 0.00000000E+00 + 9.66731629E+01 0.00000000E+00 0.00000000E+00 + 9.91103824E+01 0.00000000E+00 0.00000000E+00 + 1.01609046E+02 0.00000000E+00 0.00000000E+00 + 1.04170704E+02 0.00000000E+00 0.00000000E+00 + 1.06796944E+02 0.00000000E+00 0.00000000E+00 + 1.09489393E+02 0.00000000E+00 0.00000000E+00 + 1.12249722E+02 0.00000000E+00 0.00000000E+00 diff --git a/abipy/data/__init__.py b/abipy/data/__init__.py index 100aa6433..09cdd746d 100644 --- a/abipy/data/__init__.py +++ b/abipy/data/__init__.py @@ -4,6 +4,8 @@ import abipy.data as abidata """ +from __future__ import annotations + import os from abipy.core.structure import Structure @@ -31,10 +33,11 @@ _MPDATA_DIRPATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "mpdata")) _SCRIPTS_DIRPATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "examples")) + _SCRIPTS = None -def pyscript(basename): +def pyscript(basename: str) -> str: """ Return the absolute name of one of the scripts in the `examples` directory from its basename. """ @@ -49,23 +52,23 @@ def pyscript(basename): # Ignore e.g. __init__.py and private scripts. if k.startswith("_"): continue if k in _SCRIPTS: - raise ValueError("Fond duplicated basenames with name %s\nPrevious %s" % (k, _SCRIPTS[k])) + raise ValueError("Fond duplicated basenames with name %s\nActual:%s\nPrevious: %s" % (k, p, _SCRIPTS[k])) _SCRIPTS[k] = p return _SCRIPTS[basename] -def cif_file(filename): +def cif_file(filename: str) -> str: """Returns the absolute path of the CIF file in tests/data/cifs.""" return os.path.join(_CIF_DIRPATH, filename) -def cif_files(*filenames): +def cif_files(*filenames) -> list[str]: """Returns the absolute path of the CIF files in tests/data/cifs.""" return list(map(cif_file, filenames)) -def structure_from_cif(filename): +def structure_from_cif(filename: str) -> Structure: """ Returnn an Abipy structure from the basename of the cif file in data/cifs. """ @@ -75,24 +78,24 @@ def structure_from_cif(filename): pseudo_dir = _PSEUDOS_DIRPATH -def pseudo(filename): +def pseudo(filename: str) -> Pseudo: """Returns a `Pseudo` object.""" filepath = os.path.join(_PSEUDOS_DIRPATH, filename) return Pseudo.from_file(filepath) -def pseudos(*filenames): - """Returns a PseudoTable constructed from the input filenames located in tests/data/pseudos.""" +def pseudos(*filenames: list[str]) -> PseudoTable: + """Returns a PseudoTable constructed from the input filenames located in tests/data/pseudos.""" pseudos = list(map(pseudo, filenames)) return PseudoTable(pseudos) -def var_file(filename): - """Returns a yml file located in data/variables.""" +def var_file(filename: str) -> str: + """Returns a yaml file located in data/variables.""" return os.path.join(_VARIABLES_DIRPATH, filename) -def find_ncfiles(top, verbose=0): +def find_ncfiles(top: str, verbose=0) -> dict: """ Find all netcdf files starting from the top-level directory `top`. Filenames must be unique. Directories starting with "tmp_" are @@ -126,7 +129,7 @@ def find_ncfiles(top, verbose=0): _DATA_NCFILES = find_ncfiles(top=os.path.join(os.path.dirname(__file__), "refs")) -def ref_file(basename): +def ref_file(basename: str) -> str: """Returns the absolute path of basename in tests/data directory.""" if basename in _DATA_NCFILES: return _DATA_NCFILES[basename] @@ -137,12 +140,12 @@ def ref_file(basename): return path -def ref_files(*basenames): +def ref_files(*basenames) -> list[str]: """List with the absolute path of basenames in tests/data directory.""" return list(map(ref_file, basenames)) -def ncfiles_with_ext(ext): +def ncfiles_with_ext(ext: str) -> list[str]: """Return a list with the absolute path of the files with extension ext.""" ncfiles = [] for basename, path in _DATA_NCFILES.items(): @@ -156,9 +159,9 @@ def ncfiles_with_ext(ext): _MP_STRUCT_DICT = None -def get_mp_structures_dict(): +def get_mp_structures_dict() -> dict[str, Structure]: """ - Returns a dictionary containing the structures stored in mpdata/mp_structures. + Returns a dictionary with the the structures stored in mpdata/mp_structures. """ global _MP_STRUCT_DICT if _MP_STRUCT_DICT is not None: @@ -175,7 +178,7 @@ def get_mp_structures_dict(): return _MP_STRUCT_DICT -def structure_from_mpid(mpid): +def structure_from_mpid(mpid: int) -> Structure: """ Return an Abipy Structure from the `mpid` identifier. See mpdata/mp_structure.json """ @@ -193,8 +196,10 @@ def structure_from_mpid(mpid): ALL_NCFILES = list(_DATA_NCFILES.values()) -class FilesGenerator(object): - """This class generates the output files used in the unit tests and in the examples.""" +class FilesGenerator: + """ + This class generates the output files used in the unit tests and in the examples. + """ def __init__(self, **kwargs): """ @@ -213,16 +218,16 @@ def __init__(self, **kwargs): self.files_to_keep = set([os.path.basename(__file__), "run.abi", "run.abo"] + list(self.files_to_save.keys())) - def __str__(self): + def __str__(self) -> str: lines = [] app = lines.append app("%s: workdir:%s" % (self.__class__.__name__, self.workdir)) return "\n".join(lines) - def run(self): + def run(self) -> int: """Run Abinit and rename output files. Return 0 if success""" - from monty.os.path import which + from shutil import which if which(self.executable) is None: raise RuntimeError("Cannot find %s in $PATH" % self.executable) @@ -248,7 +253,7 @@ def _run(self): cmd = self.executable + " < run.files > run.log" return Popen(cmd, shell=True, stderr=PIPE, stdout=PIPE, cwd=self.workdir) - def _finalize(self): + def _finalize(self) -> None: all_files = os.listdir(self.workdir) # Remove files @@ -283,7 +288,7 @@ def __init__(self, **kwargs): #self.pseudos = [p.filepath for p in pseudos(*self.pseudos)] self.pseudos = [os.path.join(_PSEUDOS_DIRPATH, pname) for pname in self.pseudos] - def make_filesfile_str(self): + def make_filesfile_str(self) -> str: return "\n".join(["run.abi", "run.abo", "in", "out", "tmp"] + self.pseudos) diff --git a/abipy/data/cifs/NV_center_64_at_sc.cif b/abipy/data/cifs/NV_center_64_at_sc.cif new file mode 100644 index 000000000..335a43ba3 --- /dev/null +++ b/abipy/data/cifs/NV_center_64_at_sc.cif @@ -0,0 +1,89 @@ +# generated using pymatgen +data_C +_symmetry_space_group_name_H-M 'P 1' +_cell_length_a 7.14742000 +_cell_length_b 7.14742000 +_cell_length_c 7.14742000 +_cell_angle_alpha 90.00000000 +_cell_angle_beta 90.00000000 +_cell_angle_gamma 90.00000000 +_symmetry_Int_Tables_number 1 +_chemical_formula_structural C +_chemical_formula_sum C64 +_cell_volume 365.13032961 +_cell_formula_units_Z 64 +loop_ + _symmetry_equiv_pos_site_id + _symmetry_equiv_pos_as_xyz + 1 'x, y, z' +loop_ + _atom_site_type_symbol + _atom_site_label + _atom_site_symmetry_multiplicity + _atom_site_fract_x + _atom_site_fract_y + _atom_site_fract_z + _atom_site_occupancy + N N0 1 0.12500000 0.37500000 0.12500000 1.0 + C C1 1 0.12500000 0.37500000 0.62500000 1.0 + C C2 1 0.12500000 0.87500000 0.12500000 1.0 + C C3 1 0.12500000 0.87500000 0.62500000 1.0 + C C4 1 0.62500000 0.37500000 0.12500000 1.0 + C C5 1 0.62500000 0.37500000 0.62500000 1.0 + C C6 1 0.62500000 0.87500000 0.12500000 1.0 + C C7 1 0.62500000 0.87500000 0.62500000 1.0 + C C8 1 0.00000000 0.00000000 0.25000000 1.0 + C C9 1 0.00000000 0.00000000 0.75000000 1.0 + C C10 1 0.00000000 0.50000000 0.25000000 1.0 + C C11 1 0.00000000 0.50000000 0.75000000 1.0 + C C12 1 0.50000000 0.00000000 0.25000000 1.0 + C C13 1 0.50000000 0.00000000 0.75000000 1.0 + C C14 1 0.50000000 0.50000000 0.25000000 1.0 + C C15 1 0.50000000 0.50000000 0.75000000 1.0 + C C16 1 0.12500000 0.12500000 0.37500000 1.0 + C C17 1 0.12500000 0.12500000 0.87500000 1.0 + C C18 1 0.12500000 0.62500000 0.37500000 1.0 + C C19 1 0.12500000 0.62500000 0.87500000 1.0 + C C20 1 0.62500000 0.12500000 0.37500000 1.0 + C C21 1 0.62500000 0.12500000 0.87500000 1.0 + C C22 1 0.62500000 0.62500000 0.37500000 1.0 + C C23 1 0.62500000 0.62500000 0.87500000 1.0 + C C24 1 0.00000000 0.25000000 0.00000000 1.0 + C C25 1 0.00000000 0.25000000 0.50000000 1.0 + C C26 1 0.00000000 0.75000000 0.00000000 1.0 + C C27 1 0.00000000 0.75000000 0.50000000 1.0 + C C28 1 0.50000000 0.25000000 0.00000000 1.0 + C C29 1 0.50000000 0.25000000 0.50000000 1.0 + C C30 1 0.50000000 0.75000000 0.00000000 1.0 + C C31 1 0.50000000 0.75000000 0.50000000 1.0 + C C32 1 0.37500000 0.37500000 0.37500000 1.0 + C C33 1 0.37500000 0.37500000 0.87500000 1.0 + C C34 1 0.37500000 0.87500000 0.37500000 1.0 + C C35 1 0.37500000 0.87500000 0.87500000 1.0 + C C36 1 0.87500000 0.37500000 0.37500000 1.0 + C C37 1 0.87500000 0.37500000 0.87500000 1.0 + C C38 1 0.87500000 0.87500000 0.37500000 1.0 + C C39 1 0.87500000 0.87500000 0.87500000 1.0 + C C40 1 0.25000000 0.00000000 0.00000000 1.0 + C C41 1 0.25000000 0.00000000 0.50000000 1.0 + C C42 1 0.25000000 0.50000000 0.00000000 1.0 + C C43 1 0.25000000 0.50000000 0.50000000 1.0 + C C44 1 0.75000000 0.00000000 0.00000000 1.0 + C C45 1 0.75000000 0.00000000 0.50000000 1.0 + C C46 1 0.75000000 0.50000000 0.00000000 1.0 + C C47 1 0.75000000 0.50000000 0.50000000 1.0 + C C48 1 0.37500000 0.12500000 0.12500000 1.0 + C C49 1 0.37500000 0.12500000 0.62500000 1.0 + C C50 1 0.37500000 0.62500000 0.12500000 1.0 + C C51 1 0.37500000 0.62500000 0.62500000 1.0 + C C52 1 0.87500000 0.12500000 0.12500000 1.0 + C C53 1 0.87500000 0.12500000 0.62500000 1.0 + C C54 1 0.87500000 0.62500000 0.12500000 1.0 + C C55 1 0.87500000 0.62500000 0.62500000 1.0 + C C57 1 0.25000000 0.25000000 0.75000000 1.0 + C C58 1 0.25000000 0.75000000 0.25000000 1.0 + C C59 1 0.25000000 0.75000000 0.75000000 1.0 + C C60 1 0.75000000 0.25000000 0.25000000 1.0 + C C61 1 0.75000000 0.25000000 0.75000000 1.0 + C C62 1 0.75000000 0.75000000 0.25000000 1.0 + C C63 1 0.75000000 0.75000000 0.75000000 1.0 diff --git a/abipy/data/cifs/SLA_prim.cif b/abipy/data/cifs/SLA_prim.cif new file mode 100644 index 000000000..f8ddb0fdf --- /dev/null +++ b/abipy/data/cifs/SLA_prim.cif @@ -0,0 +1,62 @@ +# generated using pymatgen +data_SrLiAl3N4 +_symmetry_space_group_name_H-M 'P 1' +_cell_length_a 5.88394367 +_cell_length_b 7.53217750 +_cell_length_c 9.99362755 +_cell_angle_alpha 83.65185550 +_cell_angle_beta 76.83877067 +_cell_angle_gamma 79.59221903 +_symmetry_Int_Tables_number 1 +_chemical_formula_structural SrLiAl3N4 +_chemical_formula_sum 'Sr4 Li4 Al12 N16' +_cell_volume 423.06083509 +_cell_formula_units_Z 4 +loop_ + _symmetry_equiv_pos_site_id + _symmetry_equiv_pos_as_xyz + 1 'x, y, z' +loop_ + _atom_site_type_symbol + _atom_site_label + _atom_site_symmetry_multiplicity + _atom_site_fract_x + _atom_site_fract_y + _atom_site_fract_z + _atom_site_occupancy + Sr Sr0 1 0.99548569 0.86608086 0.87321629 1 + Sr Sr1 1 0.00451431 0.13391914 0.12678371 1 + Sr Sr2 1 0.97545377 0.61619440 0.62885416 1 + Sr Sr3 1 0.02454623 0.38380560 0.37114584 1 + Li Li4 1 0.53152807 0.67383001 0.88816306 1 + Li Li5 1 0.46847193 0.32616999 0.11183694 1 + Li Li6 1 0.78952810 0.82017118 0.35535449 1 + Li Li7 1 0.21047190 0.17982882 0.64464551 1 + Al Al8 1 0.44776185 0.04603288 0.87648318 1 + Al Al9 1 0.55223815 0.95396712 0.12351682 1 + Al Al10 1 0.82471978 0.05988349 0.60186812 1 + Al Al11 1 0.17528022 0.94011651 0.39813188 1 + Al Al12 1 0.83149593 0.29155064 0.85259325 1 + Al Al13 1 0.16850407 0.70844936 0.14740675 1 + Al Al14 1 0.17854497 0.44320108 0.89976640 1 + Al Al15 1 0.82145503 0.55679892 0.10023360 1 + Al Al16 1 0.53078364 0.43879511 0.62448888 1 + Al Al17 1 0.46921636 0.56120489 0.37551112 1 + Al Al18 1 0.43608090 0.79654703 0.63301425 1 + Al Al19 1 0.56391910 0.20345297 0.36698575 1 + N N20 1 0.65105224 0.13201582 0.97169907 1 + N N21 1 0.34894776 0.86798418 0.02830093 1 + N N22 1 0.62730787 0.64495806 0.49584181 1 + N N23 1 0.37269213 0.35504194 0.50415819 1 + N N24 1 0.61450907 0.91702599 0.72007835 1 + N N25 1 0.38549093 0.08297401 0.27992165 1 + N N26 1 0.84950385 0.06890424 0.40718206 1 + N N27 1 0.15049615 0.93109576 0.59281794 1 + N N28 1 0.16870318 0.20482422 0.85634305 1 + N N29 1 0.83129682 0.79517578 0.14365695 1 + N N30 1 0.83723505 0.52329899 0.91135026 1 + N N31 1 0.16276495 0.47670101 0.08864974 1 + N N32 1 0.80228813 0.29118091 0.66735974 1 + N N33 1 0.19771187 0.70881909 0.33264026 1 + N N34 1 0.34076254 0.59111533 0.76132493 1 + N N35 1 0.65923746 0.40888467 0.23867507 1 diff --git a/abipy/data/cifs/SrO_Eu_222.cif b/abipy/data/cifs/SrO_Eu_222.cif new file mode 100644 index 000000000..bbf4cb3d1 --- /dev/null +++ b/abipy/data/cifs/SrO_Eu_222.cif @@ -0,0 +1,42 @@ +# generated using pymatgen +data_Sr7EuO8 +_symmetry_space_group_name_H-M 'P 1' +_cell_length_a 7.36261076 +_cell_length_b 7.36261076 +_cell_length_c 7.36261076 +_cell_angle_alpha 60.00000000 +_cell_angle_beta 60.00000000 +_cell_angle_gamma 60.00000000 +_symmetry_Int_Tables_number 1 +_chemical_formula_structural Sr7EuO8 +_chemical_formula_sum 'Sr7 Eu1 O8' +_cell_volume 282.21528107 +_cell_formula_units_Z 1 +loop_ + _symmetry_equiv_pos_site_id + _symmetry_equiv_pos_as_xyz + 1 'x, y, z' +loop_ + _atom_site_type_symbol + _atom_site_label + _atom_site_symmetry_multiplicity + _atom_site_fract_x + _atom_site_fract_y + _atom_site_fract_z + _atom_site_occupancy + Eu Eu0 1 0.25000000 0.25000000 0.25000000 1 + Sr Sr1 1 0.25000000 0.25000000 0.75000000 1.0 + Sr Sr2 1 0.25000000 0.75000000 0.25000000 1.0 + Sr Sr3 1 0.25000000 0.75000000 0.75000000 1.0 + Sr Sr4 1 0.75000000 0.25000000 0.25000000 1.0 + Sr Sr5 1 0.75000000 0.25000000 0.75000000 1.0 + Sr Sr6 1 0.75000000 0.75000000 0.25000000 1.0 + Sr Sr7 1 0.75000000 0.75000000 0.75000000 1.0 + O O8 1 0.00000000 0.00000000 0.00000000 1.0 + O O9 1 0.00000000 0.00000000 0.50000000 1.0 + O O10 1 0.00000000 0.50000000 0.00000000 1.0 + O O11 1 0.00000000 0.50000000 0.50000000 1.0 + O O12 1 0.50000000 0.00000000 0.00000000 1.0 + O O13 1 0.50000000 0.00000000 0.50000000 1.0 + O O14 1 0.50000000 0.50000000 0.00000000 1.0 + O O15 1 0.50000000 0.50000000 0.50000000 1.0 diff --git a/abipy/data/cifs/mgb2.cif b/abipy/data/cifs/mgb2.cif new file mode 100644 index 000000000..cf9587d51 --- /dev/null +++ b/abipy/data/cifs/mgb2.cif @@ -0,0 +1,30 @@ +# generated using pymatgen +data_MgB2 +_symmetry_space_group_name_H-M 'P 1' +_cell_length_a 3.08600001 +_cell_length_b 3.08600001 +_cell_length_c 3.52300001 +_cell_angle_alpha 90.00000000 +_cell_angle_beta 90.00000000 +_cell_angle_gamma 120.00000000 +_symmetry_Int_Tables_number 1 +_chemical_formula_structural MgB2 +_chemical_formula_sum 'Mg1 B2' +_cell_volume 29.05595294 +_cell_formula_units_Z 1 +loop_ + _symmetry_equiv_pos_site_id + _symmetry_equiv_pos_as_xyz + 1 'x, y, z' +loop_ + _atom_site_type_symbol + _atom_site_label + _atom_site_symmetry_multiplicity + _atom_site_fract_x + _atom_site_fract_y + _atom_site_fract_z + _atom_site_occupancy + Mg Mg0 1 0.000000 0.000000 0.000000 1 + B B1 1 0.333333 0.666667 0.500000 1 + B B2 1 0.666667 0.333333 0.500000 1 + diff --git a/abipy/data/gwr_structures.py b/abipy/data/gwr_structures.py new file mode 100644 index 000000000..d79df8b1a --- /dev/null +++ b/abipy/data/gwr_structures.py @@ -0,0 +1,37 @@ +""" +Structures used in the VASP GWR paper +Table I of https://journals.aps.org/prb/pdf/10.1103/PhysRevB.75.235102 +""" +from __future__ import annotations + +from abipy.core.structure import Structure + +# Chemical formula to (crystal_type, species, a_ang) +_SYMB_TO_DATA = { + "Si": ("zinc-blende", ("Si", "Si"), 5.430), + "GaAs": ("zinc-blende", ("Ga", "As"), 5.648), + "SiC": ("zinc-blende", ("Si", "C"), 4.350), + "ZnO": ("zinc-blende", ("Zn", "O"), 4.580), + "C": ("zinc-blende", ("C", "C"), 3.567), + "BN": ("zinc-blende", ("B", "N"), 3.615), + "MgO": ("rock-salt", ("Mg", "O"), 4.213), + "LiF": ("rock-salt", ("Li", "F"), 4.010), +} + + +def get_gwr_structure(symbol: str) -> Structure: + """Return Structure from symbol""" + stype, species, a = _SYMB_TO_DATA[symbol] + if stype == "zinc-blende": + return Structure.zincblende(a, species) + if stype == "rock-salt": + return Structure.rocksalt(a, species) + + raise ValueError(f"Invalid {stype=}") + + +if __name__ == "__main__": + import numpy as np + for symbol in _SYMB_TO_DATA: + structure = get_gwr_structure(symbol) + print("formula:", structure.formula, "a:", structure.lattice.abc[0] * np.sqrt(2)) \ No newline at end of file diff --git a/abipy/data/lruj_data/lruj.out b/abipy/data/lruj_data/lruj.out new file mode 100644 index 000000000..2d4b1351e --- /dev/null +++ b/abipy/data/lruj_data/lruj.out @@ -0,0 +1,83 @@ + +.Version 9.11.6 of LRUJ +.(MPI version, prepared for a x86_64_linux_intel18.0 computer) + +.Copyright (C) 1998-2022 ABINIT group . + LRUJ comes with ABSOLUTELY NO WARRANTY. + It is free software, and you are welcome to redistribute it + under certain conditions (GNU General Public License, + see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). + + ABINIT is a project of the Universite Catholique de Louvain, + Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt . + Please read https://docs.abinit.org/theory/acknowledgments for suggested + acknowledgments of the ABINIT effort. + For more information, see https://www.abinit.org . + +.Starting date : Wed 29 Nov 2023. +- ( at 15h33 ) + + Number of perturbations detected: 6 + Including unperturbed state, we have 7 data points. + Hunds J determination, implemented by L. MacEnulty August 2021 + Maximum degree of polynomials analyzed: 5 + NOTE: Unlike the ujdet utility, lruj treats the + response functions as scalars, not matrices! + See lruj tutorial for more information. + + +************************************************************************************************* +************************************** Linear Response J ************************************** + + Total number of atoms: 4 + Index of perturbed atom: 1 + Value of macro_uj: 4 + Value of dmatpuopt: 3 + Mixing constant factored out of Chi0: 0.450 + Percentage of AE orbital within the PAW sphere of perturbed subspace: 90.46723% + + Perturbations Magnetizations + --------------- ----------------------------- + beta [eV] Unscreened Screened + --------------- ----------------------------- + -0.1500000676 1.3322568566 1.3664401054 + -0.1000000451 1.3250447778 1.3485578255 + -0.0500000225 1.3176770671 1.3298301923 + 0.0000000000 1.3101482092 1.3101482092 + 0.0500000225 1.3024514902 1.2893790961 + 0.1000000451 1.2945812190 1.2673571836 + 0.1500000676 1.2865306151 1.2438737113 + RMS Errors + --------------------------------------- + Regression Chi0 [eV^-1] Chi [eV^-1] J [eV] | Chi0 [eV^-1] Chi [eV^-1] J [eV] +--------------------------------------------------------|--------------------------------------- + Linear: -0.3386211 -0.4075366 0.4993858 | 0.0006971 0.0020836 0.1364740 + Quadratic: -0.3386211 -0.4075366 0.4993858 | 0.0000137 0.0001529 0.0322580 + Cubic: -0.3383005 -0.4039797 0.4805799 | 0.0000002 0.0000120 0.0086817 + Degree 4 : -0.3383005 -0.4039797 0.4805799 | 0.0000001 0.0000009 0.0025307 + Degree 5 : -0.3383000 -0.4040198 0.4808302 | 0.0000001 0.0000000 0.0011046 +************************************************************************************************* +************************************************************************************************* + +Linear Response UJ (LRUJ) program complete. Live long and prosper. ~LMac + + +--- !LRUJ_Abipy_Plots +natom: 4 +ndata: 7 +pawujat: 1 +macro_uj: 4 +diem_token: diemixmag +diem: 4.50000000E-01 +chi0_coefficients_degree1: [ 1.30981289E+00, -1.52379516E-01, ] +chi_coefficients_degree1: [ 1.30794090E+00, -4.07536646E-01, ] +chi0_coefficients_degree2: [ 1.31014818E+00, -1.52379516E-01, -3.35292571E-02, ] +chi_coefficients_degree2: [ 1.31016241E+00, -4.07536646E-01, -2.22150364E-01, ] +chi0_coefficients_degree3: [ 1.31014818E+00, -1.52235216E-01, -3.35292571E-02, -8.24572223E-03, ] +chi_coefficients_degree3: [ 1.31016241E+00, -4.03979653E-01, -2.22150364E-01, -2.03256604E-01, ] +chi0_coefficients_degree4: [ 1.31014812E+00, -1.52235216E-01, -3.35038810E-02, -8.24572223E-03, -1.06049292E-03, ] +chi_coefficients_degree4: [ 1.31014819E+00, -4.03979653E-01, -2.16856067E-01, -2.03256604E-01, -2.21254002E-01, ] +chi0_coefficients_degree5: [ 1.31014812E+00, -1.52234989E-01, -3.35038810E-02, -8.28815298E-03, -1.06049292E-03, 1.45476754E-03, ] +chi_coefficients_degree5: [ 1.31014819E+00, -4.04019800E-01, -2.16856067E-01, -1.95748183E-01, -2.21254002E-01, -2.57431330E-01, ] +... + diff --git a/abipy/data/managers/dragon1_manager.yml b/abipy/data/managers/dragon1_manager.yml index c4ea6e5ab..1c98f1125 100644 --- a/abipy/data/managers/dragon1_manager.yml +++ b/abipy/data/managers/dragon1_manager.yml @@ -3,7 +3,7 @@ hardware: &hardware num_nodes: 26 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 112Gb + mem_per_node: 112GB job: &job mpi_runner: mpirun @@ -11,9 +11,8 @@ job: &job PATH: "$HOME/git_repos/abinit/_build_dragon1-intel-mpich-mkl.ac/src/98_main:$PATH" modules: - mpich/3.0.4/intel-13.0.0 - pre_run: "ulimit -s unlimited" -# queues +# queues qadapters: - priority: 1 queue: diff --git a/abipy/data/managers/travis_manager.yml b/abipy/data/managers/gh_manager.yml similarity index 58% rename from abipy/data/managers/travis_manager.yml rename to abipy/data/managers/gh_manager.yml index b85444741..39e2d9185 100644 --- a/abipy/data/managers/travis_manager.yml +++ b/abipy/data/managers/gh_manager.yml @@ -1,14 +1,14 @@ -qadapters: +# Manager used for github actions. +qadapters: - - priority: 1 + priority: 1 queue: - qname: travis + qname: github qtype: shell job: mpi_runner: mpirun - pre_run: - - source activate abinit-environment - - ulimit -s unlimited + pre_run: + - conda activate abipy limits: min_cores: 1 max_cores: 2 @@ -17,4 +17,4 @@ qadapters: num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB diff --git a/abipy/data/managers/travis_scheduler.yml b/abipy/data/managers/gh_scheduler.yml similarity index 100% rename from abipy/data/managers/travis_scheduler.yml rename to abipy/data/managers/gh_scheduler.yml diff --git a/abipy/data/managers/gmac_manager.yml b/abipy/data/managers/gmac_manager.yml index af3387a21..72465d003 100644 --- a/abipy/data/managers/gmac_manager.yml +++ b/abipy/data/managers/gmac_manager.yml @@ -1,12 +1,12 @@ -qadapters: - - &batch - priority: 1 +qadapters: + - &batch + priority: 1 queue: qname: gmac qtype: shell job: mpi_runner: mpirun - pre_run: + pre_run: - source ~/env.sh limits: min_cores: 1 @@ -16,8 +16,8 @@ qadapters: num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB # Optional - #condition: {"$eq": {omp_threads: 2}} - + #condition: {"$eq": {omp_threads: 2}} + batch_adapter: *batch diff --git a/abipy/data/managers/hercules_manager.yml b/abipy/data/managers/hercules_manager.yml index 7a43e8656..cb93647a8 100644 --- a/abipy/data/managers/hercules_manager.yml +++ b/abipy/data/managers/hercules_manager.yml @@ -3,7 +3,7 @@ hardware: &hardware num_nodes: 65 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 54Gb + mem_per_node: 54GB job: &job mpi_runner: mpirun @@ -12,11 +12,8 @@ job: &job modules: - impi/5.1.3.181-iccifort-2016.3.210-GCC-5.4.0-2.26 - imkl/11.3.3.210-iimpi-2016b - # here pre_run is a string in verbatim mode (note |) - pre_run: | - ulimit -s unlimited -# queues +# queues qadapters: - priority: 1 queue: diff --git a/abipy/data/managers/hmem_manager.yml b/abipy/data/managers/hmem_manager.yml index 9aa9b1a25..27fbbaedb 100644 --- a/abipy/data/managers/hmem_manager.yml +++ b/abipy/data/managers/hmem_manager.yml @@ -4,19 +4,19 @@ high: &high num_nodes: 2 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 512Gb + mem_per_node: 512GB middle: &middle num_nodes: 7 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 256Gb + mem_per_node: 256GB low: &low num_nodes: 7 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job mpi_runner: mpirun @@ -24,9 +24,8 @@ job: &job PATH: "$HOME/git_repos/abinit/_build_hmem_intel_openmpi-mkl.ac/src/98_main/:$PATH" modules: - openmpi/1.5.3/intel-12.0.0.084 - pre_run: "ulimit -s unlimited" -# queues +# queues qadapters: - priority: 3 #max_num_launches: 20 diff --git a/abipy/data/managers/juqueen_manager.yml b/abipy/data/managers/juqueen_manager.yml index cdd556aa1..98b70b89c 100644 --- a/abipy/data/managers/juqueen_manager.yml +++ b/abipy/data/managers/juqueen_manager.yml @@ -2,7 +2,7 @@ batch: &batch num_nodes: 128 sockets_per_node: 1 cores_per_socket: 16 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job mpi_runner: runjob @@ -48,7 +48,7 @@ qadapters: num_nodes: 1 sockets_per_node: 1 cores_per_socket: 1 - mem_per_node: 12Gb + mem_per_node: 12GB job: #mpi_runner: runjob shell_env: diff --git a/abipy/data/managers/jureca_manager.yml b/abipy/data/managers/jureca_manager.yml index 189517f48..7853e1179 100644 --- a/abipy/data/managers/jureca_manager.yml +++ b/abipy/data/managers/jureca_manager.yml @@ -5,13 +5,13 @@ devel: &devel num_nodes: 8 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB batch: &batch num_nodes: 128 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job # mpirun is not available on jureca. @@ -24,9 +24,8 @@ job: &job PATH: $HOME/abinit/801-private/jureca_mpi/src/98_main:$PATH modules: - intel-para/2015.07 - pre_run: "ulimit -s unlimited" -# queues +# queues qadapters: - priority: 1 #max_num_launches: 20 diff --git a/abipy/data/managers/lemaitre2_manager.yml b/abipy/data/managers/lemaitre2_manager.yml index 699c3b13d..b85ce68c5 100644 --- a/abipy/data/managers/lemaitre2_manager.yml +++ b/abipy/data/managers/lemaitre2_manager.yml @@ -3,7 +3,7 @@ hardware: &hardware num_nodes: 112 sockets_per_node: 2 cores_per_socket: 6 - mem_per_node: 48Gb + mem_per_node: 48GB job: &job mpi_runner: mpirun @@ -11,9 +11,8 @@ job: &job PATH: "$HOME/git_repos/abinit/_build_lemaitre2-intel-openmpi-mkl.ac/src/98_main/:$PATH" modules: # Abinit compiled with abiconfig settings - openmpi/1.6.5/intel-13.0.1.117 - pre_run: "ulimit -s unlimited" -# queues +# queues qadapters: - priority: 1 queue: diff --git a/abipy/data/managers/lemaitre3_manager.yml b/abipy/data/managers/lemaitre3_manager.yml index f2d2fb5e2..fa9c50995 100644 --- a/abipy/data/managers/lemaitre3_manager.yml +++ b/abipy/data/managers/lemaitre3_manager.yml @@ -5,7 +5,7 @@ hardware: &hardware num_nodes: 80 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 95Gb + mem_per_node: 95GB job: &job mpi_runner: mpirun @@ -14,9 +14,8 @@ job: &job modules: # Abinit compiled with abiconfig settings - intel/2017b - netCDF-Fortran/4.4.4-intel-2017b - pre_run: "ulimit -s unlimited" -# queues +# queues qadapters: - priority: 1 queue: diff --git a/abipy/data/managers/lumi_manager.yml b/abipy/data/managers/lumi_manager.yml new file mode 100644 index 000000000..da6564294 --- /dev/null +++ b/abipy/data/managers/lumi_manager.yml @@ -0,0 +1,40 @@ +# LUMI hardware: https://docs.lumi-supercomputer.eu/ +# For the configuration file see: +# https://github.com/abinit/abiconfig/blob/master/abiconfig/clusters/lumi_XXXX.ac +hardware: &hardware + num_nodes: 1376 + sockets_per_node: 2 + cores_per_socket: 64 + mem_per_node: 256GB + +job: &job + mpi_runner: srun + shell_runner: None + shell_env: # Use your abinit exec + PATH: "$HOME/program/abinit-9.6.2/build_gnu/src/98_main/:$PATH" + modules: # Abinit compiled with abiconfig settings + - LUMI/21.08 + - PrgEnv-gnu/8.1.0 + - cray-libsci/21.08.1.2 + - cray-mpich/8.1.8 + - cray-hdf5/1.12.0.6 + - cray-netcdf/4.7.4.6 + - cray-fftw/3.3.8.11 + +# queues +qadapters: + - priority: 1 + queue: + qtype: slurm + qname: small + qparams: + account: project_XXXXXX # Your project here + #mail_type: FAIL + #mail_user: # Othere slurm options ... + limits: + timelimit: 0-12:00:00 + min_cores: 1 + max_cores: 128 + max_num_launches: 10 + hardware: *hardware + job: *job diff --git a/abipy/data/managers/manneback_manager.yml b/abipy/data/managers/manneback_manager.yml index 5b6e85bb3..857810294 100644 --- a/abipy/data/managers/manneback_manager.yml +++ b/abipy/data/managers/manneback_manager.yml @@ -3,27 +3,27 @@ Def: &Def num_nodes: 672 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 24 Gb + mem_per_node: 24 GB ObanAMD: &ObanAMD num_nodes: 6 sockets_per_node: 4 cores_per_socket: 8 - mem_per_node: 128 Gb + mem_per_node: 128 GB ObanIntel: &ObanIntel num_nodes: 3 sockets_per_node: 4 cores_per_socket: 8 - mem_per_node: 256 Gb + mem_per_node: 256 GB # Environment, modules, and parameters used to launch jobs. job: &job mpi_runner: mpirun shell_env: PATH: "$HOME/git_repos/abinit/_build_manneback-gcc-openmpi.ac/src/98_main/:$PATH" - pre_run: - - "ulimit -s unlimited" + pre_run: + - "ulimit -s unlimited" - "export OMP_NUM_THREADS=1" - "unset SLURM_CPUS_PER_TASK" - "module purge" @@ -32,13 +32,13 @@ job: &job #policy: # frozen_timeout: 0-12:0:0 -# List of qdapters. +# List of qdapters. qadapters: - priority: 1 queue: qname: Def qtype: slurm - qparams: + qparams: # This nodes must be excluded because they are not compatible with the Abinit build (SIGILL error). exclude_nodes: mb-neh[070,201-212],mb-har[001-014],mb-har[101-116],mb-opt[111-116],mb-har[121-140],mb-sab[004,040,007,101-102],mb-wes[251-252],mb-ivy[205,206,208] limits: diff --git a/abipy/data/managers/nic4_manager.yml b/abipy/data/managers/nic4_manager.yml index 77974c0fd..9d3b2f557 100644 --- a/abipy/data/managers/nic4_manager.yml +++ b/abipy/data/managers/nic4_manager.yml @@ -3,14 +3,13 @@ hardware: &hardware num_nodes: 120 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 64Gb + mem_per_node: 64GB job: &job mpi_runner: "mpirun" mpi_runner_options: "--bind-to none" shell_env: PATH: "$HOME/git_repos/abinit/_build_nic4-intel-openmpi-mkl-hdf5.ac/src/98_main:$PATH" - pre_run: "ulimit -s unlimited" modules: - shared - openmpi/1.7.5/intel2013_sp1.1.106 @@ -19,7 +18,7 @@ job: &job - netcdf/4.3.2/openmpi-1.7.5-intel2013_sp1.1.106 - slurm/14.03.11 -# queues +# queues qadapters: - priority: 1 queue: @@ -27,7 +26,7 @@ qadapters: qname: defq qparams: mail_type: FAIL - #mail_user: # Othere slurm options ... + #mail_user: # Othere slurm options ... limits: timelimit: 0:30:0 min_cores: 1 diff --git a/abipy/data/managers/shell_manager.yml b/abipy/data/managers/shell_manager.yml index a90b28190..cf6fc833d 100644 --- a/abipy/data/managers/shell_manager.yml +++ b/abipy/data/managers/shell_manager.yml @@ -15,4 +15,4 @@ qadapters: num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB diff --git a/abipy/data/managers/shell_nompi_manager.yml b/abipy/data/managers/shell_nompi_manager.yml index 6cc5838cd..e7f26376e 100644 --- a/abipy/data/managers/shell_nompi_manager.yml +++ b/abipy/data/managers/shell_nompi_manager.yml @@ -15,4 +15,4 @@ qadapters: num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB diff --git a/abipy/data/managers/ubu_manager.yml b/abipy/data/managers/ubu_manager.yml index 1fef81bfd..5e273d6e5 100644 --- a/abipy/data/managers/ubu_manager.yml +++ b/abipy/data/managers/ubu_manager.yml @@ -1,11 +1,11 @@ qadapters: - # List of qadapters objects + # List of qadapters objects - priority: 1 queue: qtype: shell qname: ubu job: - modules: + modules: - ubu_intel_16.0_mpich mpi_runner: mpiexec # source a script to setup the environment. @@ -17,4 +17,4 @@ qadapters: num_nodes: 1 sockets_per_node: 1 cores_per_socket: 24 - mem_per_node: 4 Gb + mem_per_node: 4 GB diff --git a/abipy/data/managers/vega_manager.yml b/abipy/data/managers/vega_manager.yml index 97550a6a4..99ffd260f 100644 --- a/abipy/data/managers/vega_manager.yml +++ b/abipy/data/managers/vega_manager.yml @@ -3,7 +3,7 @@ hardware: &hardware num_nodes: 44 sockets_per_node: 4 cores_per_socket: 16 - mem_per_node: 256Gb + mem_per_node: 256GB job: &job mpi_runner: mpirun @@ -11,9 +11,8 @@ job: &job PATH: "$HOME/git_repos/abinit/_build_vega-intel-impi-mkl.ac/src/98_main/:$PATH" modules: - intel/2015a - #pre_run: "ulimit -s unlimited" -# queues +# queues qadapters: - priority: 1 queue: diff --git a/abipy/data/managers/viper_manager.yml b/abipy/data/managers/viper_manager.yml index 89a6177b5..80e1e2b7d 100644 --- a/abipy/data/managers/viper_manager.yml +++ b/abipy/data/managers/viper_manager.yml @@ -2,16 +2,15 @@ hardware: &hardware num_nodes: 1 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 32Gb + mem_per_node: 32GB job: &job mpi_runner: ~/bin/mpirun.openmpi # pre_run is a string in verbatim mode (note |) - pre_run: - - "ulimit -s unlimited" + pre_run: - "source ~/.bashrc" -# queues +# queues qadapters: - priority: 1 queue: diff --git a/abipy/data/managers/zenobe_manager.yml b/abipy/data/managers/zenobe_manager.yml index cdbe6532c..71a408462 100644 --- a/abipy/data/managers/zenobe_manager.yml +++ b/abipy/data/managers/zenobe_manager.yml @@ -3,13 +3,13 @@ westmere: &westmere num_nodes: 274 sockets_per_node: 2 cores_per_socket: 6 - mem_per_node: 24 Gb + mem_per_node: 24 GB ivybridge: &ivybridge num_nodes: 342 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 64 Gb + mem_per_node: 64 GB # Environment, modules, and parameters used to launch jobs. job: &job @@ -20,13 +20,12 @@ job: &job - compiler/intel/composerxe/2013_sp1.1.106 - intelmpi - python/2.7 - pre_run: "ulimit -s unlimited" -# List of qdapters. +# List of qdapters. qadapters: # Westmere default. - priority: 99 - queue: + queue: qname: main qtype: pbspro qparams: @@ -38,11 +37,11 @@ qadapters: min_cores: 1 max_cores: 24 job: *job - hardware: *westmere - + hardware: *westmere + # Ivybridge large. - priority: 1 - queue: + queue: qname: large qtype: pbspro qparams: diff --git a/abipy/data/nist_database.py b/abipy/data/nist_database.py new file mode 100644 index 000000000..fb17c1b04 --- /dev/null +++ b/abipy/data/nist_database.py @@ -0,0 +1,1729 @@ +"""Data taken from http://www.physics.nist.gov/PhysRefData/DFTdata/""" +from __future__ import print_function, division, unicode_literals +from collections import namedtuple + +# Computer generated code +_neutral = { + 'Ac': '[Rn] 6d1 7s2', + 'Ag': '[Kr] 4d10 5s1', + 'Al': '[Ne] 3s2 3p1', + 'Ar': '[Ne] 3s2 3p6', + 'As': '[Ar] 3d10 4s2 4p3', + 'At': '[Xe] 4f14 5d10 6s2 6p5', + 'Au': '[Xe] 4f14 5d10 6s1', + 'B': '[He] 2s2 2p1', + 'Ba': '[Xe] 6s2', + 'Be': '[He] 2s2', + 'Bi': '[Xe] 4f14 5d10 6s2 6p3', + 'Br': '[Ar] 3d10 4s2 4p5', + 'C': '[He] 2s2 2p2', + 'Ca': '[Ar] 4s2', + 'Cd': '[Kr] 4d10 5s2', + 'Ce': '[Xe] 4f1 5d1 6s2', + 'Cl': '[Ne] 3s2 3p5', + 'Co': '[Ar] 3d7 4s2', + 'Cr': '[Ar] 3d5 4s1', + 'Cs': '[Xe] 6s1', + 'Cu': '[Ar] 3d10 4s1', + 'Dy': '[Xe] 4f10 6s2', + 'Er': '[Xe] 4f12 6s2', + 'Eu': '[Xe] 4f7 6s2', + 'F': '[He] 2s2 2p5', + 'Fe': '[Ar] 3d6 4s2', + 'Fr': '[Rn] 7s1', + 'Ga': '[Ar] 3d10 4s2 4p1', + 'Gd': '[Xe] 4f7 5d1 6s2', + 'Ge': '[Ar] 3d10 4s2 4p2', + 'H': '1s1', + 'He': '1s2', + 'Hf': '[Xe] 4f14 5d2 6s2', + 'Hg': '[Xe] 4f14 5d10 6s2', + 'Ho': '[Xe] 4f11 6s2', + 'I': '[Kr] 4d10 5s2 5p5', + 'In': '[Kr] 4d10 5s2 5p1', + 'Ir': '[Xe] 4f14 5d7 6s2', + 'K': '[Ar] 4s1', + 'Kr': '[Ar] 3d10 4s2 4p6', + 'La': '[Xe] 5d1 6s2', + 'Li': '[He] 2s1', + 'Lu': '[Xe] 4f14 5d1 6s2', + 'Mg': '[Ne] 3s2', + 'Mn': '[Ar] 3d5 4s2', + 'Mo': '[Kr] 4d5 5s1', + 'N': '[He] 2s2 2p3', + 'Na': '[Ne] 3s1', + 'Nb': '[Kr] 4d4 5s1', + 'Nd': '[Xe] 4f4 6s2', + 'Ne': '[He] 2s2 2p6', + 'Ni': '[Ar] 3d8 4s2', + 'O': '[He] 2s2 2p4', + 'Os': '[Xe] 4f14 5d6 6s2', + 'P': '[Ne] 3s2 3p3', + 'Pa': '[Rn] 5f2 6d1 7s2', + 'Pb': '[Xe] 4f14 5d10 6s2 6p2', + 'Pd': '[Kr] 4d10', + 'Pm': '[Xe] 4f5 6s2', + 'Po': '[Xe] 4f14 5d10 6s2 6p4', + 'Pr': '[Xe] 4f3 6s2', + 'Pt': '[Xe] 4f14 5d9 6s1', + 'Ra': '[Rn] 7s2', + 'Rb': '[Kr] 5s1', + 'Re': '[Xe] 4f14 5d5 6s2', + 'Rh': '[Kr] 4d8 5s1', + 'Rn': '[Xe] 4f14 5d10 6s2 6p6', + 'Ru': '[Kr] 4d7 5s1', + 'S': '[Ne] 3s2 3p4', + 'Sb': '[Kr] 4d10 5s2 5p3', + 'Sc': '[Ar] 3d1 4s2', + 'Se': '[Ar] 3d10 4s2 4p4', + 'Si': '[Ne] 3s2 3p2', + 'Sm': '[Xe] 4f6 6s2', + 'Sn': '[Kr] 4d10 5s2 5p2', + 'Sr': '[Kr] 5s2', + 'Ta': '[Xe] 4f14 5d3 6s2', + 'Tb': '[Xe] 4f9 6s2', + 'Tc': '[Kr] 4d5 5s2', + 'Te': '[Kr] 4d10 5s2 5p4', + 'Th': '[Rn] 6d2 7s2', + 'Ti': '[Ar] 3d2 4s2', + 'Tl': '[Xe] 4f14 5d10 6s2 6p1', + 'Tm': '[Xe] 4f13 6s2', + 'U': '[Rn] 5f3 6d1 7s2', + 'V': '[Ar] 3d3 4s2', + 'W': '[Xe] 4f14 5d4 6s2', + 'Xe': '[Kr] 4d10 5s2 5p6', + 'Y': '[Kr] 4d1 5s2', + 'Yb': '[Xe] 4f14 6s2', + 'Zn': '[Ar] 3d10 4s2', + 'Zr': '[Kr] 4d2 5s2' +} + +# Computer generated code +_cations = { + 'Ac': '[Rn] 7s2', + 'Ag': '[Kr] 4d10', + 'Al': '[Ne] 3s2', + 'Ar': '[Ne] 3s2 3p5', + 'As': '[Ar] 3d10 4s2 4p2', + 'At': '[Xe] 4f14 5d10 6s2 6p4', + 'Au': '[Xe] 4f14 5d10', + 'B': '[He] 2s2', + 'Ba': '[Xe] 6s1', + 'Be': '[He] 2s1', + 'Bi': '[Xe] 4f14 5d10 6s2 6p2', + 'Br': '[Ar] 3d10 4s2 4p4', + 'C': '[He] 2s2 2p1', + 'Ca': '[Ar] 4s1', + 'Cd': '[Kr] 4d10 5s1', + 'Ce': '[Xe] 4f1 5d2', + 'Cl': '[Ne] 3s2 3p4', + 'Co': '[Ar] 3d8', + 'Cr': '[Ar] 3d5', + 'Cs': '[Kr] 4d10 5s2 5p6', + 'Cu': '[Ar] 3d10', + 'Dy': '[Xe] 4f10 6s1', + 'Er': '[Xe] 4f12 6s1', + 'Eu': '[Xe] 4f7 6s1', + 'F': '[He] 2s2 2p4', + 'Fe': '[Ar] 3d6 4s1', + 'Fr': '[Xe] 4f14 5d10 6s2 6p6', + 'Ga': '[Ar] 3d10 4s2', + 'Gd': '[Xe] 4f7 5d1 6s1', + 'Ge': '[Ar] 3d10 4s2 4p1', + 'H': None, + 'He': '1s1', + 'Hf': '[Xe] 4f14 5d1 6s2', + 'Hg': '[Xe] 4f14 5d10 6s1', + 'Ho': '[Xe] 4f11 6s1', + 'I': '[Kr] 4d10 5s2 5p4', + 'In': '[Kr] 4d10 5s2', + 'Ir': '[Xe] 4f14 5d7 6s1', + 'K': '[Ne] 3s2 3p6', + 'Kr': '[Ar] 3d10 4s2 4p5', + 'La': '[Xe] 5d2', + 'Li': '1s2', + 'Lu': '[Xe] 4f14 6s2', + 'Mg': '[Ne] 3s1', + 'Mn': '[Ar] 3d5 4s1', + 'Mo': '[Kr] 4d5', + 'N': '[He] 2s2 2p2', + 'Na': '[He] 2s2 2p6', + 'Nb': '[Kr] 4d4', + 'Nd': '[Xe] 4f4 6s1', + 'Ne': '[He] 2s2 2p5', + 'Ni': '[Ar] 3d9', + 'O': '[He] 2s2 2p3', + 'Os': '[Xe] 4f14 5d6 6s1', + 'P': '[Ne] 3s2 3p2', + 'Pa': '[Rn] 5f2 7s2', + 'Pb': '[Xe] 4f14 5d10 6s2 6p1', + 'Pd': '[Kr] 4d9', + 'Pm': '[Xe] 4f5 6s1', + 'Po': '[Xe] 4f14 5d10 6s2 6p3', + 'Pr': '[Xe] 4f3 6s1', + 'Pt': '[Xe] 4f14 5d9', + 'Ra': '[Rn] 7s1', + 'Rb': '[Ar] 3d10 4s2 4p6', + 'Re': '[Xe] 4f14 5d5 6s1', + 'Rh': '[Kr] 4d8', + 'Rn': '[Xe] 4f14 5d10 6s2 6p5', + 'Ru': '[Kr] 4d7', + 'S': '[Ne] 3s2 3p3', + 'Sb': '[Kr] 4d10 5s2 5p2', + 'Sc': '[Ar] 3d1 4s1', + 'Se': '[Ar] 3d10 4s2 4p3', + 'Si': '[Ne] 3s2 3p1', + 'Sm': '[Xe] 4f6 6s1', + 'Sn': '[Kr] 4d10 5s2 5p1', + 'Sr': '[Kr] 5s1', + 'Ta': '[Xe] 4f14 5d3 6s1', + 'Tb': '[Xe] 4f9 6s1', + 'Tc': '[Kr] 4d5 5s1', + 'Te': '[Kr] 4d10 5s2 5p3', + 'Th': '[Rn] 6d2 7s1', + 'Ti': '[Ar] 3d2 4s1', + 'Tl': '[Xe] 4f14 5d10 6s2', + 'Tm': '[Xe] 4f13 6s1', + 'U': '[Rn] 5f3 7s2', + 'V': '[Ar] 3d4', + 'W': '[Xe] 4f14 5d4 6s1', + 'Xe': '[Kr] 4d10 5s2 5p5', + 'Y': '[Kr] 5s2', + 'Yb': '[Xe] 4f14 6s1', + 'Zn': '[Ar] 3d10 4s1', + 'Zr': '[Kr] 4d2 5s1' +} + +# Computer generated code: nist_xctype = LDA, iontype = neutrals +# format: +# 'element': (atomic number, [(n, l, occ, energy), ...]) +_neutral_entries = { + 'Ac': (89, + [(1, 0, 2, -3443.110367), + (2, 0, 2, -592.622878), + (2, 1, 6, -572.7627), + (3, 0, 2, -147.320716), + (3, 1, 6, -137.654394), + (3, 2, 10, -119.541743), + (4, 0, 2, -36.15826), + (4, 1, 6, -31.761846), + (4, 2, 10, -23.57061), + (5, 0, 2, -7.713078), + (5, 1, 6, -6.06511), + (4, 3, 14, -12.278225), + (5, 2, 10, -3.222752), + (6, 0, 2, -1.19698), + (6, 1, 6, -0.744524), + (6, 2, 1, -0.137786), + (7, 0, 2, -0.126551)], + {'Ecoul': 9262.611883, + 'Eenuc': -56286.016507, + 'Ekin': 23709.594347, + 'Etot': -23716.496952, + 'Exc': -402.686674}), + 'Ag': (47, + [(1, 0, 2, -900.324578), + (2, 0, 2, -129.859807), + (2, 1, 6, -120.913351), + (3, 0, 2, -23.678437), + (3, 1, 6, -20.06763), + (3, 2, 10, -13.367803), + (4, 0, 2, -3.22309), + (4, 1, 6, -2.086602), + (4, 2, 10, -0.298706), + (5, 0, 1, -0.157407)], + {'Ecoul': 2131.618463, + 'Eenuc': -12377.294484, + 'Ekin': 5191.8186, + 'Etot': -5195.031215, + 'Exc': -141.173794}), + 'Al': (13, + [(1, 0, 2, -55.156044), + (2, 0, 2, -3.934827), + (2, 1, 6, -2.564018), + (3, 0, 2, -0.286883), + (3, 1, 1, -0.102545)], + {'Ecoul': 112.670733, + 'Eenuc': -577.205757, + 'Ekin': 240.663489, + 'Etot': -241.315573, + 'Exc': -17.444038}), + 'Ar': (18, + [(1, 0, 2, -113.800134), + (2, 0, 2, -10.794172), + (2, 1, 6, -8.443439), + (3, 0, 2, -0.883384), + (3, 1, 6, -0.38233)], + {'Ecoul': 231.458124, + 'Eenuc': -1253.131982, + 'Ekin': 524.969812, + 'Etot': -525.946195, + 'Exc': -29.242149}), + 'As': (33, + [(1, 0, 2, -423.336658), + (2, 0, 2, -53.093086), + (2, 1, 6, -47.527869), + (3, 0, 2, -6.730755), + (3, 1, 6, -4.851725), + (3, 2, 10, -1.542767), + (4, 0, 2, -0.52367), + (4, 1, 3, -0.197497)], + {'Ecoul': 960.716547, + 'Eenuc': -5344.04275, + 'Ekin': 2230.434545, + 'Etot': -2232.534978, + 'Exc': -79.643321}), + 'At': (85, + [(1, 0, 2, -3127.390276), + (2, 0, 2, -531.81835), + (2, 1, 6, -513.044243), + (3, 0, 2, -129.035542), + (3, 1, 6, -119.995013), + (3, 2, 10, -103.060375), + (4, 0, 2, -29.809515), + (4, 1, 6, -25.778264), + (4, 2, 10, -18.295162), + (5, 0, 2, -5.453383), + (5, 1, 6, -4.027061), + (4, 3, 14, -8.063483), + (5, 2, 10, -1.643758), + (6, 0, 2, -0.560189), + (6, 1, 5, -0.255453)], + {'Ecoul': 8414.956548, + 'Eenuc': -50556.606342, + 'Ekin': 21254.968349, + 'Etot': -21261.555215, + 'Exc': -374.873771}), + 'Au': (79, + [(1, 0, 2, -2683.508245), + (2, 0, 2, -447.888973), + (2, 1, 6, -430.725701), + (3, 0, 2, -104.824516), + (3, 1, 6, -96.707), + (3, 2, 10, -81.511751), + (4, 0, 2, -22.078357), + (4, 1, 6, -18.578652), + (4, 2, 10, -12.131815), + (5, 0, 2, -3.113936), + (5, 1, 6, -2.002495), + (4, 3, 14, -3.486824), + (5, 2, 10, -0.304738), + (6, 0, 1, -0.162334)], + {'Ecoul': 7170.546095, + 'Eenuc': -42552.587217, + 'Ekin': 17854.711365, + 'Etot': -17860.790943, + 'Exc': -333.461185}), + 'B': (5, + [(1, 0, 2, -6.564347), (2, 0, 2, -0.344701), (2, 1, 1, -0.136603)], + {'Ecoul': 11.503002, + 'Eenuc': -56.484587, + 'Ekin': 24.161047, + 'Etot': -24.344198, + 'Exc': -3.52366}), + 'Ba': (56, + [(1, 0, 2, -1305.743258), + (2, 0, 2, -200.844444), + (2, 1, 6, -189.598483), + (3, 0, 2, -42.359434), + (3, 1, 6, -37.536931), + (3, 2, 10, -28.528933), + (4, 0, 2, -8.257061), + (4, 1, 6, -6.497622), + (4, 2, 10, -3.432441), + (5, 0, 2, -1.157159), + (5, 1, 6, -0.698605), + (6, 0, 2, -0.118967)], + {'Ecoul': 3098.114585, + 'Eenuc': -18668.853113, + 'Ekin': 7876.220134, + 'Etot': -7880.111578, + 'Exc': -185.593184}), + 'Be': (4, + [(1, 0, 2, -3.856411), (2, 0, 2, -0.205744)], + {'Ecoul': 7.115257, + 'Eenuc': -33.357034, + 'Ekin': 14.309424, + 'Etot': -14.447209, + 'Exc': -2.514856}), + 'Bi': (83, + [(1, 0, 2, -2975.550959), + (2, 0, 2, -502.950758), + (2, 1, 6, -484.716359), + (3, 0, 2, -120.613998), + (3, 1, 6, -111.883393), + (3, 2, 10, -95.532476), + (4, 0, 2, -27.07034), + (4, 1, 6, -23.218641), + (4, 2, 10, -16.084817), + (5, 0, 2, -4.611934), + (5, 1, 6, -3.293637), + (4, 3, 14, -6.382744), + (5, 2, 10, -1.139408), + (6, 0, 2, -0.426129), + (6, 1, 3, -0.180198)], + {'Ecoul': 7989.999458, + 'Eenuc': -47803.484105, + 'Ekin': 20083.999522, + 'Etot': -20090.414449, + 'Exc': -360.929324}), + 'Br': (35, + [(1, 0, 2, -480.182643), + (2, 0, 2, -61.710022), + (2, 1, 6, -55.67796), + (3, 0, 2, -8.409057), + (3, 1, 6, -6.298805), + (3, 2, 10, -2.52211), + (4, 0, 2, -0.720066), + (4, 1, 5, -0.295334)], + {'Ecoul': 1098.492305, + 'Eenuc': -6149.802515, + 'Ekin': 2568.365427, + 'Etot': -2570.6207, + 'Exc': -87.675917}), + 'C': (6, + [(1, 0, 2, -9.947718), (2, 0, 2, -0.500866), (2, 1, 2, -0.199186)], + {'Ecoul': 17.627997, + 'Eenuc': -87.515412, + 'Ekin': 37.190391, + 'Etot': -37.425749, + 'Exc': -4.728724}), + 'Ca': (20, + [(1, 0, 2, -143.935181), + (2, 0, 2, -15.046905), + (2, 1, 6, -12.285376), + (3, 0, 2, -1.706331), + (3, 1, 6, -1.030572), + (4, 0, 2, -0.141411)], + {'Ecoul': 285.20613, + 'Eenuc': -1601.463209, + 'Ekin': 674.657334, + 'Etot': -675.742283, + 'Exc': -34.142538}), + 'Cd': (48, + [(1, 0, 2, -941.476646), + (2, 0, 2, -136.83249), + (2, 1, 6, -127.63512), + (3, 0, 2, -25.379908), + (3, 1, 6, -21.637522), + (3, 2, 10, -14.685252), + (4, 0, 2, -3.596069), + (4, 1, 6, -2.39526), + (4, 2, 10, -0.47053), + (5, 0, 2, -0.204228)], + {'Ecoul': 2233.419308, + 'Eenuc': -13008.902423, + 'Ekin': 5459.099922, + 'Etot': -5462.390982, + 'Exc': -146.007788}), + 'Ce': (58, + [(1, 0, 2, -1406.148284), + (2, 0, 2, -218.684842), + (2, 1, 6, -206.925148), + (3, 0, 2, -47.035283), + (3, 1, 6, -41.938282), + (3, 2, 10, -32.412569), + (4, 0, 2, -9.432744), + (4, 1, 6, -7.532106), + (4, 2, 10, -4.192548), + (5, 0, 2, -1.369728), + (5, 1, 6, -0.85011), + (4, 3, 1, -0.337442), + (5, 2, 1, -0.14055), + (6, 0, 2, -0.133974)], + {'Ecoul': 3351.833535, + 'Eenuc': -20278.178413, + 'Ekin': 8559.301423, + 'Etot': -8563.360285, + 'Exc': -196.316831}), + 'Cl': (17, + [(1, 0, 2, -100.369229), + (2, 0, 2, -9.187993), + (2, 1, 6, -7.039982), + (3, 0, 2, -0.754458), + (3, 1, 5, -0.32038)], + {'Ecoul': 202.772337, + 'Eenuc': -1092.568993, + 'Ekin': 457.758293, + 'Etot': -458.664179, + 'Exc': -26.625816}), + 'Co': (27, + [(1, 0, 2, -275.616639), + (2, 0, 2, -32.379758), + (2, 1, 6, -28.152095), + (3, 0, 2, -3.651812), + (3, 1, 6, -2.388285), + (3, 2, 7, -0.322368), + (4, 0, 2, -0.204497)], + {'Ecoul': 589.169216, + 'Eenuc': -3291.260194, + 'Ekin': 1378.468819, + 'Etot': -1380.091264, + 'Exc': -56.469106}), + 'Cr': (24, + [(1, 0, 2, -213.881191), + (2, 0, 2, -24.113457), + (2, 1, 6, -20.526273), + (3, 0, 2, -2.649085), + (3, 1, 6, -1.65423), + (3, 2, 5, -0.118123), + (4, 0, 1, -0.150445)], + {'Ecoul': 441.867987, + 'Eenuc': -2478.305541, + 'Ekin': 1040.642716, + 'Etot': -1042.030238, + 'Exc': -46.2354}), + 'Cs': (55, + [(1, 0, 2, -1256.738791), + (2, 0, 2, -191.981873), + (2, 1, 6, -180.995344), + (3, 0, 2, -39.851584), + (3, 1, 6, -35.166423), + (3, 2, 10, -26.418398), + (4, 0, 2, -7.455966), + (4, 1, 6, -5.769326), + (4, 2, 10, -2.848386), + (5, 0, 2, -0.915819), + (5, 1, 6, -0.504903), + (6, 0, 1, -0.078699)], + {'Ecoul': 2988.242134, + 'Eenuc': -17904.90606, + 'Ekin': 7546.734488, + 'Etot': -7550.55771, + 'Exc': -180.628271}), + 'Cu': (29, + [(1, 0, 2, -320.78852), + (2, 0, 2, -38.14131), + (2, 1, 6, -33.481247), + (3, 0, 2, -4.057453), + (3, 1, 6, -2.609244), + (3, 2, 10, -0.202272), + (4, 0, 1, -0.172056)], + {'Ecoul': 713.928477, + 'Eenuc': -3923.329381, + 'Ekin': 1635.9828, + 'Etot': -1637.785861, + 'Exc': -64.367756}), + 'Dy': (66, + [(1, 0, 2, -1843.229585), + (2, 0, 2, -295.342856), + (2, 1, 6, -281.558531), + (3, 0, 2, -65.299442), + (3, 1, 6, -59.091931), + (3, 2, 10, -47.4867), + (4, 0, 2, -12.551251), + (4, 1, 6, -10.094091), + (4, 2, 10, -5.686352), + (5, 0, 2, -1.547977), + (5, 1, 6, -0.90349), + (4, 3, 10, -0.265302), + (6, 0, 2, -0.132769)], + {'Ecoul': 4637.607532, + 'Eenuc': -27663.021946, + 'Ekin': 11633.033352, + 'Etot': -11637.869664, + 'Exc': -245.488603}), + 'Er': (68, + [(1, 0, 2, -1961.799176), + (2, 0, 2, -316.310631), + (2, 1, 6, -302.01827), + (3, 0, 2, -70.310142), + (3, 1, 6, -63.818655), + (3, 2, 10, -51.682149), + (4, 0, 2, -13.423547), + (4, 1, 6, -10.819574), + (4, 2, 10, -6.127443), + (5, 0, 2, -1.616073), + (5, 1, 6, -0.935202), + (4, 3, 12, -0.278577), + (6, 0, 2, -0.134905)], + {'Ecoul': 5005.110005, + 'Eenuc': -29730.765707, + 'Ekin': 12489.682402, + 'Etot': -12494.718304, + 'Exc': -258.745003}), + 'Eu': (63, + [(1, 0, 2, -1672.309322), + (2, 0, 2, -265.199534), + (2, 1, 6, -252.176697), + (3, 0, 2, -58.068128), + (3, 1, 6, -52.281987), + (3, 2, 10, -41.465518), + (4, 0, 2, -11.267747), + (4, 1, 6, -9.025455), + (4, 2, 10, -5.03242), + (5, 0, 2, -1.444087), + (5, 1, 6, -0.853575), + (4, 3, 7, -0.232773), + (6, 0, 2, -0.129426)], + {'Ecoul': 4124.189856, + 'Eenuc': -24732.67422, + 'Ekin': 10415.168162, + 'Etot': -10419.710775, + 'Exc': -226.394574}), + 'F': (9, + [(1, 0, 2, -24.189391), (2, 0, 2, -1.086859), (2, 1, 5, -0.415606)], + {'Ecoul': 49.535385, + 'Eenuc': -237.688846, + 'Ekin': 98.676131, + 'Etot': -99.099648, + 'Exc': -9.622319}), + 'Fe': (26, + [(1, 0, 2, -254.225505), + (2, 0, 2, -29.56486), + (2, 1, 6, -25.551766), + (3, 0, 2, -3.360621), + (3, 1, 6, -2.187523), + (3, 2, 6, -0.295049), + (4, 0, 2, -0.197978)], + {'Ecoul': 535.295832, + 'Eenuc': -3003.082484, + 'Ekin': 1259.553429, + 'Etot': -1261.093056, + 'Exc': -52.859833}), + 'Fr': (87, + [(1, 0, 2, -3283.263399), + (2, 0, 2, -561.73045), + (2, 1, 6, -542.41424), + (3, 0, 2, -137.959632), + (3, 1, 6, -128.607136), + (3, 2, 10, -111.085223), + (4, 0, 2, -32.861013), + (4, 1, 6, -28.648131), + (4, 2, 10, -20.812462), + (5, 0, 2, -6.509516), + (5, 1, 6, -4.97328), + (4, 3, 14, -10.050648), + (5, 2, 10, -2.360991), + (6, 0, 2, -0.841848), + (6, 1, 6, -0.466197), + (7, 0, 1, -0.076176)], + {'Ecoul': 8837.303934, + 'Eenuc': -53382.425806, + 'Ekin': 22463.57381, + 'Etot': -22470.319655, + 'Exc': -388.771593}), + 'Ga': (31, + [(1, 0, 2, -370.170639), + (2, 0, 2, -45.200869), + (2, 1, 6, -40.093339), + (3, 0, 2, -5.241645), + (3, 1, 6, -3.584666), + (3, 2, 10, -0.736204), + (4, 0, 2, -0.328019), + (4, 1, 1, -0.101634)], + {'Ecoul': 833.754978, + 'Eenuc': -4603.576824, + 'Ekin': 1919.894783, + 'Etot': -1921.846456, + 'Exc': -71.919393}), + 'Gd': (64, + [(1, 0, 2, -1728.625195), + (2, 0, 2, -275.36313), + (2, 1, 6, -262.081616), + (3, 0, 2, -60.764408), + (3, 1, 6, -54.836922), + (3, 2, 10, -43.754556), + (4, 0, 2, -11.986486), + (4, 1, 6, -9.669866), + (4, 2, 10, -5.531835), + (5, 0, 2, -1.608477), + (5, 1, 6, -0.978749), + (4, 3, 7, -0.489012), + (5, 2, 1, -0.12722), + (6, 0, 2, -0.143627)], + {'Ecoul': 4273.725204, + 'Eenuc': -25670.165341, + 'Ekin': 10812.02673, + 'Etot': -10816.653877, + 'Exc': -232.24047}), + 'Ge': (32, + [(1, 0, 2, -396.292991), + (2, 0, 2, -49.055282), + (2, 1, 6, -43.720129), + (3, 0, 2, -5.961472), + (3, 1, 6, -4.194822), + (3, 2, 10, -1.117316), + (4, 0, 2, -0.426523), + (4, 1, 2, -0.149882)], + {'Ecoul': 895.945638, + 'Eenuc': -4965.789424, + 'Ekin': 2071.782093, + 'Etot': -2073.807332, + 'Exc': -75.74564}), + 'H': (1, + [(1, 0, 1, -0.233471)], + {'Ecoul': 0.282827, + 'Eenuc': -0.920999, + 'Ekin': 0.425027, + 'Etot': -0.445671, + 'Exc': -0.232525}), + 'He': (2, + [(1, 0, 2, -0.570425)], + {'Ecoul': 1.99612, + 'Eenuc': -6.625564, + 'Ekin': 2.767922, + 'Etot': -2.834836, + 'Exc': -0.973314}), + 'Hf': (72, + [(1, 0, 2, -2210.65199), + (2, 0, 2, -361.006527), + (2, 1, 6, -345.687023), + (3, 0, 2, -81.522812), + (3, 1, 6, -74.452656), + (3, 2, 10, -61.231443), + (4, 0, 2, -15.883625), + (4, 1, 6, -12.971211), + (4, 2, 10, -7.676638), + (5, 0, 2, -2.049828), + (5, 1, 6, -1.246441), + (4, 3, 14, -0.871574), + (5, 2, 2, -0.143805), + (6, 0, 2, -0.166465)], + {'Ecoul': 5760.587419, + 'Eenuc': -34104.629307, + 'Ekin': 14312.076902, + 'Etot': -14317.49372, + 'Exc': -285.528734}), + 'Hg': (80, + [(1, 0, 2, -2755.022637), + (2, 0, 2, -461.27864), + (2, 1, 6, -443.848676), + (3, 0, 2, -108.597921), + (3, 1, 6, -100.328031), + (3, 2, 10, -84.845492), + (4, 0, 2, -23.222921), + (4, 1, 6, -19.636187), + (4, 2, 10, -13.019221), + (5, 0, 2, -3.423486), + (5, 1, 6, -2.261975), + (4, 3, 14, -4.110291), + (5, 2, 10, -0.452552), + (6, 0, 2, -0.205137)], + {'Ecoul': 7374.994996, + 'Eenuc': -43837.047179, + 'Ekin': 18398.108387, + 'Etot': -18404.27422, + 'Exc': -340.330424}), + 'Ho': (67, + [(1, 0, 2, -1902.051908), + (2, 0, 2, -305.739294), + (2, 1, 6, -291.700994), + (3, 0, 2, -67.785492), + (3, 1, 6, -61.436304), + (3, 2, 10, -49.565996), + (4, 0, 2, -12.985498), + (4, 1, 6, -10.455303), + (4, 2, 10, -5.906195), + (5, 0, 2, -1.582088), + (5, 1, 6, -0.919463), + (4, 3, 11, -0.272677), + (6, 0, 2, -0.133845)], + {'Ecoul': 4818.79662, + 'Eenuc': -28685.338027, + 'Ekin': 12056.834803, + 'Etot': -12061.770549, + 'Exc': -252.063945}), + 'I': (53, + [(1, 0, 2, -1161.787047), + (2, 0, 2, -175.073804), + (2, 1, 6, -164.603788), + (3, 0, 2, -35.243351), + (3, 1, 6, -30.831092), + (3, 2, 10, -22.600693), + (4, 0, 2, -6.115811), + (4, 1, 6, -4.572522), + (4, 2, 10, -1.938179), + (5, 0, 2, -0.596339), + (5, 1, 5, -0.267904)], + {'Ecoul': 2766.012734, + 'Eenuc': -16421.269549, + 'Ekin': 6911.09591, + 'Etot': -6914.773092, + 'Exc': -170.612187}), + 'In': (49, + [(1, 0, 2, -983.647445), + (2, 0, 2, -144.078357), + (2, 1, 6, -134.628845), + (3, 0, 2, -27.2206), + (3, 1, 6, -23.345778), + (3, 2, 10, -16.139823), + (4, 0, 2, -4.062639), + (4, 1, 6, -2.795832), + (4, 2, 10, -0.730481), + (5, 0, 2, -0.290497), + (5, 1, 1, -0.101782)], + {'Ecoul': 2334.432447, + 'Eenuc': -13654.870647, + 'Ekin': 5733.94412, + 'Etot': -5737.309064, + 'Exc': -150.814984}), + 'Ir': (77, + [(1, 0, 2, -2543.761342), + (2, 0, 2, -422.159424), + (2, 1, 6, -405.526834), + (3, 0, 2, -97.923081), + (3, 1, 6, -90.108427), + (3, 2, 10, -75.485027), + (4, 0, 2, -20.29429), + (4, 1, 6, -16.966578), + (4, 2, 10, -10.856593), + (5, 0, 2, -2.909174), + (5, 1, 6, -1.883349), + (4, 3, 14, -2.738339), + (5, 2, 7, -0.335189), + (6, 0, 2, -0.195511)], + {'Ecoul': 6740.648988, + 'Eenuc': -40018.842379, + 'Ekin': 16795.798049, + 'Etot': -16801.677471, + 'Exc': -319.282128}), + 'K': (19, + [(1, 0, 2, -128.414957), + (2, 0, 2, -12.839001), + (2, 1, 6, -10.283851), + (3, 0, 2, -1.281897), + (3, 1, 6, -0.693776), + (4, 0, 1, -0.088815)], + {'Ecoul': 257.381524, + 'Eenuc': -1421.104115, + 'Ekin': 597.17213, + 'Etot': -598.20059, + 'Exc': -31.650129}), + 'Kr': (36, + [(1, 0, 2, -509.982989), + (2, 0, 2, -66.285953), + (2, 1, 6, -60.017328), + (3, 0, 2, -9.315192), + (3, 1, 6, -7.086634), + (3, 2, 10, -3.074109), + (4, 0, 2, -0.820574), + (4, 1, 6, -0.34634)], + {'Ecoul': 1171.723688, + 'Eenuc': -6577.865761, + 'Ekin': 2747.813142, + 'Etot': -2750.14794, + 'Exc': -91.819009}), + 'La': (57, + [(1, 0, 2, -1355.622446), + (2, 0, 2, -209.831151), + (2, 1, 6, -198.325243), + (3, 0, 2, -44.856283), + (3, 1, 6, -39.895838), + (3, 2, 10, -30.626696), + (4, 0, 2, -9.000543), + (4, 1, 6, -7.167724), + (4, 2, 10, -3.95801), + (5, 0, 2, -1.324936), + (5, 1, 6, -0.824498), + (5, 2, 1, -0.141085), + (6, 0, 2, -0.132233)], + {'Ecoul': 3215.018109, + 'Eenuc': -19455.494762, + 'Ekin': 8213.607378, + 'Etot': -8217.57523, + 'Exc': -190.705955}), + 'Li': (3, + [(1, 0, 2, -1.878564), (2, 0, 1, -0.10554)], + {'Ecoul': 3.990755, + 'Eenuc': -16.911041, + 'Ekin': 7.237484, + 'Etot': -7.335195, + 'Exc': -1.652393}), + 'Lu': (71, + [(1, 0, 2, -2146.885351), + (2, 0, 2, -349.390492), + (2, 1, 6, -334.330902), + (3, 0, 2, -78.462398), + (3, 1, 6, -71.538779), + (3, 2, 10, -58.592982), + (4, 0, 2, -15.08337), + (4, 1, 6, -12.250904), + (4, 2, 10, -7.113364), + (5, 0, 2, -1.872086), + (5, 1, 6, -1.111991), + (4, 3, 14, -0.568096), + (5, 2, 1, -0.103686), + (6, 0, 2, -0.155112)], + {'Ecoul': 5575.225315, + 'Eenuc': -32987.406799, + 'Ekin': 13842.903527, + 'Etot': -13848.230375, + 'Exc': -278.952417}), + 'Mg': (12, + [(1, 0, 2, -45.973167), + (2, 0, 2, -2.903746), + (2, 1, 6, -1.71897), + (3, 0, 2, -0.175427)], + {'Ecoul': 95.67329, + 'Eenuc': -477.899149, + 'Ekin': 198.541505, + 'Etot': -199.139406, + 'Exc': -15.455051}), + 'Mn': (25, + [(1, 0, 2, -233.696912), + (2, 0, 2, -26.866646), + (2, 1, 6, -23.066297), + (3, 0, 2, -3.076637), + (3, 1, 6, -1.99145), + (3, 2, 5, -0.26654), + (4, 0, 2, -0.191136)], + {'Ecoul': 485.085158, + 'Eenuc': -2731.133992, + 'Ekin': 1146.990867, + 'Etot': -1148.449372, + 'Exc': -49.391406}), + 'Mo': (42, + [(1, 0, 2, -709.232119), + (2, 0, 2, -98.503638), + (2, 1, 6, -90.791541), + (3, 0, 2, -16.681545), + (3, 1, 6, -13.71481), + (3, 2, 10, -8.257721), + (4, 0, 2, -2.234824), + (4, 1, 6, -1.39005), + (4, 2, 5, -0.153347), + (5, 0, 1, -0.14788)], + {'Ecoul': 1638.977454, + 'Eenuc': -9465.024542, + 'Ekin': 3970.231601, + 'Etot': -3973.013235, + 'Exc': -117.197748}), + 'N': (7, + [(1, 0, 2, -14.011501), (2, 0, 2, -0.676151), (2, 1, 3, -0.266297)], + {'Ecoul': 25.799845, + 'Eenuc': -127.416229, + 'Ekin': 53.731727, + 'Etot': -54.025016, + 'Exc': -6.140359}), + 'Na': (11, + [(1, 0, 2, -37.719975), + (2, 0, 2, -2.063401), + (2, 1, 6, -1.060636), + (3, 0, 1, -0.103415)], + {'Ecoul': 79.732497, + 'Eenuc': -388.546372, + 'Ekin': 160.896571, + 'Etot': -161.44006, + 'Exc': -13.522757}), + 'Nb': (41, + [(1, 0, 2, -673.76253), + (2, 0, 2, -92.74086), + (2, 1, 6, -85.272175), + (3, 0, 2, -15.393727), + (3, 1, 6, -12.552855), + (3, 2, 10, -7.339839), + (4, 0, 2, -2.036693), + (4, 1, 6, -1.250049), + (4, 2, 4, -0.125252), + (5, 0, 1, -0.144272)], + {'Ecoul': 1551.501122, + 'Eenuc': -8938.494135, + 'Ekin': 3748.49657, + 'Etot': -3751.196175, + 'Exc': -112.699732}), + 'Nd': (60, + [(1, 0, 2, -1509.698955), + (2, 0, 2, -236.613572), + (2, 1, 6, -224.351816), + (3, 0, 2, -51.161263), + (3, 1, 6, -45.791219), + (3, 2, 10, -35.754515), + (4, 0, 2, -10.000891), + (4, 1, 6, -7.96782), + (4, 2, 10, -4.377027), + (5, 0, 2, -1.334934), + (5, 1, 6, -0.798503), + (4, 3, 4, -0.179508), + (6, 0, 2, -0.125796)], + {'Ecoul': 3654.948015, + 'Eenuc': -22003.064698, + 'Ekin': 9276.05444, + 'Etot': -9280.311037, + 'Exc': -208.248794}), + 'Ne': (10, + [(1, 0, 2, -30.305855), (2, 0, 2, -1.322809), (2, 1, 6, -0.498034)], + {'Ecoul': 65.726488, + 'Eenuc': -309.988206, + 'Ekin': 127.738667, + 'Etot': -128.233481, + 'Exc': -11.71043}), + 'Ni': (28, + [(1, 0, 2, -297.870824), + (2, 0, 2, -35.312112), + (2, 1, 6, -30.868027), + (3, 0, 2, -3.950717), + (3, 1, 6, -2.594158), + (3, 2, 8, -0.348699), + (4, 0, 2, -0.210764)], + {'Ecoul': 646.833302, + 'Eenuc': -3596.066045, + 'Ekin': 1503.873332, + 'Etot': -1505.580197, + 'Exc': -60.220786}), + 'O': (8, + [(1, 0, 2, -18.758245), (2, 0, 2, -0.871362), (2, 1, 4, -0.338381)], + {'Ecoul': 36.331102, + 'Eenuc': -177.152578, + 'Ekin': 74.116881, + 'Etot': -74.473077, + 'Exc': -7.768482}), + 'Os': (76, + [(1, 0, 2, -2475.238617), + (2, 0, 2, -409.522396), + (2, 1, 6, -393.15408), + (3, 0, 2, -94.501324), + (3, 1, 6, -86.837047), + (3, 2, 10, -72.497183), + (4, 0, 2, -19.362527), + (4, 1, 6, -16.119671), + (4, 2, 10, -10.176082), + (5, 0, 2, -2.738293), + (5, 1, 6, -1.757404), + (4, 3, 14, -2.321175), + (5, 2, 6, -0.296791), + (6, 0, 2, -0.191489)], + {'Ecoul': 6537.173416, + 'Eenuc': -38791.574393, + 'Ekin': 16280.510034, + 'Etot': -16286.295408, + 'Exc': -312.404466}), + 'P': (15, + [(1, 0, 2, -76.061897), + (2, 0, 2, -6.329346), + (2, 1, 6, -4.576617), + (3, 0, 2, -0.512364), + (3, 1, 3, -0.20608)], + {'Ecoul': 153.065007, + 'Eenuc': -810.4001, + 'Ekin': 339.173459, + 'Etot': -339.946219, + 'Exc': -21.784585}), + 'Pa': (91, + [(1, 0, 2, -3606.333629), + (2, 0, 2, -623.870431), + (2, 1, 6, -603.470278), + (3, 0, 2, -156.466742), + (3, 1, 6, -146.485678), + (3, 2, 10, -127.781168), + (4, 0, 2, -39.064507), + (4, 1, 6, -34.48293), + (4, 2, 10, -25.933121), + (5, 0, 2, -8.463463), + (5, 1, 6, -6.709821), + (4, 3, 14, -14.105747), + (5, 2, 10, -3.659928), + (6, 0, 2, -1.287232), + (6, 1, 6, -0.799756), + (5, 3, 2, -0.316813), + (6, 2, 1, -0.142481), + (7, 0, 2, -0.129653)], + {'Ecoul': 9743.171707, + 'Eenuc': -59321.169428, + 'Ekin': 24994.200598, + 'Etot': -25001.291382, + 'Exc': -417.494259}), + 'Pb': (82, + [(1, 0, 2, -2901.078061), + (2, 0, 2, -488.843335), + (2, 1, 6, -470.877785), + (3, 0, 2, -116.526852), + (3, 1, 6, -107.950391), + (3, 2, 10, -91.889924), + (4, 0, 2, -25.75333), + (4, 1, 6, -21.990564), + (4, 2, 10, -15.030026), + (5, 0, 2, -4.206797), + (5, 1, 6, -2.941657), + (4, 3, 14, -5.592532), + (5, 2, 10, -0.902393), + (6, 0, 2, -0.357187), + (6, 1, 2, -0.141831)], + {'Ecoul': 7781.994459, + 'Eenuc': -46459.627742, + 'Ekin': 19512.662684, + 'Etot': -19518.993145, + 'Exc': -354.022546}), + 'Pd': (46, + [(1, 0, 2, -860.134909), + (2, 0, 2, -123.105078), + (2, 1, 6, -114.408286), + (3, 0, 2, -22.060898), + (3, 1, 6, -18.580798), + (3, 2, 10, -12.132197), + (4, 0, 2, -2.889173), + (4, 1, 6, -1.815215), + (4, 2, 10, -0.160771)], + {'Ecoul': 2031.645838, + 'Eenuc': -11762.875805, + 'Ekin': 4932.234516, + 'Etot': -4935.368406, + 'Exc': -136.372955}), + 'Pm': (61, + [(1, 0, 2, -1562.980284), + (2, 0, 2, -245.970548), + (2, 1, 6, -233.455114), + (3, 0, 2, -53.429311), + (3, 1, 6, -47.921132), + (3, 2, 10, -37.625433), + (4, 0, 2, -10.422756), + (4, 1, 6, -8.320495), + (4, 2, 10, -4.596822), + (5, 0, 2, -1.372265), + (5, 1, 6, -0.817702), + (4, 3, 5, -0.200159), + (6, 0, 2, -0.127053)], + {'Ecoul': 3806.516511, + 'Eenuc': -22890.942295, + 'Ekin': 9647.133137, + 'Etot': -9651.484134, + 'Exc': -214.191488}), + 'Po': (84, + [(1, 0, 2, -3050.988417), + (2, 0, 2, -517.275843), + (2, 1, 6, -498.77192), + (3, 0, 2, -124.783683), + (3, 1, 6, -115.898384), + (3, 2, 10, -99.256068), + (4, 0, 2, -28.42254), + (4, 1, 6, -24.481337), + (4, 2, 10, -17.173307), + (5, 0, 2, -5.027447), + (5, 1, 6, -3.655382), + (4, 3, 14, -7.206499), + (5, 2, 10, -1.386458), + (6, 0, 2, -0.493528), + (6, 1, 4, -0.217889)], + {'Ecoul': 8200.970142, + 'Eenuc': -49169.103742, + 'Ekin': 20664.75611, + 'Etot': -20671.256539, + 'Exc': -367.879049}), + 'Pr': (59, + [(1, 0, 2, -1457.338067), + (2, 0, 2, -227.426363), + (2, 1, 6, -215.418313), + (3, 0, 2, -48.924994), + (3, 1, 6, -43.692548), + (3, 2, 10, -33.913996), + (4, 0, 2, -9.577447), + (4, 1, 6, -7.613108), + (4, 2, 10, -4.154228), + (5, 0, 2, -1.296106), + (5, 1, 6, -0.778046), + (4, 3, 3, -0.155138), + (6, 0, 2, -0.124465)], + {'Ecoul': 3508.213147, + 'Eenuc': -21136.965209, + 'Ekin': 8913.501128, + 'Etot': -8917.664369, + 'Exc': -202.413435}), + 'Pt': (78, + [(1, 0, 2, -2613.096532), + (2, 0, 2, -434.858003), + (2, 1, 6, -417.96053), + (3, 0, 2, -101.274869), + (3, 1, 6, -93.309108), + (3, 2, 10, -78.400271), + (4, 0, 2, -21.110651), + (4, 1, 6, -17.697297), + (4, 2, 10, -11.419476), + (5, 0, 2, -2.950526), + (5, 1, 6, -1.884256), + (4, 3, 14, -3.038049), + (5, 2, 9, -0.273634), + (6, 0, 1, -0.161308)], + {'Ecoul': 6958.348706, + 'Eenuc': -41279.089979, + 'Ekin': 17320.592847, + 'Etot': -17326.576377, + 'Exc': -326.42795}), + 'Ra': (88, + [(1, 0, 2, -3362.736563), + (2, 0, 2, -577.101208), + (2, 1, 6, -557.513214), + (3, 0, 2, -142.632426), + (3, 1, 6, -133.12325), + (3, 2, 10, -115.306476), + (4, 0, 2, -34.525628), + (4, 1, 6, -30.221208), + (4, 2, 10, -22.208125), + (5, 0, 2, -7.139137), + (5, 1, 6, -5.547203), + (4, 3, 14, -11.181066), + (5, 2, 10, -2.819853), + (6, 0, 2, -1.05135), + (6, 1, 6, -0.634674), + (7, 0, 2, -0.113732)], + {'Ecoul': 9045.587062, + 'Eenuc': -54820.47465, + 'Ekin': 23081.867528, + 'Etot': -23088.688083, + 'Exc': -395.668023}), + 'Rb': (37, + [(1, 0, 2, -540.957115), + (2, 0, 2, -71.291202), + (2, 1, 6, -64.784678), + (3, 0, 2, -10.513861), + (3, 1, 6, -8.165416), + (3, 2, 10, -3.915508), + (4, 0, 2, -1.135051), + (4, 1, 6, -0.59217), + (5, 0, 1, -0.085375)], + {'Ecoul': 1239.168864, + 'Eenuc': -7013.68955, + 'Ekin': 2933.940454, + 'Etot': -2936.337293, + 'Exc': -95.757061}), + 'Re': (75, + [(1, 0, 2, -2407.665572), + (2, 0, 2, -397.087707), + (2, 1, 6, -380.982869), + (3, 0, 2, -91.149193), + (3, 1, 6, -83.634578), + (3, 2, 10, -69.57676), + (4, 0, 2, -18.454325), + (4, 1, 6, -15.295495), + (4, 2, 10, -9.516816), + (5, 0, 2, -2.567348), + (5, 1, 6, -1.631227), + (4, 3, 14, -1.92508), + (5, 2, 5, -0.258639), + (6, 0, 2, -0.186859)], + {'Ecoul': 6337.535878, + 'Eenuc': -37586.722924, + 'Ekin': 15774.543959, + 'Etot': -15780.236024, + 'Exc': -305.592936}), + 'Rh': (45, + [(1, 0, 2, -821.136773), + (2, 0, 2, -116.80695), + (2, 1, 6, -108.357665), + (3, 0, 2, -20.765603), + (3, 1, 6, -17.415299), + (3, 2, 10, -11.21725), + (4, 0, 2, -2.825505), + (4, 1, 6, -1.806456), + (4, 2, 8, -0.239422), + (5, 0, 1, -0.154624)], + {'Ecoul': 1923.261557, + 'Eenuc': -11155.54306, + 'Ekin': 4680.264572, + 'Etot': -4683.301031, + 'Exc': -131.2841}), + 'Rn': (86, + [(1, 0, 2, -3204.756288), + (2, 0, 2, -546.57796), + (2, 1, 6, -527.533025), + (3, 0, 2, -133.369144), + (3, 1, 6, -124.172862), + (3, 2, 10, -106.945006), + (4, 0, 2, -31.230804), + (4, 1, 6, -27.108985), + (4, 2, 10, -19.449994), + (5, 0, 2, -5.889683), + (5, 1, 6, -4.408702), + (4, 3, 14, -8.953318), + (5, 2, 10, -1.911329), + (6, 0, 2, -0.62657), + (6, 1, 6, -0.29318)], + {'Ecoul': 8632.016039, + 'Eenuc': -51966.120382, + 'Ekin': 21854.6727, + 'Etot': -21861.346869, + 'Exc': -381.915225}), + 'Ru': (44, + [(1, 0, 2, -782.918621), + (2, 0, 2, -110.536054), + (2, 1, 6, -102.333649), + (3, 0, 2, -19.366692), + (3, 1, 6, -16.145217), + (3, 2, 10, -10.195668), + (4, 0, 2, -2.628363), + (4, 1, 6, -1.667549), + (4, 2, 7, -0.210375), + (5, 0, 1, -0.152834)], + {'Ecoul': 1824.80092, + 'Eenuc': -10573.32364, + 'Ekin': 4436.031047, + 'Etot': -4438.981228, + 'Exc': -126.489556}), + 'S': (16, + [(1, 0, 2, -87.789937), + (2, 0, 2, -7.69994), + (2, 1, 6, -5.751257), + (3, 0, 2, -0.630912), + (3, 1, 4, -0.261676)], + {'Ecoul': 176.68795, + 'Eenuc': -945.141155, + 'Ekin': 395.878143, + 'Etot': -396.716081, + 'Exc': -24.141019}), + 'Sb': (51, + [(1, 0, 2, -1070.823495), + (2, 0, 2, -159.171745), + (2, 1, 6, -149.214271), + (3, 0, 2, -31.098242), + (3, 1, 6, -26.956184), + (3, 2, 10, -19.239895), + (4, 0, 2, -5.04964), + (4, 1, 6, -3.646579), + (4, 2, 10, -1.297338), + (5, 0, 2, -0.445605), + (5, 1, 3, -0.185623)], + {'Ecoul': 2544.726589, + 'Eenuc': -15001.364743, + 'Ekin': 6306.85786, + 'Etot': -6310.376268, + 'Exc': -160.595974}), + 'Sc': (21, + [(1, 0, 2, -160.184109), + (2, 0, 2, -17.206464), + (2, 1, 6, -14.240006), + (3, 0, 2, -1.988378), + (3, 1, 6, -1.233165), + (3, 2, 1, -0.13108), + (4, 0, 2, -0.156478)], + {'Ecoul': 318.555762, + 'Eenuc': -1797.853811, + 'Ekin': 757.5252, + 'Etot': -758.679275, + 'Exc': -36.906426}), + 'Se': (34, + [(1, 0, 2, -451.300258), + (2, 0, 2, -57.311948), + (2, 1, 6, -51.514388), + (3, 0, 2, -7.547186), + (3, 1, 6, -5.553517), + (3, 2, 10, -2.011392), + (4, 0, 2, -0.621248), + (4, 1, 4, -0.245806)], + {'Ecoul': 1028.192719, + 'Eenuc': -5738.619928, + 'Ekin': 2395.934307, + 'Etot': -2398.11144, + 'Exc': -83.618538}), + 'Si': (14, + [(1, 0, 2, -65.184426), + (2, 0, 2, -5.075056), + (2, 1, 6, -3.514938), + (3, 0, 2, -0.398139), + (3, 1, 2, -0.153293)], + {'Ecoul': 131.767814, + 'Eenuc': -687.900675, + 'Ekin': 287.48774, + 'Etot': -288.198397, + 'Exc': -19.553276}), + 'Sm': (62, + [(1, 0, 2, -1617.183426), + (2, 0, 2, -255.498846), + (2, 1, 6, -242.729726), + (3, 0, 2, -55.731133), + (3, 1, 6, -50.08426), + (3, 2, 10, -39.528656), + (4, 0, 2, -10.844667), + (4, 1, 6, -8.672685), + (4, 2, 10, -4.814978), + (5, 0, 2, -1.408552), + (5, 1, 6, -0.835987), + (4, 3, 6, -0.21776), + (6, 0, 2, -0.128259)], + {'Ecoul': 3962.921783, + 'Eenuc': -23800.753315, + 'Ekin': 10026.812733, + 'Etot': -10031.25909, + 'Exc': -220.24029}), + 'Sn': (50, + [(1, 0, 2, -1026.762169), + (2, 0, 2, -151.523991), + (2, 1, 6, -141.821093), + (3, 0, 2, -29.125969), + (3, 1, 6, -25.117913), + (3, 2, 10, -17.657276), + (4, 0, 2, -4.546335), + (4, 1, 6, -3.211998), + (4, 2, 10, -1.004952), + (5, 0, 2, -0.369349), + (5, 1, 2, -0.14445)], + {'Ecoul': 2438.225987, + 'Eenuc': -14319.014475, + 'Ekin': 6016.512431, + 'Etot': -6019.953353, + 'Exc': -155.677296}), + 'Sr': (38, + [(1, 0, 2, -572.870169), + (2, 0, 2, -76.491823), + (2, 1, 6, -69.745941), + (3, 0, 2, -11.771585), + (3, 1, 6, -9.301863), + (3, 2, 10, -4.813498), + (4, 0, 2, -1.455317), + (4, 1, 6, -0.844489), + (5, 0, 2, -0.131793)], + {'Ecoul': 1308.954372, + 'Eenuc': -7465.641817, + 'Ekin': 3126.990706, + 'Etot': -3129.453161, + 'Exc': -99.756422}), + 'Ta': (73, + [(1, 0, 2, -2275.371387), + (2, 0, 2, -372.828724), + (2, 1, 6, -357.248334), + (3, 0, 2, -84.658467), + (3, 1, 6, -77.440942), + (3, 2, 10, -63.942521), + (4, 0, 2, -16.713337), + (4, 1, 6, -13.71981), + (4, 2, 10, -8.265848), + (5, 0, 2, -2.223807), + (5, 1, 6, -1.37653), + (4, 3, 14, -1.199347), + (5, 2, 3, -0.182464), + (6, 0, 2, -0.174814)], + {'Ecoul': 5949.357668, + 'Eenuc': -35243.460062, + 'Ekin': 14790.376452, + 'Etot': -14795.884202, + 'Exc': -292.15826}), + 'Tb': (65, + [(1, 0, 2, -1785.331942), + (2, 0, 2, -285.121013), + (2, 1, 6, -271.590585), + (3, 0, 2, -62.851563), + (3, 1, 6, -56.785113), + (3, 2, 10, -45.443863), + (4, 0, 2, -12.120486), + (4, 1, 6, -9.735637), + (4, 2, 10, -5.467662), + (5, 0, 2, -1.513669), + (5, 1, 6, -0.88723), + (4, 3, 9, -0.256311), + (6, 0, 2, -0.131677)], + {'Ecoul': 4461.481521, + 'Eenuc': -26663.609136, + 'Ekin': 11218.204349, + 'Etot': -11222.941975, + 'Exc': -239.018708}), + 'Tc': (43, + [(1, 0, 2, -745.742024), + (2, 0, 2, -104.567508), + (2, 1, 6, -96.61021), + (3, 0, 2, -18.135303), + (3, 1, 6, -15.041738), + (3, 2, 10, -9.33986), + (4, 0, 2, -2.550712), + (4, 1, 6, -1.64323), + (4, 2, 5, -0.270262), + (5, 0, 2, -0.183636)], + {'Ecoul': 1724.900741, + 'Eenuc': -10004.790618, + 'Ekin': 4199.331793, + 'Etot': -4202.188857, + 'Exc': -121.630774}), + 'Te': (52, + [(1, 0, 2, -1115.831819), + (2, 0, 2, -167.021776), + (2, 1, 6, -156.808583), + (3, 0, 2, -33.137485), + (3, 1, 6, -28.860685), + (3, 2, 10, -20.887801), + (4, 0, 2, -5.572846), + (4, 1, 6, -4.100084), + (4, 2, 10, -1.608381), + (5, 0, 2, -0.520997), + (5, 1, 4, -0.226594)], + {'Ecoul': 2653.969369, + 'Eenuc': -15702.061477, + 'Ekin': 6605.034216, + 'Etot': -6608.631413, + 'Exc': -165.573522}), + 'Th': (90, + [(1, 0, 2, -3524.439052), + (2, 0, 2, -608.350958), + (2, 1, 6, -588.218112), + (3, 0, 2, -152.079741), + (3, 1, 6, -142.25581), + (3, 2, 10, -123.846396), + (4, 0, 2, -37.814094), + (4, 1, 6, -33.325252), + (4, 2, 10, -24.955184), + (5, 0, 2, -8.287057), + (5, 1, 6, -6.58281), + (4, 3, 14, -13.397389), + (5, 2, 10, -3.625729), + (6, 0, 2, -1.333769), + (6, 1, 6, -0.846921), + (6, 2, 2, -0.172896), + (7, 0, 2, -0.135872)], + {'Ecoul': 9483.654939, + 'Eenuc': -57774.567583, + 'Ekin': 24346.845656, + 'Etot': -24353.832231, + 'Exc': -409.765243}), + 'Ti': (22, + [(1, 0, 2, -177.276643), + (2, 0, 2, -19.457901), + (2, 1, 6, -16.285339), + (3, 0, 2, -2.258007), + (3, 1, 6, -1.422947), + (3, 2, 2, -0.17001), + (4, 0, 2, -0.167106)], + {'Ecoul': 355.232355, + 'Eenuc': -2008.740849, + 'Ekin': 846.050533, + 'Etot': -847.277216, + 'Exc': -39.819256}), + 'Tl': (81, + [(1, 0, 2, -2827.569408), + (2, 0, 2, -474.953368), + (2, 1, 6, -457.255971), + (3, 0, 2, -112.52218), + (3, 1, 6, -104.099296), + (3, 2, 10, -88.328299), + (4, 0, 2, -24.471512), + (4, 1, 6, -20.797078), + (4, 2, 10, -14.008848), + (5, 0, 2, -3.811512), + (5, 1, 6, -2.59873), + (4, 3, 14, -4.835747), + (5, 2, 10, -0.674544), + (6, 0, 2, -0.28502), + (6, 1, 1, -0.101507)], + {'Ecoul': 7576.942724, + 'Eenuc': -45137.454222, + 'Ekin': 18950.710388, + 'Etot': -18956.957627, + 'Exc': -347.156518}), + 'Tm': (69, + [(1, 0, 2, -2022.471608), + (2, 0, 2, -327.05712), + (2, 1, 6, -312.510608), + (3, 0, 2, -72.873753), + (3, 1, 6, -66.239338), + (3, 2, 10, -53.835494), + (4, 0, 2, -13.865665), + (4, 1, 6, -11.187151), + (4, 2, 10, -6.350307), + (5, 0, 2, -1.64999), + (5, 1, 6, -0.950748), + (4, 3, 13, -0.28312), + (6, 0, 2, -0.135953)], + {'Ecoul': 5196.611124, + 'Eenuc': -30799.515253, + 'Ekin': 12931.649735, + 'Etot': -12936.786494, + 'Exc': -265.532099}), + 'U': (92, + [(1, 0, 2, -3689.355141), + (2, 0, 2, -639.778728), + (2, 1, 6, -619.10855), + (3, 0, 2, -161.118073), + (3, 1, 6, -150.97898), + (3, 2, 10, -131.977358), + (4, 0, 2, -40.528084), + (4, 1, 6, -35.853321), + (4, 2, 10, -27.123212), + (5, 0, 2, -8.824089), + (5, 1, 6, -7.018092), + (4, 3, 14, -15.02746), + (5, 2, 10, -3.866175), + (6, 0, 2, -1.325976), + (6, 1, 6, -0.822538), + (5, 3, 3, -0.366543), + (6, 2, 1, -0.14319), + (7, 0, 2, -0.130948)], + {'Ecoul': 9991.594178, + 'Eenuc': -60876.210623, + 'Ekin': 25651.231184, + 'Etot': -25658.417889, + 'Exc': -425.032628}), + 'V': (23, + [(1, 0, 2, -195.224014), + (2, 0, 2, -21.815346), + (2, 1, 6, -18.435189), + (3, 0, 2, -2.526904), + (3, 1, 6, -1.610516), + (3, 2, 3, -0.204634), + (4, 0, 2, -0.175968)], + {'Ecoul': 395.162964, + 'Eenuc': -2234.347114, + 'Ekin': 940.377057, + 'Etot': -941.678904, + 'Exc': -42.871811}), + 'W': (74, + [(1, 0, 2, -2341.042887), + (2, 0, 2, -384.856157), + (2, 1, 6, -369.013973), + (3, 0, 2, -87.867792), + (3, 1, 6, -80.502102), + (3, 2, 10, -66.724787), + (4, 0, 2, -17.570797), + (4, 1, 6, -14.495102), + (4, 2, 10, -8.879693), + (5, 0, 2, -2.396018), + (5, 1, 6, -1.504457), + (4, 3, 14, -1.550835), + (5, 2, 4, -0.220603), + (6, 0, 2, -0.181413)], + {'Ecoul': 6141.634533, + 'Eenuc': -36404.087502, + 'Ekin': 15277.849307, + 'Etot': -15283.448822, + 'Exc': -298.84516}), + 'Xe': (54, + [(1, 0, 2, -1208.688993), + (2, 0, 2, -183.327495), + (2, 1, 6, -172.599583), + (3, 0, 2, -37.415454), + (3, 1, 6, -32.867042), + (3, 2, 10, -24.37823), + (4, 0, 2, -6.67834), + (4, 1, 6, -5.063802), + (4, 2, 10, -2.286666), + (5, 0, 2, -0.672086), + (5, 1, 6, -0.309835)], + {'Ecoul': 2880.919348, + 'Eenuc': -17159.159426, + 'Ekin': 7225.097817, + 'Etot': -7228.856107, + 'Exc': -175.713845}), + 'Y': (39, + [(1, 0, 2, -605.631981), + (2, 0, 2, -81.789102), + (2, 1, 6, -74.803201), + (3, 0, 2, -12.992217), + (3, 1, 6, -10.399926), + (3, 2, 10, -5.671499), + (4, 0, 2, -1.697124), + (4, 1, 6, -1.02449), + (4, 2, 1, -0.108691), + (5, 0, 2, -0.150727)], + {'Ecoul': 1384.603788, + 'Eenuc': -7937.187681, + 'Ekin': 3326.984254, + 'Etot': -3329.520604, + 'Exc': -103.920964}), + 'Yb': (70, + [(1, 0, 2, -2084.069389), + (2, 0, 2, -337.978976), + (2, 1, 6, -323.178219), + (3, 0, 2, -75.47663), + (3, 1, 6, -68.698655), + (3, 2, 10, -56.026315), + (4, 0, 2, -14.312076), + (4, 1, 6, -11.558246), + (4, 2, 10, -6.574963), + (5, 0, 2, -1.683886), + (5, 1, 6, -0.966137), + (4, 3, 14, -0.286408), + (6, 0, 2, -0.136989)], + {'Ecoul': 5393.365097, + 'Eenuc': -31891.798397, + 'Ekin': 13382.810298, + 'Etot': -13388.048594, + 'Exc': -272.425592}), + 'Zn': (30, + [(1, 0, 2, -344.969756), + (2, 0, 2, -41.531323), + (2, 1, 6, -36.648765), + (3, 0, 2, -4.573041), + (3, 1, 6, -3.022363), + (3, 2, 10, -0.398944), + (4, 0, 2, -0.222725)], + {'Ecoul': 774.056522, + 'Eenuc': -4257.166094, + 'Ekin': 1774.693645, + 'Etot': -1776.57385, + 'Exc': -68.157922}), + 'Zr': (40, + [(1, 0, 2, -639.292236), + (2, 0, 2, -87.237062), + (2, 1, 6, -80.010043), + (3, 0, 2, -14.230432), + (3, 1, 6, -11.514415), + (3, 2, 10, -6.544643), + (4, 0, 2, -1.918971), + (4, 1, 6, -1.186597), + (4, 2, 2, -0.150673), + (5, 0, 2, -0.162391)], + {'Ecoul': 1464.236106, + 'Eenuc': -8426.900586, + 'Ekin': 3534.12421, + 'Etot': -3536.737751, + 'Exc': -108.19748})} + +########################################################################################## +# Entry points for client code +########################################################################################## + +_symb2Z = {k: v[0] for (k,v) in _neutral_entries.items()} + +_Z2symb = {v: k for (k,v) in _symb2Z.items()} + +allsymbols = [k for k in _symb2Z] + + +def Z_from_symbol(symbol): + """Returns the atomic number from the element symbol.""" + return _symb2Z[symbol] + + +def symbol_from_Z(Z): + """Returns the element symbol from atomic number.""" + return _Z2symb[Z] + + +class NistState(namedtuple("NistState", "n, l, occ, eig")): + """Named tuple with info on the orbital""" + + +class NistEntry(namedtuple("NistEntry", "Z, states, energies")): + """ + Database entry: + + A NistEntry has the atomic number Z, a list of NistState object and + a dictionary with the energies in Ha units. + """ + def __str__(self): + lines = [] + app = lines.append + + app("Element: %s, Z: %d" % (self.symbol, self.Z)) + app("Quantum numbers, occupations, eigenvalues [Ha]:") + for s in self.states: + app("\t" + str(s).replace(s.__class__.__name__,"")) + + app("Atomic energies [Ha]:") + app("\t" + str(self.energies)) + + return "\n".join(lines) + + @property + def symbol(self): + """Chemical symbol""" + return symbol_from_Z(self.Z) + + def to_table(self): + """Returns a table of strings whose columns contain ["n", "l", "occ", "eigval [Ha]"]]""" + table = [["n", "l", "occ", "eigval [Ha]"]] + for state in self.states: + table.append([state.n, state.l, state.occ, state.eig]) + + return table + + +def get_neutral_entry(symbol): + """Retrieve an entry of the data from the element symbol or from Z (neutral atoms).""" + if isinstance(symbol, int): + symbol = symbol_from_Z(symbol) + + entry = _neutral_entries[symbol] + states = [NistState(n=s[0], l=s[1], occ=s[2], eig=s[3]) for s in entry[1]] + return NistEntry(Z=entry[0], states=states, energies=entry[2]) + + +#def get_cation_entry(symbol): +# "Retrieve an entry of the data from the element symbol (cations)" +# entry = _cation_entries[symbol] +# states = [NistState(n=s[0], l=s[1], occ=s[2], eig=s[3]) for s in entry[1]] +# return NistEntry(Z=entry[0], states=states, energies=entry[2]) diff --git a/abipy/data/oncv_data/08_O.dat b/abipy/data/oncv_data/08_O.dat new file mode 100644 index 000000000..c30f360e5 --- /dev/null +++ b/abipy/data/oncv_data/08_O.dat @@ -0,0 +1,55 @@ +# ATOM AND REFERENCE CONFIGURATION +# atsym, z, nc, nv, iexc psfile + O 8 1 2 3 psp8 +# +# n, l, f (nc+nv lines) + 1 0 2.0 + 2 0 2.0 + 2 1 4.0 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 1 +# +# l, rc, ep, ncon, nbas, qcut (lmax+1 lines, l's must be in order) + 0 1.60 0.00 4 7 8.00 + 1 1.60 0.00 4 7 8.00 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.4 0.0 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl (lmax+1 lines, l's in order) + 0 2 1.50 + 1 2 1.00 +# +# MODEL CORE CHARGE +# icmod, fcfact + 0 0.0 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -2.0 2.0 0.02 +# +# OUTPUT GRID +# rlmax, drl + 4.0 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 3 +# +# nvcnf (repeated ncnf times) +# n, l, f (nvcnf lines, repeated follwing nvcnf's ncnf times) + 2 + 2 0 2.0 + 2 1 3.0 +# + 2 + 2 0 1.0 + 2 1 4.0 +# + 2 + 2 0 1.0 + 2 1 3.0 diff --git a/abipy/data/oncv_data/08_O_nr.out b/abipy/data/oncv_data/08_O_nr.out new file mode 100644 index 000000000..16b49c9a2 --- /dev/null +++ b/abipy/data/oncv_data/08_O_nr.out @@ -0,0 +1,5559 @@ +ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) +non-relativistic version 2.1.1, 03/26/2014 + + +While it is not required under the terms of the GNU GPL, it is +suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) +in any publication utilizing these pseudopotentials. + + +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + O 8.00 1 2 3 psp8 +# +# n l f energy (Ha) + 1 0 2.00 -1.8759018D+01 + 2 0 2.00 -8.7123483D-01 + 2 1 4.00 -3.3831992D-01 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 1 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.60 -0.87 4 7 8.00 + 1 1.60 -0.34 4 7 8.00 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.40 0.00 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 1.5000 + 1 2 1.0000 +# +# MODEL CORE CHARGE +# icmod, fcfact + 0 0.00 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -2.00 2.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 4.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 3 +# nvcnf +# n l f + 2 + 2 0 2.00 + 2 1 3.00 +# + 2 + 2 0 1.00 + 2 1 4.00 +# + 2 + 2 0 1.00 + 2 1 3.00 +# + + +Reference configufation results + iterations 24 + all-electron total energy (Ha) -7.44698129D+01 + +Begin loop to construct optimized pseudo wave functions +and semi-local pseudopoentials for all angular momenta + + Wellstate for l = 0 n = 3 + eigenvalue = 0.6288 + asymptotic potential = 1.1377 + half-point radius = 2.8839 + +First projector wave function outermost peak radius = 0.872, l= 0 + +All-electron projector functions [0,rc] norms and overlap, l= 0 + qq(1,1)= 0.82653262 qq(1,2)= -0.25359988 qq(2,2)= 0.13657788 + + +Calculating first optimized projector for l= 0 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.38075219 0.38075219 1.50D-13 + -0.59937573 -0.59937573 -1.55D-15 + 0.91028610 0.91028610 -4.27D-14 + -1.15850370 -1.15850370 -7.61D-13 + + Fraction of norm inside rc 0.826533 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut=32.00 Ha + q_infinity defining residual KE= 20.00 (E_inf= 200.0 Ha) + Residual kinetic energy error= 1.24D-07 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 0.74810655 r-space= 0.74810657 ratio= 0.99999997 + Potential consistency test at r_c + vpsp= -0.65887215 vae= -0.65887217 difference= -2.43D-08 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 5.01 + 0.00100 0.02721 14.66 + 0.00010 0.00272 21.05 + 0.00001 0.00027 25.33 + +Calculating second optimized projector for l= 0 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.17443973 0.17443973 -2.53D-15 + 0.50457492 0.50457492 -1.15D-13 + -1.07940272 -1.07940272 8.22D-15 + 0.76306382 0.76306382 5.18D-14 + -0.25359988 -0.25359988 -1.50D-15 + + Fraction of norm inside rc 0.136578 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut=32.00 Ha + q_infinity defining residual KE= 20.00 (E_inf= 200.0 Ha) + Residual kinetic energy error= 8.10D-07 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 0.74725829 r-space= 0.74725835 ratio= 0.99999992 + Potential consistency test at r_c + "vpsp"= -0.65887196 vae= -0.65887217 difference= -2.11D-07 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 4.55 + 0.00100 0.02721 15.57 + 0.00010 0.00272 22.34 + 0.00001 0.00027 27.11 + + Wellstate for l = 1 n = 3 + eigenvalue = 0.6617 + asymptotic potential = 1.1349 + half-point radius = 3.3115 + +First projector wave function outermost peak radius = 0.811, l= 1 + +All-electron projector functions [0,rc] norms and overlap, l= 1 + qq(1,1)= 0.74492711 qq(1,2)= -0.28485373 qq(2,2)= 0.15454102 + + +Calculating first optimized projector for l= 1 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.37822058 0.37822058 1.02D-13 + -0.47623200 -0.47623200 8.22D-15 + 0.64726907 0.64726907 1.66D-13 + -0.91855969 -0.91855969 8.45D-13 + + Fraction of norm inside rc 0.744927 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut=32.00 Ha + q_infinity defining residual KE= 20.00 (E_inf= 200.0 Ha) + Residual kinetic energy error= 1.34D-05 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 2.12674562 r-space= 2.12674609 ratio= 0.99999978 + Potential consistency test at r_c + vpsp= -0.65887217 vae= -0.65887217 difference= -6.03D-09 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 19.47 + 0.00100 0.02721 24.75 + 0.00010 0.00272 28.77 + 0.00001 0.00027 34.94 + +Calculating second optimized projector for l= 1 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.10381931 0.10381931 -5.13D-16 + 0.45665070 0.45665070 1.19D-13 + -0.76354834 -0.76354834 1.53D-13 + 0.54968069 0.54968069 1.68D-12 + -0.28485373 -0.28485373 -1.11D-16 + + Fraction of norm inside rc 0.154541 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut=32.00 Ha + q_infinity defining residual KE= 20.00 (E_inf= 200.0 Ha) + Residual kinetic energy error= 4.90D-05 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 1.27543676 r-space= 1.27543701 ratio= 0.99999980 + Potential consistency test at r_c + "vpsp"= -0.65887213 vae= -0.65887217 difference= -4.30D-08 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 19.38 + 0.00100 0.02721 25.71 + 0.00010 0.00272 30.60 + 0.00001 0.00027 34.74 + +Construct Vanderbilt / Kleinmman-Bylander projectors + +B matrix, ll= 0 +Hermiticity error 4.1568D-08 + + Orthonormal projector coefficients 2.1395E+00 -3.1291E-01 + +B matrix, ll= 1 +Hermiticity error -1.2815D-07 + + Orthonormal projector coefficients -4.7568E+00 -1.4136E+00 + +Pseudoatom total energy -15.610184 + + +Diagnostic tests using semi-local pseudopotentials + + l rcore rmatch e in e test norm test slope test + 0 1.6013865 1.6998035 -0.8712348 -0.8712348 1.0000000 1.0000000 + 1 1.6013865 1.6998035 -0.3383199 -0.3383199 1.0000000 0.9999999 + +Diagnostic tests using Vanderbilt-Kleinman-Bylander pseudopotentials + 1 or 2 projectors used as specified by nproj input data + + l rcore rmatch e in e test norm test slope test + 0 1.6013865 1.6998035 -0.8712348 -0.8712343 1.0000003 1.0000008 + 1 1.6013865 1.6998035 -0.3383199 -0.3383217 0.9999991 0.9999954 + + 0 1.6013865 1.6998035 0.6287652 0.6287651 1.0000000 1.0000000 + 1 1.6013865 1.6998035 0.6616801 0.6616804 0.9999999 0.9999999 + +Test configuration 0 + + n l f eae eps diff + 1 0 2.0000 -18.75901823 + 2 0 2.0000 -0.87123483 -0.87123426 5.67D-07 + 2 1 4.0000 -0.33831992 -0.33832173 -1.81D-06 + + Total energies and differences + AE_ref= -7.44698129D+01 AE_tst= -7.44698129D+01 dif= 0.00D+00 + PS_ref= -1.56101838D+01 PS_tst= -1.56101838D+01 dif= -3.74D-11 + PSP excitation error= 3.74D-11 + +Test configuration 1 + + n l f eae eps diff + 1 0 2.0000 -19.45163946 + 2 0 2.0000 -1.44594728 -1.44655792 -6.11D-04 + 2 1 3.0000 -0.90386445 -0.89892442 4.94D-03 + + Total energies and differences + AE_ref= -7.44698129D+01 AE_tst= -7.38600520D+01 dif= 6.10D-01 + PS_ref= -1.56101838D+01 PS_tst= -1.50022199D+01 dif= 6.08D-01 + PSP excitation error= 1.80D-03 + +Test configuration 2 + + n l f eae eps diff + 1 0 2.0000 -19.45059870 + 2 0 1.0000 -1.45093876 -1.45704465 -6.11D-03 + 2 1 4.0000 -0.90669862 -0.90971249 -3.01D-03 + + Total energies and differences + AE_ref= -7.44698129D+01 AE_tst= -7.33168907D+01 dif= 1.15D+00 + PS_ref= -1.56101838D+01 PS_tst= -1.44547121D+01 dif= 1.16D+00 + PSP excitation error= -2.55D-03 + +Test configuration 3 + + n l f eae eps diff + 1 0 2.0000 -20.30835995 + 2 0 1.0000 -2.12079269 -2.13009957 -9.31D-03 + 2 1 3.0000 -1.58057512 -1.57574679 4.83D-03 + + Total energies and differences + AE_ref= -7.44698129D+01 AE_tst= -7.20825665D+01 dif= 2.39D+00 + PS_ref= -1.56101838D+01 PS_tst= -1.32203067D+01 dif= 2.39D+00 + PSP excitation error= -2.63D-03 + +DATA FOR PLOTTING + + radii, charge, pseudopotentials (ll=0, 1, lmax) + +!p 0.0099448 4.6973333 -7.4249623 -14.6517418 +!p 0.0100642 4.6974787 -7.4249612 -14.6517127 +!p 0.0101849 4.6976275 -7.4249601 -14.6516829 +!p 0.0103072 4.6977800 -7.4249589 -14.6516524 +!p 0.0104309 4.6979362 -7.4249577 -14.6516212 +!p 0.0105560 4.6980961 -7.4249565 -14.6515892 +!p 0.0106827 4.6982599 -7.4249553 -14.6515565 +!p 0.0108109 4.6984276 -7.4249540 -14.6515229 +!p 0.0109406 4.6985994 -7.4249527 -14.6514886 +!p 0.0110719 4.6987753 -7.4249513 -14.6514534 +!p 0.0112048 4.6989554 -7.4249499 -14.6514174 +!p 0.0113392 4.6991399 -7.4249485 -14.6513805 +!p 0.0114753 4.6993289 -7.4249471 -14.6513427 +!p 0.0116130 4.6995224 -7.4249456 -14.6513040 +!p 0.0117524 4.6997206 -7.4249441 -14.6512644 +!p 0.0118934 4.6999235 -7.4249426 -14.6512238 +!p 0.0120361 4.7001314 -7.4249410 -14.6511822 +!p 0.0121805 4.7003443 -7.4249394 -14.6511396 +!p 0.0123267 4.7005623 -7.4249377 -14.6510960 +!p 0.0124746 4.7007855 -7.4249360 -14.6510514 +!p 0.0126243 4.7010142 -7.4249342 -14.6510057 +!p 0.0127758 4.7012483 -7.4249325 -14.6509588 +!p 0.0129291 4.7014881 -7.4249306 -14.6509109 +!p 0.0130843 4.7017337 -7.4249288 -14.6508617 +!p 0.0132413 4.7019852 -7.4249268 -14.6508114 +!p 0.0134002 4.7022428 -7.4249249 -14.6507599 +!p 0.0135610 4.7025066 -7.4249229 -14.6507072 +!p 0.0137237 4.7027767 -7.4249208 -14.6506531 +!p 0.0138884 4.7030534 -7.4249187 -14.6505978 +!p 0.0140551 4.7033367 -7.4249166 -14.6505411 +!p 0.0142237 4.7036268 -7.4249144 -14.6504831 +!p 0.0143944 4.7039240 -7.4249121 -14.6504236 +!p 0.0145671 4.7042283 -7.4249098 -14.6503628 +!p 0.0147419 4.7045400 -7.4249074 -14.6503004 +!p 0.0149188 4.7048591 -7.4249050 -14.6502366 +!p 0.0150979 4.7051860 -7.4249025 -14.6501712 +!p 0.0152790 4.7055207 -7.4249000 -14.6501042 +!p 0.0154624 4.7058635 -7.4248974 -14.6500356 +!p 0.0156479 4.7062146 -7.4248947 -14.6499654 +!p 0.0158357 4.7065741 -7.4248920 -14.6498935 +!p 0.0160257 4.7069423 -7.4248892 -14.6498198 +!p 0.0162181 4.7073193 -7.4248864 -14.6497444 +!p 0.0164127 4.7077055 -7.4248834 -14.6496671 +!p 0.0166096 4.7081009 -7.4248804 -14.6495880 +!p 0.0168089 4.7085059 -7.4248774 -14.6495070 +!p 0.0170106 4.7089206 -7.4248742 -14.6494240 +!p 0.0172148 4.7093454 -7.4248710 -14.6493390 +!p 0.0174214 4.7097803 -7.4248677 -14.6492520 +!p 0.0176304 4.7102257 -7.4248644 -14.6491628 +!p 0.0178420 4.7106819 -7.4248609 -14.6490715 +!p 0.0180561 4.7111491 -7.4248574 -14.6489781 +!p 0.0182728 4.7116275 -7.4248538 -14.6488823 +!p 0.0184920 4.7121174 -7.4248501 -14.6487843 +!p 0.0187139 4.7126191 -7.4248463 -14.6486839 +!p 0.0189385 4.7131329 -7.4248425 -14.6485810 +!p 0.0191658 4.7136591 -7.4248385 -14.6484757 +!p 0.0193957 4.7141979 -7.4248344 -14.6483678 +!p 0.0196285 4.7147498 -7.4248303 -14.6482574 +!p 0.0198640 4.7153149 -7.4248261 -14.6481443 +!p 0.0201024 4.7158936 -7.4248217 -14.6480284 +!p 0.0203436 4.7164862 -7.4248173 -14.6479098 +!p 0.0205878 4.7170931 -7.4248127 -14.6477883 +!p 0.0208348 4.7177146 -7.4248081 -14.6476639 +!p 0.0210848 4.7183511 -7.4248033 -14.6475365 +!p 0.0213378 4.7190028 -7.4247984 -14.6474060 +!p 0.0215939 4.7196703 -7.4247934 -14.6472723 +!p 0.0218530 4.7203538 -7.4247883 -14.6471355 +!p 0.0221153 4.7210538 -7.4247831 -14.6469953 +!p 0.0223806 4.7217706 -7.4247777 -14.6468518 +!p 0.0226492 4.7225046 -7.4247722 -14.6467048 +!p 0.0229210 4.7232563 -7.4247666 -14.6465542 +!p 0.0231961 4.7240261 -7.4247609 -14.6464001 +!p 0.0234744 4.7248144 -7.4247550 -14.6462422 +!p 0.0237561 4.7256216 -7.4247490 -14.6460805 +!p 0.0240412 4.7264483 -7.4247429 -14.6459149 +!p 0.0243297 4.7272948 -7.4247366 -14.6457454 +!p 0.0246216 4.7281617 -7.4247302 -14.6455717 +!p 0.0249171 4.7290494 -7.4247236 -14.6453939 +!p 0.0252161 4.7299584 -7.4247169 -14.6452117 +!p 0.0255187 4.7308893 -7.4247100 -14.6450252 +!p 0.0258249 4.7318425 -7.4247029 -14.6448342 +!p 0.0261348 4.7328186 -7.4246957 -14.6446386 +!p 0.0264484 4.7338182 -7.4246884 -14.6444383 +!p 0.0267658 4.7348418 -7.4246808 -14.6442332 +!p 0.0270870 4.7358900 -7.4246731 -14.6440231 +!p 0.0274120 4.7369633 -7.4246652 -14.6438080 +!p 0.0277410 4.7380625 -7.4246571 -14.6435877 +!p 0.0280739 4.7391879 -7.4246489 -14.6433621 +!p 0.0284108 4.7403405 -7.4246404 -14.6431310 +!p 0.0287517 4.7415206 -7.4246318 -14.6428944 +!p 0.0290967 4.7427291 -7.4246230 -14.6426521 +!p 0.0294459 4.7439666 -7.4246139 -14.6424040 +!p 0.0297992 4.7452337 -7.4246047 -14.6421499 +!p 0.0301568 4.7465313 -7.4245952 -14.6418897 +!p 0.0305187 4.7478599 -7.4245856 -14.6416232 +!p 0.0308849 4.7492204 -7.4245757 -14.6413503 +!p 0.0312555 4.7506136 -7.4245656 -14.6410708 +!p 0.0316306 4.7520401 -7.4245553 -14.6407847 +!p 0.0320102 4.7535008 -7.4245447 -14.6404916 +!p 0.0323943 4.7549965 -7.4245339 -14.6401915 +!p 0.0327830 4.7565280 -7.4245229 -14.6398842 +!p 0.0331764 4.7580962 -7.4245116 -14.6395694 +!p 0.0335745 4.7597020 -7.4245001 -14.6392472 +!p 0.0339774 4.7613461 -7.4244883 -14.6389171 +!p 0.0343852 4.7630297 -7.4244762 -14.6385792 +!p 0.0347978 4.7647535 -7.4244639 -14.6382331 +!p 0.0352154 4.7665186 -7.4244513 -14.6378787 +!p 0.0356379 4.7683259 -7.4244384 -14.6375157 +!p 0.0360656 4.7701764 -7.4244253 -14.6371441 +!p 0.0364984 4.7720711 -7.4244118 -14.6367635 +!p 0.0369364 4.7740112 -7.4243981 -14.6363738 +!p 0.0373796 4.7759976 -7.4243841 -14.6359747 +!p 0.0378282 4.7780314 -7.4243697 -14.6355660 +!p 0.0382821 4.7801138 -7.4243551 -14.6351475 +!p 0.0387415 4.7822460 -7.4243401 -14.6347190 +!p 0.0392064 4.7844290 -7.4243248 -14.6342802 +!p 0.0396769 4.7866642 -7.4243092 -14.6338308 +!p 0.0401530 4.7889526 -7.4242932 -14.6333707 +!p 0.0406348 4.7912957 -7.4242769 -14.6328995 +!p 0.0411224 4.7936946 -7.4242603 -14.6324170 +!p 0.0416159 4.7961507 -7.4242433 -14.6319229 +!p 0.0421153 4.7986654 -7.4242260 -14.6314170 +!p 0.0426207 4.8012399 -7.4242082 -14.6308990 +!p 0.0431321 4.8038757 -7.4241902 -14.6303685 +!p 0.0436497 4.8065743 -7.4241717 -14.6298253 +!p 0.0441735 4.8093371 -7.4241528 -14.6292690 +!p 0.0447036 4.8121657 -7.4241336 -14.6286995 +!p 0.0452400 4.8150615 -7.4241140 -14.6281163 +!p 0.0457829 4.8180261 -7.4240939 -14.6275191 +!p 0.0463323 4.8210612 -7.4240735 -14.6269076 +!p 0.0468883 4.8241684 -7.4240526 -14.6262814 +!p 0.0474510 4.8273493 -7.4240313 -14.6256403 +!p 0.0480204 4.8306058 -7.4240096 -14.6249838 +!p 0.0485966 4.8339395 -7.4239874 -14.6243116 +!p 0.0491798 4.8373523 -7.4239648 -14.6236233 +!p 0.0497699 4.8408460 -7.4239418 -14.6229185 +!p 0.0503672 4.8444224 -7.4239183 -14.6221968 +!p 0.0509716 4.8480835 -7.4238943 -14.6214579 +!p 0.0515832 4.8518314 -7.4238699 -14.6207014 +!p 0.0522022 4.8556678 -7.4238450 -14.6199267 +!p 0.0528287 4.8595950 -7.4238196 -14.6191335 +!p 0.0534626 4.8636151 -7.4237937 -14.6183213 +!p 0.0541042 4.8677300 -7.4237674 -14.6174898 +!p 0.0547534 4.8719422 -7.4237405 -14.6166383 +!p 0.0554104 4.8762537 -7.4237131 -14.6157666 +!p 0.0560754 4.8806670 -7.4236853 -14.6148740 +!p 0.0567483 4.8851842 -7.4236569 -14.6139601 +!p 0.0574293 4.8898079 -7.4236280 -14.6130244 +!p 0.0581184 4.8945404 -7.4235986 -14.6120664 +!p 0.0588158 4.8993843 -7.4235686 -14.6110855 +!p 0.0595216 4.9043421 -7.4235381 -14.6100812 +!p 0.0602359 4.9094163 -7.4235071 -14.6090530 +!p 0.0609587 4.9146097 -7.4234755 -14.6080002 +!p 0.0616902 4.9199250 -7.4234434 -14.6069224 +!p 0.0624305 4.9253650 -7.4234108 -14.6058189 +!p 0.0631797 4.9309324 -7.4233776 -14.6046891 +!p 0.0639378 4.9366301 -7.4233438 -14.6035324 +!p 0.0647051 4.9424612 -7.4233095 -14.6023482 +!p 0.0654815 4.9484286 -7.4232746 -14.6011358 +!p 0.0662673 4.9545354 -7.4232392 -14.5998946 +!p 0.0670625 4.9607848 -7.4232032 -14.5986239 +!p 0.0678673 4.9671799 -7.4231666 -14.5973229 +!p 0.0686817 4.9737240 -7.4231295 -14.5959911 +!p 0.0695059 4.9804205 -7.4230919 -14.5946276 +!p 0.0703399 4.9872728 -7.4230536 -14.5932317 +!p 0.0711840 4.9942843 -7.4230148 -14.5918027 +!p 0.0720382 5.0014586 -7.4229755 -14.5903398 +!p 0.0729027 5.0087993 -7.4229356 -14.5888422 +!p 0.0737775 5.0163101 -7.4228952 -14.5873090 +!p 0.0746628 5.0239947 -7.4228542 -14.5857396 +!p 0.0755588 5.0318570 -7.4228127 -14.5841329 +!p 0.0764655 5.0399010 -7.4227707 -14.5824882 +!p 0.0773831 5.0481305 -7.4227281 -14.5808046 +!p 0.0783117 5.0565498 -7.4226851 -14.5790811 +!p 0.0792514 5.0651628 -7.4226415 -14.5773169 +!p 0.0802024 5.0739739 -7.4225974 -14.5755109 +!p 0.0811649 5.0829873 -7.4225529 -14.5736623 +!p 0.0821388 5.0922074 -7.4225079 -14.5717700 +!p 0.0831245 5.1016388 -7.4224624 -14.5698330 +!p 0.0841220 5.1112858 -7.4224165 -14.5678503 +!p 0.0851315 5.1211533 -7.4223702 -14.5658208 +!p 0.0861530 5.1312459 -7.4223235 -14.5637435 +!p 0.0871869 5.1415684 -7.4222764 -14.5616172 +!p 0.0882331 5.1521257 -7.4222290 -14.5594408 +!p 0.0892919 5.1629228 -7.4221812 -14.5572132 +!p 0.0903634 5.1739647 -7.4221331 -14.5549332 +!p 0.0914478 5.1852567 -7.4220848 -14.5525995 +!p 0.0925452 5.1968039 -7.4220361 -14.5502110 +!p 0.0936557 5.2086117 -7.4219873 -14.5477664 +!p 0.0947796 5.2206855 -7.4219383 -14.5452643 +!p 0.0959169 5.2330309 -7.4218891 -14.5427035 +!p 0.0970679 5.2456533 -7.4218398 -14.5400827 +!p 0.0982327 5.2585586 -7.4217904 -14.5374004 +!p 0.0994115 5.2717525 -7.4217410 -14.5346552 +!p 0.1006045 5.2852409 -7.4216916 -14.5318458 +!p 0.1018117 5.2990298 -7.4216423 -14.5289706 +!p 0.1030335 5.3131251 -7.4215931 -14.5260282 +!p 0.1042699 5.3275331 -7.4215440 -14.5230170 +!p 0.1055211 5.3422601 -7.4214951 -14.5199354 +!p 0.1067874 5.3573122 -7.4214465 -14.5167819 +!p 0.1080688 5.3726960 -7.4213983 -14.5135548 +!p 0.1093656 5.3884179 -7.4213505 -14.5102525 +!p 0.1106780 5.4044846 -7.4213031 -14.5068732 +!p 0.1120062 5.4209027 -7.4212562 -14.5034152 +!p 0.1133502 5.4376790 -7.4212100 -14.4998767 +!p 0.1147104 5.4548203 -7.4211645 -14.4962560 +!p 0.1160870 5.4723336 -7.4211197 -14.4925510 +!p 0.1174800 5.4902258 -7.4210758 -14.4887600 +!p 0.1188898 5.5085041 -7.4210328 -14.4848810 +!p 0.1203164 5.5271757 -7.4209909 -14.4809121 +!p 0.1217602 5.5462477 -7.4209502 -14.4768511 +!p 0.1232214 5.5657274 -7.4209106 -14.4726961 +!p 0.1247000 5.5856224 -7.4208724 -14.4684449 +!p 0.1261964 5.6059399 -7.4208357 -14.4640953 +!p 0.1277108 5.6266875 -7.4208005 -14.4596452 +!p 0.1292433 5.6478728 -7.4207670 -14.4550924 +!p 0.1307942 5.6695034 -7.4207353 -14.4504344 +!p 0.1323637 5.6915870 -7.4207056 -14.4456690 +!p 0.1339521 5.7141312 -7.4206779 -14.4407938 +!p 0.1355595 5.7371439 -7.4206524 -14.4358063 +!p 0.1371862 5.7606328 -7.4206293 -14.4307040 +!p 0.1388325 5.7846058 -7.4206086 -14.4254844 +!p 0.1404985 5.8090707 -7.4205906 -14.4201448 +!p 0.1421845 5.8340353 -7.4205754 -14.4146826 +!p 0.1438907 5.8595076 -7.4205631 -14.4090951 +!p 0.1456174 5.8854954 -7.4205540 -14.4033795 +!p 0.1473648 5.9120067 -7.4205481 -14.3975329 +!p 0.1491331 5.9390491 -7.4205457 -14.3915525 +!p 0.1509227 5.9666307 -7.4205469 -14.3854353 +!p 0.1527338 5.9947592 -7.4205520 -14.3791782 +!p 0.1545666 6.0234424 -7.4205611 -14.3727782 +!p 0.1564214 6.0526879 -7.4205743 -14.3662322 +!p 0.1582985 6.0825036 -7.4205920 -14.3595368 +!p 0.1601981 6.1128968 -7.4206142 -14.3526889 +!p 0.1621204 6.1438752 -7.4206412 -14.3456850 +!p 0.1640659 6.1754462 -7.4206733 -14.3385217 +!p 0.1660347 6.2076170 -7.4207105 -14.3311956 +!p 0.1680271 6.2403947 -7.4207532 -14.3237029 +!p 0.1700434 6.2737865 -7.4208015 -14.3160402 +!p 0.1720839 6.3077991 -7.4208556 -14.3082036 +!p 0.1741489 6.3424394 -7.4209158 -14.3001894 +!p 0.1762387 6.3777136 -7.4209823 -14.2919936 +!p 0.1783536 6.4136282 -7.4210553 -14.2836122 +!p 0.1804938 6.4501893 -7.4211351 -14.2750412 +!p 0.1826598 6.4874025 -7.4212218 -14.2662765 +!p 0.1848517 6.5252736 -7.4213157 -14.2573137 +!p 0.1870699 6.5638076 -7.4214170 -14.2481487 +!p 0.1893147 6.6030096 -7.4215259 -14.2387768 +!p 0.1915865 6.6428842 -7.4216426 -14.2291937 +!p 0.1938856 6.6834356 -7.4217674 -14.2193946 +!p 0.1962122 6.7246677 -7.4219004 -14.2093749 +!p 0.1985667 6.7665839 -7.4220419 -14.1991298 +!p 0.2009495 6.8091872 -7.4221920 -14.1886543 +!p 0.2033609 6.8524801 -7.4223510 -14.1779434 +!p 0.2058012 6.8964647 -7.4225190 -14.1669919 +!p 0.2082709 6.9411425 -7.4226961 -14.1557946 +!p 0.2107701 6.9865143 -7.4228827 -14.1443461 +!p 0.2132994 7.0325807 -7.4230787 -14.1326409 +!p 0.2158589 7.0793411 -7.4232843 -14.1206734 +!p 0.2184493 7.1267948 -7.4234997 -14.1084379 +!p 0.2210706 7.1749399 -7.4237249 -14.0959285 +!p 0.2237235 7.2237742 -7.4239601 -14.0831392 +!p 0.2264082 7.2732944 -7.4242052 -14.0700640 +!p 0.2291251 7.3234964 -7.4244603 -14.0566964 +!p 0.2318746 7.3743755 -7.4247255 -14.0430302 +!p 0.2346571 7.4259258 -7.4250007 -14.0290588 +!p 0.2374730 7.4781406 -7.4252859 -14.0147755 +!p 0.2403226 7.5310122 -7.4255809 -14.0001735 +!p 0.2432065 7.5845318 -7.4258857 -13.9852458 +!p 0.2461250 7.6386894 -7.4262002 -13.9699853 +!p 0.2490785 7.6934742 -7.4265241 -13.9543846 +!p 0.2520674 7.7488739 -7.4268572 -13.9384362 +!p 0.2550922 7.8048751 -7.4271993 -13.9221326 +!p 0.2581533 7.8614630 -7.4275499 -13.9054659 +!p 0.2612512 7.9186217 -7.4279088 -13.8884282 +!p 0.2643862 7.9763336 -7.4282755 -13.8710112 +!p 0.2675588 8.0345798 -7.4286494 -13.8532067 +!p 0.2707695 8.0933400 -7.4290301 -13.8350060 +!p 0.2740188 8.1525921 -7.4294169 -13.8164005 +!p 0.2773070 8.2123125 -7.4298091 -13.7973812 +!p 0.2806347 8.2724761 -7.4302059 -13.7779390 +!p 0.2840023 8.3330559 -7.4306064 -13.7580645 +!p 0.2874103 8.3940231 -7.4310098 -13.7377482 +!p 0.2908592 8.4553470 -7.4314149 -13.7169804 +!p 0.2943496 8.5169953 -7.4318207 -13.6957509 +!p 0.2978817 8.5789335 -7.4322258 -13.6740497 +!p 0.3014563 8.6411252 -7.4326290 -13.6518661 +!p 0.3050738 8.7035319 -7.4330288 -13.6291897 +!p 0.3087347 8.7661131 -7.4334237 -13.6060093 +!p 0.3124395 8.8288259 -7.4338118 -13.5823139 +!p 0.3161888 8.8916255 -7.4341914 -13.5580920 +!p 0.3199830 8.9544646 -7.4345606 -13.5333319 +!p 0.3238228 9.0172938 -7.4349172 -13.5080216 +!p 0.3277087 9.0800613 -7.4352588 -13.4821490 +!p 0.3316412 9.1427128 -7.4355833 -13.4557015 +!p 0.3356209 9.2051917 -7.4358878 -13.4286663 +!p 0.3396484 9.2674390 -7.4361696 -13.4010304 +!p 0.3437241 9.3293932 -7.4364259 -13.3727804 +!p 0.3478488 9.3909901 -7.4366535 -13.3439027 +!p 0.3520230 9.4521632 -7.4368490 -13.3143833 +!p 0.3562473 9.5128435 -7.4370089 -13.2842079 +!p 0.3605223 9.5729593 -7.4371294 -13.2533621 +!p 0.3648485 9.6324363 -7.4372067 -13.2218308 +!p 0.3692267 9.6911980 -7.4372364 -13.1895988 +!p 0.3736574 9.7491649 -7.4372141 -13.1566507 +!p 0.3781413 9.8062553 -7.4371351 -13.1229706 +!p 0.3826790 9.8623850 -7.4369946 -13.0885423 +!p 0.3872712 9.9174672 -7.4367871 -13.0533492 +!p 0.3919184 9.9714128 -7.4365074 -13.0173744 +!p 0.3966214 10.0241302 -7.4361495 -12.9806008 +!p 0.4013809 10.0755257 -7.4357074 -12.9430107 +!p 0.4061975 10.1255032 -7.4351747 -12.9045863 +!p 0.4110718 10.1739647 -7.4345447 -12.8653092 +!p 0.4160047 10.2208098 -7.4338104 -12.8251607 +!p 0.4209968 10.2659365 -7.4329644 -12.7841220 +!p 0.4260487 10.3092409 -7.4319990 -12.7421737 +!p 0.4311613 10.3506173 -7.4309062 -12.6992960 +!p 0.4363352 10.3899586 -7.4296775 -12.6554689 +!p 0.4415713 10.4271562 -7.4283041 -12.6106720 +!p 0.4468701 10.4621007 -7.4267769 -12.5648845 +!p 0.4522326 10.4946811 -7.4250862 -12.5180853 +!p 0.4576594 10.5247861 -7.4232222 -12.4702530 +!p 0.4631513 10.5523037 -7.4211743 -12.4213656 +!p 0.4687091 10.5771216 -7.4189320 -12.3714012 +!p 0.4743336 10.5991272 -7.4164838 -12.3203373 +!p 0.4800256 10.6182084 -7.4138182 -12.2681510 +!p 0.4857859 10.6342534 -7.4109231 -12.2148194 +!p 0.4916153 10.6471513 -7.4077859 -12.1603191 +!p 0.4975147 10.6567923 -7.4043936 -12.1046265 +!p 0.5034849 10.6630679 -7.4007329 -12.0477178 +!p 0.5095267 10.6658715 -7.3967897 -11.9895687 +!p 0.5156410 10.6650987 -7.3925497 -11.9301550 +!p 0.5218287 10.6606473 -7.3879981 -11.8694523 +!p 0.5280907 10.6524185 -7.3831195 -11.8074358 +!p 0.5344278 10.6403164 -7.3778981 -11.7440808 +!p 0.5408409 10.6242490 -7.3723176 -11.6793623 +!p 0.5473310 10.6041283 -7.3663614 -11.6132556 +!p 0.5538990 10.5798709 -7.3600121 -11.5457357 +!p 0.5605457 10.5513986 -7.3532520 -11.4767776 +!p 0.5672723 10.5186383 -7.3460631 -11.4063567 +!p 0.5740796 10.4815230 -7.3384266 -11.3344481 +!p 0.5809685 10.4399918 -7.3303235 -11.2610276 +!p 0.5879401 10.3939909 -7.3217343 -11.1860710 +!p 0.5949954 10.3434734 -7.3126389 -11.1095545 +!p 0.6021354 10.2884000 -7.3030169 -11.0314547 +!p 0.6093610 10.2287396 -7.2928476 -10.9517489 +!p 0.6166733 10.1644696 -7.2821097 -10.8704148 +!p 0.6240734 10.0955761 -7.2707816 -10.7874311 +!p 0.6315623 10.0220544 -7.2588414 -10.7027771 +!p 0.6391410 9.9439095 -7.2462668 -10.6164332 +!p 0.6468107 9.8611562 -7.2330351 -10.5283811 +!p 0.6545724 9.7738198 -7.2191234 -10.4386035 +!p 0.6624273 9.6819357 -7.2045087 -10.3470847 +!p 0.6703764 9.5855504 -7.1891675 -10.2538105 +!p 0.6784210 9.4847211 -7.1730762 -10.1587687 +!p 0.6865620 9.3795161 -7.1562111 -10.0619489 +!p 0.6948008 9.2700151 -7.1385485 -9.9633431 +!p 0.7031384 9.1563089 -7.1200643 -9.8629457 +!p 0.7115760 9.0384998 -7.1007347 -9.7607539 +!p 0.7201149 8.9167012 -7.0805358 -9.6567678 +!p 0.7287563 8.7910377 -7.0594439 -9.5509910 +!p 0.7375014 8.6616452 -7.0374354 -9.4434306 +!p 0.7463514 8.5286702 -7.0144867 -9.3340977 +!p 0.7553076 8.3922697 -6.9905750 -9.2230077 +!p 0.7643713 8.2526111 -6.9656773 -9.1101808 +!p 0.7735438 8.1098718 -6.9397715 -8.9956423 +!p 0.7828263 7.9642382 -6.9128358 -8.8794231 +!p 0.7922202 7.8159060 -6.8848490 -8.7615599 +!p 0.8017269 7.6650788 -6.8557906 -8.6420962 +!p 0.8113476 7.5119683 -6.8256412 -8.5210823 +!p 0.8210838 7.3567928 -6.7943820 -8.3985759 +!p 0.8309368 7.1997770 -6.7619952 -8.2746429 +!p 0.8409080 7.0411511 -6.7284644 -8.1493577 +!p 0.8509989 6.8811495 -6.6937743 -8.0228039 +!p 0.8612109 6.7200106 -6.6579109 -7.8950746 +!p 0.8715454 6.5579753 -6.6208618 -7.7662733 +!p 0.8820040 6.3952865 -6.5826163 -7.6365141 +!p 0.8925880 6.2321877 -6.5431654 -7.5059227 +!p 0.9032991 6.0689220 -6.5025021 -7.3746363 +!p 0.9141386 5.9057314 -6.4606213 -7.2428045 +!p 0.9251083 5.7428556 -6.4175202 -7.1105898 +!p 0.9362096 5.5805309 -6.3731985 -6.9781673 +!p 0.9474441 5.4189891 -6.3276583 -6.8457257 +!p 0.9588135 5.2584568 -6.2809043 -6.7134669 +!p 0.9703192 5.0991542 -6.2329441 -6.5816066 +!p 0.9819630 4.9412942 -6.1837883 -6.4503733 +!p 0.9937466 4.7850816 -6.1334505 -6.3200088 +!p 1.0056716 4.6307121 -6.0819477 -6.1907673 +!p 1.0177396 4.4783718 -6.0293001 -6.0629147 +!p 1.0299525 4.3282359 -5.9755316 -5.9367277 +!p 1.0423119 4.1804689 -5.9206696 -5.8124922 +!p 1.0548197 4.0352234 -5.8647453 -5.6905021 +!p 1.0674775 3.8926398 -5.8077937 -5.5710569 +!p 1.0802872 3.7528460 -5.7498536 -5.4544599 +!p 1.0932507 3.6159568 -5.6909679 -5.3410150 +!p 1.1063697 3.4820743 -5.6311834 -5.2310239 +!p 1.1196461 3.3512869 -5.5705508 -5.1247826 +!p 1.1330819 3.2236701 -5.5091249 -5.0225773 +!p 1.1466789 3.0992861 -5.4469644 -4.9246807 +!p 1.1604390 2.9781841 -5.3840984 -4.8313132 +!p 1.1743643 2.8604005 -5.3206293 -4.7427417 +!p 1.1884567 2.7459592 -5.2566252 -4.6591669 +!p 1.2027181 2.6348722 -5.1921597 -4.5807574 +!p 1.2171507 2.5271398 -5.1273098 -4.5076431 +!p 1.2317566 2.4227515 -5.0621553 -4.4399094 +!p 1.2465376 2.3216862 -4.9967794 -4.3775924 +!p 1.2614961 2.2239133 -4.9312678 -4.3206738 +!p 1.2766340 2.1293933 -4.8657088 -4.2690765 +!p 1.2919536 2.0380783 -4.8001929 -4.2226611 +!p 1.3074571 1.9499134 -4.7348131 -4.1812223 +!p 1.3231466 1.8648371 -4.6696641 -4.1444871 +!p 1.3390243 1.7827823 -4.6048428 -4.1121132 +!p 1.3550926 1.7036771 -4.5404478 -4.0836897 +!p 1.3713537 1.6274463 -4.4765800 -4.0587377 +!p 1.3878100 1.5540113 -4.4133422 -4.0367133 +!p 1.4044637 1.4832919 -4.3508398 -4.0170124 +!p 1.4213173 1.4152068 -4.2891811 -3.9989759 +!p 1.4383731 1.3496744 -4.2284781 -3.9818976 +!p 1.4556336 1.2866139 -4.1688470 -3.9650339 +!p 1.4731012 1.2259457 -4.1104094 -3.9476145 +!p 1.4907784 1.1675924 -4.0532935 -3.9288558 +!p 1.5086677 1.1114793 -3.9976356 -3.9079755 +!p 1.5267717 1.0575348 -3.9435812 -3.8842097 +!p 1.5450930 1.0056912 -3.8912876 -3.8568312 +!p 1.5636341 0.9558847 -3.8409251 -3.8251709 +!p 1.5823977 0.9080557 -3.7926794 -3.7886397 +!p 1.6013865 0.8621488 -3.7467536 -3.7467536 +!p 1.6206031 0.8181125 -3.7023257 -3.7023257 +!p 1.6400504 0.7758975 -3.6584246 -3.6584246 +!p 1.6597310 0.7354541 -3.6150440 -3.6150440 +!p 1.6796477 0.6967327 -3.5721779 -3.5721779 +!p 1.6998035 0.6596834 -3.5298201 -3.5298201 +!p 1.7202011 0.6242565 -3.4879645 -3.4879645 +!p 1.7408436 0.5904023 -3.4466052 -3.4466052 +!p 1.7617337 0.5580715 -3.4057364 -3.4057364 +!p 1.7828745 0.5272150 -3.3653521 -3.3653521 +!p 1.8042690 0.4977842 -3.3254468 -3.3254468 +!p 1.8259202 0.4697309 -3.2860146 -3.2860146 +!p 1.8478313 0.4430074 -3.2470500 -3.2470500 +!p 1.8700052 0.4175668 -3.2085474 -3.2085474 +!p 1.8924453 0.3933628 -3.1705014 -3.1705014 +!p 1.9151546 0.3703497 -3.1329066 -3.1329066 +!p 1.9381365 0.3484828 -3.0957575 -3.0957575 +!p 1.9613941 0.3277180 -3.0590489 -3.0590489 +!p 1.9849309 0.3080123 -3.0227756 -3.0227756 +!p 2.0087500 0.2893233 -2.9869324 -2.9869324 +!p 2.0328550 0.2716099 -2.9515142 -2.9515142 +!p 2.0572493 0.2548318 -2.9165160 -2.9165160 +!p 2.0819363 0.2389495 -2.8819328 -2.8819328 +!p 2.1069195 0.2239249 -2.8477597 -2.8477597 +!p 2.1322025 0.2097205 -2.8139918 -2.8139918 +!p 2.1577890 0.1963002 -2.7806243 -2.7806243 +!p 2.1836824 0.1836288 -2.7476525 -2.7476525 +!p 2.2098866 0.1716720 -2.7150716 -2.7150716 +!p 2.2364053 0.1603968 -2.6828771 -2.6828771 +!p 2.2632421 0.1497711 -2.6510643 -2.6510643 +!p 2.2904010 0.1397639 -2.6196288 -2.6196288 +!p 2.3178859 0.1303454 -2.5885660 -2.5885660 +!p 2.3457005 0.1214865 -2.5578716 -2.5578716 +!p 2.3738489 0.1131595 -2.5275411 -2.5275411 +!p 2.4023351 0.1053374 -2.4975702 -2.4975702 +!p 2.4311631 0.0979945 -2.4679548 -2.4679548 +!p 2.4603371 0.0911058 -2.4386905 -2.4386905 +!p 2.4898611 0.0846476 -2.4097732 -2.4097732 +!p 2.5197394 0.0785969 -2.3811988 -2.3811988 +!p 2.5499763 0.0729317 -2.3529633 -2.3529633 +!p 2.5805760 0.0676309 -2.3250625 -2.3250625 +!p 2.6115429 0.0626745 -2.2974926 -2.2974926 +!p 2.6428815 0.0580432 -2.2702496 -2.2702496 +!p 2.6745960 0.0537186 -2.2433297 -2.2433297 +!p 2.7066912 0.0496830 -2.2167289 -2.2167289 +!p 2.7391715 0.0459197 -2.1904436 -2.1904436 +!p 2.7720415 0.0424127 -2.1644700 -2.1644700 +!p 2.8053060 0.0391469 -2.1388043 -2.1388043 +!p 2.8389697 0.0361077 -2.1134430 -2.1134430 +!p 2.8730373 0.0332814 -2.0883824 -2.0883824 +!p 2.9075138 0.0306548 -2.0636190 -2.0636190 +!p 2.9424040 0.0282156 -2.0391492 -2.0391492 +!p 2.9777128 0.0259521 -2.0149696 -2.0149696 +!p 3.0134454 0.0238530 -1.9910766 -1.9910766 +!p 3.0496067 0.0219079 -1.9674670 -1.9674670 +!p 3.0862020 0.0201066 -1.9441374 -1.9441374 +!p 3.1232364 0.0184399 -1.9210844 -1.9210844 +!p 3.1607152 0.0168988 -1.8983047 -1.8983047 +!p 3.1986438 0.0154748 -1.8757952 -1.8757952 +!p 3.2370276 0.0141600 -1.8535526 -1.8535526 +!p 3.2758719 0.0129471 -1.8315737 -1.8315737 +!p 3.3151823 0.0118289 -1.8098554 -1.8098554 +!p 3.3549645 0.0107988 -1.7883947 -1.7883947 +!p 3.3952241 0.0098506 -1.7671884 -1.7671884 +!p 3.4359668 0.0089785 -1.7462336 -1.7462336 +!p 3.4771984 0.0081771 -1.7255273 -1.7255273 +!p 3.5189248 0.0074411 -1.7050665 -1.7050665 +!p 3.5611519 0.0067657 -1.6848483 -1.6848483 +!p 3.6038857 0.0061465 -1.6648699 -1.6648699 +!p 3.6471323 0.0055793 -1.6451283 -1.6451283 +!p 3.6908979 0.0050602 -1.6256209 -1.6256209 +!p 3.7351887 0.0045853 -1.6063448 -1.6063448 +!p 3.7800110 0.0041514 -1.5872972 -1.5872972 +!p 3.8253711 0.0037553 -1.5684755 -1.5684755 +!p 3.8712755 0.0033939 -1.5498770 -1.5498770 +!p 3.9177308 0.0030646 -1.5314990 -1.5314990 +!p 3.9647436 0.0027646 -1.5133389 -1.5133389 + !L 0.0099448 -9.5657473 + !L 0.0100642 -9.5657303 + !L 0.0101849 -9.5657128 + !L 0.0103072 -9.5656950 + !L 0.0104309 -9.5656767 + !L 0.0105560 -9.5656580 + !L 0.0106827 -9.5656388 + !L 0.0108109 -9.5656191 + !L 0.0109406 -9.5655990 + !L 0.0110719 -9.5655784 + !L 0.0112048 -9.5655573 + !L 0.0113392 -9.5655357 + !L 0.0114753 -9.5655136 + !L 0.0116130 -9.5654909 + !L 0.0117524 -9.5654677 + !L 0.0118934 -9.5654439 + !L 0.0120361 -9.5654196 + !L 0.0121805 -9.5653946 + !L 0.0123267 -9.5653691 + !L 0.0124746 -9.5653429 + !L 0.0126243 -9.5653162 + !L 0.0127758 -9.5652887 + !L 0.0129291 -9.5652607 + !L 0.0130843 -9.5652319 + !L 0.0132413 -9.5652024 + !L 0.0134002 -9.5651723 + !L 0.0135610 -9.5651414 + !L 0.0137237 -9.5651097 + !L 0.0138884 -9.5650773 + !L 0.0140551 -9.5650441 + !L 0.0142237 -9.5650101 + !L 0.0143944 -9.5649753 + !L 0.0145671 -9.5649397 + !L 0.0147419 -9.5649032 + !L 0.0149188 -9.5648658 + !L 0.0150979 -9.5648275 + !L 0.0152790 -9.5647883 + !L 0.0154624 -9.5647481 + !L 0.0156479 -9.5647070 + !L 0.0158357 -9.5646649 + !L 0.0160257 -9.5646218 + !L 0.0162181 -9.5645776 + !L 0.0164127 -9.5645324 + !L 0.0166096 -9.5644861 + !L 0.0168089 -9.5644386 + !L 0.0170106 -9.5643900 + !L 0.0172148 -9.5643403 + !L 0.0174214 -9.5642893 + !L 0.0176304 -9.5642371 + !L 0.0178420 -9.5641837 + !L 0.0180561 -9.5641290 + !L 0.0182728 -9.5640729 + !L 0.0184920 -9.5640155 + !L 0.0187139 -9.5639568 + !L 0.0189385 -9.5638966 + !L 0.0191658 -9.5638349 + !L 0.0193957 -9.5637718 + !L 0.0196285 -9.5637072 + !L 0.0198640 -9.5636410 + !L 0.0201024 -9.5635732 + !L 0.0203436 -9.5635037 + !L 0.0205878 -9.5634326 + !L 0.0208348 -9.5633598 + !L 0.0210848 -9.5632853 + !L 0.0213378 -9.5632089 + !L 0.0215939 -9.5631307 + !L 0.0218530 -9.5630506 + !L 0.0221153 -9.5629686 + !L 0.0223806 -9.5628846 + !L 0.0226492 -9.5627986 + !L 0.0229210 -9.5627106 + !L 0.0231961 -9.5626204 + !L 0.0234744 -9.5625280 + !L 0.0237561 -9.5624334 + !L 0.0240412 -9.5623366 + !L 0.0243297 -9.5622374 + !L 0.0246216 -9.5621358 + !L 0.0249171 -9.5620318 + !L 0.0252161 -9.5619253 + !L 0.0255187 -9.5618162 + !L 0.0258249 -9.5617045 + !L 0.0261348 -9.5615901 + !L 0.0264484 -9.5614730 + !L 0.0267658 -9.5613530 + !L 0.0270870 -9.5612302 + !L 0.0274120 -9.5611044 + !L 0.0277410 -9.5609756 + !L 0.0280739 -9.5608437 + !L 0.0284108 -9.5607087 + !L 0.0287517 -9.5605703 + !L 0.0290967 -9.5604287 + !L 0.0294459 -9.5602837 + !L 0.0297992 -9.5601352 + !L 0.0301568 -9.5599831 + !L 0.0305187 -9.5598274 + !L 0.0308849 -9.5596679 + !L 0.0312555 -9.5595046 + !L 0.0316306 -9.5593374 + !L 0.0320102 -9.5591662 + !L 0.0323943 -9.5589909 + !L 0.0327830 -9.5588114 + !L 0.0331764 -9.5586275 + !L 0.0335745 -9.5584393 + !L 0.0339774 -9.5582465 + !L 0.0343852 -9.5580492 + !L 0.0347978 -9.5578471 + !L 0.0352154 -9.5576402 + !L 0.0356379 -9.5574283 + !L 0.0360656 -9.5572113 + !L 0.0364984 -9.5569891 + !L 0.0369364 -9.5567617 + !L 0.0373796 -9.5565288 + !L 0.0378282 -9.5562903 + !L 0.0382821 -9.5560461 + !L 0.0387415 -9.5557960 + !L 0.0392064 -9.5555400 + !L 0.0396769 -9.5552779 + !L 0.0401530 -9.5550095 + !L 0.0406348 -9.5547347 + !L 0.0411224 -9.5544533 + !L 0.0416159 -9.5541653 + !L 0.0421153 -9.5538703 + !L 0.0426207 -9.5535683 + !L 0.0431321 -9.5532591 + !L 0.0436497 -9.5529425 + !L 0.0441735 -9.5526184 + !L 0.0447036 -9.5522865 + !L 0.0452400 -9.5519467 + !L 0.0457829 -9.5515989 + !L 0.0463323 -9.5512427 + !L 0.0468883 -9.5508781 + !L 0.0474510 -9.5505048 + !L 0.0480204 -9.5501226 + !L 0.0485966 -9.5497313 + !L 0.0491798 -9.5493307 + !L 0.0497699 -9.5489206 + !L 0.0503672 -9.5485008 + !L 0.0509716 -9.5480709 + !L 0.0515832 -9.5476309 + !L 0.0522022 -9.5471804 + !L 0.0528287 -9.5467193 + !L 0.0534626 -9.5462472 + !L 0.0541042 -9.5457639 + !L 0.0547534 -9.5452691 + !L 0.0554104 -9.5447627 + !L 0.0560754 -9.5442442 + !L 0.0567483 -9.5437135 + !L 0.0574293 -9.5431702 + !L 0.0581184 -9.5426141 + !L 0.0588158 -9.5420449 + !L 0.0595216 -9.5414621 + !L 0.0602359 -9.5408657 + !L 0.0609587 -9.5402551 + !L 0.0616902 -9.5396302 + !L 0.0624305 -9.5389905 + !L 0.0631797 -9.5383358 + !L 0.0639378 -9.5376656 + !L 0.0647051 -9.5369797 + !L 0.0654815 -9.5362777 + !L 0.0662673 -9.5355591 + !L 0.0670625 -9.5348237 + !L 0.0678673 -9.5340710 + !L 0.0686817 -9.5333006 + !L 0.0695059 -9.5325122 + !L 0.0703399 -9.5317052 + !L 0.0711840 -9.5308794 + !L 0.0720382 -9.5300343 + !L 0.0729027 -9.5291694 + !L 0.0737775 -9.5282843 + !L 0.0746628 -9.5273786 + !L 0.0755588 -9.5264517 + !L 0.0764655 -9.5255031 + !L 0.0773831 -9.5245325 + !L 0.0783117 -9.5235393 + !L 0.0792514 -9.5225230 + !L 0.0802024 -9.5214830 + !L 0.0811649 -9.5204189 + !L 0.0821388 -9.5193301 + !L 0.0831245 -9.5182161 + !L 0.0841220 -9.5170762 + !L 0.0851315 -9.5159100 + !L 0.0861530 -9.5147168 + !L 0.0871869 -9.5134960 + !L 0.0882331 -9.5122471 + !L 0.0892919 -9.5109693 + !L 0.0903634 -9.5096621 + !L 0.0914478 -9.5083248 + !L 0.0925452 -9.5069568 + !L 0.0936557 -9.5055573 + !L 0.0947796 -9.5041258 + !L 0.0959169 -9.5026614 + !L 0.0970679 -9.5011634 + !L 0.0982327 -9.4996312 + !L 0.0994115 -9.4980640 + !L 0.1006045 -9.4964611 + !L 0.1018117 -9.4948216 + !L 0.1030335 -9.4931447 + !L 0.1042699 -9.4914297 + !L 0.1055211 -9.4896758 + !L 0.1067874 -9.4878820 + !L 0.1080688 -9.4860476 + !L 0.1093656 -9.4841717 + !L 0.1106780 -9.4822534 + !L 0.1120062 -9.4802917 + !L 0.1133502 -9.4782858 + !L 0.1147104 -9.4762348 + !L 0.1160870 -9.4741376 + !L 0.1174800 -9.4719933 + !L 0.1188898 -9.4698010 + !L 0.1203164 -9.4675595 + !L 0.1217602 -9.4652679 + !L 0.1232214 -9.4629251 + !L 0.1247000 -9.4605301 + !L 0.1261964 -9.4580817 + !L 0.1277108 -9.4555789 + !L 0.1292433 -9.4530205 + !L 0.1307942 -9.4504054 + !L 0.1323637 -9.4477324 + !L 0.1339521 -9.4450003 + !L 0.1355595 -9.4422079 + !L 0.1371862 -9.4393540 + !L 0.1388325 -9.4364374 + !L 0.1404985 -9.4334566 + !L 0.1421845 -9.4304105 + !L 0.1438907 -9.4272977 + !L 0.1456174 -9.4241168 + !L 0.1473648 -9.4208665 + !L 0.1491331 -9.4175455 + !L 0.1509227 -9.4141522 + !L 0.1527338 -9.4106852 + !L 0.1545666 -9.4071430 + !L 0.1564214 -9.4035242 + !L 0.1582985 -9.3998272 + !L 0.1601981 -9.3960505 + !L 0.1621204 -9.3921925 + !L 0.1640659 -9.3882516 + !L 0.1660347 -9.3842261 + !L 0.1680271 -9.3801144 + !L 0.1700434 -9.3759148 + !L 0.1720839 -9.3716256 + !L 0.1741489 -9.3672450 + !L 0.1762387 -9.3627712 + !L 0.1783536 -9.3582024 + !L 0.1804938 -9.3535368 + !L 0.1826598 -9.3487726 + !L 0.1848517 -9.3439077 + !L 0.1870699 -9.3389402 + !L 0.1893147 -9.3338682 + !L 0.1915865 -9.3286897 + !L 0.1938856 -9.3234025 + !L 0.1962122 -9.3180047 + !L 0.1985667 -9.3124941 + !L 0.2009495 -9.3068684 + !L 0.2033609 -9.3011257 + !L 0.2058012 -9.2952635 + !L 0.2082709 -9.2892796 + !L 0.2107701 -9.2831718 + !L 0.2132994 -9.2769376 + !L 0.2158589 -9.2705746 + !L 0.2184493 -9.2640804 + !L 0.2210706 -9.2574525 + !L 0.2237235 -9.2506884 + !L 0.2264082 -9.2437855 + !L 0.2291251 -9.2367412 + !L 0.2318746 -9.2295527 + !L 0.2346571 -9.2222174 + !L 0.2374730 -9.2147325 + !L 0.2403226 -9.2070952 + !L 0.2432065 -9.1993025 + !L 0.2461250 -9.1913516 + !L 0.2490785 -9.1832395 + !L 0.2520674 -9.1749631 + !L 0.2550922 -9.1665193 + !L 0.2581533 -9.1579049 + !L 0.2612512 -9.1491168 + !L 0.2643862 -9.1401517 + !L 0.2675588 -9.1310062 + !L 0.2707695 -9.1216770 + !L 0.2740188 -9.1121604 + !L 0.2773070 -9.1024532 + !L 0.2806347 -9.0925515 + !L 0.2840023 -9.0824518 + !L 0.2874103 -9.0721502 + !L 0.2908592 -9.0616431 + !L 0.2943496 -9.0509265 + !L 0.2978817 -9.0399964 + !L 0.3014563 -9.0288488 + !L 0.3050738 -9.0174797 + !L 0.3087347 -9.0058847 + !L 0.3124395 -8.9940597 + !L 0.3161888 -8.9820003 + !L 0.3199830 -8.9697020 + !L 0.3238228 -8.9571604 + !L 0.3277087 -8.9443708 + !L 0.3316412 -8.9313285 + !L 0.3356209 -8.9180289 + !L 0.3396484 -8.9044669 + !L 0.3437241 -8.8906377 + !L 0.3478488 -8.8765363 + !L 0.3520230 -8.8621575 + !L 0.3562473 -8.8474960 + !L 0.3605223 -8.8325466 + !L 0.3648485 -8.8173039 + !L 0.3692267 -8.8017623 + !L 0.3736574 -8.7859163 + !L 0.3781413 -8.7697603 + !L 0.3826790 -8.7532884 + !L 0.3872712 -8.7364947 + !L 0.3919184 -8.7193734 + !L 0.3966214 -8.7019183 + !L 0.4013809 -8.6841233 + !L 0.4061975 -8.6659823 + !L 0.4110718 -8.6474889 + !L 0.4160047 -8.6286366 + !L 0.4209968 -8.6094191 + !L 0.4260487 -8.5898298 + !L 0.4311613 -8.5698620 + !L 0.4363352 -8.5495090 + !L 0.4415713 -8.5287641 + !L 0.4468701 -8.5076203 + !L 0.4522326 -8.4860708 + !L 0.4576594 -8.4641086 + !L 0.4631513 -8.4417267 + !L 0.4687091 -8.4189180 + !L 0.4743336 -8.3956753 + !L 0.4800256 -8.3719915 + !L 0.4857859 -8.3478595 + !L 0.4916153 -8.3232720 + !L 0.4975147 -8.2982218 + !L 0.5034849 -8.2727016 + !L 0.5095267 -8.2467043 + !L 0.5156410 -8.2202227 + !L 0.5218287 -8.1932496 + !L 0.5280907 -8.1657777 + !L 0.5344278 -8.1378001 + !L 0.5408409 -8.1093097 + !L 0.5473310 -8.0802995 + !L 0.5538990 -8.0507626 + !L 0.5605457 -8.0206923 + !L 0.5672723 -7.9900820 + !L 0.5740796 -7.9589250 + !L 0.5809685 -7.9272151 + !L 0.5879401 -7.8949460 + !L 0.5949954 -7.8621117 + !L 0.6021354 -7.8287064 + !L 0.6093610 -7.7947245 + !L 0.6166733 -7.7601607 + !L 0.6240734 -7.7250098 + !L 0.6315623 -7.6892672 + !L 0.6391410 -7.6529283 + !L 0.6468107 -7.6159890 + !L 0.6545724 -7.5784454 + !L 0.6624273 -7.5402943 + !L 0.6703764 -7.5015326 + !L 0.6784210 -7.4621577 + !L 0.6865620 -7.4221675 + !L 0.6948008 -7.3815604 + !L 0.7031384 -7.3403354 + !L 0.7115760 -7.2984917 + !L 0.7201149 -7.2560295 + !L 0.7287563 -7.2129493 + !L 0.7375014 -7.1692523 + !L 0.7463514 -7.1249404 + !L 0.7553076 -7.0800161 + !L 0.7643713 -7.0344826 + !L 0.7735438 -6.9883439 + !L 0.7828263 -6.9416049 + !L 0.7922202 -6.8942709 + !L 0.8017269 -6.8463483 + !L 0.8113476 -6.7978444 + !L 0.8210838 -6.7487672 + !L 0.8309368 -6.6991257 + !L 0.8409080 -6.6489298 + !L 0.8509989 -6.5981902 + !L 0.8612109 -6.5469188 + !L 0.8715454 -6.4951285 + !L 0.8820040 -6.4428330 + !L 0.8925880 -6.3900473 + !L 0.9032991 -6.3367872 + !L 0.9141386 -6.2830699 + !L 0.9251083 -6.2289133 + !L 0.9362096 -6.1743368 + !L 0.9474441 -6.1193607 + !L 0.9588135 -6.0640065 + !L 0.9703192 -6.0082968 + !L 0.9819630 -5.9522555 + !L 0.9937466 -5.8959073 + !L 1.0056716 -5.8392785 + !L 1.0177396 -5.7823962 + !L 1.0299525 -5.7252887 + !L 1.0423119 -5.6679856 + !L 1.0548197 -5.6105173 + !L 1.0674775 -5.5529154 + !L 1.0802872 -5.4952125 + !L 1.0932507 -5.4374422 + !L 1.1063697 -5.3796389 + !L 1.1196461 -5.3218378 + !L 1.1330819 -5.2640751 + !L 1.1466789 -5.2063874 + !L 1.1604390 -5.1487784 + !L 1.1743643 -5.0913218 + !L 1.1884567 -5.0340536 + !L 1.2027181 -4.9770117 + !L 1.2171507 -4.9202341 + !L 1.2317566 -4.8637580 + !L 1.2465376 -4.8076204 + !L 1.2614961 -4.7518570 + !L 1.2766340 -4.6965024 + !L 1.2919536 -4.6415895 + !L 1.3074571 -4.5871492 + !L 1.3231466 -4.5332098 + !L 1.3390243 -4.4797963 + !L 1.3550926 -4.4269304 + !L 1.3713537 -4.3746291 + !L 1.3878100 -4.3229045 + !L 1.4044637 -4.2717627 + !L 1.4213173 -4.2212032 + !L 1.4383731 -4.1712223 + !L 1.4556336 -4.1218156 + !L 1.4731012 -4.0729795 + !L 1.4907784 -4.0247098 + !L 1.5086677 -3.9770027 + !L 1.5267717 -3.9298540 + !L 1.5450930 -3.8832596 + !L 1.5636341 -3.8372148 + !L 1.5823977 -3.7917146 + !L 1.6013865 -3.7467536 + !L 1.6206031 -3.7023257 + !L 1.6400504 -3.6584246 + !L 1.6597310 -3.6150440 + !L 1.6796477 -3.5721779 + !L 1.6998035 -3.5298201 + !L 1.7202011 -3.4879645 + !L 1.7408436 -3.4466052 + !L 1.7617337 -3.4057364 + !L 1.7828745 -3.3653521 + !L 1.8042690 -3.3254468 + !L 1.8259202 -3.2860146 + !L 1.8478313 -3.2470500 + !L 1.8700052 -3.2085474 + !L 1.8924453 -3.1705014 + !L 1.9151546 -3.1329066 + !L 1.9381365 -3.0957575 + !L 1.9613941 -3.0590489 + !L 1.9849309 -3.0227756 + !L 2.0087500 -2.9869324 + !L 2.0328550 -2.9515142 + !L 2.0572493 -2.9165160 + !L 2.0819363 -2.8819328 + !L 2.1069195 -2.8477597 + !L 2.1322025 -2.8139918 + !L 2.1577890 -2.7806243 + !L 2.1836824 -2.7476525 + !L 2.2098866 -2.7150716 + !L 2.2364053 -2.6828771 + !L 2.2632421 -2.6510643 + !L 2.2904010 -2.6196288 + !L 2.3178859 -2.5885660 + !L 2.3457005 -2.5578716 + !L 2.3738489 -2.5275411 + !L 2.4023351 -2.4975702 + !L 2.4311631 -2.4679548 + !L 2.4603371 -2.4386905 + !L 2.4898611 -2.4097732 + !L 2.5197394 -2.3811988 + !L 2.5499763 -2.3529633 + !L 2.5805760 -2.3250625 + !L 2.6115429 -2.2974926 + !L 2.6428815 -2.2702496 + !L 2.6745960 -2.2433297 + !L 2.7066912 -2.2167289 + !L 2.7391715 -2.1904436 + !L 2.7720415 -2.1644700 + !L 2.8053060 -2.1388043 + !L 2.8389697 -2.1134430 + !L 2.8730373 -2.0883824 + !L 2.9075138 -2.0636190 + !L 2.9424040 -2.0391492 + !L 2.9777128 -2.0149696 + !L 3.0134454 -1.9910766 + !L 3.0496067 -1.9674670 + !L 3.0862020 -1.9441374 + !L 3.1232364 -1.9210844 + !L 3.1607152 -1.8983047 + !L 3.1986438 -1.8757952 + !L 3.2370276 -1.8535526 + !L 3.2758719 -1.8315737 + !L 3.3151823 -1.8098554 + !L 3.3549645 -1.7883947 + !L 3.3952241 -1.7671884 + !L 3.4359668 -1.7462336 + !L 3.4771984 -1.7255273 + !L 3.5189248 -1.7050665 + !L 3.5611519 -1.6848483 + !L 3.6038857 -1.6648699 + !L 3.6471323 -1.6451283 + !L 3.6908979 -1.6256209 + !L 3.7351887 -1.6063448 + !L 3.7800110 -1.5872972 + !L 3.8253711 -1.5684755 + !L 3.8712755 -1.5498770 + !L 3.9177308 -1.5314990 + !L 3.9647436 -1.5133389 + + + radii, charge, core charge, model core charge + +!r 0.0100642 4.6974787 53.3293576 0.0000000 +!r 0.0101849 4.6976275 53.3293576 0.0000000 +!r 0.0103072 4.6977800 53.3293576 0.0000000 +!r 0.0104309 4.6979362 53.3293576 0.0000000 +!r 0.0105560 4.6980961 53.3293576 0.0000000 +!r 0.0106827 4.6982599 53.3293576 0.0000000 +!r 0.0108109 4.6984276 53.3293576 0.0000000 +!r 0.0109406 4.6985994 53.3293576 0.0000000 +!r 0.0110719 4.6987753 53.3293576 0.0000000 +!r 0.0112048 4.6989554 53.3293576 0.0000000 +!r 0.0113392 4.6991399 53.3293576 0.0000000 +!r 0.0114753 4.6993289 53.3293576 0.0000000 +!r 0.0116130 4.6995224 53.3293576 0.0000000 +!r 0.0117524 4.6997206 53.3293576 0.0000000 +!r 0.0118934 4.6999235 53.3293576 0.0000000 +!r 0.0120361 4.7001314 53.3293576 0.0000000 +!r 0.0121805 4.7003443 53.3293576 0.0000000 +!r 0.0123267 4.7005623 53.3293576 0.0000000 +!r 0.0124746 4.7007855 53.3293576 0.0000000 +!r 0.0126243 4.7010142 53.3293576 0.0000000 +!r 0.0127758 4.7012483 53.3293576 0.0000000 +!r 0.0129291 4.7014881 53.3293576 0.0000000 +!r 0.0130843 4.7017337 53.3293576 0.0000000 +!r 0.0132413 4.7019852 53.3293576 0.0000000 +!r 0.0134002 4.7022428 53.3293576 0.0000000 +!r 0.0135610 4.7025066 53.3293576 0.0000000 +!r 0.0137237 4.7027767 53.3293576 0.0000000 +!r 0.0138884 4.7030534 53.3293576 0.0000000 +!r 0.0140551 4.7033367 53.3293576 0.0000000 +!r 0.0142237 4.7036268 53.3293576 0.0000000 +!r 0.0143944 4.7039240 53.3293576 0.0000000 +!r 0.0145671 4.7042283 53.3293576 0.0000000 +!r 0.0147419 4.7045400 53.3293576 0.0000000 +!r 0.0149188 4.7048591 53.3293576 0.0000000 +!r 0.0150979 4.7051860 53.3293576 0.0000000 +!r 0.0152790 4.7055207 53.3293576 0.0000000 +!r 0.0154624 4.7058635 53.3293576 0.0000000 +!r 0.0156479 4.7062146 53.3293576 0.0000000 +!r 0.0158357 4.7065741 53.3293576 0.0000000 +!r 0.0160257 4.7069423 53.3293576 0.0000000 +!r 0.0162181 4.7073193 53.3293576 0.0000000 +!r 0.0164127 4.7077055 53.3293576 0.0000000 +!r 0.0166096 4.7081009 53.3293576 0.0000000 +!r 0.0168089 4.7085059 53.3293576 0.0000000 +!r 0.0170106 4.7089206 53.3293576 0.0000000 +!r 0.0172148 4.7093454 53.3293576 0.0000000 +!r 0.0174214 4.7097803 53.3293576 0.0000000 +!r 0.0176304 4.7102257 53.3293576 0.0000000 +!r 0.0178420 4.7106819 53.3293576 0.0000000 +!r 0.0180561 4.7111491 53.3293576 0.0000000 +!r 0.0182728 4.7116275 53.3293576 0.0000000 +!r 0.0184920 4.7121174 53.3293576 0.0000000 +!r 0.0187139 4.7126191 53.3293576 0.0000000 +!r 0.0189385 4.7131329 53.3293576 0.0000000 +!r 0.0191658 4.7136591 53.3293576 0.0000000 +!r 0.0193957 4.7141979 53.3293576 0.0000000 +!r 0.0196285 4.7147498 53.3293576 0.0000000 +!r 0.0198640 4.7153149 53.3293576 0.0000000 +!r 0.0201024 4.7158936 53.3293576 0.0000000 +!r 0.0203436 4.7164862 53.3293576 0.0000000 +!r 0.0205878 4.7170931 53.3293576 0.0000000 +!r 0.0208348 4.7177146 53.3293576 0.0000000 +!r 0.0210848 4.7183511 53.3293576 0.0000000 +!r 0.0213378 4.7190028 53.3293576 0.0000000 +!r 0.0215939 4.7196703 53.3293576 0.0000000 +!r 0.0218530 4.7203538 53.3293576 0.0000000 +!r 0.0221153 4.7210538 53.3293576 0.0000000 +!r 0.0223806 4.7217706 53.3293576 0.0000000 +!r 0.0226492 4.7225046 53.3293576 0.0000000 +!r 0.0229210 4.7232563 53.3293576 0.0000000 +!r 0.0231961 4.7240261 53.3293576 0.0000000 +!r 0.0234744 4.7248144 53.3293576 0.0000000 +!r 0.0237561 4.7256216 53.3293576 0.0000000 +!r 0.0240412 4.7264483 53.3293576 0.0000000 +!r 0.0243297 4.7272948 53.3293576 0.0000000 +!r 0.0246216 4.7281617 53.3293576 0.0000000 +!r 0.0249171 4.7290494 53.3293576 0.0000000 +!r 0.0252161 4.7299584 53.3293576 0.0000000 +!r 0.0255187 4.7308893 53.3293576 0.0000000 +!r 0.0258249 4.7318425 53.3293576 0.0000000 +!r 0.0261348 4.7328186 53.3293576 0.0000000 +!r 0.0264484 4.7338182 53.3293576 0.0000000 +!r 0.0267658 4.7348418 53.3293576 0.0000000 +!r 0.0270870 4.7358900 53.3293576 0.0000000 +!r 0.0274120 4.7369633 53.3293576 0.0000000 +!r 0.0277410 4.7380625 53.3293576 0.0000000 +!r 0.0280739 4.7391879 53.3293576 0.0000000 +!r 0.0284108 4.7403405 53.3293576 0.0000000 +!r 0.0287517 4.7415206 53.3293576 0.0000000 +!r 0.0290967 4.7427291 53.3293576 0.0000000 +!r 0.0294459 4.7439666 53.3293576 0.0000000 +!r 0.0297992 4.7452337 53.3293576 0.0000000 +!r 0.0301568 4.7465313 53.3293576 0.0000000 +!r 0.0305187 4.7478599 53.3293576 0.0000000 +!r 0.0308849 4.7492204 53.3293576 0.0000000 +!r 0.0312555 4.7506136 53.3293576 0.0000000 +!r 0.0316306 4.7520401 53.3293576 0.0000000 +!r 0.0320102 4.7535008 53.3293576 0.0000000 +!r 0.0323943 4.7549965 53.3293576 0.0000000 +!r 0.0327830 4.7565280 53.3293576 0.0000000 +!r 0.0331764 4.7580962 53.3293576 0.0000000 +!r 0.0335745 4.7597020 53.3293576 0.0000000 +!r 0.0339774 4.7613461 53.3293576 0.0000000 +!r 0.0343852 4.7630297 53.3293576 0.0000000 +!r 0.0347978 4.7647535 53.3293576 0.0000000 +!r 0.0352154 4.7665186 53.3293576 0.0000000 +!r 0.0356379 4.7683259 53.3293576 0.0000000 +!r 0.0360656 4.7701764 53.3293576 0.0000000 +!r 0.0364984 4.7720711 53.3293576 0.0000000 +!r 0.0369364 4.7740112 53.3293576 0.0000000 +!r 0.0373796 4.7759976 53.3293576 0.0000000 +!r 0.0378282 4.7780314 53.3293576 0.0000000 +!r 0.0382821 4.7801138 53.3293576 0.0000000 +!r 0.0387415 4.7822460 53.3293576 0.0000000 +!r 0.0392064 4.7844290 53.3293576 0.0000000 +!r 0.0396769 4.7866642 53.3293576 0.0000000 +!r 0.0401530 4.7889526 53.3293576 0.0000000 +!r 0.0406348 4.7912957 53.3293576 0.0000000 +!r 0.0411224 4.7936946 53.3293576 0.0000000 +!r 0.0416159 4.7961507 53.3293576 0.0000000 +!r 0.0421153 4.7986654 53.3293576 0.0000000 +!r 0.0426207 4.8012399 53.3293576 0.0000000 +!r 0.0431321 4.8038757 53.3293576 0.0000000 +!r 0.0436497 4.8065743 53.3293576 0.0000000 +!r 0.0441735 4.8093371 53.3293576 0.0000000 +!r 0.0447036 4.8121657 53.3293576 0.0000000 +!r 0.0452400 4.8150615 53.3293576 0.0000000 +!r 0.0457829 4.8180261 53.3293576 0.0000000 +!r 0.0463323 4.8210612 53.3293576 0.0000000 +!r 0.0468883 4.8241684 53.3293576 0.0000000 +!r 0.0474510 4.8273493 53.3293576 0.0000000 +!r 0.0480204 4.8306058 53.3293576 0.0000000 +!r 0.0485966 4.8339395 53.3293576 0.0000000 +!r 0.0491798 4.8373523 53.3293576 0.0000000 +!r 0.0497699 4.8408460 53.3293576 0.0000000 +!r 0.0503672 4.8444224 53.3293576 0.0000000 +!r 0.0509716 4.8480835 53.3293576 0.0000000 +!r 0.0515832 4.8518314 53.3293576 0.0000000 +!r 0.0522022 4.8556678 53.3293576 0.0000000 +!r 0.0528287 4.8595950 53.3293576 0.0000000 +!r 0.0534626 4.8636151 53.3293576 0.0000000 +!r 0.0541042 4.8677300 53.3293576 0.0000000 +!r 0.0547534 4.8719422 53.3293576 0.0000000 +!r 0.0554104 4.8762537 53.3293576 0.0000000 +!r 0.0560754 4.8806670 53.3293576 0.0000000 +!r 0.0567483 4.8851842 53.3293576 0.0000000 +!r 0.0574293 4.8898079 53.3293576 0.0000000 +!r 0.0581184 4.8945404 53.3293576 0.0000000 +!r 0.0588158 4.8993843 53.3293576 0.0000000 +!r 0.0595216 4.9043421 53.3293576 0.0000000 +!r 0.0602359 4.9094163 53.3293576 0.0000000 +!r 0.0609587 4.9146097 53.3293576 0.0000000 +!r 0.0616902 4.9199250 53.3293576 0.0000000 +!r 0.0624305 4.9253650 53.3293576 0.0000000 +!r 0.0631797 4.9309324 53.3293576 0.0000000 +!r 0.0639378 4.9366301 53.3293576 0.0000000 +!r 0.0647051 4.9424612 53.3293576 0.0000000 +!r 0.0654815 4.9484286 53.3293576 0.0000000 +!r 0.0662673 4.9545354 53.3293576 0.0000000 +!r 0.0670625 4.9607848 53.3293576 0.0000000 +!r 0.0678673 4.9671799 53.3293576 0.0000000 +!r 0.0686817 4.9737240 53.3293576 0.0000000 +!r 0.0695059 4.9804205 53.3293576 0.0000000 +!r 0.0703399 4.9872728 53.3293576 0.0000000 +!r 0.0711840 4.9942843 53.3293576 0.0000000 +!r 0.0720382 5.0014586 53.3293576 0.0000000 +!r 0.0729027 5.0087993 53.3293576 0.0000000 +!r 0.0737775 5.0163101 53.3293576 0.0000000 +!r 0.0746628 5.0239947 53.3293576 0.0000000 +!r 0.0755588 5.0318570 53.3293576 0.0000000 +!r 0.0764655 5.0399010 53.3293576 0.0000000 +!r 0.0773831 5.0481305 53.3293576 0.0000000 +!r 0.0783117 5.0565498 53.3293576 0.0000000 +!r 0.0792514 5.0651628 53.3293576 0.0000000 +!r 0.0802024 5.0739739 53.3293576 0.0000000 +!r 0.0811649 5.0829873 53.3293576 0.0000000 +!r 0.0821388 5.0922074 53.3293576 0.0000000 +!r 0.0831245 5.1016388 53.3293576 0.0000000 +!r 0.0841220 5.1112858 53.3293576 0.0000000 +!r 0.0851315 5.1211533 53.3293576 0.0000000 +!r 0.0861530 5.1312459 53.3293576 0.0000000 +!r 0.0871869 5.1415684 53.3293576 0.0000000 +!r 0.0882331 5.1521257 53.3293576 0.0000000 +!r 0.0892919 5.1629228 53.3293576 0.0000000 +!r 0.0903634 5.1739647 53.3293576 0.0000000 +!r 0.0914478 5.1852567 53.3293576 0.0000000 +!r 0.0925452 5.1968039 53.3293576 0.0000000 +!r 0.0936557 5.2086117 53.3293576 0.0000000 +!r 0.0947796 5.2206855 53.3293576 0.0000000 +!r 0.0959169 5.2330309 53.3293576 0.0000000 +!r 0.0970679 5.2456533 53.3293576 0.0000000 +!r 0.0982327 5.2585586 53.3293576 0.0000000 +!r 0.0994115 5.2717525 53.3293576 0.0000000 +!r 0.1006045 5.2852409 53.3293576 0.0000000 +!r 0.1018117 5.2990298 53.3293576 0.0000000 +!r 0.1030335 5.3131251 53.3293576 0.0000000 +!r 0.1042699 5.3275331 53.3293576 0.0000000 +!r 0.1055211 5.3422601 53.3293576 0.0000000 +!r 0.1067874 5.3573122 53.3293576 0.0000000 +!r 0.1080688 5.3726960 53.3293576 0.0000000 +!r 0.1093656 5.3884179 53.3293576 0.0000000 +!r 0.1106780 5.4044846 53.3293576 0.0000000 +!r 0.1120062 5.4209027 53.3293576 0.0000000 +!r 0.1133502 5.4376790 53.3293576 0.0000000 +!r 0.1147104 5.4548203 53.3293576 0.0000000 +!r 0.1160870 5.4723336 53.3293576 0.0000000 +!r 0.1174800 5.4902258 53.3293576 0.0000000 +!r 0.1188898 5.5085041 53.3293576 0.0000000 +!r 0.1203164 5.5271757 53.3293576 0.0000000 +!r 0.1217602 5.5462477 53.3293576 0.0000000 +!r 0.1232214 5.5657274 53.3293576 0.0000000 +!r 0.1247000 5.5856224 53.3293576 0.0000000 +!r 0.1261964 5.6059399 53.3293576 0.0000000 +!r 0.1277108 5.6266875 53.3293576 0.0000000 +!r 0.1292433 5.6478728 53.3293576 0.0000000 +!r 0.1307942 5.6695034 53.3293576 0.0000000 +!r 0.1323637 5.6915870 53.3293576 0.0000000 +!r 0.1339521 5.7141312 53.3293576 0.0000000 +!r 0.1355595 5.7371439 53.3293576 0.0000000 +!r 0.1371862 5.7606328 53.3293576 0.0000000 +!r 0.1388325 5.7846058 53.3293576 0.0000000 +!r 0.1404985 5.8090707 53.3293576 0.0000000 +!r 0.1421845 5.8340353 53.3293576 0.0000000 +!r 0.1438907 5.8595076 53.3293576 0.0000000 +!r 0.1456174 5.8854954 53.3293576 0.0000000 +!r 0.1473648 5.9120067 53.3293576 0.0000000 +!r 0.1491331 5.9390491 53.3293576 0.0000000 +!r 0.1509227 5.9666307 53.3293576 0.0000000 +!r 0.1527338 5.9947592 53.3293576 0.0000000 +!r 0.1545666 6.0234424 53.3293576 0.0000000 +!r 0.1564214 6.0526879 53.3293576 0.0000000 +!r 0.1582985 6.0825036 53.3293576 0.0000000 +!r 0.1601981 6.1128968 53.3293576 0.0000000 +!r 0.1621204 6.1438752 53.3293576 0.0000000 +!r 0.1640659 6.1754462 53.3293576 0.0000000 +!r 0.1660347 6.2076170 53.3293576 0.0000000 +!r 0.1680271 6.2403947 53.3293576 0.0000000 +!r 0.1700434 6.2737865 53.3293576 0.0000000 +!r 0.1720839 6.3077991 53.3293576 0.0000000 +!r 0.1741489 6.3424394 53.3293576 0.0000000 +!r 0.1762387 6.3777136 53.3293576 0.0000000 +!r 0.1783536 6.4136282 53.3293576 0.0000000 +!r 0.1804938 6.4501893 53.3293576 0.0000000 +!r 0.1826598 6.4874025 53.3293576 0.0000000 +!r 0.1848517 6.5252736 53.3293576 0.0000000 +!r 0.1870699 6.5638076 53.3293576 0.0000000 +!r 0.1893147 6.6030096 53.3293576 0.0000000 +!r 0.1915865 6.6428842 53.3293576 0.0000000 +!r 0.1938856 6.6834356 53.3293576 0.0000000 +!r 0.1962122 6.7246677 53.3293576 0.0000000 +!r 0.1985667 6.7665839 53.3293576 0.0000000 +!r 0.2009495 6.8091872 53.3293576 0.0000000 +!r 0.2033609 6.8524801 53.3293576 0.0000000 +!r 0.2058012 6.8964647 53.3293576 0.0000000 +!r 0.2082709 6.9411425 53.3293576 0.0000000 +!r 0.2107701 6.9865143 53.3293576 0.0000000 +!r 0.2132994 7.0325807 53.3293576 0.0000000 +!r 0.2158589 7.0793411 53.3293576 0.0000000 +!r 0.2184493 7.1267948 53.3293576 0.0000000 +!r 0.2210706 7.1749399 53.3293576 0.0000000 +!r 0.2237235 7.2237742 53.3293576 0.0000000 +!r 0.2264082 7.2732944 53.3293576 0.0000000 +!r 0.2291251 7.3234964 53.3293576 0.0000000 +!r 0.2318746 7.3743755 53.3293576 0.0000000 +!r 0.2346571 7.4259258 53.3293576 0.0000000 +!r 0.2374730 7.4781406 53.3293576 0.0000000 +!r 0.2403226 7.5310122 53.3293576 0.0000000 +!r 0.2432065 7.5845318 53.3293576 0.0000000 +!r 0.2461250 7.6386894 53.3293576 0.0000000 +!r 0.2490785 7.6934742 53.3293576 0.0000000 +!r 0.2520674 7.7488739 53.3293576 0.0000000 +!r 0.2550922 7.8048751 53.3293576 0.0000000 +!r 0.2581533 7.8614630 53.3293576 0.0000000 +!r 0.2612512 7.9186217 53.3293576 0.0000000 +!r 0.2643862 7.9763336 53.3293576 0.0000000 +!r 0.2675588 8.0345798 53.3293576 0.0000000 +!r 0.2707695 8.0933400 53.3293576 0.0000000 +!r 0.2740188 8.1525921 53.3293576 0.0000000 +!r 0.2773070 8.2123125 51.6300222 0.0000000 +!r 0.2806347 8.2724761 49.1414913 0.0000000 +!r 0.2840023 8.3330559 46.7466985 0.0000000 +!r 0.2874103 8.3940231 44.4434182 0.0000000 +!r 0.2908592 8.4553470 42.2294219 0.0000000 +!r 0.2943496 8.5169953 40.1024808 0.0000000 +!r 0.2978817 8.5789335 38.0603679 0.0000000 +!r 0.3014563 8.6411252 36.1008603 0.0000000 +!r 0.3050738 8.7035319 34.2217415 0.0000000 +!r 0.3087347 8.7661131 32.4208038 0.0000000 +!r 0.3124395 8.8288259 30.6958498 0.0000000 +!r 0.3161888 8.8916255 29.0446953 0.0000000 +!r 0.3199830 8.9544646 27.4651709 0.0000000 +!r 0.3238228 9.0172938 25.9551238 0.0000000 +!r 0.3277087 9.0800613 24.5124204 0.0000000 +!r 0.3316412 9.1427128 23.1349475 0.0000000 +!r 0.3356209 9.2051917 21.8206144 0.0000000 +!r 0.3396484 9.2674390 20.5673548 0.0000000 +!r 0.3437241 9.3293932 19.3731281 0.0000000 +!r 0.3478488 9.3909901 18.2359213 0.0000000 +!r 0.3520230 9.4521632 17.1537502 0.0000000 +!r 0.3562473 9.5128435 16.1246613 0.0000000 +!r 0.3605223 9.5729593 15.1467327 0.0000000 +!r 0.3648485 9.6324363 14.2180756 0.0000000 +!r 0.3692267 9.6911980 13.3368355 0.0000000 +!r 0.3736574 9.7491649 12.5011933 0.0000000 +!r 0.3781413 9.8062553 11.7093661 0.0000000 +!r 0.3826790 9.8623850 10.9596086 0.0000000 +!r 0.3872712 9.9174672 10.2502134 0.0000000 +!r 0.3919184 9.9714128 9.5795123 0.0000000 +!r 0.3966214 10.0241302 8.9458764 0.0000000 +!r 0.4013809 10.0755257 8.3477172 0.0000000 +!r 0.4061975 10.1255032 7.7834868 0.0000000 +!r 0.4110718 10.1739647 7.2516786 0.0000000 +!r 0.4160047 10.2208098 6.7508271 0.0000000 +!r 0.4209968 10.2659365 6.2795088 0.0000000 +!r 0.4260487 10.3092409 5.8363418 0.0000000 +!r 0.4311613 10.3506173 5.4199864 0.0000000 +!r 0.4363352 10.3899586 5.0291446 0.0000000 +!r 0.4415713 10.4271562 4.6625605 0.0000000 +!r 0.4468701 10.4621007 4.3190196 0.0000000 +!r 0.4522326 10.4946811 3.9973493 0.0000000 +!r 0.4576594 10.5247861 3.6964179 0.0000000 +!r 0.4631513 10.5523037 3.4151349 0.0000000 +!r 0.4687091 10.5771216 3.1524501 0.0000000 +!r 0.4743336 10.5991272 2.9073532 0.0000000 +!r 0.4800256 10.6182084 2.6788737 0.0000000 +!r 0.4857859 10.6342534 2.4660796 0.0000000 +!r 0.4916153 10.6471513 2.2680775 0.0000000 +!r 0.4975147 10.6567923 2.0840115 0.0000000 +!r 0.5034849 10.6630679 1.9130625 0.0000000 +!r 0.5095267 10.6658715 1.7544476 0.0000000 +!r 0.5156410 10.6650987 1.6074191 0.0000000 +!r 0.5218287 10.6606473 1.4712640 0.0000000 +!r 0.5280907 10.6524185 1.3453027 0.0000000 +!r 0.5344278 10.6403164 1.2288886 0.0000000 +!r 0.5408409 10.6242490 1.1214068 0.0000000 +!r 0.5473310 10.6041283 1.0222734 0.0000000 +!r 0.5538990 10.5798709 0.9309345 0.0000000 +!r 0.5605457 10.5513986 0.8468652 0.0000000 +!r 0.5672723 10.5186383 0.7695687 0.0000000 +!r 0.5740796 10.4815230 0.6985754 0.0000000 +!r 0.5809685 10.4399918 0.6334417 0.0000000 +!r 0.5879401 10.3939909 0.5737493 0.0000000 +!r 0.5949954 10.3434734 0.5191042 0.0000000 +!r 0.6021354 10.2884000 0.4691355 0.0000000 +!r 0.6093610 10.2287396 0.4234947 0.0000000 +!r 0.6166733 10.1644696 0.3818545 0.0000000 +!r 0.6240734 10.0955761 0.3439083 0.0000000 +!r 0.6315623 10.0220544 0.3093687 0.0000000 +!r 0.6391410 9.9439095 0.2779671 0.0000000 +!r 0.6468107 9.8611562 0.2494526 0.0000000 +!r 0.6545724 9.7738198 0.2235910 0.0000000 +!r 0.6624273 9.6819357 0.2001642 0.0000000 +!r 0.6703764 9.5855504 0.1789691 0.0000000 +!r 0.6784210 9.4847211 0.1598172 0.0000000 +!r 0.6865620 9.3795161 0.1425334 0.0000000 +!r 0.6948008 9.2700151 0.1269553 0.0000000 +!r 0.7031384 9.1563089 0.1129329 0.0000000 +!r 0.7115760 9.0384998 0.1003272 0.0000000 +!r 0.7201149 8.9167012 0.0890102 0.0000000 +!r 0.7287563 8.7910377 0.0788636 0.0000000 +!r 0.7375014 8.6616452 0.0697787 0.0000000 +!r 0.7463514 8.5286702 0.0616555 0.0000000 +!r 0.7553076 8.3922697 0.0544023 0.0000000 +!r 0.7643713 8.2526111 0.0479350 0.0000000 +!r 0.7735438 8.1098718 0.0421764 0.0000000 +!r 0.7828263 7.9642382 0.0370564 0.0000000 +!r 0.7922202 7.8159060 0.0325106 0.0000000 +!r 0.8017269 7.6650788 0.0284806 0.0000000 +!r 0.8113476 7.5119683 0.0249131 0.0000000 +!r 0.8210838 7.3567928 0.0217598 0.0000000 +!r 0.8309368 7.1997770 0.0189767 0.0000000 +!r 0.8409080 7.0411511 0.0165242 0.0000000 +!r 0.8509989 6.8811495 0.0143663 0.0000000 +!r 0.8612109 6.7200106 0.0124706 0.0000000 +!r 0.8715454 6.5579753 0.0108079 0.0000000 +!r 0.8820040 6.3952865 0.0093518 0.0000000 +!r 0.8925880 6.2321877 0.0080788 0.0000000 +!r 0.9032991 6.0689220 0.0069676 0.0000000 +!r 0.9141386 5.9057314 0.0059993 0.0000000 +!r 0.9251083 5.7428556 0.0051569 0.0000000 +!r 0.9362096 5.5805309 0.0044253 0.0000000 +!r 0.9474441 5.4189891 0.0037910 0.0000000 +!r 0.9588135 5.2584568 0.0032419 0.0000000 +!r 0.9703192 5.0991542 0.0027675 0.0000000 +!r 0.9819630 4.9412942 0.0023584 0.0000000 +!r 0.9937466 4.7850816 0.0020061 0.0000000 +!r 1.0056716 4.6307121 0.0017034 0.0000000 +!r 1.0177396 4.4783718 0.0014437 0.0000000 +!r 1.0299525 4.3282359 0.0012213 0.0000000 +!r 1.0423119 4.1804689 0.0010312 0.0000000 +!r 1.0548197 4.0352234 0.0008691 0.0000000 +!r 1.0674775 3.8926398 0.0007311 0.0000000 +!r 1.0802872 3.7528460 0.0006138 0.0000000 +!r 1.0932507 3.6159568 0.0005143 0.0000000 +!r 1.1063697 3.4820743 0.0004301 0.0000000 +!r 1.1196461 3.3512869 0.0003589 0.0000000 +!r 1.1330819 3.2236701 0.0002989 0.0000000 +!r 1.1466789 3.0992861 0.0002485 0.0000000 +!r 1.1604390 2.9781841 0.0002061 0.0000000 +!r 1.1743643 2.8604005 0.0001706 0.0000000 +!r 1.1884567 2.7459592 0.0001409 0.0000000 +!r 1.2027181 2.6348722 0.0001161 0.0000000 +!r 1.2171507 2.5271398 0.0000955 0.0000000 +!r 1.2317566 2.4227515 0.0000784 0.0000000 +!r 1.2465376 2.3216862 0.0000642 0.0000000 +!r 1.2614961 2.2239133 0.0000524 0.0000000 +!r 1.2766340 2.1293933 0.0000427 0.0000000 +!r 1.2919536 2.0380783 0.0000348 0.0000000 +!r 1.3074571 1.9499134 0.0000282 0.0000000 +!r 1.3231466 1.8648371 0.0000228 0.0000000 +!r 1.3390243 1.7827823 0.0000184 0.0000000 +!r 1.3550926 1.7036771 0.0000148 0.0000000 +!r 1.3713537 1.6274463 0.0000119 0.0000000 +!r 1.3878100 1.5540113 0.0000096 0.0000000 +!r 1.4044637 1.4832919 0.0000077 0.0000000 +!r 1.4213173 1.4152068 0.0000061 0.0000000 +!r 1.4383731 1.3496744 0.0000049 0.0000000 +!r 1.4556336 1.2866139 0.0000039 0.0000000 +!r 1.4731012 1.2259457 0.0000031 0.0000000 +!r 1.4907784 1.1675924 0.0000024 0.0000000 +!r 1.5086677 1.1114793 0.0000019 0.0000000 +!r 1.5267717 1.0575348 0.0000015 0.0000000 +!r 1.5450930 1.0056912 0.0000012 0.0000000 +!r 1.5636341 0.9558847 0.0000009 0.0000000 +!r 1.5823977 0.9080557 0.0000007 0.0000000 +!r 1.6013865 0.8621488 0.0000006 0.0000000 +!r 1.6206031 0.8181125 0.0000004 0.0000000 +!r 1.6400504 0.7758975 0.0000003 0.0000000 +!r 1.6597310 0.7354541 0.0000003 0.0000000 +!r 1.6796477 0.6967327 0.0000002 0.0000000 +!r 1.6998035 0.6596834 0.0000001 0.0000000 +!r 1.7202011 0.6242565 0.0000001 0.0000000 +!r 1.7408436 0.5904023 0.0000001 0.0000000 +!r 1.7617337 0.5580715 0.0000001 0.0000000 +!r 1.7828745 0.5272150 0.0000000 0.0000000 +!r 1.8042690 0.4977842 0.0000000 0.0000000 +!r 1.8259202 0.4697309 0.0000000 0.0000000 +!r 1.8478313 0.4430074 0.0000000 0.0000000 +!r 1.8700052 0.4175668 0.0000000 0.0000000 +!r 1.8924453 0.3933628 0.0000000 0.0000000 +!r 1.9151546 0.3703497 0.0000000 0.0000000 +!r 1.9381365 0.3484828 0.0000000 0.0000000 +!r 1.9613941 0.3277180 0.0000000 0.0000000 +!r 1.9849309 0.3080123 0.0000000 0.0000000 +!r 2.0087500 0.2893233 0.0000000 0.0000000 +!r 2.0328550 0.2716099 0.0000000 0.0000000 +!r 2.0572493 0.2548318 0.0000000 0.0000000 +!r 2.0819363 0.2389495 0.0000000 0.0000000 +!r 2.1069195 0.2239249 0.0000000 0.0000000 +!r 2.1322025 0.2097205 0.0000000 0.0000000 +!r 2.1577890 0.1963002 0.0000000 0.0000000 +!r 2.1836824 0.1836288 0.0000000 0.0000000 +!r 2.2098866 0.1716720 0.0000000 0.0000000 +!r 2.2364053 0.1603968 0.0000000 0.0000000 +!r 2.2632421 0.1497711 0.0000000 0.0000000 +!r 2.2904010 0.1397639 0.0000000 0.0000000 +!r 2.3178859 0.1303454 0.0000000 0.0000000 +!r 2.3457005 0.1214865 0.0000000 0.0000000 +!r 2.3738489 0.1131595 0.0000000 0.0000000 +!r 2.4023351 0.1053374 0.0000000 0.0000000 +!r 2.4311631 0.0979945 0.0000000 0.0000000 +!r 2.4603371 0.0911058 0.0000000 0.0000000 +!r 2.4898611 0.0846476 0.0000000 0.0000000 +!r 2.5197394 0.0785969 0.0000000 0.0000000 +!r 2.5499763 0.0729317 0.0000000 0.0000000 +!r 2.5805760 0.0676309 0.0000000 0.0000000 +!r 2.6115429 0.0626745 0.0000000 0.0000000 +!r 2.6428815 0.0580432 0.0000000 0.0000000 +!r 2.6745960 0.0537186 0.0000000 0.0000000 +!r 2.7066912 0.0496830 0.0000000 0.0000000 +!r 2.7391715 0.0459197 0.0000000 0.0000000 +!r 2.7720415 0.0424127 0.0000000 0.0000000 +!r 2.8053060 0.0391469 0.0000000 0.0000000 +!r 2.8389697 0.0361077 0.0000000 0.0000000 +!r 2.8730373 0.0332814 0.0000000 0.0000000 +!r 2.9075138 0.0306548 0.0000000 0.0000000 +!r 2.9424040 0.0282156 0.0000000 0.0000000 +!r 2.9777128 0.0259521 0.0000000 0.0000000 +!r 3.0134454 0.0238530 0.0000000 0.0000000 +!r 3.0496067 0.0219079 0.0000000 0.0000000 +!r 3.0862020 0.0201066 0.0000000 0.0000000 +!r 3.1232364 0.0184399 0.0000000 0.0000000 +!r 3.1607152 0.0168988 0.0000000 0.0000000 +!r 3.1986438 0.0154748 0.0000000 0.0000000 +!r 3.2370276 0.0141600 0.0000000 0.0000000 +!r 3.2758719 0.0129471 0.0000000 0.0000000 +!r 3.3151823 0.0118289 0.0000000 0.0000000 +!r 3.3549645 0.0107988 0.0000000 0.0000000 +!r 3.3952241 0.0098506 0.0000000 0.0000000 +!r 3.4359668 0.0089785 0.0000000 0.0000000 +!r 3.4771984 0.0081771 0.0000000 0.0000000 +!r 3.5189248 0.0074411 0.0000000 0.0000000 +!r 3.5611519 0.0067657 0.0000000 0.0000000 +!r 3.6038857 0.0061465 0.0000000 0.0000000 +!r 3.6471323 0.0055793 0.0000000 0.0000000 +!r 3.6908979 0.0050602 0.0000000 0.0000000 +!r 3.7351887 0.0045853 0.0000000 0.0000000 +!r 3.7800110 0.0041514 0.0000000 0.0000000 +!r 3.8253711 0.0037553 0.0000000 0.0000000 +!r 3.8712755 0.0033939 0.0000000 0.0000000 +!r 3.9177308 0.0030646 0.0000000 0.0000000 +!r 3.9647436 0.0027646 0.0000000 0.0000000 + + +n= 1, l= 0, all-electron wave function, pseudo w-f + +& 0 0.009945 -0.092471 0.015231 +& 0 0.010064 -0.093490 0.015413 +& 0 0.010185 -0.094519 0.015598 +& 0 0.010307 -0.095558 0.015785 +& 0 0.010431 -0.096608 0.015975 +& 0 0.010556 -0.097668 0.016167 +& 0 0.010683 -0.098739 0.016361 +& 0 0.010811 -0.099820 0.016557 +& 0 0.010941 -0.100911 0.016755 +& 0 0.011072 -0.102013 0.016957 +& 0 0.011205 -0.103126 0.017160 +& 0 0.011339 -0.104250 0.017366 +& 0 0.011475 -0.105384 0.017574 +& 0 0.011613 -0.106530 0.017785 +& 0 0.011752 -0.107686 0.017999 +& 0 0.011893 -0.108853 0.018215 +& 0 0.012036 -0.110032 0.018433 +& 0 0.012181 -0.111221 0.018654 +& 0 0.012327 -0.112422 0.018878 +& 0 0.012475 -0.113635 0.019105 +& 0 0.012624 -0.114858 0.019334 +& 0 0.012776 -0.116093 0.019566 +& 0 0.012929 -0.117340 0.019801 +& 0 0.013084 -0.118598 0.020038 +& 0 0.013241 -0.119868 0.020279 +& 0 0.013400 -0.121149 0.020522 +& 0 0.013561 -0.122443 0.020768 +& 0 0.013724 -0.123748 0.021017 +& 0 0.013888 -0.125065 0.021269 +& 0 0.014055 -0.126394 0.021525 +& 0 0.014224 -0.127735 0.021783 +& 0 0.014394 -0.129088 0.022044 +& 0 0.014567 -0.130453 0.022309 +& 0 0.014742 -0.131830 0.022576 +& 0 0.014919 -0.133219 0.022847 +& 0 0.015098 -0.134621 0.023121 +& 0 0.015279 -0.136035 0.023399 +& 0 0.015462 -0.137462 0.023680 +& 0 0.015648 -0.138900 0.023964 +& 0 0.015836 -0.140352 0.024251 +& 0 0.016026 -0.141815 0.024542 +& 0 0.016218 -0.143292 0.024837 +& 0 0.016413 -0.144781 0.025135 +& 0 0.016610 -0.146282 0.025436 +& 0 0.016809 -0.147796 0.025741 +& 0 0.017011 -0.149323 0.026050 +& 0 0.017215 -0.150862 0.026363 +& 0 0.017421 -0.152415 0.026679 +& 0 0.017630 -0.153980 0.026999 +& 0 0.017842 -0.155557 0.027323 +& 0 0.018056 -0.157148 0.027651 +& 0 0.018273 -0.158751 0.027983 +& 0 0.018492 -0.160368 0.028318 +& 0 0.018714 -0.161997 0.028658 +& 0 0.018938 -0.163639 0.029002 +& 0 0.019166 -0.165294 0.029350 +& 0 0.019396 -0.166961 0.029702 +& 0 0.019628 -0.168642 0.030058 +& 0 0.019864 -0.170336 0.030419 +& 0 0.020102 -0.172042 0.030784 +& 0 0.020344 -0.173762 0.031153 +& 0 0.020588 -0.175494 0.031527 +& 0 0.020835 -0.177239 0.031905 +& 0 0.021085 -0.178997 0.032288 +& 0 0.021338 -0.180768 0.032675 +& 0 0.021594 -0.182551 0.033067 +& 0 0.021853 -0.184348 0.033464 +& 0 0.022115 -0.186157 0.033865 +& 0 0.022381 -0.187979 0.034272 +& 0 0.022649 -0.189813 0.034683 +& 0 0.022921 -0.191661 0.035099 +& 0 0.023196 -0.193520 0.035520 +& 0 0.023474 -0.195393 0.035946 +& 0 0.023756 -0.197277 0.036377 +& 0 0.024041 -0.199175 0.036813 +& 0 0.024330 -0.201084 0.037255 +& 0 0.024622 -0.203006 0.037702 +& 0 0.024917 -0.204940 0.038154 +& 0 0.025216 -0.206886 0.038612 +& 0 0.025519 -0.208844 0.039075 +& 0 0.025825 -0.210814 0.039544 +& 0 0.026135 -0.212796 0.040018 +& 0 0.026448 -0.214790 0.040498 +& 0 0.026766 -0.216795 0.040984 +& 0 0.027087 -0.218812 0.041475 +& 0 0.027412 -0.220841 0.041973 +& 0 0.027741 -0.222880 0.042476 +& 0 0.028074 -0.224931 0.042986 +& 0 0.028411 -0.226992 0.043501 +& 0 0.028752 -0.229065 0.044023 +& 0 0.029097 -0.231148 0.044551 +& 0 0.029446 -0.233242 0.045085 +& 0 0.029799 -0.235346 0.045626 +& 0 0.030157 -0.237460 0.046173 +& 0 0.030519 -0.239585 0.046727 +& 0 0.030885 -0.241719 0.047287 +& 0 0.031256 -0.243862 0.047854 +& 0 0.031631 -0.246015 0.048428 +& 0 0.032010 -0.248178 0.049009 +& 0 0.032394 -0.250349 0.049597 +& 0 0.032783 -0.252529 0.050191 +& 0 0.033176 -0.254718 0.050793 +& 0 0.033575 -0.256915 0.051402 +& 0 0.033977 -0.259119 0.052019 +& 0 0.034385 -0.261332 0.052643 +& 0 0.034798 -0.263552 0.053274 +& 0 0.035215 -0.265779 0.053913 +& 0 0.035638 -0.268013 0.054559 +& 0 0.036066 -0.270254 0.055213 +& 0 0.036498 -0.272500 0.055875 +& 0 0.036936 -0.274753 0.056545 +& 0 0.037380 -0.277012 0.057223 +& 0 0.037828 -0.279275 0.057909 +& 0 0.038282 -0.281544 0.058603 +& 0 0.038741 -0.283817 0.059306 +& 0 0.039206 -0.286094 0.060017 +& 0 0.039677 -0.288375 0.060736 +& 0 0.040153 -0.290659 0.061464 +& 0 0.040635 -0.292946 0.062201 +& 0 0.041122 -0.295236 0.062947 +& 0 0.041616 -0.297527 0.063701 +& 0 0.042115 -0.299821 0.064465 +& 0 0.042621 -0.302115 0.065237 +& 0 0.043132 -0.304410 0.066019 +& 0 0.043650 -0.306706 0.066811 +& 0 0.044174 -0.309001 0.067611 +& 0 0.044704 -0.311295 0.068422 +& 0 0.045240 -0.313587 0.069242 +& 0 0.045783 -0.315878 0.070071 +& 0 0.046332 -0.318167 0.070911 +& 0 0.046888 -0.320452 0.071761 +& 0 0.047451 -0.322734 0.072621 +& 0 0.048020 -0.325012 0.073491 +& 0 0.048597 -0.327284 0.074371 +& 0 0.049180 -0.329552 0.075262 +& 0 0.049770 -0.331813 0.076164 +& 0 0.050367 -0.334067 0.077077 +& 0 0.050972 -0.336314 0.078000 +& 0 0.051583 -0.338553 0.078934 +& 0 0.052202 -0.340783 0.079880 +& 0 0.052829 -0.343003 0.080837 +& 0 0.053463 -0.345214 0.081805 +& 0 0.054104 -0.347413 0.082785 +& 0 0.054753 -0.349600 0.083776 +& 0 0.055410 -0.351775 0.084780 +& 0 0.056075 -0.353936 0.085795 +& 0 0.056748 -0.356083 0.086822 +& 0 0.057429 -0.358215 0.087862 +& 0 0.058118 -0.360331 0.088914 +& 0 0.058816 -0.362431 0.089978 +& 0 0.059522 -0.364512 0.091056 +& 0 0.060236 -0.366575 0.092146 +& 0 0.060959 -0.368619 0.093249 +& 0 0.061690 -0.370642 0.094365 +& 0 0.062430 -0.372644 0.095495 +& 0 0.063180 -0.374623 0.096638 +& 0 0.063938 -0.376579 0.097794 +& 0 0.064705 -0.378510 0.098965 +& 0 0.065482 -0.380416 0.100149 +& 0 0.066267 -0.382296 0.101347 +& 0 0.067063 -0.384148 0.102560 +& 0 0.067867 -0.385972 0.103787 +& 0 0.068682 -0.387765 0.105028 +& 0 0.069506 -0.389528 0.106285 +& 0 0.070340 -0.391259 0.107556 +& 0 0.071184 -0.392957 0.108843 +& 0 0.072038 -0.394620 0.110144 +& 0 0.072903 -0.396248 0.111461 +& 0 0.073777 -0.397839 0.112794 +& 0 0.074663 -0.399392 0.114143 +& 0 0.075559 -0.400906 0.115507 +& 0 0.076465 -0.402380 0.116888 +& 0 0.077383 -0.403811 0.118285 +& 0 0.078312 -0.405200 0.119699 +& 0 0.079251 -0.406544 0.121130 +& 0 0.080202 -0.407842 0.122577 +& 0 0.081165 -0.409093 0.124042 +& 0 0.082139 -0.410296 0.125524 +& 0 0.083125 -0.411448 0.127023 +& 0 0.084122 -0.412550 0.128540 +& 0 0.085131 -0.413598 0.130076 +& 0 0.086153 -0.414593 0.131629 +& 0 0.087187 -0.415532 0.133201 +& 0 0.088233 -0.416413 0.134791 +& 0 0.089292 -0.417237 0.136400 +& 0 0.090363 -0.417999 0.138028 +& 0 0.091448 -0.418701 0.139675 +& 0 0.092545 -0.419339 0.141342 +& 0 0.093656 -0.419912 0.143028 +& 0 0.094780 -0.420419 0.144735 +& 0 0.095917 -0.420858 0.146461 +& 0 0.097068 -0.421228 0.148208 +& 0 0.098233 -0.421526 0.149975 +& 0 0.099412 -0.421752 0.151763 +& 0 0.100604 -0.421903 0.153572 +& 0 0.101812 -0.421979 0.155402 +& 0 0.103033 -0.421976 0.157254 +& 0 0.104270 -0.421894 0.159128 +& 0 0.105521 -0.421732 0.161023 +& 0 0.106787 -0.421486 0.162941 +& 0 0.108069 -0.421156 0.164881 +& 0 0.109366 -0.420740 0.166844 +& 0 0.110678 -0.420237 0.168830 +& 0 0.112006 -0.419643 0.170839 +& 0 0.113350 -0.418959 0.172872 +& 0 0.114710 -0.418181 0.174928 +& 0 0.116087 -0.417309 0.177009 +& 0 0.117480 -0.416340 0.179113 +& 0 0.118890 -0.415274 0.181242 +& 0 0.120316 -0.414107 0.183396 +& 0 0.121760 -0.412839 0.185576 +& 0 0.123221 -0.411467 0.187780 +& 0 0.124700 -0.409990 0.190010 +& 0 0.126196 -0.408406 0.192266 +& 0 0.127711 -0.406714 0.194548 +& 0 0.129243 -0.404912 0.196857 +& 0 0.130794 -0.402997 0.199192 +& 0 0.132364 -0.400969 0.201554 +& 0 0.133952 -0.398825 0.203944 +& 0 0.135560 -0.396564 0.206361 +& 0 0.137186 -0.394185 0.208806 +& 0 0.138832 -0.391685 0.211280 +& 0 0.140498 -0.389063 0.213781 +& 0 0.142184 -0.386317 0.216312 +& 0 0.143891 -0.383446 0.218872 +& 0 0.145617 -0.380448 0.221461 +& 0 0.147365 -0.377322 0.224079 +& 0 0.149133 -0.374065 0.226728 +& 0 0.150923 -0.370677 0.229407 +& 0 0.152734 -0.367156 0.232116 +& 0 0.154567 -0.363500 0.234857 +& 0 0.156421 -0.359708 0.237628 +& 0 0.158298 -0.355779 0.240431 +& 0 0.160198 -0.351711 0.243266 +& 0 0.162120 -0.347502 0.246133 +& 0 0.164066 -0.343152 0.249033 +& 0 0.166035 -0.338659 0.251965 +& 0 0.168027 -0.334022 0.254930 +& 0 0.170043 -0.329240 0.257929 +& 0 0.172084 -0.324311 0.260961 +& 0 0.174149 -0.319235 0.264028 +& 0 0.176239 -0.314010 0.267129 +& 0 0.178354 -0.308635 0.270264 +& 0 0.180494 -0.303109 0.273435 +& 0 0.182660 -0.297432 0.276640 +& 0 0.184852 -0.291603 0.279882 +& 0 0.187070 -0.285620 0.283159 +& 0 0.189315 -0.279483 0.286472 +& 0 0.191587 -0.273191 0.289823 +& 0 0.193886 -0.266744 0.293210 +& 0 0.196212 -0.260141 0.296634 +& 0 0.198567 -0.253381 0.300095 +& 0 0.200950 -0.246465 0.303595 +& 0 0.203361 -0.239391 0.307133 +& 0 0.205801 -0.232160 0.310709 +& 0 0.208271 -0.224771 0.314324 +& 0 0.210770 -0.217224 0.317977 +& 0 0.213299 -0.209519 0.321671 +& 0 0.215859 -0.201656 0.325404 +& 0 0.218449 -0.193636 0.329176 +& 0 0.221071 -0.185457 0.332989 +& 0 0.223723 -0.177122 0.336843 +& 0 0.226408 -0.168629 0.340737 +& 0 0.229125 -0.159980 0.344673 +& 0 0.231875 -0.151176 0.348649 +& 0 0.234657 -0.142216 0.352668 +& 0 0.237473 -0.133101 0.356728 +& 0 0.240323 -0.123833 0.360830 +& 0 0.243207 -0.114412 0.364975 +& 0 0.246125 -0.104840 0.369163 +& 0 0.249078 -0.095117 0.373393 +& 0 0.252067 -0.085245 0.377666 +& 0 0.255092 -0.075225 0.381982 +& 0 0.258153 -0.065060 0.386342 +& 0 0.261251 -0.054749 0.390746 +& 0 0.264386 -0.044296 0.395194 +& 0 0.267559 -0.033701 0.399685 +& 0 0.270770 -0.022968 0.404221 +& 0 0.274019 -0.012098 0.408801 +& 0 0.277307 -0.001092 0.413425 +& 0 0.280635 0.010045 0.418094 +& 0 0.284002 0.021313 0.422808 +& 0 0.287410 0.032708 0.427566 +& 0 0.290859 0.044228 0.432369 +& 0 0.294350 0.055870 0.437217 +& 0 0.297882 0.067630 0.442110 +& 0 0.301456 0.079507 0.447048 +& 0 0.305074 0.091496 0.452031 +& 0 0.308735 0.103595 0.457059 +& 0 0.312440 0.115800 0.462131 +& 0 0.316189 0.128107 0.467248 +& 0 0.319983 0.140513 0.472410 +& 0 0.323823 0.153013 0.477616 +& 0 0.327709 0.165605 0.482866 +& 0 0.331641 0.178283 0.488161 +& 0 0.335621 0.191043 0.493499 +& 0 0.339648 0.203882 0.498881 +& 0 0.343724 0.216795 0.504307 +& 0 0.347849 0.229777 0.509775 +& 0 0.352023 0.242823 0.515286 +& 0 0.356247 0.255929 0.520839 +& 0 0.360522 0.269090 0.526434 +& 0 0.364849 0.282300 0.532070 +& 0 0.369227 0.295555 0.537747 +& 0 0.373657 0.308849 0.543464 +& 0 0.378141 0.322177 0.549220 +& 0 0.382679 0.335532 0.555015 +& 0 0.387271 0.348910 0.560849 +& 0 0.391918 0.362305 0.566719 +& 0 0.396621 0.375711 0.572626 +& 0 0.401381 0.389122 0.578569 +& 0 0.406197 0.402532 0.584546 +& 0 0.411072 0.415934 0.590556 +& 0 0.416005 0.429323 0.596599 +& 0 0.420997 0.442692 0.602673 +& 0 0.426049 0.456035 0.608777 +& 0 0.431161 0.469345 0.614909 +& 0 0.436335 0.482616 0.621069 +& 0 0.441571 0.495840 0.627254 +& 0 0.446870 0.509012 0.633463 +& 0 0.452233 0.522125 0.639695 +& 0 0.457659 0.535170 0.645947 +& 0 0.463151 0.548143 0.652219 +& 0 0.468709 0.561035 0.658507 +& 0 0.474334 0.573840 0.664809 +& 0 0.480026 0.586551 0.671125 +& 0 0.485786 0.599160 0.677451 +& 0 0.491615 0.611661 0.683785 +& 0 0.497515 0.624046 0.690124 +& 0 0.503485 0.636308 0.696466 +& 0 0.509527 0.648441 0.702809 +& 0 0.515641 0.660436 0.709148 +& 0 0.521829 0.672287 0.715483 +& 0 0.528091 0.683987 0.721808 +& 0 0.534428 0.695529 0.728122 +& 0 0.540841 0.706905 0.734420 +& 0 0.547331 0.718108 0.740699 +& 0 0.553899 0.729132 0.746956 +& 0 0.560546 0.739970 0.753187 +& 0 0.567272 0.750614 0.759387 +& 0 0.574080 0.761058 0.765553 +& 0 0.580969 0.771295 0.771681 +& 0 0.587940 0.781319 0.777766 +& 0 0.594995 0.791122 0.783803 +& 0 0.602135 0.800699 0.789789 +& 0 0.609361 0.810044 0.795717 +& 0 0.616673 0.819149 0.801584 +& 0 0.624073 0.828009 0.807383 +& 0 0.631562 0.836618 0.813111 +& 0 0.639141 0.844970 0.818760 +& 0 0.646811 0.853059 0.824326 +& 0 0.654572 0.860880 0.829803 +& 0 0.662427 0.868428 0.835184 +& 0 0.670376 0.875697 0.840465 +& 0 0.678421 0.882682 0.845638 +& 0 0.686562 0.889379 0.850698 +& 0 0.694801 0.895783 0.855637 +& 0 0.703138 0.901890 0.860450 +& 0 0.711576 0.907695 0.865129 +& 0 0.720115 0.913194 0.869668 +& 0 0.728756 0.918385 0.874060 +& 0 0.737501 0.923262 0.878298 +& 0 0.746351 0.927823 0.882375 +& 0 0.755308 0.932065 0.886283 +& 0 0.764371 0.935985 0.890015 +& 0 0.773544 0.939581 0.893564 +& 0 0.782826 0.942850 0.896923 +& 0 0.792220 0.945790 0.900085 +& 0 0.801727 0.948399 0.903041 +& 0 0.811348 0.950677 0.905785 +& 0 0.821084 0.952621 0.908310 +& 0 0.830937 0.954231 0.910607 +& 0 0.840908 0.955506 0.912671 +& 0 0.850999 0.956445 0.914493 +& 0 0.861211 0.957050 0.916067 +& 0 0.871545 0.957318 0.917386 +& 0 0.882004 0.957253 0.918444 +& 0 0.892588 0.956853 0.919234 +& 0 0.903299 0.956119 0.919749 +& 0 0.914139 0.955054 0.919984 +& 0 0.925108 0.953659 0.919933 +& 0 0.936210 0.951935 0.919590 +& 0 0.947444 0.949885 0.918951 +& 0 0.958813 0.947511 0.918011 +& 0 0.970319 0.944815 0.916764 +& 0 0.981963 0.941801 0.915208 +& 0 0.993747 0.938472 0.913339 +& 0 1.005672 0.934831 0.911153 +& 0 1.017740 0.930882 0.908648 +& 0 1.029952 0.926629 0.905822 +& 0 1.042312 0.922076 0.902673 +& 0 1.054820 0.917227 0.899201 +& 0 1.067478 0.912088 0.895405 +& 0 1.080287 0.906662 0.891285 +& 0 1.093251 0.900956 0.886841 +& 0 1.106370 0.894975 0.882076 +& 0 1.119646 0.888723 0.876991 +& 0 1.133082 0.882208 0.871590 +& 0 1.146679 0.875434 0.865874 +& 0 1.160439 0.868409 0.859849 +& 0 1.174364 0.861138 0.853519 +& 0 1.188457 0.853627 0.846890 +& 0 1.202718 0.845885 0.839966 +& 0 1.217151 0.837916 0.832756 +& 0 1.231757 0.829729 0.825265 +& 0 1.246538 0.821331 0.817502 +& 0 1.261496 0.812728 0.809475 +& 0 1.276634 0.803929 0.801193 +& 0 1.291954 0.794940 0.792665 +& 0 1.307457 0.785769 0.783902 +& 0 1.323147 0.776424 0.774913 +& 0 1.339024 0.766912 0.765709 +& 0 1.355093 0.757243 0.756301 +& 0 1.371354 0.747422 0.746700 +& 0 1.387810 0.737459 0.736919 +& 0 1.404464 0.727362 0.726969 +& 0 1.421317 0.717138 0.716861 +& 0 1.438373 0.706796 0.706608 +& 0 1.455634 0.696343 0.696223 +& 0 1.473101 0.685788 0.685716 +& 0 1.490778 0.675140 0.675099 +& 0 1.508668 0.664406 0.664385 +& 0 1.526772 0.653594 0.653585 +& 0 1.545093 0.642712 0.642709 +& 0 1.563634 0.631769 0.631769 +& 0 1.582398 0.620773 0.620773 +& 0 1.601386 0.609731 0.609731 +& 0 1.620603 0.598652 0.598652 +& 0 1.640050 0.587544 0.587543 +& 0 1.659731 0.576413 0.576413 +& 0 1.679648 0.565268 0.565268 +& 0 1.699804 0.554118 0.554117 +& 0 1.720201 0.542968 0.542968 +& 0 1.740844 0.531826 0.531826 +& 0 1.761734 0.520701 0.520701 +& 0 1.782874 0.509599 0.509599 +& 0 1.804269 0.498527 0.498527 +& 0 1.825920 0.487492 0.487492 +& 0 1.847831 0.476501 0.476501 +& 0 1.870005 0.465561 0.465561 +& 0 1.892445 0.454678 0.454678 +& 0 1.915155 0.443859 0.443859 +& 0 1.938136 0.433109 0.433109 +& 0 1.961394 0.422436 0.422436 +& 0 1.984931 0.411844 0.411844 +& 0 2.008750 0.401340 0.401340 +& 0 2.032855 0.390929 0.390928 +& 0 2.057249 0.380616 0.380616 +& 0 2.081936 0.370407 0.370407 +& 0 2.106920 0.360306 0.360306 +& 0 2.132203 0.350319 0.350319 +& 0 2.157789 0.340449 0.340449 +& 0 2.183682 0.330702 0.330702 +& 0 2.209887 0.321082 0.321082 +& 0 2.236405 0.311592 0.311592 +& 0 2.263242 0.302237 0.302237 +& 0 2.290401 0.293019 0.293019 +& 0 2.317886 0.283943 0.283943 +& 0 2.345700 0.275011 0.275011 +& 0 2.373849 0.266226 0.266226 +& 0 2.402335 0.257592 0.257592 +& 0 2.431163 0.249110 0.249110 +& 0 2.460337 0.240783 0.240783 +& 0 2.489861 0.232613 0.232613 +& 0 2.519739 0.224603 0.224603 +& 0 2.549976 0.216753 0.216753 +& 0 2.580576 0.209065 0.209065 +& 0 2.611543 0.201540 0.201540 +& 0 2.642881 0.194180 0.194180 +& 0 2.674596 0.186986 0.186986 +& 0 2.706691 0.179957 0.179957 +& 0 2.739171 0.173095 0.173095 +& 0 2.772042 0.166400 0.166400 +& 0 2.805306 0.159872 0.159872 +& 0 2.838970 0.153511 0.153511 +& 0 2.873037 0.147316 0.147316 +& 0 2.907514 0.141287 0.141287 +& 0 2.942404 0.135424 0.135424 +& 0 2.977713 0.129725 0.129725 +& 0 3.013445 0.124190 0.124190 +& 0 3.049607 0.118818 0.118818 +& 0 3.086202 0.113607 0.113607 +& 0 3.123236 0.108556 0.108556 +& 0 3.160715 0.103664 0.103664 +& 0 3.198644 0.098928 0.098928 +& 0 3.237028 0.094347 0.094347 +& 0 3.275872 0.089919 0.089919 +& 0 3.315182 0.085641 0.085641 +& 0 3.354965 0.081512 0.081512 +& 0 3.395224 0.077530 0.077530 +& 0 3.435967 0.073691 0.073691 +& 0 3.477198 0.069994 0.069994 +& 0 3.518925 0.066435 0.066435 +& 0 3.561152 0.063013 0.063013 +& 0 3.603886 0.059724 0.059724 +& 0 3.647132 0.056566 0.056566 +& 0 3.690898 0.053535 0.053535 +& 0 3.735189 0.050629 0.050629 +& 0 3.780011 0.047845 0.047845 +& 0 3.825371 0.045180 0.045180 +& 0 3.871276 0.042631 0.042631 +& 0 3.917731 0.040194 0.040194 +& 0 3.964744 0.037867 0.037867 + + +n= 2, l= 1, all-electron wave function, pseudo w-f + +& 1 0.009945 0.001443 0.000395 +& 1 0.010064 0.001477 0.000405 +& 1 0.010185 0.001512 0.000415 +& 1 0.010307 0.001548 0.000425 +& 1 0.010431 0.001584 0.000435 +& 1 0.010556 0.001622 0.000445 +& 1 0.010683 0.001660 0.000456 +& 1 0.010811 0.001699 0.000467 +& 1 0.010941 0.001739 0.000479 +& 1 0.011072 0.001780 0.000490 +& 1 0.011205 0.001822 0.000502 +& 1 0.011339 0.001866 0.000514 +& 1 0.011475 0.001910 0.000526 +& 1 0.011613 0.001955 0.000539 +& 1 0.011752 0.002001 0.000552 +& 1 0.011893 0.002048 0.000565 +& 1 0.012036 0.002096 0.000579 +& 1 0.012181 0.002145 0.000593 +& 1 0.012327 0.002196 0.000607 +& 1 0.012475 0.002248 0.000622 +& 1 0.012624 0.002301 0.000637 +& 1 0.012776 0.002355 0.000652 +& 1 0.012929 0.002410 0.000668 +& 1 0.013084 0.002467 0.000684 +& 1 0.013241 0.002525 0.000701 +& 1 0.013400 0.002584 0.000718 +& 1 0.013561 0.002645 0.000735 +& 1 0.013724 0.002707 0.000753 +& 1 0.013888 0.002770 0.000771 +& 1 0.014055 0.002835 0.000790 +& 1 0.014224 0.002902 0.000809 +& 1 0.014394 0.002970 0.000828 +& 1 0.014567 0.003040 0.000848 +& 1 0.014742 0.003111 0.000869 +& 1 0.014919 0.003184 0.000890 +& 1 0.015098 0.003258 0.000911 +& 1 0.015279 0.003335 0.000933 +& 1 0.015462 0.003413 0.000956 +& 1 0.015648 0.003493 0.000979 +& 1 0.015836 0.003574 0.001002 +& 1 0.016026 0.003658 0.001027 +& 1 0.016218 0.003743 0.001051 +& 1 0.016413 0.003831 0.001077 +& 1 0.016610 0.003920 0.001103 +& 1 0.016809 0.004012 0.001129 +& 1 0.017011 0.004105 0.001156 +& 1 0.017215 0.004201 0.001184 +& 1 0.017421 0.004299 0.001213 +& 1 0.017630 0.004399 0.001242 +& 1 0.017842 0.004501 0.001272 +& 1 0.018056 0.004606 0.001303 +& 1 0.018273 0.004713 0.001334 +& 1 0.018492 0.004823 0.001367 +& 1 0.018714 0.004935 0.001400 +& 1 0.018938 0.005050 0.001433 +& 1 0.019166 0.005167 0.001468 +& 1 0.019396 0.005287 0.001503 +& 1 0.019628 0.005410 0.001540 +& 1 0.019864 0.005535 0.001577 +& 1 0.020102 0.005664 0.001615 +& 1 0.020344 0.005795 0.001654 +& 1 0.020588 0.005929 0.001694 +& 1 0.020835 0.006066 0.001734 +& 1 0.021085 0.006207 0.001776 +& 1 0.021338 0.006350 0.001819 +& 1 0.021594 0.006497 0.001863 +& 1 0.021853 0.006647 0.001908 +& 1 0.022115 0.006801 0.001954 +& 1 0.022381 0.006958 0.002001 +& 1 0.022649 0.007118 0.002049 +& 1 0.022921 0.007282 0.002099 +& 1 0.023196 0.007450 0.002150 +& 1 0.023474 0.007622 0.002201 +& 1 0.023756 0.007797 0.002254 +& 1 0.024041 0.007976 0.002309 +& 1 0.024330 0.008160 0.002365 +& 1 0.024622 0.008347 0.002422 +& 1 0.024917 0.008539 0.002480 +& 1 0.025216 0.008735 0.002540 +& 1 0.025519 0.008935 0.002601 +& 1 0.025825 0.009140 0.002664 +& 1 0.026135 0.009349 0.002728 +& 1 0.026448 0.009563 0.002794 +& 1 0.026766 0.009782 0.002861 +& 1 0.027087 0.010005 0.002930 +& 1 0.027412 0.010234 0.003001 +& 1 0.027741 0.010468 0.003073 +& 1 0.028074 0.010706 0.003147 +& 1 0.028411 0.010950 0.003223 +& 1 0.028752 0.011200 0.003301 +& 1 0.029097 0.011455 0.003380 +& 1 0.029446 0.011715 0.003462 +& 1 0.029799 0.011982 0.003545 +& 1 0.030157 0.012254 0.003631 +& 1 0.030519 0.012532 0.003718 +& 1 0.030885 0.012816 0.003808 +& 1 0.031256 0.013107 0.003900 +& 1 0.031631 0.013404 0.003994 +& 1 0.032010 0.013707 0.004090 +& 1 0.032394 0.014017 0.004189 +& 1 0.032783 0.014334 0.004289 +& 1 0.033176 0.014658 0.004393 +& 1 0.033575 0.014988 0.004499 +& 1 0.033977 0.015326 0.004607 +& 1 0.034385 0.015671 0.004718 +& 1 0.034798 0.016024 0.004832 +& 1 0.035215 0.016384 0.004948 +& 1 0.035638 0.016752 0.005067 +& 1 0.036066 0.017129 0.005189 +& 1 0.036498 0.017513 0.005314 +& 1 0.036936 0.017905 0.005442 +& 1 0.037380 0.018306 0.005574 +& 1 0.037828 0.018715 0.005708 +& 1 0.038282 0.019134 0.005845 +& 1 0.038741 0.019561 0.005986 +& 1 0.039206 0.019997 0.006130 +& 1 0.039677 0.020443 0.006278 +& 1 0.040153 0.020898 0.006429 +& 1 0.040635 0.021363 0.006584 +& 1 0.041122 0.021837 0.006742 +& 1 0.041616 0.022322 0.006904 +& 1 0.042115 0.022817 0.007071 +& 1 0.042621 0.023323 0.007241 +& 1 0.043132 0.023839 0.007415 +& 1 0.043650 0.024366 0.007593 +& 1 0.044174 0.024904 0.007776 +& 1 0.044704 0.025453 0.007963 +& 1 0.045240 0.026014 0.008155 +& 1 0.045783 0.026586 0.008351 +& 1 0.046332 0.027171 0.008552 +& 1 0.046888 0.027768 0.008758 +& 1 0.047451 0.028377 0.008968 +& 1 0.048020 0.028999 0.009184 +& 1 0.048597 0.029633 0.009405 +& 1 0.049180 0.030281 0.009631 +& 1 0.049770 0.030942 0.009862 +& 1 0.050367 0.031617 0.010099 +& 1 0.050972 0.032306 0.010342 +& 1 0.051583 0.033008 0.010591 +& 1 0.052202 0.033725 0.010845 +& 1 0.052829 0.034457 0.011106 +& 1 0.053463 0.035204 0.011372 +& 1 0.054104 0.035966 0.011646 +& 1 0.054753 0.036743 0.011925 +& 1 0.055410 0.037536 0.012212 +& 1 0.056075 0.038346 0.012505 +& 1 0.056748 0.039171 0.012805 +& 1 0.057429 0.040013 0.013113 +& 1 0.058118 0.040872 0.013427 +& 1 0.058816 0.041748 0.013750 +& 1 0.059522 0.042642 0.014079 +& 1 0.060236 0.043554 0.014417 +& 1 0.060959 0.044483 0.014763 +& 1 0.061690 0.045431 0.015117 +& 1 0.062430 0.046398 0.015480 +& 1 0.063180 0.047384 0.015851 +& 1 0.063938 0.048389 0.016231 +& 1 0.064705 0.049415 0.016620 +& 1 0.065482 0.050460 0.017018 +& 1 0.066267 0.051525 0.017426 +& 1 0.067063 0.052612 0.017843 +& 1 0.067867 0.053719 0.018271 +& 1 0.068682 0.054848 0.018708 +& 1 0.069506 0.055998 0.019156 +& 1 0.070340 0.057171 0.019614 +& 1 0.071184 0.058366 0.020084 +& 1 0.072038 0.059585 0.020564 +& 1 0.072903 0.060826 0.021056 +& 1 0.073777 0.062091 0.021560 +& 1 0.074663 0.063380 0.022075 +& 1 0.075559 0.064694 0.022603 +& 1 0.076465 0.066032 0.023143 +& 1 0.077383 0.067395 0.023696 +& 1 0.078312 0.068784 0.024262 +& 1 0.079251 0.070199 0.024841 +& 1 0.080202 0.071640 0.025434 +& 1 0.081165 0.073108 0.026041 +& 1 0.082139 0.074603 0.026663 +& 1 0.083125 0.076125 0.027299 +& 1 0.084122 0.077676 0.027950 +& 1 0.085131 0.079254 0.028616 +& 1 0.086153 0.080862 0.029298 +& 1 0.087187 0.082499 0.029996 +& 1 0.088233 0.084165 0.030710 +& 1 0.089292 0.085861 0.031442 +& 1 0.090363 0.087588 0.032190 +& 1 0.091448 0.089345 0.032956 +& 1 0.092545 0.091134 0.033740 +& 1 0.093656 0.092954 0.034542 +& 1 0.094780 0.094807 0.035363 +& 1 0.095917 0.096692 0.036203 +& 1 0.097068 0.098610 0.037062 +& 1 0.098233 0.100562 0.037942 +& 1 0.099412 0.102547 0.038843 +& 1 0.100604 0.104567 0.039764 +& 1 0.101812 0.106621 0.040706 +& 1 0.103033 0.108711 0.041671 +& 1 0.104270 0.110836 0.042658 +& 1 0.105521 0.112997 0.043668 +& 1 0.106787 0.115195 0.044702 +& 1 0.108069 0.117429 0.045759 +& 1 0.109366 0.119701 0.046841 +& 1 0.110678 0.122011 0.047947 +& 1 0.112006 0.124359 0.049080 +& 1 0.113350 0.126745 0.050238 +& 1 0.114710 0.129170 0.051423 +& 1 0.116087 0.131635 0.052636 +& 1 0.117480 0.134140 0.053876 +& 1 0.118890 0.136685 0.055145 +& 1 0.120316 0.139271 0.056443 +& 1 0.121760 0.141898 0.057770 +& 1 0.123221 0.144566 0.059128 +& 1 0.124700 0.147276 0.060517 +& 1 0.126196 0.150029 0.061938 +& 1 0.127711 0.152824 0.063391 +& 1 0.129243 0.155663 0.064877 +& 1 0.130794 0.158545 0.066396 +& 1 0.132364 0.161470 0.067951 +& 1 0.133952 0.164440 0.069540 +& 1 0.135560 0.167455 0.071165 +& 1 0.137186 0.170514 0.072827 +& 1 0.138832 0.173619 0.074527 +& 1 0.140498 0.176770 0.076264 +& 1 0.142184 0.179966 0.078041 +& 1 0.143891 0.183209 0.079857 +& 1 0.145617 0.186498 0.081714 +& 1 0.147365 0.189835 0.083613 +& 1 0.149133 0.193218 0.085553 +& 1 0.150923 0.196649 0.087537 +& 1 0.152734 0.200128 0.089565 +& 1 0.154567 0.203654 0.091638 +& 1 0.156421 0.207229 0.093756 +& 1 0.158298 0.210852 0.095921 +& 1 0.160198 0.214524 0.098134 +& 1 0.162120 0.218245 0.100395 +& 1 0.164066 0.222015 0.102705 +& 1 0.166035 0.225834 0.105066 +& 1 0.168027 0.229703 0.107479 +& 1 0.170043 0.233621 0.109944 +& 1 0.172084 0.237588 0.112462 +& 1 0.174149 0.241606 0.115034 +& 1 0.176239 0.245673 0.117662 +& 1 0.178354 0.249790 0.120346 +& 1 0.180494 0.253958 0.123087 +& 1 0.182660 0.258175 0.125887 +& 1 0.184852 0.262442 0.128746 +& 1 0.187070 0.266759 0.131666 +& 1 0.189315 0.271126 0.134647 +& 1 0.191587 0.275542 0.137691 +& 1 0.193886 0.280009 0.140799 +& 1 0.196212 0.284525 0.143972 +& 1 0.198567 0.289091 0.147210 +& 1 0.200950 0.293706 0.150516 +& 1 0.203361 0.298370 0.153890 +& 1 0.205801 0.303083 0.157333 +& 1 0.208271 0.307845 0.160846 +& 1 0.210770 0.312655 0.164431 +& 1 0.213299 0.317513 0.168088 +& 1 0.215859 0.322419 0.171819 +& 1 0.218449 0.327373 0.175625 +& 1 0.221071 0.332373 0.179507 +& 1 0.223723 0.337420 0.183466 +& 1 0.226408 0.342514 0.187503 +& 1 0.229125 0.347653 0.191620 +& 1 0.231875 0.352837 0.195816 +& 1 0.234657 0.358065 0.200095 +& 1 0.237473 0.363338 0.204455 +& 1 0.240323 0.368654 0.208900 +& 1 0.243207 0.374013 0.213428 +& 1 0.246125 0.379414 0.218043 +& 1 0.249078 0.384856 0.222744 +& 1 0.252067 0.390339 0.227533 +& 1 0.255092 0.395861 0.232410 +& 1 0.258153 0.401423 0.237377 +& 1 0.261251 0.407022 0.242435 +& 1 0.264386 0.412658 0.247583 +& 1 0.267559 0.418331 0.252825 +& 1 0.270770 0.424038 0.258159 +& 1 0.274019 0.429780 0.263587 +& 1 0.277307 0.435555 0.269109 +& 1 0.280635 0.441361 0.274727 +& 1 0.284002 0.447198 0.280441 +& 1 0.287410 0.453065 0.286252 +& 1 0.290859 0.458960 0.292159 +& 1 0.294350 0.464881 0.298165 +& 1 0.297882 0.470829 0.304268 +& 1 0.301456 0.476801 0.310470 +& 1 0.305074 0.482795 0.316770 +& 1 0.308735 0.488811 0.323170 +& 1 0.312440 0.494847 0.329669 +& 1 0.316189 0.500901 0.336267 +& 1 0.319983 0.506971 0.342964 +& 1 0.323823 0.513057 0.349761 +& 1 0.327709 0.519156 0.356656 +& 1 0.331641 0.525267 0.363651 +& 1 0.335621 0.531388 0.370743 +& 1 0.339648 0.537517 0.377934 +& 1 0.343724 0.543652 0.385222 +& 1 0.347849 0.549792 0.392606 +& 1 0.352023 0.555934 0.400086 +& 1 0.356247 0.562076 0.407661 +& 1 0.360522 0.568217 0.415329 +& 1 0.364849 0.574354 0.423090 +& 1 0.369227 0.580486 0.430942 +& 1 0.373657 0.586609 0.438883 +& 1 0.378141 0.592723 0.446912 +& 1 0.382679 0.598824 0.455026 +& 1 0.387271 0.604911 0.463225 +& 1 0.391918 0.610980 0.471505 +& 1 0.396621 0.617031 0.479865 +& 1 0.401381 0.623060 0.488301 +& 1 0.406197 0.629065 0.496811 +& 1 0.411072 0.635043 0.505392 +& 1 0.416005 0.640992 0.514041 +& 1 0.420997 0.646910 0.522754 +& 1 0.426049 0.652793 0.531528 +& 1 0.431161 0.658640 0.540360 +& 1 0.436335 0.664448 0.549244 +& 1 0.441571 0.670213 0.558177 +& 1 0.446870 0.675934 0.567154 +& 1 0.452233 0.681607 0.576171 +& 1 0.457659 0.687231 0.585223 +& 1 0.463151 0.692801 0.594304 +& 1 0.468709 0.698315 0.603408 +& 1 0.474334 0.703771 0.612532 +& 1 0.480026 0.709166 0.621667 +& 1 0.485786 0.714496 0.630808 +& 1 0.491615 0.719760 0.639949 +& 1 0.497515 0.724953 0.649083 +& 1 0.503485 0.730074 0.658203 +& 1 0.509527 0.735119 0.667302 +& 1 0.515641 0.740086 0.676372 +& 1 0.521829 0.744971 0.685405 +& 1 0.528091 0.749771 0.694394 +& 1 0.534428 0.754485 0.703330 +& 1 0.540841 0.759108 0.712205 +& 1 0.547331 0.763639 0.721010 +& 1 0.553899 0.768073 0.729736 +& 1 0.560546 0.772409 0.738375 +& 1 0.567272 0.776644 0.746917 +& 1 0.574080 0.780774 0.755352 +& 1 0.580969 0.784798 0.763670 +& 1 0.587940 0.788712 0.771863 +& 1 0.594995 0.792513 0.779919 +& 1 0.602135 0.796199 0.787830 +& 1 0.609361 0.799768 0.795583 +& 1 0.616673 0.803216 0.803171 +& 1 0.624073 0.806541 0.810581 +& 1 0.631562 0.809742 0.817803 +& 1 0.639141 0.812814 0.824828 +& 1 0.646811 0.815756 0.831644 +& 1 0.654572 0.818566 0.838242 +& 1 0.662427 0.821241 0.844610 +& 1 0.670376 0.823779 0.850739 +& 1 0.678421 0.826178 0.856619 +& 1 0.686562 0.828436 0.862239 +& 1 0.694801 0.830551 0.867590 +& 1 0.703138 0.832521 0.872663 +& 1 0.711576 0.834343 0.877448 +& 1 0.720115 0.836018 0.881936 +& 1 0.728756 0.837542 0.886120 +& 1 0.737501 0.838914 0.889990 +& 1 0.746351 0.840132 0.893539 +& 1 0.755308 0.841196 0.896759 +& 1 0.764371 0.842104 0.899645 +& 1 0.773544 0.842854 0.902190 +& 1 0.782826 0.843446 0.904389 +& 1 0.792220 0.843878 0.906236 +& 1 0.801727 0.844150 0.907729 +& 1 0.811348 0.844260 0.908862 +& 1 0.821084 0.844209 0.909634 +& 1 0.830937 0.843995 0.910044 +& 1 0.840908 0.843618 0.910089 +& 1 0.850999 0.843077 0.909770 +& 1 0.861211 0.842372 0.909089 +& 1 0.871545 0.841503 0.908045 +& 1 0.882004 0.840470 0.906644 +& 1 0.892588 0.839273 0.904888 +& 1 0.903299 0.837911 0.902781 +& 1 0.914139 0.836386 0.900331 +& 1 0.925108 0.834697 0.897542 +& 1 0.936210 0.832845 0.894424 +& 1 0.947444 0.830830 0.890985 +& 1 0.958813 0.828653 0.887234 +& 1 0.970319 0.826315 0.883182 +& 1 0.981963 0.823817 0.878840 +& 1 0.993747 0.821159 0.874221 +& 1 1.005672 0.818343 0.869337 +& 1 1.017740 0.815370 0.864203 +& 1 1.029952 0.812240 0.858833 +& 1 1.042312 0.808956 0.853241 +& 1 1.054820 0.805519 0.847444 +& 1 1.067478 0.801930 0.841456 +& 1 1.080287 0.798191 0.835295 +& 1 1.093251 0.794304 0.828976 +& 1 1.106370 0.790270 0.822516 +& 1 1.119646 0.786092 0.815931 +& 1 1.133082 0.781771 0.809236 +& 1 1.146679 0.777309 0.802448 +& 1 1.160439 0.772709 0.795581 +& 1 1.174364 0.767972 0.788650 +& 1 1.188457 0.763102 0.781669 +& 1 1.202718 0.758100 0.774651 +& 1 1.217151 0.752968 0.767607 +& 1 1.231757 0.747710 0.760548 +& 1 1.246538 0.742328 0.753483 +& 1 1.261496 0.736824 0.746420 +& 1 1.276634 0.731201 0.739367 +& 1 1.291954 0.725462 0.732327 +& 1 1.307457 0.719610 0.725304 +& 1 1.323147 0.713647 0.718301 +& 1 1.339024 0.707576 0.711317 +& 1 1.355093 0.701401 0.704351 +& 1 1.371354 0.695124 0.697401 +& 1 1.387810 0.688748 0.690462 +& 1 1.404464 0.682276 0.683530 +& 1 1.421317 0.675712 0.676598 +& 1 1.438373 0.669058 0.669659 +& 1 1.455634 0.662318 0.662706 +& 1 1.473101 0.655495 0.655729 +& 1 1.490778 0.648592 0.648722 +& 1 1.508668 0.641612 0.641677 +& 1 1.526772 0.634559 0.634587 +& 1 1.545093 0.627436 0.627445 +& 1 1.563634 0.620245 0.620248 +& 1 1.582398 0.612991 0.612992 +& 1 1.601386 0.605677 0.605678 +& 1 1.620603 0.598306 0.598307 +& 1 1.640050 0.590882 0.590882 +& 1 1.659731 0.583407 0.583407 +& 1 1.679648 0.575885 0.575886 +& 1 1.699804 0.568320 0.568320 +& 1 1.720201 0.560714 0.560715 +& 1 1.740844 0.553072 0.553073 +& 1 1.761734 0.545396 0.545397 +& 1 1.782874 0.537691 0.537691 +& 1 1.804269 0.529958 0.529958 +& 1 1.825920 0.522202 0.522202 +& 1 1.847831 0.514425 0.514425 +& 1 1.870005 0.506632 0.506632 +& 1 1.892445 0.498825 0.498825 +& 1 1.915155 0.491007 0.491008 +& 1 1.938136 0.483183 0.483183 +& 1 1.961394 0.475355 0.475355 +& 1 1.984931 0.467526 0.467526 +& 1 2.008750 0.459699 0.459700 +& 1 2.032855 0.451879 0.451879 +& 1 2.057249 0.444067 0.444067 +& 1 2.081936 0.436267 0.436267 +& 1 2.106920 0.428482 0.428482 +& 1 2.132203 0.420715 0.420715 +& 1 2.157789 0.412969 0.412969 +& 1 2.183682 0.405247 0.405247 +& 1 2.209887 0.397552 0.397552 +& 1 2.236405 0.389887 0.389887 +& 1 2.263242 0.382254 0.382254 +& 1 2.290401 0.374658 0.374657 +& 1 2.317886 0.367099 0.367099 +& 1 2.345700 0.359582 0.359581 +& 1 2.373849 0.352108 0.352108 +& 1 2.402335 0.344681 0.344680 +& 1 2.431163 0.337302 0.337302 +& 1 2.460337 0.329975 0.329975 +& 1 2.489861 0.322703 0.322702 +& 1 2.519739 0.315486 0.315486 +& 1 2.549976 0.308329 0.308329 +& 1 2.580576 0.301233 0.301232 +& 1 2.611543 0.294200 0.294199 +& 1 2.642881 0.287233 0.287232 +& 1 2.674596 0.280333 0.280333 +& 1 2.706691 0.273504 0.273504 +& 1 2.739171 0.266747 0.266746 +& 1 2.772042 0.260063 0.260063 +& 1 2.805306 0.253456 0.253455 +& 1 2.838970 0.246926 0.246925 +& 1 2.873037 0.240475 0.240474 +& 1 2.907514 0.234105 0.234105 +& 1 2.942404 0.227819 0.227818 +& 1 2.977713 0.221616 0.221616 +& 1 3.013445 0.215500 0.215499 +& 1 3.049607 0.209470 0.209470 +& 1 3.086202 0.203529 0.203528 +& 1 3.123236 0.197678 0.197677 +& 1 3.160715 0.191917 0.191917 +& 1 3.198644 0.186249 0.186248 +& 1 3.237028 0.180674 0.180673 +& 1 3.275872 0.175192 0.175192 +& 1 3.315182 0.169806 0.169805 +& 1 3.354965 0.164515 0.164515 +& 1 3.395224 0.159321 0.159320 +& 1 3.435967 0.154223 0.154223 +& 1 3.477198 0.149223 0.149223 +& 1 3.518925 0.144321 0.144321 +& 1 3.561152 0.139518 0.139517 +& 1 3.603886 0.134813 0.134812 +& 1 3.647132 0.130207 0.130206 +& 1 3.690898 0.125700 0.125699 +& 1 3.735189 0.121292 0.121291 +& 1 3.780011 0.116983 0.116982 +& 1 3.825371 0.112773 0.112772 +& 1 3.871276 0.108662 0.108661 +& 1 3.917731 0.104649 0.104649 +& 1 3.964744 0.100735 0.100735 + + +n= 1 2 l= 0, projecctor pseudo wave functions, well or 2nd valence + +@ 0 0.009945 0.015231 -0.009273 +@ 0 0.010064 0.015413 -0.009385 +@ 0 0.010185 0.015598 -0.009497 +@ 0 0.010307 0.015785 -0.009611 +@ 0 0.010431 0.015975 -0.009727 +@ 0 0.010556 0.016167 -0.009843 +@ 0 0.010683 0.016361 -0.009961 +@ 0 0.010811 0.016557 -0.010081 +@ 0 0.010941 0.016756 -0.010202 +@ 0 0.011072 0.016957 -0.010324 +@ 0 0.011205 0.017160 -0.010448 +@ 0 0.011339 0.017366 -0.010574 +@ 0 0.011475 0.017574 -0.010700 +@ 0 0.011613 0.017785 -0.010829 +@ 0 0.011752 0.017999 -0.010959 +@ 0 0.011893 0.018215 -0.011090 +@ 0 0.012036 0.018433 -0.011223 +@ 0 0.012181 0.018654 -0.011358 +@ 0 0.012327 0.018878 -0.011494 +@ 0 0.012475 0.019105 -0.011632 +@ 0 0.012624 0.019334 -0.011772 +@ 0 0.012776 0.019566 -0.011913 +@ 0 0.012929 0.019801 -0.012056 +@ 0 0.013084 0.020038 -0.012201 +@ 0 0.013241 0.020279 -0.012347 +@ 0 0.013400 0.020522 -0.012495 +@ 0 0.013561 0.020768 -0.012645 +@ 0 0.013724 0.021017 -0.012797 +@ 0 0.013888 0.021270 -0.012950 +@ 0 0.014055 0.021525 -0.013106 +@ 0 0.014224 0.021783 -0.013263 +@ 0 0.014394 0.022044 -0.013422 +@ 0 0.014567 0.022309 -0.013583 +@ 0 0.014742 0.022576 -0.013746 +@ 0 0.014919 0.022847 -0.013911 +@ 0 0.015098 0.023122 -0.014078 +@ 0 0.015279 0.023399 -0.014247 +@ 0 0.015462 0.023680 -0.014418 +@ 0 0.015648 0.023964 -0.014590 +@ 0 0.015836 0.024251 -0.014766 +@ 0 0.016026 0.024542 -0.014943 +@ 0 0.016218 0.024837 -0.015122 +@ 0 0.016413 0.025135 -0.015303 +@ 0 0.016610 0.025436 -0.015487 +@ 0 0.016809 0.025741 -0.015673 +@ 0 0.017011 0.026050 -0.015861 +@ 0 0.017215 0.026363 -0.016051 +@ 0 0.017421 0.026679 -0.016244 +@ 0 0.017630 0.026999 -0.016438 +@ 0 0.017842 0.027323 -0.016636 +@ 0 0.018056 0.027651 -0.016835 +@ 0 0.018273 0.027983 -0.017037 +@ 0 0.018492 0.028318 -0.017242 +@ 0 0.018714 0.028658 -0.017448 +@ 0 0.018938 0.029002 -0.017658 +@ 0 0.019166 0.029350 -0.017870 +@ 0 0.019396 0.029702 -0.018084 +@ 0 0.019628 0.030058 -0.018301 +@ 0 0.019864 0.030419 -0.018520 +@ 0 0.020102 0.030784 -0.018742 +@ 0 0.020344 0.031153 -0.018967 +@ 0 0.020588 0.031527 -0.019195 +@ 0 0.020835 0.031905 -0.019425 +@ 0 0.021085 0.032288 -0.019658 +@ 0 0.021338 0.032675 -0.019894 +@ 0 0.021594 0.033067 -0.020132 +@ 0 0.021853 0.033464 -0.020374 +@ 0 0.022115 0.033865 -0.020618 +@ 0 0.022381 0.034272 -0.020866 +@ 0 0.022649 0.034683 -0.021116 +@ 0 0.022921 0.035099 -0.021369 +@ 0 0.023196 0.035520 -0.021625 +@ 0 0.023474 0.035946 -0.021885 +@ 0 0.023756 0.036377 -0.022147 +@ 0 0.024041 0.036813 -0.022413 +@ 0 0.024330 0.037255 -0.022682 +@ 0 0.024622 0.037702 -0.022954 +@ 0 0.024917 0.038154 -0.023229 +@ 0 0.025216 0.038612 -0.023508 +@ 0 0.025519 0.039075 -0.023789 +@ 0 0.025825 0.039544 -0.024075 +@ 0 0.026135 0.040018 -0.024363 +@ 0 0.026448 0.040498 -0.024656 +@ 0 0.026766 0.040984 -0.024951 +@ 0 0.027087 0.041475 -0.025250 +@ 0 0.027412 0.041973 -0.025553 +@ 0 0.027741 0.042476 -0.025860 +@ 0 0.028074 0.042986 -0.026170 +@ 0 0.028411 0.043501 -0.026484 +@ 0 0.028752 0.044023 -0.026801 +@ 0 0.029097 0.044551 -0.027122 +@ 0 0.029446 0.045085 -0.027448 +@ 0 0.029799 0.045626 -0.027777 +@ 0 0.030157 0.046173 -0.028110 +@ 0 0.030519 0.046727 -0.028447 +@ 0 0.030885 0.047287 -0.028788 +@ 0 0.031256 0.047854 -0.029133 +@ 0 0.031631 0.048428 -0.029482 +@ 0 0.032010 0.049009 -0.029836 +@ 0 0.032394 0.049597 -0.030193 +@ 0 0.032783 0.050192 -0.030555 +@ 0 0.033176 0.050793 -0.030922 +@ 0 0.033575 0.051402 -0.031292 +@ 0 0.033977 0.052019 -0.031667 +@ 0 0.034385 0.052643 -0.032047 +@ 0 0.034798 0.053274 -0.032431 +@ 0 0.035215 0.053913 -0.032820 +@ 0 0.035638 0.054559 -0.033213 +@ 0 0.036066 0.055213 -0.033611 +@ 0 0.036498 0.055875 -0.034014 +@ 0 0.036936 0.056545 -0.034421 +@ 0 0.037380 0.057223 -0.034834 +@ 0 0.037828 0.057909 -0.035251 +@ 0 0.038282 0.058603 -0.035674 +@ 0 0.038741 0.059306 -0.036101 +@ 0 0.039206 0.060017 -0.036534 +@ 0 0.039677 0.060736 -0.036972 +@ 0 0.040153 0.061464 -0.037415 +@ 0 0.040635 0.062201 -0.037863 +@ 0 0.041122 0.062947 -0.038316 +@ 0 0.041616 0.063701 -0.038775 +@ 0 0.042115 0.064465 -0.039240 +@ 0 0.042621 0.065237 -0.039710 +@ 0 0.043132 0.066019 -0.040186 +@ 0 0.043650 0.066811 -0.040667 +@ 0 0.044174 0.067611 -0.041154 +@ 0 0.044704 0.068422 -0.041647 +@ 0 0.045240 0.069242 -0.042146 +@ 0 0.045783 0.070071 -0.042650 +@ 0 0.046332 0.070911 -0.043161 +@ 0 0.046888 0.071761 -0.043678 +@ 0 0.047451 0.072621 -0.044201 +@ 0 0.048020 0.073491 -0.044730 +@ 0 0.048597 0.074371 -0.045266 +@ 0 0.049180 0.075262 -0.045808 +@ 0 0.049770 0.076164 -0.046356 +@ 0 0.050367 0.077077 -0.046911 +@ 0 0.050972 0.078000 -0.047472 +@ 0 0.051583 0.078934 -0.048041 +@ 0 0.052202 0.079880 -0.048615 +@ 0 0.052829 0.080837 -0.049197 +@ 0 0.053463 0.081805 -0.049786 +@ 0 0.054104 0.082785 -0.050382 +@ 0 0.054753 0.083776 -0.050985 +@ 0 0.055410 0.084780 -0.051595 +@ 0 0.056075 0.085795 -0.052212 +@ 0 0.056748 0.086822 -0.052836 +@ 0 0.057429 0.087862 -0.053468 +@ 0 0.058118 0.088914 -0.054108 +@ 0 0.058816 0.089979 -0.054755 +@ 0 0.059522 0.091056 -0.055410 +@ 0 0.060236 0.092146 -0.056072 +@ 0 0.060959 0.093249 -0.056743 +@ 0 0.061690 0.094365 -0.057421 +@ 0 0.062430 0.095495 -0.058107 +@ 0 0.063180 0.096638 -0.058802 +@ 0 0.063938 0.097794 -0.059505 +@ 0 0.064705 0.098965 -0.060216 +@ 0 0.065482 0.100149 -0.060936 +@ 0 0.066267 0.101347 -0.061664 +@ 0 0.067063 0.102560 -0.062400 +@ 0 0.067867 0.103787 -0.063146 +@ 0 0.068682 0.105029 -0.063900 +@ 0 0.069506 0.106285 -0.064663 +@ 0 0.070340 0.107556 -0.065435 +@ 0 0.071184 0.108843 -0.066217 +@ 0 0.072038 0.110144 -0.067007 +@ 0 0.072903 0.111462 -0.067807 +@ 0 0.073777 0.112794 -0.068616 +@ 0 0.074663 0.114143 -0.069435 +@ 0 0.075559 0.115508 -0.070264 +@ 0 0.076465 0.116888 -0.071102 +@ 0 0.077383 0.118286 -0.071950 +@ 0 0.078312 0.119699 -0.072808 +@ 0 0.079251 0.121130 -0.073677 +@ 0 0.080202 0.122577 -0.074555 +@ 0 0.081165 0.124042 -0.075444 +@ 0 0.082139 0.125524 -0.076343 +@ 0 0.083125 0.127023 -0.077253 +@ 0 0.084122 0.128541 -0.078174 +@ 0 0.085131 0.130076 -0.079105 +@ 0 0.086153 0.131629 -0.080048 +@ 0 0.087187 0.133201 -0.081001 +@ 0 0.088233 0.134791 -0.081965 +@ 0 0.089292 0.136400 -0.082941 +@ 0 0.090363 0.138028 -0.083928 +@ 0 0.091448 0.139675 -0.084927 +@ 0 0.092545 0.141342 -0.085938 +@ 0 0.093656 0.143029 -0.086960 +@ 0 0.094780 0.144735 -0.087994 +@ 0 0.095917 0.146461 -0.089040 +@ 0 0.097068 0.148208 -0.090099 +@ 0 0.098233 0.149975 -0.091170 +@ 0 0.099412 0.151763 -0.092253 +@ 0 0.100604 0.153572 -0.093349 +@ 0 0.101812 0.155402 -0.094457 +@ 0 0.103033 0.157254 -0.095579 +@ 0 0.104270 0.159128 -0.096713 +@ 0 0.105521 0.161023 -0.097861 +@ 0 0.106787 0.162941 -0.099022 +@ 0 0.108069 0.164881 -0.100196 +@ 0 0.109366 0.166844 -0.101384 +@ 0 0.110678 0.168830 -0.102586 +@ 0 0.112006 0.170839 -0.103802 +@ 0 0.113350 0.172872 -0.105031 +@ 0 0.114710 0.174928 -0.106275 +@ 0 0.116087 0.177009 -0.107533 +@ 0 0.117480 0.179113 -0.108805 +@ 0 0.118890 0.181243 -0.110092 +@ 0 0.120316 0.183397 -0.111394 +@ 0 0.121760 0.185576 -0.112711 +@ 0 0.123221 0.187780 -0.114043 +@ 0 0.124700 0.190010 -0.115390 +@ 0 0.126196 0.192266 -0.116752 +@ 0 0.127711 0.194548 -0.118130 +@ 0 0.129243 0.196857 -0.119524 +@ 0 0.130794 0.199192 -0.120933 +@ 0 0.132364 0.201555 -0.122358 +@ 0 0.133952 0.203944 -0.123800 +@ 0 0.135560 0.206361 -0.125258 +@ 0 0.137186 0.208807 -0.126732 +@ 0 0.138832 0.211280 -0.128223 +@ 0 0.140498 0.213782 -0.129730 +@ 0 0.142184 0.216312 -0.131255 +@ 0 0.143891 0.218872 -0.132796 +@ 0 0.145617 0.221461 -0.134355 +@ 0 0.147365 0.224079 -0.135932 +@ 0 0.149133 0.226728 -0.137525 +@ 0 0.150923 0.229407 -0.139137 +@ 0 0.152734 0.232116 -0.140766 +@ 0 0.154567 0.234857 -0.142414 +@ 0 0.156421 0.237628 -0.144079 +@ 0 0.158298 0.240431 -0.145764 +@ 0 0.160198 0.243266 -0.147466 +@ 0 0.162120 0.246133 -0.149187 +@ 0 0.164066 0.249033 -0.150927 +@ 0 0.166035 0.251965 -0.152686 +@ 0 0.168027 0.254930 -0.154464 +@ 0 0.170043 0.257929 -0.156262 +@ 0 0.172084 0.260962 -0.158079 +@ 0 0.174149 0.264028 -0.159915 +@ 0 0.176239 0.267129 -0.161771 +@ 0 0.178354 0.270264 -0.163648 +@ 0 0.180494 0.273435 -0.165544 +@ 0 0.182660 0.276640 -0.167460 +@ 0 0.184852 0.279882 -0.169397 +@ 0 0.187070 0.283159 -0.171354 +@ 0 0.189315 0.286473 -0.173332 +@ 0 0.191587 0.289823 -0.175330 +@ 0 0.193886 0.293210 -0.177349 +@ 0 0.196212 0.296634 -0.179390 +@ 0 0.198567 0.300096 -0.181451 +@ 0 0.200950 0.303595 -0.183534 +@ 0 0.203361 0.307133 -0.185638 +@ 0 0.205801 0.310709 -0.187763 +@ 0 0.208271 0.314324 -0.189910 +@ 0 0.210770 0.317978 -0.192079 +@ 0 0.213299 0.321671 -0.194269 +@ 0 0.215859 0.325404 -0.196482 +@ 0 0.218449 0.329177 -0.198716 +@ 0 0.221071 0.332990 -0.200973 +@ 0 0.223723 0.336843 -0.203251 +@ 0 0.226408 0.340737 -0.205552 +@ 0 0.229125 0.344673 -0.207875 +@ 0 0.231875 0.348650 -0.210220 +@ 0 0.234657 0.352668 -0.212588 +@ 0 0.237473 0.356728 -0.214978 +@ 0 0.240323 0.360831 -0.217390 +@ 0 0.243207 0.364975 -0.219825 +@ 0 0.246125 0.369163 -0.222282 +@ 0 0.249078 0.373393 -0.224762 +@ 0 0.252067 0.377666 -0.227264 +@ 0 0.255092 0.381983 -0.229789 +@ 0 0.258153 0.386343 -0.232336 +@ 0 0.261251 0.390746 -0.234905 +@ 0 0.264386 0.395194 -0.237497 +@ 0 0.267559 0.399685 -0.240110 +@ 0 0.270770 0.404221 -0.242746 +@ 0 0.274019 0.408801 -0.245404 +@ 0 0.277307 0.413425 -0.248084 +@ 0 0.280635 0.418094 -0.250785 +@ 0 0.284002 0.422808 -0.253508 +@ 0 0.287410 0.427566 -0.256252 +@ 0 0.290859 0.432370 -0.259017 +@ 0 0.294350 0.437218 -0.261803 +@ 0 0.297882 0.442111 -0.264610 +@ 0 0.301456 0.447048 -0.267437 +@ 0 0.305074 0.452031 -0.270285 +@ 0 0.308735 0.457059 -0.273152 +@ 0 0.312440 0.462131 -0.276039 +@ 0 0.316189 0.467248 -0.278944 +@ 0 0.319983 0.472410 -0.281869 +@ 0 0.323823 0.477616 -0.284811 +@ 0 0.327709 0.482867 -0.287771 +@ 0 0.331641 0.488161 -0.290749 +@ 0 0.335621 0.493499 -0.293743 +@ 0 0.339648 0.498881 -0.296753 +@ 0 0.343724 0.504307 -0.299779 +@ 0 0.347849 0.509775 -0.302820 +@ 0 0.352023 0.515286 -0.305875 +@ 0 0.356247 0.520839 -0.308943 +@ 0 0.360522 0.526434 -0.312024 +@ 0 0.364849 0.532070 -0.315116 +@ 0 0.369227 0.537747 -0.318220 +@ 0 0.373657 0.543464 -0.321333 +@ 0 0.378141 0.549220 -0.324456 +@ 0 0.382679 0.555015 -0.327586 +@ 0 0.387271 0.560849 -0.330723 +@ 0 0.391918 0.566719 -0.333866 +@ 0 0.396621 0.572626 -0.337013 +@ 0 0.401381 0.578569 -0.340163 +@ 0 0.406197 0.584546 -0.343315 +@ 0 0.411072 0.590556 -0.346467 +@ 0 0.416005 0.596599 -0.349618 +@ 0 0.420997 0.602673 -0.352766 +@ 0 0.426049 0.608777 -0.355910 +@ 0 0.431161 0.614909 -0.359047 +@ 0 0.436335 0.621069 -0.362177 +@ 0 0.441571 0.627254 -0.365296 +@ 0 0.446870 0.633463 -0.368403 +@ 0 0.452233 0.639695 -0.371496 +@ 0 0.457659 0.645947 -0.374573 +@ 0 0.463151 0.652219 -0.377631 +@ 0 0.468709 0.658507 -0.380668 +@ 0 0.474334 0.664809 -0.383681 +@ 0 0.480026 0.671125 -0.386668 +@ 0 0.485786 0.677451 -0.389625 +@ 0 0.491615 0.683785 -0.392551 +@ 0 0.497515 0.690124 -0.395442 +@ 0 0.503485 0.696466 -0.398295 +@ 0 0.509527 0.702809 -0.401107 +@ 0 0.515641 0.709148 -0.403874 +@ 0 0.521829 0.715483 -0.406593 +@ 0 0.528091 0.721808 -0.409260 +@ 0 0.534428 0.728122 -0.411871 +@ 0 0.540841 0.734420 -0.414423 +@ 0 0.547331 0.740699 -0.416911 +@ 0 0.553899 0.746956 -0.419332 +@ 0 0.560546 0.753187 -0.421680 +@ 0 0.567272 0.759387 -0.423951 +@ 0 0.574080 0.765553 -0.426141 +@ 0 0.580969 0.771681 -0.428245 +@ 0 0.587940 0.777766 -0.430257 +@ 0 0.594995 0.783803 -0.432173 +@ 0 0.602135 0.789789 -0.433987 +@ 0 0.609361 0.795717 -0.435693 +@ 0 0.616673 0.801584 -0.437287 +@ 0 0.624073 0.807383 -0.438762 +@ 0 0.631562 0.813110 -0.440112 +@ 0 0.639141 0.818760 -0.441332 +@ 0 0.646811 0.824326 -0.442414 +@ 0 0.654572 0.829803 -0.443353 +@ 0 0.662427 0.835184 -0.444142 +@ 0 0.670376 0.840465 -0.444774 +@ 0 0.678421 0.845638 -0.445242 +@ 0 0.686562 0.850698 -0.445540 +@ 0 0.694801 0.855637 -0.445660 +@ 0 0.703138 0.860450 -0.445594 +@ 0 0.711576 0.865129 -0.445337 +@ 0 0.720115 0.869668 -0.444879 +@ 0 0.728756 0.874060 -0.444214 +@ 0 0.737501 0.878298 -0.443334 +@ 0 0.746351 0.882374 -0.442231 +@ 0 0.755308 0.886282 -0.440897 +@ 0 0.764371 0.890015 -0.439325 +@ 0 0.773544 0.893564 -0.437507 +@ 0 0.782826 0.896923 -0.435434 +@ 0 0.792220 0.900085 -0.433100 +@ 0 0.801727 0.903041 -0.430496 +@ 0 0.811348 0.905785 -0.427615 +@ 0 0.821084 0.908309 -0.424448 +@ 0 0.830937 0.910607 -0.420988 +@ 0 0.840908 0.912670 -0.417229 +@ 0 0.850999 0.914493 -0.413161 +@ 0 0.861211 0.916067 -0.408779 +@ 0 0.871545 0.917386 -0.404075 +@ 0 0.882004 0.918444 -0.399043 +@ 0 0.892588 0.919233 -0.393676 +@ 0 0.903299 0.919749 -0.387967 +@ 0 0.914139 0.919984 -0.381912 +@ 0 0.925108 0.919933 -0.375503 +@ 0 0.936210 0.919590 -0.368737 +@ 0 0.947444 0.918951 -0.361608 +@ 0 0.958813 0.918010 -0.354112 +@ 0 0.970319 0.916764 -0.346245 +@ 0 0.981963 0.915208 -0.338003 +@ 0 0.993747 0.913339 -0.329385 +@ 0 1.005672 0.911153 -0.320386 +@ 0 1.017740 0.908648 -0.311006 +@ 0 1.029952 0.905822 -0.301243 +@ 0 1.042312 0.902673 -0.291097 +@ 0 1.054820 0.899201 -0.280568 +@ 0 1.067478 0.895405 -0.269656 +@ 0 1.080287 0.891284 -0.258363 +@ 0 1.093251 0.886841 -0.246691 +@ 0 1.106370 0.882076 -0.234642 +@ 0 1.119646 0.876991 -0.222221 +@ 0 1.133082 0.871590 -0.209431 +@ 0 1.146679 0.865874 -0.196277 +@ 0 1.160439 0.859849 -0.182765 +@ 0 1.174364 0.853519 -0.168901 +@ 0 1.188457 0.846890 -0.154692 +@ 0 1.202718 0.839966 -0.140146 +@ 0 1.217151 0.832756 -0.125271 +@ 0 1.231757 0.825265 -0.110077 +@ 0 1.246538 0.817502 -0.094573 +@ 0 1.261496 0.809475 -0.078769 +@ 0 1.276634 0.801193 -0.062677 +@ 0 1.291954 0.792665 -0.046308 +@ 0 1.307457 0.783902 -0.029673 +@ 0 1.323147 0.774913 -0.012787 +@ 0 1.339024 0.765709 0.004338 +@ 0 1.355093 0.756301 0.021688 +@ 0 1.371354 0.746700 0.039250 +@ 0 1.387810 0.736919 0.057007 +@ 0 1.404464 0.726969 0.074944 +@ 0 1.421317 0.716861 0.093047 +@ 0 1.438373 0.706609 0.111298 +@ 0 1.455634 0.696223 0.129682 +@ 0 1.473101 0.685716 0.148180 +@ 0 1.490778 0.675100 0.166776 +@ 0 1.508668 0.664386 0.185450 +@ 0 1.526772 0.653585 0.204186 +@ 0 1.545093 0.642710 0.222962 +@ 0 1.563634 0.631769 0.241761 +@ 0 1.582398 0.620773 0.260562 +@ 0 1.601386 0.609731 0.279345 +@ 0 1.620603 0.598652 0.298090 +@ 0 1.640050 0.587544 0.316774 +@ 0 1.659731 0.576413 0.335377 +@ 0 1.679648 0.565268 0.353876 +@ 0 1.699804 0.554118 0.372249 +@ 0 1.720201 0.542968 0.390470 +@ 0 1.740844 0.531826 0.408516 +@ 0 1.761734 0.520701 0.426362 +@ 0 1.782874 0.509599 0.443982 +@ 0 1.804269 0.498527 0.461350 +@ 0 1.825920 0.487492 0.478440 +@ 0 1.847831 0.476501 0.495223 +@ 0 1.870005 0.465561 0.511672 +@ 0 1.892445 0.454678 0.527758 +@ 0 1.915155 0.443859 0.543454 +@ 0 1.938136 0.433109 0.558729 +@ 0 1.961394 0.422436 0.573556 +@ 0 1.984931 0.411844 0.587904 +@ 0 2.008750 0.401340 0.601743 +@ 0 2.032855 0.390929 0.615046 +@ 0 2.057249 0.380616 0.627783 +@ 0 2.081936 0.370407 0.639925 +@ 0 2.106920 0.360306 0.651444 +@ 0 2.132203 0.350319 0.662313 +@ 0 2.157789 0.340449 0.672506 +@ 0 2.183682 0.330702 0.681996 +@ 0 2.209887 0.321082 0.690761 +@ 0 2.236405 0.311592 0.698776 +@ 0 2.263242 0.302237 0.706021 +@ 0 2.290401 0.293019 0.712476 +@ 0 2.317886 0.283943 0.718125 +@ 0 2.345700 0.275011 0.722953 +@ 0 2.373849 0.266226 0.726947 +@ 0 2.402335 0.257592 0.730096 +@ 0 2.431163 0.249110 0.732394 +@ 0 2.460337 0.240783 0.733837 +@ 0 2.489861 0.232613 0.734422 +@ 0 2.519739 0.224603 0.734152 +@ 0 2.549976 0.216753 0.733032 +@ 0 2.580576 0.209065 0.731068 +@ 0 2.611543 0.201540 0.728273 +@ 0 2.642881 0.194180 0.724660 +@ 0 2.674596 0.186986 0.720245 +@ 0 2.706691 0.179957 0.715050 +@ 0 2.739171 0.173095 0.709096 +@ 0 2.772042 0.166400 0.702409 +@ 0 2.805306 0.159872 0.695016 +@ 0 2.838970 0.153511 0.686946 +@ 0 2.873037 0.147316 0.678233 +@ 0 2.907514 0.141287 0.668908 +@ 0 2.942404 0.135424 0.659008 +@ 0 2.977713 0.129725 0.648567 +@ 0 3.013445 0.124190 0.637623 +@ 0 3.049607 0.118818 0.626215 +@ 0 3.086202 0.113607 0.614379 +@ 0 3.123236 0.108556 0.602155 +@ 0 3.160715 0.103664 0.589582 +@ 0 3.198644 0.098928 0.576697 +@ 0 3.237028 0.094347 0.563539 +@ 0 3.275872 0.089919 0.550146 +@ 0 3.315182 0.085641 0.536553 +@ 0 3.354965 0.081512 0.522798 +@ 0 3.395224 0.077530 0.508914 +@ 0 3.435967 0.073691 0.494936 +@ 0 3.477198 0.069994 0.480896 +@ 0 3.518925 0.066435 0.466825 +@ 0 3.561152 0.063013 0.452754 +@ 0 3.603886 0.059724 0.438711 +@ 0 3.647132 0.056566 0.424723 +@ 0 3.690898 0.053535 0.410816 +@ 0 3.735189 0.050629 0.397014 +@ 0 3.780011 0.047845 0.383339 +@ 0 3.825371 0.045180 0.369812 +@ 0 3.871276 0.042631 0.356454 +@ 0 3.917731 0.040194 0.343282 +@ 0 3.964744 0.037867 0.330313 + + +n= 2 3 l= 1, projecctor pseudo wave functions, well or 2nd valence + +@ 1 0.009945 0.000395 -0.000282 +@ 1 0.010064 0.000405 -0.000289 +@ 1 0.010185 0.000415 -0.000296 +@ 1 0.010307 0.000425 -0.000303 +@ 1 0.010431 0.000435 -0.000310 +@ 1 0.010556 0.000445 -0.000318 +@ 1 0.010683 0.000456 -0.000326 +@ 1 0.010811 0.000467 -0.000334 +@ 1 0.010941 0.000479 -0.000342 +@ 1 0.011072 0.000490 -0.000350 +@ 1 0.011205 0.000502 -0.000358 +@ 1 0.011339 0.000514 -0.000367 +@ 1 0.011475 0.000526 -0.000376 +@ 1 0.011613 0.000539 -0.000385 +@ 1 0.011752 0.000552 -0.000394 +@ 1 0.011893 0.000565 -0.000404 +@ 1 0.012036 0.000579 -0.000413 +@ 1 0.012181 0.000593 -0.000423 +@ 1 0.012327 0.000607 -0.000434 +@ 1 0.012475 0.000622 -0.000444 +@ 1 0.012624 0.000637 -0.000455 +@ 1 0.012776 0.000652 -0.000466 +@ 1 0.012929 0.000668 -0.000477 +@ 1 0.013084 0.000684 -0.000488 +@ 1 0.013241 0.000701 -0.000500 +@ 1 0.013400 0.000718 -0.000512 +@ 1 0.013561 0.000735 -0.000525 +@ 1 0.013724 0.000753 -0.000537 +@ 1 0.013888 0.000771 -0.000550 +@ 1 0.014055 0.000790 -0.000564 +@ 1 0.014224 0.000809 -0.000577 +@ 1 0.014394 0.000828 -0.000591 +@ 1 0.014567 0.000848 -0.000605 +@ 1 0.014742 0.000869 -0.000620 +@ 1 0.014919 0.000890 -0.000635 +@ 1 0.015098 0.000911 -0.000650 +@ 1 0.015279 0.000933 -0.000666 +@ 1 0.015462 0.000956 -0.000682 +@ 1 0.015648 0.000979 -0.000699 +@ 1 0.015836 0.001002 -0.000715 +@ 1 0.016026 0.001027 -0.000733 +@ 1 0.016218 0.001051 -0.000750 +@ 1 0.016413 0.001077 -0.000768 +@ 1 0.016610 0.001103 -0.000787 +@ 1 0.016809 0.001129 -0.000806 +@ 1 0.017011 0.001156 -0.000825 +@ 1 0.017215 0.001184 -0.000845 +@ 1 0.017421 0.001213 -0.000866 +@ 1 0.017630 0.001242 -0.000887 +@ 1 0.017842 0.001272 -0.000908 +@ 1 0.018056 0.001303 -0.000930 +@ 1 0.018273 0.001334 -0.000952 +@ 1 0.018492 0.001367 -0.000975 +@ 1 0.018714 0.001400 -0.000999 +@ 1 0.018938 0.001433 -0.001023 +@ 1 0.019166 0.001468 -0.001048 +@ 1 0.019396 0.001503 -0.001073 +@ 1 0.019628 0.001540 -0.001099 +@ 1 0.019864 0.001577 -0.001125 +@ 1 0.020102 0.001615 -0.001152 +@ 1 0.020344 0.001654 -0.001180 +@ 1 0.020588 0.001694 -0.001209 +@ 1 0.020835 0.001734 -0.001238 +@ 1 0.021085 0.001776 -0.001268 +@ 1 0.021338 0.001819 -0.001298 +@ 1 0.021594 0.001863 -0.001330 +@ 1 0.021853 0.001908 -0.001362 +@ 1 0.022115 0.001954 -0.001395 +@ 1 0.022381 0.002001 -0.001428 +@ 1 0.022649 0.002049 -0.001463 +@ 1 0.022921 0.002099 -0.001498 +@ 1 0.023196 0.002150 -0.001534 +@ 1 0.023474 0.002201 -0.001571 +@ 1 0.023756 0.002254 -0.001609 +@ 1 0.024041 0.002309 -0.001648 +@ 1 0.024330 0.002365 -0.001688 +@ 1 0.024622 0.002422 -0.001728 +@ 1 0.024917 0.002480 -0.001770 +@ 1 0.025216 0.002540 -0.001813 +@ 1 0.025519 0.002601 -0.001856 +@ 1 0.025825 0.002664 -0.001901 +@ 1 0.026135 0.002728 -0.001947 +@ 1 0.026448 0.002794 -0.001994 +@ 1 0.026766 0.002861 -0.002042 +@ 1 0.027087 0.002930 -0.002091 +@ 1 0.027412 0.003001 -0.002141 +@ 1 0.027741 0.003073 -0.002193 +@ 1 0.028074 0.003147 -0.002246 +@ 1 0.028411 0.003223 -0.002300 +@ 1 0.028752 0.003301 -0.002356 +@ 1 0.029097 0.003380 -0.002412 +@ 1 0.029446 0.003462 -0.002470 +@ 1 0.029799 0.003545 -0.002530 +@ 1 0.030157 0.003631 -0.002591 +@ 1 0.030519 0.003718 -0.002653 +@ 1 0.030885 0.003808 -0.002717 +@ 1 0.031256 0.003900 -0.002783 +@ 1 0.031631 0.003994 -0.002850 +@ 1 0.032010 0.004090 -0.002919 +@ 1 0.032394 0.004189 -0.002989 +@ 1 0.032783 0.004289 -0.003061 +@ 1 0.033176 0.004393 -0.003135 +@ 1 0.033575 0.004499 -0.003210 +@ 1 0.033977 0.004607 -0.003287 +@ 1 0.034385 0.004718 -0.003367 +@ 1 0.034798 0.004832 -0.003448 +@ 1 0.035215 0.004948 -0.003531 +@ 1 0.035638 0.005067 -0.003616 +@ 1 0.036066 0.005189 -0.003703 +@ 1 0.036498 0.005314 -0.003792 +@ 1 0.036936 0.005442 -0.003883 +@ 1 0.037380 0.005574 -0.003977 +@ 1 0.037828 0.005708 -0.004072 +@ 1 0.038282 0.005845 -0.004171 +@ 1 0.038741 0.005986 -0.004271 +@ 1 0.039206 0.006130 -0.004374 +@ 1 0.039677 0.006278 -0.004479 +@ 1 0.040153 0.006429 -0.004587 +@ 1 0.040635 0.006584 -0.004697 +@ 1 0.041122 0.006742 -0.004810 +@ 1 0.041616 0.006904 -0.004926 +@ 1 0.042115 0.007071 -0.005044 +@ 1 0.042621 0.007241 -0.005166 +@ 1 0.043132 0.007415 -0.005290 +@ 1 0.043650 0.007593 -0.005417 +@ 1 0.044174 0.007776 -0.005547 +@ 1 0.044704 0.007963 -0.005681 +@ 1 0.045240 0.008155 -0.005817 +@ 1 0.045783 0.008351 -0.005957 +@ 1 0.046332 0.008552 -0.006100 +@ 1 0.046888 0.008758 -0.006247 +@ 1 0.047451 0.008968 -0.006397 +@ 1 0.048020 0.009184 -0.006551 +@ 1 0.048597 0.009405 -0.006708 +@ 1 0.049180 0.009631 -0.006869 +@ 1 0.049770 0.009862 -0.007034 +@ 1 0.050367 0.010099 -0.007203 +@ 1 0.050972 0.010342 -0.007376 +@ 1 0.051583 0.010591 -0.007554 +@ 1 0.052202 0.010845 -0.007735 +@ 1 0.052829 0.011106 -0.007921 +@ 1 0.053463 0.011372 -0.008111 +@ 1 0.054104 0.011646 -0.008305 +@ 1 0.054753 0.011925 -0.008505 +@ 1 0.055410 0.012212 -0.008709 +@ 1 0.056075 0.012505 -0.008918 +@ 1 0.056748 0.012805 -0.009131 +@ 1 0.057429 0.013113 -0.009350 +@ 1 0.058118 0.013427 -0.009575 +@ 1 0.058816 0.013750 -0.009804 +@ 1 0.059522 0.014079 -0.010039 +@ 1 0.060236 0.014417 -0.010280 +@ 1 0.060959 0.014763 -0.010526 +@ 1 0.061690 0.015117 -0.010778 +@ 1 0.062430 0.015480 -0.011036 +@ 1 0.063180 0.015851 -0.011301 +@ 1 0.063938 0.016231 -0.011571 +@ 1 0.064705 0.016620 -0.011848 +@ 1 0.065482 0.017018 -0.012132 +@ 1 0.066267 0.017426 -0.012422 +@ 1 0.067063 0.017843 -0.012719 +@ 1 0.067867 0.018271 -0.013023 +@ 1 0.068682 0.018708 -0.013335 +@ 1 0.069506 0.019156 -0.013654 +@ 1 0.070340 0.019614 -0.013980 +@ 1 0.071184 0.020084 -0.014314 +@ 1 0.072038 0.020564 -0.014656 +@ 1 0.072903 0.021056 -0.015006 +@ 1 0.073777 0.021560 -0.015364 +@ 1 0.074663 0.022075 -0.015731 +@ 1 0.075559 0.022603 -0.016106 +@ 1 0.076465 0.023143 -0.016490 +@ 1 0.077383 0.023696 -0.016884 +@ 1 0.078312 0.024262 -0.017286 +@ 1 0.079251 0.024841 -0.017698 +@ 1 0.080202 0.025434 -0.018120 +@ 1 0.081165 0.026041 -0.018551 +@ 1 0.082139 0.026663 -0.018993 +@ 1 0.083125 0.027299 -0.019445 +@ 1 0.084122 0.027950 -0.019908 +@ 1 0.085131 0.028616 -0.020381 +@ 1 0.086153 0.029298 -0.020866 +@ 1 0.087187 0.029996 -0.021362 +@ 1 0.088233 0.030710 -0.021869 +@ 1 0.089292 0.031442 -0.022389 +@ 1 0.090363 0.032190 -0.022920 +@ 1 0.091448 0.032956 -0.023464 +@ 1 0.092545 0.033740 -0.024021 +@ 1 0.093656 0.034542 -0.024590 +@ 1 0.094780 0.035363 -0.025173 +@ 1 0.095917 0.036203 -0.025769 +@ 1 0.097068 0.037062 -0.026379 +@ 1 0.098233 0.037942 -0.027004 +@ 1 0.099412 0.038843 -0.027642 +@ 1 0.100604 0.039764 -0.028296 +@ 1 0.101812 0.040707 -0.028965 +@ 1 0.103033 0.041671 -0.029649 +@ 1 0.104270 0.042658 -0.030349 +@ 1 0.105521 0.043668 -0.031065 +@ 1 0.106787 0.044702 -0.031797 +@ 1 0.108069 0.045759 -0.032546 +@ 1 0.109366 0.046841 -0.033313 +@ 1 0.110678 0.047947 -0.034097 +@ 1 0.112006 0.049080 -0.034899 +@ 1 0.113350 0.050238 -0.035719 +@ 1 0.114710 0.051423 -0.036559 +@ 1 0.116087 0.052636 -0.037417 +@ 1 0.117480 0.053876 -0.038295 +@ 1 0.118890 0.055145 -0.039192 +@ 1 0.120316 0.056443 -0.040111 +@ 1 0.121760 0.057770 -0.041050 +@ 1 0.123221 0.059128 -0.042010 +@ 1 0.124700 0.060517 -0.042992 +@ 1 0.126196 0.061938 -0.043996 +@ 1 0.127711 0.063391 -0.045023 +@ 1 0.129243 0.064877 -0.046072 +@ 1 0.130794 0.066397 -0.047146 +@ 1 0.132364 0.067951 -0.048243 +@ 1 0.133952 0.069540 -0.049365 +@ 1 0.135560 0.071165 -0.050512 +@ 1 0.137186 0.072827 -0.051685 +@ 1 0.138832 0.074527 -0.052883 +@ 1 0.140498 0.076264 -0.054108 +@ 1 0.142184 0.078041 -0.055360 +@ 1 0.143891 0.079857 -0.056640 +@ 1 0.145617 0.081714 -0.057948 +@ 1 0.147365 0.083613 -0.059285 +@ 1 0.149133 0.085553 -0.060651 +@ 1 0.150923 0.087537 -0.062047 +@ 1 0.152734 0.089565 -0.063474 +@ 1 0.154567 0.091638 -0.064931 +@ 1 0.156421 0.093756 -0.066420 +@ 1 0.158298 0.095921 -0.067941 +@ 1 0.160198 0.098134 -0.069495 +@ 1 0.162120 0.100395 -0.071083 +@ 1 0.164066 0.102706 -0.072704 +@ 1 0.166035 0.105067 -0.074360 +@ 1 0.168027 0.107479 -0.076052 +@ 1 0.170043 0.109944 -0.077779 +@ 1 0.172084 0.112462 -0.079543 +@ 1 0.174149 0.115034 -0.081344 +@ 1 0.176239 0.117662 -0.083183 +@ 1 0.178354 0.120346 -0.085060 +@ 1 0.180494 0.123087 -0.086977 +@ 1 0.182660 0.125887 -0.088933 +@ 1 0.184852 0.128746 -0.090930 +@ 1 0.187070 0.131666 -0.092967 +@ 1 0.189315 0.134647 -0.095047 +@ 1 0.191587 0.137691 -0.097169 +@ 1 0.193886 0.140799 -0.099334 +@ 1 0.196212 0.143972 -0.101543 +@ 1 0.198567 0.147210 -0.103797 +@ 1 0.200950 0.150516 -0.106095 +@ 1 0.203361 0.153890 -0.108439 +@ 1 0.205801 0.157333 -0.110830 +@ 1 0.208271 0.160846 -0.113268 +@ 1 0.210770 0.164431 -0.115753 +@ 1 0.213299 0.168089 -0.118287 +@ 1 0.215859 0.171820 -0.120870 +@ 1 0.218449 0.175626 -0.123503 +@ 1 0.221071 0.179508 -0.126186 +@ 1 0.223723 0.183467 -0.128920 +@ 1 0.226408 0.187504 -0.131705 +@ 1 0.229125 0.191620 -0.134543 +@ 1 0.231875 0.195817 -0.137433 +@ 1 0.234657 0.200095 -0.140376 +@ 1 0.237473 0.204456 -0.143373 +@ 1 0.240323 0.208900 -0.146425 +@ 1 0.243207 0.213429 -0.149531 +@ 1 0.246125 0.218043 -0.152693 +@ 1 0.249078 0.222744 -0.155910 +@ 1 0.252067 0.227533 -0.159184 +@ 1 0.255092 0.232411 -0.162514 +@ 1 0.258153 0.237378 -0.165902 +@ 1 0.261251 0.242435 -0.169347 +@ 1 0.264386 0.247584 -0.172849 +@ 1 0.267559 0.252825 -0.176410 +@ 1 0.270770 0.258159 -0.180028 +@ 1 0.274019 0.263587 -0.183705 +@ 1 0.277307 0.269110 -0.187441 +@ 1 0.280635 0.274728 -0.191236 +@ 1 0.284002 0.280442 -0.195089 +@ 1 0.287410 0.286252 -0.199001 +@ 1 0.290859 0.292160 -0.202972 +@ 1 0.294350 0.298165 -0.207001 +@ 1 0.297882 0.304268 -0.211090 +@ 1 0.301456 0.310470 -0.215236 +@ 1 0.305074 0.316771 -0.219441 +@ 1 0.308735 0.323170 -0.223703 +@ 1 0.312440 0.329669 -0.228023 +@ 1 0.316189 0.336267 -0.232399 +@ 1 0.319983 0.342965 -0.236832 +@ 1 0.323823 0.349761 -0.241320 +@ 1 0.327709 0.356657 -0.245863 +@ 1 0.331641 0.363651 -0.250460 +@ 1 0.335621 0.370744 -0.255110 +@ 1 0.339648 0.377934 -0.259812 +@ 1 0.343724 0.385222 -0.264565 +@ 1 0.347849 0.392607 -0.269368 +@ 1 0.352023 0.400087 -0.274218 +@ 1 0.356247 0.407661 -0.279116 +@ 1 0.360522 0.415330 -0.284058 +@ 1 0.364849 0.423090 -0.289045 +@ 1 0.369227 0.430942 -0.294072 +@ 1 0.373657 0.438883 -0.299140 +@ 1 0.378141 0.446912 -0.304244 +@ 1 0.382679 0.455027 -0.309384 +@ 1 0.387271 0.463225 -0.314557 +@ 1 0.391918 0.471506 -0.319760 +@ 1 0.396621 0.479865 -0.324990 +@ 1 0.401381 0.488301 -0.330245 +@ 1 0.406197 0.496812 -0.335521 +@ 1 0.411072 0.505393 -0.340816 +@ 1 0.416005 0.514042 -0.346126 +@ 1 0.420997 0.522755 -0.351447 +@ 1 0.426049 0.531529 -0.356775 +@ 1 0.431161 0.540360 -0.362107 +@ 1 0.436335 0.549245 -0.367439 +@ 1 0.441571 0.558178 -0.372765 +@ 1 0.446870 0.567155 -0.378083 +@ 1 0.452233 0.576172 -0.383386 +@ 1 0.457659 0.585223 -0.388671 +@ 1 0.463151 0.594304 -0.393931 +@ 1 0.468709 0.603409 -0.399163 +@ 1 0.474334 0.612532 -0.404359 +@ 1 0.480026 0.621668 -0.409515 +@ 1 0.485786 0.630809 -0.414625 +@ 1 0.491615 0.639950 -0.419682 +@ 1 0.497515 0.649084 -0.424680 +@ 1 0.503485 0.658204 -0.429613 +@ 1 0.509527 0.667302 -0.434475 +@ 1 0.515641 0.676372 -0.439257 +@ 1 0.521829 0.685405 -0.443954 +@ 1 0.528091 0.694394 -0.448558 +@ 1 0.534428 0.703330 -0.453061 +@ 1 0.540841 0.712205 -0.457456 +@ 1 0.547331 0.721010 -0.461736 +@ 1 0.553899 0.729737 -0.465892 +@ 1 0.560546 0.738376 -0.469917 +@ 1 0.567272 0.746917 -0.473802 +@ 1 0.574080 0.755352 -0.477539 +@ 1 0.580969 0.763671 -0.481120 +@ 1 0.587940 0.771863 -0.484536 +@ 1 0.594995 0.779920 -0.487779 +@ 1 0.602135 0.787830 -0.490841 +@ 1 0.609361 0.795584 -0.493712 +@ 1 0.616673 0.803171 -0.496384 +@ 1 0.624073 0.810581 -0.498849 +@ 1 0.631562 0.817804 -0.501098 +@ 1 0.639141 0.824828 -0.503122 +@ 1 0.646811 0.831644 -0.504913 +@ 1 0.654572 0.838242 -0.506463 +@ 1 0.662427 0.844610 -0.507763 +@ 1 0.670376 0.850739 -0.508805 +@ 1 0.678421 0.856619 -0.509581 +@ 1 0.686562 0.862239 -0.510085 +@ 1 0.694801 0.867591 -0.510307 +@ 1 0.703138 0.872663 -0.510241 +@ 1 0.711576 0.877448 -0.509880 +@ 1 0.720115 0.881937 -0.509217 +@ 1 0.728756 0.886120 -0.508246 +@ 1 0.737501 0.889990 -0.506962 +@ 1 0.746351 0.893539 -0.505358 +@ 1 0.755308 0.896759 -0.503429 +@ 1 0.764371 0.899645 -0.501172 +@ 1 0.773544 0.902190 -0.498582 +@ 1 0.782826 0.904389 -0.495654 +@ 1 0.792220 0.906236 -0.492388 +@ 1 0.801727 0.907729 -0.488779 +@ 1 0.811348 0.908862 -0.484826 +@ 1 0.821084 0.909634 -0.480527 +@ 1 0.830937 0.910043 -0.475883 +@ 1 0.840908 0.910089 -0.470892 +@ 1 0.850999 0.909770 -0.465556 +@ 1 0.861211 0.909088 -0.459876 +@ 1 0.871545 0.908045 -0.453854 +@ 1 0.882004 0.906644 -0.447492 +@ 1 0.892588 0.904887 -0.440793 +@ 1 0.903299 0.902781 -0.433762 +@ 1 0.914139 0.900330 -0.426402 +@ 1 0.925108 0.897542 -0.418719 +@ 1 0.936210 0.894424 -0.410718 +@ 1 0.947444 0.890984 -0.402406 +@ 1 0.958813 0.887233 -0.393789 +@ 1 0.970319 0.883181 -0.384874 +@ 1 0.981963 0.878839 -0.375668 +@ 1 0.993747 0.874220 -0.366180 +@ 1 1.005672 0.869337 -0.356417 +@ 1 1.017740 0.864203 -0.346389 +@ 1 1.029952 0.858832 -0.336103 +@ 1 1.042312 0.853241 -0.325568 +@ 1 1.054820 0.847443 -0.314794 +@ 1 1.067478 0.841456 -0.303790 +@ 1 1.080287 0.835295 -0.292563 +@ 1 1.093251 0.828976 -0.281122 +@ 1 1.106370 0.822515 -0.269477 +@ 1 1.119646 0.815930 -0.257635 +@ 1 1.133082 0.809235 -0.245605 +@ 1 1.146679 0.802447 -0.233393 +@ 1 1.160439 0.795581 -0.221006 +@ 1 1.174364 0.788650 -0.208452 +@ 1 1.188457 0.781669 -0.195737 +@ 1 1.202718 0.774651 -0.182865 +@ 1 1.217151 0.767607 -0.169843 +@ 1 1.231757 0.760548 -0.156673 +@ 1 1.246538 0.753483 -0.143361 +@ 1 1.261496 0.746420 -0.129909 +@ 1 1.276634 0.739366 -0.116320 +@ 1 1.291954 0.732326 -0.102597 +@ 1 1.307457 0.725304 -0.088740 +@ 1 1.323147 0.718300 -0.074751 +@ 1 1.339024 0.711316 -0.060631 +@ 1 1.355093 0.704350 -0.046380 +@ 1 1.371354 0.697400 -0.031999 +@ 1 1.387810 0.690462 -0.017489 +@ 1 1.404464 0.683530 -0.002849 +@ 1 1.421317 0.676598 0.011920 +@ 1 1.438373 0.669659 0.026818 +@ 1 1.455634 0.662705 0.041843 +@ 1 1.473101 0.655729 0.056993 +@ 1 1.490778 0.648722 0.072267 +@ 1 1.508668 0.641677 0.087661 +@ 1 1.526772 0.634586 0.103172 +@ 1 1.545093 0.627444 0.118793 +@ 1 1.563634 0.620247 0.134520 +@ 1 1.582398 0.612992 0.150343 +@ 1 1.601386 0.605677 0.166255 +@ 1 1.620603 0.598306 0.182244 +@ 1 1.640050 0.590882 0.198298 +@ 1 1.659731 0.583407 0.214405 +@ 1 1.679648 0.575885 0.230553 +@ 1 1.699804 0.568320 0.246726 +@ 1 1.720201 0.560714 0.262911 +@ 1 1.740844 0.553072 0.279094 +@ 1 1.761734 0.545396 0.295258 +@ 1 1.782874 0.537691 0.311387 +@ 1 1.804269 0.529958 0.327464 +@ 1 1.825920 0.522202 0.343472 +@ 1 1.847831 0.514425 0.359392 +@ 1 1.870005 0.506632 0.375205 +@ 1 1.892445 0.498825 0.390893 +@ 1 1.915155 0.491007 0.406433 +@ 1 1.938136 0.483183 0.421806 +@ 1 1.961394 0.475355 0.436990 +@ 1 1.984931 0.467526 0.451963 +@ 1 2.008750 0.459699 0.466701 +@ 1 2.032855 0.451879 0.481182 +@ 1 2.057249 0.444067 0.495381 +@ 1 2.081936 0.436267 0.509275 +@ 1 2.106920 0.428482 0.522838 +@ 1 2.132203 0.420715 0.536045 +@ 1 2.157789 0.412969 0.548872 +@ 1 2.183682 0.405247 0.561292 +@ 1 2.209887 0.397552 0.573279 +@ 1 2.236405 0.389887 0.584809 +@ 1 2.263242 0.382254 0.595856 +@ 1 2.290401 0.374658 0.606393 +@ 1 2.317886 0.367099 0.616397 +@ 1 2.345700 0.359582 0.625843 +@ 1 2.373849 0.352108 0.634707 +@ 1 2.402335 0.344681 0.642966 +@ 1 2.431163 0.337302 0.650597 +@ 1 2.460337 0.329975 0.657580 +@ 1 2.489861 0.322703 0.663895 +@ 1 2.519739 0.315486 0.669524 +@ 1 2.549976 0.308329 0.674449 +@ 1 2.580576 0.301233 0.678655 +@ 1 2.611543 0.294200 0.682130 +@ 1 2.642881 0.287233 0.684862 +@ 1 2.674596 0.280333 0.686841 +@ 1 2.706691 0.273504 0.688061 +@ 1 2.739171 0.266747 0.688518 +@ 1 2.772042 0.260063 0.688210 +@ 1 2.805306 0.253456 0.687137 +@ 1 2.838970 0.246926 0.685302 +@ 1 2.873037 0.240475 0.682712 +@ 1 2.907514 0.234105 0.679374 +@ 1 2.942404 0.227819 0.675301 +@ 1 2.977713 0.221616 0.670505 +@ 1 3.013445 0.215500 0.665003 +@ 1 3.049607 0.209470 0.658814 +@ 1 3.086202 0.203529 0.651958 +@ 1 3.123236 0.197678 0.644461 +@ 1 3.160715 0.191917 0.636346 +@ 1 3.198644 0.186249 0.627641 +@ 1 3.237028 0.180674 0.618376 +@ 1 3.275872 0.175192 0.608582 +@ 1 3.315182 0.169806 0.598290 +@ 1 3.354965 0.164515 0.587534 +@ 1 3.395224 0.159321 0.576348 +@ 1 3.435967 0.154223 0.564768 +@ 1 3.477198 0.149223 0.552829 +@ 1 3.518925 0.144321 0.540567 +@ 1 3.561152 0.139518 0.528018 +@ 1 3.603886 0.134813 0.515218 +@ 1 3.647132 0.130207 0.502204 +@ 1 3.690898 0.125700 0.489010 +@ 1 3.735189 0.121292 0.475671 +@ 1 3.780011 0.116983 0.462222 +@ 1 3.825371 0.112773 0.448695 +@ 1 3.871276 0.108662 0.435123 +@ 1 3.917731 0.104649 0.421538 +@ 1 3.964744 0.100735 0.407967 + +convergence profiles, (ll=0,lmax) +!C 0 5.010693 0.010000 +!C 0 14.663990 0.001000 +!C 0 21.045501 0.000100 +!C 0 25.330082 0.000010 +!C 1 19.466178 0.010000 +!C 1 24.749203 0.001000 +!C 1 28.767051 0.000100 +!C 1 34.937382 0.000010 + +log derivativve data for plotting, l= 0 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.60 +l, energy, all-electron, pseudopotential + +! 0 2.000000 0.713194 0.709855 +! 0 1.980000 0.733466 0.730361 +! 0 1.960000 0.753094 0.750208 +! 0 1.940000 0.772096 0.769415 +! 0 1.920000 0.790494 0.788005 +! 0 1.900000 0.808306 0.805996 +! 0 1.880000 0.825554 0.823412 +! 0 1.860000 0.842258 0.840272 +! 0 1.840000 0.858438 0.856597 +! 0 1.820000 0.874113 0.872408 +! 0 1.800000 0.889303 0.887725 +! 0 1.780000 0.904026 0.902566 +! 0 1.760000 0.918302 0.916951 +! 0 1.740000 0.932148 0.930899 +! 0 1.720000 0.945581 0.944427 +! 0 1.700000 0.958618 0.957552 +! 0 1.680000 0.971276 0.970291 +! 0 1.660000 0.983569 0.982661 +! 0 1.640000 0.995514 0.994676 +! 0 1.620000 1.007124 1.006351 +! 0 1.600000 1.018413 1.017701 +! 0 1.580000 1.029395 1.028739 +! 0 1.560000 1.040083 1.039479 +! 0 1.540000 1.050488 1.049933 +! 0 1.520000 1.060623 1.060113 +! 0 1.500000 1.070499 1.070030 +! 0 1.480000 1.080126 1.079697 +! 0 1.460000 1.089516 1.089122 +! 0 1.440000 1.098678 1.098317 +! 0 1.420000 1.107621 1.107291 +! 0 1.400000 1.116356 1.116054 +! 0 1.380000 1.124889 1.124614 +! 0 1.360000 1.133231 1.132979 +! 0 1.340000 1.141388 1.141159 +! 0 1.320000 1.149369 1.149161 +! 0 1.300000 1.157182 1.156992 +! 0 1.280000 1.164832 1.164660 +! 0 1.260000 1.172327 1.172172 +! 0 1.240000 1.179673 1.179533 +! 0 1.220000 1.186878 1.186751 +! 0 1.200000 1.193946 1.193832 +! 0 1.180000 1.200883 1.200781 +! 0 1.160000 1.207696 1.207604 +! 0 1.140000 1.214389 1.214307 +! 0 1.120000 1.220967 1.220894 +! 0 1.100000 1.227436 1.227372 +! 0 1.080000 1.233801 1.233744 +! 0 1.060000 1.240066 1.240015 +! 0 1.040000 1.246235 1.246190 +! 0 1.020000 1.252313 1.252274 +! 0 1.000000 1.258304 1.258270 +! 0 0.980000 1.264212 1.264182 +! 0 0.960000 1.270040 1.270015 +! 0 0.940000 1.275794 1.275773 +! 0 0.920000 1.281476 1.281458 +! 0 0.900000 1.287090 1.287075 +! 0 0.880000 1.292640 1.292627 +! 0 0.860000 1.298129 1.298118 +! 0 0.840000 1.303559 1.303551 +! 0 0.820000 1.308936 1.308929 +! 0 0.800000 1.314260 1.314255 +! 0 0.780000 1.319537 1.319533 +! 0 0.760000 1.324768 1.324765 +! 0 0.740000 1.329957 1.329955 +! 0 0.720000 1.335106 1.335105 +! 0 0.700000 1.340219 1.340218 +! 0 0.680000 1.345298 1.345298 +! 0 0.660000 1.350346 1.350346 +! 0 0.640000 1.355366 1.355366 +! 0 0.620000 1.360360 1.360360 +! 0 0.600000 1.365331 1.365331 +! 0 0.580000 1.370282 1.370281 +! 0 0.560000 1.375215 1.375215 +! 0 0.540000 1.380133 1.380133 +! 0 0.520000 1.385039 1.385038 +! 0 0.500000 1.389936 1.389934 +! 0 0.480000 1.394825 1.394822 +! 0 0.460000 1.399709 1.399706 +! 0 0.440000 1.404592 1.404589 +! 0 0.420000 1.409475 1.409471 +! 0 0.400000 1.414362 1.414357 +! 0 0.380000 1.419255 1.419249 +! 0 0.360000 1.424156 1.424150 +! 0 0.340000 1.429069 1.429062 +! 0 0.320000 1.433996 1.433989 +! 0 0.300000 1.438941 1.438932 +! 0 0.280000 1.443905 1.443896 +! 0 0.260000 1.448892 1.448882 +! 0 0.240000 1.453904 1.453894 +! 0 0.220000 1.458946 1.458935 +! 0 0.200000 1.464019 1.464007 +! 0 0.180000 1.469128 1.469115 +! 0 0.160000 1.474274 1.474261 +! 0 0.140000 1.479463 1.479449 +! 0 0.120000 1.484696 1.484682 +! 0 0.100000 1.489978 1.489963 +! 0 0.080000 1.495313 1.495297 +! 0 0.060000 1.500703 1.500687 +! 0 0.040000 1.506154 1.506137 +! 0 0.020000 1.511668 1.511651 +! 0 0.000000 1.517251 1.517234 +! 0 -0.020000 1.522906 1.522889 +! 0 -0.040000 1.528639 1.528621 +! 0 -0.060000 1.534454 1.534435 +! 0 -0.080000 1.540355 1.540337 +! 0 -0.100000 1.546349 1.546330 +! 0 -0.120000 1.552440 1.552421 +! 0 -0.140000 1.558634 1.558614 +! 0 -0.160000 1.564936 1.564917 +! 0 -0.180000 1.571355 1.571335 +! 0 -0.200000 1.577894 1.577875 +! 0 -0.220000 1.584562 1.584543 +! 0 -0.240000 1.591366 1.591347 +! 0 -0.260000 1.598313 1.598294 +! 0 -0.280000 1.605411 1.605393 +! 0 -0.300000 1.612669 1.612651 +! 0 -0.320000 1.620095 1.620077 +! 0 -0.340000 1.627699 1.627681 +! 0 -0.360000 1.635490 1.635473 +! 0 -0.380000 1.643480 1.643463 +! 0 -0.400000 1.651679 1.651662 +! 0 -0.420000 1.660098 1.660082 +! 0 -0.440000 1.668751 1.668736 +! 0 -0.460000 1.677651 1.677636 +! 0 -0.480000 1.686811 1.686797 +! 0 -0.500000 1.696247 1.696233 +! 0 -0.520000 1.705974 1.705962 +! 0 -0.540000 1.716010 1.715998 +! 0 -0.560000 1.726373 1.726361 +! 0 -0.580000 1.737080 1.737070 +! 0 -0.600000 1.748155 1.748145 +! 0 -0.620000 1.759617 1.759608 +! 0 -0.640000 1.771490 1.771482 +! 0 -0.660000 1.783800 1.783793 +! 0 -0.680000 1.796572 1.796566 +! 0 -0.700000 1.809835 1.809830 +! 0 -0.720000 1.823619 1.823615 +! 0 -0.740000 1.837957 1.837954 +! 0 -0.760000 1.852883 1.852881 +! 0 -0.780000 1.868434 1.868432 +! 0 -0.800000 1.884648 1.884647 +! 0 -0.820000 1.901568 1.901567 +! 0 -0.840000 1.919237 1.919237 +! 0 -0.860000 1.937702 1.937702 +! 0 -0.880000 1.957013 1.957013 +! 0 -0.900000 1.977222 1.977222 +! 0 -0.920000 1.998384 1.998383 +! 0 -0.940000 2.020555 2.020553 +! 0 -0.960000 2.043796 2.043793 +! 0 -0.980000 2.068168 2.068163 +! 0 -1.000000 2.093734 2.093728 +! 0 -1.020000 2.120559 2.120549 +! 0 -1.040000 2.148705 2.148691 +! 0 -1.060000 2.178235 2.178217 +! 0 -1.080000 2.209209 2.209187 +! 0 -1.100000 2.241684 2.241656 +! 0 -1.120000 2.275709 2.275674 +! 0 -1.140000 2.311325 2.311281 +! 0 -1.160000 2.348561 2.348508 +! 0 -1.180000 2.387432 2.387368 +! 0 -1.200000 2.427936 2.427861 +! 0 -1.220000 2.470050 2.469961 +! 0 -1.240000 2.513728 2.513624 +! 0 -1.260000 2.558894 2.558774 +! 0 -1.280000 2.605447 2.605310 +! 0 -1.300000 2.653255 2.653100 +! 0 -1.320000 2.702157 2.701982 +! 0 -1.340000 2.751963 2.751768 +! 0 -1.360000 2.802459 2.802243 +! 0 -1.380000 2.853410 2.853174 +! 0 -1.400000 2.904571 2.904314 +! 0 -1.420000 2.955686 2.955410 +! 0 -1.440000 3.006504 3.006208 +! 0 -1.460000 3.056779 3.056464 +! 0 -1.480000 3.106283 3.105952 +! 0 -1.500000 3.154810 3.154462 +! 0 -1.520000 3.202177 3.201815 +! 0 -1.540000 3.248231 3.247857 +! 0 -1.560000 3.292850 3.292465 +! 0 -1.580000 3.335940 3.335545 +! 0 -1.600000 3.377434 3.377032 +! 0 -1.620000 3.417294 3.416886 +! 0 -1.640000 3.455502 3.455089 +! 0 -1.660000 3.492062 3.491645 +! 0 -1.680000 3.526993 3.526574 +! 0 -1.700000 3.560328 3.559908 +! 0 -1.720000 3.592112 3.591691 +! 0 -1.740000 3.622395 3.621974 +! 0 -1.760000 3.651235 3.650815 +! 0 -1.780000 3.678693 3.678274 +! 0 -1.800000 3.704831 3.704414 +! 0 -1.820000 3.729714 3.729299 +! 0 -1.840000 3.753405 3.752993 +! 0 -1.860000 3.775967 3.775557 +! 0 -1.880000 3.797460 3.797054 +! 0 -1.900000 3.817943 3.817540 +! 0 -1.920000 3.837474 3.837074 +! 0 -1.940000 3.856105 3.855709 +! 0 -1.960000 3.873888 3.873496 +! 0 -1.980000 3.890872 3.890483 +! 0 -2.000000 3.907102 3.906717 + +log derivativve data for plotting, l= 1 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.60 +l, energy, all-electron, pseudopotential + +! 1 2.000000 -2.521367 -2.519850 +! 1 1.980000 -2.494570 -2.493167 +! 1 1.960000 -2.468675 -2.467378 +! 1 1.940000 -2.443661 -2.442463 +! 1 1.920000 -2.419507 -2.418402 +! 1 1.900000 -2.396187 -2.395168 +! 1 1.880000 -2.373674 -2.372736 +! 1 1.860000 -2.351943 -2.351079 +! 1 1.840000 -2.330964 -2.330169 +! 1 1.820000 -2.310709 -2.309979 +! 1 1.800000 -2.291150 -2.290479 +! 1 1.780000 -2.272258 -2.271642 +! 1 1.760000 -2.254005 -2.253440 +! 1 1.740000 -2.236364 -2.235846 +! 1 1.720000 -2.219308 -2.218833 +! 1 1.700000 -2.202811 -2.202376 +! 1 1.680000 -2.186847 -2.186449 +! 1 1.660000 -2.171392 -2.171028 +! 1 1.640000 -2.156423 -2.156089 +! 1 1.620000 -2.141916 -2.141611 +! 1 1.600000 -2.127849 -2.127571 +! 1 1.580000 -2.114202 -2.113948 +! 1 1.560000 -2.100955 -2.100723 +! 1 1.540000 -2.088088 -2.087876 +! 1 1.520000 -2.075583 -2.075390 +! 1 1.500000 -2.063422 -2.063246 +! 1 1.480000 -2.051588 -2.051429 +! 1 1.460000 -2.040066 -2.039921 +! 1 1.440000 -2.028839 -2.028708 +! 1 1.420000 -2.017894 -2.017775 +! 1 1.400000 -2.007216 -2.007108 +! 1 1.380000 -1.996792 -1.996695 +! 1 1.360000 -1.986609 -1.986521 +! 1 1.340000 -1.976655 -1.976575 +! 1 1.320000 -1.966918 -1.966846 +! 1 1.300000 -1.957386 -1.957322 +! 1 1.280000 -1.948050 -1.947992 +! 1 1.260000 -1.938898 -1.938846 +! 1 1.240000 -1.929921 -1.929875 +! 1 1.220000 -1.921110 -1.921069 +! 1 1.200000 -1.912455 -1.912418 +! 1 1.180000 -1.903947 -1.903915 +! 1 1.160000 -1.895579 -1.895550 +! 1 1.140000 -1.887341 -1.887315 +! 1 1.120000 -1.879226 -1.879204 +! 1 1.100000 -1.871227 -1.871207 +! 1 1.080000 -1.863336 -1.863318 +! 1 1.060000 -1.855545 -1.855530 +! 1 1.040000 -1.847849 -1.847836 +! 1 1.020000 -1.840239 -1.840228 +! 1 1.000000 -1.832711 -1.832701 +! 1 0.980000 -1.825256 -1.825248 +! 1 0.960000 -1.817870 -1.817863 +! 1 0.940000 -1.810545 -1.810539 +! 1 0.920000 -1.803276 -1.803272 +! 1 0.900000 -1.796057 -1.796053 +! 1 0.880000 -1.788882 -1.788879 +! 1 0.860000 -1.781745 -1.781743 +! 1 0.840000 -1.774641 -1.774639 +! 1 0.820000 -1.767563 -1.767562 +! 1 0.800000 -1.760507 -1.760506 +! 1 0.780000 -1.753466 -1.753465 +! 1 0.760000 -1.746435 -1.746434 +! 1 0.740000 -1.739408 -1.739408 +! 1 0.720000 -1.732380 -1.732380 +! 1 0.700000 -1.725344 -1.725344 +! 1 0.680000 -1.718296 -1.718296 +! 1 0.660000 -1.711230 -1.711230 +! 1 0.640000 -1.704139 -1.704139 +! 1 0.620000 -1.697017 -1.697017 +! 1 0.600000 -1.689859 -1.689859 +! 1 0.580000 -1.682658 -1.682657 +! 1 0.560000 -1.675408 -1.675407 +! 1 0.540000 -1.668102 -1.668101 +! 1 0.520000 -1.660733 -1.660733 +! 1 0.500000 -1.653296 -1.653295 +! 1 0.480000 -1.645782 -1.645781 +! 1 0.460000 -1.638184 -1.638183 +! 1 0.440000 -1.630495 -1.630494 +! 1 0.420000 -1.622707 -1.622705 +! 1 0.400000 -1.614810 -1.614809 +! 1 0.380000 -1.606798 -1.606796 +! 1 0.360000 -1.598661 -1.598659 +! 1 0.340000 -1.590389 -1.590387 +! 1 0.320000 -1.581972 -1.581970 +! 1 0.300000 -1.573401 -1.573399 +! 1 0.280000 -1.564665 -1.564663 +! 1 0.260000 -1.555752 -1.555749 +! 1 0.240000 -1.546650 -1.546647 +! 1 0.220000 -1.537346 -1.537344 +! 1 0.200000 -1.527828 -1.527825 +! 1 0.180000 -1.518081 -1.518078 +! 1 0.160000 -1.508090 -1.508087 +! 1 0.140000 -1.497840 -1.497837 +! 1 0.120000 -1.487313 -1.487310 +! 1 0.100000 -1.476491 -1.476488 +! 1 0.080000 -1.465357 -1.465354 +! 1 0.060000 -1.453889 -1.453886 +! 1 0.040000 -1.442066 -1.442063 +! 1 0.020000 -1.429866 -1.429863 +! 1 0.000000 -1.417263 -1.417261 +! 1 -0.020000 -1.404233 -1.404230 +! 1 -0.040000 -1.390747 -1.390744 +! 1 -0.060000 -1.376775 -1.376773 +! 1 -0.080000 -1.362287 -1.362285 +! 1 -0.100000 -1.347249 -1.347247 +! 1 -0.120000 -1.331624 -1.331622 +! 1 -0.140000 -1.315375 -1.315373 +! 1 -0.160000 -1.298460 -1.298459 +! 1 -0.180000 -1.280837 -1.280836 +! 1 -0.200000 -1.262460 -1.262459 +! 1 -0.220000 -1.243279 -1.243278 +! 1 -0.240000 -1.223243 -1.223243 +! 1 -0.260000 -1.202298 -1.202298 +! 1 -0.280000 -1.180386 -1.180386 +! 1 -0.300000 -1.157448 -1.157447 +! 1 -0.320000 -1.133420 -1.133420 +! 1 -0.340000 -1.108240 -1.108239 +! 1 -0.360000 -1.081840 -1.081839 +! 1 -0.380000 -1.054154 -1.054154 +! 1 -0.400000 -1.025116 -1.025115 +! 1 -0.420000 -0.994660 -0.994659 +! 1 -0.440000 -0.962723 -0.962721 +! 1 -0.460000 -0.929248 -0.929246 +! 1 -0.480000 -0.894183 -0.894181 +! 1 -0.500000 -0.857488 -0.857484 +! 1 -0.520000 -0.819132 -0.819127 +! 1 -0.540000 -0.779101 -0.779095 +! 1 -0.560000 -0.737402 -0.737394 +! 1 -0.580000 -0.694062 -0.694052 +! 1 -0.600000 -0.649133 -0.649121 +! 1 -0.620000 -0.602700 -0.602685 +! 1 -0.640000 -0.554873 -0.554856 +! 1 -0.660000 -0.505797 -0.505777 +! 1 -0.680000 -0.455648 -0.455624 +! 1 -0.700000 -0.404628 -0.404601 +! 1 -0.720000 -0.352967 -0.352937 +! 1 -0.740000 -0.300912 -0.300878 +! 1 -0.760000 -0.248724 -0.248687 +! 1 -0.780000 -0.196668 -0.196627 +! 1 -0.800000 -0.145005 -0.144960 +! 1 -0.820000 -0.093985 -0.093936 +! 1 -0.840000 -0.043838 -0.043786 +! 1 -0.860000 0.005229 0.005284 +! 1 -0.880000 0.053037 0.053095 +! 1 -0.900000 0.099438 0.099499 +! 1 -0.920000 0.144318 0.144381 +! 1 -0.940000 0.187590 0.187655 +! 1 -0.960000 0.229198 0.229265 +! 1 -0.980000 0.269111 0.269180 +! 1 -1.000000 0.307322 0.307392 +! 1 -1.020000 0.343842 0.343914 +! 1 -1.040000 0.378700 0.378772 +! 1 -1.060000 0.411935 0.412008 +! 1 -1.080000 0.443598 0.443671 +! 1 -1.100000 0.473745 0.473819 +! 1 -1.120000 0.502438 0.502513 +! 1 -1.140000 0.529743 0.529818 +! 1 -1.160000 0.555726 0.555801 +! 1 -1.180000 0.580453 0.580528 +! 1 -1.200000 0.603990 0.604065 +! 1 -1.220000 0.626402 0.626477 +! 1 -1.240000 0.647750 0.647824 +! 1 -1.260000 0.668094 0.668168 +! 1 -1.280000 0.687492 0.687566 +! 1 -1.300000 0.705998 0.706072 +! 1 -1.320000 0.723664 0.723737 +! 1 -1.340000 0.740537 0.740610 +! 1 -1.360000 0.756665 0.756738 +! 1 -1.380000 0.772091 0.772163 +! 1 -1.400000 0.786854 0.786926 +! 1 -1.420000 0.800993 0.801064 +! 1 -1.440000 0.814544 0.814615 +! 1 -1.460000 0.827540 0.827610 +! 1 -1.480000 0.840012 0.840082 +! 1 -1.500000 0.851990 0.852059 +! 1 -1.520000 0.863500 0.863568 +! 1 -1.540000 0.874568 0.874636 +! 1 -1.560000 0.885218 0.885286 +! 1 -1.580000 0.895473 0.895540 +! 1 -1.600000 0.905353 0.905420 +! 1 -1.620000 0.914879 0.914945 +! 1 -1.640000 0.924067 0.924133 +! 1 -1.660000 0.932936 0.933002 +! 1 -1.680000 0.941502 0.941567 +! 1 -1.700000 0.949780 0.949844 +! 1 -1.720000 0.957783 0.957847 +! 1 -1.740000 0.965526 0.965589 +! 1 -1.760000 0.973021 0.973084 +! 1 -1.780000 0.980279 0.980341 +! 1 -1.800000 0.987311 0.987373 +! 1 -1.820000 0.994129 0.994190 +! 1 -1.840000 1.000741 1.000802 +! 1 -1.860000 1.007157 1.007218 +! 1 -1.880000 1.013386 1.013447 +! 1 -1.900000 1.019436 1.019496 +! 1 -1.920000 1.025315 1.025374 +! 1 -1.940000 1.031030 1.031089 +! 1 -1.960000 1.036587 1.036646 +! 1 -1.980000 1.041994 1.042052 +! 1 -2.000000 1.047257 1.047315 +GNUSCRIPT +set pointsize 4 + +set title "t1 Ion Pseudopotentials" + +set xlabel "Radius (a_B)" + +plot " delta + + 1 0 -4.216861E+00 -4.268309E+00 -5.14E-02 + 2 1 -2.696637E+00 -2.795072E+00 -9.84E-02 + 3 2 -1.950389E-01 -3.206945E-01 -1.26E-01 + 2 0 -1.604577E-01 -1.760879E-01 -1.56E-02 + +Exchange-correlation and electron-electron Coulomb terms added +Pseudoatom total energy -5.18132977E+01 + + +Diagnostic tests using Vanderbilt-Kleinman-Bylander pseudopotentials + 1 or more projectors used as specified by nproj input data + + l rcore rmatch e in delta e norm test slope test + + 0 1.9010275 1.9297145 -4.2168608 0.0000000 1.0000001 1.0000001 + 0 1.9010275 1.9297145 -0.1604577 0.0000000 1.0000000 0.9999999 + + 1 2.1048450 2.1366077 -2.6966372 0.0000000 1.0000000 1.0000000 + 1 2.1048450 2.1366077 0.3033628 -0.0000000 1.0000000 1.0000000 + + 2 2.1048450 2.1366077 -0.1950389 0.0000000 1.0000000 1.0000000 + 2 2.1048450 2.1366077 0.8049611 0.0000000 1.0000000 1.0000000 + + Testing for bound ghosts + n l E NL Schr. Eq E Basis Diag. E Cutoff + + 1 0 -4.216861 -4.216860 73.83 + 2 0 -0.160458 -0.136103 73.83 + + 2 1 -2.696637 -2.696636 69.23 + + 3 2 -0.195039 -0.194801 100.22 + + Testing for highly-localized ghosts above bound states + l /rc E Basis Diag. E Cutoff + +DATA FOR PLOTTING + + radii, charge, pseudopotentials (ll=0, 1, lmax) + +!p 0.009994 22.513861 -29.089934 -31.848153 -34.020455 +!p 0.020025 22.552891 -29.087580 -31.845462 -34.017428 +!p 0.030095 22.618276 -29.083630 -31.840948 -34.012351 +!p 0.040122 22.709409 -29.078114 -31.834644 -34.005261 +!p 0.050229 22.827464 -29.070947 -31.826454 -33.996051 +!p 0.060299 22.971140 -29.062194 -31.816451 -33.984803 +!p 0.070463 23.142372 -29.051717 -31.804478 -33.971342 +!p 0.080631 23.339864 -29.039571 -31.790599 -33.955739 +!p 0.090895 23.565555 -29.025608 -31.774644 -33.937805 +!p 0.100942 23.811859 -29.010266 -31.757114 -33.918104 +!p 0.111097 24.086014 -28.993059 -31.737455 -33.896013 +!p 0.121180 24.382945 -28.974264 -31.715982 -33.871889 +!p 0.131388 24.708264 -28.953478 -31.692236 -33.845215 +!p 0.141605 25.058274 -28.930879 -31.666421 -33.816223 +!p 0.151705 25.427736 -28.906752 -31.638861 -33.785277 +!p 0.162040 25.829293 -28.880201 -31.608532 -33.751230 +!p 0.172044 26.240032 -28.852673 -31.577090 -33.715941 +!p 0.182120 26.674833 -28.823110 -31.543323 -33.678051 +!p 0.192209 27.130646 -28.791630 -31.507369 -33.637713 +!p 0.202251 27.603701 -28.758407 -31.469423 -33.595151 +!p 0.212817 28.121290 -28.721377 -31.427130 -33.547724 +!p 0.223265 28.651896 -28.682641 -31.382887 -33.498120 +!p 0.233526 29.189887 -28.642516 -31.337057 -33.446748 +!p 0.243528 29.729142 -28.601387 -31.290078 -33.394097 +!p 0.253958 30.305655 -28.556342 -31.238623 -33.336442 +!p 0.264042 30.875334 -28.510668 -31.186445 -33.277988 +!p 0.274527 31.478734 -28.460936 -31.129626 -33.214344 +!p 0.284575 32.065907 -28.411101 -31.072683 -33.150572 +!p 0.294991 32.681966 -28.357160 -31.011040 -33.081547 +!p 0.305787 33.326425 -28.298761 -30.944291 -33.006814 +!p 0.316031 33.941321 -28.240982 -30.878238 -32.932870 +!p 0.326618 34.578130 -28.178811 -30.807150 -32.853297 +!p 0.337559 35.235231 -28.111900 -30.730622 -32.767644 +!p 0.347824 35.848393 -28.046643 -30.655967 -32.684092 +!p 0.358401 36.474469 -27.976855 -30.576105 -32.594719 +!p 0.369299 37.110906 -27.902212 -30.490660 -32.499099 +!p 0.379390 37.690014 -27.830595 -30.408650 -32.407326 +!p 0.389758 38.272354 -27.754494 -30.321473 -32.309771 +!p 0.400408 38.854838 -27.673622 -30.228794 -32.206055 +!p 0.411350 39.433922 -27.587675 -30.130255 -32.095777 +!p 0.422591 40.005572 -27.496331 -30.025476 -31.978507 +!p 0.432840 40.503797 -27.410328 -29.926775 -31.868030 +!p 0.443338 40.989004 -27.319539 -29.822526 -31.751331 +!p 0.454090 41.457292 -27.223696 -29.712412 -31.628050 +!p 0.465104 41.904404 -27.122521 -29.596101 -31.497811 +!p 0.476384 42.325727 -27.015721 -29.473242 -31.360216 +!p 0.486479 42.669338 -26.917416 -29.360079 -31.233455 +!p 0.496787 42.985872 -26.814355 -29.241362 -31.100445 +!p 0.507314 43.271603 -26.706314 -29.116820 -30.960878 +!p 0.518064 43.522628 -26.593060 -28.986170 -30.814428 +!p 0.529042 43.734891 -26.474352 -28.849117 -30.660758 +!p 0.540252 43.904203 -26.349938 -28.705351 -30.499514 +!p 0.551700 44.026272 -26.219555 -28.554551 -30.330326 +!p 0.561705 44.089998 -26.102844 -28.419440 -30.178692 +!p 0.571892 44.113051 -25.981372 -28.278696 -30.020684 +!p 0.582264 44.092679 -25.854960 -28.132091 -29.856042 +!p 0.592824 44.026162 -25.723425 -27.979396 -29.684497 +!p 0.603575 43.910840 -25.586583 -27.820377 -29.505779 +!p 0.614521 43.744145 -25.444258 -27.654801 -29.319614 +!p 0.625666 43.523630 -25.296281 -27.482445 -29.125739 +!p 0.637012 43.247006 -25.142512 -27.303108 -28.923907 +!p 0.648565 42.912177 -24.982846 -27.116623 -28.713905 +!p 0.660327 42.517282 -24.817241 -26.922880 -28.495580 +!p 0.672302 42.060729 -24.645748 -26.721860 -28.268861 +!p 0.682448 41.632235 -24.498461 -26.548852 -28.073549 +!p 0.692746 41.159472 -24.347388 -26.370996 -27.872549 +!p 0.703200 40.642072 -24.192796 -26.188512 -27.666050 +!p 0.713811 40.079866 -24.035037 -26.001703 -27.454325 +!p 0.724583 39.472902 -23.874532 -25.810938 -27.237710 +!p 0.735517 38.821459 -23.711729 -25.616609 -27.016565 +!p 0.746616 38.126057 -23.547034 -25.419068 -26.791211 +!p 0.757883 37.387473 -23.380728 -25.218536 -26.561835 +!p 0.769319 36.606743 -23.212862 -25.015002 -26.328394 +!p 0.780929 35.785179 -23.043171 -24.808139 -26.090529 +!p 0.792713 34.924365 -22.871043 -24.597267 -25.847528 +!p 0.804675 34.026163 -22.695552 -24.381392 -25.598366 +!p 0.816818 33.092714 -22.515586 -24.159330 -25.341830 +!p 0.829144 32.126430 -22.330031 -23.929894 -25.076706 +!p 0.841656 31.129988 -22.137981 -23.692104 -24.801987 +!p 0.851801 30.313084 -21.979290 -23.495428 -24.574861 +!p 0.862069 29.480364 -21.816025 -23.292897 -24.341061 +!p 0.872461 28.633533 -21.648299 -23.084582 -24.100653 +!p 0.882977 27.774379 -21.476376 -22.870707 -23.853852 +!p 0.893621 26.904770 -21.300619 -22.651592 -23.600977 +!p 0.904393 26.026641 -21.121431 -22.427599 -23.342387 +!p 0.915294 25.141985 -20.939190 -22.199063 -23.078421 +!p 0.926327 24.252843 -20.754196 -21.966244 -22.809346 +!p 0.937493 23.361293 -20.566634 -21.729287 -22.535314 +!p 0.948794 22.469434 -20.376540 -21.488190 -22.256342 +!p 0.960231 21.579379 -20.183796 -21.242797 -21.972292 +!p 0.971806 20.693236 -19.988119 -20.992790 -21.682874 +!p 0.983520 19.813100 -19.789114 -20.737744 -21.387696 +!p 0.995375 18.941033 -19.587480 -20.478331 -21.087471 +!p 1.007374 18.079055 -19.383771 -20.215081 -20.782778 +!p 1.019517 17.229126 -19.178146 -19.948137 -20.473820 +!p 1.031806 16.393135 -18.970748 -19.677634 -20.160799 +!p 1.044244 15.572889 -18.761699 -19.403688 -19.843913 +!p 1.056831 14.770093 -18.551114 -19.126427 -19.523381 +!p 1.069570 13.986345 -18.339107 -18.845983 -19.199441 +!p 1.082463 13.223124 -18.125789 -18.562498 -18.872355 +!p 1.095511 12.481777 -17.911276 -18.276137 -18.542423 +!p 1.108716 11.763513 -17.695696 -17.987092 -18.209986 +!p 1.118725 11.240610 -17.533396 -17.768684 -17.959252 +!p 1.128824 10.731686 -17.370646 -17.549005 -17.707520 +!p 1.139013 10.237086 -17.207519 -17.328182 -17.454997 +!p 1.149295 9.757104 -17.044096 -17.106355 -17.201910 +!p 1.159670 9.291986 -16.880462 -16.883675 -16.948507 +!p 1.170138 8.841927 -16.716707 -16.660312 -16.695053 +!p 1.180701 8.407072 -16.552926 -16.436447 -16.441834 +!p 1.191360 7.987516 -16.389218 -16.212278 -16.189154 +!p 1.202114 7.583307 -16.225684 -15.988015 -15.937338 +!p 1.212965 7.194444 -16.062429 -15.763887 -15.686729 +!p 1.223915 6.820880 -15.899561 -15.540134 -15.437687 +!p 1.234963 6.462525 -15.737190 -15.317015 -15.190591 +!p 1.246111 6.119246 -15.575427 -15.094801 -14.945834 +!p 1.257360 5.790868 -15.414383 -14.873778 -14.703824 +!p 1.268710 5.477178 -15.254170 -14.654247 -14.464982 +!p 1.280163 5.177930 -15.094898 -14.436521 -14.229734 +!p 1.291719 4.892841 -14.936675 -14.220922 -13.998517 +!p 1.303379 4.621600 -14.779603 -14.007786 -13.771769 +!p 1.315145 4.363868 -14.623785 -13.797455 -13.549926 +!p 1.327017 4.119281 -14.469315 -13.590279 -13.333422 +!p 1.338996 3.887455 -14.316286 -13.386617 -13.122682 +!p 1.351083 3.667985 -14.164790 -13.186833 -12.918125 +!p 1.363279 3.460451 -14.014917 -12.991300 -12.720157 +!p 1.375586 3.264422 -13.866767 -12.800405 -12.529174 +!p 1.388003 3.079455 -13.720454 -12.614551 -12.345567 +!p 1.400533 2.905101 -13.576119 -12.434165 -12.169728 +!p 1.413175 2.740907 -13.433944 -12.259716 -12.002056 +!p 1.425932 2.586417 -13.294170 -12.091719 -11.842977 +!p 1.438804 2.441177 -13.157115 -11.930758 -11.692947 +!p 1.451792 2.304735 -13.023192 -11.777491 -11.552471 +!p 1.464897 2.176643 -12.892908 -11.632652 -11.422102 +!p 1.478121 2.056461 -12.766864 -11.497041 -11.302426 +!p 1.491464 1.943758 -12.645715 -11.371482 -11.194031 +!p 1.504928 1.838112 -12.530121 -11.256766 -11.097447 +!p 1.518513 1.739113 -12.420668 -11.153570 -11.013071 +!p 1.532220 1.646363 -12.317783 -11.062365 -10.941077 +!p 1.546052 1.559479 -12.221656 -10.983336 -10.881347 +!p 1.560008 1.478090 -12.132200 -10.916332 -10.833421 +!p 1.574090 1.401843 -12.049026 -10.860851 -10.796490 +!p 1.588300 1.330397 -11.971460 -10.816037 -10.769404 +!p 1.602637 1.263432 -11.898520 -10.780673 -10.750663 +!p 1.617104 1.200639 -11.828853 -10.753103 -10.738356 +!p 1.631702 1.141729 -11.760616 -10.731125 -10.730053 +!p 1.646431 1.086427 -11.691383 -10.711893 -10.722718 +!p 1.661294 1.034476 -11.618242 -10.692019 -10.712814 +!p 1.676290 0.985632 -11.538230 -10.668016 -10.696746 +!p 1.686363 0.954684 -11.479918 -10.648285 -10.681147 +!p 1.696496 0.924954 -11.417250 -10.624986 -10.661046 +!p 1.706691 0.896380 -11.350367 -10.598075 -10.636405 +!p 1.716946 0.868905 -11.279849 -10.567940 -10.607629 +!p 1.727263 0.842475 -11.206645 -10.535339 -10.575499 +!p 1.737642 0.817038 -11.131919 -10.501239 -10.541019 +!p 1.748084 0.792545 -11.056839 -10.466610 -10.505204 +!p 1.758588 0.768949 -10.982363 -10.432217 -10.468869 +!p 1.769155 0.746206 -10.909083 -10.398456 -10.432473 +!p 1.779786 0.724274 -10.837165 -10.365303 -10.396058 +!p 1.790481 0.703114 -10.766396 -10.332362 -10.359301 +!p 1.801240 0.682690 -10.696327 -10.299007 -10.321654 +!p 1.812064 0.662966 -10.626450 -10.264562 -10.282523 +!p 1.822952 0.643909 -10.556364 -10.228469 -10.241436 +!p 1.833907 0.625489 -10.485890 -10.190404 -10.198154 +!p 1.844926 0.607676 -10.415108 -10.150319 -10.152714 +!p 1.856013 0.590444 -10.344354 -10.108431 -10.105419 +!p 1.867165 0.573768 -10.274182 -10.065196 -10.056807 +!p 1.878385 0.557622 -10.205346 -10.021287 -10.007627 +!p 1.889672 0.541985 -10.138821 -9.977614 -9.958864 +!p 1.901027 0.526836 -10.075859 -9.935384 -9.911790 +!p 1.912451 0.512155 -9.934896 -9.893443 -9.865308 +!p 1.923943 0.497924 -9.875554 -9.849747 -9.817423 +!p 1.935504 0.484124 -9.816566 -9.804345 -9.768226 +!p 1.947134 0.470741 -9.757931 -9.757319 -9.717825 +!p 1.958834 0.457759 -9.699646 -9.708770 -9.666341 +!p 1.970605 0.445162 -9.641709 -9.658820 -9.613899 +!p 1.982446 0.432939 -9.584118 -9.607609 -9.560635 +!p 1.994359 0.421074 -9.526871 -9.555289 -9.506686 +!p 2.006343 0.409557 -9.469966 -9.502029 -9.452190 +!p 2.018399 0.398376 -9.413401 -9.448003 -9.397286 +!p 2.030528 0.387520 -9.357173 -9.393391 -9.342108 +!p 2.042729 0.376977 -9.301282 -9.338375 -9.286785 +!p 2.055004 0.366739 -9.245725 -9.283129 -9.231436 +!p 2.067352 0.356794 -9.190499 -9.227818 -9.176166 +!p 2.079775 0.347134 -9.135603 -9.172588 -9.121068 +!p 2.092273 0.337750 -9.081035 -9.117562 -9.066215 +!p 2.104845 0.328633 -9.026793 -9.062832 -9.011657 +!p 2.117493 0.319775 -8.972875 -8.972875 -8.972875 +!p 2.130217 0.311167 -8.919279 -8.919279 -8.919279 +!p 2.143017 0.302802 -8.866003 -8.866003 -8.866003 +!p 2.155895 0.294672 -8.813046 -8.813046 -8.813046 +!p 2.168850 0.286769 -8.760404 -8.760404 -8.760404 +!p 2.181882 0.279087 -8.708078 -8.708078 -8.708078 +!p 2.194993 0.271619 -8.656063 -8.656063 -8.656063 +!p 2.208183 0.264359 -8.604360 -8.604360 -8.604360 +!p 2.221452 0.257299 -8.552965 -8.552965 -8.552965 +!p 2.234801 0.250434 -8.501877 -8.501877 -8.501877 +!p 2.248230 0.243757 -8.451094 -8.451094 -8.451094 +!p 2.261739 0.237264 -8.400615 -8.400615 -8.400615 +!p 2.275330 0.230948 -8.350437 -8.350437 -8.350437 +!p 2.289002 0.224803 -8.300559 -8.300559 -8.300559 +!p 2.302757 0.218826 -8.250979 -8.250979 -8.250979 +!p 2.316594 0.213010 -8.201695 -8.201695 -8.201695 +!p 2.330515 0.207352 -8.152706 -8.152706 -8.152706 +!p 2.344519 0.201846 -8.104009 -8.104009 -8.104009 +!p 2.358607 0.196487 -8.055603 -8.055603 -8.055603 +!p 2.372780 0.191272 -8.007486 -8.007486 -8.007486 +!p 2.387038 0.186195 -7.959656 -7.959656 -7.959656 +!p 2.401382 0.181254 -7.912112 -7.912112 -7.912112 +!p 2.415811 0.176444 -7.864852 -7.864852 -7.864852 +!p 2.430328 0.171762 -7.817875 -7.817875 -7.817875 +!p 2.444932 0.167202 -7.771178 -7.771178 -7.771178 +!p 2.459623 0.162763 -7.724760 -7.724760 -7.724760 +!p 2.474403 0.158440 -7.678619 -7.678619 -7.678619 +!p 2.489272 0.154231 -7.632753 -7.632753 -7.632753 +!p 2.504230 0.150132 -7.587162 -7.587162 -7.587162 +!p 2.519278 0.146139 -7.541843 -7.541843 -7.541843 +!p 2.534416 0.142250 -7.496795 -7.496795 -7.496795 +!p 2.549646 0.138462 -7.452016 -7.452016 -7.452016 +!p 2.564966 0.134773 -7.407504 -7.407504 -7.407504 +!p 2.580379 0.131178 -7.363258 -7.363258 -7.363258 +!p 2.595885 0.127676 -7.319277 -7.319277 -7.319277 +!p 2.611484 0.124265 -7.275558 -7.275558 -7.275558 +!p 2.627176 0.120941 -7.232100 -7.232100 -7.232100 +!p 2.642963 0.117703 -7.188902 -7.188902 -7.188902 +!p 2.658844 0.114547 -7.145962 -7.145962 -7.145962 +!p 2.674821 0.111472 -7.103278 -7.103278 -7.103278 +!p 2.690894 0.108476 -7.060850 -7.060850 -7.060850 +!p 2.707064 0.105556 -7.018675 -7.018675 -7.018675 +!p 2.723331 0.102710 -6.976751 -6.976751 -6.976751 +!p 2.739695 0.099937 -6.935078 -6.935078 -6.935078 +!p 2.756158 0.097234 -6.893654 -6.893654 -6.893654 +!p 2.772720 0.094600 -6.852478 -6.852478 -6.852478 +!p 2.789381 0.092033 -6.811547 -6.811547 -6.811547 +!p 2.806142 0.089531 -6.770861 -6.770861 -6.770861 +!p 2.823004 0.087092 -6.730418 -6.730418 -6.730418 +!p 2.839968 0.084715 -6.690217 -6.690217 -6.690217 +!p 2.857033 0.082398 -6.650255 -6.650255 -6.650255 +!p 2.874201 0.080140 -6.610533 -6.610533 -6.610533 +!p 2.891472 0.077939 -6.571047 -6.571047 -6.571047 +!p 2.908847 0.075793 -6.531798 -6.531798 -6.531798 +!p 2.926326 0.073702 -6.492782 -6.492782 -6.492782 +!p 2.943911 0.071663 -6.454000 -6.454000 -6.454000 +!p 2.961601 0.069676 -6.415450 -6.415450 -6.415450 +!p 2.979397 0.067740 -6.377130 -6.377130 -6.377130 +!p 2.997300 0.065852 -6.339038 -6.339038 -6.339038 +!p 3.015311 0.064012 -6.301175 -6.301175 -6.301175 +!p 3.033430 0.062219 -6.263537 -6.263537 -6.263537 +!p 3.051658 0.060471 -6.226124 -6.226124 -6.226124 +!p 3.069995 0.058767 -6.188935 -6.188935 -6.188935 +!p 3.088443 0.057107 -6.151968 -6.151968 -6.151968 + !L 0.009994 -27.027998 + !L 0.020025 -27.025447 + !L 0.030095 -27.021168 + !L 0.040122 -27.015193 + !L 0.050229 -27.007435 + !L 0.060299 -26.997965 + !L 0.070463 -26.986637 + !L 0.080631 -26.973514 + !L 0.090895 -26.958440 + !L 0.100942 -26.941894 + !L 0.111097 -26.923356 + !L 0.121180 -26.903130 + !L 0.131388 -26.880790 + !L 0.141605 -26.856534 + !L 0.151705 -26.830674 + !L 0.162040 -26.802258 + !L 0.172044 -26.772845 + !L 0.182120 -26.741308 + !L 0.192209 -26.707784 + !L 0.202251 -26.672467 + !L 0.212817 -26.633178 + !L 0.223265 -26.592160 + !L 0.233526 -26.549758 + !L 0.243528 -26.506384 + !L 0.253958 -26.458982 + !L 0.264042 -26.411023 + !L 0.274527 -26.358919 + !L 0.284575 -26.306827 + !L 0.294991 -26.250576 + !L 0.305787 -26.189824 + !L 0.316031 -26.129868 + !L 0.326618 -26.065515 + !L 0.337559 -25.996439 + !L 0.347824 -25.929247 + !L 0.358401 -25.857580 + !L 0.369299 -25.781138 + !L 0.379390 -25.707995 + !L 0.389758 -25.630481 + !L 0.400408 -25.548339 + !L 0.411350 -25.461296 + !L 0.422591 -25.369067 + !L 0.432840 -25.282490 + !L 0.443338 -25.191358 + !L 0.454090 -25.095444 + !L 0.465104 -24.994507 + !L 0.476384 -24.888302 + !L 0.486479 -24.790849 + !L 0.496787 -24.688988 + !L 0.507314 -24.582537 + !L 0.518064 -24.471305 + !L 0.529042 -24.355101 + !L 0.540252 -24.233724 + !L 0.551700 -24.106968 + !L 0.561705 -23.993882 + !L 0.571892 -23.876556 + !L 0.582264 -23.754854 + !L 0.592824 -23.628641 + !L 0.603575 -23.497785 + !L 0.614521 -23.362161 + !L 0.625666 -23.221661 + !L 0.637012 -23.076202 + !L 0.648565 -22.925745 + !L 0.660327 -22.770315 + !L 0.672302 -22.610035 + !L 0.682448 -22.472938 + !L 0.692746 -22.332871 + !L 0.703200 -22.190151 + !L 0.713811 -22.045177 + !L 0.724583 -21.898419 + !L 0.735517 -21.750376 + !L 0.746616 -21.601510 + !L 0.757883 -21.452154 + !L 0.769319 -21.302412 + !L 0.780929 -21.152079 + !L 0.792713 -21.000595 + !L 0.804675 -20.847091 + !L 0.816818 -20.690511 + !L 0.829144 -20.529797 + !L 0.841656 -20.364096 + !L 0.851801 -20.227606 + !L 0.862069 -20.087563 + !L 0.872461 -19.944108 + !L 0.882977 -19.797526 + !L 0.893621 -19.648202 + !L 0.904393 -19.496555 + !L 0.915294 -19.342979 + !L 0.926327 -19.187790 + !L 0.937493 -19.031179 + !L 0.948794 -18.873191 + !L 0.960231 -18.713707 + !L 0.971806 -18.552441 + !L 0.983520 -18.388992 + !L 0.995375 -18.224044 + !L 1.007374 -18.058129 + !L 1.019517 -17.891381 + !L 1.031806 -17.723908 + !L 1.044244 -17.555788 + !L 1.056831 -17.387087 + !L 1.069570 -17.217859 + !L 1.082463 -17.048144 + !L 1.095511 -16.877980 + !L 1.108716 -16.707404 + !L 1.118725 -16.579228 + !L 1.128824 -16.450867 + !L 1.139013 -16.322346 + !L 1.149295 -16.193691 + !L 1.159670 -16.064931 + !L 1.170138 -15.936097 + !L 1.180701 -15.807219 + !L 1.191360 -15.678330 + !L 1.202114 -15.549461 + !L 1.212965 -15.420646 + !L 1.223915 -15.291917 + !L 1.234963 -15.163307 + !L 1.246111 -15.034847 + !L 1.257360 -14.906571 + !L 1.268710 -14.778506 + !L 1.280163 -14.650682 + !L 1.291719 -14.523125 + !L 1.303379 -14.395857 + !L 1.315145 -14.268899 + !L 1.327017 -14.142271 + !L 1.338996 -14.015990 + !L 1.351083 -13.890076 + !L 1.363279 -13.764555 + !L 1.375586 -13.639464 + !L 1.388003 -13.514861 + !L 1.400533 -13.390840 + !L 1.413175 -13.267540 + !L 1.425932 -13.145170 + !L 1.438804 -13.024023 + !L 1.451792 -12.904494 + !L 1.464897 -12.787084 + !L 1.478121 -12.672396 + !L 1.491464 -12.561096 + !L 1.504928 -12.453864 + !L 1.518513 -12.351314 + !L 1.532220 -12.253917 + !L 1.546052 -12.161926 + !L 1.560008 -12.075330 + !L 1.574090 -11.993838 + !L 1.588300 -11.916883 + !L 1.602637 -11.843606 + !L 1.617104 -11.772787 + !L 1.631702 -11.702723 + !L 1.646431 -11.631133 + !L 1.661294 -11.555251 + !L 1.676290 -11.472259 + !L 1.686363 -11.411896 + !L 1.696496 -11.347174 + !L 1.706691 -11.278268 + !L 1.716946 -11.205795 + !L 1.727263 -11.130734 + !L 1.737642 -11.054278 + !L 1.748084 -10.977621 + !L 1.758588 -10.901742 + !L 1.769155 -10.827251 + !L 1.779786 -10.754324 + !L 1.790481 -10.682759 + !L 1.801240 -10.612110 + !L 1.812064 -10.541869 + !L 1.822952 -10.471630 + !L 1.833907 -10.401203 + !L 1.844926 -10.330657 + !L 1.856013 -10.260308 + !L 1.867165 -10.190686 + !L 1.878385 -10.122521 + !L 1.889672 -10.056754 + !L 1.901027 -9.994602 + !L 1.912451 -9.934896 + !L 1.923943 -9.875554 + !L 1.935504 -9.816566 + !L 1.947134 -9.757931 + !L 1.958834 -9.699646 + !L 1.970605 -9.641709 + !L 1.982446 -9.584118 + !L 1.994359 -9.526871 + !L 2.006343 -9.469966 + !L 2.018399 -9.413401 + !L 2.030528 -9.357173 + !L 2.042729 -9.301282 + !L 2.055004 -9.245725 + !L 2.067352 -9.190499 + !L 2.079775 -9.135603 + !L 2.092273 -9.081035 + !L 2.104845 -9.026793 + !L 2.117493 -8.972875 + !L 2.130217 -8.919279 + !L 2.143017 -8.866003 + !L 2.155895 -8.813046 + !L 2.168850 -8.760404 + !L 2.181882 -8.708078 + !L 2.194993 -8.656063 + !L 2.208183 -8.604360 + !L 2.221452 -8.552965 + !L 2.234801 -8.501877 + !L 2.248230 -8.451094 + !L 2.261739 -8.400615 + !L 2.275330 -8.350437 + !L 2.289002 -8.300559 + !L 2.302757 -8.250979 + !L 2.316594 -8.201695 + !L 2.330515 -8.152706 + !L 2.344519 -8.104009 + !L 2.358607 -8.055603 + !L 2.372780 -8.007486 + !L 2.387038 -7.959656 + !L 2.401382 -7.912112 + !L 2.415811 -7.864852 + !L 2.430328 -7.817875 + !L 2.444932 -7.771178 + !L 2.459623 -7.724760 + !L 2.474403 -7.678619 + !L 2.489272 -7.632753 + !L 2.504230 -7.587162 + !L 2.519278 -7.541843 + !L 2.534416 -7.496795 + !L 2.549646 -7.452016 + !L 2.564966 -7.407504 + !L 2.580379 -7.363258 + !L 2.595885 -7.319277 + !L 2.611484 -7.275558 + !L 2.627176 -7.232100 + !L 2.642963 -7.188902 + !L 2.658844 -7.145962 + !L 2.674821 -7.103278 + !L 2.690894 -7.060850 + !L 2.707064 -7.018675 + !L 2.723331 -6.976751 + !L 2.739695 -6.935078 + !L 2.756158 -6.893654 + !L 2.772720 -6.852478 + !L 2.789381 -6.811547 + !L 2.806142 -6.770861 + !L 2.823004 -6.730418 + !L 2.839968 -6.690217 + !L 2.857033 -6.650255 + !L 2.874201 -6.610533 + !L 2.891472 -6.571047 + !L 2.908847 -6.531798 + !L 2.926326 -6.492782 + !L 2.943911 -6.454000 + !L 2.961601 -6.415450 + !L 2.979397 -6.377130 + !L 2.997300 -6.339038 + !L 3.015311 -6.301175 + !L 3.033430 -6.263537 + !L 3.051658 -6.226124 + !L 3.069995 -6.188935 + !L 3.088443 -6.151968 + + + radii, charge, core charge, model core charge + +!r 0.0200249 22.5528907 220.5652553 66.8745879 +!r 0.0300952 22.6182761 220.5652553 66.7792492 +!r 0.0401224 22.7094086 220.5652553 66.6464021 +!r 0.0502292 22.8274638 220.5652553 66.4743629 +!r 0.0602995 22.9711401 220.5652553 66.2650620 +!r 0.0704632 23.1423719 220.5652553 66.0157153 +!r 0.0806314 23.3398638 220.5652553 65.7282385 +!r 0.0908953 23.5655552 220.5652553 65.3998276 +!r 0.1009425 23.8118589 220.5652553 65.0415212 +!r 0.1110974 24.0860138 220.5652553 64.6427640 +!r 0.1211800 24.3829447 220.5652553 64.2108847 +!r 0.1313881 24.7082642 220.5652553 63.7376271 +!r 0.1416053 25.0582739 220.5652553 63.2282297 +!r 0.1517054 25.4277363 220.5652553 62.6901269 +!r 0.1620397 25.8292929 220.5652553 62.1046392 +!r 0.1720442 26.2400321 220.5652553 61.5048621 +!r 0.1821201 26.6748329 220.5652553 60.8687104 +!r 0.1922094 27.1306459 220.5652553 60.2001575 +!r 0.2022509 27.6037008 220.5652553 59.5041837 +!r 0.2128170 28.1212902 220.5652553 58.7397716 +!r 0.2232653 28.6518964 220.5652553 57.9524616 +!r 0.2335260 29.1898867 220.5652553 57.1498244 +!r 0.2435277 29.7291415 220.5652553 56.3402653 +!r 0.2539577 30.3056552 220.5652553 55.4684479 +!r 0.2640423 30.8753338 220.5652553 54.5997200 +!r 0.2745274 31.4787344 220.5652553 53.6707063 +!r 0.2845751 32.0659068 220.5652553 52.7568370 +!r 0.2949905 32.6819656 204.4413825 51.7862700 +!r 0.3057872 33.3264251 171.1227475 50.7564659 +!r 0.3160309 33.9413209 144.2759713 49.7583154 +!r 0.3266177 34.5781301 120.7402464 48.7064477 +!r 0.3375593 35.2352310 100.2776233 47.5991027 +!r 0.3478239 35.8483929 84.1297012 46.5429033 +!r 0.3584006 36.4744693 70.1167612 45.4383835 +!r 0.3692989 37.1109058 58.0412141 44.2845625 +!r 0.3793905 37.6900137 48.6708838 43.2032932 +!r 0.3897578 38.2723537 40.5812653 42.0809687 +!r 0.4004084 38.8548382 33.6441897 40.9172829 +!r 0.4113501 39.4339223 27.7343136 39.7121055 +!r 0.4225908 40.0055720 22.7307921 38.4655086 +!r 0.4328401 40.5037967 18.9523944 37.3228894 +!r 0.4433380 40.9890044 15.7271743 36.1481644 +!r 0.4540905 41.4572924 12.9876830 34.9419005 +!r 0.4651038 41.9044041 10.6723543 33.7048663 +!r 0.4763842 42.3257274 8.7253970 32.4380533 +!r 0.4864787 42.6693380 7.2844012 31.3061290 +!r 0.4967872 42.9858720 6.0566872 30.1533426 +!r 0.5073141 43.2716025 5.0149891 28.9808585 +!r 0.5180641 43.5226281 4.1348434 27.7900231 +!r 0.5290418 43.7348914 3.3944003 26.5823774 +!r 0.5402522 43.9042032 2.7742323 25.3596702 +!r 0.5517001 44.0262718 2.2571447 24.1238714 +!r 0.5617055 44.0899976 1.8844372 23.0558589 +!r 0.5718923 44.1130511 1.5678651 21.9813739 +!r 0.5822639 44.0926792 1.2999187 20.9020854 +!r 0.5928236 44.0261621 1.0739396 19.8198063 +!r 0.6035747 43.9108405 0.8840474 18.7364970 +!r 0.6145209 43.7441452 0.7250688 17.6542701 +!r 0.6256656 43.5236299 0.5924707 16.5753931 +!r 0.6370123 43.2470057 0.4822974 15.5022904 +!r 0.6485649 42.9121774 0.3911108 14.4375444 +!r 0.6603270 42.5172823 0.3159353 13.3838942 +!r 0.6723024 42.0607289 0.2542065 12.3442339 +!r 0.6824476 41.6322345 0.2114403 11.4907282 +!r 0.6927459 41.1594720 0.1753766 10.6508858 +!r 0.7031996 40.6420718 0.1450525 9.8266084 +!r 0.7138111 40.0798658 0.1196285 9.0198572 +!r 0.7245827 39.4729021 0.0983754 8.2326460 +!r 0.7355168 38.8214588 0.0806615 7.4670336 +!r 0.7466160 38.1260573 0.0659417 6.7251132 +!r 0.7578826 37.3874725 0.0537469 6.0090015 +!r 0.7693193 36.6067433 0.0436748 5.3208241 +!r 0.7809285 35.7851791 0.0353817 4.6626993 +!r 0.7927129 34.9243648 0.0285747 4.0367191 +!r 0.8046752 34.0261631 0.0230050 3.4449263 +!r 0.8168180 33.0927139 0.0184624 2.8892894 +!r 0.8291440 32.1264297 0.0147693 2.3716721 +!r 0.8416560 31.1299884 0.0117766 1.8937999 +!r 0.8518014 30.3130845 0.0098022 1.5411654 +!r 0.8620691 29.4803644 0.0081415 1.2156547 +!r 0.8724606 28.6335327 0.0067477 0.9178526 +!r 0.8829773 27.7743790 0.0055805 0.6482187 +!r 0.8936208 26.9047701 0.0046051 0.4070671 +!r 0.9043926 26.0266411 0.0037918 0.1945444 +!r 0.9152943 25.1419852 0.0031152 0.0106055 +!r 0.9263273 24.2528434 0.0025536 -0.1450136 +!r 0.9374934 23.3612927 0.0020885 -0.2728252 +!r 0.9487940 22.4694338 0.0017042 -0.3736221 +!r 0.9602309 21.5793786 0.0013874 -0.4485132 +!r 0.9718056 20.6932363 0.0011268 -0.4989628 +!r 0.9835198 19.8131001 0.0009130 -0.5268330 +!r 0.9953753 18.9410332 0.0007381 -0.5343792 +!r 1.0073737 18.0790547 0.0005952 -0.5239997 +!r 1.0195167 17.2291256 0.0004788 -0.4980669 +!r 1.0318060 16.3931354 0.0003842 -0.4589032 +!r 1.0442435 15.5728887 0.0003076 -0.4087642 +!r 1.0568309 14.7700927 0.0002456 -0.3498228 +!r 1.0695701 13.9863452 0.0001956 -0.2841537 +!r 1.0824628 13.2231239 0.0001554 -0.2137197 +!r 1.0955109 12.4817768 0.0001231 -0.1403593 +!r 1.1087163 11.7635132 0.0000973 -0.0657752 +!r 1.1187248 11.2406098 0.0000814 -0.0099767 +!r 1.1288235 10.7316857 0.0000680 0.0450297 +!r 1.1390134 10.2370856 0.0000567 0.0986928 +!r 1.1492953 9.7571042 0.0000472 0.1505122 +!r 1.1596701 9.2919865 0.0000393 0.2000394 +!r 1.1701384 8.8419275 0.0000326 0.2468778 +!r 1.1807013 8.4070721 0.0000270 0.2906829 +!r 1.1913595 7.9875162 0.0000224 0.3311622 +!r 1.2021140 7.5833068 0.0000185 0.3680744 +!r 1.2129655 7.1944435 0.0000153 0.4012283 +!r 1.2239149 6.8208801 0.0000126 0.4304820 +!r 1.2349633 6.4625254 0.0000103 0.4557405 +!r 1.2461113 6.1192460 0.0000085 0.4769548 +!r 1.2573600 5.7908678 0.0000069 0.4941187 +!r 1.2687102 5.4771784 0.0000057 0.5072674 +!r 1.2801629 5.1779299 0.0000046 0.5164741 +!r 1.2917190 4.8928409 0.0000038 0.5218477 +!r 1.3033793 4.6216000 0.0000031 0.5235293 +!r 1.3151450 4.3638681 0.0000025 0.5216896 +!r 1.3270168 4.1192814 0.0000020 0.5165255 +!r 1.3389958 3.8874549 0.0000016 0.5082566 +!r 1.3510830 3.6679845 0.0000013 0.4971219 +!r 1.3632793 3.4604508 0.0000011 0.4833767 +!r 1.3755856 3.2644215 0.0000009 0.4672890 +!r 1.3880031 3.0794546 0.0000007 0.4491360 +!r 1.4005326 2.9051009 0.0000006 0.4292012 +!r 1.4131753 2.7409069 0.0000004 0.4077710 +!r 1.4259320 2.5864172 0.0000004 0.3851319 +!r 1.4388040 2.4411770 0.0000003 0.3615671 +!r 1.4517921 2.3047345 0.0000002 0.3373541 +!r 1.4648974 2.1766426 0.0000002 0.3127619 +!r 1.4781211 2.0564610 0.0000001 0.2880487 +!r 1.4914642 1.9437581 0.0000001 0.2634595 +!r 1.5049276 1.8381122 0.0000001 0.2392241 +!r 1.5185127 1.7391131 0.0000001 0.2155553 +!r 1.5322203 1.6463633 0.0000001 0.1926472 +!r 1.5460517 1.5594788 0.0000000 0.1706739 +!r 1.5600080 1.4780900 0.0000000 0.1497881 +!r 1.5740902 1.4018425 0.0000000 0.1301202 +!r 1.5882995 1.3303975 0.0000000 0.1117778 +!r 1.6026372 1.2634320 0.0000000 0.0948448 +!r 1.6171042 1.2006394 0.0000000 0.0793815 +!r 1.6317019 1.1417292 0.0000000 0.0654243 +!r 1.6464313 1.0864273 0.0000000 0.0529861 +!r 1.6612937 1.0344757 0.0000000 0.0420567 +!r 1.6762902 0.9856323 0.0000000 0.0326037 +!r 1.6863630 0.9546844 0.0000000 0.0270963 +!r 1.6964964 0.9249536 0.0000000 0.0222006 +!r 1.7066906 0.8963796 0.0000000 0.0178923 +!r 1.7169461 0.8689050 0.0000000 0.0141431 +!r 1.7272633 0.8424752 0.0000000 0.0109220 +!r 1.7376424 0.8170382 0.0000000 0.0081947 +!r 1.7480839 0.7925449 0.0000000 0.0059247 +!r 1.7585881 0.7689487 0.0000000 0.0040733 +!r 1.7691555 0.7462056 0.0000000 0.0026000 +!r 1.7797863 0.7242739 0.0000000 0.0014630 +!r 1.7904811 0.7031143 0.0000000 0.0006200 +!r 1.8012401 0.6826899 0.0000000 0.0000285 +!r 1.8120637 0.6629657 0.0000000 -0.0003538 +!r 1.8229524 0.6439089 0.0000000 -0.0005678 +!r 1.8339065 0.6254888 0.0000000 -0.0006527 +!r 1.8449265 0.6076764 0.0000000 -0.0006450 +!r 1.8560126 0.5904445 0.0000000 -0.0005777 +!r 1.8671654 0.5737677 0.0000000 -0.0004795 +!r 1.8783852 0.5576220 0.0000000 -0.0003736 +!r 1.8896724 0.5419851 0.0000000 -0.0002769 +!r 1.9010275 0.5268360 0.0000000 -0.0001986 +!r 1.9124507 0.5121550 0.0000000 -0.0001393 +!r 1.9239427 0.4979235 0.0000000 -0.0000956 +!r 1.9355036 0.4841244 0.0000000 -0.0000639 +!r 1.9471341 0.4707412 0.0000000 -0.0000415 +!r 1.9588344 0.4577587 0.0000000 -0.0000261 +!r 1.9706050 0.4451624 0.0000000 -0.0000157 +!r 1.9824464 0.4329385 0.0000000 -0.0000091 +!r 1.9943589 0.4210743 0.0000000 -0.0000049 +!r 2.0063430 0.4095574 0.0000000 -0.0000025 +!r 2.0183991 0.3983763 0.0000000 -0.0000012 +!r 2.0305277 0.3875197 0.0000000 -0.0000005 +!r 2.0427291 0.3769772 0.0000000 -0.0000002 +!r 2.0550039 0.3667385 0.0000000 -0.0000000 +!r 2.0673524 0.3567940 0.0000000 -0.0000000 +!r 2.0797751 0.3471342 0.0000000 -0.0000000 +!r 2.0922725 0.3377502 0.0000000 -0.0000000 +!r 2.1048450 0.3286331 0.0000000 0.0000000 +!r 2.1174930 0.3197748 0.0000000 0.0000000 +!r 2.1302170 0.3111669 0.0000000 0.0000000 +!r 2.1430175 0.3028017 0.0000000 0.0000000 +!r 2.1558949 0.2946715 0.0000000 0.0000000 +!r 2.1688496 0.2867691 0.0000000 0.0000000 +!r 2.1818823 0.2790874 0.0000000 0.0000000 +!r 2.1949932 0.2716195 0.0000000 0.0000000 +!r 2.2081829 0.2643588 0.0000000 0.0000000 +!r 2.2214519 0.2572989 0.0000000 0.0000000 +!r 2.2348006 0.2504337 0.0000000 0.0000000 +!r 2.2482295 0.2437573 0.0000000 0.0000000 +!r 2.2617391 0.2372637 0.0000000 0.0000000 +!r 2.2753299 0.2309476 0.0000000 0.0000000 +!r 2.2890024 0.2248034 0.0000000 0.0000000 +!r 2.3027570 0.2188261 0.0000000 0.0000000 +!r 2.3165942 0.2130105 0.0000000 0.0000000 +!r 2.3305147 0.2073519 0.0000000 0.0000000 +!r 2.3445187 0.2018455 0.0000000 0.0000000 +!r 2.3586069 0.1964869 0.0000000 0.0000000 +!r 2.3727798 0.1912716 0.0000000 0.0000000 +!r 2.3870378 0.1861955 0.0000000 0.0000000 +!r 2.4013815 0.1812543 0.0000000 0.0000000 +!r 2.4158114 0.1764443 0.0000000 0.0000000 +!r 2.4303281 0.1717615 0.0000000 0.0000000 +!r 2.4449319 0.1672023 0.0000000 0.0000000 +!r 2.4596235 0.1627631 0.0000000 0.0000000 +!r 2.4744034 0.1584404 0.0000000 0.0000000 +!r 2.4892721 0.1542310 0.0000000 0.0000000 +!r 2.5042301 0.1501315 0.0000000 0.0000000 +!r 2.5192780 0.1461389 0.0000000 0.0000000 +!r 2.5344164 0.1422502 0.0000000 0.0000000 +!r 2.5496457 0.1384623 0.0000000 0.0000000 +!r 2.5649665 0.1347726 0.0000000 0.0000000 +!r 2.5803794 0.1311782 0.0000000 0.0000000 +!r 2.5958849 0.1276765 0.0000000 0.0000000 +!r 2.6114835 0.1242650 0.0000000 0.0000000 +!r 2.6271759 0.1209411 0.0000000 0.0000000 +!r 2.6429627 0.1177026 0.0000000 0.0000000 +!r 2.6588442 0.1145470 0.0000000 0.0000000 +!r 2.6748212 0.1114721 0.0000000 0.0000000 +!r 2.6908942 0.1084757 0.0000000 0.0000000 +!r 2.7070638 0.1055558 0.0000000 0.0000000 +!r 2.7233305 0.1027102 0.0000000 0.0000000 +!r 2.7396950 0.0999371 0.0000000 0.0000000 +!r 2.7561579 0.0972344 0.0000000 0.0000000 +!r 2.7727196 0.0946003 0.0000000 0.0000000 +!r 2.7893809 0.0920331 0.0000000 0.0000000 +!r 2.8061423 0.0895309 0.0000000 0.0000000 +!r 2.8230044 0.0870921 0.0000000 0.0000000 +!r 2.8399678 0.0847151 0.0000000 0.0000000 +!r 2.8570332 0.0823982 0.0000000 0.0000000 +!r 2.8742011 0.0801399 0.0000000 0.0000000 +!r 2.8914722 0.0779387 0.0000000 0.0000000 +!r 2.9088470 0.0757931 0.0000000 0.0000000 +!r 2.9263263 0.0737018 0.0000000 0.0000000 +!r 2.9439106 0.0716633 0.0000000 0.0000000 +!r 2.9616005 0.0696764 0.0000000 0.0000000 +!r 2.9793968 0.0677397 0.0000000 0.0000000 +!r 2.9973000 0.0658520 0.0000000 0.0000000 +!r 3.0153108 0.0640120 0.0000000 0.0000000 +!r 3.0334298 0.0622186 0.0000000 0.0000000 +!r 3.0516577 0.0604707 0.0000000 0.0000000 +!r 3.0699951 0.0587670 0.0000000 0.0000000 +!r 3.0884427 0.0571066 0.0000000 0.0000000 + + Metagga taups and taumodps +!t 0.0200249 2.9590E+02 6.4665E+02 +!t 0.0300952 2.9633E+02 6.4665E+02 +!t 0.0401224 2.9692E+02 6.4665E+02 +!t 0.0502292 2.9767E+02 6.4665E+02 +!t 0.0602995 2.9857E+02 6.4665E+02 +!t 0.0704632 2.9961E+02 6.4665E+02 +!t 0.0806314 3.0079E+02 6.4665E+02 +!t 0.0908953 3.0209E+02 6.4665E+02 +!t 0.1009425 3.0346E+02 6.4665E+02 +!t 0.1110974 3.0493E+02 6.4665E+02 +!t 0.1211800 3.0645E+02 6.4665E+02 +!t 0.1313881 3.0803E+02 6.4665E+02 +!t 0.1416053 3.0964E+02 6.4665E+02 +!t 0.1517054 3.1123E+02 6.4665E+02 +!t 0.1620397 3.1285E+02 6.4665E+02 +!t 0.1720442 3.1437E+02 6.4665E+02 +!t 0.1821201 3.1585E+02 6.4665E+02 +!t 0.1922094 3.1725E+02 6.4665E+02 +!t 0.2022509 3.1854E+02 6.4665E+02 +!t 0.2128170 3.1977E+02 6.4665E+02 +!t 0.2232653 3.2085E+02 6.4665E+02 +!t 0.2335260 3.2173E+02 6.4665E+02 +!t 0.2435277 3.2242E+02 6.4665E+02 +!t 0.2539577 3.2295E+02 6.4665E+02 +!t 0.2640423 3.2324E+02 6.4665E+02 +!t 0.2745274 3.2332E+02 6.4665E+02 +!t 0.2845751 3.2316E+02 6.4665E+02 +!t 0.2949905 3.2275E+02 6.4665E+02 +!t 0.3057872 3.2204E+02 6.4665E+02 +!t 0.3160309 3.2110E+02 6.4665E+02 +!t 0.3266177 3.1984E+02 6.4665E+02 +!t 0.3375593 3.1824E+02 6.4665E+02 +!t 0.3478239 3.1646E+02 6.4665E+02 +!t 0.3584006 3.1435E+02 6.4665E+02 +!t 0.3692989 3.1187E+02 6.4665E+02 +!t 0.3793905 3.0931E+02 6.4665E+02 +!t 0.3897578 3.0643E+02 6.4665E+02 +!t 0.4004084 3.0321E+02 6.4332E+02 +!t 0.4113501 2.9963E+02 6.3267E+02 +!t 0.4225908 2.9568E+02 6.2137E+02 +!t 0.4328401 2.9187E+02 6.1078E+02 +!t 0.4433380 2.8776E+02 5.9967E+02 +!t 0.4540905 2.8334E+02 5.8803E+02 +!t 0.4651038 2.7864E+02 5.7587E+02 +!t 0.4763842 2.7363E+02 5.6319E+02 +!t 0.4864787 2.6902E+02 5.5167E+02 +!t 0.4967872 2.6420E+02 5.3977E+02 +!t 0.5073141 2.5917E+02 5.2749E+02 +!t 0.5180641 2.5394E+02 5.1485E+02 +!t 0.5290418 2.4853E+02 5.0187E+02 +!t 0.5402522 2.4296E+02 4.8856E+02 +!t 0.5517001 2.3722E+02 4.7495E+02 +!t 0.5617055 2.3220E+02 4.6305E+02 +!t 0.5718923 2.2708E+02 4.5097E+02 +!t 0.5822639 2.2189E+02 4.3871E+02 +!t 0.5928236 2.1664E+02 4.2630E+02 +!t 0.6035747 2.1133E+02 4.1375E+02 +!t 0.6145209 2.0598E+02 4.0110E+02 +!t 0.6256656 2.0061E+02 3.8835E+02 +!t 0.6370123 1.9523E+02 3.7554E+02 +!t 0.6485649 1.8986E+02 3.6269E+02 +!t 0.6603270 1.8450E+02 3.4982E+02 +!t 0.6723024 1.7917E+02 3.3696E+02 +!t 0.6824476 1.7475E+02 3.2626E+02 +!t 0.6927459 1.7037E+02 3.1560E+02 +!t 0.7031996 1.6604E+02 3.0499E+02 +!t 0.7138111 1.6174E+02 2.9445E+02 +!t 0.7245827 1.5750E+02 2.8399E+02 +!t 0.7355168 1.5330E+02 2.7361E+02 +!t 0.7466160 1.4916E+02 2.6335E+02 +!t 0.7578826 1.4508E+02 2.5320E+02 +!t 0.7693193 1.4106E+02 2.4318E+02 +!t 0.7809285 1.3709E+02 2.3330E+02 +!t 0.7927129 1.3318E+02 2.2358E+02 +!t 0.8046752 1.2932E+02 2.1402E+02 +!t 0.8168180 1.2551E+02 2.0463E+02 +!t 0.8291440 1.2176E+02 1.9542E+02 +!t 0.8416560 1.1804E+02 1.8641E+02 +!t 0.8518014 1.1510E+02 1.7934E+02 +!t 0.8620691 1.1218E+02 1.7241E+02 +!t 0.8724606 1.0928E+02 1.6561E+02 +!t 0.8829773 1.0639E+02 1.5895E+02 +!t 0.8936208 1.0352E+02 1.5243E+02 +!t 0.9043926 1.0066E+02 1.4606E+02 +!t 0.9152943 9.7814E+01 1.3984E+02 +!t 0.9263273 9.4971E+01 1.3377E+02 +!t 0.9374934 9.2132E+01 1.2786E+02 +!t 0.9487940 8.9296E+01 1.2210E+02 +!t 0.9602309 8.6462E+01 1.1650E+02 +!t 0.9718056 8.3627E+01 1.1107E+02 +!t 0.9835198 8.0792E+01 1.0580E+02 +!t 0.9953753 7.7957E+01 1.0069E+02 +!t 1.0073737 7.5121E+01 9.5746E+01 +!t 1.0195167 7.2286E+01 9.0966E+01 +!t 1.0318060 6.9454E+01 8.6347E+01 +!t 1.0442435 6.6627E+01 8.1889E+01 +!t 1.0568309 6.3808E+01 7.7587E+01 +!t 1.0695701 6.1000E+01 7.3439E+01 +!t 1.0824628 5.8208E+01 6.9441E+01 +!t 1.0955109 5.5435E+01 6.5591E+01 +!t 1.1087163 5.2687E+01 6.1884E+01 +!t 1.1187248 5.0646E+01 5.9196E+01 +!t 1.1288235 4.8624E+01 5.6587E+01 +!t 1.1390134 4.6625E+01 5.4054E+01 +!t 1.1492953 4.4650E+01 5.1597E+01 +!t 1.1596701 4.2702E+01 4.9214E+01 +!t 1.1701384 4.0784E+01 4.6904E+01 +!t 1.1807013 3.8898E+01 4.4665E+01 +!t 1.1913595 3.7048E+01 4.2498E+01 +!t 1.2021140 3.5235E+01 4.0400E+01 +!t 1.2129655 3.3462E+01 3.8370E+01 +!t 1.2239149 3.1732E+01 3.6408E+01 +!t 1.2349633 3.0046E+01 3.4512E+01 +!t 1.2461113 2.8407E+01 3.2681E+01 +!t 1.2573600 2.6818E+01 3.0914E+01 +!t 1.2687102 2.5278E+01 2.9211E+01 +!t 1.2801629 2.3791E+01 2.7569E+01 +!t 1.2917190 2.2357E+01 2.5989E+01 +!t 1.3033793 2.0978E+01 2.4470E+01 +!t 1.3151450 1.9654E+01 2.3009E+01 +!t 1.3270168 1.8387E+01 2.1608E+01 +!t 1.3389958 1.7176E+01 2.0263E+01 +!t 1.3510830 1.6021E+01 1.8976E+01 +!t 1.3632793 1.4923E+01 1.7744E+01 +!t 1.3755856 1.3881E+01 1.6568E+01 +!t 1.3880031 1.2895E+01 1.5445E+01 +!t 1.4005326 1.1964E+01 1.4375E+01 +!t 1.4131753 1.1086E+01 1.3358E+01 +!t 1.4259320 1.0261E+01 1.2391E+01 +!t 1.4388040 9.4877E+00 1.1475E+01 +!t 1.4517921 8.7637E+00 1.0609E+01 +!t 1.4648974 8.0876E+00 9.7903E+00 +!t 1.4781211 7.4577E+00 9.0191E+00 +!t 1.4914642 6.8720E+00 8.2941E+00 +!t 1.5049276 6.3286E+00 7.6140E+00 +!t 1.5185127 5.8253E+00 6.9778E+00 +!t 1.5322203 5.3601E+00 6.3842E+00 +!t 1.5460517 4.9309E+00 5.8320E+00 +!t 1.5600080 4.5356E+00 5.3197E+00 +!t 1.5740902 4.1720E+00 4.8461E+00 +!t 1.5882995 3.8380E+00 4.4096E+00 +!t 1.6026372 3.5317E+00 4.0088E+00 +!t 1.6171042 3.2510E+00 3.6421E+00 +!t 1.6317019 2.9941E+00 3.3079E+00 +!t 1.6464313 2.7591E+00 3.0044E+00 +!t 1.6612937 2.5444E+00 2.7300E+00 +!t 1.6762902 2.3481E+00 2.4828E+00 +!t 1.6863630 2.2268E+00 2.3322E+00 +!t 1.6964964 2.1126E+00 2.1923E+00 +!t 1.7066906 2.0051E+00 2.0626E+00 +!t 1.7169461 1.9039E+00 1.9425E+00 +!t 1.7272633 1.8086E+00 1.8314E+00 +!t 1.7376424 1.7188E+00 1.7287E+00 +!t 1.7480839 1.6342E+00 1.6339E+00 +!t 1.7585881 1.5544E+00 1.5464E+00 +!t 1.7691555 1.4792E+00 1.4657E+00 +!t 1.7797863 1.4083E+00 1.3911E+00 +!t 1.7904811 1.3414E+00 1.3221E+00 +!t 1.8012401 1.2782E+00 1.2583E+00 +!t 1.8120637 1.2185E+00 1.1990E+00 +!t 1.8229524 1.1620E+00 1.1438E+00 +!t 1.8339065 1.1086E+00 1.0922E+00 +!t 1.8449265 1.0580E+00 1.0438E+00 +!t 1.8560126 1.0101E+00 9.9821E-01 +!t 1.8671654 9.6471E-01 9.5504E-01 +!t 1.8783852 9.2161E-01 9.1400E-01 +!t 1.8896724 8.8067E-01 8.7484E-01 +!t 1.9010275 8.4177E-01 8.3740E-01 +!t 1.9124507 8.0478E-01 8.0155E-01 +!t 1.9239427 7.6957E-01 7.6724E-01 +!t 1.9355036 7.3604E-01 7.3438E-01 +!t 1.9471341 7.0408E-01 7.0294E-01 +!t 1.9588344 6.7361E-01 6.7284E-01 +!t 1.9706050 6.4453E-01 6.4403E-01 +!t 1.9824464 6.1677E-01 6.1645E-01 +!t 1.9943589 5.9025E-01 5.9006E-01 +!t 2.0063430 5.6491E-01 5.6481E-01 +!t 2.0183991 5.4069E-01 5.4064E-01 +!t 2.0305277 5.1753E-01 5.1751E-01 +!t 2.0427291 4.9538E-01 4.9537E-01 +!t 2.0550039 4.7420E-01 4.7419E-01 +!t 2.0673524 4.5393E-01 4.5393E-01 +!t 2.0797751 4.3453E-01 4.3453E-01 +!t 2.0922725 4.1598E-01 4.1598E-01 +!t 2.1048450 3.9823E-01 3.9823E-01 +!t 2.1174930 3.8124E-01 3.8124E-01 +!t 2.1302170 3.6499E-01 3.6499E-01 +!t 2.1430175 3.4944E-01 3.4944E-01 +!t 2.1558949 3.3456E-01 3.3456E-01 +!t 2.1688496 3.2033E-01 3.2033E-01 +!t 2.1818823 3.0671E-01 3.0671E-01 +!t 2.1949932 2.9368E-01 2.9368E-01 +!t 2.2081829 2.8121E-01 2.8121E-01 +!t 2.2214519 2.6928E-01 2.6928E-01 +!t 2.2348006 2.5787E-01 2.5787E-01 +!t 2.2482295 2.4695E-01 2.4695E-01 +!t 2.2617391 2.3650E-01 2.3650E-01 +!t 2.2753299 2.2651E-01 2.2651E-01 +!t 2.2890024 2.1694E-01 2.1694E-01 +!t 2.3027570 2.0779E-01 2.0779E-01 +!t 2.3165942 1.9903E-01 1.9903E-01 +!t 2.3305147 1.9065E-01 1.9065E-01 +!t 2.3445187 1.8263E-01 1.8263E-01 +!t 2.3586069 1.7496E-01 1.7496E-01 +!t 2.3727798 1.6762E-01 1.6762E-01 +!t 2.3870378 1.6059E-01 1.6059E-01 +!t 2.4013815 1.5387E-01 1.5387E-01 +!t 2.4158114 1.4743E-01 1.4743E-01 +!t 2.4303281 1.4127E-01 1.4127E-01 +!t 2.4449319 1.3538E-01 1.3538E-01 +!t 2.4596235 1.2974E-01 1.2974E-01 +!t 2.4744034 1.2434E-01 1.2434E-01 +!t 2.4892721 1.1917E-01 1.1917E-01 +!t 2.5042301 1.1422E-01 1.1422E-01 +!t 2.5192780 1.0948E-01 1.0948E-01 +!t 2.5344164 1.0494E-01 1.0494E-01 +!t 2.5496457 1.0060E-01 1.0060E-01 +!t 2.5649665 9.6446E-02 9.6446E-02 +!t 2.5803794 9.2466E-02 9.2466E-02 +!t 2.5958849 8.8655E-02 8.8655E-02 +!t 2.6114835 8.5006E-02 8.5006E-02 +!t 2.6271759 8.1511E-02 8.1511E-02 +!t 2.6429627 7.8164E-02 7.8164E-02 +!t 2.6588442 7.4959E-02 7.4959E-02 +!t 2.6748212 7.1890E-02 7.1890E-02 +!t 2.6908942 6.8949E-02 6.8949E-02 +!t 2.7070638 6.6133E-02 6.6133E-02 +!t 2.7233305 6.3435E-02 6.3435E-02 +!t 2.7396950 6.0851E-02 6.0851E-02 +!t 2.7561579 5.8375E-02 5.8375E-02 +!t 2.7727196 5.6003E-02 5.6003E-02 +!t 2.7893809 5.3730E-02 5.3730E-02 +!t 2.8061423 5.1552E-02 5.1552E-02 +!t 2.8230044 4.9465E-02 4.9465E-02 +!t 2.8399678 4.7465E-02 4.7465E-02 +!t 2.8570332 4.5548E-02 4.5548E-02 +!t 2.8742011 4.3711E-02 4.3711E-02 +!t 2.8914722 4.1950E-02 4.1950E-02 +!t 2.9088470 4.0262E-02 4.0262E-02 +!t 2.9263263 3.8644E-02 3.8644E-02 +!t 2.9439106 3.7093E-02 3.7093E-02 +!t 2.9616005 3.5606E-02 3.5606E-02 +!t 2.9793968 3.4180E-02 3.4180E-02 +!t 2.9973000 3.2813E-02 3.2813E-02 +!t 3.0153108 3.1502E-02 3.1502E-02 +!t 3.0334298 3.0244E-02 3.0244E-02 +!t 3.0516577 2.9038E-02 2.9038E-02 +!t 3.0699951 2.7882E-02 2.7882E-02 +!t 3.0884427 2.6773E-02 2.6773E-02 + + + +!vt 0.1000394 4.1827E-03 1.9061E-02 +!vt 0.1024657 4.5435E-03 1.9061E-02 +!vt 0.1049509 4.9314E-03 1.9062E-02 +!vt 0.1074963 5.3362E-03 1.9062E-02 +!vt 0.1101035 5.7464E-03 1.9062E-02 +!vt 0.1127739 6.1500E-03 1.9063E-02 +!vt 0.1155091 6.5361E-03 1.9063E-02 +!vt 0.1183106 6.8956E-03 1.9063E-02 +!vt 0.1211800 7.2219E-03 1.9064E-02 +!vt 0.1241190 7.5112E-03 1.9065E-02 +!vt 0.1271294 7.7620E-03 1.9065E-02 +!vt 0.1302127 7.9750E-03 1.9066E-02 +!vt 0.1333708 8.1527E-03 1.9067E-02 +!vt 0.1366055 8.2984E-03 1.9068E-02 +!vt 0.1399187 8.4161E-03 1.9069E-02 +!vt 0.1433122 8.5104E-03 1.9070E-02 +!vt 0.1467880 8.5854E-03 1.9071E-02 +!vt 0.1503482 8.6454E-03 1.9072E-02 +!vt 0.1539946 8.6947E-03 1.9074E-02 +!vt 0.1577295 8.7372E-03 1.9076E-02 +!vt 0.1615550 8.7768E-03 1.9078E-02 +!vt 0.1654733 8.8174E-03 1.9080E-02 +!vt 0.1694866 8.8626E-03 1.9082E-02 +!vt 0.1735973 8.9160E-03 1.9085E-02 +!vt 0.1778076 8.9809E-03 1.9088E-02 +!vt 0.1821201 9.0601E-03 1.9091E-02 +!vt 0.1865371 9.1561E-03 1.9095E-02 +!vt 0.1910613 9.2707E-03 1.9099E-02 +!vt 0.1956952 9.4050E-03 1.9103E-02 +!vt 0.2004415 9.5594E-03 1.9108E-02 +!vt 0.2053029 9.7335E-03 1.9114E-02 +!vt 0.2102823 9.9258E-03 1.9120E-02 +!vt 0.2153823 1.0134E-02 1.9126E-02 +!vt 0.2206061 1.0354E-02 1.9134E-02 +!vt 0.2259566 1.0579E-02 1.9142E-02 +!vt 0.2314368 1.0801E-02 1.9151E-02 +!vt 0.2370500 1.1006E-02 1.9160E-02 +!vt 0.2427993 1.1176E-02 1.9171E-02 +!vt 0.2486880 1.1288E-02 1.9183E-02 +!vt 0.2547196 1.1314E-02 1.9196E-02 +!vt 0.2608974 1.1224E-02 1.9210E-02 +!vt 0.2672251 1.0988E-02 1.9225E-02 +!vt 0.2737063 1.0587E-02 1.9242E-02 +!vt 0.2803446 1.0021E-02 1.9260E-02 +!vt 0.2871439 9.3169E-03 1.9280E-02 +!vt 0.2941082 8.5361E-03 1.9302E-02 +!vt 0.3012414 7.7626E-03 1.9326E-02 +!vt 0.3085475 7.0833E-03 1.9352E-02 +!vt 0.3160309 6.5605E-03 1.9380E-02 +!vt 0.3236957 6.2131E-03 1.9411E-02 +!vt 0.3315465 6.0217E-03 1.9445E-02 +!vt 0.3395877 5.9507E-03 1.9481E-02 +!vt 0.3478239 5.9740E-03 1.9520E-02 +!vt 0.3562598 6.0869E-03 1.9562E-02 +!vt 0.3649004 6.3027E-03 1.9608E-02 +!vt 0.3737505 6.6400E-03 1.9658E-02 +!vt 0.3828152 7.1123E-03 1.9711E-02 +!vt 0.3920999 7.7286E-03 1.9769E-02 +!vt 0.4016097 8.5033E-03 1.9832E-02 +!vt 0.4113501 9.4597E-03 1.9899E-02 +!vt 0.4213268 1.0610E-02 1.9972E-02 +!vt 0.4315455 1.1932E-02 2.0050E-02 +!vt 0.4420120 1.3361E-02 2.0135E-02 +!vt 0.4527323 1.4809E-02 2.0227E-02 +!vt 0.4637126 1.6191E-02 2.0326E-02 +!vt 0.4749593 1.7443E-02 2.0433E-02 +!vt 0.4864787 1.8532E-02 2.0548E-02 +!vt 0.4982776 1.9450E-02 2.0674E-02 +!vt 0.5103625 2.0209E-02 2.0809E-02 +!vt 0.5227406 2.0831E-02 2.0957E-02 +!vt 0.5354189 2.1339E-02 2.1117E-02 +!vt 0.5484047 2.1759E-02 2.1290E-02 +!vt 0.5617055 2.2111E-02 2.1479E-02 +!vt 0.5753288 2.2411E-02 2.1684E-02 +!vt 0.5892826 2.2672E-02 2.1906E-02 +!vt 0.6035747 2.2905E-02 2.2146E-02 +!vt 0.6182135 2.3120E-02 2.2405E-02 +!vt 0.6332074 2.3325E-02 2.2684E-02 +!vt 0.6485649 2.3531E-02 2.2981E-02 +!vt 0.6642949 2.3749E-02 2.3294E-02 +!vt 0.6804064 2.3989E-02 2.3622E-02 +!vt 0.6969086 2.4261E-02 2.3958E-02 +!vt 0.7138111 2.4573E-02 2.4296E-02 +!vt 0.7311235 2.4932E-02 2.4628E-02 +!vt 0.7488558 2.5341E-02 2.4945E-02 +!vt 0.7670182 2.5802E-02 2.5243E-02 +!vt 0.7856211 2.6313E-02 2.5519E-02 +!vt 0.8046752 2.6871E-02 2.5777E-02 +!vt 0.8241914 2.7473E-02 2.6028E-02 +!vt 0.8441809 2.8111E-02 2.6284E-02 +!vt 0.8646553 2.8780E-02 2.6553E-02 +!vt 0.8856262 2.9472E-02 2.6833E-02 +!vt 0.9071058 3.0178E-02 2.7106E-02 +!vt 0.9291063 3.0890E-02 2.7344E-02 +!vt 0.9516404 3.1595E-02 2.7510E-02 +!vt 0.9747210 3.2280E-02 2.7577E-02 +!vt 0.9983614 3.2928E-02 2.7543E-02 +!vt 1.0225752 3.3519E-02 2.7410E-02 +!vt 1.0473763 3.4034E-02 2.7172E-02 +!vt 1.0727788 3.4449E-02 2.6834E-02 +!vt 1.0987975 3.4741E-02 2.6409E-02 +!vt 1.1254472 3.4888E-02 2.5919E-02 +!vt 1.1527432 3.4869E-02 2.5398E-02 +!vt 1.1807013 3.4670E-02 2.4886E-02 +!vt 1.2093375 3.4284E-02 2.4434E-02 +!vt 1.2386682 3.3714E-02 2.4097E-02 +!vt 1.2687102 3.2977E-02 2.3939E-02 +!vt 1.2994809 3.2100E-02 2.4031E-02 +!vt 1.3309979 3.1126E-02 2.4455E-02 +!vt 1.3632793 3.0102E-02 2.5310E-02 +!vt 1.3963436 2.9083E-02 2.6717E-02 +!vt 1.4302098 2.8118E-02 2.8804E-02 +!vt 1.4648974 2.7246E-02 3.1653E-02 +!vt 1.5004264 2.6490E-02 3.5178E-02 +!vt 1.5368170 2.5855E-02 3.8958E-02 +!vt 1.5740902 2.5328E-02 4.2168E-02 +!vt 1.6122674 2.4887E-02 4.3710E-02 +!vt 1.6513706 2.4506E-02 4.2537E-02 +!vt 1.6914221 2.4164E-02 3.8486E-02 +!vt 1.7324451 2.3852E-02 3.3244E-02 +!vt 1.7744629 2.3573E-02 2.8872E-02 +!vt 1.8174999 2.3342E-02 2.5591E-02 +!vt 1.8615807 2.3182E-02 2.3537E-02 +!vt 1.9067306 2.3117E-02 2.3117E-02 +!vt 1.9529755 2.3171E-02 2.3171E-02 +!vt 2.0003420 2.3360E-02 2.3360E-02 +!vt 2.0488573 2.3697E-02 2.3697E-02 +!vt 2.0985493 2.4190E-02 2.4190E-02 +!vt 2.1494465 2.4845E-02 2.4845E-02 +!vt 2.2015782 2.5665E-02 2.5665E-02 +!vt 2.2549742 2.6654E-02 2.6654E-02 +!vt 2.3096652 2.7815E-02 2.7815E-02 +!vt 2.3656828 2.9149E-02 2.9149E-02 +!vt 2.4230589 3.0659E-02 3.0659E-02 +!vt 2.4818266 3.2346E-02 3.2346E-02 +!vt 2.5420196 3.4209E-02 3.4209E-02 +!vt 2.6036725 3.6247E-02 3.6247E-02 +!vt 2.6668207 3.8461E-02 3.8461E-02 +!vt 2.7315005 4.0849E-02 4.0849E-02 +!vt 2.7977490 4.3408E-02 4.3408E-02 +!vt 2.8656043 4.6138E-02 4.6138E-02 +!vt 2.9351053 4.9033E-02 4.9033E-02 +!vt 3.0062919 5.2091E-02 5.2091E-02 +!vt 3.0792050 5.5306E-02 5.5306E-02 +!vt 3.1538866 5.8673E-02 5.8673E-02 +!vt 3.2303794 6.2184E-02 6.2184E-02 +!vt 3.3087275 6.5831E-02 6.5831E-02 +!vt 3.3889758 6.9606E-02 6.9606E-02 +!vt 3.4711704 7.3499E-02 7.3499E-02 +!vt 3.5553585 7.7499E-02 7.7499E-02 +!vt 3.6415884 8.1595E-02 8.1595E-02 +!vt 3.7299097 8.5775E-02 8.5775E-02 +!vt 3.8203732 9.0025E-02 9.0025E-02 +!vt 3.9130307 9.4330E-02 9.4330E-02 +!vt 4.0079354 9.8676E-02 9.8676E-02 +!vt 4.1051420 1.0305E-01 1.0305E-01 +!vt 4.2047061 1.0742E-01 1.0742E-01 +!vt 4.3066850 1.1178E-01 1.1178E-01 +!vt 4.4111373 1.1610E-01 1.1610E-01 +!vt 4.5181229 1.2036E-01 1.2036E-01 +!vt 4.6277032 1.2454E-01 1.2454E-01 +!vt 4.7399413 1.2861E-01 1.2861E-01 +!vt 4.8549016 1.3254E-01 1.3254E-01 +!vt 4.9726500 1.3632E-01 1.3632E-01 +!vt 5.0932543 1.3991E-01 1.3991E-01 +!vt 5.2167836 1.4330E-01 1.4330E-01 +!vt 5.3433089 1.4647E-01 1.4647E-01 +!vt 5.4729030 1.4941E-01 1.4941E-01 +!vt 5.6056401 1.5211E-01 1.5211E-01 +!vt 5.7415966 1.5457E-01 1.5457E-01 +!vt 5.8808505 1.5681E-01 1.5681E-01 +!vt 6.0234819 1.5883E-01 1.5883E-01 +!vt 6.1695725 1.6066E-01 1.6066E-01 +!vt 6.3192063 1.6233E-01 1.6233E-01 +!vt 6.4724693 1.6387E-01 1.6387E-01 +!vt 6.6294494 1.6528E-01 1.6528E-01 +!vt 6.7902369 1.6656E-01 1.6656E-01 +!vt 6.9549240 1.6767E-01 1.6767E-01 +!vt 7.1236054 1.6852E-01 1.6852E-01 +!vt 7.2963779 1.6895E-01 1.6895E-01 +!vt 7.4733407 1.6876E-01 1.6876E-01 +!vt 7.6545955 1.6767E-01 1.6767E-01 +!vt 7.8402464 1.6537E-01 1.6537E-01 +!vt 8.0304000 1.6157E-01 1.6157E-01 +!vt 8.2251654 1.5602E-01 1.5602E-01 +!vt 8.4246546 1.4862E-01 1.4862E-01 +!vt 8.6289821 1.3939E-01 1.3939E-01 +!vt 8.8382653 1.2853E-01 1.2853E-01 +!vt 9.0526243 1.1642E-01 1.1642E-01 +!vt 9.2721823 1.0351E-01 1.0351E-01 +!vt 9.4970653 9.0318E-02 9.0318E-02 +!vt 9.7274026 7.7362E-02 7.7362E-02 +!vt 9.9633263 6.5084E-02 6.5084E-02 +!vt 10.2049720 5.3826E-02 5.3826E-02 +!vt 10.4524785 4.3812E-02 4.3812E-02 +!vt 10.7059879 3.5150E-02 3.5150E-02 +!vt 10.9656457 2.7843E-02 2.7843E-02 +!vt 11.2316012 2.1815E-02 2.1815E-02 +!vt 11.5040070 1.6941E-02 1.6941E-02 +!vt 11.7830197 1.3065E-02 1.3065E-02 +!vt 12.0687994 1.0027E-02 1.0027E-02 +!vt 12.3615102 7.6715E-03 7.6713E-03 +!vt 12.6613203 5.8609E-03 5.8608E-03 +!vt 12.9684019 4.4771E-03 4.4770E-03 +!vt 13.2829312 3.4227E-03 3.4228E-03 +!vt 13.6050890 2.6200E-03 2.6203E-03 +!vt 13.9350603 2.0084E-03 2.0090E-03 +!vt 14.2730345 1.5413E-03 1.5423E-03 +!vt 14.6192058 1.1833E-03 1.1645E-03 +!vt 14.9737730 1.0449E-03 9.7639E-04 +!vt 15.3369397 8.0390E-04 6.9914E-04 +!vt 15.7089144 6.1505E-04 5.3598E-04 +!vt 16.0899108 4.6797E-04 4.0992E-04 +!vt 16.4801478 3.5411E-04 3.1252E-04 +!vt 16.8798493 2.6650E-04 2.3735E-04 +!vt 17.2892450 1.9947E-04 1.7946E-04 +!vt 17.7085701 1.4849E-04 1.3503E-04 +!vt 18.1380652 1.0994E-04 1.0106E-04 +!vt 18.5779771 8.0963E-05 7.5212E-05 +!vt 19.0285583 5.9301E-05 5.5649E-05 +!vt 19.4900678 4.3200E-05 4.0928E-05 +!vt 19.9627705 3.1299E-05 2.9915E-05 + + +n= 3, l= 0, all-electron wave function, pseudo w-f + +& 10 0.009994 0.264851 0.033065 +& 10 0.020025 0.381182 0.066221 +& 10 0.030095 0.393976 0.099449 +& 10 0.040122 0.338152 0.132445 +& 10 0.050229 0.239042 0.165585 +& 10 0.060299 0.116882 0.198455 +& 10 0.070463 -0.015930 0.231450 +& 10 0.080631 -0.148120 0.264248 +& 10 0.090895 -0.273505 0.297111 +& 10 0.100942 -0.383670 0.329013 +& 10 0.111097 -0.479483 0.360961 +& 10 0.121180 -0.557637 0.392359 +& 10 0.131388 -0.618960 0.423792 +& 10 0.141605 -0.662550 0.454868 +& 10 0.151705 -0.688801 0.485183 +& 10 0.162040 -0.699366 0.515756 +& 10 0.172044 -0.695110 0.544901 +& 10 0.182120 -0.677761 0.573780 +& 10 0.192209 -0.648648 0.602197 +& 10 0.202251 -0.609407 0.629960 +& 10 0.212817 -0.558562 0.658591 +& 10 0.223265 -0.500126 0.686291 +& 10 0.233526 -0.436207 0.712880 +& 10 0.243528 -0.368861 0.738193 +& 10 0.253958 -0.294476 0.763936 +& 10 0.264042 -0.219527 0.788172 +& 10 0.274527 -0.139395 0.812670 +& 10 0.284575 -0.061296 0.835461 +& 10 0.294991 0.020270 0.858363 +& 10 0.305787 0.104745 0.881309 +& 10 0.316031 0.184194 0.902320 +& 10 0.326618 0.265018 0.923243 +& 10 0.337559 0.346648 0.944009 +& 10 0.347824 0.421064 0.962687 +& 10 0.358401 0.495207 0.981109 +& 10 0.369299 0.568609 0.999209 +& 10 0.379390 0.633649 1.015163 +& 10 0.389758 0.697389 1.030741 +& 10 0.400408 0.759532 1.045882 +& 10 0.411350 0.819778 1.060523 +& 10 0.422591 0.877805 1.074597 +& 10 0.432840 0.927258 1.086575 +& 10 0.443338 0.974478 1.097997 +& 10 0.454090 1.019258 1.108811 +& 10 0.465104 1.061411 1.118960 +& 10 0.476384 1.100762 1.128387 +& 10 0.486479 1.132773 1.135997 +& 10 0.496787 1.162424 1.142969 +& 10 0.507314 1.189629 1.149261 +& 10 0.518064 1.214313 1.154832 +& 10 0.529042 1.236411 1.159640 +& 10 0.540252 1.255867 1.163641 +& 10 0.551700 1.272638 1.166793 +& 10 0.561705 1.284852 1.168788 +& 10 0.571892 1.295058 1.170101 +& 10 0.582264 1.303249 1.170706 +& 10 0.592824 1.309427 1.170578 +& 10 0.603575 1.313600 1.169691 +& 10 0.614521 1.315782 1.168021 +& 10 0.625666 1.315996 1.165545 +& 10 0.637012 1.314269 1.162239 +& 10 0.648565 1.310637 1.158083 +& 10 0.660327 1.305142 1.153056 +& 10 0.672302 1.297829 1.147141 +& 10 0.682448 1.290384 1.141520 +& 10 0.692746 1.281746 1.135263 +& 10 0.703200 1.271949 1.128361 +& 10 0.713811 1.261030 1.120809 +& 10 0.724583 1.249028 1.112600 +& 10 0.735517 1.235982 1.103732 +& 10 0.746616 1.221934 1.094202 +& 10 0.757883 1.206926 1.084009 +& 10 0.769319 1.191003 1.073155 +& 10 0.780929 1.174210 1.061640 +& 10 0.792713 1.156592 1.049470 +& 10 0.804675 1.138198 1.036649 +& 10 0.816818 1.119074 1.023187 +& 10 0.829144 1.099270 1.009093 +& 10 0.841656 1.078833 0.994377 +& 10 0.851801 1.062063 0.982168 +& 10 0.862069 1.044945 0.969577 +& 10 0.872461 1.027505 0.956615 +& 10 0.882977 1.009769 0.943291 +& 10 0.893621 0.991762 0.929615 +& 10 0.904393 0.973509 0.915600 +& 10 0.915294 0.955036 0.901257 +& 10 0.926327 0.936368 0.886600 +& 10 0.937493 0.917530 0.871642 +& 10 0.948794 0.898546 0.856399 +& 10 0.960231 0.879440 0.840886 +& 10 0.971806 0.860236 0.825120 +& 10 0.983520 0.840957 0.809119 +& 10 0.995375 0.821627 0.792899 +& 10 1.007374 0.802268 0.776481 +& 10 1.019517 0.782902 0.759883 +& 10 1.031806 0.763550 0.743125 +& 10 1.044244 0.744233 0.726228 +& 10 1.056831 0.724972 0.709212 +& 10 1.069570 0.705786 0.692100 +& 10 1.082463 0.686694 0.674914 +& 10 1.095511 0.667715 0.657674 +& 10 1.108716 0.648866 0.640404 +& 10 1.118725 0.634826 0.627445 +& 10 1.128824 0.620875 0.614491 +& 10 1.139013 0.607021 0.601551 +& 10 1.149295 0.593270 0.588635 +& 10 1.159670 0.579628 0.575753 +& 10 1.170138 0.566102 0.562913 +& 10 1.180701 0.552697 0.550124 +& 10 1.191360 0.539418 0.537397 +& 10 1.202114 0.526272 0.524739 +& 10 1.212965 0.513263 0.512160 +& 10 1.223915 0.500397 0.499669 +& 10 1.234963 0.487677 0.487273 +& 10 1.246111 0.475108 0.474980 +& 10 1.257360 0.462695 0.462800 +& 10 1.268710 0.450442 0.450739 +& 10 1.280163 0.438351 0.438804 +& 10 1.291719 0.426428 0.427004 +& 10 1.303379 0.414675 0.415344 +& 10 1.315145 0.403095 0.403831 +& 10 1.327017 0.391691 0.392471 +& 10 1.338996 0.380467 0.381270 +& 10 1.351083 0.369423 0.370233 +& 10 1.363279 0.358564 0.359365 +& 10 1.375586 0.347890 0.348671 +& 10 1.388003 0.337403 0.338154 +& 10 1.400533 0.327106 0.327819 +& 10 1.413175 0.317000 0.317669 +& 10 1.425932 0.307086 0.307707 +& 10 1.438804 0.297364 0.297935 +& 10 1.451792 0.287837 0.288356 +& 10 1.464897 0.278503 0.278972 +& 10 1.478121 0.269365 0.269783 +& 10 1.491464 0.260422 0.260791 +& 10 1.504928 0.251675 0.251997 +& 10 1.518513 0.243122 0.243401 +& 10 1.532220 0.234764 0.235003 +& 10 1.546052 0.226601 0.226803 +& 10 1.560008 0.218631 0.218800 +& 10 1.574090 0.210854 0.210994 +& 10 1.588300 0.203270 0.203383 +& 10 1.602637 0.195875 0.195966 +& 10 1.617104 0.188671 0.188742 +& 10 1.631702 0.181654 0.181709 +& 10 1.646431 0.174823 0.174866 +& 10 1.661294 0.168177 0.168209 +& 10 1.676290 0.161714 0.161737 +& 10 1.686363 0.157506 0.157524 +& 10 1.696496 0.153377 0.153392 +& 10 1.706691 0.149328 0.149339 +& 10 1.716946 0.145357 0.145365 +& 10 1.727263 0.141464 0.141470 +& 10 1.737642 0.137648 0.137652 +& 10 1.748084 0.133908 0.133911 +& 10 1.758588 0.130244 0.130246 +& 10 1.769155 0.126654 0.126656 +& 10 1.779786 0.123139 0.123140 +& 10 1.790481 0.119698 0.119698 +& 10 1.801240 0.116329 0.116329 +& 10 1.812064 0.113031 0.113031 +& 10 1.822952 0.109805 0.109805 +& 10 1.833907 0.106649 0.106649 +& 10 1.844926 0.103562 0.103562 +& 10 1.856013 0.100543 0.100543 +& 10 1.867165 0.097593 0.097593 +& 10 1.878385 0.094709 0.094709 +& 10 1.889672 0.091890 0.091890 +& 10 1.901027 0.089137 0.089137 +& 10 1.912451 0.086448 0.086448 +& 10 1.923943 0.083823 0.083823 +& 10 1.935504 0.081259 0.081259 +& 10 1.947134 0.078758 0.078758 +& 10 1.958834 0.076316 0.076316 +& 10 1.970605 0.073935 0.073935 +& 10 1.982446 0.071612 0.071612 +& 10 1.994359 0.069347 0.069347 +& 10 2.006343 0.067138 0.067138 +& 10 2.018399 0.064986 0.064986 +& 10 2.030528 0.062889 0.062889 +& 10 2.042729 0.060846 0.060846 +& 10 2.055004 0.058856 0.058856 +& 10 2.067352 0.056919 0.056919 +& 10 2.079775 0.055033 0.055033 +& 10 2.092273 0.053197 0.053197 +& 10 2.104845 0.051411 0.051411 +& 10 2.117493 0.049673 0.049673 +& 10 2.130217 0.047984 0.047984 +& 10 2.143017 0.046341 0.046341 +& 10 2.155895 0.044744 0.044744 +& 10 2.168850 0.043192 0.043192 +& 10 2.181882 0.041684 0.041684 +& 10 2.194993 0.040219 0.040219 +& 10 2.208183 0.038797 0.038797 +& 10 2.221452 0.037416 0.037416 +& 10 2.234801 0.036076 0.036076 +& 10 2.248230 0.034775 0.034775 +& 10 2.261739 0.033514 0.033514 +& 10 2.275330 0.032290 0.032290 +& 10 2.289002 0.031104 0.031104 +& 10 2.302757 0.029953 0.029953 +& 10 2.316594 0.028839 0.028839 +& 10 2.330515 0.027759 0.027759 +& 10 2.344519 0.026713 0.026713 +& 10 2.358607 0.025700 0.025700 +& 10 2.372780 0.024719 0.024719 +& 10 2.387038 0.023770 0.023770 +& 10 2.401382 0.022852 0.022852 +& 10 2.415811 0.021963 0.021963 +& 10 2.430328 0.021104 0.021104 +& 10 2.444932 0.020273 0.020273 +& 10 2.459623 0.019470 0.019470 +& 10 2.474403 0.018694 0.018694 +& 10 2.489272 0.017945 0.017945 +& 10 2.504230 0.017221 0.017221 +& 10 2.519278 0.016522 0.016522 +& 10 2.534416 0.015847 0.015847 +& 10 2.549646 0.015196 0.015196 +& 10 2.564966 0.014567 0.014567 +& 10 2.580379 0.013961 0.013961 +& 10 2.595885 0.013377 0.013377 +& 10 2.611484 0.012814 0.012814 +& 10 2.627176 0.012271 0.012271 +& 10 2.642963 0.011748 0.011748 +& 10 2.658844 0.011245 0.011245 +& 10 2.674821 0.010760 0.010760 +& 10 2.690894 0.010293 0.010293 +& 10 2.707064 0.009843 0.009843 +& 10 2.723331 0.009411 0.009411 +& 10 2.739695 0.008995 0.008995 +& 10 2.756158 0.008596 0.008596 +& 10 2.772720 0.008211 0.008211 +& 10 2.789381 0.007842 0.007842 +& 10 2.806142 0.007487 0.007487 +& 10 2.823004 0.007147 0.007147 +& 10 2.839968 0.006820 0.006820 +& 10 2.857033 0.006506 0.006506 +& 10 2.874201 0.006204 0.006204 +& 10 2.891472 0.005915 0.005915 +& 10 2.908847 0.005638 0.005638 +& 10 2.926326 0.005372 0.005372 +& 10 2.943911 0.005117 0.005117 +& 10 2.961601 0.004873 0.004873 +& 10 2.979397 0.004640 0.004640 +& 10 2.997300 0.004416 0.004416 +& 10 3.015311 0.004201 0.004201 +& 10 3.033430 0.003996 0.003996 +& 10 3.051658 0.003800 0.003800 +& 10 3.069995 0.003613 0.003613 +& 10 3.088443 0.003433 0.003433 +& 10 3.107001 0.003262 0.003262 +& 10 3.125671 0.003098 0.003098 +& 10 3.144453 0.002941 0.002941 +& 10 3.163348 0.002792 0.002792 +& 10 3.182357 0.002649 0.002649 +& 10 3.201480 0.002513 0.002513 +& 10 3.220717 0.002383 0.002383 +& 10 3.240071 0.002259 0.002259 +& 10 3.259540 0.002141 0.002141 +& 10 3.279127 0.002028 0.002028 +& 10 3.298831 0.001921 0.001921 +& 10 3.318654 0.001819 0.001819 +& 10 3.338595 0.001722 0.001722 +& 10 3.348611 0.001675 0.001675 +& 10 3.358657 0.001629 0.001629 +& 10 3.368733 0.001584 0.001584 +& 10 3.378839 0.001541 0.001541 +& 10 3.388976 0.001498 0.001498 +& 10 3.399143 0.001457 0.001457 +& 10 3.409340 0.001417 0.001417 +& 10 3.419568 0.001377 0.001377 +& 10 3.429827 0.001339 0.001339 +& 10 3.440116 0.001301 0.001301 +& 10 3.450437 0.001265 0.001265 +& 10 3.460788 0.001229 0.001229 +& 10 3.471170 0.001195 0.001195 +& 10 3.481584 0.001161 0.001161 +& 10 3.492029 0.001128 0.001128 +& 10 3.502505 0.001096 0.001096 +& 10 3.513012 0.001065 0.001065 +& 10 3.523551 0.001034 0.001034 +& 10 3.534122 0.001005 0.001005 +& 10 3.544724 0.000976 0.000976 +& 10 3.555358 0.000948 0.000948 +& 10 3.566025 0.000920 0.000920 +& 10 3.576723 0.000894 0.000894 +& 10 3.587453 0.000868 0.000868 +& 10 3.598215 0.000842 0.000842 +& 10 3.609010 0.000818 0.000818 +& 10 3.619837 0.000794 0.000794 +& 10 3.630696 0.000770 0.000770 +& 10 3.641588 0.000748 0.000748 +& 10 3.652513 0.000726 0.000726 +& 10 3.663471 0.000704 0.000704 +& 10 3.674461 0.000683 0.000683 +& 10 3.685485 0.000663 0.000663 +& 10 3.696541 0.000643 0.000643 +& 10 3.707631 0.000624 0.000624 +& 10 3.718753 0.000605 0.000605 +& 10 3.729910 0.000587 0.000587 +& 10 3.741099 0.000569 0.000569 +& 10 3.752323 0.000552 0.000552 +& 10 3.763580 0.000535 0.000535 +& 10 3.774870 0.000518 0.000518 +& 10 3.786195 0.000503 0.000503 +& 10 3.797554 0.000487 0.000487 +& 10 3.808946 0.000472 0.000472 +& 10 3.820373 0.000458 0.000458 +& 10 3.831834 0.000443 0.000443 +& 10 3.843330 0.000430 0.000430 +& 10 3.854860 0.000416 0.000416 +& 10 3.866424 0.000403 0.000403 +& 10 3.878024 0.000391 0.000391 +& 10 3.889658 0.000378 0.000378 +& 10 3.901327 0.000367 0.000367 +& 10 3.913031 0.000355 0.000355 +& 10 3.924770 0.000344 0.000344 +& 10 3.936544 0.000333 0.000333 +& 10 3.948354 0.000322 0.000322 +& 10 3.960199 0.000312 0.000312 +& 10 3.972079 0.000302 0.000302 +& 10 3.983996 0.000292 0.000292 +& 10 3.995948 0.000283 0.000283 +& 10 4.007935 0.000274 0.000274 +& 10 4.019959 0.000265 0.000265 +& 10 4.032019 0.000256 0.000256 +& 10 4.044115 0.000248 0.000248 +& 10 4.056248 0.000240 0.000240 +& 10 4.068416 0.000232 0.000232 +& 10 4.080622 0.000224 0.000224 +& 10 4.092863 0.000217 0.000217 +& 10 4.105142 0.000210 0.000210 +& 10 4.117457 0.000203 0.000203 +& 10 4.129810 0.000196 0.000196 +& 10 4.142199 0.000190 0.000190 +& 10 4.154626 0.000183 0.000183 +& 10 4.167090 0.000177 0.000177 +& 10 4.179591 0.000171 0.000171 +& 10 4.192130 0.000165 0.000165 +& 10 4.204706 0.000160 0.000160 +& 10 4.217320 0.000155 0.000155 +& 10 4.229972 0.000149 0.000149 +& 10 4.242662 0.000144 0.000144 +& 10 4.255390 0.000139 0.000139 +& 10 4.268156 0.000134 0.000134 +& 10 4.280961 0.000130 0.000130 +& 10 4.293804 0.000125 0.000125 +& 10 4.306685 0.000121 0.000121 +& 10 4.319605 0.000117 0.000117 +& 10 4.332564 0.000113 0.000113 +& 10 4.345562 0.000109 0.000109 +& 10 4.358598 0.000105 0.000105 +& 10 4.371674 0.000101 0.000101 +& 10 4.384789 0.000098 0.000098 +& 10 4.397943 0.000094 0.000094 +& 10 4.411137 0.000091 0.000091 +& 10 4.424371 0.000088 0.000088 +& 10 4.437644 0.000085 0.000085 +& 10 4.450957 0.000082 0.000082 +& 10 4.464310 0.000079 0.000079 +& 10 4.477703 0.000076 0.000076 +& 10 4.491136 0.000073 0.000073 +& 10 4.504609 0.000071 0.000071 +& 10 4.518123 0.000068 0.000068 +& 10 4.531677 0.000066 0.000066 +& 10 4.545272 0.000063 0.000063 +& 10 4.558908 0.000061 0.000061 +& 10 4.572585 0.000059 0.000059 +& 10 4.586303 0.000057 0.000057 +& 10 4.600061 0.000054 0.000054 +& 10 4.613862 0.000052 0.000052 +& 10 4.627703 0.000051 0.000051 +& 10 4.641586 0.000049 0.000049 +& 10 4.655511 0.000047 0.000047 +& 10 4.669478 0.000045 0.000045 +& 10 4.683486 0.000043 0.000043 +& 10 4.697537 0.000042 0.000042 +& 10 4.711629 0.000040 0.000040 +& 10 4.725764 0.000039 0.000039 +& 10 4.739941 0.000037 0.000037 +& 10 4.754161 0.000036 0.000036 +& 10 4.768424 0.000035 0.000035 +& 10 4.782729 0.000033 0.000033 +& 10 4.797077 0.000032 0.000032 +& 10 4.811468 0.000031 0.000031 +& 10 4.825903 0.000030 0.000030 +& 10 4.840380 0.000028 0.000028 +& 10 4.854902 0.000027 0.000027 +& 10 4.869466 0.000026 0.000026 +& 10 4.884075 0.000025 0.000025 +& 10 4.898727 0.000024 0.000024 +& 10 4.913423 0.000023 0.000023 +& 10 4.928163 0.000022 0.000022 +& 10 4.942948 0.000022 0.000022 +& 10 4.957777 0.000021 0.000021 +& 10 4.972650 0.000020 0.000020 +& 10 4.987568 0.000019 0.000019 +& 10 5.002531 0.000018 0.000018 +& 10 5.017538 0.000018 0.000018 +& 10 5.032591 0.000017 0.000017 +& 10 5.047689 0.000016 0.000016 +& 10 5.062832 0.000016 0.000016 +& 10 5.078020 0.000015 0.000015 +& 10 5.093254 0.000014 0.000014 +& 10 5.108534 0.000014 0.000014 +& 10 5.123860 0.000013 0.000013 +& 10 5.139231 0.000013 0.000013 +& 10 5.154649 0.000012 0.000012 +& 10 5.170113 0.000012 0.000012 +& 10 5.185623 0.000011 0.000011 +& 10 5.201180 0.000011 0.000011 +& 10 5.216784 0.000010 0.000010 +& 10 5.232434 0.000010 0.000010 +& 10 5.248131 0.000009 0.000009 +& 10 5.263876 0.000009 0.000009 +& 10 5.279667 0.000009 0.000009 +& 10 5.295506 0.000008 0.000008 +& 10 5.311393 0.000008 0.000008 +& 10 5.327327 0.000008 0.000008 +& 10 5.343309 0.000007 0.000007 +& 10 5.359339 0.000007 0.000007 +& 10 5.375417 0.000007 0.000007 +& 10 5.391543 0.000006 0.000006 +& 10 5.407718 0.000006 0.000006 +& 10 5.423941 0.000006 0.000006 +& 10 5.440213 0.000006 0.000006 +& 10 5.456533 0.000005 0.000005 +& 10 5.472903 0.000005 0.000005 +& 10 5.489322 0.000005 0.000005 +& 10 5.505790 0.000005 0.000005 +& 10 5.522307 0.000004 0.000004 +& 10 5.538874 0.000004 0.000004 +& 10 5.555491 0.000004 0.000004 +& 10 5.572157 0.000004 0.000004 +& 10 5.588874 0.000004 0.000004 +& 10 5.605640 0.000004 0.000004 +& 10 5.622457 0.000003 0.000003 +& 10 5.639324 0.000003 0.000003 +& 10 5.656242 0.000003 0.000003 +& 10 5.673211 0.000003 0.000003 +& 10 5.690231 0.000003 0.000003 +& 10 5.707301 0.000003 0.000003 +& 10 5.724423 0.000003 0.000003 +& 10 5.741597 0.000002 0.000002 +& 10 5.758821 0.000002 0.000002 +& 10 5.776098 0.000002 0.000002 +& 10 5.793426 0.000002 0.000002 +& 10 5.810806 0.000002 0.000002 +& 10 5.828239 0.000002 0.000002 +& 10 5.845724 0.000002 0.000002 +& 10 5.863261 0.000002 0.000002 +& 10 5.880851 0.000002 0.000002 +& 10 5.898493 0.000002 0.000002 +& 10 5.916189 0.000002 0.000002 +& 10 5.933937 0.000001 0.000001 +& 10 5.951739 0.000001 0.000001 +& 10 5.969594 0.000001 0.000001 +& 10 5.987503 0.000001 0.000001 + + +n= 4, l= 0, all-electron wave function, pseudo w-f + +& 20 0.009994 -0.056391 -0.007760 +& 20 0.020025 -0.081116 -0.015539 +& 20 0.030095 -0.083743 -0.023328 +& 20 0.040122 -0.071718 -0.031053 +& 20 0.050229 -0.050452 -0.038800 +& 20 0.060299 -0.024280 -0.046467 +& 20 0.070463 0.004134 -0.054145 +& 20 0.080631 0.032365 -0.061754 +& 20 0.090895 0.059075 -0.069351 +& 20 0.100942 0.082456 -0.076698 +& 20 0.111097 0.102682 -0.084022 +& 20 0.121180 0.119045 -0.091184 +& 20 0.131388 0.131712 -0.098314 +& 20 0.141605 0.140496 -0.105319 +& 20 0.151705 0.145492 -0.112106 +& 20 0.162040 0.147039 -0.118898 +& 20 0.172044 0.145371 -0.125319 +& 20 0.182120 0.140842 -0.131624 +& 20 0.192209 0.133752 -0.137766 +& 20 0.202251 0.124470 -0.143701 +& 20 0.212817 0.112644 -0.149747 +& 20 0.223265 0.099206 -0.155516 +& 20 0.233526 0.084630 -0.160971 +& 20 0.243528 0.069374 -0.166081 +& 20 0.253958 0.052626 -0.171184 +& 20 0.264042 0.035847 -0.175894 +& 20 0.274527 0.018009 -0.180550 +& 20 0.284575 0.000723 -0.184776 +& 20 0.294991 -0.017221 -0.188907 +& 20 0.305787 -0.035680 -0.192916 +& 20 0.316031 -0.052912 -0.196457 +& 20 0.326618 -0.070302 -0.199843 +& 20 0.337559 -0.087702 -0.203046 +& 20 0.347824 -0.103401 -0.205773 +& 20 0.358401 -0.118863 -0.208298 +& 20 0.369299 -0.133964 -0.210593 +& 20 0.379390 -0.147144 -0.212439 +& 20 0.389758 -0.159844 -0.214053 +& 20 0.400408 -0.171984 -0.215412 +& 20 0.411350 -0.183480 -0.216490 +& 20 0.422591 -0.194245 -0.217261 +& 20 0.432840 -0.203125 -0.217665 +& 20 0.443338 -0.211295 -0.217785 +& 20 0.454090 -0.218696 -0.217599 +& 20 0.465104 -0.225273 -0.217084 +& 20 0.476384 -0.230975 -0.216219 +& 20 0.486479 -0.235210 -0.215156 +& 20 0.496787 -0.238709 -0.213790 +& 20 0.507314 -0.241444 -0.212106 +& 20 0.518064 -0.243391 -0.210087 +& 20 0.529042 -0.244527 -0.207715 +& 20 0.540252 -0.244831 -0.204975 +& 20 0.551700 -0.244288 -0.201848 +& 20 0.561705 -0.243137 -0.198849 +& 20 0.571892 -0.241345 -0.195542 +& 20 0.582264 -0.238908 -0.191918 +& 20 0.592824 -0.235821 -0.187967 +& 20 0.603575 -0.232083 -0.183677 +& 20 0.614521 -0.227696 -0.179040 +& 20 0.625666 -0.222659 -0.174045 +& 20 0.637012 -0.216978 -0.168682 +& 20 0.648565 -0.210658 -0.162943 +& 20 0.660327 -0.203706 -0.156820 +& 20 0.672302 -0.196132 -0.150303 +& 20 0.682448 -0.189352 -0.144568 +& 20 0.692746 -0.182154 -0.138550 +& 20 0.703200 -0.174546 -0.132248 +& 20 0.713811 -0.166537 -0.125657 +& 20 0.724583 -0.158134 -0.118775 +& 20 0.735517 -0.149349 -0.111600 +& 20 0.746616 -0.140191 -0.104130 +& 20 0.757883 -0.130672 -0.096364 +& 20 0.769319 -0.120802 -0.088301 +& 20 0.780929 -0.110595 -0.079942 +& 20 0.792713 -0.100061 -0.071286 +& 20 0.804675 -0.089216 -0.062335 +& 20 0.816818 -0.078071 -0.053091 +& 20 0.829144 -0.066642 -0.043558 +& 20 0.841656 -0.054942 -0.033737 +& 20 0.851801 -0.045398 -0.025677 +& 20 0.862069 -0.035698 -0.017439 +& 20 0.872461 -0.025849 -0.009026 +& 20 0.882977 -0.015861 -0.000441 +& 20 0.893621 -0.005740 0.008313 +& 20 0.904393 0.004505 0.017232 +& 20 0.915294 0.014865 0.026310 +& 20 0.926327 0.025332 0.035544 +& 20 0.937493 0.035899 0.044929 +& 20 0.948794 0.046557 0.054458 +& 20 0.960231 0.057297 0.064127 +& 20 0.971806 0.068111 0.073929 +& 20 0.983520 0.078991 0.083857 +& 20 0.995375 0.089928 0.093905 +& 20 1.007374 0.100914 0.104065 +& 20 1.019517 0.111942 0.114330 +& 20 1.031806 0.123001 0.124691 +& 20 1.044244 0.134086 0.135141 +& 20 1.056831 0.145187 0.145672 +& 20 1.069570 0.156296 0.156273 +& 20 1.082463 0.167406 0.166936 +& 20 1.095511 0.178509 0.177652 +& 20 1.108716 0.189598 0.188410 +& 20 1.118725 0.197900 0.196502 +& 20 1.128824 0.206187 0.204608 +& 20 1.139013 0.214455 0.212723 +& 20 1.149295 0.222702 0.220845 +& 20 1.159670 0.230924 0.228968 +& 20 1.170138 0.239119 0.237089 +& 20 1.180701 0.247283 0.245202 +& 20 1.191360 0.255414 0.253303 +& 20 1.202114 0.263509 0.261388 +& 20 1.212965 0.271566 0.269453 +& 20 1.223915 0.279581 0.277493 +& 20 1.234963 0.287552 0.285503 +& 20 1.246111 0.295476 0.293481 +& 20 1.257360 0.303351 0.301420 +& 20 1.268710 0.311174 0.309317 +& 20 1.280163 0.318942 0.317168 +& 20 1.291719 0.326654 0.324969 +& 20 1.303379 0.334306 0.332715 +& 20 1.315145 0.341896 0.340403 +& 20 1.327017 0.349422 0.348029 +& 20 1.338996 0.356880 0.355590 +& 20 1.351083 0.364270 0.363080 +& 20 1.363279 0.371588 0.370498 +& 20 1.375586 0.378831 0.377840 +& 20 1.388003 0.385999 0.385102 +& 20 1.400533 0.393087 0.392281 +& 20 1.413175 0.400094 0.399375 +& 20 1.425932 0.407017 0.406381 +& 20 1.438804 0.413855 0.413295 +& 20 1.451792 0.420604 0.420115 +& 20 1.464897 0.427263 0.426839 +& 20 1.478121 0.433829 0.433465 +& 20 1.491464 0.440300 0.439990 +& 20 1.504928 0.446674 0.446413 +& 20 1.518513 0.452949 0.452730 +& 20 1.532220 0.459123 0.458942 +& 20 1.546052 0.465193 0.465045 +& 20 1.560008 0.471158 0.471039 +& 20 1.574090 0.477017 0.476921 +& 20 1.588300 0.482766 0.482691 +& 20 1.602637 0.488405 0.488347 +& 20 1.617104 0.493932 0.493888 +& 20 1.631702 0.499345 0.499312 +& 20 1.646431 0.504643 0.504619 +& 20 1.661294 0.509825 0.509807 +& 20 1.676290 0.514888 0.514875 +& 20 1.686363 0.518197 0.518187 +& 20 1.696496 0.521453 0.521445 +& 20 1.706691 0.524655 0.524649 +& 20 1.716946 0.527802 0.527798 +& 20 1.727263 0.530896 0.530893 +& 20 1.737642 0.533934 0.533932 +& 20 1.748084 0.536917 0.536916 +& 20 1.758588 0.539845 0.539844 +& 20 1.769155 0.542717 0.542716 +& 20 1.779786 0.545532 0.545532 +& 20 1.790481 0.548292 0.548291 +& 20 1.801240 0.550994 0.550994 +& 20 1.812064 0.553640 0.553640 +& 20 1.822952 0.556228 0.556228 +& 20 1.833907 0.558759 0.558759 +& 20 1.844926 0.561232 0.561232 +& 20 1.856013 0.563647 0.563647 +& 20 1.867165 0.566003 0.566003 +& 20 1.878385 0.568301 0.568301 +& 20 1.889672 0.570540 0.570540 +& 20 1.901027 0.572721 0.572721 +& 20 1.912451 0.574842 0.574842 +& 20 1.923943 0.576904 0.576904 +& 20 1.935504 0.578906 0.578906 +& 20 1.947134 0.580848 0.580848 +& 20 1.958834 0.582730 0.582730 +& 20 1.970605 0.584553 0.584553 +& 20 1.982446 0.586314 0.586314 +& 20 1.994359 0.588016 0.588016 +& 20 2.006343 0.589657 0.589657 +& 20 2.018399 0.591237 0.591237 +& 20 2.030528 0.592756 0.592756 +& 20 2.042729 0.594214 0.594214 +& 20 2.055004 0.595612 0.595612 +& 20 2.067352 0.596948 0.596948 +& 20 2.079775 0.598222 0.598222 +& 20 2.092273 0.599436 0.599436 +& 20 2.104845 0.600588 0.600588 +& 20 2.117493 0.601679 0.601679 +& 20 2.130217 0.602708 0.602708 +& 20 2.143017 0.603675 0.603675 +& 20 2.155895 0.604581 0.604581 +& 20 2.168850 0.605426 0.605426 +& 20 2.181882 0.606209 0.606209 +& 20 2.194993 0.606930 0.606930 +& 20 2.208183 0.607590 0.607590 +& 20 2.221452 0.608189 0.608189 +& 20 2.234801 0.608726 0.608726 +& 20 2.248230 0.609201 0.609201 +& 20 2.261739 0.609615 0.609615 +& 20 2.275330 0.609968 0.609968 +& 20 2.289002 0.610260 0.610260 +& 20 2.302757 0.610491 0.610491 +& 20 2.316594 0.610660 0.610660 +& 20 2.330515 0.610769 0.610769 +& 20 2.344519 0.610817 0.610817 +& 20 2.358607 0.610804 0.610804 +& 20 2.372780 0.610731 0.610731 +& 20 2.387038 0.610597 0.610597 +& 20 2.401382 0.610404 0.610404 +& 20 2.415811 0.610150 0.610150 +& 20 2.430328 0.609836 0.609836 +& 20 2.444932 0.609463 0.609463 +& 20 2.459623 0.609031 0.609031 +& 20 2.474403 0.608539 0.608539 +& 20 2.489272 0.607988 0.607988 +& 20 2.504230 0.607378 0.607378 +& 20 2.519278 0.606710 0.606710 +& 20 2.534416 0.605984 0.605984 +& 20 2.549646 0.605200 0.605200 +& 20 2.564966 0.604358 0.604358 +& 20 2.580379 0.603459 0.603459 +& 20 2.595885 0.602502 0.602502 +& 20 2.611484 0.601489 0.601489 +& 20 2.627176 0.600419 0.600419 +& 20 2.642963 0.599293 0.599293 +& 20 2.658844 0.598111 0.598111 +& 20 2.674821 0.596874 0.596874 +& 20 2.690894 0.595582 0.595582 +& 20 2.707064 0.594235 0.594235 +& 20 2.723331 0.592833 0.592833 +& 20 2.739695 0.591378 0.591378 +& 20 2.756158 0.589868 0.589868 +& 20 2.772720 0.588306 0.588306 +& 20 2.789381 0.586691 0.586691 +& 20 2.806142 0.585023 0.585023 +& 20 2.823004 0.583304 0.583304 +& 20 2.839968 0.581533 0.581533 +& 20 2.857033 0.579711 0.579711 +& 20 2.874201 0.577838 0.577838 +& 20 2.891472 0.575915 0.575915 +& 20 2.908847 0.573943 0.573943 +& 20 2.926326 0.571921 0.571921 +& 20 2.943911 0.569851 0.569851 +& 20 2.961601 0.567732 0.567732 +& 20 2.979397 0.565566 0.565566 +& 20 2.997300 0.563353 0.563353 +& 20 3.015311 0.561093 0.561093 +& 20 3.033430 0.558787 0.558787 +& 20 3.051658 0.556435 0.556435 +& 20 3.069995 0.554039 0.554039 +& 20 3.088443 0.551598 0.551598 +& 20 3.107001 0.549113 0.549113 +& 20 3.125671 0.546585 0.546585 +& 20 3.144453 0.544014 0.544014 +& 20 3.163348 0.541401 0.541401 +& 20 3.182357 0.538746 0.538746 +& 20 3.201480 0.536051 0.536051 +& 20 3.220717 0.533315 0.533315 +& 20 3.240071 0.530540 0.530540 +& 20 3.259540 0.527726 0.527726 +& 20 3.279127 0.524873 0.524873 +& 20 3.298831 0.521983 0.521983 +& 20 3.318654 0.519055 0.519055 +& 20 3.338595 0.516091 0.516091 +& 20 3.348611 0.514595 0.514595 +& 20 3.358657 0.513091 0.513091 +& 20 3.368733 0.511578 0.511578 +& 20 3.378839 0.510056 0.510056 +& 20 3.388976 0.508525 0.508525 +& 20 3.399143 0.506986 0.506986 +& 20 3.409340 0.505439 0.505439 +& 20 3.419568 0.503883 0.503883 +& 20 3.429827 0.502319 0.502319 +& 20 3.440116 0.500747 0.500747 +& 20 3.450437 0.499166 0.499166 +& 20 3.460788 0.497578 0.497578 +& 20 3.471170 0.495982 0.495982 +& 20 3.481584 0.494378 0.494378 +& 20 3.492029 0.492766 0.492766 +& 20 3.502505 0.491146 0.491146 +& 20 3.513012 0.489519 0.489519 +& 20 3.523551 0.487884 0.487884 +& 20 3.534122 0.486242 0.486242 +& 20 3.544724 0.484593 0.484593 +& 20 3.555358 0.482937 0.482937 +& 20 3.566025 0.481273 0.481273 +& 20 3.576723 0.479602 0.479602 +& 20 3.587453 0.477925 0.477925 +& 20 3.598215 0.476240 0.476240 +& 20 3.609010 0.474549 0.474549 +& 20 3.619837 0.472851 0.472851 +& 20 3.630696 0.471146 0.471146 +& 20 3.641588 0.469435 0.469435 +& 20 3.652513 0.467718 0.467718 +& 20 3.663471 0.465994 0.465994 +& 20 3.674461 0.464265 0.464265 +& 20 3.685485 0.462529 0.462529 +& 20 3.696541 0.460787 0.460787 +& 20 3.707631 0.459039 0.459039 +& 20 3.718753 0.457285 0.457285 +& 20 3.729910 0.455525 0.455525 +& 20 3.741099 0.453760 0.453760 +& 20 3.752323 0.451990 0.451990 +& 20 3.763580 0.450213 0.450213 +& 20 3.774870 0.448432 0.448432 +& 20 3.786195 0.446645 0.446645 +& 20 3.797554 0.444853 0.444853 +& 20 3.808946 0.443056 0.443056 +& 20 3.820373 0.441254 0.441254 +& 20 3.831834 0.439448 0.439448 +& 20 3.843330 0.437636 0.437636 +& 20 3.854860 0.435820 0.435820 +& 20 3.866424 0.433999 0.433999 +& 20 3.878024 0.432173 0.432173 +& 20 3.889658 0.430344 0.430344 +& 20 3.901327 0.428509 0.428509 +& 20 3.913031 0.426671 0.426671 +& 20 3.924770 0.424829 0.424829 +& 20 3.936544 0.422982 0.422982 +& 20 3.948354 0.421132 0.421132 +& 20 3.960199 0.419278 0.419278 +& 20 3.972079 0.417420 0.417420 +& 20 3.983996 0.415559 0.415559 +& 20 3.995948 0.413694 0.413694 +& 20 4.007935 0.411825 0.411825 +& 20 4.019959 0.409954 0.409954 +& 20 4.032019 0.408079 0.408079 +& 20 4.044115 0.406201 0.406201 +& 20 4.056248 0.404320 0.404320 +& 20 4.068416 0.402436 0.402436 +& 20 4.080622 0.400549 0.400549 +& 20 4.092863 0.398659 0.398659 +& 20 4.105142 0.396767 0.396767 +& 20 4.117457 0.394872 0.394872 +& 20 4.129810 0.392975 0.392975 +& 20 4.142199 0.391076 0.391076 +& 20 4.154626 0.389174 0.389174 +& 20 4.167090 0.387270 0.387270 +& 20 4.179591 0.385364 0.385364 +& 20 4.192130 0.383456 0.383456 +& 20 4.204706 0.381546 0.381546 +& 20 4.217320 0.379635 0.379635 +& 20 4.229972 0.377722 0.377722 +& 20 4.242662 0.375807 0.375807 +& 20 4.255390 0.373891 0.373891 +& 20 4.268156 0.371973 0.371973 +& 20 4.280961 0.370055 0.370055 +& 20 4.293804 0.368135 0.368135 +& 20 4.306685 0.366214 0.366214 +& 20 4.319605 0.364292 0.364292 +& 20 4.332564 0.362369 0.362369 +& 20 4.345562 0.360445 0.360445 +& 20 4.358598 0.358521 0.358521 +& 20 4.371674 0.356596 0.356596 +& 20 4.384789 0.354671 0.354671 +& 20 4.397943 0.352745 0.352745 +& 20 4.411137 0.350819 0.350819 +& 20 4.424371 0.348893 0.348893 +& 20 4.437644 0.346966 0.346966 +& 20 4.450957 0.345040 0.345040 +& 20 4.464310 0.343114 0.343114 +& 20 4.477703 0.341188 0.341188 +& 20 4.491136 0.339262 0.339262 +& 20 4.504609 0.337337 0.337337 +& 20 4.518123 0.335412 0.335412 +& 20 4.531677 0.333487 0.333487 +& 20 4.545272 0.331564 0.331564 +& 20 4.558908 0.329641 0.329641 +& 20 4.572585 0.327719 0.327719 +& 20 4.586303 0.325797 0.325798 +& 20 4.600061 0.323877 0.323877 +& 20 4.613862 0.321958 0.321958 +& 20 4.627703 0.320041 0.320041 +& 20 4.641586 0.318124 0.318124 +& 20 4.655511 0.316209 0.316209 +& 20 4.669478 0.314296 0.314296 +& 20 4.683486 0.312384 0.312384 +& 20 4.697537 0.310473 0.310473 +& 20 4.711629 0.308565 0.308565 +& 20 4.725764 0.306658 0.306658 +& 20 4.739941 0.304753 0.304753 +& 20 4.754161 0.302851 0.302851 +& 20 4.768424 0.300950 0.300950 +& 20 4.782729 0.299052 0.299052 +& 20 4.797077 0.297156 0.297156 +& 20 4.811468 0.295262 0.295262 +& 20 4.825903 0.293371 0.293371 +& 20 4.840380 0.291482 0.291482 +& 20 4.854902 0.289596 0.289596 +& 20 4.869466 0.287713 0.287713 +& 20 4.884075 0.285833 0.285833 +& 20 4.898727 0.283955 0.283955 +& 20 4.913423 0.282081 0.282081 +& 20 4.928163 0.280209 0.280209 +& 20 4.942948 0.278341 0.278341 +& 20 4.957777 0.276476 0.276476 +& 20 4.972650 0.274614 0.274614 +& 20 4.987568 0.272756 0.272756 +& 20 5.002531 0.270901 0.270901 +& 20 5.017538 0.269050 0.269050 +& 20 5.032591 0.267202 0.267202 +& 20 5.047689 0.265358 0.265358 +& 20 5.062832 0.263518 0.263518 +& 20 5.078020 0.261682 0.261682 +& 20 5.093254 0.259850 0.259850 +& 20 5.108534 0.258021 0.258021 +& 20 5.123860 0.256197 0.256197 +& 20 5.139231 0.254377 0.254377 +& 20 5.154649 0.252562 0.252562 +& 20 5.170113 0.250751 0.250751 +& 20 5.185623 0.248944 0.248944 +& 20 5.201180 0.247141 0.247141 +& 20 5.216784 0.245344 0.245344 +& 20 5.232434 0.243550 0.243550 +& 20 5.248131 0.241762 0.241762 +& 20 5.263876 0.239978 0.239978 +& 20 5.279667 0.238200 0.238200 +& 20 5.295506 0.236426 0.236426 +& 20 5.311393 0.234657 0.234657 +& 20 5.327327 0.232893 0.232893 +& 20 5.343309 0.231134 0.231134 +& 20 5.359339 0.229381 0.229381 +& 20 5.375417 0.227633 0.227633 +& 20 5.391543 0.225890 0.225890 +& 20 5.407718 0.224152 0.224152 +& 20 5.423941 0.222420 0.222420 +& 20 5.440213 0.220694 0.220694 +& 20 5.456533 0.218973 0.218973 +& 20 5.472903 0.217257 0.217257 +& 20 5.489322 0.215548 0.215548 +& 20 5.505790 0.213844 0.213844 +& 20 5.522307 0.212146 0.212146 +& 20 5.538874 0.210454 0.210454 +& 20 5.555491 0.208768 0.208768 +& 20 5.572157 0.207088 0.207088 +& 20 5.588874 0.205414 0.205414 +& 20 5.605640 0.203746 0.203746 +& 20 5.622457 0.202084 0.202084 +& 20 5.639324 0.200429 0.200429 +& 20 5.656242 0.198780 0.198780 +& 20 5.673211 0.197137 0.197137 +& 20 5.690231 0.195500 0.195500 +& 20 5.707301 0.193870 0.193870 +& 20 5.724423 0.192247 0.192247 +& 20 5.741597 0.190630 0.190630 +& 20 5.758821 0.189020 0.189020 +& 20 5.776098 0.187416 0.187416 +& 20 5.793426 0.185819 0.185819 +& 20 5.810806 0.184229 0.184229 +& 20 5.828239 0.182645 0.182645 +& 20 5.845724 0.181069 0.181069 +& 20 5.863261 0.179499 0.179499 +& 20 5.880851 0.177936 0.177936 +& 20 5.898493 0.176380 0.176380 +& 20 5.916189 0.174831 0.174831 +& 20 5.933937 0.173290 0.173290 +& 20 5.951739 0.171755 0.171755 +& 20 5.969594 0.170227 0.170227 +& 20 5.987503 0.168707 0.168707 + + +!J 0 0.009994 0.033720 0.075531 +!J 0 0.020025 0.067544 0.151081 +!J 0 0.030095 0.101469 0.226418 +!J 0 0.040122 0.135197 0.300669 +!J 0 0.050229 0.169123 0.374486 +!J 0 0.060299 0.202840 0.446766 +!J 0 0.070463 0.236763 0.518185 +!J 0 0.080631 0.270576 0.587855 +!J 0 0.090895 0.304561 0.656133 +!J 0 0.100942 0.337668 0.720756 +!J 0 0.111097 0.370949 0.783631 +!J 0 0.121180 0.403793 0.843429 +!J 0 0.131388 0.436825 0.901108 +!J 0 0.141605 0.469641 0.955767 +!J 0 0.151705 0.501820 1.006612 +!J 0 0.162040 0.534456 1.055194 +!J 0 0.172044 0.565750 1.098768 +!J 0 0.182120 0.596946 1.139089 +!J 0 0.192209 0.627841 1.175769 +!J 0 0.202251 0.658226 1.208506 +!J 0 0.212817 0.689782 1.238805 +!J 0 0.223265 0.720542 1.264508 +!J 0 0.233526 0.750294 1.285572 +!J 0 0.243528 0.778836 1.302082 +!J 0 0.253958 0.808093 1.315045 +!J 0 0.264042 0.835863 1.323443 +!J 0 0.274527 0.864169 1.327869 +!J 0 0.284575 0.890726 1.328013 +!J 0 0.294991 0.917641 1.323969 +!J 0 0.305787 0.944852 1.315325 +!J 0 0.316031 0.969993 1.303002 +!J 0 0.326618 0.995256 1.286133 +!J 0 0.337559 1.020563 1.264386 +!J 0 0.347824 1.043537 1.240109 +!J 0 0.358401 1.066403 1.211289 +!J 0 0.369299 1.089078 1.177693 +!J 0 0.379390 1.109248 1.143188 +!J 0 0.389758 1.129115 1.104483 +!J 0 0.400408 1.148598 1.061439 +!J 0 0.411350 1.167608 1.013932 +!J 0 0.422591 1.186051 0.961856 +!J 0 0.432840 1.201882 0.911663 +!J 0 0.443338 1.217103 0.857752 +!J 0 0.454090 1.231629 0.800096 +!J 0 0.465104 1.245372 0.738691 +!J 0 0.476384 1.258235 0.673555 +!J 0 0.486479 1.268689 0.613531 +!J 0 0.496787 1.278322 0.550727 +!J 0 0.507314 1.287060 0.485205 +!J 0 0.518064 1.294824 0.417051 +!J 0 0.529042 1.301533 0.346368 +!J 0 0.540252 1.307102 0.273286 +!J 0 0.551700 1.311445 0.197964 +!J 0 0.561705 1.314120 0.131759 +!J 0 0.571892 1.315767 0.064184 +!J 0 0.582264 1.316322 -0.004603 +!J 0 0.592824 1.315720 -0.074418 +!J 0 0.603575 1.313896 -0.145054 +!J 0 0.614521 1.310778 -0.216271 +!J 0 0.625666 1.306293 -0.287799 +!J 0 0.637012 1.300366 -0.359332 +!J 0 0.648565 1.292915 -0.430526 +!J 0 0.660327 1.283858 -0.500995 +!J 0 0.672302 1.273110 -0.570318 +!J 0 0.682448 1.262802 -0.626886 +!J 0 0.692746 1.251213 -0.682068 +!J 0 0.703200 1.238302 -0.735591 +!J 0 0.713811 1.224033 -0.787190 +!J 0 0.724583 1.208382 -0.836624 +!J 0 0.735517 1.191340 -0.883690 +!J 0 0.746616 1.172914 -0.928238 +!J 0 0.757883 1.153136 -0.970179 +!J 0 0.769319 1.132055 -1.009481 +!J 0 0.780929 1.109735 -1.046149 +!J 0 0.792713 1.086249 -1.080195 +!J 0 0.804675 1.061667 -1.111588 +!J 0 0.816818 1.036040 -1.140203 +!J 0 0.829144 1.009393 -1.165781 +!J 0 0.841656 0.981719 -1.187909 +!J 0 0.851801 0.958817 -1.202754 +!J 0 0.862069 0.935205 -1.214697 +!J 0 0.872461 0.910851 -1.223375 +!J 0 0.882977 0.885724 -1.228428 +!J 0 0.893621 0.859800 -1.229522 +!J 0 0.904393 0.833071 -1.226376 +!J 0 0.915294 0.805548 -1.218787 +!J 0 0.926327 0.777267 -1.206654 +!J 0 0.937493 0.748294 -1.190002 +!J 0 0.948794 0.718735 -1.169008 +!J 0 0.960231 0.688736 -1.144027 +!J 0 0.971806 0.658492 -1.115612 +!J 0 0.983520 0.628237 -1.084488 +!J 0 0.995375 0.597934 -1.050278 +!J 0 1.007374 0.567572 -1.012741 +!J 0 1.019517 0.537246 -0.972068 +!J 0 1.031806 0.507059 -0.928507 +!J 0 1.044244 0.477123 -0.882365 +!J 0 1.056831 0.447543 -0.833938 +!J 0 1.069570 0.418421 -0.783532 +!J 0 1.082463 0.389857 -0.731475 +!J 0 1.095511 0.361946 -0.678106 +!J 0 1.108716 0.334782 -0.623778 +!J 0 1.118725 0.314951 -0.582621 +!J 0 1.128824 0.295623 -0.541282 +!J 0 1.139013 0.276830 -0.499917 +!J 0 1.149295 0.258602 -0.458683 +!J 0 1.159670 0.240966 -0.417734 +!J 0 1.170138 0.223947 -0.377226 +!J 0 1.180701 0.207566 -0.337312 +!J 0 1.191360 0.191843 -0.298143 +!J 0 1.202114 0.176795 -0.259868 +!J 0 1.212965 0.162435 -0.222634 +!J 0 1.223915 0.148774 -0.186584 +!J 0 1.234963 0.135821 -0.151857 +!J 0 1.246111 0.123583 -0.118589 +!J 0 1.257360 0.112064 -0.086910 +!J 0 1.268710 0.101267 -0.056944 +!J 0 1.280163 0.091191 -0.028810 +!J 0 1.291719 0.081835 -0.002616 +!J 0 1.303379 0.073196 0.021539 +!J 0 1.315145 0.065268 0.043570 +!J 0 1.327017 0.058043 0.063409 +!J 0 1.338996 0.051510 0.081008 +!J 0 1.351083 0.045655 0.096344 +!J 0 1.363279 0.040459 0.109424 +!J 0 1.375586 0.035896 0.120291 +!J 0 1.388003 0.031936 0.129027 +!J 0 1.400533 0.028535 0.135763 +!J 0 1.413175 0.025642 0.140680 +!J 0 1.425932 0.023189 0.144006 +!J 0 1.438804 0.021094 0.146019 +!J 0 1.451792 0.019262 0.147029 +!J 0 1.464897 0.017581 0.147363 +!J 0 1.478121 0.015933 0.147331 +!J 0 1.491464 0.014199 0.147200 +!J 0 1.504928 0.012271 0.147150 +!J 0 1.518513 0.010062 0.147249 +!J 0 1.532220 0.007518 0.147401 +!J 0 1.546052 0.004622 0.147340 +!J 0 1.560008 0.001399 0.146658 +!J 0 1.574090 -0.002095 0.144840 +!J 0 1.588300 -0.005777 0.141313 +!J 0 1.602637 -0.009536 0.135484 +!J 0 1.617104 -0.013229 0.126803 +!J 0 1.631702 -0.016661 0.114852 +!J 0 1.646431 -0.019574 0.099518 +!J 0 1.661294 -0.021663 0.081200 +!J 0 1.676290 -0.022641 0.060984 +!J 0 1.686363 -0.022582 0.047289 +!J 0 1.696496 -0.021946 0.034119 +!J 0 1.706691 -0.020786 0.022049 +!J 0 1.716946 -0.019207 0.011529 +!J 0 1.727263 -0.017351 0.002797 +!J 0 1.737642 -0.015379 -0.004163 +!J 0 1.748084 -0.013440 -0.009595 +!J 0 1.758588 -0.011649 -0.013889 +!J 0 1.769155 -0.010069 -0.017445 +!J 0 1.779786 -0.008708 -0.020545 +!J 0 1.790481 -0.007530 -0.023261 +!J 0 1.801240 -0.006478 -0.025438 +!J 0 1.812064 -0.005494 -0.026751 +!J 0 1.822952 -0.004536 -0.026828 +!J 0 1.833907 -0.003593 -0.025380 +!J 0 1.844926 -0.002679 -0.022314 +!J 0 1.856013 -0.001830 -0.017803 +!J 0 1.867165 -0.001091 -0.012320 +!J 0 1.878385 -0.000511 -0.006664 +!J 0 1.889672 -0.000133 -0.002009 +!J 0 1.901027 -0.000000 -0.000008 +!J 0 1.912451 -0.000000 0.000000 +!J 0 1.923943 -0.000000 0.000000 +!J 0 1.935504 -0.000000 0.000000 +!J 0 1.947134 -0.000000 0.000000 +!J 0 1.958834 -0.000000 0.000000 +!J 0 1.970605 -0.000000 0.000000 +!J 0 1.982446 -0.000000 0.000000 +!J 0 1.994359 -0.000000 0.000000 +!J 0 2.006343 -0.000000 0.000000 +!J 0 2.018399 -0.000000 0.000000 +!J 0 2.030528 -0.000000 0.000000 +!J 0 2.042729 -0.000000 0.000000 +!J 0 2.055004 -0.000000 0.000000 +!J 0 2.067352 -0.000000 0.000000 +!J 0 2.079775 -0.000000 0.000000 +!J 0 2.092273 -0.000000 0.000000 +!J 0 2.104845 -0.000000 0.000000 +!J 0 2.117493 -0.000000 0.000000 +!J 0 2.130217 -0.000000 0.000000 +!J 0 2.143017 -0.000000 0.000000 +!J 0 2.155895 -0.000000 0.000000 +!J 0 2.168850 -0.000000 0.000000 +!J 0 2.181882 -0.000000 0.000000 +!J 0 2.194993 -0.000000 0.000000 +!J 0 2.208183 -0.000000 0.000000 +!J 0 2.221452 -0.000000 0.000000 +!J 0 2.234801 -0.000000 0.000000 +!J 0 2.248230 -0.000000 0.000000 +!J 0 2.261739 -0.000000 0.000000 +!J 0 2.275330 -0.000000 0.000000 +!J 0 2.289002 -0.000000 0.000000 +!J 0 2.302757 -0.000000 0.000000 + + +n= 3, l= 1, all-electron wave function, pseudo w-f + +& 11 0.009994 -0.022949 0.000572 +& 11 0.020025 -0.079684 0.002296 +& 11 0.030095 -0.155597 0.005182 +& 11 0.040122 -0.239199 0.009199 +& 11 0.050229 -0.323729 0.014395 +& 11 0.060299 -0.402866 0.020705 +& 11 0.070463 -0.474067 0.028208 +& 11 0.080631 -0.534294 0.036837 +& 11 0.090895 -0.582559 0.046669 +& 11 0.100942 -0.617082 0.057363 +& 11 0.111097 -0.639290 0.069225 +& 11 0.121180 -0.649138 0.082024 +& 11 0.131388 -0.647371 0.095993 +& 11 0.141605 -0.634623 0.110962 +& 11 0.151705 -0.612181 0.126699 +& 11 0.162040 -0.580150 0.143733 +& 11 0.172044 -0.541439 0.161088 +& 11 0.182120 -0.495810 0.179388 +& 11 0.192209 -0.444422 0.198502 +& 11 0.202251 -0.388547 0.218271 +& 11 0.212817 -0.325609 0.239830 +& 11 0.223265 -0.260100 0.261866 +& 11 0.233526 -0.193407 0.284154 +& 11 0.243528 -0.126833 0.306452 +& 11 0.253958 -0.056405 0.330258 +& 11 0.264042 0.012116 0.353766 +& 11 0.274527 0.083298 0.378667 +& 11 0.284575 0.151040 0.402920 +& 11 0.294991 0.220394 0.428412 +& 11 0.305787 0.290981 0.455158 +& 11 0.316031 0.356405 0.480783 +& 11 0.326618 0.422144 0.507465 +& 11 0.337559 0.487818 0.535193 +& 11 0.347824 0.547140 0.561291 +& 11 0.358401 0.605788 0.588214 +& 11 0.369299 0.663451 0.615931 +& 11 0.379390 0.714250 0.641521 +& 11 0.389758 0.763804 0.667684 +& 11 0.400408 0.811938 0.694376 +& 11 0.411350 0.858466 0.721545 +& 11 0.422591 0.903180 0.749130 +& 11 0.432840 0.941223 0.773944 +& 11 0.443338 0.977507 0.798975 +& 11 0.454090 1.011892 0.824164 +& 11 0.465104 1.044250 0.849440 +& 11 0.476384 1.074462 0.874729 +& 11 0.486479 1.099054 0.896801 +& 11 0.496787 1.121857 0.918759 +& 11 0.507314 1.142809 0.940539 +& 11 0.518064 1.161859 0.962070 +& 11 0.529042 1.178958 0.983280 +& 11 0.540252 1.194067 1.004091 +& 11 0.551700 1.207152 1.024419 +& 11 0.561705 1.216738 1.041395 +& 11 0.571892 1.224808 1.057896 +& 11 0.582264 1.231354 1.073863 +& 11 0.592824 1.236374 1.089236 +& 11 0.603575 1.239871 1.103952 +& 11 0.614521 1.241851 1.117946 +& 11 0.625666 1.242328 1.131153 +& 11 0.637012 1.241316 1.143505 +& 11 0.648565 1.238838 1.154936 +& 11 0.660327 1.234918 1.165377 +& 11 0.672302 1.229585 1.174760 +& 11 0.682448 1.224085 1.181722 +& 11 0.692746 1.217648 1.187863 +& 11 0.703200 1.210294 1.193144 +& 11 0.713811 1.202047 1.197530 +& 11 0.724583 1.192932 1.200982 +& 11 0.735517 1.182975 1.203466 +& 11 0.746616 1.172202 1.204947 +& 11 0.757883 1.160640 1.205394 +& 11 0.769319 1.148319 1.204777 +& 11 0.780929 1.135267 1.203067 +& 11 0.792713 1.121515 1.200240 +& 11 0.804675 1.107094 1.196273 +& 11 0.816818 1.092035 1.191147 +& 11 0.829144 1.076371 1.184846 +& 11 0.841656 1.060135 1.177357 +& 11 0.851801 1.046757 1.170506 +& 11 0.862069 1.033052 1.162888 +& 11 0.872461 1.019037 1.154501 +& 11 0.882977 1.004730 1.145349 +& 11 0.893621 0.990149 1.135433 +& 11 0.904393 0.975311 1.124761 +& 11 0.915294 0.960235 1.113338 +& 11 0.926327 0.944937 1.101176 +& 11 0.937493 0.929437 1.088286 +& 11 0.948794 0.913752 1.074683 +& 11 0.960231 0.897899 1.060383 +& 11 0.971806 0.881896 1.045406 +& 11 0.983520 0.865760 1.029771 +& 11 0.995375 0.849509 1.013504 +& 11 1.007374 0.833159 0.996630 +& 11 1.019517 0.816727 0.979176 +& 11 1.031806 0.800230 0.961174 +& 11 1.044244 0.783684 0.942656 +& 11 1.056831 0.767104 0.923655 +& 11 1.069570 0.750507 0.904210 +& 11 1.082463 0.733907 0.884357 +& 11 1.095511 0.717321 0.864137 +& 11 1.108716 0.700761 0.843591 +& 11 1.118725 0.688369 0.827993 +& 11 1.128824 0.676005 0.812255 +& 11 1.139013 0.663676 0.796395 +& 11 1.149295 0.651388 0.780432 +& 11 1.159670 0.639147 0.764386 +& 11 1.170138 0.626956 0.748276 +& 11 1.180701 0.614823 0.732121 +& 11 1.191360 0.602751 0.715941 +& 11 1.202114 0.590746 0.699756 +& 11 1.212965 0.578813 0.683586 +& 11 1.223915 0.566956 0.667449 +& 11 1.234963 0.555181 0.651364 +& 11 1.246111 0.543490 0.635351 +& 11 1.257360 0.531889 0.619428 +& 11 1.268710 0.520382 0.603613 +& 11 1.280163 0.508973 0.587924 +& 11 1.291719 0.497665 0.572378 +& 11 1.303379 0.486463 0.556990 +& 11 1.315145 0.475369 0.541778 +& 11 1.327017 0.464388 0.526755 +& 11 1.338996 0.453523 0.511936 +& 11 1.351083 0.442777 0.497335 +& 11 1.363279 0.432152 0.482964 +& 11 1.375586 0.421653 0.468834 +& 11 1.388003 0.411281 0.454956 +& 11 1.400533 0.401039 0.441339 +& 11 1.413175 0.390929 0.427993 +& 11 1.425932 0.380955 0.414924 +& 11 1.438804 0.371118 0.402139 +& 11 1.451792 0.361421 0.389643 +& 11 1.464897 0.351864 0.377441 +& 11 1.478121 0.342450 0.365535 +& 11 1.491464 0.333181 0.353928 +& 11 1.504928 0.324058 0.342620 +& 11 1.518513 0.315082 0.331612 +& 11 1.532220 0.306255 0.320902 +& 11 1.546052 0.297577 0.310490 +& 11 1.560008 0.289050 0.300371 +& 11 1.574090 0.280674 0.290542 +& 11 1.588300 0.272450 0.280999 +& 11 1.602637 0.264378 0.271737 +& 11 1.617104 0.256458 0.262749 +& 11 1.631702 0.248692 0.254030 +& 11 1.646431 0.241078 0.245573 +& 11 1.661294 0.233618 0.237371 +& 11 1.676290 0.226310 0.229416 +& 11 1.686363 0.221523 0.224246 +& 11 1.696496 0.216803 0.219180 +& 11 1.706691 0.212151 0.214216 +& 11 1.716946 0.207566 0.209351 +& 11 1.727263 0.203049 0.204583 +& 11 1.737642 0.198598 0.199910 +& 11 1.748084 0.194215 0.195329 +& 11 1.758588 0.189898 0.190839 +& 11 1.769155 0.185647 0.186436 +& 11 1.779786 0.181462 0.182120 +& 11 1.790481 0.177343 0.177886 +& 11 1.801240 0.173289 0.173735 +& 11 1.812064 0.169301 0.169663 +& 11 1.822952 0.165377 0.165669 +& 11 1.833907 0.161518 0.161750 +& 11 1.844926 0.157723 0.157906 +& 11 1.856013 0.153992 0.154134 +& 11 1.867165 0.150323 0.150433 +& 11 1.878385 0.146718 0.146801 +& 11 1.889672 0.143175 0.143237 +& 11 1.901027 0.139695 0.139740 +& 11 1.912451 0.136276 0.136308 +& 11 1.923943 0.132918 0.132940 +& 11 1.935504 0.129620 0.129636 +& 11 1.947134 0.126383 0.126393 +& 11 1.958834 0.123206 0.123212 +& 11 1.970605 0.120087 0.120091 +& 11 1.982446 0.117028 0.117030 +& 11 1.994359 0.114026 0.114027 +& 11 2.006343 0.111082 0.111083 +& 11 2.018399 0.108195 0.108195 +& 11 2.030528 0.105364 0.105365 +& 11 2.042729 0.102590 0.102590 +& 11 2.055004 0.099870 0.099870 +& 11 2.067352 0.097206 0.097206 +& 11 2.079775 0.094595 0.094595 +& 11 2.092273 0.092038 0.092038 +& 11 2.104845 0.089534 0.089534 +& 11 2.117493 0.087082 0.087082 +& 11 2.130217 0.084682 0.084682 +& 11 2.143017 0.082333 0.082333 +& 11 2.155895 0.080035 0.080035 +& 11 2.168850 0.077786 0.077786 +& 11 2.181882 0.075586 0.075586 +& 11 2.194993 0.073435 0.073435 +& 11 2.208183 0.071332 0.071332 +& 11 2.221452 0.069276 0.069276 +& 11 2.234801 0.067267 0.067267 +& 11 2.248230 0.065303 0.065303 +& 11 2.261739 0.063385 0.063385 +& 11 2.275330 0.061511 0.061511 +& 11 2.289002 0.059681 0.059681 +& 11 2.302757 0.057895 0.057895 +& 11 2.316594 0.056151 0.056151 +& 11 2.330515 0.054449 0.054449 +& 11 2.344519 0.052788 0.052788 +& 11 2.358607 0.051168 0.051168 +& 11 2.372780 0.049588 0.049588 +& 11 2.387038 0.048047 0.048047 +& 11 2.401382 0.046545 0.046545 +& 11 2.415811 0.045081 0.045081 +& 11 2.430328 0.043654 0.043654 +& 11 2.444932 0.042264 0.042264 +& 11 2.459623 0.040909 0.040909 +& 11 2.474403 0.039590 0.039590 +& 11 2.489272 0.038306 0.038306 +& 11 2.504230 0.037056 0.037056 +& 11 2.519278 0.035839 0.035839 +& 11 2.534416 0.034655 0.034655 +& 11 2.549646 0.033504 0.033504 +& 11 2.564966 0.032383 0.032383 +& 11 2.580379 0.031294 0.031294 +& 11 2.595885 0.030235 0.030235 +& 11 2.611484 0.029205 0.029205 +& 11 2.627176 0.028205 0.028205 +& 11 2.642963 0.027233 0.027233 +& 11 2.658844 0.026289 0.026289 +& 11 2.674821 0.025372 0.025372 +& 11 2.690894 0.024482 0.024482 +& 11 2.707064 0.023618 0.023618 +& 11 2.723331 0.022780 0.022780 +& 11 2.739695 0.021966 0.021966 +& 11 2.756158 0.021177 0.021177 +& 11 2.772720 0.020412 0.020412 +& 11 2.789381 0.019670 0.019670 +& 11 2.806142 0.018951 0.018951 +& 11 2.823004 0.018254 0.018254 +& 11 2.839968 0.017578 0.017578 +& 11 2.857033 0.016924 0.016924 +& 11 2.874201 0.016291 0.016291 +& 11 2.891472 0.015677 0.015677 +& 11 2.908847 0.015084 0.015084 +& 11 2.926326 0.014509 0.014509 +& 11 2.943911 0.013953 0.013953 +& 11 2.961601 0.013415 0.013415 +& 11 2.979397 0.012895 0.012895 +& 11 2.997300 0.012392 0.012392 +& 11 3.015311 0.011906 0.011906 +& 11 3.033430 0.011437 0.011437 +& 11 3.051658 0.010983 0.010983 +& 11 3.069995 0.010545 0.010545 +& 11 3.088443 0.010122 0.010122 +& 11 3.107001 0.009713 0.009713 +& 11 3.125671 0.009319 0.009319 +& 11 3.144453 0.008938 0.008938 +& 11 3.163348 0.008571 0.008571 +& 11 3.182357 0.008217 0.008217 +& 11 3.201480 0.007876 0.007876 +& 11 3.220717 0.007547 0.007547 +& 11 3.240071 0.007230 0.007230 +& 11 3.259540 0.006925 0.006925 +& 11 3.279127 0.006630 0.006630 +& 11 3.298831 0.006347 0.006347 +& 11 3.318654 0.006074 0.006074 +& 11 3.338595 0.005812 0.005812 +& 11 3.348611 0.005684 0.005684 +& 11 3.358657 0.005559 0.005559 +& 11 3.368733 0.005437 0.005437 +& 11 3.378839 0.005316 0.005316 +& 11 3.388976 0.005198 0.005198 +& 11 3.399143 0.005083 0.005083 +& 11 3.409340 0.004969 0.004969 +& 11 3.419568 0.004858 0.004858 +& 11 3.429827 0.004749 0.004749 +& 11 3.440116 0.004642 0.004642 +& 11 3.450437 0.004537 0.004537 +& 11 3.460788 0.004434 0.004434 +& 11 3.471170 0.004334 0.004334 +& 11 3.481584 0.004235 0.004235 +& 11 3.492029 0.004138 0.004138 +& 11 3.502505 0.004044 0.004044 +& 11 3.513012 0.003951 0.003951 +& 11 3.523551 0.003860 0.003860 +& 11 3.534122 0.003771 0.003771 +& 11 3.544724 0.003683 0.003683 +& 11 3.555358 0.003598 0.003598 +& 11 3.566025 0.003514 0.003514 +& 11 3.576723 0.003432 0.003432 +& 11 3.587453 0.003351 0.003351 +& 11 3.598215 0.003273 0.003273 +& 11 3.609010 0.003196 0.003196 +& 11 3.619837 0.003120 0.003120 +& 11 3.630696 0.003046 0.003046 +& 11 3.641588 0.002974 0.002974 +& 11 3.652513 0.002903 0.002903 +& 11 3.663471 0.002834 0.002834 +& 11 3.674461 0.002766 0.002766 +& 11 3.685485 0.002699 0.002699 +& 11 3.696541 0.002634 0.002634 +& 11 3.707631 0.002571 0.002571 +& 11 3.718753 0.002508 0.002508 +& 11 3.729910 0.002447 0.002447 +& 11 3.741099 0.002388 0.002388 +& 11 3.752323 0.002329 0.002329 +& 11 3.763580 0.002272 0.002272 +& 11 3.774870 0.002216 0.002216 +& 11 3.786195 0.002162 0.002162 +& 11 3.797554 0.002108 0.002108 +& 11 3.808946 0.002056 0.002056 +& 11 3.820373 0.002005 0.002005 +& 11 3.831834 0.001955 0.001955 +& 11 3.843330 0.001906 0.001906 +& 11 3.854860 0.001858 0.001858 +& 11 3.866424 0.001812 0.001812 +& 11 3.878024 0.001766 0.001766 +& 11 3.889658 0.001721 0.001721 +& 11 3.901327 0.001678 0.001678 +& 11 3.913031 0.001635 0.001635 +& 11 3.924770 0.001594 0.001594 +& 11 3.936544 0.001553 0.001553 +& 11 3.948354 0.001513 0.001513 +& 11 3.960199 0.001474 0.001474 +& 11 3.972079 0.001436 0.001436 +& 11 3.983996 0.001399 0.001399 +& 11 3.995948 0.001363 0.001363 +& 11 4.007935 0.001327 0.001327 +& 11 4.019959 0.001293 0.001293 +& 11 4.032019 0.001259 0.001259 +& 11 4.044115 0.001226 0.001226 +& 11 4.056248 0.001194 0.001194 +& 11 4.068416 0.001162 0.001162 +& 11 4.080622 0.001131 0.001131 +& 11 4.092863 0.001102 0.001102 +& 11 4.105142 0.001072 0.001072 +& 11 4.117457 0.001044 0.001044 +& 11 4.129810 0.001016 0.001016 +& 11 4.142199 0.000989 0.000989 +& 11 4.154626 0.000962 0.000962 +& 11 4.167090 0.000936 0.000936 +& 11 4.179591 0.000911 0.000911 +& 11 4.192130 0.000886 0.000886 +& 11 4.204706 0.000862 0.000862 +& 11 4.217320 0.000838 0.000838 +& 11 4.229972 0.000816 0.000816 +& 11 4.242662 0.000793 0.000793 +& 11 4.255390 0.000771 0.000771 +& 11 4.268156 0.000750 0.000750 +& 11 4.280961 0.000729 0.000729 +& 11 4.293804 0.000709 0.000709 +& 11 4.306685 0.000689 0.000689 +& 11 4.319605 0.000670 0.000670 +& 11 4.332564 0.000651 0.000651 +& 11 4.345562 0.000633 0.000633 +& 11 4.358598 0.000615 0.000615 +& 11 4.371674 0.000598 0.000598 +& 11 4.384789 0.000581 0.000581 +& 11 4.397943 0.000565 0.000565 +& 11 4.411137 0.000549 0.000549 +& 11 4.424371 0.000533 0.000533 +& 11 4.437644 0.000518 0.000518 +& 11 4.450957 0.000503 0.000503 +& 11 4.464310 0.000488 0.000488 +& 11 4.477703 0.000474 0.000474 +& 11 4.491136 0.000461 0.000461 +& 11 4.504609 0.000447 0.000447 +& 11 4.518123 0.000434 0.000434 +& 11 4.531677 0.000422 0.000422 +& 11 4.545272 0.000409 0.000409 +& 11 4.558908 0.000397 0.000397 +& 11 4.572585 0.000386 0.000386 +& 11 4.586303 0.000374 0.000374 +& 11 4.600061 0.000363 0.000363 +& 11 4.613862 0.000352 0.000352 +& 11 4.627703 0.000342 0.000342 +& 11 4.641586 0.000332 0.000332 +& 11 4.655511 0.000322 0.000322 +& 11 4.669478 0.000312 0.000312 +& 11 4.683486 0.000303 0.000303 +& 11 4.697537 0.000294 0.000294 +& 11 4.711629 0.000285 0.000285 +& 11 4.725764 0.000276 0.000276 +& 11 4.739941 0.000268 0.000268 +& 11 4.754161 0.000260 0.000260 +& 11 4.768424 0.000252 0.000252 +& 11 4.782729 0.000244 0.000244 +& 11 4.797077 0.000236 0.000236 +& 11 4.811468 0.000229 0.000229 +& 11 4.825903 0.000222 0.000222 +& 11 4.840380 0.000215 0.000215 +& 11 4.854902 0.000209 0.000209 +& 11 4.869466 0.000202 0.000202 +& 11 4.884075 0.000196 0.000196 +& 11 4.898727 0.000190 0.000190 +& 11 4.913423 0.000184 0.000184 +& 11 4.928163 0.000178 0.000178 +& 11 4.942948 0.000172 0.000172 +& 11 4.957777 0.000167 0.000167 +& 11 4.972650 0.000161 0.000161 +& 11 4.987568 0.000156 0.000156 +& 11 5.002531 0.000151 0.000151 +& 11 5.017538 0.000146 0.000146 +& 11 5.032591 0.000142 0.000142 +& 11 5.047689 0.000137 0.000137 +& 11 5.062832 0.000133 0.000133 +& 11 5.078020 0.000128 0.000128 +& 11 5.093254 0.000124 0.000124 +& 11 5.108534 0.000120 0.000120 +& 11 5.123860 0.000116 0.000116 +& 11 5.139231 0.000112 0.000112 +& 11 5.154649 0.000109 0.000109 +& 11 5.170113 0.000105 0.000105 +& 11 5.185623 0.000102 0.000102 +& 11 5.201180 0.000098 0.000098 +& 11 5.216784 0.000095 0.000095 +& 11 5.232434 0.000092 0.000092 +& 11 5.248131 0.000089 0.000089 +& 11 5.263876 0.000086 0.000086 +& 11 5.279667 0.000083 0.000083 +& 11 5.295506 0.000080 0.000080 +& 11 5.311393 0.000077 0.000077 +& 11 5.327327 0.000075 0.000075 +& 11 5.343309 0.000072 0.000072 +& 11 5.359339 0.000070 0.000070 +& 11 5.375417 0.000067 0.000067 +& 11 5.391543 0.000065 0.000065 +& 11 5.407718 0.000063 0.000063 +& 11 5.423941 0.000061 0.000061 +& 11 5.440213 0.000059 0.000059 +& 11 5.456533 0.000057 0.000057 +& 11 5.472903 0.000055 0.000055 +& 11 5.489322 0.000053 0.000053 +& 11 5.505790 0.000051 0.000051 +& 11 5.522307 0.000049 0.000049 +& 11 5.538874 0.000047 0.000047 +& 11 5.555491 0.000046 0.000046 +& 11 5.572157 0.000044 0.000044 +& 11 5.588874 0.000042 0.000042 +& 11 5.605640 0.000041 0.000041 +& 11 5.622457 0.000039 0.000039 +& 11 5.639324 0.000038 0.000038 +& 11 5.656242 0.000037 0.000037 +& 11 5.673211 0.000035 0.000035 +& 11 5.690231 0.000034 0.000034 +& 11 5.707301 0.000033 0.000033 +& 11 5.724423 0.000032 0.000032 +& 11 5.741597 0.000031 0.000031 +& 11 5.758821 0.000029 0.000029 +& 11 5.776098 0.000028 0.000028 +& 11 5.793426 0.000027 0.000027 +& 11 5.810806 0.000026 0.000026 +& 11 5.828239 0.000025 0.000025 +& 11 5.845724 0.000024 0.000024 +& 11 5.863261 0.000023 0.000023 +& 11 5.880851 0.000023 0.000023 +& 11 5.898493 0.000022 0.000022 +& 11 5.916189 0.000021 0.000021 +& 11 5.933937 0.000020 0.000020 +& 11 5.951739 0.000019 0.000019 +& 11 5.969594 0.000019 0.000019 +& 11 5.987503 0.000018 0.000018 + + +scattering, iprj= 2, l= 1, all-electron wave function, pseudo w-f + +& 21 0.009994 -0.005384 0.000176 +& 21 0.020025 -0.018692 0.000705 +& 21 0.030095 -0.036488 0.001591 +& 21 0.040122 -0.056064 0.002823 +& 21 0.050229 -0.075824 0.004415 +& 21 0.060299 -0.094275 0.006347 +& 21 0.070463 -0.110810 0.008639 +& 21 0.080631 -0.124712 0.011272 +& 21 0.090895 -0.135743 0.014264 +& 21 0.100942 -0.143494 0.017512 +& 21 0.111097 -0.148290 0.021105 +& 21 0.121180 -0.150133 0.024971 +& 21 0.131388 -0.149192 0.029177 +& 21 0.141605 -0.145628 0.033668 +& 21 0.151705 -0.139758 0.038372 +& 21 0.162040 -0.131594 0.043442 +& 21 0.172044 -0.121864 0.048584 +& 21 0.182120 -0.110496 0.053982 +& 21 0.192209 -0.097777 0.059590 +& 21 0.202251 -0.084019 0.065358 +& 21 0.212817 -0.068593 0.071612 +& 21 0.223265 -0.052605 0.077961 +& 21 0.233526 -0.036394 0.084339 +& 21 0.243528 -0.020277 0.090674 +& 21 0.253958 -0.003298 0.097384 +& 21 0.264042 0.013148 0.103955 +& 21 0.274527 0.030151 0.110854 +& 21 0.284575 0.046247 0.117508 +& 21 0.294991 0.062634 0.124433 +& 21 0.305787 0.079202 0.131616 +& 21 0.316031 0.094447 0.138416 +& 21 0.326618 0.109642 0.145408 +& 21 0.337559 0.124679 0.152572 +& 21 0.347824 0.138120 0.159215 +& 21 0.358401 0.151254 0.165960 +& 21 0.369299 0.163990 0.172784 +& 21 0.379390 0.175040 0.178968 +& 21 0.389758 0.185636 0.185169 +& 21 0.400408 0.195725 0.191359 +& 21 0.411350 0.205249 0.197508 +& 21 0.422591 0.214146 0.203582 +& 21 0.432840 0.221474 0.208889 +& 21 0.443338 0.228208 0.214079 +& 21 0.454090 0.234305 0.219120 +& 21 0.465104 0.239724 0.223979 +& 21 0.476384 0.244426 0.228620 +& 21 0.486479 0.247925 0.232472 +& 21 0.496787 0.250825 0.236099 +& 21 0.507314 0.253105 0.239472 +& 21 0.518064 0.254744 0.242561 +& 21 0.529042 0.255725 0.245334 +& 21 0.540252 0.256031 0.247757 +& 21 0.551700 0.255647 0.249796 +& 21 0.561705 0.254759 0.251210 +& 21 0.571892 0.253348 0.252293 +& 21 0.582264 0.251408 0.253019 +& 21 0.592824 0.248935 0.253366 +& 21 0.603575 0.245925 0.253309 +& 21 0.614521 0.242377 0.252823 +& 21 0.625666 0.238289 0.251884 +& 21 0.637012 0.233663 0.250466 +& 21 0.648565 0.228500 0.248547 +& 21 0.660327 0.222802 0.246101 +& 21 0.672302 0.216575 0.243105 +& 21 0.682448 0.210984 0.240172 +& 21 0.692746 0.205032 0.236829 +& 21 0.703200 0.198723 0.233064 +& 21 0.713811 0.192061 0.228865 +& 21 0.724583 0.185051 0.224221 +& 21 0.735517 0.177699 0.219123 +& 21 0.746616 0.170011 0.213562 +& 21 0.757883 0.161992 0.207529 +& 21 0.769319 0.153649 0.201019 +& 21 0.780929 0.144989 0.194025 +& 21 0.792713 0.136020 0.186542 +& 21 0.804675 0.126749 0.178570 +& 21 0.816818 0.117184 0.170105 +& 21 0.829144 0.107334 0.161149 +& 21 0.841656 0.097208 0.151704 +& 21 0.851801 0.088914 0.143798 +& 21 0.862069 0.080455 0.135584 +& 21 0.872461 0.071834 0.127066 +& 21 0.882977 0.063057 0.118248 +& 21 0.893621 0.054130 0.109136 +& 21 0.904393 0.045056 0.099736 +& 21 0.915294 0.035843 0.090054 +& 21 0.926327 0.026495 0.080099 +& 21 0.937493 0.017017 0.069879 +& 21 0.948794 0.007416 0.059404 +& 21 0.960231 -0.002303 0.048684 +& 21 0.971806 -0.012134 0.037730 +& 21 0.983520 -0.022071 0.026554 +& 21 0.995375 -0.032109 0.015169 +& 21 1.007374 -0.042242 0.003588 +& 21 1.019517 -0.052464 -0.008175 +& 21 1.031806 -0.062768 -0.020105 +& 21 1.044244 -0.073150 -0.032187 +& 21 1.056831 -0.083602 -0.044406 +& 21 1.069570 -0.094120 -0.056745 +& 21 1.082463 -0.104697 -0.069187 +& 21 1.095511 -0.115326 -0.081717 +& 21 1.108716 -0.126004 -0.094317 +& 21 1.118725 -0.134039 -0.103803 +& 21 1.128824 -0.142095 -0.113312 +& 21 1.139013 -0.150169 -0.122837 +& 21 1.149295 -0.158259 -0.132370 +& 21 1.159670 -0.166362 -0.141905 +& 21 1.170138 -0.174476 -0.151434 +& 21 1.180701 -0.182598 -0.160951 +& 21 1.191360 -0.190726 -0.170450 +& 21 1.202114 -0.198857 -0.179924 +& 21 1.212965 -0.206988 -0.189366 +& 21 1.223915 -0.215118 -0.198770 +& 21 1.234963 -0.223244 -0.208131 +& 21 1.246111 -0.231363 -0.217444 +& 21 1.257360 -0.239472 -0.226701 +& 21 1.268710 -0.247569 -0.235900 +& 21 1.280163 -0.255651 -0.245034 +& 21 1.291719 -0.263716 -0.254100 +& 21 1.303379 -0.271761 -0.263092 +& 21 1.315145 -0.279783 -0.272009 +& 21 1.327017 -0.287780 -0.280844 +& 21 1.338996 -0.295748 -0.289597 +& 21 1.351083 -0.303684 -0.298263 +& 21 1.363279 -0.311587 -0.306839 +& 21 1.375586 -0.319452 -0.315325 +& 21 1.388003 -0.327276 -0.323717 +& 21 1.400533 -0.335058 -0.332014 +& 21 1.413175 -0.342792 -0.340214 +& 21 1.425932 -0.350477 -0.348316 +& 21 1.438804 -0.358108 -0.356318 +& 21 1.451792 -0.365684 -0.364221 +& 21 1.464897 -0.373199 -0.372022 +& 21 1.478121 -0.380651 -0.379722 +& 21 1.491464 -0.388036 -0.387319 +& 21 1.504928 -0.395351 -0.394813 +& 21 1.518513 -0.402592 -0.402203 +& 21 1.532220 -0.409756 -0.409490 +& 21 1.546052 -0.416839 -0.416671 +& 21 1.560008 -0.423838 -0.423747 +& 21 1.574090 -0.430748 -0.430717 +& 21 1.588300 -0.437567 -0.437579 +& 21 1.602637 -0.444290 -0.444332 +& 21 1.617104 -0.450914 -0.450976 +& 21 1.631702 -0.457436 -0.457508 +& 21 1.646431 -0.463851 -0.463927 +& 21 1.661294 -0.470155 -0.470230 +& 21 1.676290 -0.476346 -0.476416 +& 21 1.686363 -0.480408 -0.480473 +& 21 1.696496 -0.484417 -0.484476 +& 21 1.706691 -0.488371 -0.488424 +& 21 1.716946 -0.492269 -0.492317 +& 21 1.727263 -0.496110 -0.496152 +& 21 1.737642 -0.499894 -0.499929 +& 21 1.748084 -0.503618 -0.503648 +& 21 1.758588 -0.507281 -0.507306 +& 21 1.769155 -0.510884 -0.510904 +& 21 1.779786 -0.514423 -0.514439 +& 21 1.790481 -0.517898 -0.517910 +& 21 1.801240 -0.521309 -0.521317 +& 21 1.812064 -0.524652 -0.524658 +& 21 1.822952 -0.527929 -0.527932 +& 21 1.833907 -0.531136 -0.531138 +& 21 1.844926 -0.534273 -0.534273 +& 21 1.856013 -0.537339 -0.537338 +& 21 1.867165 -0.540332 -0.540331 +& 21 1.878385 -0.543251 -0.543249 +& 21 1.889672 -0.546094 -0.546093 +& 21 1.901027 -0.548862 -0.548860 +& 21 1.912451 -0.551551 -0.551549 +& 21 1.923943 -0.554161 -0.554160 +& 21 1.935504 -0.556691 -0.556689 +& 21 1.947134 -0.559138 -0.559137 +& 21 1.958834 -0.561503 -0.561502 +& 21 1.970605 -0.563783 -0.563782 +& 21 1.982446 -0.565977 -0.565977 +& 21 1.994359 -0.568084 -0.568084 +& 21 2.006343 -0.570102 -0.570102 +& 21 2.018399 -0.572030 -0.572030 +& 21 2.030528 -0.573867 -0.573867 +& 21 2.042729 -0.575611 -0.575611 +& 21 2.055004 -0.577261 -0.577261 +& 21 2.067352 -0.578816 -0.578816 +& 21 2.079775 -0.580273 -0.580273 +& 21 2.092273 -0.581633 -0.581633 +& 21 2.104845 -0.582892 -0.582892 +& 21 2.117493 -0.584051 -0.584051 +& 21 2.130217 -0.585107 -0.585107 +& 21 2.143017 -0.586060 -0.586060 +& 21 2.155895 -0.586907 -0.586907 +& 21 2.168850 -0.587648 -0.587648 +& 21 2.181882 -0.588281 -0.588281 +& 21 2.194993 -0.588804 -0.588804 +& 21 2.208183 -0.589217 -0.589217 +& 21 2.221452 -0.589517 -0.589517 +& 21 2.234801 -0.589705 -0.589705 +& 21 2.248230 -0.589777 -0.589777 +& 21 2.261739 -0.589734 -0.589734 +& 21 2.275330 -0.589573 -0.589573 +& 21 2.289002 -0.589293 -0.589293 +& 21 2.302757 -0.588893 -0.588893 +& 21 2.316594 -0.588371 -0.588371 +& 21 2.330515 -0.587727 -0.587727 +& 21 2.344519 -0.586958 -0.586958 +& 21 2.358607 -0.586065 -0.586065 +& 21 2.372780 -0.585044 -0.585044 +& 21 2.387038 -0.583896 -0.583896 +& 21 2.401382 -0.582619 -0.582619 +& 21 2.415811 -0.581211 -0.581211 +& 21 2.430328 -0.579671 -0.579671 +& 21 2.444932 -0.577999 -0.577999 +& 21 2.459623 -0.576193 -0.576193 +& 21 2.474403 -0.574251 -0.574251 +& 21 2.489272 -0.572174 -0.572174 +& 21 2.504230 -0.569959 -0.569959 +& 21 2.519278 -0.567605 -0.567605 +& 21 2.534416 -0.565112 -0.565112 +& 21 2.549646 -0.562478 -0.562478 +& 21 2.564966 -0.559702 -0.559702 +& 21 2.580379 -0.556784 -0.556784 +& 21 2.595885 -0.553722 -0.553722 +& 21 2.611484 -0.550515 -0.550515 +& 21 2.627176 -0.547163 -0.547163 +& 21 2.642963 -0.543665 -0.543665 +& 21 2.658844 -0.540019 -0.540019 +& 21 2.674821 -0.536226 -0.536226 +& 21 2.690894 -0.532283 -0.532283 +& 21 2.707064 -0.528191 -0.528191 +& 21 2.723331 -0.523948 -0.523948 +& 21 2.739695 -0.519555 -0.519555 +& 21 2.756158 -0.515010 -0.515010 +& 21 2.772720 -0.510313 -0.510313 +& 21 2.789381 -0.505463 -0.505463 +& 21 2.806142 -0.500459 -0.500459 +& 21 2.823004 -0.495303 -0.495303 +& 21 2.839968 -0.489992 -0.489992 +& 21 2.857033 -0.484527 -0.484527 +& 21 2.874201 -0.478907 -0.478907 +& 21 2.891472 -0.473132 -0.473132 +& 21 2.908847 -0.467202 -0.467202 +& 21 2.926326 -0.461116 -0.461116 +& 21 2.943911 -0.454875 -0.454875 +& 21 2.961601 -0.448479 -0.448479 +& 21 2.979397 -0.441928 -0.441928 +& 21 2.997300 -0.435221 -0.435221 +& 21 3.015311 -0.428359 -0.428359 +& 21 3.033430 -0.421342 -0.421342 +& 21 3.051658 -0.414171 -0.414171 +& 21 3.069995 -0.406846 -0.406846 +& 21 3.088443 -0.399366 -0.399366 +& 21 3.107001 -0.391734 -0.391734 +& 21 3.125671 -0.383948 -0.383948 +& 21 3.144453 -0.376011 -0.376011 +& 21 3.163348 -0.367922 -0.367922 +& 21 3.182357 -0.359683 -0.359683 +& 21 3.201480 -0.351294 -0.351294 +& 21 3.220717 -0.342757 -0.342757 +& 21 3.240071 -0.334072 -0.334072 +& 21 3.259540 -0.325240 -0.325240 +& 21 3.279127 -0.316263 -0.316263 +& 21 3.298831 -0.307142 -0.307142 +& 21 3.318654 -0.297879 -0.297879 +& 21 3.338595 -0.288475 -0.288475 +& 21 3.348611 -0.283720 -0.283720 +& 21 3.358657 -0.278931 -0.278931 +& 21 3.368733 -0.274107 -0.274107 +& 21 3.378839 -0.269249 -0.269249 +& 21 3.388976 -0.264357 -0.264357 +& 21 3.399143 -0.259431 -0.259431 +& 21 3.409340 -0.254471 -0.254471 +& 21 3.419568 -0.249479 -0.249479 +& 21 3.429827 -0.244453 -0.244453 +& 21 3.440116 -0.239394 -0.239394 +& 21 3.450437 -0.234303 -0.234303 +& 21 3.460788 -0.229180 -0.229180 +& 21 3.471170 -0.224024 -0.224024 +& 21 3.481584 -0.218837 -0.218837 +& 21 3.492029 -0.213619 -0.213619 +& 21 3.502505 -0.208369 -0.208369 +& 21 3.513012 -0.203088 -0.203088 +& 21 3.523551 -0.197777 -0.197777 +& 21 3.534122 -0.192436 -0.192436 +& 21 3.544724 -0.187064 -0.187064 +& 21 3.555358 -0.181664 -0.181664 +& 21 3.566025 -0.176233 -0.176233 +& 21 3.576723 -0.170774 -0.170774 +& 21 3.587453 -0.165287 -0.165287 +& 21 3.598215 -0.159771 -0.159771 +& 21 3.609010 -0.154227 -0.154227 +& 21 3.619837 -0.148656 -0.148656 +& 21 3.630696 -0.143057 -0.143057 +& 21 3.641588 -0.137432 -0.137432 +& 21 3.652513 -0.131781 -0.131781 +& 21 3.663471 -0.126104 -0.126103 +& 21 3.674461 -0.120401 -0.120401 +& 21 3.685485 -0.114672 -0.114672 +& 21 3.696541 -0.108919 -0.108919 +& 21 3.707631 -0.103142 -0.103142 +& 21 3.718753 -0.097341 -0.097341 +& 21 3.729910 -0.091517 -0.091517 +& 21 3.741099 -0.085669 -0.085669 +& 21 3.752323 -0.079799 -0.079799 +& 21 3.763580 -0.073907 -0.073907 +& 21 3.774870 -0.067993 -0.067993 +& 21 3.786195 -0.062058 -0.062058 +& 21 3.797554 -0.056102 -0.056102 +& 21 3.808946 -0.050126 -0.050126 +& 21 3.820373 -0.044131 -0.044131 +& 21 3.831834 -0.038116 -0.038116 +& 21 3.843330 -0.032082 -0.032082 +& 21 3.854860 -0.026030 -0.026030 +& 21 3.866424 -0.019961 -0.019961 +& 21 3.878024 -0.013875 -0.013875 +& 21 3.889658 -0.007772 -0.007772 +& 21 3.901327 -0.001652 -0.001652 +& 21 3.913031 0.004482 0.004482 +& 21 3.924770 0.010632 0.010632 +& 21 3.936544 0.016795 0.016795 +& 21 3.948354 0.022973 0.022973 +& 21 3.960199 0.029164 0.029164 +& 21 3.972079 0.035367 0.035367 +& 21 3.983996 0.041583 0.041583 +& 21 3.995948 0.047810 0.047810 +& 21 4.007935 0.054047 0.054047 +& 21 4.019959 0.060295 0.060295 +& 21 4.032019 0.066553 0.066553 +& 21 4.044115 0.072819 0.072819 +& 21 4.056248 0.079094 0.079094 +& 21 4.068416 0.085376 0.085376 +& 21 4.080622 0.091665 0.091665 +& 21 4.092863 0.097960 0.097960 +& 21 4.105142 0.104261 0.104261 +& 21 4.117457 0.110567 0.110567 +& 21 4.129810 0.116878 0.116878 +& 21 4.142199 0.123191 0.123191 +& 21 4.154626 0.129508 0.129508 +& 21 4.167090 0.135827 0.135827 +& 21 4.179591 0.142147 0.142147 +& 21 4.192130 0.148468 0.148468 +& 21 4.204706 0.154789 0.154789 +& 21 4.217320 0.161110 0.161110 +& 21 4.229972 0.167428 0.167428 +& 21 4.242662 0.173745 0.173745 +& 21 4.255390 0.180058 0.180058 +& 21 4.268156 0.186368 0.186368 +& 21 4.280961 0.192673 0.192673 +& 21 4.293804 0.198973 0.198973 +& 21 4.306685 0.205267 0.205267 +& 21 4.319605 0.211554 0.211554 +& 21 4.332564 0.217833 0.217833 +& 21 4.345562 0.224104 0.224104 +& 21 4.358598 0.230365 0.230365 +& 21 4.371674 0.236617 0.236617 +& 21 4.384789 0.242857 0.242857 +& 21 4.397943 0.249086 0.249086 +& 21 4.411137 0.255302 0.255302 +& 21 4.424371 0.261504 0.261504 +& 21 4.437644 0.267692 0.267692 +& 21 4.450957 0.273865 0.273865 +& 21 4.464310 0.280022 0.280022 +& 21 4.477703 0.286162 0.286162 +& 21 4.491136 0.292284 0.292284 +& 21 4.504609 0.298388 0.298388 +& 21 4.518123 0.304472 0.304472 +& 21 4.531677 0.310535 0.310535 +& 21 4.545272 0.316577 0.316577 +& 21 4.558908 0.322597 0.322597 +& 21 4.572585 0.328594 0.328594 +& 21 4.586303 0.334567 0.334567 +& 21 4.600061 0.340514 0.340514 +& 21 4.613862 0.346436 0.346436 +& 21 4.627703 0.352331 0.352331 +& 21 4.641586 0.358198 0.358198 +& 21 4.655511 0.364036 0.364036 +& 21 4.669478 0.369844 0.369844 +& 21 4.683486 0.375622 0.375622 +& 21 4.697537 0.381369 0.381369 +& 21 4.711629 0.387082 0.387082 +& 21 4.725764 0.392762 0.392762 +& 21 4.739941 0.398408 0.398408 +& 21 4.754161 0.404018 0.404018 +& 21 4.768424 0.409592 0.409592 +& 21 4.782729 0.415128 0.415128 +& 21 4.797077 0.420626 0.420626 +& 21 4.811468 0.426084 0.426084 +& 21 4.825903 0.431502 0.431502 +& 21 4.840380 0.436878 0.436878 +& 21 4.854902 0.442212 0.442212 +& 21 4.869466 0.447503 0.447503 +& 21 4.884075 0.452749 0.452749 +& 21 4.898727 0.457950 0.457950 +& 21 4.913423 0.463104 0.463104 +& 21 4.928163 0.468211 0.468211 +& 21 4.942948 0.473269 0.473269 +& 21 4.957777 0.478277 0.478277 +& 21 4.972650 0.483235 0.483235 +& 21 4.987568 0.488141 0.488141 +& 21 5.002531 0.492995 0.492995 +& 21 5.017538 0.497795 0.497795 +& 21 5.032591 0.502540 0.502540 +& 21 5.047689 0.507230 0.507230 +& 21 5.062832 0.511863 0.511863 +& 21 5.078020 0.516437 0.516437 +& 21 5.093254 0.520953 0.520953 +& 21 5.108534 0.525410 0.525410 +& 21 5.123860 0.529805 0.529805 +& 21 5.139231 0.534138 0.534138 +& 21 5.154649 0.538408 0.538408 +& 21 5.170113 0.542614 0.542614 +& 21 5.185623 0.546754 0.546754 +& 21 5.201180 0.550829 0.550829 +& 21 5.216784 0.554836 0.554836 +& 21 5.232434 0.558775 0.558775 +& 21 5.248131 0.562645 0.562645 +& 21 5.263876 0.566444 0.566444 +& 21 5.279667 0.570172 0.570172 +& 21 5.295506 0.573827 0.573827 +& 21 5.311393 0.577409 0.577409 +& 21 5.327327 0.580916 0.580916 +& 21 5.343309 0.584348 0.584348 +& 21 5.359339 0.587703 0.587703 +& 21 5.375417 0.590980 0.590980 +& 21 5.391543 0.594178 0.594178 +& 21 5.407718 0.597297 0.597297 +& 21 5.423941 0.600335 0.600335 +& 21 5.440213 0.603292 0.603292 +& 21 5.456533 0.606165 0.606165 +& 21 5.472903 0.608955 0.608955 +& 21 5.489322 0.611659 0.611659 +& 21 5.505790 0.614278 0.614278 +& 21 5.522307 0.616810 0.616810 +& 21 5.538874 0.619254 0.619254 +& 21 5.555491 0.621610 0.621610 +& 21 5.572157 0.623875 0.623875 +& 21 5.588874 0.626049 0.626049 +& 21 5.605640 0.628132 0.628132 +& 21 5.622457 0.630122 0.630122 +& 21 5.639324 0.632018 0.632018 +& 21 5.656242 0.633820 0.633820 +& 21 5.673211 0.635525 0.635525 +& 21 5.690231 0.637134 0.637134 +& 21 5.707301 0.638646 0.638646 +& 21 5.724423 0.640059 0.640059 +& 21 5.741597 0.641372 0.641372 +& 21 5.758821 0.642585 0.642585 +& 21 5.776098 0.643697 0.643697 +& 21 5.793426 0.644707 0.644707 +& 21 5.810806 0.645614 0.645614 +& 21 5.828239 0.646416 0.646416 +& 21 5.845724 0.647114 0.647114 +& 21 5.863261 0.647706 0.647706 +& 21 5.880851 0.648192 0.648192 +& 21 5.898493 0.648570 0.648570 +& 21 5.916189 0.648840 0.648840 +& 21 5.933937 0.649001 0.649001 +& 21 5.951739 0.649052 0.649052 +& 21 5.969594 0.648992 0.648992 +& 21 5.987503 0.648822 0.648822 + + +!J 1 0.009994 0.001024 -0.000826 +!J 1 0.020025 0.004107 -0.003312 +!J 1 0.030095 0.009266 -0.007464 +!J 1 0.040122 0.016442 -0.013224 +!J 1 0.050229 0.025713 -0.020640 +!J 1 0.060299 0.036959 -0.029595 +!J 1 0.070463 0.050309 -0.040167 +!J 1 0.080631 0.065637 -0.052228 +!J 1 0.090895 0.083063 -0.065837 +!J 1 0.100942 0.101972 -0.080481 +!J 1 0.111097 0.122890 -0.096527 +!J 1 0.121180 0.145396 -0.113609 +!J 1 0.131388 0.169878 -0.131973 +!J 1 0.141605 0.196019 -0.151327 +!J 1 0.151705 0.223396 -0.171309 +!J 1 0.162040 0.252906 -0.192510 +!J 1 0.172044 0.282836 -0.213647 +!J 1 0.182120 0.314246 -0.235426 +!J 1 0.192209 0.346886 -0.257605 +!J 1 0.202251 0.380458 -0.279923 +!J 1 0.212817 0.416852 -0.303535 +!J 1 0.223265 0.453810 -0.326869 +!J 1 0.233526 0.490934 -0.349633 +!J 1 0.243528 0.527811 -0.371548 +!J 1 0.253958 0.566881 -0.393978 +!J 1 0.264042 0.605147 -0.415122 +!J 1 0.274527 0.645326 -0.436406 +!J 1 0.284575 0.684098 -0.456006 +!J 1 0.294991 0.724450 -0.475372 +!J 1 0.305787 0.766327 -0.494289 +!J 1 0.316031 0.805987 -0.511024 +!J 1 0.326618 0.846778 -0.526953 +!J 1 0.337559 0.888597 -0.541832 +!J 1 0.347824 0.927395 -0.554214 +!J 1 0.358401 0.966816 -0.565270 +!J 1 0.369299 1.006720 -0.574750 +!J 1 0.379390 1.042913 -0.581708 +!J 1 0.389758 1.079228 -0.586953 +!J 1 0.400408 1.115513 -0.590257 +!J 1 0.411350 1.151596 -0.591374 +!J 1 0.422591 1.187282 -0.590049 +!J 1 0.432840 1.218500 -0.586601 +!J 1 0.443338 1.249073 -0.580813 +!J 1 0.454090 1.278823 -0.572478 +!J 1 0.465104 1.307559 -0.561390 +!J 1 0.476384 1.335075 -0.547334 +!J 1 0.486479 1.357976 -0.532431 +!J 1 0.496787 1.379618 -0.514947 +!J 1 0.507314 1.399834 -0.494736 +!J 1 0.518064 1.418454 -0.471658 +!J 1 0.529042 1.435295 -0.445574 +!J 1 0.540252 1.450171 -0.416348 +!J 1 0.551700 1.462889 -0.383854 +!J 1 0.561705 1.471920 -0.353308 +!J 1 0.571892 1.479089 -0.320201 +!J 1 0.582264 1.484265 -0.284469 +!J 1 0.592824 1.487314 -0.246052 +!J 1 0.603575 1.488102 -0.204901 +!J 1 0.614521 1.486491 -0.160971 +!J 1 0.625666 1.482345 -0.114229 +!J 1 0.637012 1.475525 -0.064650 +!J 1 0.648565 1.465896 -0.012221 +!J 1 0.660327 1.453320 0.043059 +!J 1 0.672302 1.437665 0.101176 +!J 1 0.682448 1.422175 0.151749 +!J 1 0.692746 1.404387 0.204235 +!J 1 0.703200 1.384237 0.258583 +!J 1 0.713811 1.361671 0.314724 +!J 1 0.724583 1.336645 0.372559 +!J 1 0.735517 1.309133 0.431959 +!J 1 0.746616 1.279129 0.492757 +!J 1 0.757883 1.246649 0.554741 +!J 1 0.769319 1.211736 0.617660 +!J 1 0.780929 1.174458 0.681224 +!J 1 0.792713 1.134903 0.745117 +!J 1 0.804675 1.093174 0.809010 +!J 1 0.816818 1.049378 0.872577 +!J 1 0.829144 1.003616 0.935511 +!J 1 0.841656 0.955983 0.997529 +!J 1 0.851801 0.916583 1.046308 +!J 1 0.862069 0.876076 1.094207 +!J 1 0.872461 0.834501 1.141098 +!J 1 0.882977 0.791900 1.186842 +!J 1 0.893621 0.748328 1.231286 +!J 1 0.904393 0.703850 1.274250 +!J 1 0.915294 0.658555 1.315527 +!J 1 0.926327 0.612553 1.354871 +!J 1 0.937493 0.565986 1.391995 +!J 1 0.948794 0.519031 1.426569 +!J 1 0.960231 0.471908 1.458211 +!J 1 0.971806 0.424879 1.486488 +!J 1 0.983520 0.378250 1.510936 +!J 1 0.995375 0.332111 1.531430 +!J 1 1.007374 0.286575 1.547815 +!J 1 1.019517 0.241838 1.559825 +!J 1 1.031806 0.198103 1.567204 +!J 1 1.044244 0.155581 1.569704 +!J 1 1.056831 0.114474 1.567115 +!J 1 1.069570 0.074978 1.559257 +!J 1 1.082463 0.037281 1.545986 +!J 1 1.095511 0.001564 1.527198 +!J 1 1.108716 -0.032007 1.502828 +!J 1 1.118725 -0.055684 1.480879 +!J 1 1.128824 -0.078008 1.455795 +!J 1 1.139013 -0.098926 1.427605 +!J 1 1.149295 -0.118393 1.396357 +!J 1 1.159670 -0.136369 1.362116 +!J 1 1.170138 -0.152820 1.324965 +!J 1 1.180701 -0.167721 1.285006 +!J 1 1.191360 -0.181055 1.242360 +!J 1 1.202114 -0.192811 1.197166 +!J 1 1.212965 -0.202987 1.149582 +!J 1 1.223915 -0.211588 1.099783 +!J 1 1.234963 -0.218630 1.047962 +!J 1 1.246111 -0.224131 0.994327 +!J 1 1.257360 -0.228121 0.939105 +!J 1 1.268710 -0.230637 0.882534 +!J 1 1.280163 -0.231722 0.824869 +!J 1 1.291719 -0.231425 0.766376 +!J 1 1.303379 -0.229804 0.707332 +!J 1 1.315145 -0.226924 0.648026 +!J 1 1.327017 -0.222854 0.588753 +!J 1 1.338996 -0.217671 0.529817 +!J 1 1.351083 -0.211458 0.471526 +!J 1 1.363279 -0.204308 0.414195 +!J 1 1.375586 -0.196317 0.358138 +!J 1 1.388003 -0.187591 0.303671 +!J 1 1.400533 -0.178246 0.251107 +!J 1 1.413175 -0.168406 0.200756 +!J 1 1.425932 -0.158206 0.152918 +!J 1 1.438804 -0.147791 0.107883 +!J 1 1.451792 -0.137314 0.065921 +!J 1 1.464897 -0.126935 0.027277 +!J 1 1.478121 -0.116815 -0.007837 +!J 1 1.491464 -0.107110 -0.039253 +!J 1 1.504928 -0.097957 -0.066857 +!J 1 1.518513 -0.089472 -0.090594 +!J 1 1.532220 -0.081732 -0.110488 +!J 1 1.546052 -0.074776 -0.126647 +!J 1 1.560008 -0.068601 -0.139259 +!J 1 1.574090 -0.063169 -0.148587 +!J 1 1.588300 -0.058411 -0.154958 +!J 1 1.602637 -0.054230 -0.158755 +!J 1 1.617104 -0.050497 -0.160397 +!J 1 1.631702 -0.047043 -0.160306 +!J 1 1.646431 -0.043662 -0.158844 +!J 1 1.661294 -0.040130 -0.156239 +!J 1 1.676290 -0.036257 -0.152522 +!J 1 1.686363 -0.033440 -0.149344 +!J 1 1.696496 -0.030447 -0.145512 +!J 1 1.706691 -0.027330 -0.140944 +!J 1 1.716946 -0.024170 -0.135594 +!J 1 1.727263 -0.021070 -0.129477 +!J 1 1.737642 -0.018128 -0.122684 +!J 1 1.748084 -0.015428 -0.115378 +!J 1 1.758588 -0.013020 -0.107764 +!J 1 1.769155 -0.010917 -0.100053 +!J 1 1.779786 -0.009099 -0.092413 +!J 1 1.790481 -0.007525 -0.084935 +!J 1 1.801240 -0.006149 -0.077627 +!J 1 1.812064 -0.004936 -0.070425 +!J 1 1.822952 -0.003867 -0.063233 +!J 1 1.833907 -0.002942 -0.055967 +!J 1 1.844926 -0.002173 -0.048598 +!J 1 1.856013 -0.001573 -0.041181 +!J 1 1.867165 -0.001148 -0.033874 +!J 1 1.878385 -0.000888 -0.026956 +!J 1 1.889672 -0.000757 -0.020853 +!J 1 1.901027 -0.000687 -0.016185 +!J 1 1.912451 -0.000621 -0.012751 +!J 1 1.923943 -0.000559 -0.009828 +!J 1 1.935504 -0.000501 -0.007383 +!J 1 1.947134 -0.000444 -0.005379 +!J 1 1.958834 -0.000388 -0.003778 +!J 1 1.970605 -0.000332 -0.002534 +!J 1 1.982446 -0.000277 -0.001602 +!J 1 1.994359 -0.000224 -0.000934 +!J 1 2.006343 -0.000174 -0.000483 +!J 1 2.018399 -0.000128 -0.000202 +!J 1 2.030528 -0.000089 -0.000047 +!J 1 2.042729 -0.000056 0.000021 +!J 1 2.055004 -0.000031 0.000037 +!J 1 2.067352 -0.000014 0.000027 +!J 1 2.079775 -0.000005 0.000011 +!J 1 2.092273 -0.000001 0.000002 +!J 1 2.104845 -0.000000 0.000000 +!J 1 2.117493 -0.000000 -0.000000 +!J 1 2.130217 -0.000000 -0.000000 +!J 1 2.143017 -0.000000 -0.000000 +!J 1 2.155895 -0.000000 -0.000000 +!J 1 2.168850 -0.000000 -0.000000 +!J 1 2.181882 -0.000000 -0.000000 +!J 1 2.194993 -0.000000 -0.000000 +!J 1 2.208183 -0.000000 -0.000000 +!J 1 2.221452 -0.000000 -0.000000 +!J 1 2.234801 -0.000000 -0.000000 +!J 1 2.248230 -0.000000 -0.000000 +!J 1 2.261739 -0.000000 -0.000000 +!J 1 2.275330 -0.000000 -0.000000 +!J 1 2.289002 -0.000000 -0.000000 +!J 1 2.302757 -0.000000 -0.000000 + + +n= 3, l= 2, all-electron wave function, pseudo w-f + +& 12 0.009994 0.000226 0.000007 +& 12 0.020025 0.001655 0.000056 +& 12 0.030095 0.005120 0.000191 +& 12 0.040122 0.011078 0.000453 +& 12 0.050229 0.019865 0.000887 +& 12 0.060299 0.031476 0.001531 +& 12 0.070463 0.046051 0.002437 +& 12 0.080631 0.063367 0.003641 +& 12 0.090895 0.083402 0.005198 +& 12 0.100942 0.105251 0.007093 +& 12 0.111097 0.129321 0.009417 +& 12 0.121180 0.154927 0.012166 +& 12 0.131388 0.182308 0.015431 +& 12 0.141605 0.210915 0.019215 +& 12 0.151705 0.240126 0.023494 +& 12 0.162040 0.270727 0.028452 +& 12 0.172044 0.300822 0.033837 +& 12 0.182120 0.331397 0.039864 +& 12 0.192209 0.362094 0.046525 +& 12 0.202251 0.392557 0.053795 +& 12 0.212817 0.424348 0.062150 +& 12 0.223265 0.455369 0.071138 +& 12 0.233526 0.485303 0.080676 +& 12 0.243528 0.513876 0.090659 +& 12 0.253958 0.542951 0.101797 +& 12 0.264042 0.570300 0.113273 +& 12 0.274527 0.597888 0.125940 +& 12 0.284575 0.623482 0.138778 +& 12 0.294991 0.649110 0.152802 +& 12 0.305787 0.674669 0.168099 +& 12 0.316031 0.697935 0.183313 +& 12 0.326618 0.720940 0.199737 +& 12 0.337559 0.743578 0.217440 +& 12 0.347824 0.763750 0.234697 +& 12 0.358401 0.783447 0.253114 +& 12 0.369299 0.802571 0.272734 +& 12 0.379390 0.819225 0.291454 +& 12 0.389758 0.835318 0.311210 +& 12 0.400408 0.850839 0.332023 +& 12 0.411350 0.865765 0.353910 +& 12 0.422591 0.880039 0.376884 +& 12 0.432840 0.892121 0.398222 +& 12 0.443338 0.903581 0.420420 +& 12 0.454090 0.914371 0.443471 +& 12 0.465104 0.924450 0.467361 +& 12 0.476384 0.933779 0.492069 +& 12 0.486479 0.941300 0.514335 +& 12 0.496787 0.948199 0.537181 +& 12 0.507314 0.954456 0.560575 +& 12 0.518064 0.960053 0.584480 +& 12 0.529042 0.964973 0.608854 +& 12 0.540252 0.969202 0.633648 +& 12 0.551700 0.972727 0.658805 +& 12 0.561705 0.975182 0.680608 +& 12 0.571892 0.977108 0.702587 +& 12 0.582264 0.978502 0.724690 +& 12 0.592824 0.979361 0.746866 +& 12 0.603575 0.979685 0.769056 +& 12 0.614521 0.979476 0.791198 +& 12 0.625666 0.978735 0.813224 +& 12 0.637012 0.977468 0.835063 +& 12 0.648565 0.975679 0.856639 +& 12 0.660327 0.973376 0.877872 +& 12 0.672302 0.970567 0.898679 +& 12 0.682448 0.967844 0.915628 +& 12 0.692746 0.964782 0.932167 +& 12 0.703200 0.961385 0.948242 +& 12 0.713811 0.957660 0.963798 +& 12 0.724583 0.953613 0.978778 +& 12 0.735517 0.949250 0.993124 +& 12 0.746616 0.944578 1.006779 +& 12 0.757883 0.939603 1.019684 +& 12 0.769319 0.934332 1.031782 +& 12 0.780929 0.928772 1.043015 +& 12 0.792713 0.922931 1.053325 +& 12 0.804675 0.916815 1.062658 +& 12 0.816818 0.910432 1.070960 +& 12 0.829144 0.903790 1.078178 +& 12 0.841656 0.896897 1.084264 +& 12 0.851801 0.891207 1.088286 +& 12 0.862069 0.885365 1.091531 +& 12 0.872461 0.879377 1.093981 +& 12 0.882977 0.873246 1.095615 +& 12 0.893621 0.866977 1.096418 +& 12 0.904393 0.860575 1.096376 +& 12 0.915294 0.854044 1.095476 +& 12 0.926327 0.847389 1.093710 +& 12 0.937493 0.840615 1.091071 +& 12 0.948794 0.833725 1.087554 +& 12 0.960231 0.826726 1.083160 +& 12 0.971806 0.819621 1.077890 +& 12 0.983520 0.812415 1.071750 +& 12 0.995375 0.805114 1.064749 +& 12 1.007374 0.797721 1.056899 +& 12 1.019517 0.790242 1.048216 +& 12 1.031806 0.782681 1.038719 +& 12 1.044244 0.775043 1.028431 +& 12 1.056831 0.767332 1.017378 +& 12 1.069570 0.759554 1.005590 +& 12 1.082463 0.751712 0.993100 +& 12 1.095511 0.743811 0.979944 +& 12 1.108716 0.735856 0.966163 +& 12 1.118725 0.729857 0.955443 +& 12 1.128824 0.723831 0.944413 +& 12 1.139013 0.717782 0.933094 +& 12 1.149295 0.711709 0.921507 +& 12 1.159670 0.705616 0.909674 +& 12 1.170138 0.699505 0.897615 +& 12 1.180701 0.693376 0.885354 +& 12 1.191360 0.687231 0.872914 +& 12 1.202114 0.681073 0.860319 +& 12 1.212965 0.674903 0.847592 +& 12 1.223915 0.668723 0.834757 +& 12 1.234963 0.662534 0.821839 +& 12 1.246111 0.656338 0.808861 +& 12 1.257360 0.650136 0.795847 +& 12 1.268710 0.643931 0.782822 +& 12 1.280163 0.637723 0.769809 +& 12 1.291719 0.631514 0.756830 +& 12 1.303379 0.625306 0.743910 +& 12 1.315145 0.619099 0.731068 +& 12 1.327017 0.612896 0.718326 +& 12 1.338996 0.606698 0.705706 +& 12 1.351083 0.600505 0.693225 +& 12 1.363279 0.594320 0.680902 +& 12 1.375586 0.588144 0.668754 +& 12 1.388003 0.581977 0.656797 +& 12 1.400533 0.575821 0.645045 +& 12 1.413175 0.569677 0.633512 +& 12 1.425932 0.563546 0.622208 +& 12 1.438804 0.557430 0.611145 +& 12 1.451792 0.551329 0.600330 +& 12 1.464897 0.545245 0.589771 +& 12 1.478121 0.539178 0.579473 +& 12 1.491464 0.533129 0.569440 +& 12 1.504928 0.527100 0.559674 +& 12 1.518513 0.521091 0.550176 +& 12 1.532220 0.515104 0.540945 +& 12 1.546052 0.509138 0.531979 +& 12 1.560008 0.503196 0.523274 +& 12 1.574090 0.497277 0.514825 +& 12 1.588300 0.491384 0.506627 +& 12 1.602637 0.485515 0.498671 +& 12 1.617104 0.479673 0.490949 +& 12 1.631702 0.473859 0.483452 +& 12 1.646431 0.468072 0.476171 +& 12 1.661294 0.462313 0.469093 +& 12 1.676290 0.456584 0.462209 +& 12 1.686363 0.452781 0.457721 +& 12 1.696496 0.448991 0.453311 +& 12 1.706691 0.445215 0.448974 +& 12 1.716946 0.441453 0.444708 +& 12 1.727263 0.437705 0.440508 +& 12 1.737642 0.433971 0.436372 +& 12 1.748084 0.430252 0.432295 +& 12 1.758588 0.426547 0.428276 +& 12 1.769155 0.422856 0.424309 +& 12 1.779786 0.419181 0.420393 +& 12 1.790481 0.415520 0.416524 +& 12 1.801240 0.411875 0.412699 +& 12 1.812064 0.408244 0.408915 +& 12 1.822952 0.404629 0.405170 +& 12 1.833907 0.401030 0.401462 +& 12 1.844926 0.397446 0.397787 +& 12 1.856013 0.393879 0.394144 +& 12 1.867165 0.390327 0.390531 +& 12 1.878385 0.386791 0.386945 +& 12 1.889672 0.383271 0.383386 +& 12 1.901027 0.379767 0.379852 +& 12 1.912451 0.376280 0.376340 +& 12 1.923943 0.372809 0.372852 +& 12 1.935504 0.369355 0.369384 +& 12 1.947134 0.365917 0.365936 +& 12 1.958834 0.362496 0.362509 +& 12 1.970605 0.359092 0.359100 +& 12 1.982446 0.355705 0.355709 +& 12 1.994359 0.352335 0.352337 +& 12 2.006343 0.348982 0.348983 +& 12 2.018399 0.345646 0.345646 +& 12 2.030528 0.342327 0.342327 +& 12 2.042729 0.339026 0.339026 +& 12 2.055004 0.335742 0.335742 +& 12 2.067352 0.332475 0.332475 +& 12 2.079775 0.329226 0.329226 +& 12 2.092273 0.325995 0.325995 +& 12 2.104845 0.322781 0.322781 +& 12 2.117493 0.319585 0.319585 +& 12 2.130217 0.316407 0.316407 +& 12 2.143017 0.313246 0.313246 +& 12 2.155895 0.310104 0.310104 +& 12 2.168850 0.306979 0.306979 +& 12 2.181882 0.303872 0.303872 +& 12 2.194993 0.300783 0.300783 +& 12 2.208183 0.297712 0.297712 +& 12 2.221452 0.294660 0.294660 +& 12 2.234801 0.291625 0.291625 +& 12 2.248230 0.288608 0.288608 +& 12 2.261739 0.285610 0.285610 +& 12 2.275330 0.282630 0.282630 +& 12 2.289002 0.279668 0.279668 +& 12 2.302757 0.276724 0.276724 +& 12 2.316594 0.273799 0.273799 +& 12 2.330515 0.270892 0.270892 +& 12 2.344519 0.268003 0.268003 +& 12 2.358607 0.265132 0.265132 +& 12 2.372780 0.262280 0.262280 +& 12 2.387038 0.259446 0.259446 +& 12 2.401382 0.256630 0.256630 +& 12 2.415811 0.253833 0.253833 +& 12 2.430328 0.251054 0.251054 +& 12 2.444932 0.248294 0.248294 +& 12 2.459623 0.245552 0.245552 +& 12 2.474403 0.242828 0.242828 +& 12 2.489272 0.240123 0.240123 +& 12 2.504230 0.237436 0.237436 +& 12 2.519278 0.234768 0.234768 +& 12 2.534416 0.232118 0.232118 +& 12 2.549646 0.229486 0.229486 +& 12 2.564966 0.226872 0.226872 +& 12 2.580379 0.224277 0.224277 +& 12 2.595885 0.221701 0.221701 +& 12 2.611484 0.219142 0.219142 +& 12 2.627176 0.216602 0.216602 +& 12 2.642963 0.214080 0.214080 +& 12 2.658844 0.211577 0.211577 +& 12 2.674821 0.209092 0.209092 +& 12 2.690894 0.206625 0.206625 +& 12 2.707064 0.204176 0.204176 +& 12 2.723331 0.201745 0.201745 +& 12 2.739695 0.199333 0.199333 +& 12 2.756158 0.196939 0.196939 +& 12 2.772720 0.194563 0.194563 +& 12 2.789381 0.192205 0.192205 +& 12 2.806142 0.189865 0.189865 +& 12 2.823004 0.187543 0.187543 +& 12 2.839968 0.185239 0.185239 +& 12 2.857033 0.182953 0.182953 +& 12 2.874201 0.180685 0.180685 +& 12 2.891472 0.178435 0.178435 +& 12 2.908847 0.176203 0.176203 +& 12 2.926326 0.173989 0.173989 +& 12 2.943911 0.171793 0.171793 +& 12 2.961601 0.169614 0.169614 +& 12 2.979397 0.167453 0.167453 +& 12 2.997300 0.165310 0.165310 +& 12 3.015311 0.163185 0.163185 +& 12 3.033430 0.161077 0.161077 +& 12 3.051658 0.158987 0.158987 +& 12 3.069995 0.156914 0.156914 +& 12 3.088443 0.154859 0.154859 +& 12 3.107001 0.152821 0.152821 +& 12 3.125671 0.150800 0.150800 +& 12 3.144453 0.148797 0.148797 +& 12 3.163348 0.146812 0.146812 +& 12 3.182357 0.144843 0.144843 +& 12 3.201480 0.142892 0.142892 +& 12 3.220717 0.140958 0.140958 +& 12 3.240071 0.139041 0.139041 +& 12 3.259540 0.137141 0.137141 +& 12 3.279127 0.135259 0.135259 +& 12 3.298831 0.133393 0.133393 +& 12 3.318654 0.131544 0.131544 +& 12 3.338595 0.129712 0.129712 +& 12 3.348611 0.128802 0.128802 +& 12 3.358657 0.127896 0.127896 +& 12 3.368733 0.126995 0.126995 +& 12 3.378839 0.126098 0.126098 +& 12 3.388976 0.125205 0.125205 +& 12 3.399143 0.124316 0.124316 +& 12 3.409340 0.123431 0.123431 +& 12 3.419568 0.122551 0.122551 +& 12 3.429827 0.121675 0.121675 +& 12 3.440116 0.120802 0.120802 +& 12 3.450437 0.119934 0.119934 +& 12 3.460788 0.119070 0.119070 +& 12 3.471170 0.118210 0.118210 +& 12 3.481584 0.117355 0.117355 +& 12 3.492029 0.116503 0.116503 +& 12 3.502505 0.115656 0.115656 +& 12 3.513012 0.114812 0.114812 +& 12 3.523551 0.113973 0.113973 +& 12 3.534122 0.113137 0.113137 +& 12 3.544724 0.112306 0.112306 +& 12 3.555358 0.111479 0.111479 +& 12 3.566025 0.110656 0.110656 +& 12 3.576723 0.109837 0.109837 +& 12 3.587453 0.109022 0.109022 +& 12 3.598215 0.108211 0.108211 +& 12 3.609010 0.107404 0.107404 +& 12 3.619837 0.106601 0.106601 +& 12 3.630696 0.105802 0.105802 +& 12 3.641588 0.105007 0.105007 +& 12 3.652513 0.104216 0.104216 +& 12 3.663471 0.103429 0.103429 +& 12 3.674461 0.102646 0.102646 +& 12 3.685485 0.101867 0.101867 +& 12 3.696541 0.101092 0.101092 +& 12 3.707631 0.100321 0.100321 +& 12 3.718753 0.099554 0.099554 +& 12 3.729910 0.098791 0.098791 +& 12 3.741099 0.098031 0.098031 +& 12 3.752323 0.097276 0.097276 +& 12 3.763580 0.096525 0.096525 +& 12 3.774870 0.095777 0.095777 +& 12 3.786195 0.095033 0.095033 +& 12 3.797554 0.094294 0.094294 +& 12 3.808946 0.093558 0.093558 +& 12 3.820373 0.092826 0.092826 +& 12 3.831834 0.092098 0.092098 +& 12 3.843330 0.091373 0.091373 +& 12 3.854860 0.090653 0.090653 +& 12 3.866424 0.089936 0.089936 +& 12 3.878024 0.089223 0.089223 +& 12 3.889658 0.088515 0.088515 +& 12 3.901327 0.087809 0.087809 +& 12 3.913031 0.087108 0.087108 +& 12 3.924770 0.086411 0.086411 +& 12 3.936544 0.085717 0.085717 +& 12 3.948354 0.085027 0.085027 +& 12 3.960199 0.084341 0.084341 +& 12 3.972079 0.083658 0.083658 +& 12 3.983996 0.082980 0.082980 +& 12 3.995948 0.082305 0.082305 +& 12 4.007935 0.081634 0.081634 +& 12 4.019959 0.080966 0.080966 +& 12 4.032019 0.080302 0.080302 +& 12 4.044115 0.079642 0.079642 +& 12 4.056248 0.078986 0.078986 +& 12 4.068416 0.078333 0.078333 +& 12 4.080622 0.077685 0.077685 +& 12 4.092863 0.077039 0.077039 +& 12 4.105142 0.076398 0.076398 +& 12 4.117457 0.075760 0.075760 +& 12 4.129810 0.075126 0.075126 +& 12 4.142199 0.074495 0.074495 +& 12 4.154626 0.073868 0.073868 +& 12 4.167090 0.073245 0.073245 +& 12 4.179591 0.072625 0.072625 +& 12 4.192130 0.072009 0.072009 +& 12 4.204706 0.071396 0.071396 +& 12 4.217320 0.070787 0.070787 +& 12 4.229972 0.070182 0.070182 +& 12 4.242662 0.069580 0.069580 +& 12 4.255390 0.068982 0.068982 +& 12 4.268156 0.068387 0.068387 +& 12 4.280961 0.067796 0.067796 +& 12 4.293804 0.067209 0.067209 +& 12 4.306685 0.066625 0.066625 +& 12 4.319605 0.066044 0.066044 +& 12 4.332564 0.065467 0.065467 +& 12 4.345562 0.064894 0.064894 +& 12 4.358598 0.064323 0.064323 +& 12 4.371674 0.063757 0.063757 +& 12 4.384789 0.063194 0.063194 +& 12 4.397943 0.062634 0.062634 +& 12 4.411137 0.062078 0.062078 +& 12 4.424371 0.061525 0.061525 +& 12 4.437644 0.060976 0.060976 +& 12 4.450957 0.060430 0.060430 +& 12 4.464310 0.059888 0.059888 +& 12 4.477703 0.059349 0.059349 +& 12 4.491136 0.058813 0.058813 +& 12 4.504609 0.058281 0.058281 +& 12 4.518123 0.057752 0.057752 +& 12 4.531677 0.057226 0.057226 +& 12 4.545272 0.056704 0.056704 +& 12 4.558908 0.056185 0.056185 +& 12 4.572585 0.055670 0.055670 +& 12 4.586303 0.055157 0.055157 +& 12 4.600061 0.054649 0.054649 +& 12 4.613862 0.054143 0.054143 +& 12 4.627703 0.053641 0.053641 +& 12 4.641586 0.053142 0.053142 +& 12 4.655511 0.052646 0.052646 +& 12 4.669478 0.052154 0.052154 +& 12 4.683486 0.051664 0.051664 +& 12 4.697537 0.051179 0.051179 +& 12 4.711629 0.050696 0.050696 +& 12 4.725764 0.050216 0.050216 +& 12 4.739941 0.049740 0.049740 +& 12 4.754161 0.049267 0.049267 +& 12 4.768424 0.048797 0.048797 +& 12 4.782729 0.048331 0.048331 +& 12 4.797077 0.047867 0.047867 +& 12 4.811468 0.047407 0.047407 +& 12 4.825903 0.046950 0.046950 +& 12 4.840380 0.046496 0.046496 +& 12 4.854902 0.046045 0.046045 +& 12 4.869466 0.045597 0.045597 +& 12 4.884075 0.045152 0.045152 +& 12 4.898727 0.044711 0.044711 +& 12 4.913423 0.044272 0.044272 +& 12 4.928163 0.043837 0.043837 +& 12 4.942948 0.043405 0.043405 +& 12 4.957777 0.042975 0.042975 +& 12 4.972650 0.042549 0.042549 +& 12 4.987568 0.042126 0.042126 +& 12 5.002531 0.041706 0.041706 +& 12 5.017538 0.041289 0.041289 +& 12 5.032591 0.040875 0.040875 +& 12 5.047689 0.040464 0.040464 +& 12 5.062832 0.040056 0.040056 +& 12 5.078020 0.039651 0.039651 +& 12 5.093254 0.039248 0.039248 +& 12 5.108534 0.038849 0.038849 +& 12 5.123860 0.038453 0.038453 +& 12 5.139231 0.038060 0.038060 +& 12 5.154649 0.037669 0.037669 +& 12 5.170113 0.037282 0.037282 +& 12 5.185623 0.036897 0.036897 +& 12 5.201180 0.036515 0.036515 +& 12 5.216784 0.036136 0.036136 +& 12 5.232434 0.035760 0.035760 +& 12 5.248131 0.035387 0.035387 +& 12 5.263876 0.035017 0.035017 +& 12 5.279667 0.034650 0.034650 +& 12 5.295506 0.034285 0.034285 +& 12 5.311393 0.033923 0.033923 +& 12 5.327327 0.033564 0.033564 +& 12 5.343309 0.033208 0.033208 +& 12 5.359339 0.032854 0.032854 +& 12 5.375417 0.032504 0.032504 +& 12 5.391543 0.032156 0.032156 +& 12 5.407718 0.031810 0.031810 +& 12 5.423941 0.031468 0.031468 +& 12 5.440213 0.031128 0.031128 +& 12 5.456533 0.030791 0.030791 +& 12 5.472903 0.030457 0.030457 +& 12 5.489322 0.030125 0.030125 +& 12 5.505790 0.029796 0.029796 +& 12 5.522307 0.029470 0.029470 +& 12 5.538874 0.029146 0.029146 +& 12 5.555491 0.028825 0.028825 +& 12 5.572157 0.028507 0.028507 +& 12 5.588874 0.028191 0.028191 +& 12 5.605640 0.027878 0.027878 +& 12 5.622457 0.027567 0.027567 +& 12 5.639324 0.027259 0.027259 +& 12 5.656242 0.026953 0.026953 +& 12 5.673211 0.026650 0.026650 +& 12 5.690231 0.026350 0.026350 +& 12 5.707301 0.026052 0.026052 +& 12 5.724423 0.025757 0.025757 +& 12 5.741597 0.025464 0.025464 +& 12 5.758821 0.025174 0.025174 +& 12 5.776098 0.024886 0.024886 +& 12 5.793426 0.024600 0.024600 +& 12 5.810806 0.024317 0.024317 +& 12 5.828239 0.024037 0.024037 +& 12 5.845724 0.023759 0.023759 +& 12 5.863261 0.023483 0.023483 +& 12 5.880851 0.023210 0.023210 +& 12 5.898493 0.022939 0.022939 +& 12 5.916189 0.022671 0.022671 +& 12 5.933937 0.022405 0.022405 +& 12 5.951739 0.022141 0.022141 +& 12 5.969594 0.021880 0.021880 +& 12 5.987503 0.021621 0.021621 + + +scattering, iprj= 2, l= 2, all-electron wave function, pseudo w-f + +& 22 0.009994 0.000094 0.000003 +& 22 0.020025 0.000691 0.000028 +& 22 0.030095 0.002136 0.000095 +& 22 0.040122 0.004621 0.000224 +& 22 0.050229 0.008286 0.000438 +& 22 0.060299 0.013126 0.000757 +& 22 0.070463 0.019200 0.001204 +& 22 0.080631 0.026413 0.001797 +& 22 0.090895 0.034753 0.002565 +& 22 0.100942 0.043843 0.003498 +& 22 0.111097 0.053849 0.004641 +& 22 0.121180 0.064483 0.005992 +& 22 0.131388 0.075842 0.007594 +& 22 0.141605 0.087696 0.009448 +& 22 0.151705 0.099784 0.011541 +& 22 0.162040 0.112427 0.013962 +& 22 0.172044 0.124840 0.016587 +& 22 0.182120 0.137426 0.019520 +& 22 0.192209 0.150035 0.022755 +& 22 0.202251 0.162517 0.026277 +& 22 0.212817 0.175508 0.030316 +& 22 0.223265 0.188144 0.034650 +& 22 0.233526 0.200294 0.039236 +& 22 0.243528 0.211848 0.044024 +& 22 0.253958 0.223555 0.049349 +& 22 0.264042 0.234514 0.054819 +& 22 0.274527 0.245510 0.060836 +& 22 0.284575 0.255650 0.066913 +& 22 0.294991 0.265737 0.073527 +& 22 0.305787 0.275720 0.080712 +& 22 0.316031 0.284730 0.087828 +& 22 0.326618 0.293555 0.095476 +& 22 0.337559 0.302144 0.103679 +& 22 0.347824 0.309703 0.111636 +& 22 0.358401 0.316982 0.120084 +& 22 0.369299 0.323935 0.129032 +& 22 0.379390 0.329880 0.137520 +& 22 0.389758 0.335509 0.146424 +& 22 0.400408 0.340812 0.155744 +& 22 0.411350 0.345773 0.165475 +& 22 0.422591 0.350362 0.175612 +& 22 0.432840 0.354099 0.184952 +& 22 0.443338 0.357489 0.194591 +& 22 0.454090 0.360508 0.204513 +& 22 0.465104 0.363133 0.214698 +& 22 0.476384 0.365344 0.225122 +& 22 0.486479 0.366922 0.234418 +& 22 0.496787 0.368154 0.243853 +& 22 0.507314 0.369029 0.253402 +& 22 0.518064 0.369533 0.263035 +& 22 0.529042 0.369657 0.272721 +& 22 0.540252 0.369389 0.282423 +& 22 0.551700 0.368721 0.292102 +& 22 0.561705 0.367822 0.300345 +& 22 0.571892 0.366617 0.308510 +& 22 0.582264 0.365101 0.316562 +& 22 0.592824 0.363271 0.324469 +& 22 0.603575 0.361122 0.332193 +& 22 0.614521 0.358652 0.339696 +& 22 0.625666 0.355858 0.346938 +& 22 0.637012 0.352739 0.353876 +& 22 0.648565 0.349292 0.360464 +& 22 0.660327 0.345517 0.366658 +& 22 0.672302 0.341413 0.372410 +& 22 0.682448 0.337741 0.376830 +& 22 0.692746 0.333841 0.380880 +& 22 0.703200 0.329712 0.384532 +& 22 0.713811 0.325355 0.387754 +& 22 0.724583 0.320768 0.390519 +& 22 0.735517 0.315953 0.392796 +& 22 0.746616 0.310910 0.394557 +& 22 0.757883 0.305639 0.395773 +& 22 0.769319 0.300141 0.396416 +& 22 0.780929 0.294415 0.396458 +& 22 0.792713 0.288462 0.395873 +& 22 0.804675 0.282283 0.394638 +& 22 0.816818 0.275877 0.392727 +& 22 0.829144 0.269247 0.390121 +& 22 0.841656 0.262391 0.386800 +& 22 0.851801 0.256746 0.383616 +& 22 0.862069 0.250958 0.379956 +& 22 0.872461 0.245027 0.375813 +& 22 0.882977 0.238954 0.371183 +& 22 0.893621 0.232740 0.366060 +& 22 0.904393 0.226385 0.360444 +& 22 0.915294 0.219889 0.354331 +& 22 0.926327 0.213253 0.347724 +& 22 0.937493 0.206478 0.340624 +& 22 0.948794 0.199564 0.333034 +& 22 0.960231 0.192512 0.324960 +& 22 0.971806 0.185322 0.316408 +& 22 0.983520 0.177995 0.307387 +& 22 0.995375 0.170531 0.297908 +& 22 1.007374 0.162931 0.287982 +& 22 1.019517 0.155196 0.277623 +& 22 1.031806 0.147326 0.266846 +& 22 1.044244 0.139321 0.255668 +& 22 1.056831 0.131182 0.244108 +& 22 1.069570 0.122910 0.232186 +& 22 1.082463 0.114506 0.219923 +& 22 1.095511 0.105969 0.207341 +& 22 1.108716 0.097300 0.194465 +& 22 1.118725 0.090713 0.184630 +& 22 1.128824 0.084052 0.174653 +& 22 1.139013 0.077317 0.164546 +& 22 1.149295 0.070510 0.154321 +& 22 1.159670 0.063629 0.143987 +& 22 1.170138 0.056676 0.133558 +& 22 1.180701 0.049651 0.123044 +& 22 1.191360 0.042553 0.112456 +& 22 1.202114 0.035384 0.101806 +& 22 1.212965 0.028143 0.091105 +& 22 1.223915 0.020831 0.080364 +& 22 1.234963 0.013447 0.069594 +& 22 1.246111 0.005994 0.058805 +& 22 1.257360 -0.001530 0.048007 +& 22 1.268710 -0.009124 0.037210 +& 22 1.280163 -0.016787 0.026423 +& 22 1.291719 -0.024518 0.015655 +& 22 1.303379 -0.032318 0.004914 +& 22 1.315145 -0.040185 -0.005793 +& 22 1.327017 -0.048120 -0.016458 +& 22 1.338996 -0.056120 -0.027077 +& 22 1.351083 -0.064186 -0.037642 +& 22 1.363279 -0.072316 -0.048149 +& 22 1.375586 -0.080510 -0.058595 +& 22 1.388003 -0.088766 -0.068976 +& 22 1.400533 -0.097083 -0.079289 +& 22 1.413175 -0.105460 -0.089533 +& 22 1.425932 -0.113895 -0.099707 +& 22 1.438804 -0.122388 -0.109811 +& 22 1.451792 -0.130936 -0.119845 +& 22 1.464897 -0.139537 -0.129809 +& 22 1.478121 -0.148191 -0.139707 +& 22 1.491464 -0.156894 -0.149539 +& 22 1.504928 -0.165646 -0.159308 +& 22 1.518513 -0.174443 -0.169018 +& 22 1.532220 -0.183284 -0.178672 +& 22 1.546052 -0.192166 -0.188273 +& 22 1.560008 -0.201087 -0.197826 +& 22 1.574090 -0.210044 -0.207334 +& 22 1.588300 -0.219035 -0.216801 +& 22 1.602637 -0.228056 -0.226231 +& 22 1.617104 -0.237106 -0.235628 +& 22 1.631702 -0.246180 -0.244995 +& 22 1.646431 -0.255275 -0.254334 +& 22 1.661294 -0.264389 -0.263649 +& 22 1.676290 -0.273517 -0.272942 +& 22 1.686363 -0.279609 -0.279126 +& 22 1.696496 -0.285705 -0.285301 +& 22 1.706691 -0.291804 -0.291467 +& 22 1.716946 -0.297904 -0.297625 +& 22 1.727263 -0.304004 -0.303774 +& 22 1.737642 -0.310103 -0.309914 +& 22 1.748084 -0.316200 -0.316046 +& 22 1.758588 -0.322293 -0.322168 +& 22 1.769155 -0.328382 -0.328280 +& 22 1.779786 -0.334464 -0.334381 +& 22 1.790481 -0.340538 -0.340471 +& 22 1.801240 -0.346602 -0.346549 +& 22 1.812064 -0.352656 -0.352613 +& 22 1.822952 -0.358698 -0.358663 +& 22 1.833907 -0.364725 -0.364697 +& 22 1.844926 -0.370736 -0.370714 +& 22 1.856013 -0.376730 -0.376713 +& 22 1.867165 -0.382705 -0.382691 +& 22 1.878385 -0.388658 -0.388647 +& 22 1.889672 -0.394588 -0.394580 +& 22 1.901027 -0.400494 -0.400487 +& 22 1.912451 -0.406373 -0.406367 +& 22 1.923943 -0.412222 -0.412218 +& 22 1.935504 -0.418041 -0.418038 +& 22 1.947134 -0.423827 -0.423825 +& 22 1.958834 -0.429578 -0.429576 +& 22 1.970605 -0.435291 -0.435289 +& 22 1.982446 -0.440964 -0.440963 +& 22 1.994359 -0.446595 -0.446595 +& 22 2.006343 -0.452182 -0.452182 +& 22 2.018399 -0.457722 -0.457722 +& 22 2.030528 -0.463213 -0.463213 +& 22 2.042729 -0.468652 -0.468652 +& 22 2.055004 -0.474037 -0.474037 +& 22 2.067352 -0.479364 -0.479364 +& 22 2.079775 -0.484632 -0.484632 +& 22 2.092273 -0.489838 -0.489838 +& 22 2.104845 -0.494978 -0.494978 +& 22 2.117493 -0.500051 -0.500051 +& 22 2.130217 -0.505052 -0.505052 +& 22 2.143017 -0.509980 -0.509980 +& 22 2.155895 -0.514831 -0.514831 +& 22 2.168850 -0.519603 -0.519603 +& 22 2.181882 -0.524291 -0.524291 +& 22 2.194993 -0.528894 -0.528894 +& 22 2.208183 -0.533407 -0.533407 +& 22 2.221452 -0.537829 -0.537829 +& 22 2.234801 -0.542155 -0.542155 +& 22 2.248230 -0.546382 -0.546382 +& 22 2.261739 -0.550506 -0.550506 +& 22 2.275330 -0.554526 -0.554526 +& 22 2.289002 -0.558436 -0.558436 +& 22 2.302757 -0.562234 -0.562234 +& 22 2.316594 -0.565916 -0.565916 +& 22 2.330515 -0.569479 -0.569479 +& 22 2.344519 -0.572918 -0.572918 +& 22 2.358607 -0.576231 -0.576231 +& 22 2.372780 -0.579414 -0.579414 +& 22 2.387038 -0.582463 -0.582463 +& 22 2.401382 -0.585374 -0.585374 +& 22 2.415811 -0.588143 -0.588143 +& 22 2.430328 -0.590768 -0.590768 +& 22 2.444932 -0.593243 -0.593243 +& 22 2.459623 -0.595565 -0.595565 +& 22 2.474403 -0.597731 -0.597731 +& 22 2.489272 -0.599737 -0.599737 +& 22 2.504230 -0.601578 -0.601578 +& 22 2.519278 -0.603251 -0.603251 +& 22 2.534416 -0.604752 -0.604752 +& 22 2.549646 -0.606077 -0.606077 +& 22 2.564966 -0.607221 -0.607221 +& 22 2.580379 -0.608183 -0.608183 +& 22 2.595885 -0.608956 -0.608956 +& 22 2.611484 -0.609538 -0.609538 +& 22 2.627176 -0.609924 -0.609924 +& 22 2.642963 -0.610111 -0.610111 +& 22 2.658844 -0.610094 -0.610094 +& 22 2.674821 -0.609871 -0.609871 +& 22 2.690894 -0.609437 -0.609437 +& 22 2.707064 -0.608788 -0.608788 +& 22 2.723331 -0.607921 -0.607921 +& 22 2.739695 -0.606831 -0.606831 +& 22 2.756158 -0.605516 -0.605516 +& 22 2.772720 -0.603971 -0.603971 +& 22 2.789381 -0.602194 -0.602194 +& 22 2.806142 -0.600180 -0.600180 +& 22 2.823004 -0.597925 -0.597925 +& 22 2.839968 -0.595428 -0.595428 +& 22 2.857033 -0.592684 -0.592684 +& 22 2.874201 -0.589690 -0.589690 +& 22 2.891472 -0.586443 -0.586443 +& 22 2.908847 -0.582940 -0.582940 +& 22 2.926326 -0.579177 -0.579177 +& 22 2.943911 -0.575153 -0.575153 +& 22 2.961601 -0.570864 -0.570864 +& 22 2.979397 -0.566308 -0.566308 +& 22 2.997300 -0.561482 -0.561482 +& 22 3.015311 -0.556383 -0.556383 +& 22 3.033430 -0.551010 -0.551010 +& 22 3.051658 -0.545361 -0.545361 +& 22 3.069995 -0.539433 -0.539433 +& 22 3.088443 -0.533224 -0.533224 +& 22 3.107001 -0.526733 -0.526733 +& 22 3.125671 -0.519959 -0.519959 +& 22 3.144453 -0.512899 -0.512899 +& 22 3.163348 -0.505554 -0.505554 +& 22 3.182357 -0.497922 -0.497922 +& 22 3.201480 -0.490002 -0.490002 +& 22 3.220717 -0.481794 -0.481794 +& 22 3.240071 -0.473298 -0.473298 +& 22 3.259540 -0.464513 -0.464513 +& 22 3.279127 -0.455439 -0.455439 +& 22 3.298831 -0.446078 -0.446078 +& 22 3.318654 -0.436429 -0.436429 +& 22 3.338595 -0.426493 -0.426493 +& 22 3.348611 -0.421419 -0.421419 +& 22 3.358657 -0.416273 -0.416273 +& 22 3.368733 -0.411056 -0.411056 +& 22 3.378839 -0.405768 -0.405768 +& 22 3.388976 -0.400410 -0.400410 +& 22 3.399143 -0.394982 -0.394982 +& 22 3.409340 -0.389483 -0.389483 +& 22 3.419568 -0.383915 -0.383915 +& 22 3.429827 -0.378277 -0.378277 +& 22 3.440116 -0.372570 -0.372570 +& 22 3.450437 -0.366794 -0.366794 +& 22 3.460788 -0.360950 -0.360950 +& 22 3.471170 -0.355037 -0.355037 +& 22 3.481584 -0.349057 -0.349057 +& 22 3.492029 -0.343010 -0.343010 +& 22 3.502505 -0.336896 -0.336896 +& 22 3.513012 -0.330715 -0.330715 +& 22 3.523551 -0.324468 -0.324468 +& 22 3.534122 -0.318156 -0.318156 +& 22 3.544724 -0.311780 -0.311780 +& 22 3.555358 -0.305338 -0.305338 +& 22 3.566025 -0.298833 -0.298833 +& 22 3.576723 -0.292265 -0.292265 +& 22 3.587453 -0.285634 -0.285634 +& 22 3.598215 -0.278941 -0.278941 +& 22 3.609010 -0.272186 -0.272186 +& 22 3.619837 -0.265371 -0.265371 +& 22 3.630696 -0.258496 -0.258496 +& 22 3.641588 -0.251562 -0.251562 +& 22 3.652513 -0.244569 -0.244569 +& 22 3.663471 -0.237518 -0.237518 +& 22 3.674461 -0.230410 -0.230410 +& 22 3.685485 -0.223247 -0.223247 +& 22 3.696541 -0.216027 -0.216027 +& 22 3.707631 -0.208754 -0.208754 +& 22 3.718753 -0.201427 -0.201427 +& 22 3.729910 -0.194047 -0.194047 +& 22 3.741099 -0.186615 -0.186615 +& 22 3.752323 -0.179133 -0.179133 +& 22 3.763580 -0.171601 -0.171601 +& 22 3.774870 -0.164020 -0.164020 +& 22 3.786195 -0.156391 -0.156391 +& 22 3.797554 -0.148716 -0.148716 +& 22 3.808946 -0.140995 -0.140995 +& 22 3.820373 -0.133229 -0.133229 +& 22 3.831834 -0.125420 -0.125420 +& 22 3.843330 -0.117569 -0.117569 +& 22 3.854860 -0.109678 -0.109678 +& 22 3.866424 -0.101746 -0.101746 +& 22 3.878024 -0.093776 -0.093776 +& 22 3.889658 -0.085768 -0.085768 +& 22 3.901327 -0.077724 -0.077724 +& 22 3.913031 -0.069646 -0.069646 +& 22 3.924770 -0.061535 -0.061535 +& 22 3.936544 -0.053392 -0.053392 +& 22 3.948354 -0.045218 -0.045218 +& 22 3.960199 -0.037015 -0.037015 +& 22 3.972079 -0.028784 -0.028784 +& 22 3.983996 -0.020527 -0.020527 +& 22 3.995948 -0.012246 -0.012246 +& 22 4.007935 -0.003941 -0.003941 +& 22 4.019959 0.004385 0.004385 +& 22 4.032019 0.012731 0.012731 +& 22 4.044115 0.021095 0.021095 +& 22 4.056248 0.029476 0.029476 +& 22 4.068416 0.037872 0.037872 +& 22 4.080622 0.046282 0.046282 +& 22 4.092863 0.054703 0.054703 +& 22 4.105142 0.063134 0.063134 +& 22 4.117457 0.071573 0.071573 +& 22 4.129810 0.080019 0.080019 +& 22 4.142199 0.088469 0.088469 +& 22 4.154626 0.096922 0.096922 +& 22 4.167090 0.105375 0.105375 +& 22 4.179591 0.113827 0.113827 +& 22 4.192130 0.122277 0.122277 +& 22 4.204706 0.130721 0.130721 +& 22 4.217320 0.139158 0.139158 +& 22 4.229972 0.147587 0.147587 +& 22 4.242662 0.156004 0.156004 +& 22 4.255390 0.164408 0.164408 +& 22 4.268156 0.172798 0.172798 +& 22 4.280961 0.181170 0.181170 +& 22 4.293804 0.189523 0.189523 +& 22 4.306685 0.197854 0.197854 +& 22 4.319605 0.206162 0.206162 +& 22 4.332564 0.214444 0.214444 +& 22 4.345562 0.222698 0.222698 +& 22 4.358598 0.230922 0.230922 +& 22 4.371674 0.239113 0.239113 +& 22 4.384789 0.247269 0.247269 +& 22 4.397943 0.255389 0.255389 +& 22 4.411137 0.263469 0.263469 +& 22 4.424371 0.271508 0.271508 +& 22 4.437644 0.279503 0.279503 +& 22 4.450957 0.287451 0.287451 +& 22 4.464310 0.295351 0.295351 +& 22 4.477703 0.303199 0.303199 +& 22 4.491136 0.310994 0.310994 +& 22 4.504609 0.318733 0.318733 +& 22 4.518123 0.326413 0.326413 +& 22 4.531677 0.334033 0.334033 +& 22 4.545272 0.341589 0.341589 +& 22 4.558908 0.349080 0.349080 +& 22 4.572585 0.356502 0.356502 +& 22 4.586303 0.363853 0.363853 +& 22 4.600061 0.371131 0.371131 +& 22 4.613862 0.378333 0.378333 +& 22 4.627703 0.385456 0.385456 +& 22 4.641586 0.392499 0.392499 +& 22 4.655511 0.399458 0.399458 +& 22 4.669478 0.406330 0.406330 +& 22 4.683486 0.413114 0.413114 +& 22 4.697537 0.419807 0.419807 +& 22 4.711629 0.426406 0.426406 +& 22 4.725764 0.432908 0.432908 +& 22 4.739941 0.439311 0.439311 +& 22 4.754161 0.445612 0.445612 +& 22 4.768424 0.451810 0.451810 +& 22 4.782729 0.457900 0.457900 +& 22 4.797077 0.463880 0.463880 +& 22 4.811468 0.469749 0.469749 +& 22 4.825903 0.475502 0.475502 +& 22 4.840380 0.481139 0.481139 +& 22 4.854902 0.486655 0.486655 +& 22 4.869466 0.492049 0.492049 +& 22 4.884075 0.497318 0.497318 +& 22 4.898727 0.502459 0.502459 +& 22 4.913423 0.507470 0.507470 +& 22 4.928163 0.512348 0.512348 +& 22 4.942948 0.517091 0.517091 +& 22 4.957777 0.521696 0.521696 +& 22 4.972650 0.526160 0.526160 +& 22 4.987568 0.530482 0.530482 +& 22 5.002531 0.534658 0.534658 +& 22 5.017538 0.538686 0.538686 +& 22 5.032591 0.542564 0.542564 +& 22 5.047689 0.546289 0.546289 +& 22 5.062832 0.549859 0.549859 +& 22 5.078020 0.553272 0.553272 +& 22 5.093254 0.556524 0.556524 +& 22 5.108534 0.559614 0.559614 +& 22 5.123860 0.562540 0.562540 +& 22 5.139231 0.565299 0.565299 +& 22 5.154649 0.567888 0.567888 +& 22 5.170113 0.570307 0.570307 +& 22 5.185623 0.572551 0.572551 +& 22 5.201180 0.574620 0.574620 +& 22 5.216784 0.576511 0.576511 +& 22 5.232434 0.578222 0.578222 +& 22 5.248131 0.579751 0.579751 +& 22 5.263876 0.581096 0.581096 +& 22 5.279667 0.582255 0.582255 +& 22 5.295506 0.583227 0.583227 +& 22 5.311393 0.584008 0.584008 +& 22 5.327327 0.584598 0.584598 +& 22 5.343309 0.584995 0.584995 +& 22 5.359339 0.585196 0.585196 +& 22 5.375417 0.585201 0.585201 +& 22 5.391543 0.585007 0.585007 +& 22 5.407718 0.584613 0.584613 +& 22 5.423941 0.584017 0.584017 +& 22 5.440213 0.583219 0.583219 +& 22 5.456533 0.582216 0.582216 +& 22 5.472903 0.581008 0.581008 +& 22 5.489322 0.579593 0.579593 +& 22 5.505790 0.577969 0.577969 +& 22 5.522307 0.576136 0.576136 +& 22 5.538874 0.574093 0.574093 +& 22 5.555491 0.571839 0.571839 +& 22 5.572157 0.569372 0.569372 +& 22 5.588874 0.566692 0.566692 +& 22 5.605640 0.563798 0.563798 +& 22 5.622457 0.560689 0.560689 +& 22 5.639324 0.557366 0.557366 +& 22 5.656242 0.553826 0.553826 +& 22 5.673211 0.550071 0.550071 +& 22 5.690231 0.546098 0.546098 +& 22 5.707301 0.541909 0.541909 +& 22 5.724423 0.537504 0.537504 +& 22 5.741597 0.532881 0.532881 +& 22 5.758821 0.528040 0.528040 +& 22 5.776098 0.522983 0.522983 +& 22 5.793426 0.517710 0.517710 +& 22 5.810806 0.512219 0.512219 +& 22 5.828239 0.506513 0.506513 +& 22 5.845724 0.500591 0.500591 +& 22 5.863261 0.494454 0.494454 +& 22 5.880851 0.488103 0.488103 +& 22 5.898493 0.481538 0.481538 +& 22 5.916189 0.474761 0.474761 +& 22 5.933937 0.467772 0.467772 +& 22 5.951739 0.460573 0.460573 +& 22 5.969594 0.453165 0.453165 +& 22 5.987503 0.445549 0.445549 + + +!J 2 0.009994 0.000020 -0.000010 +!J 2 0.020025 0.000164 -0.000084 +!J 2 0.030095 0.000555 -0.000285 +!J 2 0.040122 0.001313 -0.000673 +!J 2 0.050229 0.002571 -0.001317 +!J 2 0.060299 0.004435 -0.002269 +!J 2 0.070463 0.007054 -0.003604 +!J 2 0.080631 0.010529 -0.005372 +!J 2 0.090895 0.015017 -0.007648 +!J 2 0.100942 0.020469 -0.010403 +!J 2 0.111097 0.027141 -0.013764 +!J 2 0.121180 0.035014 -0.017712 +!J 2 0.131388 0.044339 -0.022366 +!J 2 0.141605 0.055117 -0.027717 +!J 2 0.151705 0.067263 -0.033712 +!J 2 0.162040 0.081292 -0.040591 +!J 2 0.172044 0.096468 -0.047979 +!J 2 0.182120 0.113385 -0.056150 +!J 2 0.192209 0.132000 -0.065064 +!J 2 0.202251 0.152218 -0.074653 +!J 2 0.212817 0.175332 -0.085498 +!J 2 0.223265 0.200049 -0.096956 +!J 2 0.233526 0.226119 -0.108883 +!J 2 0.243528 0.253229 -0.121112 +!J 2 0.253958 0.283259 -0.134447 +!J 2 0.264042 0.313964 -0.147847 +!J 2 0.274527 0.347580 -0.162238 +!J 2 0.284575 0.381352 -0.176393 +!J 2 0.294991 0.417897 -0.191356 +!J 2 0.305787 0.457341 -0.207076 +!J 2 0.316031 0.496137 -0.222085 +!J 2 0.326618 0.537527 -0.237576 +!J 2 0.337559 0.581552 -0.253435 +!J 2 0.347824 0.623879 -0.268043 +!J 2 0.358401 0.668386 -0.282689 +!J 2 0.369299 0.715036 -0.297200 +!J 2 0.379390 0.758793 -0.309972 +!J 2 0.389758 0.804148 -0.322290 +!J 2 0.400408 0.850995 -0.333947 +!J 2 0.411350 0.899192 -0.344708 +!J 2 0.422591 0.948567 -0.354306 +!J 2 0.432840 0.993270 -0.361618 +!J 2 0.443338 1.038553 -0.367539 +!J 2 0.454090 1.084209 -0.371811 +!J 2 0.465104 1.129996 -0.374156 +!J 2 0.476384 1.175642 -0.374270 +!J 2 0.486479 1.215225 -0.372288 +!J 2 0.496787 1.254236 -0.368121 +!J 2 0.507314 1.292424 -0.361532 +!J 2 0.518064 1.329519 -0.352270 +!J 2 0.529042 1.365226 -0.340080 +!J 2 0.540252 1.399230 -0.324701 +!J 2 0.551700 1.431195 -0.305869 +!J 2 0.561705 1.456703 -0.286782 +!J 2 0.571892 1.480218 -0.264804 +!J 2 0.582264 1.501496 -0.239778 +!J 2 0.592824 1.520286 -0.211555 +!J 2 0.603575 1.536329 -0.179993 +!J 2 0.614521 1.549362 -0.144966 +!J 2 0.625666 1.559116 -0.106359 +!J 2 0.637012 1.565321 -0.064079 +!J 2 0.648565 1.567708 -0.018052 +!J 2 0.660327 1.566008 0.031769 +!J 2 0.672302 1.559957 0.085400 +!J 2 0.682448 1.551407 0.132991 +!J 2 0.692746 1.539517 0.183182 +!J 2 0.703200 1.524154 0.235919 +!J 2 0.713811 1.505196 0.291117 +!J 2 0.724583 1.482535 0.348666 +!J 2 0.735517 1.456083 0.408416 +!J 2 0.746616 1.425776 0.470184 +!J 2 0.757883 1.391575 0.533745 +!J 2 0.769319 1.353476 0.598836 +!J 2 0.780929 1.311507 0.665155 +!J 2 0.792713 1.265729 0.732371 +!J 2 0.804675 1.216232 0.800127 +!J 2 0.816818 1.163132 0.868054 +!J 2 0.829144 1.106560 0.935775 +!J 2 0.841656 1.046663 1.002909 +!J 2 0.851801 0.996452 1.055936 +!J 2 0.862069 0.944295 1.108141 +!J 2 0.872461 0.890281 1.159315 +!J 2 0.882977 0.834510 1.209242 +!J 2 0.893621 0.777093 1.257690 +!J 2 0.904393 0.718161 1.304413 +!J 2 0.915294 0.657865 1.349147 +!J 2 0.926327 0.596380 1.391607 +!J 2 0.937493 0.533916 1.431489 +!J 2 0.948794 0.470718 1.468471 +!J 2 0.960231 0.407071 1.502209 +!J 2 0.971806 0.343311 1.532345 +!J 2 0.983520 0.279815 1.558516 +!J 2 0.995375 0.216796 1.580530 +!J 2 1.007374 0.154488 1.598183 +!J 2 1.019517 0.093197 1.611226 +!J 2 1.031806 0.033238 1.619426 +!J 2 1.044244 -0.025063 1.622566 +!J 2 1.056831 -0.081384 1.620457 +!J 2 1.069570 -0.135406 1.612942 +!J 2 1.082463 -0.186817 1.599893 +!J 2 1.095511 -0.235314 1.581214 +!J 2 1.108716 -0.280606 1.556848 +!J 2 1.118725 -0.312304 1.534828 +!J 2 1.128824 -0.341936 1.509605 +!J 2 1.139013 -0.369400 1.481198 +!J 2 1.149295 -0.394602 1.449642 +!J 2 1.159670 -0.417457 1.414987 +!J 2 1.170138 -0.437892 1.377296 +!J 2 1.180701 -0.455841 1.336649 +!J 2 1.191360 -0.471252 1.293139 +!J 2 1.202114 -0.484083 1.246877 +!J 2 1.212965 -0.494305 1.197989 +!J 2 1.223915 -0.501902 1.146618 +!J 2 1.234963 -0.506872 1.092922 +!J 2 1.246111 -0.509227 1.037076 +!J 2 1.257360 -0.508990 0.979270 +!J 2 1.268710 -0.506204 0.919712 +!J 2 1.280163 -0.500921 0.858626 +!J 2 1.291719 -0.493212 0.796250 +!J 2 1.303379 -0.483162 0.732838 +!J 2 1.315145 -0.470869 0.668661 +!J 2 1.327017 -0.456450 0.604000 +!J 2 1.338996 -0.440033 0.539154 +!J 2 1.351083 -0.421764 0.474430 +!J 2 1.363279 -0.401805 0.410148 +!J 2 1.375586 -0.380333 0.346636 +!J 2 1.388003 -0.357540 0.284232 +!J 2 1.400533 -0.333637 0.223277 +!J 2 1.413175 -0.308852 0.164117 +!J 2 1.425932 -0.283430 0.107102 +!J 2 1.438804 -0.257637 0.052581 +!J 2 1.451792 -0.231756 0.000901 +!J 2 1.464897 -0.206085 -0.047595 +!J 2 1.478121 -0.180935 -0.092569 +!J 2 1.491464 -0.156620 -0.133697 +!J 2 1.504928 -0.133449 -0.170668 +!J 2 1.518513 -0.111709 -0.203204 +!J 2 1.532220 -0.091654 -0.231066 +!J 2 1.546052 -0.073493 -0.254076 +!J 2 1.560008 -0.057380 -0.272126 +!J 2 1.574090 -0.043414 -0.285186 +!J 2 1.588300 -0.031641 -0.293313 +!J 2 1.602637 -0.022043 -0.296659 +!J 2 1.617104 -0.014520 -0.295492 +!J 2 1.631702 -0.008861 -0.290214 +!J 2 1.646431 -0.004717 -0.281381 +!J 2 1.661294 -0.001602 -0.269693 +!J 2 1.676290 0.001046 -0.255938 +!J 2 1.686363 0.002803 -0.245996 +!J 2 1.696496 0.004672 -0.235653 +!J 2 1.706691 0.006681 -0.225031 +!J 2 1.716946 0.008783 -0.214191 +!J 2 1.727263 0.010863 -0.203132 +!J 2 1.737642 0.012765 -0.191819 +!J 2 1.748084 0.014326 -0.180210 +!J 2 1.758588 0.015419 -0.168296 +!J 2 1.769155 0.015984 -0.156120 +!J 2 1.779786 0.016043 -0.143795 +!J 2 1.790481 0.015691 -0.131485 +!J 2 1.801240 0.015067 -0.119384 +!J 2 1.812064 0.014321 -0.107673 +!J 2 1.822952 0.013573 -0.096497 +!J 2 1.833907 0.012893 -0.085941 +!J 2 1.844926 0.012294 -0.076029 +!J 2 1.856013 0.011734 -0.066740 +!J 2 1.867165 0.011137 -0.058023 +!J 2 1.878385 0.010400 -0.049817 +!J 2 1.889672 0.009405 -0.042068 +!J 2 1.901027 0.008020 -0.034744 +!J 2 1.912451 0.006485 -0.028074 +!J 2 1.923943 0.005131 -0.022269 +!J 2 1.935504 0.003961 -0.017300 +!J 2 1.947134 0.002972 -0.013123 +!J 2 1.958834 0.002156 -0.009681 +!J 2 1.970605 0.001502 -0.006913 +!J 2 1.982446 0.000995 -0.004747 +!J 2 1.994359 0.000619 -0.003108 +!J 2 2.006343 0.000352 -0.001916 +!J 2 2.018399 0.000177 -0.001093 +!J 2 2.030528 0.000071 -0.000561 +!J 2 2.042729 0.000016 -0.000247 +!J 2 2.055004 -0.000005 -0.000085 +!J 2 2.067352 -0.000008 -0.000017 +!J 2 2.079775 -0.000004 0.000000 +!J 2 2.092273 -0.000001 0.000001 +!J 2 2.104845 -0.000000 0.000000 +!J 2 2.117493 0.000000 -0.000000 +!J 2 2.130217 0.000000 -0.000000 +!J 2 2.143017 0.000000 -0.000000 +!J 2 2.155895 0.000000 -0.000000 +!J 2 2.168850 0.000000 -0.000000 +!J 2 2.181882 0.000000 -0.000000 +!J 2 2.194993 0.000000 -0.000000 +!J 2 2.208183 0.000000 -0.000000 +!J 2 2.221452 0.000000 -0.000000 +!J 2 2.234801 0.000000 -0.000000 +!J 2 2.248230 0.000000 -0.000000 +!J 2 2.261739 0.000000 -0.000000 +!J 2 2.275330 0.000000 -0.000000 +!J 2 2.289002 0.000000 -0.000000 +!J 2 2.302757 0.000000 -0.000000 + +convergence profiles, (ll=0,lmax) + lmax 2 +!C 0 12.985434 0.010000 +!C 0 14.987834 0.003162 +!C 0 16.727237 0.001000 +!C 0 18.479557 0.000316 +!C 0 19.909003 0.000100 +!C 0 21.375688 0.000032 +!C 0 22.558500 0.000010 +!C 1 19.543935 0.010000 +!C 1 21.638228 0.003162 +!C 1 23.518308 0.001000 +!C 1 25.199320 0.000316 +!C 1 26.662127 0.000100 +!C 1 28.141589 0.000032 +!C 1 29.260964 0.000010 +!C 2 25.348897 0.010000 +!C 2 27.843367 0.003162 +!C 2 29.912197 0.001000 +!C 2 31.982646 0.000316 +!C 2 33.533638 0.000100 +!C 2 35.121351 0.000032 +!C 2 36.549093 0.000010 + +log derivativve data for plotting, l= 0 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.91 +l, energy, all-electron, pseudopotential + +! 0 5.000000 1.148959 1.089880 +! 0 4.980000 1.158469 1.102529 +! 0 4.960000 1.167639 1.114637 +! 0 4.940000 1.176486 1.126237 +! 0 4.920000 1.185029 1.137361 +! 0 4.900000 1.193281 1.148035 +! 0 4.880000 1.201259 1.158287 +! 0 4.860000 1.208975 1.168140 +! 0 4.840000 1.216443 1.177617 +! 0 4.820000 1.223676 1.186740 +! 0 4.800000 1.230684 1.195528 +! 0 4.780000 1.237478 1.204000 +! 0 4.760000 1.244069 1.212172 +! 0 4.740000 1.250466 1.220062 +! 0 4.720000 1.256678 1.227683 +! 0 4.700000 1.262714 1.235051 +! 0 4.680000 1.268582 1.242177 +! 0 4.660000 1.274289 1.249075 +! 0 4.640000 1.279842 1.255756 +! 0 4.620000 1.285249 1.262230 +! 0 4.600000 1.290515 1.268509 +! 0 4.580000 1.295647 1.274601 +! 0 4.560000 1.300651 1.280515 +! 0 4.540000 1.305532 1.286261 +! 0 4.520000 1.310295 1.291845 +! 0 4.500000 1.314945 1.297275 +! 0 4.480000 1.319486 1.302559 +! 0 4.460000 1.323924 1.307703 +! 0 4.440000 1.328262 1.312714 +! 0 4.420000 1.332505 1.317596 +! 0 4.400000 1.336655 1.322357 +! 0 4.380000 1.340718 1.327001 +! 0 4.360000 1.344695 1.331533 +! 0 4.340000 1.348592 1.335959 +! 0 4.320000 1.352410 1.340282 +! 0 4.300000 1.356152 1.344507 +! 0 4.280000 1.359823 1.348639 +! 0 4.260000 1.363423 1.352680 +! 0 4.240000 1.366957 1.356635 +! 0 4.220000 1.370426 1.360506 +! 0 4.200000 1.373833 1.364299 +! 0 4.180000 1.377180 1.368015 +! 0 4.160000 1.380469 1.371658 +! 0 4.140000 1.383703 1.375230 +! 0 4.120000 1.386884 1.378735 +! 0 4.100000 1.390012 1.382175 +! 0 4.080000 1.393091 1.385552 +! 0 4.060000 1.396123 1.388870 +! 0 4.040000 1.399108 1.392129 +! 0 4.020000 1.402048 1.395333 +! 0 4.000000 1.404946 1.398484 +! 0 3.980000 1.407802 1.401583 +! 0 3.960000 1.410618 1.404633 +! 0 3.940000 1.413396 1.407635 +! 0 3.920000 1.416136 1.410591 +! 0 3.900000 1.418841 1.413503 +! 0 3.880000 1.421511 1.416373 +! 0 3.860000 1.424148 1.419202 +! 0 3.840000 1.426753 1.421992 +! 0 3.820000 1.429327 1.424743 +! 0 3.800000 1.431871 1.427459 +! 0 3.780000 1.434386 1.430139 +! 0 3.760000 1.436874 1.432785 +! 0 3.740000 1.439335 1.435399 +! 0 3.720000 1.441770 1.437982 +! 0 3.700000 1.444181 1.440534 +! 0 3.680000 1.446567 1.443058 +! 0 3.660000 1.448931 1.445554 +! 0 3.640000 1.451272 1.448023 +! 0 3.620000 1.453593 1.450466 +! 0 3.600000 1.455893 1.452885 +! 0 3.580000 1.458173 1.455279 +! 0 3.560000 1.460435 1.457651 +! 0 3.540000 1.462678 1.460002 +! 0 3.520000 1.464904 1.462331 +! 0 3.500000 1.467114 1.464640 +! 0 3.480000 1.469307 1.466929 +! 0 3.460000 1.471486 1.469201 +! 0 3.440000 1.473650 1.471454 +! 0 3.420000 1.475800 1.473691 +! 0 3.400000 1.477936 1.475912 +! 0 3.380000 1.480061 1.478117 +! 0 3.360000 1.482173 1.480307 +! 0 3.340000 1.484273 1.482484 +! 0 3.320000 1.486363 1.484647 +! 0 3.300000 1.488443 1.486797 +! 0 3.280000 1.490513 1.488936 +! 0 3.260000 1.492574 1.491063 +! 0 3.240000 1.494627 1.493180 +! 0 3.220000 1.496671 1.495286 +! 0 3.200000 1.498708 1.497384 +! 0 3.180000 1.500739 1.499472 +! 0 3.160000 1.502762 1.501552 +! 0 3.140000 1.504780 1.503624 +! 0 3.120000 1.506793 1.505690 +! 0 3.100000 1.508800 1.507748 +! 0 3.080000 1.510804 1.509801 +! 0 3.060000 1.512803 1.511848 +! 0 3.040000 1.514799 1.513891 +! 0 3.020000 1.516792 1.515929 +! 0 3.000000 1.518783 1.517963 +! 0 2.980000 1.520772 1.519994 +! 0 2.960000 1.522759 1.522022 +! 0 2.940000 1.524745 1.524048 +! 0 2.920000 1.526731 1.526072 +! 0 2.900000 1.528717 1.528095 +! 0 2.880000 1.530703 1.530117 +! 0 2.860000 1.532690 1.532139 +! 0 2.840000 1.534678 1.534161 +! 0 2.820000 1.536668 1.536184 +! 0 2.800000 1.538660 1.538208 +! 0 2.780000 1.540656 1.540234 +! 0 2.760000 1.542654 1.542262 +! 0 2.740000 1.544656 1.544293 +! 0 2.720000 1.546662 1.546327 +! 0 2.700000 1.548673 1.548365 +! 0 2.680000 1.550689 1.550407 +! 0 2.660000 1.552710 1.552454 +! 0 2.640000 1.554738 1.554507 +! 0 2.620000 1.556772 1.556565 +! 0 2.600000 1.558813 1.558629 +! 0 2.580000 1.560862 1.560700 +! 0 2.560000 1.562918 1.562779 +! 0 2.540000 1.564984 1.564865 +! 0 2.520000 1.567058 1.566960 +! 0 2.500000 1.569142 1.569063 +! 0 2.480000 1.571235 1.571176 +! 0 2.460000 1.573340 1.573299 +! 0 2.440000 1.575455 1.575433 +! 0 2.420000 1.577582 1.577578 +! 0 2.400000 1.579722 1.579734 +! 0 2.380000 1.581874 1.581903 +! 0 2.360000 1.584039 1.584084 +! 0 2.340000 1.586219 1.586279 +! 0 2.320000 1.588413 1.588488 +! 0 2.300000 1.590622 1.590711 +! 0 2.280000 1.592846 1.592950 +! 0 2.260000 1.595087 1.595204 +! 0 2.240000 1.597345 1.597475 +! 0 2.220000 1.599621 1.599763 +! 0 2.200000 1.601915 1.602070 +! 0 2.180000 1.604227 1.604394 +! 0 2.160000 1.606560 1.606738 +! 0 2.140000 1.608912 1.609102 +! 0 2.120000 1.611286 1.611486 +! 0 2.100000 1.613682 1.613892 +! 0 2.080000 1.616100 1.616320 +! 0 2.060000 1.618541 1.618771 +! 0 2.040000 1.621006 1.621246 +! 0 2.020000 1.623497 1.623745 +! 0 2.000000 1.626013 1.626270 +! 0 1.980000 1.628555 1.628821 +! 0 1.960000 1.631125 1.631399 +! 0 1.940000 1.633724 1.634005 +! 0 1.920000 1.636352 1.636640 +! 0 1.900000 1.639010 1.639306 +! 0 1.880000 1.641699 1.642002 +! 0 1.860000 1.644421 1.644730 +! 0 1.840000 1.647176 1.647491 +! 0 1.820000 1.649965 1.650287 +! 0 1.800000 1.652790 1.653117 +! 0 1.780000 1.655651 1.655984 +! 0 1.760000 1.658550 1.658889 +! 0 1.740000 1.661488 1.661832 +! 0 1.720000 1.664467 1.664815 +! 0 1.700000 1.667487 1.667840 +! 0 1.680000 1.670549 1.670907 +! 0 1.660000 1.673656 1.674018 +! 0 1.640000 1.676809 1.677175 +! 0 1.620000 1.680009 1.680379 +! 0 1.600000 1.683258 1.683631 +! 0 1.580000 1.686557 1.686934 +! 0 1.560000 1.689908 1.690288 +! 0 1.540000 1.693312 1.693695 +! 0 1.520000 1.696772 1.697158 +! 0 1.500000 1.700289 1.700678 +! 0 1.480000 1.703865 1.704256 +! 0 1.460000 1.707503 1.707896 +! 0 1.440000 1.711203 1.711598 +! 0 1.420000 1.714968 1.715365 +! 0 1.400000 1.718801 1.719200 +! 0 1.380000 1.722704 1.723104 +! 0 1.360000 1.726679 1.727080 +! 0 1.340000 1.730728 1.731131 +! 0 1.320000 1.734854 1.735258 +! 0 1.300000 1.739060 1.739465 +! 0 1.280000 1.743349 1.743754 +! 0 1.260000 1.747723 1.748129 +! 0 1.240000 1.752186 1.752591 +! 0 1.220000 1.756740 1.757146 +! 0 1.200000 1.761389 1.761795 +! 0 1.180000 1.766136 1.766542 +! 0 1.160000 1.770985 1.771391 +! 0 1.140000 1.775940 1.776345 +! 0 1.120000 1.781004 1.781408 +! 0 1.100000 1.786182 1.786585 +! 0 1.080000 1.791478 1.791880 +! 0 1.060000 1.796895 1.797296 +! 0 1.040000 1.802440 1.802839 +! 0 1.020000 1.808116 1.808514 +! 0 1.000000 1.813929 1.814325 +! 0 0.980000 1.819884 1.820279 +! 0 0.960000 1.825987 1.826379 +! 0 0.940000 1.832243 1.832633 +! 0 0.920000 1.838659 1.839046 +! 0 0.900000 1.845241 1.845625 +! 0 0.880000 1.851995 1.852377 +! 0 0.860000 1.858929 1.859307 +! 0 0.840000 1.866049 1.866425 +! 0 0.820000 1.873365 1.873737 +! 0 0.800000 1.880883 1.881252 +! 0 0.780000 1.888613 1.888978 +! 0 0.760000 1.896562 1.896923 +! 0 0.740000 1.904742 1.905098 +! 0 0.720000 1.913160 1.913513 +! 0 0.700000 1.921829 1.922176 +! 0 0.680000 1.930758 1.931100 +! 0 0.660000 1.939959 1.940296 +! 0 0.640000 1.949443 1.949775 +! 0 0.620000 1.959224 1.959550 +! 0 0.600000 1.969314 1.969635 +! 0 0.580000 1.979728 1.980042 +! 0 0.560000 1.990479 1.990787 +! 0 0.540000 2.001583 2.001884 +! 0 0.520000 2.013055 2.013350 +! 0 0.500000 2.024913 2.025200 +! 0 0.480000 2.037173 2.037453 +! 0 0.460000 2.049854 2.050126 +! 0 0.440000 2.062974 2.063239 +! 0 0.420000 2.076554 2.076810 +! 0 0.400000 2.090614 2.090861 +! 0 0.380000 2.105174 2.105413 +! 0 0.360000 2.120258 2.120487 +! 0 0.340000 2.135887 2.136107 +! 0 0.320000 2.152086 2.152296 +! 0 0.300000 2.168878 2.169079 +! 0 0.280000 2.186288 2.186479 +! 0 0.260000 2.204342 2.204522 +! 0 0.240000 2.223063 2.223233 +! 0 0.220000 2.242479 2.242638 +! 0 0.200000 2.262615 2.262763 +! 0 0.180000 2.283495 2.283631 +! 0 0.160000 2.305143 2.305269 +! 0 0.140000 2.327585 2.327700 +! 0 0.120000 2.350841 2.350945 +! 0 0.100000 2.374933 2.375025 +! 0 0.080000 2.399878 2.399959 +! 0 0.060000 2.425691 2.425762 +! 0 0.040000 2.452386 2.452446 +! 0 0.020000 2.479968 2.480019 +! 0 0.000000 2.508442 2.508484 +! 0 -0.020000 2.537805 2.537838 +! 0 -0.040000 2.568049 2.568073 +! 0 -0.060000 2.599157 2.599175 +! 0 -0.080000 2.631107 2.631119 +! 0 -0.100000 2.663868 2.663875 +! 0 -0.120000 2.697401 2.697404 +! 0 -0.140000 2.731656 2.731657 +! 0 -0.160000 2.766579 2.766579 +! 0 -0.180000 2.802102 2.802103 +! 0 -0.200000 2.838152 2.838155 +! 0 -0.220000 2.874647 2.874654 +! 0 -0.240000 2.911500 2.911513 +! 0 -0.260000 2.948616 2.948636 +! 0 -0.280000 2.985897 2.985927 +! 0 -0.300000 3.023243 3.023283 +! 0 -0.320000 3.060553 3.060605 +! 0 -0.340000 3.097723 3.097789 +! 0 -0.360000 3.134657 3.134737 +! 0 -0.380000 3.171259 3.171354 +! 0 -0.400000 3.207437 3.207550 +! 0 -0.420000 3.243110 3.243240 +! 0 -0.440000 3.278201 3.278349 +! 0 -0.460000 3.312642 3.312808 +! 0 -0.480000 3.346372 3.346557 +! 0 -0.500000 3.379342 3.379546 +! 0 -0.520000 3.411510 3.411732 +! 0 -0.540000 3.442841 3.443081 +! 0 -0.560000 3.473311 3.473569 +! 0 -0.580000 3.502901 3.503177 +! 0 -0.600000 3.531602 3.531896 +! 0 -0.620000 3.559410 3.559719 +! 0 -0.640000 3.586324 3.586650 +! 0 -0.660000 3.612353 3.612694 +! 0 -0.680000 3.637507 3.637862 +! 0 -0.700000 3.661799 3.662169 +! 0 -0.720000 3.685248 3.685631 +! 0 -0.740000 3.707874 3.708269 +! 0 -0.760000 3.729697 3.730105 +! 0 -0.780000 3.750742 3.751161 +! 0 -0.800000 3.771032 3.771461 +! 0 -0.820000 3.790593 3.791032 +! 0 -0.840000 3.809449 3.809897 +! 0 -0.860000 3.827627 3.828083 +! 0 -0.880000 3.845151 3.845616 +! 0 -0.900000 3.862047 3.862519 +! 0 -0.920000 3.878340 3.878819 +! 0 -0.940000 3.894053 3.894539 +! 0 -0.960000 3.909211 3.909703 +! 0 -0.980000 3.923837 3.924335 +! 0 -1.000000 3.937952 3.938455 +! 0 -1.020000 3.951579 3.952087 +! 0 -1.040000 3.964738 3.965250 +! 0 -1.060000 3.977448 3.977965 +! 0 -1.080000 3.989730 3.990250 +! 0 -1.100000 4.001601 4.002125 +! 0 -1.120000 4.013079 4.013606 +! 0 -1.140000 4.024181 4.024710 +! 0 -1.160000 4.034923 4.035455 +! 0 -1.180000 4.045319 4.045854 +! 0 -1.200000 4.055386 4.055922 +! 0 -1.220000 4.065136 4.065675 +! 0 -1.240000 4.074583 4.075124 +! 0 -1.260000 4.083740 4.084282 +! 0 -1.280000 4.092619 4.093162 +! 0 -1.300000 4.101231 4.101775 +! 0 -1.320000 4.109587 4.110133 +! 0 -1.340000 4.117698 4.118245 +! 0 -1.360000 4.125574 4.126121 +! 0 -1.380000 4.133224 4.133772 +! 0 -1.400000 4.140657 4.141205 +! 0 -1.420000 4.147881 4.148430 +! 0 -1.440000 4.154906 4.155455 +! 0 -1.460000 4.161739 4.162288 +! 0 -1.480000 4.168386 4.168936 +! 0 -1.500000 4.174856 4.175406 +! 0 -1.520000 4.181156 4.181705 +! 0 -1.540000 4.187290 4.187840 +! 0 -1.560000 4.193267 4.193816 +! 0 -1.580000 4.199091 4.199640 +! 0 -1.600000 4.204768 4.205317 +! 0 -1.620000 4.210304 4.210852 +! 0 -1.640000 4.215703 4.216251 +! 0 -1.660000 4.220971 4.221519 +! 0 -1.680000 4.226113 4.226660 +! 0 -1.700000 4.231132 4.231678 +! 0 -1.720000 4.236033 4.236579 +! 0 -1.740000 4.240820 4.241365 +! 0 -1.760000 4.245498 4.246042 +! 0 -1.780000 4.250069 4.250612 +! 0 -1.800000 4.254537 4.255080 +! 0 -1.820000 4.258906 4.259448 +! 0 -1.840000 4.263180 4.263721 +! 0 -1.860000 4.267360 4.267901 +! 0 -1.880000 4.271451 4.271991 +! 0 -1.900000 4.275456 4.275994 +! 0 -1.920000 4.279376 4.279913 +! 0 -1.940000 4.283215 4.283751 +! 0 -1.960000 4.286975 4.287510 +! 0 -1.980000 4.290659 4.291193 +! 0 -2.000000 4.294269 4.294802 +! 0 -2.020000 4.297807 4.298340 +! 0 -2.040000 4.301276 4.301808 +! 0 -2.060000 4.304678 4.305208 +! 0 -2.080000 4.308015 4.308544 +! 0 -2.100000 4.311288 4.311816 +! 0 -2.120000 4.314500 4.315027 +! 0 -2.140000 4.317653 4.318178 +! 0 -2.160000 4.320747 4.321272 +! 0 -2.180000 4.323786 4.324309 +! 0 -2.200000 4.326770 4.327292 +! 0 -2.220000 4.329701 4.330222 +! 0 -2.240000 4.332581 4.333100 +! 0 -2.260000 4.335410 4.335929 +! 0 -2.280000 4.338192 4.338709 +! 0 -2.300000 4.340926 4.341442 +! 0 -2.320000 4.343615 4.344129 +! 0 -2.340000 4.346259 4.346772 +! 0 -2.360000 4.348859 4.349371 +! 0 -2.380000 4.351418 4.351929 +! 0 -2.400000 4.353936 4.354445 +! 0 -2.420000 4.356414 4.356922 +! 0 -2.440000 4.358854 4.359361 +! 0 -2.460000 4.361256 4.361761 +! 0 -2.480000 4.363621 4.364125 +! 0 -2.500000 4.365951 4.366454 +! 0 -2.520000 4.368246 4.368748 +! 0 -2.540000 4.370508 4.371008 +! 0 -2.560000 4.372737 4.373236 +! 0 -2.580000 4.374934 4.375432 +! 0 -2.600000 4.377101 4.377597 +! 0 -2.620000 4.379237 4.379732 +! 0 -2.640000 4.381344 4.381837 +! 0 -2.660000 4.383423 4.383915 +! 0 -2.680000 4.385474 4.385965 +! 0 -2.700000 4.387498 4.387987 +! 0 -2.720000 4.389497 4.389984 +! 0 -2.740000 4.391470 4.391956 +! 0 -2.760000 4.393418 4.393903 +! 0 -2.780000 4.395343 4.395826 +! 0 -2.800000 4.397244 4.397726 +! 0 -2.820000 4.399123 4.399604 +! 0 -2.840000 4.400981 4.401460 +! 0 -2.860000 4.402817 4.403295 +! 0 -2.880000 4.404633 4.405109 +! 0 -2.900000 4.406429 4.406904 +! 0 -2.920000 4.408206 4.408680 +! 0 -2.940000 4.409965 4.410437 +! 0 -2.960000 4.411706 4.412177 +! 0 -2.980000 4.413431 4.413900 +! 0 -3.000000 4.415138 4.415606 +! 0 -3.020000 4.416830 4.417297 +! 0 -3.040000 4.418507 4.418972 +! 0 -3.060000 4.420170 4.420633 +! 0 -3.080000 4.421819 4.422280 +! 0 -3.100000 4.423455 4.423915 +! 0 -3.120000 4.425078 4.425537 +! 0 -3.140000 4.426690 4.427147 +! 0 -3.160000 4.428291 4.428747 +! 0 -3.180000 4.429882 4.430336 +! 0 -3.200000 4.431463 4.431916 +! 0 -3.220000 4.433036 4.433487 +! 0 -3.240000 4.434601 4.435051 +! 0 -3.260000 4.436159 4.436607 +! 0 -3.280000 4.437712 4.438158 +! 0 -3.300000 4.439259 4.439703 +! 0 -3.320000 4.440801 4.441244 +! 0 -3.340000 4.442341 4.442782 +! 0 -3.360000 4.443879 4.444318 +! 0 -3.380000 4.445416 4.445853 +! 0 -3.400000 4.446953 4.447389 +! 0 -3.420000 4.448492 4.448926 +! 0 -3.440000 4.450034 4.450466 +! 0 -3.460000 4.451580 4.452011 +! 0 -3.480000 4.453133 4.453562 +! 0 -3.500000 4.454694 4.455121 +! 0 -3.520000 4.456266 4.456690 +! 0 -3.540000 4.457849 4.458271 +! 0 -3.560000 4.459447 4.459867 +! 0 -3.580000 4.461062 4.461481 +! 0 -3.600000 4.462698 4.463114 +! 0 -3.620000 4.464357 4.464771 +! 0 -3.640000 4.466043 4.466455 +! 0 -3.660000 4.467761 4.468171 +! 0 -3.680000 4.469515 4.469922 +! 0 -3.700000 4.471311 4.471715 +! 0 -3.720000 4.473154 4.473556 +! 0 -3.740000 4.475052 4.475451 +! 0 -3.760000 4.477013 4.477409 +! 0 -3.780000 4.479047 4.479440 +! 0 -3.800000 4.481165 4.481555 +! 0 -3.820000 4.483381 4.483767 +! 0 -3.840000 4.485710 4.486093 +! 0 -3.860000 4.488172 4.488551 +! 0 -3.880000 4.490791 4.491166 +! 0 -3.900000 4.493596 4.493966 +! 0 -3.920000 4.496623 4.496988 +! 0 -3.940000 4.499917 4.500276 +! 0 -3.960000 4.503536 4.503890 +! 0 -3.980000 4.507557 4.507904 +! 0 -4.000000 4.512080 4.512419 +! 0 -4.020000 4.517240 4.517571 +! 0 -4.040000 4.523227 4.523548 +! 0 -4.060000 4.530311 4.530620 +! 0 -4.080000 4.538892 4.539186 +! 0 -4.100000 4.549589 4.549866 +! 0 -4.120000 4.563414 4.563669 +! 0 -4.140000 4.582141 4.582368 +! 0 -4.160000 4.609180 4.609367 +! 0 -4.180000 4.652000 4.652133 +! 0 -4.200000 4.730553 4.730609 +! 0 -4.220000 4.918978 4.918984 +! 0 -4.240000 5.665050 5.666447 +! 0 -4.260000 6.958201 6.960293 +! 0 -4.280000 7.293861 7.295066 +! 0 -4.300000 7.407184 7.408087 +! 0 -4.320000 7.462818 7.463581 +! 0 -4.340000 7.495871 7.496554 +! 0 -4.360000 7.517855 7.518488 +! 0 -4.380000 7.533611 7.534208 +! 0 -4.400000 7.545519 7.546090 +! 0 -4.420000 7.554884 7.555434 +! 0 -4.440000 7.562481 7.563015 +! 0 -4.460000 7.568798 7.569319 +! 0 -4.480000 7.574160 7.574670 +! 0 -4.500000 7.578789 7.579289 +! 0 -4.520000 7.582842 7.583334 +! 0 -4.540000 7.586436 7.586921 +! 0 -4.560000 7.589656 7.590135 +! 0 -4.580000 7.592569 7.593042 +! 0 -4.600000 7.595225 7.595693 +! 0 -4.620000 7.597665 7.598128 +! 0 -4.640000 7.599920 7.600379 +! 0 -4.660000 7.602017 7.602472 +! 0 -4.680000 7.603976 7.604427 +! 0 -4.700000 7.605815 7.606263 +! 0 -4.720000 7.607549 7.607994 +! 0 -4.740000 7.609190 7.609632 +! 0 -4.760000 7.610748 7.611187 +! 0 -4.780000 7.612231 7.612667 +! 0 -4.800000 7.613648 7.614082 +! 0 -4.820000 7.615005 7.615436 +! 0 -4.840000 7.616308 7.616737 +! 0 -4.860000 7.617560 7.617987 +! 0 -4.880000 7.618768 7.619193 +! 0 -4.900000 7.619934 7.620357 +! 0 -4.920000 7.621062 7.621482 +! 0 -4.940000 7.622155 7.622573 +! 0 -4.960000 7.623215 7.623631 +! 0 -4.980000 7.624244 7.624659 + +log derivativve data for plotting, l= 1 +atan(r * ((d psi(r)/dr)/psi(r))), r= 2.12 +l, energy, all-electron, pseudopotential + +! 1 5.000000 2.803894 3.285840 +! 1 4.980000 2.863825 3.346495 +! 1 4.960000 2.925852 3.405723 +! 1 4.940000 2.989597 3.463186 +! 1 4.920000 3.054610 3.518610 +! 1 4.900000 3.120381 3.571792 +! 1 4.880000 3.186361 3.622590 +! 1 4.860000 3.251993 3.670927 +! 1 4.840000 3.316734 3.716776 +! 1 4.820000 3.380089 3.760155 +! 1 4.800000 3.441625 3.801114 +! 1 4.780000 3.500987 3.839733 +! 1 4.760000 3.557906 3.876107 +! 1 4.740000 3.612196 3.910345 +! 1 4.720000 3.663748 3.942563 +! 1 4.700000 3.712521 3.972879 +! 1 4.680000 3.758530 4.001411 +! 1 4.660000 3.801834 4.028275 +! 1 4.640000 3.842525 4.053583 +! 1 4.620000 3.880718 4.077441 +! 1 4.600000 3.916543 4.099951 +! 1 4.580000 3.950136 4.121207 +! 1 4.560000 3.981638 4.141297 +! 1 4.540000 4.011188 4.160304 +! 1 4.520000 4.038921 4.178305 +! 1 4.500000 4.064967 4.195370 +! 1 4.480000 4.089448 4.211564 +! 1 4.460000 4.112481 4.226950 +! 1 4.440000 4.134172 4.241581 +! 1 4.420000 4.154622 4.255510 +! 1 4.400000 4.173924 4.268785 +! 1 4.380000 4.192162 4.281448 +! 1 4.360000 4.209416 4.293540 +! 1 4.340000 4.225758 4.305099 +! 1 4.320000 4.241253 4.316159 +! 1 4.300000 4.255964 4.326751 +! 1 4.280000 4.269946 4.336905 +! 1 4.260000 4.283250 4.346649 +! 1 4.240000 4.295923 4.356006 +! 1 4.220000 4.308009 4.365000 +! 1 4.200000 4.319548 4.373654 +! 1 4.180000 4.330575 4.381986 +! 1 4.160000 4.341125 4.390016 +! 1 4.140000 4.351229 4.397761 +! 1 4.120000 4.360915 4.405237 +! 1 4.100000 4.370209 4.412458 +! 1 4.080000 4.379137 4.419440 +! 1 4.060000 4.387720 4.426194 +! 1 4.040000 4.395979 4.432733 +! 1 4.020000 4.403933 4.439069 +! 1 4.000000 4.411601 4.445212 +! 1 3.980000 4.418999 4.451171 +! 1 3.960000 4.426143 4.456957 +! 1 3.940000 4.433047 4.462578 +! 1 3.920000 4.439723 4.468043 +! 1 3.900000 4.446186 4.473359 +! 1 3.880000 4.452446 4.478533 +! 1 3.860000 4.458514 4.483572 +! 1 3.840000 4.464401 4.488483 +! 1 3.820000 4.470115 4.493272 +! 1 3.800000 4.475667 4.497945 +! 1 3.780000 4.481064 4.502507 +! 1 3.760000 4.486314 4.506962 +! 1 3.740000 4.491424 4.511317 +! 1 3.720000 4.496402 4.515576 +! 1 3.700000 4.501254 4.519743 +! 1 3.680000 4.505986 4.523821 +! 1 3.660000 4.510603 4.527816 +! 1 3.640000 4.515113 4.531731 +! 1 3.620000 4.519519 4.535570 +! 1 3.600000 4.523826 4.539335 +! 1 3.580000 4.528040 4.543030 +! 1 3.560000 4.532164 4.546659 +! 1 3.540000 4.536203 4.550223 +! 1 3.520000 4.540160 4.553727 +! 1 3.500000 4.544040 4.557172 +! 1 3.480000 4.547846 4.560561 +! 1 3.460000 4.551581 4.563896 +! 1 3.440000 4.555249 4.567181 +! 1 3.420000 4.558852 4.570417 +! 1 3.400000 4.562394 4.573606 +! 1 3.380000 4.565878 4.576750 +! 1 3.360000 4.569306 4.579852 +! 1 3.340000 4.572680 4.582914 +! 1 3.320000 4.576004 4.585936 +! 1 3.300000 4.579279 4.588921 +! 1 3.280000 4.582508 4.591871 +! 1 3.260000 4.585692 4.594788 +! 1 3.240000 4.588835 4.597672 +! 1 3.220000 4.591938 4.600525 +! 1 3.200000 4.595002 4.603350 +! 1 3.180000 4.598031 4.606147 +! 1 3.160000 4.601024 4.608917 +! 1 3.140000 4.603986 4.611663 +! 1 3.120000 4.606916 4.614385 +! 1 3.100000 4.609816 4.617085 +! 1 3.080000 4.612689 4.619764 +! 1 3.060000 4.615535 4.622423 +! 1 3.040000 4.618356 4.625063 +! 1 3.020000 4.621154 4.627686 +! 1 3.000000 4.623930 4.630293 +! 1 2.980000 4.626685 4.632884 +! 1 2.960000 4.629420 4.635461 +! 1 2.940000 4.632137 4.638025 +! 1 2.920000 4.634838 4.640577 +! 1 2.900000 4.637522 4.643117 +! 1 2.880000 4.640192 4.645648 +! 1 2.860000 4.642848 4.648170 +! 1 2.840000 4.645492 4.650683 +! 1 2.820000 4.648125 4.653189 +! 1 2.800000 4.650748 4.655689 +! 1 2.780000 4.653362 4.658184 +! 1 2.760000 4.655968 4.660674 +! 1 2.740000 4.658567 4.663161 +! 1 2.720000 4.661160 4.665646 +! 1 2.700000 4.663748 4.668128 +! 1 2.680000 4.666333 4.670610 +! 1 2.660000 4.668915 4.673092 +! 1 2.640000 4.671495 4.675575 +! 1 2.620000 4.674074 4.678060 +! 1 2.600000 4.676653 4.680548 +! 1 2.580000 4.679233 4.683039 +! 1 2.560000 4.681816 4.685535 +! 1 2.540000 4.684402 4.688037 +! 1 2.520000 4.686992 4.690545 +! 1 2.500000 4.689586 4.693060 +! 1 2.480000 4.692187 4.695583 +! 1 2.460000 4.694795 4.698116 +! 1 2.440000 4.697411 4.700658 +! 1 2.420000 4.700036 4.703211 +! 1 2.400000 4.702671 4.705776 +! 1 2.380000 4.705317 4.708354 +! 1 2.360000 4.707975 4.710946 +! 1 2.340000 4.710646 4.713553 +! 1 2.320000 4.713331 4.716175 +! 1 2.300000 4.716032 4.718814 +! 1 2.280000 4.718749 4.721471 +! 1 2.260000 4.721483 4.724146 +! 1 2.240000 4.724235 4.726842 +! 1 2.220000 4.727007 4.729558 +! 1 2.200000 4.729800 4.732297 +! 1 2.180000 4.732615 4.735058 +! 1 2.160000 4.735453 4.737844 +! 1 2.140000 4.738315 4.740656 +! 1 2.120000 4.741203 4.743494 +! 1 2.100000 4.744118 4.746361 +! 1 2.080000 4.747061 4.749256 +! 1 2.060000 4.750033 4.752182 +! 1 2.040000 4.753036 4.755140 +! 1 2.020000 4.756072 4.758132 +! 1 2.000000 4.759141 4.761158 +! 1 1.980000 4.762246 4.764220 +! 1 1.960000 4.765388 4.767320 +! 1 1.940000 4.768568 4.770460 +! 1 1.920000 4.771788 4.773640 +! 1 1.900000 4.775050 4.776863 +! 1 1.880000 4.778355 4.780130 +! 1 1.860000 4.781706 4.783444 +! 1 1.840000 4.785104 4.786805 +! 1 1.820000 4.788551 4.790216 +! 1 1.800000 4.792049 4.793679 +! 1 1.780000 4.795600 4.797196 +! 1 1.760000 4.799207 4.800769 +! 1 1.740000 4.802872 4.804401 +! 1 1.720000 4.806597 4.808092 +! 1 1.700000 4.810384 4.811847 +! 1 1.680000 4.814236 4.815668 +! 1 1.660000 4.818155 4.819557 +! 1 1.640000 4.822145 4.823516 +! 1 1.620000 4.826208 4.827549 +! 1 1.600000 4.830347 4.831659 +! 1 1.580000 4.834565 4.835848 +! 1 1.560000 4.838866 4.840121 +! 1 1.540000 4.843253 4.844479 +! 1 1.520000 4.847729 4.848928 +! 1 1.500000 4.852298 4.853470 +! 1 1.480000 4.856964 4.858109 +! 1 1.460000 4.861731 4.862850 +! 1 1.440000 4.866603 4.867696 +! 1 1.420000 4.871585 4.872652 +! 1 1.400000 4.876681 4.877723 +! 1 1.380000 4.881897 4.882914 +! 1 1.360000 4.887236 4.888229 +! 1 1.340000 4.892706 4.893674 +! 1 1.320000 4.898311 4.899255 +! 1 1.300000 4.904057 4.904977 +! 1 1.280000 4.909951 4.910848 +! 1 1.260000 4.915999 4.916873 +! 1 1.240000 4.922209 4.923060 +! 1 1.220000 4.928587 4.929415 +! 1 1.200000 4.935141 4.935947 +! 1 1.180000 4.941880 4.942663 +! 1 1.160000 4.948812 4.949573 +! 1 1.140000 4.955947 4.956686 +! 1 1.120000 4.963293 4.964010 +! 1 1.100000 4.970861 4.971556 +! 1 1.080000 4.978662 4.979336 +! 1 1.060000 4.986707 4.987360 +! 1 1.040000 4.995009 4.995640 +! 1 1.020000 5.003579 5.004189 +! 1 1.000000 5.012432 5.013022 +! 1 0.980000 5.021583 5.022151 +! 1 0.960000 5.031045 5.031592 +! 1 0.940000 5.040835 5.041362 +! 1 0.920000 5.050971 5.051477 +! 1 0.900000 5.061471 5.061956 +! 1 0.880000 5.072353 5.072817 +! 1 0.860000 5.083638 5.084082 +! 1 0.840000 5.095348 5.095772 +! 1 0.820000 5.107506 5.107910 +! 1 0.800000 5.120136 5.120519 +! 1 0.780000 5.133264 5.133627 +! 1 0.760000 5.146917 5.147259 +! 1 0.740000 5.161124 5.161446 +! 1 0.720000 5.175916 5.176217 +! 1 0.700000 5.191324 5.191605 +! 1 0.680000 5.207382 5.207644 +! 1 0.660000 5.224127 5.224369 +! 1 0.640000 5.241595 5.241817 +! 1 0.620000 5.259825 5.260028 +! 1 0.600000 5.278858 5.279043 +! 1 0.580000 5.298737 5.298902 +! 1 0.560000 5.319504 5.319652 +! 1 0.540000 5.341205 5.341334 +! 1 0.520000 5.363885 5.363997 +! 1 0.500000 5.387589 5.387684 +! 1 0.480000 5.412363 5.412442 +! 1 0.460000 5.438252 5.438317 +! 1 0.440000 5.465299 5.465350 +! 1 0.420000 5.493545 5.493583 +! 1 0.400000 5.523026 5.523053 +! 1 0.380000 5.553774 5.553792 +! 1 0.360000 5.585815 5.585825 +! 1 0.340000 5.619165 5.619169 +! 1 0.320000 5.653831 5.653832 +! 1 0.300000 5.689809 5.689809 +! 1 0.280000 5.727081 5.727083 +! 1 0.260000 5.765611 5.765618 +! 1 0.240000 5.805350 5.805364 +! 1 0.220000 5.846228 5.846253 +! 1 0.200000 5.888156 5.888195 +! 1 0.180000 5.931029 5.931085 +! 1 0.160000 5.974719 5.974795 +! 1 0.140000 6.019084 6.019183 +! 1 0.120000 6.063965 6.064090 +! 1 0.100000 6.109194 6.109346 +! 1 0.080000 6.154591 6.154773 +! 1 0.060000 6.199975 6.200188 +! 1 0.040000 6.245164 6.245409 +! 1 0.020000 6.289980 6.290258 +! 1 0.000000 6.334256 6.334566 +! 1 -0.020000 6.377834 6.378177 +! 1 -0.040000 6.420574 6.420948 +! 1 -0.060000 6.462352 6.462757 +! 1 -0.080000 6.503063 6.503497 +! 1 -0.100000 6.542622 6.543082 +! 1 -0.120000 6.580961 6.581447 +! 1 -0.140000 6.618032 6.618541 +! 1 -0.160000 6.653803 6.654333 +! 1 -0.180000 6.688257 6.688806 +! 1 -0.200000 6.721391 6.721957 +! 1 -0.220000 6.753214 6.753795 +! 1 -0.240000 6.783743 6.784337 +! 1 -0.260000 6.813005 6.813610 +! 1 -0.280000 6.841032 6.841646 +! 1 -0.300000 6.867861 6.868483 +! 1 -0.320000 6.893533 6.894162 +! 1 -0.340000 6.918093 6.918726 +! 1 -0.360000 6.941584 6.942220 +! 1 -0.380000 6.964052 6.964691 +! 1 -0.400000 6.985543 6.986184 +! 1 -0.420000 7.006103 7.006744 +! 1 -0.440000 7.025775 7.026416 +! 1 -0.460000 7.044604 7.045244 +! 1 -0.480000 7.062630 7.063269 +! 1 -0.500000 7.079896 7.080532 +! 1 -0.520000 7.096438 7.097072 +! 1 -0.540000 7.112296 7.112926 +! 1 -0.560000 7.127503 7.128129 +! 1 -0.580000 7.142093 7.142716 +! 1 -0.600000 7.156099 7.156718 +! 1 -0.620000 7.169551 7.170165 +! 1 -0.640000 7.182477 7.183086 +! 1 -0.660000 7.194904 7.195509 +! 1 -0.680000 7.206858 7.207458 +! 1 -0.700000 7.218364 7.218958 +! 1 -0.720000 7.229443 7.230032 +! 1 -0.740000 7.240118 7.240702 +! 1 -0.760000 7.250408 7.250987 +! 1 -0.780000 7.260333 7.260906 +! 1 -0.800000 7.269911 7.270478 +! 1 -0.820000 7.279158 7.279720 +! 1 -0.840000 7.288091 7.288647 +! 1 -0.860000 7.296725 7.297276 +! 1 -0.880000 7.305073 7.305619 +! 1 -0.900000 7.313150 7.313690 +! 1 -0.920000 7.320969 7.321503 +! 1 -0.940000 7.328540 7.329069 +! 1 -0.960000 7.335875 7.336399 +! 1 -0.980000 7.342986 7.343504 +! 1 -1.000000 7.349882 7.350394 +! 1 -1.020000 7.356572 7.357079 +! 1 -1.040000 7.363066 7.363568 +! 1 -1.060000 7.369373 7.369870 +! 1 -1.080000 7.375500 7.375991 +! 1 -1.100000 7.381455 7.381941 +! 1 -1.120000 7.387245 7.387727 +! 1 -1.140000 7.392878 7.393354 +! 1 -1.160000 7.398360 7.398831 +! 1 -1.180000 7.403697 7.404163 +! 1 -1.200000 7.408895 7.409356 +! 1 -1.220000 7.413960 7.414416 +! 1 -1.240000 7.418897 7.419348 +! 1 -1.260000 7.423711 7.424158 +! 1 -1.280000 7.428407 7.428850 +! 1 -1.300000 7.432991 7.433428 +! 1 -1.320000 7.437465 7.437898 +! 1 -1.340000 7.441835 7.442263 +! 1 -1.360000 7.446105 7.446528 +! 1 -1.380000 7.450278 7.450697 +! 1 -1.400000 7.454358 7.454773 +! 1 -1.420000 7.458349 7.458759 +! 1 -1.440000 7.462254 7.462660 +! 1 -1.460000 7.466077 7.466479 +! 1 -1.480000 7.469820 7.470218 +! 1 -1.500000 7.473487 7.473881 +! 1 -1.520000 7.477081 7.477471 +! 1 -1.540000 7.480604 7.480990 +! 1 -1.560000 7.484059 7.484441 +! 1 -1.580000 7.487450 7.487828 +! 1 -1.600000 7.490778 7.491152 +! 1 -1.620000 7.494045 7.494416 +! 1 -1.640000 7.497256 7.497622 +! 1 -1.660000 7.500411 7.500773 +! 1 -1.680000 7.503513 7.503872 +! 1 -1.700000 7.506565 7.506920 +! 1 -1.720000 7.509568 7.509920 +! 1 -1.740000 7.512525 7.512873 +! 1 -1.760000 7.515439 7.515783 +! 1 -1.780000 7.518310 7.518651 +! 1 -1.800000 7.521142 7.521479 +! 1 -1.820000 7.523937 7.524270 +! 1 -1.840000 7.526696 7.527026 +! 1 -1.860000 7.529422 7.529749 +! 1 -1.880000 7.532117 7.532441 +! 1 -1.900000 7.534784 7.535104 +! 1 -1.920000 7.537424 7.537741 +! 1 -1.940000 7.540040 7.540354 +! 1 -1.960000 7.542635 7.542946 +! 1 -1.980000 7.545212 7.545518 +! 1 -2.000000 7.547772 7.548075 +! 1 -2.020000 7.550318 7.550619 +! 1 -2.040000 7.552855 7.553152 +! 1 -2.060000 7.555384 7.555678 +! 1 -2.080000 7.557910 7.558201 +! 1 -2.100000 7.560437 7.560724 +! 1 -2.120000 7.562968 7.563252 +! 1 -2.140000 7.565508 7.565789 +! 1 -2.160000 7.568063 7.568340 +! 1 -2.180000 7.570638 7.570912 +! 1 -2.200000 7.573239 7.573510 +! 1 -2.220000 7.575875 7.576142 +! 1 -2.240000 7.578553 7.578817 +! 1 -2.260000 7.581283 7.581544 +! 1 -2.280000 7.584078 7.584335 +! 1 -2.300000 7.586950 7.587203 +! 1 -2.320000 7.589915 7.590165 +! 1 -2.340000 7.592993 7.593240 +! 1 -2.360000 7.596208 7.596450 +! 1 -2.380000 7.599588 7.599826 +! 1 -2.400000 7.603169 7.603403 +! 1 -2.420000 7.606996 7.607226 +! 1 -2.440000 7.611127 7.611352 +! 1 -2.460000 7.615639 7.615859 +! 1 -2.480000 7.620631 7.620845 +! 1 -2.500000 7.626240 7.626449 +! 1 -2.520000 7.632658 7.632860 +! 1 -2.540000 7.640159 7.640354 +! 1 -2.560000 7.649157 7.649342 +! 1 -2.580000 7.660296 7.660471 +! 1 -2.600000 7.674646 7.674808 +! 1 -2.620000 7.694122 7.694266 +! 1 -2.640000 7.722506 7.722628 +! 1 -2.660000 7.768448 7.768536 +! 1 -2.680000 7.856685 7.856724 +! 1 -2.700000 8.092072 8.092077 +! 1 -2.720000 9.159935 9.161019 +! 1 -2.740000 10.230728 10.231589 +! 1 -2.760000 10.466688 10.467239 +! 1 -2.780000 10.554990 10.555428 +! 1 -2.800000 10.600873 10.601254 +! 1 -2.820000 10.629139 10.629486 +! 1 -2.840000 10.648452 10.648776 +! 1 -2.860000 10.662602 10.662910 +! 1 -2.880000 10.673505 10.673800 +! 1 -2.900000 10.682233 10.682517 +! 1 -2.920000 10.689431 10.689707 +! 1 -2.940000 10.695511 10.695780 +! 1 -2.960000 10.700750 10.701013 +! 1 -2.980000 10.705337 10.705595 +! 1 -3.000000 10.709410 10.709663 +! 1 -3.020000 10.713070 10.713318 +! 1 -3.040000 10.716391 10.716635 +! 1 -3.060000 10.719431 10.719671 +! 1 -3.080000 10.722235 10.722472 +! 1 -3.100000 10.724840 10.725073 +! 1 -3.120000 10.727272 10.727503 +! 1 -3.140000 10.729556 10.729784 +! 1 -3.160000 10.731711 10.731936 +! 1 -3.180000 10.733751 10.733973 +! 1 -3.200000 10.735691 10.735911 +! 1 -3.220000 10.737540 10.737758 +! 1 -3.240000 10.739310 10.739525 +! 1 -3.260000 10.741006 10.741219 +! 1 -3.280000 10.742638 10.742848 +! 1 -3.300000 10.744209 10.744418 +! 1 -3.320000 10.745726 10.745933 +! 1 -3.340000 10.747193 10.747398 +! 1 -3.360000 10.748614 10.748817 +! 1 -3.380000 10.749993 10.750194 +! 1 -3.400000 10.751332 10.751531 +! 1 -3.420000 10.752634 10.752832 +! 1 -3.440000 10.753903 10.754098 +! 1 -3.460000 10.755139 10.755333 +! 1 -3.480000 10.756345 10.756538 +! 1 -3.500000 10.757524 10.757714 +! 1 -3.520000 10.758675 10.758864 +! 1 -3.540000 10.759802 10.759989 +! 1 -3.560000 10.760905 10.761091 +! 1 -3.580000 10.761986 10.762170 +! 1 -3.600000 10.763045 10.763228 +! 1 -3.620000 10.764084 10.764265 +! 1 -3.640000 10.765104 10.765283 +! 1 -3.660000 10.766105 10.766283 +! 1 -3.680000 10.767088 10.767265 +! 1 -3.700000 10.768055 10.768231 +! 1 -3.720000 10.769005 10.769180 +! 1 -3.740000 10.769940 10.770113 +! 1 -3.760000 10.770860 10.771032 +! 1 -3.780000 10.771766 10.771936 +! 1 -3.800000 10.772658 10.772827 +! 1 -3.820000 10.773536 10.773704 +! 1 -3.840000 10.774402 10.774568 +! 1 -3.860000 10.775255 10.775420 +! 1 -3.880000 10.776096 10.776260 +! 1 -3.900000 10.776926 10.777089 +! 1 -3.920000 10.777744 10.777906 +! 1 -3.940000 10.778551 10.778712 +! 1 -3.960000 10.779348 10.779508 +! 1 -3.980000 10.780135 10.780293 +! 1 -4.000000 10.780911 10.781068 +! 1 -4.020000 10.781678 10.781834 +! 1 -4.040000 10.782435 10.782590 +! 1 -4.060000 10.783183 10.783337 +! 1 -4.080000 10.783923 10.784075 +! 1 -4.100000 10.784653 10.784805 +! 1 -4.120000 10.785375 10.785526 +! 1 -4.140000 10.786089 10.786239 +! 1 -4.160000 10.786795 10.786943 +! 1 -4.180000 10.787492 10.787640 +! 1 -4.200000 10.788182 10.788329 +! 1 -4.220000 10.788865 10.789011 +! 1 -4.240000 10.789540 10.789685 +! 1 -4.260000 10.790208 10.790352 +! 1 -4.280000 10.790869 10.791012 +! 1 -4.300000 10.791523 10.791665 +! 1 -4.320000 10.792171 10.792311 +! 1 -4.340000 10.792811 10.792951 +! 1 -4.360000 10.793446 10.793585 +! 1 -4.380000 10.794074 10.794212 +! 1 -4.400000 10.794695 10.794832 +! 1 -4.420000 10.795311 10.795447 +! 1 -4.440000 10.795921 10.796056 +! 1 -4.460000 10.796524 10.796659 +! 1 -4.480000 10.797123 10.797256 +! 1 -4.500000 10.797715 10.797848 +! 1 -4.520000 10.798302 10.798434 +! 1 -4.540000 10.798883 10.799015 +! 1 -4.560000 10.799460 10.799590 +! 1 -4.580000 10.800031 10.800160 +! 1 -4.600000 10.800596 10.800725 +! 1 -4.620000 10.801157 10.801285 +! 1 -4.640000 10.801713 10.801840 +! 1 -4.660000 10.802264 10.802390 +! 1 -4.680000 10.802810 10.802935 +! 1 -4.700000 10.803351 10.803475 +! 1 -4.720000 10.803887 10.804011 +! 1 -4.740000 10.804420 10.804543 +! 1 -4.760000 10.804947 10.805069 +! 1 -4.780000 10.805470 10.805592 +! 1 -4.800000 10.805989 10.806110 +! 1 -4.820000 10.806503 10.806623 +! 1 -4.840000 10.807013 10.807133 +! 1 -4.860000 10.807520 10.807638 +! 1 -4.880000 10.808021 10.808139 +! 1 -4.900000 10.808519 10.808636 +! 1 -4.920000 10.809013 10.809130 +! 1 -4.940000 10.809503 10.809619 +! 1 -4.960000 10.809989 10.810104 +! 1 -4.980000 10.810471 10.810586 + +log derivativve data for plotting, l= 2 +atan(r * ((d psi(r)/dr)/psi(r))), r= 2.12 +l, energy, all-electron, pseudopotential + +! 2 5.000000 1.302855 1.384319 +! 2 4.980000 1.309964 1.388148 +! 2 4.960000 1.316817 1.391899 +! 2 4.940000 1.323430 1.395573 +! 2 4.920000 1.329817 1.399175 +! 2 4.900000 1.335990 1.402707 +! 2 4.880000 1.341962 1.406172 +! 2 4.860000 1.347745 1.409573 +! 2 4.840000 1.353348 1.412913 +! 2 4.820000 1.358782 1.416194 +! 2 4.800000 1.364056 1.419419 +! 2 4.780000 1.369178 1.422590 +! 2 4.760000 1.374157 1.425709 +! 2 4.740000 1.379000 1.428779 +! 2 4.720000 1.383714 1.431801 +! 2 4.700000 1.388306 1.434777 +! 2 4.680000 1.392781 1.437710 +! 2 4.660000 1.397147 1.440600 +! 2 4.640000 1.401408 1.443450 +! 2 4.620000 1.405569 1.446262 +! 2 4.600000 1.409636 1.449037 +! 2 4.580000 1.413613 1.451776 +! 2 4.560000 1.417504 1.454482 +! 2 4.540000 1.421314 1.457155 +! 2 4.520000 1.425046 1.459797 +! 2 4.500000 1.428704 1.462409 +! 2 4.480000 1.432292 1.464992 +! 2 4.460000 1.435813 1.467548 +! 2 4.440000 1.439271 1.470079 +! 2 4.420000 1.442667 1.472584 +! 2 4.400000 1.446006 1.475066 +! 2 4.380000 1.449289 1.477525 +! 2 4.360000 1.452520 1.479963 +! 2 4.340000 1.455701 1.482380 +! 2 4.320000 1.458834 1.484777 +! 2 4.300000 1.461921 1.487156 +! 2 4.280000 1.464966 1.489518 +! 2 4.260000 1.467969 1.491863 +! 2 4.240000 1.470933 1.494192 +! 2 4.220000 1.473860 1.496506 +! 2 4.200000 1.476752 1.498806 +! 2 4.180000 1.479610 1.501094 +! 2 4.160000 1.482436 1.503369 +! 2 4.140000 1.485232 1.505632 +! 2 4.120000 1.488000 1.507885 +! 2 4.100000 1.490740 1.510128 +! 2 4.080000 1.493455 1.512362 +! 2 4.060000 1.496146 1.514588 +! 2 4.040000 1.498814 1.516806 +! 2 4.020000 1.501460 1.519017 +! 2 4.000000 1.504087 1.521222 +! 2 3.980000 1.506695 1.523422 +! 2 3.960000 1.509285 1.525617 +! 2 3.940000 1.511858 1.527808 +! 2 3.920000 1.514417 1.529996 +! 2 3.900000 1.516962 1.532181 +! 2 3.880000 1.519494 1.534364 +! 2 3.860000 1.522013 1.536547 +! 2 3.840000 1.524523 1.538728 +! 2 3.820000 1.527022 1.540910 +! 2 3.800000 1.529513 1.543093 +! 2 3.780000 1.531997 1.545277 +! 2 3.760000 1.534474 1.547463 +! 2 3.740000 1.536945 1.549653 +! 2 3.720000 1.539411 1.551845 +! 2 3.700000 1.541874 1.554042 +! 2 3.680000 1.544335 1.556244 +! 2 3.660000 1.546793 1.558452 +! 2 3.640000 1.549251 1.560665 +! 2 3.620000 1.551709 1.562886 +! 2 3.600000 1.554168 1.565115 +! 2 3.580000 1.556629 1.567351 +! 2 3.560000 1.559093 1.569597 +! 2 3.540000 1.561561 1.571853 +! 2 3.520000 1.564033 1.574119 +! 2 3.500000 1.566511 1.576396 +! 2 3.480000 1.568996 1.578685 +! 2 3.460000 1.571489 1.580988 +! 2 3.440000 1.573990 1.583303 +! 2 3.420000 1.576500 1.585633 +! 2 3.400000 1.579021 1.587978 +! 2 3.380000 1.581553 1.590339 +! 2 3.360000 1.584097 1.592717 +! 2 3.340000 1.586655 1.595112 +! 2 3.320000 1.589227 1.597525 +! 2 3.300000 1.591814 1.599958 +! 2 3.280000 1.594417 1.602411 +! 2 3.260000 1.597038 1.604885 +! 2 3.240000 1.599677 1.607381 +! 2 3.220000 1.602335 1.609901 +! 2 3.200000 1.605014 1.612444 +! 2 3.180000 1.607715 1.615012 +! 2 3.160000 1.610439 1.617606 +! 2 3.140000 1.613186 1.620227 +! 2 3.120000 1.615959 1.622876 +! 2 3.100000 1.618757 1.625555 +! 2 3.080000 1.621584 1.628264 +! 2 3.060000 1.624439 1.631005 +! 2 3.040000 1.627325 1.633779 +! 2 3.020000 1.630242 1.636586 +! 2 3.000000 1.633192 1.639430 +! 2 2.980000 1.636176 1.642310 +! 2 2.960000 1.639196 1.645228 +! 2 2.940000 1.642254 1.648187 +! 2 2.920000 1.645350 1.651186 +! 2 2.900000 1.648487 1.654228 +! 2 2.880000 1.651666 1.657314 +! 2 2.860000 1.654889 1.660447 +! 2 2.840000 1.658158 1.663627 +! 2 2.820000 1.661474 1.666857 +! 2 2.800000 1.664840 1.670139 +! 2 2.780000 1.668257 1.673473 +! 2 2.760000 1.671728 1.676864 +! 2 2.740000 1.675255 1.680311 +! 2 2.720000 1.678840 1.683819 +! 2 2.700000 1.682485 1.687388 +! 2 2.680000 1.686192 1.691022 +! 2 2.660000 1.689965 1.694723 +! 2 2.640000 1.693806 1.698494 +! 2 2.620000 1.697718 1.702336 +! 2 2.600000 1.701703 1.706254 +! 2 2.580000 1.705765 1.710250 +! 2 2.560000 1.709907 1.714326 +! 2 2.540000 1.714131 1.718487 +! 2 2.520000 1.718442 1.722736 +! 2 2.500000 1.722843 1.727077 +! 2 2.480000 1.727337 1.731512 +! 2 2.460000 1.731929 1.736046 +! 2 2.440000 1.736624 1.740683 +! 2 2.420000 1.741424 1.745428 +! 2 2.400000 1.746335 1.750285 +! 2 2.380000 1.751362 1.755258 +! 2 2.360000 1.756509 1.760353 +! 2 2.340000 1.761783 1.765576 +! 2 2.320000 1.767188 1.770930 +! 2 2.300000 1.772730 1.776424 +! 2 2.280000 1.778416 1.782062 +! 2 2.260000 1.784253 1.787852 +! 2 2.240000 1.790247 1.793799 +! 2 2.220000 1.796406 1.799913 +! 2 2.200000 1.802737 1.806199 +! 2 2.180000 1.809248 1.812667 +! 2 2.160000 1.815949 1.819326 +! 2 2.140000 1.822849 1.826184 +! 2 2.120000 1.829957 1.833251 +! 2 2.100000 1.837284 1.840537 +! 2 2.080000 1.844841 1.848055 +! 2 2.060000 1.852640 1.855814 +! 2 2.040000 1.860692 1.863828 +! 2 2.020000 1.869012 1.872111 +! 2 2.000000 1.877614 1.880675 +! 2 1.980000 1.886512 1.889537 +! 2 1.960000 1.895723 1.898712 +! 2 1.940000 1.905263 1.908217 +! 2 1.920000 1.915152 1.918071 +! 2 1.900000 1.925408 1.928292 +! 2 1.880000 1.936053 1.938902 +! 2 1.860000 1.947108 1.949924 +! 2 1.840000 1.958597 1.961380 +! 2 1.820000 1.970547 1.973295 +! 2 1.800000 1.982983 1.985698 +! 2 1.780000 1.995935 1.998617 +! 2 1.760000 2.009434 2.012083 +! 2 1.740000 2.023514 2.026129 +! 2 1.720000 2.038209 2.040791 +! 2 1.700000 2.053558 2.056106 +! 2 1.680000 2.069601 2.072115 +! 2 1.660000 2.086380 2.088859 +! 2 1.640000 2.103943 2.106386 +! 2 1.620000 2.122336 2.124744 +! 2 1.600000 2.141613 2.143983 +! 2 1.580000 2.161826 2.164158 +! 2 1.560000 2.183034 2.185326 +! 2 1.540000 2.205297 2.207548 +! 2 1.520000 2.228676 2.230884 +! 2 1.500000 2.253236 2.255399 +! 2 1.480000 2.279045 2.281161 +! 2 1.460000 2.306169 2.308235 +! 2 1.440000 2.334676 2.336689 +! 2 1.420000 2.364632 2.366589 +! 2 1.400000 2.396101 2.397999 +! 2 1.380000 2.429143 2.430978 +! 2 1.360000 2.463810 2.465579 +! 2 1.340000 2.500147 2.501845 +! 2 1.320000 2.538186 2.539809 +! 2 1.300000 2.577943 2.579487 +! 2 1.280000 2.619415 2.620876 +! 2 1.260000 2.662580 2.663954 +! 2 1.240000 2.707386 2.708669 +! 2 1.220000 2.753756 2.754945 +! 2 1.200000 2.801580 2.802673 +! 2 1.180000 2.850717 2.851713 +! 2 1.160000 2.900995 2.901893 +! 2 1.140000 2.952213 2.953013 +! 2 1.120000 3.004142 3.004847 +! 2 1.100000 3.056536 3.057148 +! 2 1.080000 3.109133 3.109658 +! 2 1.060000 3.161668 3.162110 +! 2 1.040000 3.213877 3.214244 +! 2 1.020000 3.265509 3.265807 +! 2 1.000000 3.316329 3.316566 +! 2 0.980000 3.366128 3.366311 +! 2 0.960000 3.414725 3.414863 +! 2 0.940000 3.461971 3.462071 +! 2 0.920000 3.507747 3.507816 +! 2 0.900000 3.551968 3.552012 +! 2 0.880000 3.594575 3.594601 +! 2 0.860000 3.635540 3.635553 +! 2 0.840000 3.674855 3.674860 +! 2 0.820000 3.712533 3.712534 +! 2 0.800000 3.748605 3.748605 +! 2 0.780000 3.783113 3.783115 +! 2 0.760000 3.816112 3.816118 +! 2 0.740000 3.847661 3.847673 +! 2 0.720000 3.877827 3.877847 +! 2 0.700000 3.906680 3.906709 +! 2 0.680000 3.934292 3.934330 +! 2 0.660000 3.960734 3.960781 +! 2 0.640000 3.986077 3.986135 +! 2 0.620000 4.010394 4.010461 +! 2 0.600000 4.033752 4.033830 +! 2 0.580000 4.056220 4.056307 +! 2 0.560000 4.077863 4.077960 +! 2 0.540000 4.098744 4.098849 +! 2 0.520000 4.118924 4.119038 +! 2 0.500000 4.138462 4.138584 +! 2 0.480000 4.157416 4.157546 +! 2 0.460000 4.175842 4.175978 +! 2 0.440000 4.193792 4.193935 +! 2 0.420000 4.211322 4.211471 +! 2 0.400000 4.228483 4.228636 +! 2 0.380000 4.245326 4.245485 +! 2 0.360000 4.261904 4.262067 +! 2 0.340000 4.278269 4.278435 +! 2 0.320000 4.294474 4.294643 +! 2 0.300000 4.310574 4.310744 +! 2 0.280000 4.326624 4.326795 +! 2 0.260000 4.342684 4.342856 +! 2 0.240000 4.358817 4.358990 +! 2 0.220000 4.375090 4.375263 +! 2 0.200000 4.391578 4.391749 +! 2 0.180000 4.408359 4.408528 +! 2 0.160000 4.425523 4.425690 +! 2 0.140000 4.443171 4.443335 +! 2 0.120000 4.461416 4.461576 +! 2 0.100000 4.480388 4.480543 +! 2 0.080000 4.500238 4.500388 +! 2 0.060000 4.521142 4.521285 +! 2 0.040000 4.543309 4.543445 +! 2 0.020000 4.566987 4.567115 +! 2 0.000000 4.592475 4.592594 +! 2 -0.020000 4.620138 4.620246 +! 2 -0.040000 4.650422 4.650518 +! 2 -0.060000 4.683880 4.683964 +! 2 -0.080000 4.721204 4.721275 +! 2 -0.100000 4.763265 4.763321 +! 2 -0.120000 4.811164 4.811205 +! 2 -0.140000 4.866299 4.866325 +! 2 -0.160000 4.930438 4.930451 +! 2 -0.180000 5.005783 5.005786 +! 2 -0.200000 5.094988 5.094988 +! 2 -0.220000 5.201028 5.201039 +! 2 -0.240000 5.326742 5.326784 +! 2 -0.260000 5.473812 5.473914 +! 2 -0.280000 5.641104 5.641300 +! 2 -0.300000 5.823029 5.823346 +! 2 -0.320000 6.009552 6.009998 +! 2 -0.340000 6.188989 6.189548 +! 2 -0.360000 6.352065 6.352705 +! 2 -0.380000 6.494171 6.494858 +! 2 -0.400000 6.614892 6.615599 +! 2 -0.420000 6.716258 6.716966 +! 2 -0.440000 6.801195 6.801892 +! 2 -0.460000 6.872632 6.873314 +! 2 -0.480000 6.933134 6.933798 +! 2 -0.500000 6.984808 6.985454 +! 2 -0.520000 7.029337 7.029964 +! 2 -0.540000 7.068050 7.068659 +! 2 -0.560000 7.101991 7.102583 +! 2 -0.580000 7.131986 7.132563 +! 2 -0.600000 7.158690 7.159252 +! 2 -0.620000 7.182627 7.183175 +! 2 -0.640000 7.204217 7.204753 +! 2 -0.660000 7.223803 7.224327 +! 2 -0.680000 7.241664 7.242177 +! 2 -0.700000 7.258032 7.258535 +! 2 -0.720000 7.273098 7.273591 +! 2 -0.740000 7.287023 7.287507 +! 2 -0.760000 7.299941 7.300417 +! 2 -0.780000 7.311968 7.312435 +! 2 -0.800000 7.323199 7.323659 +! 2 -0.820000 7.333721 7.334173 +! 2 -0.840000 7.343604 7.344050 +! 2 -0.860000 7.352911 7.353350 +! 2 -0.880000 7.361697 7.362130 +! 2 -0.900000 7.370009 7.370436 +! 2 -0.920000 7.377889 7.378310 +! 2 -0.940000 7.385375 7.385790 +! 2 -0.960000 7.392498 7.392908 +! 2 -0.980000 7.399288 7.399693 +! 2 -1.000000 7.405771 7.406171 +! 2 -1.020000 7.411970 7.412366 +! 2 -1.040000 7.417906 7.418297 +! 2 -1.060000 7.423598 7.423984 +! 2 -1.080000 7.429062 7.429444 +! 2 -1.100000 7.434315 7.434692 +! 2 -1.120000 7.439369 7.439742 +! 2 -1.140000 7.444237 7.444607 +! 2 -1.160000 7.448932 7.449297 +! 2 -1.180000 7.453463 7.453824 +! 2 -1.200000 7.457840 7.458198 +! 2 -1.220000 7.462073 7.462427 +! 2 -1.240000 7.466169 7.466519 +! 2 -1.260000 7.470135 7.470482 +! 2 -1.280000 7.473980 7.474323 +! 2 -1.300000 7.477708 7.478049 +! 2 -1.320000 7.481327 7.481664 +! 2 -1.340000 7.484842 7.485176 +! 2 -1.360000 7.488257 7.488588 +! 2 -1.380000 7.491578 7.491906 +! 2 -1.400000 7.494809 7.495134 +! 2 -1.420000 7.497954 7.498276 +! 2 -1.440000 7.501018 7.501337 +! 2 -1.460000 7.504003 7.504319 +! 2 -1.480000 7.506913 7.507226 +! 2 -1.500000 7.509752 7.510062 +! 2 -1.520000 7.512522 7.512830 +! 2 -1.540000 7.515227 7.515532 +! 2 -1.560000 7.517868 7.518170 +! 2 -1.580000 7.520449 7.520748 +! 2 -1.600000 7.522972 7.523268 +! 2 -1.620000 7.525438 7.525732 +! 2 -1.640000 7.527851 7.528142 +! 2 -1.660000 7.530212 7.530501 +! 2 -1.680000 7.532523 7.532809 +! 2 -1.700000 7.534785 7.535070 +! 2 -1.720000 7.537002 7.537283 +! 2 -1.740000 7.539173 7.539453 +! 2 -1.760000 7.541301 7.541578 +! 2 -1.780000 7.543388 7.543662 +! 2 -1.800000 7.545433 7.545706 +! 2 -1.820000 7.547440 7.547711 +! 2 -1.840000 7.549409 7.549677 +! 2 -1.860000 7.551342 7.551608 +! 2 -1.880000 7.553239 7.553502 +! 2 -1.900000 7.555101 7.555363 +! 2 -1.920000 7.556930 7.557190 +! 2 -1.940000 7.558727 7.558985 +! 2 -1.960000 7.560493 7.560748 +! 2 -1.980000 7.562228 7.562481 +! 2 -2.000000 7.563933 7.564185 +! 2 -2.020000 7.565610 7.565860 +! 2 -2.040000 7.567259 7.567507 +! 2 -2.060000 7.568881 7.569127 +! 2 -2.080000 7.570477 7.570721 +! 2 -2.100000 7.572047 7.572289 +! 2 -2.120000 7.573592 7.573832 +! 2 -2.140000 7.575113 7.575351 +! 2 -2.160000 7.576610 7.576846 +! 2 -2.180000 7.578084 7.578318 +! 2 -2.200000 7.579536 7.579768 +! 2 -2.220000 7.580966 7.581196 +! 2 -2.240000 7.582374 7.582603 +! 2 -2.260000 7.583762 7.583989 +! 2 -2.280000 7.585129 7.585355 +! 2 -2.300000 7.586477 7.586701 +! 2 -2.320000 7.587806 7.588028 +! 2 -2.340000 7.589115 7.589336 +! 2 -2.360000 7.590407 7.590626 +! 2 -2.380000 7.591680 7.591897 +! 2 -2.400000 7.592936 7.593152 +! 2 -2.420000 7.594175 7.594389 +! 2 -2.440000 7.595397 7.595609 +! 2 -2.460000 7.596602 7.596813 +! 2 -2.480000 7.597792 7.598001 +! 2 -2.500000 7.598966 7.599173 +! 2 -2.520000 7.600124 7.600331 +! 2 -2.540000 7.601268 7.601473 +! 2 -2.560000 7.602397 7.602600 +! 2 -2.580000 7.603512 7.603714 +! 2 -2.600000 7.604613 7.604813 +! 2 -2.620000 7.605699 7.605898 +! 2 -2.640000 7.606773 7.606970 +! 2 -2.660000 7.607833 7.608029 +! 2 -2.680000 7.608881 7.609075 +! 2 -2.700000 7.609915 7.610109 +! 2 -2.720000 7.610938 7.611130 +! 2 -2.740000 7.611948 7.612138 +! 2 -2.760000 7.612946 7.613135 +! 2 -2.780000 7.613933 7.614121 +! 2 -2.800000 7.614908 7.615094 +! 2 -2.820000 7.615872 7.616057 +! 2 -2.840000 7.616825 7.617009 +! 2 -2.860000 7.617767 7.617949 +! 2 -2.880000 7.618698 7.618880 +! 2 -2.900000 7.619619 7.619799 +! 2 -2.920000 7.620530 7.620709 +! 2 -2.940000 7.621431 7.621609 +! 2 -2.960000 7.622322 7.622498 +! 2 -2.980000 7.623203 7.623378 +! 2 -3.000000 7.624075 7.624249 +! 2 -3.020000 7.624938 7.625110 +! 2 -3.040000 7.625791 7.625962 +! 2 -3.060000 7.626635 7.626805 +! 2 -3.080000 7.627471 7.627640 +! 2 -3.100000 7.628298 7.628465 +! 2 -3.120000 7.629116 7.629282 +! 2 -3.140000 7.629926 7.630091 +! 2 -3.160000 7.630727 7.630892 +! 2 -3.180000 7.631521 7.631684 +! 2 -3.200000 7.632306 7.632468 +! 2 -3.220000 7.633084 7.633245 +! 2 -3.240000 7.633854 7.634014 +! 2 -3.260000 7.634616 7.634775 +! 2 -3.280000 7.635371 7.635528 +! 2 -3.300000 7.636118 7.636275 +! 2 -3.320000 7.636858 7.637014 +! 2 -3.340000 7.637591 7.637746 +! 2 -3.360000 7.638318 7.638471 +! 2 -3.380000 7.639037 7.639189 +! 2 -3.400000 7.639749 7.639901 +! 2 -3.420000 7.640455 7.640606 +! 2 -3.440000 7.641154 7.641304 +! 2 -3.460000 7.641847 7.641995 +! 2 -3.480000 7.642533 7.642681 +! 2 -3.500000 7.643213 7.643360 +! 2 -3.520000 7.643887 7.644033 +! 2 -3.540000 7.644555 7.644699 +! 2 -3.560000 7.645216 7.645360 +! 2 -3.580000 7.645872 7.646015 +! 2 -3.600000 7.646522 7.646664 +! 2 -3.620000 7.647166 7.647307 +! 2 -3.640000 7.647805 7.647945 +! 2 -3.660000 7.648438 7.648577 +! 2 -3.680000 7.649065 7.649203 +! 2 -3.700000 7.649687 7.649825 +! 2 -3.720000 7.650304 7.650440 +! 2 -3.740000 7.650915 7.651051 +! 2 -3.760000 7.651522 7.651656 +! 2 -3.780000 7.652123 7.652257 +! 2 -3.800000 7.652719 7.652852 +! 2 -3.820000 7.653310 7.653442 +! 2 -3.840000 7.653896 7.654027 +! 2 -3.860000 7.654477 7.654608 +! 2 -3.880000 7.655054 7.655183 +! 2 -3.900000 7.655626 7.655754 +! 2 -3.920000 7.656193 7.656321 +! 2 -3.940000 7.656755 7.656882 +! 2 -3.960000 7.657313 7.657440 +! 2 -3.980000 7.657867 7.657992 +! 2 -4.000000 7.658416 7.658541 +! 2 -4.020000 7.658961 7.659085 +! 2 -4.040000 7.659501 7.659624 +! 2 -4.060000 7.660037 7.660160 +! 2 -4.080000 7.660569 7.660691 +! 2 -4.100000 7.661097 7.661218 +! 2 -4.120000 7.661621 7.661741 +! 2 -4.140000 7.662141 7.662260 +! 2 -4.160000 7.662657 7.662775 +! 2 -4.180000 7.663168 7.663286 +! 2 -4.200000 7.663676 7.663794 +! 2 -4.220000 7.664181 7.664297 +! 2 -4.240000 7.664681 7.664797 +! 2 -4.260000 7.665178 7.665293 +! 2 -4.280000 7.665670 7.665785 +! 2 -4.300000 7.666160 7.666273 +! 2 -4.320000 7.666645 7.666758 +! 2 -4.340000 7.667128 7.667240 +! 2 -4.360000 7.667606 7.667718 +! 2 -4.380000 7.668081 7.668192 +! 2 -4.400000 7.668553 7.668663 +! 2 -4.420000 7.669021 7.669131 +! 2 -4.440000 7.669486 7.669595 +! 2 -4.460000 7.669948 7.670056 +! 2 -4.480000 7.670406 7.670514 +! 2 -4.500000 7.670861 7.670968 +! 2 -4.520000 7.671313 7.671419 +! 2 -4.540000 7.671762 7.671867 +! 2 -4.560000 7.672207 7.672312 +! 2 -4.580000 7.672650 7.672754 +! 2 -4.600000 7.673089 7.673193 +! 2 -4.620000 7.673526 7.673629 +! 2 -4.640000 7.673959 7.674062 +! 2 -4.660000 7.674390 7.674492 +! 2 -4.680000 7.674817 7.674919 +! 2 -4.700000 7.675242 7.675343 +! 2 -4.720000 7.675664 7.675764 +! 2 -4.740000 7.676083 7.676182 +! 2 -4.760000 7.676499 7.676598 +! 2 -4.780000 7.676912 7.677011 +! 2 -4.800000 7.677323 7.677421 +! 2 -4.820000 7.677731 7.677828 +! 2 -4.840000 7.678136 7.678233 +! 2 -4.860000 7.678539 7.678635 +! 2 -4.880000 7.678939 7.679034 +! 2 -4.900000 7.679336 7.679431 +! 2 -4.920000 7.679731 7.679826 +! 2 -4.940000 7.680123 7.680217 +! 2 -4.960000 7.680513 7.680607 +! 2 -4.980000 7.680900 7.680993 + +log derivativve data for plotting, l= 3 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.50 +l, energy, all-electron, pseudopotential + +! 3 5.000000 -1.361698 -1.255021 +! 3 4.980000 -1.358392 -1.250975 +! 3 4.960000 -1.355042 -1.246868 +! 3 4.940000 -1.351649 -1.242699 +! 3 4.920000 -1.348210 -1.238468 +! 3 4.900000 -1.344725 -1.234171 +! 3 4.880000 -1.341192 -1.229808 +! 3 4.860000 -1.337611 -1.225378 +! 3 4.840000 -1.333981 -1.220879 +! 3 4.820000 -1.330300 -1.216309 +! 3 4.800000 -1.326567 -1.211666 +! 3 4.780000 -1.322781 -1.206950 +! 3 4.760000 -1.318941 -1.202157 +! 3 4.740000 -1.315044 -1.197288 +! 3 4.720000 -1.311091 -1.192339 +! 3 4.700000 -1.307080 -1.187309 +! 3 4.680000 -1.303008 -1.182195 +! 3 4.660000 -1.298876 -1.176997 +! 3 4.640000 -1.294680 -1.171713 +! 3 4.620000 -1.290420 -1.166339 +! 3 4.600000 -1.286095 -1.160874 +! 3 4.580000 -1.281702 -1.155316 +! 3 4.560000 -1.277240 -1.149662 +! 3 4.540000 -1.272707 -1.143911 +! 3 4.520000 -1.268101 -1.138060 +! 3 4.500000 -1.263421 -1.132106 +! 3 4.480000 -1.258665 -1.126048 +! 3 4.460000 -1.253830 -1.119882 +! 3 4.440000 -1.248915 -1.113607 +! 3 4.420000 -1.243918 -1.107219 +! 3 4.400000 -1.238837 -1.100716 +! 3 4.380000 -1.233669 -1.094095 +! 3 4.360000 -1.228413 -1.087354 +! 3 4.340000 -1.223065 -1.080489 +! 3 4.320000 -1.217625 -1.073498 +! 3 4.300000 -1.212088 -1.066377 +! 3 4.280000 -1.206454 -1.059123 +! 3 4.260000 -1.200719 -1.051735 +! 3 4.240000 -1.194880 -1.044207 +! 3 4.220000 -1.188936 -1.036537 +! 3 4.200000 -1.182882 -1.028722 +! 3 4.180000 -1.176717 -1.020758 +! 3 4.160000 -1.170438 -1.012642 +! 3 4.140000 -1.164041 -1.004370 +! 3 4.120000 -1.157523 -0.995939 +! 3 4.100000 -1.150881 -0.987345 +! 3 4.080000 -1.144112 -0.978585 +! 3 4.060000 -1.137213 -0.969654 +! 3 4.040000 -1.130180 -0.960549 +! 3 4.020000 -1.123009 -0.951267 +! 3 4.000000 -1.115698 -0.941804 +! 3 3.980000 -1.108241 -0.932155 +! 3 3.960000 -1.100636 -0.922316 +! 3 3.940000 -1.092878 -0.912285 +! 3 3.920000 -1.084964 -0.902056 +! 3 3.900000 -1.076889 -0.891627 +! 3 3.880000 -1.068649 -0.880993 +! 3 3.860000 -1.060241 -0.870151 +! 3 3.840000 -1.051658 -0.859096 +! 3 3.820000 -1.042898 -0.847825 +! 3 3.800000 -1.033955 -0.836334 +! 3 3.780000 -1.024825 -0.824620 +! 3 3.760000 -1.015503 -0.812679 +! 3 3.740000 -1.005984 -0.800508 +! 3 3.720000 -0.996263 -0.788103 +! 3 3.700000 -0.986336 -0.775462 +! 3 3.680000 -0.976198 -0.762581 +! 3 3.660000 -0.965842 -0.749457 +! 3 3.640000 -0.955265 -0.736089 +! 3 3.620000 -0.944461 -0.722474 +! 3 3.600000 -0.933424 -0.708609 +! 3 3.580000 -0.922150 -0.694494 +! 3 3.560000 -0.910634 -0.680127 +! 3 3.540000 -0.898870 -0.665506 +! 3 3.520000 -0.886853 -0.650632 +! 3 3.500000 -0.874578 -0.635504 +! 3 3.480000 -0.862039 -0.620122 +! 3 3.460000 -0.849234 -0.604488 +! 3 3.440000 -0.836155 -0.588601 +! 3 3.420000 -0.822799 -0.572465 +! 3 3.400000 -0.809161 -0.556081 +! 3 3.380000 -0.795237 -0.539453 +! 3 3.360000 -0.781023 -0.522583 +! 3 3.340000 -0.766516 -0.505477 +! 3 3.320000 -0.751711 -0.488139 +! 3 3.300000 -0.736606 -0.470575 +! 3 3.280000 -0.721199 -0.452791 +! 3 3.260000 -0.705486 -0.434794 +! 3 3.240000 -0.689467 -0.416592 +! 3 3.220000 -0.673141 -0.398192 +! 3 3.200000 -0.656506 -0.379606 +! 3 3.180000 -0.639563 -0.360841 +! 3 3.160000 -0.622313 -0.341909 +! 3 3.140000 -0.604757 -0.322821 +! 3 3.120000 -0.586899 -0.303588 +! 3 3.100000 -0.568740 -0.284223 +! 3 3.080000 -0.550286 -0.264740 +! 3 3.060000 -0.531540 -0.245151 +! 3 3.040000 -0.512510 -0.225471 +! 3 3.020000 -0.493202 -0.205714 +! 3 3.000000 -0.473625 -0.185894 +! 3 2.980000 -0.453786 -0.166027 +! 3 2.960000 -0.433697 -0.146128 +! 3 2.940000 -0.413369 -0.126212 +! 3 2.920000 -0.392814 -0.106296 +! 3 2.900000 -0.372044 -0.086393 +! 3 2.880000 -0.351076 -0.066521 +! 3 2.860000 -0.329922 -0.046693 +! 3 2.840000 -0.308601 -0.026926 +! 3 2.820000 -0.287128 -0.007234 +! 3 2.800000 -0.265522 0.012369 +! 3 2.780000 -0.243801 0.031869 +! 3 2.760000 -0.221984 0.051251 +! 3 2.740000 -0.200092 0.070503 +! 3 2.720000 -0.178144 0.089613 +! 3 2.700000 -0.156160 0.108568 +! 3 2.680000 -0.134162 0.127357 +! 3 2.660000 -0.112169 0.145969 +! 3 2.640000 -0.090204 0.164394 +! 3 2.620000 -0.068286 0.182624 +! 3 2.600000 -0.046435 0.200649 +! 3 2.580000 -0.024672 0.218462 +! 3 2.560000 -0.003016 0.236055 +! 3 2.540000 0.018514 0.253423 +! 3 2.520000 0.039900 0.270559 +! 3 2.500000 0.061125 0.287458 +! 3 2.480000 0.082171 0.304117 +! 3 2.460000 0.103024 0.320530 +! 3 2.440000 0.123668 0.336696 +! 3 2.420000 0.144090 0.352612 +! 3 2.400000 0.164277 0.368275 +! 3 2.380000 0.184217 0.383685 +! 3 2.360000 0.203900 0.398840 +! 3 2.340000 0.223315 0.413741 +! 3 2.320000 0.242455 0.428387 +! 3 2.300000 0.261313 0.442778 +! 3 2.280000 0.279880 0.456917 +! 3 2.260000 0.298153 0.470804 +! 3 2.240000 0.316126 0.484440 +! 3 2.220000 0.333795 0.497828 +! 3 2.200000 0.351159 0.510970 +! 3 2.180000 0.368215 0.523868 +! 3 2.160000 0.384961 0.536526 +! 3 2.140000 0.401398 0.548945 +! 3 2.120000 0.417525 0.561129 +! 3 2.100000 0.433343 0.573081 +! 3 2.080000 0.448854 0.584805 +! 3 2.060000 0.464059 0.596304 +! 3 2.040000 0.478962 0.607581 +! 3 2.020000 0.493564 0.618641 +! 3 2.000000 0.507869 0.629487 +! 3 1.980000 0.521881 0.640123 +! 3 1.960000 0.535603 0.650552 +! 3 1.940000 0.549039 0.660779 +! 3 1.920000 0.562195 0.670808 +! 3 1.900000 0.575074 0.680641 +! 3 1.880000 0.587680 0.690284 +! 3 1.860000 0.600020 0.699740 +! 3 1.840000 0.612098 0.709012 +! 3 1.820000 0.623918 0.718105 +! 3 1.800000 0.635487 0.727023 +! 3 1.780000 0.646809 0.735769 +! 3 1.760000 0.657889 0.744347 +! 3 1.740000 0.668733 0.752760 +! 3 1.720000 0.679346 0.761012 +! 3 1.700000 0.689733 0.769108 +! 3 1.680000 0.699899 0.777049 +! 3 1.660000 0.709849 0.784840 +! 3 1.640000 0.719588 0.792484 +! 3 1.620000 0.729122 0.799985 +! 3 1.600000 0.738454 0.807345 +! 3 1.580000 0.747591 0.814568 +! 3 1.560000 0.756536 0.821658 +! 3 1.540000 0.765295 0.828616 +! 3 1.520000 0.773872 0.835446 +! 3 1.500000 0.782272 0.842151 +! 3 1.480000 0.790498 0.848734 +! 3 1.460000 0.798556 0.855198 +! 3 1.440000 0.806450 0.861545 +! 3 1.420000 0.814183 0.867778 +! 3 1.400000 0.821760 0.873900 +! 3 1.380000 0.829184 0.879914 +! 3 1.360000 0.836460 0.885821 +! 3 1.340000 0.843592 0.891624 +! 3 1.320000 0.850582 0.897326 +! 3 1.300000 0.857435 0.902929 +! 3 1.280000 0.864154 0.908436 +! 3 1.260000 0.870742 0.913847 +! 3 1.240000 0.877203 0.919166 +! 3 1.220000 0.883541 0.924395 +! 3 1.200000 0.889757 0.929536 +! 3 1.180000 0.895855 0.934590 +! 3 1.160000 0.901838 0.939560 +! 3 1.140000 0.907710 0.944448 +! 3 1.120000 0.913472 0.949255 +! 3 1.100000 0.919127 0.953983 +! 3 1.080000 0.924679 0.958634 +! 3 1.060000 0.930129 0.963210 +! 3 1.040000 0.935481 0.967712 +! 3 1.020000 0.940736 0.972142 +! 3 1.000000 0.945897 0.976502 +! 3 0.980000 0.950966 0.980793 +! 3 0.960000 0.955946 0.985016 +! 3 0.940000 0.960839 0.989174 +! 3 0.920000 0.965646 0.993266 +! 3 0.900000 0.970371 0.997296 +! 3 0.880000 0.975014 1.001264 +! 3 0.860000 0.979578 1.005172 +! 3 0.840000 0.984064 1.009020 +! 3 0.820000 0.988475 1.012810 +! 3 0.800000 0.992812 1.016544 +! 3 0.780000 0.997077 1.020222 +! 3 0.760000 1.001272 1.023846 +! 3 0.740000 1.005398 1.027417 +! 3 0.720000 1.009457 1.030935 +! 3 0.700000 1.013450 1.034403 +! 3 0.680000 1.017379 1.037820 +! 3 0.660000 1.021246 1.041188 +! 3 0.640000 1.025051 1.044509 +! 3 0.620000 1.028796 1.047782 +! 3 0.600000 1.032483 1.051010 +! 3 0.580000 1.036113 1.054192 +! 3 0.560000 1.039686 1.057330 +! 3 0.540000 1.043205 1.060425 +! 3 0.520000 1.046671 1.063477 +! 3 0.500000 1.050084 1.066487 +! 3 0.480000 1.053446 1.069457 +! 3 0.460000 1.056757 1.072386 +! 3 0.440000 1.060020 1.075277 +! 3 0.420000 1.063235 1.078128 +! 3 0.400000 1.066402 1.080942 +! 3 0.380000 1.069524 1.083719 +! 3 0.360000 1.072601 1.086460 +! 3 0.340000 1.075633 1.089165 +! 3 0.320000 1.078623 1.091834 +! 3 0.300000 1.081570 1.094470 +! 3 0.280000 1.084476 1.097072 +! 3 0.260000 1.087341 1.099640 +! 3 0.240000 1.090166 1.102177 +! 3 0.220000 1.092953 1.104681 +! 3 0.200000 1.095701 1.107154 +! 3 0.180000 1.098412 1.109596 +! 3 0.160000 1.101086 1.112009 +! 3 0.140000 1.103725 1.114391 +! 3 0.120000 1.106328 1.116745 +! 3 0.100000 1.108897 1.119069 +! 3 0.080000 1.111431 1.121366 +! 3 0.060000 1.113933 1.123636 +! 3 0.040000 1.116402 1.125878 +! 3 0.020000 1.118839 1.128093 +! 3 0.000000 1.121245 1.130283 +! 3 -0.020000 1.123620 1.132446 +! 3 -0.040000 1.125965 1.134585 +! 3 -0.060000 1.128280 1.136699 +! 3 -0.080000 1.130566 1.138788 +! 3 -0.100000 1.132824 1.140853 +! 3 -0.120000 1.135054 1.142895 +! 3 -0.140000 1.137256 1.144913 +! 3 -0.160000 1.139432 1.146909 +! 3 -0.180000 1.141581 1.148882 +! 3 -0.200000 1.143703 1.150834 +! 3 -0.220000 1.145801 1.152763 +! 3 -0.240000 1.147873 1.154672 +! 3 -0.260000 1.149921 1.156559 +! 3 -0.280000 1.151944 1.158426 +! 3 -0.300000 1.153944 1.160272 +! 3 -0.320000 1.155920 1.162098 +! 3 -0.340000 1.157874 1.163905 +! 3 -0.360000 1.159805 1.165693 +! 3 -0.380000 1.161714 1.167461 +! 3 -0.400000 1.163601 1.169211 +! 3 -0.420000 1.165466 1.170942 +! 3 -0.440000 1.167311 1.172655 +! 3 -0.460000 1.169135 1.174350 +! 3 -0.480000 1.170938 1.176028 +! 3 -0.500000 1.172722 1.177689 +! 3 -0.520000 1.174485 1.179332 +! 3 -0.540000 1.176230 1.180958 +! 3 -0.560000 1.177956 1.182569 +! 3 -0.580000 1.179662 1.184162 +! 3 -0.600000 1.181351 1.185740 +! 3 -0.620000 1.183021 1.187302 +! 3 -0.640000 1.184674 1.188848 +! 3 -0.660000 1.186308 1.190380 +! 3 -0.680000 1.187926 1.191896 +! 3 -0.700000 1.189527 1.193397 +! 3 -0.720000 1.191111 1.194883 +! 3 -0.740000 1.192679 1.196355 +! 3 -0.760000 1.194230 1.197813 +! 3 -0.780000 1.195766 1.199257 +! 3 -0.800000 1.197285 1.200687 +! 3 -0.820000 1.198790 1.202103 +! 3 -0.840000 1.200279 1.203506 +! 3 -0.860000 1.201753 1.204896 +! 3 -0.880000 1.203213 1.206273 +! 3 -0.900000 1.204657 1.207636 +! 3 -0.920000 1.206088 1.208988 +! 3 -0.940000 1.207505 1.210326 +! 3 -0.960000 1.208907 1.211653 +! 3 -0.980000 1.210296 1.212967 +! 3 -1.000000 1.211672 1.214269 +! 3 -1.020000 1.213034 1.215559 +! 3 -1.040000 1.214383 1.216838 +! 3 -1.060000 1.215720 1.218105 +! 3 -1.080000 1.217043 1.219361 +! 3 -1.100000 1.218354 1.220606 +! 3 -1.120000 1.219653 1.221839 +! 3 -1.140000 1.220940 1.223062 +! 3 -1.160000 1.222214 1.224274 +! 3 -1.180000 1.223477 1.225476 +! 3 -1.200000 1.224728 1.226667 +! 3 -1.220000 1.225968 1.227847 +! 3 -1.240000 1.227197 1.229018 +! 3 -1.260000 1.228414 1.230178 +! 3 -1.280000 1.229620 1.231329 +! 3 -1.300000 1.230815 1.232469 +! 3 -1.320000 1.232000 1.233600 +! 3 -1.340000 1.233174 1.234722 +! 3 -1.360000 1.234338 1.235834 +! 3 -1.380000 1.235491 1.236936 +! 3 -1.400000 1.236635 1.238030 +! 3 -1.420000 1.237768 1.239114 +! 3 -1.440000 1.238891 1.240190 +! 3 -1.460000 1.240005 1.241257 +! 3 -1.480000 1.241109 1.242315 +! 3 -1.500000 1.242204 1.243364 +! 3 -1.520000 1.243289 1.244405 +! 3 -1.540000 1.244365 1.245437 +! 3 -1.560000 1.245432 1.246461 +! 3 -1.580000 1.246490 1.247477 +! 3 -1.600000 1.247539 1.248485 +! 3 -1.620000 1.248579 1.249485 +! 3 -1.640000 1.249611 1.250477 +! 3 -1.660000 1.250634 1.251461 +! 3 -1.680000 1.251648 1.252437 +! 3 -1.700000 1.252655 1.253406 +! 3 -1.720000 1.253653 1.254367 +! 3 -1.740000 1.254643 1.255321 +! 3 -1.760000 1.255625 1.256268 +! 3 -1.780000 1.256599 1.257207 +! 3 -1.800000 1.257565 1.258139 +! 3 -1.820000 1.258524 1.259064 +! 3 -1.840000 1.259475 1.259981 +! 3 -1.860000 1.260418 1.260892 +! 3 -1.880000 1.261354 1.261796 +! 3 -1.900000 1.262283 1.262694 +! 3 -1.920000 1.263204 1.263584 +! 3 -1.940000 1.264119 1.264468 +! 3 -1.960000 1.265026 1.265346 +! 3 -1.980000 1.265926 1.266217 +! 3 -2.000000 1.266819 1.267081 +! 3 -2.020000 1.267706 1.267940 +! 3 -2.040000 1.268585 1.268792 +! 3 -2.060000 1.269458 1.269637 +! 3 -2.080000 1.270325 1.270477 +! 3 -2.100000 1.271184 1.271311 +! 3 -2.120000 1.272038 1.272139 +! 3 -2.140000 1.272885 1.272960 +! 3 -2.160000 1.273726 1.273776 +! 3 -2.180000 1.274560 1.274586 +! 3 -2.200000 1.275389 1.275391 +! 3 -2.220000 1.276211 1.276189 +! 3 -2.240000 1.277027 1.276983 +! 3 -2.260000 1.277838 1.277770 +! 3 -2.280000 1.278642 1.278552 +! 3 -2.300000 1.279441 1.279329 +! 3 -2.320000 1.280234 1.280100 +! 3 -2.340000 1.281021 1.280866 +! 3 -2.360000 1.281803 1.281627 +! 3 -2.380000 1.282579 1.282383 +! 3 -2.400000 1.283350 1.283133 +! 3 -2.420000 1.284115 1.283879 +! 3 -2.440000 1.284875 1.284619 +! 3 -2.460000 1.285629 1.285355 +! 3 -2.480000 1.286378 1.286085 +! 3 -2.500000 1.287122 1.286811 +! 3 -2.520000 1.287861 1.287531 +! 3 -2.540000 1.288595 1.288247 +! 3 -2.560000 1.289324 1.288959 +! 3 -2.580000 1.290048 1.289665 +! 3 -2.600000 1.290767 1.290367 +! 3 -2.620000 1.291481 1.291064 +! 3 -2.640000 1.292190 1.291757 +! 3 -2.660000 1.292894 1.292446 +! 3 -2.680000 1.293594 1.293129 +! 3 -2.700000 1.294289 1.293809 +! 3 -2.720000 1.294979 1.294484 +! 3 -2.740000 1.295665 1.295155 +! 3 -2.760000 1.296347 1.295821 +! 3 -2.780000 1.297023 1.296484 +! 3 -2.800000 1.297696 1.297142 +! 3 -2.820000 1.298364 1.297796 +! 3 -2.840000 1.299027 1.298446 +! 3 -2.860000 1.299687 1.299091 +! 3 -2.880000 1.300342 1.299733 +! 3 -2.900000 1.300993 1.300371 +! 3 -2.920000 1.301639 1.301005 +! 3 -2.940000 1.302282 1.301635 +! 3 -2.960000 1.302921 1.302261 +! 3 -2.980000 1.303555 1.302883 +! 3 -3.000000 1.304185 1.303501 +! 3 -3.020000 1.304812 1.304116 +! 3 -3.040000 1.305434 1.304727 +! 3 -3.060000 1.306053 1.305334 +! 3 -3.080000 1.306668 1.305938 +! 3 -3.100000 1.307279 1.306538 +! 3 -3.120000 1.307886 1.307134 +! 3 -3.140000 1.308490 1.307727 +! 3 -3.160000 1.309089 1.308316 +! 3 -3.180000 1.309685 1.308902 +! 3 -3.200000 1.310278 1.309484 +! 3 -3.220000 1.310867 1.310063 +! 3 -3.240000 1.311452 1.310639 +! 3 -3.260000 1.312034 1.311211 +! 3 -3.280000 1.312612 1.311780 +! 3 -3.300000 1.313187 1.312345 +! 3 -3.320000 1.313758 1.312907 +! 3 -3.340000 1.314326 1.313466 +! 3 -3.360000 1.314891 1.314022 +! 3 -3.380000 1.315452 1.314575 +! 3 -3.400000 1.316010 1.315124 +! 3 -3.420000 1.316565 1.315670 +! 3 -3.440000 1.317116 1.316213 +! 3 -3.460000 1.317664 1.316754 +! 3 -3.480000 1.318210 1.317291 +! 3 -3.500000 1.318751 1.317825 +! 3 -3.520000 1.319290 1.318356 +! 3 -3.540000 1.319826 1.318884 +! 3 -3.560000 1.320358 1.319409 +! 3 -3.580000 1.320888 1.319931 +! 3 -3.600000 1.321414 1.320450 +! 3 -3.620000 1.321938 1.320967 +! 3 -3.640000 1.322459 1.321480 +! 3 -3.660000 1.322976 1.321991 +! 3 -3.680000 1.323491 1.322499 +! 3 -3.700000 1.324003 1.323005 +! 3 -3.720000 1.324512 1.323507 +! 3 -3.740000 1.325018 1.324007 +! 3 -3.760000 1.325521 1.324504 +! 3 -3.780000 1.326022 1.324998 +! 3 -3.800000 1.326520 1.325490 +! 3 -3.820000 1.327015 1.325979 +! 3 -3.840000 1.327507 1.326466 +! 3 -3.860000 1.327997 1.326950 +! 3 -3.880000 1.328484 1.327431 +! 3 -3.900000 1.328968 1.327910 +! 3 -3.920000 1.329450 1.328386 +! 3 -3.940000 1.329929 1.328860 +! 3 -3.960000 1.330405 1.329331 +! 3 -3.980000 1.330880 1.329800 +! 3 -4.000000 1.331351 1.330266 +! 3 -4.020000 1.331820 1.330730 +! 3 -4.040000 1.332286 1.331192 +! 3 -4.060000 1.332750 1.331651 +! 3 -4.080000 1.333212 1.332108 +! 3 -4.100000 1.333671 1.332562 +! 3 -4.120000 1.334128 1.333015 +! 3 -4.140000 1.334582 1.333464 +! 3 -4.160000 1.335034 1.333912 +! 3 -4.180000 1.335484 1.334357 +! 3 -4.200000 1.335931 1.334800 +! 3 -4.220000 1.336376 1.335241 +! 3 -4.240000 1.336819 1.335680 +! 3 -4.260000 1.337259 1.336116 +! 3 -4.280000 1.337697 1.336550 +! 3 -4.300000 1.338133 1.336983 +! 3 -4.320000 1.338567 1.337412 +! 3 -4.340000 1.338998 1.337840 +! 3 -4.360000 1.339428 1.338266 +! 3 -4.380000 1.339855 1.338689 +! 3 -4.400000 1.340280 1.339111 +! 3 -4.420000 1.340703 1.339530 +! 3 -4.440000 1.341124 1.339948 +! 3 -4.460000 1.341542 1.340363 +! 3 -4.480000 1.341959 1.340776 +! 3 -4.500000 1.342373 1.341188 +! 3 -4.520000 1.342786 1.341597 +! 3 -4.540000 1.343196 1.342004 +! 3 -4.560000 1.343605 1.342410 +! 3 -4.580000 1.344011 1.342813 +! 3 -4.600000 1.344416 1.343215 +! 3 -4.620000 1.344818 1.343615 +! 3 -4.640000 1.345219 1.344012 +! 3 -4.660000 1.345617 1.344408 +! 3 -4.680000 1.346014 1.344802 +! 3 -4.700000 1.346409 1.345194 +! 3 -4.720000 1.346802 1.345584 +! 3 -4.740000 1.347193 1.345973 +! 3 -4.760000 1.347582 1.346360 +! 3 -4.780000 1.347969 1.346744 +! 3 -4.800000 1.348354 1.347127 +! 3 -4.820000 1.348738 1.347509 +! 3 -4.840000 1.349120 1.347888 +! 3 -4.860000 1.349500 1.348266 +! 3 -4.880000 1.349878 1.348642 +! 3 -4.900000 1.350254 1.349016 +! 3 -4.920000 1.350629 1.349389 +! 3 -4.940000 1.351002 1.349760 +! 3 -4.960000 1.351373 1.350129 +! 3 -4.980000 1.351743 1.350497 +GNUSCRIPT_m +set term wxt font "arial,14" size 800,600 + +set termoption dash + +set termoption noenhanced + +set style line 1 lw 3 lt 1 lc rgb "#D00000" + +set style line 2 lw 3 lt 1 lc rgb "#00B000" + +set style line 3 lw 3 lt 1 lc rgb "#2020FF" + +set style line 4 lw 3 lt 1 lc rgb "#FF8000" + +set style line 5 lw 3 lt 1 lc rgb "#E000E0" + +set style line 6 lw 3 lt 1 lc rgb "#303030" + +set style line 7 lw 3 lt 2 lc rgb "#D00000" + +set style line 8 lw 3 lt 2 lc rgb "#00B000" + +set style line 9 lw 3 lt 2 lc rgb "#2020FF" + +set style line 10 lw 3 lt 2 lc rgb "#FF8000" + +set style line 11 lw 3 lt 2 lc rgb "#E000E0" + +set style line 12 lw 3 lt 2 lc rgb "#303030" + +set title "t2 Unscreened Semi-Local Guides" + +set xlabel "Radius (a_B)" + +plot " +# +#ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) +#scalar-relativistic version 3.2.3 08/16/2016 +# +#While it is not required under the terms of the GNU GPL, it is +#suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) +#in any publication utilizing these pseudopotentials. +# +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile +Lu 71.00 10 4 4 psp8 +# +# n l f +1 0 2.00 +2 0 2.00 +2 1 6.00 +3 0 2.00 +3 1 6.00 +3 2 10.00 +4 0 2.00 +4 1 6.00 +4 2 10.00 +4 3 14.00 +5 0 2.00 +5 1 6.00 +5 2 1.00 +6 0 2.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax +3 +# +# l, rc, ep, ncon, nbas, qcut +0 1.55000 -2.24389 4 8 7.50000 +1 1.60000 -1.16354 4 8 8.00000 +2 1.60000 -0.06429 4 8 8.50000 +3 2.65000 0.50000 4 8 4.50000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 +4 5 1.50000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl +0 2 2.07266 +1 2 1.11413 +2 2 1.00000 +3 2 2.00000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact +3 4.00000 1.40000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh +-12.00 12.00 0.02 +# +# OUTPUT GRID +# rlmax, drl +6.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf +0 +# nvcnf +# n l f + diff --git a/abipy/data/oncv_data/O_fr_v4.out b/abipy/data/oncv_data/O_fr_v4.out new file mode 100644 index 000000000..eccb62a20 --- /dev/null +++ b/abipy/data/oncv_data/O_fr_v4.out @@ -0,0 +1,10721 @@ +ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) +relativistic version 4.0.1 03/01/2019 + + +While it is not required under the terms of the GNU GPL, it is +suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) +in any publication utilizing these pseudopotentials. + + +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + O 8.00 1 2 3 both +# +# n l f energy (Ha) + 1 0 2.00 -1.8774293D+01 + 2 0 2.00 -8.7288619D-01 + 2 1 4.00 -3.3756635D-01 -3.3891944D-01 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 1 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.60000 0.00000 4 7 8.00000 + 1 1.60000 0.00000 4 7 8.00000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.40000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 1.50000 + 1 2 1.00000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact + 0 0.00000 0.00000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -2.00 2.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 4.0000 0.0100 +# +# TEST CONFIGURATIONS +# ncnf + 3 +# nvcnf +# n l f + 2 + 2 0 2.00 + 2 1 3.00 +# + 2 + 2 0 1.00 + 2 1 4.00 +# + 2 + 2 0 1.00 + 2 1 3.00 +# + + +Reference configufation results + iterations 24 + all-electron total energy (Ha) -7.45249785D+01 + +Begin loop to construct optimized pseudo wave functions +and semi-local pseudopoentials for all angular momenta + + Wellstate for l = 0 n = 3 kap= -1 + eigenvalue = 0.6271 + asymptotic potential = 1.1271 + half-point radius = 2.9347 + +Calculating optimized projector # 1 + + for l= 0 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.37997887 0.37997887 3.05D-13 + -0.59881695 -0.59881695 7.22D-15 + 0.91086182 0.91086182 -5.34D-14 + -1.16339951 -1.16339951 -9.35D-13 + + Fraction of norm inside rc 0.827366 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut= 32.01 Ha + q_infinity defining residual KE= 20.00 (E_inf= 200.0 Ha) + Residual kinetic energy error= 1.03D-07 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 0.74973860 r-space= 0.74973862 ratio= 0.99999998 + Potential consistency test at r_c + "vpsp"= -0.65805942 vae= -0.65807745 difference= -1.80D-05 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 5.01 + 0.00100 0.02721 14.64 + 0.00010 0.00272 21.05 + 0.00001 0.00027 25.33 + +Calculating optimized projector # 2 + + for l= 0 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.17386179 0.17386179 8.01D-14 + 0.49914954 0.49914954 5.00D-16 + -1.07009000 -1.07009000 1.18D-13 + 0.76127247 0.76127247 1.37D-12 + -0.25125032 -0.25125032 -1.11D-16 + + Fraction of norm inside rc 0.134373 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut= 32.01 Ha + q_infinity defining residual KE= 21.68 (E_inf= 235.0 Ha) + Residual kinetic energy error= 4.45D-07 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 0.73513148 r-space= 0.73513154 ratio= 0.99999992 + Potential consistency test at r_c + "vpsp"= -0.65815651 vae= -0.65807745 difference= 7.91D-05 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 4.55 + 0.00100 0.02721 15.25 + 0.00010 0.00272 22.10 + 0.00001 0.00027 26.79 + + Wellstate for l = 1 n = 3 kap= -2 + eigenvalue = 0.6624 + asymptotic potential = 1.1624 + half-point radius = 3.4007 + +Calculating optimized projector # 1 + + for l= 1 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.37801667 0.37801667 -2.10D-13 + -0.47561943 -0.47561943 1.88D-14 + 0.64609399 0.64609399 4.15D-14 + -0.91674712 -0.91674712 -5.69D-13 + + Fraction of norm inside rc 0.744737 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut= 32.01 Ha + q_infinity defining residual KE= 20.00 (E_inf= 200.0 Ha) + Residual kinetic energy error= 1.32D-05 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 2.12381072 r-space= 2.12381073 ratio= 0.99999999 + Potential consistency test at r_c + "vpsp"= -0.65805718 vae= -0.65807745 difference= -2.03D-05 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 19.49 + 0.00100 0.02721 24.68 + 0.00010 0.00272 28.68 + 0.00001 0.00027 35.11 + +Calculating optimized projector # 2 + + for l= 1 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.10387980 0.10387980 -7.88D-14 + 0.45554605 0.45554605 -9.99D-15 + -0.76214477 -0.76214477 -6.61D-14 + 0.54815368 0.54815368 -1.73D-12 + -0.28431153 -0.28431153 -1.11D-16 + + Fraction of norm inside rc 0.154129 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut= 32.01 Ha + q_infinity defining residual KE= 23.52 (E_inf= 276.6 Ha) + Residual kinetic energy error= 3.00D-05 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 1.27152695 r-space= 1.27152695 ratio= 1.00000000 + Potential consistency test at r_c + "vpsp"= -0.65816985 vae= -0.65807745 difference= 9.24D-05 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 19.17 + 0.00100 0.02721 25.12 + 0.00010 0.00272 29.75 + 0.00001 0.00027 41.34 + + Wellstate for l = 1 n = 3 kap= 1 + eigenvalue = 0.6611 + +Calculating optimized projector # 1 + + for l= 1 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.37770508 0.37770508 -3.27D-13 + -0.47593335 -0.47593335 1.54D-14 + 0.64744769 0.64744769 6.11D-15 + -0.92021422 -0.92021422 -3.40D-14 + + Fraction of norm inside rc 0.745749 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut= 32.01 Ha + q_infinity defining residual KE= 20.00 (E_inf= 200.0 Ha) + Residual kinetic energy error= 1.33D-05 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 2.12927964 r-space= 2.12927965 ratio= 0.99999999 + Potential consistency test at r_c + "vpsp"= -0.65808002 vae= -0.65807745 difference= 2.57D-06 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 19.50 + 0.00100 0.02721 24.69 + 0.00010 0.00272 28.69 + 0.00001 0.00027 35.19 + +Calculating optimized projector # 2 + + for l= 1 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.10456371 0.10456371 -2.46D-14 + 0.45493673 0.45493673 -1.30D-14 + -0.76254158 -0.76254158 -1.09D-13 + 0.55041548 0.55041548 -1.68D-12 + -0.28407284 -0.28407284 0.00D+00 + + Fraction of norm inside rc 0.153914 + Optimizing pswf for qcut= 8.00 a_B^-1, ecut= 32.01 Ha + q_infinity defining residual KE= 23.52 (E_inf= 276.6 Ha) + Residual kinetic energy error= 3.02D-05 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 1.27178802 r-space= 1.27178802 ratio= 1.00000000 + Potential consistency test at r_c + "vpsp"= -0.65819227 vae= -0.65807745 difference= 1.15D-04 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 19.19 + 0.00100 0.02721 25.13 + 0.00010 0.00272 29.76 + 0.00001 0.00027 41.40 + +Construct Vanderbilt / Kleinmman-Bylander projectors + +B matrix Hermiticity error, ll= 0 kap= -1 + 1 2 8.5343D-05 + + Orthonormal projector coefficients 2.1485E+00 -2.4924E-01 + +B matrix Hermiticity error, ll= 1 kap= -2 + 1 2 4.8889D-05 + + Orthonormal projector coefficients -4.5146E+00 -1.1987E+00 + +B matrix Hermiticity error, ll= 1 kap= 1 + 1 2 4.8965D-05 + + Orthonormal projector coefficients -4.5224E+00 -1.2016E+00 + + Orthonormal scalar projector coefficients, l = 1 + -4.5172E+00 -1.1996E+00 -5.3847E-09 -2.1946E-09 + + Orthonormal spin-orbit projector coefficients, l = 1 + 5.2690E-03 1.8535E-03 -9.6354E-06 -2.7220E-06 + +Pseudoatom total energy -15.616041 + + +Diagnostic tests using Vanderbilt-Kleinman-Bylander pseudopotentials + relativistic with J = L +/- 1/2 projectors + + l kap rcore rmatch e in delta e norm test slope test + + 0 -1 1.6019660 1.6506052 -0.8728862 -0.0000016 1.0000607 1.0000627 + 0 -1 1.6019660 1.6506052 0.6271138 0.0000019 1.0000797 1.0000797 + + 1 -2 1.6019660 1.6506052 -0.3375664 -0.0000028 1.0000369 1.0000489 + 1 1 1.6019660 1.6506052 -0.3389194 -0.0000006 1.0000394 1.0000388 + 1 -2 1.6019660 1.6506052 0.6624336 0.0000014 1.0000931 1.0000931 + 1 1 1.6019660 1.6506052 0.6618574 0.0000016 1.0000927 1.0000927 + +Diagnostic tests using Vanderbilt-Kleinman-Bylander pseudopotentials + relativistic with scalar and spin-orbit non-local projectors + + l kap rcore rmatch e in delta e norm test slope test + + 0 -1 1.6019660 1.6506052 -0.8728862 -0.0000016 1.0000607 1.0000627 + 0 -1 1.6019660 1.6506052 0.6271138 0.0000019 1.0000797 1.0000797 + + 1 -2 1.6019660 1.6506052 -0.3375664 -0.0000028 1.0000370 1.0000489 + 1 1 1.6019660 1.6506052 -0.3389194 -0.0000007 1.0000393 1.0000387 + 1 -2 1.6019660 1.6506052 0.6624336 0.0000014 1.0000931 1.0000931 + 1 1 1.6019660 1.6506052 0.6618574 0.0000016 1.0000928 1.0000928 + +Ghost test for J = L + 1/2 + + Testing for bound ghosts + n l E NL Schr. Eq E Basis Diag. E Cutoff + + 1 0 -0.872888 -0.872666 73.45 + + 2 1 -0.337569 -0.335369 86.54 + + Testing for highly-localized positive-energy ghosts + l /rc E Basis Diag. E Cutoff + +Ghost test for J = L - 1/2 + + Testing for bound ghosts + n l E NL Schr. Eq E Basis Diag. E Cutoff + + 1 0 -0.872888 -0.872666 73.45 + + 2 1 -0.338920 -0.336743 86.54 + + Testing for highly-localized positive-energy ghosts + l /rc E Basis Diag. E Cutoff + +Test configuration 0 + + n l kap f eae eps diff + 1 0 -1 2.0000 -18.77429269 + 2 0 -1 2.0000 -0.87288619 -0.87288774 -1.55E-06 + 2 1 -2 2.6667 -0.33756635 -0.33756918 -2.83E-06 + 2 1 1 1.3333 -0.33891944 -0.33892009 -6.41E-07 + + Total energies and differences + AE_ref= -7.45249785E+01 AE_tst= -7.45249785E+01 dif= 0.00E+00 + PS_ref= -1.56160409E+01 PS_tst= -1.56160409E+01 dif= 0.00E+00 + PSP excitation error= 0.00E+00 + +Test configuration 1 + + n l kap f eae eps diff + 1 0 -1 2.0000 -19.46683108 + 2 0 -1 2.0000 -1.44776011 -1.44837682 -6.17E-04 + 2 1 -2 2.0000 -0.90298571 -0.89804881 4.94E-03 + 2 1 1 1.0000 -0.90461616 -0.89964572 4.97E-03 + + Total energies and differences + AE_ref= -7.45249785E+01 AE_tst= -7.39155454E+01 dif= 6.09E-01 + PS_ref= -1.56160409E+01 PS_tst= -1.50084086E+01 dif= 6.08E-01 + PSP excitation error= 1.80E-03 + +Test configuration 2 + + n l kap f eae eps diff + 1 0 -1 2.0000 -19.46649286 + 2 0 -1 1.0000 -1.45294662 -1.45912509 -6.18E-03 + 2 1 -2 2.6667 -0.90603432 -0.90906783 -3.03E-03 + 2 1 1 1.3333 -0.90764848 -0.91067657 -3.03E-03 + + Total energies and differences + AE_ref= -7.45249785E+01 AE_tst= -7.33702441E+01 dif= 1.15E+00 + PS_ref= -1.56160409E+01 PS_tst= -1.44587255E+01 dif= 1.16E+00 + PSP excitation error= -2.58E-03 + +Test configuration 3 + + n l kap f eae eps diff + 1 0 -1 2.0000 -20.32439787 + 2 0 -1 1.0000 -2.12313180 -2.13254286 -9.41E-03 + 2 1 -2 2.0000 -1.57992405 -1.57512052 4.80E-03 + 2 1 1 1.0000 -1.58184079 -1.57697558 4.87E-03 + + Total energies and differences + AE_ref= -7.45249785E+01 AE_tst= -7.21359967E+01 dif= 2.39E+00 + PS_ref= -1.56160409E+01 PS_tst= -1.32243802E+01 dif= 2.39E+00 + PSP excitation error= -2.68E-03 + +DATA FOR PLOTTING + + radii, charge, pseudopotentials (ll=0, 1, lmax) + +!p 0.0099763 4.7208152 -7.4396936 -14.6413406 +!p 0.0100361 4.7208879 -7.4396931 -14.6413260 +!p 0.0100963 4.7209615 -7.4396925 -14.6413112 +!p 0.0101569 4.7210359 -7.4396919 -14.6412963 +!p 0.0102179 4.7211113 -7.4396913 -14.6412812 +!p 0.0102792 4.7211875 -7.4396907 -14.6412659 +!p 0.0103408 4.7212647 -7.4396900 -14.6412504 +!p 0.0104029 4.7213428 -7.4396894 -14.6412348 +!p 0.0104653 4.7214219 -7.4396888 -14.6412189 +!p 0.0105281 4.7215018 -7.4396881 -14.6412029 +!p 0.0105913 4.7215828 -7.4396875 -14.6411867 +!p 0.0106548 4.7216647 -7.4396868 -14.6411702 +!p 0.0107187 4.7217476 -7.4396862 -14.6411536 +!p 0.0107830 4.7218316 -7.4396855 -14.6411368 +!p 0.0108477 4.7219165 -7.4396848 -14.6411198 +!p 0.0109128 4.7220024 -7.4396841 -14.6411025 +!p 0.0109783 4.7220894 -7.4396834 -14.6410851 +!p 0.0110442 4.7221774 -7.4396827 -14.6410674 +!p 0.0111104 4.7222665 -7.4396820 -14.6410496 +!p 0.0111771 4.7223566 -7.4396813 -14.6410315 +!p 0.0112442 4.7224479 -7.4396806 -14.6410132 +!p 0.0113116 4.7225402 -7.4396798 -14.6409947 +!p 0.0113795 4.7226336 -7.4396791 -14.6409759 +!p 0.0114478 4.7227282 -7.4396783 -14.6409570 +!p 0.0115165 4.7228239 -7.4396776 -14.6409378 +!p 0.0115856 4.7229208 -7.4396768 -14.6409184 +!p 0.0116551 4.7230188 -7.4396760 -14.6408987 +!p 0.0117250 4.7231180 -7.4396752 -14.6408788 +!p 0.0117954 4.7232183 -7.4396744 -14.6408587 +!p 0.0118661 4.7233199 -7.4396736 -14.6408383 +!p 0.0119373 4.7234228 -7.4396728 -14.6408177 +!p 0.0120090 4.7235268 -7.4396719 -14.6407968 +!p 0.0120810 4.7236321 -7.4396711 -14.6407757 +!p 0.0121535 4.7237387 -7.4396703 -14.6407543 +!p 0.0122264 4.7238465 -7.4396694 -14.6407327 +!p 0.0122998 4.7239557 -7.4396685 -14.6407108 +!p 0.0123736 4.7240661 -7.4396676 -14.6406887 +!p 0.0124478 4.7241779 -7.4396667 -14.6406662 +!p 0.0125225 4.7242911 -7.4396658 -14.6406436 +!p 0.0125976 4.7244055 -7.4396649 -14.6406206 +!p 0.0126732 4.7245214 -7.4396640 -14.6405974 +!p 0.0127493 4.7246387 -7.4396631 -14.6405738 +!p 0.0128258 4.7247573 -7.4396621 -14.6405500 +!p 0.0129027 4.7248774 -7.4396612 -14.6405260 +!p 0.0129801 4.7249990 -7.4396602 -14.6405016 +!p 0.0130580 4.7251220 -7.4396592 -14.6404769 +!p 0.0131364 4.7252465 -7.4396582 -14.6404519 +!p 0.0132152 4.7253724 -7.4396572 -14.6404267 +!p 0.0132945 4.7254999 -7.4396562 -14.6404011 +!p 0.0133742 4.7256290 -7.4396552 -14.6403752 +!p 0.0134545 4.7257595 -7.4396541 -14.6403490 +!p 0.0135352 4.7258917 -7.4396531 -14.6403225 +!p 0.0136164 4.7260254 -7.4396520 -14.6402957 +!p 0.0136981 4.7261607 -7.4396509 -14.6402686 +!p 0.0137803 4.7262977 -7.4396498 -14.6402411 +!p 0.0138630 4.7264363 -7.4396487 -14.6402133 +!p 0.0139462 4.7265766 -7.4396476 -14.6401852 +!p 0.0140298 4.7267186 -7.4396465 -14.6401567 +!p 0.0141140 4.7268622 -7.4396453 -14.6401279 +!p 0.0141987 4.7270076 -7.4396442 -14.6400987 +!p 0.0142839 4.7271548 -7.4396430 -14.6400692 +!p 0.0143696 4.7273037 -7.4396418 -14.6400393 +!p 0.0144558 4.7274544 -7.4396406 -14.6400091 +!p 0.0145425 4.7276069 -7.4396394 -14.6399785 +!p 0.0146298 4.7277612 -7.4396382 -14.6399475 +!p 0.0147176 4.7279174 -7.4396369 -14.6399162 +!p 0.0148059 4.7280755 -7.4396357 -14.6398845 +!p 0.0148947 4.7282355 -7.4396344 -14.6398524 +!p 0.0149841 4.7283974 -7.4396331 -14.6398199 +!p 0.0150740 4.7285612 -7.4396318 -14.6397871 +!p 0.0151644 4.7287271 -7.4396305 -14.6397538 +!p 0.0152554 4.7288949 -7.4396292 -14.6397201 +!p 0.0153470 4.7290647 -7.4396278 -14.6396861 +!p 0.0154390 4.7292365 -7.4396264 -14.6396516 +!p 0.0155317 4.7294105 -7.4396251 -14.6396167 +!p 0.0156249 4.7295865 -7.4396237 -14.6395814 +!p 0.0157186 4.7297646 -7.4396223 -14.6395456 +!p 0.0158129 4.7299449 -7.4396208 -14.6395095 +!p 0.0159078 4.7301273 -7.4396194 -14.6394729 +!p 0.0160032 4.7303120 -7.4396179 -14.6394358 +!p 0.0160993 4.7304988 -7.4396164 -14.6393984 +!p 0.0161959 4.7306879 -7.4396149 -14.6393604 +!p 0.0162930 4.7308793 -7.4396134 -14.6393220 +!p 0.0163908 4.7310729 -7.4396119 -14.6392832 +!p 0.0164891 4.7312689 -7.4396103 -14.6392438 +!p 0.0165881 4.7314672 -7.4396087 -14.6392041 +!p 0.0166876 4.7316680 -7.4396071 -14.6391638 +!p 0.0167877 4.7318711 -7.4396055 -14.6391230 +!p 0.0168885 4.7320767 -7.4396039 -14.6390818 +!p 0.0169898 4.7322847 -7.4396023 -14.6390400 +!p 0.0170917 4.7324953 -7.4396006 -14.6389978 +!p 0.0171943 4.7327083 -7.4395989 -14.6389550 +!p 0.0172974 4.7329240 -7.4395972 -14.6389118 +!p 0.0174012 4.7331422 -7.4395955 -14.6388680 +!p 0.0175056 4.7333630 -7.4395937 -14.6388237 +!p 0.0176107 4.7335865 -7.4395919 -14.6387788 +!p 0.0177163 4.7338127 -7.4395902 -14.6387334 +!p 0.0178226 4.7340416 -7.4395883 -14.6386875 +!p 0.0179296 4.7342732 -7.4395865 -14.6386410 +!p 0.0180371 4.7345076 -7.4395847 -14.6385940 +!p 0.0181454 4.7347449 -7.4395828 -14.6385464 +!p 0.0182542 4.7349850 -7.4395809 -14.6384982 +!p 0.0183638 4.7352279 -7.4395790 -14.6384494 +!p 0.0184739 4.7354738 -7.4395770 -14.6384001 +!p 0.0185848 4.7357226 -7.4395751 -14.6383501 +!p 0.0186963 4.7359745 -7.4395731 -14.6382996 +!p 0.0188085 4.7362293 -7.4395711 -14.6382485 +!p 0.0189213 4.7364872 -7.4395690 -14.6381967 +!p 0.0190349 4.7367482 -7.4395670 -14.6381443 +!p 0.0191491 4.7370123 -7.4395649 -14.6380913 +!p 0.0192640 4.7372796 -7.4395628 -14.6380377 +!p 0.0193795 4.7375502 -7.4395606 -14.6379834 +!p 0.0194958 4.7378239 -7.4395585 -14.6379284 +!p 0.0196128 4.7381010 -7.4395563 -14.6378728 +!p 0.0197305 4.7383813 -7.4395541 -14.6378165 +!p 0.0198489 4.7386651 -7.4395519 -14.6377596 +!p 0.0199679 4.7389522 -7.4395496 -14.6377019 +!p 0.0200878 4.7392428 -7.4395473 -14.6376436 +!p 0.0202083 4.7395369 -7.4395450 -14.6375846 +!p 0.0203295 4.7398345 -7.4395426 -14.6375248 +!p 0.0204515 4.7401356 -7.4395403 -14.6374644 +!p 0.0205742 4.7404404 -7.4395379 -14.6374032 +!p 0.0206977 4.7407489 -7.4395355 -14.6373413 +!p 0.0208218 4.7410610 -7.4395330 -14.6372786 +!p 0.0209468 4.7413769 -7.4395305 -14.6372152 +!p 0.0210725 4.7416966 -7.4395280 -14.6371510 +!p 0.0211989 4.7420201 -7.4395255 -14.6370861 +!p 0.0213261 4.7423475 -7.4395229 -14.6370203 +!p 0.0214540 4.7426788 -7.4395203 -14.6369538 +!p 0.0215828 4.7430141 -7.4395177 -14.6368865 +!p 0.0217123 4.7433534 -7.4395150 -14.6368184 +!p 0.0218425 4.7436968 -7.4395123 -14.6367494 +!p 0.0219736 4.7440443 -7.4395096 -14.6366796 +!p 0.0221054 4.7443960 -7.4395068 -14.6366090 +!p 0.0222381 4.7447518 -7.4395040 -14.6365376 +!p 0.0223715 4.7451120 -7.4395012 -14.6364652 +!p 0.0225057 4.7454765 -7.4394984 -14.6363921 +!p 0.0226408 4.7458453 -7.4394955 -14.6363180 +!p 0.0227766 4.7462186 -7.4394926 -14.6362430 +!p 0.0229133 4.7465963 -7.4394896 -14.6361672 +!p 0.0230507 4.7469786 -7.4394866 -14.6360904 +!p 0.0231890 4.7473654 -7.4394836 -14.6360127 +!p 0.0233282 4.7477569 -7.4394805 -14.6359341 +!p 0.0234682 4.7481531 -7.4394775 -14.6358545 +!p 0.0236090 4.7485541 -7.4394743 -14.6357740 +!p 0.0237506 4.7489598 -7.4394712 -14.6356925 +!p 0.0238931 4.7493704 -7.4394680 -14.6356100 +!p 0.0240365 4.7497859 -7.4394647 -14.6355266 +!p 0.0241807 4.7502064 -7.4394614 -14.6354421 +!p 0.0243258 4.7506320 -7.4394581 -14.6353566 +!p 0.0244717 4.7510626 -7.4394548 -14.6352701 +!p 0.0246186 4.7514984 -7.4394514 -14.6351826 +!p 0.0247663 4.7519394 -7.4394479 -14.6350940 +!p 0.0249149 4.7523857 -7.4394445 -14.6350043 +!p 0.0250644 4.7528374 -7.4394410 -14.6349136 +!p 0.0252148 4.7532944 -7.4394374 -14.6348218 +!p 0.0253660 4.7537570 -7.4394338 -14.6347288 +!p 0.0255182 4.7542250 -7.4394302 -14.6346348 +!p 0.0256713 4.7546987 -7.4394265 -14.6345396 +!p 0.0258254 4.7551781 -7.4394228 -14.6344433 +!p 0.0259803 4.7556632 -7.4394190 -14.6343458 +!p 0.0261362 4.7561541 -7.4394152 -14.6342472 +!p 0.0262930 4.7566509 -7.4394114 -14.6341474 +!p 0.0264508 4.7571536 -7.4394075 -14.6340463 +!p 0.0266095 4.7576624 -7.4394036 -14.6339441 +!p 0.0267691 4.7581772 -7.4393996 -14.6338406 +!p 0.0269298 4.7586982 -7.4393955 -14.6337359 +!p 0.0270913 4.7592255 -7.4393915 -14.6336300 +!p 0.0272539 4.7597590 -7.4393874 -14.6335227 +!p 0.0274174 4.7602990 -7.4393832 -14.6334142 +!p 0.0275819 4.7608454 -7.4393790 -14.6333044 +!p 0.0277474 4.7613983 -7.4393747 -14.6331932 +!p 0.0279139 4.7619579 -7.4393704 -14.6330807 +!p 0.0280814 4.7625241 -7.4393660 -14.6329669 +!p 0.0282499 4.7630972 -7.4393616 -14.6328517 +!p 0.0284194 4.7636770 -7.4393572 -14.6327352 +!p 0.0285899 4.7642639 -7.4393527 -14.6326172 +!p 0.0287614 4.7648577 -7.4393481 -14.6324978 +!p 0.0289340 4.7654587 -7.4393435 -14.6323770 +!p 0.0291076 4.7660668 -7.4393388 -14.6322547 +!p 0.0292822 4.7666822 -7.4393341 -14.6321310 +!p 0.0294579 4.7673050 -7.4393293 -14.6320057 +!p 0.0296347 4.7679352 -7.4393245 -14.6318790 +!p 0.0298125 4.7685729 -7.4393196 -14.6317508 +!p 0.0299914 4.7692183 -7.4393147 -14.6316210 +!p 0.0301713 4.7698714 -7.4393097 -14.6314896 +!p 0.0303523 4.7705323 -7.4393046 -14.6313567 +!p 0.0305344 4.7712011 -7.4392995 -14.6312222 +!p 0.0307177 4.7718779 -7.4392943 -14.6310861 +!p 0.0309020 4.7725628 -7.4392891 -14.6309483 +!p 0.0310874 4.7732559 -7.4392838 -14.6308089 +!p 0.0312739 4.7739572 -7.4392785 -14.6306678 +!p 0.0314615 4.7746669 -7.4392731 -14.6305250 +!p 0.0316503 4.7753851 -7.4392676 -14.6303806 +!p 0.0318402 4.7761119 -7.4392621 -14.6302343 +!p 0.0320313 4.7768474 -7.4392565 -14.6300864 +!p 0.0322234 4.7775916 -7.4392509 -14.6299366 +!p 0.0324168 4.7783448 -7.4392451 -14.6297851 +!p 0.0326113 4.7791069 -7.4392394 -14.6296317 +!p 0.0328069 4.7798781 -7.4392335 -14.6294765 +!p 0.0330038 4.7806586 -7.4392276 -14.6293195 +!p 0.0332018 4.7814483 -7.4392216 -14.6291605 +!p 0.0334010 4.7822475 -7.4392156 -14.6289997 +!p 0.0336014 4.7830563 -7.4392095 -14.6288369 +!p 0.0338030 4.7838746 -7.4392033 -14.6286722 +!p 0.0340059 4.7847028 -7.4391971 -14.6285055 +!p 0.0342099 4.7855408 -7.4391908 -14.6283368 +!p 0.0344152 4.7863888 -7.4391844 -14.6281661 +!p 0.0346216 4.7872469 -7.4391779 -14.6279933 +!p 0.0348294 4.7881153 -7.4391714 -14.6278185 +!p 0.0350383 4.7889941 -7.4391648 -14.6276415 +!p 0.0352486 4.7898833 -7.4391581 -14.6274625 +!p 0.0354601 4.7907831 -7.4391514 -14.6272813 +!p 0.0356728 4.7916936 -7.4391446 -14.6270979 +!p 0.0358869 4.7926150 -7.4391377 -14.6269124 +!p 0.0361022 4.7935474 -7.4391307 -14.6267246 +!p 0.0363188 4.7944909 -7.4391237 -14.6265345 +!p 0.0365367 4.7954456 -7.4391165 -14.6263422 +!p 0.0367559 4.7964117 -7.4391093 -14.6261476 +!p 0.0369765 4.7973894 -7.4391020 -14.6259507 +!p 0.0371983 4.7983786 -7.4390947 -14.6257514 +!p 0.0374215 4.7993797 -7.4390872 -14.6255497 +!p 0.0376460 4.8003927 -7.4390797 -14.6253456 +!p 0.0378719 4.8014177 -7.4390721 -14.6251390 +!p 0.0380992 4.8024549 -7.4390644 -14.6249300 +!p 0.0383278 4.8035045 -7.4390567 -14.6247185 +!p 0.0385577 4.8045666 -7.4390488 -14.6245044 +!p 0.0387891 4.8056414 -7.4390409 -14.6242878 +!p 0.0390218 4.8067289 -7.4390328 -14.6240686 +!p 0.0392559 4.8078293 -7.4390247 -14.6238468 +!p 0.0394915 4.8089429 -7.4390165 -14.6236223 +!p 0.0397284 4.8100697 -7.4390082 -14.6233951 +!p 0.0399668 4.8112099 -7.4389999 -14.6231652 +!p 0.0402066 4.8123636 -7.4389914 -14.6229326 +!p 0.0404478 4.8135311 -7.4389828 -14.6226971 +!p 0.0406905 4.8147125 -7.4389742 -14.6224589 +!p 0.0409347 4.8159079 -7.4389654 -14.6222178 +!p 0.0411803 4.8171175 -7.4389566 -14.6219738 +!p 0.0414273 4.8183415 -7.4389477 -14.6217269 +!p 0.0416759 4.8195800 -7.4389386 -14.6214770 +!p 0.0419260 4.8208332 -7.4389295 -14.6212242 +!p 0.0421775 4.8221013 -7.4389203 -14.6209683 +!p 0.0424306 4.8233845 -7.4389110 -14.6207094 +!p 0.0426852 4.8246829 -7.4389016 -14.6204474 +!p 0.0429413 4.8259968 -7.4388921 -14.6201822 +!p 0.0431989 4.8273262 -7.4388825 -14.6199139 +!p 0.0434581 4.8286714 -7.4388727 -14.6196424 +!p 0.0437189 4.8300326 -7.4388629 -14.6193676 +!p 0.0439812 4.8314099 -7.4388530 -14.6190895 +!p 0.0442451 4.8328036 -7.4388430 -14.6188082 +!p 0.0445105 4.8342137 -7.4388328 -14.6185234 +!p 0.0447776 4.8356406 -7.4388226 -14.6182353 +!p 0.0450463 4.8370845 -7.4388123 -14.6179437 +!p 0.0453165 4.8385454 -7.4388018 -14.6176486 +!p 0.0455884 4.8400236 -7.4387913 -14.6173500 +!p 0.0458620 4.8415194 -7.4387806 -14.6170478 +!p 0.0461371 4.8430329 -7.4387698 -14.6167420 +!p 0.0464140 4.8445643 -7.4387589 -14.6164326 +!p 0.0466925 4.8461138 -7.4387479 -14.6161195 +!p 0.0469726 4.8476817 -7.4387368 -14.6158026 +!p 0.0472544 4.8492682 -7.4387256 -14.6154820 +!p 0.0475380 4.8508734 -7.4387143 -14.6151575 +!p 0.0478232 4.8524976 -7.4387028 -14.6148291 +!p 0.0481101 4.8541411 -7.4386912 -14.6144969 +!p 0.0483988 4.8558039 -7.4386796 -14.6141606 +!p 0.0486892 4.8574865 -7.4386677 -14.6138204 +!p 0.0489813 4.8591889 -7.4386558 -14.6134761 +!p 0.0492752 4.8609114 -7.4386438 -14.6131276 +!p 0.0495709 4.8626543 -7.4386316 -14.6127751 +!p 0.0498683 4.8644178 -7.4386193 -14.6124183 +!p 0.0501675 4.8662021 -7.4386069 -14.6120572 +!p 0.0504685 4.8680075 -7.4385944 -14.6116919 +!p 0.0507713 4.8698342 -7.4385817 -14.6113222 +!p 0.0510759 4.8716825 -7.4385689 -14.6109481 +!p 0.0513824 4.8735526 -7.4385560 -14.6105695 +!p 0.0516907 4.8754447 -7.4385430 -14.6101864 +!p 0.0520008 4.8773592 -7.4385298 -14.6097988 +!p 0.0523128 4.8792962 -7.4385165 -14.6094065 +!p 0.0526267 4.8812561 -7.4385031 -14.6090095 +!p 0.0529425 4.8832391 -7.4384896 -14.6086078 +!p 0.0532601 4.8852454 -7.4384759 -14.6082014 +!p 0.0535797 4.8872754 -7.4384620 -14.6077901 +!p 0.0539012 4.8893293 -7.4384481 -14.6073738 +!p 0.0542246 4.8914073 -7.4384340 -14.6069527 +!p 0.0545499 4.8935099 -7.4384198 -14.6065265 +!p 0.0548772 4.8956371 -7.4384054 -14.6060952 +!p 0.0552065 4.8977894 -7.4383909 -14.6056588 +!p 0.0555377 4.8999670 -7.4383763 -14.6052172 +!p 0.0558710 4.9021702 -7.4383615 -14.6047704 +!p 0.0562062 4.9043993 -7.4383466 -14.6043182 +!p 0.0565434 4.9066546 -7.4383316 -14.6038607 +!p 0.0568827 4.9089364 -7.4383164 -14.6033977 +!p 0.0572240 4.9112450 -7.4383011 -14.6029292 +!p 0.0575673 4.9135807 -7.4382856 -14.6024551 +!p 0.0579127 4.9159438 -7.4382700 -14.6019753 +!p 0.0582602 4.9183346 -7.4382542 -14.6014899 +!p 0.0586098 4.9207535 -7.4382383 -14.6009987 +!p 0.0589614 4.9232007 -7.4382223 -14.6005017 +!p 0.0593152 4.9256766 -7.4382061 -14.5999987 +!p 0.0596711 4.9281816 -7.4381898 -14.5994898 +!p 0.0600291 4.9307158 -7.4381733 -14.5989748 +!p 0.0603893 4.9332798 -7.4381566 -14.5984537 +!p 0.0607516 4.9358738 -7.4381399 -14.5979264 +!p 0.0611161 4.9384981 -7.4381229 -14.5973928 +!p 0.0614828 4.9411531 -7.4381059 -14.5968529 +!p 0.0618517 4.9438392 -7.4380886 -14.5963066 +!p 0.0622228 4.9465567 -7.4380712 -14.5957538 +!p 0.0625962 4.9493059 -7.4380537 -14.5951945 +!p 0.0629717 4.9520872 -7.4380360 -14.5946285 +!p 0.0633496 4.9549011 -7.4380182 -14.5940557 +!p 0.0637297 4.9577477 -7.4380002 -14.5934762 +!p 0.0641121 4.9606276 -7.4379821 -14.5928898 +!p 0.0644967 4.9635411 -7.4379638 -14.5922964 +!p 0.0648837 4.9664885 -7.4379453 -14.5916960 +!p 0.0652730 4.9694704 -7.4379267 -14.5910885 +!p 0.0656646 4.9724869 -7.4379080 -14.5904738 +!p 0.0660586 4.9755386 -7.4378890 -14.5898518 +!p 0.0664550 4.9786258 -7.4378700 -14.5892224 +!p 0.0668537 4.9817489 -7.4378508 -14.5885855 +!p 0.0672548 4.9849083 -7.4378314 -14.5879411 +!p 0.0676584 4.9881045 -7.4378118 -14.5872891 +!p 0.0680643 4.9913378 -7.4377921 -14.5866293 +!p 0.0684727 4.9946087 -7.4377723 -14.5859617 +!p 0.0688835 4.9979176 -7.4377523 -14.5852862 +!p 0.0692968 5.0012648 -7.4377321 -14.5846027 +!p 0.0697126 5.0046509 -7.4377118 -14.5839111 +!p 0.0701309 5.0080763 -7.4376913 -14.5832114 +!p 0.0705517 5.0115414 -7.4376707 -14.5825033 +!p 0.0709750 5.0150466 -7.4376499 -14.5817869 +!p 0.0714008 5.0185924 -7.4376290 -14.5810620 +!p 0.0718292 5.0221792 -7.4376078 -14.5803285 +!p 0.0722602 5.0258075 -7.4375866 -14.5795863 +!p 0.0726938 5.0294778 -7.4375652 -14.5788354 +!p 0.0731299 5.0331905 -7.4375436 -14.5780756 +!p 0.0735687 5.0369461 -7.4375219 -14.5773068 +!p 0.0740101 5.0407451 -7.4375000 -14.5765289 +!p 0.0744542 5.0445878 -7.4374780 -14.5757418 +!p 0.0749009 5.0484749 -7.4374558 -14.5749454 +!p 0.0753503 5.0524068 -7.4374334 -14.5741397 +!p 0.0758024 5.0563841 -7.4374109 -14.5733244 +!p 0.0762572 5.0604071 -7.4373883 -14.5724994 +!p 0.0767148 5.0644764 -7.4373655 -14.5716648 +!p 0.0771751 5.0685925 -7.4373425 -14.5708203 +!p 0.0776381 5.0727559 -7.4373194 -14.5699658 +!p 0.0781040 5.0769671 -7.4372962 -14.5691012 +!p 0.0785726 5.0812267 -7.4372728 -14.5682264 +!p 0.0790440 5.0855352 -7.4372492 -14.5673414 +!p 0.0795183 5.0898931 -7.4372255 -14.5664459 +!p 0.0799954 5.0943010 -7.4372017 -14.5655398 +!p 0.0804754 5.0987593 -7.4371777 -14.5646231 +!p 0.0809582 5.1032687 -7.4371536 -14.5636955 +!p 0.0814440 5.1078297 -7.4371293 -14.5627570 +!p 0.0819326 5.1124428 -7.4371049 -14.5618075 +!p 0.0824242 5.1171086 -7.4370804 -14.5608468 +!p 0.0829188 5.1218277 -7.4370557 -14.5598748 +!p 0.0834163 5.1266006 -7.4370309 -14.5588913 +!p 0.0839168 5.1314280 -7.4370059 -14.5578963 +!p 0.0844203 5.1363104 -7.4369808 -14.5568896 +!p 0.0849268 5.1412483 -7.4369556 -14.5558710 +!p 0.0854364 5.1462425 -7.4369303 -14.5548404 +!p 0.0859490 5.1512935 -7.4369048 -14.5537978 +!p 0.0864647 5.1564018 -7.4368792 -14.5527429 +!p 0.0869835 5.1615682 -7.4368535 -14.5516755 +!p 0.0875054 5.1667932 -7.4368277 -14.5505957 +!p 0.0880304 5.1720774 -7.4368018 -14.5495032 +!p 0.0885586 5.1774215 -7.4367757 -14.5483978 +!p 0.0890899 5.1828261 -7.4367496 -14.5472795 +!p 0.0896245 5.1882918 -7.4367233 -14.5461480 +!p 0.0901622 5.1938194 -7.4366969 -14.5450033 +!p 0.0907032 5.1994093 -7.4366704 -14.5438451 +!p 0.0912474 5.2050624 -7.4366439 -14.5426734 +!p 0.0917949 5.2107792 -7.4366172 -14.5414879 +!p 0.0923457 5.2165604 -7.4365904 -14.5402885 +!p 0.0928997 5.2224067 -7.4365636 -14.5390751 +!p 0.0934571 5.2283187 -7.4365366 -14.5378474 +!p 0.0940179 5.2342972 -7.4365096 -14.5366054 +!p 0.0945820 5.2403429 -7.4364825 -14.5353489 +!p 0.0951495 5.2464563 -7.4364553 -14.5340776 +!p 0.0957204 5.2526383 -7.4364281 -14.5327914 +!p 0.0962947 5.2588895 -7.4364008 -14.5314902 +!p 0.0968725 5.2652107 -7.4363734 -14.5301738 +!p 0.0974537 5.2716025 -7.4363460 -14.5288420 +!p 0.0980384 5.2780657 -7.4363186 -14.5274947 +!p 0.0986267 5.2846010 -7.4362910 -14.5261316 +!p 0.0992184 5.2912092 -7.4362635 -14.5247525 +!p 0.0998137 5.2978909 -7.4362359 -14.5233574 +!p 0.1004126 5.3046470 -7.4362083 -14.5219460 +!p 0.1010151 5.3114782 -7.4361806 -14.5205181 +!p 0.1016212 5.3183852 -7.4361529 -14.5190735 +!p 0.1022309 5.3253688 -7.4361252 -14.5176121 +!p 0.1028443 5.3324298 -7.4360976 -14.5161336 +!p 0.1034613 5.3395689 -7.4360699 -14.5146380 +!p 0.1040821 5.3467869 -7.4360422 -14.5131248 +!p 0.1047066 5.3540847 -7.4360145 -14.5115941 +!p 0.1053348 5.3614629 -7.4359868 -14.5100455 +!p 0.1059669 5.3689225 -7.4359592 -14.5084789 +!p 0.1066027 5.3764641 -7.4359316 -14.5068940 +!p 0.1072423 5.3840887 -7.4359040 -14.5052908 +!p 0.1078857 5.3917969 -7.4358765 -14.5036688 +!p 0.1085330 5.3995898 -7.4358490 -14.5020280 +!p 0.1091842 5.4074679 -7.4358216 -14.5003681 +!p 0.1098393 5.4154323 -7.4357943 -14.4986890 +!p 0.1104984 5.4234837 -7.4357670 -14.4969903 +!p 0.1111614 5.4316230 -7.4357398 -14.4952719 +!p 0.1118283 5.4398510 -7.4357127 -14.4935335 +!p 0.1124993 5.4481686 -7.4356858 -14.4917750 +!p 0.1131743 5.4565766 -7.4356589 -14.4899960 +!p 0.1138534 5.4650758 -7.4356322 -14.4881965 +!p 0.1145365 5.4736673 -7.4356055 -14.4863760 +!p 0.1152237 5.4823517 -7.4355791 -14.4845345 +!p 0.1159150 5.4911301 -7.4355527 -14.4826716 +!p 0.1166105 5.5000033 -7.4355266 -14.4807871 +!p 0.1173102 5.5089721 -7.4355006 -14.4788809 +!p 0.1180140 5.5180375 -7.4354748 -14.4769525 +!p 0.1187221 5.5272004 -7.4354492 -14.4750018 +!p 0.1194345 5.5364617 -7.4354237 -14.4730286 +!p 0.1201511 5.5458222 -7.4353985 -14.4710325 +!p 0.1208720 5.5552829 -7.4353736 -14.4690134 +!p 0.1215972 5.5648447 -7.4353488 -14.4669710 +!p 0.1223268 5.5745085 -7.4353243 -14.4649049 +!p 0.1230608 5.5842753 -7.4353001 -14.4628150 +!p 0.1237991 5.5941460 -7.4352761 -14.4607009 +!p 0.1245419 5.6041215 -7.4352525 -14.4585625 +!p 0.1252892 5.6142027 -7.4352291 -14.4563994 +!p 0.1260409 5.6243906 -7.4352061 -14.4542113 +!p 0.1267971 5.6346862 -7.4351833 -14.4519981 +!p 0.1275579 5.6450903 -7.4351610 -14.4497593 +!p 0.1283233 5.6556040 -7.4351389 -14.4474947 +!p 0.1290932 5.6662281 -7.4351173 -14.4452041 +!p 0.1298678 5.6769637 -7.4350960 -14.4428871 +!p 0.1306470 5.6878118 -7.4350751 -14.4405434 +!p 0.1314309 5.6987732 -7.4350547 -14.4381727 +!p 0.1322194 5.7098489 -7.4350346 -14.4357748 +!p 0.1330128 5.7210400 -7.4350151 -14.4333494 +!p 0.1338108 5.7323473 -7.4349959 -14.4308961 +!p 0.1346137 5.7437720 -7.4349773 -14.4284146 +!p 0.1354214 5.7553149 -7.4349591 -14.4259046 +!p 0.1362339 5.7669770 -7.4349415 -14.4233657 +!p 0.1370513 5.7787593 -7.4349244 -14.4207978 +!p 0.1378736 5.7906628 -7.4349078 -14.4182004 +!p 0.1387009 5.8026885 -7.4348918 -14.4155733 +!p 0.1395331 5.8148374 -7.4348764 -14.4129160 +!p 0.1403703 5.8271104 -7.4348616 -14.4102283 +!p 0.1412125 5.8395086 -7.4348474 -14.4075098 +!p 0.1420598 5.8520329 -7.4348338 -14.4047602 +!p 0.1429121 5.8646843 -7.4348209 -14.4019791 +!p 0.1437696 5.8774639 -7.4348087 -14.3991662 +!p 0.1446322 5.8903725 -7.4347972 -14.3963212 +!p 0.1455000 5.9034113 -7.4347864 -14.3934436 +!p 0.1463730 5.9165811 -7.4347763 -14.3905331 +!p 0.1472513 5.9298831 -7.4347670 -14.3875894 +!p 0.1481348 5.9433181 -7.4347584 -14.3846121 +!p 0.1490236 5.9568871 -7.4347507 -14.3816009 +!p 0.1499177 5.9705912 -7.4347437 -14.3785552 +!p 0.1508172 5.9844313 -7.4347377 -14.3754749 +!p 0.1517221 5.9984084 -7.4347324 -14.3723594 +!p 0.1526325 6.0125236 -7.4347281 -14.3692084 +!p 0.1535482 6.0267776 -7.4347247 -14.3660215 +!p 0.1544695 6.0411716 -7.4347222 -14.3627984 +!p 0.1553964 6.0557065 -7.4347206 -14.3595385 +!p 0.1563287 6.0703833 -7.4347201 -14.3562416 +!p 0.1572667 6.0852029 -7.4347205 -14.3529071 +!p 0.1582103 6.1001663 -7.4347219 -14.3495348 +!p 0.1591596 6.1152744 -7.4347244 -14.3461241 +!p 0.1601145 6.1305282 -7.4347280 -14.3426747 +!p 0.1610752 6.1459286 -7.4347327 -14.3391861 +!p 0.1620417 6.1614766 -7.4347385 -14.3356579 +!p 0.1630139 6.1771731 -7.4347454 -14.3320896 +!p 0.1639920 6.1930190 -7.4347535 -14.3284809 +!p 0.1649759 6.2090152 -7.4347628 -14.3248313 +!p 0.1659658 6.2251626 -7.4347733 -14.3211403 +!p 0.1669616 6.2414622 -7.4347851 -14.3174074 +!p 0.1679634 6.2579148 -7.4347981 -14.3136323 +!p 0.1689711 6.2745213 -7.4348125 -14.3098145 +!p 0.1699850 6.2912825 -7.4348281 -14.3059534 +!p 0.1710049 6.3081993 -7.4348451 -14.3020487 +!p 0.1720309 6.3252727 -7.4348635 -14.2980998 +!p 0.1730631 6.3425033 -7.4348833 -14.2941062 +!p 0.1741015 6.3598920 -7.4349045 -14.2900675 +!p 0.1751461 6.3774397 -7.4349272 -14.2859832 +!p 0.1761970 6.3951472 -7.4349513 -14.2818528 +!p 0.1772541 6.4130151 -7.4349770 -14.2776757 +!p 0.1783177 6.4310444 -7.4350042 -14.2734515 +!p 0.1793876 6.4492357 -7.4350329 -14.2691797 +!p 0.1804639 6.4675898 -7.4350632 -14.2648596 +!p 0.1815467 6.4861074 -7.4350952 -14.2604909 +!p 0.1826360 6.5047892 -7.4351288 -14.2560730 +!p 0.1837318 6.5236360 -7.4351640 -14.2516053 +!p 0.1848342 6.5426483 -7.4352009 -14.2470872 +!p 0.1859432 6.5618269 -7.4352396 -14.2425183 +!p 0.1870588 6.5811723 -7.4352800 -14.2378981 +!p 0.1881812 6.6006852 -7.4353221 -14.2332258 +!p 0.1893103 6.6203662 -7.4353661 -14.2285010 +!p 0.1904461 6.6402158 -7.4354119 -14.2237230 +!p 0.1915888 6.6602347 -7.4354595 -14.2188914 +!p 0.1927383 6.6804232 -7.4355090 -14.2140055 +!p 0.1938948 6.7007819 -7.4355604 -14.2090648 +!p 0.1950581 6.7213113 -7.4356137 -14.2040686 +!p 0.1962285 6.7420118 -7.4356689 -14.1990163 +!p 0.1974059 6.7628839 -7.4357261 -14.1939073 +!p 0.1985903 6.7839279 -7.4357853 -14.1887410 +!p 0.1997818 6.8051442 -7.4358466 -14.1835168 +!p 0.2009805 6.8265331 -7.4359098 -14.1782341 +!p 0.2021864 6.8480950 -7.4359751 -14.1728922 +!p 0.2033995 6.8698300 -7.4360425 -14.1674904 +!p 0.2046199 6.8917386 -7.4361120 -14.1620282 +!p 0.2058476 6.9138207 -7.4361836 -14.1565048 +!p 0.2070827 6.9360767 -7.4362573 -14.1509196 +!p 0.2083252 6.9585067 -7.4363332 -14.1452719 +!p 0.2095752 6.9811107 -7.4364112 -14.1395610 +!p 0.2108326 7.0038888 -7.4364915 -14.1337863 +!p 0.2120976 7.0268411 -7.4365739 -14.1279471 +!p 0.2133702 7.0499675 -7.4366586 -14.1220426 +!p 0.2146504 7.0732679 -7.4367455 -14.1160721 +!p 0.2159383 7.0967423 -7.4368347 -14.1100350 +!p 0.2172340 7.1203905 -7.4369261 -14.1039305 +!p 0.2185374 7.1442124 -7.4370198 -14.0977578 +!p 0.2198486 7.1682076 -7.4371158 -14.0915162 +!p 0.2211677 7.1923760 -7.4372140 -14.0852051 +!p 0.2224947 7.2167171 -7.4373146 -14.0788235 +!p 0.2238297 7.2412307 -7.4374175 -14.0723708 +!p 0.2251726 7.2659162 -7.4375226 -14.0658461 +!p 0.2265237 7.2907732 -7.4376301 -14.0592488 +!p 0.2278828 7.3158012 -7.4377399 -14.0525779 +!p 0.2292501 7.3409995 -7.4378520 -14.0458327 +!p 0.2306256 7.3663676 -7.4379665 -14.0390124 +!p 0.2320094 7.3919047 -7.4380832 -14.0321162 +!p 0.2334014 7.4176100 -7.4382022 -14.0251432 +!p 0.2348018 7.4434828 -7.4383236 -14.0180926 +!p 0.2362106 7.4695221 -7.4384472 -14.0109636 +!p 0.2376279 7.4957271 -7.4385731 -14.0037552 +!p 0.2390537 7.5220966 -7.4387013 -13.9964667 +!p 0.2404880 7.5486297 -7.4388317 -13.9890971 +!p 0.2419309 7.5753251 -7.4389643 -13.9816457 +!p 0.2433825 7.6021818 -7.4390992 -13.9741114 +!p 0.2448428 7.6291983 -7.4392362 -13.9664933 +!p 0.2463119 7.6563733 -7.4393754 -13.9587906 +!p 0.2477897 7.6837054 -7.4395168 -13.9510024 +!p 0.2492765 7.7111932 -7.4396602 -13.9431277 +!p 0.2507721 7.7388349 -7.4398058 -13.9351655 +!p 0.2522768 7.7666290 -7.4399533 -13.9271149 +!p 0.2537904 7.7945738 -7.4401029 -13.9189750 +!p 0.2553132 7.8226673 -7.4402544 -13.9107447 +!p 0.2568450 7.8509077 -7.4404078 -13.9024230 +!p 0.2583861 7.8792931 -7.4405631 -13.8940090 +!p 0.2599364 7.9078213 -7.4407202 -13.8855017 +!p 0.2614961 7.9364901 -7.4408791 -13.8769001 +!p 0.2630650 7.9652974 -7.4410396 -13.8682030 +!p 0.2646434 7.9942407 -7.4412018 -13.8594095 +!p 0.2662313 8.0233177 -7.4413655 -13.8505184 +!p 0.2678287 8.0525258 -7.4415307 -13.8415288 +!p 0.2694356 8.0818624 -7.4416974 -13.8324396 +!p 0.2710523 8.1113247 -7.4418654 -13.8232496 +!p 0.2726786 8.1409100 -7.4420346 -13.8139577 +!p 0.2743146 8.1706152 -7.4422050 -13.8045629 +!p 0.2759605 8.2004374 -7.4423764 -13.7950640 +!p 0.2776163 8.2303734 -7.4425489 -13.7854599 +!p 0.2792820 8.2604200 -7.4427221 -13.7757493 +!p 0.2809577 8.2905738 -7.4428962 -13.7659312 +!p 0.2826434 8.3208314 -7.4430709 -13.7560044 +!p 0.2843393 8.3511891 -7.4432461 -13.7459676 +!p 0.2860453 8.3816433 -7.4434217 -13.7358196 +!p 0.2877616 8.4121902 -7.4435976 -13.7255593 +!p 0.2894882 8.4428258 -7.4437736 -13.7151854 +!p 0.2912251 8.4735461 -7.4439496 -13.7046966 +!p 0.2929724 8.5043469 -7.4441254 -13.6940917 +!p 0.2947303 8.5352239 -7.4443009 -13.6833693 +!p 0.2964987 8.5661728 -7.4444759 -13.6725283 +!p 0.2982777 8.5971890 -7.4446503 -13.6615673 +!p 0.3000673 8.6282677 -7.4448238 -13.6504849 +!p 0.3018677 8.6594042 -7.4449964 -13.6392799 +!p 0.3036789 8.6905936 -7.4451677 -13.6279509 +!p 0.3055010 8.7218309 -7.4453376 -13.6164965 +!p 0.3073340 8.7531107 -7.4455059 -13.6049153 +!p 0.3091780 8.7844278 -7.4456724 -13.5932060 +!p 0.3110331 8.8157766 -7.4458369 -13.5813671 +!p 0.3128993 8.8471517 -7.4459991 -13.5693972 +!p 0.3147767 8.8785472 -7.4461587 -13.5572948 +!p 0.3166653 8.9099572 -7.4463156 -13.5450585 +!p 0.3185653 8.9413756 -7.4464695 -13.5326868 +!p 0.3204767 8.9727964 -7.4466201 -13.5201782 +!p 0.3223996 9.0042132 -7.4467672 -13.5075312 +!p 0.3243340 9.0356194 -7.4469104 -13.4947443 +!p 0.3262800 9.0670085 -7.4470494 -13.4818160 +!p 0.3282377 9.0983737 -7.4471840 -13.4687445 +!p 0.3302071 9.1297080 -7.4473139 -13.4555285 +!p 0.3321883 9.1610043 -7.4474386 -13.4421662 +!p 0.3341815 9.1922555 -7.4475580 -13.4286561 +!p 0.3361865 9.2234541 -7.4476715 -13.4149966 +!p 0.3382037 9.2545926 -7.4477790 -13.4011859 +!p 0.3402329 9.2856632 -7.4478799 -13.3872224 +!p 0.3422743 9.3166582 -7.4479740 -13.3731045 +!p 0.3443279 9.3475695 -7.4480607 -13.3588304 +!p 0.3463939 9.3783888 -7.4481398 -13.3443984 +!p 0.3484723 9.4091080 -7.4482108 -13.3298067 +!p 0.3505631 9.4397184 -7.4482733 -13.3150536 +!p 0.3526665 9.4702114 -7.4483268 -13.3001373 +!p 0.3547825 9.5005782 -7.4483708 -13.2850560 +!p 0.3569112 9.5308098 -7.4484050 -13.2698079 +!p 0.3590526 9.5608971 -7.4484287 -13.2543911 +!p 0.3612070 9.5908308 -7.4484416 -13.2388038 +!p 0.3633742 9.6206014 -7.4484430 -13.2230441 +!p 0.3655544 9.6501992 -7.4484325 -13.2071101 +!p 0.3677478 9.6796146 -7.4484095 -13.1909999 +!p 0.3699543 9.7088375 -7.4483735 -13.1747115 +!p 0.3721740 9.7378578 -7.4483239 -13.1582430 +!p 0.3744070 9.7666654 -7.4482601 -13.1415924 +!p 0.3766535 9.7952497 -7.4481815 -13.1247576 +!p 0.3789134 9.8236002 -7.4480874 -13.1077367 +!p 0.3811869 9.8517061 -7.4479773 -13.0905277 +!p 0.3834740 9.8795567 -7.4478504 -13.0731283 +!p 0.3857748 9.9071407 -7.4477061 -13.0555367 +!p 0.3880895 9.9344471 -7.4475438 -13.0377506 +!p 0.3904180 9.9614645 -7.4473626 -13.0197679 +!p 0.3927605 9.9881813 -7.4471619 -13.0015864 +!p 0.3951171 10.0145861 -7.4469410 -12.9832041 +!p 0.3974878 10.0406669 -7.4466990 -12.9646186 +!p 0.3998727 10.0664118 -7.4464352 -12.9458279 +!p 0.4022720 10.0918088 -7.4461487 -12.9268296 +!p 0.4046856 10.1168457 -7.4458388 -12.9076214 +!p 0.4071137 10.1415101 -7.4455046 -12.8882011 +!p 0.4095564 10.1657897 -7.4451453 -12.8685665 +!p 0.4120137 10.1896716 -7.4447599 -12.8487150 +!p 0.4144858 10.2131434 -7.4443476 -12.8286445 +!p 0.4169727 10.2361920 -7.4439074 -12.8083525 +!p 0.4194746 10.2588046 -7.4434384 -12.7878367 +!p 0.4219914 10.2809681 -7.4429396 -12.7670945 +!p 0.4245233 10.3026692 -7.4424100 -12.7461237 +!p 0.4270705 10.3238948 -7.4418486 -12.7249216 +!p 0.4296329 10.3446314 -7.4412544 -12.7034859 +!p 0.4322107 10.3648656 -7.4406264 -12.6818140 +!p 0.4348040 10.3845837 -7.4399633 -12.6599034 +!p 0.4374128 10.4037721 -7.4392642 -12.6377515 +!p 0.4400373 10.4224171 -7.4385279 -12.6153558 +!p 0.4426775 10.4405049 -7.4377532 -12.5927137 +!p 0.4453336 10.4580216 -7.4369389 -12.5698225 +!p 0.4480056 10.4749533 -7.4360839 -12.5466796 +!p 0.4506936 10.4912859 -7.4351870 -12.5232824 +!p 0.4533978 10.5070055 -7.4342468 -12.4996281 +!p 0.4561181 10.5220979 -7.4332621 -12.4757141 +!p 0.4588549 10.5365491 -7.4322316 -12.4515377 +!p 0.4616080 10.5503449 -7.4311539 -12.4270961 +!p 0.4643776 10.5634711 -7.4300277 -12.4023864 +!p 0.4671639 10.5759136 -7.4288517 -12.3774061 +!p 0.4699669 10.5876583 -7.4276243 -12.3521521 +!p 0.4727867 10.5986909 -7.4263442 -12.3266218 +!p 0.4756234 10.6089974 -7.4250099 -12.3008122 +!p 0.4784771 10.6185635 -7.4236198 -12.2747205 +!p 0.4813480 10.6273753 -7.4221726 -12.2483438 +!p 0.4842361 10.6354186 -7.4206665 -12.2216793 +!p 0.4871415 10.6426795 -7.4191001 -12.1947239 +!p 0.4900644 10.6491440 -7.4174717 -12.1674748 +!p 0.4930047 10.6547984 -7.4157798 -12.1399289 +!p 0.4959628 10.6596287 -7.4140225 -12.1120834 +!p 0.4989385 10.6636214 -7.4121984 -12.0839352 +!p 0.5019322 10.6667629 -7.4103055 -12.0554814 +!p 0.5049438 10.6690397 -7.4083422 -12.0267189 +!p 0.5079734 10.6704385 -7.4063066 -11.9976446 +!p 0.5110213 10.6709461 -7.4041971 -11.9682556 +!p 0.5140874 10.6705495 -7.4020117 -11.9385488 +!p 0.5171719 10.6692358 -7.3997485 -11.9085211 +!p 0.5202750 10.6669922 -7.3974057 -11.8781694 +!p 0.5233966 10.6638064 -7.3949813 -11.8474907 +!p 0.5265370 10.6596659 -7.3924734 -11.8164818 +!p 0.5296962 10.6545587 -7.3898800 -11.7851397 +!p 0.5328744 10.6484730 -7.3871990 -11.7534612 +!p 0.5360716 10.6413970 -7.3844285 -11.7214433 +!p 0.5392881 10.6333195 -7.3815663 -11.6890827 +!p 0.5425238 10.6242292 -7.3786102 -11.6563764 +!p 0.5457789 10.6141154 -7.3755583 -11.6233212 +!p 0.5490536 10.6029676 -7.3724083 -11.5899141 +!p 0.5523479 10.5907754 -7.3691579 -11.5561518 +!p 0.5556620 10.5775291 -7.3658051 -11.5220314 +!p 0.5589960 10.5632190 -7.3623474 -11.4875495 +!p 0.5623500 10.5478358 -7.3587827 -11.4527032 +!p 0.5657241 10.5313708 -7.3551086 -11.4174893 +!p 0.5691184 10.5138155 -7.3513227 -11.3819047 +!p 0.5725331 10.4951616 -7.3474228 -11.3459464 +!p 0.5759683 10.4754017 -7.3434062 -11.3096113 +!p 0.5794241 10.4545283 -7.3392708 -11.2728962 +!p 0.5829007 10.4325347 -7.3350139 -11.2357982 +!p 0.5863981 10.4094144 -7.3306331 -11.1983143 +!p 0.5899165 10.3851616 -7.3261258 -11.1604415 +!p 0.5934560 10.3597707 -7.3214896 -11.1221767 +!p 0.5970167 10.3332368 -7.3167219 -11.0835171 +!p 0.6005988 10.3055554 -7.3118200 -11.0444597 +!p 0.6042024 10.2767227 -7.3067813 -11.0050017 +!p 0.6078276 10.2467350 -7.3016032 -10.9651401 +!p 0.6114746 10.2155896 -7.2962830 -10.9248723 +!p 0.6151434 10.1832841 -7.2908180 -10.8841954 +!p 0.6188343 10.1498168 -7.2852055 -10.8431068 +!p 0.6225473 10.1151864 -7.2794428 -10.8016037 +!p 0.6262826 10.0793923 -7.2735270 -10.7596837 +!p 0.6300403 10.0424346 -7.2674554 -10.7173440 +!p 0.6338205 10.0043139 -7.2612252 -10.6745822 +!p 0.6376234 9.9650313 -7.2548335 -10.6313960 +!p 0.6414492 9.9245888 -7.2482775 -10.5877829 +!p 0.6452979 9.8829888 -7.2415544 -10.5437407 +!p 0.6491697 9.8402345 -7.2346611 -10.4992671 +!p 0.6530647 9.7963297 -7.2275950 -10.4543602 +!p 0.6569831 9.7512789 -7.2203529 -10.4090178 +!p 0.6609250 9.7050873 -7.2129320 -10.3632380 +!p 0.6648905 9.6577606 -7.2053294 -10.3170191 +!p 0.6688799 9.6093054 -7.1975421 -10.2703593 +!p 0.6728931 9.5597290 -7.1895671 -10.2232570 +!p 0.6769305 9.5090392 -7.1814014 -10.1757107 +!p 0.6809921 9.4572447 -7.1730420 -10.1277191 +!p 0.6850780 9.4043549 -7.1644860 -10.0792810 +!p 0.6891885 9.3503797 -7.1557304 -10.0303953 +!p 0.6933236 9.2953299 -7.1467721 -9.9810611 +!p 0.6974836 9.2392170 -7.1376081 -9.9312776 +!p 0.7016685 9.1820532 -7.1282355 -9.8810443 +!p 0.7058785 9.1238515 -7.1186512 -9.8303606 +!p 0.7101137 9.0646253 -7.1088522 -9.7792264 +!p 0.7143744 9.0043892 -7.0988355 -9.7276416 +!p 0.7186607 8.9431580 -7.0885981 -9.6756063 +!p 0.7229726 8.8809476 -7.0781370 -9.6231210 +!p 0.7273105 8.8177744 -7.0674493 -9.5701861 +!p 0.7316743 8.7536556 -7.0565319 -9.5168025 +!p 0.7360644 8.6886090 -7.0453819 -9.4629713 +!p 0.7404808 8.6226532 -7.0339964 -9.4086938 +!p 0.7449237 8.5558073 -7.0223725 -9.3539715 +!p 0.7493932 8.4880912 -7.0105072 -9.2988062 +!p 0.7538896 8.4195254 -6.9983976 -9.2432002 +!p 0.7584129 8.3501311 -6.9860410 -9.1871558 +!p 0.7629634 8.2799301 -6.9734345 -9.1306758 +!p 0.7675412 8.2089447 -6.9605752 -9.0737632 +!p 0.7721464 8.1371981 -6.9474605 -9.0164216 +!p 0.7767793 8.0647137 -6.9340875 -8.9586545 +!p 0.7814400 7.9915158 -6.9204537 -8.9004663 +!p 0.7861286 7.9176291 -6.9065563 -8.8418614 +!p 0.7908454 7.8430789 -6.8923928 -8.7828447 +!p 0.7955904 7.7678909 -6.8779606 -8.7234216 +!p 0.8003640 7.6920913 -6.8632571 -8.6635978 +!p 0.8051662 7.6157071 -6.8482800 -8.6033796 +!p 0.8099972 7.5387652 -6.8330268 -8.5427736 +!p 0.8148571 7.4612934 -6.8174953 -8.4817870 +!p 0.8197463 7.3833197 -6.8016830 -8.4204274 +!p 0.8246648 7.3048725 -6.7855879 -8.3587030 +!p 0.8296128 7.2259806 -6.7692078 -8.2966225 +!p 0.8345904 7.1466730 -6.7525407 -8.2341951 +!p 0.8395980 7.0669792 -6.7355845 -8.1714307 +!p 0.8446356 6.9869288 -6.7183373 -8.1083396 +!p 0.8497034 6.9065518 -6.7007975 -8.0449329 +!p 0.8548016 6.8258782 -6.6829631 -7.9812222 +!p 0.8599304 6.7449384 -6.6648327 -7.9172197 +!p 0.8650900 6.6637629 -6.6464047 -7.8529383 +!p 0.8702805 6.5823822 -6.6276777 -7.7883917 +!p 0.8755022 6.5008270 -6.6086503 -7.7235942 +!p 0.8807552 6.4191281 -6.5893214 -7.6585607 +!p 0.8860398 6.3373162 -6.5696899 -7.5933069 +!p 0.8913560 6.2554222 -6.5497548 -7.5278494 +!p 0.8967041 6.1734767 -6.5295152 -7.4622054 +!p 0.9020844 6.0915104 -6.5089705 -7.3963928 +!p 0.9074969 6.0095540 -6.4881202 -7.3304305 +!p 0.9129418 5.9276377 -6.4669637 -7.2643381 +!p 0.9184195 5.8457920 -6.4455007 -7.1981360 +!p 0.9239300 5.7640468 -6.4237312 -7.1318453 +!p 0.9294736 5.6824321 -6.4016552 -7.0654883 +!p 0.9350504 5.6009773 -6.3792728 -6.9990879 +!p 0.9406607 5.5197117 -6.3565843 -6.9326677 +!p 0.9463047 5.4386643 -6.3335903 -6.8662525 +!p 0.9519825 5.3578637 -6.3102915 -6.7998678 +!p 0.9576944 5.2773380 -6.2866887 -6.7335399 +!p 0.9634406 5.1971150 -6.2627829 -6.6672961 +!p 0.9692212 5.1172221 -6.2385754 -6.6011644 +!p 0.9750366 5.0376861 -6.2140676 -6.5351738 +!p 0.9808868 4.9585333 -6.1892611 -6.4693542 +!p 0.9867721 4.8797895 -6.1641577 -6.4037361 +!p 0.9926927 4.8014799 -6.1387595 -6.3383509 +!p 0.9986489 4.7236292 -6.1130687 -6.2732310 +!p 1.0046408 4.6462614 -6.0870877 -6.2084093 +!p 1.0106686 4.5693999 -6.0608192 -6.1439196 +!p 1.0167326 4.4930674 -6.0342661 -6.0797963 +!p 1.0228330 4.4172860 -6.0074316 -6.0160746 +!p 1.0289700 4.3420770 -5.9803188 -5.9527903 +!p 1.0351439 4.2674611 -5.9529315 -5.8899798 +!p 1.0413547 4.1934581 -5.9252734 -5.8276800 +!p 1.0476028 4.1200872 -5.8973487 -5.7659282 +!p 1.0538885 4.0473667 -5.8691615 -5.7047624 +!p 1.0602118 3.9753142 -5.8407164 -5.6442207 +!p 1.0665731 3.9039465 -5.8120182 -5.5843416 +!p 1.0729725 3.8332796 -5.7830720 -5.5251637 +!p 1.0794103 3.7633286 -5.7538830 -5.4667257 +!p 1.0858868 3.6941079 -5.7244568 -5.4090665 +!p 1.0924021 3.6256309 -5.6947991 -5.3522247 +!p 1.0989565 3.5579103 -5.6649159 -5.2962389 +!p 1.1055503 3.4909580 -5.6348136 -5.2411473 +!p 1.1121836 3.4247849 -5.6044988 -5.1869876 +!p 1.1188567 3.3594011 -5.5739781 -5.1337972 +!p 1.1255698 3.2948160 -5.5432586 -5.0816125 +!p 1.1323232 3.2310381 -5.5123477 -5.0304694 +!p 1.1391172 3.1680748 -5.4812528 -4.9804026 +!p 1.1459519 3.1059331 -5.4499817 -4.9314458 +!p 1.1528276 3.0446188 -5.4185425 -4.8836314 +!p 1.1597445 2.9841372 -5.3869115 -4.8369586 +!p 1.1667030 2.9244926 -5.3551454 -4.7915050 +!p 1.1737032 2.8656884 -5.3232367 -4.7472821 +!p 1.1807455 2.8077276 -5.2911946 -4.7043158 +!p 1.1878299 2.7506120 -5.2590281 -4.6626296 +!p 1.1949569 2.6943430 -5.2267466 -4.6222452 +!p 1.2021266 2.6389209 -5.1943598 -4.5831813 +!p 1.2093394 2.5843457 -5.1618773 -4.5454543 +!p 1.2165954 2.5306163 -5.1293093 -4.5090780 +!p 1.2238950 2.4777312 -5.0966659 -4.4740627 +!p 1.2312384 2.4256880 -5.0639575 -4.4404162 +!p 1.2386258 2.3744840 -5.0311946 -4.4081425 +!p 1.2460576 2.3241154 -4.9983879 -4.3772424 +!p 1.2535339 2.2745782 -4.9655483 -4.3477132 +!p 1.2610551 2.2258677 -4.9326868 -4.3195481 +!p 1.2686215 2.1779786 -4.8998147 -4.2927367 +!p 1.2762332 2.1309051 -4.8669432 -4.2672646 +!p 1.2838906 2.0846410 -4.8340838 -4.2431132 +!p 1.2915939 2.0391794 -4.8012481 -4.2202597 +!p 1.2993435 1.9945133 -4.7684478 -4.1986769 +!p 1.3071395 1.9506350 -4.7356947 -4.1783334 +!p 1.3149824 1.9075364 -4.7030008 -4.1591933 +!p 1.3228723 1.8652093 -4.6703782 -4.1412163 +!p 1.3308095 1.8236449 -4.6378390 -4.1243574 +!p 1.3387944 1.7828343 -4.6053955 -4.1085673 +!p 1.3468271 1.7427682 -4.5730602 -4.0937923 +!p 1.3549081 1.7034371 -4.5408455 -4.0799741 +!p 1.3630375 1.6648313 -4.5087640 -4.0670503 +!p 1.3712158 1.6269408 -4.4768287 -4.0549542 +!p 1.3794431 1.5897557 -4.4450522 -4.0436148 +!p 1.3877197 1.5532657 -4.4134478 -4.0329573 +!p 1.3960460 1.5174606 -4.3820286 -4.0229031 +!p 1.4044223 1.4823300 -4.3508080 -4.0133700 +!p 1.4128489 1.4478635 -4.3197995 -4.0042723 +!p 1.4213259 1.4140508 -4.2890170 -3.9955214 +!p 1.4298539 1.3808815 -4.2584744 -3.9870258 +!p 1.4384330 1.3483452 -4.2281861 -3.9786913 +!p 1.4470636 1.3164316 -4.1981666 -3.9704219 +!p 1.4557460 1.2851306 -4.1684309 -3.9621195 +!p 1.4644805 1.2544320 -4.1389942 -3.9536848 +!p 1.4732674 1.2243260 -4.1098722 -3.9450174 +!p 1.4821070 1.1948027 -4.0810811 -3.9360166 +!p 1.4909996 1.1658526 -4.0526374 -3.9265816 +!p 1.4999456 1.1374662 -4.0245584 -3.9166121 +!p 1.5089453 1.1096343 -3.9968619 -3.9060091 +!p 1.5179990 1.0823479 -3.9695662 -3.8946750 +!p 1.5271069 1.0555983 -3.9426906 -3.8825149 +!p 1.5362696 1.0293770 -3.9162550 -3.8694367 +!p 1.5454872 1.0036757 -3.8902802 -3.8553517 +!p 1.5547601 0.9784865 -3.8647878 -3.8401761 +!p 1.5640887 0.9538017 -3.8398006 -3.8238309 +!p 1.5734732 0.9296138 -3.8153422 -3.8062430 +!p 1.5829141 0.9059157 -3.7914376 -3.7873463 +!p 1.5924115 0.8827006 -3.7681126 -3.7670821 +!p 1.6019660 0.8599618 -3.7453947 -3.7454000 +!p 1.6115778 0.8376930 -3.7230740 -3.7230740 +!p 1.6212473 0.8158879 -3.7008686 -3.7008686 +!p 1.6309748 0.7945402 -3.6787956 -3.6787956 +!p 1.6407606 0.7736439 -3.6568543 -3.6568543 +!p 1.6506052 0.7531925 -3.6350438 -3.6350438 +!p 1.6605088 0.7331798 -3.6133634 -3.6133634 +!p 1.6704719 0.7135995 -3.5918123 -3.5918123 +!p 1.6804947 0.6944453 -3.5703898 -3.5703898 +!p 1.6905777 0.6757110 -3.5490951 -3.5490951 +!p 1.7007211 0.6573902 -3.5279273 -3.5279273 +!p 1.7109255 0.6394767 -3.5068858 -3.5068858 +!p 1.7211910 0.6219641 -3.4859698 -3.4859698 +!p 1.7315182 0.6048463 -3.4651786 -3.4651786 +!p 1.7419073 0.5881170 -3.4445113 -3.4445113 +!p 1.7523587 0.5717700 -3.4239674 -3.4239674 +!p 1.7628729 0.5557990 -3.4035459 -3.4035459 +!p 1.7734501 0.5401980 -3.3832463 -3.3832463 +!p 1.7840908 0.5249607 -3.3630678 -3.3630678 +!p 1.7947953 0.5100810 -3.3430095 -3.3430095 +!p 1.8055641 0.4955529 -3.3230710 -3.3230710 +!p 1.8163975 0.4813702 -3.3032513 -3.3032513 +!p 1.8272959 0.4675270 -3.2835499 -3.2835499 +!p 1.8382597 0.4540172 -3.2639660 -3.2639660 +!p 1.8492892 0.4408350 -3.2444988 -3.2444988 +!p 1.8603849 0.4279744 -3.2251478 -3.2251478 +!p 1.8715473 0.4154296 -3.2059122 -3.2059122 +!p 1.8827765 0.4031947 -3.1867913 -3.1867913 +!p 1.8940732 0.3912639 -3.1677845 -3.1677845 +!p 1.9054376 0.3796317 -3.1488910 -3.1488910 +!p 1.9168703 0.3682922 -3.1301103 -3.1301103 +!p 1.9283715 0.3572398 -3.1114415 -3.1114415 +!p 1.9399417 0.3464691 -3.0928841 -3.0928841 +!p 1.9515814 0.3359745 -3.0744373 -3.0744373 +!p 1.9632909 0.3257504 -3.0561006 -3.0561006 +!p 1.9750706 0.3157916 -3.0378733 -3.0378733 +!p 1.9869210 0.3060927 -3.0197547 -3.0197547 +!p 1.9988425 0.2966484 -3.0017441 -3.0017441 +!p 2.0108356 0.2874534 -2.9838409 -2.9838409 +!p 2.0229006 0.2785027 -2.9660446 -2.9660446 +!p 2.0350380 0.2697911 -2.9483544 -2.9483544 +!p 2.0472482 0.2613135 -2.9307697 -2.9307697 +!p 2.0595317 0.2530650 -2.9132898 -2.9132898 +!p 2.0718889 0.2450407 -2.8959143 -2.8959143 +!p 2.0843203 0.2372358 -2.8786423 -2.8786423 +!p 2.0968262 0.2296453 -2.8614734 -2.8614734 +!p 2.1094071 0.2222647 -2.8444069 -2.8444069 +!p 2.1220636 0.2150892 -2.8274421 -2.8274421 +!p 2.1347960 0.2081143 -2.8105786 -2.8105786 +!p 2.1476047 0.2013355 -2.7938156 -2.7938156 +!p 2.1604904 0.1947482 -2.7771526 -2.7771526 +!p 2.1734533 0.1883481 -2.7605890 -2.7605890 +!p 2.1864940 0.1821309 -2.7441242 -2.7441242 +!p 2.1996130 0.1760923 -2.7277576 -2.7277576 +!p 2.2128107 0.1702282 -2.7114886 -2.7114886 +!p 2.2260875 0.1645343 -2.6953166 -2.6953166 +!p 2.2394441 0.1590067 -2.6792411 -2.6792411 +!p 2.2528807 0.1536413 -2.6632615 -2.6632615 +!p 2.2663980 0.1484343 -2.6473771 -2.6473771 +!p 2.2799964 0.1433817 -2.6315876 -2.6315876 +!p 2.2936764 0.1384798 -2.6158921 -2.6158921 +!p 2.3074384 0.1337249 -2.6002903 -2.6002903 +!p 2.3212831 0.1291133 -2.5847816 -2.5847816 +!p 2.3352108 0.1246413 -2.5693654 -2.5693654 +!p 2.3492220 0.1203056 -2.5540411 -2.5540411 +!p 2.3633174 0.1161025 -2.5388081 -2.5388081 +!p 2.3774973 0.1120288 -2.5236661 -2.5236661 +!p 2.3917623 0.1080811 -2.5086144 -2.5086144 +!p 2.4061128 0.1042560 -2.4936524 -2.4936524 +!p 2.4205495 0.1005505 -2.4787797 -2.4787797 +!p 2.4350728 0.0969613 -2.4639957 -2.4639957 +!p 2.4496832 0.0934854 -2.4492998 -2.4492998 +!p 2.4643813 0.0901197 -2.4346916 -2.4346916 +!p 2.4791676 0.0868613 -2.4201705 -2.4201705 +!p 2.4940426 0.0837074 -2.4057361 -2.4057361 +!p 2.5090069 0.0806549 -2.3913877 -2.3913877 +!p 2.5240609 0.0777013 -2.3771249 -2.3771249 +!p 2.5392053 0.0748437 -2.3629472 -2.3629472 +!p 2.5544405 0.0720794 -2.3488540 -2.3488540 +!p 2.5697672 0.0694060 -2.3348449 -2.3348449 + !L 0.0099763 -9.5650367 + !L 0.0200878 -9.5628768 + !L 0.0301713 -9.5592854 + !L 0.0402066 -9.5543000 + !L 0.0504685 -9.5477659 + !L 0.0607516 -9.5397866 + !L 0.0709750 -9.5304622 + !L 0.0814440 -9.5195102 + !L 0.0917949 -9.5073220 + !L 0.1022309 -9.4937048 + !L 0.1124993 -9.4790437 + !L 0.1230608 -9.4627002 + !L 0.1338108 -9.4447928 + !L 0.1446322 -9.4255162 + !L 0.1553964 -9.4051414 + !L 0.1659658 -9.3840119 + !L 0.1761970 -9.3625352 + !L 0.1870588 -9.3386702 + !L 0.1974059 -9.3149507 + !L 0.2083252 -9.2889101 + !L 0.2185374 -9.2636474 + !L 0.2292501 -9.2362305 + !L 0.2404880 -9.2064909 + !L 0.2507721 -9.1784213 + !L 0.2614961 -9.1483044 + !L 0.2726786 -9.1160015 + !L 0.2843393 -9.0813641 + !L 0.2947303 -9.0496969 + !L 0.3055010 -9.0160920 + !L 0.3166653 -8.9804370 + !L 0.3282377 -8.9426129 + !L 0.3402329 -8.9024941 + !L 0.3505631 -8.8672132 + !L 0.3612070 -8.8301657 + !L 0.3721740 -8.7912674 + !L 0.3834740 -8.7504301 + !L 0.3951171 -8.7075624 + !L 0.4071137 -8.6625688 + !L 0.4194746 -8.6153508 + !L 0.4296329 -8.5759062 + !L 0.4400373 -8.5349190 + !L 0.4506936 -8.4923342 + !L 0.4616080 -8.4480960 + !L 0.4727867 -8.4021476 + !L 0.4842361 -8.3544314 + !L 0.4959628 -8.3048894 + !L 0.5079734 -8.2534633 + !L 0.5202750 -8.2000949 + !L 0.5328744 -8.1447263 + !L 0.5457789 -8.0873005 + !L 0.5589960 -8.0277613 + !L 0.5691184 -7.9816874 + !L 0.5794241 -7.9343720 + !L 0.5899165 -7.8857936 + !L 0.6005988 -7.8359320 + !L 0.6114746 -7.7847676 + !L 0.6225473 -7.7322824 + !L 0.6338205 -7.6784596 + !L 0.6452979 -7.6232842 + !L 0.6569831 -7.5667426 + !L 0.6688799 -7.5088235 + !L 0.6809921 -7.4495175 + !L 0.6933236 -7.3888175 + !L 0.7058785 -7.3267191 + !L 0.7186607 -7.2632206 + !L 0.7316743 -7.1983231 + !L 0.7449237 -7.1320311 + !L 0.7584129 -7.0643522 + !L 0.7721464 -6.9952979 + !L 0.7861286 -6.9248832 + !L 0.8003640 -6.8531274 + !L 0.8148571 -6.7800539 + !L 0.8296128 -6.7056906 + !L 0.8446356 -6.6300700 + !L 0.8548016 -6.5789761 + !L 0.8650900 -6.5273522 + !L 0.8755022 -6.4752116 + !L 0.8860398 -6.4225689 + !L 0.8967041 -6.3694393 + !L 0.9074969 -6.3158394 + !L 0.9184195 -6.2617868 + !L 0.9294736 -6.2073003 + !L 0.9406607 -6.1523997 + !L 0.9519825 -6.0971060 + !L 0.9634406 -6.0414413 + !L 0.9750366 -5.9854290 + !L 0.9867721 -5.9290936 + !L 0.9986489 -5.8724606 + !L 1.0106686 -5.8155568 + !L 1.0228330 -5.7584102 + !L 1.0351439 -5.7010497 + !L 1.0476028 -5.6435057 + !L 1.0602118 -5.5858092 + !L 1.0729725 -5.5279926 + !L 1.0858868 -5.4700891 + !L 1.0989565 -5.4121331 + !L 1.1121836 -5.3541594 + !L 1.1255698 -5.2962042 + !L 1.1391172 -5.2383039 + !L 1.1528276 -5.1804958 + !L 1.1667030 -5.1227700 + !L 1.1807455 -5.0652289 + !L 1.1949569 -5.0078948 + !L 1.2093394 -4.9508058 + !L 1.2238950 -4.8939998 + !L 1.2386258 -4.8375143 + !L 1.2535339 -4.7813859 + !L 1.2686215 -4.7256503 + !L 1.2838906 -4.6703415 + !L 1.2993435 -4.6154917 + !L 1.3149824 -4.5611310 + !L 1.3308095 -4.5072863 + !L 1.3468271 -4.4539813 + !L 1.3630375 -4.4012356 + !L 1.3794431 -4.3490641 + !L 1.3960460 -4.2974761 + !L 1.4128489 -4.2464744 + !L 1.4298539 -4.1960564 + !L 1.4470636 -4.1462177 + !L 1.4644805 -4.0969546 + !L 1.4821070 -4.0482629 + !L 1.4999456 -4.0001388 + !L 1.5179990 -3.9525784 + !L 1.5362696 -3.9055775 + !L 1.5547601 -3.8591316 + !L 1.5734732 -3.8132360 + !L 1.5924115 -3.7678854 + !L 1.6115778 -3.7230740 + !L 1.6309748 -3.6787956 + !L 1.6506052 -3.6350438 + !L 1.6704719 -3.5918123 + !L 1.6804947 -3.5703898 + !L 1.6905777 -3.5490951 + !L 1.7007211 -3.5279273 + !L 1.7109255 -3.5068858 + !L 1.7211910 -3.4859698 + !L 1.7315182 -3.4651786 + !L 1.7419073 -3.4445113 + !L 1.7523587 -3.4239674 + !L 1.7628729 -3.4035459 + !L 1.7734501 -3.3832463 + !L 1.7840908 -3.3630678 + !L 1.7947953 -3.3430095 + !L 1.8055641 -3.3230710 + !L 1.8163975 -3.3032513 + !L 1.8272959 -3.2835499 + !L 1.8382597 -3.2639660 + !L 1.8492892 -3.2444988 + !L 1.8603849 -3.2251478 + !L 1.8715473 -3.2059122 + !L 1.8827765 -3.1867913 + !L 1.8940732 -3.1677845 + !L 1.9054376 -3.1488910 + !L 1.9168703 -3.1301103 + !L 1.9283715 -3.1114415 + !L 1.9399417 -3.0928841 + !L 1.9515814 -3.0744373 + !L 1.9632909 -3.0561006 + !L 1.9750706 -3.0378733 + !L 1.9869210 -3.0197547 + !L 1.9988425 -3.0017441 + !L 2.0108356 -2.9838409 + !L 2.0229006 -2.9660446 + !L 2.0350380 -2.9483544 + !L 2.0472482 -2.9307697 + !L 2.0595317 -2.9132898 + !L 2.0718889 -2.8959143 + !L 2.0843203 -2.8786423 + !L 2.0968262 -2.8614734 + !L 2.1094071 -2.8444069 + !L 2.1220636 -2.8274421 + !L 2.1347960 -2.8105786 + !L 2.1476047 -2.7938156 + !L 2.1604904 -2.7771526 + !L 2.1734533 -2.7605890 + !L 2.1864940 -2.7441242 + !L 2.1996130 -2.7277576 + !L 2.2128107 -2.7114886 + !L 2.2260875 -2.6953166 + !L 2.2394441 -2.6792411 + !L 2.2528807 -2.6632615 + !L 2.2663980 -2.6473771 + !L 2.2799964 -2.6315876 + !L 2.2936764 -2.6158921 + !L 2.3074384 -2.6002903 + !L 2.3212831 -2.5847816 + !L 2.3352108 -2.5693654 + !L 2.3492220 -2.5540411 + !L 2.3633174 -2.5388081 + !L 2.3774973 -2.5236661 + !L 2.3917623 -2.5086144 + !L 2.4061128 -2.4936524 + !L 2.4205495 -2.4787797 + !L 2.4350728 -2.4639957 + !L 2.4496832 -2.4492998 + !L 2.4643813 -2.4346916 + !L 2.4791676 -2.4201705 + !L 2.4940426 -2.4057361 + !L 2.5090069 -2.3913877 + !L 2.5240609 -2.3771249 + !L 2.5392053 -2.3629472 + !L 2.5544405 -2.3488540 + !L 2.5697672 -2.3348449 + + + radii, charge, core charge, model core charge + +!r 0.0200878 4.7392428 53.3547306 0.0000000 +!r 0.0301713 4.7698714 53.3547306 0.0000000 +!r 0.0402066 4.8123636 53.3547306 0.0000000 +!r 0.0504685 4.8680075 53.3547306 0.0000000 +!r 0.0607516 4.9358738 53.3547306 0.0000000 +!r 0.0709750 5.0150466 53.3547306 0.0000000 +!r 0.0814440 5.1078297 53.3547306 0.0000000 +!r 0.0917949 5.2107792 53.3547306 0.0000000 +!r 0.1022309 5.3253688 53.3547306 0.0000000 +!r 0.1124993 5.4481686 53.3547306 0.0000000 +!r 0.1230608 5.5842753 53.3547306 0.0000000 +!r 0.1338108 5.7323473 53.3547306 0.0000000 +!r 0.1446322 5.8903725 53.3547306 0.0000000 +!r 0.1553964 6.0557065 53.3547306 0.0000000 +!r 0.1659658 6.2251626 53.3547306 0.0000000 +!r 0.1761970 6.3951472 53.3547306 0.0000000 +!r 0.1870588 6.5811723 53.3547306 0.0000000 +!r 0.1974059 6.7628839 53.3547306 0.0000000 +!r 0.2083252 6.9585067 53.3547306 0.0000000 +!r 0.2185374 7.1442124 53.3547306 0.0000000 +!r 0.2292501 7.3409995 53.3547306 0.0000000 +!r 0.2404880 7.5486297 53.3547306 0.0000000 +!r 0.2507721 7.7388349 53.3547306 0.0000000 +!r 0.2614961 7.9364901 53.3547306 0.0000000 +!r 0.2726786 8.1409100 53.3547306 0.0000000 +!r 0.2843393 8.3511891 46.4389506 0.0000000 +!r 0.2947303 8.5352239 39.8090823 0.0000000 +!r 0.3055010 8.7218309 33.9450362 0.0000000 +!r 0.3166653 8.9099572 28.7863912 0.0000000 +!r 0.3282377 9.0983737 24.2736445 0.0000000 +!r 0.3402329 9.2856632 20.3487125 0.0000000 +!r 0.3505631 9.4397184 17.4863432 0.0000000 +!r 0.3612070 9.5908308 14.9617701 0.0000000 +!r 0.3721740 9.7378578 12.7449024 0.0000000 +!r 0.3834740 9.8795567 10.8070149 0.0000000 +!r 0.3951171 10.0145861 9.1208488 0.0000000 +!r 0.4071137 10.1415101 7.6606916 0.0000000 +!r 0.4194746 10.2588046 6.4024348 0.0000000 +!r 0.4296329 10.3446314 5.5260436 0.0000000 +!r 0.4400373 10.4224171 4.7537177 0.0000000 +!r 0.4506936 10.4912859 4.0753960 0.0000000 +!r 0.4616080 10.5503449 3.4816908 0.0000000 +!r 0.4727867 10.5986909 2.9638782 0.0000000 +!r 0.4842361 10.6354186 2.5138843 0.0000000 +!r 0.4959628 10.6596287 2.1242672 0.0000000 +!r 0.5079734 10.6704385 1.7881965 0.0000000 +!r 0.5202750 10.6669922 1.4994294 0.0000000 +!r 0.5328744 10.6484730 1.2522845 0.0000000 +!r 0.5457789 10.6141154 1.0416143 0.0000000 +!r 0.5589960 10.5632190 0.8627749 0.0000000 +!r 0.5691184 10.5138155 0.7470088 0.0000000 +!r 0.5794241 10.4545283 0.6451981 0.0000000 +!r 0.5899165 10.3851616 0.5558807 0.0000000 +!r 0.6005988 10.3055554 0.4777195 0.0000000 +!r 0.6114746 10.2155896 0.4094950 0.0000000 +!r 0.6225473 10.1151864 0.3500980 0.0000000 +!r 0.6338205 10.0043139 0.2985222 0.0000000 +!r 0.6452979 9.8829888 0.2538577 0.0000000 +!r 0.6569831 9.7512789 0.2152834 0.0000000 +!r 0.6688799 9.6093054 0.1820612 0.0000000 +!r 0.6809921 9.4572447 0.1535290 0.0000000 +!r 0.6933236 9.2953299 0.1290947 0.0000000 +!r 0.7058785 9.1238515 0.1082307 0.0000000 +!r 0.7186607 8.9431580 0.0904679 0.0000000 +!r 0.7316743 8.7536556 0.0753910 0.0000000 +!r 0.7449237 8.5558073 0.0626330 0.0000000 +!r 0.7584129 8.3501311 0.0518707 0.0000000 +!r 0.7721464 8.1371981 0.0428207 0.0000000 +!r 0.7861286 7.9176291 0.0352351 0.0000000 +!r 0.8003640 7.6920913 0.0288976 0.0000000 +!r 0.8148571 7.4612934 0.0236206 0.0000000 +!r 0.8296128 7.2259806 0.0192414 0.0000000 +!r 0.8446356 6.9869288 0.0156197 0.0000000 +!r 0.8548016 6.8258782 0.0135659 0.0000000 +!r 0.8650900 6.6637629 0.0117635 0.0000000 +!r 0.8755022 6.5008270 0.0101842 0.0000000 +!r 0.8860398 6.3373162 0.0088026 0.0000000 +!r 0.8967041 6.1734767 0.0075960 0.0000000 +!r 0.9074969 6.0095540 0.0065439 0.0000000 +!r 0.9184195 5.8457920 0.0056281 0.0000000 +!r 0.9294736 5.6824321 0.0048322 0.0000000 +!r 0.9406607 5.5197117 0.0041418 0.0000000 +!r 0.9519825 5.3578637 0.0035439 0.0000000 +!r 0.9634406 5.1971150 0.0030270 0.0000000 +!r 0.9750366 5.0376861 0.0025809 0.0000000 +!r 0.9867721 4.8797895 0.0021966 0.0000000 +!r 0.9986489 4.7236292 0.0018661 0.0000000 +!r 1.0106686 4.5693999 0.0015825 0.0000000 +!r 1.0228330 4.4172860 0.0013395 0.0000000 +!r 1.0351439 4.2674611 0.0011317 0.0000000 +!r 1.0476028 4.1200872 0.0009543 0.0000000 +!r 1.0602118 3.9753142 0.0008031 0.0000000 +!r 1.0729725 3.8332796 0.0006747 0.0000000 +!r 1.0858868 3.6941079 0.0005656 0.0000000 +!r 1.0989565 3.5579103 0.0004732 0.0000000 +!r 1.1121836 3.4247849 0.0003952 0.0000000 +!r 1.1255698 3.2948160 0.0003293 0.0000000 +!r 1.1391172 3.1680748 0.0002739 0.0000000 +!r 1.1528276 3.0446188 0.0002273 0.0000000 +!r 1.1667030 2.9244926 0.0001882 0.0000000 +!r 1.1807455 2.8077276 0.0001556 0.0000000 +!r 1.1949569 2.6943430 0.0001283 0.0000000 +!r 1.2093394 2.5843457 0.0001056 0.0000000 +!r 1.2238950 2.4777312 0.0000867 0.0000000 +!r 1.2386258 2.3744840 0.0000710 0.0000000 +!r 1.2535339 2.2745782 0.0000580 0.0000000 +!r 1.2686215 2.1779786 0.0000473 0.0000000 +!r 1.2838906 2.0846410 0.0000385 0.0000000 +!r 1.2993435 1.9945133 0.0000313 0.0000000 +!r 1.3149824 1.9075364 0.0000253 0.0000000 +!r 1.3308095 1.8236449 0.0000205 0.0000000 +!r 1.3468271 1.7427682 0.0000165 0.0000000 +!r 1.3630375 1.6648313 0.0000133 0.0000000 +!r 1.3794431 1.5897557 0.0000106 0.0000000 +!r 1.3960460 1.5174606 0.0000085 0.0000000 +!r 1.4128489 1.4478635 0.0000068 0.0000000 +!r 1.4298539 1.3808815 0.0000054 0.0000000 +!r 1.4470636 1.3164316 0.0000043 0.0000000 +!r 1.4644805 1.2544320 0.0000034 0.0000000 +!r 1.4821070 1.1948027 0.0000027 0.0000000 +!r 1.4999456 1.1374662 0.0000021 0.0000000 +!r 1.5179990 1.0823479 0.0000017 0.0000000 +!r 1.5362696 1.0293770 0.0000013 0.0000000 +!r 1.5547601 0.9784865 0.0000010 0.0000000 +!r 1.5734732 0.9296138 0.0000008 0.0000000 +!r 1.5924115 0.8827006 0.0000006 0.0000000 +!r 1.6115778 0.8376930 0.0000005 0.0000000 +!r 1.6309748 0.7945402 0.0000004 0.0000000 +!r 1.6506052 0.7531925 0.0000003 0.0000000 +!r 1.6704719 0.7135995 0.0000002 0.0000000 +!r 1.6804947 0.6944453 0.0000002 0.0000000 +!r 1.6905777 0.6757110 0.0000002 0.0000000 +!r 1.7007211 0.6573902 0.0000001 0.0000000 +!r 1.7109255 0.6394767 0.0000001 0.0000000 +!r 1.7211910 0.6219641 0.0000001 0.0000000 +!r 1.7315182 0.6048463 0.0000001 0.0000000 +!r 1.7419073 0.5881170 0.0000001 0.0000000 +!r 1.7523587 0.5717700 0.0000001 0.0000000 +!r 1.7628729 0.5557990 0.0000001 0.0000000 +!r 1.7734501 0.5401980 0.0000001 0.0000000 +!r 1.7840908 0.5249607 0.0000000 0.0000000 +!r 1.7947953 0.5100810 0.0000000 0.0000000 +!r 1.8055641 0.4955529 0.0000000 0.0000000 +!r 1.8163975 0.4813702 0.0000000 0.0000000 +!r 1.8272959 0.4675270 0.0000000 0.0000000 +!r 1.8382597 0.4540172 0.0000000 0.0000000 +!r 1.8492892 0.4408350 0.0000000 0.0000000 +!r 1.8603849 0.4279744 0.0000000 0.0000000 +!r 1.8715473 0.4154296 0.0000000 0.0000000 +!r 1.8827765 0.4031947 0.0000000 0.0000000 +!r 1.8940732 0.3912639 0.0000000 0.0000000 +!r 1.9054376 0.3796317 0.0000000 0.0000000 +!r 1.9168703 0.3682922 0.0000000 0.0000000 +!r 1.9283715 0.3572398 0.0000000 0.0000000 +!r 1.9399417 0.3464691 0.0000000 0.0000000 +!r 1.9515814 0.3359745 0.0000000 0.0000000 +!r 1.9632909 0.3257504 0.0000000 0.0000000 +!r 1.9750706 0.3157916 0.0000000 0.0000000 +!r 1.9869210 0.3060927 0.0000000 0.0000000 +!r 1.9988425 0.2966484 0.0000000 0.0000000 +!r 2.0108356 0.2874534 0.0000000 0.0000000 +!r 2.0229006 0.2785027 0.0000000 0.0000000 +!r 2.0350380 0.2697911 0.0000000 0.0000000 +!r 2.0472482 0.2613135 0.0000000 0.0000000 +!r 2.0595317 0.2530650 0.0000000 0.0000000 +!r 2.0718889 0.2450407 0.0000000 0.0000000 +!r 2.0843203 0.2372358 0.0000000 0.0000000 +!r 2.0968262 0.2296453 0.0000000 0.0000000 +!r 2.1094071 0.2222647 0.0000000 0.0000000 +!r 2.1220636 0.2150892 0.0000000 0.0000000 +!r 2.1347960 0.2081143 0.0000000 0.0000000 +!r 2.1476047 0.2013355 0.0000000 0.0000000 +!r 2.1604904 0.1947482 0.0000000 0.0000000 +!r 2.1734533 0.1883481 0.0000000 0.0000000 +!r 2.1864940 0.1821309 0.0000000 0.0000000 +!r 2.1996130 0.1760923 0.0000000 0.0000000 +!r 2.2128107 0.1702282 0.0000000 0.0000000 +!r 2.2260875 0.1645343 0.0000000 0.0000000 +!r 2.2394441 0.1590067 0.0000000 0.0000000 +!r 2.2528807 0.1536413 0.0000000 0.0000000 +!r 2.2663980 0.1484343 0.0000000 0.0000000 +!r 2.2799964 0.1433817 0.0000000 0.0000000 +!r 2.2936764 0.1384798 0.0000000 0.0000000 +!r 2.3074384 0.1337249 0.0000000 0.0000000 +!r 2.3212831 0.1291133 0.0000000 0.0000000 +!r 2.3352108 0.1246413 0.0000000 0.0000000 +!r 2.3492220 0.1203056 0.0000000 0.0000000 +!r 2.3633174 0.1161025 0.0000000 0.0000000 +!r 2.3774973 0.1120288 0.0000000 0.0000000 +!r 2.3917623 0.1080811 0.0000000 0.0000000 +!r 2.4061128 0.1042560 0.0000000 0.0000000 +!r 2.4205495 0.1005505 0.0000000 0.0000000 +!r 2.4350728 0.0969613 0.0000000 0.0000000 +!r 2.4496832 0.0934854 0.0000000 0.0000000 +!r 2.4643813 0.0901197 0.0000000 0.0000000 +!r 2.4791676 0.0868613 0.0000000 0.0000000 +!r 2.4940426 0.0837074 0.0000000 0.0000000 +!r 2.5090069 0.0806549 0.0000000 0.0000000 +!r 2.5240609 0.0777013 0.0000000 0.0000000 +!r 2.5392053 0.0748437 0.0000000 0.0000000 +!r 2.5544405 0.0720794 0.0000000 0.0000000 +!r 2.5697672 0.0694060 0.0000000 0.0000000 +!r 2.5851858 0.0668208 0.0000000 0.0000000 +!r 2.6006969 0.0643213 0.0000000 0.0000000 +!r 2.6163011 0.0619052 0.0000000 0.0000000 +!r 2.6319989 0.0595699 0.0000000 0.0000000 +!r 2.6477909 0.0573132 0.0000000 0.0000000 +!r 2.6636776 0.0551329 0.0000000 0.0000000 +!r 2.6796597 0.0530266 0.0000000 0.0000000 +!r 2.6957376 0.0509923 0.0000000 0.0000000 +!r 2.7119121 0.0490277 0.0000000 0.0000000 +!r 2.7281835 0.0471309 0.0000000 0.0000000 +!r 2.7445526 0.0452998 0.0000000 0.0000000 +!r 2.7610199 0.0435324 0.0000000 0.0000000 +!r 2.7775861 0.0418268 0.0000000 0.0000000 +!r 2.7942516 0.0401812 0.0000000 0.0000000 +!r 2.8110171 0.0385936 0.0000000 0.0000000 +!r 2.8278832 0.0370624 0.0000000 0.0000000 +!r 2.8448505 0.0355857 0.0000000 0.0000000 +!r 2.8619196 0.0341619 0.0000000 0.0000000 +!r 2.8790911 0.0327893 0.0000000 0.0000000 +!r 2.8963657 0.0314664 0.0000000 0.0000000 +!r 2.9137439 0.0301915 0.0000000 0.0000000 +!r 2.9312263 0.0289631 0.0000000 0.0000000 +!r 2.9488137 0.0277797 0.0000000 0.0000000 +!r 2.9665066 0.0266400 0.0000000 0.0000000 +!r 2.9843056 0.0255424 0.0000000 0.0000000 +!r 3.0022114 0.0244856 0.0000000 0.0000000 +!r 3.0202247 0.0234682 0.0000000 0.0000000 +!r 3.0383461 0.0224891 0.0000000 0.0000000 +!r 3.0565761 0.0215468 0.0000000 0.0000000 +!r 3.0749156 0.0206403 0.0000000 0.0000000 +!r 3.0933651 0.0197682 0.0000000 0.0000000 +!r 3.1119253 0.0189295 0.0000000 0.0000000 +!r 3.1305968 0.0181229 0.0000000 0.0000000 +!r 3.1493804 0.0173475 0.0000000 0.0000000 +!r 3.1682767 0.0166022 0.0000000 0.0000000 +!r 3.1872863 0.0158858 0.0000000 0.0000000 +!r 3.2064101 0.0151975 0.0000000 0.0000000 +!r 3.2256485 0.0145362 0.0000000 0.0000000 +!r 3.2450024 0.0139011 0.0000000 0.0000000 +!r 3.2644724 0.0132911 0.0000000 0.0000000 +!r 3.2840593 0.0127054 0.0000000 0.0000000 +!r 3.3037636 0.0121432 0.0000000 0.0000000 +!r 3.3235862 0.0116035 0.0000000 0.0000000 +!r 3.3435277 0.0110857 0.0000000 0.0000000 +!r 3.3635889 0.0105889 0.0000000 0.0000000 +!r 3.3837704 0.0101123 0.0000000 0.0000000 +!r 3.4040730 0.0096553 0.0000000 0.0000000 +!r 3.4244975 0.0092171 0.0000000 0.0000000 +!r 3.4450445 0.0087969 0.0000000 0.0000000 +!r 3.4657147 0.0083942 0.0000000 0.0000000 +!r 3.4865090 0.0080084 0.0000000 0.0000000 +!r 3.5074281 0.0076386 0.0000000 0.0000000 +!r 3.5284726 0.0072845 0.0000000 0.0000000 +!r 3.5496435 0.0069453 0.0000000 0.0000000 +!r 3.5709413 0.0066205 0.0000000 0.0000000 +!r 3.5923670 0.0063096 0.0000000 0.0000000 +!r 3.6139212 0.0060121 0.0000000 0.0000000 +!r 3.6356047 0.0057273 0.0000000 0.0000000 +!r 3.6574183 0.0054549 0.0000000 0.0000000 +!r 3.6793629 0.0051943 0.0000000 0.0000000 +!r 3.7014390 0.0049451 0.0000000 0.0000000 +!r 3.7236477 0.0047068 0.0000000 0.0000000 +!r 3.7459895 0.0044790 0.0000000 0.0000000 +!r 3.7684655 0.0042614 0.0000000 0.0000000 +!r 3.7910763 0.0040534 0.0000000 0.0000000 +!r 3.8138227 0.0038546 0.0000000 0.0000000 +!r 3.8367057 0.0036649 0.0000000 0.0000000 +!r 3.8597259 0.0034836 0.0000000 0.0000000 +!r 3.8828843 0.0033106 0.0000000 0.0000000 +!r 3.9061816 0.0031455 0.0000000 0.0000000 +!r 3.9296187 0.0029879 0.0000000 0.0000000 +!r 3.9531964 0.0028376 0.0000000 0.0000000 +!r 3.9769155 0.0026942 0.0000000 0.0000000 + + +n= 2, l= 0, kap=-1, all-electron wave function, pseudo w-f + +& -10 0.020088 -0.172694 0.030838 +& -10 0.030171 -0.238409 0.046311 +& -10 0.040207 -0.291809 0.061700 +& -10 0.050469 -0.335320 0.077424 +& -10 0.060752 -0.368852 0.093164 +& -10 0.070975 -0.393270 0.108793 +& -10 0.081444 -0.410067 0.124774 +& -10 0.091795 -0.419415 0.140549 +& -10 0.102231 -0.422365 0.156422 +& -10 0.112499 -0.419651 0.172006 +& -10 0.123061 -0.411736 0.187996 +& -10 0.133811 -0.398997 0.204228 +& -10 0.144632 -0.382012 0.220517 +& -10 0.155396 -0.361526 0.236666 +& -10 0.165966 -0.338404 0.252467 +& -10 0.176197 -0.313585 0.267705 +& -10 0.187059 -0.285002 0.283815 +& -10 0.197406 -0.255970 0.299094 +& -10 0.208325 -0.223748 0.315141 +& -10 0.218537 -0.192410 0.330072 +& -10 0.229250 -0.158539 0.345652 +& -10 0.240488 -0.122164 0.361898 +& -10 0.250772 -0.088323 0.376672 +& -10 0.261496 -0.052659 0.391979 +& -10 0.272679 -0.015240 0.407826 +& -10 0.284339 0.023845 0.424219 +& -10 0.294730 0.058593 0.438709 +& -10 0.305501 0.094411 0.453606 +& -10 0.316665 0.131211 0.468907 +& -10 0.328238 0.168895 0.484612 +& -10 0.340233 0.207353 0.500715 +& -10 0.350563 0.239908 0.514432 +& -10 0.361207 0.272845 0.528416 +& -10 0.372174 0.306085 0.542657 +& -10 0.383474 0.339543 0.557146 +& -10 0.395117 0.373132 0.571873 +& -10 0.407114 0.406760 0.586824 +& -10 0.419475 0.440331 0.601982 +& -10 0.429633 0.467078 0.614245 +& -10 0.440037 0.493673 0.626618 +& -10 0.450694 0.520059 0.639089 +& -10 0.461608 0.546184 0.651644 +& -10 0.472787 0.571990 0.664267 +& -10 0.484236 0.597422 0.676942 +& -10 0.495963 0.622422 0.689650 +& -10 0.507973 0.646932 0.702371 +& -10 0.520275 0.670896 0.715082 +& -10 0.532874 0.694255 0.727759 +& -10 0.545779 0.716952 0.740376 +& -10 0.558996 0.738931 0.752904 +& -10 0.569118 0.754910 0.762223 +& -10 0.579424 0.770430 0.771461 +& -10 0.589916 0.785470 0.780602 +& -10 0.600599 0.800005 0.789632 +& -10 0.611475 0.814016 0.798534 +& -10 0.622547 0.827480 0.807290 +& -10 0.633821 0.840377 0.815885 +& -10 0.645298 0.852687 0.824297 +& -10 0.656983 0.864392 0.832509 +& -10 0.668880 0.875473 0.840500 +& -10 0.680992 0.885913 0.848249 +& -10 0.693324 0.895696 0.855734 +& -10 0.705878 0.904807 0.862934 +& -10 0.718661 0.913232 0.869825 +& -10 0.731674 0.920957 0.876384 +& -10 0.744924 0.927971 0.882587 +& -10 0.758413 0.934263 0.888410 +& -10 0.772146 0.939823 0.893828 +& -10 0.786129 0.944645 0.898815 +& -10 0.800364 0.948721 0.903348 +& -10 0.814857 0.952045 0.907401 +& -10 0.829613 0.954614 0.910950 +& -10 0.844636 0.956424 0.913970 +& -10 0.854802 0.957210 0.915677 +& -10 0.865090 0.957658 0.917132 +& -10 0.875502 0.957769 0.918327 +& -10 0.886040 0.957543 0.919255 +& -10 0.896704 0.956982 0.919912 +& -10 0.907497 0.956086 0.920289 +& -10 0.918419 0.954857 0.920382 +& -10 0.929474 0.953297 0.920184 +& -10 0.940661 0.951407 0.919691 +& -10 0.951983 0.949190 0.918897 +& -10 0.963441 0.946648 0.917798 +& -10 0.975037 0.943784 0.916390 +& -10 0.986772 0.940602 0.914668 +& -10 0.998649 0.937104 0.912629 +& -10 1.010669 0.933294 0.910272 +& -10 1.022833 0.929176 0.907592 +& -10 1.035144 0.924754 0.904588 +& -10 1.047603 0.920033 0.901260 +& -10 1.060212 0.915017 0.897606 +& -10 1.072972 0.909711 0.893626 +& -10 1.085887 0.904120 0.889321 +& -10 1.098957 0.898249 0.884692 +& -10 1.112184 0.892104 0.879740 +& -10 1.125570 0.885690 0.874468 +& -10 1.139117 0.879014 0.868880 +& -10 1.152828 0.872082 0.862978 +& -10 1.166703 0.864899 0.856767 +& -10 1.180745 0.857473 0.850253 +& -10 1.194957 0.849810 0.843441 +& -10 1.209339 0.841917 0.836336 +& -10 1.223895 0.833800 0.828947 +& -10 1.238626 0.825468 0.821281 +& -10 1.253534 0.816926 0.813346 +& -10 1.268621 0.808183 0.805150 +& -10 1.283891 0.799247 0.796702 +& -10 1.299343 0.790124 0.788014 +& -10 1.314982 0.780822 0.779094 +& -10 1.330810 0.771350 0.769953 +& -10 1.346827 0.761715 0.760602 +& -10 1.363038 0.751925 0.751053 +& -10 1.379443 0.741988 0.741317 +& -10 1.396046 0.731912 0.731405 +& -10 1.412849 0.721706 0.721330 +& -10 1.429854 0.711377 0.711105 +& -10 1.447064 0.700934 0.700740 +& -10 1.464480 0.690384 0.690248 +& -10 1.482107 0.679737 0.679641 +& -10 1.499946 0.669001 0.668931 +& -10 1.517999 0.658183 0.658129 +& -10 1.536270 0.647291 0.647247 +& -10 1.554760 0.636335 0.636295 +& -10 1.573473 0.625322 0.625284 +& -10 1.592412 0.614260 0.614223 +& -10 1.611578 0.603157 0.603121 +& -10 1.630975 0.592022 0.591986 +& -10 1.650605 0.580861 0.580826 +& -10 1.670472 0.569684 0.569649 +& -10 1.680495 0.564091 0.564057 +& -10 1.690578 0.558497 0.558463 +& -10 1.700721 0.552903 0.552869 +& -10 1.710925 0.547309 0.547276 +& -10 1.721191 0.541716 0.541683 +& -10 1.731518 0.536126 0.536094 +& -10 1.741907 0.530539 0.530507 +& -10 1.752359 0.524957 0.524925 +& -10 1.762873 0.519380 0.519348 +& -10 1.773450 0.513808 0.513777 +& -10 1.784091 0.508244 0.508213 +& -10 1.794795 0.502688 0.502657 +& -10 1.805564 0.497140 0.497110 +& -10 1.816397 0.491602 0.491572 +& -10 1.827296 0.486074 0.486045 +& -10 1.838260 0.480558 0.480529 +& -10 1.849289 0.475054 0.475025 +& -10 1.860385 0.469563 0.469534 +& -10 1.871547 0.464085 0.464057 +& -10 1.882777 0.458623 0.458595 +& -10 1.894073 0.453175 0.453148 +& -10 1.905438 0.447744 0.447717 +& -10 1.916870 0.442331 0.442304 +& -10 1.928371 0.436935 0.436908 +& -10 1.939942 0.431557 0.431531 +& -10 1.951581 0.426199 0.426173 +& -10 1.963291 0.420861 0.420835 +& -10 1.975071 0.415544 0.415518 +& -10 1.986921 0.410248 0.410223 +& -10 1.998843 0.404974 0.404950 +& -10 2.010836 0.399724 0.399699 +& -10 2.022901 0.394497 0.394473 +& -10 2.035038 0.389295 0.389271 +& -10 2.047248 0.384117 0.384093 +& -10 2.059532 0.378965 0.378942 +& -10 2.071889 0.373840 0.373817 +& -10 2.084320 0.368741 0.368718 +& -10 2.096826 0.363670 0.363647 +& -10 2.109407 0.358627 0.358605 +& -10 2.122064 0.353612 0.353591 +& -10 2.134796 0.348628 0.348606 +& -10 2.147605 0.343672 0.343651 +& -10 2.160490 0.338748 0.338727 +& -10 2.173453 0.333854 0.333833 +& -10 2.186494 0.328992 0.328972 +& -10 2.199613 0.324162 0.324142 +& -10 2.212811 0.319365 0.319345 +& -10 2.226088 0.314600 0.314580 +& -10 2.239444 0.309869 0.309850 +& -10 2.252881 0.305172 0.305153 +& -10 2.266398 0.300509 0.300491 +& -10 2.279996 0.295882 0.295863 +& -10 2.293676 0.291289 0.291271 +& -10 2.307438 0.286733 0.286714 +& -10 2.321283 0.282212 0.282194 +& -10 2.335211 0.277728 0.277710 +& -10 2.349222 0.273281 0.273263 +& -10 2.363317 0.268871 0.268854 +& -10 2.377497 0.264498 0.264481 +& -10 2.391762 0.260164 0.260147 +& -10 2.406113 0.255867 0.255851 +& -10 2.420550 0.251610 0.251594 +& -10 2.435073 0.247391 0.247375 +& -10 2.449683 0.243211 0.243195 +& -10 2.464381 0.239070 0.239055 +& -10 2.479168 0.234970 0.234954 +& -10 2.494043 0.230909 0.230894 +& -10 2.509007 0.226888 0.226873 +& -10 2.524061 0.222907 0.222893 +& -10 2.539205 0.218967 0.218953 +& -10 2.554441 0.215068 0.215054 +& -10 2.569767 0.211210 0.211196 +& -10 2.585186 0.207392 0.207379 +& -10 2.600697 0.203616 0.203603 +& -10 2.616301 0.199881 0.199868 +& -10 2.631999 0.196188 0.196175 +& -10 2.647791 0.192536 0.192523 +& -10 2.663678 0.188925 0.188913 +& -10 2.679660 0.185357 0.185345 +& -10 2.695738 0.181830 0.181818 +& -10 2.711912 0.178345 0.178333 +& -10 2.728184 0.174902 0.174891 +& -10 2.744553 0.171502 0.171490 +& -10 2.761020 0.168143 0.168131 +& -10 2.777586 0.164826 0.164814 +& -10 2.794252 0.161551 0.161540 +& -10 2.811017 0.158318 0.158307 +& -10 2.827883 0.155127 0.155116 +& -10 2.844850 0.151977 0.151967 +& -10 2.861920 0.148870 0.148860 +& -10 2.879091 0.145805 0.145795 +& -10 2.896366 0.142781 0.142771 +& -10 2.913744 0.139799 0.139789 +& -10 2.931226 0.136859 0.136849 +& -10 2.948814 0.133960 0.133951 +& -10 2.966507 0.131102 0.131093 +& -10 2.984306 0.128286 0.128277 +& -10 3.002211 0.125511 0.125502 +& -10 3.020225 0.122777 0.122768 +& -10 3.038346 0.120083 0.120075 +& -10 3.056576 0.117431 0.117422 +& -10 3.074916 0.114818 0.114810 +& -10 3.093365 0.112246 0.112238 +& -10 3.111925 0.109715 0.109707 +& -10 3.130597 0.107223 0.107215 +& -10 3.149380 0.104771 0.104763 +& -10 3.168277 0.102358 0.102351 +& -10 3.187286 0.099985 0.099978 +& -10 3.206410 0.097651 0.097643 +& -10 3.225649 0.095355 0.095348 +& -10 3.245002 0.093098 0.093091 +& -10 3.264472 0.090880 0.090873 +& -10 3.284059 0.088699 0.088693 +& -10 3.303764 0.086556 0.086550 +& -10 3.323586 0.084451 0.084445 +& -10 3.343528 0.082383 0.082377 +& -10 3.363589 0.080352 0.080346 +& -10 3.383770 0.078357 0.078352 +& -10 3.404073 0.076399 0.076394 +& -10 3.424497 0.074477 0.074471 +& -10 3.445044 0.072591 0.072585 +& -10 3.465715 0.070740 0.070734 +& -10 3.486509 0.068924 0.068918 +& -10 3.507428 0.067142 0.067137 +& -10 3.528473 0.065395 0.065390 +& -10 3.549643 0.063682 0.063677 +& -10 3.570941 0.062003 0.061998 +& -10 3.592367 0.060357 0.060353 +& -10 3.613921 0.058744 0.058740 +& -10 3.635605 0.057164 0.057160 +& -10 3.657418 0.055616 0.055612 +& -10 3.679363 0.054100 0.054096 +& -10 3.701439 0.052616 0.052612 +& -10 3.723648 0.051162 0.051158 +& -10 3.745990 0.049740 0.049736 +& -10 3.768465 0.048348 0.048344 +& -10 3.791076 0.046985 0.046982 +& -10 3.813823 0.045653 0.045649 +& -10 3.836706 0.044350 0.044346 +& -10 3.859726 0.043075 0.043072 +& -10 3.882884 0.041830 0.041826 +& -10 3.906182 0.040612 0.040608 +& -10 3.929619 0.039422 0.039418 +& -10 3.953196 0.038259 0.038256 +& -10 3.976916 0.037123 0.037120 + + +scattering, iprj= 2, l= 0, kap=-1, all-electron wave function, pseudo w-f + +& -20 0.020088 -0.115970 0.021593 +& -20 0.030171 -0.160054 0.032424 +& -20 0.040207 -0.195822 0.043194 +& -20 0.050469 -0.224890 0.054194 +& -20 0.060752 -0.247194 0.065199 +& -20 0.070975 -0.263314 0.076121 +& -20 0.081444 -0.274239 0.087281 +& -20 0.091795 -0.280097 0.098286 +& -20 0.102231 -0.281588 0.109350 +& -20 0.112499 -0.279221 0.120201 +& -20 0.123061 -0.273285 0.131321 +& -20 0.133811 -0.264041 0.142593 +& -20 0.144632 -0.251889 0.153887 +& -20 0.155396 -0.237345 0.165064 +& -20 0.165966 -0.221011 0.175979 +& -20 0.176197 -0.203537 0.186483 +& -20 0.187059 -0.183466 0.197563 +& -20 0.197406 -0.163124 0.208045 +& -20 0.208325 -0.140591 0.219023 +& -20 0.218537 -0.118716 0.229209 +& -20 0.229250 -0.095114 0.239802 +& -20 0.240488 -0.069814 0.250809 +& -20 0.250772 -0.046320 0.260779 +& -20 0.261496 -0.021610 0.271067 +& -20 0.272679 0.004258 0.281668 +& -20 0.284339 0.031211 0.292579 +& -20 0.294730 0.055109 0.302170 +& -20 0.305501 0.079674 0.311974 +& -20 0.316665 0.104831 0.321982 +& -20 0.328238 0.130498 0.332180 +& -20 0.340233 0.156581 0.342554 +& -20 0.350563 0.178564 0.351320 +& -20 0.361207 0.200702 0.360181 +& -20 0.372174 0.222929 0.369123 +& -20 0.383474 0.245170 0.378129 +& -20 0.395117 0.267349 0.387178 +& -20 0.407114 0.289385 0.396249 +& -20 0.419475 0.311192 0.405314 +& -20 0.429633 0.328412 0.412543 +& -20 0.440037 0.345380 0.419734 +& -20 0.450694 0.362048 0.426868 +& -20 0.461608 0.378363 0.433925 +& -20 0.472787 0.394275 0.440884 +& -20 0.484236 0.409730 0.447720 +& -20 0.495963 0.424674 0.454408 +& -20 0.507973 0.439050 0.460920 +& -20 0.520275 0.452804 0.467225 +& -20 0.532874 0.465879 0.473291 +& -20 0.545779 0.478216 0.479081 +& -20 0.558996 0.489758 0.484558 +& -20 0.569118 0.497859 0.488436 +& -20 0.579424 0.505455 0.492097 +& -20 0.589916 0.512524 0.495522 +& -20 0.600599 0.519041 0.498690 +& -20 0.611475 0.524981 0.501581 +& -20 0.622547 0.530321 0.504173 +& -20 0.633821 0.535039 0.506443 +& -20 0.645298 0.539110 0.508368 +& -20 0.656983 0.542512 0.509922 +& -20 0.668880 0.545222 0.511081 +& -20 0.680992 0.547220 0.511817 +& -20 0.693324 0.548484 0.512105 +& -20 0.705878 0.548994 0.511916 +& -20 0.718661 0.548730 0.511221 +& -20 0.731674 0.547673 0.509992 +& -20 0.744924 0.545804 0.508199 +& -20 0.758413 0.543107 0.505812 +& -20 0.772146 0.539566 0.502801 +& -20 0.786129 0.535164 0.499134 +& -20 0.800364 0.529889 0.494783 +& -20 0.814857 0.523726 0.489716 +& -20 0.829613 0.516664 0.483903 +& -20 0.844636 0.508692 0.477315 +& -20 0.854802 0.502867 0.472478 +& -20 0.865090 0.496631 0.467276 +& -20 0.875502 0.489981 0.461700 +& -20 0.886040 0.482917 0.455742 +& -20 0.896704 0.475436 0.449396 +& -20 0.907497 0.467536 0.442653 +& -20 0.918419 0.459218 0.435508 +& -20 0.929474 0.450480 0.427952 +& -20 0.940661 0.441322 0.419982 +& -20 0.951983 0.431744 0.411590 +& -20 0.963441 0.421746 0.402773 +& -20 0.975037 0.411328 0.393524 +& -20 0.986772 0.400493 0.383841 +& -20 0.998649 0.389241 0.373721 +& -20 1.010669 0.377573 0.363160 +& -20 1.022833 0.365492 0.352156 +& -20 1.035144 0.353001 0.340709 +& -20 1.047603 0.340102 0.328817 +& -20 1.060212 0.326799 0.316481 +& -20 1.072972 0.313094 0.303703 +& -20 1.085887 0.298993 0.290483 +& -20 1.098957 0.284500 0.276825 +& -20 1.112184 0.269619 0.262732 +& -20 1.125570 0.254357 0.248208 +& -20 1.139117 0.238718 0.233259 +& -20 1.152828 0.222710 0.217891 +& -20 1.166703 0.206338 0.202110 +& -20 1.180745 0.189611 0.185925 +& -20 1.194957 0.172535 0.169345 +& -20 1.209339 0.155120 0.152378 +& -20 1.223895 0.137373 0.135035 +& -20 1.238626 0.119305 0.117328 +& -20 1.253534 0.100924 0.099268 +& -20 1.268621 0.082241 0.080867 +& -20 1.283891 0.063267 0.062140 +& -20 1.299343 0.044014 0.043100 +& -20 1.314982 0.024493 0.023761 +& -20 1.330810 0.004717 0.004140 +& -20 1.346827 -0.015301 -0.015749 +& -20 1.363038 -0.035547 -0.035888 +& -20 1.379443 -0.056007 -0.056260 +& -20 1.396046 -0.076666 -0.076849 +& -20 1.412849 -0.097507 -0.097636 +& -20 1.429854 -0.118516 -0.118602 +& -20 1.447064 -0.139674 -0.139728 +& -20 1.464480 -0.160964 -0.160996 +& -20 1.482107 -0.182369 -0.182384 +& -20 1.499946 -0.203868 -0.203873 +& -20 1.517999 -0.225442 -0.225440 +& -20 1.536270 -0.247071 -0.247065 +& -20 1.554760 -0.268734 -0.268726 +& -20 1.573473 -0.290408 -0.290399 +& -20 1.592412 -0.312072 -0.312062 +& -20 1.611578 -0.333701 -0.333690 +& -20 1.630975 -0.355272 -0.355261 +& -20 1.650605 -0.376760 -0.376748 +& -20 1.670472 -0.398139 -0.398126 +& -20 1.680495 -0.408780 -0.408767 +& -20 1.690578 -0.419383 -0.419370 +& -20 1.700721 -0.429946 -0.429932 +& -20 1.710925 -0.440465 -0.440451 +& -20 1.721191 -0.450936 -0.450922 +& -20 1.731518 -0.461357 -0.461342 +& -20 1.741907 -0.471722 -0.471707 +& -20 1.752359 -0.482029 -0.482014 +& -20 1.762873 -0.492274 -0.492259 +& -20 1.773450 -0.502454 -0.502438 +& -20 1.784091 -0.512563 -0.512547 +& -20 1.794795 -0.522600 -0.522583 +& -20 1.805564 -0.532559 -0.532542 +& -20 1.816397 -0.542436 -0.542420 +& -20 1.827296 -0.552229 -0.552212 +& -20 1.838260 -0.561932 -0.561915 +& -20 1.849289 -0.571542 -0.571525 +& -20 1.860385 -0.581055 -0.581037 +& -20 1.871547 -0.590466 -0.590448 +& -20 1.882777 -0.599771 -0.599753 +& -20 1.894073 -0.608966 -0.608948 +& -20 1.905438 -0.618047 -0.618028 +& -20 1.916870 -0.627009 -0.626990 +& -20 1.928371 -0.635848 -0.635829 +& -20 1.939942 -0.644560 -0.644541 +& -20 1.951581 -0.653139 -0.653121 +& -20 1.963291 -0.661583 -0.661564 +& -20 1.975071 -0.669886 -0.669867 +& -20 1.986921 -0.678043 -0.678024 +& -20 1.998843 -0.686050 -0.686031 +& -20 2.010836 -0.693903 -0.693884 +& -20 2.022901 -0.701597 -0.701577 +& -20 2.035038 -0.709126 -0.709107 +& -20 2.047248 -0.716487 -0.716468 +& -20 2.059532 -0.723674 -0.723655 +& -20 2.071889 -0.730683 -0.730664 +& -20 2.084320 -0.737510 -0.737491 +& -20 2.096826 -0.744148 -0.744129 +& -20 2.109407 -0.750594 -0.750575 +& -20 2.122064 -0.756842 -0.756824 +& -20 2.134796 -0.762889 -0.762870 +& -20 2.147605 -0.768727 -0.768709 +& -20 2.160490 -0.774354 -0.774335 +& -20 2.173453 -0.779764 -0.779745 +& -20 2.186494 -0.784951 -0.784933 +& -20 2.199613 -0.789912 -0.789894 +& -20 2.212811 -0.794641 -0.794623 +& -20 2.226088 -0.799133 -0.799115 +& -20 2.239444 -0.803383 -0.803365 +& -20 2.252881 -0.807387 -0.807369 +& -20 2.266398 -0.811139 -0.811122 +& -20 2.279996 -0.814635 -0.814617 +& -20 2.293676 -0.817869 -0.817852 +& -20 2.307438 -0.820837 -0.820820 +& -20 2.321283 -0.823534 -0.823517 +& -20 2.335211 -0.825955 -0.825938 +& -20 2.349222 -0.828095 -0.828079 +& -20 2.363317 -0.829949 -0.829934 +& -20 2.377497 -0.831513 -0.831498 +& -20 2.391762 -0.832782 -0.832767 +& -20 2.406113 -0.833752 -0.833737 +& -20 2.420550 -0.834417 -0.834403 +& -20 2.435073 -0.834773 -0.834759 +& -20 2.449683 -0.834815 -0.834802 +& -20 2.464381 -0.834540 -0.834527 +& -20 2.479168 -0.833943 -0.833930 +& -20 2.494043 -0.833018 -0.833006 +& -20 2.509007 -0.831763 -0.831751 +& -20 2.524061 -0.830173 -0.830161 +& -20 2.539205 -0.828243 -0.828232 +& -20 2.554441 -0.825970 -0.825960 +& -20 2.569767 -0.823351 -0.823341 +& -20 2.585186 -0.820380 -0.820371 +& -20 2.600697 -0.817054 -0.817046 +& -20 2.616301 -0.813371 -0.813362 +& -20 2.631999 -0.809325 -0.809318 +& -20 2.647791 -0.804915 -0.804908 +& -20 2.663678 -0.800136 -0.800129 +& -20 2.679660 -0.794985 -0.794979 +& -20 2.695738 -0.789460 -0.789455 +& -20 2.711912 -0.783558 -0.783554 +& -20 2.728184 -0.777277 -0.777273 +& -20 2.744553 -0.770612 -0.770609 +& -20 2.761020 -0.763564 -0.763561 +& -20 2.777586 -0.756128 -0.756126 +& -20 2.794252 -0.748303 -0.748302 +& -20 2.811017 -0.740088 -0.740088 +& -20 2.827883 -0.731481 -0.731481 +& -20 2.844850 -0.722480 -0.722481 +& -20 2.861920 -0.713085 -0.713086 +& -20 2.879091 -0.703294 -0.703296 +& -20 2.896366 -0.693106 -0.693109 +& -20 2.913744 -0.682522 -0.682526 +& -20 2.931226 -0.671541 -0.671545 +& -20 2.948814 -0.660163 -0.660168 +& -20 2.966507 -0.648387 -0.648394 +& -20 2.984306 -0.636216 -0.636223 +& -20 3.002211 -0.623650 -0.623657 +& -20 3.020225 -0.610689 -0.610697 +& -20 3.038346 -0.597335 -0.597344 +& -20 3.056576 -0.583590 -0.583600 +& -20 3.074916 -0.569455 -0.569467 +& -20 3.093365 -0.554934 -0.554946 +& -20 3.111925 -0.540029 -0.540042 +& -20 3.130597 -0.524743 -0.524756 +& -20 3.149380 -0.509078 -0.509093 +& -20 3.168277 -0.493040 -0.493055 +& -20 3.187286 -0.476631 -0.476647 +& -20 3.206410 -0.459856 -0.459873 +& -20 3.225649 -0.442721 -0.442739 +& -20 3.245002 -0.425230 -0.425248 +& -20 3.264472 -0.407388 -0.407408 +& -20 3.284059 -0.389203 -0.389223 +& -20 3.303764 -0.370679 -0.370700 +& -20 3.323586 -0.351824 -0.351846 +& -20 3.343528 -0.332645 -0.332668 +& -20 3.363589 -0.313150 -0.313174 +& -20 3.383770 -0.293347 -0.293372 +& -20 3.404073 -0.273244 -0.273270 +& -20 3.424497 -0.252851 -0.252877 +& -20 3.445044 -0.232176 -0.232203 +& -20 3.465715 -0.211230 -0.211257 +& -20 3.486509 -0.190023 -0.190051 +& -20 3.507428 -0.168565 -0.168594 +& -20 3.528473 -0.146869 -0.146899 +& -20 3.549643 -0.124946 -0.124976 +& -20 3.570941 -0.102808 -0.102839 +& -20 3.592367 -0.080468 -0.080500 +& -20 3.613921 -0.057939 -0.057972 +& -20 3.635605 -0.035236 -0.035269 +& -20 3.657418 -0.012371 -0.012405 +& -20 3.679363 0.010639 0.010604 +& -20 3.701439 0.033779 0.033744 +& -20 3.723648 0.057034 0.056999 +& -20 3.745990 0.080388 0.080352 +& -20 3.768465 0.103823 0.103786 +& -20 3.791076 0.127323 0.127285 +& -20 3.813823 0.150868 0.150831 +& -20 3.836706 0.174442 0.174404 +& -20 3.859726 0.198025 0.197987 +& -20 3.882884 0.221599 0.221560 +& -20 3.906182 0.245142 0.245102 +& -20 3.929619 0.268635 0.268595 +& -20 3.953196 0.292057 0.292017 +& -20 3.976916 0.315387 0.315347 + + +!J 0 0.009976 0.069866 0.060936 +!J 0 0.018696 0.130821 0.113927 +!J 0 0.027417 0.191575 0.166431 +!J 0 0.036319 0.253273 0.219275 +!J 0 0.045046 0.313360 0.270129 +!J 0 0.053901 0.373817 0.320530 +!J 0 0.062972 0.435114 0.370677 +!J 0 0.071829 0.494255 0.417982 +!J 0 0.080958 0.554366 0.464793 +!J 0 0.090162 0.614002 0.509777 +!J 0 0.099218 0.671630 0.551668 +!J 0 0.108533 0.729716 0.592105 +!J 0 0.117310 0.783257 0.627581 +!J 0 0.126041 0.835283 0.660195 +!J 0 0.135421 0.889722 0.692117 +!J 0 0.144632 0.941615 0.720182 +!J 0 0.153548 0.990293 0.744141 +!J 0 0.163014 1.040213 0.766021 +!J 0 0.172031 1.086004 0.783376 +!J 0 0.181547 1.132386 0.797934 +!J 0 0.190446 1.173889 0.808012 +!J 0 0.199782 1.215413 0.814880 +!J 0 0.209575 1.256686 0.817997 +!J 0 0.218537 1.292346 0.817190 +!J 0 0.227883 1.327329 0.812648 +!J 0 0.237628 1.361358 0.803935 +!J 0 0.247790 1.394126 0.790597 +!J 0 0.256845 1.420946 0.775134 +!J 0 0.266231 1.446345 0.755642 +!J 0 0.275961 1.470059 0.731830 +!J 0 0.286045 1.491806 0.703417 +!J 0 0.296499 1.511277 0.670136 +!J 0 0.305501 1.525528 0.638504 +!J 0 0.314777 1.537768 0.603192 +!J 0 0.324334 1.547783 0.564088 +!J 0 0.334181 1.555351 0.521104 +!J 0 0.344328 1.560240 0.474174 +!J 0 0.354782 1.562208 0.423263 +!J 0 0.365554 1.561010 0.368368 +!J 0 0.374407 1.557602 0.321605 +!J 0 0.383474 1.551876 0.272349 +!J 0 0.392761 1.543700 0.220657 +!J 0 0.402272 1.532944 0.166602 +!J 0 0.412014 1.519480 0.110281 +!J 0 0.421991 1.503182 0.051811 +!J 0 0.432211 1.483928 -0.008667 +!J 0 0.442677 1.461602 -0.070988 +!J 0 0.453398 1.436097 -0.134962 +!J 0 0.464378 1.407314 -0.200373 +!J 0 0.475623 1.375165 -0.266981 +!J 0 0.487142 1.339577 -0.334518 +!J 0 0.495963 1.310594 -0.385603 +!J 0 0.504944 1.279627 -0.436912 +!J 0 0.514087 1.246665 -0.488302 +!J 0 0.523397 1.211705 -0.539621 +!J 0 0.532874 1.174751 -0.590708 +!J 0 0.542524 1.135816 -0.641396 +!J 0 0.552348 1.094924 -0.691505 +!J 0 0.562350 1.052105 -0.740848 +!J 0 0.572533 1.007405 -0.789228 +!J 0 0.582901 0.960879 -0.836438 +!J 0 0.593456 0.912592 -0.882257 +!J 0 0.604202 0.862627 -0.926458 +!J 0 0.615143 0.811076 -0.968798 +!J 0 0.626283 0.758047 -1.009022 +!J 0 0.637623 0.703664 -1.046859 +!J 0 0.649170 0.648063 -1.082025 +!J 0 0.660925 0.591397 -1.114217 +!J 0 0.672893 0.533836 -1.143116 +!J 0 0.685078 0.475561 -1.168381 +!J 0 0.697484 0.416774 -1.189653 +!J 0 0.710114 0.357688 -1.206551 +!J 0 0.722973 0.298532 -1.218671 +!J 0 0.736064 0.239550 -1.225588 +!J 0 0.744924 0.200451 -1.227091 +!J 0 0.753890 0.161621 -1.225948 +!J 0 0.762963 0.123141 -1.222018 +!J 0 0.772146 0.085093 -1.215160 +!J 0 0.781440 0.047563 -1.205229 +!J 0 0.790845 0.010636 -1.192079 +!J 0 0.800364 -0.025602 -1.175563 +!J 0 0.809997 -0.061063 -1.155538 +!J 0 0.819746 -0.095659 -1.131860 +!J 0 0.829613 -0.129302 -1.104393 +!J 0 0.839598 -0.161905 -1.073004 +!J 0 0.849703 -0.193382 -1.037570 +!J 0 0.859930 -0.223647 -0.997981 +!J 0 0.870281 -0.252618 -0.954138 +!J 0 0.880755 -0.280212 -0.905961 +!J 0 0.891356 -0.306353 -0.853389 +!J 0 0.902084 -0.330966 -0.796388 +!J 0 0.912942 -0.353979 -0.734949 +!J 0 0.923930 -0.375328 -0.669097 +!J 0 0.935050 -0.394950 -0.598893 +!J 0 0.946305 -0.412791 -0.524439 +!J 0 0.957694 -0.428802 -0.445884 +!J 0 0.969221 -0.442939 -0.363424 +!J 0 0.980887 -0.455169 -0.277311 +!J 0 0.992693 -0.465463 -0.187855 +!J 0 1.004641 -0.473803 -0.095427 +!J 0 1.016733 -0.480178 -0.000464 +!J 0 1.028970 -0.484587 0.096531 +!J 0 1.041355 -0.487038 0.194985 +!J 0 1.053888 -0.487548 0.294257 +!J 0 1.066573 -0.486144 0.393635 +!J 0 1.079410 -0.482863 0.492341 +!J 0 1.092402 -0.477753 0.589537 +!J 0 1.105550 -0.470869 0.684323 +!J 0 1.118857 -0.462279 0.775753 +!J 0 1.132323 -0.452058 0.862837 +!J 0 1.145952 -0.440291 0.944558 +!J 0 1.159745 -0.427071 1.019884 +!J 0 1.173703 -0.412500 1.087785 +!J 0 1.187830 -0.396688 1.147251 +!J 0 1.202127 -0.379750 1.197313 +!J 0 1.216595 -0.361808 1.237068 +!J 0 1.231238 -0.342992 1.265700 +!J 0 1.246058 -0.323434 1.282510 +!J 0 1.261055 -0.303270 1.286943 +!J 0 1.276233 -0.282641 1.278613 +!J 0 1.291594 -0.261690 1.257337 +!J 0 1.307140 -0.240563 1.223157 +!J 0 1.322872 -0.219406 1.176369 +!J 0 1.338794 -0.198368 1.117547 +!J 0 1.354908 -0.177599 1.047564 +!J 0 1.371216 -0.157250 0.967611 +!J 0 1.387720 -0.137474 0.879208 +!J 0 1.404422 -0.118428 0.784216 +!J 0 1.421326 -0.100270 0.684830 +!J 0 1.438433 -0.083155 0.583491 +!J 0 1.455746 -0.067236 0.482773 +!J 0 1.464480 -0.059770 0.433472 +!J 0 1.473267 -0.052657 0.385322 +!J 0 1.482107 -0.045914 0.338654 +!J 0 1.491000 -0.039559 0.293797 +!J 0 1.499946 -0.033610 0.251073 +!J 0 1.508945 -0.028083 0.210797 +!J 0 1.517999 -0.022996 0.173270 +!J 0 1.527107 -0.018367 0.138778 +!J 0 1.536270 -0.014216 0.107573 +!J 0 1.545487 -0.010559 0.079913 +!J 0 1.554760 -0.007413 0.056041 +!J 0 1.564089 -0.004797 0.036171 +!J 0 1.573473 -0.002728 0.020491 +!J 0 1.582914 -0.001226 0.009159 +!J 0 1.592412 -0.000310 0.002300 +!J 0 1.601966 0.000000 -0.000000 +!J 0 1.611578 -0.000000 0.000000 +!J 0 1.621247 -0.000000 0.000000 +!J 0 1.630975 -0.000000 0.000000 +!J 0 1.640761 -0.000000 0.000000 +!J 0 1.650605 -0.000000 0.000000 +!J 0 1.660509 -0.000000 0.000000 +!J 0 1.670472 -0.000000 0.000000 +!J 0 1.680495 -0.000000 0.000000 +!J 0 1.690578 -0.000000 0.000000 +!J 0 1.700721 -0.000000 0.000000 +!J 0 1.710925 -0.000000 0.000000 +!J 0 1.721191 -0.000000 0.000000 +!J 0 1.731518 -0.000000 0.000000 +!J 0 1.741907 -0.000000 0.000000 + + +n= 2, l= 1, kap=-2, all-electron wave function, pseudo w-f + +& -11 0.020088 0.005663 0.001610 +& -11 0.030171 0.012278 0.003628 +& -11 0.040207 0.020966 0.006434 +& -11 0.050469 0.031751 0.010122 +& -11 0.060752 0.044237 0.014637 +& -11 0.070975 0.058091 0.019931 +& -11 0.081444 0.073555 0.026172 +& -11 0.091795 0.089927 0.033143 +& -11 0.102231 0.107350 0.040963 +& -11 0.112499 0.125240 0.049415 +& -11 0.123061 0.144273 0.058874 +& -11 0.133811 0.164168 0.069276 +& -11 0.144632 0.184604 0.080511 +& -11 0.155396 0.205227 0.092421 +& -11 0.165966 0.225664 0.104801 +& -11 0.176197 0.245545 0.117405 +& -11 0.187059 0.266679 0.131424 +& -11 0.197406 0.286770 0.145360 +& -11 0.208325 0.307867 0.160649 +& -11 0.218537 0.327446 0.175457 +& -11 0.229250 0.347782 0.191487 +& -11 0.240488 0.368842 0.208809 +& -11 0.250772 0.387833 0.225080 +& -11 0.261496 0.407318 0.242436 +& -11 0.272679 0.427258 0.260918 +& -11 0.284339 0.447608 0.280561 +& -11 0.294730 0.465341 0.298343 +& -11 0.305501 0.483304 0.317013 +& -11 0.316665 0.501459 0.336579 +& -11 0.328238 0.519762 0.357043 +& -11 0.340233 0.538169 0.378400 +& -11 0.350563 0.553552 0.396870 +& -11 0.361207 0.568941 0.415938 +& -11 0.372174 0.584306 0.435585 +& -11 0.383474 0.599612 0.455788 +& -11 0.395117 0.614824 0.476516 +& -11 0.407114 0.629905 0.497731 +& -11 0.419475 0.644816 0.519391 +& -11 0.429633 0.656596 0.537002 +& -11 0.440037 0.668222 0.554833 +& -11 0.450694 0.679670 0.572849 +& -11 0.461608 0.690921 0.591010 +& -11 0.472787 0.701950 0.609276 +& -11 0.484236 0.712736 0.627600 +& -11 0.495963 0.723256 0.645931 +& -11 0.507973 0.733486 0.664214 +& -11 0.520275 0.743403 0.682392 +& -11 0.532874 0.752985 0.700401 +& -11 0.545779 0.762207 0.718175 +& -11 0.558996 0.771047 0.735643 +& -11 0.569118 0.777413 0.748500 +& -11 0.579424 0.783541 0.761111 +& -11 0.589916 0.789423 0.773443 +& -11 0.600599 0.795049 0.785463 +& -11 0.611475 0.800410 0.797135 +& -11 0.622547 0.805497 0.808425 +& -11 0.633821 0.810302 0.819297 +& -11 0.645298 0.814817 0.829716 +& -11 0.656983 0.819034 0.839646 +& -11 0.668880 0.822944 0.849052 +& -11 0.680992 0.826541 0.857900 +& -11 0.693324 0.829818 0.866155 +& -11 0.705878 0.832767 0.873785 +& -11 0.718661 0.835383 0.880758 +& -11 0.731674 0.837660 0.887045 +& -11 0.744924 0.839593 0.892618 +& -11 0.758413 0.841176 0.897452 +& -11 0.772146 0.842405 0.901523 +& -11 0.786129 0.843276 0.904813 +& -11 0.800364 0.843786 0.907304 +& -11 0.814857 0.843931 0.908985 +& -11 0.829613 0.843710 0.909846 +& -11 0.844636 0.843120 0.909883 +& -11 0.854802 0.842521 0.909449 +& -11 0.865090 0.841757 0.908650 +& -11 0.875502 0.840829 0.907488 +& -11 0.886040 0.839735 0.905966 +& -11 0.896704 0.838476 0.904088 +& -11 0.907497 0.837053 0.901858 +& -11 0.918419 0.835465 0.899284 +& -11 0.929474 0.833712 0.896373 +& -11 0.940661 0.831796 0.893131 +& -11 0.951983 0.829717 0.889569 +& -11 0.963441 0.827475 0.885696 +& -11 0.975037 0.825072 0.881523 +& -11 0.986772 0.822508 0.877063 +& -11 0.998649 0.819784 0.872327 +& -11 1.010669 0.816901 0.867330 +& -11 1.022833 0.813861 0.862085 +& -11 1.035144 0.810664 0.856608 +& -11 1.047603 0.807313 0.850913 +& -11 1.060212 0.803809 0.845016 +& -11 1.072972 0.800152 0.838934 +& -11 1.085887 0.796346 0.832682 +& -11 1.098957 0.792391 0.826278 +& -11 1.112184 0.788290 0.819738 +& -11 1.125570 0.784044 0.813078 +& -11 1.139117 0.779656 0.806315 +& -11 1.152828 0.775127 0.799463 +& -11 1.166703 0.770460 0.792539 +& -11 1.180745 0.765657 0.785556 +& -11 1.194957 0.760721 0.778529 +& -11 1.209339 0.755653 0.771469 +& -11 1.223895 0.750456 0.764388 +& -11 1.238626 0.745133 0.757297 +& -11 1.253534 0.739687 0.750205 +& -11 1.268621 0.734119 0.743118 +& -11 1.283891 0.728434 0.736044 +& -11 1.299343 0.722632 0.728986 +& -11 1.314982 0.716718 0.721948 +& -11 1.330810 0.710694 0.714930 +& -11 1.346827 0.704564 0.707933 +& -11 1.363038 0.698329 0.700954 +& -11 1.379443 0.691993 0.693989 +& -11 1.396046 0.685560 0.687036 +& -11 1.412849 0.679032 0.680087 +& -11 1.429854 0.672412 0.673135 +& -11 1.447064 0.665704 0.666174 +& -11 1.464480 0.658910 0.659195 +& -11 1.482107 0.652035 0.652190 +& -11 1.499946 0.645081 0.645151 +& -11 1.517999 0.638051 0.638070 +& -11 1.536270 0.630948 0.630941 +& -11 1.554760 0.623777 0.623758 +& -11 1.573473 0.616541 0.616518 +& -11 1.592412 0.609242 0.609219 +& -11 1.611578 0.601884 0.601861 +& -11 1.630975 0.594470 0.594448 +& -11 1.650605 0.587005 0.586983 +& -11 1.670472 0.579490 0.579469 +& -11 1.680495 0.575715 0.575694 +& -11 1.690578 0.571930 0.571909 +& -11 1.700721 0.568134 0.568113 +& -11 1.710925 0.564328 0.564307 +& -11 1.721191 0.560512 0.560492 +& -11 1.731518 0.556687 0.556667 +& -11 1.741907 0.552853 0.552833 +& -11 1.752359 0.549011 0.548991 +& -11 1.762873 0.545161 0.545141 +& -11 1.773450 0.541303 0.541283 +& -11 1.784091 0.537438 0.537418 +& -11 1.794795 0.533566 0.533547 +& -11 1.805564 0.529688 0.529669 +& -11 1.816397 0.525804 0.525785 +& -11 1.827296 0.521914 0.521896 +& -11 1.838260 0.518020 0.518001 +& -11 1.849289 0.514121 0.514102 +& -11 1.860385 0.510217 0.510199 +& -11 1.871547 0.506310 0.506292 +& -11 1.882777 0.502399 0.502381 +& -11 1.894073 0.498486 0.498468 +& -11 1.905438 0.494569 0.494552 +& -11 1.916870 0.490651 0.490634 +& -11 1.928371 0.486731 0.486714 +& -11 1.939942 0.482809 0.482792 +& -11 1.951581 0.478887 0.478870 +& -11 1.963291 0.474964 0.474947 +& -11 1.975071 0.471040 0.471024 +& -11 1.986921 0.467118 0.467101 +& -11 1.998843 0.463195 0.463179 +& -11 2.010836 0.459274 0.459258 +& -11 2.022901 0.455354 0.455338 +& -11 2.035038 0.451436 0.451420 +& -11 2.047248 0.447520 0.447505 +& -11 2.059532 0.443607 0.443592 +& -11 2.071889 0.439697 0.439682 +& -11 2.084320 0.435791 0.435775 +& -11 2.096826 0.431888 0.431873 +& -11 2.109407 0.427989 0.427974 +& -11 2.122064 0.424095 0.424080 +& -11 2.134796 0.420206 0.420191 +& -11 2.147605 0.416322 0.416307 +& -11 2.160490 0.412443 0.412429 +& -11 2.173453 0.408571 0.408557 +& -11 2.186494 0.404706 0.404691 +& -11 2.199613 0.400847 0.400833 +& -11 2.212811 0.396995 0.396981 +& -11 2.226088 0.393151 0.393137 +& -11 2.239444 0.389314 0.389301 +& -11 2.252881 0.385486 0.385473 +& -11 2.266398 0.381667 0.381653 +& -11 2.279996 0.377856 0.377843 +& -11 2.293676 0.374055 0.374042 +& -11 2.307438 0.370264 0.370251 +& -11 2.321283 0.366482 0.366469 +& -11 2.335211 0.362711 0.362698 +& -11 2.349222 0.358951 0.358938 +& -11 2.363317 0.355201 0.355189 +& -11 2.377497 0.351463 0.351451 +& -11 2.391762 0.347737 0.347724 +& -11 2.406113 0.344022 0.344010 +& -11 2.420550 0.340320 0.340308 +& -11 2.435073 0.336631 0.336619 +& -11 2.449683 0.332955 0.332943 +& -11 2.464381 0.329292 0.329280 +& -11 2.479168 0.325642 0.325631 +& -11 2.494043 0.322007 0.321995 +& -11 2.509007 0.318385 0.318374 +& -11 2.524061 0.314779 0.314768 +& -11 2.539205 0.311187 0.311176 +& -11 2.554441 0.307610 0.307599 +& -11 2.569767 0.304049 0.304038 +& -11 2.585186 0.300503 0.300492 +& -11 2.600697 0.296973 0.296963 +& -11 2.616301 0.293460 0.293450 +& -11 2.631999 0.289963 0.289953 +& -11 2.647791 0.286483 0.286473 +& -11 2.663678 0.283020 0.283010 +& -11 2.679660 0.279575 0.279565 +& -11 2.695738 0.276147 0.276137 +& -11 2.711912 0.272737 0.272727 +& -11 2.728184 0.269345 0.269335 +& -11 2.744553 0.265971 0.265961 +& -11 2.761020 0.262616 0.262607 +& -11 2.777586 0.259280 0.259271 +& -11 2.794252 0.255963 0.255954 +& -11 2.811017 0.252665 0.252656 +& -11 2.827883 0.249387 0.249378 +& -11 2.844850 0.246129 0.246120 +& -11 2.861920 0.242890 0.242881 +& -11 2.879091 0.239672 0.239663 +& -11 2.896366 0.236474 0.236466 +& -11 2.913744 0.233297 0.233289 +& -11 2.931226 0.230141 0.230132 +& -11 2.948814 0.227005 0.226997 +& -11 2.966507 0.223891 0.223883 +& -11 2.984306 0.220799 0.220791 +& -11 3.002211 0.217728 0.217720 +& -11 3.020225 0.214678 0.214671 +& -11 3.038346 0.211651 0.211643 +& -11 3.056576 0.208646 0.208638 +& -11 3.074916 0.205663 0.205655 +& -11 3.093365 0.202702 0.202695 +& -11 3.111925 0.199764 0.199757 +& -11 3.130597 0.196849 0.196842 +& -11 3.149380 0.193957 0.193949 +& -11 3.168277 0.191087 0.191080 +& -11 3.187286 0.188241 0.188234 +& -11 3.206410 0.185418 0.185411 +& -11 3.225649 0.182619 0.182612 +& -11 3.245002 0.179843 0.179836 +& -11 3.264472 0.177091 0.177084 +& -11 3.284059 0.174362 0.174355 +& -11 3.303764 0.171657 0.171651 +& -11 3.323586 0.168977 0.168970 +& -11 3.343528 0.166320 0.166314 +& -11 3.363589 0.163687 0.163681 +& -11 3.383770 0.161079 0.161073 +& -11 3.404073 0.158495 0.158489 +& -11 3.424497 0.155935 0.155929 +& -11 3.445044 0.153400 0.153394 +& -11 3.465715 0.150890 0.150884 +& -11 3.486509 0.148404 0.148398 +& -11 3.507428 0.145942 0.145937 +& -11 3.528473 0.143505 0.143500 +& -11 3.549643 0.141093 0.141088 +& -11 3.570941 0.138706 0.138701 +& -11 3.592367 0.136344 0.136338 +& -11 3.613921 0.134006 0.134001 +& -11 3.635605 0.131693 0.131688 +& -11 3.657418 0.129405 0.129400 +& -11 3.679363 0.127142 0.127137 +& -11 3.701439 0.124904 0.124899 +& -11 3.723648 0.122691 0.122686 +& -11 3.745990 0.120503 0.120498 +& -11 3.768465 0.118339 0.118335 +& -11 3.791076 0.116201 0.116196 +& -11 3.813823 0.114087 0.114083 +& -11 3.836706 0.111998 0.111994 +& -11 3.859726 0.109934 0.109930 +& -11 3.882884 0.107895 0.107891 +& -11 3.906182 0.105881 0.105876 +& -11 3.929619 0.103891 0.103887 +& -11 3.953196 0.101926 0.101922 +& -11 3.976916 0.099985 0.099981 + + +scattering, iprj= 2, l= 1, kap=-2, all-electron wave function, pseudo w-f + +& -21 0.020088 -0.004469 -0.001325 +& -21 0.030171 -0.009687 -0.002986 +& -21 0.040207 -0.016540 -0.005296 +& -21 0.050469 -0.025044 -0.008328 +& -21 0.060752 -0.034884 -0.012039 +& -21 0.070975 -0.045795 -0.016386 +& -21 0.081444 -0.057965 -0.021506 +& -21 0.091795 -0.070838 -0.027220 +& -21 0.102231 -0.084524 -0.033620 +& -21 0.112499 -0.098560 -0.040529 +& -21 0.123061 -0.113472 -0.048249 +& -21 0.133811 -0.129036 -0.056724 +& -21 0.144632 -0.144994 -0.065860 +& -21 0.155396 -0.161064 -0.075526 +& -21 0.165966 -0.176956 -0.085551 +& -21 0.176197 -0.192378 -0.095733 +& -21 0.187059 -0.208727 -0.107031 +& -21 0.197406 -0.224224 -0.118230 +& -21 0.208325 -0.240443 -0.130481 +& -21 0.218537 -0.255442 -0.142311 +& -21 0.229250 -0.270960 -0.155074 +& -21 0.240488 -0.286960 -0.168816 +& -21 0.250772 -0.301319 -0.181675 +& -21 0.261496 -0.315977 -0.195338 +& -21 0.272679 -0.330890 -0.209824 +& -21 0.284339 -0.346011 -0.225145 +& -21 0.294730 -0.359096 -0.238947 +& -21 0.305501 -0.372254 -0.253364 +& -21 0.316665 -0.385444 -0.268388 +& -21 0.328238 -0.398619 -0.284006 +& -21 0.340233 -0.411729 -0.300195 +& -21 0.350563 -0.422566 -0.314099 +& -21 0.361207 -0.433285 -0.328355 +& -21 0.372174 -0.443853 -0.342933 +& -21 0.383474 -0.454231 -0.357800 +& -21 0.395117 -0.464379 -0.372913 +& -21 0.407114 -0.474256 -0.388226 +& -21 0.419475 -0.483818 -0.403683 +& -21 0.429633 -0.491209 -0.416110 +& -21 0.440037 -0.498345 -0.428553 +& -21 0.450694 -0.505200 -0.440972 +& -21 0.461608 -0.511749 -0.453324 +& -21 0.472787 -0.517964 -0.465562 +& -21 0.484236 -0.523819 -0.477634 +& -21 0.495963 -0.529286 -0.489487 +& -21 0.507973 -0.534336 -0.501061 +& -21 0.520275 -0.538940 -0.512293 +& -21 0.532874 -0.543069 -0.523119 +& -21 0.545779 -0.546692 -0.533467 +& -21 0.558996 -0.549780 -0.543266 +& -21 0.569118 -0.551727 -0.550208 +& -21 0.579424 -0.553342 -0.556765 +& -21 0.589916 -0.554614 -0.562903 +& -21 0.600599 -0.555528 -0.568587 +& -21 0.611475 -0.556073 -0.573782 +& -21 0.622547 -0.556235 -0.578454 +& -21 0.633821 -0.556001 -0.582567 +& -21 0.645298 -0.555359 -0.586085 +& -21 0.656983 -0.554295 -0.588974 +& -21 0.668880 -0.552798 -0.591198 +& -21 0.680992 -0.550855 -0.592724 +& -21 0.693324 -0.548454 -0.593520 +& -21 0.705878 -0.545583 -0.593553 +& -21 0.718661 -0.542229 -0.592794 +& -21 0.731674 -0.538382 -0.591216 +& -21 0.744924 -0.534030 -0.588791 +& -21 0.758413 -0.529162 -0.585497 +& -21 0.772146 -0.523768 -0.581314 +& -21 0.786129 -0.517836 -0.576224 +& -21 0.800364 -0.511358 -0.570214 +& -21 0.814857 -0.504323 -0.563274 +& -21 0.829613 -0.496722 -0.555397 +& -21 0.844636 -0.488546 -0.546583 +& -21 0.854802 -0.482772 -0.540186 +& -21 0.865090 -0.476737 -0.533375 +& -21 0.875502 -0.470439 -0.526153 +& -21 0.886040 -0.463874 -0.518523 +& -21 0.896704 -0.457042 -0.510490 +& -21 0.907497 -0.449940 -0.502060 +& -21 0.918419 -0.442567 -0.493237 +& -21 0.929474 -0.434921 -0.484030 +& -21 0.940661 -0.427000 -0.474447 +& -21 0.951983 -0.418803 -0.464495 +& -21 0.963441 -0.410328 -0.454185 +& -21 0.975037 -0.401575 -0.443526 +& -21 0.986772 -0.392543 -0.432528 +& -21 0.998649 -0.383230 -0.421203 +& -21 1.010669 -0.373637 -0.409561 +& -21 1.022833 -0.363761 -0.397616 +& -21 1.035144 -0.353604 -0.385377 +& -21 1.047603 -0.343165 -0.372858 +& -21 1.060212 -0.332443 -0.360070 +& -21 1.072972 -0.321440 -0.347026 +& -21 1.085887 -0.310155 -0.333736 +& -21 1.098957 -0.298589 -0.320212 +& -21 1.112184 -0.286742 -0.306464 +& -21 1.125570 -0.274616 -0.292504 +& -21 1.139117 -0.262213 -0.278341 +& -21 1.152828 -0.249532 -0.263983 +& -21 1.166703 -0.236576 -0.249439 +& -21 1.180745 -0.223347 -0.234716 +& -21 1.194957 -0.209847 -0.219820 +& -21 1.209339 -0.196079 -0.204758 +& -21 1.223895 -0.182045 -0.189533 +& -21 1.238626 -0.167747 -0.174148 +& -21 1.253534 -0.153191 -0.158608 +& -21 1.268621 -0.138378 -0.142913 +& -21 1.283891 -0.123313 -0.127066 +& -21 1.299343 -0.108000 -0.111065 +& -21 1.314982 -0.092444 -0.094912 +& -21 1.330810 -0.076650 -0.078606 +& -21 1.346827 -0.060623 -0.062146 +& -21 1.363038 -0.044369 -0.045531 +& -21 1.379443 -0.027894 -0.028761 +& -21 1.396046 -0.011204 -0.011834 +& -21 1.412849 0.005693 0.005249 +& -21 1.429854 0.022789 0.022488 +& -21 1.447064 0.040078 0.039882 +& -21 1.464480 0.057551 0.057429 +& -21 1.482107 0.075198 0.075127 +& -21 1.499946 0.093011 0.092971 +& -21 1.517999 0.110978 0.110958 +& -21 1.536270 0.129091 0.129079 +& -21 1.554760 0.147337 0.147329 +& -21 1.573473 0.165705 0.165697 +& -21 1.592412 0.184182 0.184174 +& -21 1.611578 0.202757 0.202748 +& -21 1.630975 0.221414 0.221404 +& -21 1.650605 0.240139 0.240129 +& -21 1.670472 0.258919 0.258908 +& -21 1.680495 0.268324 0.268312 +& -21 1.690578 0.277736 0.277724 +& -21 1.700721 0.287154 0.287142 +& -21 1.710925 0.296575 0.296563 +& -21 1.721191 0.305998 0.305985 +& -21 1.731518 0.315419 0.315405 +& -21 1.741907 0.324836 0.324823 +& -21 1.752359 0.334249 0.334235 +& -21 1.762873 0.343653 0.343638 +& -21 1.773450 0.353046 0.353032 +& -21 1.784091 0.362427 0.362412 +& -21 1.794795 0.371792 0.371777 +& -21 1.805564 0.381139 0.381124 +& -21 1.816397 0.390466 0.390450 +& -21 1.827296 0.399769 0.399753 +& -21 1.838260 0.409047 0.409030 +& -21 1.849289 0.418295 0.418278 +& -21 1.860385 0.427512 0.427495 +& -21 1.871547 0.436695 0.436677 +& -21 1.882777 0.445840 0.445822 +& -21 1.894073 0.454944 0.454926 +& -21 1.905438 0.464005 0.463987 +& -21 1.916870 0.473020 0.473001 +& -21 1.928371 0.481984 0.481966 +& -21 1.939942 0.490896 0.490877 +& -21 1.951581 0.499752 0.499733 +& -21 1.963291 0.508548 0.508528 +& -21 1.975071 0.517281 0.517261 +& -21 1.986921 0.525948 0.525928 +& -21 1.998843 0.534545 0.534525 +& -21 2.010836 0.543069 0.543048 +& -21 2.022901 0.551516 0.551495 +& -21 2.035038 0.559882 0.559861 +& -21 2.047248 0.568163 0.568142 +& -21 2.059532 0.576357 0.576336 +& -21 2.071889 0.584459 0.584438 +& -21 2.084320 0.592465 0.592443 +& -21 2.096826 0.600371 0.600349 +& -21 2.109407 0.608174 0.608152 +& -21 2.122064 0.615868 0.615847 +& -21 2.134796 0.623451 0.623430 +& -21 2.147605 0.630919 0.630896 +& -21 2.160490 0.638265 0.638243 +& -21 2.173453 0.645488 0.645466 +& -21 2.186494 0.652582 0.652559 +& -21 2.199613 0.659542 0.659520 +& -21 2.212811 0.666366 0.666343 +& -21 2.226088 0.673047 0.673025 +& -21 2.239444 0.679582 0.679560 +& -21 2.252881 0.685967 0.685944 +& -21 2.266398 0.692196 0.692173 +& -21 2.279996 0.698264 0.698242 +& -21 2.293676 0.704169 0.704146 +& -21 2.307438 0.709903 0.709881 +& -21 2.321283 0.715464 0.715442 +& -21 2.335211 0.720846 0.720823 +& -21 2.349222 0.726044 0.726022 +& -21 2.363317 0.731053 0.731031 +& -21 2.377497 0.735869 0.735848 +& -21 2.391762 0.740487 0.740466 +& -21 2.406113 0.744902 0.744881 +& -21 2.420550 0.749109 0.749087 +& -21 2.435073 0.753103 0.753081 +& -21 2.449683 0.756878 0.756857 +& -21 2.464381 0.760431 0.760410 +& -21 2.479168 0.763755 0.763735 +& -21 2.494043 0.766847 0.766827 +& -21 2.509007 0.769700 0.769680 +& -21 2.524061 0.772311 0.772291 +& -21 2.539205 0.774673 0.774654 +& -21 2.554441 0.776783 0.776763 +& -21 2.569767 0.778634 0.778615 +& -21 2.585186 0.780222 0.780204 +& -21 2.600697 0.781543 0.781524 +& -21 2.616301 0.782590 0.782572 +& -21 2.631999 0.783359 0.783341 +& -21 2.647791 0.783846 0.783828 +& -21 2.663678 0.784044 0.784028 +& -21 2.679660 0.783951 0.783934 +& -21 2.695738 0.783560 0.783544 +& -21 2.711912 0.782867 0.782851 +& -21 2.728184 0.781867 0.781852 +& -21 2.744553 0.780556 0.780541 +& -21 2.761020 0.778929 0.778915 +& -21 2.777586 0.776981 0.776968 +& -21 2.794252 0.774709 0.774696 +& -21 2.811017 0.772108 0.772095 +& -21 2.827883 0.769173 0.769161 +& -21 2.844850 0.765901 0.765890 +& -21 2.861920 0.762288 0.762277 +& -21 2.879091 0.758328 0.758318 +& -21 2.896366 0.754020 0.754011 +& -21 2.913744 0.749359 0.749350 +& -21 2.931226 0.744341 0.744333 +& -21 2.948814 0.738963 0.738956 +& -21 2.966507 0.733222 0.733215 +& -21 2.984306 0.727115 0.727109 +& -21 3.002211 0.720638 0.720633 +& -21 3.020225 0.713789 0.713785 +& -21 3.038346 0.706566 0.706562 +& -21 3.056576 0.698965 0.698962 +& -21 3.074916 0.690985 0.690983 +& -21 3.093365 0.682624 0.682622 +& -21 3.111925 0.673879 0.673879 +& -21 3.130597 0.664750 0.664750 +& -21 3.149380 0.655235 0.655236 +& -21 3.168277 0.645332 0.645334 +& -21 3.187286 0.635042 0.635045 +& -21 3.206410 0.624363 0.624366 +& -21 3.225649 0.613294 0.613299 +& -21 3.245002 0.601837 0.601842 +& -21 3.264472 0.589991 0.589997 +& -21 3.284059 0.577757 0.577764 +& -21 3.303764 0.565135 0.565143 +& -21 3.323586 0.552127 0.552136 +& -21 3.343528 0.538735 0.538744 +& -21 3.363589 0.524959 0.524970 +& -21 3.383770 0.510803 0.510815 +& -21 3.404073 0.496269 0.496282 +& -21 3.424497 0.481360 0.481374 +& -21 3.445044 0.466079 0.466094 +& -21 3.465715 0.450430 0.450446 +& -21 3.486509 0.434417 0.434434 +& -21 3.507428 0.418045 0.418063 +& -21 3.528473 0.401319 0.401337 +& -21 3.549643 0.384243 0.384262 +& -21 3.570941 0.366825 0.366845 +& -21 3.592367 0.349069 0.349090 +& -21 3.613921 0.330984 0.331006 +& -21 3.635605 0.312576 0.312599 +& -21 3.657418 0.293852 0.293876 +& -21 3.679363 0.274822 0.274847 +& -21 3.701439 0.255494 0.255520 +& -21 3.723648 0.235877 0.235904 +& -21 3.745990 0.215981 0.216009 +& -21 3.768465 0.195817 0.195845 +& -21 3.791076 0.175394 0.175423 +& -21 3.813823 0.154725 0.154755 +& -21 3.836706 0.133821 0.133852 +& -21 3.859726 0.112695 0.112727 +& -21 3.882884 0.091360 0.091392 +& -21 3.906182 0.069829 0.069862 +& -21 3.929619 0.048117 0.048151 +& -21 3.953196 0.026238 0.026273 +& -21 3.976916 0.004208 0.004244 + + +!J -1 0.009976 0.001728 -0.000948 +!J -1 0.018696 0.006063 -0.003321 +!J -1 0.027417 0.013016 -0.007115 +!J -1 0.036319 0.022783 -0.012418 +!J -1 0.045046 0.034941 -0.018977 +!J -1 0.053901 0.049839 -0.026948 +!J -1 0.062972 0.067714 -0.036417 +!J -1 0.071829 0.087651 -0.046853 +!J -1 0.080958 0.110679 -0.058742 +!J -1 0.090162 0.136348 -0.071782 +!J -1 0.099218 0.163901 -0.085525 +!J -1 0.108533 0.194498 -0.100471 +!J -1 0.117310 0.225307 -0.115179 +!J -1 0.126041 0.257738 -0.130283 +!J -1 0.135421 0.294430 -0.146891 +!J -1 0.144632 0.332172 -0.163427 +!J -1 0.153548 0.370180 -0.179501 +!J -1 0.163014 0.411956 -0.196479 +!J -1 0.172031 0.452960 -0.212415 +!J -1 0.181547 0.497339 -0.228819 +!J -1 0.190446 0.539713 -0.243631 +!J -1 0.199782 0.584902 -0.258472 +!J -1 0.209575 0.632931 -0.273114 +!J -1 0.218537 0.677276 -0.285548 +!J -1 0.227883 0.723751 -0.297401 +!J -1 0.237628 0.772286 -0.308421 +!J -1 0.247790 0.822775 -0.318319 +!J -1 0.256845 0.867494 -0.325664 +!J -1 0.266231 0.913418 -0.331722 +!J -1 0.275961 0.960396 -0.336245 +!J -1 0.286045 1.008243 -0.338971 +!J -1 0.296499 1.056740 -0.339618 +!J -1 0.305501 1.097467 -0.338357 +!J -1 0.314777 1.138299 -0.335272 +!J -1 0.324334 1.179043 -0.330181 +!J -1 0.334181 1.219486 -0.322902 +!J -1 0.344328 1.259393 -0.313253 +!J -1 0.354782 1.298503 -0.301054 +!J -1 0.365554 1.336531 -0.286129 +!J -1 0.374407 1.365967 -0.272114 +!J -1 0.383474 1.394342 -0.256164 +!J -1 0.392761 1.421473 -0.238204 +!J -1 0.402272 1.447167 -0.218160 +!J -1 0.412014 1.471219 -0.195968 +!J -1 0.421991 1.493414 -0.171567 +!J -1 0.432211 1.513522 -0.144904 +!J -1 0.442677 1.531306 -0.115930 +!J -1 0.453398 1.546514 -0.084605 +!J -1 0.464378 1.558881 -0.050890 +!J -1 0.475623 1.568135 -0.014753 +!J -1 0.487142 1.573988 0.023836 +!J -1 0.495963 1.575968 0.054406 +!J -1 0.504944 1.575739 0.086385 +!J -1 0.514087 1.573169 0.119788 +!J -1 0.523397 1.568122 0.154629 +!J -1 0.532874 1.560462 0.190925 +!J -1 0.542524 1.550048 0.228695 +!J -1 0.552348 1.536741 0.267961 +!J -1 0.562350 1.520398 0.308746 +!J -1 0.572533 1.500881 0.351076 +!J -1 0.582901 1.478049 0.394978 +!J -1 0.593456 1.451768 0.440483 +!J -1 0.604202 1.421908 0.487616 +!J -1 0.615143 1.388345 0.536406 +!J -1 0.626283 1.350968 0.586873 +!J -1 0.637623 1.309674 0.639030 +!J -1 0.649170 1.264382 0.692879 +!J -1 0.660925 1.215027 0.748404 +!J -1 0.672893 1.161570 0.805566 +!J -1 0.685078 1.104002 0.864297 +!J -1 0.697484 1.042349 0.924491 +!J -1 0.710114 0.976677 0.985993 +!J -1 0.722973 0.907100 1.048595 +!J -1 0.736064 0.833785 1.112022 +!J -1 0.744924 0.782942 1.154593 +!J -1 0.753890 0.730622 1.197249 +!J -1 0.762963 0.676922 1.239845 +!J -1 0.772146 0.621955 1.282218 +!J -1 0.781440 0.565849 1.324180 +!J -1 0.790845 0.508749 1.365524 +!J -1 0.800364 0.450816 1.406019 +!J -1 0.809997 0.392229 1.445409 +!J -1 0.819746 0.333184 1.483416 +!J -1 0.829613 0.273894 1.519737 +!J -1 0.839598 0.214590 1.554047 +!J -1 0.849703 0.155519 1.585997 +!J -1 0.859930 0.096946 1.615217 +!J -1 0.870281 0.039150 1.641321 +!J -1 0.880755 -0.017577 1.663905 +!J -1 0.891356 -0.072931 1.682554 +!J -1 0.902084 -0.126595 1.696843 +!J -1 0.912942 -0.178248 1.706346 +!J -1 0.923930 -0.227563 1.710641 +!J -1 0.935050 -0.274214 1.709315 +!J -1 0.946305 -0.317876 1.701972 +!J -1 0.957694 -0.358232 1.688242 +!J -1 0.969221 -0.394977 1.667791 +!J -1 0.980887 -0.427822 1.640329 +!J -1 0.992693 -0.456502 1.605622 +!J -1 1.004641 -0.480779 1.563500 +!J -1 1.016733 -0.500450 1.513870 +!J -1 1.028970 -0.515349 1.456724 +!J -1 1.041355 -0.525358 1.392153 +!J -1 1.053888 -0.530406 1.320351 +!J -1 1.066573 -0.530482 1.241629 +!J -1 1.079410 -0.525632 1.156417 +!J -1 1.092402 -0.515967 1.065272 +!J -1 1.105550 -0.501665 0.968878 +!J -1 1.118857 -0.482970 0.868049 +!J -1 1.132323 -0.460198 0.763722 +!J -1 1.145952 -0.433730 0.656956 +!J -1 1.159745 -0.404013 0.548914 +!J -1 1.173703 -0.371552 0.440855 +!J -1 1.187830 -0.336906 0.334112 +!J -1 1.202127 -0.300679 0.230067 +!J -1 1.216595 -0.263509 0.130130 +!J -1 1.231238 -0.226054 0.035700 +!J -1 1.246058 -0.188979 -0.051864 +!J -1 1.261055 -0.152943 -0.131282 +!J -1 1.276233 -0.118578 -0.201395 +!J -1 1.291594 -0.086473 -0.261200 +!J -1 1.307140 -0.057157 -0.309895 +!J -1 1.322872 -0.031081 -0.346915 +!J -1 1.338794 -0.008604 -0.371962 +!J -1 1.354908 0.010022 -0.385039 +!J -1 1.371216 0.024668 -0.386466 +!J -1 1.387720 0.035325 -0.376893 +!J -1 1.404422 0.042117 -0.357300 +!J -1 1.421326 0.045296 -0.328981 +!J -1 1.438433 0.045237 -0.293535 +!J -1 1.455746 0.042431 -0.252833 +!J -1 1.464480 0.040179 -0.231160 +!J -1 1.473267 0.037470 -0.208975 +!J -1 1.482107 0.034388 -0.186562 +!J -1 1.491000 0.031022 -0.164214 +!J -1 1.499946 0.027462 -0.142222 +!J -1 1.508945 0.023801 -0.120880 +!J -1 1.517999 0.020130 -0.100474 +!J -1 1.527107 0.016539 -0.081285 +!J -1 1.536270 0.013116 -0.063588 +!J -1 1.545487 0.009946 -0.047634 +!J -1 1.554760 0.007104 -0.033660 +!J -1 1.564089 0.004662 -0.021879 +!J -1 1.573473 0.002682 -0.012479 +!J -1 1.582914 0.001219 -0.005623 +!J -1 1.592412 0.000317 -0.001442 +!J -1 1.601966 0.000011 -0.000032 +!J -1 1.611578 0.000000 -0.000000 +!J -1 1.621247 0.000000 -0.000000 +!J -1 1.630975 0.000000 -0.000000 +!J -1 1.640761 0.000000 -0.000000 +!J -1 1.650605 0.000000 -0.000000 +!J -1 1.660509 0.000000 -0.000000 +!J -1 1.670472 0.000000 -0.000000 +!J -1 1.680495 0.000000 -0.000000 +!J -1 1.690578 0.000000 -0.000000 +!J -1 1.700721 0.000000 -0.000000 +!J -1 1.710925 0.000000 -0.000000 +!J -1 1.721191 0.000000 -0.000000 +!J -1 1.731518 0.000000 -0.000000 +!J -1 1.741907 0.000000 -0.000000 + + +n= 2, l= 1, kap= 1, all-electron wave function, pseudo w-f + +& 11 0.020088 0.005778 0.001613 +& 11 0.030171 0.012456 0.003635 +& 11 0.040207 0.021209 0.006447 +& 11 0.050469 0.032061 0.010142 +& 11 0.060752 0.044614 0.014667 +& 11 0.070975 0.058533 0.019971 +& 11 0.081444 0.074062 0.026224 +& 11 0.091795 0.090497 0.033210 +& 11 0.102231 0.107982 0.041045 +& 11 0.112499 0.125930 0.049514 +& 11 0.123061 0.145020 0.058991 +& 11 0.133811 0.164972 0.069413 +& 11 0.144632 0.185461 0.080670 +& 11 0.155396 0.206133 0.092604 +& 11 0.165966 0.226617 0.105008 +& 11 0.176197 0.246540 0.117636 +& 11 0.187059 0.267716 0.131683 +& 11 0.197406 0.287845 0.145646 +& 11 0.208325 0.308978 0.160964 +& 11 0.218537 0.328589 0.175800 +& 11 0.229250 0.348955 0.191860 +& 11 0.240488 0.370045 0.209215 +& 11 0.250772 0.389061 0.225516 +& 11 0.261496 0.408568 0.242904 +& 11 0.272679 0.428529 0.261420 +& 11 0.284339 0.448899 0.281098 +& 11 0.294730 0.466647 0.298913 +& 11 0.305501 0.484624 0.317616 +& 11 0.316665 0.502790 0.337216 +& 11 0.328238 0.521104 0.357716 +& 11 0.340233 0.539518 0.379110 +& 11 0.350563 0.554906 0.397611 +& 11 0.361207 0.570299 0.416710 +& 11 0.372174 0.585666 0.436389 +& 11 0.383474 0.600972 0.456625 +& 11 0.395117 0.616182 0.477385 +& 11 0.407114 0.631260 0.498634 +& 11 0.419475 0.646166 0.520326 +& 11 0.429633 0.657940 0.537964 +& 11 0.440037 0.669559 0.555820 +& 11 0.450694 0.680999 0.573861 +& 11 0.461608 0.692240 0.592047 +& 11 0.472787 0.703259 0.610337 +& 11 0.484236 0.714032 0.628683 +& 11 0.495963 0.724538 0.647036 +& 11 0.507973 0.734753 0.665341 +& 11 0.520275 0.744654 0.683538 +& 11 0.532874 0.754218 0.701565 +& 11 0.545779 0.763421 0.719355 +& 11 0.558996 0.772240 0.736838 +& 11 0.569118 0.778589 0.749704 +& 11 0.579424 0.784700 0.762323 +& 11 0.589916 0.790563 0.774662 +& 11 0.600599 0.796170 0.786687 +& 11 0.611475 0.801512 0.798363 +& 11 0.622547 0.806578 0.809655 +& 11 0.633821 0.811363 0.820528 +& 11 0.645298 0.815855 0.830945 +& 11 0.656983 0.820049 0.840872 +& 11 0.668880 0.823936 0.850273 +& 11 0.680992 0.827509 0.859113 +& 11 0.693324 0.830760 0.867359 +& 11 0.705878 0.833684 0.874977 +& 11 0.718661 0.836273 0.881937 +& 11 0.731674 0.838523 0.888208 +& 11 0.744924 0.840428 0.893762 +& 11 0.758413 0.841983 0.898576 +& 11 0.772146 0.843183 0.902624 +& 11 0.786129 0.844024 0.905889 +& 11 0.800364 0.844504 0.908353 +& 11 0.814857 0.844619 0.910004 +& 11 0.829613 0.844367 0.910833 +& 11 0.844636 0.843745 0.910835 +& 11 0.854802 0.843125 0.910377 +& 11 0.865090 0.842340 0.909554 +& 11 0.875502 0.841390 0.908366 +& 11 0.886040 0.840274 0.906817 +& 11 0.896704 0.838994 0.904911 +& 11 0.907497 0.837548 0.902653 +& 11 0.918419 0.835938 0.900050 +& 11 0.929474 0.834163 0.897108 +& 11 0.940661 0.832225 0.893836 +& 11 0.951983 0.830123 0.890243 +& 11 0.963441 0.827859 0.886338 +& 11 0.975037 0.825433 0.882134 +& 11 0.986772 0.822846 0.877641 +& 11 0.998649 0.820099 0.872872 +& 11 1.010669 0.817194 0.867842 +& 11 1.022833 0.814131 0.862563 +& 11 1.035144 0.810911 0.857052 +& 11 1.047603 0.807537 0.851323 +& 11 1.060212 0.804010 0.845392 +& 11 1.072972 0.800330 0.839276 +& 11 1.085887 0.796501 0.832991 +& 11 1.098957 0.792524 0.826553 +& 11 1.112184 0.788400 0.819980 +& 11 1.125570 0.784131 0.813287 +& 11 1.139117 0.779720 0.806490 +& 11 1.152828 0.775169 0.799606 +& 11 1.166703 0.770480 0.792650 +& 11 1.180745 0.765655 0.785635 +& 11 1.194957 0.760696 0.778577 +& 11 1.209339 0.755606 0.771487 +& 11 1.223895 0.750388 0.764376 +& 11 1.238626 0.745043 0.757256 +& 11 1.253534 0.739575 0.750135 +& 11 1.268621 0.733986 0.743021 +& 11 1.283891 0.728279 0.735920 +& 11 1.299343 0.722457 0.728836 +& 11 1.314982 0.716522 0.721773 +& 11 1.330810 0.710477 0.714730 +& 11 1.346827 0.704326 0.707709 +& 11 1.363038 0.698072 0.700707 +& 11 1.379443 0.691716 0.693720 +& 11 1.396046 0.685263 0.686745 +& 11 1.412849 0.678716 0.679775 +& 11 1.429854 0.672077 0.672803 +& 11 1.447064 0.665350 0.665822 +& 11 1.464480 0.658538 0.658824 +& 11 1.482107 0.651645 0.651800 +& 11 1.499946 0.644673 0.644743 +& 11 1.517999 0.637625 0.637644 +& 11 1.536270 0.630506 0.630498 +& 11 1.554760 0.623318 0.623298 +& 11 1.573473 0.616065 0.616042 +& 11 1.592412 0.608750 0.608726 +& 11 1.611578 0.601377 0.601353 +& 11 1.630975 0.593948 0.593925 +& 11 1.650605 0.586468 0.586444 +& 11 1.670472 0.578939 0.578916 +& 11 1.680495 0.575157 0.575134 +& 11 1.690578 0.571364 0.571342 +& 11 1.700721 0.567562 0.567539 +& 11 1.710925 0.563749 0.563727 +& 11 1.721191 0.559926 0.559904 +& 11 1.731518 0.556095 0.556073 +& 11 1.741907 0.552254 0.552233 +& 11 1.752359 0.548406 0.548384 +& 11 1.762873 0.544549 0.544528 +& 11 1.773450 0.540685 0.540664 +& 11 1.784091 0.536814 0.536793 +& 11 1.794795 0.532937 0.532916 +& 11 1.805564 0.529053 0.529032 +& 11 1.816397 0.525163 0.525142 +& 11 1.827296 0.521268 0.521247 +& 11 1.838260 0.517368 0.517348 +& 11 1.849289 0.513463 0.513443 +& 11 1.860385 0.509555 0.509535 +& 11 1.871547 0.505642 0.505622 +& 11 1.882777 0.501727 0.501707 +& 11 1.894073 0.497808 0.497789 +& 11 1.905438 0.493887 0.493868 +& 11 1.916870 0.489964 0.489945 +& 11 1.928371 0.486039 0.486020 +& 11 1.939942 0.482113 0.482094 +& 11 1.951581 0.478186 0.478168 +& 11 1.963291 0.474259 0.474241 +& 11 1.975071 0.470332 0.470313 +& 11 1.986921 0.466405 0.466387 +& 11 1.998843 0.462479 0.462461 +& 11 2.010836 0.458554 0.458536 +& 11 2.022901 0.454630 0.454612 +& 11 2.035038 0.450709 0.450691 +& 11 2.047248 0.446790 0.446772 +& 11 2.059532 0.442873 0.442856 +& 11 2.071889 0.438960 0.438943 +& 11 2.084320 0.435050 0.435033 +& 11 2.096826 0.431145 0.431128 +& 11 2.109407 0.427243 0.427226 +& 11 2.122064 0.423346 0.423330 +& 11 2.134796 0.419454 0.419438 +& 11 2.147605 0.415568 0.415552 +& 11 2.160490 0.411688 0.411671 +& 11 2.173453 0.407813 0.407797 +& 11 2.186494 0.403945 0.403929 +& 11 2.199613 0.400084 0.400069 +& 11 2.212811 0.396231 0.396215 +& 11 2.226088 0.392385 0.392369 +& 11 2.239444 0.388547 0.388532 +& 11 2.252881 0.384717 0.384702 +& 11 2.266398 0.380897 0.380881 +& 11 2.279996 0.377085 0.377070 +& 11 2.293676 0.373282 0.373268 +& 11 2.307438 0.369490 0.369475 +& 11 2.321283 0.365707 0.365693 +& 11 2.335211 0.361935 0.361921 +& 11 2.349222 0.358174 0.358160 +& 11 2.363317 0.354424 0.354410 +& 11 2.377497 0.350686 0.350672 +& 11 2.391762 0.346959 0.346945 +& 11 2.406113 0.343245 0.343231 +& 11 2.420550 0.339542 0.339529 +& 11 2.435073 0.335853 0.335840 +& 11 2.449683 0.332177 0.332164 +& 11 2.464381 0.328514 0.328501 +& 11 2.479168 0.324865 0.324852 +& 11 2.494043 0.321230 0.321217 +& 11 2.509007 0.317609 0.317597 +& 11 2.524061 0.314003 0.313991 +& 11 2.539205 0.310412 0.310400 +& 11 2.554441 0.306836 0.306824 +& 11 2.569767 0.303276 0.303264 +& 11 2.585186 0.299731 0.299719 +& 11 2.600697 0.296203 0.296191 +& 11 2.616301 0.292690 0.292679 +& 11 2.631999 0.289195 0.289184 +& 11 2.647791 0.285716 0.285705 +& 11 2.663678 0.282255 0.282244 +& 11 2.679660 0.278811 0.278800 +& 11 2.695738 0.275385 0.275374 +& 11 2.711912 0.271977 0.271966 +& 11 2.728184 0.268587 0.268576 +& 11 2.744553 0.265215 0.265205 +& 11 2.761020 0.261863 0.261852 +& 11 2.777586 0.258529 0.258518 +& 11 2.794252 0.255214 0.255204 +& 11 2.811017 0.251919 0.251909 +& 11 2.827883 0.248643 0.248633 +& 11 2.844850 0.245387 0.245378 +& 11 2.861920 0.242152 0.242142 +& 11 2.879091 0.238936 0.238927 +& 11 2.896366 0.235741 0.235732 +& 11 2.913744 0.232567 0.232558 +& 11 2.931226 0.229414 0.229405 +& 11 2.948814 0.226282 0.226273 +& 11 2.966507 0.223171 0.223162 +& 11 2.984306 0.220082 0.220073 +& 11 3.002211 0.217014 0.217005 +& 11 3.020225 0.213968 0.213960 +& 11 3.038346 0.210945 0.210936 +& 11 3.056576 0.207943 0.207935 +& 11 3.074916 0.204964 0.204955 +& 11 3.093365 0.202007 0.201999 +& 11 3.111925 0.199073 0.199065 +& 11 3.130597 0.196161 0.196154 +& 11 3.149380 0.193273 0.193265 +& 11 3.168277 0.190408 0.190400 +& 11 3.187286 0.187566 0.187558 +& 11 3.206410 0.184747 0.184740 +& 11 3.225649 0.181952 0.181944 +& 11 3.245002 0.179180 0.179173 +& 11 3.264472 0.176432 0.176425 +& 11 3.284059 0.173708 0.173701 +& 11 3.303764 0.171008 0.171001 +& 11 3.323586 0.168332 0.168325 +& 11 3.343528 0.165680 0.165673 +& 11 3.363589 0.163052 0.163045 +& 11 3.383770 0.160448 0.160442 +& 11 3.404073 0.157869 0.157863 +& 11 3.424497 0.155314 0.155308 +& 11 3.445044 0.152784 0.152778 +& 11 3.465715 0.150278 0.150272 +& 11 3.486509 0.147797 0.147791 +& 11 3.507428 0.145341 0.145335 +& 11 3.528473 0.142909 0.142903 +& 11 3.549643 0.140502 0.140496 +& 11 3.570941 0.138120 0.138114 +& 11 3.592367 0.135763 0.135757 +& 11 3.613921 0.133430 0.133425 +& 11 3.635605 0.131123 0.131117 +& 11 3.657418 0.128840 0.128835 +& 11 3.679363 0.126582 0.126577 +& 11 3.701439 0.124350 0.124344 +& 11 3.723648 0.122142 0.122136 +& 11 3.745990 0.119959 0.119954 +& 11 3.768465 0.117801 0.117796 +& 11 3.791076 0.115667 0.115663 +& 11 3.813823 0.113559 0.113554 +& 11 3.836706 0.111476 0.111471 +& 11 3.859726 0.109417 0.109413 +& 11 3.882884 0.107384 0.107379 +& 11 3.906182 0.105375 0.105370 +& 11 3.929619 0.103390 0.103386 +& 11 3.953196 0.101431 0.101426 +& 11 3.976916 0.099496 0.099492 + + +scattering, iprj= 2, l= 1, kap= 1, all-electron wave function, pseudo w-f + +& 21 0.020088 -0.004552 -0.001326 +& 21 0.030171 -0.009811 -0.002988 +& 21 0.040207 -0.016703 -0.005298 +& 21 0.050469 -0.025245 -0.008332 +& 21 0.060752 -0.035120 -0.012044 +& 21 0.070975 -0.046064 -0.016393 +& 21 0.081444 -0.058265 -0.021515 +& 21 0.091795 -0.071165 -0.027231 +& 21 0.102231 -0.084875 -0.033634 +& 21 0.112499 -0.098933 -0.040546 +& 21 0.123061 -0.113864 -0.048269 +& 21 0.133811 -0.129444 -0.056747 +& 21 0.144632 -0.145415 -0.065887 +& 21 0.155396 -0.161497 -0.075556 +& 21 0.165966 -0.177396 -0.085584 +& 21 0.176197 -0.192823 -0.095770 +& 21 0.187059 -0.209176 -0.107071 +& 21 0.197406 -0.224674 -0.118274 +& 21 0.208325 -0.240892 -0.130529 +& 21 0.218537 -0.255888 -0.142361 +& 21 0.229250 -0.271401 -0.155127 +& 21 0.240488 -0.287393 -0.168872 +& 21 0.250772 -0.301744 -0.181734 +& 21 0.261496 -0.316391 -0.195400 +& 21 0.272679 -0.331292 -0.209888 +& 21 0.284339 -0.346399 -0.225212 +& 21 0.294730 -0.359469 -0.239015 +& 21 0.305501 -0.372611 -0.253433 +& 21 0.316665 -0.385783 -0.268458 +& 21 0.328238 -0.398938 -0.284077 +& 21 0.340233 -0.412027 -0.300265 +& 21 0.350563 -0.422843 -0.314168 +& 21 0.361207 -0.433542 -0.328423 +& 21 0.372174 -0.444088 -0.342999 +& 21 0.383474 -0.454441 -0.357863 +& 21 0.395117 -0.464564 -0.372973 +& 21 0.407114 -0.474414 -0.388281 +& 21 0.419475 -0.483947 -0.403732 +& 21 0.429633 -0.491315 -0.416154 +& 21 0.440037 -0.498426 -0.428591 +& 21 0.450694 -0.505256 -0.441003 +& 21 0.461608 -0.511778 -0.453347 +& 21 0.472787 -0.517966 -0.465576 +& 21 0.484236 -0.523793 -0.477639 +& 21 0.495963 -0.529231 -0.489480 +& 21 0.507973 -0.534251 -0.501042 +& 21 0.520275 -0.538824 -0.512261 +& 21 0.532874 -0.542921 -0.523071 +& 21 0.545779 -0.546512 -0.533403 +& 21 0.558996 -0.549567 -0.543184 +& 21 0.569118 -0.551489 -0.550112 +& 21 0.579424 -0.553079 -0.556653 +& 21 0.589916 -0.554324 -0.562775 +& 21 0.600599 -0.555212 -0.568441 +& 21 0.611475 -0.555730 -0.573619 +& 21 0.622547 -0.555865 -0.578271 +& 21 0.633821 -0.555604 -0.582364 +& 21 0.645298 -0.554934 -0.585860 +& 21 0.656983 -0.553843 -0.588726 +& 21 0.668880 -0.552319 -0.590927 +& 21 0.680992 -0.550348 -0.592429 +& 21 0.693324 -0.547919 -0.593199 +& 21 0.705878 -0.545019 -0.593206 +& 21 0.718661 -0.541637 -0.592419 +& 21 0.731674 -0.537762 -0.590812 +& 21 0.744924 -0.533382 -0.588357 +& 21 0.758413 -0.528486 -0.585033 +& 21 0.772146 -0.523063 -0.580818 +& 21 0.786129 -0.517103 -0.575696 +& 21 0.800364 -0.510597 -0.569654 +& 21 0.814857 -0.503534 -0.562680 +& 21 0.829613 -0.495905 -0.554769 +& 21 0.844636 -0.487703 -0.545919 +& 21 0.854802 -0.481911 -0.539499 +& 21 0.865090 -0.475858 -0.532665 +& 21 0.875502 -0.469542 -0.525420 +& 21 0.886040 -0.462960 -0.517766 +& 21 0.896704 -0.456111 -0.509710 +& 21 0.907497 -0.448992 -0.501255 +& 21 0.918419 -0.441602 -0.492410 +& 21 0.929474 -0.433939 -0.483179 +& 21 0.940661 -0.426002 -0.473573 +& 21 0.951983 -0.417788 -0.463598 +& 21 0.963441 -0.409298 -0.453265 +& 21 0.975037 -0.400530 -0.442583 +& 21 0.986772 -0.391482 -0.431563 +& 21 0.998649 -0.382155 -0.420217 +& 21 1.010669 -0.372546 -0.408554 +& 21 1.022833 -0.362657 -0.396588 +& 21 1.035144 -0.352486 -0.384329 +& 21 1.047603 -0.342033 -0.371790 +& 21 1.060212 -0.331299 -0.358984 +& 21 1.072972 -0.320283 -0.345921 +& 21 1.085887 -0.308985 -0.332613 +& 21 1.098957 -0.297408 -0.319072 +& 21 1.112184 -0.285550 -0.305309 +& 21 1.125570 -0.273413 -0.291334 +& 21 1.139117 -0.260999 -0.277156 +& 21 1.152828 -0.248309 -0.262784 +& 21 1.166703 -0.235344 -0.248228 +& 21 1.180745 -0.222106 -0.233493 +& 21 1.194957 -0.208599 -0.218586 +& 21 1.209339 -0.194823 -0.203513 +& 21 1.223895 -0.180781 -0.188279 +& 21 1.238626 -0.166478 -0.172887 +& 21 1.253534 -0.151915 -0.157339 +& 21 1.268621 -0.137097 -0.141638 +& 21 1.283891 -0.122028 -0.125785 +& 21 1.299343 -0.106712 -0.109779 +& 21 1.314982 -0.091153 -0.093623 +& 21 1.330810 -0.075356 -0.077313 +& 21 1.346827 -0.059328 -0.060851 +& 21 1.363038 -0.043073 -0.044235 +& 21 1.379443 -0.026597 -0.027465 +& 21 1.396046 -0.009908 -0.010539 +& 21 1.412849 0.006987 0.006543 +& 21 1.429854 0.024082 0.023780 +& 21 1.447064 0.041368 0.041171 +& 21 1.464480 0.058837 0.058714 +& 21 1.482107 0.076479 0.076407 +& 21 1.499946 0.094287 0.094247 +& 21 1.517999 0.112248 0.112227 +& 21 1.536270 0.130353 0.130341 +& 21 1.554760 0.148592 0.148583 +& 21 1.573473 0.166951 0.166942 +& 21 1.592412 0.185418 0.185409 +& 21 1.611578 0.203982 0.203972 +& 21 1.630975 0.222628 0.222617 +& 21 1.650605 0.241341 0.241329 +& 21 1.670472 0.260107 0.260094 +& 21 1.680495 0.269505 0.269492 +& 21 1.690578 0.278910 0.278897 +& 21 1.700721 0.288321 0.288307 +& 21 1.710925 0.297734 0.297720 +& 21 1.721191 0.307149 0.307134 +& 21 1.731518 0.316562 0.316547 +& 21 1.741907 0.325971 0.325956 +& 21 1.752359 0.335375 0.335359 +& 21 1.762873 0.344770 0.344754 +& 21 1.773450 0.354154 0.354138 +& 21 1.784091 0.363526 0.363509 +& 21 1.794795 0.372882 0.372864 +& 21 1.805564 0.382219 0.382202 +& 21 1.816397 0.391536 0.391518 +& 21 1.827296 0.400829 0.400811 +& 21 1.838260 0.410096 0.410077 +& 21 1.849289 0.419334 0.419315 +& 21 1.860385 0.428540 0.428521 +& 21 1.871547 0.437711 0.437692 +& 21 1.882777 0.446845 0.446825 +& 21 1.894073 0.455938 0.455918 +& 21 1.905438 0.464987 0.464967 +& 21 1.916870 0.473990 0.473969 +& 21 1.928371 0.482943 0.482922 +& 21 1.939942 0.491842 0.491821 +& 21 1.951581 0.500685 0.500664 +& 21 1.963291 0.509469 0.509447 +& 21 1.975071 0.518189 0.518167 +& 21 1.986921 0.526842 0.526820 +& 21 1.998843 0.535426 0.535404 +& 21 2.010836 0.543936 0.543914 +& 21 2.022901 0.552369 0.552346 +& 21 2.035038 0.560721 0.560698 +& 21 2.047248 0.568989 0.568966 +& 21 2.059532 0.577168 0.577145 +& 21 2.071889 0.585256 0.585232 +& 21 2.084320 0.593247 0.593223 +& 21 2.096826 0.601138 0.601115 +& 21 2.109407 0.608926 0.608902 +& 21 2.122064 0.616605 0.616581 +& 21 2.134796 0.624173 0.624149 +& 21 2.147605 0.631624 0.631600 +& 21 2.160490 0.638956 0.638931 +& 21 2.173453 0.646162 0.646138 +& 21 2.186494 0.653240 0.653216 +& 21 2.199613 0.660184 0.660160 +& 21 2.212811 0.666992 0.666967 +& 21 2.226088 0.673657 0.673632 +& 21 2.239444 0.680175 0.680151 +& 21 2.252881 0.686543 0.686519 +& 21 2.266398 0.692755 0.692731 +& 21 2.279996 0.698807 0.698783 +& 21 2.293676 0.704694 0.704670 +& 21 2.307438 0.710411 0.710387 +& 21 2.321283 0.715955 0.715931 +& 21 2.335211 0.721319 0.721295 +& 21 2.349222 0.726500 0.726476 +& 21 2.363317 0.731492 0.731468 +& 21 2.377497 0.736290 0.736267 +& 21 2.391762 0.740891 0.740868 +& 21 2.406113 0.745288 0.745265 +& 21 2.420550 0.749477 0.749454 +& 21 2.435073 0.753453 0.753430 +& 21 2.449683 0.757210 0.757188 +& 21 2.464381 0.760745 0.760723 +& 21 2.479168 0.764052 0.764030 +& 21 2.494043 0.767126 0.767104 +& 21 2.509007 0.769961 0.769940 +& 21 2.524061 0.772554 0.772533 +& 21 2.539205 0.774898 0.774878 +& 21 2.554441 0.776990 0.776970 +& 21 2.569767 0.778823 0.778804 +& 21 2.585186 0.780394 0.780375 +& 21 2.600697 0.781696 0.781678 +& 21 2.616301 0.782726 0.782708 +& 21 2.631999 0.783478 0.783460 +& 21 2.647791 0.783947 0.783929 +& 21 2.663678 0.784128 0.784111 +& 21 2.679660 0.784017 0.784001 +& 21 2.695738 0.783609 0.783593 +& 21 2.711912 0.782898 0.782883 +& 21 2.728184 0.781882 0.781867 +& 21 2.744553 0.780554 0.780540 +& 21 2.761020 0.778910 0.778896 +& 21 2.777586 0.776946 0.776933 +& 21 2.794252 0.774657 0.774645 +& 21 2.811017 0.772040 0.772028 +& 21 2.827883 0.769089 0.769078 +& 21 2.844850 0.765801 0.765791 +& 21 2.861920 0.762172 0.762162 +& 21 2.879091 0.758197 0.758188 +& 21 2.896366 0.753873 0.753866 +& 21 2.913744 0.749197 0.749190 +& 21 2.931226 0.744164 0.744158 +& 21 2.948814 0.738772 0.738767 +& 21 2.966507 0.733017 0.733012 +& 21 2.984306 0.726895 0.726891 +& 21 3.002211 0.720405 0.720402 +& 21 3.020225 0.713543 0.713541 +& 21 3.038346 0.706306 0.706305 +& 21 3.056576 0.698693 0.698692 +& 21 3.074916 0.690700 0.690701 +& 21 3.093365 0.682327 0.682328 +& 21 3.111925 0.673571 0.673573 +& 21 3.130597 0.664430 0.664433 +& 21 3.149380 0.654904 0.654908 +& 21 3.168277 0.644991 0.644996 +& 21 3.187286 0.634690 0.634696 +& 21 3.206410 0.624000 0.624007 +& 21 3.225649 0.612923 0.612931 +& 21 3.245002 0.601456 0.601465 +& 21 3.264472 0.589601 0.589611 +& 21 3.284059 0.577359 0.577370 +& 21 3.303764 0.564729 0.564741 +& 21 3.323586 0.551714 0.551727 +& 21 3.343528 0.538314 0.538328 +& 21 3.363589 0.524532 0.524547 +& 21 3.383770 0.510370 0.510386 +& 21 3.404073 0.495830 0.495847 +& 21 3.424497 0.480916 0.480934 +& 21 3.445044 0.465630 0.465649 +& 21 3.465715 0.449977 0.449997 +& 21 3.486509 0.433960 0.433982 +& 21 3.507428 0.417585 0.417607 +& 21 3.528473 0.400855 0.400879 +& 21 3.549643 0.383777 0.383802 +& 21 3.570941 0.366357 0.366382 +& 21 3.592367 0.348600 0.348626 +& 21 3.613921 0.330513 0.330541 +& 21 3.635605 0.312105 0.312133 +& 21 3.657418 0.293381 0.293411 +& 21 3.679363 0.274352 0.274382 +& 21 3.701439 0.255024 0.255056 +& 21 3.723648 0.235409 0.235441 +& 21 3.745990 0.215515 0.215548 +& 21 3.768465 0.195352 0.195387 +& 21 3.791076 0.174932 0.174968 +& 21 3.813823 0.154266 0.154303 +& 21 3.836706 0.133366 0.133403 +& 21 3.859726 0.112244 0.112282 +& 21 3.882884 0.090913 0.090952 +& 21 3.906182 0.069388 0.069427 +& 21 3.929619 0.047681 0.047721 +& 21 3.953196 0.025808 0.025849 +& 21 3.976916 0.003784 0.003826 + + +!J 1 0.009976 0.001729 -0.000948 +!J 1 0.018696 0.006064 -0.003321 +!J 1 0.027417 0.013019 -0.007115 +!J 1 0.036319 0.022788 -0.012419 +!J 1 0.045046 0.034949 -0.018978 +!J 1 0.053901 0.049850 -0.026951 +!J 1 0.062972 0.067729 -0.036420 +!J 1 0.071829 0.087669 -0.046857 +!J 1 0.080958 0.110702 -0.058746 +!J 1 0.090162 0.136376 -0.071786 +!J 1 0.099218 0.163935 -0.085529 +!J 1 0.108533 0.194538 -0.100475 +!J 1 0.117310 0.225352 -0.115183 +!J 1 0.126041 0.257789 -0.130286 +!J 1 0.135421 0.294487 -0.146892 +!J 1 0.144632 0.332236 -0.163427 +!J 1 0.153548 0.370249 -0.179499 +!J 1 0.163014 0.412031 -0.196474 +!J 1 0.172031 0.453041 -0.212406 +!J 1 0.181547 0.497425 -0.228806 +!J 1 0.190446 0.539805 -0.243613 +!J 1 0.199782 0.584999 -0.258448 +!J 1 0.209575 0.633032 -0.273083 +!J 1 0.218537 0.677382 -0.285509 +!J 1 0.227883 0.723860 -0.297353 +!J 1 0.237628 0.772398 -0.308363 +!J 1 0.247790 0.822889 -0.318249 +!J 1 0.256845 0.867610 -0.325583 +!J 1 0.266231 0.913535 -0.331627 +!J 1 0.275961 0.960512 -0.336137 +!J 1 0.286045 1.008358 -0.338847 +!J 1 0.296499 1.056854 -0.339477 +!J 1 0.305501 1.097579 -0.338201 +!J 1 0.314777 1.138407 -0.335099 +!J 1 0.324334 1.179147 -0.329990 +!J 1 0.334181 1.219586 -0.322693 +!J 1 0.344328 1.259487 -0.313025 +!J 1 0.354782 1.298590 -0.300805 +!J 1 0.365554 1.336611 -0.285859 +!J 1 0.374407 1.366040 -0.271827 +!J 1 0.383474 1.394407 -0.255860 +!J 1 0.392761 1.421529 -0.237882 +!J 1 0.402272 1.447215 -0.217821 +!J 1 0.412014 1.471257 -0.195611 +!J 1 0.421991 1.493442 -0.171193 +!J 1 0.432211 1.513540 -0.144513 +!J 1 0.442677 1.531313 -0.115524 +!J 1 0.453398 1.546508 -0.084184 +!J 1 0.464378 1.558864 -0.050456 +!J 1 0.475623 1.568105 -0.014307 +!J 1 0.487142 1.573946 0.024292 +!J 1 0.495963 1.575916 0.054868 +!J 1 0.504944 1.575677 0.086852 +!J 1 0.514087 1.573097 0.120259 +!J 1 0.523397 1.568041 0.155102 +!J 1 0.532874 1.560371 0.191398 +!J 1 0.542524 1.549947 0.229167 +!J 1 0.552348 1.536630 0.268430 +!J 1 0.562350 1.520277 0.309210 +!J 1 0.572533 1.500750 0.351534 +!J 1 0.582901 1.477908 0.395428 +!J 1 0.593456 1.451618 0.440921 +!J 1 0.604202 1.421748 0.488042 +!J 1 0.615143 1.388175 0.536818 +!J 1 0.626283 1.350788 0.587268 +!J 1 0.637623 1.309485 0.639407 +!J 1 0.649170 1.264183 0.693236 +!J 1 0.660925 1.214818 0.748739 +!J 1 0.672893 1.161351 0.805879 +!J 1 0.685078 1.103773 0.864586 +!J 1 0.697484 1.042110 0.924754 +!J 1 0.710114 0.976427 0.986231 +!J 1 0.722973 0.906839 1.048807 +!J 1 0.736064 0.833513 1.112206 +!J 1 0.744924 0.782662 1.154760 +!J 1 0.753890 0.730334 1.197398 +!J 1 0.762963 0.676626 1.239977 +!J 1 0.772146 0.621650 1.282333 +!J 1 0.781440 0.565536 1.324278 +!J 1 0.790845 0.508428 1.365606 +!J 1 0.800364 0.450486 1.406085 +!J 1 0.809997 0.391891 1.445460 +!J 1 0.819746 0.332837 1.483452 +!J 1 0.829613 0.273538 1.519760 +!J 1 0.839598 0.214226 1.554056 +!J 1 0.849703 0.155147 1.585993 +!J 1 0.859930 0.096566 1.615202 +!J 1 0.870281 0.038761 1.641295 +!J 1 0.880755 -0.017973 1.663868 +!J 1 0.891356 -0.073333 1.682506 +!J 1 0.902084 -0.127003 1.696786 +!J 1 0.912942 -0.178662 1.706281 +!J 1 0.923930 -0.227982 1.710568 +!J 1 0.935050 -0.274637 1.709234 +!J 1 0.946305 -0.318301 1.701883 +!J 1 0.957694 -0.358658 1.688146 +!J 1 0.969221 -0.395402 1.667688 +!J 1 0.980887 -0.428246 1.640219 +!J 1 0.992693 -0.456923 1.605505 +!J 1 1.004641 -0.481195 1.563376 +!J 1 1.016733 -0.500859 1.513738 +!J 1 1.028970 -0.515750 1.456584 +!J 1 1.041355 -0.525748 1.392004 +!J 1 1.053888 -0.530785 1.320194 +!J 1 1.066573 -0.530847 1.241463 +!J 1 1.079410 -0.525981 1.156242 +!J 1 1.092402 -0.516298 1.065086 +!J 1 1.105550 -0.501976 0.968682 +!J 1 1.118857 -0.483261 0.867843 +!J 1 1.132323 -0.460466 0.763506 +!J 1 1.145952 -0.433975 0.656730 +!J 1 1.159745 -0.404234 0.548679 +!J 1 1.173703 -0.371749 0.440612 +!J 1 1.187830 -0.337079 0.333861 +!J 1 1.202127 -0.300828 0.229810 +!J 1 1.216595 -0.263633 0.129869 +!J 1 1.231238 -0.226155 0.035436 +!J 1 1.246058 -0.189059 -0.052127 +!J 1 1.261055 -0.153002 -0.131542 +!J 1 1.276233 -0.118619 -0.201649 +!J 1 1.291594 -0.086497 -0.261445 +!J 1 1.307140 -0.057167 -0.310129 +!J 1 1.322872 -0.031080 -0.347133 +!J 1 1.338794 -0.008595 -0.372162 +!J 1 1.354908 0.010037 -0.385217 +!J 1 1.371216 0.024686 -0.386621 +!J 1 1.387720 0.035343 -0.377022 +!J 1 1.404422 0.042134 -0.357401 +!J 1 1.421326 0.045310 -0.329053 +!J 1 1.438433 0.045245 -0.293578 +!J 1 1.455746 0.042433 -0.252848 +!J 1 1.464480 0.040178 -0.231162 +!J 1 1.473267 0.037465 -0.208963 +!J 1 1.482107 0.034379 -0.186538 +!J 1 1.491000 0.031010 -0.164178 +!J 1 1.499946 0.027447 -0.142176 +!J 1 1.508945 0.023783 -0.120823 +!J 1 1.517999 0.020108 -0.100408 +!J 1 1.527107 0.016514 -0.081212 +!J 1 1.536270 0.013090 -0.063507 +!J 1 1.545487 0.009917 -0.047548 +!J 1 1.554760 0.007074 -0.033569 +!J 1 1.564089 0.004630 -0.021784 +!J 1 1.573473 0.002649 -0.012383 +!J 1 1.582914 0.001185 -0.005526 +!J 1 1.592412 0.000284 -0.001345 +!J 1 1.601966 -0.000022 0.000064 +!J 1 1.611578 0.000000 -0.000000 +!J 1 1.621247 0.000000 -0.000000 +!J 1 1.630975 0.000000 -0.000000 +!J 1 1.640761 0.000000 -0.000000 +!J 1 1.650605 0.000000 -0.000000 +!J 1 1.660509 0.000000 -0.000000 +!J 1 1.670472 0.000000 -0.000000 +!J 1 1.680495 0.000000 -0.000000 +!J 1 1.690578 0.000000 -0.000000 +!J 1 1.700721 0.000000 -0.000000 +!J 1 1.710925 0.000000 -0.000000 +!J 1 1.721191 0.000000 -0.000000 +!J 1 1.731518 0.000000 -0.000000 +!J 1 1.741907 0.000000 -0.000000 + +convergence profiles, (ll=0,lmax), kappa average +!C 0 5.013968 0.010000 +!C 0 6.930370 0.003162 +!C 0 14.644632 0.001000 +!C 0 18.343596 0.000316 +!C 0 21.050501 0.000100 +!C 0 23.309451 0.000032 +!C 0 25.333857 0.000010 +!C 1 19.486256 0.010000 +!C 1 22.183372 0.003162 +!C 1 24.677261 0.001000 +!C 1 26.693703 0.000316 +!C 1 28.678731 0.000100 +!C 1 30.548976 0.000032 +!C 1 35.107545 0.000010 + +log derivativve data for plotting, l= 0 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.62 +l, energy, all-electron, pseudopotential + +! 0 2.000000 0.588898 0.585331 +! 0 1.980000 0.613503 0.610189 +! 0 1.960000 0.637345 0.634268 +! 0 1.940000 0.660436 0.657582 +! 0 1.920000 0.682792 0.680149 +! 0 1.900000 0.704432 0.701985 +! 0 1.880000 0.725373 0.723110 +! 0 1.860000 0.745637 0.743545 +! 0 1.840000 0.765243 0.763311 +! 0 1.820000 0.784212 0.782430 +! 0 1.800000 0.802567 0.800924 +! 0 1.780000 0.820329 0.818815 +! 0 1.760000 0.837520 0.836125 +! 0 1.740000 0.854160 0.852877 +! 0 1.720000 0.870271 0.869091 +! 0 1.700000 0.885874 0.884789 +! 0 1.680000 0.900988 0.899992 +! 0 1.660000 0.915633 0.914719 +! 0 1.640000 0.929829 0.928991 +! 0 1.620000 0.943593 0.942825 +! 0 1.600000 0.956944 0.956241 +! 0 1.580000 0.969899 0.969256 +! 0 1.560000 0.982475 0.981887 +! 0 1.540000 0.994687 0.994150 +! 0 1.520000 1.006551 1.006061 +! 0 1.500000 1.018082 1.017635 +! 0 1.480000 1.029294 1.028887 +! 0 1.460000 1.040200 1.039830 +! 0 1.440000 1.050814 1.050478 +! 0 1.420000 1.061148 1.060844 +! 0 1.400000 1.071214 1.070938 +! 0 1.380000 1.081024 1.080774 +! 0 1.360000 1.090588 1.090363 +! 0 1.340000 1.099917 1.099714 +! 0 1.320000 1.109021 1.108839 +! 0 1.300000 1.117910 1.117746 +! 0 1.280000 1.126593 1.126446 +! 0 1.260000 1.135078 1.134947 +! 0 1.240000 1.143375 1.143259 +! 0 1.220000 1.151491 1.151388 +! 0 1.200000 1.159435 1.159343 +! 0 1.180000 1.167212 1.167132 +! 0 1.160000 1.174832 1.174761 +! 0 1.140000 1.182300 1.182238 +! 0 1.120000 1.189623 1.189569 +! 0 1.100000 1.196808 1.196761 +! 0 1.080000 1.203860 1.203820 +! 0 1.060000 1.210786 1.210752 +! 0 1.040000 1.217591 1.217562 +! 0 1.020000 1.224280 1.224256 +! 0 1.000000 1.230859 1.230839 +! 0 0.980000 1.237333 1.237316 +! 0 0.960000 1.243706 1.243693 +! 0 0.940000 1.249984 1.249973 +! 0 0.920000 1.256170 1.256162 +! 0 0.900000 1.262270 1.262264 +! 0 0.880000 1.268287 1.268283 +! 0 0.860000 1.274225 1.274223 +! 0 0.840000 1.280090 1.280088 +! 0 0.820000 1.285884 1.285883 +! 0 0.800000 1.291611 1.291611 +! 0 0.780000 1.297275 1.297276 +! 0 0.760000 1.302880 1.302881 +! 0 0.740000 1.308428 1.308430 +! 0 0.720000 1.313925 1.313926 +! 0 0.700000 1.319372 1.319373 +! 0 0.680000 1.324773 1.324774 +! 0 0.660000 1.330132 1.330133 +! 0 0.640000 1.335451 1.335451 +! 0 0.620000 1.340734 1.340734 +! 0 0.600000 1.345983 1.345983 +! 0 0.580000 1.351203 1.351201 +! 0 0.560000 1.356395 1.356393 +! 0 0.540000 1.361563 1.361560 +! 0 0.520000 1.366709 1.366705 +! 0 0.500000 1.371837 1.371833 +! 0 0.480000 1.376950 1.376945 +! 0 0.460000 1.382050 1.382044 +! 0 0.440000 1.387141 1.387133 +! 0 0.420000 1.392225 1.392216 +! 0 0.400000 1.397305 1.397295 +! 0 0.380000 1.402384 1.402373 +! 0 0.360000 1.407465 1.407454 +! 0 0.340000 1.412551 1.412539 +! 0 0.320000 1.417645 1.417632 +! 0 0.300000 1.422750 1.422736 +! 0 0.280000 1.427870 1.427854 +! 0 0.260000 1.433006 1.432990 +! 0 0.240000 1.438163 1.438146 +! 0 0.220000 1.443344 1.443325 +! 0 0.200000 1.448551 1.448532 +! 0 0.180000 1.453789 1.453769 +! 0 0.160000 1.459060 1.459039 +! 0 0.140000 1.464369 1.464347 +! 0 0.120000 1.469718 1.469696 +! 0 0.100000 1.475112 1.475089 +! 0 0.080000 1.480555 1.480531 +! 0 0.060000 1.486050 1.486026 +! 0 0.040000 1.491602 1.491576 +! 0 0.020000 1.497214 1.497188 +! 0 0.000000 1.502892 1.502865 +! 0 -0.020000 1.508639 1.508612 +! 0 -0.040000 1.514461 1.514433 +! 0 -0.060000 1.520362 1.520334 +! 0 -0.080000 1.526348 1.526320 +! 0 -0.100000 1.532423 1.532395 +! 0 -0.120000 1.538595 1.538566 +! 0 -0.140000 1.544868 1.544839 +! 0 -0.160000 1.551248 1.551219 +! 0 -0.180000 1.557743 1.557714 +! 0 -0.200000 1.564358 1.564329 +! 0 -0.220000 1.571102 1.571073 +! 0 -0.240000 1.577981 1.577952 +! 0 -0.260000 1.585003 1.584974 +! 0 -0.280000 1.592177 1.592149 +! 0 -0.300000 1.599512 1.599483 +! 0 -0.320000 1.607016 1.606988 +! 0 -0.340000 1.614700 1.614672 +! 0 -0.360000 1.622574 1.622546 +! 0 -0.380000 1.630649 1.630622 +! 0 -0.400000 1.638936 1.638910 +! 0 -0.420000 1.647449 1.647423 +! 0 -0.440000 1.656200 1.656174 +! 0 -0.460000 1.665203 1.665178 +! 0 -0.480000 1.674473 1.674449 +! 0 -0.500000 1.684026 1.684003 +! 0 -0.520000 1.693879 1.693857 +! 0 -0.540000 1.704050 1.704029 +! 0 -0.560000 1.714559 1.714539 +! 0 -0.580000 1.725425 1.725406 +! 0 -0.600000 1.736671 1.736653 +! 0 -0.620000 1.748321 1.748304 +! 0 -0.640000 1.760399 1.760383 +! 0 -0.660000 1.772932 1.772918 +! 0 -0.680000 1.785950 1.785937 +! 0 -0.700000 1.799482 1.799471 +! 0 -0.720000 1.813563 1.813553 +! 0 -0.740000 1.828227 1.828218 +! 0 -0.760000 1.843512 1.843504 +! 0 -0.780000 1.859459 1.859452 +! 0 -0.800000 1.876110 1.876105 +! 0 -0.820000 1.893513 1.893509 +! 0 -0.840000 1.911715 1.911712 +! 0 -0.860000 1.930769 1.930767 +! 0 -0.880000 1.950730 1.950729 +! 0 -0.900000 1.971657 1.971657 +! 0 -0.920000 1.993612 1.993612 +! 0 -0.940000 2.016659 2.016660 +! 0 -0.960000 2.040865 2.040866 +! 0 -0.980000 2.066301 2.066302 +! 0 -1.000000 2.093037 2.093037 +! 0 -1.020000 2.121146 2.121146 +! 0 -1.040000 2.150701 2.150698 +! 0 -1.060000 2.181771 2.181766 +! 0 -1.080000 2.214425 2.214417 +! 0 -1.100000 2.248723 2.248712 +! 0 -1.120000 2.284720 2.284705 +! 0 -1.140000 2.322459 2.322438 +! 0 -1.160000 2.361967 2.361939 +! 0 -1.180000 2.403255 2.403219 +! 0 -1.200000 2.446309 2.446264 +! 0 -1.220000 2.491090 2.491035 +! 0 -1.240000 2.537530 2.537463 +! 0 -1.260000 2.585527 2.585447 +! 0 -1.280000 2.634944 2.634850 +! 0 -1.300000 2.685610 2.685501 +! 0 -1.320000 2.737320 2.737194 +! 0 -1.340000 2.789837 2.789694 +! 0 -1.360000 2.842901 2.842741 +! 0 -1.380000 2.896233 2.896057 +! 0 -1.400000 2.949548 2.949354 +! 0 -1.420000 3.002557 3.002346 +! 0 -1.440000 3.054983 3.054756 +! 0 -1.460000 3.106568 3.106325 +! 0 -1.480000 3.157077 3.156820 +! 0 -1.500000 3.206307 3.206038 +! 0 -1.520000 3.254090 3.253808 +! 0 -1.540000 3.300291 3.299999 +! 0 -1.560000 3.344810 3.344509 +! 0 -1.580000 3.387581 3.387272 +! 0 -1.600000 3.428567 3.428252 +! 0 -1.620000 3.467757 3.467436 +! 0 -1.640000 3.505161 3.504836 +! 0 -1.660000 3.540809 3.540481 +! 0 -1.680000 3.574745 3.574415 +! 0 -1.700000 3.607022 3.606690 +! 0 -1.720000 3.637703 3.637371 +! 0 -1.740000 3.666856 3.666523 +! 0 -1.760000 3.694551 3.694218 +! 0 -1.780000 3.720860 3.720528 +! 0 -1.800000 3.745855 3.745525 +! 0 -1.820000 3.769609 3.769279 +! 0 -1.840000 3.792189 3.791861 +! 0 -1.860000 3.813664 3.813338 +! 0 -1.880000 3.834097 3.833773 +! 0 -1.900000 3.853550 3.853229 +! 0 -1.920000 3.872081 3.871762 +! 0 -1.940000 3.889745 3.889428 +! 0 -1.960000 3.906594 3.906280 +! 0 -1.980000 3.922676 3.922364 + +log derivativve data for plotting, l= 1 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.62 +l, energy, all-electron, pseudopotential + +! -1 2.000000 -2.633391 -2.630644 +! -1 1.980000 -2.602355 -2.599803 +! -1 1.960000 -2.572301 -2.569933 +! -1 1.940000 -2.543224 -2.541031 +! -1 1.920000 -2.515117 -2.513087 +! -1 1.900000 -2.487964 -2.486088 +! -1 1.880000 -2.461746 -2.460015 +! -1 1.860000 -2.436442 -2.434846 +! -1 1.840000 -2.412026 -2.410556 +! -1 1.820000 -2.388472 -2.387118 +! -1 1.800000 -2.365751 -2.364506 +! -1 1.780000 -2.343833 -2.342689 +! -1 1.760000 -2.322689 -2.321638 +! -1 1.740000 -2.302288 -2.301324 +! -1 1.720000 -2.282600 -2.281715 +! -1 1.700000 -2.263594 -2.262783 +! -1 1.680000 -2.245241 -2.244498 +! -1 1.660000 -2.227512 -2.226832 +! -1 1.640000 -2.210378 -2.209756 +! -1 1.620000 -2.193813 -2.193244 +! -1 1.600000 -2.177789 -2.177269 +! -1 1.580000 -2.162282 -2.161806 +! -1 1.560000 -2.147265 -2.146831 +! -1 1.540000 -2.132717 -2.132320 +! -1 1.520000 -2.118613 -2.118251 +! -1 1.500000 -2.104932 -2.104603 +! -1 1.480000 -2.091653 -2.091353 +! -1 1.460000 -2.078757 -2.078484 +! -1 1.440000 -2.066223 -2.065975 +! -1 1.420000 -2.054035 -2.053810 +! -1 1.400000 -2.042175 -2.041970 +! -1 1.380000 -2.030626 -2.030440 +! -1 1.360000 -2.019371 -2.019204 +! -1 1.340000 -2.008398 -2.008246 +! -1 1.320000 -1.997690 -1.997552 +! -1 1.300000 -1.987233 -1.987110 +! -1 1.280000 -1.977016 -1.976905 +! -1 1.260000 -1.967025 -1.966925 +! -1 1.240000 -1.957248 -1.957158 +! -1 1.220000 -1.947674 -1.947593 +! -1 1.200000 -1.938292 -1.938219 +! -1 1.180000 -1.929090 -1.929026 +! -1 1.160000 -1.920060 -1.920002 +! -1 1.140000 -1.911190 -1.911139 +! -1 1.120000 -1.902472 -1.902427 +! -1 1.100000 -1.893897 -1.893857 +! -1 1.080000 -1.885456 -1.885421 +! -1 1.060000 -1.877140 -1.877109 +! -1 1.040000 -1.868942 -1.868915 +! -1 1.020000 -1.860853 -1.860830 +! -1 1.000000 -1.852866 -1.852846 +! -1 0.980000 -1.844974 -1.844956 +! -1 0.960000 -1.837168 -1.837153 +! -1 0.940000 -1.829443 -1.829430 +! -1 0.920000 -1.821791 -1.821780 +! -1 0.900000 -1.814205 -1.814196 +! -1 0.880000 -1.806680 -1.806672 +! -1 0.860000 -1.799207 -1.799201 +! -1 0.840000 -1.791781 -1.791776 +! -1 0.820000 -1.784396 -1.784392 +! -1 0.800000 -1.777045 -1.777042 +! -1 0.780000 -1.769722 -1.769720 +! -1 0.760000 -1.762421 -1.762419 +! -1 0.740000 -1.755136 -1.755134 +! -1 0.720000 -1.747860 -1.747858 +! -1 0.700000 -1.740587 -1.740586 +! -1 0.680000 -1.733311 -1.733310 +! -1 0.660000 -1.726026 -1.726025 +! -1 0.640000 -1.718725 -1.718725 +! -1 0.620000 -1.711402 -1.711402 +! -1 0.600000 -1.704051 -1.704051 +! -1 0.580000 -1.696664 -1.696664 +! -1 0.560000 -1.689236 -1.689236 +! -1 0.540000 -1.681759 -1.681758 +! -1 0.520000 -1.674225 -1.674225 +! -1 0.500000 -1.666629 -1.666628 +! -1 0.480000 -1.658961 -1.658961 +! -1 0.460000 -1.651215 -1.651214 +! -1 0.440000 -1.643383 -1.643382 +! -1 0.420000 -1.635455 -1.635454 +! -1 0.400000 -1.627424 -1.627423 +! -1 0.380000 -1.619281 -1.619279 +! -1 0.360000 -1.611015 -1.611014 +! -1 0.340000 -1.602618 -1.602616 +! -1 0.320000 -1.594079 -1.594077 +! -1 0.300000 -1.585387 -1.585385 +! -1 0.280000 -1.576531 -1.576529 +! -1 0.260000 -1.567499 -1.567497 +! -1 0.240000 -1.558279 -1.558276 +! -1 0.220000 -1.548857 -1.548854 +! -1 0.200000 -1.539219 -1.539216 +! -1 0.180000 -1.529350 -1.529347 +! -1 0.160000 -1.519236 -1.519233 +! -1 0.140000 -1.508859 -1.508856 +! -1 0.120000 -1.498201 -1.498198 +! -1 0.100000 -1.487244 -1.487241 +! -1 0.080000 -1.475968 -1.475965 +! -1 0.060000 -1.464352 -1.464349 +! -1 0.040000 -1.452372 -1.452369 +! -1 0.020000 -1.440005 -1.440003 +! -1 0.000000 -1.427226 -1.427223 +! -1 -0.020000 -1.414005 -1.414002 +! -1 -0.040000 -1.400314 -1.400312 +! -1 -0.060000 -1.386121 -1.386119 +! -1 -0.080000 -1.371393 -1.371391 +! -1 -0.100000 -1.356093 -1.356092 +! -1 -0.120000 -1.340184 -1.340182 +! -1 -0.140000 -1.323623 -1.323622 +! -1 -0.160000 -1.306366 -1.306365 +! -1 -0.180000 -1.288368 -1.288367 +! -1 -0.200000 -1.269577 -1.269577 +! -1 -0.220000 -1.249941 -1.249941 +! -1 -0.240000 -1.229403 -1.229403 +! -1 -0.260000 -1.207904 -1.207905 +! -1 -0.280000 -1.185381 -1.185381 +! -1 -0.300000 -1.161768 -1.161768 +! -1 -0.320000 -1.136996 -1.136996 +! -1 -0.340000 -1.110994 -1.110994 +! -1 -0.360000 -1.083689 -1.083690 +! -1 -0.380000 -1.055008 -1.055008 +! -1 -0.400000 -1.024877 -1.024877 +! -1 -0.420000 -0.993223 -0.993222 +! -1 -0.440000 -0.959978 -0.959976 +! -1 -0.460000 -0.925078 -0.925075 +! -1 -0.480000 -0.888468 -0.888463 +! -1 -0.500000 -0.850105 -0.850098 +! -1 -0.520000 -0.809960 -0.809950 +! -1 -0.540000 -0.768022 -0.768010 +! -1 -0.560000 -0.724305 -0.724290 +! -1 -0.580000 -0.678849 -0.678830 +! -1 -0.600000 -0.631724 -0.631701 +! -1 -0.620000 -0.583034 -0.583006 +! -1 -0.640000 -0.532920 -0.532887 +! -1 -0.660000 -0.481557 -0.481518 +! -1 -0.680000 -0.429155 -0.429111 +! -1 -0.700000 -0.375956 -0.375905 +! -1 -0.720000 -0.322226 -0.322169 +! -1 -0.740000 -0.268248 -0.268185 +! -1 -0.760000 -0.214316 -0.214245 +! -1 -0.780000 -0.160720 -0.160643 +! -1 -0.800000 -0.107741 -0.107658 +! -1 -0.820000 -0.055642 -0.055553 +! -1 -0.840000 -0.004656 -0.004561 +! -1 -0.860000 0.045012 0.045112 +! -1 -0.880000 0.093194 0.093299 +! -1 -0.900000 0.139758 0.139867 +! -1 -0.920000 0.184606 0.184719 +! -1 -0.940000 0.227674 0.227791 +! -1 -0.960000 0.268929 0.269049 +! -1 -0.980000 0.308363 0.308485 +! -1 -1.000000 0.345989 0.346113 +! -1 -1.020000 0.381839 0.381965 +! -1 -1.040000 0.415960 0.416087 +! -1 -1.060000 0.448409 0.448537 +! -1 -1.080000 0.479250 0.479378 +! -1 -1.100000 0.508552 0.508681 +! -1 -1.120000 0.536388 0.536518 +! -1 -1.140000 0.562832 0.562961 +! -1 -1.160000 0.587956 0.588086 +! -1 -1.180000 0.611834 0.611963 +! -1 -1.200000 0.634535 0.634664 +! -1 -1.220000 0.656128 0.656257 +! -1 -1.240000 0.676677 0.676805 +! -1 -1.260000 0.696243 0.696371 +! -1 -1.280000 0.714887 0.715014 +! -1 -1.300000 0.732662 0.732788 +! -1 -1.320000 0.749621 0.749747 +! -1 -1.340000 0.765813 0.765938 +! -1 -1.360000 0.781283 0.781407 +! -1 -1.380000 0.796074 0.796198 +! -1 -1.400000 0.810228 0.810350 +! -1 -1.420000 0.823780 0.823902 +! -1 -1.440000 0.836766 0.836887 +! -1 -1.460000 0.849219 0.849339 +! -1 -1.480000 0.861168 0.861288 +! -1 -1.500000 0.872644 0.872763 +! -1 -1.520000 0.883671 0.883790 +! -1 -1.540000 0.894275 0.894393 +! -1 -1.560000 0.904480 0.904597 +! -1 -1.580000 0.914306 0.914422 +! -1 -1.600000 0.923773 0.923889 +! -1 -1.620000 0.932901 0.933016 +! -1 -1.640000 0.941708 0.941822 +! -1 -1.660000 0.950209 0.950322 +! -1 -1.680000 0.958421 0.958533 +! -1 -1.700000 0.966357 0.966469 +! -1 -1.720000 0.974032 0.974143 +! -1 -1.740000 0.981458 0.981568 +! -1 -1.760000 0.988647 0.988757 +! -1 -1.780000 0.995610 0.995719 +! -1 -1.800000 1.002358 1.002467 +! -1 -1.820000 1.008902 1.009009 +! -1 -1.840000 1.015249 1.015356 +! -1 -1.860000 1.021409 1.021516 +! -1 -1.880000 1.027391 1.027497 +! -1 -1.900000 1.033201 1.033307 +! -1 -1.920000 1.038849 1.038954 +! -1 -1.940000 1.044340 1.044444 +! -1 -1.960000 1.049681 1.049784 +! -1 -1.980000 1.054878 1.054981 + +log derivativve data for plotting, l= 1 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.62 +l, energy, all-electron, pseudopotential + +! 1 2.000000 -2.639683 -2.636899 +! 1 1.980000 -2.608463 -2.605875 +! 1 1.960000 -2.578224 -2.575822 +! 1 1.940000 -2.548963 -2.546737 +! 1 1.920000 -2.520672 -2.518613 +! 1 1.900000 -2.493339 -2.491435 +! 1 1.880000 -2.466944 -2.465187 +! 1 1.860000 -2.441466 -2.439846 +! 1 1.840000 -2.416882 -2.415389 +! 1 1.820000 -2.393164 -2.391790 +! 1 1.800000 -2.370284 -2.369020 +! 1 1.780000 -2.348213 -2.347052 +! 1 1.760000 -2.326922 -2.325855 +! 1 1.740000 -2.306378 -2.305399 +! 1 1.720000 -2.286554 -2.285655 +! 1 1.700000 -2.267417 -2.266593 +! 1 1.680000 -2.248938 -2.248184 +! 1 1.660000 -2.231089 -2.230398 +! 1 1.640000 -2.213840 -2.213208 +! 1 1.620000 -2.197165 -2.196587 +! 1 1.600000 -2.181036 -2.180508 +! 1 1.580000 -2.165428 -2.164945 +! 1 1.560000 -2.150316 -2.149875 +! 1 1.540000 -2.135676 -2.135274 +! 1 1.520000 -2.121484 -2.121118 +! 1 1.500000 -2.107720 -2.107386 +! 1 1.480000 -2.094362 -2.094058 +! 1 1.460000 -2.081390 -2.081113 +! 1 1.440000 -2.068785 -2.068533 +! 1 1.420000 -2.056528 -2.056299 +! 1 1.400000 -2.044602 -2.044394 +! 1 1.380000 -2.032990 -2.032802 +! 1 1.360000 -2.021676 -2.021506 +! 1 1.340000 -2.010645 -2.010491 +! 1 1.320000 -1.999883 -1.999744 +! 1 1.300000 -1.989375 -1.989250 +! 1 1.280000 -1.979109 -1.978995 +! 1 1.260000 -1.969071 -1.968969 +! 1 1.240000 -1.959249 -1.959157 +! 1 1.220000 -1.949632 -1.949550 +! 1 1.200000 -1.940209 -1.940135 +! 1 1.180000 -1.930968 -1.930903 +! 1 1.160000 -1.921901 -1.921842 +! 1 1.140000 -1.912996 -1.912944 +! 1 1.120000 -1.904245 -1.904199 +! 1 1.100000 -1.895638 -1.895597 +! 1 1.080000 -1.887166 -1.887130 +! 1 1.060000 -1.878821 -1.878790 +! 1 1.040000 -1.870596 -1.870568 +! 1 1.020000 -1.862481 -1.862456 +! 1 1.000000 -1.854469 -1.854448 +! 1 0.980000 -1.846553 -1.846534 +! 1 0.960000 -1.838725 -1.838709 +! 1 0.940000 -1.830978 -1.830965 +! 1 0.920000 -1.823306 -1.823295 +! 1 0.900000 -1.815701 -1.815692 +! 1 0.880000 -1.808158 -1.808150 +! 1 0.860000 -1.800668 -1.800661 +! 1 0.840000 -1.793226 -1.793221 +! 1 0.820000 -1.785826 -1.785822 +! 1 0.800000 -1.778461 -1.778458 +! 1 0.780000 -1.771125 -1.771123 +! 1 0.760000 -1.763812 -1.763810 +! 1 0.740000 -1.756515 -1.756514 +! 1 0.720000 -1.749229 -1.749228 +! 1 0.700000 -1.741946 -1.741945 +! 1 0.680000 -1.734662 -1.734661 +! 1 0.660000 -1.727369 -1.727368 +! 1 0.640000 -1.720061 -1.720061 +! 1 0.620000 -1.712732 -1.712732 +! 1 0.600000 -1.705375 -1.705375 +! 1 0.580000 -1.697984 -1.697984 +! 1 0.560000 -1.690551 -1.690551 +! 1 0.540000 -1.683071 -1.683071 +! 1 0.520000 -1.675535 -1.675535 +! 1 0.500000 -1.667937 -1.667937 +! 1 0.480000 -1.660269 -1.660268 +! 1 0.460000 -1.652523 -1.652522 +! 1 0.440000 -1.644692 -1.644691 +! 1 0.420000 -1.636766 -1.636765 +! 1 0.400000 -1.628738 -1.628736 +! 1 0.380000 -1.620598 -1.620596 +! 1 0.360000 -1.612337 -1.612335 +! 1 0.340000 -1.603945 -1.603943 +! 1 0.320000 -1.595412 -1.595410 +! 1 0.300000 -1.586727 -1.586725 +! 1 0.280000 -1.577879 -1.577877 +! 1 0.260000 -1.568856 -1.568854 +! 1 0.240000 -1.559646 -1.559643 +! 1 0.220000 -1.550235 -1.550232 +! 1 0.200000 -1.540609 -1.540606 +! 1 0.180000 -1.530755 -1.530752 +! 1 0.160000 -1.520655 -1.520652 +! 1 0.140000 -1.510293 -1.510290 +! 1 0.120000 -1.499653 -1.499650 +! 1 0.100000 -1.488715 -1.488712 +! 1 0.080000 -1.477459 -1.477456 +! 1 0.060000 -1.465864 -1.465861 +! 1 0.040000 -1.453907 -1.453904 +! 1 0.020000 -1.441565 -1.441562 +! 1 0.000000 -1.428811 -1.428809 +! 1 -0.020000 -1.415619 -1.415616 +! 1 -0.040000 -1.401958 -1.401956 +! 1 -0.060000 -1.387797 -1.387795 +! 1 -0.080000 -1.373103 -1.373101 +! 1 -0.100000 -1.357840 -1.357838 +! 1 -0.120000 -1.341968 -1.341967 +! 1 -0.140000 -1.325448 -1.325447 +! 1 -0.160000 -1.308235 -1.308234 +! 1 -0.180000 -1.290283 -1.290282 +! 1 -0.200000 -1.271541 -1.271540 +! 1 -0.220000 -1.251956 -1.251956 +! 1 -0.240000 -1.231473 -1.231473 +! 1 -0.260000 -1.210031 -1.210031 +! 1 -0.280000 -1.187568 -1.187568 +! 1 -0.300000 -1.164018 -1.164018 +! 1 -0.320000 -1.139312 -1.139312 +! 1 -0.340000 -1.113379 -1.113379 +! 1 -0.360000 -1.086146 -1.086146 +! 1 -0.380000 -1.057539 -1.057539 +! 1 -0.400000 -1.027484 -1.027483 +! 1 -0.420000 -0.995908 -0.995907 +! 1 -0.440000 -0.962742 -0.962740 +! 1 -0.460000 -0.927922 -0.927918 +! 1 -0.480000 -0.891391 -0.891386 +! 1 -0.500000 -0.853105 -0.853098 +! 1 -0.520000 -0.813034 -0.813025 +! 1 -0.540000 -0.771167 -0.771154 +! 1 -0.560000 -0.727514 -0.727498 +! 1 -0.580000 -0.682114 -0.682094 +! 1 -0.600000 -0.635035 -0.635012 +! 1 -0.620000 -0.586381 -0.586352 +! 1 -0.640000 -0.536288 -0.536254 +! 1 -0.660000 -0.484932 -0.484893 +! 1 -0.680000 -0.432521 -0.432475 +! 1 -0.700000 -0.379295 -0.379244 +! 1 -0.720000 -0.325521 -0.325463 +! 1 -0.740000 -0.271483 -0.271419 +! 1 -0.760000 -0.217474 -0.217402 +! 1 -0.780000 -0.163786 -0.163708 +! 1 -0.800000 -0.110703 -0.110619 +! 1 -0.820000 -0.058488 -0.058397 +! 1 -0.840000 -0.007378 -0.007282 +! 1 -0.860000 0.042420 0.042521 +! 1 -0.880000 0.090735 0.090842 +! 1 -0.900000 0.137434 0.137545 +! 1 -0.920000 0.182417 0.182532 +! 1 -0.940000 0.225618 0.225736 +! 1 -0.960000 0.267002 0.267123 +! 1 -0.980000 0.306560 0.306684 +! 1 -1.000000 0.344305 0.344431 +! 1 -1.020000 0.380268 0.380396 +! 1 -1.040000 0.414496 0.414625 +! 1 -1.060000 0.447046 0.447175 +! 1 -1.080000 0.477980 0.478111 +! 1 -1.100000 0.507371 0.507502 +! 1 -1.120000 0.535288 0.535420 +! 1 -1.140000 0.561808 0.561939 +! 1 -1.160000 0.587003 0.587135 +! 1 -1.180000 0.610946 0.611077 +! 1 -1.200000 0.633708 0.633839 +! 1 -1.220000 0.655357 0.655487 +! 1 -1.240000 0.675957 0.676087 +! 1 -1.260000 0.695572 0.695701 +! 1 -1.280000 0.714259 0.714388 +! 1 -1.300000 0.732075 0.732203 +! 1 -1.320000 0.749072 0.749200 +! 1 -1.340000 0.765299 0.765425 +! 1 -1.360000 0.780801 0.780927 +! 1 -1.380000 0.795623 0.795748 +! 1 -1.400000 0.809804 0.809928 +! 1 -1.420000 0.823382 0.823506 +! 1 -1.440000 0.836392 0.836515 +! 1 -1.460000 0.848867 0.848989 +! 1 -1.480000 0.860837 0.860959 +! 1 -1.500000 0.872332 0.872452 +! 1 -1.520000 0.883377 0.883497 +! 1 -1.540000 0.893998 0.894117 +! 1 -1.560000 0.904218 0.904336 +! 1 -1.580000 0.914058 0.914175 +! 1 -1.600000 0.923539 0.923656 +! 1 -1.620000 0.932680 0.932796 +! 1 -1.640000 0.941498 0.941613 +! 1 -1.660000 0.950010 0.950125 +! 1 -1.680000 0.958232 0.958346 +! 1 -1.700000 0.966178 0.966291 +! 1 -1.720000 0.973862 0.973975 +! 1 -1.740000 0.981297 0.981408 +! 1 -1.760000 0.988494 0.988605 +! 1 -1.780000 0.995464 0.995575 +! 1 -1.800000 1.002220 1.002329 +! 1 -1.820000 1.008769 1.008878 +! 1 -1.840000 1.015123 1.015231 +! 1 -1.860000 1.021289 1.021397 +! 1 -1.880000 1.027276 1.027383 +! 1 -1.900000 1.033092 1.033199 +! 1 -1.920000 1.038744 1.038850 +! 1 -1.940000 1.044240 1.044345 +! 1 -1.960000 1.049585 1.049690 +! 1 -1.980000 1.054787 1.054891 + +log derivativve data for plotting, l= 2 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.40 +l, energy, all-electron, pseudopotential + +! -2 2.000000 -0.713245 -0.537181 +! -2 1.980000 -0.697635 -0.519943 +! -2 1.960000 -0.681736 -0.502470 +! -2 1.940000 -0.665548 -0.484770 +! -2 1.920000 -0.649072 -0.466848 +! -2 1.900000 -0.632307 -0.448712 +! -2 1.880000 -0.615257 -0.430370 +! -2 1.860000 -0.597923 -0.411829 +! -2 1.840000 -0.580307 -0.393100 +! -2 1.820000 -0.562415 -0.374192 +! -2 1.800000 -0.544249 -0.355117 +! -2 1.780000 -0.525817 -0.335885 +! -2 1.760000 -0.507123 -0.316508 +! -2 1.740000 -0.488176 -0.297001 +! -2 1.720000 -0.468983 -0.277374 +! -2 1.700000 -0.449553 -0.257643 +! -2 1.680000 -0.429896 -0.237822 +! -2 1.660000 -0.410024 -0.217925 +! -2 1.640000 -0.389947 -0.197967 +! -2 1.620000 -0.369679 -0.177964 +! -2 1.600000 -0.349234 -0.157931 +! -2 1.580000 -0.328625 -0.137883 +! -2 1.560000 -0.307867 -0.117837 +! -2 1.540000 -0.286977 -0.097808 +! -2 1.520000 -0.265971 -0.077812 +! -2 1.500000 -0.244867 -0.057864 +! -2 1.480000 -0.223682 -0.037980 +! -2 1.460000 -0.202433 -0.018174 +! -2 1.440000 -0.181140 0.001538 +! -2 1.420000 -0.159821 0.021144 +! -2 1.400000 -0.138495 0.040628 +! -2 1.380000 -0.117180 0.059978 +! -2 1.360000 -0.095896 0.079181 +! -2 1.340000 -0.074662 0.098225 +! -2 1.320000 -0.053494 0.117100 +! -2 1.300000 -0.032413 0.135793 +! -2 1.280000 -0.011434 0.154296 +! -2 1.260000 0.009425 0.172598 +! -2 1.240000 0.030147 0.190692 +! -2 1.220000 0.050716 0.208570 +! -2 1.200000 0.071119 0.226224 +! -2 1.180000 0.091339 0.243648 +! -2 1.160000 0.111364 0.260837 +! -2 1.140000 0.131182 0.277786 +! -2 1.120000 0.150781 0.294490 +! -2 1.100000 0.170149 0.310946 +! -2 1.080000 0.189278 0.327151 +! -2 1.060000 0.208158 0.343102 +! -2 1.040000 0.226781 0.358798 +! -2 1.020000 0.245140 0.374237 +! -2 1.000000 0.263230 0.389419 +! -2 0.980000 0.281044 0.404344 +! -2 0.960000 0.298579 0.419011 +! -2 0.940000 0.315831 0.433422 +! -2 0.920000 0.332796 0.447577 +! -2 0.900000 0.349473 0.461479 +! -2 0.880000 0.365861 0.475128 +! -2 0.860000 0.381958 0.488526 +! -2 0.840000 0.397765 0.501677 +! -2 0.820000 0.413281 0.514583 +! -2 0.800000 0.428509 0.527246 +! -2 0.780000 0.443448 0.539669 +! -2 0.760000 0.458102 0.551856 +! -2 0.740000 0.472472 0.563810 +! -2 0.720000 0.486562 0.575534 +! -2 0.700000 0.500373 0.587033 +! -2 0.680000 0.513910 0.598309 +! -2 0.660000 0.527176 0.609366 +! -2 0.640000 0.540174 0.620209 +! -2 0.620000 0.552909 0.630841 +! -2 0.600000 0.565385 0.641266 +! -2 0.580000 0.577606 0.651488 +! -2 0.560000 0.589577 0.661511 +! -2 0.540000 0.601302 0.671338 +! -2 0.520000 0.612785 0.680975 +! -2 0.500000 0.624031 0.690424 +! -2 0.480000 0.635046 0.699689 +! -2 0.460000 0.645833 0.708775 +! -2 0.440000 0.656397 0.717685 +! -2 0.420000 0.666744 0.726424 +! -2 0.400000 0.676877 0.734993 +! -2 0.380000 0.686802 0.743399 +! -2 0.360000 0.696522 0.751643 +! -2 0.340000 0.706044 0.759731 +! -2 0.320000 0.715371 0.767664 +! -2 0.300000 0.724507 0.775447 +! -2 0.280000 0.733458 0.783083 +! -2 0.260000 0.742227 0.790576 +! -2 0.240000 0.750819 0.797928 +! -2 0.220000 0.759238 0.805144 +! -2 0.200000 0.767488 0.812225 +! -2 0.180000 0.775573 0.819176 +! -2 0.160000 0.783498 0.825998 +! -2 0.140000 0.791265 0.832696 +! -2 0.120000 0.798880 0.839272 +! -2 0.100000 0.806345 0.845729 +! -2 0.080000 0.813665 0.852069 +! -2 0.060000 0.820843 0.858296 +! -2 0.040000 0.827882 0.864411 +! -2 0.020000 0.834785 0.870418 +! -2 0.000000 0.841557 0.876320 +! -2 -0.020000 0.848200 0.882117 +! -2 -0.040000 0.854718 0.887813 +! -2 -0.060000 0.861113 0.893411 +! -2 -0.080000 0.867389 0.898912 +! -2 -0.100000 0.873548 0.904318 +! -2 -0.120000 0.879594 0.909633 +! -2 -0.140000 0.885528 0.914857 +! -2 -0.160000 0.891355 0.919993 +! -2 -0.180000 0.897076 0.925043 +! -2 -0.200000 0.902694 0.930009 +! -2 -0.220000 0.908211 0.934893 +! -2 -0.240000 0.913630 0.939696 +! -2 -0.260000 0.918954 0.944421 +! -2 -0.280000 0.924184 0.949069 +! -2 -0.300000 0.929323 0.953642 +! -2 -0.320000 0.934373 0.958142 +! -2 -0.340000 0.939335 0.962569 +! -2 -0.360000 0.944213 0.966926 +! -2 -0.380000 0.949008 0.971215 +! -2 -0.400000 0.953722 0.975437 +! -2 -0.420000 0.958357 0.979592 +! -2 -0.440000 0.962915 0.983684 +! -2 -0.460000 0.967397 0.987712 +! -2 -0.480000 0.971805 0.991679 +! -2 -0.500000 0.976142 0.995585 +! -2 -0.520000 0.980408 0.999433 +! -2 -0.540000 0.984605 1.003223 +! -2 -0.560000 0.988735 1.006956 +! -2 -0.580000 0.992799 1.010634 +! -2 -0.600000 0.996799 1.014258 +! -2 -0.620000 1.000736 1.017828 +! -2 -0.640000 1.004612 1.021347 +! -2 -0.660000 1.008428 1.024815 +! -2 -0.680000 1.012184 1.028233 +! -2 -0.700000 1.015884 1.031602 +! -2 -0.720000 1.019527 1.034924 +! -2 -0.740000 1.023115 1.038198 +! -2 -0.760000 1.026650 1.041427 +! -2 -0.780000 1.030132 1.044611 +! -2 -0.800000 1.033562 1.047750 +! -2 -0.820000 1.036942 1.050846 +! -2 -0.840000 1.040272 1.053900 +! -2 -0.860000 1.043554 1.056913 +! -2 -0.880000 1.046789 1.059885 +! -2 -0.900000 1.049977 1.062816 +! -2 -0.920000 1.053120 1.065709 +! -2 -0.940000 1.056218 1.068563 +! -2 -0.960000 1.059273 1.071380 +! -2 -0.980000 1.062286 1.074159 +! -2 -1.000000 1.065256 1.076903 +! -2 -1.020000 1.068186 1.079611 +! -2 -1.040000 1.071075 1.082284 +! -2 -1.060000 1.073925 1.084922 +! -2 -1.080000 1.076737 1.087527 +! -2 -1.100000 1.079511 1.090099 +! -2 -1.120000 1.082247 1.092639 +! -2 -1.140000 1.084948 1.095147 +! -2 -1.160000 1.087612 1.097624 +! -2 -1.180000 1.090242 1.100070 +! -2 -1.200000 1.092838 1.102486 +! -2 -1.220000 1.095400 1.104873 +! -2 -1.240000 1.097929 1.107231 +! -2 -1.260000 1.100425 1.109560 +! -2 -1.280000 1.102890 1.111861 +! -2 -1.300000 1.105324 1.114134 +! -2 -1.320000 1.107727 1.116381 +! -2 -1.340000 1.110100 1.118601 +! -2 -1.360000 1.112444 1.120795 +! -2 -1.380000 1.114759 1.122964 +! -2 -1.400000 1.117045 1.125107 +! -2 -1.420000 1.119304 1.127226 +! -2 -1.440000 1.121535 1.129320 +! -2 -1.460000 1.123740 1.131390 +! -2 -1.480000 1.125918 1.133437 +! -2 -1.500000 1.128070 1.135461 +! -2 -1.520000 1.130197 1.137462 +! -2 -1.540000 1.132298 1.139440 +! -2 -1.560000 1.134375 1.141397 +! -2 -1.580000 1.136428 1.143332 +! -2 -1.600000 1.138457 1.145246 +! -2 -1.620000 1.140463 1.147139 +! -2 -1.640000 1.142446 1.149011 +! -2 -1.660000 1.144407 1.150863 +! -2 -1.680000 1.146345 1.152695 +! -2 -1.700000 1.148261 1.154508 +! -2 -1.720000 1.150156 1.156301 +! -2 -1.740000 1.152030 1.158075 +! -2 -1.760000 1.153884 1.159831 +! -2 -1.780000 1.155717 1.161568 +! -2 -1.800000 1.157530 1.163287 +! -2 -1.820000 1.159323 1.164989 +! -2 -1.840000 1.161097 1.166673 +! -2 -1.860000 1.162852 1.168339 +! -2 -1.880000 1.164588 1.169989 +! -2 -1.900000 1.166306 1.171622 +! -2 -1.920000 1.168005 1.173238 +! -2 -1.940000 1.169687 1.174838 +! -2 -1.960000 1.171351 1.176422 +! -2 -1.980000 1.172998 1.177991 + +log derivativve data for plotting, l= 2 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.40 +l, energy, all-electron, pseudopotential + +! 2 2.000000 -0.713519 -0.537181 +! 2 1.980000 -0.697912 -0.519943 +! 2 1.960000 -0.682016 -0.502470 +! 2 1.940000 -0.665832 -0.484770 +! 2 1.920000 -0.649359 -0.466848 +! 2 1.900000 -0.632598 -0.448712 +! 2 1.880000 -0.615551 -0.430370 +! 2 1.860000 -0.598220 -0.411829 +! 2 1.840000 -0.580608 -0.393100 +! 2 1.820000 -0.562719 -0.374192 +! 2 1.800000 -0.544556 -0.355117 +! 2 1.780000 -0.526127 -0.335885 +! 2 1.760000 -0.507436 -0.316508 +! 2 1.740000 -0.488491 -0.297001 +! 2 1.720000 -0.469300 -0.277374 +! 2 1.700000 -0.449872 -0.257643 +! 2 1.680000 -0.430218 -0.237822 +! 2 1.660000 -0.410347 -0.217925 +! 2 1.640000 -0.390272 -0.197967 +! 2 1.620000 -0.370006 -0.177964 +! 2 1.600000 -0.349561 -0.157931 +! 2 1.580000 -0.328953 -0.137883 +! 2 1.560000 -0.308196 -0.117837 +! 2 1.540000 -0.287306 -0.097808 +! 2 1.520000 -0.266300 -0.077812 +! 2 1.500000 -0.245196 -0.057864 +! 2 1.480000 -0.224010 -0.037980 +! 2 1.460000 -0.202760 -0.018174 +! 2 1.440000 -0.181466 0.001538 +! 2 1.420000 -0.160146 0.021144 +! 2 1.400000 -0.138818 0.040628 +! 2 1.380000 -0.117502 0.059978 +! 2 1.360000 -0.096216 0.079181 +! 2 1.340000 -0.074979 0.098225 +! 2 1.320000 -0.053809 0.117100 +! 2 1.300000 -0.032724 0.135793 +! 2 1.280000 -0.011742 0.154296 +! 2 1.260000 0.009120 0.172598 +! 2 1.240000 0.029845 0.190692 +! 2 1.220000 0.050419 0.208570 +! 2 1.200000 0.070825 0.226224 +! 2 1.180000 0.091049 0.243648 +! 2 1.160000 0.111079 0.260837 +! 2 1.140000 0.130901 0.277786 +! 2 1.120000 0.150504 0.294490 +! 2 1.100000 0.169877 0.310946 +! 2 1.080000 0.189011 0.327151 +! 2 1.060000 0.207895 0.343102 +! 2 1.040000 0.226523 0.358798 +! 2 1.020000 0.244888 0.374237 +! 2 1.000000 0.262982 0.389419 +! 2 0.980000 0.280801 0.404344 +! 2 0.960000 0.298341 0.419011 +! 2 0.940000 0.315598 0.433422 +! 2 0.920000 0.332568 0.447577 +! 2 0.900000 0.349250 0.461479 +! 2 0.880000 0.365642 0.475128 +! 2 0.860000 0.381745 0.488526 +! 2 0.840000 0.397556 0.501677 +! 2 0.820000 0.413077 0.514583 +! 2 0.800000 0.428309 0.527246 +! 2 0.780000 0.443254 0.539669 +! 2 0.760000 0.457912 0.551856 +! 2 0.740000 0.472287 0.563810 +! 2 0.720000 0.486380 0.575534 +! 2 0.700000 0.500196 0.587033 +! 2 0.680000 0.513737 0.598309 +! 2 0.660000 0.527007 0.609366 +! 2 0.640000 0.540010 0.620209 +! 2 0.620000 0.552749 0.630841 +! 2 0.600000 0.565229 0.641266 +! 2 0.580000 0.577454 0.651488 +! 2 0.560000 0.589428 0.661511 +! 2 0.540000 0.601157 0.671338 +! 2 0.520000 0.612643 0.680975 +! 2 0.500000 0.623893 0.690424 +! 2 0.480000 0.634911 0.699689 +! 2 0.460000 0.645702 0.708775 +! 2 0.440000 0.656269 0.717685 +! 2 0.420000 0.666619 0.726424 +! 2 0.400000 0.676755 0.734993 +! 2 0.380000 0.686683 0.743399 +! 2 0.360000 0.696407 0.751643 +! 2 0.340000 0.705931 0.759731 +! 2 0.320000 0.715260 0.767664 +! 2 0.300000 0.724399 0.775447 +! 2 0.280000 0.733353 0.783083 +! 2 0.260000 0.742124 0.790576 +! 2 0.240000 0.750719 0.797928 +! 2 0.220000 0.759140 0.805144 +! 2 0.200000 0.767392 0.812225 +! 2 0.180000 0.775480 0.819176 +! 2 0.160000 0.783407 0.825998 +! 2 0.140000 0.791177 0.832696 +! 2 0.120000 0.798793 0.839272 +! 2 0.100000 0.806261 0.845729 +! 2 0.080000 0.813582 0.852069 +! 2 0.060000 0.820762 0.858296 +! 2 0.040000 0.827803 0.864411 +! 2 0.020000 0.834708 0.870418 +! 2 0.000000 0.841482 0.876320 +! 2 -0.020000 0.848127 0.882117 +! 2 -0.040000 0.854646 0.887813 +! 2 -0.060000 0.861043 0.893411 +! 2 -0.080000 0.867320 0.898912 +! 2 -0.100000 0.873481 0.904318 +! 2 -0.120000 0.879528 0.909633 +! 2 -0.140000 0.885464 0.914857 +! 2 -0.160000 0.891292 0.919993 +! 2 -0.180000 0.897014 0.925043 +! 2 -0.200000 0.902633 0.930009 +! 2 -0.220000 0.908152 0.934893 +! 2 -0.240000 0.913573 0.939696 +! 2 -0.260000 0.918897 0.944421 +! 2 -0.280000 0.924129 0.949069 +! 2 -0.300000 0.929269 0.953642 +! 2 -0.320000 0.934319 0.958142 +! 2 -0.340000 0.939283 0.962569 +! 2 -0.360000 0.944162 0.966926 +! 2 -0.380000 0.948958 0.971215 +! 2 -0.400000 0.953673 0.975437 +! 2 -0.420000 0.958309 0.979592 +! 2 -0.440000 0.962868 0.983684 +! 2 -0.460000 0.967351 0.987712 +! 2 -0.480000 0.971760 0.991679 +! 2 -0.500000 0.976097 0.995585 +! 2 -0.520000 0.980364 0.999433 +! 2 -0.540000 0.984562 1.003223 +! 2 -0.560000 0.988693 1.006956 +! 2 -0.580000 0.992758 1.010634 +! 2 -0.600000 0.996759 1.014258 +! 2 -0.620000 1.000697 1.017828 +! 2 -0.640000 1.004573 1.021347 +! 2 -0.660000 1.008390 1.024815 +! 2 -0.680000 1.012147 1.028233 +! 2 -0.700000 1.015847 1.031602 +! 2 -0.720000 1.019491 1.034924 +! 2 -0.740000 1.023080 1.038198 +! 2 -0.760000 1.026615 1.041427 +! 2 -0.780000 1.030098 1.044611 +! 2 -0.800000 1.033528 1.047750 +! 2 -0.820000 1.036909 1.050846 +! 2 -0.840000 1.040240 1.053900 +! 2 -0.860000 1.043522 1.056913 +! 2 -0.880000 1.046758 1.059885 +! 2 -0.900000 1.049946 1.062816 +! 2 -0.920000 1.053090 1.065709 +! 2 -0.940000 1.056189 1.068563 +! 2 -0.960000 1.059244 1.071380 +! 2 -0.980000 1.062257 1.074159 +! 2 -1.000000 1.065228 1.076903 +! 2 -1.020000 1.068158 1.079611 +! 2 -1.040000 1.071048 1.082284 +! 2 -1.060000 1.073899 1.084922 +! 2 -1.080000 1.076711 1.087527 +! 2 -1.100000 1.079485 1.090099 +! 2 -1.120000 1.082222 1.092639 +! 2 -1.140000 1.084923 1.095147 +! 2 -1.160000 1.087588 1.097624 +! 2 -1.180000 1.090218 1.100070 +! 2 -1.200000 1.092814 1.102486 +! 2 -1.220000 1.095376 1.104873 +! 2 -1.240000 1.097906 1.107231 +! 2 -1.260000 1.100403 1.109560 +! 2 -1.280000 1.102868 1.111861 +! 2 -1.300000 1.105302 1.114134 +! 2 -1.320000 1.107706 1.116381 +! 2 -1.340000 1.110079 1.118601 +! 2 -1.360000 1.112423 1.120795 +! 2 -1.380000 1.114738 1.122964 +! 2 -1.400000 1.117025 1.125107 +! 2 -1.420000 1.119284 1.127226 +! 2 -1.440000 1.121516 1.129320 +! 2 -1.460000 1.123720 1.131390 +! 2 -1.480000 1.125899 1.133437 +! 2 -1.500000 1.128051 1.135461 +! 2 -1.520000 1.130178 1.137462 +! 2 -1.540000 1.132280 1.139440 +! 2 -1.560000 1.134357 1.141397 +! 2 -1.580000 1.136410 1.143332 +! 2 -1.600000 1.138440 1.145246 +! 2 -1.620000 1.140446 1.147139 +! 2 -1.640000 1.142429 1.149011 +! 2 -1.660000 1.144390 1.150863 +! 2 -1.680000 1.146328 1.152695 +! 2 -1.700000 1.148245 1.154508 +! 2 -1.720000 1.150140 1.156301 +! 2 -1.740000 1.152014 1.158075 +! 2 -1.760000 1.153868 1.159831 +! 2 -1.780000 1.155701 1.161568 +! 2 -1.800000 1.157514 1.163287 +! 2 -1.820000 1.159308 1.164989 +! 2 -1.840000 1.161082 1.166673 +! 2 -1.860000 1.162837 1.168339 +! 2 -1.880000 1.164574 1.169989 +! 2 -1.900000 1.166291 1.171622 +! 2 -1.920000 1.167991 1.173238 +! 2 -1.940000 1.169673 1.174838 +! 2 -1.960000 1.171337 1.176422 +! 2 -1.980000 1.172984 1.177991 + +log derivativve data for plotting, l= 3 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.40 +l, energy, all-electron, pseudopotential + +! -3 2.000000 0.919574 0.932391 +! -3 1.980000 0.924237 0.936807 +! -3 1.960000 0.928830 0.941158 +! -3 1.940000 0.933355 0.945447 +! -3 1.920000 0.937812 0.949674 +! -3 1.900000 0.942204 0.953840 +! -3 1.880000 0.946531 0.957947 +! -3 1.860000 0.950794 0.961996 +! -3 1.840000 0.954996 0.965987 +! -3 1.820000 0.959137 0.969923 +! -3 1.800000 0.963218 0.973804 +! -3 1.780000 0.967241 0.977630 +! -3 1.760000 0.971206 0.981404 +! -3 1.740000 0.975116 0.985127 +! -3 1.720000 0.978970 0.988798 +! -3 1.700000 0.982770 0.992419 +! -3 1.680000 0.986518 0.995992 +! -3 1.660000 0.990213 0.999516 +! -3 1.640000 0.993857 1.002993 +! -3 1.620000 0.997452 1.006424 +! -3 1.600000 1.000997 1.009810 +! -3 1.580000 1.004495 1.013151 +! -3 1.560000 1.007945 1.016448 +! -3 1.540000 1.011348 1.019702 +! -3 1.520000 1.014707 1.022914 +! -3 1.500000 1.018021 1.026085 +! -3 1.480000 1.021291 1.029215 +! -3 1.460000 1.024518 1.032305 +! -3 1.440000 1.027703 1.035356 +! -3 1.420000 1.030846 1.038369 +! -3 1.400000 1.033949 1.041343 +! -3 1.380000 1.037012 1.044281 +! -3 1.360000 1.040036 1.047181 +! -3 1.340000 1.043022 1.050047 +! -3 1.320000 1.045970 1.052876 +! -3 1.300000 1.048880 1.055672 +! -3 1.280000 1.051755 1.058433 +! -3 1.260000 1.054593 1.061161 +! -3 1.240000 1.057397 1.063856 +! -3 1.220000 1.060166 1.066519 +! -3 1.200000 1.062901 1.069150 +! -3 1.180000 1.065602 1.071749 +! -3 1.160000 1.068271 1.074319 +! -3 1.140000 1.070908 1.076858 +! -3 1.120000 1.073513 1.079367 +! -3 1.100000 1.076088 1.081848 +! -3 1.080000 1.078631 1.084299 +! -3 1.060000 1.081145 1.086723 +! -3 1.040000 1.083629 1.089119 +! -3 1.020000 1.086084 1.091487 +! -3 1.000000 1.088511 1.093829 +! -3 0.980000 1.090910 1.096144 +! -3 0.960000 1.093281 1.098434 +! -3 0.940000 1.095625 1.100698 +! -3 0.920000 1.097942 1.102937 +! -3 0.900000 1.100233 1.105151 +! -3 0.880000 1.102498 1.107341 +! -3 0.860000 1.104738 1.109507 +! -3 0.840000 1.106953 1.111649 +! -3 0.820000 1.109144 1.113769 +! -3 0.800000 1.111310 1.115865 +! -3 0.780000 1.113453 1.117939 +! -3 0.760000 1.115572 1.119991 +! -3 0.740000 1.117668 1.122021 +! -3 0.720000 1.119742 1.124030 +! -3 0.700000 1.121793 1.126018 +! -3 0.680000 1.123822 1.127985 +! -3 0.660000 1.125830 1.129932 +! -3 0.640000 1.127817 1.131858 +! -3 0.620000 1.129782 1.133765 +! -3 0.600000 1.131727 1.135652 +! -3 0.580000 1.133652 1.137520 +! -3 0.560000 1.135556 1.139369 +! -3 0.540000 1.137441 1.141199 +! -3 0.520000 1.139307 1.143011 +! -3 0.500000 1.141154 1.144804 +! -3 0.480000 1.142981 1.146580 +! -3 0.460000 1.144791 1.148339 +! -3 0.440000 1.146582 1.150080 +! -3 0.420000 1.148355 1.151804 +! -3 0.400000 1.150110 1.153511 +! -3 0.380000 1.151848 1.155201 +! -3 0.360000 1.153569 1.156876 +! -3 0.340000 1.155272 1.158534 +! -3 0.320000 1.156960 1.160176 +! -3 0.300000 1.158630 1.161802 +! -3 0.280000 1.160285 1.163413 +! -3 0.260000 1.161923 1.165009 +! -3 0.240000 1.163546 1.166590 +! -3 0.220000 1.165153 1.168156 +! -3 0.200000 1.166745 1.169708 +! -3 0.180000 1.168322 1.171245 +! -3 0.160000 1.169884 1.172767 +! -3 0.140000 1.171432 1.174276 +! -3 0.120000 1.172965 1.175771 +! -3 0.100000 1.174483 1.177253 +! -3 0.080000 1.175988 1.178721 +! -3 0.060000 1.177478 1.180176 +! -3 0.040000 1.178956 1.181617 +! -3 0.020000 1.180419 1.183046 +! -3 0.000000 1.181869 1.184462 +! -3 -0.020000 1.183307 1.185866 +! -3 -0.040000 1.184731 1.187257 +! -3 -0.060000 1.186142 1.188635 +! -3 -0.080000 1.187541 1.190002 +! -3 -0.100000 1.188927 1.191357 +! -3 -0.120000 1.190302 1.192700 +! -3 -0.140000 1.191664 1.194032 +! -3 -0.160000 1.193014 1.195352 +! -3 -0.180000 1.194352 1.196661 +! -3 -0.200000 1.195679 1.197958 +! -3 -0.220000 1.196994 1.199245 +! -3 -0.240000 1.198298 1.200520 +! -3 -0.260000 1.199590 1.201785 +! -3 -0.280000 1.200872 1.203040 +! -3 -0.300000 1.202143 1.204284 +! -3 -0.320000 1.203403 1.205517 +! -3 -0.340000 1.204652 1.206741 +! -3 -0.360000 1.205891 1.207954 +! -3 -0.380000 1.207119 1.209157 +! -3 -0.400000 1.208338 1.210351 +! -3 -0.420000 1.209546 1.211534 +! -3 -0.440000 1.210744 1.212708 +! -3 -0.460000 1.211932 1.213873 +! -3 -0.480000 1.213111 1.215028 +! -3 -0.500000 1.214280 1.216174 +! -3 -0.520000 1.215440 1.217311 +! -3 -0.540000 1.216590 1.218439 +! -3 -0.560000 1.217731 1.219558 +! -3 -0.580000 1.218863 1.220668 +! -3 -0.600000 1.219985 1.221770 +! -3 -0.620000 1.221099 1.222862 +! -3 -0.640000 1.222204 1.223947 +! -3 -0.660000 1.223300 1.225023 +! -3 -0.680000 1.224388 1.226090 +! -3 -0.700000 1.225467 1.227150 +! -3 -0.720000 1.226538 1.228201 +! -3 -0.740000 1.227600 1.229244 +! -3 -0.760000 1.228655 1.230279 +! -3 -0.780000 1.229701 1.231307 +! -3 -0.800000 1.230739 1.232327 +! -3 -0.820000 1.231769 1.233339 +! -3 -0.840000 1.232791 1.234343 +! -3 -0.860000 1.233806 1.235340 +! -3 -0.880000 1.234813 1.236330 +! -3 -0.900000 1.235812 1.237312 +! -3 -0.920000 1.236804 1.238287 +! -3 -0.940000 1.237789 1.239255 +! -3 -0.960000 1.238766 1.240216 +! -3 -0.980000 1.239736 1.241170 +! -3 -1.000000 1.240699 1.242117 +! -3 -1.020000 1.241655 1.243057 +! -3 -1.040000 1.242603 1.243990 +! -3 -1.060000 1.243545 1.244917 +! -3 -1.080000 1.244480 1.245837 +! -3 -1.100000 1.245409 1.246750 +! -3 -1.120000 1.246330 1.247657 +! -3 -1.140000 1.247245 1.248558 +! -3 -1.160000 1.248154 1.249452 +! -3 -1.180000 1.249056 1.250340 +! -3 -1.200000 1.249951 1.251221 +! -3 -1.220000 1.250841 1.252097 +! -3 -1.240000 1.251724 1.252967 +! -3 -1.260000 1.252600 1.253830 +! -3 -1.280000 1.253471 1.254688 +! -3 -1.300000 1.254336 1.255539 +! -3 -1.320000 1.255194 1.256385 +! -3 -1.340000 1.256047 1.257225 +! -3 -1.360000 1.256894 1.258060 +! -3 -1.380000 1.257735 1.258888 +! -3 -1.400000 1.258570 1.259712 +! -3 -1.420000 1.259400 1.260529 +! -3 -1.440000 1.260224 1.261341 +! -3 -1.460000 1.261042 1.262148 +! -3 -1.480000 1.261855 1.262950 +! -3 -1.500000 1.262662 1.263746 +! -3 -1.520000 1.263464 1.264537 +! -3 -1.540000 1.264261 1.265322 +! -3 -1.560000 1.265052 1.266103 +! -3 -1.580000 1.265839 1.266878 +! -3 -1.600000 1.266620 1.267648 +! -3 -1.620000 1.267395 1.268414 +! -3 -1.640000 1.268166 1.269174 +! -3 -1.660000 1.268932 1.269930 +! -3 -1.680000 1.269693 1.270681 +! -3 -1.700000 1.270448 1.271426 +! -3 -1.720000 1.271199 1.272168 +! -3 -1.740000 1.271946 1.272904 +! -3 -1.760000 1.272687 1.273636 +! -3 -1.780000 1.273424 1.274363 +! -3 -1.800000 1.274155 1.275086 +! -3 -1.820000 1.274883 1.275804 +! -3 -1.840000 1.275605 1.276517 +! -3 -1.860000 1.276324 1.277226 +! -3 -1.880000 1.277037 1.277931 +! -3 -1.900000 1.277746 1.278632 +! -3 -1.920000 1.278451 1.279328 +! -3 -1.940000 1.279151 1.280019 +! -3 -1.960000 1.279847 1.280707 +! -3 -1.980000 1.280539 1.281390 + +log derivativve data for plotting, l= 3 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.40 +l, energy, all-electron, pseudopotential + +! 3 2.000000 0.919521 0.932391 +! 3 1.980000 0.924186 0.936807 +! 3 1.960000 0.928780 0.941158 +! 3 1.940000 0.933305 0.945447 +! 3 1.920000 0.937763 0.949674 +! 3 1.900000 0.942156 0.953840 +! 3 1.880000 0.946484 0.957947 +! 3 1.860000 0.950748 0.961996 +! 3 1.840000 0.954950 0.965987 +! 3 1.820000 0.959092 0.969923 +! 3 1.800000 0.963174 0.973804 +! 3 1.780000 0.967198 0.977630 +! 3 1.760000 0.971164 0.981404 +! 3 1.740000 0.975074 0.985127 +! 3 1.720000 0.978929 0.988798 +! 3 1.700000 0.982730 0.992419 +! 3 1.680000 0.986478 0.995992 +! 3 1.660000 0.990174 0.999516 +! 3 1.640000 0.993819 1.002993 +! 3 1.620000 0.997414 1.006424 +! 3 1.600000 1.000960 1.009810 +! 3 1.580000 1.004457 1.013151 +! 3 1.560000 1.007908 1.016448 +! 3 1.540000 1.011312 1.019702 +! 3 1.520000 1.014671 1.022914 +! 3 1.500000 1.017986 1.026085 +! 3 1.480000 1.021256 1.029215 +! 3 1.460000 1.024484 1.032305 +! 3 1.440000 1.027669 1.035356 +! 3 1.420000 1.030813 1.038369 +! 3 1.400000 1.033917 1.041343 +! 3 1.380000 1.036981 1.044281 +! 3 1.360000 1.040005 1.047181 +! 3 1.340000 1.042991 1.050047 +! 3 1.320000 1.045939 1.052876 +! 3 1.300000 1.048850 1.055672 +! 3 1.280000 1.051725 1.058433 +! 3 1.260000 1.054564 1.061161 +! 3 1.240000 1.057368 1.063856 +! 3 1.220000 1.060137 1.066519 +! 3 1.200000 1.062873 1.069150 +! 3 1.180000 1.065575 1.071749 +! 3 1.160000 1.068244 1.074319 +! 3 1.140000 1.070881 1.076858 +! 3 1.120000 1.073487 1.079367 +! 3 1.100000 1.076061 1.081848 +! 3 1.080000 1.078605 1.084299 +! 3 1.060000 1.081119 1.086723 +! 3 1.040000 1.083604 1.089119 +! 3 1.020000 1.086059 1.091487 +! 3 1.000000 1.088486 1.093829 +! 3 0.980000 1.090885 1.096144 +! 3 0.960000 1.093257 1.098434 +! 3 0.940000 1.095601 1.100698 +! 3 0.920000 1.097919 1.102937 +! 3 0.900000 1.100210 1.105151 +! 3 0.880000 1.102476 1.107341 +! 3 0.860000 1.104716 1.109507 +! 3 0.840000 1.106931 1.111649 +! 3 0.820000 1.109122 1.113769 +! 3 0.800000 1.111289 1.115865 +! 3 0.780000 1.113431 1.117939 +! 3 0.760000 1.115551 1.119991 +! 3 0.740000 1.117647 1.122021 +! 3 0.720000 1.119721 1.124030 +! 3 0.700000 1.121773 1.126018 +! 3 0.680000 1.123802 1.127985 +! 3 0.660000 1.125810 1.129932 +! 3 0.640000 1.127797 1.131858 +! 3 0.620000 1.129763 1.133765 +! 3 0.600000 1.131708 1.135652 +! 3 0.580000 1.133633 1.137520 +! 3 0.560000 1.135538 1.139369 +! 3 0.540000 1.137423 1.141199 +! 3 0.520000 1.139289 1.143011 +! 3 0.500000 1.141135 1.144804 +! 3 0.480000 1.142963 1.146580 +! 3 0.460000 1.144773 1.148339 +! 3 0.440000 1.146564 1.150080 +! 3 0.420000 1.148337 1.151804 +! 3 0.400000 1.150093 1.153511 +! 3 0.380000 1.151831 1.155201 +! 3 0.360000 1.153552 1.156876 +! 3 0.340000 1.155256 1.158534 +! 3 0.320000 1.156943 1.160176 +! 3 0.300000 1.158614 1.161802 +! 3 0.280000 1.160269 1.163413 +! 3 0.260000 1.161908 1.165009 +! 3 0.240000 1.163531 1.166590 +! 3 0.220000 1.165138 1.168156 +! 3 0.200000 1.166730 1.169708 +! 3 0.180000 1.168307 1.171245 +! 3 0.160000 1.169869 1.172767 +! 3 0.140000 1.171417 1.174276 +! 3 0.120000 1.172950 1.175771 +! 3 0.100000 1.174469 1.177253 +! 3 0.080000 1.175973 1.178721 +! 3 0.060000 1.177464 1.180176 +! 3 0.040000 1.178942 1.181617 +! 3 0.020000 1.180405 1.183046 +! 3 0.000000 1.181856 1.184462 +! 3 -0.020000 1.183293 1.185866 +! 3 -0.040000 1.184717 1.187257 +! 3 -0.060000 1.186129 1.188635 +! 3 -0.080000 1.187528 1.190002 +! 3 -0.100000 1.188914 1.191357 +! 3 -0.120000 1.190289 1.192700 +! 3 -0.140000 1.191651 1.194032 +! 3 -0.160000 1.193001 1.195352 +! 3 -0.180000 1.194339 1.196661 +! 3 -0.200000 1.195666 1.197958 +! 3 -0.220000 1.196982 1.199245 +! 3 -0.240000 1.198286 1.200520 +! 3 -0.260000 1.199578 1.201785 +! 3 -0.280000 1.200860 1.203040 +! 3 -0.300000 1.202131 1.204284 +! 3 -0.320000 1.203391 1.205517 +! 3 -0.340000 1.204640 1.206741 +! 3 -0.360000 1.205879 1.207954 +! 3 -0.380000 1.207108 1.209157 +! 3 -0.400000 1.208326 1.210351 +! 3 -0.420000 1.209535 1.211534 +! 3 -0.440000 1.210733 1.212708 +! 3 -0.460000 1.211922 1.213873 +! 3 -0.480000 1.213100 1.215028 +! 3 -0.500000 1.214269 1.216174 +! 3 -0.520000 1.215429 1.217311 +! 3 -0.540000 1.216579 1.218439 +! 3 -0.560000 1.217720 1.219558 +! 3 -0.580000 1.218852 1.220668 +! 3 -0.600000 1.219975 1.221770 +! 3 -0.620000 1.221089 1.222862 +! 3 -0.640000 1.222194 1.223947 +! 3 -0.660000 1.223290 1.225023 +! 3 -0.680000 1.224378 1.226090 +! 3 -0.700000 1.225457 1.227150 +! 3 -0.720000 1.226528 1.228201 +! 3 -0.740000 1.227591 1.229244 +! 3 -0.760000 1.228645 1.230279 +! 3 -0.780000 1.229691 1.231307 +! 3 -0.800000 1.230730 1.232327 +! 3 -0.820000 1.231760 1.233339 +! 3 -0.840000 1.232782 1.234343 +! 3 -0.860000 1.233797 1.235340 +! 3 -0.880000 1.234804 1.236330 +! 3 -0.900000 1.235803 1.237312 +! 3 -0.920000 1.236795 1.238287 +! 3 -0.940000 1.237780 1.239255 +! 3 -0.960000 1.238757 1.240216 +! 3 -0.980000 1.239727 1.241170 +! 3 -1.000000 1.240690 1.242117 +! 3 -1.020000 1.241646 1.243057 +! 3 -1.040000 1.242595 1.243990 +! 3 -1.060000 1.243537 1.244917 +! 3 -1.080000 1.244472 1.245837 +! 3 -1.100000 1.245400 1.246750 +! 3 -1.120000 1.246322 1.247657 +! 3 -1.140000 1.247237 1.248558 +! 3 -1.160000 1.248146 1.249452 +! 3 -1.180000 1.249048 1.250340 +! 3 -1.200000 1.249943 1.251221 +! 3 -1.220000 1.250833 1.252097 +! 3 -1.240000 1.251716 1.252967 +! 3 -1.260000 1.252593 1.253830 +! 3 -1.280000 1.253463 1.254688 +! 3 -1.300000 1.254328 1.255539 +! 3 -1.320000 1.255187 1.256385 +! 3 -1.340000 1.256040 1.257225 +! 3 -1.360000 1.256886 1.258060 +! 3 -1.380000 1.257727 1.258888 +! 3 -1.400000 1.258563 1.259712 +! 3 -1.420000 1.259392 1.260529 +! 3 -1.440000 1.260216 1.261341 +! 3 -1.460000 1.261035 1.262148 +! 3 -1.480000 1.261848 1.262950 +! 3 -1.500000 1.262655 1.263746 +! 3 -1.520000 1.263457 1.264537 +! 3 -1.540000 1.264254 1.265322 +! 3 -1.560000 1.265046 1.266103 +! 3 -1.580000 1.265832 1.266878 +! 3 -1.600000 1.266613 1.267648 +! 3 -1.620000 1.267389 1.268414 +! 3 -1.640000 1.268159 1.269174 +! 3 -1.660000 1.268925 1.269930 +! 3 -1.680000 1.269686 1.270681 +! 3 -1.700000 1.270442 1.271426 +! 3 -1.720000 1.271193 1.272168 +! 3 -1.740000 1.271939 1.272904 +! 3 -1.760000 1.272681 1.273636 +! 3 -1.780000 1.273417 1.274363 +! 3 -1.800000 1.274149 1.275086 +! 3 -1.820000 1.274877 1.275804 +! 3 -1.840000 1.275599 1.276517 +! 3 -1.860000 1.276317 1.277226 +! 3 -1.880000 1.277031 1.277931 +! 3 -1.900000 1.277740 1.278632 +! 3 -1.920000 1.278445 1.279328 +! 3 -1.940000 1.279145 1.280019 +! 3 -1.960000 1.279842 1.280707 +! 3 -1.980000 1.280533 1.281390 +GNUSCRIPT +set term wxt font "arial,14" size 800,600 + +set termoption dash + +set termoption noenhanced + +set style line 1 lw 3 lt 1 lc rgb "#D00000" + +set style line 2 lw 3 lt 1 lc rgb "#00B000" + +set style line 3 lw 3 lt 1 lc rgb "#2020FF" + +set style line 4 lw 3 lt 1 lc rgb "#FF8000" + +set style line 5 lw 3 lt 1 lc rgb "#E000E0" + +set style line 6 lw 3 lt 1 lc rgb "#303030" + +set style line 7 lw 3 lt 2 lc rgb "#D00000" + +set style line 8 lw 3 lt 2 lc rgb "#00B000" + +set style line 9 lw 3 lt 2 lc rgb "#2020FF" + +set style line 10 lw 3 lt 2 lc rgb "#FF8000" + +set style line 11 lw 3 lt 2 lc rgb "#E000E0" + +set style line 12 lw 3 lt 2 lc rgb "#303030" + +set title "t1 Ion Pseudopotentials" + +set xlabel "Radius (a_B)" + +plot " +# +#ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) +#relativistic version 4.0.1 03/03/2109 +# +#While it is not required under the terms of the GNU GPL, it is +#suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) +#in any publication utilizing these pseudopotentials. +# +#Echo of input data for oncvpsp-4.0.1 +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + O 8.00 1 2 3 both +# +# n l f energy (Ha) + 1 0 2.00 + 2 0 2.00 + 2 1 4.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 1 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.60000 0.00000 4 7 8.00000 + 1 1.60000 0.00000 4 7 8.00000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.40000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 1.50000 + 1 2 1.00000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact + 0 0.00000 0.00000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -2.00 2.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 4.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 3 +# nvcnf +# n l f + 2 + 2 0 2.00 + 2 1 3.00 +# + 2 + 2 0 1.00 + 2 1 4.00 +# + 2 + 2 0 1.00 + 2 1 3.00 +# + + +END_PSP +Updating nrl = 926 for uurcut = 9.24404 + +Begin PSP_UPF + + + + This pseudopotential file has been produced using the code + ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) + fully-relativistic version 4.0.1 06/20/2107 by D. R. Hamann + The code is available through a link at URL www.mat-simresearch.com. + Documentation with the package provides a full discription of the + input data below. + + + While it is not required under the terms of the GNU GPL, it is + suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) + in any publication using these pseudopotentials. + + +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + O 8.00 1 2 3 both +# +# n l f energy (Ha) + 1 0 2.00 + 2 0 2.00 + 2 1 4.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 1 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.60000 0.00000 4 7 8.00000 + 1 1.60000 0.00000 4 7 8.00000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.40000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 1.50000 + 1 2 1.00000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact + 0 0.00000 0.00000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -2.00 2.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 4.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 3 +# nvcnf +# n l f + 2 + 2 0 2.00 + 2 1 3.00 +# + 2 + 2 0 1.00 + 2 1 4.00 +# + 2 + 2 0 1.00 + 2 1 3.00 +# + + + + + + + + + 0.0000 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 + 0.0800 0.0900 0.1000 0.1100 0.1200 0.1300 0.1400 0.1500 + 0.1600 0.1700 0.1800 0.1900 0.2000 0.2100 0.2200 0.2300 + 0.2400 0.2500 0.2600 0.2700 0.2800 0.2900 0.3000 0.3100 + 0.3200 0.3300 0.3400 0.3500 0.3600 0.3700 0.3800 0.3900 + 0.4000 0.4100 0.4200 0.4300 0.4400 0.4500 0.4600 0.4700 + 0.4800 0.4900 0.5000 0.5100 0.5200 0.5300 0.5400 0.5500 + 0.5600 0.5700 0.5800 0.5900 0.6000 0.6100 0.6200 0.6300 + 0.6400 0.6500 0.6600 0.6700 0.6800 0.6900 0.7000 0.7100 + 0.7200 0.7300 0.7400 0.7500 0.7600 0.7700 0.7800 0.7900 + 0.8000 0.8100 0.8200 0.8300 0.8400 0.8500 0.8600 0.8700 + 0.8800 0.8900 0.9000 0.9100 0.9200 0.9300 0.9400 0.9500 + 0.9600 0.9700 0.9800 0.9900 1.0000 1.0100 1.0200 1.0300 + 1.0400 1.0500 1.0600 1.0700 1.0800 1.0900 1.1000 1.1100 + 1.1200 1.1300 1.1400 1.1500 1.1600 1.1700 1.1800 1.1900 + 1.2000 1.2100 1.2200 1.2300 1.2400 1.2500 1.2600 1.2700 + 1.2800 1.2900 1.3000 1.3100 1.3200 1.3300 1.3400 1.3500 + 1.3600 1.3700 1.3800 1.3900 1.4000 1.4100 1.4200 1.4300 + 1.4400 1.4500 1.4600 1.4700 1.4800 1.4900 1.5000 1.5100 + 1.5200 1.5300 1.5400 1.5500 1.5600 1.5700 1.5800 1.5900 + 1.6000 1.6100 1.6200 1.6300 1.6400 1.6500 1.6600 1.6700 + 1.6800 1.6900 1.7000 1.7100 1.7200 1.7300 1.7400 1.7500 + 1.7600 1.7700 1.7800 1.7900 1.8000 1.8100 1.8200 1.8300 + 1.8400 1.8500 1.8600 1.8700 1.8800 1.8900 1.9000 1.9100 + 1.9200 1.9300 1.9400 1.9500 1.9600 1.9700 1.9800 1.9900 + 2.0000 2.0100 2.0200 2.0300 2.0400 2.0500 2.0600 2.0700 + 2.0800 2.0900 2.1000 2.1100 2.1200 2.1300 2.1400 2.1500 + 2.1600 2.1700 2.1800 2.1900 2.2000 2.2100 2.2200 2.2300 + 2.2400 2.2500 2.2600 2.2700 2.2800 2.2900 2.3000 2.3100 + 2.3200 2.3300 2.3400 2.3500 2.3600 2.3700 2.3800 2.3900 + 2.4000 2.4100 2.4200 2.4300 2.4400 2.4500 2.4600 2.4700 + 2.4800 2.4900 2.5000 2.5100 2.5200 2.5300 2.5400 2.5500 + 2.5600 2.5700 2.5800 2.5900 2.6000 2.6100 2.6200 2.6300 + 2.6400 2.6500 2.6600 2.6700 2.6800 2.6900 2.7000 2.7100 + 2.7200 2.7300 2.7400 2.7500 2.7600 2.7700 2.7800 2.7900 + 2.8000 2.8100 2.8200 2.8300 2.8400 2.8500 2.8600 2.8700 + 2.8800 2.8900 2.9000 2.9100 2.9200 2.9300 2.9400 2.9500 + 2.9600 2.9700 2.9800 2.9900 3.0000 3.0100 3.0200 3.0300 + 3.0400 3.0500 3.0600 3.0700 3.0800 3.0900 3.1000 3.1100 + 3.1200 3.1300 3.1400 3.1500 3.1600 3.1700 3.1800 3.1900 + 3.2000 3.2100 3.2200 3.2300 3.2400 3.2500 3.2600 3.2700 + 3.2800 3.2900 3.3000 3.3100 3.3200 3.3300 3.3400 3.3500 + 3.3600 3.3700 3.3800 3.3900 3.4000 3.4100 3.4200 3.4300 + 3.4400 3.4500 3.4600 3.4700 3.4800 3.4900 3.5000 3.5100 + 3.5200 3.5300 3.5400 3.5500 3.5600 3.5700 3.5800 3.5900 + 3.6000 3.6100 3.6200 3.6300 3.6400 3.6500 3.6600 3.6700 + 3.6800 3.6900 3.7000 3.7100 3.7200 3.7300 3.7400 3.7500 + 3.7600 3.7700 3.7800 3.7900 3.8000 3.8100 3.8200 3.8300 + 3.8400 3.8500 3.8600 3.8700 3.8800 3.8900 3.9000 3.9100 + 3.9200 3.9300 3.9400 3.9500 3.9600 3.9700 3.9800 3.9900 + 4.0000 4.0100 4.0200 4.0300 4.0400 4.0500 4.0600 4.0700 + 4.0800 4.0900 4.1000 4.1100 4.1200 4.1300 4.1400 4.1500 + 4.1600 4.1700 4.1800 4.1900 4.2000 4.2100 4.2200 4.2300 + 4.2400 4.2500 4.2600 4.2700 4.2800 4.2900 4.3000 4.3100 + 4.3200 4.3300 4.3400 4.3500 4.3600 4.3700 4.3800 4.3900 + 4.4000 4.4100 4.4200 4.4300 4.4400 4.4500 4.4600 4.4700 + 4.4800 4.4900 4.5000 4.5100 4.5200 4.5300 4.5400 4.5500 + 4.5600 4.5700 4.5800 4.5900 4.6000 4.6100 4.6200 4.6300 + 4.6400 4.6500 4.6600 4.6700 4.6800 4.6900 4.7000 4.7100 + 4.7200 4.7300 4.7400 4.7500 4.7600 4.7700 4.7800 4.7900 + 4.8000 4.8100 4.8200 4.8300 4.8400 4.8500 4.8600 4.8700 + 4.8800 4.8900 4.9000 4.9100 4.9200 4.9300 4.9400 4.9500 + 4.9600 4.9700 4.9800 4.9900 5.0000 5.0100 5.0200 5.0300 + 5.0400 5.0500 5.0600 5.0700 5.0800 5.0900 5.1000 5.1100 + 5.1200 5.1300 5.1400 5.1500 5.1600 5.1700 5.1800 5.1900 + 5.2000 5.2100 5.2200 5.2300 5.2400 5.2500 5.2600 5.2700 + 5.2800 5.2900 5.3000 5.3100 5.3200 5.3300 5.3400 5.3500 + 5.3600 5.3700 5.3800 5.3900 5.4000 5.4100 5.4200 5.4300 + 5.4400 5.4500 5.4600 5.4700 5.4800 5.4900 5.5000 5.5100 + 5.5200 5.5300 5.5400 5.5500 5.5600 5.5700 5.5800 5.5900 + 5.6000 5.6100 5.6200 5.6300 5.6400 5.6500 5.6600 5.6700 + 5.6800 5.6900 5.7000 5.7100 5.7200 5.7300 5.7400 5.7500 + 5.7600 5.7700 5.7800 5.7900 5.8000 5.8100 5.8200 5.8300 + 5.8400 5.8500 5.8600 5.8700 5.8800 5.8900 5.9000 5.9100 + 5.9200 5.9300 5.9400 5.9500 5.9600 5.9700 5.9800 5.9900 + 6.0000 6.0100 6.0200 6.0300 6.0400 6.0500 6.0600 6.0700 + 6.0800 6.0900 6.1000 6.1100 6.1200 6.1300 6.1400 6.1500 + 6.1600 6.1700 6.1800 6.1900 6.2000 6.2100 6.2200 6.2300 + 6.2400 6.2500 6.2600 6.2700 6.2800 6.2900 6.3000 6.3100 + 6.3200 6.3300 6.3400 6.3500 6.3600 6.3700 6.3800 6.3900 + 6.4000 6.4100 6.4200 6.4300 6.4400 6.4500 6.4600 6.4700 + 6.4800 6.4900 6.5000 6.5100 6.5200 6.5300 6.5400 6.5500 + 6.5600 6.5700 6.5800 6.5900 6.6000 6.6100 6.6200 6.6300 + 6.6400 6.6500 6.6600 6.6700 6.6800 6.6900 6.7000 6.7100 + 6.7200 6.7300 6.7400 6.7500 6.7600 6.7700 6.7800 6.7900 + 6.8000 6.8100 6.8200 6.8300 6.8400 6.8500 6.8600 6.8700 + 6.8800 6.8900 6.9000 6.9100 6.9200 6.9300 6.9400 6.9500 + 6.9600 6.9700 6.9800 6.9900 7.0000 7.0100 7.0200 7.0300 + 7.0400 7.0500 7.0600 7.0700 7.0800 7.0900 7.1000 7.1100 + 7.1200 7.1300 7.1400 7.1500 7.1600 7.1700 7.1800 7.1900 + 7.2000 7.2100 7.2200 7.2300 7.2400 7.2500 7.2600 7.2700 + 7.2800 7.2900 7.3000 7.3100 7.3200 7.3300 7.3400 7.3500 + 7.3600 7.3700 7.3800 7.3900 7.4000 7.4100 7.4200 7.4300 + 7.4400 7.4500 7.4600 7.4700 7.4800 7.4900 7.5000 7.5100 + 7.5200 7.5300 7.5400 7.5500 7.5600 7.5700 7.5800 7.5900 + 7.6000 7.6100 7.6200 7.6300 7.6400 7.6500 7.6600 7.6700 + 7.6800 7.6900 7.7000 7.7100 7.7200 7.7300 7.7400 7.7500 + 7.7600 7.7700 7.7800 7.7900 7.8000 7.8100 7.8200 7.8300 + 7.8400 7.8500 7.8600 7.8700 7.8800 7.8900 7.9000 7.9100 + 7.9200 7.9300 7.9400 7.9500 7.9600 7.9700 7.9800 7.9900 + 8.0000 8.0100 8.0200 8.0300 8.0400 8.0500 8.0600 8.0700 + 8.0800 8.0900 8.1000 8.1100 8.1200 8.1300 8.1400 8.1500 + 8.1600 8.1700 8.1800 8.1900 8.2000 8.2100 8.2200 8.2300 + 8.2400 8.2500 8.2600 8.2700 8.2800 8.2900 8.3000 8.3100 + 8.3200 8.3300 8.3400 8.3500 8.3600 8.3700 8.3800 8.3900 + 8.4000 8.4100 8.4200 8.4300 8.4400 8.4500 8.4600 8.4700 + 8.4800 8.4900 8.5000 8.5100 8.5200 8.5300 8.5400 8.5500 + 8.5600 8.5700 8.5800 8.5900 8.6000 8.6100 8.6200 8.6300 + 8.6400 8.6500 8.6600 8.6700 8.6800 8.6900 8.7000 8.7100 + 8.7200 8.7300 8.7400 8.7500 8.7600 8.7700 8.7800 8.7900 + 8.8000 8.8100 8.8200 8.8300 8.8400 8.8500 8.8600 8.8700 + 8.8800 8.8900 8.9000 8.9100 8.9200 8.9300 8.9400 8.9500 + 8.9600 8.9700 8.9800 8.9900 9.0000 9.0100 9.0200 9.0300 + 9.0400 9.0500 9.0600 9.0700 9.0800 9.0900 9.1000 9.1100 + 9.1200 9.1300 9.1400 9.1500 9.1600 9.1700 9.1800 9.1900 + 9.2000 9.2100 9.2200 9.2300 9.2400 9.2500 + + + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + + + + -1.9131489644E+01 -1.9130066698E+01 -1.9125803444E+01 -1.9118716563E+01 + -1.9108833345E+01 -1.9096190966E+01 -1.9080835535E+01 -1.9062820959E+01 + -1.9042207688E+01 -1.9019061395E+01 -1.8993451653E+01 -1.8965450650E+01 + -1.8935131992E+01 -1.8902569616E+01 -1.8867836829E+01 -1.8831005508E+01 + -1.8792145422E+01 -1.8751323718E+01 -1.8708604523E+01 -1.8664048677E+01 + -1.8617713571E+01 -1.8569653069E+01 -1.8519917523E+01 -1.8468553837E+01 + -1.8415605588E+01 -1.8361113188E+01 -1.8305114071E+01 -1.8247642906E+01 + -1.8188731816E+01 -1.8128410611E+01 -1.8066707024E+01 -1.8003646937E+01 + -1.7939254614E+01 -1.7873552918E+01 -1.7806563522E+01 -1.7738307116E+01 + -1.7668803589E+01 -1.7598072218E+01 -1.7526131824E+01 -1.7453000935E+01 + -1.7378697923E+01 -1.7303241139E+01 -1.7226649025E+01 -1.7148940225E+01 + -1.7070133681E+01 -1.6990248714E+01 -1.6909305097E+01 -1.6827323126E+01 + -1.6744323665E+01 -1.6660328198E+01 -1.6575358860E+01 -1.6489438470E+01 + -1.6402590548E+01 -1.6314839331E+01 -1.6226209776E+01 -1.6136727563E+01 + -1.6046419089E+01 -1.5955311458E+01 -1.5863432462E+01 -1.5770810565E+01 + -1.5677474874E+01 -1.5583455117E+01 -1.5488781607E+01 -1.5393485210E+01 + -1.5297597311E+01 -1.5201149771E+01 -1.5104174893E+01 -1.5006705374E+01 + -1.4908774270E+01 -1.4810414947E+01 -1.4711661041E+01 -1.4612546413E+01 + -1.4513105103E+01 -1.4413371293E+01 -1.4313379255E+01 -1.4213163317E+01 + -1.4112757817E+01 -1.4012197062E+01 -1.3911515289E+01 -1.3810746629E+01 + -1.3709925064E+01 -1.3609084398E+01 -1.3508258216E+01 -1.3407479856E+01 + -1.3306782373E+01 -1.3206198511E+01 -1.3105760673E+01 -1.3005500894E+01 + -1.2905450816E+01 -1.2805641659E+01 -1.2706104202E+01 -1.2606868759E+01 + -1.2507965156E+01 -1.2409422714E+01 -1.2311270228E+01 -1.2213535950E+01 + -1.2116247568E+01 -1.2019432196E+01 -1.1923116352E+01 -1.1827325948E+01 + -1.1732086271E+01 -1.1637421969E+01 -1.1543357041E+01 -1.1449914819E+01 + -1.1357117955E+01 -1.1264988411E+01 -1.1173547441E+01 -1.1082815579E+01 + -1.0992812627E+01 -1.0903557639E+01 -1.0815068906E+01 -1.0727363946E+01 + -1.0640459483E+01 -1.0554371436E+01 -1.0469114468E+01 -1.0384709850E+01 + -1.0301086885E+01 -1.0218363808E+01 -1.0136522940E+01 -1.0055578230E+01 + -9.9755385948E+00 -9.8964129179E+00 -9.8182090867E+00 -9.7409339950E+00 + -9.6645935211E+00 -9.5891925053E+00 -9.5147347259E+00 -9.4412228751E+00 + -9.3686585343E+00 -9.2970421477E+00 -9.2263729964E+00 -9.1566491712E+00 + -9.0878675449E+00 -9.0200237435E+00 -8.9531121179E+00 -8.8871257137E+00 + -8.8220562414E+00 -8.7578940458E+00 -8.6946280745E+00 -8.6322458464E+00 + -8.5707334243E+00 -8.5100753707E+00 -8.4502552197E+00 -8.3912566139E+00 + -8.3330636712E+00 -8.2756609449E+00 -8.2190334037E+00 -8.1631664077E+00 + -8.1080456860E+00 -8.0536573155E+00 -7.9999876998E+00 -7.9470235504E+00 + -7.8947518678E+00 -7.8431599242E+00 -7.7922352472E+00 -7.7419656046E+00 + -7.6923389902E+00 -7.6433436109E+00 -7.5949678742E+00 -7.5472003781E+00 + -7.5000299008E+00 -7.4534453968E+00 -7.4074360218E+00 -7.3619911895E+00 + -7.3171005727E+00 -7.2727540946E+00 -7.2289419208E+00 -7.1856544528E+00 + -7.1428823206E+00 -7.1006163758E+00 -7.0588476856E+00 -7.0175675259E+00 + -6.9767673755E+00 -6.9364389104E+00 -6.8965739979E+00 -6.8571646912E+00 + -6.8182032240E+00 -6.7796820057E+00 -6.7415936161E+00 -6.7039308011E+00 + -6.6666864675E+00 -6.6298536790E+00 -6.5934256518E+00 -6.5573957502E+00 + -6.5217574831E+00 -6.4865044994E+00 -6.4516305848E+00 -6.4171296578E+00 + -6.3829957664E+00 -6.3492230845E+00 -6.3158059088E+00 -6.2827386551E+00 + -6.2500158560E+00 -6.2176321571E+00 -6.1855823144E+00 -6.1538611918E+00 + -6.1224637575E+00 -6.0913850824E+00 -6.0606203366E+00 -6.0301647875E+00 + -6.0000137970E+00 -5.9701628194E+00 -5.9406073990E+00 -5.9113431679E+00 + -5.8823658439E+00 -5.8536712282E+00 -5.8252552037E+00 -5.7971137327E+00 + -5.7692428553E+00 -5.7416386874E+00 -5.7142974187E+00 -5.6872153112E+00 + -5.6603886976E+00 -5.6338139793E+00 -5.6074876250E+00 -5.5814061691E+00 + -5.5555662103E+00 -5.5299644097E+00 -5.5045974900E+00 -5.4794622335E+00 + -5.4545554812E+00 -5.4298741312E+00 -5.4054151374E+00 -5.3811755085E+00 + -5.3571523065E+00 -5.3333426457E+00 -5.3097436915E+00 -5.2863526591E+00 + -5.2631668127E+00 -5.2401834643E+00 -5.2173999724E+00 -5.1948137417E+00 + -5.1724222212E+00 -5.1502229039E+00 -5.1282133257E+00 -5.1063910643E+00 + -5.0847537385E+00 -5.0632990074E+00 -5.0420245694E+00 -5.0209281612E+00 + -5.0000075576E+00 -4.9792605701E+00 -4.9586850463E+00 -4.9382788695E+00 + -4.9180399574E+00 -4.8979662619E+00 -4.8780557681E+00 -4.8583064939E+00 + -4.8387164890E+00 -4.8192838344E+00 -4.8000066419E+00 -4.7808830534E+00 + -4.7619112402E+00 -4.7430894027E+00 -4.7244157695E+00 -4.7058885969E+00 + -4.6875061686E+00 -4.6692667950E+00 -4.6511688126E+00 -4.6332105837E+00 + -4.6153904957E+00 -4.5977069608E+00 -4.5801584154E+00 -4.5627433196E+00 + -4.5454601571E+00 -4.5283074341E+00 -4.5112836796E+00 -4.4943874445E+00 + -4.4776173012E+00 -4.4609718437E+00 -4.4444496863E+00 -4.4280494643E+00 + -4.4117698326E+00 -4.3956094662E+00 -4.3795670592E+00 -4.3636413248E+00 + -4.3478309947E+00 -4.3321348191E+00 -4.3165515661E+00 -4.3010800215E+00 + -4.2857189883E+00 -4.2704672869E+00 -4.2553237539E+00 -4.2402872428E+00 + -4.2253566230E+00 -4.2105307800E+00 -4.1958086145E+00 -4.1811890430E+00 + -4.1666709966E+00 -4.1522534215E+00 -4.1379352784E+00 -4.1237155421E+00 + -4.1095932015E+00 -4.0955672596E+00 -4.0816367326E+00 -4.0678006502E+00 + -4.0540580551E+00 -4.0404080031E+00 -4.0268495625E+00 -4.0133818141E+00 + -4.0000038510E+00 -3.9867147783E+00 -3.9735137130E+00 -3.9603997838E+00 + -3.9473721306E+00 -3.9344299050E+00 -3.9215722694E+00 -3.9087983971E+00 + -3.8961074723E+00 -3.8834986896E+00 -3.8709712542E+00 -3.8585243814E+00 + -3.8461572964E+00 -3.8338692345E+00 -3.8216594408E+00 -3.8095271698E+00 + -3.7974716856E+00 -3.7854922614E+00 -3.7735881798E+00 -3.7617587320E+00 + -3.7500032186E+00 -3.7383209484E+00 -3.7267112391E+00 -3.7151734167E+00 + -3.7037068157E+00 -3.6923107785E+00 -3.6809846558E+00 -3.6697278063E+00 + -3.6585395963E+00 -3.6474193998E+00 -3.6363665987E+00 -3.6253805820E+00 + -3.6144607464E+00 -3.6036064955E+00 -3.5928172402E+00 -3.5820923986E+00 + -3.5714313955E+00 -3.5608336625E+00 -3.5502986382E+00 -3.5398257676E+00 + -3.5294145023E+00 -3.5190643002E+00 -3.5087746258E+00 -3.4985449496E+00 + -3.4883747484E+00 -3.4782635050E+00 -3.4682107082E+00 -3.4582158528E+00 + -3.4482784391E+00 -3.4383979736E+00 -3.4285739679E+00 -3.4188059396E+00 + -3.4090934116E+00 -3.3994359122E+00 -3.3898329750E+00 -3.3802841390E+00 + -3.3707889483E+00 -3.3613469520E+00 -3.3519577044E+00 -3.3426207647E+00 + -3.3333356970E+00 -3.3241020702E+00 -3.3149194580E+00 -3.3057874388E+00 + -3.2967055956E+00 -3.2876735160E+00 -3.2786907922E+00 -3.2697570206E+00 + -3.2608718022E+00 -3.2520347423E+00 -3.2432454503E+00 -3.2345035401E+00 + -3.2258086295E+00 -3.2171603404E+00 -3.2085582989E+00 -3.2000021351E+00 + -3.1914914829E+00 -3.1830259801E+00 -3.1746052684E+00 -3.1662289932E+00 + -3.1578968038E+00 -3.1496083530E+00 -3.1413632973E+00 -3.1331612967E+00 + -3.1250020150E+00 -3.1168851192E+00 -3.1088102800E+00 -3.1007771712E+00 + -3.0927854703E+00 -3.0848348579E+00 -3.0769250179E+00 -3.0690556375E+00 + -3.0612264071E+00 -3.0534370201E+00 -3.0456871732E+00 -3.0379765662E+00 + -3.0303049016E+00 -3.0226718853E+00 -3.0150772259E+00 -3.0075206350E+00 + -3.0000018271E+00 -2.9925205196E+00 -2.9850764325E+00 -2.9776692889E+00 + -2.9702988143E+00 -2.9629647372E+00 -2.9556667886E+00 -2.9484047022E+00 + -2.9411782143E+00 -2.9339870638E+00 -2.9268309921E+00 -2.9197097432E+00 + -2.9126230635E+00 -2.9055707020E+00 -2.8985524098E+00 -2.8915679408E+00 + -2.8846170510E+00 -2.8776994988E+00 -2.8708150450E+00 -2.8639634526E+00 + -2.8571444869E+00 -2.8503579153E+00 -2.8436035076E+00 -2.8368810357E+00 + -2.8301902736E+00 -2.8235309975E+00 -2.8169029856E+00 -2.8103060183E+00 + -2.8037398780E+00 -2.7972043491E+00 -2.7906992180E+00 -2.7842242732E+00 + -2.7777793050E+00 -2.7713641058E+00 -2.7649784697E+00 -2.7586221929E+00 + -2.7522950733E+00 -2.7459969109E+00 -2.7397275072E+00 -2.7334866657E+00 + -2.7272741918E+00 -2.7210898923E+00 -2.7149335761E+00 -2.7088050537E+00 + -2.7027041373E+00 -2.6966306408E+00 -2.6905843797E+00 -2.6845651712E+00 + -2.6785728343E+00 -2.6726071892E+00 -2.6666680582E+00 -2.6607552648E+00 + -2.6548686343E+00 -2.6490079933E+00 -2.6431731701E+00 -2.6373639945E+00 + -2.6315802978E+00 -2.6258219127E+00 -2.6200886734E+00 -2.6143804155E+00 + -2.6086969762E+00 -2.6030381939E+00 -2.5974039085E+00 -2.5917939613E+00 + -2.5862081950E+00 -2.5806464534E+00 -2.5751085820E+00 -2.5695944274E+00 + -2.5641038376E+00 -2.5586366619E+00 -2.5531927507E+00 -2.5477719560E+00 + -2.5423741307E+00 -2.5369991292E+00 -2.5316468071E+00 -2.5263170211E+00 + -2.5210096292E+00 -2.5157244905E+00 -2.5104614653E+00 -2.5052204153E+00 + -2.5000012029E+00 -2.4948036921E+00 -2.4896277477E+00 -2.4844732359E+00 + -2.4793400236E+00 -2.4742279793E+00 -2.4691369722E+00 -2.4640668728E+00 + -2.4590175524E+00 -2.4539888837E+00 -2.4489807402E+00 -2.4439929964E+00 + -2.4390255281E+00 -2.4340782117E+00 -2.4291509250E+00 -2.4242435466E+00 + -2.4193559559E+00 -2.4144880337E+00 -2.4096396613E+00 -2.4048107214E+00 + -2.4000010971E+00 -2.3952106730E+00 -2.3904393343E+00 -2.3856869671E+00 + -2.3809534585E+00 -2.3762386965E+00 -2.3715425699E+00 -2.3668649685E+00 + -2.3622057828E+00 -2.3575649044E+00 -2.3529422255E+00 -2.3483376393E+00 + -2.3437510397E+00 -2.3391823217E+00 -2.3346313807E+00 -2.3300981134E+00 + -2.3255824168E+00 -2.3210841891E+00 -2.3166033291E+00 -2.3121397364E+00 + -2.3076933113E+00 -2.3032639551E+00 -2.2988515696E+00 -2.2944560575E+00 + -2.2900773221E+00 -2.2857152676E+00 -2.2813697990E+00 -2.2770408216E+00 + -2.2727282419E+00 -2.2684319669E+00 -2.2641519042E+00 -2.2598879623E+00 + -2.2556400503E+00 -2.2514080779E+00 -2.2471919555E+00 -2.2429915944E+00 + -2.2388069063E+00 -2.2346378037E+00 -2.2304841995E+00 -2.2263460077E+00 + -2.2222231424E+00 -2.2181155189E+00 -2.2140230526E+00 -2.2099456599E+00 + -2.2058832575E+00 -2.2018357631E+00 -2.1978030947E+00 -2.1937851710E+00 + -2.1897819112E+00 -2.1857932352E+00 -2.1818190636E+00 -2.1778593172E+00 + -2.1739139177E+00 -2.1699827874E+00 -2.1660658488E+00 -2.1621630254E+00 + -2.1582742409E+00 -2.1543994197E+00 -2.1505384867E+00 -2.1466913675E+00 + -2.1428579880E+00 -2.1390382747E+00 -2.1352321548E+00 -2.1314395557E+00 + -2.1276604055E+00 -2.1238946328E+00 -2.1201421668E+00 -2.1164029370E+00 + -2.1126768735E+00 -2.1089639069E+00 -2.1052639682E+00 -2.1015769891E+00 + -2.0979029014E+00 -2.0942416379E+00 -2.0905931313E+00 -2.0869573153E+00 + -2.0833341235E+00 -2.0797234905E+00 -2.0761253511E+00 -2.0725396405E+00 + -2.0689662943E+00 -2.0654052489E+00 -2.0618564408E+00 -2.0583198069E+00 + -2.0547952848E+00 -2.0512828124E+00 -2.0477823279E+00 -2.0442937701E+00 + -2.0408170782E+00 -2.0373521916E+00 -2.0338990505E+00 -2.0304575951E+00 + -2.0270277663E+00 -2.0236095051E+00 -2.0202027533E+00 -2.0168074528E+00 + -2.0134235458E+00 -2.0100509753E+00 -2.0066896843E+00 -2.0033396162E+00 + -2.0000007151E+00 -1.9966729251E+00 -1.9933561909E+00 -1.9900504575E+00 + -1.9867556702E+00 -1.9834717748E+00 -1.9801987174E+00 -1.9769364443E+00 + -1.9736849023E+00 -1.9704440387E+00 -1.9672138009E+00 -1.9639941366E+00 + -1.9607849942E+00 -1.9575863220E+00 -1.9543980690E+00 -1.9512201843E+00 + -1.9480526174E+00 -1.9448953181E+00 -1.9417482366E+00 -1.9386113234E+00 + -1.9354845293E+00 -1.9323678054E+00 -1.9292611031E+00 -1.9261643742E+00 + -1.9230775706E+00 -1.9200006449E+00 -1.9169335496E+00 -1.9138762377E+00 + -1.9108286625E+00 -1.9077907774E+00 -1.9047625365E+00 -1.9017438938E+00 + -1.8987348038E+00 -1.8957352211E+00 -1.8927451009E+00 -1.8897643984E+00 + -1.8867930691E+00 -1.8838310690E+00 -1.8808783542E+00 -1.8779348810E+00 + -1.8750006062E+00 -1.8720754867E+00 -1.8691594798E+00 -1.8662525428E+00 + -1.8633546336E+00 -1.8604657101E+00 -1.8575857307E+00 -1.8547146539E+00 + -1.8518524384E+00 -1.8489990433E+00 -1.8461544279E+00 -1.8433185517E+00 + -1.8404913745E+00 -1.8376728564E+00 -1.8348629576E+00 -1.8320616386E+00 + -1.8292688602E+00 -1.8264845835E+00 -1.8237087696E+00 -1.8209413800E+00 + -1.8181823765E+00 -1.8154317209E+00 -1.8126893754E+00 -1.8099553025E+00 + -1.8072294648E+00 -1.8045118251E+00 -1.8018023464E+00 -1.7991009922E+00 + -1.7964077258E+00 -1.7937225110E+00 -1.7910453118E+00 -1.7883760924E+00 + -1.7857148170E+00 -1.7830614504E+00 -1.7804159572E+00 -1.7777783026E+00 + -1.7751484516E+00 -1.7725263698E+00 -1.7699120228E+00 -1.7673053763E+00 + -1.7647063964E+00 -1.7621150494E+00 -1.7595313016E+00 -1.7569551197E+00 + -1.7543864706E+00 -1.7518253211E+00 -1.7492716385E+00 -1.7467253902E+00 + -1.7441865439E+00 -1.7416550672E+00 -1.7391309280E+00 -1.7366140947E+00 + -1.7341045355E+00 -1.7316022188E+00 -1.7291071134E+00 -1.7266191882E+00 + -1.7241384122E+00 -1.7216647547E+00 -1.7191981850E+00 -1.7167386727E+00 + -1.7142861876E+00 -1.7118406996E+00 -1.7094021788E+00 -1.7069705955E+00 + -1.7045459201E+00 -1.7021281232E+00 -1.6997171756E+00 -1.6973130482E+00 + -1.6949157121E+00 -1.6925251386E+00 -1.6901412992E+00 -1.6877641653E+00 + -1.6853937088E+00 -1.6830299015E+00 -1.6806727156E+00 -1.6783221231E+00 + -1.6759780966E+00 -1.6736406085E+00 -1.6713096315E+00 -1.6689851385E+00 + -1.6666671024E+00 -1.6643554963E+00 -1.6620502936E+00 -1.6597514677E+00 + -1.6574589921E+00 -1.6551728406E+00 -1.6528929870E+00 -1.6506194054E+00 + -1.6483520698E+00 -1.6460909547E+00 -1.6438360345E+00 -1.6415872836E+00 + -1.6393446769E+00 -1.6371081891E+00 -1.6348777953E+00 -1.6326534707E+00 + -1.6304351904E+00 -1.6282229298E+00 -1.6260166645E+00 -1.6238163702E+00 + -1.6216220227E+00 -1.6194335978E+00 -1.6172510716E+00 -1.6150744203E+00 + -1.6129036203E+00 -1.6107386479E+00 -1.6085794797E+00 -1.6064260924E+00 + -1.6042784628E+00 -1.6021365679E+00 -1.6000003848E+00 -1.5978698905E+00 + -1.5957450624E+00 -1.5936258780E+00 -1.5915123148E+00 -1.5894043504E+00 + -1.5873019626E+00 -1.5852051294E+00 -1.5831138287E+00 -1.5810280387E+00 + -1.5789477376E+00 -1.5768729038E+00 -1.5748035157E+00 -1.5727395520E+00 + -1.5706809914E+00 -1.5686278126E+00 -1.5665799946E+00 -1.5645375164E+00 + -1.5625003571E+00 -1.5604684961E+00 -1.5584419126E+00 -1.5564205862E+00 + -1.5544044964E+00 -1.5523936228E+00 -1.5503879453E+00 -1.5483874437E+00 + -1.5463920981E+00 -1.5444018885E+00 -1.5424167951E+00 -1.5404367983E+00 + -1.5384618783E+00 -1.5364920158E+00 -1.5345271913E+00 -1.5325673855E+00 + -1.5306125792E+00 -1.5286627533E+00 -1.5267178888E+00 -1.5247779668E+00 + -1.5228429684E+00 -1.5209128750E+00 -1.5189876679E+00 -1.5170673286E+00 + -1.5151518386E+00 -1.5132411797E+00 -1.5113353334E+00 -1.5094342818E+00 + -1.5075380067E+00 -1.5056464901E+00 -1.5037597141E+00 -1.5018776610E+00 + -1.5000003131E+00 -1.4981276526E+00 -1.4962596621E+00 -1.4943963242E+00 + -1.4925376214E+00 -1.4906835365E+00 -1.4888340524E+00 -1.4869891518E+00 + -1.4851488179E+00 -1.4833130335E+00 -1.4814817820E+00 -1.4796550466E+00 + -1.4778328104E+00 -1.4760150571E+00 -1.4742017699E+00 -1.4723929325E+00 + -1.4705885286E+00 -1.4687885418E+00 -1.4669929560E+00 -1.4652017550E+00 + -1.4634149228E+00 -1.4616324434E+00 -1.4598543009E+00 -1.4580804796E+00 + -1.4563109636E+00 -1.4545457374E+00 -1.4527847854E+00 -1.4510280920E+00 + -1.4492756418E+00 -1.4475274195E+00 -1.4457834098E+00 -1.4440435974E+00 + -1.4423079674E+00 -1.4405765044E+00 -1.4388491937E+00 -1.4371260203E+00 + -1.4354069693E+00 -1.4336920259E+00 -1.4319811755E+00 -1.4302744034E+00 + -1.4285716950E+00 -1.4268730359E+00 -1.4251784116E+00 -1.4234878078E+00 + -1.4218012102E+00 -1.4201186045E+00 -1.4184399766E+00 -1.4167653124E+00 + -1.4150945978E+00 -1.4134278190E+00 -1.4117649621E+00 -1.4101060131E+00 + -1.4084509585E+00 -1.4067997843E+00 -1.4051524771E+00 -1.4035090232E+00 + -1.4018694092E+00 -1.4002336216E+00 -1.3986016470E+00 -1.3969734721E+00 + -1.3953490837E+00 -1.3937284686E+00 -1.3921116136E+00 -1.3904985056E+00 + -1.3888891317E+00 -1.3872834789E+00 -1.3856815343E+00 -1.3840832850E+00 + -1.3824887184E+00 -1.3808978217E+00 -1.3793105822E+00 -1.3777269873E+00 + -1.3761470246E+00 -1.3745706815E+00 -1.3729979455E+00 -1.3714288044E+00 + -1.3698632458E+00 -1.3683012575E+00 -1.3667428273E+00 -1.3651879429E+00 + -1.3636365924E+00 -1.3620887637E+00 -1.3605444448E+00 -1.3590036238E+00 + -1.3574662888E+00 -1.3559324281E+00 -1.3544020297E+00 -1.3528750822E+00 + -1.3513515736E+00 -1.3498314926E+00 -1.3483148275E+00 -1.3468015667E+00 + -1.3452916990E+00 -1.3437852128E+00 -1.3422820968E+00 -1.3407823398E+00 + -1.3392859304E+00 -1.3377928575E+00 -1.3363031100E+00 -1.3348166767E+00 + -1.3333335465E+00 -1.3318537086E+00 -1.3303771519E+00 -1.3289038656E+00 + -1.3274338387E+00 -1.3259670605E+00 -1.3245035202E+00 -1.3230432072E+00 + -1.3215861107E+00 -1.3201322201E+00 -1.3186815249E+00 -1.3172340146E+00 + -1.3157896786E+00 -1.3143485066E+00 -1.3129104881E+00 -1.3114756128E+00 + -1.3100438705E+00 -1.3086152508E+00 -1.3071897436E+00 -1.3057673387E+00 + -1.3043480260E+00 -1.3029317953E+00 -1.3015186368E+00 -1.3001085404E+00 + -1.2987014962E+00 -1.2972974942E+00 + + + + -1.1830758595E-11 7.0032004383E-02 1.3991815563E-01 2.0951297892E-01 + 2.7867175496E-01 3.4725089508E-01 4.1510831315E-01 4.8210379311E-01 + 5.4809935137E-01 6.1295959270E-01 6.7655205886E-01 7.3874756891E-01 + 7.9942055010E-01 8.5844935864E-01 9.1571658918E-01 9.7110937234E-01 + 1.0245196593E+00 1.0758444925E+00 1.1249862625E+00 1.1718529484E+00 + 1.2163583438E+00 1.2584222651E+00 1.2979707431E+00 1.3349361968E+00 + 1.3692575890E+00 1.4008805634E+00 1.4297575621E+00 1.4558479243E+00 + 1.4791179654E+00 1.4995410350E+00 1.5170975567E+00 1.5317750458E+00 + 1.5435681083E+00 1.5524784184E+00 1.5585146770E+00 1.5616925489E+00 + 1.5620345814E+00 1.5595701022E+00 1.5543350989E+00 1.5463720786E+00 + 1.5357299102E+00 1.5224636474E+00 1.5066343355E+00 1.4883087998E+00 + 1.4675594198E+00 1.4444638858E+00 1.4191049422E+00 1.3915701166E+00 + 1.3619514351E+00 1.3303451265E+00 1.2968513148E+00 1.2615737012E+00 + 1.2246192375E+00 1.1860977912E+00 1.1461218034E+00 1.1048059410E+00 + 1.0622667444E+00 1.0186222710E+00 9.7399173728E-01 9.2849515896E-01 + 8.8225299168E-01 8.3538577277E-01 7.8801376575E-01 7.4025660842E-01 + 6.9223296601E-01 6.4406019049E-01 5.9585398719E-01 5.4772808999E-01 + 4.9979394612E-01 4.5216041167E-01 4.0493345898E-01 3.5821589677E-01 + 3.1210710409E-01 2.6670277901E-01 2.2209470279E-01 1.7837052051E-01 + 1.3561353876E-01 9.3902541092E-02 5.3311621869E-02 1.3910038957E-02 + -2.4237914251E-02 -6.1073017151E-02 -9.6541210306E-02 -1.3059366371E-01 + -1.6318682485E-01 -1.9428244656E-01 -2.2384759476E-01 -2.5185463625E-01 + -2.7828120690E-01 -3.0311016046E-01 -3.2632949863E-01 -3.4793228276E-01 + -3.6791652796E-01 -3.8628508021E-01 -4.0304547735E-01 -4.1820979479E-01 + -4.3179447685E-01 -4.4382015487E-01 -4.5431145295E-01 -4.6329678270E-01 + -4.7080812794E-01 -4.7688082083E-01 -4.8155331042E-01 -4.8486692520E-01 + -4.8686563072E-01 -4.8759578380E-01 -4.8710588461E-01 -4.8544632786E-01 + -4.8266915468E-01 -4.7882780626E-01 -4.7397688069E-01 -4.6817189426E-01 + -4.6146904839E-01 -4.5392500337E-01 -4.4559666015E-01 -4.3654095106E-01 + -4.2681464063E-01 -4.1647413728E-01 -4.0557531686E-01 -3.9417335867E-01 + -3.8232259470E-01 -3.7007637265E-01 -3.5748693311E-01 -3.4460530148E-01 + -3.3148119461E-01 -3.1816294251E-01 -3.0469742519E-01 -2.9113002446E-01 + -2.7750459057E-01 -2.6386342350E-01 -2.5024726849E-01 -2.3669532521E-01 + -2.2324527031E-01 -2.0993329233E-01 -1.9679413857E-01 -1.8386117286E-01 + -1.7116644344E-01 -1.5874075994E-01 -1.4661377855E-01 -1.3481409434E-01 + -1.2336933594E-01 -1.1230627678E-01 -1.0165058247E-01 -9.1426112589E-02 + -8.1654808587E-02 -7.2356879129E-02 -6.3550970097E-02 -5.5254334536E-02 + -4.7482997882E-02 -4.0251917483E-02 -3.3575135282E-02 -2.7465923101E-02 + -2.1936913011E-02 -1.7001399160E-02 -1.2672619828E-02 -8.9605819477E-03 + -5.8754537050E-03 -3.4275396271E-03 -1.6279754678E-03 -4.8203277287E-04 + -2.5514876046E-05 5.3772766339E-06 -1.5966174497E-06 2.3682706832E-07 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. + + + -8.3647483384E-10 6.1080313386E-02 1.2181251059E-01 1.8185079610E-01 + 2.4085399536E-01 2.9848781444E-01 3.5442703942E-01 4.0835765630E-01 + 4.5997887319E-01 5.0900502748E-01 5.5516736204E-01 5.9821565567E-01 + 6.3791969470E-01 6.7407057430E-01 7.0648181964E-01 7.3499031924E-01 + 7.5945706440E-01 7.7976769097E-01 7.9583282139E-01 8.0758820725E-01 + 8.1499467451E-01 8.1803787534E-01 8.1672785281E-01 8.1109842617E-01 + 8.0120640620E-01 7.8713065207E-01 7.6897098209E-01 7.4684695251E-01 + 7.2089651928E-01 6.9127459902E-01 6.5815154587E-01 6.2171156172E-01 + 5.8215105742E-01 5.3967698308E-01 4.9450514511E-01 4.4685852771E-01 + 3.9696563585E-01 3.4505887627E-01 2.9137299200E-01 2.3614356507E-01 + 1.7960560081E-01 1.2199220565E-01 6.3533369223E-02 4.4548595935E-03 + -5.5022760913E-02 -1.1468499377E-01 -1.7432413230E-01 -2.3373985786E-01 + -2.9273970377E-01 -3.5113938882E-01 -4.0876302363E-01 -4.6544319498E-01 + -5.2102093477E-01 -5.7534558186E-01 -6.2827454632E-01 -6.7967298696E-01 + -7.2941341404E-01 -7.7737522992E-01 -8.2344422126E-01 -8.6751201685E-01 + -9.0947552544E-01 -9.4923636820E-01 -9.8670032016E-01 -1.0217767750E+00 + -1.0543782466E+00 -1.0844199210E+00 -1.1118192699E+00 -1.1364957382E+00 + -1.1583705136E+00 -1.1773663893E+00 -1.1934077239E+00 -1.2064205068E+00 + -1.2163325301E+00 -1.2230736717E+00 -1.2265762868E+00 -1.2267757085E+00 + -1.2236108526E+00 -1.2170249207E+00 -1.2069661966E+00 -1.1933889236E+00 + -1.1762542553E+00 -1.1555312661E+00 -1.1311980081E+00 -1.1032426003E+00 + -1.0716643336E+00 -1.0364747759E+00 -9.9769885904E-01 -9.5537593112E-01 + -9.0956075548E-01 -8.6032443885E-01 -8.0775527114E-01 -7.5195945983E-01 + -6.9306174247E-01 -6.3120586223E-01 -5.6655489191E-01 -4.9929139398E-01 + -4.2961740507E-01 -3.5775423559E-01 -2.8394207679E-01 -2.0843940971E-01 + -1.3152221258E-01 -5.3482965463E-02 2.5370546697E-02 1.0471662920E-01 + 1.8422126512E-01 2.6353988704E-01 3.4231932270E-01 4.2019990184E-01 + 4.9681770961E-01 5.7180696992E-01 6.4480254008E-01 7.1544249688E-01 + 7.8337079231E-01 8.4823995631E-01 9.0971382290E-01 9.6747025499E-01 + 1.0212038433E+00 1.0706285542E+00 1.1154803011E+00 1.1555194158E+00 + 1.1905329949E+00 1.2203370989E+00 1.2447787817E+00 1.2637379310E+00 + 1.2771289007E+00 1.2849019184E+00 1.2870442540E+00 1.2835811377E+00 + 1.2745764166E+00 1.2601329447E+00 1.2403927012E+00 1.2155366358E+00 + 1.1857842432E+00 1.1513928712E+00 1.1126567695E+00 1.0699058904E+00 + 1.0235044532E+00 9.7384928950E-01 9.2136798688E-01 8.6651685519E-01 + 8.0977868046E-01 7.5166052244E-01 6.9268591731E-01 6.3337962254E-01 + 5.7426002515E-01 5.1583575772E-01 4.5860213248E-01 4.0303766207E-01 + 3.4960065043E-01 2.9872588785E-01 2.5082147988E-01 2.0626582574E-01 + 1.6540492553E-01 1.2853723936E-01 9.5917453504E-02 6.7790657356E-02 + 4.4359800914E-02 2.5784278917E-02 1.2182787249E-02 3.5830211433E-03 + 1.8778050137E-04 -3.9501722502E-05 1.1787059015E-05 -1.7576147112E-06 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. + + + 1.4233334511E-09 1.7367628401E-03 6.9380330851E-03 1.5576825530E-02 + 2.7608396105E-02 4.2970586011E-02 6.1584297987E-02 8.3354099295E-02 + 1.0816894457E-01 1.3590301034E-01 1.6641663188E-01 1.9955733180E-01 + 2.3516092902E-01 2.7305271590E-01 3.1304869058E-01 3.5495683122E-01 + 3.9857839862E-01 4.4370925343E-01 4.9014117429E-01 5.3766316367E-01 + 5.8606272834E-01 6.3512712229E-01 6.8464454040E-01 7.3440525239E-01 + 7.8420266729E-01 8.3383432017E-01 8.8310277375E-01 9.3181642939E-01 + 9.7979024267E-01 1.0268463409E+00 1.0728145411E+00 1.1175327678E+00 + 1.1608473733E+00 1.2026133618E+00 1.2426945229E+00 1.2809634784E+00 + 1.3173016504E+00 1.3515991576E+00 1.3837546477E+00 1.4136750765E+00 + 1.4412754423E+00 1.4664784856E+00 1.4892143667E+00 1.5094203281E+00 + 1.5270403562E+00 1.5420248486E+00 1.5543302998E+00 1.5639190117E+00 + 1.5707588398E+00 1.5748229795E+00 1.5760898012E+00 1.5745427385E+00 + 1.5701702325E+00 1.5629657363E+00 1.5529277791E+00 1.5400600916E+00 + 1.5243717890E+00 1.5058776098E+00 1.4845982055E+00 1.4605604754E+00 + 1.4337979395E+00 1.4043511408E+00 1.3722680692E+00 1.3376045949E+00 + 1.3004249025E+00 1.2608019133E+00 1.2188176838E+00 1.1745637699E+00 + 1.1281415438E+00 1.0796624516E+00 1.0292482019E+00 9.7703087314E-01 + 9.2315293067E-01 8.6776714457E-01 8.1103640030E-01 7.5313339603E-01 + 6.9424022145E-01 6.3454781492E-01 5.7425529705E-01 5.1356918087E-01 + 4.5270246044E-01 3.9187358156E-01 3.3130530010E-01 2.7122343538E-01 + 2.1185552760E-01 1.5342941013E-01 9.6171709211E-02 4.0306284616E-02 + -1.3947373334E-02 -6.6375774268E-02 -1.1677306851E-01 -1.6494268013E-01 + -2.1069891392E-01 -2.5386851740E-01 -2.9429217937E-01 -3.3182594622E-01 + -3.6634253809E-01 -3.9773254757E-01 -4.2590550441E-01 -4.5079079130E-01 + -4.7233839678E-01 -4.9051949327E-01 -5.0532682993E-01 -5.1677493202E-01 + -5.2490010061E-01 -5.2976020880E-01 -5.3143429278E-01 -5.3002193869E-01 + -5.2564246861E-01 -5.1843393123E-01 -5.0855190558E-01 -4.9616812823E-01 + -4.8146895662E-01 -4.6465368354E-01 -4.4593271947E-01 -4.2552566152E-01 + -4.0365926902E-01 -3.8056536749E-01 -3.5647870343E-01 -3.3163477351E-01 + -3.0626765221E-01 -2.8060784195E-01 -2.5488017022E-01 -2.2930175730E-01 + -2.0408007790E-01 -1.7941113907E-01 -1.5547779526E-01 -1.3244822020E-01 + -1.1047455342E-01 -8.9691737115E-02 -7.0216557167E-02 -5.2146899402E-02 + -3.5561229954E-02 -2.0518305734E-02 -7.0571183796E-03 4.8029277907E-03 + 1.5061606087E-02 2.3737231093E-02 3.0865803476E-02 3.6499946246E-02 + 4.0707648515E-02 4.3570820245E-02 4.5183966184E-02 4.5653116591E-02 + 4.5094272624E-02 4.3631543918E-02 4.1395221979E-02 3.8519802420E-02 + 3.5141983757E-02 3.1398668289E-02 2.7424990703E-02 2.3352400823E-02 + 1.9306811387E-02 1.5408243764E-02 1.1768431848E-02 8.4853910399E-03 + 5.6456703602E-03 3.3231722630E-03 1.5788349878E-03 4.5387775249E-04 + 1.3179159600E-06 -8.4820596397E-06 2.3010373809E-06 -3.7311648718E-07 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. + + + 1.4212045013E-09 1.7363820745E-03 6.9365149224E-03 1.5573427977E-02 + 2.7602401363E-02 4.2961309725E-02 6.1571098082E-02 8.3336384280E-02 + 1.0814618121E-01 1.3587473061E-01 1.6638243910E-01 1.9951690588E-01 + 2.3511403079E-01 2.7299919042E-01 3.1298846941E-01 3.5488993367E-01 + 3.9850493194E-01 4.4362941188E-01 4.9005523727E-01 5.3757149279E-01 + 5.8596576355E-01 6.3502537712E-01 6.8453859638E-01 7.3429575268E-01 + 7.8409030976E-01 8.3371984980E-01 8.8298697470E-01 9.3170011661E-01 + 9.7967425339E-01 1.0267315260E+00 1.0727017563E+00 1.1174228654E+00 + 1.1607411936E+00 1.2025117255E+00 1.2425982230E+00 1.2808732739E+00 + 1.3172182594E+00 1.3515232519E+00 1.3836868480E+00 1.4136159482E+00 + 1.4412254920E+00 1.4664381594E+00 1.4891840480E+00 1.5094003378E+00 + 1.5270309524E+00 1.5420262283E+00 1.5543426004E+00 1.5639423145E+00 + 1.5707931728E+00 1.5748683219E+00 1.5761460881E+00 1.5746098660E+00 + 1.5702480633E+00 1.5630541052E+00 1.5530264994E+00 1.5401689610E+00 + 1.5244905954E+00 1.5060061374E+00 1.4847362401E+00 1.4607078101E+00 + 1.4339543788E+00 1.4045165054E+00 1.3724421996E+00 1.3377873542E+00 + 1.3006161788E+00 1.2610016211E+00 1.2190257648E+00 1.1747801930E+00 + 1.1283663038E+00 1.0798955679E+00 1.0294897156E+00 9.7728084418E-01 + 9.2341143350E-01 8.6803426372E-01 8.1131222518E-01 7.5341801528E-01 + 6.9453371687E-01 6.3485025515E-01 5.7456673102E-01 5.1388963119E-01 + 4.5303191683E-01 3.9221199442E-01 3.3165257435E-01 2.7157942464E-01 + 2.1222002888E-01 1.5380215915E-01 9.6552376270E-02 4.0694471372E-02 + -1.3552136334E-02 -6.5974029111E-02 -1.1636543049E-01 -1.6452983733E-01 + -2.1028162571E-01 -2.5344761199E-01 -2.9386855025E-01 -3.3140054760E-01 + -3.6591637937E-01 -3.9730668687E-01 -4.2548104123E-01 -4.5036885836E-01 + -4.7192015119E-01 -4.9010610704E-01 -5.0491948005E-01 -5.1637479007E-01 + -5.2450832221E-01 -5.2937792286E-01 -5.3106259082E-01 -5.2966186428E-01 + -5.2529500708E-01 -5.1809999982E-01 -5.0823234419E-01 -4.9586369074E-01 + -4.8118030310E-01 -4.6438137332E-01 -4.4567720523E-01 -4.2528728447E-01 + -4.0343825522E-01 -3.8036182543E-01 -3.5629262283E-01 -3.3146602545E-01 + -3.0611599055E-01 -2.8047290605E-01 -2.5476148893E-01 -2.2919875417E-01 + -2.0399207763E-01 -1.7933737502E-01 -1.5541741799E-01 -1.3240030702E-01 + -1.1043811864E-01 -8.9665743133E-02 -7.0199926041E-02 -5.2138524927E-02 + -3.5559990024E-02 -2.0523074882E-02 -7.0667803415E-03 4.7894676218E-03 + 1.5045408458E-02 2.3719311071E-02 3.0847119130E-02 3.6481387952E-02 + 4.0690028992E-02 4.3554865388E-02 4.5170307618E-02 4.5642287242E-02 + 4.5086704314E-02 4.3627566386E-02 4.1395063399E-02 3.8523591379E-02 + 3.5149752708E-02 3.1410358414E-02 2.7440458152E-02 2.3371424246E-02 + 1.9329100652E-02 1.5433451030E-02 1.1796163385E-02 8.5152161319E-03 + 5.6771333550E-03 3.3558053069E-03 1.6122368765E-03 4.8692052863E-04 + 3.7192960759E-05 -3.7295271842E-06 1.2178649589E-06 -1.6398934809E-07 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. + + + -2.9505854149E-09 -9.5230663178E-04 -3.7985665437E-03 -8.5069225792E-03 + -1.5024687128E-02 -2.3278947807E-02 -3.3177403912E-02 -4.4609422340E-02 + -5.7447298714E-02 -7.1547706735E-02 -8.6753316235E-02 -1.0289455823E-01 + -1.1979151335E-01 -1.3725589835E-01 -1.5509312450E-01 -1.7310440034E-01 + -1.9108885133E-01 -2.0884562856E-01 -2.2617597918E-01 -2.4288525191E-01 + -2.5878481216E-01 -2.7369384264E-01 -2.8744100744E-01 -2.9986595941E-01 + -3.1082067331E-01 -3.2017058980E-01 -3.2779555822E-01 -3.3359056916E-01 + -3.3746627118E-01 -3.3934926886E-01 -3.3918220318E-01 -3.3692361811E-01 + -3.3254762049E-01 -3.2604334370E-01 -3.1741422800E-01 -3.0667713353E-01 + -2.9386130429E-01 -2.7900720349E-01 -2.6216524253E-01 -2.4339442761E-01 + -2.2276094863E-01 -2.0033673632E-01 -1.7619801331E-01 -1.5042386538E-01 + -1.2309485802E-01 -9.4291723166E-02 -6.4094139141E-02 -3.2579625592E-02 + 1.7742701147E-04 3.4106575997E-02 6.9141978549E-02 1.0522286537E-01 + 1.4229382725E-01 1.8030490895E-01 2.1921150836E-01 2.5897408212E-01 + 2.9955766252E-01 3.4093119365E-01 3.8306669830E-01 4.2593829021E-01 + 4.6952104911E-01 5.1378977893E-01 5.5871767174E-01 6.0427490242E-01 + 6.5042718048E-01 6.9713428701E-01 7.4434862561E-01 7.9201381673E-01 + 8.4006336461E-01 8.8841942609E-01 9.3699170905E-01 9.8567652750E-01 + 1.0343560381E+00 1.0828976810E+00 1.1311538448E+00 1.1789617735E+00 + 1.2261437285E+00 1.2725074162E+00 1.3178466884E+00 1.3619425163E+00 + 1.4045642383E+00 1.4454710744E+00 1.4844138974E+00 1.5211372472E+00 + 1.5553815687E+00 1.5868856525E+00 1.6153892514E+00 1.6406358439E+00 + 1.6623755126E+00 1.6803679025E+00 1.6943852217E+00 1.7042152467E+00 + 1.7096642908E+00 1.7105600968E+00 1.7067546112E+00 1.6981266010E+00 + 1.6845840726E+00 1.6660664562E+00 1.6425465186E+00 1.6140319721E+00 + 1.5805667498E+00 1.5422319207E+00 1.4991462217E+00 1.4514661899E+00 + 1.3993858818E+00 1.3431361705E+00 1.2829836194E+00 1.2192289346E+00 + 1.1522050030E+00 1.0822745315E+00 1.0098273043E+00 9.3527708417E-01 + 8.5905818413E-01 7.8162174644E-01 7.0343176446E-01 6.2496089049E-01 + 5.4668607485E-01 4.6908408440E-01 3.9262695135E-01 3.1777740459E-01 + 2.4498433718E-01 1.7467836377E-01 1.0726752177E-01 4.3133168771E-02 + -1.7373872476E-02 -7.3936872865E-02 -1.2627641356E-01 -1.7415321811E-01 + -2.1737056180E-01 -2.5577622463E-01 -2.8926395937E-01 -3.1777445179E-01 + -3.4129575579E-01 -3.5986319243E-01 -3.7355870827E-01 -3.8250969451E-01 + -3.8688727534E-01 -3.8690407995E-01 -3.8281151907E-01 -3.7489659246E-01 + -3.6347826960E-01 -3.4890344376E-01 -3.3154343003E-01 -3.1179138663E-01 + -2.9005825196E-01 -2.6676779870E-01 -2.4235157843E-01 -2.1724377744E-01 + -1.9187605170E-01 -1.6667240101E-01 -1.4204414319E-01 -1.1838504996E-01 + -9.6066674689E-02 -7.5436645278E-02 -5.6813159993E-02 -4.0473659522E-02 + -2.6658347958E-02 -1.5567308901E-02 -7.3610012778E-03 -2.1299147555E-03 + -4.6486600507E-05 3.3454151602E-05 -9.3255475484E-06 1.4788342298E-06 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. + + + -2.9463507398E-09 -9.5221935481E-04 -3.7982229968E-03 -8.5061703592E-03 + -1.5023401173E-02 -2.3277040690E-02 -3.3174835502E-02 -4.4606208667E-02 + -5.7443519885E-02 -7.1543513759E-02 -8.6748936640E-02 -1.0289030036E-01 + -1.1978776925E-01 -1.3725314522E-01 -1.5509192456E-01 -1.7310539924E-01 + -1.9109277497E-01 -2.0885327846E-01 -2.2618822631E-01 -2.4290302917E-01 + -2.5880910556E-01 -2.7372568125E-01 -2.8748145229E-01 -2.9991609147E-01 + -3.1088158069E-01 -3.2024335436E-01 -3.2788124173E-01 -3.3369019932E-01 + -3.3758082749E-01 -3.3947966875E-01 -3.3932928844E-01 -3.3708814187E-01 + -3.3273023499E-01 -3.2624458889E-01 -3.1763452129E-01 -3.0691676072E-01 + -2.9412041191E-01 -2.7928579256E-01 -2.6246316398E-01 -2.4371137933E-01 + -2.2309647424E-01 -2.0069022569E-01 -1.7656870488E-01 -1.5081085017E-01 + -1.2349708544E-01 -9.4708008417E-02 -6.4523172207E-02 -3.3019981724E-02 + -2.7272451714E-04 3.3648246632E-02 6.8677164722E-02 1.0475332132E-01 + 1.4182135243E-01 1.7983133186E-01 2.1873867012E-01 2.5850381993E-01 + 2.9909179318E-01 3.4047149744E-01 3.8261490339E-01 4.2549605771E-01 + 4.6908995906E-01 5.1337131726E-01 5.5831321857E-01 6.0388572159E-01 + 6.5005441060E-01 6.9677893405E-01 7.4401155718E-01 7.9169575800E-01 + 8.3976489604E-01 8.8814098279E-01 9.3673358198E-01 9.8543886631E-01 + 1.0341388556E+00 1.0827008590E+00 1.1309771419E+00 1.1788048336E+00 + 1.2260060907E+00 1.2723885260E+00 1.3177459091E+00 1.3618591420E+00 + 1.4044975065E+00 1.4454201792E+00 1.4843780031E+00 1.5211155014E+00 + 1.5553731153E+00 1.5868896442E+00 1.6154048613E+00 1.6406622768E+00 + 1.6624120150E+00 1.6804137711E+00 1.6944398118E+00 1.7042779777E+00 + 1.7097346519E+00 1.7106376501E+00 1.7068389937E+00 1.6982175250E+00 + 1.6846813247E+00 1.6661698949E+00 1.6426560699E+00 1.6141476248E+00 + 1.5806885486E+00 1.5423599585E+00 1.4992806311E+00 1.4516071337E+00 + 1.3995335427E+00 1.3432907404E+00 1.2831452885E+00 1.2193978802E+00 + 1.1523813782E+00 1.0824584545E+00 1.0100188480E+00 9.3547626598E-01 + 8.5926495705E-01 7.8183599084E-01 7.0365328093E-01 6.2518939392E-01 + 5.4692118983E-01 4.6932534203E-01 3.9287378752E-01 3.1802915984E-01 + 2.4524025808E-01 1.7493760595E-01 1.0752915447E-01 4.3396180962E-02 + -1.7110564482E-02 -7.3674416406E-02 -1.2601600929E-01 -1.7389610844E-01 + -2.1711801829E-01 -2.5552953438E-01 -2.8902441067E-01 -3.1754331910E-01 + -3.4107428421E-01 -3.5965258193E-01 -3.7336009769E-01 -3.8232414565E-01 + -3.8671575717E-01 -3.8674745313E-01 -3.8267052093E-01 -3.7477182258E-01 + -3.6337017606E-01 -3.4881231007E-01 -3.3146936603E-01 -3.1173432758E-01 + -2.9001796191E-01 -2.6674387563E-01 -2.4234346140E-01 -2.1725075562E-01 + -1.9189727513E-01 -1.6670689321E-01 -1.4209081534E-01 -1.1844271658E-01 + -9.6134070634E-02 -7.5512447489E-02 -5.6896009163E-02 -4.0562171816E-02 + -2.6751134997E-02 -1.5662998265E-02 -7.4584461214E-03 -2.2258918167E-03 + -1.5020625501E-04 1.9733802732E-05 -6.1983593218E-06 8.7484058370E-07 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. + + + 4.2970402872E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 -4.9847272212E-01 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 -9.0447236304E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 -9.0292215386E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -2.4031694582E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 -2.3973409720E+00 + + + + + -5.8993088192E-13 1.5353281099E-02 3.0703549402E-02 4.6047786325E-02 + 6.1382961741E-02 7.6706028286E-02 9.2013915751E-02 1.0730352560E-01 + 1.2257172562E-01 1.3781534477E-01 1.5303116825E-01 1.6821593273E-01 + 1.8336632190E-01 1.9847896232E-01 2.1355041950E-01 2.2857719438E-01 + 2.4355572014E-01 2.5848235932E-01 2.7335340148E-01 2.8816506109E-01 + 3.0291347594E-01 3.1759470601E-01 3.3220473270E-01 3.4673945856E-01 + 3.6119470755E-01 3.7556622562E-01 3.8984968196E-01 4.0404067054E-01 + 4.1813471228E-01 4.3212725759E-01 4.4601368948E-01 4.5978932706E-01 + 4.7344942956E-01 4.8698920079E-01 5.0040379400E-01 5.1368831723E-01 + 5.2683783910E-01 5.3984739488E-01 5.5271199307E-01 5.6542662229E-01 + 5.7798625850E-01 5.9038587257E-01 6.0262043813E-01 6.1468493969E-01 + 6.2657438101E-01 6.3828379369E-01 6.4980824594E-01 6.6114285151E-01 + 6.7228277876E-01 6.8322325982E-01 6.9395959980E-01 7.0448718608E-01 + 7.1480149759E-01 7.2489811397E-01 7.3477272485E-01 7.4442113886E-01 + 7.5383929261E-01 7.6302325949E-01 7.7196925831E-01 7.8067366164E-01 + 7.8913300401E-01 7.9734398974E-01 8.0530350053E-01 8.1300860268E-01 + 8.2045655396E-01 8.2764481012E-01 8.3457103094E-01 8.4123308593E-01 + 8.4762905949E-01 8.5375725570E-01 8.5961620257E-01 8.6520465577E-01 + 8.7052160191E-01 8.7556626128E-01 8.8033809001E-01 8.8483678174E-01 + 8.8906226876E-01 8.9301472253E-01 8.9669455370E-01 9.0010241162E-01 + 9.0323918320E-01 9.0610599130E-01 9.0870419258E-01 9.1103537480E-01 + 9.1310135363E-01 9.1490416890E-01 9.1644608045E-01 9.1772956340E-01 + 9.1875730305E-01 9.1953218927E-01 9.2005731054E-01 9.2033594752E-01 + 9.2037156631E-01 9.2016781131E-01 9.1972849778E-01 9.1905760407E-01 + 9.1815926366E-01 9.1703775680E-01 9.1569750213E-01 9.1414304791E-01 + 9.1237906325E-01 9.1041032910E-01 9.0824172922E-01 9.0587824099E-01 + 9.0332492624E-01 9.0058692206E-01 8.9766943156E-01 8.9457771475E-01 + 8.9131707941E-01 8.8789287210E-01 8.8431046927E-01 8.8057526850E-01 + 8.7669267992E-01 8.7266811776E-01 8.6850699219E-01 8.6421470133E-01 + 8.5979662345E-01 8.5525810954E-01 8.5060447607E-01 8.4584099803E-01 + 8.4097290230E-01 8.3600536129E-01 8.3094348694E-01 8.2579232496E-01 + 8.2055684949E-01 8.1524195796E-01 8.0985246641E-01 8.0439310505E-01 + 7.9886851416E-01 7.9328324035E-01 7.8764173306E-01 7.8194834146E-01 + 7.7620731158E-01 7.7042278382E-01 7.6459879062E-01 7.5873925454E-01 + 7.5284798648E-01 7.4692868431E-01 7.4098493152E-01 7.3502019632E-01 + 7.2903783079E-01 7.2304107030E-01 7.1703303306E-01 7.1101671992E-01 + 7.0499501423E-01 6.9897068186E-01 6.9294637136E-01 6.8692461422E-01 + 6.8090782516E-01 6.7489830259E-01 6.6889822906E-01 6.6290967175E-01 + 6.5693458308E-01 6.5097480122E-01 6.4503205061E-01 6.3910794246E-01 + 6.3320397540E-01 6.2732153619E-01 6.2146190032E-01 6.1562623266E-01 + 6.0981558786E-01 6.0403091345E-01 5.9827307010E-01 5.9254287134E-01 + 5.8684109091E-01 5.8116846300E-01 5.7552568388E-01 5.6991341317E-01 + 5.6433227502E-01 5.5878285935E-01 5.5326572296E-01 5.4778139071E-01 + 5.4233035654E-01 5.3691308459E-01 5.3153001017E-01 5.2618154082E-01 + 5.2086805718E-01 5.1558991400E-01 5.1034744102E-01 5.0514094384E-01 + 4.9997070477E-01 4.9483698366E-01 4.8974001870E-01 4.8468002718E-01 + 4.7965720626E-01 4.7467173369E-01 4.6972376848E-01 4.6481345166E-01 + 4.5994090684E-01 4.5510624094E-01 4.5030954476E-01 4.4555089357E-01 + 4.4083034776E-01 4.3614795331E-01 4.3150374242E-01 4.2689773398E-01 + 4.2232993411E-01 4.1780033665E-01 4.1330892363E-01 4.0885566576E-01 + 4.0444052284E-01 4.0006344424E-01 3.9572436929E-01 3.9142322770E-01 + 3.8715993995E-01 3.8293441768E-01 3.7874656405E-01 3.7459627411E-01 + 3.7048343513E-01 3.6640792697E-01 3.6236962235E-01 3.5836838721E-01 + 3.5440408100E-01 3.5047655698E-01 3.4658566246E-01 3.4273123916E-01 + 3.3891312340E-01 3.3513114638E-01 3.3138513445E-01 3.2767490933E-01 + 3.2400028835E-01 3.2036108466E-01 3.1675710746E-01 3.1318816223E-01 + 3.0965405090E-01 3.0615457205E-01 3.0268952113E-01 2.9925869059E-01 + 2.9586187013E-01 2.9249884681E-01 2.8916940523E-01 2.8587332770E-01 + 2.8261039441E-01 2.7938038352E-01 2.7618307139E-01 2.7301823263E-01 + 2.6988564030E-01 2.6678506601E-01 2.6371628005E-01 2.6067905149E-01 + 2.5767314835E-01 2.5469833767E-01 2.5175438559E-01 2.4884105755E-01 + 2.4595811828E-01 2.4310533197E-01 2.4028246234E-01 2.3748927273E-01 + 2.3472552617E-01 2.3199098551E-01 2.2928541344E-01 2.2660857263E-01 + 2.2396022573E-01 2.2134013553E-01 2.1874806493E-01 2.1618377710E-01 + 2.1364703548E-01 2.1113760387E-01 2.0865524647E-01 2.0619972796E-01 + 2.0377081353E-01 2.0136826894E-01 1.9899186058E-01 1.9664135552E-01 + 1.9431652150E-01 1.9201712707E-01 1.8974294156E-01 1.8749373513E-01 + 1.8526927882E-01 1.8306934460E-01 1.8089370538E-01 1.7874213505E-01 + 1.7661440852E-01 1.7451030173E-01 1.7242959172E-01 1.7037205660E-01 + 1.6833747563E-01 1.6632562922E-01 1.6433629894E-01 1.6236926756E-01 + 1.6042431908E-01 1.5850123873E-01 1.5659981300E-01 1.5471982965E-01 + 1.5286107773E-01 1.5102334761E-01 1.4920643097E-01 1.4741012082E-01 + 1.4563421153E-01 1.4387849883E-01 1.4214277981E-01 1.4042685296E-01 + 1.3873051814E-01 1.3705357663E-01 1.3539583110E-01 1.3375708565E-01 + 1.3213714579E-01 1.3053581847E-01 1.2895291206E-01 1.2738823638E-01 + 1.2584160270E-01 1.2431282370E-01 1.2280171355E-01 1.2130808785E-01 + 1.1983176365E-01 1.1837255946E-01 1.1693029526E-01 1.1550479246E-01 + 1.1409587394E-01 1.1270336404E-01 1.1132708854E-01 1.0996687469E-01 + 1.0862255118E-01 1.0729394815E-01 1.0598089721E-01 1.0468323138E-01 + 1.0340078515E-01 1.0213339444E-01 1.0088089660E-01 9.9643130414E-02 + 9.8419936098E-02 9.7211155289E-02 9.6016631040E-02 9.4836207821E-02 + 9.3669731506E-02 9.2517049375E-02 9.1378010104E-02 9.0252463762E-02 + 8.9140261800E-02 8.8041257052E-02 8.6955303724E-02 8.5882257387E-02 + 8.4821974973E-02 8.3774314766E-02 8.2739136398E-02 8.1716300837E-02 + 8.0705670384E-02 7.9707108666E-02 7.8720480622E-02 7.7745652505E-02 + 7.6782491865E-02 7.5830867550E-02 7.4890649690E-02 7.3961709693E-02 + 7.3043920239E-02 7.2137155266E-02 7.1241289968E-02 7.0356200782E-02 + 6.9481765382E-02 6.8617862671E-02 6.7764372769E-02 6.6921177009E-02 + 6.6088157927E-02 6.5265199250E-02 6.4452185894E-02 6.3649003949E-02 + 6.2855540672E-02 6.2071684482E-02 6.1297324946E-02 6.0532352772E-02 + 5.9776659803E-02 5.9030139005E-02 5.8292684458E-02 5.7564191349E-02 + 5.6844555963E-02 5.6133675673E-02 5.5431448931E-02 5.4737775262E-02 + 5.4052555250E-02 5.3375690536E-02 5.2707083802E-02 5.2046638769E-02 + 5.1394260181E-02 5.0749853804E-02 5.0113326412E-02 4.9484585777E-02 + 4.8863540668E-02 4.8250100834E-02 4.7644176999E-02 4.7045680853E-02 + 4.6454525044E-02 4.5870623169E-02 4.5293889765E-02 4.4724240301E-02 + 4.4161591168E-02 4.3605859674E-02 4.3056964033E-02 4.2514823356E-02 + 4.1979357644E-02 4.1450487781E-02 4.0928135523E-02 4.0412223492E-02 + 3.9902675166E-02 3.9399414872E-02 3.8902367778E-02 3.8411459885E-02 + 3.7926618018E-02 3.7447769819E-02 3.6974843739E-02 3.6507769031E-02 + 3.6046475739E-02 3.5590894694E-02 3.5140957504E-02 3.4696596549E-02 + 3.4257744969E-02 3.3824336661E-02 3.3396306267E-02 3.2973589172E-02 + 3.2556121491E-02 3.2143840066E-02 3.1736682455E-02 3.1334586930E-02 + 3.0937492463E-02 3.0545338724E-02 3.0158066072E-02 2.9775615548E-02 + 2.9397928868E-02 2.9024948418E-02 2.8656617242E-02 2.8292879043E-02 + 2.7933678167E-02 2.7578959605E-02 2.7228668980E-02 2.6882752544E-02 + 2.6541157169E-02 2.6203830343E-02 2.5870720162E-02 2.5541775323E-02 + 2.5216945119E-02 2.4896179431E-02 2.4579428726E-02 2.4266644045E-02 + 2.3957776999E-02 2.3652779767E-02 2.3351605082E-02 2.3054206234E-02 + 2.2760537055E-02 2.2470551921E-02 2.2184205741E-02 2.1901453955E-02 + 2.1622252524E-02 2.1346557928E-02 2.1074327158E-02 2.0805517714E-02 + 2.0540087593E-02 2.0277995290E-02 2.0019199790E-02 1.9763660562E-02 + 1.9511337554E-02 1.9262191190E-02 1.9016182360E-02 1.8773272419E-02 + 1.8533423181E-02 1.8296596913E-02 1.8062756330E-02 1.7831864592E-02 + 1.7603885295E-02 1.7378782471E-02 1.7156520580E-02 1.6937064505E-02 + 1.6720379549E-02 1.6506431430E-02 1.6295186276E-02 1.6086610619E-02 + 1.5880671393E-02 1.5677335928E-02 1.5476571944E-02 1.5278347551E-02 + 1.5082631241E-02 1.4889391884E-02 1.4698598724E-02 1.4510221376E-02 + 1.4324229821E-02 1.4140594400E-02 1.3959285814E-02 1.3780275115E-02 + 1.3603533707E-02 1.3429033337E-02 1.3256746094E-02 1.3086644406E-02 + 1.2918701033E-02 1.2752889065E-02 1.2589181921E-02 1.2427553337E-02 + 1.2267977371E-02 1.2110428397E-02 1.1954881096E-02 1.1801310461E-02 + 1.1649691787E-02 1.1500000669E-02 1.1352213000E-02 1.1206304966E-02 + 1.1062253045E-02 1.0920033999E-02 1.0779624876E-02 1.0641003002E-02 + 1.0504145982E-02 1.0369031693E-02 1.0235638283E-02 1.0103944167E-02 + 9.9739280247E-03 9.8455687971E-03 9.7188456823E-03 9.5937381338E-03 + 9.4702258569E-03 9.3482888060E-03 9.2279071815E-03 9.1090614270E-03 + 8.9917322263E-03 8.8759005007E-03 8.7615474060E-03 8.6486543301E-03 + 8.5372028897E-03 8.4271749281E-03 8.3185525122E-03 8.2113179300E-03 + 8.1054536879E-03 8.0009425081E-03 7.8977673260E-03 7.7959112879E-03 + 7.6953577482E-03 7.5960902668E-03 7.4980926073E-03 7.4013487337E-03 + 7.3058428086E-03 7.2115591908E-03 7.1184824327E-03 7.0265972779E-03 + 6.9358886594E-03 6.8463416968E-03 6.7579416945E-03 6.6706741390E-03 + 6.5845246972E-03 6.4994792138E-03 6.4155237096E-03 6.3326443790E-03 + 6.2508275881E-03 6.1700598724E-03 6.0903279352E-03 6.0116186451E-03 + 5.9339190344E-03 5.8572162968E-03 5.7814977856E-03 5.7067510117E-03 + 5.6329636419E-03 5.5601234966E-03 5.4882185484E-03 5.4172369199E-03 + 5.3471668822E-03 5.2779968526E-03 5.2097153935E-03 5.1423112100E-03 + 5.0757731485E-03 5.0100901949E-03 4.9452514731E-03 4.8812462428E-03 + 4.8180638985E-03 4.7556939672E-03 4.6941261075E-03 4.6333501072E-03 + 4.5733558825E-03 4.5141334757E-03 4.4556730542E-03 4.3979649089E-03 + 4.3409994524E-03 4.2847672176E-03 4.2292588565E-03 4.1744651384E-03 + 4.1203769487E-03 4.0669852873E-03 4.0142812672E-03 3.9622561135E-03 + 3.9109011613E-03 3.8602078550E-03 3.8101677466E-03 3.7607724945E-03 + 3.7120138622E-03 3.6638837170E-03 3.6163740285E-03 3.5694768678E-03 + 3.5231844058E-03 3.4774889122E-03 3.4323827542E-03 3.3878583954E-03 + 3.3439083944E-03 3.3005254039E-03 3.2577021693E-03 3.2154315277E-03 + 3.1737064066E-03 3.1325198230E-03 3.0918648822E-03 3.0517347765E-03 + 3.0121227846E-03 2.9730222699E-03 2.9344266801E-03 2.8963295456E-03 + 2.8587244788E-03 2.8216051730E-03 2.7849654014E-03 2.7487990160E-03 + 2.7130999469E-03 2.6778622009E-03 2.6430798609E-03 2.6087470848E-03 + 2.5748581048E-03 2.5414072260E-03 2.5083888259E-03 2.4757973533E-03 + 2.4436273275E-03 2.4118733376E-03 2.3805300410E-03 2.3495921633E-03 + 2.3190544971E-03 2.2889119010E-03 2.2591592992E-03 2.2297916801E-03 + 2.2008040962E-03 2.1721916628E-03 2.1439495571E-03 2.1160730180E-03 + 2.0885573449E-03 2.0613978970E-03 2.0345900925E-03 2.0081294082E-03 + 1.9820113783E-03 1.9562315940E-03 1.9307857025E-03 1.9056694068E-03 + 1.8808784643E-03 1.8564086869E-03 1.8322559395E-03 1.8084161401E-03 + 1.7848852584E-03 1.7616593159E-03 1.7387343847E-03 1.7161065869E-03 + 1.6937720943E-03 1.6717271276E-03 1.6499679556E-03 1.6284908949E-03 + 1.6072923091E-03 1.5863686082E-03 1.5657162481E-03 1.5453317303E-03 + 1.5252116005E-03 1.5053524490E-03 1.4857509094E-03 1.4664036586E-03 + 1.4473074159E-03 1.4284589426E-03 1.4098550415E-03 1.3914925560E-03 + 1.3733683704E-03 1.3554794086E-03 1.3378226339E-03 1.3203950486E-03 + 1.3031936932E-03 1.2862156463E-03 1.2694580240E-03 1.2529179791E-03 + 1.2365927010E-03 1.2204794153E-03 1.2045753829E-03 1.1888779000E-03 + 1.1733842974E-03 1.1580919402E-03 1.1429982272E-03 1.1281005907E-03 + 1.1133964959E-03 1.0988834404E-03 1.0845589542E-03 1.0704205987E-03 + 1.0564659669E-03 1.0426926824E-03 1.0290983997E-03 1.0156808030E-03 + 1.0024376066E-03 9.8936655401E-04 9.7646541773E-04 9.6373199894E-04 + 9.5116412706E-04 9.3875965940E-04 9.2651648084E-04 9.1443250346E-04 + 9.0250566616E-04 8.9073393439E-04 8.7911529974E-04 8.6764777966E-04 + 8.5632941710E-04 8.4515828019E-04 8.3413246193E-04 8.2325007987E-04 + 8.1250927578E-04 8.0190821536E-04 7.9144508794E-04 7.8111810617E-04 + 7.7092550569E-04 7.6086554489E-04 7.5093650461E-04 7.4113668780E-04 + 7.3146441933E-04 7.2191804560E-04 7.1249593436E-04 7.0319647440E-04 + 6.9401807527E-04 6.8495916702E-04 6.7601819996E-04 6.6719364437E-04 + 6.5848399026E-04 6.4988774714E-04 6.4140344371E-04 6.3302962769E-04 + 6.2476486551E-04 6.1660774211E-04 6.0855686070E-04 6.0061084251E-04 + 5.9276832656E-04 5.8502796946E-04 5.7738844514E-04 5.6984844468E-04 + 5.6240667604E-04 5.5506186388E-04 5.4781274933E-04 5.4065808978E-04 + 5.3359665867E-04 5.2662724530E-04 5.1974865460E-04 5.1295970694E-04 + 5.0625923797E-04 4.9964609834E-04 4.9311915360E-04 4.8667728393E-04 + 4.8031938402E-04 4.7404436284E-04 4.6785114345E-04 4.6173866286E-04 + 4.5570587184E-04 4.4975173469E-04 4.4387522914E-04 4.3807534615E-04 + 4.3235108971E-04 4.2670147672E-04 4.2112553678E-04 4.1562231208E-04 + 4.1019085718E-04 4.0483023889E-04 3.9953953610E-04 3.9431783962E-04 + 3.8916425203E-04 3.8407788755E-04 3.7905787184E-04 3.7410334191E-04 + 3.6921344594E-04 3.6438734313E-04 3.5962420359E-04 3.5492320817E-04 + 3.5028354834E-04 3.4570442604E-04 3.4118505356E-04 3.3672465339E-04 + 3.3232245809E-04 3.2797771020E-04 3.2368966203E-04 3.1945757562E-04 + 3.1528072257E-04 3.1115838391E-04 3.0708985000E-04 3.0307442041E-04 + 2.9911140378E-04 2.9520011774E-04 2.9133988873E-04 2.8753005197E-04 + 2.8376995127E-04 2.8005893897E-04 2.7639637582E-04 2.7278163085E-04 + 2.6921408128E-04 2.6569311241E-04 2.6221811752E-04 2.5878849777E-04 + 2.5540366208E-04 2.5206302706E-04 2.4876601688E-04 2.4551206319E-04 + 2.4230060501E-04 2.3913108866E-04 2.3600296764E-04 2.3291570254E-04 + 2.2986876098E-04 2.2686161745E-04 2.2389375332E-04 2.2096465665E-04 + 2.1807382217E-04 2.1522075119E-04 2.1240495146E-04 2.0962593717E-04 + 2.0688322877E-04 2.0417635300E-04 2.0150484270E-04 1.9886823682E-04 + 1.9626608026E-04 1.9369792388E-04 1.9116332435E-04 1.8866184410E-04 + 1.8619305127E-04 1.8375651960E-04 1.8135182837E-04 1.7897856234E-04 + 1.7663631166E-04 1.7432467180E-04 1.7204324352E-04 1.6979163276E-04 + 1.6756945056E-04 1.6537631305E-04 1.6321184135E-04 1.6107566149E-04 + 1.5896740437E-04 1.5688670572E-04 1.5483320596E-04 1.5280655023E-04 + 1.5080638827E-04 1.4883237438E-04 1.4688416736E-04 1.4496143044E-04 + 1.4306383125E-04 1.4119104173E-04 1.3934273811E-04 1.3751860080E-04 + 1.3571831441E-04 1.3394156762E-04 1.3218805319E-04 1.3045746787E-04 + 1.2874951236E-04 1.2706389124E-04 1.2540031297E-04 1.2375848977E-04 + 1.2213813763E-04 1.2053897625E-04 1.1896072894E-04 1.1740312265E-04 + 1.1586588787E-04 1.1434875861E-04 1.1285147233E-04 1.1137376992E-04 + 1.0991539565E-04 1.0847609712E-04 1.0705562520E-04 1.0565373403E-04 + 1.0427018094E-04 1.0290472643E-04 1.0155713412E-04 1.0022717069E-04 + 9.8914605888E-05 9.7619212452E-05 9.6340766081E-05 9.5079045397E-05 + 9.3833831909E-05 9.2604909975E-05 9.1392066761E-05 9.0195092209E-05 + 8.9013778999E-05 8.7847922515E-05 8.6697320808E-05 8.5561774560E-05 + 8.4441087054E-05 8.3335064139E-05 8.2243514192E-05 8.1166248092E-05 + 8.0103079182E-05 7.9053823241E-05 7.8018298450E-05 7.6996325361E-05 + 7.5987726865E-05 7.4992328167E-05 7.4009956747E-05 7.3040442340E-05 + 7.2083616898E-05 7.1139314568E-05 7.0207371660E-05 6.9287626619E-05 + 6.8379919998E-05 6.7484094429E-05 6.6599994600E-05 6.5727467224E-05 + 6.4866361014E-05 6.4016526656E-05 6.3177816787E-05 6.2350085966E-05 + 6.1533190649E-05 6.0726989167E-05 5.9931341698E-05 5.9146110247E-05 + 5.8371158619E-05 5.7606352397E-05 5.6851558917E-05 5.6106647251E-05 + 5.5371488175E-05 5.4645954154E-05 5.3929919320E-05 5.3223259444E-05 + 5.2525851923E-05 5.1837575753E-05 5.1158311509E-05 5.0487941326E-05 + 4.9826348879E-05 4.9173419360E-05 4.8529039462E-05 4.7893097357E-05 + 4.7265482676E-05 4.6646086495E-05 4.6034801307E-05 4.5431521015E-05 + 4.4836140903E-05 4.4248557626E-05 4.3668669185E-05 4.3096374918E-05 + 4.2531575475E-05 4.1974172804E-05 4.1424070133E-05 4.0881171957E-05 + 4.0345384016E-05 3.9816613282E-05 3.9294767944E-05 3.8779757387E-05 + 3.8271492185E-05 3.7769884075E-05 + + + 1.7042936507E-11 3.9908156457E-04 1.5954913262E-03 3.5867268897E-03 + 6.3686256009E-03 9.9353765231E-03 1.4279537144E-02 1.9392054749E-02 + 2.5262292389E-02 3.1878059339E-02 3.9225645948E-02 4.7289862745E-02 + 5.6054083661E-02 6.5500293218E-02 7.5609137510E-02 8.6359978784E-02 + 9.7730953454E-02 1.0969903330E-01 1.2224008970E-01 1.3532896054E-01 + 1.4893951978E-01 1.6304474920E-01 1.7761681224E-01 1.9262712959E-01 + 2.0804645637E-01 2.2384496047E-01 2.3999230196E-01 2.5645771327E-01 + 2.7321007970E-01 2.9021802026E-01 3.0744996844E-01 3.2487425252E-01 + 3.4245917551E-01 3.6017309408E-01 3.7798449655E-01 3.9586207944E-01 + 4.1377482261E-01 4.3169206253E-01 4.4958356364E-01 4.6741958748E-01 + 4.8517095944E-01 5.0280913306E-01 5.2030625144E-01 5.3763520588E-01 + 5.5476969147E-01 5.7168425950E-01 5.8835436660E-01 6.0475642047E-01 + 6.2086782219E-01 6.3666700491E-01 6.5213346893E-01 6.6724781317E-01 + 6.8199176282E-01 6.9634819334E-01 7.1030115069E-01 7.2383586782E-01 + 7.3693877741E-01 7.4959752095E-01 7.6180095410E-01 7.7353914854E-01 + 7.8480339018E-01 7.9558617391E-01 8.0588119506E-01 8.1568333743E-01 + 8.2498865823E-01 8.3379436991E-01 8.4209881904E-01 8.4990146231E-01 + 8.5720283996E-01 8.6400454649E-01 8.7030919910E-01 8.7612040382E-01 + 8.8144271949E-01 8.8628161990E-01 8.9064345407E-01 8.9453540493E-01 + 8.9796544654E-01 9.0094230010E-01 9.0347538873E-01 9.0557479137E-01 + 9.0725119593E-01 9.0851585174E-01 9.0938052161E-01 9.0985743359E-01 + 9.0995923264E-01 9.0969893223E-01 9.0908986626E-01 9.0814564117E-01 + 9.0688008869E-01 9.0530721903E-01 9.0344117501E-01 9.0129618691E-01 + 8.9888652845E-01 8.9622647385E-01 8.9333025613E-01 8.9021202681E-01 + 8.8688581695E-01 8.8336549988E-01 8.7966475545E-01 8.7579703604E-01 + 8.7177553433E-01 8.6761315294E-01 8.6332247596E-01 8.5891574247E-01 + 8.5440482201E-01 8.4980119210E-01 8.4511591791E-01 8.4035963388E-01 + 8.3554252756E-01 8.3067432552E-01 8.2576428132E-01 8.2082116569E-01 + 8.1585325872E-01 8.1086834414E-01 8.0587370566E-01 8.0087612528E-01 + 7.9588188365E-01 7.9089676223E-01 7.8592604746E-01 7.8097453664E-01 + 7.7604654558E-01 7.7114591800E-01 7.6627603644E-01 7.6143983476E-01 + 7.5663981211E-01 7.5187804819E-01 7.4715621982E-01 7.4247561872E-01 + 7.3783717028E-01 7.3324145345E-01 7.2868872132E-01 7.2417892267E-01 + 7.1971172401E-01 7.1528653231E-01 7.1090251811E-01 7.0655863898E-01 + 7.0225366322E-01 6.9798619366E-01 6.9375469151E-01 6.8955750001E-01 + 6.8539286804E-01 6.8125897325E-01 6.7715394485E-01 6.7307588589E-01 + 6.6902289493E-01 6.6499308690E-01 6.6098461330E-01 6.5699568137E-01 + 6.5302457241E-01 6.4906965890E-01 6.4512942061E-01 6.4120245943E-01 + 6.3728751297E-01 6.3338346676E-01 6.2948936514E-01 6.2560442056E-01 + 6.2172802158E-01 6.1785973948E-01 6.1399933315E-01 6.1014675239E-01 + 6.0630213997E-01 6.0246582376E-01 5.9863825281E-01 5.9481987478E-01 + 5.9101111788E-01 5.8721239451E-01 5.8342410073E-01 5.7964661683E-01 + 5.7588030786E-01 5.7212552409E-01 5.6838260148E-01 5.6465186211E-01 + 5.6093361465E-01 5.5722815474E-01 5.5353576545E-01 5.4985671761E-01 + 5.4619127026E-01 5.4253967098E-01 5.3890215626E-01 5.3527895186E-01 + 5.3167027314E-01 5.2807632539E-01 5.2449730415E-01 5.2093339552E-01 + 5.1738477645E-01 5.1385161505E-01 5.1033407083E-01 5.0683229505E-01 + 5.0334643088E-01 4.9987661375E-01 4.9642297154E-01 4.9298562484E-01 + 4.8956468719E-01 4.8616026529E-01 4.8277245923E-01 4.7940136269E-01 + 4.7604706317E-01 4.7270964216E-01 4.6938917535E-01 4.6608573282E-01 + 4.6279937921E-01 4.5953017390E-01 4.5627817118E-01 4.5304342043E-01 + 4.4982596626E-01 4.4662584865E-01 4.4344310317E-01 4.4027776104E-01 + 4.3712984932E-01 4.3399939106E-01 4.3088640538E-01 4.2779090765E-01 + 4.2471290959E-01 4.2165241940E-01 4.1860944185E-01 4.1558397847E-01 + 4.1257602755E-01 4.0958558435E-01 4.0661264114E-01 4.0365718732E-01 + 4.0071920953E-01 3.9779869172E-01 3.9489561526E-01 3.9200995903E-01 + 3.8914169950E-01 3.8629081080E-01 3.8345726484E-01 3.8064103136E-01 + 3.7784207799E-01 3.7506037037E-01 3.7229587219E-01 3.6954854527E-01 + 3.6681834962E-01 3.6410524352E-01 3.6140918357E-01 3.5873012476E-01 + 3.5606802053E-01 3.5342282282E-01 3.5079448213E-01 3.4818294759E-01 + 3.4558816699E-01 3.4301008684E-01 3.4044865243E-01 3.3790380787E-01 + 3.3537549614E-01 3.3286365913E-01 3.3036823767E-01 3.2788917164E-01 + 3.2542639990E-01 3.2297986045E-01 3.2054949038E-01 3.1813522596E-01 + 3.1573700264E-01 3.1335475512E-01 3.1098841736E-01 3.0863792263E-01 + 3.0630320354E-01 3.0398419205E-01 3.0168081954E-01 2.9939301680E-01 + 2.9712071411E-01 2.9486384120E-01 2.9262232733E-01 2.9039610130E-01 + 2.8818509150E-01 2.8598922586E-01 2.8380843198E-01 2.8164263706E-01 + 2.7949176799E-01 2.7735575134E-01 2.7523451337E-01 2.7312798008E-01 + 2.7103607722E-01 2.6895873032E-01 2.6689586466E-01 2.6484740536E-01 + 2.6281327735E-01 2.6079340540E-01 2.5878771415E-01 2.5679612809E-01 + 2.5481857163E-01 2.5285496907E-01 2.5090524462E-01 2.4896932245E-01 + 2.4704712666E-01 2.4513858132E-01 2.4324361048E-01 2.4136213818E-01 + 2.3949408845E-01 2.3763938534E-01 2.3579795293E-01 2.3396971534E-01 + 2.3215459671E-01 2.3035252128E-01 2.2856341333E-01 2.2678719723E-01 + 2.2502379743E-01 2.2327313848E-01 2.2153514505E-01 2.1980974190E-01 + 2.1809685394E-01 2.1639640620E-01 2.1470832384E-01 2.1303253219E-01 + 2.1136895671E-01 2.0971752306E-01 2.0807815702E-01 2.0645078458E-01 + 2.0483533191E-01 2.0323172536E-01 2.0163989147E-01 2.0005975699E-01 + 1.9849124889E-01 1.9693429432E-01 1.9538882067E-01 1.9385475554E-01 + 1.9233202676E-01 1.9082056241E-01 1.8932029078E-01 1.8783114041E-01 + 1.8635304009E-01 1.8488591885E-01 1.8342970598E-01 1.8198433103E-01 + 1.8054972379E-01 1.7912581434E-01 1.7771253301E-01 1.7630981041E-01 + 1.7491757741E-01 1.7353576516E-01 1.7216430511E-01 1.7080312895E-01 + 1.6945216870E-01 1.6811135664E-01 1.6678062533E-01 1.6545990765E-01 + 1.6414913675E-01 1.6284824608E-01 1.6155716939E-01 1.6027584074E-01 + 1.5900419447E-01 1.5774216523E-01 1.5648968799E-01 1.5524669799E-01 + 1.5401313081E-01 1.5278892232E-01 1.5157400870E-01 1.5036832646E-01 + 1.4917181239E-01 1.4798440362E-01 1.4680603757E-01 1.4563665200E-01 + 1.4447618495E-01 1.4332457481E-01 1.4218176027E-01 1.4104768033E-01 + 1.3992227432E-01 1.3880548188E-01 1.3769724297E-01 1.3659749788E-01 + 1.3550618719E-01 1.3442325183E-01 1.3334863303E-01 1.3228227235E-01 + 1.3122411165E-01 1.3017409313E-01 1.2913215930E-01 1.2809825300E-01 + 1.2707231737E-01 1.2605429588E-01 1.2504413231E-01 1.2404177078E-01 + 1.2304715570E-01 1.2206023182E-01 1.2108094420E-01 1.2010923821E-01 + 1.1914505955E-01 1.1818835421E-01 1.1723906854E-01 1.1629714916E-01 + 1.1536254303E-01 1.1443519742E-01 1.1351505990E-01 1.1260207839E-01 + 1.1169620107E-01 1.1079737647E-01 1.0990555341E-01 1.0902068104E-01 + 1.0814270880E-01 1.0727158645E-01 1.0640726405E-01 1.0554969197E-01 + 1.0469882088E-01 1.0385460178E-01 1.0301698593E-01 1.0218592494E-01 + 1.0136137069E-01 1.0054327538E-01 9.9731591487E-02 9.8926271815E-02 + 9.8127269450E-02 9.7334537780E-02 9.6548030488E-02 9.5767701554E-02 + 9.4993505249E-02 9.4225396140E-02 9.3463329085E-02 9.2707259234E-02 + 9.1957142024E-02 9.1212933183E-02 9.0474588726E-02 8.9742064955E-02 + 8.9015318456E-02 8.8294306100E-02 8.7578985040E-02 8.6869312712E-02 + 8.6165246831E-02 8.5466745393E-02 8.4773766670E-02 8.4086269213E-02 + 8.3404211848E-02 8.2727553673E-02 8.2056254064E-02 8.1390272665E-02 + 8.0729569392E-02 8.0074104431E-02 7.9423838235E-02 7.8778731524E-02 + 7.8138745285E-02 7.7503840768E-02 7.6873979488E-02 7.6249123218E-02 + 7.5629233996E-02 7.5014274117E-02 7.4404206133E-02 7.3798992854E-02 + 7.3198597346E-02 7.2602982928E-02 7.2012113172E-02 7.1425951900E-02 + 7.0844463188E-02 7.0267611357E-02 6.9695360977E-02 6.9127676864E-02 + 6.8564524080E-02 6.8005867930E-02 6.7451673960E-02 6.6901907958E-02 + 6.6356535953E-02 6.5815524210E-02 6.5278839233E-02 6.4746447760E-02 + 6.4218316766E-02 6.3694413457E-02 6.3174705271E-02 6.2659159877E-02 + 6.2147745175E-02 6.1640429289E-02 6.1137180573E-02 6.0637967605E-02 + 6.0142759187E-02 5.9651524344E-02 5.9164232324E-02 5.8680852592E-02 + 5.8201354834E-02 5.7725708953E-02 5.7253885069E-02 5.6785853517E-02 + 5.6321584844E-02 5.5861049811E-02 5.5404219391E-02 5.4951064765E-02 + 5.4501557325E-02 5.4055668667E-02 5.3613370597E-02 5.3174635123E-02 + 5.2739434458E-02 5.2307741018E-02 5.1879527418E-02 5.1454766475E-02 + 5.1033431205E-02 5.0615494819E-02 5.0200930726E-02 4.9789712530E-02 + 4.9381814028E-02 4.8977209209E-02 4.8575872257E-02 4.8177777541E-02 + 4.7782899623E-02 4.7391213250E-02 4.7002693356E-02 4.6617315063E-02 + 4.6235053674E-02 4.5855884676E-02 4.5479783739E-02 4.5106726711E-02 + 4.4736689621E-02 4.4369648678E-02 4.4005580265E-02 4.3644460942E-02 + 4.3286267445E-02 4.2930976683E-02 4.2578565737E-02 4.2229011860E-02 + 4.1882292475E-02 4.1538385174E-02 4.1197267717E-02 4.0858918032E-02 + 4.0523314211E-02 4.0190434512E-02 3.9860257357E-02 3.9532761329E-02 + 3.9207925173E-02 3.8885727795E-02 3.8566148259E-02 3.8249165788E-02 + 3.7934759763E-02 3.7622909718E-02 3.7313595346E-02 3.7006796490E-02 + 3.6702493150E-02 3.6400665474E-02 3.6101293762E-02 3.5804358465E-02 + 3.5509840182E-02 3.5217719659E-02 3.4927977789E-02 3.4640595612E-02 + 3.4355554310E-02 3.4072835211E-02 3.3792419786E-02 3.3514289645E-02 + 3.3238426540E-02 3.2964812365E-02 3.2693429149E-02 3.2424259061E-02 + 3.2157284406E-02 3.1892487625E-02 3.1629851295E-02 3.1369358125E-02 + 3.1110990958E-02 3.0854732769E-02 3.0600566664E-02 3.0348475880E-02 + 3.0098443782E-02 2.9850453864E-02 2.9604489748E-02 2.9360535181E-02 + 2.9118574037E-02 2.8878590313E-02 2.8640568133E-02 2.8404491742E-02 + 2.8170345506E-02 2.7938113914E-02 2.7707781574E-02 2.7479333215E-02 + 2.7252753683E-02 2.7028027944E-02 2.6805141078E-02 2.6584078282E-02 + 2.6364824871E-02 2.6147366269E-02 2.5931688020E-02 2.5717775775E-02 + 2.5505615299E-02 2.5295192470E-02 2.5086493274E-02 2.4879503807E-02 + 2.4674210274E-02 2.4470598987E-02 2.4268656366E-02 2.4068368938E-02 + 2.3869723334E-02 2.3672706290E-02 2.3477304646E-02 2.3283505347E-02 + 2.3091295439E-02 2.2900662068E-02 2.2711592484E-02 2.2524074036E-02 + 2.2338094171E-02 2.2153640438E-02 2.1970700480E-02 2.1789262042E-02 + 2.1609312960E-02 2.1430841171E-02 2.1253834704E-02 2.1078281683E-02 + 2.0904170326E-02 2.0731488944E-02 2.0560225941E-02 2.0390369811E-02 + 2.0221909140E-02 2.0054832605E-02 1.9889128970E-02 1.9724787091E-02 + 1.9561795910E-02 1.9400144458E-02 1.9239821852E-02 1.9080817295E-02 + 1.8923120077E-02 1.8766719572E-02 1.8611605238E-02 1.8457766617E-02 + 1.8305193336E-02 1.8153875100E-02 1.8003801700E-02 1.7854963007E-02 + 1.7707348971E-02 1.7560949624E-02 1.7415755076E-02 1.7271755517E-02 + 1.7128941213E-02 1.6987302510E-02 1.6846829830E-02 1.6707513671E-02 + 1.6569344607E-02 1.6432313288E-02 1.6296410437E-02 1.6161626852E-02 + 1.6027953405E-02 1.5895381041E-02 1.5763900775E-02 1.5633503698E-02 + 1.5504180968E-02 1.5375923817E-02 1.5248723544E-02 1.5122571522E-02 + 1.4997459189E-02 1.4873378054E-02 1.4750319692E-02 1.4628275749E-02 + 1.4507237933E-02 1.4387198023E-02 1.4268147862E-02 1.4150079359E-02 + 1.4032984487E-02 1.3916855284E-02 1.3801683853E-02 1.3687462359E-02 + 1.3574183030E-02 1.3461838158E-02 1.3350420095E-02 1.3239921256E-02 + 1.3130334117E-02 1.3021651214E-02 1.2913865143E-02 1.2806968559E-02 + 1.2700954178E-02 1.2595814774E-02 1.2491543178E-02 1.2388132280E-02 + 1.2285575028E-02 1.2183864424E-02 1.2082993531E-02 1.1982955463E-02 + 1.1883743394E-02 1.1785350550E-02 1.1687770213E-02 1.1590995719E-02 + 1.1495020459E-02 1.1399837875E-02 1.1305441463E-02 1.1211824774E-02 + 1.1118981408E-02 1.1026905018E-02 1.0935589308E-02 1.0845028034E-02 + 1.0755215002E-02 1.0666144066E-02 1.0577809134E-02 1.0490204161E-02 + 1.0403323149E-02 1.0317160153E-02 1.0231709273E-02 1.0146964658E-02 + 1.0062920504E-02 9.9795710545E-03 9.8969105993E-03 9.8149334748E-03 + 9.7336340634E-03 9.6530067932E-03 9.5730461371E-03 9.4937466135E-03 + 9.4151027849E-03 9.3371092581E-03 9.2597606839E-03 9.1830517562E-03 + 9.1069772126E-03 9.0315318329E-03 8.9567104398E-03 8.8825078980E-03 + 8.8089191138E-03 8.7359390353E-03 8.6635626515E-03 8.5917849922E-03 + 8.5206011277E-03 8.4500061686E-03 8.3799952650E-03 8.3105636070E-03 + 8.2417064233E-03 8.1734189821E-03 8.1056965897E-03 8.0385345909E-03 + 7.9719283685E-03 7.9058733429E-03 7.8403649717E-03 7.7753987499E-03 + 7.7109702089E-03 7.6470749169E-03 7.5837084781E-03 7.5208665325E-03 + 7.4585447560E-03 7.3967388596E-03 7.3354445894E-03 7.2746577262E-03 + 7.2143740853E-03 7.1545895163E-03 7.0952999027E-03 7.0365011614E-03 + 6.9781892430E-03 6.9203601312E-03 6.8630098424E-03 6.8061344255E-03 + 6.7497299621E-03 6.6937925655E-03 6.6383183810E-03 6.5833035854E-03 + 6.5287443868E-03 6.4746370243E-03 6.4209777679E-03 6.3677629180E-03 + 6.3149888055E-03 6.2626517913E-03 6.2107482659E-03 6.1592746496E-03 + 6.1082273921E-03 6.0576029720E-03 6.0073978969E-03 5.9576087029E-03 + 5.9082319548E-03 5.8592642451E-03 5.8107021947E-03 5.7625424520E-03 + 5.7147816929E-03 5.6674166206E-03 5.6204439655E-03 5.5738604845E-03 + 5.5276629614E-03 5.4818482064E-03 5.4364130558E-03 5.3913543718E-03 + 5.3466690425E-03 5.3023539815E-03 5.2584061278E-03 5.2148224455E-03 + 5.1715999236E-03 5.1287355761E-03 5.0862264411E-03 5.0440695815E-03 + 5.0022620839E-03 4.9608010593E-03 4.9196836421E-03 4.8789069904E-03 + 4.8384682857E-03 4.7983647326E-03 4.7585935588E-03 4.7191520147E-03 + 4.6800373734E-03 4.6412469303E-03 4.6027780032E-03 4.5646279319E-03 + 4.5267940782E-03 4.4892738255E-03 4.4520645788E-03 4.4151637643E-03 + 4.3785688297E-03 4.3422772434E-03 4.3062864949E-03 4.2705940942E-03 + 4.2351975719E-03 4.2000944790E-03 4.1652823864E-03 4.1307588854E-03 + 4.0965215869E-03 4.0625681215E-03 4.0288961393E-03 3.9955033100E-03 + 3.9623873222E-03 3.9295458838E-03 3.8969767214E-03 3.8646775804E-03 + 3.8326462250E-03 3.8008804376E-03 3.7693780188E-03 3.7381367876E-03 + 3.7071545809E-03 3.6764292534E-03 3.6459586775E-03 3.6157407432E-03 + 3.5857733578E-03 3.5560544460E-03 3.5265819495E-03 3.4973538272E-03 + 3.4683680546E-03 3.4396226240E-03 3.4111155444E-03 3.3828448410E-03 + 3.3548085555E-03 3.3270047456E-03 3.2994314852E-03 3.2720868640E-03 + 3.2449689875E-03 3.2180759769E-03 3.1914059688E-03 3.1649571154E-03 + 3.1387275839E-03 3.1127155568E-03 3.0869192316E-03 3.0613368206E-03 + 3.0359665511E-03 3.0108066647E-03 2.9858554179E-03 2.9611110813E-03 + 2.9365719399E-03 2.9122362931E-03 2.8881024539E-03 2.8641687497E-03 + 2.8404335214E-03 2.8168951238E-03 2.7935519252E-03 2.7704023075E-03 + 2.7474446659E-03 2.7246774088E-03 2.7020989579E-03 2.6797077480E-03 + 2.6575022265E-03 2.6354808541E-03 2.6136421040E-03 2.5919844619E-03 + 2.5705064263E-03 2.5492065079E-03 2.5280832299E-03 2.5071351276E-03 + 2.4863607485E-03 2.4657586520E-03 2.4453274094E-03 2.4250656041E-03 + 2.4049718310E-03 2.3850446965E-03 2.3652828189E-03 2.3456848276E-03 + 2.3262493636E-03 2.3069750789E-03 2.2878606369E-03 2.2689047119E-03 + 2.2501059891E-03 2.2314631650E-03 2.2129749463E-03 2.1946400509E-03 + 2.1764572071E-03 2.1584251537E-03 2.1405426401E-03 2.1228084259E-03 + 2.1052212810E-03 2.0877799855E-03 2.0704833298E-03 2.0533301139E-03 + 2.0363191482E-03 2.0194492525E-03 2.0027192568E-03 1.9861280006E-03 + 1.9696743329E-03 1.9533571124E-03 1.9371752073E-03 1.9211274949E-03 + 1.9052128622E-03 1.8894302051E-03 1.8737784287E-03 1.8582564473E-03 + 1.8428631841E-03 1.8275975713E-03 1.8124585498E-03 1.7974450695E-03 + 1.7825560888E-03 1.7677905749E-03 1.7531475034E-03 1.7386258584E-03 + 1.7242246326E-03 1.7099428269E-03 1.6957794505E-03 1.6817335208E-03 + 1.6678040634E-03 1.6539901120E-03 1.6402907082E-03 1.6267049016E-03 + 1.6132317498E-03 1.5998703180E-03 1.5866196792E-03 1.5734789143E-03 + 1.5604471115E-03 1.5475233669E-03 1.5347067837E-03 1.5219964729E-03 + 1.5093915527E-03 1.4968911487E-03 1.4844943935E-03 1.4722004272E-03 + 1.4600083969E-03 1.4479174569E-03 1.4359267682E-03 1.4240354991E-03 + 1.4122428246E-03 1.4005479266E-03 1.3889499938E-03 1.3774482216E-03 + 1.3660418122E-03 1.3547299741E-03 1.3435119228E-03 1.3323868799E-03 + 1.3213540738E-03 1.3104127390E-03 1.2995621165E-03 1.2888014537E-03 + 1.2781300041E-03 1.2675470273E-03 + + + 1.7096386806E-11 3.9988325445E-04 1.5986958735E-03 3.5939288324E-03 + 6.3814084514E-03 9.9553084073E-03 1.4308166490E-02 1.9430906038E-02 + 2.5312861983E-02 3.1941811400E-02 3.9304008455E-02 4.7384223632E-02 + 5.6165787077E-02 6.5630635929E-02 7.5759365447E-02 8.6531283757E-02 + 9.7924470026E-02 1.0991583585E-01 1.2248118967E-01 1.3559530387E-01 + 1.4923198456E-01 1.6336414353E-01 1.7796387227E-01 1.9300251785E-01 + 2.0845076022E-01 2.2427869089E-01 2.4045589249E-01 2.5695151921E-01 + 2.7373437753E-01 2.9077300731E-01 3.0803576275E-01 3.2549089300E-01 + 3.4310662223E-01 3.6085122888E-01 3.7869312378E-01 3.9660092699E-01 + 4.1454354310E-01 4.3249023474E-01 4.5041069408E-01 4.6827511219E-01 + 4.8605424603E-01 5.0371948276E-01 5.2124290147E-01 5.3859733193E-01 + 5.5575641028E-01 5.7269463163E-01 5.8938739928E-01 6.0581107064E-01 + 6.2194299953E-01 6.3776157507E-01 6.5324625678E-01 6.6837760613E-01 + 6.8313731427E-01 6.9750822607E-01 7.1147436035E-01 7.2502092645E-01 + 7.3813433694E-01 7.5080221673E-01 7.6301340843E-01 7.7475797413E-01 + 7.8602719362E-01 7.9681355912E-01 8.0711076662E-01 8.1691370394E-01 + 8.2621843553E-01 8.3502218427E-01 8.4332331020E-01 8.5112128654E-01 + 8.5841667289E-01 8.6521108592E-01 8.7150716769E-01 8.7730855158E-01 + 8.8261982626E-01 8.8744649762E-01 8.9179494894E-01 8.9567239940E-01 + 8.9908686125E-01 9.0204709555E-01 9.0456256687E-01 9.0664339708E-01 + 9.0830031824E-01 9.0954462500E-01 9.1038812643E-01 9.1084309773E-01 + 9.1092223160E-01 9.1063858985E-01 9.1000555504E-01 9.0903678254E-01 + 9.0774615305E-01 9.0614772575E-01 9.0425569219E-01 9.0208433108E-01 + 8.9964796409E-01 8.9696091284E-01 8.9403745702E-01 8.9089179399E-01 + 8.8753799975E-01 8.8398999153E-01 8.8026149194E-01 8.7636599487E-01 + 8.7231673323E-01 8.6812664847E-01 8.6380836204E-01 8.5937414882E-01 + 8.5483591258E-01 8.5020516342E-01 8.4549299737E-01 8.4071007802E-01 + 8.3586662028E-01 8.3097237627E-01 8.2603662333E-01 8.2106815409E-01 + 8.1607526873E-01 8.1106576922E-01 8.0604695569E-01 8.0102562476E-01 + 7.9600806985E-01 7.9100008349E-01 7.8600696140E-01 7.8103350845E-01 + 7.7608404641E-01 7.7116242329E-01 7.6627202439E-01 7.6141578483E-01 + 7.5659620355E-01 7.5181535865E-01 7.4707492409E-01 7.4237618744E-01 + 7.3772006880E-01 7.3310714073E-01 7.2853764894E-01 7.2401153386E-01 + 7.1952845287E-01 7.1508780301E-01 7.1068874423E-01 7.0633022292E-01 + 7.0201099570E-01 6.9772965331E-01 6.9348464453E-01 6.8927429996E-01 + 6.8509685564E-01 6.8095047633E-01 6.7683327835E-01 6.7274335195E-01 + 6.6867878300E-01 6.6463767403E-01 6.6061816440E-01 6.5661844961E-01 + 6.5263679960E-01 6.4867157604E-01 6.4472124837E-01 6.4078440879E-01 + 6.3685978582E-01 6.3294625663E-01 6.2904285786E-01 6.2514879503E-01 + 6.2126345058E-01 6.1738639040E-01 6.1351736884E-01 6.0965633198E-01 + 6.0580341970E-01 6.0195895797E-01 5.9812339579E-01 5.9429718019E-01 + 5.9048073783E-01 5.8667447955E-01 5.8287879980E-01 5.7909407731E-01 + 5.7532067556E-01 5.7155894325E-01 5.6780921477E-01 5.6407181065E-01 + 5.6034703801E-01 5.5663519096E-01 5.5293655099E-01 5.4925138743E-01 + 5.4557995779E-01 5.4192250812E-01 5.3827927340E-01 5.3465047790E-01 + 5.3103633548E-01 5.2743704994E-01 5.2385281534E-01 5.2028381631E-01 + 5.1673022835E-01 5.1319221811E-01 5.0966994368E-01 5.0616355486E-01 + 5.0267319341E-01 4.9919899336E-01 4.9574108117E-01 4.9229957605E-01 + 4.8887459015E-01 4.8546622881E-01 4.8207459075E-01 4.7869976830E-01 + 4.7534184763E-01 4.7200090889E-01 4.6867702647E-01 4.6537026911E-01 + 4.6208070019E-01 4.5880837777E-01 4.5555335489E-01 4.5231567966E-01 + 4.4909539542E-01 4.4589254094E-01 4.4270715052E-01 4.3953925419E-01 + 4.3638887779E-01 4.3325604316E-01 4.3014076825E-01 4.2704306724E-01 + 4.2396295069E-01 4.2090042563E-01 4.1785549571E-01 4.1482816131E-01 + 4.1181841960E-01 4.0882626473E-01 4.0585168786E-01 4.0289467730E-01 + 3.9995521862E-01 3.9703329468E-01 3.9412888582E-01 3.9124196984E-01 + 3.8837252219E-01 3.8552051597E-01 3.8268592207E-01 3.7986870921E-01 + 3.7706884404E-01 3.7428629121E-01 3.7152101342E-01 3.6877297153E-01 + 3.6604212459E-01 3.6332842994E-01 3.6063184324E-01 3.5795231854E-01 + 3.5528980838E-01 3.5264426377E-01 3.5001563434E-01 3.4740386830E-01 + 3.4480891258E-01 3.4223071282E-01 3.3966921345E-01 3.3712435771E-01 + 3.3459608775E-01 3.3208434462E-01 3.2958906834E-01 3.2711019795E-01 + 3.2464767154E-01 3.2220142628E-01 3.1977139848E-01 3.1735752364E-01 + 3.1495973642E-01 3.1257797078E-01 3.1021215991E-01 3.0786223634E-01 + 3.0552813193E-01 3.0320977793E-01 3.0090710499E-01 2.9862004320E-01 + 2.9634852211E-01 2.9409247077E-01 2.9185181775E-01 2.8962649118E-01 + 2.8741641875E-01 2.8522152775E-01 2.8304174511E-01 2.8087699739E-01 + 2.7872721083E-01 2.7659231136E-01 2.7447222463E-01 2.7236687601E-01 + 2.7027619065E-01 2.6820009344E-01 2.6613850911E-01 2.6409136215E-01 + 2.6205857693E-01 2.6004007764E-01 2.5803578834E-01 2.5604563297E-01 + 2.5406953537E-01 2.5210741930E-01 2.5015920843E-01 2.4822482638E-01 + 2.4630419674E-01 2.4439724304E-01 2.4250388883E-01 2.4062405762E-01 + 2.3875767295E-01 2.3690465837E-01 2.3506493747E-01 2.3323843387E-01 + 2.3142507126E-01 2.2962477338E-01 2.2783746406E-01 2.2606306720E-01 + 2.2430150679E-01 2.2255270694E-01 2.2081659187E-01 2.1909308591E-01 + 2.1738211353E-01 2.1568359933E-01 2.1399746806E-01 2.1232364462E-01 + 2.1066205407E-01 2.0901262165E-01 2.0737527276E-01 2.0574993299E-01 + 2.0413652811E-01 2.0253498408E-01 2.0094522709E-01 1.9936718349E-01 + 1.9780077988E-01 1.9624594306E-01 1.9470260005E-01 1.9317067810E-01 + 1.9165010469E-01 1.9014080755E-01 1.8864271463E-01 1.8715575413E-01 + 1.8567985452E-01 1.8421494450E-01 1.8276095303E-01 1.8131780934E-01 + 1.7988544292E-01 1.7846378353E-01 1.7705276120E-01 1.7565230623E-01 + 1.7426234921E-01 1.7288282098E-01 1.7151365271E-01 1.7015477581E-01 + 1.6880612201E-01 1.6746762331E-01 1.6613921202E-01 1.6482082073E-01 + 1.6351238233E-01 1.6221383002E-01 1.6092509729E-01 1.5964611793E-01 + 1.5837682604E-01 1.5711715603E-01 1.5586704262E-01 1.5462642082E-01 + 1.5339522596E-01 1.5217339370E-01 1.5096085998E-01 1.4975756107E-01 + 1.4856343357E-01 1.4737841436E-01 1.4620244067E-01 1.4503545003E-01 + 1.4387738028E-01 1.4272816961E-01 1.4158775650E-01 1.4045607975E-01 + 1.3933307850E-01 1.3821869220E-01 1.3711286062E-01 1.3601552384E-01 + 1.3492662229E-01 1.3384609670E-01 1.3277388812E-01 1.3170993794E-01 + 1.3065418785E-01 1.2960657988E-01 1.2856705637E-01 1.2753556000E-01 + 1.2651203374E-01 1.2549642090E-01 1.2448866513E-01 1.2348871036E-01 + 1.2249650088E-01 1.2151198127E-01 1.2053509645E-01 1.1956579165E-01 + 1.1860401242E-01 1.1764970463E-01 1.1670281447E-01 1.1576328844E-01 + 1.1483107337E-01 1.1390611639E-01 1.1298836496E-01 1.1207776686E-01 + 1.1117427015E-01 1.1027782324E-01 1.0938837484E-01 1.0850587398E-01 + 1.0763026998E-01 1.0676151248E-01 1.0589955145E-01 1.0504433715E-01 + 1.0419582014E-01 1.0335395130E-01 1.0251868181E-01 1.0168996317E-01 + 1.0086774717E-01 1.0005198590E-01 9.9242631757E-02 9.8439637445E-02 + 9.7642955961E-02 9.6852540604E-02 9.6068344971E-02 9.5290322954E-02 + 9.4518428744E-02 9.3752616824E-02 9.2992841972E-02 9.2239059259E-02 + 9.1491224046E-02 9.0749291987E-02 9.0013219021E-02 8.9282961379E-02 + 8.8558475577E-02 8.7839718416E-02 8.7126646982E-02 8.6419218645E-02 + 8.5717391055E-02 8.5021122146E-02 8.4330370128E-02 8.3645093492E-02 + 8.2965251004E-02 8.2290801707E-02 8.1621704919E-02 8.0957920230E-02 + 8.0299407503E-02 7.9646126871E-02 7.8998038737E-02 7.8355103772E-02 + 7.7717282914E-02 7.7084537367E-02 7.6456828598E-02 7.5834118339E-02 + 7.5216368581E-02 7.4603541579E-02 7.3995599845E-02 7.3392506147E-02 + 7.2794223513E-02 7.2200715224E-02 7.1611944817E-02 7.1027876077E-02 + 7.0448473046E-02 6.9873700012E-02 6.9303521513E-02 6.8737902334E-02 + 6.8176807505E-02 6.7620202303E-02 6.7068052245E-02 6.6520323094E-02 + 6.5976980850E-02 6.5437991753E-02 6.4903322284E-02 6.4372939156E-02 + 6.3846809322E-02 6.3324899965E-02 6.2807178504E-02 6.2293612587E-02 + 6.1784170094E-02 6.1278819131E-02 6.0777528036E-02 6.0280265368E-02 + 5.9786999915E-02 5.9297700685E-02 5.8812336912E-02 5.8330878049E-02 + 5.7853293767E-02 5.7379553959E-02 5.6909628731E-02 5.6443488408E-02 + 5.5981103528E-02 5.5522444843E-02 5.5067483316E-02 5.4616190121E-02 + 5.4168536642E-02 5.3724494468E-02 5.3284035400E-02 5.2847131441E-02 + 5.2413754798E-02 5.1983877883E-02 5.1557473309E-02 5.1134513888E-02 + 5.0714972634E-02 5.0298822757E-02 4.9886037665E-02 4.9476590960E-02 + 4.9070456440E-02 4.8667608095E-02 4.8268020108E-02 4.7871666850E-02 + 4.7478522886E-02 4.7088562964E-02 4.6701762024E-02 4.6318095187E-02 + 4.5937537763E-02 4.5560065242E-02 4.5185653299E-02 4.4814277789E-02 + 4.4445914745E-02 4.4080540382E-02 4.3718131090E-02 4.3358663437E-02 + 4.3002114165E-02 4.2648460192E-02 4.2297678606E-02 4.1949746669E-02 + 4.1604641814E-02 4.1262341642E-02 4.0922823922E-02 4.0586066593E-02 + 4.0252047757E-02 3.9920745684E-02 3.9592138805E-02 3.9266205715E-02 + 3.8942925173E-02 3.8622276095E-02 3.8304237558E-02 3.7988788798E-02 + 3.7675909209E-02 3.7365578340E-02 3.7057775894E-02 3.6752481732E-02 + 3.6449675865E-02 3.6149338458E-02 3.5851449825E-02 3.5555990432E-02 + 3.5262940893E-02 3.4972281969E-02 3.4683994571E-02 3.4398059753E-02 + 3.4114458716E-02 3.3833172801E-02 3.3554183498E-02 3.3277472433E-02 + 3.3003021377E-02 3.2730812240E-02 3.2460827068E-02 3.2193048049E-02 + 3.1927457507E-02 3.1664037899E-02 3.1402771822E-02 3.1143642003E-02 + 3.0886631304E-02 3.0631722719E-02 3.0378899374E-02 3.0128144524E-02 + 2.9879441554E-02 2.9632773977E-02 2.9388125436E-02 2.9145479697E-02 + 2.8904820655E-02 2.8666132327E-02 2.8429398857E-02 2.8194604510E-02 + 2.7961733674E-02 2.7730770858E-02 2.7501700691E-02 2.7274507924E-02 + 2.7049177423E-02 2.6825694174E-02 2.6604043281E-02 2.6384209963E-02 + 2.6166179553E-02 2.5949937500E-02 2.5735469367E-02 2.5522760829E-02 + 2.5311797674E-02 2.5102565799E-02 2.4895051213E-02 2.4689240036E-02 + 2.4485118493E-02 2.4282672920E-02 2.4081889760E-02 2.3882755560E-02 + 2.3685256976E-02 2.3489380766E-02 2.3295113793E-02 2.3102443023E-02 + 2.2911355526E-02 2.2721838472E-02 2.2533879133E-02 2.2347464880E-02 + 2.2162583185E-02 2.1979221619E-02 2.1797367848E-02 2.1617009640E-02 + 2.1438134856E-02 2.1260731454E-02 2.1084787487E-02 2.0910291103E-02 + 2.0737230542E-02 2.0565594140E-02 2.0395370323E-02 2.0226547609E-02 + 2.0059114608E-02 1.9893060019E-02 1.9728372631E-02 1.9565041322E-02 + 1.9403055059E-02 1.9242402895E-02 1.9083073971E-02 1.8925057515E-02 + 1.8768342838E-02 1.8612919339E-02 1.8458776500E-02 1.8305903885E-02 + 1.8154291145E-02 1.8003928010E-02 1.7854804293E-02 1.7706909888E-02 + 1.7560234770E-02 1.7414768993E-02 1.7270502692E-02 1.7127426079E-02 + 1.6985529445E-02 1.6844803159E-02 1.6705237665E-02 1.6566823485E-02 + 1.6429551217E-02 1.6293411534E-02 1.6158395182E-02 1.6024492983E-02 + 1.5891695832E-02 1.5759994696E-02 1.5629380616E-02 1.5499844703E-02 + 1.5371378141E-02 1.5243972183E-02 1.5117618153E-02 1.4992307444E-02 + 1.4868031520E-02 1.4744781912E-02 1.4622550218E-02 1.4501328105E-02 + 1.4381107308E-02 1.4261879625E-02 1.4143636924E-02 1.4026371135E-02 + 1.3910074255E-02 1.3794738345E-02 1.3680355529E-02 1.3566917996E-02 + 1.3454417996E-02 1.3342847843E-02 1.3232199913E-02 1.3122466642E-02 + 1.3013640528E-02 1.2905714130E-02 1.2798680065E-02 1.2692531013E-02 + 1.2587259710E-02 1.2482858951E-02 1.2379321592E-02 1.2276640543E-02 + 1.2174808773E-02 1.2073819309E-02 1.1973665233E-02 1.1874339682E-02 + 1.1775835850E-02 1.1678146987E-02 1.1581266395E-02 1.1485187432E-02 + 1.1389903510E-02 1.1295408093E-02 1.1201694698E-02 1.1108756897E-02 + 1.1016588312E-02 1.0925182616E-02 1.0834533535E-02 1.0744634845E-02 + 1.0655480374E-02 1.0567063997E-02 1.0479379641E-02 1.0392421283E-02 + 1.0306182946E-02 1.0220658705E-02 1.0135842681E-02 1.0051729043E-02 + 9.9683120073E-03 9.8855858380E-03 9.8035448452E-03 9.7221833856E-03 + 9.6414958615E-03 9.5614767210E-03 9.4821204573E-03 9.4034216084E-03 + 9.3253747568E-03 9.2479745291E-03 9.1712155956E-03 9.0950926702E-03 + 9.0196005097E-03 8.9447339136E-03 8.8704877240E-03 8.7968568249E-03 + 8.7238361421E-03 8.6514206425E-03 8.5796053345E-03 8.5083852669E-03 + 8.4377555291E-03 8.3677112505E-03 8.2982476001E-03 8.2293597867E-03 + 8.1610430579E-03 8.0932927002E-03 8.0261040388E-03 7.9594724368E-03 + 7.8933932955E-03 7.8278620535E-03 7.7628741868E-03 7.6984252084E-03 + 7.6345106681E-03 7.5711261520E-03 7.5082672822E-03 7.4459297168E-03 + 7.3841091493E-03 7.3228013085E-03 7.2620019582E-03 7.2017068968E-03 + 7.1419119572E-03 7.0826130064E-03 7.0238059451E-03 6.9654867078E-03 + 6.9076512623E-03 6.8502956092E-03 6.7934157822E-03 6.7370078473E-03 + 6.6810679027E-03 6.6255920788E-03 6.5705765377E-03 6.5160174728E-03 + 6.4619111089E-03 6.4082537017E-03 6.3550415376E-03 6.3022709335E-03 + 6.2499382367E-03 6.1980398241E-03 6.1465721027E-03 6.0955315090E-03 + 6.0449145084E-03 5.9947175956E-03 5.9449372943E-03 5.8955701562E-03 + 5.8466127619E-03 5.7980617198E-03 5.7499136662E-03 5.7021652651E-03 + 5.6548132079E-03 5.6078542132E-03 5.5612850266E-03 5.5151024204E-03 + 5.4693031936E-03 5.4238841714E-03 5.3788422051E-03 5.3341741720E-03 + 5.2898769751E-03 5.2459475427E-03 5.2023828287E-03 5.1591798117E-03 + 5.1163354956E-03 5.0738469086E-03 5.0317111035E-03 4.9899251574E-03 + 4.9484861715E-03 4.9073912708E-03 4.8666376040E-03 4.8262223434E-03 + 4.7861426844E-03 4.7463958457E-03 4.7069790688E-03 4.6678896181E-03 + 4.6291247802E-03 4.5906818645E-03 4.5525582022E-03 4.5147511469E-03 + 4.4772580737E-03 4.4400763795E-03 4.4032034826E-03 4.3666368227E-03 + 4.3303738604E-03 4.2944120776E-03 4.2587489767E-03 4.2233820807E-03 + 4.1883089333E-03 4.1535270982E-03 4.1190341593E-03 4.0848277206E-03 + 4.0509054056E-03 4.0172648576E-03 3.9839037394E-03 3.9508197330E-03 + 3.9180105395E-03 3.8854738792E-03 3.8532074909E-03 3.8212091325E-03 + 3.7894765800E-03 3.7580076280E-03 3.7268000894E-03 3.6958517951E-03 + 3.6651605937E-03 3.6347243518E-03 3.6045409538E-03 3.5746083012E-03 + 3.5449243132E-03 3.5154869260E-03 3.4862940928E-03 3.4573437839E-03 + 3.4286339864E-03 3.4001627039E-03 3.3719279566E-03 3.3439277810E-03 + 3.3161602299E-03 3.2886233723E-03 3.2613152931E-03 3.2342340928E-03 + 3.2073778881E-03 3.1807448109E-03 3.1543330087E-03 3.1281406443E-03 + 3.1021658958E-03 3.0764069562E-03 3.0508620336E-03 3.0255293509E-03 + 3.0004071457E-03 2.9754936702E-03 2.9507871910E-03 2.9262859893E-03 + 2.9019883602E-03 2.8778926131E-03 2.8539970714E-03 2.8303000723E-03 + 2.8067999669E-03 2.7834951199E-03 2.7603839095E-03 2.7374647273E-03 + 2.7147359785E-03 2.6921960811E-03 2.6698434665E-03 2.6476765791E-03 + 2.6256938760E-03 2.6038938271E-03 2.5822749153E-03 2.5608356358E-03 + 2.5395744961E-03 2.5184900166E-03 2.4975807294E-03 2.4768451792E-03 + 2.4562819225E-03 2.4358895278E-03 2.4156665757E-03 2.3956116582E-03 + 2.3757233793E-03 2.3560003544E-03 2.3364412104E-03 2.3170445857E-03 + 2.2978091298E-03 2.2787335035E-03 2.2598163788E-03 2.2410564386E-03 + 2.2224523767E-03 2.2040028979E-03 2.1857067175E-03 2.1675625617E-03 + 2.1495691670E-03 2.1317252807E-03 2.1140296603E-03 2.0964810737E-03 + 2.0790782988E-03 2.0618201239E-03 2.0447053473E-03 2.0277327772E-03 + 2.0109012317E-03 1.9942095388E-03 1.9776565362E-03 1.9612410710E-03 + 1.9449620003E-03 1.9288181904E-03 1.9128085171E-03 1.8969318654E-03 + 1.8811871298E-03 1.8655732137E-03 1.8500890299E-03 1.8347335000E-03 + 1.8195055547E-03 1.8044041334E-03 1.7894281844E-03 1.7745766649E-03 + 1.7598485405E-03 1.7452427854E-03 1.7307583826E-03 1.7163943233E-03 + 1.7021496071E-03 1.6880232419E-03 1.6740142441E-03 1.6601216378E-03 + 1.6463444555E-03 1.6326817379E-03 1.6191325333E-03 1.6056958980E-03 + 1.5923708964E-03 1.5791566004E-03 1.5660520896E-03 1.5530564515E-03 + 1.5401687810E-03 1.5273881804E-03 1.5147137597E-03 1.5021446362E-03 + 1.4896799345E-03 1.4773187864E-03 1.4650603313E-03 1.4529037151E-03 + 1.4408480915E-03 1.4288926206E-03 1.4170364700E-03 1.4052788139E-03 + 1.3936188335E-03 1.3820557166E-03 1.3705886581E-03 1.3592168593E-03 + 1.3479395283E-03 1.3367558797E-03 1.3256651346E-03 1.3146665207E-03 + 1.3037592719E-03 1.2929426288E-03 1.2822158380E-03 1.2715781525E-03 + 1.2610288315E-03 1.2505671403E-03 + + + + 0.0000000000E+00 4.7208439941E-04 1.8956119099E-03 4.2923246429E-03 + 7.6981908615E-03 1.2163004989E-02 1.7749833371E-02 2.4534311457E-02 + 3.2603799595E-02 4.2056406044E-02 5.2999887155E-02 6.5550435895E-02 + 7.9831370985E-02 9.5971739894E-02 1.1410484974E-01 1.3436674084E-01 + 1.5689461810E-01 1.8182525588E-01 2.0929339205E-01 2.3943012693E-01 + 2.7236134291E-01 3.0820615974E-01 3.4707544060E-01 3.8907036292E-01 + 4.3428106746E-01 4.8278539811E-01 5.3464774404E-01 5.8991799439E-01 + 6.4863061487E-01 7.1080385397E-01 7.7643908549E-01 8.4552029232E-01 + 9.1801369537E-01 9.9386752976E-01 1.0730119691E+00 1.1553591974E+00 + 1.2408036264E+00 1.3292222553E+00 1.4204751675E+00 1.5144061600E+00 + 1.6108434965E+00 1.7096007782E+00 1.8104779221E+00 1.9132622370E+00 + 2.0177295882E+00 2.1236456375E+00 2.2307671501E+00 2.3388433529E+00 + 2.4476173358E+00 2.5568274814E+00 2.6662089118E+00 2.7754949410E+00 + 2.8844185209E+00 2.9927136688E+00 3.1001168674E+00 3.2063684251E+00 + 3.3112137884E+00 3.4144047963E+00 3.5157008699E+00 3.6148701281E+00 + 3.7116904248E+00 3.8059503002E+00 3.8974498435E+00 3.9860014609E+00 + 4.0714305481E+00 4.1535760645E+00 4.2322910081E+00 4.3074427906E+00 + 4.3789135142E+00 4.4466001512E+00 4.5104146280E+00 4.5702838176E+00 + 4.6261494430E+00 4.6779678967E+00 4.7257099795E+00 4.7693605652E+00 + 4.8089181961E+00 4.8443946144E+00 4.8758142366E+00 4.9032135762E+00 + 4.9266406217E+00 4.9461541757E+00 4.9618231617E+00 4.9737259051E+00 + 4.9819493935E+00 4.9865885245E+00 4.9877453435E+00 4.9855282806E+00 + 4.9800513890E+00 4.9714335909E+00 4.9597979364E+00 4.9452708772E+00 + 4.9279815619E+00 4.9080611540E+00 4.8856421760E+00 4.8608578845E+00 + 4.8338416744E+00 4.8047265187E+00 4.7736444417E+00 4.7407260289E+00 + 4.7060999736E+00 4.6698926601E+00 4.6322277859E+00 4.5932260190E+00 + 4.5530046943E+00 4.5116775445E+00 4.4693544674E+00 4.4261413272E+00 + 4.3821397889E+00 4.3374471850E+00 4.2921564117E+00 4.2463558547E+00 + 4.2001293417E+00 4.1535561209E+00 4.1067108626E+00 4.0596636834E+00 + 4.0124801910E+00 3.9652215467E+00 3.9179445461E+00 3.8707017147E+00 + 3.8235414167E+00 3.7765079773E+00 3.7296418148E+00 3.6829795830E+00 + 3.6365543208E+00 3.5903956096E+00 3.5445297358E+00 3.4989798582E+00 + 3.4537661787E+00 3.4089061160E+00 3.3644144808E+00 3.3203036511E+00 + 3.2765837489E+00 3.2332628152E+00 3.1903469835E+00 3.1478406520E+00 + 3.1057466523E+00 3.0640664151E+00 3.0228001324E+00 2.9819469143E+00 + 2.9415049424E+00 2.9014716166E+00 2.8618436966E+00 2.8226174373E+00 + 2.7837887171E+00 2.7453531602E+00 2.7073062501E+00 2.6696434366E+00 + 2.6323602348E+00 2.5954523147E+00 2.5589155840E+00 2.5227462612E+00 + 2.4869409398E+00 2.4514966446E+00 2.4164108775E+00 2.3816816549E+00 + 2.3473075365E+00 2.3132876467E+00 2.2796216859E+00 2.2463099327E+00 + 2.2133532400E+00 2.1807529884E+00 2.1485108155E+00 2.1166281158E+00 + 2.0851059782E+00 2.0539452147E+00 2.0231463695E+00 1.9927097319E+00 + 1.9626353502E+00 1.9329230428E+00 1.9035724107E+00 1.8745828485E+00 + 1.8459535554E+00 1.8176835457E+00 1.7897716590E+00 1.7622165697E+00 + 1.7350167963E+00 1.7081707108E+00 1.6816765468E+00 1.6555324078E+00 + 1.6297362756E+00 1.6042860175E+00 1.5791793935E+00 1.5544140637E+00 + 1.5299875946E+00 1.5058974659E+00 1.4821410763E+00 1.4587157495E+00 + 1.4356187400E+00 1.4128472383E+00 1.3903983761E+00 1.3682692311E+00 + 1.3464568321E+00 1.3249581629E+00 1.3037701672E+00 1.2828897523E+00 + 1.2623137929E+00 1.2420391354E+00 1.2220626007E+00 1.2023809883E+00 + 1.1829910787E+00 1.1638896375E+00 1.1450734171E+00 1.1265391606E+00 + 1.1082836036E+00 1.0903034771E+00 1.0725955097E+00 1.0551564301E+00 + 1.0379829687E+00 1.0210718603E+00 1.0044198453E+00 9.8802367206E-01 + 9.7188009820E-01 9.5598589246E-01 9.4033783607E-01 9.2493272424E-01 + 9.0976736742E-01 8.9483859261E-01 8.8014324455E-01 8.6567818675E-01 + 8.5144030259E-01 8.3742649626E-01 8.2363369364E-01 8.1005884316E-01 + 7.9669891657E-01 7.8355090965E-01 7.7061184290E-01 7.5787876212E-01 + 7.4534873899E-01 7.3301887161E-01 7.2088628492E-01 7.0894813118E-01 + 6.9720159034E-01 6.8564387036E-01 6.7427220758E-01 6.6308386693E-01 + 6.5207614225E-01 6.4124635643E-01 6.3059186161E-01 6.2011003936E-01 + 6.0979830079E-01 5.9965408661E-01 5.8967486726E-01 5.7985814293E-01 + 5.7020144358E-01 5.6070232896E-01 5.5135838861E-01 5.4216724179E-01 + 5.3312653746E-01 5.2423395420E-01 5.1548720012E-01 5.0688401278E-01 + 4.9842215908E-01 4.9009943509E-01 4.8191366598E-01 4.7386270581E-01 + 4.6594443740E-01 4.5815677215E-01 4.5049764988E-01 4.4296503858E-01 + 4.3555693430E-01 4.2827136087E-01 4.2110636973E-01 4.1406003966E-01 + 4.0713047664E-01 4.0031581353E-01 3.9361420987E-01 3.8702385167E-01 + 3.8054295110E-01 3.7416974627E-01 3.6790250101E-01 3.6173950456E-01 + 3.5567907132E-01 3.4971954062E-01 3.4385927643E-01 3.3809666710E-01 + 3.3243012507E-01 3.2685808665E-01 3.2137901170E-01 3.1599138339E-01 + 3.1069370791E-01 3.0548451420E-01 3.0036235369E-01 2.9532580000E-01 + 2.9037344872E-01 2.8550391706E-01 2.8071584366E-01 2.7600788824E-01 + 2.7137873140E-01 2.6682707430E-01 2.6235163843E-01 2.5795116530E-01 + 2.5362441621E-01 2.4937017197E-01 2.4518723264E-01 2.4107441726E-01 + 2.3703056362E-01 2.3305452794E-01 2.2914518470E-01 2.2530142629E-01 + 2.2152216285E-01 2.1780632194E-01 2.1415284835E-01 2.1056070383E-01 + 2.0702886683E-01 2.0355633229E-01 2.0014211138E-01 1.9678523127E-01 + 1.9348473491E-01 1.9023968074E-01 1.8704914255E-01 1.8391220918E-01 + 1.8082798431E-01 1.7779558625E-01 1.7481414774E-01 1.7188281569E-01 + 1.6900075096E-01 1.6616712822E-01 1.6338113564E-01 1.6064197477E-01 + 1.5794886028E-01 1.5530101977E-01 1.5269769357E-01 1.5013813458E-01 + 1.4762160800E-01 1.4514739120E-01 1.4271477350E-01 1.4032305600E-01 + 1.3797155138E-01 1.3565958372E-01 1.3338648832E-01 1.3115161154E-01 + 1.2895431059E-01 1.2679395339E-01 1.2466991837E-01 1.2258159434E-01 + 1.2052838028E-01 1.1850968521E-01 1.1652492801E-01 1.1457353726E-01 + 1.1265495111E-01 1.1076861709E-01 1.0891399198E-01 1.0709054165E-01 + 1.0529774093E-01 1.0353507343E-01 1.0180203142E-01 1.0009811571E-01 + 9.8422835466E-02 9.6775708087E-02 9.5156259092E-02 9.3564021963E-02 + 9.1998538027E-02 9.0459356318E-02 8.8946033458E-02 8.7458133526E-02 + 8.5995227938E-02 8.4556895325E-02 8.3142721412E-02 8.1752298903E-02 + 8.0385227365E-02 7.9041113113E-02 7.7719569096E-02 7.6420214793E-02 + 7.5142676097E-02 7.3886585213E-02 7.2651580552E-02 7.1437306624E-02 + 7.0243413941E-02 6.9069558916E-02 6.7915403760E-02 6.6780616391E-02 + 6.5664870333E-02 6.4567844626E-02 6.3489223733E-02 6.2428697446E-02 + 6.1385960800E-02 6.0360713984E-02 5.9352662253E-02 5.8361515846E-02 + 5.7386989899E-02 5.6428804362E-02 5.5486683923E-02 5.4560357924E-02 + 5.3649560281E-02 5.2754029413E-02 5.1873508160E-02 5.1007743712E-02 + 5.0156487535E-02 4.9319495296E-02 4.8496526797E-02 4.7687345902E-02 + 4.6891720467E-02 4.6109422277E-02 4.5340226974E-02 4.4583913998E-02 + 4.3840266517E-02 4.3109071368E-02 4.2390118991E-02 4.1683203373E-02 + 4.0988121984E-02 4.0304675718E-02 3.9632668839E-02 3.8971908918E-02 + 3.8322206782E-02 3.7683376457E-02 3.7055235112E-02 3.6437603009E-02 + 3.5830303447E-02 3.5233162716E-02 3.4646010038E-02 3.4068677526E-02 + 3.3501000128E-02 3.2942815583E-02 3.2393964373E-02 3.1854289674E-02 + 3.1323637313E-02 3.0801855724E-02 3.0288795899E-02 2.9784311350E-02 + 2.9288258061E-02 2.8800494451E-02 2.8320881330E-02 2.7849281858E-02 + 2.7385561506E-02 2.6929588018E-02 2.6481231369E-02 2.6040363731E-02 + 2.5606859433E-02 2.5180594926E-02 2.4761448745E-02 2.4349301476E-02 + 2.3944035721E-02 2.3545536060E-02 2.3153689022E-02 2.2768383052E-02 + 2.2389508472E-02 2.2016957459E-02 2.1650624005E-02 2.1290403890E-02 + 2.0936194653E-02 2.0587895557E-02 2.0245407567E-02 1.9908633314E-02 + 1.9577477072E-02 1.9251844726E-02 1.8931643750E-02 1.8616783173E-02 + 1.8307173559E-02 1.8002726977E-02 1.7703356979E-02 1.7408978569E-02 + 1.7119508186E-02 1.6834863673E-02 1.6554964258E-02 1.6279730526E-02 + 1.6009084401E-02 1.5742949120E-02 1.5481249211E-02 1.5223910472E-02 + 1.4970859950E-02 1.4722025917E-02 1.4477337853E-02 1.4236726423E-02 + 1.4000123459E-02 1.3767461938E-02 1.3538675963E-02 1.3313700745E-02 + 1.3092472585E-02 1.2874928853E-02 1.2661007971E-02 1.2450649397E-02 + 1.2243793605E-02 1.2040382068E-02 1.1840357244E-02 1.1643662554E-02 + 1.1450242373E-02 1.1260042007E-02 1.1073007680E-02 1.0889086519E-02 + 1.0708226540E-02 1.0530376629E-02 1.0355486530E-02 1.0183506831E-02 + 1.0014388949E-02 9.8480851140E-03 9.6845483589E-03 9.5237325034E-03 + 9.3655921416E-03 9.2100826289E-03 9.0571600688E-03 8.9067813009E-03 + 8.7589038878E-03 8.6134861035E-03 8.4704869209E-03 8.3298660002E-03 + 8.1915836777E-03 8.0556009537E-03 7.9218794819E-03 7.7903815579E-03 + 7.6610701089E-03 7.5339086827E-03 7.4088614373E-03 7.2858931307E-03 + 7.1649691107E-03 7.0460553051E-03 6.9291182118E-03 6.8141248894E-03 + 6.7010429475E-03 6.5898405375E-03 6.4804863436E-03 6.3729495740E-03 + 6.2671999514E-03 6.1632077052E-03 6.0609435624E-03 5.9603787394E-03 + 5.8614849339E-03 5.7642343166E-03 5.6685995235E-03 5.5745536476E-03 + 5.4820702318E-03 5.3911232611E-03 5.3016871550E-03 5.2137367605E-03 + 5.1272473448E-03 5.0421945880E-03 4.9585545767E-03 4.8763037966E-03 + 4.7954191261E-03 4.7158778299E-03 4.6376575521E-03 4.5607363101E-03 + 4.4850924881E-03 4.4107048313E-03 4.3375524396E-03 4.2656147616E-03 + 4.1948715891E-03 4.1253030509E-03 4.0568896073E-03 3.9896120448E-03 + 3.9234514703E-03 3.8583893058E-03 3.7944072833E-03 3.7314874395E-03 + 3.6696121105E-03 3.6087639271E-03 3.5489258098E-03 3.4900809637E-03 + 3.4322128739E-03 3.3753053010E-03 3.3193422761E-03 3.2643080968E-03 + 3.2101873220E-03 3.1569647681E-03 3.1046255048E-03 3.0531548502E-03 + 3.0025383673E-03 2.9527618595E-03 2.9038113669E-03 2.8556731619E-03 + 2.8083337458E-03 2.7617798446E-03 2.7159984056E-03 2.6709765932E-03 + 2.6267017859E-03 2.5831615721E-03 2.5403437469E-03 2.4982363089E-03 + 2.4568274562E-03 2.4161055836E-03 2.3760592789E-03 2.3366773201E-03 + 2.2979486719E-03 2.2598624826E-03 2.2224080812E-03 2.1855749744E-03 + 2.1493528433E-03 2.1137315409E-03 2.0787010890E-03 2.0442516754E-03 + 2.0103736512E-03 1.9770575279E-03 1.9442939752E-03 1.9120738176E-03 + 1.8803880325E-03 1.8492277473E-03 1.8185842370E-03 1.7884489217E-03 + 1.7588133642E-03 1.7296692676E-03 1.7010084731E-03 1.6728229573E-03 + 1.6451048306E-03 1.6178463342E-03 1.5910398386E-03 1.5646778410E-03 + 1.5387529634E-03 1.5132579504E-03 1.4881856672E-03 1.4635290977E-03 + 1.4392813423E-03 1.4154356163E-03 1.3919852475E-03 1.3689236748E-03 + 1.3462444460E-03 1.3239412162E-03 1.3020077459E-03 1.2804378994E-03 + 1.2592256428E-03 1.2383650426E-03 1.2178502639E-03 1.1976755685E-03 + 1.1778353138E-03 1.1583239509E-03 1.1391360229E-03 1.1202661639E-03 + 1.1017090969E-03 1.0834596324E-03 1.0655126675E-03 1.0478631839E-03 + 1.0305062464E-03 1.0134370022E-03 9.9665067869E-04 9.8014258285E-04 + 9.6390809943E-04 9.4794268987E-04 9.3224189096E-04 9.1680131362E-04 + 9.0161664166E-04 8.8668363055E-04 8.7199810623E-04 8.5755596397E-04 + 8.4335316716E-04 8.2938574625E-04 8.1564979756E-04 8.0214148224E-04 + 7.8885702516E-04 7.7579271386E-04 7.6294489753E-04 7.5030998592E-04 + 7.3788444844E-04 7.2566481305E-04 7.1364766536E-04 7.0182964767E-04 + 6.9020745799E-04 6.7877784915E-04 6.6753762787E-04 6.5648365385E-04 + 6.4561283893E-04 6.3492214620E-04 6.2440858914E-04 6.1406923079E-04 + 6.0390118294E-04 5.9390160530E-04 5.8406770472E-04 5.7439673437E-04 + 5.6488599305E-04 5.5553282434E-04 5.4633461590E-04 5.3728879876E-04 + 5.2839284655E-04 5.1964427482E-04 5.1104064034E-04 5.0257954044E-04 + 4.9425861227E-04 4.8607553221E-04 4.7802801518E-04 4.7011381400E-04 + 4.6233071878E-04 4.5467655630E-04 4.4714918936E-04 4.3974651623E-04 + 4.3246647005E-04 4.2530701824E-04 4.1826616192E-04 4.1134193539E-04 + 4.0453240554E-04 3.9783567132E-04 3.9124986323E-04 3.8477314275E-04 + 3.7840370187E-04 3.7213976257E-04 3.6597957632E-04 3.5992142356E-04 + 3.5396361329E-04 3.4810448253E-04 3.4234239588E-04 3.3667574507E-04 + 3.3110294848E-04 3.2562245075E-04 3.2023272228E-04 3.1493225887E-04 + 3.0971958123E-04 3.0459323463E-04 2.9955178843E-04 2.9459383573E-04 + 2.8971799297E-04 2.8492289951E-04 2.8020721729E-04 2.7556963042E-04 + 2.7100884483E-04 2.6652358792E-04 2.6211260818E-04 2.5777467485E-04 + 2.5350857757E-04 2.4931312606E-04 2.4518714977E-04 2.4112949756E-04 + 2.3713903735E-04 2.3321465587E-04 2.2935525828E-04 2.2555976788E-04 + 2.2182712585E-04 2.1815629091E-04 2.1454623902E-04 2.1099596316E-04 + 2.0750447297E-04 2.0407079451E-04 2.0069396999E-04 1.9737305752E-04 + 1.9410713078E-04 1.9089527885E-04 1.8773660586E-04 1.8463023083E-04 + 1.8157528738E-04 1.7857092347E-04 1.7561630119E-04 1.7271059652E-04 + 1.6985299912E-04 1.6704271204E-04 1.6427895158E-04 1.6156094700E-04 + 1.5888794034E-04 1.5625918622E-04 1.5367395160E-04 1.5113151558E-04 + 1.4863116923E-04 1.4617221536E-04 1.4375396833E-04 1.4137575386E-04 + 1.3903690886E-04 1.3673678123E-04 1.3447472965E-04 1.3225012345E-04 + 1.3006234243E-04 1.2791077662E-04 1.2579482619E-04 1.2371390126E-04 + 1.2166742170E-04 1.1965481701E-04 1.1767552613E-04 1.1572899732E-04 + 1.1381468795E-04 1.1193206442E-04 1.1008060194E-04 1.0825978444E-04 + 1.0646910439E-04 1.0470806266E-04 1.0297616841E-04 1.0127293893E-04 + 9.9597899502E-05 9.7950583269E-05 9.6330531122E-05 9.4737291552E-05 + 9.3170420534E-05 9.1629481399E-05 9.0114044713E-05 8.8623688158E-05 + 8.7157996414E-05 8.5716561040E-05 8.4298980365E-05 8.2904859372E-05 + 8.1533809587E-05 8.0185448975E-05 7.8859401828E-05 7.7555298666E-05 + 7.6272776128E-05 7.5011476873E-05 7.3771049480E-05 7.2551148353E-05 + 7.1351433617E-05 7.0171571032E-05 6.9011231893E-05 6.7870092940E-05 + 6.6747836271E-05 6.5644149247E-05 6.4558724411E-05 6.3491259399E-05 + 6.2441456854E-05 6.1409024348E-05 6.0393674294E-05 5.9395123873E-05 + 5.8413094947E-05 5.7447313988E-05 5.6497511998E-05 5.5563424436E-05 + 5.4644791142E-05 5.3741356266E-05 5.2852868195E-05 5.1979079485E-05 + 5.1119746792E-05 5.0274630800E-05 4.9443496159E-05 4.8626111416E-05 + 4.7822248954E-05 4.7031684923E-05 4.6254199183E-05 4.5489575239E-05 + 4.4737600184E-05 4.3998064634E-05 4.3270762677E-05 4.2555491808E-05 + 4.1852052877E-05 4.1160250034E-05 4.0479890671E-05 3.9810785371E-05 + 3.9152747854E-05 3.8505594923E-05 3.7869146420E-05 3.7243225166E-05 + 3.6627656918E-05 3.6022270319E-05 3.5426896850E-05 3.4841370782E-05 + 3.4265529132E-05 3.3699211615E-05 3.3142260600E-05 3.2594521068E-05 + 3.2055840566E-05 3.1526069166E-05 3.1005059424E-05 3.0492666334E-05 + 2.9988747296E-05 2.9493162069E-05 2.9005772734E-05 2.8526443656E-05 + 2.8055041447E-05 2.7591434927E-05 2.7135495088E-05 2.6687095060E-05 + 2.6246110070E-05 2.5812417416E-05 2.5385896423E-05 2.4966428417E-05 + 2.4553896689E-05 2.4148186462E-05 2.3749184858E-05 2.3356780870E-05 + 2.2970865328E-05 2.2591330870E-05 2.2218071912E-05 2.1850984616E-05 + 2.1489966865E-05 2.1134918234E-05 2.0785739958E-05 2.0442334908E-05 + 2.0104607565E-05 1.9772463988E-05 1.9445811794E-05 1.9124560129E-05 + 1.8808619642E-05 1.8497902463E-05 1.8192322175E-05 1.7891793792E-05 + 1.7596233736E-05 1.7305559812E-05 1.7019691185E-05 1.6738548358E-05 + 1.6462053153E-05 1.6190128683E-05 1.5922699334E-05 1.5659690746E-05 + 1.5401029787E-05 1.5146644537E-05 1.4896464268E-05 1.4650419420E-05 + 1.4408441586E-05 1.4170463491E-05 1.3936418974E-05 1.3706242969E-05 + 1.3479871485E-05 1.3257241595E-05 1.3038291408E-05 1.2822960060E-05 + 1.2611187696E-05 1.2402915449E-05 1.2198085428E-05 1.1996640698E-05 + 1.1798525270E-05 1.1603684078E-05 1.1412062969E-05 1.1223608687E-05 + 1.1038268856E-05 1.0855991968E-05 1.0676727366E-05 1.0500425233E-05 + 1.0327036575E-05 1.0156513210E-05 9.9888077530E-06 9.8238736027E-06 + 9.6616649297E-06 9.5021366627E-06 9.3452444761E-06 9.1909447781E-06 + 9.0391946981E-06 8.8899520750E-06 8.7431754456E-06 8.5988240324E-06 + 8.4568577330E-06 8.3172371082E-06 8.1799233719E-06 8.0448783795E-06 + 7.9120646177E-06 7.7814451939E-06 7.6529838257E-06 7.5266448313E-06 + 7.4023931193E-06 7.2801941790E-06 7.1600140704E-06 7.0418194153E-06 + 6.9255773875E-06 6.8112557043E-06 6.6988226169E-06 6.5882469018E-06 + 6.4794978521E-06 6.3725452687E-06 + + + + + + + + + + + + + + +END_PSP diff --git a/abipy/data/oncv_data/O_sr_v4.out b/abipy/data/oncv_data/O_sr_v4.out new file mode 100644 index 000000000..04ef600c8 --- /dev/null +++ b/abipy/data/oncv_data/O_sr_v4.out @@ -0,0 +1,14749 @@ +ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) +scalar-relativistic version 4.0.1 03/01/2019 + + +While it is not required under the terms of the GNU GPL, it is +suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) +in any publication utilizing these pseudopotentials. + + +LXC Exchange +LXC Becke 88 (GGA) +LXC [1] A. D. Becke, Phys. Rev. A 38, 3098 (1988) +LXC Correlation +LXC Lee, Yang & Parr (GGA) +LXC [1] C. Lee, W. Yang, and R. G. Parr, Phys. Rev. B 37, 785 (1988) +LXC [2] B. Miehlich, A. Savin, H. Stoll, and H. Preuss, Chem. Phys. Lett. 157, 200 (1989) + +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + O 8.00 1 2 -106131 both +# +# n l f energy (Ha) + 1 0 2.00 -1.8942298E+01 + 2 0 2.00 -8.7578213E-01 + 2 1 4.00 -3.3160473E-01 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 2 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.35000 0.00000 4 8 8.40000 + 1 1.45000 0.00000 4 8 9.30000 + 2 1.25000 0.10000 4 8 6.00000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.20000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 1.00000 + 1 2 1.00000 + 2 1 1.00000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact + 3 4.00000 1.50000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -12.00 12.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 6.0000 0.0100 +# +# TEST CONFIGURATIONS +# ncnf + 0 +# nvcnf +# n l f + + +Reference configufation results + iterations 22 + all-electron total energy (Ha) -7.50804512D+01 + +Begin loop to construct optimized pseudo wave functions +and semi-local pseudopoentials for all angular momenta + + Wellstate for l = 0 n = 3 + eigenvalue = 0.1242 + asymptotic potential = 0.6242 + half-point radius = 6.3193 + +Calculating optimized projector # 1 + + for l= 0 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.55854932 0.55854932 1.37D-12 + -0.86718159 -0.86718159 3.28D-14 + 1.20167808 1.20167808 2.03D-13 + -0.79689317 -0.79689317 4.16D-12 + + Fraction of norm inside rc 0.715898 + Optimizing pswf for qcut= 8.39 a_B^-1, ecut= 35.22 Ha + q_infinity defining residual KE= 25.64 (E_inf= 328.7 Ha) + Residual kinetic energy error= 2.67D-06 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 0.76289165 r-space= 0.76289168 ratio= 0.99999997 + Potential consistency test at r_c + "vpsp"= -0.94801979 vae= -0.94805301 difference= -3.32D-05 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 12.17 + 0.00100 0.02721 21.67 + 0.00010 0.00272 27.75 + 0.00001 0.00027 32.41 + +Calculating optimized projector # 2 + + for l= 0 + + Constraint consistency test + pswf0 val/der aewf val/der diff + -0.04537864 -0.04537864 1.08D-13 + 0.42794484 0.42794484 3.16D-15 + -0.53553742 -0.53553742 7.67D-14 + 0.19565638 0.19565638 2.00D-12 + -0.18258652 -0.18258652 2.78D-17 + + Fraction of norm inside rc 0.049863 + Optimizing pswf for qcut= 8.39 a_B^-1, ecut= 35.22 Ha + q_infinity defining residual KE= 30.26 (E_inf= 457.8 Ha) + Residual kinetic energy error= 6.70D-07 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 0.27169619 r-space= 0.27169657 ratio= 0.99999858 + Potential consistency test at r_c + "vpsp"= -0.94788098 vae= -0.94805301 difference= -1.72D-04 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 3.51 + 0.00100 0.02721 15.20 + 0.00010 0.00272 23.83 + 0.00001 0.00027 29.66 + + Wellstate for l = 1 n = 3 + eigenvalue = 0.6684 + asymptotic potential = 1.1684 + half-point radius = 3.4181 + +Calculating optimized projector # 1 + + for l= 1 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.45511317 0.45511317 9.20D-13 + -0.58422663 -0.58422663 -2.43D-14 + 0.80583142 0.80583142 2.39D-13 + -1.09475337 -1.09475337 1.81D-12 + + Fraction of norm inside rc 0.685301 + Optimizing pswf for qcut= 9.31 a_B^-1, ecut= 43.35 Ha + q_infinity defining residual KE= 25.92 (E_inf= 335.9 Ha) + Residual kinetic energy error= 2.22D-06 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 2.22897312 r-space= 2.22897312 ratio= 1.00000000 + Potential consistency test at r_c + "vpsp"= -0.80328869 vae= -0.80330460 difference= -1.59D-05 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 23.77 + 0.00100 0.02721 30.69 + 0.00010 0.00272 36.15 + 0.00001 0.00027 40.33 + +Calculating optimized projector # 2 + + for l= 1 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.02731493 0.02731493 4.60D-14 + 0.55950035 0.55950035 6.33D-15 + -0.82461776 -0.82461776 -8.40D-14 + 0.58223422 0.58223422 -6.21D-13 + -0.28563808 -0.28563808 1.11D-16 + + Fraction of norm inside rc 0.143696 + Optimizing pswf for qcut= 9.31 a_B^-1, ecut= 43.35 Ha + q_infinity defining residual KE= 30.24 (E_inf= 457.2 Ha) + Residual kinetic energy error= 3.50D-06 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 1.24043119 r-space= 1.24043119 ratio= 1.00000000 + Potential consistency test at r_c + "vpsp"= -0.80371079 vae= -0.80330460 difference= 4.06D-04 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 22.49 + 0.00100 0.02721 30.35 + 0.00010 0.00272 36.39 + 0.00001 0.00027 41.55 + + Wellstate for l = 2 n = 3 + eigenvalue = 0.1000 + asymptotic potential = 0.6000 + half-point radius = 19.3698 + +Calculating optimized projector # 1 + + for l= 2 + + Constraint consistency test + pswf0 val/der aewf val/der diff + 0.01676268 0.01676268 1.07D-13 + 0.01402519 0.01402519 -7.04D-16 + 0.00047631 0.00047631 8.23D-15 + 0.00293894 0.00293894 2.12D-13 + + Fraction of norm inside rc 0.000107 + Optimizing pswf for qcut= 5.99 a_B^-1, ecut= 17.95 Ha + q_infinity defining residual KE= 32.22 (E_inf= 519.1 Ha) + Residual kinetic energy error= 6.27D-07 Ha + + Total kinetic energy consistency test + Fourier integration compared to d^2/dr^2 integral + Fourier 0.08998887 r-space= 0.08998888 ratio= 0.99999996 + Potential consistency test at r_c + "vpsp"= -1.13322073 vae= -1.13315722 difference= 6.35D-05 + + Energy error per electron Cutoff + Ha eV Ha + 0.01000 0.27211 0.23 + 0.00100 0.02721 0.56 + 0.00010 0.00272 2.29 + 0.00001 0.00027 7.90 + +Construct Vanderbilt / Kleinmman-Bylander projectors + +B matrix Hermiticity error, ll= 0 + 1 2 3.3492E-05 + + Orthonormal projector coefficients 5.9328E+00 7.8809E-01 + +B matrix Hermiticity error, ll= 1 + 1 2 4.9076E-05 + + Orthonormal projector coefficients -4.7301E+00 -1.1193E+00 + +Model core correction analysis + based on d2Exc/dn_idn_j + +d2excae - all-electron derivatives + + -5.181046D-02 -4.414096D-02 + -4.414252D-02 -4.198535D-02 + +d2excps - pseudofunction derivatives with no core correction + + -5.165873D-02 -4.649486D-02 + -4.649625D-02 -4.419868D-02 + +rms 2nd derivative error 2.000171E-03 + +rmatch, rhocmatch 0.3828 10.7526 + +Teter function model core charge with specified parameters + + +d2excps - pseudofunction derivatives with core correction + + -4.902811D-02 -4.550492D-02 + -4.550571D-02 -4.359302D-02 + +rms 2nd derivative error 1.873816E-03 + +Pseudoatom total energy -15.790069 + + +Diagnostic tests using Vanderbilt-Kleinman-Bylander pseudopotentials + 1 or more projectors used as specified by nproj input data + + l rcore rmatch e in delta e norm test slope test + + 0 1.3524621 1.3935258 -0.8757821 -0.0000035 1.0000457 1.0000551 + 0 1.3524621 1.3935258 0.1242179 0.0000014 1.0001127 1.0001127 + + 1 1.4531180 1.4972378 -0.3316047 -0.0000028 1.0000384 1.0000485 + 1 1.4531180 1.4972378 0.6683953 -0.0000000 1.0001011 1.0001011 + + 2 1.2512710 1.2892623 0.1000000 0.0000158 1.0000011 1.0000011 + + Testing for bound ghosts + n l E NL Schr. Eq E Basis Diag. E Cutoff + + 1 0 -0.875786 -0.874335 143.23 + + 2 1 -0.331608 -0.326783 143.06 + + + Testing for highly-localized positive-energy ghosts + l /rc E Basis Diag. E Cutoff + +Test configuration 0 + + n l f eae eps diff + 1 0 2.0000 -18.94229817 + 2 0 2.0000 -0.87578213 -0.87578566 -3.53D-06 + 2 1 4.0000 -0.33160473 -0.33160757 -2.84D-06 + + Total energies and differences + AE_ref= -7.50804512D+01 AE_tst= -7.50804512D+01 dif= 0.00D+00 + PS_ref= -1.57900687D+01 PS_tst= -1.57900687D+01 dif= -7.11D-15 + PSP excitation error= 7.11D-15 + +DATA FOR PLOTTING + + radii, charge, pseudopotentials (ll=0, 1, lmax) + +!p 0.0099582 3.7466080 -4.6445128 -15.3234007 20.9698547 +!p 0.0200515 3.7727866 -4.6508795 -15.3218848 20.7492562 +!p 0.0301168 3.8162815 -4.6614199 -15.3192935 20.3849492 +!p 0.0401340 3.8765889 -4.6759702 -15.3155633 19.8843423 +!p 0.0503774 3.9555007 -4.6949217 -15.3104654 19.2371241 +!p 0.0606419 4.0516508 -4.7179182 -15.3039572 18.4603042 +!p 0.0708469 4.1636865 -4.7446306 -15.2960054 17.5711551 +!p 0.0812969 4.2947972 -4.7758334 -15.2862432 16.5520394 +!p 0.0916292 4.4400375 -4.8103850 -15.2748993 15.4494292 +!p 0.1020463 4.6014022 -4.8488152 -15.2616825 14.2560495 +!p 0.1122962 4.7739745 -4.8900215 -15.2468628 13.0156627 +!p 0.1228386 4.9648105 -4.9357754 -15.2296701 11.6859785 +!p 0.1335693 5.1718895 -4.9857051 -15.2100647 10.2915479 +!p 0.1443711 5.3922587 -5.0392229 -15.1881062 8.8613290 +!p 0.1551158 5.6221050 -5.0955261 -15.1639727 7.4268226 +!p 0.1656662 5.8568993 -5.1536138 -15.1379752 6.0199704 +!p 0.1758789 6.0916035 -5.2123186 -15.1105659 4.6711094 +!p 0.1867211 6.3474780 -5.2771178 -15.0789716 3.2642528 +!p 0.1970495 6.5963948 -5.3410287 -15.0464076 1.9577817 +!p 0.2079491 6.8631883 -5.4105746 -15.0093471 0.6239248 +!p 0.2181429 7.1152740 -5.4773701 -14.9721046 -0.5745052 +!p 0.2288363 7.3810837 -5.5490491 -14.9302721 -1.7741431 +!p 0.2400539 7.6599905 -5.6257702 -14.8832561 -2.9631359 +!p 0.2503194 7.9140144 -5.6971295 -14.8373379 -3.9844126 +!p 0.2610240 8.1763995 -5.7724814 -14.7864307 -4.9777895 +!p 0.2721863 8.4459479 -5.8518274 -14.7299706 -5.9329750 +!p 0.2838260 8.7211490 -5.9351194 -14.6673305 -6.8391644 +!p 0.2941982 8.9601378 -6.0095732 -14.6081948 -7.5684585 +!p 0.3049495 9.2005341 -6.0867391 -14.5435276 -8.2464746 +!p 0.3160937 9.4407337 -6.1664649 -14.4728048 -8.8661860 +!p 0.3276451 9.6789061 -6.2485491 -14.3954580 -9.4207917 +!p 0.3396187 9.9129869 -6.3327347 -14.3108715 -9.9039053 +!p 0.3499302 10.1032759 -6.4042667 -14.2343745 -10.2477146 +!p 0.3605549 10.2876740 -6.4768176 -14.1519781 -10.5350007 +!p 0.3715021 10.4646157 -6.5501308 -14.0632463 -10.7634426 +!p 0.3827817 10.6324320 -6.6239109 -13.9677174 -10.9313925 +!p 0.3944038 10.7893593 -6.6978206 -13.8649042 -11.0380117 +!p 0.4063787 10.9335514 -6.7714768 -13.7542934 -11.0834137 +!p 0.4187173 11.0630957 -6.8444481 -13.6353457 -11.0688073 +!p 0.4288573 11.1548687 -6.9020094 -13.5338064 -11.0155117 +!p 0.4392429 11.2349981 -6.9585526 -13.4262705 -10.9272147 +!p 0.4498800 11.3024679 -7.0137837 -13.3124296 -10.8063696 +!p 0.4607747 11.3562719 -7.0673871 -13.1919682 -10.6560351 +!p 0.4719332 11.3954241 -7.1190265 -13.0645669 -10.4798797 +!p 0.4833619 11.4189717 -7.1683478 -12.9299063 -10.2821674 +!p 0.4950674 11.4260076 -7.2149827 -12.7876727 -10.0677190 +!p 0.5070564 11.4156846 -7.2585542 -12.6375651 -9.8418461 +!p 0.5193357 11.3872294 -7.2986840 -12.4793045 -9.6102517 +!p 0.5319124 11.3399580 -7.3350003 -12.3126444 -9.3788966 +!p 0.5447937 11.2732904 -7.3671481 -12.1373823 -9.1538287 +!p 0.5579869 11.1867656 -7.3947974 -11.9533712 -8.9409759 +!p 0.5680910 11.1086380 -7.4124029 -11.8095705 -8.7927233 +!p 0.5783781 11.0190685 -7.4272006 -11.6607960 -8.6566190 +!p 0.5888515 10.9180219 -7.4390939 -11.5070673 -8.5345321 +!p 0.5995146 10.8055148 -7.4480001 -11.3484309 -8.4280025 +!p 0.6103707 10.6816185 -7.4538498 -11.1849607 -8.3381762 +!p 0.6214234 10.5464605 -7.4565860 -11.0167574 -8.2657456 +!p 0.6326763 10.4002260 -7.4561623 -10.8439485 -8.2108979 +!p 0.6441329 10.2431591 -7.4525407 -10.6666871 -8.1732732 +!p 0.6557970 10.0755630 -7.4456892 -10.4851506 -8.1519382 +!p 0.6676723 9.8978000 -7.4355796 -10.2995395 -8.1453753 +!p 0.6797627 9.7102904 -7.4221844 -10.1100765 -8.1514914 +!p 0.6920720 9.5135114 -7.4054749 -9.9170060 -8.1676482 +!p 0.7046042 9.3079944 -7.3854195 -9.7205934 -8.1907138 +!p 0.7173633 9.0943228 -7.3619819 -9.5211259 -8.2171382 +!p 0.7303535 8.8731279 -7.3351208 -9.3189132 -8.2430508 +!p 0.7435789 8.6450849 -7.3047888 -9.1142889 -8.2643781 +!p 0.7570438 8.4109081 -7.2709335 -8.9076127 -8.2769812 +!p 0.7707525 8.1713455 -7.2334973 -8.6992729 -8.2768085 +!p 0.7847094 7.9271726 -7.1924192 -8.4896885 -8.2600596 +!p 0.7989191 7.6791865 -7.1476355 -8.2793122 -8.2233561 +!p 0.8133861 7.4281988 -7.0990817 -8.0686330 -8.1639116 +!p 0.8281151 7.1750287 -7.0466939 -7.8581778 -8.0796958 +!p 0.8431108 6.9204959 -6.9904107 -7.6485131 -7.9695823 +!p 0.8532584 6.7504524 -6.9506958 -7.5094739 -7.8816914 +!p 0.8635283 6.5804027 -6.9092084 -7.3712445 -7.7824666 +!p 0.8739217 6.4105809 -6.8659341 -7.2340223 -7.6723789 +!p 0.8844402 6.2412169 -6.8208605 -7.0980117 -7.5521291 +!p 0.8950853 6.0725348 -6.7739767 -6.9634242 -7.4226439 +!p 0.9058586 5.9047528 -6.7252745 -6.8304774 -7.2850668 +!p 0.9167615 5.7380820 -6.6747480 -6.6993943 -7.1407417 +!p 0.9277956 5.5727258 -6.6223943 -6.5704022 -6.9911905 +!p 0.9389626 5.4088793 -6.5682137 -6.4437319 -6.8380831 +!p 0.9502639 5.2467287 -6.5122105 -6.3196157 -6.6832006 +!p 0.9617013 5.0864504 -6.4543934 -6.1982865 -6.5283925 +!p 0.9732764 4.9282109 -6.3947762 -6.0799755 -6.3755271 +!p 0.9849907 4.7721665 -6.3333780 -5.9649102 -6.2264388 +!p 0.9968461 4.6184622 -6.2702251 -5.8533125 -6.0828706 +!p 1.0088441 4.4672323 -6.2053506 -5.7453959 -5.9464166 +!p 1.0209865 4.3185996 -6.1387965 -5.6413630 -5.8184651 +!p 1.0332751 4.1726756 -6.0706141 -5.5414024 -5.7001457 +!p 1.0457116 4.0295600 -6.0008657 -5.4456858 -5.5922816 +!p 1.0582978 3.8893412 -5.9296255 -5.3543648 -5.4953524 +!p 1.0710355 3.7520959 -5.8569810 -5.2675671 -5.4094679 +!p 1.0839265 3.6178895 -5.7830349 -5.1853938 -5.3343551 +!p 1.0969726 3.4867762 -5.7079059 -5.1079150 -5.2693627 +!p 1.1101758 3.3587992 -5.6317305 -5.0351672 -5.2134805 +!p 1.1235379 3.2339911 -5.5546645 -4.9671491 -5.1653783 +!p 1.1370608 3.1123739 -5.4768841 -4.9038189 -5.1234597 +!p 1.1507464 2.9939600 -5.3985871 -4.8450912 -5.0859330 +!p 1.1645968 2.8787520 -5.3199940 -4.7908340 -5.0508939 +!p 1.1786139 2.7667437 -5.2413484 -4.7408671 -5.0164188 +!p 1.1927997 2.6579203 -5.1629176 -4.6949599 -4.9806636 +!p 1.2071562 2.5522591 -5.0849921 -4.6528308 -4.9419637 +!p 1.2216856 2.4497301 -5.0078851 -4.6141466 -4.8989291 +!p 1.2363898 2.3502967 -4.9319312 -4.5785235 -4.8505314 +!p 1.2512710 2.2539163 -4.8574843 -4.5455288 -4.7961737 +!p 1.2663313 2.1605412 -4.7849145 -4.5146834 -4.7390248 +!p 1.2815728 2.0701188 -4.7146050 -4.4854660 -4.6825954 +!p 1.2969978 1.9825930 -4.6469473 -4.4573187 -4.6268190 +!p 1.3126085 1.8979044 -4.5823359 -4.4296531 -4.5716930 +!p 1.3284070 1.8159916 -4.5211620 -4.4018593 -4.5172153 +!p 1.3443958 1.7367914 -4.4638071 -4.3733154 -4.4633837 +!p 1.3605769 1.6602397 -4.4101973 -4.3433999 -4.4101973 +!p 1.3769528 1.5862729 -4.3576587 -4.3115076 -4.3576587 +!p 1.3935258 1.5148294 -4.3057638 -4.2770542 -4.3057638 +!p 1.4102983 1.4458511 -4.2545060 -4.2394975 -4.2545060 +!p 1.4272726 1.3792832 -4.2038770 -4.1983560 -4.2038770 +!p 1.4444513 1.3150746 -4.1538667 -4.1532295 -4.1538667 +!p 1.4618367 1.2531780 -4.1044622 -4.1044622 -4.1044622 +!p 1.4794314 1.1935483 -4.0556469 -4.0556469 -4.0556469 +!p 1.4972378 1.1361404 -4.0074124 -4.0074124 -4.0074124 +!p 1.5152586 1.0809076 -3.9597518 -3.9597518 -3.9597518 +!p 1.5334962 1.0278022 -3.9126584 -3.9126584 -3.9126584 +!p 1.5519534 0.9767755 -3.8661252 -3.8661252 -3.8661252 +!p 1.5706327 0.9277779 -3.8201455 -3.8201455 -3.8201455 +!p 1.5895368 0.8807591 -3.7747126 -3.7747126 -3.7747126 +!p 1.6086685 0.8356683 -3.7298199 -3.7298199 -3.7298199 +!p 1.6280304 0.7924543 -3.6854609 -3.6854609 -3.6854609 +!p 1.6476254 0.7510655 -3.6416294 -3.6416294 -3.6416294 +!p 1.6674562 0.7114501 -3.5983191 -3.5983191 -3.5983191 +!p 1.6774609 0.6922913 -3.5768575 -3.5768575 -3.5768575 +!p 1.6875257 0.6735563 -3.5555239 -3.5555239 -3.5555239 +!p 1.6976509 0.6552389 -3.5343176 -3.5343176 -3.5343176 +!p 1.7078368 0.6373325 -3.5132377 -3.5132377 -3.5132377 +!p 1.7180838 0.6198306 -3.4922839 -3.4922839 -3.4922839 +!p 1.7283923 0.6027269 -3.4714555 -3.4714555 -3.4714555 +!p 1.7387627 0.5860149 -3.4507509 -3.4507509 -3.4507509 +!p 1.7491952 0.5696883 -3.4301696 -3.4301696 -3.4301696 +!p 1.7596904 0.5537406 -3.4097110 -3.4097110 -3.4097110 +!p 1.7702485 0.5381655 -3.3893745 -3.3893745 -3.3893745 +!p 1.7808700 0.5229568 -3.3691593 -3.3691593 -3.3691593 +!p 1.7915553 0.5081081 -3.3490647 -3.3490647 -3.3490647 +!p 1.8023046 0.4936132 -3.3290899 -3.3290899 -3.3290899 +!p 1.8131184 0.4794659 -3.3092342 -3.3092342 -3.3092342 +!p 1.8239971 0.4656601 -3.2894970 -3.2894970 -3.2894970 +!p 1.8349411 0.4521895 -3.2698775 -3.2698775 -3.2698775 +!p 1.8459508 0.4390481 -3.2503750 -3.2503750 -3.2503750 +!p 1.8570265 0.4262299 -3.2309888 -3.2309888 -3.2309888 +!p 1.8681686 0.4137289 -3.2117183 -3.2117183 -3.2117183 +!p 1.8793776 0.4015392 -3.1925627 -3.1925627 -3.1925627 +!p 1.8906539 0.3896548 -3.1735214 -3.1735214 -3.1735214 +!p 1.9019978 0.3780699 -3.1545936 -3.1545936 -3.1545936 +!p 1.9134098 0.3667787 -3.1357787 -3.1357787 -3.1357787 +!p 1.9248903 0.3557755 -3.1170760 -3.1170760 -3.1170760 +!p 1.9364396 0.3450546 -3.0984849 -3.0984849 -3.0984849 +!p 1.9480582 0.3346103 -3.0800047 -3.0800047 -3.0800047 +!p 1.9597466 0.3244373 -3.0616347 -3.0616347 -3.0616347 +!p 1.9715051 0.3145298 -3.0433743 -3.0433743 -3.0433743 +!p 1.9833341 0.3048825 -3.0252227 -3.0252227 -3.0252227 +!p 1.9952341 0.2954901 -3.0071795 -3.0071795 -3.0071795 +!p 2.0072055 0.2863471 -2.9892438 -2.9892438 -2.9892438 +!p 2.0192487 0.2774484 -2.9714152 -2.9714152 -2.9714152 +!p 2.0313642 0.2687887 -2.9536928 -2.9536928 -2.9536928 +!p 2.0435524 0.2603630 -2.9360762 -2.9360762 -2.9360762 +!p 2.0558137 0.2521662 -2.9185646 -2.9185646 -2.9185646 +!p 2.0681486 0.2441933 -2.9011575 -2.9011575 -2.9011575 +!p 2.0805575 0.2364394 -2.8838542 -2.8838542 -2.8838542 +!p 2.0930409 0.2288996 -2.8666542 -2.8666542 -2.8666542 +!p 2.1055991 0.2215691 -2.8495567 -2.8495567 -2.8495567 +!p 2.1182327 0.2144433 -2.8325611 -2.8325611 -2.8325611 +!p 2.1309421 0.2075174 -2.8156670 -2.8156670 -2.8156670 +!p 2.1437277 0.2007870 -2.7988736 -2.7988736 -2.7988736 +!p 2.1565901 0.1942475 -2.7821804 -2.7821804 -2.7821804 +!p 2.1695296 0.1878944 -2.7655867 -2.7655867 -2.7655867 +!p 2.1825468 0.1817235 -2.7490920 -2.7490920 -2.7490920 +!p 2.1956421 0.1757303 -2.7326957 -2.7326957 -2.7326957 +!p 2.2088160 0.1699107 -2.7163972 -2.7163972 -2.7163972 +!p 2.2220689 0.1642605 -2.7001959 -2.7001959 -2.7001959 +!p 2.2354013 0.1587756 -2.6840912 -2.6840912 -2.6840912 +!p 2.2488137 0.1534520 -2.6680826 -2.6680826 -2.6680826 +!p 2.2623066 0.1482858 -2.6521694 -2.6521694 -2.6521694 +!p 2.2758804 0.1432730 -2.6363512 -2.6363512 -2.6363512 +!p 2.2895357 0.1384099 -2.6206273 -2.6206273 -2.6206273 +!p 2.3032729 0.1336927 -2.6049972 -2.6049972 -2.6049972 +!p 2.3170925 0.1291177 -2.5894603 -2.5894603 -2.5894603 +!p 2.3309951 0.1246814 -2.5740161 -2.5740161 -2.5740161 +!p 2.3449811 0.1203801 -2.5586640 -2.5586640 -2.5586640 +!p 2.3590509 0.1162104 -2.5434035 -2.5434035 -2.5434035 +!p 2.3732052 0.1121689 -2.5282340 -2.5282340 -2.5282340 +!p 2.3874445 0.1082523 -2.5131549 -2.5131549 -2.5131549 +!p 2.4017691 0.1044572 -2.4981658 -2.4981658 -2.4981658 +!p 2.4161798 0.1007805 -2.4832661 -2.4832661 -2.4832661 + !L 0.0099582 -10.0124145 + !L 0.0200515 -10.0127081 + !L 0.0301168 -10.0131360 + !L 0.0401340 -10.0136186 + !L 0.0503774 -10.0140804 + !L 0.0606419 -10.0144203 + !L 0.0708469 -10.0145525 + !L 0.0812969 -10.0143974 + !L 0.0916292 -10.0138862 + !L 0.1020463 -10.0129475 + !L 0.1122962 -10.0115528 + !L 0.1228386 -10.0095754 + !L 0.1335693 -10.0069412 + !L 0.1443711 -10.0035992 + !L 0.1551158 -9.9995310 + !L 0.1656662 -9.9947593 + !L 0.1758789 -9.9893552 + !L 0.1867211 -9.9827162 + !L 0.1970495 -9.9754735 + !L 0.2079491 -9.9667985 + !L 0.2181429 -9.9576714 + !L 0.2288363 -9.9469854 + !L 0.2400539 -9.9344870 + !L 0.2503194 -9.9218351 + !L 0.2610240 -9.9073471 + !L 0.2721863 -9.8907688 + !L 0.2838260 -9.8718129 + !L 0.2941982 -9.8534287 + !L 0.3049495 -9.8328348 + !L 0.3160937 -9.8097824 + !L 0.3276451 -9.7839993 + !L 0.3396187 -9.7551879 + !L 0.3499302 -9.7286325 + !L 0.3605549 -9.6995480 + !L 0.3715021 -9.6677187 + !L 0.3827817 -9.6329144 + !L 0.3944038 -9.5948894 + !L 0.4063787 -9.5533821 + !L 0.4187173 -9.5081137 + !L 0.4288573 -9.4689921 + !L 0.4392429 -9.4271135 + !L 0.4498800 -9.3823106 + !L 0.4607747 -9.3344097 + !L 0.4719332 -9.2832326 + !L 0.4833619 -9.2285990 + !L 0.4950674 -9.1703306 + !L 0.5070564 -9.1082563 + !L 0.5193357 -9.0422192 + !L 0.5319124 -8.9720843 + !L 0.5447937 -8.8977473 + !L 0.5579869 -8.8191428 + !L 0.5680910 -8.7573754 + !L 0.5783781 -8.6932062 + !L 0.5888515 -8.6266624 + !L 0.5995146 -8.5577878 + !L 0.6103707 -8.4866419 + !L 0.6214234 -8.4132983 + !L 0.6326763 -8.3378425 + !L 0.6441329 -8.2603694 + !L 0.6557970 -8.1809806 + !L 0.6676723 -8.0997809 + !L 0.6797627 -8.0168761 + !L 0.6920720 -7.9323699 + !L 0.7046042 -7.8463617 + !L 0.7173633 -7.7589457 + !L 0.7303535 -7.6702088 + !L 0.7435789 -7.5802310 + !L 0.7570438 -7.4890856 + !L 0.7707525 -7.3968394 + !L 0.7847094 -7.3035547 + !L 0.7989191 -7.2092902 + !L 0.8133861 -7.1141033 + !L 0.8281151 -7.0180517 + !L 0.8431108 -6.9211956 + !L 0.8532584 -6.8562096 + !L 0.8635283 -6.7909151 + !L 0.8739217 -6.7253340 + !L 0.8844402 -6.6594899 + !L 0.8950853 -6.5934079 + !L 0.9058586 -6.5271150 + !L 0.9167615 -6.4606404 + !L 0.9277956 -6.3940149 + !L 0.9389626 -6.3272717 + !L 0.9502639 -6.2604458 + !L 0.9617013 -6.1935743 + !L 0.9732764 -6.1266963 + !L 0.9849907 -6.0598524 + !L 0.9968461 -5.9930852 + !L 1.0088441 -5.9264385 + !L 1.0209865 -5.8599574 + !L 1.0332751 -5.7936880 + !L 1.0457116 -5.7276767 + !L 1.0582978 -5.6619703 + !L 1.0710355 -5.5966153 + !L 1.0839265 -5.5316576 + !L 1.0969726 -5.4671417 + !L 1.1101758 -5.4031102 + !L 1.1235379 -5.3396035 + !L 1.1370608 -5.2766587 + !L 1.1507464 -5.2143088 + !L 1.1645968 -5.1525824 + !L 1.1786139 -5.0915022 + !L 1.1927997 -5.0310845 + !L 1.2071562 -4.9713379 + !L 1.2216856 -4.9122628 + !L 1.2363898 -4.8538549 + !L 1.2512710 -4.7961102 + !L 1.2663313 -4.7390248 + !L 1.2815728 -4.6825954 + !L 1.2969978 -4.6268190 + !L 1.3126085 -4.5716930 + !L 1.3284070 -4.5172153 + !L 1.3443958 -4.4633837 + !L 1.3605769 -4.4101973 + !L 1.3769528 -4.3576587 + !L 1.3935258 -4.3057638 + !L 1.4102983 -4.2545060 + !L 1.4272726 -4.2038770 + !L 1.4444513 -4.1538667 + !L 1.4618367 -4.1044622 + !L 1.4794314 -4.0556469 + !L 1.4972378 -4.0074124 + !L 1.5152586 -3.9597518 + !L 1.5334962 -3.9126584 + !L 1.5519534 -3.8661252 + !L 1.5706327 -3.8201455 + !L 1.5895368 -3.7747126 + !L 1.6086685 -3.7298199 + !L 1.6280304 -3.6854609 + !L 1.6476254 -3.6416294 + !L 1.6674562 -3.5983191 + !L 1.6774609 -3.5768575 + !L 1.6875257 -3.5555239 + !L 1.6976509 -3.5343176 + !L 1.7078368 -3.5132377 + !L 1.7180838 -3.4922839 + !L 1.7283923 -3.4714555 + !L 1.7387627 -3.4507509 + !L 1.7491952 -3.4301696 + !L 1.7596904 -3.4097110 + !L 1.7702485 -3.3893745 + !L 1.7808700 -3.3691593 + !L 1.7915553 -3.3490647 + !L 1.8023046 -3.3290899 + !L 1.8131184 -3.3092342 + !L 1.8239971 -3.2894970 + !L 1.8349411 -3.2698775 + !L 1.8459508 -3.2503750 + !L 1.8570265 -3.2309888 + !L 1.8681686 -3.2117183 + !L 1.8793776 -3.1925627 + !L 1.8906539 -3.1735214 + !L 1.9019978 -3.1545936 + !L 1.9134098 -3.1357787 + !L 1.9248903 -3.1170760 + !L 1.9364396 -3.0984849 + !L 1.9480582 -3.0800047 + !L 1.9597466 -3.0616347 + !L 1.9715051 -3.0433743 + !L 1.9833341 -3.0252227 + !L 1.9952341 -3.0071795 + !L 2.0072055 -2.9892438 + !L 2.0192487 -2.9714152 + !L 2.0313642 -2.9536928 + !L 2.0435524 -2.9360762 + !L 2.0558137 -2.9185646 + !L 2.0681486 -2.9011575 + !L 2.0805575 -2.8838542 + !L 2.0930409 -2.8666542 + !L 2.1055991 -2.8495567 + !L 2.1182327 -2.8325611 + !L 2.1309421 -2.8156670 + !L 2.1437277 -2.7988736 + !L 2.1565901 -2.7821804 + !L 2.1695296 -2.7655867 + !L 2.1825468 -2.7490920 + !L 2.1956421 -2.7326957 + !L 2.2088160 -2.7163972 + !L 2.2220689 -2.7001959 + !L 2.2354013 -2.6840912 + !L 2.2488137 -2.6680826 + !L 2.2623066 -2.6521694 + !L 2.2758804 -2.6363512 + !L 2.2895357 -2.6206273 + !L 2.3032729 -2.6049972 + !L 2.3170925 -2.5894603 + !L 2.3309951 -2.5740161 + !L 2.3449811 -2.5586640 + !L 2.3590509 -2.5434035 + !L 2.3732052 -2.5282340 + !L 2.3874445 -2.5131549 + !L 2.4017691 -2.4981658 + !L 2.4161798 -2.4832661 + + + radii, charge, core charge, model core charge + +!r 0.0200515 3.7727866 57.1300382 42.8450736 +!r 0.0301168 3.8162815 57.1300382 42.6381494 +!r 0.0401340 3.8765889 57.1300382 42.3513403 +!r 0.0503774 3.9555007 57.1300382 41.9762265 +!r 0.0606419 4.0516508 57.1300382 41.5194311 +!r 0.0708469 4.1636865 57.1300382 40.9875233 +!r 0.0812969 4.2947972 57.1300382 40.3655334 +!r 0.0916292 4.4400375 57.1300382 39.6771012 +!r 0.1020463 4.6014022 57.1300382 38.9129435 +!r 0.1122962 4.7739745 57.1300382 38.0965005 +!r 0.1228386 4.9648105 57.1300382 37.1945565 +!r 0.1335693 5.1718895 57.1300382 36.2168563 +!r 0.1443711 5.3922587 57.1300382 35.1774780 +!r 0.1551158 5.6221050 57.1300382 34.0944632 +!r 0.1656662 5.8568993 57.1300382 32.9891114 +!r 0.1758789 6.0916035 57.1300382 31.8850037 +!r 0.1867211 6.3474780 57.1300382 30.6820123 +!r 0.1970495 6.5963948 57.1300382 29.5121711 +!r 0.2079491 6.8631883 57.1300382 28.2584352 +!r 0.2181429 7.1152740 57.1300382 27.0735281 +!r 0.2288363 7.3810837 57.1300382 25.8232970 +!r 0.2400539 7.6599905 57.1300382 24.5098702 +!r 0.2503194 7.9140144 57.1300382 23.3114496 +!r 0.2610240 8.1763995 57.1300382 22.0704866 +!r 0.2721863 8.4459479 55.2961775 20.7911679 +!r 0.2838260 8.7211490 46.4703337 19.4787099 +!r 0.2941982 8.9601378 39.8127913 18.3321166 +!r 0.3049495 9.2005341 33.9276229 17.1704102 +!r 0.3160937 9.4407337 28.7534341 15.9988190 +!r 0.3276451 9.6789061 24.2298329 14.8231629 +!r 0.3396187 9.9129869 20.2979347 13.6498207 +!r 0.3499302 10.1032759 17.4322152 12.6787555 +!r 0.3605549 10.2876740 14.9061330 11.7182830 +!r 0.3715021 10.4646157 12.6892738 10.7727811 +!r 0.3827817 10.6324320 10.7526259 9.8467411 +!r 0.3944038 10.7893593 9.0686768 8.9447082 +!r 0.4063787 10.9335514 7.6114883 8.0712116 +!r 0.4187173 11.0630957 6.3567499 7.2306866 +!r 0.4288573 11.1548687 5.4834462 6.5848744 +!r 0.4392429 11.2349981 4.7143577 5.9649516 +!r 0.4498800 11.3024679 4.0393455 5.3728347 +!r 0.4607747 11.3562719 3.4489524 4.8102667 +!r 0.4719332 11.3954241 2.9343929 4.2787859 +!r 0.4833619 11.4189717 2.4875407 3.7796954 +!r 0.4950674 11.4260076 2.1009118 3.3140355 +!r 0.5070564 11.4156846 1.7676434 2.8825579 +!r 0.5193357 11.3872294 1.4814703 2.4857049 +!r 0.5319124 11.3399580 1.2366982 2.1235926 +!r 0.5447937 11.2732904 1.0281746 1.7960005 +!r 0.5579869 11.1867656 0.8512576 1.5023677 +!r 0.5680910 11.1086380 0.7367906 1.3039016 +!r 0.5783781 11.0190685 0.6361618 1.1235403 +!r 0.5888515 10.9180219 0.5479147 0.9606863 +!r 0.5995146 10.8055148 0.4707186 0.8146501 +!r 0.6103707 10.6816185 0.4033608 0.6846572 +!r 0.6214234 10.5464605 0.3447390 0.5698578 +!r 0.6326763 10.4002260 0.2938543 0.4693370 +!r 0.6441329 10.2431591 0.2498034 0.3821260 +!r 0.6557970 10.0755630 0.2117723 0.3072151 +!r 0.6676723 9.8978000 0.1790291 0.2435669 +!r 0.6797627 9.7102904 0.1509181 0.1901299 +!r 0.6920720 9.5135114 0.1268530 0.1458528 +!r 0.7046042 9.3079944 0.1063116 0.1096983 +!r 0.7173633 9.0943228 0.0888299 0.0806564 +!r 0.7303535 8.8731279 0.0739969 0.0577578 +!r 0.7435789 8.6450849 0.0614501 0.0400843 +!r 0.7570438 8.4109081 0.0508700 0.0267801 +!r 0.7707525 8.1713455 0.0419768 0.0170592 +!r 0.7847094 7.9271726 0.0345256 0.0102128 +!r 0.7989191 7.6791865 0.0283031 0.0056126 +!r 0.8133861 7.4281988 0.0231240 0.0027138 +!r 0.8281151 7.1750287 0.0188280 0.0010544 +!r 0.8431108 6.9204959 0.0152768 0.0002531 +!r 0.8532584 6.7504524 0.0132636 0.0000421 +!r 0.8635283 6.5804027 0.0114975 0.0000029 +!r 0.8739217 6.4105809 0.0099505 0.0000757 +!r 0.8844402 6.2412169 0.0085976 0.0002129 +!r 0.8950853 6.0725348 0.0074164 0.0003772 +!r 0.9058586 5.9047528 0.0063869 0.0005411 +!r 0.9167615 5.7380820 0.0054911 0.0006855 +!r 0.9277956 5.5727258 0.0047128 0.0007981 +!r 0.9389626 5.4088793 0.0040379 0.0008727 +!r 0.9502639 5.2467287 0.0034537 0.0009077 +!r 0.9617013 5.0864504 0.0029488 0.0009049 +!r 0.9732764 4.9282109 0.0025132 0.0008690 +!r 0.9849907 4.7721665 0.0021381 0.0008061 +!r 0.9968461 4.6184622 0.0018157 0.0007232 +!r 1.0088441 4.4672323 0.0015391 0.0006277 +!r 1.0209865 4.3185996 0.0013022 0.0005265 +!r 1.0332751 4.1726756 0.0010997 0.0004256 +!r 1.0457116 4.0295600 0.0009269 0.0003304 +!r 1.0582978 3.8893412 0.0007797 0.0002446 +!r 1.0710355 3.7520959 0.0006547 0.0001710 +!r 1.0839265 3.6178895 0.0005486 0.0001111 +!r 1.0969726 3.4867762 0.0004588 0.0000653 +!r 1.1101758 3.3587992 0.0003829 0.0000328 +!r 1.1235379 3.2339911 0.0003190 0.0000125 +!r 1.1370608 3.1123739 0.0002651 0.0000023 +!r 1.1507464 2.9939600 0.0002199 0.0000001 +!r 1.1645968 2.8787520 0.0001820 0.0000036 +!r 1.1786139 2.7667437 0.0001504 0.0000105 +!r 1.1927997 2.6579203 0.0001239 0.0000190 +!r 1.2071562 2.5522591 0.0001019 0.0000273 +!r 1.2216856 2.4497301 0.0000836 0.0000342 +!r 1.2363898 2.3502967 0.0000685 0.0000389 +!r 1.2512710 2.2539163 0.0000560 0.0000411 +!r 1.2663313 2.1605412 0.0000456 0.0000407 +!r 1.2815728 2.0701188 0.0000371 0.0000380 +!r 1.2969978 1.9825930 0.0000301 0.0000336 +!r 1.3126085 1.8979044 0.0000244 0.0000280 +!r 1.3284070 1.8159916 0.0000197 0.0000219 +!r 1.3443958 1.7367914 0.0000158 0.0000159 +!r 1.3605769 1.6602397 0.0000127 0.0000106 +!r 1.3769528 1.5862729 0.0000102 0.0000062 +!r 1.3935258 1.5148294 0.0000082 0.0000030 +!r 1.4102983 1.4458511 0.0000065 0.0000010 +!r 1.4272726 1.3792832 0.0000052 0.0000001 +!r 1.4444513 1.3150746 0.0000041 0.0000001 +!r 1.4618367 1.2531780 0.0000033 0.0000007 +!r 1.4794314 1.1935483 0.0000026 0.0000017 +!r 1.4972378 1.1361404 0.0000020 0.0000027 +!r 1.5152586 1.0809076 0.0000016 0.0000036 +!r 1.5334962 1.0278022 0.0000012 0.0000041 +!r 1.5519534 0.9767755 0.0000010 0.0000043 +!r 1.5706327 0.9277779 0.0000008 0.0000041 +!r 1.5895368 0.8807591 0.0000006 0.0000036 +!r 1.6086685 0.8356683 0.0000005 0.0000029 +!r 1.6280304 0.7924543 0.0000004 0.0000021 +!r 1.6476254 0.7510655 0.0000003 0.0000013 +!r 1.6674562 0.7114501 0.0000002 0.0000007 +!r 1.6774609 0.6922913 0.0000002 0.0000005 +!r 1.6875257 0.6735563 0.0000002 0.0000003 +!r 1.6976509 0.6552389 0.0000001 0.0000001 +!r 1.7078368 0.6373325 0.0000001 0.0000000 +!r 1.7180838 0.6198306 0.0000001 0.0000000 +!r 1.7283923 0.6027269 0.0000001 0.0000000 +!r 1.7387627 0.5860149 0.0000001 0.0000000 +!r 1.7491952 0.5696883 0.0000001 0.0000000 +!r 1.7596904 0.5537406 0.0000001 0.0000000 +!r 1.7702485 0.5381655 0.0000001 0.0000000 +!r 1.7808700 0.5229568 0.0000000 0.0000000 +!r 1.7915553 0.5081081 0.0000000 0.0000000 +!r 1.8023046 0.4936132 0.0000000 0.0000000 +!r 1.8131184 0.4794659 0.0000000 0.0000000 +!r 1.8239971 0.4656601 0.0000000 0.0000000 +!r 1.8349411 0.4521895 0.0000000 0.0000000 +!r 1.8459508 0.4390481 0.0000000 0.0000000 +!r 1.8570265 0.4262299 0.0000000 0.0000000 +!r 1.8681686 0.4137289 0.0000000 0.0000000 +!r 1.8793776 0.4015392 0.0000000 0.0000000 +!r 1.8906539 0.3896548 0.0000000 0.0000000 +!r 1.9019978 0.3780699 0.0000000 0.0000000 +!r 1.9134098 0.3667787 0.0000000 0.0000000 +!r 1.9248903 0.3557755 0.0000000 0.0000000 +!r 1.9364396 0.3450546 0.0000000 0.0000000 +!r 1.9480582 0.3346103 0.0000000 0.0000000 +!r 1.9597466 0.3244373 0.0000000 0.0000000 +!r 1.9715051 0.3145298 0.0000000 0.0000000 +!r 1.9833341 0.3048825 0.0000000 0.0000000 +!r 1.9952341 0.2954901 0.0000000 0.0000000 +!r 2.0072055 0.2863471 0.0000000 0.0000000 +!r 2.0192487 0.2774484 0.0000000 0.0000000 +!r 2.0313642 0.2687887 0.0000000 0.0000000 +!r 2.0435524 0.2603630 0.0000000 0.0000000 +!r 2.0558137 0.2521662 0.0000000 0.0000000 +!r 2.0681486 0.2441933 0.0000000 0.0000000 +!r 2.0805575 0.2364394 0.0000000 0.0000000 +!r 2.0930409 0.2288996 0.0000000 0.0000000 +!r 2.1055991 0.2215691 0.0000000 0.0000000 +!r 2.1182327 0.2144433 0.0000000 0.0000000 +!r 2.1309421 0.2075174 0.0000000 0.0000000 +!r 2.1437277 0.2007870 0.0000000 0.0000000 +!r 2.1565901 0.1942475 0.0000000 0.0000000 +!r 2.1695296 0.1878944 0.0000000 0.0000000 +!r 2.1825468 0.1817235 0.0000000 0.0000000 +!r 2.1956421 0.1757303 0.0000000 0.0000000 +!r 2.2088160 0.1699107 0.0000000 0.0000000 +!r 2.2220689 0.1642605 0.0000000 0.0000000 +!r 2.2354013 0.1587756 0.0000000 0.0000000 +!r 2.2488137 0.1534520 0.0000000 0.0000000 +!r 2.2623066 0.1482858 0.0000000 0.0000000 +!r 2.2758804 0.1432730 0.0000000 0.0000000 +!r 2.2895357 0.1384099 0.0000000 0.0000000 +!r 2.3032729 0.1336927 0.0000000 0.0000000 +!r 2.3170925 0.1291177 0.0000000 0.0000000 +!r 2.3309951 0.1246814 0.0000000 0.0000000 +!r 2.3449811 0.1203801 0.0000000 0.0000000 +!r 2.3590509 0.1162104 0.0000000 0.0000000 +!r 2.3732052 0.1121689 0.0000000 0.0000000 +!r 2.3874445 0.1082523 0.0000000 0.0000000 +!r 2.4017691 0.1044572 0.0000000 0.0000000 +!r 2.4161798 0.1007805 0.0000000 0.0000000 +!r 2.4306768 0.0972191 0.0000000 0.0000000 +!r 2.4452609 0.0937697 0.0000000 0.0000000 +!r 2.4599325 0.0904295 0.0000000 0.0000000 +!r 2.4746921 0.0871955 0.0000000 0.0000000 +!r 2.4895402 0.0840647 0.0000000 0.0000000 +!r 2.5044775 0.0810344 0.0000000 0.0000000 +!r 2.5195043 0.0781017 0.0000000 0.0000000 +!r 2.5346213 0.0752640 0.0000000 0.0000000 +!r 2.5498291 0.0725185 0.0000000 0.0000000 +!r 2.5651280 0.0698628 0.0000000 0.0000000 +!r 2.5805188 0.0672942 0.0000000 0.0000000 +!r 2.5960019 0.0648104 0.0000000 0.0000000 +!r 2.6115779 0.0624088 0.0000000 0.0000000 +!r 2.6272474 0.0600871 0.0000000 0.0000000 +!r 2.6430109 0.0578429 0.0000000 0.0000000 +!r 2.6588690 0.0556741 0.0000000 0.0000000 +!r 2.6748222 0.0535785 0.0000000 0.0000000 +!r 2.6908711 0.0515538 0.0000000 0.0000000 +!r 2.7070163 0.0495979 0.0000000 0.0000000 +!r 2.7232584 0.0477089 0.0000000 0.0000000 +!r 2.7395980 0.0458847 0.0000000 0.0000000 +!r 2.7560356 0.0441234 0.0000000 0.0000000 +!r 2.7725718 0.0424231 0.0000000 0.0000000 +!r 2.7892072 0.0407818 0.0000000 0.0000000 +!r 2.8059425 0.0391979 0.0000000 0.0000000 +!r 2.8227781 0.0376695 0.0000000 0.0000000 +!r 2.8397148 0.0361949 0.0000000 0.0000000 +!r 2.8567531 0.0347725 0.0000000 0.0000000 +!r 2.8738936 0.0334007 0.0000000 0.0000000 +!r 2.8911369 0.0320777 0.0000000 0.0000000 +!r 2.9084838 0.0308022 0.0000000 0.0000000 +!r 2.9259347 0.0295725 0.0000000 0.0000000 +!r 2.9434903 0.0283873 0.0000000 0.0000000 +!r 2.9611512 0.0272451 0.0000000 0.0000000 +!r 2.9789181 0.0261445 0.0000000 0.0000000 +!r 2.9967916 0.0250842 0.0000000 0.0000000 +!r 3.0147724 0.0240629 0.0000000 0.0000000 +!r 3.0328610 0.0230792 0.0000000 0.0000000 +!r 3.0510582 0.0221320 0.0000000 0.0000000 +!r 3.0693645 0.0212201 0.0000000 0.0000000 +!r 3.0877807 0.0203422 0.0000000 0.0000000 +!r 3.1063074 0.0194973 0.0000000 0.0000000 +!r 3.1249453 0.0186843 0.0000000 0.0000000 +!r 3.1436949 0.0179020 0.0000000 0.0000000 +!r 3.1625571 0.0171494 0.0000000 0.0000000 +!r 3.1815324 0.0164256 0.0000000 0.0000000 +!r 3.2006216 0.0157295 0.0000000 0.0000000 +!r 3.2198254 0.0150603 0.0000000 0.0000000 +!r 3.2391443 0.0144169 0.0000000 0.0000000 +!r 3.2585792 0.0137984 0.0000000 0.0000000 +!r 3.2781307 0.0132041 0.0000000 0.0000000 +!r 3.2977994 0.0126331 0.0000000 0.0000000 +!r 3.3175862 0.0120845 0.0000000 0.0000000 +!r 3.3374918 0.0115575 0.0000000 0.0000000 +!r 3.3575167 0.0110515 0.0000000 0.0000000 +!r 3.3776618 0.0105656 0.0000000 0.0000000 +!r 3.3979278 0.0100992 0.0000000 0.0000000 +!r 3.4183153 0.0096515 0.0000000 0.0000000 +!r 3.4388252 0.0092218 0.0000000 0.0000000 +!r 3.4594582 0.0088096 0.0000000 0.0000000 +!r 3.4802149 0.0084141 0.0000000 0.0000000 +!r 3.5010962 0.0080348 0.0000000 0.0000000 +!r 3.5221028 0.0076710 0.0000000 0.0000000 +!r 3.5432354 0.0073223 0.0000000 0.0000000 +!r 3.5644948 0.0069880 0.0000000 0.0000000 +!r 3.5858818 0.0066676 0.0000000 0.0000000 +!r 3.6073971 0.0063605 0.0000000 0.0000000 +!r 3.6290415 0.0060664 0.0000000 0.0000000 +!r 3.6508157 0.0057846 0.0000000 0.0000000 +!r 3.6727206 0.0055148 0.0000000 0.0000000 +!r 3.6947569 0.0052565 0.0000000 0.0000000 +!r 3.7169255 0.0050092 0.0000000 0.0000000 +!r 3.7392270 0.0047724 0.0000000 0.0000000 +!r 3.7616624 0.0045459 0.0000000 0.0000000 +!r 3.7842324 0.0043292 0.0000000 0.0000000 +!r 3.8069378 0.0041220 0.0000000 0.0000000 +!r 3.8297794 0.0039237 0.0000000 0.0000000 +!r 3.8527581 0.0037342 0.0000000 0.0000000 +!r 3.8758746 0.0035530 0.0000000 0.0000000 +!r 3.8991299 0.0033799 0.0000000 0.0000000 +!r 3.9225246 0.0032145 0.0000000 0.0000000 +!r 3.9460598 0.0030564 0.0000000 0.0000000 +!r 3.9697361 0.0029055 0.0000000 0.0000000 +!r 3.9935546 0.0027613 0.0000000 0.0000000 +!r 4.0175159 0.0026237 0.0000000 0.0000000 +!r 4.0416210 0.0024924 0.0000000 0.0000000 +!r 4.0658707 0.0023671 0.0000000 0.0000000 +!r 4.0902659 0.0022475 0.0000000 0.0000000 +!r 4.1148075 0.0021335 0.0000000 0.0000000 +!r 4.1394964 0.0020248 0.0000000 0.0000000 +!r 4.1643334 0.0019211 0.0000000 0.0000000 +!r 4.1893194 0.0018223 0.0000000 0.0000000 +!r 4.2144553 0.0017282 0.0000000 0.0000000 +!r 4.2397420 0.0016385 0.0000000 0.0000000 +!r 4.2651805 0.0015531 0.0000000 0.0000000 +!r 4.2907715 0.0014718 0.0000000 0.0000000 +!r 4.3165162 0.0013943 0.0000000 0.0000000 +!r 4.3424153 0.0013207 0.0000000 0.0000000 +!r 4.3684698 0.0012505 0.0000000 0.0000000 +!r 4.3946806 0.0011839 0.0000000 0.0000000 +!r 4.4210487 0.0011204 0.0000000 0.0000000 +!r 4.4475750 0.0010601 0.0000000 0.0000000 +!r 4.4742604 0.0010028 0.0000000 0.0000000 +!r 4.5011060 0.0009483 0.0000000 0.0000000 +!r 4.5281126 0.0008966 0.0000000 0.0000000 +!r 4.5552813 0.0008475 0.0000000 0.0000000 +!r 4.5826130 0.0008008 0.0000000 0.0000000 +!r 4.6101086 0.0007565 0.0000000 0.0000000 +!r 4.6377693 0.0007145 0.0000000 0.0000000 +!r 4.6655959 0.0006746 0.0000000 0.0000000 +!r 4.6935895 0.0006367 0.0000000 0.0000000 +!r 4.7217510 0.0006009 0.0000000 0.0000000 +!r 4.7500815 0.0005669 0.0000000 0.0000000 +!r 4.7785820 0.0005346 0.0000000 0.0000000 +!r 4.8072535 0.0005041 0.0000000 0.0000000 +!r 4.8360970 0.0004752 0.0000000 0.0000000 +!r 4.8651136 0.0004478 0.0000000 0.0000000 +!r 4.8943043 0.0004219 0.0000000 0.0000000 +!r 4.9236701 0.0003973 0.0000000 0.0000000 +!r 4.9532121 0.0003741 0.0000000 0.0000000 +!r 4.9829314 0.0003521 0.0000000 0.0000000 +!r 5.0128290 0.0003314 0.0000000 0.0000000 +!r 5.0429060 0.0003117 0.0000000 0.0000000 +!r 5.0731634 0.0002932 0.0000000 0.0000000 +!r 5.1036024 0.0002756 0.0000000 0.0000000 +!r 5.1342240 0.0002591 0.0000000 0.0000000 +!r 5.1650294 0.0002435 0.0000000 0.0000000 +!r 5.1960195 0.0002287 0.0000000 0.0000000 +!r 5.2271956 0.0002148 0.0000000 0.0000000 +!r 5.2585588 0.0002016 0.0000000 0.0000000 +!r 5.2901102 0.0001892 0.0000000 0.0000000 +!r 5.3218508 0.0001775 0.0000000 0.0000000 +!r 5.3537819 0.0001665 0.0000000 0.0000000 +!r 5.3859046 0.0001561 0.0000000 0.0000000 +!r 5.4182201 0.0001464 0.0000000 0.0000000 +!r 5.4507294 0.0001372 0.0000000 0.0000000 +!r 5.4834338 0.0001285 0.0000000 0.0000000 +!r 5.5163344 0.0001203 0.0000000 0.0000000 +!r 5.5494324 0.0001126 0.0000000 0.0000000 +!r 5.5827290 0.0001054 0.0000000 0.0000000 +!r 5.6162253 0.0000986 0.0000000 0.0000000 +!r 5.6499227 0.0000922 0.0000000 0.0000000 +!r 5.6838222 0.0000863 0.0000000 0.0000000 +!r 5.7179252 0.0000806 0.0000000 0.0000000 +!r 5.7522327 0.0000753 0.0000000 0.0000000 +!r 5.7867461 0.0000704 0.0000000 0.0000000 +!r 5.8214666 0.0000657 0.0000000 0.0000000 +!r 5.8563954 0.0000613 0.0000000 0.0000000 +!r 5.8915337 0.0000572 0.0000000 0.0000000 +!r 5.9268829 0.0000534 0.0000000 0.0000000 +!r 5.9624442 0.0000498 0.0000000 0.0000000 +!r 5.9982189 0.0000464 0.0000000 0.0000000 + + +n= 2, l= 0, all-electron wave function, pseudo w-f + +& 10 0.009958 -0.093703 0.013614 +& 10 0.020051 -0.173457 0.027416 +& 10 0.030117 -0.239393 0.041183 +& 10 0.040134 -0.292926 0.054891 +& 10 0.050377 -0.336495 0.068917 +& 10 0.060642 -0.370021 0.082983 +& 10 0.070847 -0.394378 0.096980 +& 10 0.081297 -0.411065 0.111328 +& 10 0.091629 -0.420266 0.125531 +& 10 0.102046 -0.423037 0.139869 +& 10 0.112296 -0.420123 0.153996 +& 10 0.122839 -0.411984 0.168547 +& 10 0.133569 -0.399003 0.183379 +& 10 0.144371 -0.381765 0.198333 +& 10 0.155116 -0.361021 0.213231 +& 10 0.165666 -0.337646 0.227882 +& 10 0.175879 -0.312583 0.242084 +& 10 0.186721 -0.283745 0.257182 +& 10 0.197049 -0.254476 0.271582 +& 10 0.207949 -0.222012 0.286797 +& 10 0.218143 -0.190455 0.301039 +& 10 0.228836 -0.156364 0.315991 +& 10 0.240054 -0.119770 0.331685 +& 10 0.250319 -0.085739 0.346051 +& 10 0.261024 -0.049888 0.361032 +& 10 0.272186 -0.012287 0.376647 +& 10 0.283826 0.026976 0.392918 +& 10 0.294198 0.061871 0.407400 +& 10 0.304949 0.097830 0.422388 +& 10 0.316094 0.134765 0.437891 +& 10 0.327645 0.172576 0.453916 +& 10 0.339619 0.211154 0.470470 +& 10 0.349930 0.243802 0.484671 +& 10 0.360555 0.276827 0.499239 +& 10 0.371502 0.310148 0.514174 +& 10 0.382782 0.343683 0.529472 +& 10 0.394404 0.377343 0.545125 +& 10 0.406379 0.411039 0.561123 +& 10 0.418717 0.444676 0.577455 +& 10 0.428857 0.471477 0.590750 +& 10 0.439243 0.498125 0.604236 +& 10 0.449880 0.524569 0.617903 +& 10 0.460775 0.550753 0.631737 +& 10 0.471933 0.576624 0.645719 +& 10 0.483362 0.602125 0.659833 +& 10 0.495067 0.627199 0.674057 +& 10 0.507056 0.651789 0.688367 +& 10 0.519336 0.675835 0.702736 +& 10 0.531912 0.699279 0.717134 +& 10 0.544794 0.722062 0.731528 +& 10 0.557987 0.744126 0.745883 +& 10 0.568091 0.760168 0.756599 +& 10 0.578378 0.775748 0.767253 +& 10 0.588852 0.790843 0.777824 +& 10 0.599515 0.805431 0.788293 +& 10 0.610371 0.819487 0.798639 +& 10 0.621423 0.832991 0.808839 +& 10 0.632676 0.845920 0.818868 +& 10 0.644133 0.858255 0.828703 +& 10 0.655797 0.869976 0.838318 +& 10 0.667672 0.881064 0.847686 +& 10 0.679763 0.891500 0.856778 +& 10 0.692072 0.901270 0.865566 +& 10 0.704604 0.910355 0.874022 +& 10 0.717363 0.918743 0.882114 +& 10 0.730353 0.926420 0.889812 +& 10 0.743579 0.933374 0.897085 +& 10 0.757044 0.939594 0.903901 +& 10 0.770752 0.945071 0.910228 +& 10 0.784709 0.949796 0.916036 +& 10 0.798919 0.953763 0.921292 +& 10 0.813386 0.956966 0.925966 +& 10 0.828115 0.959403 0.930028 +& 10 0.843111 0.961069 0.933447 +& 10 0.853258 0.961753 0.935356 +& 10 0.863528 0.962094 0.936959 +& 10 0.873922 0.962092 0.938249 +& 10 0.884440 0.961750 0.939218 +& 10 0.895085 0.961068 0.939858 +& 10 0.905859 0.960046 0.940164 +& 10 0.916761 0.958687 0.940130 +& 10 0.927796 0.956993 0.939750 +& 10 0.938963 0.954965 0.939019 +& 10 0.950264 0.952606 0.937932 +& 10 0.961701 0.949919 0.936487 +& 10 0.973276 0.946906 0.934679 +& 10 0.984991 0.943572 0.932506 +& 10 0.996846 0.939919 0.929968 +& 10 1.008844 0.935952 0.927063 +& 10 1.020987 0.931674 0.923791 +& 10 1.033275 0.927090 0.920153 +& 10 1.045712 0.922204 0.916151 +& 10 1.058298 0.917021 0.911787 +& 10 1.071035 0.911547 0.907066 +& 10 1.083926 0.905786 0.901991 +& 10 1.096973 0.899744 0.896569 +& 10 1.110176 0.893428 0.890805 +& 10 1.123538 0.886842 0.884707 +& 10 1.137061 0.879993 0.878283 +& 10 1.150746 0.872887 0.871542 +& 10 1.164597 0.865532 0.864495 +& 10 1.178614 0.857933 0.857151 +& 10 1.192800 0.850098 0.849523 +& 10 1.207156 0.842033 0.841622 +& 10 1.221686 0.833746 0.833460 +& 10 1.236390 0.825245 0.825051 +& 10 1.251271 0.816536 0.816407 +& 10 1.266331 0.807628 0.807542 +& 10 1.281573 0.798528 0.798468 +& 10 1.296998 0.789244 0.789199 +& 10 1.312608 0.779784 0.779745 +& 10 1.328407 0.770156 0.770120 +& 10 1.344396 0.760368 0.760333 +& 10 1.360577 0.750429 0.750394 +& 10 1.376953 0.740346 0.740312 +& 10 1.393526 0.730128 0.730095 +& 10 1.410298 0.719784 0.719751 +& 10 1.427273 0.709321 0.709289 +& 10 1.444451 0.698748 0.698717 +& 10 1.461837 0.688074 0.688043 +& 10 1.479431 0.677307 0.677276 +& 10 1.497238 0.666454 0.666424 +& 10 1.515259 0.655526 0.655497 +& 10 1.533496 0.644530 0.644501 +& 10 1.551953 0.633473 0.633445 +& 10 1.570633 0.622366 0.622338 +& 10 1.589537 0.611215 0.611188 +& 10 1.608668 0.600030 0.600003 +& 10 1.628030 0.588817 0.588790 +& 10 1.647625 0.577585 0.577559 +& 10 1.667456 0.566342 0.566317 +& 10 1.677461 0.560719 0.560694 +& 10 1.687526 0.555096 0.555071 +& 10 1.697651 0.549474 0.549450 +& 10 1.707837 0.543855 0.543830 +& 10 1.718084 0.538238 0.538214 +& 10 1.728392 0.532625 0.532601 +& 10 1.738763 0.527017 0.526994 +& 10 1.749195 0.521415 0.521392 +& 10 1.759690 0.515820 0.515796 +& 10 1.770249 0.510232 0.510209 +& 10 1.780870 0.504653 0.504630 +& 10 1.791555 0.499083 0.499060 +& 10 1.802305 0.493523 0.493501 +& 10 1.813118 0.487975 0.487953 +& 10 1.823997 0.482438 0.482416 +& 10 1.834941 0.476914 0.476893 +& 10 1.845951 0.471405 0.471383 +& 10 1.857026 0.465909 0.465888 +& 10 1.868169 0.460429 0.460408 +& 10 1.879378 0.454965 0.454945 +& 10 1.890654 0.449518 0.449498 +& 10 1.901998 0.444089 0.444069 +& 10 1.913410 0.438678 0.438658 +& 10 1.924890 0.433287 0.433267 +& 10 1.936440 0.427916 0.427896 +& 10 1.948058 0.422565 0.422546 +& 10 1.959747 0.417236 0.417217 +& 10 1.971505 0.411929 0.411910 +& 10 1.983334 0.406645 0.406626 +& 10 1.995234 0.401385 0.401366 +& 10 2.007206 0.396149 0.396131 +& 10 2.019249 0.390938 0.390920 +& 10 2.031364 0.385752 0.385735 +& 10 2.043552 0.380593 0.380576 +& 10 2.055814 0.375461 0.375444 +& 10 2.068149 0.370357 0.370339 +& 10 2.080558 0.365280 0.365263 +& 10 2.093041 0.360233 0.360216 +& 10 2.105599 0.355214 0.355198 +& 10 2.118233 0.350226 0.350209 +& 10 2.130942 0.345268 0.345252 +& 10 2.143728 0.340341 0.340325 +& 10 2.156590 0.335445 0.335430 +& 10 2.169530 0.330582 0.330566 +& 10 2.182547 0.325751 0.325736 +& 10 2.195642 0.320953 0.320938 +& 10 2.208816 0.316189 0.316174 +& 10 2.222069 0.311459 0.311444 +& 10 2.235401 0.306763 0.306748 +& 10 2.248814 0.302102 0.302088 +& 10 2.262307 0.297476 0.297462 +& 10 2.275880 0.292886 0.292872 +& 10 2.289536 0.288333 0.288319 +& 10 2.303273 0.283815 0.283801 +& 10 2.317093 0.279335 0.279321 +& 10 2.330995 0.274891 0.274878 +& 10 2.344981 0.270485 0.270472 +& 10 2.359051 0.266117 0.266104 +& 10 2.373205 0.261788 0.261775 +& 10 2.387444 0.257496 0.257484 +& 10 2.401769 0.253244 0.253231 +& 10 2.416180 0.249030 0.249018 +& 10 2.430677 0.244856 0.244844 +& 10 2.445261 0.240721 0.240709 +& 10 2.459932 0.236626 0.236615 +& 10 2.474692 0.232572 0.232560 +& 10 2.489540 0.228557 0.228545 +& 10 2.504477 0.224582 0.224571 +& 10 2.519504 0.220649 0.220637 +& 10 2.534621 0.216756 0.216745 +& 10 2.549829 0.212904 0.212893 +& 10 2.565128 0.209092 0.209082 +& 10 2.580519 0.205323 0.205312 +& 10 2.596002 0.201594 0.201583 +& 10 2.611578 0.197907 0.197896 +& 10 2.627247 0.194261 0.194251 +& 10 2.643011 0.190656 0.190646 +& 10 2.658869 0.187094 0.187084 +& 10 2.674822 0.183573 0.183563 +& 10 2.690871 0.180093 0.180084 +& 10 2.707016 0.176656 0.176646 +& 10 2.723258 0.173260 0.173250 +& 10 2.739598 0.169906 0.169896 +& 10 2.756036 0.166593 0.166584 +& 10 2.772572 0.163322 0.163314 +& 10 2.789207 0.160093 0.160085 +& 10 2.805942 0.156906 0.156898 +& 10 2.822778 0.153760 0.153752 +& 10 2.839715 0.150656 0.150648 +& 10 2.856753 0.147593 0.147585 +& 10 2.873894 0.144572 0.144564 +& 10 2.891137 0.141592 0.141584 +& 10 2.908484 0.138653 0.138645 +& 10 2.925935 0.135755 0.135748 +& 10 2.943490 0.132898 0.132891 +& 10 2.961151 0.130082 0.130075 +& 10 2.978918 0.127307 0.127300 +& 10 2.996792 0.124572 0.124565 +& 10 3.014772 0.121877 0.121870 +& 10 3.032861 0.119223 0.119216 +& 10 3.051058 0.116609 0.116602 +& 10 3.069365 0.114034 0.114027 +& 10 3.087781 0.111499 0.111493 +& 10 3.106307 0.109004 0.108997 +& 10 3.124945 0.106547 0.106541 +& 10 3.143695 0.104130 0.104124 +& 10 3.162557 0.101751 0.101745 +& 10 3.181532 0.099411 0.099406 +& 10 3.200622 0.097110 0.097104 +& 10 3.219825 0.094846 0.094840 +& 10 3.239144 0.092620 0.092614 +& 10 3.258579 0.090432 0.090426 +& 10 3.278131 0.088280 0.088275 +& 10 3.297799 0.086166 0.086161 +& 10 3.317586 0.084089 0.084083 +& 10 3.337492 0.082047 0.082042 +& 10 3.357517 0.080042 0.080037 +& 10 3.377662 0.078073 0.078068 +& 10 3.397928 0.076139 0.076135 +& 10 3.418315 0.074241 0.074236 +& 10 3.438825 0.072377 0.072373 +& 10 3.459458 0.070548 0.070544 +& 10 3.480215 0.068753 0.068749 +& 10 3.501096 0.066992 0.066988 +& 10 3.522103 0.065265 0.065261 +& 10 3.543235 0.063571 0.063567 +& 10 3.564495 0.061910 0.061905 +& 10 3.585882 0.060281 0.060277 +& 10 3.607397 0.058684 0.058681 +& 10 3.629041 0.057120 0.057116 +& 10 3.650816 0.055587 0.055583 +& 10 3.672721 0.054085 0.054082 +& 10 3.694757 0.052614 0.052611 +& 10 3.716925 0.051174 0.051170 +& 10 3.739227 0.049763 0.049760 +& 10 3.761662 0.048382 0.048379 +& 10 3.784232 0.047031 0.047028 +& 10 3.806938 0.045709 0.045705 +& 10 3.829779 0.044415 0.044412 +& 10 3.852758 0.043149 0.043146 +& 10 3.875875 0.041912 0.041909 +& 10 3.899130 0.040702 0.040699 +& 10 3.922525 0.039519 0.039516 +& 10 3.946060 0.038363 0.038360 +& 10 3.969736 0.037233 0.037230 +& 10 3.993555 0.036129 0.036127 +& 10 4.017516 0.035051 0.035049 +& 10 4.041621 0.033998 0.033996 +& 10 4.065871 0.032970 0.032968 +& 10 4.090266 0.031967 0.031964 +& 10 4.114808 0.030987 0.030985 +& 10 4.139496 0.030032 0.030030 +& 10 4.164333 0.029100 0.029098 +& 10 4.189319 0.028191 0.028189 +& 10 4.214455 0.027304 0.027302 +& 10 4.239742 0.026440 0.026438 +& 10 4.265180 0.025598 0.025596 +& 10 4.290772 0.024777 0.024775 +& 10 4.316516 0.023977 0.023975 +& 10 4.342415 0.023198 0.023196 +& 10 4.368470 0.022440 0.022438 +& 10 4.394681 0.021701 0.021699 +& 10 4.421049 0.020982 0.020981 +& 10 4.447575 0.020283 0.020281 +& 10 4.474260 0.019602 0.019601 +& 10 4.501106 0.018940 0.018939 +& 10 4.528113 0.018297 0.018295 +& 10 4.555281 0.017671 0.017669 +& 10 4.582613 0.017063 0.017061 +& 10 4.610109 0.016472 0.016470 +& 10 4.637769 0.015897 0.015896 +& 10 4.665596 0.015339 0.015338 +& 10 4.693589 0.014798 0.014797 +& 10 4.721751 0.014272 0.014271 +& 10 4.750082 0.013762 0.013761 +& 10 4.778582 0.013266 0.013265 +& 10 4.807254 0.012786 0.012785 +& 10 4.836097 0.012320 0.012319 +& 10 4.865114 0.011868 0.011867 +& 10 4.894304 0.011430 0.011429 +& 10 4.923670 0.011006 0.011005 +& 10 4.953212 0.010595 0.010594 +& 10 4.982931 0.010196 0.010195 +& 10 5.012829 0.009810 0.009809 +& 10 5.042906 0.009437 0.009436 +& 10 5.073163 0.009075 0.009074 +& 10 5.103602 0.008725 0.008725 +& 10 5.134224 0.008387 0.008386 +& 10 5.165029 0.008060 0.008059 +& 10 5.196020 0.007743 0.007742 +& 10 5.227196 0.007437 0.007436 +& 10 5.258559 0.007141 0.007141 +& 10 5.290110 0.006856 0.006855 +& 10 5.321851 0.006580 0.006579 +& 10 5.353782 0.006313 0.006312 +& 10 5.385905 0.006056 0.006055 +& 10 5.418220 0.005807 0.005807 +& 10 5.450729 0.005568 0.005567 +& 10 5.483434 0.005337 0.005336 +& 10 5.516334 0.005114 0.005113 +& 10 5.549432 0.004899 0.004898 +& 10 5.582729 0.004692 0.004691 +& 10 5.616225 0.004492 0.004492 +& 10 5.649923 0.004300 0.004299 +& 10 5.683822 0.004115 0.004114 +& 10 5.717925 0.003936 0.003936 +& 10 5.752233 0.003765 0.003764 +& 10 5.786746 0.003600 0.003599 +& 10 5.821467 0.003441 0.003440 +& 10 5.856395 0.003288 0.003288 +& 10 5.891534 0.003141 0.003141 +& 10 5.926883 0.003000 0.003000 +& 10 5.962444 0.002864 0.002864 +& 10 5.998219 0.002734 0.002734 + + +scattering, iprj= 2, l= 0, all-electron wave function, pseudo w-f + +& 20 0.009958 -0.034594 0.005198 +& 20 0.020051 -0.064031 0.010467 +& 20 0.030117 -0.088355 0.015723 +& 20 0.040134 -0.108082 0.020954 +& 20 0.050377 -0.124110 0.026306 +& 20 0.060642 -0.136408 0.031672 +& 20 0.070847 -0.145297 0.037009 +& 20 0.081297 -0.151327 0.042478 +& 20 0.091629 -0.154570 0.047889 +& 20 0.102046 -0.155414 0.053348 +& 20 0.112296 -0.154138 0.058722 +& 20 0.122839 -0.150906 0.064254 +& 20 0.133569 -0.145862 0.069888 +& 20 0.144371 -0.139225 0.075563 +& 20 0.155116 -0.131280 0.081210 +& 20 0.165666 -0.122355 0.086757 +& 20 0.175879 -0.112807 0.092127 +& 20 0.186721 -0.101840 0.097828 +& 20 0.197049 -0.090725 0.103257 +& 20 0.207949 -0.078413 0.108984 +& 20 0.218143 -0.066459 0.114335 +& 20 0.228836 -0.053559 0.119941 +& 20 0.240054 -0.039730 0.125813 +& 20 0.250319 -0.026885 0.131175 +& 20 0.261024 -0.013370 0.136753 +& 20 0.272186 0.000784 0.142551 +& 20 0.283826 0.015539 0.148574 +& 20 0.294198 0.028629 0.153916 +& 20 0.304949 0.042094 0.159427 +& 20 0.316094 0.055895 0.165106 +& 20 0.327645 0.069989 0.170952 +& 20 0.339619 0.084329 0.176962 +& 20 0.349930 0.096430 0.182092 +& 20 0.360555 0.108633 0.187331 +& 20 0.371502 0.120904 0.192673 +& 20 0.382782 0.133207 0.198112 +& 20 0.394404 0.145501 0.203641 +& 20 0.406379 0.157747 0.209251 +& 20 0.418717 0.169902 0.214932 +& 20 0.428857 0.179531 0.219519 +& 20 0.439243 0.189050 0.224137 +& 20 0.449880 0.198434 0.228775 +& 20 0.460775 0.207659 0.233425 +& 20 0.471933 0.216698 0.238076 +& 20 0.483362 0.225526 0.242717 +& 20 0.495067 0.234116 0.247333 +& 20 0.507056 0.242439 0.251911 +& 20 0.519336 0.250468 0.256435 +& 20 0.531912 0.258175 0.260886 +& 20 0.544794 0.265530 0.265245 +& 20 0.557987 0.272504 0.269493 +& 20 0.568091 0.277467 0.272591 +& 20 0.578378 0.282188 0.275603 +& 20 0.588852 0.286654 0.278518 +& 20 0.599515 0.290853 0.281324 +& 20 0.610371 0.294772 0.284010 +& 20 0.621423 0.298401 0.286564 +& 20 0.632676 0.301728 0.288971 +& 20 0.644133 0.304741 0.291219 +& 20 0.655797 0.307428 0.293293 +& 20 0.667672 0.309780 0.295178 +& 20 0.679763 0.311785 0.296859 +& 20 0.692072 0.313433 0.298321 +& 20 0.704604 0.314715 0.299547 +& 20 0.717363 0.315619 0.300520 +& 20 0.730353 0.316139 0.301224 +& 20 0.743579 0.316263 0.301641 +& 20 0.757044 0.315985 0.301754 +& 20 0.770752 0.315297 0.301546 +& 20 0.784709 0.314190 0.301000 +& 20 0.798919 0.312659 0.300097 +& 20 0.813386 0.310696 0.298820 +& 20 0.828115 0.308296 0.297154 +& 20 0.843111 0.305454 0.295080 +& 20 0.853258 0.303311 0.293464 +& 20 0.863528 0.300969 0.291656 +& 20 0.873922 0.298425 0.289651 +& 20 0.884440 0.295679 0.287445 +& 20 0.895085 0.292730 0.285034 +& 20 0.905859 0.289577 0.282415 +& 20 0.916761 0.286220 0.279584 +& 20 0.927796 0.282658 0.276538 +& 20 0.938963 0.278890 0.273273 +& 20 0.950264 0.274917 0.269788 +& 20 0.961701 0.270738 0.266080 +& 20 0.973276 0.266353 0.262146 +& 20 0.984991 0.261762 0.257986 +& 20 0.996846 0.256966 0.253598 +& 20 1.008844 0.251964 0.248981 +& 20 1.020987 0.246758 0.244134 +& 20 1.033275 0.241347 0.239058 +& 20 1.045712 0.235733 0.233753 +& 20 1.058298 0.229916 0.228219 +& 20 1.071035 0.223898 0.222458 +& 20 1.083926 0.217679 0.216470 +& 20 1.096973 0.211261 0.210258 +& 20 1.110176 0.204644 0.203824 +& 20 1.123538 0.197831 0.197171 +& 20 1.137061 0.190824 0.190300 +& 20 1.150746 0.183623 0.183215 +& 20 1.164597 0.176231 0.175920 +& 20 1.178614 0.168649 0.168419 +& 20 1.192800 0.160880 0.160714 +& 20 1.207156 0.152927 0.152811 +& 20 1.221686 0.144790 0.144712 +& 20 1.236390 0.136474 0.136424 +& 20 1.251271 0.127980 0.127949 +& 20 1.266331 0.119311 0.119294 +& 20 1.281573 0.110470 0.110461 +& 20 1.296998 0.101461 0.101456 +& 20 1.312608 0.092285 0.092282 +& 20 1.328407 0.082947 0.082945 +& 20 1.344396 0.073450 0.073448 +& 20 1.360577 0.063797 0.063795 +& 20 1.376953 0.053991 0.053990 +& 20 1.393526 0.044037 0.044036 +& 20 1.410298 0.033939 0.033938 +& 20 1.427273 0.023700 0.023699 +& 20 1.444451 0.013324 0.013324 +& 20 1.461837 0.002816 0.002816 +& 20 1.479431 -0.007821 -0.007820 +& 20 1.497238 -0.018580 -0.018580 +& 20 1.515259 -0.029459 -0.029458 +& 20 1.533496 -0.040453 -0.040451 +& 20 1.551953 -0.051555 -0.051554 +& 20 1.570633 -0.062762 -0.062761 +& 20 1.589537 -0.074069 -0.074067 +& 20 1.608668 -0.085470 -0.085467 +& 20 1.628030 -0.096959 -0.096957 +& 20 1.647625 -0.108532 -0.108530 +& 20 1.667456 -0.120183 -0.120180 +& 20 1.677461 -0.126036 -0.126033 +& 20 1.687526 -0.131906 -0.131903 +& 20 1.697651 -0.137793 -0.137789 +& 20 1.707837 -0.143695 -0.143691 +& 20 1.718084 -0.149612 -0.149609 +& 20 1.728392 -0.155544 -0.155540 +& 20 1.738763 -0.161489 -0.161485 +& 20 1.749195 -0.167447 -0.167443 +& 20 1.759690 -0.173417 -0.173413 +& 20 1.770249 -0.179398 -0.179393 +& 20 1.780870 -0.185389 -0.185385 +& 20 1.791555 -0.191390 -0.191385 +& 20 1.802305 -0.197399 -0.197394 +& 20 1.813118 -0.203416 -0.203411 +& 20 1.823997 -0.209440 -0.209435 +& 20 1.834941 -0.215471 -0.215466 +& 20 1.845951 -0.221506 -0.221501 +& 20 1.857026 -0.227546 -0.227541 +& 20 1.868169 -0.233590 -0.233584 +& 20 1.879378 -0.239636 -0.239630 +& 20 1.890654 -0.245683 -0.245678 +& 20 1.901998 -0.251732 -0.251726 +& 20 1.913410 -0.257780 -0.257775 +& 20 1.924890 -0.263828 -0.263822 +& 20 1.936440 -0.269873 -0.269867 +& 20 1.948058 -0.275916 -0.275910 +& 20 1.959747 -0.281954 -0.281948 +& 20 1.971505 -0.287988 -0.287982 +& 20 1.983334 -0.294016 -0.294010 +& 20 1.995234 -0.300037 -0.300030 +& 20 2.007206 -0.306050 -0.306043 +& 20 2.019249 -0.312054 -0.312048 +& 20 2.031364 -0.318049 -0.318042 +& 20 2.043552 -0.324032 -0.324025 +& 20 2.055814 -0.330004 -0.329997 +& 20 2.068149 -0.335962 -0.335955 +& 20 2.080558 -0.341906 -0.341900 +& 20 2.093041 -0.347836 -0.347829 +& 20 2.105599 -0.353749 -0.353742 +& 20 2.118233 -0.359644 -0.359637 +& 20 2.130942 -0.365522 -0.365515 +& 20 2.143728 -0.371379 -0.371372 +& 20 2.156590 -0.377216 -0.377209 +& 20 2.169530 -0.383031 -0.383024 +& 20 2.182547 -0.388824 -0.388816 +& 20 2.195642 -0.394592 -0.394584 +& 20 2.208816 -0.400334 -0.400327 +& 20 2.222069 -0.406050 -0.406043 +& 20 2.235401 -0.411739 -0.411731 +& 20 2.248814 -0.417398 -0.417391 +& 20 2.262307 -0.423027 -0.423020 +& 20 2.275880 -0.428625 -0.428618 +& 20 2.289536 -0.434190 -0.434183 +& 20 2.303273 -0.439722 -0.439714 +& 20 2.317093 -0.445218 -0.445210 +& 20 2.330995 -0.450677 -0.450670 +& 20 2.344981 -0.456099 -0.456091 +& 20 2.359051 -0.461482 -0.461474 +& 20 2.373205 -0.466824 -0.466816 +& 20 2.387444 -0.472125 -0.472117 +& 20 2.401769 -0.477382 -0.477374 +& 20 2.416180 -0.482596 -0.482588 +& 20 2.430677 -0.487763 -0.487755 +& 20 2.445261 -0.492883 -0.492875 +& 20 2.459932 -0.497954 -0.497946 +& 20 2.474692 -0.502976 -0.502968 +& 20 2.489540 -0.507946 -0.507938 +& 20 2.504477 -0.512863 -0.512855 +& 20 2.519504 -0.517726 -0.517718 +& 20 2.534621 -0.522533 -0.522525 +& 20 2.549829 -0.527282 -0.527274 +& 20 2.565128 -0.531973 -0.531965 +& 20 2.580519 -0.536604 -0.536596 +& 20 2.596002 -0.541173 -0.541165 +& 20 2.611578 -0.545679 -0.545671 +& 20 2.627247 -0.550120 -0.550112 +& 20 2.643011 -0.554495 -0.554487 +& 20 2.658869 -0.558801 -0.558793 +& 20 2.674822 -0.563039 -0.563031 +& 20 2.690871 -0.567205 -0.567197 +& 20 2.707016 -0.571298 -0.571290 +& 20 2.723258 -0.575318 -0.575310 +& 20 2.739598 -0.579261 -0.579253 +& 20 2.756036 -0.583127 -0.583119 +& 20 2.772572 -0.586914 -0.586906 +& 20 2.789207 -0.590619 -0.590611 +& 20 2.805942 -0.594243 -0.594235 +& 20 2.822778 -0.597782 -0.597774 +& 20 2.839715 -0.601236 -0.601228 +& 20 2.856753 -0.604601 -0.604594 +& 20 2.873894 -0.607878 -0.607870 +& 20 2.891137 -0.611064 -0.611056 +& 20 2.908484 -0.614157 -0.614150 +& 20 2.925935 -0.617156 -0.617148 +& 20 2.943490 -0.620059 -0.620051 +& 20 2.961151 -0.622864 -0.622856 +& 20 2.978918 -0.625569 -0.625561 +& 20 2.996792 -0.628173 -0.628165 +& 20 3.014772 -0.630674 -0.630666 +& 20 3.032861 -0.633069 -0.633062 +& 20 3.051058 -0.635359 -0.635352 +& 20 3.069365 -0.637540 -0.637533 +& 20 3.087781 -0.639610 -0.639603 +& 20 3.106307 -0.641569 -0.641562 +& 20 3.124945 -0.643414 -0.643407 +& 20 3.143695 -0.645143 -0.645137 +& 20 3.162557 -0.646755 -0.646749 +& 20 3.181532 -0.648248 -0.648242 +& 20 3.200622 -0.649621 -0.649614 +& 20 3.219825 -0.650870 -0.650864 +& 20 3.239144 -0.651995 -0.651989 +& 20 3.258579 -0.652994 -0.652987 +& 20 3.278131 -0.653864 -0.653858 +& 20 3.297799 -0.654605 -0.654599 +& 20 3.317586 -0.655215 -0.655209 +& 20 3.337492 -0.655691 -0.655685 +& 20 3.357517 -0.656032 -0.656026 +& 20 3.377662 -0.656236 -0.656231 +& 20 3.397928 -0.656302 -0.656297 +& 20 3.418315 -0.656228 -0.656223 +& 20 3.438825 -0.656012 -0.656007 +& 20 3.459458 -0.655652 -0.655647 +& 20 3.480215 -0.655147 -0.655142 +& 20 3.501096 -0.654496 -0.654491 +& 20 3.522103 -0.653696 -0.653691 +& 20 3.543235 -0.652745 -0.652741 +& 20 3.564495 -0.651643 -0.651639 +& 20 3.585882 -0.650388 -0.650384 +& 20 3.607397 -0.648979 -0.648974 +& 20 3.629041 -0.647412 -0.647408 +& 20 3.650816 -0.645689 -0.645685 +& 20 3.672721 -0.643806 -0.643802 +& 20 3.694757 -0.641762 -0.641758 +& 20 3.716925 -0.639556 -0.639553 +& 20 3.739227 -0.637187 -0.637184 +& 20 3.761662 -0.634654 -0.634651 +& 20 3.784232 -0.631954 -0.631951 +& 20 3.806938 -0.629087 -0.629084 +& 20 3.829779 -0.626052 -0.626049 +& 20 3.852758 -0.622847 -0.622844 +& 20 3.875875 -0.619471 -0.619469 +& 20 3.899130 -0.615924 -0.615922 +& 20 3.922525 -0.612203 -0.612201 +& 20 3.946060 -0.608309 -0.608307 +& 20 3.969736 -0.604240 -0.604239 +& 20 3.993555 -0.599995 -0.599994 +& 20 4.017516 -0.595574 -0.595573 +& 20 4.041621 -0.590976 -0.590975 +& 20 4.065871 -0.586199 -0.586198 +& 20 4.090266 -0.581243 -0.581243 +& 20 4.114808 -0.576108 -0.576108 +& 20 4.139496 -0.570793 -0.570793 +& 20 4.164333 -0.565298 -0.565298 +& 20 4.189319 -0.559621 -0.559621 +& 20 4.214455 -0.553763 -0.553763 +& 20 4.239742 -0.547723 -0.547724 +& 20 4.265180 -0.541501 -0.541502 +& 20 4.290772 -0.535097 -0.535098 +& 20 4.316516 -0.528510 -0.528511 +& 20 4.342415 -0.521740 -0.521742 +& 20 4.368470 -0.514788 -0.514790 +& 20 4.394681 -0.507653 -0.507655 +& 20 4.421049 -0.500335 -0.500337 +& 20 4.447575 -0.492835 -0.492838 +& 20 4.474260 -0.485153 -0.485155 +& 20 4.501106 -0.477289 -0.477291 +& 20 4.528113 -0.469243 -0.469245 +& 20 4.555281 -0.461015 -0.461018 +& 20 4.582613 -0.452607 -0.452610 +& 20 4.610109 -0.444019 -0.444022 +& 20 4.637769 -0.435251 -0.435254 +& 20 4.665596 -0.426304 -0.426308 +& 20 4.693589 -0.417178 -0.417183 +& 20 4.721751 -0.407876 -0.407880 +& 20 4.750082 -0.398397 -0.398402 +& 20 4.778582 -0.388743 -0.388748 +& 20 4.807254 -0.378914 -0.378919 +& 20 4.836097 -0.368912 -0.368917 +& 20 4.865114 -0.358738 -0.358744 +& 20 4.894304 -0.348393 -0.348399 +& 20 4.923670 -0.337880 -0.337886 +& 20 4.953212 -0.327198 -0.327204 +& 20 4.982931 -0.316350 -0.316357 +& 20 5.012829 -0.305338 -0.305345 +& 20 5.042906 -0.294163 -0.294170 +& 20 5.073163 -0.282828 -0.282835 +& 20 5.103602 -0.271333 -0.271340 +& 20 5.134224 -0.259682 -0.259689 +& 20 5.165029 -0.247876 -0.247884 +& 20 5.196020 -0.235918 -0.235926 +& 20 5.227196 -0.223810 -0.223819 +& 20 5.258559 -0.211555 -0.211564 +& 20 5.290110 -0.199156 -0.199164 +& 20 5.321851 -0.186614 -0.186623 +& 20 5.353782 -0.173933 -0.173942 +& 20 5.385905 -0.161117 -0.161126 +& 20 5.418220 -0.148167 -0.148177 +& 20 5.450729 -0.135088 -0.135098 +& 20 5.483434 -0.121883 -0.121893 +& 20 5.516334 -0.108556 -0.108566 +& 20 5.549432 -0.095109 -0.095119 +& 20 5.582729 -0.081547 -0.081558 +& 20 5.616225 -0.067874 -0.067885 +& 20 5.649923 -0.054094 -0.054105 +& 20 5.683822 -0.040212 -0.040223 +& 20 5.717925 -0.026231 -0.026242 +& 20 5.752233 -0.012156 -0.012167 +& 20 5.786746 0.002008 0.001996 +& 20 5.821467 0.016256 0.016244 +& 20 5.856395 0.030583 0.030571 +& 20 5.891534 0.044984 0.044973 +& 20 5.926883 0.059454 0.059442 +& 20 5.962444 0.073987 0.073975 +& 20 5.998219 0.088578 0.088565 + + +!J 0 0.009958 0.090486 -0.025921 +!J 0 0.017897 0.162458 -0.046454 +!J 0 0.025933 0.235025 -0.067009 +!J 0 0.033944 0.306948 -0.087164 +!J 0 0.041850 0.377394 -0.106628 +!J 0 0.049778 0.447382 -0.125618 +!J 0 0.057808 0.517476 -0.144211 +!J 0 0.065939 0.587508 -0.162276 +!J 0 0.073877 0.654827 -0.179064 +!J 0 0.081785 0.720754 -0.194860 +!J 0 0.089999 0.787898 -0.210177 +!J 0 0.098449 0.855396 -0.224658 +!J 0 0.106410 0.917426 -0.237016 +!J 0 0.114330 0.977495 -0.247971 +!J 0 0.122839 1.040090 -0.258146 +!J 0 0.131194 1.099466 -0.266424 +!J 0 0.139281 1.154853 -0.272720 +!J 0 0.147867 1.211283 -0.277457 +!J 0 0.156047 1.262652 -0.280013 +!J 0 0.164678 1.314223 -0.280550 +!J 0 0.172751 1.359898 -0.278969 +!J 0 0.181219 1.405059 -0.275076 +!J 0 0.190102 1.449303 -0.268465 +!J 0 0.198232 1.486896 -0.260096 +!J 0 0.206709 1.523074 -0.248970 +!J 0 0.215549 1.557435 -0.234729 +!J 0 0.224766 1.589538 -0.216992 +!J 0 0.232980 1.614885 -0.198704 +!J 0 0.241494 1.637878 -0.177293 +!J 0 0.250319 1.658156 -0.152495 +!J 0 0.259467 1.675334 -0.124047 +!J 0 0.268949 1.689008 -0.091696 +!J 0 0.277115 1.697420 -0.061581 +!J 0 0.285529 1.702850 -0.028463 +!J 0 0.294198 1.705038 0.007768 +!J 0 0.303131 1.703720 0.047199 +!J 0 0.312334 1.698635 0.089892 +!J 0 0.321818 1.689520 0.135878 +!J 0 0.331589 1.676123 0.185146 +!J 0 0.339619 1.662157 0.226891 +!J 0 0.347843 1.645175 0.270655 +!J 0 0.356267 1.625067 0.316366 +!J 0 0.364895 1.601731 0.363929 +!J 0 0.373731 1.575076 0.413223 +!J 0 0.382782 1.545022 0.464102 +!J 0 0.392051 1.511506 0.516393 +!J 0 0.401546 1.474475 0.569901 +!J 0 0.411270 1.433898 0.624401 +!J 0 0.421230 1.389756 0.679652 +!J 0 0.431430 1.342052 0.735388 +!J 0 0.441878 1.290805 0.791333 +!J 0 0.449880 1.250067 0.833256 +!J 0 0.458026 1.207381 0.875011 +!J 0 0.466321 1.162776 0.916475 +!J 0 0.474765 1.116286 0.957529 +!J 0 0.483362 1.067953 0.998057 +!J 0 0.492115 1.017820 1.037949 +!J 0 0.501026 0.965941 1.077103 +!J 0 0.510099 0.912370 1.115426 +!J 0 0.519336 0.857170 1.152838 +!J 0 0.528740 0.800408 1.189271 +!J 0 0.538315 0.742155 1.224667 +!J 0 0.548062 0.682491 1.258984 +!J 0 0.557987 0.621502 1.292191 +!J 0 0.568091 0.559282 1.324266 +!J 0 0.578378 0.495933 1.355196 +!J 0 0.588852 0.431573 1.384967 +!J 0 0.599515 0.366331 1.413564 +!J 0 0.610371 0.300354 1.440962 +!J 0 0.621423 0.233812 1.467113 +!J 0 0.632676 0.166897 1.491942 +!J 0 0.644133 0.099836 1.515328 +!J 0 0.655797 0.032885 1.537099 +!J 0 0.667672 -0.033655 1.557010 +!J 0 0.675708 -0.077618 1.569092 +!J 0 0.683841 -0.121133 1.580085 +!J 0 0.692072 -0.164074 1.589847 +!J 0 0.700402 -0.206306 1.598214 +!J 0 0.708832 -0.247683 1.605002 +!J 0 0.717363 -0.288044 1.609998 +!J 0 0.725997 -0.327222 1.612970 +!J 0 0.734736 -0.365034 1.613657 +!J 0 0.743579 -0.401289 1.611778 +!J 0 0.752529 -0.435786 1.607029 +!J 0 0.761586 -0.468313 1.599085 +!J 0 0.770752 -0.498652 1.587608 +!J 0 0.780029 -0.526582 1.572244 +!J 0 0.789418 -0.551874 1.552634 +!J 0 0.798919 -0.574302 1.528419 +!J 0 0.808535 -0.593642 1.499246 +!J 0 0.818266 -0.609679 1.464777 +!J 0 0.828115 -0.622205 1.424699 +!J 0 0.838082 -0.631031 1.378736 +!J 0 0.848169 -0.635986 1.326658 +!J 0 0.858378 -0.636928 1.268292 +!J 0 0.868709 -0.633744 1.203542 +!J 0 0.879165 -0.626361 1.132392 +!J 0 0.889747 -0.614745 1.054926 +!J 0 0.900456 -0.598916 0.971339 +!J 0 0.911294 -0.578942 0.881943 +!J 0 0.922262 -0.554955 0.787185 +!J 0 0.933362 -0.527145 0.687648 +!J 0 0.944596 -0.495770 0.584061 +!J 0 0.955966 -0.461153 0.477295 +!J 0 0.967472 -0.423684 0.368369 +!J 0 0.979116 -0.383819 0.258435 +!J 0 0.990901 -0.342074 0.148774 +!J 0 1.002827 -0.299024 0.040774 +!J 0 1.014897 -0.255287 -0.064088 +!J 0 1.027112 -0.211523 -0.164276 +!J 0 1.039475 -0.168414 -0.258230 +!J 0 1.051986 -0.126653 -0.344400 +!J 0 1.064648 -0.086926 -0.421296 +!J 0 1.077462 -0.049892 -0.487534 +!J 0 1.090430 -0.016165 -0.541885 +!J 0 1.103554 0.013707 -0.583330 +!J 0 1.116837 0.039265 -0.611111 +!J 0 1.130279 0.060155 -0.624785 +!J 0 1.143883 0.076153 -0.624264 +!J 0 1.157651 0.087176 -0.609861 +!J 0 1.171584 0.093297 -0.582316 +!J 0 1.185686 0.094752 -0.542817 +!J 0 1.199956 0.091949 -0.493010 +!J 0 1.214399 0.085458 -0.434981 +!J 0 1.229016 0.076002 -0.371222 +!J 0 1.243808 0.064421 -0.304514 +!J 0 1.258779 0.051630 -0.237826 +!J 0 1.273929 0.038586 -0.174221 +!J 0 1.289262 0.026244 -0.116729 +!J 0 1.304780 0.015495 -0.068218 +!J 0 1.320484 0.007140 -0.031259 +!J 0 1.328407 0.004071 -0.017801 +!J 0 1.336377 0.001828 -0.007994 +!J 0 1.344396 0.000460 -0.002015 +!J 0 1.352462 0.000000 -0.000000 +!J 0 1.360577 -0.000000 -0.000000 +!J 0 1.368740 -0.000000 -0.000000 +!J 0 1.376953 -0.000000 -0.000000 +!J 0 1.385215 -0.000000 -0.000000 +!J 0 1.393526 -0.000000 -0.000000 +!J 0 1.401887 -0.000000 -0.000000 +!J 0 1.410298 -0.000000 -0.000000 +!J 0 1.418760 -0.000000 -0.000000 +!J 0 1.427273 -0.000000 -0.000000 +!J 0 1.435836 -0.000000 -0.000000 +!J 0 1.444451 -0.000000 -0.000000 +!J 0 1.453118 -0.000000 -0.000000 +!J 0 1.461837 -0.000000 -0.000000 +!J 0 1.470608 -0.000000 -0.000000 +!J 0 1.479431 -0.000000 -0.000000 +!J 0 1.488308 -0.000000 -0.000000 +!J 0 1.497238 -0.000000 -0.000000 +!J 0 1.506221 -0.000000 -0.000000 +!J 0 1.515259 -0.000000 -0.000000 +!J 0 1.524350 -0.000000 -0.000000 +!J 0 1.533496 -0.000000 -0.000000 +!J 0 1.542697 -0.000000 -0.000000 +!J 0 1.551953 -0.000000 -0.000000 +!J 0 1.561265 -0.000000 -0.000000 +!J 0 1.570633 -0.000000 -0.000000 +!J 0 1.580056 -0.000000 -0.000000 + + +n= 2, l= 1, all-electron wave function, pseudo w-f + +& 11 0.009958 0.001474 0.000456 +& 11 0.020051 0.005706 0.001848 +& 11 0.030117 0.012345 0.004165 +& 11 0.040134 0.021059 0.007385 +& 11 0.050377 0.031869 0.011613 +& 11 0.060642 0.044377 0.016788 +& 11 0.070847 0.058250 0.022850 +& 11 0.081297 0.073729 0.029988 +& 11 0.091629 0.090112 0.037953 +& 11 0.102046 0.107542 0.046876 +& 11 0.112296 0.125434 0.056507 +& 11 0.122839 0.144463 0.067268 +& 11 0.133569 0.164350 0.079080 +& 11 0.144371 0.184772 0.091813 +& 11 0.155116 0.205375 0.105283 +& 11 0.165666 0.225789 0.119252 +& 11 0.175879 0.245644 0.133440 +& 11 0.186721 0.266745 0.149180 +& 11 0.197049 0.286803 0.164783 +& 11 0.207949 0.307860 0.181851 +& 11 0.218143 0.327401 0.198331 +& 11 0.228836 0.347694 0.216112 +& 11 0.240054 0.368707 0.235257 +& 11 0.250319 0.387655 0.253174 +& 11 0.261024 0.407093 0.272213 +& 11 0.272186 0.426983 0.292402 +& 11 0.283826 0.447282 0.313761 +& 11 0.294198 0.464968 0.333007 +& 11 0.304949 0.482883 0.353120 +& 11 0.316094 0.500988 0.374091 +& 11 0.327645 0.519241 0.395905 +& 11 0.339619 0.537597 0.418535 +& 11 0.349930 0.552936 0.437992 +& 11 0.360555 0.568284 0.457962 +& 11 0.371502 0.583608 0.478412 +& 11 0.382782 0.598876 0.499300 +& 11 0.394404 0.614055 0.520579 +& 11 0.406379 0.629110 0.542192 +& 11 0.418717 0.644005 0.564074 +& 11 0.428857 0.655782 0.581725 +& 11 0.439243 0.667413 0.599461 +& 11 0.449880 0.678879 0.617236 +& 11 0.460775 0.690159 0.635001 +& 11 0.471933 0.701232 0.652704 +& 11 0.483362 0.712076 0.670290 +& 11 0.495067 0.722667 0.687698 +& 11 0.507056 0.732982 0.704866 +& 11 0.519336 0.742997 0.721729 +& 11 0.531912 0.752687 0.738218 +& 11 0.544794 0.762028 0.754262 +& 11 0.557987 0.770994 0.769790 +& 11 0.568091 0.777457 0.781053 +& 11 0.578378 0.783685 0.791953 +& 11 0.588852 0.789668 0.802459 +& 11 0.599515 0.795395 0.812539 +& 11 0.610371 0.800857 0.822164 +& 11 0.621423 0.806044 0.831303 +& 11 0.632676 0.810946 0.839926 +& 11 0.644133 0.815554 0.848007 +& 11 0.655797 0.819861 0.855517 +& 11 0.667672 0.823857 0.862433 +& 11 0.679763 0.827534 0.868730 +& 11 0.692072 0.830885 0.874388 +& 11 0.704604 0.833904 0.879387 +& 11 0.717363 0.836582 0.883711 +& 11 0.730353 0.838915 0.887347 +& 11 0.743579 0.840896 0.890285 +& 11 0.757044 0.842520 0.892517 +& 11 0.770752 0.843783 0.894040 +& 11 0.784709 0.844680 0.894855 +& 11 0.798919 0.845208 0.894965 +& 11 0.813386 0.845364 0.894378 +& 11 0.828115 0.845146 0.893105 +& 11 0.843111 0.844551 0.891163 +& 11 0.853258 0.843945 0.889506 +& 11 0.863528 0.843170 0.887566 +& 11 0.873922 0.842227 0.885352 +& 11 0.884440 0.841116 0.882870 +& 11 0.895085 0.839836 0.880130 +& 11 0.905859 0.838388 0.877141 +& 11 0.916761 0.836773 0.873912 +& 11 0.927796 0.834991 0.870455 +& 11 0.938963 0.833041 0.866780 +& 11 0.950264 0.830926 0.862898 +& 11 0.961701 0.828645 0.858820 +& 11 0.973276 0.826200 0.854559 +& 11 0.984991 0.823591 0.850125 +& 11 0.996846 0.820820 0.845531 +& 11 1.008844 0.817888 0.840789 +& 11 1.020987 0.814796 0.835911 +& 11 1.033275 0.811546 0.830907 +& 11 1.045712 0.808138 0.825789 +& 11 1.058298 0.804575 0.820568 +& 11 1.071035 0.800859 0.815254 +& 11 1.083926 0.796991 0.809856 +& 11 1.096973 0.792973 0.804384 +& 11 1.110176 0.788807 0.798846 +& 11 1.123538 0.784495 0.793249 +& 11 1.137061 0.780039 0.787599 +& 11 1.150746 0.775442 0.781902 +& 11 1.164597 0.770706 0.776162 +& 11 1.178614 0.765833 0.770382 +& 11 1.192800 0.760826 0.764564 +& 11 1.207156 0.755687 0.758710 +& 11 1.221686 0.750420 0.752819 +& 11 1.236390 0.745026 0.746891 +& 11 1.251271 0.739508 0.740923 +& 11 1.266331 0.733870 0.734912 +& 11 1.281573 0.728114 0.728855 +& 11 1.296998 0.722243 0.722747 +& 11 1.312608 0.716260 0.716584 +& 11 1.328407 0.710168 0.710361 +& 11 1.344396 0.703971 0.704071 +& 11 1.360577 0.697671 0.697711 +& 11 1.376953 0.691272 0.691276 +& 11 1.393526 0.684776 0.684761 +& 11 1.410298 0.678188 0.678165 +& 11 1.427273 0.671510 0.671485 +& 11 1.444451 0.664746 0.664721 +& 11 1.461837 0.657900 0.657874 +& 11 1.479431 0.650973 0.650948 +& 11 1.497238 0.643971 0.643946 +& 11 1.515259 0.636896 0.636872 +& 11 1.533496 0.629752 0.629728 +& 11 1.551953 0.622542 0.622518 +& 11 1.570633 0.615270 0.615247 +& 11 1.589537 0.607939 0.607916 +& 11 1.608668 0.600553 0.600531 +& 11 1.628030 0.593116 0.593093 +& 11 1.647625 0.585630 0.585608 +& 11 1.667456 0.578099 0.578077 +& 11 1.677461 0.574318 0.574296 +& 11 1.687526 0.570527 0.570506 +& 11 1.697651 0.566727 0.566705 +& 11 1.707837 0.562917 0.562896 +& 11 1.718084 0.559099 0.559079 +& 11 1.728392 0.555273 0.555253 +& 11 1.738763 0.551440 0.551419 +& 11 1.749195 0.547599 0.547578 +& 11 1.759690 0.543751 0.543730 +& 11 1.770249 0.539897 0.539876 +& 11 1.780870 0.536036 0.536016 +& 11 1.791555 0.532170 0.532151 +& 11 1.802305 0.528300 0.528280 +& 11 1.813118 0.524424 0.524404 +& 11 1.823997 0.520544 0.520525 +& 11 1.834941 0.516660 0.516641 +& 11 1.845951 0.512773 0.512754 +& 11 1.857026 0.508883 0.508864 +& 11 1.868169 0.504990 0.504971 +& 11 1.879378 0.501095 0.501077 +& 11 1.890654 0.497199 0.497180 +& 11 1.901998 0.493301 0.493282 +& 11 1.913410 0.489402 0.489383 +& 11 1.924890 0.485502 0.485484 +& 11 1.936440 0.481602 0.481585 +& 11 1.948058 0.477703 0.477685 +& 11 1.959747 0.473805 0.473787 +& 11 1.971505 0.469907 0.469890 +& 11 1.983334 0.466011 0.465994 +& 11 1.995234 0.462117 0.462100 +& 11 2.007206 0.458225 0.458208 +& 11 2.019249 0.454336 0.454319 +& 11 2.031364 0.450449 0.450433 +& 11 2.043552 0.446567 0.446550 +& 11 2.055814 0.442688 0.442671 +& 11 2.068149 0.438813 0.438797 +& 11 2.080558 0.434943 0.434927 +& 11 2.093041 0.431078 0.431062 +& 11 2.105599 0.427218 0.427202 +& 11 2.118233 0.423364 0.423348 +& 11 2.130942 0.419516 0.419500 +& 11 2.143728 0.415674 0.415659 +& 11 2.156590 0.411839 0.411824 +& 11 2.169530 0.408012 0.407996 +& 11 2.182547 0.404191 0.404176 +& 11 2.195642 0.400379 0.400364 +& 11 2.208816 0.396575 0.396560 +& 11 2.222069 0.392779 0.392765 +& 11 2.235401 0.388992 0.388978 +& 11 2.248814 0.385215 0.385201 +& 11 2.262307 0.381447 0.381433 +& 11 2.275880 0.377689 0.377675 +& 11 2.289536 0.373941 0.373927 +& 11 2.303273 0.370204 0.370190 +& 11 2.317093 0.366477 0.366464 +& 11 2.330995 0.362762 0.362748 +& 11 2.344981 0.359058 0.359045 +& 11 2.359051 0.355366 0.355353 +& 11 2.373205 0.351686 0.351673 +& 11 2.387444 0.348018 0.348005 +& 11 2.401769 0.344363 0.344350 +& 11 2.416180 0.340721 0.340709 +& 11 2.430677 0.337093 0.337080 +& 11 2.445261 0.333478 0.333465 +& 11 2.459932 0.329876 0.329864 +& 11 2.474692 0.326289 0.326277 +& 11 2.489540 0.322716 0.322704 +& 11 2.504477 0.319158 0.319146 +& 11 2.519504 0.315615 0.315603 +& 11 2.534621 0.312086 0.312075 +& 11 2.549829 0.308574 0.308562 +& 11 2.565128 0.305077 0.305065 +& 11 2.580519 0.301595 0.301584 +& 11 2.596002 0.298130 0.298119 +& 11 2.611578 0.294682 0.294671 +& 11 2.627247 0.291250 0.291239 +& 11 2.643011 0.287835 0.287824 +& 11 2.658869 0.284437 0.284426 +& 11 2.674822 0.281056 0.281045 +& 11 2.690871 0.277693 0.277682 +& 11 2.707016 0.274347 0.274337 +& 11 2.723258 0.271020 0.271009 +& 11 2.739598 0.267710 0.267700 +& 11 2.756036 0.264419 0.264409 +& 11 2.772572 0.261147 0.261137 +& 11 2.789207 0.257893 0.257883 +& 11 2.805942 0.254658 0.254649 +& 11 2.822778 0.251443 0.251433 +& 11 2.839715 0.248246 0.248237 +& 11 2.856753 0.245069 0.245060 +& 11 2.873894 0.241912 0.241903 +& 11 2.891137 0.238774 0.238765 +& 11 2.908484 0.235657 0.235648 +& 11 2.925935 0.232559 0.232550 +& 11 2.943490 0.229482 0.229473 +& 11 2.961151 0.226425 0.226416 +& 11 2.978918 0.223389 0.223380 +& 11 2.996792 0.220373 0.220365 +& 11 3.014772 0.217379 0.217370 +& 11 3.032861 0.214405 0.214396 +& 11 3.051058 0.211452 0.211444 +& 11 3.069365 0.208521 0.208512 +& 11 3.087781 0.205611 0.205602 +& 11 3.106307 0.202722 0.202714 +& 11 3.124945 0.199855 0.199847 +& 11 3.143695 0.197009 0.197002 +& 11 3.162557 0.194186 0.194178 +& 11 3.181532 0.191384 0.191376 +& 11 3.200622 0.188604 0.188597 +& 11 3.219825 0.185846 0.185839 +& 11 3.239144 0.183111 0.183104 +& 11 3.258579 0.180398 0.180390 +& 11 3.278131 0.177707 0.177699 +& 11 3.297799 0.175038 0.175031 +& 11 3.317586 0.172392 0.172385 +& 11 3.337492 0.169768 0.169762 +& 11 3.357517 0.167168 0.167161 +& 11 3.377662 0.164589 0.164583 +& 11 3.397928 0.162034 0.162027 +& 11 3.418315 0.159501 0.159495 +& 11 3.438825 0.156991 0.156985 +& 11 3.459458 0.154505 0.154498 +& 11 3.480215 0.152041 0.152034 +& 11 3.501096 0.149600 0.149594 +& 11 3.522103 0.147182 0.147176 +& 11 3.543235 0.144787 0.144781 +& 11 3.564495 0.142416 0.142410 +& 11 3.585882 0.140067 0.140061 +& 11 3.607397 0.137742 0.137736 +& 11 3.629041 0.135440 0.135434 +& 11 3.650816 0.133161 0.133155 +& 11 3.672721 0.130905 0.130900 +& 11 3.694757 0.128673 0.128668 +& 11 3.716925 0.126464 0.126459 +& 11 3.739227 0.124279 0.124273 +& 11 3.761662 0.122116 0.122111 +& 11 3.784232 0.119977 0.119972 +& 11 3.806938 0.117861 0.117856 +& 11 3.829779 0.115769 0.115764 +& 11 3.852758 0.113700 0.113695 +& 11 3.875875 0.111654 0.111649 +& 11 3.899130 0.109632 0.109627 +& 11 3.922525 0.107633 0.107628 +& 11 3.946060 0.105657 0.105652 +& 11 3.969736 0.103704 0.103700 +& 11 3.993555 0.101775 0.101770 +& 11 4.017516 0.099869 0.099864 +& 11 4.041621 0.097986 0.097981 +& 11 4.065871 0.096126 0.096122 +& 11 4.090266 0.094289 0.094285 +& 11 4.114808 0.092476 0.092471 +& 11 4.139496 0.090685 0.090681 +& 11 4.164333 0.088917 0.088913 +& 11 4.189319 0.087173 0.087169 +& 11 4.214455 0.085451 0.085447 +& 11 4.239742 0.083752 0.083748 +& 11 4.265180 0.082076 0.082072 +& 11 4.290772 0.080422 0.080419 +& 11 4.316516 0.078792 0.078788 +& 11 4.342415 0.077183 0.077180 +& 11 4.368470 0.075598 0.075594 +& 11 4.394681 0.074034 0.074031 +& 11 4.421049 0.072493 0.072490 +& 11 4.447575 0.070974 0.070971 +& 11 4.474260 0.069478 0.069475 +& 11 4.501106 0.068003 0.068000 +& 11 4.528113 0.066551 0.066548 +& 11 4.555281 0.065120 0.065117 +& 11 4.582613 0.063711 0.063708 +& 11 4.610109 0.062323 0.062320 +& 11 4.637769 0.060958 0.060955 +& 11 4.665596 0.059613 0.059610 +& 11 4.693589 0.058290 0.058287 +& 11 4.721751 0.056988 0.056985 +& 11 4.750082 0.055707 0.055704 +& 11 4.778582 0.054446 0.054444 +& 11 4.807254 0.053207 0.053204 +& 11 4.836097 0.051988 0.051985 +& 11 4.865114 0.050789 0.050787 +& 11 4.894304 0.049611 0.049608 +& 11 4.923670 0.048453 0.048450 +& 11 4.953212 0.047315 0.047312 +& 11 4.982931 0.046196 0.046194 +& 11 5.012829 0.045097 0.045095 +& 11 5.042906 0.044018 0.044016 +& 11 5.073163 0.042958 0.042956 +& 11 5.103602 0.041917 0.041915 +& 11 5.134224 0.040895 0.040893 +& 11 5.165029 0.039892 0.039890 +& 11 5.196020 0.038907 0.038905 +& 11 5.227196 0.037941 0.037939 +& 11 5.258559 0.036993 0.036991 +& 11 5.290110 0.036063 0.036061 +& 11 5.321851 0.035150 0.035148 +& 11 5.353782 0.034256 0.034254 +& 11 5.385905 0.033378 0.033377 +& 11 5.418220 0.032518 0.032516 +& 11 5.450729 0.031675 0.031674 +& 11 5.483434 0.030849 0.030847 +& 11 5.516334 0.030039 0.030038 +& 11 5.549432 0.029246 0.029245 +& 11 5.582729 0.028469 0.028468 +& 11 5.616225 0.027708 0.027707 +& 11 5.649923 0.026963 0.026962 +& 11 5.683822 0.026234 0.026233 +& 11 5.717925 0.025520 0.025519 +& 11 5.752233 0.024821 0.024820 +& 11 5.786746 0.024137 0.024136 +& 11 5.821467 0.023468 0.023467 +& 11 5.856395 0.022814 0.022813 +& 11 5.891534 0.022174 0.022172 +& 11 5.926883 0.021548 0.021547 +& 11 5.962444 0.020936 0.020935 +& 11 5.998219 0.020338 0.020337 + + +scattering, iprj= 2, l= 1, all-electron wave function, pseudo w-f + +& 21 0.009958 0.000863 0.000275 +& 21 0.020051 0.003342 0.001112 +& 21 0.030117 0.007229 0.002506 +& 21 0.040134 0.012329 0.004443 +& 21 0.050377 0.018654 0.006985 +& 21 0.060642 0.025969 0.010094 +& 21 0.070847 0.034078 0.013734 +& 21 0.081297 0.043118 0.018017 +& 21 0.091629 0.052678 0.022791 +& 21 0.102046 0.062838 0.028133 +& 21 0.112296 0.073256 0.033893 +& 21 0.122839 0.084320 0.040318 +& 21 0.133569 0.095865 0.047362 +& 21 0.144371 0.107700 0.054941 +& 21 0.155116 0.119615 0.062943 +& 21 0.165666 0.131395 0.071225 +& 21 0.175879 0.142825 0.079619 +& 21 0.186721 0.154940 0.088909 +& 21 0.197049 0.166421 0.098095 +& 21 0.207949 0.178436 0.108115 +& 21 0.218143 0.189545 0.117761 +& 21 0.228836 0.201037 0.128136 +& 21 0.240054 0.212885 0.139267 +& 21 0.250319 0.223517 0.149646 +& 21 0.261024 0.234369 0.160631 +& 21 0.272186 0.245410 0.172229 +& 21 0.283826 0.256603 0.184440 +& 21 0.294198 0.266289 0.195387 +& 21 0.304949 0.276029 0.206768 +& 21 0.316094 0.285791 0.218566 +& 21 0.327645 0.295543 0.230760 +& 21 0.339619 0.305246 0.243319 +& 21 0.349930 0.313266 0.254039 +& 21 0.360555 0.321201 0.264960 +& 21 0.371502 0.329024 0.276053 +& 21 0.382782 0.336709 0.287282 +& 21 0.394404 0.344226 0.298606 +& 21 0.406379 0.351546 0.309978 +& 21 0.418717 0.358638 0.321347 +& 21 0.428857 0.364127 0.330401 +& 21 0.439243 0.369431 0.339384 +& 21 0.449880 0.374534 0.348261 +& 21 0.460775 0.379417 0.356994 +& 21 0.471933 0.384061 0.365544 +& 21 0.483362 0.388445 0.373869 +& 21 0.495067 0.392549 0.381924 +& 21 0.507056 0.396352 0.389663 +& 21 0.519336 0.399832 0.397038 +& 21 0.531912 0.402966 0.403999 +& 21 0.544794 0.405730 0.410495 +& 21 0.557987 0.408102 0.416474 +& 21 0.568091 0.409609 0.420586 +& 21 0.578378 0.410872 0.424355 +& 21 0.588852 0.411880 0.427758 +& 21 0.599515 0.412624 0.430773 +& 21 0.610371 0.413094 0.433378 +& 21 0.621423 0.413279 0.435552 +& 21 0.632676 0.413170 0.437274 +& 21 0.644133 0.412757 0.438523 +& 21 0.655797 0.412029 0.439281 +& 21 0.667672 0.410978 0.439530 +& 21 0.679763 0.409594 0.439252 +& 21 0.692072 0.407868 0.438431 +& 21 0.704604 0.405789 0.437056 +& 21 0.717363 0.403351 0.435112 +& 21 0.730353 0.400543 0.432589 +& 21 0.743579 0.397357 0.429481 +& 21 0.757044 0.393786 0.425779 +& 21 0.770752 0.389820 0.421482 +& 21 0.784709 0.385453 0.416586 +& 21 0.798919 0.380676 0.411093 +& 21 0.813386 0.375484 0.405007 +& 21 0.828115 0.369868 0.398333 +& 21 0.843111 0.363822 0.391080 +& 21 0.853258 0.359550 0.385927 +& 21 0.863528 0.355083 0.380525 +& 21 0.873922 0.350418 0.374877 +& 21 0.884440 0.345555 0.368989 +& 21 0.895085 0.340492 0.362864 +& 21 0.905859 0.335228 0.356508 +& 21 0.916761 0.329761 0.349927 +& 21 0.927796 0.324090 0.343125 +& 21 0.938963 0.318214 0.336108 +& 21 0.950264 0.312132 0.328882 +& 21 0.961701 0.305844 0.321452 +& 21 0.973276 0.299347 0.313826 +& 21 0.984991 0.292642 0.306007 +& 21 0.996846 0.285728 0.298003 +& 21 1.008844 0.278605 0.289818 +& 21 1.020987 0.271272 0.281457 +& 21 1.033275 0.263729 0.272925 +& 21 1.045712 0.255975 0.264226 +& 21 1.058298 0.248012 0.255366 +& 21 1.071035 0.239838 0.246346 +& 21 1.083926 0.231455 0.237170 +& 21 1.096973 0.222863 0.227842 +& 21 1.110176 0.214062 0.218361 +& 21 1.123538 0.205053 0.208731 +& 21 1.137061 0.195837 0.198952 +& 21 1.150746 0.186415 0.189024 +& 21 1.164597 0.176789 0.178948 +& 21 1.178614 0.166959 0.168723 +& 21 1.192800 0.156928 0.158348 +& 21 1.207156 0.146697 0.147822 +& 21 1.221686 0.136268 0.137143 +& 21 1.236390 0.125644 0.126311 +& 21 1.251271 0.114827 0.115323 +& 21 1.266331 0.103820 0.104179 +& 21 1.281573 0.092624 0.092876 +& 21 1.296998 0.081245 0.081415 +& 21 1.312608 0.069685 0.069794 +& 21 1.328407 0.057947 0.058013 +& 21 1.344396 0.046036 0.046073 +& 21 1.360577 0.033956 0.033975 +& 21 1.376953 0.021711 0.021720 +& 21 1.393526 0.009307 0.009310 +& 21 1.410298 -0.003252 -0.003251 +& 21 1.427273 -0.015961 -0.015960 +& 21 1.444451 -0.028812 -0.028812 +& 21 1.461837 -0.041802 -0.041800 +& 21 1.479431 -0.054922 -0.054920 +& 21 1.497238 -0.068165 -0.068163 +& 21 1.515259 -0.081526 -0.081523 +& 21 1.533496 -0.094995 -0.094992 +& 21 1.551953 -0.108565 -0.108561 +& 21 1.570633 -0.122228 -0.122223 +& 21 1.589537 -0.135973 -0.135969 +& 21 1.608668 -0.149793 -0.149788 +& 21 1.628030 -0.163676 -0.163671 +& 21 1.647625 -0.177613 -0.177607 +& 21 1.667456 -0.191593 -0.191586 +& 21 1.677461 -0.198595 -0.198588 +& 21 1.687526 -0.205604 -0.205597 +& 21 1.697651 -0.212617 -0.212610 +& 21 1.707837 -0.219634 -0.219626 +& 21 1.718084 -0.226652 -0.226645 +& 21 1.728392 -0.233670 -0.233663 +& 21 1.738763 -0.240687 -0.240679 +& 21 1.749195 -0.247701 -0.247693 +& 21 1.759690 -0.254709 -0.254701 +& 21 1.770249 -0.261711 -0.261703 +& 21 1.780870 -0.268704 -0.268696 +& 21 1.791555 -0.275687 -0.275678 +& 21 1.802305 -0.282658 -0.282649 +& 21 1.813118 -0.289614 -0.289605 +& 21 1.823997 -0.296554 -0.296545 +& 21 1.834941 -0.303476 -0.303467 +& 21 1.845951 -0.310378 -0.310369 +& 21 1.857026 -0.317258 -0.317249 +& 21 1.868169 -0.324113 -0.324104 +& 21 1.879378 -0.330942 -0.330933 +& 21 1.890654 -0.337743 -0.337733 +& 21 1.901998 -0.344512 -0.344502 +& 21 1.913410 -0.351248 -0.351238 +& 21 1.924890 -0.357949 -0.357939 +& 21 1.936440 -0.364612 -0.364602 +& 21 1.948058 -0.371235 -0.371224 +& 21 1.959747 -0.377815 -0.377804 +& 21 1.971505 -0.384349 -0.384339 +& 21 1.983334 -0.390836 -0.390826 +& 21 1.995234 -0.397273 -0.397263 +& 21 2.007206 -0.403657 -0.403646 +& 21 2.019249 -0.409986 -0.409975 +& 21 2.031364 -0.416256 -0.416245 +& 21 2.043552 -0.422465 -0.422454 +& 21 2.055814 -0.428611 -0.428600 +& 21 2.068149 -0.434690 -0.434679 +& 21 2.080558 -0.440699 -0.440688 +& 21 2.093041 -0.446636 -0.446625 +& 21 2.105599 -0.452498 -0.452487 +& 21 2.118233 -0.458282 -0.458271 +& 21 2.130942 -0.463984 -0.463973 +& 21 2.143728 -0.469602 -0.469591 +& 21 2.156590 -0.475133 -0.475122 +& 21 2.169530 -0.480572 -0.480561 +& 21 2.182547 -0.485918 -0.485907 +& 21 2.195642 -0.491167 -0.491156 +& 21 2.208816 -0.496316 -0.496305 +& 21 2.222069 -0.501360 -0.501349 +& 21 2.235401 -0.506298 -0.506287 +& 21 2.248814 -0.511125 -0.511115 +& 21 2.262307 -0.515839 -0.515828 +& 21 2.275880 -0.520435 -0.520424 +& 21 2.289536 -0.524910 -0.524900 +& 21 2.303273 -0.529261 -0.529251 +& 21 2.317093 -0.533484 -0.533474 +& 21 2.330995 -0.537576 -0.537566 +& 21 2.344981 -0.541533 -0.541522 +& 21 2.359051 -0.545350 -0.545340 +& 21 2.373205 -0.549026 -0.549016 +& 21 2.387444 -0.552555 -0.552545 +& 21 2.401769 -0.555935 -0.555925 +& 21 2.416180 -0.559160 -0.559151 +& 21 2.430677 -0.562229 -0.562220 +& 21 2.445261 -0.565136 -0.565127 +& 21 2.459932 -0.567879 -0.567870 +& 21 2.474692 -0.570452 -0.570444 +& 21 2.489540 -0.572853 -0.572845 +& 21 2.504477 -0.575078 -0.575070 +& 21 2.519504 -0.577122 -0.577114 +& 21 2.534621 -0.578983 -0.578975 +& 21 2.549829 -0.580655 -0.580647 +& 21 2.565128 -0.582135 -0.582128 +& 21 2.580519 -0.583420 -0.583413 +& 21 2.596002 -0.584505 -0.584499 +& 21 2.611578 -0.585387 -0.585381 +& 21 2.627247 -0.586062 -0.586056 +& 21 2.643011 -0.586526 -0.586520 +& 21 2.658869 -0.586775 -0.586769 +& 21 2.674822 -0.586805 -0.586800 +& 21 2.690871 -0.586613 -0.586609 +& 21 2.707016 -0.586196 -0.586191 +& 21 2.723258 -0.585548 -0.585544 +& 21 2.739598 -0.584667 -0.584664 +& 21 2.756036 -0.583550 -0.583547 +& 21 2.772572 -0.582192 -0.582189 +& 21 2.789207 -0.580590 -0.580588 +& 21 2.805942 -0.578741 -0.578739 +& 21 2.822778 -0.576641 -0.576640 +& 21 2.839715 -0.574288 -0.574287 +& 21 2.856753 -0.571677 -0.571676 +& 21 2.873894 -0.568806 -0.568806 +& 21 2.891137 -0.565671 -0.565671 +& 21 2.908484 -0.562270 -0.562271 +& 21 2.925935 -0.558600 -0.558601 +& 21 2.943490 -0.554658 -0.554660 +& 21 2.961151 -0.550441 -0.550443 +& 21 2.978918 -0.545947 -0.545950 +& 21 2.996792 -0.541173 -0.541177 +& 21 3.014772 -0.536118 -0.536121 +& 21 3.032861 -0.530778 -0.530782 +& 21 3.051058 -0.525152 -0.525157 +& 21 3.069365 -0.519239 -0.519244 +& 21 3.087781 -0.513035 -0.513041 +& 21 3.106307 -0.506540 -0.506547 +& 21 3.124945 -0.499753 -0.499760 +& 21 3.143695 -0.492672 -0.492679 +& 21 3.162557 -0.485296 -0.485304 +& 21 3.181532 -0.477624 -0.477633 +& 21 3.200622 -0.469656 -0.469666 +& 21 3.219825 -0.461392 -0.461402 +& 21 3.239144 -0.452830 -0.452841 +& 21 3.258579 -0.443972 -0.443983 +& 21 3.278131 -0.434817 -0.434829 +& 21 3.297799 -0.425367 -0.425379 +& 21 3.317586 -0.415621 -0.415633 +& 21 3.337492 -0.405580 -0.405594 +& 21 3.357517 -0.395247 -0.395261 +& 21 3.377662 -0.384623 -0.384638 +& 21 3.397928 -0.373709 -0.373725 +& 21 3.418315 -0.362509 -0.362524 +& 21 3.438825 -0.351023 -0.351039 +& 21 3.459458 -0.339255 -0.339272 +& 21 3.480215 -0.327209 -0.327226 +& 21 3.501096 -0.314887 -0.314905 +& 21 3.522103 -0.302293 -0.302312 +& 21 3.543235 -0.289432 -0.289452 +& 21 3.564495 -0.276308 -0.276328 +& 21 3.585882 -0.262926 -0.262946 +& 21 3.607397 -0.249291 -0.249312 +& 21 3.629041 -0.235408 -0.235429 +& 21 3.650816 -0.221284 -0.221306 +& 21 3.672721 -0.206925 -0.206947 +& 21 3.694757 -0.192337 -0.192360 +& 21 3.716925 -0.177529 -0.177552 +& 21 3.739227 -0.162506 -0.162531 +& 21 3.761662 -0.147279 -0.147303 +& 21 3.784232 -0.131854 -0.131879 +& 21 3.806938 -0.116241 -0.116266 +& 21 3.829779 -0.100448 -0.100474 +& 21 3.852758 -0.084487 -0.084513 +& 21 3.875875 -0.068366 -0.068393 +& 21 3.899130 -0.052096 -0.052124 +& 21 3.922525 -0.035689 -0.035717 +& 21 3.946060 -0.019156 -0.019184 +& 21 3.969736 -0.002508 -0.002537 +& 21 3.993555 0.014241 0.014212 +& 21 4.017516 0.031079 0.031050 +& 21 4.041621 0.047994 0.047964 +& 21 4.065871 0.064970 0.064940 +& 21 4.090266 0.081994 0.081964 +& 21 4.114808 0.099051 0.099021 +& 21 4.139496 0.116127 0.116097 +& 21 4.164333 0.133205 0.133175 +& 21 4.189319 0.150271 0.150240 +& 21 4.214455 0.167307 0.167276 +& 21 4.239742 0.184296 0.184266 +& 21 4.265180 0.201223 0.201192 +& 21 4.290772 0.218068 0.218037 +& 21 4.316516 0.234815 0.234784 +& 21 4.342415 0.251444 0.251413 +& 21 4.368470 0.267938 0.267907 +& 21 4.394681 0.284276 0.284246 +& 21 4.421049 0.300440 0.300410 +& 21 4.447575 0.316411 0.316380 +& 21 4.474260 0.332167 0.332137 +& 21 4.501106 0.347688 0.347659 +& 21 4.528113 0.362955 0.362925 +& 21 4.555281 0.377945 0.377916 +& 21 4.582613 0.392639 0.392610 +& 21 4.610109 0.407014 0.406986 +& 21 4.637769 0.421049 0.421022 +& 21 4.665596 0.434723 0.434696 +& 21 4.693589 0.448013 0.447987 +& 21 4.721751 0.460898 0.460872 +& 21 4.750082 0.473356 0.473331 +& 21 4.778582 0.485364 0.485340 +& 21 4.807254 0.496901 0.496878 +& 21 4.836097 0.507945 0.507922 +& 21 4.865114 0.518473 0.518451 +& 21 4.894304 0.528463 0.528442 +& 21 4.923670 0.537895 0.537874 +& 21 4.953212 0.546745 0.546726 +& 21 4.982931 0.554994 0.554975 +& 21 5.012829 0.562619 0.562601 +& 21 5.042906 0.569600 0.569584 +& 21 5.073163 0.575916 0.575901 +& 21 5.103602 0.581548 0.581534 +& 21 5.134224 0.586475 0.586463 +& 21 5.165029 0.590680 0.590668 +& 21 5.196020 0.594142 0.594132 +& 21 5.227196 0.596844 0.596835 +& 21 5.258559 0.598770 0.598762 +& 21 5.290110 0.599902 0.599896 +& 21 5.321851 0.600225 0.600220 +& 21 5.353782 0.599724 0.599720 +& 21 5.385905 0.598384 0.598383 +& 21 5.418220 0.596195 0.596194 +& 21 5.450729 0.593142 0.593143 +& 21 5.483434 0.589216 0.589219 +& 21 5.516334 0.584407 0.584411 +& 21 5.549432 0.578707 0.578713 +& 21 5.582729 0.572109 0.572116 +& 21 5.616225 0.564606 0.564616 +& 21 5.649923 0.556196 0.556207 +& 21 5.683822 0.546876 0.546888 +& 21 5.717925 0.536643 0.536658 +& 21 5.752233 0.525500 0.525516 +& 21 5.786746 0.513449 0.513466 +& 21 5.821467 0.500493 0.500512 +& 21 5.856395 0.486638 0.486659 +& 21 5.891534 0.471893 0.471916 +& 21 5.926883 0.456268 0.456292 +& 21 5.962444 0.439774 0.439799 +& 21 5.998219 0.422425 0.422452 + + +!J 1 0.009958 0.002057 -0.000854 +!J 1 0.017897 0.006638 -0.002757 +!J 1 0.025933 0.013922 -0.005782 +!J 1 0.033944 0.023815 -0.009889 +!J 1 0.041850 0.036129 -0.015001 +!J 1 0.049778 0.050992 -0.021169 +!J 1 0.057808 0.068576 -0.028460 +!J 1 0.065939 0.088928 -0.036892 +!J 1 0.073877 0.111214 -0.046114 +!J 1 0.081785 0.135739 -0.056246 +!J 1 0.089999 0.163599 -0.067731 +!J 1 0.098449 0.194705 -0.080517 +!J 1 0.106410 0.226208 -0.093418 +!J 1 0.114330 0.259565 -0.107020 +!J 1 0.122839 0.297547 -0.122420 +!J 1 0.131194 0.336884 -0.138258 +!J 1 0.139281 0.376773 -0.154184 +!J 1 0.147867 0.420933 -0.171638 +!J 1 0.156047 0.464600 -0.188687 +!J 1 0.164678 0.512219 -0.207011 +!J 1 0.172751 0.558032 -0.224342 +!J 1 0.181219 0.607255 -0.242595 +!J 1 0.190102 0.659983 -0.261671 +!J 1 0.198232 0.709039 -0.278921 +!J 1 0.206709 0.760825 -0.296543 +!J 1 0.215549 0.815305 -0.314348 +!J 1 0.224766 0.872398 -0.332092 +!J 1 0.232980 0.923310 -0.347019 +!J 1 0.241494 0.975910 -0.361434 +!J 1 0.250319 1.030028 -0.375052 +!J 1 0.259467 1.085443 -0.387535 +!J 1 0.268949 1.141878 -0.398488 +!J 1 0.277115 1.189445 -0.406121 +!J 1 0.285529 1.237255 -0.412079 +!J 1 0.294198 1.285040 -0.416033 +!J 1 0.303131 1.332494 -0.417618 +!J 1 0.312334 1.379270 -0.416442 +!J 1 0.321818 1.424982 -0.412078 +!J 1 0.331589 1.469198 -0.404074 +!J 1 0.339619 1.503177 -0.394731 +!J 1 0.347843 1.535635 -0.382502 +!J 1 0.356267 1.566291 -0.367133 +!J 1 0.364895 1.594851 -0.348365 +!J 1 0.373731 1.621006 -0.325946 +!J 1 0.382782 1.644433 -0.299630 +!J 1 0.392051 1.664798 -0.269184 +!J 1 0.401546 1.681760 -0.234395 +!J 1 0.411270 1.694973 -0.195075 +!J 1 0.421230 1.704088 -0.151071 +!J 1 0.431430 1.708762 -0.102269 +!J 1 0.441878 1.708658 -0.048605 +!J 1 0.449880 1.705248 -0.005160 +!J 1 0.458026 1.698838 0.041003 +!J 1 0.466321 1.689305 0.089842 +!J 1 0.474765 1.676535 0.141289 +!J 1 0.483362 1.660424 0.195251 +!J 1 0.492115 1.640880 0.251608 +!J 1 0.501026 1.617824 0.310212 +!J 1 0.510099 1.591190 0.370888 +!J 1 0.519336 1.560929 0.433433 +!J 1 0.528740 1.527009 0.497615 +!J 1 0.538315 1.489415 0.563177 +!J 1 0.548062 1.448152 0.629835 +!J 1 0.557987 1.403244 0.697284 +!J 1 0.568091 1.354735 0.765197 +!J 1 0.578378 1.302690 0.833232 +!J 1 0.588852 1.247196 0.901034 +!J 1 0.599515 1.188361 0.968238 +!J 1 0.610371 1.126314 1.034475 +!J 1 0.621423 1.061208 1.099376 +!J 1 0.632676 0.993215 1.162578 +!J 1 0.644133 0.922531 1.223723 +!J 1 0.655797 0.849376 1.282467 +!J 1 0.667672 0.773992 1.338477 +!J 1 0.675708 0.722629 1.374140 +!J 1 0.683841 0.670479 1.408355 +!J 1 0.692072 0.617636 1.441032 +!J 1 0.700402 0.564195 1.472083 +!J 1 0.708832 0.510261 1.501420 +!J 1 0.717363 0.455945 1.528958 +!J 1 0.725997 0.401364 1.554605 +!J 1 0.734736 0.346646 1.578270 +!J 1 0.743579 0.291923 1.599857 +!J 1 0.752529 0.237339 1.619263 +!J 1 0.761586 0.183048 1.636378 +!J 1 0.770752 0.129212 1.651081 +!J 1 0.780029 0.076005 1.663242 +!J 1 0.789418 0.023612 1.672715 +!J 1 0.798919 -0.027772 1.679341 +!J 1 0.808535 -0.077939 1.682945 +!J 1 0.818266 -0.126671 1.683335 +!J 1 0.828115 -0.173740 1.680304 +!J 1 0.838082 -0.218906 1.673626 +!J 1 0.848169 -0.261922 1.663063 +!J 1 0.858378 -0.302533 1.648362 +!J 1 0.868709 -0.340481 1.629261 +!J 1 0.879165 -0.375504 1.605495 +!J 1 0.889747 -0.407342 1.576799 +!J 1 0.900456 -0.435738 1.542915 +!J 1 0.911294 -0.460448 1.503602 +!J 1 0.922262 -0.481240 1.458648 +!J 1 0.933362 -0.497903 1.407877 +!J 1 0.944596 -0.510252 1.351160 +!J 1 0.955966 -0.518135 1.288437 +!J 1 0.967472 -0.521442 1.219718 +!J 1 0.979116 -0.520106 1.145109 +!J 1 0.990901 -0.514115 1.064816 +!J 1 1.002827 -0.503517 0.979163 +!J 1 1.014897 -0.488427 0.888602 +!J 1 1.027112 -0.469027 0.793719 +!J 1 1.039475 -0.445577 0.695245 +!J 1 1.051986 -0.418409 0.594054 +!J 1 1.064648 -0.387933 0.491161 +!J 1 1.077462 -0.354633 0.387715 +!J 1 1.090430 -0.319062 0.284986 +!J 1 1.103554 -0.281833 0.184344 +!J 1 1.116837 -0.243611 0.087234 +!J 1 1.130279 -0.205099 -0.004861 +!J 1 1.143883 -0.167022 -0.090453 +!J 1 1.157651 -0.130108 -0.168100 +!J 1 1.171584 -0.095068 -0.236450 +!J 1 1.185686 -0.062574 -0.294296 +!J 1 1.199956 -0.033234 -0.340626 +!J 1 1.214399 -0.007576 -0.374677 +!J 1 1.229016 0.013984 -0.395985 +!J 1 1.243808 0.031160 -0.404455 +!J 1 1.258779 0.043821 -0.400402 +!J 1 1.273929 0.052000 -0.384578 +!J 1 1.289262 0.055904 -0.358176 +!J 1 1.304780 0.055910 -0.322821 +!J 1 1.320484 0.052557 -0.280531 +!J 1 1.328407 0.049828 -0.257512 +!J 1 1.336377 0.046525 -0.233667 +!J 1 1.344396 0.042750 -0.209329 +!J 1 1.352462 0.038611 -0.184843 +!J 1 1.360577 0.034219 -0.160559 +!J 1 1.368740 0.029688 -0.136830 +!J 1 1.376953 0.025132 -0.114005 +!J 1 1.385215 0.020665 -0.092429 +!J 1 1.393526 0.016400 -0.072439 +!J 1 1.401887 0.012441 -0.054348 +!J 1 1.410298 0.008887 -0.038448 +!J 1 1.418760 0.005830 -0.025007 +!J 1 1.427273 0.003349 -0.014261 +!J 1 1.435836 0.001514 -0.006410 +!J 1 1.444451 0.000384 -0.001617 +!J 1 1.453118 -0.000000 0.000000 +!J 1 1.461837 0.000000 -0.000000 +!J 1 1.470608 0.000000 -0.000000 +!J 1 1.479431 0.000000 -0.000000 +!J 1 1.488308 0.000000 -0.000000 +!J 1 1.497238 0.000000 -0.000000 +!J 1 1.506221 0.000000 -0.000000 +!J 1 1.515259 0.000000 -0.000000 +!J 1 1.524350 0.000000 -0.000000 +!J 1 1.533496 0.000000 -0.000000 +!J 1 1.542697 0.000000 -0.000000 +!J 1 1.551953 0.000000 -0.000000 +!J 1 1.561265 0.000000 -0.000000 +!J 1 1.570633 0.000000 -0.000000 +!J 1 1.580056 0.000000 -0.000000 + + +scattering, iprj= 1, l= 2, all-electron wave function, pseudo w-f + +& 12 0.009958 0.000000 0.000000 +& 12 0.020051 0.000001 0.000000 +& 12 0.030117 0.000004 0.000001 +& 12 0.040134 0.000008 0.000003 +& 12 0.050377 0.000016 0.000006 +& 12 0.060642 0.000027 0.000010 +& 12 0.070847 0.000042 0.000017 +& 12 0.081297 0.000062 0.000025 +& 12 0.091629 0.000086 0.000036 +& 12 0.102046 0.000116 0.000050 +& 12 0.112296 0.000151 0.000067 +& 12 0.122839 0.000193 0.000089 +& 12 0.133569 0.000243 0.000115 +& 12 0.144371 0.000299 0.000146 +& 12 0.155116 0.000362 0.000182 +& 12 0.165666 0.000432 0.000223 +& 12 0.175879 0.000505 0.000269 +& 12 0.186721 0.000591 0.000324 +& 12 0.197049 0.000680 0.000383 +& 12 0.207949 0.000782 0.000452 +& 12 0.218143 0.000884 0.000525 +& 12 0.228836 0.000999 0.000609 +& 12 0.240054 0.001129 0.000705 +& 12 0.250319 0.001254 0.000803 +& 12 0.261024 0.001394 0.000912 +& 12 0.272186 0.001547 0.001037 +& 12 0.283826 0.001717 0.001177 +& 12 0.294198 0.001876 0.001312 +& 12 0.304949 0.002048 0.001461 +& 12 0.316094 0.002236 0.001626 +& 12 0.327645 0.002440 0.001808 +& 12 0.339619 0.002661 0.002009 +& 12 0.349930 0.002859 0.002191 +& 12 0.360555 0.003071 0.002388 +& 12 0.371502 0.003298 0.002601 +& 12 0.382782 0.003541 0.002831 +& 12 0.394404 0.003799 0.003078 +& 12 0.406379 0.004076 0.003345 +& 12 0.418717 0.004371 0.003632 +& 12 0.428857 0.004621 0.003876 +& 12 0.439243 0.004885 0.004135 +& 12 0.449880 0.005163 0.004409 +& 12 0.460775 0.005455 0.004699 +& 12 0.471933 0.005762 0.005006 +& 12 0.483362 0.006086 0.005330 +& 12 0.495067 0.006426 0.005673 +& 12 0.507056 0.006785 0.006036 +& 12 0.519336 0.007161 0.006419 +& 12 0.531912 0.007557 0.006825 +& 12 0.544794 0.007973 0.007254 +& 12 0.557987 0.008410 0.007708 +& 12 0.568091 0.008752 0.008065 +& 12 0.578378 0.009107 0.008438 +& 12 0.588852 0.009475 0.008828 +& 12 0.599515 0.009857 0.009234 +& 12 0.610371 0.010253 0.009657 +& 12 0.621423 0.010664 0.010099 +& 12 0.632676 0.011090 0.010559 +& 12 0.644133 0.011532 0.011039 +& 12 0.655797 0.011989 0.011538 +& 12 0.667672 0.012464 0.012058 +& 12 0.679763 0.012956 0.012599 +& 12 0.692072 0.013465 0.013160 +& 12 0.704604 0.013994 0.013743 +& 12 0.717363 0.014541 0.014347 +& 12 0.730353 0.015108 0.014972 +& 12 0.743579 0.015696 0.015619 +& 12 0.757044 0.016305 0.016286 +& 12 0.770752 0.016936 0.016975 +& 12 0.784709 0.017590 0.017684 +& 12 0.798919 0.018268 0.018413 +& 12 0.813386 0.018970 0.019162 +& 12 0.828115 0.019698 0.019930 +& 12 0.843111 0.020452 0.020718 +& 12 0.853258 0.020969 0.021255 +& 12 0.863528 0.021499 0.021800 +& 12 0.873922 0.022042 0.022354 +& 12 0.884440 0.022598 0.022918 +& 12 0.895085 0.023167 0.023491 +& 12 0.905859 0.023750 0.024073 +& 12 0.916761 0.024347 0.024666 +& 12 0.927796 0.024958 0.025270 +& 12 0.938963 0.025584 0.025885 +& 12 0.950264 0.026225 0.026513 +& 12 0.961701 0.026881 0.027152 +& 12 0.973276 0.027553 0.027806 +& 12 0.984991 0.028242 0.028474 +& 12 0.996846 0.028947 0.029157 +& 12 1.008844 0.029669 0.029857 +& 12 1.020987 0.030409 0.030574 +& 12 1.033275 0.031167 0.031309 +& 12 1.045712 0.031943 0.032063 +& 12 1.058298 0.032738 0.032837 +& 12 1.071035 0.033552 0.033632 +& 12 1.083926 0.034387 0.034449 +& 12 1.096973 0.035241 0.035289 +& 12 1.110176 0.036117 0.036151 +& 12 1.123538 0.037014 0.037038 +& 12 1.137061 0.037933 0.037948 +& 12 1.150746 0.038874 0.038883 +& 12 1.164597 0.039839 0.039843 +& 12 1.178614 0.040827 0.040829 +& 12 1.192800 0.041840 0.041840 +& 12 1.207156 0.042877 0.042876 +& 12 1.221686 0.043940 0.043939 +& 12 1.236390 0.045030 0.045028 +& 12 1.251271 0.046146 0.046145 +& 12 1.266331 0.047290 0.047289 +& 12 1.281573 0.048463 0.048461 +& 12 1.296998 0.049664 0.049663 +& 12 1.312608 0.050895 0.050894 +& 12 1.328407 0.052157 0.052156 +& 12 1.344396 0.053451 0.053449 +& 12 1.360577 0.054776 0.054775 +& 12 1.376953 0.056135 0.056134 +& 12 1.393526 0.057528 0.057526 +& 12 1.410298 0.058955 0.058953 +& 12 1.427273 0.060418 0.060416 +& 12 1.444451 0.061918 0.061916 +& 12 1.461837 0.063455 0.063453 +& 12 1.479431 0.065030 0.065029 +& 12 1.497238 0.066645 0.066644 +& 12 1.515259 0.068301 0.068299 +& 12 1.533496 0.069998 0.069996 +& 12 1.551953 0.071738 0.071736 +& 12 1.570633 0.073521 0.073519 +& 12 1.589537 0.075349 0.075347 +& 12 1.608668 0.077222 0.077220 +& 12 1.628030 0.079143 0.079141 +& 12 1.647625 0.081112 0.081110 +& 12 1.667456 0.083130 0.083128 +& 12 1.677461 0.084158 0.084156 +& 12 1.687526 0.085198 0.085196 +& 12 1.697651 0.086252 0.086250 +& 12 1.707837 0.087319 0.087317 +& 12 1.718084 0.088399 0.088397 +& 12 1.728392 0.089492 0.089490 +& 12 1.738763 0.090599 0.090597 +& 12 1.749195 0.091720 0.091718 +& 12 1.759690 0.092855 0.092853 +& 12 1.770249 0.094004 0.094002 +& 12 1.780870 0.095167 0.095165 +& 12 1.791555 0.096344 0.096342 +& 12 1.802305 0.097536 0.097534 +& 12 1.813118 0.098743 0.098741 +& 12 1.823997 0.099965 0.099963 +& 12 1.834941 0.101202 0.101200 +& 12 1.845951 0.102454 0.102452 +& 12 1.857026 0.103721 0.103719 +& 12 1.868169 0.105005 0.105002 +& 12 1.879378 0.106304 0.106302 +& 12 1.890654 0.107619 0.107617 +& 12 1.901998 0.108950 0.108948 +& 12 1.913410 0.110298 0.110295 +& 12 1.924890 0.111662 0.111660 +& 12 1.936440 0.113043 0.113041 +& 12 1.948058 0.114441 0.114438 +& 12 1.959747 0.115856 0.115853 +& 12 1.971505 0.117288 0.117286 +& 12 1.983334 0.118738 0.118736 +& 12 1.995234 0.120205 0.120203 +& 12 2.007206 0.121691 0.121689 +& 12 2.019249 0.123194 0.123192 +& 12 2.031364 0.124716 0.124714 +& 12 2.043552 0.126257 0.126255 +& 12 2.055814 0.127816 0.127814 +& 12 2.068149 0.129394 0.129392 +& 12 2.080558 0.130991 0.130989 +& 12 2.093041 0.132607 0.132605 +& 12 2.105599 0.134243 0.134241 +& 12 2.118233 0.135899 0.135897 +& 12 2.130942 0.137574 0.137572 +& 12 2.143728 0.139270 0.139268 +& 12 2.156590 0.140986 0.140984 +& 12 2.169530 0.142723 0.142720 +& 12 2.182547 0.144480 0.144478 +& 12 2.195642 0.146258 0.146256 +& 12 2.208816 0.148058 0.148055 +& 12 2.222069 0.149878 0.149876 +& 12 2.235401 0.151721 0.151719 +& 12 2.248814 0.153585 0.153583 +& 12 2.262307 0.155471 0.155469 +& 12 2.275880 0.157380 0.157378 +& 12 2.289536 0.159311 0.159308 +& 12 2.303273 0.161264 0.161262 +& 12 2.317093 0.163241 0.163238 +& 12 2.330995 0.165240 0.165238 +& 12 2.344981 0.167263 0.167261 +& 12 2.359051 0.169309 0.169307 +& 12 2.373205 0.171379 0.171377 +& 12 2.387444 0.173473 0.173471 +& 12 2.401769 0.175591 0.175589 +& 12 2.416180 0.177733 0.177731 +& 12 2.430677 0.179900 0.179898 +& 12 2.445261 0.182092 0.182090 +& 12 2.459932 0.184308 0.184306 +& 12 2.474692 0.186550 0.186548 +& 12 2.489540 0.188817 0.188815 +& 12 2.504477 0.191110 0.191108 +& 12 2.519504 0.193428 0.193426 +& 12 2.534621 0.195773 0.195770 +& 12 2.549829 0.198143 0.198141 +& 12 2.565128 0.200540 0.200538 +& 12 2.580519 0.202963 0.202961 +& 12 2.596002 0.205414 0.205411 +& 12 2.611578 0.207891 0.207888 +& 12 2.627247 0.210395 0.210393 +& 12 2.643011 0.212926 0.212924 +& 12 2.658869 0.215485 0.215483 +& 12 2.674822 0.218072 0.218070 +& 12 2.690871 0.220686 0.220684 +& 12 2.707016 0.223329 0.223326 +& 12 2.723258 0.225999 0.225997 +& 12 2.739598 0.228698 0.228696 +& 12 2.756036 0.231426 0.231423 +& 12 2.772572 0.234182 0.234179 +& 12 2.789207 0.236966 0.236964 +& 12 2.805942 0.239780 0.239778 +& 12 2.822778 0.242623 0.242621 +& 12 2.839715 0.245495 0.245493 +& 12 2.856753 0.248396 0.248394 +& 12 2.873894 0.251327 0.251325 +& 12 2.891137 0.254288 0.254285 +& 12 2.908484 0.257278 0.257276 +& 12 2.925935 0.260298 0.260296 +& 12 2.943490 0.263348 0.263346 +& 12 2.961151 0.266428 0.266425 +& 12 2.978918 0.269538 0.269536 +& 12 2.996792 0.272678 0.272676 +& 12 3.014772 0.275849 0.275846 +& 12 3.032861 0.279050 0.279047 +& 12 3.051058 0.282281 0.282279 +& 12 3.069365 0.285543 0.285540 +& 12 3.087781 0.288835 0.288833 +& 12 3.106307 0.292158 0.292156 +& 12 3.124945 0.295511 0.295509 +& 12 3.143695 0.298896 0.298893 +& 12 3.162557 0.302310 0.302308 +& 12 3.181532 0.305756 0.305754 +& 12 3.200622 0.309232 0.309230 +& 12 3.219825 0.312738 0.312736 +& 12 3.239144 0.316276 0.316274 +& 12 3.258579 0.319844 0.319842 +& 12 3.278131 0.323442 0.323440 +& 12 3.297799 0.327071 0.327069 +& 12 3.317586 0.330731 0.330728 +& 12 3.337492 0.334420 0.334418 +& 12 3.357517 0.338141 0.338138 +& 12 3.377662 0.341891 0.341889 +& 12 3.397928 0.345671 0.345669 +& 12 3.418315 0.349482 0.349480 +& 12 3.438825 0.353322 0.353320 +& 12 3.459458 0.357193 0.357191 +& 12 3.480215 0.361092 0.361091 +& 12 3.501096 0.365022 0.365020 +& 12 3.522103 0.368981 0.368979 +& 12 3.543235 0.372968 0.372967 +& 12 3.564495 0.376985 0.376983 +& 12 3.585882 0.381031 0.381029 +& 12 3.607397 0.385105 0.385103 +& 12 3.629041 0.389208 0.389206 +& 12 3.650816 0.393339 0.393337 +& 12 3.672721 0.397498 0.397496 +& 12 3.694757 0.401684 0.401682 +& 12 3.716925 0.405898 0.405896 +& 12 3.739227 0.410139 0.410137 +& 12 3.761662 0.414407 0.414405 +& 12 3.784232 0.418701 0.418700 +& 12 3.806938 0.423022 0.423020 +& 12 3.829779 0.427369 0.427367 +& 12 3.852758 0.431741 0.431740 +& 12 3.875875 0.436139 0.436138 +& 12 3.899130 0.440562 0.440560 +& 12 3.922525 0.445009 0.445008 +& 12 3.946060 0.449481 0.449479 +& 12 3.969736 0.453976 0.453975 +& 12 3.993555 0.458495 0.458494 +& 12 4.017516 0.463038 0.463036 +& 12 4.041621 0.467602 0.467601 +& 12 4.065871 0.472190 0.472188 +& 12 4.090266 0.476799 0.476797 +& 12 4.114808 0.481429 0.481428 +& 12 4.139496 0.486080 0.486079 +& 12 4.164333 0.490752 0.490751 +& 12 4.189319 0.495444 0.495443 +& 12 4.214455 0.500155 0.500154 +& 12 4.239742 0.504885 0.504884 +& 12 4.265180 0.509633 0.509633 +& 12 4.290772 0.514400 0.514399 +& 12 4.316516 0.519183 0.519183 +& 12 4.342415 0.523984 0.523983 +& 12 4.368470 0.528800 0.528800 +& 12 4.394681 0.533632 0.533632 +& 12 4.421049 0.538479 0.538479 +& 12 4.447575 0.543340 0.543340 +& 12 4.474260 0.548215 0.548214 +& 12 4.501106 0.553102 0.553102 +& 12 4.528113 0.558002 0.558001 +& 12 4.555281 0.562912 0.562912 +& 12 4.582613 0.567833 0.567833 +& 12 4.610109 0.572764 0.572764 +& 12 4.637769 0.577704 0.577704 +& 12 4.665596 0.582652 0.582652 +& 12 4.693589 0.587606 0.587606 +& 12 4.721751 0.592567 0.592567 +& 12 4.750082 0.597533 0.597533 +& 12 4.778582 0.602503 0.602503 +& 12 4.807254 0.607476 0.607476 +& 12 4.836097 0.612451 0.612451 +& 12 4.865114 0.617426 0.617427 +& 12 4.894304 0.622402 0.622402 +& 12 4.923670 0.627375 0.627376 +& 12 4.953212 0.632346 0.632346 +& 12 4.982931 0.637312 0.637313 +& 12 5.012829 0.642273 0.642273 +& 12 5.042906 0.647226 0.647227 +& 12 5.073163 0.652171 0.652172 +& 12 5.103602 0.657106 0.657107 +& 12 5.134224 0.662029 0.662030 +& 12 5.165029 0.666939 0.666940 +& 12 5.196020 0.671834 0.671835 +& 12 5.227196 0.676712 0.676713 +& 12 5.258559 0.681571 0.681573 +& 12 5.290110 0.686411 0.686412 +& 12 5.321851 0.691227 0.691229 +& 12 5.353782 0.696020 0.696021 +& 12 5.385905 0.700786 0.700787 +& 12 5.418220 0.705523 0.705525 +& 12 5.450729 0.710230 0.710232 +& 12 5.483434 0.714904 0.714906 +& 12 5.516334 0.719543 0.719545 +& 12 5.549432 0.724145 0.724147 +& 12 5.582729 0.728707 0.728709 +& 12 5.616225 0.733226 0.733229 +& 12 5.649923 0.737701 0.737704 +& 12 5.683822 0.742129 0.742131 +& 12 5.717925 0.746506 0.746509 +& 12 5.752233 0.750831 0.750834 +& 12 5.786746 0.755101 0.755104 +& 12 5.821467 0.759313 0.759316 +& 12 5.856395 0.763463 0.763466 +& 12 5.891534 0.767550 0.767553 +& 12 5.926883 0.771570 0.771573 +& 12 5.962444 0.775519 0.775523 +& 12 5.998219 0.779396 0.779399 + + +!J 2 0.009958 0.000150 +!J 2 0.017897 0.000869 +!J 2 0.025933 0.002626 +!J 2 0.033944 0.005832 +!J 2 0.041850 0.010800 +!J 2 0.049778 0.017910 +!J 2 0.057808 0.027565 +!J 2 0.065939 0.040083 +!J 2 0.073877 0.055108 +!J 2 0.081785 0.072902 +!J 2 0.089999 0.094358 +!J 2 0.098449 0.119478 +!J 2 0.106410 0.145791 +!J 2 0.114330 0.174246 +!J 2 0.122839 0.206974 +!J 2 0.131194 0.240806 +!J 2 0.139281 0.274632 +!J 2 0.147867 0.311066 +!J 2 0.156047 0.345613 +!J 2 0.164678 0.381142 +!J 2 0.172751 0.412790 +!J 2 0.181219 0.443581 +!J 2 0.190102 0.472383 +!J 2 0.198232 0.494861 +!J 2 0.206709 0.513637 +!J 2 0.215549 0.527433 +!J 2 0.224766 0.534813 +!J 2 0.232980 0.534848 +!J 2 0.241494 0.527983 +!J 2 0.250319 0.513160 +!J 2 0.259467 0.489345 +!J 2 0.268949 0.455582 +!J 2 0.277115 0.419255 +!J 2 0.285529 0.375097 +!J 2 0.294198 0.322904 +!J 2 0.303131 0.262658 +!J 2 0.312334 0.194577 +!J 2 0.321818 0.119163 +!J 2 0.331589 0.037248 +!J 2 0.339619 -0.032170 +!J 2 0.347843 -0.104182 +!J 2 0.356267 -0.177807 +!J 2 0.364895 -0.251884 +!J 2 0.373731 -0.325074 +!J 2 0.382782 -0.395867 +!J 2 0.392051 -0.462605 +!J 2 0.401546 -0.523505 +!J 2 0.411270 -0.576705 +!J 2 0.421230 -0.620317 +!J 2 0.431430 -0.652495 +!J 2 0.441878 -0.671522 +!J 2 0.449880 -0.676254 +!J 2 0.458026 -0.672234 +!J 2 0.466321 -0.659090 +!J 2 0.474765 -0.636616 +!J 2 0.483362 -0.604806 +!J 2 0.492115 -0.563882 +!J 2 0.501026 -0.514325 +!J 2 0.510099 -0.456904 +!J 2 0.519336 -0.392698 +!J 2 0.528740 -0.323110 +!J 2 0.538315 -0.249882 +!J 2 0.548062 -0.175090 +!J 2 0.557987 -0.101132 +!J 2 0.568091 -0.030703 +!J 2 0.578378 0.033250 +!J 2 0.588852 0.087588 +!J 2 0.599515 0.129062 +!J 2 0.610371 0.154410 +!J 2 0.621423 0.160478 +!J 2 0.632676 0.144358 +!J 2 0.644133 0.103543 +!J 2 0.655797 0.036089 +!J 2 0.667672 -0.059209 +!J 2 0.675708 -0.138399 +!J 2 0.683841 -0.229948 +!J 2 0.692072 -0.333457 +!J 2 0.700402 -0.448277 +!J 2 0.708832 -0.573500 +!J 2 0.717363 -0.707950 +!J 2 0.725997 -0.850174 +!J 2 0.734736 -0.998448 +!J 2 0.743579 -1.150784 +!J 2 0.752529 -1.304944 +!J 2 0.761586 -1.458462 +!J 2 0.770752 -1.608677 +!J 2 0.780029 -1.752772 +!J 2 0.789418 -1.887824 +!J 2 0.798919 -2.010855 +!J 2 0.808535 -2.118903 +!J 2 0.818266 -2.209091 +!J 2 0.828115 -2.278706 +!J 2 0.838082 -2.325280 +!J 2 0.848169 -2.346676 +!J 2 0.858378 -2.341173 +!J 2 0.868709 -2.307551 +!J 2 0.879165 -2.245163 +!J 2 0.889747 -2.154007 +!J 2 0.900456 -2.034782 +!J 2 0.911294 -1.888923 +!J 2 0.922262 -1.718625 +!J 2 0.933362 -1.526837 +!J 2 0.944596 -1.317233 +!J 2 0.955966 -1.094151 +!J 2 0.967472 -0.862508 +!J 2 0.979116 -0.627679 +!J 2 0.990901 -0.395347 +!J 2 1.002827 -0.171326 +!J 2 1.014897 0.038634 +!J 2 1.027112 0.229075 +!J 2 1.039475 0.395053 +!J 2 1.051986 0.532369 +!J 2 1.064648 0.637794 +!J 2 1.077462 0.709270 +!J 2 1.090430 0.746074 +!J 2 1.103554 0.748940 +!J 2 1.116837 0.720120 +!J 2 1.130279 0.663376 +!J 2 1.143883 0.583888 +!J 2 1.157651 0.488080 +!J 2 1.171584 0.383355 +!J 2 1.185686 0.277748 +!J 2 1.199956 0.179533 +!J 2 1.214399 0.096693 +!J 2 1.229016 0.036307 +!J 2 1.243808 0.004157 +!J 2 1.258779 0.000000 +!J 2 1.273929 0.000000 +!J 2 1.289262 0.000000 +!J 2 1.304780 0.000000 +!J 2 1.320484 0.000000 +!J 2 1.328407 0.000000 +!J 2 1.336377 0.000000 +!J 2 1.344396 0.000000 +!J 2 1.352462 0.000000 +!J 2 1.360577 0.000000 +!J 2 1.368740 0.000000 +!J 2 1.376953 0.000000 +!J 2 1.385215 0.000000 +!J 2 1.393526 0.000000 +!J 2 1.401887 0.000000 +!J 2 1.410298 0.000000 +!J 2 1.418760 0.000000 +!J 2 1.427273 0.000000 +!J 2 1.435836 0.000000 +!J 2 1.444451 0.000000 +!J 2 1.453118 0.000000 +!J 2 1.461837 0.000000 +!J 2 1.470608 0.000000 +!J 2 1.479431 0.000000 +!J 2 1.488308 0.000000 +!J 2 1.497238 0.000000 +!J 2 1.506221 0.000000 +!J 2 1.515259 0.000000 +!J 2 1.524350 0.000000 +!J 2 1.533496 0.000000 +!J 2 1.542697 0.000000 +!J 2 1.551953 0.000000 +!J 2 1.561265 0.000000 +!J 2 1.570633 0.000000 +!J 2 1.580056 0.000000 + +convergence profiles, (ll=0,lmax) + lmax 2 +!C 0 12.172858 0.010000 +!C 0 17.755285 0.003162 +!C 0 21.670836 0.001000 +!C 0 24.936453 0.000316 +!C 0 27.753432 0.000100 +!C 0 30.047102 0.000032 +!C 0 32.408732 0.000010 +!C 1 23.772439 0.010000 +!C 1 27.415447 0.003162 +!C 1 30.690862 0.001000 +!C 1 33.447102 0.000316 +!C 1 36.146160 0.000100 +!C 1 38.169194 0.000032 +!C 1 40.333926 0.000010 +!C 2 0.234678 0.010000 +!C 2 0.365750 0.003162 +!C 2 0.556915 0.001000 +!C 2 1.049557 0.000316 +!C 2 2.291279 0.000100 +!C 2 4.613442 0.000032 +!C 2 7.898239 0.000010 + +log derivativve data for plotting, l= 0 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.37 +l, energy, all-electron, pseudopotential + +! 0 12.000000 -1.601062 -1.611618 +! 0 11.980000 -1.600384 -1.610826 +! 0 11.960000 -1.599706 -1.610035 +! 0 11.940000 -1.599029 -1.609247 +! 0 11.920000 -1.598352 -1.608461 +! 0 11.900000 -1.597676 -1.607676 +! 0 11.880000 -1.597000 -1.606894 +! 0 11.860000 -1.596325 -1.606114 +! 0 11.840000 -1.595650 -1.605335 +! 0 11.820000 -1.594975 -1.604559 +! 0 11.800000 -1.594301 -1.603784 +! 0 11.780000 -1.593628 -1.603011 +! 0 11.760000 -1.592954 -1.602239 +! 0 11.740000 -1.592281 -1.601469 +! 0 11.720000 -1.591608 -1.600701 +! 0 11.700000 -1.590936 -1.599934 +! 0 11.680000 -1.590263 -1.599168 +! 0 11.660000 -1.589591 -1.598404 +! 0 11.640000 -1.588919 -1.597642 +! 0 11.620000 -1.588247 -1.596880 +! 0 11.600000 -1.587575 -1.596120 +! 0 11.580000 -1.586903 -1.595361 +! 0 11.560000 -1.586231 -1.594603 +! 0 11.540000 -1.585559 -1.593847 +! 0 11.520000 -1.584887 -1.593091 +! 0 11.500000 -1.584215 -1.592336 +! 0 11.480000 -1.583543 -1.591583 +! 0 11.460000 -1.582870 -1.590830 +! 0 11.440000 -1.582198 -1.590078 +! 0 11.420000 -1.581525 -1.589327 +! 0 11.400000 -1.580852 -1.588577 +! 0 11.380000 -1.580179 -1.587827 +! 0 11.360000 -1.579506 -1.587078 +! 0 11.340000 -1.578832 -1.586330 +! 0 11.320000 -1.578158 -1.585582 +! 0 11.300000 -1.577484 -1.584835 +! 0 11.280000 -1.576809 -1.584089 +! 0 11.260000 -1.576134 -1.583343 +! 0 11.240000 -1.575458 -1.582597 +! 0 11.220000 -1.574782 -1.581852 +! 0 11.200000 -1.574105 -1.581107 +! 0 11.180000 -1.573428 -1.580363 +! 0 11.160000 -1.572750 -1.579618 +! 0 11.140000 -1.572072 -1.578874 +! 0 11.120000 -1.571393 -1.578130 +! 0 11.100000 -1.570713 -1.577387 +! 0 11.080000 -1.570033 -1.576643 +! 0 11.060000 -1.569351 -1.575899 +! 0 11.040000 -1.568670 -1.575156 +! 0 11.020000 -1.567987 -1.574412 +! 0 11.000000 -1.567303 -1.573668 +! 0 10.980000 -1.566619 -1.572925 +! 0 10.960000 -1.565934 -1.572181 +! 0 10.940000 -1.565248 -1.571436 +! 0 10.920000 -1.564561 -1.570692 +! 0 10.900000 -1.563873 -1.569947 +! 0 10.880000 -1.563184 -1.569202 +! 0 10.860000 -1.562494 -1.568457 +! 0 10.840000 -1.561803 -1.567711 +! 0 10.820000 -1.561111 -1.566965 +! 0 10.800000 -1.560418 -1.566219 +! 0 10.780000 -1.559723 -1.565472 +! 0 10.760000 -1.559028 -1.564724 +! 0 10.740000 -1.558331 -1.563976 +! 0 10.720000 -1.557633 -1.563227 +! 0 10.700000 -1.556934 -1.562477 +! 0 10.680000 -1.556233 -1.561727 +! 0 10.660000 -1.555531 -1.560976 +! 0 10.640000 -1.554828 -1.560224 +! 0 10.620000 -1.554123 -1.559471 +! 0 10.600000 -1.553417 -1.558718 +! 0 10.580000 -1.552710 -1.557963 +! 0 10.560000 -1.552000 -1.557208 +! 0 10.540000 -1.551290 -1.556451 +! 0 10.520000 -1.550578 -1.555694 +! 0 10.500000 -1.549864 -1.554935 +! 0 10.480000 -1.549148 -1.554176 +! 0 10.460000 -1.548431 -1.553415 +! 0 10.440000 -1.547713 -1.552653 +! 0 10.420000 -1.546992 -1.551890 +! 0 10.400000 -1.546270 -1.551125 +! 0 10.380000 -1.545546 -1.550359 +! 0 10.360000 -1.544820 -1.549592 +! 0 10.340000 -1.544092 -1.548823 +! 0 10.320000 -1.543362 -1.548053 +! 0 10.300000 -1.542631 -1.547282 +! 0 10.280000 -1.541897 -1.546509 +! 0 10.260000 -1.541161 -1.545734 +! 0 10.240000 -1.540423 -1.544958 +! 0 10.220000 -1.539684 -1.544180 +! 0 10.200000 -1.538942 -1.543400 +! 0 10.180000 -1.538198 -1.542619 +! 0 10.160000 -1.537451 -1.541835 +! 0 10.140000 -1.536703 -1.541050 +! 0 10.120000 -1.535952 -1.540263 +! 0 10.100000 -1.535199 -1.539475 +! 0 10.080000 -1.534443 -1.538684 +! 0 10.060000 -1.533685 -1.537891 +! 0 10.040000 -1.532925 -1.537096 +! 0 10.020000 -1.532162 -1.536299 +! 0 10.000000 -1.531397 -1.535500 +! 0 9.980000 -1.530629 -1.534699 +! 0 9.960000 -1.529858 -1.533895 +! 0 9.940000 -1.529085 -1.533089 +! 0 9.920000 -1.528309 -1.532281 +! 0 9.900000 -1.527530 -1.531470 +! 0 9.880000 -1.526749 -1.530657 +! 0 9.860000 -1.525965 -1.529842 +! 0 9.840000 -1.525178 -1.529024 +! 0 9.820000 -1.524388 -1.528204 +! 0 9.800000 -1.523595 -1.527380 +! 0 9.780000 -1.522799 -1.526554 +! 0 9.760000 -1.522000 -1.525726 +! 0 9.740000 -1.521198 -1.524895 +! 0 9.720000 -1.520392 -1.524060 +! 0 9.700000 -1.519584 -1.523223 +! 0 9.680000 -1.518772 -1.522383 +! 0 9.660000 -1.517957 -1.521540 +! 0 9.640000 -1.517139 -1.520694 +! 0 9.620000 -1.516317 -1.519845 +! 0 9.600000 -1.515492 -1.518993 +! 0 9.580000 -1.514664 -1.518138 +! 0 9.560000 -1.513832 -1.517279 +! 0 9.540000 -1.512996 -1.516417 +! 0 9.520000 -1.512157 -1.515552 +! 0 9.500000 -1.511314 -1.514683 +! 0 9.480000 -1.510467 -1.513811 +! 0 9.460000 -1.509616 -1.512935 +! 0 9.440000 -1.508762 -1.512056 +! 0 9.420000 -1.507904 -1.511173 +! 0 9.400000 -1.507041 -1.510286 +! 0 9.380000 -1.506175 -1.509396 +! 0 9.360000 -1.505304 -1.508502 +! 0 9.340000 -1.504430 -1.507604 +! 0 9.320000 -1.503551 -1.506701 +! 0 9.300000 -1.502668 -1.505795 +! 0 9.280000 -1.501781 -1.504885 +! 0 9.260000 -1.500889 -1.503971 +! 0 9.240000 -1.499993 -1.503052 +! 0 9.220000 -1.499092 -1.502129 +! 0 9.200000 -1.498187 -1.501202 +! 0 9.180000 -1.497277 -1.500270 +! 0 9.160000 -1.496362 -1.499334 +! 0 9.140000 -1.495443 -1.498394 +! 0 9.120000 -1.494518 -1.497448 +! 0 9.100000 -1.493589 -1.496498 +! 0 9.080000 -1.492655 -1.495544 +! 0 9.060000 -1.491716 -1.494584 +! 0 9.040000 -1.490771 -1.493619 +! 0 9.020000 -1.489822 -1.492650 +! 0 9.000000 -1.488867 -1.491675 +! 0 8.980000 -1.487907 -1.490696 +! 0 8.960000 -1.486941 -1.489711 +! 0 8.940000 -1.485970 -1.488720 +! 0 8.920000 -1.484993 -1.487725 +! 0 8.900000 -1.484011 -1.486724 +! 0 8.880000 -1.483022 -1.485717 +! 0 8.860000 -1.482028 -1.484705 +! 0 8.840000 -1.481028 -1.483687 +! 0 8.820000 -1.480023 -1.482663 +! 0 8.800000 -1.479010 -1.481633 +! 0 8.780000 -1.477992 -1.480597 +! 0 8.760000 -1.476968 -1.479555 +! 0 8.740000 -1.475937 -1.478507 +! 0 8.720000 -1.474900 -1.477453 +! 0 8.700000 -1.473856 -1.476392 +! 0 8.680000 -1.472805 -1.475325 +! 0 8.660000 -1.471748 -1.474252 +! 0 8.640000 -1.470684 -1.473171 +! 0 8.620000 -1.469613 -1.472084 +! 0 8.600000 -1.468535 -1.470990 +! 0 8.580000 -1.467450 -1.469889 +! 0 8.560000 -1.466358 -1.468781 +! 0 8.540000 -1.465258 -1.467666 +! 0 8.520000 -1.464151 -1.466544 +! 0 8.500000 -1.463036 -1.465414 +! 0 8.480000 -1.461913 -1.464276 +! 0 8.460000 -1.460783 -1.463131 +! 0 8.440000 -1.459645 -1.461978 +! 0 8.420000 -1.458499 -1.460818 +! 0 8.400000 -1.457344 -1.459649 +! 0 8.380000 -1.456182 -1.458472 +! 0 8.360000 -1.455011 -1.457287 +! 0 8.340000 -1.453831 -1.456094 +! 0 8.320000 -1.452643 -1.454892 +! 0 8.300000 -1.451446 -1.453681 +! 0 8.280000 -1.450240 -1.452462 +! 0 8.260000 -1.449025 -1.451234 +! 0 8.240000 -1.447801 -1.449996 +! 0 8.220000 -1.446568 -1.448750 +! 0 8.200000 -1.445325 -1.447494 +! 0 8.180000 -1.444072 -1.446229 +! 0 8.160000 -1.442810 -1.444954 +! 0 8.140000 -1.441537 -1.443669 +! 0 8.120000 -1.440255 -1.442375 +! 0 8.100000 -1.438962 -1.441070 +! 0 8.080000 -1.437659 -1.439755 +! 0 8.060000 -1.436346 -1.438429 +! 0 8.040000 -1.435021 -1.437093 +! 0 8.020000 -1.433686 -1.435746 +! 0 8.000000 -1.432340 -1.434389 +! 0 7.980000 -1.430982 -1.433020 +! 0 7.960000 -1.429613 -1.431639 +! 0 7.940000 -1.428233 -1.430248 +! 0 7.920000 -1.426840 -1.428844 +! 0 7.900000 -1.425436 -1.427429 +! 0 7.880000 -1.424019 -1.426002 +! 0 7.860000 -1.422590 -1.424562 +! 0 7.840000 -1.421149 -1.423110 +! 0 7.820000 -1.419694 -1.421645 +! 0 7.800000 -1.418227 -1.420168 +! 0 7.780000 -1.416746 -1.418677 +! 0 7.760000 -1.415252 -1.417173 +! 0 7.740000 -1.413744 -1.415655 +! 0 7.720000 -1.412223 -1.414124 +! 0 7.700000 -1.410687 -1.412578 +! 0 7.680000 -1.409137 -1.411019 +! 0 7.660000 -1.407572 -1.409444 +! 0 7.640000 -1.405992 -1.407855 +! 0 7.620000 -1.404397 -1.406251 +! 0 7.600000 -1.402787 -1.404632 +! 0 7.580000 -1.401161 -1.402997 +! 0 7.560000 -1.399519 -1.401346 +! 0 7.540000 -1.397861 -1.399680 +! 0 7.520000 -1.396186 -1.397996 +! 0 7.500000 -1.394495 -1.396296 +! 0 7.480000 -1.392786 -1.394580 +! 0 7.460000 -1.391060 -1.392845 +! 0 7.440000 -1.389316 -1.391094 +! 0 7.420000 -1.387555 -1.389324 +! 0 7.400000 -1.385775 -1.387536 +! 0 7.380000 -1.383976 -1.385729 +! 0 7.360000 -1.382158 -1.383904 +! 0 7.340000 -1.380321 -1.382059 +! 0 7.320000 -1.378464 -1.380195 +! 0 7.300000 -1.376587 -1.378310 +! 0 7.280000 -1.374689 -1.376405 +! 0 7.260000 -1.372771 -1.374480 +! 0 7.240000 -1.370831 -1.372533 +! 0 7.220000 -1.368869 -1.370564 +! 0 7.200000 -1.366886 -1.368574 +! 0 7.180000 -1.364880 -1.366561 +! 0 7.160000 -1.362851 -1.364526 +! 0 7.140000 -1.360798 -1.362467 +! 0 7.120000 -1.358722 -1.360384 +! 0 7.100000 -1.356621 -1.358277 +! 0 7.080000 -1.354496 -1.356146 +! 0 7.060000 -1.352345 -1.353989 +! 0 7.040000 -1.350169 -1.351806 +! 0 7.020000 -1.347966 -1.349598 +! 0 7.000000 -1.345736 -1.347362 +! 0 6.980000 -1.343479 -1.345100 +! 0 6.960000 -1.341194 -1.342809 +! 0 6.940000 -1.338881 -1.340490 +! 0 6.920000 -1.336538 -1.338142 +! 0 6.900000 -1.334165 -1.335764 +! 0 6.880000 -1.331763 -1.333356 +! 0 6.860000 -1.329329 -1.330918 +! 0 6.840000 -1.326863 -1.328447 +! 0 6.820000 -1.324366 -1.325945 +! 0 6.800000 -1.321835 -1.323409 +! 0 6.780000 -1.319270 -1.320840 +! 0 6.760000 -1.316671 -1.318237 +! 0 6.740000 -1.314037 -1.315598 +! 0 6.720000 -1.311367 -1.312924 +! 0 6.700000 -1.308660 -1.310213 +! 0 6.680000 -1.305916 -1.307465 +! 0 6.660000 -1.303133 -1.304678 +! 0 6.640000 -1.300311 -1.301852 +! 0 6.620000 -1.297448 -1.298986 +! 0 6.600000 -1.294545 -1.296079 +! 0 6.580000 -1.291600 -1.293130 +! 0 6.560000 -1.288611 -1.290138 +! 0 6.540000 -1.285579 -1.287102 +! 0 6.520000 -1.282501 -1.284022 +! 0 6.500000 -1.279377 -1.280895 +! 0 6.480000 -1.276207 -1.277721 +! 0 6.460000 -1.272988 -1.274499 +! 0 6.440000 -1.269719 -1.271228 +! 0 6.420000 -1.266400 -1.267907 +! 0 6.400000 -1.263029 -1.264533 +! 0 6.380000 -1.259605 -1.261107 +! 0 6.360000 -1.256126 -1.257626 +! 0 6.340000 -1.252591 -1.254089 +! 0 6.320000 -1.249000 -1.250496 +! 0 6.300000 -1.245349 -1.246843 +! 0 6.280000 -1.241639 -1.243131 +! 0 6.260000 -1.237867 -1.239358 +! 0 6.240000 -1.234032 -1.235521 +! 0 6.220000 -1.230132 -1.231620 +! 0 6.200000 -1.226165 -1.227652 +! 0 6.180000 -1.222130 -1.223616 +! 0 6.160000 -1.218025 -1.219510 +! 0 6.140000 -1.213848 -1.215332 +! 0 6.120000 -1.209598 -1.211081 +! 0 6.100000 -1.205271 -1.206754 +! 0 6.080000 -1.200867 -1.202349 +! 0 6.060000 -1.196383 -1.197865 +! 0 6.040000 -1.191816 -1.193298 +! 0 6.020000 -1.187165 -1.188647 +! 0 6.000000 -1.182428 -1.183910 +! 0 5.980000 -1.177601 -1.179084 +! 0 5.960000 -1.172683 -1.174166 +! 0 5.940000 -1.167671 -1.169154 +! 0 5.920000 -1.162561 -1.164046 +! 0 5.900000 -1.157352 -1.158837 +! 0 5.880000 -1.152041 -1.153527 +! 0 5.860000 -1.146624 -1.148111 +! 0 5.840000 -1.141099 -1.142587 +! 0 5.820000 -1.135461 -1.136951 +! 0 5.800000 -1.129709 -1.131201 +! 0 5.780000 -1.123839 -1.125332 +! 0 5.760000 -1.117846 -1.119342 +! 0 5.740000 -1.111728 -1.113226 +! 0 5.720000 -1.105481 -1.106981 +! 0 5.700000 -1.099101 -1.100603 +! 0 5.680000 -1.092583 -1.094088 +! 0 5.660000 -1.085924 -1.087431 +! 0 5.640000 -1.079119 -1.080629 +! 0 5.620000 -1.072164 -1.073677 +! 0 5.600000 -1.065054 -1.066570 +! 0 5.580000 -1.057785 -1.059304 +! 0 5.560000 -1.050351 -1.051874 +! 0 5.540000 -1.042747 -1.044273 +! 0 5.520000 -1.034968 -1.036498 +! 0 5.500000 -1.027009 -1.028543 +! 0 5.480000 -1.018863 -1.020401 +! 0 5.460000 -1.010526 -1.012068 +! 0 5.440000 -1.001990 -1.003536 +! 0 5.420000 -0.993250 -0.994801 +! 0 5.400000 -0.984299 -0.985855 +! 0 5.380000 -0.975131 -0.976691 +! 0 5.360000 -0.965739 -0.967303 +! 0 5.340000 -0.956115 -0.957684 +! 0 5.320000 -0.946252 -0.947827 +! 0 5.300000 -0.936144 -0.937723 +! 0 5.280000 -0.925782 -0.927366 +! 0 5.260000 -0.915158 -0.916748 +! 0 5.240000 -0.904265 -0.905860 +! 0 5.220000 -0.893093 -0.894694 +! 0 5.200000 -0.881636 -0.883242 +! 0 5.180000 -0.869884 -0.871494 +! 0 5.160000 -0.857828 -0.859444 +! 0 5.140000 -0.845459 -0.847080 +! 0 5.120000 -0.832769 -0.834395 +! 0 5.100000 -0.819749 -0.821380 +! 0 5.080000 -0.806388 -0.808024 +! 0 5.060000 -0.792679 -0.794320 +! 0 5.040000 -0.778611 -0.780256 +! 0 5.020000 -0.764176 -0.765826 +! 0 5.000000 -0.749365 -0.751018 +! 0 4.980000 -0.734168 -0.735825 +! 0 4.960000 -0.718577 -0.720237 +! 0 4.940000 -0.702583 -0.704246 +! 0 4.920000 -0.686179 -0.687844 +! 0 4.900000 -0.669355 -0.671022 +! 0 4.880000 -0.652106 -0.653774 +! 0 4.860000 -0.634424 -0.636093 +! 0 4.840000 -0.616304 -0.617972 +! 0 4.820000 -0.597740 -0.599407 +! 0 4.800000 -0.578727 -0.580393 +! 0 4.780000 -0.559263 -0.560926 +! 0 4.760000 -0.539346 -0.541005 +! 0 4.740000 -0.518974 -0.520628 +! 0 4.720000 -0.498149 -0.499796 +! 0 4.700000 -0.476871 -0.478512 +! 0 4.680000 -0.455146 -0.456777 +! 0 4.660000 -0.432978 -0.434599 +! 0 4.640000 -0.410375 -0.411985 +! 0 4.620000 -0.387346 -0.388943 +! 0 4.600000 -0.363904 -0.365486 +! 0 4.580000 -0.340061 -0.341627 +! 0 4.560000 -0.315833 -0.317381 +! 0 4.540000 -0.291239 -0.292768 +! 0 4.520000 -0.266300 -0.267807 +! 0 4.500000 -0.241037 -0.242522 +! 0 4.480000 -0.215476 -0.216936 +! 0 4.460000 -0.189644 -0.191078 +! 0 4.440000 -0.163570 -0.164976 +! 0 4.420000 -0.137284 -0.138661 +! 0 4.400000 -0.110819 -0.112165 +! 0 4.380000 -0.084208 -0.085522 +! 0 4.360000 -0.057487 -0.058768 +! 0 4.340000 -0.030692 -0.031938 +! 0 4.320000 -0.003858 -0.005069 +! 0 4.300000 0.022977 0.021803 +! 0 4.280000 0.049777 0.048640 +! 0 4.260000 0.076505 0.075407 +! 0 4.240000 0.103126 0.102066 +! 0 4.220000 0.129605 0.128583 +! 0 4.200000 0.155908 0.154925 +! 0 4.180000 0.182002 0.181058 +! 0 4.160000 0.207857 0.206951 +! 0 4.140000 0.233444 0.232577 +! 0 4.120000 0.258736 0.257907 +! 0 4.100000 0.283709 0.282917 +! 0 4.080000 0.308339 0.307585 +! 0 4.060000 0.332607 0.331889 +! 0 4.040000 0.356494 0.355811 +! 0 4.020000 0.379984 0.379336 +! 0 4.000000 0.403065 0.402449 +! 0 3.980000 0.425723 0.425140 +! 0 3.960000 0.447951 0.447399 +! 0 3.940000 0.469740 0.469219 +! 0 3.920000 0.491085 0.490593 +! 0 3.900000 0.511983 0.511519 +! 0 3.880000 0.532431 0.531994 +! 0 3.860000 0.552430 0.552018 +! 0 3.840000 0.571979 0.571592 +! 0 3.820000 0.591081 0.590718 +! 0 3.800000 0.609740 0.609399 +! 0 3.780000 0.627959 0.627639 +! 0 3.760000 0.645745 0.645445 +! 0 3.740000 0.663103 0.662822 +! 0 3.720000 0.680039 0.679776 +! 0 3.700000 0.696561 0.696316 +! 0 3.680000 0.712678 0.712448 +! 0 3.660000 0.728397 0.728182 +! 0 3.640000 0.743726 0.743526 +! 0 3.620000 0.758675 0.758489 +! 0 3.600000 0.773252 0.773079 +! 0 3.580000 0.787467 0.787306 +! 0 3.560000 0.801328 0.801179 +! 0 3.540000 0.814846 0.814707 +! 0 3.520000 0.828029 0.827900 +! 0 3.500000 0.840886 0.840767 +! 0 3.480000 0.853427 0.853316 +! 0 3.460000 0.865660 0.865558 +! 0 3.440000 0.877595 0.877501 +! 0 3.420000 0.889240 0.889153 +! 0 3.400000 0.900605 0.900524 +! 0 3.380000 0.911696 0.911622 +! 0 3.360000 0.922523 0.922455 +! 0 3.340000 0.933094 0.933032 +! 0 3.320000 0.943416 0.943359 +! 0 3.300000 0.953498 0.953446 +! 0 3.280000 0.963346 0.963299 +! 0 3.260000 0.972968 0.972925 +! 0 3.240000 0.982372 0.982333 +! 0 3.220000 0.991563 0.991528 +! 0 3.200000 1.000549 1.000517 +! 0 3.180000 1.009336 1.009308 +! 0 3.160000 1.017931 1.017906 +! 0 3.140000 1.026339 1.026316 +! 0 3.120000 1.034567 1.034547 +! 0 3.100000 1.042619 1.042602 +! 0 3.080000 1.050502 1.050487 +! 0 3.060000 1.058222 1.058208 +! 0 3.040000 1.065782 1.065771 +! 0 3.020000 1.073188 1.073179 +! 0 3.000000 1.080446 1.080438 +! 0 2.980000 1.087559 1.087552 +! 0 2.960000 1.094532 1.094527 +! 0 2.940000 1.101370 1.101366 +! 0 2.920000 1.108076 1.108074 +! 0 2.900000 1.114655 1.114654 +! 0 2.880000 1.121112 1.121112 +! 0 2.860000 1.127448 1.127449 +! 0 2.840000 1.133669 1.133671 +! 0 2.820000 1.139778 1.139781 +! 0 2.800000 1.145779 1.145782 +! 0 2.780000 1.151673 1.151677 +! 0 2.760000 1.157466 1.157471 +! 0 2.740000 1.163160 1.163165 +! 0 2.720000 1.168758 1.168764 +! 0 2.700000 1.174263 1.174269 +! 0 2.680000 1.179677 1.179684 +! 0 2.660000 1.185005 1.185011 +! 0 2.640000 1.190247 1.190254 +! 0 2.620000 1.195407 1.195414 +! 0 2.600000 1.200487 1.200495 +! 0 2.580000 1.205490 1.205498 +! 0 2.560000 1.210418 1.210426 +! 0 2.540000 1.215273 1.215281 +! 0 2.520000 1.220058 1.220066 +! 0 2.500000 1.224774 1.224782 +! 0 2.480000 1.229423 1.229432 +! 0 2.460000 1.234009 1.234017 +! 0 2.440000 1.238531 1.238540 +! 0 2.420000 1.242994 1.243002 +! 0 2.400000 1.247397 1.247406 +! 0 2.380000 1.251743 1.251752 +! 0 2.360000 1.256034 1.256043 +! 0 2.340000 1.260272 1.260281 +! 0 2.320000 1.264458 1.264466 +! 0 2.300000 1.268593 1.268601 +! 0 2.280000 1.272679 1.272687 +! 0 2.260000 1.276718 1.276726 +! 0 2.240000 1.280711 1.280719 +! 0 2.220000 1.284659 1.284668 +! 0 2.200000 1.288565 1.288573 +! 0 2.180000 1.292428 1.292436 +! 0 2.160000 1.296252 1.296259 +! 0 2.140000 1.300036 1.300043 +! 0 2.120000 1.303782 1.303789 +! 0 2.100000 1.307491 1.307499 +! 0 2.080000 1.311165 1.311172 +! 0 2.060000 1.314804 1.314812 +! 0 2.040000 1.318410 1.318418 +! 0 2.020000 1.321984 1.321991 +! 0 2.000000 1.325527 1.325534 +! 0 1.980000 1.329040 1.329047 +! 0 1.960000 1.332524 1.332531 +! 0 1.940000 1.335981 1.335987 +! 0 1.920000 1.339410 1.339416 +! 0 1.900000 1.342813 1.342819 +! 0 1.880000 1.346191 1.346197 +! 0 1.860000 1.349545 1.349551 +! 0 1.840000 1.352876 1.352882 +! 0 1.820000 1.356184 1.356190 +! 0 1.800000 1.359472 1.359477 +! 0 1.780000 1.362738 1.362744 +! 0 1.760000 1.365985 1.365991 +! 0 1.740000 1.369213 1.369219 +! 0 1.720000 1.372424 1.372429 +! 0 1.700000 1.375617 1.375622 +! 0 1.680000 1.378793 1.378798 +! 0 1.660000 1.381954 1.381959 +! 0 1.640000 1.385101 1.385105 +! 0 1.620000 1.388233 1.388238 +! 0 1.600000 1.391352 1.391357 +! 0 1.580000 1.394459 1.394463 +! 0 1.560000 1.397554 1.397558 +! 0 1.540000 1.400638 1.400642 +! 0 1.520000 1.403711 1.403715 +! 0 1.500000 1.406775 1.406779 +! 0 1.480000 1.409831 1.409835 +! 0 1.460000 1.412878 1.412882 +! 0 1.440000 1.415918 1.415922 +! 0 1.420000 1.418951 1.418955 +! 0 1.400000 1.421979 1.421982 +! 0 1.380000 1.425001 1.425004 +! 0 1.360000 1.428018 1.428021 +! 0 1.340000 1.431032 1.431035 +! 0 1.320000 1.434043 1.434046 +! 0 1.300000 1.437051 1.437054 +! 0 1.280000 1.440057 1.440060 +! 0 1.260000 1.443062 1.443065 +! 0 1.240000 1.446067 1.446070 +! 0 1.220000 1.449073 1.449075 +! 0 1.200000 1.452079 1.452082 +! 0 1.180000 1.455087 1.455090 +! 0 1.160000 1.458098 1.458100 +! 0 1.140000 1.461111 1.461114 +! 0 1.120000 1.464129 1.464131 +! 0 1.100000 1.467151 1.467153 +! 0 1.080000 1.470178 1.470180 +! 0 1.060000 1.473212 1.473214 +! 0 1.040000 1.476252 1.476254 +! 0 1.020000 1.479300 1.479301 +! 0 1.000000 1.482355 1.482357 +! 0 0.980000 1.485420 1.485422 +! 0 0.960000 1.488495 1.488496 +! 0 0.940000 1.491580 1.491581 +! 0 0.920000 1.494676 1.494678 +! 0 0.900000 1.497784 1.497786 +! 0 0.880000 1.500906 1.500907 +! 0 0.860000 1.504041 1.504042 +! 0 0.840000 1.507190 1.507191 +! 0 0.820000 1.510355 1.510356 +! 0 0.800000 1.513535 1.513537 +! 0 0.780000 1.516733 1.516735 +! 0 0.760000 1.519949 1.519950 +! 0 0.740000 1.523184 1.523185 +! 0 0.720000 1.526438 1.526439 +! 0 0.700000 1.529713 1.529714 +! 0 0.680000 1.533009 1.533010 +! 0 0.660000 1.536328 1.536329 +! 0 0.640000 1.539671 1.539672 +! 0 0.620000 1.543038 1.543039 +! 0 0.600000 1.546430 1.546431 +! 0 0.580000 1.549849 1.549850 +! 0 0.560000 1.553296 1.553297 +! 0 0.540000 1.556771 1.556772 +! 0 0.520000 1.560277 1.560278 +! 0 0.500000 1.563813 1.563814 +! 0 0.480000 1.567382 1.567383 +! 0 0.460000 1.570984 1.570985 +! 0 0.440000 1.574621 1.574621 +! 0 0.420000 1.578293 1.578294 +! 0 0.400000 1.582003 1.582004 +! 0 0.380000 1.585752 1.585753 +! 0 0.360000 1.589541 1.589541 +! 0 0.340000 1.593371 1.593371 +! 0 0.320000 1.597244 1.597244 +! 0 0.300000 1.601161 1.601162 +! 0 0.280000 1.605124 1.605125 +! 0 0.260000 1.609135 1.609136 +! 0 0.240000 1.613195 1.613196 +! 0 0.220000 1.617306 1.617307 +! 0 0.200000 1.621470 1.621471 +! 0 0.180000 1.625688 1.625689 +! 0 0.160000 1.629963 1.629963 +! 0 0.140000 1.634296 1.634296 +! 0 0.120000 1.638689 1.638689 +! 0 0.100000 1.643145 1.643145 +! 0 0.080000 1.647665 1.647665 +! 0 0.060000 1.652252 1.652252 +! 0 0.040000 1.656908 1.656908 +! 0 0.020000 1.661635 1.661635 +! 0 0.000000 1.666436 1.666436 +! 0 -0.020000 1.671314 1.671314 +! 0 -0.040000 1.676270 1.676271 +! 0 -0.060000 1.681309 1.681309 +! 0 -0.080000 1.686432 1.686432 +! 0 -0.100000 1.691642 1.691642 +! 0 -0.120000 1.696943 1.696943 +! 0 -0.140000 1.702337 1.702337 +! 0 -0.160000 1.707829 1.707829 +! 0 -0.180000 1.713421 1.713421 +! 0 -0.200000 1.719117 1.719117 +! 0 -0.220000 1.724920 1.724920 +! 0 -0.240000 1.730835 1.730835 +! 0 -0.260000 1.736865 1.736865 +! 0 -0.280000 1.743015 1.743015 +! 0 -0.300000 1.749289 1.749288 +! 0 -0.320000 1.755690 1.755690 +! 0 -0.340000 1.762225 1.762225 +! 0 -0.360000 1.768897 1.768897 +! 0 -0.380000 1.775712 1.775712 +! 0 -0.400000 1.782675 1.782675 +! 0 -0.420000 1.789791 1.789791 +! 0 -0.440000 1.797067 1.797066 +! 0 -0.460000 1.804507 1.804507 +! 0 -0.480000 1.812119 1.812118 +! 0 -0.500000 1.819908 1.819907 +! 0 -0.520000 1.827881 1.827880 +! 0 -0.540000 1.836045 1.836044 +! 0 -0.560000 1.844407 1.844407 +! 0 -0.580000 1.852976 1.852975 +! 0 -0.600000 1.861758 1.861757 +! 0 -0.620000 1.870762 1.870761 +! 0 -0.640000 1.879996 1.879995 +! 0 -0.660000 1.889469 1.889469 +! 0 -0.680000 1.899191 1.899190 +! 0 -0.700000 1.909170 1.909169 +! 0 -0.720000 1.919417 1.919417 +! 0 -0.740000 1.929942 1.929942 +! 0 -0.760000 1.940756 1.940756 +! 0 -0.780000 1.951870 1.951869 +! 0 -0.800000 1.963294 1.963294 +! 0 -0.820000 1.975042 1.975042 +! 0 -0.840000 1.987126 1.987126 +! 0 -0.860000 1.999557 1.999557 +! 0 -0.880000 2.012350 2.012350 +! 0 -0.900000 2.025517 2.025517 +! 0 -0.920000 2.039072 2.039072 +! 0 -0.940000 2.053030 2.053031 +! 0 -0.960000 2.067405 2.067406 +! 0 -0.980000 2.082212 2.082213 +! 0 -1.000000 2.097466 2.097466 +! 0 -1.020000 2.113181 2.113182 +! 0 -1.040000 2.129374 2.129375 +! 0 -1.060000 2.146059 2.146060 +! 0 -1.080000 2.163252 2.163254 +! 0 -1.100000 2.180968 2.180970 +! 0 -1.120000 2.199221 2.199224 +! 0 -1.140000 2.218027 2.218031 +! 0 -1.160000 2.237400 2.237403 +! 0 -1.180000 2.257351 2.257355 +! 0 -1.200000 2.277894 2.277899 +! 0 -1.220000 2.299040 2.299045 +! 0 -1.240000 2.320797 2.320804 +! 0 -1.260000 2.343176 2.343182 +! 0 -1.280000 2.366180 2.366188 +! 0 -1.300000 2.389815 2.389824 +! 0 -1.320000 2.414082 2.414092 +! 0 -1.340000 2.438980 2.438990 +! 0 -1.360000 2.464503 2.464515 +! 0 -1.380000 2.490646 2.490658 +! 0 -1.400000 2.517394 2.517408 +! 0 -1.420000 2.544735 2.544750 +! 0 -1.440000 2.572648 2.572664 +! 0 -1.460000 2.601109 2.601126 +! 0 -1.480000 2.630090 2.630109 +! 0 -1.500000 2.659558 2.659579 +! 0 -1.520000 2.689477 2.689499 +! 0 -1.540000 2.719805 2.719829 +! 0 -1.560000 2.750497 2.750522 +! 0 -1.580000 2.781503 2.781529 +! 0 -1.600000 2.812770 2.812798 +! 0 -1.620000 2.844243 2.844273 +! 0 -1.640000 2.875865 2.875896 +! 0 -1.660000 2.907575 2.907608 +! 0 -1.680000 2.939313 2.939347 +! 0 -1.700000 2.971017 2.971053 +! 0 -1.720000 3.002627 3.002665 +! 0 -1.740000 3.034084 3.034123 +! 0 -1.760000 3.065328 3.065369 +! 0 -1.780000 3.096305 3.096348 +! 0 -1.800000 3.126963 3.127006 +! 0 -1.820000 3.157251 3.157296 +! 0 -1.840000 3.187124 3.187170 +! 0 -1.860000 3.216542 3.216589 +! 0 -1.880000 3.245466 3.245514 +! 0 -1.900000 3.273864 3.273913 +! 0 -1.920000 3.301708 3.301758 +! 0 -1.940000 3.328975 3.329026 +! 0 -1.960000 3.355644 3.355696 +! 0 -1.980000 3.381701 3.381753 +! 0 -2.000000 3.407133 3.407186 +! 0 -2.020000 3.431934 3.431987 +! 0 -2.040000 3.456098 3.456152 +! 0 -2.060000 3.479625 3.479679 +! 0 -2.080000 3.502515 3.502570 +! 0 -2.100000 3.524774 3.524829 +! 0 -2.120000 3.546406 3.546461 +! 0 -2.140000 3.567420 3.567476 +! 0 -2.160000 3.587826 3.587882 +! 0 -2.180000 3.607635 3.607690 +! 0 -2.200000 3.626858 3.626914 +! 0 -2.220000 3.645509 3.645565 +! 0 -2.240000 3.663603 3.663659 +! 0 -2.260000 3.681152 3.681208 +! 0 -2.280000 3.698173 3.698229 +! 0 -2.300000 3.714680 3.714736 +! 0 -2.320000 3.730688 3.730744 +! 0 -2.340000 3.746214 3.746269 +! 0 -2.360000 3.761271 3.761327 +! 0 -2.380000 3.775876 3.775931 +! 0 -2.400000 3.790043 3.790098 +! 0 -2.420000 3.803786 3.803842 +! 0 -2.440000 3.817121 3.817177 +! 0 -2.460000 3.830062 3.830117 +! 0 -2.480000 3.842622 3.842677 +! 0 -2.500000 3.854815 3.854869 +! 0 -2.520000 3.866653 3.866707 +! 0 -2.540000 3.878150 3.878204 +! 0 -2.560000 3.889317 3.889371 +! 0 -2.580000 3.900167 3.900220 +! 0 -2.600000 3.910710 3.910764 +! 0 -2.620000 3.920959 3.921012 +! 0 -2.640000 3.930923 3.930976 +! 0 -2.660000 3.940612 3.940666 +! 0 -2.680000 3.950038 3.950091 +! 0 -2.700000 3.959208 3.959261 +! 0 -2.720000 3.968133 3.968186 +! 0 -2.740000 3.976821 3.976874 +! 0 -2.760000 3.985281 3.985333 +! 0 -2.780000 3.993520 3.993572 +! 0 -2.800000 4.001547 4.001599 +! 0 -2.820000 4.009368 4.009420 +! 0 -2.840000 4.016991 4.017043 +! 0 -2.860000 4.024424 4.024475 +! 0 -2.880000 4.031672 4.031723 +! 0 -2.900000 4.038742 4.038793 +! 0 -2.920000 4.045639 4.045691 +! 0 -2.940000 4.052371 4.052422 +! 0 -2.960000 4.058942 4.058993 +! 0 -2.980000 4.065358 4.065409 +! 0 -3.000000 4.071624 4.071674 +! 0 -3.020000 4.077745 4.077795 +! 0 -3.040000 4.083725 4.083775 +! 0 -3.060000 4.089570 4.089620 +! 0 -3.080000 4.095284 4.095334 +! 0 -3.100000 4.100870 4.100920 +! 0 -3.120000 4.106334 4.106383 +! 0 -3.140000 4.111678 4.111728 +! 0 -3.160000 4.116907 4.116957 +! 0 -3.180000 4.122024 4.122074 +! 0 -3.200000 4.127033 4.127082 +! 0 -3.220000 4.131937 4.131986 +! 0 -3.240000 4.136739 4.136788 +! 0 -3.260000 4.141443 4.141492 +! 0 -3.280000 4.146050 4.146099 +! 0 -3.300000 4.150565 4.150614 +! 0 -3.320000 4.154990 4.155039 +! 0 -3.340000 4.159327 4.159376 +! 0 -3.360000 4.163580 4.163628 +! 0 -3.380000 4.167750 4.167798 +! 0 -3.400000 4.171839 4.171888 +! 0 -3.420000 4.175851 4.175900 +! 0 -3.440000 4.179788 4.179836 +! 0 -3.460000 4.183651 4.183699 +! 0 -3.480000 4.187442 4.187490 +! 0 -3.500000 4.191164 4.191212 +! 0 -3.520000 4.194818 4.194866 +! 0 -3.540000 4.198407 4.198455 +! 0 -3.560000 4.201931 4.201979 +! 0 -3.580000 4.205393 4.205441 +! 0 -3.600000 4.208795 4.208843 +! 0 -3.620000 4.212137 4.212185 +! 0 -3.640000 4.215422 4.215470 +! 0 -3.660000 4.218651 4.218699 +! 0 -3.680000 4.221826 4.221874 +! 0 -3.700000 4.224947 4.224995 +! 0 -3.720000 4.228017 4.228064 +! 0 -3.740000 4.231036 4.231083 +! 0 -3.760000 4.234006 4.234053 +! 0 -3.780000 4.236927 4.236975 +! 0 -3.800000 4.239802 4.239849 +! 0 -3.820000 4.242631 4.242678 +! 0 -3.840000 4.245416 4.245463 +! 0 -3.860000 4.248157 4.248204 +! 0 -3.880000 4.250855 4.250902 +! 0 -3.900000 4.253512 4.253559 +! 0 -3.920000 4.256129 4.256176 +! 0 -3.940000 4.258706 4.258753 +! 0 -3.960000 4.261244 4.261291 +! 0 -3.980000 4.263744 4.263791 +! 0 -4.000000 4.266208 4.266255 +! 0 -4.020000 4.268635 4.268682 +! 0 -4.040000 4.271028 4.271075 +! 0 -4.060000 4.273386 4.273432 +! 0 -4.080000 4.275710 4.275757 +! 0 -4.100000 4.278001 4.278048 +! 0 -4.120000 4.280260 4.280307 +! 0 -4.140000 4.282487 4.282534 +! 0 -4.160000 4.284684 4.284730 +! 0 -4.180000 4.286850 4.286897 +! 0 -4.200000 4.288987 4.289034 +! 0 -4.220000 4.291095 4.291141 +! 0 -4.240000 4.293174 4.293221 +! 0 -4.260000 4.295226 4.295273 +! 0 -4.280000 4.297251 4.297297 +! 0 -4.300000 4.299249 4.299295 +! 0 -4.320000 4.301221 4.301267 +! 0 -4.340000 4.303167 4.303214 +! 0 -4.360000 4.305089 4.305135 +! 0 -4.380000 4.306986 4.307032 +! 0 -4.400000 4.308859 4.308905 +! 0 -4.420000 4.310708 4.310755 +! 0 -4.440000 4.312534 4.312581 +! 0 -4.460000 4.314338 4.314385 +! 0 -4.480000 4.316120 4.316166 +! 0 -4.500000 4.317879 4.317926 +! 0 -4.520000 4.319618 4.319664 +! 0 -4.540000 4.321335 4.321381 +! 0 -4.560000 4.323032 4.323078 +! 0 -4.580000 4.324709 4.324755 +! 0 -4.600000 4.326366 4.326412 +! 0 -4.620000 4.328003 4.328049 +! 0 -4.640000 4.329621 4.329668 +! 0 -4.660000 4.331221 4.331268 +! 0 -4.680000 4.332802 4.332849 +! 0 -4.700000 4.334366 4.334412 +! 0 -4.720000 4.335911 4.335958 +! 0 -4.740000 4.337440 4.337486 +! 0 -4.760000 4.338951 4.338997 +! 0 -4.780000 4.340445 4.340491 +! 0 -4.800000 4.341923 4.341969 +! 0 -4.820000 4.343384 4.343431 +! 0 -4.840000 4.344830 4.344876 +! 0 -4.860000 4.346260 4.346306 +! 0 -4.880000 4.347675 4.347721 +! 0 -4.900000 4.349074 4.349120 +! 0 -4.920000 4.350459 4.350505 +! 0 -4.940000 4.351829 4.351875 +! 0 -4.960000 4.353184 4.353231 +! 0 -4.980000 4.354526 4.354572 +! 0 -5.000000 4.355853 4.355900 +! 0 -5.020000 4.357167 4.357214 +! 0 -5.040000 4.358468 4.358514 +! 0 -5.060000 4.359755 4.359801 +! 0 -5.080000 4.361029 4.361076 +! 0 -5.100000 4.362291 4.362337 +! 0 -5.120000 4.363539 4.363586 +! 0 -5.140000 4.364776 4.364822 +! 0 -5.160000 4.366000 4.366046 +! 0 -5.180000 4.367212 4.367259 +! 0 -5.200000 4.368413 4.368459 +! 0 -5.220000 4.369601 4.369648 +! 0 -5.240000 4.370779 4.370825 +! 0 -5.260000 4.371944 4.371991 +! 0 -5.280000 4.373099 4.373146 +! 0 -5.300000 4.374243 4.374290 +! 0 -5.320000 4.375376 4.375423 +! 0 -5.340000 4.376499 4.376545 +! 0 -5.360000 4.377611 4.377657 +! 0 -5.380000 4.378713 4.378759 +! 0 -5.400000 4.379804 4.379851 +! 0 -5.420000 4.380886 4.380932 +! 0 -5.440000 4.381958 4.382004 +! 0 -5.460000 4.383020 4.383066 +! 0 -5.480000 4.384072 4.384119 +! 0 -5.500000 4.385115 4.385162 +! 0 -5.520000 4.386149 4.386195 +! 0 -5.540000 4.387173 4.387220 +! 0 -5.560000 4.388189 4.388236 +! 0 -5.580000 4.389196 4.389242 +! 0 -5.600000 4.390193 4.390240 +! 0 -5.620000 4.391183 4.391229 +! 0 -5.640000 4.392163 4.392210 +! 0 -5.660000 4.393136 4.393182 +! 0 -5.680000 4.394100 4.394146 +! 0 -5.700000 4.395055 4.395102 +! 0 -5.720000 4.396003 4.396050 +! 0 -5.740000 4.396943 4.396989 +! 0 -5.760000 4.397875 4.397921 +! 0 -5.780000 4.398799 4.398845 +! 0 -5.800000 4.399715 4.399762 +! 0 -5.820000 4.400624 4.400671 +! 0 -5.840000 4.401525 4.401572 +! 0 -5.860000 4.402420 4.402466 +! 0 -5.880000 4.403306 4.403353 +! 0 -5.900000 4.404186 4.404233 +! 0 -5.920000 4.405059 4.405105 +! 0 -5.940000 4.405924 4.405971 +! 0 -5.960000 4.406783 4.406830 +! 0 -5.980000 4.407635 4.407682 +! 0 -6.000000 4.408480 4.408527 +! 0 -6.020000 4.409319 4.409366 +! 0 -6.040000 4.410151 4.410198 +! 0 -6.060000 4.410977 4.411023 +! 0 -6.080000 4.411796 4.411843 +! 0 -6.100000 4.412609 4.412656 +! 0 -6.120000 4.413416 4.413462 +! 0 -6.140000 4.414216 4.414263 +! 0 -6.160000 4.415011 4.415058 +! 0 -6.180000 4.415799 4.415846 +! 0 -6.200000 4.416582 4.416629 +! 0 -6.220000 4.417359 4.417406 +! 0 -6.240000 4.418130 4.418177 +! 0 -6.260000 4.418895 4.418942 +! 0 -6.280000 4.419655 4.419702 +! 0 -6.300000 4.420409 4.420456 +! 0 -6.320000 4.421157 4.421204 +! 0 -6.340000 4.421901 4.421947 +! 0 -6.360000 4.422638 4.422685 +! 0 -6.380000 4.423371 4.423418 +! 0 -6.400000 4.424098 4.424145 +! 0 -6.420000 4.424820 4.424867 +! 0 -6.440000 4.425537 4.425584 +! 0 -6.460000 4.426249 4.426296 +! 0 -6.480000 4.426955 4.427002 +! 0 -6.500000 4.427657 4.427704 +! 0 -6.520000 4.428354 4.428401 +! 0 -6.540000 4.429046 4.429093 +! 0 -6.560000 4.429734 4.429781 +! 0 -6.580000 4.430416 4.430463 +! 0 -6.600000 4.431094 4.431141 +! 0 -6.620000 4.431767 4.431814 +! 0 -6.640000 4.432436 4.432483 +! 0 -6.660000 4.433100 4.433147 +! 0 -6.680000 4.433760 4.433807 +! 0 -6.700000 4.434415 4.434462 +! 0 -6.720000 4.435066 4.435113 +! 0 -6.740000 4.435712 4.435760 +! 0 -6.760000 4.436355 4.436402 +! 0 -6.780000 4.436993 4.437040 +! 0 -6.800000 4.437626 4.437674 +! 0 -6.820000 4.438256 4.438303 +! 0 -6.840000 4.438882 4.438929 +! 0 -6.860000 4.439503 4.439550 +! 0 -6.880000 4.440121 4.440168 +! 0 -6.900000 4.440734 4.440781 +! 0 -6.920000 4.441344 4.441391 +! 0 -6.940000 4.441949 4.441997 +! 0 -6.960000 4.442551 4.442598 +! 0 -6.980000 4.443149 4.443196 +! 0 -7.000000 4.443743 4.443791 +! 0 -7.020000 4.444334 4.444381 +! 0 -7.040000 4.444921 4.444968 +! 0 -7.060000 4.445504 4.445551 +! 0 -7.080000 4.446083 4.446130 +! 0 -7.100000 4.446659 4.446706 +! 0 -7.120000 4.447231 4.447279 +! 0 -7.140000 4.447800 4.447848 +! 0 -7.160000 4.448366 4.448413 +! 0 -7.180000 4.448928 4.448975 +! 0 -7.200000 4.449486 4.449533 +! 0 -7.220000 4.450041 4.450089 +! 0 -7.240000 4.450593 4.450640 +! 0 -7.260000 4.451142 4.451189 +! 0 -7.280000 4.451687 4.451734 +! 0 -7.300000 4.452229 4.452276 +! 0 -7.320000 4.452767 4.452815 +! 0 -7.340000 4.453303 4.453350 +! 0 -7.360000 4.453835 4.453883 +! 0 -7.380000 4.454365 4.454412 +! 0 -7.400000 4.454891 4.454938 +! 0 -7.420000 4.455414 4.455461 +! 0 -7.440000 4.455934 4.455982 +! 0 -7.460000 4.456451 4.456499 +! 0 -7.480000 4.456965 4.457013 +! 0 -7.500000 4.457476 4.457524 +! 0 -7.520000 4.457985 4.458032 +! 0 -7.540000 4.458490 4.458538 +! 0 -7.560000 4.458993 4.459040 +! 0 -7.580000 4.459492 4.459540 +! 0 -7.600000 4.459989 4.460037 +! 0 -7.620000 4.460483 4.460531 +! 0 -7.640000 4.460974 4.461022 +! 0 -7.660000 4.461463 4.461510 +! 0 -7.680000 4.461949 4.461996 +! 0 -7.700000 4.462432 4.462479 +! 0 -7.720000 4.462912 4.462960 +! 0 -7.740000 4.463390 4.463438 +! 0 -7.760000 4.463865 4.463913 +! 0 -7.780000 4.464338 4.464386 +! 0 -7.800000 4.464808 4.464856 +! 0 -7.820000 4.465276 4.465323 +! 0 -7.840000 4.465741 4.465788 +! 0 -7.860000 4.466203 4.466251 +! 0 -7.880000 4.466663 4.466711 +! 0 -7.900000 4.467121 4.467168 +! 0 -7.920000 4.467576 4.467623 +! 0 -7.940000 4.468028 4.468076 +! 0 -7.960000 4.468479 4.468526 +! 0 -7.980000 4.468927 4.468974 +! 0 -8.000000 4.469372 4.469420 +! 0 -8.020000 4.469815 4.469863 +! 0 -8.040000 4.470256 4.470304 +! 0 -8.060000 4.470695 4.470743 +! 0 -8.080000 4.471131 4.471179 +! 0 -8.100000 4.471566 4.471613 +! 0 -8.120000 4.471997 4.472045 +! 0 -8.140000 4.472427 4.472475 +! 0 -8.160000 4.472854 4.472902 +! 0 -8.180000 4.473280 4.473328 +! 0 -8.200000 4.473703 4.473751 +! 0 -8.220000 4.474124 4.474172 +! 0 -8.240000 4.474543 4.474591 +! 0 -8.260000 4.474959 4.475007 +! 0 -8.280000 4.475374 4.475422 +! 0 -8.300000 4.475787 4.475835 +! 0 -8.320000 4.476197 4.476245 +! 0 -8.340000 4.476606 4.476654 +! 0 -8.360000 4.477012 4.477060 +! 0 -8.380000 4.477417 4.477464 +! 0 -8.400000 4.477819 4.477867 +! 0 -8.420000 4.478220 4.478267 +! 0 -8.440000 4.478618 4.478666 +! 0 -8.460000 4.479015 4.479063 +! 0 -8.480000 4.479409 4.479457 +! 0 -8.500000 4.479802 4.479850 +! 0 -8.520000 4.480193 4.480241 +! 0 -8.540000 4.480582 4.480630 +! 0 -8.560000 4.480969 4.481017 +! 0 -8.580000 4.481354 4.481402 +! 0 -8.600000 4.481738 4.481786 +! 0 -8.620000 4.482119 4.482167 +! 0 -8.640000 4.482499 4.482547 +! 0 -8.660000 4.482877 4.482925 +! 0 -8.680000 4.483253 4.483301 +! 0 -8.700000 4.483628 4.483676 +! 0 -8.720000 4.484000 4.484048 +! 0 -8.740000 4.484371 4.484419 +! 0 -8.760000 4.484741 4.484789 +! 0 -8.780000 4.485108 4.485156 +! 0 -8.800000 4.485474 4.485522 +! 0 -8.820000 4.485838 4.485886 +! 0 -8.840000 4.486200 4.486248 +! 0 -8.860000 4.486561 4.486609 +! 0 -8.880000 4.486920 4.486968 +! 0 -8.900000 4.487278 4.487326 +! 0 -8.920000 4.487634 4.487682 +! 0 -8.940000 4.487988 4.488036 +! 0 -8.960000 4.488341 4.488389 +! 0 -8.980000 4.488692 4.488740 +! 0 -9.000000 4.489041 4.489089 +! 0 -9.020000 4.489389 4.489437 +! 0 -9.040000 4.489735 4.489784 +! 0 -9.060000 4.490080 4.490128 +! 0 -9.080000 4.490424 4.490472 +! 0 -9.100000 4.490765 4.490813 +! 0 -9.120000 4.491106 4.491154 +! 0 -9.140000 4.491444 4.491492 +! 0 -9.160000 4.491782 4.491830 +! 0 -9.180000 4.492118 4.492166 +! 0 -9.200000 4.492452 4.492500 +! 0 -9.220000 4.492785 4.492833 +! 0 -9.240000 4.493116 4.493164 +! 0 -9.260000 4.493446 4.493494 +! 0 -9.280000 4.493775 4.493823 +! 0 -9.300000 4.494102 4.494150 +! 0 -9.320000 4.494428 4.494476 +! 0 -9.340000 4.494752 4.494800 +! 0 -9.360000 4.495075 4.495123 +! 0 -9.380000 4.495397 4.495445 +! 0 -9.400000 4.495717 4.495765 +! 0 -9.420000 4.496036 4.496084 +! 0 -9.440000 4.496353 4.496401 +! 0 -9.460000 4.496669 4.496718 +! 0 -9.480000 4.496984 4.497032 +! 0 -9.500000 4.497298 4.497346 +! 0 -9.520000 4.497610 4.497658 +! 0 -9.540000 4.497921 4.497969 +! 0 -9.560000 4.498231 4.498279 +! 0 -9.580000 4.498539 4.498587 +! 0 -9.600000 4.498846 4.498894 +! 0 -9.620000 4.499152 4.499200 +! 0 -9.640000 4.499457 4.499505 +! 0 -9.660000 4.499760 4.499808 +! 0 -9.680000 4.500062 4.500110 +! 0 -9.700000 4.500363 4.500411 +! 0 -9.720000 4.500662 4.500711 +! 0 -9.740000 4.500961 4.501009 +! 0 -9.760000 4.501258 4.501306 +! 0 -9.780000 4.501554 4.501602 +! 0 -9.800000 4.501849 4.501897 +! 0 -9.820000 4.502142 4.502191 +! 0 -9.840000 4.502435 4.502483 +! 0 -9.860000 4.502726 4.502774 +! 0 -9.880000 4.503016 4.503064 +! 0 -9.900000 4.503305 4.503353 +! 0 -9.920000 4.503593 4.503641 +! 0 -9.940000 4.503880 4.503928 +! 0 -9.960000 4.504165 4.504213 +! 0 -9.980000 4.504450 4.504498 +! 0 -10.000000 4.504733 4.504781 +! 0 -10.020000 4.505015 4.505063 +! 0 -10.040000 4.505296 4.505345 +! 0 -10.060000 4.505576 4.505625 +! 0 -10.080000 4.505855 4.505903 +! 0 -10.100000 4.506133 4.506181 +! 0 -10.120000 4.506410 4.506458 +! 0 -10.140000 4.506686 4.506734 +! 0 -10.160000 4.506960 4.507008 +! 0 -10.180000 4.507234 4.507282 +! 0 -10.200000 4.507506 4.507555 +! 0 -10.220000 4.507778 4.507826 +! 0 -10.240000 4.508048 4.508097 +! 0 -10.260000 4.508318 4.508366 +! 0 -10.280000 4.508586 4.508634 +! 0 -10.300000 4.508854 4.508902 +! 0 -10.320000 4.509120 4.509168 +! 0 -10.340000 4.509385 4.509434 +! 0 -10.360000 4.509650 4.509698 +! 0 -10.380000 4.509913 4.509961 +! 0 -10.400000 4.510176 4.510224 +! 0 -10.420000 4.510437 4.510485 +! 0 -10.440000 4.510698 4.510746 +! 0 -10.460000 4.510957 4.511005 +! 0 -10.480000 4.511216 4.511264 +! 0 -10.500000 4.511473 4.511521 +! 0 -10.520000 4.511730 4.511778 +! 0 -10.540000 4.511986 4.512034 +! 0 -10.560000 4.512240 4.512289 +! 0 -10.580000 4.512494 4.512542 +! 0 -10.600000 4.512747 4.512795 +! 0 -10.620000 4.512999 4.513047 +! 0 -10.640000 4.513250 4.513298 +! 0 -10.660000 4.513501 4.513549 +! 0 -10.680000 4.513750 4.513798 +! 0 -10.700000 4.513998 4.514046 +! 0 -10.720000 4.514246 4.514294 +! 0 -10.740000 4.514492 4.514540 +! 0 -10.760000 4.514738 4.514786 +! 0 -10.780000 4.514983 4.515031 +! 0 -10.800000 4.515227 4.515275 +! 0 -10.820000 4.515470 4.515518 +! 0 -10.840000 4.515712 4.515760 +! 0 -10.860000 4.515953 4.516002 +! 0 -10.880000 4.516194 4.516242 +! 0 -10.900000 4.516434 4.516482 +! 0 -10.920000 4.516673 4.516721 +! 0 -10.940000 4.516911 4.516959 +! 0 -10.960000 4.517148 4.517196 +! 0 -10.980000 4.517384 4.517432 +! 0 -11.000000 4.517620 4.517668 +! 0 -11.020000 4.517854 4.517902 +! 0 -11.040000 4.518088 4.518136 +! 0 -11.060000 4.518321 4.518369 +! 0 -11.080000 4.518554 4.518602 +! 0 -11.100000 4.518785 4.518833 +! 0 -11.120000 4.519016 4.519064 +! 0 -11.140000 4.519246 4.519294 +! 0 -11.160000 4.519475 4.519523 +! 0 -11.180000 4.519703 4.519751 +! 0 -11.200000 4.519931 4.519979 +! 0 -11.220000 4.520157 4.520205 +! 0 -11.240000 4.520383 4.520431 +! 0 -11.260000 4.520609 4.520657 +! 0 -11.280000 4.520833 4.520881 +! 0 -11.300000 4.521057 4.521105 +! 0 -11.320000 4.521280 4.521328 +! 0 -11.340000 4.521502 4.521550 +! 0 -11.360000 4.521724 4.521772 +! 0 -11.380000 4.521944 4.521992 +! 0 -11.400000 4.522164 4.522212 +! 0 -11.420000 4.522384 4.522432 +! 0 -11.440000 4.522602 4.522650 +! 0 -11.460000 4.522820 4.522868 +! 0 -11.480000 4.523037 4.523085 +! 0 -11.500000 4.523254 4.523302 +! 0 -11.520000 4.523469 4.523517 +! 0 -11.540000 4.523684 4.523732 +! 0 -11.560000 4.523898 4.523946 +! 0 -11.580000 4.524112 4.524160 +! 0 -11.600000 4.524325 4.524373 +! 0 -11.620000 4.524537 4.524585 +! 0 -11.640000 4.524749 4.524797 +! 0 -11.660000 4.524959 4.525007 +! 0 -11.680000 4.525170 4.525218 +! 0 -11.700000 4.525379 4.525427 +! 0 -11.720000 4.525588 4.525636 +! 0 -11.740000 4.525796 4.525844 +! 0 -11.760000 4.526003 4.526051 +! 0 -11.780000 4.526210 4.526258 +! 0 -11.800000 4.526416 4.526464 +! 0 -11.820000 4.526622 4.526670 +! 0 -11.840000 4.526827 4.526874 +! 0 -11.860000 4.527031 4.527079 +! 0 -11.880000 4.527234 4.527282 +! 0 -11.900000 4.527437 4.527485 +! 0 -11.920000 4.527639 4.527687 +! 0 -11.940000 4.527841 4.527889 +! 0 -11.960000 4.528042 4.528090 +! 0 -11.980000 4.528242 4.528290 + +log derivativve data for plotting, l= 1 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.47 +l, energy, all-electron, pseudopotential + +! 1 12.000000 1.066272 1.286771 +! 1 11.980000 1.076060 1.290090 +! 1 11.960000 1.085537 1.293351 +! 1 11.940000 1.094716 1.296557 +! 1 11.920000 1.103610 1.299708 +! 1 11.900000 1.112232 1.302807 +! 1 11.880000 1.120594 1.305855 +! 1 11.860000 1.128705 1.308853 +! 1 11.840000 1.136578 1.311802 +! 1 11.820000 1.144221 1.314704 +! 1 11.800000 1.151645 1.317560 +! 1 11.780000 1.158858 1.320371 +! 1 11.760000 1.165869 1.323139 +! 1 11.740000 1.172686 1.325864 +! 1 11.720000 1.179317 1.328548 +! 1 11.700000 1.185770 1.331191 +! 1 11.680000 1.192051 1.333795 +! 1 11.660000 1.198167 1.336361 +! 1 11.640000 1.204125 1.338889 +! 1 11.620000 1.209930 1.341381 +! 1 11.600000 1.215589 1.343837 +! 1 11.580000 1.221106 1.346259 +! 1 11.560000 1.226488 1.348647 +! 1 11.540000 1.231739 1.351002 +! 1 11.520000 1.236864 1.353324 +! 1 11.500000 1.241868 1.355615 +! 1 11.480000 1.246754 1.357876 +! 1 11.460000 1.251528 1.360106 +! 1 11.440000 1.256193 1.362307 +! 1 11.420000 1.260753 1.364480 +! 1 11.400000 1.265212 1.366625 +! 1 11.380000 1.269572 1.368742 +! 1 11.360000 1.273838 1.370833 +! 1 11.340000 1.278013 1.372898 +! 1 11.320000 1.282100 1.374937 +! 1 11.300000 1.286101 1.376951 +! 1 11.280000 1.290020 1.378942 +! 1 11.260000 1.293859 1.380908 +! 1 11.240000 1.297621 1.382851 +! 1 11.220000 1.301308 1.384772 +! 1 11.200000 1.304923 1.386670 +! 1 11.180000 1.308468 1.388547 +! 1 11.160000 1.311944 1.390402 +! 1 11.140000 1.315356 1.392237 +! 1 11.120000 1.318703 1.394051 +! 1 11.100000 1.321989 1.395846 +! 1 11.080000 1.325215 1.397621 +! 1 11.060000 1.328382 1.399377 +! 1 11.040000 1.331494 1.401114 +! 1 11.020000 1.334551 1.402834 +! 1 11.000000 1.337554 1.404535 +! 1 10.980000 1.340506 1.406219 +! 1 10.960000 1.343409 1.407886 +! 1 10.940000 1.346262 1.409536 +! 1 10.920000 1.349069 1.411170 +! 1 10.900000 1.351830 1.412787 +! 1 10.880000 1.354546 1.414390 +! 1 10.860000 1.357219 1.415976 +! 1 10.840000 1.359849 1.417548 +! 1 10.820000 1.362439 1.419105 +! 1 10.800000 1.364989 1.420647 +! 1 10.780000 1.367501 1.422175 +! 1 10.760000 1.369974 1.423690 +! 1 10.740000 1.372411 1.425191 +! 1 10.720000 1.374813 1.426678 +! 1 10.700000 1.377179 1.428153 +! 1 10.680000 1.379512 1.429615 +! 1 10.660000 1.381812 1.431064 +! 1 10.640000 1.384080 1.432501 +! 1 10.620000 1.386316 1.433926 +! 1 10.600000 1.388523 1.435340 +! 1 10.580000 1.390699 1.436742 +! 1 10.560000 1.392847 1.438132 +! 1 10.540000 1.394966 1.439512 +! 1 10.520000 1.397058 1.440880 +! 1 10.500000 1.399124 1.442238 +! 1 10.480000 1.401163 1.443586 +! 1 10.460000 1.403177 1.444923 +! 1 10.440000 1.405166 1.446251 +! 1 10.420000 1.407131 1.447568 +! 1 10.400000 1.409072 1.448876 +! 1 10.380000 1.410990 1.450175 +! 1 10.360000 1.412886 1.451465 +! 1 10.340000 1.414759 1.452745 +! 1 10.320000 1.416612 1.454017 +! 1 10.300000 1.418443 1.455279 +! 1 10.280000 1.420254 1.456534 +! 1 10.260000 1.422045 1.457780 +! 1 10.240000 1.423817 1.459018 +! 1 10.220000 1.425570 1.460248 +! 1 10.200000 1.427304 1.461470 +! 1 10.180000 1.429020 1.462684 +! 1 10.160000 1.430718 1.463891 +! 1 10.140000 1.432400 1.465091 +! 1 10.120000 1.434064 1.466283 +! 1 10.100000 1.435712 1.467468 +! 1 10.080000 1.437344 1.468647 +! 1 10.060000 1.438960 1.469818 +! 1 10.040000 1.440560 1.470983 +! 1 10.020000 1.442146 1.472141 +! 1 10.000000 1.443717 1.473293 +! 1 9.980000 1.445274 1.474439 +! 1 9.960000 1.446816 1.475579 +! 1 9.940000 1.448346 1.476713 +! 1 9.920000 1.449861 1.477841 +! 1 9.900000 1.451364 1.478963 +! 1 9.880000 1.452854 1.480079 +! 1 9.860000 1.454331 1.481190 +! 1 9.840000 1.455796 1.482296 +! 1 9.820000 1.457249 1.483397 +! 1 9.800000 1.458691 1.484492 +! 1 9.780000 1.460121 1.485582 +! 1 9.760000 1.461540 1.486668 +! 1 9.740000 1.462949 1.487749 +! 1 9.720000 1.464346 1.488825 +! 1 9.700000 1.465734 1.489896 +! 1 9.680000 1.467111 1.490963 +! 1 9.660000 1.468478 1.492026 +! 1 9.640000 1.469836 1.493084 +! 1 9.620000 1.471184 1.494138 +! 1 9.600000 1.472522 1.495188 +! 1 9.580000 1.473852 1.496234 +! 1 9.560000 1.475173 1.497277 +! 1 9.540000 1.476486 1.498315 +! 1 9.520000 1.477790 1.499350 +! 1 9.500000 1.479085 1.500381 +! 1 9.480000 1.480373 1.501409 +! 1 9.460000 1.481653 1.502434 +! 1 9.440000 1.482925 1.503455 +! 1 9.420000 1.484190 1.504473 +! 1 9.400000 1.485447 1.505487 +! 1 9.380000 1.486698 1.506499 +! 1 9.360000 1.487941 1.507508 +! 1 9.340000 1.489178 1.508514 +! 1 9.320000 1.490408 1.509517 +! 1 9.300000 1.491631 1.510517 +! 1 9.280000 1.492848 1.511515 +! 1 9.260000 1.494060 1.512511 +! 1 9.240000 1.495265 1.513504 +! 1 9.220000 1.496464 1.514494 +! 1 9.200000 1.497658 1.515482 +! 1 9.180000 1.498846 1.516468 +! 1 9.160000 1.500029 1.517452 +! 1 9.140000 1.501206 1.518434 +! 1 9.120000 1.502378 1.519414 +! 1 9.100000 1.503546 1.520392 +! 1 9.080000 1.504709 1.521368 +! 1 9.060000 1.505867 1.522343 +! 1 9.040000 1.507020 1.523315 +! 1 9.020000 1.508169 1.524287 +! 1 9.000000 1.509314 1.525256 +! 1 8.980000 1.510454 1.526224 +! 1 8.960000 1.511590 1.527191 +! 1 8.940000 1.512723 1.528157 +! 1 8.920000 1.513852 1.529121 +! 1 8.900000 1.514977 1.530084 +! 1 8.880000 1.516098 1.531046 +! 1 8.860000 1.517216 1.532007 +! 1 8.840000 1.518331 1.532968 +! 1 8.820000 1.519443 1.533927 +! 1 8.800000 1.520551 1.534885 +! 1 8.780000 1.521656 1.535843 +! 1 8.760000 1.522759 1.536800 +! 1 8.740000 1.523859 1.537757 +! 1 8.720000 1.524956 1.538713 +! 1 8.700000 1.526050 1.539668 +! 1 8.680000 1.527142 1.540623 +! 1 8.660000 1.528232 1.541578 +! 1 8.640000 1.529320 1.542533 +! 1 8.620000 1.530405 1.543487 +! 1 8.600000 1.531489 1.544441 +! 1 8.580000 1.532570 1.545396 +! 1 8.560000 1.533650 1.546350 +! 1 8.540000 1.534728 1.547304 +! 1 8.520000 1.535804 1.548259 +! 1 8.500000 1.536878 1.549213 +! 1 8.480000 1.537952 1.550168 +! 1 8.460000 1.539024 1.551124 +! 1 8.440000 1.540094 1.552080 +! 1 8.420000 1.541164 1.553036 +! 1 8.400000 1.542233 1.553993 +! 1 8.380000 1.543300 1.554950 +! 1 8.360000 1.544367 1.555908 +! 1 8.340000 1.545433 1.556867 +! 1 8.320000 1.546498 1.557827 +! 1 8.300000 1.547563 1.558788 +! 1 8.280000 1.548627 1.559750 +! 1 8.260000 1.549691 1.560712 +! 1 8.240000 1.550754 1.561676 +! 1 8.220000 1.551818 1.562641 +! 1 8.200000 1.552881 1.563608 +! 1 8.180000 1.553944 1.564575 +! 1 8.160000 1.555007 1.565544 +! 1 8.140000 1.556071 1.566514 +! 1 8.120000 1.557134 1.567486 +! 1 8.100000 1.558198 1.568460 +! 1 8.080000 1.559263 1.569435 +! 1 8.060000 1.560328 1.570412 +! 1 8.040000 1.561393 1.571391 +! 1 8.020000 1.562459 1.572372 +! 1 8.000000 1.563526 1.573354 +! 1 7.980000 1.564594 1.574339 +! 1 7.960000 1.565663 1.575325 +! 1 7.940000 1.566733 1.576314 +! 1 7.920000 1.567804 1.577305 +! 1 7.900000 1.568876 1.578299 +! 1 7.880000 1.569950 1.579295 +! 1 7.860000 1.571025 1.580293 +! 1 7.840000 1.572101 1.581294 +! 1 7.820000 1.573179 1.582297 +! 1 7.800000 1.574259 1.583303 +! 1 7.780000 1.575341 1.584312 +! 1 7.760000 1.576424 1.585324 +! 1 7.740000 1.577510 1.586339 +! 1 7.720000 1.578598 1.587357 +! 1 7.700000 1.579687 1.588378 +! 1 7.680000 1.580779 1.589402 +! 1 7.660000 1.581874 1.590429 +! 1 7.640000 1.582970 1.591459 +! 1 7.620000 1.584070 1.592493 +! 1 7.600000 1.585172 1.593531 +! 1 7.580000 1.586276 1.594572 +! 1 7.560000 1.587384 1.595617 +! 1 7.540000 1.588494 1.596665 +! 1 7.520000 1.589608 1.597718 +! 1 7.500000 1.590724 1.598774 +! 1 7.480000 1.591844 1.599835 +! 1 7.460000 1.592967 1.600899 +! 1 7.440000 1.594094 1.601968 +! 1 7.420000 1.595224 1.603041 +! 1 7.400000 1.596358 1.604118 +! 1 7.380000 1.597496 1.605200 +! 1 7.360000 1.598637 1.606287 +! 1 7.340000 1.599782 1.607378 +! 1 7.320000 1.600932 1.608474 +! 1 7.300000 1.602085 1.609575 +! 1 7.280000 1.603243 1.610681 +! 1 7.260000 1.604406 1.611792 +! 1 7.240000 1.605572 1.612908 +! 1 7.220000 1.606744 1.614029 +! 1 7.200000 1.607920 1.615156 +! 1 7.180000 1.609101 1.616288 +! 1 7.160000 1.610287 1.617426 +! 1 7.140000 1.611478 1.618570 +! 1 7.120000 1.612674 1.619720 +! 1 7.100000 1.613876 1.620875 +! 1 7.080000 1.615083 1.622037 +! 1 7.060000 1.616296 1.623205 +! 1 7.040000 1.617514 1.624379 +! 1 7.020000 1.618739 1.625560 +! 1 7.000000 1.619969 1.626747 +! 1 6.980000 1.621205 1.627941 +! 1 6.960000 1.622448 1.629141 +! 1 6.940000 1.623697 1.630349 +! 1 6.920000 1.624952 1.631564 +! 1 6.900000 1.626214 1.632786 +! 1 6.880000 1.627483 1.634015 +! 1 6.860000 1.628759 1.635252 +! 1 6.840000 1.630042 1.636496 +! 1 6.820000 1.631332 1.637748 +! 1 6.800000 1.632630 1.639008 +! 1 6.780000 1.633935 1.640277 +! 1 6.760000 1.635248 1.641553 +! 1 6.740000 1.636569 1.642838 +! 1 6.720000 1.637897 1.644131 +! 1 6.700000 1.639234 1.645433 +! 1 6.680000 1.640580 1.646744 +! 1 6.660000 1.641933 1.648064 +! 1 6.640000 1.643296 1.649393 +! 1 6.620000 1.644667 1.650731 +! 1 6.600000 1.646048 1.652079 +! 1 6.580000 1.647437 1.653437 +! 1 6.560000 1.648836 1.654805 +! 1 6.540000 1.650245 1.656182 +! 1 6.520000 1.651663 1.657570 +! 1 6.500000 1.653092 1.658969 +! 1 6.480000 1.654530 1.660378 +! 1 6.460000 1.655979 1.661798 +! 1 6.440000 1.657439 1.663229 +! 1 6.420000 1.658909 1.664671 +! 1 6.400000 1.660391 1.666125 +! 1 6.380000 1.661883 1.667590 +! 1 6.360000 1.663388 1.669067 +! 1 6.340000 1.664904 1.670557 +! 1 6.320000 1.666431 1.672059 +! 1 6.300000 1.667971 1.673573 +! 1 6.280000 1.669524 1.675100 +! 1 6.260000 1.671089 1.676641 +! 1 6.240000 1.672667 1.678195 +! 1 6.220000 1.674258 1.679762 +! 1 6.200000 1.675863 1.681343 +! 1 6.180000 1.677481 1.682939 +! 1 6.160000 1.679114 1.684548 +! 1 6.140000 1.680760 1.686173 +! 1 6.120000 1.682421 1.687812 +! 1 6.100000 1.684097 1.689467 +! 1 6.080000 1.685789 1.691138 +! 1 6.060000 1.687495 1.692824 +! 1 6.040000 1.689218 1.694526 +! 1 6.020000 1.690956 1.696245 +! 1 6.000000 1.692711 1.697981 +! 1 5.980000 1.694483 1.699734 +! 1 5.960000 1.696272 1.701505 +! 1 5.940000 1.698078 1.703293 +! 1 5.920000 1.699903 1.705100 +! 1 5.900000 1.701745 1.706925 +! 1 5.880000 1.703606 1.708769 +! 1 5.860000 1.705486 1.710633 +! 1 5.840000 1.707386 1.712517 +! 1 5.820000 1.709305 1.714420 +! 1 5.800000 1.711244 1.716345 +! 1 5.780000 1.713205 1.718290 +! 1 5.760000 1.715186 1.720257 +! 1 5.740000 1.717189 1.722246 +! 1 5.720000 1.719213 1.724257 +! 1 5.700000 1.721261 1.726292 +! 1 5.680000 1.723331 1.728349 +! 1 5.660000 1.725425 1.730431 +! 1 5.640000 1.727542 1.732537 +! 1 5.620000 1.729685 1.734668 +! 1 5.600000 1.731852 1.736824 +! 1 5.580000 1.734045 1.739007 +! 1 5.560000 1.736265 1.741216 +! 1 5.540000 1.738511 1.743453 +! 1 5.520000 1.740784 1.745717 +! 1 5.500000 1.743086 1.748010 +! 1 5.480000 1.745416 1.750332 +! 1 5.460000 1.747776 1.752683 +! 1 5.440000 1.750166 1.755066 +! 1 5.420000 1.752586 1.757479 +! 1 5.400000 1.755038 1.759925 +! 1 5.380000 1.757522 1.762403 +! 1 5.360000 1.760039 1.764914 +! 1 5.340000 1.762590 1.767460 +! 1 5.320000 1.765176 1.770041 +! 1 5.300000 1.767797 1.772657 +! 1 5.280000 1.770454 1.775311 +! 1 5.260000 1.773148 1.778002 +! 1 5.240000 1.775881 1.780732 +! 1 5.220000 1.778653 1.783501 +! 1 5.200000 1.781464 1.786311 +! 1 5.180000 1.784317 1.789162 +! 1 5.160000 1.787212 1.792056 +! 1 5.140000 1.790150 1.794994 +! 1 5.120000 1.793132 1.797977 +! 1 5.100000 1.796159 1.801005 +! 1 5.080000 1.799234 1.804081 +! 1 5.060000 1.802356 1.807205 +! 1 5.040000 1.805527 1.810378 +! 1 5.020000 1.808748 1.813603 +! 1 5.000000 1.812022 1.816880 +! 1 4.980000 1.815348 1.820210 +! 1 4.960000 1.818729 1.823596 +! 1 4.940000 1.822166 1.827039 +! 1 4.920000 1.825661 1.830540 +! 1 4.900000 1.829215 1.834101 +! 1 4.880000 1.832830 1.837723 +! 1 4.860000 1.836508 1.841409 +! 1 4.840000 1.840250 1.845159 +! 1 4.820000 1.844058 1.848977 +! 1 4.800000 1.847935 1.852864 +! 1 4.780000 1.851882 1.856822 +! 1 4.760000 1.855901 1.860852 +! 1 4.740000 1.859995 1.864958 +! 1 4.720000 1.864165 1.869141 +! 1 4.700000 1.868414 1.873404 +! 1 4.680000 1.872745 1.877749 +! 1 4.660000 1.877159 1.882179 +! 1 4.640000 1.881660 1.886696 +! 1 4.620000 1.886250 1.891303 +! 1 4.600000 1.890931 1.896003 +! 1 4.580000 1.895708 1.900798 +! 1 4.560000 1.900583 1.905693 +! 1 4.540000 1.905558 1.910689 +! 1 4.520000 1.910638 1.915790 +! 1 4.500000 1.915826 1.921000 +! 1 4.480000 1.921124 1.926323 +! 1 4.460000 1.926538 1.931761 +! 1 4.440000 1.932071 1.937320 +! 1 4.420000 1.937726 1.943002 +! 1 4.400000 1.943508 1.948812 +! 1 4.380000 1.949422 1.954755 +! 1 4.360000 1.955471 1.960834 +! 1 4.340000 1.961662 1.967056 +! 1 4.320000 1.967997 1.973425 +! 1 4.300000 1.974484 1.979945 +! 1 4.280000 1.981127 1.986623 +! 1 4.260000 1.987931 1.993464 +! 1 4.240000 1.994903 2.000474 +! 1 4.220000 2.002048 2.007659 +! 1 4.200000 2.009374 2.015025 +! 1 4.180000 2.016887 2.022580 +! 1 4.160000 2.024593 2.030330 +! 1 4.140000 2.032500 2.038282 +! 1 4.120000 2.040616 2.046445 +! 1 4.100000 2.048949 2.054826 +! 1 4.080000 2.057506 2.063433 +! 1 4.060000 2.066296 2.072276 +! 1 4.040000 2.075330 2.081362 +! 1 4.020000 2.084615 2.090703 +! 1 4.000000 2.094161 2.100306 +! 1 3.980000 2.103980 2.110184 +! 1 3.960000 2.114082 2.120346 +! 1 3.940000 2.124477 2.130803 +! 1 3.920000 2.135177 2.141568 +! 1 3.900000 2.146196 2.152652 +! 1 3.880000 2.157544 2.164068 +! 1 3.860000 2.169235 2.175829 +! 1 3.840000 2.181283 2.187948 +! 1 3.820000 2.193702 2.200440 +! 1 3.800000 2.206506 2.213319 +! 1 3.780000 2.219710 2.226600 +! 1 3.760000 2.233331 2.240299 +! 1 3.740000 2.247383 2.254431 +! 1 3.720000 2.261884 2.269013 +! 1 3.700000 2.276850 2.284061 +! 1 3.680000 2.292299 2.299594 +! 1 3.660000 2.308248 2.315627 +! 1 3.640000 2.324715 2.332180 +! 1 3.620000 2.341719 2.349269 +! 1 3.600000 2.359276 2.366913 +! 1 3.580000 2.377407 2.385128 +! 1 3.560000 2.396127 2.403934 +! 1 3.540000 2.415456 2.423347 +! 1 3.520000 2.435410 2.443384 +! 1 3.500000 2.456005 2.464061 +! 1 3.480000 2.477258 2.485392 +! 1 3.460000 2.499182 2.507391 +! 1 3.440000 2.521791 2.530072 +! 1 3.420000 2.545096 2.553443 +! 1 3.400000 2.569104 2.577513 +! 1 3.380000 2.593824 2.602288 +! 1 3.360000 2.619259 2.627770 +! 1 3.340000 2.645408 2.653960 +! 1 3.320000 2.672269 2.680852 +! 1 3.300000 2.699834 2.708438 +! 1 3.280000 2.728092 2.736705 +! 1 3.260000 2.757025 2.765636 +! 1 3.240000 2.786613 2.795209 +! 1 3.220000 2.816828 2.825395 +! 1 3.200000 2.847637 2.856161 +! 1 3.180000 2.879004 2.887469 +! 1 3.160000 2.910883 2.919275 +! 1 3.140000 2.943226 2.951528 +! 1 3.120000 2.975979 2.984175 +! 1 3.100000 3.009083 3.017158 +! 1 3.080000 3.042476 3.050412 +! 1 3.060000 3.076090 3.083874 +! 1 3.040000 3.109856 3.117473 +! 1 3.020000 3.143705 3.151140 +! 1 3.000000 3.177562 3.184804 +! 1 2.980000 3.211357 3.218394 +! 1 2.960000 3.245018 3.251841 +! 1 2.940000 3.278476 3.285075 +! 1 2.920000 3.311664 3.318033 +! 1 2.900000 3.344518 3.350652 +! 1 2.880000 3.376981 3.382876 +! 1 2.860000 3.408996 3.414650 +! 1 2.840000 3.440515 3.445927 +! 1 2.820000 3.471494 3.476665 +! 1 2.800000 3.501893 3.506826 +! 1 2.780000 3.531681 3.536378 +! 1 2.760000 3.560830 3.565295 +! 1 2.740000 3.589317 3.593557 +! 1 2.720000 3.617126 3.621145 +! 1 2.700000 3.644244 3.648050 +! 1 2.680000 3.670664 3.674264 +! 1 2.660000 3.696383 3.699784 +! 1 2.640000 3.721399 3.724609 +! 1 2.620000 3.745717 3.748745 +! 1 2.600000 3.769344 3.772196 +! 1 2.580000 3.792287 3.794973 +! 1 2.560000 3.814558 3.817086 +! 1 2.540000 3.836170 3.838547 +! 1 2.520000 3.857137 3.859371 +! 1 2.500000 3.877474 3.879573 +! 1 2.480000 3.897199 3.899169 +! 1 2.460000 3.916328 3.918177 +! 1 2.440000 3.934879 3.936614 +! 1 2.420000 3.952870 3.954498 +! 1 2.400000 3.970319 3.971846 +! 1 2.380000 3.987245 3.988677 +! 1 2.360000 4.003666 4.005008 +! 1 2.340000 4.019600 4.020857 +! 1 2.320000 4.035064 4.036243 +! 1 2.300000 4.050077 4.051181 +! 1 2.280000 4.064655 4.065689 +! 1 2.260000 4.078815 4.079784 +! 1 2.240000 4.092573 4.093480 +! 1 2.220000 4.105946 4.106795 +! 1 2.200000 4.118947 4.119742 +! 1 2.180000 4.131593 4.132337 +! 1 2.160000 4.143897 4.144594 +! 1 2.140000 4.155874 4.156525 +! 1 2.120000 4.167536 4.168146 +! 1 2.100000 4.178896 4.179467 +! 1 2.080000 4.189968 4.190502 +! 1 2.060000 4.200762 4.201261 +! 1 2.040000 4.211290 4.211757 +! 1 2.020000 4.221564 4.222000 +! 1 2.000000 4.231593 4.232001 +! 1 1.980000 4.241388 4.241769 +! 1 1.960000 4.250959 4.251315 +! 1 1.940000 4.260314 4.260647 +! 1 1.920000 4.269464 4.269775 +! 1 1.900000 4.278416 4.278707 +! 1 1.880000 4.287179 4.287451 +! 1 1.860000 4.295761 4.296014 +! 1 1.840000 4.304170 4.304406 +! 1 1.820000 4.312412 4.312632 +! 1 1.800000 4.320495 4.320701 +! 1 1.780000 4.328426 4.328618 +! 1 1.760000 4.336212 4.336390 +! 1 1.740000 4.343858 4.344024 +! 1 1.720000 4.351370 4.351525 +! 1 1.700000 4.358756 4.358900 +! 1 1.680000 4.366019 4.366153 +! 1 1.660000 4.373166 4.373291 +! 1 1.640000 4.380202 4.380318 +! 1 1.620000 4.387132 4.387239 +! 1 1.600000 4.393960 4.394060 +! 1 1.580000 4.400692 4.400785 +! 1 1.560000 4.407333 4.407419 +! 1 1.540000 4.413886 4.413965 +! 1 1.520000 4.420356 4.420429 +! 1 1.500000 4.426747 4.426815 +! 1 1.480000 4.433063 4.433126 +! 1 1.460000 4.439308 4.439366 +! 1 1.440000 4.445487 4.445540 +! 1 1.420000 4.451602 4.451651 +! 1 1.400000 4.457657 4.457702 +! 1 1.380000 4.463656 4.463698 +! 1 1.360000 4.469603 4.469642 +! 1 1.340000 4.475501 4.475536 +! 1 1.320000 4.481353 4.481385 +! 1 1.300000 4.487162 4.487192 +! 1 1.280000 4.492932 4.492959 +! 1 1.260000 4.498666 4.498691 +! 1 1.240000 4.504367 4.504390 +! 1 1.220000 4.510039 4.510059 +! 1 1.200000 4.515683 4.515701 +! 1 1.180000 4.521303 4.521320 +! 1 1.160000 4.526903 4.526918 +! 1 1.140000 4.532485 4.532498 +! 1 1.120000 4.538052 4.538064 +! 1 1.100000 4.543607 4.543617 +! 1 1.080000 4.549152 4.549162 +! 1 1.060000 4.554692 4.554701 +! 1 1.040000 4.560229 4.560236 +! 1 1.020000 4.565765 4.565771 +! 1 1.000000 4.571304 4.571309 +! 1 0.980000 4.576848 4.576853 +! 1 0.960000 4.582401 4.582405 +! 1 0.940000 4.587965 4.587969 +! 1 0.920000 4.593544 4.593548 +! 1 0.900000 4.599141 4.599144 +! 1 0.880000 4.604758 4.604761 +! 1 0.860000 4.610400 4.610402 +! 1 0.840000 4.616068 4.616069 +! 1 0.820000 4.621766 4.621768 +! 1 0.800000 4.627498 4.627499 +! 1 0.780000 4.633268 4.633268 +! 1 0.760000 4.639077 4.639077 +! 1 0.740000 4.644930 4.644931 +! 1 0.720000 4.650831 4.650831 +! 1 0.700000 4.656783 4.656783 +! 1 0.680000 4.662790 4.662790 +! 1 0.660000 4.668856 4.668856 +! 1 0.640000 4.674985 4.674985 +! 1 0.620000 4.681182 4.681181 +! 1 0.600000 4.687449 4.687449 +! 1 0.580000 4.693793 4.693792 +! 1 0.560000 4.700217 4.700216 +! 1 0.540000 4.706726 4.706726 +! 1 0.520000 4.713325 4.713325 +! 1 0.500000 4.720020 4.720019 +! 1 0.480000 4.726815 4.726815 +! 1 0.460000 4.733716 4.733716 +! 1 0.440000 4.740729 4.740729 +! 1 0.420000 4.747860 4.747860 +! 1 0.400000 4.755116 4.755115 +! 1 0.380000 4.762501 4.762501 +! 1 0.360000 4.770025 4.770025 +! 1 0.340000 4.777693 4.777693 +! 1 0.320000 4.785513 4.785513 +! 1 0.300000 4.793493 4.793493 +! 1 0.280000 4.801641 4.801641 +! 1 0.260000 4.809965 4.809965 +! 1 0.240000 4.818476 4.818476 +! 1 0.220000 4.827181 4.827181 +! 1 0.200000 4.836091 4.836092 +! 1 0.180000 4.845217 4.845217 +! 1 0.160000 4.854569 4.854569 +! 1 0.140000 4.864159 4.864159 +! 1 0.120000 4.873999 4.873999 +! 1 0.100000 4.884102 4.884102 +! 1 0.080000 4.894480 4.894481 +! 1 0.060000 4.905149 4.905149 +! 1 0.040000 4.916123 4.916123 +! 1 0.020000 4.927418 4.927418 +! 1 0.000000 4.939050 4.939050 +! 1 -0.020000 4.951036 4.951036 +! 1 -0.040000 4.963395 4.963395 +! 1 -0.060000 4.976146 4.976146 +! 1 -0.080000 4.989309 4.989309 +! 1 -0.100000 5.002906 5.002905 +! 1 -0.120000 5.016958 5.016957 +! 1 -0.140000 5.031489 5.031488 +! 1 -0.160000 5.046523 5.046522 +! 1 -0.180000 5.062086 5.062085 +! 1 -0.200000 5.078205 5.078204 +! 1 -0.220000 5.094908 5.094907 +! 1 -0.240000 5.112223 5.112222 +! 1 -0.260000 5.130181 5.130180 +! 1 -0.280000 5.148813 5.148812 +! 1 -0.300000 5.168150 5.168149 +! 1 -0.320000 5.188225 5.188225 +! 1 -0.340000 5.209072 5.209071 +! 1 -0.360000 5.230724 5.230723 +! 1 -0.380000 5.253214 5.253214 +! 1 -0.400000 5.276577 5.276576 +! 1 -0.420000 5.300844 5.300844 +! 1 -0.440000 5.326046 5.326047 +! 1 -0.460000 5.352214 5.352215 +! 1 -0.480000 5.379375 5.379377 +! 1 -0.500000 5.407552 5.407554 +! 1 -0.520000 5.436764 5.436767 +! 1 -0.540000 5.467027 5.467031 +! 1 -0.560000 5.498348 5.498353 +! 1 -0.580000 5.530728 5.530735 +! 1 -0.600000 5.564161 5.564169 +! 1 -0.620000 5.598629 5.598638 +! 1 -0.640000 5.634104 5.634115 +! 1 -0.660000 5.670549 5.670562 +! 1 -0.680000 5.707912 5.707928 +! 1 -0.700000 5.746131 5.746149 +! 1 -0.720000 5.785129 5.785149 +! 1 -0.740000 5.824818 5.824841 +! 1 -0.760000 5.865099 5.865124 +! 1 -0.780000 5.905860 5.905888 +! 1 -0.800000 5.946983 5.947014 +! 1 -0.820000 5.988341 5.988375 +! 1 -0.840000 6.029803 6.029840 +! 1 -0.860000 6.071235 6.071276 +! 1 -0.880000 6.112506 6.112550 +! 1 -0.900000 6.153485 6.153532 +! 1 -0.920000 6.194047 6.194097 +! 1 -0.940000 6.234076 6.234130 +! 1 -0.960000 6.273465 6.273521 +! 1 -0.980000 6.312117 6.312176 +! 1 -1.000000 6.349948 6.350010 +! 1 -1.020000 6.386886 6.386950 +! 1 -1.040000 6.422871 6.422937 +! 1 -1.060000 6.457857 6.457926 +! 1 -1.080000 6.491808 6.491879 +! 1 -1.100000 6.524702 6.524774 +! 1 -1.120000 6.556523 6.556597 +! 1 -1.140000 6.587267 6.587342 +! 1 -1.160000 6.616937 6.617014 +! 1 -1.180000 6.645545 6.645623 +! 1 -1.200000 6.673105 6.673184 +! 1 -1.220000 6.699638 6.699718 +! 1 -1.240000 6.725170 6.725251 +! 1 -1.260000 6.749729 6.749810 +! 1 -1.280000 6.773343 6.773425 +! 1 -1.300000 6.796046 6.796128 +! 1 -1.320000 6.817869 6.817952 +! 1 -1.340000 6.838846 6.838929 +! 1 -1.360000 6.859011 6.859094 +! 1 -1.380000 6.878397 6.878480 +! 1 -1.400000 6.897037 6.897120 +! 1 -1.420000 6.914962 6.915046 +! 1 -1.440000 6.932206 6.932290 +! 1 -1.460000 6.948797 6.948881 +! 1 -1.480000 6.964767 6.964850 +! 1 -1.500000 6.980142 6.980226 +! 1 -1.520000 6.994951 6.995035 +! 1 -1.540000 7.009220 7.009303 +! 1 -1.560000 7.022973 7.023056 +! 1 -1.580000 7.036235 7.036318 +! 1 -1.600000 7.049029 7.049112 +! 1 -1.620000 7.061376 7.061458 +! 1 -1.640000 7.073296 7.073379 +! 1 -1.660000 7.084810 7.084893 +! 1 -1.680000 7.095937 7.096019 +! 1 -1.700000 7.106693 7.106775 +! 1 -1.720000 7.117096 7.117177 +! 1 -1.740000 7.127161 7.127242 +! 1 -1.760000 7.136904 7.136985 +! 1 -1.780000 7.146339 7.146420 +! 1 -1.800000 7.155479 7.155560 +! 1 -1.820000 7.164338 7.164419 +! 1 -1.840000 7.172928 7.173008 +! 1 -1.860000 7.181260 7.181340 +! 1 -1.880000 7.189346 7.189425 +! 1 -1.900000 7.197195 7.197274 +! 1 -1.920000 7.204817 7.204896 +! 1 -1.940000 7.212223 7.212302 +! 1 -1.960000 7.219420 7.219499 +! 1 -1.980000 7.226418 7.226497 +! 1 -2.000000 7.233225 7.233303 +! 1 -2.020000 7.239847 7.239925 +! 1 -2.040000 7.246293 7.246370 +! 1 -2.060000 7.252569 7.252646 +! 1 -2.080000 7.258682 7.258759 +! 1 -2.100000 7.264638 7.264714 +! 1 -2.120000 7.270442 7.270519 +! 1 -2.140000 7.276102 7.276178 +! 1 -2.160000 7.281622 7.281698 +! 1 -2.180000 7.287006 7.287082 +! 1 -2.200000 7.292261 7.292337 +! 1 -2.220000 7.297391 7.297467 +! 1 -2.240000 7.302400 7.302475 +! 1 -2.260000 7.307293 7.307368 +! 1 -2.280000 7.312073 7.312148 +! 1 -2.300000 7.316745 7.316819 +! 1 -2.320000 7.321312 7.321386 +! 1 -2.340000 7.325778 7.325852 +! 1 -2.360000 7.330146 7.330220 +! 1 -2.380000 7.334419 7.334493 +! 1 -2.400000 7.338601 7.338674 +! 1 -2.420000 7.342695 7.342768 +! 1 -2.440000 7.346703 7.346775 +! 1 -2.460000 7.350627 7.350700 +! 1 -2.480000 7.354472 7.354544 +! 1 -2.500000 7.358239 7.358311 +! 1 -2.520000 7.361930 7.362002 +! 1 -2.540000 7.365549 7.365621 +! 1 -2.560000 7.369097 7.369168 +! 1 -2.580000 7.372576 7.372647 +! 1 -2.600000 7.375988 7.376059 +! 1 -2.620000 7.379336 7.379407 +! 1 -2.640000 7.382621 7.382691 +! 1 -2.660000 7.385845 7.385915 +! 1 -2.680000 7.389010 7.389080 +! 1 -2.700000 7.392117 7.392187 +! 1 -2.720000 7.395168 7.395238 +! 1 -2.740000 7.398165 7.398235 +! 1 -2.760000 7.401110 7.401179 +! 1 -2.780000 7.404003 7.404072 +! 1 -2.800000 7.406846 7.406915 +! 1 -2.820000 7.409640 7.409709 +! 1 -2.840000 7.412387 7.412455 +! 1 -2.860000 7.415088 7.415156 +! 1 -2.880000 7.417744 7.417812 +! 1 -2.900000 7.420356 7.420424 +! 1 -2.920000 7.422926 7.422994 +! 1 -2.940000 7.425454 7.425522 +! 1 -2.960000 7.427942 7.428009 +! 1 -2.980000 7.430390 7.430458 +! 1 -3.000000 7.432800 7.432867 +! 1 -3.020000 7.435173 7.435240 +! 1 -3.040000 7.437509 7.437576 +! 1 -3.060000 7.439809 7.439876 +! 1 -3.080000 7.442075 7.442141 +! 1 -3.100000 7.444306 7.444372 +! 1 -3.120000 7.446504 7.446570 +! 1 -3.140000 7.448670 7.448736 +! 1 -3.160000 7.450804 7.450870 +! 1 -3.180000 7.452908 7.452973 +! 1 -3.200000 7.454981 7.455046 +! 1 -3.220000 7.457024 7.457090 +! 1 -3.240000 7.459039 7.459104 +! 1 -3.260000 7.461026 7.461090 +! 1 -3.280000 7.462985 7.463049 +! 1 -3.300000 7.464917 7.464981 +! 1 -3.320000 7.466822 7.466887 +! 1 -3.340000 7.468702 7.468766 +! 1 -3.360000 7.470557 7.470621 +! 1 -3.380000 7.472387 7.472450 +! 1 -3.400000 7.474192 7.474256 +! 1 -3.420000 7.475974 7.476038 +! 1 -3.440000 7.477733 7.477796 +! 1 -3.460000 7.479469 7.479532 +! 1 -3.480000 7.481183 7.481246 +! 1 -3.500000 7.482875 7.482938 +! 1 -3.520000 7.484546 7.484609 +! 1 -3.540000 7.486196 7.486258 +! 1 -3.560000 7.487825 7.487888 +! 1 -3.580000 7.489435 7.489497 +! 1 -3.600000 7.491024 7.491086 +! 1 -3.620000 7.492595 7.492657 +! 1 -3.640000 7.494146 7.494208 +! 1 -3.660000 7.495679 7.495741 +! 1 -3.680000 7.497194 7.497255 +! 1 -3.700000 7.498691 7.498752 +! 1 -3.720000 7.500170 7.500231 +! 1 -3.740000 7.501632 7.501693 +! 1 -3.760000 7.503077 7.503138 +! 1 -3.780000 7.504506 7.504567 +! 1 -3.800000 7.505918 7.505979 +! 1 -3.820000 7.507315 7.507375 +! 1 -3.840000 7.508696 7.508756 +! 1 -3.860000 7.510061 7.510121 +! 1 -3.880000 7.511412 7.511471 +! 1 -3.900000 7.512747 7.512807 +! 1 -3.920000 7.514068 7.514128 +! 1 -3.940000 7.515375 7.515434 +! 1 -3.960000 7.516667 7.516727 +! 1 -3.980000 7.517946 7.518005 +! 1 -4.000000 7.519211 7.519270 +! 1 -4.020000 7.520463 7.520522 +! 1 -4.040000 7.521702 7.521761 +! 1 -4.060000 7.522928 7.522986 +! 1 -4.080000 7.524141 7.524199 +! 1 -4.100000 7.525342 7.525400 +! 1 -4.120000 7.526530 7.526588 +! 1 -4.140000 7.527706 7.527764 +! 1 -4.160000 7.528871 7.528929 +! 1 -4.180000 7.530024 7.530081 +! 1 -4.200000 7.531165 7.531222 +! 1 -4.220000 7.532295 7.532352 +! 1 -4.240000 7.533414 7.533471 +! 1 -4.260000 7.534522 7.534579 +! 1 -4.280000 7.535619 7.535676 +! 1 -4.300000 7.536706 7.536763 +! 1 -4.320000 7.537782 7.537839 +! 1 -4.340000 7.538848 7.538904 +! 1 -4.360000 7.539904 7.539960 +! 1 -4.380000 7.540950 7.541006 +! 1 -4.400000 7.541986 7.542042 +! 1 -4.420000 7.543012 7.543068 +! 1 -4.440000 7.544029 7.544085 +! 1 -4.460000 7.545037 7.545092 +! 1 -4.480000 7.546035 7.546091 +! 1 -4.500000 7.547024 7.547080 +! 1 -4.520000 7.548005 7.548060 +! 1 -4.540000 7.548976 7.549031 +! 1 -4.560000 7.549939 7.549994 +! 1 -4.580000 7.550893 7.550948 +! 1 -4.600000 7.551839 7.551894 +! 1 -4.620000 7.552776 7.552831 +! 1 -4.640000 7.553706 7.553760 +! 1 -4.660000 7.554627 7.554681 +! 1 -4.680000 7.555540 7.555594 +! 1 -4.700000 7.556445 7.556499 +! 1 -4.720000 7.557343 7.557397 +! 1 -4.740000 7.558233 7.558287 +! 1 -4.760000 7.559115 7.559169 +! 1 -4.780000 7.559990 7.560044 +! 1 -4.800000 7.560858 7.560911 +! 1 -4.820000 7.561718 7.561772 +! 1 -4.840000 7.562572 7.562625 +! 1 -4.860000 7.563418 7.563471 +! 1 -4.880000 7.564257 7.564310 +! 1 -4.900000 7.565090 7.565142 +! 1 -4.920000 7.565915 7.565968 +! 1 -4.940000 7.566734 7.566787 +! 1 -4.960000 7.567547 7.567599 +! 1 -4.980000 7.568353 7.568405 +! 1 -5.000000 7.569152 7.569205 +! 1 -5.020000 7.569946 7.569998 +! 1 -5.040000 7.570733 7.570785 +! 1 -5.060000 7.571513 7.571565 +! 1 -5.080000 7.572288 7.572340 +! 1 -5.100000 7.573057 7.573109 +! 1 -5.120000 7.573820 7.573871 +! 1 -5.140000 7.574577 7.574628 +! 1 -5.160000 7.575328 7.575379 +! 1 -5.180000 7.576073 7.576124 +! 1 -5.200000 7.576813 7.576864 +! 1 -5.220000 7.577547 7.577598 +! 1 -5.240000 7.578276 7.578327 +! 1 -5.260000 7.578999 7.579050 +! 1 -5.280000 7.579717 7.579768 +! 1 -5.300000 7.580430 7.580480 +! 1 -5.320000 7.581137 7.581188 +! 1 -5.340000 7.581840 7.581890 +! 1 -5.360000 7.582537 7.582587 +! 1 -5.380000 7.583229 7.583279 +! 1 -5.400000 7.583916 7.583966 +! 1 -5.420000 7.584598 7.584648 +! 1 -5.440000 7.585275 7.585325 +! 1 -5.460000 7.585948 7.585997 +! 1 -5.480000 7.586615 7.586665 +! 1 -5.500000 7.587278 7.587327 +! 1 -5.520000 7.587936 7.587985 +! 1 -5.540000 7.588590 7.588639 +! 1 -5.560000 7.589239 7.589288 +! 1 -5.580000 7.589884 7.589933 +! 1 -5.600000 7.590524 7.590573 +! 1 -5.620000 7.591160 7.591208 +! 1 -5.640000 7.591791 7.591840 +! 1 -5.660000 7.592418 7.592467 +! 1 -5.680000 7.593041 7.593089 +! 1 -5.700000 7.593660 7.593708 +! 1 -5.720000 7.594274 7.594322 +! 1 -5.740000 7.594885 7.594933 +! 1 -5.760000 7.595491 7.595539 +! 1 -5.780000 7.596093 7.596141 +! 1 -5.800000 7.596692 7.596739 +! 1 -5.820000 7.597286 7.597334 +! 1 -5.840000 7.597877 7.597924 +! 1 -5.860000 7.598463 7.598511 +! 1 -5.880000 7.599046 7.599093 +! 1 -5.900000 7.599625 7.599672 +! 1 -5.920000 7.600200 7.600247 +! 1 -5.940000 7.600772 7.600819 +! 1 -5.960000 7.601340 7.601387 +! 1 -5.980000 7.601904 7.601951 +! 1 -6.000000 7.602465 7.602512 +! 1 -6.020000 7.603023 7.603069 +! 1 -6.040000 7.603576 7.603623 +! 1 -6.060000 7.604127 7.604173 +! 1 -6.080000 7.604673 7.604720 +! 1 -6.100000 7.605217 7.605263 +! 1 -6.120000 7.605757 7.605803 +! 1 -6.140000 7.606294 7.606340 +! 1 -6.160000 7.606827 7.606873 +! 1 -6.180000 7.607357 7.607403 +! 1 -6.200000 7.607884 7.607930 +! 1 -6.220000 7.608408 7.608454 +! 1 -6.240000 7.608929 7.608974 +! 1 -6.260000 7.609446 7.609492 +! 1 -6.280000 7.609961 7.610006 +! 1 -6.300000 7.610472 7.610517 +! 1 -6.320000 7.610980 7.611025 +! 1 -6.340000 7.611485 7.611530 +! 1 -6.360000 7.611988 7.612033 +! 1 -6.380000 7.612487 7.612532 +! 1 -6.400000 7.612983 7.613028 +! 1 -6.420000 7.613477 7.613522 +! 1 -6.440000 7.613968 7.614012 +! 1 -6.460000 7.614455 7.614500 +! 1 -6.480000 7.614940 7.614985 +! 1 -6.500000 7.615422 7.615467 +! 1 -6.520000 7.615902 7.615946 +! 1 -6.540000 7.616379 7.616423 +! 1 -6.560000 7.616853 7.616897 +! 1 -6.580000 7.617324 7.617368 +! 1 -6.600000 7.617792 7.617836 +! 1 -6.620000 7.618258 7.618302 +! 1 -6.640000 7.618722 7.618765 +! 1 -6.660000 7.619182 7.619226 +! 1 -6.680000 7.619641 7.619684 +! 1 -6.700000 7.620096 7.620140 +! 1 -6.720000 7.620550 7.620593 +! 1 -6.740000 7.621000 7.621043 +! 1 -6.760000 7.621448 7.621491 +! 1 -6.780000 7.621894 7.621937 +! 1 -6.800000 7.622337 7.622380 +! 1 -6.820000 7.622778 7.622821 +! 1 -6.840000 7.623217 7.623260 +! 1 -6.860000 7.623653 7.623696 +! 1 -6.880000 7.624087 7.624129 +! 1 -6.900000 7.624518 7.624561 +! 1 -6.920000 7.624947 7.624990 +! 1 -6.940000 7.625374 7.625417 +! 1 -6.960000 7.625799 7.625841 +! 1 -6.980000 7.626221 7.626263 +! 1 -7.000000 7.626641 7.626683 +! 1 -7.020000 7.627059 7.627101 +! 1 -7.040000 7.627475 7.627517 +! 1 -7.060000 7.627889 7.627931 +! 1 -7.080000 7.628300 7.628342 +! 1 -7.100000 7.628709 7.628751 +! 1 -7.120000 7.629117 7.629158 +! 1 -7.140000 7.629522 7.629563 +! 1 -7.160000 7.629925 7.629966 +! 1 -7.180000 7.630326 7.630367 +! 1 -7.200000 7.630725 7.630766 +! 1 -7.220000 7.631122 7.631163 +! 1 -7.240000 7.631516 7.631558 +! 1 -7.260000 7.631909 7.631950 +! 1 -7.280000 7.632300 7.632341 +! 1 -7.300000 7.632689 7.632730 +! 1 -7.320000 7.633076 7.633117 +! 1 -7.340000 7.633461 7.633502 +! 1 -7.360000 7.633845 7.633885 +! 1 -7.380000 7.634226 7.634267 +! 1 -7.400000 7.634605 7.634646 +! 1 -7.420000 7.634983 7.635023 +! 1 -7.440000 7.635359 7.635399 +! 1 -7.460000 7.635732 7.635773 +! 1 -7.480000 7.636104 7.636145 +! 1 -7.500000 7.636475 7.636515 +! 1 -7.520000 7.636843 7.636883 +! 1 -7.540000 7.637210 7.637250 +! 1 -7.560000 7.637575 7.637615 +! 1 -7.580000 7.637938 7.637978 +! 1 -7.600000 7.638299 7.638339 +! 1 -7.620000 7.638659 7.638699 +! 1 -7.640000 7.639017 7.639057 +! 1 -7.660000 7.639373 7.639413 +! 1 -7.680000 7.639728 7.639768 +! 1 -7.700000 7.640081 7.640120 +! 1 -7.720000 7.640432 7.640472 +! 1 -7.740000 7.640782 7.640821 +! 1 -7.760000 7.641130 7.641169 +! 1 -7.780000 7.641476 7.641515 +! 1 -7.800000 7.641821 7.641860 +! 1 -7.820000 7.642164 7.642203 +! 1 -7.840000 7.642506 7.642545 +! 1 -7.860000 7.642846 7.642885 +! 1 -7.880000 7.643184 7.643223 +! 1 -7.900000 7.643521 7.643560 +! 1 -7.920000 7.643857 7.643895 +! 1 -7.940000 7.644190 7.644229 +! 1 -7.960000 7.644523 7.644562 +! 1 -7.980000 7.644854 7.644892 +! 1 -8.000000 7.645183 7.645222 +! 1 -8.020000 7.645511 7.645550 +! 1 -8.040000 7.645837 7.645876 +! 1 -8.060000 7.646162 7.646201 +! 1 -8.080000 7.646486 7.646524 +! 1 -8.100000 7.646808 7.646846 +! 1 -8.120000 7.647129 7.647167 +! 1 -8.140000 7.647448 7.647486 +! 1 -8.160000 7.647766 7.647804 +! 1 -8.180000 7.648082 7.648120 +! 1 -8.200000 7.648397 7.648435 +! 1 -8.220000 7.648711 7.648749 +! 1 -8.240000 7.649023 7.649061 +! 1 -8.260000 7.649334 7.649372 +! 1 -8.280000 7.649644 7.649682 +! 1 -8.300000 7.649952 7.649990 +! 1 -8.320000 7.650259 7.650297 +! 1 -8.340000 7.650565 7.650602 +! 1 -8.360000 7.650869 7.650907 +! 1 -8.380000 7.651172 7.651210 +! 1 -8.400000 7.651474 7.651511 +! 1 -8.420000 7.651774 7.651812 +! 1 -8.440000 7.652074 7.652111 +! 1 -8.460000 7.652372 7.652409 +! 1 -8.480000 7.652668 7.652705 +! 1 -8.500000 7.652964 7.653001 +! 1 -8.520000 7.653258 7.653295 +! 1 -8.540000 7.653551 7.653588 +! 1 -8.560000 7.653843 7.653880 +! 1 -8.580000 7.654133 7.654170 +! 1 -8.600000 7.654422 7.654459 +! 1 -8.620000 7.654711 7.654747 +! 1 -8.640000 7.654998 7.655034 +! 1 -8.660000 7.655283 7.655320 +! 1 -8.680000 7.655568 7.655605 +! 1 -8.700000 7.655851 7.655888 +! 1 -8.720000 7.656134 7.656170 +! 1 -8.740000 7.656415 7.656451 +! 1 -8.760000 7.656695 7.656731 +! 1 -8.780000 7.656974 7.657010 +! 1 -8.800000 7.657251 7.657288 +! 1 -8.820000 7.657528 7.657564 +! 1 -8.840000 7.657803 7.657840 +! 1 -8.860000 7.658078 7.658114 +! 1 -8.880000 7.658351 7.658387 +! 1 -8.900000 7.658623 7.658660 +! 1 -8.920000 7.658895 7.658931 +! 1 -8.940000 7.659165 7.659201 +! 1 -8.960000 7.659434 7.659470 +! 1 -8.980000 7.659702 7.659737 +! 1 -9.000000 7.659968 7.660004 +! 1 -9.020000 7.660234 7.660270 +! 1 -9.040000 7.660499 7.660535 +! 1 -9.060000 7.660763 7.660799 +! 1 -9.080000 7.661026 7.661061 +! 1 -9.100000 7.661287 7.661323 +! 1 -9.120000 7.661548 7.661584 +! 1 -9.140000 7.661808 7.661843 +! 1 -9.160000 7.662066 7.662102 +! 1 -9.180000 7.662324 7.662360 +! 1 -9.200000 7.662581 7.662616 +! 1 -9.220000 7.662836 7.662872 +! 1 -9.240000 7.663091 7.663127 +! 1 -9.260000 7.663345 7.663380 +! 1 -9.280000 7.663598 7.663633 +! 1 -9.300000 7.663850 7.663885 +! 1 -9.320000 7.664101 7.664136 +! 1 -9.340000 7.664351 7.664386 +! 1 -9.360000 7.664600 7.664635 +! 1 -9.380000 7.664848 7.664883 +! 1 -9.400000 7.665095 7.665130 +! 1 -9.420000 7.665341 7.665376 +! 1 -9.440000 7.665586 7.665621 +! 1 -9.460000 7.665831 7.665866 +! 1 -9.480000 7.666074 7.666109 +! 1 -9.500000 7.666317 7.666352 +! 1 -9.520000 7.666559 7.666593 +! 1 -9.540000 7.666799 7.666834 +! 1 -9.560000 7.667039 7.667074 +! 1 -9.580000 7.667278 7.667313 +! 1 -9.600000 7.667517 7.667551 +! 1 -9.620000 7.667754 7.667788 +! 1 -9.640000 7.667990 7.668025 +! 1 -9.660000 7.668226 7.668260 +! 1 -9.680000 7.668461 7.668495 +! 1 -9.700000 7.668694 7.668729 +! 1 -9.720000 7.668928 7.668962 +! 1 -9.740000 7.669160 7.669194 +! 1 -9.760000 7.669391 7.669425 +! 1 -9.780000 7.669622 7.669656 +! 1 -9.800000 7.669851 7.669886 +! 1 -9.820000 7.670080 7.670114 +! 1 -9.840000 7.670308 7.670342 +! 1 -9.860000 7.670536 7.670570 +! 1 -9.880000 7.670762 7.670796 +! 1 -9.900000 7.670988 7.671022 +! 1 -9.920000 7.671213 7.671247 +! 1 -9.940000 7.671437 7.671471 +! 1 -9.960000 7.671660 7.671694 +! 1 -9.980000 7.671883 7.671916 +! 1 -10.000000 7.672104 7.672138 +! 1 -10.020000 7.672325 7.672359 +! 1 -10.040000 7.672545 7.672579 +! 1 -10.060000 7.672765 7.672799 +! 1 -10.080000 7.672984 7.673017 +! 1 -10.100000 7.673202 7.673235 +! 1 -10.120000 7.673419 7.673452 +! 1 -10.140000 7.673635 7.673669 +! 1 -10.160000 7.673851 7.673884 +! 1 -10.180000 7.674066 7.674099 +! 1 -10.200000 7.674280 7.674314 +! 1 -10.220000 7.674493 7.674527 +! 1 -10.240000 7.674706 7.674740 +! 1 -10.260000 7.674918 7.674952 +! 1 -10.280000 7.675130 7.675163 +! 1 -10.300000 7.675340 7.675374 +! 1 -10.320000 7.675550 7.675583 +! 1 -10.340000 7.675759 7.675793 +! 1 -10.360000 7.675968 7.676001 +! 1 -10.380000 7.676176 7.676209 +! 1 -10.400000 7.676383 7.676416 +! 1 -10.420000 7.676589 7.676622 +! 1 -10.440000 7.676795 7.676828 +! 1 -10.460000 7.677000 7.677033 +! 1 -10.480000 7.677204 7.677237 +! 1 -10.500000 7.677408 7.677441 +! 1 -10.520000 7.677611 7.677644 +! 1 -10.540000 7.677813 7.677846 +! 1 -10.560000 7.678015 7.678048 +! 1 -10.580000 7.678216 7.678249 +! 1 -10.600000 7.678416 7.678449 +! 1 -10.620000 7.678616 7.678649 +! 1 -10.640000 7.678815 7.678848 +! 1 -10.660000 7.679013 7.679046 +! 1 -10.680000 7.679211 7.679244 +! 1 -10.700000 7.679408 7.679441 +! 1 -10.720000 7.679605 7.679638 +! 1 -10.740000 7.679801 7.679833 +! 1 -10.760000 7.679996 7.680029 +! 1 -10.780000 7.680190 7.680223 +! 1 -10.800000 7.680384 7.680417 +! 1 -10.820000 7.680578 7.680610 +! 1 -10.840000 7.680771 7.680803 +! 1 -10.860000 7.680963 7.680995 +! 1 -10.880000 7.681154 7.681187 +! 1 -10.900000 7.681345 7.681378 +! 1 -10.920000 7.681535 7.681568 +! 1 -10.940000 7.681725 7.681758 +! 1 -10.960000 7.681914 7.681947 +! 1 -10.980000 7.682103 7.682135 +! 1 -11.000000 7.682291 7.682323 +! 1 -11.020000 7.682478 7.682510 +! 1 -11.040000 7.682665 7.682697 +! 1 -11.060000 7.682851 7.682883 +! 1 -11.080000 7.683036 7.683069 +! 1 -11.100000 7.683221 7.683254 +! 1 -11.120000 7.683406 7.683438 +! 1 -11.140000 7.683590 7.683622 +! 1 -11.160000 7.683773 7.683805 +! 1 -11.180000 7.683956 7.683988 +! 1 -11.200000 7.684138 7.684170 +! 1 -11.220000 7.684320 7.684352 +! 1 -11.240000 7.684501 7.684533 +! 1 -11.260000 7.684681 7.684713 +! 1 -11.280000 7.684861 7.684893 +! 1 -11.300000 7.685040 7.685072 +! 1 -11.320000 7.685219 7.685251 +! 1 -11.340000 7.685398 7.685429 +! 1 -11.360000 7.685575 7.685607 +! 1 -11.380000 7.685753 7.685784 +! 1 -11.400000 7.685929 7.685961 +! 1 -11.420000 7.686105 7.686137 +! 1 -11.440000 7.686281 7.686313 +! 1 -11.460000 7.686456 7.686488 +! 1 -11.480000 7.686631 7.686663 +! 1 -11.500000 7.686805 7.686837 +! 1 -11.520000 7.686978 7.687010 +! 1 -11.540000 7.687151 7.687183 +! 1 -11.560000 7.687324 7.687356 +! 1 -11.580000 7.687496 7.687528 +! 1 -11.600000 7.687667 7.687699 +! 1 -11.620000 7.687838 7.687870 +! 1 -11.640000 7.688009 7.688040 +! 1 -11.660000 7.688179 7.688210 +! 1 -11.680000 7.688348 7.688380 +! 1 -11.700000 7.688517 7.688549 +! 1 -11.720000 7.688686 7.688717 +! 1 -11.740000 7.688854 7.688885 +! 1 -11.760000 7.689021 7.689053 +! 1 -11.780000 7.689188 7.689220 +! 1 -11.800000 7.689355 7.689386 +! 1 -11.820000 7.689521 7.689552 +! 1 -11.840000 7.689686 7.689718 +! 1 -11.860000 7.689851 7.689883 +! 1 -11.880000 7.690016 7.690048 +! 1 -11.900000 7.690180 7.690212 +! 1 -11.920000 7.690344 7.690375 +! 1 -11.940000 7.690507 7.690538 +! 1 -11.960000 7.690670 7.690701 +! 1 -11.980000 7.690832 7.690863 + +log derivativve data for plotting, l= 2 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.27 +l, energy, all-electron, pseudopotential + +! 2 12.000000 -3.034934 -2.152793 +! 2 11.980000 -3.006786 -2.144631 +! 2 11.960000 -2.978828 -2.136648 +! 2 11.940000 -2.951100 -2.128839 +! 2 11.920000 -2.923640 -2.121199 +! 2 11.900000 -2.896484 -2.113723 +! 2 11.880000 -2.869664 -2.106407 +! 2 11.860000 -2.843211 -2.099245 +! 2 11.840000 -2.817153 -2.092234 +! 2 11.820000 -2.791513 -2.085368 +! 2 11.800000 -2.766314 -2.078645 +! 2 11.780000 -2.741574 -2.072059 +! 2 11.760000 -2.717309 -2.065607 +! 2 11.740000 -2.693533 -2.059285 +! 2 11.720000 -2.670254 -2.053089 +! 2 11.700000 -2.647482 -2.047017 +! 2 11.680000 -2.625221 -2.041063 +! 2 11.660000 -2.603475 -2.035225 +! 2 11.640000 -2.582244 -2.029500 +! 2 11.620000 -2.561529 -2.023885 +! 2 11.600000 -2.541326 -2.018376 +! 2 11.580000 -2.521632 -2.012970 +! 2 11.560000 -2.502441 -2.007665 +! 2 11.540000 -2.483747 -2.002459 +! 2 11.520000 -2.465543 -1.997347 +! 2 11.500000 -2.447820 -1.992329 +! 2 11.480000 -2.430569 -1.987400 +! 2 11.460000 -2.413781 -1.982560 +! 2 11.440000 -2.397444 -1.977805 +! 2 11.420000 -2.381550 -1.973133 +! 2 11.400000 -2.366087 -1.968542 +! 2 11.380000 -2.351044 -1.964030 +! 2 11.360000 -2.336409 -1.959594 +! 2 11.340000 -2.322173 -1.955234 +! 2 11.320000 -2.308322 -1.950946 +! 2 11.300000 -2.294847 -1.946730 +! 2 11.280000 -2.281736 -1.942583 +! 2 11.260000 -2.268978 -1.938503 +! 2 11.240000 -2.256563 -1.934489 +! 2 11.220000 -2.244480 -1.930538 +! 2 11.200000 -2.232717 -1.926651 +! 2 11.180000 -2.221266 -1.922824 +! 2 11.160000 -2.210117 -1.919057 +! 2 11.140000 -2.199259 -1.915347 +! 2 11.120000 -2.188683 -1.911694 +! 2 11.100000 -2.178380 -1.908097 +! 2 11.080000 -2.168341 -1.904553 +! 2 11.060000 -2.158557 -1.901061 +! 2 11.040000 -2.149020 -1.897621 +! 2 11.020000 -2.139723 -1.894231 +! 2 11.000000 -2.130656 -1.890889 +! 2 10.980000 -2.121812 -1.887596 +! 2 10.960000 -2.113185 -1.884348 +! 2 10.940000 -2.104767 -1.881147 +! 2 10.920000 -2.096550 -1.877989 +! 2 10.900000 -2.088530 -1.874875 +! 2 10.880000 -2.080698 -1.871803 +! 2 10.860000 -2.073049 -1.868773 +! 2 10.840000 -2.065578 -1.865783 +! 2 10.820000 -2.058277 -1.862833 +! 2 10.800000 -2.051142 -1.859921 +! 2 10.780000 -2.044168 -1.857048 +! 2 10.760000 -2.037349 -1.854211 +! 2 10.740000 -2.030681 -1.851410 +! 2 10.720000 -2.024158 -1.848644 +! 2 10.700000 -2.017776 -1.845913 +! 2 10.680000 -2.011530 -1.843216 +! 2 10.660000 -2.005417 -1.840551 +! 2 10.640000 -1.999433 -1.837919 +! 2 10.620000 -1.993572 -1.835319 +! 2 10.600000 -1.987832 -1.832750 +! 2 10.580000 -1.982208 -1.830210 +! 2 10.560000 -1.976698 -1.827701 +! 2 10.540000 -1.971298 -1.825220 +! 2 10.520000 -1.966004 -1.822768 +! 2 10.500000 -1.960813 -1.820343 +! 2 10.480000 -1.955723 -1.817946 +! 2 10.460000 -1.950729 -1.815575 +! 2 10.440000 -1.945831 -1.813230 +! 2 10.420000 -1.941024 -1.810911 +! 2 10.400000 -1.936306 -1.808617 +! 2 10.380000 -1.931674 -1.806347 +! 2 10.360000 -1.927126 -1.804101 +! 2 10.340000 -1.922660 -1.801878 +! 2 10.320000 -1.918273 -1.799679 +! 2 10.300000 -1.913963 -1.797502 +! 2 10.280000 -1.909728 -1.795347 +! 2 10.260000 -1.905566 -1.793214 +! 2 10.240000 -1.901474 -1.791102 +! 2 10.220000 -1.897452 -1.789010 +! 2 10.200000 -1.893496 -1.786939 +! 2 10.180000 -1.889605 -1.784888 +! 2 10.160000 -1.885778 -1.782857 +! 2 10.140000 -1.882013 -1.780844 +! 2 10.120000 -1.878307 -1.778850 +! 2 10.100000 -1.874660 -1.776875 +! 2 10.080000 -1.871070 -1.774918 +! 2 10.060000 -1.867535 -1.772978 +! 2 10.040000 -1.864054 -1.771056 +! 2 10.020000 -1.860626 -1.769150 +! 2 10.000000 -1.857248 -1.767262 +! 2 9.980000 -1.853921 -1.765389 +! 2 9.960000 -1.850643 -1.763533 +! 2 9.940000 -1.847411 -1.761692 +! 2 9.920000 -1.844226 -1.759867 +! 2 9.900000 -1.841086 -1.758056 +! 2 9.880000 -1.837990 -1.756261 +! 2 9.860000 -1.834936 -1.754480 +! 2 9.840000 -1.831925 -1.752713 +! 2 9.820000 -1.828954 -1.750960 +! 2 9.800000 -1.826022 -1.749221 +! 2 9.780000 -1.823130 -1.747495 +! 2 9.760000 -1.820275 -1.745783 +! 2 9.740000 -1.817457 -1.744083 +! 2 9.720000 -1.814675 -1.742396 +! 2 9.700000 -1.811929 -1.740721 +! 2 9.680000 -1.809216 -1.739059 +! 2 9.660000 -1.806537 -1.737409 +! 2 9.640000 -1.803891 -1.735770 +! 2 9.620000 -1.801277 -1.734142 +! 2 9.600000 -1.798694 -1.732526 +! 2 9.580000 -1.796141 -1.730921 +! 2 9.560000 -1.793618 -1.729327 +! 2 9.540000 -1.791125 -1.727743 +! 2 9.520000 -1.788659 -1.726170 +! 2 9.500000 -1.786221 -1.724607 +! 2 9.480000 -1.783811 -1.723054 +! 2 9.460000 -1.781427 -1.721511 +! 2 9.440000 -1.779069 -1.719977 +! 2 9.420000 -1.776736 -1.718453 +! 2 9.400000 -1.774428 -1.716938 +! 2 9.380000 -1.772144 -1.715433 +! 2 9.360000 -1.769883 -1.713936 +! 2 9.340000 -1.767646 -1.712448 +! 2 9.320000 -1.765431 -1.710968 +! 2 9.300000 -1.763239 -1.709497 +! 2 9.280000 -1.761068 -1.708033 +! 2 9.260000 -1.758918 -1.706578 +! 2 9.240000 -1.756789 -1.705131 +! 2 9.220000 -1.754680 -1.703692 +! 2 9.200000 -1.752590 -1.702260 +! 2 9.180000 -1.750520 -1.700835 +! 2 9.160000 -1.748469 -1.699418 +! 2 9.140000 -1.746436 -1.698008 +! 2 9.120000 -1.744422 -1.696605 +! 2 9.100000 -1.742425 -1.695209 +! 2 9.080000 -1.740445 -1.693819 +! 2 9.060000 -1.738482 -1.692436 +! 2 9.040000 -1.736536 -1.691059 +! 2 9.020000 -1.734606 -1.689689 +! 2 9.000000 -1.732692 -1.688324 +! 2 8.980000 -1.730793 -1.686966 +! 2 8.960000 -1.728909 -1.685614 +! 2 8.940000 -1.727041 -1.684267 +! 2 8.920000 -1.725186 -1.682926 +! 2 8.900000 -1.723346 -1.681590 +! 2 8.880000 -1.721520 -1.680260 +! 2 8.860000 -1.719707 -1.678935 +! 2 8.840000 -1.717907 -1.677615 +! 2 8.820000 -1.716121 -1.676300 +! 2 8.800000 -1.714347 -1.674990 +! 2 8.780000 -1.712586 -1.673684 +! 2 8.760000 -1.710836 -1.672384 +! 2 8.740000 -1.709099 -1.671087 +! 2 8.720000 -1.707373 -1.669796 +! 2 8.700000 -1.705658 -1.668508 +! 2 8.680000 -1.703955 -1.667225 +! 2 8.660000 -1.702262 -1.665946 +! 2 8.640000 -1.700580 -1.664671 +! 2 8.620000 -1.698908 -1.663399 +! 2 8.600000 -1.697247 -1.662132 +! 2 8.580000 -1.695595 -1.660868 +! 2 8.560000 -1.693953 -1.659608 +! 2 8.540000 -1.692321 -1.658351 +! 2 8.520000 -1.690697 -1.657097 +! 2 8.500000 -1.689083 -1.655847 +! 2 8.480000 -1.687477 -1.654600 +! 2 8.460000 -1.685880 -1.653356 +! 2 8.440000 -1.684292 -1.652115 +! 2 8.420000 -1.682711 -1.650877 +! 2 8.400000 -1.681139 -1.649642 +! 2 8.380000 -1.679574 -1.648409 +! 2 8.360000 -1.678017 -1.647179 +! 2 8.340000 -1.676467 -1.645952 +! 2 8.320000 -1.674925 -1.644727 +! 2 8.300000 -1.673390 -1.643504 +! 2 8.280000 -1.671861 -1.642283 +! 2 8.260000 -1.670339 -1.641065 +! 2 8.240000 -1.668824 -1.639848 +! 2 8.220000 -1.667315 -1.638634 +! 2 8.200000 -1.665813 -1.637421 +! 2 8.180000 -1.664316 -1.636211 +! 2 8.160000 -1.662825 -1.635002 +! 2 8.140000 -1.661340 -1.633794 +! 2 8.120000 -1.659860 -1.632588 +! 2 8.100000 -1.658386 -1.631384 +! 2 8.080000 -1.656917 -1.630181 +! 2 8.060000 -1.655453 -1.628979 +! 2 8.040000 -1.653994 -1.627778 +! 2 8.020000 -1.652540 -1.626579 +! 2 8.000000 -1.651090 -1.625380 +! 2 7.980000 -1.649645 -1.624182 +! 2 7.960000 -1.648204 -1.622986 +! 2 7.940000 -1.646767 -1.621790 +! 2 7.920000 -1.645334 -1.620594 +! 2 7.900000 -1.643906 -1.619400 +! 2 7.880000 -1.642481 -1.618206 +! 2 7.860000 -1.641059 -1.617012 +! 2 7.840000 -1.639641 -1.615819 +! 2 7.820000 -1.638227 -1.614626 +! 2 7.800000 -1.636815 -1.613433 +! 2 7.780000 -1.635407 -1.612240 +! 2 7.760000 -1.634002 -1.611048 +! 2 7.740000 -1.632600 -1.609855 +! 2 7.720000 -1.631200 -1.608662 +! 2 7.700000 -1.629803 -1.607469 +! 2 7.680000 -1.628408 -1.606276 +! 2 7.660000 -1.627016 -1.605082 +! 2 7.640000 -1.625626 -1.603888 +! 2 7.620000 -1.624238 -1.602694 +! 2 7.600000 -1.622852 -1.601499 +! 2 7.580000 -1.621468 -1.600303 +! 2 7.560000 -1.620085 -1.599107 +! 2 7.540000 -1.618704 -1.597909 +! 2 7.520000 -1.617325 -1.596711 +! 2 7.500000 -1.615947 -1.595512 +! 2 7.480000 -1.614570 -1.594312 +! 2 7.460000 -1.613195 -1.593110 +! 2 7.440000 -1.611820 -1.591908 +! 2 7.420000 -1.610447 -1.590704 +! 2 7.400000 -1.609074 -1.589499 +! 2 7.380000 -1.607702 -1.588292 +! 2 7.360000 -1.606330 -1.587084 +! 2 7.340000 -1.604959 -1.585874 +! 2 7.320000 -1.603588 -1.584662 +! 2 7.300000 -1.602218 -1.583449 +! 2 7.280000 -1.600847 -1.582234 +! 2 7.260000 -1.599477 -1.581017 +! 2 7.240000 -1.598106 -1.579797 +! 2 7.220000 -1.596735 -1.578576 +! 2 7.200000 -1.595364 -1.577353 +! 2 7.180000 -1.593993 -1.576127 +! 2 7.160000 -1.592621 -1.574899 +! 2 7.140000 -1.591248 -1.573668 +! 2 7.120000 -1.589875 -1.572435 +! 2 7.100000 -1.588500 -1.571200 +! 2 7.080000 -1.587125 -1.569961 +! 2 7.060000 -1.585748 -1.568720 +! 2 7.040000 -1.584371 -1.567476 +! 2 7.020000 -1.582992 -1.566229 +! 2 7.000000 -1.581611 -1.564980 +! 2 6.980000 -1.580230 -1.563726 +! 2 6.960000 -1.578846 -1.562470 +! 2 6.940000 -1.577461 -1.561211 +! 2 6.920000 -1.576074 -1.559948 +! 2 6.900000 -1.574684 -1.558681 +! 2 6.880000 -1.573293 -1.557411 +! 2 6.860000 -1.571900 -1.556138 +! 2 6.840000 -1.570504 -1.554860 +! 2 6.820000 -1.569106 -1.553579 +! 2 6.800000 -1.567705 -1.552294 +! 2 6.780000 -1.566302 -1.551005 +! 2 6.760000 -1.564895 -1.549712 +! 2 6.740000 -1.563486 -1.548414 +! 2 6.720000 -1.562074 -1.547113 +! 2 6.700000 -1.560659 -1.545807 +! 2 6.680000 -1.559241 -1.544496 +! 2 6.660000 -1.557819 -1.543181 +! 2 6.640000 -1.556394 -1.541861 +! 2 6.620000 -1.554966 -1.540536 +! 2 6.600000 -1.553533 -1.539206 +! 2 6.580000 -1.552097 -1.537872 +! 2 6.560000 -1.550657 -1.536532 +! 2 6.540000 -1.549213 -1.535187 +! 2 6.520000 -1.547765 -1.533837 +! 2 6.500000 -1.546312 -1.532481 +! 2 6.480000 -1.544855 -1.531120 +! 2 6.460000 -1.543394 -1.529753 +! 2 6.440000 -1.541927 -1.528381 +! 2 6.420000 -1.540456 -1.527002 +! 2 6.400000 -1.538981 -1.525618 +! 2 6.380000 -1.537500 -1.524227 +! 2 6.360000 -1.536014 -1.522831 +! 2 6.340000 -1.534522 -1.521428 +! 2 6.320000 -1.533026 -1.520019 +! 2 6.300000 -1.531523 -1.518603 +! 2 6.280000 -1.530015 -1.517180 +! 2 6.260000 -1.528502 -1.515751 +! 2 6.240000 -1.526982 -1.514314 +! 2 6.220000 -1.525456 -1.512871 +! 2 6.200000 -1.523924 -1.511421 +! 2 6.180000 -1.522386 -1.509963 +! 2 6.160000 -1.520841 -1.508498 +! 2 6.140000 -1.519289 -1.507025 +! 2 6.120000 -1.517731 -1.505545 +! 2 6.100000 -1.516166 -1.504057 +! 2 6.080000 -1.514593 -1.502561 +! 2 6.060000 -1.513014 -1.501056 +! 2 6.040000 -1.511427 -1.499544 +! 2 6.020000 -1.509833 -1.498023 +! 2 6.000000 -1.508230 -1.496494 +! 2 5.980000 -1.506620 -1.494956 +! 2 5.960000 -1.505003 -1.493409 +! 2 5.940000 -1.503376 -1.491854 +! 2 5.920000 -1.501742 -1.490289 +! 2 5.900000 -1.500099 -1.488715 +! 2 5.880000 -1.498448 -1.487131 +! 2 5.860000 -1.496787 -1.485538 +! 2 5.840000 -1.495118 -1.483936 +! 2 5.820000 -1.493440 -1.482323 +! 2 5.800000 -1.491752 -1.480700 +! 2 5.780000 -1.490055 -1.479068 +! 2 5.760000 -1.488348 -1.477424 +! 2 5.740000 -1.486631 -1.475770 +! 2 5.720000 -1.484904 -1.474106 +! 2 5.700000 -1.483167 -1.472430 +! 2 5.680000 -1.481420 -1.470744 +! 2 5.660000 -1.479661 -1.469046 +! 2 5.640000 -1.477893 -1.467336 +! 2 5.620000 -1.476113 -1.465615 +! 2 5.600000 -1.474322 -1.463882 +! 2 5.580000 -1.472519 -1.462138 +! 2 5.560000 -1.470705 -1.460380 +! 2 5.540000 -1.468879 -1.458611 +! 2 5.520000 -1.467041 -1.456828 +! 2 5.500000 -1.465191 -1.455033 +! 2 5.480000 -1.463329 -1.453225 +! 2 5.460000 -1.461453 -1.451403 +! 2 5.440000 -1.459565 -1.449568 +! 2 5.420000 -1.457664 -1.447720 +! 2 5.400000 -1.455749 -1.445857 +! 2 5.380000 -1.453821 -1.443980 +! 2 5.360000 -1.451879 -1.442089 +! 2 5.340000 -1.449922 -1.440182 +! 2 5.320000 -1.447952 -1.438261 +! 2 5.300000 -1.445967 -1.436325 +! 2 5.280000 -1.443967 -1.434374 +! 2 5.260000 -1.441951 -1.432407 +! 2 5.240000 -1.439921 -1.430423 +! 2 5.220000 -1.437875 -1.428424 +! 2 5.200000 -1.435813 -1.426408 +! 2 5.180000 -1.433734 -1.424376 +! 2 5.160000 -1.431639 -1.422326 +! 2 5.140000 -1.429528 -1.420259 +! 2 5.120000 -1.427399 -1.418175 +! 2 5.100000 -1.425253 -1.416072 +! 2 5.080000 -1.423089 -1.413952 +! 2 5.060000 -1.420907 -1.411813 +! 2 5.040000 -1.418707 -1.409655 +! 2 5.020000 -1.416489 -1.407478 +! 2 5.000000 -1.414251 -1.405281 +! 2 4.980000 -1.411994 -1.403065 +! 2 4.960000 -1.409717 -1.400829 +! 2 4.940000 -1.407420 -1.398572 +! 2 4.920000 -1.405103 -1.396294 +! 2 4.900000 -1.402766 -1.393995 +! 2 4.880000 -1.400407 -1.391675 +! 2 4.860000 -1.398026 -1.389332 +! 2 4.840000 -1.395624 -1.386967 +! 2 4.820000 -1.393200 -1.384580 +! 2 4.800000 -1.390753 -1.382170 +! 2 4.780000 -1.388283 -1.379736 +! 2 4.760000 -1.385789 -1.377278 +! 2 4.740000 -1.383272 -1.374796 +! 2 4.720000 -1.380730 -1.372289 +! 2 4.700000 -1.378164 -1.369757 +! 2 4.680000 -1.375572 -1.367199 +! 2 4.660000 -1.372955 -1.364616 +! 2 4.640000 -1.370312 -1.362005 +! 2 4.620000 -1.367642 -1.359368 +! 2 4.600000 -1.364945 -1.356703 +! 2 4.580000 -1.362220 -1.354011 +! 2 4.560000 -1.359467 -1.351289 +! 2 4.540000 -1.356686 -1.348539 +! 2 4.520000 -1.353876 -1.345760 +! 2 4.500000 -1.351036 -1.342950 +! 2 4.480000 -1.348165 -1.340110 +! 2 4.460000 -1.345264 -1.337238 +! 2 4.440000 -1.342332 -1.334335 +! 2 4.420000 -1.339368 -1.331399 +! 2 4.400000 -1.336371 -1.328431 +! 2 4.380000 -1.333341 -1.325429 +! 2 4.360000 -1.330277 -1.322393 +! 2 4.340000 -1.327179 -1.319322 +! 2 4.320000 -1.324046 -1.316216 +! 2 4.300000 -1.320877 -1.313074 +! 2 4.280000 -1.317672 -1.309895 +! 2 4.260000 -1.314429 -1.306678 +! 2 4.240000 -1.311149 -1.303424 +! 2 4.220000 -1.307831 -1.300130 +! 2 4.200000 -1.304473 -1.296797 +! 2 4.180000 -1.301075 -1.293424 +! 2 4.160000 -1.297636 -1.290010 +! 2 4.140000 -1.294156 -1.286553 +! 2 4.120000 -1.290634 -1.283054 +! 2 4.100000 -1.287068 -1.279512 +! 2 4.080000 -1.283458 -1.275925 +! 2 4.060000 -1.279804 -1.272293 +! 2 4.040000 -1.276103 -1.268615 +! 2 4.020000 -1.272356 -1.264890 +! 2 4.000000 -1.268561 -1.261116 +! 2 3.980000 -1.264718 -1.257294 +! 2 3.960000 -1.260825 -1.253423 +! 2 3.940000 -1.256882 -1.249500 +! 2 3.920000 -1.252887 -1.245526 +! 2 3.900000 -1.248839 -1.241499 +! 2 3.880000 -1.244738 -1.237418 +! 2 3.860000 -1.240583 -1.233282 +! 2 3.840000 -1.236371 -1.229090 +! 2 3.820000 -1.232103 -1.224841 +! 2 3.800000 -1.227777 -1.220534 +! 2 3.780000 -1.223391 -1.216167 +! 2 3.760000 -1.218946 -1.211739 +! 2 3.740000 -1.214438 -1.207250 +! 2 3.720000 -1.209868 -1.202698 +! 2 3.700000 -1.205233 -1.198081 +! 2 3.680000 -1.200533 -1.193398 +! 2 3.660000 -1.195766 -1.188649 +! 2 3.640000 -1.190931 -1.183831 +! 2 3.620000 -1.186026 -1.178943 +! 2 3.600000 -1.181050 -1.173984 +! 2 3.580000 -1.176001 -1.168952 +! 2 3.560000 -1.170879 -1.163846 +! 2 3.540000 -1.165681 -1.158664 +! 2 3.520000 -1.160406 -1.153406 +! 2 3.500000 -1.155053 -1.148068 +! 2 3.480000 -1.149619 -1.142650 +! 2 3.460000 -1.144103 -1.137150 +! 2 3.440000 -1.138503 -1.131566 +! 2 3.420000 -1.132818 -1.125896 +! 2 3.400000 -1.127046 -1.120139 +! 2 3.380000 -1.121184 -1.114294 +! 2 3.360000 -1.115232 -1.108357 +! 2 3.340000 -1.109188 -1.102328 +! 2 3.320000 -1.103048 -1.096204 +! 2 3.300000 -1.096813 -1.089983 +! 2 3.280000 -1.090478 -1.083664 +! 2 3.260000 -1.084044 -1.077245 +! 2 3.240000 -1.077506 -1.070723 +! 2 3.220000 -1.070864 -1.064096 +! 2 3.200000 -1.064115 -1.057363 +! 2 3.180000 -1.057257 -1.050520 +! 2 3.160000 -1.050288 -1.043567 +! 2 3.140000 -1.043206 -1.036501 +! 2 3.120000 -1.036008 -1.029319 +! 2 3.100000 -1.028692 -1.022019 +! 2 3.080000 -1.021256 -1.014600 +! 2 3.060000 -1.013698 -1.007058 +! 2 3.040000 -1.006014 -0.999391 +! 2 3.020000 -0.998203 -0.991597 +! 2 3.000000 -0.990263 -0.983674 +! 2 2.980000 -0.982190 -0.975619 +! 2 2.960000 -0.973982 -0.967430 +! 2 2.940000 -0.965638 -0.959104 +! 2 2.920000 -0.957153 -0.950639 +! 2 2.900000 -0.948527 -0.942032 +! 2 2.880000 -0.939756 -0.933281 +! 2 2.860000 -0.930838 -0.924383 +! 2 2.840000 -0.921770 -0.915337 +! 2 2.820000 -0.912550 -0.906139 +! 2 2.800000 -0.903175 -0.896786 +! 2 2.780000 -0.893644 -0.887278 +! 2 2.760000 -0.883953 -0.877611 +! 2 2.740000 -0.874099 -0.867782 +! 2 2.720000 -0.864082 -0.857791 +! 2 2.700000 -0.853898 -0.847633 +! 2 2.680000 -0.843545 -0.837307 +! 2 2.660000 -0.833021 -0.826812 +! 2 2.640000 -0.822324 -0.816144 +! 2 2.620000 -0.811451 -0.805302 +! 2 2.600000 -0.800402 -0.794284 +! 2 2.580000 -0.789173 -0.783088 +! 2 2.560000 -0.777763 -0.771712 +! 2 2.540000 -0.766171 -0.760155 +! 2 2.520000 -0.754395 -0.748416 +! 2 2.500000 -0.742434 -0.736492 +! 2 2.480000 -0.730286 -0.724384 +! 2 2.460000 -0.717951 -0.712090 +! 2 2.440000 -0.705428 -0.699609 +! 2 2.420000 -0.692715 -0.686941 +! 2 2.400000 -0.679814 -0.674085 +! 2 2.380000 -0.666723 -0.661041 +! 2 2.360000 -0.653443 -0.647810 +! 2 2.340000 -0.639975 -0.634392 +! 2 2.320000 -0.626318 -0.620787 +! 2 2.300000 -0.612473 -0.606997 +! 2 2.280000 -0.598443 -0.593023 +! 2 2.260000 -0.584228 -0.578867 +! 2 2.240000 -0.569831 -0.564529 +! 2 2.220000 -0.555254 -0.550013 +! 2 2.200000 -0.540499 -0.535322 +! 2 2.180000 -0.525569 -0.520458 +! 2 2.160000 -0.510468 -0.505424 +! 2 2.140000 -0.495200 -0.490225 +! 2 2.120000 -0.479768 -0.474864 +! 2 2.100000 -0.464177 -0.459346 +! 2 2.080000 -0.448432 -0.443676 +! 2 2.060000 -0.432538 -0.427859 +! 2 2.040000 -0.416502 -0.411901 +! 2 2.020000 -0.400329 -0.395808 +! 2 2.000000 -0.384025 -0.379586 +! 2 1.980000 -0.367599 -0.363242 +! 2 1.960000 -0.351056 -0.346784 +! 2 1.940000 -0.334404 -0.330218 +! 2 1.920000 -0.317652 -0.313554 +! 2 1.900000 -0.300808 -0.296798 +! 2 1.880000 -0.283879 -0.279959 +! 2 1.860000 -0.266876 -0.263047 +! 2 1.840000 -0.249808 -0.246070 +! 2 1.820000 -0.232682 -0.229036 +! 2 1.800000 -0.215510 -0.211957 +! 2 1.780000 -0.198300 -0.194841 +! 2 1.760000 -0.181063 -0.177698 +! 2 1.740000 -0.163809 -0.160537 +! 2 1.720000 -0.146547 -0.143369 +! 2 1.700000 -0.129287 -0.126203 +! 2 1.680000 -0.112039 -0.109049 +! 2 1.660000 -0.094814 -0.091918 +! 2 1.640000 -0.077621 -0.074818 +! 2 1.620000 -0.060470 -0.057759 +! 2 1.600000 -0.043371 -0.040752 +! 2 1.580000 -0.026333 -0.023804 +! 2 1.560000 -0.009365 -0.006926 +! 2 1.540000 0.007524 0.009874 +! 2 1.520000 0.024325 0.026587 +! 2 1.500000 0.041029 0.043205 +! 2 1.480000 0.057628 0.059720 +! 2 1.460000 0.074116 0.076124 +! 2 1.440000 0.090483 0.092409 +! 2 1.420000 0.106723 0.108569 +! 2 1.400000 0.122829 0.124597 +! 2 1.380000 0.138795 0.140487 +! 2 1.360000 0.154615 0.156232 +! 2 1.340000 0.170283 0.171828 +! 2 1.320000 0.185794 0.187268 +! 2 1.300000 0.201144 0.202549 +! 2 1.280000 0.216327 0.217666 +! 2 1.260000 0.231341 0.232615 +! 2 1.240000 0.246180 0.247392 +! 2 1.220000 0.260843 0.261994 +! 2 1.200000 0.275326 0.276418 +! 2 1.180000 0.289627 0.290663 +! 2 1.160000 0.303743 0.304724 +! 2 1.140000 0.317674 0.318602 +! 2 1.120000 0.331416 0.332294 +! 2 1.100000 0.344970 0.345800 +! 2 1.080000 0.358335 0.359118 +! 2 1.060000 0.371509 0.372247 +! 2 1.040000 0.384493 0.385188 +! 2 1.020000 0.397286 0.397941 +! 2 1.000000 0.409890 0.410505 +! 2 0.980000 0.422303 0.422881 +! 2 0.960000 0.434528 0.435070 +! 2 0.940000 0.446564 0.447072 +! 2 0.920000 0.458413 0.458889 +! 2 0.900000 0.470077 0.470521 +! 2 0.880000 0.481555 0.481970 +! 2 0.860000 0.492851 0.493238 +! 2 0.840000 0.503966 0.504326 +! 2 0.820000 0.514900 0.515236 +! 2 0.800000 0.525658 0.525969 +! 2 0.780000 0.536239 0.536528 +! 2 0.760000 0.546647 0.546915 +! 2 0.740000 0.556884 0.557132 +! 2 0.720000 0.566951 0.567180 +! 2 0.700000 0.576852 0.577063 +! 2 0.680000 0.586588 0.586782 +! 2 0.660000 0.596162 0.596340 +! 2 0.640000 0.605576 0.605739 +! 2 0.620000 0.614832 0.614982 +! 2 0.600000 0.623934 0.624071 +! 2 0.580000 0.632884 0.633008 +! 2 0.560000 0.641683 0.641796 +! 2 0.540000 0.650336 0.650438 +! 2 0.520000 0.658843 0.658935 +! 2 0.500000 0.667208 0.667291 +! 2 0.480000 0.675433 0.675508 +! 2 0.460000 0.683521 0.683587 +! 2 0.440000 0.691474 0.691533 +! 2 0.420000 0.699294 0.699347 +! 2 0.400000 0.706984 0.707031 +! 2 0.380000 0.714547 0.714588 +! 2 0.360000 0.721985 0.722020 +! 2 0.340000 0.729299 0.729330 +! 2 0.320000 0.736493 0.736520 +! 2 0.300000 0.743569 0.743592 +! 2 0.280000 0.750529 0.750548 +! 2 0.260000 0.757375 0.757391 +! 2 0.240000 0.764109 0.764123 +! 2 0.220000 0.770735 0.770746 +! 2 0.200000 0.777253 0.777262 +! 2 0.180000 0.783665 0.783673 +! 2 0.160000 0.789975 0.789981 +! 2 0.140000 0.796184 0.796189 +! 2 0.120000 0.802294 0.802298 +! 2 0.100000 0.808307 0.808310 +! 2 0.080000 0.814224 0.814227 +! 2 0.060000 0.820049 0.820052 +! 2 0.040000 0.825782 0.825785 +! 2 0.020000 0.831425 0.831428 +! 2 0.000000 0.836981 0.836985 +! 2 -0.020000 0.842451 0.842455 +! 2 -0.040000 0.847836 0.847841 +! 2 -0.060000 0.853139 0.853145 +! 2 -0.080000 0.858361 0.858367 +! 2 -0.100000 0.863504 0.863511 +! 2 -0.120000 0.868568 0.868577 +! 2 -0.140000 0.873557 0.873566 +! 2 -0.160000 0.878470 0.878482 +! 2 -0.180000 0.883311 0.883323 +! 2 -0.200000 0.888079 0.888094 +! 2 -0.220000 0.892778 0.892793 +! 2 -0.240000 0.897407 0.897424 +! 2 -0.260000 0.901968 0.901988 +! 2 -0.280000 0.906464 0.906485 +! 2 -0.300000 0.910894 0.910917 +! 2 -0.320000 0.915260 0.915285 +! 2 -0.340000 0.919564 0.919591 +! 2 -0.360000 0.923807 0.923836 +! 2 -0.380000 0.927989 0.928020 +! 2 -0.400000 0.932113 0.932146 +! 2 -0.420000 0.936178 0.936214 +! 2 -0.440000 0.940187 0.940225 +! 2 -0.460000 0.944141 0.944180 +! 2 -0.480000 0.948039 0.948081 +! 2 -0.500000 0.951884 0.951929 +! 2 -0.520000 0.955677 0.955724 +! 2 -0.540000 0.959418 0.959467 +! 2 -0.560000 0.963109 0.963160 +! 2 -0.580000 0.966750 0.966803 +! 2 -0.600000 0.970342 0.970398 +! 2 -0.620000 0.973887 0.973945 +! 2 -0.640000 0.977384 0.977445 +! 2 -0.660000 0.980836 0.980898 +! 2 -0.680000 0.984242 0.984307 +! 2 -0.700000 0.987605 0.987672 +! 2 -0.720000 0.990923 0.990992 +! 2 -0.740000 0.994199 0.994270 +! 2 -0.760000 0.997433 0.997507 +! 2 -0.780000 1.000625 1.000701 +! 2 -0.800000 1.003778 1.003856 +! 2 -0.820000 1.006890 1.006971 +! 2 -0.840000 1.009964 1.010046 +! 2 -0.860000 1.012999 1.013083 +! 2 -0.880000 1.015996 1.016083 +! 2 -0.900000 1.018957 1.019046 +! 2 -0.920000 1.021881 1.021972 +! 2 -0.940000 1.024769 1.024863 +! 2 -0.960000 1.027623 1.027718 +! 2 -0.980000 1.030441 1.030539 +! 2 -1.000000 1.033227 1.033326 +! 2 -1.020000 1.035978 1.036080 +! 2 -1.040000 1.038697 1.038801 +! 2 -1.060000 1.041384 1.041490 +! 2 -1.080000 1.044039 1.044147 +! 2 -1.100000 1.046664 1.046773 +! 2 -1.120000 1.049257 1.049369 +! 2 -1.140000 1.051821 1.051934 +! 2 -1.160000 1.054355 1.054470 +! 2 -1.180000 1.056860 1.056977 +! 2 -1.200000 1.059336 1.059455 +! 2 -1.220000 1.061785 1.061905 +! 2 -1.240000 1.064206 1.064328 +! 2 -1.260000 1.066599 1.066723 +! 2 -1.280000 1.068966 1.069092 +! 2 -1.300000 1.071307 1.071434 +! 2 -1.320000 1.073621 1.073751 +! 2 -1.340000 1.075911 1.076041 +! 2 -1.360000 1.078175 1.078307 +! 2 -1.380000 1.080414 1.080548 +! 2 -1.400000 1.082630 1.082765 +! 2 -1.420000 1.084821 1.084958 +! 2 -1.440000 1.086989 1.087128 +! 2 -1.460000 1.089134 1.089274 +! 2 -1.480000 1.091256 1.091398 +! 2 -1.500000 1.093356 1.093499 +! 2 -1.520000 1.095433 1.095578 +! 2 -1.540000 1.097489 1.097635 +! 2 -1.560000 1.099524 1.099671 +! 2 -1.580000 1.101537 1.101686 +! 2 -1.600000 1.103530 1.103680 +! 2 -1.620000 1.105502 1.105654 +! 2 -1.640000 1.107455 1.107607 +! 2 -1.660000 1.109387 1.109541 +! 2 -1.680000 1.111300 1.111455 +! 2 -1.700000 1.113194 1.113350 +! 2 -1.720000 1.115068 1.115226 +! 2 -1.740000 1.116924 1.117083 +! 2 -1.760000 1.118762 1.118922 +! 2 -1.780000 1.120582 1.120743 +! 2 -1.800000 1.122383 1.122546 +! 2 -1.820000 1.124168 1.124331 +! 2 -1.840000 1.125934 1.126099 +! 2 -1.860000 1.127684 1.127850 +! 2 -1.880000 1.129417 1.129583 +! 2 -1.900000 1.131133 1.131301 +! 2 -1.920000 1.132833 1.133002 +! 2 -1.940000 1.134517 1.134687 +! 2 -1.960000 1.136185 1.136355 +! 2 -1.980000 1.137837 1.138009 +! 2 -2.000000 1.139474 1.139646 +! 2 -2.020000 1.141096 1.141269 +! 2 -2.040000 1.142702 1.142876 +! 2 -2.060000 1.144294 1.144469 +! 2 -2.080000 1.145871 1.146047 +! 2 -2.100000 1.147434 1.147610 +! 2 -2.120000 1.148983 1.149160 +! 2 -2.140000 1.150517 1.150695 +! 2 -2.160000 1.152038 1.152216 +! 2 -2.180000 1.153545 1.153724 +! 2 -2.200000 1.155038 1.155218 +! 2 -2.220000 1.156519 1.156699 +! 2 -2.240000 1.157986 1.158167 +! 2 -2.260000 1.159440 1.159622 +! 2 -2.280000 1.160881 1.161064 +! 2 -2.300000 1.162310 1.162494 +! 2 -2.320000 1.163727 1.163911 +! 2 -2.340000 1.165131 1.165316 +! 2 -2.360000 1.166523 1.166708 +! 2 -2.380000 1.167903 1.168089 +! 2 -2.400000 1.169272 1.169458 +! 2 -2.420000 1.170628 1.170815 +! 2 -2.440000 1.171974 1.172161 +! 2 -2.460000 1.173308 1.173496 +! 2 -2.480000 1.174630 1.174819 +! 2 -2.500000 1.175942 1.176131 +! 2 -2.520000 1.177243 1.177432 +! 2 -2.540000 1.178533 1.178722 +! 2 -2.560000 1.179812 1.180002 +! 2 -2.580000 1.181081 1.181272 +! 2 -2.600000 1.182339 1.182530 +! 2 -2.620000 1.183588 1.183779 +! 2 -2.640000 1.184826 1.185017 +! 2 -2.660000 1.186054 1.186246 +! 2 -2.680000 1.187272 1.187464 +! 2 -2.700000 1.188480 1.188673 +! 2 -2.720000 1.189679 1.189872 +! 2 -2.740000 1.190868 1.191062 +! 2 -2.760000 1.192048 1.192242 +! 2 -2.780000 1.193219 1.193413 +! 2 -2.800000 1.194380 1.194575 +! 2 -2.820000 1.195533 1.195727 +! 2 -2.840000 1.196676 1.196871 +! 2 -2.860000 1.197810 1.198006 +! 2 -2.880000 1.198936 1.199132 +! 2 -2.900000 1.200053 1.200249 +! 2 -2.920000 1.201162 1.201358 +! 2 -2.940000 1.202262 1.202458 +! 2 -2.960000 1.203354 1.203550 +! 2 -2.980000 1.204437 1.204634 +! 2 -3.000000 1.205512 1.205709 +! 2 -3.020000 1.206580 1.206777 +! 2 -3.040000 1.207639 1.207836 +! 2 -3.060000 1.208690 1.208888 +! 2 -3.080000 1.209734 1.209931 +! 2 -3.100000 1.210770 1.210967 +! 2 -3.120000 1.211798 1.211996 +! 2 -3.140000 1.212819 1.213017 +! 2 -3.160000 1.213832 1.214030 +! 2 -3.180000 1.214838 1.215036 +! 2 -3.200000 1.215837 1.216035 +! 2 -3.220000 1.216828 1.217026 +! 2 -3.240000 1.217813 1.218011 +! 2 -3.260000 1.218790 1.218988 +! 2 -3.280000 1.219760 1.219959 +! 2 -3.300000 1.220724 1.220922 +! 2 -3.320000 1.221681 1.221879 +! 2 -3.340000 1.222630 1.222829 +! 2 -3.360000 1.223574 1.223772 +! 2 -3.380000 1.224510 1.224709 +! 2 -3.400000 1.225440 1.225639 +! 2 -3.420000 1.226364 1.226562 +! 2 -3.440000 1.227281 1.227479 +! 2 -3.460000 1.228192 1.228390 +! 2 -3.480000 1.229097 1.229295 +! 2 -3.500000 1.229995 1.230194 +! 2 -3.520000 1.230888 1.231086 +! 2 -3.540000 1.231774 1.231972 +! 2 -3.560000 1.232654 1.232852 +! 2 -3.580000 1.233529 1.233727 +! 2 -3.600000 1.234397 1.234595 +! 2 -3.620000 1.235260 1.235458 +! 2 -3.640000 1.236117 1.236315 +! 2 -3.660000 1.236968 1.237166 +! 2 -3.680000 1.237814 1.238011 +! 2 -3.700000 1.238654 1.238851 +! 2 -3.720000 1.239488 1.239686 +! 2 -3.740000 1.240318 1.240515 +! 2 -3.760000 1.241141 1.241338 +! 2 -3.780000 1.241960 1.242157 +! 2 -3.800000 1.242773 1.242970 +! 2 -3.820000 1.243580 1.243777 +! 2 -3.840000 1.244383 1.244580 +! 2 -3.860000 1.245180 1.245377 +! 2 -3.880000 1.245973 1.246169 +! 2 -3.900000 1.246760 1.246956 +! 2 -3.920000 1.247542 1.247739 +! 2 -3.940000 1.248320 1.248516 +! 2 -3.960000 1.249092 1.249288 +! 2 -3.980000 1.249860 1.250056 +! 2 -4.000000 1.250623 1.250818 +! 2 -4.020000 1.251381 1.251576 +! 2 -4.040000 1.252134 1.252329 +! 2 -4.060000 1.252883 1.253078 +! 2 -4.080000 1.253627 1.253822 +! 2 -4.100000 1.254367 1.254561 +! 2 -4.120000 1.255102 1.255296 +! 2 -4.140000 1.255832 1.256026 +! 2 -4.160000 1.256558 1.256752 +! 2 -4.180000 1.257280 1.257474 +! 2 -4.200000 1.257997 1.258191 +! 2 -4.220000 1.258710 1.258904 +! 2 -4.240000 1.259419 1.259612 +! 2 -4.260000 1.260123 1.260316 +! 2 -4.280000 1.260824 1.261017 +! 2 -4.300000 1.261520 1.261712 +! 2 -4.320000 1.262212 1.262404 +! 2 -4.340000 1.262900 1.263092 +! 2 -4.360000 1.263584 1.263775 +! 2 -4.380000 1.264264 1.264455 +! 2 -4.400000 1.264939 1.265131 +! 2 -4.420000 1.265611 1.265802 +! 2 -4.440000 1.266279 1.266470 +! 2 -4.460000 1.266944 1.267134 +! 2 -4.480000 1.267604 1.267794 +! 2 -4.500000 1.268260 1.268451 +! 2 -4.520000 1.268913 1.269103 +! 2 -4.540000 1.269562 1.269752 +! 2 -4.560000 1.270208 1.270397 +! 2 -4.580000 1.270849 1.271038 +! 2 -4.600000 1.271487 1.271676 +! 2 -4.620000 1.272122 1.272310 +! 2 -4.640000 1.272753 1.272941 +! 2 -4.660000 1.273380 1.273568 +! 2 -4.680000 1.274004 1.274192 +! 2 -4.700000 1.274624 1.274812 +! 2 -4.720000 1.275241 1.275428 +! 2 -4.740000 1.275855 1.276042 +! 2 -4.760000 1.276465 1.276652 +! 2 -4.780000 1.277072 1.277258 +! 2 -4.800000 1.277675 1.277861 +! 2 -4.820000 1.278275 1.278461 +! 2 -4.840000 1.278872 1.279058 +! 2 -4.860000 1.279466 1.279651 +! 2 -4.880000 1.280056 1.280241 +! 2 -4.900000 1.280644 1.280828 +! 2 -4.920000 1.281228 1.281412 +! 2 -4.940000 1.281809 1.281993 +! 2 -4.960000 1.282386 1.282570 +! 2 -4.980000 1.282961 1.283145 +! 2 -5.000000 1.283533 1.283716 +! 2 -5.020000 1.284102 1.284284 +! 2 -5.040000 1.284667 1.284850 +! 2 -5.060000 1.285230 1.285412 +! 2 -5.080000 1.285790 1.285971 +! 2 -5.100000 1.286346 1.286528 +! 2 -5.120000 1.286900 1.287081 +! 2 -5.140000 1.287451 1.287632 +! 2 -5.160000 1.288000 1.288180 +! 2 -5.180000 1.288545 1.288725 +! 2 -5.200000 1.289087 1.289267 +! 2 -5.220000 1.289627 1.289807 +! 2 -5.240000 1.290164 1.290343 +! 2 -5.260000 1.290698 1.290877 +! 2 -5.280000 1.291230 1.291408 +! 2 -5.300000 1.291758 1.291937 +! 2 -5.320000 1.292284 1.292462 +! 2 -5.340000 1.292808 1.292985 +! 2 -5.360000 1.293329 1.293506 +! 2 -5.380000 1.293847 1.294024 +! 2 -5.400000 1.294362 1.294539 +! 2 -5.420000 1.294875 1.295052 +! 2 -5.440000 1.295386 1.295562 +! 2 -5.460000 1.295894 1.296069 +! 2 -5.480000 1.296399 1.296574 +! 2 -5.500000 1.296902 1.297077 +! 2 -5.520000 1.297402 1.297577 +! 2 -5.540000 1.297900 1.298074 +! 2 -5.560000 1.298396 1.298570 +! 2 -5.580000 1.298889 1.299062 +! 2 -5.600000 1.299379 1.299553 +! 2 -5.620000 1.299868 1.300041 +! 2 -5.640000 1.300354 1.300526 +! 2 -5.660000 1.300837 1.301009 +! 2 -5.680000 1.301319 1.301490 +! 2 -5.700000 1.301797 1.301969 +! 2 -5.720000 1.302274 1.302445 +! 2 -5.740000 1.302748 1.302919 +! 2 -5.760000 1.303221 1.303391 +! 2 -5.780000 1.303690 1.303861 +! 2 -5.800000 1.304158 1.304328 +! 2 -5.820000 1.304623 1.304793 +! 2 -5.840000 1.305087 1.305256 +! 2 -5.860000 1.305548 1.305717 +! 2 -5.880000 1.306007 1.306175 +! 2 -5.900000 1.306463 1.306632 +! 2 -5.920000 1.306918 1.307086 +! 2 -5.940000 1.307371 1.307538 +! 2 -5.960000 1.307821 1.307988 +! 2 -5.980000 1.308269 1.308436 +! 2 -6.000000 1.308716 1.308882 +! 2 -6.020000 1.309160 1.309326 +! 2 -6.040000 1.309602 1.309768 +! 2 -6.060000 1.310042 1.310207 +! 2 -6.080000 1.310480 1.310645 +! 2 -6.100000 1.310916 1.311081 +! 2 -6.120000 1.311350 1.311515 +! 2 -6.140000 1.311783 1.311947 +! 2 -6.160000 1.312213 1.312377 +! 2 -6.180000 1.312641 1.312804 +! 2 -6.200000 1.313068 1.313231 +! 2 -6.220000 1.313492 1.313655 +! 2 -6.240000 1.313915 1.314077 +! 2 -6.260000 1.314335 1.314497 +! 2 -6.280000 1.314754 1.314916 +! 2 -6.300000 1.315171 1.315332 +! 2 -6.320000 1.315586 1.315747 +! 2 -6.340000 1.316000 1.316160 +! 2 -6.360000 1.316411 1.316571 +! 2 -6.380000 1.316821 1.316981 +! 2 -6.400000 1.317229 1.317388 +! 2 -6.420000 1.317635 1.317794 +! 2 -6.440000 1.318039 1.318198 +! 2 -6.460000 1.318442 1.318600 +! 2 -6.480000 1.318842 1.319001 +! 2 -6.500000 1.319242 1.319399 +! 2 -6.520000 1.319639 1.319796 +! 2 -6.540000 1.320035 1.320192 +! 2 -6.560000 1.320429 1.320585 +! 2 -6.580000 1.320821 1.320977 +! 2 -6.600000 1.321211 1.321367 +! 2 -6.620000 1.321600 1.321756 +! 2 -6.640000 1.321988 1.322143 +! 2 -6.660000 1.322373 1.322528 +! 2 -6.680000 1.322757 1.322912 +! 2 -6.700000 1.323140 1.323294 +! 2 -6.720000 1.323521 1.323675 +! 2 -6.740000 1.323900 1.324053 +! 2 -6.760000 1.324277 1.324431 +! 2 -6.780000 1.324653 1.324806 +! 2 -6.800000 1.325028 1.325181 +! 2 -6.820000 1.325401 1.325553 +! 2 -6.840000 1.325772 1.325924 +! 2 -6.860000 1.326142 1.326294 +! 2 -6.880000 1.326510 1.326662 +! 2 -6.900000 1.326877 1.327028 +! 2 -6.920000 1.327243 1.327393 +! 2 -6.940000 1.327606 1.327757 +! 2 -6.960000 1.327969 1.328119 +! 2 -6.980000 1.328330 1.328479 +! 2 -7.000000 1.328689 1.328838 +! 2 -7.020000 1.329047 1.329196 +! 2 -7.040000 1.329403 1.329552 +! 2 -7.060000 1.329758 1.329907 +! 2 -7.080000 1.330112 1.330260 +! 2 -7.100000 1.330464 1.330612 +! 2 -7.120000 1.330815 1.330962 +! 2 -7.140000 1.331164 1.331311 +! 2 -7.160000 1.331512 1.331659 +! 2 -7.180000 1.331859 1.332005 +! 2 -7.200000 1.332204 1.332350 +! 2 -7.220000 1.332548 1.332693 +! 2 -7.240000 1.332891 1.333036 +! 2 -7.260000 1.333232 1.333376 +! 2 -7.280000 1.333571 1.333716 +! 2 -7.300000 1.333910 1.334054 +! 2 -7.320000 1.334247 1.334391 +! 2 -7.340000 1.334583 1.334726 +! 2 -7.360000 1.334917 1.335061 +! 2 -7.380000 1.335251 1.335394 +! 2 -7.400000 1.335583 1.335725 +! 2 -7.420000 1.335913 1.336055 +! 2 -7.440000 1.336243 1.336385 +! 2 -7.460000 1.336571 1.336712 +! 2 -7.480000 1.336898 1.337039 +! 2 -7.500000 1.337223 1.337364 +! 2 -7.520000 1.337548 1.337688 +! 2 -7.540000 1.337871 1.338011 +! 2 -7.560000 1.338193 1.338333 +! 2 -7.580000 1.338513 1.338653 +! 2 -7.600000 1.338833 1.338972 +! 2 -7.620000 1.339151 1.339290 +! 2 -7.640000 1.339468 1.339607 +! 2 -7.660000 1.339784 1.339922 +! 2 -7.680000 1.340099 1.340237 +! 2 -7.700000 1.340412 1.340550 +! 2 -7.720000 1.340724 1.340862 +! 2 -7.740000 1.341036 1.341173 +! 2 -7.760000 1.341346 1.341482 +! 2 -7.780000 1.341654 1.341791 +! 2 -7.800000 1.341962 1.342098 +! 2 -7.820000 1.342269 1.342404 +! 2 -7.840000 1.342574 1.342709 +! 2 -7.860000 1.342878 1.343013 +! 2 -7.880000 1.343182 1.343316 +! 2 -7.900000 1.343484 1.343618 +! 2 -7.920000 1.343785 1.343919 +! 2 -7.940000 1.344084 1.344218 +! 2 -7.960000 1.344383 1.344517 +! 2 -7.980000 1.344681 1.344814 +! 2 -8.000000 1.344978 1.345110 +! 2 -8.020000 1.345273 1.345406 +! 2 -8.040000 1.345568 1.345700 +! 2 -8.060000 1.345861 1.345993 +! 2 -8.080000 1.346153 1.346285 +! 2 -8.100000 1.346445 1.346576 +! 2 -8.120000 1.346735 1.346866 +! 2 -8.140000 1.347024 1.347155 +! 2 -8.160000 1.347312 1.347443 +! 2 -8.180000 1.347600 1.347730 +! 2 -8.200000 1.347886 1.348016 +! 2 -8.220000 1.348171 1.348300 +! 2 -8.240000 1.348455 1.348584 +! 2 -8.260000 1.348738 1.348867 +! 2 -8.280000 1.349020 1.349149 +! 2 -8.300000 1.349301 1.349430 +! 2 -8.320000 1.349582 1.349710 +! 2 -8.340000 1.349861 1.349989 +! 2 -8.360000 1.350139 1.350266 +! 2 -8.380000 1.350416 1.350543 +! 2 -8.400000 1.350693 1.350819 +! 2 -8.420000 1.350968 1.351094 +! 2 -8.440000 1.351242 1.351369 +! 2 -8.460000 1.351516 1.351642 +! 2 -8.480000 1.351788 1.351914 +! 2 -8.500000 1.352060 1.352185 +! 2 -8.520000 1.352330 1.352455 +! 2 -8.540000 1.352600 1.352725 +! 2 -8.560000 1.352869 1.352993 +! 2 -8.580000 1.353137 1.353261 +! 2 -8.600000 1.353404 1.353528 +! 2 -8.620000 1.353670 1.353793 +! 2 -8.640000 1.353935 1.354058 +! 2 -8.660000 1.354199 1.354322 +! 2 -8.680000 1.354462 1.354585 +! 2 -8.700000 1.354725 1.354847 +! 2 -8.720000 1.354986 1.355109 +! 2 -8.740000 1.355247 1.355369 +! 2 -8.760000 1.355507 1.355629 +! 2 -8.780000 1.355766 1.355887 +! 2 -8.800000 1.356024 1.356145 +! 2 -8.820000 1.356281 1.356402 +! 2 -8.840000 1.356538 1.356658 +! 2 -8.860000 1.356793 1.356913 +! 2 -8.880000 1.357048 1.357168 +! 2 -8.900000 1.357302 1.357421 +! 2 -8.920000 1.357555 1.357674 +! 2 -8.940000 1.357807 1.357926 +! 2 -8.960000 1.358058 1.358177 +! 2 -8.980000 1.358309 1.358427 +! 2 -9.000000 1.358558 1.358677 +! 2 -9.020000 1.358807 1.358925 +! 2 -9.040000 1.359055 1.359173 +! 2 -9.060000 1.359303 1.359420 +! 2 -9.080000 1.359549 1.359666 +! 2 -9.100000 1.359795 1.359912 +! 2 -9.120000 1.360040 1.360156 +! 2 -9.140000 1.360284 1.360400 +! 2 -9.160000 1.360527 1.360643 +! 2 -9.180000 1.360770 1.360885 +! 2 -9.200000 1.361011 1.361127 +! 2 -9.220000 1.361252 1.361368 +! 2 -9.240000 1.361493 1.361608 +! 2 -9.260000 1.361732 1.361847 +! 2 -9.280000 1.361971 1.362085 +! 2 -9.300000 1.362209 1.362323 +! 2 -9.320000 1.362446 1.362560 +! 2 -9.340000 1.362682 1.362796 +! 2 -9.360000 1.362918 1.363031 +! 2 -9.380000 1.363153 1.363266 +! 2 -9.400000 1.363387 1.363500 +! 2 -9.420000 1.363620 1.363733 +! 2 -9.440000 1.363853 1.363966 +! 2 -9.460000 1.364085 1.364197 +! 2 -9.480000 1.364316 1.364428 +! 2 -9.500000 1.364547 1.364659 +! 2 -9.520000 1.364777 1.364888 +! 2 -9.540000 1.365006 1.365117 +! 2 -9.560000 1.365234 1.365345 +! 2 -9.580000 1.365462 1.365573 +! 2 -9.600000 1.365689 1.365799 +! 2 -9.620000 1.365915 1.366026 +! 2 -9.640000 1.366141 1.366251 +! 2 -9.660000 1.366366 1.366476 +! 2 -9.680000 1.366590 1.366700 +! 2 -9.700000 1.366814 1.366923 +! 2 -9.720000 1.367037 1.367145 +! 2 -9.740000 1.367259 1.367367 +! 2 -9.760000 1.367480 1.367589 +! 2 -9.780000 1.367701 1.367809 +! 2 -9.800000 1.367921 1.368029 +! 2 -9.820000 1.368141 1.368248 +! 2 -9.840000 1.368360 1.368467 +! 2 -9.860000 1.368578 1.368685 +! 2 -9.880000 1.368795 1.368902 +! 2 -9.900000 1.369012 1.369119 +! 2 -9.920000 1.369228 1.369335 +! 2 -9.940000 1.369444 1.369550 +! 2 -9.960000 1.369659 1.369765 +! 2 -9.980000 1.369873 1.369979 +! 2 -10.000000 1.370087 1.370192 +! 2 -10.020000 1.370300 1.370405 +! 2 -10.040000 1.370512 1.370617 +! 2 -10.060000 1.370724 1.370829 +! 2 -10.080000 1.370935 1.371040 +! 2 -10.100000 1.371146 1.371250 +! 2 -10.120000 1.371356 1.371460 +! 2 -10.140000 1.371565 1.371669 +! 2 -10.160000 1.371774 1.371877 +! 2 -10.180000 1.371982 1.372085 +! 2 -10.200000 1.372189 1.372292 +! 2 -10.220000 1.372396 1.372499 +! 2 -10.240000 1.372602 1.372705 +! 2 -10.260000 1.372808 1.372910 +! 2 -10.280000 1.373013 1.373115 +! 2 -10.300000 1.373217 1.373319 +! 2 -10.320000 1.373421 1.373523 +! 2 -10.340000 1.373624 1.373726 +! 2 -10.360000 1.373827 1.373928 +! 2 -10.380000 1.374029 1.374130 +! 2 -10.400000 1.374231 1.374332 +! 2 -10.420000 1.374432 1.374532 +! 2 -10.440000 1.374632 1.374733 +! 2 -10.460000 1.374832 1.374932 +! 2 -10.480000 1.375031 1.375131 +! 2 -10.500000 1.375230 1.375330 +! 2 -10.520000 1.375428 1.375527 +! 2 -10.540000 1.375625 1.375725 +! 2 -10.560000 1.375822 1.375922 +! 2 -10.580000 1.376019 1.376118 +! 2 -10.600000 1.376215 1.376313 +! 2 -10.620000 1.376410 1.376508 +! 2 -10.640000 1.376605 1.376703 +! 2 -10.660000 1.376799 1.376897 +! 2 -10.680000 1.376993 1.377091 +! 2 -10.700000 1.377186 1.377283 +! 2 -10.720000 1.377378 1.377476 +! 2 -10.740000 1.377571 1.377668 +! 2 -10.760000 1.377762 1.377859 +! 2 -10.780000 1.377953 1.378050 +! 2 -10.800000 1.378144 1.378240 +! 2 -10.820000 1.378333 1.378430 +! 2 -10.840000 1.378523 1.378619 +! 2 -10.860000 1.378712 1.378808 +! 2 -10.880000 1.378900 1.378996 +! 2 -10.900000 1.379088 1.379183 +! 2 -10.920000 1.379275 1.379371 +! 2 -10.940000 1.379462 1.379557 +! 2 -10.960000 1.379649 1.379743 +! 2 -10.980000 1.379834 1.379929 +! 2 -11.000000 1.380020 1.380114 +! 2 -11.020000 1.380204 1.380299 +! 2 -11.040000 1.380389 1.380483 +! 2 -11.060000 1.380573 1.380666 +! 2 -11.080000 1.380756 1.380849 +! 2 -11.100000 1.380939 1.381032 +! 2 -11.120000 1.381121 1.381214 +! 2 -11.140000 1.381303 1.381396 +! 2 -11.160000 1.381484 1.381577 +! 2 -11.180000 1.381665 1.381758 +! 2 -11.200000 1.381845 1.381938 +! 2 -11.220000 1.382025 1.382117 +! 2 -11.240000 1.382205 1.382297 +! 2 -11.260000 1.382384 1.382475 +! 2 -11.280000 1.382562 1.382654 +! 2 -11.300000 1.382740 1.382831 +! 2 -11.320000 1.382917 1.383009 +! 2 -11.340000 1.383094 1.383185 +! 2 -11.360000 1.383271 1.383362 +! 2 -11.380000 1.383447 1.383538 +! 2 -11.400000 1.383623 1.383713 +! 2 -11.420000 1.383798 1.383888 +! 2 -11.440000 1.383973 1.384063 +! 2 -11.460000 1.384147 1.384237 +! 2 -11.480000 1.384321 1.384410 +! 2 -11.500000 1.384494 1.384583 +! 2 -11.520000 1.384667 1.384756 +! 2 -11.540000 1.384839 1.384928 +! 2 -11.560000 1.385011 1.385100 +! 2 -11.580000 1.385183 1.385272 +! 2 -11.600000 1.385354 1.385442 +! 2 -11.620000 1.385524 1.385613 +! 2 -11.640000 1.385695 1.385783 +! 2 -11.660000 1.385864 1.385952 +! 2 -11.680000 1.386034 1.386122 +! 2 -11.700000 1.386203 1.386290 +! 2 -11.720000 1.386371 1.386459 +! 2 -11.740000 1.386539 1.386626 +! 2 -11.760000 1.386707 1.386794 +! 2 -11.780000 1.386874 1.386961 +! 2 -11.800000 1.387041 1.387127 +! 2 -11.820000 1.387207 1.387294 +! 2 -11.840000 1.387373 1.387459 +! 2 -11.860000 1.387538 1.387625 +! 2 -11.880000 1.387703 1.387789 +! 2 -11.900000 1.387868 1.387954 +! 2 -11.920000 1.388032 1.388118 +! 2 -11.940000 1.388196 1.388282 +! 2 -11.960000 1.388359 1.388445 +! 2 -11.980000 1.388522 1.388608 + +log derivativve data for plotting, l= 3 +atan(r * ((d psi(r)/dr)/psi(r))), r= 1.21 +l, energy, all-electron, pseudopotential + +! 3 12.000000 -1.509629 -1.492705 +! 3 11.980000 -1.508771 -1.491850 +! 3 11.960000 -1.507910 -1.490992 +! 3 11.940000 -1.507045 -1.490130 +! 3 11.920000 -1.506179 -1.489265 +! 3 11.900000 -1.505309 -1.488397 +! 3 11.880000 -1.504436 -1.487525 +! 3 11.860000 -1.503560 -1.486649 +! 3 11.840000 -1.502681 -1.485771 +! 3 11.820000 -1.501799 -1.484888 +! 3 11.800000 -1.500913 -1.484002 +! 3 11.780000 -1.500025 -1.483113 +! 3 11.760000 -1.499133 -1.482220 +! 3 11.740000 -1.498238 -1.481323 +! 3 11.720000 -1.497340 -1.480422 +! 3 11.700000 -1.496438 -1.479518 +! 3 11.680000 -1.495534 -1.478609 +! 3 11.660000 -1.494625 -1.477697 +! 3 11.640000 -1.493713 -1.476781 +! 3 11.620000 -1.492798 -1.475861 +! 3 11.600000 -1.491879 -1.474937 +! 3 11.580000 -1.490957 -1.474009 +! 3 11.560000 -1.490031 -1.473077 +! 3 11.540000 -1.489101 -1.472141 +! 3 11.520000 -1.488167 -1.471201 +! 3 11.500000 -1.487230 -1.470256 +! 3 11.480000 -1.486289 -1.469307 +! 3 11.460000 -1.485344 -1.468354 +! 3 11.440000 -1.484395 -1.467397 +! 3 11.420000 -1.483443 -1.466435 +! 3 11.400000 -1.482486 -1.465468 +! 3 11.380000 -1.481525 -1.464497 +! 3 11.360000 -1.480560 -1.463522 +! 3 11.340000 -1.479592 -1.462542 +! 3 11.320000 -1.478618 -1.461558 +! 3 11.300000 -1.477641 -1.460568 +! 3 11.280000 -1.476659 -1.459574 +! 3 11.260000 -1.475674 -1.458575 +! 3 11.240000 -1.474683 -1.457572 +! 3 11.220000 -1.473689 -1.456563 +! 3 11.200000 -1.472689 -1.455550 +! 3 11.180000 -1.471686 -1.454531 +! 3 11.160000 -1.470678 -1.453507 +! 3 11.140000 -1.469665 -1.452479 +! 3 11.120000 -1.468647 -1.451445 +! 3 11.100000 -1.467625 -1.450406 +! 3 11.080000 -1.466598 -1.449361 +! 3 11.060000 -1.465566 -1.448312 +! 3 11.040000 -1.464529 -1.447257 +! 3 11.020000 -1.463487 -1.446196 +! 3 11.000000 -1.462441 -1.445130 +! 3 10.980000 -1.461389 -1.444058 +! 3 10.960000 -1.460332 -1.442981 +! 3 10.940000 -1.459270 -1.441898 +! 3 10.920000 -1.458202 -1.440809 +! 3 10.900000 -1.457130 -1.439715 +! 3 10.880000 -1.456052 -1.438614 +! 3 10.860000 -1.454968 -1.437508 +! 3 10.840000 -1.453880 -1.436395 +! 3 10.820000 -1.452785 -1.435277 +! 3 10.800000 -1.451685 -1.434152 +! 3 10.780000 -1.450579 -1.433021 +! 3 10.760000 -1.449468 -1.431884 +! 3 10.740000 -1.448351 -1.430740 +! 3 10.720000 -1.447227 -1.429590 +! 3 10.700000 -1.446098 -1.428434 +! 3 10.680000 -1.444963 -1.427271 +! 3 10.660000 -1.443822 -1.426101 +! 3 10.640000 -1.442675 -1.424925 +! 3 10.620000 -1.441521 -1.423742 +! 3 10.600000 -1.440362 -1.422552 +! 3 10.580000 -1.439196 -1.421355 +! 3 10.560000 -1.438023 -1.420150 +! 3 10.540000 -1.436844 -1.418939 +! 3 10.520000 -1.435658 -1.417721 +! 3 10.500000 -1.434466 -1.416495 +! 3 10.480000 -1.433267 -1.415263 +! 3 10.460000 -1.432061 -1.414022 +! 3 10.440000 -1.430848 -1.412774 +! 3 10.420000 -1.429629 -1.411519 +! 3 10.400000 -1.428402 -1.410256 +! 3 10.380000 -1.427168 -1.408985 +! 3 10.360000 -1.425927 -1.407706 +! 3 10.340000 -1.424679 -1.406419 +! 3 10.320000 -1.423423 -1.405125 +! 3 10.300000 -1.422160 -1.403822 +! 3 10.280000 -1.420889 -1.402511 +! 3 10.260000 -1.419611 -1.401191 +! 3 10.240000 -1.418325 -1.399864 +! 3 10.220000 -1.417031 -1.398527 +! 3 10.200000 -1.415729 -1.397182 +! 3 10.180000 -1.414419 -1.395829 +! 3 10.160000 -1.413101 -1.394466 +! 3 10.140000 -1.411775 -1.393095 +! 3 10.120000 -1.410441 -1.391715 +! 3 10.100000 -1.409098 -1.390325 +! 3 10.080000 -1.407747 -1.388926 +! 3 10.060000 -1.406387 -1.387518 +! 3 10.040000 -1.405018 -1.386101 +! 3 10.020000 -1.403641 -1.384674 +! 3 10.000000 -1.402255 -1.383237 +! 3 9.980000 -1.400859 -1.381791 +! 3 9.960000 -1.399455 -1.380334 +! 3 9.940000 -1.398041 -1.378868 +! 3 9.920000 -1.396619 -1.377392 +! 3 9.900000 -1.395186 -1.375905 +! 3 9.880000 -1.393744 -1.374408 +! 3 9.860000 -1.392293 -1.372900 +! 3 9.840000 -1.390831 -1.371382 +! 3 9.820000 -1.389360 -1.369853 +! 3 9.800000 -1.387879 -1.368313 +! 3 9.780000 -1.386387 -1.366762 +! 3 9.760000 -1.384886 -1.365200 +! 3 9.740000 -1.383374 -1.363627 +! 3 9.720000 -1.381851 -1.362042 +! 3 9.700000 -1.380318 -1.360446 +! 3 9.680000 -1.378774 -1.358838 +! 3 9.660000 -1.377219 -1.357218 +! 3 9.640000 -1.375652 -1.355586 +! 3 9.620000 -1.374075 -1.353942 +! 3 9.600000 -1.372487 -1.352286 +! 3 9.580000 -1.370887 -1.350618 +! 3 9.560000 -1.369275 -1.348936 +! 3 9.540000 -1.367652 -1.347242 +! 3 9.520000 -1.366016 -1.345536 +! 3 9.500000 -1.364369 -1.343816 +! 3 9.480000 -1.362709 -1.342082 +! 3 9.460000 -1.361037 -1.340336 +! 3 9.440000 -1.359353 -1.338576 +! 3 9.420000 -1.357656 -1.336802 +! 3 9.400000 -1.355946 -1.335014 +! 3 9.380000 -1.354223 -1.333212 +! 3 9.360000 -1.352487 -1.331396 +! 3 9.340000 -1.350738 -1.329566 +! 3 9.320000 -1.348975 -1.327721 +! 3 9.300000 -1.347198 -1.325861 +! 3 9.280000 -1.345408 -1.323986 +! 3 9.260000 -1.343603 -1.322096 +! 3 9.240000 -1.341785 -1.320190 +! 3 9.220000 -1.339951 -1.318269 +! 3 9.200000 -1.338104 -1.316332 +! 3 9.180000 -1.336241 -1.314379 +! 3 9.160000 -1.334364 -1.312410 +! 3 9.140000 -1.332472 -1.310424 +! 3 9.120000 -1.330564 -1.308422 +! 3 9.100000 -1.328640 -1.306403 +! 3 9.080000 -1.326701 -1.304367 +! 3 9.060000 -1.324746 -1.302313 +! 3 9.040000 -1.322774 -1.300242 +! 3 9.020000 -1.320787 -1.298154 +! 3 9.000000 -1.318782 -1.296047 +! 3 8.980000 -1.316761 -1.293922 +! 3 8.960000 -1.314723 -1.291778 +! 3 8.940000 -1.312667 -1.289616 +! 3 8.920000 -1.310594 -1.287435 +! 3 8.900000 -1.308503 -1.285234 +! 3 8.880000 -1.306394 -1.283014 +! 3 8.860000 -1.304267 -1.280775 +! 3 8.840000 -1.302121 -1.278515 +! 3 8.820000 -1.299957 -1.276235 +! 3 8.800000 -1.297774 -1.273934 +! 3 8.780000 -1.295571 -1.271613 +! 3 8.760000 -1.293349 -1.269270 +! 3 8.740000 -1.291107 -1.266906 +! 3 8.720000 -1.288845 -1.264520 +! 3 8.700000 -1.286562 -1.262112 +! 3 8.680000 -1.284259 -1.259682 +! 3 8.660000 -1.281935 -1.257229 +! 3 8.640000 -1.279590 -1.254753 +! 3 8.620000 -1.277223 -1.252253 +! 3 8.600000 -1.274835 -1.249730 +! 3 8.580000 -1.272424 -1.247184 +! 3 8.560000 -1.269991 -1.244612 +! 3 8.540000 -1.267535 -1.242017 +! 3 8.520000 -1.265056 -1.239396 +! 3 8.500000 -1.262554 -1.236750 +! 3 8.480000 -1.260028 -1.234078 +! 3 8.460000 -1.257478 -1.231380 +! 3 8.440000 -1.254903 -1.228656 +! 3 8.420000 -1.252304 -1.225904 +! 3 8.400000 -1.249679 -1.223126 +! 3 8.380000 -1.247029 -1.220320 +! 3 8.360000 -1.244353 -1.217486 +! 3 8.340000 -1.241651 -1.214623 +! 3 8.320000 -1.238923 -1.211732 +! 3 8.300000 -1.236167 -1.208812 +! 3 8.280000 -1.233384 -1.205861 +! 3 8.260000 -1.230573 -1.202881 +! 3 8.240000 -1.227734 -1.199870 +! 3 8.220000 -1.224866 -1.196829 +! 3 8.200000 -1.221969 -1.193755 +! 3 8.180000 -1.219043 -1.190650 +! 3 8.160000 -1.216087 -1.187513 +! 3 8.140000 -1.213100 -1.184342 +! 3 8.120000 -1.210083 -1.181138 +! 3 8.100000 -1.207034 -1.177901 +! 3 8.080000 -1.203953 -1.174629 +! 3 8.060000 -1.200841 -1.171322 +! 3 8.040000 -1.197696 -1.167980 +! 3 8.020000 -1.194517 -1.164602 +! 3 8.000000 -1.191305 -1.161187 +! 3 7.980000 -1.188058 -1.157736 +! 3 7.960000 -1.184777 -1.154247 +! 3 7.940000 -1.181461 -1.150720 +! 3 7.920000 -1.178109 -1.147154 +! 3 7.900000 -1.174720 -1.143549 +! 3 7.880000 -1.171295 -1.139904 +! 3 7.860000 -1.167832 -1.136219 +! 3 7.840000 -1.164331 -1.132492 +! 3 7.820000 -1.160792 -1.128724 +! 3 7.800000 -1.157213 -1.124914 +! 3 7.780000 -1.153595 -1.121061 +! 3 7.760000 -1.149936 -1.117164 +! 3 7.740000 -1.146237 -1.113222 +! 3 7.720000 -1.142495 -1.109236 +! 3 7.700000 -1.138712 -1.105205 +! 3 7.680000 -1.134885 -1.101127 +! 3 7.660000 -1.131015 -1.097002 +! 3 7.640000 -1.127100 -1.092829 +! 3 7.620000 -1.123141 -1.088608 +! 3 7.600000 -1.119136 -1.084337 +! 3 7.580000 -1.115084 -1.080017 +! 3 7.560000 -1.110986 -1.075646 +! 3 7.540000 -1.106839 -1.071224 +! 3 7.520000 -1.102644 -1.066749 +! 3 7.500000 -1.098400 -1.062222 +! 3 7.480000 -1.094106 -1.057640 +! 3 7.460000 -1.089761 -1.053004 +! 3 7.440000 -1.085364 -1.048313 +! 3 7.420000 -1.080915 -1.043565 +! 3 7.400000 -1.076413 -1.038760 +! 3 7.380000 -1.071856 -1.033897 +! 3 7.360000 -1.067245 -1.028976 +! 3 7.340000 -1.062578 -1.023994 +! 3 7.320000 -1.057854 -1.018952 +! 3 7.300000 -1.053073 -1.013849 +! 3 7.280000 -1.048234 -1.008683 +! 3 7.260000 -1.043335 -1.003454 +! 3 7.240000 -1.038377 -0.998161 +! 3 7.220000 -1.033357 -0.992803 +! 3 7.200000 -1.028275 -0.987378 +! 3 7.180000 -1.023131 -0.981887 +! 3 7.160000 -1.017922 -0.976327 +! 3 7.140000 -1.012649 -0.970699 +! 3 7.120000 -1.007310 -0.965000 +! 3 7.100000 -1.001904 -0.959231 +! 3 7.080000 -0.996431 -0.953390 +! 3 7.060000 -0.990889 -0.947476 +! 3 7.040000 -0.985277 -0.941487 +! 3 7.020000 -0.979594 -0.935424 +! 3 7.000000 -0.973839 -0.929286 +! 3 6.980000 -0.968012 -0.923070 +! 3 6.960000 -0.962111 -0.916776 +! 3 6.940000 -0.956135 -0.910403 +! 3 6.920000 -0.950083 -0.903951 +! 3 6.900000 -0.943953 -0.897417 +! 3 6.880000 -0.937746 -0.890801 +! 3 6.860000 -0.931460 -0.884102 +! 3 6.840000 -0.925093 -0.877319 +! 3 6.820000 -0.918645 -0.870452 +! 3 6.800000 -0.912115 -0.863498 +! 3 6.780000 -0.905501 -0.856457 +! 3 6.760000 -0.898802 -0.849328 +! 3 6.740000 -0.892018 -0.842110 +! 3 6.720000 -0.885147 -0.834801 +! 3 6.700000 -0.878189 -0.827403 +! 3 6.680000 -0.871141 -0.819912 +! 3 6.660000 -0.864004 -0.812328 +! 3 6.640000 -0.856776 -0.804651 +! 3 6.620000 -0.849455 -0.796879 +! 3 6.600000 -0.842042 -0.789011 +! 3 6.580000 -0.834535 -0.781048 +! 3 6.560000 -0.826932 -0.772987 +! 3 6.540000 -0.819234 -0.764828 +! 3 6.520000 -0.811438 -0.756571 +! 3 6.500000 -0.803544 -0.748214 +! 3 6.480000 -0.795552 -0.739758 +! 3 6.460000 -0.787460 -0.731201 +! 3 6.440000 -0.779267 -0.722542 +! 3 6.420000 -0.770973 -0.713782 +! 3 6.400000 -0.762576 -0.704919 +! 3 6.380000 -0.754076 -0.695954 +! 3 6.360000 -0.745473 -0.686886 +! 3 6.340000 -0.736765 -0.677714 +! 3 6.320000 -0.727952 -0.668439 +! 3 6.300000 -0.719033 -0.659059 +! 3 6.280000 -0.710008 -0.649576 +! 3 6.260000 -0.700877 -0.639988 +! 3 6.240000 -0.691638 -0.630296 +! 3 6.220000 -0.682292 -0.620500 +! 3 6.200000 -0.672837 -0.610600 +! 3 6.180000 -0.663275 -0.600597 +! 3 6.160000 -0.653605 -0.590490 +! 3 6.140000 -0.643826 -0.580280 +! 3 6.120000 -0.633939 -0.569968 +! 3 6.100000 -0.623944 -0.559554 +! 3 6.080000 -0.613841 -0.549039 +! 3 6.060000 -0.603630 -0.538423 +! 3 6.040000 -0.593312 -0.527709 +! 3 6.020000 -0.582886 -0.516896 +! 3 6.000000 -0.572355 -0.505985 +! 3 5.980000 -0.561717 -0.494979 +! 3 5.960000 -0.550975 -0.483878 +! 3 5.940000 -0.540128 -0.472684 +! 3 5.920000 -0.529178 -0.461398 +! 3 5.900000 -0.518126 -0.450023 +! 3 5.880000 -0.506974 -0.438559 +! 3 5.860000 -0.495722 -0.427010 +! 3 5.840000 -0.484372 -0.415376 +! 3 5.820000 -0.472925 -0.403661 +! 3 5.800000 -0.461384 -0.391866 +! 3 5.780000 -0.449750 -0.379994 +! 3 5.760000 -0.438025 -0.368048 +! 3 5.740000 -0.426212 -0.356030 +! 3 5.720000 -0.414312 -0.343942 +! 3 5.700000 -0.402327 -0.331789 +! 3 5.680000 -0.390262 -0.319572 +! 3 5.660000 -0.378117 -0.307295 +! 3 5.640000 -0.365896 -0.294962 +! 3 5.620000 -0.353601 -0.282575 +! 3 5.600000 -0.341236 -0.270137 +! 3 5.580000 -0.328804 -0.257653 +! 3 5.560000 -0.316308 -0.245126 +! 3 5.540000 -0.303752 -0.232560 +! 3 5.520000 -0.291138 -0.219957 +! 3 5.500000 -0.278470 -0.207323 +! 3 5.480000 -0.265753 -0.194661 +! 3 5.460000 -0.252989 -0.181975 +! 3 5.440000 -0.240183 -0.169268 +! 3 5.420000 -0.227339 -0.156545 +! 3 5.400000 -0.214460 -0.143810 +! 3 5.380000 -0.201551 -0.131067 +! 3 5.360000 -0.188616 -0.118320 +! 3 5.340000 -0.175658 -0.105573 +! 3 5.320000 -0.162683 -0.092830 +! 3 5.300000 -0.149694 -0.080095 +! 3 5.280000 -0.136696 -0.067372 +! 3 5.260000 -0.123692 -0.054665 +! 3 5.240000 -0.110688 -0.041979 +! 3 5.220000 -0.097688 -0.029316 +! 3 5.200000 -0.084696 -0.016682 +! 3 5.180000 -0.071716 -0.004079 +! 3 5.160000 -0.058752 0.008487 +! 3 5.140000 -0.045809 0.021015 +! 3 5.120000 -0.032892 0.033499 +! 3 5.100000 -0.020003 0.045936 +! 3 5.080000 -0.007147 0.058324 +! 3 5.060000 0.005671 0.070657 +! 3 5.040000 0.018448 0.082934 +! 3 5.020000 0.031181 0.095151 +! 3 5.000000 0.043864 0.107305 +! 3 4.980000 0.056495 0.119392 +! 3 4.960000 0.069070 0.131410 +! 3 4.940000 0.081585 0.143356 +! 3 4.920000 0.094037 0.155228 +! 3 4.900000 0.106422 0.167022 +! 3 4.880000 0.118739 0.178737 +! 3 4.860000 0.130982 0.190370 +! 3 4.840000 0.143150 0.201919 +! 3 4.820000 0.155240 0.213382 +! 3 4.800000 0.167249 0.224756 +! 3 4.780000 0.179175 0.236041 +! 3 4.760000 0.191014 0.247233 +! 3 4.740000 0.202766 0.258333 +! 3 4.720000 0.214427 0.269337 +! 3 4.700000 0.225995 0.280246 +! 3 4.680000 0.237470 0.291057 +! 3 4.660000 0.248848 0.301769 +! 3 4.640000 0.260128 0.312382 +! 3 4.620000 0.271309 0.322895 +! 3 4.600000 0.282390 0.333306 +! 3 4.580000 0.293369 0.343615 +! 3 4.560000 0.304244 0.353821 +! 3 4.540000 0.315016 0.363924 +! 3 4.520000 0.325682 0.373924 +! 3 4.500000 0.336243 0.383819 +! 3 4.480000 0.346697 0.393611 +! 3 4.460000 0.357044 0.403298 +! 3 4.440000 0.367283 0.412880 +! 3 4.420000 0.377415 0.422358 +! 3 4.400000 0.387438 0.431732 +! 3 4.380000 0.397352 0.441001 +! 3 4.360000 0.407158 0.450167 +! 3 4.340000 0.416856 0.459228 +! 3 4.320000 0.426445 0.468186 +! 3 4.300000 0.435925 0.477041 +! 3 4.280000 0.445297 0.485794 +! 3 4.260000 0.454561 0.494444 +! 3 4.240000 0.463718 0.502993 +! 3 4.220000 0.472767 0.511441 +! 3 4.200000 0.481709 0.519788 +! 3 4.180000 0.490545 0.528036 +! 3 4.160000 0.499276 0.536185 +! 3 4.140000 0.507901 0.544235 +! 3 4.120000 0.516422 0.552188 +! 3 4.100000 0.524840 0.560045 +! 3 4.080000 0.533154 0.567805 +! 3 4.060000 0.541366 0.575471 +! 3 4.040000 0.549477 0.583043 +! 3 4.020000 0.557487 0.590521 +! 3 4.000000 0.565398 0.597907 +! 3 3.980000 0.573210 0.605202 +! 3 3.960000 0.580925 0.612406 +! 3 3.940000 0.588542 0.619521 +! 3 3.920000 0.596064 0.626548 +! 3 3.900000 0.603491 0.633487 +! 3 3.880000 0.610824 0.640340 +! 3 3.860000 0.618064 0.647107 +! 3 3.840000 0.625213 0.653790 +! 3 3.820000 0.632271 0.660389 +! 3 3.800000 0.639239 0.666906 +! 3 3.780000 0.646119 0.673342 +! 3 3.760000 0.652911 0.679697 +! 3 3.740000 0.659617 0.685973 +! 3 3.720000 0.666238 0.692170 +! 3 3.700000 0.672774 0.698291 +! 3 3.680000 0.679227 0.704335 +! 3 3.660000 0.685598 0.710303 +! 3 3.640000 0.691888 0.716197 +! 3 3.620000 0.698097 0.722018 +! 3 3.600000 0.704229 0.727767 +! 3 3.580000 0.710282 0.733444 +! 3 3.560000 0.716258 0.739051 +! 3 3.540000 0.722159 0.744589 +! 3 3.520000 0.727985 0.750058 +! 3 3.500000 0.733738 0.755460 +! 3 3.480000 0.739418 0.760795 +! 3 3.460000 0.745026 0.766065 +! 3 3.440000 0.750564 0.771271 +! 3 3.420000 0.756032 0.776412 +! 3 3.400000 0.761432 0.781491 +! 3 3.380000 0.766765 0.786508 +! 3 3.360000 0.772030 0.791464 +! 3 3.340000 0.777231 0.796359 +! 3 3.320000 0.782367 0.801196 +! 3 3.300000 0.787439 0.805974 +! 3 3.280000 0.792448 0.810695 +! 3 3.260000 0.797396 0.815359 +! 3 3.240000 0.802282 0.819967 +! 3 3.220000 0.807109 0.824521 +! 3 3.200000 0.811877 0.829020 +! 3 3.180000 0.816587 0.833466 +! 3 3.160000 0.821239 0.837859 +! 3 3.140000 0.825835 0.842200 +! 3 3.120000 0.830375 0.846490 +! 3 3.100000 0.834861 0.850730 +! 3 3.080000 0.839292 0.854920 +! 3 3.060000 0.843671 0.859062 +! 3 3.040000 0.847997 0.863155 +! 3 3.020000 0.852272 0.867201 +! 3 3.000000 0.856495 0.871201 +! 3 2.980000 0.860669 0.875154 +! 3 2.960000 0.864794 0.879062 +! 3 2.940000 0.868870 0.882926 +! 3 2.920000 0.872899 0.886745 +! 3 2.900000 0.876880 0.890521 +! 3 2.880000 0.880815 0.894254 +! 3 2.860000 0.884705 0.897946 +! 3 2.840000 0.888550 0.901596 +! 3 2.820000 0.892350 0.905205 +! 3 2.800000 0.896107 0.908774 +! 3 2.780000 0.899820 0.912303 +! 3 2.760000 0.903492 0.915793 +! 3 2.740000 0.907122 0.919245 +! 3 2.720000 0.910711 0.922658 +! 3 2.700000 0.914259 0.926035 +! 3 2.680000 0.917768 0.929374 +! 3 2.660000 0.921237 0.932677 +! 3 2.640000 0.924668 0.935945 +! 3 2.620000 0.928061 0.939177 +! 3 2.600000 0.931416 0.942375 +! 3 2.580000 0.934734 0.945538 +! 3 2.560000 0.938016 0.948668 +! 3 2.540000 0.941262 0.951764 +! 3 2.520000 0.944473 0.954828 +! 3 2.500000 0.947649 0.957859 +! 3 2.480000 0.950790 0.960859 +! 3 2.460000 0.953898 0.963827 +! 3 2.440000 0.956973 0.966764 +! 3 2.420000 0.960015 0.969670 +! 3 2.400000 0.963024 0.972547 +! 3 2.380000 0.966001 0.975394 +! 3 2.360000 0.968948 0.978212 +! 3 2.340000 0.971863 0.981001 +! 3 2.320000 0.974747 0.983762 +! 3 2.300000 0.977602 0.986494 +! 3 2.280000 0.980427 0.989199 +! 3 2.260000 0.983223 0.991877 +! 3 2.240000 0.985990 0.994528 +! 3 2.220000 0.988728 0.997153 +! 3 2.200000 0.991439 0.999751 +! 3 2.180000 0.994122 1.002324 +! 3 2.160000 0.996778 1.004871 +! 3 2.140000 0.999407 1.007393 +! 3 2.120000 1.002009 1.009891 +! 3 2.100000 1.004586 1.012364 +! 3 2.080000 1.007137 1.014813 +! 3 2.060000 1.009662 1.017239 +! 3 2.040000 1.012163 1.019641 +! 3 2.020000 1.014639 1.022020 +! 3 2.000000 1.017090 1.024376 +! 3 1.980000 1.019518 1.026710 +! 3 1.960000 1.021922 1.029022 +! 3 1.940000 1.024303 1.031312 +! 3 1.920000 1.026660 1.033580 +! 3 1.900000 1.028995 1.035827 +! 3 1.880000 1.031308 1.038053 +! 3 1.860000 1.033598 1.040259 +! 3 1.840000 1.035867 1.042444 +! 3 1.820000 1.038114 1.044608 +! 3 1.800000 1.040340 1.046753 +! 3 1.780000 1.042546 1.048879 +! 3 1.760000 1.044730 1.050984 +! 3 1.740000 1.046894 1.053071 +! 3 1.720000 1.049039 1.055139 +! 3 1.700000 1.051163 1.057188 +! 3 1.680000 1.053268 1.059219 +! 3 1.660000 1.055353 1.061232 +! 3 1.640000 1.057419 1.063226 +! 3 1.620000 1.059467 1.065203 +! 3 1.600000 1.061496 1.067163 +! 3 1.580000 1.063507 1.069105 +! 3 1.560000 1.065499 1.071030 +! 3 1.540000 1.067474 1.072939 +! 3 1.520000 1.069431 1.074830 +! 3 1.500000 1.071371 1.076706 +! 3 1.480000 1.073294 1.078565 +! 3 1.460000 1.075199 1.080408 +! 3 1.440000 1.077088 1.082235 +! 3 1.420000 1.078961 1.084047 +! 3 1.400000 1.080817 1.085843 +! 3 1.380000 1.082657 1.087624 +! 3 1.360000 1.084481 1.089390 +! 3 1.340000 1.086289 1.091142 +! 3 1.320000 1.088082 1.092878 +! 3 1.300000 1.089860 1.094600 +! 3 1.280000 1.091622 1.096308 +! 3 1.260000 1.093369 1.098001 +! 3 1.240000 1.095102 1.099681 +! 3 1.220000 1.096820 1.101346 +! 3 1.200000 1.098524 1.102999 +! 3 1.180000 1.100213 1.104637 +! 3 1.160000 1.101889 1.106262 +! 3 1.140000 1.103550 1.107874 +! 3 1.120000 1.105198 1.109474 +! 3 1.100000 1.106832 1.111060 +! 3 1.080000 1.108453 1.112633 +! 3 1.060000 1.110061 1.114194 +! 3 1.040000 1.111656 1.115743 +! 3 1.020000 1.113237 1.117279 +! 3 1.000000 1.114806 1.118803 +! 3 0.980000 1.116362 1.120315 +! 3 0.960000 1.117906 1.121815 +! 3 0.940000 1.119438 1.123304 +! 3 0.920000 1.120957 1.124781 +! 3 0.900000 1.122464 1.126246 +! 3 0.880000 1.123960 1.127701 +! 3 0.860000 1.125443 1.129144 +! 3 0.840000 1.126915 1.130576 +! 3 0.820000 1.128376 1.131997 +! 3 0.800000 1.129825 1.133407 +! 3 0.780000 1.131263 1.134806 +! 3 0.760000 1.132690 1.136195 +! 3 0.740000 1.134105 1.137573 +! 3 0.720000 1.135510 1.138942 +! 3 0.700000 1.136905 1.140299 +! 3 0.680000 1.138288 1.141647 +! 3 0.660000 1.139662 1.142985 +! 3 0.640000 1.141024 1.144313 +! 3 0.620000 1.142377 1.145631 +! 3 0.600000 1.143719 1.146939 +! 3 0.580000 1.145052 1.148238 +! 3 0.560000 1.146374 1.149527 +! 3 0.540000 1.147687 1.150807 +! 3 0.520000 1.148990 1.152078 +! 3 0.500000 1.150283 1.153339 +! 3 0.480000 1.151567 1.154592 +! 3 0.460000 1.152841 1.155835 +! 3 0.440000 1.154107 1.157069 +! 3 0.420000 1.155363 1.158295 +! 3 0.400000 1.156610 1.159512 +! 3 0.380000 1.157847 1.160721 +! 3 0.360000 1.159076 1.161921 +! 3 0.340000 1.160297 1.163112 +! 3 0.320000 1.161508 1.164295 +! 3 0.300000 1.162711 1.165470 +! 3 0.280000 1.163906 1.166637 +! 3 0.260000 1.165091 1.167796 +! 3 0.240000 1.166269 1.168946 +! 3 0.220000 1.167438 1.170089 +! 3 0.200000 1.168600 1.171224 +! 3 0.180000 1.169753 1.172351 +! 3 0.160000 1.170898 1.173470 +! 3 0.140000 1.172035 1.174582 +! 3 0.120000 1.173164 1.175687 +! 3 0.100000 1.174286 1.176783 +! 3 0.080000 1.175400 1.177873 +! 3 0.060000 1.176506 1.178955 +! 3 0.040000 1.177605 1.180030 +! 3 0.020000 1.178696 1.181098 +! 3 0.000000 1.179780 1.182159 +! 3 -0.020000 1.180857 1.183212 +! 3 -0.040000 1.181926 1.184259 +! 3 -0.060000 1.182988 1.185299 +! 3 -0.080000 1.184044 1.186332 +! 3 -0.100000 1.185092 1.187359 +! 3 -0.120000 1.186133 1.188378 +! 3 -0.140000 1.187167 1.189391 +! 3 -0.160000 1.188195 1.190398 +! 3 -0.180000 1.189216 1.191398 +! 3 -0.200000 1.190230 1.192391 +! 3 -0.220000 1.191238 1.193379 +! 3 -0.240000 1.192239 1.194360 +! 3 -0.260000 1.193233 1.195334 +! 3 -0.280000 1.194221 1.196303 +! 3 -0.300000 1.195203 1.197265 +! 3 -0.320000 1.196179 1.198222 +! 3 -0.340000 1.197148 1.199172 +! 3 -0.360000 1.198111 1.200117 +! 3 -0.380000 1.199068 1.201055 +! 3 -0.400000 1.200019 1.201988 +! 3 -0.420000 1.200964 1.202915 +! 3 -0.440000 1.201903 1.203836 +! 3 -0.460000 1.202836 1.204751 +! 3 -0.480000 1.203763 1.205661 +! 3 -0.500000 1.204685 1.206565 +! 3 -0.520000 1.205601 1.207464 +! 3 -0.540000 1.206511 1.208357 +! 3 -0.560000 1.207415 1.209245 +! 3 -0.580000 1.208314 1.210128 +! 3 -0.600000 1.209208 1.211005 +! 3 -0.620000 1.210096 1.211877 +! 3 -0.640000 1.210978 1.212744 +! 3 -0.660000 1.211855 1.213605 +! 3 -0.680000 1.212727 1.214462 +! 3 -0.700000 1.213594 1.215313 +! 3 -0.720000 1.214456 1.216159 +! 3 -0.740000 1.215312 1.217000 +! 3 -0.760000 1.216163 1.217837 +! 3 -0.780000 1.217009 1.218668 +! 3 -0.800000 1.217850 1.219495 +! 3 -0.820000 1.218686 1.220316 +! 3 -0.840000 1.219517 1.221133 +! 3 -0.860000 1.220344 1.221946 +! 3 -0.880000 1.221165 1.222753 +! 3 -0.900000 1.221982 1.223556 +! 3 -0.920000 1.222794 1.224354 +! 3 -0.940000 1.223601 1.225148 +! 3 -0.960000 1.224403 1.225937 +! 3 -0.980000 1.225201 1.226722 +! 3 -1.000000 1.225994 1.227502 +! 3 -1.020000 1.226783 1.228278 +! 3 -1.040000 1.227567 1.229049 +! 3 -1.060000 1.228347 1.229816 +! 3 -1.080000 1.229122 1.230579 +! 3 -1.100000 1.229893 1.231338 +! 3 -1.120000 1.230659 1.232092 +! 3 -1.140000 1.231421 1.232842 +! 3 -1.160000 1.232179 1.233588 +! 3 -1.180000 1.232933 1.234330 +! 3 -1.200000 1.233682 1.235067 +! 3 -1.220000 1.234427 1.235801 +! 3 -1.240000 1.235168 1.236531 +! 3 -1.260000 1.235905 1.237256 +! 3 -1.280000 1.236638 1.237978 +! 3 -1.300000 1.237367 1.238696 +! 3 -1.320000 1.238092 1.239409 +! 3 -1.340000 1.238813 1.240119 +! 3 -1.360000 1.239530 1.240826 +! 3 -1.380000 1.240243 1.241528 +! 3 -1.400000 1.240952 1.242227 +! 3 -1.420000 1.241657 1.242921 +! 3 -1.440000 1.242358 1.243613 +! 3 -1.460000 1.243056 1.244300 +! 3 -1.480000 1.243750 1.244984 +! 3 -1.500000 1.244440 1.245664 +! 3 -1.520000 1.245127 1.246341 +! 3 -1.540000 1.245810 1.247014 +! 3 -1.560000 1.246489 1.247684 +! 3 -1.580000 1.247165 1.248350 +! 3 -1.600000 1.247837 1.249012 +! 3 -1.620000 1.248505 1.249671 +! 3 -1.640000 1.249170 1.250327 +! 3 -1.660000 1.249832 1.250979 +! 3 -1.680000 1.250490 1.251628 +! 3 -1.700000 1.251144 1.252274 +! 3 -1.720000 1.251796 1.252916 +! 3 -1.740000 1.252444 1.253555 +! 3 -1.760000 1.253088 1.254191 +! 3 -1.780000 1.253729 1.254824 +! 3 -1.800000 1.254367 1.255453 +! 3 -1.820000 1.255002 1.256079 +! 3 -1.840000 1.255633 1.256702 +! 3 -1.860000 1.256261 1.257322 +! 3 -1.880000 1.256886 1.257939 +! 3 -1.900000 1.257508 1.258553 +! 3 -1.920000 1.258127 1.259163 +! 3 -1.940000 1.258742 1.259771 +! 3 -1.960000 1.259355 1.260375 +! 3 -1.980000 1.259964 1.260977 +! 3 -2.000000 1.260571 1.261575 +! 3 -2.020000 1.261174 1.262171 +! 3 -2.040000 1.261774 1.262764 +! 3 -2.060000 1.262372 1.263354 +! 3 -2.080000 1.262966 1.263940 +! 3 -2.100000 1.263557 1.264525 +! 3 -2.120000 1.264146 1.265106 +! 3 -2.140000 1.264732 1.265684 +! 3 -2.160000 1.265314 1.266260 +! 3 -2.180000 1.265894 1.266833 +! 3 -2.200000 1.266471 1.267403 +! 3 -2.220000 1.267046 1.267970 +! 3 -2.240000 1.267617 1.268535 +! 3 -2.260000 1.268186 1.269097 +! 3 -2.280000 1.268752 1.269656 +! 3 -2.300000 1.269315 1.270212 +! 3 -2.320000 1.269876 1.270766 +! 3 -2.340000 1.270434 1.271318 +! 3 -2.360000 1.270989 1.271866 +! 3 -2.380000 1.271542 1.272413 +! 3 -2.400000 1.272092 1.272956 +! 3 -2.420000 1.272639 1.273497 +! 3 -2.440000 1.273184 1.274036 +! 3 -2.460000 1.273726 1.274572 +! 3 -2.480000 1.274266 1.275105 +! 3 -2.500000 1.274803 1.275636 +! 3 -2.520000 1.275338 1.276165 +! 3 -2.540000 1.275870 1.276691 +! 3 -2.560000 1.276400 1.277215 +! 3 -2.580000 1.276927 1.277736 +! 3 -2.600000 1.277452 1.278255 +! 3 -2.620000 1.277974 1.278772 +! 3 -2.640000 1.278494 1.279286 +! 3 -2.660000 1.279011 1.279798 +! 3 -2.680000 1.279527 1.280307 +! 3 -2.700000 1.280039 1.280815 +! 3 -2.720000 1.280550 1.281320 +! 3 -2.740000 1.281058 1.281822 +! 3 -2.760000 1.281564 1.282323 +! 3 -2.780000 1.282068 1.282821 +! 3 -2.800000 1.282569 1.283317 +! 3 -2.820000 1.283068 1.283811 +! 3 -2.840000 1.283565 1.284302 +! 3 -2.860000 1.284059 1.284792 +! 3 -2.880000 1.284552 1.285279 +! 3 -2.900000 1.285042 1.285764 +! 3 -2.920000 1.285530 1.286247 +! 3 -2.940000 1.286016 1.286728 +! 3 -2.960000 1.286500 1.287207 +! 3 -2.980000 1.286981 1.287683 +! 3 -3.000000 1.287461 1.288158 +! 3 -3.020000 1.287938 1.288631 +! 3 -3.040000 1.288413 1.289101 +! 3 -3.060000 1.288886 1.289569 +! 3 -3.080000 1.289357 1.290036 +! 3 -3.100000 1.289826 1.290500 +! 3 -3.120000 1.290293 1.290963 +! 3 -3.140000 1.290758 1.291423 +! 3 -3.160000 1.291221 1.291882 +! 3 -3.180000 1.291682 1.292338 +! 3 -3.200000 1.292141 1.292793 +! 3 -3.220000 1.292599 1.293245 +! 3 -3.240000 1.293054 1.293696 +! 3 -3.260000 1.293507 1.294145 +! 3 -3.280000 1.293958 1.294592 +! 3 -3.300000 1.294407 1.295037 +! 3 -3.320000 1.294855 1.295480 +! 3 -3.340000 1.295300 1.295921 +! 3 -3.360000 1.295744 1.296361 +! 3 -3.380000 1.296185 1.296798 +! 3 -3.400000 1.296625 1.297234 +! 3 -3.420000 1.297063 1.297668 +! 3 -3.440000 1.297500 1.298100 +! 3 -3.460000 1.297934 1.298531 +! 3 -3.480000 1.298367 1.298959 +! 3 -3.500000 1.298797 1.299386 +! 3 -3.520000 1.299226 1.299811 +! 3 -3.540000 1.299654 1.300235 +! 3 -3.560000 1.300079 1.300656 +! 3 -3.580000 1.300503 1.301076 +! 3 -3.600000 1.300925 1.301495 +! 3 -3.620000 1.301345 1.301911 +! 3 -3.640000 1.301764 1.302326 +! 3 -3.660000 1.302180 1.302739 +! 3 -3.680000 1.302596 1.303151 +! 3 -3.700000 1.303009 1.303561 +! 3 -3.720000 1.303421 1.303969 +! 3 -3.740000 1.303831 1.304375 +! 3 -3.760000 1.304239 1.304780 +! 3 -3.780000 1.304646 1.305184 +! 3 -3.800000 1.305051 1.305585 +! 3 -3.820000 1.305455 1.305986 +! 3 -3.840000 1.305857 1.306384 +! 3 -3.860000 1.306257 1.306781 +! 3 -3.880000 1.306656 1.307177 +! 3 -3.900000 1.307053 1.307570 +! 3 -3.920000 1.307449 1.307963 +! 3 -3.940000 1.307843 1.308354 +! 3 -3.960000 1.308235 1.308743 +! 3 -3.980000 1.308626 1.309131 +! 3 -4.000000 1.309016 1.309517 +! 3 -4.020000 1.309403 1.309901 +! 3 -4.040000 1.309790 1.310285 +! 3 -4.060000 1.310175 1.310666 +! 3 -4.080000 1.310558 1.311047 +! 3 -4.100000 1.310940 1.311426 +! 3 -4.120000 1.311320 1.311803 +! 3 -4.140000 1.311699 1.312179 +! 3 -4.160000 1.312077 1.312553 +! 3 -4.180000 1.312453 1.312926 +! 3 -4.200000 1.312827 1.313298 +! 3 -4.220000 1.313200 1.313668 +! 3 -4.240000 1.313572 1.314037 +! 3 -4.260000 1.313942 1.314405 +! 3 -4.280000 1.314311 1.314771 +! 3 -4.300000 1.314679 1.315135 +! 3 -4.320000 1.315045 1.315499 +! 3 -4.340000 1.315409 1.315861 +! 3 -4.360000 1.315773 1.316221 +! 3 -4.380000 1.316135 1.316580 +! 3 -4.400000 1.316495 1.316938 +! 3 -4.420000 1.316855 1.317295 +! 3 -4.440000 1.317212 1.317650 +! 3 -4.460000 1.317569 1.318004 +! 3 -4.480000 1.317924 1.318357 +! 3 -4.500000 1.318278 1.318708 +! 3 -4.520000 1.318631 1.319058 +! 3 -4.540000 1.318982 1.319407 +! 3 -4.560000 1.319332 1.319754 +! 3 -4.580000 1.319681 1.320100 +! 3 -4.600000 1.320028 1.320445 +! 3 -4.620000 1.320374 1.320789 +! 3 -4.640000 1.320719 1.321131 +! 3 -4.660000 1.321063 1.321472 +! 3 -4.680000 1.321405 1.321812 +! 3 -4.700000 1.321746 1.322151 +! 3 -4.720000 1.322086 1.322488 +! 3 -4.740000 1.322425 1.322825 +! 3 -4.760000 1.322762 1.323160 +! 3 -4.780000 1.323098 1.323494 +! 3 -4.800000 1.323433 1.323826 +! 3 -4.820000 1.323767 1.324158 +! 3 -4.840000 1.324099 1.324488 +! 3 -4.860000 1.324431 1.324817 +! 3 -4.880000 1.324761 1.325145 +! 3 -4.900000 1.325090 1.325472 +! 3 -4.920000 1.325418 1.325798 +! 3 -4.940000 1.325745 1.326122 +! 3 -4.960000 1.326070 1.326445 +! 3 -4.980000 1.326394 1.326768 +! 3 -5.000000 1.326718 1.327089 +! 3 -5.020000 1.327040 1.327409 +! 3 -5.040000 1.327361 1.327727 +! 3 -5.060000 1.327680 1.328045 +! 3 -5.080000 1.327999 1.328362 +! 3 -5.100000 1.328317 1.328677 +! 3 -5.120000 1.328633 1.328992 +! 3 -5.140000 1.328949 1.329305 +! 3 -5.160000 1.329263 1.329617 +! 3 -5.180000 1.329576 1.329929 +! 3 -5.200000 1.329888 1.330239 +! 3 -5.220000 1.330199 1.330548 +! 3 -5.240000 1.330509 1.330856 +! 3 -5.260000 1.330818 1.331163 +! 3 -5.280000 1.331126 1.331468 +! 3 -5.300000 1.331432 1.331773 +! 3 -5.320000 1.331738 1.332077 +! 3 -5.340000 1.332043 1.332380 +! 3 -5.360000 1.332346 1.332682 +! 3 -5.380000 1.332649 1.332982 +! 3 -5.400000 1.332951 1.333282 +! 3 -5.420000 1.333251 1.333581 +! 3 -5.440000 1.333551 1.333879 +! 3 -5.460000 1.333849 1.334175 +! 3 -5.480000 1.334147 1.334471 +! 3 -5.500000 1.334443 1.334766 +! 3 -5.520000 1.334739 1.335059 +! 3 -5.540000 1.335033 1.335352 +! 3 -5.560000 1.335327 1.335644 +! 3 -5.580000 1.335619 1.335935 +! 3 -5.600000 1.335911 1.336225 +! 3 -5.620000 1.336201 1.336514 +! 3 -5.640000 1.336491 1.336802 +! 3 -5.660000 1.336780 1.337089 +! 3 -5.680000 1.337067 1.337375 +! 3 -5.700000 1.337354 1.337660 +! 3 -5.720000 1.337640 1.337944 +! 3 -5.740000 1.337925 1.338227 +! 3 -5.760000 1.338209 1.338510 +! 3 -5.780000 1.338492 1.338791 +! 3 -5.800000 1.338774 1.339071 +! 3 -5.820000 1.339055 1.339351 +! 3 -5.840000 1.339335 1.339630 +! 3 -5.860000 1.339615 1.339908 +! 3 -5.880000 1.339893 1.340184 +! 3 -5.900000 1.340171 1.340460 +! 3 -5.920000 1.340447 1.340736 +! 3 -5.940000 1.340723 1.341010 +! 3 -5.960000 1.340998 1.341283 +! 3 -5.980000 1.341272 1.341556 +! 3 -6.000000 1.341545 1.341827 +! 3 -6.020000 1.341817 1.342098 +! 3 -6.040000 1.342089 1.342368 +! 3 -6.060000 1.342359 1.342637 +! 3 -6.080000 1.342629 1.342905 +! 3 -6.100000 1.342897 1.343173 +! 3 -6.120000 1.343165 1.343439 +! 3 -6.140000 1.343432 1.343705 +! 3 -6.160000 1.343699 1.343969 +! 3 -6.180000 1.343964 1.344233 +! 3 -6.200000 1.344229 1.344497 +! 3 -6.220000 1.344492 1.344759 +! 3 -6.240000 1.344755 1.345021 +! 3 -6.260000 1.345017 1.345281 +! 3 -6.280000 1.345278 1.345541 +! 3 -6.300000 1.345539 1.345800 +! 3 -6.320000 1.345799 1.346059 +! 3 -6.340000 1.346057 1.346316 +! 3 -6.360000 1.346315 1.346573 +! 3 -6.380000 1.346573 1.346829 +! 3 -6.400000 1.346829 1.347084 +! 3 -6.420000 1.347085 1.347338 +! 3 -6.440000 1.347339 1.347592 +! 3 -6.460000 1.347593 1.347844 +! 3 -6.480000 1.347847 1.348096 +! 3 -6.500000 1.348099 1.348348 +! 3 -6.520000 1.348351 1.348598 +! 3 -6.540000 1.348602 1.348848 +! 3 -6.560000 1.348852 1.349097 +! 3 -6.580000 1.349101 1.349345 +! 3 -6.600000 1.349350 1.349592 +! 3 -6.620000 1.349598 1.349839 +! 3 -6.640000 1.349845 1.350085 +! 3 -6.660000 1.350091 1.350330 +! 3 -6.680000 1.350337 1.350575 +! 3 -6.700000 1.350582 1.350819 +! 3 -6.720000 1.350826 1.351062 +! 3 -6.740000 1.351070 1.351304 +! 3 -6.760000 1.351312 1.351546 +! 3 -6.780000 1.351554 1.351786 +! 3 -6.800000 1.351796 1.352027 +! 3 -6.820000 1.352036 1.352266 +! 3 -6.840000 1.352276 1.352505 +! 3 -6.860000 1.352515 1.352743 +! 3 -6.880000 1.352754 1.352980 +! 3 -6.900000 1.352991 1.353217 +! 3 -6.920000 1.353228 1.353453 +! 3 -6.940000 1.353465 1.353688 +! 3 -6.960000 1.353700 1.353922 +! 3 -6.980000 1.353935 1.354156 +! 3 -7.000000 1.354169 1.354389 +! 3 -7.020000 1.354403 1.354622 +! 3 -7.040000 1.354636 1.354854 +! 3 -7.060000 1.354868 1.355085 +! 3 -7.080000 1.355099 1.355315 +! 3 -7.100000 1.355330 1.355545 +! 3 -7.120000 1.355560 1.355774 +! 3 -7.140000 1.355790 1.356003 +! 3 -7.160000 1.356019 1.356231 +! 3 -7.180000 1.356247 1.356458 +! 3 -7.200000 1.356474 1.356684 +! 3 -7.220000 1.356701 1.356910 +! 3 -7.240000 1.356927 1.357135 +! 3 -7.260000 1.357153 1.357360 +! 3 -7.280000 1.357378 1.357584 +! 3 -7.300000 1.357602 1.357807 +! 3 -7.320000 1.357826 1.358030 +! 3 -7.340000 1.358048 1.358252 +! 3 -7.360000 1.358271 1.358473 +! 3 -7.380000 1.358493 1.358694 +! 3 -7.400000 1.358714 1.358914 +! 3 -7.420000 1.358934 1.359134 +! 3 -7.440000 1.359154 1.359353 +! 3 -7.460000 1.359373 1.359571 +! 3 -7.480000 1.359592 1.359789 +! 3 -7.500000 1.359810 1.360006 +! 3 -7.520000 1.360027 1.360222 +! 3 -7.540000 1.360244 1.360438 +! 3 -7.560000 1.360460 1.360653 +! 3 -7.580000 1.360675 1.360868 +! 3 -7.600000 1.360890 1.361082 +! 3 -7.620000 1.361105 1.361295 +! 3 -7.640000 1.361318 1.361508 +! 3 -7.660000 1.361531 1.361721 +! 3 -7.680000 1.361744 1.361932 +! 3 -7.700000 1.361956 1.362143 +! 3 -7.720000 1.362167 1.362354 +! 3 -7.740000 1.362378 1.362564 +! 3 -7.760000 1.362588 1.362773 +! 3 -7.780000 1.362798 1.362982 +! 3 -7.800000 1.363007 1.363190 +! 3 -7.820000 1.363215 1.363398 +! 3 -7.840000 1.363423 1.363605 +! 3 -7.860000 1.363631 1.363812 +! 3 -7.880000 1.363837 1.364018 +! 3 -7.900000 1.364044 1.364223 +! 3 -7.920000 1.364249 1.364428 +! 3 -7.940000 1.364454 1.364632 +! 3 -7.960000 1.364659 1.364836 +! 3 -7.980000 1.364863 1.365039 +! 3 -8.000000 1.365066 1.365242 +! 3 -8.020000 1.365269 1.365444 +! 3 -8.040000 1.365472 1.365646 +! 3 -8.060000 1.365673 1.365847 +! 3 -8.080000 1.365875 1.366047 +! 3 -8.100000 1.366075 1.366247 +! 3 -8.120000 1.366275 1.366447 +! 3 -8.140000 1.366475 1.366646 +! 3 -8.160000 1.366674 1.366844 +! 3 -8.180000 1.366873 1.367042 +! 3 -8.200000 1.367071 1.367239 +! 3 -8.220000 1.367268 1.367436 +! 3 -8.240000 1.367465 1.367632 +! 3 -8.260000 1.367662 1.367828 +! 3 -8.280000 1.367858 1.368023 +! 3 -8.300000 1.368053 1.368218 +! 3 -8.320000 1.368248 1.368412 +! 3 -8.340000 1.368442 1.368606 +! 3 -8.360000 1.368636 1.368799 +! 3 -8.380000 1.368830 1.368992 +! 3 -8.400000 1.369023 1.369184 +! 3 -8.420000 1.369215 1.369376 +! 3 -8.440000 1.369407 1.369567 +! 3 -8.460000 1.369598 1.369758 +! 3 -8.480000 1.369789 1.369948 +! 3 -8.500000 1.369979 1.370138 +! 3 -8.520000 1.370169 1.370327 +! 3 -8.540000 1.370359 1.370516 +! 3 -8.560000 1.370548 1.370704 +! 3 -8.580000 1.370736 1.370892 +! 3 -8.600000 1.370924 1.371079 +! 3 -8.620000 1.371111 1.371266 +! 3 -8.640000 1.371298 1.371452 +! 3 -8.660000 1.371485 1.371638 +! 3 -8.680000 1.371671 1.371823 +! 3 -8.700000 1.371856 1.372008 +! 3 -8.720000 1.372041 1.372193 +! 3 -8.740000 1.372226 1.372377 +! 3 -8.760000 1.372410 1.372560 +! 3 -8.780000 1.372594 1.372743 +! 3 -8.800000 1.372777 1.372926 +! 3 -8.820000 1.372960 1.373108 +! 3 -8.840000 1.373142 1.373290 +! 3 -8.860000 1.373324 1.373471 +! 3 -8.880000 1.373505 1.373652 +! 3 -8.900000 1.373686 1.373832 +! 3 -8.920000 1.373866 1.374012 +! 3 -8.940000 1.374046 1.374191 +! 3 -8.960000 1.374226 1.374370 +! 3 -8.980000 1.374405 1.374549 +! 3 -9.000000 1.374583 1.374727 +! 3 -9.020000 1.374761 1.374904 +! 3 -9.040000 1.374939 1.375081 +! 3 -9.060000 1.375116 1.375258 +! 3 -9.080000 1.375293 1.375434 +! 3 -9.100000 1.375470 1.375610 +! 3 -9.120000 1.375645 1.375786 +! 3 -9.140000 1.375821 1.375961 +! 3 -9.160000 1.375996 1.376135 +! 3 -9.180000 1.376171 1.376309 +! 3 -9.200000 1.376345 1.376483 +! 3 -9.220000 1.376519 1.376656 +! 3 -9.240000 1.376692 1.376829 +! 3 -9.260000 1.376865 1.377001 +! 3 -9.280000 1.377037 1.377173 +! 3 -9.300000 1.377210 1.377345 +! 3 -9.320000 1.377381 1.377516 +! 3 -9.340000 1.377552 1.377687 +! 3 -9.360000 1.377723 1.377857 +! 3 -9.380000 1.377894 1.378027 +! 3 -9.400000 1.378064 1.378197 +! 3 -9.420000 1.378233 1.378366 +! 3 -9.440000 1.378402 1.378534 +! 3 -9.460000 1.378571 1.378703 +! 3 -9.480000 1.378740 1.378871 +! 3 -9.500000 1.378907 1.379038 +! 3 -9.520000 1.379075 1.379205 +! 3 -9.540000 1.379242 1.379372 +! 3 -9.560000 1.379409 1.379538 +! 3 -9.580000 1.379575 1.379704 +! 3 -9.600000 1.379741 1.379869 +! 3 -9.620000 1.379907 1.380034 +! 3 -9.640000 1.380072 1.380199 +! 3 -9.660000 1.380237 1.380363 +! 3 -9.680000 1.380401 1.380527 +! 3 -9.700000 1.380565 1.380691 +! 3 -9.720000 1.380729 1.380854 +! 3 -9.740000 1.380892 1.381017 +! 3 -9.760000 1.381054 1.381179 +! 3 -9.780000 1.381217 1.381341 +! 3 -9.800000 1.381379 1.381503 +! 3 -9.820000 1.381541 1.381664 +! 3 -9.840000 1.381702 1.381825 +! 3 -9.860000 1.381863 1.381985 +! 3 -9.880000 1.382023 1.382145 +! 3 -9.900000 1.382183 1.382305 +! 3 -9.920000 1.382343 1.382464 +! 3 -9.940000 1.382503 1.382623 +! 3 -9.960000 1.382662 1.382782 +! 3 -9.980000 1.382820 1.382940 +! 3 -10.000000 1.382978 1.383098 +! 3 -10.020000 1.383136 1.383255 +! 3 -10.040000 1.383294 1.383413 +! 3 -10.060000 1.383451 1.383569 +! 3 -10.080000 1.383608 1.383726 +! 3 -10.100000 1.383764 1.383882 +! 3 -10.120000 1.383920 1.384037 +! 3 -10.140000 1.384076 1.384193 +! 3 -10.160000 1.384231 1.384348 +! 3 -10.180000 1.384386 1.384502 +! 3 -10.200000 1.384541 1.384657 +! 3 -10.220000 1.384695 1.384811 +! 3 -10.240000 1.384849 1.384964 +! 3 -10.260000 1.385003 1.385117 +! 3 -10.280000 1.385156 1.385270 +! 3 -10.300000 1.385309 1.385423 +! 3 -10.320000 1.385462 1.385575 +! 3 -10.340000 1.385614 1.385727 +! 3 -10.360000 1.385766 1.385878 +! 3 -10.380000 1.385917 1.386029 +! 3 -10.400000 1.386068 1.386180 +! 3 -10.420000 1.386219 1.386331 +! 3 -10.440000 1.386370 1.386481 +! 3 -10.460000 1.386520 1.386630 +! 3 -10.480000 1.386670 1.386780 +! 3 -10.500000 1.386819 1.386929 +! 3 -10.520000 1.386968 1.387078 +! 3 -10.540000 1.387117 1.387226 +! 3 -10.560000 1.387265 1.387374 +! 3 -10.580000 1.387413 1.387522 +! 3 -10.600000 1.387561 1.387669 +! 3 -10.620000 1.387709 1.387817 +! 3 -10.640000 1.387856 1.387963 +! 3 -10.660000 1.388003 1.388110 +! 3 -10.680000 1.388149 1.388256 +! 3 -10.700000 1.388295 1.388402 +! 3 -10.720000 1.388441 1.388547 +! 3 -10.740000 1.388587 1.388692 +! 3 -10.760000 1.388732 1.388837 +! 3 -10.780000 1.388877 1.388982 +! 3 -10.800000 1.389021 1.389126 +! 3 -10.820000 1.389165 1.389270 +! 3 -10.840000 1.389309 1.389413 +! 3 -10.860000 1.389453 1.389557 +! 3 -10.880000 1.389596 1.389700 +! 3 -10.900000 1.389739 1.389842 +! 3 -10.920000 1.389882 1.389985 +! 3 -10.940000 1.390024 1.390127 +! 3 -10.960000 1.390166 1.390268 +! 3 -10.980000 1.390308 1.390410 +! 3 -11.000000 1.390449 1.390551 +! 3 -11.020000 1.390590 1.390692 +! 3 -11.040000 1.390731 1.390832 +! 3 -11.060000 1.390872 1.390972 +! 3 -11.080000 1.391012 1.391112 +! 3 -11.100000 1.391152 1.391252 +! 3 -11.120000 1.391291 1.391391 +! 3 -11.140000 1.391431 1.391530 +! 3 -11.160000 1.391570 1.391669 +! 3 -11.180000 1.391708 1.391807 +! 3 -11.200000 1.391847 1.391945 +! 3 -11.220000 1.391985 1.392083 +! 3 -11.240000 1.392122 1.392220 +! 3 -11.260000 1.392260 1.392358 +! 3 -11.280000 1.392397 1.392495 +! 3 -11.300000 1.392534 1.392631 +! 3 -11.320000 1.392671 1.392768 +! 3 -11.340000 1.392807 1.392904 +! 3 -11.360000 1.392943 1.393039 +! 3 -11.380000 1.393079 1.393175 +! 3 -11.400000 1.393214 1.393310 +! 3 -11.420000 1.393349 1.393445 +! 3 -11.440000 1.393484 1.393579 +! 3 -11.460000 1.393619 1.393714 +! 3 -11.480000 1.393753 1.393848 +! 3 -11.500000 1.393887 1.393982 +! 3 -11.520000 1.394021 1.394115 +! 3 -11.540000 1.394154 1.394248 +! 3 -11.560000 1.394287 1.394381 +! 3 -11.580000 1.394420 1.394514 +! 3 -11.600000 1.394553 1.394646 +! 3 -11.620000 1.394685 1.394778 +! 3 -11.640000 1.394817 1.394910 +! 3 -11.660000 1.394949 1.395042 +! 3 -11.680000 1.395081 1.395173 +! 3 -11.700000 1.395212 1.395304 +! 3 -11.720000 1.395343 1.395435 +! 3 -11.740000 1.395474 1.395565 +! 3 -11.760000 1.395604 1.395695 +! 3 -11.780000 1.395734 1.395825 +! 3 -11.800000 1.395864 1.395955 +! 3 -11.820000 1.395994 1.396084 +! 3 -11.840000 1.396123 1.396213 +! 3 -11.860000 1.396252 1.396342 +! 3 -11.880000 1.396381 1.396471 +! 3 -11.900000 1.396510 1.396599 +! 3 -11.920000 1.396638 1.396727 +! 3 -11.940000 1.396766 1.396855 +! 3 -11.960000 1.396894 1.396982 +! 3 -11.980000 1.397021 1.397110 +GNUSCRIPT +set term wxt font "arial,14" size 800,600 + +set termoption dash + +set termoption noenhanced + +set style line 1 lw 3 lt 1 lc rgb "#D00000" + +set style line 2 lw 3 lt 1 lc rgb "#00B000" + +set style line 3 lw 3 lt 1 lc rgb "#2020FF" + +set style line 4 lw 3 lt 1 lc rgb "#FF8000" + +set style line 5 lw 3 lt 1 lc rgb "#E000E0" + +set style line 6 lw 3 lt 1 lc rgb "#303030" + +set style line 7 lw 3 lt 2 lc rgb "#D00000" + +set style line 8 lw 3 lt 2 lc rgb "#00B000" + +set style line 9 lw 3 lt 2 lc rgb "#2020FF" + +set style line 10 lw 3 lt 2 lc rgb "#FF8000" + +set style line 11 lw 3 lt 2 lc rgb "#E000E0" + +set style line 12 lw 3 lt 2 lc rgb "#303030" + +set title "t2 Semi-Local Ion Pseudopotentials" + +set xlabel "Radius (a_B)" + +plot " +# +#ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) +#scalar-relativistic version 4.0.1 0r/27/2018 +# +#While it is not required under the terms of the GNU GPL, it is +#suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) +#in any publication utilizing these pseudopotentials. +# +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + O 8.00 1 2 -106131 both +# +# n l f + 1 0 2.00 + 2 0 2.00 + 2 1 4.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 2 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.35000 0.00000 4 8 8.40000 + 1 1.45000 0.00000 4 8 9.30000 + 2 1.25000 0.10000 4 8 6.00000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.20000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 1.00000 + 1 2 1.00000 + 2 1 1.00000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact + 3 4.00000 1.50000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -12.00 12.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 6.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 0 +# nvcnf +# n l f + + +END_PSP +Updating nrl = 940 for uurcut = 9.39444 + +Begin PSP_UPF + + + + This pseudopotential file has been produced using the code + ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) + scalar-relativistic version 4.0.1 06/20/2107 by D. R. Hamann + The code is available through a link at URL www.mat-simresearch.com. + Documentation with the package provides a full discription of the + input data below. + + + While it is not required under the terms of the GNU GPL, it is + suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) + in any publication using these pseudopotentials. + + +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile + O 8.00 1 2 -106131 both +# +# n l f energy (Ha) + 1 0 2.00 + 2 0 2.00 + 2 1 4.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax + 2 +# +# l, rc, ep, ncon, nbas, qcut + 0 1.35000 0.00000 4 8 8.40000 + 1 1.45000 0.00000 4 8 9.30000 + 2 1.25000 0.10000 4 8 6.00000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 + 4 5 1.20000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl + 0 2 1.00000 + 1 2 1.00000 + 2 1 1.00000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact + 3 4.00000 1.50000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh + -12.00 12.00 0.02 +# +# OUTPUT GRID +# rlmax, drl + 6.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf + 0 +# nvcnf +# n l f + + + + + + + + + 0.0000 0.0100 0.0200 0.0300 0.0400 0.0500 0.0600 0.0700 + 0.0800 0.0900 0.1000 0.1100 0.1200 0.1300 0.1400 0.1500 + 0.1600 0.1700 0.1800 0.1900 0.2000 0.2100 0.2200 0.2300 + 0.2400 0.2500 0.2600 0.2700 0.2800 0.2900 0.3000 0.3100 + 0.3200 0.3300 0.3400 0.3500 0.3600 0.3700 0.3800 0.3900 + 0.4000 0.4100 0.4200 0.4300 0.4400 0.4500 0.4600 0.4700 + 0.4800 0.4900 0.5000 0.5100 0.5200 0.5300 0.5400 0.5500 + 0.5600 0.5700 0.5800 0.5900 0.6000 0.6100 0.6200 0.6300 + 0.6400 0.6500 0.6600 0.6700 0.6800 0.6900 0.7000 0.7100 + 0.7200 0.7300 0.7400 0.7500 0.7600 0.7700 0.7800 0.7900 + 0.8000 0.8100 0.8200 0.8300 0.8400 0.8500 0.8600 0.8700 + 0.8800 0.8900 0.9000 0.9100 0.9200 0.9300 0.9400 0.9500 + 0.9600 0.9700 0.9800 0.9900 1.0000 1.0100 1.0200 1.0300 + 1.0400 1.0500 1.0600 1.0700 1.0800 1.0900 1.1000 1.1100 + 1.1200 1.1300 1.1400 1.1500 1.1600 1.1700 1.1800 1.1900 + 1.2000 1.2100 1.2200 1.2300 1.2400 1.2500 1.2600 1.2700 + 1.2800 1.2900 1.3000 1.3100 1.3200 1.3300 1.3400 1.3500 + 1.3600 1.3700 1.3800 1.3900 1.4000 1.4100 1.4200 1.4300 + 1.4400 1.4500 1.4600 1.4700 1.4800 1.4900 1.5000 1.5100 + 1.5200 1.5300 1.5400 1.5500 1.5600 1.5700 1.5800 1.5900 + 1.6000 1.6100 1.6200 1.6300 1.6400 1.6500 1.6600 1.6700 + 1.6800 1.6900 1.7000 1.7100 1.7200 1.7300 1.7400 1.7500 + 1.7600 1.7700 1.7800 1.7900 1.8000 1.8100 1.8200 1.8300 + 1.8400 1.8500 1.8600 1.8700 1.8800 1.8900 1.9000 1.9100 + 1.9200 1.9300 1.9400 1.9500 1.9600 1.9700 1.9800 1.9900 + 2.0000 2.0100 2.0200 2.0300 2.0400 2.0500 2.0600 2.0700 + 2.0800 2.0900 2.1000 2.1100 2.1200 2.1300 2.1400 2.1500 + 2.1600 2.1700 2.1800 2.1900 2.2000 2.2100 2.2200 2.2300 + 2.2400 2.2500 2.2600 2.2700 2.2800 2.2900 2.3000 2.3100 + 2.3200 2.3300 2.3400 2.3500 2.3600 2.3700 2.3800 2.3900 + 2.4000 2.4100 2.4200 2.4300 2.4400 2.4500 2.4600 2.4700 + 2.4800 2.4900 2.5000 2.5100 2.5200 2.5300 2.5400 2.5500 + 2.5600 2.5700 2.5800 2.5900 2.6000 2.6100 2.6200 2.6300 + 2.6400 2.6500 2.6600 2.6700 2.6800 2.6900 2.7000 2.7100 + 2.7200 2.7300 2.7400 2.7500 2.7600 2.7700 2.7800 2.7900 + 2.8000 2.8100 2.8200 2.8300 2.8400 2.8500 2.8600 2.8700 + 2.8800 2.8900 2.9000 2.9100 2.9200 2.9300 2.9400 2.9500 + 2.9600 2.9700 2.9800 2.9900 3.0000 3.0100 3.0200 3.0300 + 3.0400 3.0500 3.0600 3.0700 3.0800 3.0900 3.1000 3.1100 + 3.1200 3.1300 3.1400 3.1500 3.1600 3.1700 3.1800 3.1900 + 3.2000 3.2100 3.2200 3.2300 3.2400 3.2500 3.2600 3.2700 + 3.2800 3.2900 3.3000 3.3100 3.3200 3.3300 3.3400 3.3500 + 3.3600 3.3700 3.3800 3.3900 3.4000 3.4100 3.4200 3.4300 + 3.4400 3.4500 3.4600 3.4700 3.4800 3.4900 3.5000 3.5100 + 3.5200 3.5300 3.5400 3.5500 3.5600 3.5700 3.5800 3.5900 + 3.6000 3.6100 3.6200 3.6300 3.6400 3.6500 3.6600 3.6700 + 3.6800 3.6900 3.7000 3.7100 3.7200 3.7300 3.7400 3.7500 + 3.7600 3.7700 3.7800 3.7900 3.8000 3.8100 3.8200 3.8300 + 3.8400 3.8500 3.8600 3.8700 3.8800 3.8900 3.9000 3.9100 + 3.9200 3.9300 3.9400 3.9500 3.9600 3.9700 3.9800 3.9900 + 4.0000 4.0100 4.0200 4.0300 4.0400 4.0500 4.0600 4.0700 + 4.0800 4.0900 4.1000 4.1100 4.1200 4.1300 4.1400 4.1500 + 4.1600 4.1700 4.1800 4.1900 4.2000 4.2100 4.2200 4.2300 + 4.2400 4.2500 4.2600 4.2700 4.2800 4.2900 4.3000 4.3100 + 4.3200 4.3300 4.3400 4.3500 4.3600 4.3700 4.3800 4.3900 + 4.4000 4.4100 4.4200 4.4300 4.4400 4.4500 4.4600 4.4700 + 4.4800 4.4900 4.5000 4.5100 4.5200 4.5300 4.5400 4.5500 + 4.5600 4.5700 4.5800 4.5900 4.6000 4.6100 4.6200 4.6300 + 4.6400 4.6500 4.6600 4.6700 4.6800 4.6900 4.7000 4.7100 + 4.7200 4.7300 4.7400 4.7500 4.7600 4.7700 4.7800 4.7900 + 4.8000 4.8100 4.8200 4.8300 4.8400 4.8500 4.8600 4.8700 + 4.8800 4.8900 4.9000 4.9100 4.9200 4.9300 4.9400 4.9500 + 4.9600 4.9700 4.9800 4.9900 5.0000 5.0100 5.0200 5.0300 + 5.0400 5.0500 5.0600 5.0700 5.0800 5.0900 5.1000 5.1100 + 5.1200 5.1300 5.1400 5.1500 5.1600 5.1700 5.1800 5.1900 + 5.2000 5.2100 5.2200 5.2300 5.2400 5.2500 5.2600 5.2700 + 5.2800 5.2900 5.3000 5.3100 5.3200 5.3300 5.3400 5.3500 + 5.3600 5.3700 5.3800 5.3900 5.4000 5.4100 5.4200 5.4300 + 5.4400 5.4500 5.4600 5.4700 5.4800 5.4900 5.5000 5.5100 + 5.5200 5.5300 5.5400 5.5500 5.5600 5.5700 5.5800 5.5900 + 5.6000 5.6100 5.6200 5.6300 5.6400 5.6500 5.6600 5.6700 + 5.6800 5.6900 5.7000 5.7100 5.7200 5.7300 5.7400 5.7500 + 5.7600 5.7700 5.7800 5.7900 5.8000 5.8100 5.8200 5.8300 + 5.8400 5.8500 5.8600 5.8700 5.8800 5.8900 5.9000 5.9100 + 5.9200 5.9300 5.9400 5.9500 5.9600 5.9700 5.9800 5.9900 + 6.0000 6.0100 6.0200 6.0300 6.0400 6.0500 6.0600 6.0700 + 6.0800 6.0900 6.1000 6.1100 6.1200 6.1300 6.1400 6.1500 + 6.1600 6.1700 6.1800 6.1900 6.2000 6.2100 6.2200 6.2300 + 6.2400 6.2500 6.2600 6.2700 6.2800 6.2900 6.3000 6.3100 + 6.3200 6.3300 6.3400 6.3500 6.3600 6.3700 6.3800 6.3900 + 6.4000 6.4100 6.4200 6.4300 6.4400 6.4500 6.4600 6.4700 + 6.4800 6.4900 6.5000 6.5100 6.5200 6.5300 6.5400 6.5500 + 6.5600 6.5700 6.5800 6.5900 6.6000 6.6100 6.6200 6.6300 + 6.6400 6.6500 6.6600 6.6700 6.6800 6.6900 6.7000 6.7100 + 6.7200 6.7300 6.7400 6.7500 6.7600 6.7700 6.7800 6.7900 + 6.8000 6.8100 6.8200 6.8300 6.8400 6.8500 6.8600 6.8700 + 6.8800 6.8900 6.9000 6.9100 6.9200 6.9300 6.9400 6.9500 + 6.9600 6.9700 6.9800 6.9900 7.0000 7.0100 7.0200 7.0300 + 7.0400 7.0500 7.0600 7.0700 7.0800 7.0900 7.1000 7.1100 + 7.1200 7.1300 7.1400 7.1500 7.1600 7.1700 7.1800 7.1900 + 7.2000 7.2100 7.2200 7.2300 7.2400 7.2500 7.2600 7.2700 + 7.2800 7.2900 7.3000 7.3100 7.3200 7.3300 7.3400 7.3500 + 7.3600 7.3700 7.3800 7.3900 7.4000 7.4100 7.4200 7.4300 + 7.4400 7.4500 7.4600 7.4700 7.4800 7.4900 7.5000 7.5100 + 7.5200 7.5300 7.5400 7.5500 7.5600 7.5700 7.5800 7.5900 + 7.6000 7.6100 7.6200 7.6300 7.6400 7.6500 7.6600 7.6700 + 7.6800 7.6900 7.7000 7.7100 7.7200 7.7300 7.7400 7.7500 + 7.7600 7.7700 7.7800 7.7900 7.8000 7.8100 7.8200 7.8300 + 7.8400 7.8500 7.8600 7.8700 7.8800 7.8900 7.9000 7.9100 + 7.9200 7.9300 7.9400 7.9500 7.9600 7.9700 7.9800 7.9900 + 8.0000 8.0100 8.0200 8.0300 8.0400 8.0500 8.0600 8.0700 + 8.0800 8.0900 8.1000 8.1100 8.1200 8.1300 8.1400 8.1500 + 8.1600 8.1700 8.1800 8.1900 8.2000 8.2100 8.2200 8.2300 + 8.2400 8.2500 8.2600 8.2700 8.2800 8.2900 8.3000 8.3100 + 8.3200 8.3300 8.3400 8.3500 8.3600 8.3700 8.3800 8.3900 + 8.4000 8.4100 8.4200 8.4300 8.4400 8.4500 8.4600 8.4700 + 8.4800 8.4900 8.5000 8.5100 8.5200 8.5300 8.5400 8.5500 + 8.5600 8.5700 8.5800 8.5900 8.6000 8.6100 8.6200 8.6300 + 8.6400 8.6500 8.6600 8.6700 8.6800 8.6900 8.7000 8.7100 + 8.7200 8.7300 8.7400 8.7500 8.7600 8.7700 8.7800 8.7900 + 8.8000 8.8100 8.8200 8.8300 8.8400 8.8500 8.8600 8.8700 + 8.8800 8.8900 8.9000 8.9100 8.9200 8.9300 8.9400 8.9500 + 8.9600 8.9700 8.9800 8.9900 9.0000 9.0100 9.0200 9.0300 + 9.0400 9.0500 9.0600 9.0700 9.0800 9.0900 9.1000 9.1100 + 9.1200 9.1300 9.1400 9.1500 9.1600 9.1700 9.1800 9.1900 + 9.2000 9.2100 9.2200 9.2300 9.2400 9.2500 9.2600 9.2700 + 9.2800 9.2900 9.3000 9.3100 9.3200 9.3300 9.3400 9.3500 + 9.3600 9.3700 9.3800 9.3900 + + + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 0.0100 + 0.0100 0.0100 0.0100 0.0100 + + + + -2.0058852470E+01 -2.0024830786E+01 -2.0025412395E+01 -2.0026261131E+01 + -2.0027224227E+01 -2.0028130087E+01 -2.0028808606E+01 -2.0029102349E+01 + -2.0028870121E+01 -2.0027986015E+01 -2.0026336520E+01 -2.0023817273E+01 + -2.0020330147E+01 -2.0015780902E+01 -2.0010077403E+01 -2.0003128310E+01 + -1.9994842155E+01 -1.9985126721E+01 -1.9973888659E+01 -1.9961033310E+01 + -1.9946464679E+01 -1.9930085553E+01 -1.9911797746E+01 -1.9891502438E+01 + -1.9869100621E+01 -1.9844493611E+01 -1.9817583634E+01 -1.9788274456E+01 + -1.9756472039E+01 -1.9722085204E+01 -1.9685026276E+01 -1.9645211676E+01 + -1.9602562447E+01 -1.9557004671E+01 -1.9508469760E+01 -1.9456894601E+01 + -1.9402221543E+01 -1.9344398233E+01 -1.9283377308E+01 -1.9219115992E+01 + -1.9151575648E+01 -1.9080721360E+01 -1.9006521648E+01 -1.8928948409E+01 + -1.8847977195E+01 -1.8763587924E+01 -1.8675766073E+01 -1.8584504393E+01 + -1.8489805090E+01 -1.8391682392E+01 -1.8290165316E+01 -1.8185300433E+01 + -1.8077154373E+01 -1.7965815814E+01 -1.7851396710E+01 -1.7734032597E+01 + -1.7613881853E+01 -1.7491123929E+01 -1.7365956613E+01 -1.7238592507E+01 + -1.7109254936E+01 -1.6978173555E+01 -1.6845579907E+01 -1.6711703182E+01 + -1.6576766371E+01 -1.6440982975E+01 -1.6304554350E+01 -1.6167667743E+01 + -1.6030494997E+01 -1.5893191908E+01 -1.5755898131E+01 -1.5618737578E+01 + -1.5481819199E+01 -1.5345238055E+01 -1.5209076584E+01 -1.5073405993E+01 + -1.4938287696E+01 -1.4803774738E+01 -1.4669913163E+01 -1.4536743296E+01 + -1.4404300904E+01 -1.4272618236E+01 -1.4141724925E+01 -1.4011648754E+01 + -1.3882416298E+01 -1.3754053439E+01 -1.3626585772E+01 -1.3500038906E+01 + -1.3374438679E+01 -1.3249811294E+01 -1.3126183385E+01 -1.3003582031E+01 + -1.2882034718E+01 -1.2761569261E+01 -1.2642213701E+01 -1.2523996169E+01 + -1.2406944733E+01 -1.2291087232E+01 -1.2176451097E+01 -1.2063063165E+01 + -1.1950949493E+01 -1.1840135162E+01 -1.1730644091E+01 -1.1622498847E+01 + -1.1515720460E+01 -1.1410328249E+01 -1.1306339646E+01 -1.1203770031E+01 + -1.1102632575E+01 -1.1002938096E+01 -1.0904694912E+01 -1.0807908713E+01 + -1.0712582441E+01 -1.0618716173E+01 -1.0526307016E+01 -1.0435349011E+01 + -1.0345833039E+01 -1.0257746742E+01 -1.0171074436E+01 -1.0085797043E+01 + -1.0001892017E+01 -9.9193332712E+00 -9.8380916618E+00 -9.7581376010E+00 + -9.6794425088E+00 -9.6019788020E+00 -9.5257198615E+00 -9.4506399923E+00 + -9.3767143825E+00 -9.3039190539E+00 -9.2322308187E+00 -9.1616272587E+00 + -9.0920866652E+00 -9.0235879770E+00 -8.9561106718E+00 -8.8896349062E+00 + -8.8241431265E+00 -8.7596191371E+00 -8.6960440294E+00 -8.6333976840E+00 + -8.5716606484E+00 -8.5108134993E+00 -8.4508369078E+00 -8.3917116354E+00 + -8.3334186418E+00 -8.2759388648E+00 -8.2192516304E+00 -8.1633366553E+00 + -8.1081772569E+00 -8.0537584469E+00 -8.0000654245E+00 -7.9470837666E+00 + -7.8947994172E+00 -7.8431986785E+00 -7.7922682015E+00 -7.7419949780E+00 + -7.6923663316E+00 -7.6433699101E+00 -7.5949936773E+00 -7.5472259051E+00 + -7.5000551649E+00 -7.4534703195E+00 -7.4074605143E+00 -7.3620151686E+00 + -7.3171239666E+00 -7.2727768483E+00 -7.2289640009E+00 -7.1856758489E+00 + -7.1429030478E+00 -7.1006364786E+00 -7.0588671650E+00 -7.0175865294E+00 + -6.9767866594E+00 -6.9364588963E+00 -6.8965939871E+00 -6.8571842429E+00 + -6.8182224547E+00 -6.7797009239E+00 -6.7416122265E+00 -6.7039491095E+00 + -6.6667044797E+00 -6.6298714006E+00 -6.5934430883E+00 -6.5574129070E+00 + -6.5217743653E+00 -6.4865211122E+00 -6.4516469331E+00 -6.4171457466E+00 + -6.3830116004E+00 -6.3492386684E+00 -6.3158212471E+00 -6.2827537523E+00 + -6.2500307164E+00 -6.2176467850E+00 -6.1855967139E+00 -6.1538753669E+00 + -6.1224777123E+00 -6.0913988206E+00 -6.0606338621E+00 -6.0301781039E+00 + -6.0000269079E+00 -5.9701757284E+00 -5.9406201095E+00 -5.9113556832E+00 + -5.8823781673E+00 -5.8536833630E+00 -5.8252671529E+00 -5.7971254995E+00 + -5.7692544427E+00 -5.7416500982E+00 -5.7143086559E+00 -5.6872263776E+00 + -5.6603995960E+00 -5.6338247124E+00 -5.6074981954E+00 -5.5814165794E+00 + -5.5555764629E+00 -5.5299745072E+00 -5.5046074348E+00 -5.4794720281E+00 + -5.4545651279E+00 -5.4298836322E+00 -5.4054244951E+00 -5.3811847250E+00 + -5.3571613840E+00 -5.3333515864E+00 -5.3097524974E+00 -5.2863613323E+00 + -5.2631753552E+00 -5.2401918780E+00 -5.2174082594E+00 -5.1948219038E+00 + -5.1724302603E+00 -5.1502308219E+00 -5.1282211243E+00 -5.1063987454E+00 + -5.0847613039E+00 -5.0633064588E+00 -5.0420319085E+00 -5.0209353897E+00 + -5.0000146771E+00 -4.9792675822E+00 -4.9586919527E+00 -4.9382856718E+00 + -4.9180466571E+00 -4.8979728606E+00 -4.8780622673E+00 -4.8583128951E+00 + -4.8387227936E+00 -4.8192900440E+00 -4.8000127579E+00 -4.7808890772E+00 + -4.7619171733E+00 -4.7430952464E+00 -4.7244215251E+00 -4.7058942658E+00 + -4.6875117524E+00 -4.6692722946E+00 -4.6511742293E+00 -4.6332159188E+00 + -4.6153957511E+00 -4.5977121380E+00 -4.5801635152E+00 -4.5627483428E+00 + -4.5454651048E+00 -4.5283123080E+00 -4.5112884810E+00 -4.4943921744E+00 + -4.4776219609E+00 -4.4609764343E+00 -4.4444542091E+00 -4.4280539203E+00 + -4.4117742231E+00 -4.3956137922E+00 -4.3795713219E+00 -4.3636455252E+00 + -4.3478351340E+00 -4.3321388984E+00 -4.3165555865E+00 -4.3010839841E+00 + -4.2857228942E+00 -4.2704711370E+00 -4.2553275495E+00 -4.2402909848E+00 + -4.2253603125E+00 -4.2105344179E+00 -4.1958122020E+00 -4.1811925810E+00 + -4.1666744862E+00 -4.1522568637E+00 -4.1379386741E+00 -4.1237188923E+00 + -4.1095965073E+00 -4.0955705219E+00 -4.0816399523E+00 -4.0678038283E+00 + -4.0540611926E+00 -4.0404111009E+00 -4.0268526216E+00 -4.0133848354E+00 + -4.0000068354E+00 -3.9867177268E+00 -3.9735166264E+00 -3.9604026630E+00 + -3.9473749766E+00 -3.9344327186E+00 -3.9215750515E+00 -3.9088011486E+00 + -3.8961101941E+00 -3.8835013826E+00 -3.8709739191E+00 -3.8585270191E+00 + -3.8461599078E+00 -3.8338718204E+00 -3.8216620020E+00 -3.8095297071E+00 + -3.7974741998E+00 -3.7854947534E+00 -3.7735906502E+00 -3.7617611818E+00 + -3.7500056484E+00 -3.7383233591E+00 -3.7267136313E+00 -3.7151757913E+00 + -3.7037091733E+00 -3.6923131200E+00 -3.6809869819E+00 -3.6697301176E+00 + -3.6585418935E+00 -3.6474216837E+00 -3.6363688699E+00 -3.6253828413E+00 + -3.6144629943E+00 -3.6036087327E+00 -3.5928194674E+00 -3.5820946164E+00 + -3.5714336045E+00 -3.5608358634E+00 -3.5503008316E+00 -3.5398279540E+00 + -3.5294166823E+00 -3.5190664744E+00 -3.5087767947E+00 -3.4985471138E+00 + -3.4883769084E+00 -3.4782656614E+00 -3.4682128615E+00 -3.4582180034E+00 + -3.4482805877E+00 -3.4384001204E+00 -3.4285761136E+00 -3.4188080845E+00 + -3.4090955562E+00 -3.3994380569E+00 -3.3898351203E+00 -3.3802862852E+00 + -3.3707910957E+00 -3.3613491011E+00 -3.3519598556E+00 -3.3426229183E+00 + -3.3333378532E+00 -3.3241042295E+00 -3.3149216206E+00 -3.3057896050E+00 + -3.2967077658E+00 -3.2876756904E+00 -3.2786929710E+00 -3.2697592041E+00 + -3.2608739905E+00 -3.2520369357E+00 -3.2432476490E+00 -3.2345057442E+00 + -3.2258108392E+00 -3.2171625559E+00 -3.2085605203E+00 -3.2000043625E+00 + -3.1914937164E+00 -3.1830282198E+00 -3.1746075144E+00 -3.1662312456E+00 + -3.1578990626E+00 -3.1496106182E+00 -3.1413655689E+00 -3.1331635748E+00 + -3.1250042995E+00 -3.1168874101E+00 -3.1088125773E+00 -3.1007794749E+00 + -3.0927877802E+00 -3.0848371740E+00 -3.0769273401E+00 -3.0690579657E+00 + -3.0612287411E+00 -3.0534393599E+00 -3.0456895187E+00 -3.0379789171E+00 + -3.0303072578E+00 -3.0226742466E+00 -3.0150795921E+00 -3.0075230059E+00 + -3.0000042025E+00 -2.9925228992E+00 -2.9850788162E+00 -2.9776716764E+00 + -2.9703012053E+00 -2.9629671315E+00 -2.9556691858E+00 -2.9484071021E+00 + -2.9411806166E+00 -2.9339894682E+00 -2.9268333984E+00 -2.9197121509E+00 + -2.9126254724E+00 -2.9055731116E+00 -2.8985548199E+00 -2.8915703510E+00 + -2.8846194609E+00 -2.8777019082E+00 -2.8708174534E+00 -2.8639658597E+00 + -2.8571468922E+00 -2.8503603186E+00 -2.8436059084E+00 -2.8368834336E+00 + -2.8301926683E+00 -2.8235333885E+00 -2.8169053726E+00 -2.8103084008E+00 + -2.8037422557E+00 -2.7972067215E+00 -2.7907015848E+00 -2.7842266340E+00 + -2.7777816594E+00 -2.7713664533E+00 -2.7649808100E+00 -2.7586245256E+00 + -2.7522973980E+00 -2.7459992271E+00 -2.7397298147E+00 -2.7334889640E+00 + -2.7272764805E+00 -2.7210921711E+00 -2.7149358446E+00 -2.7088073115E+00 + -2.7027063841E+00 -2.6966328761E+00 -2.6905866033E+00 -2.6845673827E+00 + -2.6785750334E+00 -2.6726093756E+00 -2.6666702315E+00 -2.6607574247E+00 + -2.6548707804E+00 -2.6490101254E+00 -2.6431752879E+00 -2.6373660978E+00 + -2.6315823862E+00 -2.6258239859E+00 -2.6200907312E+00 -2.6143824578E+00 + -2.6086990026E+00 -2.6030402042E+00 -2.5974059025E+00 -2.5917959388E+00 + -2.5862101557E+00 -2.5806483972E+00 -2.5751105087E+00 -2.5695963369E+00 + -2.5641057297E+00 -2.5586385364E+00 -2.5531946075E+00 -2.5477737949E+00 + -2.5423759518E+00 -2.5370009323E+00 -2.5316485921E+00 -2.5263187879E+00 + -2.5210113777E+00 -2.5157262207E+00 -2.5104631772E+00 -2.5052221087E+00 + -2.5000028779E+00 -2.4948053487E+00 -2.4896293858E+00 -2.4844748555E+00 + -2.4793416249E+00 -2.4742295621E+00 -2.4691385367E+00 -2.4640684189E+00 + -2.4590190803E+00 -2.4539903934E+00 -2.4489822317E+00 -2.4439944699E+00 + -2.4390269836E+00 -2.4340796494E+00 -2.4291523449E+00 -2.4242449488E+00 + -2.4193573407E+00 -2.4144894010E+00 -2.4096410114E+00 -2.4048120543E+00 + -2.4000024131E+00 -2.3952119722E+00 -2.3904406168E+00 -2.3856882332E+00 + -2.3809547082E+00 -2.3762399301E+00 -2.3715437876E+00 -2.3668661704E+00 + -2.3622069692E+00 -2.3575660754E+00 -2.3529433813E+00 -2.3483387801E+00 + -2.3437521658E+00 -2.3391834332E+00 -2.3346324779E+00 -2.3300991965E+00 + -2.3255834860E+00 -2.3210852446E+00 -2.3166043711E+00 -2.3121407652E+00 + -2.3076943271E+00 -2.3032649580E+00 -2.2988525600E+00 -2.2944570355E+00 + -2.2900782880E+00 -2.2857162216E+00 -2.2813707412E+00 -2.2770417524E+00 + -2.2727291615E+00 -2.2684328754E+00 -2.2641528020E+00 -2.2598888495E+00 + -2.2556409271E+00 -2.2514089445E+00 -2.2471928123E+00 -2.2429924415E+00 + -2.2388077439E+00 -2.2346386319E+00 -2.2304850186E+00 -2.2263468179E+00 + -2.2222239440E+00 -2.2181163119E+00 -2.2140238373E+00 -2.2099464364E+00 + -2.2058840262E+00 -2.2018365240E+00 -2.1978038480E+00 -2.1937859169E+00 + -2.1897826499E+00 -2.1857939669E+00 -2.1818197883E+00 -2.1778600352E+00 + -2.1739146292E+00 -2.1699834924E+00 -2.1660665476E+00 -2.1621637181E+00 + -2.1582749276E+00 -2.1544001006E+00 -2.1505391620E+00 -2.1466920372E+00 + -2.1428586523E+00 -2.1390389338E+00 -2.1352328086E+00 -2.1314402045E+00 + -2.1276610494E+00 -2.1238952719E+00 -2.1201428012E+00 -2.1164035668E+00 + -2.1126774988E+00 -2.1089645278E+00 -2.1052645848E+00 -2.1015776015E+00 + -2.0979035098E+00 -2.0942422422E+00 -2.0905937317E+00 -2.0869579118E+00 + -2.0833347163E+00 -2.0797240796E+00 -2.0761259366E+00 -2.0725402224E+00 + -2.0689668728E+00 -2.0654058239E+00 -2.0618570124E+00 -2.0583203753E+00 + -2.0547958500E+00 -2.0512833743E+00 -2.0477828867E+00 -2.0442943259E+00 + -2.0408176310E+00 -2.0373527415E+00 -2.0338995974E+00 -2.0304581392E+00 + -2.0270283075E+00 -2.0236100436E+00 -2.0202032890E+00 -2.0168079858E+00 + -2.0134240762E+00 -2.0100515030E+00 -2.0066902094E+00 -2.0033401388E+00 + -2.0000012351E+00 -1.9966734427E+00 -1.9933567060E+00 -1.9900509701E+00 + -1.9867561805E+00 -1.9834722827E+00 -1.9801992228E+00 -1.9769369474E+00 + -1.9736854032E+00 -1.9704445372E+00 -1.9672142971E+00 -1.9639946307E+00 + -1.9607854860E+00 -1.9575868116E+00 -1.9543985564E+00 -1.9512206695E+00 + -1.9480531005E+00 -1.9448957991E+00 -1.9417487155E+00 -1.9386118002E+00 + -1.9354850040E+00 -1.9323682781E+00 -1.9292615737E+00 -1.9261648428E+00 + -1.9230780372E+00 -1.9200011095E+00 -1.9169340122E+00 -1.9138766983E+00 + -1.9108291211E+00 -1.9077912342E+00 -1.9047629913E+00 -1.9017443467E+00 + -1.8987352547E+00 -1.8957356702E+00 -1.8927455481E+00 -1.8897648437E+00 + -1.8867935126E+00 -1.8838315106E+00 -1.8808787940E+00 -1.8779353190E+00 + -1.8750010424E+00 -1.8720759211E+00 -1.8691599123E+00 -1.8662529735E+00 + -1.8633550626E+00 -1.8604661374E+00 -1.8575861562E+00 -1.8547150776E+00 + -1.8518528604E+00 -1.8489994636E+00 -1.8461548465E+00 -1.8433189686E+00 + -1.8404917897E+00 -1.8376732699E+00 -1.8348633694E+00 -1.8320620487E+00 + -1.8292692687E+00 -1.8264849903E+00 -1.8237091747E+00 -1.8209417835E+00 + -1.8181827784E+00 -1.8154321212E+00 -1.8126897741E+00 -1.8099556996E+00 + -1.8072298603E+00 -1.8045122190E+00 -1.8018027388E+00 -1.7991013830E+00 + -1.7964081150E+00 -1.7937228987E+00 -1.7910456980E+00 -1.7883764770E+00 + -1.7857152001E+00 -1.7830618320E+00 -1.7804163373E+00 -1.7777786811E+00 + -1.7751488287E+00 -1.7725267454E+00 -1.7699123969E+00 -1.7673057489E+00 + -1.7647067676E+00 -1.7621154191E+00 -1.7595316699E+00 -1.7569554866E+00 + -1.7543868360E+00 -1.7518256851E+00 -1.7492720011E+00 -1.7467257514E+00 + -1.7441869036E+00 -1.7416554255E+00 -1.7391312850E+00 -1.7366144503E+00 + -1.7341048897E+00 -1.7316025716E+00 -1.7291074649E+00 -1.7266195383E+00 + -1.7241387610E+00 -1.7216651021E+00 -1.7191985311E+00 -1.7167390175E+00 + -1.7142865310E+00 -1.7118410417E+00 -1.7094025196E+00 -1.7069709350E+00 + -1.7045462583E+00 -1.7021284601E+00 -1.6997175112E+00 -1.6973133826E+00 + -1.6949160452E+00 -1.6925254705E+00 -1.6901416298E+00 -1.6877644947E+00 + -1.6853940369E+00 -1.6830302284E+00 -1.6806730412E+00 -1.6783224475E+00 + -1.6759784198E+00 -1.6736409305E+00 -1.6713099523E+00 -1.6689854580E+00 + -1.6666674207E+00 -1.6643558135E+00 -1.6620506096E+00 -1.6597517824E+00 + -1.6574593057E+00 -1.6551731530E+00 -1.6528932982E+00 -1.6506197155E+00 + -1.6483523788E+00 -1.6460912625E+00 -1.6438363411E+00 -1.6415875891E+00 + -1.6393449812E+00 -1.6371084924E+00 -1.6348780975E+00 -1.6326537717E+00 + -1.6304354903E+00 -1.6282232286E+00 -1.6260169622E+00 -1.6238166668E+00 + -1.6216223182E+00 -1.6194338922E+00 -1.6172513649E+00 -1.6150747126E+00 + -1.6129039115E+00 -1.6107389380E+00 -1.6085797687E+00 -1.6064263804E+00 + -1.6042787498E+00 -1.6021368539E+00 -1.6000006696E+00 -1.5978701743E+00 + -1.5957453452E+00 -1.5936261598E+00 -1.5915125955E+00 -1.5894046301E+00 + -1.5873022413E+00 -1.5852054071E+00 -1.5831141054E+00 -1.5810283144E+00 + -1.5789480123E+00 -1.5768731775E+00 -1.5748037884E+00 -1.5727398238E+00 + -1.5706812621E+00 -1.5686280824E+00 -1.5665802634E+00 -1.5645377842E+00 + -1.5625006240E+00 -1.5604687620E+00 -1.5584421776E+00 -1.5564208502E+00 + -1.5544047594E+00 -1.5523938849E+00 -1.5503882065E+00 -1.5483877040E+00 + -1.5463923574E+00 -1.5444021469E+00 -1.5424170526E+00 -1.5404370548E+00 + -1.5384621340E+00 -1.5364922706E+00 -1.5345274451E+00 -1.5325676384E+00 + -1.5306128312E+00 -1.5286630045E+00 -1.5267181391E+00 -1.5247782162E+00 + -1.5228432169E+00 -1.5209131226E+00 -1.5189879146E+00 -1.5170675745E+00 + -1.5151520836E+00 -1.5132414238E+00 -1.5113355767E+00 -1.5094345242E+00 + -1.5075382482E+00 -1.5056467307E+00 -1.5037599539E+00 -1.5018779000E+00 + -1.5000005512E+00 -1.4981278899E+00 -1.4962598986E+00 -1.4943965598E+00 + -1.4925378562E+00 -1.4906837705E+00 -1.4888342855E+00 -1.4869893841E+00 + -1.4851490493E+00 -1.4833132642E+00 -1.4814820119E+00 -1.4796552756E+00 + -1.4778330387E+00 -1.4760152845E+00 -1.4742019965E+00 -1.4723931584E+00 + -1.4705887536E+00 -1.4687887661E+00 -1.4669931794E+00 -1.4652019776E+00 + -1.4634151446E+00 -1.4616326644E+00 -1.4598545212E+00 -1.4580806991E+00 + -1.4563111824E+00 -1.4545459554E+00 -1.4527850026E+00 -1.4510283084E+00 + -1.4492758575E+00 -1.4475276344E+00 -1.4457836239E+00 -1.4440438108E+00 + -1.4423081800E+00 -1.4405767163E+00 -1.4388494049E+00 -1.4371262307E+00 + -1.4354071789E+00 -1.4336922348E+00 -1.4319813836E+00 -1.4302746108E+00 + -1.4285719017E+00 -1.4268732419E+00 -1.4251786168E+00 -1.4234880123E+00 + -1.4218014139E+00 -1.4201188075E+00 -1.4184401789E+00 -1.4167655139E+00 + -1.4150947987E+00 -1.4134280192E+00 -1.4117651615E+00 -1.4101062119E+00 + -1.4084511564E+00 -1.4067999816E+00 -1.4051526737E+00 -1.4035092191E+00 + -1.4018696044E+00 -1.4002338161E+00 -1.3986018408E+00 -1.3969736652E+00 + -1.3953492761E+00 -1.3937286602E+00 -1.3921118045E+00 -1.3904986959E+00 + -1.3888893213E+00 -1.3872836677E+00 -1.3856817225E+00 -1.3840834725E+00 + -1.3824889052E+00 -1.3808980078E+00 -1.3793107676E+00 -1.3777271721E+00 + -1.3761472087E+00 -1.3745708649E+00 -1.3729981283E+00 -1.3714289865E+00 + -1.3698634272E+00 -1.3683014382E+00 -1.3667430073E+00 -1.3651881223E+00 + -1.3636367711E+00 -1.3620889417E+00 -1.3605446221E+00 -1.3590038005E+00 + -1.3574664648E+00 -1.3559326034E+00 -1.3544022044E+00 -1.3528752561E+00 + -1.3513517469E+00 -1.3498316652E+00 -1.3483149994E+00 -1.3468017381E+00 + -1.3452918696E+00 -1.3437853828E+00 -1.3422822662E+00 -1.3407825085E+00 + -1.3392860984E+00 -1.3377930249E+00 -1.3363032767E+00 -1.3348168427E+00 + -1.3333337119E+00 -1.3318538733E+00 -1.3303773160E+00 -1.3289040290E+00 + -1.3274340014E+00 -1.3259672226E+00 -1.3245036817E+00 -1.3230433680E+00 + -1.3215862708E+00 -1.3201323796E+00 -1.3186816838E+00 -1.3172341728E+00 + -1.3157898361E+00 -1.3143486634E+00 -1.3129106443E+00 -1.3114757684E+00 + -1.3100440254E+00 -1.3086154050E+00 -1.3071898972E+00 -1.3057674916E+00 + -1.3043481782E+00 -1.3029319469E+00 -1.3015187878E+00 -1.3001086907E+00 + -1.2987016458E+00 -1.2972976432E+00 -1.2958966729E+00 -1.2944987253E+00 + -1.2931037904E+00 -1.2917118587E+00 -1.2903229204E+00 -1.2889369658E+00 + -1.2875539854E+00 -1.2861739695E+00 -1.2847969088E+00 -1.2834227936E+00 + -1.2820516146E+00 -1.2806833623E+00 -1.2793180274E+00 -1.2779556006E+00 + + + + 2.6263693442E-09 9.0864595300E-02 1.8147926067E-01 2.7159427436E-01 + 3.6096035213E-01 4.4932891798E-01 5.3645243544E-01 6.2208481630E-01 + 7.0598192117E-01 7.8790216296E-01 8.6760722111E-01 9.4486286998E-01 + 1.0194399212E+00 1.0911152754E+00 1.1596730735E+00 1.2249059359E+00 + 1.2866162714E+00 1.3446176359E+00 1.3987361173E+00 1.4488117200E+00 + 1.4946997225E+00 1.5362719766E+00 1.5734181217E+00 1.6060466817E+00 + 1.6340860196E+00 1.6574851208E+00 1.6762141841E+00 1.6902649986E+00 + 1.6996510907E+00 1.7044076298E+00 1.7045910857E+00 1.7002786367E+00 + 1.6915673306E+00 1.6785730110E+00 1.6614290206E+00 1.6402847037E+00 + 1.6153037317E+00 1.5866622818E+00 1.5545471006E+00 1.5191534904E+00 + 1.4806832552E+00 1.4393426473E+00 1.3953403542E+00 1.3488855661E+00 + 1.3001861622E+00 1.2494470527E+00 1.1968687073E+00 1.1426459022E+00 + 1.0869667065E+00 1.0300117271E+00 9.7195362569E-01 9.1295691115E-01 + 8.5317800777E-01 7.9276559072E-01 7.3186117389E-01 6.7059992859E-01 + 6.0911170529E-01 5.4752222517E-01 4.8595440291E-01 4.2452975816E-01 + 3.6336987002E-01 3.0259782642E-01 2.4233961960E-01 1.8272543867E-01 + 1.2389081172E-01 6.5977552495E-02 9.1344702348E-03 -4.6482193943E-02 + -1.0070863492E-01 -1.5337367981E-01 -2.0429932930E-01 -2.5330165253E-01 + -3.0019203574E-01 -3.4477877592E-01 -3.8686900183E-01 -4.2627089639E-01 + -4.6279618559E-01 -4.9626285174E-01 -5.2649802159E-01 -5.5334097364E-01 + -5.7664620402E-01 -5.9628648640E-01 -6.1215585891E-01 -6.2417246968E-01 + -6.3228121349E-01 -6.3645609317E-01 -6.3670224354E-01 -6.3305755979E-01 + -6.2559387888E-01 -6.1441766976E-01 -5.9967019708E-01 -5.8152713225E-01 + -5.6019759670E-01 -5.3592263256E-01 -5.0897310787E-01 -4.7964707449E-01 + -4.4826660854E-01 -4.1517417394E-01 -3.8072856034E-01 -3.4530045589E-01 + -3.0926772417E-01 -2.7301046163E-01 -2.3690591784E-01 -2.0132336501E-01 + -1.6661900587E-01 -1.3313100991E-01 -1.0117476661E-01 -7.1038441901E-02 + -4.2978919126E-02 -1.7218199626E-02 6.0596700493E-03 2.6711086613E-02 + 4.4634747293E-02 5.9772840815E-02 7.2111549701E-02 8.1680854842E-02 + 8.8553646912E-02 9.2844162974E-02 9.4705780106E-02 9.4328211186E-02 + 9.1934158704E-02 8.7775502461E-02 8.2128276953E-02 7.5284033685E-02 + 6.7542244454E-02 5.9204572324E-02 5.0569143614E-02 4.1924895086E-02 + 3.3546128467E-02 2.5686528092E-02 1.8572193048E-02 1.2404778439E-02 + 7.3539977635E-03 3.5541313591E-03 1.0923104749E-03 6.4485376356E-05 + -3.3538100352E-06 -6.3747380524E-07 -1.0948001599E-11 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + -5.7762853389E-09 -2.6029784663E-02 -5.1859360283E-02 -7.7288302119E-02 + -1.0211579966E-01 -1.2614057627E-01 -1.4916093957E-01 -1.7097499910E-01 + -1.9138108202E-01 -2.1017837074E-01 -2.2716777841E-01 -2.4215306980E-01 + -2.5494222593E-01 -2.6534904157E-01 -2.7319493558E-01 -2.7831094520E-01 + -2.8053986705E-01 -2.7973850012E-01 -2.7577993988E-01 -2.6855586722E-01 + -2.5797877255E-01 -2.4398405327E-01 -2.2653192238E-01 -2.0560906747E-01 + -1.8123000255E-01 -1.5343805981E-01 -1.2230597514E-01 -8.7936029105E-02 + -5.0459714458E-02 -1.0036911633E-02 3.3145434825E-02 7.8875134174E-02 + 1.2691704463E-01 1.7701581648E-01 2.2889904181E-01 2.8228075826E-01 + 3.3686524390E-01 3.9235103077E-01 4.4843505753E-01 5.0481687512E-01 + 5.6120281569E-01 6.1731003295E-01 6.7287032225E-01 7.2763363134E-01 + 7.8137117739E-01 8.3387809264E-01 8.8497553033E-01 9.3451217315E-01 + 9.8236509933E-01 1.0284399754E+00 1.0726705601E+00 1.1150175194E+00 + 1.1554665701E+00 1.1940259853E+00 1.2307235107E+00 1.2656027581E+00 + 1.2987191549E+00 1.3301355427E+00 1.3599175287E+00 1.3881287014E+00 + 1.4148258324E+00 1.4400541846E+00 1.4638430537E+00 1.4862016641E+00 + 1.5071155379E+00 1.5265434476E+00 1.5444150526E+00 1.5606293068E+00 + 1.5750537090E+00 1.5875244514E+00 1.5978475002E+00 1.6058006243E+00 + 1.6111363638E+00 1.6135859106E+00 1.6128638498E+00 1.6086736884E+00 + 1.6007140801E+00 1.5886856330E+00 1.5722981706E+00 1.5512783044E+00 + 1.5253771592E+00 1.4943780898E+00 1.4581042153E+00 1.4164256025E+00 + 1.3692659247E+00 1.3166084331E+00 1.2585010838E+00 1.1950606782E+00 + 1.1264758881E+00 1.0530090602E+00 9.7499671252E-01 8.9284866112E-01 + 8.0704574377E-01 7.1813613112E-01 6.2673024740E-01 5.3349434960E-01 + 4.3914284304E-01 3.4442943820E-01 2.5013727928E-01 1.5706819860E-01 + 6.6031271623E-02 -2.2169134999E-02 -1.0674561598E-01 -1.8694006402E-01 + -2.6203586827E-01 -3.3136975091E-01 -3.9434302132E-01 -4.5043203489E-01 + -4.9919765562E-01 -5.4029353807E-01 -5.7347306438E-01 -5.9859479617E-01 + -6.1562632818E-01 -6.2464646027E-01 -6.2584563620E-01 -6.1952463125E-01 + -6.0609150442E-01 -5.8605686566E-01 -5.6002754202E-01 -5.2869875976E-01 + -4.9284498523E-01 -4.5330962273E-01 -4.1099117945E-01 -3.6681845521E-01 + -3.2172961078E-01 -2.7665737984E-01 -2.3251434044E-01 -1.9017843683E-01 + -1.5047896652E-01 -1.1418323384E-01 -8.1982639828E-02 -5.4483246270E-02 + -3.2197963066E-02 -1.5540370959E-02 -4.7782363210E-03 -2.8273743671E-04 + 1.4718226692E-05 2.7909209524E-06 2.4075050572E-11 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + -2.9437954296E-09 2.0739035576E-03 8.2875551048E-03 1.8616750866E-02 + 3.3021065109E-02 5.1443727547E-02 7.3811464621E-02 1.0003431715E-01 + 1.3000544977E-01 1.6360097007E-01 2.0067977738E-01 2.4108346243E-01 + 2.8463627999E-01 3.3114521671E-01 3.8040017564E-01 4.3217429790E-01 + 4.8622443986E-01 5.4229182189E-01 6.0010286139E-01 6.5937019949E-01 + 7.1979392676E-01 7.8106300869E-01 8.4285690781E-01 9.0484739377E-01 + 9.6670052911E-01 1.0280788129E+00 1.0886434612E+00 1.1480567980E+00 + 1.2059847290E+00 1.2620992644E+00 1.3160810583E+00 1.3676219273E+00 + 1.4164273124E+00 1.4622186470E+00 1.5047355941E+00 1.5437381192E+00 + 1.5790083651E+00 1.6103522999E+00 1.6376011112E+00 1.6606123265E+00 + 1.6792706405E+00 1.6934884408E+00 1.7032060220E+00 1.7083914911E+00 + 1.7090403668E+00 1.7051748855E+00 1.6968430281E+00 1.6841172913E+00 + 1.6670932277E+00 1.6458877857E+00 1.6206374826E+00 1.5914964469E+00 + 1.5586343690E+00 1.5222343980E+00 1.4824910267E+00 1.4396080001E+00 + 1.3937962878E+00 1.3452721536E+00 1.2942553534E+00 1.2409674906E+00 + 1.1856305503E+00 1.1284656315E+00 1.0696918897E+00 1.0095256958E+00 + 9.4818001296E-01 8.8586398636E-01 8.2278273434E-01 7.5913732572E-01 + 6.9512492132E-01 6.3093905439E-01 5.6677002033E-01 5.0280534326E-01 + 4.3923028485E-01 3.7622835938E-01 3.1398181903E-01 2.5267207365E-01 + 1.9248001137E-01 1.3358618865E-01 7.6170862089E-02 2.0413838369E-02 + -3.3505875881E-02 -8.5410637284E-02 -1.3512494853E-01 -1.8247646104E-01 + -2.2729719100E-01 -2.6942493565E-01 -3.0870487003E-01 -3.4499129848E-01 + -3.7814952889E-01 -4.0805783303E-01 -4.3460945164E-01 -4.5771459932E-01 + -4.7730242193E-01 -4.9332285765E-01 -5.0574835232E-01 -5.1457538077E-01 + -5.1982572756E-01 -5.2154748392E-01 -5.1981572187E-01 -5.1473281159E-01 + -5.0642835486E-01 -4.9505871395E-01 -4.8080612347E-01 -4.6387738097E-01 + -4.4450212059E-01 -4.2293068306E-01 -3.9943160436E-01 -3.7428875345E-01 + -3.4779815848E-01 -3.2026456774E-01 -2.9199779916E-01 -2.6330893761E-01 + -2.3450644436E-01 -2.0589224666E-01 -1.7775787770E-01 -1.5038073820E-01 + -1.2402055032E-01 -9.8916072825E-02 -7.5282142872E-02 -5.3307105340E-02 + -3.3150683840E-02 -1.4942343582E-02 1.2201140383E-03 1.5272610137E-02 + 2.7185833327E-02 3.6964982801E-02 4.4648920168E-02 5.0308750362E-02 + 5.4045858227E-02 5.5989433905E-02 5.6293530323E-02 5.5133705211E-02 + 5.2703308338E-02 4.9209481747E-02 4.4868946651E-02 3.9903655083E-02 + 3.4536386986E-02 2.8986380494E-02 2.3465074555E-02 1.8174468405E-02 + 1.3300268015E-02 9.0050228587E-03 5.4295720367E-03 2.6908272576E-03 + 8.7106657991E-04 6.8594640241E-05 -8.5863194517E-06 1.0728400441E-06 + 3.1391446060E-12 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + 7.1004856855E-09 -8.6138471742E-04 -3.4420433091E-03 -7.7313731176E-03 + -1.3711320980E-02 -2.1355825814E-02 -3.0630069179E-02 -4.1489563695E-02 + -5.3879116347E-02 -6.7731709723E-02 -8.2967349148E-02 -9.9491927133E-02 + -1.1719615867E-01 -1.3595464137E-01 -1.5562509348E-01 -1.7604782003E-01 + -1.9704545357E-01 -2.1842301001E-01 -2.3996829366E-01 -2.6145267719E-01 + -2.8263227367E-01 -3.0324950793E-01 -3.2303508442E-01 -3.4171033840E-01 + -3.5898994679E-01 -3.7458496506E-01 -3.8820614683E-01 -3.9956749433E-01 + -4.0838997987E-01 -4.1440537224E-01 -4.1736009686E-01 -4.1701905497E-01 + -4.1316932548E-01 -4.0562367315E-01 -3.9422378853E-01 -3.7884318871E-01 + -3.5938971341E-01 -3.3580755789E-01 -3.0807879265E-01 -2.7622432978E-01 + -2.4030430679E-01 -2.0041787068E-01 -1.5670235716E-01 -1.0933187317E-01 + -5.8515303161E-02 -4.4937724521E-03 5.2462387184E-02 1.1205711352E-01 + 1.7397246528E-01 2.3787277418E-01 3.0340901600E-01 3.7022331383E-01 + 4.3795348346E-01 5.0623752969E-01 5.7471800327E-01 6.4304613111E-01 + 7.1088563774E-01 7.7791618248E-01 8.4383634620E-01 9.0836611171E-01 + 9.7124879357E-01 1.0322523864E+00 1.0911703147E+00 1.1478215803E+00 + 1.2020503209E+00 1.2537248038E+00 1.3027358963E+00 1.3489950651E+00 + 1.3924319694E+00 1.4329917233E+00 1.4706319119E+00 1.5053194506E+00 + 1.5370273842E+00 1.5657317224E+00 1.5914084095E+00 1.6140305226E+00 + 1.6335657898E+00 1.6499745083E+00 1.6632079391E+00 1.6732072367E+00 + 1.6799029653E+00 1.6832152339E+00 1.6830544692E+00 1.6793228278E+00 + 1.6719162327E+00 1.6607270023E+00 1.6456470222E+00 1.6265713965E+00 + 1.6034024989E+00 1.5760543319E+00 1.5444570906E+00 1.5085618200E+00 + 1.4683450460E+00 1.4238132591E+00 1.3750071267E+00 1.3220053128E+00 + 1.2649277894E+00 1.2039385288E+00 1.1392474806E+00 1.0711117465E+00 + 9.9983588221E-01 9.2577127578E-01 8.4931456644E-01 7.7090509159E-01 + 6.9102136964E-01 6.1017664807E-01 5.2891356780E-01 4.4779801611E-01 + 3.6741226034E-01 2.8834747307E-01 2.1119577668E-01 1.3654194892E-01 + 6.4954943590E-02 -3.0206112356E-03 -6.6872769233E-02 -1.2613030559E-01 + -1.8037027139E-01 -2.2922489814E-01 -2.7238769651E-01 -3.0961860427E-01 + -3.4074805582E-01 -3.6567985148E-01 -3.8439380854E-01 -3.9695129758E-01 + -4.0349755639E-01 -4.0425993290E-01 -3.9954469553E-01 -3.8973247381E-01 + -3.7527240230E-01 -3.5667505181E-01 -3.3450425677E-01 -3.0936797012E-01 + -2.8190829666E-01 -2.5279087342E-01 -2.2269377943E-01 -1.9229616811E-01 + -1.6226682197E-01 -1.3325284343E-01 -1.0586867523E-01 -8.0690350240E-02 + -5.8239971627E-02 -3.8970147164E-02 -2.3264852097E-02 -1.1435126601E-02 + -3.6773401648E-03 -2.8792776512E-04 3.5935671732E-05 -4.5001838630E-06 + -7.1845816260E-12 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + 1.2441943702E-07 1.5228553711E-04 1.2110197083E-03 4.0465748671E-03 + 9.4583144279E-03 1.8141914052E-02 3.0659981032E-02 4.7416919750E-02 + 6.8638866631E-02 9.4359369207E-02 1.2441131470E-01 1.5842542892E-01 + 1.9583547131E-01 2.3589005197E-01 2.7767079787E-01 3.2011640238E-01 + 3.6205191239E-01 4.0222244322E-01 4.3933037061E-01 4.7207493333E-01 + 4.9919309424E-01 5.1950045390E-01 5.3193099094E-01 5.3557441884E-01 + 5.2970999810E-01 5.1383572675E-01 4.8769194685E-01 4.5127854890E-01 + 4.0486512465E-01 3.4899360895E-01 2.8447315585E-01 2.1236721021E-01 + 1.3397295500E-01 5.0793532902E-02 -3.5496349469E-02 -1.2309062973E-01 + -2.1009692802E-01 -2.9458528013E-01 -3.7463930602E-01 -4.4840846241E-01 + -5.1415997198E-01 -5.7032900269E-01 -6.1556569056E-01 -6.4877765702E-01 + -6.6916676757E-01 -6.7625900901E-01 -6.6992652561E-01 -6.5040104592E-01 + -6.1827814680E-01 -5.7451203457E-01 -5.2040076844E-01 -4.5756210276E-01 + -3.8790037521E-01 -3.1356511122E-01 -2.3690224452E-01 -1.6039906265E-01 + -8.6624170083E-02 -1.8163913583E-02 4.2443168230E-02 9.2772231458E-02 + 1.3057667327E-01 1.5384966822E-01 1.6088107435E-01 1.5030818155E-01 + 1.2115890728E-01 7.2886215997E-02 5.3927428847E-03 -8.0955163975E-02 + -1.8532451214E-01 -3.0642409992E-01 -4.4252429033E-01 -5.9148781011E-01 + -7.5081097824E-01 -9.1767449859E-01 -1.0890027003E+00 -1.2615298843E+00 + -1.4318722397E+00 -1.5966036376E+00 -1.7523334934E+00 -1.8957848166E+00 + -2.0238705447E+00 -2.1337662775E+00 -2.2229776022E+00 -2.2894003162E+00 + -2.3313720128E+00 -2.3477137003E+00 -2.3377603569E+00 -2.3013795929E+00 + -2.2389778766E+00 -2.1514940893E+00 -2.0403804826E+00 -1.9075714273E+00 + -1.7554406487E+00 -1.5867479306E+00 -1.4045765395E+00 -1.2122628585E+00 + -1.0133199193E+00 -8.1135668374E-01 -6.0999503836E-01 -4.1278653421E-01 + -2.2313091634E-01 -4.4198453621E-02 1.2114200838E-01 2.7038748386E-01 + 4.0145616614E-01 5.1273224549E-01 6.0309909902E-01 6.7196001326E-01 + 7.1924590959E-01 7.4540986621E-01 7.5140856046E-01 7.3867108345E-01 + 7.0905589587E-01 6.6479699371E-01 6.0844062453E-01 5.4277413566E-01 + 4.7074873523E-01 3.9539809406E-01 3.1975491435E-01 2.4676849477E-01 + 1.7925459141E-01 1.1975246654E-01 7.0461488332E-02 3.3222501839E-02 + 9.3918414063E-03 2.6853249310E-04 3.6600216683E-05 -1.0952513168E-05 + 2.9939016893E-12 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + 0. 0. 0. 0. + + + 1.1865686330E+01 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 1.5761898099E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -9.4601795426E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 -2.2385533066E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -2.7682085177E+00 + + + + + -1.4416107197E-12 1.3671537550E-02 2.7345220792E-02 4.1023172510E-02 + 5.4707469739E-02 6.8400121077E-02 8.2103044202E-02 9.5818043691E-02 + 1.0954678919E-01 1.2329079401E-01 1.3705139431E-01 1.5082972871E-01 + 1.6462671878E-01 1.7844305007E-01 1.9227915410E-01 2.0613519120E-01 + 2.2001103429E-01 2.3390625381E-01 2.4782010369E-01 2.6175150856E-01 + 2.7569905225E-01 2.8966096769E-01 3.0363512809E-01 3.1761903976E-01 + 3.3160983641E-01 3.4560427503E-01 3.5959873345E-01 3.7358920957E-01 + 3.8757132238E-01 4.0154031458E-01 4.1549105719E-01 4.2941805572E-01 + 4.4331545826E-01 4.5717706528E-01 4.7099634120E-01 4.8476642763E-01 + 4.9848015836E-01 5.1213007586E-01 5.2570844941E-01 5.3920729468E-01 + 5.5261839472E-01 5.6593332219E-01 5.7914346284E-01 5.9224004006E-01 + 6.0521414034E-01 6.1805673961E-01 6.3075873025E-01 6.4331094867E-01 + 6.5570420326E-01 6.6792930270E-01 6.7997708427E-01 6.9183844222E-01 + 7.0350435592E-01 7.1496591774E-01 7.2621436038E-01 7.3724108370E-01 + 7.4803768077E-01 7.5859596305E-01 7.6890798463E-01 7.7896606539E-01 + 7.8876281296E-01 7.9829114342E-01 8.0754430065E-01 8.1651587429E-01 + 8.2519981619E-01 8.3359045536E-01 8.4168251139E-01 8.4947110630E-01 + 8.5695177475E-01 8.6412047279E-01 8.7097358490E-01 8.7750792961E-01 + 8.8372076357E-01 8.8960978409E-01 8.9517313030E-01 9.0040938300E-01 + 9.0531756305E-01 9.0989712864E-01 9.1414797136E-01 9.1807041106E-01 + 9.2166518985E-01 9.2493346498E-01 9.2787680091E-01 9.3049716055E-01 + 9.3279689576E-01 9.3477873716E-01 9.3644578334E-01 9.3780148950E-01 + 9.3884965560E-01 9.3959441405E-01 9.4004021705E-01 9.4019182347E-01 + 9.4005428549E-01 9.3963293490E-01 9.3893336915E-01 9.3796143707E-01 + 9.3672322450E-01 9.3522503953E-01 9.3347339759E-01 9.3147500637E-01 + 9.2923675044E-01 9.2676567574E-01 9.2406897376E-01 9.2115396565E-01 + 9.1802808600E-01 9.1469886649E-01 9.1117391931E-01 9.0746092042E-01 + 9.0356759263E-01 8.9950168853E-01 8.9527097323E-01 8.9088320710E-01 + 8.8634612835E-01 8.8166743558E-01 8.7685477037E-01 8.7191569989E-01 + 8.6685769961E-01 8.6168813619E-01 8.5641425060E-01 8.5104314147E-01 + 8.4558174884E-01 8.4003683837E-01 8.3441498597E-01 8.2872256303E-01 + 8.2296572239E-01 8.1715038489E-01 8.1128222682E-01 8.0536666825E-01 + 7.9940886225E-01 7.9341368510E-01 7.8738572748E-01 7.8132928648E-01 + 7.7524835934E-01 7.6914663863E-01 7.6302750848E-01 7.5689404197E-01 + 7.5074900511E-01 7.4459492037E-01 7.3843419200E-01 7.3226913879E-01 + 7.2610198536E-01 7.1993487042E-01 7.1376984815E-01 7.0760889105E-01 + 7.0145389239E-01 6.9530666875E-01 6.8916896234E-01 6.8304244335E-01 + 6.7692871222E-01 6.7082930185E-01 6.6474567972E-01 6.5867924997E-01 + 6.5263135548E-01 6.4660327975E-01 6.4059624889E-01 6.3461143344E-01 + 6.2864995019E-01 6.2271286393E-01 6.1680118914E-01 6.1091589166E-01 + 6.0505789032E-01 5.9922805843E-01 5.9342722536E-01 5.8765617798E-01 + 5.8191566209E-01 5.7620638379E-01 5.7052901086E-01 5.6488417401E-01 + 5.5927246819E-01 5.5369445377E-01 5.4815065777E-01 5.4264157498E-01 + 5.3716766910E-01 5.3172937381E-01 5.2632709382E-01 5.2096120589E-01 + 5.1563205981E-01 5.1033997938E-01 5.0508526331E-01 4.9986818613E-01 + 4.9468899905E-01 4.8954793081E-01 4.8444518853E-01 4.7938095842E-01 + 4.7435540664E-01 4.6936867998E-01 4.6442090660E-01 4.5951219675E-01 + 4.5464264338E-01 4.4981232288E-01 4.4502129565E-01 4.4026960674E-01 + 4.3555728641E-01 4.3088435078E-01 4.2625080230E-01 4.2165663035E-01 + 4.1710181173E-01 4.1258631118E-01 4.0811008186E-01 4.0367306583E-01 + 3.9927519449E-01 3.9491638908E-01 3.9059656102E-01 3.8631561239E-01 + 3.8207343633E-01 3.7786991739E-01 3.7370493195E-01 3.6957834853E-01 + 3.6549002822E-01 3.6143982492E-01 3.5742758576E-01 3.5345315139E-01 + 3.4951635623E-01 3.4561702887E-01 3.4175499227E-01 3.3793006408E-01 + 3.3414205691E-01 3.3039077857E-01 3.2667603234E-01 3.2299761718E-01 + 3.1935532803E-01 3.1574895594E-01 3.1217828840E-01 3.0864310946E-01 + 3.0514319998E-01 3.0167833780E-01 2.9824829796E-01 2.9485285288E-01 + 2.9149177250E-01 2.8816482450E-01 2.8487177442E-01 2.8161238587E-01 + 2.7838642064E-01 2.7519363886E-01 2.7203379916E-01 2.6890665878E-01 + 2.6581197372E-01 2.6274949889E-01 2.5971898816E-01 2.5672019458E-01 + 2.5375287040E-01 2.5081676725E-01 2.4791163622E-01 2.4503722793E-01 + 2.4219329269E-01 2.3937958055E-01 2.3659584141E-01 2.3384182509E-01 + 2.3111728145E-01 2.2842196043E-01 2.2575561213E-01 2.2311798694E-01 + 2.2050883552E-01 2.1792790897E-01 2.1537495881E-01 2.1284973709E-01 + 2.1035199644E-01 2.0788149013E-01 2.0543797210E-01 2.0302119707E-01 + 2.0063092054E-01 1.9826689884E-01 1.9592888921E-01 1.9361664983E-01 + 1.9132993984E-01 1.8906851941E-01 1.8683214977E-01 1.8462059323E-01 + 1.8243361324E-01 1.8027097441E-01 1.7813244255E-01 1.7601778467E-01 + 1.7392676905E-01 1.7185916525E-01 1.6981474413E-01 1.6779327786E-01 + 1.6579454000E-01 1.6381830544E-01 1.6186435048E-01 1.5993245284E-01 + 1.5802239166E-01 1.5613394751E-01 1.5426690244E-01 1.5242103997E-01 + 1.5059614510E-01 1.4879200434E-01 1.4700840570E-01 1.4524513874E-01 + 1.4350199450E-01 1.4177876561E-01 1.4007524623E-01 1.3839123206E-01 + 1.3672652039E-01 1.3508091004E-01 1.3345420145E-01 1.3184619658E-01 + 1.3025669902E-01 1.2868551391E-01 1.2713244798E-01 1.2559730955E-01 + 1.2407990854E-01 1.2258005642E-01 1.2109756628E-01 1.1963225279E-01 + 1.1818393219E-01 1.1675242233E-01 1.1533754261E-01 1.1393911403E-01 + 1.1255695916E-01 1.1119090216E-01 1.0984076872E-01 1.0850638614E-01 + 1.0718758324E-01 1.0588419044E-01 1.0459603967E-01 1.0332296442E-01 + 1.0206479974E-01 1.0082138219E-01 9.9592549856E-02 9.8378142367E-02 + 9.7178000849E-02 9.5991967943E-02 9.4819887789E-02 9.3661606018E-02 + 9.2516969751E-02 9.1385827583E-02 9.0268029580E-02 8.9163427271E-02 + 8.8071873637E-02 8.6993223103E-02 8.5927331532E-02 8.4874056213E-02 + 8.3833255855E-02 8.2804790576E-02 8.1788521894E-02 8.0784312718E-02 + 7.9792027340E-02 7.8811531424E-02 7.7842691996E-02 7.6885377436E-02 + 7.5939457467E-02 7.5004803148E-02 7.4081286860E-02 7.3168782299E-02 + 7.2267164464E-02 7.1376309651E-02 7.0496095438E-02 6.9626400678E-02 + 6.8767105489E-02 6.7918091241E-02 6.7079240551E-02 6.6250437268E-02 + 6.5431566465E-02 6.4622514428E-02 6.3823168647E-02 6.3033417805E-02 + 6.2253151769E-02 6.1482261576E-02 6.0720639430E-02 5.9968178683E-02 + 5.9224773831E-02 5.8490320505E-02 5.7764715453E-02 5.7047856539E-02 + 5.6339642726E-02 5.5639974072E-02 5.4948751715E-02 5.4265877865E-02 + 5.3591255793E-02 5.2924789824E-02 5.2266385323E-02 5.1615948690E-02 + 5.0973387346E-02 5.0338609723E-02 4.9711525259E-02 4.9092044383E-02 + 4.8480078510E-02 4.7875540027E-02 4.7278342287E-02 4.6688399598E-02 + 4.6105627213E-02 4.5529941322E-02 4.4961259043E-02 4.4399498409E-02 + 4.3844578366E-02 4.3296418756E-02 4.2754940312E-02 4.2220064650E-02 + 4.1691714257E-02 4.1169812485E-02 4.0654283540E-02 4.0145052474E-02 + 3.9642045176E-02 3.9145188364E-02 3.8654409578E-02 3.8169637167E-02 + 3.7690800284E-02 3.7217828877E-02 3.6750653682E-02 3.6289206211E-02 + 3.5833418748E-02 3.5383224337E-02 3.4938556779E-02 3.4499350619E-02 + 3.4065541140E-02 3.3637064357E-02 3.3213857006E-02 3.2795856539E-02 + 3.2383001115E-02 3.1975229593E-02 3.1572481524E-02 3.1174697144E-02 + 3.0781817366E-02 3.0393783776E-02 3.0010538619E-02 2.9632024799E-02 + 2.9258185867E-02 2.8888966019E-02 2.8524310081E-02 2.8164163513E-02 + 2.7808472392E-02 2.7457183411E-02 2.7110243871E-02 2.6767601675E-02 + 2.6429205319E-02 2.6095003891E-02 2.5764947057E-02 2.5438985060E-02 + 2.5117068715E-02 2.4799149396E-02 2.4485179037E-02 2.4175110123E-02 + 2.3868895682E-02 2.3566489284E-02 2.3267845030E-02 2.2972917548E-02 + 2.2681661991E-02 2.2394034023E-02 2.2109989824E-02 2.1829486074E-02 + 2.1552479954E-02 2.1278929139E-02 2.1008791794E-02 2.0742026563E-02 + 2.0478592571E-02 2.0218449415E-02 1.9961557158E-02 1.9707876328E-02 + 1.9457367908E-02 1.9209993333E-02 1.8965714486E-02 1.8724493694E-02 + 1.8486293718E-02 1.8251077756E-02 1.8018809430E-02 1.7789452787E-02 + 1.7562972294E-02 1.7339332830E-02 1.7118499685E-02 1.6900438552E-02 + 1.6685115528E-02 1.6472497104E-02 1.6262550163E-02 1.6055241976E-02 + 1.5850540197E-02 1.5648412859E-02 1.5448828372E-02 1.5251755514E-02 + 1.5057163431E-02 1.4865021633E-02 1.4675299986E-02 1.4487968713E-02 + 1.4302998389E-02 1.4120359932E-02 1.3940024607E-02 1.3761964017E-02 + 1.3586150101E-02 1.3412555129E-02 1.3241151702E-02 1.3071912742E-02 + 1.2904811496E-02 1.2739821525E-02 1.2576916707E-02 1.2416071230E-02 + 1.2257259586E-02 1.2100456576E-02 1.1945637297E-02 1.1792777146E-02 + 1.1641851811E-02 1.1492837274E-02 1.1345709800E-02 1.1200445942E-02 + 1.1057022532E-02 1.0915416678E-02 1.0775605767E-02 1.0637567454E-02 + 1.0501279663E-02 1.0366720584E-02 1.0233868671E-02 1.0102702634E-02 + 9.9732014445E-03 9.8453443231E-03 9.7191107440E-03 9.5944804284E-03 + 9.4714333434E-03 9.3499496980E-03 9.2300099415E-03 9.1115947596E-03 + 8.9946850729E-03 8.8792620333E-03 8.7653070219E-03 8.6528016459E-03 + 8.5417277367E-03 8.4320673468E-03 8.3238027474E-03 8.2169164258E-03 + 8.1113910833E-03 8.0072096322E-03 7.9043551940E-03 7.8028110961E-03 + 7.7025608705E-03 7.6035882506E-03 7.5058771691E-03 7.4094117559E-03 + 7.3141763356E-03 7.2201554252E-03 7.1273337322E-03 7.0356961520E-03 + 6.9452277656E-03 6.8559138380E-03 6.7677398156E-03 6.6806913242E-03 + 6.5947541668E-03 6.5099143217E-03 6.4261579403E-03 6.3434713452E-03 + 6.2618410279E-03 6.1812536470E-03 6.1016960264E-03 6.0231551530E-03 + 5.9456181749E-03 5.8690723996E-03 5.7935052920E-03 5.7189044724E-03 + 5.6452577149E-03 5.5725529455E-03 5.5007782401E-03 5.4299218230E-03 + 5.3599720649E-03 5.2909174810E-03 5.2227467299E-03 5.1554486111E-03 + 5.0890120639E-03 5.0234261654E-03 4.9586801287E-03 4.8947633019E-03 + 4.8316651658E-03 4.7693753326E-03 4.7078835441E-03 4.6471796706E-03 + 4.5872537089E-03 4.5280957807E-03 4.4696961315E-03 4.4120451290E-03 + 4.3551332611E-03 4.2989511353E-03 4.2434894763E-03 4.1887391253E-03 + 4.1346910384E-03 4.0813362850E-03 4.0286660465E-03 3.9766716150E-03 + 3.9253443919E-03 3.8746758866E-03 3.8246577152E-03 3.7752815991E-03 + 3.7265393636E-03 3.6784229369E-03 3.6309243488E-03 3.5840357292E-03 + 3.5377493070E-03 3.4920574091E-03 3.4469524589E-03 3.4024269750E-03 + 3.3584735706E-03 3.3150849518E-03 3.2722539164E-03 3.2299733534E-03 + 3.1882362412E-03 3.1470356468E-03 3.1063647246E-03 3.0662167155E-03 + 3.0265849456E-03 2.9874628254E-03 2.9488438483E-03 2.9107215903E-03 + 2.8730897080E-03 2.8359419388E-03 2.7992720986E-03 2.7630740820E-03 + 2.7273418604E-03 2.6920694817E-03 2.6572510690E-03 2.6228808196E-03 + 2.5889530044E-03 2.5554619668E-03 2.5224021218E-03 2.4897679549E-03 + 2.4575540219E-03 2.4257549470E-03 2.3943654228E-03 2.3633802093E-03 + 2.3327941325E-03 2.3026020844E-03 2.2727990214E-03 2.2433799641E-03 + 2.2143399962E-03 2.1856742638E-03 2.1573779743E-03 2.1294463963E-03 + 2.1018748582E-03 2.0746587479E-03 2.0477935116E-03 2.0212746535E-03 + 1.9950977349E-03 1.9692583734E-03 1.9437522424E-03 1.9185750702E-03 + 1.8937226392E-03 1.8691907858E-03 1.8449753991E-03 1.8210724204E-03 + 1.7974778427E-03 1.7741877102E-03 1.7511981170E-03 1.7285052071E-03 + 1.7061051737E-03 1.6839942582E-03 1.6621687501E-03 1.6406249858E-03 + 1.6193593487E-03 1.5983682680E-03 1.5776482186E-03 1.5571957201E-03 + 1.5370073367E-03 1.5170796760E-03 1.4974093891E-03 1.4779931699E-03 + 1.4588277541E-03 1.4399099192E-03 1.4212364840E-03 1.4028043075E-03 + 1.3846102889E-03 1.3666513671E-03 1.3489245200E-03 1.3314267638E-03 + 1.3141551531E-03 1.2971067801E-03 1.2802787738E-03 1.2636683003E-03 + 1.2472725614E-03 1.2310887951E-03 1.2151142743E-03 1.1993463070E-03 + 1.1837822356E-03 1.1684194361E-03 1.1532553185E-03 1.1382873256E-03 + 1.1235129330E-03 1.1089296485E-03 1.0945350119E-03 1.0803265944E-03 + 1.0663019982E-03 1.0524588562E-03 1.0387948316E-03 1.0253076175E-03 + 1.0119949364E-03 9.9885454026E-04 9.8588420946E-04 9.7308175298E-04 + 9.6044500779E-04 9.4797183858E-04 9.3566013736E-04 9.2350782316E-04 + 9.1151284164E-04 8.9967316478E-04 8.8798679055E-04 8.7645174257E-04 + 8.6506606976E-04 8.5382784607E-04 8.4273517014E-04 8.3178616495E-04 + 8.2097897756E-04 8.1031177880E-04 7.9978276293E-04 7.8939014738E-04 + 7.7913217244E-04 7.6900710096E-04 7.5901321809E-04 7.4914883097E-04 + 7.3941226846E-04 7.2980188086E-04 7.2031603966E-04 7.1095313723E-04 + 7.0171158659E-04 6.9258982111E-04 6.8358629431E-04 6.7469947953E-04 + 6.6592786973E-04 6.5726997722E-04 6.4872433343E-04 6.4028948865E-04 + 6.3196401177E-04 6.2374649009E-04 6.1563552905E-04 6.0762975203E-04 + 5.9972780008E-04 5.9192833172E-04 5.8423002271E-04 5.7663156585E-04 + 5.6913167072E-04 5.6172906352E-04 5.5442248681E-04 5.4721069932E-04 + 5.4009247576E-04 5.3306660658E-04 5.2613189779E-04 5.1928717079E-04 + 5.1253126210E-04 5.0586302325E-04 4.9928132052E-04 4.9278503479E-04 + 4.8637306135E-04 4.8004430969E-04 4.7379770337E-04 4.6763217977E-04 + 4.6154668999E-04 4.5554019860E-04 4.4961168351E-04 4.4376013583E-04 + 4.3798455960E-04 4.3228397175E-04 4.2665740184E-04 4.2110389193E-04 + 4.1562249644E-04 4.1021228195E-04 4.0487232709E-04 3.9960172236E-04 + 3.9439956996E-04 3.8926498369E-04 3.8419708876E-04 3.7919502164E-04 + 3.7425792997E-04 3.6938497236E-04 3.6457531825E-04 3.5982814782E-04 + 3.5514265181E-04 3.5051803139E-04 3.4595349805E-04 3.4144827344E-04 + 3.3700158924E-04 3.3261268707E-04 3.2828081831E-04 3.2400524402E-04 + 3.1978523476E-04 3.1562007055E-04 3.1150904066E-04 3.0745144357E-04 + 3.0344658678E-04 2.9949378675E-04 2.9559236877E-04 2.9174166681E-04 + 2.8794102348E-04 2.8418978985E-04 2.8048732537E-04 2.7683299779E-04 + 2.7322618299E-04 2.6966626492E-04 2.6615263552E-04 2.6268469453E-04 + 2.5926184950E-04 2.5588351558E-04 2.5254911552E-04 2.4925807952E-04 + 2.4600984512E-04 2.4280385714E-04 2.3963956760E-04 2.3651643557E-04 + 2.3343392712E-04 2.3039151523E-04 2.2738867968E-04 2.2442490700E-04 + 2.2149969032E-04 2.1861252937E-04 2.1576293031E-04 2.1295040569E-04 + 2.1017447440E-04 2.0743466150E-04 2.0473049824E-04 2.0206152190E-04 + 1.9942727576E-04 1.9682730901E-04 1.9426117666E-04 1.9172843949E-04 + 1.8922866396E-04 1.8676142213E-04 1.8432629161E-04 1.8192285547E-04 + 1.7955070218E-04 1.7720942553E-04 1.7489862456E-04 1.7261790353E-04 + 1.7036687179E-04 1.6814514377E-04 1.6595233887E-04 1.6378808144E-04 + 1.6165200067E-04 1.5954373058E-04 1.5746290991E-04 1.5540918208E-04 + 1.5338219512E-04 1.5138160164E-04 1.4940705874E-04 1.4745822795E-04 + 1.4553477520E-04 1.4363637074E-04 1.4176268909E-04 1.3991340898E-04 + 1.3808821333E-04 1.3628678915E-04 1.3450882749E-04 1.3275402343E-04 + 1.3102207599E-04 1.2931268808E-04 1.2762556649E-04 1.2596042178E-04 + 1.2431696828E-04 1.2269492401E-04 1.2109401066E-04 1.1951395350E-04 + 1.1795448141E-04 1.1641532673E-04 1.1489622531E-04 1.1339691642E-04 + 1.1191714268E-04 1.1045665008E-04 1.0901518790E-04 1.0759250866E-04 + 1.0618836810E-04 1.0480252511E-04 1.0343474173E-04 1.0208478308E-04 + 1.0075241732E-04 9.9437415617E-05 9.8139552117E-05 9.6858603889E-05 + 9.5594350893E-05 9.4346575949E-05 9.3115064690E-05 9.1899605535E-05 + 9.0699989646E-05 8.9516010896E-05 8.8347465832E-05 8.7194153643E-05 + 8.6055876124E-05 8.4932437641E-05 8.3823645101E-05 8.2729307917E-05 + 8.1649237977E-05 8.0583249609E-05 7.9531159553E-05 7.8492786928E-05 + 7.7467953201E-05 7.6456482157E-05 7.5458199869E-05 7.4472934671E-05 + 7.3500517122E-05 7.2540779984E-05 7.1593558191E-05 7.0658688819E-05 + 6.9736011062E-05 6.8825366201E-05 6.7926597580E-05 6.7039550577E-05 + 6.6164072579E-05 6.5300012955E-05 6.4447223030E-05 6.3605556064E-05 + 6.2774867218E-05 6.1955013541E-05 6.1145853934E-05 6.0347249134E-05 + 5.9559061688E-05 5.8781155928E-05 5.8013397950E-05 5.7255655588E-05 + 5.6507798396E-05 5.5769697623E-05 5.5041226190E-05 5.4322258671E-05 + 5.3612671270E-05 5.2912341800E-05 5.2221149663E-05 5.1538975827E-05 + 5.0865702809E-05 5.0201214653E-05 4.9545396910E-05 4.8898136620E-05 + 4.8259322291E-05 4.7628843879E-05 4.7006592775E-05 4.6392461779E-05 + 4.5786345086E-05 4.5188138266E-05 4.4597738248E-05 4.4015043302E-05 + 4.3439953020E-05 4.2872368301E-05 4.2312191330E-05 4.1759325569E-05 + 4.1213675732E-05 4.0675147773E-05 4.0143648871E-05 3.9619087412E-05 + 3.9101372972E-05 3.8590416305E-05 3.8086129326E-05 3.7588425095E-05 + 3.7097217805E-05 3.6612422764E-05 3.6133956383E-05 3.5661736159E-05 + 3.5195680663E-05 3.4735709528E-05 3.4281743431E-05 3.3833704080E-05 + 3.3391514203E-05 3.2955097536E-05 3.2524378804E-05 3.2099283714E-05 + + + 3.0701365061E-11 4.5992783880E-04 1.8385607881E-03 4.1324511019E-03 + 7.3358657152E-03 1.1440805958E-02 1.6437035047E-02 2.2312113238E-02 + 2.9051440516E-02 3.6638306631E-02 4.5053948296E-02 5.4277613319E-02 + 6.4286631402E-02 7.5056491329E-02 8.6560924240E-02 9.8771992646E-02 + 1.1166018483E-01 1.2519451427E-01 1.3934262362E-01 1.5407089297E-01 + 1.6934455173E-01 1.8512779391E-01 2.0138389615E-01 2.1807533819E-01 + 2.3516392505E-01 2.5261091072E-01 2.7037712260E-01 2.8842308637E-01 + 3.0670915062E-01 3.2519561091E-01 3.4384283261E-01 3.6261137216E-01 + 3.8146209608E-01 4.0035629755E-01 4.1925580976E-01 4.3812311589E-01 + 4.5692145508E-01 4.7561492415E-01 4.9416857462E-01 5.1254850460E-01 + 5.3072194541E-01 5.4865734248E-01 5.6632443035E-01 5.8369430147E-01 + 6.0073946862E-01 6.1743392088E-01 6.3375317285E-01 6.4967430713E-01 + 6.6517600997E-01 6.8023860009E-01 6.9484405061E-01 7.0897600421E-01 + 7.2261978151E-01 7.3576238289E-01 7.4839248373E-01 7.6050042347E-01 + 7.7207818841E-01 7.8311938871E-01 7.9361922972E-01 8.0357447792E-01 + 8.1298342187E-01 8.2184582829E-01 8.3016289380E-01 8.3793719254E-01 + 8.4517262008E-01 8.5187433394E-01 8.5804869116E-01 8.6370318322E-01 + 8.6884636876E-01 8.7348780439E-01 8.7763797408E-01 8.8130821733E-01 + 8.8451065673E-01 8.8725812497E-01 8.8956409184E-01 8.9144259156E-01 + 8.9290815056E-01 8.9397571625E-01 8.9466058690E-01 8.9497834291E-01 + 8.9494477983E-01 8.9457584321E-01 8.9388756560E-01 8.9289600580E-01 + 8.9161719064E-01 8.9006705929E-01 8.8826141037E-01 8.8621585192E-01 + 8.8394575430E-01 8.8146620610E-01 8.7879197316E-01 8.7593746070E-01 + 8.7291667862E-01 8.6974320989E-01 8.6643018224E-01 8.6299024281E-01 + 8.5943553607E-01 8.5577768476E-01 8.5202777382E-01 8.4819633735E-01 + 8.4429334847E-01 8.4032821197E-01 8.3630975971E-01 8.3224624877E-01 + 8.2814536208E-01 8.2401421152E-01 8.1985934350E-01 8.1568674668E-01 + 8.1150186191E-01 8.0730959425E-01 8.0311432686E-01 7.9891993673E-01 + 7.9472981212E-01 7.9054687154E-01 7.8637358424E-01 7.8221199192E-01 + 7.7806373178E-01 7.7393006046E-01 7.6981187910E-01 7.6570975902E-01 + 7.6162396822E-01 7.5755449831E-01 7.5350109188E-01 7.4946327009E-01 + 7.4544036045E-01 7.4143152448E-01 7.3743578530E-01 7.3345205487E-01 + 7.2947916084E-01 7.2551587276E-01 7.2156092770E-01 7.1761305495E-01 + 7.1367099981E-01 7.0973354624E-01 7.0579953845E-01 7.0186790099E-01 + 6.9793765758E-01 6.9400794833E-01 6.9007804538E-01 6.8614736684E-01 + 6.8221548878E-01 6.7828215549E-01 6.7434728795E-01 6.7041099042E-01 + 6.6647355492E-01 6.6253546313E-01 6.5859738694E-01 6.5466011913E-01 + 6.5072445216E-01 6.4679114852E-01 6.4286094313E-01 6.3893454392E-01 + 6.3501263261E-01 6.3109586559E-01 6.2718487461E-01 6.2328026765E-01 + 6.1938262956E-01 6.1549252281E-01 6.1161048820E-01 6.0773704552E-01 + 6.0387269418E-01 6.0001791388E-01 5.9617316520E-01 5.9233889020E-01 + 5.8851551302E-01 5.8470344041E-01 5.8090306229E-01 5.7711475228E-01 + 5.7333886821E-01 5.6957575260E-01 5.6582573317E-01 5.6208912330E-01 + 5.5836622246E-01 5.5465731667E-01 5.5096267892E-01 5.4728256959E-01 + 5.4361723685E-01 5.3996691702E-01 5.3633183499E-01 5.3271220456E-01 + 5.2910822878E-01 5.2552010035E-01 5.2194800186E-01 5.1839210622E-01 + 5.1485257688E-01 5.1132956820E-01 5.0782322568E-01 5.0433368632E-01 + 5.0086107883E-01 4.9740552395E-01 4.9396713465E-01 4.9054601645E-01 + 4.8714226761E-01 4.8375597940E-01 4.8038723632E-01 4.7703611630E-01 + 4.7370269096E-01 4.7038702578E-01 4.6708918033E-01 4.6380920844E-01 + 4.6054715841E-01 4.5730307321E-01 4.5407699062E-01 4.5086894343E-01 + 4.4767895960E-01 4.4450706245E-01 4.4135327075E-01 4.3821759897E-01 + 4.3510005736E-01 4.3200065209E-01 4.2891938546E-01 4.2585625596E-01 + 4.2281125843E-01 4.1978438422E-01 4.1677562126E-01 4.1378495421E-01 + 4.1081236458E-01 4.0785783084E-01 4.0492132852E-01 4.0200283033E-01 + 3.9910230624E-01 3.9621972362E-01 3.9335504730E-01 3.9050823969E-01 + 3.8767926085E-01 3.8486806860E-01 3.8207461860E-01 3.7929886442E-01 + 3.7654075763E-01 3.7380024790E-01 3.7107728303E-01 3.6837180907E-01 + 3.6568377037E-01 3.6301310965E-01 3.6035976807E-01 3.5772368530E-01 + 3.5510479957E-01 3.5250304775E-01 3.4991836541E-01 3.4735068685E-01 + 3.4479994519E-01 3.4226607241E-01 3.3974899940E-01 3.3724865601E-01 + 3.3476497113E-01 3.3229787268E-01 3.2984728771E-01 3.2741314242E-01 + 3.2499536223E-01 3.2259387177E-01 3.2020859498E-01 3.1783945511E-01 + 3.1548637478E-01 3.1314927602E-01 3.1082808029E-01 3.0852270852E-01 + 3.0623308116E-01 3.0395911819E-01 3.0170073917E-01 2.9945786327E-01 + 2.9723040928E-01 2.9501829569E-01 2.9282144064E-01 2.9063976203E-01 + 2.8847317748E-01 2.8632160440E-01 2.8418496000E-01 2.8206316131E-01 + 2.7995612520E-01 2.7786376842E-01 2.7578600762E-01 2.7372275934E-01 + 2.7167394007E-01 2.6963946626E-01 2.6761925433E-01 2.6561322067E-01 + 2.6362128172E-01 2.6164335390E-01 2.5967935372E-01 2.5772919773E-01 + 2.5579280256E-01 2.5387008492E-01 2.5196096164E-01 2.5006534968E-01 + 2.4818316611E-01 2.4631432816E-01 2.4445875323E-01 2.4261635887E-01 + 2.4078706284E-01 2.3897078307E-01 2.3716743773E-01 2.3537694517E-01 + 2.3359922400E-01 2.3183419304E-01 2.3008177138E-01 2.2834187835E-01 + 2.2661443356E-01 2.2489935687E-01 2.2319656844E-01 2.2150598871E-01 + 2.1982753843E-01 2.1816113864E-01 2.1650671068E-01 2.1486417622E-01 + 2.1323345726E-01 2.1161447611E-01 2.1000715543E-01 2.0841141820E-01 + 2.0682718777E-01 2.0525438781E-01 2.0369294237E-01 2.0214277584E-01 + 2.0060381298E-01 1.9907597892E-01 1.9755919915E-01 1.9605339953E-01 + 1.9455850632E-01 1.9307444613E-01 1.9160114597E-01 1.9013853324E-01 + 1.8868653571E-01 1.8724508154E-01 1.8581409931E-01 1.8439351796E-01 + 1.8298326685E-01 1.8158327572E-01 1.8019347473E-01 1.7881379441E-01 + 1.7744416571E-01 1.7608452000E-01 1.7473478901E-01 1.7339490492E-01 + 1.7206480028E-01 1.7074440806E-01 1.6943366164E-01 1.6813249479E-01 + 1.6684084171E-01 1.6555863699E-01 1.6428581562E-01 1.6302231301E-01 + 1.6176806498E-01 1.6052300772E-01 1.5928707787E-01 1.5806021245E-01 + 1.5684234889E-01 1.5563342501E-01 1.5443337905E-01 1.5324214965E-01 + 1.5205967583E-01 1.5088589702E-01 1.4972075306E-01 1.4856418417E-01 + 1.4741613096E-01 1.4627653447E-01 1.4514533609E-01 1.4402247761E-01 + 1.4290790123E-01 1.4180154952E-01 1.4070336543E-01 1.3961329232E-01 + 1.3853127391E-01 1.3745725430E-01 1.3639117798E-01 1.3533298981E-01 + 1.3428263503E-01 1.3324005924E-01 1.3220520843E-01 1.3117802895E-01 + 1.3015846750E-01 1.2914647116E-01 1.2814198739E-01 1.2714496397E-01 + 1.2615534906E-01 1.2517309118E-01 1.2419813919E-01 1.2323044230E-01 + 1.2226995009E-01 1.2131661246E-01 1.2037037966E-01 1.1943120229E-01 + 1.1849903128E-01 1.1757381790E-01 1.1665551375E-01 1.1574407076E-01 + 1.1483944120E-01 1.1394157765E-01 1.1305043302E-01 1.1216596055E-01 + 1.1128811379E-01 1.1041684660E-01 1.0955211316E-01 1.0869386797E-01 + 1.0784206582E-01 1.0699666182E-01 1.0615761138E-01 1.0532487021E-01 + 1.0449839432E-01 1.0367814001E-01 1.0286406388E-01 1.0205612282E-01 + 1.0125427400E-01 1.0045847489E-01 9.9668683243E-02 9.8884857074E-02 + 9.8106954696E-02 9.7334934690E-02 9.6568755913E-02 9.5808377494E-02 + 9.5053758829E-02 9.4304859584E-02 9.3561639686E-02 9.2824059327E-02 + 9.2092078957E-02 9.1365659285E-02 9.0644761274E-02 8.9929346142E-02 + 8.9219375357E-02 8.8514810635E-02 8.7815613941E-02 8.7121747482E-02 + 8.6433173709E-02 8.5749855314E-02 8.5071755225E-02 8.4398836610E-02 + 8.3731062867E-02 8.3068397630E-02 8.2410804763E-02 8.1758248356E-02 + 8.1110692730E-02 8.0468102426E-02 7.9830442212E-02 7.9197677077E-02 + 7.8569772226E-02 7.7946693085E-02 7.7328405297E-02 7.6714874716E-02 + 7.6106067411E-02 7.5501949663E-02 7.4902487960E-02 7.4307648999E-02 + 7.3717399686E-02 7.3131707130E-02 7.2550538642E-02 7.1973861738E-02 + 7.1401644133E-02 7.0833853742E-02 7.0270458679E-02 6.9711427253E-02 + 6.9156727969E-02 6.8606329526E-02 6.8060200816E-02 6.7518310924E-02 + 6.6980629123E-02 6.6447124877E-02 6.5917767838E-02 6.5392527845E-02 + 6.4871374922E-02 6.4354279280E-02 6.3841211311E-02 6.3332141592E-02 + 6.2827040881E-02 6.2325880118E-02 6.1828630421E-02 6.1335263089E-02 + 6.0845749598E-02 6.0360061599E-02 5.9878170924E-02 5.9400049577E-02 + 5.8925669737E-02 5.8455003758E-02 5.7988024164E-02 5.7524703655E-02 + 5.7065015101E-02 5.6608931540E-02 5.6156426183E-02 5.5707472409E-02 + 5.5262043764E-02 5.4820113965E-02 5.4381656892E-02 5.3946646594E-02 + 5.3515057285E-02 5.3086863342E-02 5.2662039308E-02 5.2240559889E-02 + 5.1822399954E-02 5.1407534535E-02 5.0995938824E-02 5.0587588175E-02 + 5.0182458102E-02 4.9780524279E-02 4.9381762538E-02 4.8986148871E-02 + 4.8593659426E-02 4.8204270511E-02 4.7817958589E-02 4.7434700277E-02 + 4.7054472351E-02 4.6677251741E-02 4.6303015528E-02 4.5931740952E-02 + 4.5563405401E-02 4.5197986419E-02 4.4835461700E-02 4.4475809089E-02 + 4.4119006583E-02 4.3765032328E-02 4.3413864620E-02 4.3065481903E-02 + 4.2719862769E-02 4.2376985960E-02 4.2036830362E-02 4.1699375008E-02 + 4.1364599079E-02 4.1032481898E-02 4.0703002934E-02 4.0376141799E-02 + 4.0051878250E-02 3.9730192186E-02 3.9411063645E-02 3.9094472810E-02 + 3.8780400004E-02 3.8468825688E-02 3.8159730463E-02 3.7853095071E-02 + 3.7548900389E-02 3.7247127433E-02 3.6947757354E-02 3.6650771442E-02 + 3.6356151119E-02 3.6063877943E-02 3.5773933607E-02 3.5486299935E-02 + 3.5200958886E-02 3.4917892549E-02 3.4637083144E-02 3.4358513024E-02 + 3.4082164668E-02 3.3808020687E-02 3.3536063819E-02 3.3266276931E-02 + 3.2998643014E-02 3.2733145188E-02 3.2469766697E-02 3.2208490910E-02 + 3.1949301320E-02 3.1692181544E-02 3.1437115320E-02 3.1184086510E-02 + 3.0933079095E-02 3.0684077176E-02 3.0437064977E-02 3.0192026836E-02 + 2.9948947214E-02 2.9707810686E-02 2.9468601944E-02 2.9231305797E-02 + 2.8995907170E-02 2.8762391100E-02 2.8530742739E-02 2.8300947353E-02 + 2.8072990317E-02 2.7846857122E-02 2.7622533365E-02 2.7400004757E-02 + 2.7179257115E-02 2.6960276368E-02 2.6743048550E-02 2.6527559803E-02 + 2.6313796375E-02 2.6101744620E-02 2.5891390997E-02 2.5682722070E-02 + 2.5475724504E-02 2.5270385069E-02 2.5066690636E-02 2.4864628177E-02 + 2.4664184765E-02 2.4465347574E-02 2.4268103875E-02 2.4072441039E-02 + 2.3878346534E-02 2.3685807925E-02 2.3494812874E-02 2.3305349139E-02 + 2.3117404571E-02 2.2930967116E-02 2.2746024816E-02 2.2562565804E-02 + 2.2380578303E-02 2.2200050632E-02 2.2020971197E-02 2.1843328498E-02 + 2.1667111121E-02 2.1492307742E-02 2.1318907126E-02 2.1146898126E-02 + 2.0976269681E-02 2.0807010815E-02 2.0639110641E-02 2.0472558353E-02 + 2.0307343233E-02 2.0143454645E-02 1.9980882035E-02 1.9819614934E-02 + 1.9659642954E-02 1.9500955787E-02 1.9343543206E-02 1.9187395067E-02 + 1.9032501300E-02 1.8878851920E-02 1.8726437014E-02 1.8575246752E-02 + 1.8425271379E-02 1.8276501214E-02 1.8128926657E-02 1.7982538178E-02 + 1.7837326327E-02 1.7693281723E-02 1.7550395062E-02 1.7408657113E-02 + 1.7268058716E-02 1.7128590783E-02 1.6990244299E-02 1.6853010318E-02 + 1.6716879967E-02 1.6581844438E-02 1.6447894998E-02 1.6315022979E-02 + 1.6183219781E-02 1.6052476874E-02 1.5922785794E-02 1.5794138143E-02 + 1.5666525590E-02 1.5539939870E-02 1.5414372781E-02 1.5289816187E-02 + 1.5166262018E-02 1.5043702264E-02 1.4922128981E-02 1.4801534286E-02 + 1.4681910358E-02 1.4563249440E-02 1.4445543834E-02 1.4328785903E-02 + 1.4212968071E-02 1.4098082822E-02 1.3984122697E-02 1.3871080299E-02 + 1.3758948288E-02 1.3647719383E-02 1.3537386358E-02 1.3427942046E-02 + 1.3319379337E-02 1.3211691176E-02 1.3104870565E-02 1.2998910561E-02 + 1.2893804274E-02 1.2789544872E-02 1.2686125573E-02 1.2583539654E-02 + 1.2481780439E-02 1.2380841309E-02 1.2280715697E-02 1.2181397086E-02 + 1.2082879013E-02 1.1985155065E-02 1.1888218880E-02 1.1792064145E-02 + 1.1696684600E-02 1.1602074032E-02 1.1508226278E-02 1.1415135225E-02 + 1.1322794808E-02 1.1231199008E-02 1.1140341856E-02 1.1050217430E-02 + 1.0960819855E-02 1.0872143301E-02 1.0784181988E-02 1.0696930177E-02 + 1.0610382179E-02 1.0524532347E-02 1.0439375081E-02 1.0354904824E-02 + 1.0271116064E-02 1.0188003332E-02 1.0105561204E-02 1.0023784297E-02 + 9.9426672721E-03 9.8622048328E-03 9.7823917243E-03 9.7032227340E-03 + 9.6246926903E-03 9.5467964631E-03 9.4695289630E-03 9.3928851410E-03 + 9.3168599883E-03 9.2414485360E-03 9.1666458549E-03 9.0924470546E-03 + 9.0188472841E-03 8.9458417308E-03 8.8734256204E-03 8.8015942167E-03 + 8.7303428212E-03 8.6596667728E-03 8.5895614476E-03 8.5200222585E-03 + 8.4510446548E-03 8.3826241225E-03 8.3147561831E-03 8.2474363940E-03 + 8.1806603481E-03 8.1144236734E-03 8.0487220326E-03 7.9835511232E-03 + 7.9189066770E-03 7.8547844597E-03 7.7911802709E-03 7.7280899436E-03 + 7.6655093443E-03 7.6034343723E-03 7.5418609595E-03 7.4807850706E-03 + 7.4202027024E-03 7.3601098835E-03 7.3005026743E-03 7.2413771668E-03 + 7.1827294841E-03 7.1245557802E-03 7.0668522400E-03 7.0096150788E-03 + 6.9528405420E-03 6.8965249053E-03 6.8406644739E-03 6.7852555826E-03 + 6.7302945957E-03 6.6757779063E-03 6.6217019364E-03 6.5680631367E-03 + 6.5148579862E-03 6.4620829922E-03 6.4097346898E-03 6.3578096418E-03 + 6.3063044387E-03 6.2552156979E-03 6.2045400644E-03 6.1542742095E-03 + 6.1044148315E-03 6.0549586551E-03 6.0059024311E-03 5.9572429363E-03 + 5.9089769734E-03 5.8611013708E-03 5.8136129819E-03 5.7665086858E-03 + 5.7197853863E-03 5.6734400121E-03 5.6274695163E-03 5.5818708769E-03 + 5.5366410955E-03 5.4917771982E-03 5.4472762348E-03 5.4031352785E-03 + 5.3593514264E-03 5.3159217985E-03 5.2728435380E-03 5.2301138112E-03 + 5.1877298068E-03 5.1456887362E-03 5.1039878332E-03 5.0626243538E-03 + 5.0215955759E-03 4.9808987992E-03 4.9405313453E-03 4.9004905571E-03 + 4.8607737989E-03 4.8213784560E-03 4.7823019349E-03 4.7435416627E-03 + 4.7050950874E-03 4.6669596773E-03 4.6291329209E-03 4.5916123273E-03 + 4.5543954251E-03 4.5174797632E-03 4.4808629097E-03 4.4445424527E-03 + 4.4085159993E-03 4.3727811761E-03 4.3373356286E-03 4.3021770211E-03 + 4.2673030371E-03 4.2327113782E-03 4.1983997648E-03 4.1643659355E-03 + 4.1306076470E-03 4.0971226742E-03 4.0639088099E-03 4.0309638643E-03 + 3.9982856656E-03 3.9658720592E-03 3.9337209080E-03 3.9018300920E-03 + 3.8701975082E-03 3.8388210706E-03 3.8076987099E-03 3.7768283735E-03 + 3.7462080253E-03 3.7158356455E-03 3.6857092306E-03 3.6558267933E-03 + 3.6261863621E-03 3.5967859816E-03 3.5676237119E-03 3.5386976289E-03 + 3.5100058239E-03 3.4815464034E-03 3.4533174894E-03 3.4253172189E-03 + 3.3975437440E-03 3.3699952314E-03 3.3426698629E-03 3.3155658346E-03 + 3.2886813574E-03 3.2620146566E-03 3.2355639715E-03 3.2093275558E-03 + 3.1833036774E-03 3.1574906178E-03 3.1318866725E-03 3.1064901509E-03 + 3.0812993758E-03 3.0563126835E-03 3.0315284239E-03 3.0069449599E-03 + 2.9825606679E-03 2.9583739373E-03 2.9343831702E-03 2.9105867820E-03 + 2.8869832005E-03 2.8635708664E-03 2.8403482329E-03 2.8173137657E-03 + 2.7944659428E-03 2.7718032544E-03 2.7493242031E-03 2.7270273034E-03 + 2.7049110818E-03 2.6829740767E-03 2.6612148382E-03 2.6396319284E-03 + 2.6182239205E-03 2.5969893996E-03 2.5759269620E-03 2.5550352155E-03 + 2.5343127789E-03 2.5137582824E-03 2.4933703670E-03 2.4731476848E-03 + 2.4530888988E-03 2.4331926827E-03 2.4134577209E-03 2.3938827085E-03 + 2.3744663510E-03 2.3552073645E-03 2.3361044754E-03 2.3171564202E-03 + 2.2983619458E-03 2.2797198093E-03 2.2612287776E-03 2.2428876275E-03 + 2.2246951461E-03 2.2066501298E-03 2.1887513849E-03 2.1709977275E-03 + 2.1533879831E-03 2.1359209865E-03 2.1185955823E-03 2.1014106242E-03 + 2.0843649751E-03 2.0674575072E-03 2.0506871018E-03 2.0340526491E-03 + 2.0175530485E-03 2.0011872081E-03 1.9849540448E-03 1.9688524844E-03 + 1.9528814613E-03 1.9370399184E-03 1.9213268074E-03 1.9057410881E-03 + 1.8902817290E-03 1.8749477069E-03 1.8597380067E-03 1.8446516217E-03 + 1.8296875531E-03 1.8148448105E-03 1.8001224111E-03 1.7855193804E-03 + 1.7710347515E-03 1.7566675656E-03 1.7424168713E-03 1.7282817251E-03 + 1.7142611912E-03 1.7003543412E-03 1.6865602543E-03 1.6728780170E-03 + 1.6593067233E-03 1.6458454746E-03 1.6324933794E-03 1.6192495535E-03 + 1.6061131199E-03 1.5930832084E-03 1.5801589562E-03 1.5673395073E-03 + 1.5546240127E-03 1.5420116301E-03 1.5295015241E-03 1.5170928662E-03 + 1.5047848344E-03 1.4925766134E-03 1.4804673945E-03 1.4684563755E-03 + 1.4565427609E-03 1.4447257613E-03 1.4330045939E-03 1.4213784822E-03 + 1.4098466560E-03 1.3984083512E-03 1.3870628100E-03 1.3758092807E-03 + 1.3646470177E-03 1.3535752814E-03 1.3425933382E-03 1.3317004604E-03 + 1.3208959262E-03 1.3101790196E-03 1.2995490306E-03 1.2890052547E-03 + + + + 3.4226671206E+00 3.4193884400E+00 3.4095700276E+00 3.3932646520E+00 + 3.3705597633E+00 3.3415767620E+00 3.3064699827E+00 3.2654254077E+00 + 3.2186591228E+00 3.1664155340E+00 3.1089653635E+00 3.0466034467E+00 + 2.9796463546E+00 2.9084298660E+00 2.8333063175E+00 2.7546418573E+00 + 2.6728136327E+00 2.5882069397E+00 2.5012123620E+00 2.4122229293E+00 + 2.3216313216E+00 2.2298271452E+00 2.1371943066E+00 2.0441085068E+00 + 1.9509348774E+00 1.8580257784E+00 1.7657187740E+00 1.6743348007E+00 + 1.5841765413E+00 1.4955270114E+00 1.4086483678E+00 1.3237809400E+00 + 1.2411424888E+00 1.1609276883E+00 1.0833078286E+00 1.0084307337E+00 + 9.3642088479E-01 8.6737973929E-01 8.0138623442E-01 7.3849746008E-01 + 6.7874948722E-01 6.2215833512E-01 5.6872106077E-01 5.1841695301E-01 + 4.7120881344E-01 4.2704430626E-01 3.8585735934E-01 3.4756959903E-01 + 3.1209180199E-01 2.7932534785E-01 2.4916365762E-01 2.2149360368E-01 + 1.9619687861E-01 1.7315131105E-01 1.5223211840E-01 1.3331308767E-01 + 1.1626767682E-01 1.0097003087E-01 8.7295908216E-02 7.5123513989E-02 + 6.4334238792E-02 5.4813302307E-02 4.6450302516E-02 3.9139672379E-02 + 3.2781046805E-02 2.7279543644E-02 2.2545963198E-02 1.8496911410E-02 + 1.5054852385E-02 1.2148096359E-02 9.7107294512E-03 7.6824917925E-03 + 6.0086106103E-03 4.6395948859E-03 3.5309980390E-03 2.6431549074E-03 + 1.9408990064E-03 1.3932657200E-03 9.7318668442E-04 6.5718019403E-04 + 4.2504200400E-04 2.5954042012E-04 1.4611907887E-04 7.2610327592E-05 + 2.8961629342E-05 6.9769455846E-06 7.4598152268E-08 3.0626864441E-06 + 1.1932740329E-05 2.3671927681E-05 3.6093810389E-05 4.7687355783E-05 + 5.7483662603E-05 6.4939651889E-05 6.9837802922E-05 7.2200881229E-05 + 7.2220507810E-05 7.0198353894E-05 6.6498710821E-05 6.1511177323E-05 + 5.5622223074E-05 4.9194424806E-05 4.2552226121E-05 3.5973141044E-05 + 2.9683401237E-05 2.3857134464E-05 1.8618254737E-05 1.4044339654E-05 + 1.0171865832E-05 7.0022666338E-06 4.5083661027E-06 2.6408276370E-06 + 1.3343341810E-06 5.1328814408E-07 9.6882649488E-08 3.4515872743E-09 + 1.5405330731E-07 4.7528262157E-07 9.0133763638E-07 1.3753928215E-06 + 1.8503478040E-06 2.2890335150E-06 2.6639641257E-06 2.9567254423E-06 + 3.1570888303E-06 3.2619350505E-06 3.2740653274E-06 3.2009681438E-06 + 3.0536003797E-06 2.8452309248E-06 2.5903843097E-06 2.3039116595E-06 + 2.0002066410E-06 1.6925753078E-06 1.3927610836E-06 1.1106196270E-06 + 8.5393304274E-07 6.2834889266E-07 4.3742663866E-07 2.8277245206E-07 + 1.6424263886E-07 8.0196141689E-08 2.7777532022E-08 3.2134654594E-09 + 2.1075693592E-09 1.9721057324E-08 5.1228845858E-08 9.1943487686E-08 + 1.3750171919E-07 1.8401075865E-07 2.2815361007E-07 2.6725448129E-07 + 2.9930697110E-07 3.2296889829E-07 3.3752853840E-07 3.4284760547E-07 + 3.3928658771E-07 3.2761804847E-07 3.0893327080E-07 2.8454719841E-07 + 2.5590604724E-07 2.2450127947E-07 1.9179287756E-07 1.5914408063E-07 + 1.2776897548E-07 9.8693604703E-08 7.2730588462E-08 5.0466674169E-08 + 3.2262143227E-08 1.8261351602E-08 8.4057761810E-09 2.4724492374E-09 + 1.0205523288E-10 1.0982389522E-11 -4.9315572528E-13 -2.2004792874E-13 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + + + 0.0000000000E+00 3.7466801240E-04 1.5090434234E-03 3.4341099740E-03 + 6.2010741937E-03 9.8807212906E-03 1.4562524219E-02 2.0353516582E-02 + 2.7376942826E-02 3.5770701829E-02 4.5685602392E-02 5.7283451359E-02 + 7.0734996982E-02 8.6217751800E-02 1.0391372063E-01 1.2400706022E-01 + 1.4668169793E-01 1.7211893676E-01 2.0049507462E-01 2.3197906471E-01 + 2.6673024363E-01 3.0489615271E-01 3.4661047653E-01 3.9199112134E-01 + 4.4113845379E-01 4.9413371869E-01 5.5103765190E-01 6.1188930202E-01 + 6.7670507214E-01 7.4547798988E-01 8.1817721137E-01 8.9474776203E-01 + 9.7511051406E-01 1.0591623980E+00 1.1467768429E+00 1.2378044374E+00 + 1.3320738010E+00 1.4293926535E+00 1.5295490681E+00 1.6323128915E+00 + 1.7374373137E+00 1.8446605682E+00 1.9537077428E+00 2.0642926804E+00 + 2.1761199480E+00 2.2888868534E+00 2.4022854880E+00 2.5160047747E+00 + 2.6297325013E+00 2.7431573190E+00 2.8559706890E+00 2.9678687585E+00 + 3.0785541522E+00 3.1877376633E+00 3.2951398333E+00 3.4004924074E+00 + 3.5035396598E+00 3.6040395782E+00 3.7017649048E+00 3.7965040283E+00 + 3.8880617271E+00 3.9762597612E+00 4.0609373160E+00 4.1419513005E+00 + 4.2191765042E+00 4.2925056178E+00 4.3618491255E+00 4.4271350757E+00 + 4.4883087385E+00 4.5453321607E+00 4.5981836253E+00 4.6468570288E+00 + 4.6913611834E+00 4.7317190572E+00 4.7679669604E+00 4.8001536901E+00 + 4.8283396413E+00 4.8525958944E+00 4.8730032901E+00 4.8896514964E+00 + 4.9026380801E+00 4.9120675863E+00 4.9180506350E+00 4.9207030403E+00 + 4.9201449561E+00 4.9165000550E+00 4.9098947429E+00 4.9004574122E+00 + 4.8883177378E+00 4.8736060158E+00 4.8564525477E+00 4.8369870701E+00 + 4.8153382306E+00 4.7916331093E+00 4.7659967862E+00 4.7385519516E+00 + 4.7094185613E+00 4.6787135320E+00 4.6465504774E+00 4.6130394818E+00 + 4.5782869099E+00 4.5423952508E+00 4.5054629933E+00 4.4675845313E+00 + 4.4288500963E+00 4.3893457159E+00 4.3491531950E+00 4.3083501190E+00 + 4.2670098764E+00 4.2252016992E+00 4.1829907191E+00 4.1404380386E+00 + 4.0976008156E+00 4.0545323584E+00 4.0112822326E+00 3.9678963767E+00 + 3.9244172256E+00 3.8808838421E+00 3.8373320541E+00 3.7937945975E+00 + 3.7503012638E+00 3.7068790513E+00 3.6635523195E+00 3.6203429458E+00 + 3.5772704844E+00 3.5343523250E+00 3.4916038529E+00 3.4490386078E+00 + 3.4066684425E+00 3.3645036779E+00 3.3225532572E+00 3.2808248944E+00 + 3.2393252212E+00 3.1980599301E+00 3.1570339113E+00 3.1162513833E+00 + 3.0757160328E+00 3.0354313202E+00 2.9954009467E+00 2.9556290193E+00 + 2.9161200788E+00 2.8768791651E+00 2.8379118513E+00 2.7992242697E+00 + 2.7608231239E+00 2.7227156869E+00 2.6849097897E+00 2.6474134452E+00 + 2.6102342134E+00 2.5733790636E+00 2.5368544062E+00 2.5006661143E+00 + 2.4648195466E+00 2.4293195690E+00 2.3941705760E+00 2.3593765111E+00 + 2.3249408869E+00 2.2908668043E+00 2.2571569710E+00 2.2238137194E+00 + 2.1908390244E+00 2.1582345199E+00 2.1260015152E+00 2.0941410104E+00 + 2.0626537118E+00 2.0315400464E+00 2.0008001756E+00 1.9704340093E+00 + 1.9404412186E+00 1.9108212481E+00 1.8815733285E+00 1.8526964879E+00 + 1.8241895630E+00 1.7960512097E+00 1.7682799136E+00 1.7408740000E+00 + 1.7138316430E+00 1.6871508750E+00 1.6608295953E+00 1.6348655785E+00 + 1.6092564826E+00 1.5839998566E+00 1.5590931480E+00 1.5345337098E+00 + 1.5103188073E+00 1.4864456247E+00 1.4629112711E+00 1.4397127865E+00 + 1.4168471475E+00 1.3943112726E+00 1.3721020276E+00 1.3502162302E+00 + 1.3286506551E+00 1.3074020379E+00 1.2864670802E+00 1.2658424529E+00 + 1.2455248004E+00 1.2255107445E+00 1.2057968874E+00 1.1863798155E+00 + 1.1672561024E+00 1.1484223118E+00 1.1298750006E+00 1.1116107214E+00 + 1.0936260250E+00 1.0759174632E+00 1.0584815907E+00 1.0413149676E+00 + 1.0244141611E+00 1.0077757477E+00 9.9139631503E-01 9.7527246340E-01 + 9.5940080758E-01 9.4377797823E-01 9.2840062338E-01 9.1326540974E-01 + 8.9836902397E-01 8.8370817386E-01 8.6927958938E-01 8.5508002378E-01 + 8.4110625446E-01 8.2735508389E-01 8.1382334044E-01 8.0050787909E-01 + 7.8740558215E-01 7.7451335991E-01 7.6182815119E-01 7.4934692390E-01 + 7.3706667551E-01 7.2498443347E-01 7.1309725565E-01 7.0140223064E-01 + 6.8989647806E-01 6.7857714886E-01 6.6744142555E-01 6.5648652236E-01 + 6.4570968545E-01 6.3510819302E-01 6.2467935542E-01 6.1442051522E-01 + 6.0432904728E-01 5.9440235876E-01 5.8463788911E-01 5.7503311007E-01 + 5.6558552562E-01 5.5629267191E-01 5.4715211718E-01 5.3816146166E-01 + 5.2931833746E-01 5.2062040843E-01 5.1206537001E-01 5.0365094908E-01 + 4.9537490378E-01 4.8723502331E-01 4.7922912776E-01 4.7135506786E-01 + 4.6361072480E-01 4.5599400999E-01 4.4850286482E-01 4.4113526041E-01 + 4.3388919736E-01 4.2676270551E-01 4.1975384365E-01 4.1286069927E-01 + 4.0608138825E-01 3.9941405465E-01 3.9285687033E-01 3.8640803475E-01 + 3.8006577462E-01 3.7382834363E-01 3.6769402216E-01 3.6166111695E-01 + 3.5572796084E-01 3.4989291243E-01 3.4415435580E-01 3.3851070018E-01 + 3.3296037968E-01 3.2750185296E-01 3.2213360292E-01 3.1685413640E-01 + 3.1166198389E-01 3.0655569920E-01 3.0153385915E-01 2.9659506329E-01 + 2.9173793359E-01 2.8696111414E-01 2.8226327081E-01 2.7764309102E-01 + 2.7309928337E-01 2.6863057741E-01 2.6423572329E-01 2.5991349150E-01 + 2.5566267257E-01 2.5148207677E-01 2.4737053385E-01 2.4332689274E-01 + 2.3935002126E-01 2.3543880586E-01 2.3159215131E-01 2.2780898048E-01 + 2.2408823402E-01 2.2042887011E-01 2.1682986419E-01 2.1329020870E-01 + 2.0980891283E-01 2.0638500224E-01 2.0301751879E-01 1.9970552036E-01 + 1.9644808051E-01 1.9324428831E-01 1.9009324803E-01 1.8699407896E-01 + 1.8394591514E-01 1.8094790510E-01 1.7799921170E-01 1.7509901183E-01 + 1.7224649622E-01 1.6944086921E-01 1.6668134853E-01 1.6396716508E-01 + 1.6129756273E-01 1.5867179807E-01 1.5608914025E-01 1.5354887075E-01 + 1.5105028317E-01 1.4859268306E-01 1.4617538766E-01 1.4379772580E-01 + 1.4145903763E-01 1.3915867446E-01 1.3689599857E-01 1.3467038304E-01 + 1.3248121155E-01 1.3032787822E-01 1.2820978741E-01 1.2612635359E-01 + 1.2407700111E-01 1.2206116410E-01 1.2007828625E-01 1.1812782069E-01 + 1.1620922979E-01 1.1432198502E-01 1.1246556684E-01 1.1063946445E-01 + 1.0884317574E-01 1.0707620708E-01 1.0533807321E-01 1.0362829706E-01 + 1.0194640964E-01 1.0029194991E-01 9.8664464610E-02 9.7063508143E-02 + 9.5488642455E-02 9.3939436887E-02 9.2415468062E-02 9.0916319748E-02 + 8.9441582746E-02 8.7990854760E-02 8.6563740283E-02 8.5159850481E-02 + 8.3778803074E-02 8.2420222224E-02 8.1083738425E-02 7.9768988395E-02 + 7.8475614966E-02 7.7203266978E-02 7.5951599177E-02 7.4720272114E-02 + 7.3508952039E-02 7.2317310812E-02 7.1145025795E-02 6.9991779765E-02 + 6.8857260818E-02 6.7741162276E-02 6.6643182596E-02 6.5563025284E-02 + 6.4500398806E-02 6.3455016501E-02 6.2426596500E-02 6.1414861639E-02 + 6.0419539382E-02 5.9440361739E-02 5.8477065185E-02 5.7529390587E-02 + 5.6597083127E-02 5.5679892225E-02 5.4777571471E-02 5.3889878546E-02 + 5.3016575158E-02 5.2157426970E-02 5.1312203531E-02 5.0480678211E-02 + 4.9662628131E-02 4.8857834107E-02 4.8066080576E-02 4.7287155543E-02 + 4.6520850513E-02 4.5766960436E-02 4.5025283643E-02 4.4295621793E-02 + 4.3577779813E-02 4.2871565841E-02 4.2176791177E-02 4.1493270221E-02 + 4.0820820425E-02 4.0159262241E-02 3.9508419069E-02 3.8868117204E-02 + 3.8238185793E-02 3.7618456780E-02 3.7008764862E-02 3.6408947444E-02 + 3.5818844587E-02 3.5238298971E-02 3.4667155842E-02 3.4105262978E-02 + 3.3552470637E-02 3.3008631522E-02 3.2473600739E-02 3.1947235750E-02 + 3.1429396343E-02 3.0919944587E-02 3.0418744794E-02 2.9925663483E-02 + 2.9440569343E-02 2.8963333196E-02 2.8493827960E-02 2.8031928619E-02 + 2.7577512182E-02 2.7130457654E-02 2.6690646000E-02 2.6257960116E-02 + 2.5832284793E-02 2.5413506686E-02 2.5001514288E-02 2.4596197892E-02 + 2.4197449569E-02 2.3805163131E-02 2.3419234110E-02 2.3039559724E-02 + 2.2666038850E-02 2.2298572001E-02 2.1937061294E-02 2.1581410426E-02 + 2.1231524647E-02 2.0887310737E-02 2.0548676980E-02 2.0215533137E-02 + 1.9887790425E-02 1.9565361492E-02 1.9248160393E-02 1.8936102568E-02 + 1.8629104822E-02 1.8327085296E-02 1.8029963454E-02 1.7737660053E-02 + 1.7450097129E-02 1.7167197972E-02 1.6888887109E-02 1.6615090281E-02 + 1.6345734424E-02 1.6080747652E-02 1.5820059235E-02 1.5563599583E-02 + 1.5311300225E-02 1.5063093795E-02 1.4818914009E-02 1.4578695652E-02 + 1.4342374557E-02 1.4109887593E-02 1.3881172645E-02 1.3656168597E-02 + 1.3434815320E-02 1.3217053649E-02 1.3002825379E-02 1.2792073236E-02 + 1.2584740873E-02 1.2380772851E-02 1.2180114622E-02 1.1982712521E-02 + 1.1788513744E-02 1.1597466343E-02 1.1409519204E-02 1.1224622040E-02 + 1.1042725373E-02 1.0863780527E-02 1.0687739607E-02 1.0514555495E-02 + 1.0344181832E-02 1.0176573007E-02 1.0011684147E-02 9.8494711034E-03 + 9.6898904403E-03 9.5328994247E-03 9.3784560136E-03 9.2265188441E-03 + 9.0770472221E-03 8.9300011115E-03 8.7853411240E-03 8.6430285086E-03 + 8.5030251412E-03 8.3652935151E-03 8.2297967307E-03 8.0964984860E-03 + 7.9653630668E-03 7.8363553375E-03 7.7094407320E-03 7.5845852442E-03 + 7.4617554193E-03 7.3409183447E-03 7.2220416419E-03 7.1050934570E-03 + 6.9900424533E-03 6.8768578022E-03 6.7655091756E-03 6.6559667374E-03 + 6.5482011361E-03 6.4421834966E-03 6.3378854126E-03 6.2352789393E-03 + 6.1343365858E-03 6.0350313077E-03 5.9373365003E-03 5.8412259910E-03 + 5.7466740327E-03 5.6536552967E-03 5.5621448663E-03 5.4721182298E-03 + 5.3835512741E-03 5.2964202782E-03 5.2107019072E-03 5.1263732055E-03 + 5.0434115910E-03 4.9617948491E-03 4.8815011267E-03 4.8025089262E-03 + 4.7247970999E-03 4.6483448444E-03 4.5731316948E-03 4.4991375193E-03 + 4.4263425140E-03 4.3547271972E-03 4.2842724044E-03 4.2149592834E-03 + 4.1467692887E-03 4.0796841767E-03 4.0136860012E-03 3.9487571079E-03 + 3.8848801302E-03 3.8220379843E-03 3.7602138644E-03 3.6993912387E-03 + 3.6395538445E-03 3.5806856838E-03 3.5227710193E-03 3.4657943700E-03 + 3.4097405070E-03 3.3545944493E-03 3.3003414600E-03 3.2469670420E-03 + 3.1944569346E-03 3.1427971090E-03 3.0919737650E-03 3.0419733271E-03 + 2.9927824408E-03 2.9443879691E-03 2.8967769888E-03 2.8499367872E-03 + 2.8038548585E-03 2.7585189005E-03 2.7139168113E-03 2.6700366859E-03 + 2.6268668132E-03 2.5843956726E-03 2.5426119310E-03 2.5015044398E-03 + 2.4610622318E-03 2.4212745183E-03 2.3821306860E-03 2.3436202945E-03 + 2.3057330731E-03 2.2684589181E-03 2.2317878905E-03 2.1957102125E-03 + 2.1602162658E-03 2.1252965881E-03 2.0909418712E-03 2.0571429583E-03 + 2.0238908414E-03 1.9911766589E-03 1.9589916935E-03 1.9273273694E-03 + 1.8961752501E-03 1.8655270366E-03 1.8353745643E-03 1.8057098018E-03 + 1.7765248478E-03 1.7478119296E-03 1.7195634007E-03 1.6917717389E-03 + 1.6644295440E-03 1.6375295363E-03 1.6110645541E-03 1.5850275522E-03 + 1.5594115996E-03 1.5342098781E-03 1.5094156800E-03 1.4850224067E-03 + 1.4610235665E-03 1.4374127733E-03 1.4141837446E-03 1.3913302997E-03 + 1.3688463584E-03 1.3467259393E-03 1.3249631577E-03 1.3035522247E-03 + 1.2824874452E-03 1.2617632165E-03 1.2413740268E-03 1.2213144538E-03 + 1.2015791631E-03 1.1821629067E-03 1.1630605219E-03 1.1442669296E-03 + 1.1257771332E-03 1.1075862170E-03 1.0896893450E-03 1.0720817598E-03 + 1.0547587808E-03 1.0377158036E-03 1.0209482982E-03 1.0044518083E-03 + 9.8822194947E-04 9.7225440866E-04 9.5654494255E-04 9.4108937665E-04 + 9.2588360409E-04 9.1092358455E-04 8.9620534317E-04 8.8172496951E-04 + 8.6747861648E-04 8.5346249928E-04 8.3967289446E-04 8.2610613886E-04 + 8.1275862868E-04 7.9962681846E-04 7.8670722018E-04 7.7399640229E-04 + 7.6149098885E-04 7.4918765854E-04 7.3708314386E-04 7.2517423019E-04 + 7.1345775497E-04 7.0193060685E-04 6.9058972483E-04 6.7943209750E-04 + 6.6845476216E-04 6.5765480409E-04 6.4702935574E-04 6.3657559599E-04 + 6.2629074938E-04 6.1617208533E-04 6.0621691751E-04 5.9642260303E-04 + 5.8678654178E-04 5.7730617571E-04 5.6797898819E-04 5.5880250329E-04 + 5.4977428514E-04 5.4089193730E-04 5.3215310208E-04 5.2355545996E-04 + 5.1509672893E-04 5.0677466388E-04 4.9858705606E-04 4.9053173241E-04 + 4.8260655504E-04 4.7480942064E-04 4.6713825993E-04 4.5959103707E-04 + 4.5216574918E-04 4.4486042575E-04 4.3767312814E-04 4.3060194909E-04 + 4.2364501214E-04 4.1680047122E-04 4.1006651007E-04 4.0344134184E-04 + 3.9692320854E-04 3.9051038063E-04 3.8420115652E-04 3.7799386215E-04 + 3.7188685049E-04 3.6587850119E-04 3.5996722006E-04 3.5415143870E-04 + 3.4842961405E-04 3.4280022802E-04 3.3726178704E-04 3.3181282170E-04 + 3.2645188634E-04 3.2117755866E-04 3.1598843936E-04 3.1088315175E-04 + 3.0586034140E-04 3.0091867579E-04 2.9605684389E-04 2.9127355591E-04 + 2.8656754289E-04 2.8193755636E-04 2.7738236806E-04 2.7290076955E-04 + 2.6849157195E-04 2.6415360557E-04 2.5988571964E-04 2.5568678198E-04 + 2.5155567870E-04 2.4749131393E-04 2.4349260949E-04 2.3955850463E-04 + 2.3568795575E-04 2.3187993609E-04 2.2813343552E-04 2.2444746019E-04 + 2.2082103234E-04 2.1725319000E-04 2.1374298674E-04 2.1028949142E-04 + 2.0689178795E-04 2.0354897506E-04 2.0026016600E-04 1.9702448839E-04 + 1.9384108392E-04 1.9070910816E-04 1.8762773030E-04 1.8459613300E-04 + 1.8161351207E-04 1.7867907636E-04 1.7579204747E-04 1.7295165958E-04 + 1.7015715927E-04 1.6740780526E-04 1.6470286825E-04 1.6204163074E-04 + 1.5942338681E-04 1.5684744194E-04 1.5431311284E-04 1.5181972726E-04 + 1.4936662378E-04 1.4695315172E-04 1.4457867085E-04 1.4224255134E-04 + 1.3994417349E-04 1.3768292763E-04 1.3545821394E-04 1.3326944229E-04 + 1.3111603207E-04 1.2899741206E-04 1.2691302027E-04 1.2486230379E-04 + 1.2284471862E-04 1.2085972958E-04 1.1890681010E-04 1.1698544215E-04 + 1.1509511604E-04 1.1323533033E-04 1.1140559167E-04 1.0960541469E-04 + 1.0783432185E-04 1.0609184333E-04 1.0437751690E-04 1.0269088779E-04 + 1.0103150858E-04 9.9398939065E-05 9.7792746176E-05 9.6212503820E-05 + 9.4657792790E-05 9.3128200653E-05 9.1623321636E-05 9.0142756522E-05 + 8.8686112539E-05 8.7253003263E-05 8.5843048510E-05 8.4455874237E-05 + 8.3091112442E-05 8.1748401069E-05 8.0427383908E-05 7.9127710503E-05 + 7.7849036061E-05 7.6591021357E-05 7.5353332642E-05 7.4135641563E-05 + 7.2937625066E-05 7.1758965320E-05 7.0599349624E-05 6.9458470328E-05 + 6.8336024753E-05 6.7231715108E-05 6.6145248413E-05 6.5076336418E-05 + 6.4024695530E-05 6.2990046739E-05 6.1972115538E-05 6.0970631856E-05 + 5.9985329985E-05 5.9015948506E-05 5.8062230225E-05 5.7123922102E-05 + 5.6200775184E-05 5.5292544538E-05 5.4398989188E-05 5.3519872051E-05 + 5.2654959873E-05 5.1804023169E-05 5.0966836158E-05 5.0143176707E-05 + 4.9332826272E-05 4.8535569839E-05 4.7751195866E-05 4.6979496229E-05 + 4.6220266164E-05 4.5473304217E-05 4.4738412186E-05 4.4015395072E-05 + 4.3304061025E-05 4.2604221293E-05 4.1915690174E-05 4.1238284966E-05 + 4.0571825919E-05 3.9916136183E-05 3.9271041767E-05 3.8636371492E-05 + 3.8011956941E-05 3.7397632420E-05 3.6793234909E-05 3.6198604024E-05 + 3.5613581969E-05 3.5038013499E-05 3.4471745877E-05 3.3914628832E-05 + 3.3366514519E-05 3.2827257484E-05 3.2296714622E-05 3.1774745139E-05 + 3.1261210514E-05 3.0755974467E-05 3.0258902917E-05 2.9769863949E-05 + 2.9288727780E-05 2.8815366723E-05 2.8349655153E-05 2.7891469474E-05 + 2.7440688090E-05 2.6997191365E-05 2.6560861597E-05 2.6131582987E-05 + 2.5709241605E-05 2.5293725361E-05 2.4884923978E-05 2.4482728959E-05 + 2.4087033558E-05 2.3697732757E-05 2.3314723232E-05 2.2937903329E-05 + 2.2567173036E-05 2.2202433958E-05 2.1843589286E-05 2.1490543779E-05 + 2.1143203732E-05 2.0801476956E-05 2.0465272748E-05 2.0134501874E-05 + 1.9809076539E-05 1.9488910368E-05 1.9173918380E-05 1.8864016968E-05 + 1.8559123874E-05 1.8259158172E-05 1.7964040241E-05 1.7673691746E-05 + 1.7388035620E-05 1.7106996038E-05 1.6830498402E-05 1.6558469320E-05 + 1.6290836583E-05 1.6027529150E-05 1.5768477129E-05 1.5513611755E-05 + 1.5262865375E-05 1.5016171430E-05 1.4773464434E-05 1.4534679960E-05 + 1.4299754624E-05 1.4068626063E-05 1.3841232923E-05 1.3617514842E-05 + 1.3397412431E-05 1.3180867263E-05 1.2967821853E-05 1.2758219646E-05 + 1.2552005001E-05 1.2349123175E-05 1.2149520310E-05 1.1953143418E-05 + 1.1759940366E-05 1.1569859867E-05 1.1382851458E-05 1.1198865494E-05 + 1.1017853133E-05 1.0839766319E-05 1.0664557775E-05 1.0492180988E-05 + 1.0322590194E-05 1.0155740371E-05 9.9915872242E-06 9.8300871731E-06 + 9.6711973424E-06 9.5148755493E-06 9.3610802924E-06 9.2097707414E-06 + 9.0609067253E-06 8.9144487223E-06 8.7703578494E-06 8.6285958515E-06 + 8.4891250918E-06 8.3519085418E-06 8.2169097712E-06 8.0840929384E-06 + 7.9534227809E-06 7.8248646059E-06 7.6983842813E-06 7.5739482266E-06 + 7.4515234039E-06 7.3310773090E-06 7.2125779630E-06 7.0959939037E-06 + 6.9812941775E-06 6.8684483309E-06 6.7574264024E-06 6.6481989146E-06 + + + +END_PSP diff --git a/abipy/data/pseudos/14si.fhi b/abipy/data/pseudos/14si.fhi new file mode 100644 index 000000000..6a87bd684 --- /dev/null +++ b/abipy/data/pseudos/14si.fhi @@ -0,0 +1,1506 @@ +Si, fhi98PP : LDA PerdewWang, l=2 local + 14.000 4.000 150901 zatom,zion,pspdat + 6 7 2 2 495 0 pspcod,pspxc,lmax,lloc,mmax,r2well + 0.0 0.0 0.0 rchrg, fchrg, qchrg +5--- +6 Pseudo generated with r_cut=2.1 +7--- +0.40000000000000E+01 3 + 0.0000 0.0000 0.0000 0.0000 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 +495 0.10247000000000E+01 + 1 0.44642857142857E-03 0.13945898886497E-03 -.86383738974480E+00 + 2 0.45745535714286E-03 0.14290362588994E-03 -.86383748410072E+00 + 3 0.46875450446429E-03 0.14643334544942E-03 -.86383757601286E+00 + 4 0.48033274072455E-03 0.15005024908202E-03 -.86383766553169E+00 + 5 0.49219695942045E-03 0.15375649028821E-03 -.86383775270598E+00 + 6 0.50435422431814E-03 0.15755427571554E-03 -.86383783758292E+00 + 7 0.51681177365879E-03 0.16144586650015E-03 -.86383792020807E+00 + 8 0.52957702446817E-03 0.16543357964079E-03 -.86383800062543E+00 + 9 0.54265757697253E-03 0.16951978936447E-03 -.86383807887740E+00 + 10 0.55606121912375E-03 0.17370692854192E-03 -.86383815500482E+00 + 11 0.56979593123611E-03 0.17799749013622E-03 -.86383822904699E+00 + 12 0.58386989073764E-03 0.18239402868700E-03 -.86383830104167E+00 + 13 0.59829147703886E-03 0.18689916183151E-03 -.86383837102505E+00 + 14 0.61306927652172E-03 0.19151557186312E-03 -.86383843903184E+00 + 15 0.62821208765180E-03 0.19624600732835E-03 -.86383850509518E+00 + 16 0.64372892621680E-03 0.20109328466341E-03 -.86383856924672E+00 + 17 0.65962903069436E-03 0.20606028987107E-03 -.86383863151656E+00 + 18 0.67592186775251E-03 0.21114998023901E-03 -.86383869193329E+00 + 19 0.69261713788600E-03 0.21636538610065E-03 -.86383875052397E+00 + 20 0.70972478119178E-03 0.22170961263937E-03 -.86383880731413E+00 + 21 0.72725498328722E-03 0.22718584173740E-03 -.86383886232774E+00 + 22 0.74521818137441E-03 0.23279733387033E-03 -.86383891558726E+00 + 23 0.76362507045436E-03 0.23854743004844E-03 -.86383896711356E+00 + 24 0.78248660969458E-03 0.24443955380598E-03 -.86383901692593E+00 + 25 0.80181402895404E-03 0.25047721323955E-03 -.86383906504211E+00 + 26 0.82161883546920E-03 0.25666400309695E-03 -.86383911147818E+00 + 27 0.84191282070529E-03 0.26300360691748E-03 -.86383915624863E+00 + 28 0.86270806737671E-03 0.26949979922523E-03 -.86383919936629E+00 + 29 0.88401695664092E-03 0.27615644777646E-03 -.86383924084232E+00 + 30 0.90585217546995E-03 0.28297751586261E-03 -.86383928068616E+00 + 31 0.92822672420406E-03 0.28996706467010E-03 -.86383931890553E+00 + 32 0.95115392429190E-03 0.29712925569844E-03 -.86383935550638E+00 + 33 0.97464742622191E-03 0.30446835323816E-03 -.86383939049286E+00 + 34 0.99872121764959E-03 0.31198872690984E-03 -.86383942386726E+00 + 35 0.10233896317255E-02 0.31969485426597E-03 -.86383945563000E+00 + 36 0.10486673556292E-02 0.32759132345700E-03 -.86383948577956E+00 + 37 0.10745694393132E-02 0.33568283596332E-03 -.86383951431245E+00 + 38 0.11011113044642E-02 0.34397420939468E-03 -.86383954122312E+00 + 39 0.11283087536845E-02 0.35247038035884E-03 -.86383956650396E+00 + 40 0.11561779799005E-02 0.36117640740101E-03 -.86383959014518E+00 + 41 0.11847355760040E-02 0.37009747401598E-03 -.86383961213477E+00 + 42 0.12139985447313E-02 0.37923889173462E-03 -.86383963245847E+00 + 43 0.12439843087862E-02 0.38860610328669E-03 -.86383965109962E+00 + 44 0.12747107212132E-02 0.39820468584171E-03 -.86383966803913E+00 + 45 0.13061960760272E-02 0.40804035433000E-03 -.86383968325541E+00 + 46 0.13384591191051E-02 0.41811896484570E-03 -.86383969672422E+00 + 47 0.13715190593470E-02 0.42844651813392E-03 -.86383970841865E+00 + 48 0.14053955801128E-02 0.43902916316400E-03 -.86383971830898E+00 + 49 0.14401088509416E-02 0.44987320079114E-03 -.86383972636256E+00 + 50 0.14756795395599E-02 0.46098508750842E-03 -.86383973254374E+00 + 51 0.15121288241870E-02 0.47237143929158E-03 -.86383973681373E+00 + 52 0.15494784061444E-02 0.48403903553880E-03 -.86383973913048E+00 + 53 0.15877505227762E-02 0.49599482310782E-03 -.86383973944854E+00 + 54 0.16269679606888E-02 0.50824592045283E-03 -.86383973771893E+00 + 55 0.16671540693178E-02 0.52079962186363E-03 -.86383973388899E+00 + 56 0.17083327748299E-02 0.53366340180945E-03 -.86383972790225E+00 + 57 0.17505285943682E-02 0.54684491939022E-03 -.86383971969821E+00 + 58 0.17937666506491E-02 0.56035202289777E-03 -.86383970921223E+00 + 59 0.18380726869201E-02 0.57419275448986E-03 -.86383969637532E+00 + 60 0.18834730822871E-02 0.58837535497959E-03 -.86383968111394E+00 + 61 0.19299948674196E-02 0.60290826874329E-03 -.86383966334982E+00 + 62 0.19776657406448E-02 0.61780014874967E-03 -.86383964299976E+00 + 63 0.20265140844388E-02 0.63305986171331E-03 -.86383961997535E+00 + 64 0.20765689823244E-02 0.64869649337549E-03 -.86383959418280E+00 + 65 0.21278602361878E-02 0.66471935391559E-03 -.86383956552268E+00 + 66 0.21804183840216E-02 0.68113798349626E-03 -.86383953388961E+00 + 67 0.22342747181070E-02 0.69796215794564E-03 -.86383949917206E+00 + 68 0.22894613036442E-02 0.71520189458013E-03 -.86383946125202E+00 + 69 0.23460109978442E-02 0.73286745817101E-03 -.86383942000469E+00 + 70 0.24039574694910E-02 0.75096936705867E-03 -.86383937529821E+00 + 71 0.24633352189874E-02 0.76951839941800E-03 -.86383932699327E+00 + 72 0.25241795988964E-02 0.78852559967869E-03 -.86383927494280E+00 + 73 0.25865268349891E-02 0.80800228510426E-03 -.86383921899158E+00 + 74 0.26504140478134E-02 0.82796005253386E-03 -.86383915897585E+00 + 75 0.27158792747944E-02 0.84841078529076E-03 -.86383909472293E+00 + 76 0.27829614928818E-02 0.86936666026171E-03 -.86383902605076E+00 + 77 0.28517006417560E-02 0.89084015515140E-03 -.86383895276745E+00 + 78 0.29221376476073E-02 0.91284405591636E-03 -.86383887467084E+00 + 79 0.29943144475032E-02 0.93539146438281E-03 -.86383879154797E+00 + 80 0.30682740143566E-02 0.95849580605288E-03 -.86383870317457E+00 + 81 0.31440603825112E-02 0.98217083810409E-03 -.86383860931451E+00 + 82 0.32217186739592E-02 0.10064306575866E-02 -.86383850971921E+00 + 83 0.33012951252060E-02 0.10312897098237E-02 -.86383840412708E+00 + 84 0.33828371147986E-02 0.10567627970193E-02 -.86383829226281E+00 + 85 0.34663931915341E-02 0.10828650870797E-02 -.86383817383676E+00 + 86 0.35520131033650E-02 0.11096121226531E-02 -.86383804854425E+00 + 87 0.36397478270181E-02 0.11370198303921E-02 -.86383791606480E+00 + 88 0.37296495983455E-02 0.11651045304474E-02 -.86383777606136E+00 + 89 0.38217719434246E-02 0.11938829461947E-02 -.86383762817952E+00 + 90 0.39161697104272E-02 0.12233722142036E-02 -.86383747204662E+00 + 91 0.40128991022747E-02 0.12535898944532E-02 -.86383730727088E+00 + 92 0.41120177101009E-02 0.12845539808002E-02 -.86383713344046E+00 + 93 0.42135845475404E-02 0.13162829117074E-02 -.86383695012244E+00 + 94 0.43176600858647E-02 0.13487955812371E-02 -.86383675686181E+00 + 95 0.44243062899855E-02 0.13821113503172E-02 -.86383655318037E+00 + 96 0.45335866553482E-02 0.14162500582868E-02 -.86383633857556E+00 + 97 0.46455662457353E-02 0.14512320347278E-02 -.86383611251931E+00 + 98 0.47603117320049E-02 0.14870781115901E-02 -.86383587445673E+00 + 99 0.48778914317854E-02 0.15238096356170E-02 -.86383562380480E+00 + 100 0.49983753501505E-02 0.15614484810794E-02 -.86383535995097E+00 + 101 0.51218352212993E-02 0.16000170628257E-02 -.86383508225172E+00 + 102 0.52483445512654E-02 0.16395383496554E-02 -.86383479003099E+00 + 103 0.53779786616816E-02 0.16800358780251E-02 -.86383448257859E+00 + 104 0.55108147346251E-02 0.17215337660940E-02 -.86383415914853E+00 + 105 0.56469318585704E-02 0.17640567281195E-02 -.86383381895718E+00 + 106 0.57864110754771E-02 0.18076300892089E-02 -.86383346118147E+00 + 107 0.59293354290414E-02 0.18522798004386E-02 -.86383308495690E+00 + 108 0.60757900141387E-02 0.18980324543491E-02 -.86383268937550E+00 + 109 0.62258620274879E-02 0.19449153008248E-02 -.86383227348365E+00 + 110 0.63796408195669E-02 0.19929562633691E-02 -.86383183627984E+00 + 111 0.65372179478102E-02 0.20421839557841E-02 -.86383137671230E+00 + 112 0.66986872311211E-02 0.20926276992661E-02 -.86383089367646E+00 + 113 0.68641448057298E-02 0.21443175399260E-02 -.86383038601240E+00 + 114 0.70336891824313E-02 0.21972842667462E-02 -.86382985250204E+00 + 115 0.72074213052373E-02 0.22515594299859E-02 -.86382929186630E+00 + 116 0.73854446114767E-02 0.23071753600438E-02 -.86382870276206E+00 + 117 0.75678650933802E-02 0.23641651867921E-02 -.86382808377897E+00 + 118 0.77547913611867E-02 0.24225628593934E-02 -.86382743343615E+00 + 119 0.79463347078080E-02 0.24824031666111E-02 -.86382675017867E+00 + 120 0.81426091750908E-02 0.25437217576280E-02 -.86382603237387E+00 + 121 0.83437316217156E-02 0.26065551633851E-02 -.86382527830756E+00 + 122 0.85498217927719E-02 0.26709408184539E-02 -.86382448617991E+00 + 123 0.87610023910534E-02 0.27369170834561E-02 -.86382365410129E+00 + 124 0.89773991501124E-02 0.28045232680443E-02 -.86382278008775E+00 + 125 0.91991409091202E-02 0.28737996544593E-02 -.86382186205641E+00 + 126 0.94263596895755E-02 0.29447875216771E-02 -.86382089782055E+00 + 127 0.96591907739080E-02 0.30175291701625E-02 -.86381988508446E+00 + 128 0.98977727860235E-02 0.30920679472438E-02 -.86381882143808E+00 + 129 0.10142247773838E-01 0.31684482731257E-02 -.86381770435135E+00 + 130 0.10392761293852E-01 0.32467156675560E-02 -.86381653116827E+00 + 131 0.10649462497810E-01 0.33269167771640E-02 -.86381529910071E+00 + 132 0.10912504221506E-01 0.34090994034877E-02 -.86381400522189E+00 + 133 0.11182043075777E-01 0.34933125317077E-02 -.86381264645954E+00 + 134 0.11458239539749E-01 0.35796063601072E-02 -.86381121958875E+00 + 135 0.11741258056381E-01 0.36680323302759E-02 -.86380972122446E+00 + 136 0.12031267130373E-01 0.37586431580788E-02 -.86380814781358E+00 + 137 0.12328439428494E-01 0.38514928654094E-02 -.86380649562674E+00 + 138 0.12632951882377E-01 0.39466368127483E-02 -.86380476074965E+00 + 139 0.12944985793872E-01 0.40441317325489E-02 -.86380293907405E+00 + 140 0.13264726942981E-01 0.41440357634721E-02 -.86380102628814E+00 + 141 0.13592365698472E-01 0.42464084854929E-02 -.86379901786672E+00 + 142 0.13928097131225E-01 0.43513109559029E-02 -.86379690906068E+00 + 143 0.14272121130366E-01 0.44588057462320E-02 -.86379469488611E+00 + 144 0.14624642522286E-01 0.45689569801155E-02 -.86379237011285E+00 + 145 0.14985871192586E-01 0.46818303721311E-02 -.86378992925248E+00 + 146 0.15356022211043E-01 0.47974932676339E-02 -.86378736654578E+00 + 147 0.15735315959656E-01 0.49160146836162E-02 -.86378467594957E+00 + 148 0.16123978263860E-01 0.50374653506198E-02 -.86378185112295E+00 + 149 0.16522240526977E-01 0.51619177557317E-02 -.86377888541289E+00 + 150 0.16930339867993E-01 0.52894461866923E-02 -.86377577183911E+00 + 151 0.17348519262733E-01 0.54201267771484E-02 -.86377250307836E+00 + 152 0.17777027688522E-01 0.55540375530820E-02 -.86376907144783E+00 + 153 0.18216120272429E-01 0.56912584804503E-02 -.86376546888794E+00 + 154 0.18666058443158E-01 0.58318715140707E-02 -.86376168694421E+00 + 155 0.19127110086704E-01 0.59759606477855E-02 -.86375771674843E+00 + 156 0.19599549705845E-01 0.61236119659466E-02 -.86375354899884E+00 + 157 0.20083658583580E-01 0.62749136962553E-02 -.86374917393953E+00 + 158 0.20579724950594E-01 0.64299562640001E-02 -.86374458133887E+00 + 159 0.21088044156874E-01 0.65888323477314E-02 -.86373976046695E+00 + 160 0.21608918847549E-01 0.67516369364188E-02 -.86373470007206E+00 + 161 0.22142659143083E-01 0.69184673881329E-02 -.86372938835615E+00 + 162 0.22689582823917E-01 0.70894234903000E-02 -.86372381294914E+00 + 163 0.23250015519668E-01 0.72646075215774E-02 -.86371796088224E+00 + 164 0.23824290903004E-01 0.74441243153980E-02 -.86371181855997E+00 + 165 0.24412750888308E-01 0.76280813252385E-02 -.86370537173117E+00 + 166 0.25015745835249E-01 0.78165886916639E-02 -.86369860545861E+00 + 167 0.25633634757380E-01 0.80097593112046E-02 -.86369150408749E+00 + 168 0.26266785535887E-01 0.82077089071257E-02 -.86368405121254E+00 + 169 0.26915575138623E-01 0.84105561021493E-02 -.86367622964383E+00 + 170 0.27580389844547E-01 0.86184224931932E-02 -.86366802137119E+00 + 171 0.28261625473708E-01 0.88314327281935E-02 -.86365940752728E+00 + 172 0.28959687622908E-01 0.90497145850797E-02 -.86365036834913E+00 + 173 0.29674991907194E-01 0.92733990529755E-02 -.86364088313830E+00 + 174 0.30407964207302E-01 0.95026204157010E-02 -.86363093021953E+00 + 175 0.31159040923222E-01 0.97375163376554E-02 -.86362048689781E+00 + 176 0.31928669234026E-01 0.99782279521637E-02 -.86360952941406E+00 + 177 0.32717307364106E-01 0.10224899952374E-01 -.86359803289909E+00 + 178 0.33525424856000E-01 0.10477680684796E-01 -.86358597132615E+00 + 179 0.34353502849943E-01 0.10736722245578E-01 -.86357331746181E+00 + 180 0.35202034370336E-01 0.11002180579619E-01 -.86356004281539E+00 + 181 0.36071524619284E-01 0.11274215582625E-01 -.86354611758677E+00 + 182 0.36962491277380E-01 0.11552991206216E-01 -.86353151061274E+00 + 183 0.37875464811931E-01 0.11838675566203E-01 -.86351618931184E+00 + 184 0.38810988792786E-01 0.12131441054157E-01 -.86350011962777E+00 + 185 0.39769620215968E-01 0.12431464452387E-01 -.86348326597150E+00 + 186 0.40751929835302E-01 0.12738927052488E-01 -.86346559116201E+00 + 187 0.41758502502234E-01 0.13054014777565E-01 -.86344705636592E+00 + 188 0.42789937514039E-01 0.13376918308321E-01 -.86342762103599E+00 + 189 0.43846848970636E-01 0.13707833213130E-01 -.86340724284882E+00 + 190 0.44929866140211E-01 0.14046960082296E-01 -.86338587764169E+00 + 191 0.46039633833874E-01 0.14394504666646E-01 -.86336347934894E+00 + 192 0.47176812789571E-01 0.14750678020660E-01 -.86333999993806E+00 + 193 0.48342080065473E-01 0.15115696650328E-01 -.86331538934575E+00 + 194 0.49536129443090E-01 0.15489782665940E-01 -.86328959541431E+00 + 195 0.50759671840335E-01 0.15873163940035E-01 -.86326256382868E+00 + 196 0.52013435734791E-01 0.16266074270736E-01 -.86323423805466E+00 + 197 0.53298167597440E-01 0.16668753550722E-01 -.86320455927870E+00 + 198 0.54614632337097E-01 0.17081447942090E-01 -.86317346634981E+00 + 199 0.55963613755823E-01 0.17504410057398E-01 -.86314089572435E+00 + 200 0.57345915015592E-01 0.17937899147171E-01 -.86310678141429E+00 + 201 0.58762359116477E-01 0.18382181294182E-01 -.86307105493974E+00 + 202 0.60213789386654E-01 0.18837529614857E-01 -.86303364528684E+00 + 203 0.61701069984505E-01 0.19304224468126E-01 -.86299447887186E+00 + 204 0.63225086413122E-01 0.19782553672127E-01 -.86295347951270E+00 + 205 0.64786746047526E-01 0.20272812729137E-01 -.86291056840921E+00 + 206 0.66386978674900E-01 0.20775305059164E-01 -.86286566413371E+00 + 207 0.68026737048170E-01 0.21290342242658E-01 -.86281868263334E+00 + 208 0.69706997453260E-01 0.21818244272804E-01 -.86276953724609E+00 + 209 0.71428760290355E-01 0.22359339817927E-01 -.86271813873263E+00 + 210 0.73193050669527E-01 0.22913966494548E-01 -.86266439532617E+00 + 211 0.75000919021064E-01 0.23482471151667E-01 -.86260821280286E+00 + 212 0.76853441720885E-01 0.24065210166914E-01 -.86254949457578E+00 + 213 0.78751721731390E-01 0.24662549755203E-01 -.86248814181541E+00 + 214 0.80696889258156E-01 0.25274866290625E-01 -.86242405360039E+00 + 215 0.82690102422832E-01 0.25902546642322E-01 -.86235712710235E+00 + 216 0.84732547952676E-01 0.26545988525149E-01 -.86228725780922E+00 + 217 0.86825441887107E-01 0.27205600865997E-01 -.86221433979182E+00 + 218 0.88970030301719E-01 0.27881804186698E-01 -.86213826601926E+00 + 219 0.91167590050171E-01 0.28575031004495E-01 -.86205892872894E+00 + 220 0.93419429524410E-01 0.29285726251141E-01 -.86197621985789E+00 + 221 0.95726889433663E-01 0.30014347711760E-01 -.86189003154272E+00 + 222 0.98091343602675E-01 0.30761366484676E-01 -.86180025669635E+00 + 223 0.10051419978966E+00 0.31527267463515E-01 -.86170678967044E+00 + 224 0.10299690052447E+00 0.32312549842967E-01 -.86160952701346E+00 + 225 0.10554092396742E+00 0.33117727649698E-01 -.86150836833544E+00 + 226 0.10814778478942E+00 0.33943330300013E-01 -.86140321729143E+00 + 227 0.11081903507371E+00 0.34789903185979E-01 -.86129398269707E+00 + 228 0.11355626524003E+00 0.35658008291850E-01 -.86118057979118E+00 + 229 0.11636110499146E+00 0.36548224842755E-01 -.86106293166145E+00 + 230 0.11923522428475E+00 0.37461149987777E-01 -.86094097085135E+00 + 231 0.12218033432459E+00 0.38397399519676E-01 -.86081464116806E+00 + 232 0.12519818858240E+00 0.39357608633705E-01 -.86068389971316E+00 + 233 0.12829058384039E+00 0.40342432728123E-01 -.86054871916014E+00 + 234 0.13145936126125E+00 0.41352548249215E-01 -.86040909030521E+00 + 235 0.13470640748440E+00 0.42388653583844E-01 -.86026502492035E+00 + 236 0.13803365574926E+00 0.43451470002746E-01 -.86011655894075E+00 + 237 0.14144308704627E+00 0.44541742658081E-01 -.85996375602163E+00 + 238 0.14493673129631E+00 0.45660241638946E-01 -.85980671150301E+00 + 239 0.14851666855933E+00 0.46807763088888E-01 -.85964555682494E+00 + 240 0.15218503027275E+00 0.47985130389716E-01 -.85948046443941E+00 + 241 0.15594400052048E+00 0.49193195416256E-01 -.85931165327012E+00 + 242 0.15979581733334E+00 0.50432839867034E-01 -.85913939477583E+00 + 243 0.16374277402147E+00 0.51704976676236E-01 -.85896401967841E+00 + 244 0.16778722053980E+00 0.53010551512704E-01 -.85878592542264E+00 + 245 0.17193156488714E+00 0.54350544372159E-01 -.85860558444089E+00 + 246 0.17617827453985E+00 0.55725971269286E-01 -.85842355330280E+00 + 247 0.18052987792098E+00 0.57137886036840E-01 -.85824048283732E+00 + 248 0.18498896590563E+00 0.58587382239427E-01 -.85805712932260E+00 + 249 0.18955819336350E+00 0.60075595210229E-01 -.85787436684786E+00 + 250 0.19424028073958E+00 0.61603704219505E-01 -.85769320096064E+00 + 251 0.19903801567385E+00 0.63172934784388E-01 -.85751478372301E+00 + 252 0.20395425466099E+00 0.64784561130177E-01 -.85734043031111E+00 + 253 0.20899192475112E+00 0.66439908814077E-01 -.85717163730398E+00 + 254 0.21415402529247E+00 0.68140357523121E-01 -.85701010282044E+00 + 255 0.21944362971719E+00 0.69887344058879E-01 -.85685774867570E+00 + 256 0.22486388737121E+00 0.71682365522415E-01 -.85671674474393E+00 + 257 0.23041802538928E+00 0.73526982713945E-01 -.85658953572832E+00 + 258 0.23610935061639E+00 0.75422823762627E-01 -.85647887055587E+00 + 259 0.24194125157662E+00 0.77371588002977E-01 -.85638783463146E+00 + 260 0.24791720049056E+00 0.79375050115525E-01 -.85631988520369E+00 + 261 0.25404075534268E+00 0.81435064550481E-01 -.85627889011348E+00 + 262 0.26031556199964E+00 0.83553570254378E-01 -.85626917021617E+00 + 263 0.26674535638103E+00 0.85732595720939E-01 -.85629554578812E+00 + 264 0.27333396668364E+00 0.87974264388663E-01 -.85636338724928E+00 + 265 0.28008531566073E+00 0.90280800408949E-01 -.85647867055470E+00 + 266 0.28700342295755E+00 0.92654534809909E-01 -.85664803762883E+00 + 267 0.29409240750460E+00 0.95097912082268E-01 -.85687886223776E+00 + 268 0.30135648996997E+00 0.97613497215104E-01 -.85717932171466E+00 + 269 0.30879999527222E+00 0.10020398321029E+00 -.85755847497324E+00 + 270 0.31642735515545E+00 0.10287219910567E+00 -.85802634726142E+00 + 271 0.32424311082779E+00 0.10562111853798E+00 -.85859402212247E+00 + 272 0.33225191566523E+00 0.10845386887709E+00 -.85927374104252E+00 + 273 0.34045853798216E+00 0.11137374096386E+00 -.86007901127018E+00 + 274 0.34886786387032E+00 0.11438419948384E+00 -.86102472229493E+00 + 275 0.35748490010792E+00 0.11748889400851E+00 -.86212727146436E+00 + 276 0.36631477714059E+00 0.12069167073512E+00 -.86340469920342E+00 + 277 0.37536275213596E+00 0.12399658495404E+00 -.86487683427042E+00 + 278 0.38463421211372E+00 0.12740791426990E+00 -.86656544944044E+00 + 279 0.39413467715293E+00 0.13093017259881E+00 -.86849442794439E+00 + 280 0.40386980367860E+00 0.13456812495867E+00 -.87068994090674E+00 + 281 0.41384538782946E+00 0.13832680306182E+00 -.87318063591223E+00 + 282 0.42406736890885E+00 0.14221152171027E+00 -.87599783668571E+00 + 283 0.43454183292090E+00 0.14622789598110E+00 -.87917575368293E+00 + 284 0.44527501619405E+00 0.15038185917431E+00 -.88275170515657E+00 + 285 0.45627330909404E+00 0.15467968147557E+00 -.88676634797000E+00 + 286 0.46754325982866E+00 0.15912798926235E+00 -.89126391707313E+00 + 287 0.47909157834643E+00 0.16373378495151E+00 -.89629247211565E+00 + 288 0.49092514033159E+00 0.16850446724968E+00 -.90190414914104E+00 + 289 0.50305099129778E+00 0.17344785162265E+00 -.90815541466200E+00 + 290 0.51547635078283E+00 0.17857219074539E+00 -.91510731864885E+00 + 291 0.52820861664717E+00 0.18388619462788E+00 -.92282574204418E+00 + 292 0.54125536947835E+00 0.18939905003292E+00 -.93138163333024E+00 + 293 0.55462437710447E+00 0.19512043870649E+00 -.94085122739299E+00 + 294 0.56832359921895E+00 0.20106055382798E+00 -.95131623842534E+00 + 295 0.58236119211966E+00 0.20723011395314E+00 -.96286401686166E+00 + 296 0.59674551356501E+00 0.21364037356357E+00 -.97558765831053E+00 + 297 0.61148512775007E+00 0.22030312915003E+00 -.98958605012392E+00 + 298 0.62658881040550E+00 0.22723071953894E+00 -.10049638385841E+01 + 299 0.64206555402251E+00 0.23443601891797E+00 -.10218312966841E+01 + 300 0.65792457320687E+00 0.24193242072464E+00 -.10403040691105E+01 + 301 0.67417531016508E+00 0.24973381022701E+00 -.10605027673070E+01 + 302 0.69082744032615E+00 0.25785452324598E+00 -.10825523834231E+01 + 303 0.70789087810221E+00 0.26630928804130E+00 -.11065814875716E+01 + 304 0.72537578279133E+00 0.27511314690956E+00 -.11327211682119E+01 + 305 0.74329256462628E+00 0.28428135352363E+00 -.11611036707572E+01 + 306 0.76165189097255E+00 0.29382924148583E+00 -.11918606848587E+01 + 307 0.78046469267957E+00 0.30377205898326E+00 -.12251212264984E+01 + 308 0.79974217058876E+00 0.31412476384103E+00 -.12610090573721E+01 + 309 0.81949580220230E+00 0.32490177269596E+00 -.12996395815341E+01 + 310 0.83973734851670E+00 0.33611665749882E+00 -.13411161585097E+01 + 311 0.86047886102506E+00 0.34778178215204E+00 -.13855257738222E+01 + 312 0.88173268889238E+00 0.35990787187620E+00 -.14329340131015E+01 + 313 0.90351148630802E+00 0.37250350796639E+00 -.14833792957971E+01 + 314 0.92582822001983E+00 0.38557454107233E+00 -.15368663404078E+01 + 315 0.94869617705432E+00 0.39912341716140E+00 -.15933588566763E+01 + 316 0.97212897262756E+00 0.41314841208424E+00 -.16527714931904E+01 + 317 0.99614055825146E+00 0.42764277336445E+00 -.17149611132477E+01 + 318 0.10207452300403E+01 0.44259377171201E+00 -.17797175296672E+01 + 319 0.10459576372223E+01 0.45798167005562E+00 -.18467539023759E+01 + 320 0.10717927908617E+01 0.47377862483931E+00 -.19156970925739E+01 + 321 0.10982660727959E+01 0.48994754312540E+00 -.19860783749396E+01 + 322 0.11253932447940E+01 0.50644092979737E+00 -.20573250343672E+01 + 323 0.11531904579404E+01 0.52319977181845E+00 -.21287535141101E+01 + 324 0.11816742622515E+01 0.54015252080236E+00 -.21995649334813E+01 + 325 0.12108616165291E+01 0.55721425049455E+00 -.22688439477615E+01 + 326 0.12407698984574E+01 0.57428608112295E+00 -.23355620688850E+01 + 327 0.12714169149493E+01 0.59125497640922E+00 -.23985866860905E+01 + 328 0.13028209127486E+01 0.60799402919487E+00 -.24566970986807E+01 + 329 0.13350005892935E+01 0.62436335538476E+00 -.25086088700712E+01 + 330 0.13679751038490E+01 0.64021170997375E+00 -.25530076995664E+01 + 331 0.14017640889141E+01 0.65537891973277E+00 -.25885937475666E+01 + 332 0.14363876619103E+01 0.66969919122413E+00 -.26141369009592E+01 + 333 0.14718664371594E+01 0.68300529743597E+00 -.26285427896572E+01 + 334 0.15082215381573E+01 0.69513357022091E+00 -.26309284300421E+01 + 335 0.15454746101498E+01 0.70592953006748E+00 -.26207051543364E+01 + 336 0.15836478330205E+01 0.71525387405869E+00 -.25976649772370E+01 + 337 0.16227639344961E+01 0.72298842582893E+00 -.25620647521610E+01 + 338 0.16628462036781E+01 0.72904154109393E+00 -.25147003733040E+01 + 339 0.17039185049090E+01 0.73335237650899E+00 -.24569608422408E+01 + 340 0.17460052919802E+01 0.73589338974954E+00 -.23908490991599E+01 + 341 0.17891316226921E+01 0.73667046969143E+00 -.23189527983811E+01 + 342 0.18333231737726E+01 0.73572022577872E+00 -.22443430800408E+01 + 343 0.18786062561648E+01 0.73310422902958E+00 -.21703718732088E+01 + 344 0.19250078306921E+01 0.72890043839406E+00 -.21003269942735E+01 + 345 0.19725555241102E+01 0.72319273022262E+00 -.20368877153580E+01 + 346 0.20212776455557E+01 0.71606047297148E+00 -.19813003147615E+01 + 347 0.20712032034009E+01 0.70757159608933E+00 -.19321632132343E+01 + 348 0.21223619225249E+01 0.69778387061759E+00 -.18853929529518E+01 + 349 0.21747842620113E+01 0.68675467590151E+00 -.18397941472677E+01 + 350 0.22285014332830E+01 0.67454784880445E+00 -.17953292144837E+01 + 351 0.22835454186851E+01 0.66123160394581E+00 -.17519633326461E+01 + 352 0.23399489905266E+01 0.64687820780540E+00 -.17096640330590E+01 + 353 0.23977457305926E+01 0.63156368873926E+00 -.16684008600296E+01 + 354 0.24569700501382E+01 0.61536725757916E+00 -.16281450871441E+01 + 355 0.25176572103766E+01 0.59837076475396E+00 -.15888694814757E+01 + 356 0.25798433434729E+01 0.58065813967553E+00 -.15505481081965E+01 + 357 0.26435654740567E+01 0.56231482408857E+00 -.15131561690607E+01 + 358 0.27088615412659E+01 0.54342720499120E+00 -.14766698691404E+01 + 359 0.27757704213352E+01 0.52408205291683E+00 -.14410663070114E+01 + 360 0.28443319507422E+01 0.50436596694341E+00 -.14063233843120E+01 + 361 0.29145869499255E+01 0.48436483709078E+00 -.13724197312332E+01 + 362 0.29865772475887E+01 0.46416332276150E+00 -.13393346450502E+01 + 363 0.30603457056041E+01 0.44384435336590E+00 -.13070480392826E+01 + 364 0.31359362445325E+01 0.42348865415311E+00 -.12755404014809E+01 + 365 0.32133938697725E+01 0.40317430031623E+00 -.12447927579821E+01 + 366 0.32927646983558E+01 0.38297630209712E+00 -.12147866442752E+01 + 367 0.33740959864052E+01 0.36296622328562E+00 -.11855040798661E+01 + 368 0.34574361572694E+01 0.34321183518919E+00 -.11569275467370E+01 + 369 0.35428348303540E+01 0.32377680784174E+00 -.11290399706718E+01 + 370 0.36303428506637E+01 0.30472043992318E+00 -.11018247048613E+01 + 371 0.37200123190751E+01 0.28609742857092E+00 -.10752655153207E+01 + 372 0.38118966233563E+01 0.26795767997791E+00 -.10493465677461E+01 + 373 0.39060504699532E+01 0.25034616138584E+00 -.10240524155204E+01 + 374 0.40025299165610E+01 0.23330279479226E+00 -.99936798863559E+00 + 375 0.41013924055001E+01 0.21686239239502E+00 -.97527858335544E+00 + 376 0.42026967979159E+01 0.20105463349306E+00 -.95176985247829E+00 + 377 0.43065034088245E+01 0.18590408224863E+00 -.92882779609429E+00 + 378 0.44128740430224E+01 0.17143024539200E+00 -.90643875275514E+00 + 379 0.45218720318851E+01 0.15764766861644E+00 -.88458939099412E+00 + 380 0.46335622710726E+01 0.14456607007164E+00 -.86326670114908E+00 + 381 0.47480112591681E+01 0.13219050902083E+00 -.84245798745258E+00 + 382 0.48652871372696E+01 0.12052158738562E+00 -.82215086036185E+00 + 383 0.49854597295602E+01 0.10955568156939E+00 -.80233322910770E+00 + 384 0.51086005848803E+01 0.99285201630904E-01 -.78299329444663E+00 + 385 0.52347830193268E+01 0.89698874582686E-01 -.76411954160347E+00 + 386 0.53640821599042E+01 0.80782048321320E-01 -.74570073339482E+00 + 387 0.54965749892538E+01 0.72517012466649E-01 -.72772590352534E+00 + 388 0.56323403914884E+01 0.64883332201946E-01 -.71018435005024E+00 + 389 0.57714591991582E+01 0.57858191074093E-01 -.69306562899832E+00 + 390 0.59140142413774E+01 0.51416738637884E-01 -.67635954815063E+00 + 391 0.60600903931394E+01 0.45532438816621E-01 -.66005616097026E+00 + 392 0.62097746258499E+01 0.40177414905528E-01 -.64414576067920E+00 + 393 0.63631560591084E+01 0.35322787266938E-01 -.62861887447842E+00 + 394 0.65203260137684E+01 0.30938999956469E-01 -.61346625790752E+00 + 395 0.66813780663085E+01 0.26996132775437E-01 -.59867888934052E+00 + 396 0.68464081045463E+01 0.23464195562360E-01 -.58424796461441E+00 + 397 0.70155143847286E+01 0.20313401909504E-01 -.57016489178720E+00 + 398 0.71887975900314E+01 0.17514419911171E-01 -.55642128602241E+00 + 399 0.73663608905052E+01 0.15038598009197E-01 -.54300896459686E+00 + 400 0.75483100045007E+01 0.12858164487214E-01 -.52991994202874E+00 + 401 0.77347532616118E+01 0.10946399666717E-01 -.51714642532325E+00 + 402 0.79258016671736E+01 0.92777803625477E-02 -.50468080933273E+00 + 403 0.81215689683528E+01 0.78280966506269E-02 -.49251567222868E+00 + 404 0.83221717218711E+01 0.65745414743227E-02 -.48064377108294E+00 + 405 0.85277293634013E+01 0.54957740565576E-02 -.46905803755532E+00 + 406 0.87383642786774E+01 0.45719584822623E-02 -.45775157368529E+00 + 407 0.89542018763607E+01 0.37847791615807E-02 -.44671764778500E+00 + 408 0.91753706627068E+01 0.31174351714905E-02 -.43594969043135E+00 + 409 0.94020023180757E+01 0.25546156975589E-02 -.42544129055465E+00 + 410 0.96342317753321E+01 0.20824589558980E-02 -.41518619162160E+00 + 411 0.98721973001828E+01 0.16884970677246E-02 -.40517828791022E+00 + 412 0.10116040573497E+02 0.13615893871211E-02 -.39541162087461E+00 + 413 0.10365906775663E+02 0.10918467504374E-02 -.38588037559736E+00 + 414 0.10621944673022E+02 0.87054902881630E-03 -.37657887732737E+00 + 415 0.10884306706445E+02 0.69005823049853E-03 -.36750158810127E+00 + 416 0.11153149082094E+02 0.54372922487328E-03 -.35864310344615E+00 + 417 0.11428631864422E+02 0.42581995436271E-03 -.34999814916186E+00 + 418 0.11710919071473E+02 0.33140277212202E-03 -.34156157818079E+00 + 419 0.12000178772539E+02 0.25627830209302E-03 -.33332836750346E+00 + 420 0.12296583188220E+02 0.19689297163550E-03 -.32529361520782E+00 + 421 0.12600308792970E+02 0.15026112354145E-03 -.31745253753081E+00 + 422 0.12911536420156E+02 0.11389238053585E-03 -.30980046602012E+00 + 423 0.13230451369734E+02 0.85724717097219E-04 -.30233284475468E+00 + 424 0.13557243518566E+02 0.64063495091759E-04 -.29504522763216E+00 + 425 0.13892107433475E+02 0.47526544553098E-04 -.28793327572183E+00 + 426 0.14235242487082E+02 0.34995220972827E-04 -.28099275468121E+00 + 427 0.14586852976512E+02 0.25571246552582E-04 -.27421953223500E+00 + 428 0.14947148245032E+02 0.18539044825571E-04 -.26760957571485E+00 + 429 0.15316342806685E+02 0.13333204809806E-04 -.26115894965829E+00 + 430 0.15694656474010E+02 0.95106606105773E-05 -.25486381346568E+00 + 431 0.16082314488918E+02 0.67271428058973E-05 -.24872041911358E+00 + 432 0.16479547656794E+02 0.47174463200963E-05 -.24272510892318E+00 + 433 0.16886592483917E+02 0.32790629152995E-05 -.23687431338263E+00 + 434 0.17303691318270E+02 0.22587419610635E-05 -.23116454902179E+00 + 435 0.17731092493831E+02 0.15415679172813E-05 -.22559241633823E+00 + 436 0.18169050478428E+02 0.10421743130365E-05 -.22015459777323E+00 + 437 0.18617826025246E+02 0.69774952133936E-06 -.21484785573654E+00 + 438 0.19077686328069E+02 0.46252723409832E-06 -.20966903067878E+00 + 439 0.19548905180373E+02 0.30349249880698E-06 -.20461503921028E+00 + 440 0.20031763138328E+02 0.19707110762764E-06 -.19968287226533E+00 + 441 0.20526547687844E+02 0.12660499173949E-06 -.19486959331056E+00 + 442 0.21033553415734E+02 0.80448344976084E-07 -.19017233659662E+00 + 443 0.21553082185103E+02 0.50548035532084E-07 -.18558830545196E+00 + 444 0.22085443315075E+02 0.31397253562386E-07 -.18111477061770E+00 + 445 0.22630953764957E+02 0.19273267645139E-07 -.17674906862272E+00 + 446 0.23189938322952E+02 0.11688752231306E-07 -.17248860019783E+00 + 447 0.23762729799529E+02 0.70016348671260E-08 -.16833082872825E+00 + 448 0.24349669225577E+02 0.41410944151837E-08 -.16427327874329E+00 + 449 0.24951106055449E+02 0.24175612483890E-08 -.16031353444256E+00 + 450 0.25567398375018E+02 0.13926576290085E-08 -.15644923825759E+00 + 451 0.26198913114881E+02 0.79135225994391E-09 -.15267808944822E+00 + 452 0.26846026268819E+02 0.44341042180612E-09 -.14899784273272E+00 + 453 0.27509123117659E+02 0.24490682679714E-09 -.14540630695103E+00 + 454 0.28188598458665E+02 0.13329015679150E-09 -.14190134376016E+00 + 455 0.28884856840594E+02 0.71455560281206E-10 -.13848086636104E+00 + 456 0.29598312804556E+02 0.37718028571722E-10 -.13514283825611E+00 + 457 0.30329391130829E+02 0.19595968448865E-10 -.13188527203680E+00 + 458 0.31078527091760E+02 0.10016464453212E-10 -.12870622820026E+00 + 459 0.31846166710927E+02 0.50351521305146E-11 -.12560381399459E+00 + 460 0.32632767028687E+02 0.24881509287055E-11 -.12257618229198E+00 + 461 0.33438796374295E+02 0.12081401610924E-11 -.11962153048890E+00 + 462 0.34264734644740E+02 0.57615558385805E-12 -.11673809943291E+00 + 463 0.35111073590466E+02 0.26973894937225E-12 -.11392417237524E+00 + 464 0.35978317108150E+02 0.12391501953765E-12 -.11117807394871E+00 + 465 0.36866981540721E+02 0.55829382966373E-13 -.10849816917021E+00 + 466 0.37777595984777E+02 0.24657404478299E-13 -.10588286246726E+00 + 467 0.38710702605601E+02 0.10666537978350E-13 -.10333059672808E+00 + 468 0.39666856959960E+02 0.45157276660841E-14 -.10083985237443E+00 + 469 0.40646628326870E+02 0.00000000000000E+00 -.98409146456945E-01 + 470 0.41650600046544E+02 0.00000000000000E+00 -.96037031772172E-01 + 471 0.42679369867694E+02 0.00000000000000E+00 -.93722096000949E-01 + 472 0.43733550303426E+02 0.00000000000000E+00 -.91462960867521E-01 + 473 0.44813768995920E+02 0.00000000000000E+00 -.89258281318943E-01 + 474 0.45920669090120E+02 0.00000000000000E+00 -.87106744724254E-01 + 475 0.47054909616646E+02 0.00000000000000E+00 -.85007070092958E-01 + 476 0.48217165884177E+02 0.00000000000000E+00 -.82958007312343E-01 + 477 0.49408129881516E+02 0.00000000000000E+00 -.80958336403185E-01 + 478 0.50628510689589E+02 0.00000000000000E+00 -.79006866793388E-01 + 479 0.51879034903622E+02 0.00000000000000E+00 -.77102436609142E-01 + 480 0.53160447065742E+02 0.00000000000000E+00 -.75243911983158E-01 + 481 0.54473510108266E+02 0.00000000000000E+00 -.73430186379582E-01 + 482 0.55819005807940E+02 0.00000000000000E+00 -.71660179935183E-01 + 483 0.57197735251396E+02 0.00000000000000E+00 -.69932838816418E-01 + 484 0.58610519312105E+02 0.00000000000000E+00 -.68247134591996E-01 + 485 0.60058199139114E+02 0.00000000000000E+00 -.66602063620568E-01 + 486 0.61541636657850E+02 0.00000000000000E+00 -.64996646453174E-01 + 487 0.63061715083299E+02 0.00000000000000E+00 -.63429927250097E-01 + 488 0.64619339445857E+02 0.00000000000000E+00 -.61900973211766E-01 + 489 0.66215437130169E+02 0.00000000000000E+00 -.60408874023389E-01 + 490 0.67850958427285E+02 0.00000000000000E+00 -.58952741312958E-01 + 491 0.69526877100439E+02 0.00000000000000E+00 -.57531708122337E-01 + 492 0.71244190964819E+02 0.00000000000000E+00 -.56144928391077E-01 + 493 0.73003922481650E+02 0.00000000000000E+00 -.54791576452696E-01 + 494 0.74807119366947E+02 0.00000000000000E+00 -.53470846543081E-01 + 495 0.76654855215311E+02 0.00000000000000E+00 -.52181952320759E-01 +495 0.10247000000000E+01 + 1 0.44642857142857E-03 0.73930203947187E-07 -.27052394034854E+01 + 2 0.45745535714286E-03 0.77627460100304E-07 -.27052394978413E+01 + 3 0.46875450446429E-03 0.81509616366392E-07 -.27052395897535E+01 + 4 0.48033274072455E-03 0.85585919616741E-07 -.27052396792723E+01 + 5 0.49219695942045E-03 0.89866079779162E-07 -.27052397664466E+01 + 6 0.50435422431814E-03 0.94360291146501E-07 -.27052398513235E+01 + 7 0.51681177365879E-03 0.99079258436730E-07 -.27052399339487E+01 + 8 0.52957702446817E-03 0.10403422171377E-06 -.27052400143660E+01 + 9 0.54265757697253E-03 0.10923698315766E-06 -.27052400926180E+01 + 10 0.55606121912375E-03 0.11469993517636E-06 -.27052401687454E+01 + 11 0.56979593123611E-03 0.12043608992311E-06 -.27052402427875E+01 + 12 0.58386989073764E-03 0.12645911028990E-06 -.27052403147822E+01 + 13 0.59829147703886E-03 0.13278334245094E-06 -.27052403847656E+01 + 14 0.61306927652172E-03 0.13942385003367E-06 -.27052404527723E+01 + 15 0.62821208765180E-03 0.14639644999862E-06 -.27052405188357E+01 + 16 0.64372892621680E-03 0.15371775031361E-06 -.27052405829872E+01 + 17 0.65962903069436E-03 0.16140518951207E-06 -.27052406452570E+01 + 18 0.67592186775251E-03 0.16947707822968E-06 -.27052407056737E+01 + 19 0.69261713788600E-03 0.17795264281818E-06 -.27052407642643E+01 + 20 0.70972478119178E-03 0.18685207114044E-06 -.27052408210545E+01 + 21 0.72725498328722E-03 0.19619656065557E-06 -.27052408760681E+01 + 22 0.74521818137441E-03 0.20600836890894E-06 -.27052409293275E+01 + 23 0.76362507045436E-03 0.21631086654705E-06 -.27052409808538E+01 + 24 0.78248660969458E-03 0.22712859298379E-06 -.27052410306661E+01 + 25 0.80181402895404E-03 0.23848731485046E-06 -.27052410787822E+01 + 26 0.82161883546920E-03 0.25041408736899E-06 -.27052411252182E+01 + 27 0.84191282070529E-03 0.26293731879431E-06 -.27052411699886E+01 + 28 0.86270806737671E-03 0.27608683807958E-06 -.27052412131062E+01 + 29 0.88401695664092E-03 0.28989396592526E-06 -.27052412545822E+01 + 30 0.90585217546995E-03 0.30439158938141E-06 -.27052412944259E+01 + 31 0.92822672420406E-03 0.31961424018081E-06 -.27052413326452E+01 + 32 0.95115392429190E-03 0.33559817698951E-06 -.27052413692460E+01 + 33 0.97464742622191E-03 0.35238147177072E-06 -.27052414042323E+01 + 34 0.99872121764959E-03 0.37000410046772E-06 -.27052414376066E+01 + 35 0.10233896317255E-02 0.38850803822189E-06 -.27052414693692E+01 + 36 0.10486673556292E-02 0.40793735935249E-06 -.27052414995186E+01 + 37 0.10745694393132E-02 0.42833834233641E-06 -.27052415280513E+01 + 38 0.11011113044642E-02 0.44975958003802E-06 -.27052415549618E+01 + 39 0.11283087536845E-02 0.47225209545151E-06 -.27052415802425E+01 + 40 0.11561779799005E-02 0.49586946323148E-06 -.27052416038835E+01 + 41 0.11847355760040E-02 0.52066793730131E-06 -.27052416258728E+01 + 42 0.12139985447313E-02 0.54670658484314E-06 -.27052416461962E+01 + 43 0.12439843087862E-02 0.57404742698862E-06 -.27052416648371E+01 + 44 0.12747107212132E-02 0.60275558654564E-06 -.27052416817763E+01 + 45 0.13061960760272E-02 0.63289944311274E-06 -.27052416969922E+01 + 46 0.13384591191051E-02 0.66455079595085E-06 -.27052417104606E+01 + 47 0.13715190593470E-02 0.69778503500005E-06 -.27052417221546E+01 + 48 0.14053955801128E-02 0.73268132044889E-06 -.27052417320444E+01 + 49 0.14401088509416E-02 0.76932277128390E-06 -.27052417400975E+01 + 50 0.14756795395599E-02 0.80779666326836E-06 -.27052417462781E+01 + 51 0.15121288241870E-02 0.84819463682186E-06 -.27052417505474E+01 + 52 0.15494784061444E-02 0.89061291529590E-06 -.27052417528634E+01 + 53 0.15877505227762E-02 0.93515253416523E-06 -.27052417531807E+01 + 54 0.16269679606888E-02 0.98191958168100E-06 -.27052417514502E+01 + 55 0.16671540693178E-02 0.10310254515588E-05 -.27052417476193E+01 + 56 0.17083327748299E-02 0.10825871083034E-05 -.27052417416315E+01 + 57 0.17505285943682E-02 0.11367273658025E-05 -.27052417334263E+01 + 58 0.17937666506491E-02 0.11935751798522E-05 -.27052417229390E+01 + 59 0.18380726869201E-02 0.12532659553120E-05 -.27052417101007E+01 + 60 0.18834730822871E-02 0.13159418686203E-05 -.27052416948377E+01 + 61 0.19299948674196E-02 0.13817522064379E-05 -.27052416770719E+01 + 62 0.19776657406448E-02 0.14508537212281E-05 -.27052416567199E+01 + 63 0.20265140844388E-02 0.15234110046179E-05 -.27052416336934E+01 + 64 0.20765689823244E-02 0.15995968794310E-05 -.27052416078985E+01 + 65 0.21278602361878E-02 0.16795928113259E-05 -.27052415792358E+01 + 66 0.21804183840216E-02 0.17635893410200E-05 -.27052415475999E+01 + 67 0.22342747181070E-02 0.18517865381280E-05 -.27052415128792E+01 + 68 0.22894613036442E-02 0.19443944776970E-05 -.27052414749557E+01 + 69 0.23460109978442E-02 0.20416337405715E-05 -.27052414337046E+01 + 70 0.24039574694910E-02 0.21437359387822E-05 -.27052413889940E+01 + 71 0.24633352189874E-02 0.22509442672077E-05 -.27052413406844E+01 + 72 0.25241795988964E-02 0.23635140828248E-05 -.27052412886289E+01 + 73 0.25865268349891E-02 0.24817135129252E-05 -.27052412326720E+01 + 74 0.26504140478134E-02 0.26058240937494E-05 -.27052411726501E+01 + 75 0.27158792747944E-02 0.27361414410564E-05 -.27052411083904E+01 + 76 0.27829614928818E-02 0.28729759542279E-05 -.27052410397107E+01 + 77 0.28517006417560E-02 0.30166535555835E-05 -.27052409664191E+01 + 78 0.29221376476073E-02 0.31675164666674E-05 -.27052408883134E+01 + 79 0.29943144475032E-02 0.33259240233552E-05 -.27052408051804E+01 + 80 0.30682740143566E-02 0.34922535317227E-05 -.27052407167959E+01 + 81 0.31440603825112E-02 0.36669011667151E-05 -.27052406229236E+01 + 82 0.32217186739592E-02 0.38502829157553E-05 -.27052405233148E+01 + 83 0.33012951252060E-02 0.40428355695405E-05 -.27052404177078E+01 + 84 0.33828371147986E-02 0.42450177623857E-05 -.27052403058272E+01 + 85 0.34663931915341E-02 0.44573110645910E-05 -.27052401873830E+01 + 86 0.35520131033650E-02 0.46802211294360E-05 -.27052400620706E+01 + 87 0.36397478270181E-02 0.49142788975307E-05 -.27052399295691E+01 + 88 0.37296495983455E-02 0.51600418613926E-05 -.27052397895415E+01 + 89 0.38217719434246E-02 0.54180953932602E-05 -.27052396416329E+01 + 90 0.39161697104272E-02 0.56890541393063E-05 -.27052394854705E+01 + 91 0.40128991022747E-02 0.59735634835695E-05 -.27052393206623E+01 + 92 0.41120177101009E-02 0.62723010850916E-05 -.27052391467961E+01 + 93 0.42135845475404E-02 0.65859784919203E-05 -.27052389634386E+01 + 94 0.43176600858647E-02 0.69153428358206E-05 -.27052387701344E+01 + 95 0.44243062899855E-02 0.72611786117311E-05 -.27052385664049E+01 + 96 0.45335866553482E-02 0.76243095462014E-05 -.27052383517472E+01 + 97 0.46455662457353E-02 0.80056005592606E-05 -.27052381256326E+01 + 98 0.47603117320049E-02 0.84059598243875E-05 -.27052378875057E+01 + 99 0.48778914317854E-02 0.88263409314883E-05 -.27052376367828E+01 + 100 0.49983753501505E-02 0.92677451580313E-05 -.27052373728508E+01 + 101 0.51218352212993E-02 0.97312238537463E-05 -.27052370950653E+01 + 102 0.52483445512654E-02 0.10217880944567E-04 -.27052368027495E+01 + 103 0.53779786616816E-02 0.10728875561776E-04 -.27052364951923E+01 + 104 0.55108147346251E-02 0.11265424802617E-04 -.27052361716467E+01 + 105 0.56469318585704E-02 0.11828806628942E-04 -.27052358313280E+01 + 106 0.57864110754771E-02 0.12420362910792E-04 -.27052354734118E+01 + 107 0.59293354290414E-02 0.13041502622168E-04 -.27052350970324E+01 + 108 0.60757900141387E-02 0.13693705196586E-04 -.27052347012802E+01 + 109 0.62258620274879E-02 0.14378524050419E-04 -.27052342852001E+01 + 110 0.63796408195669E-02 0.15097590282396E-04 -.27052338477887E+01 + 111 0.65372179478102E-02 0.15852616558083E-04 -.27052333879924E+01 + 112 0.66986872311211E-02 0.16645401188580E-04 -.27052329047042E+01 + 113 0.68641448057298E-02 0.17477832413144E-04 -.27052323967620E+01 + 114 0.70336891824313E-02 0.18351892895936E-04 -.27052318629450E+01 + 115 0.72074213052373E-02 0.19269664447591E-04 -.27052313019711E+01 + 116 0.73854446114767E-02 0.20233332982855E-04 -.27052307124941E+01 + 117 0.75678650933802E-02 0.21245193726070E-04 -.27052300931000E+01 + 118 0.77547913611867E-02 0.22307656676925E-04 -.27052294423041E+01 + 119 0.79463347078080E-02 0.23423252349449E-04 -.27052287585470E+01 + 120 0.81426091750908E-02 0.24594637797921E-04 -.27052280401914E+01 + 121 0.83437316217156E-02 0.25824602944039E-04 -.27052272855178E+01 + 122 0.85498217927719E-02 0.27116077220381E-04 -.27052264927206E+01 + 123 0.87610023910534E-02 0.28472136545995E-04 -.27052256599037E+01 + 124 0.89773991501124E-02 0.29896010650682E-04 -.27052247850763E+01 + 125 0.91991409091202E-02 0.31391090765427E-04 -.27052238661477E+01 + 126 0.94263596895755E-02 0.32960937697248E-04 -.27052229009225E+01 + 127 0.96591907739080E-02 0.34609290307685E-04 -.27052218870956E+01 + 128 0.98977727860235E-02 0.36340074415093E-04 -.27052208222467E+01 + 129 0.10142247773838E-01 0.38157412141905E-04 -.27052197038341E+01 + 130 0.10392761293852E-01 0.40065631729107E-04 -.27052185291892E+01 + 131 0.10649462497810E-01 0.42069277841250E-04 -.27052172955100E+01 + 132 0.10912504221506E-01 0.44173122386519E-04 -.27052159998543E+01 + 133 0.11182043075777E-01 0.46382175877566E-04 -.27052146391329E+01 + 134 0.11458239539749E-01 0.48701699360136E-04 -.27052132101023E+01 + 135 0.11741258056381E-01 0.51137216937826E-04 -.27052117093567E+01 + 136 0.12031267130373E-01 0.53694528922762E-04 -.27052101333203E+01 + 137 0.12328439428494E-01 0.56379725643436E-04 -.27052084782389E+01 + 138 0.12632951882377E-01 0.59199201942527E-04 -.27052067401704E+01 + 139 0.12944985793872E-01 0.62159672399155E-04 -.27052049149763E+01 + 140 0.13264726942981E-01 0.65268187311721E-04 -.27052029983111E+01 + 141 0.13592365698472E-01 0.68532149479327E-04 -.27052009856127E+01 + 142 0.13928097131225E-01 0.71959331821606E-04 -.27051988720913E+01 + 143 0.14272121130366E-01 0.75557895878839E-04 -.27051966527179E+01 + 144 0.14624642522286E-01 0.79336411236263E-04 -.27051943222128E+01 + 145 0.14985871192586E-01 0.83303875918707E-04 -.27051918750330E+01 + 146 0.15356022211043E-01 0.87469737803958E-04 -.27051893053590E+01 + 147 0.15735315959656E-01 0.91843917105690E-04 -.27051866070813E+01 + 148 0.16123978263860E-01 0.96436829979298E-04 -.27051837737857E+01 + 149 0.16522240526977E-01 0.10125941330666E-03 -.27051807987384E+01 + 150 0.16930339867993E-01 0.10632315071858E-03 -.27051776748701E+01 + 151 0.17348519262733E-01 0.11164009991673E-03 -.27051743947596E+01 + 152 0.17777027688522E-01 0.11722292135970E-03 -.27051709506158E+01 + 153 0.18216120272429E-01 0.12308490838134E-03 -.27051673342598E+01 + 154 0.18666058443158E-01 0.12924001881267E-03 -.27051635371056E+01 + 155 0.19127110086704E-01 0.13570290818228E-03 -.27051595501401E+01 + 156 0.19599549705845E-01 0.14248896457397E-03 -.27051553639017E+01 + 157 0.20083658583580E-01 0.14961434522404E-03 -.27051509684583E+01 + 158 0.20579724950594E-01 0.15709601494491E-03 -.27051463533838E+01 + 159 0.21088044156874E-01 0.16495178646614E-03 -.27051415077342E+01 + 160 0.21608918847549E-01 0.17320036278806E-03 -.27051364200217E+01 + 161 0.22142659143083E-01 0.18186138164843E-03 -.27051310781878E+01 + 162 0.22689582823917E-01 0.19095546220704E-03 -.27051254695754E+01 + 163 0.23250015519668E-01 0.20050425405880E-03 -.27051195808992E+01 + 164 0.23824290903004E-01 0.21053048869091E-03 -.27051133982148E+01 + 165 0.24412750888308E-01 0.22105803350580E-03 -.27051069068865E+01 + 166 0.25015745835249E-01 0.23211194853724E-03 -.27051000915528E+01 + 167 0.25633634757380E-01 0.24371854599355E-03 -.27050929360914E+01 + 168 0.26266785535887E-01 0.25590545276820E-03 -.27050854235816E+01 + 169 0.26915575138623E-01 0.26870167606533E-03 -.27050775362650E+01 + 170 0.27580389844547E-01 0.28213767229453E-03 -.27050692555051E+01 + 171 0.28261625473708E-01 0.29624541939748E-03 -.27050605617437E+01 + 172 0.28959687622908E-01 0.31105849277622E-03 -.27050514344561E+01 + 173 0.29674991907194E-01 0.32661214500200E-03 -.27050418521045E+01 + 174 0.30407964207302E-01 0.34294338949180E-03 -.27050317920879E+01 + 175 0.31159040923222E-01 0.36009108834915E-03 -.27050212306907E+01 + 176 0.31928669234026E-01 0.37809604457549E-03 -.27050101430288E+01 + 177 0.32717307364106E-01 0.39700109886813E-03 -.27049985029927E+01 + 178 0.33525424856000E-01 0.41685123123185E-03 -.27049862831880E+01 + 179 0.34353502849943E-01 0.43769366764203E-03 -.27049734548739E+01 + 180 0.35202034370336E-01 0.45957799200871E-03 -.27049599878975E+01 + 181 0.36071524619284E-01 0.48255626370353E-03 -.27049458506264E+01 + 182 0.36962491277380E-01 0.50668314092371E-03 -.27049310098772E+01 + 183 0.37875464811931E-01 0.53201601018112E-03 -.27049154308415E+01 + 184 0.38810988792786E-01 0.55861512221804E-03 -.27048990770077E+01 + 185 0.39769620215968E-01 0.58654373466594E-03 -.27048819100799E+01 + 186 0.40751929835302E-01 0.61586826177920E-03 -.27048638898932E+01 + 187 0.41758502502234E-01 0.64665843159115E-03 -.27048449743243E+01 + 188 0.42789937514039E-01 0.67898745085722E-03 -.27048251191993E+01 + 189 0.43846848970636E-01 0.71293217816695E-03 -.27048042781965E+01 + 190 0.44929866140211E-01 0.74857330562538E-03 -.27047824027456E+01 + 191 0.46039633833874E-01 0.78599554952325E-03 -.27047594419215E+01 + 192 0.47176812789571E-01 0.82528785043566E-03 -.27047353423349E+01 + 193 0.48342080065473E-01 0.86654358320978E-03 -.27047100480169E+01 + 194 0.49536129443090E-01 0.90986077732391E-03 -.27046835002997E+01 + 195 0.50759671840335E-01 0.95534234812354E-03 -.27046556376911E+01 + 196 0.52013435734791E-01 0.10030963394634E-02 -.27046263957453E+01 + 197 0.53298167597440E-01 0.10532361783098E-02 -.27045957069267E+01 + 198 0.54614632337097E-01 0.11058809418840E-02 -.27045635004694E+01 + 199 0.55963613755823E-01 0.11611556379530E-02 -.27045297022307E+01 + 200 0.57345915015592E-01 0.12191914989051E-02 -.27044942345383E+01 + 201 0.58762359116477E-01 0.12801262902744E-02 -.27044570160320E+01 + 202 0.60213789386654E-01 0.13441046344113E-02 -.27044179614994E+01 + 203 0.61701069984505E-01 0.14112783500270E-02 -.27043769817052E+01 + 204 0.63225086413122E-01 0.14818068083742E-02 -.27043339832138E+01 + 205 0.64786746047526E-01 0.15558573068601E-02 -.27042888682062E+01 + 206 0.66386978674900E-01 0.16336054609254E-02 -.27042415342900E+01 + 207 0.68026737048170E-01 0.17152356150597E-02 -.27041918743027E+01 + 208 0.69706997453260E-01 0.18009412738621E-02 -.27041397761086E+01 + 209 0.71428760290355E-01 0.18909255540994E-02 -.27040851223894E+01 + 210 0.73193050669527E-01 0.19854016587525E-02 -.27040277904275E+01 + 211 0.75000919021064E-01 0.20845933740886E-02 -.27039676518832E+01 + 212 0.76853441720885E-01 0.21887355908407E-02 -.27039045725657E+01 + 213 0.78751721731390E-01 0.22980748506236E-02 -.27038384121973E+01 + 214 0.80696889258156E-01 0.24128699187627E-02 -.27037690241717E+01 + 215 0.82690102422832E-01 0.25333923847640E-02 -.27036962553065E+01 + 216 0.84732547952676E-01 0.26599272917055E-02 -.27036199455904E+01 + 217 0.86825441887107E-01 0.27927737958808E-02 -.27035399279243E+01 + 218 0.88970030301719E-01 0.29322458580853E-02 -.27034560278595E+01 + 219 0.91167590050171E-01 0.30786729679882E-02 -.27033680633297E+01 + 220 0.93419429524410E-01 0.32324009030936E-02 -.27032758443810E+01 + 221 0.95726889433663E-01 0.33937925238541E-02 -.27031791728990E+01 + 222 0.98091343602675E-01 0.35632286065587E-02 -.27030778423338E+01 + 223 0.10051419978966E+00 0.37411087156835E-02 -.27029716374243E+01 + 224 0.10299690052447E+00 0.39278521174532E-02 -.27028603339235E+01 + 225 0.10554092396742E+00 0.41238987364282E-02 -.27027436983254E+01 + 226 0.10814778478942E+00 0.43297101569979E-02 -.27026214875953E+01 + 227 0.11081903507371E+00 0.45457706717263E-02 -.27024934489052E+01 + 228 0.11355626524003E+00 0.47725883785626E-02 -.27023593193773E+01 + 229 0.11636110499146E+00 0.50106963289985E-02 -.27022188258360E+01 + 230 0.11923522428475E+00 0.52606537293182E-02 -.27020716845726E+01 + 231 0.12218033432459E+00 0.55230471971561E-02 -.27019176011253E+01 + 232 0.12519818858240E+00 0.57984920756417E-02 -.27017562700763E+01 + 233 0.12829058384039E+00 0.60876338074768E-02 -.27015873748716E+01 + 234 0.13145936126125E+00 0.63911493713516E-02 -.27014105876666E+01 + 235 0.13470640748440E+00 0.67097487831680E-02 -.27012255692010E+01 + 236 0.13803365574926E+00 0.70441766645957E-02 -.27010319687091E+01 + 237 0.14144308704627E+00 0.73952138815385E-02 -.27008294238712E+01 + 238 0.14493673129631E+00 0.77636792551409E-02 -.27006175608104E+01 + 239 0.14851666855933E+00 0.81504313480029E-02 -.27003959941426E+01 + 240 0.15218503027275E+00 0.85563703283143E-02 -.27001643270870E+01 + 241 0.15594400052048E+00 0.89824399146401E-02 -.26999221516445E+01 + 242 0.15979581733334E+00 0.94296294041168E-02 -.26996690488528E+01 + 243 0.16374277402147E+00 0.98989757868188E-02 -.26994045891275E+01 + 244 0.16778722053980E+00 0.10391565949057E-01 -.26991283327002E+01 + 245 0.17193156488714E+00 0.10908538968349E-01 -.26988398301641E+01 + 246 0.17617827453985E+00 0.11451088502759E-01 -.26985386231400E+01 + 247 0.18052987792098E+00 0.12020465277268E-01 -.26982242450751E+01 + 248 0.18498896590563E+00 0.12617979669735E-01 -.26978962221899E+01 + 249 0.18955819336350E+00 0.13245004398922E-01 -.26975540745880E+01 + 250 0.19424028073958E+00 0.13902977316919E-01 -.26971973175461E+01 + 251 0.19903801567385E+00 0.14593404308160E-01 -.26968254630013E+01 + 252 0.20395425466099E+00 0.15317862296977E-01 -.26964380212562E+01 + 253 0.20899192475112E+00 0.16078002365456E-01 -.26960345029202E+01 + 254 0.21415402529247E+00 0.16875552983038E-01 -.26956144211117E+01 + 255 0.21944362971719E+00 0.17712323348959E-01 -.26951772939418E+01 + 256 0.22486388737121E+00 0.18590206848269E-01 -.26947226473056E+01 + 257 0.23041802538928E+00 0.19511184621661E-01 -.26942500180061E+01 + 258 0.23610935061639E+00 0.20477329248835E-01 -.26937589572387E+01 + 259 0.24194125157662E+00 0.21490808544483E-01 -.26932490344632E+01 + 260 0.24791720049056E+00 0.22553889465285E-01 -.26927198416938E+01 + 261 0.25404075534268E+00 0.23668942125484E-01 -.26921709982368E+01 + 262 0.26031556199964E+00 0.24838443917672E-01 -.26916021559064E+01 + 263 0.26674535638103E+00 0.26064983734367E-01 -.26910130047505E+01 + 264 0.27333396668364E+00 0.27351266284754E-01 -.26904032793167E+01 + 265 0.28008531566073E+00 0.28700116499606E-01 -.26897727654909E+01 + 266 0.28700342295755E+00 0.30114484015832E-01 -.26891213079356E+01 + 267 0.29409240750460E+00 0.31597447730389E-01 -.26884488181590E+01 + 268 0.30135648996997E+00 0.33152220411296E-01 -.26877552832389E+01 + 269 0.30879999527222E+00 0.34782153351298E-01 -.26870407752232E+01 + 270 0.31642735515545E+00 0.36490741047199E-01 -.26863054612276E+01 + 271 0.32424311082779E+00 0.38281625885124E-01 -.26855496142393E+01 + 272 0.33225191566523E+00 0.40158602808775E-01 -.26847736246338E+01 + 273 0.34045853798216E+00 0.42125623944249E-01 -.26839780123995E+01 + 274 0.34886786387032E+00 0.44186803151014E-01 -.26831634400546E+01 + 275 0.35748490010792E+00 0.46346420464184E-01 -.26823307262259E+01 + 276 0.36631477714059E+00 0.48608926388311E-01 -.26814808598448E+01 + 277 0.37536275213596E+00 0.50978945997297E-01 -.26806150148929E+01 + 278 0.38463421211372E+00 0.53461282788873E-01 -.26797345656077E+01 + 279 0.39413467715293E+00 0.56060922235089E-01 -.26788411020297E+01 + 280 0.40386980367860E+00 0.58783034962549E-01 -.26779364457405E+01 + 281 0.41384538782946E+00 0.61632979487416E-01 -.26770226655990E+01 + 282 0.42406736890885E+00 0.64616304420577E-01 -.26761020932430E+01 + 283 0.43454183292090E+00 0.67738750047548E-01 -.26751773380638E+01 + 284 0.44527501619405E+00 0.71006249175693E-01 -.26742513013071E+01 + 285 0.45627330909404E+00 0.74424927127941E-01 -.26733271888774E+01 + 286 0.46754325982866E+00 0.78001100747273E-01 -.26724085223463E+01 + 287 0.47909157834643E+00 0.81741276259715E-01 -.26714991475699E+01 + 288 0.49092514033159E+00 0.85652145825144E-01 -.26706032402180E+01 + 289 0.50305099129778E+00 0.89740582584845E-01 -.26697253073950E+01 + 290 0.51547635078283E+00 0.94013633992146E-01 -.26688701844014E+01 + 291 0.52820861664717E+00 0.98478513187534E-01 -.26680430255319E+01 + 292 0.54125536947835E+00 0.10314258815208E+00 -.26672492876358E+01 + 293 0.55462437710447E+00 0.10801336834277E+00 -.26664947049796E+01 + 294 0.56832359921895E+00 0.11309848848026E+00 -.26657852537439E+01 + 295 0.58236119211966E+00 0.11840568912308E+00 -.26651271042573E+01 + 296 0.59674551356501E+00 0.12394279362340E+00 -.26645265588229E+01 + 297 0.61148512775007E+00 0.12971768101660E+00 -.26639899727278E+01 + 298 0.62658881040550E+00 0.13573825435132E+00 -.26635236557361E+01 + 299 0.64206555402251E+00 0.14201240391852E+00 -.26631337510709E+01 + 300 0.65792457320687E+00 0.14854796478647E+00 -.26628260885755E+01 + 301 0.67417531016508E+00 0.15535266799607E+00 -.26626060084305E+01 + 302 0.69082744032615E+00 0.16243408471646E+00 -.26624781514926E+01 + 303 0.70789087810221E+00 0.16979956260739E+00 -.26624462120228E+01 + 304 0.72537578279133E+00 0.17745615358245E+00 -.26625126483130E+01 + 305 0.74329256462628E+00 0.18541053211998E+00 -.26626783465031E+01 + 306 0.76165189097255E+00 0.19366890322790E+00 -.26629422327507E+01 + 307 0.78046469267957E+00 0.20223689913980E+00 -.26633008288923E+01 + 308 0.79974217058876E+00 0.21111946380702E+00 -.26637477468600E+01 + 309 0.81949580220230E+00 0.22032072426137E+00 -.26642731174490E+01 + 310 0.83973734851670E+00 0.22984384796376E+00 -.26648629496195E+01 + 311 0.86047886102506E+00 0.23969088533434E+00 -.26654984174394E+01 + 312 0.88173268889238E+00 0.24986259679175E+00 -.26661550731174E+01 + 313 0.90351148630802E+00 0.26035826382528E+00 -.26668019864365E+01 + 314 0.92582822001983E+00 0.27117548390064E+00 -.26674008133959E+01 + 315 0.94869617705432E+00 0.28230994937433E+00 -.26679048001309E+01 + 316 0.97212897262756E+00 0.29375521108288E+00 -.26682577323553E+01 + 317 0.99614055825146E+00 0.30550242790206E+00 -.26683928458099E+01 + 318 0.10207452300403E+01 0.31754010435851E+00 -.26682317196756E+01 + 319 0.10459576372223E+01 0.32985381934143E+00 -.26676831827765E+01 + 320 0.10717927908617E+01 0.34242595012229E+00 -.26666422718147E+01 + 321 0.10982660727959E+01 0.35523539725631E+00 -.26649892919586E+01 + 322 0.11253932447940E+01 0.36825731751139E+00 -.26625890429316E+01 + 323 0.11531904579404E+01 0.38146287373507E+00 -.26592902882872E+01 + 324 0.11816742622515E+01 0.39481901249273E+00 -.26549255616757E+01 + 325 0.12108616165291E+01 0.40828828232916E+00 -.26493114212705E+01 + 326 0.12407698984574E+01 0.42182870752255E+00 -.26422492815379E+01 + 327 0.12714169149493E+01 0.43539373407322E+00 -.26335269692695E+01 + 328 0.13028209127486E+01 0.44893226620558E+00 -.26229211668438E+01 + 329 0.13350005892935E+01 0.46238881260915E+00 -.26102009180608E+01 + 330 0.13679751038490E+01 0.47570376169156E+00 -.25951323778423E+01 + 331 0.14017640889141E+01 0.48881380389313E+00 -.25774849829425E+01 + 332 0.14363876619103E+01 0.50165251620605E+00 -.25570392017285E+01 + 333 0.14718664371594E+01 0.51415111901543E+00 -.25335959808527E+01 + 334 0.15082215381573E+01 0.52623940782083E+00 -.25069879373291E+01 + 335 0.15454746101498E+01 0.53784685197117E+00 -.24770922361457E+01 + 336 0.15836478330205E+01 0.54890383908394E+00 -.24438449334668E+01 + 337 0.16227639344961E+01 0.55934302742858E+00 -.24072563376079E+01 + 338 0.16628462036781E+01 0.56910074975818E+00 -.23674266233878E+01 + 339 0.17039185049090E+01 0.57811839199200E+00 -.23245605022887E+01 + 340 0.17460052919802E+01 0.58634365072091E+00 -.22789791627793E+01 + 341 0.17891316226921E+01 0.59373155776718E+00 -.22311268982891E+01 + 342 0.18333231737726E+01 0.60024515250543E+00 -.21815687578710E+01 + 343 0.18786062561648E+01 0.60585568989618E+00 -.21309740774022E+01 + 344 0.19250078306921E+01 0.61054230356293E+00 -.20800787252092E+01 + 345 0.19725555241102E+01 0.61429111208813E+00 -.20296161211857E+01 + 346 0.20212776455557E+01 0.61709388195304E+00 -.19802033034870E+01 + 347 0.20712032034009E+01 0.61894656901534E+00 -.19321632132343E+01 + 348 0.21223619225249E+01 0.61984832587702E+00 -.18853929529518E+01 + 349 0.21747842620113E+01 0.61980143527833E+00 -.18397941472677E+01 + 350 0.22285014332830E+01 0.61881162204382E+00 -.17953292144837E+01 + 351 0.22835454186851E+01 0.61688796411356E+00 -.17519633326461E+01 + 352 0.23399489905266E+01 0.61404280900843E+00 -.17096640330590E+01 + 353 0.23977457305926E+01 0.61029170706349E+00 -.16684008600296E+01 + 354 0.24569700501382E+01 0.60565330961715E+00 -.16281450871441E+01 + 355 0.25176572103766E+01 0.60014925417592E+00 -.15888694814757E+01 + 356 0.25798433434729E+01 0.59380403521430E+00 -.15505481081965E+01 + 357 0.26435654740567E+01 0.58664486264843E+00 -.15131561690607E+01 + 358 0.27088615412659E+01 0.57870150974590E+00 -.14766698691404E+01 + 359 0.27757704213352E+01 0.57000615211350E+00 -.14410663070114E+01 + 360 0.28443319507422E+01 0.56059319927970E+00 -.14063233843120E+01 + 361 0.29145869499255E+01 0.55049912023993E+00 -.13724197312332E+01 + 362 0.29865772475887E+01 0.53976226416989E+00 -.13393346450502E+01 + 363 0.30603457056041E+01 0.52842267734318E+00 -.13070480392826E+01 + 364 0.31359362445325E+01 0.51652191712374E+00 -.12755404014809E+01 + 365 0.32133938697725E+01 0.50410286374506E+00 -.12447927579821E+01 + 366 0.32927646983558E+01 0.49120953044385E+00 -.12147866442752E+01 + 367 0.33740959864052E+01 0.47788687239180E+00 -.11855040798661E+01 + 368 0.34574361572694E+01 0.46418059476844E+00 -.11569275467370E+01 + 369 0.35428348303540E+01 0.45013696024663E+00 -.11290399706718E+01 + 370 0.36303428506637E+01 0.43580259612334E+00 -.11018247048613E+01 + 371 0.37200123190751E+01 0.42122430125333E+00 -.10752655153207E+01 + 372 0.38118966233563E+01 0.40644885309305E+00 -.10493465677461E+01 + 373 0.39060504699532E+01 0.39152281506187E+00 -.10240524155204E+01 + 374 0.40025299165610E+01 0.37649234456823E+00 -.99936798863559E+00 + 375 0.41013924055001E+01 0.36140300212334E+00 -.97527858335544E+00 + 376 0.42026967979159E+01 0.34629956207261E+00 -.95176985247829E+00 + 377 0.43065034088245E+01 0.33122582559690E+00 -.92882779609429E+00 + 378 0.44128740430224E+01 0.31622443676555E+00 -.90643875275514E+00 + 379 0.45218720318851E+01 0.30133670255639E+00 -.88458939099412E+00 + 380 0.46335622710726E+01 0.28660241788891E+00 -.86326670114908E+00 + 381 0.47480112591681E+01 0.27205969683905E+00 -.84245798745258E+00 + 382 0.48652871372696E+01 0.25774481131350E+00 -.82215086036185E+00 + 383 0.49854597295602E+01 0.24369203855140E+00 -.80233322910770E+00 + 384 0.51086005848803E+01 0.22993351888803E+00 -.78299329444663E+00 + 385 0.52347830193268E+01 0.21649912525344E+00 -.76411954160347E+00 + 386 0.53640821599042E+01 0.20341634588594E+00 -.74570073339482E+00 + 387 0.54965749892538E+01 0.19071018171231E+00 -.72772590352534E+00 + 388 0.56323403914884E+01 0.17840305978189E+00 -.71018435005024E+00 + 389 0.57714591991582E+01 0.16651476403942E+00 -.69306562899832E+00 + 390 0.59140142413774E+01 0.15506238458077E+00 -.67635954815063E+00 + 391 0.60600903931394E+01 0.14406028635860E+00 -.66005616097026E+00 + 392 0.62097746258499E+01 0.13352009809301E+00 -.64414576067920E+00 + 393 0.63631560591084E+01 0.12345072189932E+00 -.62861887447842E+00 + 394 0.65203260137684E+01 0.11385836387500E+00 -.61346625790752E+00 + 395 0.66813780663085E+01 0.10474658559719E+00 -.59867888934052E+00 + 396 0.68464081045463E+01 0.96116376176653E-01 -.58424796461441E+00 + 397 0.70155143847286E+01 0.87966244201354E-01 -.57016489178720E+00 + 398 0.71887975900314E+01 0.80292328590698E-01 -.55642128602241E+00 + 399 0.73663608905052E+01 0.73088527078290E-01 -.54300896459686E+00 + 400 0.75483100045007E+01 0.66346640754825E-01 -.52991994202874E+00 + 401 0.77347532616118E+01 0.60056532841536E-01 -.51714642532325E+00 + 402 0.79258016671736E+01 0.54206299635994E-01 -.50468080933273E+00 + 403 0.81215689683528E+01 0.48782451382438E-01 -.49251567222868E+00 + 404 0.83221717218711E+01 0.43770100673825E-01 -.48064377108294E+00 + 405 0.85277293634013E+01 0.39153155896577E-01 -.46905803755532E+00 + 406 0.87383642786774E+01 0.34914517184231E-01 -.45775157368529E+00 + 407 0.89542018763607E+01 0.31036272354052E-01 -.44671764778500E+00 + 408 0.91753706627068E+01 0.27499890360462E-01 -.43594969043135E+00 + 409 0.94020023180757E+01 0.24286409908908E-01 -.42544129055465E+00 + 410 0.96342317753321E+01 0.21376621029725E-01 -.41518619162160E+00 + 411 0.98721973001828E+01 0.18751237608744E-01 -.40517828791022E+00 + 412 0.10116040573497E+02 0.16391059103693E-01 -.39541162087461E+00 + 413 0.10365906775663E+02 0.14277119935784E-01 -.38588037559736E+00 + 414 0.10621944673022E+02 0.12390825326710E-01 -.37657887732737E+00 + 415 0.10884306706445E+02 0.10714072644620E-01 -.36750158810127E+00 + 416 0.11153149082094E+02 0.92293576205422E-02 -.35864310344615E+00 + 417 0.11428631864422E+02 0.79198650915297E-02 -.34999814916186E+00 + 418 0.11710919071473E+02 0.67695442112624E-02 -.34156157818079E+00 + 419 0.12000178772539E+02 0.57631683365803E-02 -.33332836750346E+00 + 420 0.12296583188220E+02 0.48863800437832E-02 -.32529361520782E+00 + 421 0.12600308792970E+02 0.41257219470533E-02 -.31745253753081E+00 + 422 0.12911536420156E+02 0.34686541795470E-02 -.30980046602012E+00 + 423 0.13230451369734E+02 0.29035595532740E-02 -.30233284475468E+00 + 424 0.13557243518566E+02 0.24197375356105E-02 -.29504522763216E+00 + 425 0.13892107433475E+02 0.20073882680509E-02 -.28793327572183E+00 + 426 0.14235242487082E+02 0.16575879073919E-02 -.28099275468121E+00 + 427 0.14586852976512E+02 0.13622565926335E-02 -.27421953223500E+00 + 428 0.14947148245032E+02 0.11141203348576E-02 -.26760957571485E+00 + 429 0.15316342806685E+02 0.90666809514778E-03 -.26115894965829E+00 + 430 0.15694656474010E+02 0.73410526062192E-03 -.25486381346568E+00 + 431 0.16082314488918E+02 0.59130465448652E-03 -.24872041911358E+00 + 432 0.16479547656794E+02 0.47375612648460E-03 -.24272510892318E+00 + 433 0.16886592483917E+02 0.37751566895721E-03 -.23687431338263E+00 + 434 0.17303691318270E+02 0.29915489466411E-03 -.23116454902179E+00 + 435 0.17731092493831E+02 0.23571159898291E-03 -.22559241633823E+00 + 436 0.18169050478428E+02 0.18464201433311E-03 -.22015459777323E+00 + 437 0.18617826025246E+02 0.14377525151989E-03 -.21484785573654E+00 + 438 0.19077686328069E+02 0.11127031365603E-03 -.20966903067878E+00 + 439 0.19548905180373E+02 0.85575965489378E-04 -.20461503921028E+00 + 440 0.20031763138328E+02 0.65393646019340E-04 -.19968287226533E+00 + 441 0.20526547687844E+02 0.49643526496119E-04 -.19486959331056E+00 + 442 0.21033553415734E+02 0.37433740134561E-04 -.19017233659662E+00 + 443 0.21553082185103E+02 0.28032744636973E-04 -.18558830545196E+00 + 444 0.22085443315075E+02 0.20844724057369E-04 -.18111477061770E+00 + 445 0.22630953764957E+02 0.15387892510132E-04 -.17674906862272E+00 + 446 0.23189938322952E+02 0.11275528251957E-04 -.17248860019783E+00 + 447 0.23762729799529E+02 0.81995423667627E-05 -.16833082872825E+00 + 448 0.24349669225577E+02 0.59163695138287E-05 -.16427327874329E+00 + 449 0.24951106055449E+02 0.42349649097542E-05 -.16031353444256E+00 + 450 0.25567398375018E+02 0.30066707527877E-05 -.15644923825759E+00 + 451 0.26198913114881E+02 0.21167738945530E-05 -.15267808944822E+00 + 452 0.26846026268819E+02 0.14774969637036E-05 -.14899784273272E+00 + 453 0.27509123117659E+02 0.10222352344216E-05 -.14540630695103E+00 + 454 0.28188598458665E+02 0.70089359984419E-06 -.14190134376016E+00 + 455 0.28884856840594E+02 0.47613746637768E-06 -.13848086636104E+00 + 456 0.29598312804556E+02 0.32039902868877E-06 -.13514283825611E+00 + 457 0.30329391130829E+02 0.21351364262888E-06 -.13188527203680E+00 + 458 0.31078527091760E+02 0.14087376222876E-06 -.12870622820026E+00 + 459 0.31846166710927E+02 0.92001819257433E-07 -.12560381399459E+00 + 460 0.32632767028687E+02 0.59458448324486E-07 -.12257618229198E+00 + 461 0.33438796374295E+02 0.38016120994360E-07 -.11962153048890E+00 + 462 0.34264734644740E+02 0.24040440979217E-07 -.11673809943291E+00 + 463 0.35111073590466E+02 0.15032035921131E-07 -.11392417237524E+00 + 464 0.35978317108150E+02 0.92911872433182E-08 -.11117807394871E+00 + 465 0.36866981540721E+02 0.56751427204957E-08 -.10849816917021E+00 + 466 0.37777595984777E+02 0.34245650871135E-08 -.10588286246726E+00 + 467 0.38710702605601E+02 0.20409138860320E-08 -.10333059672808E+00 + 468 0.39666856959960E+02 0.12008774150626E-08 -.10083985237443E+00 + 469 0.40646628326870E+02 0.69740972464374E-09 -.98409146456945E-01 + 470 0.41650600046544E+02 0.39962218151082E-09 -.96037031772172E-01 + 471 0.42679369867694E+02 0.22585859263360E-09 -.93722096000949E-01 + 472 0.43733550303426E+02 0.12586309193237E-09 -.91462960867521E-01 + 473 0.44813768995920E+02 0.69132156757397E-10 -.89258281318943E-01 + 474 0.45920669090120E+02 0.37413020902468E-10 -.87106744724254E-01 + 475 0.47054909616646E+02 0.19941653702694E-10 -.85007070092958E-01 + 476 0.48217165884177E+02 0.10464686271300E-10 -.82958007312343E-01 + 477 0.49408129881516E+02 0.54039774662971E-11 -.80958336403185E-01 + 478 0.50628510689589E+02 0.27448760585800E-11 -.79006866793388E-01 + 479 0.51879034903622E+02 0.00000000000000E+00 -.77102436609142E-01 + 480 0.53160447065742E+02 0.00000000000000E+00 -.75243911983158E-01 + 481 0.54473510108266E+02 0.00000000000000E+00 -.73430186379582E-01 + 482 0.55819005807940E+02 0.00000000000000E+00 -.71660179935183E-01 + 483 0.57197735251396E+02 0.00000000000000E+00 -.69932838816418E-01 + 484 0.58610519312105E+02 0.00000000000000E+00 -.68247134591996E-01 + 485 0.60058199139114E+02 0.00000000000000E+00 -.66602063620568E-01 + 486 0.61541636657850E+02 0.00000000000000E+00 -.64996646453174E-01 + 487 0.63061715083299E+02 0.00000000000000E+00 -.63429927250097E-01 + 488 0.64619339445857E+02 0.00000000000000E+00 -.61900973211766E-01 + 489 0.66215437130169E+02 0.00000000000000E+00 -.60408874023389E-01 + 490 0.67850958427285E+02 0.00000000000000E+00 -.58952741312958E-01 + 491 0.69526877100439E+02 0.00000000000000E+00 -.57531708122337E-01 + 492 0.71244190964819E+02 0.00000000000000E+00 -.56144928391077E-01 + 493 0.73003922481650E+02 0.00000000000000E+00 -.54791576452696E-01 + 494 0.74807119366947E+02 0.00000000000000E+00 -.53470846543081E-01 + 495 0.76654855215311E+02 0.00000000000000E+00 -.52181952320759E-01 +495 0.10247000000000E+01 + 1 0.44642857142857E-03 0.73139477849457E-10 -.64205288417107E+01 + 2 0.45745535714286E-03 0.78694080305327E-10 -.64205289360666E+01 + 3 0.46875450446429E-03 0.84670528928957E-10 -.64205290279787E+01 + 4 0.48033274072455E-03 0.91100860970657E-10 -.64205291174975E+01 + 5 0.49219695942045E-03 0.98019551802459E-10 -.64205292046718E+01 + 6 0.50435422431814E-03 0.10546368525265E-09 -.64205292895487E+01 + 7 0.51681177365879E-03 0.11347316620985E-09 -.64205293721738E+01 + 8 0.52957702446817E-03 0.12209093021049E-09 -.64205294525911E+01 + 9 0.54265757697253E-03 0.13136317353619E-09 -.64205295308431E+01 + 10 0.55606121912375E-03 0.14133960086137E-09 -.64205296069704E+01 + 11 0.56979593123611E-03 0.15207369169914E-09 -.64205296810126E+01 + 12 0.58386989073764E-03 0.16362298708271E-09 -.64205297530072E+01 + 13 0.59829147703886E-03 0.17604939801870E-09 -.64205298229905E+01 + 14 0.61306927652172E-03 0.18941953736621E-09 -.64205298909973E+01 + 15 0.62821208765180E-03 0.20380507692037E-09 -.64205299570605E+01 + 16 0.64372892621680E-03 0.21928313161477E-09 -.64205300212120E+01 + 17 0.65962903069436E-03 0.23593667290220E-09 -.64205300834818E+01 + 18 0.67592186775251E-03 0.25385497352967E-09 -.64205301438984E+01 + 19 0.69261713788600E-03 0.27313408609202E-09 -.64205302024890E+01 + 20 0.70972478119178E-03 0.29387735792929E-09 -.64205302592791E+01 + 21 0.72725498328722E-03 0.31619598512815E-09 -.64205303142926E+01 + 22 0.74521818137441E-03 0.34020960859703E-09 -.64205303675520E+01 + 23 0.76362507045436E-03 0.36604695541032E-09 -.64205304190781E+01 + 24 0.78248660969458E-03 0.39384652885945E-09 -.64205304688903E+01 + 25 0.80181402895404E-03 0.42375735091014E-09 -.64205305170063E+01 + 26 0.82161883546920E-03 0.45593976104559E-09 -.64205305634422E+01 + 27 0.84191282070529E-03 0.49056627577791E-09 -.64205306082125E+01 + 28 0.86270806737671E-03 0.52782251343529E-09 -.64205306513299E+01 + 29 0.88401695664092E-03 0.56790818918214E-09 -.64205306928057E+01 + 30 0.90585217546995E-03 0.61103818560621E-09 -.64205307326492E+01 + 31 0.92822672420406E-03 0.65744370461142E-09 -.64205307708683E+01 + 32 0.95115392429190E-03 0.70737350679136E-09 -.64205308074688E+01 + 33 0.97464742622191E-03 0.76109524492691E-09 -.64205308424549E+01 + 34 0.99872121764959E-03 0.81889689875650E-09 -.64205308758289E+01 + 35 0.10233896317255E-02 0.88108831870986E-09 -.64205309075911E+01 + 36 0.10486673556292E-02 0.94800288688066E-09 -.64205309377402E+01 + 37 0.10745694393132E-02 0.10199993041416E-08 -.64205309662725E+01 + 38 0.11011113044642E-02 0.10974635129820E-08 -.64205309931826E+01 + 39 0.11283087536845E-02 0.11808107663747E-08 -.64205310184627E+01 + 40 0.11561779799005E-02 0.12704878537633E-08 -.64205310421031E+01 + 41 0.11847355760040E-02 0.13669754961012E-08 -.64205310640919E+01 + 42 0.12139985447313E-02 0.14707909227821E-08 -.64205310844147E+01 + 43 0.12439843087862E-02 0.15824906442745E-08 -.64205311030548E+01 + 44 0.12747107212132E-02 0.17026734353229E-08 -.64205311199932E+01 + 45 0.13061960760272E-02 0.18319835447088E-08 -.64205311352082E+01 + 46 0.13384591191051E-02 0.19711141487743E-08 -.64205311486756E+01 + 47 0.13715190593470E-02 0.21208110672242E-08 -.64205311603685E+01 + 48 0.14053955801128E-02 0.22818767611218E-08 -.64205311702572E+01 + 49 0.14401088509416E-02 0.24551746345117E-08 -.64205311783089E+01 + 50 0.14756795395599E-02 0.26416336627275E-08 -.64205311844881E+01 + 51 0.15121288241870E-02 0.28422533721939E-08 -.64205311887558E+01 + 52 0.15494784061444E-02 0.30581091984168E-08 -.64205311910701E+01 + 53 0.15877505227762E-02 0.32903582508840E-08 -.64205311913854E+01 + 54 0.16269679606888E-02 0.35402455157766E-08 -.64205311896527E+01 + 55 0.16671540693178E-02 0.38091105297417E-08 -.64205311858194E+01 + 56 0.17083327748299E-02 0.40983945604998E-08 -.64205311798290E+01 + 57 0.17505285943682E-02 0.44096483327780E-08 -.64205311716209E+01 + 58 0.17937666506491E-02 0.47445403409824E-08 -.64205311611304E+01 + 59 0.18380726869201E-02 0.51048657931692E-08 -.64205311482886E+01 + 60 0.18834730822871E-02 0.54925562342568E-08 -.64205311330217E+01 + 61 0.19299948674196E-02 0.59096899000629E-08 -.64205311152516E+01 + 62 0.19776657406448E-02 0.63585028576678E-08 -.64205310948949E+01 + 63 0.20265140844388E-02 0.68414009918187E-08 -.64205310718632E+01 + 64 0.20765689823244E-02 0.73609729016271E-08 -.64205310460625E+01 + 65 0.21278602361878E-02 0.79200037766883E-08 -.64205310173935E+01 + 66 0.21804183840216E-02 0.85214903270027E-08 -.64205309857506E+01 + 67 0.22342747181070E-02 0.91686568467280E-08 -.64205309510222E+01 + 68 0.22894613036442E-02 0.98649724978661E-08 -.64205309130902E+01 + 69 0.23460109978442E-02 0.10614169906531E-07 -.64205308718297E+01 + 70 0.24039574694910E-02 0.11420265171474E-07 -.64205308271087E+01 + 71 0.24633352189874E-02 0.12287579392124E-07 -.64205307787877E+01 + 72 0.25241795988964E-02 0.13220761831520E-07 -.64205307267196E+01 + 73 0.25865268349891E-02 0.14224814838313E-07 -.64205306707489E+01 + 74 0.26504140478134E-02 0.15305120661406E-07 -.64205306107116E+01 + 75 0.27158792747944E-02 0.16467470300967E-07 -.64205305464350E+01 + 76 0.27829614928818E-02 0.17718094550459E-07 -.64205304777367E+01 + 77 0.28517006417560E-02 0.19063697396074E-07 -.64205304044245E+01 + 78 0.29221376476073E-02 0.20511491952587E-07 -.64205303262961E+01 + 79 0.29943144475032E-02 0.22069239128250E-07 -.64205302431382E+01 + 80 0.30682740143566E-02 0.23745289225969E-07 -.64205301547261E+01 + 81 0.31440603825112E-02 0.25548626703741E-07 -.64205300608234E+01 + 82 0.32217186739592E-02 0.27488918334257E-07 -.64205299611811E+01 + 83 0.33012951252060E-02 0.29576565021812E-07 -.64205298555371E+01 + 84 0.33828371147986E-02 0.31822757554233E-07 -.64205297436156E+01 + 85 0.34663931915341E-02 0.34239536588662E-07 -.64205296251266E+01 + 86 0.35520131033650E-02 0.36839857192685E-07 -.64205294997645E+01 + 87 0.36397478270181E-02 0.39637658286740E-07 -.64205293672084E+01 + 88 0.37296495983455E-02 0.42647937359978E-07 -.64205292271205E+01 + 89 0.38217719434246E-02 0.45886830860042E-07 -.64205290791454E+01 + 90 0.39161697104272E-02 0.49371700687594E-07 -.64205289229098E+01 + 91 0.40128991022747E-02 0.53121227259179E-07 -.64205287580207E+01 + 92 0.41120177101009E-02 0.57155509637171E-07 -.64205285840654E+01 + 93 0.42135845475404E-02 0.61496173263458E-07 -.64205284006096E+01 + 94 0.43176600858647E-02 0.66166485874217E-07 -.64205282071971E+01 + 95 0.44243062899855E-02 0.71191482217027E-07 -.64205280033481E+01 + 96 0.45335866553482E-02 0.76598098238679E-07 -.64205277885587E+01 + 97 0.46455662457353E-02 0.82415315462827E-07 -.64205275622988E+01 + 98 0.47603117320049E-02 0.88674316331192E-07 -.64205273240117E+01 + 99 0.48778914317854E-02 0.95408651340806E-07 -.64205270731122E+01 + 100 0.49983753501505E-02 0.10265441887296E-06 -.64205268089855E+01 + 101 0.51218352212993E-02 0.11045045867749E-06 -.64205265309853E+01 + 102 0.52483445512654E-02 0.11883856004934E-06 -.64205262384327E+01 + 103 0.53779786616816E-02 0.12786368581272E-06 -.64205259306145E+01 + 104 0.55108147346251E-02 0.13757421331340E-06 -.64205256067810E+01 + 105 0.56469318585704E-02 0.14802219371017E-06 -.64205252661449E+01 + 106 0.57864110754771E-02 0.15926363095499E-06 -.64205249078788E+01 + 107 0.59293354290414E-02 0.17135878195669E-06 -.64205245311136E+01 + 108 0.60757900141387E-02 0.18437247953641E-06 -.64205241349360E+01 + 109 0.62258620274879E-02 0.19837447990523E-06 -.64205237183869E+01 + 110 0.63796408195669E-02 0.21343983652570E-06 -.64205232804584E+01 + 111 0.65372179478102E-02 0.22964930236028E-06 -.64205228200918E+01 + 112 0.66986872311211E-02 0.24708976266183E-06 -.64205223361750E+01 + 113 0.68641448057298E-02 0.26585470062464E-06 -.64205218275397E+01 + 114 0.70336891824313E-02 0.28604469839069E-06 -.64205212929584E+01 + 115 0.72074213052373E-02 0.30776797609509E-06 -.64205207311419E+01 + 116 0.73854446114767E-02 0.33114097183818E-06 -.64205201407358E+01 + 117 0.75678650933802E-02 0.35628896569112E-06 -.64205195203173E+01 + 118 0.77547913611867E-02 0.38334675107747E-06 -.64205188683920E+01 + 119 0.79463347078080E-02 0.41245935712673E-06 -.64205181833896E+01 + 120 0.81426091750908E-02 0.44378282586903E-06 -.64205174636611E+01 + 121 0.83437316217156E-02 0.47748504843332E-06 -.64205167074737E+01 + 122 0.85498217927719E-02 0.51374666472758E-06 -.64205159130075E+01 + 123 0.87610023910534E-02 0.55276203141900E-06 -.64205150783506E+01 + 124 0.89773991501124E-02 0.59474026339789E-06 -.64205142014943E+01 + 125 0.91991409091202E-02 0.63990635430219E-06 -.64205132803288E+01 + 126 0.94263596895755E-02 0.68850238210230E-06 -.64205123126373E+01 + 127 0.96591907739080E-02 0.74078880620151E-06 -.64205112960913E+01 + 128 0.98977727860235E-02 0.79704586299626E-06 -.64205102282443E+01 + 129 0.10142247773838E-01 0.85757506736784E-06 -.64205091065263E+01 + 130 0.10392761293852E-01 0.92270082814307E-06 -.64205079282371E+01 + 131 0.10649462497810E-01 0.99277218617146E-06 -.64205066905399E+01 + 132 0.10912504221506E-01 0.10681646843219E-05 -.64205053904542E+01 + 133 0.11182043075777E-01 0.11492823794072E-05 -.64205040248485E+01 + 134 0.11458239539749E-01 0.12365600068033E-05 -.64205025904328E+01 + 135 0.11741258056381E-01 0.13304653093476E-05 -.64205010837500E+01 + 136 0.12031267130373E-01 0.14315015429757E-05 -.64204995011677E+01 + 137 0.12328439428494E-01 0.15402101725042E-05 -.64204978388691E+01 + 138 0.12632951882377E-01 0.16571737719811E-05 -.64204960928436E+01 + 139 0.12944985793872E-01 0.17830191451162E-05 -.64204942588766E+01 + 140 0.13264726942981E-01 0.19184206824846E-05 -.64204923325391E+01 + 141 0.13592365698472E-01 0.20641039734549E-05 -.64204903091767E+01 + 142 0.13928097131225E-01 0.22208496921585E-05 -.64204881838979E+01 + 143 0.14272121130366E-01 0.23894977782754E-05 -.64204859515618E+01 + 144 0.14624642522286E-01 0.25709519349886E-05 -.64204836067650E+01 + 145 0.14985871192586E-01 0.27661844681491E-05 -.64204811438283E+01 + 146 0.15356022211043E-01 0.29762414925150E-05 -.64204785567821E+01 + 147 0.15735315959656E-01 0.32022485328843E-05 -.64204758393511E+01 + 148 0.16123978263860E-01 0.34454165500501E-05 -.64204729849386E+01 + 149 0.16522240526977E-01 0.37070484237653E-05 -.64204699866096E+01 + 150 0.16930339867993E-01 0.39885459273461E-05 -.64204668370730E+01 + 151 0.17348519262733E-01 0.42914172311568E-05 -.64204635286626E+01 + 152 0.17777027688522E-01 0.46172849750385E-05 -.64204600533179E+01 + 153 0.18216120272429E-01 0.49678949527725E-05 -.64204564025625E+01 + 154 0.18666058443158E-01 0.53451254549247E-05 -.64204525674826E+01 + 155 0.19127110086704E-01 0.57509973199228E-05 -.64204485387036E+01 + 156 0.19599549705845E-01 0.61876847469815E-05 -.64204443063655E+01 + 157 0.20083658583580E-01 0.66575269285426E-05 -.64204398600967E+01 + 158 0.20579724950594E-01 0.71630405642514E-05 -.64204351889870E+01 + 159 0.21088044156874E-01 0.77069333231710E-05 -.64204302815583E+01 + 160 0.21608918847549E-01 0.82921183259725E-05 -.64204251257340E+01 + 161 0.22142659143083E-01 0.89217297242494E-05 -.64204197088068E+01 + 162 0.22689582823917E-01 0.95991394599235E-05 -.64204140174039E+01 + 163 0.23250015519668E-01 0.10327975293965E-04 -.64204080374513E+01 + 164 0.23824290903004E-01 0.11112140200372E-04 -.64204017541348E+01 + 165 0.24412750888308E-01 0.11955833228588E-04 -.64203951518600E+01 + 166 0.25015745835249E-01 0.12863571945295E-04 -.64203882142084E+01 + 167 0.25633634757380E-01 0.13840216574881E-04 -.64203809238924E+01 + 168 0.26266785535887E-01 0.14890995966858E-04 -.64203732627066E+01 + 169 0.26915575138623E-01 0.16021535528129E-04 -.64203652114764E+01 + 170 0.27580389844547E-01 0.17237887268415E-04 -.64203567500037E+01 + 171 0.28261625473708E-01 0.18546562118231E-04 -.64203478570090E+01 + 172 0.28959687622908E-01 0.19954564690834E-04 -.64203385100703E+01 + 173 0.29674991907194E-01 0.21469430672379E-04 -.64203286855573E+01 + 174 0.30407964207302E-01 0.23099267038356E-04 -.64203183585630E+01 + 175 0.31159040923222E-01 0.24852795309230E-04 -.64203075028292E+01 + 176 0.31928669234026E-01 0.26739398074140E-04 -.64202960906689E+01 + 177 0.32717307364106E-01 0.28769169028651E-04 -.64202840928826E+01 + 178 0.33525424856000E-01 0.30952966790944E-04 -.64202714786697E+01 + 179 0.34353502849943E-01 0.33302472780580E-04 -.64202582155340E+01 + 180 0.35202034370336E-01 0.35830253465214E-04 -.64202442691830E+01 + 181 0.36071524619284E-01 0.38549827303372E-04 -.64202296034207E+01 + 182 0.36962491277380E-01 0.41475736735902E-04 -.64202141800332E+01 + 183 0.37875464811931E-01 0.44623625604935E-04 -.64201979586661E+01 + 184 0.38810988792786E-01 0.48010322407387E-04 -.64201808966945E+01 + 185 0.39769620215968E-01 0.51653929820262E-04 -.64201629490835E+01 + 186 0.40751929835302E-01 0.55573920967477E-04 -.64201440682390E+01 + 187 0.41758502502234E-01 0.59791242932755E-04 -.64201242038487E+01 + 188 0.42789937514039E-01 0.64328428060461E-04 -.64201033027116E+01 + 189 0.43846848970636E-01 0.69209713626358E-04 -.64200813085551E+01 + 190 0.44929866140211E-01 0.74461170503194E-04 -.64200581618400E+01 + 191 0.46039633833874E-01 0.80110841492112E-04 -.64200337995503E+01 + 192 0.47176812789571E-01 0.86188890040288E-04 -.64200081549689E+01 + 193 0.48342080065473E-01 0.92727760118109E-04 -.64199811574361E+01 + 194 0.49536129443090E-01 0.99762348085950E-04 -.64199527320908E+01 + 195 0.50759671840335E-01 0.10733018744140E-03 -.64199227995920E+01 + 196 0.52013435734791E-01 0.11547164740288E-03 -.64198912758198E+01 + 197 0.53298167597440E-01 0.12423014635530E-03 -.64198580715539E+01 + 198 0.54614632337097E-01 0.13365238125814E-03 -.64198230921270E+01 + 199 0.55963613755823E-01 0.14378857419605E-03 -.64197862370525E+01 + 200 0.57345915015592E-01 0.15469273733781E-03 -.64197473996226E+01 + 201 0.58762359116477E-01 0.16642295766069E-03 -.64197064664752E+01 + 202 0.60213789386654E-01 0.17904170289520E-03 -.64196633171276E+01 + 203 0.61701069984505E-01 0.19261615024976E-03 -.64196178234719E+01 + 204 0.63225086413122E-01 0.20721853958639E-03 -.64195698492314E+01 + 205 0.64786746047526E-01 0.22292655283803E-03 -.64195192493724E+01 + 206 0.66386978674900E-01 0.23982372158546E-03 -.64194658694695E+01 + 207 0.68026737048170E-01 0.25799986484760E-03 -.64194095450176E+01 + 208 0.69706997453260E-01 0.27755155928448E-03 -.64193501006895E+01 + 209 0.71428760290355E-01 0.29858264416631E-03 -.64192873495301E+01 + 210 0.73193050669527E-01 0.32120476362742E-03 -.64192210920855E+01 + 211 0.75000919021064E-01 0.34553794889922E-03 -.64191511154579E+01 + 212 0.76853441720885E-01 0.37171124340320E-03 -.64190771922820E+01 + 213 0.78751721731390E-01 0.39986337378406E-03 -.64189990796138E+01 + 214 0.80696889258156E-01 0.43014347017422E-03 -.64189165177259E+01 + 215 0.82690102422832E-01 0.46271183920573E-03 -.64188292287991E+01 + 216 0.84732547952676E-01 0.49774079352396E-03 -.64187369155014E+01 + 217 0.86825441887107E-01 0.53541554181008E-03 -.64186392594443E+01 + 218 0.88970030301719E-01 0.57593514358758E-03 -.64185359195050E+01 + 219 0.91167590050171E-01 0.61951353337136E-03 -.64184265300021E+01 + 220 0.93419429524410E-01 0.66638061901820E-03 -.64183106987115E+01 + 221 0.95726889433663E-01 0.71678345945370E-03 -.64181880047068E+01 + 222 0.98091343602675E-01 0.77098752728559E-03 -.64180579960100E+01 + 223 0.10051419978966E+00 0.82927806216496E-03 -.64179201870327E+01 + 224 0.10299690052447E+00 0.89196152112761E-03 -.64177740557892E+01 + 225 0.10554092396742E+00 0.95936713253687E-03 -.64176190408616E+01 + 226 0.10814778478942E+00 0.10318485606569E-02 -.64174545380910E+01 + 227 0.11081903507371E+00 0.11097856883133E-02 -.64172798969730E+01 + 228 0.11355626524003E+00 0.11935865255418E-02 -.64170944167260E+01 + 229 0.11636110499146E+00 0.12836892525944E-02 -.64168973420058E+01 + 230 0.11923522428475E+00 0.13805644061488E-02 -.64166878582301E+01 + 231 0.12218033432459E+00 0.14847172180750E-02 -.64164650864795E+01 + 232 0.12519818858240E+00 0.15966901166229E-02 -.64162280779336E+01 + 233 0.12829058384039E+00 0.17170654004308E-02 -.64159758078002E+01 + 234 0.13145936126125E+00 0.18464680962981E-02 -.64157071686902E+01 + 235 0.13470640748440E+00 0.19855690122220E-02 -.64154209633870E+01 + 236 0.13803365574926E+00 0.21350879977624E-02 -.64151158969540E+01 + 237 0.14144308704627E+00 0.22957974243656E-02 -.64147905681200E+01 + 238 0.14493673129631E+00 0.24685258988499E-02 -.64144434598753E+01 + 239 0.14851666855933E+00 0.26541622238166E-02 -.64140729292061E+01 + 240 0.15218503027275E+00 0.28536596193040E-02 -.64136771958886E+01 + 241 0.15594400052048E+00 0.30680402205356E-02 -.64132543302574E+01 + 242 0.15979581733334E+00 0.32983998671235E-02 -.64128022398534E+01 + 243 0.16374277402147E+00 0.35459131995539E-02 -.64123186548518E+01 + 244 0.16778722053980E+00 0.38118390792088E-02 -.64118011121589E+01 + 245 0.17193156488714E+00 0.40975263485343E-02 -.64112469380588E+01 + 246 0.17617827453985E+00 0.44044199482503E-02 -.64106532292806E+01 + 247 0.18052987792098E+00 0.47340674086844E-02 -.64100168323460E+01 + 248 0.18498896590563E+00 0.50881257323811E-02 -.64093343210459E+01 + 249 0.18955819336350E+00 0.54683686850764E-02 -.64086019718829E+01 + 250 0.19424028073958E+00 0.58766945118869E-02 -.64078157373023E+01 + 251 0.19903801567385E+00 0.63151340951426E-02 -.64069712165219E+01 + 252 0.20395425466099E+00 0.67858595696278E-02 -.64060636237572E+01 + 253 0.20899192475112E+00 0.72911934100735E-02 -.64050877536194E+01 + 254 0.21415402529247E+00 0.78336180045061E-02 -.64040379434545E+01 + 255 0.21944362971719E+00 0.84157857254628E-02 -.64029080323681E+01 + 256 0.22486388737121E+00 0.90405295090756E-02 -.64016913166695E+01 + 257 0.23041802538928E+00 0.97108739495474E-02 -.64003805014467E+01 + 258 0.23610935061639E+00 0.10430046913524E-01 -.63989676479698E+01 + 259 0.24194125157662E+00 0.11201491675237E-01 -.63974441165992E+01 + 260 0.24791720049056E+00 0.12028879568973E-01 -.63958005048597E+01 + 261 0.25404075534268E+00 0.12916123150322E-01 -.63940265803222E+01 + 262 0.26031556199964E+00 0.13867389851692E-01 -.63921112079199E+01 + 263 0.26674535638103E+00 0.14887116110615E-01 -.63900422713087E+01 + 264 0.27333396668364E+00 0.15980021941350E-01 -.63878065878687E+01 + 265 0.28008531566073E+00 0.17151125911023E-01 -.63853898169314E+01 + 266 0.28700342295755E+00 0.18405760470993E-01 -.63827763608094E+01 + 267 0.29409240750460E+00 0.19749587582090E-01 -.63799492582006E+01 + 268 0.30135648996997E+00 0.21188614558739E-01 -.63768900695385E+01 + 269 0.30879999527222E+00 0.22729210041640E-01 -.63735787538671E+01 + 270 0.31642735515545E+00 0.24378119991422E-01 -.63699935368341E+01 + 271 0.32424311082779E+00 0.26142483576472E-01 -.63661107694166E+01 + 272 0.33225191566523E+00 0.28029848806791E-01 -.63619047770295E+01 + 273 0.34045853798216E+00 0.30048187742095E-01 -.63573476987144E+01 + 274 0.34886786387032E+00 0.32205911076482E-01 -.63524093161680E+01 + 275 0.35748490010792E+00 0.34511881873669E-01 -.63470568724519E+01 + 276 0.36631477714059E+00 0.36975428196025E-01 -.63412548803270E+01 + 277 0.37536275213596E+00 0.39606354337584E-01 -.63349649202860E+01 + 278 0.38463421211372E+00 0.42414950335745E-01 -.63281454285111E+01 + 279 0.39413467715293E+00 0.45411999398947E-01 -.63207514751773E+01 + 280 0.40386980367860E+00 0.48608782848220E-01 -.63127345337476E+01 + 281 0.41384538782946E+00 0.52017082129896E-01 -.63040422421799E+01 + 282 0.42406736890885E+00 0.55649177415190E-01 -.62946181572856E+01 + 283 0.43454183292090E+00 0.59517842260839E-01 -.62844015038540E+01 + 284 0.44527501619405E+00 0.63636333764368E-01 -.62733269205963E+01 + 285 0.45627330909404E+00 0.68018377609121E-01 -.62613242054665E+01 + 286 0.46754325982866E+00 0.72678147359506E-01 -.62483180634951E+01 + 287 0.47909157834643E+00 0.77630237337879E-01 -.62342278609333E+01 + 288 0.49092514033159E+00 0.82889628393302E-01 -.62189673902530E+01 + 289 0.50305099129778E+00 0.88471645861933E-01 -.62024446513869E+01 + 290 0.51547635078283E+00 0.94391909022031E-01 -.61845616555316E+01 + 291 0.52820861664717E+00 0.10066627136728E+00 -.61652142588749E+01 + 292 0.54125536947835E+00 0.10731075106449E+00 -.61442920347431E+01 + 293 0.55462437710447E+00 0.11434145103037E+00 -.61216781939052E+01 + 294 0.56832359921895E+00 0.12177446816230E+00 -.60972495640960E+01 + 295 0.58236119211966E+00 0.12962579139533E+00 -.60708766412302E+01 + 296 0.59674551356501E+00 0.13791118843811E+00 -.60424237262550E+01 + 297 0.61148512775007E+00 0.14664608127034E+00 -.60117491630987E+01 + 298 0.62658881040550E+00 0.15584541076933E+00 -.59787056946936E+01 + 299 0.64206555402251E+00 0.16552349118022E+00 -.59431409555315E+01 + 300 0.65792457320687E+00 0.17569385555733E+00 -.59048981205936E+01 + 301 0.67417531016508E+00 0.18636909378818E+00 -.58638167317196E+01 + 302 0.69082744032615E+00 0.19756068536837E+00 -.58197337234494E+01 + 303 0.70789087810221E+00 0.20927882972567E+00 -.57724846709864E+01 + 304 0.72537578279133E+00 0.22153227759130E+00 -.57219052830759E+01 + 305 0.74329256462628E+00 0.23432816767862E+00 -.56678331621233E+01 + 306 0.76165189097255E+00 0.24767187374230E+00 -.56101098526398E+01 + 307 0.78046469267957E+00 0.26156686793569E+00 -.55485831969370E+01 + 308 0.79974217058876E+00 0.27601460723563E+00 -.54831100136968E+01 + 309 0.81949580220230E+00 0.29101445052967E+00 -.54135591104560E+01 + 310 0.83973734851670E+00 0.30656361471831E+00 -.53398146349581E+01 + 311 0.86047886102506E+00 0.32265717882533E+00 -.52617797625878E+01 + 312 0.88173268889238E+00 0.33928814557214E+00 -.51793807075510E+01 + 313 0.90351148630802E+00 0.35644757009219E+00 -.50925710340128E+01 + 314 0.92582822001983E+00 0.37412476536280E+00 -.50013362299898E+01 + 315 0.94869617705432E+00 0.39230759343850E+00 -.49056984914560E+01 + 316 0.97212897262756E+00 0.41098285059981E+00 -.48057216469772E+01 + 317 0.99614055825146E+00 0.43013675300846E+00 -.47015161344400E+01 + 318 0.10207452300403E+01 0.44975552731132E+00 -.45932439214125E+01 + 319 0.10459576372223E+01 0.46982610780256E+00 -.44811232397239E+01 + 320 0.10717927908617E+01 0.49033693819183E+00 -.43654329833999E+01 + 321 0.10982660727959E+01 0.51127887171460E+00 -.42465165974800E+01 + 322 0.11253932447940E+01 0.53264615826177E+00 -.41247852636712E+01 + 323 0.11531904579404E+01 0.55443750143107E+00 -.40007201671065E+01 + 324 0.11816742622515E+01 0.57665716197572E+00 -.38748736060372E+01 + 325 0.12108616165291E+01 0.59931607714151E+00 -.37478686816940E+01 + 326 0.12407698984574E+01 0.62243295797516E+00 -.36203972765251E+01 + 327 0.12714169149493E+01 0.64603531903065E+00 -.34932159922737E+01 + 328 0.13028209127486E+01 0.67016038723651E+00 -.33671396707869E+01 + 329 0.13350005892935E+01 0.69485582934959E+00 -.32430320556834E+01 + 330 0.13679751038490E+01 0.72018023089804E+00 -.31217930686778E+01 + 331 0.14017640889141E+01 0.74620325454621E+00 -.30043420703797E+01 + 332 0.14363876619103E+01 0.77300540352271E+00 -.28915963586649E+01 + 333 0.14718664371594E+01 0.80067731785150E+00 -.27844440477489E+01 + 334 0.15082215381573E+01 0.82931854014710E+00 -.26837104077765E+01 + 335 0.15454746101498E+01 0.85903570729315E+00 -.25901167985370E+01 + 336 0.15836478330205E+01 0.88994015930404E+00 -.25042316150832E+01 + 337 0.16227639344961E+01 0.92214501320292E+00 -.24264133468963E+01 + 338 0.16628462036781E+01 0.95576183468071E+00 -.23567471734453E+01 + 339 0.17039185049090E+01 0.99089715968032E+00 -.22949787919937E+01 + 340 0.17460052919802E+01 0.10276492739299E+01 -.22404527909779E+01 + 341 0.17891316226921E+01 0.10661058429487E+01 -.21920683081329E+01 + 342 0.18333231737726E+01 0.11063431702641E+01 -.21482724710700E+01 + 343 0.18786062561648E+01 0.11484279835156E+01 -.21071227966792E+01 + 344 0.19250078306921E+01 0.11924225822273E+01 -.20664640320386E+01 + 345 0.19725555241102E+01 0.12383937057476E+01 -.20242838613132E+01 + 346 0.20212776455557E+01 0.12864242221064E+01 -.19793371769406E+01 + 347 0.20712032034009E+01 0.13366240892012E+01 -.19321632132342E+01 + 348 0.21223619225249E+01 0.13891333655724E+01 -.18853929529518E+01 + 349 0.21747842620113E+01 0.00000000000000E+00 -.18397941472677E+01 + 350 0.22285014332830E+01 0.00000000000000E+00 -.17953292144837E+01 + 351 0.22835454186851E+01 0.00000000000000E+00 -.17519633326461E+01 + 352 0.23399489905266E+01 0.00000000000000E+00 -.17096640330590E+01 + 353 0.23977457305926E+01 0.00000000000000E+00 -.16684008600296E+01 + 354 0.24569700501382E+01 0.00000000000000E+00 -.16281450871441E+01 + 355 0.25176572103766E+01 0.00000000000000E+00 -.15888694814757E+01 + 356 0.25798433434729E+01 0.00000000000000E+00 -.15505481081965E+01 + 357 0.26435654740567E+01 0.00000000000000E+00 -.15131561690607E+01 + 358 0.27088615412659E+01 0.00000000000000E+00 -.14766698691404E+01 + 359 0.27757704213352E+01 0.00000000000000E+00 -.14410663070114E+01 + 360 0.28443319507422E+01 0.00000000000000E+00 -.14063233843120E+01 + 361 0.29145869499255E+01 0.00000000000000E+00 -.13724197312332E+01 + 362 0.29865772475887E+01 0.00000000000000E+00 -.13393346450502E+01 + 363 0.30603457056041E+01 0.00000000000000E+00 -.13070480392826E+01 + 364 0.31359362445325E+01 0.00000000000000E+00 -.12755404014809E+01 + 365 0.32133938697725E+01 0.00000000000000E+00 -.12447927579821E+01 + 366 0.32927646983558E+01 0.00000000000000E+00 -.12147866442752E+01 + 367 0.33740959864052E+01 0.00000000000000E+00 -.11855040798661E+01 + 368 0.34574361572694E+01 0.00000000000000E+00 -.11569275467370E+01 + 369 0.35428348303540E+01 0.00000000000000E+00 -.11290399706718E+01 + 370 0.36303428506637E+01 0.00000000000000E+00 -.11018247048613E+01 + 371 0.37200123190751E+01 0.00000000000000E+00 -.10752655153207E+01 + 372 0.38118966233563E+01 0.00000000000000E+00 -.10493465677461E+01 + 373 0.39060504699532E+01 0.00000000000000E+00 -.10240524155204E+01 + 374 0.40025299165610E+01 0.00000000000000E+00 -.99936798863559E+00 + 375 0.41013924055001E+01 0.00000000000000E+00 -.97527858335544E+00 + 376 0.42026967979159E+01 0.00000000000000E+00 -.95176985247829E+00 + 377 0.43065034088245E+01 0.00000000000000E+00 -.92882779609429E+00 + 378 0.44128740430224E+01 0.00000000000000E+00 -.90643875275514E+00 + 379 0.45218720318851E+01 0.00000000000000E+00 -.88458939099412E+00 + 380 0.46335622710726E+01 0.00000000000000E+00 -.86326670114908E+00 + 381 0.47480112591681E+01 0.00000000000000E+00 -.84245798745258E+00 + 382 0.48652871372696E+01 0.00000000000000E+00 -.82215086036185E+00 + 383 0.49854597295602E+01 0.00000000000000E+00 -.80233322910770E+00 + 384 0.51086005848803E+01 0.00000000000000E+00 -.78299329444663E+00 + 385 0.52347830193268E+01 0.00000000000000E+00 -.76411954160347E+00 + 386 0.53640821599042E+01 0.00000000000000E+00 -.74570073339482E+00 + 387 0.54965749892538E+01 0.00000000000000E+00 -.72772590352534E+00 + 388 0.56323403914884E+01 0.00000000000000E+00 -.71018435005024E+00 + 389 0.57714591991582E+01 0.00000000000000E+00 -.69306562899832E+00 + 390 0.59140142413774E+01 0.00000000000000E+00 -.67635954815063E+00 + 391 0.60600903931394E+01 0.00000000000000E+00 -.66005616097026E+00 + 392 0.62097746258499E+01 0.00000000000000E+00 -.64414576067920E+00 + 393 0.63631560591084E+01 0.00000000000000E+00 -.62861887447842E+00 + 394 0.65203260137684E+01 0.00000000000000E+00 -.61346625790752E+00 + 395 0.66813780663085E+01 0.00000000000000E+00 -.59867888934052E+00 + 396 0.68464081045463E+01 0.00000000000000E+00 -.58424796461441E+00 + 397 0.70155143847286E+01 0.00000000000000E+00 -.57016489178720E+00 + 398 0.71887975900314E+01 0.00000000000000E+00 -.55642128602241E+00 + 399 0.73663608905052E+01 0.00000000000000E+00 -.54300896459686E+00 + 400 0.75483100045007E+01 0.00000000000000E+00 -.52991994202874E+00 + 401 0.77347532616118E+01 0.00000000000000E+00 -.51714642532325E+00 + 402 0.79258016671736E+01 0.00000000000000E+00 -.50468080933273E+00 + 403 0.81215689683528E+01 0.00000000000000E+00 -.49251567222868E+00 + 404 0.83221717218711E+01 0.00000000000000E+00 -.48064377108294E+00 + 405 0.85277293634013E+01 0.00000000000000E+00 -.46905803755532E+00 + 406 0.87383642786774E+01 0.00000000000000E+00 -.45775157368529E+00 + 407 0.89542018763607E+01 0.00000000000000E+00 -.44671764778500E+00 + 408 0.91753706627068E+01 0.00000000000000E+00 -.43594969043135E+00 + 409 0.94020023180757E+01 0.00000000000000E+00 -.42544129055465E+00 + 410 0.96342317753321E+01 0.00000000000000E+00 -.41518619162160E+00 + 411 0.98721973001828E+01 0.00000000000000E+00 -.40517828791022E+00 + 412 0.10116040573497E+02 0.00000000000000E+00 -.39541162087461E+00 + 413 0.10365906775663E+02 0.00000000000000E+00 -.38588037559736E+00 + 414 0.10621944673022E+02 0.00000000000000E+00 -.37657887732737E+00 + 415 0.10884306706445E+02 0.00000000000000E+00 -.36750158810127E+00 + 416 0.11153149082094E+02 0.00000000000000E+00 -.35864310344615E+00 + 417 0.11428631864422E+02 0.00000000000000E+00 -.34999814916186E+00 + 418 0.11710919071473E+02 0.00000000000000E+00 -.34156157818079E+00 + 419 0.12000178772539E+02 0.00000000000000E+00 -.33332836750346E+00 + 420 0.12296583188220E+02 0.00000000000000E+00 -.32529361520782E+00 + 421 0.12600308792970E+02 0.00000000000000E+00 -.31745253753081E+00 + 422 0.12911536420156E+02 0.00000000000000E+00 -.30980046602012E+00 + 423 0.13230451369734E+02 0.00000000000000E+00 -.30233284475468E+00 + 424 0.13557243518566E+02 0.00000000000000E+00 -.29504522763216E+00 + 425 0.13892107433475E+02 0.00000000000000E+00 -.28793327572183E+00 + 426 0.14235242487082E+02 0.00000000000000E+00 -.28099275468121E+00 + 427 0.14586852976512E+02 0.00000000000000E+00 -.27421953223500E+00 + 428 0.14947148245032E+02 0.00000000000000E+00 -.26760957571485E+00 + 429 0.15316342806685E+02 0.00000000000000E+00 -.26115894965829E+00 + 430 0.15694656474010E+02 0.00000000000000E+00 -.25486381346568E+00 + 431 0.16082314488918E+02 0.00000000000000E+00 -.24872041911358E+00 + 432 0.16479547656794E+02 0.00000000000000E+00 -.24272510892318E+00 + 433 0.16886592483917E+02 0.00000000000000E+00 -.23687431338263E+00 + 434 0.17303691318270E+02 0.00000000000000E+00 -.23116454902179E+00 + 435 0.17731092493831E+02 0.00000000000000E+00 -.22559241633823E+00 + 436 0.18169050478428E+02 0.00000000000000E+00 -.22015459777323E+00 + 437 0.18617826025246E+02 0.00000000000000E+00 -.21484785573654E+00 + 438 0.19077686328069E+02 0.00000000000000E+00 -.20966903067878E+00 + 439 0.19548905180373E+02 0.00000000000000E+00 -.20461503921028E+00 + 440 0.20031763138328E+02 0.00000000000000E+00 -.19968287226533E+00 + 441 0.20526547687844E+02 0.00000000000000E+00 -.19486959331056E+00 + 442 0.21033553415734E+02 0.00000000000000E+00 -.19017233659662E+00 + 443 0.21553082185103E+02 0.00000000000000E+00 -.18558830545196E+00 + 444 0.22085443315075E+02 0.00000000000000E+00 -.18111477061770E+00 + 445 0.22630953764957E+02 0.00000000000000E+00 -.17674906862272E+00 + 446 0.23189938322952E+02 0.00000000000000E+00 -.17248860019783E+00 + 447 0.23762729799529E+02 0.00000000000000E+00 -.16833082872825E+00 + 448 0.24349669225577E+02 0.00000000000000E+00 -.16427327874329E+00 + 449 0.24951106055449E+02 0.00000000000000E+00 -.16031353444256E+00 + 450 0.25567398375018E+02 0.00000000000000E+00 -.15644923825759E+00 + 451 0.26198913114881E+02 0.00000000000000E+00 -.15267808944822E+00 + 452 0.26846026268819E+02 0.00000000000000E+00 -.14899784273272E+00 + 453 0.27509123117659E+02 0.00000000000000E+00 -.14540630695103E+00 + 454 0.28188598458665E+02 0.00000000000000E+00 -.14190134376016E+00 + 455 0.28884856840594E+02 0.00000000000000E+00 -.13848086636104E+00 + 456 0.29598312804556E+02 0.00000000000000E+00 -.13514283825611E+00 + 457 0.30329391130829E+02 0.00000000000000E+00 -.13188527203680E+00 + 458 0.31078527091760E+02 0.00000000000000E+00 -.12870622820026E+00 + 459 0.31846166710927E+02 0.00000000000000E+00 -.12560381399459E+00 + 460 0.32632767028687E+02 0.00000000000000E+00 -.12257618229198E+00 + 461 0.33438796374295E+02 0.00000000000000E+00 -.11962153048890E+00 + 462 0.34264734644740E+02 0.00000000000000E+00 -.11673809943291E+00 + 463 0.35111073590466E+02 0.00000000000000E+00 -.11392417237524E+00 + 464 0.35978317108150E+02 0.00000000000000E+00 -.11117807394871E+00 + 465 0.36866981540721E+02 0.00000000000000E+00 -.10849816917021E+00 + 466 0.37777595984777E+02 0.00000000000000E+00 -.10588286246726E+00 + 467 0.38710702605601E+02 0.00000000000000E+00 -.10333059672808E+00 + 468 0.39666856959960E+02 0.00000000000000E+00 -.10083985237443E+00 + 469 0.40646628326870E+02 0.00000000000000E+00 -.98409146456945E-01 + 470 0.41650600046544E+02 0.00000000000000E+00 -.96037031772172E-01 + 471 0.42679369867694E+02 0.00000000000000E+00 -.93722096000949E-01 + 472 0.43733550303426E+02 0.00000000000000E+00 -.91462960867521E-01 + 473 0.44813768995920E+02 0.00000000000000E+00 -.89258281318943E-01 + 474 0.45920669090120E+02 0.00000000000000E+00 -.87106744724254E-01 + 475 0.47054909616646E+02 0.00000000000000E+00 -.85007070092958E-01 + 476 0.48217165884177E+02 0.00000000000000E+00 -.82958007312343E-01 + 477 0.49408129881516E+02 0.00000000000000E+00 -.80958336403185E-01 + 478 0.50628510689589E+02 0.00000000000000E+00 -.79006866793388E-01 + 479 0.51879034903622E+02 0.00000000000000E+00 -.77102436609142E-01 + 480 0.53160447065742E+02 0.00000000000000E+00 -.75243911983158E-01 + 481 0.54473510108266E+02 0.00000000000000E+00 -.73430186379582E-01 + 482 0.55819005807940E+02 0.00000000000000E+00 -.71660179935183E-01 + 483 0.57197735251396E+02 0.00000000000000E+00 -.69932838816418E-01 + 484 0.58610519312105E+02 0.00000000000000E+00 -.68247134591996E-01 + 485 0.60058199139114E+02 0.00000000000000E+00 -.66602063620568E-01 + 486 0.61541636657850E+02 0.00000000000000E+00 -.64996646453174E-01 + 487 0.63061715083299E+02 0.00000000000000E+00 -.63429927250097E-01 + 488 0.64619339445857E+02 0.00000000000000E+00 -.61900973211766E-01 + 489 0.66215437130169E+02 0.00000000000000E+00 -.60408874023389E-01 + 490 0.67850958427285E+02 0.00000000000000E+00 -.58952741312958E-01 + 491 0.69526877100439E+02 0.00000000000000E+00 -.57531708122337E-01 + 492 0.71244190964819E+02 0.00000000000000E+00 -.56144928391077E-01 + 493 0.73003922481650E+02 0.00000000000000E+00 -.54791576452696E-01 + 494 0.74807119366947E+02 0.00000000000000E+00 -.53470846543081E-01 + 495 0.76654855215311E+02 0.00000000000000E+00 -.52181952320759E-01 diff --git a/abipy/data/pseudos/15-P.LDA.fhi b/abipy/data/pseudos/15-P.LDA.fhi new file mode 100644 index 000000000..7169b6e11 --- /dev/null +++ b/abipy/data/pseudos/15-P.LDA.fhi @@ -0,0 +1,2018 @@ +phosphorus, fhi98PP : Trouiller-Martins-type, LDA Ceperley/Alder Perdew/Wang (1992), l= 2 local + 15.000 5.000 021003 zatom,zion,pspdat + 6 7 3 2 499 0 pspcod,pspxc,lmax,lloc,mmax,r2well + 0.000 0.000 0.000 rchrg, fchrg, qchrg +5--- These two lines are available for giving more information, later +6 +7-Here follows the cpi file from the fhi98pp code- +5.00000E+00 4 + 0.0000 0.0000 0.0000 0.0000 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 +499 0.10247000000000E+01 + 1 0.41666666666667E-03 0.12811986344691E-03 -.39995908261998E+00 + 2 0.42695833333333E-03 0.13128442407404E-03 -.39995919956877E+00 + 3 0.43750420416667E-03 0.13452714934867E-03 -.39995931331805E+00 + 4 0.44831055800958E-03 0.13784996993759E-03 -.39995942392592E+00 + 5 0.45938382879242E-03 0.14125486426003E-03 -.39995953144811E+00 + 6 0.47073060936359E-03 0.14474385957989E-03 -.39995963593804E+00 + 7 0.48235765541487E-03 0.14831903318144E-03 -.39995973744675E+00 + 8 0.49427188950362E-03 0.15198251367919E-03 -.39995983602298E+00 + 9 0.50648040517436E-03 0.15573648226170E-03 -.39995993171313E+00 + 10 0.51899047118217E-03 0.15958317399345E-03 -.39996002456127E+00 + 11 0.53180953582037E-03 0.16352487914570E-03 -.39996011460912E+00 + 12 0.54494523135513E-03 0.16756394456012E-03 -.39996020189607E+00 + 13 0.55840537856960E-03 0.17170277504614E-03 -.39996028645914E+00 + 14 0.57219799142027E-03 0.17594383481283E-03 -.39996036833301E+00 + 15 0.58633128180835E-03 0.18028964893610E-03 -.39996044754993E+00 + 16 0.60081366446902E-03 0.18474280486220E-03 -.39996052413977E+00 + 17 0.61565376198140E-03 0.18930595394835E-03 -.39996059812999E+00 + 18 0.63086040990234E-03 0.19398181304140E-03 -.39996066954555E+00 + 19 0.64644266202693E-03 0.19877316609550E-03 -.39996073840896E+00 + 20 0.66240979577900E-03 0.20368286582979E-03 -.39996080474019E+00 + 21 0.67877131773474E-03 0.20871383542692E-03 -.39996086855665E+00 + 22 0.69553696928278E-03 0.21386907027368E-03 -.39996092987317E+00 + 23 0.71271673242407E-03 0.21915163974451E-03 -.39996098870191E+00 + 24 0.73032083571494E-03 0.22456468902910E-03 -.39996104505234E+00 + 25 0.74835976035710E-03 0.23011144100522E-03 -.39996109893118E+00 + 26 0.76684424643792E-03 0.23579519815771E-03 -.39996115034232E+00 + 27 0.78578529932494E-03 0.24161934454491E-03 -.39996119928680E+00 + 28 0.80519419621827E-03 0.24758734781377E-03 -.39996124576269E+00 + 29 0.82508249286486E-03 0.25370276126455E-03 -.39996128976504E+00 + 30 0.84546203043862E-03 0.25996922596676E-03 -.39996133128580E+00 + 31 0.86634494259045E-03 0.26639047292718E-03 -.39996137031373E+00 + 32 0.88774366267244E-03 0.27297032531157E-03 -.39996140683431E+00 + 33 0.90967093114045E-03 0.27971270072121E-03 -.39996144082963E+00 + 34 0.93213980313961E-03 0.28662161352574E-03 -.39996147227831E+00 + 35 0.95516365627716E-03 0.29370117725359E-03 -.39996150115535E+00 + 36 0.97875619858721E-03 0.30095560704150E-03 -.39996152743205E+00 + 37 0.10029314766923E-02 0.30838922214456E-03 -.39996155107585E+00 + 38 0.10277038841666E-02 0.31600644850826E-03 -.39996157205025E+00 + 39 0.10530881701055E-02 0.32381182140415E-03 -.39996159031458E+00 + 40 0.10790994479071E-02 0.33180998813053E-03 -.39996160582393E+00 + 41 0.11057532042704E-02 0.34000571078000E-03 -.39996161852896E+00 + 42 0.11330653084159E-02 0.34840386907526E-03 -.39996162837573E+00 + 43 0.11610520215338E-02 0.35700946327512E-03 -.39996163530550E+00 + 44 0.11897300064657E-02 0.36582761715225E-03 -.39996163925459E+00 + 45 0.12191163376254E-02 0.37486358104453E-03 -.39996164015415E+00 + 46 0.12492285111647E-02 0.38412273498184E-03 -.39996163792995E+00 + 47 0.12800844553905E-02 0.39361059189010E-03 -.39996163250216E+00 + 48 0.13117025414386E-02 0.40333280087450E-03 -.39996162378512E+00 + 49 0.13441015942122E-02 0.41329515058389E-03 -.39996161168709E+00 + 50 0.13773009035892E-02 0.42350357265835E-03 -.39996159610999E+00 + 51 0.14113202359079E-02 0.43396414526192E-03 -.39996157694912E+00 + 52 0.14461798457348E-02 0.44468309670270E-03 -.39996155409289E+00 + 53 0.14819004879244E-02 0.45566680914245E-03 -.39996152742249E+00 + 54 0.15185034299762E-02 0.46692182239783E-03 -.39996149681157E+00 + 55 0.15560104646966E-02 0.47845483783568E-03 -.39996146212592E+00 + 56 0.15944439231746E-02 0.49027272236458E-03 -.39996142322312E+00 + 57 0.16338266880770E-02 0.50238251252509E-03 -.39996137995213E+00 + 58 0.16741822072725E-02 0.51479141868112E-03 -.39996133215293E+00 + 59 0.17155345077921E-02 0.52750682931496E-03 -.39996127965607E+00 + 60 0.17579082101346E-02 0.54053631542851E-03 -.39996122228229E+00 + 61 0.18013285429249E-02 0.55388763505331E-03 -.39996115984201E+00 + 62 0.18458213579352E-02 0.56756873787217E-03 -.39996109213484E+00 + 63 0.18914131454762E-02 0.58158776995508E-03 -.39996101894914E+00 + 64 0.19381310501694E-02 0.59595307861223E-03 -.39996094006141E+00 + 65 0.19860028871086E-02 0.61067321736710E-03 -.39996085523577E+00 + 66 0.20350571584202E-02 0.62575695105257E-03 -.39996076422338E+00 + 67 0.20853230702332E-02 0.64121326103310E-03 -.39996066676178E+00 + 68 0.21368305500679E-02 0.65705135055611E-03 -.39996056257427E+00 + 69 0.21896102646546E-02 0.67328065023577E-03 -.39996045136921E+00 + 70 0.22436936381916E-02 0.68991082367253E-03 -.39996033283931E+00 + 71 0.22991128710549E-02 0.70695177321162E-03 -.39996020666087E+00 + 72 0.23559009589700E-02 0.72441364584418E-03 -.39996007249299E+00 + 73 0.24140917126565E-02 0.74230683925443E-03 -.39995992997673E+00 + 74 0.24737197779592E-02 0.76064200801647E-03 -.39995977873422E+00 + 75 0.25348206564747E-02 0.77943006994464E-03 -.39995961836777E+00 + 76 0.25974307266897E-02 0.79868221260094E-03 -.39995944845888E+00 + 77 0.26615872656389E-02 0.81840989996379E-03 -.39995926856723E+00 + 78 0.27273284711002E-02 0.83862487926180E-03 -.39995907822959E+00 + 79 0.27946934843364E-02 0.85933918797691E-03 -.39995887695875E+00 + 80 0.28637224133995E-02 0.88056516102099E-03 -.39995866424228E+00 + 81 0.29344563570104E-02 0.90231543809028E-03 -.39995843954135E+00 + 82 0.30069374290286E-02 0.92460297120204E-03 -.39995820228938E+00 + 83 0.30812087835256E-02 0.94744103241807E-03 -.39995795189072E+00 + 84 0.31573146404787E-02 0.97084322175964E-03 -.39995768771918E+00 + 85 0.32353003120985E-02 0.99482347531868E-03 -.39995740911653E+00 + 86 0.33152122298073E-02 0.10193960735702E-02 -.39995711539096E+00 + 87 0.33970979718836E-02 0.10445756498906E-02 -.39995680581537E+00 + 88 0.34810062917891E-02 0.10703771992879E-02 -.39995647962565E+00 + 89 0.35669871471963E-02 0.10968160873479E-02 -.39995613601884E+00 + 90 0.36550917297320E-02 0.11239080594030E-02 -.39995577415123E+00 + 91 0.37453724954564E-02 0.11516692499281E-02 -.39995539313631E+00 + 92 0.38378831960942E-02 0.11801161921703E-02 -.39995499204269E+00 + 93 0.39326789110377E-02 0.12092658280177E-02 -.39995456989185E+00 + 94 0.40298160801404E-02 0.12391355181131E-02 -.39995412565581E+00 + 95 0.41293525373198E-02 0.12697430522194E-02 -.39995365825467E+00 + 96 0.42313475449916E-02 0.13011066598424E-02 -.39995316655406E+00 + 97 0.43358618293529E-02 0.13332450211184E-02 -.39995264936243E+00 + 98 0.44429576165379E-02 0.13661772779716E-02 -.39995210542821E+00 + 99 0.45526986696664E-02 0.13999230455504E-02 -.39995153343682E+00 + 100 0.46651503268072E-02 0.14345024239472E-02 -.39995093200757E+00 + 101 0.47803795398793E-02 0.14699360102114E-02 -.39995029969037E+00 + 102 0.48984549145143E-02 0.15062449106605E-02 -.39994963496227E+00 + 103 0.50194467509028E-02 0.15434507534986E-02 -.39994893622390E+00 + 104 0.51434270856501E-02 0.15815757017501E-02 -.39994820179559E+00 + 105 0.52704697346657E-02 0.16206424665149E-02 -.39994742991348E+00 + 106 0.54006503371119E-02 0.16606743205557E-02 -.39994661872527E+00 + 107 0.55340464004386E-02 0.17016951122238E-02 -.39994576628589E+00 + 108 0.56707373465294E-02 0.17437292797334E-02 -.39994487055285E+00 + 109 0.58108045589887E-02 0.17868018657924E-02 -.39994392938146E+00 + 110 0.59543314315957E-02 0.18309385325998E-02 -.39994294051970E+00 + 111 0.61014034179561E-02 0.18761655772178E-02 -.39994190160297E+00 + 112 0.62521080823797E-02 0.19225099473299E-02 -.39994081014846E+00 + 113 0.64065351520144E-02 0.19699992573932E-02 -.39993966354931E+00 + 114 0.65647765702692E-02 0.20186618051961E-02 -.39993845906847E+00 + 115 0.67269265515548E-02 0.20685265888324E-02 -.39993719383224E+00 + 116 0.68930816373782E-02 0.21196233241010E-02 -.39993586482354E+00 + 117 0.70633407538215E-02 0.21719824623434E-02 -.39993446887478E+00 + 118 0.72378052704409E-02 0.22256352087307E-02 -.39993300266040E+00 + 119 0.74165790606208E-02 0.22806135410104E-02 -.39993146268914E+00 + 120 0.75997685634181E-02 0.23369502287268E-02 -.39992984529575E+00 + 121 0.77874828469345E-02 0.23946788529261E-02 -.39992814663248E+00 + 122 0.79798336732538E-02 0.24538338263592E-02 -.39992636266002E+00 + 123 0.81769355649832E-02 0.25144504141967E-02 -.39992448913808E+00 + 124 0.83789058734383E-02 0.25765647552671E-02 -.39992252161544E+00 + 125 0.85858648485122E-02 0.26402138838345E-02 -.39992045541961E+00 + 126 0.87979357102704E-02 0.27054357519292E-02 -.39991828564590E+00 + 127 0.90152447223141E-02 0.27722692522455E-02 -.39991600714599E+00 + 128 0.92379212669553E-02 0.28407542416233E-02 -.39991361451595E+00 + 129 0.94660979222491E-02 0.29109315651279E-02 -.39991110208374E+00 + 130 0.96999105409286E-02 0.29828430807447E-02 -.39990846389594E+00 + 131 0.99394983312896E-02 0.30565316847058E-02 -.39990569370405E+00 + 132 0.10185003940072E-01 0.31320413374656E-02 -.39990278494997E+00 + 133 0.10436573537392E-01 0.32094170903428E-02 -.39989973075090E+00 + 134 0.10694356903766E-01 0.32887051128477E-02 -.39989652388338E+00 + 135 0.10958507519289E-01 0.33699527207138E-02 -.39989315676674E+00 + 136 0.11229182655015E-01 0.34532084046521E-02 -.39988962144562E+00 + 137 0.11506543466594E-01 0.35385218598509E-02 -.39988590957172E+00 + 138 0.11790755090219E-01 0.36259440162391E-02 -.39988201238469E+00 + 139 0.12081986740947E-01 0.37155270695365E-02 -.39987792069212E+00 + 140 0.12380411813449E-01 0.38073245131133E-02 -.39987362484853E+00 + 141 0.12686207985241E-01 0.39013911706808E-02 -.39986911473348E+00 + 142 0.12999557322476E-01 0.39977832298395E-02 -.39986437972855E+00 + 143 0.13320646388342E-01 0.40965582765066E-02 -.39985940869330E+00 + 144 0.13649666354134E-01 0.41977753302510E-02 -.39985418994017E+00 + 145 0.13986813113081E-01 0.43014948805616E-02 -.39984871120806E+00 + 146 0.14332287396974E-01 0.44077789240760E-02 -.39984295963489E+00 + 147 0.14686294895679E-01 0.45166910027992E-02 -.39983692172877E+00 + 148 0.15049046379602E-01 0.46282962433417E-02 -.39983058333790E+00 + 149 0.15420757825179E-01 0.47426613972079E-02 -.39982392961912E+00 + 150 0.15801650543460E-01 0.48598548821663E-02 -.39981694500501E+00 + 151 0.16191951311884E-01 0.49799468247364E-02 -.39980961316956E+00 + 152 0.16591892509287E-01 0.51030091038255E-02 -.39980191699231E+00 + 153 0.17001712254267E-01 0.52291153955522E-02 -.39979383852082E+00 + 154 0.17421654546947E-01 0.53583412192940E-02 -.39978535893166E+00 + 155 0.17851969414257E-01 0.54907639849981E-02 -.39977645848954E+00 + 156 0.18292913058789E-01 0.56264630417967E-02 -.39976711650478E+00 + 157 0.18744748011341E-01 0.57655197279680E-02 -.39975731128891E+00 + 158 0.19207743287221E-01 0.59080174222893E-02 -.39974702010845E+00 + 159 0.19682174546416E-01 0.60540415968260E-02 -.39973621913670E+00 + 160 0.20168324257712E-01 0.62036798712072E-02 -.39972488340353E+00 + 161 0.20666481866877E-01 0.63570220684367E-02 -.39971298674322E+00 + 162 0.21176943968989E-01 0.65141602722932E-02 -.39970050174002E+00 + 163 0.21700014485023E-01 0.66751888863743E-02 -.39968739967174E+00 + 164 0.22236004842803E-01 0.68402046948431E-02 -.39967365045098E+00 + 165 0.22785234162421E-01 0.70093069249360E-02 -.39965922256418E+00 + 166 0.23348029446232E-01 0.71825973112980E-02 -.39964408300836E+00 + 167 0.23924725773554E-01 0.73601801622095E-02 -.39962819722546E+00 + 168 0.24515666500161E-01 0.75421624277759E-02 -.39961152903441E+00 + 169 0.25121203462715E-01 0.77286537701531E-02 -.39959404056068E+00 + 170 0.25741697188244E-01 0.79197666358848E-02 -.39957569216353E+00 + 171 0.26377517108794E-01 0.81156163304354E-02 -.39955644236071E+00 + 172 0.27029041781381E-01 0.83163210949996E-02 -.39953624775086E+00 + 173 0.27696659113381E-01 0.85220021856824E-02 -.39951506293337E+00 + 174 0.28380766593482E-01 0.87327839551413E-02 -.39949284042600E+00 + 175 0.29081771528341E-01 0.89487939367908E-02 -.39946953058003E+00 + 176 0.29800091285091E-01 0.91701629316750E-02 -.39944508149326E+00 + 177 0.30536153539833E-01 0.93970250981173E-02 -.39941943892074E+00 + 178 0.31290396532266E-01 0.96295180442657E-02 -.39939254618346E+00 + 179 0.32063269326613E-01 0.98677829236564E-02 -.39936434407515E+00 + 180 0.32855232078981E-01 0.10111964533925E-01 -.39933477076731E+00 + 181 0.33666756311332E-01 0.10362211418806E-01 -.39930376171261E+00 + 182 0.34498325192221E-01 0.10618675973561E-01 -.39927124954712E+00 + 183 0.35350433824469E-01 0.10881514554002E-01 -.39923716399146E+00 + 184 0.36223589539934E-01 0.11150887589254E-01 -.39920143175127E+00 + 185 0.37118312201570E-01 0.11426959698448E-01 -.39916397641750E+00 + 186 0.38035134512949E-01 0.11709899811524E-01 -.39912471836686E+00 + 187 0.38974602335419E-01 0.11999881294330E-01 -.39908357466298E+00 + 188 0.39937275013103E-01 0.12297082078237E-01 -.39904045895899E+00 + 189 0.40923725705927E-01 0.12601684794479E-01 -.39899528140220E+00 + 190 0.41934541730864E-01 0.12913876913459E-01 -.39894794854153E+00 + 191 0.42970324911616E-01 0.13233850889267E-01 -.39889836323889E+00 + 192 0.44031691936933E-01 0.13561804309671E-01 -.39884642458531E+00 + 193 0.45119274727775E-01 0.13897940051870E-01 -.39879202782310E+00 + 194 0.46233720813551E-01 0.14242466444297E-01 -.39873506427537E+00 + 195 0.47375693717646E-01 0.14595597434803E-01 -.39867542128444E+00 + 196 0.48545873352472E-01 0.14957552765554E-01 -.39861298216076E+00 + 197 0.49744956424278E-01 0.15328558155000E-01 -.39854762614427E+00 + 198 0.50973656847957E-01 0.15708845487317E-01 -.39847922838043E+00 + 199 0.52232706172102E-01 0.16098653009713E-01 -.39840765991315E+00 + 200 0.53522854014553E-01 0.16498225538056E-01 -.39833278769739E+00 + 201 0.54844868508712E-01 0.16907814671286E-01 -.39825447463451E+00 + 202 0.56199536760877E-01 0.17327679015109E-01 -.39817257963346E+00 + 203 0.57587665318871E-01 0.17758084415517E-01 -.39808695770190E+00 + 204 0.59010080652247E-01 0.18199304202699E-01 -.39799746007102E+00 + 205 0.60467629644358E-01 0.18651619445965E-01 -.39790393435908E+00 + 206 0.61961180096573E-01 0.19115319220328E-01 -.39780622477849E+00 + 207 0.63491621244959E-01 0.19590700885451E-01 -.39770417239236E+00 + 208 0.65059864289709E-01 0.20078070377715E-01 -.39759761542691E+00 + 209 0.66666842937665E-01 0.20577742516202E-01 -.39748638964661E+00 + 210 0.68313513958225E-01 0.21090041323456E-01 -.39737032880010E+00 + 211 0.70000857752993E-01 0.21615300361959E-01 -.39724926514555E+00 + 212 0.71729878939492E-01 0.22153863087285E-01 -.39712303006497E+00 + 213 0.73501606949298E-01 0.22706083219022E-01 -.39699145477830E+00 + 214 0.75317096640945E-01 0.23272325130577E-01 -.39685437116897E+00 + 215 0.77177428927977E-01 0.23852964259097E-01 -.39671161273412E+00 + 216 0.79083711422498E-01 0.24448387536810E-01 -.39656301567379E+00 + 217 0.81037079094633E-01 0.25058993845194E-01 -.39640842013510E+00 + 218 0.83038694948271E-01 0.25685194493480E-01 -.39624767162905E+00 + 219 0.85089750713493E-01 0.26327413723121E-01 -.39608062263943E+00 + 220 0.87191467556116E-01 0.26986089239951E-01 -.39590713444512E+00 + 221 0.89345096804753E-01 0.27661672775920E-01 -.39572707917972E+00 + 222 0.91551920695830E-01 0.28354630682410E-01 -.39554034215434E+00 + 223 0.93813253137017E-01 0.29065444557292E-01 -.39534682447243E+00 + 224 0.96130440489501E-01 0.29794611908055E-01 -.39514644596825E+00 + 225 0.98504862369592E-01 0.30542646853505E-01 -.39493914850372E+00 + 226 0.10093793247012E+00 0.31310080866716E-01 -.39472489966218E+00 + 227 0.10343109940213E+00 0.32097463562148E-01 -.39450369688088E+00 + 228 0.10598584755737E+00 0.32905363530019E-01 -.39427557206877E+00 + 229 0.10860369799203E+00 0.33734369221311E-01 -.39404059676033E+00 + 230 0.11128620933244E+00 0.34585089887006E-01 -.39379888786123E+00 + 231 0.11403497870295E+00 0.35458156575442E-01 -.39355061404734E+00 + 232 0.11685164267691E+00 0.36354223191982E-01 -.39329600288408E+00 + 233 0.11973787825103E+00 0.37273967625501E-01 -.39303534874004E+00 + 234 0.12269540384383E+00 0.38218092946563E-01 -.39276902157565E+00 + 235 0.12572598031877E+00 0.39187328682514E-01 -.39249747669538E+00 + 236 0.12883141203265E+00 0.40182432175144E-01 -.39222126556042E+00 + 237 0.13201354790985E+00 0.41204190027011E-01 -.39194104776794E+00 + 238 0.13527428254323E+00 0.42253419642969E-01 -.39165760431295E+00 + 239 0.13861555732204E+00 0.43330970874000E-01 -.39137185225942E+00 + 240 0.14203936158790E+00 0.44437727770957E-01 -.39108486095939E+00 + 241 0.14554773381912E+00 0.45574610456456E-01 -.39079786997105E+00 + 242 0.14914276284445E+00 0.46742577123784E-01 -.39051230884104E+00 + 243 0.15282658908671E+00 0.47942626172392E-01 -.39022981893064E+00 + 244 0.15660140583715E+00 0.49175798490286E-01 -.38995227748205E+00 + 245 0.16046946056133E+00 0.50443179894450E-01 -.38968182413800E+00 + 246 0.16443305623719E+00 0.51745903741294E-01 -.38942089014704E+00 + 247 0.16849455272625E+00 0.53085153720063E-01 -.38917223050678E+00 + 248 0.17265636817859E+00 0.54462166843162E-01 -.38893895931921E+00 + 249 0.17692098047260E+00 0.55878236648429E-01 -.38872458865552E+00 + 250 0.18129092869027E+00 0.57334716629544E-01 -.38853307125276E+00 + 251 0.18576881462892E+00 0.58833023912065E-01 -.38836884739137E+00 + 252 0.19035730435026E+00 0.60374643193845E-01 -.38823689633099E+00 + 253 0.19505912976771E+00 0.61961130970106E-01 -.38814279271221E+00 + 254 0.19987709027297E+00 0.63594120064923E-01 -.38809276836378E+00 + 255 0.20481405440271E+00 0.65275324492541E-01 -.38809377998858E+00 + 256 0.20987296154646E+00 0.67006544673686E-01 -.38815358323709E+00 + 257 0.21505682369666E+00 0.68789673033871E-01 -.38828081371390E+00 + 258 0.22036872724197E+00 0.70626700012694E-01 -.38848507550149E+00 + 259 0.22581183480484E+00 0.72519720515139E-01 -.38877703782466E+00 + 260 0.23138938712452E+00 0.74470940838114E-01 -.38916854051965E+00 + 261 0.23710470498650E+00 0.76482686107698E-01 -.38967270901256E+00 + 262 0.24296119119967E+00 0.78557408264922E-01 -.39030407955220E+00 + 263 0.24896233262230E+00 0.80697694640359E-01 -.39107873548206E+00 + 264 0.25511170223807E+00 0.82906277160229E-01 -.39201445537338E+00 + 265 0.26141296128335E+00 0.85186042229285E-01 -.39313087387625E+00 + 266 0.26786986142705E+00 0.87540041338160E-01 -.39444965617466E+00 + 267 0.27448624700429E+00 0.89971502445320E-01 -.39599468695524E+00 + 268 0.28126605730530E+00 0.92483842186038E-01 -.39779227481344E+00 + 269 0.28821332892074E+00 0.95080678962872E-01 -.39987137302381E+00 + 270 0.29533219814508E+00 0.97765846973926E-01 -.40226381758869E+00 + 271 0.30262690343927E+00 0.10054341123647E+00 -.40500458344837E+00 + 272 0.31010178795422E+00 0.10341768366425E+00 -.40813205968043E+00 + 273 0.31776130211669E+00 0.10639324025678E+00 -.41168834443048E+00 + 274 0.32561000627897E+00 0.10947493945775E+00 -.41571956019448E+00 + 275 0.33365257343406E+00 0.11266794173739E+00 -.42027618990502E+00 + 276 0.34189379199788E+00 0.11597773044935E+00 -.42541343405112E+00 + 277 0.35033856866023E+00 0.11941013400660E+00 -.43119158877139E+00 + 278 0.35899193130614E+00 0.12297134941186E+00 -.43767644448995E+00 + 279 0.36785903200940E+00 0.12666796716589E+00 -.44493970419771E+00 + 280 0.37694515010003E+00 0.13050699756062E+00 -.45305941989958E+00 + 281 0.38625569530750E+00 0.13449589834303E+00 -.46212044502991E+00 + 282 0.39579621098160E+00 0.13864260370791E+00 -.47221489975894E+00 + 283 0.40557237739284E+00 0.14295555454323E+00 -.48344264504456E+00 + 284 0.41559001511444E+00 0.14744372980751E+00 -.49591175999488E+00 + 285 0.42585508848777E+00 0.15211667886424E+00 -.50973901556154E+00 + 286 0.43637370917342E+00 0.15698455453035E+00 -.52505033574368E+00 + 287 0.44715213979000E+00 0.16205814651255E+00 -.54198123530344E+00 + 288 0.45819679764282E+00 0.16734891480340E+00 -.56067722043096E+00 + 289 0.46951425854459E+00 0.17286902248525E+00 -.58129413580086E+00 + 290 0.48111126073064E+00 0.17863136724068E+00 -.60399843798410E+00 + 291 0.49299470887069E+00 0.18464961068840E+00 -.62896737116947E+00 + 292 0.50517167817980E+00 0.19093820444907E+00 -.65638901656420E+00 + 293 0.51764941863084E+00 0.19751241159063E+00 -.68646218164503E+00 + 294 0.53043535927102E+00 0.20438832180221E+00 -.71939608959742E+00 + 295 0.54353711264501E+00 0.21158285829309E+00 -.75540982280720E+00 + 296 0.55696247932735E+00 0.21911377400331E+00 -.79473146718494E+00 + 297 0.57071945256673E+00 0.22699963423966E+00 -.83759689647708E+00 + 298 0.58481622304513E+00 0.23525978231005E+00 -.88424812767859E+00 + 299 0.59926118375434E+00 0.24391428411945E+00 -.93493117041427E+00 + 300 0.61406293499308E+00 0.25298384700952E+00 -.98989328500488E+00 + 301 0.62923028948740E+00 0.26248970737905E+00 -.10493795563132E+01 + 302 0.64477227763774E+00 0.27245348082111E+00 -.11136286839681E+01 + 303 0.66069815289540E+00 0.28289696767725E+00 -.11828678849781E+01 + 304 0.67701739727191E+00 0.29384190606789E+00 -.12573068030976E+01 + 305 0.69373972698453E+00 0.30530966365883E+00 -.13371303218962E+01 + 306 0.71087509824105E+00 0.31732085873146E+00 -.14224901869178E+01 + 307 0.72843371316760E+00 0.32989490062946E+00 -.15134953585674E+01 + 308 0.74642602588284E+00 0.34304943947718E+00 -.16102010437454E+01 + 309 0.76486274872215E+00 0.35679971535973E+00 -.17125963934493E+01 + 310 0.78375485861558E+00 0.37115779811527E+00 -.18205909085733E+01 + 311 0.80311360362339E+00 0.38613171075144E+00 -.19339996701723E+01 + 312 0.82295050963289E+00 0.40172443253565E+00 -.20525276067640E+01 + 313 0.84327738722082E+00 0.41793278232951E+00 -.21757531328483E+01 + 314 0.86410633868517E+00 0.43474618906579E+00 -.23031116421023E+01 + 315 0.88544976525070E+00 0.45214536471258E+00 -.24338795168378E+01 + 316 0.90732037445239E+00 0.47010090588932E+00 -.25671595215147E+01 + 317 0.92973118770136E+00 0.48857186362583E+00 -.27018686787165E+01 + 318 0.95269554803758E+00 0.50750433651341E+00 -.28367299732864E+01 + 319 0.97622712807411E+00 0.52683016029492E+00 -.29702694812407E+01 + 320 0.10003399381375E+01 0.54646578594017E+00 -.31008207547995E+01 + 321 0.10250483346095E+01 0.56631145703953E+00 -.32265384855502E+01 + 322 0.10503670284744E+01 0.58625081380918E+00 -.33454235774204E+01 + 323 0.10763110940777E+01 0.60615106225387E+00 -.34553617433162E+01 + 324 0.11028959781014E+01 0.62586384944544E+00 -.35541775385024E+01 + 325 0.11301375087605E+01 0.64522697523250E+00 -.36397052975395E+01 + 326 0.11580519052269E+01 0.66406704256337E+00 -.37098776837586E+01 + 327 0.11866557872860E+01 0.68220309894524E+00 -.37628314264085E+01 + 328 0.12159661852320E+01 0.69945124760861E+00 -.37970282539584E+01 + 329 0.12460005500072E+01 0.71563010830671E+00 -.38113869885733E+01 + 330 0.12767767635924E+01 0.73056688756185E+00 -.38054202158378E+01 + 331 0.13083131496531E+01 0.74410368457779E+00 -.37793658583725E+01 + 332 0.13406284844496E+01 0.75610352572130E+00 -.37343003104413E+01 + 333 0.13737420080155E+01 0.76645550752347E+00 -.36722154004801E+01 + 334 0.14076734356135E+01 0.77507836222093E+00 -.35960360340898E+01 + 335 0.14424429694731E+01 0.78192177444260E+00 -.35095483256132E+01 + 336 0.14780713108191E+01 0.78696491418502E+00 -.34171983057062E+01 + 337 0.15145796721963E+01 0.79021196228956E+00 -.33237073152040E+01 + 338 0.15519897900996E+01 0.79168496064286E+00 -.32334299130927E+01 + 339 0.15903239379150E+01 0.79141521936582E+00 -.31493513914496E+01 + 340 0.16296049391815E+01 0.78943589903097E+00 -.30715832925233E+01 + 341 0.16698561811793E+01 0.78577982209858E+00 -.29968752569879E+01 + 342 0.17111016288544E+01 0.78048405520084E+00 -.29241081957902E+01 + 343 0.17533658390872E+01 0.77359415372692E+00 -.28532080685901E+01 + 344 0.17966739753126E+01 0.76516288481103E+00 -.27841072730304E+01 + 345 0.18410518225028E+01 0.75524983849819E+00 -.27167439702996E+01 + 346 0.18865258025186E+01 0.74392111759024E+00 -.26510613298726E+01 + 347 0.19331229898409E+01 0.73124879518774E+00 -.25870067935138E+01 + 348 0.19808711276899E+01 0.71731036225538E+00 -.25245314545100E+01 + 349 0.20297986445439E+01 0.70218813379066E+00 -.24635895339570E+01 + 350 0.20799346710641E+01 0.68596862466458E+00 -.24041379415823E+01 + 351 0.21313090574394E+01 0.66874190279998E+00 -.23461359088252E+01 + 352 0.21839523911581E+01 0.65060092708404E+00 -.22895446832767E+01 + 353 0.22378960152197E+01 0.63164087728142E+00 -.22343272749205E+01 + 354 0.22931720467957E+01 0.61195848292780E+00 -.21804482458700E+01 + 355 0.23498133963515E+01 0.59165135781026E+00 -.21278735364407E+01 + 356 0.24078537872414E+01 0.57081734619459E+00 -.20765703214285E+01 + 357 0.24673277757863E+01 0.54955388776028E+00 -.20265068913789E+01 + 358 0.25282707718482E+01 0.52795740017092E+00 -.19776525544369E+01 + 359 0.25907190599128E+01 0.50612269556697E+00 -.19299775550679E+01 + 360 0.26547098206927E+01 0.48414242397409E+00 -.18834530065460E+01 + 361 0.27202811532638E+01 0.46210655220666E+00 -.18380508346311E+01 + 362 0.27874720977494E+01 0.44010188023902E+00 -.17937437302970E+01 + 363 0.28563226585638E+01 0.41821159745721E+00 -.17505051097563E+01 + 364 0.29268738282303E+01 0.39651488073152E+00 -.17083090803437E+01 + 365 0.29991676117876E+01 0.37508653581287E+00 -.16671304110893E+01 + 366 0.30732470517988E+01 0.35399668315674E+00 -.16269445070379E+01 + 367 0.31491562539782E+01 0.33331048891324E+00 -.15877273865535E+01 + 368 0.32269404134515E+01 0.31308794148910E+00 -.15494556610041E+01 + 369 0.33066458416637E+01 0.29338367378270E+00 -.15121065163435E+01 + 370 0.33883199939528E+01 0.27424683091115E+00 -.14756576962114E+01 + 371 0.34720114978035E+01 0.25572098298265E+00 -.14400874862538E+01 + 372 0.35577701817992E+01 0.23784408221328E+00 -.14053746994306E+01 + 373 0.36456471052896E+01 0.22064846343824E+00 -.13714986621330E+01 + 374 0.37356945887903E+01 0.20416088682036E+00 -.13384392009682E+01 + 375 0.38279662451334E+01 0.18840262130862E+00 -.13061766301102E+01 + 376 0.39225170113882E+01 0.17338956714464E+00 -.12746917391306E+01 + 377 0.40194031815695E+01 0.15913241545539E+00 -.12439657812515E+01 + 378 0.41186824401543E+01 0.14563684270550E+00 -.12139804619715E+01 + 379 0.42204138964261E+01 0.13290373751563E+00 -.11847179280288E+01 + 380 0.43246581196678E+01 0.12092945708761E+00 -.11561607566757E+01 + 381 0.44314771752236E+01 0.10970611021829E+00 -.11282919452406E+01 + 382 0.45409346614516E+01 0.99221863637394E-01 -.11010949009631E+01 + 383 0.46530957475895E+01 0.89461268178398E-01 -.10745534310878E+01 + 384 0.47680272125549E+01 0.80405601092088E-01 -.10486517332061E+01 + 385 0.48857974847050E+01 0.72033220648487E-01 -.10233743858363E+01 + 386 0.50064766825773E+01 0.64319929051150E-01 -.99870633923556E+00 + 387 0.51301366566369E+01 0.57239339615823E-01 -.97463290643499E+00 + 388 0.52568510320558E+01 0.50763244148837E-01 -.95113975449285E+00 + 389 0.53866952525476E+01 0.44861976504065E-01 -.92821289595944E+00 + 390 0.55197466252855E+01 0.39504768404033E-01 -.90583868054825E+00 + 391 0.56560843669301E+01 0.34660093781950E-01 -.88400378700832E+00 + 392 0.57957896507933E+01 0.30295998136531E-01 -.86269521519265E+00 + 393 0.59389456551679E+01 0.26380409687582E-01 -.84190027831799E+00 + 394 0.60856376128505E+01 0.22881429472793E-01 -.82160659541124E+00 + 395 0.62359528618879E+01 0.19767597928164E-01 -.80180208393793E+00 + 396 0.63899808975765E+01 0.17008135937491E-01 -.78247495260848E+00 + 397 0.65478134257467E+01 0.14573158810374E-01 -.76361369435783E+00 + 398 0.67095444173626E+01 0.12433862141911E-01 -.74520707949432E+00 + 399 0.68752701644715E+01 0.10562679008751E-01 -.72724414901368E+00 + 400 0.70450893375339E+01 0.89334084531022E-02 -.70971420807425E+00 + 401 0.72191030441710E+01 0.75213156862697E-02 -.69260681962940E+00 + 402 0.73974148893620E+01 0.63032048948937E-02 -.67591179821353E+00 + 403 0.75801310371293E+01 0.52574659453777E-02 -.65961920387775E+00 + 404 0.77673602737464E+01 0.43640966459619E-02 -.64371933627183E+00 + 405 0.79592140725079E+01 0.36047025338914E-02 -.62820272886877E+00 + 406 0.81558066600989E+01 0.29624764016513E-02 -.61306014332856E+00 + 407 0.83572550846033E+01 0.24221599578894E-02 -.59828256399781E+00 + 408 0.85636792851930E+01 0.19699901342109E-02 -.58386119254202E+00 + 409 0.87752021635373E+01 0.15936325994977E-02 -.56978744270716E+00 + 410 0.89919496569766E+01 0.12821050317598E-02 -.55605293520753E+00 + 411 0.92140508135040E+01 0.10256926285985E-02 -.54264949273693E+00 + 412 0.94416378685975E+01 0.81585821751921E-03 -.52956913509996E+00 + 413 0.96748463239519E+01 0.64514916412360E-03 -.51680407446078E+00 + 414 0.99138150281535E+01 0.50710307805732E-03 -.50434671070633E+00 + 415 0.10158686259349E+02 0.39615409233719E-03 -.49218962692137E+00 + 416 0.10409605809955E+02 0.30754125028009E-03 -.48032558497255E+00 + 417 0.10666723073461E+02 0.23722028438341E-03 -.46874752119893E+00 + 418 0.10930191133375E+02 0.18177982126904E-03 -.45744854220643E+00 + 419 0.11200166854370E+02 0.13836280347552E-03 -.44642192076357E+00 + 420 0.11476810975672E+02 0.10459368871231E-03 -.43566109179620E+00 + 421 0.11760288206772E+02 0.78511775260770E-04 -.42515964847878E+00 + 422 0.12050767325479E+02 0.58510812369010E-04 -.41491133841981E+00 + 423 0.12348421278418E+02 0.43284889353583E-04 -.40491005993930E+00 + 424 0.12653427283995E+02 0.31780458107947E-04 -.39514985843594E+00 + 425 0.12965966937910E+02 0.23154231142579E-04 -.38562492284174E+00 + 426 0.13286226321276E+02 0.16736610495635E-04 -.37632958216233E+00 + 427 0.13614396111412E+02 0.12000240395287E-04 -.36725830210045E+00 + 428 0.13950671695363E+02 0.85332363277471E-05 -.35840568176095E+00 + 429 0.14295253286239E+02 0.60166226116464E-05 -.34976645043520E+00 + 430 0.14648346042409E+02 0.42055068565830E-05 -.34133546446297E+00 + 431 0.15010160189657E+02 0.29135298230679E-05 -.33310770416997E+00 + 432 0.15380911146341E+02 0.20001502510725E-05 -.32507827087925E+00 + 433 0.15760819651656E+02 0.13603533689041E-05 -.31724238399458E+00 + 434 0.16150111897052E+02 0.91640644600877E-06 -.30959537815418E+00 + 435 0.16549019660909E+02 0.61132262111811E-06 -.30213270045299E+00 + 436 0.16957780446533E+02 0.40373336671347E-06 -.29484990773201E+00 + 437 0.17376637623563E+02 0.26390874327178E-06 -.28774266393286E+00 + 438 0.17805840572865E+02 0.17070180662864E-06 -.28080673751621E+00 + 439 0.18245644835014E+02 0.10922824817823E-06 -.27403799894234E+00 + 440 0.18696312262439E+02 0.69123963286881E-07 -.26743241821249E+00 + 441 0.19158111175321E+02 0.43251415045481E-07 -.26098606246949E+00 + 442 0.19631316521352E+02 0.26750265213219E-07 -.25469509365618E+00 + 443 0.20116210039429E+02 0.16348832833943E-07 -.24855576623030E+00 + 444 0.20613080427403E+02 0.98706960579528E-08 -.24256442493442E+00 + 445 0.21122223513960E+02 0.58854433092093E-08 -.23671750261971E+00 + 446 0.21643942434755E+02 0.34645392375377E-08 -.23101151812209E+00 + 447 0.22178547812893E+02 0.20128290091406E-08 -.22544307418961E+00 + 448 0.22726357943872E+02 0.11537717422367E-08 -.22000885545975E+00 + 449 0.23287698985085E+02 0.65228719845587E-09 -.21470562648556E+00 + 450 0.23862905150017E+02 0.36359217183237E-09 -.20953022980927E+00 + 451 0.24452318907222E+02 0.19975272207126E-09 -.20447958408243E+00 + 452 0.25056291184231E+02 0.10812214442834E-09 -.19955068223132E+00 + 453 0.25675181576481E+02 0.57639122890230E-10 -.19474058966656E+00 + 454 0.26309358561420E+02 0.30250564001877E-10 -.19004644253592E+00 + 455 0.26959199717887E+02 0.15623959723847E-10 -.18546544601924E+00 + 456 0.27625091950919E+02 0.79380483452864E-11 -.18099487266443E+00 + 457 0.28307431722107E+02 0.39657016653377E-11 -.17663206076357E+00 + 458 0.29006625285643E+02 0.19472591415120E-11 -.17237441276820E+00 + 459 0.29723088930198E+02 0.93936308912083E-12 -.16821939374275E+00 + 460 0.30457249226774E+02 0.44499251461544E-12 -.16416452985533E+00 + 461 0.31209543282676E+02 0.20690880031785E-12 -.16020740690478E+00 + 462 0.31980419001758E+02 0.94385490074989E-13 -.15634566888336E+00 + 463 0.32770335351101E+02 0.42219329077962E-13 -.15257701657398E+00 + 464 0.33579762634273E+02 0.18508986714776E-13 -.14889920618130E+00 + 465 0.34409182771340E+02 0.79461376545582E-14 -.14531004799581E+00 + 466 0.35259089585792E+02 0.33377662903003E-14 -.14180740509008E+00 + 467 0.36129989098561E+02 0.00000000000000E+00 -.13838919204653E+00 + 468 0.37022399829296E+02 0.00000000000000E+00 -.13505337371575E+00 + 469 0.37936853105079E+02 0.00000000000000E+00 -.13179796400483E+00 + 470 0.38873893376775E+02 0.00000000000000E+00 -.12862102469487E+00 + 471 0.39834078543181E+02 0.00000000000000E+00 -.12552066428698E+00 + 472 0.40817980283197E+02 0.00000000000000E+00 -.12249503687614E+00 + 473 0.41826184396192E+02 0.00000000000000E+00 -.11954234105215E+00 + 474 0.42859291150778E+02 0.00000000000000E+00 -.11666081882712E+00 + 475 0.43917915642203E+02 0.00000000000000E+00 -.11384875458878E+00 + 476 0.45002688158565E+02 0.00000000000000E+00 -.11110447407903E+00 + 477 0.46114254556082E+02 0.00000000000000E+00 -.10842634339712E+00 + 478 0.47253276643617E+02 0.00000000000000E+00 -.10581276802686E+00 + 479 0.48420432576714E+02 0.00000000000000E+00 -.10326219188724E+00 + 480 0.49616417261359E+02 0.00000000000000E+00 -.10077309640601E+00 + 481 0.50841942767714E+02 0.00000000000000E+00 -.98343999615510E-01 + 482 0.52097738754077E+02 0.00000000000000E+00 -.95973455270333E-01 + 483 0.53384552901303E+02 0.00000000000000E+00 -.93660051986272E-01 + 484 0.54703151357965E+02 0.00000000000000E+00 -.91402412399992E-01 + 485 0.56054319196507E+02 0.00000000000000E+00 -.89199192348972E-01 + 486 0.57438860880660E+02 0.00000000000000E+00 -.87049080071213E-01 + 487 0.58857600744413E+02 0.00000000000000E+00 -.84950795424235E-01 + 488 0.60311383482800E+02 0.00000000000000E+00 -.82903089122899E-01 + 489 0.61801074654825E+02 0.00000000000000E+00 -.80904741995608E-01 + 490 0.63327561198799E+02 0.00000000000000E+00 -.78954564258425E-01 + 491 0.64891751960409E+02 0.00000000000000E+00 -.77051394806699E-01 + 492 0.66494578233831E+02 0.00000000000000E+00 -.75194100523762E-01 + 493 0.68136994316207E+02 0.00000000000000E+00 -.73381575606287E-01 + 494 0.69819978075817E+02 0.00000000000000E+00 -.71612740905911E-01 + 495 0.71544531534290E+02 0.00000000000000E+00 -.69886543286729E-01 + 496 0.73311681463187E+02 0.00000000000000E+00 -.68201954998271E-01 + 497 0.75122479995328E+02 0.00000000000000E+00 -.66557973063601E-01 + 498 0.76978005251212E+02 0.00000000000000E+00 -.64953618682151E-01 + 499 0.78879361980917E+02 0.00000000000000E+00 -.63387936646971E-01 +499 0.10247000000000E+01 + 1 0.41666666666667E-03 0.93929433542568E-07 -.38203054007584E+01 + 2 0.42695833333333E-03 0.98626852967681E-07 -.38203055177072E+01 + 3 0.43750420416667E-03 0.10355919076101E-06 -.38203056314565E+01 + 4 0.44831055800958E-03 0.10873819521130E-06 -.38203057420643E+01 + 5 0.45938382879242E-03 0.11417620292612E-06 -.38203058495865E+01 + 6 0.47073060936359E-03 0.11988616590437E-06 -.38203059540764E+01 + 7 0.48235765541487E-03 0.12588168465106E-06 -.38203060555850E+01 + 8 0.49427188950362E-03 0.13217703983536E-06 -.38203061541612E+01 + 9 0.50648040517436E-03 0.13878722630348E-06 -.38203062498514E+01 + 10 0.51899047118217E-03 0.14572798879499E-06 -.38203063426995E+01 + 11 0.53180953582037E-03 0.15301585944506E-06 -.38203064327473E+01 + 12 0.54494523135513E-03 0.16066819716210E-06 -.38203065200342E+01 + 13 0.55840537856960E-03 0.16870322897477E-06 -.38203066045972E+01 + 14 0.57219799142027E-03 0.17714009344669E-06 -.38203066864710E+01 + 15 0.58633128180835E-03 0.18599888626234E-06 -.38203067656878E+01 + 16 0.60081366446902E-03 0.19530070809273E-06 -.38203068422776E+01 + 17 0.61565376198140E-03 0.20506771485478E-06 -.38203069162678E+01 + 18 0.63086040990234E-03 0.21532317048421E-06 -.38203069876832E+01 + 19 0.64644266202693E-03 0.22609150234763E-06 -.38203070565465E+01 + 20 0.66240979577900E-03 0.23739835942568E-06 -.38203071228777E+01 + 21 0.67877131773474E-03 0.24927067340603E-06 -.38203071866940E+01 + 22 0.69553696928278E-03 0.26173672283153E-06 -.38203072480104E+01 + 23 0.71271673242407E-03 0.27482620045652E-06 -.38203073068390E+01 + 24 0.73032083571494E-03 0.28857028397149E-06 -.38203073631893E+01 + 25 0.74835976035710E-03 0.30300171026478E-06 -.38203074170680E+01 + 26 0.76684424643792E-03 0.31815485339807E-06 -.38203074684789E+01 + 27 0.78578529932494E-03 0.33406580648137E-06 -.38203075174232E+01 + 28 0.80519419621827E-03 0.35077246764266E-06 -.38203075638988E+01 + 29 0.82508249286486E-03 0.36831463029677E-06 -.38203076079009E+01 + 30 0.84546203043862E-03 0.38673407792867E-06 -.38203076494214E+01 + 31 0.86634494259045E-03 0.40607468361676E-06 -.38203076884491E+01 + 32 0.88774366267244E-03 0.42638251453344E-06 -.38203077249693E+01 + 33 0.90967093114045E-03 0.44770594167163E-06 -.38203077589643E+01 + 34 0.93213980313961E-03 0.47009575505871E-06 -.38203077904125E+01 + 35 0.95516365627716E-03 0.49360528473232E-06 -.38203078192891E+01 + 36 0.97875619858721E-03 0.51829052776610E-06 -.38203078455653E+01 + 37 0.10029314766923E-02 0.54421028164800E-06 -.38203078692086E+01 + 38 0.10277038841666E-02 0.57142628432876E-06 -.38203078901824E+01 + 39 0.10530881701055E-02 0.60000336127418E-06 -.38203079084461E+01 + 40 0.10790994479071E-02 0.63000957987148E-06 -.38203079239547E+01 + 41 0.11057532042704E-02 0.66151641155744E-06 -.38203079366589E+01 + 42 0.11330653084159E-02 0.69459890205449E-06 -.38203079465048E+01 + 43 0.11610520215338E-02 0.72933585012034E-06 -.38203079534336E+01 + 44 0.11897300064657E-02 0.76580999523669E-06 -.38203079573817E+01 + 45 0.12191163376254E-02 0.80410821468427E-06 -.38203079582800E+01 + 46 0.12492285111647E-02 0.84432173047353E-06 -.38203079560545E+01 + 47 0.12800844553905E-02 0.88654632662373E-06 -.38203079506253E+01 + 48 0.13117025414386E-02 0.93088257730823E-06 -.38203079419067E+01 + 49 0.13441015942122E-02 0.97743608640903E-06 -.38203079298069E+01 + 50 0.13773009035892E-02 0.10263177390515E-05 -.38203079142279E+01 + 51 0.14113202359079E-02 0.10776439657180E-05 -.38203078950650E+01 + 52 0.14461798457348E-02 0.11315370195698E-05 -.38203078722064E+01 + 53 0.14819004879244E-02 0.11881252676380E-05 -.38203078455334E+01 + 54 0.15185034299762E-02 0.12475434965758E-05 -.38203078149197E+01 + 55 0.15560104646966E-02 0.13099332337024E-05 -.38203077802309E+01 + 56 0.15944439231746E-02 0.13754430841012E-05 -.38203077413247E+01 + 57 0.16338266880770E-02 0.14442290845765E-05 -.38203076980500E+01 + 58 0.16741822072725E-02 0.15164550753109E-05 -.38203076502466E+01 + 59 0.17155345077921E-02 0.15922930901094E-05 -.38203075977451E+01 + 60 0.17579082101346E-02 0.16719237661589E-05 -.38203075403663E+01 + 61 0.18013285429249E-02 0.17555367742795E-05 -.38203074779204E+01 + 62 0.18458213579352E-02 0.18433312706924E-05 -.38203074102071E+01 + 63 0.18914131454762E-02 0.19355163713799E-05 -.38203073370146E+01 + 64 0.19381310501694E-02 0.20323116501679E-05 -.38203072581194E+01 + 65 0.19860028871086E-02 0.21339476617166E-05 -.38203071732856E+01 + 66 0.20350571584202E-02 0.22406664906659E-05 -.38203070822641E+01 + 67 0.20853230702332E-02 0.23527223282421E-05 -.38203069847925E+01 + 68 0.21368305500679E-02 0.24703820777003E-05 -.38203068805940E+01 + 69 0.21896102646546E-02 0.25939259900441E-05 -.38203067693768E+01 + 70 0.22436936381916E-02 0.27236483315366E-05 -.38203066508334E+01 + 71 0.22991128710549E-02 0.28598580845928E-05 -.38203065246402E+01 + 72 0.23559009589700E-02 0.30028796837215E-05 -.38203063904561E+01 + 73 0.24140917126565E-02 0.31530537882716E-05 -.38203062479219E+01 + 74 0.24737197779592E-02 0.33107380938212E-05 -.38203060966596E+01 + 75 0.25348206564747E-02 0.34763081841428E-05 -.38203059362713E+01 + 76 0.25974307266897E-02 0.36501584257735E-05 -.38203057663383E+01 + 77 0.26615872656389E-02 0.38327029073209E-05 -.38203055864202E+01 + 78 0.27273284711002E-02 0.40243764257409E-05 -.38203053960533E+01 + 79 0.27946934843364E-02 0.42256355219376E-05 -.38203051947502E+01 + 80 0.28637224133995E-02 0.44369595681506E-05 -.38203049819982E+01 + 81 0.29344563570104E-02 0.46588519097191E-05 -.38203047572581E+01 + 82 0.30069374290286E-02 0.48918410639433E-05 -.38203045199630E+01 + 83 0.30812087835256E-02 0.51364819788963E-05 -.38203042695167E+01 + 84 0.31573146404787E-02 0.53933573551863E-05 -.38203040052927E+01 + 85 0.32353003120985E-02 0.56630790338144E-05 -.38203037266322E+01 + 86 0.33152122298073E-02 0.59462894534359E-05 -.38203034328429E+01 + 87 0.33970979718836E-02 0.62436631804922E-05 -.38203031231970E+01 + 88 0.34810062917891E-02 0.65559085158605E-05 -.38203027969297E+01 + 89 0.35669871471963E-02 0.68837691818441E-05 -.38203024532375E+01 + 90 0.36550917297320E-02 0.72280260935225E-05 -.38203020912756E+01 + 91 0.37453724954564E-02 0.75894992186790E-05 -.38203017101568E+01 + 92 0.38378831960942E-02 0.79690495307341E-05 -.38203013089487E+01 + 93 0.39326789110377E-02 0.83675810593359E-05 -.38203008866716E+01 + 94 0.40298160801404E-02 0.87860430434894E-05 -.38203004422964E+01 + 95 0.41293525373198E-02 0.92254321923525E-05 -.38202999747418E+01 + 96 0.42313475449916E-02 0.96867950590812E-05 -.38202994828720E+01 + 97 0.43358618293529E-02 0.10171230533376E-04 -.38202989654939E+01 + 98 0.44429576165379E-02 0.10679892458668E-04 -.38202984213540E+01 + 99 0.45526986696664E-02 0.11213992380165E-04 -.38202978491359E+01 + 100 0.46651503268072E-02 0.11774802430319E-04 -.38202972474567E+01 + 101 0.47803795398793E-02 0.12363658358567E-04 -.38202966148640E+01 + 102 0.48984549145143E-02 0.12981962712568E-04 -.38202959498321E+01 + 103 0.50194467509028E-02 0.13631188178509E-04 -.38202952507588E+01 + 104 0.51434270856501E-02 0.14312881088428E-04 -.38202945159612E+01 + 105 0.52704697346657E-02 0.15028665102913E-04 -.38202937436720E+01 + 106 0.54006503371119E-02 0.15780245077929E-04 -.38202929320350E+01 + 107 0.55340464004386E-02 0.16569411124998E-04 -.38202920791008E+01 + 108 0.56707373465294E-02 0.17398042874375E-04 -.38202911828222E+01 + 109 0.58108045589887E-02 0.18268113951389E-04 -.38202902410494E+01 + 110 0.59543314315957E-02 0.19181696676587E-04 -.38202892515245E+01 + 111 0.61014034179561E-02 0.20140967000880E-04 -.38202882118767E+01 + 112 0.62521080823797E-02 0.21148209687435E-04 -.38202871196162E+01 + 113 0.64065351520144E-02 0.22205823752636E-04 -.38202859721284E+01 + 114 0.65647765702692E-02 0.23316328179082E-04 -.38202847666678E+01 + 115 0.67269265515548E-02 0.24482367914203E-04 -.38202835003515E+01 + 116 0.68930816373782E-02 0.25706720168774E-04 -.38202821701519E+01 + 117 0.70633407538215E-02 0.26992301030319E-04 -.38202807728902E+01 + 118 0.72378052704409E-02 0.28342172407137E-04 -.38202793052283E+01 + 119 0.74165790606208E-02 0.29759549319478E-04 -.38202777636612E+01 + 120 0.75997685634181E-02 0.31247807555207E-04 -.38202761445083E+01 + 121 0.77874828469345E-02 0.32810491708187E-04 -.38202744439053E+01 + 122 0.79798336732538E-02 0.34451323618489E-04 -.38202726577941E+01 + 123 0.81769355649832E-02 0.36174211234515E-04 -.38202707819143E+01 + 124 0.83789058734383E-02 0.37983257918120E-04 -.38202688117920E+01 + 125 0.85858648485122E-02 0.39882772214846E-04 -.38202667427301E+01 + 126 0.87979357102704E-02 0.41877278112542E-04 -.38202645697965E+01 + 127 0.90152447223141E-02 0.43971525812724E-04 -.38202622878128E+01 + 128 0.92379212669553E-02 0.46170503040331E-04 -.38202598913418E+01 + 129 0.94660979222491E-02 0.48479446918741E-04 -.38202573746750E+01 + 130 0.96999105409286E-02 0.50903856438298E-04 -.38202547318184E+01 + 131 0.99394983312896E-02 0.53449505547995E-04 -.38202519564792E+01 + 132 0.10185003940072E-01 0.56122456901419E-04 -.38202490420501E+01 + 133 0.10436573537392E-01 0.58929076289658E-04 -.38202459815943E+01 + 134 0.10694356903766E-01 0.61876047795453E-04 -.38202427678286E+01 + 135 0.10958507519289E-01 0.64970389704618E-04 -.38202393931067E+01 + 136 0.11229182655015E-01 0.68219471212542E-04 -.38202358494006E+01 + 137 0.11506543466594E-01 0.71631029965464E-04 -.38202321282823E+01 + 138 0.11790755090219E-01 0.75213190478192E-04 -.38202282209031E+01 + 139 0.12081986740947E-01 0.78974483472015E-04 -.38202241179736E+01 + 140 0.12380411813449E-01 0.82923866178754E-04 -.38202198097412E+01 + 141 0.12686207985241E-01 0.87070743659135E-04 -.38202152859673E+01 + 142 0.12999557322476E-01 0.91424991186144E-04 -.38202105359033E+01 + 143 0.13320646388342E-01 0.95996977746465E-04 -.38202055482653E+01 + 144 0.13649666354134E-01 0.10079759071581E-03 -.38202003112074E+01 + 145 0.13986813113081E-01 0.10583826176669E-03 -.38201948122941E+01 + 146 0.14332287396974E-01 0.11113099407010E-03 -.38201890384710E+01 + 147 0.14686294895679E-01 0.11668839085564E-03 -.38201829760340E+01 + 148 0.15049046379602E-01 0.12252368539787E-03 -.38201766105976E+01 + 149 0.15420757825179E-01 0.12865077249988E-03 -.38201699270608E+01 + 150 0.15801650543460E-01 0.13508424154887E-03 -.38201629095720E+01 + 151 0.16191951311884E-01 0.14183941122199E-03 -.38201555414919E+01 + 152 0.16591892509287E-01 0.14893236592470E-03 -.38201478053545E+01 + 153 0.17001712254267E-01 0.15637999404796E-03 -.38201396828265E+01 + 154 0.17421654546947E-01 0.16420002813498E-03 -.38201311546647E+01 + 155 0.17851969414257E-01 0.17241108705239E-03 -.38201222006708E+01 + 156 0.18292913058789E-01 0.18103272026592E-03 -.38201127996446E+01 + 157 0.18744748011341E-01 0.19008545432520E-03 -.38201029293352E+01 + 158 0.19207743287221E-01 0.19959084166762E-03 -.38200925663885E+01 + 159 0.19682174546416E-01 0.20957151185679E-03 -.38200816862939E+01 + 160 0.20168324257712E-01 0.22005122537659E-03 -.38200702633272E+01 + 161 0.20666481866877E-01 0.23105493010802E-03 -.38200582704913E+01 + 162 0.21176943968989E-01 0.24260882062214E-03 -.38200456794540E+01 + 163 0.21700014485023E-01 0.25474040042916E-03 -.38200324604824E+01 + 164 0.22236004842803E-01 0.26747854733064E-03 -.38200185823753E+01 + 165 0.22785234162421E-01 0.28085358202877E-03 -.38200040123906E+01 + 166 0.23348029446232E-01 0.29489734015470E-03 -.38199887161714E+01 + 167 0.23924725773554E-01 0.30964324788548E-03 -.38199726576666E+01 + 168 0.24515666500161E-01 0.32512640132783E-03 -.38199557990493E+01 + 169 0.25121203462715E-01 0.34138364985551E-03 -.38199381006303E+01 + 170 0.25741697188244E-01 0.35845368359636E-03 -.38199195207685E+01 + 171 0.26377517108794E-01 0.37637712527470E-03 -.38199000157759E+01 + 172 0.27029041781381E-01 0.39519662662486E-03 -.38198795398197E+01 + 173 0.27696659113381E-01 0.41495696960218E-03 -.38198580448185E+01 + 174 0.28380766593482E-01 0.43570517262896E-03 -.38198354803347E+01 + 175 0.29081771528341E-01 0.45749060212435E-03 -.38198117934612E+01 + 176 0.29800091285091E-01 0.48036508957954E-03 -.38197869287039E+01 + 177 0.30536153539833E-01 0.50438305445215E-03 -.38197608278575E+01 + 178 0.31290396532266E-01 0.52960163316722E-03 -.38197334298771E+01 + 179 0.32063269326613E-01 0.55608081452615E-03 -.38197046707433E+01 + 180 0.32855232078981E-01 0.58388358183965E-03 -.38196744833211E+01 + 181 0.33666756311332E-01 0.61307606211595E-03 -.38196427972132E+01 + 182 0.34498325192221E-01 0.64372768265187E-03 -.38196095386063E+01 + 183 0.35350433824469E-01 0.67591133539082E-03 -.38195746301112E+01 + 184 0.36223589539934E-01 0.70970354942981E-03 -.38195379905951E+01 + 185 0.37118312201570E-01 0.74518467207548E-03 -.38194995350078E+01 + 186 0.38035134512949E-01 0.78243905886902E-03 -.38194591741995E+01 + 187 0.38974602335419E-01 0.82155527301943E-03 -.38194168147319E+01 + 188 0.39937275013103E-01 0.86262629470616E-03 -.38193723586804E+01 + 189 0.40923725705927E-01 0.90574974073384E-03 -.38193257034288E+01 + 190 0.41934541730864E-01 0.95102809504512E-03 -.38192767414556E+01 + 191 0.42970324911616E-01 0.99856895062161E-03 -.38192253601112E+01 + 192 0.44031691936933E-01 0.10484852633281E-02 -.38191714413869E+01 + 193 0.45119274727775E-01 0.11008956182815E-02 -.38191148616744E+01 + 194 0.46233720813551E-01 0.11559245093538E-02 -.38190554915161E+01 + 195 0.47375693717646E-01 0.12137026324459E-02 -.38189931953463E+01 + 196 0.48545873352472E-01 0.12743671932010E-02 -.38189278312221E+01 + 197 0.49744956424278E-01 0.13380622298551E-02 -.38188592505452E+01 + 198 0.50973656847957E-01 0.14049389519570E-02 -.38187872977732E+01 + 199 0.52232706172102E-01 0.14751560957225E-02 -.38187118101216E+01 + 200 0.53522854014553E-01 0.15488802968231E-02 -.38186326172549E+01 + 201 0.54844868508712E-01 0.16262864814481E-02 -.38185495409680E+01 + 202 0.56199536760877E-01 0.17075582765144E-02 -.38184623948574E+01 + 203 0.57587665318871E-01 0.17928884399403E-02 -.38183709839826E+01 + 204 0.59010080652247E-01 0.18824793119412E-02 -.38182751045168E+01 + 205 0.60467629644358E-01 0.19765432883472E-02 -.38181745433885E+01 + 206 0.61961180096573E-01 0.20753033169870E-02 -.38180690779134E+01 + 207 0.63491621244959E-01 0.21789934182324E-02 -.38179584754168E+01 + 208 0.65059864289709E-01 0.22878592308406E-02 -.38178424928474E+01 + 209 0.66666842937665E-01 0.24021585842866E-02 -.38177208763825E+01 + 210 0.68313513958225E-01 0.25221620988270E-02 -.38175933610260E+01 + 211 0.70000857752993E-01 0.26481538145911E-02 -.38174596701988E+01 + 212 0.71729878939492E-01 0.27804318510504E-02 -.38173195153237E+01 + 213 0.73501606949298E-01 0.29193090982753E-02 -.38171725954046E+01 + 214 0.75317096640945E-01 0.30651139414462E-02 -.38170185966023E+01 + 215 0.77177428927977E-01 0.32181910201487E-02 -.38168571918075E+01 + 216 0.79083711422498E-01 0.33789020240430E-02 -.38166880402133E+01 + 217 0.81037079094633E-01 0.35476265265645E-02 -.38165107868877E+01 + 218 0.83038694948271E-01 0.37247628583764E-02 -.38163250623501E+01 + 219 0.85089750713493E-01 0.39107290223660E-02 -.38161304821524E+01 + 220 0.87191467556116E-01 0.41059636520409E-02 -.38159266464677E+01 + 221 0.89345096804753E-01 0.43109270152584E-02 -.38157131396905E+01 + 222 0.91551920695830E-01 0.45261020652864E-02 -.38154895300502E+01 + 223 0.93813253137017E-01 0.47519955412728E-02 -.38152553692432E+01 + 224 0.96130440489501E-01 0.49891391202721E-02 -.38150101920854E+01 + 225 0.98504862369592E-01 0.52380906230511E-02 -.38147535161927E+01 + 226 0.10093793247012E+00 0.54994352759741E-02 -.38144848416909E+01 + 227 0.10343109940213E+00 0.57737870313396E-02 -.38142036509642E+01 + 228 0.10598584755737E+00 0.60617899486183E-02 -.38139094084451E+01 + 229 0.10860369799203E+00 0.63641196391141E-02 -.38136015604545E+01 + 230 0.11128620933244E+00 0.66814847766442E-02 -.38132795350987E+01 + 231 0.11403497870295E+00 0.70146286769045E-02 -.38129427422310E+01 + 232 0.11685164267691E+00 0.73643309482570E-02 -.38125905734870E+01 + 233 0.11973787825103E+00 0.77314092167389E-02 -.38122224024027E+01 + 234 0.12269540384383E+00 0.81167209281581E-02 -.38118375846270E+01 + 235 0.12572598031877E+00 0.85211652301941E-02 -.38114354582380E+01 + 236 0.12883141203265E+00 0.89456849374762E-02 -.38110153441765E+01 + 237 0.13201354790985E+00 0.93912685826532E-02 -.38105765468101E+01 + 238 0.13527428254323E+00 0.98589525565069E-02 -.38101183546411E+01 + 239 0.13861555732204E+00 0.10349823340184E-01 -.38096400411744E+01 + 240 0.14203936158790E+00 0.10865019832641E-01 -.38091408659613E+01 + 241 0.14554773381912E+00 0.11405735776386E-01 -.38086200758376E+01 + 242 0.14914276284445E+00 0.11973222284603E-01 -.38080769063737E+01 + 243 0.15282658908671E+00 0.12568790472703E-01 -.38075105835582E+01 + 244 0.15660140583715E+00 0.13193814197276E-01 -.38069203257354E+01 + 245 0.16046946056133E+00 0.13849732905390E-01 -.38063053458202E+01 + 246 0.16443305623719E+00 0.14538054597015E-01 -.38056648538143E+01 + 247 0.16849455272625E+00 0.15260358903275E-01 -.38049980596495E+01 + 248 0.17265636817859E+00 0.16018300283019E-01 -.38043041763847E+01 + 249 0.17692098047260E+00 0.16813611340034E-01 -.38035824237855E+01 + 250 0.18129092869027E+00 0.17648106262930E-01 -.38028320323160E+01 + 251 0.18576881462892E+00 0.18523684389463E-01 -.38020522475733E+01 + 252 0.19035730435026E+00 0.19442333896682E-01 -.38012423351980E+01 + 253 0.19505912976771E+00 0.20406135617882E-01 -.38004015862940E+01 + 254 0.19987709027297E+00 0.21417266986837E-01 -.37995293233914E+01 + 255 0.20481405440271E+00 0.22478006109228E-01 -.37986249069896E+01 + 256 0.20987296154646E+00 0.23590735960532E-01 -.37976877427158E+01 + 257 0.21505682369666E+00 0.24757948708850E-01 -.37967172891367E+01 + 258 0.22036872724197E+00 0.25982250160304E-01 -.37957130662600E+01 + 259 0.22581183480484E+00 0.27266364323643E-01 -.37946746647636E+01 + 260 0.23138938712452E+00 0.28613138089531E-01 -.37936017559890E+01 + 261 0.23710470498650E+00 0.30025546018719E-01 -.37924941027345E+01 + 262 0.24296119119967E+00 0.31506695231857E-01 -.37913515708832E+01 + 263 0.24896233262230E+00 0.33059830391971E-01 -.37901741418982E+01 + 264 0.25511170223807E+00 0.34688338768837E-01 -.37889619262127E+01 + 265 0.26141296128335E+00 0.36395755372280E-01 -.37877151775423E+01 + 266 0.26786986142705E+00 0.38185768139084E-01 -.37864343081379E+01 + 267 0.27448624700429E+00 0.40062223155470E-01 -.37851199049932E+01 + 268 0.28126605730530E+00 0.42029129894062E-01 -.37837727470122E+01 + 269 0.28821332892074E+00 0.44090666440851E-01 -.37823938231314E+01 + 270 0.29533219814508E+00 0.46251184683833E-01 -.37809843513794E+01 + 271 0.30262690343927E+00 0.48515215430646E-01 -.37795457988418E+01 + 272 0.31010178795422E+00 0.50887473417744E-01 -.37780799024806E+01 + 273 0.31776130211669E+00 0.53372862168190E-01 -.37765886907356E+01 + 274 0.32561000627897E+00 0.55976478649065E-01 -.37750745058093E+01 + 275 0.33365257343406E+00 0.58703617672692E-01 -.37735400265062E+01 + 276 0.34189379199788E+00 0.61559775978246E-01 -.37719882914607E+01 + 277 0.35033856866023E+00 0.64550655921764E-01 -.37704227225441E+01 + 278 0.35899193130614E+00 0.67682168693045E-01 -.37688471481912E+01 + 279 0.36785903200940E+00 0.70960436967220E-01 -.37672658263285E+01 + 280 0.37694515010003E+00 0.74391796886864E-01 -.37656834665159E+01 + 281 0.38625569530750E+00 0.77982799257163E-01 -.37641052508345E+01 + 282 0.39579621098160E+00 0.81740209821773E-01 -.37625368529612E+01 + 283 0.40557237739284E+00 0.85671008470399E-01 -.37609844547643E+01 + 284 0.41559001511444E+00 0.89782387210611E-01 -.37594547596303E+01 + 285 0.42585508848777E+00 0.94081746715801E-01 -.37579550015967E+01 + 286 0.43637370917342E+00 0.98576691238253E-01 -.37564929492028E+01 + 287 0.44715213979000E+00 0.10327502165085E+00 -.37550769027923E+01 + 288 0.45819679764282E+00 0.10818472635271E+00 -.37537156837993E+01 + 289 0.46951425854459E+00 0.11331396974280E+00 -.37524186143207E+01 + 290 0.48111126073064E+00 0.11867107793114E+00 -.37511954850238E+01 + 291 0.49299470887069E+00 0.12426452131930E+00 -.37500565091558E+01 + 292 0.50517167817980E+00 0.13010289364015E+00 -.37490122601132E+01 + 293 0.51764941863084E+00 0.13619488700183E+00 -.37480735896853E+01 + 294 0.53043535927102E+00 0.14254926243112E+00 -.37472515237214E+01 + 295 0.54353711264501E+00 0.14917481535854E+00 -.37465571315702E+01 + 296 0.55696247932735E+00 0.15608033543053E+00 -.37460013652255E+01 + 297 0.57071945256673E+00 0.16327455997359E+00 -.37455948636635E+01 + 298 0.58481622304513E+00 0.17076612037199E+00 -.37453477174125E+01 + 299 0.59926118375434E+00 0.17856348055557E+00 -.37452691879324E+01 + 300 0.61406293499308E+00 0.18667486672799E+00 -.37453673759414E+01 + 301 0.62923028948740E+00 0.19510818740125E+00 -.37456488324096E+01 + 302 0.64477227763774E+00 0.20387094274082E+00 -.37461181055788E+01 + 303 0.66069815289540E+00 0.21297012217189E+00 -.37467772170882E+01 + 304 0.67701739727191E+00 0.22241208915398E+00 -.37476250601349E+01 + 305 0.69373972698453E+00 0.23220245200548E+00 -.37486567126124E+01 + 306 0.71087509824105E+00 0.24234591965738E+00 -.37498626584250E+01 + 307 0.72843371316760E+00 0.25284614124616E+00 -.37512279107325E+01 + 308 0.74642602588284E+00 0.26370552852987E+00 -.37527310318379E+01 + 309 0.76486274872215E+00 0.27492506024215E+00 -.37543430458929E+01 + 310 0.78375485861558E+00 0.28650406770091E+00 -.37560262426974E+01 + 311 0.80311360362339E+00 0.29844000128127E+00 -.37577328737618E+01 + 312 0.82295050963289E+00 0.31072817776483E+00 -.37594037456599E+01 + 313 0.84327738722082E+00 0.32336150911353E+00 -.37609667207395E+01 + 314 0.86410633868517E+00 0.33633021391121E+00 -.37623351417103E+01 + 315 0.88544976525070E+00 0.34962151359412E+00 -.37634062047504E+01 + 316 0.90732037445239E+00 0.36321931667934E+00 -.37640593158543E+01 + 317 0.92973118770136E+00 0.37710389551931E+00 -.37641544774760E+01 + 318 0.95269554803758E+00 0.39125156167706E+00 -.37635307673912E+01 + 319 0.97622712807411E+00 0.40563434783802E+00 -.37620049893653E+01 + 320 0.10003399381375E+01 0.42021970623827E+00 -.37593705958449E+01 + 321 0.10250483346095E+01 0.43497023586619E+00 -.37553970065292E+01 + 322 0.10503670284744E+01 0.44984345311819E+00 -.37498294731154E+01 + 323 0.10763110940777E+01 0.46479162305818E+00 -.37423896692182E+01 + 324 0.11028959781014E+01 0.47976167078803E+00 -.37327772143573E+01 + 325 0.11301375087605E+01 0.49469519446929E+00 -.37206723702257E+01 + 326 0.11580519052269E+01 0.50952860296043E+00 -.37057401734647E+01 + 327 0.11866557872860E+01 0.52419340149271E+00 -.36876362879071E+01 + 328 0.12159661852320E+01 0.53861664787528E+00 -.36660148652262E+01 + 329 0.12460005500072E+01 0.55272159890872E+00 -.36405386887855E+01 + 330 0.12767767635924E+01 0.56642856147873E+00 -.36108918317568E+01 + 331 0.13083131496531E+01 0.57965595468987E+00 -.35767949753464E+01 + 332 0.13406284844496E+01 0.59232157795510E+00 -.35380233916434E+01 + 333 0.13737420080155E+01 0.60434406492425E+00 -.34944273804429E+01 + 334 0.14076734356135E+01 0.61564448455470E+00 -.34459546388757E+01 + 335 0.14424429694731E+01 0.62614802899276E+00 -.33926736099613E+01 + 336 0.14780713108191E+01 0.63578570438159E+00 -.33347962665058E+01 + 337 0.15145796721963E+01 0.64449591725401E+00 -.32726979924814E+01 + 338 0.15519897900996E+01 0.65222582898104E+00 -.32069311570653E+01 + 339 0.15903239379150E+01 0.65893233854010E+00 -.31382275372470E+01 + 340 0.16296049391815E+01 0.66458255639242E+00 -.30674827873430E+01 + 341 0.16698561811793E+01 0.66915365904897E+00 -.29957135105214E+01 + 342 0.17111016288544E+01 0.67263207835087E+00 -.29239748903661E+01 + 343 0.17533658390872E+01 0.67501210043636E+00 -.28532241529404E+01 + 344 0.17966739753126E+01 0.67629415332485E+00 -.27841072730304E+01 + 345 0.18410518225028E+01 0.67648334501213E+00 -.27167439702996E+01 + 346 0.18865258025186E+01 0.67558883934696E+00 -.26510613298726E+01 + 347 0.19331229898409E+01 0.67362386740805E+00 -.25870067935138E+01 + 348 0.19808711276899E+01 0.67060562516309E+00 -.25245314545100E+01 + 349 0.20297986445439E+01 0.66655509758932E+00 -.24635895339570E+01 + 350 0.20799346710641E+01 0.66149690424759E+00 -.24041379415823E+01 + 351 0.21313090574394E+01 0.65545911423631E+00 -.23461359088252E+01 + 352 0.21839523911581E+01 0.64847304520215E+00 -.22895446832767E+01 + 353 0.22378960152197E+01 0.64057304802325E+00 -.22343272749205E+01 + 354 0.22931720467957E+01 0.63179628011592E+00 -.21804482458700E+01 + 355 0.23498133963515E+01 0.62218247018538E+00 -.21278735364407E+01 + 356 0.24078537872414E+01 0.61177367704894E+00 -.20765703214285E+01 + 357 0.24673277757863E+01 0.60061404493941E+00 -.20265068913789E+01 + 358 0.25282707718482E+01 0.58874955744189E+00 -.19776525544369E+01 + 359 0.25907190599128E+01 0.57622779194190E+00 -.19299775550679E+01 + 360 0.26547098206927E+01 0.56309767617483E+00 -.18834530065460E+01 + 361 0.27202811532638E+01 0.54940924817794E+00 -.18380508346311E+01 + 362 0.27874720977494E+01 0.53521342066889E+00 -.17937437302970E+01 + 363 0.28563226585638E+01 0.52056175061215E+00 -.17505051097563E+01 + 364 0.29268738282303E+01 0.50550621449827E+00 -.17083090803437E+01 + 365 0.29991676117876E+01 0.49009898991112E+00 -.16671304110893E+01 + 366 0.30732470517988E+01 0.47439224224398E+00 -.16269445070379E+01 + 367 0.31491562539782E+01 0.45843791917484E+00 -.15877273865535E+01 + 368 0.32269404134515E+01 0.44228755022726E+00 -.15494556610041E+01 + 369 0.33066458416637E+01 0.42599205259510E+00 -.15121065163435E+01 + 370 0.33883199939528E+01 0.40960154284027E+00 -.14756576962114E+01 + 371 0.34720114978035E+01 0.39316515435837E+00 -.14400874862538E+01 + 372 0.35577701817992E+01 0.37673086056761E+00 -.14053746994306E+01 + 373 0.36456471052896E+01 0.36034530386593E+00 -.13714986621330E+01 + 374 0.37356945887903E+01 0.34405363051399E+00 -.13384392009682E+01 + 375 0.38279662451334E+01 0.32789933173199E+00 -.13061766301102E+01 + 376 0.39225170113882E+01 0.31192409143888E+00 -.12746917391306E+01 + 377 0.40194031815695E+01 0.29616764120766E+00 -.12439657812515E+01 + 378 0.41186824401543E+01 0.28066762315185E+00 -.12139804619715E+01 + 379 0.42204138964261E+01 0.26545946159056E+00 -.11847179280288E+01 + 380 0.43246581196678E+01 0.25057624445497E+00 -.11561607566757E+01 + 381 0.44314771752236E+01 0.23604861549295E+00 -.11282919452406E+01 + 382 0.45409346614516E+01 0.22190467839458E+00 -.11010949009631E+01 + 383 0.46530957475895E+01 0.20816991399564E+00 -.10745534310878E+01 + 384 0.47680272125549E+01 0.19486711171490E+00 -.10486517332061E+01 + 385 0.48857974847050E+01 0.18201631634239E+00 -.10233743858363E+01 + 386 0.50064766825773E+01 0.16963479121749E+00 -.99870633923556E+00 + 387 0.51301366566369E+01 0.15773699871883E+00 -.97463290643499E+00 + 388 0.52568510320558E+01 0.14633459883295E+00 -.95113975449285E+00 + 389 0.53866952525476E+01 0.13543646637838E+00 -.92821289595944E+00 + 390 0.55197466252855E+01 0.12504872723980E+00 -.90583868054825E+00 + 391 0.56560843669301E+01 0.11517481371836E+00 -.88400378700832E+00 + 392 0.57957896507933E+01 0.10581553883454E+00 -.86269521519265E+00 + 393 0.59389456551679E+01 0.96969189136576E-01 -.84190027831799E+00 + 394 0.60856376128505E+01 0.88631635276968E-01 -.82160659541124E+00 + 395 0.62359528618879E+01 0.80796459331104E-01 -.80180208393793E+00 + 396 0.63899808975765E+01 0.73455097552325E-01 -.78247495260848E+00 + 397 0.65478134257467E+01 0.66596996996017E-01 -.76361369435783E+00 + 398 0.67095444173626E+01 0.60209784208490E-01 -.74520707949432E+00 + 399 0.68752701644715E+01 0.54279443971861E-01 -.72724414901368E+00 + 400 0.70450893375339E+01 0.48790505929867E-01 -.70971420807425E+00 + 401 0.72191030441710E+01 0.43726236796602E-01 -.69260681962940E+00 + 402 0.73974148893620E+01 0.39068835774147E-01 -.67591179821353E+00 + 403 0.75801310371293E+01 0.34799630778208E-01 -.65961920387775E+00 + 404 0.77673602737464E+01 0.30899273093811E-01 -.64371933627183E+00 + 405 0.79592140725079E+01 0.27347928154952E-01 -.62820272886877E+00 + 406 0.81558066600989E+01 0.24125460260413E-01 -.61306014332856E+00 + 407 0.83572550846033E+01 0.21211609198971E-01 -.59828256399781E+00 + 408 0.85636792851930E+01 0.18586156955940E-01 -.58386119254202E+00 + 409 0.87752021635373E+01 0.16229082903291E-01 -.56978744270716E+00 + 410 0.89919496569766E+01 0.14120706130803E-01 -.55605293520753E+00 + 411 0.92140508135040E+01 0.12241813848424E-01 -.54264949273693E+00 + 412 0.94416378685975E+01 0.10573775072778E-01 -.52956913509996E+00 + 413 0.96748463239519E+01 0.90986390960939E-02 -.51680407446078E+00 + 414 0.99138150281535E+01 0.77992185164929E-02 -.50434671070633E+00 + 415 0.10158686259349E+02 0.66591568779610E-02 -.49218962692137E+00 + 416 0.10409605809955E+02 0.56629812204404E-02 -.48032558497255E+00 + 417 0.10666723073461E+02 0.47961400702326E-02 -.46874752119893E+00 + 418 0.10930191133375E+02 0.40450276041634E-02 -.45744854220643E+00 + 419 0.11200166854370E+02 0.33969948946387E-02 -.44642192076357E+00 + 420 0.11476810975672E+02 0.28403492847660E-02 -.43566109179620E+00 + 421 0.11760288206772E+02 0.23643430521421E-02 -.42515964847878E+00 + 422 0.12050767325479E+02 0.19591525966796E-02 -.41491133841981E+00 + 423 0.12348421278418E+02 0.16158494328574E-02 -.40491005993930E+00 + 424 0.12653427283995E+02 0.13263642817041E-02 -.39514985843594E+00 + 425 0.12965966937910E+02 0.10834455450008E-02 -.38562492284174E+00 + 426 0.13286226321276E+02 0.88061340650275E-03 -.37632958216233E+00 + 427 0.13614396111412E+02 0.71211074569801E-03 -.36725830210045E+00 + 428 0.13950671695363E+02 0.57285197227615E-03 -.35840568176095E+00 + 429 0.14295253286239E+02 0.45837079772840E-03 -.34976645043520E+00 + 430 0.14648346042409E+02 0.36476785800643E-03 -.34133546446297E+00 + 431 0.15010160189657E+02 0.28865899149177E-03 -.33310770416997E+00 + 432 0.15380911146341E+02 0.22712486304402E-03 -.32507827087925E+00 + 433 0.15760819651656E+02 0.17766251070651E-03 -.31724238399458E+00 + 434 0.16150111897052E+02 0.13813927953288E-03 -.30959537815418E+00 + 435 0.16549019660909E+02 0.10674949936767E-03 -.30213270045299E+00 + 436 0.16957780446533E+02 0.81974162287946E-04 -.29484990773201E+00 + 437 0.17376637623563E+02 0.62543762403391E-04 -.28774266393286E+00 + 438 0.17805840572865E+02 0.47404377027221E-04 -.28080673751621E+00 + 439 0.18245644835014E+02 0.35686994685652E-04 -.27403799894234E+00 + 440 0.18696312262439E+02 0.26680032474553E-04 -.26743241821249E+00 + 441 0.19158111175321E+02 0.19804933001108E-04 -.26098606246949E+00 + 442 0.19631316521352E+02 0.14594689376946E-04 -.25469509365618E+00 + 443 0.20116210039429E+02 0.10675114947048E-04 -.24855576623030E+00 + 444 0.20613080427403E+02 0.77486521955206E-05 -.24256442493442E+00 + 445 0.21122223513960E+02 0.55805005734099E-05 -.23671750261971E+00 + 446 0.21643942434755E+02 0.39868407759368E-05 -.23101151812209E+00 + 447 0.22178547812893E+02 0.28249165051138E-05 -.22544307418961E+00 + 448 0.22726357943872E+02 0.19847867062356E-05 -.22000885545975E+00 + 449 0.23287698985085E+02 0.13824958477580E-05 -.21470562648556E+00 + 450 0.23862905150017E+02 0.95447259998717E-06 -.20953022980927E+00 + 451 0.24452318907222E+02 0.65300574355856E-06 -.20447958408243E+00 + 452 0.25056291184231E+02 0.44261474595818E-06 -.19955068223132E+00 + 453 0.25675181576481E+02 0.29715911824097E-06 -.19474058966656E+00 + 454 0.26309358561420E+02 0.19756179831828E-06 -.19004644253592E+00 + 455 0.26959199717887E+02 0.13003534661672E-06 -.18546544601924E+00 + 456 0.27625091950919E+02 0.84714068023387E-07 -.18099487266443E+00 + 457 0.28307431722107E+02 0.54610191098116E-07 -.17663206076357E+00 + 458 0.29006625285643E+02 0.34825826713567E-07 -.17237441276820E+00 + 459 0.29723088930198E+02 0.21964502802656E-07 -.16821939374275E+00 + 460 0.30457249226774E+02 0.13696611894100E-07 -.16416452985533E+00 + 461 0.31209543282676E+02 0.84421545401521E-08 -.16020740690478E+00 + 462 0.31980419001758E+02 0.51418001664523E-08 -.15634566888336E+00 + 463 0.32770335351101E+02 0.30936341014897E-08 -.15257701657398E+00 + 464 0.33579762634273E+02 0.18381515037178E-08 -.14889920618130E+00 + 465 0.34409182771340E+02 0.10782402892539E-08 -.14531004799581E+00 + 466 0.35259089585792E+02 0.62421101392678E-09 -.14180740509008E+00 + 467 0.36129989098561E+02 0.35652087793689E-09 -.13838919204653E+00 + 468 0.37022399829296E+02 0.20082992836310E-09 -.13505337371575E+00 + 469 0.37936853105079E+02 0.11153471547753E-09 -.13179796400483E+00 + 470 0.38873893376775E+02 0.61048361813582E-10 -.12862102469487E+00 + 471 0.39834078543181E+02 0.32919896703764E-10 -.12552066428698E+00 + 472 0.40817980283197E+02 0.17482260749279E-10 -.12249503687614E+00 + 473 0.41826184396192E+02 0.91388999165028E-11 -.11954234105215E+00 + 474 0.42859291150778E+02 0.47005988863070E-11 -.11666081882712E+00 + 475 0.43917915642203E+02 0.00000000000000E+00 -.11384875458878E+00 + 476 0.45002688158565E+02 0.00000000000000E+00 -.11110447407903E+00 + 477 0.46114254556082E+02 0.00000000000000E+00 -.10842634339712E+00 + 478 0.47253276643617E+02 0.00000000000000E+00 -.10581276802686E+00 + 479 0.48420432576714E+02 0.00000000000000E+00 -.10326219188724E+00 + 480 0.49616417261359E+02 0.00000000000000E+00 -.10077309640601E+00 + 481 0.50841942767714E+02 0.00000000000000E+00 -.98343999615510E-01 + 482 0.52097738754077E+02 0.00000000000000E+00 -.95973455270333E-01 + 483 0.53384552901303E+02 0.00000000000000E+00 -.93660051986272E-01 + 484 0.54703151357965E+02 0.00000000000000E+00 -.91402412399992E-01 + 485 0.56054319196507E+02 0.00000000000000E+00 -.89199192348972E-01 + 486 0.57438860880660E+02 0.00000000000000E+00 -.87049080071213E-01 + 487 0.58857600744413E+02 0.00000000000000E+00 -.84950795424235E-01 + 488 0.60311383482800E+02 0.00000000000000E+00 -.82903089122899E-01 + 489 0.61801074654825E+02 0.00000000000000E+00 -.80904741995608E-01 + 490 0.63327561198799E+02 0.00000000000000E+00 -.78954564258425E-01 + 491 0.64891751960409E+02 0.00000000000000E+00 -.77051394806699E-01 + 492 0.66494578233831E+02 0.00000000000000E+00 -.75194100523762E-01 + 493 0.68136994316207E+02 0.00000000000000E+00 -.73381575606287E-01 + 494 0.69819978075817E+02 0.00000000000000E+00 -.71612740905911E-01 + 495 0.71544531534290E+02 0.00000000000000E+00 -.69886543286729E-01 + 496 0.73311681463187E+02 0.00000000000000E+00 -.68201954998271E-01 + 497 0.75122479995328E+02 0.00000000000000E+00 -.66557973063601E-01 + 498 0.76978005251212E+02 0.00000000000000E+00 -.64953618682151E-01 + 499 0.78879361980917E+02 0.00000000000000E+00 -.63387936646971E-01 +499 0.10247000000000E+01 + 1 0.41666666666667E-03 0.76288133279402E-10 -.83880694099353E+01 + 2 0.42695833333333E-03 0.82081861439996E-10 -.83880695268840E+01 + 3 0.43750420416667E-03 0.88315596251112E-10 -.83880696406333E+01 + 4 0.44831055800958E-03 0.95022754167084E-10 -.83880697512411E+01 + 5 0.45938382879242E-03 0.10223929471111E-09 -.83880698587633E+01 + 6 0.47073060936359E-03 0.11000389813886E-09 -.83880699632531E+01 + 7 0.48235765541487E-03 0.11835818724534E-09 -.83880700647618E+01 + 8 0.49427188950362E-03 0.12734694593368E-09 -.83880701633379E+01 + 9 0.50648040517436E-03 0.13701835922746E-09 -.83880702590280E+01 + 10 0.51899047118217E-03 0.14742427157814E-09 -.83880703518761E+01 + 11 0.53180953582037E-03 0.15862046478125E-09 -.83880704419238E+01 + 12 0.54494523135513E-03 0.17066695699921E-09 -.83880705292107E+01 + 13 0.55840537856960E-03 0.18362832449339E-09 -.83880706137737E+01 + 14 0.57219799142027E-03 0.19757404779026E-09 -.83880706956474E+01 + 15 0.58633128180835E-03 0.21257888413712E-09 -.83880707748642E+01 + 16 0.60081366446902E-03 0.22872326824409E-09 -.83880708514539E+01 + 17 0.61565376198140E-03 0.24609374346056E-09 -.83880709254440E+01 + 18 0.63086040990234E-03 0.26478342569732E-09 -.83880709968594E+01 + 19 0.64644266202693E-03 0.28489250258139E-09 -.83880710657226E+01 + 20 0.66240979577900E-03 0.30652877051924E-09 -.83880711320536E+01 + 21 0.67877131773474E-03 0.32980821254730E-09 -.83880711958698E+01 + 22 0.69553696928278E-03 0.35485562006746E-09 -.83880712571861E+01 + 23 0.71271673242407E-03 0.38180526180029E-09 -.83880713160146E+01 + 24 0.73032083571494E-03 0.41080160354199E-09 -.83880713723647E+01 + 25 0.74835976035710E-03 0.44200008258334E-09 -.83880714262432E+01 + 26 0.76684424643792E-03 0.47556794094191E-09 -.83880714776540E+01 + 27 0.78578529932494E-03 0.51168512187423E-09 -.83880715265980E+01 + 28 0.80519419621827E-03 0.55054523447344E-09 -.83880715730735E+01 + 29 0.82508249286486E-03 0.59235659152348E-09 -.83880716170753E+01 + 30 0.84546203043862E-03 0.63734332617296E-09 -.83880716585955E+01 + 31 0.86634494259045E-03 0.68574659341494E-09 -.83880716976228E+01 + 32 0.88774366267244E-03 0.73782586281287E-09 -.83880717341427E+01 + 33 0.90967093114045E-03 0.79386030940264E-09 -.83880717681373E+01 + 34 0.93213980313961E-03 0.85415031022646E-09 -.83880717995852E+01 + 35 0.95516365627716E-03 0.91901905452089E-09 -.83880718284613E+01 + 36 0.97875619858721E-03 0.98881427619028E-09 -.83880718547370E+01 + 37 0.10029314766923E-02 0.10639101178527E-08 -.83880718783797E+01 + 38 0.10277038841666E-02 0.11447091364502E-08 -.83880718993529E+01 + 39 0.10530881701055E-02 0.12316444611753E-08 -.83880719176159E+01 + 40 0.10790994479071E-02 0.13251821152798E-08 -.83880719331238E+01 + 41 0.11057532042704E-02 0.14258235142131E-08 -.83880719458272E+01 + 42 0.11330653084159E-02 0.15341081534808E-08 -.83880719556722E+01 + 43 0.11610520215338E-02 0.16506165006321E-08 -.83880719626000E+01 + 44 0.11897300064657E-02 0.17759731068769E-08 -.83880719665469E+01 + 45 0.12191163376254E-02 0.19108499550143E-08 -.83880719674441E+01 + 46 0.12492285111647E-02 0.20559700616176E-08 -.83880719652173E+01 + 47 0.12800844553905E-02 0.22121113527851E-08 -.83880719597866E+01 + 48 0.13117025414386E-02 0.23801108342327E-08 -.83880719510663E+01 + 49 0.13441015942122E-02 0.25608690780815E-08 -.83880719389648E+01 + 50 0.13773009035892E-02 0.27553550503916E-08 -.83880719233838E+01 + 51 0.14113202359079E-02 0.29646113053189E-08 -.83880719042186E+01 + 52 0.14461798457348E-02 0.31897595737388E-08 -.83880718813577E+01 + 53 0.14819004879244E-02 0.34320067762922E-08 -.83880718546820E+01 + 54 0.15185034299762E-02 0.36926514930878E-08 -.83880718240654E+01 + 55 0.15560104646966E-02 0.39730909247388E-08 -.83880717893734E+01 + 56 0.15944439231746E-02 0.42748283820483E-08 -.83880717504636E+01 + 57 0.16338266880770E-02 0.45994813444912E-08 -.83880717071849E+01 + 58 0.16741822072725E-02 0.49487901306869E-08 -.83880716593772E+01 + 59 0.17155345077921E-02 0.53246272273403E-08 -.83880716068710E+01 + 60 0.17579082101346E-02 0.57290073266569E-08 -.83880715494869E+01 + 61 0.18013285429249E-02 0.61640981260346E-08 -.83880714870352E+01 + 62 0.18458213579352E-02 0.66322319479209E-08 -.83880714193155E+01 + 63 0.18914131454762E-02 0.71359182421220E-08 -.83880713461160E+01 + 64 0.19381310501694E-02 0.76778570375775E-08 -.83880712672130E+01 + 65 0.19860028871086E-02 0.82609534157056E-08 -.83880711823705E+01 + 66 0.20350571584202E-02 0.88883330828975E-08 -.83880710913396E+01 + 67 0.20853230702332E-02 0.95633591256333E-08 -.83880709938576E+01 + 68 0.21368305500679E-02 0.10289650038028E-07 -.83880708896475E+01 + 69 0.21896102646546E-02 0.11071099118437E-07 -.83880707784176E+01 + 70 0.22436936381916E-02 0.11911895339091E-07 -.83880706598603E+01 + 71 0.22991128710549E-02 0.12816545800617E-07 -.83880705336517E+01 + 72 0.23559009589700E-02 0.13789899891810E-07 -.83880703994505E+01 + 73 0.24140917126565E-02 0.14837175284144E-07 -.83880702568975E+01 + 74 0.24737197779592E-02 0.15963985900362E-07 -.83880701056145E+01 + 75 0.25348206564747E-02 0.17176372007042E-07 -.83880699452035E+01 + 76 0.25974307266897E-02 0.18480832592447E-07 -.83880697752454E+01 + 77 0.26615872656389E-02 0.19884360203184E-07 -.83880695952995E+01 + 78 0.27273284711002E-02 0.21394478426410E-07 -.83880694049020E+01 + 79 0.27946934843364E-02 0.23019282218464E-07 -.83880692035652E+01 + 80 0.28637224133995E-02 0.24767481296090E-07 -.83880689907761E+01 + 81 0.29344563570104E-02 0.26648446822810E-07 -.83880687659950E+01 + 82 0.30069374290286E-02 0.28672261640670E-07 -.83880685286546E+01 + 83 0.30812087835256E-02 0.30849774316585E-07 -.83880682781586E+01 + 84 0.31573146404787E-02 0.33192657292954E-07 -.83880680138796E+01 + 85 0.32353003120985E-02 0.35713469454193E-07 -.83880677351585E+01 + 86 0.33152122298073E-02 0.38425723444521E-07 -.83880674413024E+01 + 87 0.33970979718836E-02 0.41343958097780E-07 -.83880671315829E+01 + 88 0.34810062917891E-02 0.44483816367468E-07 -.83880668052344E+01 + 89 0.35669871471963E-02 0.47862129174633E-07 -.83880664614526E+01 + 90 0.36550917297320E-02 0.51497005622995E-07 -.83880660993921E+01 + 91 0.37453724954564E-02 0.55407930064766E-07 -.83880657181645E+01 + 92 0.38378831960942E-02 0.59615866537367E-07 -.83880653168364E+01 + 93 0.39326789110377E-02 0.64143371130708E-07 -.83880648944270E+01 + 94 0.40298160801404E-02 0.69014712887212E-07 -.83880644499059E+01 + 95 0.41293525373198E-02 0.74256003882464E-07 -.83880639821905E+01 + 96 0.42313475449916E-02 0.79895339183564E-07 -.83880634901434E+01 + 97 0.43358618293529E-02 0.85962947435177E-07 -.83880629725697E+01 + 98 0.44429576165379E-02 0.92491352880209E-07 -.83880624282143E+01 + 99 0.45526986696664E-02 0.99515549683296E-07 -.83880618557586E+01 + 100 0.46651503268072E-02 0.10707318949121E-06 -.83880612538174E+01 + 101 0.47803795398793E-02 0.11520478323516E-06 -.83880606209358E+01 + 102 0.48984549145143E-02 0.12395391825633E-06 -.83880599555854E+01 + 103 0.50194467509028E-02 0.13336749191793E-06 -.83880592561609E+01 + 104 0.51434270856501E-02 0.14349596295558E-06 -.83880585209761E+01 + 105 0.52704697346657E-02 0.15439362191254E-06 -.83880577482600E+01 + 106 0.54006503371119E-02 0.16611888210883E-06 -.83880569361523E+01 + 107 0.55340464004386E-02 0.17873459270299E-06 -.83880560826992E+01 + 108 0.56707373465294E-02 0.19230837552379E-06 -.83880551858485E+01 + 109 0.58108045589887E-02 0.20691298747623E-06 -.83880542434448E+01 + 110 0.59543314315957E-02 0.22262671046331E-06 -.83880532532245E+01 + 111 0.61014034179561E-02 0.23953377091234E-06 -.83880522128099E+01 + 112 0.62521080823797E-02 0.25772479115298E-06 -.83880511197039E+01 + 113 0.64065351520144E-02 0.27729727506483E-06 -.83880499712840E+01 + 114 0.65647765702692E-02 0.29835613059587E-06 -.83880487647958E+01 + 115 0.67269265515548E-02 0.32101423195025E-06 -.83880474973464E+01 + 116 0.68930816373782E-02 0.34539302445653E-06 -.83880461658976E+01 + 117 0.70633407538215E-02 0.37162317535566E-06 -.83880447672586E+01 + 118 0.72378052704409E-02 0.39984527399394E-06 -.83880432980782E+01 + 119 0.74165790606208E-02 0.43021058517057E-06 -.83880417548368E+01 + 120 0.75997685634181E-02 0.46288185967361E-06 -.83880401338381E+01 + 121 0.77874828469345E-02 0.49803420634457E-06 -.83880384311998E+01 + 122 0.79798336732538E-02 0.53585603034069E-06 -.83880366428449E+01 + 123 0.81769355649832E-02 0.57655004261814E-06 -.83880347644912E+01 + 124 0.83789058734383E-02 0.62033434604067E-06 -.83880327916415E+01 + 125 0.85858648485122E-02 0.66744360392755E-06 -.83880307195724E+01 + 126 0.87979357102704E-02 0.71813029729595E-06 -.83880285433234E+01 + 127 0.90152447223141E-02 0.77266607752697E-06 -.83880262576844E+01 + 128 0.92379212669553E-02 0.83134322169473E-06 -.83880238571833E+01 + 129 0.94660979222491E-02 0.89447619834689E-06 -.83880213360732E+01 + 130 0.96999105409286E-02 0.96240335211512E-06 -.83880186883178E+01 + 131 0.99394983312896E-02 0.10354887161693E-05 -.83880159075775E+01 + 132 0.10185003940072E-01 0.11141239622125E-05 -.83880129871936E+01 + 133 0.10436573537392E-01 0.11987304984479E-05 -.83880099201725E+01 + 134 0.10694356903766E-01 0.12897617267403E-05 -.83880066991685E+01 + 135 0.10958507519289E-01 0.13877054710448E-05 -.83880033164662E+01 + 136 0.11229182655015E-01 0.14930865900887E-05 -.83879997639616E+01 + 137 0.11506543466594E-01 0.16064697882777E-05 -.83879960331427E+01 + 138 0.11790755090219E-01 0.17284626398558E-05 -.83879921150685E+01 + 139 0.12081986740947E-01 0.18597188424842E-05 -.83879880003475E+01 + 140 0.12380411813449E-01 0.20009417176314E-05 -.83879836791148E+01 + 141 0.12686207985241E-01 0.21528879764806E-05 -.83879791410079E+01 + 142 0.12999557322476E-01 0.23163717714786E-05 -.83879743751415E+01 + 143 0.13320646388342E-01 0.24922690551722E-05 -.83879693700811E+01 + 144 0.13649666354134E-01 0.26815222696153E-05 -.83879641138148E+01 + 145 0.13986813113081E-01 0.28851453913930E-05 -.83879585937240E+01 + 146 0.14332287396974E-01 0.31042293592021E-05 -.83879527965524E+01 + 147 0.14686294895679E-01 0.33399479129649E-05 -.83879467083734E+01 + 148 0.15049046379602E-01 0.35935638756435E-05 -.83879403145562E+01 + 149 0.15420757825179E-01 0.38664359112790E-05 -.83879335997292E+01 + 150 0.15801650543460E-01 0.41600257953108E-05 -.83879265477428E+01 + 151 0.16191951311884E-01 0.44759062359585E-05 -.83879191416287E+01 + 152 0.16591892509287E-01 0.48157692883751E-05 -.83879113635585E+01 + 153 0.17001712254267E-01 0.51814354064304E-05 -.83879031947994E+01 + 154 0.17421654546947E-01 0.55748631803714E-05 -.83878946156675E+01 + 155 0.17851969414257E-01 0.59981598122444E-05 -.83878856054788E+01 + 156 0.18292913058789E-01 0.64535923848804E-05 -.83878761424977E+01 + 157 0.18744748011341E-01 0.69435999844506E-05 -.83878662038827E+01 + 158 0.19207743287221E-01 0.74708067411263E-05 -.83878557656290E+01 + 159 0.19682174546416E-01 0.80380358572365E-05 -.83878448025084E+01 + 160 0.20168324257712E-01 0.86483246975462E-05 -.83878332880057E+01 + 161 0.20666481866877E-01 0.93049410218980E-05 -.83878211942514E+01 + 162 0.21176943968989E-01 0.10011400446495E-04 -.83878084919519E+01 + 163 0.21700014485023E-01 0.10771485226601E-04 -.83877951503144E+01 + 164 0.22236004842803E-01 0.11589264460398E-04 -.83877811369686E+01 + 165 0.22785234162421E-01 0.12469115821253E-04 -.83877664178845E+01 + 166 0.23348029446232E-01 0.13415748933689E-04 -.83877509572844E+01 + 167 0.23924725773554E-01 0.14434230517015E-04 -.83877347175515E+01 + 168 0.24515666500161E-01 0.15530011429873E-04 -.83877176591324E+01 + 169 0.25121203462715E-01 0.16708955758947E-04 -.83876997404348E+01 + 170 0.25741697188244E-01 0.17977372105819E-04 -.83876809177193E+01 + 171 0.26377517108794E-01 0.19342047237482E-04 -.83876611449850E+01 + 172 0.27029041781381E-01 0.20810282278403E-04 -.83876403738488E+01 + 173 0.27696659113381E-01 0.22389931635344E-04 -.83876185534182E+01 + 174 0.28380766593482E-01 0.24089444860415E-04 -.83875956301565E+01 + 175 0.29081771528341E-01 0.25917911673188E-04 -.83875715477401E+01 + 176 0.29800091285091E-01 0.27885110379161E-04 -.83875462469081E+01 + 177 0.30536153539833E-01 0.30001559939544E-04 -.83875196653034E+01 + 178 0.31290396532266E-01 0.32278575966333E-04 -.83874917373036E+01 + 179 0.32063269326613E-01 0.34728330936973E-04 -.83874623938431E+01 + 180 0.32855232078981E-01 0.37363918944830E-04 -.83874315622245E+01 + 181 0.33666756311332E-01 0.40199425325096E-04 -.83873991659181E+01 + 182 0.34498325192221E-01 0.43250001520964E-04 -.83873651243508E+01 + 183 0.35350433824469E-01 0.46531945581883E-04 -.83873293526811E+01 + 184 0.36223589539934E-01 0.50062788714684E-04 -.83872917615617E+01 + 185 0.37118312201570E-01 0.53861388339411E-04 -.83872522568867E+01 + 186 0.38035134512949E-01 0.57948028134997E-04 -.83872107395241E+01 + 187 0.38974602335419E-01 0.62344525595629E-04 -.83871671050317E+01 + 188 0.39937275013103E-01 0.67074347656889E-04 -.83871212433551E+01 + 189 0.40923725705927E-01 0.72162734991775E-04 -.83870730385073E+01 + 190 0.41934541730864E-01 0.77636835620623E-04 -.83870223682280E+01 + 191 0.42970324911616E-01 0.83525848525995E-04 -.83869691036213E+01 + 192 0.44031691936933E-01 0.89861178013981E-04 -.83869131087704E+01 + 193 0.45119274727775E-01 0.96676599617298E-04 -.83868542403276E+01 + 194 0.46233720813551E-01 0.10400843839329E-03 -.83867923470771E+01 + 195 0.47375693717646E-01 0.11189576053170E-03 -.83867272694707E+01 + 196 0.48545873352472E-01 0.12038057925313E-03 -.83866588391312E+01 + 197 0.49744956424278E-01 0.12950807604975E-03 -.83865868783238E+01 + 198 0.50973656847957E-01 0.13932683839540E-03 -.83865111993924E+01 + 199 0.52232706172102E-01 0.14988911513271E-03 -.83864316041569E+01 + 200 0.53522854014553E-01 0.16125109083129E-03 -.83863478832699E+01 + 201 0.54844868508712E-01 0.17347318050282E-03 -.83862598155299E+01 + 202 0.56199536760877E-01 0.18662034615730E-03 -.83861671671454E+01 + 203 0.57587665318871E-01 0.20076243678911E-03 -.83860696909491E+01 + 204 0.59010080652247E-01 0.21597455349362E-03 -.83859671255560E+01 + 205 0.60467629644358E-01 0.23233744153368E-03 -.83858591944613E+01 + 206 0.61961180096573E-01 0.24993791130233E-03 -.83857456050744E+01 + 207 0.63491621244959E-01 0.26886929026281E-03 -.83856260476826E+01 + 208 0.65059864289709E-01 0.28923190809044E-03 -.83855001943389E+01 + 209 0.66666842937665E-01 0.31113361739339E-03 -.83853676976683E+01 + 210 0.68313513958225E-01 0.33469035255144E-03 -.83852281895855E+01 + 211 0.70000857752993E-01 0.36002672938357E-03 -.83850812799165E+01 + 212 0.71729878939492E-01 0.38727668853760E-03 -.83849265549155E+01 + 213 0.73501606949298E-01 0.41658418568811E-03 -.83847635756699E+01 + 214 0.75317096640945E-01 0.44810393183329E-03 -.83845918763820E+01 + 215 0.77177428927977E-01 0.48200218719742E-03 -.83844109625176E+01 + 216 0.79083711422498E-01 0.51845761247369E-03 -.83842203088109E+01 + 217 0.81037079094633E-01 0.55766218138293E-03 -.83840193571109E+01 + 218 0.83038694948271E-01 0.59982215877698E-03 -.83838075140586E+01 + 219 0.85089750713493E-01 0.64515914878205E-03 -.83835841485770E+01 + 220 0.87191467556116E-01 0.69391121775730E-03 -.83833485891601E+01 + 221 0.89345096804753E-01 0.74633409713694E-03 -.83831001209409E+01 + 222 0.91551920695830E-01 0.80270247153101E-03 -.83828379825201E+01 + 223 0.93813253137017E-01 0.86331135778028E-03 -.83825613625336E+01 + 224 0.96130440489501E-01 0.92847758099367E-03 -.83822693959355E+01 + 225 0.98504862369592E-01 0.99854135394346E-03 -.83819611599705E+01 + 226 0.10093793247012E+00 0.10738679665512E-02 -.83816356698078E+01 + 227 0.10343109940213E+00 0.11548495925679E-02 -.83812918738062E+01 + 228 0.10598584755737E+00 0.12419072209319E-02 -.83809286483760E+01 + 229 0.10860369799203E+00 0.13354927196768E-02 -.83805447924011E+01 + 230 0.11128620933244E+00 0.14360910406595E-02 -.83801390211811E+01 + 231 0.11403497870295E+00 0.15442225737779E-02 -.83797099598490E+01 + 232 0.11685164267691E+00 0.16604456597540E-02 -.83792561362168E+01 + 233 0.11973787825103E+00 0.17853592709586E-02 -.83787759729951E+01 + 234 0.12269540384383E+00 0.19196058701546E-02 -.83782677793298E+01 + 235 0.12572598031877E+00 0.20638744574226E-02 -.83777297415924E+01 + 236 0.12883141203265E+00 0.22189038159077E-02 -.83771599133547E+01 + 237 0.13201354790985E+00 0.23854859673785E-02 -.83765562044725E+01 + 238 0.13527428254323E+00 0.25644698489151E-02 -.83759163691955E+01 + 239 0.13861555732204E+00 0.27567652223266E-02 -.83752379932139E+01 + 240 0.14203936158790E+00 0.29633468281402E-02 -.83745184795430E+01 + 241 0.14554773381912E+00 0.31852587961840E-02 -.83737550331379E+01 + 242 0.14914276284445E+00 0.34236193248905E-02 -.83729446441226E+01 + 243 0.15282658908671E+00 0.36796256414705E-02 -.83720840695054E+01 + 244 0.15660140583715E+00 0.39545592550187E-02 -.83711698132414E+01 + 245 0.16046946056133E+00 0.42497915144019E-02 -.83701981044922E+01 + 246 0.16443305623719E+00 0.45667894824200E-02 -.83691648739181E+01 + 247 0.16849455272625E+00 0.49071221371979E-02 -.83680657278253E+01 + 248 0.17265636817859E+00 0.52724669110269E-02 -.83668959199743E+01 + 249 0.17692098047260E+00 0.56646165759044E-02 -.83656503208412E+01 + 250 0.18129092869027E+00 0.60854864837729E-02 -.83643233841055E+01 + 251 0.18576881462892E+00 0.65371221679033E-02 -.83629091101191E+01 + 252 0.19035730435026E+00 0.70217073099448E-02 -.83614010060950E+01 + 253 0.19505912976771E+00 0.75415720748388E-02 -.83597920427302E+01 + 254 0.19987709027297E+00 0.80992018129921E-02 -.83580746069589E+01 + 255 0.20481405440271E+00 0.86972461257810E-02 -.83562404505091E+01 + 256 0.20987296154646E+00 0.93385282865286E-02 -.83542806339140E+01 + 257 0.21505682369666E+00 0.10026055004495E-01 -.83521854656032E+01 + 258 0.22036872724197E+00 0.10763026514063E-01 -.83499444356794E+01 + 259 0.22581183480484E+00 0.11552846965083E-01 -.83475461439592E+01 + 260 0.23138938712452E+00 0.12399135083211E-01 -.83449782218323E+01 + 261 0.23710470498650E+00 0.13305735060830E-01 -.83422272474743E+01 + 262 0.24296119119967E+00 0.14276727629833E-01 -.83392786539197E+01 + 263 0.24896233262230E+00 0.15316441256856E-01 -.83361166294883E+01 + 264 0.25511170223807E+00 0.16429463389529E-01 -.83327240100324E+01 + 265 0.26141296128335E+00 0.17620651668736E-01 -.83290821624649E+01 + 266 0.26786986142705E+00 0.18895145006633E-01 -.83251708590094E+01 + 267 0.27448624700429E+00 0.20258374413149E-01 -.83209681416156E+01 + 268 0.28126605730530E+00 0.21716073434731E-01 -.83164501759773E+01 + 269 0.28821332892074E+00 0.23274288048130E-01 -.83115910946067E+01 + 270 0.29533219814508E+00 0.24939385828839E-01 -.83063628284313E+01 + 271 0.30262690343927E+00 0.26718064188419E-01 -.83007349264192E+01 + 272 0.31010178795422E+00 0.28617357447220E-01 -.82946743627795E+01 + 273 0.31776130211669E+00 0.30644642478938E-01 -.82881453313534E+01 + 274 0.32561000627897E+00 0.32807642631008E-01 -.82811090268958E+01 + 275 0.33365257343406E+00 0.35114429590146E-01 -.82735234130589E+01 + 276 0.34189379199788E+00 0.37573422825513E-01 -.82653429770269E+01 + 277 0.35033856866023E+00 0.40193386203201E-01 -.82565184709276E+01 + 278 0.35899193130614E+00 0.42983421325439E-01 -.82469966403546E+01 + 279 0.36785903200940E+00 0.45952957106499E-01 -.82367199405929E+01 + 280 0.37694515010003E+00 0.49111735055442E-01 -.82256262414462E+01 + 281 0.38625569530750E+00 0.52469789694375E-01 -.82136485219308E+01 + 282 0.39579621098160E+00 0.56037423500901E-01 -.82007145565267E+01 + 283 0.40557237739284E+00 0.59825175726242E-01 -.81867465951838E+01 + 284 0.41559001511444E+00 0.63843784407689E-01 -.81716610398600E+01 + 285 0.42585508848777E+00 0.68104140867674E-01 -.81553681210415E+01 + 286 0.43637370917342E+00 0.72617235974029E-01 -.81377715784684E+01 + 287 0.44715213979000E+00 0.77394097429875E-01 -.81187683511599E+01 + 288 0.45819679764282E+00 0.82445717370084E-01 -.80982482828281E+01 + 289 0.46951425854459E+00 0.87782969568178E-01 -.80760938498760E+01 + 290 0.48111126073064E+00 0.93416515607001E-01 -.80521799204133E+01 + 291 0.49299470887069E+00 0.99356699443064E-01 -.80263735540843E+01 + 292 0.50517167817980E+00 0.10561342990327E+00 -.79985338539985E+01 + 293 0.51764941863084E+00 0.11219605079908E+00 -.79685118836627E+01 + 294 0.53043535927102E+00 0.11911319853263E+00 -.79361506635475E+01 + 295 0.54353711264501E+00 0.12637264730795E+00 -.79012852637418E+01 + 296 0.55696247932735E+00 0.13398114235290E+00 -.78637430110434E+01 + 297 0.57071945256673E+00 0.14194422190998E+00 -.78233438307668E+01 + 298 0.58481622304513E+00 0.15026602916956E+00 -.77799007454600E+01 + 299 0.59926118375434E+00 0.15894911580130E+00 -.77332205545651E+01 + 300 0.61406293499308E+00 0.16799423928817E+00 -.76831047207350E+01 + 301 0.62923028948740E+00 0.17740015688139E+00 -.76293504899404E+01 + 302 0.64477227763774E+00 0.18716341966801E+00 -.75717522735469E+01 + 303 0.66069815289540E+00 0.19727817096540E+00 -.75101033210551E+01 + 304 0.67701739727191E+00 0.20773595401413E+00 -.74441977120241E+01 + 305 0.69373972698453E+00 0.21852553471042E+00 -.73738326946302E+01 + 306 0.71087509824105E+00 0.22963274587343E+00 -.72988113961443E+01 + 307 0.72843371316760E+00 0.24104036024422E+00 -.72189459270988E+01 + 308 0.74642602588284E+00 0.25272800001811E+00 -.71340608958133E+01 + 309 0.76486274872215E+00 0.26467209116748E+00 -.70439973429972E+01 + 310 0.78375485861558E+00 0.27684587105697E+00 -.69486170971160E+01 + 311 0.80311360362339E+00 0.28921945782169E+00 -.68478075398607E+01 + 312 0.82295050963289E+00 0.30175998959969E+00 -.67414867572458E+01 + 313 0.84327738722082E+00 0.31443184091149E+00 -.66296090354787E+01 + 314 0.86410633868517E+00 0.32719692219322E+00 -.65121706418055E+01 + 315 0.88544976525070E+00 0.34001506665599E+00 -.63892158092046E+01 + 316 0.90732037445239E+00 0.35284450621739E+00 -.62608428203773E+01 + 317 0.92973118770136E+00 0.36564243520880E+00 -.61272100614873E+01 + 318 0.95269554803758E+00 0.37836565690856E+00 -.59885418902261E+01 + 319 0.97622712807411E+00 0.39097130372811E+00 -.58451341369046E+01 + 320 0.10003399381375E+01 0.40341761716668E+00 -.56973590323885E+01 + 321 0.10250483346095E+01 0.41566476857680E+00 -.55456693337956E+01 + 322 0.10503670284744E+01 0.42767569651923E+00 -.53906013987930E+01 + 323 0.10763110940777E+01 0.43941693124871E+00 -.52327769424605E+01 + 324 0.11028959781014E+01 0.45085937191419E+00 -.50729031966510E+01 + 325 0.11301375087605E+01 0.46197897766740E+00 -.49117711790810E+01 + 326 0.11580519052269E+01 0.47275733035842E+00 -.47502517649381E+01 + 327 0.11866557872860E+01 0.48318202418657E+00 -.45892892327219E+01 + 328 0.12159661852320E+01 0.49324683691120E+00 -.44298919215888E+01 + 329 0.12460005500072E+01 0.50295163838470E+00 -.42731195815878E+01 + 330 0.12767767635924E+01 0.51230199567379E+00 -.41200669129603E+01 + 331 0.13083131496531E+01 0.52130844041236E+00 -.39718426712512E+01 + 332 0.13406284844496E+01 0.52998537396876E+00 -.38295435643892E+01 + 333 0.13737420080155E+01 0.53834960044156E+00 -.36942220045695E+01 + 334 0.14076734356135E+01 0.54641849765844E+00 -.35668466460210E+01 + 335 0.14424429694731E+01 0.55420786380498E+00 -.34482546233407E+01 + 336 0.14780713108191E+01 0.56172951383951E+00 -.33390946434314E+01 + 337 0.15145796721963E+01 0.56898874712740E+00 -.32397607890626E+01 + 338 0.15519897900996E+01 0.57598186658009E+00 -.31503183630099E+01 + 339 0.15903239379150E+01 0.58269399864902E+00 -.30704257340652E+01 + 340 0.16296049391815E+01 0.58909753707549E+00 -.29992604295872E+01 + 341 0.16698561811793E+01 0.59515159798135E+00 -.29354642650636E+01 + 342 0.17111016288544E+01 0.60080290430135E+00 -.28771327585749E+01 + 343 0.17533658390872E+01 0.60598847074382E+00 -.28218893731671E+01 + 344 0.17966739753126E+01 0.61064026966213E+00 -.27671014590104E+01 + 345 0.18410518225028E+01 0.61469162628206E+00 -.27103183433185E+01 + 346 0.18865258025186E+01 0.61808428396071E+00 -.26500446874986E+01 + 347 0.19331229898409E+01 0.62077371430895E+00 -.25870067935138E+01 + 348 0.19808711276899E+01 0.62272880213209E+00 -.25245314545100E+01 + 349 0.20297986445439E+01 0.62392492883953E+00 -.24635895339570E+01 + 350 0.20799346710641E+01 0.62433871402529E+00 -.24041379415823E+01 + 351 0.21313090574394E+01 0.62394943065915E+00 -.23461359088252E+01 + 352 0.21839523911581E+01 0.62273914893601E+00 -.22895446832767E+01 + 353 0.22378960152197E+01 0.62069278856401E+00 -.22343272749205E+01 + 354 0.22931720467957E+01 0.61779837367023E+00 -.21804482458700E+01 + 355 0.23498133963515E+01 0.61404723872803E+00 -.21278735364407E+01 + 356 0.24078537872414E+01 0.60943422870457E+00 -.20765703214285E+01 + 357 0.24673277757863E+01 0.60395788584543E+00 -.20265068913789E+01 + 358 0.25282707718482E+01 0.59762061966096E+00 -.19776525544369E+01 + 359 0.25907190599128E+01 0.59042885672650E+00 -.19299775550679E+01 + 360 0.26547098206927E+01 0.58239316672085E+00 -.18834530065460E+01 + 361 0.27202811532638E+01 0.57352836107501E+00 -.18380508346311E+01 + 362 0.27874720977494E+01 0.56385356063501E+00 -.17937437302970E+01 + 363 0.28563226585638E+01 0.55339222887735E+00 -.17505051097563E+01 + 364 0.29268738282303E+01 0.54217216745752E+00 -.17083090803437E+01 + 365 0.29991676117876E+01 0.53022547122282E+00 -.16671304110893E+01 + 366 0.30732470517988E+01 0.51758844028600E+00 -.16269445070379E+01 + 367 0.31491562539782E+01 0.50430144732511E+00 -.15877273865535E+01 + 368 0.32269404134515E+01 0.49040875894265E+00 -.15494556610041E+01 + 369 0.33066458416637E+01 0.47595831066873E+00 -.15121065163435E+01 + 370 0.33883199939528E+01 0.46100143601288E+00 -.14756576962114E+01 + 371 0.34720114978035E+01 0.44559255083691E+00 -.14400874862538E+01 + 372 0.35577701817992E+01 0.42978879521442E+00 -.14053746994306E+01 + 373 0.36456471052896E+01 0.41364963477575E+00 -.13714986621330E+01 + 374 0.37356945887903E+01 0.39723643126014E+00 -.13384392009682E+01 + 375 0.38279662451334E+01 0.38061197451141E+00 -.13061766301102E+01 + 376 0.39225170113882E+01 0.36383999477793E+00 -.12746917391306E+01 + 377 0.40194031815695E+01 0.34698465437365E+00 -.12439657812515E+01 + 378 0.41186824401543E+01 0.33011002684848E+00 -.12139804619715E+01 + 379 0.42204138964261E+01 0.31327957072048E+00 -.11847179280288E+01 + 380 0.43246581196678E+01 0.29655560506543E+00 -.11561607566757E+01 + 381 0.44314771752236E+01 0.27999879434737E+00 -.11282919452406E+01 + 382 0.45409346614516E+01 0.26366764980428E+00 -.11010949009631E+01 + 383 0.46530957475895E+01 0.24761805447909E+00 -.10745534310878E+01 + 384 0.47680272125549E+01 0.23190281861582E+00 -.10486517332061E+01 + 385 0.48857974847050E+01 0.21657127163699E+00 -.10233743858363E+01 + 386 0.50064766825773E+01 0.20166889629749E+00 -.99870633923556E+00 + 387 0.51301366566369E+01 0.18723700989144E+00 -.97463290643499E+00 + 388 0.52568510320558E+01 0.17331249659284E+00 -.95113975449285E+00 + 389 0.53866952525476E+01 0.15992759415857E+00 -.92821289595944E+00 + 390 0.55197466252855E+01 0.14710973733308E+00 -.90583868054825E+00 + 391 0.56560843669301E+01 0.13488145938515E+00 -.88400378700832E+00 + 392 0.57957896507933E+01 0.12326035229378E+00 -.86269521519265E+00 + 393 0.59389456551679E+01 0.11225908519330E+00 -.84190027831799E+00 + 394 0.60856376128505E+01 0.10188547979898E+00 -.82160659541124E+00 + 395 0.62359528618879E+01 0.92142640670134E-01 -.80180208393793E+00 + 396 0.63899808975765E+01 0.83029137338491E-01 -.78247495260848E+00 + 397 0.65478134257467E+01 0.74539234542737E-01 -.76361369435783E+00 + 398 0.67095444173626E+01 0.66663166077842E-01 -.74520707949432E+00 + 399 0.68752701644715E+01 0.59387447102321E-01 -.72724414901368E+00 + 400 0.70450893375339E+01 0.52695219163083E-01 -.70971420807425E+00 + 401 0.72191030441710E+01 0.46566621712314E-01 -.69260681962940E+00 + 402 0.73974148893620E+01 0.40979183520293E-01 -.67591179821353E+00 + 403 0.75801310371293E+01 0.35908227147751E-01 -.65961920387775E+00 + 404 0.77673602737464E+01 0.31327279543979E-01 -.64371933627183E+00 + 405 0.79592140725079E+01 0.27208481891439E-01 -.62820272886877E+00 + 406 0.81558066600989E+01 0.23522992027670E-01 -.61306014332856E+00 + 407 0.83572550846033E+01 0.20241373139040E-01 -.59828256399781E+00 + 408 0.85636792851930E+01 0.17333962929833E-01 -.58386119254202E+00 + 409 0.87752021635373E+01 0.14771218110368E-01 -.56978744270716E+00 + 410 0.89919496569766E+01 0.12524029799356E-01 -.55605293520753E+00 + 411 0.92140508135040E+01 0.10564006274557E-01 -.54264949273693E+00 + 412 0.94416378685975E+01 0.88637204041357E-02 -.52956913509996E+00 + 413 0.96748463239519E+01 0.73969200196707E-02 -.51680407446078E+00 + 414 0.99138150281535E+01 0.61387004200878E-02 -.50434671070633E+00 + 415 0.10158686259349E+02 0.50656390948093E-02 -.49218962692137E+00 + 416 0.10409605809955E+02 0.41558935967672E-02 -.48032558497255E+00 + 417 0.10666723073461E+02 0.33892642578155E-02 -.46874752119893E+00 + 418 0.10930191133375E+02 0.27472241006994E-02 -.45744854220643E+00 + 419 0.11200166854370E+02 0.22129188481769E-02 -.44642192076357E+00 + 420 0.11476810975672E+02 0.17711403514255E-02 -.43566109179620E+00 + 421 0.11760288206772E+02 0.14082770520743E-02 -.42515964847878E+00 + 422 0.12050767325479E+02 0.11122452558217E-02 -.41491133841981E+00 + 423 0.12348421278418E+02 0.87240503614833E-03 -.40491005993930E+00 + 424 0.12653427283995E+02 0.67946451382726E-03 -.39514985843594E+00 + 425 0.12965966937910E+02 0.52537608495910E-03 -.38562492284174E+00 + 426 0.13286226321276E+02 0.40322791295025E-03 -.37632958216233E+00 + 427 0.13614396111412E+02 0.30713367577491E-03 -.36725830210045E+00 + 428 0.13950671695363E+02 0.23212318744311E-03 -.35840568176095E+00 + 429 0.14295253286239E+02 0.17403611022892E-03 -.34976645043520E+00 + 430 0.14648346042409E+02 0.12942055947984E-03 -.34133546446297E+00 + 431 0.15010160189657E+02 0.95437991810993E-04 -.33310770416997E+00 + 432 0.15380911146341E+02 0.69775374220355E-04 -.32507827087925E+00 + 433 0.15760819651656E+02 0.50565267718458E-04 -.31724238399458E+00 + 434 0.16150111897052E+02 0.36314133383948E-04 -.30959537815418E+00 + 435 0.16549019660909E+02 0.25838887268732E-04 -.30213270045299E+00 + 436 0.16957780446533E+02 0.18211497493466E-04 -.29484990773201E+00 + 437 0.17376637623563E+02 0.12711229647063E-04 -.28774266393286E+00 + 438 0.17805840572865E+02 0.87840198097700E-05 -.28080673751621E+00 + 439 0.18245644835014E+02 0.60083186975919E-05 -.27403799894234E+00 + 440 0.18696312262439E+02 0.40668207532236E-05 -.26743241821249E+00 + 441 0.19158111175321E+02 0.27232428755448E-05 -.26098606246949E+00 + 442 0.19631316521352E+02 0.18035577129758E-05 -.25469509365618E+00 + 443 0.20116210039429E+02 0.11810425130954E-05 -.24855576623030E+00 + 444 0.20613080427403E+02 0.76448557727960E-06 -.24256442493442E+00 + 445 0.21122223513960E+02 0.48900655102471E-06 -.23671750261971E+00 + 446 0.21643942434755E+02 0.30900947397157E-06 -.23101151812209E+00 + 447 0.22178547812893E+02 0.19284459061516E-06 -.22544307418961E+00 + 448 0.22726357943872E+02 0.11881877796728E-06 -.22000885545975E+00 + 449 0.23287698985085E+02 0.72254441896786E-07 -.21470562648556E+00 + 450 0.23862905150017E+02 0.43351302436359E-07 -.20953022980927E+00 + 451 0.24452318907222E+02 0.25653724942276E-07 -.20447958408243E+00 + 452 0.25056291184231E+02 0.14967805107475E-07 -.19955068223132E+00 + 453 0.25675181576481E+02 0.86073599738038E-08 -.19474058966656E+00 + 454 0.26309358561420E+02 0.48767068804990E-08 -.19004644253592E+00 + 455 0.26959199717887E+02 0.27212262405036E-08 -.18546544601924E+00 + 456 0.27625091950919E+02 0.14949135902052E-08 -.18099487266443E+00 + 457 0.28307431722107E+02 0.80818098231850E-09 -.17663206076357E+00 + 458 0.29006625285643E+02 0.42979889567896E-09 -.17237441276820E+00 + 459 0.29723088930198E+02 0.22475241432869E-09 -.16821939374275E+00 + 460 0.30457249226774E+02 0.11551521486310E-09 -.16416452985533E+00 + 461 0.31209543282676E+02 0.58328129248741E-10 -.16020740690478E+00 + 462 0.31980419001758E+02 0.28921710953179E-10 -.15634566888336E+00 + 463 0.32770335351101E+02 0.14075850159698E-10 -.15257701657398E+00 + 464 0.33579762634273E+02 0.67208171725907E-11 -.14889920618130E+00 + 465 0.34409182771340E+02 0.31466805037335E-11 -.14531004799581E+00 + 466 0.35259089585792E+02 0.14439320173267E-11 -.14180740509008E+00 + 467 0.36129989098561E+02 0.64905078374213E-12 -.13838919204653E+00 + 468 0.37022399829296E+02 0.28563831863592E-12 -.13505337371575E+00 + 469 0.37936853105079E+02 0.12300468920298E-12 -.13179796400483E+00 + 470 0.38873893376775E+02 0.51802316284777E-13 -.12862102469487E+00 + 471 0.39834078543181E+02 0.21322938945075E-13 -.12552066428698E+00 + 472 0.40817980283197E+02 0.85734646971839E-14 -.12249503687614E+00 + 473 0.41826184396192E+02 0.33652002382181E-14 -.11954234105215E+00 + 474 0.42859291150778E+02 0.12886565801923E-14 -.11666081882712E+00 + 475 0.43917915642203E+02 0.48112066611786E-15 -.11384875458878E+00 + 476 0.45002688158565E+02 0.17501407464469E-15 -.11110447407903E+00 + 477 0.46114254556082E+02 0.61986305765087E-16 -.10842634339712E+00 + 478 0.47253276643617E+02 0.21361055687281E-16 -.10581276802686E+00 + 479 0.48420432576714E+02 0.71567937943076E-17 -.10326219188724E+00 + 480 0.49616417261359E+02 0.23297850997075E-17 -.10077309640601E+00 + 481 0.50841942767714E+02 0.73526464302664E-18 -.98343999615510E-01 + 482 0.52097738754077E+02 0.22409925770503E-18 -.95973455270333E-01 + 483 0.53384552901303E+02 0.00000000000000E+00 -.93660051986272E-01 + 484 0.54703151357965E+02 0.00000000000000E+00 -.91402412399992E-01 + 485 0.56054319196507E+02 0.00000000000000E+00 -.89199192348972E-01 + 486 0.57438860880660E+02 0.00000000000000E+00 -.87049080071213E-01 + 487 0.58857600744413E+02 0.00000000000000E+00 -.84950795424235E-01 + 488 0.60311383482800E+02 0.00000000000000E+00 -.82903089122899E-01 + 489 0.61801074654825E+02 0.00000000000000E+00 -.80904741995608E-01 + 490 0.63327561198799E+02 0.00000000000000E+00 -.78954564258425E-01 + 491 0.64891751960409E+02 0.00000000000000E+00 -.77051394806699E-01 + 492 0.66494578233831E+02 0.00000000000000E+00 -.75194100523762E-01 + 493 0.68136994316207E+02 0.00000000000000E+00 -.73381575606287E-01 + 494 0.69819978075817E+02 0.00000000000000E+00 -.71612740905911E-01 + 495 0.71544531534290E+02 0.00000000000000E+00 -.69886543286729E-01 + 496 0.73311681463187E+02 0.00000000000000E+00 -.68201954998271E-01 + 497 0.75122479995328E+02 0.00000000000000E+00 -.66557973063601E-01 + 498 0.76978005251212E+02 0.00000000000000E+00 -.64953618682151E-01 + 499 0.78879361980917E+02 0.00000000000000E+00 -.63387936646971E-01 +499 0.10247000000000E+01 + 1 0.41666666666667E-03 0.11365757695535E-13 -.67830475014934E+01 + 2 0.42695833333333E-03 0.12530988689524E-13 -.67830476184422E+01 + 3 0.43750420416667E-03 0.13815680550596E-13 -.67830477321914E+01 + 4 0.44831055800958E-03 0.15232080548893E-13 -.67830478427992E+01 + 5 0.45938382879242E-03 0.16793695147668E-13 -.67830479503214E+01 + 6 0.47073060936359E-03 0.18515408733143E-13 -.67830480548113E+01 + 7 0.48235765541487E-03 0.20413634817615E-13 -.67830481563199E+01 + 8 0.49427188950362E-03 0.22506469724255E-13 -.67830482548961E+01 + 9 0.50648040517436E-03 0.24813865024698E-13 -.67830483505862E+01 + 10 0.51899047118217E-03 0.27357817753824E-13 -.67830484434343E+01 + 11 0.53180953582037E-03 0.30162580113313E-13 -.67830485334821E+01 + 12 0.54494523135513E-03 0.33254890674566E-13 -.67830486207689E+01 + 13 0.55840537856960E-03 0.36664229284771E-13 -.67830487053319E+01 + 14 0.57219799142027E-03 0.40423098106305E-13 -.67830487872057E+01 + 15 0.58633128180835E-03 0.44567331468681E-13 -.67830488664225E+01 + 16 0.60081366446902E-03 0.49136437486929E-13 -.67830489430123E+01 + 17 0.61565376198140E-03 0.54173974703178E-13 -.67830490170024E+01 + 18 0.63086040990234E-03 0.59727967342022E-13 -.67830490884178E+01 + 19 0.64644266202693E-03 0.65851363138445E-13 -.67830491572810E+01 + 20 0.66240979577900E-03 0.72602538102881E-13 -.67830492236121E+01 + 21 0.67877131773474E-03 0.80045853035459E-13 -.67830492874284E+01 + 22 0.69553696928278E-03 0.88252267094846E-13 -.67830493487447E+01 + 23 0.71271673242407E-03 0.97300014270991E-13 -.67830494075732E+01 + 24 0.73032083571494E-03 0.10727534921075E-12 -.67830494639234E+01 + 25 0.74835976035710E-03 0.11827336950654E-12 -.67830495178020E+01 + 26 0.76684424643792E-03 0.13039892228714E-12 -.67830495692129E+01 + 27 0.78578529932494E-03 0.14376760375339E-12 -.67830496181570E+01 + 28 0.80519419621827E-03 0.15850686118752E-12 -.67830496646326E+01 + 29 0.82508249286486E-03 0.17475720794203E-12 -.67830497086345E+01 + 30 0.84546203043862E-03 0.19267356299075E-12 -.67830497501548E+01 + 31 0.86634494259045E-03 0.21242672781244E-12 -.67830497891823E+01 + 32 0.88774366267244E-03 0.23420501468635E-12 -.67830498257024E+01 + 33 0.90967093114045E-03 0.25821604192287E-12 -.67830498596971E+01 + 34 0.93213980313961E-03 0.28468871314335E-12 -.67830498911451E+01 + 35 0.95516365627716E-03 0.31387539947831E-12 -.67830499200215E+01 + 36 0.97875619858721E-03 0.34605434548735E-12 -.67830499462974E+01 + 37 0.10029314766923E-02 0.38153232173698E-12 -.67830499699404E+01 + 38 0.10277038841666E-02 0.42064754932404E-12 -.67830499909138E+01 + 39 0.10530881701055E-02 0.46377292422488E-12 -.67830500091771E+01 + 40 0.10790994479071E-02 0.51131957220876E-12 -.67830500246854E+01 + 41 0.11057532042704E-02 0.56374076820534E-12 -.67830500373891E+01 + 42 0.11330653084159E-02 0.62153625749048E-12 -.67830500472345E+01 + 43 0.11610520215338E-02 0.68525701988505E-12 -.67830500541628E+01 + 44 0.11897300064657E-02 0.75551052238524E-12 -.67830500581102E+01 + 45 0.12191163376254E-02 0.83296651029857E-12 -.67830500590079E+01 + 46 0.12492285111647E-02 0.91836339209391E-12 -.67830500567817E+01 + 47 0.12800844553905E-02 0.10125152788337E-11 -.67830500513516E+01 + 48 0.13117025414386E-02 0.11163197452966E-11 -.67830500426321E+01 + 49 0.13441015942122E-02 0.12307663867795E-11 -.67830500305314E+01 + 50 0.13773009035892E-02 0.13569462531516E-11 -.67830500149512E+01 + 51 0.14113202359079E-02 0.14960622500990E-11 -.67830499957871E+01 + 52 0.14461798457348E-02 0.16494406067150E-11 -.67830499729272E+01 + 53 0.14819004879244E-02 0.18185435187605E-11 -.67830499462527E+01 + 54 0.15185034299762E-02 0.20049830881243E-11 -.67830499156374E+01 + 55 0.15560104646966E-02 0.22105366913712E-11 -.67830498809468E+01 + 56 0.15944439231746E-02 0.24371639238884E-11 -.67830498420387E+01 + 57 0.16338266880770E-02 0.26870252811631E-11 -.67830497987617E+01 + 58 0.16741822072725E-02 0.29625027552818E-11 -.67830497509560E+01 + 59 0.17155345077921E-02 0.32662225430023E-11 -.67830496984519E+01 + 60 0.17579082101346E-02 0.36010800818769E-11 -.67830496410701E+01 + 61 0.18013285429249E-02 0.39702676531017E-11 -.67830495786211E+01 + 62 0.18458213579352E-02 0.43773048142331E-11 -.67830495109042E+01 + 63 0.18914131454762E-02 0.48260719518916E-11 -.67830494377078E+01 + 64 0.19381310501694E-02 0.53208472743144E-11 -.67830493588083E+01 + 65 0.19860028871086E-02 0.58663475964133E-11 -.67830492739697E+01 + 66 0.20350571584202E-02 0.64677733061465E-11 -.67830491829430E+01 + 67 0.20853230702332E-02 0.71308579408725E-11 -.67830490854657E+01 + 68 0.21368305500679E-02 0.78619228463055E-11 -.67830489812608E+01 + 69 0.21896102646546E-02 0.86679374391395E-11 -.67830488700366E+01 + 70 0.22436936381916E-02 0.95565856478312E-11 -.67830487514855E+01 + 71 0.22991128710549E-02 0.10536339164928E-10 -.67830486252838E+01 + 72 0.23559009589700E-02 0.11616538209258E-10 -.67830484910903E+01 + 73 0.24140917126565E-02 0.12807480567898E-10 -.67830483485457E+01 + 74 0.24737197779592E-02 0.14120519766757E-10 -.67830481972720E+01 + 75 0.25348206564747E-02 0.15568173305638E-10 -.67830480368711E+01 + 76 0.25974307266897E-02 0.17164241989597E-10 -.67830478669243E+01 + 77 0.26615872656389E-02 0.18923941494168E-10 -.67830476869908E+01 + 78 0.27273284711002E-02 0.20864047418689E-10 -.67830474966071E+01 + 79 0.27946934843364E-02 0.23003055210499E-10 -.67830472952854E+01 + 80 0.28637224133995E-02 0.25361356484575E-10 -.67830470825130E+01 + 81 0.29344563570104E-02 0.27961433419449E-10 -.67830468577503E+01 + 82 0.30069374290286E-02 0.30828073082580E-10 -.67830466204302E+01 + 83 0.30812087835256E-02 0.33988603728311E-10 -.67830463699564E+01 + 84 0.31573146404787E-02 0.37473155321043E-10 -.67830461057021E+01 + 85 0.32353003120985E-02 0.41314946767147E-10 -.67830458270082E+01 + 86 0.33152122298073E-02 0.45550602593762E-10 -.67830455331821E+01 + 87 0.33970979718836E-02 0.50220502093346E-10 -.67830452234956E+01 + 88 0.34810062917891E-02 0.55369164262292E-10 -.67830448971835E+01 + 89 0.35669871471963E-02 0.61045672203183E-10 -.67830445534419E+01 + 90 0.36550917297320E-02 0.67304141036401E-10 -.67830441914257E+01 + 91 0.37453724954564E-02 0.74204233781584E-10 -.67830438102469E+01 + 92 0.38378831960942E-02 0.81811730126709E-10 -.67830434089726E+01 + 93 0.39326789110377E-02 0.90199153506687E-10 -.67830429866226E+01 + 94 0.40298160801404E-02 0.99446462469230E-10 -.67830425421669E+01 + 95 0.41293525373198E-02 0.10964181291853E-09 -.67830420745237E+01 + 96 0.42313475449916E-02 0.12088239850291E-09 -.67830415825562E+01 + 97 0.43358618293529E-02 0.13327537715761E-09 -.67830410650702E+01 + 98 0.44429576165379E-02 0.14693889263483E-09 -.67830405208116E+01 + 99 0.45526986696664E-02 0.16200320075902E-09 -.67830399484625E+01 + 100 0.46651503268072E-02 0.17861191114324E-09 -.67830393466389E+01 + 101 0.47803795398793E-02 0.19692335620323E-09 -.67830387138869E+01 + 102 0.48984549145143E-02 0.21711210051927E-09 -.67830380486794E+01 + 103 0.50194467509028E-02 0.23937060493340E-09 -.67830373494126E+01 + 104 0.51434270856501E-02 0.26391106124482E-09 -.67830366144016E+01 + 105 0.52704697346657E-02 0.29096741499232E-09 -.67830358418771E+01 + 106 0.54006503371119E-02 0.32079759560514E-09 -.67830350299806E+01 + 107 0.55340464004386E-02 0.35368597518047E-09 -.67830341767604E+01 + 108 0.56707373465294E-02 0.38994607932503E-09 -.67830332801665E+01 + 109 0.58108045589887E-02 0.42992357590033E-09 -.67830323380460E+01 + 110 0.59543314315957E-02 0.47399957016045E-09 -.67830313481378E+01 + 111 0.61014034179561E-02 0.52259423769122E-09 -.67830303080674E+01 + 112 0.62521080823797E-02 0.57617082977936E-09 -.67830292153409E+01 + 113 0.64065351520144E-02 0.63524008938993E-09 -.67830280673394E+01 + 114 0.65647765702692E-02 0.70036511984381E-09 -.67830268613125E+01 + 115 0.67269265515548E-02 0.77216675260143E-09 -.67830255943716E+01 + 116 0.68930816373782E-02 0.85132946531621E-09 -.67830242634836E+01 + 117 0.70633407538215E-02 0.93860790656509E-09 -.67830228654629E+01 + 118 0.72378052704409E-02 0.10348340894457E-08 -.67830213969641E+01 + 119 0.74165790606208E-02 0.11409253226045E-08 -.67830198544743E+01 + 120 0.75997685634181E-02 0.12578929542867E-08 -.67830182343041E+01 + 121 0.77874828469345E-02 0.13868520127500E-08 -.67830165325795E+01 + 122 0.79798336732538E-02 0.15290318349218E-08 -.67830147452318E+01 + 123 0.81769355649832E-02 0.16857877846014E-08 -.67830128679886E+01 + 124 0.83789058734383E-02 0.18586141718899E-08 -.67830108963633E+01 + 125 0.85858648485122E-02 0.20491584969759E-08 -.67830088256442E+01 + 126 0.87979357102704E-02 0.22592371540279E-08 -.67830066508835E+01 + 127 0.90152447223141E-02 0.24908527448556E-08 -.67830043668853E+01 + 128 0.92379212669553E-02 0.27462131673414E-08 -.67830019681934E+01 + 129 0.94660979222491E-02 0.30277526605549E-08 -.67829994490779E+01 + 130 0.96999105409286E-02 0.33381550071064E-08 -.67829968035217E+01 + 131 0.99394983312896E-02 0.36803791138501E-08 -.67829940252061E+01 + 132 0.10185003940072E-01 0.40576872147070E-08 -.67829911074955E+01 + 133 0.10436573537392E-01 0.44736759643596E-08 -.67829880434217E+01 + 134 0.10694356903766E-01 0.49323107191134E-08 -.67829848256672E+01 + 135 0.10958507519289E-01 0.54379633315825E-08 -.67829814465474E+01 + 136 0.11229182655015E-01 0.59954538193313E-08 -.67829778979928E+01 + 137 0.11506543466594E-01 0.66100963045085E-08 -.67829741715287E+01 + 138 0.11790755090219E-01 0.72877496621935E-08 -.67829702582558E+01 + 139 0.12081986740947E-01 0.80348733600293E-08 -.67829661488284E+01 + 140 0.12380411813449E-01 0.88585890211609E-08 -.67829618334319E+01 + 141 0.12686207985241E-01 0.97667482970126E-08 -.67829573017596E+01 + 142 0.12999557322476E-01 0.10768007696532E-07 -.67829525429874E+01 + 143 0.13320646388342E-01 0.11871911084782E-07 -.67829475457486E+01 + 144 0.13649666354134E-01 0.13088980636796E-07 -.67829422981056E+01 + 145 0.13986813113081E-01 0.14430817113130E-07 -.67829367875221E+01 + 146 0.14332287396974E-01 0.15910210412318E-07 -.67829310008325E+01 + 147 0.14686294895679E-01 0.17541261453266E-07 -.67829249242100E+01 + 148 0.15049046379602E-01 0.19339516548520E-07 -.67829185431340E+01 + 149 0.15420757825179E-01 0.21322115548256E-07 -.67829118423544E+01 + 150 0.15801650543460E-01 0.23507955165911E-07 -.67829048058552E+01 + 151 0.16191951311884E-01 0.25917869040933E-07 -.67828974168160E+01 + 152 0.16591892509287E-01 0.28574826253397E-07 -.67828896575711E+01 + 153 0.17001712254267E-01 0.31504150180885E-07 -.67828815095669E+01 + 154 0.17421654546947E-01 0.34733759781608E-07 -.67828729533174E+01 + 155 0.17851969414257E-01 0.38294435601164E-07 -.67828639683566E+01 + 156 0.18292913058789E-01 0.42220113035568E-07 -.67828545331894E+01 + 157 0.18744748011341E-01 0.46548205642540E-07 -.67828446252393E+01 + 158 0.19207743287221E-01 0.51319961578867E-07 -.67828342207937E+01 + 159 0.19682174546416E-01 0.56580856556792E-07 -.67828232949466E+01 + 160 0.20168324257712E-01 0.62381027059706E-07 -.67828118215377E+01 + 161 0.20666481866877E-01 0.68775747940314E-07 -.67827997730893E+01 + 162 0.21176943968989E-01 0.75825958946473E-07 -.67827871207393E+01 + 163 0.21700014485023E-01 0.83598845185108E-07 -.67827738341708E+01 + 164 0.22236004842803E-01 0.92168477047370E-07 -.67827598815382E+01 + 165 0.22785234162421E-01 0.10161651568342E-06 -.67827452293898E+01 + 166 0.23348029446232E-01 0.11203299073815E-06 -.67827298425855E+01 + 167 0.23924725773554E-01 0.12351715774592E-06 -.67827136842116E+01 + 168 0.24515666500161E-01 0.13617844333904E-06 -.67826967154895E+01 + 169 0.25121203462715E-01 0.15013748725908E-06 -.67826788956814E+01 + 170 0.25741697188244E-01 0.16552729107936E-06 -.67826601819896E+01 + 171 0.26377517108794E-01 0.18249448456036E-06 -.67826405294516E+01 + 172 0.27029041781381E-01 0.20120072167644E-06 -.67826198908291E+01 + 173 0.27696659113381E-01 0.22182421958337E-06 -.67825982164915E+01 + 174 0.28380766593482E-01 0.24456145515225E-06 -.67825754542931E+01 + 175 0.29081771528341E-01 0.26962903519084E-06 -.67825515494439E+01 + 176 0.29800091285091E-01 0.29726575812027E-06 -.67825264443739E+01 + 177 0.30536153539833E-01 0.32773488669114E-06 -.67825000785895E+01 + 178 0.31290396532266E-01 0.36132665332356E-06 -.67824723885231E+01 + 179 0.32063269326613E-01 0.39836102186030E-06 -.67824433073741E+01 + 180 0.32855232078981E-01 0.43919073195217E-06 -.67824127649417E+01 + 181 0.33666756311332E-01 0.48420465497141E-06 -.67823806874488E+01 + 182 0.34498325192221E-01 0.53383149329910E-06 -.67823469973564E+01 + 183 0.35350433824469E-01 0.58854385808265E-06 -.67823116131678E+01 + 184 0.36223589539934E-01 0.64886276414102E-06 -.67822744492226E+01 + 185 0.37118312201570E-01 0.71536258464070E-06 -.67822354154793E+01 + 186 0.38035134512949E-01 0.78867651251293E-06 -.67821944172861E+01 + 187 0.38974602335419E-01 0.86950258037199E-06 -.67821513551395E+01 + 188 0.39937275013103E-01 0.95861029597054E-06 -.67821061244288E+01 + 189 0.40923725705927E-01 0.10568479560403E-05 -.67820586151678E+01 + 190 0.41934541730864E-01 0.11651507077696E-05 -.67820087117107E+01 + 191 0.42970324911616E-01 0.12845494342209E-05 -.67819562924525E+01 + 192 0.44031691936933E-01 0.14161805477629E-05 -.67819012295130E+01 + 193 0.45119274727775E-01 0.15612967841429E-05 -.67818433884025E+01 + 194 0.46233720813551E-01 0.17212790992553E-05 -.67817826276692E+01 + 195 0.47375693717646E-01 0.18976497810361E-05 -.67817187985266E+01 + 196 0.48545873352472E-01 0.20920869003423E-05 -.67816517444589E+01 + 197 0.49744956424278E-01 0.23064402372651E-05 -.67815813008054E+01 + 198 0.50973656847957E-01 0.25427488331781E-05 -.67815072943191E+01 + 199 0.52232706172102E-01 0.28032603340850E-05 -.67814295427013E+01 + 200 0.53522854014553E-01 0.30904523076276E-05 -.67813478541081E+01 + 201 0.54844868508712E-01 0.34070557346091E-05 -.67812620266283E+01 + 202 0.56199536760877E-01 0.37560808962468E-05 -.67811718477305E+01 + 203 0.57587665318871E-01 0.41408459007753E-05 -.67810770936774E+01 + 204 0.59010080652247E-01 0.45650081176855E-05 -.67809775289048E+01 + 205 0.60467629644358E-01 0.50325988150256E-05 -.67808729053632E+01 + 206 0.61961180096573E-01 0.55480613250617E-05 -.67807629618195E+01 + 207 0.63491621244959E-01 0.61162930964541E-05 -.67806474231161E+01 + 208 0.65059864289709E-01 0.67426920272710E-05 -.67805259993837E+01 + 209 0.66666842937665E-01 0.74332075129279E-05 -.67803983852059E+01 + 210 0.68313513958225E-01 0.81943966869021E-05 -.67802642587307E+01 + 211 0.70000857752993E-01 0.90334863801839E-05 -.67801232807262E+01 + 212 0.71729878939492E-01 0.99584413783471E-05 -.67799750935757E+01 + 213 0.73501606949298E-01 0.10978039613302E-04 -.67798193202086E+01 + 214 0.75317096640945E-01 0.12101954990763E-04 -.67796555629613E+01 + 215 0.77177428927977E-01 0.13340848624766E-04 -.67794834023633E+01 + 216 0.79083711422498E-01 0.14706469327871E-04 -.67793023958437E+01 + 217 0.81037079094633E-01 0.16211764290559E-04 -.67791120763502E+01 + 218 0.83038694948271E-01 0.17871000976686E-04 -.67789119508758E+01 + 219 0.85089750713493E-01 0.19699901364282E-04 -.67787014988841E+01 + 220 0.87191467556116E-01 0.21715789773575E-04 -.67784801706268E+01 + 221 0.89345096804753E-01 0.23937755647698E-04 -.67782473853443E+01 + 222 0.91551920695830E-01 0.26386832787189E-04 -.67780025293387E+01 + 223 0.93813253137017E-01 0.29086196688340E-04 -.67777449539113E+01 + 224 0.96130440489501E-01 0.32061381798815E-04 -.67774739731515E+01 + 225 0.98504862369592E-01 0.35340520683212E-04 -.67771888615646E+01 + 226 0.10093793247012E+00 0.38954607287828E-04 -.67768888515276E+01 + 227 0.10343109940213E+00 0.42937786709403E-04 -.67765731305544E+01 + 228 0.10598584755737E+00 0.47327674108870E-04 -.67762408383585E+01 + 229 0.10860369799203E+00 0.52165705669965E-04 -.67758910636918E+01 + 230 0.11128620933244E+00 0.57497524786105E-04 -.67755228409435E+01 + 231 0.11403497870295E+00 0.63373406969347E-04 -.67751351464753E+01 + 232 0.11685164267691E+00 0.69848727315107E-04 -.67747268946720E+01 + 233 0.11973787825103E+00 0.76984474728032E-04 -.67742969336802E+01 + 234 0.12269540384383E+00 0.84847817521065E-04 -.67738440408091E+01 + 235 0.12572598031877E+00 0.93512725444163E-04 -.67733669175617E+01 + 236 0.12883141203265E+00 0.10306065368480E-03 -.67728641842634E+01 + 237 0.13201354790985E+00 0.11358129491272E-03 -.67723343742518E+01 + 238 0.13527428254323E+00 0.12517340602021E-03 -.67717759275873E+01 + 239 0.13861555732204E+00 0.13794571684075E-03 -.67711871842398E+01 + 240 0.14203936158790E+00 0.15201792881706E-03 -.67705663767051E+01 + 241 0.14554773381912E+00 0.16752181233984E-03 -.67699116219963E+01 + 242 0.14914276284445E+00 0.18460241229466E-03 -.67692209129536E+01 + 243 0.15282658908671E+00 0.20341937224305E-03 -.67684921088092E+01 + 244 0.15660140583715E+00 0.22414838862917E-03 -.67677229249368E+01 + 245 0.16046946056133E+00 0.24698280745240E-03 -.67669109217123E+01 + 246 0.16443305623719E+00 0.27213537698396E-03 -.67660534923998E+01 + 247 0.16849455272625E+00 0.29984017133950E-03 -.67651478499759E+01 + 248 0.17265636817859E+00 0.33035470105550E-03 -.67641910127906E+01 + 249 0.17692098047260E+00 0.36396222826249E-03 -.67631797889599E+01 + 250 0.18129092869027E+00 0.40097430560937E-03 -.67621107593707E+01 + 251 0.18576881462892E+00 0.44173355977781E-03 -.67609802591719E+01 + 252 0.19035730435026E+00 0.48661674224078E-03 -.67597843576136E+01 + 253 0.19505912976771E+00 0.53603807187226E-03 -.67585188360826E+01 + 254 0.19987709027297E+00 0.59045289611228E-03 -.67571791641735E+01 + 255 0.20481405440271E+00 0.65036169964023E-03 -.67557604736175E+01 + 256 0.20987296154646E+00 0.71631449191555E-03 -.67542575298803E+01 + 257 0.21505682369666E+00 0.78891560751370E-03 -.67526647012240E+01 + 258 0.22036872724197E+00 0.86882895592210E-03 -.67509759250127E+01 + 259 0.22581183480484E+00 0.95678376036823E-03 -.67491846710256E+01 + 260 0.23138938712452E+00 0.10535808283325E-02 -.67472839015255E+01 + 261 0.23710470498650E+00 0.11600993996520E-02 -.67452660278132E+01 + 262 0.24296119119967E+00 0.12773046215451E-02 -.67431228629804E+01 + 263 0.24896233262230E+00 0.14062557034753E-02 -.67408455705593E+01 + 264 0.25511170223807E+00 0.15481148085215E-02 -.67384246087462E+01 + 265 0.26141296128335E+00 0.17041567418079E-02 -.67358496698636E+01 + 266 0.26786986142705E+00 0.18757795005657E-02 -.67331096147083E+01 + 267 0.27448624700429E+00 0.20645157545202E-02 -.67301924014189E+01 + 268 0.28126605730530E+00 0.22720453294860E-02 -.67270850084837E+01 + 269 0.28821332892074E+00 0.25002087712849E-02 -.67237733515016E+01 + 270 0.29533219814508E+00 0.27510220713222E-02 -.67202421933003E+01 + 271 0.30262690343927E+00 0.30266926393051E-02 -.67164750470156E+01 + 272 0.31010178795422E+00 0.33296366126129E-02 -.67124540717369E+01 + 273 0.31776130211669E+00 0.36624975956304E-02 -.67081599603344E+01 + 274 0.32561000627897E+00 0.40281669258619E-02 -.67035718191007E+01 + 275 0.33365257343406E+00 0.44298055667244E-02 -.66986670388636E+01 + 276 0.34189379199788E+00 0.48708677294702E-02 -.66934211572670E+01 + 277 0.35033856866023E+00 0.53551263285516E-02 -.66878077119654E+01 + 278 0.35899193130614E+00 0.58867003757658E-02 -.66817980845451E+01 + 279 0.36785903200940E+00 0.64700844185214E-02 -.66753613350664E+01 + 280 0.37694515010003E+00 0.71101801263563E-02 -.66684640272312E+01 + 281 0.38625569530750E+00 0.78123301271878E-02 -.66610700443043E+01 + 282 0.39579621098160E+00 0.85823541904736E-02 -.66531403960795E+01 + 283 0.40557237739284E+00 0.94265878482454E-02 -.66446330173680E+01 + 284 0.41559001511444E+00 0.10351923536613E-01 -.66355025587155E+01 + 285 0.42585508848777E+00 0.11365854329564E-01 -.66257001703204E+01 + 286 0.43637370917342E+00 0.12476520323454E-01 -.66151732804413E+01 + 287 0.44715213979000E+00 0.13692757714303E-01 -.66038653699487E+01 + 288 0.45819679764282E+00 0.15024150590659E-01 -.65917157450994E+01 + 289 0.46951425854459E+00 0.16481085442260E-01 -.65786593111019E+01 + 290 0.48111126073064E+00 0.18074808358995E-01 -.65646263495983E+01 + 291 0.49299470887069E+00 0.19817484865755E-01 -.65495423038226E+01 + 292 0.50517167817980E+00 0.21722262306972E-01 -.65333275759117E+01 + 293 0.51764941863084E+00 0.23803334660370E-01 -.65158973416434E+01 + 294 0.53043535927102E+00 0.26076009623323E-01 -.64971613887709E+01 + 295 0.54353711264501E+00 0.28556777778422E-01 -.64770239861030E+01 + 296 0.55696247932735E+00 0.31263383608538E-01 -.64553837915540E+01 + 297 0.57071945256673E+00 0.34214898097954E-01 -.64321338085543E+01 + 298 0.58481622304513E+00 0.37431792627244E-01 -.64071614014563E+01 + 299 0.59926118375434E+00 0.40936013848785E-01 -.63803483818892E+01 + 300 0.61406293499308E+00 0.44751059220700E-01 -.63515711793913E+01 + 301 0.62923028948740E+00 0.48902052884510E-01 -.63207011110484E+01 + 302 0.64477227763774E+00 0.53415821601275E-01 -.62876047662704E+01 + 303 0.66069815289540E+00 0.58320970519060E-01 -.62521445241883E+01 + 304 0.67701739727191E+00 0.63647958638852E-01 -.62141792224130E+01 + 305 0.69373972698453E+00 0.69429173984878E-01 -.61735649969734E+01 + 306 0.71087509824105E+00 0.75699008678350E-01 -.61301563140826E+01 + 307 0.72843371316760E+00 0.82493934370830E-01 -.60838072148507E+01 + 308 0.74642602588284E+00 0.89852578825536E-01 -.60343727940526E+01 + 309 0.76486274872215E+00 0.97815804852417E-01 -.59817109334365E+01 + 310 0.78375485861558E+00 0.10642679331584E+00 -.59256843086563E+01 + 311 0.80311360362339E+00 0.11573113255082E+00 -.58661626865551E+01 + 312 0.82295050963289E+00 0.12577691725132E+00 -.58030255260247E+01 + 313 0.84327738722082E+00 0.13661486073420E+00 -.57361648908100E+01 + 314 0.86410633868517E+00 0.14829842543297E+00 -.56654886762054E+01 + 315 0.88544976525070E+00 0.16088397752597E+00 -.55909241433884E+01 + 316 0.90732037445239E+00 0.17443097273434E+00 -.55124217449568E+01 + 317 0.92973118770136E+00 0.18900218150672E+00 -.54299592128818E+01 + 318 0.95269554803758E+00 0.20466396299192E+00 -.53435458654141E+01 + 319 0.97622712807411E+00 0.22148659832796E+00 -.52532270723476E+01 + 320 0.10003399381375E+01 0.23954469476096E+00 -.51590887983615E+01 + 321 0.10250483346095E+01 0.25891767284648E+00 -.50612621218617E+01 + 322 0.10503670284744E+01 0.27969034934833E+00 -.49599276017470E+01 + 323 0.10763110940777E+01 0.30195362827991E+00 -.48553193367522E+01 + 324 0.11028959781014E+01 0.32580531164773E+00 -.47477285312649E+01 + 325 0.11301375087605E+01 0.35135103965028E+00 -.46375063474781E+01 + 326 0.11580519052269E+01 0.37870536713262E+00 -.45250657858894E+01 + 327 0.11866557872860E+01 0.40799297876664E+00 -.44108822937954E+01 + 328 0.12159661852320E+01 0.43935003949803E+00 -.42954927537066E+01 + 329 0.12460005500072E+01 0.47292566909967E+00 -.41794924498492E+01 + 330 0.12767767635924E+01 0.50888352011429E+00 -.40635295511374E+01 + 331 0.13083131496531E+01 0.54740342714947E+00 -.39482965849534E+01 + 332 0.13406284844496E+01 0.58868308278247E+00 -.38345183129093E+01 + 333 0.13737420080155E+01 0.63293968206922E+00 -.37229353685539E+01 + 334 0.14076734356135E+01 0.68041146533229E+00 -.36142829982259E+01 + 335 0.14424429694731E+01 0.73135907998493E+00 -.35092642945019E+01 + 336 0.14780713108191E+01 0.78606668037505E+00 -.34085174812506E+01 + 337 0.15145796721963E+01 0.84484269534361E+00 -.33125771807077E+01 + 338 0.15519897900996E+01 0.90802022347477E+00 -.32218302799484E+01 + 339 0.15903239379150E+01 0.97595707442405E+00 -.31364681704297E+01 + 340 0.16296049391815E+01 0.10490355700178E+01 -.30564389600095E+01 + 341 0.16698561811793E+01 0.11276623569164E+01 -.29814060460563E+01 + 342 0.17111016288544E+01 0.12122686601239E+01 -.29107245223841E+01 + 343 0.17533658390872E+01 0.13033115987432E+01 -.28434548948182E+01 + 344 0.17966739753126E+01 0.14012773246421E+01 -.27784403663624E+01 + 345 0.18410518225028E+01 0.15066866846899E+01 -.27144852050720E+01 + 346 0.18865258025186E+01 0.16201035624665E+01 -.26506881416879E+01 + 347 0.19331229898409E+01 0.17421445029467E+01 -.25870067935138E+01 + 348 0.19808711276899E+01 0.18734855223105E+01 -.25245314545100E+01 + 349 0.20297986445439E+01 0.00000000000000E+00 -.24635895339570E+01 + 350 0.20799346710641E+01 0.00000000000000E+00 -.24041379415823E+01 + 351 0.21313090574394E+01 0.00000000000000E+00 -.23461359088252E+01 + 352 0.21839523911581E+01 0.00000000000000E+00 -.22895446832767E+01 + 353 0.22378960152197E+01 0.00000000000000E+00 -.22343272749205E+01 + 354 0.22931720467957E+01 0.00000000000000E+00 -.21804482458700E+01 + 355 0.23498133963515E+01 0.00000000000000E+00 -.21278735364407E+01 + 356 0.24078537872414E+01 0.00000000000000E+00 -.20765703214285E+01 + 357 0.24673277757863E+01 0.00000000000000E+00 -.20265068913789E+01 + 358 0.25282707718482E+01 0.00000000000000E+00 -.19776525544369E+01 + 359 0.25907190599128E+01 0.00000000000000E+00 -.19299775550679E+01 + 360 0.26547098206927E+01 0.00000000000000E+00 -.18834530065460E+01 + 361 0.27202811532638E+01 0.00000000000000E+00 -.18380508346311E+01 + 362 0.27874720977494E+01 0.00000000000000E+00 -.17937437302970E+01 + 363 0.28563226585638E+01 0.00000000000000E+00 -.17505051097563E+01 + 364 0.29268738282303E+01 0.00000000000000E+00 -.17083090803437E+01 + 365 0.29991676117876E+01 0.00000000000000E+00 -.16671304110893E+01 + 366 0.30732470517988E+01 0.00000000000000E+00 -.16269445070379E+01 + 367 0.31491562539782E+01 0.00000000000000E+00 -.15877273865535E+01 + 368 0.32269404134515E+01 0.00000000000000E+00 -.15494556610041E+01 + 369 0.33066458416637E+01 0.00000000000000E+00 -.15121065163435E+01 + 370 0.33883199939528E+01 0.00000000000000E+00 -.14756576962114E+01 + 371 0.34720114978035E+01 0.00000000000000E+00 -.14400874862538E+01 + 372 0.35577701817992E+01 0.00000000000000E+00 -.14053746994306E+01 + 373 0.36456471052896E+01 0.00000000000000E+00 -.13714986621330E+01 + 374 0.37356945887903E+01 0.00000000000000E+00 -.13384392009682E+01 + 375 0.38279662451334E+01 0.00000000000000E+00 -.13061766301102E+01 + 376 0.39225170113882E+01 0.00000000000000E+00 -.12746917391306E+01 + 377 0.40194031815695E+01 0.00000000000000E+00 -.12439657812515E+01 + 378 0.41186824401543E+01 0.00000000000000E+00 -.12139804619715E+01 + 379 0.42204138964261E+01 0.00000000000000E+00 -.11847179280288E+01 + 380 0.43246581196678E+01 0.00000000000000E+00 -.11561607566757E+01 + 381 0.44314771752236E+01 0.00000000000000E+00 -.11282919452406E+01 + 382 0.45409346614516E+01 0.00000000000000E+00 -.11010949009631E+01 + 383 0.46530957475895E+01 0.00000000000000E+00 -.10745534310878E+01 + 384 0.47680272125549E+01 0.00000000000000E+00 -.10486517332061E+01 + 385 0.48857974847050E+01 0.00000000000000E+00 -.10233743858363E+01 + 386 0.50064766825773E+01 0.00000000000000E+00 -.99870633923556E+00 + 387 0.51301366566369E+01 0.00000000000000E+00 -.97463290643499E+00 + 388 0.52568510320558E+01 0.00000000000000E+00 -.95113975449285E+00 + 389 0.53866952525476E+01 0.00000000000000E+00 -.92821289595944E+00 + 390 0.55197466252855E+01 0.00000000000000E+00 -.90583868054825E+00 + 391 0.56560843669301E+01 0.00000000000000E+00 -.88400378700832E+00 + 392 0.57957896507933E+01 0.00000000000000E+00 -.86269521519265E+00 + 393 0.59389456551679E+01 0.00000000000000E+00 -.84190027831799E+00 + 394 0.60856376128505E+01 0.00000000000000E+00 -.82160659541124E+00 + 395 0.62359528618879E+01 0.00000000000000E+00 -.80180208393793E+00 + 396 0.63899808975765E+01 0.00000000000000E+00 -.78247495260848E+00 + 397 0.65478134257467E+01 0.00000000000000E+00 -.76361369435783E+00 + 398 0.67095444173626E+01 0.00000000000000E+00 -.74520707949432E+00 + 399 0.68752701644715E+01 0.00000000000000E+00 -.72724414901368E+00 + 400 0.70450893375339E+01 0.00000000000000E+00 -.70971420807425E+00 + 401 0.72191030441710E+01 0.00000000000000E+00 -.69260681962940E+00 + 402 0.73974148893620E+01 0.00000000000000E+00 -.67591179821353E+00 + 403 0.75801310371293E+01 0.00000000000000E+00 -.65961920387775E+00 + 404 0.77673602737464E+01 0.00000000000000E+00 -.64371933627183E+00 + 405 0.79592140725079E+01 0.00000000000000E+00 -.62820272886877E+00 + 406 0.81558066600989E+01 0.00000000000000E+00 -.61306014332856E+00 + 407 0.83572550846033E+01 0.00000000000000E+00 -.59828256399781E+00 + 408 0.85636792851930E+01 0.00000000000000E+00 -.58386119254202E+00 + 409 0.87752021635373E+01 0.00000000000000E+00 -.56978744270716E+00 + 410 0.89919496569766E+01 0.00000000000000E+00 -.55605293520753E+00 + 411 0.92140508135040E+01 0.00000000000000E+00 -.54264949273693E+00 + 412 0.94416378685975E+01 0.00000000000000E+00 -.52956913509996E+00 + 413 0.96748463239519E+01 0.00000000000000E+00 -.51680407446078E+00 + 414 0.99138150281535E+01 0.00000000000000E+00 -.50434671070633E+00 + 415 0.10158686259349E+02 0.00000000000000E+00 -.49218962692137E+00 + 416 0.10409605809955E+02 0.00000000000000E+00 -.48032558497255E+00 + 417 0.10666723073461E+02 0.00000000000000E+00 -.46874752119893E+00 + 418 0.10930191133375E+02 0.00000000000000E+00 -.45744854220643E+00 + 419 0.11200166854370E+02 0.00000000000000E+00 -.44642192076357E+00 + 420 0.11476810975672E+02 0.00000000000000E+00 -.43566109179620E+00 + 421 0.11760288206772E+02 0.00000000000000E+00 -.42515964847878E+00 + 422 0.12050767325479E+02 0.00000000000000E+00 -.41491133841981E+00 + 423 0.12348421278418E+02 0.00000000000000E+00 -.40491005993930E+00 + 424 0.12653427283995E+02 0.00000000000000E+00 -.39514985843594E+00 + 425 0.12965966937910E+02 0.00000000000000E+00 -.38562492284174E+00 + 426 0.13286226321276E+02 0.00000000000000E+00 -.37632958216233E+00 + 427 0.13614396111412E+02 0.00000000000000E+00 -.36725830210045E+00 + 428 0.13950671695363E+02 0.00000000000000E+00 -.35840568176095E+00 + 429 0.14295253286239E+02 0.00000000000000E+00 -.34976645043520E+00 + 430 0.14648346042409E+02 0.00000000000000E+00 -.34133546446297E+00 + 431 0.15010160189657E+02 0.00000000000000E+00 -.33310770416997E+00 + 432 0.15380911146341E+02 0.00000000000000E+00 -.32507827087925E+00 + 433 0.15760819651656E+02 0.00000000000000E+00 -.31724238399458E+00 + 434 0.16150111897052E+02 0.00000000000000E+00 -.30959537815418E+00 + 435 0.16549019660909E+02 0.00000000000000E+00 -.30213270045299E+00 + 436 0.16957780446533E+02 0.00000000000000E+00 -.29484990773201E+00 + 437 0.17376637623563E+02 0.00000000000000E+00 -.28774266393286E+00 + 438 0.17805840572865E+02 0.00000000000000E+00 -.28080673751621E+00 + 439 0.18245644835014E+02 0.00000000000000E+00 -.27403799894234E+00 + 440 0.18696312262439E+02 0.00000000000000E+00 -.26743241821249E+00 + 441 0.19158111175321E+02 0.00000000000000E+00 -.26098606246949E+00 + 442 0.19631316521352E+02 0.00000000000000E+00 -.25469509365618E+00 + 443 0.20116210039429E+02 0.00000000000000E+00 -.24855576623030E+00 + 444 0.20613080427403E+02 0.00000000000000E+00 -.24256442493442E+00 + 445 0.21122223513960E+02 0.00000000000000E+00 -.23671750261971E+00 + 446 0.21643942434755E+02 0.00000000000000E+00 -.23101151812209E+00 + 447 0.22178547812893E+02 0.00000000000000E+00 -.22544307418961E+00 + 448 0.22726357943872E+02 0.00000000000000E+00 -.22000885545975E+00 + 449 0.23287698985085E+02 0.00000000000000E+00 -.21470562648556E+00 + 450 0.23862905150017E+02 0.00000000000000E+00 -.20953022980927E+00 + 451 0.24452318907222E+02 0.00000000000000E+00 -.20447958408243E+00 + 452 0.25056291184231E+02 0.00000000000000E+00 -.19955068223132E+00 + 453 0.25675181576481E+02 0.00000000000000E+00 -.19474058966656E+00 + 454 0.26309358561420E+02 0.00000000000000E+00 -.19004644253592E+00 + 455 0.26959199717887E+02 0.00000000000000E+00 -.18546544601924E+00 + 456 0.27625091950919E+02 0.00000000000000E+00 -.18099487266443E+00 + 457 0.28307431722107E+02 0.00000000000000E+00 -.17663206076357E+00 + 458 0.29006625285643E+02 0.00000000000000E+00 -.17237441276820E+00 + 459 0.29723088930198E+02 0.00000000000000E+00 -.16821939374275E+00 + 460 0.30457249226774E+02 0.00000000000000E+00 -.16416452985533E+00 + 461 0.31209543282676E+02 0.00000000000000E+00 -.16020740690478E+00 + 462 0.31980419001758E+02 0.00000000000000E+00 -.15634566888336E+00 + 463 0.32770335351101E+02 0.00000000000000E+00 -.15257701657398E+00 + 464 0.33579762634273E+02 0.00000000000000E+00 -.14889920618130E+00 + 465 0.34409182771340E+02 0.00000000000000E+00 -.14531004799581E+00 + 466 0.35259089585792E+02 0.00000000000000E+00 -.14180740509008E+00 + 467 0.36129989098561E+02 0.00000000000000E+00 -.13838919204653E+00 + 468 0.37022399829296E+02 0.00000000000000E+00 -.13505337371575E+00 + 469 0.37936853105079E+02 0.00000000000000E+00 -.13179796400483E+00 + 470 0.38873893376775E+02 0.00000000000000E+00 -.12862102469487E+00 + 471 0.39834078543181E+02 0.00000000000000E+00 -.12552066428698E+00 + 472 0.40817980283197E+02 0.00000000000000E+00 -.12249503687614E+00 + 473 0.41826184396192E+02 0.00000000000000E+00 -.11954234105215E+00 + 474 0.42859291150778E+02 0.00000000000000E+00 -.11666081882712E+00 + 475 0.43917915642203E+02 0.00000000000000E+00 -.11384875458878E+00 + 476 0.45002688158565E+02 0.00000000000000E+00 -.11110447407903E+00 + 477 0.46114254556082E+02 0.00000000000000E+00 -.10842634339712E+00 + 478 0.47253276643617E+02 0.00000000000000E+00 -.10581276802686E+00 + 479 0.48420432576714E+02 0.00000000000000E+00 -.10326219188724E+00 + 480 0.49616417261359E+02 0.00000000000000E+00 -.10077309640601E+00 + 481 0.50841942767714E+02 0.00000000000000E+00 -.98343999615510E-01 + 482 0.52097738754077E+02 0.00000000000000E+00 -.95973455270333E-01 + 483 0.53384552901303E+02 0.00000000000000E+00 -.93660051986272E-01 + 484 0.54703151357965E+02 0.00000000000000E+00 -.91402412399992E-01 + 485 0.56054319196507E+02 0.00000000000000E+00 -.89199192348972E-01 + 486 0.57438860880660E+02 0.00000000000000E+00 -.87049080071213E-01 + 487 0.58857600744413E+02 0.00000000000000E+00 -.84950795424235E-01 + 488 0.60311383482800E+02 0.00000000000000E+00 -.82903089122899E-01 + 489 0.61801074654825E+02 0.00000000000000E+00 -.80904741995608E-01 + 490 0.63327561198799E+02 0.00000000000000E+00 -.78954564258425E-01 + 491 0.64891751960409E+02 0.00000000000000E+00 -.77051394806699E-01 + 492 0.66494578233831E+02 0.00000000000000E+00 -.75194100523762E-01 + 493 0.68136994316207E+02 0.00000000000000E+00 -.73381575606287E-01 + 494 0.69819978075817E+02 0.00000000000000E+00 -.71612740905911E-01 + 495 0.71544531534290E+02 0.00000000000000E+00 -.69886543286729E-01 + 496 0.73311681463187E+02 0.00000000000000E+00 -.68201954998271E-01 + 497 0.75122479995328E+02 0.00000000000000E+00 -.66557973063601E-01 + 498 0.76978005251212E+02 0.00000000000000E+00 -.64953618682151E-01 + 499 0.78879361980917E+02 0.00000000000000E+00 -.63387936646971E-01 diff --git a/abipy/data/pseudos/31-Ga.LDA.fhi b/abipy/data/pseudos/31-Ga.LDA.fhi new file mode 100644 index 000000000..94f920660 --- /dev/null +++ b/abipy/data/pseudos/31-Ga.LDA.fhi @@ -0,0 +1,2138 @@ +gallium, fhi98PP : Trouiller-Martins-type, LDA Ceperley/Alder Perdew/Wang (1992), l= 0 local + 31.000 3.000 011001 zatom,zion,pspdat + 6 7 3 0 529 0 pspcod,pspxc,lmax,lloc,mmax,r2well + 0.000 0.000 0.000 rchrg, fchrg, qchrg +5--- These two lines are available for giving more information, later +6 +7-Here follows the cpi file from the fhi98pp code- +0.30000000000000E+01 4 + 0.0000 0.0000 0.0000 0.0000 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 + 0.0000 .00e+00 .00e+00 +529 0.10247000000000E+01 + 1 0.20161290322581E-03 0.45753506550139E-04 0.26206986832584E+00 + 2 0.20659274193548E-03 0.46883618161927E-04 0.26206982048973E+00 + 3 0.21169558266129E-03 0.48041643530527E-04 0.26206977382620E+00 + 4 0.21692446355302E-03 0.49228272125731E-04 0.26206972830799E+00 + 5 0.22228249780278E-03 0.50444210460365E-04 0.26206968390850E+00 + 6 0.22777287549851E-03 0.51690182478150E-04 0.26206964060185E+00 + 7 0.23339886552333E-03 0.52966930010440E-04 0.26206959836282E+00 + 8 0.23916381750175E-03 0.54275213213071E-04 0.26206955716687E+00 + 9 0.24507116379405E-03 0.55615811017565E-04 0.26206951699009E+00 + 10 0.25112442153976E-03 0.56989521595084E-04 0.26206947780924E+00 + 11 0.25732719475179E-03 0.58397162831660E-04 0.26206943960167E+00 + 12 0.26368317646216E-03 0.59839572815145E-04 0.26206940234538E+00 + 13 0.27019615092077E-03 0.61317610334207E-04 0.26206936601894E+00 + 14 0.27686999584852E-03 0.62832155389640E-04 0.26206933060153E+00 + 15 0.28370868474598E-03 0.64384109718309E-04 0.26206929607291E+00 + 16 0.29071628925920E-03 0.65974397330032E-04 0.26206926241341E+00 + 17 0.29789698160390E-03 0.67603965057727E-04 0.26206922960393E+00 + 18 0.30525503704952E-03 0.69273783121150E-04 0.26206919762590E+00 + 19 0.31279483646464E-03 0.70984845704550E-04 0.26206916646132E+00 + 20 0.32052086892532E-03 0.72738171548598E-04 0.26206913609270E+00 + 21 0.32843773438778E-03 0.74534804556942E-04 0.26206910650310E+00 + 22 0.33655014642715E-03 0.76375814417728E-04 0.26206907767610E+00 + 23 0.34486293504390E-03 0.78262297240492E-04 0.26206904959577E+00 + 24 0.35338104953949E-03 0.80195376208774E-04 0.26206902224672E+00 + 25 0.36210956146311E-03 0.82176202248847E-04 0.26206899561403E+00 + 26 0.37105366763125E-03 0.84205954714979E-04 0.26206896968329E+00 + 27 0.38021869322175E-03 0.86285842091607E-04 0.26206894444059E+00 + 28 0.38961009494432E-03 0.88417102712863E-04 0.26206891987249E+00 + 29 0.39923346428945E-03 0.90601005499872E-04 0.26206889596603E+00 + 30 0.40909453085740E-03 0.92838850716260E-04 0.26206887270874E+00 + 31 0.41919916576957E-03 0.95131970742327E-04 0.26206885008862E+00 + 32 0.42955338516408E-03 0.97481730868339E-04 0.26206882809413E+00 + 33 0.44016335377764E-03 0.99889530107420E-04 0.26206880671423E+00 + 34 0.45103538861594E-03 0.10235680202852E-03 0.26206878593830E+00 + 35 0.46217596271476E-03 0.10488501560995E-03 0.26206876575623E+00 + 36 0.47359170899381E-03 0.10747567611402E-03 0.26206874615836E+00 + 37 0.48528942420596E-03 0.11013032598329E-03 0.26206872713549E+00 + 38 0.49727607298385E-03 0.11285054575889E-03 0.26206870867890E+00 + 39 0.50955879198655E-03 0.11563795502162E-03 0.26206869078031E+00 + 40 0.52214489414861E-03 0.11849421335624E-03 0.26206867343194E+00 + 41 0.53504187303408E-03 0.12142102133958E-03 0.26206865662647E+00 + 42 0.54825740729803E-03 0.12442012155310E-03 0.26206864035704E+00 + 43 0.56179936525829E-03 0.12749329962037E-03 0.26206862461728E+00 + 44 0.57567580958017E-03 0.13064238527032E-03 0.26206860940130E+00 + 45 0.58989500207680E-03 0.13386925342660E-03 0.26206859470370E+00 + 46 0.60446540862809E-03 0.13717582532400E-03 0.26206858051957E+00 + 47 0.61939570422121E-03 0.14056406965228E-03 0.26206856684447E+00 + 48 0.63469477811547E-03 0.14403600372843E-03 0.26206855367452E+00 + 49 0.65037173913492E-03 0.14759369469776E-03 0.26206854100630E+00 + 50 0.66643592109156E-03 0.15123926076472E-03 0.26206852883694E+00 + 51 0.68289688834252E-03 0.15497487245410E-03 0.26206851716408E+00 + 52 0.69976444148458E-03 0.15880275390341E-03 0.26206850598593E+00 + 53 0.71704862318925E-03 0.16272518418716E-03 0.26206849530122E+00 + 54 0.73475972418202E-03 0.16674449867387E-03 0.26206848510926E+00 + 55 0.75290828936932E-03 0.17086309041659E-03 0.26206847540994E+00 + 56 0.77150512411674E-03 0.17508341157779E-03 0.26206846620374E+00 + 57 0.79056130068242E-03 0.17940797488943E-03 0.26206845749172E+00 + 58 0.81008816480928E-03 0.18383935514912E-03 0.26206844927561E+00 + 59 0.83009734248007E-03 0.18838019075320E-03 0.26206844155774E+00 + 60 0.85060074683933E-03 0.19303318526778E-03 0.26206843434111E+00 + 61 0.87161058528626E-03 0.19780110903848E-03 0.26206842762941E+00 + 62 0.89313936674283E-03 0.20268680084001E-03 0.26206842142701E+00 + 63 0.91519990910138E-03 0.20769316956651E-03 0.26206841573902E+00 + 64 0.93780534685618E-03 0.21282319596358E-03 0.26206841057129E+00 + 65 0.96096913892353E-03 0.21807993440322E-03 0.26206840593043E+00 + 66 0.98470507665494E-03 0.22346651470246E-03 0.26206840182387E+00 + 67 0.10090272920483E-02 0.22898614398709E-03 0.26206839825985E+00 + 68 0.10339502661619E-02 0.23464210860132E-03 0.26206839524748E+00 + 69 0.10594888377361E-02 0.24043777606464E-03 0.26206839279674E+00 + 70 0.10856582120282E-02 0.24637659707709E-03 0.26206839091855E+00 + 71 0.11124739698653E-02 0.25246210757401E-03 0.26206838962480E+00 + 72 0.11399520769210E-02 0.25869793083158E-03 0.26206838892835E+00 + 73 0.11681088932209E-02 0.26508777962438E-03 0.26206838884312E+00 + 74 0.11969611828835E-02 0.27163545843628E-03 0.26206838938410E+00 + 75 0.12265261241007E-02 0.27834486572594E-03 0.26206839056740E+00 + 76 0.12568213193660E-02 0.28521999624828E-03 0.26206839241032E+00 + 77 0.12878648059543E-02 0.29226494343333E-03 0.26206839493137E+00 + 78 0.13196750666614E-02 0.29948390182389E-03 0.26206839815034E+00 + 79 0.13522710408079E-02 0.30688116957335E-03 0.26206840208833E+00 + 80 0.13856721355159E-02 0.31446115100533E-03 0.26206840676786E+00 + 81 0.14198982372631E-02 0.32222835923648E-03 0.26206841221287E+00 + 82 0.14549697237235E-02 0.33018741886418E-03 0.26206841844884E+00 + 83 0.14909074758995E-02 0.33834306872060E-03 0.26206842550281E+00 + 84 0.15277328905542E-02 0.34670016469486E-03 0.26206843340349E+00 + 85 0.15654678929509E-02 0.35526368262496E-03 0.26206844218131E+00 + 86 0.16041349499068E-02 0.36403872126108E-03 0.26206845186850E+00 + 87 0.16437570831695E-02 0.37303050530226E-03 0.26206846249921E+00 + 88 0.16843578831238E-02 0.38224438850806E-03 0.26206847410954E+00 + 89 0.17259615228369E-02 0.39168585688713E-03 0.26206848673768E+00 + 90 0.17685927724510E-02 0.40136053196463E-03 0.26206850042399E+00 + 91 0.18122770139305E-02 0.41127417413042E-03 0.26206851521107E+00 + 92 0.18570402561746E-02 0.42143268606997E-03 0.26206853114396E+00 + 93 0.19029091505021E-02 0.43184211628015E-03 0.26206854827012E+00 + 94 0.19499110065195E-02 0.44250866267192E-03 0.26206856663968E+00 + 95 0.19980738083806E-02 0.45343867626208E-03 0.26206858630548E+00 + 96 0.20474262314476E-02 0.46463866495630E-03 0.26206860732321E+00 + 97 0.20979976593643E-02 0.47611529742572E-03 0.26206862975160E+00 + 98 0.21498182015506E-02 0.48787540707937E-03 0.26206865365250E+00 + 99 0.22029187111289E-02 0.49992599613485E-03 0.26206867909108E+00 + 100 0.22573308032938E-02 0.51227423978970E-03 0.26206870613595E+00 + 101 0.23130868741352E-02 0.52492749049588E-03 0.26206873485937E+00 + 102 0.23702201199263E-02 0.53789328234003E-03 0.26206876533739E+00 + 103 0.24287645568885E-02 0.55117933553206E-03 0.26206879765006E+00 + 104 0.24887550414436E-02 0.56479356100474E-03 0.26206883188161E+00 + 105 0.25502272909673E-02 0.57874406512716E-03 0.26206886812067E+00 + 106 0.26132179050542E-02 0.59303915453475E-03 0.26206890646046E+00 + 107 0.26777643873090E-02 0.60768734107878E-03 0.26206894699905E+00 + 108 0.27439051676755E-02 0.62269734689843E-03 0.26206898983954E+00 + 109 0.28116796253171E-02 0.63807810961832E-03 0.26206903509040E+00 + 110 0.28811281120625E-02 0.65383878767466E-03 0.26206908286564E+00 + 111 0.29522919764304E-02 0.66998876577331E-03 0.26206913328513E+00 + 112 0.30252135882482E-02 0.68653766048288E-03 0.26206918647489E+00 + 113 0.30999363638780E-02 0.70349532596636E-03 0.26206924256738E+00 + 114 0.31765047920657E-02 0.72087185985461E-03 0.26206930170182E+00 + 115 0.32549644604298E-02 0.73867760926540E-03 0.26206936402452E+00 + 116 0.33353620826024E-02 0.75692317697141E-03 0.26206942968926E+00 + 117 0.34177455260427E-02 0.77561942772107E-03 0.26206949885760E+00 + 118 0.35021638405359E-02 0.79477749471601E-03 0.26206957169933E+00 + 119 0.35886672873971E-02 0.81440878624899E-03 0.26206964839285E+00 + 120 0.36773073693959E-02 0.83452499250629E-03 0.26206972912556E+00 + 121 0.37681368614199E-02 0.85513809253879E-03 0.26206981409437E+00 + 122 0.38612098418970E-02 0.87626036140573E-03 0.26206990350614E+00 + 123 0.39565817249919E-02 0.89790437749577E-03 0.26206999757817E+00 + 124 0.40543092935992E-02 0.92008303002943E-03 0.26207009653871E+00 + 125 0.41544507331511E-02 0.94280952674773E-03 0.26207020062753E+00 + 126 0.42570656662599E-02 0.96609740179157E-03 0.26207031009647E+00 + 127 0.43622151882165E-02 0.98996052377660E-03 0.26207042521004E+00 + 128 0.44699619033655E-02 0.10144131040685E-02 0.26207054624608E+00 + 129 0.45803699623786E-02 0.10394697052638E-02 0.26207067349635E+00 + 130 0.46935051004493E-02 0.10651452498812E-02 0.26207080726730E+00 + 131 0.48094346764304E-02 0.10914550292688E-02 0.26207094788075E+00 + 132 0.49282277129383E-02 0.11184147127326E-02 0.26207109567467E+00 + 133 0.50499549374478E-02 0.11460403568922E-02 0.26207125100398E+00 + 134 0.51746888244028E-02 0.11743484152683E-02 0.26207141424139E+00 + 135 0.53025036383656E-02 0.12033557481099E-02 0.26207158577827E+00 + 136 0.54334754782332E-02 0.12330796324645E-02 0.26207176602559E+00 + 137 0.55676823225455E-02 0.12635377725002E-02 0.26207195541491E+00 + 138 0.57052040759124E-02 0.12947483100838E-02 0.26207215439934E+00 + 139 0.58461226165875E-02 0.13267298356234E-02 0.26207236345468E+00 + 140 0.59905218452172E-02 0.13595013991798E-02 0.26207258308050E+00 + 141 0.61384877347940E-02 0.13930825218562E-02 0.26207281380134E+00 + 142 0.62901083818434E-02 0.14274932074710E-02 0.26207305616791E+00 + 143 0.64454740588750E-02 0.14627539545223E-02 0.26207331075843E+00 + 144 0.66046772681292E-02 0.14988857684512E-02 0.26207357817998E+00 + 145 0.67678127966520E-02 0.15359101742106E-02 0.26207385906992E+00 + 146 0.69349777727293E-02 0.15738492291492E-02 0.26207415409738E+00 + 147 0.71062717237157E-02 0.16127255362165E-02 0.26207446396484E+00 + 148 0.72817966352915E-02 0.16525622574992E-02 0.26207478940979E+00 + 149 0.74616570121832E-02 0.16933831280956E-02 0.26207513120645E+00 + 150 0.76459599403841E-02 0.17352124703384E-02 0.26207549016755E+00 + 151 0.78348151509116E-02 0.17780752083731E-02 0.26207586714630E+00 + 152 0.80283350851391E-02 0.18219968831032E-02 0.26207626303833E+00 + 153 0.82266349617420E-02 0.18670036675095E-02 0.26207667878379E+00 + 154 0.84298328452971E-02 0.19131223823552E-02 0.26207711536956E+00 + 155 0.86380497165759E-02 0.19603805122856E-02 0.26207757383155E+00 + 156 0.88514095445753E-02 0.20088062223328E-02 0.26207805525707E+00 + 157 0.90700393603263E-02 0.20584283748366E-02 0.26207856078742E+00 + 158 0.92940693325264E-02 0.21092765467917E-02 0.26207909162048E+00 + 159 0.95236328450398E-02 0.21613810476333E-02 0.26207964901352E+00 + 160 0.97588665763123E-02 0.22147729374717E-02 0.26208023428612E+00 + 161 0.99999105807472E-02 0.22694840457879E-02 0.26208084882316E+00 + 162 0.10246908372092E-01 0.23255469906038E-02 0.26208149407810E+00 + 163 0.10500007008882E-01 0.23829951981375E-02 0.26208217157626E+00 + 164 0.10759357182002E-01 0.24418629229578E-02 0.26208288291836E+00 + 165 0.11025113304397E-01 0.25021852686516E-02 0.26208362978417E+00 + 166 0.11297433603016E-01 0.25639982090171E-02 0.26208441393640E+00 + 167 0.11576480213010E-01 0.26273386097975E-02 0.26208523722466E+00 + 168 0.11862419274272E-01 0.26922442509696E-02 0.26208610158977E+00 + 169 0.12155421030346E-01 0.27587538496030E-02 0.26208700906809E+00 + 170 0.12455659929796E-01 0.28269070833038E-02 0.26208796179619E+00 + 171 0.12763314730062E-01 0.28967446142615E-02 0.26208896201569E+00 + 172 0.13078568603894E-01 0.29683081139134E-02 0.26209001207829E+00 + 173 0.13401609248410E-01 0.30416402882443E-02 0.26209111445111E+00 + 174 0.13732628996846E-01 0.31167849037399E-02 0.26209227172218E+00 + 175 0.14071824933068E-01 0.31937868140111E-02 0.26209348660629E+00 + 176 0.14419399008915E-01 0.32726919871089E-02 0.26209476195099E+00 + 177 0.14775558164435E-01 0.33535475335495E-02 0.26209610074298E+00 + 178 0.15140514451097E-01 0.34364017350682E-02 0.26209750611467E+00 + 179 0.15514485158039E-01 0.35213040741256E-02 0.26209898135113E+00 + 180 0.15897692941442E-01 0.36083052641861E-02 0.26210052989729E+00 + 181 0.16290365957096E-01 0.36974572807904E-02 0.26210215536550E+00 + 182 0.16692737996236E-01 0.37888133934475E-02 0.26210386154337E+00 + 183 0.17105048624743E-01 0.38824281983688E-02 0.26210565240201E+00 + 184 0.17527543325774E-01 0.39783576520681E-02 0.26210753210456E+00 + 185 0.17960473645921E-01 0.40766591058569E-02 0.26210950501517E+00 + 186 0.18404097344975E-01 0.41773913412577E-02 0.26211157570826E+00 + 187 0.18858678549396E-01 0.42806146063664E-02 0.26211374897822E+00 + 188 0.19324487909566E-01 0.43863906531910E-02 0.26211602984957E+00 + 189 0.19801802760932E-01 0.44947827759976E-02 0.26211842358739E+00 + 190 0.20290907289128E-01 0.46058558506943E-02 0.26212093570829E+00 + 191 0.20792092699169E-01 0.47196763752863E-02 0.26212357199181E+00 + 192 0.21305657388838E-01 0.48363125114355E-02 0.26212633849216E+00 + 193 0.21831907126343E-01 0.49558341271603E-02 0.26212924155057E+00 + 194 0.22371155232363E-01 0.50783128407124E-02 0.26213228780797E+00 + 195 0.22923722766603E-01 0.52038220656682E-02 0.26213548421820E+00 + 196 0.23489938718938E-01 0.53324370572763E-02 0.26213883806169E+00 + 197 0.24070140205296E-01 0.54642349601017E-02 0.26214235695964E+00 + 198 0.24664672668366E-01 0.55992948570098E-02 0.26214604888864E+00 + 199 0.25273890083275E-01 0.57376978195380E-02 0.26214992219583E+00 + 200 0.25898155168332E-01 0.58795269597000E-02 0.26215398561448E+00 + 201 0.26537839600990E-01 0.60248674832743E-02 0.26215824828015E+00 + 202 0.27193324239134E-01 0.61738067446285E-02 0.26216271974724E+00 + 203 0.27864999347841E-01 0.63264343031340E-02 0.26216741000602E+00 + 204 0.28553264831733E-01 0.64828419812285E-02 0.26217232950018E+00 + 205 0.29258530473076E-01 0.66431239241863E-02 0.26217748914472E+00 + 206 0.29981216175761E-01 0.68073766616598E-02 0.26218290034434E+00 + 207 0.30721752215303E-01 0.69756991710575E-02 0.26218857501212E+00 + 208 0.31480579495021E-01 0.71481929428285E-02 0.26219452558866E+00 + 209 0.32258149808548E-01 0.73249620477276E-02 0.26220076506142E+00 + 210 0.33054926108819E-01 0.75061132061353E-02 0.26220730698436E+00 + 211 0.33871382783707E-01 0.76917558595162E-02 0.26221416549781E+00 + 212 0.34708005938464E-01 0.78820022440998E-02 0.26222135534835E+00 + 213 0.35565293685144E-01 0.80769674668728E-02 0.26222889190887E+00 + 214 0.36443756439167E-01 0.82767695839792E-02 0.26223679119846E+00 + 215 0.37343917223215E-01 0.84815296816266E-02 0.26224506990217E+00 + 216 0.38266311978628E-01 0.86913719596046E-02 0.26225374539050E+00 + 217 0.39211489884500E-01 0.89064238175265E-02 0.26226283573843E+00 + 218 0.40180013684647E-01 0.91268159439125E-02 0.26227235974378E+00 + 219 0.41172460022658E-01 0.93526824082377E-02 0.26228233694488E+00 + 220 0.42189419785218E-01 0.95841607560777E-02 0.26229278763714E+00 + 221 0.43231498453913E-01 0.98213921074899E-02 0.26230373288843E+00 + 222 0.44299316465724E-01 0.10064521258779E-01 0.26231519455281E+00 + 223 0.45393509582428E-01 0.10313696787804E-01 0.26232719528257E+00 + 224 0.46514729269114E-01 0.10569071162990E-01 0.26233975853791E+00 + 225 0.47663643082061E-01 0.10830800856218E-01 0.26235290859415E+00 + 226 0.48840935066188E-01 0.11099046459798E-01 0.26236667054585E+00 + 227 0.50047306162322E-01 0.11373972807688E-01 0.26238107030735E+00 + 228 0.51283474624532E-01 0.11655749101211E-01 0.26239613460931E+00 + 229 0.52550176447758E-01 0.11944549039459E-01 0.26241189099041E+00 + 230 0.53848165806017E-01 0.12240550954651E-01 0.26242836778375E+00 + 231 0.55178215501426E-01 0.12543937952669E-01 0.26244559409692E+00 + 232 0.56541117424311E-01 0.12854898059074E-01 0.26246359978510E+00 + 233 0.57937683024692E-01 0.13173624370862E-01 0.26248241541603E+00 + 234 0.59368743795402E-01 0.13500315214284E-01 0.26250207222589E+00 + 235 0.60835151767148E-01 0.13835174309048E-01 0.26252260206480E+00 + 236 0.62337780015796E-01 0.14178410939251E-01 0.26254403733066E+00 + 237 0.63877523182187E-01 0.14530240131422E-01 0.26256641088973E+00 + 238 0.65455298004787E-01 0.14890882840062E-01 0.26258975598249E+00 + 239 0.67072043865505E-01 0.15260566141108E-01 0.26261410611261E+00 + 240 0.68728723348983E-01 0.15639523433775E-01 0.26263949491735E+00 + 241 0.70426322815703E-01 0.16027994651257E-01 0.26266595601676E+00 + 242 0.72165852989251E-01 0.16426226480810E-01 0.26269352283945E+00 + 243 0.73948349558085E-01 0.16834472593761E-01 0.26272222842187E+00 + 244 0.75774873792170E-01 0.17252993886034E-01 0.26275210517817E+00 + 245 0.77646513174836E-01 0.17682058729841E-01 0.26278318463716E+00 + 246 0.79564382050255E-01 0.18121943237196E-01 0.26281549714244E+00 + 247 0.81529622286896E-01 0.18572931535984E-01 0.26284907151162E+00 + 248 0.83543403957382E-01 0.19035316059370E-01 0.26288393464991E+00 + 249 0.85606926035130E-01 0.19509397849372E-01 0.26292011111286E+00 + 250 0.87721417108197E-01 0.19995486875488E-01 0.26295762261253E+00 + 251 0.89888136110770E-01 0.20493902369340E-01 0.26299648746087E+00 + 252 0.92108373072706E-01 0.21004973176366E-01 0.26303671994317E+00 + 253 0.94383449887602E-01 0.21529038125643E-01 0.26307832961398E+00 + 254 0.96714721099826E-01 0.22066446419040E-01 0.26312132050682E+00 + 255 0.99103574710991E-01 0.22617558040961E-01 0.26316569024843E+00 + 256 0.10155143300635E+00 0.23182744190043E-01 0.26321142906700E+00 + 257 0.10405975340161E+00 0.23762387734265E-01 0.26325851868299E+00 + 258 0.10663002931063E+00 0.24356883691048E-01 0.26330693106980E+00 + 259 0.10926379103460E+00 0.24966639734025E-01 0.26335662707036E+00 + 260 0.11196260667316E+00 0.25592076728303E-01 0.26340755485419E+00 + 261 0.11472808305798E+00 0.26233629296162E-01 0.26345964819799E+00 + 262 0.11756186670952E+00 0.26891746415293E-01 0.26351282457094E+00 + 263 0.12046564481724E+00 0.27566892051827E-01 0.26356698300411E+00 + 264 0.12344114624423E+00 0.28259545830581E-01 0.26362200172137E+00 + 265 0.12649014255646E+00 0.28970203745144E-01 0.26367773550651E+00 + 266 0.12961444907760E+00 0.29699378910596E-01 0.26373401277924E+00 + 267 0.13281592596982E+00 0.30447602361901E-01 0.26379063234970E+00 + 268 0.13609647934127E+00 0.31215423901228E-01 0.26384735981800E+00 + 269 0.13945806238100E+00 0.32003412997706E-01 0.26390392358225E+00 + 270 0.14290267652182E+00 0.32812159743397E-01 0.26396001041462E+00 + 271 0.14643237263190E+00 0.33642275869558E-01 0.26401526056123E+00 + 272 0.15004925223591E+00 0.34494395827578E-01 0.26406926231694E+00 + 273 0.15375546876614E+00 0.35369177939332E-01 0.26412154602184E+00 + 274 0.15755322884466E+00 0.36267305622023E-01 0.26417157742040E+00 + 275 0.16144479359713E+00 0.37189488693046E-01 0.26421875031907E+00 + 276 0.16543247999897E+00 0.38136464760761E-01 0.26426237847151E+00 + 277 0.16951866225495E+00 0.39109000707598E-01 0.26430168661398E+00 + 278 0.17370577321265E+00 0.40107894272359E-01 0.26433580056593E+00 + 279 0.17799630581100E+00 0.41133975739169E-01 0.26436373630278E+00 + 280 0.18239281456453E+00 0.42188109741084E-01 0.26438438789895E+00 + 281 0.18689791708427E+00 0.43271197187005E-01 0.26439651422982E+00 + 282 0.19151429563626E+00 0.44384177321226E-01 0.26439872431068E+00 + 283 0.19624469873847E+00 0.45528029925678E-01 0.26438946113946E+00 + 284 0.20109194279731E+00 0.46703777675728E-01 0.26436698389801E+00 + 285 0.20605891378441E+00 0.47912488661230E-01 0.26432934835302E+00 + 286 0.21114856895488E+00 0.49155279085464E-01 0.26427438528383E+00 + 287 0.21636393860807E+00 0.50433316155573E-01 0.26419967674851E+00 + 288 0.22170812789169E+00 0.51747821179165E-01 0.26410252998322E+00 + 289 0.22718431865061E+00 0.53100072882926E-01 0.26397994871194E+00 + 290 0.23279577132128E+00 0.54491410970262E-01 0.26382860162432E+00 + 291 0.23854582687292E+00 0.55923239936349E-01 0.26364478775919E+00 + 292 0.24443790879668E+00 0.57397033160355E-01 0.26342439850921E+00 + 293 0.25047552514395E+00 0.58914337296099E-01 0.26316287593905E+00 + 294 0.25666227061501E+00 0.60476776984026E-01 0.26285516708495E+00 + 295 0.26300182869920E+00 0.62086059909071E-01 0.26249567387751E+00 + 296 0.26949797386807E+00 0.63743982230809E-01 0.26207819830269E+00 + 297 0.27615457382261E+00 0.65452434414165E-01 0.26159588238748E+00 + 298 0.28297559179603E+00 0.67213407491028E-01 0.26104114256784E+00 + 299 0.28996508891339E+00 0.69028999785161E-01 0.26040559796626E+00 + 300 0.29712722660955E+00 0.70901424135045E-01 0.25967999207630E+00 + 301 0.30446626910681E+00 0.72833015651569E-01 0.25885410732078E+00 + 302 0.31198658595375E+00 0.74826240049780E-01 0.25791667192103E+00 + 303 0.31969265462681E+00 0.76883702596356E-01 0.25685525848542E+00 + 304 0.32758906319609E+00 0.79008157716787E-01 0.25565617369971E+00 + 305 0.33568051305703E+00 0.81202519308651E-01 0.25430433847766E+00 + 306 0.34397182172954E+00 0.83469871809619E-01 0.25278315791222E+00 + 307 0.35246792572626E+00 0.85813482070972E-01 0.25107438035463E+00 + 308 0.36117388349170E+00 0.88236812089260E-01 0.24915794494410E+00 + 309 0.37009487841394E+00 0.90743532650310E-01 0.24701181691711E+00 + 310 0.37923622191077E+00 0.93337537940830E-01 0.24461181004450E+00 + 311 0.38860335659196E+00 0.96022961183279E-01 0.24193139558123E+00 + 312 0.39820185949978E+00 0.98804191349228E-01 0.23894149717147E+00 + 313 0.40803744542943E+00 0.10168589100492E+00 0.23561027123576E+00 + 314 0.41811597033154E+00 0.10467301533974E+00 0.23190287248349E+00 + 315 0.42844343479872E+00 0.10777083242355E+00 0.22778120435004E+00 + 316 0.43902598763825E+00 0.11098494473186E+00 0.22320365436177E+00 + 317 0.44986992953292E+00 0.11432131196788E+00 0.21812481469398E+00 + 318 0.46098171679238E+00 0.11778627519720E+00 0.21249518851796E+00 + 319 0.47236796519715E+00 0.12138658229318E+00 0.20626088314743E+00 + 320 0.48403545393752E+00 0.12512941466792E+00 0.19936329150707E+00 + 321 0.49599112964978E+00 0.12902241523466E+00 0.19173876407429E+00 + 322 0.50824211055213E+00 0.13307371750956E+00 0.18331827421119E+00 + 323 0.52079569068277E+00 0.13729197571422E+00 0.17402708072824E+00 + 324 0.53365934424263E+00 0.14168639568202E+00 0.16378439263259E+00 + 325 0.54684073004542E+00 0.14626676629867E+00 0.15250304233878E+00 + 326 0.56034769607754E+00 0.15104349111922E+00 0.14008917519130E+00 + 327 0.57418828417066E+00 0.15602761969514E+00 0.12644196499930E+00 + 328 0.58837073478968E+00 0.16123087801384E+00 0.11145336745120E+00 + 329 0.60290349193898E+00 0.16666569729410E+00 0.95007925795540E-01 + 330 0.61779520818987E+00 0.17234524019071E+00 0.76982646082935E-01 + 331 0.63305474983216E+00 0.17828342323391E+00 0.57246962593090E-01 + 332 0.64869120215302E+00 0.18449493405955E+00 0.35662817850410E-01 + 333 0.66471387484620E+00 0.19099524166779E+00 0.12084885878754E-01 + 334 0.68113230755490E+00 0.19780059757551E+00 -.13639027936276E-01 + 335 0.69795627555150E+00 0.20492802529484E+00 -.41667371839644E-01 + 336 0.71519579555763E+00 0.21239529507169E+00 -.72163973445024E-01 + 337 0.73286113170790E+00 0.22022088024965E+00 -.10529685623059E+00 + 338 0.75096280166108E+00 0.22842389098440E+00 -.14123669076597E+00 + 339 0.76951158286211E+00 0.23702398032245E+00 -.18015481867005E+00 + 340 0.78851851895881E+00 0.24604121688246E+00 -.22222078170828E+00 + 341 0.80799492637709E+00 0.25549591755017E+00 -.26759928366565E+00 + 342 0.82795240105860E+00 0.26540843274259E+00 -.31644650925926E+00 + 343 0.84840282536475E+00 0.27579887594988E+00 -.36890572313831E+00 + 344 0.86935837515126E+00 0.28668678847688E+00 -.42510207391883E+00 + 345 0.89083152701750E+00 0.29809072965795E+00 -.48513653441070E+00 + 346 0.91283506573483E+00 0.31002778240932E+00 -.54907892116395E+00 + 347 0.93538209185848E+00 0.32251296395146E+00 -.61695995591299E+00 + 348 0.95848602952738E+00 0.33555853205170E+00 -.68876236041500E+00 + 349 0.98216063445671E+00 0.34917317842498E+00 -.76441101678201E+00 + 350 0.10064200021278E+01 0.36336110324662E+00 -.84376228007134E+00 + 351 0.10312785761803E+01 0.37812096838164E+00 -.92659260102949E+00 + 352 0.10567511570120E+01 0.39344473225251E+00 -.10125867067036E+01 + 353 0.10828529105902E+01 0.40931637659938E+00 -.11013256968790E+01 + 354 0.11095993774818E+01 0.42571054505413E+00 -.11922755457955E+01 + 355 0.11370064821056E+01 0.44259112569808E+00 -.12847766506929E+01 + 356 0.11650905422136E+01 0.45990982469340E+00 -.13780352385989E+01 + 357 0.11938682786063E+01 0.47760479550778E+00 -.14711176245243E+01 + 358 0.12233568250878E+01 0.49559940764928E+00 -.15629484979761E+01 + 359 0.12535737386675E+01 0.51380125913306E+00 -.16523145855126E+01 + 360 0.12845370100126E+01 0.53210155639192E+00 -.17378751740414E+01 + 361 0.13162650741599E+01 0.55037500151759E+00 -.18181810551510E+01 + 362 0.13487768214917E+01 0.56848033624999E+00 -.18917034306008E+01 + 363 0.13820916089825E+01 0.58626169092292E+00 -.19568741627016E+01 + 364 0.14162292717244E+01 0.60355087001432E+00 -.20121384160331E+01 + 365 0.14512101347360E+01 0.62017066938378E+00 -.20560201732799E+01 + 366 0.14870550250639E+01 0.63593925976639E+00 -.20872002766676E+01 + 367 0.15237852841830E+01 0.65067558441357E+00 -.21046055165651E+01 + 368 0.15614227807023E+01 0.66420560663498E+00 -.21075058456166E+01 + 369 0.15999899233857E+01 0.67636911025475E+00 -.20956150449511E+01 + 370 0.16395096744933E+01 0.68702661264790E+00 -.20691881281669E+01 + 371 0.16800055634533E+01 0.69606581172067E+00 -.20291064545081E+01 + 372 0.17215017008706E+01 0.70340687606691E+00 -.19769389045720E+01 + 373 0.17640227928821E+01 0.70900582735838E+00 -.19149643998671E+01 + 374 0.18075941558663E+01 0.71285528527627E+00 -.18461371428530E+01 + 375 0.18522417315162E+01 0.71498198102696E+00 -.17739704765930E+01 + 376 0.18979921022846E+01 0.71544073477458E+00 -.17023069959226E+01 + 377 0.19448725072111E+01 0.71430508701715E+00 -.16349297825881E+01 + 378 0.19929108581392E+01 0.71165555103225E+00 -.15749504393207E+01 + 379 0.20421357563352E+01 0.70756763233523E+00 -.15238824194810E+01 + 380 0.20925765095167E+01 0.70210352047906E+00 -.14802728473863E+01 + 381 0.21442631493017E+01 0.69531291924527E+00 -.14396237866321E+01 + 382 0.21972264490895E+01 0.68724364861001E+00 -.14005547858120E+01 + 383 0.22514979423820E+01 0.67794940915172E+00 -.13629604568511E+01 + 384 0.23071099415588E+01 0.66748770484779E+00 -.13267448551186E+01 + 385 0.23640955571153E+01 0.65591968038285E+00 -.12918205669045E+01 + 386 0.24224887173761E+01 0.64331003157433E+00 -.12581079069606E+01 + 387 0.24823241886953E+01 0.62972659686916E+00 -.12255342506640E+01 + 388 0.25436375961561E+01 0.61523999042526E+00 -.11940334051051E+01 + 389 0.26064654447811E+01 0.59992321245523E+00 -.11635450185432E+01 + 390 0.26708451412672E+01 0.58385124613380E+00 -.11340140305769E+01 + 391 0.27368150162565E+01 0.56710064405472E+00 -.11053901638740E+01 + 392 0.28044143471580E+01 0.54974910698634E+00 -.10776274571536E+01 + 393 0.28736833815328E+01 0.53187505783471E+00 -.10506838382533E+01 + 394 0.29446633610567E+01 0.51355721376979E+00 -.10245207355184E+01 + 395 0.30173965460748E+01 0.49487415991958E+00 -.99910272535428E+00 + 396 0.30919262407629E+01 0.47590392577046E+00 -.97439721357789E+00 + 397 0.31682968189097E+01 0.45672357046163E+00 -.95037414805907E+00 + 398 0.32465537503368E+01 0.43740877719637E+00 -.92700576018736E+00 + 399 0.33267436279701E+01 0.41803346077435E+00 -.90426633271966E+00 + 400 0.34089141955809E+01 0.39866939089393E+00 -.88213199167598E+00 + 401 0.34931143762118E+01 0.37938583396124E+00 -.86058052007491E+00 + 402 0.35793943013042E+01 0.36024921603782E+00 -.83959119144109E+00 + 403 0.36678053405464E+01 0.34132280943285E+00 -.81914462116464E+00 + 404 0.37584001324579E+01 0.32266644529789E+00 -.79922263393935E+00 + 405 0.38512326157296E+01 0.30433625440859E+00 -.77980814565014E+00 + 406 0.39463580613382E+01 0.28638443811845E+00 -.76088505821807E+00 + 407 0.40438331054532E+01 0.26885907124234E+00 -.74243816604077E+00 + 408 0.41437157831579E+01 0.25180393837136E+00 -.72445307278860E+00 + 409 0.42460655630019E+01 0.23525840483707E+00 -.70691611743073E+00 + 410 0.43509433824081E+01 0.21925732323200E+00 -.68981430847070E+00 + 411 0.44584116839535E+01 0.20383097605810E+00 -.67313526547189E+00 + 412 0.45685344525472E+01 0.18900505471898E+00 -.65686716704190E+00 + 413 0.46813772535251E+01 0.17480067469896E+00 -.64099870453213E+00 + 414 0.47970072716872E+01 0.16123442638820E+00 -.62551904078691E+00 + 415 0.49154933512978E+01 0.14831846062509E+00 -.61041777334935E+00 + 416 0.50369060370749E+01 0.13606060764044E+00 -.59568490159841E+00 + 417 0.51613176161907E+01 0.12446452771076E+00 -.58131079735330E+00 + 418 0.52888021613106E+01 0.11352989146629E+00 -.56728617853766E+00 + 419 0.54194355746949E+01 0.10325258746159E+00 -.55360208554674E+00 + 420 0.55532956333899E+01 0.93624954307167E-01 -.54024986000673E+00 + 421 0.56904620355346E+01 0.84636034387695E-01 -.52722112565549E+00 + 422 0.58310164478123E+01 0.76271845959675E-01 -.51450777110975E+00 + 423 0.59750425540733E+01 0.68515670233896E-01 -.50210193431414E+00 + 424 0.61226261051589E+01 0.61348349909425E-01 -.48999598849380E+00 + 425 0.62738549699563E+01 0.54748595538535E-01 -.47818252945410E+00 + 426 0.64288191877143E+01 0.48693296067889E-01 -.46665436408931E+00 + 427 0.65876110216508E+01 0.43157829921391E-01 -.45540449997729E+00 + 428 0.67503250138856E+01 0.38116373064372E-01 -.44442613594946E+00 + 429 0.69170580417285E+01 0.33542200616470E-01 -.43371265353599E+00 + 430 0.70879093753592E+01 0.29407978759963E-01 -.42325760919455E+00 + 431 0.72629807369306E+01 0.25686043918802E-01 -.41305472723888E+00 + 432 0.74423763611328E+01 0.22348666457690E-01 -.40309789338976E+00 + 433 0.76262030572528E+01 0.19368296465672E-01 -.39338114887774E+00 + 434 0.78145702727669E+01 0.16717789539423E-01 -.38389868503251E+00 + 435 0.80075901585043E+01 0.14370610861212E-01 -.37464483829985E+00 + 436 0.82053776354193E+01 0.12301016268149E-01 -.36561408563253E+00 + 437 0.84080504630142E+01 0.10484209424523E-01 -.35680104020714E+00 + 438 0.86157293094506E+01 0.88964746292164E-02 -.34820044742429E+00 + 439 0.88285378233941E+01 0.75152852061035E-02 -.33980718115437E+00 + 440 0.90466027076319E+01 0.63193878278873E-02 -.33161624019643E+00 + 441 0.92700537945104E+01 0.52888635038654E-02 -.32362274492182E+00 + 442 0.94990241232348E+01 0.44051663112499E-02 -.31582193407860E+00 + 443 0.97336500190787E+01 0.36511412601705E-02 -.30820916173643E+00 + 444 0.99740711745499E+01 0.30110229479154E-02 -.30077989435496E+00 + 445 0.10220430732561E+02 0.24704168732216E-02 -.29352970796151E+00 + 446 0.10472875371656E+02 0.20162654430638E-02 -.28645428542664E+00 + 447 0.10731555393335E+02 0.16368008107019E-02 -.27954941382787E+00 + 448 0.10996624811551E+02 0.13214867348336E-02 -.27281098189396E+00 + 449 0.11268241444396E+02 0.10609516473970E-02 -.26623497752333E+00 + 450 0.11546567008073E+02 0.84691506539552E-03 -.25981748537154E+00 + 451 0.11831767213172E+02 0.67210938499670E-03 -.25355468450367E+00 + 452 0.12124011863338E+02 0.53019896023687E-03 -.24744284610793E+00 + 453 0.12423474956362E+02 0.41569820095505E-03 -.24147833126792E+00 + 454 0.12730334787784E+02 0.32389023267703E-03 -.23565758879087E+00 + 455 0.13044774057042E+02 0.25074745286955E-03 -.22997715308988E+00 + 456 0.13366979976251E+02 0.19285510098741E-03 -.22443364211830E+00 + 457 0.13697144381665E+02 0.14733874133544E-03 -.21902375534681E+00 + 458 0.14035463847892E+02 0.11179634458313E-03 -.21374427183254E+00 + 459 0.14382139804935E+02 0.84235451563926E-04 -.20859204824099E+00 + 460 0.14737378658117E+02 0.63015716488243E-04 -.20356401702059E+00 + 461 0.15101391910972E+02 0.46796959528842E-04 -.19865718456191E+00 + 462 0.15474396291173E+02 0.34492713393575E-04 -.19386862941535E+00 + 463 0.15856613879565E+02 0.25229126372384E-04 -.18919550055172E+00 + 464 0.16248272242390E+02 0.18308985800630E-04 -.18463501566481E+00 + 465 0.16649604566777E+02 0.13180550378618E-04 -.18018445951479E+00 + 466 0.17060849799577E+02 0.94108260255712E-05 -.17584118231169E+00 + 467 0.17482252789626E+02 0.66628860233779E-05 -.17160259813769E+00 + 468 0.17914064433530E+02 0.46768197883624E-05 -.16746618340753E+00 + 469 0.18356541825038E+02 0.32538930989805E-05 -.16342947536599E+00 + 470 0.18809948408117E+02 0.22435132914308E-05 -.15949007062164E+00 + 471 0.19274554133797E+02 0.15326131232371E-05 -.15564562371586E+00 + 472 0.19750635620902E+02 0.10370941402472E-05 -.15189384572641E+00 + 473 0.20238476320738E+02 0.69500212949302E-06 -.14823250290467E+00 + 474 0.20738366685861E+02 0.46114154532881E-06 -.14465941534563E+00 + 475 0.21250604343001E+02 0.30287092413414E-06 -.14117245569009E+00 + 476 0.21775494270273E+02 0.19685585110567E-06 -.13776954785800E+00 + 477 0.22313348978749E+02 0.12658893613357E-06 -.13444866581243E+00 + 478 0.22864488698524E+02 0.80516726174828E-07 -.13120783235330E+00 + 479 0.23429241569378E+02 0.50641035699870E-07 -.12804511794018E+00 + 480 0.24007943836141E+02 0.31486557538973E-07 -.12495863954346E+00 + 481 0.24600940048894E+02 0.19347760043313E-07 -.12194655952323E+00 + 482 0.25208583268102E+02 0.11746069535407E-07 -.11900708453521E+00 + 483 0.25831235274824E+02 0.70433756408387E-08 -.11613846446298E+00 + 484 0.26469266786112E+02 0.41702499680003E-08 -.11333899137599E+00 + 485 0.27123057675729E+02 0.24372452023989E-08 -.11060699851273E+00 + 486 0.27792997200320E+02 0.14055668659523E-08 -.10794085928831E+00 + 487 0.28479484231167E+02 0.79960285936705E-09 -.10533898632605E+00 + 488 0.29182927491677E+02 0.44855865118596E-09 -.10279983051240E+00 + 489 0.29903745800722E+02 0.24804623052907E-09 -.10032188007456E+00 + 490 0.30642368322000E+02 0.13516265659193E-09 -.97903659680448E-01 + 491 0.31399234819553E+02 0.72549077833120E-10 -.95543729560309E-01 + 492 0.32174795919596E+02 0.38343780994170E-10 -.93240684649467E-01 + 493 0.32969513378810E+02 0.19946959138927E-10 -.90993153751798E-01 + 494 0.33783860359267E+02 0.10209459423296E-10 -.88799798723331E-01 + 495 0.34618321710140E+02 0.51391810299119E-11 -.86659313675545E-01 + 496 0.35473394256381E+02 0.25431159772882E-11 -.84570424197858E-01 + 497 0.36349587094513E+02 0.12366033162973E-11 -.82531886598866E-01 + 498 0.37247421895748E+02 0.59059863467565E-12 -.80542487165869E-01 + 499 0.38167433216573E+02 0.27691869976078E-12 -.78601041442246E-01 + 500 0.39110168817022E+02 0.12741053845387E-12 -.76706393522246E-01 + 501 0.40076189986803E+02 0.57495565920631E-13 -.74857415362786E-01 + 502 0.41066071879477E+02 0.25434705961102E-13 -.73053006111823E-01 + 503 0.42080403854900E+02 0.11021237328406E-13 -.71292091452936E-01 + 504 0.43119789830116E+02 0.46739538177509E-14 -.69573622965684E-01 + 505 0.44184848638920E+02 0.00000000000000E+00 -.67896577501399E-01 + 506 0.45276214400301E+02 0.00000000000000E+00 -.66259956574021E-01 + 507 0.46394536895988E+02 0.00000000000000E+00 -.64662785765610E-01 + 508 0.47540481957319E+02 0.00000000000000E+00 -.63104114146199E-01 + 509 0.48714731861665E+02 0.00000000000000E+00 -.61583013707621E-01 + 510 0.49917985738648E+02 0.00000000000000E+00 -.60098578810989E-01 + 511 0.51150959986393E+02 0.00000000000000E+00 -.58649925647496E-01 + 512 0.52414388698057E+02 0.00000000000000E+00 -.57236191712205E-01 + 513 0.53709024098899E+02 0.00000000000000E+00 -.55856535290529E-01 + 514 0.55035636994142E+02 0.00000000000000E+00 -.54510134957089E-01 + 515 0.56395017227897E+02 0.00000000000000E+00 -.53196189086648E-01 + 516 0.57787974153426E+02 0.00000000000000E+00 -.51913915376840E-01 + 517 0.59215337115016E+02 0.00000000000000E+00 -.50662550382395E-01 + 518 0.60677955941756E+02 0.00000000000000E+00 -.49441349060599E-01 + 519 0.62176701453518E+02 0.00000000000000E+00 -.48249584327704E-01 + 520 0.63712465979420E+02 0.00000000000000E+00 -.47086546626041E-01 + 521 0.65286163889111E+02 0.00000000000000E+00 -.45951543501553E-01 + 522 0.66898732137172E+02 0.00000000000000E+00 -.44843899191522E-01 + 523 0.68551130820961E+02 0.00000000000000E+00 -.43762954222233E-01 + 524 0.70244343752238E+02 0.00000000000000E+00 -.42708065016330E-01 + 525 0.71979379042919E+02 0.00000000000000E+00 -.41678603509641E-01 + 526 0.73757269705279E+02 0.00000000000000E+00 -.40673956777244E-01 + 527 0.75579074266999E+02 0.00000000000000E+00 -.39693526668531E-01 + 528 0.77445877401394E+02 0.00000000000000E+00 -.38736729451089E-01 + 529 0.79358790573208E+02 0.00000000000000E+00 -.37802995463149E-01 +529 0.10247000000000E+01 + 1 0.20161290322581E-03 0.81918505710477E-08 -.12483690690518E+01 + 2 0.20659274193548E-03 0.86015257553723E-08 -.12483691168879E+01 + 3 0.21169558266129E-03 0.90316888325358E-08 -.12483691635514E+01 + 4 0.21692446355302E-03 0.94833644039029E-08 -.12483692090696E+01 + 5 0.22228249780278E-03 0.99576283808137E-08 -.12483692534691E+01 + 6 0.22777287549851E-03 0.10455610345899E-07 -.12483692967758E+01 + 7 0.23339886552333E-03 0.10978496437386E-07 -.12483693390148E+01 + 8 0.23916381750175E-03 0.11527532113189E-07 -.12483693802108E+01 + 9 0.24507116379405E-03 0.12104025116566E-07 -.12483694203875E+01 + 10 0.25112442153976E-03 0.12709348591139E-07 -.12483694595684E+01 + 11 0.25732719475179E-03 0.13344944351580E-07 -.12483694977760E+01 + 12 0.26368317646216E-03 0.14012326317848E-07 -.12483695350322E+01 + 13 0.27019615092077E-03 0.14713084121191E-07 -.12483695713587E+01 + 14 0.27686999584852E-03 0.15448886890467E-07 -.12483696067761E+01 + 15 0.28370868474598E-03 0.16221487227833E-07 -.12483696413047E+01 + 16 0.29071628925920E-03 0.17032725383249E-07 -.12483696749642E+01 + 17 0.29789698160390E-03 0.17884533637753E-07 -.12483697077737E+01 + 18 0.30525503704952E-03 0.18778940905948E-07 -.12483697397517E+01 + 19 0.31279483646464E-03 0.19718077568653E-07 -.12483697709163E+01 + 20 0.32052086892532E-03 0.20704180547237E-07 -.12483698012849E+01 + 21 0.32843773438778E-03 0.21739598631726E-07 -.12483698308745E+01 + 22 0.33655014642715E-03 0.22826798075362E-07 -.12483698597015E+01 + 23 0.34486293504390E-03 0.23968368468953E-07 -.12483698877818E+01 + 24 0.35338104953949E-03 0.25167028908992E-07 -.12483699151309E+01 + 25 0.36210956146311E-03 0.26425634474256E-07 -.12483699417636E+01 + 26 0.37105366763125E-03 0.27747183026284E-07 -.12483699676943E+01 + 27 0.38021869322175E-03 0.29134822349966E-07 -.12483699929370E+01 + 28 0.38961009494432E-03 0.30591857651218E-07 -.12483700175051E+01 + 29 0.39923346428945E-03 0.32121759429624E-07 -.12483700414115E+01 + 30 0.40909453085740E-03 0.33728171744791E-07 -.12483700646688E+01 + 31 0.41919916576957E-03 0.35414920896099E-07 -.12483700872889E+01 + 32 0.42955338516408E-03 0.37186024536532E-07 -.12483701092834E+01 + 33 0.44016335377764E-03 0.39045701242291E-07 -.12483701306633E+01 + 34 0.45103538861594E-03 0.40998380560979E-07 -.12483701514392E+01 + 35 0.46217596271476E-03 0.43048713562307E-07 -.12483701716213E+01 + 36 0.47359170899381E-03 0.45201583916433E-07 -.12483701912192E+01 + 37 0.48528942420596E-03 0.47462119526332E-07 -.12483702102420E+01 + 38 0.49727607298385E-03 0.49835704741904E-07 -.12483702286986E+01 + 39 0.50955879198655E-03 0.52327993184911E-07 -.12483702465972E+01 + 40 0.52214489414861E-03 0.54944921215286E-07 -.12483702639455E+01 + 41 0.53504187303408E-03 0.57692722070897E-07 -.12483702807510E+01 + 42 0.54825740729803E-03 0.60577940714443E-07 -.12483702970204E+01 + 43 0.56179936525829E-03 0.63607449422839E-07 -.12483703127601E+01 + 44 0.57567580958017E-03 0.66788464156237E-07 -.12483703279761E+01 + 45 0.58989500207680E-03 0.70128561745652E-07 -.12483703426737E+01 + 46 0.60446540862809E-03 0.73635697940153E-07 -.12483703568578E+01 + 47 0.61939570422121E-03 0.77318226356588E-07 -.12483703705329E+01 + 48 0.63469477811547E-03 0.81184918376993E-07 -.12483703837028E+01 + 49 0.65037173913492E-03 0.85244984041067E-07 -.12483703963710E+01 + 50 0.66643592109156E-03 0.89508093983482E-07 -.12483704085403E+01 + 51 0.68289688834252E-03 0.93984402468288E-07 -.12483704202132E+01 + 52 0.69976444148458E-03 0.98684571575258E-07 -.12483704313913E+01 + 53 0.71704862318925E-03 0.10361979659580E-06 -.12483704420759E+01 + 54 0.73475972418202E-03 0.10880183269894E-06 -.12483704522679E+01 + 55 0.75290828936932E-03 0.11424302293083E-06 -.12483704619671E+01 + 56 0.77150512411674E-03 0.11995632761454E-06 -.12483704711733E+01 + 57 0.79056130068242E-03 0.12595535522015E-06 -.12483704798852E+01 + 58 0.81008816480928E-03 0.13225439477867E-06 -.12483704881013E+01 + 59 0.83009734248007E-03 0.13886844991688E-06 -.12483704958191E+01 + 60 0.85060074683933E-03 0.14581327459440E-06 -.12483705030357E+01 + 61 0.87161058528626E-03 0.15310541062790E-06 -.12483705097473E+01 + 62 0.89313936674283E-03 0.16076222709185E-06 -.12483705159496E+01 + 63 0.91519990910138E-03 0.16880196168985E-06 -.12483705216375E+01 + 64 0.93780534685618E-03 0.17724376419477E-06 -.12483705268051E+01 + 65 0.96096913892353E-03 0.18610774206148E-06 -.12483705314459E+01 + 66 0.98470507665494E-03 0.19541500832057E-06 -.12483705355523E+01 + 67 0.10090272920483E-02 0.20518773186734E-06 -.12483705391162E+01 + 68 0.10339502661619E-02 0.21544919026563E-06 -.12483705421284E+01 + 69 0.10594888377361E-02 0.22622382519251E-06 -.12483705445790E+01 + 70 0.10856582120282E-02 0.23753730065562E-06 -.12483705464570E+01 + 71 0.11124739698653E-02 0.24941656412209E-06 -.12483705477506E+01 + 72 0.11399520769210E-02 0.26188991070444E-06 -.12483705484468E+01 + 73 0.11681088932209E-02 0.27498705055645E-06 -.12483705485318E+01 + 74 0.11969611828835E-02 0.28873917963954E-06 -.12483705479906E+01 + 75 0.12265261241007E-02 0.30317905402810E-06 -.12483705468070E+01 + 76 0.12568213193660E-02 0.31834106793092E-06 -.12483705449638E+01 + 77 0.12878648059543E-02 0.33426133561440E-06 -.12483705424424E+01 + 78 0.13196750666614E-02 0.35097777742286E-06 -.12483705392231E+01 + 79 0.13522710408079E-02 0.36853021010058E-06 -.12483705352847E+01 + 80 0.13856721355159E-02 0.38696044163100E-06 -.12483705306047E+01 + 81 0.14198982372631E-02 0.40631237081874E-06 -.12483705251592E+01 + 82 0.14549697237235E-02 0.42663209185175E-06 -.12483705189227E+01 + 83 0.14909074758995E-02 0.44796800409266E-06 -.12483705118682E+01 + 84 0.15277328905542E-02 0.47037092736074E-06 -.12483705039668E+01 + 85 0.15654678929509E-02 0.49389422297918E-06 -.12483704951883E+01 + 86 0.16041349499068E-02 0.51859392087592E-06 -.12483704855003E+01 + 87 0.16437570831695E-02 0.54452885304078E-06 -.12483704748688E+01 + 88 0.16843578831238E-02 0.57176079365687E-06 -.12483704632575E+01 + 89 0.17259615228369E-02 0.60035460623992E-06 -.12483704506283E+01 + 90 0.17685927724510E-02 0.63037839813607E-06 -.12483704369409E+01 + 91 0.18122770139305E-02 0.66190368274608E-06 -.12483704221525E+01 + 92 0.18570402561746E-02 0.69500554986249E-06 -.12483704062182E+01 + 93 0.19029091505021E-02 0.72976284452520E-06 -.12483703890906E+01 + 94 0.19499110065195E-02 0.76625835482177E-06 -.12483703707193E+01 + 95 0.19980738083806E-02 0.80457900907954E-06 -.12483703510517E+01 + 96 0.20474262314476E-02 0.84481608291938E-06 -.12483703300319E+01 + 97 0.20979976593643E-02 0.88706541666418E-06 -.12483703076013E+01 + 98 0.21498182015506E-02 0.93142764362002E-06 -.12483702836979E+01 + 99 0.22029187111289E-02 0.97800842977362E-06 -.12483702582567E+01 + 100 0.22573308032938E-02 0.10269187254771E-05 -.12483702312088E+01 + 101 0.23130868741352E-02 0.10782750297195E-05 -.12483702024821E+01 + 102 0.23702201199263E-02 0.11321996676148E-05 -.12483701720005E+01 + 103 0.24287645568885E-02 0.11888210817663E-05 -.12483701396838E+01 + 104 0.24887550414436E-02 0.12482741382034E-05 -.12483701054479E+01 + 105 0.25502272909673E-02 0.13107004476173E-05 -.12483700692040E+01 + 106 0.26132179050542E-02 0.13762487026621E-05 -.12483700308589E+01 + 107 0.26777643873090E-02 0.14450750321242E-05 -.12483699903145E+01 + 108 0.27439051676755E-02 0.15173433728039E-05 -.12483699474675E+01 + 109 0.28116796253171E-02 0.15932258599949E-05 -.12483699022096E+01 + 110 0.28811281120625E-02 0.16729032374914E-05 -.12483698544265E+01 + 111 0.29522919764304E-02 0.17565652880996E-05 -.12483698039984E+01 + 112 0.30252135882482E-02 0.18444112856797E-05 -.12483697507991E+01 + 113 0.30999363638780E-02 0.19366504697939E-05 -.12483696946962E+01 + 114 0.31765047920657E-02 0.20335025440918E-05 -.12483696355502E+01 + 115 0.32549644604298E-02 0.21351981996203E-05 -.12483695732148E+01 + 116 0.33353620826024E-02 0.22419796643038E-05 -.12483695075361E+01 + 117 0.34177455260427E-02 0.23541012799043E-05 -.12483694383524E+01 + 118 0.35021638405359E-02 0.24718301078348E-05 -.12483693654936E+01 + 119 0.35886672873971E-02 0.25954465652705E-05 -.12483692887814E+01 + 120 0.36773073693959E-02 0.27252450930702E-05 -.12483692080281E+01 + 121 0.37681368614199E-02 0.28615348571023E-05 -.12483691230366E+01 + 122 0.38612098418970E-02 0.30046404846428E-05 -.12483690335997E+01 + 123 0.39565817249919E-02 0.31549028376014E-05 -.12483689395001E+01 + 124 0.40543092935992E-02 0.33126798244158E-05 -.12483688405092E+01 + 125 0.41544507331511E-02 0.34783472525497E-05 -.12483687363868E+01 + 126 0.42570656662599E-02 0.36522997236237E-05 -.12483686268810E+01 + 127 0.43622151882165E-02 0.38349515733117E-05 -.12483685117267E+01 + 128 0.44699619033655E-02 0.40267378582416E-05 -.12483683906458E+01 + 129 0.45803699623786E-02 0.42281153922511E-05 -.12483682633461E+01 + 130 0.46935051004493E-02 0.44395638344660E-05 -.12483681295206E+01 + 131 0.48094346764304E-02 0.46615868317940E-05 -.12483679888471E+01 + 132 0.49282277129383E-02 0.48947132185537E-05 -.12483678409870E+01 + 133 0.50499549374478E-02 0.51394982760980E-05 -.12483676855847E+01 + 134 0.51746888244028E-02 0.53965250554302E-05 -.12483675222669E+01 + 135 0.53025036383656E-02 0.56664057659648E-05 -.12483673506414E+01 + 136 0.54334754782332E-02 0.59497832337394E-05 -.12483671702963E+01 + 137 0.55676823225455E-02 0.62473324325523E-05 -.12483669807993E+01 + 138 0.57052040759124E-02 0.65597620916720E-05 -.12483667816962E+01 + 139 0.58461226165875E-02 0.68878163839473E-05 -.12483665725099E+01 + 140 0.59905218452172E-02 0.72322766983408E-05 -.12483663527399E+01 + 141 0.61384877347940E-02 0.75939635011059E-05 -.12483661218600E+01 + 142 0.62901083818434E-02 0.79737382900407E-05 -.12483658793182E+01 + 143 0.64454740588750E-02 0.83725056464746E-05 -.12483656245345E+01 + 144 0.66046772681292E-02 0.87912153898735E-05 -.12483653568999E+01 + 145 0.67678127966520E-02 0.92308648401975E-05 -.12483650757752E+01 + 146 0.69349777727293E-02 0.96925011933975E-05 -.12483647804889E+01 + 147 0.71062717237157E-02 0.10177224015711E-04 -.12483644703361E+01 + 148 0.72817966352915E-02 0.10686187862696E-04 -.12483641445767E+01 + 149 0.74616570121832E-02 0.11220605029242E-04 -.12483638024333E+01 + 150 0.76459599403841E-02 0.11781748437111E-04 -.12483634430900E+01 + 151 0.78348151509116E-02 0.12370954666881E-04 -.12483630656899E+01 + 152 0.80283350851391E-02 0.12989627141513E-04 -.12483626693334E+01 + 153 0.82266349617420E-02 0.13639239469138E-04 -.12483622530759E+01 + 154 0.84298328452971E-02 0.14321338953001E-04 -.12483618159256E+01 + 155 0.86380497165759E-02 0.15037550276949E-04 -.12483613568413E+01 + 156 0.88514095445753E-02 0.15789579375220E-04 -.12483608747297E+01 + 157 0.90700393603263E-02 0.16579217495765E-04 -.12483603684431E+01 + 158 0.92940693325264E-02 0.17408345466768E-04 -.12483598367763E+01 + 159 0.95236328450398E-02 0.18278938176540E-04 -.12483592784640E+01 + 160 0.97588665763123E-02 0.19193069277447E-04 -.12483586921781E+01 + 161 0.99999105807472E-02 0.20152916125075E-04 -.12483580765239E+01 + 162 0.10246908372092E-01 0.21160764964408E-04 -.12483574300374E+01 + 163 0.10500007008882E-01 0.22219016375360E-04 -.12483567511815E+01 + 164 0.10759357182002E-01 0.23330190990629E-04 -.12483560383425E+01 + 165 0.11025113304397E-01 0.24496935499509E-04 -.12483552898265E+01 + 166 0.11297433603016E-01 0.25722028951938E-04 -.12483545038550E+01 + 167 0.11576480213010E-01 0.27008389377812E-04 -.12483536785610E+01 + 168 0.11862419274272E-01 0.28359080737325E-04 -.12483528119847E+01 + 169 0.12155421030346E-01 0.29777320218889E-04 -.12483519020686E+01 + 170 0.12455659929796E-01 0.31266485902020E-04 -.12483509466530E+01 + 171 0.12763314730062E-01 0.32830124803429E-04 -.12483499434705E+01 + 172 0.13078568603894E-01 0.34471961325505E-04 -.12483488901413E+01 + 173 0.13401609248410E-01 0.36195906127283E-04 -.12483477841672E+01 + 174 0.13732628996846E-01 0.38006065439051E-04 -.12483466229257E+01 + 175 0.14071824933068E-01 0.39906750842761E-04 -.12483454036644E+01 + 176 0.14419399008915E-01 0.41902489541558E-04 -.12483441234939E+01 + 177 0.14775558164435E-01 0.43998035142862E-04 -.12483427793815E+01 + 178 0.15140514451097E-01 0.46198378980710E-04 -.12483413681442E+01 + 179 0.15514485158039E-01 0.48508762004303E-04 -.12483398864410E+01 + 180 0.15897692941442E-01 0.50934687261090E-04 -.12483383307653E+01 + 181 0.16290365957096E-01 0.53481933004106E-04 -.12483366974368E+01 + 182 0.16692737996236E-01 0.56156566454788E-04 -.12483349825932E+01 + 183 0.17105048624743E-01 0.58964958254050E-04 -.12483331821806E+01 + 184 0.17527543325774E-01 0.61913797636028E-04 -.12483312919449E+01 + 185 0.17960473645921E-01 0.65010108360628E-04 -.12483293074216E+01 + 186 0.18404097344975E-01 0.68261265442845E-04 -.12483272239256E+01 + 187 0.18858678549396E-01 0.71675012718665E-04 -.12483250365404E+01 + 188 0.19324487909566E-01 0.75259481289408E-04 -.12483227401072E+01 + 189 0.19801802760932E-01 0.79023208888429E-04 -.12483203292125E+01 + 190 0.20290907289128E-01 0.82975160216296E-04 -.12483177981761E+01 + 191 0.20792092699169E-01 0.87124748292882E-04 -.12483151410384E+01 + 192 0.21305657388838E-01 0.91481856877219E-04 -.12483123515463E+01 + 193 0.21831907126343E-01 0.96056864008504E-04 -.12483094231396E+01 + 194 0.22371155232363E-01 0.10086066672432E-03 -.12483063489357E+01 + 195 0.22923722766603E-01 0.10590470701492E-03 -.12483031217144E+01 + 196 0.23489938718938E-01 0.11120099907547E-03 -.12482997339018E+01 + 197 0.24070140205296E-01 0.11676215792096E-03 -.12482961775529E+01 + 198 0.24664672668366E-01 0.12260142943216E-03 -.12482924443342E+01 + 199 0.25273890083275E-01 0.12873272190400E-03 -.12482885255051E+01 + 200 0.25898155168332E-01 0.13517063917157E-03 -.12482844118986E+01 + 201 0.26537839600990E-01 0.14193051539259E-03 -.12482800939007E+01 + 202 0.27193324239134E-01 0.14902845156927E-03 -.12482755614298E+01 + 203 0.27864999347841E-01 0.15648135389633E-03 -.12482708039142E+01 + 204 0.28553264831733E-01 0.16430697402676E-03 -.12482658102694E+01 + 205 0.29258530473076E-01 0.17252395135097E-03 -.12482605688736E+01 + 206 0.29981216175761E-01 0.18115185739008E-03 -.12482550675433E+01 + 207 0.30721752215303E-01 0.19021124240916E-03 -.12482492935063E+01 + 208 0.31480579495021E-01 0.19972368436122E-03 -.12482432333751E+01 + 209 0.32258149808548E-01 0.20971184027863E-03 -.12482368731184E+01 + 210 0.33054926108819E-01 0.22019950023428E-03 -.12482301980311E+01 + 211 0.33871382783707E-01 0.23121164400095E-03 -.12482231927041E+01 + 212 0.34708005938464E-01 0.24277450054382E-03 -.12482158409917E+01 + 213 0.35565293685144E-01 0.25491561048771E-03 -.12482081259786E+01 + 214 0.36443756439167E-01 0.26766389170788E-03 -.12482000299454E+01 + 215 0.37343917223215E-01 0.28104970820033E-03 -.12481915343323E+01 + 216 0.38266311978628E-01 0.29510494239585E-03 -.12481826197021E+01 + 217 0.39211489884500E-01 0.30986307108973E-03 -.12481732657010E+01 + 218 0.40180013684647E-01 0.32535924516797E-03 -.12481634510192E+01 + 219 0.41172460022658E-01 0.34163037331977E-03 -.12481531533489E+01 + 220 0.42189419785218E-01 0.35871520993567E-03 -.12481423493411E+01 + 221 0.43231498453913E-01 0.37665444740031E-03 -.12481310145620E+01 + 222 0.44299316465724E-01 0.39549081299978E-03 -.12481191234463E+01 + 223 0.45393509582428E-01 0.41526917067404E-03 -.12481066492502E+01 + 224 0.46514729269114E-01 0.43603662785664E-03 -.12480935640031E+01 + 225 0.47663643082061E-01 0.45784264765598E-03 -.12480798384568E+01 + 226 0.48840935066188E-01 0.48073916664518E-03 -.12480654420346E+01 + 227 0.50047306162322E-01 0.50478071854075E-03 -.12480503427782E+01 + 228 0.51283474624532E-01 0.53002456406452E-03 -.12480345072940E+01 + 229 0.52550176447758E-01 0.55653082729767E-03 -.12480179006975E+01 + 230 0.53848165806017E-01 0.58436263885149E-03 -.12480004865575E+01 + 231 0.55178215501426E-01 0.61358628619540E-03 -.12479822268387E+01 + 232 0.56541117424311E-01 0.64427137149991E-03 -.12479630818438E+01 + 233 0.57937683024692E-01 0.67649097737009E-03 -.12479430101546E+01 + 234 0.59368743795402E-01 0.71032184086376E-03 -.12479219685735E+01 + 235 0.60835151767148E-01 0.74584453620839E-03 -.12478999120636E+01 + 236 0.62337780015796E-01 0.78314366665125E-03 -.12478767936897E+01 + 237 0.63877523182187E-01 0.82230806589927E-03 -.12478525645597E+01 + 238 0.65455298004787E-01 0.86343100962748E-03 -.12478271737660E+01 + 239 0.67072043865505E-01 0.90661043755920E-03 -.12478005683291E+01 + 240 0.68728723348983E-01 0.95194918664592E-03 -.12477726931414E+01 + 241 0.70426322815703E-01 0.99955523590143E-03 -.12477434909146E+01 + 242 0.72165852989251E-01 0.10495419634722E-02 -.12477129021286E+01 + 243 0.73948349558085E-01 0.11020284165549E-02 -.12476808649846E+01 + 244 0.75774873792170E-01 0.11571395948037E-02 -.12476473153621E+01 + 245 0.77646513174836E-01 0.12150067478986E-02 -.12476121867805E+01 + 246 0.79564382050255E-01 0.12757676879856E-02 -.12475754103675E+01 + 247 0.81529622286896E-01 0.13395671177267E-02 -.12475369148340E+01 + 248 0.83543403957382E-01 0.14065569747434E-02 -.12474966264571E+01 + 249 0.85606926035130E-01 0.14768967932688E-02 -.12474544690739E+01 + 250 0.87721417108197E-01 0.15507540838691E-02 -.12474103640850E+01 + 251 0.89888136110770E-01 0.16283047321352E-02 -.12473642304723E+01 + 252 0.92108373072706E-01 0.17097334172920E-02 -.12473159848302E+01 + 253 0.94383449887602E-01 0.17952340517190E-02 -.12472655414157E+01 + 254 0.96714721099826E-01 0.18850102424242E-02 -.12472128122157E+01 + 255 0.99103574710991E-01 0.19792757755689E-02 -.12471577070379E+01 + 256 0.10155143300635E+00 0.20782551251908E-02 -.12471001336259E+01 + 257 0.10405975340161E+00 0.21821839873332E-02 -.12470399978027E+01 + 258 0.10663002931063E+00 0.22913098408475E-02 -.12469772036459E+01 + 259 0.10926379103460E+00 0.24058925361973E-02 -.12469116536987E+01 + 260 0.11196260667316E+00 0.25262049136615E-02 -.12468432492216E+01 + 261 0.11472808305798E+00 0.26525334523996E-02 -.12467718904885E+01 + 262 0.11756186670952E+00 0.27851789519192E-02 -.12466974771345E+01 + 263 0.12046564481724E+00 0.29244572475565E-02 -.12466199085591E+01 + 264 0.12344114624423E+00 0.30706999616668E-02 -.12465390843942E+01 + 265 0.12649014255646E+00 0.32242552923006E-02 -.12464549050415E+01 + 266 0.12961444907760E+00 0.33854888412312E-02 -.12463672722893E+01 + 267 0.13281592596982E+00 0.35547844832927E-02 -.12462760900170E+01 + 268 0.13609647934127E+00 0.37325452790814E-02 -.12461812649971E+01 + 269 0.13945806238100E+00 0.39191944331780E-02 -.12460827078057E+01 + 270 0.14290267652182E+00 0.41151763001510E-02 -.12459803338528E+01 + 271 0.14643237263190E+00 0.43209574407161E-02 -.12458740645471E+01 + 272 0.15004925223591E+00 0.45370277305400E-02 -.12457638286074E+01 + 273 0.15375546876614E+00 0.47639015243022E-02 -.12456495635385E+01 + 274 0.15755322884466E+00 0.50021188777532E-02 -.12455312172882E+01 + 275 0.16144479359713E+00 0.52522468306441E-02 -.12454087501032E+01 + 276 0.16543247999897E+00 0.55148807535393E-02 -.12452821366076E+01 + 277 0.16951866225495E+00 0.57906457616753E-02 -.12451513681230E+01 + 278 0.17370577321265E+00 0.60801981991760E-02 -.12450164552594E+01 + 279 0.17799630581100E+00 0.63842271970989E-02 -.12448774308001E+01 + 280 0.18239281456453E+00 0.67034563089532E-02 -.12447343529129E+01 + 281 0.18689791708427E+00 0.70386452275020E-02 -.12445873087199E+01 + 282 0.19151429563626E+00 0.73905915868467E-02 -.12444364182597E+01 + 283 0.19624469873847E+00 0.77601328539766E-02 -.12442818388823E+01 + 284 0.20109194279731E+00 0.81481483141680E-02 -.12441237701169E+01 + 285 0.20605891378441E+00 0.85555611548160E-02 -.12439624590601E+01 + 286 0.21114856895488E+00 0.89833406524989E-02 -.12437982063313E+01 + 287 0.21636393860807E+00 0.94325044682923E-02 -.12436313726513E+01 + 288 0.22170812789169E+00 0.99041210565757E-02 -.12434623860991E+01 + 289 0.22718431865061E+00 0.10399312192810E-01 -.12432917501126E+01 + 290 0.23279577132128E+00 0.10919255626002E-01 -.12431200522973E+01 + 291 0.23854582687292E+00 0.11465187861819E-01 -.12429479741178E+01 + 292 0.24443790879668E+00 0.12038407082564E-01 -.12427763015487E+01 + 293 0.25047552514395E+00 0.12640276210479E-01 -.12426059367690E+01 + 294 0.25666227061501E+00 0.13272226121098E-01 -.12424379109893E+01 + 295 0.26300182869920E+00 0.13935759013615E-01 -.12422733985066E+01 + 296 0.26949797386807E+00 0.14632451945511E-01 -.12421137320892E+01 + 297 0.27615457382261E+00 0.15363960538892E-01 -.12419604197982E+01 + 298 0.28297559179603E+00 0.16132022866258E-01 -.12418151633606E+01 + 299 0.28996508891339E+00 0.16938463523626E-01 -.12416798782128E+01 + 300 0.29712722660955E+00 0.17785197899123E-01 -.12415567153416E+01 + 301 0.30446626910681E+00 0.18674236645354E-01 -.12414480850523E+01 + 302 0.31198658595375E+00 0.19607690363956E-01 -.12413566828021E+01 + 303 0.31969265462681E+00 0.20587774510852E-01 -.12412855172374E+01 + 304 0.32758906319609E+00 0.21616814530715E-01 -.12412379405800E+01 + 305 0.33568051305703E+00 0.22697251229120E-01 -.12412176815061E+01 + 306 0.34397182172954E+00 0.23831646390655E-01 -.12412288806658E+01 + 307 0.35246792572626E+00 0.25022688651039E-01 -.12412761289847E+01 + 308 0.36117388349170E+00 0.26273199630800E-01 -.12413645088880E+01 + 309 0.37009487841394E+00 0.27586140337475E-01 -.12414996385786E+01 + 310 0.37923622191077E+00 0.28964617842443E-01 -.12416877194875E+01 + 311 0.38860335659196E+00 0.30411892237359E-01 -.12419355870028E+01 + 312 0.39820185949978E+00 0.31931383873699E-01 -.12422507645548E+01 + 313 0.40803744542943E+00 0.33526680887059E-01 -.12426415211143E+01 + 314 0.41811597033154E+00 0.35201547005473E-01 -.12431169321159E+01 + 315 0.42844343479872E+00 0.36959929638070E-01 -.12436869437801E+01 + 316 0.43902598763825E+00 0.38805968236726E-01 -.12443624407432E+01 + 317 0.44986992953292E+00 0.40744002918831E-01 -.12451553168405E+01 + 318 0.46098171679238E+00 0.42778583333803E-01 -.12460785487974E+01 + 319 0.47236796519715E+00 0.44914477749185E-01 -.12471462724847E+01 + 320 0.48403545393752E+00 0.47156682324034E-01 -.12483738612670E+01 + 321 0.49599112964978E+00 0.49510430527394E-01 -.12497780058302E+01 + 322 0.50824211055213E+00 0.51981202647754E-01 -.12513767946969E+01 + 323 0.52079569068277E+00 0.54574735325097E-01 -.12531897944380E+01 + 324 0.53365934424263E+00 0.57297031020069E-01 -.12552381283457E+01 + 325 0.54684073004542E+00 0.60154367314408E-01 -.12575445520574E+01 + 326 0.56034769607754E+00 0.63153305912537E-01 -.12601335242948E+01 + 327 0.57418828417066E+00 0.66300701185531E-01 -.12630312705090E+01 + 328 0.58837073478968E+00 0.69603708064741E-01 -.12662658367937E+01 + 329 0.60290349193898E+00 0.73069789052421E-01 -.12698671309395E+01 + 330 0.61779520818987E+00 0.76706720069877E-01 -.12738669469396E+01 + 331 0.63305474983216E+00 0.80522594808862E-01 -.12782989686318E+01 + 332 0.64869120215302E+00 0.84525827188245E-01 -.12831987474478E+01 + 333 0.66471387484620E+00 0.88725151444042E-01 -.12886036484511E+01 + 334 0.68113230755490E+00 0.93129619295738E-01 -.12945527579638E+01 + 335 0.69795627555150E+00 0.97748593534049E-01 -.13010867451228E+01 + 336 0.71519579555763E+00 0.10259173726386E+00 -.13082476686527E+01 + 337 0.73286113170790E+00 0.10766899790993E+00 -.13160787190200E+01 + 338 0.75096280166108E+00 0.11299058495129E+00 -.13246238849412E+01 + 339 0.76951158286211E+00 0.11856694019279E+00 -.13339275319834E+01 + 340 0.78851851895881E+00 0.12440869920902E+00 -.13440338797455E+01 + 341 0.80799492637709E+00 0.13052664240811E+00 -.13549863628891E+01 + 342 0.82795240105860E+00 0.13693163396262E+00 -.13668268601610E+01 + 343 0.84840282536475E+00 0.14363454664645E+00 -.13795947745853E+01 + 344 0.86935837515126E+00 0.15064617040566E+00 -.13933259473274E+01 + 345 0.89083152701750E+00 0.15797710228631E+00 -.14080513874647E+01 + 346 0.91283506573483E+00 0.16563761515735E+00 -.14237958002222E+01 + 347 0.93538209185848E+00 0.17363750251564E+00 -.14405758973741E+01 + 348 0.95848602952738E+00 0.18198589656826E+00 -.14583984757243E+01 + 349 0.98216063445671E+00 0.19069105678018E+00 -.14772582532126E+01 + 350 0.10064200021278E+01 0.19976012619087E+00 -.14971354576193E+01 + 351 0.10312785761803E+01 0.20919885308407E+00 -.15179931705274E+01 + 352 0.10567511570120E+01 0.21901127609403E+00 -.15397744396649E+01 + 353 0.10828529105902E+01 0.22919937161016E+00 -.15623991865612E+01 + 354 0.11095993774818E+01 0.23976266346888E+00 -.15857609542372E+01 + 355 0.11370064821056E+01 0.25069779647120E+00 -.16097235620161E+01 + 356 0.11650905422136E+01 0.26199807731233E+00 -.16341177620870E+01 + 357 0.11938682786063E+01 0.27365298912545E+00 -.16587380256315E+01 + 358 0.12233568250878E+01 0.28564768907913E+00 -.16833396253899E+01 + 359 0.12535737386675E+01 0.29796250235152E+00 -.17076362263875E+01 + 360 0.12845370100126E+01 0.31057243030919E+00 -.17312982465147E+01 + 361 0.13162650741599E+01 0.32344669574853E+00 -.17539523023321E+01 + 362 0.13487768214917E+01 0.33654835341772E+00 -.17751821103962E+01 + 363 0.13820916089825E+01 0.34983399940246E+00 -.17945312667479E+01 + 364 0.14162292717244E+01 0.36325361784624E+00 -.18115083714444E+01 + 365 0.14512101347360E+01 0.37675060721931E+00 -.18255949936151E+01 + 366 0.14870550250639E+01 0.39026203008982E+00 -.18362569756000E+01 + 367 0.15237852841830E+01 0.40371912904029E+00 -.18429595399164E+01 + 368 0.15614227807023E+01 0.41704814582742E+00 -.18451865751429E+01 + 369 0.15999899233857E+01 0.43017146986555E+00 -.18424643188828E+01 + 370 0.16395096744933E+01 0.44300912447588E+00 -.18343894080244E+01 + 371 0.16800055634533E+01 0.45548057423928E+00 -.18206609065733E+01 + 372 0.17215017008706E+01 0.46750680393999E+00 -.18011154245652E+01 + 373 0.17640227928821E+01 0.47901257961653E+00 -.17757637783432E+01 + 374 0.18075941558663E+01 0.48992875704818E+00 -.17448267735450E+01 + 375 0.18522417315162E+01 0.50019445621970E+00 -.17087665592183E+01 + 376 0.18979921022846E+01 0.50975887774660E+00 -.16683085112168E+01 + 377 0.19448725072111E+01 0.51858250758630E+00 -.16244466026430E+01 + 378 0.19929108581392E+01 0.52663745208684E+00 -.15784224642280E+01 + 379 0.20421357563352E+01 0.53390668438232E+00 -.15316644571466E+01 + 380 0.20925765095167E+01 0.54038209115923E+00 -.14856675512530E+01 + 381 0.21442631493017E+01 0.54606142386826E+00 -.14417870332902E+01 + 382 0.21972264490895E+01 0.55094463686799E+00 -.14009102953340E+01 + 383 0.22514979423820E+01 0.55503071968955E+00 -.13629604568511E+01 + 384 0.23071099415588E+01 0.55831682912776E+00 -.13267448551186E+01 + 385 0.23640955571153E+01 0.56080047176637E+00 -.12918205669045E+01 + 386 0.24224887173761E+01 0.56248157428617E+00 -.12581079069606E+01 + 387 0.24823241886953E+01 0.56336207495181E+00 -.12255342506640E+01 + 388 0.25436375961561E+01 0.56344593360190E+00 -.11940334051051E+01 + 389 0.26064654447811E+01 0.56273919932534E+00 -.11635450185432E+01 + 390 0.26708451412672E+01 0.56124998878537E+00 -.11340140305769E+01 + 391 0.27368150162565E+01 0.55898847364447E+00 -.11053901638740E+01 + 392 0.28044143471580E+01 0.55596685953261E+00 -.10776274571536E+01 + 393 0.28736833815328E+01 0.55219935825970E+00 -.10506838382533E+01 + 394 0.29446633610567E+01 0.54770215338223E+00 -.10245207355184E+01 + 395 0.30173965460748E+01 0.54249335912278E+00 -.99910272535428E+00 + 396 0.30919262407629E+01 0.53659297264396E+00 -.97439721357789E+00 + 397 0.31682968189097E+01 0.53002281965681E+00 -.95037414805907E+00 + 398 0.32465537503368E+01 0.52280649332589E+00 -.92700576018736E+00 + 399 0.33267436279701E+01 0.51496928641802E+00 -.90426633271966E+00 + 400 0.34089141955809E+01 0.50653811663586E+00 -.88213199167598E+00 + 401 0.34931143762118E+01 0.49754144507908E+00 -.86058052007491E+00 + 402 0.35793943013042E+01 0.48800918778924E+00 -.83959119144109E+00 + 403 0.36678053405464E+01 0.47797262035909E+00 -.81914462116464E+00 + 404 0.37584001324579E+01 0.46746427562424E+00 -.79922263393935E+00 + 405 0.38512326157296E+01 0.45651783450362E+00 -.77980814565014E+00 + 406 0.39463580613382E+01 0.44516801011436E+00 -.76088505821807E+00 + 407 0.40438331054532E+01 0.43345042535488E+00 -.74243816604077E+00 + 408 0.41437157831579E+01 0.42140148422537E+00 -.72445307278860E+00 + 409 0.42460655630019E+01 0.40905823705195E+00 -.70691611743073E+00 + 410 0.43509433824081E+01 0.39645824101437E+00 -.68981430847070E+00 + 411 0.44584116839535E+01 0.38363941445537E+00 -.67313526547189E+00 + 412 0.45685344525472E+01 0.37063988769558E+00 -.65686716704190E+00 + 413 0.46813772535251E+01 0.35749784991950E+00 -.64099870453213E+00 + 414 0.47970072716872E+01 0.34425139310572E+00 -.62551904078691E+00 + 415 0.49154933512978E+01 0.33093835381192E+00 -.61041777334935E+00 + 416 0.50369060370749E+01 0.31759615368515E+00 -.59568490159841E+00 + 417 0.51613176161907E+01 0.30426163962224E+00 -.58131079735330E+00 + 418 0.52888021613106E+01 0.29097092455367E+00 -.56728617853766E+00 + 419 0.54194355746949E+01 0.27775922986834E+00 -.55360208554674E+00 + 420 0.55532956333899E+01 0.26466073053642E+00 -.54024986000673E+00 + 421 0.56904620355346E+01 0.25170840402387E+00 -.52722112565549E+00 + 422 0.58310164478123E+01 0.23893388412480E+00 -.51450777110975E+00 + 423 0.59750425540733E+01 0.22636732086728E+00 -.50210193431414E+00 + 424 0.61226261051589E+01 0.21403724767158E+00 -.48999598849380E+00 + 425 0.62738549699563E+01 0.20197045695765E+00 -.47818252945410E+00 + 426 0.64288191877143E+01 0.19019188540581E+00 -.46665436408931E+00 + 427 0.65876110216508E+01 0.17872451007051E+00 -.45540449997729E+00 + 428 0.67503250138856E+01 0.16758925652591E+00 -.44442613594946E+00 + 429 0.69170580417285E+01 0.15680492018192E+00 -.43371265353599E+00 + 430 0.70879093753592E+01 0.14638810184570E+00 -.42325760919455E+00 + 431 0.72629807369306E+01 0.13635315851378E+00 -.41305472723888E+00 + 432 0.74423763611328E+01 0.12671217026174E+00 -.40309789338976E+00 + 433 0.76262030572528E+01 0.11747492395048E+00 -.39338114887774E+00 + 434 0.78145702727669E+01 0.10864891429047E+00 -.38389868503251E+00 + 435 0.80075901585043E+01 0.10023936260023E+00 -.37464483829985E+00 + 436 0.82053776354193E+01 0.92249253364635E-01 -.36561408563253E+00 + 437 0.84080504630142E+01 0.84679388448245E-01 -.35680104020714E+00 + 438 0.86157293094506E+01 0.77528458553439E-01 -.34820044742429E+00 + 439 0.88285378233941E+01 0.70793131240598E-01 -.33980718115437E+00 + 440 0.90466027076319E+01 0.64468154554899E-01 -.33161624019643E+00 + 441 0.92700537945104E+01 0.58546475040207E-01 -.32362274492182E+00 + 442 0.94990241232348E+01 0.53019368673136E-01 -.31582193407860E+00 + 443 0.97336500190787E+01 0.47876583027581E-01 -.30820916173643E+00 + 444 0.99740711745499E+01 0.43106488789207E-01 -.30077989435496E+00 + 445 0.10220430732561E+02 0.38696238586859E-01 -.29352970796151E+00 + 446 0.10472875371656E+02 0.34631930998421E-01 -.28645428542664E+00 + 447 0.10731555393335E+02 0.30898777525986E-01 -.27954941382787E+00 + 448 0.10996624811551E+02 0.27481270320933E-01 -.27281098189396E+00 + 449 0.11268241444396E+02 0.24363348473864E-01 -.26623497752333E+00 + 450 0.11546567008073E+02 0.21528560765772E-01 -.25981748537154E+00 + 451 0.11831767213172E+02 0.18960222902158E-01 -.25355468450367E+00 + 452 0.12124011863338E+02 0.16641567416684E-01 -.24744284610793E+00 + 453 0.12423474956362E+02 0.14555884629600E-01 -.24147833126792E+00 + 454 0.12730334787784E+02 0.12686653272201E-01 -.23565758879087E+00 + 455 0.13044774057042E+02 0.11017659634724E-01 -.22997715308988E+00 + 456 0.13366979976251E+02 0.95331043540497E-02 -.22443364211830E+00 + 457 0.13697144381665E+02 0.82176962218630E-02 -.21902375534681E+00 + 458 0.14035463847892E+02 0.70567326562891E-02 -.21374427183254E+00 + 459 0.14382139804935E+02 0.60361667340264E-02 -.20859204824099E+00 + 460 0.14737378658117E+02 0.51426609194517E-02 -.20356401702059E+00 + 461 0.15101391910972E+02 0.43636278470322E-02 -.19865718456191E+00 + 462 0.15474396291173E+02 0.36872587096172E-02 -.19386862941535E+00 + 463 0.15856613879565E+02 0.31025399745841E-02 -.18919550055172E+00 + 464 0.16248272242390E+02 0.25992592903385E-02 -.18463501566481E+00 + 465 0.16649604566777E+02 0.21680015562665E-02 -.18018445951479E+00 + 466 0.17060849799577E+02 0.18001362097968E-02 -.17584118231169E+00 + 467 0.17482252789626E+02 0.14877968355014E-02 -.17160259813769E+00 + 468 0.17914064433530E+02 0.12238542246366E-02 -.16746618340753E+00 + 469 0.18356541825038E+02 0.10018840113185E-02 -.16342947536599E+00 + 470 0.18809948408117E+02 0.81612998624094E-03 -.15949007062164E+00 + 471 0.19274554133797E+02 0.66146414342877E-03 -.15564562371586E+00 + 472 0.19750635620902E+02 0.53334445316551E-03 -.15189384572641E+00 + 473 0.20238476320738E+02 0.42777127821554E-03 -.14823250290467E+00 + 474 0.20738366685861E+02 0.34124326407640E-03 -.14465941534563E+00 + 475 0.21250604343001E+02 0.27071344042622E-03 -.14117245569009E+00 + 476 0.21775494270273E+02 0.21354617319537E-03 -.13776954785800E+00 + 477 0.22313348978749E+02 0.16747550756951E-03 -.13444866581243E+00 + 478 0.22864488698524E+02 0.13056534421558E-03 -.13120783235330E+00 + 479 0.23429241569378E+02 0.10117179628789E-03 -.12804511794018E+00 + 480 0.24007943836141E+02 0.77907985151835E-04 -.12495863954346E+00 + 481 0.24600940048894E+02 0.59611449740063E-04 -.12194655952323E+00 + 482 0.25208583268102E+02 0.45314269165523E-04 -.11900708453521E+00 + 483 0.25831235274824E+02 0.34215931447804E-04 -.11613846446298E+00 + 484 0.26469266786112E+02 0.25658923460019E-04 -.11333899137599E+00 + 485 0.27123057675729E+02 0.19106968535435E-04 -.11060699851273E+00 + 486 0.27792997200320E+02 0.14125799081258E-04 -.10794085928831E+00 + 487 0.28479484231167E+02 0.10366318472186E-04 -.10533898632605E+00 + 488 0.29182927491677E+02 0.75499967696133E-05 -.10279983051240E+00 + 489 0.29903745800722E+02 0.54562778044362E-05 -.10032188007456E+00 + 490 0.30642368322000E+02 0.39119132472221E-05 -.97903659680448E-01 + 491 0.31399234819553E+02 0.27819015264397E-05 -.95543729560309E-01 + 492 0.32174795919596E+02 0.19618622138231E-05 -.93240684649467E-01 + 493 0.32969513378810E+02 0.13717646603903E-05 -.90993153751798E-01 + 494 0.33783860359267E+02 0.95078490116718E-06 -.88799798723331E-01 + 495 0.34618321710140E+02 0.65310255559051E-06 -.86659313675545E-01 + 496 0.35473394256381E+02 0.44450784794255E-06 -.84570424197858E-01 + 497 0.36349587094513E+02 0.29969292030798E-06 -.82531886598866E-01 + 498 0.37247421895748E+02 0.20011059445946E-06 -.80542487165869E-01 + 499 0.38167433216573E+02 0.13229858395676E-06 -.78601041442246E-01 + 500 0.39110168817022E+02 0.86581307837605E-07 -.76706393522246E-01 + 501 0.40076189986803E+02 0.56074642417813E-07 -.74857415362786E-01 + 502 0.41066071879477E+02 0.35930983286592E-07 -.73053006111823E-01 + 503 0.42080403854900E+02 0.22772768140131E-07 -.71292091452936E-01 + 504 0.43119789830116E+02 0.14272091897795E-07 -.69573622965684E-01 + 505 0.44184848638920E+02 0.88422428563126E-08 -.67896577501399E-01 + 506 0.45276214400301E+02 0.54139596879278E-08 -.66259956574021E-01 + 507 0.46394536895988E+02 0.32750423789377E-08 -.64662785765610E-01 + 508 0.47540481957319E+02 0.19567547408412E-08 -.63104114146199E-01 + 509 0.48714731861665E+02 0.11543519754768E-08 -.61583013707621E-01 + 510 0.49917985738648E+02 0.67217722725388E-09 -.60098578810989E-01 + 511 0.51150959986393E+02 0.38621639068155E-09 -.58649925647496E-01 + 512 0.52414388698057E+02 0.21889351710002E-09 -.57236191712205E-01 + 513 0.53709024098899E+02 0.12233207932496E-09 -.55856535290529E-01 + 514 0.55035636994142E+02 0.67390550273062E-10 -.54510134957089E-01 + 515 0.56395017227897E+02 0.36580441288813E-10 -.53196189086648E-01 + 516 0.57787974153426E+02 0.19558079427983E-10 -.51913915376840E-01 + 517 0.59215337115016E+02 0.10295254329268E-10 -.50662550382395E-01 + 518 0.60677955941756E+02 0.53332337244767E-11 -.49441349060599E-01 + 519 0.62176701453518E+02 0.00000000000000E+00 -.48249584327704E-01 + 520 0.63712465979420E+02 0.00000000000000E+00 -.47086546626041E-01 + 521 0.65286163889111E+02 0.00000000000000E+00 -.45951543501553E-01 + 522 0.66898732137172E+02 0.00000000000000E+00 -.44843899191522E-01 + 523 0.68551130820961E+02 0.00000000000000E+00 -.43762954222233E-01 + 524 0.70244343752238E+02 0.00000000000000E+00 -.42708065016330E-01 + 525 0.71979379042919E+02 0.00000000000000E+00 -.41678603509641E-01 + 526 0.73757269705279E+02 0.00000000000000E+00 -.40673956777244E-01 + 527 0.75579074266999E+02 0.00000000000000E+00 -.39693526668531E-01 + 528 0.77445877401394E+02 0.00000000000000E+00 -.38736729451089E-01 + 529 0.79358790573208E+02 0.00000000000000E+00 -.37802995463149E-01 +529 0.10247000000000E+01 + 1 0.20161290322581E-03 0.59401440143604E-11 -.63486563651619E+01 + 2 0.20659274193548E-03 0.63912702665645E-11 -.63486564129980E+01 + 3 0.21169558266129E-03 0.68766574550246E-11 -.63486564596615E+01 + 4 0.21692446355302E-03 0.73989075381669E-11 -.63486565051797E+01 + 5 0.22228249780278E-03 0.79608204933767E-11 -.63486565495792E+01 + 6 0.22777287549851E-03 0.85654081517817E-11 -.63486565928858E+01 + 7 0.23339886552333E-03 0.92159114550128E-11 -.63486566351249E+01 + 8 0.23916381750175E-03 0.99158174856527E-11 -.63486566763208E+01 + 9 0.24507116379405E-03 0.10668878153080E-10 -.63486567164976E+01 + 10 0.25112442153976E-03 0.11479130306877E-10 -.63486567556784E+01 + 11 0.25732719475179E-03 0.12350917376712E-10 -.63486567938860E+01 + 12 0.26368317646216E-03 0.13288912655685E-10 -.63486568311423E+01 + 13 0.27019615092077E-03 0.14298144351928E-10 -.63486568674687E+01 + 14 0.27686999584852E-03 0.15384022542760E-10 -.63486569028861E+01 + 15 0.28370868474598E-03 0.16552368175884E-10 -.63486569374148E+01 + 16 0.29071628925920E-03 0.17809444273093E-10 -.63486569710743E+01 + 17 0.29789698160390E-03 0.19161989503750E-10 -.63486570038837E+01 + 18 0.30525503704952E-03 0.20617254308017E-10 -.63486570358618E+01 + 19 0.31279483646464E-03 0.22183039763479E-10 -.63486570670263E+01 + 20 0.32052086892532E-03 0.23867739403502E-10 -.63486570973950E+01 + 21 0.32843773438778E-03 0.25680384211510E-10 -.63486571269845E+01 + 22 0.33655014642715E-03 0.27630691032352E-10 -.63486571558115E+01 + 23 0.34486293504390E-03 0.29729114660307E-10 -.63486571838919E+01 + 24 0.35338104953949E-03 0.31986903882909E-10 -.63486572112409E+01 + 25 0.36210956146311E-03 0.34416161781061E-10 -.63486572378736E+01 + 26 0.37105366763125E-03 0.37029910608640E-10 -.63486572638043E+01 + 27 0.38021869322175E-03 0.39842161599420E-10 -.63486572890470E+01 + 28 0.38961009494432E-03 0.42867990075500E-10 -.63486573136151E+01 + 29 0.39923346428945E-03 0.46123616259863E-10 -.63486573375215E+01 + 30 0.40909453085740E-03 0.49626492226273E-10 -.63486573607788E+01 + 31 0.41919916576957E-03 0.53395395452613E-10 -.63486573833989E+01 + 32 0.42955338516408E-03 0.57450529479153E-10 -.63486574053934E+01 + 33 0.44016335377764E-03 0.61813632211347E-10 -.63486574267733E+01 + 34 0.45103538861594E-03 0.66508092447715E-10 -.63486574475492E+01 + 35 0.46217596271476E-03 0.71559075257475E-10 -.63486574677312E+01 + 36 0.47359170899381E-03 0.76993656880008E-10 -.63486574873291E+01 + 37 0.48528942420596E-03 0.82840969869310E-10 -.63486575063519E+01 + 38 0.49727607298385E-03 0.89132359261478E-10 -.63486575248085E+01 + 39 0.50955879198655E-03 0.95901550602374E-10 -.63486575427070E+01 + 40 0.52214489414861E-03 0.10318483073621E-09 -.63486575600554E+01 + 41 0.53504187303408E-03 0.11102124232413E-09 -.63486575768608E+01 + 42 0.54825740729803E-03 0.11945279313564E-09 -.63486575931302E+01 + 43 0.56179936525829E-03 0.12852468123463E-09 -.63486576088699E+01 + 44 0.57567580958017E-03 0.13828553726725E-09 -.63486576240858E+01 + 45 0.58989500207680E-03 0.14878768515044E-09 -.63486576387834E+01 + 46 0.60446540862809E-03 0.16008742255839E-09 -.63486576529674E+01 + 47 0.61939570422121E-03 0.17224532271076E-09 -.63486576666425E+01 + 48 0.63469477811547E-03 0.18532655908015E-09 -.63486576798123E+01 + 49 0.65037173913492E-03 0.19940125475959E-09 -.63486576924805E+01 + 50 0.66643592109156E-03 0.21454485836281E-09 -.63486577046497E+01 + 51 0.68289688834252E-03 0.23083854847236E-09 -.63486577163225E+01 + 52 0.69976444148458E-03 0.24836966880351E-09 -.63486577275005E+01 + 53 0.71704862318925E-03 0.26723219641688E-09 -.63486577381851E+01 + 54 0.73475972418202E-03 0.28752724548945E-09 -.63486577483769E+01 + 55 0.75290828936932E-03 0.30936360934456E-09 -.63486577580761E+01 + 56 0.77150512411674E-03 0.33285834364645E-09 -.63486577672821E+01 + 57 0.79056130068242E-03 0.35813739388557E-09 -.63486577759940E+01 + 58 0.81008816480928E-03 0.38533627051833E-09 -.63486577842099E+01 + 59 0.83009734248007E-03 0.41460077538041E-09 -.63486577919275E+01 + 60 0.85060074683933E-03 0.44608778326752E-09 -.63486577991439E+01 + 61 0.87161058528626E-03 0.47996608287342E-09 -.63486578058553E+01 + 62 0.89313936674283E-03 0.51641728159299E-09 -.63486578120574E+01 + 63 0.91519990910138E-03 0.55563677904055E-09 -.63486578177451E+01 + 64 0.93780534685618E-03 0.59783481450207E-09 -.63486578229124E+01 + 65 0.96096913892353E-03 0.64323759393606E-09 -.63486578275529E+01 + 66 0.98470507665494E-03 0.69208850256459E-09 -.63486578316590E+01 + 67 0.10090272920483E-02 0.74464940955437E-09 -.63486578352225E+01 + 68 0.10339502661619E-02 0.80120207178172E-09 -.63486578382343E+01 + 69 0.10594888377361E-02 0.86204964420641E-09 -.63486578406844E+01 + 70 0.10856582120282E-02 0.92751830495049E-09 -.63486578425620E+01 + 71 0.11124739698653E-02 0.99795900379363E-09 -.63486578438550E+01 + 72 0.11399520769210E-02 0.10737493434574E-08 -.63486578445506E+01 + 73 0.11681088932209E-02 0.11552956037636E-08 -.63486578446350E+01 + 74 0.11969611828835E-02 0.12430349195163E-08 -.63486578440930E+01 + 75 0.12265261241007E-02 0.13374376237830E-08 -.63486578429086E+01 + 76 0.12568213193660E-02 0.14390097691351E-08 -.63486578410645E+01 + 77 0.12878648059543E-02 0.15482958403637E-08 -.63486578385421E+01 + 78 0.13196750666614E-02 0.16658816732106E-08 -.63486578353217E+01 + 79 0.13522710408079E-02 0.17923975947622E-08 -.63486578313821E+01 + 80 0.13856721355159E-02 0.19285218023381E-08 -.63486578267008E+01 + 81 0.14198982372631E-02 0.20749839989883E-08 -.63486578212538E+01 + 82 0.14549697237235E-02 0.22325693050859E-08 -.63486578150157E+01 + 83 0.14909074758995E-02 0.24021224669837E-08 -.63486578079593E+01 + 84 0.15277328905542E-02 0.25845523852938E-08 -.63486578000560E+01 + 85 0.15654678929509E-02 0.27808369870647E-08 -.63486577912753E+01 + 86 0.16041349499068E-02 0.29920284679724E-08 -.63486577815850E+01 + 87 0.16437570831695E-02 0.32192589326244E-08 -.63486577709507E+01 + 88 0.16843578831238E-02 0.34637464632126E-08 -.63486577593365E+01 + 89 0.17259615228369E-02 0.37268016490435E-08 -.63486577467041E+01 + 90 0.17685927724510E-02 0.40098346119479E-08 -.63486577330131E+01 + 91 0.18122770139305E-02 0.43143625652265E-08 -.63486577182208E+01 + 92 0.18570402561746E-02 0.46420179466519E-08 -.63486577022822E+01 + 93 0.19029091505021E-02 0.49945571691205E-08 -.63486576851498E+01 + 94 0.19499110065195E-02 0.53738700358618E-08 -.63486576667733E+01 + 95 0.19980738083806E-02 0.57819898706723E-08 -.63486576470998E+01 + 96 0.20474262314476E-02 0.62211044174745E-08 -.63486576260736E+01 + 97 0.20979976593643E-02 0.66935675676260E-08 -.63486576036359E+01 + 98 0.21498182015506E-02 0.72019119778389E-08 -.63486575797247E+01 + 99 0.22029187111289E-02 0.77488626463451E-08 -.63486575542748E+01 + 100 0.22573308032938E-02 0.83373515200766E-08 -.63486575272175E+01 + 101 0.23130868741352E-02 0.89705332111595E-08 -.63486574984803E+01 + 102 0.23702201199263E-02 0.96518019069630E-08 -.63486574679871E+01 + 103 0.24287645568885E-02 0.10384809564344E-07 -.63486574356577E+01 + 104 0.24887550414436E-02 0.11173485485609E-07 -.63486574014077E+01 + 105 0.25502272909673E-02 0.12022057381125E-07 -.63486573651483E+01 + 106 0.26132179050542E-02 0.12935074031471E-07 -.63486573267861E+01 + 107 0.26777643873090E-02 0.13917429670604E-07 -.63486572862228E+01 + 108 0.27439051676755E-02 0.14974390220730E-07 -.63486572433551E+01 + 109 0.28116796253171E-02 0.16111621519501E-07 -.63486571980742E+01 + 110 0.28811281120625E-02 0.17335219690831E-07 -.63486571502658E+01 + 111 0.29522919764304E-02 0.18651743822111E-07 -.63486570998098E+01 + 112 0.30252135882482E-02 0.20068251122986E-07 -.63486570465797E+01 + 113 0.30999363638780E-02 0.21592334754112E-07 -.63486569904429E+01 + 114 0.31765047920657E-02 0.23232164528669E-07 -.63486569312595E+01 + 115 0.32549644604298E-02 0.24996530704770E-07 -.63486568688828E+01 + 116 0.33353620826024E-02 0.26894891103482E-07 -.63486568031586E+01 + 117 0.34177455260427E-02 0.28937421804994E-07 -.63486567339246E+01 + 118 0.35021638405359E-02 0.31135071694647E-07 -.63486566610106E+01 + 119 0.35886672873971E-02 0.33499621151167E-07 -.63486565842373E+01 + 120 0.36773073693959E-02 0.36043745191633E-07 -.63486565034167E+01 + 121 0.37681368614199E-02 0.38781081411625E-07 -.63486564183509E+01 + 122 0.38612098418970E-02 0.41726303084639E-07 -.63486563288323E+01 + 123 0.39565817249919E-02 0.44895197812564E-07 -.63486562346425E+01 + 124 0.40543092935992E-02 0.48304752148706E-07 -.63486561355520E+01 + 125 0.41544507331511E-02 0.51973242646890E-07 -.63486560313200E+01 + 126 0.42570656662599E-02 0.55920333824568E-07 -.63486559216932E+01 + 127 0.43622151882165E-02 0.60167183564943E-07 -.63486558064055E+01 + 128 0.44699619033655E-02 0.64736556522941E-07 -.63486556851775E+01 + 129 0.45803699623786E-02 0.69652946142770E-07 -.63486555577157E+01 + 130 0.46935051004493E-02 0.74942705940942E-07 -.63486554237114E+01 + 131 0.48094346764304E-02 0.80634190758262E-07 -.63486552828407E+01 + 132 0.49282277129383E-02 0.86757908737705E-07 -.63486551347632E+01 + 133 0.50499549374478E-02 0.93346684842566E-07 -.63486549791213E+01 + 134 0.51746888244028E-02 0.10043583679108E-06 -.63486548155391E+01 + 135 0.53025036383656E-02 0.10806336435025E-06 -.63486546436222E+01 + 136 0.54334754782332E-02 0.11627015300310E-06 -.63486544629559E+01 + 137 0.55676823225455E-02 0.12510019308074E-06 -.63486542731046E+01 + 138 0.57052040759124E-02 0.13460081553320E-06 -.63486540736108E+01 + 139 0.58461226165875E-02 0.14482294560242E-06 -.63486538639939E+01 + 140 0.59905218452172E-02 0.15582137575635E-06 -.63486536437490E+01 + 141 0.61384877347940E-02 0.16765505934652E-06 -.63486534123455E+01 + 142 0.62901083818434E-02 0.18038742656235E-06 -.63486531692264E+01 + 143 0.64454740588750E-02 0.19408672437474E-06 -.63486529138061E+01 + 144 0.66046772681292E-02 0.20882638229015E-06 -.63486526454698E+01 + 145 0.67678127966520E-02 0.22468540587444E-06 -.63486523635713E+01 + 146 0.69349777727293E-02 0.24174880015452E-06 -.63486520674318E+01 + 147 0.71062717237157E-02 0.26010802516570E-06 -.63486517563384E+01 + 148 0.72817966352915E-02 0.27986148608490E-06 -.63486514295418E+01 + 149 0.74616570121832E-02 0.30111506057486E-06 -.63486510862549E+01 + 150 0.76459599403841E-02 0.32398266616387E-06 -.63486507256508E+01 + 151 0.78348151509116E-02 0.34858687069951E-06 -.63486503468606E+01 + 152 0.80283350851391E-02 0.37505954914595E-06 -.63486499489714E+01 + 153 0.82266349617420E-02 0.40354259024175E-06 -.63486495310241E+01 + 154 0.84298328452971E-02 0.43418865680249E-06 -.63486490920107E+01 + 155 0.86380497165759E-02 0.46716200373919E-06 -.63486486308722E+01 + 156 0.88514095445753E-02 0.50263935817264E-06 -.63486481464958E+01 + 157 0.90700393603263E-02 0.54081086635549E-06 -.63486476377120E+01 + 158 0.92940693325264E-02 0.58188111247192E-06 -.63486471032920E+01 + 159 0.95236328450398E-02 0.62607021476863E-06 -.63486465419443E+01 + 160 0.97588665763123E-02 0.67361500488484E-06 -.63486459523116E+01 + 161 0.99999105807472E-02 0.72477029669370E-06 -.63486453329674E+01 + 162 0.10246908372092E-01 0.77981025144612E-06 -.63486446824126E+01 + 163 0.10500007008882E-01 0.83902984652311E-06 -.63486439990712E+01 + 164 0.10759357182002E-01 0.90274645565620E-06 -.63486432812868E+01 + 165 0.11025113304397E-01 0.97130154907165E-06 -.63486425273183E+01 + 166 0.11297433603016E-01 0.10450625226547E-05 -.63486417353353E+01 + 167 0.11576480213010E-01 0.11244246659196E-05 -.63486409034134E+01 + 168 0.11862419274272E-01 0.12098132793131E-05 -.63486400295296E+01 + 169 0.12155421030346E-01 0.13016859521758E-05 -.63486391115567E+01 + 170 0.12455659929796E-01 0.14005350135441E-05 -.63486381472582E+01 + 171 0.12763314730062E-01 0.15068901689003E-05 -.63486371342822E+01 + 172 0.13078568603894E-01 0.16213213369659E-05 -.63486360701553E+01 + 173 0.13401609248410E-01 0.17444417017079E-05 -.63486349522764E+01 + 174 0.13732628996846E-01 0.18769109958699E-05 -.63486337779097E+01 + 175 0.14071824933068E-01 0.20194390335786E-05 -.63486325441774E+01 + 176 0.14419399008915E-01 0.21727895109033E-05 -.63486312480523E+01 + 177 0.14775558164435E-01 0.23377840946762E-05 -.63486298863496E+01 + 178 0.15140514451097E-01 0.25153068214153E-05 -.63486284557186E+01 + 179 0.15514485158039E-01 0.27063088298471E-05 -.63486269526334E+01 + 180 0.15897692941442E-01 0.29118134523013E-05 -.63486253733836E+01 + 181 0.16290365957096E-01 0.31329216921638E-05 -.63486237140644E+01 + 182 0.16692737996236E-01 0.33708181166259E-05 -.63486219705653E+01 + 183 0.17105048624743E-01 0.36267771961815E-05 -.63486201385597E+01 + 184 0.17527543325774E-01 0.39021701246996E-05 -.63486182134921E+01 + 185 0.17960473645921E-01 0.41984721564543E-05 -.63486161905662E+01 + 186 0.18404097344975E-01 0.45172704992451E-05 -.63486140647307E+01 + 187 0.18858678549396E-01 0.48602728056936E-05 -.63486118306658E+01 + 188 0.19324487909566E-01 0.52293163079800E-05 -.63486094827675E+01 + 189 0.19801802760932E-01 0.56263776447015E-05 -.63486070151319E+01 + 190 0.20290907289128E-01 0.60535834322038E-05 -.63486044215383E+01 + 191 0.20792092699169E-01 0.65132216366890E-05 -.63486016954306E+01 + 192 0.21305657388838E-01 0.70077538076466E-05 -.63485988298986E+01 + 193 0.21831907126343E-01 0.75398282377177E-05 -.63485958176573E+01 + 194 0.22371155232363E-01 0.81122941190099E-05 -.63485926510254E+01 + 195 0.22923722766603E-01 0.87282167711498E-05 -.63485893219020E+01 + 196 0.23489938718938E-01 0.93908940220328E-05 -.63485858217419E+01 + 197 0.24070140205296E-01 0.10103873828316E-04 -.63485821415298E+01 + 198 0.24664672668366E-01 0.10870973229252E-04 -.63485782717519E+01 + 199 0.25273890083275E-01 0.11696298734494E-04 -.63485742023666E+01 + 200 0.25898155168332E-01 0.12584268254065E-04 -.63485699227721E+01 + 201 0.26537839600990E-01 0.13539634686808E-04 -.63485654217734E+01 + 202 0.27193324239134E-01 0.14567511292362E-04 -.63485606875452E+01 + 203 0.27864999347841E-01 0.15673398981094E-04 -.63485557075938E+01 + 204 0.28553264831733E-01 0.16863215666488E-04 -.63485504687157E+01 + 205 0.29258530473076E-01 0.18143327835304E-04 -.63485449569530E+01 + 206 0.29981216175761E-01 0.19520584502489E-04 -.63485391575468E+01 + 207 0.30721752215303E-01 0.21002353730248E-04 -.63485330548858E+01 + 208 0.31480579495021E-01 0.22596561904148E-04 -.63485266324524E+01 + 209 0.32258149808548E-01 0.24311735973510E-04 -.63485198727645E+01 + 210 0.33054926108819E-01 0.26157048878791E-04 -.63485127573132E+01 + 211 0.33871382783707E-01 0.28142368405295E-04 -.63485052664955E+01 + 212 0.34708005938464E-01 0.30278309720358E-04 -.63484973795427E+01 + 213 0.35565293685144E-01 0.32576291870262E-04 -.63484890744428E+01 + 214 0.36443756439167E-01 0.35048598533726E-04 -.63484803278578E+01 + 215 0.37343917223215E-01 0.37708443350777E-04 -.63484711150342E+01 + 216 0.38266311978628E-01 0.40570040169531E-04 -.63484614097065E+01 + 217 0.39211489884500E-01 0.43648678578694E-04 -.63484511839939E+01 + 218 0.40180013684647E-01 0.46960805120879E-04 -.63484404082889E+01 + 219 0.41172460022658E-01 0.50524110610953E-04 -.63484290511363E+01 + 220 0.42189419785218E-01 0.54357624014942E-04 -.63484170791038E+01 + 221 0.43231498453913E-01 0.58481813378581E-04 -.63484044566417E+01 + 222 0.44299316465724E-01 0.62918694330510E-04 -.63483911459316E+01 + 223 0.45393509582428E-01 0.67691946723692E-04 -.63483771067224E+01 + 224 0.46514729269114E-01 0.72827040019898E-04 -.63483622961539E+01 + 225 0.47663643082061E-01 0.78351368066321E-04 -.63483466685652E+01 + 226 0.48840935066188E-01 0.84294393960766E-04 -.63483301752874E+01 + 227 0.50047306162322E-01 0.90687805752571E-04 -.63483127644193E+01 + 228 0.51283474624532E-01 0.97565683780680E-04 -.63482943805844E+01 + 229 0.52550176447758E-01 0.10496468050841E-03 -.63482749646674E+01 + 230 0.53848165806017E-01 0.11292421377656E-03 -.63482544535280E+01 + 231 0.55178215501426E-01 0.12148667446303E-03 -.63482327796908E+01 + 232 0.56541117424311E-01 0.13069764960807E-03 -.63482098710087E+01 + 233 0.57937683024692E-01 0.14060616214033E-03 -.63481856502968E+01 + 234 0.59368743795402E-01 0.15126492841989E-03 -.63481600349346E+01 + 235 0.60835151767148E-01 0.16273063490116E-03 -.63481329364344E+01 + 236 0.62337780015796E-01 0.17506423531097E-03 -.63481042599701E+01 + 237 0.63877523182187E-01 0.18833126983579E-03 -.63480739038666E+01 + 238 0.65455298004787E-01 0.20260220791729E-03 -.63480417590421E+01 + 239 0.67072043865505E-01 0.21795281636761E-03 -.63480077084018E+01 + 240 0.68728723348983E-01 0.23446455463496E-03 -.63479716261774E+01 + 241 0.70426322815703E-01 0.25222499917766E-03 -.63479333772062E+01 + 242 0.72165852989251E-01 0.27132829903989E-03 -.63478928161470E+01 + 243 0.73948349558085E-01 0.29187566486618E-03 -.63478497866228E+01 + 244 0.75774873792170E-01 0.31397589374480E-03 -.63478041202874E+01 + 245 0.77646513174836E-01 0.33774593243239E-03 -.63477556358053E+01 + 246 0.79564382050255E-01 0.36331148168422E-03 -.63477041377397E+01 + 247 0.81529622286896E-01 0.39080764459735E-03 -.63476494153361E+01 + 248 0.83543403957382E-01 0.42037962206662E-03 -.63475912411960E+01 + 249 0.85606926035130E-01 0.45218345865837E-03 -.63475293698263E+01 + 250 0.87721417108197E-01 0.48638684242237E-03 -.63474635360545E+01 + 251 0.89888136110770E-01 0.52316996239042E-03 -.63473934532967E+01 + 252 0.92108373072706E-01 0.56272642775032E-03 -.63473188116635E+01 + 253 0.94383449887602E-01 0.60526425293677E-03 -.63472392758893E+01 + 254 0.96714721099826E-01 0.65100691314606E-03 -.63471544830670E+01 + 255 0.99103574710991E-01 0.70019447506038E-03 -.63470640401703E+01 + 256 0.10155143300635E+00 0.75308480785908E-03 -.63469675213425E+01 + 257 0.10405975340161E+00 0.80995487989910E-03 -.63468644649302E+01 + 258 0.10663002931063E+00 0.87110214676451E-03 -.63467543702362E+01 + 259 0.10926379103460E+00 0.93684603671553E-03 -.63466366939665E+01 + 260 0.11196260667316E+00 0.10075295399100E-02 -.63465108463395E+01 + 261 0.11472808305798E+00 0.10835209081246E-02 -.63463761868279E+01 + 262 0.11756186670952E+00 0.11652154720672E-02 -.63462320194957E+01 + 263 0.12046564481724E+00 0.12530375837476E-02 -.63460775878933E+01 + 264 0.12344114624423E+00 0.13474426917531E-02 -.63459120694675E+01 + 265 0.12649014255646E+00 0.14489195576667E-02 -.63457345694402E+01 + 266 0.12961444907760E+00 0.15579926222550E-02 -.63455441141058E+01 + 267 0.13281592596982E+00 0.16752245304463E-02 -.63453396434915E+01 + 268 0.13609647934127E+00 0.18012188245090E-02 -.63451200033203E+01 + 269 0.13945806238100E+00 0.19366228152226E-02 -.63448839362103E+01 + 270 0.14290267652182E+00 0.20821306412074E-02 -.63446300720393E+01 + 271 0.14643237263190E+00 0.22384865269277E-02 -.63443569173943E+01 + 272 0.15004925223591E+00 0.24064882502194E-02 -.63440628440221E+01 + 273 0.15375546876614E+00 0.25869908304848E-02 -.63437460761857E+01 + 274 0.15755322884466E+00 0.27809104489569E-02 -.63434046768256E+01 + 275 0.16144479359713E+00 0.29892286126400E-02 -.63430365324147E+01 + 276 0.16543247999897E+00 0.32129965736727E-02 -.63426393363862E+01 + 277 0.16951866225495E+00 0.34533400159244E-02 -.63422105710029E+01 + 278 0.17370577321265E+00 0.37114640206055E-02 -.63417474875246E+01 + 279 0.17799630581100E+00 0.39886583225267E-02 -.63412470845209E+01 + 280 0.18239281456453E+00 0.42863028683726E-02 -.63407060841577E+01 + 281 0.18689791708427E+00 0.46058736879187E-02 -.63401209062790E+01 + 282 0.19151429563626E+00 0.49489490885112E-02 -.63394876400842E+01 + 283 0.19624469873847E+00 0.53172161823008E-02 -.63388020131891E+01 + 284 0.20109194279731E+00 0.57124777546528E-02 -.63380593578396E+01 + 285 0.20605891378441E+00 0.61366594807968E-02 -.63372545740303E+01 + 286 0.21114856895488E+00 0.65918174961030E-02 -.63363820892604E+01 + 287 0.21636393860807E+00 0.70801463233157E-02 -.63354358146400E+01 + 288 0.22170812789169E+00 0.76039871575998E-02 -.63344090970369E+01 + 289 0.22718431865061E+00 0.81658365072963E-02 -.63332946669345E+01 + 290 0.23279577132128E+00 0.87683551847803E-02 -.63320845816479E+01 + 291 0.23854582687292E+00 0.94143776376966E-02 -.63307701635191E+01 + 292 0.24443790879668E+00 0.10106921606041E-01 -.63293419326937E+01 + 293 0.25047552514395E+00 0.10849198084974E-01 -.63277895340506E+01 + 294 0.25666227061501E+00 0.11644621566819E-01 -.63261016578380E+01 + 295 0.26300182869920E+00 0.12496820528288E-01 -.63242659535394E+01 + 296 0.26949797386807E+00 0.13409648120527E-01 -.63222689364751E+01 + 297 0.27615457382261E+00 0.14387193009958E-01 -.63200958866187E+01 + 298 0.28297559179603E+00 0.15433790306966E-01 -.63177307390897E+01 + 299 0.28996508891339E+00 0.16554032507220E-01 -.63151559657660E+01 + 300 0.29712722660955E+00 0.17752780356547E-01 -.63123524474464E+01 + 301 0.30446626910681E+00 0.19035173534884E-01 -.63092993359820E+01 + 302 0.31198658595375E+00 0.20406641037585E-01 -.63059739057961E+01 + 303 0.31969265462681E+00 0.21872911113315E-01 -.63023513942126E+01 + 304 0.32758906319609E+00 0.23440020596734E-01 -.62984048300301E+01 + 305 0.33568051305703E+00 0.25114323451083E-01 -.62941048498008E+01 + 306 0.34397182172954E+00 0.26902498310632E-01 -.62894195013160E+01 + 307 0.35246792572626E+00 0.28811554785615E-01 -.62843140338512E+01 + 308 0.36117388349170E+00 0.30848838262869E-01 -.62787506748030E+01 + 309 0.37009487841394E+00 0.33022032903914E-01 -.62726883924462E+01 + 310 0.37923622191077E+00 0.35339162508878E-01 -.62660826446660E+01 + 311 0.38860335659196E+00 0.37808588879592E-01 -.62588851136788E+01 + 312 0.39820185949978E+00 0.40439007278874E-01 -.62510434269512E+01 + 313 0.40803744542943E+00 0.43239438545789E-01 -.62425008647628E+01 + 314 0.41811597033154E+00 0.46219217389223E-01 -.62331960551493E+01 + 315 0.42844343479872E+00 0.49387976345329E-01 -.62230626573054E+01 + 316 0.43902598763825E+00 0.52755624849154E-01 -.62120290349352E+01 + 317 0.44986992953292E+00 0.56332322838566E-01 -.62000179215195E+01 + 318 0.46098171679238E+00 0.60128448280839E-01 -.61869460800307E+01 + 319 0.47236796519715E+00 0.64154557991084E-01 -.61727239602775E+01 + 320 0.48403545393752E+00 0.68421341099216E-01 -.61572553578114E+01 + 321 0.49599112964978E+00 0.72939564521251E-01 -.61404370791893E+01 + 322 0.50824211055213E+00 0.77720009804462E-01 -.61221586193583E+01 + 323 0.52079569068277E+00 0.82773400748038E-01 -.61023018580339E+01 + 324 0.53365934424263E+00 0.88110321255451E-01 -.60807407831738E+01 + 325 0.54684073004542E+00 0.93741122956435E-01 -.60573412510194E+01 + 326 0.56034769607754E+00 0.99675822250383E-01 -.60319607936844E+01 + 327 0.57418828417066E+00 0.10592398657455E+00 -.60044484869119E+01 + 328 0.58837073478968E+00 0.11249460989556E+00 -.59746448923906E+01 + 329 0.60290349193898E+00 0.11939597766725E+00 -.59423820909042E+01 + 330 0.61779520818987E+00 0.12663552179783E+00 -.59074838245557E+01 + 331 0.63305474983216E+00 0.13421966653009E+00 -.58697657683385E+01 + 332 0.64869120215302E+00 0.14215366656493E+00 -.58290359533517E+01 + 333 0.66471387484620E+00 0.15044143925458E+00 -.57850953659386E+01 + 334 0.68113230755490E+00 0.15908539325916E+00 -.57377387488593E+01 + 335 0.69795627555150E+00 0.16808625669820E+00 -.56867556322056E+01 + 336 0.71519579555763E+00 0.17744290853480E+00 -.56319316229948E+01 + 337 0.73286113170790E+00 0.18715221769457E+00 -.55730499830822E+01 + 338 0.75096280166108E+00 0.19720889523441E+00 -.55098935250423E+01 + 339 0.76951158286211E+00 0.20760536571703E+00 -.54422468547613E+01 + 340 0.78851851895881E+00 0.21833166479300E+00 -.53698989874435E+01 + 341 0.80799492637709E+00 0.22937537080932E+00 -.52926463602896E+01 + 342 0.82795240105860E+00 0.24072157901411E+00 -.52102962599956E+01 + 343 0.84840282536475E+00 0.25235292756233E+00 -.51226706761769E+01 + 344 0.86935837515126E+00 0.26424968499458E+00 -.50296105825739E+01 + 345 0.89083152701750E+00 0.27638990909888E+00 -.49309806362508E+01 + 346 0.91283506573483E+00 0.28874968701183E+00 -.48266742707927E+01 + 347 0.93538209185848E+00 0.30130346600498E+00 -.47166191427326E+01 + 348 0.95848602952738E+00 0.31402448357617E+00 -.46007828712349E+01 + 349 0.98216063445671E+00 0.32688530417060E+00 -.44791789897979E+01 + 350 0.10064200021278E+01 0.33985846805624E+00 -.43518730060890E+01 + 351 0.10312785761803E+01 0.35291725555568E+00 -.42189884430272E+01 + 352 0.10567511570120E+01 0.36603656700169E+00 -.40807127123465E+01 + 353 0.10828529105902E+01 0.37919391547713E+00 -.39373026530583E+01 + 354 0.11095993774818E+01 0.39237052569627E+00 -.37890895539159E+01 + 355 0.11370064821056E+01 0.40555252839207E+00 -.36364834740513E+01 + 356 0.11650905422136E+01 0.41873223542566E+00 -.34799766825667E+01 + 357 0.11938682786063E+01 0.43190947668005E+00 -.33201460592292E+01 + 358 0.12233568250878E+01 0.44509297578255E+00 -.31576543372651E+01 + 359 0.12535737386675E+01 0.45830173792779E+00 -.29932501272171E+01 + 360 0.12845370100126E+01 0.47156641958348E+00 -.28277667373795E+01 + 361 0.13162650741599E+01 0.48493064657296E+00 -.26621198975826E+01 + 362 0.13487768214917E+01 0.49845224369497E+00 -.24973045901355E+01 + 363 0.13820916089825E+01 0.51220433519361E+00 -.23343912788813E+01 + 364 0.14162292717244E+01 0.52627627029711E+00 -.21745218802737E+01 + 365 0.14512101347360E+01 0.54077432067488E+00 -.20189058048149E+01 + 366 0.14870550250639E+01 0.55582208570129E+00 -.18688162682603E+01 + 367 0.15237852841830E+01 0.57156052532216E+00 -.17255867758551E+01 + 368 0.15614227807023E+01 0.58814751749682E+00 -.15906071613852E+01 + 369 0.15999899233857E+01 0.60575680629992E+00 -.14653177632508E+01 + 370 0.16395096744933E+01 0.62457616729933E+00 -.13511992112671E+01 + 371 0.16800055634533E+01 0.64480456999506E+00 -.12497538968514E+01 + 372 0.17215017008706E+01 0.66664806722469E+00 -.11624736045693E+01 + 373 0.17640227928821E+01 0.69031409787974E+00 -.10907862209542E+01 + 374 0.18075941558663E+01 0.71600386898304E+00 -.10359733112484E+01 + 375 0.18522417315162E+01 0.74390251353657E+00 -.99905029539087E+00 + 376 0.18979921022846E+01 0.77416684176502E+00 -.98060284182390E+00 + 377 0.19448725072111E+01 0.80691076860870E+00 -.98057804309202E+00 + 378 0.19929108581392E+01 0.84218897033925E+00 -.99803818042270E+00 + 379 0.20421357563352E+01 0.87998005059215E+00 -.10308995712640E+01 + 380 0.20925765095167E+01 0.92017149263821E+00 -.10756998143343E+01 + 381 0.21442631493017E+01 0.96254985534839E+00 -.11274635513137E+01 + 382 0.21972264490895E+01 0.10068007726158E+01 -.11797700764358E+01 + 383 0.22514979423820E+01 0.10525238027466E+01 -.12251628552623E+01 + 384 0.23071099415588E+01 0.10992661413725E+01 -.12560692036470E+01 + 385 0.23640955571153E+01 0.11465753286654E+01 -.12664287561043E+01 + 386 0.24224887173761E+01 0.11940625666400E+01 -.12542689184030E+01 + 387 0.24823241886953E+01 0.12414527929562E+01 -.12255342506639E+01 + 388 0.25436375961561E+01 0.12885798426468E+01 -.11940334051051E+01 + 389 0.26064654447811E+01 0.00000000000000E+00 -.11635450185432E+01 + 390 0.26708451412672E+01 0.00000000000000E+00 -.11340140305769E+01 + 391 0.27368150162565E+01 0.00000000000000E+00 -.11053901638740E+01 + 392 0.28044143471580E+01 0.00000000000000E+00 -.10776274571536E+01 + 393 0.28736833815328E+01 0.00000000000000E+00 -.10506838382533E+01 + 394 0.29446633610567E+01 0.00000000000000E+00 -.10245207355184E+01 + 395 0.30173965460748E+01 0.00000000000000E+00 -.99910272535428E+00 + 396 0.30919262407629E+01 0.00000000000000E+00 -.97439721357789E+00 + 397 0.31682968189097E+01 0.00000000000000E+00 -.95037414805907E+00 + 398 0.32465537503368E+01 0.00000000000000E+00 -.92700576018736E+00 + 399 0.33267436279701E+01 0.00000000000000E+00 -.90426633271966E+00 + 400 0.34089141955809E+01 0.00000000000000E+00 -.88213199167598E+00 + 401 0.34931143762118E+01 0.00000000000000E+00 -.86058052007491E+00 + 402 0.35793943013042E+01 0.00000000000000E+00 -.83959119144109E+00 + 403 0.36678053405464E+01 0.00000000000000E+00 -.81914462116464E+00 + 404 0.37584001324579E+01 0.00000000000000E+00 -.79922263393935E+00 + 405 0.38512326157296E+01 0.00000000000000E+00 -.77980814565014E+00 + 406 0.39463580613382E+01 0.00000000000000E+00 -.76088505821807E+00 + 407 0.40438331054532E+01 0.00000000000000E+00 -.74243816604077E+00 + 408 0.41437157831579E+01 0.00000000000000E+00 -.72445307278860E+00 + 409 0.42460655630019E+01 0.00000000000000E+00 -.70691611743073E+00 + 410 0.43509433824081E+01 0.00000000000000E+00 -.68981430847070E+00 + 411 0.44584116839535E+01 0.00000000000000E+00 -.67313526547189E+00 + 412 0.45685344525472E+01 0.00000000000000E+00 -.65686716704190E+00 + 413 0.46813772535251E+01 0.00000000000000E+00 -.64099870453213E+00 + 414 0.47970072716872E+01 0.00000000000000E+00 -.62551904078691E+00 + 415 0.49154933512978E+01 0.00000000000000E+00 -.61041777334935E+00 + 416 0.50369060370749E+01 0.00000000000000E+00 -.59568490159841E+00 + 417 0.51613176161907E+01 0.00000000000000E+00 -.58131079735330E+00 + 418 0.52888021613106E+01 0.00000000000000E+00 -.56728617853766E+00 + 419 0.54194355746949E+01 0.00000000000000E+00 -.55360208554674E+00 + 420 0.55532956333899E+01 0.00000000000000E+00 -.54024986000673E+00 + 421 0.56904620355346E+01 0.00000000000000E+00 -.52722112565549E+00 + 422 0.58310164478123E+01 0.00000000000000E+00 -.51450777110975E+00 + 423 0.59750425540733E+01 0.00000000000000E+00 -.50210193431414E+00 + 424 0.61226261051589E+01 0.00000000000000E+00 -.48999598849380E+00 + 425 0.62738549699563E+01 0.00000000000000E+00 -.47818252945410E+00 + 426 0.64288191877143E+01 0.00000000000000E+00 -.46665436408931E+00 + 427 0.65876110216508E+01 0.00000000000000E+00 -.45540449997729E+00 + 428 0.67503250138856E+01 0.00000000000000E+00 -.44442613594946E+00 + 429 0.69170580417285E+01 0.00000000000000E+00 -.43371265353599E+00 + 430 0.70879093753592E+01 0.00000000000000E+00 -.42325760919455E+00 + 431 0.72629807369306E+01 0.00000000000000E+00 -.41305472723888E+00 + 432 0.74423763611328E+01 0.00000000000000E+00 -.40309789338976E+00 + 433 0.76262030572528E+01 0.00000000000000E+00 -.39338114887774E+00 + 434 0.78145702727669E+01 0.00000000000000E+00 -.38389868503251E+00 + 435 0.80075901585043E+01 0.00000000000000E+00 -.37464483829985E+00 + 436 0.82053776354193E+01 0.00000000000000E+00 -.36561408563253E+00 + 437 0.84080504630142E+01 0.00000000000000E+00 -.35680104020714E+00 + 438 0.86157293094506E+01 0.00000000000000E+00 -.34820044742429E+00 + 439 0.88285378233941E+01 0.00000000000000E+00 -.33980718115437E+00 + 440 0.90466027076319E+01 0.00000000000000E+00 -.33161624019643E+00 + 441 0.92700537945104E+01 0.00000000000000E+00 -.32362274492182E+00 + 442 0.94990241232348E+01 0.00000000000000E+00 -.31582193407860E+00 + 443 0.97336500190787E+01 0.00000000000000E+00 -.30820916173643E+00 + 444 0.99740711745499E+01 0.00000000000000E+00 -.30077989435496E+00 + 445 0.10220430732561E+02 0.00000000000000E+00 -.29352970796151E+00 + 446 0.10472875371656E+02 0.00000000000000E+00 -.28645428542664E+00 + 447 0.10731555393335E+02 0.00000000000000E+00 -.27954941382787E+00 + 448 0.10996624811551E+02 0.00000000000000E+00 -.27281098189396E+00 + 449 0.11268241444396E+02 0.00000000000000E+00 -.26623497752333E+00 + 450 0.11546567008073E+02 0.00000000000000E+00 -.25981748537154E+00 + 451 0.11831767213172E+02 0.00000000000000E+00 -.25355468450367E+00 + 452 0.12124011863338E+02 0.00000000000000E+00 -.24744284610793E+00 + 453 0.12423474956362E+02 0.00000000000000E+00 -.24147833126792E+00 + 454 0.12730334787784E+02 0.00000000000000E+00 -.23565758879087E+00 + 455 0.13044774057042E+02 0.00000000000000E+00 -.22997715308988E+00 + 456 0.13366979976251E+02 0.00000000000000E+00 -.22443364211830E+00 + 457 0.13697144381665E+02 0.00000000000000E+00 -.21902375534681E+00 + 458 0.14035463847892E+02 0.00000000000000E+00 -.21374427183254E+00 + 459 0.14382139804935E+02 0.00000000000000E+00 -.20859204824099E+00 + 460 0.14737378658117E+02 0.00000000000000E+00 -.20356401702059E+00 + 461 0.15101391910972E+02 0.00000000000000E+00 -.19865718456191E+00 + 462 0.15474396291173E+02 0.00000000000000E+00 -.19386862941535E+00 + 463 0.15856613879565E+02 0.00000000000000E+00 -.18919550055172E+00 + 464 0.16248272242390E+02 0.00000000000000E+00 -.18463501566481E+00 + 465 0.16649604566777E+02 0.00000000000000E+00 -.18018445951479E+00 + 466 0.17060849799577E+02 0.00000000000000E+00 -.17584118231169E+00 + 467 0.17482252789626E+02 0.00000000000000E+00 -.17160259813769E+00 + 468 0.17914064433530E+02 0.00000000000000E+00 -.16746618340753E+00 + 469 0.18356541825038E+02 0.00000000000000E+00 -.16342947536599E+00 + 470 0.18809948408117E+02 0.00000000000000E+00 -.15949007062164E+00 + 471 0.19274554133797E+02 0.00000000000000E+00 -.15564562371586E+00 + 472 0.19750635620902E+02 0.00000000000000E+00 -.15189384572641E+00 + 473 0.20238476320738E+02 0.00000000000000E+00 -.14823250290467E+00 + 474 0.20738366685861E+02 0.00000000000000E+00 -.14465941534563E+00 + 475 0.21250604343001E+02 0.00000000000000E+00 -.14117245569009E+00 + 476 0.21775494270273E+02 0.00000000000000E+00 -.13776954785800E+00 + 477 0.22313348978749E+02 0.00000000000000E+00 -.13444866581243E+00 + 478 0.22864488698524E+02 0.00000000000000E+00 -.13120783235330E+00 + 479 0.23429241569378E+02 0.00000000000000E+00 -.12804511794018E+00 + 480 0.24007943836141E+02 0.00000000000000E+00 -.12495863954346E+00 + 481 0.24600940048894E+02 0.00000000000000E+00 -.12194655952323E+00 + 482 0.25208583268102E+02 0.00000000000000E+00 -.11900708453521E+00 + 483 0.25831235274824E+02 0.00000000000000E+00 -.11613846446298E+00 + 484 0.26469266786112E+02 0.00000000000000E+00 -.11333899137599E+00 + 485 0.27123057675729E+02 0.00000000000000E+00 -.11060699851273E+00 + 486 0.27792997200320E+02 0.00000000000000E+00 -.10794085928831E+00 + 487 0.28479484231167E+02 0.00000000000000E+00 -.10533898632605E+00 + 488 0.29182927491677E+02 0.00000000000000E+00 -.10279983051240E+00 + 489 0.29903745800722E+02 0.00000000000000E+00 -.10032188007456E+00 + 490 0.30642368322000E+02 0.00000000000000E+00 -.97903659680448E-01 + 491 0.31399234819553E+02 0.00000000000000E+00 -.95543729560309E-01 + 492 0.32174795919596E+02 0.00000000000000E+00 -.93240684649467E-01 + 493 0.32969513378810E+02 0.00000000000000E+00 -.90993153751798E-01 + 494 0.33783860359267E+02 0.00000000000000E+00 -.88799798723331E-01 + 495 0.34618321710140E+02 0.00000000000000E+00 -.86659313675545E-01 + 496 0.35473394256381E+02 0.00000000000000E+00 -.84570424197858E-01 + 497 0.36349587094513E+02 0.00000000000000E+00 -.82531886598866E-01 + 498 0.37247421895748E+02 0.00000000000000E+00 -.80542487165869E-01 + 499 0.38167433216573E+02 0.00000000000000E+00 -.78601041442246E-01 + 500 0.39110168817022E+02 0.00000000000000E+00 -.76706393522246E-01 + 501 0.40076189986803E+02 0.00000000000000E+00 -.74857415362786E-01 + 502 0.41066071879477E+02 0.00000000000000E+00 -.73053006111823E-01 + 503 0.42080403854900E+02 0.00000000000000E+00 -.71292091452936E-01 + 504 0.43119789830116E+02 0.00000000000000E+00 -.69573622965684E-01 + 505 0.44184848638920E+02 0.00000000000000E+00 -.67896577501399E-01 + 506 0.45276214400301E+02 0.00000000000000E+00 -.66259956574021E-01 + 507 0.46394536895988E+02 0.00000000000000E+00 -.64662785765610E-01 + 508 0.47540481957319E+02 0.00000000000000E+00 -.63104114146199E-01 + 509 0.48714731861665E+02 0.00000000000000E+00 -.61583013707621E-01 + 510 0.49917985738648E+02 0.00000000000000E+00 -.60098578810989E-01 + 511 0.51150959986393E+02 0.00000000000000E+00 -.58649925647496E-01 + 512 0.52414388698057E+02 0.00000000000000E+00 -.57236191712205E-01 + 513 0.53709024098899E+02 0.00000000000000E+00 -.55856535290529E-01 + 514 0.55035636994142E+02 0.00000000000000E+00 -.54510134957089E-01 + 515 0.56395017227897E+02 0.00000000000000E+00 -.53196189086648E-01 + 516 0.57787974153426E+02 0.00000000000000E+00 -.51913915376840E-01 + 517 0.59215337115016E+02 0.00000000000000E+00 -.50662550382395E-01 + 518 0.60677955941756E+02 0.00000000000000E+00 -.49441349060599E-01 + 519 0.62176701453518E+02 0.00000000000000E+00 -.48249584327704E-01 + 520 0.63712465979420E+02 0.00000000000000E+00 -.47086546626041E-01 + 521 0.65286163889111E+02 0.00000000000000E+00 -.45951543501553E-01 + 522 0.66898732137172E+02 0.00000000000000E+00 -.44843899191522E-01 + 523 0.68551130820961E+02 0.00000000000000E+00 -.43762954222233E-01 + 524 0.70244343752238E+02 0.00000000000000E+00 -.42708065016330E-01 + 525 0.71979379042919E+02 0.00000000000000E+00 -.41678603509641E-01 + 526 0.73757269705279E+02 0.00000000000000E+00 -.40673956777244E-01 + 527 0.75579074266999E+02 0.00000000000000E+00 -.39693526668531E-01 + 528 0.77445877401394E+02 0.00000000000000E+00 -.38736729451089E-01 + 529 0.79358790573208E+02 0.00000000000000E+00 -.37802995463149E-01 +529 0.10247000000000E+01 + 1 0.20161290322581E-03 0.22265225148258E-15 -.41785839336723E+01 + 2 0.20659274193548E-03 0.24547882506077E-15 -.41785839815084E+01 + 3 0.21169558266129E-03 0.27064560610531E-15 -.41785840281719E+01 + 4 0.21692446355302E-03 0.29839251546841E-15 -.41785840736901E+01 + 5 0.22228249780278E-03 0.32898414137421E-15 -.41785841180896E+01 + 6 0.22777287549851E-03 0.36271206533804E-15 -.41785841613963E+01 + 7 0.23339886552333E-03 0.39989782382586E-15 -.41785842036353E+01 + 8 0.23916381750175E-03 0.44089591920430E-15 -.41785842448313E+01 + 9 0.24507116379405E-03 0.48609719768119E-15 -.41785842850081E+01 + 10 0.25112442153976E-03 0.53593257557585E-15 -.41785843241889E+01 + 11 0.25732719475179E-03 0.59087714735996E-15 -.41785843623965E+01 + 12 0.26368317646216E-03 0.65145471486628E-15 -.41785843996528E+01 + 13 0.27019615092077E-03 0.71824278083612E-15 -.41785844359792E+01 + 14 0.27686999584852E-03 0.79187805441273E-15 -.41785844713966E+01 + 15 0.28370868474598E-03 0.87306252106574E-15 -.41785845059252E+01 + 16 0.29071628925920E-03 0.96257013481274E-15 -.41785845395847E+01 + 17 0.29789698160390E-03 0.10612541965370E-14 -.41785845723942E+01 + 18 0.30525503704952E-03 0.11700554887405E-14 -.41785846043722E+01 + 19 0.31279483646464E-03 0.12900112442840E-14 -.41785846355368E+01 + 20 0.32052086892532E-03 0.14222650346140E-14 -.41785846659054E+01 + 21 0.32843773438778E-03 0.15680776717456E-14 -.41785846954950E+01 + 22 0.33655014642715E-03 0.17288392279317E-14 -.41785847243220E+01 + 23 0.34486293504390E-03 0.19060822876056E-14 -.41785847524024E+01 + 24 0.35338104953949E-03 0.21014965579316E-14 -.41785847797514E+01 + 25 0.36210956146311E-03 0.23169449772493E-14 -.41785848063841E+01 + 26 0.37105366763125E-03 0.25544814749798E-14 -.41785848323149E+01 + 27 0.38021869322175E-03 0.28163705523004E-14 -.41785848575576E+01 + 28 0.38961009494432E-03 0.31051088702594E-14 -.41785848821257E+01 + 29 0.39923346428945E-03 0.34234490511338E-14 -.41785849060321E+01 + 30 0.40909453085740E-03 0.37744259199363E-14 -.41785849292894E+01 + 31 0.41919916576957E-03 0.41613854362378E-14 -.41785849519095E+01 + 32 0.42955338516408E-03 0.45880165921215E-14 -.41785849739040E+01 + 33 0.44016335377764E-03 0.50583865803599E-14 -.41785849952839E+01 + 34 0.45103538861594E-03 0.55769795680823E-14 -.41785850160598E+01 + 35 0.46217596271476E-03 0.61487394455734E-14 -.41785850362419E+01 + 36 0.47359170899381E-03 0.67791169577382E-14 -.41785850558397E+01 + 37 0.48528942420596E-03 0.74741216675507E-14 -.41785850748626E+01 + 38 0.49727607298385E-03 0.82403792468683E-14 -.41785850933192E+01 + 39 0.50955879198655E-03 0.90851946407796E-14 -.41785851112178E+01 + 40 0.52214489414861E-03 0.10016621707650E-13 -.41785851285661E+01 + 41 0.53504187303408E-03 0.11043539998760E-13 -.41785851453716E+01 + 42 0.54825740729803E-03 0.12175739409503E-13 -.41785851616410E+01 + 43 0.56179936525829E-03 0.13424013509135E-13 -.41785851773808E+01 + 44 0.57567580958017E-03 0.14800262438825E-13 -.41785851925967E+01 + 45 0.58989500207680E-03 0.16317606358954E-13 -.41785852072943E+01 + 46 0.60446540862809E-03 0.17990510527187E-13 -.41785852214784E+01 + 47 0.61939570422121E-03 0.19834923199724E-13 -.41785852351535E+01 + 48 0.63469477811547E-03 0.21868427670375E-13 -.41785852483234E+01 + 49 0.65037173913492E-03 0.24110409896889E-13 -.41785852609916E+01 + 50 0.66643592109156E-03 0.26582243312570E-13 -.41785852731609E+01 + 51 0.68289688834252E-03 0.29307492585025E-13 -.41785852848337E+01 + 52 0.69976444148458E-03 0.32312138264546E-13 -.41785852960118E+01 + 53 0.71704862318925E-03 0.35624824463742E-13 -.41785853066965E+01 + 54 0.73475972418202E-03 0.39277131929634E-13 -.41785853168884E+01 + 55 0.75290828936932E-03 0.43303879111459E-13 -.41785853265877E+01 + 56 0.77150512411674E-03 0.47743454094367E-13 -.41785853357938E+01 + 57 0.79056130068242E-03 0.52638180563401E-13 -.41785853445057E+01 + 58 0.81008816480928E-03 0.58034721286596E-13 -.41785853527218E+01 + 59 0.83009734248007E-03 0.63984522963712E-13 -.41785853604395E+01 + 60 0.85060074683933E-03 0.70544306681458E-13 -.41785853676561E+01 + 61 0.87161058528626E-03 0.77776608650825E-13 -.41785853743676E+01 + 62 0.89313936674283E-03 0.85750376381550E-13 -.41785853805699E+01 + 63 0.91519990910138E-03 0.94541625977162E-13 -.41785853862577E+01 + 64 0.93780534685618E-03 0.10423416681679E-12 -.41785853914253E+01 + 65 0.96096913892353E-03 0.11492040053229E-12 -.41785853960660E+01 + 66 0.98470507665494E-03 0.12670220189761E-12 -.41785854001723E+01 + 67 0.10090272920483E-02 0.13969189002795E-12 -.41785854037361E+01 + 68 0.10339502661619E-02 0.15401329914771E-12 -.41785854067483E+01 + 69 0.10594888377361E-02 0.16980295913476E-12 -.41785854091987E+01 + 70 0.10856582120282E-02 0.18721139709578E-12 -.41785854110766E+01 + 71 0.11124739698653E-02 0.20640457238063E-12 -.41785854123700E+01 + 72 0.11399520769210E-02 0.22756545871638E-12 -.41785854130661E+01 + 73 0.11681088932209E-02 0.25089578854351E-12 -.41785854131509E+01 + 74 0.11969611828835E-02 0.27661797618386E-12 -.41785854126095E+01 + 75 0.12265261241007E-02 0.30497723817398E-12 -.41785854114257E+01 + 76 0.12568213193660E-02 0.33624393097778E-12 -.41785854095822E+01 + 77 0.12878648059543E-02 0.37071612836433E-12 -.41785854070605E+01 + 78 0.13196750666614E-02 0.40872246302152E-12 -.41785854038409E+01 + 79 0.13522710408079E-02 0.45062525949546E-12 -.41785853999021E+01 + 80 0.13856721355159E-02 0.49682398832249E-12 -.41785853952218E+01 + 81 0.14198982372631E-02 0.54775907428296E-12 -.41785853897758E+01 + 82 0.14549697237235E-02 0.60391609508163E-12 -.41785853835388E+01 + 83 0.14909074758995E-02 0.66583041048162E-12 -.41785853764837E+01 + 84 0.15277328905542E-02 0.73409226602256E-12 -.41785853685818E+01 + 85 0.15654678929509E-02 0.80935241997757E-12 -.41785853598026E+01 + 86 0.16041349499068E-02 0.89232834719229E-12 -.41785853501139E+01 + 87 0.16437570831695E-02 0.98381107894827E-12 -.41785853394815E+01 + 88 0.16843578831238E-02 0.10846727440565E-11 -.41785853278693E+01 + 89 0.17259615228369E-02 0.11958748830722E-11 -.41785853152391E+01 + 90 0.17685927724510E-02 0.13184776148910E-11 -.41785853015505E+01 + 91 0.18122770139305E-02 0.14536497431151E-11 -.41785852867609E+01 + 92 0.18570402561746E-02 0.16026798985328E-11 -.41785852708252E+01 + 93 0.19029091505021E-02 0.17669888239378E-11 -.41785852536960E+01 + 94 0.19499110065195E-02 0.19481429183989E-11 -.41785852353230E+01 + 95 0.19980738083806E-02 0.21478691701011E-11 -.41785852156535E+01 + 96 0.20474262314476E-02 0.23680716201160E-11 -.41785851946316E+01 + 97 0.20979976593643E-02 0.26108495140524E-11 -.41785851721987E+01 + 98 0.21498182015506E-02 0.28785173146295E-11 -.41785851482927E+01 + 99 0.22029187111289E-02 0.31736267659570E-11 -.41785851228486E+01 + 100 0.22573308032938E-02 0.34989912198619E-11 -.41785850957976E+01 + 101 0.23130868741352E-02 0.38577124561706E-11 -.41785850670674E+01 + 102 0.23702201199263E-02 0.42532102526255E-11 -.41785850365819E+01 + 103 0.24287645568885E-02 0.46892549863315E-11 -.41785850042610E+01 + 104 0.24887550414436E-02 0.51700035775243E-11 -.41785849700204E+01 + 105 0.25502272909673E-02 0.57000391183178E-11 -.41785849337713E+01 + 106 0.26132179050542E-02 0.62844145642141E-11 -.41785848954204E+01 + 107 0.26777643873090E-02 0.69287009048920E-11 -.41785848548696E+01 + 108 0.27439051676755E-02 0.76390402734899E-11 -.41785848120156E+01 + 109 0.28116796253171E-02 0.84222045006780E-11 -.41785847667499E+01 + 110 0.28811281120625E-02 0.92856596717186E-11 -.41785847189582E+01 + 111 0.29522919764304E-02 0.10237637301942E-10 -.41785846685206E+01 + 112 0.30252135882482E-02 0.11287212809152E-10 -.41785846153109E+01 + 113 0.30999363638780E-02 0.12444392031050E-10 -.41785845591964E+01 + 114 0.31765047920657E-02 0.13720206612439E-10 -.41785845000376E+01 + 115 0.32549644604298E-02 0.15126819171538E-10 -.41785844376881E+01 + 116 0.33353620826024E-02 0.16677639247960E-10 -.41785843719938E+01 + 117 0.34177455260427E-02 0.18387451137679E-10 -.41785843027928E+01 + 118 0.35021638405359E-02 0.20272554833630E-10 -.41785842299151E+01 + 119 0.35886672873971E-02 0.22350921415523E-10 -.41785841531818E+01 + 120 0.36773073693959E-02 0.24642364370188E-10 -.41785840724053E+01 + 121 0.37681368614199E-02 0.27168728475643E-10 -.41785839873882E+01 + 122 0.38612098418970E-02 0.29954098049476E-10 -.41785838979232E+01 + 123 0.39565817249919E-02 0.33025026546764E-10 -.41785838037924E+01 + 124 0.40543092935992E-02 0.36410789696245E-10 -.41785837047671E+01 + 125 0.41544507331511E-02 0.40143664587843E-10 -.41785836006068E+01 + 126 0.42570656662599E-02 0.44259237372042E-10 -.41785834910590E+01 + 127 0.43622151882165E-02 0.48796742504331E-10 -.41785833758586E+01 + 128 0.44699619033655E-02 0.53799436768667E-10 -.41785832547267E+01 + 129 0.45803699623786E-02 0.59315011645403E-10 -.41785831273707E+01 + 130 0.46935051004493E-02 0.65396047954688E-10 -.41785829934832E+01 + 131 0.48094346764304E-02 0.72100517109282E-10 -.41785828527411E+01 + 132 0.49282277129383E-02 0.79492333755073E-10 -.41785827048055E+01 + 133 0.50499549374478E-02 0.87641965067390E-10 -.41785825493198E+01 + 134 0.51746888244028E-02 0.96627102511288E-10 -.41785823859100E+01 + 135 0.53025036383656E-02 0.10653340246939E-09 -.41785822141830E+01 + 136 0.54334754782332E-02 0.11745530279730E-09 -.41785820337260E+01 + 137 0.55676823225455E-02 0.12949692309049E-09 -.41785818441055E+01 + 138 0.57052040759124E-02 0.14277305724418E-09 -.41785816448661E+01 + 139 0.58461226165875E-02 0.15741026776792E-09 -.41785814355297E+01 + 140 0.59905218452172E-02 0.17354809228607E-09 -.41785812155939E+01 + 141 0.61384877347940E-02 0.19134037372506E-09 -.41785809845313E+01 + 142 0.62901083818434E-02 0.21095672686692E-09 -.41785807417878E+01 + 143 0.64454740588750E-02 0.23258415524874E-09 -.41785804867817E+01 + 144 0.66046772681292E-02 0.25642883382046E-09 -.41785802189018E+01 + 145 0.67678127966520E-02 0.28271807435353E-09 -.41785799375066E+01 + 146 0.69349777727293E-02 0.31170249233463E-09 -.41785796419220E+01 + 147 0.71062717237157E-02 0.34365839599938E-09 -.41785793314402E+01 + 148 0.72817966352915E-02 0.37889042027797E-09 -.41785790053178E+01 + 149 0.74616570121832E-02 0.41773443075900E-09 -.41785786627742E+01 + 150 0.76459599403841E-02 0.46056072535152E-09 -.41785783029895E+01 + 151 0.78348151509116E-02 0.50777756416239E-09 -.41785779251026E+01 + 152 0.80283350851391E-02 0.55983506123445E-09 -.41785775282093E+01 + 153 0.82266349617420E-02 0.61722947523954E-09 -.41785771113598E+01 + 154 0.84298328452971E-02 0.68050794002299E-09 -.41785766735567E+01 + 155 0.86380497165759E-02 0.75027368008782E-09 -.41785762137525E+01 + 156 0.88514095445753E-02 0.82719176072883E-09 -.41785757308471E+01 + 157 0.90700393603263E-02 0.91199542762181E-09 -.41785752236850E+01 + 158 0.92940693325264E-02 0.10054930962908E-08 -.41785746910527E+01 + 159 0.95236328450398E-02 0.11085760580695E-08 -.41785741316760E+01 + 160 0.97588665763123E-02 0.12222269760003E-08 -.41785735442161E+01 + 161 0.99999105807472E-02 0.13475292516437E-08 -.41785729272675E+01 + 162 0.10246908372092E-01 0.14856773520677E-08 -.41785722793536E+01 + 163 0.10500007008882E-01 0.16379881954387E-08 -.41785715989237E+01 + 164 0.10759357182002E-01 0.18059137037210E-08 -.41785708843492E+01 + 165 0.11025113304397E-01 0.19910546421135E-08 -.41785701339195E+01 + 166 0.11297433603016E-01 0.21951758771137E-08 -.41785693458377E+01 + 167 0.11576480213010E-01 0.24202231986145E-08 -.41785685182169E+01 + 168 0.11862419274272E-01 0.26683418663420E-08 -.41785676490750E+01 + 169 0.12155421030346E-01 0.29418970573719E-08 -.41785667363299E+01 + 170 0.12455659929796E-01 0.32434964095735E-08 -.41785657777948E+01 + 171 0.12763314730062E-01 0.35760148757990E-08 -.41785647711729E+01 + 172 0.13078568603894E-01 0.39426221256491E-08 -.41785637140512E+01 + 173 0.13401609248410E-01 0.43468127559162E-08 -.41785626038955E+01 + 174 0.13732628996846E-01 0.47924395975615E-08 -.41785614380433E+01 + 175 0.14071824933068E-01 0.52837504365786E-08 -.41785602136981E+01 + 176 0.14419399008915E-01 0.58254284986165E-08 -.41785589279222E+01 + 177 0.14775558164435E-01 0.64226370830821E-08 -.41785575776293E+01 + 178 0.15140514451097E-01 0.70810687719671E-08 -.41785561595773E+01 + 179 0.15514485158039E-01 0.78069996822113E-08 -.41785546703604E+01 + 180 0.15897692941442E-01 0.86073492784498E-08 -.41785531064002E+01 + 181 0.16290365957096E-01 0.94897463159425E-08 -.41785514639374E+01 + 182 0.16692737996236E-01 0.10462601541861E-07 -.41785497390224E+01 + 183 0.17105048624743E-01 0.11535187847460E-07 -.41785479275055E+01 + 184 0.17527543325774E-01 0.12717728634612E-07 -.41785460250264E+01 + 185 0.17960473645921E-01 0.14021495238374E-07 -.41785440270039E+01 + 186 0.18404097344975E-01 0.15458914333500E-07 -.41785419286243E+01 + 187 0.18858678549396E-01 0.17043686347835E-07 -.41785397248290E+01 + 188 0.19324487909566E-01 0.18790916010308E-07 -.41785374103027E+01 + 189 0.19801802760932E-01 0.20717256276742E-07 -.41785349794593E+01 + 190 0.20290907289128E-01 0.22841067004034E-07 -.41785324264285E+01 + 191 0.20792092699169E-01 0.25182589883596E-07 -.41785297450408E+01 + 192 0.21305657388838E-01 0.27764141299691E-07 -.41785269288121E+01 + 193 0.21831907126343E-01 0.30610324948837E-07 -.41785239709270E+01 + 194 0.22371155232363E-01 0.33748266244479E-07 -.41785208642220E+01 + 195 0.22923722766603E-01 0.37207870738376E-07 -.41785176011670E+01 + 196 0.23489938718938E-01 0.41022109018577E-07 -.41785141738465E+01 + 197 0.24070140205296E-01 0.45227330795738E-07 -.41785105739387E+01 + 198 0.24664672668366E-01 0.49863611167052E-07 -.41785067926951E+01 + 199 0.25273890083275E-01 0.54975132353097E-07 -.41785028209171E+01 + 200 0.25898155168332E-01 0.60610604540130E-07 -.41784986489330E+01 + 201 0.26537839600990E-01 0.66823729832132E-07 -.41784942665725E+01 + 202 0.27193324239134E-01 0.73673713726673E-07 -.41784896631404E+01 + 203 0.27864999347841E-01 0.81225828980299E-07 -.41784848273888E+01 + 204 0.28553264831733E-01 0.89552037226974E-07 -.41784797474875E+01 + 205 0.29258530473076E-01 0.98731674261812E-07 -.41784744109928E+01 + 206 0.29981216175761E-01 0.10885220550705E-06 -.41784688048147E+01 + 207 0.30721752215303E-01 0.12001005884382E-06 -.41784629151821E+01 + 208 0.31480579495021E-01 0.13231154272783E-06 -.41784567276061E+01 + 209 0.32258149808548E-01 0.14587385831677E-06 -.41784502268408E+01 + 210 0.33054926108819E-01 0.16082621522961E-06 -.41784433968427E+01 + 211 0.33871382783707E-01 0.17731106154120E-06 -.41784362207265E+01 + 212 0.34708005938464E-01 0.19548543969972E-06 -.41784286807198E+01 + 213 0.35565293685144E-01 0.21552248124846E-06 -.41784207581135E+01 + 214 0.36443756439167E-01 0.23761305455004E-06 -.41784124332107E+01 + 215 0.37343917223215E-01 0.26196758116140E-06 -.41784036852716E+01 + 216 0.38266311978628E-01 0.28881803810640E-06 -.41783944924557E+01 + 217 0.39211489884500E-01 0.31842016505413E-06 -.41783848317601E+01 + 218 0.40180013684647E-01 0.35105589735175E-06 -.41783746789541E+01 + 219 0.41172460022658E-01 0.38703604799944E-06 -.41783640085100E+01 + 220 0.42189419785218E-01 0.42670326401106E-06 -.41783527935296E+01 + 221 0.43231498453913E-01 0.47043528520051E-06 -.41783410056659E+01 + 222 0.44299316465724E-01 0.51864853629428E-06 -.41783286150403E+01 + 223 0.45393509582428E-01 0.57180208642200E-06 -.41783155901538E+01 + 224 0.46514729269114E-01 0.63040201350883E-06 -.41783018977938E+01 + 225 0.47663643082061E-01 0.69500621491844E-06 -.41782875029338E+01 + 226 0.48840935066188E-01 0.76622970990885E-06 -.41782723686271E+01 + 227 0.50047306162322E-01 0.84475048410503E-06 -.41782564558936E+01 + 228 0.51283474624532E-01 0.93131593130461E-06 -.41782397235991E+01 + 229 0.52550176447758E-01 0.10267499535649E-05 -.41782221283268E+01 + 230 0.53848165806017E-01 0.11319607867218E-05 -.41782036242401E+01 + 231 0.55178215501426E-01 0.12479496253219E-05 -.41781841629359E+01 + 232 0.56541117424311E-01 0.13758201284743E-05 -.41781636932887E+01 + 233 0.57937683024692E-01 0.15167888964102E-05 -.41781421612832E+01 + 234 0.59368743795402E-01 0.16721970166650E-05 -.41781195098362E+01 + 235 0.60835151767148E-01 0.18435227888406E-05 -.41780956786055E+01 + 236 0.62337780015796E-01 0.20323957479668E-05 -.41780706037857E+01 + 237 0.63877523182187E-01 0.22406121186581E-05 -.41780442178897E+01 + 238 0.65455298004787E-01 0.24701518456655E-05 -.41780164495145E+01 + 239 0.67072043865505E-01 0.27231973611827E-05 -.41779872230900E+01 + 240 0.68728723348983E-01 0.30021542655039E-05 -.41779564586104E+01 + 241 0.70426322815703E-01 0.33096741155115E-05 -.41779240713447E+01 + 242 0.72165852989251E-01 0.36486795351411E-05 -.41778899715273E+01 + 243 0.73948349558085E-01 0.40223918836225E-05 -.41778540640247E+01 + 244 0.75774873792170E-01 0.44343617411140E-05 -.41778162479779E+01 + 245 0.77646513174836E-01 0.48885024975538E-05 -.41777764164172E+01 + 246 0.79564382050255E-01 0.53891273593794E-05 -.41777344558486E+01 + 247 0.81529622286896E-01 0.59409901204789E-05 -.41776902458076E+01 + 248 0.83543403957382E-01 0.65493300786070E-05 -.41776436583795E+01 + 249 0.85606926035130E-01 0.72199215168533E-05 -.41775945576816E+01 + 250 0.87721417108197E-01 0.79591282119134E-05 -.41775427993056E+01 + 251 0.89888136110770E-01 0.87739634772705E-05 -.41774882297151E+01 + 252 0.92108373072706E-01 0.96721563003474E-05 -.41774306855967E+01 + 253 0.94383449887602E-01 0.10662224188691E-04 -.41773699931574E+01 + 254 0.96714721099826E-01 0.11753553401784E-04 -.41773059673667E+01 + 255 0.99103574710991E-01 0.12956487312675E-04 -.41772384111368E+01 + 256 0.10155143300635E+00 0.14282423717903E-04 -.41771671144361E+01 + 257 0.10405975340161E+00 0.15743921995700E-04 -.41770918533293E+01 + 258 0.10663002931063E+00 0.17354821102056E-04 -.41770123889387E+01 + 259 0.10926379103460E+00 0.19130369492480E-04 -.41769284663192E+01 + 260 0.11196260667316E+00 0.21087368165212E-04 -.41768398132387E+01 + 261 0.11472808305798E+00 0.23244328139995E-04 -.41767461388565E+01 + 262 0.11756186670952E+00 0.25621643816377E-04 -.41766471322895E+01 + 263 0.12046564481724E+00 0.28241783797910E-04 -.41765424610569E+01 + 264 0.12344114624423E+00 0.31129500924763E-04 -.41764317693917E+01 + 265 0.12649014255646E+00 0.34312063428339E-04 -.41763146764076E+01 + 266 0.12961444907760E+00 0.37819509309009E-04 -.41761907741077E+01 + 267 0.13281592596982E+00 0.41684926243413E-04 -.41760596252212E+01 + 268 0.13609647934127E+00 0.45944759552596E-04 -.41759207608511E+01 + 269 0.13945806238100E+00 0.50639151008370E-04 -.41757736779178E+01 + 270 0.14290267652182E+00 0.55812311524449E-04 -.41756178363778E+01 + 271 0.14643237263190E+00 0.61512931073370E-04 -.41754526561988E+01 + 272 0.15004925223591E+00 0.67794629491988E-04 -.41752775140680E+01 + 273 0.15375546876614E+00 0.74716452189907E-04 -.41750917398085E+01 + 274 0.15755322884466E+00 0.82343415159163E-04 -.41748946124795E+01 + 275 0.16144479359713E+00 0.90747104102440E-04 -.41746853561291E+01 + 276 0.16543247999897E+00 0.10000633295415E-03 -.41744631351692E+01 + 277 0.16951866225495E+00 0.11020786756686E-03 -.41742270493380E+01 + 278 0.17370577321265E+00 0.12144722087828E-03 -.41739761282117E+01 + 279 0.17799630581100E+00 0.13382952646473E-03 -.41737093252269E+01 + 280 0.18239281456453E+00 0.14747049802965E-03 -.41734255111656E+01 + 281 0.18689791708427E+00 0.16249748307408E-03 -.41731234670578E+01 + 282 0.19151429563626E+00 0.17905061975467E-03 -.41728018764471E+01 + 283 0.19624469873847E+00 0.19728410675726E-03 -.41724593169628E+01 + 284 0.20109194279731E+00 0.21736759690645E-03 -.41720942511364E+01 + 285 0.20605891378441E+00 0.23948772619684E-03 -.41717050163943E+01 + 286 0.21114856895488E+00 0.26384979097606E-03 -.41712898141555E+01 + 287 0.21636393860807E+00 0.29067958713788E-03 -.41708466979523E+01 + 288 0.22170812789169E+00 0.32022542640012E-03 -.41703735604909E+01 + 289 0.22718431865061E+00 0.35276034605318E-03 -.41698681195577E+01 + 290 0.23279577132128E+00 0.38858452997432E-03 -.41693279026716E+01 + 291 0.23854582687292E+00 0.42802796021618E-03 -.41687502303740E+01 + 292 0.24443790879668E+00 0.47145332010033E-03 -.41681321980403E+01 + 293 0.25047552514395E+00 0.51925917148081E-03 -.41674706560876E+01 + 294 0.25666227061501E+00 0.57188343069428E-03 -.41667621884438E+01 + 295 0.26300182869920E+00 0.62980716968393E-03 -.41660030891343E+01 + 296 0.26949797386807E+00 0.69355877087708E-03 -.41651893368308E+01 + 297 0.27615457382261E+00 0.76371846661175E-03 -.41643165671976E+01 + 298 0.28297559179603E+00 0.84092329624510E-03 -.41633800428606E+01 + 299 0.28996508891339E+00 0.92587251653465E-03 -.41623746208091E+01 + 300 0.29712722660955E+00 0.10193335034565E-02 -.41612947170356E+01 + 301 0.30446626910681E+00 0.11221481863069E-02 -.41601342682005E+01 + 302 0.31198658595375E+00 0.12352400577154E-02 -.41588866901039E+01 + 303 0.31969265462681E+00 0.13596218060619E-02 -.41575448327310E+01 + 304 0.32758906319609E+00 0.14964036197235E-02 -.41561009316296E+01 + 305 0.33568051305703E+00 0.16468022155531E-02 -.41545465553698E+01 + 306 0.34397182172954E+00 0.18121506469832E-02 -.41528725488246E+01 + 307 0.35246792572626E+00 0.19939089501158E-02 -.41510689720067E+01 + 308 0.36117388349170E+00 0.21936756890692E-02 -.41491250341918E+01 + 309 0.37009487841394E+00 0.24132004646403E-02 -.41470290230543E+01 + 310 0.37923622191077E+00 0.26543974529545E-02 -.41447682285473E+01 + 311 0.38860335659196E+00 0.29193600431408E-02 -.41423288612615E+01 + 312 0.39820185949978E+00 0.32103766450999E-02 -.41396959650092E+01 + 313 0.40803744542943E+00 0.35299477400337E-02 -.41368533233980E+01 + 314 0.41811597033154E+00 0.38808042474685E-02 -.41337833601823E+01 + 315 0.42844343479872E+00 0.42659272828990E-02 -.41304670332141E+01 + 316 0.43902598763825E+00 0.46885693797699E-02 -.41268837218602E+01 + 317 0.44986992953292E+00 0.51522772481442E-02 -.41230111078067E+01 + 318 0.46098171679238E+00 0.56609161399046E-02 -.41188250492447E+01 + 319 0.47236796519715E+00 0.62186958865148E-02 -.41142994485177E+01 + 320 0.48403545393752E+00 0.68301986700373E-02 -.41094061134173E+01 + 321 0.49599112964978E+00 0.75004085810494E-02 -.41041146124437E+01 + 322 0.50824211055213E+00 0.82347430081168E-02 -.40983921245024E+01 + 323 0.52079569068277E+00 0.90390858923530E-02 -.40922032836886E+01 + 324 0.53365934424263E+00 0.99198228671262E-02 -.40855100200313E+01 + 325 0.54684073004542E+00 0.10883878286977E-01 -.40782713973162E+01 + 326 0.56034769607754E+00 0.11938754131152E-01 -.40704434494035E+01 + 327 0.57418828417066E+00 0.13092570745733E-01 -.40619790167911E+01 + 328 0.58837073478968E+00 0.14354109364157E-01 -.40528275855634E+01 + 329 0.60290349193898E+00 0.15732856319031E-01 -.40429351313050E+01 + 330 0.61779520818987E+00 0.17239048828821E-01 -.40322439710590E+01 + 331 0.63305474983216E+00 0.18883722211634E-01 -.40206926269669E+01 + 332 0.64869120215302E+00 0.20678758345484E-01 -.40082157058548E+01 + 333 0.66471387484620E+00 0.22636935161192E-01 -.39947437997191E+01 + 334 0.68113230755490E+00 0.24771976921530E-01 -.39802034128234E+01 + 335 0.69795627555150E+00 0.27098605010152E-01 -.39645169219414E+01 + 336 0.71519579555763E+00 0.29632588928405E-01 -.39476025771640E+01 + 337 0.73286113170790E+00 0.32390797179996E-01 -.39293745516282E+01 + 338 0.75096280166108E+00 0.35391247716128E-01 -.39097430495061E+01 + 339 0.76951158286211E+00 0.38653157621238E-01 -.38886144825998E+01 + 340 0.78851851895881E+00 0.42196991746778E-01 -.38658917268978E+01 + 341 0.80799492637709E+00 0.46044510053412E-01 -.38414744714404E+01 + 342 0.82795240105860E+00 0.50218813507238E-01 -.38152596727559E+01 + 343 0.84840282536475E+00 0.54744388500777E-01 -.37871421289517E+01 + 344 0.86935837515126E+00 0.59647149942898E-01 -.37570151881828E+01 + 345 0.89083152701750E+00 0.64954483392765E-01 -.37247716066293E+01 + 346 0.91283506573483E+00 0.70695286910820E-01 -.36903045712061E+01 + 347 0.93538209185848E+00 0.76900013674623E-01 -.36535089018978E+01 + 348 0.95848602952738E+00 0.83600716868507E-01 -.36142824477756E+01 + 349 0.98216063445671E+00 0.90831098911985E-01 -.35725276892680E+01 + 350 0.10064200021278E+01 0.98626567749573E-01 -.35281535570250E+01 + 351 0.10312785761803E+01 0.10702430368816E+00 -.34810774745831E+01 + 352 0.10567511570120E+01 0.11606334113748E+00 -.34312276278981E+01 + 353 0.10828529105902E+01 0.12578467057927E+00 -.33785454595299E+01 + 354 0.11095993774818E+01 0.13623136714891E+00 -.33229883787436E+01 + 355 0.11370064821056E+01 0.14744875333873E+00 -.32645326709546E+01 + 356 0.11650905422136E+01 0.15948460449165E+00 -.32031765807486E+01 + 357 0.11938682786063E+01 0.17238940690297E+00 -.31389435321586E+01 + 358 0.12233568250878E+01 0.18621667942463E+00 -.30718854380279E+01 + 359 0.12535737386675E+01 0.20102337039205E+00 -.30020860372235E+01 + 360 0.12845370100126E+01 0.21687034236923E+00 -.29296641843228E+01 + 361 0.13162650741599E+01 0.23382295751190E+00 -.28547770012924E+01 + 362 0.13487768214917E+01 0.25195177613566E+00 -.27776227846804E+01 + 363 0.13820916089825E+01 0.27133338017443E+00 -.26984435448918E+01 + 364 0.14162292717244E+01 0.29205133142815E+00 -.26175270358939E+01 + 365 0.14512101347360E+01 0.31419727160355E+00 -.25352081135527E+01 + 366 0.14870550250639E+01 0.33787216690655E+00 -.24518692376019E+01 + 367 0.15237852841830E+01 0.36318769409304E+00 -.23679399043219E+01 + 368 0.15614227807023E+01 0.39026775717962E+00 -.22838947622346E+01 + 369 0.15999899233857E+01 0.41925011424811E+00 -.22002501191362E+01 + 370 0.16395096744933E+01 0.45028808183549E+00 -.21175584936837E+01 + 371 0.16800055634533E+01 0.48355227036365E+00 -.20364007981625E+01 + 372 0.17215017008706E+01 0.51923228834323E+00 -.19573756640883E+01 + 373 0.17640227928821E+01 0.55753833665311E+00 -.18810853481986E+01 + 374 0.18075941558663E+01 0.59870259888293E+00 -.18081176022992E+01 + 375 0.18522417315162E+01 0.64298032263437E+00 -.17390228899689E+01 + 376 0.18979921022846E+01 0.69065048467423E+00 -.16742864396402E+01 + 377 0.19448725072111E+01 0.74201594703327E+00 -.16142949155427E+01 + 378 0.19929108581392E+01 0.79740305120214E+00 -.15592980738940E+01 + 379 0.20421357563352E+01 0.85716067535886E+00 -.15093667936824E+01 + 380 0.20925765095167E+01 0.92165890747595E+00 -.14643505067152E+01 + 381 0.21442631493017E+01 0.99128767380356E+00 -.14238395936834E+01 + 382 0.21972264490895E+01 0.10664559033484E+01 -.13871439974369E+01 + 383 0.22514979423820E+01 0.11475920703930E+01 -.13533084185552E+01 + 384 0.23071099415588E+01 0.12351471448142E+01 -.13211884093310E+01 + 385 0.23640955571153E+01 0.13296008897819E+01 -.12896219217649E+01 + 386 0.24224887173761E+01 0.14314716814782E+01 -.12577468177131E+01 + 387 0.24823241886953E+01 0.15413278616836E+01 -.12255342506640E+01 + 388 0.25436375961561E+01 0.16597948920393E+01 -.11940334051051E+01 + 389 0.26064654447811E+01 0.00000000000000E+00 -.11635450185432E+01 + 390 0.26708451412672E+01 0.00000000000000E+00 -.11340140305769E+01 + 391 0.27368150162565E+01 0.00000000000000E+00 -.11053901638740E+01 + 392 0.28044143471580E+01 0.00000000000000E+00 -.10776274571536E+01 + 393 0.28736833815328E+01 0.00000000000000E+00 -.10506838382533E+01 + 394 0.29446633610567E+01 0.00000000000000E+00 -.10245207355184E+01 + 395 0.30173965460748E+01 0.00000000000000E+00 -.99910272535428E+00 + 396 0.30919262407629E+01 0.00000000000000E+00 -.97439721357789E+00 + 397 0.31682968189097E+01 0.00000000000000E+00 -.95037414805907E+00 + 398 0.32465537503368E+01 0.00000000000000E+00 -.92700576018736E+00 + 399 0.33267436279701E+01 0.00000000000000E+00 -.90426633271966E+00 + 400 0.34089141955809E+01 0.00000000000000E+00 -.88213199167598E+00 + 401 0.34931143762118E+01 0.00000000000000E+00 -.86058052007491E+00 + 402 0.35793943013042E+01 0.00000000000000E+00 -.83959119144109E+00 + 403 0.36678053405464E+01 0.00000000000000E+00 -.81914462116464E+00 + 404 0.37584001324579E+01 0.00000000000000E+00 -.79922263393935E+00 + 405 0.38512326157296E+01 0.00000000000000E+00 -.77980814565014E+00 + 406 0.39463580613382E+01 0.00000000000000E+00 -.76088505821807E+00 + 407 0.40438331054532E+01 0.00000000000000E+00 -.74243816604077E+00 + 408 0.41437157831579E+01 0.00000000000000E+00 -.72445307278860E+00 + 409 0.42460655630019E+01 0.00000000000000E+00 -.70691611743073E+00 + 410 0.43509433824081E+01 0.00000000000000E+00 -.68981430847070E+00 + 411 0.44584116839535E+01 0.00000000000000E+00 -.67313526547189E+00 + 412 0.45685344525472E+01 0.00000000000000E+00 -.65686716704190E+00 + 413 0.46813772535251E+01 0.00000000000000E+00 -.64099870453213E+00 + 414 0.47970072716872E+01 0.00000000000000E+00 -.62551904078691E+00 + 415 0.49154933512978E+01 0.00000000000000E+00 -.61041777334935E+00 + 416 0.50369060370749E+01 0.00000000000000E+00 -.59568490159841E+00 + 417 0.51613176161907E+01 0.00000000000000E+00 -.58131079735330E+00 + 418 0.52888021613106E+01 0.00000000000000E+00 -.56728617853766E+00 + 419 0.54194355746949E+01 0.00000000000000E+00 -.55360208554674E+00 + 420 0.55532956333899E+01 0.00000000000000E+00 -.54024986000673E+00 + 421 0.56904620355346E+01 0.00000000000000E+00 -.52722112565549E+00 + 422 0.58310164478123E+01 0.00000000000000E+00 -.51450777110975E+00 + 423 0.59750425540733E+01 0.00000000000000E+00 -.50210193431414E+00 + 424 0.61226261051589E+01 0.00000000000000E+00 -.48999598849380E+00 + 425 0.62738549699563E+01 0.00000000000000E+00 -.47818252945410E+00 + 426 0.64288191877143E+01 0.00000000000000E+00 -.46665436408931E+00 + 427 0.65876110216508E+01 0.00000000000000E+00 -.45540449997729E+00 + 428 0.67503250138856E+01 0.00000000000000E+00 -.44442613594946E+00 + 429 0.69170580417285E+01 0.00000000000000E+00 -.43371265353599E+00 + 430 0.70879093753592E+01 0.00000000000000E+00 -.42325760919455E+00 + 431 0.72629807369306E+01 0.00000000000000E+00 -.41305472723888E+00 + 432 0.74423763611328E+01 0.00000000000000E+00 -.40309789338976E+00 + 433 0.76262030572528E+01 0.00000000000000E+00 -.39338114887774E+00 + 434 0.78145702727669E+01 0.00000000000000E+00 -.38389868503251E+00 + 435 0.80075901585043E+01 0.00000000000000E+00 -.37464483829985E+00 + 436 0.82053776354193E+01 0.00000000000000E+00 -.36561408563253E+00 + 437 0.84080504630142E+01 0.00000000000000E+00 -.35680104020714E+00 + 438 0.86157293094506E+01 0.00000000000000E+00 -.34820044742429E+00 + 439 0.88285378233941E+01 0.00000000000000E+00 -.33980718115437E+00 + 440 0.90466027076319E+01 0.00000000000000E+00 -.33161624019643E+00 + 441 0.92700537945104E+01 0.00000000000000E+00 -.32362274492182E+00 + 442 0.94990241232348E+01 0.00000000000000E+00 -.31582193407860E+00 + 443 0.97336500190787E+01 0.00000000000000E+00 -.30820916173643E+00 + 444 0.99740711745499E+01 0.00000000000000E+00 -.30077989435496E+00 + 445 0.10220430732561E+02 0.00000000000000E+00 -.29352970796151E+00 + 446 0.10472875371656E+02 0.00000000000000E+00 -.28645428542664E+00 + 447 0.10731555393335E+02 0.00000000000000E+00 -.27954941382787E+00 + 448 0.10996624811551E+02 0.00000000000000E+00 -.27281098189396E+00 + 449 0.11268241444396E+02 0.00000000000000E+00 -.26623497752333E+00 + 450 0.11546567008073E+02 0.00000000000000E+00 -.25981748537154E+00 + 451 0.11831767213172E+02 0.00000000000000E+00 -.25355468450367E+00 + 452 0.12124011863338E+02 0.00000000000000E+00 -.24744284610793E+00 + 453 0.12423474956362E+02 0.00000000000000E+00 -.24147833126792E+00 + 454 0.12730334787784E+02 0.00000000000000E+00 -.23565758879087E+00 + 455 0.13044774057042E+02 0.00000000000000E+00 -.22997715308988E+00 + 456 0.13366979976251E+02 0.00000000000000E+00 -.22443364211830E+00 + 457 0.13697144381665E+02 0.00000000000000E+00 -.21902375534681E+00 + 458 0.14035463847892E+02 0.00000000000000E+00 -.21374427183254E+00 + 459 0.14382139804935E+02 0.00000000000000E+00 -.20859204824099E+00 + 460 0.14737378658117E+02 0.00000000000000E+00 -.20356401702059E+00 + 461 0.15101391910972E+02 0.00000000000000E+00 -.19865718456191E+00 + 462 0.15474396291173E+02 0.00000000000000E+00 -.19386862941535E+00 + 463 0.15856613879565E+02 0.00000000000000E+00 -.18919550055172E+00 + 464 0.16248272242390E+02 0.00000000000000E+00 -.18463501566481E+00 + 465 0.16649604566777E+02 0.00000000000000E+00 -.18018445951479E+00 + 466 0.17060849799577E+02 0.00000000000000E+00 -.17584118231169E+00 + 467 0.17482252789626E+02 0.00000000000000E+00 -.17160259813769E+00 + 468 0.17914064433530E+02 0.00000000000000E+00 -.16746618340753E+00 + 469 0.18356541825038E+02 0.00000000000000E+00 -.16342947536599E+00 + 470 0.18809948408117E+02 0.00000000000000E+00 -.15949007062164E+00 + 471 0.19274554133797E+02 0.00000000000000E+00 -.15564562371586E+00 + 472 0.19750635620902E+02 0.00000000000000E+00 -.15189384572641E+00 + 473 0.20238476320738E+02 0.00000000000000E+00 -.14823250290467E+00 + 474 0.20738366685861E+02 0.00000000000000E+00 -.14465941534563E+00 + 475 0.21250604343001E+02 0.00000000000000E+00 -.14117245569009E+00 + 476 0.21775494270273E+02 0.00000000000000E+00 -.13776954785800E+00 + 477 0.22313348978749E+02 0.00000000000000E+00 -.13444866581243E+00 + 478 0.22864488698524E+02 0.00000000000000E+00 -.13120783235330E+00 + 479 0.23429241569378E+02 0.00000000000000E+00 -.12804511794018E+00 + 480 0.24007943836141E+02 0.00000000000000E+00 -.12495863954346E+00 + 481 0.24600940048894E+02 0.00000000000000E+00 -.12194655952323E+00 + 482 0.25208583268102E+02 0.00000000000000E+00 -.11900708453521E+00 + 483 0.25831235274824E+02 0.00000000000000E+00 -.11613846446298E+00 + 484 0.26469266786112E+02 0.00000000000000E+00 -.11333899137599E+00 + 485 0.27123057675729E+02 0.00000000000000E+00 -.11060699851273E+00 + 486 0.27792997200320E+02 0.00000000000000E+00 -.10794085928831E+00 + 487 0.28479484231167E+02 0.00000000000000E+00 -.10533898632605E+00 + 488 0.29182927491677E+02 0.00000000000000E+00 -.10279983051240E+00 + 489 0.29903745800722E+02 0.00000000000000E+00 -.10032188007456E+00 + 490 0.30642368322000E+02 0.00000000000000E+00 -.97903659680448E-01 + 491 0.31399234819553E+02 0.00000000000000E+00 -.95543729560309E-01 + 492 0.32174795919596E+02 0.00000000000000E+00 -.93240684649467E-01 + 493 0.32969513378810E+02 0.00000000000000E+00 -.90993153751798E-01 + 494 0.33783860359267E+02 0.00000000000000E+00 -.88799798723331E-01 + 495 0.34618321710140E+02 0.00000000000000E+00 -.86659313675545E-01 + 496 0.35473394256381E+02 0.00000000000000E+00 -.84570424197858E-01 + 497 0.36349587094513E+02 0.00000000000000E+00 -.82531886598866E-01 + 498 0.37247421895748E+02 0.00000000000000E+00 -.80542487165869E-01 + 499 0.38167433216573E+02 0.00000000000000E+00 -.78601041442246E-01 + 500 0.39110168817022E+02 0.00000000000000E+00 -.76706393522246E-01 + 501 0.40076189986803E+02 0.00000000000000E+00 -.74857415362786E-01 + 502 0.41066071879477E+02 0.00000000000000E+00 -.73053006111823E-01 + 503 0.42080403854900E+02 0.00000000000000E+00 -.71292091452936E-01 + 504 0.43119789830116E+02 0.00000000000000E+00 -.69573622965684E-01 + 505 0.44184848638920E+02 0.00000000000000E+00 -.67896577501399E-01 + 506 0.45276214400301E+02 0.00000000000000E+00 -.66259956574021E-01 + 507 0.46394536895988E+02 0.00000000000000E+00 -.64662785765610E-01 + 508 0.47540481957319E+02 0.00000000000000E+00 -.63104114146199E-01 + 509 0.48714731861665E+02 0.00000000000000E+00 -.61583013707621E-01 + 510 0.49917985738648E+02 0.00000000000000E+00 -.60098578810989E-01 + 511 0.51150959986393E+02 0.00000000000000E+00 -.58649925647496E-01 + 512 0.52414388698057E+02 0.00000000000000E+00 -.57236191712205E-01 + 513 0.53709024098899E+02 0.00000000000000E+00 -.55856535290529E-01 + 514 0.55035636994142E+02 0.00000000000000E+00 -.54510134957089E-01 + 515 0.56395017227897E+02 0.00000000000000E+00 -.53196189086648E-01 + 516 0.57787974153426E+02 0.00000000000000E+00 -.51913915376840E-01 + 517 0.59215337115016E+02 0.00000000000000E+00 -.50662550382395E-01 + 518 0.60677955941756E+02 0.00000000000000E+00 -.49441349060599E-01 + 519 0.62176701453518E+02 0.00000000000000E+00 -.48249584327704E-01 + 520 0.63712465979420E+02 0.00000000000000E+00 -.47086546626041E-01 + 521 0.65286163889111E+02 0.00000000000000E+00 -.45951543501553E-01 + 522 0.66898732137172E+02 0.00000000000000E+00 -.44843899191522E-01 + 523 0.68551130820961E+02 0.00000000000000E+00 -.43762954222233E-01 + 524 0.70244343752238E+02 0.00000000000000E+00 -.42708065016330E-01 + 525 0.71979379042919E+02 0.00000000000000E+00 -.41678603509641E-01 + 526 0.73757269705279E+02 0.00000000000000E+00 -.40673956777244E-01 + 527 0.75579074266999E+02 0.00000000000000E+00 -.39693526668531E-01 + 528 0.77445877401394E+02 0.00000000000000E+00 -.38736729451089E-01 + 529 0.79358790573208E+02 0.00000000000000E+00 -.37802995463149E-01 diff --git a/abipy/data/pseudos/Al.xml b/abipy/data/pseudos/Al.xml new file mode 100644 index 000000000..260681fd8 --- /dev/null +++ b/abipy/data/pseudos/Al.xml @@ -0,0 +1,12786 @@ + + + + + + + + + + + + + + + + + + + 0.0000000000000000E+00 2.8045774654123518E-06 5.6261150056314939E-06 + 8.4647151830366149E-06 1.1320481180230528E-05 1.4193516803790781E-05 + 1.7083926488042483E-05 1.9991815298854916E-05 2.2917288937460103E-05 + 2.5860453744295852E-05 2.8821416702870252E-05 3.1800285443651368E-05 + 3.4797168247979011E-05 3.7812174052001073E-05 4.0845412450632973E-05 + 4.3896993701541904E-05 4.6967028729154322E-05 5.0055629128688030E-05 + 5.3162907170208951E-05 5.6288975802711827E-05 5.9433948658225730E-05 + 6.2597940055945288E-05 6.5781065006385324E-05 6.8983439215562032E-05 + 7.2205179089198512E-05 7.5446401736956577E-05 7.8707224976692932E-05 + 8.1987767338742541E-05 8.5288148070226870E-05 8.8608487139388523E-05 + 9.1948905239951840E-05 9.5309523795510727E-05 9.8690464963941608E-05 + 1.0209185164184436E-04 1.0551380746900948E-04 1.0895645683291227E-04 + 1.1241992487323438E-04 1.1590433748641243E-04 1.1940982133021468E-04 + 1.2293650382834466E-04 1.2648451317507329E-04 1.3005397833989850E-04 + 1.3364502907223323E-04 1.3725779590612207E-04 1.4089241016498590E-04 + 1.4454900396639555E-04 1.4822771022687410E-04 1.5192866266672879E-04 + 1.5565199581491136E-04 1.5939784501390811E-04 1.6316634642465984E-04 + 1.6695763703151109E-04 1.7077185464718970E-04 1.7460913791781592E-04 + 1.7846962632794245E-04 1.8235346020562481E-04 1.8626078072752177E-04 + 1.9019172992402740E-04 1.9414645068443408E-04 1.9812508676212600E-04 + 2.0212778277980476E-04 2.0615468423474667E-04 2.1020593750409100E-04 + 2.1428168985016140E-04 2.1838208942581827E-04 2.2250728527984455E-04 + 2.2665742736236306E-04 2.3083266653028795E-04 2.3503315455280772E-04 + 2.3925904411690210E-04 2.4351048883289214E-04 2.4778764324002431E-04 + 2.5209066281208772E-04 2.5641970396306517E-04 2.6077492405281953E-04 + 2.6515648139281321E-04 2.6956453525186287E-04 2.7399924586192899E-04 + 2.7846077442393992E-04 2.8294928311365172E-04 2.8746493508754361E-04 + 2.9200789448874766E-04 2.9657832645301645E-04 3.0117639711472506E-04 + 3.0580227361291036E-04 3.1045612409734619E-04 3.1513811773465570E-04 + 3.1984842471446078E-04 3.2458721625556813E-04 3.2935466461219293E-04 + 3.3415094308022043E-04 3.3897622600350546E-04 3.4383068878020946E-04 + 3.4871450786917610E-04 3.5362786079634568E-04 3.5857092616120855E-04 + 3.6354388364329642E-04 3.6854691400871423E-04 3.7358019911671068E-04 + 3.7864392192628869E-04 3.8373826650285690E-04 3.8886341802491886E-04 + 3.9401956279080513E-04 3.9920688822544544E-04 4.0442558288718083E-04 + 4.0967583647461833E-04 4.1495783983352611E-04 4.2027178496377047E-04 + 4.2561786502629602E-04 4.3099627435014574E-04 4.3640720843952561E-04 + 4.4185086398091110E-04 4.4732743885019622E-04 4.5283713211988690E-04 + 4.5838014406633681E-04 4.6395667617702731E-04 4.6956693115789199E-04 + 4.7521111294068476E-04 4.8088942669039203E-04 4.8660207881269149E-04 + 4.9234927696145453E-04 4.9813123004629426E-04 5.0394814824015924E-04 + 5.0980024298697356E-04 5.1568772700932245E-04 5.2161081431618560E-04 + 5.2756972021071483E-04 5.3356466129806138E-04 5.3959585549324951E-04 + 5.4566352202909708E-04 5.5176788146418527E-04 5.5790915569087468E-04 + 5.6408756794337322E-04 5.7030334280584846E-04 5.7655670622059176E-04 + 5.8284788549623260E-04 5.8917710931599948E-04 5.9554460774603312E-04 + 6.0195061224374970E-04 6.0839535566625390E-04 6.1487907227880331E-04 + 6.2140199776332383E-04 6.2796436922697675E-04 6.3456642521077808E-04 + 6.4120840569826837E-04 6.4789055212423655E-04 6.5461310738349659E-04 + 6.6137631583971612E-04 6.6818042333429925E-04 6.7502567719532228E-04 + 6.8191232624652493E-04 6.8884062081635440E-04 6.9581081274706501E-04 + 7.0282315540387270E-04 7.0987790368416421E-04 7.1697531402676337E-04 + 7.2411564442125269E-04 7.3129915441734982E-04 7.3852610513434403E-04 + 7.4579675927058647E-04 7.5311138111303956E-04 7.6047023654688447E-04 + 7.6787359306518450E-04 7.7532171977861034E-04 7.8281488742522028E-04 + 7.9035336838030319E-04 7.9793743666627776E-04 8.0556736796265447E-04 + 8.1324343961605564E-04 8.2096593065029728E-04 8.2873512177653161E-04 + 8.3655129540345045E-04 8.4441473564755105E-04 8.5232572834346456E-04 + 8.6028456105434383E-04 8.6829152308231844E-04 8.7634690547900933E-04 + 8.8445100105610992E-04 8.9260410439602781E-04 9.0080651186259515E-04 + 9.0905852161183925E-04 9.1736043360282149E-04 9.2571254960854149E-04 + 9.3411517322690505E-04 9.4256860989176043E-04 9.5107316688400139E-04 + 9.5962915334273633E-04 9.6823688027652488E-04 9.7689666057468403E-04 + 9.8560880901866154E-04 9.9437364229347709E-04 1.0031914789992344E-03 + 1.0120626396627032E-03 1.0209874467489682E-03 1.0299662246731529E-03 + 1.0389992998122107E-03 1.0480870005167887E-03 1.0572296571231634E-03 + 1.0664276019652489E-03 1.0756811693866761E-03 1.0849906957529469E-03 + 1.0943565194636610E-03 1.1037789809648154E-03 1.1132584227611817E-03 + 1.1227951894287537E-03 1.1323896276272756E-03 1.1420420861128397E-03 + 1.1517529157505661E-03 1.1615224695273550E-03 1.1713511025647197E-03 + 1.1812391721316925E-03 1.1911870376578135E-03 1.2011950607461954E-03 + 1.2112636051866666E-03 1.2213930369689965E-03 1.2315837242961980E-03 + 1.2418360375979118E-03 1.2521503495438718E-03 1.2625270350574516E-03 + 1.2729664713292926E-03 1.2834690378310141E-03 1.2940351163290096E-03 + 1.3046650908983205E-03 1.3153593479365996E-03 1.3261182761781559E-03 + 1.3369422667080843E-03 1.3478317129764830E-03 1.3587870108127537E-03 + 1.3698085584399910E-03 1.3808967564894570E-03 1.3920520080151460E-03 + 1.4032747185084324E-03 1.4145652959128121E-03 1.4259241506387322E-03 + 1.4373516955785068E-03 1.4488483461213271E-03 1.4604145201683601E-03 + 1.4720506381479415E-03 1.4837571230308542E-03 1.4955344003457058E-03 + 1.5073828981943965E-03 1.5193030472676796E-03 1.5312952808608181E-03 + 1.5433600348893333E-03 1.5554977479048516E-03 1.5677088611110450E-03 + 1.5799938183796709E-03 1.5923530662667030E-03 1.6047870540285660E-03 + 1.6172962336384665E-03 1.6298810598028197E-03 1.6425419899777803E-03 + 1.6552794843858699E-03 1.6680940060327062E-03 1.6809860207238328E-03 + 1.6939559970816521E-03 1.7070044065624578E-03 1.7201317234735744E-03 + 1.7333384249905968E-03 1.7466249911747365E-03 1.7599919049902703E-03 + 1.7734396523220973E-03 1.7869687219934012E-03 1.8005796057834166E-03 + 1.8142727984453069E-03 1.8280487977241488E-03 1.8419081043750238E-03 + 1.8558512221812215E-03 1.8698786579725516E-03 1.8839909216437686E-03 + 1.8981885261731034E-03 1.9124719876409124E-03 1.9268418252484363E-03 + 1.9412985613366722E-03 1.9558427214053623E-03 1.9704748341320940E-03 + 1.9851954313915175E-03 2.0000050482746803E-03 2.0149042231084784E-03 + 2.0298934974752204E-03 2.0449734162323189E-03 2.0601445275320921E-03 + 2.0754073828416920E-03 2.0907625369631479E-03 2.1062105480535334E-03 + 2.1217519776452589E-03 2.1373873906664772E-03 2.1531173554616241E-03 + 2.1689424438120744E-03 2.1848632309569272E-03 2.2008802956139141E-03 + 2.2169942200004383E-03 2.2332055898547374E-03 2.2495149944571713E-03 + 2.2659230266516479E-03 2.2824302828671696E-03 2.2990373631395136E-03 + 2.3157448711330435E-03 2.3325534141626523E-03 2.3494636032158388E-03 + 2.3664760529749154E-03 2.3835913818393544E-03 2.4008102119482642E-03 + 2.4181331692030034E-03 2.4355608832899345E-03 2.4530939877033127E-03 + 2.4707331197683113E-03 2.4884789206641900E-03 2.5063320354476010E-03 + 2.5242931130760372E-03 2.5423628064314219E-03 2.5605417723438394E-03 + 2.5788306716154124E-03 2.5972301690443209E-03 2.6157409334489675E-03 + 2.6343636376922903E-03 2.6530989587062194E-03 2.6719475775162853E-03 + 2.6909101792663712E-03 2.7099874532436211E-03 2.7291800929034929E-03 + 2.7484887958949657E-03 2.7679142640859014E-03 2.7874572035885537E-03 + 2.8071183247852394E-03 2.8268983423541563E-03 2.8467979752953656E-03 + 2.8668179469569246E-03 2.8869589850611822E-03 2.9072218217312293E-03 + 2.9276071935175141E-03 2.9481158414246126E-03 2.9687485109381661E-03 + 2.9895059520519806E-03 3.0103889192952846E-03 3.0313981717601597E-03 + 3.0525344731291326E-03 3.0737985917029349E-03 3.0951913004284297E-03 + 3.1167133769267096E-03 3.1383656035213615E-03 3.1601487672669065E-03 + 3.1820636599774045E-03 3.2041110782552429E-03 3.2262918235200855E-03 + 3.2486067020380126E-03 3.2710565249508220E-03 3.2936421083055141E-03 + 3.3163642730839578E-03 3.3392238452327342E-03 3.3622216556931533E-03 + 3.3853585404314676E-03 3.4086353404692502E-03 3.4320529019139729E-03 + 3.4556120759897564E-03 3.4793137190683191E-03 3.5031586927000971E-03 + 3.5271478636455700E-03 3.5512821039067606E-03 3.5755622907589378E-03 + 3.5999893067825018E-03 3.6245640398950628E-03 3.6492873833837295E-03 + 3.6741602359375621E-03 3.6991835016802524E-03 3.7243580902029828E-03 + 3.7496849165974929E-03 3.7751649014893399E-03 3.8007989710713663E-03 + 3.8265880571373627E-03 3.8525330971159442E-03 3.8786350341046189E-03 + 3.9048948169040768E-03 3.9313134000526712E-03 3.9578917438611192E-03 + 3.9846308144474126E-03 4.0115315837719271E-03 4.0385950296727650E-03 + 4.0658221359012878E-03 4.0932138921578815E-03 4.1207712941279317E-03 + 4.1484953435180138E-03 4.1763870480923081E-03 4.2044474217092301E-03 + 4.2326774843582859E-03 4.2610782621971448E-03 4.2896507875889445E-03 + 4.3183960991398139E-03 4.3473152417366290E-03 4.3764092665849897E-03 + 4.4056792312474396E-03 4.4351261996818953E-03 4.4647512422803350E-03 + 4.4945554359076961E-03 4.5245398639410283E-03 4.5547056163088651E-03 + 4.5850537895308491E-03 4.6155854867575858E-03 4.6463018178107473E-03 + 4.6772038992234097E-03 4.7082928542806430E-03 4.7395698130603403E-03 + 4.7710359124742939E-03 4.8026922963095263E-03 4.8345401152698640E-03 + 4.8665805270177633E-03 4.8988146962163975E-03 4.9312437945719829E-03 + 4.9638690008763789E-03 4.9966915010499369E-03 5.0297124881845973E-03 + 5.0629331625872704E-03 5.0963547318234595E-03 5.1299784107611632E-03 + 5.1638054216150264E-03 5.1978369939907742E-03 5.2320743649299072E-03 + 5.2665187789546659E-03 5.3011714881132689E-03 5.3360337520254250E-03 + 5.3711068379281215E-03 5.4063920207216868E-03 5.4418905830161315E-03 + 5.4776038151777735E-03 5.5135330153761432E-03 5.5496794896311629E-03 + 5.5860445518606397E-03 5.6226295239280065E-03 5.6594357356903767E-03 + 5.6964645250468923E-03 5.7337172379873453E-03 5.7711952286411154E-03 + 5.8088998593263802E-03 5.8468325005996474E-03 5.8849945313055631E-03 + 5.9233873386270418E-03 5.9620123181356819E-03 6.0008708738425046E-03 + 6.0399644182489790E-03 6.0792943723983715E-03 6.1188621659274004E-03 + 6.1586692371182056E-03 6.1987170329506226E-03 6.2390070091547858E-03 + 6.2795406302640416E-03 6.3203193696681845E-03 6.3613447096670141E-03 + 6.4026181415242208E-03 6.4441411655215847E-03 6.4859152910135163E-03 + 6.5279420364819209E-03 6.5702229295913949E-03 6.6127595072447524E-03 + 6.6555533156388976E-03 6.6986059103210250E-03 6.7419188562451620E-03 + 6.7854937278290575E-03 6.8293321090114089E-03 6.8734355933094491E-03 + 6.9178057838768488E-03 6.9624442935620097E-03 7.0073527449666852E-03 + 7.0525327705049587E-03 7.0979860124625845E-03 7.1437141230566862E-03 + 7.1897187644958142E-03 7.2360016090403604E-03 7.2825643390633521E-03 + 7.3294086471116029E-03 7.3765362359672366E-03 7.4239488187095807E-03 + 7.4716481187774445E-03 7.5196358700317517E-03 7.5679138168185849E-03 + 7.6164837140325755E-03 7.6653473271807012E-03 7.7145064324464583E-03 + 7.7639628167544324E-03 7.8137182778352469E-03 7.8637746242909111E-03 + 7.9141336756605625E-03 7.9647972624866097E-03 8.0157672263812679E-03 + 8.0670454200935070E-03 8.1186337075763899E-03 8.1705339640548349E-03 + 8.2227480760937756E-03 8.2752779416667421E-03 8.3281254702248439E-03 + 8.3812925827661793E-03 8.4347812119056811E-03 8.4885933019453359E-03 + 8.5427308089448869E-03 8.5971957007929152E-03 8.6519899572783908E-03 + 8.7071155701626199E-03 8.7625745432516663E-03 8.8183688924691628E-03 + 8.8745006459296141E-03 8.9309718440121026E-03 8.9877845394344645E-03 + 9.0449407973278995E-03 9.1024426953120463E-03 9.1602923235704903E-03 + 9.2184917849267509E-03 9.2770431949207310E-03 9.3359486818855864E-03 + 9.3952103870251109E-03 9.4548304644915711E-03 9.5148110814639916E-03 + 9.5751544182269520E-03 9.6358626682498290E-03 9.6969380382665258E-03 + 9.7583827483556981E-03 9.8201990320214410E-03 9.8823891362744814E-03 + 9.9449553217138588E-03 1.0007899862609099E-02 1.0071225046982877E-02 + 1.0134933176694188E-02 1.0199026567522022E-02 1.0263507549249536E-02 + 1.0328378465748763E-02 1.0393641675065780E-02 1.0459299549506433E-02 + 1.0525354475722585E-02 1.0591808854798856E-02 1.0658665102339903E-02 + 1.0725925648558229E-02 1.0793592938362521E-02 1.0861669431446527E-02 + 1.0930157602378450E-02 1.0999059940690918E-02 1.1068378950971465E-02 + 1.1138117152953571E-02 1.1208277081608268E-02 1.1278861287236262E-02 + 1.1349872335560670E-02 1.1421312807820248E-02 1.1493185300863242E-02 + 1.1565492427241768E-02 1.1638236815306794E-02 1.1711421109303663E-02 + 1.1785047969468226E-02 1.1859120072123530E-02 1.1933640109777108E-02 + 1.2008610791218847E-02 1.2084034841619457E-02 1.2159915002629524E-02 + 1.2236254032479176E-02 1.2313054706078339E-02 1.2390319815117604E-02 + 1.2468052168169706E-02 1.2546254590791615E-02 1.2624929925627257E-02 + 1.2704081032510814E-02 1.2783710788570705E-02 1.2863822088334158E-02 + 1.2944417843832424E-02 1.3025500984706640E-02 1.3107074458314310E-02 + 1.3189141229836438E-02 1.3271704282385327E-02 1.3354766617113000E-02 + 1.3438331253320302E-02 1.3522401228566639E-02 1.3606979598780404E-02 + 1.3692069438370055E-02 1.3777673840335864E-02 1.3863795916382367E-02 + 1.3950438797031443E-02 1.4037605631736132E-02 1.4125299588995104E-02 + 1.4213523856467845E-02 1.4302281641090519E-02 1.4391576169192536E-02 + 1.4481410686613844E-02 1.4571788458822902E-02 1.4662712771035374E-02 + 1.4754186928333569E-02 1.4846214255786552E-02 1.4938798098571026E-02 + 1.5031941822092939E-02 1.5125648812109779E-02 1.5219922474853691E-02 + 1.5314766237155253E-02 1.5410183546568076E-02 1.5506177871494099E-02 + 1.5602752701309659E-02 1.5699911546492355E-02 1.5797657938748634E-02 + 1.5895995431142167E-02 1.5994927598223022E-02 1.6094458036157569E-02 + 1.6194590362859227E-02 1.6295328218119954E-02 1.6396675263742569E-02 + 1.6498635183673845E-02 1.6601211684138424E-02 1.6704408493773554E-02 + 1.6808229363764575E-02 1.6912678067981354E-02 1.7017758403115386E-02 + 1.7123474188817846E-02 1.7229829267838417E-02 1.7336827506164984E-02 + 1.7444472793164155E-02 1.7552769041722639E-02 1.7661720188389480E-02 + 1.7771330193519150E-02 1.7881603041415513E-02 1.7992542740476635E-02 + 1.8104153323340512E-02 1.8216438847031637E-02 1.8329403393108491E-02 + 1.8443051067811887E-02 1.8557386002214238E-02 1.8672412352369723E-02 + 1.8788134299465374E-02 1.8904556049973032E-02 1.9021681835802263E-02 + 1.9139515914454196E-02 1.9258062569176271E-02 1.9377326109117948E-02 + 1.9497310869487330E-02 1.9618021211708744E-02 1.9739461523581303E-02 + 1.9861636219438365E-02 1.9984549740308034E-02 2.0108206554074554E-02 + 2.0232611155640734E-02 2.0357768067091341E-02 2.0483681837857454E-02 + 2.0610357044881882E-02 2.0737798292785478E-02 2.0866010214034544E-02 + 2.0994997469109232E-02 2.1124764746672929E-02 2.1255316763742694E-02 + 2.1386658265860736E-02 2.1518794027266894E-02 2.1651728851072201E-02 + 2.1785467569433444E-02 2.1920015043728851E-02 2.2055376164734766E-02 + 2.2191555852803458E-02 2.2328559058041948E-02 2.2466390760491971E-02 + 2.2605055970310973E-02 2.2744559727954233E-02 2.2884907104358129E-02 + 2.3026103201124398E-02 2.3168153150705615E-02 2.3311062116591744E-02 + 2.3454835293497851E-02 2.3599477907552908E-02 2.3744995216489765E-02 + 2.3891392509836282E-02 2.4038675109107586E-02 2.4186848367999527E-02 + 2.4335917672583252E-02 2.4485888441501021E-02 2.4636766126163150E-02 + 2.4788556210946191E-02 2.4941264213392253E-02 2.5094895684409632E-02 + 2.5249456208474463E-02 2.5404951403833888E-02 2.5561386922710077E-02 + 2.5718768451505891E-02 2.5877101711011388E-02 2.6036392456611955E-02 + 2.6196646478497326E-02 2.6357869601872239E-02 2.6520067687168084E-02 + 2.6683246630255873E-02 2.6847412362660715E-02 2.7012570851777242E-02 + 2.7178728101086704E-02 2.7345890150375005E-02 2.7514063075952448E-02 + 2.7683252990874409E-02 2.7853466045163734E-02 2.8024708426034110E-02 + 2.8196986358115152E-02 2.8370306103678480E-02 2.8544673962865537E-02 + 2.8720096273916418E-02 2.8896579413400417E-02 2.9074129796447756E-02 + 2.9252753876982687E-02 2.9432458147958283E-02 2.9613249141592232E-02 + 2.9795133429604496E-02 2.9978117623455990E-02 3.0162208374589113E-02 + 3.0347412374669317E-02 3.0533736355828553E-02 3.0721187090909784E-02 + 3.0909771393713363E-02 3.1099496119244535E-02 3.1290368163962808E-02 + 3.1482394466032432E-02 3.1675582005574784E-02 3.1869937804921943E-02 + 3.2065468928872076E-02 3.2262182484946202E-02 3.2460085623646433E-02 + 3.2659185538716128E-02 3.2859489467401123E-02 3.3061004690713047E-02 + 3.3263738533693764E-02 3.3467698365681829E-02 3.3672891600580214E-02 + 3.3879325697125921E-02 3.4087008159160964E-02 3.4295946535905328E-02 + 3.4506148422231167E-02 3.4717621458939057E-02 3.4930373333035586E-02 + 3.5144411778012946E-02 3.5359744574129832E-02 3.5576379548694470E-02 + 3.5794324576349013E-02 3.6013587579355737E-02 3.6234176527885201E-02 + 3.6456099440305707E-02 3.6679364383475056E-02 3.6903979473033477E-02 + 3.7129952873698892E-02 3.7357292799563485E-02 3.7586007514392505E-02 + 3.7816105331924393E-02 3.8047594616173248E-02 3.8280483781732634E-02 + 3.8514781294081632E-02 3.8750495669892374E-02 3.8987635477339820E-02 + 3.9226209336413111E-02 3.9466225919228784E-02 3.9707693950346276E-02 + 3.9950622207084785E-02 4.0195019519842556E-02 4.0440894772417628E-02 + 4.0688256902331028E-02 4.0937114901151352E-02 4.1187477814821918E-02 + 4.1439354743989285E-02 4.1692754844334316E-02 4.1947687326904765E-02 + 4.2204161458450323E-02 4.2462186561759201E-02 4.2721772015997264E-02 + 4.2982927257048859E-02 4.3245661777859684E-02 4.3509985128782104E-02 + 4.3775906917922047E-02 4.4043436811488514E-02 4.4312584534144668E-02 + 4.4583359869361620E-02 4.4855772659773731E-02 4.5129832807536747E-02 + 4.5405550274687380E-02 4.5682935083505759E-02 4.5961997316879430E-02 + 4.6242747118670186E-02 4.6525194694082429E-02 4.6809350310034539E-02 + 4.7095224295531653E-02 4.7382827042041477E-02 4.7672169003871868E-02 + 4.7963260698550711E-02 4.8256112707208532E-02 4.8550735674962785E-02 + 4.8847140311305139E-02 4.9145337390490422E-02 4.9445337751928602E-02 + 4.9747152300578454E-02 5.0050792007344330E-02 5.0356267909474541E-02 + 5.0663591110962976E-02 5.0972772782952300E-02 5.1283824164140471E-02 + 5.1596756561188825E-02 5.1911581349133491E-02 5.2228309971798448E-02 + 5.2546953942211899E-02 5.2867524843024566E-02 5.3190034326930612E-02 + 5.3514494117091527E-02 5.3840916007561898E-02 5.4169311863718490E-02 + 5.4499693622691171E-02 5.4832073293797218E-02 5.5166462958977446E-02 + 5.5502874773235789E-02 5.5841320965080744E-02 5.6181813836970261E-02 + 5.6524365765758547E-02 5.6868989203146328E-02 5.7215696676133139E-02 + 5.7564500787472932E-02 5.7915414216132111E-02 5.8268449717750241E-02 + 5.8623620125104026E-02 5.8980938348573445E-02 5.9340417376611360E-02 + 5.9702070276215324E-02 6.0065910193402919E-02 6.0431950353689208E-02 + 6.0800204062567913E-02 6.1170684705994627E-02 6.1543405750873824E-02 + 6.1918380745547966E-02 6.2295623320290372E-02 6.2675147187800276E-02 + 6.3056966143701695E-02 6.3441094067044623E-02 6.3827544920809512E-02 + 6.4216332752415076E-02 6.4607471694228535E-02 6.5000975964079818E-02 + 6.5396859865777840E-02 6.5795137789630892E-02 6.6195824212969351E-02 + 6.6598933700672366E-02 6.7004480905696759E-02 6.7412480569610189E-02 + 6.7822947523126509E-02 6.8235896686645370E-02 6.8651343070794013E-02 + 6.9069301776973499E-02 6.9489787997907046E-02 6.9912817018192797E-02 + 7.0338404214859179E-02 7.0766565057923655E-02 7.1197315110955561E-02 + 7.1630670031641280E-02 7.2066645572353899E-02 7.2505257580725360E-02 + 7.2946522000222919E-02 7.3390454870728289E-02 7.3837072329121123E-02 + 7.4286390609865124E-02 7.4738426045598647E-02 7.5193195067727883E-02 + 7.5650714207024641E-02 7.6111000094226736E-02 7.6574069460643060E-02 + 7.7039939138761157E-02 7.7508626062859631E-02 7.7980147269623434E-02 + 7.8454519898763037E-02 7.8931761193637817E-02 7.9411888501882369E-02 + 7.9894919276037618E-02 8.0380871074184720E-02 8.0869761560583772E-02 + 8.1361608506315339E-02 8.1856429789927090E-02 8.2354243398083019E-02 + 8.2855067426217899E-02 8.3358920079194376E-02 8.3865819671965422E-02 + 8.4375784630239356E-02 8.4888833491150256E-02 8.5404984903931475E-02 + 8.5924257630593359E-02 8.6446670546605722E-02 8.6972242641583417E-02 + 8.7500993019977158E-02 8.8032940901767429E-02 8.8568105623163640E-02 + 8.9106506637306446E-02 8.9648163514975482E-02 9.0193095945300089E-02 + 9.0741323736475740E-02 9.1292866816483256E-02 9.1847745233814018E-02 + 9.2405979158197940E-02 9.2967588881337285E-02 9.3532594817643991E-02 + 9.4101017504981427E-02 9.4672877605411668E-02 9.5248195905945701E-02 + 9.5826993319299891E-02 9.6409290884655316E-02 9.6995109768423321E-02 + 9.7584471265014183E-02 9.8177396797611866E-02 9.8773907918952034E-02 + 9.9374026312106234E-02 9.9977773791269320E-02 1.0058517230255311E-01 + 1.0119624392478345E-01 1.0181101087030343E-01 1.0242949548578015E-01 + 1.0305172025301756E-01 1.0367770778977350E-01 1.0430748085058153E-01 + 1.0494106232757865E-01 1.0557847525133673E-01 1.0621974279170047E-01 + 1.0686488825862875E-01 1.0751393510304277E-01 1.0816690691767775E-01 + 1.0882382743794121E-01 1.0948472054277503E-01 1.1014961025552419E-01 + 1.1081852074480933E-01 1.1149147632540590E-01 1.1216850145912731E-01 + 1.1284962075571491E-01 1.1353485897373171E-01 1.1422424102146310E-01 + 1.1491779195782190E-01 1.1561553699325897E-01 1.1631750149068033E-01 + 1.1702371096636831E-01 1.1773419109090977E-01 1.1844896769012850E-01 + 1.1916806674602484E-01 1.1989151439771914E-01 1.2061933694240286E-01 + 1.2135156083629368E-01 1.2208821269559787E-01 1.2282931929747705E-01 + 1.2357490758102237E-01 1.2432500464823279E-01 1.2507963776500117E-01 + 1.2583883436210488E-01 1.2660262203620268E-01 1.2737102855083859E-01 + 1.2814408183745019E-01 1.2892180999638481E-01 1.2970424129792010E-01 + 1.3049140418329264E-01 1.3128332726573058E-01 1.3208003933149501E-01 + 1.3288156934092515E-01 1.3368794642949208E-01 1.3449919990885686E-01 + 1.3531535926793695E-01 1.3613645417397718E-01 1.3696251447362900E-01 + 1.3779357019403493E-01 1.3862965154391987E-01 1.3947078891468986E-01 + 1.4031701288153597E-01 1.4116835420454654E-01 1.4202484382982439E-01 + 1.4288651289061272E-01 1.4375339270842577E-01 1.4462551479418836E-01 + 1.4550291084938030E-01 1.4638561276718970E-01 1.4727365263367140E-01 + 1.4816706272891406E-01 1.4906587552821288E-01 1.4997012370325069E-01 + 1.5087984012328490E-01 1.5179505785634287E-01 1.5271581017042379E-01 + 1.5364213053470752E-01 1.5457405262077190E-01 1.5551161030381594E-01 + 1.5645483766389212E-01 1.5740376898714406E-01 1.5835843876705397E-01 + 1.5931888170569539E-01 1.6028513271499564E-01 1.6125722691800390E-01 + 1.6223519965016883E-01 1.6321908646062211E-01 1.6420892311347154E-01 + 1.6520474558910009E-01 1.6620659008547498E-01 1.6721449301946209E-01 + 1.6822849102815088E-01 1.6924862097018567E-01 1.7027491992710508E-01 + 1.7130742520469078E-01 1.7234617433432253E-01 1.7339120507434366E-01 + 1.7444255541143214E-01 1.7550026356198292E-01 1.7656436797349556E-01 + 1.7763490732597328E-01 1.7871192053332755E-01 1.7979544674479397E-01 + 1.8088552534635396E-01 1.8198219596216786E-01 1.8308549845601382E-01 + 1.8419547293273811E-01 1.8531215973971224E-01 1.8643559946829943E-01 + 1.8756583295533086E-01 1.8870290128458897E-01 1.8984684578830219E-01 + 1.9099770804864599E-01 1.9215552989925569E-01 1.9332035342674569E-01 + 1.9449222097224095E-01 1.9567117513291432E-01 1.9685725876353671E-01 + 1.9805051497803314E-01 1.9925098715105150E-01 2.0045871891953773E-01 + 2.0167375418432340E-01 2.0289613711172069E-01 2.0412591213512760E-01 + 2.0536312395664408E-01 2.0660781754869570E-01 2.0786003815566970E-01 + 2.0911983129555828E-01 2.1038724276161455E-01 2.1166231862401566E-01 + 2.1294510523153889E-01 2.1423564921324509E-01 2.1553399748017482E-01 + 2.1684019722705239E-01 2.1815429593400265E-01 2.1947634136827554E-01 + 2.2080638158598381E-01 2.2214446493384840E-01 2.2349064005095712E-01 + 2.2484495587053219E-01 2.2620746162170824E-01 2.2757820683132324E-01 + 2.2895724132571724E-01 2.3034461523254501E-01 2.3174037898259672E-01 + 2.3314458331163257E-01 2.3455727926222550E-01 2.3597851818561821E-01 + 2.3740835174358801E-01 2.3884683191032655E-01 2.4029401097432718E-01 + 2.4174994154028756E-01 2.4321467653102000E-01 2.4468826918937681E-01 + 2.4617077308018412E-01 2.4766224209219043E-01 2.4916273044002471E-01 + 2.5067229266616659E-01 2.5219098364293036E-01 2.5371885857445775E-01 + 2.5525597299872671E-01 2.5680238278956796E-01 2.5835814415869818E-01 + 2.5992331365776122E-01 2.6149794818038569E-01 2.6308210496425116E-01 + 2.6467584159317070E-01 2.6627921599918186E-01 2.6789228646465491E-01 + 2.6951511162440878E-01 2.7114775046784489E-01 2.7279026234109005E-01 + 2.7444270694915318E-01 2.7610514435809741E-01 2.7777763499722136E-01 + 2.7946023966125766E-01 2.8115301951258093E-01 2.8285603608343313E-01 + 2.8456935127815797E-01 2.8629302737545348E-01 2.8802712703063332E-01 + 2.8977171327790685E-01 2.9152684953266811E-01 2.9329259959380283E-01 + 2.9506902764600595E-01 2.9685619826211601E-01 2.9865417640546188E-01 + 3.0046302743222331E-01 3.0228281709380839E-01 3.0411361153924160E-01 + 3.0595547731757050E-01 3.0780848138028222E-01 3.0967269108373996E-01 + 3.1154817419162856E-01 3.1343499887742021E-01 3.1533323372685057E-01 + 3.1724294774041339E-01 3.1916421033586717E-01 3.2109709135076026E-01 + 3.2304166104496723E-01 3.2499799010324537E-01 3.2696614963780146E-01 + 3.2894621119087875E-01 3.3093824673735694E-01 3.3294232868736717E-01 + 3.3495852988892627E-01 3.3698692363058269E-01 3.3902758364408264E-01 + 3.4108058410704778E-01 3.4314599964567427E-01 3.4522390533744263E-01 + 3.4731437671384940E-01 3.4941748976315051E-01 3.5153332093312539E-01 + 3.5366194713385368E-01 3.5580344574051342E-01 3.5795789459619082E-01 + 3.6012537201471279E-01 3.6230595678349070E-01 3.6449972816638682E-01 + 3.6670676590659435E-01 3.6892715022953526E-01 3.7116096184577874E-01 + 3.7340828195397219E-01 3.7566919224379575E-01 3.7794377489892877E-01 + 3.8023211260003992E-01 3.8253428852779015E-01 3.8485038636585855E-01 + 3.8718049030398188E-01 3.8952468504101750E-01 3.9188305578801930E-01 + 3.9425568827133811E-01 3.9664266873573473E-01 3.9904408394751761E-01 + 4.0146002119769564E-01 4.0389056830515008E-01 4.0633581361982940E-01 + 4.0879584602595770E-01 4.1127075494526860E-01 4.1376063034025296E-01 + 4.1626556271743170E-01 4.1878564313064293E-01 4.2132096318435436E-01 + 4.2387161503699067E-01 4.2643769140428606E-01 4.2901928556265156E-01 + 4.3161649135256852E-01 4.3422940318199682E-01 4.3685811602980917E-01 + 4.3950272544924252E-01 4.4216332757137000E-01 4.4484001910859833E-01 + 4.4753289735817980E-01 4.5024206020575253E-01 4.5296760612889514E-01 + 4.5570963420070959E-01 4.5846824409341963E-01 4.6124353608199653E-01 + 4.6403561104780122E-01 4.6684457048225458E-01 4.6967051649052288E-01 + 4.7251355179523330E-01 4.7537377974020412E-01 4.7825130429420426E-01 + 4.8114623005473028E-01 4.8405866225180999E-01 4.8698870675182743E-01 + 4.8993647006136942E-01 4.9290205933109965E-01 4.9588558235965102E-01 + 4.9888714759754649E-01 5.0190686415113883E-01 5.0494484178657928E-01 + 5.0800119093380447E-01 5.1107602269055397E-01 5.1416944882640492E-01 + 5.1728158178683870E-01 5.2041253469732451E-01 5.2356242136743525E-01 + 5.2673135629498058E-01 5.2991945467017298E-01 5.3312683237981051E-01 + 5.3635360601149329E-01 5.3959989285785948E-01 5.4286581092084796E-01 + 5.4615147891599036E-01 5.4945701627672283E-01 5.5278254315873177E-01 + 5.5612818044431656E-01 5.5949404974678840E-01 5.6288027341488656E-01 + 5.6628697453722965E-01 5.6971427694678645E-01 5.7316230522538048E-01 + 5.7663118470821484E-01 5.8012104148843224E-01 5.8363200242169444E-01 + 5.8716419513079676E-01 5.9071774801030563E-01 5.9429279023122428E-01 + 5.9788945174569208E-01 6.0150786329170303E-01 6.0514815639786357E-01 + 6.0881046338816847E-01 6.1249491738681539E-01 6.1620165232303969E-01 + 6.1993080293598668E-01 6.2368250477960552E-01 6.2745689422758077E-01 + 6.3125410847828489E-01 6.3507428555977008E-01 6.3891756433478109E-01 + 6.4278408450580671E-01 6.4667398662015640E-01 6.5058741207506698E-01 + 6.5452450312284727E-01 6.5848540287604329E-01 6.6247025531264569E-01 + 6.6647920528131854E-01 6.7051239850666933E-01 6.7456998159454085E-01 + 6.7865210203734572E-01 6.8275890821942220E-01 6.8689054942243322E-01 + 6.9104717583078834E-01 6.9522893853710643E-01 6.9943598954770425E-01 + 7.0366848178812624E-01 7.0792656910869856E-01 7.1221040629012555E-01 + 7.1652014904911432E-01 7.2085595404403358E-01 7.2521797888061157E-01 + 7.2960638211766093E-01 7.3402132327284686E-01 7.3846296282848001E-01 + 7.4293146223735651E-01 7.4742698392861984E-01 7.5194969131367173E-01 + 7.5649974879210635E-01 7.6107732175769094E-01 7.6568257660437367E-01 + 7.7031568073233636E-01 7.7497680255407464E-01 7.7966611150052489E-01 + 7.8438377802721748E-01 7.8912997362047832E-01 7.9390487080365912E-01 + 7.9870864314340739E-01 8.0354146525597991E-01 8.0840351281358513E-01 + 8.1329496255077349E-01 8.1821599227085662E-01 8.2316678085237627E-01 + 8.2814750825560013E-01 8.3315835552906992E-01 8.3819950481617611E-01 + 8.4327113936178466E-01 8.4837344351889266E-01 8.5350660275533452E-01 + 8.5867080366051840E-01 8.6386623395221396E-01 8.6909308248337314E-01 + 8.7435153924899289E-01 8.7964179539302700E-01 8.8496404321532796E-01 + 8.9031847617864257E-01 8.9570528891563916E-01 9.0112467723598766E-01 + 9.0657683813347167E-01 9.1206196979315513E-01 9.1758027159858002E-01 + 9.2313194413902033E-01 9.2871718921676694E-01 9.3433620985446986E-01 + 9.3998921030251104E-01 9.4567639604643494E-01 9.5139797381441549E-01 + 9.5715415158476802E-01 9.6294513859351460E-01 9.6877114534198372E-01 + 9.7463238360446880E-01 9.8052906643591864E-01 9.8646140817968886E-01 + 9.9242962447532734E-01 9.9843393226641830E-01 1.0044745498084622E+00 + 1.0105516966768158E+00 1.0166655937746663E+00 1.0228164633410692E+00 + 1.0290045289590191E+00 1.0352300155635830E+00 1.0414931494500714E+00 + 1.0477941582822690E+00 1.0541332711007079E+00 1.0605107183309903E+00 + 1.0669267317921713E+00 1.0733815447051780E+00 1.0798753917012935E+00 + 1.0864085088306801E+00 1.0929811335709652E+00 1.0995935048358674E+00 + 1.1062458629838876E+00 1.1129384498270394E+00 1.1196715086396458E+00 + 1.1264452841671748E+00 1.1332600226351432E+00 1.1401159717580598E+00 + 1.1470133807484368E+00 1.1539525003258415E+00 1.1609335827260161E+00 + 1.1679568817100441E+00 1.1750226525735710E+00 1.1821311521560918E+00 + 1.1892826388502777E+00 1.1964773726113793E+00 1.2037156149666646E+00 + 1.2109976290249362E+00 1.2183236794860857E+00 1.2256940326507242E+00 + 1.2331089564298539E+00 1.2405687203546150E+00 1.2480735955860740E+00 + 1.2556238549250911E+00 1.2632197728222245E+00 1.2708616253877170E+00 + 1.2785496904015283E+00 1.2862842473234286E+00 1.2940655773031651E+00 + 1.3018939631906723E+00 1.3097696895463640E+00 1.3176930426514657E+00 + 1.3256643105184320E+00 1.3336837829014057E+00 1.3417517513067592E+00 + 1.3498685090036828E+00 1.3580343510348523E+00 1.3662495742271463E+00 + 1.3745144772024438E+00 1.3828293603884718E+00 1.3911945260297278E+00 + 1.3996102781984745E+00 1.4080769228057781E+00 1.4165947676126363E+00 + 1.4251641222411715E+00 1.4337852981858723E+00 1.4424586088249247E+00 + 1.4511843694315985E+00 1.4599628971857186E+00 1.4687945111851786E+00 + 1.4776795324575493E+00 1.4866182839717446E+00 1.4956110906497697E+00 + 1.5046582793785186E+00 1.5137601790216644E+00 1.5229171204316103E+00 + 1.5321294364615252E+00 1.5413974619774280E+00 1.5507215338703664E+00 + 1.5601019910686729E+00 1.5695391745502669E+00 1.5790334273550610E+00 + 1.5885850945974240E+00 1.5981945234787380E+00 1.6078620633000023E+00 + 1.6175880654745396E+00 1.6273728835407675E+00 1.6372168731750578E+00 + 1.6471203922046507E+00 1.6570838006206710E+00 1.6671074605912093E+00 + 1.6771917364744984E+00 1.6873369948321393E+00 1.6975436044424352E+00 + 1.7078119363138051E+00 1.7181423636982520E+00 1.7285352621049426E+00 + 1.7389910093138508E+00 1.7495099853895024E+00 1.7600925726947720E+00 + 1.7707391559047936E+00 1.7814501220209378E+00 1.7922258603848917E+00 + 1.8030667626927925E+00 1.8139732230094778E+00 1.8249456377828042E+00 + 1.8359844058580701E+00 1.8470899284924949E+00 1.8582626093698142E+00 + 1.8695028546149635E+00 1.8808110728088208E+00 1.8921876750030715E+00 + 1.9036330747351442E+00 1.9151476880432561E+00 1.9267319334815136E+00 + 1.9383862321351437E+00 1.9501110076357899E+00 1.9619066861769281E+00 + 1.9737736965293367E+00 1.9857124700566939E+00 1.9977234407312552E+00 + 2.0098070451496386E+00 2.0219637225486755E+00 2.0341939148213894E+00 + 2.0464980665330552E+00 2.0588766249373673E+00 2.0713300399926817E+00 + 2.0838587643783790E+00 2.0964632535113319E+00 2.1091439655624353E+00 + 2.1219013614732805E+00 2.1347359049728958E+00 2.1476480625946235E+00 + 2.1606383036930543E+00 2.1737071004611010E+00 2.1868549279471594E+00 + 2.2000822640723867E+00 2.2133895896480555E+00 2.2267773883930428E+00 + 2.2402461469514074E+00 2.2537963549100946E+00 2.2674285048167078E+00 + 2.2811430921974263E+00 2.2949406155750283E+00 2.3088215764869893E+00 + 2.3227864795037272E+00 2.3368358322469365E+00 2.3509701454080560E+00 + 2.3651899327668073E+00 2.3794957112098900E+00 2.3938880007497580E+00 + 2.4083673245435402E+00 2.4229342089120340E+00 2.4375891833588508E+00 + 2.4523327805896562E+00 2.4671655365315512E+00 2.4820879903525266E+00 + 2.4971006844810755E+00 2.5122041646259223E+00 2.5273989797958332E+00 + 2.5426856823195920E+00 2.5580648278660640E+00 2.5735369754644188E+00 + 2.5891026875244165E+00 2.6047625298568757E+00 2.6205170716942274E+00 + 2.6363668857112268E+00 2.6523125480457415E+00 2.6683546383197130E+00 + 2.6844937396602160E+00 2.7007304387206741E+00 2.7170653257021566E+00 + 2.7334989943748496E+00 2.7500320420996327E+00 2.7666650698498092E+00 + 2.7833986822329240E+00 2.8002334875127546E+00 2.8171700976314389E+00 + 2.8342091282316848E+00 2.8513511986791733E+00 2.8685969320850582E+00 + 2.8859469553286394E+00 2.9034018990801189E+00 2.9209623978235442E+00 + 2.9386290898798624E+00 2.9564026174301441E+00 2.9742836265388970E+00 + 2.9922727671775653E+00 3.0103706932481540E+00 3.0285780626070107E+00 + 3.0468955370887136E+00 3.0653237825301409E+00 3.0838634687946915E+00 + 3.1025152697966023E+00 3.1212798635254653E+00 3.1401579320708630E+00 + 3.1591501616471822E+00 3.1782572426185278E+00 3.1974798695238364E+00 + 3.2168187411021130E+00 3.2362745603178529E+00 3.2558480343865583E+00 + 3.2755398748004718E+00 3.2953507973544243E+00 3.3152815221718783E+00 + 3.3353327737310705E+00 3.3555052808913604E+00 3.3757997769197470E+00 + 3.3962169995174842E+00 3.4167576908469193E+00 3.4374225975584602E+00 + 3.4582124708177409E+00 3.4791280663328865E+00 3.5001701443820101E+00 + 3.5213394698408376E+00 3.5426368122105303E+00 3.5640629456456265E+00 + 3.5856186489822002E+00 3.6073047057661611E+00 3.6291219042817637E+00 + 3.6510710375802207E+00 3.6731529035085511E+00 3.6953683047385995E+00 + 3.7177180487961756E+00 3.7402029480904324E+00 3.7628238199433857E+00 + 3.7855814866196482E+00 3.8084767753562807E+00 3.8315105183928861E+00 + 3.8546835530018519E+00 3.8779967215188060E+00 3.9014508713732012E+00 + 3.9250468551191422E+00 3.9487855304663610E+00 3.9726677603114271E+00 + 3.9966944127690693E+00 4.0208663612037494E+00 4.0451844842614362E+00 + 4.0696496659014940E+00 4.0942627954288531E+00 4.1190247675263105E+00 + 4.1439364822870859E+00 4.1689988452474989E+00 4.1942127674199092E+00 + 4.2195791653258192E+00 4.2450989610292167E+00 4.2707730821700567E+00 + 4.2966024619979928E+00 4.3225880394063045E+00 4.3487307589660453E+00 + 4.3750315709603349E+00 4.4014914314189300E+00 4.4281113021529634E+00 + 4.4548921507899388E+00 4.4818349508088504E+00 4.5089406815755959E+00 + 4.5362103283786048E+00 4.5636448824645939E+00 4.5912453410746430E+00 + 4.6190127074804215E+00 4.6469479910206921E+00 4.6750522071379486E+00 + 4.7033263774153635E+00 4.7317715296139040E+00 4.7603886977097236E+00 + 4.7891789219316960E+00 4.8181432487992639E+00 4.8472827311604627E+00 + 4.8765984282302206E+00 4.9060914056288141E+00 4.9357627354206297E+00 + 4.9656134961531526E+00 4.9956447728961297E+00 5.0258576572810361E+00 + 5.0562532475407451E+00 5.0868326485494810E+00 5.1175969718629331E+00 + 5.1485473357586855E+00 5.1796848652768599E+00 5.2110106922610386E+00 + 5.2425259553993575E+00 5.2742318002659303E+00 5.3061293793624724E+00 + 5.3382198521602344E+00 5.3705043851420857E+00 5.4029841518449526E+00 + 5.4356603329024962E+00 5.4685341160879792E+00 5.5016066963574746E+00 + 5.5348792758932790E+00 5.5683530641476624E+00 5.6020292778867606E+00 + 5.6359091412348539E+00 5.6699938857188341E+00 5.7042847503130165E+00 + 5.7387829814841194E+00 5.7734898332366029E+00 5.8084065671582392E+00 + 5.8435344524660113E+00 5.8788747660521867E+00 5.9144287925307681E+00 + 5.9501978242841789E+00 5.9861831615102732E+00 6.0223861122695377E+00 + 6.0588079925326745E+00 6.0954501262284637E+00 6.1323138452918249E+00 + 6.1694004897122783E+00 6.2067114075826275E+00 6.2442479551480119E+00 + 6.2820114968551337E+00 6.3200034054019012E+00 6.3582250617873086E+00 + 6.3966778553616708E+00 6.4353631838770688E+00 6.4742824535381969E+00 + 6.5134370790534541E+00 6.5528284836864179E+00 6.5924580993075104E+00 + 6.6323273664460780E+00 6.6724377343427932E+00 6.7127906610022610E+00 + 6.7533876132460655E+00 6.7942300667660653E+00 6.8353195061780818E+00 + 6.8766574250757921E+00 6.9182453260850707E+00 6.9600847209185837E+00 + 7.0021771304307894E+00 7.0445240846731476E+00 7.0871271229497825E+00 + 7.1299877938734184E+00 7.1731076554217141E+00 7.2164882749938251E+00 + 7.2601312294674107E+00 7.3040381052559988E+00 7.3482104983665684E+00 + 7.3926500144576179E+00 7.4373582688975048E+00 7.4823368868232167E+00 + 7.5275875031993671E+00 7.5731117628776738E+00 7.6189113206567294E+00 + 7.6649878413421986E+00 7.7113429998072620E+00 7.7579784810535442E+00 + 7.8048959802723363E+00 7.8520972029062790E+00 7.8995838647112597E+00 + 7.9473576918188300E+00 7.9954204207989950E+00 8.0437737987232421E+00 + 8.0924195832281107E+00 8.1413595425790568E+00 8.1905954557347762E+00 + 8.2401291124117915E+00 8.2899623131495623E+00 8.3400968693759072E+00 + 8.3905346034729043E+00 8.4412773488430499E+00 8.4923269499759577E+00 + 8.5436852625153801E+00 8.5953541533267170E+00 8.6473355005647896E+00 + 8.6996311937421495E+00 8.7522431337978155E+00 8.8051732331662720E+00 + 8.8584234158470618E+00 8.9119956174746751E+00 8.9658917853889779E+00 + 9.0201138787059154E+00 9.0746638683887628E+00 9.1295437373197679E+00 + 9.1847554803722673E+00 9.2403011044831196E+00 9.2961826287257114E+00 + 9.3524020843833231E+00 9.4089615150230355E+00 9.4658629765698983E+00 + 9.5231085373817486E+00 9.5807002783243504E+00 9.6386402928471000E+00 + 9.6969306870590302E+00 9.7555735798054055E+00 9.8145711027448073E+00 + 9.8739254004265007E+00 9.9336386303684741E+00 9.9937129631358115E+00 + 1.0054150582419679E+01 1.0114953685116589E+01 1.0176124481408323E+01 + 1.0237665194842243E+01 1.0299578062412184E+01 1.0361865334639671E+01 + 1.0424529275655775E+01 1.0487572163283399E+01 1.0550996289120146E+01 + 1.0614803958621492E+01 1.0678997491184665E+01 1.0743579220232998E+01 + 1.0808551493300643E+01 1.0873916672117970E+01 1.0939677132697385E+01 + 1.1005835265419776E+01 1.1072393475121277E+01 1.1139354181180774E+01 + 1.1206719817607796E+01 1.1274492833131083E+01 1.1342675691287466E+01 + 1.1411270870511512E+01 1.1480280864225550E+01 1.1549708180930411E+01 + 1.1619555344296478E+01 1.1689824893255482E+01 1.1760519382092861E+01 + 1.1831641380540471E+01 1.1903193473870093E+01 1.1975178262987354E+01 + 1.2047598364526356E+01 1.2120456410944675E+01 1.2193755050619112E+01 + 1.2267496947941941E+01 1.2341684783417833E+01 1.2416321253761165E+01 + 1.2491409071994134E+01 1.2566950967545326E+01 1.2642949686349022E+01 + 1.2719407990944884E+01 1.2796328660578451E+01 1.2873714491302128E+01 + 1.2951568296076905E+01 1.3029892904874485E+01 1.3108691164780202E+01 + 1.3187965940096595E+01 1.3267720112447385E+01 1.3347956580882309E+01 + 1.3428678261982459E+01 1.3509888089966383E+01 1.3591589016796618E+01 + 1.3673784012287074E+01 1.3756476064210943E+01 1.3839668178409402E+01 + 1.3923363378900731E+01 1.4007564707990328E+01 1.4092275226381245E+01 + 1.4177498013285556E+01 1.4263236166536119E+01 1.4349492802699270E+01 + 1.4436271057188186E+01 1.4523574084376689E+01 1.4611405057714027E+01 + 1.4699767169840166E+01 1.4788663632701949E+01 1.4878097677669697E+01 + 1.4968072555654761E+01 1.5058591537227656E+01 1.5149657912737041E+01 + 1.5241274992429164E+01 1.5333446106568301E+01 1.5426174605557749E+01 + 1.5519463860061725E+01 1.5613317261127731E+01 1.5707738220309889E+01 + 1.5802730169793035E+01 1.5898296562517329E+01 1.5994440872303853E+01 + 1.6091166593980851E+01 1.6188477243510867E+01 1.6286376358118375E+01 + 1.6384867496418483E+01 1.6483954238546225E+01 1.6583640186286807E+01 + 1.6683928963206370E+01 1.6784824214783811E+01 1.6886329608543246E+01 + 1.6988448834187437E+01 1.7091185603731731E+01 1.7194543651639083E+01 + 1.7298526734955903E+01 1.7403138633448428E+01 1.7508383149740244E+01 + 1.7614264109450446E+01 1.7720785361332830E+01 1.7827950777415605E+01 + 1.7935764253142256E+01 1.8044229707513090E+01 1.8153351083227818E+01 + 1.8263132346828680E+01 1.8373577488844738E+01 1.8484690523936898E+01 + 1.8596475491043954E+01 1.8708936453529208E+01 1.8822077499328259E+01 + 1.8935902741097731E+01 1.9050416316364537E+01 1.9165622387676414E+01 + 1.9281525142753193E+01 1.9398128794639113E+01 1.9515437581855799E+01 + 1.9633455768556445E+01 1.9752187644680745E+01 1.9871637526111002E+01 + 1.9991809754828747E+01 2.0112708699072769E+01 2.0234338753497777E+01 + 2.0356704339334325E+01 2.0479809904549281E+01 2.0603659924007673E+01 + 2.0728258899635271E+01 2.0853611360582367E+01 2.0979721863388207E+01 + 2.1106594992146718E+01 2.1234235358673253E+01 2.1362647602672013E+01 + 2.1491836391904830E+01 2.1621806422360788E+01 2.1752562418427061E+01 + 2.1884109133060416E+01 2.2016451347960132E+01 2.2149593873741740E+01 + 2.2283541550112044E+01 2.2418299246044811E+01 2.2553871859957912E+01 + 2.2690264319891302E+01 2.2827481583686300E+01 2.2965528639165587E+01 + 2.3104410504314615E+01 2.3244132227464142E+01 2.3384698887473487E+01 + 2.3526115593915314E+01 2.3668387487261278E+01 2.3811519739069048E+01 + 2.3955517552170051E+01 2.4100386160858733E+01 2.4246130831082777E+01 + 2.4392756860634670E+01 2.4540269579344010E+01 2.4688674349271448E+01 + 2.4837976564903471E+01 2.4988181653348708E+01 2.5139295074534896E+01 + 2.5291322321407527E+01 2.5444268920129602E+01 2.5598140430282278E+01 + 2.5752942445067116E+01 2.5908680591509299E+01 2.6065360530662375E+01 + 2.6222987957813739E+01 2.6381568602691857E+01 2.6541108229674435E+01 + 2.6701612637998146E+01 2.6863087661969157E+01 2.7025539171175371E+01 + 2.7188973070699721E+01 2.7353395301334981E+01 2.7518811839799440E+01 + 2.7685228698954354E+01 2.7852651928022400E+01 2.8021087612807762E+01 + 2.8190541875917067E+01 2.8361020876982074E+01 2.8532530812883731E+01 + 2.8705077917977139E+01 2.8878668464318348E+01 2.9053308761892268E+01 + 2.9229005158842227E+01 2.9405764041700415E+01 2.9583591835620258E+01 + 2.9762495004609832E+01 2.9942480051767081E+01 3.0123553519515855E+01 + 3.0305721989843953E+01 3.0488992084542261E+01 3.0673370465445675E+01 + 3.0858863834674942E+01 3.1045478934880414E+01 3.1233222549487341E+01 + 3.1422101502942088E+01 3.1612122660960463E+01 3.1803292930777111E+01 + 3.1995619261396886E+01 3.2189108643847042E+01 3.2383768111431642E+01 + 3.2579604739987062E+01 3.2776625648139436E+01 3.2974837997563071E+01 + 3.3174248993241022E+01 3.3374865883726841E+01 3.3576695961408333E+01 + 3.3779746562772253E+01 3.3984025068671166E+01 3.4189538904591927E+01 + 3.4396295540925237E+01 3.4604302493237419E+01 3.4813567322543506E+01 + 3.5024097635582315E+01 3.5235901085092578E+01 3.5448985370091364E+01 + 3.5663358236153819E+01 3.5879027475694983E+01 3.6096000928252636E+01 + 3.6314286480772530E+01 3.6533892067894932E+01 3.6754825672243349E+01 + 3.6977095324714277E+01 3.7200709104769288E+01 3.7425675140728984E+01 + 3.7652001610068012E+01 3.7879696739712578E+01 3.8108768806339398E+01 + 3.8339226136676793E+01 3.8571077107806950E+01 3.8804330147470743E+01 + 3.9038993734373889E+01 3.9275076398495472E+01 3.9512586721397554E+01 + 3.9751533336537392E+01 3.9991924929581174E+01 4.0233770238719956E+01 + 4.0477078054986890E+01 4.0721857222577036E+01 4.0968116639168983E+01 + 4.1215865256247909E+01 4.1465112079431229E+01 4.1715866168795806E+01 + 4.1968136639207579E+01 4.2221932660652428E+01 4.2477263458569823E+01 + 4.2734138314188016E+01 4.2992566564861676E+01 4.3252557604410910E+01 + 4.3514120883462951E+01 4.3777265909795616E+01 4.4042002248683168E+01 + 4.4308339523243546E+01 4.4576287414788510E+01 4.4845855663175357E+01 + 4.5117054067161327E+01 4.5389892484759251E+01 4.5664380833596169E+01 + 4.5940529091274087E+01 4.6218347295732130E+01 4.6497845545611767E+01 + 4.6779034000623746E+01 4.7061922881917702E+01 4.7346522472453216E+01 + 4.7632843117373916E+01 4.7920895224383372E+01 4.8210689264123729E+01 + 4.8502235770555828E+01 4.8795545341342446E+01 4.9090628638233326E+01 + 4.9387496387453098E+01 4.9686159380090672E+01 4.9986628472491702E+01 + 5.0288914586653533E+01 5.0593028710621638E+01 5.0898981898889403E+01 + 5.1206785272799792E+01 5.1516450020949947E+01 5.1827987399597347E+01 + 5.2141408733069369E+01 5.2456725414174677E+01 5.2773948904617789E+01 + 5.3093090735415089E+01 5.3414162507314416E+01 5.3737175891216481E+01 + 5.4062142628599567E+01 5.4389074531945674E+01 5.4717983485170272E+01 + 5.5048881444054494E+01 5.5381780436679193E+01 5.5716692563862537E+01 + 5.6053629999599664E+01 5.6392604991505607E+01 5.6733629861259899E+01 + 5.7076717005054867E+01 5.7421878894046031E+01 5.7769128074805813E+01 + 5.8118477169779027E+01 5.8469938877742067E+01 5.8823525974264335E+01 + 5.9179251312173037E+01 5.9537127822019762E+01 5.9897168512550898E+01 + 6.0259386471180306E+01 6.0623794864465474E+01 6.0990406938585480E+01 + 6.1359236019822767E+01 6.1730295515047949E+01 6.2103598912206458E+01 + 6.2479159780809233E+01 6.2856991772425822E+01 6.3237108621180965E+01 + 6.3619524144253255E+01 6.4004252242377774E+01 6.4391306900351182E+01 + 6.4780702187540527E+01 6.5172452258393903E+01 6.5566571352955563E+01 + 6.5963073797383132E+01 6.6361974004469019E+01 6.6763286474163465E+01 + 6.7167025794102031E+01 6.7573206640136164E+01 6.7981843776866071E+01 + 6.8392952058177698E+01 6.8806546427782635E+01 6.9222641919761628E+01 + 6.9641253659110390E+01 7.0062396862289958E+01 7.0486086837779439E+01 + 7.0912338986633046E+01 7.1341168803039167E+01 7.1772591874884043E+01 + 7.2206623884318176E+01 7.2643280608326847E+01 7.3082577919302850E+01 + 7.3524531785623864E+01 7.3969158272233202E+01 7.4416473541223127E+01 + 7.4866493852422735E+01 7.5319235563988798E+01 7.5774715133000896E+01 + 7.6232949116058833E+01 7.6693954169885018E+01 7.7157747051929618E+01 + 7.7624344620980253E+01 7.8093763837774034E+01 7.8566021765614579E+01 + 7.9041135570991969E+01 7.9519122524207390E+01 7.9999999999999986E+01 + + + 2.7961314611591802E-06 2.8130404605844411E-06 2.8300517135215752E-06 + 2.8471658383265502E-06 2.8643834570947060E-06 2.8817051956833711E-06 + 2.8991316837346090E-06 2.9166635546981090E-06 2.9343014458542078E-06 + 2.9520459983370590E-06 2.9698978571579355E-06 2.9878576712286765E-06 + 3.0059260933852733E-06 3.0241037804116044E-06 3.0423913930633037E-06 + 3.0607895960917827E-06 3.0792990582683947E-06 3.0979204524087405E-06 + 3.1166544553971291E-06 3.1355017482111804E-06 3.1544630159465773E-06 + 3.1735389478419737E-06 3.1927302373040423E-06 3.2120375819326843E-06 + 3.2314616835463823E-06 3.2510032482077185E-06 3.2706629862490324E-06 + 3.2904416122982454E-06 3.3103398453048365E-06 3.3303584085659766E-06 + 3.3504980297528174E-06 3.3707594409369474E-06 3.3911433786169966E-06 + 3.4116505837454139E-06 3.4322818017553951E-06 3.4530377825879826E-06 + 3.4739192807193257E-06 3.4949270551881033E-06 3.5160618696231170E-06 + 3.5373244922710496E-06 3.5587156960243866E-06 3.5802362584495158E-06 + 3.6018869618149874E-06 3.6236685931199534E-06 3.6455819441227702E-06 + 3.6676278113697841E-06 3.6898069962242805E-06 3.7121203048956166E-06 + 3.7345685484685274E-06 3.7571525429326042E-06 3.7798731092119621E-06 + 3.8027310731950742E-06 3.8257272657647977E-06 3.8488625228285709E-06 + 3.8721376853488039E-06 3.8955535993734436E-06 3.9191111160667297E-06 + 3.9428110917401309E-06 3.9666543878834777E-06 3.9906418711962697E-06 + 4.0147744136191882E-06 4.0390528923657834E-06 4.0634781899543653E-06 + 4.0880511942400844E-06 4.1127727984472008E-06 4.1376439012015548E-06 + 4.1626654065632329E-06 4.1878382240594284E-06 4.2131632687175037E-06 + 4.2386414610982515E-06 4.2642737273293553E-06 4.2900609991390552E-06 + 4.3160042138900188E-06 4.3421043146134065E-06 4.3683622500431602E-06 + 4.3947789746504823E-06 4.4213554486785334E-06 4.4480926381773369E-06 + 4.4749915150388951E-06 4.5020530570325141E-06 4.5292782478403519E-06 + 4.5566680770931686E-06 4.5842235404063034E-06 4.6119456394158617E-06 + 4.6398353818151298E-06 4.6678937813911971E-06 4.6961218580618123E-06 + 4.7245206379124574E-06 4.7530911532336420E-06 4.7818344425584309E-06 + 4.8107515507001883E-06 4.8398435287905673E-06 4.8691114343177079E-06 + 4.8985563311646819E-06 4.9281792896481617E-06 4.9579813865573314E-06 + 4.9879637051930213E-06 5.0181273354070908E-06 5.0484733736420416E-06 + 5.0790029229708728E-06 5.1097170931371817E-06 5.1406170005954974E-06 + 5.1717037685518649E-06 5.2029785270046770E-06 5.2344424127857462E-06 + 5.2660965696016289E-06 5.2979421480751993E-06 5.3299803057874728E-06 + 5.3622122073196872E-06 5.3946390242956349E-06 5.4272619354242443E-06 + 5.4600821265424342E-06 5.4931007906582154E-06 5.5263191279940545E-06 + 5.5597383460305062E-06 5.5933596595500996E-06 5.6271842906814978E-06 + 5.6612134689439270E-06 5.6954484312918585E-06 5.7298904221599818E-06 + 5.7645406935084338E-06 5.7994005048683121E-06 5.8344711233874508E-06 + 5.8697538238764911E-06 5.9052498888552097E-06 5.9409606085991519E-06 + 5.9768872811865186E-06 6.0130312125453588E-06 6.0493937165010409E-06 + 6.0859761148240032E-06 6.1227797372778087E-06 6.1598059216674743E-06 + 6.1970560138881080E-06 6.2345313679738229E-06 6.2722333461469571E-06 + 6.3101633188676009E-06 6.3483226648833994E-06 6.3867127712796793E-06 + 6.4253350335298602E-06 6.4641908555461917E-06 6.5032816497307733E-06 + 6.5426088370269022E-06 6.5821738469707223E-06 6.6219781177431914E-06 + 6.6620230962223468E-06 6.7023102380359145E-06 6.7428410076142110E-06 + 6.7836168782433790E-06 6.8246393321189410E-06 6.8659098603996720E-06 + 6.9074299632618099E-06 6.9492011499535839E-06 6.9912249388500743E-06 + 7.0335028575084054E-06 7.0760364427232708E-06 7.1188272405827985E-06 + 7.1618768065247546E-06 7.2051867053930669E-06 7.2487585114947307E-06 + 7.2925938086570137E-06 7.3366941902850358E-06 7.3810612594196961E-06 + 7.4256966287959280E-06 7.4706019209013348E-06 7.5157787680351622E-06 + 7.5612288123676305E-06 7.6069537059996296E-06 7.6529551110227714E-06 + 7.6992346995798073E-06 7.7457941539254105E-06 7.7926351664873222E-06 + 7.8397594399278778E-06 7.8871686872058875E-06 7.9348646316389188E-06 + 7.9828490069659226E-06 8.0311235574102611E-06 8.0796900377431114E-06 + 8.1285502133472472E-06 8.1777058602812117E-06 8.2271587653438818E-06 + 8.2769107261394069E-06 8.3269635511425655E-06 8.3773190597644905E-06 + 8.4279790824188118E-06 8.4789454605881877E-06 8.5302200468912474E-06 + 8.5818047051499250E-06 8.6337013104572173E-06 8.6859117492453392E-06 + 8.7384379193542962E-06 8.7912817301008719E-06 8.8444451023480254E-06 + 8.8979299685747223E-06 8.9517382729461706E-06 9.0058719713845061E-06 + 9.0603330316398728E-06 9.1151234333619575E-06 9.1702451681719513E-06 + 9.2257002397349444E-06 9.2814906638327567E-06 9.3376184684372120E-06 + 9.3940856937838545E-06 9.4508943924461090E-06 9.5080466294098986E-06 + 9.5655444821486928E-06 9.6233900406990431E-06 9.6815854077365374E-06 + 9.7401326986522390E-06 9.7990340416295808E-06 9.8582915777217275E-06 + 9.9179074609293949E-06 9.9778838582791544E-06 1.0038222949902199E-05 + 1.0098926929113594E-05 1.0159998002492004E-05 1.0221438389959899E-05 + 1.0283250324864247E-05 1.0345436054057700E-05 1.0407997837980268E-05 + 1.0470937950741479E-05 1.0534258680203041E-05 1.0597962328062024E-05 + 1.0662051209934497E-05 1.0726527655439724E-05 1.0791394008284839E-05 + 1.0856652626350030E-05 1.0922305881774262E-05 1.0988356161041488E-05 + 1.1054805865067417E-05 1.1121657409286762E-05 1.1188913223741072E-05 + 1.1256575753167033E-05 1.1324647457085343E-05 1.1393130809890134E-05 + 1.1462028300938890E-05 1.1531342434642943E-05 1.1601075730558517E-05 + 1.1671230723478306E-05 1.1741809963523611E-05 1.1812816016237039E-05 + 1.1884251462675762E-05 1.1956118899505334E-05 1.2028420939094088E-05 + 1.2101160209608077E-05 1.2174339355106631E-05 1.2247961035638447E-05 + 1.2322027927338300E-05 1.2396542722524302E-05 1.2471508129795779E-05 + 1.2546926874131723E-05 1.2622801696989849E-05 1.2699135356406240E-05 + 1.2775930627095609E-05 1.2853190300552155E-05 1.2930917185151031E-05 + 1.3009114106250431E-05 1.3087783906294293E-05 1.3166929444915616E-05 + 1.3246553599040412E-05 1.3326659262992278E-05 1.3407249348597612E-05 + 1.3488326785291440E-05 1.3569894520223930E-05 1.3651955518367485E-05 + 1.3734512762624542E-05 1.3817569253936000E-05 1.3901128011390289E-05 + 1.3985192072333128E-05 1.4069764492477924E-05 1.4154848346016855E-05 + 1.4240446725732606E-05 1.4326562743110789E-05 1.4413199528453063E-05 + 1.4500360230990899E-05 1.4588048019000070E-05 1.4676266079915809E-05 + 1.4765017620448667E-05 1.4854305866701088E-05 1.4944134064284679E-05 + 1.5034505478438166E-05 1.5125423394146108E-05 1.5216891116258291E-05 + 1.5308911969609872E-05 1.5401489299142223E-05 1.5494626470024522E-05 + 1.5588326867776085E-05 1.5682593898389421E-05 1.5777430988454037E-05 + 1.5872841585281007E-05 1.5968829157028265E-05 1.6065397192826673E-05 + 1.6162549202906872E-05 1.6260288718726851E-05 1.6358619293100323E-05 + 1.6457544500325885E-05 1.6557067936316929E-05 1.6657193218732345E-05 + 1.6757923987108036E-05 1.6859263902989209E-05 1.6961216650063475E-05 + 1.7063785934294749E-05 1.7166975484057959E-05 1.7270789050274577E-05 + 1.7375230406548945E-05 1.7480303349305475E-05 1.7586011697926628E-05 + 1.7692359294891757E-05 1.7799350005916773E-05 1.7906987720094663E-05 + 1.8015276350036871E-05 1.8124219832015504E-05 1.8233822126106426E-05 + 1.8344087216333205E-05 1.8455019110811917E-05 1.8566621841896858E-05 + 1.8678899466327120E-05 1.8791856065374035E-05 1.8905495744989553E-05 + 1.9019822635955465E-05 1.9134840894033577E-05 1.9250554700116766E-05 + 1.9366968260380945E-05 1.9484085806437979E-05 1.9601911595489471E-05 + 1.9720449910481552E-05 1.9839705060260515E-05 1.9959681379729494E-05 + 2.0080383230005988E-05 2.0201814998580428E-05 2.0323981099475629E-05 + 2.0446885973407266E-05 2.0570534087945268E-05 2.0694929937676227E-05 + 2.0820078044366787E-05 2.0945982957127986E-05 2.1072649252580620E-05 + 2.1200081535021624E-05 2.1328284436591406E-05 2.1457262617442253E-05 + 2.1587020765907703E-05 2.1717563598672976E-05 2.1848895860946439E-05 + 2.1981022326632054E-05 2.2113947798502961E-05 2.2247677108376003E-05 + 2.2382215117287414E-05 2.2517566715669484E-05 2.2653736823528320E-05 + 2.2790730390622709E-05 2.2928552396644043E-05 2.3067207851397299E-05 + 2.3206701794983185E-05 2.3347039297981307E-05 2.3488225461634520E-05 + 2.3630265418034325E-05 2.3773164330307450E-05 2.3916927392803498E-05 + 2.4061559831283794E-05 2.4207066903111303E-05 2.4353453897441777E-05 + 2.4500726135415972E-05 2.4648888970353078E-05 2.4797947787945386E-05 + 2.4947908006453921E-05 2.5098775076905502E-05 2.5250554483290856E-05 + 2.5403251742763944E-05 2.5556872405842524E-05 2.5711422056609912E-05 + 2.5866906312917953E-05 2.6023330826591244E-05 2.6180701283632551E-05 + 2.6339023404429531E-05 2.6498302943962629E-05 2.6658545692014285E-05 + 2.6819757473379419E-05 2.6981944148077101E-05 2.7145111611563641E-05 + 2.7309265794946808E-05 2.7474412665201477E-05 2.7640558225386508E-05 + 2.7807708514862956E-05 2.7975869609513605E-05 2.8145047621963822E-05 + 2.8315248701803766E-05 2.8486479035811891E-05 2.8658744848179868E-05 + 2.8832052400738816E-05 2.9006407993186920E-05 2.9181817963318417E-05 + 2.9358288687254009E-05 2.9535826579672561E-05 2.9714438094044366E-05 + 2.9894129722865647E-05 3.0074907997894623E-05 3.0256779490388878E-05 + 3.0439750811344274E-05 3.0623828611735224E-05 3.0809019582756467E-05 + 3.0995330456066303E-05 3.1182768004031275E-05 3.1371339039972355E-05 + 3.1561050418412566E-05 3.1751909035326208E-05 3.1943921828389483E-05 + 3.2137095777232683E-05 3.2331437903693903E-05 3.2526955272074273E-05 + 3.2723654989394765E-05 3.2921544205654551E-05 3.3120630114090823E-05 + 3.3320919951440343E-05 3.3522420998202454E-05 3.3725140578903783E-05 + 3.3929086062364395E-05 3.4134264861965716E-05 3.4340684435920015E-05 + 3.4548352287541453E-05 3.4757275965518869E-05 3.4967463064190168E-05 + 3.5178921223818367E-05 3.5391658130869315E-05 3.5605681518291097E-05 + 3.5820999165795124E-05 3.6037618900138950E-05 3.6255548595410701E-05 + 3.6474796173315410E-05 3.6695369603462873E-05 3.6917276903657351E-05 + 3.7140526140189088E-05 3.7365125428127424E-05 3.7591082931615866E-05 + 3.7818406864168776E-05 3.8047105488969993E-05 3.8277187119173149E-05 + 3.8508660118203885E-05 3.8741532900063833E-05 3.8975813929636511E-05 + 3.9211511722994939E-05 3.9448634847711278E-05 3.9687191923168209E-05 + 3.9927191620872286E-05 4.0168642664769097E-05 4.0411553831560416E-05 + 4.0655933951023211E-05 4.0901791906330618E-05 4.1149136634374823E-05 + 4.1397977126091970E-05 4.1648322426788907E-05 4.1900181636472026E-05 + 4.2153563910178035E-05 4.2408478458306765E-05 4.2664934546955905E-05 + 4.2922941498257903E-05 4.3182508690718753E-05 4.3443645559558959E-05 + 4.3706361597056454E-05 4.3970666352891655E-05 4.4236569434494682E-05 + 4.4504080507394411E-05 4.4773209295569963E-05 4.5043965581804097E-05 + 4.5316359208038847E-05 4.5590400075733233E-05 4.5866098146223229E-05 + 4.6143463441083851E-05 4.6422506042493361E-05 4.6703236093599853E-05 + 4.6985663798889904E-05 4.7269799424559513E-05 4.7555653298887265E-05 + 4.7843235812609784E-05 4.8132557419299418E-05 4.8423628635744243E-05 + 4.8716460042330327E-05 4.9011062283426323E-05 4.9307446067770395E-05 + 4.9605622168859493E-05 4.9905601425340957E-05 5.0207394741406495E-05 + 5.0511013087188544E-05 5.0816467499159050E-05 5.1123769080530636E-05 + 5.1432929001660204E-05 5.1743958500454953E-05 5.2056868882780894E-05 + 5.2371671522873824E-05 5.2688377863752774E-05 5.3006999417635937E-05 + 5.3327547766359126E-05 5.3650034561796895E-05 5.3974471526285880E-05 + 5.4300870453051081E-05 5.4629243206634405E-05 5.4959601723326066E-05 + 5.5291958011598358E-05 5.5626324152542284E-05 5.5962712300306544E-05 + 5.6301134682539469E-05 5.6641603600833441E-05 5.6984131431172039E-05 + 5.7328730624379930E-05 5.7675413706575480E-05 5.8024193279625979E-05 + 5.8375082021605791E-05 5.8728092687257294E-05 5.9083238108454276E-05 + 5.9440531194668547E-05 5.9799984933439191E-05 6.0161612390844552E-05 + 6.0525426711977297E-05 6.0891441121422210E-05 6.1259668923736827E-05 + 6.1630123503935192E-05 6.2002818327974265E-05 6.2377766943243454E-05 + 6.2754982979057122E-05 6.3134480147149940E-05 6.3516272242175302E-05 + 6.3900373142206812E-05 6.4286796809242706E-05 6.4675557289713319E-05 + 6.5066668714991885E-05 6.5460145301907916E-05 6.5856001353264168E-05 + 6.6254251258356494E-05 6.6654909493496915E-05 6.7057990622539800E-05 + 6.7463509297411266E-05 6.7871480258641776E-05 6.8281918335902012E-05 + 6.8694838448541787E-05 6.9110255606132513E-05 6.9528184909012746E-05 + 6.9948641548837019E-05 7.0371640809128153E-05 7.0797198065832676E-05 + 7.1225328787879975E-05 7.1656048537744306E-05 7.2089372972010678E-05 + 7.2525317841943873E-05 7.2963898994061064E-05 7.3405132370707771E-05 + 7.3849034010637436E-05 7.4295620049594371E-05 7.4744906720900308E-05 + 7.5196910356044457E-05 7.5651647385277206E-05 7.6109134338207306E-05 + 7.6569387844402731E-05 7.7032424633995179E-05 7.7498261538288187E-05 + 7.7966915490368957E-05 7.8438403525723832E-05 7.8912742782857688E-05 + 7.9389950503916672E-05 7.9870044035315128E-05 8.0353040828366073E-05 + 8.0838958439915528E-05 8.1327814532980821E-05 8.1819626877392495E-05 + 8.2314413350440273E-05 8.2812191937522970E-05 8.3312980732802171E-05 + 8.3816797939859991E-05 8.4323661872360778E-05 8.4833590954716767E-05 + 8.5346603722757895E-05 8.5862718824405407E-05 8.6381955020349978E-05 + 8.6904331184733358E-05 8.7429866305834624E-05 8.7958579486760349E-05 + 8.8490489946139040E-05 8.9025617018819686E-05 8.9563980156574525E-05 + 9.0105598928806268E-05 9.0650493023259311E-05 9.1198682246735401E-05 + 9.1750186525813655E-05 9.2305025907574837E-05 9.2863220560330113E-05 + 9.3424790774354166E-05 9.3989756962622626E-05 9.4558139661554306E-05 + 9.5129959531757398E-05 9.5705237358780857E-05 9.6283994053869586E-05 + 9.6866250654724723E-05 9.7452028326268443E-05 9.8041348361413099E-05 + 9.8634232181835340E-05 9.9230701338754850E-05 9.9830777513717537E-05 + 1.0043448251938385E-04 1.0104183830032148E-04 1.0165286693380324E-04 + 1.0226759063060940E-04 1.0288603173583514E-04 1.0350821272970282E-04 + 1.0413415622837887E-04 1.0476388498479640E-04 1.0539742188948172E-04 + 1.0603478997138672E-04 1.0667601239872587E-04 1.0732111247981840E-04 + 1.0797011366393559E-04 1.0862303954215305E-04 1.0927991384820836E-04 + 1.0994076045936371E-04 1.1060560339727389E-04 1.1127446682885940E-04 + 1.1194737506718500E-04 1.1262435257234340E-04 1.1330542395234449E-04 + 1.1399061396400972E-04 1.1467994751387203E-04 1.1537344965908126E-04 + 1.1607114560831499E-04 1.1677306072269475E-04 1.1747922051670795E-04 + 1.1818965065913538E-04 1.1890437697398417E-04 1.1962342544142661E-04 + 1.2034682219874442E-04 1.2107459354127883E-04 1.2180676592338654E-04 + 1.2254336595940112E-04 1.2328442042460074E-04 1.2402995625618107E-04 + 1.2478000055423470E-04 1.2553458058273627E-04 1.2629372377053320E-04 + 1.2705745771234321E-04 1.2782581016975681E-04 1.2859880907224684E-04 + 1.2937648251818359E-04 1.3015885877585618E-04 1.3094596628449999E-04 + 1.3173783365533057E-04 1.3253448967258367E-04 1.3333596329456136E-04 + 1.3414228365468477E-04 1.3495348006255323E-04 1.3576958200500934E-04 + 1.3659061914721111E-04 1.3741662133371014E-04 1.3824761858953651E-04 + 1.3908364112129011E-04 1.3992471931823866E-04 1.4077088375342262E-04 + 1.4162216518476609E-04 1.4247859455619510E-04 1.4334020299876235E-04 + 1.4420702183177891E-04 1.4507908256395255E-04 1.4595641689453307E-04 + 1.4683905671446473E-04 1.4772703410754530E-04 1.4862038135159242E-04 + 1.4951913091961678E-04 1.5042331548100260E-04 1.5133296790269512E-04 + 1.5224812125039534E-04 1.5316880878976180E-04 1.5409506398762022E-04 + 1.5502692051317922E-04 1.5596441223925524E-04 1.5690757324350260E-04 + 1.5785643780965347E-04 1.5881104042876298E-04 1.5977141580046384E-04 + 1.6073759883422685E-04 1.6170962465063062E-04 1.6268752858263793E-04 + 1.6367134617687948E-04 1.6466111319494715E-04 1.6565686561469275E-04 + 1.6665863963153684E-04 1.6766647165978343E-04 1.6868039833394479E-04 + 1.6970045651007175E-04 1.7072668326709479E-04 1.7175911590817063E-04 + 1.7279779196203928E-04 1.7384274918438711E-04 1.7489402555922041E-04 + 1.7595165930024497E-04 1.7701568885225606E-04 1.7808615289253559E-04 + 1.7916309033225747E-04 1.8024654031790317E-04 1.8133654223268330E-04 + 1.8243313569797065E-04 1.8353636057473894E-04 1.8464625696501321E-04 + 1.8576286521332618E-04 1.8688622590818600E-04 1.8801637988355042E-04 + 1.8915336822031222E-04 1.9029723224779153E-04 1.9144801354523916E-04 + 1.9260575394334679E-04 1.9377049552576868E-04 1.9494228063065040E-04 + 1.9612115185216870E-04 1.9730715204207942E-04 1.9850032431127450E-04 + 1.9970071203135052E-04 2.0090835883618358E-04 2.0212330862351692E-04 + 2.0334560555655519E-04 2.0457529406557107E-04 2.0581241884951924E-04 + 2.0705702487766199E-04 2.0830915739120302E-04 2.0956886190493299E-04 + 2.1083618420888287E-04 2.1211117036998935E-04 2.1339386673376848E-04 + 2.1468431992600139E-04 2.1598257685442781E-04 2.1728868471045245E-04 + 2.1860269097085974E-04 2.1992464339953924E-04 2.2125459004922293E-04 + 2.2259257926323053E-04 2.2393865967722839E-04 2.2529288022099568E-04 + 2.2665529012020448E-04 2.2802593889820782E-04 2.2940487637784131E-04 + 2.3079215268323241E-04 2.3218781824162424E-04 2.3359192378520711E-04 + 2.3500452035296376E-04 2.3642565929252361E-04 2.3785539226203018E-04 + 2.3929377123201858E-04 2.4074084848730364E-04 2.4219667662888223E-04 + 2.4366130857584364E-04 2.4513479756729453E-04 2.4661719716429284E-04 + 2.4810856125179610E-04 2.4960894404061864E-04 2.5111840006940403E-04 + 2.5263698420660531E-04 2.5416475165248155E-04 2.5570175794110267E-04 + 2.5724805894236972E-04 2.5880371086404384E-04 2.6036877025379117E-04 + 2.6194329400123774E-04 2.6352733934003643E-04 2.6512096384994922E-04 + 2.6672422545893828E-04 2.6833718244527363E-04 2.6995989343964937E-04 + 2.7159241742731713E-04 2.7323481375022803E-04 2.7488714210919184E-04 + 2.7654946256604499E-04 2.7822183554583591E-04 2.7990432183901928E-04 + 2.8159698260366820E-04 2.8329987936769453E-04 2.8501307403108826E-04 + 2.8673662886816490E-04 2.8847060652983128E-04 2.9021507004586204E-04 + 2.9197008282718989E-04 2.9373570866821243E-04 2.9551201174910906E-04 + 2.9729905663817598E-04 2.9909690829417116E-04 3.0090563206867753E-04 + 3.0272529370847654E-04 3.0455595935794028E-04 3.0639769556143335E-04 + 3.0825056926573415E-04 3.1011464782246603E-04 3.1198999899054793E-04 + 3.1387669093865502E-04 3.1577479224769887E-04 3.1768437191331811E-04 + 3.1960549934838847E-04 3.2153824438554496E-04 3.2348267727971949E-04 + 3.2543886871069658E-04 3.2740688978568033E-04 3.2938681204188136E-04 + 3.3137870744911493E-04 3.3338264841241942E-04 3.3539870777468564E-04 + 3.3742695881930742E-04 3.3946747527284260E-04 3.4152033130769585E-04 + 3.4358560154481210E-04 3.4566336105639134E-04 3.4775368536861550E-04 + 3.4985665046439546E-04 3.5197233278613224E-04 3.5410080923849505E-04 + 3.5624215719121837E-04 3.5839645448191247E-04 3.6056377941889460E-04 + 3.6274421078403364E-04 3.6493782783561589E-04 3.6714471031122371E-04 + 3.6936493843063654E-04 3.7159859289874426E-04 3.7384575490848331E-04 + 3.7610650614378565E-04 3.7838092878255037E-04 3.8066910549962817E-04 + 3.8297111946982939E-04 3.8528705437094546E-04 3.8761699438679065E-04 + 3.8996102421026360E-04 3.9231922904642361E-04 3.9469169461559081E-04 + 3.9707850715645874E-04 3.9947975342923198E-04 4.0189552071877749E-04 + 4.0432589683780018E-04 4.0677097013003152E-04 4.0923082947344399E-04 + 4.1170556428347910E-04 4.1419526451630026E-04 4.1670002067205981E-04 + 4.1921992379819167E-04 4.2175506549271781E-04 4.2430553790758071E-04 + 4.2687143375199168E-04 4.2945284629579953E-04 4.3204986937288417E-04 + 4.3466259738456396E-04 4.3729112530303008E-04 4.3993554867479632E-04 + 4.4259596362417449E-04 4.4527246685676606E-04 4.4796515566297999E-04 + 4.5067412792156671E-04 4.5339948210317840E-04 4.5614131727394591E-04 + 4.5889973309908239E-04 4.6167482984650328E-04 4.6446670839047434E-04 + 4.6727547021527456E-04 4.7010121741888872E-04 4.7294405271671678E-04 + 4.7580407944530691E-04 4.7868140156611408E-04 4.8157612366927599E-04 + 4.8448835097741829E-04 4.8741818934947608E-04 4.9036574528454511E-04 + 4.9333112592574928E-04 4.9631443906413941E-04 4.9931579314260765E-04 + 5.0233529725983276E-04 5.0537306117424215E-04 5.0842919530800557E-04 + 5.1150381075104492E-04 5.1459701926507596E-04 5.1770893328766901E-04 + 5.2083966593633498E-04 5.2398933101264014E-04 5.2715804300633939E-04 + 5.3034591709954137E-04 5.3355306917089187E-04 5.3677961579978945E-04 + 5.4002567427061934E-04 5.4329136257702082E-04 5.4657679942617197E-04 + 5.4988210424310917E-04 5.5320739717506324E-04 5.5655279909583202E-04 + 5.5991843161016912E-04 5.6330441705820789E-04 5.6671087851990775E-04 + 5.7013793981952512E-04 5.7358572553011975E-04 5.7705436097807720E-04 + 5.8054397224766973E-04 5.8405468618563466E-04 5.8758663040578971E-04 + 5.9113993329366703E-04 5.9471472401118519E-04 5.9831113250133881E-04 + 6.0192928949292710E-04 6.0556932650530112E-04 6.0923137585314885E-04 + 6.1291557065130064E-04 6.1662204481957193E-04 6.2035093308762711E-04 + 6.2410237099988085E-04 6.2787649492042309E-04 6.3167344203797471E-04 + 6.3549335037087749E-04 6.3933635877210719E-04 6.4320260693432523E-04 + 6.4709223539495173E-04 6.5100538554127877E-04 6.5494219961560523E-04 + 6.5890282072041172E-04 6.6288739282355756E-04 6.6689606076351926E-04 + 6.7092897025465006E-04 6.7498626789248167E-04 6.7906810115904795E-04 + 6.8317461842825103E-04 6.8730596897124952E-04 6.9146230296188908E-04 + 6.9564377148215889E-04 6.9985052652768193E-04 7.0408272101324452E-04 + 7.0834050877834943E-04 7.1262404459281276E-04 7.1693348416238521E-04 + 7.2126898413441714E-04 7.2563070210354675E-04 7.3001879661743437E-04 + 7.3443342718252074E-04 7.3887475426982958E-04 7.4334293932079565E-04 + 7.4783814475313875E-04 7.5236053396676174E-04 7.5691027134969517E-04 + 7.6148752228407041E-04 7.6609245315212965E-04 7.7072523134227855E-04 + 7.7538602525516448E-04 7.8007500430980477E-04 7.8479233894973815E-04 + 7.8953820064922716E-04 7.9431276191948435E-04 7.9911619631494975E-04 + 8.0394867843959332E-04 8.0881038395326748E-04 8.1370148957808674E-04 + 8.1862217310485724E-04 8.2357261339953359E-04 8.2855299040972600E-04 + 8.3356348517123798E-04 8.3860427981464678E-04 8.4367555757192700E-04 + 8.4877750278310659E-04 8.5391030090297229E-04 8.5907413850780574E-04 + 8.6426920330217119E-04 8.6949568412573292E-04 8.7475377096012477E-04 + 8.8004365493585051E-04 8.8536552833923721E-04 8.9071958461941906E-04 + 8.9610601839537434E-04 9.0152502546299545E-04 9.0697680280221022E-04 + 9.1246154858413747E-04 9.1797946217829452E-04 9.2353074415984344E-04 + 9.2911559631687869E-04 9.3473422165776701E-04 9.4038682441852182E-04 + 9.4607361007023247E-04 9.5179478532652717E-04 9.5755055815109310E-04 + 9.6334113776522950E-04 9.6916673465545955E-04 9.7502756058117496E-04 + 9.8092382858233932E-04 9.8685575298722641E-04 9.9282354942021667E-04 + 9.9882743480962915E-04 1.0048676273956138E-03 1.0109443467380766E-03 + 1.0170578137246671E-03 1.0232082505788054E-03 1.0293958808677566E-03 + 1.0356209295107643E-03 1.0418836227872187E-03 1.0481841883448896E-03 + 1.0545228552081929E-03 1.0608998537865249E-03 1.0673154158826279E-03 + 1.0737697747010260E-03 1.0802631648564923E-03 1.0867958223825867E-03 + 1.0933679847402260E-03 1.0999798908263255E-03 1.1066317809824732E-03 + 1.1133238970036741E-03 1.1200564821471353E-03 1.1268297811411079E-03 + 1.1336440401937867E-03 1.1404995070022530E-03 1.1473964307614879E-03 + 1.1543350621734201E-03 1.1613156534560484E-03 1.1683384583526010E-03 + 1.1754037321407675E-03 1.1825117316419701E-03 1.1896627152307069E-03 + 1.1968569428439356E-03 1.2040946759905309E-03 1.2113761777607806E-03 + 1.2187017128359586E-03 1.2260715474979404E-03 1.2334859496388811E-03 + 1.2409451887709590E-03 1.2484495360361653E-03 1.2559992642161677E-03 + 1.2635946477422173E-03 1.2712359627051338E-03 1.2789234868653319E-03 + 1.2866574996629255E-03 1.2944382822278797E-03 1.3022661173902345E-03 + 1.3101412896903803E-03 1.3180640853894074E-03 1.3260347924795046E-03 + 1.3340537006944345E-03 1.3421211015200581E-03 1.3502372882049371E-03 + 1.3584025557709907E-03 1.3666172010242152E-03 1.3748815225654821E-03 + 1.3831958208013820E-03 1.3915603979551541E-03 1.3999755580776626E-03 + 1.4084416070584578E-03 1.4169588526368865E-03 1.4255276044132870E-03 + 1.4341481738602340E-03 1.4428208743338701E-03 1.4515460210852856E-03 + 1.4603239312719896E-03 1.4691549239694269E-03 1.4780393201825870E-03 + 1.4869774428576622E-03 1.4959696168937967E-03 1.5050161691548909E-03 + 1.5141174284814809E-03 1.5232737257026992E-03 1.5324853936482907E-03 + 1.5417527671607216E-03 1.5510761831073400E-03 1.5604559803926320E-03 + 1.5698924999705290E-03 1.5793860848568133E-03 1.5889370801415756E-03 + 1.5985458330017698E-03 1.6082126927138207E-03 1.6179380106663339E-03 + 1.6277221403728534E-03 1.6375654374847272E-03 1.6474682598040253E-03 + 1.6574309672965446E-03 1.6674539221049034E-03 1.6775374885616933E-03 + 1.6876820332027333E-03 1.6978879247803828E-03 1.7081555342769582E-03 + 1.7184852349182037E-03 1.7288774021868728E-03 1.7393324138363618E-03 + 1.7498506499044565E-03 1.7604324927271322E-03 1.7710783269524639E-03 + 1.7817885395545977E-03 1.7925635198478250E-03 1.8034036595007321E-03 + 1.8143093525504316E-03 1.8252809954168955E-03 1.8363189869173547E-03 + 1.8474237282808067E-03 1.8585956231625875E-03 1.8698350776590593E-03 + 1.8811425003223557E-03 1.8925183021752483E-03 1.9039628967260744E-03 + 1.9154766999837775E-03 1.9270601304730210E-03 1.9387136092494110E-03 + 1.9504375599147888E-03 1.9622324086326446E-03 1.9740985841435917E-03 + 1.9860365177809644E-03 1.9980466434864944E-03 2.0101293978260736E-03 + 2.0222852200056404E-03 2.0345145518871287E-03 2.0468178380045436E-03 + 2.0591955255801061E-03 2.0716480645405250E-03 2.0841759075333342E-03 + 2.0967795099433640E-03 2.1094593299092789E-03 2.1222158283402443E-03 + 2.1350494689326665E-03 2.1479607181870645E-03 2.1609500454250075E-03 + 2.1740179228061959E-03 2.1871648253456045E-03 2.2003912309307644E-03 + 2.2136976203391279E-03 2.2270844772555387E-03 2.2405522882898289E-03 + 2.2541015429944880E-03 2.2677327338824784E-03 2.2814463564451190E-03 + 2.2952429091701127E-03 2.3091228935596519E-03 2.3230868141486624E-03 + 2.3371351785231270E-03 2.3512684973385537E-03 2.3654872843385201E-03 + 2.3797920563733673E-03 2.3941833334189654E-03 2.4086616385956341E-03 + 2.4232274981871500E-03 2.4378814416598700E-03 2.4526240016819923E-03 + 2.4674557141429031E-03 2.4823771181726709E-03 2.4973887561616295E-03 + 2.5124911737801083E-03 2.5276849199982517E-03 2.5429705471059897E-03 + 2.5583486107330984E-03 2.5738196698694140E-03 2.5893842868851330E-03 + 2.6050430275512716E-03 2.6207964610602168E-03 2.6366451600464292E-03 + 2.6525897006072522E-03 2.6686306623238455E-03 2.6847686282822718E-03 + 2.7010041850946687E-03 2.7173379229205943E-03 2.7337704354884595E-03 + 2.7503023201171273E-03 2.7669341777376098E-03 2.7836666129149273E-03 + 2.8005002338700661E-03 2.8174356525021093E-03 2.8344734844104537E-03 + 2.8516143489172130E-03 2.8688588690897071E-03 2.8862076717631278E-03 + 2.9036613875633114E-03 2.9212206509296704E-03 2.9388861001382553E-03 + 2.9566583773249439E-03 2.9745381285088018E-03 2.9925260036155464E-03 + 3.0106226565011864E-03 3.0288287449757780E-03 3.0471449308273478E-03 + 3.0655718798459331E-03 3.0841102618478027E-03 3.1027607506997836E-03 + 3.1215240243437771E-03 3.1404007648213801E-03 3.1593916582987004E-03 + 3.1784973950912741E-03 3.1977186696891843E-03 3.2170561807822792E-03 + 3.2365106312855917E-03 3.2560827283648805E-03 3.2757731834623300E-03 + 3.2955827123224255E-03 3.3155120350179513E-03 3.3355618759761899E-03 + 3.3557329640052261E-03 3.3760260323204673E-03 3.3964418185712698E-03 + 3.4169810648677751E-03 3.4376445178078670E-03 3.4584329285043272E-03 + 3.4793470526121167E-03 3.5003876503558705E-03 3.5215554865575048E-03 + 3.5428513306640392E-03 3.5642759567755572E-03 3.5858301436733357E-03 + 3.6075146748481774E-03 3.6293303385288595E-03 3.6512779277108180E-03 + 3.6733582401849425E-03 3.6955720785666040E-03 3.7179202503248030E-03 + 3.7404035678115463E-03 3.7630228482913503E-03 3.7857789139709767E-03 + 3.8086725920292884E-03 3.8317047146473491E-03 3.8548761190386419E-03 + 3.8781876474795291E-03 3.9016401473398557E-03 3.9252344711137414E-03 + 3.9489714764505959E-03 3.9728520261862622E-03 3.9968769883744083E-03 + 4.0210472363180570E-03 4.0453636486013581E-03 4.0698271091214894E-03 + 4.0944385071208251E-03 4.1191987372192224E-03 4.1441086994465715E-03 + 4.1691692992754893E-03 4.1943814476542510E-03 4.2197460610398831E-03 + 4.2452640614315008E-03 4.2709363764037965E-03 4.2967639391407767E-03 + 4.3227476884696789E-03 4.3488885688950842E-03 4.3751875306332743E-03 + 4.4016455296467440E-03 4.4282635276789795E-03 4.4550424922893839E-03 + 4.4819833968884875E-03 4.5090872207732887E-03 4.5363549491628918E-03 + 4.5637875732342835E-03 4.5913860901583923E-03 4.6191515031363106E-03 + 4.6470848214357841E-03 4.6751870604278718E-03 4.7034592416238859E-03 + 4.7319023927124898E-03 4.7605175475970854E-03 4.7893057464333802E-03 + 4.8182680356671859E-03 4.8474054680724844E-03 4.8767191027896655E-03 + 4.9062100053640567E-03 4.9358792477846233E-03 4.9657279085229683E-03 + 4.9957570725725018E-03 5.0259678314879142E-03 5.0563612834248171E-03 + 5.0869385331796984E-03 5.1177006922300487E-03 5.1486488787747930E-03 + 5.1797842177749038E-03 5.2111078409943267E-03 5.2426208870411046E-03 + 5.2743245014087500E-03 5.3062198365179201E-03 5.3383080517582678E-03 + 5.3705903135306213E-03 5.4030677952893466E-03 5.4357416775850393E-03 + 5.4686131481074020E-03 5.5016834017284520E-03 5.5349536405459145E-03 + 5.5684250739269636E-03 5.6020989185521361E-03 5.6359763984596047E-03 + 5.6700587450896249E-03 5.7043471973293345E-03 5.7388430015577778E-03 + 5.7735474116911876E-03 5.8084616892286021E-03 5.8435871032976854E-03 + 5.8789249307008963E-03 5.9144764559618569E-03 5.9502429713720892E-03 + 5.9862257770379491E-03 6.0224261809279219E-03 6.0588454989201311E-03 + 6.0954850548502106E-03 6.1323461805593751E-03 6.1694302159428904E-03 + 6.2067385089987232E-03 6.2442724158765853E-03 6.2820333009271940E-03 + 6.3200225367518945E-03 6.3582415042525431E-03 6.3966915926816819E-03 + 6.4353741996930822E-03 6.4742907313925001E-03 6.5134426023888336E-03 + 6.5528312358455014E-03 6.5924580635322140E-03 6.6323245258769802E-03 + 6.6724320720185030E-03 6.7127821598588194E-03 6.7533762561163349E-03 + 6.7942158363790937E-03 6.8353023851584612E-03 6.8766373959430419E-03 + 6.9182223712530126E-03 6.9600588226946909E-03 7.0021482710155248E-03 + 7.0444922461593536E-03 7.0870922873220010E-03 7.1299499430072712E-03 + 7.1730667710831787E-03 7.2164443388386419E-03 7.2600842230403856E-03 + 7.3039880099903210E-03 7.3481572955831484E-03 7.3925936853644226E-03 + 7.4372987945888593E-03 7.4822742482791070E-03 7.5275216812847540E-03 + 7.5730427383418246E-03 7.6188390741324889E-03 7.6649123533452778E-03 + 7.7112642507355640E-03 7.7578964511864175E-03 7.8048106497699042E-03 + 7.8520085518086393E-03 7.8994918729378433E-03 7.9472623391676298E-03 + 7.9953216869458211E-03 8.0436716632210029E-03 8.0923140255060762E-03 + 8.1412505419421032E-03 8.1904829913626125E-03 8.2400131633582219E-03 + 8.2898428583417384E-03 8.3399738876135526E-03 8.3904080734274970E-03 + 8.4411472490571321E-03 8.4921932588622965E-03 8.5435479583561985E-03 + 8.5952132142729058E-03 8.6471909046351089E-03 8.6994829188224501E-03 + 8.7520911576401701E-03 8.8050175333882642E-03 8.8582639699309029E-03 + 8.9118324027664189E-03 8.9657247790976436E-03 9.0199430579027372E-03 + 9.0744892100063108E-03 9.1293652181511260E-03 9.1845730770701364E-03 + 9.2401147935590559E-03 9.2959923865492226E-03 9.3522078871810087E-03 + 9.4087633388777320E-03 9.4656607974198115E-03 9.5229023310195761E-03 + 9.5804900203963969E-03 9.6384259588523993E-03 9.6967122523484509E-03 + 9.7553510195807751E-03 9.8143443920579373E-03 9.8736945141783879E-03 + 9.9334035433083154E-03 9.9934736498601250E-03 1.0053907017371305E-02 + 1.0114705842583871E-02 1.0175872335524099E-02 1.0237408719582928E-02 + 1.0299317231596822E-02 1.0361600121928978E-02 1.0424259654551188E-02 + 1.0487298107126113E-02 1.0550717771090136E-02 1.0614520951736553E-02 + 1.0678709968299435E-02 1.0743287154037908E-02 1.0808254856321028E-02 + 1.0873615436713001E-02 1.0939371271059100E-02 1.1005524749571992E-02 + 1.1072078276918692E-02 1.1139034272307858E-02 1.1206395169577790E-02 + 1.1274163417284962E-02 1.1342341478792898E-02 1.1410931832361798E-02 + 1.1479936971238589E-02 1.1549359403747628E-02 1.1619201653381754E-02 + 1.1689466258894112E-02 1.1760155774390374E-02 1.1831272769421688E-02 + 1.1902819829077940E-02 1.1974799554081799E-02 1.2047214560883231E-02 + 1.2120067481754674E-02 1.2193360964886605E-02 1.2267097674483871E-02 + 1.2341280290862516E-02 1.2415911510547259E-02 1.2490994046369417E-02 + 1.2566530627565565E-02 1.2642523999876807E-02 1.2718976925648454E-02 + 1.2795892183930537E-02 1.2873272570578751E-02 1.2951120898356200E-02 + 1.3029439997035498E-02 1.3108232713501705E-02 1.3187501911855797E-02 + 1.3267250473518831E-02 1.3347481297336585E-02 1.3428197299684986E-02 + 1.3509401414576095E-02 1.3591096593764848E-02 1.3673285806856204E-02 + 1.3755972041413165E-02 1.3839158303065448E-02 1.3922847615618598E-02 + 1.4007043021163984E-02 1.4091747580189341E-02 1.4176964371690118E-02 + 1.4262696493281241E-02 1.4348947061309828E-02 1.4435719210968397E-02 + 1.4523016096408938E-02 1.4610840890857426E-02 1.4699196786729247E-02 + 1.4788086995745211E-02 1.4877514749048384E-02 1.4967483297321393E-02 + 1.5057995910904676E-02 1.5149055879915408E-02 1.5240666514366966E-02 + 1.5332831144289343E-02 1.5425553119850128E-02 1.5518835811476426E-02 + 1.5612682609977169E-02 1.5707096926666508E-02 1.5802082193487745E-02 + 1.5897641863138204E-02 1.5993779409194563E-02 1.6090498326239232E-02 + 1.6187802129987317E-02 1.6285694357414542E-02 1.6384178566885638E-02 + 1.6483258338283797E-02 1.6582937273140769E-02 1.6683218994767855E-02 + 1.6784107148387465E-02 1.6885605401265703E-02 1.6987717442845766E-02 + 1.7090446984881859E-02 1.7193797761574255E-02 1.7297773529704956E-02 + 1.7402378068774389E-02 1.7507615181138594E-02 1.7613488692147572E-02 + 1.7720002450284260E-02 1.7827160327304564E-02 1.7934966218377903E-02 + 1.8043424042228900E-02 1.8152537741279819E-02 1.8262311281793932E-02 + 1.8372748654019559E-02 1.8483853872335157E-02 1.8595630975395388E-02 + 1.8708084026277695E-02 1.8821217112630132E-02 1.8935034346819892E-02 + 1.9049539866082908E-02 1.9164737832674066E-02 1.9280632434018615E-02 + 1.9397227882864305E-02 1.9514528417434687E-02 1.9632538301582934E-02 + 1.9751261824946992E-02 1.9870703303105416E-02 1.9990867077734408E-02 + 2.0111757516765402E-02 2.0233379014543949E-02 2.0355735991989563E-02 + 2.0478832896756213E-02 2.0602674203394112E-02 2.0727264413512320E-02 + 2.0852608055942509E-02 2.0978709686903373E-02 2.1105573890166377E-02 + 2.1233205277222337E-02 2.1361608487449148E-02 2.1490788188280242E-02 + 2.1620749075374378E-02 2.1751495872786249E-02 2.1883033333138364E-02 + 2.2015366237793581E-02 2.2148499397029002E-02 2.2282437650210964E-02 + 2.2417185865970697E-02 2.2552748942381472E-02 2.2689131807136553E-02 + 2.2826339417728481E-02 2.2964376761629046E-02 2.3103248856470717E-02 + 2.3242960750228994E-02 2.3383517521406008E-02 2.3524924279214939E-02 + 2.3667186163765848E-02 2.3810308346252453E-02 2.3954296029140291E-02 + 2.4099154446355544E-02 2.4244888863475429E-02 2.4391504577919741E-02 + 2.4539006919143111E-02 2.4687401248828986E-02 2.4836692961084355E-02 + 2.4986887482636024E-02 2.5137990273027655E-02 2.5290006824818342E-02 + 2.5442942663782199E-02 2.5596803349109382E-02 2.5751594473607954E-02 + 2.5907321663907260E-02 2.6063990580662461E-02 2.6221606918760441E-02 + 2.6380176407526528E-02 2.6539704810932950E-02 2.6700197927808259E-02 + 2.6861661592048329E-02 2.7024101672828094E-02 2.7187524074815044E-02 + 2.7351934738384057E-02 2.7517339639832931E-02 2.7683744791599931E-02 + 2.7851156242482168E-02 2.8019580077855700E-02 2.8189022419896417E-02 + 2.8359489427802809E-02 2.8530987298019721E-02 2.8703522264463821E-02 + 2.8877100598749868E-02 2.9051728610418909E-02 2.9227412647167546E-02 + 2.9404159095078826E-02 2.9581974378854101E-02 2.9760864962046732E-02 + 2.9940837347297147E-02 3.0121898076568954E-02 3.0304053731386900E-02 + 3.0487310933076037E-02 3.0671676343002593E-02 3.0857156662815834E-02 + 3.1043758634691814E-02 3.1231489041578412E-02 3.1420354707442061E-02 + 3.1610362497515504E-02 3.1801519318547529E-02 3.1993832119053940E-02 + 3.2187307889570381E-02 3.2381953662906034E-02 3.2577776514399505E-02 + 3.2774783562176120E-02 3.2972981967406390E-02 3.3172378934566489E-02 + 3.3372981711700021E-02 3.3574797590681799E-02 3.3777833907482423E-02 + 3.3982098042435308E-02 3.4187597420504742E-02 3.4394339511556044E-02 + 3.4602331830626797E-02 3.4811581938200151E-02 3.5022097440479606E-02 + 3.5233885989665717E-02 3.5446955284233882E-02 3.5661313069214384E-02 + 3.5876967136473897E-02 3.6093925324998874E-02 3.6312195521180153E-02 + 3.6531785659099821E-02 3.6752703720819797E-02 3.6974957736671588E-02 + 3.7198555785548475E-02 3.7423505995199016E-02 3.7649816542522772E-02 + 3.7877495653867145E-02 3.8106551605326625E-02 3.8336992723043563E-02 + 3.8568827383511022E-02 3.8802064013876904E-02 3.9036711092250556E-02 + 3.9272777148010737E-02 3.9510270762116009E-02 3.9749200567416224E-02 + 3.9989575248966513E-02 4.0231403544343201E-02 4.0474694243961017E-02 + 4.0719456191392868E-02 4.0965698283691211E-02 4.1213429471711686E-02 + 4.1462658760438101E-02 4.1713395209310014E-02 4.1965647932551912E-02 + 4.2219426099504798E-02 4.2474738934959066E-02 4.2731595719490083E-02 + 4.2990005789795449E-02 4.3249978539034610E-02 4.3511523417169906E-02 + 4.3774649931310257E-02 4.4039367646057016E-02 4.4305686183851153E-02 + 4.4573615225323340E-02 4.4843164509645678E-02 4.5114343834886050E-02 + 4.5387163058363808E-02 4.5661632097008360E-02 4.5937760927719534E-02 + 4.6215559587730541E-02 4.6495038174972338E-02 4.6776206848441013E-02 + 4.7059075828566894E-02 4.7343655397586427E-02 4.7629955899915359E-02 + 4.7917987742525071E-02 4.8207761395321139E-02 4.8499287391523309E-02 + 4.8792576328048808E-02 4.9087638865897364E-02 4.9384485730538996E-02 + 4.9683127712303460E-02 4.9983575666772771E-02 5.0285840515175637E-02 + 5.0589933244784793E-02 5.0895864909315865E-02 5.1203646629329511E-02 + 5.1513289592635486E-02 5.1824805054699677E-02 5.2138204339052696E-02 + 5.2453498837701736E-02 5.2770700011544977E-02 5.3089819390787593E-02 + 5.3410868575361321E-02 5.3733859235345849E-02 5.4058803111393390E-02 + 5.4385712015155026E-02 5.4714597829710200E-02 5.5045472509998736E-02 + 5.5378348083255577E-02 5.5713236649447502E-02 5.6050150381713321E-02 + 5.6389101526806130E-02 5.6730102405538982E-02 5.7073165413231985E-02 + 5.7418303020163437E-02 5.7765527772022818E-02 5.8114852290367232E-02 + 5.8466289273079640E-02 5.8819851494830676E-02 5.9175551807543372E-02 + 5.9533403140859614E-02 5.9893418502610665E-02 6.0255610979289671E-02 + 6.0619993736527850E-02 6.0986580019572439E-02 6.1355383153768477E-02 + 6.1726416545043086E-02 6.2099693680393114E-02 6.2475228128374839E-02 + 6.2853033539597480E-02 6.3233123647219280E-02 6.3615512267447161E-02 + 6.4000213300038120E-02 6.4387240728805015E-02 6.4776608622125115E-02 + 6.5168331133450760E-02 6.5562422501824411E-02 6.5958897052395868E-02 + 6.6357769196943583E-02 6.6759053434397725E-02 6.7162764351367740E-02 + 6.7568916622672309E-02 6.7977525011873263E-02 6.8388604371811490E-02 + 6.8802169645147418E-02 6.9218235864903749E-02 6.9636818155012561E-02 + 7.0057931730864276E-02 7.0481591899861029E-02 7.0907814061973634E-02 + 7.1336613710300423E-02 7.1768006431631032E-02 7.2202007907012755E-02 + 7.2638633912320921E-02 7.3077900318831754E-02 7.3519823093799647E-02 + 7.3964418301037407E-02 7.4411702101500637E-02 7.4861690753874457E-02 + 7.5314400615164978E-02 7.5769848141293616E-02 7.6228049887695826E-02 + 7.6689022509922100E-02 7.7152782764243838E-02 7.7619347508262257E-02 + 7.8088733701521681E-02 7.8560958406125203E-02 7.9036038787355253E-02 + 7.9513992114298021E-02 7.9994835760470354E-02 8.0478587204451807E-02 + 8.0965264030519735E-02 8.1454883929288971E-02 8.1947464698354150E-02 + 8.2443024242937132E-02 8.2941580576537541E-02 8.3443151821588221E-02 + 8.3947756210113064E-02 8.4455412084390308E-02 8.4966137897618990E-02 + 8.5479952214590330E-02 8.5996873712361671E-02 8.6516921180935763E-02 + 8.7040113523944349E-02 8.7566469759334298E-02 8.8096009020059526E-02 + 8.8628750554776259E-02 8.9164713728543177E-02 8.9703918023524565E-02 + 9.0246383039698994E-02 9.0792128495571514E-02 9.1341174228891042E-02 + 9.1893540197370491E-02 9.2449246479412939E-02 9.3008313274841006E-02 + 9.3570760905631892E-02 9.4136609816655115E-02 9.4705880576416046E-02 + 9.5278593877804116E-02 9.5854770538844114E-02 9.6434431503453405E-02 + 9.7017597842203054E-02 9.7604290753084313E-02 9.8194531562278184E-02 + 9.8788341724931297E-02 9.9385742825935514E-02 9.9986756580713085E-02 + 1.0059140483600514E-01 1.0119970957066635E-01 1.0181169289646362E-01 + 1.0242737705888051E-01 1.0304678443792474E-01 1.0366993754894231E-01 + 1.0429685904343647E-01 1.0492757170988994E-01 1.0556209847459404E-01 + 1.0620046240248170E-01 1.0684268669796659E-01 1.0748879470578553E-01 + 1.0813880991184768E-01 1.0879275594408802E-01 1.0945065657332691E-01 + 1.1011253571413303E-01 1.1077841742569337E-01 1.1144832591268752E-01 + 1.1212228552616822E-01 1.1280032076444531E-01 1.1348245627397678E-01 + 1.1416871685026547E-01 1.1485912743875897E-01 1.1555371313575724E-01 + 1.1625249918932457E-01 1.1695551100020797E-01 1.1766277412275941E-01 + 1.1837431426586546E-01 1.1909015729388135E-01 1.1981032922757215E-01 + 1.2053485624505707E-01 1.2126376468276222E-01 1.2199708103637719E-01 + 1.2273483196181922E-01 1.2347704427620078E-01 1.2422374495880523E-01 + 1.2497496115206712E-01 1.2573072016255954E-01 1.2649104946198567E-01 + 1.2725597668817776E-01 1.2802552964610253E-01 1.2879973630887059E-01 + 1.2957862481875410E-01 1.3036222348820919E-01 1.3115056080090629E-01 + 1.3194366541276384E-01 1.3274156615299101E-01 1.3354429202513518E-01 + 1.3435187220813699E-01 1.3516433605738978E-01 1.3598171310580753E-01 + 1.3680403306489788E-01 1.3763132582584300E-01 1.3846362146058488E-01 + 1.3930095022291905E-01 1.4014334254959507E-01 1.4099082906142130E-01 + 1.4184344056437920E-01 1.4270120805074241E-01 1.4356416270020439E-01 + 1.4443233588101029E-01 1.4530575915109817E-01 1.4618446425924564E-01 + 1.4706848314622500E-01 1.4795784794596253E-01 1.4885259098670789E-01 + 1.4975274479220846E-01 1.5065834208289278E-01 1.5156941577705824E-01 + 1.5248599899206858E-01 1.5340812504555840E-01 1.5433582745664262E-01 + 1.5526913994713615E-01 1.5620809644277883E-01 1.5715273107447003E-01 + 1.5810307817950742E-01 1.5905917230283637E-01 1.6002104819830501E-01 + 1.6098874082992873E-01 1.6196228537315935E-01 1.6294171721616488E-01 + 1.6392707196111536E-01 1.6491838542547815E-01 1.6591569364331796E-01 + 1.6691903286660820E-01 1.6792843956654779E-01 1.6894395043488827E-01 + 1.6996560238526573E-01 1.7099343255454344E-01 1.7202747830416271E-01 + 1.7306777722149921E-01 1.7411436712123035E-01 1.7516728604670942E-01 + 1.7622657227134947E-01 1.7729226430001283E-01 1.7836440087041197E-01 + 1.7944302095451695E-01 1.8052816375997338E-01 1.8161986873152558E-01 + 1.8271817555245182E-01 1.8382312414600602E-01 1.8493475467687029E-01 + 1.8605310755261306E-01 1.8717822342515872E-01 1.8831014319226635E-01 + 1.8944890799901437E-01 1.9059455923929761E-01 1.9174713855733092E-01 + 1.9290668784916484E-01 1.9407324926420591E-01 1.9524686520675061E-01 + 1.9642757833752578E-01 1.9761543157524086E-01 1.9881046809814576E-01 + 2.0001273134560196E-01 2.0122226501966059E-01 2.0243911308665272E-01 + 2.0366331977878505E-01 2.0489492959574901E-01 2.0613398730633942E-01 + 2.0738053795007952E-01 2.0863462683885969E-01 2.0989629955858383E-01 + 2.1116560197082787E-01 2.1244258021450449E-01 2.1372728070754177E-01 + 2.1501975014856986E-01 2.1632003551862000E-01 2.1762818408282972E-01 + 2.1894424339216276E-01 2.2026826128513644E-01 2.2160028588956249E-01 + 2.2294036562429403E-01 2.2428854920098643E-01 2.2564488562586971E-01 + 2.2700942420152723E-01 2.2838221452868920E-01 2.2976330650803545E-01 + 2.3115275034201033E-01 2.3255059653664539E-01 2.3395689590339705E-01 + 2.3537169956099241E-01 2.3679505893728936E-01 2.3822702577114332E-01 + 2.3966765211428961E-01 2.4111699033323489E-01 2.4257509311116204E-01 + 2.4404201344984278E-01 2.4551780467156570E-01 2.4700252042107559E-01 + 2.4849621466752092E-01 2.4999894170641737E-01 2.5151075616162050E-01 + 2.5303171298731320E-01 2.5456186747000048E-01 2.5610127523052090E-01 + 2.5764999222606783E-01 2.5920807475222457E-01 2.6077557944500884E-01 + 2.6235256328293255E-01 2.6393908358907248E-01 2.6553519803315578E-01 + 2.6714096463365322E-01 2.6875644175989027E-01 2.7038168813416774E-01 + 2.7201676283389836E-01 2.7366172529375110E-01 2.7531663530781336E-01 + 2.7698155303176580E-01 2.7865653898506598E-01 2.8034165405315031E-01 + 2.8203695948964624E-01 2.8374251691860064E-01 2.8545838833671699E-01 + 2.8718463611561107E-01 2.8892132300407675E-01 2.9066851213036932E-01 + 2.9242626700449698E-01 2.9419465152053142E-01 2.9597372995892934E-01 + 2.9776356698887124E-01 2.9956422767060886E-01 3.0137577745783162E-01 + 3.0319828220004780E-01 3.0503180814497449E-01 3.0687642194094811E-01 + 3.0873219063934587E-01 3.1059918169702544E-01 3.1247746297877338E-01 + 3.1436710275977459E-01 3.1626816972809274E-01 3.1818073298716926E-01 + 3.2010486205833211E-01 3.2204062688332508E-01 3.2398809782684862E-01 + 3.2594734567912059E-01 3.2791844165844519E-01 3.2990145741380428E-01 + 3.3189646502746295E-01 3.3390353701758652E-01 3.3592274634087876E-01 + 3.3795416639523274E-01 3.3999787102240109E-01 3.4205393451067667E-01 + 3.4412243159759542E-01 3.4620343747265164E-01 3.4829702778003369E-01 + 3.5040327862136994E-01 3.5252226655849733E-01 3.5465406861624349E-01 + 3.5679876228522883E-01 3.5895642552467971E-01 3.6112713676526453E-01 + 3.6331097491194347E-01 3.6550801934683952E-01 3.6771834993211983E-01 + 3.6994204701290045E-01 3.7217919142016953E-01 3.7442986447372090E-01 + 3.7669414798511291E-01 3.7897212426064097E-01 3.8126387610433182E-01 + 3.8356948682094982E-01 3.8588904021902748E-01 3.8822262061391039E-01 + 3.9057031283082544E-01 3.9293220220795894E-01 3.9530837459956286E-01 + 3.9769891637907279E-01 4.0010391444225157E-01 4.0252345621034302E-01 + 4.0495762963325205E-01 4.0740652319274345E-01 4.0987022590565469E-01 + 4.1234882732713335E-01 4.1484241755389240E-01 4.1735108722748687E-01 + 4.1987492753760458E-01 4.2241403022538460E-01 4.2496848758674938E-01 + 4.2753839247576336E-01 4.3012383830800377E-01 4.3272491906395877E-01 + 4.3534172929244264E-01 4.3797436411403540E-01 4.4062291922453561E-01 + 4.4328749089844194E-01 4.4596817599245397E-01 4.4866507194898936E-01 + 4.5137827679972825E-01 4.5410788916917533E-01 4.5685400827824801E-01 + 4.5961673394787839E-01 4.6239616660264482E-01 4.6519240727442068E-01 + 4.6800555760605012E-01 4.7083571985503803E-01 4.7368299689727028E-01 + 4.7654749223075127E-01 4.7942930997937006E-01 4.8232855489667964E-01 + + + + + 5.5232362932051510E+03 5.5125132617666104E+03 5.4776045934799258E+03 + 5.4570562524456991E+03 5.4423612093105367E+03 5.3779594412670522E+03 + 5.3655367225519994E+03 5.3591329216105451E+03 5.3516927817394226E+03 + 5.3454373645030601E+03 5.3398182317928331E+03 5.3346536053213595E+03 + 5.3298919953500053E+03 5.3254666367821292E+03 5.3213257147113272E+03 + 5.3174297852644395E+03 5.3137467832273860E+03 5.3102504599092281E+03 + 5.3069191280238765E+03 5.3037346348622177E+03 5.3006816328906843E+03 + 5.2977470309886794E+03 5.2949195710819586E+03 5.2921894998017488E+03 + 5.2895483106294432E+03 5.2869885389487608E+03 5.2845035975714736E+03 + 5.2820876435294795E+03 5.2797354692650806E+03 5.2774424130507596E+03 + 5.2752042847012499E+03 5.2730173035474754E+03 5.2708780463196526E+03 + 5.2687834030959111E+03 5.2667305398610870E+03 5.2647168665173476E+03 + 5.2627400094184859E+03 5.2607977876790455E+03 5.2588881926503236E+03 + 5.2570093700667467E+03 5.2551596044546250E+03 5.2533373054665817E+03 + 5.2515409958619575E+03 5.2497693008999495E+03 5.2480209389501188E+03 + 5.2462947131556739E+03 5.2445895040105306E+03 5.2429042627320241E+03 + 5.2412380053288844E+03 5.2395898072783284E+03 5.2379587987386039E+03 + 5.2363441602333851E+03 5.2347451187531879E+03 5.2331609442262616E+03 + 5.2315909463175840E+03 5.2300344715199690E+03 5.2284909005058889E+03 + 5.2269596457123098E+03 5.2254401491343924E+03 5.2239318803067436E+03 + 5.2224343344533418E+03 5.2209470307894962E+03 5.2194695109611330E+03 + 5.2180013376081879E+03 5.2165420930405699E+03 5.2150913780161200E+03 + 5.2136488106114348E+03 5.2122140251770616E+03 5.2107866713697385E+03 + 5.2093664132548956E+03 5.2079529284733626E+03 5.2065459074668979E+03 + 5.2051450527576098E+03 5.2037500782768602E+03 5.2023607087395103E+03 + 5.2009766790600697E+03 5.1995977338072516E+03 5.1982236266940454E+03 + 5.1968541201005582E+03 5.1954889846270626E+03 5.1941279986750415E+03 + 5.1927709480541944E+03 5.1914176256133569E+03 5.1900678308937659E+03 + 5.1887213698029573E+03 5.1873780543078856E+03 5.1860377021459217E+03 + 5.1847001365524611E+03 5.1833651860040409E+03 5.1820326839759273E+03 + 5.1807024687131461E+03 5.1793743830141275E+03 5.1780482740261150E+03 + 5.1767239930516007E+03 5.1754013953650274E+03 5.1740803400391860E+03 + 5.1727606897806072E+03 5.1714423107734883E+03 5.1701250725315585E+03 + 5.1688088477574229E+03 5.1674935122089255E+03 5.1661789445721734E+03 + 5.1648650263407317E+03 5.1635516417006711E+03 5.1622386774211891E+03 + 5.1609260227503692E+03 5.1596135693158831E+03 5.1583012110303443E+03 + 5.1569888440009472E+03 5.1556763664433529E+03 5.1543636785993949E+03 + 5.1530506826585024E+03 5.1517372826826431E+03 5.1504233845345243E+03 + 5.1491088958089722E+03 5.1477937257672693E+03 5.1464777852742836E+03 + 5.1451609867382849E+03 5.1438432440533361E+03 5.1425244725439934E+03 + 5.1412045889123910E+03 5.1398835111874268E+03 5.1385611586760560E+03 + 5.1372374519165351E+03 5.1359123126335107E+03 5.1345856636949065E+03 + 5.1332574290705297E+03 5.1319275337922290E+03 5.1305959039156314E+03 + 5.1292624664833402E+03 5.1279271494895002E+03 5.1265898818457626E+03 + 5.1252505933484081E+03 5.1239092146468192E+03 5.1225656772130233E+03 + 5.1212199133123213E+03 5.1198718559750941E+03 5.1185214389694911E+03 + 5.1171685967751573E+03 5.1158132645578735E+03 5.1144553781450732E+03 + 5.1130948740022159E+03 5.1117316892099734E+03 5.1103657614421709E+03 + 5.1089970289445264E+03 5.1076254305140437E+03 5.1062509054791290E+03 + 5.1048733936803455E+03 5.1034928354518115E+03 5.1021091716032042E+03 + 5.1007223434023208E+03 5.0993322925582061E+03 5.0979389612048608E+03 + 5.0965422918853728E+03 5.0951422275366358E+03 5.0937387114744779E+03 + 5.0923316873792655E+03 5.0909210992819690E+03 5.0895068915506226E+03 + 5.0880890088771903E+03 5.0866673962648447E+03 5.0852419990155995E+03 + 5.0838127627183212E+03 5.0823796332370666E+03 5.0809425566997952E+03 + 5.0795014794873578E+03 5.0780563482228463E+03 5.0766071097611848E+03 + 5.0751537111790858E+03 5.0736960997652141E+03 5.0722342230106697E+03 + 5.0707680285997048E+03 5.0692974644007072E+03 5.0678224784574068E+03 + 5.0663430189803521E+03 5.0648590343385677E+03 5.0633704730514701E+03 + 5.0618772837809611E+03 5.0603794153237668E+03 5.0588768166039090E+03 + 5.0573694366654463E+03 5.0558572246653475E+03 5.0543401298665312E+03 + 5.0528181016311382E+03 5.0512910894139250E+03 5.0497590427558098E+03 + 5.0482219112776165E+03 5.0466796446739427E+03 5.0451321927071685E+03 + 5.0435795052016219E+03 5.0420215320378829E+03 5.0404582231472305E+03 + 5.0388895285061590E+03 5.0373153981311198E+03 5.0357357820732777E+03 + 5.0341506304134809E+03 5.0325598932572702E+03 5.0309635207300444E+03 + 5.0293614629723106E+03 5.0277536701350618E+03 5.0261400923752226E+03 + 5.0245206798512190E+03 5.0228953827186424E+03 5.0212641511259844E+03 + 5.0196269352105055E+03 5.0179836850941238E+03 5.0163343508794669E+03 + 5.0146788826459488E+03 5.0130172304459475E+03 5.0113493443010566E+03 + 5.0096751741984408E+03 5.0079946700872088E+03 5.0063077818749134E+03 + 5.0046144594240841E+03 5.0029146525488641E+03 5.0012083110116719E+03 + 4.9994953845199580E+03 4.9977758227230242E+03 4.9960495752088782E+03 + 4.9943165915011850E+03 4.9925768210562528E+03 4.9908302132600602E+03 + 4.9890767174254024E+03 4.9873162827890155E+03 4.9855488585088015E+03 + 4.9837743936610887E+03 4.9819928372379463E+03 4.9802041381445597E+03 + 4.9784082451966187E+03 4.9766051071178044E+03 4.9747946725372603E+03 + 4.9729768899871815E+03 4.9711517079003870E+03 4.9693190746079545E+03 + 4.9674789383369125E+03 4.9656312472079599E+03 4.9637759492332207E+03 + 4.9619129923140517E+03 4.9600423242388861E+03 4.9581638926811020E+03 + 4.9562776451969503E+03 4.9543835292234971E+03 4.9524814920766230E+03 + 4.9505714809490410E+03 4.9486534429083586E+03 4.9467273248951633E+03 + 4.9447930737211573E+03 4.9428506360673164E+03 4.9408999584820776E+03 + 4.9389409873795603E+03 4.9369736690378322E+03 4.9349979495971838E+03 + 4.9330137750584427E+03 4.9310210912813309E+03 4.9290198439828355E+03 + 4.9270099787355939E+03 4.9249914409663606E+03 4.9229641759544384E+03 + 4.9209281288301800E+03 4.9188832445735025E+03 4.9168294680124282E+03 + 4.9147667438216531E+03 4.9126950165211410E+03 4.9106142304747564E+03 + 4.9085243298889000E+03 4.9064252588111904E+03 4.9043169611291569E+03 + 4.9021993805689672E+03 4.9000724606941703E+03 4.8979361449044800E+03 + 4.8957903764345556E+03 4.8936350983528473E+03 4.8914702535604183E+03 + 4.8892957847898251E+03 4.8871116346040089E+03 4.8849177453952152E+03 + 4.8827140593839249E+03 4.8805005186178305E+03 4.8782770649707900E+03 + 4.8760436401418892E+03 4.8738001856544224E+03 4.8715466428549680E+03 + 4.8692829529124710E+03 4.8670090568173209E+03 4.8647248953804947E+03 + 4.8624304092326865E+03 4.8601255388234795E+03 4.8578102244205265E+03 + 4.8554844061087770E+03 4.8531480237896867E+03 4.8508010171804945E+03 + 4.8484433258134750E+03 4.8460748890352497E+03 4.8436956460061201E+03 + 4.8413055356993818E+03 4.8389044969007109E+03 4.8364924682075334E+03 + 4.8340693880284553E+03 4.8316351945826718E+03 4.8291898258994315E+03 + 4.8267332198175109E+03 4.8242653139846980E+03 4.8217860458573259E+03 + 4.8192953526998181E+03 4.8167931715842333E+03 4.8142794393898603E+03 + 4.8117540928028411E+03 4.8092170683157683E+03 4.8066683022273728E+03 + 4.8041077306421794E+03 4.8015352894702137E+03 4.7989509144267213E+03 + 4.7963545410319175E+03 4.7937461046107501E+03 4.7911255402926899E+03 + 4.7884927830115530E+03 4.7858477675053336E+03 4.7831904283160538E+03 + 4.7805206997896767E+03 4.7778385160759963E+03 4.7751438111285715E+03 + 4.7724365187046988E+03 4.7697165723653661E+03 4.7669839054752883E+03 + 4.7642384512029248E+03 4.7614801425205387E+03 4.7587089122042680E+03 + 4.7559246928342500E+03 4.7531274167947395E+03 4.7503170162742763E+03 + 4.7474934232658443E+03 4.7446565695671188E+03 4.7418063867806704E+03 + 4.7389428063142386E+03 4.7360657593810183E+03 4.7331751769999801E+03 + 4.7302709899961965E+03 4.7273531290012343E+03 4.7244215244535299E+03 + 4.7214761065988232E+03 4.7185168054906144E+03 4.7155435509906356E+03 + 4.7125562727693659E+03 4.7095549003065644E+03 4.7065393628918428E+03 + 4.7035095896252487E+03 4.7004655094179088E+03 4.6974070509926714E+03 + 4.6943341428848016E+03 4.6912467134426743E+03 4.6881446908285552E+03 + 4.6850280030193389E+03 4.6818965778073889E+03 4.6787503428013561E+03 + 4.6755892254270593E+03 4.6724131529283823E+03 4.6692220523682199E+03 + 4.6660158506294256E+03 4.6627944744158385E+03 4.6595578502532935E+03 + 4.6563059044907022E+03 4.6530385633011510E+03 4.6497557526830242E+03 + 4.6464573984612034E+03 4.6431434262882458E+03 4.6398137616456324E+03 + 4.6364683298450464E+03 4.6331070560296803E+03 4.6297298651755837E+03 + 4.6263366820930551E+03 4.6229274314280492E+03 4.6195020376636503E+03 + 4.6160604251215500E+03 4.6126025179636044E+03 4.6091282401933895E+03 + 4.6056375156578133E+03 4.6021302680487734E+03 4.5986064209048345E+03 + 4.5950658976129780E+03 4.5915086214103476E+03 4.5879345153860786E+03 + 4.5843435024831460E+03 4.5807355055002463E+03 4.5771104470937398E+03 + 4.5734682497796312E+03 4.5698088359355861E+03 4.5661321278029836E+03 + 4.5624380474890395E+03 4.5587265169689454E+03 4.5549974580880707E+03 + 4.5512507925641803E+03 4.5474864419897585E+03 4.5437043278342962E+03 + 4.5399043714466916E+03 4.5360864940576594E+03 4.5322506167822094E+03 + 4.5283966606221566E+03 4.5245245464686959E+03 4.5206341951049953E+03 + 4.5167255272088687E+03 4.5127984633554870E+03 4.5088529240201269E+03 + 4.5048888295809929E+03 4.5009061003220659E+03 4.4969046564360251E+03 + 4.4928844180272017E+03 4.4888453051145816E+03 4.4847872376349087E+03 + 4.4807101354457627E+03 4.4766139183287441E+03 4.4724985059927194E+03 + 4.4683638180770677E+03 4.4642097741550515E+03 4.4600362937371719E+03 + 4.4558432962746438E+03 4.4516307011628742E+03 4.4473984277450327E+03 + 4.4431463953156635E+03 4.4388745231243629E+03 4.4345827303795058E+03 + 4.4302709362520336E+03 4.4259390598793070E+03 4.4215870203690138E+03 + 4.4172147368031383E+03 4.4128221282419800E+03 4.4084091137282712E+03 + 4.4039756122912813E+03 4.3995215429510827E+03 4.3950468247227946E+03 + 4.3905513766209342E+03 4.3860351176638242E+03 4.3814979668780361E+03 + 4.3769398433029646E+03 4.3723606659953757E+03 4.3677603540341115E+03 + 4.3631388265247970E+03 4.3584960026046401E+03 4.3538318014472998E+03 + 4.3491461422678085E+03 4.3444389443275804E+03 4.3397101269394852E+03 + 4.3349596094729541E+03 4.3301873113592246E+03 4.3253931520965989E+03 + 4.3205770512558011E+03 4.3157389284853880E+03 4.3108787035172427E+03 + 4.3059962961721412E+03 4.3010916263653971E+03 4.2961646141125584E+03 + 4.2912151795352001E+03 4.2862432428667789E+03 4.2812487244585755E+03 + 4.2762315447856945E+03 4.2711916244531558E+03 4.2661288842020540E+03 + 4.2610432449158034E+03 4.2559346276264496E+03 4.2508029535210489E+03 + 4.2456481439481831E+03 4.2404701204244702E+03 4.2352688046412131E+03 + 4.2300441184711153E+03 4.2247959839750692E+03 4.2195243234090249E+03 + 4.2142290592309510E+03 4.2089101141078690E+03 4.2035674109229785E+03 + 4.1982008727828443E+03 4.1928104230247018E+03 4.1873959852238149E+03 + 4.1819574832009239E+03 4.1764948410298075E+03 4.1710079830448722E+03 + 4.1654968338488970E+03 4.1599613183208048E+03 4.1544013616235570E+03 + 4.1488168892121157E+03 4.1432078268415071E+03 4.1375741005749642E+03 + 4.1319156367921532E+03 4.1262323621975074E+03 4.1205242038286215E+03 + 4.1147910890647727E+03 4.1090329456354930E+03 4.1032497016292564E+03 + 4.0974412855022556E+03 4.0916076260872505E+03 4.0857486526025409E+03 + 4.0798642946609980E+03 4.0739544822791963E+03 4.0680191458866630E+03 + 4.0620582163351869E+03 4.0560716249082434E+03 4.0500593033304876E+03 + 4.0440211837773873E+03 4.0379571988848720E+03 4.0318672817591828E+03 + 4.0257513659867182E+03 4.0196093856440166E+03 4.0134412753078577E+03 + 4.0072469700654119E+03 4.0010264055245084E+03 3.9947795178240149E+03 + 3.9885062436442709E+03 3.9822065202176641E+03 3.9758802853392772E+03 + 3.9695274773776318E+03 3.9631480352855247E+03 3.9567418986109956E+03 + 3.9503090075083405E+03 3.9438493027492509E+03 3.9373627257340631E+03 + 3.9308492185030705E+03 3.9243087237479599E+03 3.9177411848233364E+03 + 3.9111465457583431E+03 3.9045247512683841E+03 3.8978757467669348E+03 + 3.8911994783774717E+03 3.8844958929454669E+03 3.8777649380505195E+03 + 3.8710065620185301E+03 3.8642207139340380E+03 3.8574073436526191E+03 + 3.8505664018133593E+03 3.8436978398514757E+03 3.8368016100109994E+03 + 3.8298776653575660E+03 3.8229259597913001E+03 3.8159464480597971E+03 + 3.8089390857712006E+03 3.8019038294073803E+03 3.7948406363371878E+03 + 3.7877494648298366E+03 3.7806302740683523E+03 3.7734830241631248E+03 + 3.7663076761655484E+03 3.7591041920817793E+03 3.7518725348865560E+03 + 3.7446126685371332E+03 3.7373245579872873E+03 3.7300081692014433E+03 + 3.7226634691688578E+03 3.7152904259179309E+03 3.7078890085305702E+03 + 3.7004591871566749E+03 3.6930009330286871E+03 3.6855142184762435E+03 + 3.6779990169409116E+03 3.6704553029910080E+03 3.6628830523365091E+03 + 3.6552822418440460E+03 3.6476528495519779E+03 3.6399948546855471E+03 + 3.6323082376721359E+03 3.6245929801565844E+03 3.6168490650165854E+03 + 3.6090764763781926E+03 3.6012751996313523E+03 3.5934452214455664E+03 + 3.5855865297856153E+03 3.5776991139273177E+03 3.5697829644734356E+03 + 3.5618380733695813E+03 3.5538644339202478E+03 3.5458620408048846E+03 + 3.5378308900940410E+03 3.5297709792655942E+03 3.5216823072210182E+03 + 3.5135648743017500E+03 3.5054186823055925E+03 3.4972437345031785E+03 + 3.4890400356545210E+03 3.4808075920255901E+03 3.4725464114049810E+03 + 3.4642565031205904E+03 3.4559378780563979E+03 3.4475905486692695E+03 + 3.4392145290058006E+03 3.4308098347192467E+03 3.4223764830864593E+03 + 3.4139144930248840E+03 3.4054238851096156E+03 3.3969046815904503E+03 + 3.3883569064090234E+03 3.3797805852159490E+03 3.3711757453880136E+03 + 3.3625424160453899E+03 3.3538806280688768E+03 3.3451904141171826E+03 + 3.3364718086442099E+03 3.3277248479163773E+03 3.3189495700299608E+03 + 3.3101460149284376E+03 3.3013142244198634E+03 3.2924542421942397E+03 + 3.2835661138409114E+03 3.2746498868659514E+03 3.2657056107095564E+03 + 3.2567333367634560E+03 3.2477331183882725E+03 3.2387050109309412E+03 + 3.2296490717420684E+03 3.2205653601933082E+03 3.2114539376946973E+03 + 3.2023148677119939E+03 3.1931482157839923E+03 3.1839540495397928E+03 + 3.1747324387160670E+03 3.1654834551742747E+03 3.1562071729178547E+03 + 3.1469036681093735E+03 3.1375730190876238E+03 3.1282153063846881E+03 + 3.1188306127429378E+03 3.1094190231319999E+03 3.0999806247656488E+03 + 3.0905155071186223E+03 3.0810237619434097E+03 3.0715054832869396E+03 + 3.0619607675072039E+03 3.0523897132897969E+03 3.0427924216643823E+03 + 3.0331689960210601E+03 3.0235195421266567E+03 3.0138441681409076E+03 + 3.0041429846325386E+03 2.9944161045952501E+03 2.9846636434635884E+03 + 2.9748857191287047E+03 2.9650824519539810E+03 2.9552539647905583E+03 + 2.9454003829927010E+03 2.9355218344330710E+03 2.9256184495178200E+03 + 2.9156903612015640E+03 2.9057377050021992E+03 2.8957606190155670E+03 + 2.8857592439299597E+03 2.8757337230404487E+03 2.8656842022630685E+03 + 2.8556108301488030E+03 2.8455137578973895E+03 2.8353931393709586E+03 + 2.8252491311074509E+03 2.8150818923338561E+03 2.8048915849792465E+03 + 2.7946783736875941E+03 2.7844424258303775E+03 2.7741839115189518E+03 + 2.7639030036167219E+03 2.7535998777510536E+03 2.7432747123249565E+03 + 2.7329276885285199E+03 2.7225589903500968E+03 2.7121688045872311E+03 + 2.7017573208573122E+03 2.6913247316079710E+03 2.6808712321271837E+03 + 2.6703970205531155E+03 2.6599022978836392E+03 2.6493872679855863E+03 + 2.6388521376036792E+03 2.6282971163691718E+03 2.6177224168081302E+03 + 2.6071282543494517E+03 2.5965148473324884E+03 2.5858824170144003E+03 + 2.5752311875770852E+03 2.5645613861338443E+03 2.5538732427356113E+03 + 2.5431669903768820E+03 2.5324428650012114E+03 2.5217011055063722E+03 + 2.5109419537491372E+03 2.5001656545496053E+03 2.4893724556952097E+03 + 2.4785626079442413E+03 2.4677363650290290E+03 2.4568939836586223E+03 + 2.4460357235211227E+03 2.4351618472855062E+03 2.4242726206030602E+03 + 2.4133683121083209E+03 2.4024491934196030E+03 2.3915155391390067E+03 + 2.3805676268520042E+03 2.3696057371265019E+03 2.3586301535114444E+03 + 2.3476411625349269E+03 2.3366390537017560E+03 2.3256241194905756E+03 + 2.3145966553504031E+03 2.3035569596967039E+03 2.2925053339068677E+03 + 2.2814420823152227E+03 2.2703675122074269E+03 2.2592819338143690E+03 + 2.2481856603054530E+03 2.2370790077813731E+03 2.2259622952662480E+03 + 2.2148358446992443E+03 2.2036999809255353E+03 2.1925550316867348E+03 + 2.1814013276106657E+03 2.1702392022005556E+03 2.1590689918236189E+03 + 2.1478910356989672E+03 2.1367056758849581E+03 2.1255132572658345E+03 + 2.1143141275377811E+03 2.1031086371942797E+03 2.0918971395108429E+03 + 2.0806799905290559E+03 2.0694575490399784E+03 2.0582301765668221E+03 + 2.0469982373470023E+03 2.0357620983134461E+03 2.0245221290752488E+03 + 2.0132787018975853E+03 2.0020321916809626E+03 1.9907829759397068E+03 + 1.9795314347797780E+03 1.9682779508758308E+03 1.9570229094475415E+03 + 1.9457666982352400E+03 1.9345097074747337E+03 1.9232523298714630E+03 + 1.9119949605738357E+03 1.9007379971458590E+03 1.8894818395389709E+03 + 1.8782268900631470E+03 1.8669735533571984E+03 1.8557222363583289E+03 + 1.8444733482708864E+03 1.8332273005343729E+03 1.8219845067906144E+03 + 1.8107453828501975E+03 1.7995103466580890E+03 1.7882798182584484E+03 + 1.7770542197586760E+03 1.7658339752926229E+03 1.7546195109830448E+03 + 1.7434112549031920E+03 1.7322096370376566E+03 1.7210150892423510E+03 + 1.7098280452037291E+03 1.6986489403971484E+03 1.6874782120444581E+03 + 1.6763162990707417E+03 1.6651636420602733E+03 1.6540206832116335E+03 + 1.6428878662920220E+03 1.6317656365907653E+03 1.6206544408719797E+03 + 1.6095547273264569E+03 1.5984669455226970E+03 1.5873915463571720E+03 + 1.5763289820037312E+03 1.5652797058622455E+03 1.5542441725063973E+03 + 1.5432228376307116E+03 1.5322161579967371E+03 1.5212245913784798E+03 + 1.5102485965069827E+03 1.4992886330141773E+03 1.4883451613758739E+03 + 1.4774186428540413E+03 1.4665095394382449E+03 1.4556183137863427E+03 + 1.4447454291644135E+03 1.4338913493858931E+03 1.4230565387499876E+03 + 1.4122414619792967E+03 1.4014465841567298E+03 1.3906723706616442E+03 + 1.3799192871052944E+03 1.3691877992655075E+03 1.3584783730206980E+03 + 1.3477914742831188E+03 1.3371275689314696E+03 1.3264871227427616E+03 + 1.3158706013235535E+03 1.3052784700404670E+03 1.2947111939500960E+03 + 1.2841692377282138E+03 1.2736530655983843E+03 1.2631631412599286E+03 + 1.2526999278152723E+03 1.2422638876967117E+03 1.2318554825925598E+03 + 1.2214751733727517E+03 1.2111234200138526E+03 1.2008006815235522E+03 + 1.1905074158645884E+03 1.1802440798781877E+03 1.1700111292069673E+03 + 1.1598090182173810E+03 1.1496381999216615E+03 1.1394991258993355E+03 + 1.1293922462182738E+03 1.1193180093553362E+03 1.1092768621166110E+03 + 1.0992692495572530E+03 1.0892956149009783E+03 1.0793563994591821E+03 + 1.0694520425497553E+03 1.0595829814155627E+03 1.0497496511426591E+03 + 1.0399524845782107E+03 1.0301919122481938E+03 1.0204683622748361E+03 + 1.0107822602938874E+03 1.0011340293716726E+03 9.9152408992201686E+02 + 9.8195285962300147E+02 9.7242075333362902E+02 9.6292818301039244E+02 + 9.5347555762376464E+02 9.4406328307466583E+02 9.3469176211089200E+02 + 9.2536139424357339E+02 9.1607257566364240E+02 9.0682569915838405E+02 + 8.9762115402804648E+02 8.8845932600259277E+02 8.7934059715855631E+02 + 8.7026534583609669E+02 8.6123394655621621E+02 8.5224676993822902E+02 + 8.4330418261744626E+02 8.3440654716317124E+02 8.2555422199697125E+02 + 8.1674756131130164E+02 8.0798691498849598E+02 7.9927262852013018E+02 + 7.9060504292683595E+02 7.8198449467854300E+02 7.7341131561522286E+02 + 7.6488583286813366E+02 7.5640836878161952E+02 7.4797924083547036E+02 + 7.3959876156790654E+02 7.3126723849917948E+02 7.2298497405586090E+02 + 7.1475226549581112E+02 7.0656940483389656E+02 6.9843667876845461E+02 + 6.9035436860856589E+02 6.8232275020214001E+02 6.7434209386486725E+02 + 6.6641266431006068E+02 6.5853472057941144E+02 6.5070851597471074E+02 + 6.4293429799054240E+02 6.3521230824800739E+02 6.2754278242948521E+02 + 6.1992595021449210E+02 6.1236203521663390E+02 6.0485125492172256E+02 + 5.9739382062705386E+02 5.8998993738191018E+02 5.8263980392928374E+02 + 5.7534361264889424E+02 5.6810154950148603E+02 5.6091379397447588E+02 + 5.5378051902896129E+02 5.4670189104811686E+02 5.3967806978702788E+02 + 5.3270920832396803E+02 5.2579545301317364E+02 5.1893694343912182E+02 + 5.1213381237236672E+02 5.0538618572693355E+02 4.9869418251933047E+02 + 4.9205791482917624E+02 4.8547748776149973E+02 4.7895299941071119E+02 + 4.7248454082629991E+02 4.6607219598025938E+02 4.5971604173628418E+02 + 4.5341614782075965E+02 4.4717257679555854E+02 4.4098538403269043E+02 + 4.3485461769080285E+02 4.2878031869358421E+02 4.2276252071006456E+02 + 4.1680125013686160E+02 4.1089652608237003E+02 4.0504836035293931E+02 + 3.9925675744103472E+02 3.9352171451542711E+02 3.8784322141340584E+02 + 3.8222126063505448E+02 3.7665580733959007E+02 3.7114682934379516E+02 + 3.6569428712254665E+02 3.6029813381146926E+02 3.5495831521171920E+02 + 3.4967476979691060E+02 3.4444742872220746E+02 3.3927621583557618E+02 + 3.3416104769123092E+02 3.2910183356525772E+02 3.2409847547345026E+02 + 3.1915086819134137E+02 3.1425889927646199E+02 3.0942244909280964E+02 + 3.0464139083755276E+02 2.9991559056995595E+02 2.9524490724254838E+02 + 2.9062919273451581E+02 2.8606829188734059E+02 2.8156204254266657E+02 + 2.7711027558240659E+02 2.7271281497107952E+02 2.6836947780037349E+02 + 2.6408007433593878E+02 2.5984440806639333E+02 2.5566227575454633E+02 + 2.5153346749081837E+02 2.4745776674886400E+02 2.4343495044337106E+02 + 2.3946478899003873E+02 2.3554704636771166E+02 2.3168148018266331E+02 + 2.2786784173500664E+02 2.2410587608722514E+02 2.2039532213479458E+02 + 2.1673591267888824E+02 2.1312737450114068E+02 2.0956942844044482E+02 + 2.0606178947177000E+02 2.0260416678696620E+02 1.9919626387754045E+02 + 1.9583777861936790E+02 1.9252840335932365E+02 1.8926782500379204E+02 + 1.8605572510903852E+02 1.8289177997340013E+02 1.7977566073127369E+02 + 1.7670703344885786E+02 1.7368555922162560E+02 1.7071089427348087E+02 + 1.6778269005757105E+02 1.6490059335871240E+02 1.6206424639738961E+02 + 1.5927328693529316E+02 1.5652734838234687E+02 1.5382605990518948E+02 + 1.5116904653706050E+02 1.4855592928905202E+02 1.4598632526267372E+02 + 1.4345984776369139E+02 1.4097610641718313E+02 1.3853470728377323E+02 + 1.3613525297698450E+02 1.3377734278166602E+02 1.3146057277343795E+02 + 1.2918453593910556E+02 1.2694882229798458E+02 1.2475301902408522E+02 + 1.2259671056909959E+02 1.2047947878613222E+02 1.1840090305412222E+02 + 1.1636056040289127E+02 1.1435802563876607E+02 1.1239287147070772E+02 + 1.1046466863689407E+02 1.0857298603168728E+02 1.0671739083292967E+02 + 1.0489744862950045E+02 1.0311272354907378E+02 1.0136277838599898E+02 + 9.9647174729296978E+01 9.7965473090591814E+01 9.6317233032029847E+01 + 9.4702013294056798E+01 9.3119371923002120E+01 9.1568866398402605E+01 + 9.0050053759995592E+01 8.8562490734317933E+01 8.7105733860839010E+01 + 8.5679339617564764E+01 8.4282864546039377E+01 8.2915865375683410E+01 + 8.1577899147394874E+01 8.0268523336352331E+01 7.8987295973948221E+01 + 7.7733775768791716E+01 7.6507522226711586E+01 7.5308095769699364E+01 + 7.4135057853725939E+01 7.2987971085373218E+01 7.1866399337219036E+01 + 7.0769907861915954E+01 6.9698063404909433E+01 6.8650434315737130E+01 + 6.7626590657860078E+01 6.6626104316971137E+01 6.5648549107736358E+01 + 6.4693500878919423E+01 6.3760537616850115E+01 6.2849239547192255E+01 + 6.1959189234977870E+01 6.1089971682868381E+01 6.0241174427615860E+01 + 5.9412387634691214E+01 5.8603204191057237E+01 5.7813219796062214E+01 + 5.7042033050433631E+01 5.6289245543357382E+01 5.5554461937625781E+01 + 5.4837290052845482E+01 5.4137340946693762E+01 5.3454228994219505E+01 + 5.2787571965181314E+01 5.2136991099423398E+01 5.1502111180285922E+01 + 5.0882560606052934E+01 5.0277971459437786E+01 4.9687979575111875E+01 + 4.9112224605277930E+01 4.8550350083295349E+01 4.8002003485359793E+01 + 4.7466836290244004E+01 4.6944504037104323E+01 4.6434666381355193E+01 + 4.5936987148618371E+01 4.5451134386746062E+01 4.4976780415921418E+01 + 4.4513601876834116E+01 4.4061279776930093E+01 4.3619499534729307E+01 + 4.3187951022206526E+01 4.2766328605223357E+01 4.2354331182002056E+01 + 4.1951662219623195E+01 4.1558029788532338E+01 4.1173146595031831E+01 + 4.0796730011737068E+01 4.0428502105968548E+01 4.0068189666052760E+01 + 3.9715524225500857E+01 3.9370242085032068E+01 3.9032084332410122E+01 + 3.8700796860057032E+01 3.8376130380412768E+01 3.8057840439005879E+01 + 3.7745687425206242E+01 3.7439436580629170E+01 3.7138858005167222E+01 + 3.6843726660626452E+01 3.6553822371951256E+01 3.6268929826023829E+01 + 3.5988838568034069E+01 3.5713342995416035E+01 3.5442242349359049E+01 + 3.5175340703903345E+01 3.4912446952638234E+01 3.4653374793027936E+01 + 3.4397942708393124E+01 3.4145973947585901E+01 3.3897296502396834E+01 + 3.3651743082742065E+01 3.3409151089677877E+01 3.3169362586298732E+01 + 3.2932224266573535E+01 3.2697587422181464E+01 3.2465307907406981E+01 + 3.2235246102158875E+01 3.2007266873175936E+01 3.1781239533484921E+01 + 3.1557037800175621E+01 3.1334539750556750E+01 3.1113627776758772E+01 + 3.0894188538845022E+01 3.0676112916496141E+01 3.0459295959326752E+01 + 3.0243636835897398E+01 3.0029038781478370E+01 2.9815409044625262E+01 + 2.9602658832620925E+01 2.9390703255840258E+01 2.9179461271090634E+01 + 2.8968855623981366E+01 2.8758812790372485E+01 2.8549262916954508E+01 + 2.8340139761006771E+01 2.8131380629383738E+01 2.7922926316776437E+01 + 2.7714721043294556E+01 2.7506712391416496E+01 2.7298851242350992E+01 + 2.7091091711856169E+01 2.6883391085558500E+01 2.6675709753816736E+01 + 2.6468011146172138E+01 2.6260261665429329E+01 2.6052430621408259E+01 + 2.5844490164410871E+01 2.5636415218442384E+01 2.5428183414230009E+01 + 2.5219775022078505E+01 2.5011172884604733E+01 2.4802362349390094E+01 + 2.4593331201592001E+01 2.4384069596553562E+01 2.4174569992450497E+01 + 2.3964827083015287E+01 2.3754837730375804E+01 2.3544600898047992E+01 + 2.3334117584119074E+01 2.3123390754659777E+01 2.2912425277401180E+01 + 2.2701227855713721E+01 2.2489806962922710E+01 2.2278172776996971E+01 + 2.2066337115643563E+01 2.1854313371844171E+01 2.1642116449864577E+01 + 2.1429762701771260E+01 2.1217269864486013E+01 2.1004656997409597E+01 + 2.0791944420645358E+01 2.0579153653851119E+01 2.0366307355749104E+01 + 2.0153429264320557E+01 1.9940544137712834E+01 1.9727677695884029E+01 + 1.9514856563011122E+01 1.9302108210684779E+01 1.9089460901915025E+01 + 1.8876943635968949E+01 1.8664586094062951E+01 1.8452418585928218E+01 + 1.8240471997270529E+01 1.8028777738141574E+01 1.7817367692239266E+01 + 1.7606274167154229E+01 1.7395529845576586E+01 1.7185167737478729E+01 + 1.6975221133286333E+01 1.6765723558051089E+01 1.6556708726635694E+01 + 1.6348210499922342E+01 1.6140262842053513E+01 1.5932899778714420E+01 + 1.5726155356463703E+01 1.5520063603120127E+01 1.5314658489209917E+01 + 1.5109973890480566E+01 1.4906043551484023E+01 1.4702901050232963E+01 + 1.4500579763932034E+01 1.4299112835784976E+01 1.4098533142878665E+01 + 1.3898873265142845E+01 1.3700165455385010E+01 1.3502441610397627E+01 + 1.3305733243135503E+01 1.3110071455958975E+01 1.2915486914939182E+01 + 1.2722009825219537E+01 1.2529669907428316E+01 1.2338496375135007E+01 + 1.2148517913343955E+01 1.1959762658016583E+01 1.1772258176614507E+01 + 1.1586031449653472E+01 1.1401108853259174E+01 1.1217516142714054E+01 + 1.1035278436984351E+01 1.0854420204216099E+01 1.0674965248187648E+01 + 1.0496936695707058E+01 1.0320356984940402E+01 1.0145247854658573E+01 + 9.9716303343879709E+00 9.7995247354514330E+00 9.6289506428842895E+00 + 9.4599269082109920E+00 9.2924716430664596E+00 9.1266022136469971E+00 + 8.9623352359742796E+00 8.7996865719564727E+00 8.6386713262298276E+00 + 8.4793038437637254E+00 8.3215977082126003E+00 8.1655657409969020E+00 + 8.0112200010962713E+00 7.8585717855367001E+00 7.7076316305545127E+00 + 7.5584093134186769E+00 7.4109138548939724E+00 7.2651535223263952E+00 + 7.1211358333330983E+00 6.9788675600780881E+00 6.8383547341158692E+00 + 6.6996026517842520E+00 6.5626158801283303E+00 6.4273982633371105E+00 + 6.2939529296743562E+00 6.1622822988856969E+00 6.0323880900633320E+00 + 5.9042713299505341E+00 5.7779323616675331E+00 5.6533708538410608E+00 + 5.5305858101193586E+00 5.4095755790551738E+00 5.2903378643387802E+00 + 5.1728697353638067E+00 5.0571676381082904E+00 4.9432274063139579E+00 + 4.8310442729465279E+00 4.7206128819204887E+00 4.6119273000714278E+00 + 4.5049810293597874E+00 4.3997670192896976E+00 4.2962776795269431E+00 + 4.1945048927004471E+00 4.0944400273716468E+00 3.9960739511567085E+00 + 3.8993970439864154E+00 3.8043992114892893E+00 3.7110698984832426E+00 + 3.6193981025618736E+00 3.5293723877613474E+00 3.4409808982944345E+00 + 3.3542113723383222E+00 3.2690511558633344E+00 3.1854872164897419E+00 + 3.1035061573604632E+00 3.0230942310173452E+00 2.9442373532690658E+00 + 2.8669211170417341E+00 2.7911308061953775E+00 2.7168514093014182E+00 + 2.6440676333675612E+00 2.5727639175006463E+00 2.5029244464974165E+00 + 2.4345331643443302E+00 2.3675737876644631E+00 2.3020298190072199E+00 + 2.2378845600681316E+00 2.1751211247821907E+00 2.1137224522922571E+00 + 2.0536713197849084E+00 1.9949503551861407E+00 1.9375420497098486E+00 + 1.8814287702521271E+00 1.8265927716247456E+00 1.7730162086215344E+00 + 1.7206811479114816E+00 1.6695695797528289E+00 1.6196634295224883E+00 + 1.5709445690555743E+00 1.5233948277898579E+00 1.4769960037104350E+00 + 1.4317298740898954E+00 1.3875782060197126E+00 1.3445227667286497E+00 + 1.3025453336843194E+00 1.2616277044741284E+00 1.2217517064621761E+00 + 1.1828992062188093E+00 1.1450521187197398E+00 1.1081924163119155E+00 + 1.0723021374434334E+00 1.0373633951550991E+00 1.0033583853313361E+00 + 9.7026939470844831E-01 9.3807880863836679E-01 9.0676911860628695E-01 + 8.7632292950074198E-01 8.4672296663495139E-01 8.1795208251840057E-01 + 7.8999326337793230E-01 7.6282963542774163E-01 7.3644447088798581E-01 + 7.1082119375186570E-01 6.8594338530132559E-01 6.6179478937170666E-01 + 6.3835931736592788E-01 6.1562105301903414E-01 5.9356425691412351E-01 + 5.7217337075095742E-01 5.5143302136873984E-01 5.3132802452481398E-01 + 5.1184338843120913E-01 4.9296431705122712E-01 4.7467621315841918E-01 + 4.5696468116054551E-01 4.3981552969125148E-01 4.2321477397241453E-01 + 4.0714863795022060E-01 3.9160355620822695E-01 3.7656617566073997E-01 + 3.6202335702998523E-01 3.4796217611060853E-01 3.3436992482511463E-01 + 3.2123411207392494E-01 3.0854246438372462E-01 2.9628292635783343E-01 + 2.8444366093228712E-01 2.7301304944136107E-01 2.6197969149621186E-01 + 2.5133240468035078E-01 2.4106022406562805E-01 2.3115240155247493E-01 + 2.2159840503817130E-01 2.1238791741704907E-01 2.0351083541666520E-01 + 1.9495726827424367E-01 1.8671753625798465E-01 1.7878216903825228E-01 + 1.7114190391419662E-01 1.6378768390197673E-01 1.5671065569154524E-01 + 1.4990216747980500E-01 1.4335376668896616E-01 1.3705719757998749E-01 + 1.3100439877214945E-01 1.2518750068095172E-01 1.1959882288767412E-01 + 1.1423087145496409E-01 1.0907633620369024E-01 1.0412808796690839E-01 + 9.9379175837068637E-02 9.4822824422456126E-02 9.0452431128216604E-02 + 8.6261563476148551E-02 8.2243956475688176E-02 7.8393510056178076E-02 + 7.4704286567660705E-02 7.1170508354127568E-02 6.7786555399547435E-02 + 6.4546963043222480E-02 6.1446419757321118E-02 5.8479764975985525E-02 + 5.5641986962452150E-02 5.2928220698327810E-02 5.0333745777707994E-02 + 4.7853984288290664E-02 4.5484498662079154E-02 4.3220989479633265E-02 + 4.1059293214033940E-02 3.8995379903601690E-02 3.7025350745748399E-02 + 3.5145435607939673E-02 3.3351990455347785E-02 3.1641494698197214E-02 + 3.0010548464846777E-02 2.8455869809203612E-02 2.6974291863022175E-02 + 2.5562759944989015E-02 2.4218328639228574E-02 2.2938158856051685E-02 + 2.1719514887466599E-02 2.0559761469287407E-02 1.9456360860693082E-02 + 1.8406869950919221E-02 1.7408937401484161E-02 1.6460300831036966E-02 + 1.5558784048634719E-02 1.4702294340045927E-02 1.3888819810576918E-02 + 1.3116426786937970E-02 1.2383257279823225E-02 1.1687526508164910E-02 + 1.1027520485437122E-02 1.0401593667913159E-02 9.8081666644147317E-03 + 9.2457240068129862E-03 8.7128119803400149E-03 8.2080365126287608E-03 + 7.7300611203104715E-03 7.2776049119486156E-03 6.8494406460671807E-03 + 6.4443928430343057E-03 6.0613359495793944E-03 5.6991925547508274E-03 + 5.3569316561554127E-03 5.0335669753598794E-03 4.7281553213730640E-03 + 4.4397950011666005E-03 4.1676242762276267E-03 3.9108198641716711E-03 + 3.6685954844741819E-03 3.4402004474071491E-03 3.2249182852910748E-03 + 3.0220654251942535E-03 2.8309899022292504E-03 2.6510701126123523E-03 + 2.4817136056648334E-03 2.3223559139462654E-03 2.1724594207197657E-03 + 2.0315122639567823E-03 1.8990272760963877E-03 1.7745409587797236E-03 + 1.6576124917858869E-03 1.5478227754001197E-03 1.4447735054499825E-03 + 1.3480862802495090E-03 1.2574017386958361E-03 1.1723787287672249E-03 + 1.0926935056762479E-03 1.0180389589367687E-03 9.4812386760881068E-04 + 8.8267218299087390E-04 8.2142233803551802E-04 7.6412658277044232E-04 + 7.1055034501416470E-04 6.6047161568283765E-04 6.1368035799243942E-04 + 5.6997793986885987E-04 5.2917658888690584E-04 4.9109886906835963E-04 + 4.5557717887852249E-04 4.2245326977047141E-04 3.9157778463625944E-04 + 3.6280981553471757E-04 3.3601648007613582E-04 3.1107251585505829E-04 + 2.8785989233352772E-04 2.6626743958852562E-04 2.4619049334889106E-04 + 2.2753055575869271E-04 2.1019497131591634E-04 1.9409661744726632E-04 + 1.7915360919197650E-04 1.6528901747962392E-04 1.5243060049916765E-04 + 1.4051054766862862E-04 1.2946523572708853E-04 1.1923499648289543E-04 + 1.0976389576419836E-04 1.0099952313009400E-04 9.2892791912804461E-05 + 8.5397749173342539E-05 7.8471395165111111E-05 7.2073511911746512E-05 + 6.6166500517295405E-05 6.0715226838452743E-05 5.5686875160113820E-05 + 5.1050809526870343E-05 4.6778442394296176E-05 4.2843110274944012E-05 + 3.9219956064861345E-05 3.5885817747160012E-05 3.2819123179701891E-05 + 2.9999790684314946E-05 2.7409135165099001E-05 2.5029779493331614E-05 + 2.2845570906222524E-05 2.0841502176300630E-05 1.9003637317532987E-05 + 1.7319041603377886E-05 1.5775715680854163E-05 1.4362533573370384E-05 + 1.3069184373495290E-05 1.1886117435061871E-05 1.0804490881988409E-05 + 9.8161232589612369E-06 8.9134481566643286E-06 8.0894716515534030E-06 + 7.3377324072644746E-06 6.6522642916203949E-06 6.0275613698272654E-06 + 5.4585451409284821E-06 4.9405338907443720E-06 4.4692140405474963E-06 + 4.0406133765526976E-06 3.6510760508058229E-06 3.2972392495048794E-06 + 2.9760114299326356E-06 2.6845520321461337E-06 2.4202525763881264E-06 + 2.1807190617592301E-06 1.9637555861092230E-06 1.7673491113346110E-06 + 1.5896553023238040E-06 1.4289853716724781E-06 1.2837938660052383E-06 + 1.1526673332897926E-06 1.0343138139215619E-06 9.2755310159399820E-07 + 8.3130772305814717E-07 7.4459458881823340E-07 6.6651726961353535E-07 + 5.9625885620472537E-07 5.3307536251997385E-07 4.7628963462716276E-07 + 4.2528573028784905E-07 3.7950373602084641E-07 3.3843499066272317E-07 + 3.0161768636372457E-07 2.6863281980470475E-07 2.3910046816798386E-07 + 2.1267636604666489E-07 1.8904876103699151E-07 1.6793552723068604E-07 + 1.4908151721282090E-07 1.3225613447932578E-07 1.1725110942049077E-07 + 1.0387846317628087E-07 9.1968644759399580E-08 8.1368827866245084E-08 + 7.1941354757353118E-08 6.3562315490839051E-08 5.6120251637708342E-08 + 4.9514974399679188E-08 4.3656487791132112E-08 3.8464008239721119E-08 + 3.3865072607618974E-08 2.9794727239867361E-08 2.6194791210254009E-08 + 2.3013187460819840E-08 2.0203336020756076E-08 1.7723603946161342E-08 + 1.5536807045903832E-08 1.3609758852615041E-08 1.1912862663427284E-08 + 1.0419742814222379E-08 9.1069116655247847E-09 7.9534690693232633E-09 + 6.9408313555379419E-09 6.0524871259700475E-09 5.2737773737255185E-09 + 4.5916976585522396E-09 3.9947202644752783E-09 3.4726344466807761E-09 + 3.0164030408557729E-09 2.6180338611394365E-09 2.2704644534277564E-09 + 1.9674588998847553E-09 1.7035154889843034E-09 1.4737841740190109E-09 + 1.2739928425008568E-09 1.1003815099281316E-09 9.4964363464734023E-10 + 8.1887382659753285E-10 7.0552129214755383E-10 6.0734842054681795E-10 + 5.2239397519352089E-10 4.4894040543378209E-10 3.8548484236154476E-10 + 3.3071338548316801E-10 2.8347832650479303E-10 2.4277799223084304E-10 + 2.0773892093915222E-10 1.7760011590987637E-10 1.5169914629696951E-10 + 1.2945988948782567E-10 1.1038173072446891E-10 9.4030055266501021E-11 + 8.0027885953249472E-11 6.8048534845962027E-11 5.7809151861915923E-11 + 4.9065066098868323E-11 4.1604827025967182E-11 3.5245863010026881E-11 + 2.9830683867336298E-11 2.5223562384361643E-11 2.1307637130236261E-11 + 1.7982385475754809E-11 1.5161421615972517E-11 1.2770579637570556E-11 + 1.0746246342490113E-11 9.0339126945388875E-12 7.5869164488315590E-12 + 6.3653518030827672E-12 5.3351248183753184E-12 4.4671359343051336E-12 + 3.7365731847514262E-12 3.1223017378292550E-12 2.6063371655549068E-12 + 2.1733914212049247E-12 1.8104818884544865E-12 1.5065950869363885E-12 + 1.2523976924995496E-12 1.0399884738450909E-12 8.6268557528873632E-13 + 7.1484430145750140E-13 5.9170119565374666E-13 4.8924075999489127E-13 + 4.0408165168073112E-13 3.3337961422588919E-13 2.7474477265657822E-13 + 2.2617124410218433E-13 1.8597729575419353E-13 1.5275452598553629E-13 + 1.2532475609005143E-13 1.0270350364609817E-13 8.4069067485164299E-14 + 6.8736391785889808E-14 5.6134995669707391E-14 4.5790357265120340E-14 + 3.7308229656009419E-14 3.0361442295347398E-14 2.4678806977528173E-14 + 2.0035803743617221E-14 1.6246770387143657E-14 1.3158360617516370E-14 + 1.0644071367899315E-14 8.5996700257600607E-15 6.9393782309035927E-15 + 5.5926909468518514E-15 4.5017283035691714E-15 3.6190336972589514E-15 + 2.9057452177840775E-15 2.3300790028387739E-15 1.8660728891977019E-15 + 1.4925470025523718E-15 1.1922449199337019E-15 9.5112494259290204E-16 + 7.5777599550061152E-16 6.0293686197383783E-16 4.7910098780847593E-16 + 3.8019205073173061E-16 3.0129797505530473E-16 2.3845315227994058E-16 + 1.8846036918306434E-16 1.4874539923282938E-16 1.1723842650866480E-16 + 9.2277482217966156E-17 7.2529914996937144E-17 5.6928615029153006E-17 + 4.4620291860606038E-17 3.4923586226087682E-17 2.7295193712054290E-17 + 2.1302506513962227E-17 1.6601550519426051E-17 1.2919218195078976E-17 + 1.0038981416123106E-17 7.7894192536133063E-18 6.0350194973607614E-18 + 4.6688140655798708E-18 3.6064913640541707E-18 2.7816963692254242E-18 + 2.1422844252944705E-18 1.6473397036671495E-18 1.2648058241381650E-18 + 9.6960580808679295E-19 7.4215258294471928E-19 5.6717071953561923E-19 + 4.3276580999237248E-19 3.2969058131899753E-19 2.5076705943738413E-19 + 1.9043231771139561E-19 1.4438194364632077E-19 1.0929064836373996E-19 + 8.2593678305566966E-20 6.2316072746747448E-20 4.6939510609258416E-20 + 3.5298640593256750E-20 2.6500498756231650E-20 1.9861975325017918E-20 + 1.4861368572584486E-20 1.1100915018687076E-20 8.2778577773900797E-21 + 6.1621452519754133E-21 4.5792699174841517E-21 3.3970850772742640E-21 + 2.5156949277958637E-21 1.8597148976400149E-21 1.3723568691849202E-21 + 1.0109169252189966E-21 7.4333911745980762E-22 5.4560330089469870E-22 + 3.9974295052233353E-22 2.9234372451918474E-22 2.1340822899454764E-22 + 1.5549922571558957E-22 1.1309416902658900E-22 8.2099840525997080E-23 + 5.9488046008829321E-23 4.3022686988628240E-23 3.1055670539632578E-23 + 2.2374582040788619E-23 1.6089207436288303E-23 1.1547157736357750E-23 + 8.2712523783429084E-24 5.9131397405482104E-24 4.2190108963807431E-24 + 3.0043027455696479E-24 2.1350702207986116E-24 1.5142964336852783E-24 + 1.0718517455729667E-24 7.5714386521225443E-25 5.3374856119107688E-25 + 3.7549518238722720E-25 2.6361860240051770E-25 1.8469129483314529E-25 + 1.2912493397609882E-25 9.0086912841940168E-26 6.2718514180642153E-26 + 4.3571931154315189E-26 3.0205730255055574E-26 2.0894780500024445E-26 + 1.4422702809117085E-26 9.9336820479269065E-27 6.8268910497866381E-27 + 4.6814363995994090E-27 3.2031185295124985E-27 2.1867486720578510E-27 + 1.4895357475686601E-27 1.0123329407407913E-27 6.8645225074565854E-28 + 4.6441467529289650E-28 3.1347596487217823E-28 2.1110538449574427E-28 + 1.4183555912317320E-28 9.5072662358750004E-29 6.3577702642233312E-29 + 4.2415690405377928E-29 2.8230244384765077E-29 1.8744028585937746E-29 + 1.2415528695138236E-29 8.2038028853603333E-30 5.4076258451358954E-30 + 3.5557656808775152E-30 2.3323210731438901E-30 1.5260396768128809E-30 + 9.9599955665560556E-31 6.4842805919422380E-31 4.2108255859809571E-31 + 2.7275261906112297E-31 1.7622203502897660E-31 1.1356236906629317E-31 + 7.2993624046396585E-32 4.6795589228973791E-32 2.9921795057688792E-32 + 1.9082104744174121E-32 1.2137072594211961E-32 7.6991673462297593E-33 + 4.8708948617685672E-33 3.0732786954481082E-33 1.9338210969249143E-33 + 1.2135138077669639E-33 7.5941663898340929E-34 4.7393118474176539E-34 + 2.9494636339655025E-34 1.8304426756946306E-34 1.1327843684047976E-34 + 6.9905129815133688E-35 4.3016407811555087E-35 2.6394600654218081E-35 + 1.6148955239974941E-35 9.8517780761480504E-36 5.9926386570131525E-36 + 3.6345213604164880E-36 2.1978313143248723E-36 1.3251095149973086E-36 + 7.9654756120619694E-37 4.7738236156217048E-37 2.8523833032207450E-37 + 1.6991368530332559E-37 1.0090666155445345E-37 5.9741252003951053E-38 + 3.5260117493952125E-38 2.0746270881039820E-38 1.2168443719358361E-38 + 7.1147646251040317E-39 4.1467541956254912E-39 2.4091841930681784E-39 + 1.3952027495033814E-39 8.0538186504903944E-40 4.6339903015627092E-40 + 2.6575940418091491E-40 1.5191261942035653E-40 8.6549017893698526E-41 + 4.9145624180921673E-41 2.7813348094313666E-41 1.5687676468768937E-41 + 8.8184466729703020E-42 4.9402030846184287E-42 2.7580861253187809E-42 + 1.5345186546882597E-42 8.5080260431351890E-43 4.7007661271217088E-43 + 2.5881087773860480E-43 1.4199114092943385E-43 7.7623916930791112E-44 + 4.2284005715698001E-44 2.2950575638863244E-44 1.2411906712959167E-44 + 6.6880790037640994E-45 3.5906470101247023E-45 1.9206262169473542E-45 + 1.0235337160241216E-45 5.4342660054618644E-46 2.8744138234928481E-46 + 1.5146682187664200E-46 7.9512545126073854E-47 4.1580888027662854E-47 + 2.1661164932505705E-47 1.1240605918807391E-47 5.8104177596890537E-48 + 2.9917446003088095E-48 1.5343729377722274E-48 7.8381988174488314E-49 + 3.9881378637552064E-49 2.0210736569716019E-49 1.0200975318381744E-49 + 5.1278846920901981E-50 2.5672086179369090E-50 1.2799698036095539E-50 + 6.3554040549263281E-51 3.1425388424124915E-51 1.5473953456955558E-51 + 7.5874194924743748E-52 3.7046573971899553E-52 1.8011590011190660E-52 + 8.7195673290474813E-53 4.2030588070219810E-53 2.0172157276119416E-53 + 9.6392713195710060E-54 4.5859530843744896E-54 2.1721861933784818E-54 + 1.0243183551769035E-54 4.8087442775591460E-55 2.2473748540709170E-55 + 1.0455737581193423E-55 4.8423625589271018E-56 2.2323971420955249E-56 + 1.0244367234444283E-56 4.6793589430237174E-57 2.1274654779827456E-57 + 9.6272441032844108E-58 4.3360229613716196E-58 1.9436576706621022E-58 + 8.6710992453735969E-59 3.8498357768447913E-59 1.7010274951475642E-59 + 7.4794366161091991E-60 3.2726693402038172E-60 1.4249454835582093E-60 + 6.1736835522523418E-61 2.6615063917575898E-61 1.1416544059288719E-61 + 4.8725093428683044E-62 2.0690376406463684E-62 8.7411489358472012E-63 + 3.6740047845404202E-63 1.5362735636871363E-63 6.3905985020178735E-64 + 2.6445090668787977E-64 1.0885928400575507E-64 4.4574761443348730E-65 + 1.8155235920733263E-65 7.3551269729630211E-66 2.9637384362085941E-66 + 1.1877824964807705E-66 4.7344242066445622E-67 1.8767930203775492E-67 + 7.3989524737373713E-68 2.9007769889168917E-68 1.1309260478184614E-68 + 4.3844514477412864E-69 1.6902185476134559E-69 6.4789147105585971E-70 + 2.4693272051416559E-70 9.3574408194241175E-71 3.5255153657363789E-71 + 1.3205660503109949E-71 4.9176143744496453E-72 1.8204987337567306E-72 + 6.6996562481001360E-73 2.4508992313468080E-73 8.9123794537780681E-74 + 3.2213769879560512E-74 1.1573198674528530E-74 4.1325056197359955E-75 + 1.4665801715812550E-75 5.1726668872047273E-76 1.8131072890656376E-76 + 6.3156294287445432E-77 2.1861385423913393E-77 7.5195231129159290E-78 + 2.5700292797684429E-78 8.7277939726839234E-79 2.9449161717404952E-79 + 9.8724905428387329E-80 3.2881306316885790E-80 1.0879853867380867E-80 + 3.5762819099474506E-81 1.1677719576566173E-81 3.7877803313292044E-82 + 1.2203789631061824E-82 3.9054445046057087E-83 1.2413510304222492E-83 + 3.9187682552701113E-84 1.2286204691021931E-84 3.8254397623299021E-85 + 1.1828307653921481E-85 3.6318135969959099E-86 1.1073021849294995E-86 + 3.3522184317282101E-87 1.0076362652797524E-87 3.0071997767799156E-88 + 8.9102393235587597E-89 2.6209971257353378E-89 7.6537663300132457E-90 + 2.2186900014810361E-90 6.3842814186657574E-91 1.8234862208363880E-91 + 5.1695056800470265E-92 1.4545629365566595E-92 4.0619426808974195E-93 + 1.1257281924787449E-93 3.0960814680792859E-94 8.4498852439373816E-95 + 2.2883858076616646E-95 6.1493327690558241E-96 1.6395598433450958E-96 + 4.3371774627438780E-97 1.1382764992317483E-97 2.9636637046600306E-98 + 7.6547404017877542E-99 1.9612462492278884E-99 4.984407270802892E-100 + 1.256475935019405E-100 3.141474322470864E-101 7.789881766000106E-102 + 1.915691005621696E-102 4.671931093988308E-103 1.129855246011088E-103 + 2.709464907300238E-104 6.442544709750282E-105 1.518879364870785E-105 + 3.550256242441360E-106 8.227070997020972E-107 1.889985067407788E-107 + 4.304051328349662E-108 9.715848092794175E-109 2.173934045262105E-109 + 4.821170161357824E-110 1.059685481877582E-110 2.308329615157566E-111 + 4.983021609836717E-112 1.065956608020644E-112 2.259517444278163E-113 + 4.745683866558300E-114 9.875663167604503E-115 2.036082762105304E-115 + 4.158756798945675E-116 8.414875886750164E-117 1.686650373704501E-117 + 3.348671600320559E-118 6.585171391147857E-119 1.282582894124198E-119 + 2.474026574840483E-120 4.726073460152902E-121 8.940263441341539E-122 + 1.674674365387501E-122 3.106111354044762E-123 5.704092571240530E-124 + 1.037087086598896E-124 1.866719863085381E-125 3.326246229332325E-126 + 5.867011679942469E-127 1.024336696027949E-127 1.770139791921458E-128 + 3.027521345631804E-129 5.124569230928840E-130 8.584077540739433E-131 + 1.422890761280903E-131 2.333816044954155E-132 3.787513790447576E-133 + 6.081485876249744E-134 9.660694149200696E-135 1.518187187882658E-135 + 2.360129400230561E-136 3.629233363832069E-137 5.519981017769272E-138 + 8.303837611525503E-139 1.235417051743533E-139 1.817676809357488E-140 + 2.644617509902814E-141 3.804757161978067E-142 5.412321437655039E-143 + 7.612151562244461E-144 1.058456646432357E-144 1.454973466327754E-145 + 1.977096777096754E-146 2.655621045485554E-147 3.525689117025115E-148 + 4.626323602574785E-149 5.999519826935219E-150 7.688836193296808E-151 + 9.737341440395099E-152 1.218473724274815E-152 1.506662987117712E-153 + 1.841639201437685E-154 2.216536026921148E-155 2.584746484771363E-156 + 2.975425716038082E-157 3.380915634749302E-158 3.791748079730210E-159 + + + 3.2284370575338028E-01 3.2284370575196780E-01 3.2284370574769405E-01 + 3.2284370574050753E-01 3.2284370573035581E-01 3.2284370571718546E-01 + 3.2284370570094234E-01 3.2284370568157172E-01 3.2284370565901782E-01 + 3.2284370563322418E-01 3.2284370560413367E-01 3.2284370557168790E-01 + 3.2284370553582853E-01 3.2284370549649549E-01 3.2284370545362845E-01 + 3.2284370540716595E-01 3.2284370535704587E-01 3.2284370530320505E-01 + 3.2284370524557954E-01 3.2284370518410466E-01 3.2284370511871441E-01 + 3.2284370504934223E-01 3.2284370497592058E-01 3.2284370489838077E-01 + 3.2284370481665364E-01 3.2284370473066837E-01 3.2284370464035389E-01 + 3.2284370454563766E-01 3.2284370444644628E-01 3.2284370434270526E-01 + 3.2284370423433928E-01 3.2284370412127200E-01 3.2284370400342577E-01 + 3.2284370388072198E-01 3.2284370375308097E-01 3.2284370362042197E-01 + 3.2284370348266334E-01 3.2284370333972195E-01 3.2284370319151345E-01 + 3.2284370303795307E-01 3.2284370287895409E-01 3.2284370271442886E-01 + 3.2284370254428885E-01 3.2284370236844379E-01 3.2284370218680275E-01 + 3.2284370199927287E-01 3.2284370180576066E-01 3.2284370160617121E-01 + 3.2284370140040813E-01 3.2284370118837374E-01 3.2284370096996934E-01 + 3.2284370074509461E-01 3.2284370051364791E-01 3.2284370027552617E-01 + 3.2284370003062535E-01 3.2284369977883937E-01 3.2284369952006120E-01 + 3.2284369925418199E-01 3.2284369898109183E-01 3.2284369870067930E-01 + 3.2284369841283100E-01 3.2284369811743235E-01 3.2284369781436756E-01 + 3.2284369750351866E-01 3.2284369718476630E-01 3.2284369685798991E-01 + 3.2284369652306683E-01 3.2284369617987274E-01 3.2284369582828210E-01 + 3.2284369546816766E-01 3.2284369509939986E-01 3.2284369472184793E-01 + 3.2284369433537935E-01 3.2284369393985968E-01 3.2284369353515263E-01 + 3.2284369312112043E-01 3.2284369269762314E-01 3.2284369226451881E-01 + 3.2284369182166428E-01 3.2284369136891389E-01 3.2284369090612031E-01 + 3.2284369043313405E-01 3.2284368994980384E-01 3.2284368945597636E-01 + 3.2284368895149629E-01 3.2284368843620614E-01 3.2284368790994639E-01 + 3.2284368737255548E-01 3.2284368682386977E-01 3.2284368626372306E-01 + 3.2284368569194755E-01 3.2284368510837280E-01 3.2284368451282641E-01 + 3.2284368390513324E-01 3.2284368328511653E-01 3.2284368265259672E-01 + 3.2284368200739200E-01 3.2284368134931807E-01 3.2284368067818842E-01 + 3.2284367999381403E-01 3.2284367929600333E-01 3.2284367858456231E-01 + 3.2284367785929424E-01 3.2284367712000017E-01 3.2284367636647820E-01 + 3.2284367559852384E-01 3.2284367481593029E-01 3.2284367401848746E-01 + 3.2284367320598312E-01 3.2284367237820161E-01 3.2284367153492527E-01 + 3.2284367067593267E-01 3.2284366980100049E-01 3.2284366890990163E-01 + 3.2284366800240633E-01 3.2284366707828227E-01 3.2284366613729354E-01 + 3.2284366517920116E-01 3.2284366420376354E-01 3.2284366321073543E-01 + 3.2284366219986893E-01 3.2284366117091229E-01 3.2284366012361099E-01 + 3.2284365905770696E-01 3.2284365797293907E-01 3.2284365686904215E-01 + 3.2284365574574864E-01 3.2284365460278636E-01 3.2284365343988064E-01 + 3.2284365225675238E-01 3.2284365105311957E-01 3.2284364982869612E-01 + 3.2284364858319242E-01 3.2284364731631504E-01 3.2284364602776705E-01 + 3.2284364471724697E-01 3.2284364338445037E-01 3.2284364202906835E-01 + 3.2284364065078797E-01 3.2284363924929255E-01 3.2284363782426101E-01 + 3.2284363637536834E-01 3.2284363490228568E-01 3.2284363340467914E-01 + 3.2284363188221116E-01 3.2284363033453961E-01 3.2284362876131822E-01 + 3.2284362716219572E-01 3.2284362553681700E-01 3.2284362388482202E-01 + 3.2284362220584595E-01 3.2284362049951976E-01 3.2284361876546930E-01 + 3.2284361700331582E-01 3.2284361521267574E-01 3.2284361339316026E-01 + 3.2284361154437596E-01 3.2284360966592446E-01 3.2284360775740178E-01 + 3.2284360581839922E-01 3.2284360384850269E-01 3.2284360184729288E-01 + 3.2284359981434496E-01 3.2284359774922888E-01 3.2284359565150900E-01 + 3.2284359352074410E-01 3.2284359135648749E-01 3.2284358915828643E-01 + 3.2284358692568282E-01 3.2284358465821250E-01 3.2284358235540539E-01 + 3.2284358001678537E-01 3.2284357764187072E-01 3.2284357523017282E-01 + 3.2284357278119746E-01 3.2284357029444372E-01 3.2284356776940482E-01 + 3.2284356520556690E-01 3.2284356260241004E-01 3.2284355995940767E-01 + 3.2284355727602632E-01 3.2284355455172559E-01 3.2284355178595908E-01 + 3.2284354897817236E-01 3.2284354612780469E-01 3.2284354323428799E-01 + 3.2284354029704682E-01 3.2284353731549881E-01 3.2284353428905388E-01 + 3.2284353121711484E-01 3.2284352809907635E-01 3.2284352493432594E-01 + 3.2284352172224312E-01 3.2284351846219989E-01 3.2284351515355969E-01 + 3.2284351179567844E-01 3.2284350838790371E-01 3.2284350492957486E-01 + 3.2284350142002305E-01 3.2284349785857047E-01 3.2284349424453146E-01 + 3.2284349057721101E-01 3.2284348685590591E-01 3.2284348307990385E-01 + 3.2284347924848356E-01 3.2284347536091457E-01 3.2284347141645708E-01 + 3.2284346741436232E-01 3.2284346335387204E-01 3.2284345923421803E-01 + 3.2284345505462275E-01 3.2284345081429883E-01 3.2284344651244890E-01 + 3.2284344214826560E-01 3.2284343772093138E-01 3.2284343322961861E-01 + 3.2284342867348875E-01 3.2284342405169320E-01 3.2284341936337219E-01 + 3.2284341460765592E-01 3.2284340978366294E-01 3.2284340489050106E-01 + 3.2284339992726663E-01 3.2284339489304503E-01 3.2284338978690980E-01 + 3.2284338460792272E-01 3.2284337935513457E-01 3.2284337402758345E-01 + 3.2284336862429547E-01 3.2284336314428491E-01 3.2284335758655358E-01 + 3.2284335195009017E-01 3.2284334623387162E-01 3.2284334043686141E-01 + 3.2284333455801029E-01 3.2284332859625592E-01 3.2284332255052217E-01 + 3.2284331641971997E-01 3.2284331020274665E-01 3.2284330389848526E-01 + 3.2284329750580504E-01 3.2284329102356152E-01 3.2284328445059512E-01 + 3.2284327778573252E-01 3.2284327102778521E-01 3.2284326417555009E-01 + 3.2284325722780888E-01 3.2284325018332810E-01 3.2284324304085893E-01 + 3.2284323579913687E-01 3.2284322845688146E-01 3.2284322101279678E-01 + 3.2284321346556993E-01 3.2284320581387244E-01 3.2284319805635864E-01 + 3.2284319019166630E-01 3.2284318221841640E-01 3.2284317413521219E-01 + 3.2284316594064005E-01 3.2284315763326826E-01 3.2284314921164758E-01 + 3.2284314067431058E-01 3.2284313201977166E-01 3.2284312324652625E-01 + 3.2284311435305174E-01 3.2284310533780580E-01 3.2284309619922757E-01 + 3.2284308693573616E-01 3.2284307754573149E-01 3.2284306802759322E-01 + 3.2284305837968091E-01 3.2284304860033364E-01 3.2284303868787012E-01 + 3.2284302864058795E-01 3.2284301845676328E-01 3.2284300813465128E-01 + 3.2284299767248509E-01 3.2284298706847592E-01 3.2284297632081299E-01 + 3.2284296542766272E-01 3.2284295438716876E-01 3.2284294319745194E-01 + 3.2284293185660951E-01 3.2284292036271500E-01 3.2284290871381821E-01 + 3.2284289690794477E-01 3.2284288494309543E-01 3.2284287281724661E-01 + 3.2284286052834910E-01 3.2284284807432856E-01 3.2284283545308506E-01 + 3.2284282266249220E-01 3.2284280970039714E-01 3.2284279656462100E-01 + 3.2284278325295729E-01 3.2284276976317239E-01 3.2284275609300450E-01 + 3.2284274224016474E-01 3.2284272820233489E-01 3.2284271397716841E-01 + 3.2284269956228984E-01 3.2284268495529383E-01 3.2284267015374568E-01 + 3.2284265515518024E-01 3.2284263995710194E-01 3.2284262455698426E-01 + 3.2284260895226935E-01 3.2284259314036762E-01 3.2284257711865777E-01 + 3.2284256088448560E-01 3.2284254443516430E-01 3.2284252776797384E-01 + 3.2284251088016036E-01 3.2284249376893603E-01 3.2284247643147834E-01 + 3.2284245886493018E-01 3.2284244106639898E-01 3.2284242303295629E-01 + 3.2284240476163772E-01 3.2284238624944150E-01 3.2284236749332978E-01 + 3.2284234849022636E-01 3.2284232923701744E-01 3.2284230973055039E-01 + 3.2284228996763392E-01 3.2284226994503717E-01 3.2284224965948954E-01 + 3.2284222910767979E-01 3.2284220828625576E-01 3.2284218719182411E-01 + 3.2284216582094949E-01 3.2284214417015394E-01 3.2284212223591696E-01 + 3.2284210001467428E-01 3.2284207750281763E-01 3.2284205469669436E-01 + 3.2284203159260672E-01 3.2284200818681108E-01 3.2284198447551815E-01 + 3.2284196045489111E-01 3.2284193612104656E-01 3.2284191147005270E-01 + 3.2284188649792966E-01 3.2284186120064806E-01 3.2284183557412904E-01 + 3.2284180961424341E-01 3.2284178331681113E-01 3.2284175667760046E-01 + 3.2284172969232794E-01 3.2284170235665666E-01 3.2284167466619679E-01 + 3.2284164661650422E-01 3.2284161820307988E-01 3.2284158942136970E-01 + 3.2284156026676314E-01 3.2284153073459310E-01 3.2284150082013480E-01 + 3.2284147051860546E-01 3.2284143982516306E-01 3.2284140873490663E-01 + 3.2284137724287404E-01 3.2284134534404269E-01 3.2284131303332791E-01 + 3.2284128030558223E-01 3.2284124715559526E-01 3.2284121357809220E-01 + 3.2284117956773350E-01 3.2284114511911383E-01 3.2284111022676126E-01 + 3.2284107488513669E-01 3.2284103908863276E-01 3.2284100283157319E-01 + 3.2284096610821211E-01 3.2284092891273247E-01 3.2284089123924620E-01 + 3.2284085308179261E-01 3.2284081443433743E-01 3.2284077529077287E-01 + 3.2284073564491561E-01 3.2284069549050631E-01 3.2284065482120894E-01 + 3.2284061363060912E-01 3.2284057191221421E-01 3.2284052965945165E-01 + 3.2284048686566785E-01 3.2284044352412766E-01 3.2284039962801303E-01 + 3.2284035517042253E-01 3.2284031014436965E-01 3.2284026454278203E-01 + 3.2284021835850069E-01 3.2284017158427852E-01 3.2284012421277952E-01 + 3.2284007623657768E-01 3.2284002764815550E-01 3.2283997843990353E-01 + 3.2283992860411892E-01 3.2283987813300391E-01 3.2283982701866543E-01 + 3.2283977525311319E-01 3.2283972282825918E-01 3.2283966973591588E-01 + 3.2283961596779542E-01 3.2283956151550824E-01 3.2283950637056169E-01 + 3.2283945052435936E-01 3.2283939396819861E-01 3.2283933669327070E-01 + 3.2283927869065887E-01 3.2283921995133680E-01 3.2283916046616729E-01 + 3.2283910022590112E-01 3.2283903922117602E-01 3.2283897744251477E-01 + 3.2283891488032379E-01 3.2283885152489200E-01 3.2283878736638910E-01 + 3.2283872239486472E-01 3.2283865660024608E-01 3.2283858997233700E-01 + 3.2283852250081663E-01 3.2283845417523738E-01 3.2283838498502354E-01 + 3.2283831491947035E-01 3.2283824396774113E-01 3.2283817211886712E-01 + 3.2283809936174435E-01 3.2283802568513381E-01 3.2283795107765817E-01 + 3.2283787552780085E-01 3.2283779902390436E-01 3.2283772155416807E-01 + 3.2283764310664764E-01 3.2283756366925126E-01 3.2283748322974004E-01 + 3.2283740177572479E-01 3.2283731929466480E-01 3.2283723577386564E-01 + 3.2283715120047768E-01 3.2283706556149366E-01 3.2283697884374746E-01 + 3.2283689103391155E-01 3.2283680211849547E-01 3.2283671208384346E-01 + 3.2283662091613280E-01 3.2283652860137124E-01 3.2283643512539584E-01 + 3.2283634047387000E-01 3.2283624463228183E-01 3.2283614758594181E-01 + 3.2283604931998078E-01 3.2283594981934749E-01 3.2283584906880675E-01 + 3.2283574705293705E-01 3.2283564375612800E-01 3.2283553916257829E-01 + 3.2283543325629399E-01 3.2283532602108445E-01 3.2283521744056182E-01 + 3.2283510749813760E-01 3.2283499617702066E-01 3.2283488346021399E-01 + 3.2283476933051330E-01 3.2283465377050385E-01 3.2283453676255780E-01 + 3.2283441828883191E-01 3.2283429833126481E-01 3.2283417687157440E-01 + 3.2283405389125513E-01 3.2283392937157496E-01 3.2283380329357314E-01 + 3.2283367563805715E-01 3.2283354638560019E-01 3.2283341551653727E-01 + 3.2283328301096420E-01 3.2283314884873249E-01 3.2283301300944806E-01 + 3.2283287547246770E-01 3.2283273621689551E-01 3.2283259522158075E-01 + 3.2283245246511399E-01 3.2283230792582435E-01 3.2283216158177658E-01 + 3.2283201341076684E-01 3.2283186339032044E-01 3.2283171149768808E-01 + 3.2283155770984279E-01 3.2283140200347615E-01 3.2283124435499516E-01 + 3.2283108474051875E-01 3.2283092313587414E-01 3.2283075951659340E-01 + 3.2283059385790974E-01 3.2283042613475427E-01 3.2283025632175177E-01 + 3.2283008439321709E-01 3.2282991032315167E-01 3.2282973408523974E-01 + 3.2282955565284399E-01 3.2282937499900199E-01 3.2282919209642225E-01 + 3.2282900691748018E-01 3.2282881943421388E-01 3.2282862961832043E-01 + 3.2282843744115119E-01 3.2282824287370798E-01 3.2282804588663883E-01 + 3.2282784645023355E-01 3.2282764453441909E-01 3.2282744010875603E-01 + 3.2282723314243295E-01 3.2282702360426285E-01 3.2282681146267805E-01 + 3.2282659668572583E-01 3.2282637924106350E-01 3.2282615909595408E-01 + 3.2282593621726069E-01 3.2282571057144266E-01 3.2282548212455031E-01 + 3.2282525084221936E-01 3.2282501668966673E-01 3.2282477963168482E-01 + 3.2282453963263680E-01 3.2282429665645118E-01 3.2282405066661674E-01 + 3.2282380162617652E-01 3.2282354949772318E-01 3.2282329424339334E-01 + 3.2282303582486155E-01 3.2282277420333522E-01 3.2282250933954898E-01 + 3.2282224119375813E-01 3.2282196972573401E-01 3.2282169489475698E-01 + 3.2282141665961117E-01 3.2282113497857851E-01 3.2282084980943199E-01 + 3.2282056110942975E-01 3.2282026883530912E-01 3.2281997294328019E-01 + 3.2281967338901896E-01 3.2281937012766132E-01 3.2281906311379643E-01 + 3.2281875230145984E-01 3.2281843764412688E-01 3.2281811909470598E-01 + 3.2281779660553156E-01 3.2281747012835715E-01 3.2281713961434866E-01 + 3.2281680501407622E-01 3.2281646627750843E-01 3.2281612335400361E-01 + 3.2281577619230339E-01 3.2281542474052477E-01 3.2281506894615247E-01 + 3.2281470875603147E-01 3.2281434411635940E-01 3.2281397497267783E-01 + 3.2281360126986547E-01 3.2281322295212916E-01 3.2281283996299620E-01 + 3.2281245224530614E-01 3.2281205974120186E-01 3.2281166239212172E-01 + 3.2281126013879075E-01 3.2281085292121220E-01 3.2281044067865822E-01 + 3.2281002334966141E-01 3.2280960087200594E-01 3.2280917318271812E-01 + 3.2280874021805733E-01 3.2280830191350696E-01 3.2280785820376406E-01 + 3.2280740902273120E-01 3.2280695430350598E-01 3.2280649397837086E-01 + 3.2280602797878405E-01 3.2280555623536933E-01 3.2280507867790553E-01 + 3.2280459523531657E-01 3.2280410583566110E-01 3.2280361040612188E-01 + 3.2280310887299474E-01 3.2280260116167903E-01 3.2280208719666525E-01 + 3.2280156690152495E-01 3.2280104019889944E-01 3.2280050701048790E-01 + 3.2279996725703664E-01 3.2279942085832752E-01 3.2279886773316574E-01 + 3.2279830779936819E-01 3.2279774097375152E-01 3.2279716717212026E-01 + 3.2279658630925351E-01 3.2279599829889372E-01 3.2279540305373361E-01 + 3.2279480048540343E-01 3.2279419050445746E-01 3.2279357302036227E-01 + 3.2279294794148211E-01 3.2279231517506640E-01 3.2279167462723612E-01 + 3.2279102620296973E-01 3.2279036980608949E-01 3.2278970533924745E-01 + 3.2278903270391118E-01 3.2278835180034970E-01 3.2278766252761826E-01 + 3.2278696478354418E-01 3.2278625846471193E-01 3.2278554346644756E-01 + 3.2278481968280393E-01 3.2278408700654476E-01 3.2278334532912989E-01 + 3.2278259454069830E-01 3.2278183453005249E-01 3.2278106518464300E-01 + 3.2278028639055073E-01 3.2277949803247130E-01 3.2277869999369779E-01 + 3.2277789215610375E-01 3.2277707440012615E-01 3.2277624660474774E-01 + 3.2277540864747939E-01 3.2277456040434249E-01 3.2277370174985071E-01 + 3.2277283255699124E-01 3.2277195269720754E-01 3.2277106204037886E-01 + 3.2277016045480278E-01 3.2276924780717497E-01 3.2276832396257066E-01 + 3.2276738878442396E-01 3.2276644213450872E-01 3.2276548387291831E-01 + 3.2276451385804478E-01 3.2276353194655860E-01 3.2276253799338767E-01 + 3.2276153185169593E-01 3.2276051337286243E-01 3.2275948240645941E-01 + 3.2275843880023025E-01 3.2275738240006763E-01 3.2275631304999053E-01 + 3.2275523059212213E-01 3.2275413486666638E-01 3.2275302571188497E-01 + 3.2275190296407325E-01 3.2275076645753725E-01 3.2274961602456870E-01 + 3.2274845149542142E-01 3.2274727269828535E-01 3.2274607945926298E-01 + 3.2274487160234311E-01 3.2274364894937535E-01 3.2274241132004444E-01 + 3.2274115853184343E-01 3.2273989040004808E-01 3.2273860673768878E-01 + 3.2273730735552431E-01 3.2273599206201364E-01 3.2273466066328838E-01 + 3.2273331296312413E-01 3.2273194876291306E-01 3.2273056786163307E-01 + 3.2272917005582030E-01 3.2272775513953866E-01 3.2272632290435010E-01 + 3.2272487313928400E-01 3.2272340563080687E-01 3.2272192016279078E-01 + 3.2272041651648242E-01 3.2271889447047081E-01 3.2271735380065547E-01 + 3.2271579428021369E-01 3.2271421567956693E-01 3.2271261776634880E-01 + 3.2271100030536953E-01 3.2270936305858322E-01 3.2270770578505226E-01 + 3.2270602824091282E-01 3.2270433017933914E-01 3.2270261135050771E-01 + 3.2270087150156068E-01 3.2269911037656940E-01 3.2269732771649728E-01 + 3.2269552325916162E-01 3.2269369673919607E-01 3.2269184788801153E-01 + 3.2268997643375752E-01 3.2268808210128219E-01 3.2268616461209293E-01 + 3.2268422368431543E-01 3.2268225903265246E-01 3.2268027036834335E-01 + 3.2267825739912082E-01 3.2267621982916950E-01 3.2267415735908245E-01 + 3.2267206968581741E-01 3.2266995650265368E-01 3.2266781749914625E-01 + 3.2266565236108180E-01 3.2266346077043256E-01 3.2266124240531013E-01 + 3.2265899693991856E-01 3.2265672404450768E-01 3.2265442338532413E-01 + 3.2265209462456401E-01 3.2264973742032310E-01 3.2264735142654710E-01 + 3.2264493629298191E-01 3.2264249166512249E-01 3.2264001718416141E-01 + 3.2263751248693689E-01 3.2263497720587936E-01 3.2263241096895939E-01 + 3.2262981339963226E-01 3.2262718411678448E-01 3.2262452273467773E-01 + 3.2262182886289315E-01 3.2261910210627465E-01 3.2261634206487155E-01 + 3.2261354833388040E-01 3.2261072050358663E-01 3.2260785815930465E-01 + 3.2260496088131790E-01 3.2260202824481810E-01 3.2259905981984316E-01 + 3.2259605517121515E-01 3.2259301385847744E-01 3.2258993543583031E-01 + 3.2258681945206652E-01 3.2258366545050582E-01 3.2258047296892861E-01 + 3.2257724153950951E-01 3.2257397068874871E-01 3.2257065993740408E-01 + 3.2256730880042073E-01 3.2256391678686192E-01 3.2256048339983684E-01 + 3.2255700813642957E-01 3.2255349048762505E-01 3.2254992993823650E-01 + 3.2254632596682964E-01 3.2254267804564835E-01 3.2253898564053701E-01 + 3.2253524821086421E-01 3.2253146520944348E-01 3.2252763608245483E-01 + 3.2252376026936402E-01 3.2251983720284166E-01 3.2251586630868112E-01 + 3.2251184700571484E-01 3.2250777870573089E-01 3.2250366081338788E-01 + 3.2249949272612760E-01 3.2249527383408949E-01 3.2249100352002114E-01 + 3.2248668115918955E-01 3.2248230611929057E-01 3.2247787776035719E-01 + 3.2247339543466758E-01 3.2246885848665074E-01 3.2246426625279223E-01 + 3.2245961806153767E-01 3.2245491323319608E-01 3.2245015107984143E-01 + 3.2244533090521316E-01 3.2244045200461552E-01 3.2243551366481571E-01 + 3.2243051516394111E-01 3.2242545577137433E-01 3.2242033474764831E-01 + 3.2241515134433896E-01 3.2240990480395743E-01 3.2240459435984015E-01 + 3.2239921923603898E-01 3.2239377864720836E-01 3.2238827179849183E-01 + 3.2238269788540835E-01 3.2237705609373479E-01 3.2237134559938935E-01 + 3.2236556556831214E-01 3.2235971515634526E-01 3.2235379350911020E-01 + 3.2234779976188560E-01 3.2234173303948155E-01 3.2233559245611410E-01 + 3.2232937711527709E-01 3.2232308610961286E-01 3.2231671852078181E-01 + 3.2231027341932944E-01 3.2230374986455268E-01 3.2229714690436434E-01 + 3.2229046357515623E-01 3.2228369890165937E-01 3.2227685189680416E-01 + 3.2226992156157858E-01 3.2226290688488329E-01 3.2225580684338673E-01 + 3.2224862040137769E-01 3.2224134651061581E-01 3.2223398411018156E-01 + 3.2222653212632246E-01 3.2221898947229938E-01 3.2221135504822973E-01 + 3.2220362774092975E-01 3.2219580642375356E-01 3.2218788995643188E-01 + 3.2217987718490848E-01 3.2217176694117222E-01 3.2216355804309194E-01 + 3.2215524929424438E-01 3.2214683948374356E-01 3.2213832738606629E-01 + 3.2212971176087574E-01 3.2212099135284450E-01 3.2211216489147304E-01 + 3.2210323109090827E-01 3.2209418864975825E-01 3.2208503625090601E-01 + 3.2207577256132036E-01 3.2206639623186412E-01 3.2205690589710190E-01 + 3.2204730017510297E-01 3.2203757766724367E-01 3.2202773695800713E-01 + 3.2201777661478032E-01 3.2200769518764794E-01 3.2199749120918625E-01 + 3.2198716319425175E-01 3.2197670963976854E-01 3.2196612902451388E-01 + 3.2195541980889969E-01 3.2194458043475244E-01 3.2193360932509046E-01 + 3.2192250488389806E-01 3.2191126549589766E-01 3.2189988952631798E-01 + 3.2188837532066156E-01 3.2187672120446742E-01 3.2186492548307222E-01 + 3.2185298644136789E-01 3.2184090234355706E-01 3.2182867143290472E-01 + 3.2181629193148814E-01 3.2180376203994238E-01 3.2179107993720468E-01 + 3.2177824378025316E-01 3.2176525170384529E-01 3.2175210182025160E-01 + 3.2173879221898638E-01 3.2172532096653589E-01 3.2171168610608247E-01 + 3.2169788565722640E-01 3.2168391761570359E-01 3.2166977995310037E-01 + 3.2165547061656502E-01 3.2164098752851572E-01 3.2162632858634488E-01 + 3.2161149166212050E-01 3.2159647460228369E-01 3.2158127522734259E-01 + 3.2156589133156321E-01 3.2155032068265565E-01 3.2153456102145744E-01 + 3.2151861006161342E-01 3.2150246548925066E-01 3.2148612496265083E-01 + 3.2146958611191839E-01 3.2145284653864420E-01 3.2143590381556614E-01 + 3.2141875548622517E-01 3.2140139906461790E-01 3.2138383203484433E-01 + 3.2136605185075229E-01 3.2134805593557708E-01 3.2132984168157741E-01 + 3.2131140644966705E-01 3.2129274756904147E-01 3.2127386233680150E-01 + 3.2125474801757076E-01 3.2123540184311072E-01 3.2121582101192986E-01 + 3.2119600268888854E-01 3.2117594400479954E-01 3.2115564205602387E-01 + 3.2113509390406225E-01 3.2111429657514051E-01 3.2109324705979264E-01 + 3.2107194231243619E-01 3.2105037925094493E-01 3.2102855475621533E-01 + 3.2100646567172897E-01 3.2098410880310874E-01 3.2096148091767140E-01 + 3.2093857874397330E-01 3.2091539897135218E-01 3.2089193824946349E-01 + 3.2086819318781057E-01 3.2084416035527052E-01 3.2081983627961358E-01 + 3.2079521744701822E-01 3.2077030030157894E-01 3.2074508124481060E-01 + 3.2071955663514529E-01 3.2069372278742392E-01 3.2066757597238260E-01 + 3.2064111241613230E-01 3.2061432829963354E-01 3.2058721975816384E-01 + 3.2055978288078035E-01 3.2053201370977547E-01 3.2050390824012642E-01 + 3.2047546241893965E-01 3.2044667214488670E-01 3.2041753326763600E-01 + 3.2038804158727680E-01 3.2035819285373701E-01 3.2032798276619462E-01 + 3.2029740697248182E-01 3.2026646106848333E-01 3.2023514059752728E-01 + 3.2020344104976906E-01 3.2017135786156892E-01 3.2013888641486232E-01 + 3.2010602203652272E-01 3.2007275999771784E-01 3.2003909551325826E-01 + 3.2000502374093870E-01 3.1997053978087298E-01 3.1993563867481983E-01 + 3.1990031540550218E-01 3.1986456489591902E-01 3.1982838200864905E-01 + 3.1979176154514682E-01 3.1975469824503100E-01 3.1971718678536504E-01 + 3.1967922177992930E-01 3.1964079777848547E-01 3.1960190926603282E-01 + 3.1956255066205624E-01 3.1952271631976592E-01 3.1948240052532878E-01 + 3.1944159749709106E-01 3.1940030138479275E-01 3.1935850626877382E-01 + 3.1931620615917028E-01 3.1927339499510315E-01 3.1923006664385767E-01 + 3.1918621490005317E-01 3.1914183348480524E-01 3.1909691604487717E-01 + 3.1905145615182362E-01 3.1900544730112396E-01 3.1895888291130670E-01 + 3.1891175632306434E-01 3.1886406079835888E-01 3.1881578951951722E-01 + 3.1876693558831742E-01 3.1871749202506439E-01 3.1866745176765698E-01 + 3.1861680767064327E-01 3.1856555250426727E-01 3.1851367895350485E-01 + 3.1846117961708958E-01 3.1840804700652792E-01 3.1835427354510420E-01 + 3.1829985156687535E-01 3.1824477331565459E-01 3.1818903094398432E-01 + 3.1813261651209884E-01 3.1807552198687528E-01 3.1801773924077470E-01 + 3.1795926005077096E-01 3.1790007609726950E-01 3.1784017896301375E-01 + 3.1777956013198083E-01 3.1771821098826641E-01 3.1765612281495686E-01 + 3.1759328679299043E-01 3.1752969400000663E-01 3.1746533540918409E-01 + 3.1740020188806584E-01 3.1733428419737358E-01 3.1726757298980923E-01 + 3.1720005880884383E-01 3.1713173208749562E-01 3.1706258314709512E-01 + 3.1699260219603664E-01 3.1692177932851945E-01 3.1685010452327489E-01 + 3.1677756764228077E-01 3.1670415842946376E-01 3.1662986650938851E-01 + 3.1655468138593407E-01 3.1647859244095650E-01 3.1640158893293935E-01 + 3.1632365999563106E-01 3.1624479463666755E-01 3.1616498173618340E-01 + 3.1608421004540843E-01 3.1600246818525080E-01 3.1591974464486711E-01 + 3.1583602778021858E-01 3.1575130581261290E-01 3.1566556682723318E-01 + 3.1557879877165279E-01 3.1549098945433540E-01 3.1540212654312233E-01 + 3.1531219756370465E-01 3.1522118989808190E-01 3.1512909078300588E-01 + 3.1503588730841076E-01 3.1494156641582877E-01 3.1484611489679093E-01 + 3.1474951939121398E-01 3.1465176638577247E-01 3.1455284221225549E-01 + 3.1445273304591093E-01 3.1435142490377260E-01 3.1424890364297409E-01 + 3.1414515495904760E-01 3.1404016438420734E-01 3.1393391728561931E-01 + 3.1382639886365465E-01 3.1371759415012934E-01 3.1360748800652860E-01 + 3.1349606512221623E-01 3.1338331001262826E-01 3.1326920701745348E-01 + 3.1315374029879656E-01 3.1303689383932837E-01 3.1291865144041980E-01 + 3.1279899672026062E-01 3.1267791311196469E-01 3.1255538386165788E-01 + 3.1243139202655329E-01 3.1230592047301031E-01 3.1217895187457795E-01 + 3.1205046871002512E-01 3.1192045326135476E-01 3.1178888761180279E-01 + 3.1165575364382336E-01 3.1152103303705869E-01 3.1138470726629386E-01 + 3.1124675759939791E-01 3.1110716509524894E-01 3.1096591060164641E-01 + 3.1082297475320775E-01 3.1067833796925093E-01 3.1053198045166308E-01 + 3.1038388218275492E-01 3.1023402292310032E-01 3.1008238220936413E-01 + 3.0992893935211330E-01 3.0977367343361700E-01 3.0961656330563175E-01 + 3.0945758758717384E-01 3.0929672466227809E-01 3.0913395267774513E-01 + 3.0896924954087324E-01 3.0880259291718071E-01 3.0863396022811324E-01 + 3.0846332864874121E-01 3.0829067510544361E-01 3.0811597627358100E-01 + 3.0793920857515716E-01 3.0776034817646941E-01 3.0757937098574800E-01 + 3.0739625265078518E-01 3.0721096855655428E-01 3.0702349382281824E-01 + 3.0683380330172921E-01 3.0664187157541906E-01 3.0644767295358022E-01 + 3.0625118147103897E-01 3.0605237088532089E-01 3.0585121467420739E-01 + 3.0564768603328707E-01 3.0544175787349881E-01 3.0523340281866890E-01 + 3.0502259320304370E-01 3.0480930106881571E-01 3.0459349816364589E-01 + 3.0437515593818132E-01 3.0415424554357001E-01 3.0393073782897240E-01 + 3.0370460333907101E-01 3.0347581231157755E-01 3.0324433467474143E-01 + 3.0301014004485471E-01 3.0277319772376077E-01 3.0253347669636238E-01 + 3.0229094562813258E-01 3.0204557286262840E-01 3.0179732641900808E-01 + 3.0154617398955302E-01 3.0129208293719573E-01 3.0103502029305357E-01 + 3.0077495275396987E-01 3.0051184668006475E-01 3.0024566809229325E-01 + 2.9997638267001631E-01 2.9970395574858155E-01 2.9942835231691833E-01 + 2.9914953701514491E-01 2.9886747413219339E-01 2.9858212760344899E-01 + 2.9829346100840742E-01 2.9800143756835273E-01 2.9770602014405367E-01 + 2.9740717123348426E-01 2.9710485296956507E-01 2.9679902711793260E-01 + 2.9648965507473241E-01 2.9617669786444173E-01 2.9586011613772289E-01 + 2.9553987016930588E-01 2.9521591985590645E-01 2.9488822471417864E-01 + 2.9455674387870445E-01 2.9422143610002255E-01 2.9388225974269838E-01 + 2.9353917278343766E-01 2.9319213280924400E-01 2.9284109701562627E-01 + 2.9248602220485392E-01 2.9212686478426481E-01 2.9176358076462916E-01 + 2.9139612575856894E-01 2.9102445497903739E-01 2.9064852323786189E-01 + 2.9026828494435064E-01 2.8988369410396808E-01 2.8949470431708024E-01 + 2.8910126877777553E-01 2.8870334027276057E-01 2.8830087118033676E-01 + 2.8789381346946052E-01 2.8748211869888962E-01 2.8706573801641988E-01 + 2.8664462215821435E-01 2.8621872144823263E-01 2.8578798579775677E-01 + 2.8535236470502667E-01 2.8491180725498066E-01 2.8446626211911141E-01 + 2.8401567755543694E-01 2.8356000140859550E-01 2.8309918111006332E-01 + 2.8263316367850633E-01 2.8216189572026357E-01 2.8168532342997271E-01 + 2.8120339259134036E-01 2.8071604857806171E-01 2.8022323635489627E-01 + 2.7972490047890330E-01 2.7922098510084520E-01 2.7871143396676085E-01 + 2.7819619041971883E-01 2.7767519740175317E-01 2.7714839745598968E-01 + 2.7661573272896883E-01 2.7607714497317154E-01 2.7553257554975474E-01 + 2.7498196543150422E-01 2.7442525520600930E-01 2.7386238507907196E-01 + 2.7329329487835108E-01 2.7271792405725487E-01 2.7213621169908808E-01 + 2.7154809652145945E-01 2.7095351688096214E-01 2.7035241077813182E-01 + 2.6974471586269411E-01 2.6913036943910823E-01 2.6850930847241811E-01 + 2.6788146959441850E-01 2.6724678911014799E-01 2.6660520300471746E-01 + 2.6595664695048515E-01 2.6530105631458756E-01 2.6463836616684050E-01 + 2.6396851128801707E-01 2.6329142617851709E-01 2.6260704506743926E-01 + 2.6191530192206713E-01 2.6121613045778319E-01 2.6050946414842113E-01 + 2.5979523623707329E-01 2.5907337974736172E-01 2.5834382749519308E-01 + 2.5760651210100427E-01 2.5686136600252024E-01 2.5610832146803370E-01 + 2.5534731061022609E-01 2.5457826540054190E-01 2.5380111768413643E-01 + 2.5301579919540962E-01 2.5222224157414608E-01 2.5142037638227860E-01 + 2.5061013512128966E-01 2.4979144925027486E-01 2.4896425020468199E-01 + 2.4812846941574962E-01 2.4728403833066073E-01 2.4643088843343641E-01 + 2.4556895126658626E-01 2.4469815845354104E-01 2.4381844172188583E-01 + 2.4292973292742023E-01 2.4203196407906510E-01 2.4112506736464309E-01 + 2.4020897517755468E-01 2.3928362014437735E-01 2.3834893515341068E-01 + 2.3740485338419787E-01 2.3645130833804648E-01 2.3548823386957909E-01 + 2.3451556421934253E-01 2.3353323404750190E-01 2.3254117846865441E-01 + 2.3153933308778832E-01 2.3052763403742427E-01 2.2950601801596568E-01 + 2.2847442232729723E-01 2.2743278492166014E-01 2.2638104443784457E-01 + 2.2531914024672969E-01 2.2424701249621379E-01 2.2316460215756645E-01 + 2.2207185107324767E-01 2.2096870200622740E-01 2.1985509869085207E-01 + 2.1873098588529633E-01 2.1759630942564270E-01 2.1645101628163677E-01 + 2.1529505461415788E-01 2.1412837383445704E-01 2.1295092466520388E-01 + 2.1176265920339735E-01 2.1056353098518368E-01 2.0935349505263937E-01 + 2.0813250802256489E-01 2.0690052815735022E-01 2.0565751543795960E-01 + 2.0440343163910024E-01 2.0313824040662484E-01 2.0186190733723464E-01 + 2.0057440006053992E-01 1.9927568832353995E-01 1.9796574407759129E-01 + 1.9664454156792333E-01 1.9531205742577606E-01 1.9396827076322171E-01 + 1.9261316327074834E-01 1.9124671931767159E-01 1.8986892605545524E-01 + 1.8847977352401118E-01 1.8707925476106246E-01 1.8566736591464519E-01 + 1.8424410635883617E-01 1.8280947881278603E-01 1.8136348946314826E-01 + 1.7990614808999178E-01 1.7843746819628625E-01 1.7695746714105740E-01 + 1.7546616627630218E-01 1.7396359108776982E-01 1.7244977133970038E-01 + 1.7092474122363183E-01 1.6938853951137522E-01 1.6784120971227137E-01 + 1.6628280023483474E-01 1.6471336455290519E-01 1.6313296137641564E-01 + 1.6154165482690505E-01 1.5993951461789019E-01 1.5832661624022923E-01 + 1.5670304115260070E-01 1.5506887697723340E-01 1.5342421770102208E-01 + 1.5176916388216466E-01 1.5010382286246884E-01 1.4842830898546816E-01 + 1.4674274382050156E-01 1.4504725639290664E-01 1.4334198342048629E-01 + 1.4162706955640644E-01 1.3990266763869433E-01 1.3816893894650092E-01 + 1.3642605346330802E-01 1.3467419014724932E-01 1.3291353720873617E-01 + 1.3114429239556721E-01 1.2936666328571975E-01 1.2758086758801310E-01 + 1.2578713345084977E-01 1.2398569977923915E-01 1.2217681656031144E-01 + 1.2036074519754529E-01 1.1853775885392275E-01 1.1670814280424766E-01 + 1.1487219479685136E-01 1.1303022542493422E-01 1.1118255850777763E-01 + 1.0932953148208790E-01 1.0747149580371920E-01 1.0560881736004800E-01 + 1.0374187689326048E-01 1.0187107043483988E-01 9.9996809751525473E-02 + 9.8119522803045020E-02 9.6239654211913050E-02 9.4357665745598465E-02 + 9.2474036811381999E-02 9.0589264964213878E-02 8.8703866427912212E-02 + 8.6818376630026714E-02 8.4933350750724793E-02 8.3049364286042773E-02 + 8.1167013625874987E-02 7.9286916647063693E-02 7.7409713321977436E-02 + 7.5536066342962144E-02 7.3666661763070712E-02 7.1802209653476196E-02 + 6.9943444777989097E-02 6.8091127285114988E-02 6.6246043418084377E-02 + 6.4409006243311542E-02 6.2580856397749268E-02 6.0762462855605895E-02 + 5.8954723714917855E-02 5.7158567004469828E-02 5.5374951511583240E-02 + 5.3604867631284477E-02 5.1849338237397555E-02 5.0109419576106082E-02 + 4.8386202182553510E-02 4.6680811821051327E-02 4.4994410449492248E-02 + 4.3328197208570049E-02 4.1683409436434053E-02 4.0061323709405558E-02 + 3.8463256909412442E-02 3.6890567318815348E-02 3.5344655743298869E-02 + 3.3826966663539557E-02 3.2338989416362138E-02 3.0882259406128338E-02 + 2.9458359347104522E-02 2.8068920537588464E-02 2.6715624166582203E-02 + 2.5400202653830431E-02 2.4124441024047951E-02 2.2890178316195185E-02 + 2.1699309028670951E-02 2.0553784601324083E-02 1.9455614935193249E-02 + 1.8406869950919190E-02 1.7408937401484161E-02 1.6460300831036966E-02 + 1.5558784048634719E-02 1.4702294340045927E-02 1.3888819810576918E-02 + 1.3116426786937970E-02 1.2383257279823225E-02 1.1687526508164910E-02 + 1.1027520485437122E-02 1.0401593667913159E-02 9.8081666644147317E-03 + 9.2457240068129862E-03 8.7128119803400149E-03 8.2080365126287608E-03 + 7.7300611203104715E-03 7.2776049119486156E-03 6.8494406460671807E-03 + 6.4443928430343057E-03 6.0613359495793944E-03 5.6991925547508274E-03 + 5.3569316561554127E-03 5.0335669753598794E-03 4.7281553213730640E-03 + 4.4397950011666005E-03 4.1676242762276267E-03 3.9108198641716711E-03 + 3.6685954844741819E-03 3.4402004474071491E-03 3.2249182852910748E-03 + 3.0220654251942535E-03 2.8309899022292504E-03 2.6510701126123523E-03 + 2.4817136056648334E-03 2.3223559139462654E-03 2.1724594207197657E-03 + 2.0315122639567823E-03 1.8990272760963877E-03 1.7745409587797236E-03 + 1.6576124917858869E-03 1.5478227754001197E-03 1.4447735054499825E-03 + 1.3480862802495090E-03 1.2574017386958361E-03 1.1723787287672249E-03 + 1.0926935056762479E-03 1.0180389589367687E-03 9.4812386760881068E-04 + 8.8267218299087390E-04 8.2142233803551802E-04 7.6412658277044232E-04 + 7.1055034501416470E-04 6.6047161568283765E-04 6.1368035799243942E-04 + 5.6997793986885987E-04 5.2917658888690584E-04 4.9109886906835963E-04 + 4.5557717887852249E-04 4.2245326977047141E-04 3.9157778463625944E-04 + 3.6280981553471757E-04 3.3601648007613582E-04 3.1107251585505829E-04 + 2.8785989233352772E-04 2.6626743958852562E-04 2.4619049334889106E-04 + 2.2753055575869271E-04 2.1019497131591634E-04 1.9409661744726632E-04 + 1.7915360919197650E-04 1.6528901747962392E-04 1.5243060049916765E-04 + 1.4051054766862862E-04 1.2946523572708853E-04 1.1923499648289543E-04 + 1.0976389576419836E-04 1.0099952313009400E-04 9.2892791912804461E-05 + 8.5397749173342539E-05 7.8471395165111111E-05 7.2073511911746512E-05 + 6.6166500517295405E-05 6.0715226838452743E-05 5.5686875160113820E-05 + 5.1050809526870343E-05 4.6778442394296176E-05 4.2843110274944012E-05 + 3.9219956064861345E-05 3.5885817747160012E-05 3.2819123179701891E-05 + 2.9999790684314946E-05 2.7409135165099001E-05 2.5029779493331614E-05 + 2.2845570906222524E-05 2.0841502176300630E-05 1.9003637317532987E-05 + 1.7319041603377886E-05 1.5775715680854163E-05 1.4362533573370384E-05 + 1.3069184373495290E-05 1.1886117435061871E-05 1.0804490881988409E-05 + 9.8161232589612369E-06 8.9134481566643286E-06 8.0894716515534030E-06 + 7.3377324072644746E-06 6.6522642916203949E-06 6.0275613698272654E-06 + 5.4585451409284821E-06 4.9405338907443720E-06 4.4692140405474963E-06 + 4.0406133765526976E-06 3.6510760508058229E-06 3.2972392495048794E-06 + 2.9760114299326356E-06 2.6845520321461337E-06 2.4202525763881264E-06 + 2.1807190617592301E-06 1.9637555861092230E-06 1.7673491113346110E-06 + 1.5896553023238040E-06 1.4289853716724781E-06 1.2837938660052383E-06 + 1.1526673332897926E-06 1.0343138139215619E-06 9.2755310159399820E-07 + 8.3130772305814717E-07 7.4459458881823340E-07 6.6651726961353535E-07 + 5.9625885620472537E-07 5.3307536251997385E-07 4.7628963462716276E-07 + 4.2528573028784905E-07 3.7950373602084641E-07 3.3843499066272317E-07 + 3.0161768636372457E-07 2.6863281980470475E-07 2.3910046816798386E-07 + 2.1267636604666489E-07 1.8904876103699151E-07 1.6793552723068604E-07 + 1.4908151721282090E-07 1.3225613447932578E-07 1.1725110942049077E-07 + 1.0387846317628087E-07 9.1968644759399580E-08 8.1368827866245084E-08 + 7.1941354757353118E-08 6.3562315490839051E-08 5.6120251637708342E-08 + 4.9514974399679188E-08 4.3656487791132112E-08 3.8464008239721119E-08 + 3.3865072607618974E-08 2.9794727239867361E-08 2.6194791210254009E-08 + 2.3013187460819840E-08 2.0203336020756076E-08 1.7723603946161342E-08 + 1.5536807045903832E-08 1.3609758852615041E-08 1.1912862663427284E-08 + 1.0419742814222379E-08 9.1069116655247847E-09 7.9534690693232633E-09 + 6.9408313555379419E-09 6.0524871259700475E-09 5.2737773737255185E-09 + 4.5916976585522396E-09 3.9947202644752783E-09 3.4726344466807761E-09 + 3.0164030408557729E-09 2.6180338611394365E-09 2.2704644534277564E-09 + 1.9674588998847553E-09 1.7035154889843034E-09 1.4737841740190109E-09 + 1.2739928425008568E-09 1.1003815099281316E-09 9.4964363464734023E-10 + 8.1887382659753285E-10 7.0552129214755383E-10 6.0734842054681795E-10 + 5.2239397519352089E-10 4.4894040543378209E-10 3.8548484236154476E-10 + 3.3071338548316801E-10 2.8347832650479303E-10 2.4277799223084304E-10 + 2.0773892093915222E-10 1.7760011590987637E-10 1.5169914629696951E-10 + 1.2945988948782567E-10 1.1038173072446891E-10 9.4030055266501021E-11 + 8.0027885953249472E-11 6.8048534845962027E-11 5.7809151861915923E-11 + 4.9065066098868323E-11 4.1604827025967182E-11 3.5245863010026881E-11 + 2.9830683867336298E-11 2.5223562384361643E-11 2.1307637130236261E-11 + 1.7982385475754809E-11 1.5161421615972517E-11 1.2770579637570556E-11 + 1.0746246342490113E-11 9.0339126945388875E-12 7.5869164488315590E-12 + 6.3653518030827672E-12 5.3351248183753184E-12 4.4671359343051336E-12 + 3.7365731847514262E-12 3.1223017378292550E-12 2.6063371655549068E-12 + 2.1733914212049247E-12 1.8104818884544865E-12 1.5065950869363885E-12 + 1.2523976924995496E-12 1.0399884738450909E-12 8.6268557528873632E-13 + 7.1484430145750140E-13 5.9170119565374666E-13 4.8924075999489127E-13 + 4.0408165168073112E-13 3.3337961422588919E-13 2.7474477265657822E-13 + 2.2617124410218433E-13 1.8597729575419353E-13 1.5275452598553629E-13 + 1.2532475609005143E-13 1.0270350364609817E-13 8.4069067485164299E-14 + 6.8736391785889808E-14 5.6134995669707391E-14 4.5790357265120340E-14 + 3.7308229656009419E-14 3.0361442295347398E-14 2.4678806977528173E-14 + 2.0035803743617221E-14 1.6246770387143657E-14 1.3158360617516370E-14 + 1.0644071367899315E-14 8.5996700257600607E-15 6.9393782309035927E-15 + 5.5926909468518514E-15 4.5017283035691714E-15 3.6190336972589514E-15 + 2.9057452177840775E-15 2.3300790028387739E-15 1.8660728891977019E-15 + 1.4925470025523718E-15 1.1922449199337019E-15 9.5112494259290204E-16 + 7.5777599550061152E-16 6.0293686197383783E-16 4.7910098780847593E-16 + 3.8019205073173061E-16 3.0129797505530473E-16 2.3845315227994058E-16 + 1.8846036918306434E-16 1.4874539923282938E-16 1.1723842650866480E-16 + 9.2277482217966156E-17 7.2529914996937144E-17 5.6928615029153006E-17 + 4.4620291860606038E-17 3.4923586226087682E-17 2.7295193712054290E-17 + 2.1302506513962227E-17 1.6601550519426051E-17 1.2919218195078976E-17 + 1.0038981416123106E-17 7.7894192536133063E-18 6.0350194973607614E-18 + 4.6688140655798708E-18 3.6064913640541707E-18 2.7816963692254242E-18 + 2.1422844252944705E-18 1.6473397036671495E-18 1.2648058241381650E-18 + 9.6960580808679295E-19 7.4215258294471928E-19 5.6717071953561923E-19 + 4.3276580999237248E-19 3.2969058131899753E-19 2.5076705943738413E-19 + 1.9043231771139561E-19 1.4438194364632077E-19 1.0929064836373996E-19 + 8.2593678305566966E-20 6.2316072746747448E-20 4.6939510609258416E-20 + 3.5298640593256750E-20 2.6500498756231650E-20 1.9861975325017918E-20 + 1.4861368572584486E-20 1.1100915018687076E-20 8.2778577773900797E-21 + 6.1621452519754133E-21 4.5792699174841517E-21 3.3970850772742640E-21 + 2.5156949277958637E-21 1.8597148976400149E-21 1.3723568691849202E-21 + 1.0109169252189966E-21 7.4333911745980762E-22 5.4560330089469870E-22 + 3.9974295052233353E-22 2.9234372451918474E-22 2.1340822899454764E-22 + 1.5549922571558957E-22 1.1309416902658900E-22 8.2099840525997080E-23 + 5.9488046008829321E-23 4.3022686988628240E-23 3.1055670539632578E-23 + 2.2374582040788619E-23 1.6089207436288303E-23 1.1547157736357750E-23 + 8.2712523783429084E-24 5.9131397405482104E-24 4.2190108963807431E-24 + 3.0043027455696479E-24 2.1350702207986116E-24 1.5142964336852783E-24 + 1.0718517455729667E-24 7.5714386521225443E-25 5.3374856119107688E-25 + 3.7549518238722720E-25 2.6361860240051770E-25 1.8469129483314529E-25 + 1.2912493397609882E-25 9.0086912841940168E-26 6.2718514180642153E-26 + 4.3571931154315189E-26 3.0205730255055574E-26 2.0894780500024445E-26 + 1.4422702809117085E-26 9.9336820479269065E-27 6.8268910497866381E-27 + 4.6814363995994090E-27 3.2031185295124985E-27 2.1867486720578510E-27 + 1.4895357475686601E-27 1.0123329407407913E-27 6.8645225074565854E-28 + 4.6441467529289650E-28 3.1347596487217823E-28 2.1110538449574427E-28 + 1.4183555912317320E-28 9.5072662358750004E-29 6.3577702642233312E-29 + 4.2415690405377928E-29 2.8230244384765077E-29 1.8744028585937746E-29 + 1.2415528695138236E-29 8.2038028853603333E-30 5.4076258451358954E-30 + 3.5557656808775152E-30 2.3323210731438901E-30 1.5260396768128809E-30 + 9.9599955665560556E-31 6.4842805919422380E-31 4.2108255859809571E-31 + 2.7275261906112297E-31 1.7622203502897660E-31 1.1356236906629317E-31 + 7.2993624046396585E-32 4.6795589228973791E-32 2.9921795057688792E-32 + 1.9082104744174121E-32 1.2137072594211961E-32 7.6991673462297593E-33 + 4.8708948617685672E-33 3.0732786954481082E-33 1.9338210969249143E-33 + 1.2135138077669639E-33 7.5941663898340929E-34 4.7393118474176539E-34 + 2.9494636339655025E-34 1.8304426756946306E-34 1.1327843684047976E-34 + 6.9905129815133688E-35 4.3016407811555087E-35 2.6394600654218081E-35 + 1.6148955239974941E-35 9.8517780761480504E-36 5.9926386570131525E-36 + 3.6345213604164880E-36 2.1978313143248723E-36 1.3251095149973086E-36 + 7.9654756120619694E-37 4.7738236156217048E-37 2.8523833032207450E-37 + 1.6991368530332559E-37 1.0090666155445345E-37 5.9741252003951053E-38 + 3.5260117493952125E-38 2.0746270881039820E-38 1.2168443719358361E-38 + 7.1147646251040317E-39 4.1467541956254912E-39 2.4091841930681784E-39 + 1.3952027495033814E-39 8.0538186504903944E-40 4.6339903015627092E-40 + 2.6575940418091491E-40 1.5191261942035653E-40 8.6549017893698526E-41 + 4.9145624180921673E-41 2.7813348094313666E-41 1.5687676468768937E-41 + 8.8184466729703020E-42 4.9402030846184287E-42 2.7580861253187809E-42 + 1.5345186546882597E-42 8.5080260431351890E-43 4.7007661271217088E-43 + 2.5881087773860480E-43 1.4199114092943385E-43 7.7623916930791112E-44 + 4.2284005715698001E-44 2.2950575638863244E-44 1.2411906712959167E-44 + 6.6880790037640994E-45 3.5906470101247023E-45 1.9206262169473542E-45 + 1.0235337160241216E-45 5.4342660054618644E-46 2.8744138234928481E-46 + 1.5146682187664200E-46 7.9512545126073854E-47 4.1580888027662854E-47 + 2.1661164932505705E-47 1.1240605918807391E-47 5.8104177596890537E-48 + 2.9917446003088095E-48 1.5343729377722274E-48 7.8381988174488314E-49 + 3.9881378637552064E-49 2.0210736569716019E-49 1.0200975318381744E-49 + 5.1278846920901981E-50 2.5672086179369090E-50 1.2799698036095539E-50 + 6.3554040549263281E-51 3.1425388424124915E-51 1.5473953456955558E-51 + 7.5874194924743748E-52 3.7046573971899553E-52 1.8011590011190660E-52 + 8.7195673290474813E-53 4.2030588070219810E-53 2.0172157276119416E-53 + 9.6392713195710060E-54 4.5859530843744896E-54 2.1721861933784818E-54 + 1.0243183551769035E-54 4.8087442775591460E-55 2.2473748540709170E-55 + 1.0455737581193423E-55 4.8423625589271018E-56 2.2323971420955249E-56 + 1.0244367234444283E-56 4.6793589430237174E-57 2.1274654779827456E-57 + 9.6272441032844108E-58 4.3360229613716196E-58 1.9436576706621022E-58 + 8.6710992453735969E-59 3.8498357768447913E-59 1.7010274951475642E-59 + 7.4794366161091991E-60 3.2726693402038172E-60 1.4249454835582093E-60 + 6.1736835522523418E-61 2.6615063917575898E-61 1.1416544059288719E-61 + 4.8725093428683044E-62 2.0690376406463684E-62 8.7411489358472012E-63 + 3.6740047845404202E-63 1.5362735636871363E-63 6.3905985020178735E-64 + 2.6445090668787977E-64 1.0885928400575507E-64 4.4574761443348730E-65 + 1.8155235920733263E-65 7.3551269729630211E-66 2.9637384362085941E-66 + 1.1877824964807705E-66 4.7344242066445622E-67 1.8767930203775492E-67 + 7.3989524737373713E-68 2.9007769889168917E-68 1.1309260478184614E-68 + 4.3844514477412864E-69 1.6902185476134559E-69 6.4789147105585971E-70 + 2.4693272051416559E-70 9.3574408194241175E-71 3.5255153657363789E-71 + 1.3205660503109949E-71 4.9176143744496453E-72 1.8204987337567306E-72 + 6.6996562481001360E-73 2.4508992313468080E-73 8.9123794537780681E-74 + 3.2213769879560512E-74 1.1573198674528530E-74 4.1325056197359955E-75 + 1.4665801715812550E-75 5.1726668872047273E-76 1.8131072890656376E-76 + 6.3156294287445432E-77 2.1861385423913393E-77 7.5195231129159290E-78 + 2.5700292797684429E-78 8.7277939726839234E-79 2.9449161717404952E-79 + 9.8724905428387329E-80 3.2881306316885790E-80 1.0879853867380867E-80 + 3.5762819099474506E-81 1.1677719576566173E-81 3.7877803313292044E-82 + 1.2203789631061824E-82 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 4.9944722280886658E-02 4.9944722281275312E-02 4.9944722282451781E-02 + 4.9944722284429997E-02 4.9944722287224359E-02 4.9944722290849716E-02 + 4.9944722295320876E-02 4.9944722300652958E-02 4.9944722306861269E-02 + 4.9944722313961368E-02 4.9944722321969018E-02 4.9944722330900179E-02 + 4.9944722340771089E-02 4.9944722351598060E-02 4.9944722363397927E-02 + 4.9944722376187425E-02 4.9944722389983792E-02 4.9944722404804298E-02 + 4.9944722420666589E-02 4.9944722437588525E-02 4.9944722455588224E-02 + 4.9944722474683990E-02 4.9944722494894463E-02 4.9944722516238473E-02 + 4.9944722538735171E-02 4.9944722562403933E-02 4.9944722587264380E-02 + 4.9944722613336510E-02 4.9944722640640517E-02 4.9944722669196827E-02 + 4.9944722699026202E-02 4.9944722730149771E-02 4.9944722762588795E-02 + 4.9944722796364929E-02 4.9944722831500109E-02 4.9944722868016544E-02 + 4.9944722905936760E-02 4.9944722945283668E-02 4.9944722986080298E-02 + 4.9944723028350221E-02 4.9944723072117177E-02 4.9944723117405276E-02 + 4.9944723164238973E-02 4.9944723212643066E-02 4.9944723262642619E-02 + 4.9944723314263098E-02 4.9944723367530357E-02 4.9944723422470479E-02 + 4.9944723479109950E-02 4.9944723537475706E-02 4.9944723597594963E-02 + 4.9944723659495219E-02 4.9944723723204583E-02 4.9944723788751227E-02 + 4.9944723856164039E-02 4.9944723925472070E-02 4.9944723996704805E-02 + 4.9944724069892178E-02 4.9944724145064463E-02 4.9944724222252435E-02 + 4.9944724301487164E-02 4.9944724382800190E-02 4.9944724466223535E-02 + 4.9944724551789575E-02 4.9944724639531049E-02 4.9944724729481416E-02 + 4.9944724821674225E-02 4.9944724916143712E-02 4.9944725012924483E-02 + 4.9944725112051648E-02 4.9944725213560720E-02 4.9944725317487781E-02 + 4.9944725423869255E-02 4.9944725532742193E-02 4.9944725644144122E-02 + 4.9944725758112936E-02 4.9944725874687193E-02 4.9944725993905877E-02 + 4.9944726115808497E-02 4.9944726240435104E-02 4.9944726367826237E-02 + 4.9944726498023104E-02 4.9944726631067277E-02 4.9944726767000965E-02 + 4.9944726905866973E-02 4.9944727047708609E-02 4.9944727192569822E-02 + 4.9944727340495015E-02 4.9944727491529353E-02 4.9944727645718438E-02 + 4.9944727803108539E-02 4.9944727963746612E-02 4.9944728127680041E-02 + 4.9944728294957046E-02 4.9944728465626288E-02 4.9944728639737243E-02 + 4.9944728817339884E-02 4.9944728998484983E-02 4.9944729183223881E-02 + 4.9944729371608605E-02 4.9944729563691857E-02 4.9944729759527101E-02 + 4.9944729959168425E-02 4.9944730162670641E-02 4.9944730370089320E-02 + 4.9944730581480704E-02 4.9944730796901801E-02 4.9944731016410344E-02 + 4.9944731240064842E-02 4.9944731467924539E-02 4.9944731700049531E-02 + 4.9944731936500592E-02 4.9944732177339371E-02 4.9944732422628209E-02 + 4.9944732672430395E-02 4.9944732926809933E-02 4.9944733185831792E-02 + 4.9944733449561594E-02 4.9944733718066035E-02 4.9944733991412457E-02 + 4.9944734269669208E-02 4.9944734552905566E-02 4.9944734841191551E-02 + 4.9944735134598232E-02 4.9944735433197510E-02 4.9944735737062262E-02 + 4.9944736046266341E-02 4.9944736360884520E-02 4.9944736680992474E-02 + 4.9944737006666934E-02 4.9944737337985608E-02 4.9944737675027238E-02 + 4.9944738017871526E-02 4.9944738366599233E-02 4.9944738721292167E-02 + 4.9944739082033153E-02 4.9944739448906192E-02 4.9944739821996244E-02 + 4.9944740201389323E-02 4.9944740587172839E-02 4.9944740979434937E-02 + 4.9944741378265156E-02 4.9944741783754139E-02 4.9944742195993666E-02 + 4.9944742615076664E-02 4.9944743041097334E-02 4.9944743474151079E-02 + 4.9944743914334400E-02 4.9944744361745209E-02 4.9944744816482589E-02 + 4.9944745278646840E-02 4.9944745748339688E-02 4.9944746225664062E-02 + 4.9944746710724248E-02 4.9944747203625836E-02 4.9944747704475746E-02 + 4.9944748213382392E-02 4.9944748730455409E-02 4.9944749255806019E-02 + 4.9944749789546640E-02 4.9944750331791306E-02 4.9944750882655473E-02 + 4.9944751442256005E-02 4.9944752010711350E-02 4.9944752588141378E-02 + 4.9944753174667580E-02 4.9944753770412909E-02 4.9944754375501922E-02 + 4.9944754990060812E-02 4.9944755614217295E-02 4.9944756248100776E-02 + 4.9944756891842315E-02 4.9944757545574543E-02 4.9944758209431873E-02 + 4.9944758883550454E-02 4.9944759568068070E-02 4.9944760263124367E-02 + 4.9944760968860628E-02 4.9944761685420010E-02 4.9944762412947541E-02 + 4.9944763151590015E-02 4.9944763901496103E-02 4.9944764662816381E-02 + 4.9944765435703295E-02 4.9944766220311333E-02 4.9944767016796815E-02 + 4.9944767825318079E-02 4.9944768646035524E-02 4.9944769479111521E-02 + 4.9944770324710570E-02 4.9944771182999094E-02 4.9944772054145832E-02 + 4.9944772938321565E-02 4.9944773835699126E-02 4.9944774746453757E-02 + 4.9944775670762789E-02 4.9944776608805704E-02 4.9944777560764479E-02 + 4.9944778526823164E-02 4.9944779507168288E-02 4.9944780501988702E-02 + 4.9944781511475626E-02 4.9944782535822643E-02 4.9944783575225866E-02 + 4.9944784629883839E-02 4.9944785699997572E-02 4.9944786785770773E-02 + 4.9944787887409470E-02 4.9944789005122517E-02 4.9944790139121252E-02 + 4.9944791289619754E-02 4.9944792456834745E-02 4.9944793640985696E-02 + 4.9944794842294908E-02 4.9944796060987354E-02 4.9944797297290941E-02 + 4.9944798551436381E-02 4.9944799823657376E-02 4.9944801114190432E-02 + 4.9944802423275148E-02 4.9944803751154059E-02 4.9944805098072781E-02 + 4.9944806464280025E-02 4.9944807850027667E-02 4.9944809255570592E-02 + 4.9944810681167066E-02 4.9944812127078471E-02 4.9944813593569566E-02 + 4.9944815080908346E-02 4.9944816589366219E-02 4.9944818119217957E-02 + 4.9944819670741852E-02 4.9944821244219652E-02 4.9944822839936516E-02 + 4.9944824458181401E-02 4.9944826099246685E-02 4.9944827763428561E-02 + 4.9944829451026823E-02 4.9944831162345084E-02 4.9944832897690694E-02 + 4.9944834657374919E-02 4.9944836441712846E-02 4.9944838251023631E-02 + 4.9944840085630236E-02 4.9944841945859859E-02 4.9944843832043645E-02 + 4.9944845744516991E-02 4.9944847683619328E-02 4.9944849649694478E-02 + 4.9944851643090565E-02 4.9944853664159940E-02 4.9944855713259448E-02 + 4.9944857790750329E-02 4.9944859896998456E-02 4.9944862032374082E-02 + 4.9944864197252220E-02 4.9944866392012566E-02 4.9944868617039437E-02 + 4.9944870872722126E-02 4.9944873159454575E-02 4.9944875477635771E-02 + 4.9944877827669674E-02 4.9944880209965244E-02 4.9944882624936536E-02 + 4.9944885073002772E-02 4.9944887554588410E-02 4.9944890070123163E-02 + 4.9944892620042154E-02 4.9944895204785858E-02 4.9944897824800334E-02 + 4.9944900480537097E-02 4.9944903172453259E-02 4.9944905901011756E-02 + 4.9944908666681151E-02 4.9944911469935897E-02 4.9944914311256368E-02 + 4.9944917191128917E-02 4.9944920110045858E-02 4.9944923068505669E-02 + 4.9944926067013111E-02 4.9944929106079138E-02 4.9944932186221064E-02 + 4.9944935307962596E-02 4.9944938471834018E-02 4.9944941678372157E-02 + 4.9944944928120530E-02 4.9944948221629426E-02 4.9944951559455886E-02 + 4.9944954942163958E-02 4.9944958370324616E-02 4.9944961844515967E-02 + 4.9944965365323273E-02 4.9944968933339141E-02 4.9944972549163386E-02 + 4.9944976213403311E-02 4.9944979926673842E-02 4.9944983689597419E-02 + 4.9944987502804274E-02 4.9944991366932423E-02 4.9944995282627747E-02 + 4.9944999250544263E-02 4.9945003271343977E-02 4.9945007345697089E-02 + 4.9945011474282146E-02 4.9945015657786175E-02 4.9945019896904551E-02 + 4.9945024192341418E-02 4.9945028544809533E-02 4.9945032955030513E-02 + 4.9945037423734892E-02 4.9945041951662335E-02 4.9945046539561500E-02 + 4.9945051188190516E-02 4.9945055898316680E-02 4.9945060670716954E-02 + 4.9945065506177777E-02 4.9945070405495465E-02 4.9945075369476004E-02 + 4.9945080398935485E-02 4.9945085494700066E-02 4.9945090657606085E-02 + 4.9945095888500220E-02 4.9945101188239638E-02 4.9945106557692118E-02 + 4.9945111997736082E-02 4.9945117509260901E-02 4.9945123093166920E-02 + 4.9945128750365511E-02 4.9945134481779382E-02 4.9945140288342758E-02 + 4.9945146171001042E-02 4.9945152130711747E-02 4.9945158168443894E-02 + 4.9945164285178652E-02 4.9945170481909149E-02 4.9945176759640872E-02 + 4.9945183119391723E-02 4.9945189562192085E-02 4.9945196089085132E-02 + 4.9945202701126921E-02 4.9945209399386445E-02 4.9945216184945920E-02 + 4.9945223058900971E-02 4.9945230022360683E-02 4.9945237076447803E-02 + 4.9945244222298943E-02 4.9945251461064773E-02 4.9945258793910034E-02 + 4.9945266222013979E-02 4.9945273746570207E-02 4.9945281368787182E-02 + 4.9945289089888198E-02 4.9945296911111645E-02 4.9945304833711138E-02 + 4.9945312858955780E-02 4.9945320988130260E-02 4.9945329222535098E-02 + 4.9945337563486868E-02 4.9945346012318349E-02 4.9945354570378617E-02 + 4.9945363239033536E-02 4.9945372019665757E-02 4.9945380913674828E-02 + 4.9945389922477539E-02 4.9945399047508297E-02 4.9945408290218964E-02 + 4.9945417652079362E-02 4.9945427134577343E-02 4.9945436739219175E-02 + 4.9945446467529540E-02 4.9945456321051913E-02 4.9945466301348766E-02 + 4.9945476410001827E-02 4.9945486648612161E-02 4.9945497018800598E-02 + 4.9945507522207923E-02 4.9945518160495077E-02 4.9945528935343354E-02 + 4.9945539848454797E-02 4.9945550901552380E-02 4.9945562096380139E-02 + 4.9945573434703690E-02 4.9945584918310228E-02 4.9945596549008979E-02 + 4.9945608328631402E-02 4.9945620259031431E-02 4.9945632342085738E-02 + 4.9945644579694151E-02 4.9945656973779722E-02 4.9945669526289156E-02 + 4.9945682239193198E-02 4.9945695114486564E-02 4.9945708154188626E-02 + 4.9945721360343573E-02 4.9945734735020515E-02 4.9945748280314103E-02 + 4.9945761998344662E-02 4.9945775891258579E-02 4.9945789961228573E-02 + 4.9945804210454019E-02 4.9945818641161280E-02 4.9945833255603998E-02 + 4.9945848056063544E-02 4.9945863044849291E-02 4.9945878224298822E-02 + 4.9945893596778576E-02 4.9945909164683819E-02 4.9945924930439319E-02 + 4.9945940896499612E-02 4.9945957065349302E-02 4.9945973439503438E-02 + 4.9945990021507916E-02 4.9946006813939861E-02 4.9946023819408013E-02 + 4.9946041040553057E-02 4.9946058480048086E-02 4.9946076140599024E-02 + 4.9946094024944751E-02 4.9946112135857972E-02 4.9946130476145260E-02 + 4.9946149048647547E-02 4.9946167856240571E-02 4.9946186901835485E-02 + 4.9946206188378944E-02 4.9946225718853668E-02 4.9946245496279143E-02 + 4.9946265523711571E-02 4.9946285804244844E-02 4.9946306341010584E-02 + 4.9946327137178857E-02 4.9946348195958501E-02 4.9946369520597680E-02 + 4.9946391114384349E-02 4.9946412980646705E-02 4.9946435122753742E-02 + 4.9946457544115662E-02 4.9946480248184412E-02 4.9946503238454260E-02 + 4.9946526518462181E-02 4.9946550091788493E-02 4.9946573962057317E-02 + 4.9946598132937191E-02 4.9946622608141478E-02 4.9946647391429032E-02 + 4.9946672486604692E-02 4.9946697897519869E-02 4.9946723628073085E-02 + 4.9946749682210620E-02 4.9946776063927029E-02 4.9946802777265570E-02 + 4.9946829826319303E-02 4.9946857215231046E-02 4.9946884948194409E-02 + 4.9946913029454372E-02 4.9946941463307706E-02 4.9946970254103877E-02 + 4.9946999406245439E-02 4.9947028924188855E-02 4.9947058812444982E-02 + 4.9947089075579966E-02 4.9947119718215770E-02 4.9947150745030783E-02 + 4.9947182160760661E-02 4.9947213970198981E-02 4.9947246178197839E-02 + 4.9947278789668745E-02 4.9947311809583179E-02 4.9947345242973389E-02 + 4.9947379094933235E-02 4.9947413370618698E-02 4.9947448075248854E-02 + 4.9947483214106560E-02 4.9947518792539204E-02 4.9947554815959597E-02 + 4.9947591289846584E-02 4.9947628219745993E-02 4.9947665611271452E-02 + 4.9947703470105208E-02 4.9947741801998811E-02 4.9947780612774141E-02 + 4.9947819908324267E-02 4.9947859694614127E-02 4.9947899977681565E-02 + 4.9947940763638288E-02 4.9947982058670411E-02 4.9948023869039869E-02 + 4.9948066201084898E-02 4.9948109061221220E-02 4.9948152455942862E-02 + 4.9948196391823171E-02 4.9948240875515783E-02 4.9948285913755580E-02 + 4.9948331513359576E-02 4.9948377681228194E-02 4.9948424424345966E-02 + 4.9948471749782702E-02 4.9948519664694650E-02 4.9948568176325245E-02 + 4.9948617292006441E-02 4.9948667019159641E-02 4.9948717365296928E-02 + 4.9948768338021990E-02 4.9948819945031336E-02 4.9948872194115354E-02 + 4.9948925093159624E-02 4.9948978650145859E-02 4.9949032873153248E-02 + 4.9949087770359488E-02 4.9949143350042136E-02 4.9949199620579733E-02 + 4.9949256590452906E-02 4.9949314268246080E-02 4.9949372662648039E-02 + 4.9949431782453868E-02 4.9949491636565715E-02 4.9949552233994492E-02 + 4.9949613583860963E-02 4.9949675695397107E-02 4.9949738577947607E-02 + 4.9949802240971043E-02 4.9949866694041417E-02 4.9949931946849442E-02 + 4.9949998009204043E-02 4.9950064891033784E-02 4.9950132602388307E-02 + 4.9950201153439767E-02 4.9950270554484401E-02 4.9950340815943947E-02 + 4.9950411948367281E-02 4.9950483962431860E-02 4.9950556868945277E-02 + 4.9950630678847037E-02 4.9950705403209866E-02 4.9950781053241480E-02 + 4.9950857640286395E-02 4.9950935175827230E-02 4.9951013671486674E-02 + 4.9951093139029075E-02 4.9951173590362094E-02 4.9951255037538680E-02 + 4.9951337492758589E-02 4.9951420968370290E-02 4.9951505476872757E-02 + 4.9951591030917272E-02 4.9951677643309302E-02 4.9951765327010324E-02 + 4.9951854095139830E-02 4.9951943960977137E-02 4.9952034937963415E-02 + 4.9952127039703580E-02 4.9952220279968325E-02 4.9952314672696035E-02 + 4.9952410231995030E-02 4.9952506972145524E-02 4.9952604907601610E-02 + 4.9952704052993520E-02 4.9952804423129729E-02 4.9952906032999032E-02 + 4.9953008897772877E-02 4.9953113032807507E-02 4.9953218453646156E-02 + 4.9953325176021496E-02 4.9953433215857670E-02 4.9953542589272829E-02 + 4.9953653312581489E-02 4.9953765402296763E-02 4.9953878875132911E-02 + 4.9953993748007776E-02 4.9954110038045105E-02 4.9954227762577311E-02 + 4.9954346939147742E-02 4.9954467585513460E-02 4.9954589719647613E-02 + 4.9954713359742345E-02 4.9954838524211169E-02 4.9954965231691857E-02 + 4.9955093501049062E-02 4.9955223351377066E-02 4.9955354802002715E-02 + 4.9955487872488033E-02 4.9955622582633252E-02 4.9955758952479529E-02 + 4.9955897002312101E-02 4.9956036752663024E-02 4.9956178224314342E-02 + 4.9956321438301025E-02 4.9956466415914037E-02 4.9956613178703563E-02 + 4.9956761748481890E-02 4.9956912147326962E-02 4.9957064397585287E-02 + 4.9957218521875409E-02 4.9957374543091071E-02 4.9957532484404571E-02 + 4.9957692369270279E-02 4.9957854221427858E-02 4.9958018064905962E-02 + 4.9958183924025484E-02 4.9958351823403288E-02 4.9958521787955845E-02 + 4.9958693842902573E-02 4.9958868013769892E-02 4.9959044326394739E-02 + 4.9959222806928306E-02 4.9959403481839977E-02 4.9959586377921160E-02 + 4.9959771522289094E-02 4.9959958942390935E-02 4.9960148666007738E-02 + 4.9960340721258441E-02 4.9960535136603888E-02 4.9960731940851280E-02 + 4.9960931163158147E-02 4.9961132833036596E-02 4.9961336980357665E-02 + 4.9961543635355689E-02 4.9961752828632675E-02 4.9961964591162825E-02 + 4.9962178954297040E-02 4.9962395949767369E-02 4.9962615609691771E-02 + 4.9962837966578751E-02 4.9963063053332098E-02 4.9963290903255721E-02 + 4.9963521550058447E-02 4.9963755027858887E-02 4.9963991371190619E-02 + 4.9964230615006877E-02 4.9964472794686021E-02 4.9964717946036394E-02 + 4.9964966105301746E-02 4.9965217309166407E-02 4.9965471594760565E-02 + 4.9965728999665893E-02 4.9965989561920825E-02 4.9966253320026140E-02 + 4.9966520312950666E-02 4.9966790580136838E-02 4.9967064161506480E-02 + 4.9967341097466637E-02 4.9967621428915469E-02 4.9967905197248134E-02 + 4.9968192444362902E-02 4.9968483212667315E-02 4.9968777545084109E-02 + 4.9969075485057760E-02 4.9969377076560503E-02 4.9969682364099099E-02 + 4.9969991392720972E-02 4.9970304208020955E-02 4.9970620856147840E-02 + 4.9970941383811265E-02 4.9971265838288217E-02 4.9971594267430197E-02 + 4.9971926719669962E-02 4.9972263244028786E-02 4.9972603890123340E-02 + 4.9972948708173176E-02 4.9973297749007807E-02 4.9973651064074261E-02 + 4.9974008705444474E-02 4.9974370725822857E-02 4.9974737178554114E-02 + 4.9975108117630798E-02 4.9975483597701154E-02 4.9975863674077352E-02 + 4.9976248402743256E-02 4.9976637840362527E-02 4.9977032044287183E-02 + 4.9977431072565540E-02 4.9977834983950982E-02 4.9978243837910274E-02 + 4.9978657694632375E-02 4.9979076615036998E-02 4.9979500660783674E-02 + 4.9979929894280510E-02 4.9980364378693423E-02 4.9980804177955258E-02 + 4.9981249356775018E-02 4.9981699980647276E-02 4.9982156115861903E-02 + 4.9982617829513284E-02 4.9983085189510522E-02 4.9983558264586975E-02 + 4.9984037124310314E-02 4.9984521839092785E-02 4.9985012480201069E-02 + 4.9985509119767187E-02 4.9986011830798351E-02 4.9986520687188063E-02 + 4.9987035763726602E-02 4.9987557136111853E-02 4.9988084880960383E-02 + 4.9988619075818627E-02 4.9989159799173948E-02 4.9989707130466132E-02 + 4.9990261150099038E-02 4.9990821939452076E-02 4.9991389580891991E-02 + 4.9991964157785049E-02 4.9992545754508871E-02 4.9993134456464861E-02 + 4.9993730350090429E-02 4.9994333522871692E-02 4.9994944063356028E-02 + 4.9995562061164969E-02 4.9996187607007254E-02 4.9996820792691785E-02 + 4.9997461711141222E-02 4.9998110456405224E-02 4.9998767123674098E-02 + 4.9999431809292748E-02 5.0000104610774497E-02 5.0000785626815189E-02 + 5.0001474957307723E-02 5.0002172703356162E-02 5.0002878967290783E-02 + 5.0003593852682451E-02 5.0004317464358121E-02 5.0005049908415512E-02 + 5.0005791292238845E-02 5.0006541724514283E-02 5.0007301315245577E-02 + 5.0008070175770060E-02 5.0008848418774864E-02 5.0009636158312977E-02 + 5.0010433509819957E-02 5.0011240590130575E-02 5.0012057517495781E-02 + 5.0012884411599616E-02 5.0013721393576821E-02 5.0014568586030088E-02 + 5.0015426113047885E-02 5.0016294100222500E-02 5.0017172674668139E-02 + 5.0018061965039072E-02 5.0018962101548686E-02 5.0019873215987963E-02 + 5.0020795441744592E-02 5.0021728913822318E-02 5.0022673768860465E-02 + 5.0023630145153562E-02 5.0024598182671361E-02 5.0025578023079158E-02 + 5.0026569809758122E-02 5.0027573687826003E-02 5.0028589804158294E-02 + 5.0029618307409165E-02 5.0030659348033010E-02 5.0031713078306228E-02 + 5.0032779652349209E-02 5.0033859226148412E-02 5.0034951957579135E-02 + 5.0036058006427998E-02 5.0037177534416236E-02 5.0038310705222834E-02 + 5.0039457684508300E-02 5.0040618639938417E-02 5.0041793741208450E-02 + 5.0042983160067701E-02 5.0044187070344082E-02 5.0045405647969332E-02 + 5.0046639071004262E-02 5.0047887519664498E-02 5.0049151176346278E-02 + 5.0050430225652941E-02 5.0051724854421303E-02 5.0053035251748729E-02 + 5.0054361609020229E-02 5.0055704119936019E-02 5.0057062980539455E-02 + 5.0058438389245195E-02 5.0059830546867787E-02 5.0061239656650422E-02 + 5.0062665924294425E-02 5.0064109557988574E-02 5.0065570768439011E-02 + 5.0067049768899842E-02 5.0068546775203525E-02 5.0070062005791845E-02 + 5.0071595681747461E-02 5.0073148026825547E-02 5.0074719267486086E-02 + 5.0076309632926128E-02 5.0077919355112833E-02 5.0079548668816892E-02 + 5.0081197811645987E-02 5.0082867024078943E-02 5.0084556549500399E-02 + 5.0086266634235405E-02 5.0087997527585096E-02 5.0089749481862081E-02 + 5.0091522752426801E-02 5.0093317597724202E-02 5.0095134279320538E-02 + 5.0096973061941011E-02 5.0098834213507554E-02 5.0100718005177437E-02 + 5.0102624711381584E-02 5.0104554609864488E-02 5.0106507981723475E-02 + 5.0108485111448997E-02 5.0110486286965558E-02 5.0112511799672618E-02 + 5.0114561944486324E-02 5.0116637019881727E-02 5.0118737327935300E-02 + 5.0120863174368327E-02 5.0123014868590131E-02 5.0125192723742766E-02 + 5.0127397056745369E-02 5.0129628188339381E-02 5.0131886443134599E-02 + 5.0134172149655112E-02 5.0136485640386343E-02 5.0138827251822435E-02 + 5.0141197324514192E-02 5.0143596203117514E-02 5.0146024236442627E-02 + 5.0148481777503612E-02 5.0150969183568761E-02 5.0153486816211353E-02 + 5.0156035041361131E-02 5.0158614229356351E-02 5.0161224754996306E-02 + 5.0163866997594918E-02 5.0166541341034161E-02 5.0169248173819098E-02 + 5.0171987889132671E-02 5.0174760884891645E-02 5.0177567563803149E-02 + 5.0180408333421744E-02 5.0183283606207170E-02 5.0186193799582848E-02 + 5.0189139335995107E-02 5.0192120642972959E-02 5.0195138153188740E-02 + 5.0198192304519142E-02 5.0201283540107548E-02 5.0204412308426316E-02 + 5.0207579063340460E-02 5.0210784264171797E-02 5.0214028375763754E-02 + 5.0217311868547082E-02 5.0220635218606390E-02 5.0223998907747064E-02 + 5.0227403423563549E-02 5.0230849259507861E-02 5.0234336914959474E-02 + 5.0237866895295288E-02 5.0241439711961225E-02 5.0245055882543938E-02 + 5.0248715930843721E-02 5.0252420386948327E-02 5.0256169787307410E-02 + 5.0259964674807943E-02 5.0263805598850499E-02 5.0267693115426303E-02 + 5.0271627787195482E-02 5.0275610183565828E-02 5.0279640880772795E-02 + 5.0283720461960058E-02 5.0287849517261340E-02 5.0292028643883137E-02 + 5.0296258446188229E-02 5.0300539535779995E-02 5.0304872531588392E-02 + 5.0309258059956008E-02 5.0313696754725787E-02 5.0318189257329449E-02 + 5.0322736216877009E-02 5.0327338290247166E-02 5.0331996142179009E-02 + 5.0336710445364613E-02 5.0341481880542542E-02 5.0346311136592645E-02 + 5.0351198910631889E-02 5.0356145908111050E-02 5.0361152842913058E-02 + 5.0366220437451571E-02 5.0371349422771675E-02 5.0376540538650948E-02 + 5.0381794533701972E-02 5.0387112165476103E-02 5.0392494200568072E-02 + 5.0397941414722258E-02 5.0403454592939691E-02 5.0409034529586449E-02 + 5.0414682028503389E-02 5.0420397903116858E-02 5.0426182976550889E-02 + 5.0432038081740481E-02 5.0437964061546235E-02 5.0443961768870262E-02 + 5.0450032066773336E-02 5.0456175828593380E-02 5.0462393938065390E-02 + 5.0468687289442336E-02 5.0475056787617947E-02 5.0481503348250384E-02 + 5.0488027897887491E-02 5.0494631374093414E-02 5.0501314725576563E-02 + 5.0508078912319170E-02 5.0514924905707970E-02 5.0521853688666650E-02 + 5.0528866255789374E-02 5.0535963613476259E-02 5.0543146780069742E-02 + 5.0550416785993119E-02 5.0557774673890069E-02 5.0565221498765786E-02 + 5.0572758328129852E-02 5.0580386242140646E-02 5.0588106333750896E-02 + 5.0595919708855630E-02 5.0603827486440642E-02 5.0611830798733735E-02 + 5.0619930791356606E-02 5.0628128623479006E-02 5.0636425467974137E-02 + 5.0644822511576072E-02 5.0653320955038703E-02 5.0661922013296244E-02 + 5.0670626915625613E-02 5.0679436905810671E-02 5.0688353242307818E-02 + 5.0697377198413815E-02 5.0706510062434845E-02 5.0715753137858061E-02 + 5.0725107743524081E-02 5.0734575213802147E-02 5.0744156898766421E-02 + 5.0753854164374786E-02 5.0763668392648710E-02 5.0773600981855876E-02 + 5.0783653346693963E-02 5.0793826918476885E-02 5.0804123145322469E-02 + 5.0814543492342497E-02 5.0825089441834490E-02 5.0835762493475378E-02 + 5.0846564164517452E-02 5.0857495989985985E-02 5.0868559522879137E-02 + 5.0879756334369607E-02 5.0891088014008580E-02 5.0902556169931792E-02 + 5.0914162429067170E-02 5.0925908437345173E-02 5.0937795859910914E-02 + 5.0949826381338340E-02 5.0962001705846791E-02 5.0974323557519519E-02 + 5.0986793680524230E-02 5.0999413839336351E-02 5.1012185818963746E-02 + 5.1025111425174158E-02 5.1038192484724562E-02 5.1051430845593250E-02 + 5.1064828377213149E-02 5.1078386970708559E-02 5.1092108539133423E-02 + 5.1105995017712083E-02 5.1120048364082064E-02 5.1134270558539904E-02 + 5.1148663604288207E-02 5.1163229527686066E-02 5.1177970378501088E-02 + 5.1192888230164012E-02 5.1207985180025832E-02 5.1223263349617028E-02 + 5.1238724884909284E-02 5.1254371956579690E-02 5.1270206760277090E-02 + 5.1286231516891011E-02 5.1302448472823031E-02 5.1318859900260291E-02 + 5.1335468097451993E-02 5.1352275388987401E-02 5.1369284126077490E-02 + 5.1386496686837688E-02 5.1403915476574351E-02 5.1421542928072765E-02 + 5.1439381501887933E-02 5.1457433686637917E-02 5.1475701999299447E-02 + 5.1494188985506215E-02 5.1512897219849182E-02 5.1531829306180034E-02 + 5.1550987877916454E-02 5.1570375598350239E-02 5.1589995160957768E-02 + 5.1609849289712836E-02 5.1629940739402115E-02 5.1650272295942899E-02 + 5.1670846776703493E-02 5.1691667030825721E-02 5.1712735939550211E-02 + 5.1734056416543960E-02 5.1755631408230085E-02 5.1777463894120503E-02 + 5.1799556887150454E-02 5.1821913434015668E-02 5.1844536615511985E-02 + 5.1867429546877043E-02 5.1890595378134508E-02 5.1914037294440579E-02 + 5.1937758516432758E-02 5.1961762300580867E-02 5.1986051939540374E-02 + 5.2010630762507892E-02 5.2035502135578920E-02 5.2060669462107759E-02 + 5.2086136183069377E-02 5.2111905777423834E-02 5.2137981762482272E-02 + 5.2164367694275258E-02 5.2191067167923176E-02 5.2218083818008146E-02 + 5.2245421318948604E-02 5.2273083385375035E-02 5.2301073772508026E-02 + 5.2329396276537848E-02 5.2358054735006002E-02 5.2387053027188123E-02 + 5.2416395074479080E-02 5.2446084840778832E-02 5.2476126332880707E-02 + 5.2506523600860430E-02 5.2537280738466849E-02 5.2568401883513846E-02 + 5.2599891218273839E-02 5.2631752969871937E-02 5.2663991410681565E-02 + 5.2696610858720794E-02 5.2729615678050158E-02 5.2763010279170346E-02 + 5.2796799119421839E-02 5.2830986703384118E-02 5.2865577583275987E-02 + 5.2900576359356362E-02 5.2935987680325022E-02 5.2971816243723949E-02 + 5.3008066796338633E-02 5.3044744134599288E-02 5.3081853104981973E-02 + 5.3119398604409541E-02 5.3157385580652042E-02 5.3195819032726639E-02 + 5.3234704011296811E-02 5.3274045619070461E-02 5.3313849011197803E-02 + 5.3354119395666894E-02 5.3394862033698885E-02 5.3436082240141174E-02 + 5.3477785383858958E-02 5.3519976888125133E-02 5.3562662231007738E-02 + 5.3605846945755403E-02 5.3649536621180258E-02 5.3693736902038026E-02 + 5.3738453489405411E-02 5.3783692141053885E-02 5.3829458671820672E-02 + 5.3875758953975637E-02 5.3922598917584608E-02 5.3969984550867933E-02 + 5.4017921900555592E-02 5.4066417072236680E-02 5.4115476230704410E-02 + 5.4165105600295457E-02 5.4215311465224104E-02 5.4266100169910216E-02 + 5.4317478119300752E-02 5.4369451779185160E-02 5.4422027676503448E-02 + 5.4475212399647088E-02 5.4529012598752126E-02 5.4583434985984371E-02 + 5.4638486335815896E-02 5.4694173485293048E-02 5.4750503334294605E-02 + 5.4807482845780700E-02 5.4865119046031106E-02 5.4923419024873403E-02 + 5.4982389935899413E-02 5.5042038996670414E-02 5.5102373488910089E-02 + 5.5163400758684873E-02 5.5225128216571030E-02 5.5287563337807884E-02 + 5.5350713662437143E-02 5.5414586795426754E-02 5.5479190406779566E-02 + 5.5544532231625754E-02 5.5610620070298759E-02 5.5677461788393147E-02 + 5.5745065316804877E-02 5.5813438651752569E-02 5.5882589854779181E-02 + 5.5952527052733271E-02 5.6023258437729775E-02 5.6094792267088002E-02 + 5.6167136863247716E-02 5.6240300613661573E-02 5.6314291970663087E-02 + 5.6389119451309283E-02 5.6464791637197344E-02 5.6541317174254660E-02 + 5.6618704772499771E-02 5.6696963205775275E-02 5.6776101311450604E-02 + 5.6856127990093076E-02 5.6937052205107697E-02 5.7018882982343040E-02 + 5.7101629409663415E-02 5.7185300636484894E-02 5.7269905873275184E-02 + 5.7355454391015290E-02 5.7441955520621944E-02 5.7529418652330043E-02 + 5.7617853235032629E-02 5.7707268775578219E-02 5.7797674838023616E-02 + 5.7889081042840136E-02 5.7981497066073445E-02 5.8074932638453369E-02 + 5.8169397544453987E-02 5.8264901621301206E-02 5.8361454757926756E-02 + 5.8459066893866929E-02 5.8557748018104108E-02 5.8657508167849266E-02 + 5.8758357427264110E-02 5.8860305926120626E-02 5.8963363838396135E-02 + 5.9067541380802065E-02 5.9172848811244412E-02 5.9279296427213787E-02 + 5.9386894564102989E-02 5.9495653593450055E-02 5.9605583921104488E-02 + 5.9716695985314462E-02 5.9829000254732381E-02 5.9942507226337587E-02 + 6.0057227423271631E-02 6.0173171392586468E-02 6.0290349702900273E-02 + 6.0408772941960447E-02 6.0528451714109879E-02 6.0649396637654181E-02 + 6.0771618342127479E-02 6.0895127465452954E-02 6.1019934650996623E-02 + 6.1146050544510021E-02 6.1273485790959842E-02 6.1402251031240557E-02 + 6.1532356898767925E-02 6.1663814015948851E-02 6.1796632990525617E-02 + 6.1930824411789952E-02 6.2066398846664886E-02 6.2203366835648997E-02 + 6.2341738888621573E-02 6.2481525480503508E-02 6.2622737046770890E-02 + 6.2765383978817341E-02 6.2909476619161228E-02 6.3055025256494104E-02 + 6.3202040120565656E-02 6.3350531376902094E-02 6.3500509121352827E-02 + 6.3651983374461860E-02 6.3804964075659401E-02 6.3959461077269283E-02 + 6.4115484138327433E-02 6.4273042918207984E-02 6.4432146970050591E-02 + 6.4592805733986028E-02 6.4755028530154510E-02 6.4918824551511725E-02 + 6.5084202856417944E-02 6.5251172361005846E-02 6.5419741831320516E-02 + 6.5589919875228386E-02 6.5761714934088264E-02 6.5935135274180101E-02 + 6.6110188977886494E-02 6.6286883934620358E-02 6.6465227831494944E-02 + 6.6645228143728821E-02 6.6826892124782669E-02 6.7010226796219471E-02 + 6.7195238937285143E-02 6.7381935074202176E-02 6.7570321469171357E-02 + 6.7760404109075023E-02 6.7952188693877494E-02 6.8145680624715071E-02 + 6.8340884991671305E-02 6.8537806561230277E-02 6.8736449763403290E-02 + 6.8936818678522263E-02 6.9138917023693805E-02 6.9342748138909074E-02 + 6.9548314972801964E-02 6.9755620068051388E-02 6.9964665546420418E-02 + 7.0175453093427473E-02 7.0387983942643312E-02 7.0602258859607664E-02 + 7.0818278125361053E-02 7.1036041519584966E-02 7.1255548303345545E-02 + 7.1476797201435169E-02 7.1699786384306449E-02 7.1924513449594010E-02 + 7.2150975403218146E-02 7.2379168640066188E-02 7.2609088924246279E-02 + 7.2840731368909117E-02 7.3074090415633688E-02 7.3309159813371758E-02 + 7.3545932596948582E-02 7.3784401065114399E-02 7.4024556758145205E-02 + 7.4266390434987381E-02 7.4509892049945459E-02 7.4755050728908756E-02 + 7.5001854745115851E-02 7.5250291494454155E-02 7.5500347470293938E-02 + 7.5752008237854690E-02 7.6005258408104653E-02 7.6260081611192201E-02 + 7.6516460469409769E-02 7.6774376569691577E-02 7.7033810435646582E-02 + 7.7294741499128031E-02 7.7557148071343229E-02 7.7821007313506163E-02 + 7.8086295207037873E-02 7.8352986523317861E-02 7.8621054792994000E-02 + 7.8890472274855794E-02 7.9161209924278594E-02 7.9433237361247577E-02 + 7.9706522837968932E-02 7.9981033206080493E-02 8.0256733883470141E-02 + 8.0533588820716512E-02 8.0811560467163368E-02 8.1090609736643324E-02 + 8.1370695972865253E-02 8.1651776914483165E-02 8.1933808659863994E-02 + 8.2216745631574106E-02 8.2500540540605183E-02 8.2785144350361800E-02 + 8.3070506240435507E-02 8.3356573570188205E-02 8.3643291842176073E-02 + 8.3930604665438086E-02 8.4218453718683736E-02 8.4506778713409697E-02 + 8.4795517356980210E-02 8.5084605315708439E-02 8.5373976177975167E-02 + 8.5663561417426176E-02 8.5953290356290429E-02 8.6243090128862762E-02 + 8.6532885645199134E-02 8.6822599555071753E-02 8.7112152212236629E-02 + 8.7401461639067285E-02 8.7690443491609482E-02 8.7979011025117557E-02 + 8.8267075060132219E-02 8.8554543949164871E-02 8.8841323544053538E-02 + 8.9127317164062372E-02 8.9412425564793604E-02 8.9696546907989935E-02 + 8.9979576732303737E-02 9.0261407925113599E-02 9.0541930695473713E-02 + 9.0821032548280334E-02 9.1098598259747782E-02 9.1374509854284733E-02 + 9.1648646582867879E-02 9.1920884903011299E-02 9.2191098460434426E-02 + 9.2459158072532591E-02 9.2724931713759534E-02 9.2988284503032675E-02 + 9.3249078693275547E-02 9.3507173663214607E-02 9.3762425911551761E-02 + 9.4014689053634845E-02 9.4263813820752676E-02 9.4509648062184690E-02 + 9.4752036750135382E-02 9.4990821987689378E-02 9.5225843019923831E-02 + 9.5456936248317706E-02 9.5683935248599458E-02 9.5906670792177934E-02 + 9.6124970871301910E-02 9.6338660728096992E-02 9.6547562887628433E-02 + 9.6751497195142144E-02 9.6950280857635643E-02 9.7143728489912928E-02 + 9.7331652165276172E-02 9.7513861471010502E-02 9.7690163568815991E-02 + 9.7860363260341351E-02 9.8024263057973696E-02 9.8181663261038193E-02 + 9.8332362037559587E-02 9.8476155511735844E-02 9.8612837857273053E-02 + 9.8742201396727458E-02 9.8864036706997088E-02 9.8978132731104118E-02 + 9.9084276896401521E-02 9.9182255239336700E-02 9.9271852536897756E-02 + 9.9352852444861584E-02 9.9425037642958944E-02 9.9488189987062686E-02 + 9.9542090668498284E-02 9.9586520380567561E-02 9.9621259492367678E-02 + 9.9646088229976268E-02 9.9660786865065285E-02 9.9665135910992006E-02 + 9.9658916326405569E-02 9.9641909726394098E-02 9.9613898601181125E-02 + 9.9574666542369891E-02 9.9523998476713560E-02 9.9461680907376296E-02 + 9.9387502162630856E-02 9.9301252651921509E-02 9.9202725129200267E-02 + 9.9091714963424643E-02 9.8968020416086072E-02 9.8831442925612911E-02 + 9.8681787398471055E-02 9.8518862506761382E-02 9.8342480992087949E-02 + 9.8152459975445569E-02 9.7948621272849409E-02 9.7730791716401005E-02 + 9.7498803480459445E-02 9.7252494412554860E-02 9.6991708368654658E-02 + 9.6716295552361012E-02 9.6426112857590424E-02 9.6121024214250853E-02 + 9.5800900936404546E-02 9.5465622072371803E-02 9.5115074756197182E-02 + 9.4749154559869514E-02 9.4367765845653803E-02 9.3970822117862354E-02 + 9.3558246373357509E-02 9.3129971450049517E-02 9.2685940372620276E-02 + 9.2226106694674181E-02 9.1750434836484665E-02 9.1258900417479000E-02 + 9.0751490582572980E-02 9.0228204321444058E-02 8.9689052779799480E-02 + 8.9134059561678705E-02 8.8563261021804313E-02 8.7976706546973246E-02 + 8.7374458825466059E-02 8.6756654094700209E-02 8.6123679198328890E-02 + 8.5475986014370828E-02 8.4814030264027007E-02 8.4138271074918627E-02 + 8.3449170552348698E-02 8.2747193358573320E-02 8.2032806300021618E-02 + 8.1306477922352446E-02 8.0568678113220146E-02 7.9819877712597909E-02 + 7.9060548130516439E-02 7.8291160972074392E-02 7.7512187669595708E-02 + 7.6724099121818948E-02 7.5927365340029765E-02 7.5122455101071475E-02 + 7.4309835607184183E-02 7.3489972152657346E-02 7.2663327797294466E-02 + 7.1830363046722412E-02 7.0991535539585843E-02 7.0147299741699420E-02 + 6.9298106647239746E-02 6.8444403487081557E-02 6.7586633444388464E-02 + 6.6725235377587511E-02 6.5860643550859535E-02 6.4993287372291278E-02 + 6.4123591139830030E-02 6.3251973795192845E-02 6.2378848685880117E-02 + 6.1504623335437804E-02 6.0629699222115224E-02 5.9754471566056129E-02 + 5.8879329125158142E-02 5.8004653999722044E-02 5.7130821446010435E-02 + 5.6258199698818193E-02 5.5387149803153422E-02 5.4518025455107644E-02 + 5.3651172851988116E-02 5.2786930551767960E-02 5.1925629341899947E-02 + 5.1067592117520648E-02 5.0213133769062182E-02 4.9362561079274697E-02 + 4.8516172629643146E-02 4.7674258716175262E-02 4.6837101274516360E-02 + 4.6004973814340634E-02 4.5178141362945602E-02 4.4356860417972557E-02 + 4.3541378909155264E-02 4.2731936168993588E-02 4.1928762912229738E-02 + 4.1132081223999202E-02 4.0342104556513374E-02 3.9559037734124218E-02 + 3.8783076966606579E-02 3.8014409870488902E-02 3.7253215498251384E-02 + 3.6499664375205271E-02 3.5753918543855130E-02 3.5016131615543067E-02 + 3.4286448829166823E-02 3.3565007116754544E-02 3.2851935175678519E-02 + 3.2147353547281841E-02 3.1451374701691306E-02 3.0764103128582427E-02 + 3.0085635433663393E-02 2.9416060440639592E-02 2.8755459298421403E-02 + 2.8103905593332819E-02 2.7461465466081428E-02 2.6828197733247357E-02 + 2.6204154013051043E-02 2.5589378855157607E-02 2.4983909874278704E-02 + 2.4387777887334393E-02 2.3801007053936288E-02 2.3223615019959221E-02 + 2.2655613063967781E-02 2.2097006246269514E-02 2.1547793560366589E-02 + 2.1007968086583773E-02 2.0477517147651499E-02 1.9956422466029067E-02 + 1.9444660322753306E-02 1.8942201717606466E-02 1.8449012530395544E-02 + 1.7965053683109161E-02 1.7490281302933959E-02 1.7024646885579170E-02 + 1.6568097459083102E-02 1.6120575747735840E-02 1.5682020335976470E-02 + 1.5252365832090359E-02 1.4831543031537235E-02 1.4419479079743508E-02 + 1.4016097634198539E-02 1.3621319025697640E-02 1.3235060418580124E-02 + 1.2857235969813859E-02 1.2487756986783191E-02 1.2126532083640536E-02 + 1.1773467336087510E-02 1.1428466434453966E-02 1.1091430834949199E-02 + 1.0762259908963500E-02 1.0440851090301783E-02 1.0127100020236438E-02 + 9.8209006902702147E-03 9.5221455825050521E-03 9.2307258075162192E-03 + 8.9465312396367468E-03 8.6694506495610286E-03 8.3993718341816535E-03 + 8.1361817435775859E-03 7.8797666050774030E-03 7.6300120443255322E-03 + 7.3868032032852159E-03 7.1500248551160123E-03 6.9195615158694360E-03 + 6.6952975529518373E-03 6.4771172903078638E-03 6.2649051102843948E-03 + 6.0585455521393206E-03 5.8579234071657604E-03 5.6629238104070048E-03 + 5.4734323289437059E-03 5.2893350467396938E-03 5.1105186460390127E-03 + 4.9368704853114667E-03 4.7682786737497972E-03 4.6046321423265498E-03 + 4.4458207114267973E-03 4.2917351550703659E-03 4.1422672617529724E-03 + 3.9973098919321324E-03 3.8567570321925539E-03 3.7205038461289386E-03 + 3.5884467219891819E-03 3.4604833171251919E-03 3.3365125993021802E-03 + 3.2164348849217689E-03 3.1001518742174061E-03 2.9875666834844332E-03 + 2.8785838744098849E-03 2.7731094805704950E-03 2.6710510311697229E-03 + 2.5723175720874492E-03 2.4768196843177265E-03 2.3844694998723923E-03 + 2.2951807152297192E-03 2.2088686024089943E-03 2.1254500177528618E-03 + 2.0448434085004546E-03 1.9669688172350625E-03 1.8917478842904040E-03 + 1.8191038482000819E-03 1.7489615442747182E-03 1.6812474013912766E-03 + 1.6158894370785334E-03 1.5528172509823629E-03 1.4919620167936406E-03 + 1.4332564727208498E-03 1.3766349105882589E-03 1.3220331636395633E-03 + 1.2693885931254370E-03 1.2186400737521340E-03 1.1697279780665602E-03 + 1.1225941598517518E-03 1.0771819366048928E-03 1.0334360711681079E-03 + 9.9130275258047461E-04 9.5072957621763360E-04 9.1166552328346645E-04 + 8.7406093971609288E-04 8.3786751456849107E-04 8.0303825792178609E-04 + 7.6952747838721579E-04 7.3729076025049443E-04 7.0628494031022904E-04 + 6.7646808445979685E-04 6.4779946406001016E-04 6.2023953214763441E-04 + 5.9374989952279888E-04 5.6829331075615636E-04 5.4383362015462922E-04 + 5.2033576772245172E-04 4.9776575515226987E-04 4.7609062187907393E-04 + 4.5527842122775872E-04 4.3529819668328162E-04 4.1611995831048761E-04 + 3.9771465934894065E-04 3.8005417300627934E-04 3.6311126947199523E-04 + 3.4685959317184712E-04 3.3127364028157438E-04 3.1632873651700152E-04 + 3.0200101521619602E-04 2.8826739572788220E-04 2.7510556211898687E-04 + 2.6249394221284364E-04 2.5041168696835462E-04 2.3883865020921086E-04 + 2.2775536871109462E-04 2.1714304265373270E-04 2.0698351644359467E-04 + 1.9725925991207079E-04 1.8795334989299108E-04 1.7904945218248842E-04 + 1.7053180388334354E-04 1.6238519613517692E-04 1.5459495723107956E-04 + 1.4714693612059431E-04 1.4002748629828572E-04 1.3322345007653105E-04 + 1.2672214324057531E-04 1.2051134008336902E-04 1.1457925881721376E-04 + 1.0891454735876421E-04 1.0350626948353296E-04 9.8343891345640895E-05 + 9.3417268358215400E-05 8.8716632429500773E-05 8.4232579549470415E-05 + 7.9956057721458111E-05 7.5878355233103412E-05 7.1991089260690428E-05 + 6.8286194800792240E-05 6.4755913922971033E-05 6.1392785337162933E-05 + 5.8189634269260040E-05 5.5139562638324414E-05 5.2235939528803725E-05 + 4.9472391951064863E-05 4.6842795883543467E-05 4.4341267589789351E-05 + 4.1962155203698671E-05 3.9700030576236288E-05 3.7549681376992530E-05 + 3.5506103443959177E-05 3.3564493374971458E-05 3.1720241354327049E-05 + 2.9968924208175165E-05 2.8306298682353118E-05 2.6728294936445379E-05 + 2.5231010247938426E-05 2.3810702920456058E-05 2.2463786390173271E-05 + 2.1186823524622048E-05 1.9976521108228563E-05 1.8829724509043439E-05 + 1.7743412521257370E-05 1.6714692378221508E-05 1.5740794930825485E-05 + 1.4819069986216931E-05 1.3946981801979302E-05 1.3122104731015936E-05 + 1.2342119012521239E-05 1.1604806704549357E-05 1.0908047753821166E-05 + 1.0249816198536225E-05 9.6281765000839963E-06 9.0412799996703412E-06 + 8.4873614959977345E-06 7.9647359402545974E-06 7.4717952447856530E-06 + 7.0070052019279133E-06 6.5689025096055434E-06 6.1560919003844988E-06 + 5.7672433707901877E-06 5.4010895077923646E-06 5.0564229094573770E-06 + 4.7320936968622566E-06 4.4270071144550993E-06 4.1401212161337519E-06 + 3.8704446343983030E-06 3.6170344300144521E-06 3.3789940197022574E-06 + 3.1554711794402681E-06 2.9456561210465118E-06 2.7487796397677437E-06 + 2.5641113306747909E-06 2.3909578717257686E-06 2.2286613714208620E-06 + 2.0765977790313053E-06 1.9341753554424694E-06 1.8008332027054284E-06 + 1.6760398504444781E-06 1.5592918973186362E-06 1.4501127057843541E-06 + 1.3480511484536407E-06 1.2526804043876617E-06 1.1635968037096903E-06 + 1.0804187189640817E-06 1.0027855016889768E-06 9.3035646271052263E-07 + 8.6280989470514786E-07 7.9984213561394368E-07 7.4116667152993230E-07 + 6.8651327771449273E-07 6.3562719643399509E-07 5.8826835034142374E-07 + 5.4421059016088543E-07 5.0324097546512134E-07 4.6515908736776332E-07 + 4.2977637198291434E-07 3.9691551353500143E-07 3.6640983603148755E-07 + 3.3810273244022012E-07 3.1184712034176245E-07 2.8750492305519867E-07 + 2.6494657526350884E-07 2.4405055219179468E-07 2.2470292141831307E-07 + 2.0679691642458486E-07 1.9023253101669158E-07 1.7491613377529244E-07 + 1.6076010171694715E-07 1.4768247237393670E-07 1.3560661352401829E-07 + 1.2446090982535862E-07 1.1417846563534267E-07 1.0469682331497903E-07 + 9.5957696343276103E-08 8.7906716588189244E-08 8.0493195102599656E-08 + 7.3669895835210922E-08 6.7392821667295427E-08 6.1621012206834153E-08 + 5.6316352791817496E-08 5.1443394174268207E-08 4.6969182375920799E-08 + 4.2863098225456099E-08 3.9096706105713902E-08 3.5643611457416105E-08 + 3.2479326603600423E-08 2.9581144476211814E-08 2.6928019843104095E-08 + 2.4500457650080341E-08 2.2280408108536697E-08 2.0251168174780833E-08 + 1.8397289082163018E-08 1.6704489601794918E-08 1.5159574721831298E-08 + 1.3750359449064596E-08 1.2465597449926453E-08 1.1294914260909059E-08 + 1.0228744810919868E-08 9.2582750101638751E-09 8.3753871718184461E-09 + 7.5726090440264173E-09 6.8430662405953180E-09 6.1804378692537963E-09 + 5.5789151663924526E-09 5.0331629569072701E-09 4.5382837670811946E-09 + 4.0897844273865973E-09 3.6835450106789214E-09 3.3157899594854180E-09 + 2.9830612639828722E-09 2.6821935598111364E-09 2.4102910220942533E-09 + 2.1647059389474798E-09 1.9430188543438921E-09 1.7430201765088590E-09 + 1.5626931540121338E-09 1.4001981274460138E-09 1.2538579700217140E-09 + 1.1221446355948474E-09 1.0036667375529072E-09 8.9715808667261005E-10 + 8.0146712049116012E-10 7.1554716094222442E-10 6.3844744099299618E-10 + 5.6930484479220092E-10 5.0733630940843044E-10 4.5183183961213672E-10 + 4.0214809034144348E-10 3.5770247449930212E-10 3.1796775656553192E-10 + 2.8246709517946339E-10 2.5076950036483349E-10 2.2248567343542309E-10 + 1.9726419984486509E-10 1.7478806733382805E-10 1.5477148368921026E-10 + 1.3695697026932813E-10 1.2111270917274172E-10 1.0703012354220020E-10 + 9.4521672005136142E-11 8.3418839663661032E-11 7.3570309365566399E-11 + 6.4840298218506851E-11 5.7107045457331369E-11 5.0261438844139042E-11 + 4.4205767776604833E-11 3.8852592206805477E-11 3.4123717334281031E-11 + 2.9949264837365803E-11 2.6266832149648906E-11 2.3020731977378883E-11 + 2.0161304892083366E-11 1.7644298423878155E-11 1.5430306627935542E-11 + 1.3484264602280377E-11 1.1774992902213668E-11 1.0274787227830301E-11 + 8.9590491587385519E-12 7.8059540765209103E-12 6.7961527528681161E-12 + 5.9125033917205591E-12 5.1398311990913201E-12 4.4647128163277673E-12 + 3.8752831930950071E-12 3.3610626969224763E-12 2.9128024582379742E-12 + 2.5223461348127437E-12 2.1825064487618360E-12 1.8869550039010026E-12 + 1.6301240324910860E-12 1.4071188492589810E-12 1.2136399080566588E-12 + 1.0459134635203864E-12 9.0062993747297197E-13 7.7488917836080633E-13 + 6.6615188246707967E-13 5.7219651867079709E-13 4.9108116475506492E-13 + 4.2110972328797464E-13 3.6080203944047090E-13 3.0886749226248025E-13 + 2.6418167536646080E-13 2.2576582308612052E-13 1.9276867437289805E-13 + 1.6445049931970923E-13 1.4016904258421605E-13 1.1936716440998594E-13 + 1.0156198373858442E-13 8.6335349471547500E-14 7.3325482819411930E-14 + 6.2219652721975975E-14 5.2747825464684855E-14 4.4676840217573719E-14 + 3.7805952359886778E-14 3.1962024077852334E-14 2.6996249199868290E-14 + 2.2780600735177991E-14 1.9205119731007960E-14 1.6175453515236351E-14 + 1.3610716742490698E-14 1.1441634660125497E-14 9.6089328804559845E-15 + 8.0619422602668983E-15 6.7573913084901602E-15 5.6583619214918996E-15 + 4.7333872306990498E-15 3.9556729825044583E-15 3.3024261942728436E-15 + 2.7542768775647493E-15 2.2947804215164468E-15 1.9099898134962711E-15 + 1.5880882655770585E-15 1.3190740362308459E-15 1.0944903067714109E-15 + 9.0719390908916398E-16 7.5115752084375114E-16 6.2130066046306247E-16 + 5.1334543943926059E-16 4.2369357450990639E-16 3.4932163710855117E-16 + 2.8769193058905150E-16 2.3667674479613017E-16 1.9449404930574952E-16 + 1.5965295703317689E-16 1.3090752413904381E-16 1.0721765486190151E-16 + 8.7716055120604278E-17 7.1680330018875275E-17 5.8509450868138075E-17 + 4.7703929757307730E-17 3.8849136432471718E-17 3.1601275396900348E-17 + 2.5675612528781649E-17 2.0836601733102106E-17 1.6889614582382168E-17 + 1.3674020765440906E-17 1.1057405502738346E-17 8.9307428113637319E-18 + 7.2043714014409904E-18 5.8046437417688887E-18 4.6711390366717892E-18 + 3.7543480185312654E-18 3.0137520214358568E-18 2.4162311400124802E-18 + 1.9347467200678313E-18 1.5472522545621227E-18 1.2357942103199603E-18 + 9.8577059404129829E-19 7.8532035721233034E-19 6.2482118942351695E-19 + 4.9647698730968627E-19 3.9397942178141568E-19 3.1223065305390599E-19 + 2.4711644083852737E-19 1.9532073358896636E-19 1.5417435326988921E-19 + 1.2153166935043393E-19 9.5670218740536712E-20 7.5209111926971239E-20 + 5.9042798939397254E-20 4.6287376680126849E-20 3.6237122362710439E-20 + 2.8329353781327515E-20 2.2116060522660720E-20 1.7241033306589878E-20 + 1.3421451669363877E-20 1.0433081761269824E-20 8.0983932770355898E-21 + 6.2770334334754647E-21 4.8582014150808948E-21 3.7545529443728251E-21 + 2.8973350172500304E-21 2.2325082046918677E-21 1.7176606017932382E-21 + 1.3195554362156238E-21 1.0121851245770349E-21 7.7522949931091623E-22 + 5.9283609884026200E-22 4.5265670598728310E-22 3.4508745904732398E-22 + 2.6267044071902502E-22 1.9962315727043867E-22 1.5146914971506503E-22 + 1.1474845272957675E-22 8.6790997707278948E-23 6.5539556542950902E-23 + 4.9411615013507756E-23 3.7191788584774703E-23 2.7948161960522881E-23 + 2.0967337710506204E-23 1.5704092171716781E-23 1.1742417451381169E-23 + 8.7654240848068243E-24 6.5321276335123480E-24 4.8595745857763442E-24 + 3.6091025735641716E-24 2.6757964678211021E-24 1.9804107384293011E-24 + 1.4631917877131636E-24 1.0791614829556632E-24 7.9452250226165457E-25 + 5.8392343937101822E-25 4.2838167701611527E-25 3.1370860886684000E-25 + 2.2931783462685179E-25 1.6732480097597155E-25 1.2186783818311207E-25 + 8.8597076106321244E-26 6.4290428686200934E-26 4.6565581674617514E-26 + 3.3664380025655365E-26 2.4291713851363188E-26 1.7495351801653271E-26 + 1.2576482775585095E-26 9.0232439312374527E-27 6.4614222471030333E-27 + 4.6179624068636511E-27 3.2940060925901526E-27 2.3450115986329749E-27 + 1.6661228126311522E-27 1.1814225079070622E-27 8.3605422980201553E-28 + 5.9045848345738725E-28 4.1616417922489218E-28 2.9272182581310129E-28 + 2.0547322183159187E-28 1.4393276767761971E-28 1.0061506548615129E-28 + 7.0187501461513678E-29 4.8858990298541555E-29 3.3939981583015660E-29 + 2.3526404825854602E-29 1.6273118394304690E-29 1.1231858659826846E-29 + 7.7355721476809664E-30 5.3160312182274044E-30 3.6452821177476397E-30 + 2.4941211481367290E-30 1.7027109313674349E-30 1.1598329740972453E-30 + 7.8827047797794480E-31 5.3453291946291948E-31 3.6164886420000437E-31 + 2.4412218442944860E-31 1.6441025126287592E-31 1.1047042593999101E-31 + 7.4054698984321981E-32 4.9527069008217961E-32 3.3045323496087600E-32 + 2.1996254979568644E-32 1.4606725853182316E-32 9.6764608997401122E-33 + 6.3949044510857386E-33 4.2159945024625341E-33 2.7727423840132243E-33 + 1.8191067767145421E-33 1.1905390797302062E-33 7.7725537581297980E-34 + 5.0619345587371602E-34 3.2886861894432057E-34 2.1313004359526717E-34 + 1.3777150671119252E-34 8.8830056805222894E-35 5.7126751847627376E-35 + + + -8.5892735911106879E+00 -8.5892735911874301E+00 -8.5892735914210956E+00 + -8.5892735918139262E+00 -8.5892735923686239E+00 -8.5892735930883486E+00 + -8.5892735939759639E+00 -8.5892735950345447E+00 -8.5892735962670059E+00 + -8.5892735976765646E+00 -8.5892735992662335E+00 -8.5892736010392650E+00 + -8.5892736029988406E+00 -8.5892736051482643E+00 -8.5892736074907745E+00 + -8.5892736100297675E+00 -8.5892736127686451E+00 -8.5892736157108285E+00 + -8.5892736188598473E+00 -8.5892736222192436E+00 -8.5892736257925648E+00 + -8.5892736295834951E+00 -8.5892736335957096E+00 -8.5892736378329797E+00 + -8.5892736422990623E+00 -8.5892736469978406E+00 -8.5892736519331834E+00 + -8.5892736571090627E+00 -8.5892736625295107E+00 -8.5892736681985795E+00 + -8.5892736741203670E+00 -8.5892736802990814E+00 -8.5892736867389416E+00 + -8.5892736934442429E+00 -8.5892737004193389E+00 -8.5892737076686672E+00 + -8.5892737151966614E+00 -8.5892737230078655E+00 -8.5892737311069176E+00 + -8.5892737394984078E+00 -8.5892737481870967E+00 -8.5892737571778053E+00 + -8.5892737664753209E+00 -8.5892737760845854E+00 -8.5892737860105974E+00 + -8.5892737962584178E+00 -8.5892738068331393E+00 -8.5892738177399526E+00 + -8.5892738289841404E+00 -8.5892738405710407E+00 -8.5892738525060324E+00 + -8.5892738647945794E+00 -8.5892738774422863E+00 -8.5892738904547716E+00 + -8.5892739038376824E+00 -8.5892739175968362E+00 -8.5892739317380951E+00 + -8.5892739462674044E+00 -8.5892739611907682E+00 -8.5892739765142458E+00 + -8.5892739922440811E+00 -8.5892740083865249E+00 -8.5892740249478461E+00 + -8.5892740419345781E+00 -8.5892740593532295E+00 -8.5892740772103142E+00 + -8.5892740955125788E+00 -8.5892741142668640E+00 -8.5892741334799876E+00 + -8.5892741531588666E+00 -8.5892741733106366E+00 -8.5892741939424386E+00 + -8.5892742150614865E+00 -8.5892742366751378E+00 -8.5892742587908781E+00 + -8.5892742814161753E+00 -8.5892743045586997E+00 -8.5892743282262547E+00 + -8.5892743524265818E+00 -8.5892743771676585E+00 -8.5892744024576100E+00 + -8.5892744283045150E+00 -8.5892744547166870E+00 -8.5892744817025264E+00 + -8.5892745092704548E+00 -8.5892745374290893E+00 -8.5892745661872105E+00 + -8.5892745955536114E+00 -8.5892746255372003E+00 -8.5892746561470954E+00 + -8.5892746873924803E+00 -8.5892747192826064E+00 -8.5892747518269665E+00 + -8.5892747850351086E+00 -8.5892748189166728E+00 -8.5892748534814665E+00 + -8.5892748887394390E+00 -8.5892749247007263E+00 -8.5892749613754198E+00 + -8.5892749987738455E+00 -8.5892750369065496E+00 -8.5892750757841299E+00 + -8.5892751154172728E+00 -8.5892751558168516E+00 -8.5892751969939631E+00 + -8.5892752389597700E+00 -8.5892752817255253E+00 -8.5892753253027205E+00 + -8.5892753697029836E+00 -8.5892754149380899E+00 -8.5892754610199500E+00 + -8.5892755079606271E+00 -8.5892755557722911E+00 -8.5892756044673977E+00 + -8.5892756540586337E+00 -8.5892757045584851E+00 -8.5892757559798412E+00 + -8.5892758083359517E+00 -8.5892758616399227E+00 -8.5892759159050840E+00 + -8.5892759711450761E+00 -8.5892760273735824E+00 -8.5892760846045899E+00 + -8.5892761428521549E+00 -8.5892762021305380E+00 -8.5892762624542947E+00 + -8.5892763238379803E+00 -8.5892763862964010E+00 -8.5892764498447178E+00 + -8.5892765144981382E+00 -8.5892765802720135E+00 -8.5892766471820110E+00 + -8.5892767152440186E+00 -8.5892767844739240E+00 -8.5892768548880127E+00 + -8.5892769265029507E+00 -8.5892769993351177E+00 -8.5892770734014015E+00 + -8.5892771487191055E+00 -8.5892772253053078E+00 -8.5892773031777914E+00 + -8.5892773823541901E+00 -8.5892774628523121E+00 -8.5892775446906242E+00 + -8.5892776278876255E+00 -8.5892777124618291E+00 -8.5892777984321675E+00 + -8.5892778858179728E+00 -8.5892779746385148E+00 -8.5892780649135236E+00 + -8.5892781566630330E+00 -8.5892782499070055E+00 -8.5892783446660470E+00 + -8.5892784409607810E+00 -8.5892785388121222E+00 -8.5892786382415043E+00 + -8.5892787392702754E+00 -8.5892788419201818E+00 -8.5892789462133212E+00 + -8.5892790521721363E+00 -8.5892791598191867E+00 -8.5892792691772986E+00 + -8.5892793802698062E+00 -8.5892794931201681E+00 -8.5892796077521361E+00 + -8.5892797241899377E+00 -8.5892798424579038E+00 -8.5892799625807790E+00 + -8.5892800845835797E+00 -8.5892802084916546E+00 -8.5892803343308710E+00 + -8.5892804621270304E+00 -8.5892805919064479E+00 -8.5892807236960120E+00 + -8.5892808575226400E+00 -8.5892809934136132E+00 -8.5892811313966746E+00 + -8.5892812715000453E+00 -8.5892814137520208E+00 -8.5892815581811899E+00 + -8.5892817048170045E+00 -8.5892818536889859E+00 -8.5892820048267335E+00 + -8.5892821582607723E+00 -8.5892823140216237E+00 -8.5892824721402921E+00 + -8.5892826326484784E+00 -8.5892827955778301E+00 -8.5892829609604462E+00 + -8.5892831288290949E+00 -8.5892832992170209E+00 -8.5892834721574634E+00 + -8.5892836476843595E+00 -8.5892838258321369E+00 -8.5892840066353990E+00 + -8.5892841901295274E+00 -8.5892843763501663E+00 -8.5892845653332266E+00 + -8.5892847571154256E+00 -8.5892849517337329E+00 -8.5892851492255833E+00 + -8.5892853496291295E+00 -8.5892855529826591E+00 -8.5892857593250511E+00 + -8.5892859686957852E+00 -8.5892861811346819E+00 -8.5892863966823896E+00 + -8.5892866153797662E+00 -8.5892868372679132E+00 -8.5892870623891966E+00 + -8.5892872907860198E+00 -8.5892875225013068E+00 -8.5892877575787061E+00 + -8.5892879960622182E+00 -8.5892882379967084E+00 -8.5892884834272749E+00 + -8.5892887323996199E+00 -8.5892889849604028E+00 -8.5892892411564823E+00 + -8.5892895010352817E+00 -8.5892897646450397E+00 -8.5892900320345529E+00 + -8.5892903032532484E+00 -8.5892905783507736E+00 -8.5892908573781099E+00 + -8.5892911403865959E+00 -8.5892914274276446E+00 -8.5892917185541329E+00 + -8.5892920138194100E+00 -8.5892923132770242E+00 -8.5892926169815205E+00 + -8.5892929249884311E+00 -8.5892932373535835E+00 -8.5892935541334943E+00 + -8.5892938753855219E+00 -8.5892942011676432E+00 -8.5892945315389095E+00 + -8.5892948665587294E+00 -8.5892952062870940E+00 -8.5892955507854296E+00 + -8.5892959001153759E+00 -8.5892962543391640E+00 -8.5892966135206112E+00 + -8.5892969777237393E+00 -8.5892973470132592E+00 -8.5892977214550914E+00 + -8.5892981011156575E+00 -8.5892984860625656E+00 -8.5892988763639266E+00 + -8.5892992720888692E+00 -8.5892996733073179E+00 -8.5893000800900214E+00 + -8.5893004925089933E+00 -8.5893009106364797E+00 -8.5893013345461799E+00 + -8.5893017643126068E+00 -8.5893022000108576E+00 -8.5893026417174880E+00 + -8.5893030895096345E+00 -8.5893035434655811E+00 -8.5893040036645569E+00 + -8.5893044701865886E+00 -8.5893049431128539E+00 -8.5893054225256691E+00 + -8.5893059085082566E+00 -8.5893064011448264E+00 -8.5893069005206524E+00 + -8.5893074067221864E+00 -8.5893079198367221E+00 -8.5893084399527790E+00 + -8.5893089671602390E+00 -8.5893095015497405E+00 -8.5893100432129454E+00 + -8.5893105922430699E+00 -8.5893111487343621E+00 -8.5893117127818890E+00 + -8.5893122844824532E+00 -8.5893128639338041E+00 -8.5893134512346130E+00 + -8.5893140464852724E+00 -8.5893146497872142E+00 -8.5893152612429322E+00 + -8.5893158809565406E+00 -8.5893165090333952E+00 -8.5893171455799511E+00 + -8.5893177907038929E+00 -8.5893184445146336E+00 -8.5893191071228312E+00 + -8.5893197786403004E+00 -8.5893204591804864E+00 -8.5893211488579002E+00 + -8.5893218477889572E+00 -8.5893225560913304E+00 -8.5893232738838066E+00 + -8.5893240012870411E+00 -8.5893247384231621E+00 -8.5893254854157419E+00 + -8.5893262423896903E+00 -8.5893270094717487E+00 -8.5893277867902409E+00 + -8.5893285744747576E+00 -8.5893293726567581E+00 -8.5893301814694034E+00 + -8.5893310010472721E+00 -8.5893318315266658E+00 -8.5893326730456945E+00 + -8.5893335257439993E+00 -8.5893343897632430E+00 -8.5893352652465929E+00 + -8.5893361523388858E+00 -8.5893370511871225E+00 -8.5893379619398793E+00 + -8.5893388847473613E+00 -8.5893398197620829E+00 -8.5893407671384168E+00 + -8.5893417270321830E+00 -8.5893426996015361E+00 -8.5893436850064333E+00 + -8.5893446834086546E+00 -8.5893456949725540E+00 -8.5893467198638849E+00 + -8.5893477582507138E+00 -8.5893488103031341E+00 -8.5893498761933031E+00 + -8.5893509560960002E+00 -8.5893520501873368E+00 -8.5893531586457819E+00 + -8.5893542816526285E+00 -8.5893554193911239E+00 -8.5893565720462703E+00 + -8.5893577398057204E+00 -8.5893589228598817E+00 -8.5893601214008495E+00 + -8.5893613356231100E+00 -8.5893625657242367E+00 -8.5893638119034339E+00 + -8.5893650743628154E+00 -8.5893663533069713E+00 -8.5893676489426323E+00 + -8.5893689614797122E+00 -8.5893702911302761E+00 -8.5893716381090179E+00 + -8.5893730026333461E+00 -8.5893743849234436E+00 -8.5893757852022095E+00 + -8.5893772036948821E+00 -8.5893786406302226E+00 -8.5893800962392337E+00 + -8.5893815707555827E+00 -8.5893830644167810E+00 -8.5893845774622282E+00 + -8.5893861101345745E+00 -8.5893876626800196E+00 -8.5893892353470598E+00 + -8.5893908283873888E+00 -8.5893924420562264E+00 -8.5893940766115406E+00 + -8.5893957323145429E+00 -8.5893974094298553E+00 -8.5893991082250931E+00 + -8.5894008289714048E+00 -8.5894025719427400E+00 -8.5894043374171929E+00 + -8.5894061256761969E+00 -8.5894079370037222E+00 -8.5894097716882492E+00 + -8.5894116300214769E+00 -8.5894135122983890E+00 -8.5894154188180174E+00 + -8.5894173498828241E+00 -8.5894193057993107E+00 -8.5894212868773714E+00 + -8.5894232934306309E+00 -8.5894253257770572E+00 -8.5894273842381850E+00 + -8.5894294691395139E+00 -8.5894315808108210E+00 -8.5894337195855019E+00 + -8.5894358858011479E+00 -8.5894380797998444E+00 -8.5894403019275583E+00 + -8.5894425525346616E+00 -8.5894448319758308E+00 -8.5894471406097974E+00 + -8.5894494787998283E+00 -8.5894518469141694E+00 -8.5894542453251113E+00 + -8.5894566744091421E+00 -8.5894591345482301E+00 -8.5894616261284931E+00 + -8.5894641495408219E+00 -8.5894667051811844E+00 -8.5894692934498220E+00 + -8.5894719147524050E+00 -8.5894745694998669E+00 -8.5894772581073333E+00 + -8.5894799809954261E+00 -8.5894827385902843E+00 -8.5894855313226977E+00 + -8.5894883596289127E+00 -8.5894912239507004E+00 -8.5894941247353387E+00 + -8.5894970624350684E+00 -8.5895000375080652E+00 -8.5895030504183758E+00 + -8.5895061016347949E+00 -8.5895091916329083E+00 -8.5895123208941815E+00 + -8.5895154899047110E+00 -8.5895186991573151E+00 -8.5895219491512655E+00 + -8.5895252403916764E+00 -8.5895285733896820E+00 -8.5895319486623798E+00 + -8.5895353667336565E+00 -8.5895388281339873E+00 -8.5895423334000984E+00 + -8.5895458830749494E+00 -8.5895494777084043E+00 -8.5895531178576245E+00 + -8.5895568040856372E+00 -8.5895605369629529E+00 -8.5895643170672091E+00 + -8.5895681449823726E+00 -8.5895720213000200E+00 -8.5895759466191972E+00 + -8.5895799215464184E+00 -8.5895839466945461E+00 -8.5895880226848771E+00 + -8.5895921501462595E+00 -8.5895963297149951E+00 -8.5896005620352458E+00 + -8.5896048477586220E+00 -8.5896091875457898E+00 -8.5896135820645885E+00 + -8.5896180319910229E+00 -8.5896225380097739E+00 -8.5896271008137965E+00 + -8.5896317211043112E+00 -8.5896363995913791E+00 -8.5896411369936736E+00 + -8.5896459340383391E+00 -8.5896507914619011E+00 -8.5896557100094633E+00 + -8.5896606904354140E+00 -8.5896657335037450E+00 -8.5896708399871358E+00 + -8.5896760106677554E+00 -8.5896812463378911E+00 -8.5896865477991788E+00 + -8.5896919158627547E+00 -8.5896973513502388E+00 -8.5897028550930123E+00 + -8.5897084279322229E+00 -8.5897140707201469E+00 -8.5897197843190476E+00 + -8.5897255696008745E+00 -8.5897314274495393E+00 -8.5897373587597752E+00 + -8.5897433644360355E+00 -8.5897494453939824E+00 -8.5897556025619419E+00 + -8.5897618368784467E+00 -8.5897681492928051E+00 -8.5897745407674275E+00 + -8.5897810122756315E+00 -8.5897875648025561E+00 -8.5897941993457287E+00 + -8.5898009169143705E+00 -8.5898077185305102E+00 -8.5898146052288862E+00 + -8.5898215780557461E+00 -8.5898286380707933E+00 -8.5898357863471233E+00 + -8.5898430239698964E+00 -8.5898503520384661E+00 -8.5898577716651161E+00 + -8.5898652839753193E+00 -8.5898728901090262E+00 -8.5898805912199148E+00 + -8.5898883884754174E+00 -8.5898962830572394E+00 -8.5899042761615583E+00 + -8.5899123689992791E+00 -8.5899205627961646E+00 -8.5899288587924705E+00 + -8.5899372582437916E+00 -8.5899457624211379E+00 -8.5899543726108885E+00 + -8.5899630901151269E+00 -8.5899719162515975E+00 -8.5899808523545254E+00 + -8.5899898997743520E+00 -8.5899990598771545E+00 -8.5900083340464501E+00 + -8.5900177236829638E+00 -8.5900272302034715E+00 -8.5900368550422446E+00 + -8.5900465996515543E+00 -8.5900564655010072E+00 -8.5900664540780856E+00 + -8.5900765668883707E+00 -8.5900868054558668E+00 -8.5900971713230216E+00 + -8.5901076660510931E+00 -8.5901182912205574E+00 -8.5901290484307076E+00 + -8.5901399393004159E+00 -8.5901509654686148E+00 -8.5901621285937573E+00 + -8.5901734303547563E+00 -8.5901848724505907E+00 -8.5901964566011983E+00 + -8.5902081845476044E+00 -8.5902200580514112E+00 -8.5902320788959656E+00 + -8.5902442488866910E+00 -8.5902565698506130E+00 -8.5902690436366544E+00 + -8.5902816721164523E+00 -8.5902944571846316E+00 -8.5903074007587907E+00 + -8.5903205047797258E+00 -8.5903337712117640E+00 -8.5903472020427305E+00 + -8.5903607992854969E+00 -8.5903745649769956E+00 -8.5903885011783956E+00 + -8.5904026099767652E+00 -8.5904168934838889E+00 -8.5904313538374133E+00 + -8.5904459932008912E+00 -8.5904608137641407E+00 -8.5904758177441334E+00 + -8.5904910073839851E+00 -8.5905063849540078E+00 -8.5905219527523009E+00 + -8.5905377131055776E+00 -8.5905536683681074E+00 -8.5905698209221217E+00 + -8.5905861731799629E+00 -8.5906027275826684E+00 -8.5906194866008292E+00 + -8.5906364527352057E+00 -8.5906536285165593E+00 -8.5906710165068549E+00 + -8.5906886192990459E+00 -8.5907064395171684E+00 -8.5907244798170979E+00 + -8.5907427428872989E+00 -8.5907612314485675E+00 -8.5907799482549478E+00 + -8.5907988960936041E+00 -8.5908180777852365E+00 -8.5908374961855838E+00 + -8.5908571541842189E+00 -8.5908770547056950E+00 -8.5908972007107884E+00 + -8.5909175951954548E+00 -8.5909382411920276E+00 -8.5909591417698525E+00 + -8.5909803000351470E+00 -8.5910017191318939E+00 -8.5910234022423797E+00 + -8.5910453525870860E+00 -8.5910675734252635E+00 -8.5910900680561824E+00 + -8.5911128398191412E+00 -8.5911358920929857E+00 -8.5911592282983413E+00 + -8.5911828518969848E+00 -8.5912067663916520E+00 -8.5912309753293741E+00 + -8.5912554822989389E+00 -8.5912802909315715E+00 -8.5913054049042472E+00 + -8.5913308279376235E+00 -8.5913565637970883E+00 -8.5913826162940072E+00 + -8.5914089892855827E+00 -8.5914356866754122E+00 -8.5914627124147742E+00 + -8.5914900705027577E+00 -8.5915177649859764E+00 -8.5915457999606932E+00 + -8.5915741795725236E+00 -8.5916029080164762E+00 -8.5916319895394846E+00 + -8.5916614284391422E+00 -8.5916912290641925E+00 -8.5917213958169381E+00 + -8.5917519331526897E+00 -8.5917828455799690E+00 -8.5918141376617552E+00 + -8.5918458140169633E+00 -8.5918778793198438E+00 -8.5919103383000337E+00 + -8.5919431957453885E+00 -8.5919764565014187E+00 -8.5920101254712389E+00 + -8.5920442076181871E+00 -8.5920787079648235E+00 -8.5921136315939304E+00 + -8.5921489836502012E+00 -8.5921847693400082E+00 -8.5922209939326297E+00 + -8.5922576627606144E+00 -8.5922947812206889E+00 -8.5923323547750492E+00 + -8.5923703889510250E+00 -8.5924088893428419E+00 -8.5924478616121984E+00 + -8.5924873114886324E+00 -8.5925272447710483E+00 -8.5925676673273106E+00 + -8.5926085850966629E+00 -8.5926500040899505E+00 -8.5926919303891971E+00 + -8.5927343701506445E+00 -8.5927773296043473E+00 -8.5928208150546759E+00 + -8.5928648328821939E+00 -8.5929093895443156E+00 -8.5929544915758296E+00 + -8.5930001455898317E+00 -8.5930463582789720E+00 -8.5930931364165648E+00 + -8.5931404868569796E+00 -8.5931884165365950E+00 -8.5932369324754436E+00 + -8.5932860417777643E+00 -8.5933357516329885E+00 -8.5933860693164039E+00 + -8.5934370021909814E+00 -8.5934885577081488E+00 -8.5935407434081572E+00 + -8.5935935669216441E+00 -8.5936470359708270E+00 -8.5937011583707168E+00 + -8.5937559420297731E+00 -8.5938113949507464E+00 -8.5938675252328629E+00 + -8.5939243410718760E+00 -8.5939818507613381E+00 -8.5940400626947486E+00 + -8.5940989853657044E+00 -8.5941586273692767E+00 -8.5942189974030931E+00 + -8.5942801042693162E+00 -8.5943419568753043E+00 -8.5944045642339795E+00 + -8.5944679354665929E+00 -8.5945320798036793E+00 -8.5945970065852766E+00 + -8.5946627252630510E+00 -8.5947292454017941E+00 -8.5947965766802916E+00 + -8.5948647288924604E+00 -8.5949337119493201E+00 -8.5950035358802577E+00 + -8.5950742108337543E+00 -8.5951457470792363E+00 -8.5952181550087250E+00 + -8.5952914451379865E+00 -8.5953656281076878E+00 -8.5954407146855800E+00 + -8.5955167157671823E+00 -8.5955936423775832E+00 -8.5956715056734936E+00 + -8.5957503169437395E+00 -8.5958300876113185E+00 -8.5959108292353825E+00 + -8.5959925535120192E+00 -8.5960752722766482E+00 -8.5961589975041370E+00 + -8.5962437413125645E+00 -8.5963295159638715E+00 -8.5964163338638961E+00 + -8.5965042075672269E+00 -8.5965931497767212E+00 -8.5966831733451201E+00 + -8.5967742912782938E+00 -8.5968665167355969E+00 -8.5969598630319091E+00 + -8.5970543436402682E+00 -8.5971499721926889E+00 -8.5972467624823405E+00 + -8.5973447284655702E+00 -8.5974438842635745E+00 -8.5975442441639096E+00 + -8.5976458226232655E+00 -8.5977486342693457E+00 -8.5978526939013431E+00 + -8.5979580164933544E+00 -8.5980646171965915E+00 -8.5981725113401062E+00 + -8.5982817144337105E+00 -8.5983922421695560E+00 -8.5985041104250115E+00 + -8.5986173352638460E+00 -8.5987319329381595E+00 -8.5988479198925010E+00 + -8.5989653127634078E+00 -8.5990841283824970E+00 -8.5992043837802896E+00 + -8.5993260961861306E+00 -8.5994492830312605E+00 -8.5995739619520499E+00 + -8.5997001507907740E+00 -8.5998278675985969E+00 -8.5999571306385327E+00 + -8.6000879583867871E+00 -8.6002203695359345E+00 -8.6003543829965441E+00 + -8.6004900179000554E+00 -8.6006272936019847E+00 -8.6007662296828435E+00 + -8.6009068459520392E+00 -8.6010491624495451E+00 -8.6011931994487476E+00 + -8.6013389774597400E+00 -8.6014865172301178E+00 -8.6016358397497967E+00 + -8.6017869662524511E+00 -8.6019399182174876E+00 -8.6020947173750777E+00 + -8.6022513857067278E+00 -8.6024099454485317E+00 -8.6025704190949757E+00 + -8.6027328294008694E+00 -8.6028971993840635E+00 -8.6030635523286865E+00 + -8.6032319117882121E+00 -8.6034023015881420E+00 -8.6035747458288157E+00 + -8.6037492688889969E+00 -8.6039258954280555E+00 -8.6041046503891945E+00 + -8.6042855590036158E+00 -8.6044686467921405E+00 -8.6046539395690687E+00 + -8.6048414634452310E+00 -8.6050312448309185E+00 -8.6052233104397171E+00 + -8.6054176872913537E+00 -8.6056144027148616E+00 -8.6058134843517688E+00 + -8.6060149601596230E+00 -8.6062188584159411E+00 -8.6064252077208074E+00 + -8.6066340370001750E+00 -8.6068453755096623E+00 -8.6070592528380523E+00 + -8.6072756989114811E+00 -8.6074947439954279E+00 -8.6077164186984891E+00 + -8.6079407539781219E+00 -8.6081677811420700E+00 -8.6083975318518533E+00 + -8.6086300381279486E+00 -8.6088653323527584E+00 -8.6091034472744763E+00 + -8.6093444160104866E+00 -8.6095882720513632E+00 -8.6098350492649054E+00 + -8.6100847818998698E+00 -8.6103375045896975E+00 -8.6105932523567912E+00 + -8.6108520606157253E+00 -8.6111139651781681E+00 -8.6113790022565642E+00 + -8.6116472084672502E+00 -8.6119186208361374E+00 -8.6121932768016265E+00 + -8.6124712142184165E+00 -8.6127524713633115E+00 -8.6130370869381991E+00 + -8.6133251000732862E+00 -8.6136165503335427E+00 -8.6139114777219365E+00 + -8.6142099226827327E+00 -8.6145119261074630E+00 -8.6148175293381932E+00 + -8.6151267741719177E+00 -8.6154397028659542E+00 -8.6157563581411321E+00 + -8.6160767831864362E+00 -8.6164010216643607E+00 -8.6167291177143834E+00 + -8.6170611159580428E+00 -8.6173970615034090E+00 -8.6177369999490416E+00 + -8.6180809773896829E+00 -8.6184290404201054E+00 -8.6187812361397018E+00 + -8.6191376121572496E+00 -8.6194982165958614E+00 -8.6198630980976727E+00 + -8.6202323058279884E+00 -8.6206058894802684E+00 -8.6209838992809491E+00 + -8.6213663859949001E+00 -8.6217534009289736E+00 -8.6221449959371217E+00 + -8.6225412234259267E+00 -8.6229421363588443E+00 -8.6233477882608938E+00 + -8.6237582332234233E+00 -8.6241735259108641E+00 -8.6245937215624231E+00 + -8.6250188759982027E+00 -8.6254490456265493E+00 -8.6258842874454036E+00 + -8.6263246590488158E+00 -8.6267702186316519E+00 -8.6272210249947996E+00 + -8.6276771375502914E+00 -8.6281386163248026E+00 -8.6286055219660138E+00 + -8.6290779157473647E+00 -8.6295558595724966E+00 -8.6300394159798088E+00 + -8.6305286481482497E+00 -8.6310236199023826E+00 -8.6315243957158074E+00 + -8.6320310407171696E+00 -8.6325436206956159E+00 -8.6330622021037389E+00 + -8.6335868520635817E+00 -8.6341176383726683E+00 -8.6346546295059010E+00 + -8.6351978946223014E+00 -8.6357475035702596E+00 -8.6363035268902006E+00 + -8.6368660358209066E+00 -8.6374351023038187E+00 -8.6380107989872634E+00 + -8.6385931992312361E+00 -8.6391823771119682E+00 -8.6397784074269364E+00 + -8.6403813656982251E+00 -8.6409913281774902E+00 -8.6416083718509071E+00 + -8.6422325744423318E+00 -8.6428640144182172E+00 -8.6435027709918337E+00 + -8.6441489241273484E+00 -8.6448025545437073E+00 -8.6454637437179418E+00 + -8.6461325738907107E+00 -8.6468091280689485E+00 -8.6474934900294187E+00 + -8.6481857443233725E+00 -8.6488859762792742E+00 -8.6495942720065955E+00 + -8.6503107183988472E+00 -8.6510354031372785E+00 -8.6517684146943115E+00 + -8.6525098423355278E+00 -8.6532597761231234E+00 -8.6540183069193439E+00 + -8.6547855263883413E+00 -8.6555615269989268E+00 -8.6563464020272036E+00 + -8.6571402455579936E+00 -8.6579431524881798E+00 -8.6587552185282828E+00 + -8.6595765402032630E+00 -8.6604072148552564E+00 -8.6612473406448149E+00 + -8.6620970165515878E+00 -8.6629563423759457E+00 -8.6638254187401547E+00 + -8.6647043470879535E+00 -8.6655932296855589E+00 -8.6664921696225488E+00 + -8.6674012708111690E+00 -8.6683206379862607E+00 -8.6692503767044542E+00 + -8.6701905933441523E+00 -8.6711413951042644E+00 -8.6721028900024955E+00 + -8.6730751868748577E+00 -8.6740583953731303E+00 -8.6750526259624596E+00 + -8.6760579899195314E+00 -8.6770745993302132E+00 -8.6781025670856486E+00 + -8.6791420068790099E+00 -8.6801930332026540E+00 -8.6812557613427241E+00 + -8.6823303073756151E+00 -8.6834167881630151E+00 -8.6845153213463213E+00 + -8.6856260253412803E+00 -8.6867490193318808E+00 -8.6878844232635224E+00 + -8.6890323578369113E+00 -8.6901929444999855E+00 -8.6913663054397272E+00 + -8.6925525635746848E+00 -8.6937518425460105E+00 -8.6949642667073075E+00 + -8.6961899611147704E+00 -8.6974290515185579E+00 -8.6986816643492926E+00 + -8.6999479267070612E+00 -8.7012279663510075E+00 -8.7025219116845918E+00 + -8.7038298917427177E+00 -8.7051520361774788E+00 -8.7064884752438161E+00 + -8.7078393397837708E+00 -8.7092047612105024E+00 -8.7105848714913368E+00 + -8.7119798031291484E+00 -8.7133896891459415E+00 -8.7148146630623096E+00 + -8.7162548588770115E+00 -8.7177104110473262E+00 -8.7191814544665291E+00 + -8.7206681244417492E+00 -8.7221705566698517E+00 -8.7236888872132319E+00 + -8.7252232524752404E+00 -8.7267737891727375E+00 -8.7283406343088732E+00 + -8.7299239251451066E+00 -8.7315237991711463E+00 -8.7331403940751269E+00 + -8.7347738477115726E+00 -8.7364242980676590E+00 -8.7380918832302328E+00 + -8.7397767413509015E+00 -8.7414790106083924E+00 -8.7431988291709715E+00 + -8.7449363351581031E+00 -8.7466916665997569E+00 -8.7484649613939265E+00 + -8.7502563572641758E+00 -8.7520659917148294E+00 -8.7538940019845750E+00 + -8.7557405249990730E+00 -8.7576056973212850E+00 -8.7594896551008663E+00 + -8.7613925340221250E+00 -8.7633144692494689E+00 -8.7652555953708617E+00 + -8.7672160463412911E+00 -8.7691959554227381E+00 -8.7711954551228093E+00 + -8.7732146771318966E+00 -8.7752537522572229E+00 -8.7773128103565679E+00 + -8.7793919802686045E+00 -8.7814913897412801E+00 -8.7836111653590887E+00 + -8.7857514324672934E+00 -8.7879123150931004E+00 -8.7900939358660413E+00 + -8.7922964159368266E+00 -8.7945198748903923E+00 -8.7967644306581114E+00 + -8.7990301994301472E+00 -8.8013172955617343E+00 -8.8036258314772624E+00 + -8.8059559175733586E+00 -8.8083076621176968E+00 -8.8106811711460669E+00 + -8.8130765483555962E+00 -8.8154938949950044E+00 -8.8179333097531600E+00 + -8.8203948886428609E+00 -8.8228787248821927E+00 -8.8253849087734899E+00 + -8.8279135275772287E+00 -8.8304646653830599E+00 -8.8330384029786586E+00 + -8.8356348177150785E+00 -8.8382539833651226E+00 -8.8408959699810055E+00 + -8.8435608437501276E+00 -8.8462486668416673E+00 -8.8489594972527374E+00 + -8.8516933886516700E+00 -8.8544503902129321E+00 -8.8572305464511505E+00 + -8.8600338970516805E+00 -8.8628604766926902E+00 -8.8657103148659910E+00 + -8.8685834356942408E+00 -8.8714798577389171E+00 -8.8743995938078797E+00 + -8.8773426507574698E+00 -8.8803090292871882E+00 -8.8832987237318424E+00 + -8.8863117218469601E+00 -8.8893480045904507E+00 -8.8924075458976333E+00 + -8.8954903124506508E+00 -8.8985962634444054E+00 -8.9017253503434155E+00 + -8.9048775166360095E+00 -8.9080526975816614E+00 -8.9112508199502631E+00 + -8.9144718017585749E+00 -8.9177155519989046E+00 -8.9209819703601489E+00 + -8.9242709469444375E+00 -8.9275823619764907E+00 -8.9309160855050873E+00 + -8.9342719770994794E+00 -8.9376498855378834E+00 -8.9410496484886739E+00 + -8.9444710921849602E+00 -8.9479140310912229E+00 -8.9513782675632640E+00 + -8.9548635914990111E+00 -8.9583697799833164E+00 -8.9618965969252287E+00 + -8.9654437926837609E+00 -8.9690111036894731E+00 -8.9725982520565815E+00 + -8.9762049451850405E+00 -8.9798308753566101E+00 -8.9834757193200510E+00 + -8.9871391378688195E+00 -8.9908207754103415E+00 -8.9945202595233553E+00 + -8.9982372005089957E+00 -9.0019711909321050E+00 -9.0057218051514738E+00 + -9.0094885988422231E+00 -9.0132711085056005E+00 -9.0170688509733328E+00 + -9.0208813228986635E+00 -9.0247080002358828E+00 -9.0285483377153657E+00 + -9.0324017683012539E+00 -9.0362677026418954E+00 -9.0401455285120065E+00 + -9.0440346102386702E+00 -9.0479342881192952E+00 -9.0518438778297199E+00 + -9.0557626698183107E+00 -9.0596899286898473E+00 -9.0636248925787832E+00 + -9.0675667725096538E+00 -9.0715147517465269E+00 -9.0754679851302793E+00 + -9.0794255984040628E+00 -9.0833866875269855E+00 -9.0873503179744635E+00 + -9.0913155240288752E+00 -9.0952813080555490E+00 -9.0992466397661911E+00 + -9.1032104554725137E+00 -9.1071716573244412E+00 -9.1111291125363572E+00 + -9.1150816526027274E+00 -9.1190280724982262E+00 -9.1229671298655859E+00 + -9.1268975441920794E+00 -9.1308179959724445E+00 -9.1347271258585891E+00 + -9.1386235337950996E+00 -9.1425057781443506E+00 -9.1463723747985366E+00 + -9.1502217962758241E+00 -9.1540524708058619E+00 -9.1578627814037059E+00 + -9.1616510649280229E+00 -9.1654156111275071E+00 -9.1691546616765098E+00 + -9.1728664091957306E+00 -9.1765489962604594E+00 -9.1802005143988499E+00 + -9.1838190030754863E+00 -9.1874024486632830E+00 -9.1909487834057000E+00 + -9.1944558843628315E+00 -9.1979215723502872E+00 -9.2013436108659405E+00 + -9.2047197050021978E+00 -9.2080475003519151E+00 -9.2113245819013247E+00 + -9.2145484729132789E+00 -9.2177166338013361E+00 -9.2208264609925195E+00 + -9.2238752857835777E+00 -9.2268603731868755E+00 -9.2297789207668988E+00 + -9.2326280574725796E+00 -9.2354048424590562E+00 -9.2381062639039211E+00 + -9.2407292378183339E+00 -9.2432706068495065E+00 -9.2457271390818505E+00 + -9.2480955268329232E+00 -9.2503723854436561E+00 -9.2525542520682809E+00 + -9.2546375844616744E+00 -9.2566187597650451E+00 -9.2584940732916454E+00 + -9.2602597373137119E+00 -9.2619118798500253E+00 -9.2634465434558884E+00 + -9.2648596840203314E+00 -9.2661471695626112E+00 -9.2673047790374810E+00 + -9.2683282011505916E+00 -9.2692130331772553E+00 -9.2699547797932915E+00 + -9.2705488519183294E+00 -9.2709905655707789E+00 -9.2712751407355185E+00 + -9.2713977002505423E+00 -9.2713532687088804E+00 -9.2711367713787709E+00 + -9.2707430331483529E+00 -9.2701667774899512E+00 -9.2694026254496826E+00 + -9.2684450946652550E+00 -9.2672885984107918E+00 -9.2659274446734159E+00 + -9.2643558352637676E+00 -9.2625678649604222E+00 -9.2605575206926645E+00 + -9.2583186807648836E+00 -9.2558451141229892E+00 -9.2531304796652876E+00 + -9.2501683256037310E+00 -9.2469520888750889E+00 -9.2434750946061701E+00 + -9.2397305556367435E+00 -9.2357115721018381E+00 -9.2314111310789304E+00 + -9.2268221062993074E+00 -9.2219372579314047E+00 -9.2167492324384348E+00 + -9.2112505625109939E+00 -9.2054336670810457E+00 -9.1992908514227825E+00 + -9.1928143073398285E+00 -9.1859961134442809E+00 -9.1788282355361552E+00 + -9.1713025270803001E+00 -9.1634107297890477E+00 -9.1551444743164474E+00 + -9.1464952810649276E+00 -9.1374545611109479E+00 -9.1280136172549522E+00 + -9.1181636451989956E+00 -9.1078957348582037E+00 -9.0972008718103261E+00 + -9.0860699388888282E+00 -9.0744937179243603E+00 -9.0624628916407879E+00 + -9.0499680457104912E+00 -9.0369996709743603E+00 -9.0235481658332919E+00 + -9.0096038388137600E+00 -8.9951569113173147E+00 -8.9801975205580149E+00 + -8.9647157226914960E+00 -8.9487014961457962E+00 -8.9321447451561387E+00 + -8.9150353035126777E+00 -8.8973629385263919E+00 -8.8791173552157581E+00 + -8.8602882007285970E+00 -8.8408650689971466E+00 -8.8208375056345112E+00 + -8.8001950130840427E+00 -8.7789270560211641E+00 -8.7570230670158651E+00 + -8.7344724524651358E+00 -8.7112645987978130E+00 -8.6873888789584761E+00 + -8.6628346591797794E+00 -8.6375913060446443E+00 -8.6116481938455465E+00 + -8.5849947122512980E+00 -8.5576202742810210E+00 -8.5295143245905489E+00 + -8.5006663480836551E+00 -8.4710658788479680E+00 -8.4407025094196495E+00 + -8.4095659003862853E+00 -8.3776457903282164E+00 -8.3449320061060526E+00 + -8.3114144734979885E+00 -8.2770832281872639E+00 -8.2419284271080908E+00 + -8.2059403601526331E+00 -8.1691094622374436E+00 -8.1314263257370314E+00 + -8.0928817132856281E+00 -8.0534665709459397E+00 -8.0131720417481134E+00 + -7.9719894796030557E+00 -7.9299104635832993E+00 -7.8869268125743917E+00 + -7.8430306003007937E+00 -7.7982141707163155E+00 -7.7524701537613288E+00 + -7.7057914814855781E+00 -7.6581714045299814E+00 -7.6096035089641267E+00 + -7.5600817334748704E+00 -7.5096003869010719E+00 -7.4581541661066142E+00 + -7.4057381741838268E+00 -7.3523479389809641E+00 -7.2979794319426983E+00 + -7.2426290872539409E+00 -7.1862938212775624E+00 -7.1289710522702032E+00 + -7.0706587203647002E+00 -7.0113553078077642E+00 -6.9510598594320081E+00 + -6.8897720033484271E+00 -6.8274919718432301E+00 -6.7642206224567740E+00 + -6.6999594592271201E+00 -6.6347106540727481E+00 -6.5684770682965521E+00 + -6.5012622741863373E+00 -6.4330705766799552E+00 -6.3639070350759317E+00 + -6.2937774847593300E+00 -6.2226885589097147E+00 -6.1506477101631551E+00 + -6.0776632321960342E+00 -6.0037442811965045E+00 -5.9289008971827206E+00 + -5.8531440251386044E+00 -5.7764855359264811E+00 -5.6989382469293508E+00 + -5.6205159423900399E+00 -5.5412333934000966E+00 -5.4611063774912827E+00 + -5.3801516977856449E+00 -5.2983872016556095E+00 -5.2158317988422871E+00 + -5.1325054789806988E+00 -5.0484293284805624E+00 -4.9636255467040922E+00 + -4.8781174613828568E+00 -4.7919295432217828E+00 -4.7050874196198782E+00 + -4.6176178874500904E+00 -4.5295489248351801E+00 -4.4409097018466905E+00 + -4.3517305900647862E+00 -4.2620431709222935E+00 -4.1718802427634349E+00 + -4.0812758265397404E+00 -3.9902651700668343E+00 -3.8988847507583992E+00 + -3.8071722767553968E+00 -3.7151666863693804E+00 -3.6229081457422083E+00 + -3.5304380446357939E+00 -3.4377989902586514E+00 -3.3450347990242633E+00 + -3.2521904861449333E+00 -3.1593122529516711E+00 -3.0664474718321957E+00 + -2.9736446686752021E+00 -2.8809535026936093E+00 -2.7884247435146023E+00 + -2.6961102454021955E+00 -2.6040629184786543E+00 -2.5123366968114169E+00 + -2.4209865032115379E+00 -2.3300682106034545E+00 -2.2396385998072041E+00 + -2.1497553135634506E+00 -2.0604768066408941E+00 -1.9718622918463740E+00 + -1.8839716817575833E+00 -1.7968655259854058E+00 -1.7106049437715480E+00 + -1.6252515517256021E+00 -1.5408673864826266E+00 -1.4575148220742515E+00 + -1.3752564817952426E+00 -1.2941551443329560E+00 -1.2142736439399477E+00 + -1.1356747644195548E+00 -1.0584211266871295E+00 -9.8257506967827690E-01 + -9.0819852437940851E-01 -8.3535288075361502E-01 -7.6409884734301570E-01 + -6.9449630334805834E-01 -6.2660414298861444E-01 -5.6048011197892400E-01 + -4.9618063596311457E-01 -4.3376064079549836E-01 -3.7327336458367177E-01 + -3.1477016145198539E-01 -2.5830029703750346E-01 -2.0391073578519073E-01 + -1.5164592018840212E-01 -1.0154754219087475E-01 -5.3654307067892877E-02 + -8.0016902063115222E-03 3.5378312675890825E-02 7.6457441180590474E-02 + 1.1521143092007516E-01 1.5162027824019625E-01 1.8566850774306889E-01 + 2.1734544120151575E-01 2.4664546617873798E-01 2.7356830239932989E-01 + 2.9811926363122127E-01 3.2030951248136497E-01 3.4015630516956180E-01 + 3.5768322291791976E-01 3.7292038616412831E-01 3.8590464732534729E-01 + 3.9667975731567640E-01 4.0529650044636667E-01 4.1181279172560648E-01 + 4.1629372989417346E-01 4.1881159883683999E-01 4.1944580920168789E-01 + 4.1828277123368607E-01 4.1541568897344044E-01 4.1094426493514730E-01 + 4.0497430342083263E-01 3.9761719954657382E-01 3.8898929985544006E-01 + 3.7921111920106859E-01 3.6840639732407243E-01 3.5670097718641713E-01 + 3.4422148570464628E-01 3.3109379609331918E-01 3.1744124953551817E-01 + 3.0338261236674963E-01 2.8902974339388360E-01 2.7448494443982446E-01 + 2.5983796572458401E-01 2.4516263624670037E-01 2.3051308794688910E-01 + 2.1591954134307392E-01 2.0138361937339555E-01 1.8687315546154257E-01 + 1.7231646158837530E-01 1.5759602227910402E-01 1.4254158103111550E-01 + 1.2698424200910705E-01 1.1095638643490806E-01 9.4541815052165287E-02 + 7.7820016235853426E-02 6.0867531760081230E-02 4.3760075609838509E-02 + 2.6596463926722175E-02 9.2294022073621858E-03 -8.4489201076131393E-03 + -2.1238204241450079E-02 -2.4115757115012196E-02 -2.2230132755231835E-02 + -2.0694416675081952E-02 -1.9317003158988637E-02 -1.7891132869230698E-02 + -1.6451077403049064E-02 -1.5007855540189425E-02 -1.3569792135383051E-02 + -1.2142823427030599E-02 -1.0730820026939919E-02 -9.3359123332168083E-03 + -7.9588066277792840E-03 -6.5990833393530903E-03 -5.2554717564109489E-03 + -3.9276079398110402E-03 -2.5966159711976211E-03 -1.2453494295614315E-03 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + -2.5656682624414007E+01 -2.5656682629949998E+01 -2.5656682632031668E+01 + -2.5656682632676521E+01 -2.5656682633001548E+01 -2.5656682633223209E+01 + -2.5656682633407488E+01 -2.5656682633498779E+01 -2.5656682633602752E+01 + -2.5656682633712535E+01 -2.5656682633820086E+01 -2.5656682633916954E+01 + -2.5656682633994251E+01 -2.5656682634084536E+01 -2.5656682634169172E+01 + -2.5656682634267803E+01 -2.5656682634358742E+01 -2.5656682634454409E+01 + -2.5656682634561975E+01 -2.5656682634656537E+01 -2.5656682634769073E+01 + -2.5656682634871792E+01 -2.5656682634987895E+01 -2.5656682635111295E+01 + -2.5656682635234851E+01 -2.5656682635371435E+01 -2.5656682635509760E+01 + -2.5656682635657493E+01 -2.5656682635800774E+01 -2.5656682635961293E+01 + -2.5656682636121509E+01 -2.5656682636280923E+01 -2.5656682636453244E+01 + -2.5656682636633015E+01 -2.5656682636828638E+01 -2.5656682637016708E+01 + -2.5656682637216882E+01 -2.5656682637431093E+01 -2.5656682637646171E+01 + -2.5656682637874134E+01 -2.5656682638099152E+01 -2.5656682638341660E+01 + -2.5656682638594557E+01 -2.5656682638849770E+01 -2.5656682639109565E+01 + -2.5656682639385071E+01 -2.5656682639663419E+01 -2.5656682639951924E+01 + -2.5656682640245492E+01 -2.5656682640557460E+01 -2.5656682640878980E+01 + -2.5656682641200234E+01 -2.5656682641538367E+01 -2.5656682641880142E+01 + -2.5656682642229431E+01 -2.5656682642596724E+01 -2.5656682642973060E+01 + -2.5656682643356714E+01 -2.5656682643752561E+01 -2.5656682644155325E+01 + -2.5656682644574161E+01 -2.5656682645000409E+01 -2.5656682645439300E+01 + -2.5656682645886711E+01 -2.5656682646344269E+01 -2.5656682646818656E+01 + -2.5656682647300649E+01 -2.5656682647800324E+01 -2.5656682648305157E+01 + -2.5656682648827996E+01 -2.5656682649366271E+01 -2.5656682649909321E+01 + -2.5656682650470437E+01 -2.5656682651041777E+01 -2.5656682651626419E+01 + -2.5656682652225197E+01 -2.5656682652831453E+01 -2.5656682653460017E+01 + -2.5656682654100283E+01 -2.5656682654751609E+01 -2.5656682655417150E+01 + -2.5656682656103140E+01 -2.5656682656803163E+01 -2.5656682657514406E+01 + -2.5656682658242612E+01 -2.5656682658986206E+01 -2.5656682659746917E+01 + -2.5656682660524215E+01 -2.5656682661315770E+01 -2.5656682662126965E+01 + -2.5656682662951521E+01 -2.5656682663795312E+01 -2.5656682664652934E+01 + -2.5656682665530642E+01 -2.5656682666423492E+01 -2.5656682667337851E+01 + -2.5656682668269156E+01 -2.5656682669219503E+01 -2.5656682670184502E+01 + -2.5656682671174512E+01 -2.5656682672181020E+01 -2.5656682673209797E+01 + -2.5656682674260260E+01 -2.5656682675325634E+01 -2.5656682676413112E+01 + -2.5656682677523246E+01 -2.5656682678650640E+01 -2.5656682679802852E+01 + -2.5656682680973848E+01 -2.5656682682170082E+01 -2.5656682683384695E+01 + -2.5656682684626514E+01 -2.5656682685887642E+01 -2.5656682687175547E+01 + -2.5656682688488338E+01 -2.5656682689821313E+01 -2.5656682691178020E+01 + -2.5656682692562747E+01 -2.5656682693970453E+01 -2.5656682695403450E+01 + -2.5656682696864930E+01 -2.5656682698348806E+01 -2.5656682699859537E+01 + -2.5656682701398520E+01 -2.5656682702964702E+01 -2.5656682704557433E+01 + -2.5656682706176422E+01 -2.5656682707827482E+01 -2.5656682709505073E+01 + -2.5656682711212412E+01 -2.5656682712949980E+01 -2.5656682714718233E+01 + -2.5656682716515039E+01 -2.5656682718343440E+01 -2.5656682720201175E+01 + -2.5656682722094001E+01 -2.5656682724016235E+01 -2.5656682725972829E+01 + -2.5656682727960764E+01 -2.5656682729983881E+01 -2.5656682732041002E+01 + -2.5656682734132453E+01 -2.5656682736258176E+01 -2.5656682738420180E+01 + -2.5656682740617317E+01 -2.5656682742852201E+01 -2.5656682745122158E+01 + -2.5656682747430871E+01 -2.5656682749776209E+01 -2.5656682752159838E+01 + -2.5656682754582672E+01 -2.5656682757046241E+01 -2.5656682759547039E+01 + -2.5656682762091236E+01 -2.5656682764674976E+01 -2.5656682767302051E+01 + -2.5656682769970342E+01 -2.5656682772680604E+01 -2.5656682775434586E+01 + -2.5656682778232284E+01 -2.5656682781076427E+01 -2.5656682783963600E+01 + -2.5656682786897530E+01 -2.5656682789877628E+01 -2.5656682792905837E+01 + -2.5656682795980071E+01 -2.5656682799102462E+01 -2.5656682802274844E+01 + -2.5656682805497251E+01 -2.5656682808769265E+01 -2.5656682812092654E+01 + -2.5656682815468123E+01 -2.5656682818896453E+01 -2.5656682822376020E+01 + -2.5656682825908383E+01 -2.5656682829497768E+01 -2.5656682833140795E+01 + -2.5656682836840361E+01 -2.5656682840596709E+01 -2.5656682844410469E+01 + -2.5656682848282092E+01 -2.5656682852213731E+01 -2.5656682856204647E+01 + -2.5656682860256435E+01 -2.5656682864369330E+01 -2.5656682868545143E+01 + -2.5656682872783232E+01 -2.5656682877085451E+01 -2.5656682881452380E+01 + -2.5656682885884337E+01 -2.5656682890383451E+01 -2.5656682894950666E+01 + -2.5656682899585590E+01 -2.5656682904290101E+01 -2.5656682909064035E+01 + -2.5656682913909499E+01 -2.5656682918826483E+01 -2.5656682923816483E+01 + -2.5656682928879242E+01 -2.5656682934018669E+01 -2.5656682939233455E+01 + -2.5656682944525180E+01 -2.5656682949894115E+01 -2.5656682955342959E+01 + -2.5656682960871933E+01 -2.5656682966480343E+01 -2.5656682972170717E+01 + -2.5656682977945593E+01 -2.5656682983802970E+01 -2.5656682989747178E+01 + -2.5656682995777590E+01 -2.5656683001894791E+01 -2.5656683008101616E+01 + -2.5656683014397643E+01 -2.5656683020784598E+01 -2.5656683027264460E+01 + -2.5656683033836963E+01 -2.5656683040505090E+01 -2.5656683047268942E+01 + -2.5656683054129889E+01 -2.5656683061089304E+01 -2.5656683068148279E+01 + -2.5656683075307470E+01 -2.5656683082570204E+01 -2.5656683089936216E+01 + -2.5656683097407708E+01 -2.5656683104985380E+01 -2.5656683112670766E+01 + -2.5656683120465232E+01 -2.5656683128370513E+01 -2.5656683136387262E+01 + -2.5656683144518091E+01 -2.5656683152763552E+01 -2.5656683161125493E+01 + -2.5656683169606183E+01 -2.5656683178205441E+01 -2.5656683186925644E+01 + -2.5656683195769379E+01 -2.5656683204736616E+01 -2.5656683213830387E+01 + -2.5656683223050482E+01 -2.5656683232400599E+01 -2.5656683241880167E+01 + -2.5656683251493757E+01 -2.5656683261240538E+01 -2.5656683271124308E+01 + -2.5656683281145053E+01 -2.5656683291304912E+01 -2.5656683301605902E+01 + -2.5656683312050550E+01 -2.5656683322639246E+01 -2.5656683333375234E+01 + -2.5656683344259715E+01 -2.5656683355294728E+01 -2.5656683366482046E+01 + -2.5656683377824375E+01 -2.5656683389322012E+01 -2.5656683400979126E+01 + -2.5656683412796191E+01 -2.5656683424775842E+01 -2.5656683436919771E+01 + -2.5656683449230936E+01 -2.5656683461710298E+01 -2.5656683474361706E+01 + -2.5656683487185482E+01 -2.5656683500185057E+01 -2.5656683513361845E+01 + -2.5656683526719135E+01 -2.5656683540257593E+01 -2.5656683553981797E+01 + -2.5656683567892131E+01 -2.5656683581992681E+01 -2.5656683596283468E+01 + -2.5656683610770035E+01 -2.5656683625451812E+01 -2.5656683640334059E+01 + -2.5656683655416224E+01 -2.5656683670704638E+01 -2.5656683686198637E+01 + -2.5656683701902949E+01 -2.5656683717818947E+01 -2.5656683733949755E+01 + -2.5656683750297578E+01 -2.5656683766866653E+01 -2.5656683783657783E+01 + -2.5656683800676163E+01 -2.5656683817922183E+01 -2.5656683835401445E+01 + -2.5656683853113726E+01 -2.5656683871065137E+01 -2.5656683889256104E+01 + -2.5656683907691491E+01 -2.5656683926373052E+01 -2.5656683945305431E+01 + -2.5656683964489559E+01 -2.5656683983931650E+01 -2.5656684003631884E+01 + -2.5656684023596206E+01 -2.5656684043825706E+01 -2.5656684064325365E+01 + -2.5656684085096906E+01 -2.5656684106146077E+01 -2.5656684127473888E+01 + -2.5656684149086100E+01 -2.5656684170984501E+01 -2.5656684193174499E+01 + -2.5656684215657421E+01 -2.5656684238439492E+01 -2.5656684261522198E+01 + -2.5656684284911346E+01 -2.5656684308608661E+01 -2.5656684332621058E+01 + -2.5656684356948968E+01 -2.5656684381599064E+01 -2.5656684406573564E+01 + -2.5656684431878496E+01 -2.5656684457515855E+01 -2.5656684483492029E+01 + -2.5656684509808187E+01 -2.5656684536472646E+01 -2.5656684563485591E+01 + -2.5656684590855406E+01 -2.5656684618582876E+01 -2.5656684646675675E+01 + -2.5656684675135459E+01 -2.5656684703970118E+01 -2.5656684733180505E+01 + -2.5656684762775228E+01 -2.5656684792755829E+01 -2.5656684823129943E+01 + -2.5656684853899712E+01 -2.5656684885072700E+01 -2.5656684916651368E+01 + -2.5656684948643139E+01 -2.5656684981050912E+01 -2.5656685013882729E+01 + -2.5656685047141057E+01 -2.5656685080833689E+01 -2.5656685114963274E+01 + -2.5656685149538301E+01 -2.5656685184561226E+01 -2.5656685220041044E+01 + -2.5656685255979880E+01 -2.5656685292387269E+01 -2.5656685329264924E+01 + -2.5656685366622686E+01 -2.5656685404462934E+01 -2.5656685442795176E+01 + -2.5656685481621594E+01 -2.5656685520952649E+01 -2.5656685560790663E+01 + -2.5656685601145192E+01 -2.5656685642019212E+01 -2.5656685683423795E+01 + -2.5656685725360198E+01 -2.5656685767840241E+01 -2.5656685810866307E+01 + -2.5656685854448583E+01 -2.5656685898590556E+01 -2.5656685943303078E+01 + -2.5656685988589278E+01 -2.5656686034460073E+01 -2.5656686080918575E+01 + -2.5656686127976780E+01 -2.5656686175637390E+01 -2.5656686223912349E+01 + -2.5656686272805064E+01 -2.5656686322326987E+01 -2.5656686372481868E+01 + -2.5656686423281986E+01 -2.5656686474730687E+01 -2.5656686526840886E+01 + -2.5656686579615783E+01 -2.5656686633068507E+01 -2.5656686687202217E+01 + -2.5656686742030942E+01 -2.5656686797557708E+01 -2.5656686853796533E+01 + -2.5656686910750562E+01 -2.5656686968434375E+01 -2.5656687026851163E+01 + -2.5656687086016124E+01 -2.5656687145932423E+01 -2.5656687206614773E+01 + -2.5656687268067220E+01 -2.5656687330304926E+01 -2.5656687393331911E+01 + -2.5656687457163297E+01 -2.5656687521803352E+01 -2.5656687587268117E+01 + -2.5656687653561551E+01 -2.5656687720699892E+01 -2.5656687788687314E+01 + -2.5656687857540440E+01 -2.5656687927264219E+01 -2.5656687997874926E+01 + -2.5656688069377093E+01 -2.5656688141788582E+01 -2.5656688215113636E+01 + -2.5656688289370337E+01 -2.5656688364562960E+01 -2.5656688440710500E+01 + -2.5656688517817081E+01 -2.5656688595901390E+01 -2.5656688674968624E+01 + -2.5656688755037958E+01 -2.5656688836114103E+01 -2.5656688918217704E+01 + -2.5656689001352781E+01 -2.5656689085539597E+01 -2.5656689170783501E+01 + -2.5656689257105505E+01 -2.5656689344510838E+01 -2.5656689433020041E+01 + -2.5656689522638729E+01 -2.5656689613389180E+01 -2.5656689705276946E+01 + -2.5656689798323256E+01 -2.5656689892534427E+01 -2.5656689987933074E+01 + -2.5656690084525348E+01 -2.5656690182333694E+01 -2.5656690281365087E+01 + -2.5656690381642445E+01 -2.5656690483172220E+01 -2.5656690585978602E+01 + -2.5656690690068491E+01 -2.5656690795465963E+01 -2.5656690902177964E+01 + -2.5656691010229682E+01 -2.5656691119628164E+01 -2.5656691230399023E+01 + -2.5656691342548775E+01 -2.5656691456104923E+01 -2.5656691571074045E+01 + -2.5656691687483072E+01 -2.5656691805339495E+01 -2.5656691924671133E+01 + -2.5656692045485254E+01 -2.5656692167810583E+01 -2.5656692291654586E+01 + -2.5656692417046166E+01 -2.5656692543993195E+01 -2.5656692672525516E+01 + -2.5656692802650880E+01 -2.5656692934400361E+01 -2.5656693067781561E+01 + -2.5656693202825650E+01 -2.5656693339541132E+01 -2.5656693477960172E+01 + -2.5656693618090866E+01 -2.5656693759966199E+01 -2.5656693903594718E+01 + -2.5656694049009747E+01 -2.5656694196220343E+01 -2.5656694345261215E+01 + -2.5656694496140290E+01 -2.5656694648893382E+01 -2.5656694803530140E+01 + -2.5656694960085954E+01 -2.5656695118569573E+01 -2.5656695279019218E+01 + -2.5656695441443837E+01 -2.5656695605880774E+01 -2.5656695772340125E+01 + -2.5656695940860690E+01 -2.5656696111451982E+01 -2.5656696284153853E+01 + -2.5656696458976089E+01 -2.5656696635959221E+01 -2.5656696815114319E+01 + -2.5656696996481898E+01 -2.5656697180072786E+01 -2.5656697365929588E+01 + -2.5656697554062703E+01 -2.5656697744515725E+01 -2.5656697937299867E+01 + -2.5656698132458931E+01 -2.5656698330004478E+01 -2.5656698529982155E+01 + -2.5656698732403125E+01 -2.5656698937313912E+01 -2.5656699144725945E+01 + -2.5656699354686989E+01 -2.5656699567209042E+01 -2.5656699782340784E+01 + -2.5656700000094222E+01 -2.5656700220518953E+01 -2.5656700443627525E+01 + -2.5656700669470997E+01 -2.5656700898061761E+01 -2.5656701129451907E+01 + -2.5656701363654630E+01 -2.5656701600722673E+01 -2.5656701840669218E+01 + -2.5656702083549501E+01 -2.5656702329376493E+01 -2.5656702578205266E+01 + -2.5656702830050140E+01 -2.5656703084968093E+01 -2.5656703342972818E+01 + -2.5656703604122718E+01 -2.5656703868432093E+01 -2.5656704135960087E+01 + -2.5656704406721570E+01 -2.5656704680777363E+01 -2.5656704958142065E+01 + -2.5656705238877965E+01 -2.5656705523000380E+01 -2.5656705810572621E+01 + -2.5656706101610229E+01 -2.5656706396178123E+01 -2.5656706694291909E+01 + -2.5656706996018361E+01 -2.5656707301373128E+01 -2.5656707610423990E+01 + -2.5656707923187501E+01 -2.5656708239733323E+01 -2.5656708560077437E+01 + -2.5656708884291000E+01 -2.5656709212390751E+01 -2.5656709544449484E+01 + -2.5656709880484112E+01 -2.5656710220569000E+01 -2.5656710564720882E+01 + -2.5656710913016191E+01 -2.5656711265472442E+01 -2.5656711622166807E+01 + -2.5656711983117557E+01 -2.5656712348403612E+01 -2.5656712718043273E+01 + -2.5656713092117222E+01 -2.5656713470643830E+01 -2.5656713853706474E+01 + -2.5656714241323439E+01 -2.5656714633578851E+01 -2.5656715030491572E+01 + -2.5656715432148754E+01 -2.5656715838569216E+01 -2.5656716249840834E+01 + -2.5656716665983279E+01 -2.5656717087086893E+01 -2.5656717513170946E+01 + -2.5656717944327792E+01 -2.5656718380577058E+01 -2.5656718822012923E+01 + -2.5656719268655674E+01 -2.5656719720601387E+01 -2.5656720177869929E+01 + -2.5656720640559840E+01 -2.5656721108691482E+01 -2.5656721582365229E+01 + -2.5656722061601744E+01 -2.5656722546503048E+01 -2.5656723037090561E+01 + -2.5656723533468540E+01 -2.5656724035657820E+01 -2.5656724543765467E+01 + -2.5656725057812629E+01 -2.5656725577908105E+01 -2.5656726104073297E+01 + -2.5656726636419489E+01 -2.5656727174967973E+01 -2.5656727719832595E+01 + -2.5656728271034833E+01 -2.5656728828690103E+01 -2.5656729392820441E+01 + -2.5656729963544407E+01 -2.5656730540883181E+01 -2.5656731124957663E+01 + -2.5656731715789849E+01 -2.5656732313501855E+01 -2.5656732918116766E+01 + -2.5656733529759897E+01 -2.5656734148452177E+01 -2.5656734774322437E+01 + -2.5656735407392514E+01 -2.5656736047792645E+01 -2.5656736695544897E+01 + -2.5656737350782340E+01 -2.5656738013526432E+01 -2.5656738683913154E+01 + -2.5656739361964409E+01 -2.5656740047817948E+01 -2.5656740741495675E+01 + -2.5656741443138536E+01 -2.5656742152767318E+01 -2.5656742870526575E+01 + -2.5656743596437309E+01 -2.5656744330645289E+01 -2.5656745073171642E+01 + -2.5656745824165952E+01 -2.5656746583648232E+01 -2.5656747351770285E+01 + -2.5656748128552763E+01 -2.5656748914150651E+01 -2.5656749708582851E+01 + -2.5656750512007292E+01 -2.5656751324443594E+01 -2.5656752146051506E+01 + -2.5656752976850395E+01 -2.5656753817003388E+01 -2.5656754666528446E+01 + -2.5656755525591727E+01 -2.5656756394210891E+01 -2.5656757272554998E+01 + -2.5656758160640802E+01 -2.5656759058640088E+01 -2.5656759966569151E+01 + -2.5656760884602612E+01 -2.5656761812755530E+01 -2.5656762751205907E+01 + -2.5656763699967765E+01 -2.5656764659222080E+01 -2.5656765628981411E+01 + -2.5656766609429596E+01 -2.5656767600579084E+01 -2.5656768602615578E+01 + -2.5656769615550271E+01 -2.5656770639572805E+01 -2.5656771674692127E+01 + -2.5656772721100594E+01 -2.5656773778806411E+01 -2.5656774848004702E+01 + -2.5656775928701723E+01 -2.5656777021095373E+01 -2.5656778125190623E+01 + -2.5656779241188293E+01 -2.5656780369090878E+01 -2.5656781509102345E+01 + -2.5656782661223374E+01 -2.5656783825660742E+01 -2.5656785002412576E+01 + -2.5656786191688418E+01 -2.5656787393484734E+01 -2.5656788608013365E+01 + -2.5656789835267876E+01 -2.5656791075462884E+01 -2.5656792328589699E+01 + -2.5656793594865739E+01 -2.5656794874278816E+01 -2.5656796167049016E+01 + -2.5656797473161394E+01 -2.5656798792837883E+01 -2.5656800126060595E+01 + -2.5656801473054269E+01 -2.5656802833797041E+01 -2.5656804208515691E+01 + -2.5656805597184935E+01 -2.5656807000034117E+01 -2.5656808417033190E+01 + -2.5656809848413495E+01 -2.5656811294141612E+01 -2.5656812754450371E+01 + -2.5656814229301286E+01 -2.5656815718929543E+01 -2.5656817223291927E+01 + -2.5656818742624797E+01 -2.5656820276879817E+01 -2.5656821826295356E+01 + -2.5656823390817319E+01 -2.5656824970684962E+01 -2.5656826565838664E+01 + -2.5656828176519049E+01 -2.5656829802659921E+01 -2.5656831444503009E+01 + -2.5656833101975558E+01 -2.5656834775319599E+01 -2.5656836464455854E+01 + -2.5656838169626692E+01 -2.5656839890744862E+01 -2.5656841628053556E+01 + -2.5656843381457545E+01 -2.5656845151199992E+01 -2.5656846937176720E+01 + -2.5656848739630597E+01 -2.5656850558449680E+01 -2.5656852393874786E+01 + -2.5656854245784697E+01 -2.5656856114420261E+01 -2.5656857999649215E+01 + -2.5656859901711247E+01 -2.5656861820463874E+01 -2.5656863756144276E+01 + -2.5656865708599234E+01 -2.5656867678063847E+01 -2.5656869664372664E+01 + -2.5656871667758335E+01 -2.5656873688042840E+01 -2.5656875725455318E+01 + -2.5656877779804514E+01 -2.5656879851316685E+01 -2.5656881939785954E+01 + -2.5656884045433660E+01 -2.5656886168040003E+01 -2.5656888307821553E+01 + -2.5656890464542304E+01 -2.5656892638413311E+01 -2.5656894829182303E+01 + -2.5656897037054467E+01 -2.5656899261758998E+01 -2.5656901503495288E+01 + -2.5656903761974174E+01 -2.5656906037385994E+01 -2.5656908329423096E+01 + -2.5656910638267853E+01 -2.5656912963590806E+01 -2.5656915305565931E+01 + -2.5656917663841895E+01 -2.5656920038581887E+01 -2.5656922429412091E+01 + -2.5656924836484681E+01 -2.5656927259401421E+01 -2.5656929698302427E+01 + -2.5656932152763222E+01 -2.5656934622911493E+01 -2.5656937108295498E+01 + -2.5656939609028438E+01 -2.5656942124630167E+01 -2.5656944655198071E+01 + -2.5656947200222433E+01 -2.5656949759783402E+01 -2.5656952333339262E+01 + -2.5656954920952998E+01 -2.5656957522048152E+01 -2.5656960136668630E+01 + -2.5656962764203193E+01 -2.5656965404673727E+01 -2.5656968057432017E+01 + -2.5656970722477833E+01 -2.5656973399123135E+01 -2.5656976087343210E+01 + -2.5656978786408700E+01 -2.5656981496268930E+01 -2.5656984216150637E+01 + -2.5656986945975433E+01 -2.5656989684923936E+01 -2.5656992432887098E+01 + -2.5656995188997588E+01 -2.5656997953114598E+01 -2.5657000724319104E+01 + -2.5657003502436059E+01 -2.5657006286492418E+01 -2.5657009076276509E+01 + -2.5657011870758971E+01 -2.5657014669688792E+01 -2.5657017471976520E+01 + -2.5657020277329149E+01 -2.5657023084594769E+01 -2.5657025893436188E+01 + -2.5657028702634687E+01 -2.5657031511805222E+01 -2.5657034319659441E+01 + -2.5657037125762432E+01 -2.5657039928752361E+01 -2.5657042728139114E+01 + -2.5657045522484516E+01 -2.5657048311242033E+01 -2.5657051092890800E+01 + -2.5657053866823201E+01 -2.5657056631433456E+01 -2.5657059386049347E+01 + -2.5657062128974818E+01 -2.5657064859468459E+01 -2.5657067575739546E+01 + -2.5657070276973862E+01 -2.5657072961280818E+01 -2.5657075627768695E+01 + -2.5657078274441822E+01 -2.5657080900326125E+01 -2.5657083503316148E+01 + -2.5657086082349942E+01 -2.5657088635206030E+01 -2.5657091160730495E+01 + -2.5657093656578802E+01 -2.5657096121499379E+01 -2.5657098553020184E+01 + -2.5657100949784478E+01 -2.5657103309185160E+01 -2.5657105629756714E+01 + -2.5657107908749179E+01 -2.5657110144580365E+01 -2.5657112334351503E+01 + -2.5657114476356568E+01 -2.5657116567540193E+01 -2.5657118606066188E+01 + -2.5657120588713326E+01 -2.5657122513507744E+01 -2.5657124377054910E+01 + -2.5657126177234755E+01 -2.5657127910470564E+01 -2.5657129574487641E+01 + -2.5657131165517512E+01 -2.5657132681122899E+01 -2.5657134117333399E+01 + -2.5657135471539153E+01 -2.5657136739558034E+01 -2.5657137918598554E+01 + -2.5657139004255704E+01 -2.5657139993545297E+01 -2.5657140881828195E+01 + -2.5657141665917802E+01 -2.5657142340929106E+01 -2.5657142903460390E+01 + -2.5657143348368464E+01 -2.5657143672025676E+01 -2.5657143869016931E+01 + -2.5657143935475169E+01 -2.5657143865701205E+01 -2.5657143655575886E+01 + -2.5657143299098227E+01 -2.5657142791884969E+01 -2.5657142127620702E+01 + -2.5657141301640415E+01 -2.5657140307297869E+01 -2.5657139139632505E+01 + -2.5657137791651113E+01 -2.5657136258080715E+01 -2.5657134531562445E+01 + -2.5657132606495306E+01 -2.5657130475137034E+01 -2.5657128131539370E+01 + -2.5657125567556982E+01 -2.5657122776877276E+01 -2.5657119750931418E+01 + -2.5657116483021202E+01 -2.5657112964134360E+01 -2.5657109187166906E+01 + -2.5657105142638816E+01 -2.5657100823020244E+01 -2.5657096218340733E+01 + -2.5657091320619234E+01 -2.5657086119371833E+01 -2.5657080606143282E+01 + -2.5657074769908487E+01 -2.5657068601713714E+01 -2.5657062089966228E+01 + -2.5657055225186461E+01 -2.5657047995185678E+01 -2.5657040389931513E+01 + -2.5657032396609452E+01 -2.5657024004604054E+01 -2.5657015200444452E+01 + -2.5657005972902137E+01 -2.5656996307816129E+01 -2.5656986193312953E+01 + -2.5656975614507868E+01 -2.5656964558848571E+01 -2.5656953010689453E+01 + -2.5656940956764000E+01 -2.5656928380629477E+01 -2.5656915268267014E+01 + -2.5656901602396555E+01 -2.5656887368208853E+01 -2.5656872547544562E+01 + -2.5656857124762528E+01 -2.5656841080780691E+01 -2.5656824399083639E+01 + -2.5656807059620842E+01 -2.5656789044956216E+01 -2.5656770334023392E+01 + -2.5656750908419152E+01 -2.5656730746010272E+01 -2.5656709827376456E+01 + -2.5656688129264740E+01 -2.5656665631185358E+01 -2.5656642308711614E+01 + -2.5656618140228922E+01 -2.5656593100077707E+01 -2.5656567165462107E+01 + -2.5656540309429044E+01 -2.5656512507940189E+01 -2.5656483732686112E+01 + -2.5656453958322793E+01 -2.5656423155116318E+01 -2.5656391296351106E+01 + -2.5656358350799934E+01 -2.5656324290305317E+01 -2.5656289082072600E+01 + -2.5656252696429373E+01 -2.5656215098937363E+01 -2.5656176258332238E+01 + -2.5656136138451252E+01 -2.5656094706358505E+01 -2.5656051924081552E+01 + -2.5656007756927774E+01 -2.5655962165027677E+01 -2.5655915111843900E+01 + -2.5655866555515846E+01 -2.5655816457568914E+01 -2.5655764774054791E+01 + -2.5655711464463465E+01 -2.5655656482657438E+01 -2.5655599785989644E+01 + -2.5655541326026061E+01 -2.5655481057875768E+01 -2.5655418930696211E+01 + -2.5655354897240578E+01 -2.5655288904141202E+01 -2.5655220901677016E+01 + -2.5655150833831993E+01 -2.5655078648288939E+01 -2.5655004286254748E+01 + -2.5654927692685305E+01 -2.5654848805876799E+01 -2.5654767567924139E+01 + -2.5654683914069096E+01 -2.5654597783404238E+01 -2.5654509107971400E+01 + -2.5654417823710691E+01 -2.5654323859308189E+01 -2.5654227147396487E+01 + -2.5654127613144215E+01 -2.5654025185713309E+01 -2.5653919786585103E+01 + -2.5653811341279077E+01 -2.5653699767411450E+01 -2.5653584986681789E+01 + -2.5653466912653990E+01 -2.5653345463019228E+01 -2.5653220547095323E+01 + -2.5653092078368601E+01 -2.5652959961706276E+01 -2.5652824106183523E+01 + -2.5652684412003975E+01 -2.5652540783616988E+01 -2.5652393116337866E+01 + -2.5652241309764214E+01 -2.5652085254089418E+01 -2.5651924843823153E+01 + -2.5651759963792561E+01 -2.5651590503171196E+01 -2.5651416341162601E+01 + -2.5651237361346865E+01 -2.5651053437036232E+01 -2.5650864445944492E+01 + -2.5650670255211928E+01 -2.5650470736403733E+01 -2.5650265750194066E+01 + -2.5650055161701744E+01 -2.5649838824828315E+01 -2.5649616597935744E+01 + -2.5649388327831279E+01 -2.5649153865794798E+01 -2.5648913051202765E+01 + -2.5648665727913343E+01 -2.5648411727521413E+01 -2.5648150886106539E+01 + -2.5647883027113888E+01 -2.5647607978473289E+01 -2.5647325555095712E+01 + -2.5647035576371721E+01 -2.5646737848276171E+01 -2.5646432181252958E+01 + -2.5646118371921236E+01 -2.5645796221352214E+01 -2.5645465516369853E+01 + -2.5645126048228569E+01 -2.5644777593497643E+01 -2.5644419933148004E+01 + -2.5644052833016175E+01 -2.5643676063304600E+01 -2.5643289378612884E+01 + -2.5642892537866278E+01 -2.5642485283906812E+01 -2.5642067363850579E+01 + -2.5641638508233303E+01 -2.5641198451807558E+01 -2.5640746912231769E+01 + -2.5640283611315390E+01 -2.5639808253242116E+01 -2.5639320546272323E+01 + -2.5638820180492569E+01 -2.5638306849981038E+01 -2.5637780230076579E+01 + -2.5637240000015453E+01 -2.5636685819708163E+01 -2.5636117352858623E+01 + -2.5635534243242390E+01 -2.5634936138311353E+01 -2.5634322664962852E+01 + -2.5633693453646476E+01 -2.5633048113611832E+01 -2.5632386257519311E+01 + -2.5631707476165463E+01 -2.5631011363604948E+01 -2.5630297491338752E+01 + -2.5629565433963020E+01 -2.5628814742808672E+01 -2.5628044972120556E+01 + -2.5627255652146673E+01 -2.5626446315853443E+01 -2.5625616471450893E+01 + -2.5624765629659962E+01 -2.5623893275661501E+01 -2.5622998896920485E+01 + -2.5622081954553522E+01 -2.5621141911718393E+01 -2.5620178204390125E+01 + -2.5619190270322928E+01 -2.5618177519227277E+01 -2.5617139362312937E+01 + -2.5616075181855457E+01 -2.5614984361332176E+01 -2.5613866254366314E+01 + -2.5612720215463337E+01 -2.5611545568328143E+01 -2.5610341637206147E+01 + -2.5609107714563457E+01 -2.5607843093045087E+01 -2.5606547032506345E+01 + -2.5605218792595561E+01 -2.5603857599130475E+01 -2.5602462677311642E+01 + -2.5601033217434480E+01 -2.5599568408742513E+01 -2.5598067404466054E+01 + -2.5596529356322307E+01 -2.5594953378872077E+01 -2.5593338584677099E+01 + -2.5591684047963025E+01 -2.5589988840439794E+01 -2.5588251994268411E+01 + -2.5586472538548399E+01 -2.5584649461578465E+01 -2.5582781748021176E+01 + -2.5580868340447829E+01 -2.5578908177188701E+01 -2.5576900153153048E+01 + -2.5574843158369756E+01 -2.5572736038080020E+01 -2.5570577631972462E+01 + -2.5568366733539158E+01 -2.5566102130012137E+01 -2.5563782560977451E+01 + -2.5561406759020937E+01 -2.5558973407587668E+01 -2.5556481182345614E+01 + -2.5553928708287987E+01 -2.5551314601811608E+01 -2.5548637427063518E+01 + -2.5545895738739134E+01 -2.5543088037659906E+01 -2.5540212814302400E+01 + -2.5537268503603194E+01 -2.5534253529216635E+01 -2.5531166257546474E+01 + -2.5528005042736535E+01 -2.5524768179923125E+01 -2.5521453950961927E+01 + -2.5518060576898570E+01 -2.5514586264433685E+01 -2.5511029157608760E+01 + -2.5507387385011580E+01 -2.5503659010677030E+01 -2.5499842082029865E+01 + -2.5495934580001943E+01 -2.5491934467714696E+01 -2.5487839639808236E+01 + -2.5483647971865608E+01 -2.5479357268956285E+01 -2.5474965315795647E+01 + -2.5470469824507575E+01 -2.5465868485519710E+01 -2.5461158914545017E+01 + -2.5456338704207273E+01 -2.5451405370247777E+01 -2.5446356403880856E+01 + -2.5441189217226416E+01 -2.5435901196387285E+01 -2.5430489646120456E+01 + -2.5424951843629181E+01 -2.5419284982474966E+01 -2.5413486227081663E+01 + -2.5407552655898588E+01 -2.5401481316603043E+01 -2.5395269168527751E+01 + -2.5388913138554464E+01 -2.5382410062812994E+01 -2.5375756743257831E+01 + -2.5368949888651965E+01 -2.5361986171811715E+01 -2.5354862169895963E+01 + -2.5347574422301513E+01 -2.5340119370272053E+01 -2.5332493415435245E+01 + -2.5324692858747113E+01 -2.5316713959653583E+01 -2.5308552874391733E+01 + -2.5300205715757343E+01 -2.5291668490787639E+01 -2.5282937161111615E+01 + -2.5274007580040532E+01 -2.5264875553482728E+01 -2.5255536776464449E+01 + -2.5245986894587844E+01 -2.5236221440011544E+01 -2.5226235893425120E+01 + -2.5216025619525990E+01 -2.5205585929479572E+01 -2.5194912015924817E+01 + -2.5183999015895989E+01 -2.5172841945392690E+01 -2.5161435762730044E+01 + -2.5149775302715291E+01 -2.5137855340392814E+01 -2.5125670524868394E+01 + -2.5113215443417069E+01 -2.5100484555000580E+01 -2.5087472254694042E+01 + -2.5074172806953765E+01 -2.5060580410322792E+01 -2.5046689130493498E+01 + -2.5032492965254637E+01 -2.5017985777408359E+01 -2.5003161359907143E+01 + -2.4988013368686829E+01 -2.4972535387948597E+01 -2.4956720862967362E+01 + -2.4940563165469218E+01 -2.4924055526486672E+01 -2.4907191101772163E+01 + -2.4889962904773991E+01 -2.4872363872031080E+01 -2.4854386796343007E+01 + -2.4836024392087630E+01 -2.4817269228666174E+01 -2.4798113795677629E+01 + -2.4778550436726956E+01 -2.4758571414390879E+01 -2.4738168844475705E+01 + -2.4717334760704944E+01 -2.4696061049524658E+01 -2.4674339514437065E+01 + -2.4652161811453308E+01 -2.4629519512996836E+01 -2.4606404044108949E+01 + -2.4582806745840088E+01 -2.4558718812317558E+01 -2.4534131353543508E+01 + -2.4509035333439936E+01 -2.4483421631960439E+01 -2.4457280984238327E+01 + -2.4430604041921107E+01 -2.4403381313543324E+01 -2.4375603224989987E+01 + -2.4347260061230553E+01 -2.4318342025804412E+01 -2.4288839184057228E+01 + -2.4258741521546344E+01 -2.4228038888920501E+01 -2.4196721059136287E+01 + -2.4164777674134001E+01 -2.4132198300749888E+01 -2.4098972379345604E+01 + -2.4065089278297560E+01 -2.4030538244742850E+01 -2.3995308457522775E+01 + -2.3959388980215536E+01 -2.3922768812405124E+01 -2.3885436845177026E+01 + -2.3847381910578896E+01 -2.3808592739760257E+01 -2.3769058010490550E+01 + -2.3728766308129266E+01 -2.3687706171056366E+01 -2.3645866054669508E+01 + -2.3603234374578459E+01 -2.3559799473830530E+01 -2.3515549663713617E+01 + -2.3470473194415938E+01 -2.3424558293284289E+01 -2.3377793139123376E+01 + -2.3330165897746873E+01 -2.3281664700139007E+01 -2.3232277675123555E+01 + -2.3181992931610136E+01 -2.3130798588211494E+01 -2.3078682759797335E+01 + -2.3025633583881291E+01 -2.2971639211715992E+01 -2.2916687831260518E+01 + -2.2860767663054464E+01 -2.2803866979580274E+01 -2.2745974106147237E+01 + -2.2687077436453500E+01 -2.2627165438729858E+01 -2.2566226667295883E+01 + -2.2504249774204542E+01 -2.2441223516590163E+01 -2.2377136774058563E+01 + -2.2311978551617198E+01 -2.2245738003056175E+01 -2.2178404429241329E+01 + -2.2109967307738057E+01 -2.2040416286245001E+01 -2.1969741218702058E+01 + -2.1897932153643278E+01 -2.1824979377033358E+01 -2.1750873395304062E+01 + -2.1675604985164899E+01 -2.1599165171089627E+01 -2.1521545282331015E+01 + -2.1442736924622295E+01 -2.1362732044632498E+01 -2.1281522895632012E+01 + -2.1199102109615570E+01 -2.1115462656689562E+01 -2.1030597925076368E+01 + -2.0944501673972688E+01 -2.0857168121645380E+01 -2.0768591891509256E+01 + -2.0678768108508795E+01 -2.0587692338161016E+01 -2.0495360691408546E+01 + -2.0401769756370950E+01 -2.0306916711839264E+01 -2.0210799251480211E+01 + -2.0113415706121135E+01 -2.0014764960154352E+01 -1.9914846582748947E+01 + -1.9813660736195555E+01 -1.9711208316160338E+01 -1.9607490851721000E+01 + -1.9502510654751664E+01 -1.9396270711399858E+01 -1.9288774840668118E+01 + -1.9180027577093391E+01 -1.9070034338561314E+01 -1.8958801299944827E+01 + -1.8846335570167358E+01 -1.8732645056571187E+01 -1.8617738651200689E+01 + -1.8501626085683480E+01 -1.8384318126679826E+01 -1.8265826421062741E+01 + -1.8146163700436166E+01 -1.8025343616427044E+01 -1.7903380954134487E+01 + -1.7780291457347104E+01 -1.7656092050753145E+01 -1.7530800654920455E+01 + -1.7404436417039378E+01 -1.7277019515526195E+01 -1.7148571399027720E+01 + -1.7019114580525116E+01 -1.6888672884278172E+01 -1.6757271229335807E+01 + -1.6624935884036500E+01 -1.6491694238859335E+01 -1.6357575068047279E+01 + -1.6222608291753172E+01 -1.6086825244289177E+01 -1.5950258425562913E+01 + -1.5812941775384138E+01 -1.5674910414219474E+01 -1.5536200922920402E+01 + -1.5396851072859361E+01 -1.5256900110371435E+01 -1.5116388476370574E+01 + -1.4975358094713435E+01 -1.4833852081439368E+01 -1.4691915036186323E+01 + -1.4549592741226871E+01 -1.4406932454979232E+01 -1.4263982601062498E+01 + -1.4120793062841852E+01 -1.3977414862765706E+01 -1.3833900456789562E+01 + -1.3690303404299517E+01 -1.3546678661149667E+01 -1.3403082240509432E+01 + -1.3259571503146235E+01 -1.3116204809575164E+01 -1.2973041806091137E+01 + -1.2830143068638812E+01 -1.2687570382971257E+01 -1.2545386380700490E+01 + -1.2403654811831247E+01 -1.2262440173470416E+01 -1.2121807972858059E+01 + -1.1981824349257252E+01 -1.1842556325457158E+01 -1.1704071423389829E+01 + -1.1566437901950154E+01 -1.1429724366927617E+01 -1.1293999992839579E+01 + -1.1159334127806044E+01 -1.1025796496972998E+01 -1.0893456802991700E+01 + -1.0762384908498900E+01 -1.0632650432931795E+01 -1.0504322911419363E+01 + -1.0377471388744242E+01 -1.0252164551949434E+01 -1.0128470322359233E+01 + -1.0006455959171639E+01 -9.8861876506102710E+00 -9.7677305858093533E+00 + -9.6511485463676205E+00 -9.5365039439362356E+00 -9.4238574137276938E+00 + -9.3132678154280644E+00 -9.2047918305833853E+00 -9.0984839247796767E+00 + -8.9943959513246678E+00 -8.8925770731264802E+00 -8.7930733757321562E+00 + -8.6959277480041735E+00 -8.6011795084067000E+00 -8.5088642444835934E+00 + -8.4190134573521043E+00 -8.3316543611529799E+00 -8.2468095520384725E+00 + -8.1644967703021312E+00 -8.0847286017896831E+00 -8.0075122073028187E+00 + -7.9328490664273277E+00 -7.8607346811549430E+00 -7.7911583746053941E+00 + -7.7241029786833391E+00 -7.6595447031778097E+00 -7.5974528207573329E+00 + -7.5377896255139669E+00 -7.4805101327415890E+00 -7.4255621502535130E+00 + -7.3728860153023481E+00 -7.3224148069962585E+00 -7.2740741484500147E+00 + -7.2277825944609448E+00 -7.1834515336451288E+00 -7.1409857922080899E+00 + -7.1002836785248027E+00 -7.0612378515101373E+00 -7.0237355587352184E+00 + -6.9876598266129770E+00 -6.9528899529796062E+00 -6.9193030859047742E+00 + -6.8867750424949161E+00 -6.8551823538118617E+00 -6.8244034934642350E+00 + -6.7943214774439742E+00 -6.7648255985795158E+00 -6.7358146819673932E+00 + -6.7071994341386763E+00 -6.6789064663215356E+00 -6.6508813793888768E+00 + -6.6230936777174803E+00 -6.5955407213748316E+00 -6.5682536610082201E+00 + -6.5413023956852490E+00 -6.5148026623153532E+00 -6.4889221562898749E+00 + -6.4638271616952041E+00 -6.4394822873806064E+00 -6.4158008169144445E+00 + -6.3927003568116527E+00 -6.3701014846626860E+00 -6.3479256462514906E+00 + -6.3260712091296805E+00 -6.3046827060517616E+00 -6.2838652090322835E+00 + -6.2584157512104470E+00 -6.2233089940510293E+00 -6.1836909311008972E+00 + -6.1446721090355130E+00 -6.1060584668956999E+00 -6.0676408103612074E+00 + -6.0294510552136042E+00 -5.9914978836806583E+00 -5.9537873589007342E+00 + -5.9163231737175686E+00 -5.8791070260283487E+00 -5.8421388909492702E+00 + -5.8054173861782488E+00 -5.7689400201545471E+00 -5.7327035130640640E+00 + -5.6967055076699005E+00 -5.6609251940002547E+00 -5.6253435066421940E+00 + -5.5900847740561810E+00 -5.5562865796974545E+00 -5.5227017777271055E+00 + -5.4893285854411618E+00 -5.4561652694334679E+00 -5.4232101093862548E+00 + -5.3904614312804462E+00 -5.3579175736064126E+00 -5.3255769183063757E+00 + -5.2934378592890665E+00 -5.2614988312167510E+00 -5.2297582802094515E+00 + -5.1982146905868181E+00 -5.1668665576497697E+00 -5.1357124124852591E+00 + -5.1047507967155372E+00 -5.0739802854711424E+00 -5.0433994640007054E+00 + -5.0130069489148870E+00 -4.9828013665522546E+00 -4.9527813725939511E+00 + -4.9229456320843079E+00 -4.8932928375129396E+00 -4.8638216903917915E+00 + -4.8345309178981068E+00 -4.8054192559130398E+00 -4.7764854643156180E+00 + -4.7477283113912803E+00 -4.7191465878635785E+00 -4.6907390925846002E+00 + -4.6625046453876600E+00 -4.6344420739749461E+00 -4.6065502256709951E+00 + -4.5788279554266715E+00 -4.5512741365494698E+00 -4.5238876497464897E+00 + -4.4966673929042491E+00 -4.4696122710969126E+00 -4.4427212054846121E+00 + -4.4159931242168264E+00 -4.3894269705147817E+00 -4.3630216944034599E+00 + -4.3367762600400681E+00 -4.3106896382116808E+00 -4.2847608129684529E+00 + -4.2589887748274107E+00 -4.2333725267655415E+00 -4.2079110780737352E+00 + -4.1826034497617677E+00 -4.1574486690095291E+00 -4.1324457740326990E+00 + -4.1075938090818278E+00 -4.0828918288143479E+00 -4.0583388937951161E+00 + -4.0339340744174264E+00 -4.0096764468617687E+00 -3.9855650966056193E+00 + -3.9615991147999954E+00 -3.9377776014050223E+00 -3.9140996619467958E+00 + -3.8905644103130586E+00 -3.8671709658554785E+00 -3.8439184558772297E+00 + -3.8208060130484811E+00 -3.7978327776152652E+00 -3.7749978950982692E+00 + -3.7523005182501508E+00 -3.7297398050101926E+00 -3.7073149202348903E+00 + -3.6850250338832038E+00 -3.6628693225433340E+00 -3.6408469678253708E+00 + -3.6189571577051551E+00 -3.5971990851030600E+00 -3.5755719490641336E+00 + -3.5540749535036071E+00 -3.5327073082406972E+00 -3.5114682278931442E+00 + -3.4903569327806054E+00 -3.4693726479521154E+00 -3.4485146039733960E+00 + -3.4277820360726743E+00 -3.4071741848249997E+00 -3.3866902954031102E+00 + -3.3663296181705373E+00 -3.3460914080256310E+00 -3.3259749249140476E+00 + -3.3059794332551276E+00 -3.2861042023833078E+00 -3.2663485060472195E+00 + -3.2467116227885771E+00 -3.2271928355052646E+00 -3.2077914317753664E+00 + -3.1885067034765142E+00 -3.1693379470618970E+00 -3.1502844632288634E+00 + -3.1313455571530309E+00 -3.1125205382000303E+00 -3.0938087201230355E+00 + -3.0752094208121621E+00 -3.0567219624602662E+00 -3.0383456713451316E+00 + -3.0200798779677140E+00 -3.0019239168628342E+00 -2.9838771267136401E+00 + -2.9659388501870074E+00 -2.9481084340274686E+00 -2.9303852289139831E+00 + -2.9127685895362498E+00 -2.8952578744699395E+00 -2.8778524462378301E+00 + -2.8605516712009864E+00 -2.8433549196069614E+00 -2.8262615654946197E+00 + -2.8092709867313181E+00 -2.7923825649294738E+00 -2.7755956854743875E+00 + -2.7589097374508187E+00 -2.7423241136628898E+00 -2.7258382105692536E+00 + -2.7094514282963091E+00 -2.6931631705806676E+00 -2.6769728447767380E+00 + -2.6608798618054448E+00 -2.6448836361571151E+00 -2.6289835858454351E+00 + -2.6131791324064713E+00 -2.5974697008571019E+00 -2.5818547196907695E+00 + -2.5663336208397292E+00 -2.5509058396681206E+00 -2.5355708149374498E+00 + -2.5203279887974408E+00 -2.5051768067542479E+00 -2.4901167176595274E+00 + -2.4751471736809658E+00 -2.4602676302898812E+00 -2.4454775462337062E+00 + -2.4307763835224510E+00 -2.4161636074028414E+00 -2.4016386863438455E+00 + -2.3872010920122149E+00 -2.3728502992573186E+00 -2.3585857860878847E+00 + -2.3444070336562373E+00 -2.3303135262361083E+00 -2.3163047512064572E+00 + -2.3023801990301349E+00 -2.2885393632374154E+00 -2.2747817404054254E+00 + -2.2611068301161841E+00 -2.2475141349665386E+00 -2.2340031605729957E+00 + -2.2205734155261037E+00 -2.2072244113725312E+00 -2.1939556625972765E+00 + -2.1807666866059678E+00 -2.1676570037073000E+00 -2.1546261370955442E+00 + -2.1416736128331739E+00 -2.1287989598336097E+00 -2.1160017098440509E+00 + -2.1032813974284204E+00 -2.0906375599503941E+00 -2.0780697375565671E+00 + -2.0655774731596916E+00 -2.0531603124220279E+00 -2.0408178037387832E+00 + -2.0285494982216776E+00 -2.0163549496825830E+00 -2.0042337146172722E+00 + -1.9921853521892512E+00 -1.9802094242137238E+00 -1.9683054951416170E+00 + -1.9564731320437074E+00 -1.9447119045948720E+00 -1.9330213850583993E+00 + -1.9214011482704185E+00 -1.9098507716243971E+00 -1.8983698350557709E+00 + -1.8869579210266281E+00 -1.8756146145105117E+00 -1.8643395029772873E+00 + -1.8531321763781383E+00 -1.8419922271306213E+00 -1.8309192501038238E+00 + -1.8199128426035998E+00 -1.8089726043579213E+00 -1.7980981375022895E+00 + -1.7872890465652487E+00 -1.7765449384539751E+00 -1.7658654224399757E+00 + -1.7552501101448523E+00 -1.7446986155261488E+00 -1.7342105548633091E+00 + -1.7237855467436933E+00 -1.7134232120486927E+00 -1.7031231739399122E+00 + -1.6928850578454666E+00 -1.6827084914463279E+00 -1.6725931046627736E+00 + -1.6625385296408985E+00 -1.6525444007392385E+00 -1.6426103545154427E+00 + -1.6327360297130480E+00 -1.6229210672483103E+00 -1.6131651101971491E+00 + -1.6034678037821417E+00 -1.5938287953595964E+00 -1.5842477344067301E+00 + -1.5747242725088944E+00 -1.5652580633468940E+00 -1.5558487626843673E+00 + -1.5464960283552698E+00 -1.5371995202514039E+00 -1.5279589003100427E+00 + -1.5187738325016089E+00 -1.5096439828174595E+00 -1.5005690192577124E+00 + -1.4915486118191652E+00 -1.4825824324832697E+00 -1.4736701552042069E+00 + -1.4648114558970076E+00 -1.4560060124257461E+00 -1.4472535045918293E+00 + -1.4385536141223283E+00 -1.4299060246583970E+00 -1.4213104217437453E+00 + -1.4127664928132060E+00 -1.4042739271813474E+00 -1.3958324160311666E+00 + -1.3874416524028388E+00 -1.3791013311825571E+00 -1.3708111490914163E+00 + -1.3625708046743772E+00 -1.3543799982892830E+00 -1.3462384320959675E+00 + -1.3381458100454051E+00 -1.3301018378689264E+00 -1.3221062230675231E+00 + -1.3141586749011893E+00 -1.3062589043783432E+00 -1.2984066242453005E+00 + -1.2906015489758298E+00 -1.2828433947607529E+00 -1.2751318794976165E+00 + -1.2674667227804171E+00 -1.2598476458894068E+00 -1.2522743717809401E+00 + -1.2447466250773942E+00 -1.2372641320571369E+00 -1.2298266206445783E+00 + -1.2224338204002598E+00 -1.2150854625110055E+00 -1.2077812797801508E+00 + -1.2005210066178096E+00 -1.1933043790312106E+00 -1.1861311346150838E+00 + -1.1790010125421182E+00 -1.1719137535534658E+00 -1.1648690999493045E+00 + -1.1578667955794564E+00 -1.1509065858340739E+00 -1.1439882176343668E+00 + -1.1371114394233959E+00 -1.1302760011569088E+00 -1.1234816542942549E+00 + -1.1167281517893277E+00 -1.1100152480815824E+00 -1.1033426990870889E+00 + -1.0967102621896621E+00 -1.0901176962320263E+00 -1.0835647615070325E+00 + -1.0770512197489486E+00 -1.0705768341247792E+00 -1.0641413692256518E+00 + -1.0577445910582419E+00 -1.0513862670362695E+00 -1.0450661659720282E+00 + -1.0387840580679748E+00 -1.0325397149083613E+00 -1.0263329094509321E+00 + -1.0201634160186566E+00 -1.0140310102915200E+00 -1.0079354692983524E+00 + -1.0018765714087274E+00 -9.9585409632489152E-01 -9.8986782507374227E-01 + -9.8391753999887077E-01 -9.7800302475263567E-01 -9.7212406428829368E-01 + -9.6628044485216691E-01 -9.6047195397587737E-01 -9.5469838046860678E-01 + -9.4895951440941739E-01 -9.4325514713960568E-01 -9.3758507125512114E-01 + -9.3194908059901183E-01 -9.2634697025392831E-01 -9.2077853653465958E-01 + -9.1524357698073200E-01 -9.0974189034903841E-01 -9.0427327660651080E-01 + -8.9883753692285184E-01 -8.9343447366329454E-01 -8.8806389038141353E-01 + -8.8272559181197319E-01 -8.7741938386383034E-01 -8.7214507361286819E-01 + -8.6690246929497916E-01 -8.6169138029908199E-01 -8.5651161716019608E-01 + -8.5136299155254203E-01 -8.4624531628269295E-01 -8.4115840528275798E-01 + -8.3610207360362143E-01 -8.3107613740820818E-01 -8.2608041396479870E-01 + -8.2111472164037469E-01 -8.1617887989401949E-01 -8.1127270927034656E-01 + -8.0639603139296512E-01 -8.0154866895800003E-01 -7.9673044572763552E-01 + -7.9194118652370615E-01 -7.8718071722131877E-01 -7.8244886474252529E-01 + -7.7774545705002163E-01 -7.7307032314089119E-01 -7.6842329304037849E-01 + -7.6380419779571362E-01 -7.5921286946996069E-01 -7.5464914113591142E-01 + -7.5011284687000646E-01 -7.4560382174630802E-01 -7.4112190183049531E-01 + -7.3666692417389801E-01 -7.3223872680757573E-01 -7.2783714873642036E-01 + -7.2346202993330289E-01 -7.1911321133324613E-01 -7.1479053482764665E-01 + -7.1049384325851739E-01 -7.0622298041277387E-01 -7.0197779101654634E-01 + -6.9775812072953880E-01 -6.9356381613940998E-01 -6.8939472475619501E-01 + -6.8525069500675340E-01 -6.8113157622926290E-01 -6.7703721866773525E-01 + -6.7296747346656560E-01 -6.6892219266512354E-01 -6.6490122919236838E-01 + -6.6090443686149958E-01 -6.5693167036463584E-01 -6.5298278526753617E-01 + -6.4905763800434146E-01 -6.4515608587235440E-01 -6.4127798702684458E-01 + -6.3742320047589529E-01 -6.3359158607527100E-01 -6.2978300452332148E-01 + -6.2599731735591102E-01 -6.2223438694138800E-01 -6.1849407647557575E-01 + -6.1477624997679303E-01 -6.1108077228091473E-01 -6.0740750903645069E-01 + -6.0375632669966173E-01 -6.0012709252969709E-01 -5.9651967458377353E-01 + -5.9293394171237168E-01 -5.8936976355446757E-01 -5.8582701053278730E-01 + -5.8230555384909999E-01 -5.7880526547952971E-01 -5.7532601816989948E-01 + -5.7186768543110023E-01 -5.6843014153449545E-01 -5.6501326150734599E-01 + -5.6161692112826012E-01 -5.5824099692268325E-01 -5.5488536615840178E-01 + -5.5154990684108118E-01 -5.4823449770982613E-01 -5.4493901823277435E-01 + -5.4166334860271059E-01 -5.3840736973270986E-01 -5.3517096325180236E-01 + -5.3195401150067545E-01 -5.2875639752738868E-01 -5.2557800508312302E-01 + -5.2241871861794942E-01 -5.1927842327663143E-01 -5.1615700489444405E-01 + -5.1305434999302402E-01 -5.0997034577623868E-01 -5.0690488012608914E-01 + -5.0385784159862956E-01 -5.0082911941991226E-01 -4.9781860348196311E-01 + -4.9482618433877484E-01 -4.9185175320232710E-01 -4.8889520193862707E-01 + -4.8595642306378223E-01 -4.8303530974008746E-01 -4.8013175577214146E-01 + -4.7724565560298099E-01 -4.7437690431024732E-01 -4.7152539760236695E-01 + -4.6869103181476007E-01 -4.6587370390606786E-01 -4.6307331145440961E-01 + -4.6028975265365529E-01 -4.5752292630972108E-01 -4.5477273183689382E-01 + -4.5203906925416981E-01 -4.4932183918162044E-01 -4.4662094283677473E-01 + -4.4393628203103153E-01 -4.4126775916608624E-01 -4.3861527723038218E-01 + -4.3597873979557988E-01 -4.3335805101305525E-01 -4.3075311561041002E-01 + -4.2816383888800963E-01 -4.2559012671553526E-01 -4.2303188552856597E-01 + -4.2048902232517349E-01 -4.1796144466253821E-01 -4.1544906065359122E-01 + -4.1295177896367069E-01 -4.1046950880720123E-01 -4.0800215994438954E-01 + -4.0554964267794780E-01 -4.0311186784982789E-01 -4.0068874683798156E-01 + -3.9828019155313416E-01 -3.9588611443558558E-01 -3.9350642845202383E-01 + -3.9114104709236081E-01 -3.8878988436658396E-01 -3.8645285480163361E-01 + -3.8412987343829136E-01 -3.8182085582809266E-01 -3.7952571803025287E-01 + -3.7724437660861854E-01 -3.7497674862863190E-01 -3.7272275165431273E-01 + -3.7048230374526442E-01 -3.6825532345369205E-01 -3.6604172982144151E-01 + -3.6384144237705335E-01 -3.6165438113284021E-01 -3.5948046658197541E-01 + -3.5731961969560366E-01 -3.5517176191996402E-01 -3.5303681517353769E-01 + -3.5091470184420603E-01 -3.4880534478642966E-01 -3.4670866731844069E-01 + -3.4462459321945776E-01 -3.4255304672691317E-01 -3.4049395253369547E-01 + -3.3844723578541519E-01 -3.3641282207768003E-01 -3.3439063745339120E-01 + -3.3238060840005101E-01 -3.3038266184709403E-01 -3.2839672516322693E-01 + -3.2642272615378920E-01 -3.2446059305812552E-01 -3.2251025454697985E-01 + -3.2057163971989916E-01 -3.1864467810265701E-01 -3.1672929964468810E-01 + -3.1482543471654495E-01 -3.1293301410736407E-01 -3.1105196902234800E-01 + -3.0918223108026655E-01 -3.0732373231096888E-01 -3.0547640515291230E-01 + -3.0364018245070412E-01 -3.0181499745266260E-01 -3.0000078380838802E-01 + -2.9819747556635062E-01 -2.9640500717149088E-01 -2.9462331346283860E-01 + -2.9285232967114194E-01 -2.9109199141651315E-01 -2.8934223470608539E-01 + -2.8760299593168931E-01 -2.8587421186753864E-01 -2.8415581966792930E-01 + -2.8244775686495777E-01 -2.8074996136624780E-01 -2.7906237145269308E-01 + -2.7738492577621177E-01 -2.7571756335751835E-01 -2.7406022358390481E-01 + -2.7241284620703737E-01 -2.7077537134076402E-01 -2.6914773945894022E-01 + -2.6752989139326216E-01 -2.6592176833111653E-01 -2.6432331181344032E-01 + -2.6273446373259790E-01 -2.6115516633026697E-01 -2.5958536219533690E-01 + -2.5802499426182424E-01 -2.5647400580679597E-01 -2.5493234044830759E-01 + -2.5339994214335193E-01 -2.5187675518582381E-01 -2.5036272420449263E-01 + -2.4885779416099027E-01 -2.4736191034780819E-01 -2.4587501838631057E-01 + -2.4439706422475593E-01 -2.4292799413633231E-01 -2.4146775471720205E-01 + -2.4001629288456316E-01 -2.3857355587471699E-01 -2.3713949124115088E-01 + -2.3571404685262964E-01 -2.3429717089130256E-01 -2.3288881185081825E-01 + -2.3148891853445022E-01 -2.3009744005323868E-01 -2.2871432582413789E-01 + -2.2733952556817838E-01 -2.2597298930863702E-01 -2.2461466736922231E-01 + -2.2326451037226688E-01 -2.2192246923693260E-01 -2.2058849517742490E-01 + -2.1926253970122123E-01 -2.1794455460730608E-01 -2.1663449198441986E-01 + -2.1533230420931485E-01 -2.1403794394502626E-01 -2.1275136413915008E-01 + -2.1147251802213085E-01 -2.1020135910556401E-01 -2.0893784118050376E-01 + -2.0768191831578384E-01 -2.0643354485634621E-01 -2.0519267542158331E-01 + -2.0395926490368652E-01 -2.0273326846600703E-01 -2.0151464154142418E-01 + -2.0030333983072734E-01 -1.9909931930100361E-01 -1.9790253618403811E-01 + -1.9671294697472061E-01 -1.9553050842946657E-01 -1.9435517756464332E-01 + -1.9318691165500662E-01 -1.9202566823214920E-01 -1.9087140508295530E-01 + -1.8972408024806675E-01 -1.8858365202035610E-01 -1.8745007894341209E-01 + -1.8632331981003128E-01 -1.8520333366072045E-01 -1.8409007978220618E-01 + -1.8298351770595650E-01 -1.8188360720670843E-01 -1.8079030830100609E-01 + -1.7970358124574567E-01 -1.7862338653673254E-01 -1.7754968490724368E-01 + -1.7648243732660071E-01 -1.7542160499874962E-01 -1.7436714936085215E-01 + -1.7331903208188293E-01 -1.7227721506123472E-01 -1.7124166042733532E-01 + -1.7021233053626939E-01 -1.6918918797041035E-01 -1.6817219553705909E-01 + -1.6716131626709316E-01 -1.6615651341362200E-01 -1.6515775045065109E-01 + -1.6416499107175311E-01 -1.6317819918874985E-01 -1.6219733893039848E-01 + -1.6122237464108874E-01 -1.6025327087954488E-01 -1.5928999241753911E-01 + -1.5833250423861003E-01 -1.5738077153678878E-01 -1.5643475971533505E-01 + -1.5549443438547850E-01 -1.5455976136516877E-01 -1.5363070667783188E-01 + -1.5270723655113674E-01 -1.5178931741576587E-01 -1.5087691590419577E-01 + -1.4996999884948276E-01 -1.4906853328405861E-01 -1.4817248643853118E-01 + -1.4728182574049328E-01 -1.4639651881333765E-01 -1.4551653347508156E-01 + -1.4464183773719561E-01 -1.4377239980344061E-01 -1.4290818806871258E-01 + -1.4204917111789309E-01 -1.4119531772470753E-01 -1.4034659685058881E-01 + -1.3950297764355063E-01 -1.3866442943706461E-01 -1.3783092174894612E-01 + -1.3700242428024498E-01 -1.3617890691414547E-01 -1.3536033971487038E-01 + -1.3454669292659333E-01 -1.3373793697235581E-01 -1.3293404245299364E-01 + + + 6.3921236243686073E+00 6.3862335861350230E+00 6.3659801224147641E+00 + 6.3540278858383479E+00 6.3454663377560721E+00 6.3078097482380135E+00 + 6.3005196732397080E+00 6.2967581311212655E+00 6.2923851159109230E+00 + 6.2887059839618704E+00 6.2853991845850299E+00 6.2823582703223018E+00 + 6.2795532954205235E+00 6.2769452293453245E+00 6.2745037694057251E+00 + 6.2722058469510529E+00 6.2700327017981197E+00 6.2679689722752885E+00 + 6.2660019630588817E+00 6.2641210452945399E+00 6.2623172305459551E+00 + 6.2605828501924785E+00 6.2589113080130909E+00 6.2572968882650501E+00 + 6.2557346049338829E+00 6.2542200818918090E+00 6.2527494567058088E+00 + 6.2513193027187324E+00 6.2499265653918563E+00 6.2485685098895081E+00 + 6.2472426776052998E+00 6.2459468498591262E+00 6.2446790173898092E+00 + 6.2434373545657573E+00 6.2422201974627640E+00 6.2410260251316911E+00 + 6.2398534435132440E+00 6.2387011715619423E+00 6.2375680292236106E+00 + 6.2364529269760203E+00 6.2353548566939674E+00 6.2342728836417631E+00 + 6.2332061394295133E+00 6.2321538157966616E+00 6.2311151591084819E+00 + 6.2300894654691712E+00 6.2290760763701680E+00 6.2280743748045824E+00 + 6.2270837817889220E+00 6.2261037532417127E+00 6.2251337771758459E+00 + 6.2241733711674518E+00 6.2232220800691316E+00 6.2222794739397562E+00 + 6.2213451461665699E+00 6.2204187117585210E+00 6.2194998057924309E+00 + 6.2185880819957688E+00 6.2176832114518801E+00 6.2167848814152098E+00 + 6.2158927942253950E+00 6.2150066663105479E+00 6.2141262272710671E+00 + 6.2132512190362350E+00 6.2123813950868332E+00 6.2115165197376268E+00 + 6.2106563674742787E+00 6.2098007223397929E+00 6.2089493773661433E+00 + 6.2081021340471381E+00 6.2072588018489556E+00 6.2064191977551957E+00 + 6.2055831458435620E+00 6.2047504768915642E+00 6.2039210280088728E+00 + 6.2030946422942170E+00 6.2022711685148773E+00 6.2014504608069929E+00 + 6.2006323783951007E+00 6.1998167853294417E+00 6.1990035502396816E+00 + 6.1981925461038596E+00 6.1973836500314166E+00 6.1965767430593068E+00 + 6.1957717099602352E+00 6.1949684390622100E+00 6.1941668220785528E+00 + 6.1933667539476778E+00 6.1925681326820028E+00 6.1917708592253202E+00 + 6.1909748373180937E+00 6.1901799733701468E+00 6.1893861763402764E+00 + 6.1885933576223229E+00 6.1878014309372986E+00 6.1870103122311679E+00 + 6.1862199195779750E+00 6.1854301730879175E+00 6.1846409948201355E+00 + 6.1838523086998620E+00 6.1830640404397181E+00 6.1822761174649088E+00 + 6.1814884688420468E+00 6.1807010252114205E+00 6.1799137187225242E+00 + 6.1791264829726265E+00 6.1783392529482279E+00 6.1775519649692461E+00 + 6.1767645566357432E+00 6.1759769667771200E+00 6.1751891354035751E+00 + 6.1744010036597405E+00 6.1736125137803786E+00 6.1728236090480095E+00 + 6.1720342337523961E+00 6.1712443331517557E+00 6.1704538534356308E+00 + 6.1696627416893444E+00 6.1688709458599238E+00 6.1680784147234426E+00 + 6.1672850978537088E+00 6.1664909455922317E+00 6.1656959090193926E+00 + 6.1648999399267721E+00 6.1641029907905729E+00 6.1633050147460828E+00 + 6.1625059655631560E+00 6.1617057976225986E+00 6.1609044658934877E+00 + 6.1601019259113476E+00 6.1592981337571286E+00 6.1584930460369973E+00 + 6.1576866198628268E+00 6.1568788128334528E+00 6.1560695830165839E+00 + 6.1552588889313400E+00 6.1544466895314578E+00 6.1536329441890629E+00 + 6.1528176126790033E+00 6.1520006551637403E+00 6.1511820321787543E+00 + 6.1503617046184562E+00 6.1495396337225481E+00 6.1487157810628670E+00 + 6.1478901085306612E+00 6.1470625783242792E+00 6.1462331529372456E+00 + 6.1454017951467472E+00 6.1445684680024764E+00 6.1437331348158279E+00 + 6.1428957591494298E+00 6.1420563048070189E+00 6.1412147358235973E+00 + 6.1403710164559184E+00 6.1395251111732598E+00 6.1386769846484430E+00 + 6.1378266017491514E+00 6.1369739275295023E+00 6.1361189272218404E+00 + 6.1352615662287917E+00 6.1344018101155413E+00 6.1335396246023155E+00 + 6.1326749755571006E+00 6.1318078289885287E+00 6.1309381510390031E+00 + 6.1300659079779685E+00 6.1291910661953919E+00 6.1283135921954131E+00 + 6.1274334525901439E+00 6.1265506140936612E+00 6.1256650435161273E+00 + 6.1247767077580786E+00 6.1238855738048539E+00 6.1229916087211551E+00 + 6.1220947796457654E+00 6.1211950537863684E+00 6.1202923984145210E+00 + 6.1193867808607250E+00 6.1184781685096290E+00 6.1175665287953409E+00 + 6.1166518291968490E+00 6.1157340372335511E+00 6.1148131204608740E+00 + 6.1138890464660118E+00 6.1129617828637421E+00 6.1120312972923445E+00 + 6.1110975574095967E+00 6.1101605308888773E+00 6.1092201854153219E+00 + 6.1082764886820842E+00 6.1073294083866738E+00 6.1063789122273509E+00 + 6.1054249678996033E+00 6.1044675430927091E+00 6.1035066054863440E+00 + 6.1025421227472627E+00 6.1015740625260504E+00 6.1006023924539337E+00 + 6.0996270801396379E+00 6.0986480931663287E+00 6.0976653990885783E+00 + 6.0966789654294136E+00 6.0956887596774036E+00 6.0946947492837937E+00 + 6.0936969016597065E+00 6.0926951841733574E+00 6.0916895641473676E+00 + 6.0906800088560633E+00 6.0896664855228728E+00 6.0886489613177179E+00 + 6.0876274033544906E+00 6.0866017786885287E+00 6.0855720543141612E+00 + 6.0845381971622734E+00 6.0835001740979102E+00 6.0824579519179220E+00 + 6.0814114973486442E+00 6.0803607770435955E+00 6.0793057575812233E+00 + 6.0782464054626724E+00 6.0771826871095929E+00 6.0761145688619562E+00 + 6.0750420169759334E+00 6.0739649976217622E+00 6.0728834768816728E+00 + 6.0717974207478207E+00 6.0707067951202527E+00 6.0696115658048910E+00 + 6.0685116985115499E+00 6.0674071588519691E+00 6.0662979123378644E+00 + 6.0651839243790135E+00 6.0640651602813591E+00 6.0629415852451150E+00 + 6.0618131643629170E+00 6.0606798626179810E+00 6.0595416448822723E+00 + 6.0583984759147107E+00 6.0572503203593770E+00 6.0560971427437513E+00 + 6.0549389074769495E+00 6.0537755788479952E+00 6.0526071210240913E+00 + 6.0514334980489188E+00 6.0502546738409464E+00 6.0490706121917484E+00 + 6.0478812767643406E+00 6.0466866310915384E+00 6.0454866385743156E+00 + 6.0442812624801832E+00 6.0430704659415682E+00 6.0418542119542318E+00 + 6.0406324633756689E+00 6.0394051829235353E+00 6.0381723331740833E+00 + 6.0369338765606031E+00 6.0356897753718917E+00 6.0344399917507046E+00 + 6.0331844876922407E+00 6.0319232250426200E+00 6.0306561654973923E+00 + 6.0293832706000279E+00 6.0281045017404367E+00 6.0268198201534897E+00 + 6.0255291869175522E+00 6.0242325629530091E+00 6.0229299090208315E+00 + 6.0216211857211075E+00 6.0203063534916232E+00 6.0189853726064149E+00 + 6.0176582031743564E+00 6.0163248051377396E+00 6.0149851382708519E+00 + 6.0136391621785865E+00 6.0122868362950364E+00 6.0109281198821041E+00 + 6.0095629720281147E+00 6.0081913516464391E+00 6.0068132174741082E+00 + 6.0054285280704640E+00 6.0040372418157766E+00 6.0026393169098986E+00 + 6.0012347113709010E+00 5.9998233830337346E+00 5.9984052895488889E+00 + 5.9969803883810382E+00 5.9955486368077224E+00 5.9941099919180134E+00 + 5.9926644106111864E+00 5.9912118495954045E+00 5.9897522653864019E+00 + 5.9882856143061698E+00 5.9868118524816438E+00 5.9853309358434101E+00 + 5.9838428201244005E+00 5.9823474608585867E+00 5.9808448133797052E+00 + 5.9793348328199531E+00 5.9778174741087087E+00 5.9762926919712500E+00 + 5.9747604409274739E+00 5.9732206752906221E+00 5.9716733491660046E+00 + 5.9701184164497452E+00 5.9685558308274960E+00 5.9669855457731886E+00 + 5.9654075145477723E+00 5.9638216901979533E+00 5.9622280255549454E+00 + 5.9606264732332264E+00 5.9590169856292698E+00 5.9573995149203292E+00 + 5.9557740130631709E+00 5.9541404317928555E+00 5.9524987226214883E+00 + 5.9508488368369941E+00 5.9491907255018859E+00 5.9475243394520296E+00 + 5.9458496292954370E+00 5.9441665454110231E+00 5.9424750379474043E+00 + 5.9407750568216731E+00 5.9390665517181862E+00 5.9373494720873570E+00 + 5.9356237671444410E+00 5.9338893858683397E+00 5.9321462770003865E+00 + 5.9303943890431583E+00 5.9286336702592708E+00 5.9268640686701888E+00 + 5.9250855320550286E+00 5.9232980079493807E+00 5.9215014436441118E+00 + 5.9196957861841835E+00 5.9178809823674774E+00 5.9160569787436206E+00 + 5.9142237216127995E+00 5.9123811570245985E+00 5.9105292307768273E+00 + 5.9086678884143540E+00 5.9067970752279466E+00 5.9049167362531083E+00 + 5.9030268162689312E+00 5.9011272597969269E+00 5.8992180110998973E+00 + 5.8972990141807644E+00 5.8953702127814411E+00 5.8934315503816945E+00 + 5.8914829701980045E+00 5.8895244151824171E+00 5.8875558280214388E+00 + 5.8855771511348873E+00 5.8835883266747890E+00 5.8815892965242469E+00 + 5.8795800022963283E+00 5.8775603853329521E+00 5.8755303867037849E+00 + 5.8734899472051314E+00 5.8714390073588438E+00 5.8693775074112144E+00 + 5.8673053873318919E+00 5.8652225868128003E+00 5.8631290452670290E+00 + 5.8610247018277919E+00 5.8589094953473237E+00 5.8567833643958229E+00 + 5.8546462472603871E+00 5.8524980819439483E+00 5.8503388061642188E+00 + 5.8481683573526437E+00 5.8459866726533498E+00 5.8437936889221120E+00 + 5.8415893427253094E+00 5.8393735703389069E+00 5.8371463077474237E+00 + 5.8349074906429088E+00 5.8326570544239464E+00 5.8303949341946195E+00 + 5.8281210647635397E+00 5.8258353806428289E+00 5.8235378160471383E+00 + 5.8212283048926707E+00 5.8189067807961887E+00 5.8165731770740603E+00 + 5.8142274267412777E+00 5.8118694625105167E+00 5.8094992167911785E+00 + 5.8071166216884462E+00 5.8047216090023435E+00 5.8023141102268223E+00 + 5.7998940565488200E+00 5.7974613788473652E+00 5.7950160076926522E+00 + 5.7925578733451584E+00 5.7900869057547428E+00 5.7876030345597709E+00 + 5.7851061890862328E+00 5.7825962983468893E+00 5.7800732910404022E+00 + 5.7775370955504943E+00 5.7749876399451052E+00 5.7724248519755648E+00 + 5.7698486590757678E+00 5.7672589883613670E+00 5.7646557666289651E+00 + 5.7620389203553346E+00 5.7594083756966157E+00 5.7567640584875690E+00 + 5.7541058942407943E+00 5.7514338081459790E+00 5.7487477250691761E+00 + 5.7460475695520579E+00 5.7433332658112057E+00 5.7406047377373923E+00 + 5.7378619088949039E+00 5.7351047025208421E+00 5.7323330415244564E+00 + 5.7295468484864793E+00 5.7267460456584942E+00 5.7239305549622781E+00 + 5.7211002979892003E+00 5.7182551959996006E+00 5.7153951699221945E+00 + 5.7125201403535009E+00 5.7096300275572576E+00 5.7067247514638826E+00 + 5.7038042316699142E+00 5.7008683874375023E+00 5.6979171376938984E+00 + 5.6949504010309360E+00 5.6919680957045706E+00 5.6889701396344048E+00 + 5.6859564504032427E+00 5.6829269452566455E+00 5.6798815411025227E+00 + 5.6768201545107244E+00 5.6737427017126576E+00 5.6706490986009142E+00 + 5.6675392607289261E+00 5.6644131033106264E+00 5.6612705412201354E+00 + 5.6581114889914552E+00 5.6549358608182052E+00 5.6517435705533439E+00 + 5.6485345317089397E+00 5.6453086574559421E+00 5.6420658606239762E+00 + 5.6388060537011606E+00 5.6355291488339496E+00 5.6322350578269855E+00 + 5.6289236921429699E+00 5.6255949629025714E+00 5.6222487808843482E+00 + 5.6188850565246771E+00 5.6155036999177277E+00 5.6121046208154484E+00 + 5.6086877286275687E+00 5.6052529324216387E+00 5.6018001409230740E+00 + 5.5983292625152528E+00 5.5948402052396000E+00 5.5913328767957244E+00 + 5.5878071845415693E+00 5.5842630354935938E+00 5.5807003363269692E+00 + 5.5771189933758087E+00 5.5735189126334328E+00 5.5698999997526375E+00 + 5.5662621600460112E+00 5.5626052984862691E+00 5.5589293197066194E+00 + 5.5552341280011488E+00 5.5515196273252547E+00 5.5477857212960799E+00 + 5.5440323131930098E+00 5.5402593059581617E+00 5.5364666021969464E+00 + 5.5326541041786150E+00 5.5288217138368783E+00 5.5249693327705263E+00 + 5.5210968622441028E+00 5.5172042031885953E+00 5.5132912562021623E+00 + 5.5093579215509036E+00 5.5054040991696551E+00 5.5014296886628093E+00 + 5.4974345893051924E+00 5.4934187000429571E+00 5.4893819194945195E+00 + 5.4853241459515383E+00 5.4812452773798999E+00 5.4771452114207912E+00 + 5.4730238453917623E+00 5.4688810762878548E+00 5.4647168007827558E+00 + 5.4605309152300014E+00 5.4563233156641955E+00 5.4520938978023166E+00 + 5.4478425570450000E+00 5.4435691884779231E+00 5.4392736868731850E+00 + 5.4349559466907547E+00 5.4306158620799563E+00 5.4262533268809898E+00 + 5.4218682346265084E+00 5.4174604785432123E+00 5.4130299515535345E+00 + 5.4085765462773256E+00 5.4041001550336007E+00 5.3996006698423482E+00 + 5.3950779824263551E+00 5.3905319842131094E+00 5.3859625663367279E+00 + 5.3813696196399441E+00 5.3767530346761436E+00 5.3721127017114494E+00 + 5.3674485107268515E+00 5.3627603514203894E+00 5.3580481132093993E+00 + 5.3533116852327920E+00 5.3485509563533977E+00 5.3437658151603626E+00 + 5.3389561499715850E+00 5.3341218488362303E+00 5.3292627995372923E+00 + 5.3243788895941853E+00 5.3194700062654316E+00 5.3145360365513818E+00 + 5.3095768671969976E+00 5.3045923846946987E+00 5.2995824752872522E+00 + 5.2945470249707460E+00 5.2894859194976060E+00 5.2843990443796693E+00 + 5.2792862848913416E+00 5.2741475260727873E+00 5.2689826527332109E+00 + 5.2637915494541749E+00 5.2585741005930116E+00 5.2533301902862686E+00 + 5.2480597024532489E+00 5.2427625207995900E+00 5.2374385288209382E+00 + 5.2320876098066602E+00 5.2267096468436529E+00 5.2213045228201995E+00 + 5.2158721204299114E+00 5.2104123221757241E+00 5.2049250103739864E+00 + 5.1994100671585954E+00 5.1938673744852313E+00 5.1882968141356409E+00 + 5.1826982677220172E+00 5.1770716166914390E+00 5.1714167423303836E+00 + 5.1657335257693369E+00 5.1600218479874611E+00 5.1542815898173444E+00 + 5.1485126319498331E+00 5.1427148549389408E+00 5.1368881392068415E+00 + 5.1310323650489416E+00 5.1251474126390280E+00 5.1192331620345106E+00 + 5.1132894931817310E+00 5.1073162859213834E+00 5.1013134199939865E+00 + 5.0952807750454658E+00 5.0892182306328158E+00 5.0831256662298383E+00 + 5.0770029612329974E+00 5.0708499949673245E+00 5.0646666466924515E+00 + 5.0584527956086971E+00 5.0522083208632829E+00 5.0459331015566153E+00 + 5.0396270167486641E+00 5.0332899454654427E+00 5.0269217667055797E+00 + 5.0205223594469839E+00 5.0140916026536066E+00 5.0076293752823062E+00 + 5.0011355562897961E+00 4.9946100246397114E+00 4.9880526593097585E+00 + 4.9814633392989762E+00 4.9748419436350906E+00 4.9681883513819756E+00 + 4.9615024416472169E+00 4.9547840935897787E+00 4.9480331864277751E+00 + 4.9412495994463441E+00 4.9344332120056302E+00 4.9275839035488849E+00 + 4.9207015536106482E+00 4.9137860418250723E+00 4.9068372479343205E+00 + 4.8998550517971093E+00 4.8928393333973386E+00 4.8857899728528400E+00 + 4.8787068504242521E+00 4.8715898465239764E+00 4.8644388417252920E+00 + 4.8572537167715462E+00 4.8500343525854825E+00 4.8427806302786829E+00 + 4.8354924311611249E+00 4.8281696367508538E+00 4.8208121287837864E+00 + 4.8134197892236239E+00 4.8059925002718851E+00 4.7985301443780788E+00 + 4.7910326042499687E+00 4.7834997628639995E+00 4.7759315034758059E+00 + 4.7683277096308876E+00 4.7606882651753795E+00 4.7530130542669644E+00 + 4.7453019613859020E+00 4.7375548713462052E+00 4.7297716693069232E+00 + 4.7219522407835681E+00 4.7140964716596709E+00 4.7062042481984596E+00 + 4.6982754570546819E+00 4.6903099852865564E+00 4.6823077203678505E+00 + 4.6742685502001047E+00 4.6661923631249778E+00 4.6580790479367433E+00 + 4.6499284938949090E+00 4.6417405907369860E+00 4.6335152286913788E+00 + 4.6252522984904312E+00 4.6169516913836013E+00 4.6086132991507869E+00 + 4.6002370141157707E+00 4.5918227291598273E+00 4.5833703377354702E+00 + 4.5748797338803202E+00 4.5663508122311507E+00 4.5577834680380436E+00 + 4.5491775971787103E+00 4.5405330961729531E+00 4.5318498621972649E+00 + 4.5231277930995830E+00 4.5143667874141897E+00 4.5055667443767549E+00 + 4.4967275639395243E+00 4.4878491467866670E+00 4.4789313943497566E+00 + 4.4699742088234133E+00 4.4609774931810939E+00 4.4519411511910292E+00 + 4.4428650874322990E+00 4.4337492073110889E+00 4.4245934170770695E+00 + 4.4153976238399393E+00 4.4061617355861191E+00 4.3968856611955927E+00 + 4.3875693104589164E+00 4.3782125940943581E+00 4.3688154237652057E+00 + 4.3593777120972268E+00 4.3498993726962816E+00 4.3403803201660756E+00 + 4.3308204701261035E+00 4.3212197392296892E+00 4.3115780451822543E+00 + 4.3018953067596613E+00 4.2921714438267848E+00 4.2824063773561756E+00 + 4.2726000294469371E+00 4.2627523233437019E+00 4.2528631834557986E+00 + 4.2429325353765801E+00 4.2329603059028615E+00 4.2229464230545739E+00 + 4.2128908160945118E+00 4.2027934155482951E+00 4.1926541532244244E+00 + 4.1824729622345576E+00 4.1722497770138691E+00 4.1619845333416352E+00 + 4.1516771683619007E+00 4.1413276206043745E+00 4.1309358300054040E+00 + 4.1205017379291702E+00 4.1100252871889751E+00 4.0995064220687292E+00 + 4.0889450883445688E+00 4.0783412333066114E+00 4.0676948057809037E+00 + 4.0570057561514634E+00 4.0462740363825311E+00 4.0354996000409074E+00 + 4.0246824023185077E+00 4.0138224000549956E+00 4.0029195517606260E+00 + 3.9919738176391744E+00 3.9809851596110706E+00 3.9699535413366269E+00 + 3.9588789282394479E+00 3.9477612875299517E+00 3.9366005882290658E+00 + 3.9253968011920208E+00 3.9141498991323358E+00 3.9028598566459038E+00 + 3.8915266502352184E+00 3.8801502583337708E+00 3.8687306613305243E+00 + 3.8572678415945827E+00 3.8457617834999467E+00 3.8342124734504335E+00 + 3.8226198999046916E+00 3.8109840534013917E+00 3.7993049265844885E+00 + 3.7875825142286601E+00 3.7758168132648366E+00 3.7640078228058660E+00 + 3.7521555441722909E+00 3.7402599809182675E+00 3.7283211388575626E+00 + 3.7163390260897020E+00 3.7043136530262206E+00 3.6922450324170066E+00 + 3.6801331793767957E+00 3.6679781114117116E+00 3.6557798484459845E+00 + 3.6435384128487085E+00 3.6312538294607486E+00 3.6189261256216985E+00 + 3.6065553311969918E+00 3.5941414786050503E+00 3.5816846028445664E+00 + 3.5691847415218509E+00 3.5566419348782778E+00 3.5440562258178048E+00 + 3.5314276599345793E+00 3.5187562855406371E+00 3.5060421536936399E+00 + 3.4932853182247290E+00 3.4804858357664079E+00 3.4676437657805366E+00 + 3.4547591705863341E+00 3.4418321153885021E+00 3.4288626683053502E+00 + 3.4158509003970225E+00 3.4027968856937343E+00 3.3897007012240934E+00 + 3.3765624270434245E+00 3.3633821462621847E+00 3.3501599450743624E+00 + 3.3368959127859430E+00 3.3235901418434053E+00 3.3102427278622182E+00 + 3.2968537696553875E+00 3.2834233692619921E+00 3.2699516319757711E+00 + 3.2564386663736715E+00 3.2428845843444574E+00 3.2292895011172646E+00 + 3.2156535352901989E+00 3.2019768088588925E+00 3.1882594472450774E+00 + 3.1745015793251095E+00 3.1607033374585130E+00 3.1468648575164457E+00 + 3.1329862789101988E+00 3.1190677446195929E+00 3.1051094012213869E+00 + 3.0911113989176209E+00 3.0770738915638973E+00 3.0629970366976349E+00 + 3.0488809955662259E+00 3.0347259331551668E+00 3.0205320182160778E+00 + 3.0062994232946849E+00 2.9920283247586772E+00 2.9777189028255200E+00 + 2.9633713415901299E+00 2.9489858290524955E+00 2.9345625571451430E+00 + 2.9201017217605432E+00 2.9056035227783488E+00 2.8910681640925544E+00 + 2.8764958536384877E+00 2.8618868034196887E+00 2.8472412295346476E+00 + 2.8325593522033667E+00 2.8178413957938031E+00 2.8030875888481153E+00 + 2.7882981641087698E+00 2.7734733585444444E+00 2.7586134133757780E+00 + 2.7437185741008991E+00 2.7287890905207859E+00 2.7138252167644010E+00 + 2.6988272113136325E+00 2.6837953370279948E+00 2.6687298611691310E+00 + 2.6536310554250560E+00 2.6384991959341710E+00 2.6233345633090379E+00 + 2.6081374426598702E+00 2.5929081236177938E+00 2.5776469003578004E+00 + 2.5623540716214563E+00 2.5470299407392871E+00 2.5316748156529010E+00 + 2.5162890089367709E+00 2.5008728378197405E+00 2.4854266242061711E+00 + 2.4699506946967960E+00 2.4544453806092004E+00 2.4389110179979836E+00 + 2.4233479476745403E+00 2.4077565152264939E+00 2.3921370710367502E+00 + 2.3764899703021607E+00 2.3608155730518110E+00 2.3451142441648800E+00 + 2.3293863533881201E+00 2.3136322753528877E+00 2.2978523895917715E+00 + 2.2820470805547473E+00 2.2662167376249256E+00 2.2503617551337984E+00 + 2.2344825323760533E+00 2.2185794736238771E+00 2.2026529881408043E+00 + 2.1867034901950286E+00 2.1707313990722477E+00 2.1547371390879495E+00 + 2.1387211395991965E+00 2.1226838350158665E+00 2.1066256648113226E+00 + 2.0905470735325573E+00 2.0744485108097299E+00 2.0583304313651523E+00 + 2.0421932950216566E+00 2.0260375667103854E+00 2.0098637164779394E+00 + 1.9936722194929286E+00 1.9774635560518601E+00 1.9612382115844071E+00 + 1.9449966766579891E+00 1.9287394469817136E+00 1.9124670234096059E+00 + 1.8961799119431781E+00 1.8798786237332679E+00 1.8635636750811770E+00 + 1.8472355874390862E+00 1.8308948874097157E+00 1.8145421067452607E+00 + 1.7981777823455385E+00 1.7818024562553896E+00 1.7654166756612701E+00 + 1.7490209928870732E+00 1.7326159653891164E+00 1.7162021557503360E+00 + 1.6997801316736239E+00 1.6833504659743472E+00 1.6669137365719870E+00 + 1.6504705264809385E+00 1.6340214238004034E+00 1.6175670217034119E+00 + 1.6011079184249419E+00 1.5846447172491052E+00 1.5681780264954350E+00 + 1.5517084595042079E+00 1.5352366346208399E+00 1.5187631751793014E+00 + 1.5022887094845758E+00 1.4858138707941138E+00 1.4693392972983130E+00 + 1.4528656320999651E+00 1.4363935231927076E+00 1.4199236234384172E+00 + 1.4034565905435861E+00 1.3869930870346212E+00 1.3705337802320885E+00 + 1.3540793422238842E+00 1.3376304498373015E+00 1.3211877846100151E+00 + 1.3047520327599380E+00 1.2883238851539740E+00 1.2719040372756183E+00 + 1.2554931891914349E+00 1.2390920455163608E+00 1.2227013153778630E+00 + 1.2063217123789054E+00 1.1899539545597464E+00 1.1735987643585268E+00 + 1.1572568685706677E+00 1.1409289983070405E+00 1.1246158889509270E+00 + 1.1083182801137359E+00 1.0920369155894816E+00 1.0757725433080187E+00 + 1.0595259152870062E+00 1.0432977875826153E+00 1.0270889202389515E+00 + 1.0109000772362067E+00 9.9473202643750236E-01 9.7858553953445693E-01 + 9.6246139199142466E-01 9.4636036298844373E-01 9.3028323536284807E-01 + 9.1423079554956843E-01 8.9820383352009137E-01 8.8220314272009304E-01 + 8.6622952000571873E-01 8.5028376557853003E-01 8.3436668291908578E-01 + 8.1847907871917858E-01 8.0262176281270781E-01 7.8679554810518382E-01 + 7.7100125050187540E-01 7.5523968883457460E-01 7.3951168478700013E-01 + 7.2381806281881345E-01 7.0815965008826887E-01 6.9253727637347196E-01 + 6.7695177399226591E-01 6.6140397772072779E-01 6.4589472471028597E-01 + 6.3042485440344742E-01 6.1499520844814626E-01 5.9960663061069808E-01 + 5.8425996668737390E-01 5.6895606441458890E-01 5.5369577337769882E-01 + 5.3847994491841988E-01 5.2330943204085512E-01 5.0818508931614437E-01 + 4.9310777278572371E-01 4.7807833986321019E-01 4.6309764923489655E-01 + 4.4816656075887285E-01 4.3328593536276244E-01 4.1845663494008351E-01 + 4.0367952224522829E-01 3.8895546078706944E-01 3.7428531472118387E-01 + 3.5966994874070518E-01 3.4511022796579804E-01 3.3060701783175367E-01 + 3.1616118397571291E-01 3.0177359212200838E-01 2.8744510796613215E-01 + 2.7317659705732056E-01 2.5896892467976285E-01 2.4482295573242305E-01 + 2.3073955460748202E-01 2.1671958506738923E-01 2.0276391012052822E-01 + 1.8887339189548788E-01 1.7504889151394037E-01 1.6129126896211929E-01 + 1.4760138296089739E-01 1.3398009083445847E-01 1.2042824837756161E-01 + 1.0694670972139511E-01 9.3536327198015440E-02 8.0197951203372170E-02 + 6.6932430058915401E-02 5.3740609871787082E-02 4.0623334393596083E-02 + 2.7581444877780789E-02 1.4615779935562845E-02 1.7271753904995288E-03 + -1.1083535868356302E-02 -2.3815524034675965E-02 -3.6467962534438410E-02 + -4.9040028176857660E-02 -6.1530901306629006E-02 -7.3939765957465334E-02 + -8.6265810006886851E-02 -9.8508225332223781E-02 -1.1066620796778311E-01 + -1.2273895826312219E-01 -1.3472568104236718E-01 -1.4662558576450033E-01 + -1.5843788668453671E-01 -1.7016180301549447E-01 -1.8179655909105991E-01 + -1.9334138452882832E-01 -2.0479551439400115E-01 -2.1615818936339715E-01 + -2.2742865588963468E-01 -2.3860616636531851E-01 -2.4968997928706688E-01 + -2.6067935941918841E-01 -2.7157357795682058E-01 -2.8237191268832412E-01 + -2.9307364815671827E-01 -3.0367807581994166E-01 -3.1418449420970435E-01 + -3.2459220908870789E-01 -3.3490053360598970E-01 -3.4510878845016585E-01 + -3.5521630200032878E-01 -3.6522241047438353E-01 -3.7512645807458689E-01 + -3.8492779713009201E-01 -3.9462578823628824E-01 -4.0421980039076627E-01 + -4.1370921112573633E-01 -4.2309340663676964E-01 -4.3237178190774650E-01 + -4.4154374083192499E-01 -4.5060869632908684E-01 -4.5956607045873205E-01 + -4.6841529452935332E-01 -4.7715580920383460E-01 -4.8578706460108728E-01 + -4.9430852039404355E-01 -5.0271964590420537E-01 -5.1101992019295250E-01 + -5.1920883214988645E-01 -5.2728588057849712E-01 -5.3525057427950395E-01 + -5.4310243213223264E-01 -5.5084098317444785E-01 -5.5846576668106240E-01 + -5.6597633224219623E-01 -5.7337223984105867E-01 -5.8065305993214700E-01 + -5.8781837352027466E-01 -5.9486777224092502E-01 -6.0180085844244458E-01 + -6.0861724527055749E-01 -6.1531655675568986E-01 -6.2189842790353467E-01 + -6.2836250478929079E-01 -6.3470844465593568E-01 -6.4093591601687006E-01 + -6.4704459876319198E-01 -6.5303418427582482E-01 -6.5890437554262360E-01 + -6.6465488728054356E-01 -6.7028544606284701E-01 -6.7579579045127669E-01 + -6.8118567113302020E-01 -6.8645485106221449E-01 -6.9160310560568428E-01 + -6.9663022269249220E-01 -7.0153600296686225E-01 -7.0632025994392489E-01 + -7.1098282016772540E-01 -7.1552352337085712E-01 -7.1994222263507612E-01 + -7.2423878455220547E-01 -7.2841308938466021E-01 -7.3246503122488194E-01 + -7.3639451815303092E-01 -7.4020147239225742E-01 -7.4388583046095313E-01 + -7.4744754332138330E-01 -7.5088657652416357E-01 -7.5420291034811138E-01 + -7.5739653993502243E-01 -7.6046747541902304E-01 -7.6341574205016693E-01 + -7.6624138031204625E-01 -7.6894444603319911E-01 -7.7152501049219768E-01 + -7.7398316051630300E-01 -7.7631899857366538E-01 -7.7853264285905033E-01 + -7.8062422737314086E-01 -7.8259390199546541E-01 -7.8444183255105482E-01 + -7.8616820087093320E-01 -7.8777320484656232E-01 -7.8925705847839034E-01 + -7.9061999191862498E-01 -7.9186225150839684E-01 -7.9298409980943341E-01 + -7.9398581563040138E-01 -7.9486769404802915E-01 -7.9563004642315172E-01 + -7.9627320041177041E-01 -7.9679749997124971E-01 -7.9720330536172279E-01 + -7.9749099314279948E-01 -7.9766095616562926E-01 -7.9771360356038923E-01 + -7.9764936071922377E-01 -7.9746866927468141E-01 -7.9717198707367087E-01 + -7.9675978814693738E-01 -7.9623256267408671E-01 -7.9559081694413258E-01 + -7.9483507331158376E-01 -7.9396587014803299E-01 -7.9298376178926200E-01 + -7.9188931847781097E-01 -7.9068312630102167E-01 -7.8936578712450689E-01 + -7.8793791852104600E-01 -7.8640015369486338E-01 -7.8475314140129027E-01 + -7.8299754586176895E-01 -7.8113404667420749E-01 -7.7916333871864651E-01 + -7.7708613205824961E-01 -7.7490315183560010E-01 -7.7261513816429828E-01 + -7.7022284601587809E-01 -7.6772704510202716E-01 -7.6512851975214780E-01 + -7.6242806878624769E-01 -7.5962650538320997E-01 -7.5672465694444258E-01 + -7.5372336495296155E-01 -7.5062348482792196E-01 -7.4742588577466096E-01 + -7.4413145063027231E-01 -7.4074107570479009E-01 -7.3725567061800901E-01 + -7.3367615813201981E-01 -7.3000347397951615E-01 -7.2623856668793008E-01 + -7.2238239739948695E-01 -7.1843593968722763E-01 -7.1440017936710076E-01 + -7.1027611430618320E-01 -7.0606475422712900E-01 -7.0176712050891810E-01 + -6.9738424598400828E-01 -6.9291717473196424E-01 -6.8836696186967450E-01 + -6.8373467333823434E-01 -6.7902138568660686E-01 -6.7422818585214639E-01 + -6.6935617093809707E-01 -6.6440644798816240E-01 -6.5938013375824123E-01 + -6.5427835448545346E-01 -6.4910224565453489E-01 -6.4385295176173130E-01 + -6.3853162607627689E-01 -6.3313943039958243E-01 -6.2767753482222211E-01 + -6.2214711747884432E-01 -6.1654936430109708E-01 -6.1088546876869265E-01 + -6.0515663165870004E-01 -5.9936406079319404E-01 -5.9350897078534826E-01 + -5.8759258278409343E-01 -5.8161612421743780E-01 -5.7558082853456105E-01 + -5.6948793494678762E-01 -5.6333868816753618E-01 -5.5713433815135938E-01 + -5.5087613983216621E-01 -5.4456535286073871E-01 -5.3820324134163355E-01 + -5.3179107356957755E-01 -5.2533012176544458E-01 -5.1882166181192391E-01 + -5.1226697298895918E-01 -5.0566733770906913E-01 -4.9902404125262562E-01 + -4.9233837150319532E-01 -4.8561161868301883E-01 -4.7884507508873009E-01 + -4.7204003482738460E-01 -4.6519779355289592E-01 -4.5831964820295207E-01 + -4.5140689673649215E-01 -4.4446083787182722E-01 -4.3748277082547027E-01 + -4.3047399505176231E-01 -4.2343580998335034E-01 -4.1636951477260131E-01 + -4.0927640803400511E-01 -4.0215778758764370E-01 -3.9501495020377742E-01 + -3.8784919134861889E-01 -3.8066180493134177E-01 -3.7345408305239036E-01 + -3.6622731575313416E-01 -3.5898279076692419E-01 -3.5172179327159886E-01 + -3.4444560564348009E-01 -3.3715550721291504E-01 -3.2985277402139179E-01 + -3.2253867858028223E-01 -3.1521448963123738E-01 -3.0788147190828236E-01 + -3.0054088590163330E-01 -2.9319398762327920E-01 -2.8584202837434725E-01 + -2.7848625451428982E-01 -2.7112790723191077E-01 -2.6376822231826258E-01 + -2.5640842994143181E-01 -2.4904975442323848E-01 -2.4169341401786867E-01 + -2.3434062069245640E-01 -2.2699257990963964E-01 -2.1965049041209916E-01 + -2.1231554400910482E-01 -2.0498892536507807E-01 -1.9767181179019233E-01 + -1.9036537303301990E-01 -1.8307077107524672E-01 -1.7578915992846403E-01 + -1.6852168543305762E-01 -1.6126948505920599E-01 -1.5403368771000689E-01 + -1.4681541352674701E-01 -1.3961577369633629E-01 -1.3243587026092274E-01 + -1.2527679592971219E-01 -1.1813963389301463E-01 -1.1102545763854084E-01 + -1.0393533076997921E-01 -9.6870306827878935E-02 -8.9831429112874991E-02 + -8.2819730511286674E-02 -7.5836233323130858E-02 -6.8881949092588407E-02 + -6.1957878440970969E-02 -5.5065010902234375E-02 -4.8204324761092612E-02 + -4.1376786893786960E-02 -3.4583352611571812E-02 -2.7824965506980000E-02 + -2.1102557302937589E-02 -1.4417047704799707E-02 -7.7693442553853015E-03 + -1.1603421930915859E-03 5.4090756868262185E-03 1.1938039167720321E-02 + 1.8425690743667685E-02 2.4871185748142340E-02 3.1273692479141510E-02 + 3.7632392320663781E-02 4.3946479860431827E-02 5.0215163003750500E-02 + 5.6437663083393382E-02 6.2613214965403077E-02 6.8741067150695501E-02 + 7.4820481872359096E-02 8.0850735188533376E-02 8.6831117070764310E-02 + 9.2760931487728140E-02 9.8639496484222836E-02 1.0446614425533217E-01 + 1.1024022121567037E-01 1.1596108806362661E-01 1.2162811984053279E-01 + 1.2724070598469270E-01 1.3279825038021648E-01 1.3830017140062248E-01 + 1.4374590194717615E-01 1.4913488948195808E-01 1.5446659605566104E-01 + 1.5974049833014353E-01 1.6495608759577723E-01 1.7011286978365350E-01 + 1.7521036547273189E-01 1.8024810989203624E-01 1.8522565291803225E-01 + 1.9014255906733862E-01 1.9499840748495914E-01 1.9979279192823912E-01 + 2.0452532074679008E-01 2.0919561685864277E-01 2.1380331772293024E-01 + 2.1834807530942249E-01 2.2282955606527380E-01 2.2724744087936755E-01 + 2.3160142504468526E-01 2.3589121821914741E-01 2.4011654438541954E-01 + 2.4427714181020016E-01 2.4837276300355018E-01 2.5240317467885470E-01 + 2.5636815771404170E-01 2.6026750711472735E-01 2.6410103197998291E-01 + 2.6786855547146837E-01 2.7156991478670339E-01 2.7520496113729609E-01 + 2.7877355973297668E-01 2.8227558977232725E-01 2.8571094444112638E-01 + 2.8907953091926553E-01 2.9238127039720851E-01 2.9561609810299855E-01 + 2.9878396334080887E-01 3.0188482954204815E-01 3.0491867432999165E-01 + 3.0788548959888218E-01 3.1078528160836960E-01 3.1361807109404782E-01 + 3.1638389339472317E-01 3.1908279859682831E-01 3.2171485169617398E-01 + 3.2428013277688328E-01 3.2677873720697870E-01 3.2921077584958375E-01 + 3.3157637528813438E-01 3.3387567806327972E-01 3.3610884291836490E-01 + 3.3827604504943320E-01 3.4037747635466192E-01 3.4241334567696091E-01 + 3.4438387903221696E-01 3.4628931981431832E-01 3.4812992896670408E-01 + 3.4990598510881299E-01 3.5161778460446047E-01 3.5326564155801016E-01 + 3.5484988772321485E-01 3.5637087230899400E-01 3.5782896166619765E-01 + 3.5922453883979877E-01 3.6055800297199592E-01 3.6182976854357446E-01 + 3.6304026444361215E-01 3.6418993286132328E-01 3.6527922799849716E-01 + 3.6630861460658770E-01 3.6727856635893114E-01 3.6818956407557668E-01 + 3.6904209382560627E-01 3.6983664493917034E-01 3.7057370796836786E-01 + 3.7125377264211890E-01 3.7187732586477934E-01 3.7244484981103776E-01 + 3.7295682017015985E-01 3.7341370459073997E-01 3.7381596137258255E-01 + 3.7416403844532298E-01 3.7445837266411869E-01 3.7469938944172626E-01 + 3.7488750272407118E-01 3.7502311530381427E-01 3.7510661945410673E-01 + 3.7513839785353176E-01 3.7511882476375413E-01 3.7504826741412567E-01 + 3.7492708754282184E-01 3.7475564304201336E-01 3.7453428965512109E-01 + 3.7426338267699955E-01 3.7394327861264626E-01 3.7357433675616331E-01 + 3.7315692065876405E-01 3.7269139946204627E-01 3.7217814908016478E-01 + 3.7161755322148438E-01 3.7101000424656122E-01 3.7035590386462364E-01 + 3.6965566367509939E-01 3.6890970556406782E-01 3.6811846196786718E-01 + 3.6728237601759117E-01 3.6640190157891089E-01 3.6547750320175804E-01 + 3.6450965599397100E-01 3.6349884543223765E-01 3.6244556712260811E-01 + 3.6135032652166349E-01 3.6021363862812283E-01 3.5903602765339970E-01 + 3.5781802667834456E-01 3.5656017730224071E-01 3.5526302928900555E-01 + 3.5392714021458049E-01 3.5255307511861950E-01 3.5114140616280520E-01 + 3.4969271229749149E-01 3.4820757893780063E-01 3.4668659764986026E-01 + 3.4513036584746598E-01 3.4353948649917793E-01 3.4191456784559965E-01 + 3.4025622312642678E-01 3.3856507031669303E-01 3.3684173187156902E-01 + 3.3508683447899096E-01 3.3330100881938063E-01 3.3148488933168313E-01 + 3.2963911398497853E-01 3.2776432405493061E-01 3.2586116390437936E-01 + 3.2393028076741121E-01 3.2197232453629909E-01 3.1998794755075832E-01 + 3.1797780438900014E-01 3.1594255166014362E-01 3.1388284779757819E-01 + 3.1179935285294841E-01 3.0969272829045730E-01 3.0756363678125942E-01 + 3.0541274199774643E-01 3.0324070840758849E-01 3.0104820106741664E-01 + 2.9883588541609191E-01 2.9660442706752504E-01 2.9435449160306043E-01 + 2.9208674436344656E-01 2.8980185024045801E-01 2.8750047346825525E-01 + 2.8518327741457478E-01 2.8285092437187748E-01 2.8050407534858307E-01 + 2.7814338986054343E-01 2.7576952572290186E-01 2.7338313884250853E-01 + 2.7098488301105433E-01 2.6857540969910371E-01 2.6615536785119065E-01 + 2.6372540368216019E-01 2.6128616047492431E-01 2.5883827837981122E-01 + 2.5638239421566794E-01 2.5391914127288651E-01 2.5144914911851735E-01 + 2.4897304340361640E-01 2.4649144567298312E-01 2.4400497317742476E-01 + 2.4151423868869309E-01 2.3901985031720935E-01 2.3652241133271021E-01 + 2.3402251998791959E-01 2.3152076934536275E-01 2.2901774710741071E-01 + 2.2651403544965432E-01 2.2401021085768560E-01 2.2150684396736958E-01 + 2.1900449940866726E-01 2.1650373565307732E-01 2.1400510486474764E-01 + 2.1150915275530974E-01 2.0901641844247040E-01 2.0652743431240039E-01 + 2.0404272588595182E-01 2.0156281168872148E-01 1.9908820312498515E-01 + 1.9661940435551123E-01 1.9415691217927006E-01 1.9170121591903608E-01 + 1.8925279731089037E-01 1.8681213039761738E-01 1.8437968142599673E-01 + 1.8195590874797643E-01 1.7954126272572285E-01 1.7713618564053374E-01 + 1.7474111160560649E-01 1.7235646648264344E-01 1.6998266780228380E-01 + 1.6762012468835225E-01 1.6526923778590480E-01 1.6293039919306676E-01 + 1.6060399239664794E-01 1.5829039221153063E-01 1.5598996472381893E-01 + 1.5370306723774835E-01 1.5143004822635059E-01 1.4917124728587902E-01 + 1.4692699509399104E-01 1.4469761337170403E-01 1.4248341484912241E-01 + 1.4028470323473363E-01 1.3810177318940692E-01 1.3593491030288052E-01 + 1.3378439107498913E-01 1.3165048290054196E-01 1.2953344405810657E-01 + 1.2743352370272421E-01 1.2535096186259628E-01 1.2328598943977258E-01 + 1.2123882821487778E-01 1.1920969085591523E-01 1.1719878093118648E-01 + 1.1520629292636154E-01 1.1323241226574013E-01 1.1127731533773703E-01 + 1.0934116952462972E-01 1.0742413323659551E-01 1.0552635595006880E-01 + 1.0364797825044489E-01 1.0178913187914727E-01 9.9949939785076367E-02 + 9.8130516180448130E-02 9.6330966601027745E-02 9.4551387970753076E-02 + 9.2791868670738839E-02 9.1052488612642909E-02 8.9333319316369716E-02 + 8.7634423992074217E-02 8.5955857626424756E-02 8.4297667073071278E-02 + 8.2659891147259579E-02 8.1042560724518778E-02 7.9445698843342946E-02 + 7.7869320811779802E-02 7.6313434317825654E-02 7.4778039543522259E-02 + 7.3263129282638173E-02 7.1768689061813218E-02 7.0294697265031930E-02 + 6.8841125261288674E-02 6.7407937535296183E-02 6.5995091821087426E-02 + 6.4602539238349604E-02 6.3230224431325477E-02 6.1878085710115383E-02 + 6.0546055194204716E-02 5.9234058958039244E-02 5.7942017178471000E-02 + 5.6669844283888993E-02 5.5417449104854404E-02 5.4184735026052949E-02 + 5.2971600139380216E-02 5.1777937397976592E-02 5.0603634771025571E-02 + 4.9448575399135317E-02 4.8312637750121915E-02 4.7195695775018434E-02 + 4.6097619064133608E-02 4.5018273002991001E-02 4.3957518927980825E-02 + 4.2915214281563856E-02 4.1891212766868073E-02 4.0885364501527785E-02 + 3.9897516170617139E-02 3.8927511178538529E-02 3.7975189799729442E-02 + 3.7040389328059628E-02 3.6122944224796456E-02 3.5222686265021175E-02 + 3.4339444682387206E-02 3.3473046312116617E-02 3.2623315732139009E-02 + 3.1790075402281404E-02 3.0973145801426415E-02 3.0172345562560623E-02 + 2.9387491605643242E-02 2.8618399268229060E-02 2.7864882433787801E-02 + 2.7126753657666775E-02 2.6403824290650413E-02 2.5695904600074461E-02 + 2.5002803888459418E-02 2.4324330609632776E-02 2.3660292482313581E-02 + 2.3010496601139033E-02 2.2374749545116365E-02 2.1752857483488690E-02 + 2.1144626279006130E-02 2.0549861588599179E-02 1.9968368961453355E-02 + 1.9399953934489345E-02 1.8844422125254348E-02 1.8301579322234845E-02 + 1.7771231572602849E-02 1.7253185267411361E-02 1.6747247224255909E-02 + 1.6253224767422497E-02 1.5770925805543602E-02 1.5300158906786394E-02 + 1.4840733371598230E-02 1.4392459303036799E-02 1.3955147674713642E-02 + 1.3528610396380408E-02 1.3112660377189115E-02 1.2707111586658128E-02 + 1.2311779113377041E-02 1.1926479221483582E-02 1.1551029404947162E-02 + 1.1185248439693651E-02 1.0828956433607031E-02 1.0481974874443118E-02 + 1.0144126675691796E-02 9.8152362204236062E-03 9.4951294031574689E-03 + 9.1836336697856680E-03 8.8805780555927024E-03 8.5857932214047430E-03 + 8.2991114879057502E-03 8.0203668681568668E-03 7.7493950983550247E-03 + 7.4860336668669744E-03 7.2301218415741497E-03 6.9815006955640437E-03 + 6.7400131312030506E-03 6.5055039026257859E-03 6.2778196366750369E-03 + 6.0568088523265786E-03 5.8423219786323324E-03 5.6342113712151993E-03 + 5.4323313273480847E-03 5.2365380996494213E-03 5.0466899084270515E-03 + 4.8626469527014568E-03 4.6842714199392512E-03 4.5114274945269525E-03 + 4.3439813650148536E-03 4.1818012301599030E-03 4.0247573037962793E-03 + 3.8727218185616009E-03 3.7255690285063377E-03 3.5831752106132452E-03 + 3.4454186652533329E-03 3.3121797156041902E-03 3.1833407060561751E-03 + 3.0587859996312455E-03 2.9384019744389373E-03 2.8220770191935427E-03 + 2.7097015278159178E-03 2.6011678931431919E-03 2.4963704997690945E-03 + 2.3952057160373922E-03 2.2975718852104635E-03 2.2033693158348766E-03 + 2.1125002713254788E-03 2.0248689587893409E-03 1.9403815171106071E-03 + 1.8589460043171903E-03 1.7804723842500740E-03 1.7048725125558956E-03 + 1.6320601220233104E-03 1.5619508072836482E-03 1.4944620088963234E-03 + 1.4295129968393534E-03 1.3670248534254608E-03 1.3069204556641326E-03 + 1.2491244570901595E-03 1.1935632690791057E-03 1.1401650416703107E-03 + 1.0888596439180432E-03 1.0395786437915277E-03 9.9225528764460133E-04 + 9.4682447927588208E-04 9.0322275860036641E-04 8.6138827995348936E-04 + 8.2126079004867967E-04 7.8278160560957082E-04 7.4589359069801326E-04 + 7.1054113375911639E-04 6.7667012440450795E-04 6.4422792995504107E-04 + 6.1316337176414986E-04 5.8342670134298364E-04 5.5496957630842849E-04 + 5.2774503617499945E-04 5.0170747801151351E-04 4.7681263198327616E-04 + 4.5301753680038838E-04 4.3028051509256897E-04 4.0856114873069697E-04 + 3.8782025411500788E-04 3.6801985744964034E-04 3.4912317002291633E-04 + 3.3109456351244031E-04 3.1389954533373111E-04 2.9750473405075787E-04 + 2.8187783486635344E-04 2.6698761521004881E-04 2.5280388044045791E-04 + 2.3929744967886722E-04 2.2644013179022306E-04 2.1420470152719602E-04 + 2.0256487585250889E-04 1.9149529045417064E-04 1.8097147646773168E-04 + 1.7096983741910548E-04 1.6146762640094792E-04 1.5244292349500142E-04 + 1.4387461345223470E-04 1.3574236364200673E-04 1.2802660228089516E-04 + 1.2070849695122968E-04 1.1376993341875733E-04 1.0719349475827530E-04 + 1.0096244079545283E-04 9.5060687872468947E-05 8.9472788944486157E-05 + 8.4183914013391317E-05 7.9179830904641134E-05 7.4446886392469798E-05 + 6.9971987678136243E-05 6.5742584225327223E-05 6.1746649956270270E-05 + 5.7972665811569290E-05 5.4409602676235239E-05 5.1046904673866655E-05 + 4.7874472830421825E-05 4.4882649108531982E-05 4.2062200812819727E-05 + 3.9404305366223584E-05 3.6900535456878180E-05 3.4542844554662400E-05 + 3.2323552796111676E-05 3.0235333235986203E-05 2.8271198463403420E-05 + 2.6424487580072196E-05 2.4688853537817368E-05 2.3058250832247671E-05 + 2.1526923549104922E-05 2.0089393759531566E-05 1.8740450260213381E-05 + 1.7475137654088491E-05 1.6288745767067381E-05 1.5176799395976919E-05 + 1.4135048382728719E-05 1.3159458009515094E-05 1.2246199709654053E-05 + 1.1391642088541258E-05 1.0592342249016768E-05 9.8450374153214597E-06 + 9.1466368496984227E-06 8.4942140555912017E-06 7.8849992613002559E-06 + 7.3163721778833013E-06 6.7858550250216395E-06 6.2911058185253090E-06 + 5.8299119131117188E-06 5.4001837940672865E-06 4.9999491113869468E-06 + 4.6273469499835142E-06 4.2806223295662197E-06 3.9581209278047055E-06 + 3.6582840204219641E-06 3.3796436318952128E-06 3.1208178904882841E-06 + 2.8805065813912448E-06 2.6574868918030837E-06 2.4506093418601655E-06 + 2.2587938953868652E-06 2.0810262445243578E-06 1.9163542623790933E-06 + 1.7638846179230012E-06 1.6227795474729753E-06 1.4922537771768332E-06 + 1.3715715910367539E-06 1.2600440391084316E-06 1.1570262806244883E-06 + 1.0619150569039196E-06 9.7414628902482803E-07 8.9319279535530670E-07 + 8.1856212415655098E-07 7.4979449659296049E-07 6.8646085560564274E-07 + 6.2816101622820668E-07 5.7452191304659109E-07 5.2519594062783041E-07 + 4.7985938286567433E-07 4.3821092731373908E-07 3.9997026069905088E-07 + 3.6487674193032647E-07 3.3268814903584406E-07 3.0317949658510417E-07 + 2.7614192026656530E-07 2.5138162541029978E-07 2.2871889635938183E-07 + 2.0798716370699366E-07 1.8903212652755039E-07 1.7171092683943471E-07 + 1.5589137364413251E-07 1.4145121399154547E-07 1.2827744862399238E-07 + 1.1626568985177247E-07 1.0531955941113889E-07 9.5350124151026560E-08 + 8.6275367487893947E-08 7.8019694658499581E-08 7.0513469888349121E-08 + 6.3692583678872339E-08 5.7498048499134750E-08 5.1875621248034629E-08 + 4.6775450930490751E-08 4.2151750066104766E-08 3.7962488421189075E-08 + 3.4169107724913789E-08 3.0736256097663951E-08 2.7631540984546527E-08 + 2.4825299449371908E-08 2.2290384744400311E-08 2.0001968128724705E-08 + 1.7937354963408204E-08 1.6075814164446492E-08 1.4398420145338171E-08 + 1.2887906429565345E-08 1.1528530159670474E-08 1.0305946773915107E-08 + 9.2070941637783925E-09 8.2200856658572543E-09 7.3341112801211769E-09 + 6.5393465430138397E-09 5.8268685186383257E-09 5.1885784042740263E-09 + 4.6171302778088802E-09 4.1058655443913579E-09 3.6487526677699984E-09 + 3.2403317984547185E-09 2.8756639360597290E-09 2.5502842870315737E-09 + 2.2601595014827089E-09 2.0016484940980224E-09 1.7714665741122185E-09 + 1.5666526282241120E-09 1.3845391180718433E-09 1.2227246705916393E-09 + 1.0790490552720522E-09 9.5157035704372618E-10 8.3854416735907943E-10 + 7.3840462896210526E-10 6.4974718197004179E-10 5.7131287022914809E-10 + 5.0197407750730069E-10 4.4072157298726571E-10 3.8665275473646473E-10 + 3.3896098844427696E-10 2.9692594764065247E-10 2.5990486281753339E-10 + 2.2732460510687053E-10 1.9867461773538052E-10 1.7350010607683959E-10 + 1.5139692715349324E-10 1.3200541973483501E-10 1.1500648562049460E-10 + 1.0011673769947320E-10 8.7084876540957104E-11 7.5688235104038572E-11 + 6.5729674961916762E-11 5.7034800548692056E-11 4.9449460892049389E-11 + 4.2837511010356245E-11 3.7078807648283268E-11 3.2067416316671499E-11 + 2.7710008704807747E-11 2.3924431460388210E-11 2.0638429097272537E-11 + 1.7788505405842458E-11 1.5318909216794211E-11 1.3180731717186941E-11 + 1.1331103747499155E-11 9.7324826296148722E-12 8.3520190967287314E-12 + 7.1609958251954245E-12 6.1343299128473251E-12 5.2501324152347243E-12 + 4.4893187470652930E-12 3.8352643868257210E-12 3.2735008937016572E-12 + 2.7914477626021052E-12 2.3781761100769073E-12 2.0242006055630644E-12 + 1.7212964427356935E-12 1.4623384884817912E-12 1.2411600555718690E-12 + 1.0524290226092287E-12 8.9153927416582212E-13 7.5451565780307473E-13 + 6.3793085533990228E-13 5.3883274547575403E-13 4.5468099572088837E-13 + 3.8329176536952351E-13 3.2278952965174252E-13 2.7156514974437716E-13 + 2.2823941539877374E-13 1.9163137781625262E-13 1.6073087121534112E-13 + 1.3467469332632472E-13 1.1272597875792438E-13 9.4256355657697470E-14 + 7.8730526099492276E-14 6.5692954870427299E-14 5.4756390420362745E-14 + 4.5591976240371581E-14 3.7920741358234255E-14 3.1506285431960765E-14 + 2.6148497493505416E-14 2.1678168108592576E-14 1.7952372900976456E-14 + 1.4850521331960408E-14 1.2270978588761592E-14 1.0128180650306270E-14 + 8.3501732728642111E-15 6.8765149543388258E-15 5.6564920582779720E-15 + 4.6476013516171733E-15 3.8142613621965567E-15 3.1267193068422215E-15 + 2.5601249787378038E-15 2.0937470026385728E-15 1.7103103464284164E-15 + 1.3954369864904722E-15 1.1371742229666506E-15 9.2559738246943220E-16 + 7.5247557690608138E-16 6.1099084872649879E-16 4.9550246094844452E-16 + 4.0134931607181834E-16 3.2468453881259331E-16 2.6233715730702092E-16 + 2.1169658681586671E-16 1.7061627704678078E-16 1.3733344468559894E-16 + 1.1040229017906838E-16 8.8638504016713263E-17 7.1073212903005558E-17 + 5.6914809090244910E-17 4.5517354346844063E-17 3.6354460103006776E-17 + 2.8997722870792673E-17 2.3098943910640773E-17 1.8375488457553514E-17 + 1.4598246179464918E-17 1.1581743957012079E-17 9.1760371446373234E-18 + 7.2600684131293224E-18 5.7362359709175300E-18 4.5259570215844707E-18 + 3.5660491025136888E-18 2.8057826218213331E-18 2.2044834482831731E-18 + 1.7295856413405922E-18 1.3550520361063883E-18 1.0600950125720400E-18 + 8.2814187668245900E-19 6.4599928218335446E-19 5.0317937766897144E-19 + 3.9135716779934920E-19 3.0393417797911789E-19 2.3568811418046906E-19 + 1.8249198624021501E-19 1.4108925737299159E-19 1.0891411424181914E-19 + 8.3948019939023588E-20 6.4605398972062237E-20 4.9642677004016060E-20 + 3.8086015056232061E-20 2.9173984701820618E-20 2.2312165848612380E-20 + 1.7037243623548357E-20 1.2988661591342931E-20 9.8862763711685991E-21 + 7.5127711057753555E-21 5.6998364584047072E-21 4.3173295155803565E-21 + 3.2647826558734104E-21 2.4647638350037976E-21 1.8576931154416122E-21 + 1.3978027270205195E-21 1.0499936078823226E-21 7.8739357591359734E-22 + 5.8946370984893882E-22 4.4053234358847232E-22 3.2866203991125513E-22 + 2.4477540992456971E-22 1.8198180370082833E-22 1.3505961281213391E-22 + 1.0005891341248123E-22 7.3997010383873218E-23 5.4625573461802074E-23 + 4.0252846326123580E-23 2.9608145758217755E-23 2.1738776800717846E-23 + 1.5931750510148387E-23 1.1654444613896730E-23 8.5097053641236408E-24 + 6.2019384940846436E-24 4.5115469529572600E-24 3.2756966687700133E-24 + 2.3738708822720048E-24 1.7170412984562878E-24 1.2395658641317878E-24 + 8.9313817014416571E-25 6.4227762658675727E-25 4.6097453394241226E-25 + 3.3019913779897522E-25 2.3605577537632834E-25 1.6841773511834795E-25 + 1.1991963066581855E-25 8.5215137177525842E-26 6.0431298120931700E-26 + 4.2768151486062725E-26 3.0205570548589365E-26 2.1289046266522078E-26 + 1.4973471200314543E-26 1.0509456223476971E-26 7.3607804603057681E-27 + 5.1445526992510241E-27 3.5879254172377923E-27 2.4969079643699682E-27 + 1.7339054325257565E-27 1.2014518291543211E-27 8.3069138318800049E-28 + + + 2.9753103256494778E-01 2.9753103256577718E-01 2.9753103256828806E-01 + 2.9753103257251001E-01 2.9753103257847374E-01 2.9753103258621100E-01 + 2.9753103259575348E-01 2.9753103260713326E-01 2.9753103262038311E-01 + 2.9753103263553621E-01 2.9753103265262620E-01 2.9753103267168723E-01 + 2.9753103269275394E-01 2.9753103271586095E-01 2.9753103274104437E-01 + 2.9753103276833986E-01 2.9753103279778431E-01 2.9753103282941440E-01 + 2.9753103286326787E-01 2.9753103289938287E-01 2.9753103293779815E-01 + 2.9753103297855255E-01 2.9753103302168604E-01 2.9753103306723871E-01 + 2.9753103311525148E-01 2.9753103316576562E-01 2.9753103321882307E-01 + 2.9753103327446662E-01 2.9753103333273917E-01 2.9753103339368447E-01 + 2.9753103345734672E-01 2.9753103352377103E-01 2.9753103359300281E-01 + 2.9753103366508826E-01 2.9753103374007428E-01 2.9753103381800811E-01 + 2.9753103389893792E-01 2.9753103398291264E-01 2.9753103406998133E-01 + 2.9753103416019433E-01 2.9753103425360233E-01 2.9753103435025691E-01 + 2.9753103445020995E-01 2.9753103455351465E-01 2.9753103466022429E-01 + 2.9753103477039339E-01 2.9753103488407712E-01 2.9753103500133105E-01 + 2.9753103512221180E-01 2.9753103524677671E-01 2.9753103537508402E-01 + 2.9753103550719240E-01 2.9753103564316180E-01 2.9753103578305223E-01 + 2.9753103592692559E-01 2.9753103607484371E-01 2.9753103622686955E-01 + 2.9753103638306705E-01 2.9753103654350072E-01 2.9753103670823633E-01 + 2.9753103687734012E-01 2.9753103705087947E-01 2.9753103722892266E-01 + 2.9753103741153880E-01 2.9753103759879784E-01 2.9753103779077111E-01 + 2.9753103798753017E-01 2.9753103818914822E-01 2.9753103839569905E-01 + 2.9753103860725755E-01 2.9753103882389953E-01 2.9753103904570205E-01 + 2.9753103927274277E-01 2.9753103950510085E-01 2.9753103974285638E-01 + 2.9753103998609010E-01 2.9753104023488447E-01 2.9753104048932250E-01 + 2.9753104074948872E-01 2.9753104101546846E-01 2.9753104128734825E-01 + 2.9753104156521615E-01 2.9753104184916079E-01 2.9753104213927228E-01 + 2.9753104243564193E-01 2.9753104273836223E-01 2.9753104304752692E-01 + 2.9753104336323083E-01 2.9753104368557026E-01 2.9753104401464264E-01 + 2.9753104435054673E-01 2.9753104469338260E-01 2.9753104504325145E-01 + 2.9753104540025621E-01 2.9753104576450079E-01 2.9753104613609072E-01 + 2.9753104651513262E-01 2.9753104690173487E-01 2.9753104729600705E-01 + 2.9753104769806021E-01 2.9753104810800679E-01 2.9753104852596096E-01 + 2.9753104895203808E-01 2.9753104938635522E-01 2.9753104982903089E-01 + 2.9753105028018517E-01 2.9753105073993968E-01 2.9753105120841766E-01 + 2.9753105168574406E-01 2.9753105217204523E-01 2.9753105266744945E-01 + 2.9753105317208639E-01 2.9753105368608768E-01 2.9753105420958631E-01 + 2.9753105474271740E-01 2.9753105528561757E-01 2.9753105583842537E-01 + 2.9753105640128102E-01 2.9753105697432669E-01 2.9753105755770626E-01 + 2.9753105815156539E-01 2.9753105875605218E-01 2.9753105937131585E-01 + 2.9753105999750828E-01 2.9753106063478274E-01 2.9753106128329487E-01 + 2.9753106194320228E-01 2.9753106261466455E-01 2.9753106329784307E-01 + 2.9753106399290180E-01 2.9753106470000640E-01 2.9753106541932506E-01 + 2.9753106615102781E-01 2.9753106689528702E-01 2.9753106765227727E-01 + 2.9753106842217542E-01 2.9753106920516059E-01 2.9753107000141427E-01 + 2.9753107081111990E-01 2.9753107163446413E-01 2.9753107247163491E-01 + 2.9753107332282358E-01 2.9753107418822350E-01 2.9753107506803039E-01 + 2.9753107596244277E-01 2.9753107687166158E-01 2.9753107779589055E-01 + 2.9753107873533541E-01 2.9753107969020542E-01 2.9753108066071177E-01 + 2.9753108164706871E-01 2.9753108264949324E-01 2.9753108366820508E-01 + 2.9753108470342682E-01 2.9753108575538378E-01 2.9753108682430407E-01 + 2.9753108791041927E-01 2.9753108901396313E-01 2.9753109013517320E-01 + 2.9753109127428928E-01 2.9753109243155479E-01 2.9753109360721619E-01 + 2.9753109480152284E-01 2.9753109601472755E-01 2.9753109724708610E-01 + 2.9753109849885784E-01 2.9753109977030512E-01 2.9753110106169384E-01 + 2.9753110237329328E-01 2.9753110370537605E-01 2.9753110505821823E-01 + 2.9753110643209968E-01 2.9753110782730330E-01 2.9753110924411613E-01 + 2.9753111068282856E-01 2.9753111214373473E-01 2.9753111362713280E-01 + 2.9753111513332403E-01 2.9753111666261417E-01 2.9753111821531264E-01 + 2.9753111979173280E-01 2.9753112139219190E-01 2.9753112301701123E-01 + 2.9753112466651621E-01 2.9753112634103662E-01 2.9753112804090603E-01 + 2.9753112976646223E-01 2.9753113151804778E-01 2.9753113329600905E-01 + 2.9753113510069717E-01 2.9753113693246730E-01 2.9753113879167958E-01 + 2.9753114067869857E-01 2.9753114259389296E-01 2.9753114453763690E-01 + 2.9753114651030882E-01 2.9753114851229173E-01 2.9753115054397400E-01 + 2.9753115260574842E-01 2.9753115469801317E-01 2.9753115682117126E-01 + 2.9753115897563082E-01 2.9753116116180489E-01 2.9753116338011215E-01 + 2.9753116563097626E-01 2.9753116791482614E-01 2.9753117023209669E-01 + 2.9753117258322759E-01 2.9753117496866449E-01 2.9753117738885848E-01 + 2.9753117984426652E-01 2.9753118233535109E-01 2.9753118486258046E-01 + 2.9753118742642931E-01 2.9753119002737755E-01 2.9753119266591177E-01 + 2.9753119534252415E-01 2.9753119805771366E-01 2.9753120081198497E-01 + 2.9753120360584950E-01 2.9753120643982461E-01 2.9753120931443489E-01 + 2.9753121223021078E-01 2.9753121518769005E-01 2.9753121818741662E-01 + 2.9753122122994174E-01 2.9753122431582313E-01 2.9753122744562593E-01 + 2.9753123061992209E-01 2.9753123383929087E-01 2.9753123710431861E-01 + 2.9753124041559925E-01 2.9753124377373424E-01 2.9753124717933199E-01 + 2.9753125063300934E-01 2.9753125413539011E-01 2.9753125768710659E-01 + 2.9753126128879859E-01 2.9753126494111404E-01 2.9753126864470886E-01 + 2.9753127240024740E-01 2.9753127620840208E-01 2.9753128006985419E-01 + 2.9753128398529283E-01 2.9753128795541628E-01 2.9753129198093142E-01 + 2.9753129606255402E-01 2.9753130020100838E-01 2.9753130439702841E-01 + 2.9753130865135707E-01 2.9753131296474628E-01 2.9753131733795762E-01 + 2.9753132177176211E-01 2.9753132626694068E-01 2.9753133082428329E-01 + 2.9753133544459054E-01 2.9753134012867255E-01 2.9753134487734972E-01 + 2.9753134969145273E-01 2.9753135457182250E-01 2.9753135951931037E-01 + 2.9753136453477858E-01 2.9753136961909993E-01 2.9753137477315811E-01 + 2.9753137999784773E-01 2.9753138529407480E-01 2.9753139066275630E-01 + 2.9753139610482093E-01 2.9753140162120872E-01 2.9753140721287169E-01 + 2.9753141288077350E-01 2.9753141862588955E-01 2.9753142444920805E-01 + 2.9753143035172891E-01 2.9753143633446466E-01 2.9753144239844059E-01 + 2.9753144854469465E-01 2.9753145477427756E-01 2.9753146108825307E-01 + 2.9753146748769854E-01 2.9753147397370444E-01 2.9753148054737488E-01 + 2.9753148720982742E-01 2.9753149396219386E-01 2.9753150080561991E-01 + 2.9753150774126547E-01 2.9753151477030504E-01 2.9753152189392745E-01 + 2.9753152911333647E-01 2.9753153642975066E-01 2.9753154384440383E-01 + 2.9753155135854503E-01 2.9753155897343914E-01 2.9753156669036607E-01 + 2.9753157451062201E-01 2.9753158243551930E-01 2.9753159046638650E-01 + 2.9753159860456846E-01 2.9753160685142693E-01 2.9753161520834032E-01 + 2.9753162367670438E-01 2.9753163225793211E-01 2.9753164095345375E-01 + 2.9753164976471735E-01 2.9753165869318932E-01 2.9753166774035367E-01 + 2.9753167690771321E-01 2.9753168619678910E-01 2.9753169560912129E-01 + 2.9753170514626903E-01 2.9753171480981083E-01 2.9753172460134442E-01 + 2.9753173452248804E-01 2.9753174457487885E-01 2.9753175476017546E-01 + 2.9753176508005602E-01 2.9753177553622007E-01 2.9753178613038772E-01 + 2.9753179686430070E-01 2.9753180773972221E-01 2.9753181875843709E-01 + 2.9753182992225241E-01 2.9753184123299742E-01 2.9753185269252413E-01 + 2.9753186430270739E-01 2.9753187606544512E-01 2.9753188798265895E-01 + 2.9753190005629382E-01 2.9753191228831904E-01 2.9753192468072842E-01 + 2.9753193723553956E-01 2.9753194995479604E-01 2.9753196284056588E-01 + 2.9753197589494307E-01 2.9753198912004719E-01 2.9753200251802409E-01 + 2.9753201609104618E-01 2.9753202984131244E-01 2.9753204377104925E-01 + 2.9753205788251047E-01 2.9753207217797745E-01 2.9753208665975983E-01 + 2.9753210133019592E-01 2.9753211619165265E-01 2.9753213124652622E-01 + 2.9753214649724230E-01 2.9753216194625681E-01 2.9753217759605527E-01 + 2.9753219344915460E-01 2.9753220950810211E-01 2.9753222577547683E-01 + 2.9753224225388947E-01 2.9753225894598301E-01 2.9753227585443293E-01 + 2.9753229298194772E-01 2.9753231033126903E-01 2.9753232790517253E-01 + 2.9753234570646792E-01 2.9753236373799963E-01 2.9753238200264681E-01 + 2.9753240050332441E-01 2.9753241924298340E-01 2.9753243822461045E-01 + 2.9753245745122936E-01 2.9753247692590140E-01 2.9753249665172499E-01 + 2.9753251663183716E-01 2.9753253686941311E-01 2.9753255736766743E-01 + 2.9753257812985417E-01 2.9753259915926727E-01 2.9753262045924139E-01 + 2.9753264203315216E-01 2.9753266388441652E-01 2.9753268601649357E-01 + 2.9753270843288504E-01 2.9753273113713563E-01 2.9753275413283359E-01 + 2.9753277742361117E-01 2.9753280101314566E-01 2.9753282490515914E-01 + 2.9753284910341954E-01 2.9753287361174108E-01 2.9753289843398495E-01 + 2.9753292357405980E-01 2.9753294903592226E-01 2.9753297482357732E-01 + 2.9753300094107965E-01 2.9753302739253329E-01 2.9753305418209269E-01 + 2.9753308131396394E-01 2.9753310879240391E-01 2.9753313662172237E-01 + 2.9753316480628184E-01 2.9753319335049810E-01 2.9753322225884155E-01 + 2.9753325153583721E-01 2.9753328118606581E-01 2.9753331121416421E-01 + 2.9753334162482631E-01 2.9753337242280342E-01 2.9753340361290515E-01 + 2.9753343520000025E-01 2.9753346718901730E-01 2.9753349958494496E-01 + 2.9753353239283370E-01 2.9753356561779520E-01 2.9753359926500439E-01 + 2.9753363333969945E-01 2.9753366784718299E-01 2.9753370279282243E-01 + 2.9753373818205103E-01 2.9753377402036879E-01 2.9753381031334303E-01 + 2.9753384706660940E-01 2.9753388428587257E-01 2.9753392197690742E-01 + 2.9753396014555900E-01 2.9753399879774461E-01 2.9753403793945399E-01 + 2.9753407757674988E-01 2.9753411771576949E-01 2.9753415836272568E-01 + 2.9753419952390686E-01 2.9753424120567862E-01 2.9753428341448485E-01 + 2.9753432615684794E-01 2.9753436943937051E-01 2.9753441326873586E-01 + 2.9753445765170933E-01 2.9753450259513886E-01 2.9753454810595653E-01 + 2.9753459419117906E-01 2.9753464085790926E-01 2.9753468811333700E-01 + 2.9753473596473989E-01 2.9753478441948483E-01 2.9753483348502907E-01 + 2.9753488316892068E-01 2.9753493347880061E-01 2.9753498442240295E-01 + 2.9753503600755682E-01 2.9753508824218688E-01 2.9753514113431495E-01 + 2.9753519469206091E-01 2.9753524892364397E-01 2.9753530383738391E-01 + 2.9753535944170262E-01 2.9753541574512476E-01 2.9753547275627890E-01 + 2.9753553048390019E-01 2.9753558893682963E-01 2.9753564812401673E-01 + 2.9753570805452062E-01 2.9753576873751103E-01 2.9753583018227003E-01 + 2.9753589239819306E-01 2.9753595539479044E-01 2.9753601918168876E-01 + 2.9753608376863244E-01 2.9753614916548515E-01 2.9753621538223085E-01 + 2.9753628242897573E-01 2.9753635031594966E-01 2.9753641905350725E-01 + 2.9753648865213006E-01 2.9753655912242744E-01 2.9753663047513845E-01 + 2.9753670272113375E-01 2.9753677587141647E-01 2.9753684993712443E-01 + 2.9753692492953138E-01 2.9753700086004897E-01 2.9753707774022847E-01 + 2.9753715558176186E-01 2.9753723439648411E-01 2.9753731419637508E-01 + 2.9753739499356080E-01 2.9753747680031528E-01 2.9753755962906259E-01 + 2.9753764349237871E-01 2.9753772840299308E-01 2.9753781437379045E-01 + 2.9753790141781350E-01 2.9753798954826338E-01 2.9753807877850325E-01 + 2.9753816912205905E-01 2.9753826059262189E-01 2.9753835320405014E-01 + 2.9753844697037141E-01 2.9753854190578455E-01 2.9753863802466191E-01 + 2.9753873534155079E-01 2.9753883387117691E-01 2.9753893362844502E-01 + 2.9753903462844217E-01 2.9753913688643968E-01 2.9753924041789498E-01 + 2.9753934523845421E-01 2.9753945136395460E-01 2.9753955881042676E-01 + 2.9753966759409672E-01 2.9753977773138868E-01 2.9753988923892705E-01 + 2.9754000213353932E-01 2.9754011643225819E-01 2.9754023215232445E-01 + 2.9754034931118867E-01 2.9754046792651506E-01 2.9754058801618288E-01 + 2.9754070959828927E-01 2.9754083269115295E-01 2.9754095731331531E-01 + 2.9754108348354447E-01 2.9754121122083688E-01 2.9754134054442133E-01 + 2.9754147147376087E-01 2.9754160402855562E-01 2.9754173822874663E-01 + 2.9754187409451754E-01 2.9754201164629840E-01 2.9754215090476838E-01 + 2.9754229189085873E-01 2.9754243462575597E-01 2.9754257913090504E-01 + 2.9754272542801213E-01 2.9754287353904829E-01 2.9754302348625233E-01 + 2.9754317529213425E-01 2.9754332897947833E-01 2.9754348457134666E-01 + 2.9754364209108269E-01 2.9754380156231403E-01 2.9754396300895636E-01 + 2.9754412645521716E-01 2.9754429192559873E-01 2.9754445944490188E-01 + 2.9754462903823009E-01 2.9754480073099210E-01 2.9754497454890699E-01 + 2.9754515051800684E-01 2.9754532866464106E-01 2.9754550901548021E-01 + 2.9754569159751970E-01 2.9754587643808389E-01 2.9754606356482999E-01 + 2.9754625300575227E-01 2.9754644478918607E-01 2.9754663894381189E-01 + 2.9754683549865962E-01 2.9754703448311287E-01 2.9754723592691290E-01 + 2.9754743986016347E-01 2.9754764631333508E-01 2.9754785531726918E-01 + 2.9754806690318308E-01 2.9754828110267406E-01 2.9754849794772431E-01 + 2.9754871747070555E-01 2.9754893970438373E-01 2.9754916468192372E-01 + 2.9754939243689438E-01 2.9754962300327326E-01 2.9754985641545151E-01 + 2.9755009270823929E-01 2.9755033191687030E-01 2.9755057407700752E-01 + 2.9755081922474791E-01 2.9755106739662790E-01 2.9755131862962886E-01 + 2.9755157296118223E-01 2.9755183042917521E-01 2.9755209107195596E-01 + 2.9755235492833976E-01 2.9755262203761407E-01 2.9755289243954475E-01 + 2.9755316617438160E-01 2.9755344328286409E-01 2.9755372380622780E-01 + 2.9755400778621011E-01 2.9755429526505617E-01 2.9755458628552522E-01 + 2.9755488089089710E-01 2.9755517912497798E-01 2.9755548103210727E-01 + 2.9755578665716381E-01 2.9755609604557254E-01 2.9755640924331112E-01 + 2.9755672629691632E-01 2.9755704725349152E-01 2.9755737216071271E-01 + 2.9755770106683638E-01 2.9755803402070563E-01 2.9755837107175775E-01 + 2.9755871227003172E-01 2.9755905766617480E-01 2.9755940731145064E-01 + 2.9755976125774619E-01 2.9756011955757938E-01 2.9756048226410736E-01 + 2.9756084943113303E-01 2.9756122111311445E-01 2.9756159736517129E-01 + 2.9756197824309383E-01 2.9756236380335072E-01 2.9756275410309729E-01 + 2.9756314920018379E-01 2.9756354915316391E-01 2.9756395402130337E-01 + 2.9756436386458845E-01 2.9756477874373433E-01 2.9756519872019493E-01 + 2.9756562385617114E-01 2.9756605421461985E-01 2.9756648985926343E-01 + 2.9756693085459857E-01 2.9756737726590637E-01 2.9756782915926111E-01 + 2.9756828660154061E-01 2.9756874966043512E-01 2.9756921840445771E-01 + 2.9756969290295421E-01 2.9757017322611329E-01 2.9757065944497652E-01 + 2.9757115163144893E-01 2.9757164985830903E-01 2.9757215419922028E-01 + 2.9757266472874061E-01 2.9757318152233436E-01 2.9757370465638244E-01 + 2.9757423420819418E-01 2.9757477025601803E-01 2.9757531287905287E-01 + 2.9757586215746024E-01 2.9757641817237512E-01 2.9757698100591817E-01 + 2.9757755074120795E-01 2.9757812746237233E-01 2.9757871125456126E-01 + 2.9757930220395878E-01 2.9757990039779586E-01 2.9758050592436291E-01 + 2.9758111887302252E-01 2.9758173933422311E-01 2.9758236739951077E-01 + 2.9758300316154396E-01 2.9758364671410570E-01 2.9758429815211851E-01 + 2.9758495757165704E-01 2.9758562506996272E-01 2.9758630074545739E-01 + 2.9758698469775835E-01 2.9758767702769190E-01 2.9758837783730868E-01 + 2.9758908722989807E-01 2.9758980531000362E-01 2.9759053218343745E-01 + 2.9759126795729662E-01 2.9759201273997782E-01 2.9759276664119361E-01 + 2.9759352977198811E-01 2.9759430224475314E-01 2.9759508417324471E-01 + 2.9759587567259943E-01 2.9759667685935054E-01 2.9759748785144630E-01 + 2.9759830876826571E-01 2.9759913973063634E-01 2.9759998086085199E-01 + 2.9760083228269019E-01 2.9760169412143017E-01 2.9760256650387135E-01 + 2.9760344955835122E-01 2.9760434341476411E-01 2.9760524820458029E-01 + 2.9760616406086454E-01 2.9760709111829603E-01 2.9760802951318727E-01 + 2.9760897938350400E-01 2.9760994086888543E-01 2.9761091411066432E-01 + 2.9761189925188702E-01 2.9761289643733513E-01 2.9761390581354563E-01 + 2.9761492752883234E-01 2.9761596173330751E-01 2.9761700857890311E-01 + 2.9761806821939391E-01 2.9761914081041818E-01 2.9762022650950148E-01 + 2.9762132547607895E-01 2.9762243787151821E-01 2.9762356385914285E-01 + 2.9762470360425652E-01 2.9762585727416585E-01 2.9762702503820543E-01 + 2.9762820706776216E-01 2.9762940353629991E-01 2.9763061461938434E-01 + 2.9763184049470875E-01 2.9763308134211935E-01 2.9763433734364170E-01 + 2.9763560868350641E-01 2.9763689554817618E-01 2.9763819812637277E-01 + 2.9763951660910382E-01 2.9764085118969097E-01 2.9764220206379721E-01 + 2.9764356942945575E-01 2.9764495348709796E-01 2.9764635443958265E-01 + 2.9764777249222529E-01 2.9764920785282778E-01 2.9765066073170793E-01 + 2.9765213134173052E-01 2.9765361989833711E-01 2.9765512661957816E-01 + 2.9765665172614320E-01 2.9765819544139405E-01 2.9765975799139560E-01 + 2.9766133960494939E-01 2.9766294051362641E-01 2.9766456095179988E-01 + 2.9766620115667958E-01 2.9766786136834611E-01 2.9766954182978467E-01 + 2.9767124278692086E-01 2.9767296448865554E-01 2.9767470718690120E-01 + 2.9767647113661749E-01 2.9767825659584857E-01 2.9768006382575968E-01 + 2.9768189309067489E-01 2.9768374465811548E-01 2.9768561879883787E-01 + 2.9768751578687241E-01 2.9768943589956348E-01 2.9769137941760881E-01 + 2.9769334662509978E-01 2.9769533780956225E-01 2.9769735326199842E-01 + 2.9769939327692768E-01 2.9770145815242932E-01 2.9770354819018541E-01 + 2.9770566369552398E-01 2.9770780497746274E-01 2.9770997234875363E-01 + 2.9771216612592721E-01 2.9771438662933847E-01 2.9771663418321254E-01 + 2.9771890911569127E-01 2.9772121175887994E-01 2.9772354244889543E-01 + 2.9772590152591344E-01 2.9772828933421824E-01 2.9773070622225101E-01 + 2.9773315254266020E-01 2.9773562865235204E-01 2.9773813491254120E-01 + 2.9774067168880286E-01 2.9774323935112451E-01 2.9774583827395951E-01 + 2.9774846883627970E-01 2.9775113142163034E-01 2.9775382641818438E-01 + 2.9775655421879815E-01 2.9775931522106719E-01 2.9776210982738338E-01 + 2.9776493844499208E-01 2.9776780148604992E-01 2.9777069936768419E-01 + 2.9777363251205186E-01 2.9777660134640005E-01 2.9777960630312617E-01 + 2.9778264781984093E-01 2.9778572633942918E-01 2.9778884231011338E-01 + 2.9779199618551810E-01 2.9779518842473374E-01 2.9779841949238200E-01 + 2.9780168985868211E-01 2.9780499999951726E-01 2.9780835039650327E-01 + 2.9781174153705542E-01 2.9781517391445878E-01 2.9781864802793817E-01 + 2.9782216438272852E-01 2.9782572349014674E-01 2.9782932586766447E-01 + 2.9783297203898101E-01 2.9783666253409802E-01 2.9784039788939409E-01 + 2.9784417864770080E-01 2.9784800535838024E-01 2.9785187857740175E-01 + 2.9785579886742114E-01 2.9785976679786008E-01 2.9786378294498700E-01 + 2.9786784789199733E-01 2.9787196222909768E-01 2.9787612655358758E-01 + 2.9788034146994424E-01 2.9788460758990853E-01 2.9788892553257024E-01 + 2.9789329592445590E-01 2.9789771939961690E-01 2.9790219659971884E-01 + 2.9790672817413205E-01 2.9791131478002236E-01 2.9791595708244434E-01 + 2.9792065575443433E-01 2.9792541147710472E-01 2.9793022493974075E-01 + 2.9793509683989594E-01 2.9794002788349067E-01 2.9794501878491142E-01 + 2.9795007026711057E-01 2.9795518306170760E-01 2.9796035790909192E-01 + 2.9796559555852647E-01 2.9797089676825228E-01 2.9797626230559482E-01 + 2.9798169294707122E-01 2.9798718947849873E-01 2.9799275269510411E-01 + 2.9799838340163548E-01 2.9800408241247361E-01 2.9800985055174639E-01 + 2.9801568865344269E-01 2.9802159756152935E-01 2.9802757813006819E-01 + 2.9803363122333515E-01 2.9803975771593993E-01 2.9804595849294807E-01 + 2.9805223445000351E-01 2.9805858649345307E-01 2.9806501554047221E-01 + 2.9807152251919183E-01 2.9807810836882731E-01 2.9808477403980815E-01 + 2.9809152049390947E-01 2.9809834870438540E-01 2.9810525965610313E-01 + 2.9811225434567901E-01 2.9811933378161648E-01 2.9812649898444415E-01 + 2.9813375098685757E-01 2.9814109083386048E-01 2.9814851958290944E-01 + 2.9815603830405846E-01 2.9816364808010676E-01 2.9817135000674683E-01 + 2.9817914519271504E-01 2.9818703475994357E-01 2.9819501984371422E-01 + 2.9820310159281382E-01 2.9821128116969126E-01 2.9821955975061598E-01 + 2.9822793852583956E-01 2.9823641869975737E-01 2.9824500149107291E-01 + 2.9825368813296382E-01 2.9826247987324978E-01 2.9827137797456232E-01 + 2.9828038371451637E-01 2.9828949838588303E-01 2.9829872329676610E-01 + 2.9830805977077829E-01 2.9831750914722077E-01 2.9832707278126447E-01 + 2.9833675204413318E-01 2.9834654832328822E-01 2.9835646302261598E-01 + 2.9836649756261724E-01 2.9837665338059782E-01 2.9838693193086213E-01 + 2.9839733468490875E-01 2.9840786313162715E-01 2.9841851877749848E-01 + 2.9842930314679572E-01 2.9844021778178903E-01 2.9845126424295110E-01 + 2.9846244410916523E-01 2.9847375897793660E-01 2.9848521046560372E-01 + 2.9849680020755492E-01 2.9850852985844462E-01 2.9852040109241296E-01 + 2.9853241560330812E-01 2.9854457510491034E-01 2.9855688133115815E-01 + 2.9856933603637786E-01 2.9858194099551472E-01 2.9859469800436650E-01 + 2.9860760887982002E-01 2.9862067546008947E-01 2.9863389960495801E-01 + 2.9864728319602080E-01 2.9866082813693179E-01 2.9867453635365215E-01 + 2.9868840979470146E-01 2.9870245043141130E-01 2.9871666025818250E-01 + 2.9873104129274330E-01 2.9874559557641156E-01 2.9876032517435913E-01 + 2.9877523217587820E-01 2.9879031869465222E-01 2.9880558686902681E-01 + 2.9882103886228634E-01 2.9883667686293119E-01 2.9885250308495842E-01 + 2.9886851976814516E-01 2.9888472917833570E-01 2.9890113360772919E-01 + 2.9891773537517352E-01 2.9893453682645815E-01 2.9895154033461357E-01 + 2.9896874830021075E-01 2.9898616315166576E-01 2.9900378734554495E-01 + 2.9902162336687571E-01 2.9903967372945855E-01 2.9905794097618232E-01 + 2.9907642767934234E-01 2.9909513644096308E-01 2.9911406989312150E-01 + 2.9913323069827541E-01 2.9915262154959360E-01 2.9917224517129037E-01 + 2.9919210431896159E-01 2.9921220177992536E-01 2.9923254037356456E-01 + 2.9925312295167428E-01 2.9927395239880972E-01 2.9929503163264032E-01 + 2.9931636360430480E-01 2.9933795129877067E-01 2.9935979773519600E-01 + 2.9938190596729564E-01 2.9940427908370959E-01 2.9942692020837491E-01 + 2.9944983250090157E-01 2.9947301915695035E-01 2.9949648340861557E-01 + 2.9952022852480920E-01 2.9954425781165012E-01 2.9956857461285585E-01 + 2.9959318231013721E-01 2.9961808432359699E-01 2.9964328411213181E-01 + 2.9966878517383694E-01 2.9969459104641499E-01 2.9972070530758749E-01 + 2.9974713157550970E-01 2.9977387350918983E-01 2.9980093480891007E-01 + 2.9982831921665215E-01 2.9985603051652510E-01 2.9988407253519839E-01 + 2.9991244914233545E-01 2.9994116425103329E-01 2.9997022181826372E-01 + 2.9999962584531875E-01 3.0002938037825849E-01 3.0005948950836359E-01 + 3.0008995737258931E-01 3.0012078815402454E-01 3.0015198608235300E-01 + 3.0018355543431774E-01 3.0021550053418961E-01 3.0024782575423803E-01 + 3.0028053551520545E-01 3.0031363428678531E-01 3.0034712658810209E-01 + 3.0038101698819536E-01 3.0041531010650696E-01 3.0045001061337040E-01 + 3.0048512323050475E-01 3.0052065273150941E-01 3.0055660394236455E-01 + 3.0059298174193150E-01 3.0062979106245885E-01 3.0066703689008961E-01 + 3.0070472426537143E-01 3.0074285828377012E-01 3.0078144409618579E-01 + 3.0082048690947150E-01 3.0085999198695385E-01 3.0089996464895769E-01 + 3.0094041027333213E-01 3.0098133429597917E-01 3.0102274221138503E-01 + 3.0106463957315371E-01 3.0110703199454275E-01 3.0114992514900085E-01 + 3.0119332477070843E-01 3.0123723665511931E-01 3.0128166665950462E-01 + 3.0132662070349936E-01 3.0137210476964893E-01 3.0141812490395964E-01 + 3.0146468721644876E-01 3.0151179788169719E-01 3.0155946313940352E-01 + 3.0160768929493859E-01 3.0165648271990181E-01 3.0170584985267884E-01 + 3.0175579719899914E-01 3.0180633133249557E-01 3.0185745889526361E-01 + 3.0190918659842153E-01 3.0196152122267145E-01 3.0201446961885980E-01 + 3.0206803870853810E-01 3.0212223548452460E-01 3.0217706701146407E-01 + 3.0223254042638881E-01 3.0228866293927847E-01 3.0234544183361828E-01 + 3.0240288446695840E-01 3.0246099827147005E-01 3.0251979075450181E-01 + 3.0257926949913383E-01 3.0263944216473043E-01 3.0270031648749063E-01 + 3.0276190028099720E-01 3.0282420143676231E-01 3.0288722792477185E-01 + 3.0295098779402557E-01 3.0301548917307514E-01 3.0308074027055831E-01 + 3.0314674937573005E-01 3.0321352485898906E-01 3.0328107517240077E-01 + 3.0334940885021511E-01 3.0341853450938072E-01 3.0348846085005216E-01 + 3.0355919665609465E-01 3.0363075079557977E-01 3.0370313222127737E-01 + 3.0377634997114084E-01 3.0385041316878403E-01 3.0392533102395325E-01 + 3.0400111283299036E-01 3.0407776797928809E-01 3.0415530593373730E-01 + 3.0423373625516564E-01 3.0431306859076684E-01 3.0439331267652059E-01 + 3.0447447833760211E-01 3.0455657548878096E-01 3.0463961413481083E-01 + 3.0472360437080437E-01 3.0480855638259963E-01 3.0489448044711193E-01 + 3.0498138693267296E-01 3.0506928629935737E-01 3.0515818909929382E-01 + 3.0524810597696256E-01 3.0533904766947717E-01 3.0543102500685043E-01 + 3.0552404891224411E-01 3.0561813040220093E-01 3.0571328058685943E-01 + 3.0580951067015022E-01 3.0590683194997292E-01 3.0600525581835303E-01 + 3.0610479376157917E-01 3.0620545736031790E-01 3.0630725828970740E-01 + 3.0641020831942734E-01 3.0651431931374601E-01 3.0661960323154297E-01 + 3.0672607212630498E-01 3.0683373814609777E-01 3.0694261353350921E-01 + 3.0705271062556555E-01 3.0716404185361773E-01 3.0727661974319881E-01 + 3.0739045691384964E-01 3.0750556607891411E-01 3.0762196004529951E-01 + 3.0773965171320505E-01 3.0785865407581359E-01 3.0797898021894921E-01 + 3.0810064332069564E-01 3.0822365665097728E-01 3.0834803357110102E-01 + 3.0847378753325672E-01 3.0860093207997569E-01 3.0872948084354584E-01 + 3.0885944754538330E-01 3.0899084599535670E-01 3.0912369009106455E-01 + 3.0925799381706498E-01 3.0939377124405459E-01 3.0953103652799563E-01 + 3.0966980390919030E-01 3.0981008771130131E-01 3.0995190234031522E-01 + 3.1009526228344836E-01 3.1024018210799470E-01 3.1038667646011076E-01 + 3.1053476006353914E-01 3.1068444771826781E-01 3.1083575429912241E-01 + 3.1098869475429081E-01 3.1114328410377784E-01 3.1129953743778954E-01 + 3.1145746991504109E-01 3.1161709676099103E-01 3.1177843326599852E-01 + 3.1194149478339800E-01 3.1210629672749524E-01 3.1227285457147669E-01 + 3.1244118384523517E-01 3.1261130013310473E-01 3.1278321907150686E-01 + 3.1295695634650239E-01 3.1313252769124822E-01 3.1330994888335684E-01 + 3.1348923574215470E-01 3.1367040412583830E-01 3.1385346992852509E-01 + 3.1403844907719469E-01 3.1422535752852249E-01 3.1441421126559632E-01 + 3.1460502629451986E-01 3.1479781864089479E-01 3.1499260434618204E-01 + 3.1518939946393831E-01 3.1538822005592448E-01 3.1558908218808213E-01 + 3.1579200192637757E-01 3.1599699533250780E-01 3.1620407845946580E-01 + 3.1641326734696246E-01 3.1662457801670157E-01 3.1683802646750370E-01 + 3.1705362867027637E-01 3.1727140056282732E-01 3.1749135804451567E-01 + 3.1771351697073952E-01 3.1793789314725346E-01 3.1816450232431653E-01 + 3.1839336019066061E-01 3.1862448236728241E-01 3.1885788440104912E-01 + 3.1909358175811708E-01 3.1933158981715892E-01 3.1957192386239330E-01 + 3.1981459907641574E-01 3.2005963053282321E-01 3.2030703318863163E-01 + 3.2055682187647827E-01 3.2080901129660760E-01 3.2106361600863348E-01 + 3.2132065042307623E-01 3.2158012879266568E-01 3.2184206520341052E-01 + 3.2210647356542332E-01 3.2237336760350366E-01 3.2264276084746613E-01 + 3.2291466662221530E-01 3.2318909803755902E-01 3.2346606797775529E-01 + 3.2374558909078854E-01 3.2402767377736885E-01 3.2431233417965111E-01 + 3.2459958216966472E-01 3.2488942933745391E-01 3.2518188697891759E-01 + 3.2547696608334786E-01 3.2577467732065885E-01 3.2607503102830154E-01 + 3.2637803719785807E-01 3.2668370546131154E-01 3.2699204507698276E-01 + 3.2730306491513095E-01 3.2761677344321216E-01 3.2793317871078670E-01 + 3.2825228833407361E-01 3.2857410948014465E-01 3.2889864885075032E-01 + 3.2922591266577550E-01 3.2955590664631462E-01 3.2988863599736318E-01 + 3.3022410539011954E-01 3.3056231894388927E-01 3.3090328020758747E-01 + 3.3124699214083198E-01 3.3159345709462357E-01 3.3194267679160305E-01 + 3.3229465230588423E-01 3.3264938404245303E-01 3.3300687171612875E-01 + 3.3336711433007965E-01 3.3373011015388987E-01 3.3409585670116904E-01 + 3.3446435070670028E-01 3.3483558810312020E-01 3.3520956399712554E-01 + 3.3558627264520136E-01 3.3596570742886339E-01 3.3634786082941204E-01 + 3.3673272440218938E-01 3.3712028875033700E-01 3.3751054349804682E-01 + 3.3790347726330222E-01 3.3829907763010386E-01 3.3869733112017320E-01 + 3.3909822316413402E-01 3.3950173807216288E-01 3.3990785900410680E-01 + 3.4031656793906334E-01 3.4072784564441960E-01 3.4114167164434700E-01 + 3.4155802418774706E-01 3.4197688021564693E-01 3.4239821532804038E-01 + 3.4282200375017219E-01 3.4324821829826502E-01 3.4367683034468377E-01 + 3.4410780978253991E-01 3.4454112498973022E-01 3.4497674279241347E-01 + 3.4541462842792009E-01 3.4585474550709927E-01 3.4629705597609978E-01 + 3.4674152007758868E-01 3.4718809631140668E-01 3.4763674139466449E-01 + 3.4808741022127848E-01 3.4854005582095410E-01 3.4899462931761571E-01 + 3.4945107988728868E-01 3.4990935471543866E-01 3.5036939895377400E-01 + 3.5083115567651441E-01 3.5129456583613605E-01 3.5175956821859844E-01 + 3.5222609939806210E-01 3.5269409369110488E-01 3.5316348311044898E-01 + 3.5363419731820722E-01 3.5410616357866048E-01 3.5457930671058074E-01 + 3.5505354903911007E-01 3.5552881034721356E-01 3.5600500782671812E-01 + 3.5648205602895700E-01 3.5695986681503544E-01 3.5743834930573798E-01 + 3.5791740983109643E-01 3.5839695187963977E-01 3.5887687604735036E-01 + 3.5935707998634703E-01 3.5983745835332454E-01 3.6031790275777209E-01 + 3.6079830171000321E-01 3.6127854056902126E-01 3.6175850149025907E-01 + 3.6223806337321718E-01 3.6271710180904337E-01 3.6319548902808352E-01 + 3.6367309384744401E-01 3.6414978161860695E-01 3.6462541417513716E-01 + 3.6509984978052573E-01 3.6557294307621568E-01 3.6604454502985673E-01 + 3.6651450288383947E-01 3.6698266010415931E-01 3.6744885632966473E-01 + 3.6791292732174713E-01 3.6837470491452762E-01 3.6883401696560381E-01 + 3.6929068730741904E-01 3.6974453569931942E-01 3.7019537778036538E-01 + 3.7064302502297131E-01 3.7108728468744184E-01 3.7152795977748532E-01 + 3.7196484899677934E-01 3.7239774670667081E-01 3.7282644288509498E-01 + 3.7325072308679885E-01 3.7367036840496010E-01 3.7408515543429338E-01 + 3.7449485623573969E-01 3.7489923830283733E-01 3.7529806452987674E-01 + 3.7569109318194316E-01 3.7607807786695602E-01 3.7645876750981533E-01 + 3.7683290632876965E-01 3.7720023381412338E-01 3.7756048470940434E-01 + 3.7791338899511484E-01 3.7825867187519457E-01 3.7859605376632582E-01 + 3.7892525029021434E-01 3.7924597226898327E-01 3.7955792572382230E-01 + 3.7986081187703313E-01 3.8015432715762121E-01 3.8043816321058227E-01 + 3.8071200691003798E-01 3.8097554037637876E-01 3.8122844099757142E-01 + 3.8147038145479667E-01 3.8170102975258241E-01 3.8192004925360273E-01 + 3.8212709871831135E-01 3.8232183234959000E-01 3.8250389984258520E-01 + 3.8267294643991534E-01 3.8282861299243098E-01 3.8297053602571335E-01 + 3.8309834781249913E-01 3.8321167645122090E-01 3.8331014595085383E-01 + 3.8339337632226445E-01 3.8346098367625275E-01 3.8351258032848856E-01 + 3.8354777491153380E-01 3.8356617249415359E-01 3.8356737470811431E-01 + 3.8355097988266351E-01 3.8351658318689746E-01 3.8346377678020982E-01 + 3.8339214997102206E-01 3.8330128938399333E-01 3.8319077913590366E-01 + 3.8306020102040722E-01 3.8290913470184573E-01 3.8273715791831214E-01 + 3.8254384669415026E-01 3.8232877556207556E-01 3.8209151779508982E-01 + 3.8183164564837208E-01 3.8154873061130629E-01 3.8124234366981380E-01 + 3.8091205557914470E-01 3.8055743714727941E-01 3.8017805952907935E-01 + 3.7977349453132037E-01 3.7934331492873558E-01 3.7888709479117766E-01 + 3.7840440982200457E-01 3.7789483770778082E-01 3.7735795847937270E-01 + 3.7679335488450211E-01 3.7620061277181033E-01 3.7557932148646733E-01 + 3.7492907427734651E-01 3.7424946871576631E-01 3.7354010712578184E-01 + 3.7280059702599183E-01 3.7203055158280507E-01 3.7122959007508644E-01 + 3.7039733837008221E-01 3.6953342941050227E-01 3.6863750371260584E-01 + 3.6770920987511468E-01 3.6674820509875045E-01 3.6575415571616343E-01 + 3.6472673773198616E-01 3.6366563737271779E-01 3.6257055164610974E-01 + 3.6144118890969318E-01 3.6027726944804317E-01 3.5907852605834911E-01 + 3.5784470464381224E-01 3.5657556481436242E-01 3.5527088049413019E-01 + 3.5393044053508016E-01 3.5255404933616580E-01 3.5114152746731142E-01 + 3.4969271229749149E-01 3.4820757893780063E-01 3.4668659764986026E-01 + 3.4513036584746598E-01 3.4353948649917793E-01 3.4191456784559965E-01 + 3.4025622312642678E-01 3.3856507031669303E-01 3.3684173187156902E-01 + 3.3508683447899096E-01 3.3330100881938063E-01 3.3148488933168313E-01 + 3.2963911398497853E-01 3.2776432405493061E-01 3.2586116390437936E-01 + 3.2393028076741121E-01 3.2197232453629909E-01 3.1998794755075832E-01 + 3.1797780438900014E-01 3.1594255166014362E-01 3.1388284779757819E-01 + 3.1179935285294841E-01 3.0969272829045730E-01 3.0756363678125942E-01 + 3.0541274199774643E-01 3.0324070840758849E-01 3.0104820106741664E-01 + 2.9883588541609191E-01 2.9660442706752504E-01 2.9435449160306043E-01 + 2.9208674436344656E-01 2.8980185024045801E-01 2.8750047346825525E-01 + 2.8518327741457478E-01 2.8285092437187748E-01 2.8050407534858307E-01 + 2.7814338986054343E-01 2.7576952572290186E-01 2.7338313884250853E-01 + 2.7098488301105433E-01 2.6857540969910371E-01 2.6615536785119065E-01 + 2.6372540368216019E-01 2.6128616047492431E-01 2.5883827837981122E-01 + 2.5638239421566794E-01 2.5391914127288651E-01 2.5144914911851735E-01 + 2.4897304340361640E-01 2.4649144567298312E-01 2.4400497317742476E-01 + 2.4151423868869309E-01 2.3901985031720935E-01 2.3652241133271021E-01 + 2.3402251998791959E-01 2.3152076934536275E-01 2.2901774710741071E-01 + 2.2651403544965432E-01 2.2401021085768560E-01 2.2150684396736958E-01 + 2.1900449940866726E-01 2.1650373565307732E-01 2.1400510486474764E-01 + 2.1150915275530974E-01 2.0901641844247040E-01 2.0652743431240039E-01 + 2.0404272588595182E-01 2.0156281168872148E-01 1.9908820312498515E-01 + 1.9661940435551123E-01 1.9415691217927006E-01 1.9170121591903608E-01 + 1.8925279731089037E-01 1.8681213039761738E-01 1.8437968142599673E-01 + 1.8195590874797643E-01 1.7954126272572285E-01 1.7713618564053374E-01 + 1.7474111160560649E-01 1.7235646648264344E-01 1.6998266780228380E-01 + 1.6762012468835225E-01 1.6526923778590480E-01 1.6293039919306676E-01 + 1.6060399239664794E-01 1.5829039221153063E-01 1.5598996472381893E-01 + 1.5370306723774835E-01 1.5143004822635059E-01 1.4917124728587902E-01 + 1.4692699509399104E-01 1.4469761337170403E-01 1.4248341484912241E-01 + 1.4028470323473363E-01 1.3810177318940692E-01 1.3593491030288052E-01 + 1.3378439107498913E-01 1.3165048290054196E-01 1.2953344405810657E-01 + 1.2743352370272421E-01 1.2535096186259628E-01 1.2328598943977258E-01 + 1.2123882821487778E-01 1.1920969085591523E-01 1.1719878093118648E-01 + 1.1520629292636154E-01 1.1323241226574013E-01 1.1127731533773703E-01 + 1.0934116952462972E-01 1.0742413323659551E-01 1.0552635595006880E-01 + 1.0364797825044489E-01 1.0178913187914727E-01 9.9949939785076367E-02 + 9.8130516180448130E-02 9.6330966601027745E-02 9.4551387970753076E-02 + 9.2791868670738839E-02 9.1052488612642909E-02 8.9333319316369716E-02 + 8.7634423992074217E-02 8.5955857626424756E-02 8.4297667073071278E-02 + 8.2659891147259579E-02 8.1042560724518778E-02 7.9445698843342946E-02 + 7.7869320811779802E-02 7.6313434317825654E-02 7.4778039543522259E-02 + 7.3263129282638173E-02 7.1768689061813218E-02 7.0294697265031930E-02 + 6.8841125261288674E-02 6.7407937535296183E-02 6.5995091821087426E-02 + 6.4602539238349604E-02 6.3230224431325477E-02 6.1878085710115383E-02 + 6.0546055194204716E-02 5.9234058958039244E-02 5.7942017178471000E-02 + 5.6669844283888993E-02 5.5417449104854404E-02 5.4184735026052949E-02 + 5.2971600139380216E-02 5.1777937397976592E-02 5.0603634771025571E-02 + 4.9448575399135317E-02 4.8312637750121915E-02 4.7195695775018434E-02 + 4.6097619064133608E-02 4.5018273002991001E-02 4.3957518927980825E-02 + 4.2915214281563856E-02 4.1891212766868073E-02 4.0885364501527785E-02 + 3.9897516170617139E-02 3.8927511178538529E-02 3.7975189799729442E-02 + 3.7040389328059628E-02 3.6122944224796456E-02 3.5222686265021175E-02 + 3.4339444682387206E-02 3.3473046312116617E-02 3.2623315732139009E-02 + 3.1790075402281404E-02 3.0973145801426415E-02 3.0172345562560623E-02 + 2.9387491605643242E-02 2.8618399268229060E-02 2.7864882433787801E-02 + 2.7126753657666775E-02 2.6403824290650413E-02 2.5695904600074461E-02 + 2.5002803888459418E-02 2.4324330609632776E-02 2.3660292482313581E-02 + 2.3010496601139033E-02 2.2374749545116365E-02 2.1752857483488690E-02 + 2.1144626279006130E-02 2.0549861588599179E-02 1.9968368961453355E-02 + 1.9399953934489345E-02 1.8844422125254348E-02 1.8301579322234845E-02 + 1.7771231572602849E-02 1.7253185267411361E-02 1.6747247224255909E-02 + 1.6253224767422497E-02 1.5770925805543602E-02 1.5300158906786394E-02 + 1.4840733371598230E-02 1.4392459303036799E-02 1.3955147674713642E-02 + 1.3528610396380408E-02 1.3112660377189115E-02 1.2707111586658128E-02 + 1.2311779113377041E-02 1.1926479221483582E-02 1.1551029404947162E-02 + 1.1185248439693651E-02 1.0828956433607031E-02 1.0481974874443118E-02 + 1.0144126675691796E-02 9.8152362204236062E-03 9.4951294031574689E-03 + 9.1836336697856680E-03 8.8805780555927024E-03 8.5857932214047430E-03 + 8.2991114879057502E-03 8.0203668681568668E-03 7.7493950983550247E-03 + 7.4860336668669744E-03 7.2301218415741497E-03 6.9815006955640437E-03 + 6.7400131312030506E-03 6.5055039026257859E-03 6.2778196366750369E-03 + 6.0568088523265786E-03 5.8423219786323324E-03 5.6342113712151993E-03 + 5.4323313273480847E-03 5.2365380996494213E-03 5.0466899084270515E-03 + 4.8626469527014568E-03 4.6842714199392512E-03 4.5114274945269525E-03 + 4.3439813650148536E-03 4.1818012301599030E-03 4.0247573037962793E-03 + 3.8727218185616009E-03 3.7255690285063377E-03 3.5831752106132452E-03 + 3.4454186652533329E-03 3.3121797156041902E-03 3.1833407060561751E-03 + 3.0587859996312455E-03 2.9384019744389373E-03 2.8220770191935427E-03 + 2.7097015278159178E-03 2.6011678931431919E-03 2.4963704997690945E-03 + 2.3952057160373922E-03 2.2975718852104635E-03 2.2033693158348766E-03 + 2.1125002713254788E-03 2.0248689587893409E-03 1.9403815171106071E-03 + 1.8589460043171903E-03 1.7804723842500740E-03 1.7048725125558956E-03 + 1.6320601220233104E-03 1.5619508072836482E-03 1.4944620088963234E-03 + 1.4295129968393534E-03 1.3670248534254608E-03 1.3069204556641326E-03 + 1.2491244570901595E-03 1.1935632690791057E-03 1.1401650416703107E-03 + 1.0888596439180432E-03 1.0395786437915277E-03 9.9225528764460133E-04 + 9.4682447927588208E-04 9.0322275860036641E-04 8.6138827995348936E-04 + 8.2126079004867967E-04 7.8278160560957082E-04 7.4589359069801326E-04 + 7.1054113375911639E-04 6.7667012440450795E-04 6.4422792995504107E-04 + 6.1316337176414986E-04 5.8342670134298364E-04 5.5496957630842849E-04 + 5.2774503617499945E-04 5.0170747801151351E-04 4.7681263198327616E-04 + 4.5301753680038838E-04 4.3028051509256897E-04 4.0856114873069697E-04 + 3.8782025411500788E-04 3.6801985744964034E-04 3.4912317002291633E-04 + 3.3109456351244031E-04 3.1389954533373111E-04 2.9750473405075787E-04 + 2.8187783486635344E-04 2.6698761521004881E-04 2.5280388044045791E-04 + 2.3929744967886722E-04 2.2644013179022306E-04 2.1420470152719602E-04 + 2.0256487585250889E-04 1.9149529045417064E-04 1.8097147646773168E-04 + 1.7096983741910548E-04 1.6146762640094792E-04 1.5244292349500142E-04 + 1.4387461345223470E-04 1.3574236364200673E-04 1.2802660228089516E-04 + 1.2070849695122968E-04 1.1376993341875733E-04 1.0719349475827530E-04 + 1.0096244079545283E-04 9.5060687872468947E-05 8.9472788944486157E-05 + 8.4183914013391317E-05 7.9179830904641134E-05 7.4446886392469798E-05 + 6.9971987678136243E-05 6.5742584225327223E-05 6.1746649956270270E-05 + 5.7972665811569290E-05 5.4409602676235239E-05 5.1046904673866655E-05 + 4.7874472830421825E-05 4.4882649108531982E-05 4.2062200812819727E-05 + 3.9404305366223584E-05 3.6900535456878180E-05 3.4542844554662400E-05 + 3.2323552796111676E-05 3.0235333235986203E-05 2.8271198463403420E-05 + 2.6424487580072196E-05 2.4688853537817368E-05 2.3058250832247671E-05 + 2.1526923549104922E-05 2.0089393759531566E-05 1.8740450260213381E-05 + 1.7475137654088491E-05 1.6288745767067381E-05 1.5176799395976919E-05 + 1.4135048382728719E-05 1.3159458009515094E-05 1.2246199709654053E-05 + 1.1391642088541258E-05 1.0592342249016768E-05 9.8450374153214597E-06 + 9.1466368496984227E-06 8.4942140555912017E-06 7.8849992613002559E-06 + 7.3163721778833013E-06 6.7858550250216395E-06 6.2911058185253090E-06 + 5.8299119131117188E-06 5.4001837940672865E-06 4.9999491113869468E-06 + 4.6273469499835142E-06 4.2806223295662197E-06 3.9581209278047055E-06 + 3.6582840204219641E-06 3.3796436318952128E-06 3.1208178904882841E-06 + 2.8805065813912448E-06 2.6574868918030837E-06 2.4506093418601655E-06 + 2.2587938953868652E-06 2.0810262445243578E-06 1.9163542623790933E-06 + 1.7638846179230012E-06 1.6227795474729753E-06 1.4922537771768332E-06 + 1.3715715910367539E-06 1.2600440391084316E-06 1.1570262806244883E-06 + 1.0619150569039196E-06 9.7414628902482803E-07 8.9319279535530670E-07 + 8.1856212415655098E-07 7.4979449659296049E-07 6.8646085560564274E-07 + 6.2816101622820668E-07 5.7452191304659109E-07 5.2519594062783041E-07 + 4.7985938286567433E-07 4.3821092731373908E-07 3.9997026069905088E-07 + 3.6487674193032647E-07 3.3268814903584406E-07 3.0317949658510417E-07 + 2.7614192026656530E-07 2.5138162541029978E-07 2.2871889635938183E-07 + 2.0798716370699366E-07 1.8903212652755039E-07 1.7171092683943471E-07 + 1.5589137364413251E-07 1.4145121399154547E-07 1.2827744862399238E-07 + 1.1626568985177247E-07 1.0531955941113889E-07 9.5350124151026560E-08 + 8.6275367487893947E-08 7.8019694658499581E-08 7.0513469888349121E-08 + 6.3692583678872339E-08 5.7498048499134750E-08 5.1875621248034629E-08 + 4.6775450930490751E-08 4.2151750066104766E-08 3.7962488421189075E-08 + 3.4169107724913789E-08 3.0736256097663951E-08 2.7631540984546527E-08 + 2.4825299449371908E-08 2.2290384744400311E-08 2.0001968128724705E-08 + 1.7937354963408204E-08 1.6075814164446492E-08 1.4398420145338171E-08 + 1.2887906429565345E-08 1.1528530159670474E-08 1.0305946773915107E-08 + 9.2070941637783925E-09 8.2200856658572543E-09 7.3341112801211769E-09 + 6.5393465430138397E-09 5.8268685186383257E-09 5.1885784042740263E-09 + 4.6171302778088802E-09 4.1058655443913579E-09 3.6487526677699984E-09 + 3.2403317984547185E-09 2.8756639360597290E-09 2.5502842870315737E-09 + 2.2601595014827089E-09 2.0016484940980224E-09 1.7714665741122185E-09 + 1.5666526282241120E-09 1.3845391180718433E-09 1.2227246705916393E-09 + 1.0790490552720522E-09 9.5157035704372618E-10 8.3854416735907943E-10 + 7.3840462896210526E-10 6.4974718197004179E-10 5.7131287022914809E-10 + 5.0197407750730069E-10 4.4072157298726571E-10 3.8665275473646473E-10 + 3.3896098844427696E-10 2.9692594764065247E-10 2.5990486281753339E-10 + 2.2732460510687053E-10 1.9867461773538052E-10 1.7350010607683959E-10 + 1.5139692715349324E-10 1.3200541973483501E-10 1.1500648562049460E-10 + 1.0011673769947320E-10 8.7084876540957104E-11 7.5688235104038572E-11 + 6.5729674961916762E-11 5.7034800548692056E-11 4.9449460892049389E-11 + 4.2837511010356245E-11 3.7078807648283268E-11 3.2067416316671499E-11 + 2.7710008704807747E-11 2.3924431460388210E-11 2.0638429097272537E-11 + 1.7788505405842458E-11 1.5318909216794211E-11 1.3180731717186941E-11 + 1.1331103747499155E-11 9.7324826296148722E-12 8.3520190967287314E-12 + 7.1609958251954245E-12 6.1343299128473251E-12 5.2501324152347243E-12 + 4.4893187470652930E-12 3.8352643868257210E-12 3.2735008937016572E-12 + 2.7914477626021052E-12 2.3781761100769073E-12 2.0242006055630644E-12 + 1.7212964427356935E-12 1.4623384884817912E-12 1.2411600555718690E-12 + 1.0524290226092287E-12 8.9153927416582212E-13 7.5451565780307473E-13 + 6.3793085533990228E-13 5.3883274547575403E-13 4.5468099572088837E-13 + 3.8329176536952351E-13 3.2278952965174252E-13 2.7156514974437716E-13 + 2.2823941539877374E-13 1.9163137781625262E-13 1.6073087121534112E-13 + 1.3467469332632472E-13 1.1272597875792438E-13 9.4256355657697470E-14 + 7.8730526099492276E-14 6.5692954870427299E-14 5.4756390420362745E-14 + 4.5591976240371581E-14 3.7920741358234255E-14 3.1506285431960765E-14 + 2.6148497493505416E-14 2.1678168108592576E-14 1.7952372900976456E-14 + 1.4850521331960408E-14 1.2270978588761592E-14 1.0128180650306270E-14 + 8.3501732728642111E-15 6.8765149543388258E-15 5.6564920582779720E-15 + 4.6476013516171733E-15 3.8142613621965567E-15 3.1267193068422215E-15 + 2.5601249787378038E-15 2.0937470026385728E-15 1.7103103464284164E-15 + 1.3954369864904722E-15 1.1371742229666506E-15 9.2559738246943220E-16 + 7.5247557690608138E-16 6.1099084872649879E-16 4.9550246094844452E-16 + 4.0134931607181834E-16 3.2468453881259331E-16 2.6233715730702092E-16 + 2.1169658681586671E-16 1.7061627704678078E-16 1.3733344468559894E-16 + 1.1040229017906838E-16 8.8638504016713263E-17 7.1073212903005558E-17 + 5.6914809090244910E-17 4.5517354346844063E-17 3.6354460103006776E-17 + 2.8997722870792673E-17 2.3098943910640773E-17 1.8375488457553514E-17 + 1.4598246179464918E-17 1.1581743957012079E-17 9.1760371446373234E-18 + 7.2600684131293224E-18 5.7362359709175300E-18 4.5259570215844707E-18 + 3.5660491025136888E-18 2.8057826218213331E-18 2.2044834482831731E-18 + 1.7295856413405922E-18 1.3550520361063883E-18 1.0600950125720400E-18 + 8.2814187668245900E-19 6.4599928218335446E-19 5.0317937766897144E-19 + 3.9135716779934920E-19 3.0393417797911789E-19 2.3568811418046906E-19 + 1.8249198624021501E-19 1.4108925737299159E-19 1.0891411424181914E-19 + 8.3948019939023588E-20 6.4605398972062237E-20 4.9642677004016060E-20 + 3.8086015056232061E-20 2.9173984701820618E-20 2.2312165848612380E-20 + 1.7037243623548357E-20 1.2988661591342931E-20 9.8862763711685991E-21 + 7.5127711057753555E-21 5.6998364584047072E-21 4.3173295155803565E-21 + 3.2647826558734104E-21 2.4647638350037976E-21 1.8576931154416122E-21 + 1.3978027270205195E-21 1.0499936078823226E-21 7.8739357591359734E-22 + 5.8946370984893882E-22 4.4053234358847232E-22 3.2866203991125513E-22 + 2.4477540992456971E-22 1.8198180370082833E-22 1.3505961281213391E-22 + 1.0005891341248123E-22 7.3997010383873218E-23 5.4625573461802074E-23 + 4.0252846326123580E-23 2.9608145758217755E-23 2.1738776800717846E-23 + 1.5931750510148387E-23 1.1654444613896730E-23 8.5097053641236408E-24 + 6.2019384940846436E-24 4.5115469529572600E-24 3.2756966687700133E-24 + 2.3738708822720048E-24 1.7170412984562878E-24 1.2395658641317878E-24 + 8.9313817014416571E-25 6.4227762658675727E-25 4.6097453394241226E-25 + 3.3019913779897522E-25 2.3605577537632834E-25 1.6841773511834795E-25 + 1.1991963066581855E-25 8.5215137177525842E-26 6.0431298120931700E-26 + 4.2768151486062725E-26 3.0205570548589365E-26 2.1289046266522078E-26 + 1.4973471200314543E-26 1.0509456223476971E-26 7.3607804603057681E-27 + 5.1445526992510241E-27 3.5879254172377923E-27 2.4969079643699682E-27 + 1.7339054325257565E-27 1.2014518291543211E-27 8.3069138318800049E-28 + + + 6.5305387876284353E+00 6.5305387876341268E+00 6.5305387876514516E+00 + 6.5305387876805838E+00 6.5305387877217278E+00 6.5305387877751127E+00 + 6.5305387878409533E+00 6.5305387879194683E+00 6.5305387880108867E+00 + 6.5305387881154386E+00 6.5305387882333505E+00 6.5305387883648649E+00 + 6.5305387885102189E+00 6.5305387886696469E+00 6.5305387888434039E+00 + 6.5305387890317323E+00 6.5305387892348863E+00 6.5305387894531215E+00 + 6.5305387896866982E+00 6.5305387899358749E+00 6.5305387902009286E+00 + 6.5305387904821153E+00 6.5305387907797208E+00 6.5305387910940151E+00 + 6.5305387914252861E+00 6.5305387917738145E+00 6.5305387921398870E+00 + 6.5305387925238048E+00 6.5305387929258654E+00 6.5305387933463646E+00 + 6.5305387937856070E+00 6.5305387942439106E+00 6.5305387947215827E+00 + 6.5305387952189422E+00 6.5305387957363168E+00 6.5305387962740298E+00 + 6.5305387968324133E+00 6.5305387974118050E+00 6.5305387980125449E+00 + 6.5305387986349794E+00 6.5305387992794577E+00 6.5305387999463349E+00 + 6.5305388006359735E+00 6.5305388013487340E+00 6.5305388020849886E+00 + 6.5305388028451103E+00 6.5305388036294847E+00 6.5305388044384918E+00 + 6.5305388052725197E+00 6.5305388061319674E+00 6.5305388070172388E+00 + 6.5305388079287336E+00 6.5305388088668685E+00 6.5305388098320547E+00 + 6.5305388108247238E+00 6.5305388118453029E+00 6.5305388128942186E+00 + 6.5305388139719200E+00 6.5305388150788497E+00 6.5305388162154587E+00 + 6.5305388173822081E+00 6.5305388185795588E+00 6.5305388198079868E+00 + 6.5305388210679647E+00 6.5305388223599765E+00 6.5305388236845152E+00 + 6.5305388250420746E+00 6.5305388264331565E+00 6.5305388278582761E+00 + 6.5305388293179440E+00 6.5305388308126879E+00 6.5305388323430353E+00 + 6.5305388339095227E+00 6.5305388355127008E+00 6.5305388371531157E+00 + 6.5305388388313306E+00 6.5305388405479130E+00 6.5305388423034332E+00 + 6.5305388440984737E+00 6.5305388459336253E+00 6.5305388478094839E+00 + 6.5305388497266614E+00 6.5305388516857628E+00 6.5305388536874158E+00 + 6.5305388557322424E+00 6.5305388578208881E+00 6.5305388599540013E+00 + 6.5305388621322260E+00 6.5305388643562372E+00 6.5305388666267010E+00 + 6.5305388689443005E+00 6.5305388713097274E+00 6.5305388737236791E+00 + 6.5305388761868635E+00 6.5305388787000007E+00 6.5305388812638183E+00 + 6.5305388838790446E+00 6.5305388865464442E+00 6.5305388892667562E+00 + 6.5305388920407568E+00 6.5305388948692169E+00 6.5305388977529262E+00 + 6.5305389006926804E+00 6.5305389036892842E+00 6.5305389067435602E+00 + 6.5305389098563360E+00 6.5305389130284484E+00 6.5305389162607481E+00 + 6.5305389195540986E+00 6.5305389229093693E+00 6.5305389263274476E+00 + 6.5305389298092269E+00 6.5305389333556150E+00 6.5305389369675346E+00 + 6.5305389406459069E+00 6.5305389443916857E+00 6.5305389482058231E+00 + 6.5305389520892847E+00 6.5305389560430518E+00 6.5305389600681192E+00 + 6.5305389641654861E+00 6.5305389683361836E+00 6.5305389725812342E+00 + 6.5305389769016884E+00 6.5305389812986014E+00 6.5305389857730498E+00 + 6.5305389903261215E+00 6.5305389949589143E+00 6.5305389996725438E+00 + 6.5305390044681406E+00 6.5305390093468469E+00 6.5305390143098245E+00 + 6.5305390193582484E+00 6.5305390244932990E+00 6.5305390297161923E+00 + 6.5305390350281405E+00 6.5305390404303862E+00 6.5305390459241721E+00 + 6.5305390515107735E+00 6.5305390571914739E+00 6.5305390629675681E+00 + 6.5305390688403779E+00 6.5305390748112382E+00 6.5305390808814980E+00 + 6.5305390870525279E+00 6.5305390933257152E+00 6.5305390997024659E+00 + 6.5305391061841940E+00 6.5305391127723480E+00 6.5305391194683837E+00 + 6.5305391262737782E+00 6.5305391331900333E+00 6.5305391402186599E+00 + 6.5305391473611936E+00 6.5305391546191913E+00 6.5305391619942261E+00 + 6.5305391694878958E+00 6.5305391771018098E+00 6.5305391848376155E+00 + 6.5305391926969589E+00 6.5305392006815222E+00 6.5305392087930070E+00 + 6.5305392170331302E+00 6.5305392254036398E+00 6.5305392339062971E+00 + 6.5305392425428961E+00 6.5305392513152416E+00 6.5305392602251713E+00 + 6.5305392692745414E+00 6.5305392784652323E+00 6.5305392877991499E+00 + 6.5305392972782261E+00 6.5305393069044095E+00 6.5305393166796808E+00 + 6.5305393266060472E+00 6.5305393366855338E+00 6.5305393469201993E+00 + 6.5305393573121240E+00 6.5305393678634118E+00 6.5305393785762025E+00 + 6.5305393894526533E+00 6.5305394004949582E+00 6.5305394117053313E+00 + 6.5305394230860143E+00 6.5305394346392891E+00 6.5305394463674542E+00 + 6.5305394582728358E+00 6.5305394703578026E+00 6.5305394826247412E+00 + 6.5305394950760762E+00 6.5305395077142521E+00 6.5305395205417600E+00 + 6.5305395335611145E+00 6.5305395467748530E+00 6.5305395601855629E+00 + 6.5305395737958527E+00 6.5305395876083656E+00 6.5305396016257804E+00 + 6.5305396158508051E+00 6.5305396302861842E+00 6.5305396449347040E+00 + 6.5305396597991816E+00 6.5305396748824602E+00 6.5305396901874282E+00 + 6.5305397057170094E+00 6.5305397214741641E+00 6.5305397374618925E+00 + 6.5305397536832261E+00 6.5305397701412424E+00 6.5305397868390509E+00 + 6.5305398037798055E+00 6.5305398209666921E+00 6.5305398384029427E+00 + 6.5305398560918366E+00 6.5305398740366805E+00 6.5305398922408306E+00 + 6.5305399107076818E+00 6.5305399294406792E+00 6.5305399484433027E+00 + 6.5305399677190783E+00 6.5305399872715766E+00 6.5305400071044177E+00 + 6.5305400272212584E+00 6.5305400476258084E+00 6.5305400683218222E+00 + 6.5305400893131011E+00 6.5305401106034884E+00 6.5305401321968866E+00 + 6.5305401540972428E+00 6.5305401763085493E+00 6.5305401988348510E+00 + 6.5305402216802442E+00 6.5305402448488827E+00 6.5305402683449563E+00 + 6.5305402921727262E+00 6.5305403163364897E+00 6.5305403408406102E+00 + 6.5305403656895091E+00 6.5305403908876443E+00 6.5305404164395444E+00 + 6.5305404423497917E+00 6.5305404686230260E+00 6.5305404952639430E+00 + 6.5305405222772990E+00 6.5305405496679096E+00 6.5305405774406511E+00 + 6.5305406056004580E+00 6.5305406341523335E+00 6.5305406631013296E+00 + 6.5305406924525782E+00 6.5305407222112652E+00 6.5305407523826400E+00 + 6.5305407829720208E+00 6.5305408139847989E+00 6.5305408454264171E+00 + 6.5305408773024016E+00 6.5305409096183373E+00 6.5305409423798837E+00 + 6.5305409755927695E+00 6.5305410092627962E+00 6.5305410433958366E+00 + 6.5305410779978343E+00 6.5305411130748094E+00 6.5305411486328593E+00 + 6.5305411846781540E+00 6.5305412212169403E+00 6.5305412582555418E+00 + 6.5305412958003677E+00 6.5305413338578973E+00 6.5305413724346995E+00 + 6.5305414115374179E+00 6.5305414511727804E+00 6.5305414913476030E+00 + 6.5305415320687805E+00 6.5305415733432968E+00 6.5305416151782234E+00 + 6.5305416575807183E+00 6.5305417005580280E+00 6.5305417441174853E+00 + 6.5305417882665244E+00 6.5305418330126654E+00 6.5305418783635201E+00 + 6.5305419243267959E+00 6.5305419709102992E+00 6.5305420181219302E+00 + 6.5305420659696889E+00 6.5305421144616727E+00 6.5305421636060821E+00 + 6.5305422134112145E+00 6.5305422638854793E+00 6.5305423150373754E+00 + 6.5305423668755243E+00 6.5305424194086488E+00 6.5305424726455685E+00 + 6.5305425265952231E+00 6.5305425812666638E+00 6.5305426366690522E+00 + 6.5305426928116610E+00 6.5305427497038782E+00 6.5305428073552099E+00 + 6.5305428657752804E+00 6.5305429249738367E+00 6.5305429849607322E+00 + 6.5305430457459543E+00 6.5305431073396187E+00 6.5305431697519545E+00 + 6.5305432329933257E+00 6.5305432970742121E+00 6.5305433620052389E+00 + 6.5305434277971566E+00 6.5305434944608489E+00 6.5305435620073240E+00 + 6.5305436304477507E+00 6.5305436997934052E+00 6.5305437700557318E+00 + 6.5305438412462964E+00 6.5305439133768148E+00 6.5305439864591461E+00 + 6.5305440605052985E+00 6.5305441355274265E+00 6.5305442115378378E+00 + 6.5305442885489882E+00 6.5305443665734888E+00 6.5305444456241064E+00 + 6.5305445257137658E+00 6.5305446068555471E+00 6.5305446890627037E+00 + 6.5305447723486374E+00 6.5305448567269258E+00 6.5305449422113124E+00 + 6.5305450288157028E+00 6.5305451165541850E+00 6.5305452054410145E+00 + 6.5305452954906267E+00 6.5305453867176304E+00 6.5305454791368094E+00 + 6.5305455727631454E+00 6.5305456676117926E+00 6.5305457636980950E+00 + 6.5305458610375879E+00 6.5305459596459965E+00 6.5305460595392359E+00 + 6.5305461607334223E+00 6.5305462632448705E+00 6.5305463670900954E+00 + 6.5305464722858089E+00 6.5305465788489423E+00 6.5305466867966206E+00 + 6.5305467961461918E+00 6.5305469069152080E+00 6.5305470191214381E+00 + 6.5305471327828801E+00 6.5305472479177418E+00 6.5305473645444625E+00 + 6.5305474826817047E+00 6.5305476023483573E+00 6.5305477235635481E+00 + 6.5305478463466375E+00 6.5305479707172243E+00 6.5305480966951457E+00 + 6.5305482243004835E+00 6.5305483535535735E+00 6.5305484844749913E+00 + 6.5305486170855653E+00 6.5305487514063918E+00 6.5305488874588180E+00 + 6.5305490252644516E+00 6.5305491648451648E+00 6.5305493062231070E+00 + 6.5305494494206950E+00 6.5305495944606147E+00 6.5305497413658404E+00 + 6.5305498901596248E+00 6.5305500408655037E+00 6.5305501935073034E+00 + 6.5305503481091431E+00 6.5305505046954382E+00 6.5305506632909012E+00 + 6.5305508239205539E+00 6.5305509866097173E+00 6.5305511513840298E+00 + 6.5305513182694375E+00 6.5305514872922110E+00 6.5305516584789380E+00 + 6.5305518318565365E+00 6.5305520074522523E+00 6.5305521852936668E+00 + 6.5305523654086954E+00 6.5305525478256019E+00 6.5305527325729882E+00 + 6.5305529196798169E+00 6.5305531091753988E+00 6.5305533010894035E+00 + 6.5305534954518674E+00 6.5305536922931937E+00 6.5305538916441517E+00 + 6.5305540935358977E+00 6.5305542979999656E+00 6.5305545050682730E+00 + 6.5305547147731327E+00 6.5305549271472509E+00 6.5305551422237258E+00 + 6.5305553600360762E+00 6.5305555806182234E+00 6.5305558040044973E+00 + 6.5305560302296666E+00 6.5305562593288986E+00 6.5305564913378129E+00 + 6.5305567262924535E+00 6.5305569642293131E+00 6.5305572051853265E+00 + 6.5305574491978762E+00 6.5305576963048066E+00 6.5305579465444241E+00 + 6.5305581999555047E+00 6.5305584565772907E+00 6.5305587164495176E+00 + 6.5305589796123913E+00 6.5305592461066251E+00 6.5305595159734127E+00 + 6.5305597892544656E+00 6.5305600659919891E+00 6.5305603462287243E+00 + 6.5305606300079182E+00 6.5305609173733474E+00 6.5305612083693330E+00 + 6.5305615030407242E+00 6.5305618014329312E+00 6.5305621035919099E+00 + 6.5305624095641734E+00 6.5305627193968112E+00 6.5305630331374847E+00 + 6.5305633508344307E+00 6.5305636725364886E+00 6.5305639982930765E+00 + 6.5305643281542283E+00 6.5305646621705771E+00 6.5305650003933895E+00 + 6.5305653428745378E+00 6.5305656896665401E+00 6.5305660408225448E+00 + 6.5305663963963623E+00 6.5305667564424450E+00 6.5305671210159177E+00 + 6.5305674901725697E+00 6.5305678639688765E+00 6.5305682424619960E+00 + 6.5305686257097868E+00 6.5305690137708128E+00 6.5305694067043403E+00 + 6.5305698045703782E+00 6.5305702074296468E+00 6.5305706153436089E+00 + 6.5305710283744851E+00 6.5305714465852400E+00 6.5305718700396209E+00 + 6.5305722988021335E+00 6.5305727329380812E+00 6.5305731725135514E+00 + 6.5305736175954445E+00 6.5305740682514744E+00 6.5305745245501665E+00 + 6.5305749865608931E+00 6.5305754543538672E+00 6.5305759280001476E+00 + 6.5305764075716652E+00 6.5305768931412240E+00 6.5305773847825046E+00 + 6.5305778825700926E+00 6.5305783865794798E+00 6.5305788968870671E+00 + 6.5305794135701882E+00 6.5305799367071167E+00 6.5305804663770788E+00 + 6.5305810026602549E+00 6.5305815456378031E+00 6.5305820953918721E+00 + 6.5305826520055987E+00 6.5305832155631318E+00 6.5305837861496467E+00 + 6.5305843638513421E+00 6.5305849487554735E+00 6.5305855409503426E+00 + 6.5305861405253349E+00 6.5305867475709043E+00 6.5305873621786210E+00 + 6.5305879844411496E+00 6.5305886144522836E+00 6.5305892523069513E+00 + 6.5305898981012342E+00 6.5305905519323764E+00 6.5305912138988003E+00 + 6.5305918841001160E+00 6.5305925626371524E+00 6.5305932496119450E+00 + 6.5305939451277695E+00 6.5305946492891591E+00 6.5305953622019048E+00 + 6.5305960839730757E+00 6.5305968147110409E+00 6.5305975545254844E+00 + 6.5305983035274098E+00 6.5305990618291681E+00 6.5305998295444629E+00 + 6.5306006067883793E+00 6.5306013936773901E+00 6.5306021903293789E+00 + 6.5306029968636468E+00 6.5306038134009485E+00 6.5306046400634878E+00 + 6.5306054769749426E+00 6.5306063242604973E+00 6.5306071820468379E+00 + 6.5306080504621846E+00 6.5306089296362968E+00 6.5306098197005102E+00 + 6.5306107207877426E+00 6.5306116330325112E+00 6.5306125565709641E+00 + 6.5306134915408816E+00 6.5306144380817113E+00 6.5306153963345839E+00 + 6.5306163664423256E+00 6.5306173485494927E+00 6.5306183428023710E+00 + 6.5306193493490223E+00 6.5306203683392798E+00 6.5306213999247893E+00 + 6.5306224442590199E+00 6.5306235014972911E+00 6.5306245717967846E+00 + 6.5306256553165811E+00 6.5306267522176737E+00 6.5306278626629837E+00 + 6.5306289868174110E+00 6.5306301248478178E+00 6.5306312769230823E+00 + 6.5306324432141176E+00 6.5306336238938743E+00 6.5306348191373962E+00 + 6.5306360291218271E+00 6.5306372540264315E+00 6.5306384940326341E+00 + 6.5306397493240276E+00 6.5306410200864216E+00 6.5306423065078407E+00 + 6.5306436087785746E+00 6.5306449270911937E+00 6.5306462616405776E+00 + 6.5306476126239366E+00 6.5306489802408532E+00 6.5306503646932894E+00 + 6.5306517661856418E+00 6.5306531849247396E+00 6.5306546211198988E+00 + 6.5306560749829412E+00 6.5306575467282135E+00 6.5306590365726356E+00 + 6.5306605447357189E+00 6.5306620714396040E+00 6.5306636169090764E+00 + 6.5306651813716217E+00 6.5306667650574308E+00 6.5306683681994544E+00 + 6.5306699910334194E+00 6.5306716337978683E+00 6.5306732967341867E+00 + 6.5306749800866504E+00 6.5306766841024366E+00 6.5306784090316770E+00 + 6.5306801551274853E+00 6.5306819226459902E+00 6.5306837118463719E+00 + 6.5306855229908960E+00 6.5306873563449521E+00 6.5306892121770899E+00 + 6.5306910907590510E+00 6.5306929923658128E+00 6.5306949172756203E+00 + 6.5306968657700297E+00 6.5306988381339401E+00 6.5307008346556294E+00 + 6.5307028556268119E+00 6.5307049013426557E+00 6.5307069721018332E+00 + 6.5307090682065576E+00 6.5307111899626351E+00 6.5307133376794901E+00 + 6.5307155116702091E+00 6.5307177122515974E+00 6.5307199397442011E+00 + 6.5307221944723759E+00 6.5307244767643011E+00 6.5307267869520391E+00 + 6.5307291253715860E+00 6.5307314923629054E+00 6.5307338882699764E+00 + 6.5307363134408369E+00 6.5307387682276357E+00 6.5307412529866840E+00 + 6.5307437680784828E+00 6.5307463138677866E+00 6.5307488907236593E+00 + 6.5307514990194946E+00 6.5307541391330961E+00 6.5307568114467065E+00 + 6.5307595163470653E+00 6.5307622542254649E+00 6.5307650254777867E+00 + 6.5307678305045780E+00 6.5307706697110639E+00 6.5307735435072463E+00 + 6.5307764523079328E+00 6.5307793965327905E+00 6.5307823766064033E+00 + 6.5307853929583253E+00 6.5307884460231493E+00 6.5307915362405398E+00 + 6.5307946640553167E+00 6.5307978299174874E+00 6.5308010342823186E+00 + 6.5308042776103914E+00 6.5308075603676654E+00 6.5308108830255334E+00 + 6.5308142460608787E+00 6.5308176499561377E+00 6.5308210951993724E+00 + 6.5308245822843123E+00 6.5308281117104343E+00 6.5308316839830161E+00 + 6.5308352996132069E+00 6.5308389591180838E+00 6.5308426630207270E+00 + 6.5308464118502743E+00 6.5308502061419960E+00 6.5308540464373577E+00 + 6.5308579332840866E+00 6.5308618672362506E+00 6.5308658488543063E+00 + 6.5308698787051842E+00 6.5308739573623642E+00 6.5308780854059236E+00 + 6.5308822634226278E+00 6.5308864920060019E+00 6.5308907717563924E+00 + 6.5308951032810469E+00 6.5308994871941870E+00 6.5309039241170845E+00 + 6.5309084146781338E+00 6.5309129595129303E+00 6.5309175592643420E+00 + 6.5309222145826054E+00 6.5309269261253720E+00 6.5309316945578120E+00 + 6.5309365205526841E+00 6.5309414047904175E+00 6.5309463479591905E+00 + 6.5309513507550170E+00 6.5309564138818157E+00 6.5309615380515140E+00 + 6.5309667239841049E+00 6.5309719724077580E+00 6.5309772840588867E+00 + 6.5309826596822340E+00 6.5309881000309637E+00 6.5309936058667510E+00 + 6.5309991779598606E+00 6.5310048170892392E+00 6.5310105240426042E+00 + 6.5310162996165335E+00 6.5310221446165482E+00 6.5310280598572206E+00 + 6.5310340461622509E+00 6.5310401043645578E+00 6.5310462353063761E+00 + 6.5310524398393595E+00 6.5310587188246600E+00 6.5310650731330258E+00 + 6.5310715036448990E+00 6.5310780112505125E+00 6.5310845968499853E+00 + 6.5310912613534136E+00 6.5310980056809873E+00 6.5311048307630593E+00 + 6.5311117375402725E+00 6.5311187269636406E+00 6.5311257999946539E+00 + 6.5311329576053874E+00 6.5311402007785926E+00 6.5311475305077993E+00 + 6.5311549477974262E+00 6.5311624536628772E+00 6.5311700491306421E+00 + 6.5311777352384119E+00 6.5311855130351715E+00 6.5311933835813107E+00 + 6.5312013479487341E+00 6.5312094072209561E+00 6.5312175624932145E+00 + 6.5312258148725748E+00 6.5312341654780415E+00 6.5312426154406644E+00 + 6.5312511659036385E+00 6.5312598180224279E+00 6.5312685729648621E+00 + 6.5312774319112492E+00 6.5312863960544911E+00 6.5312954666001826E+00 + 6.5313046447667276E+00 6.5313139317854567E+00 6.5313233289007204E+00 + 6.5313328373700168E+00 6.5313424584640902E+00 6.5313521934670575E+00 + 6.5313620436765030E+00 6.5313720104035955E+00 6.5313820949732131E+00 + 6.5313922987240298E+00 6.5314026230086508E+00 6.5314130691937091E+00 + 6.5314236386599820E+00 6.5314343328025108E+00 6.5314451530306945E+00 + 6.5314561007684171E+00 6.5314671774541528E+00 6.5314783845410744E+00 + 6.5314897234971641E+00 6.5315011958053342E+00 6.5315128029635252E+00 + 6.5315245464848131E+00 6.5315364278975343E+00 6.5315484487453803E+00 + 6.5315606105875084E+00 6.5315729149986508E+00 6.5315853635692296E+00 + 6.5315979579054400E+00 6.5316106996293879E+00 6.5316235903791577E+00 + 6.5316366318089534E+00 6.5316498255891693E+00 6.5316631734065185E+00 + 6.5316766769641079E+00 6.5316903379815576E+00 6.5317041581950894E+00 + 6.5317181393576282E+00 6.5317322832388900E+00 6.5317465916254935E+00 + 6.5317610663210326E+00 6.5317757091461717E+00 6.5317905219387464E+00 + 6.5318055065538401E+00 6.5318206648638766E+00 6.5318359987586927E+00 + 6.5318515101456356E+00 6.5318672009496321E+00 6.5318830731132635E+00 + 6.5318991285968488E+00 6.5319153693785115E+00 6.5319317974542486E+00 + 6.5319484148380065E+00 6.5319652235617269E+00 6.5319822256754350E+00 + 6.5319994232472594E+00 6.5320168183635356E+00 6.5320344131288115E+00 + 6.5320522096659213E+00 6.5320702101160277E+00 6.5320884166386577E+00 + 6.5321068314117419E+00 6.5321254566316362E+00 6.5321442945131700E+00 + 6.5321633472896607E+00 6.5321826172129205E+00 6.5322021065532949E+00 + 6.5322218175996598E+00 6.5322417526594254E+00 6.5322619140585303E+00 + 6.5322823041414519E+00 6.5323029252711873E+00 6.5323237798292233E+00 + 6.5323448702155291E+00 6.5323661988485213E+00 6.5323877681650240E+00 + 6.5324095806202278E+00 6.5324316386876378E+00 6.5324539448590251E+00 + 6.5324765016443465E+00 6.5324993115716810E+00 6.5325223771871519E+00 + 6.5325457010548291E+00 6.5325692857566384E+00 6.5325931338922514E+00 + 6.5326172480789699E+00 6.5326416309516047E+00 6.5326662851623389E+00 + 6.5326912133805797E+00 6.5327164182928081E+00 6.5327419026024183E+00 + 6.5327676690295160E+00 6.5327937203107682E+00 6.5328200591991727E+00 + 6.5328466884638559E+00 6.5328736108898573E+00 6.5329008292778727E+00 + 6.5329283464440211E+00 6.5329561652195709E+00 6.5329842884506686E+00 + 6.5330127189980391E+00 6.5330414597366691E+00 6.5330705135555123E+00 + 6.5330998833571181E+00 6.5331295720572884E+00 6.5331595825847151E+00 + 6.5331899178805735E+00 6.5332205808981145E+00 6.5332515746022555E+00 + 6.5332829019691196E+00 6.5333145659855658E+00 6.5333465696487210E+00 + 6.5333789159654625E+00 6.5334116079518854E+00 6.5334446486327664E+00 + 6.5334780410409827E+00 6.5335117882169245E+00 6.5335458932078545E+00 + 6.5335803590673001E+00 6.5336151888543448E+00 6.5336503856329617E+00 + 6.5336859524712807E+00 6.5337218924408287E+00 6.5337582086157733E+00 + 6.5337949040720984E+00 6.5338319818867685E+00 6.5338694451368680E+00 + 6.5339072968986915E+00 6.5339455402468234E+00 6.5339841782531636E+00 + 6.5340232139859173E+00 6.5340626505085861E+00 6.5341024908788699E+00 + 6.5341427381475663E+00 6.5341833953574282E+00 6.5342244655419641E+00 + 6.5342659517242208E+00 6.5343078569155066E+00 6.5343501841140830E+00 + 6.5343929363038047E+00 6.5344361164527154E+00 6.5344797275116093E+00 + 6.5345237724125171E+00 6.5345682540671834E+00 6.5346131753654522E+00 + 6.5346585391736278E+00 6.5347043483327720E+00 6.5347506056569546E+00 + 6.5347973139314357E+00 6.5348444759108011E+00 6.5348920943170352E+00 + 6.5349401718375262E+00 6.5349887111230354E+00 6.5350377147855534E+00 + 6.5350871853961454E+00 6.5351371254826995E+00 6.5351875375275998E+00 + 6.5352384239653540E+00 6.5352897871801208E+00 6.5353416295031872E+00 + 6.5353939532103533E+00 6.5354467605192381E+00 6.5355000535865129E+00 + 6.5355538345050617E+00 6.5356081053010096E+00 6.5356628679307338E+00 + 6.5357181242777349E+00 6.5357738761494231E+00 6.5358301252738293E+00 + 6.5358868732961959E+00 6.5359441217755005E+00 6.5360018721808366E+00 + 6.5360601258877189E+00 6.5361188841742877E+00 6.5361781482173669E+00 + 6.5362379190884496E+00 6.5362981977495531E+00 6.5363589850489339E+00 + 6.5364202817167296E+00 6.5364820883604269E+00 6.5365444054602291E+00 + 6.5366072333642959E+00 6.5366705722838283E+00 6.5367344222880321E+00 + 6.5367987832989378E+00 6.5368636550860710E+00 6.5369290372609807E+00 + 6.5369949292716178E+00 6.5370613303965346E+00 6.5371282397389603E+00 + 6.5371956562206881E+00 6.5372635785758035E+00 6.5373320053442372E+00 + 6.5374009348651363E+00 6.5374703652700781E+00 6.5375402944760612E+00 + 6.5376107201783427E+00 6.5376816398430604E+00 6.5377530506996626E+00 + 6.5378249497331247E+00 6.5378973336759794E+00 6.5379701990000836E+00 + 6.5380435419082454E+00 6.5381173583255405E+00 6.5381916438904524E+00 + 6.5382663939457508E+00 6.5383416035291555E+00 6.5384172673637000E+00 + 6.5384933798479121E+00 6.5385699350456665E+00 6.5386469266758116E+00 + 6.5387243481015140E+00 6.5388021923193191E+00 6.5388804519479109E+00 + 6.5389591192166163E+00 6.5390381859535713E+00 6.5391176435736025E+00 + 6.5391974830657604E+00 6.5392776949805862E+00 6.5393582694169892E+00 + 6.5394391960088232E+00 6.5395204639110833E+00 6.5396020617857991E+00 + 6.5396839777875009E+00 6.5397661995483558E+00 6.5398487141629076E+00 + 6.5399315081724421E+00 6.5400145675489103E+00 6.5400978776784973E+00 + 6.5401814233447313E+00 6.5402651887111851E+00 6.5403491573037238E+00 + 6.5404333119923121E+00 6.5405176349723613E+00 6.5406021077456007E+00 + 6.5406867111004665E+00 6.5407714250920028E+00 6.5408562290212666E+00 + 6.5409411014141687E+00 6.5410260199998520E+00 6.5411109616884948E+00 + 6.5411959025485453E+00 6.5412808177834147E+00 6.5413656817075907E+00 + 6.5414504677221297E+00 6.5415351482895812E+00 6.5416196949082570E+00 + 6.5417040780858766E+00 6.5417882673125831E+00 6.5418722310332482E+00 + 6.5419559366191526E+00 6.5420393503389125E+00 6.5421224373287528E+00 + 6.5422051615620012E+00 6.5422874858178668E+00 6.5423693716494604E+00 + 6.5424507793510100E+00 6.5425316679243002E+00 6.5426119950443127E+00 + 6.5426917170239669E+00 6.5427707887781192E+00 6.5428491637865767E+00 + 6.5429267940563030E+00 6.5430036300826737E+00 6.5430796208098103E+00 + 6.5431547135899724E+00 6.5432288541419750E+00 6.5433019865085944E+00 + 6.5433740530129798E+00 6.5434449942140276E+00 6.5435147488606731E+00 + 6.5435832538451253E+00 6.5436504441549745E+00 6.5437162528241908E+00 + 6.5437806108829140E+00 6.5438434473061413E+00 6.5439046889611499E+00 + 6.5439642605536923E+00 6.5440220845729469E+00 6.5440780812351909E+00 + 6.5441321684261222E+00 6.5441842616418855E+00 6.5442342739286845E+00 + 6.5442821158210247E+00 6.5443276952785094E+00 6.5443709176211886E+00 + 6.5444116854634062E+00 6.5444498986461328E+00 6.5444854541677406E+00 + 6.5445182461131974E+00 6.5445481655816362E+00 6.5445751006122777E+00 + 6.5445989361086765E+00 6.5446195537612040E+00 6.5446368319678427E+00 + 6.5446506457531317E+00 6.5446608666853070E+00 6.5446673627915883E+00 + 6.5446699984715329E+00 6.5446686344084739E+00 6.5446631274789855E+00 + 6.5446533306602932E+00 6.5446390929356681E+00 6.5446202591976945E+00 + 6.5445966701494047E+00 6.5445681622032428E+00 6.5445345673777924E+00 + 6.5444957131922292E+00 6.5444514225584944E+00 6.5444015136710796E+00 + 6.5443457998944350E+00 6.5442840896479257E+00 6.5442161862882902E+00 + 6.5441418879895785E+00 6.5440609876204894E+00 6.5439732726190956E+00 + 6.5438785248648665E+00 6.5437765205479845E+00 6.5436670300358646E+00 + 6.5435498177368752E+00 6.5434246419611366E+00 6.5432912547784419E+00 + 6.5431494018731584E+00 6.5429988223961200E+00 6.5428392488134248E+00 + 6.5426704067521051E+00 6.5424920148426091E+00 6.5423037845580225E+00 + 6.5421054200500031E+00 6.5418966179813935E+00 6.5416770673553550E+00 + 6.5414464493411320E+00 6.5412044370962326E+00 6.5409506955850567E+00 + 6.5406848813939176E+00 6.5404066425423490E+00 6.5401156182906934E+00 + 6.5398114389439064E+00 6.5394937256514645E+00 6.5391620902034227E+00 + 6.5388161348224703E+00 6.5384554519519877E+00 6.5380796240400114E+00 + 6.5376882233190869E+00 6.5372808115819137E+00 6.5368569399527807E+00 + 6.5364161486546664E+00 6.5359579667720267E+00 6.5354819120091552E+00 + 6.5349874904440917E+00 6.5344741962780288E+00 6.5339415115801449E+00 + 6.5333889060278434E+00 6.5328158366423041E+00 6.5322217475193600E+00 + 6.5316060695555853E+00 6.5309682201695853E+00 6.5303076030184553E+00 + 6.5296236077093264E+00 6.5289156095059830E+00 6.5281829690305102E+00 + 6.5274250319599254E+00 6.5266411287177570E+00 6.5258305741605565E+00 + 6.5249926672592578E+00 6.5241266907754412E+00 6.5232319109324006E+00 + 6.5223075770810057E+00 6.5213529213603794E+00 6.5203671583533138E+00 + 6.5193494847364688E+00 6.5182990789252759E+00 6.5172151007136181E+00 + 6.5160966909082108E+00 6.5149429709577493E+00 6.5137530425767673E+00 + 6.5125259873642651E+00 6.5112608664171043E+00 6.5099567199381836E+00 + 6.5086125668394530E+00 6.5072274043397362E+00 6.5058002075574839E+00 + 6.5043299290984429E+00 6.5028154986382969E+00 6.5012558225003634E+00 + 6.4996497832284179E+00 6.4979962391546762E+00 6.4962940239630447E+00 + 6.4945419462477529E+00 6.4927387890674364E+00 6.4908833094947802E+00 + 6.4889742381618492E+00 6.4870102788012494E+00 6.4849901077832532E+00 + 6.4829123736489933E+00 6.4807756966399914E+00 6.4785786682240909E+00 + 6.4763198506180233E+00 6.4739977763068648E+00 6.4716109475604737E+00 + 6.4691578359472652E+00 6.4666368818454716E+00 6.4640464939522371E+00 + 6.4613850487907065E+00 6.4586508902155204E+00 6.4558423289169635E+00 + 6.4529576419240620E+00 6.4499950721070736E+00 6.4469528276796151E+00 + 6.4438290817009536E+00 6.4406219715786861E+00 6.4373295985724290E+00 + 6.4339500272988257E+00 6.4304812852383950E+00 6.4269213622447330E+00 + 6.4232682100565510E+00 6.4195197418131240E+00 6.4156738315737138E+00 + 6.4117283138415413E+00 6.4076809830930026E+00 6.4035295933126886E+00 + 6.3992718575349663E+00 6.3949054473928291E+00 6.3904279926746943E+00 + 6.3858370808900471E+00 6.3811302568446369E+00 6.3763050222260995E+00 + 6.3713588352009394E+00 6.3662891100237031E+00 6.3610932166593823E+00 + 6.3557684804199654E+00 6.3503121816162276E+00 6.3447215552257825E+00 + 6.3389937905785487E+00 6.3331260310607425E+00 6.3271153738386330E+00 + 6.3209588696032668E+00 6.3146535223374549E+00 6.3081962891063617E+00 + 6.3015840798730585E+00 6.2948137573404557E+00 6.2878821368211062E+00 + 6.2807859861363795E+00 6.2735220255465789E+00 6.2660869277136220E+00 + 6.2584773176979391E+00 6.2506897729913415E+00 6.2427208235875806E+00 + 6.2345669520924814E+00 6.2262245938754894E+00 6.2176901372645368E+00 + 6.2089599237863089E+00 6.2000302484538388E+00 6.1908973601035839E+00 + 6.1815574617841254E+00 6.1720067111986987E+00 6.1622412212037769E+00 + 6.1522570603660665E+00 6.1420502535802495E+00 6.1316167827498829E+00 + 6.1209525875339930E+00 6.1100535661617652E+00 6.0989155763180722E+00 + 6.0875344361022803E+00 6.0759059250631786E+00 6.0640257853126567E+00 + 6.0518897227209001E+00 6.0394934081960114E+00 6.0268324790507783E+00 + 6.0139025404596147E+00 6.0006991670085315E+00 5.9872179043411666E+00 + 5.9734542709038116E+00 5.9594037597925889E+00 5.9450618407056934E+00 + 5.9304239620039212E+00 5.9154855528825303E+00 5.9002420256575485E+00 + 5.8846887781696902E+00 5.8688211963090176E+00 5.8526346566634544E+00 + 5.8361245292943362E+00 5.8192861806421021E+00 5.8021149765651918E+00 + 5.7846062855153155E+00 5.7667554818520932E+00 5.7485579493000714E+00 + 5.7300090845511269E+00 5.7111043010151628E+00 5.6918390327219139E+00 + 5.6722087383766882E+00 5.6522089055727083E+00 5.6318350551627123E+00 + 5.6110827457922472E+00 5.5899475785970827E+00 5.5684252020670817E+00 + 5.5465113170784939E+00 5.5242016820968693E+00 5.5014921185522194E+00 + 5.4783785163882008E+00 5.4548568397867214E+00 5.4309231330692711E+00 + 5.4065735267759356E+00 5.3818042439230123E+00 5.3566116064396558E+00 + 5.3309920417839827E+00 5.3049420897385007E+00 5.2784584093847178E+00 + 5.2515377862561810E+00 5.2241771396691430E+00 5.1963735302294483E+00 + 5.1681241675140361E+00 5.1394264179250104E+00 5.1102778127137434E+00 + 5.0806760561722051E+00 5.0506190339880659E+00 5.0201048217598707E+00 + 4.9891316936678365E+00 4.9576981312955626E+00 4.9258028325972010E+00 + 4.8934447210042258E+00 4.8606229546652253E+00 4.8273369358117240E+00 + 4.7935863202421398E+00 4.7593710269157024E+00 4.7246912476470548E+00 + 4.6895474568920106E+00 4.6539404216138323E+00 4.6178712112189428E+00 + 4.5813412075500759E+00 4.5443521149240258E+00 4.5069059702005960E+00 + 4.4690051528681609E+00 4.4306523951307364E+00 4.3918507919802448E+00 + 4.3526038112371044E+00 4.3129153035409127E+00 4.2727895122724906E+00 + 4.2322310833871386E+00 4.1912450751382808E+00 4.1498369676693745E+00 + 4.1080126724510810E+00 4.0657785415394283E+00 4.0231413766297175E+00 + 3.9801084378796681E+00 3.9366874524740219E+00 3.8928866229019166E+00 + 3.8487146349165715E+00 3.8041806651460814E+00 3.7592943883222545E+00 + 3.7140659840935348E+00 3.6685061433861521E+00 3.6226260742766456E+00 + 3.5764375073369554E+00 3.5299527004120939E+00 3.4831844427884957E+00 + 3.4361460587097374E+00 3.3888514101943308E+00 3.3413148991087986E+00 + 3.2935514684472240E+00 3.2455766027665449E+00 3.1974063277251514E+00 + 3.1490572086699484E+00 3.1005463482154241E+00 3.0518913827556462E+00 + 3.0031104778483684E+00 2.9542223224077651E+00 2.9052461216404040E+00 + 2.8562015886563406E+00 2.8071089346852007E+00 2.7579888578243246E+00 + 2.7088625302440779E+00 2.6597515837725312E+00 2.6106780937797773E+00 + 2.5616645612794131E+00 2.5127338931627681E+00 2.4639093804791417E+00 + 2.4152146746732108E+00 2.3666737616892939E+00 2.3183109338501282E+00 + 2.2701507594170311E+00 2.2222180497369686E+00 2.1745378238821038E+00 + 2.1271352706869950E+00 2.0800357080898957E+00 2.0332645396855935E+00 + 1.9868472084001201E+00 1.9408091472005524E+00 1.8951757267581677E+00 + 1.8499721999887131E+00 1.8052236434013496E+00 1.7609548951965805E+00 + 1.7171904900650046E+00 1.6739545906517137E+00 1.6312709156669674E+00 + 1.5891626646424453E+00 1.5476524393535231E+00 1.5067621619533567E+00 + 1.4665129898926239E+00 1.4269252277319293E+00 1.3880182359905069E+00 + 1.3498103372172621E+00 1.3123187195170507E+00 1.2755593378184804E+00 + 1.2395468132283314E+00 1.2042943308839473E+00 1.1698135367876257E+00 + 1.1361144341879874E+00 1.1032052801620771E+00 1.0710924831493338E+00 + 1.0397805022955706E+00 1.0092717495810795E+00 9.7956649583396405E-01 + 9.5066278186654229E-01 9.2255633612133536E-01 8.9524050037268177E-01 + 8.6870616520209321E-01 8.4294171714932886E-01 8.1793299963814226E-01 + 7.9366328998543390E-01 7.7011329502557624E-01 7.4726116811831600E-01 + 7.2508255055893511E-01 7.0355064067380579E-01 6.8263629416235450E-01 + 6.6230815953957245E-01 6.4253285283967554E-01 6.2327517606336535E-01 + 6.0449838418724089E-01 5.8616450590549962E-01 5.6823472364089589E-01 + 5.5066981874459808E-01 5.3343068820443473E-01 5.1647893959729985E-01 + 4.9977757145748575E-01 4.8329174668707009E-01 4.6698966711091605E-01 + 4.5084355777747442E-01 4.3483077012973492E-01 4.1893501372014291E-01 + 4.0314772672054633E-01 3.8746959608477349E-01 3.7191223885750468E-01 + 3.5650005678879187E-01 3.4127227710583441E-01 3.2628519300785636E-01 + 3.1159488956651410E-01 2.9719362938755345E-01 2.8305853528975122E-01 + 2.6916989998954471E-01 2.5551126741986790E-01 2.4206940037819227E-01 + 2.2883415409667562E-01 2.1579827649644773E-01 2.0295715555446342E-01 + 1.9030853277305529E-01 1.7785219949818495E-01 1.6558969012372660E-01 + 1.5352398338147311E-01 1.4165922012176269E-01 1.3000044342335304E-01 + 1.1855336462403808E-01 1.0732415699970695E-01 9.6319277341263831E-02 + 8.5545314554090368E-02 7.5008863611210619E-02 6.4716422681346975E-02 + 5.4674310970201347E-02 4.4888604705755265E-02 3.5365088714371398E-02 + 2.6109221166971331E-02 1.7126109254699214E-02 8.4204937576625172E-03 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + -4.0239930812239159E+01 -4.0204194128282047E+01 -4.0077822036670106E+01 + -4.0003712547842881E+01 -3.9950953451194053E+01 -3.9714822315071423E+01 + -3.9669311695307044E+01 -3.9645907916286333E+01 -3.9618556128725416E+01 + -3.9595512486667545E+01 -3.9574780377133152E+01 -3.9555699870106288E+01 + -3.9538089595099123E+01 -3.9521708307270629E+01 -3.9506368153343736E+01 + -3.9491925893441156E+01 -3.9478264811877416E+01 -3.9465289194016350E+01 + -3.9452919843711612E+01 -3.9441090388728163E+01 -3.9429744652591708E+01 + -3.9418834672750755E+01 -3.9408319168183013E+01 -3.9398162348888320E+01 + -3.9388332979529892E+01 -3.9378803634190675E+01 -3.9369550097589986E+01 + -3.9360550879616483E+01 -3.9351786818402687E+01 -3.9343240753269043E+01 + -3.9334897253290571E+01 -3.9326742390508350E+01 -3.9318763549249383E+01 + -3.9310949264862920E+01 -3.9303289086579490E+01 -3.9295773460283215E+01 + -3.9288393627812070E+01 -3.9281141540063224E+01 -3.9274009781682274E+01 + -3.9266991505526647E+01 -3.9260080375414425E+01 -3.9253270515926268E+01 + -3.9246556468240300E+01 -3.9239933151146921E+01 -3.9233395826526724E+01 + -3.9226940068692983E+01 -3.9220561737086044E+01 -3.9214256951889148E+01 + -3.9208022072197281E+01 -3.9201853676423241E+01 -3.9195748544671424E+01 + -3.9189703642845345E+01 -3.9183716108287705E+01 -3.9177783236779476E+01 + -3.9171902470745785E+01 -3.9166071388535094E+01 -3.9160287694658912E+01 + -3.9154549210887794E+01 -3.9148853868116660E+01 -3.9143199698921237E+01 + -3.9137584830733388E+01 -3.9132007479578100E+01 -3.9126465944316038E+01 + -3.9120958601342302E+01 -3.9115483899700408E+01 -3.9110040356572441E+01 + -3.9104626553111196E+01 -3.9099241130582904E+01 -3.9093882786793685E+01 + -3.9088550272777056E+01 -3.9083242389714535E+01 -3.9077957986077109E+01 + -3.9072695954962725E+01 -3.9067455231617153E+01 -3.9062234791122030E+01 + -3.9057033646237521E+01 -3.9051850845387328E+01 -3.9046685470773156E+01 + -3.9041536636611212E+01 -3.9036403487480698E+01 -3.9031285196774505E+01 + -3.9026180965245480E+01 -3.9021090019642877E+01 -3.9016011611429519E+01 + -3.9010945015575082E+01 -3.9005889529422014E+01 -3.9000844471615814E+01 + -3.8995809181096988E+01 -3.8990783016151347E+01 -3.8985765353512292E+01 + -3.8980755587513286E+01 -3.8975753129287718E+01 -3.8970757406010932E+01 + -3.8965767860183632E+01 -3.8960783948953434E+01 -3.8955805143471807E+01 + -3.8950830928284617E+01 -3.8945860800753486E+01 -3.8940894270507819E+01 + -3.8935930858922546E+01 -3.8930970098624215E+01 -3.8926011533019363E+01 + -3.8921054715847013E+01 -3.8916099210752833E+01 -3.8911144590882998E+01 + -3.8906190438498108E+01 -3.8901236344604627E+01 -3.8896281908604038E+01 + -3.8891326737957101E+01 -3.8886370447864500E+01 -3.8881412660961779E+01 + -3.8876453007027038E+01 -3.8871491122702295E+01 -3.8866526651227410E+01 + -3.8861559242184519E+01 -3.8856588551254269E+01 -3.8851614239982318E+01 + -3.8846635975555429E+01 -3.8841653430587087E+01 -3.8836666282912283E+01 + -3.8831674215390350E+01 -3.8826676915715900E+01 -3.8821674076237656E+01 + -3.8816665393784120E+01 -3.8811650569496379E+01 -3.8806629308667532E+01 + -3.8801601320588595E+01 -3.8796566318399400E+01 -3.8791524018946724E+01 + -3.8786474142645808E+01 -3.8781416413349277E+01 -3.8776350558219356E+01 + -3.8771276307605255E+01 -3.8766193394924990E+01 -3.8761101556552433E+01 + -3.8756000531706157E+01 -3.8750890062345178E+01 -3.8745769893065670E+01 + -3.8740639771003394E+01 -3.8735499445737446E+01 -3.8730348669199991E+01 + -3.8725187195586308E+01 -3.8720014781269938E+01 -3.8714831184718989E+01 + -3.8709636166416836E+01 -3.8704429488784868E+01 -3.8699210916106715E+01 + -3.8693980214456069E+01 -3.8688737151627002E+01 -3.8683481497065408E+01 + -3.8678213021803515E+01 -3.8672931498396480E+01 -3.8667636700859710E+01 + -3.8662328404609468E+01 -3.8657006386405264E+01 -3.8651670424292519E+01 + -3.8646320297548677E+01 -3.8640955786630087E+01 -3.8635576673119964E+01 + -3.8630182739679057E+01 -3.8624773769996686E+01 -3.8619349548743585E+01 + -3.8613909861526309E+01 -3.8608454494842128E+01 -3.8602983236036472E+01 + -3.8597495873259703E+01 -3.8591992195426997E+01 -3.8586471992178275E+01 + -3.8580935053838459E+01 -3.8575381171380947E+01 -3.8569810136390011E+01 + -3.8564221741024660E+01 -3.8558615777984208E+01 -3.8552992040473839E+01 + -3.8547350322171411E+01 -3.8541690417194921E+01 -3.8536012120070893E+01 + -3.8530315225704022E+01 -3.8524599529345757E+01 -3.8518864826566286E+01 + -3.8513110913224857E+01 -3.8507337585442080E+01 -3.8501544639572430E+01 + -3.8495731872177281E+01 -3.8489899079998906E+01 -3.8484046059934897E+01 + -3.8478172609012653E+01 -3.8472278524365443E+01 -3.8466363603207860E+01 + -3.8460427642812640E+01 -3.8454470440487647E+01 -3.8448491793553238E+01 + -3.8442491499320042E+01 -3.8436469355067750E+01 -3.8430425158023411E+01 + -3.8424358705341120E+01 -3.8418269794081084E+01 -3.8412158221190474E+01 + -3.8406023783482631E+01 -3.8399866277619047E+01 -3.8393685500089433E+01 + -3.8387481247193968E+01 -3.8381253315024182E+01 -3.8375001499446313E+01 + -3.8368725596082548E+01 -3.8362425400294192E+01 -3.8356100707164984E+01 + -3.8349751311483359E+01 -3.8343377007727440E+01 -3.8336977590047873E+01 + -3.8330552852252104E+01 -3.8324102587788772E+01 -3.8317626589732747E+01 + -3.8311124650769216E+01 -3.8304596563178663E+01 -3.8298042118822821E+01 + -3.8291461109130111E+01 -3.8284853325080988E+01 -3.8278218557193497E+01 + -3.8271556595509985E+01 -3.8264867229583523E+01 -3.8258150248463409E+01 + -3.8251405440682817E+01 -3.8244632594245140E+01 -3.8237831496611228E+01 + -3.8231001934685970E+01 -3.8224143694806543E+01 -3.8217256562728942E+01 + -3.8210340323616229E+01 -3.8203394762026036E+01 -3.8196419661898531E+01 + -3.8189414806544150E+01 -3.8182379978632426E+01 -3.8175314960179996E+01 + -3.8168219532538622E+01 -3.8161093476384480E+01 -3.8153936571705906E+01 + -3.8146748597793533E+01 -3.8139529333227536E+01 -3.8132278555868155E+01 + -3.8124996042843840E+01 -3.8117681570540945E+01 -3.8110334914592812E+01 + -3.8102955849869154E+01 -3.8095544150466019E+01 -3.8088099589694835E+01 + -3.8080621940072405E+01 -3.8073110973310541E+01 -3.8065566460306002E+01 + -3.8057988171130880E+01 -3.8050375875021366E+01 -3.8042729340369377E+01 + -3.8035048334712023E+01 -3.8027332624721595E+01 -3.8019581976196399E+01 + -3.8011796154050700E+01 -3.8003974922305829E+01 -3.7996118044080134E+01 + -3.7988225281579723E+01 -3.7980296396089038E+01 -3.7972331147962151E+01 + -3.7964329296612611E+01 -3.7956290600505092E+01 -3.7948214817145697E+01 + -3.7940101703073424E+01 -3.7931951013850757E+01 -3.7923762504054835E+01 + -3.7915535927268756E+01 -3.7907271036072551E+01 -3.7898967582034075E+01 + -3.7890625315701037E+01 -3.7882243986591689E+01 -3.7873823343186054E+01 + -3.7865363132917643E+01 -3.7856863102165107E+01 -3.7848322996243198E+01 + -3.7839742559394182E+01 -3.7831121534780273E+01 -3.7822459664474003E+01 + -3.7813756689450763E+01 -3.7805012349580025E+01 -3.7796226383617309E+01 + -3.7787398529195755E+01 -3.7778528522817474E+01 -3.7769616099846289E+01 + -3.7760660994498835E+01 -3.7751662939836393E+01 -3.7742621667757355E+01 + -3.7733536908988548E+01 -3.7724408393077503E+01 -3.7715235848384353E+01 + -3.7706019002073802E+01 -3.7696757580107274E+01 -3.7687451307234809E+01 + -3.7678099906987676E+01 -3.7668703101669500E+01 -3.7659260612349371E+01 + -3.7649772158853480E+01 -3.7640237459757472E+01 -3.7630656232378698E+01 + -3.7621028192768662E+01 -3.7611353055704647E+01 -3.7601630534682819E+01 + -3.7591860341910049E+01 -3.7582042188296320E+01 -3.7572175783447207E+01 + -3.7562260835656431E+01 -3.7552297051897504E+01 -3.7542284137817070E+01 + -3.7532221797727502E+01 -3.7522109734597706E+01 -3.7511947650047986E+01 + -3.7501735244340658E+01 -3.7491472216373708E+01 -3.7481158263672775E+01 + -3.7470793082384212E+01 -3.7460376367267152E+01 -3.7449907811686508E+01 + -3.7439387107605896E+01 -3.7428813945579307E+01 -3.7418188014744906E+01 + -3.7407509002817129E+01 -3.7396776596079896E+01 -3.7385990479378698E+01 + -3.7375150336113990E+01 -3.7364255848233626E+01 -3.7353306696225715E+01 + -3.7342302559111801E+01 -3.7331243114439253E+01 -3.7320128038274660E+01 + -3.7308957005196227E+01 -3.7297729688287099E+01 -3.7286445759128242E+01 + -3.7275104887791052E+01 -3.7263706742830728E+01 -3.7252250991279510E+01 + -3.7240737298639210E+01 -3.7229165328874430E+01 -3.7217534744405931E+01 + -3.7205845206103326E+01 -3.7194096373278541E+01 -3.7182287903678727E+01 + -3.7170419453479923E+01 -3.7158490677279538E+01 -3.7146501228090266E+01 + -3.7134450757332964E+01 -3.7122338914829868E+01 -3.7110165348798354E+01 + -3.7097929705843974E+01 -3.7085631630953536E+01 -3.7073270767489099E+01 + -3.7060846757181032E+01 -3.7048359240121442E+01 -3.7035807854758104E+01 + -3.7023192237887024E+01 -3.7010512024647063E+01 -3.6997766848512711E+01 + -3.6984956341288104E+01 -3.6972080133100413E+01 -3.6959137852393717E+01 + -3.6946129125922411E+01 -3.6933053578745387E+01 -3.6919910834219145E+01 + -3.6906700513992220E+01 -3.6893422237998578E+01 -3.6880075624451479E+01 + -3.6866660289837831E+01 -3.6853175848911597E+01 -3.6839621914687903E+01 + -3.6825998098437090E+01 -3.6812304009678932E+01 -3.6798539256176291E+01 + -3.6784703443929516E+01 -3.6770796177170801E+01 -3.6756817058357797E+01 + -3.6742765688168269E+01 -3.6728641665494735E+01 -3.6714444587437562E+01 + -3.6700174049300841E+01 -3.6685829644585560E+01 -3.6671410964984922E+01 + -3.6656917600378435E+01 -3.6642349138826432E+01 -3.6627705166564759E+01 + -3.6612985267999385E+01 -3.6598189025701323E+01 -3.6583316020401142E+01 + -3.6568365830983673E+01 -3.6553338034482870E+01 -3.6538232206077346E+01 + -3.6523047919084185E+01 -3.6507784744955096E+01 -3.6492442253270553E+01 + -3.6477020011735512E+01 -3.6461517586174644E+01 -3.6445934540526942E+01 + -3.6430270436841482E+01 -3.6414524835272637E+01 -3.6398697294075873E+01 + -3.6382787369602617E+01 -3.6366794616296403E+01 -3.6350718586687982E+01 + -3.6334558831391163E+01 -3.6318314899098844E+01 -3.6301986336578437E+01 + -3.6285572688668019E+01 -3.6269073498271943E+01 -3.6252488306357648E+01 + -3.6235816651950657E+01 -3.6219058072131546E+01 -3.6202212102031957E+01 + -3.6185278274831028E+01 -3.6168256121751512E+01 -3.6151145172056736E+01 + -3.6133944953046807E+01 -3.6116654990055480E+01 -3.6099274806446410E+01 + -3.6081803923610771E+01 -3.6064241860963698E+01 -3.6046588135940972E+01 + -3.6028842263996893E+01 -3.6011003758600779E+01 -3.5993072131234491E+01 + -3.5975046891390036E+01 -3.5956927546566476E+01 -3.5938713602267974E+01 + -3.5920404562001323E+01 -3.5901999927273351E+01 -3.5883499197589771E+01 + -3.5864901870451604E+01 -3.5846207441354487E+01 -3.5827415403786496E+01 + -3.5808525249226328E+01 -3.5789536467141772E+01 -3.5770448544988099E+01 + -3.5751260968206857E+01 -3.5731973220224553E+01 -3.5712584782451273E+01 + -3.5693095134279872E+01 -3.5673503753085221E+01 -3.5653810114222985E+01 + -3.5634013691029296E+01 -3.5614113954820233E+01 -3.5594110374891024E+01 + -3.5574002418516102E+01 -3.5553789550949091E+01 -3.5533471235422162E+01 + -3.5513046933146718E+01 -3.5492516103313712E+01 -3.5471878203093603E+01 + -3.5451132687636992E+01 -3.5430279010075608E+01 -3.5409316621523011E+01 + -3.5388244971075196E+01 -3.5367063505812197E+01 -3.5345771670799280E+01 + -3.5324368909088022E+01 -3.5302854661718321E+01 -3.5281228367719855E+01 + -3.5259489464114246E+01 -3.5237637385916848E+01 -3.5215671566139093E+01 + -3.5193591435790751E+01 -3.5171396423883124E+01 -3.5149085957430948E+01 + -3.5126659461455638E+01 -3.5104116358988691E+01 -3.5081456071074591E+01 + -3.5058678016774280E+01 -3.5035781613168965E+01 -3.5012766275363830E+01 + -3.4989631416492095E+01 -3.4966376447719419E+01 -3.4943000778247537E+01 + -3.4919503815320255E+01 -3.4895884964226525E+01 -3.4872143628307121E+01 + -3.4848279208958409E+01 -3.4824291105638892E+01 -3.4800178715874168E+01 + -3.4775941435262830E+01 -3.4751578657483023E+01 -3.4727089774297852E+01 + -3.4702474175562507E+01 -3.4677731249231108E+01 -3.4652860381362984E+01 + -3.4627860956130348E+01 -3.4602732355825701E+01 -3.4577473960869199E+01 + -3.4552085149816854E+01 -3.4526565299368251E+01 -3.4500913784375115E+01 + -3.4475129977850330E+01 -3.4449213250976001E+01 -3.4423162973113101E+01 + -3.4396978511811049E+01 -3.4370659232816152E+01 -3.4344204500083841E+01 + -3.4317613675785807E+01 -3.4290886120323115E+01 -3.4264021192335065E+01 + -3.4237018248711081E+01 -3.4209876644602204E+01 -3.4182595733431562E+01 + -3.4155174866907316E+01 -3.4127613395033791E+01 -3.4099910666124885E+01 + -3.4072066026816167E+01 -3.4044078822077566E+01 -3.4015948395227667E+01 + -3.3987674087946402E+01 -3.3959255240289238E+01 -3.3930691190701779E+01 + -3.3901981276033830E+01 -3.3873124831554492E+01 -3.3844121190967385E+01 + -3.3814969686425854E+01 -3.3785669648549316E+01 -3.3756220406439176E+01 + -3.3726621287695160E+01 -3.3696871618432631E+01 -3.3666970723299407E+01 + -3.3636917925493542E+01 -3.3606712546781161E+01 -3.3576353907514829E+01 + -3.3545841326651939E+01 -3.3515174121773974E+01 -3.3484351609105765E+01 + -3.3453373103535085E+01 -3.3422237918633350E+01 -3.3390945366675076E+01 + -3.3359494758659714E+01 -3.3327885404332655E+01 -3.3296116612206433E+01 + -3.3264187689583444E+01 -3.3232097942578129E+01 -3.3199846676139551E+01 + -3.3167433194075180E+01 -3.3134856799074242E+01 -3.3102116792731934E+01 + -3.3069212475573885E+01 -3.3036143147081113E+01 -3.3002908105715541E+01 + -3.2969506648945426E+01 -3.2935938073272105E+01 -3.2902201674256489E+01 + -3.2868296746546029E+01 -3.2834222583902374E+01 -3.2799978479229587E+01 + -3.2765563724602593E+01 -3.2730977611295884E+01 -3.2696219429813191E+01 + -3.2661288469917501E+01 -3.2626184020661242E+01 -3.2590905370417033E+01 + -3.2555451806909353E+01 -3.2519822617246163E+01 -3.2484017087951358E+01 + -3.2448034504997253E+01 -3.2411874153838376E+01 -3.2375535319445341E+01 + -3.2339017286338589E+01 -3.2302319338624024E+01 -3.2265440760028042E+01 + -3.2228380833932924E+01 -3.2191138843414478E+01 -3.2153714071277982E+01 + -3.2116105800096122E+01 -3.2078313312247182E+01 -3.2040335889953290E+01 + -3.2002172815319931E+01 -3.1963823370375462E+01 -3.1925286837111759E+01 + -3.1886562497524249E+01 -3.1847649633654324E+01 -3.1808547527630779E+01 + -3.1769255461712465E+01 -3.1729772718331574E+01 -3.1690098580137281E+01 + -3.1650232330040165E+01 -3.1610173251257027E+01 -3.1569920627356950E+01 + -3.1529473742306738E+01 -3.1488831880517854E+01 -3.1447994326894491E+01 + -3.1406960366880654E+01 -3.1365729286509435E+01 -3.1324300372451951E+01 + -3.1282672912067444E+01 -3.1240846193453805E+01 -3.1198819505498605E+01 + -3.1156592137931078E+01 -3.1114163381374517E+01 -3.1071532527399597E+01 + -3.1028698868578097E+01 -3.0985661698537200E+01 -3.0942420312014853E+01 + -3.0898974004915544E+01 -3.0855322074366711E+01 -3.0811463818776176E+01 + -3.0767398537889722E+01 -3.0723125532849718E+01 -3.0678644106254652E+01 + -3.0633953562218935E+01 -3.0589053206433125E+01 -3.0543942346226224E+01 + -3.0498620290626963E+01 -3.0453086350426886E+01 -3.0407339838244152E+01 + -3.0361380068587295E+01 -3.0315206357920623E+01 -3.0268818024729867E+01 + -3.0222214389588110E+01 -3.0175394775224031E+01 -3.0128358506588739E+01 + -3.0081104910925340E+01 -3.0033633317837900E+01 -2.9985943059361649E+01 + -2.9938033470034142E+01 -2.9889903886967019E+01 -2.9841553649918211E+01 + -2.9792982101365354E+01 -2.9744188586580091E+01 -2.9695172453702359E+01 + -2.9645933053816410E+01 -2.9596469741026997E+01 -2.9546781872536553E+01 + -2.9496868808723285E+01 -2.9446729913219585E+01 -2.9396364552992093E+01 + -2.9345772098421357E+01 -2.9294951923383870E+01 -2.9243903405332826E+01 + -2.9192625925382252E+01 -2.9141118868389050E+01 -2.9089381623039067E+01 + -2.9037413581930689E+01 -2.8985214141661832E+01 -2.8932782702916448E+01 + -2.8880118670552104E+01 -2.8827221453688672E+01 -2.8774090465797411E+01 + -2.8720725124790867E+01 -2.8667124853114441E+01 -2.8613289077837543E+01 + -2.8559217230746395E+01 -2.8504908748437650E+01 -2.8450363072412461E+01 + -2.8395579649171534E+01 -2.8340557930311043E+01 -2.8285297372619745E+01 + -2.8229797438175872E+01 -2.8174057594446442E+01 -2.8118077314385889E+01 + -2.8061856076536312E+01 -2.8005393365128494E+01 -2.7948688670183760E+01 + -2.7891741487616510E+01 -2.7834551319337585E+01 -2.7777117673358621E+01 + -2.7719440063897427E+01 -2.7661518011483544E+01 -2.7603351043065175E+01 + -2.7544938692117096E+01 -2.7486280498748734E+01 -2.7427376009813752E+01 + -2.7368224779020004E+01 -2.7308826367040375E+01 -2.7249180341625099E+01 + -2.7189286277713652E+01 -2.7129143757548601E+01 -2.7068752370789671E+01 + -2.7008111714629013E+01 -2.6947221393906950E+01 -2.6886081021228382E+01 + -2.6824690217080711E+01 -2.6763048609951969E+01 -2.6701155836449949E+01 + -2.6639011541421620E+01 -2.6576615378074720E+01 -2.6513967008098174E+01 + -2.6451066101785255E+01 -2.6387912338155939E+01 -2.6324505405081073E+01 + -2.6260844999406658E+01 -2.6196930827079530E+01 -2.6132762603273093E+01 + -2.6068340052514305E+01 -2.6003662908811076E+01 -2.5938730915781115E+01 + -2.5873543826780072E+01 -2.5808101405032147E+01 -2.5742403423760084E+01 + -2.5676449666316408E+01 -2.5610239926315565E+01 -2.5543774007766054E+01 + -2.5477051725204181E+01 -2.5410072903827729E+01 -2.5342837379630740E+01 + -2.5275344999538195E+01 -2.5207595621542769E+01 -2.5139589114840980E+01 + -2.5071325359970167E+01 -2.5002804248946649E+01 -2.4934025685403974E+01 + -2.4864989584731578E+01 -2.4795695874215323E+01 -2.4726144493176424E+01 + -2.4656335393113110E+01 -2.4586268537841594E+01 -2.4515943903637595E+01 + -2.4445361479378949E+01 -2.4374521266688628E+01 -2.4303423280077745E+01 + -2.4232067547089326E+01 -2.4160454108442838E+01 -2.4088583018178898E+01 + -2.4016454343804103E+01 -2.3944068166437404E+01 -2.3871424580955047E+01 + -2.3798523696137828E+01 -2.3725365634817472E+01 -2.3651950534023914E+01 + -2.3578278545132598E+01 -2.3504349834012331E+01 -2.3430164581173578E+01 + -2.3355722981916596E+01 -2.3281025246480116E+01 -2.3206071600190214E+01 + -2.3130862283609655E+01 -2.3055397552687150E+01 -2.2979677678906540E+01 + -2.2903702949436848E+01 -2.2827473667282124E+01 -2.2750990151430980E+01 + -2.2674252737007425E+01 -2.2597261775420129E+01 -2.2520017634513284E+01 + -2.2442520698716404E+01 -2.2364771369194930E+01 -2.2286770064000148E+01 + -2.2208517218219573E+01 -2.2130013284126932E+01 -2.2051258731332460E+01 + -2.1972254046932353E+01 -2.1892999735658957E+01 -2.1813496320030325E+01 + -2.1733744340499481E+01 -2.1653744355603695E+01 -2.1573496942113454E+01 + -2.1493002695180923E+01 -2.1412262228488679E+01 -2.1331276174397431E+01 + -2.1250045184093391E+01 -2.1168569927736343E+01 -2.1086851094605567E+01 + -2.1004889393246852E+01 -2.0922685551617729E+01 -2.0840240317233548E+01 + -2.0757554457311524E+01 -2.0674628758915389E+01 -2.0591464029098770E+01 + -2.0508061095047836E+01 -2.0424420804224017E+01 -2.0340544024505210E+01 + -2.0256431644326284E+01 -2.0172084572819227E+01 -2.0087503739952069E+01 + -2.0002690096667227E+01 -1.9917644615018411E+01 -1.9832368288307478E+01 + -1.9746862131219125E+01 -1.9661127179955820E+01 -1.9575164492370448E+01 + -1.9488975148098810E+01 -1.9402560248690470E+01 -1.9315920917738328E+01 + -1.9229058301007591E+01 -1.9141973566562545E+01 -1.9054667904892877E+01 + -1.8967142529038050E+01 -1.8879398674710522E+01 -1.8791437600417591E+01 + -1.8703260587581426E+01 -1.8614868940658127E+01 -1.8526263987254236E+01 + -1.8437447078242940E+01 -1.8348419587877320E+01 -1.8259182913902865E+01 + -1.8169738477667536E+01 -1.8080087724230307E+01 -1.7990232122467997E+01 + -1.7900173165179705E+01 -1.7809912369189831E+01 -1.7719451275448783E+01 + -1.7628791449131722E+01 -1.7537934479734790E+01 -1.7446881981170201E+01 + -1.7355635591857876E+01 -1.7264196974815562E+01 -1.7172567817746565E+01 + -1.7080749833124859E+01 -1.6988744758278052E+01 -1.6896554355467710E+01 + -1.6804180411967000E+01 -1.6711624740136273E+01 -1.6618889177495301E+01 + -1.6525975586793496E+01 -1.6432885856076759E+01 -1.6339621898752224E+01 + -1.6246185653649352E+01 -1.6152579085078646E+01 -1.6058804182887364E+01 + -1.5964862962511958E+01 -1.5870757465027555E+01 -1.5776489757194245E+01 + -1.5682061931500327E+01 -1.5587476106202043E+01 -1.5492734425360066E+01 + -1.5397839058872808E+01 -1.5302792202505987E+01 -1.5207596077918916E+01 + -1.5112252932686919E+01 -1.5016765040320715E+01 -1.4921134700281424E+01 + -1.4825364237992265E+01 -1.4729456004846375E+01 -1.4633412378210615E+01 + -1.4537235761425693E+01 -1.4440928583802011E+01 -1.4344493300611756E+01 + -1.4247932393076558E+01 -1.4151248368351229E+01 -1.4054443759503233E+01 + -1.3957521125487677E+01 -1.3860483051118139E+01 -1.3763332147032969E+01 + -1.3666071049657061E+01 -1.3568702421159282E+01 -1.3471228949404960E+01 + -1.3373653347903936E+01 -1.3275978355753884E+01 -1.3178206737578625E+01 + -1.3080341283461751E+01 -1.2982384808875253E+01 -1.2884340154603358E+01 + -1.2786210186660707E+01 -1.2687997796206307E+01 -1.2589705899451488E+01 + -1.2491337437563024E+01 -1.2392895376561073E+01 -1.2294382707211193E+01 + -1.2195802444911770E+01 -1.2097157629574928E+01 -1.1998451325502964E+01 + -1.1899686621258226E+01 -1.1800866629528020E+01 -1.1701994486983313E+01 + -1.1603073354131828E+01 -1.1504106415165404E+01 -1.1405096877801265E+01 + -1.1306047973117355E+01 -1.1206962955381602E+01 -1.1107845101875233E+01 + -1.1008697712709845E+01 -1.0909524110638337E+01 -1.0810327640859390E+01 + -1.0711111670816038E+01 -1.0611879589987295E+01 -1.0512634809674031E+01 + -1.0413380762777736E+01 -1.0314120903573304E+01 -1.0214858707474795E+01 + -1.0115597670794966E+01 -1.0016341310497701E+01 -9.9170931639442106E+00 + -9.8178567886319321E+00 -9.7186357619271639E+00 -9.6194336807903209E+00 + -9.5202541614946998E+00 -9.4211008393380418E+00 -9.3219773683471274E+00 + -9.2228874209755407E+00 -9.1238346877942469E+00 -9.0248228771749410E+00 + -8.9258557149664686E+00 -8.8269369441639700E+00 -8.7280703245708260E+00 + -8.6292596324535058E+00 -8.5305086601888576E+00 -8.4318212159044634E+00 + -8.3332011231114684E+00 -8.2346522203301653E+00 -8.1361783607081293E+00 + -8.0377834116311835E+00 -7.9394712543267199E+00 -7.8412457834598701E+00 + -7.7431109067220332E+00 -7.6450705444122260E+00 -7.5471286290108210E+00 + -7.4492891047459358E+00 -7.3515559271523712E+00 -7.2539330626231990E+00 + -7.1564244879537657E+00 -7.0590341898784112E+00 -6.9617661645998012E+00 + -6.8646244173106528E+00 -6.7676129617084646E+00 -6.6707358195024131E+00 + -6.5739970199133460E+00 -6.4774005991661969E+00 -6.3809505999751597E+00 + -6.2846510710216927E+00 -6.1885060664252922E+00 -6.0925196452069201E+00 + -5.9966958707455476E+00 -5.9010388102274023E+00 -5.8055525340882808E+00 + -5.7102411154488442E+00 -5.6151086295429034E+00 -5.5201591531389296E+00 + -5.4253967639546969E+00 -5.3308255400651285E+00 -5.2364495593035674E+00 + -5.1422728986563078E+00 -5.0482996336507595E+00 -4.9545338377369053E+00 + -4.8609795816626287E+00 -4.7676409328426841E+00 -4.6745219547213468E+00 + -4.5816267061290628E+00 -4.4889592406331609E+00 -4.3965236058824564E+00 + -4.3043238429462001E+00 -4.2123639856472517E+00 -4.1206480598896746E+00 + -4.0291800829807931E+00 -3.9379640629479211E+00 -3.8470039978497725E+00 + -3.7563038750827440E+00 -3.6658676706821716E+00 -3.5756993486185933E+00 + -3.4858028600893038E+00 -3.3961821428051922E+00 -3.3068411202729258E+00 + -3.2177837010728911E+00 -3.1290137781326584E+00 -3.0405352279963060E+00 + -2.9523519100896736E+00 -2.8644676659817061E+00 -2.7768863186418913E+00 + -2.6896116716940872E+00 -2.6026475086667213E+00 -2.5159975922395268E+00 + -2.4296656634869640E+00 -2.3436554411183925E+00 -2.2579706207151622E+00 + -2.1726148739646902E+00 -2.0875918478916979E+00 -2.0029051640866489E+00 + -1.9185584179315560E+00 -1.8345551778232598E+00 -1.7508989843942560E+00 + -1.6675933497312463E+00 -1.5846417565914552E+00 -1.5020476576168782E+00 + -1.4198144745465628E+00 -1.3379455974270302E+00 -1.2564443838209833E+00 + -1.1753141580144153E+00 -1.0945582102222626E+00 -1.0141797957927563E+00 + -9.3418213441061237E-01 -8.5456840929925992E-01 -7.7534176642226293E-01 + -6.9650531368417445E-01 -6.1806212013101924E-01 -5.4001521515068740E-01 + -4.6236758767348862E-01 -3.8512218537319981E-01 -3.0828191386894621E-01 + -2.3184963592828836E-01 -1.5582817067196517E-01 -8.0220292780727356E-02 + -5.0287317048381287E-03 6.9743829123229670E-02 1.4409475307225444E-01 + 2.1802145109114787E-01 2.9152138248254200E-01 3.6459205567026320E-01 + 4.3723102895973631E-01 5.0943591129035837E-01 5.8120436297887423E-01 + 6.5253409645255045E-01 7.2342287697098939E-01 7.9386852333533731E-01 + 8.6386890858353083E-01 9.3342196067031258E-01 1.0025256631303261E+00 + 1.0711780557231148E+00 1.1393772350582612E+00 1.2071213551991984E+00 + 1.2744086282441127E+00 1.3412373248824341E+00 1.4076057749251345E+00 + 1.4735123678075999E+00 1.5389555530632844E+00 1.6039338407669688E+00 + 1.6684458019460626E+00 1.7324900689588347E+00 1.7960653358384153E+00 + 1.8591703586014907E+00 1.9218039555209880E+00 1.9839650073619790E+00 + 2.0456524575802932E+00 2.1068653124837038E+00 2.1676026413555154E+00 + 2.2278635765406860E+00 2.2876473134950421E+00 2.3469531107979975E+00 + 2.4057802901298642E+00 2.4641282362148242E+00 2.5219963967306929E+00 + 2.5793842821874597E+00 2.6362914657760959E+00 2.6927175831897467E+00 + 2.7486623324195860E+00 2.8041254735275083E+00 2.8591068283983594E+00 + 2.9136062804742200E+00 2.9676237744735068E+00 3.0211593160975507E+00 + 3.0742129717274898E+00 3.1267848681143016E+00 3.1788751920643823E+00 + 3.2304841901234354E+00 3.2816121682610313E+00 3.3322594915579273E+00 + 3.3824265838981287E+00 3.4321139276673973E+00 3.4813220634593915E+00 + 3.5300515897905904E+00 3.5783031628242279E+00 3.6260774961037319E+00 + 3.6733753602951897E+00 3.7201975829379523E+00 3.7665450482025955E+00 + 3.8124186966540763E+00 3.8578195250186198E+00 3.9027485859514686E+00 + 3.9472069878028608E+00 3.9911958943794263E+00 4.0347165246972940E+00 + 4.0777701527235966E+00 4.1203581071028230E+00 4.1624817708641340E+00 + 4.2041425811060842E+00 4.2453420286549788E+00 4.2860816576934653E+00 + 4.3263630653557685E+00 4.3661879012867200E+00 4.4055578671612725E+00 + 4.4444747161622864E+00 4.4829402524138766E+00 4.5209563303685929E+00 + 4.5585248541465129E+00 4.5956477768250430E+00 4.6323270996783243E+00 + 4.6685648713653620E+00 4.7043631870665363E+00 4.7397241875683251E+00 + 4.7746500582959710E+00 4.8091430282946979E+00 4.8432053691594428E+00 + 4.8768393939140706E+00 4.9100474558403517E+00 4.9428319472578144E+00 + 4.9751952982549756E+00 5.0071399753729260E+00 5.0386684802424115E+00 + 5.0697833481748811E+00 5.1004871467087094E+00 5.1307824741114461E+00 + 5.1606719578387477E+00 5.1901582529509422E+00 5.2192440404880882E+00 + 5.2479320258038378E+00 5.2762249368592782E+00 5.3041255224769435E+00 + 5.3316365505557286E+00 5.3587608062471555E+00 5.3855010900934284E+00 + 5.4118602161276437E+00 5.4378410099367542E+00 5.4634463066871533E+00 + 5.4886789491136101E+00 5.5135417854715021E+00 5.5380376674529908E+00 + 5.5621694480667614E+00 5.5859399794822062E+00 5.6093521108376994E+00 + 5.6324086860136697E+00 5.6551125413703254E+00 5.6774665034503382E+00 + 5.6994733866469085E+00 5.7211359908372614E+00 5.7424570989818635E+00 + 5.7634394746899407E+00 5.7840858597511513E+00 5.8043989716341970E+00 + 5.8243815009525495E+00 5.8440361088976731E+00 5.8633654246404854E+00 + 5.8823720427010358E+00 5.9010585202875507E+00 5.9194273746047879E+00 + 5.9374810801328755E+00 5.9552220658767547E+00 5.9726527125873279E+00 + 5.9897753499547219E+00 6.0065922537746363E+00 6.0231056430884378E+00 + 6.0393176772977686E+00 6.0552304532548575E+00 6.0708460023289801E+00 + 6.0861662874504043E+00 6.1011932001325020E+00 6.1159285574732349E+00 + 6.1303740991370317E+00 6.1445314843179473E+00 6.1584022886854832E+00 + 6.1719880013140536E+00 6.1852900215972513E+00 6.1983096561482531E+00 + 6.2110481156874346E+00 6.2235065119186075E+00 6.2356858543950819E+00 + 6.2475870473769630E+00 6.2592108866809060E+00 6.2705580565238064E+00 + 6.2816291263619330E+00 6.2924245477266698E+00 6.3029446510585911E+00 + 6.3131896425411833E+00 6.3231596009359503E+00 6.3328544744201096E+00 + 6.3422740774288204E+00 6.3514180875032640E+00 6.3602860421463951E+00 + 6.3688773356877029E+00 6.3771912161591588E+00 6.3852267821835831E+00 + 6.3929829798773392E+00 6.4004585997691157E+00 6.4076522737365371E+00 + 6.4145624719624514E+00 6.4211874999125875E+00 6.4275254953366101E+00 + 6.4335744252942542E+00 6.4393320832085887E+00 6.4447960859482656E+00 + 6.4499638709406373E+00 6.4548326933178330E+00 6.4593996230977275E+00 + 6.4636615424017050E+00 6.4676151427115505E+00 6.4712569221670782E+00 + 6.4745831829071765E+00 6.4775900284556576E+00 6.4802733611548389E+00 + 6.4826288796481961E+00 6.4846520764149895E+00 6.4863382353585726E+00 + 6.4876824294507704E+00 6.4886795184346315E+00 6.4893241465876432E+00 + 6.4896107405479277E+00 6.4895335072054205E+00 6.4890864316606773E+00 + 6.4882632752533462E+00 6.4870575736629243E+00 6.4854626350839588E+00 + 6.4834715384782609E+00 6.4810771319063898E+00 6.4782720309409632E+00 + 6.4750486171641581E+00 6.4713990367518592E+00 6.4673151991469950E+00 + 6.4627887758243832E+00 6.4578111991498233E+00 6.4523736613356597E+00 + 6.4464671134955935E+00 6.4400822648009859E+00 6.4332095817415107E+00 + 6.4258392874923151E+00 6.4179613613906215E+00 6.4095655385239088E+00 + 6.4006413094325794E+00 6.3911779199293957E+00 6.3811643710383823E+00 + 6.3705894190556460E+00 6.3594415757346914E+00 6.3477091085988100E+00 + 6.3353800413828951E+00 6.3224421546074705E+00 6.3088829862871609E+00 + 6.2946898327763083E+00 6.2798497497540939E+00 6.2643495533517264E+00 + 6.2481758214240237E+00 6.2313148949679960E+00 6.2137528796906585E+00 + 6.1954756477286557E+00 6.1764688395219194E+00 6.1567178658438264E+00 + 6.1362079099900901E+00 6.1149239301288212E+00 6.0928506618139044E+00 + 6.0699726206640481E+00 6.0462741052097417E+00 6.0217391999102272E+00 + 5.9963517783428468E+00 5.9700955065667394E+00 5.9429538466632197E+00 + 5.9149100604547602E+00 5.8859472134048962E+00 5.8560481787009175E+00 + 5.8251956415216162E+00 5.7933721034919792E+00 5.7605598873270196E+00 + 5.7267411416666585E+00 5.6918978461038385E+00 5.6560118164077666E+00 + 5.6190647099445039E+00 5.5810380312968224E+00 5.5419131380855537E+00 + 5.5016712469944951E+00 5.4602934400009797E+00 5.4177606708144568E+00 + 5.3740537715251744E+00 5.3291534594654335E+00 5.2830403442855562E+00 + 5.2356949352474986E+00 5.1870976487380984E+00 5.1372288160048223E+00 + 5.0860686911170507E+00 5.0335974591551533E+00 4.9797952446308384E+00 + 4.9246421201418897E+00 4.8681181152640045E+00 4.8102032256837477E+00 + 4.7508774225757708E+00 4.6901206622280700E+00 4.6279128959191995E+00 + 4.5642340800512962E+00 4.4990641865431718E+00 4.4323832134876957E+00 + 4.3641711960779466E+00 4.2944082178066951E+00 4.2230744219439273E+00 + 4.1501500232971908E+00 4.0756153202597565E+00 3.9994507071515057E+00 + 3.9216366868576653E+00 3.8421538837703797E+00 3.7609830570382687E+00 + 3.6781051141290293E+00 3.5935011247098818E+00 3.5071523348509537E+00 + 3.4190401815560358E+00 3.3291463076254080E+00 3.2374525768547415E+00 + 3.1439410895741120E+00 3.0485941985305254E+00 2.9513945251170477E+00 + 2.8523249759509568E+00 2.7513687598030740E+00 2.6485094048791700E+00 + 2.5437307764541996E+00 2.4370170948588656E+00 2.3283529538172276E+00 + 2.2177233391329505E+00 2.1051136477206964E+00 1.9905097069778996E+00 + 1.8738977944907129E+00 1.7552646580664932E+00 1.6345975360834768E+00 + 1.5118841781465886E+00 1.3871128660362715E+00 1.2602724349353180E+00 + 1.1313522949161352E+00 1.0003424526688081E+00 8.6723353344725918E-01 + 7.3201680320845708E-01 5.9468419091619706E-01 4.5522831097815497E-01 + 3.1364248578133941E-01 1.6992076828773087E-01 2.4057964648220975E-02 + -1.2395034321051879E-01 -2.7410777507550971E-01 -4.2641713006553994E-01 + -5.8088036443397706E-01 -7.3749856961452986E-01 -8.9627195057100262E-01 + -1.0571998045130460E+00 -1.2202805000400316E+00 -1.3855114567740212E+00 + -1.5528891255393917E+00 -1.7224089691408926E+00 -1.8940654437837130E+00 + -2.0678519811668568E+00 -2.2437609712656412E+00 -2.4217837457986398E+00 + -2.6019105623494179E+00 -2.7841305890829431E+00 -2.9684318899607205E+00 + -3.1548014103174400E+00 -3.3432249626155968E+00 -3.5336872121438292E+00 + -3.7261716623707257E+00 -3.9206606396109471E+00 -4.1171352766056879E+00 + -4.3155754945696172E+00 -4.5159599832134170E+00 -4.7182661782200235E+00 + -4.9224702356380439E+00 -5.1285470026619668E+00 -5.3364699843006171E+00 + -5.5462113054964819E+00 -5.7577416683523595E+00 -5.9710303042485062E+00 + -6.1860449207938757E+00 -6.4027516437441205E+00 -6.6211149542317553E+00 + -6.8410976218807527E+00 -7.0626606346070027E+00 -7.2857631261251230E+00 + -7.5103623023736201E+00 -7.7364133682228662E+00 -7.9638694559274779E+00 + -8.1926815568179876E+00 -8.4227984576880850E+00 -8.6541666832234299E+00 + -8.8867304456385359E+00 -9.1204316024509176E+00 -9.3552096230391690E+00 + -9.5910015643230100E+00 -9.8277420555884820E+00 -1.0065363292178150E+01 + -1.0303795037495584E+01 -1.0542964632546699E+01 -1.0782797012071262E+01 + -1.1023214726207993E+01 -1.1264137966590299E+01 -1.1505484595779325E+01 + -1.1747170179002030E+01 -1.1989108017262261E+01 -1.2231209181023283E+01 + -1.2473382543808050E+01 -1.2715534815219252E+01 -1.2957570573034756E+01 + -1.3199392294179624E+01 -1.3440900384506682E+01 -1.3681993207430676E+01 + -1.3922567111555251E+01 -1.4162516457506175E+01 -1.4401733644240025E+01 + -1.4640109135135159E+01 -1.4877531484195872E+01 -1.5113887362710448E+01 + -1.5349061586704606E+01 -1.5582937145523017E+01 -1.5815395231858439E+01 + -1.6046315273529167E+01 -1.6275574967285348E+01 -1.6503050314901532E+01 + -1.6728615661790709E+01 -1.6952143738352724E+01 -1.7173505704247493E+01 + -1.7392571195763942E+01 -1.7609208376435689E+01 -1.7823283991037812E+01 + -1.8034663423081913E+01 -1.8243210755913424E+01 -1.8448788837501027E+01 + -1.8651259348997616E+01 -1.8850482877140479E+01 -1.9046318990550418E+01 + -1.9238626319980373E+01 -1.9427262642557945E+01 -1.9612084970058099E+01 + -1.9792949641238202E+01 -1.9969712418261039E+01 -2.0142228587227645E+01 + -2.0310353062836402E+01 -2.0473940497181577E+01 -2.0632845392700641E+01 + -2.0786922219275102E+01 -2.0936025535487314E+01 -2.1080010114030827E+01 + -2.1218731071269772E+01 -2.1352044000937344E+01 -2.1479805111961277E+01 + -2.1601871370399106E+01 -2.1718100645463014E+01 -2.1828351859608080E+01 + -2.1932485142654748E+01 -2.2030361989910027E+01 -2.2121845424247912E+01 + -2.2206800162102240E+01 -2.2285092783320469E+01 -2.2356591904820210E+01 + -2.2421168357982591E+01 -2.2478695369710188E+01 -2.2529048747068895E+01 + -2.2572107065425524E+01 -2.2607751859983008E+01 -2.2635867820607459E+01 + -2.2656342989830151E+01 -2.2669068963898841E+01 -2.2673941096740652E+01 + -2.2670858706688861E+01 -2.2659725285813558E+01 -2.2640448711684705E+01 + -2.2612941461382643E+01 -2.2577120827558645E+01 -2.2532909136335039E+01 + -2.2480233966818933E+01 -2.2419028371990933E+01 -2.2349231100713819E+01 + -2.2270786820592530E+01 -2.2183646341399015E+01 -2.2087766838761734E+01 + -2.1983112077801113E+01 -2.1869652636377449E+01 -2.1747366127598792E+01 + -2.1616237421220500E+01 -2.1476258863549592E+01 -2.1327430495450152E+01 + -2.1169760268026696E+01 -2.1003264255545719E+01 -2.0827966865136258E+01 + -2.0643901042793011E+01 -2.0451108475186114E+01 -2.0249639786764206E+01 + -2.0039554731619457E+01 -1.9820922379564042E+01 -1.9593821295850965E+01 + -1.9358339713953811E+01 -1.9114575700803528E+01 -1.8862637313862400E+01 + -1.8602642749400431E+01 -1.8334720481322403E+01 -1.8059009389879925E+01 + -1.7775658879587116E+01 -1.7484828985646139E+01 -1.7186690468175282E+01 + -1.6881424893521402E+01 -1.6569224701926899E+01 -1.6250293260812700E+01 + -1.5924844902930673E+01 -1.5593104948631131E+01 -1.5255309711486927E+01 + -1.4911706486510914E+01 -1.4562553520202389E+01 -1.4208119961656879E+01 + -1.3848685793976111E+01 -1.3484541745218054E+01 -1.3115989178133376E+01 + -1.2743339957941524E+01 -1.2366916297411713E+01 -1.1987050578524732E+01 + -1.1604085149996305E+01 -1.1218372100035918E+01 -1.0830273003545898E+01 + -1.0440158643243020E+01 -1.0048408704021522E+01 -9.6554114399829984E+00 + -9.2615633135791189E+00 -8.8672686063503594E+00 -8.4729390007837573E+00 + -8.0789931328573985E+00 -7.6858561148867519E+00 -7.2939590283403435E+00 + -6.9037383863475066E+00 -6.5156355656814950E+00 -6.1300962080652148E+00 + -5.7475695907158721E+00 -5.3685079661176891E+00 -4.9933658710899378E+00 + -4.6225994053001855E+00 -4.2566654794597296E+00 -3.8960210335308219E+00 + -3.5411222253723951E+00 -3.1924235903534526E+00 -2.8503771725706111E+00 + -2.5154316284189839E+00 -2.1880313033833216E+00 -1.8686152830392206E+00 + -1.5576164193822568E+00 -1.2554603337360613E+00 -9.6256439762849610E-01 + -6.7933669316812906E-01 -4.0617495460101116E-01 -1.4346549288015156E-01 + 1.0841789476318359E-01 3.4911502809634809E-01 5.7828045769578507E-01 + 7.9558458680840394E-01 1.0007147986101208E+00 1.1933765860341472E+00 + 1.3732946811659530E+00 1.5402141810247221E+00 1.6939016663730904E+00 + 1.8341463100189570E+00 1.9607609708959510E+00 2.0735832700328172E+00 + 2.1724766443491932E+00 2.2573313740448668E+00 2.3280655791839604E+00 + 2.3846261809161700E+00 2.4269898226235251E+00 2.4551637461363267E+00 + 2.4691866180266331E+00 2.4691293008626229E+00 2.4550955641949601E+00 + 2.4272227299479026E+00 2.3856822468047776E+00 2.3306801881118053E+00 + 2.2624576677771473E+00 2.1812911686159620E+00 2.0874927775882606E+00 + 1.9814103223969100E+00 1.8634274039595946E+00 1.7339633193432331E+00 + 1.5934728698537277E+00 1.4424460491102020E+00 1.2814076061025828E+00 + 1.1109164784366925E+00 9.3156509121333653E-01 7.4397851726906128E-01 + 5.4881349482806630E-01 3.4675729897836316E-01 1.3852646379244971E-01 + -7.5134647635525548E-02 -2.9345542746664921E-01 -5.1564076339450227E-01 + -7.4087293601768234E-01 -9.6831367376304434E-01 -1.1971063651277316E+00 + -1.4263784272726308E+00 -1.6552438292168581E+00 -1.8828057670528506E+00 + -2.1081594877258576E+00 -2.3303952570013786E+00 -2.5486014662812710E+00 + -2.7618678719263174E+00 -2.9692889597025576E+00 -3.1699674258941872E+00 + -3.3630177655206794E+00 -3.5475699569649830E+00 -3.7227732311673067E+00 + -3.8877999123713280E+00 -4.0418493162320051E+00 -4.1841516899139224E+00 + -4.3139721776328814E+00 -4.4306147939297320E+00 -4.5334263858220689E+00 + -4.6218005638663939E+00 -4.6951815810895292E+00 -4.7530681377244379E+00 + -4.7950170887224433E+00 -4.8206470301232311E+00 -4.8296417395573137E+00 + -4.8217534454451521E+00 -4.7968058988561744E+00 -4.7546972215117655E+00 + -4.6954025030729589E+00 -4.6189761206585569E+00 -4.5255537535074737E+00 + -4.4153540658423998E+00 -4.2886800313247919E+00 -4.1459198730257460E+00 + -3.9875475935870690E+00 -3.8141230712228751E+00 -3.6262916984262672E+00 + -3.4247835417077375E+00 -3.2104120024118177E+00 -2.9840719606435653E+00 + -2.7467373865931219E+00 -2.4994584060801190E+00 -2.2433578099522342E+00 + -1.9796270000649858E+00 -1.7095213679408297E+00 -1.4343551058510118E+00 + -1.1554954539760911E+00 -8.7435639147090216E-01 -5.9239178367360423E-01 + -3.1108800234014494E-01 -3.1956040634581961E-02 2.4347685036131470E-01 + 5.1367597166667933E-01 7.7710839568221524E-01 1.0322525520642611E+00 + 1.2776081320719537E+00 1.5117062578104019E+00 1.7331198573786610E+00 + 1.9404741816120379E+00 2.1324573929394233E+00 2.3078311519178474E+00 + 2.4654411223209034E+00 2.6042273113115209E+00 2.7232341572912730E+00 + 2.8216202745594852E+00 2.8986677610083365E+00 2.9537909727992417E+00 + 2.9865446683849850E+00 2.9966314234359817E+00 2.9839082182700367E+00 + 2.9483921003435296E+00 2.8902648263063209E+00 2.8098763911149276E+00 + 2.7077473557972400E+00 2.5845698907175110E+00 2.4412074576460809E+00 + 2.2786930616274774E+00 2.0982260125864149E+00 1.9011671468242377E+00 + 1.6890324700363930E+00 1.4634851962064255E+00 1.2263261706705724E+00 + 9.7948268074765876E-01 7.2499567352218097E-01 4.6500541756441660E-01 + 2.0173566345987501E-01 -6.2523623129985911E-02 -3.2543486269687155E-01 + -5.8463268433695770E-01 -8.3774483623428020E-01 -1.0824140308497914E+00 + -1.3163205515806782E+00 -1.5372054282343193E+00 -1.7428939700099211E+00 + -1.9313194270956444E+00 -2.1005465357813469E+00 -2.2487946874804239E+00 + -2.3744604495798716E+00 -2.4761391559320276E+00 -2.5526452773999906E+00 + -2.6030312785028733E+00 -2.6266046651971271E+00 -2.6229429314808761E+00 + -2.5919061191011914E+00 -2.5336467154316766E+00 -2.4486166297863128E+00 + -2.3375710082170138E+00 -2.2015686713286571E+00 -2.0419689888990251E+00 + -1.8604250391095587E+00 -1.6588729388999679E+00 -1.4395172752005070E+00 + -1.2048126143286779E+00 -9.5744111833072898E-01 -7.0028635207470735E-01 + -4.3640342293542234E-01 -1.6898565532590873E-01 9.8671935601713209E-02 + 3.6321204386675182E-01 6.2125695615926557E-01 8.6945246720597602E-01 + 1.1045133157766267E+00 1.3232695739591347E+00 1.5227133707645530E+00 + 1.7000452853951522E+00 1.8527197069041146E+00 1.9784884267783116E+00 + 2.0754417104473859E+00 2.1420460840750768E+00 2.1771780753550876E+00 + 2.1801531624384216E+00 2.1507492144443372E+00 2.0892237509620153E+00 + 1.9963244070350754E+00 1.8732920645962157E+00 1.7218562011716878E+00 + 1.5442221115888273E+00 1.3430497777485626E+00 1.1214242942692907E+00 + 8.8281790259800641E-01 6.3104384126448820E-01 3.7020238318166149E-01 + 1.0461959974132500E-01 -1.6122043698198688E-01 -4.2274913157689259E-01 + -6.7539147292168011E-01 -9.1464756383708190E-01 -1.1361762175208892E+00 + -1.3358791347229551E+00 -1.5099840652759327E+00 -1.6551252719380403E+00 + -1.7684195576256176E+00 -1.8475360928639037E+00 -1.8907582921440118E+00 + -1.8970360388275342E+00 -1.8660266506466450E+00 -1.7981231133124369E+00 + -1.6944682889923786E+00 -1.5569540291765021E+00 -1.3882043863444546E+00 + -1.1915424233024066E+00 -9.7094045924979777E-01 -7.3095396242926280E-01 + -4.7663969416437568E-01 -2.1345912046835469E-01 5.2831473740514695E-02 + 3.1630231652070168E-01 5.7098067294931454E-01 8.1098793015034332E-01 + 1.0306802725995998E+00 1.2247896876726494E+00 1.3885618146785310E+00 + 1.5178869983877035E+00 1.6094208412978308E+00 1.6606905772250053E+00 + 1.6701837201156569E+00 1.6374156818715755E+00 1.5629734044367964E+00 + 1.4485325143262127E+00 1.2968460786978875E+00 1.1117037138205745E+00 + 8.9786055833147072E-01 6.6093646002600459E-01 4.0728661716177617E-01 + 1.4384584073993822E-01 -1.2205046311886744E-01 -3.8286458075474089E-01 + -6.3106918081232755E-01 -8.5936876672334850E-01 -1.0609235992857236E+00 + -1.2295692954660651E+00 -1.3600249905133401E+00 -1.4480828412462023E+00 + -1.4907717719337938E+00 -1.4864887375777434E+00 -1.4350914124319583E+00 + -1.3379471056359211E+00 -1.1979338527870118E+00 -1.0193910137852833E+00 + -8.0801829426912097E-01 -5.7072386050790203E-01 -3.1542408530467003E-01 + -5.0799385151191839E-02 2.1398748197809508E-01 4.6960246834600389E-01 + 7.0687079545715492E-01 9.1711577465383742E-01 1.0924935681107986E+00 + 1.2263108951861614E+00 1.3133124814126451E+00 1.3499253574228967E+00 + 1.3344479775011504E+00 1.2671735566528159E+00 1.1504390121946579E+00 + 9.8859340639257909E-01 7.8788275910248773E-01 5.5625144488805967E-01 + 3.0306399255453520E-01 3.8754827360889893E-02 -2.2558282181994524E-01 + -4.7865416033469421E-01 -7.0944844880037172E-01 -9.0773275168771561E-01 + -1.0645318141999036E+00 -1.1725712285698826E+00 -1.2266612396976568E+00 + -1.2239998429546513E+00 -1.1643762818041470E+00 -1.0502596419829651E+00 + -8.8676188372105957E-01 -6.8147021130688290E-01 -4.4414994408716491E-01 + -1.8632575885630606E-01 7.9243997232498767E-02 3.3917862950733418E-01 + 5.8014478298396011E-01 7.8955224953627667E-01 9.5624005339523621E-01 + 1.0711150827247449E+00 1.1277056171672213E+00 1.1225943340326936E+00 + 1.0556998276778080E+00 9.3038228956923219E-01 7.5335757481733612E-01 + 5.3441408726041761E-01 2.8593827529735716E-01 2.2266447925616911E-02 + -2.4110760004170717E-01 -4.8842878189661743E-01 -7.0463115497970519E-01 + -8.7628624545390055E-01 -9.9248923136610956E-01 -1.0456229059029649E+00 + -1.0319432646924764E+00 -9.5193855445187348E-01 -8.1042551434153065E-01 + -6.1636187237796980E-01 -3.8237216982580186E-01 -1.2400364646228933E-01 + 1.4125102983882065E-01 3.9510838479764232E-01 6.1975380792376100E-01 + 7.9912145279936375E-01 9.2010232641071565E-01 9.7358763716907193E-01 + 9.5526057128820796E-01 8.6606293054231576E-01 7.1228311209815809E-01 + 5.0523777686838756E-01 2.6054969392365429E-01 -2.9433932215308257E-03 + -2.6458191733343722E-01 -5.0348352078605974E-01 -7.0022833825061925E-01 + -8.3849560175158699E-01 -9.0651163332125428E-01 -8.9817596049263781E-01 + -8.1375113293893830E-01 -6.6003228221813226E-01 -4.4995287796052935E-01 + -2.0163072401714691E-01 6.3090725210903018E-02 3.2050069846408719E-01 + 5.4712965151591519E-01 7.2192479344179361E-01 8.2829200018826898E-01 + 8.5580011012388613E-01 8.0136617415091838E-01 6.6977571961971838E-01 + 4.7345068665750278E-01 2.3144668830169307E-01 -3.2261152454790804E-02 + -2.9106712955691139E-01 -5.1839277905036529E-01 -6.9045481733845637E-01 + -7.8885519244468283E-01 -8.0270502134171506E-01 -7.3002575034668526E-01 + -5.7823357898421401E-01 -3.6360281536299011E-01 -1.0971254839049559E-01 + 1.5500205249258528E-01 4.0036038434289623E-01 5.9788208240760743E-01 + 7.2417891995684636E-01 7.6388437026754363E-01 7.1174094820825518E-01 + 5.7354350093994622E-01 3.6575876081735365E-01 1.1379619220973973E-01 + -1.5092452125190786E-01 -3.9479891959201069E-01 -5.8630818794733564E-01 + -7.0019760998027070E-01 -7.2100219412440913E-01 -6.4540909841461536E-01 + -4.8307126695027763E-01 -2.5567517529645328E-01 5.7030677217407575E-03 + 2.6467402746743129E-01 4.8454011157002702E-01 6.3355727978713305E-01 + 6.8969798680082317E-01 6.4418327506237871E-01 5.0318769550946185E-01 + 2.8735857272698961E-01 2.9103481988641395E-02 -2.3205562582006550E-01 + -4.5543835713173525E-01 -6.0559763307171355E-01 -6.5814380876628242E-01 + -6.0402278789235986E-01 -4.5145930705498272E-01 -2.2511378102593912E-01 + 3.7557948476947663E-02 2.9227455796116503E-01 4.9532650102348935E-01 + 6.1118728587092808E-01 6.1900580150742635E-01 5.1675770029543067E-01 + 3.2217652119718621E-01 7.0117553674886271E-02 -1.9335288513401536E-01 + -4.1921451701103601E-01 -5.6465923196141210E-01 -6.0145712386019246E-01 + -5.2185399598700644E-01 -3.4070610576686855E-01 -9.3221247585798944E-02 + 1.7148048458172013E-01 3.9990484303484009E-01 5.4502583061522547E-01 + 5.7624401962831040E-01 4.8631189999027408E-01 2.9358165355537791E-01 + 3.8832900567357935E-02 -2.2292435074667452E-01 -4.3413545770850975E-01 + -5.4745308731373832E-01 -5.3672722722216248E-01 -4.0361883684890243E-01 + -1.7806319654782926E-01 8.7864577521188647E-02 3.3158976695257891E-01 + 4.9469258339303557E-01 5.3718272096468789E-01 4.4786356063708482E-01 + 2.4799176934417216E-01 -1.3059510798799445E-02 -2.6947170823919175E-01 + -4.5538443088652919E-01 -5.2201647285175112E-01 -4.5102671507321890E-01 + -2.6033932639578361E-01 -4.4114532873385605E-04 2.5836648896640430E-01 + 4.4473931580720272E-01 5.0616796206100068E-01 4.2439559944626898E-01 + 2.2170953033276938E-01 -4.4227248431745456E-02 -2.9613019502604054E-01 + -4.5935136145986971E-01 -4.8432341177297966E-01 -3.6238137651015806E-01 + -1.2972580698026817E-01 1.4237410197694000E-01 3.6883187308243021E-01 + 4.7733152436241744E-01 4.3198910391549661E-01 2.4620933753583060E-01 + -2.0117683209512155E-02 -2.7903782338906069E-01 -4.4324626009363988E-01 + -4.5587508359831880E-01 -3.1112259597832320E-01 -5.7983731363096612E-02 + 2.1521397107929421E-01 4.1104547746191422E-01 4.5790346347766969E-01 + 3.3707424866482627E-01 9.1480193181445763E-02 -1.8826459544601939E-01 + -3.9652882119873656E-01 -4.5263184461547007E-01 -3.3301525787118308E-01 + -8.2514691149552871E-02 2.0099586572562050E-01 4.0400775713615478E-01 + 4.4293915073743206E-01 2.9959531899627617E-01 3.1149786459391503E-02 + -2.5111178574530801E-01 -4.2714120500129782E-01 -4.1950489093419452E-01 + -2.2875620628122728E-01 6.3797778628355131E-02 3.2920971173382768E-01 + 4.4719387380368958E-01 3.6137212559029808E-01 1.0787530343314189E-01 + -1.9777184998997521E-01 -4.1197182666060805E-01 -4.3052188942256997E-01 + -2.4065274237038570E-01 6.8833460556109047E-02 3.4711722830990727E-01 + 4.5412682096457707E-01 3.3191194759691478E-01 3.7988975455667852E-02 + -2.7920510761322787E-01 -4.5387727475476841E-01 -3.8989569592239953E-01 + -1.1558611377078996E-01 2.2565186554154745E-01 4.4833431371677979E-01 + 4.2561441532845135E-01 1.6331167557712808E-01 -1.9664597702170217E-01 + -4.5054879033820716E-01 -4.4773616412885958E-01 -1.8171446387264895E-01 + 1.9820739786184463E-01 4.6783225106328585E-01 4.5972377014868093E-01 + 1.6897884960438897E-01 -2.3438102924057053E-01 -5.0162033024790631E-01 + -4.5803428638841370E-01 -1.1919735824271890E-01 3.0742144476557848E-01 + + + 3.7457318037145719E+00 3.7457318037366418E+00 3.7457318038032401E+00 + 3.7457318039152288E+00 3.7457318040734409E+00 3.7457318042786789E+00 + 3.7457318045318000E+00 3.7457318048336639E+00 3.7457318051851383E+00 + 3.7457318055871021E+00 3.7457318060404403E+00 3.7457318065460590E+00 + 3.7457318071048817E+00 3.7457318077178368E+00 3.7457318083858633E+00 + 3.7457318091099201E+00 3.7457318098909642E+00 3.7457318107300011E+00 + 3.7457318116280218E+00 3.7457318125860306E+00 3.7457318136050466E+00 + 3.7457318146861143E+00 3.7457318158302946E+00 3.7457318170386498E+00 + 3.7457318183122594E+00 3.7457318196522187E+00 3.7457318210596542E+00 + 3.7457318225356828E+00 3.7457318240814437E+00 3.7457318256981051E+00 + 3.7457318273868454E+00 3.7457318291488497E+00 3.7457318309853229E+00 + 3.7457318328975040E+00 3.7457318348866138E+00 3.7457318369539259E+00 + 3.7457318391007095E+00 3.7457318413282663E+00 3.7457318436378908E+00 + 3.7457318460309179E+00 3.7457318485087074E+00 3.7457318510726059E+00 + 3.7457318537240187E+00 3.7457318564643218E+00 3.7457318592949629E+00 + 3.7457318622173665E+00 3.7457318652329779E+00 3.7457318683433161E+00 + 3.7457318715498631E+00 3.7457318748541373E+00 3.7457318782576707E+00 + 3.7457318817620489E+00 3.7457318853688268E+00 3.7457318890796398E+00 + 3.7457318928960834E+00 3.7457318968198390E+00 3.7457319008525523E+00 + 3.7457319049959126E+00 3.7457319092516612E+00 3.7457319136215159E+00 + 3.7457319181072375E+00 3.7457319227106316E+00 3.7457319274334910E+00 + 3.7457319322776517E+00 3.7457319372449853E+00 3.7457319423373465E+00 + 3.7457319475566817E+00 3.7457319529049000E+00 3.7457319583839586E+00 + 3.7457319639958584E+00 3.7457319697426188E+00 3.7457319756262519E+00 + 3.7457319816488415E+00 3.7457319878124919E+00 3.7457319941192999E+00 + 3.7457320005714387E+00 3.7457320071710725E+00 3.7457320139204233E+00 + 3.7457320208217113E+00 3.7457320278772093E+00 3.7457320350892402E+00 + 3.7457320424600864E+00 3.7457320499921347E+00 3.7457320576877713E+00 + 3.7457320655494133E+00 3.7457320735795161E+00 3.7457320817805759E+00 + 3.7457320901550899E+00 3.7457320987056102E+00 3.7457321074347414E+00 + 3.7457321163450983E+00 3.7457321254393157E+00 3.7457321347201060E+00 + 3.7457321441901823E+00 3.7457321538523045E+00 3.7457321637092740E+00 + 3.7457321737639200E+00 3.7457321840191118E+00 3.7457321944777626E+00 + 3.7457322051428075E+00 3.7457322160172497E+00 3.7457322271040918E+00 + 3.7457322384064216E+00 3.7457322499273231E+00 3.7457322616699362E+00 + 3.7457322736374641E+00 3.7457322858331281E+00 3.7457322982602008E+00 + 3.7457323109219747E+00 3.7457323238218341E+00 3.7457323369631546E+00 + 3.7457323503493871E+00 3.7457323639840161E+00 3.7457323778705858E+00 + 3.7457323920126679E+00 3.7457324064138859E+00 3.7457324210779310E+00 + 3.7457324360084998E+00 3.7457324512093662E+00 3.7457324666843586E+00 + 3.7457324824373459E+00 3.7457324984722300E+00 3.7457325147929952E+00 + 3.7457325314036640E+00 3.7457325483082915E+00 3.7457325655110303E+00 + 3.7457325830160313E+00 3.7457326008275311E+00 3.7457326189498339E+00 + 3.7457326373872815E+00 3.7457326561442552E+00 3.7457326752252258E+00 + 3.7457326946347052E+00 3.7457327143772607E+00 3.7457327344575293E+00 + 3.7457327548801915E+00 3.7457327756500023E+00 3.7457327967717764E+00 + 3.7457328182504019E+00 3.7457328400907834E+00 3.7457328622979484E+00 + 3.7457328848769627E+00 3.7457329078329371E+00 3.7457329311710819E+00 + 3.7457329548966540E+00 3.7457329790149902E+00 3.7457330035314813E+00 + 3.7457330284516206E+00 3.7457330537809090E+00 3.7457330795249879E+00 + 3.7457331056895229E+00 3.7457331322802645E+00 3.7457331593030569E+00 + 3.7457331867637889E+00 3.7457332146684426E+00 3.7457332430230905E+00 + 3.7457332718338345E+00 3.7457333011069163E+00 3.7457333308485965E+00 + 3.7457333610652785E+00 3.7457333917633937E+00 3.7457334229494825E+00 + 3.7457334546301593E+00 3.7457334868121239E+00 3.7457335195021888E+00 + 3.7457335527071987E+00 3.7457335864341417E+00 3.7457336206900482E+00 + 3.7457336554820753E+00 3.7457336908174441E+00 3.7457337267034876E+00 + 3.7457337631476189E+00 3.7457338001573559E+00 3.7457338377403011E+00 + 3.7457338759041665E+00 3.7457339146567477E+00 3.7457339540059453E+00 + 3.7457339939597740E+00 3.7457340345263281E+00 3.7457340757138171E+00 + 3.7457341175305525E+00 3.7457341599849578E+00 3.7457342030855427E+00 + 3.7457342468409522E+00 3.7457342912599247E+00 3.7457343363512998E+00 + 3.7457343821240698E+00 3.7457344285872844E+00 3.7457344757501496E+00 + 3.7457345236219788E+00 3.7457345722122004E+00 3.7457346215303540E+00 + 3.7457346715861122E+00 3.7457347223892632E+00 3.7457347739497173E+00 + 3.7457348262775172E+00 3.7457348793828427E+00 3.7457349332759629E+00 + 3.7457349879673330E+00 3.7457350434674859E+00 3.7457350997871219E+00 + 3.7457351569370649E+00 3.7457352149282688E+00 3.7457352737718446E+00 + 3.7457353334790242E+00 3.7457353940612195E+00 3.7457354555299061E+00 + 3.7457355178967937E+00 3.7457355811736819E+00 3.7457356453725321E+00 + 3.7457357105054800E+00 3.7457357765847887E+00 3.7457358436228922E+00 + 3.7457359116323516E+00 3.7457359806259274E+00 3.7457360506165003E+00 + 3.7457361216171536E+00 3.7457361936410911E+00 3.7457362667017180E+00 + 3.7457363408126003E+00 3.7457364159874715E+00 3.7457364922402174E+00 + 3.7457365695849401E+00 3.7457366480358791E+00 3.7457367276074773E+00 + 3.7457368083143430E+00 3.7457368901712891E+00 3.7457369731932859E+00 + 3.7457370573955213E+00 3.7457371427933484E+00 3.7457372294023390E+00 + 3.7457373172382229E+00 3.7457374063169531E+00 3.7457374966547015E+00 + 3.7457375882677946E+00 3.7457376811728054E+00 3.7457377753864893E+00 + 3.7457378709258125E+00 3.7457379678079796E+00 3.7457380660503787E+00 + 3.7457381656706294E+00 3.7457382666865815E+00 3.7457383691162782E+00 + 3.7457384729780334E+00 3.7457385782903492E+00 3.7457386850719785E+00 + 3.7457387933418853E+00 3.7457389031193418E+00 3.7457390144237572E+00 + 3.7457391272748572E+00 3.7457392416925863E+00 3.7457393576971487E+00 + 3.7457394753090054E+00 3.7457395945488345E+00 3.7457397154376375E+00 + 3.7457398379966120E+00 3.7457399622472738E+00 3.7457400882113658E+00 + 3.7457402159109212E+00 3.7457403453682585E+00 3.7457404766059597E+00 + 3.7457406096468779E+00 3.7457407445141784E+00 3.7457408812312929E+00 + 3.7457410198219612E+00 3.7457411603102031E+00 3.7457413027203512E+00 + 3.7457414470770352E+00 3.7457415934051945E+00 3.7457417417300558E+00 + 3.7457418920772012E+00 3.7457420444725180E+00 3.7457421989421853E+00 + 3.7457423555127471E+00 3.7457425142110536E+00 3.7457426750643039E+00 + 3.7457428381000177E+00 3.7457430033460661E+00 3.7457431708306910E+00 + 3.7457433405824436E+00 3.7457435126302387E+00 3.7457436870033796E+00 + 3.7457438637315086E+00 3.7457440428446476E+00 3.7457442243731798E+00 + 3.7457444083478659E+00 3.7457445947998673E+00 3.7457447837607076E+00 + 3.7457449752623302E+00 3.7457451693370354E+00 3.7457453660175744E+00 + 3.7457455653370637E+00 3.7457457673290322E+00 3.7457459720274549E+00 + 3.7457461794667188E+00 3.7457463896816203E+00 3.7457466027073840E+00 + 3.7457468185796952E+00 3.7457470373346786E+00 3.7457472590088834E+00 + 3.7457474836393279E+00 3.7457477112634829E+00 3.7457479419193107E+00 + 3.7457481756452093E+00 3.7457484124800535E+00 3.7457486524632277E+00 + 3.7457488956345752E+00 3.7457491420344478E+00 3.7457493917036997E+00 + 3.7457496446836669E+00 3.7457499010162341E+00 3.7457501607437855E+00 + 3.7457504239092105E+00 3.7457506905559619E+00 3.7457509607280093E+00 + 3.7457512344698820E+00 3.7457515118266271E+00 3.7457517928439068E+00 + 3.7457520775678934E+00 3.7457523660453567E+00 3.7457526583236258E+00 + 3.7457529544506434E+00 3.7457532544749141E+00 3.7457535584455721E+00 + 3.7457538664123318E+00 3.7457541784255377E+00 3.7457544945361394E+00 + 3.7457548147957511E+00 3.7457551392565831E+00 3.7457554679715073E+00 + 3.7457558009940604E+00 3.7457561383784186E+00 3.7457564801794514E+00 + 3.7457568264526726E+00 3.7457571772543226E+00 3.7457575326412988E+00 + 3.7457578926712092E+00 3.7457582574024006E+00 3.7457586268939029E+00 + 3.7457590012054811E+00 3.7457593803976619E+00 3.7457597645316913E+00 + 3.7457601536695879E+00 3.7457605478741209E+00 3.7457609472088507E+00 + 3.7457613517381070E+00 3.7457617615270036E+00 3.7457621766414846E+00 + 3.7457625971482713E+00 3.7457630231149648E+00 3.7457634546099192E+00 + 3.7457638917024165E+00 3.7457643344625167E+00 3.7457647829611873E+00 + 3.7457652372702546E+00 3.7457656974624265E+00 3.7457661636113189E+00 + 3.7457666357914614E+00 3.7457671140782542E+00 3.7457675985480940E+00 + 3.7457680892782621E+00 3.7457685863470016E+00 3.7457690898335554E+00 + 3.7457695998181042E+00 3.7457701163818125E+00 3.7457706396068673E+00 + 3.7457711695764555E+00 3.7457717063747866E+00 3.7457722500871076E+00 + 3.7457728007997062E+00 3.7457733585999513E+00 3.7457739235762544E+00 + 3.7457744958181389E+00 3.7457750754162356E+00 3.7457756624622616E+00 + 3.7457762570490853E+00 3.7457768592706864E+00 3.7457774692222565E+00 + 3.7457780870000930E+00 3.7457787127017101E+00 3.7457793464258158E+00 + 3.7457799882723268E+00 3.7457806383423997E+00 3.7457812967384174E+00 + 3.7457819635640317E+00 3.7457826389241395E+00 3.7457833229249826E+00 + 3.7457840156740447E+00 3.7457847172801864E+00 3.7457854278535616E+00 + 3.7457861475056724E+00 3.7457868763494400E+00 3.7457876144991240E+00 + 3.7457883620704044E+00 3.7457891191803756E+00 3.7457898859475858E+00 + 3.7457906624920176E+00 3.7457914489351274E+00 3.7457922453998762E+00 + 3.7457930520107157E+00 3.7457938688936232E+00 3.7457946961761523E+00 + 3.7457955339873990E+00 3.7457963824580229E+00 3.7457972417203229E+00 + 3.7457981119081842E+00 3.7457989931571833E+00 3.7457998856044958E+00 + 3.7458007893890271E+00 3.7458017046513690E+00 3.7458026315338313E+00 + 3.7458035701804886E+00 3.7458045207371473E+00 3.7458054833514165E+00 + 3.7458064581727477E+00 3.7458074453523680E+00 3.7458084450433775E+00 + 3.7458094574007847E+00 3.7458104825814389E+00 3.7458115207441551E+00 + 3.7458125720496760E+00 3.7458136366607304E+00 3.7458147147420084E+00 + 3.7458158064602278E+00 3.7458169119841842E+00 3.7458180314846765E+00 + 3.7458191651346597E+00 3.7458203131091476E+00 3.7458214755853385E+00 + 3.7458226527425871E+00 3.7458238447624348E+00 3.7458250518286529E+00 + 3.7458262741272557E+00 3.7458275118465503E+00 3.7458287651771278E+00 + 3.7458300343119229E+00 3.7458313194462218E+00 3.7458326207777075E+00 + 3.7458339385064927E+00 3.7458352728351056E+00 3.7458366239685814E+00 + 3.7458379921144491E+00 3.7458393774827821E+00 3.7458407802862199E+00 + 3.7458422007399910E+00 3.7458436390619991E+00 3.7458450954727533E+00 + 3.7458465701954760E+00 3.7458480634561440E+00 3.7458495754834944E+00 + 3.7458511065090181E+00 3.7458526567670734E+00 3.7458542264948922E+00 + 3.7458558159325586E+00 3.7458574253231425E+00 3.7458590549126400E+00 + 3.7458607049500996E+00 3.7458623756875604E+00 3.7458640673801922E+00 + 3.7458657802862421E+00 3.7458675146671272E+00 3.7458692707874617E+00 + 3.7458710489150926E+00 3.7458728493211146E+00 3.7458746722799736E+00 + 3.7458765180694358E+00 3.7458783869706771E+00 3.7458802792683050E+00 + 3.7458821952503802E+00 3.7458841352085064E+00 3.7458860994378278E+00 + 3.7458880882371037E+00 3.7458901019087643E+00 3.7458921407588606E+00 + 3.7458942050972559E+00 3.7458962952375638E+00 3.7458984114972060E+00 + 3.7459005541975103E+00 3.7459027236637032E+00 3.7459049202249997E+00 + 3.7459071442146068E+00 3.7459093959698162E+00 3.7459116758320370E+00 + 3.7459139841468017E+00 3.7459163212639415E+00 3.7459186875374635E+00 + 3.7459210833257406E+00 3.7459235089915124E+00 3.7459259649019434E+00 + 3.7459284514286670E+00 3.7459309689478526E+00 3.7459335178402373E+00 + 3.7459360984912591E+00 3.7459387112909637E+00 3.7459413566342379E+00 + 3.7459440349207398E+00 3.7459467465549952E+00 3.7459494919464769E+00 + 3.7459522715096445E+00 3.7459550856640149E+00 3.7459579348341907E+00 + 3.7459608194499827E+00 3.7459637399464167E+00 3.7459666967638232E+00 + 3.7459696903479132E+00 3.7459727211498079E+00 3.7459757896261121E+00 + 3.7459788962390523E+00 3.7459820414564029E+00 3.7459852257517010E+00 + 3.7459884496042375E+00 3.7459917134990950E+00 3.7459950179273309E+00 + 3.7459983633859286E+00 3.7460017503779550E+00 3.7460051794125944E+00 + 3.7460086510052135E+00 3.7460121656774907E+00 3.7460157239573979E+00 + 3.7460193263793888E+00 3.7460229734844006E+00 3.7460266658199468E+00 + 3.7460304039402117E+00 3.7460341884061208E+00 3.7460380197854364E+00 + 3.7460418986528135E+00 3.7460458255899192E+00 3.7460498011854662E+00 + 3.7460538260353577E+00 3.7460579007427399E+00 3.7460620259180919E+00 + 3.7460662021793056E+00 3.7460704301518102E+00 3.7460747104686383E+00 + 3.7460790437704978E+00 3.7460834307059172E+00 3.7460878719313029E+00 + 3.7460923681110172E+00 3.7460969199175542E+00 3.7461015280315113E+00 + 3.7461061931418307E+00 3.7461109159457715E+00 3.7461156971491079E+00 + 3.7461205374661573E+00 3.7461254376199595E+00 3.7461303983423178E+00 + 3.7461354203739137E+00 3.7461405044644662E+00 3.7461456513727605E+00 + 3.7461508618668335E+00 3.7461561367240281E+00 3.7461614767311615E+00 + 3.7461668826845758E+00 3.7461723553902977E+00 3.7461778956641445E+00 + 3.7461835043318428E+00 3.7461891822291538E+00 3.7461949302019564E+00 + 3.7462007491064298E+00 3.7462066398091314E+00 3.7462126031871530E+00 + 3.7462186401282178E+00 3.7462247515308364E+00 3.7462309383044259E+00 + 3.7462372013694307E+00 3.7462435416574502E+00 3.7462499601114372E+00 + 3.7462564576857349E+00 3.7462630353462854E+00 3.7462696940707727E+00 + 3.7462764348486970E+00 3.7462832586815860E+00 3.7462901665831145E+00 + 3.7462971595792438E+00 3.7463042387083845E+00 3.7463114050215318E+00 + 3.7463186595824398E+00 3.7463260034677504E+00 3.7463334377671385E+00 + 3.7463409635835130E+00 3.7463485820331437E+00 3.7463562942458513E+00 + 3.7463641013651001E+00 3.7463720045482551E+00 3.7463800049666922E+00 + 3.7463881038059750E+00 3.7463963022660263E+00 3.7464046015613266E+00 + 3.7464130029210470E+00 3.7464215075892566E+00 3.7464301168250844E+00 + 3.7464388319029092E+00 3.7464476541125507E+00 3.7464565847594344E+00 + 3.7464656251648103E+00 3.7464747766658872E+00 3.7464840406160840E+00 + 3.7464934183851968E+00 3.7465029113596242E+00 3.7465125209424821E+00 + 3.7465222485539376E+00 3.7465320956312729E+00 3.7465420636291991E+00 + 3.7465521540200224E+00 3.7465623682938451E+00 3.7465727079587765E+00 + 3.7465831745412017E+00 3.7465937695859530E+00 3.7466044946565074E+00 + 3.7466153513352705E+00 3.7466263412237928E+00 3.7466374659429498E+00 + 3.7466487271332150E+00 3.7466601264549055E+00 3.7466716655883654E+00 + 3.7466833462342710E+00 3.7466951701138473E+00 3.7467071389690867E+00 + 3.7467192545630223E+00 3.7467315186799870E+00 3.7467439331258818E+00 + 3.7467564997283738E+00 3.7467692203372081E+00 3.7467820968244743E+00 + 3.7467951310848302E+00 3.7468083250358371E+00 3.7468216806181309E+00 + 3.7468351997958456E+00 3.7468488845567460E+00 3.7468627369125964E+00 + 3.7468767588994272E+00 3.7468909525778122E+00 3.7469053200331861E+00 + 3.7469198633761125E+00 3.7469345847426072E+00 3.7469494862944419E+00 + 3.7469645702193839E+00 3.7469798387316531E+00 3.7469952940720841E+00 + 3.7470109385085171E+00 3.7470267743361219E+00 3.7470428038777053E+00 + 3.7470590294840478E+00 3.7470754535342223E+00 3.7470920784359447E+00 + 3.7471089066259236E+00 3.7471259405701876E+00 3.7471431827644262E+00 + 3.7471606357343861E+00 3.7471783020361684E+00 3.7471961842566333E+00 + 3.7472142850137398E+00 3.7472326069569353E+00 3.7472511527675199E+00 + 3.7472699251590229E+00 3.7472889268775709E+00 3.7473081607023233E+00 + 3.7473276294457829E+00 3.7473473359542715E+00 3.7473672831082938E+00 + 3.7473874738229376E+00 3.7474079110482887E+00 3.7474285977698538E+00 + 3.7474495370089578E+00 3.7474707318232108E+00 3.7474921853068799E+00 + 3.7475139005913518E+00 3.7475358808455939E+00 3.7475581292765505E+00 + 3.7475806491296311E+00 3.7476034436891439E+00 3.7476265162787437E+00 + 3.7476498702619176E+00 3.7476735090424604E+00 3.7476974360649296E+00 + 3.7477216548151233E+00 3.7477461688205818E+00 3.7477709816510716E+00 + 3.7477960969190831E+00 3.7478215182803236E+00 3.7478472494342467E+00 + 3.7478732941245494E+00 3.7478996561396767E+00 3.7479263393133908E+00 + 3.7479533475252556E+00 3.7479806847012074E+00 3.7480083548141021E+00 + 3.7480363618842163E+00 3.7480647099798428E+00 3.7480934032178621E+00 + 3.7481224457642863E+00 3.7481518418348236E+00 3.7481815956955100E+00 + 3.7482117116632203E+00 3.7482421941063597E+00 3.7482730474453594E+00 + 3.7483042761533811E+00 3.7483358847568233E+00 3.7483678778360661E+00 + 3.7484002600260107E+00 3.7484330360167353E+00 3.7484662105541418E+00 + 3.7484997884406281E+00 3.7485337745356890E+00 3.7485681737566434E+00 + 3.7486029910792382E+00 3.7486382315383899E+00 3.7486739002288383E+00 + 3.7487100023058302E+00 3.7487465429858391E+00 3.7487835275472912E+00 + 3.7488209613312158E+00 3.7488588497420294E+00 3.7488971982482684E+00 + 3.7489360123832807E+00 3.7489752977460196E+00 3.7490150600017644E+00 + 3.7490553048829267E+00 3.7490960381897986E+00 3.7491372657913091E+00 + 3.7491789936258666E+00 3.7492212277020895E+00 3.7492639740996938E+00 + 3.7493072389702387E+00 3.7493510285379781E+00 3.7493953491006966E+00 + 3.7494402070305428E+00 3.7494856087748842E+00 3.7495315608571493E+00 + 3.7495780698777419E+00 3.7496251425148421E+00 3.7496727855253753E+00 + 3.7497210057458590E+00 3.7497698100933019E+00 3.7498192055661614E+00 + 3.7498691992452624E+00 3.7499197982946368E+00 3.7499710099626240E+00 + 3.7500228415827124E+00 3.7500753005745335E+00 3.7501283944448294E+00 + 3.7501821307884549E+00 3.7502365172893519E+00 3.7502915617215922E+00 + 3.7503472719503144E+00 3.7504036559328338E+00 3.7504607217196129E+00 + 3.7505184774553544E+00 3.7505769313800292E+00 3.7506360918299397E+00 + 3.7506959672388351E+00 3.7507565661389579E+00 3.7508178971621375E+00 + 3.7508799690409846E+00 3.7509427906098667E+00 3.7510063708062087E+00 + 3.7510707186714840E+00 3.7511358433524813E+00 3.7512017541024130E+00 + 3.7512684602821040E+00 3.7513359713612031E+00 3.7514042969193566E+00 + 3.7514734466474380E+00 3.7515434303487170E+00 3.7516142579402474E+00 + 3.7516859394539286E+00 3.7517584850378727E+00 3.7518319049576574E+00 + 3.7519062095975899E+00 3.7519814094620578E+00 3.7520575151767721E+00 + 3.7521345374901123E+00 3.7522124872744649E+00 3.7522913755275988E+00 + 3.7523712133739404E+00 3.7524520120660205E+00 3.7525337829858492E+00 + 3.7526165376462650E+00 3.7527002876923699E+00 3.7527850449029785E+00 + 3.7528708211920057E+00 3.7529576286099400E+00 3.7530454793452894E+00 + 3.7531343857260588E+00 3.7532243602212665E+00 3.7533154154423514E+00 + 3.7534075641447946E+00 3.7535008192295765E+00 3.7535951937447325E+00 + 3.7536907008868945E+00 3.7537873540028524E+00 3.7538851665911603E+00 + 3.7539841523037185E+00 3.7540843249473017E+00 3.7541856984852862E+00 + 3.7542882870392074E+00 3.7543921048904387E+00 3.7544971664818010E+00 + 3.7546034864193079E+00 3.7547110794737302E+00 3.7548199605824122E+00 + 3.7549301448509307E+00 3.7550416475547777E+00 3.7551544841411562E+00 + 3.7552686702306870E+00 3.7553842216191970E+00 3.7555011542794658E+00 + 3.7556194843630100E+00 3.7557392282019344E+00 3.7558604023106485E+00 + 3.7559830233878051E+00 3.7561071083180559E+00 3.7562326741739085E+00 + 3.7563597382176237E+00 3.7564883179030786E+00 3.7566184308776140E+00 + 3.7567500949840094E+00 3.7568833282623215E+00 3.7570181489518450E+00 + 3.7571545754930358E+00 3.7572926265294750E+00 3.7574323209098024E+00 + 3.7575736776897140E+00 3.7577167161339053E+00 3.7578614557181349E+00 + 3.7580079161311128E+00 3.7581561172766560E+00 3.7583060792755685E+00 + 3.7584578224678009E+00 3.7586113674144435E+00 3.7587667348997527E+00 + 3.7589239459332471E+00 3.7590830217518070E+00 3.7592439838217162E+00 + 3.7594068538407792E+00 3.7595716537404011E+00 3.7597384056877079E+00 + 3.7599071320876836E+00 3.7600778555852674E+00 3.7602505990674846E+00 + 3.7604253856656369E+00 3.7606022387573623E+00 3.7607811819688797E+00 + 3.7609622391770672E+00 3.7611454345116706E+00 3.7613307923575006E+00 + 3.7615183373565095E+00 3.7617080944100705E+00 3.7619000886811009E+00 + 3.7620943455962665E+00 3.7622908908481536E+00 3.7624897503974473E+00 + 3.7626909504752142E+00 3.7628945175849156E+00 3.7631004785047950E+00 + 3.7633088602898961E+00 3.7635196902743866E+00 3.7637329960736885E+00 + 3.7639488055866090E+00 3.7641671469976439E+00 3.7643880487790407E+00 + 3.7646115396930719E+00 3.7648376487940913E+00 3.7650664054307987E+00 + 3.7652978392483338E+00 3.7655319801904521E+00 3.7657688585016111E+00 + 3.7660085047291982E+00 3.7662509497255163E+00 3.7664962246500089E+00 + 3.7667443609712539E+00 3.7669953904691225E+00 3.7672493452367806E+00 + 3.7675062576827538E+00 3.7677661605329558E+00 3.7680290868327013E+00 + 3.7682950699487083E+00 3.7685641435710258E+00 3.7688363417149984E+00 + 3.7691116987232216E+00 3.7693902492673654E+00 3.7696720283501093E+00 + 3.7699570713069530E+00 3.7702454138079986E+00 3.7705370918597896E+00 + 3.7708321418070039E+00 3.7711306003341809E+00 3.7714325044674051E+00 + 3.7717378915759281E+00 3.7720467993737281E+00 3.7723592659211231E+00 + 3.7726753296262454E+00 3.7729950292464900E+00 3.7733184038899310E+00 + 3.7736454930166889E+00 3.7739763364402501E+00 3.7743109743286722E+00 + 3.7746494472058485E+00 3.7749917959525487E+00 3.7753380618075592E+00 + 3.7756882863686685E+00 3.7760425115936087E+00 3.7764007798008938E+00 + 3.7767631336706722E+00 3.7771296162453529E+00 3.7775002709303185E+00 + 3.7778751414944640E+00 3.7782542720706394E+00 3.7786377071560673E+00 + 3.7790254916125821E+00 3.7794176706668394E+00 3.7798142899104779E+00 + 3.7802153952999911E+00 3.7806210331567027E+00 3.7810312501664995E+00 + 3.7814460933794916E+00 3.7818656102095964E+00 3.7822898484338872E+00 + 3.7827188561919520E+00 3.7831526819850003E+00 3.7835913746749741E+00 + 3.7840349834833353E+00 3.7844835579898595E+00 3.7849371481312297E+00 + 3.7853958041994793E+00 3.7858595768402483E+00 3.7863285170509200E+00 + 3.7868026761785378E+00 3.7872821059176558E+00 3.7877668583077750E+00 + 3.7882569857308863E+00 3.7887525409086238E+00 3.7892535768992706E+00 + 3.7897601470945510E+00 3.7902723052162584E+00 3.7907901053125710E+00 + 3.7913136017542728E+00 3.7918428492305778E+00 3.7923779027448914E+00 + 3.7929188176101736E+00 3.7934656494441388E+00 3.7940184541641906E+00 + 3.7945772879820021E+00 3.7951422073979226E+00 3.7957132691950268E+00 + 3.7962905304329491E+00 3.7968740484412593E+00 3.7974638808127366E+00 + 3.7980600853961359E+00 3.7986627202887164E+00 3.7992718438284205E+00 + 3.7998875145856830E+00 3.8005097913548647E+00 3.8011387331453745E+00 + 3.8017743991723378E+00 3.8024168488468915E+00 3.8030661417661427E+00 + 3.8037223377025660E+00 3.8043854965931447E+00 3.8050556785279097E+00 + 3.8057329437381546E+00 3.8064173525841198E+00 3.8071089655421648E+00 + 3.8078078431915592E+00 3.8085140462006501E+00 3.8092276353125705E+00 + 3.8099486713304294E+00 3.8106772151018649E+00 3.8114133275031628E+00 + 3.8121570694226810E+00 3.8129085017437143E+00 3.8136676853268021E+00 + 3.8144346809912997E+00 3.8152095494964158E+00 3.8159923515214964E+00 + 3.8167831476456677E+00 3.8175819983268369E+00 3.8183889638798316E+00 + 3.8192041044538989E+00 3.8200274800095064E+00 3.8208591502941949E+00 + 3.8216991748177986E+00 3.8225476128267362E+00 3.8234045232775333E+00 + 3.8242699648093930E+00 3.8251439957160347E+00 3.8260266739164370E+00 + 3.8269180569247698E+00 3.8278182018193463E+00 3.8287271652105961E+00 + 3.8296450032079585E+00 3.8305717713858582E+00 3.8315075247485639E+00 + 3.8324523176939183E+00 3.8334062039760286E+00 3.8343692366667703E+00 + 3.8353414681161087E+00 3.8363229499112750E+00 3.8373137328346063E+00 + 3.8383138668202319E+00 3.8393234009093873E+00 3.8403423832044306E+00 + 3.8413708608214701E+00 3.8424088798416354E+00 3.8434564852608522E+00 + 3.8445137209382212E+00 3.8455806295428521E+00 3.8466572524991158E+00 + 3.8477436299304264E+00 3.8488398006012527E+00 3.8499458018575972E+00 + 3.8510616695657278E+00 3.8521874380491479E+00 3.8533231400237566E+00 + 3.8544688065313037E+00 3.8556244668707755E+00 3.8567901485280460E+00 + 3.8579658771034278E+00 3.8591516762372819E+00 3.8603475675335299E+00 + 3.8615535704810449E+00 3.8627697023729026E+00 3.8639959782234374E+00 + 3.8652324106829217E+00 3.8664790099500257E+00 3.8677357836818658E+00 + 3.8690027369016238E+00 3.8702798719036045E+00 3.8715671881558222E+00 + 3.8728646821999235E+00 3.8741723475484755E+00 3.8754901745794710E+00 + 3.8768181504279959E+00 3.8781562588751299E+00 3.8795044802338334E+00 + 3.8808627912318228E+00 3.8822311648913947E+00 3.8836095704061715E+00 + 3.8849979730143973E+00 3.8863963338692309E+00 3.8878046099054950E+00 + 3.8892227537029336E+00 3.8906507133461301E+00 3.8920884322806524E+00 + 3.8935358491654939E+00 3.8949928977219113E+00 3.8964595065782315E+00 + 3.8979355991107862E+00 3.8994210932807714E+00 3.9009159014670307E+00 + 3.9024199302945641E+00 3.9039330804587902E+00 3.9054552465452752E+00 + 3.9069863168450971E+00 3.9085261731654897E+00 3.9100746906358075E+00 + 3.9116317375087459E+00 3.9131971749564984E+00 3.9147708568619821E+00 + 3.9163526296049551E+00 3.9179423318427506E+00 3.9195397942857673E+00 + 3.9211448394674262E+00 3.9227572815085159E+00 3.9243769258758632E+00 + 3.9260035691351085E+00 3.9276369986975403E+00 3.9292769925608377E+00 + 3.9309233190435622E+00 3.9325757365133138E+00 3.9342339931083870E+00 + 3.9358978264528268E+00 3.9375669633646648E+00 3.9392411195572401E+00 + 3.9409199993336399E+00 3.9426032952736869E+00 3.9442906879137305E+00 + 3.9459818454189435E+00 3.9476764232479313E+00 3.9493740638095858E+00 + 3.9510743961118893E+00 3.9527770354026446E+00 3.9544815828019781E+00 + 3.9561876249262866E+00 3.9578947335036303E+00 3.9596024649802963E+00 + 3.9613103601184290E+00 3.9630179435845392E+00 3.9647247235285765E+00 + 3.9664301911536475E+00 3.9681338202759755E+00 3.9698350668749973E+00 + 3.9715333686334029E+00 3.9732281444668880E+00 3.9749187940435604E+00 + 3.9766046972926059E+00 3.9782852139021241E+00 3.9799596828059580E+00 + 3.9816274216592951E+00 3.9832877263027395E+00 3.9849398702147671E+00 + 3.9865831039523472E+00 3.9882166545793334E+00 3.9898397250827378E+00 + 3.9914514937763665E+00 3.9930511136916906E+00 3.9946377119558401E+00 + 3.9962103891563370E+00 3.9977682186924386E+00 3.9993102461127945E+00 + 4.0008354884392956E+00 4.0023429334767409E+00 4.0038315391081101E+00 + 4.0053002325754568E+00 4.0067479097456875E+00 4.0081734343615336E+00 + 4.0095756372770328E+00 4.0109533156775834E+00 4.0123052322841373E+00 + 4.0136301145413444E+00 4.0149266537895043E+00 4.0161935044198280E+00 + 4.0174292830131106E+00 4.0186325674612133E+00 4.0198018960713267E+00 + 4.0209357666527668E+00 4.0220326355858820E+00 4.0230909168730138E+00 + 4.0241089811711985E+00 4.0250851548062458E+00 4.0260177187682178E+00 + 4.0269049076876957E+00 4.0277449087929895E+00 4.0285358608476676E+00 + 4.0292758530685084E+00 4.0299629240233212E+00 4.0305950605086549E+00 + 4.0311701964070394E+00 4.0316862115234997E+00 4.0321409304012157E+00 + 4.0325321211160228E+00 4.0328574940495416E+00 4.0331147006408337E+00 + 4.0333013321161282E+00 4.0334149181967875E+00 4.0334529257848093E+00 + 4.0334127576262526E+00 4.0332917509519097E+00 4.0330871760953748E+00 + 4.0327962350880888E+00 4.0324160602313839E+00 4.0319437126453908E+00 + 4.0313761807944521E+00 4.0307103789891148E+00 4.0299431458645207E+00 + 4.0290712428350517E+00 4.0280913525251671E+00 4.0270000771763490E+00 + 4.0257939370300093E+00 4.0244693686864910E+00 4.0230227234398539E+00 + 4.0214502655887010E+00 4.0197481707227594E+00 4.0179125239854923E+00 + 4.0159393183125882E+00 4.0138244526463991E+00 4.0115637301265306E+00 + 4.0091528562564811E+00 4.0065874370465977E+00 4.0038629771333643E+00 + 4.0009748778754108E+00 3.9979184354260204E+00 3.9946888387828672E+00 + 3.9912811678148605E+00 3.9876903912663608E+00 3.9839113647394999E+00 + 3.9799388286543933E+00 3.9757674061878889E+00 3.9713916011914732E+00 + 3.9668057960883512E+00 3.9620042497504233E+00 3.9569810953557947E+00 + 3.9517303382271636E+00 3.9462458536518183E+00 3.9405213846839113E+00 + 3.9345505399296932E+00 3.9283267913164930E+00 3.9218434718462110E+00 + 3.9150937733342634E+00 3.9080707441347537E+00 3.9007672868530729E+00 + 3.8931761560467808E+00 3.8852899559158889E+00 3.8771011379838130E+00 + 3.8686019987702247E+00 3.8597846774568167E+00 3.8506411535478078E+00 + 3.8411632445263630E+00 3.8313426035083129E+00 3.8211707168952254E+00 + 3.8106389020279954E+00 3.7997383048431295E+00 3.7884598975333614E+00 + 3.7767944762145538E+00 3.7647326586010483E+00 3.7522648816914685E+00 + 3.7393813994672840E+00 3.7260722806064281E+00 3.7123274062145177E+00 + 3.6981364675759805E+00 3.6834889639280548E+00 3.6683742002602768E+00 + 3.6527812851423356E+00 3.6366991285833237E+00 3.6201164399256403E+00 + 3.6030217257766877E+00 3.5854032879818392E+00 3.5672492216421214E+00 + 3.5485474131804842E+00 3.5292855384602571E+00 3.5094510609599769E+00 + 3.4890312300084783E+00 3.4680130790847934E+00 3.4463834241870850E+00 + 3.4241288622752206E+00 3.4012357697920192E+00 3.3776903012676556E+00 + 3.3534783880127601E+00 3.3285857369052856E+00 3.3029978292765612E+00 + 3.2766999199024065E+00 3.2496770361048752E+00 3.2219139769709217E+00 + 3.1933953126940646E+00 3.1641053840454716E+00 3.1340283019812190E+00 + 3.1031479473925128E+00 3.0714479710058447E+00 3.0389117934404890E+00 + 3.0055226054307189E+00 2.9712633682205785E+00 2.9361168141389711E+00 + 2.9000654473633247E+00 2.8630915448802625E+00 2.8251771576518476E+00 + 2.7863041119961185E+00 2.7464540111913882E+00 2.7056082373131338E+00 + 2.6637479533135506E+00 2.6208541053530712E+00 2.5769074253944519E+00 + 2.5318884340692627E+00 2.4857774438275690E+00 2.4385545623815390E+00 + 2.3901996964539816E+00 2.3406925558432112E+00 2.2900126578155193E+00 + 2.2381393318373664E+00 2.1850517246588481E+00 2.1307288057612883E+00 + 2.0751493731806199E+00 2.0182920597202614E+00 1.9601353395653860E+00 + 1.9006575353126614E+00 1.8398368254281205E+00 1.7776512521472698E+00 + 1.7140787298309736E+00 1.6490970537910603E+00 1.5826839096000931E+00 + 1.5148168828993693E+00 1.4454734697199587E+00 1.3746310873312169E+00 + 1.3022670856317622E+00 1.2283587590979523E+00 1.1528833593047974E+00 + 1.0758181080345000E+00 9.9714021098815953E-01 9.1682687211569414E-01 + 8.3485530857959445E-01 7.5120276636780559E-01 6.6584653657136172E-01 + 5.7876397234198518E-01 4.8993250654532428E-01 3.9932967012489173E-01 + 3.0693311119209482E-01 2.1272061485756472E-01 1.1667012381844823E-01 + 1.8759759716877884E-02 -8.1032154716272120E-02 -1.8272707271761193E-01 + -2.8634619973378483E-01 -3.9191046883642267E-01 -4.9944051529636385E-01 + -6.0895665030407176E-01 -7.2047883382420230E-01 -8.3402664657194869E-01 + -9.4961926110035666E-01 -1.0672754119874812E+00 -1.1870133651138357E+00 + -1.3088508860203834E+00 -1.4328052073389828E+00 -1.5588929952877113E+00 + -1.6871303152239556E+00 -1.8175325962502944E+00 -1.9501145948679448E+00 + -2.0848903576748623E+00 -2.2218731831058443E+00 -2.3610755822141996E+00 + -2.5025092384948926E+00 -2.6461849667518758E+00 -2.7921126710122457E+00 + -2.9403013014933039E+00 -3.0907588106285950E+00 -3.2434921081625001E+00 + -3.3985070153233776E+00 -3.5558082180883233E+00 -3.7153992195547563E+00 + -3.8772822914351908E+00 -4.0414584246956169E+00 -4.2079272793586222E+00 + -4.3766871334966400E+00 -4.5477348314418489E+00 -4.7210657312434874E+00 + -4.8966736514050568E+00 -5.0745508169379905E+00 -5.2546878047707599E+00 + -5.4370734885561678E+00 -5.6216949829227181E+00 -5.8085375872199316E+00 + -5.9975847288106614E+00 -6.1888179059672828E+00 -6.3822166304333923E+00 + -6.5777583697157205E+00 -6.7754184891752054E+00 -6.9751701939916000E+00 + -7.1769844710789386E+00 -7.3808300310351189E+00 -7.5866732502117422E+00 + -7.7944781129975498E+00 -8.0042061544115679E+00 -8.2158164031081622E+00 + -8.4292653249006033E+00 -8.6445067669161020E+00 -8.8614919024991821E+00 + -9.0801691769866810E+00 -9.3004842544820416E+00 -9.5223799657634505E+00 + -9.7457962574649581E+00 -9.9706701426748072E+00 -1.0196935653102774E+01 + -1.0424523792971696E+01 -1.0653362494795957E+01 -1.0883376577213310E+01 + -1.1114487705044494E+01 -1.1346614351758538E+01 -1.1579671764528516E+01 + -1.1813571932066655E+01 -1.2048223555434982E+01 -1.2283532022030945E+01 + -1.2519399382953923E+01 -1.2755724333961968E+01 -1.2992402200235064E+01 + -1.3229324925163583E+01 -1.3466381063385164E+01 -1.3703455778299023E+01 + -1.3940430844287599E+01 -1.4177184653881289E+01 -1.4413592230102331E+01 + -1.4649525244229402E+01 -1.4884852039223565E+01 -1.5119437659060141E+01 + -1.5353143884209626E+01 -1.5585829273514060E+01 -1.5817349212702354E+01 + -1.6047555969789062E+01 -1.6276298757597765E+01 -1.6503423803649927E+01 + -1.6728774427655267E+01 -1.6952191126835451E+01 -1.7173511669309875E+01 + -1.7392571195763942E+01 -1.7609208376435689E+01 -1.7823283991037812E+01 + -1.8034663423081913E+01 -1.8243210755913424E+01 -1.8448788837501027E+01 + -1.8651259348997616E+01 -1.8850482877140479E+01 -1.9046318990550418E+01 + -1.9238626319980373E+01 -1.9427262642557945E+01 -1.9612084970058099E+01 + -1.9792949641238202E+01 -1.9969712418261039E+01 -2.0142228587227645E+01 + -2.0310353062836402E+01 -2.0473940497181577E+01 -2.0632845392700641E+01 + -2.0786922219275102E+01 -2.0936025535487314E+01 -2.1080010114030827E+01 + -2.1218731071269772E+01 -2.1352044000937344E+01 -2.1479805111961277E+01 + -2.1601871370399106E+01 -2.1718100645463014E+01 -2.1828351859608080E+01 + -2.1932485142654748E+01 -2.2030361989910027E+01 -2.2121845424247912E+01 + -2.2206800162102240E+01 -2.2285092783320469E+01 -2.2356591904820210E+01 + -2.2421168357982591E+01 -2.2478695369710188E+01 -2.2529048747068895E+01 + -2.2572107065425524E+01 -2.2607751859983008E+01 -2.2635867820607459E+01 + -2.2656342989830151E+01 -2.2669068963898841E+01 -2.2673941096740652E+01 + -2.2670858706688861E+01 -2.2659725285813558E+01 -2.2640448711684705E+01 + -2.2612941461382643E+01 -2.2577120827558645E+01 -2.2532909136335039E+01 + -2.2480233966818933E+01 -2.2419028371990933E+01 -2.2349231100713819E+01 + -2.2270786820592530E+01 -2.2183646341399015E+01 -2.2087766838761734E+01 + -2.1983112077801113E+01 -2.1869652636377449E+01 -2.1747366127598792E+01 + -2.1616237421220500E+01 -2.1476258863549592E+01 -2.1327430495450152E+01 + -2.1169760268026696E+01 -2.1003264255545719E+01 -2.0827966865136258E+01 + -2.0643901042793011E+01 -2.0451108475186114E+01 -2.0249639786764206E+01 + -2.0039554731619457E+01 -1.9820922379564042E+01 -1.9593821295850965E+01 + -1.9358339713953811E+01 -1.9114575700803528E+01 -1.8862637313862400E+01 + -1.8602642749400431E+01 -1.8334720481322403E+01 -1.8059009389879925E+01 + -1.7775658879587116E+01 -1.7484828985646139E+01 -1.7186690468175282E+01 + -1.6881424893521402E+01 -1.6569224701926899E+01 -1.6250293260812700E+01 + -1.5924844902930673E+01 -1.5593104948631131E+01 -1.5255309711486927E+01 + -1.4911706486510914E+01 -1.4562553520202389E+01 -1.4208119961656879E+01 + -1.3848685793976111E+01 -1.3484541745218054E+01 -1.3115989178133376E+01 + -1.2743339957941524E+01 -1.2366916297411713E+01 -1.1987050578524732E+01 + -1.1604085149996305E+01 -1.1218372100035918E+01 -1.0830273003545898E+01 + -1.0440158643243020E+01 -1.0048408704021522E+01 -9.6554114399829984E+00 + -9.2615633135791189E+00 -8.8672686063503594E+00 -8.4729390007837573E+00 + -8.0789931328573985E+00 -7.6858561148867519E+00 -7.2939590283403435E+00 + -6.9037383863475066E+00 -6.5156355656814950E+00 -6.1300962080652148E+00 + -5.7475695907158721E+00 -5.3685079661176891E+00 -4.9933658710899378E+00 + -4.6225994053001855E+00 -4.2566654794597296E+00 -3.8960210335308219E+00 + -3.5411222253723951E+00 -3.1924235903534526E+00 -2.8503771725706111E+00 + -2.5154316284189839E+00 -2.1880313033833216E+00 -1.8686152830392206E+00 + -1.5576164193822568E+00 -1.2554603337360613E+00 -9.6256439762849610E-01 + -6.7933669316812906E-01 -4.0617495460101116E-01 -1.4346549288015156E-01 + 1.0841789476318359E-01 3.4911502809634809E-01 5.7828045769578507E-01 + 7.9558458680840394E-01 1.0007147986101208E+00 1.1933765860341472E+00 + 1.3732946811659530E+00 1.5402141810247221E+00 1.6939016663730904E+00 + 1.8341463100189570E+00 1.9607609708959510E+00 2.0735832700328172E+00 + 2.1724766443491932E+00 2.2573313740448668E+00 2.3280655791839604E+00 + 2.3846261809161700E+00 2.4269898226235251E+00 2.4551637461363267E+00 + 2.4691866180266331E+00 2.4691293008626229E+00 2.4550955641949601E+00 + 2.4272227299479026E+00 2.3856822468047776E+00 2.3306801881118053E+00 + 2.2624576677771473E+00 2.1812911686159620E+00 2.0874927775882606E+00 + 1.9814103223969100E+00 1.8634274039595946E+00 1.7339633193432331E+00 + 1.5934728698537277E+00 1.4424460491102020E+00 1.2814076061025828E+00 + 1.1109164784366925E+00 9.3156509121333653E-01 7.4397851726906128E-01 + 5.4881349482806630E-01 3.4675729897836316E-01 1.3852646379244971E-01 + -7.5134647635525548E-02 -2.9345542746664921E-01 -5.1564076339450227E-01 + -7.4087293601768234E-01 -9.6831367376304434E-01 -1.1971063651277316E+00 + -1.4263784272726308E+00 -1.6552438292168581E+00 -1.8828057670528506E+00 + -2.1081594877258576E+00 -2.3303952570013786E+00 -2.5486014662812710E+00 + -2.7618678719263174E+00 -2.9692889597025576E+00 -3.1699674258941872E+00 + -3.3630177655206794E+00 -3.5475699569649830E+00 -3.7227732311673067E+00 + -3.8877999123713280E+00 -4.0418493162320051E+00 -4.1841516899139224E+00 + -4.3139721776328814E+00 -4.4306147939297320E+00 -4.5334263858220689E+00 + -4.6218005638663939E+00 -4.6951815810895292E+00 -4.7530681377244379E+00 + -4.7950170887224433E+00 -4.8206470301232311E+00 -4.8296417395573137E+00 + -4.8217534454451521E+00 -4.7968058988561744E+00 -4.7546972215117655E+00 + -4.6954025030729589E+00 -4.6189761206585569E+00 -4.5255537535074737E+00 + -4.4153540658423998E+00 -4.2886800313247919E+00 -4.1459198730257460E+00 + -3.9875475935870690E+00 -3.8141230712228751E+00 -3.6262916984262672E+00 + -3.4247835417077375E+00 -3.2104120024118177E+00 -2.9840719606435653E+00 + -2.7467373865931219E+00 -2.4994584060801190E+00 -2.2433578099522342E+00 + -1.9796270000649858E+00 -1.7095213679408297E+00 -1.4343551058510118E+00 + -1.1554954539760911E+00 -8.7435639147090216E-01 -5.9239178367360423E-01 + -3.1108800234014494E-01 -3.1956040634581961E-02 2.4347685036131470E-01 + 5.1367597166667933E-01 7.7710839568221524E-01 1.0322525520642611E+00 + 1.2776081320719537E+00 1.5117062578104019E+00 1.7331198573786610E+00 + 1.9404741816120379E+00 2.1324573929394233E+00 2.3078311519178474E+00 + 2.4654411223209034E+00 2.6042273113115209E+00 2.7232341572912730E+00 + 2.8216202745594852E+00 2.8986677610083365E+00 2.9537909727992417E+00 + 2.9865446683849850E+00 2.9966314234359817E+00 2.9839082182700367E+00 + 2.9483921003435296E+00 2.8902648263063209E+00 2.8098763911149276E+00 + 2.7077473557972400E+00 2.5845698907175110E+00 2.4412074576460809E+00 + 2.2786930616274774E+00 2.0982260125864149E+00 1.9011671468242377E+00 + 1.6890324700363930E+00 1.4634851962064255E+00 1.2263261706705724E+00 + 9.7948268074765876E-01 7.2499567352218097E-01 4.6500541756441660E-01 + 2.0173566345987501E-01 -6.2523623129985911E-02 -3.2543486269687155E-01 + -5.8463268433695770E-01 -8.3774483623428020E-01 -1.0824140308497914E+00 + -1.3163205515806782E+00 -1.5372054282343193E+00 -1.7428939700099211E+00 + -1.9313194270956444E+00 -2.1005465357813469E+00 -2.2487946874804239E+00 + -2.3744604495798716E+00 -2.4761391559320276E+00 -2.5526452773999906E+00 + -2.6030312785028733E+00 -2.6266046651971271E+00 -2.6229429314808761E+00 + -2.5919061191011914E+00 -2.5336467154316766E+00 -2.4486166297863128E+00 + -2.3375710082170138E+00 -2.2015686713286571E+00 -2.0419689888990251E+00 + -1.8604250391095587E+00 -1.6588729388999679E+00 -1.4395172752005070E+00 + -1.2048126143286779E+00 -9.5744111833072898E-01 -7.0028635207470735E-01 + -4.3640342293542234E-01 -1.6898565532590873E-01 9.8671935601713209E-02 + 3.6321204386675182E-01 6.2125695615926557E-01 8.6945246720597602E-01 + 1.1045133157766267E+00 1.3232695739591347E+00 1.5227133707645530E+00 + 1.7000452853951522E+00 1.8527197069041146E+00 1.9784884267783116E+00 + 2.0754417104473859E+00 2.1420460840750768E+00 2.1771780753550876E+00 + 2.1801531624384216E+00 2.1507492144443372E+00 2.0892237509620153E+00 + 1.9963244070350754E+00 1.8732920645962157E+00 1.7218562011716878E+00 + 1.5442221115888273E+00 1.3430497777485626E+00 1.1214242942692907E+00 + 8.8281790259800641E-01 6.3104384126448820E-01 3.7020238318166149E-01 + 1.0461959974132500E-01 -1.6122043698198688E-01 -4.2274913157689259E-01 + -6.7539147292168011E-01 -9.1464756383708190E-01 -1.1361762175208892E+00 + -1.3358791347229551E+00 -1.5099840652759327E+00 -1.6551252719380403E+00 + -1.7684195576256176E+00 -1.8475360928639037E+00 -1.8907582921440118E+00 + -1.8970360388275342E+00 -1.8660266506466450E+00 -1.7981231133124369E+00 + -1.6944682889923786E+00 -1.5569540291765021E+00 -1.3882043863444546E+00 + -1.1915424233024066E+00 -9.7094045924979777E-01 -7.3095396242926280E-01 + -4.7663969416437568E-01 -2.1345912046835469E-01 5.2831473740514695E-02 + 3.1630231652070168E-01 5.7098067294931454E-01 8.1098793015034332E-01 + 1.0306802725995998E+00 1.2247896876726494E+00 1.3885618146785310E+00 + 1.5178869983877035E+00 1.6094208412978308E+00 1.6606905772250053E+00 + 1.6701837201156569E+00 1.6374156818715755E+00 1.5629734044367964E+00 + 1.4485325143262127E+00 1.2968460786978875E+00 1.1117037138205745E+00 + 8.9786055833147072E-01 6.6093646002600459E-01 4.0728661716177617E-01 + 1.4384584073993822E-01 -1.2205046311886744E-01 -3.8286458075474089E-01 + -6.3106918081232755E-01 -8.5936876672334850E-01 -1.0609235992857236E+00 + -1.2295692954660651E+00 -1.3600249905133401E+00 -1.4480828412462023E+00 + -1.4907717719337938E+00 -1.4864887375777434E+00 -1.4350914124319583E+00 + -1.3379471056359211E+00 -1.1979338527870118E+00 -1.0193910137852833E+00 + -8.0801829426912097E-01 -5.7072386050790203E-01 -3.1542408530467003E-01 + -5.0799385151191839E-02 2.1398748197809508E-01 4.6960246834600389E-01 + 7.0687079545715492E-01 9.1711577465383742E-01 1.0924935681107986E+00 + 1.2263108951861614E+00 1.3133124814126451E+00 1.3499253574228967E+00 + 1.3344479775011504E+00 1.2671735566528159E+00 1.1504390121946579E+00 + 9.8859340639257909E-01 7.8788275910248773E-01 5.5625144488805967E-01 + 3.0306399255453520E-01 3.8754827360889893E-02 -2.2558282181994524E-01 + -4.7865416033469421E-01 -7.0944844880037172E-01 -9.0773275168771561E-01 + -1.0645318141999036E+00 -1.1725712285698826E+00 -1.2266612396976568E+00 + -1.2239998429546513E+00 -1.1643762818041470E+00 -1.0502596419829651E+00 + -8.8676188372105957E-01 -6.8147021130688290E-01 -4.4414994408716491E-01 + -1.8632575885630606E-01 7.9243997232498767E-02 3.3917862950733418E-01 + 5.8014478298396011E-01 7.8955224953627667E-01 9.5624005339523621E-01 + 1.0711150827247449E+00 1.1277056171672213E+00 1.1225943340326936E+00 + 1.0556998276778080E+00 9.3038228956923219E-01 7.5335757481733612E-01 + 5.3441408726041761E-01 2.8593827529735716E-01 2.2266447925616911E-02 + -2.4110760004170717E-01 -4.8842878189661743E-01 -7.0463115497970519E-01 + -8.7628624545390055E-01 -9.9248923136610956E-01 -1.0456229059029649E+00 + -1.0319432646924764E+00 -9.5193855445187348E-01 -8.1042551434153065E-01 + -6.1636187237796980E-01 -3.8237216982580186E-01 -1.2400364646228933E-01 + 1.4125102983882065E-01 3.9510838479764232E-01 6.1975380792376100E-01 + 7.9912145279936375E-01 9.2010232641071565E-01 9.7358763716907193E-01 + 9.5526057128820796E-01 8.6606293054231576E-01 7.1228311209815809E-01 + 5.0523777686838756E-01 2.6054969392365429E-01 -2.9433932215308257E-03 + -2.6458191733343722E-01 -5.0348352078605974E-01 -7.0022833825061925E-01 + -8.3849560175158699E-01 -9.0651163332125428E-01 -8.9817596049263781E-01 + -8.1375113293893830E-01 -6.6003228221813226E-01 -4.4995287796052935E-01 + -2.0163072401714691E-01 6.3090725210903018E-02 3.2050069846408719E-01 + 5.4712965151591519E-01 7.2192479344179361E-01 8.2829200018826898E-01 + 8.5580011012388613E-01 8.0136617415091838E-01 6.6977571961971838E-01 + 4.7345068665750278E-01 2.3144668830169307E-01 -3.2261152454790804E-02 + -2.9106712955691139E-01 -5.1839277905036529E-01 -6.9045481733845637E-01 + -7.8885519244468283E-01 -8.0270502134171506E-01 -7.3002575034668526E-01 + -5.7823357898421401E-01 -3.6360281536299011E-01 -1.0971254839049559E-01 + 1.5500205249258528E-01 4.0036038434289623E-01 5.9788208240760743E-01 + 7.2417891995684636E-01 7.6388437026754363E-01 7.1174094820825518E-01 + 5.7354350093994622E-01 3.6575876081735365E-01 1.1379619220973973E-01 + -1.5092452125190786E-01 -3.9479891959201069E-01 -5.8630818794733564E-01 + -7.0019760998027070E-01 -7.2100219412440913E-01 -6.4540909841461536E-01 + -4.8307126695027763E-01 -2.5567517529645328E-01 5.7030677217407575E-03 + 2.6467402746743129E-01 4.8454011157002702E-01 6.3355727978713305E-01 + 6.8969798680082317E-01 6.4418327506237871E-01 5.0318769550946185E-01 + 2.8735857272698961E-01 2.9103481988641395E-02 -2.3205562582006550E-01 + -4.5543835713173525E-01 -6.0559763307171355E-01 -6.5814380876628242E-01 + -6.0402278789235986E-01 -4.5145930705498272E-01 -2.2511378102593912E-01 + 3.7557948476947663E-02 2.9227455796116503E-01 4.9532650102348935E-01 + 6.1118728587092808E-01 6.1900580150742635E-01 5.1675770029543067E-01 + 3.2217652119718621E-01 7.0117553674886271E-02 -1.9335288513401536E-01 + -4.1921451701103601E-01 -5.6465923196141210E-01 -6.0145712386019246E-01 + -5.2185399598700644E-01 -3.4070610576686855E-01 -9.3221247585798944E-02 + 1.7148048458172013E-01 3.9990484303484009E-01 5.4502583061522547E-01 + 5.7624401962831040E-01 4.8631189999027408E-01 2.9358165355537791E-01 + 3.8832900567357935E-02 -2.2292435074667452E-01 -4.3413545770850975E-01 + -5.4745308731373832E-01 -5.3672722722216248E-01 -4.0361883684890243E-01 + -1.7806319654782926E-01 8.7864577521188647E-02 3.3158976695257891E-01 + 4.9469258339303557E-01 5.3718272096468789E-01 4.4786356063708482E-01 + 2.4799176934417216E-01 -1.3059510798799445E-02 -2.6947170823919175E-01 + -4.5538443088652919E-01 -5.2201647285175112E-01 -4.5102671507321890E-01 + -2.6033932639578361E-01 -4.4114532873385605E-04 2.5836648896640430E-01 + 4.4473931580720272E-01 5.0616796206100068E-01 4.2439559944626898E-01 + 2.2170953033276938E-01 -4.4227248431745456E-02 -2.9613019502604054E-01 + -4.5935136145986971E-01 -4.8432341177297966E-01 -3.6238137651015806E-01 + -1.2972580698026817E-01 1.4237410197694000E-01 3.6883187308243021E-01 + 4.7733152436241744E-01 4.3198910391549661E-01 2.4620933753583060E-01 + -2.0117683209512155E-02 -2.7903782338906069E-01 -4.4324626009363988E-01 + -4.5587508359831880E-01 -3.1112259597832320E-01 -5.7983731363096612E-02 + 2.1521397107929421E-01 4.1104547746191422E-01 4.5790346347766969E-01 + 3.3707424866482627E-01 9.1480193181445763E-02 -1.8826459544601939E-01 + -3.9652882119873656E-01 -4.5263184461547007E-01 -3.3301525787118308E-01 + -8.2514691149552871E-02 2.0099586572562050E-01 4.0400775713615478E-01 + 4.4293915073743206E-01 2.9959531899627617E-01 3.1149786459391503E-02 + -2.5111178574530801E-01 -4.2714120500129782E-01 -4.1950489093419452E-01 + -2.2875620628122728E-01 6.3797778628355131E-02 3.2920971173382768E-01 + 4.4719387380368958E-01 3.6137212559029808E-01 1.0787530343314189E-01 + -1.9777184998997521E-01 -4.1197182666060805E-01 -4.3052188942256997E-01 + -2.4065274237038570E-01 6.8833460556109047E-02 3.4711722830990727E-01 + 4.5412682096457707E-01 3.3191194759691478E-01 3.7988975455667852E-02 + -2.7920510761322787E-01 -4.5387727475476841E-01 -3.8989569592239953E-01 + -1.1558611377078996E-01 2.2565186554154745E-01 4.4833431371677979E-01 + 4.2561441532845135E-01 1.6331167557712808E-01 -1.9664597702170217E-01 + -4.5054879033820716E-01 -4.4773616412885958E-01 -1.8171446387264895E-01 + 1.9820739786184463E-01 4.6783225106328585E-01 4.5972377014868093E-01 + 1.6897884960438897E-01 -2.3438102924057053E-01 -5.0162033024790631E-01 + -4.5803428638841370E-01 -1.1919735824271890E-01 3.0742144476557848E-01 + + + 6.6926426257038385E-01 6.6926426256517746E-01 6.6926426254935800E-01 + 6.6926426252275428E-01 6.6926426248517845E-01 6.6926426243642567E-01 + 6.6926426237629943E-01 6.6926426230459490E-01 6.6926426222110935E-01 + 6.6926426212562962E-01 6.6926426201794609E-01 6.6926426189784372E-01 + 6.6926426176510412E-01 6.6926426161950714E-01 6.6926426146082862E-01 + 6.6926426128883931E-01 6.6926426110331150E-01 6.6926426090401092E-01 + 6.6926426069070188E-01 6.6926426046314391E-01 6.6926426022109087E-01 + 6.6926425996429906E-01 6.6926425969251713E-01 6.6926425940549195E-01 + 6.6926425910296605E-01 6.6926425878467821E-01 6.6926425845036552E-01 + 6.6926425809975831E-01 6.6926425773258602E-01 6.6926425734857165E-01 + 6.6926425694743941E-01 6.6926425652890198E-01 6.6926425609267493E-01 + 6.6926425563846892E-01 6.6926425516598542E-01 6.6926425467492823E-01 + 6.6926425416499213E-01 6.6926425363587272E-01 6.6926425308725579E-01 + 6.6926425251882715E-01 6.6926425193026817E-01 6.6926425132125256E-01 + 6.6926425069145279E-01 6.6926425004053491E-01 6.6926424936816198E-01 + 6.6926424867399215E-01 6.6926424795767514E-01 6.6926424721886335E-01 + 6.6926424645719951E-01 6.6926424567232168E-01 6.6926424486386249E-01 + 6.6926424403145390E-01 6.6926424317471656E-01 6.6926424229327353E-01 + 6.6926424138673335E-01 6.6926424045470967E-01 6.6926423949680125E-01 + 6.6926423851260741E-01 6.6926423750172226E-01 6.6926423646373123E-01 + 6.6926423539821389E-01 6.6926423430475090E-01 6.6926423318290884E-01 + 6.6926423203225316E-01 6.6926423085234255E-01 6.6926422964272703E-01 + 6.6926422840295730E-01 6.6926422713257117E-01 6.6926422583110246E-01 + 6.6926422449808176E-01 6.6926422313303180E-01 6.6926422173546429E-01 + 6.6926422030489008E-01 6.6926421884081211E-01 6.6926421734272612E-01 + 6.6926421581012085E-01 6.6926421424247939E-01 6.6926421263927649E-01 + 6.6926421099998024E-01 6.6926420932405351E-01 6.6926420761095196E-01 + 6.6926420586011837E-01 6.6926420407099529E-01 6.6926420224301508E-01 + 6.6926420037560308E-01 6.6926419846817686E-01 6.6926419652014491E-01 + 6.6926419453090791E-01 6.6926419249986158E-01 6.6926419042639007E-01 + 6.6926418830987411E-01 6.6926418614968086E-01 6.6926418394517162E-01 + 6.6926418169570101E-01 6.6926417940061167E-01 6.6926417705923991E-01 + 6.6926417467091448E-01 6.6926417223494983E-01 6.6926416975065883E-01 + 6.6926416721733906E-01 6.6926416463428340E-01 6.6926416200077177E-01 + 6.6926415931607930E-01 6.6926415657946681E-01 6.6926415379018689E-01 + 6.6926415094748215E-01 6.6926414805059065E-01 6.6926414509873133E-01 + 6.6926414209111773E-01 6.6926413902695514E-01 6.6926413590543521E-01 + 6.6926413272574004E-01 6.6926412948704062E-01 6.6926412618849718E-01 + 6.6926412282926173E-01 6.6926411940847041E-01 6.6926411592525359E-01 + 6.6926411237872385E-01 6.6926410876798870E-01 6.6926410509213807E-01 + 6.6926410135025871E-01 6.6926409754141269E-01 6.6926409366466144E-01 + 6.6926408971905116E-01 6.6926408570361162E-01 6.6926408161736517E-01 + 6.6926407745931715E-01 6.6926407322846115E-01 6.6926406892378243E-01 + 6.6926406454424769E-01 6.6926406008881067E-01 6.6926405555641511E-01 + 6.6926405094598596E-01 6.6926404625644109E-01 6.6926404148667795E-01 + 6.6926403663558176E-01 6.6926403170202453E-01 6.6926402668486462E-01 + 6.6926402158294263E-01 6.6926401639508482E-01 6.6926401112010592E-01 + 6.6926400575680334E-01 6.6926400030395450E-01 6.6926399476032727E-01 + 6.6926398912467144E-01 6.6926398339572180E-01 6.6926397757219280E-01 + 6.6926397165279006E-01 6.6926396563619328E-01 6.6926395952107309E-01 + 6.6926395330607857E-01 6.6926394698984115E-01 6.6926394057097904E-01 + 6.6926393404809037E-01 6.6926392741975127E-01 6.6926392068452811E-01 + 6.6926391384096029E-01 6.6926390688757509E-01 6.6926389982287493E-01 + 6.6926389264535135E-01 6.6926388535346615E-01 6.6926387794567188E-01 + 6.6926387042039237E-01 6.6926386277603667E-01 6.6926385501099517E-01 + 6.6926384712362974E-01 6.6926383911229115E-01 6.6926383097530096E-01 + 6.6926382271096452E-01 6.6926381431756254E-01 6.6926380579335631E-01 + 6.6926379713658313E-01 6.6926378834545830E-01 6.6926377941817505E-01 + 6.6926377035290274E-01 6.6926376114778885E-01 6.6926375180095421E-01 + 6.6926374231049990E-01 6.6926373267450079E-01 6.6926372289100577E-01 + 6.6926371295804232E-01 6.6926370287360915E-01 6.6926369263568264E-01 + 6.6926368224221300E-01 6.6926367169112289E-01 6.6926366098030632E-01 + 6.6926365010764099E-01 6.6926363907096287E-01 6.6926362786809179E-01 + 6.6926361649681843E-01 6.6926360495490134E-01 6.6926359324007056E-01 + 6.6926358135003228E-01 6.6926356928245878E-01 6.6926355703499685E-01 + 6.6926354460526016E-01 6.6926353199083655E-01 6.6926351918927451E-01 + 6.6926350619810615E-01 6.6926349301481725E-01 6.6926347963687083E-01 + 6.6926346606169473E-01 6.6926345228668516E-01 6.6926343830920532E-01 + 6.6926342412658468E-01 6.6926340973612330E-01 6.6926339513507738E-01 + 6.6926338032067845E-01 6.6926336529011843E-01 6.6926335004055271E-01 + 6.6926333456910503E-01 6.6926331887286017E-01 6.6926330294886760E-01 + 6.6926328679413638E-01 6.6926327040564237E-01 6.6926325378032003E-01 + 6.6926323691506695E-01 6.6926321980673942E-01 6.6926320245215898E-01 + 6.6926318484810232E-01 6.6926316699130850E-01 6.6926314887847405E-01 + 6.6926313050625386E-01 6.6926311187126242E-01 6.6926309297006981E-01 + 6.6926307379920524E-01 6.6926305435515243E-01 6.6926303463435144E-01 + 6.6926301463319848E-01 6.6926299434804271E-01 6.6926297377519162E-01 + 6.6926295291089832E-01 6.6926293175137774E-01 6.6926291029279450E-01 + 6.6926288853126181E-01 6.6926286646284905E-01 6.6926284408357162E-01 + 6.6926282138939730E-01 6.6926279837624680E-01 6.6926277503998410E-01 + 6.6926275137642410E-01 6.6926272738132941E-01 6.6926270305040758E-01 + 6.6926267837931641E-01 6.6926265336365587E-01 6.6926262799897296E-01 + 6.6926260228075563E-01 6.6926257620444229E-01 6.6926254976540556E-01 + 6.6926252295896704E-01 6.6926249578038699E-01 6.6926246822486712E-01 + 6.6926244028755044E-01 6.6926241196351277E-01 6.6926238324778087E-01 + 6.6926235413530599E-01 6.6926232462098567E-01 6.6926229469965104E-01 + 6.6926226436606717E-01 6.6926223361493542E-01 6.6926220244089218E-01 + 6.6926217083850148E-01 6.6926213880226815E-01 6.6926210632662009E-01 + 6.6926207340592181E-01 6.6926204003446566E-01 6.6926200620647103E-01 + 6.6926197191608872E-01 6.6926193715739368E-01 6.6926190192438684E-01 + 6.6926186621099792E-01 6.6926183001108042E-01 6.6926179331840729E-01 + 6.6926175612667704E-01 6.6926171842951010E-01 6.6926168022044563E-01 + 6.6926164149294465E-01 6.6926160224038400E-01 6.6926156245606472E-01 + 6.6926152213319479E-01 6.6926148126490415E-01 6.6926143984423647E-01 + 6.6926139786414895E-01 6.6926135531751030E-01 6.6926131219710105E-01 + 6.6926126849561152E-01 6.6926122420564305E-01 6.6926117931970353E-01 + 6.6926113383020835E-01 6.6926108772947657E-01 6.6926104100973760E-01 + 6.6926099366311997E-01 6.6926094568165173E-01 6.6926089705726788E-01 + 6.6926084778180350E-01 6.6926079784698733E-01 6.6926074724444828E-01 + 6.6926069596571236E-01 6.6926064400219953E-01 6.6926059134522320E-01 + 6.6926053798598784E-01 6.6926048391559101E-01 6.6926042912502082E-01 + 6.6926037360515167E-01 6.6926031734674407E-01 6.6926026034044761E-01 + 6.6926020257679175E-01 6.6926014404619227E-01 6.6926008473894372E-01 + 6.6926002464522238E-01 6.6925996375508101E-01 6.6925990205845454E-01 + 6.6925983954514312E-01 6.6925977620483024E-01 6.6925971202706724E-01 + 6.6925964700127838E-01 6.6925958111675277E-01 6.6925951436265385E-01 + 6.6925944672800597E-01 6.6925937820169845E-01 6.6925930877248552E-01 + 6.6925923842897861E-01 6.6925916715965084E-01 6.6925909495283542E-01 + 6.6925902179671459E-01 6.6925894767933269E-01 6.6925887258857653E-01 + 6.6925879651219577E-01 6.6925871943777615E-01 6.6925864135275848E-01 + 6.6925856224442459E-01 6.6925848209990124E-01 6.6925840090615540E-01 + 6.6925831864999119E-01 6.6925823531805473E-01 6.6925815089682339E-01 + 6.6925806537260679E-01 6.6925797873155102E-01 6.6925789095962451E-01 + 6.6925780204262553E-01 6.6925771196617934E-01 6.6925762071573025E-01 + 6.6925752827654661E-01 6.6925743463370957E-01 6.6925733977212376E-01 + 6.6925724367650186E-01 6.6925714633136846E-01 6.6925704772106087E-01 + 6.6925694782971923E-01 6.6925684664129348E-01 6.6925674413952896E-01 + 6.6925664030797882E-01 6.6925653512998418E-01 6.6925642858868806E-01 + 6.6925632066702123E-01 6.6925621134770885E-01 6.6925610061326057E-01 + 6.6925598844597034E-01 6.6925587482791471E-01 6.6925575974094886E-01 + 6.6925564316670527E-01 6.6925552508658981E-01 6.6925540548178131E-01 + 6.6925528433322590E-01 6.6925516162162990E-01 6.6925503732747194E-01 + 6.6925491143098181E-01 6.6925478391215254E-01 6.6925465475072587E-01 + 6.6925452392619589E-01 6.6925439141780829E-01 6.6925425720454690E-01 + 6.6925412126514094E-01 6.6925398357805865E-01 6.6925384412150135E-01 + 6.6925370287340336E-01 6.6925355981142409E-01 6.6925341491295787E-01 + 6.6925326815511110E-01 6.6925311951471367E-01 6.6925296896830622E-01 + 6.6925281649214807E-01 6.6925266206220235E-01 6.6925250565413674E-01 + 6.6925234724332183E-01 6.6925218680482179E-01 6.6925202431339914E-01 + 6.6925185974350365E-01 6.6925169306927379E-01 6.6925152426452528E-01 + 6.6925135330275487E-01 6.6925118015713725E-01 6.6925100480051236E-01 + 6.6925082720538986E-01 6.6925064734394057E-01 6.6925046518799469E-01 + 6.6925028070903614E-01 6.6925009387819745E-01 6.6924990466625778E-01 + 6.6924971304363823E-01 6.6924951898039442E-01 6.6924932244621860E-01 + 6.6924912341043008E-01 6.6924892184196649E-01 6.6924871770939220E-01 + 6.6924851098087623E-01 6.6924830162420967E-01 6.6924808960677640E-01 + 6.6924787489556781E-01 6.6924765745716819E-01 6.6924743725775049E-01 + 6.6924721426307399E-01 6.6924698843848052E-01 6.6924675974887871E-01 + 6.6924652815876051E-01 6.6924629363217070E-01 6.6924605613271526E-01 + 6.6924581562355956E-01 6.6924557206741087E-01 6.6924532542652315E-01 + 6.6924507566268721E-01 6.6924482273722630E-01 6.6924456661098519E-01 + 6.6924430724433337E-01 6.6924404459715503E-01 6.6924377862883877E-01 + 6.6924350929827969E-01 6.6924323656386597E-01 6.6924296038347830E-01 + 6.6924268071448034E-01 6.6924239751371306E-01 6.6924211073749040E-01 + 6.6924182034158830E-01 6.6924152628124500E-01 6.6924122851114742E-01 + 6.6924092698542847E-01 6.6924062165765974E-01 6.6924031248084170E-01 + 6.6923999940740597E-01 6.6923968238919451E-01 6.6923936137746209E-01 + 6.6923903632286796E-01 6.6923870717546607E-01 6.6923837388470164E-01 + 6.6923803639939239E-01 6.6923769466774674E-01 6.6923734863731887E-01 + 6.6923699825503358E-01 6.6923664346716272E-01 6.6923628421932480E-01 + 6.6923592045646441E-01 6.6923555212285823E-01 6.6923517916210207E-01 + 6.6923480151709736E-01 6.6923441913005266E-01 6.6923403194246089E-01 + 6.6923363989511087E-01 6.6923324292805475E-01 6.6923284098062152E-01 + 6.6923243399139198E-01 6.6923202189819808E-01 6.6923160463811004E-01 + 6.6923118214743238E-01 6.6923075436168245E-01 6.6923032121559844E-01 + 6.6922988264311423E-01 6.6922943857735973E-01 6.6922898895064586E-01 + 6.6922853369445379E-01 6.6922807273942941E-01 6.6922760601536702E-01 + 6.6922713345120988E-01 6.6922665497503020E-01 6.6922617051401312E-01 + 6.6922567999446358E-01 6.6922518334178271E-01 6.6922468048045569E-01 + 6.6922417133405165E-01 6.6922365582520082E-01 6.6922313387558885E-01 + 6.6922260540594669E-01 6.6922207033603209E-01 6.6922152858462802E-01 + 6.6922098006951780E-01 6.6922042470749099E-01 6.6921986241430853E-01 + 6.6921929310470796E-01 6.6921871669238686E-01 6.6921813308998590E-01 + 6.6921754220907870E-01 6.6921694396016151E-01 6.6921633825263116E-01 + 6.6921572499478732E-01 6.6921510409379625E-01 6.6921447545570256E-01 + 6.6921383898540021E-01 6.6921319458661754E-01 6.6921254216191006E-01 + 6.6921188161264389E-01 6.6921121283898344E-01 6.6921053573986489E-01 + 6.6920985021299906E-01 6.6920915615484478E-01 6.6920845346059499E-01 + 6.6920774202416833E-01 6.6920702173818225E-01 6.6920629249394381E-01 + 6.6920555418144001E-01 6.6920480668930515E-01 6.6920404990482196E-01 + 6.6920328371389493E-01 6.6920250800103120E-01 6.6920172264933508E-01 + 6.6920092754047922E-01 6.6920012255469485E-01 6.6919930757075019E-01 + 6.6919848246593394E-01 6.6919764711604013E-01 6.6919680139533977E-01 + 6.6919594517657666E-01 6.6919507833093994E-01 6.6919420072804447E-01 + 6.6919331223591627E-01 6.6919241272096974E-01 6.6919150204799227E-01 + 6.6919058008011745E-01 6.6918964667881198E-01 6.6918870170385036E-01 + 6.6918774501329759E-01 6.6918677646348601E-01 6.6918579590899907E-01 + 6.6918480320263818E-01 6.6918379819541784E-01 6.6918278073653148E-01 + 6.6918175067332897E-01 6.6918070785130701E-01 6.6917965211406982E-01 + 6.6917858330331692E-01 6.6917750125881992E-01 6.6917640581839022E-01 + 6.6917529681786747E-01 6.6917417409108293E-01 6.6917303746984591E-01 + 6.6917188678391204E-01 6.6917072186096282E-01 6.6916954252657845E-01 + 6.6916834860420893E-01 6.6916713991515653E-01 6.6916591627853705E-01 + 6.6916467751126951E-01 6.6916342342803281E-01 6.6916215384125166E-01 + 6.6916086856106050E-01 6.6915956739528148E-01 6.6915825014938923E-01 + 6.6915691662649135E-01 6.6915556662729325E-01 6.6915419995006953E-01 + 6.6915281639063739E-01 6.6915141574232218E-01 6.6914999779593409E-01 + 6.6914856233972819E-01 6.6914710915938169E-01 6.6914563803795868E-01 + 6.6914414875587835E-01 6.6914264109087940E-01 6.6914111481800065E-01 + 6.6913956970952992E-01 6.6913800553498182E-01 6.6913642206106727E-01 + 6.6913481905164429E-01 6.6913319626770029E-01 6.6913155346730524E-01 + 6.6912989040558302E-01 6.6912820683467078E-01 6.6912650250368699E-01 + 6.6912477715869290E-01 6.6912303054265332E-01 6.6912126239539882E-01 + 6.6911947245359382E-01 6.6911766045068988E-01 6.6911582611689446E-01 + 6.6911396917912291E-01 6.6911208936096300E-01 6.6911018638263808E-01 + 6.6910825996095946E-01 6.6910630980928665E-01 6.6910433563748939E-01 + 6.6910233715189915E-01 6.6910031405527237E-01 6.6909826604673972E-01 + 6.6909619282176780E-01 6.6909409407211562E-01 6.6909196948578042E-01 + 6.6908981874696427E-01 6.6908764153601430E-01 6.6908543752938909E-01 + 6.6908320639960261E-01 6.6908094781518312E-01 6.6907866144061068E-01 + 6.6907634693628737E-01 6.6907400395847383E-01 6.6907163215924192E-01 + 6.6906923118642814E-01 6.6906680068357471E-01 6.6906434028988127E-01 + 6.6906184964015558E-01 6.6905932836475568E-01 6.6905677608953251E-01 + 6.6905419243578157E-01 6.6905157702018758E-01 6.6904892945476058E-01 + 6.6904624934678680E-01 6.6904353629876856E-01 6.6904078990836335E-01 + 6.6903800976833117E-01 6.6903519546647117E-01 6.6903234658555799E-01 + 6.6902946270328201E-01 6.6902654339219503E-01 6.6902358821964025E-01 + 6.6902059674768710E-01 6.6901756853307426E-01 6.6901450312713795E-01 + 6.6901140007574966E-01 6.6900825891925308E-01 6.6900507919238517E-01 + 6.6900186042422394E-01 6.6899860213810391E-01 6.6899530385155781E-01 + 6.6899196507623859E-01 6.6898858531785155E-01 6.6898516407608133E-01 + 6.6898170084451869E-01 6.6897819511058432E-01 6.6897464635545845E-01 + 6.6897105405399415E-01 6.6896741767465795E-01 6.6896373667943265E-01 + 6.6896001052375420E-01 6.6895623865641973E-01 6.6895242051951675E-01 + 6.6894855554833399E-01 6.6894464317128277E-01 6.6894068280981056E-01 + 6.6893667387831823E-01 6.6893261578407393E-01 6.6892850792712322E-01 + 6.6892434970020742E-01 6.6892014048866921E-01 6.6891587967036148E-01 + 6.6891156661556084E-01 6.6890720068687237E-01 6.6890278123913671E-01 + 6.6889830761933888E-01 6.6889377916649995E-01 6.6888919521160228E-01 + 6.6888455507746503E-01 6.6887985807866712E-01 6.6887510352143509E-01 + 6.6887029070354476E-01 6.6886541891421480E-01 6.6886048743400828E-01 + 6.6885549553472023E-01 6.6885044247928038E-01 6.6884532752163095E-01 + 6.6884014990663065E-01 6.6883490886994057E-01 6.6882960363790300E-01 + 6.6882423342744080E-01 6.6881879744593697E-01 6.6881329489111052E-01 + 6.6880772495091123E-01 6.6880208680339837E-01 6.6879637961661165E-01 + 6.6879060254845601E-01 6.6878475474657606E-01 6.6877883534823279E-01 + 6.6877284348017374E-01 6.6876677825850450E-01 6.6876063878856684E-01 + 6.6875442416479425E-01 6.6874813347058959E-01 6.6874176577818756E-01 + 6.6873532014851444E-01 6.6872879563105392E-01 6.6872219126371413E-01 + 6.6871550607266728E-01 6.6870873907222417E-01 6.6870188926468532E-01 + 6.6869495564019032E-01 6.6868793717656960E-01 6.6868083283920177E-01 + 6.6867364158084874E-01 6.6866636234151589E-01 6.6865899404828555E-01 + 6.6865153561516466E-01 6.6864398594292085E-01 6.6863634391892612E-01 + 6.6862860841699168E-01 6.6862077829719713E-01 6.6861285240572865E-01 + 6.6860482957471079E-01 6.6859670862202514E-01 6.6858848835114826E-01 + 6.6858016755096605E-01 6.6857174499560201E-01 6.6856321944423225E-01 + 6.6855458964090830E-01 6.6854585431436309E-01 6.6853701217783768E-01 + 6.6852806192887426E-01 6.6851900224914085E-01 6.6850983180422741E-01 + 6.6850054924345303E-01 6.6849115319966379E-01 6.6848164228903550E-01 + 6.6847201511086740E-01 6.6846227024737737E-01 6.6845240626349023E-01 + 6.6844242170662982E-01 6.6843231510649836E-01 6.6842208497487055E-01 + 6.6841172980536601E-01 6.6840124807322421E-01 6.6839063823509237E-01 + 6.6837989872878634E-01 6.6836902797306086E-01 6.6835802436738401E-01 + 6.6834688629169670E-01 6.6833561210616832E-01 6.6832420015096183E-01 + 6.6831264874599128E-01 6.6830095619066010E-01 6.6828912076362734E-01 + 6.6827714072254429E-01 6.6826501430378960E-01 6.6825273972222921E-01 + 6.6824031517093196E-01 6.6822773882091657E-01 6.6821500882087181E-01 + 6.6820212329688988E-01 6.6818908035218716E-01 6.6817587806682144E-01 + 6.6816251449741015E-01 6.6814898767684439E-01 6.6813529561399621E-01 + 6.6812143629342169E-01 6.6810740767506749E-01 6.6809320769396618E-01 + 6.6807883425992964E-01 6.6806428525724482E-01 6.6804955854435011E-01 + 6.6803465195353273E-01 6.6801956329059220E-01 6.6800429033452757E-01 + 6.6798883083720173E-01 6.6797318252300875E-01 6.6795734308853971E-01 + 6.6794131020223646E-01 6.6792508150405272E-01 6.6790865460509685E-01 + 6.6789202708728246E-01 6.6787519650295857E-01 6.6785816037457224E-01 + 6.6784091619427166E-01 6.6782346142354687E-01 6.6780579349285296E-01 + 6.6778790980122926E-01 6.6776980771591077E-01 6.6775148457193401E-01 + 6.6773293767174335E-01 6.6771416428479324E-01 6.6769516164714371E-01 + 6.6767592696103228E-01 6.6765645739447865E-01 6.6763675008085566E-01 + 6.6761680211845764E-01 6.6759661057007280E-01 6.6757617246254619E-01 + 6.6755548478633586E-01 6.6753454449506433E-01 6.6751334850506383E-01 + 6.6749189369491557E-01 6.6747017690499211E-01 6.6744819493697061E-01 + 6.6742594455336934E-01 6.6740342247706019E-01 6.6738062539078058E-01 + 6.6735754993663010E-01 6.6733419271557592E-01 6.6731055028695219E-01 + 6.6728661916793175E-01 6.6726239583300806E-01 6.6723787671347512E-01 + 6.6721305819688781E-01 6.6718793662652554E-01 6.6716250830083501E-01 + 6.6713676947289202E-01 6.6711071634982078E-01 6.6708434509224301E-01 + 6.6705765181369425E-01 6.6703063258003792E-01 6.6700328340888104E-01 + 6.6697560026897340E-01 6.6694757907960722E-01 6.6691921570999502E-01 + 6.6689050597865751E-01 6.6686144565279215E-01 6.6683203044763462E-01 + 6.6680225602581977E-01 6.6677211799672587E-01 6.6674161191581049E-01 + 6.6671073328394603E-01 6.6667947754674461E-01 6.6664784009385980E-01 + 6.6661581625830757E-01 6.6658340131575000E-01 6.6655059048378817E-01 + 6.6651737892123619E-01 6.6648376172739898E-01 6.6644973394132279E-01 + 6.6641529054104887E-01 6.6638042644285189E-01 6.6634513650047966E-01 + 6.6630941550435929E-01 6.6627325818082783E-01 6.6623665919131025E-01 + 6.6619961313153020E-01 6.6616211453068730E-01 6.6612415785061407E-01 + 6.6608573748494959E-01 6.6604684775828582E-01 6.6600748292529954E-01 + 6.6596763716988561E-01 6.6592730460426830E-01 6.6588647926810685E-01 + 6.6584515512759224E-01 6.6580332607452053E-01 6.6576098592536770E-01 + 6.6571812842035005E-01 6.6567474722245779E-01 6.6563083591650152E-01 + 6.6558638800812231E-01 6.6554139692280467E-01 6.6549585600487338E-01 + 6.6544975851646793E-01 6.6540309763651972E-01 6.6535586645970124E-01 + 6.6530805799537185E-01 6.6525966516650525E-01 6.6521068080860102E-01 + 6.6516109766859044E-01 6.6511090840371623E-01 6.6506010558040862E-01 + 6.6500868167313854E-01 6.6495662906326525E-01 6.6490394003785824E-01 + 6.6485060678850638E-01 6.6479662141012197E-01 6.6474197589971462E-01 + 6.6468666215516048E-01 6.6463067197394343E-01 6.6457399705189490E-01 + 6.6451662898190200E-01 6.6445855925261454E-01 6.6439977924711435E-01 + 6.6434028024159408E-01 6.6428005340398588E-01 6.6421908979260946E-01 + 6.6415738035476490E-01 6.6409491592534087E-01 6.6403168722537453E-01 + 6.6396768486061331E-01 6.6390289932004887E-01 6.6383732097443737E-01 + 6.6377094007479243E-01 6.6370374675085930E-01 6.6363573100957785E-01 + 6.6356688273351649E-01 6.6349719167928234E-01 6.6342664747592794E-01 + 6.6335523962330734E-01 6.6328295749044197E-01 6.6320979031384208E-01 + 6.6313572719581593E-01 6.6306075710275469E-01 6.6298486886339314E-01 + 6.6290805116704832E-01 6.6283029256183168E-01 6.6275158145284074E-01 + 6.6267190610033078E-01 6.6259125461784663E-01 6.6250961497034744E-01 + 6.6242697497229008E-01 6.6234332228570392E-01 6.6225864441822535E-01 + 6.6217292872110789E-01 6.6208616238721185E-01 6.6199833244896245E-01 + 6.6190942577627943E-01 6.6181942907448110E-01 6.6172832888215993E-01 + 6.6163611156902802E-01 6.6154276333372586E-01 6.6144827020161734E-01 + 6.6135261802254630E-01 6.6125579246855548E-01 6.6115777903158934E-01 + 6.6105856302114474E-01 6.6095812956191113E-01 6.6085646359136940E-01 + 6.6075354985735224E-01 6.6064937291557690E-01 6.6054391712714722E-01 + 6.6043716665600738E-01 6.6032910546638124E-01 6.6021971732015927E-01 + 6.6010898577425137E-01 6.5999689417791374E-01 6.5988342567003233E-01 + 6.5976856317635935E-01 6.5965228940672826E-01 6.5953458685221411E-01 + 6.5941543778227063E-01 6.5929482424181041E-01 6.5917272804825855E-01 + 6.5904913078855210E-01 6.5892401381611487E-01 6.5879735824776564E-01 + 6.5866914496060558E-01 6.5853935458885338E-01 6.5840796752063013E-01 + 6.5827496389470841E-01 6.5814032359720842E-01 6.5800402625824961E-01 + 6.5786605124856201E-01 6.5772637767603226E-01 6.5758498438222079E-01 + 6.5744184993881427E-01 6.5729695264403809E-01 6.5715027051901242E-01 + 6.5700178130405518E-01 6.5685146245493264E-01 6.5669929113905923E-01 + 6.5654524423165161E-01 6.5638929831179960E-01 6.5623142965851655E-01 + 6.5607161424670302E-01 6.5590982774307249E-01 6.5574604550200877E-01 + 6.5558024256136571E-01 6.5541239363820403E-01 6.5524247312447559E-01 + 6.5507045508263329E-01 6.5489631324118258E-01 6.5472002099017679E-01 + 6.5454155137662706E-01 6.5436087709986956E-01 6.5417797050684590E-01 + 6.5399280358732437E-01 6.5380534796905732E-01 6.5361557491284428E-01 + 6.5342345530755563E-01 6.5322895966506023E-01 6.5303205811508125E-01 + 6.5283272039999329E-01 6.5263091586951527E-01 6.5242661347535946E-01 + 6.5221978176576834E-01 6.5201038887999196E-01 6.5179840254268728E-01 + 6.5158379005820988E-01 6.5136651830485548E-01 6.5114655372898922E-01 + 6.5092386233909649E-01 6.5069840969976289E-01 6.5047016092552989E-01 + 6.5023908067469727E-01 6.5000513314300601E-01 6.4976828205724491E-01 + 6.4952849066875196E-01 6.4928572174682531E-01 6.4903993757203382E-01 + 6.4879109992942774E-01 6.4853917010165296E-01 6.4828410886196219E-01 + 6.4802587646711263E-01 6.4776443265017158E-01 6.4749973661321081E-01 + 6.4723174701988473E-01 6.4696042198791048E-01 6.4668571908142691E-01 + 6.4640759530324421E-01 6.4612600708697898E-01 6.4584091028906554E-01 + 6.4555226018066203E-01 6.4526001143942191E-01 6.4496411814115262E-01 + 6.4466453375134181E-01 6.4436121111657230E-01 6.4405410245579475E-01 + 6.4374315935147641E-01 6.4342833274062150E-01 6.4310957290565429E-01 + 6.4278682946517207E-01 6.4246005136455941E-01 6.4212918686645803E-01 + 6.4179418354110873E-01 6.4145498825653802E-01 6.4111154716860874E-01 + 6.4076380571092362E-01 6.4041170858458019E-01 6.4005519974776659E-01 + 6.3969422240522966E-01 6.3932871899755794E-01 6.3895863119033247E-01 + 6.3858389986311415E-01 6.3820446509826378E-01 6.3782026616960952E-01 + 6.3743124153095276E-01 6.3703732880439135E-01 6.3663846476850861E-01 + 6.3623458534635557E-01 6.3582562559328759E-01 6.3541151968462328E-01 + 6.3499220090312891E-01 6.3456760162631798E-01 6.3413765331358796E-01 + 6.3370228649316340E-01 6.3326143074887509E-01 6.3281501470673573E-01 + 6.3236296602134823E-01 6.3190521136212152E-01 6.3144167639929316E-01 + 6.3097228578978382E-01 6.3049696316283388E-01 6.3001563110547687E-01 + 6.2952821114779478E-01 6.2903462374800156E-01 6.2853478827732467E-01 + 6.2802862300468099E-01 6.2751604508117431E-01 6.2699697052439507E-01 + 6.2647131420249602E-01 6.2593898981811358E-01 6.2539990989205241E-01 + 6.2485398574680251E-01 6.2430112748983080E-01 6.2374124399669784E-01 + 6.2317424289397017E-01 6.2260003054192847E-01 6.2201851201709091E-01 + 6.2142959109453488E-01 6.2083317023002471E-01 6.2022915054195304E-01 + 6.1961743179308815E-01 6.1899791237213164E-01 6.1837048927508786E-01 + 6.1773505808646234E-01 6.1709151296025766E-01 6.1643974660081446E-01 + 6.1577965024345949E-01 6.1511111363499382E-01 6.1443402501401800E-01 + 6.1374827109108132E-01 6.1305373702869492E-01 6.1235030642117316E-01 + 6.1163786127434649E-01 6.1091628198513170E-01 6.1018544732096214E-01 + 6.0944523439911313E-01 6.0869551866589167E-01 6.0793617387572885E-01 + 6.0716707207018672E-01 6.0638808355685347E-01 6.0559907688817727E-01 + 6.0479991884023565E-01 6.0399047439144737E-01 6.0317060670124933E-01 + 6.0234017708873877E-01 6.0149904501130580E-01 6.0064706804328361E-01 + 5.9978410185460074E-01 5.9891000018948204E-01 5.9802461484520142E-01 + 5.9712779565091145E-01 5.9621939044657712E-01 5.9529924506201104E-01 + 5.9436720329606552E-01 5.9342310689598443E-01 5.9246679553694537E-01 + 5.9149810680182291E-01 5.9051687616119153E-01 5.8952293695361502E-01 + 5.8851612036623657E-01 5.8749625541570427E-01 5.8646316892948469E-01 + 5.8541668552757764E-01 5.8435662760468510E-01 5.8328281531286053E-01 + 5.8219506654470765E-01 5.8109319691712447E-01 5.7997701975570115E-01 + 5.7884634607976448E-01 5.7770098458813968E-01 5.7654074164570202E-01 + 5.7536542127072898E-01 5.7417482512316087E-01 5.7296875249377965E-01 + 5.7174700029441383E-01 5.7050936304920297E-01 5.6925563288698666E-01 + 5.6798559953493921E-01 5.6669905031344292E-01 5.6539577013235154E-01 + 5.6407554148867478E-01 5.6273814446579129E-01 5.6138335673426931E-01 + 5.6001095355437569E-01 5.5862070778039308E-01 5.5721238986679766E-01 + 5.5578576787645395E-01 5.5434060749087966E-01 5.5287667202271462E-01 + 5.5139372243051388E-01 5.4989151733594588E-01 5.4836981304356047E-01 + 5.4682836356321818E-01 5.4526692063531801E-01 5.4368523375897448E-01 + 5.4208305022324343E-01 5.4046011514158632E-01 5.3881617148967653E-01 + 5.3715096014673303E-01 5.3546421994050930E-01 5.3375568769612514E-01 + 5.3202509828888744E-01 5.3027218470127813E-01 5.2849667808429368E-01 + 5.2669830782330052E-01 5.2487680160860140E-01 5.2303188551091795E-01 + 5.2116328406194801E-01 5.1927072034025490E-01 5.1735391606262793E-01 + 5.1541259168119280E-01 5.1344646648643810E-01 5.1145525871641762E-01 + 5.0943868567231365E-01 5.0739646384063219E-01 5.0532830902224990E-01 + 5.0323393646855619E-01 5.0111306102491970E-01 4.9896539728176686E-01 + 4.9679065973348535E-01 4.9458856294543824E-01 4.9235882172934253E-01 + 4.9010115132727194E-01 4.8781526760456295E-01 4.8550088725188661E-01 + 4.8315772799677148E-01 4.8078550882483756E-01 4.7838395021103830E-01 + 4.7595277436117739E-01 4.7349170546398289E-01 4.7100046995403139E-01 + 4.6847879678578180E-01 4.6592641771902338E-01 4.6334306761598509E-01 + 4.6072848475042927E-01 4.5808241112894549E-01 4.5540459282476453E-01 + 4.5269478032433630E-01 4.4995272888691457E-01 4.4717819891744048E-01 + 4.4437095635294632E-01 4.4153077306269456E-01 4.3865742726234774E-01 + 4.3575070394230675E-01 4.3281039531046750E-01 4.2983630124958128E-01 + 4.2682822978938995E-01 4.2378599759367425E-01 4.2070943046239784E-01 + 4.1759836384902427E-01 4.1445264339313870E-01 4.1127212546842762E-01 + 4.0805667774607662E-01 4.0480617977359756E-01 4.0152052356910445E-01 + 3.9819961423096456E-01 3.9484337056277535E-01 3.9145172571354397E-01 + 3.8802462783295394E-01 3.8456204074146311E-01 3.8106394461507970E-01 + 3.7753033668449548E-01 3.7396123194822511E-01 3.7035666389944150E-01 + 3.6671668526599543E-01 3.6304136876318738E-01 3.5933080785870453E-01 + 3.5558511754911060E-01 3.5180443514721782E-01 3.4798892107957324E-01 + 3.4413875969323926E-01 3.4025416007095510E-01 3.3633535685371452E-01 + 3.3238261106965766E-01 3.2839621096815985E-01 3.2437647285785159E-01 + 3.2032374194723090E-01 3.1623839318643576E-01 3.1212083210866087E-01 + 3.0797149566953669E-01 3.0379085308277781E-01 2.9957940665020305E-01 + 2.9533769258418680E-01 2.9106628182045463E-01 2.8676578081900983E-01 + 2.8243683235088640E-01 2.7808011626827128E-01 2.7369635025544142E-01 + 2.6928629055779352E-01 2.6485073268617354E-01 2.6039051209351499E-01 + 2.5590650482072463E-01 2.5139962810858246E-01 2.4687084097230177E-01 + 2.4232114473527183E-01 2.3775158351835071E-01 2.3316324468097932E-01 + 2.2855725921022377E-01 2.2393480205372976E-01 2.1929709239248879E-01 + 2.1464539384913464E-01 2.0998101462741084E-01 2.0530530757833015E-01 + 2.0061967018842944E-01 1.9592554448544167E-01 1.9122441685658895E-01 + 1.8651781777464191E-01 1.8180732142680434E-01 1.7709454524142187E-01 + 1.7238114930743462E-01 1.6766883568153146E-01 1.6295934757782884E-01 + 1.5825446843499846E-01 1.5355602085568276E-01 1.4886586541315930E-01 + 1.4418589932017231E-01 1.3951805495499250E-01 1.3486429823982374E-01 + 1.3022662686681979E-01 1.2560706836711244E-01 1.2100767801843558E-01 + 1.1643053658716608E-01 1.1187774790081462E-01 1.0735143624734783E-01 + 1.0285374359797389E-01 9.8386826650507256E-02 9.3952853690720470E-02 + 8.9554001269692832E-02 8.5192450695594418E-02 8.0870384338979681E-02 + 7.6589981751298761E-02 7.2353415597022561E-02 6.8162847400593946E-02 + 6.4020423110230984E-02 5.9928268481560909E-02 5.5888484285054836E-02 + 5.1903141342340850E-02 4.7974275397656412E-02 4.4103881831978650E-02 + 4.0293910228742104E-02 3.6546258801567255E-02 3.2862768695993257E-02 + 2.9245218178914938E-02 2.5695316731277076E-02 2.2214699061498786E-02 + 1.8804919059191363E-02 1.5467443710941615E-02 1.2203647002244761E-02 + 9.0148038321701419E-03 5.9020839699245363E-03 2.8665460852153779E-03 + -9.0868112804505372E-05 -2.9693395902504341E-03 -5.7681775159882818E-03 + -8.4868245577758832E-03 -1.1124861899616045E-02 -1.3682013929457207E-02 + -1.6158152542883782E-02 -1.8553301004907773E-02 -2.0867637308400955E-02 + -2.3101496964180901E-02 -2.5255375154247462E-02 -2.7329928176286686E-02 + -2.9325974104297735E-02 -3.1244492587176726E-02 -3.3086623704342490E-02 + -3.4853665795096050E-02 -3.6547072176519632E-02 -3.8168446663352618E-02 + -3.9719537802653221E-02 -4.1202231736226613E-02 -4.2618543604977355E-02 + -4.3970607411669541E-02 -4.5260664262268845E-02 -4.6491048911259950E-02 + -4.7664174543399884E-02 -4.8782515733448377E-02 -4.9848589536860236E-02 + -5.0864934678498092E-02 -5.1834088823510920E-02 -5.2758563934924285E-02 + -5.3640819746659005E-02 -5.4483235409009567E-02 -5.5288079396582646E-02 + -5.6057477806724515E-02 -5.6793381220161039E-02 -5.7497530345416548E-02 + -5.8171420725185795E-02 -5.8816266846797582E-02 -5.9432966070884538E-02 + -6.0022062873042584E-02 -6.0583713983292528E-02 -6.1117655108337846E-02 + -6.1623170032644968E-02 -6.2099063017110954E-02 -6.2543635549269963E-02 + -6.2954668647599243E-02 -6.3329412085210049E-02 -6.3664582076207954E-02 + -6.3956369161958973E-02 -6.4200458245654651E-02 -6.4392062952746409E-02 + -6.4525976743243896E-02 -6.4596643470665668E-02 -6.4598250372668475E-02 + -6.4524846791634255E-02 -6.4370492260784021E-02 -6.4129437954464796E-02 + -6.3796345891501294E-02 -6.3366550699587729E-02 -6.2836369198385963E-02 + -6.2203463540936574E-02 -6.1467264168995124E-02 -6.0629459389554427E-02 + -5.9694558968556612E-02 -5.8670539764585174E-02 -5.7569582090456831E-02 + -5.6404654173184417E-02 -5.5175600197563304E-02 -5.3878878685991255E-02 + -5.2511432250550258E-02 -5.1070756049979613E-02 -4.9554943221384880E-02 + -4.7962709093645611E-02 -4.6293396728777705E-02 -4.4546966774867490E-02 + -4.2723974793948870E-02 -4.0825539183266951E-02 -3.8853302592806789E-02 + -3.6809389421139822E-02 -3.4696361581317739E-02 -3.2517174315263637E-02 + -3.0275133427915470E-02 -2.7973854937409021E-02 -2.5617227807258391E-02 + -2.3209380144329151E-02 -2.0754649018130088E-02 -1.8257553880518584E-02 + -1.5722773434219760E-02 -1.3155125706816227E-02 -1.0559551025314265E-02 + -7.9410975580031084E-03 -5.3049090786399010E-03 -2.6562146078387403E-03 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + -3.1966215757904190E-05 -1.6598666321861186E-04 -2.7617449496126605E-04 + -3.7252764711250192E-04 -4.6112791637931269E-04 -5.4414096004904962E-04 + -6.2374957913154897E-04 -7.0046487468680772E-04 -7.7476791538291475E-04 + -8.4731695159124545E-04 -9.1830850933522857E-04 -9.8793980869568677E-04 + -1.0564595454922768E-03 -1.1240071307940006E-03 -1.1907082251168698E-03 + -1.2566736578621632E-03 -1.3219934360133257E-03 -1.3867453038576994E-03 + -1.4509967106610456E-03 -1.5148064326149123E-03 -1.5782262308019521E-03 + -1.6413020233917816E-03 -1.7040748133721616E-03 -1.7665814441949848E-03 + -1.8288552093069831E-03 -1.8909263497254700E-03 -1.9528224644173508E-03 + -2.0145688511303151E-03 -2.0761887915573905E-03 -2.1377037916354771E-03 + -2.1991337853765891E-03 -2.2604973088540493E-03 -2.3218116496010847E-03 + -2.3830929756210803E-03 -2.4443564473867322E-03 -2.5056163155609346E-03 + -2.5668860066641363E-03 -2.6281781985099885E-03 -2.6895048869094661E-03 + -2.7508774448857221E-03 -2.8123066754338318E-03 -2.8738028586910162E-03 + -2.9353757942453540E-03 -2.9970348391984876E-03 -3.0587889425052104E-03 + -3.1206466760360513E-03 -3.1826162627453789E-03 -3.2447056022743438E-03 + -3.3069222942733721E-03 -3.3692736596912464E-03 -3.4317667602460893E-03 + -3.4944084162664571E-03 -3.5572052230676589E-03 -3.6201635660086345E-03 + -3.6832896343577080E-03 -3.7465894340807911E-03 -3.8100687996529305E-03 + -3.8737334049829268E-03 -3.9375887735311563E-03 -4.0016402876922371E-03 + -4.0658931975067272E-03 -4.1303526287595534E-03 -4.1950235905170528E-03 + -4.2599109821494265E-03 -4.3250195998808848E-03 -4.3903541429057124E-03 + -4.4559192191048931E-03 -4.5217193503947622E-03 -4.5877589777362582E-03 + -4.6540424658308172E-03 -4.7205741075266126E-03 -4.7873581279567375E-03 + -4.8543986884291420E-03 -4.9216998900864766E-03 -4.9892657773523063E-03 + -5.0571003411789186E-03 -5.1252075221107415E-03 -5.1935912131760896E-03 + -5.2622552626190779E-03 -5.3312034764826256E-03 -5.4004396210523779E-03 + -5.4699674251709445E-03 -5.5397905824309500E-03 -5.6099127532546599E-03 + -5.6803375668676099E-03 -5.7510686231729245E-03 -5.8221094945325640E-03 + -5.8934637274613245E-03 -5.9651348442389300E-03 -6.0371263444452860E-03 + -6.1094417064235197E-03 -6.1820843886750444E-03 -6.2550578311907521E-03 + -6.3283654567221209E-03 -6.4020106719956359E-03 -6.4759968688738352E-03 + -6.5503274254660269E-03 -6.6250057071914840E-03 -6.7000350677978533E-03 + -6.7754188503372087E-03 -6.8511603881020065E-03 -6.9272630055232645E-03 + -7.0037300190330049E-03 -7.0805647378927071E-03 -7.1577704649897038E-03 + -7.2353504976032492E-03 -7.3133081281416823E-03 -7.3916466448523807E-03 + -7.4703693325057306E-03 -7.5494794730544650E-03 -7.6289803462697911E-03 + -7.7088752303551850E-03 -7.7891674025391865E-03 -7.8698601396481743E-03 + -7.9509567186599843E-03 -8.0324604172395224E-03 -8.1143745142570802E-03 + -8.1967022902900959E-03 -8.2794470281094962E-03 -8.3626120131509944E-03 + -8.4462005339721521E-03 -8.5302158826959656E-03 -8.6146613554415174E-03 + -8.6995402527422789E-03 -8.7848558799527177E-03 -8.8706115476435542E-03 + -8.9568105719863862E-03 -9.0434562751281426E-03 -9.1305519855555545E-03 + -9.2181010384504644E-03 -9.3061067760360980E-03 -9.3945725479148388E-03 + -9.4835017113978001E-03 -9.5728976318265342E-03 -9.6627636828874423E-03 + -9.7531032469188039E-03 -9.8439197152109924E-03 -9.9352164883003431E-03 + -1.0026996976256449E-02 -1.0119264598963579E-02 -1.0212022786396364E-02 + -1.0305274978889865E-02 -1.0399024627404415E-02 -1.0493275193785314E-02 + -1.0588030151017726E-02 -1.0683292983476906E-02 -1.0779067187173908E-02 + -1.0875356269997008E-02 -1.0972163751949026E-02 -1.1069493165380730E-02 + -1.1167348055220436E-02 -1.1265731979199866E-02 -1.1364648508076667E-02 + -1.1464101225853547E-02 -1.1564093729994106E-02 -1.1664629631635693E-02 + -1.1765712555799238E-02 -1.1867346141596232E-02 -1.1969534042433042E-02 + -1.2072279926212574E-02 -1.2175587475533354E-02 -1.2279460387886307E-02 + -1.2383902375849142E-02 -1.2488917167278527E-02 -1.2594508505500123E-02 + -1.2700680149496581E-02 -1.2807435874093564E-02 -1.2914779470143835E-02 + -1.3022714744709597E-02 -1.3131245521243036E-02 -1.3240375639765210E-02 + -1.3350108957043340E-02 -1.3460449346766552E-02 -1.3571400699720078E-02 + -1.3682966923958166E-02 -1.3795151944975523E-02 -1.3907959705877474E-02 + -1.4021394167548872E-02 -1.4135459308821848E-02 -1.4250159126642320E-02 + -1.4365497636235439E-02 -1.4481478871270055E-02 -1.4598106884022036E-02 + -1.4715385745536611E-02 -1.4833319545789979E-02 -1.4951912393849822E-02 + -1.5071168418034984E-02 -1.5191091766074458E-02 -1.5311686605265518E-02 + -1.5432957122631003E-02 -1.5554907525076045E-02 -1.5677542039544082E-02 + -1.5800864913172164E-02 -1.5924880413445634E-02 -1.6049592828352287E-02 + -1.6175006466535843E-02 -1.6301125657449077E-02 -1.6427954751506227E-02 + -1.6555498120234952E-02 -1.6683760156427994E-02 -1.6812745274294199E-02 + -1.6942457909609191E-02 -1.7072902519865669E-02 -1.7204083584423258E-02 + -1.7336005604658124E-02 -1.7468673104112094E-02 -1.7602090628641546E-02 + -1.7736262746566017E-02 -1.7871194048816489E-02 -1.8006889149083292E-02 + -1.8143352683964005E-02 -1.8280589313110933E-02 -1.8418603719378344E-02 + -1.8557400608969619E-02 -1.8696984711584104E-02 -1.8837360780563851E-02 + -1.8978533593040137E-02 -1.9120507950079819E-02 -1.9263288676831598E-02 + -1.9406880622672089E-02 -1.9551288661351824E-02 -1.9696517691141075E-02 + -1.9842572634975585E-02 -1.9989458440602299E-02 -2.0137180080724893E-02 + -2.0285742553149234E-02 -2.0435150880928826E-02 -2.0585410112510236E-02 + -2.0736525321878321E-02 -2.0888501608701537E-02 -2.1041344098477140E-02 + -2.1195057942676395E-02 -2.1349648318889743E-02 -2.1505120430971969E-02 + -2.1661479509187273E-02 -2.1818730810354469E-02 -2.1976879617992068E-02 + -2.2135931242463349E-02 -2.2295891021121585E-02 -2.2456764318455138E-02 + -2.2618556526232531E-02 -2.2781273063647738E-02 -2.2944919377465268E-02 + -2.3109500942165403E-02 -2.3275023260089459E-02 -2.3441491861585034E-02 + -2.3608912305151223E-02 -2.3777290177584069E-02 -2.3946631094121845E-02 + -2.4116940698590439E-02 -2.4288224663548821E-02 -2.4460488690434531E-02 + -2.4633738509709131E-02 -2.4807979881003778E-02 -2.4983218593264859E-02 + -2.5159460464899547E-02 -2.5336711343921525E-02 -2.5514977108096713E-02 + -2.5694263665088979E-02 -2.5874576952605931E-02 -2.6055922938544814E-02 + -2.6238307621138303E-02 -2.6421737029100438E-02 -2.6606217221772577E-02 + -2.6791754289269363E-02 -2.6978354352624734E-02 -2.7166023563937939E-02 + -2.7354768106519638E-02 -2.7544594195037936E-02 -2.7735508075664550E-02 + -2.7927516026220889E-02 -2.8120624356324234E-02 -2.8314839407533873E-02 + -2.8510167553497296E-02 -2.8706615200096323E-02 -2.8904188785593303E-02 + -2.9102894780777318E-02 -2.9302739689110319E-02 -2.9503730046873233E-02 + -2.9705872423312189E-02 -2.9909173420784602E-02 -3.0113639674905279E-02 + -3.0319277854692454E-02 -3.0526094662713860E-02 -3.0734096835232684E-02 + -3.0943291142353523E-02 -3.1153684388168287E-02 -3.1365283410902015E-02 + -3.1578095083058630E-02 -3.1792126311566631E-02 -3.2007384037924788E-02 + -3.2223875238347570E-02 -3.2441606923910606E-02 -3.2660586140696050E-02 + -3.2880819969937816E-02 -3.3102315528166691E-02 -3.3325079967355287E-02 + -3.3549120475062963E-02 -3.3774444274580512E-02 -3.4001058625074770E-02 + -3.4228970821733012E-02 -3.4458188195907201E-02 -3.4688718115258060E-02 + -3.4920567983899045E-02 -3.5153745242539981E-02 -3.5388257368630563E-02 + -3.5624111876503696E-02 -3.5861316317518516E-02 -3.6099878280203231E-02 + -3.6339805390397745E-02 -3.6581105311395967E-02 -3.6823785744087879E-02 + -3.7067854427101352E-02 -3.7313319136943641E-02 -3.7560187688142607E-02 + -3.7808467933387574E-02 -3.8058167763669964E-02 -3.8309295108423486E-02 + -3.8561857935664030E-02 -3.8815864252129212E-02 -3.9071322103417537E-02 + -3.9328239574127170E-02 -3.9586624787994212E-02 -3.9846485908030811E-02 + -4.0107831136662532E-02 -4.0370668715865546E-02 -4.0635006927303229E-02 + -4.0900854092462247E-02 -4.1168218572788316E-02 -4.1437108769821339E-02 + -4.1707533125330001E-02 -4.1979500121445960E-02 -4.2253018280797403E-02 + -4.2528096166641979E-02 -4.2804742382999271E-02 -4.3082965574782660E-02 + -4.3362774427930455E-02 -4.3644177669536544E-02 -4.3927184067980254E-02 + -4.4211802433055634E-02 -4.4498041616100034E-02 -4.4785910510122005E-02 + -4.5075418049928449E-02 -4.5366573212250925E-02 -4.5659385015871440E-02 + -4.5953862521747206E-02 -4.6250014833134755E-02 -4.6547851095713216E-02 + -4.6847380497706710E-02 -4.7148612270005844E-02 -4.7451555686288463E-02 + -4.7756220063139343E-02 -4.8062614760169098E-02 -4.8370749180132025E-02 + -4.8680632769043088E-02 -4.8992275016293774E-02 -4.9305685454767115E-02 + -4.9620873660951498E-02 -4.9937849255053575E-02 -5.0256621901109903E-02 + -5.0577201307097697E-02 -5.0899597225044294E-02 -5.1223819451135376E-02 + -5.1549877825822397E-02 -5.1877782233928360E-02 -5.2207542604752577E-02 + -5.2539168912174174E-02 -5.2872671174754242E-02 -5.3208059455836745E-02 + -5.3545343863648044E-02 -5.3884534551394983E-02 -5.4225641717361849E-02 + -5.4568675605005494E-02 -5.4913646503049397E-02 -5.5260564745576071E-02 + -5.5609440712117840E-02 -5.5960284827746364E-02 -5.6313107563160290E-02 + -5.6667919434771549E-02 -5.7024731004789934E-02 -5.7383552881305956E-02 + -5.7744395718371984E-02 -5.8107270216081877E-02 -5.8472187120648604E-02 + -5.8839157224480153E-02 -5.9208191366253708E-02 -5.9579300430987872E-02 + -5.9952495350112961E-02 -6.0327787101539493E-02 -6.0705186709724628E-02 + -6.1084705245736580E-02 -6.1466353827317147E-02 -6.1850143618941970E-02 + -6.2236085831878826E-02 -6.2624191724243661E-02 -6.3014472601054555E-02 + -6.3406939814283469E-02 -6.3801604762905612E-02 -6.4198478892946567E-02 + -6.4597573697527180E-02 -6.4998900716905908E-02 -6.5402471538518733E-02 + -6.5808297797016926E-02 -6.6216391174301878E-02 -6.6626763399557698E-02 + -6.7039426249281150E-02 -6.7454391547308784E-02 -6.7871671164841774E-02 + -6.8291277020467570E-02 -6.8713221080179160E-02 -6.9137515357391433E-02 + -6.9564171912954484E-02 -6.9993202855164416E-02 -7.0424620339770774E-02 + -7.0858436569981295E-02 -7.1294663796463459E-02 -7.1733314317343019E-02 + -7.2174400478199396E-02 -7.2617934672057835E-02 -7.3063929339378414E-02 + -7.3512396968041654E-02 -7.3963350093330896E-02 -7.4416801297911284E-02 + -7.4872763211805166E-02 -7.5331248512364196E-02 -7.5792269924237904E-02 + -7.6255840219338247E-02 -7.6721972216801146E-02 -7.7190678782943931E-02 + -7.7661972831218951E-02 -7.8135867322163599E-02 -7.8612375263346371E-02 + -7.9091509709308921E-02 -7.9573283761504257E-02 -8.0057710568230731E-02 + -8.0544803324561931E-02 -8.1034575272272771E-02 -8.1527039699760634E-02 + -8.2022209941963006E-02 -8.2520099380270134E-02 -8.3020721442433609E-02 + -8.3524089602470347E-02 -8.4030217380562142E-02 -8.4539118342950442E-02 + -8.5050806101826595E-02 -8.5565294315217241E-02 -8.6082596686865048E-02 + -8.6602726966104354E-02 -8.7125698947732130E-02 -8.7651526471873770E-02 + -8.8180223423843782E-02 -8.8711803734001435E-02 -8.9246281377601169E-02 + -8.9783670374637678E-02 -9.0323984789685577E-02 -9.0867238731733843E-02 + -9.1413446354014466E-02 -9.1962621853825782E-02 -9.2514779472349845E-02 + -9.3069933494464546E-02 -9.3628098248549452E-02 -9.4189288106285837E-02 + -9.4753517482451199E-02 -9.5320800834707023E-02 -9.5891152663381038E-02 + -9.6464587511242941E-02 -9.7041119963273900E-02 -9.7620764646429867E-02 + -9.8203536229398175E-02 -9.8789449422347825E-02 -9.9378518976673033E-02 + -9.9970759684730098E-02 -1.0056618637956767E-01 -1.0116481393464979E-01 + -1.0176665726357235E-01 -1.0237173131977235E-01 -1.0298005109622999E-01 + -1.0359163162516345E-01 -1.0420648797771682E-01 -1.0482463526363998E-01 + -1.0544608863096146E-01 -1.0607086326565358E-01 -1.0669897439128993E-01 + -1.0733043726869490E-01 -1.0796526719558570E-01 -1.0860347950620615E-01 + -1.0924508957095234E-01 -1.0989011279599051E-01 -1.1053856462286632E-01 + -1.1119046052810599E-01 -1.1184581602280858E-01 -1.1250464665223052E-01 + -1.1316696799536059E-01 -1.1383279566448685E-01 -1.1450214530475414E-01 + -1.1517503259371316E-01 -1.1585147324085991E-01 -1.1653148298716656E-01 + -1.1721507760460269E-01 -1.1790227289564693E-01 -1.1859308469278973E-01 + -1.1928752885802597E-01 -1.1998562128233796E-01 -1.2068737788516912E-01 + -1.2139281461388685E-01 -1.2210194744323595E-01 -1.2281479237478198E-01 + -1.2353136543634381E-01 -1.2425168268141634E-01 -1.2497576018858221E-01 + -1.2570361406091340E-01 -1.2643526042536152E-01 -1.2717071543213782E-01 + -1.2790999525408175E-01 -1.2865311608601884E-01 -1.2940009414410694E-01 + -1.3015094566517135E-01 -1.3090568690602863E-01 -1.3166433414279846E-01 + -1.3242690367020415E-01 -1.3319341180086108E-01 -1.3396387486455333E-01 + -1.3473830920749777E-01 -1.3551673119159693E-01 -1.3629915719367852E-01 + -1.3708560360472299E-01 -1.3787608682907820E-01 -1.3867062328366175E-01 + -1.3946922939715015E-01 -1.4027192160915494E-01 -1.4107871636938593E-01 + -1.4188963013680109E-01 -1.4270467937874293E-01 -1.4352388057006124E-01 + -1.4434725019222280E-01 -1.4517480473240627E-01 -1.4600656068258425E-01 + -1.4684253453859003E-01 -1.4768274279917135E-01 -1.4852720196502894E-01 + -1.4937592853784107E-01 -1.5022893901927278E-01 -1.5108624990997122E-01 + -1.5194787770854531E-01 -1.5281383891053080E-01 -1.5368415000733981E-01 + -1.5455882748519512E-01 -1.5543788782404885E-01 -1.5632134749648605E-01 + -1.5720922296661127E-01 -1.5810153068892052E-01 -1.5899828710715611E-01 + -1.5989950865314609E-01 -1.6080521174562643E-01 -1.6171541278904722E-01 + -1.6263012817236214E-01 -1.6354937426780078E-01 -1.6447316742962417E-01 + -1.6540152399286329E-01 -1.6633446027203966E-01 -1.6727199255986924E-01 + -1.6821413712594827E-01 -1.6916091021542137E-01 -1.7011232804763168E-01 + -1.7106840681475305E-01 -1.7202916268040397E-01 -1.7299461177824307E-01 + -1.7396477021054582E-01 -1.7493965404676298E-01 -1.7591927932205959E-01 + -1.7690366203583574E-01 -1.7789281815022717E-01 -1.7888676358858746E-01 + -1.7988551423394980E-01 -1.8088908592746991E-01 -1.8189749446684864E-01 + -1.8291075560473474E-01 -1.8392888504710728E-01 -1.8495189845163826E-01 + -1.8597981142603395E-01 -1.8701263952635658E-01 -1.8805039825532424E-01 + -1.8909310306059043E-01 -1.9014076933300247E-01 -1.9119341240483839E-01 + -1.9225104754802258E-01 -1.9331368997231960E-01 -1.9438135482350630E-01 + -1.9545405718152262E-01 -1.9653181205859890E-01 -1.9761463439736260E-01 + -1.9870253906892135E-01 -1.9979554087092394E-01 -2.0089365452559863E-01 + -2.0199689467776832E-01 -2.0310527589284300E-01 -2.0421881265478847E-01 + -2.0533751936407221E-01 -2.0646141033558568E-01 -2.0759049979654196E-01 + -2.0872480188435144E-01 -2.0986433064447130E-01 -2.1100910002823264E-01 + -2.1215912389064220E-01 -2.1331441598816012E-01 -2.1447498997645242E-01 + -2.1564085940811972E-01 -2.1681203773040009E-01 -2.1798853828284723E-01 + -2.1917037429498321E-01 -2.2035755888392586E-01 -2.2155010505199083E-01 + -2.2274802568426746E-01 -2.2395133354616920E-01 -2.2516004128095782E-01 + -2.2637416140724168E-01 -2.2759370631644729E-01 -2.2881868827026475E-01 + -2.3004911939806638E-01 -2.3128501169429921E-01 -2.3252637701584963E-01 + -2.3377322707938170E-01 -2.3502557345864816E-01 -2.3628342758177390E-01 + -2.3754680072851245E-01 -2.3881570402747462E-01 -2.4009014845332921E-01 + -2.4137014482397673E-01 -2.4265570379769386E-01 -2.4394683587025115E-01 + -2.4524355137200160E-01 -2.4654586046494148E-01 -2.4785377313974230E-01 + -2.4916729921275413E-01 -2.5048644832298078E-01 -2.5181122992902605E-01 + -2.5314165330600996E-01 -2.5447772754245795E-01 -2.5581946153715907E-01 + -2.5716686399599575E-01 -2.5851994342874451E-01 -2.5987870814584668E-01 + -2.6124316625514971E-01 -2.6261332565861889E-01 -2.6398919404901960E-01 + -2.6537077890656907E-01 -2.6675808749555890E-01 -2.6815112686094728E-01 + -2.6954990382492106E-01 -2.7095442498342825E-01 -2.7236469670267888E-01 + -2.7378072511561757E-01 -2.7520251611836405E-01 -2.7663007536662415E-01 + -2.7806340827207005E-01 -2.7950251999868964E-01 -2.8094741545910623E-01 + -2.8239809931086635E-01 -2.8385457595269808E-01 -2.8531684952073794E-01 + -2.8678492388472698E-01 -2.8825880264417658E-01 -2.8973848912450295E-01 + -2.9122398637313096E-01 -2.9271529715556721E-01 -2.9421242395144170E-01 + -2.9571536895052025E-01 -2.9722413404868275E-01 -2.9873872084387493E-01 + -3.0025913063202470E-01 -3.0178536440293163E-01 -3.0331742283612217E-01 + -3.0485530629667723E-01 -3.0639901483102561E-01 -3.0794854816270945E-01 + -3.0950390568811809E-01 -3.1106508647218961E-01 -3.1263208924408487E-01 + -3.1420491239282722E-01 -3.1578355396291613E-01 -3.1736801164990508E-01 + -3.1895828279595423E-01 -3.2055436438534851E-01 -3.2215625303998924E-01 + -3.2376394501485145E-01 -3.2537743619341630E-01 -3.2699672208306790E-01 + -3.2862179781046569E-01 -3.3025265811688265E-01 -3.3188929735351680E-01 + -3.3353170947677296E-01 -3.3517988804351334E-01 -3.3683382620628194E-01 + -3.3849351670849676E-01 -3.4015895187961659E-01 -3.4183012363027554E-01 + -3.4350702344739292E-01 -3.4518964238925132E-01 -3.4687797108055013E-01 + -3.4857199970742753E-01 -3.5027171801245838E-01 -3.5197711528962156E-01 + -3.5368818037924360E-01 -3.5540490166291150E-01 -3.5712726705836245E-01 + -3.5885526401434448E-01 -3.6058887950545254E-01 -3.6232810002693921E-01 + -3.6407291158949695E-01 -3.6582329971401961E-01 -3.6757924942633396E-01 + -3.6934074525191191E-01 -3.7110777121055311E-01 -3.7288031081104839E-01 + -3.7465834704581596E-01 -3.7644186238551747E-01 -3.7823083877364794E-01 + -3.8002525762110662E-01 -3.8182509980074353E-01 -3.8363034564188525E-01 + -3.8544097492483864E-01 -3.8725696687537603E-01 -3.8907830015919659E-01 + -3.9090495287637134E-01 -3.9273690255576693E-01 -3.9457412614944953E-01 + -3.9641660002707413E-01 -3.9826429997025009E-01 -4.0011720116689548E-01 + -4.0197527820556972E-01 -4.0383850506979380E-01 -4.0570685513235000E-01 + -4.0758030114957289E-01 -4.0945881525561861E-01 -4.1134236895672666E-01 + -4.1323093312546316E-01 -4.1512447799495567E-01 -4.1702297315311176E-01 + -4.1892638753682970E-01 -4.2083468942619767E-01 -4.2274784643867946E-01 + -4.2466582552329724E-01 -4.2658859295479901E-01 -4.2851611432782349E-01 + -4.3044835455105385E-01 -4.3238527784136860E-01 -4.3432684771798291E-01 + -4.3627302699659015E-01 -4.3822377778349408E-01 -4.4017906146974251E-01 + -4.4213883872525461E-01 -4.4410306949295197E-01 -4.4607171298288206E-01 + -4.4804472766634851E-01 -4.5002207127004085E-01 -4.5200370077016311E-01 + -4.5398957238657056E-01 -4.5597964157690646E-01 -4.5797386303074794E-01 + -4.5997219066375317E-01 -4.6197457761182115E-01 -4.6398097622525342E-01 + -4.6599133806293247E-01 -4.6800561388650264E-01 -4.7002375365456961E-01 + -4.7204570651690619E-01 -4.7407142080867809E-01 -4.7610084404467712E-01 + -4.7813392291357926E-01 -4.8017060327221101E-01 -4.8221083013984034E-01 + -4.8425454769248655E-01 -4.8630169925724698E-01 -4.8835222730665234E-01 + -4.9040607345303866E-01 -4.9246317844295084E-01 -4.9452348215156627E-01 + -4.9658692357715156E-01 -4.9865344083554231E-01 -5.0072297115466025E-01 + -5.0279545086905386E-01 -5.0487081541448142E-01 -5.0694899932251936E-01 + -5.0902993621521564E-01 -5.1111355879977194E-01 -5.1319979886327527E-01 + -5.1528858726745941E-01 -5.1737985394351693E-01 -5.1947352788695345E-01 + -5.2156953715248278E-01 -5.2366780884897746E-01 -5.2576826913445884E-01 + -5.2787084321114741E-01 -5.2997545532055657E-01 -5.3208202873864852E-01 + -5.3419048577103756E-01 -5.3630074774826042E-01 -5.3841273502109699E-01 + -5.4052636695595968E-01 -5.4264156193033963E-01 -5.4475823732832496E-01 + -5.4687630953617772E-01 -5.4899569393798608E-01 -5.5111630491138752E-01 + -5.5323805582335739E-01 -5.5536085902608212E-01 -5.5748462585290093E-01 + -5.5960926661433352E-01 -5.6173469059418146E-01 -5.6386080604571986E-01 + -5.6598752018796661E-01 -5.6811473920204747E-01 -5.7024236822764185E-01 + -5.7237031135952798E-01 -5.7449847164421486E-01 -5.7662675107667816E-01 + -5.7875505059718535E-01 -5.8088327008822971E-01 -5.8301130837156323E-01 + -5.8513906320533404E-01 -5.8726643128133527E-01 -5.8939330822235825E-01 + -5.9151958857966458E-01 -5.9364516583056715E-01 -5.9576993237613374E-01 + -5.9789377953900358E-01 -6.0001659756133530E-01 -6.0213827560286926E-01 + -6.0425870173912710E-01 -6.0637776295973134E-01 -6.0849534516686743E-01 + -6.1061133317386984E-01 -6.1272561070395726E-01 -6.1483806038909661E-01 + -6.1694856376901785E-01 -6.1905700129037300E-01 -6.2116325230603808E-01 + -6.2326719507457329E-01 -6.2536870675982970E-01 -6.2746766343071969E-01 + -6.2956394006113681E-01 -6.3165741053004887E-01 -6.3374794762174314E-01 + -6.3583542302625107E-01 -6.3791970733993131E-01 -6.4000067006623695E-01 + -6.4207817961664782E-01 -6.4415210331179085E-01 -6.4622230738273256E-01 + -6.4828865697246585E-01 -6.5035101613757329E-01 -6.5240924785008791E-01 + -6.5446321399954521E-01 -6.5651277539522646E-01 -6.5855779176860807E-01 + -6.6059812177600397E-01 -6.6263362300141970E-01 -6.6466415195960660E-01 + -6.6668956409933400E-01 -6.6870971380686495E-01 -6.7072445440965733E-01 + -6.7273363818027299E-01 -6.7473711634052069E-01 -6.7673473906581005E-01 + -6.7872635548974458E-01 -6.8071181370893497E-01 -6.8269096078805058E-01 + -6.8466364276510783E-01 -6.8662970465698991E-01 -6.8858899046521627E-01 + -6.9054134318194715E-01 -6.9248660479624435E-01 -6.9442461630057128E-01 + -6.9635521769755426E-01 -6.9827824800699034E-01 -7.0019354527312050E-01 + -7.0210094657215349E-01 -7.0400028802006431E-01 -7.0589140478064372E-01 + -7.0777413107382836E-01 -7.0964830018429159E-01 -7.1151374447031257E-01 + -7.1337029537292074E-01 -7.1521778342531062E-01 -7.1705603826254749E-01 + -7.1888488863154476E-01 -7.2070416240133517E-01 -7.2251368657361992E-01 + -7.2431328729361633E-01 -7.2610278986118659E-01 -7.2788201874227043E-01 + -7.2965079758060203E-01 -7.3140894920973742E-01 -7.3315629566536833E-01 + -7.3489265819794902E-01 -7.3661785728561746E-01 -7.3833171264742958E-01 + -7.4003404325689548E-01 -7.4172466735582632E-01 -7.4340340246849745E-01 + -7.4507006541611298E-01 -7.4672447233159833E-01 -7.4836643867469599E-01 + -7.4999577924739325E-01 -7.5161230820965375E-01 -7.5321583909548673E-01 + -7.5480618482932460E-01 -7.5638315774273635E-01 -7.5794656959145901E-01 + -7.5949623157276369E-01 -7.6103195434314319E-01 -7.6255354803634101E-01 + -7.6406082228170080E-01 -7.6555358622286229E-01 -7.6703164853678296E-01 + -7.6849481745310344E-01 -7.6994290077385286E-01 -7.7137570589348925E-01 + -7.7279303981929248E-01 -7.7419470919209221E-01 -7.7558052030735303E-01 + -7.7695027913659809E-01 -7.7830379134919669E-01 -7.7964086233449292E-01 + -7.8096129722430130E-01 -7.8226490091575296E-01 -7.8355147809451109E-01 + -7.8482083325834229E-01 -7.8607277074106485E-01 -7.8730709473685856E-01 + -7.8852360932495547E-01 -7.8972211849470741E-01 -7.9090242617102935E-01 + -7.9206433624023909E-01 -7.9320765257627479E-01 -7.9433217906731890E-01 + -7.9543771964280985E-01 -7.9652407830087069E-01 -7.9759105913613415E-01 + -7.9863846636799596E-01 -7.9966610436927810E-01 -8.0067377769532955E-01 + -8.0166129111354945E-01 -8.0262844963336366E-01 -8.0357505853663636E-01 + -8.0450092340854240E-01 -8.0540585016890365E-01 -8.0628964510398493E-01 + -8.0715211489877747E-01 -8.0799306666975756E-01 -8.0881230799814607E-01 + -8.0960964696365756E-01 -8.1038489217876852E-01 -8.1113785282348883E-01 + -8.1186833868066810E-01 -8.1257616017181911E-01 -8.1326112839348830E-01 + -8.1392305515416052E-01 -8.1456175301171596E-01 -8.1517703531143670E-01 + -8.1576871622457159E-01 -8.1633661078745456E-01 -8.1688053494118618E-01 + -8.1740030557187426E-01 -8.1789574055142378E-01 -8.1836665877888715E-01 + -8.1881288022234888E-01 -8.1923422596135742E-01 -8.1963051822986488E-01 + -8.2000158045968674E-01 -8.2034723732443804E-01 -8.2066731478394150E-01 + -8.2096164012906203E-01 -8.2123004202695649E-01 -8.2147235056667534E-01 + -8.2168839730510113E-01 -8.2187801531314564E-01 -8.2204103922218086E-01 + -8.2217730527061295E-01 -8.2228665135055390E-01 -8.2236891705450466E-01 + -8.2242394372196159E-01 -8.2245157448587447E-01 -8.2245165431883160E-01 + -8.2242403007889642E-01 -8.2236855055495117E-01 -8.2228506651145805E-01 + -8.2217343073248084E-01 -8.2203349806486070E-01 -8.2186512546037815E-01 + -8.2166817201678266E-01 -8.2144249901751420E-01 -8.2118796996998811E-01 + -8.2090445064226059E-01 -8.2059180909794383E-01 -8.2024991572919836E-01 + -8.1987864328765114E-01 -8.1947786691310054E-01 -8.1904746415984775E-01 + -8.1858731502054194E-01 -8.1809730194739405E-01 -8.1757730987066990E-01 + -8.1702722621434831E-01 -8.1644694090888847E-01 -8.1583634640102631E-01 + -8.1519533766059504E-01 -8.1452381218433223E-01 -8.1382166999671768E-01 + -8.1308881364786689E-01 -8.1232514820857649E-01 -8.1153058126261790E-01 + -8.1070502289642110E-01 -8.0984838568633399E-01 -8.0896058468364385E-01 + -8.0804153739762630E-01 -8.0709116377686529E-01 -8.0610938618917405E-01 + -8.0509612940042463E-01 -8.0405132055266337E-01 -8.0297488914188164E-01 + -8.0186676699585713E-01 -8.0072688825247840E-01 -7.9955518933900371E-01 + -7.9835160895268442E-01 -7.9711608804322853E-01 -7.9584856979753715E-01 + -7.9454899962718661E-01 -7.9321732515908783E-01 -7.9185349622975454E-01 + -7.9045746488359769E-01 -7.8902918537562006E-01 -7.8756861417888235E-01 + -7.8607570999704302E-01 -7.8455043378226785E-01 -7.8299274875872382E-01 + -7.8140262045185527E-01 -7.7978001672354735E-01 -7.7812490781326404E-01 + -7.7643726638513511E-01 -7.7471706758095316E-01 -7.7296428907892600E-01 + -7.7117891115800097E-01 -7.6936091676747564E-01 -7.6751029160157747E-01 + -7.6562702417860462E-01 -7.6371110592417257E-01 -7.6176253125806914E-01 + -7.5978129768414970E-01 -7.5776740588270042E-01 -7.5572085980463288E-01 + -7.5364166676689204E-01 -7.5152983754841152E-01 -7.4938538648599662E-01 + -7.4720833156947919E-01 -7.4499869453555945E-01 -7.4275650095973333E-01 + -7.4048178034579226E-01 -7.3817456621237598E-01 -7.3583489617616349E-01 + -7.3346281203130825E-01 -7.3105835982478917E-01 -7.2862158992743187E-01 + -7.2615255710038218E-01 -7.2365132055690939E-01 -7.2111794401943696E-01 + -7.1855249577179403E-01 -7.1595504870668591E-01 -7.1332568036847122E-01 + -7.1066447299132818E-01 -7.0797151353297005E-01 -7.0524689370405358E-01 + -7.0249070999348528E-01 -6.9970306368981383E-01 -6.9688406089893118E-01 + -6.9403381255830066E-01 -6.9115243444792196E-01 -6.8824004719826881E-01 + -6.8529677629539243E-01 -6.8232275208341142E-01 -6.7931810976456286E-01 + -6.7628298939701570E-01 -6.7321753589058753E-01 -6.7012189900054175E-01 + -6.6699623331957836E-01 -6.6384069826815939E-01 -6.6065545808325521E-01 + -6.5744068180562409E-01 -6.5419654326568044E-01 -6.5092322106803790E-01 + -6.4762089857475835E-01 -6.4428976388736448E-01 -6.4093000982764048E-01 + -6.3754183391723407E-01 -6.3412543835609225E-01 -6.3068102999971631E-01 + -6.2720882033525660E-01 -6.2370902545642626E-01 -6.2018186603724146E-01 + -6.1662756730456181E-01 -6.1304635900943516E-01 -6.0943847539721585E-01 + -6.0580415517645703E-01 -6.0214364148654476E-01 -5.9845718186408015E-01 + -5.9474502820797470E-01 -5.9100743674326384E-01 -5.8724466798361485E-01 + -5.8345698669252921E-01 -5.7964466184323205E-01 -5.7580796657723377E-01 + -5.7194717816158169E-01 -5.6806257794478132E-01 -5.6415445131140840E-01 + -5.6022308763540307E-01 -5.5626878023206905E-01 -5.5229182630877516E-01 + -5.4829252691438590E-01 -5.4427118688742426E-01 -5.4022811480299937E-01 + -5.3616362291850495E-01 -5.3207802711812635E-01 -5.2797164685616549E-01 + -5.2384480509922526E-01 -5.1969782826727218E-01 -5.1553104617360623E-01 + -5.1134479196378102E-01 -5.0713940205348984E-01 -5.0291521606546818E-01 + -4.9867257676543353E-01 -4.9441182999711125E-01 -4.9013332461637027E-01 + -4.8583741242451850E-01 -4.8152444810078426E-01 -4.7719478913403385E-01 + -4.7284879575375166E-01 -4.6848683086033627E-01 -4.6410925995473606E-01 + -4.5971645106747788E-01 -4.5530877468712228E-01 -4.5088660368818051E-01 + -4.4645031325854467E-01 -4.4200028082645576E-01 -4.3753688598706386E-01 + -4.3306051042860488E-01 -4.2857153785824642E-01 -4.2407035392762771E-01 + -4.1955734615814433E-01 -4.1503290386600278E-01 -4.1049741808709511E-01 + -4.0595128150171539E-01 -4.0139488835916931E-01 -3.9682863440229793E-01 + -3.9225291679196300E-01 -3.8766813403151740E-01 -3.8307468589130134E-01 + -3.7847297333319452E-01 -3.7386339843525457E-01 -3.6924636431647667E-01 + -3.6462227506170086E-01 -3.5999153564670117E-01 -3.5535455186347942E-01 + -3.5071173024579927E-01 -3.4606347799497855E-01 -3.4141020290597629E-01 + -3.3675231329378891E-01 -3.3209021792019089E-01 -3.2742432592083170E-01 + -3.2275504673272387E-01 -3.1808279002213080E-01 -3.1340796561288703E-01 + -3.0873098341515903E-01 -3.0405225335467417E-01 -2.9937218530242982E-01 + -2.9469118900489866E-01 -2.9000967401475042E-01 -2.8532804962209629E-01 + -2.8064672478627783E-01 -2.7596610806820332E-01 -2.7128660756325124E-01 + -2.6660863083474173E-01 -2.6193258484799375E-01 -2.5725887590496627E-01 + -2.5258790957949873E-01 -2.4792009065314793E-01 -2.4325582305163349E-01 + -2.3859550978188723E-01 -2.3393955286971568E-01 -2.2928835329807273E-01 + -2.2464231094594161E-01 -2.2000182452783104E-01 -2.1536729153387474E-01 + -2.1073910817054128E-01 -2.0611766930194142E-01 -2.0150336839173585E-01 + -1.9689659744563129E-01 -1.9229774695446428E-01 -1.8770720583786041E-01 + -1.8312536138846577E-01 -1.7855259921673733E-01 -1.7398930319628814E-01 + -1.6943585540977210E-01 -1.6489263609530247E-01 -1.6036002359339194E-01 + -1.5583839429440030E-01 -1.5132812258648373E-01 -1.4682958080402819E-01 + -1.4234313917655997E-01 -1.3786916577811689E-01 -1.3340802647707301E-01 + -1.2896008488639985E-01 -1.2452570231435753E-01 -1.2010523771559994E-01 + -1.1569904764268681E-01 -1.1130748619798927E-01 -1.0693090498598175E-01 + -1.0256965306590816E-01 -9.8224076904817992E-02 -9.3894520330961073E-02 + -8.9581324487538347E-02 -8.5284827786801881E-02 -8.1005365864501216E-02 + -7.6743271534674570E-02 -7.2498874744783309E-02 -6.8272502531193463E-02 + -6.4064478975004516E-02 -5.9875125158234149E-02 -5.5704759120363559E-02 + -5.1553695815255499E-02 -4.7422247068455416E-02 -4.3310721534891537E-02 + -3.9219424656990312E-02 -3.5148658623227934E-02 -3.1098722327139561E-02 + -2.7069911326812812E-02 -2.3062517804892789E-02 -1.9076830529130690E-02 + -1.5113134813509572E-02 -1.1171712479984204E-02 -7.2528418208753056E-03 + -3.3567975619601207E-03 5.1614917369481247E-04 4.3657309011112940E-03 + 8.1916838079367522E-03 1.1993747788089468E-02 1.5771666474456124E-02 + 1.9525187270586396E-02 2.3254061381326553E-02 2.6958043842332718E-02 + 3.0636893548405823E-02 3.4290373280586463E-02 3.7918249731951743E-02 + 4.1520293532054525E-02 4.5096279269947109E-02 4.8645985515734624E-02 + 5.2169194840603630E-02 5.5665693835276905E-02 5.9135273126847313E-02 + 6.2577727393949914E-02 6.5992855380235180E-02 6.9380459906114467E-02 + 7.2740347878753039E-02 7.6072330300297419E-02 7.9376222274327904E-02 + 8.2651843010542014E-02 8.5899015827679295E-02 8.9117568154713611E-02 + 9.2307331530349007E-02 9.5468141600867099E-02 9.8599838116390393E-02 + 1.0170226492563700E-01 1.0477526996926030E-01 1.0781870527187992E-01 + 1.1083242693293029E-01 1.1381629511646633E-01 1.1677017404008815E-01 + 1.1969393196315971E-01 1.2258744117452178E-01 1.2545057797991202E-01 + 1.2828322268933309E-01 1.3108525960462286E-01 1.3385657700750950E-01 + 1.3659706714844971E-01 1.3930662623657777E-01 1.4198515443111126E-01 + 1.4463255583458576E-01 1.4724873848831846E-01 1.4983361437051984E-01 + 1.5238709939750764E-01 1.5490911342849478E-01 1.5739958027446080E-01 + 1.5985842771163306E-01 1.6228558750014113E-01 1.6468099540842665E-01 + 1.6704459124402288E-01 1.6937631889133298E-01 1.7167612635706481E-01 + 1.7394396582398342E-01 1.7617979371365894E-01 1.7838357075887543E-01 + 1.8055526208635883E-01 1.8269483731044514E-01 1.8480227063825910E-01 + 1.8687754098690135E-01 1.8892063211302715E-01 1.9093153275506841E-01 + 1.9291023678815092E-01 1.9485674339153869E-01 1.9677105722813071E-01 + 1.9865318863519288E-01 2.0050315382506789E-01 2.0232097509411731E-01 + 2.0410668103755220E-01 2.0586030676715952E-01 2.0758189412817266E-01 + 2.0927149191072919E-01 2.1092915605047252E-01 2.1255494981193285E-01 + 2.1414894394739406E-01 2.1571121682302430E-01 2.1724185450321390E-01 + 2.1874095078332309E-01 2.2020860716051821E-01 2.2164493273208782E-01 + 2.2305004401070946E-01 2.2442406464661968E-01 2.2576712504764535E-01 + 2.2707936188961195E-01 2.2836091751184256E-01 2.2961193919528655E-01 + 2.3083257832428425E-01 2.3202298943701527E-01 2.3318332917416398E-01 + 2.3431375514014163E-01 2.3541442469607293E-01 2.3648549370842648E-01 + 2.3752711528136608E-01 2.3853943850426876E-01 2.3952260724813013E-01 + 2.4047675904544497E-01 2.4140202408747216E-01 2.4229852437040997E-01 + 2.4316637301798366E-01 2.4400567380237981E-01 2.4481652087866942E-01 + 2.4559899874016516E-01 2.4635318239405954E-01 2.4707913774863341E-01 + 2.4777692219584874E-01 2.4844658536665071E-01 2.4908817003114919E-01 + 2.4970171311230840E-01 2.5028724677990027E-01 2.5084479959129441E-01 + 2.5137439764698061E-01 2.5187606573136984E-01 2.5234982841304288E-01 + 2.5279571108294085E-01 2.5321374091363869E-01 2.5360394772757239E-01 + 2.5396636476659440E-01 2.5430102935936100E-01 2.5460798348662056E-01 + 2.5488727424746305E-01 2.5513895423191901E-01 2.5536308180700235E-01 + 2.5555972132444599E-01 2.5572894325899731E-01 2.5587082428636343E-01 + 2.5598544730974204E-01 2.5607290144349304E-01 2.5613328196190638E-01 + 2.5616669022032662E-01 2.5617323355509980E-01 2.5615302516802502E-01 + 2.5610618400018592E-01 2.5603283459929427E-01 2.5593310698395405E-01 + 2.5580713650762354E-01 2.5565506372447450E-01 2.5547703425882523E-01 + 2.5527319867940229E-01 2.5504371237928886E-01 2.5478873546212122E-01 + 2.5450843263480305E-01 2.5420297310681844E-01 2.5387253049602954E-01 + 2.5351728274072782E-01 2.5313741201758166E-01 2.5273310466506654E-01 + 2.5230455111189481E-01 2.5185194580994325E-01 2.5137548717113795E-01 + 2.5087537750777067E-01 2.5035182297571340E-01 2.4980503352002059E-01 + 2.4923522282242055E-01 2.4864260825022727E-01 2.4802741080624199E-01 + 2.4738985507922653E-01 2.4673016919458479E-01 2.4604858476490735E-01 + 2.4534533684008381E-01 2.4462066385670625E-01 2.4387480758653338E-01 + 2.4310801308381141E-01 2.4232052863128470E-01 2.4151260568474794E-01 + 2.4068449881603285E-01 2.3983646565433650E-01 2.3896876682583620E-01 + 2.3808166589153937E-01 2.3717542928335381E-01 2.3625032623837738E-01 + 2.3530662873141409E-01 2.3434461140574939E-01 2.3336455150222321E-01 + 2.3236672878665610E-01 2.3135142547568305E-01 2.3031892616107114E-01 + 2.2926951773258969E-01 2.2820348929952258E-01 2.2712113211089793E-01 + 2.2602273947452969E-01 2.2490860667495732E-01 2.2377903089037834E-01 + 2.2263431110865897E-01 2.2147474804251649E-01 2.2030064404396496E-01 + 2.1911230301810444E-01 2.1791003033634596E-01 2.1669413274914709E-01 + 2.1546491829834641E-01 2.1422269622916060E-01 2.1296777690192581E-01 + 2.1170047170364215E-01 2.1042109295939318E-01 2.0912995384369076E-01 + 2.0782736829180451E-01 2.0651365091112203E-01 2.0518911689259026E-01 + 2.0385408192227092E-01 2.0250886209305108E-01 2.0115377381653640E-01 + 1.9978913373515875E-01 1.9841525863451298E-01 1.9703246535594529E-01 + 1.9564107070940928E-01 1.9424139138659241E-01 1.9283374387432545E-01 + 1.9141844436827304E-01 1.8999580868690946E-01 1.8856615218577014E-01 + 1.8712978967197721E-01 1.8568703531902658E-01 1.8423820258183071E-01 + 1.8278360411199870E-01 1.8132355167334366E-01 1.7985835605760059E-01 + 1.7838832700034254E-01 1.7691377309707534E-01 1.7543500171949789E-01 + 1.7395231893191601E-01 1.7246602940779274E-01 1.7097643634642673E-01 + 1.6948384138974726E-01 1.6798854453922429E-01 1.6649084407288345E-01 + 1.6499103646243232E-01 1.6348941629049757E-01 1.6198627616798739E-01 + 1.6048190665158579E-01 1.5897659616140708E-01 1.5747063089882263E-01 + 1.5596429476449991E-01 1.5445786927669097E-01 1.5295163348980137E-01 + 1.5144586391330822E-01 1.4994083443106881E-01 1.4843681622108115E-01 + 1.4693407767577626E-01 1.4543288432291368E-01 1.4393349874715899E-01 + 1.4243618051244053E-01 1.4094118608517167E-01 1.3944876875844614E-01 + 1.3795917857730880E-01 1.3647266226521423E-01 1.3498946315178692E-01 + 1.3350982110200596E-01 1.3203397244693169E-01 1.3056214991610154E-01 + 1.2909458257172315E-01 1.2763149574478888E-01 1.2617311097324205E-01 + 1.2471964594232064E-01 1.2327131442720746E-01 1.2182832623810604E-01 + 1.2039088716786685E-01 1.1895919894227869E-01 1.1753345917314048E-01 + 1.1611386131421721E-01 1.1470059462018445E-01 1.1329384410865320E-01 + 1.1189379052536647E-01 1.1050061031264245E-01 1.0911447558113693E-01 + 1.0773555408498990E-01 1.0636400920040380E-01 1.0499999990770145E-01 + 1.0364368077689327E-01 1.0229520195678089E-01 1.0095470916760602E-01 + 9.9622343697250870E-02 9.8298242400979813E-02 9.6982537704707855E-02 + 9.5675357611765419E-02 9.4376825713124016E-02 9.3087061201024404E-02 + 9.1806178886001469E-02 9.0534289217142364E-02 8.9271498305603464E-02 + 8.8017907951252736E-02 8.6773615672363205E-02 8.5538714738257055E-02 + 8.4313294204800479E-02 8.3097438952642391E-02 8.1891229728079912E-02 + 8.0694743186436435E-02 7.9508051937826951E-02 7.8331224595188292E-02 + 7.7164325824442367E-02 7.6007416396664140E-02 7.4860553242119932E-02 + 7.3723789506044635E-02 7.2597174606020762E-02 7.1480754290826953E-02 + 7.0374570700620837E-02 6.9278662428324478E-02 6.8193064582078800E-02 + 6.7117808848638105E-02 6.6052923557577733E-02 6.4998433746187786E-02 + 6.3954361224932130E-02 6.2920724643352327E-02 6.1897539556302804E-02 + 6.0884818490402989E-02 5.9882571010600232E-02 5.8890803786738700E-02 + 5.7909520660036157E-02 5.6938722709371670E-02 5.5978408317295551E-02 + 5.5028573235674207E-02 5.4089210650890680E-02 5.3160311248522080E-02 + 5.2241863277423792E-02 5.1333852613153576E-02 5.0436262820672130E-02 + 4.9549075216263540E-02 4.8672268928621573E-02 4.7805820959054848E-02 + 4.6949706240764652E-02 4.6103897697157295E-02 4.5268366299154081E-02 + 4.4443081121468712E-02 4.3628009397823089E-02 4.2823116575078576E-02 + 4.2028366366261956E-02 4.1243720802470643E-02 4.0469140283642402E-02 + 3.9704583628180593E-02 3.8950008121427508E-02 3.8205369562982795E-02 + 3.7470622312864500E-02 3.6745719336514923E-02 3.6030612248656051E-02 + 3.5325251355999530E-02 3.4629585698821304E-02 3.3943563091410604E-02 + 3.3267130161407636E-02 3.2600232388043250E-02 3.1942814139298219E-02 + 3.1294818707999973E-02 3.0656188346877260E-02 3.0026864302593412E-02 + 2.9406786848781716E-02 2.8795895318106508E-02 2.8194128133376274E-02 + 2.7601422837734441E-02 2.7017716123955871E-02 2.6442943862878508E-02 + 2.5877041130998590E-02 2.5319942237261174E-02 2.4771580749076393E-02 + 2.4231889517594640E-02 2.3700800702272342E-02 2.3178245794762544E-02 + 2.2664155642163564E-02 2.2158460469660916E-02 2.1661089902596225E-02 + 2.1171972987998732E-02 2.0691038215614303E-02 2.0218213538467526E-02 + 1.9753426392991717E-02 1.9296603718762115E-02 1.8847671977867773E-02 + 1.8406557173956038E-02 1.7973184870984472E-02 1.7547480211713661E-02 + 1.7129367935974565E-02 1.6718772398742147E-02 1.6315617588047514E-02 + 1.5919827142758757E-02 1.5531324370260594E-02 1.5150032264060717E-02 + 1.4775873521350440E-02 1.4408770560545157E-02 1.4048645538829431E-02 + 1.3695420369728963E-02 1.3349016740730942E-02 1.3009356130972479E-02 + 1.2676359829014333E-02 1.2349948950716253E-02 1.2030044457227643E-02 + 1.1716567173105997E-02 1.1409437804572780E-02 1.1108576957915263E-02 + 1.0813905158040262E-02 1.0525342867184163E-02 1.0242810503781175E-02 + 9.9662284614902164E-03 9.6955171283786019E-03 9.4305969062591592E-03 + 9.1713882301750049E-03 8.9178115880248956E-03 8.6697875403203666E-03 + 8.4272367400636539E-03 8.1900799527345469E-03 7.9582380763722708E-03 + 7.7316321617375222E-03 7.5101834325381183E-03 7.2938133057007465E-03 + 7.0824434116701909E-03 6.8759956147164542E-03 6.6743920332290995E-03 + 6.4775550599777123E-03 6.2854073823164439E-03 6.0978720023103757E-03 + 5.9148722567605640E-03 5.7363318371048220E-03 5.5621748091706641E-03 + 5.3923256327571148E-03 5.2267091810216928E-03 5.0652507596492605E-03 + 4.9078761257796517E-03 4.7545115066709659E-03 4.6050836180761834E-03 + 4.4595196823108731E-03 4.3177474459906266E-03 4.1796951974171015E-03 + 4.0452917835925115E-03 3.9144666268429822E-03 3.7871497410321016E-03 + 3.6632717473466369E-03 3.5427638896374973E-03 3.4255580492997431E-03 + 3.3115867596766311E-03 3.2007832199733789E-03 3.0930813086675903E-03 + 2.9884155964042419E-03 2.8867213583640698E-03 2.7879345860954224E-03 + 2.6919919988005435E-03 2.5988310540684938E-03 2.5083899580477507E-03 + 2.4206076750528079E-03 2.3354239365999743E-03 2.2527792498687428E-03 + 2.1726149055859602E-03 2.0948729853312040E-03 2.0194963682625871E-03 + 1.9464287372633312E-03 1.8756145845102237E-03 1.8069992164660787E-03 + 1.7405287582992124E-03 1.6761501577336796E-03 1.6138111883349678E-03 + 1.5534604522365197E-03 1.4950473823133002E-03 1.4385222438092419E-03 + 1.3838361354261651E-03 1.3309409898823582E-03 1.2797895739496824E-03 + 1.2303354879785347E-03 1.1825331649206548E-03 1.1363378688601794E-03 + 1.0917056930638826E-03 1.0485935575619064E-03 1.0069592062707392E-03 + 9.6676120367052804E-04 9.2795893104917623E-04 8.9051258232592195E-04 + 8.5438315946739893E-04 8.1953246750941366E-04 7.8592310919783275E-04 + 7.5351847926219135E-04 7.2228275833573739E-04 6.9218090653577736E-04 + 6.6317865671822076E-04 6.3524250742033096E-04 6.0833971550568080E-04 + 5.8243828852535618E-04 5.5750697680938570E-04 5.3351526530238361E-04 + 5.1043336515729180E-04 4.8823220510106142E-04 4.6688342258596711E-04 + 4.4635935474016570E-04 4.2663302913095692E-04 4.0767815435403370E-04 + 3.8946911046186370E-04 3.7198093924413266E-04 3.5518933437300206E-04 + 3.3907063142569381E-04 3.2360179779671158E-04 3.0876042251175696E-04 + 2.9452470595516141E-04 2.8087344952238465E-04 2.6778604520887815E-04 + 2.5524246514632801E-04 2.4322325109702350E-04 2.3170950391679393E-04 + 2.2068287299667862E-04 2.1012554569319628E-04 2.0002023675676811E-04 + 1.9035017776755910E-04 1.8109910658768401E-04 1.7225125683842591E-04 + 1.6379134741079053E-04 1.5570457201742415E-04 1.4797658879359783E-04 + 1.4059350995466086E-04 1.3354189151704339E-04 1.2680872308958971E-04 + 1.2038141774168842E-04 1.1424780195436552E-04 1.0839610566019686E-04 + 1.0281495237760104E-04 9.7493349444777351E-05 9.2420678358253778E-05 + 8.7586685220727759E-05 8.2981471302591853E-05 7.8595483721260572E-05 + 7.4419506242132409E-05 7.0444650204756659E-05 6.6662345577503997E-05 + 6.3064332143783890E-05 5.9642650822592673E-05 5.6389635125931467E-05 + 5.3297902755387834E-05 5.0360347339940751E-05 4.7570130316814686E-05 + 4.4920672956987251E-05 4.2405648536737576E-05 4.0018974656407830E-05 + 3.7754805707349706E-05 3.5607525487827060E-05 3.3571739968456010E-05 + 3.1642270207577348E-05 2.9814145416779671E-05 2.8082596176618963E-05 + 2.6443047802416804E-05 2.4891113859859176E-05 2.3422589829968664E-05 + 2.2033446922875522E-05 2.0719826039676659E-05 1.9478031881537231E-05 + 1.8304527205065780E-05 1.7195927222872938E-05 1.6148994148111687E-05 + 1.5160631881688768E-05 1.4227880840736768E-05 1.3347912926841150E-05 + 1.2518026632426417E-05 1.1735642283623034E-05 1.0998297417857971E-05 + 1.0303642294339950E-05 9.6494355355424968E-06 9.0335398977268942E-06 + 8.4539181684897641E-06 7.9086291892687617E-06 7.3958240006923175E-06 + 6.9137421086178405E-06 6.4607078686646557E-06 6.0351269870152625E-06 + 5.6354831352291080E-06 5.2603346767888200E-06 4.9083115030780846E-06 + 4.5781119764732929E-06 4.2684999782184324E-06 3.9783020587429251E-06 + 3.7064046880764297E-06 3.4517516040116199E-06 3.2133412556667861E-06 + 2.9902243401034286E-06 2.7815014296606691E-06 2.5863206876772794E-06 + 2.4038756702842567E-06 2.2334032119649818E-06 2.0741813925969437E-06 + 1.9255275837077297E-06 1.7867965716992356E-06 1.6573787558170284E-06 + 1.5366984186666412E-06 1.4242120671053282E-06 1.3194068413659690E-06 + 1.2217989902996843E-06 1.1309324106547506E-06 1.0463772483419570E-06 + 9.6772855967007465E-07 8.9460503056985720E-07 8.2664775186024587E-07 + 7.6351904864853166E-07 7.0490136199418478E-07 6.5049618097233884E-07 + 6.0002302337244669E-07 5.5321846403586275E-07 5.0983520247671277E-07 + 4.6964116385298722E-07 4.3241888696070862E-07 3.9796383601438520E-07 + 3.6608546249858738E-07 3.3660420447193890E-07 3.0935284911511581E-07 + 2.8417443050227488E-07 2.6092213720016506E-07 2.3945871938400960E-07 + 2.1965592631851145E-07 2.0139397290398243E-07 1.8456103403377255E-07 + 1.6905276554931394E-07 1.5477185061871478E-07 1.4162757040383254E-07 + 1.2953539791913987E-07 1.1841661402340908E-07 1.0819794452230042E-07 + 9.8811217396293024E-08 9.0193039204036501E-08 8.2284489746125169E-08 + 7.5030834108465175E-08 6.8381251237830221E-08 6.2288578234850169E-08 + 5.6709069581562658E-08 5.1602170551753830E-08 4.6930304082628873E-08 + 4.2658670415870207E-08 3.8755058844872230E-08 3.5189670932870717E-08 + 3.1934954593824822E-08 2.8965448454251893E-08 2.6257635939771701E-08 + 2.3789808554885267E-08 2.1541937848500136E-08 1.9495555580929608E-08 + 1.7633641630539557E-08 1.5940519199906352E-08 1.4401756902288321E-08 + 1.3004077329415618E-08 1.1735271721076391E-08 1.0584120375735247E-08 + 9.5403184594733963E-09 8.5944068879042882E-09 7.7377079724044416E-09 + 6.9622655380234562E-09 6.2607892358120240E-09 5.6266027870490388E-09 + 5.0535959109727786E-09 4.5361797011418619E-09 4.0692452284864190E-09 + 3.6481251614731490E-09 3.2685582056168765E-09 2.9266561758411893E-09 + 2.6188735259391275E-09 2.3419791696267910E-09 2.0930304374354957E-09 + 1.8693490229671797E-09 1.6684987808599371E-09 1.4882652471913674E-09 + 1.3266367610031657E-09 1.1817870731764014E-09 1.0520593360391421E-09 + 9.3595137386147159E-10 8.3210214080263927E-10 7.3927927893602824E-10 + 6.5636769470404703E-10 5.8235907756141136E-10 5.1634228966523335E-10 + 4.5749456027765112E-10 4.0507342307443793E-10 3.5840933881414246E-10 + 3.1689894982922080E-10 2.7999891656560505E-10 2.4722028993186942E-10 + 2.1812337653511638E-10 1.9231305698886652E-10 1.6943452038934430E-10 + 1.4916938078081031E-10 1.3123214397798541E-10 1.1536699549362845E-10 + 1.0134488254118612E-10 8.8960865154911281E-11 7.8031713401388980E-11 + 6.8393729455140903E-11 5.9900774984602494E-11 5.2422485850713692E-11 + 4.5842657565677558E-11 4.0057786300875261E-11 3.4975751476882039E-11 + 3.0514627121124860E-11 2.6601610245749156E-11 2.3172055485239699E-11 + 2.0168606145481395E-11 1.7540412658205301E-11 1.5242430211820493E-11 + 1.3234788045911426E-11 1.1482223556360054E-11 9.9535749650705288E-12 + 8.6213268663484156E-12 7.4612034746047144E-12 6.4518048685055336E-12 + 5.5742819580521459E-12 4.8120462962493339E-12 4.1505112187104718E-12 + 3.5768611252957930E-12 3.0798460200563528E-12 2.6495987015785619E-12 + 2.2774722473590636E-12 1.9558956650156890E-12 1.6782457917508402E-12 + 1.4387337131986049E-12 1.2323041451561843E-12 1.0545463781628871E-12 + 9.0161552678031340E-13 7.7016295398033263E-13 6.5727485740622256E-13 + 5.6041810949257664E-13 4.7739253848635411E-13 4.0628892320325624E-13 + 3.4545205170853845E-13 2.9344826379088838E-13 2.4903695980230334E-13 + 2.1114561480851387E-13 1.7884788762287147E-13 1.5134445972155264E-13 + 1.2794627975351514E-13 1.0805992581635106E-13 9.1174830281334954E-14 + 7.6852141093526031E-14 6.4715019488312380E-14 5.4440197265962001E-14 + 4.5750637433895447E-14 3.8409160419777314E-14 3.2212914410420097E-14 + 2.6988582893266876E-14 2.2588235360102224E-14 1.8885738549500239E-14 + 1.5773655711400356E-14 1.3160570314846185E-14 1.0968778515083478E-14 + 9.1323016629487386E-15 7.5951762802751006E-15 6.3099843319039363E-15 + 5.2365913802997071E-15 4.3410643865948626E-15 3.5947445882117482E-15 + 2.9734540970527315E-15 2.4568176762963635E-15 2.0276836150375438E-15 + 1.6716297701627244E-15 1.3765427211226106E-15 1.1322596186625260E-15 + 9.3026373237210866E-16 7.6342594006128473E-16 6.2578547740980666E-16 + 5.1236419935903103E-16 4.1900941323001142E-16 3.4226104331360602E-16 + 2.7923949163410290E-16 2.2755108212264856E-16 1.8520842521268320E-16 + 1.5056342863059244E-16 1.2225101792039369E-16 9.9141897461297213E-17 + 8.0302961484568089E-17 6.4964229796424351E-17 5.2490937960694338E-17 + 4.2360466007033974E-17 3.4143943828733092E-17 2.7486839269515587E-17 + 2.2099485858965524E-17 1.7745262819162372E-17 1.4230567894645037E-17 + + + 8.3625868816522564E-16 6.2524378626126517E-07 1.2542685989010256E-06 + 1.8870973028536672E-06 2.5237529013241672E-06 3.1642585366243538E-06 + 3.8086374910140006E-06 4.4569131875472334E-06 5.1091091909238237E-06 + 5.7652492083459385E-06 6.4253570903796769E-06 7.0894568318222321E-06 + 7.7575725725739420E-06 8.4297285985158690E-06 9.1059493423924752E-06 + 9.7862593846998803E-06 1.0470683454579243E-05 1.1159246430715690E-05 + 1.1851973342242696E-05 1.2548889369651806E-05 1.3250019845707943E-05 + 1.3955390256370352E-05 1.4665026241718867E-05 1.5378953596885999E-05 + 1.6097198272994548E-05 1.6819786378100979E-05 1.7546744178144290E-05 + 1.8278098097900957E-05 1.9013874721945351E-05 1.9754100795616104E-05 + 2.0498803225988227E-05 2.1248009082851357E-05 2.2001745599693502E-05 + 2.2760040174691101E-05 2.3522920371704972E-05 2.4290413921282110E-05 + 2.5062548721663801E-05 2.5839352839799649E-05 2.6620854512367830E-05 + 2.7407082146801463E-05 2.8198064322321229E-05 2.8993829790974189E-05 + 2.9794407478678908E-05 3.0599826486276962E-05 3.1410116090590631E-05 + 3.2225305745487193E-05 3.3045425082949512E-05 3.3870503914153182E-05 + 3.4700572230550118E-05 3.5535660204958727E-05 3.6375798192660693E-05 + 3.7221016732504408E-05 3.8071346548015018E-05 3.8926818548511117E-05 + 3.9787463830228454E-05 4.0653313677450210E-05 4.1524399563644043E-05 + 4.2400753152606301E-05 4.3282406299612922E-05 4.4169391052577347E-05 + 4.5061739653215406E-05 4.5959484538217402E-05 4.6862658340427007E-05 + 4.7771293890027657E-05 4.8685424215735733E-05 4.9605082546001220E-05 + 5.0530302310215482E-05 5.1461117139926496E-05 5.2397560870061305E-05 + 5.3339667540155848E-05 5.4287471395592310E-05 5.5241006888843962E-05 + 5.6200308680727454E-05 5.7165411641662670E-05 5.8136350852940370E-05 + 5.9113161607997270E-05 6.0095879413698960E-05 6.1084539991630566E-05 + 6.2079179279395257E-05 6.3079833431920425E-05 6.4086538822772068E-05 + 6.5099332045476843E-05 6.6118249914852125E-05 6.7143329468344497E-05 + 6.8174607967375718E-05 6.9212122898697337E-05 7.0255911975753227E-05 + 7.1306013140050528E-05 7.2362464562538757E-05 7.3425304644997281E-05 + 7.4494572021431126E-05 7.5570305559475464E-05 7.6652544361808354E-05 + 7.7741327767572022E-05 7.8836695353802887E-05 7.9938686936870132E-05 + 8.1047342573923112E-05 8.2162702564347198E-05 8.3284807451228720E-05 + 8.4413698022828726E-05 8.5549415314065708E-05 8.6692000608006907E-05 + 8.7841495437369042E-05 8.8997941586028238E-05 9.0161381090538378E-05 + 9.1331856241659494E-05 9.2509409585894841E-05 9.3694083927037345E-05 + 9.4885922327725801E-05 9.6084968111009758E-05 9.7291264861924508E-05 + 9.8504856429075435E-05 9.9725786926231614E-05 1.0095410073392963E-04 + 1.0218984250108648E-04 1.0343305714662270E-04 1.0468378986109508E-04 + 1.0594208610833945E-04 1.0720799162712280E-04 1.0848155243280636E-04 + 1.0976281481901800E-04 1.1105182535933497E-04 1.1234863090897669E-04 + 1.1365327860650816E-04 1.1496581587555307E-04 1.1628629042651806E-04 + 1.1761475025832646E-04 1.1895124366016323E-04 1.2029581921323026E-04 + 1.2164852579251228E-04 1.2300941256855323E-04 1.2437852900924366E-04 + 1.2575592488161895E-04 1.2714165025366821E-04 1.2853575549615391E-04 + 1.2993829128444341E-04 1.3134930860035052E-04 1.3276885873398855E-04 + 1.3419699328563506E-04 1.3563376416760712E-04 1.3707922360614854E-04 + 1.3853342414332786E-04 1.3999641863894857E-04 1.4146826027247044E-04 + 1.4294900254494230E-04 1.4443869928094688E-04 1.4593740463055731E-04 + 1.4744517307130551E-04 1.4896205941016208E-04 1.5048811878552872E-04 + 1.5202340666924235E-04 1.5356797886859151E-04 1.5512189152834462E-04 + 1.5668520113279135E-04 1.5825796450779489E-04 1.5984023882285840E-04 + 1.6143208159320253E-04 1.6303355068185597E-04 1.6464470430175906E-04 + 1.6626560101787937E-04 1.6789629974934070E-04 1.6953685977156470E-04 + 1.7118734071842518E-04 1.7284780258441609E-04 1.7451830572683195E-04 + 1.7619891086796194E-04 1.7788967909729698E-04 1.7959067187375019E-04 + 1.8130195102789091E-04 1.8302357876419218E-04 1.8475561766329151E-04 + 1.8649813068426612E-04 1.8825118116692064E-04 1.9001483283409047E-04 + 1.9178914979395671E-04 1.9357419654237763E-04 1.9537003796523192E-04 + 1.9717673934077805E-04 1.9899436634202640E-04 2.0082298503912681E-04 + 2.0266266190176990E-04 2.0451346380160292E-04 2.0637545801466094E-04 + 2.0824871222381174E-04 2.1013329452121611E-04 2.1202927341080311E-04 + 2.1393671781075966E-04 2.1585569705603576E-04 2.1778628090086467E-04 + 2.1972853952129863E-04 2.2168254351775932E-04 2.2364836391760361E-04 + 2.2562607217770645E-04 2.2761574018705699E-04 2.2961744026937211E-04 + 2.3163124518572564E-04 2.3365722813719202E-04 2.3569546276750819E-04 + 2.3774602316574951E-04 2.3980898386902311E-04 2.4188441986517718E-04 + 2.4397240659552652E-04 2.4607301995759452E-04 2.4818633630787208E-04 + 2.5031243246459288E-04 2.5245138571052596E-04 2.5460327379578390E-04 + 2.5676817494064963E-04 2.5894616783841902E-04 2.6113733165826188E-04 + 2.6334174604809873E-04 2.6555949113749619E-04 2.6779064754057987E-04 + 2.7003529635896364E-04 2.7229351918469849E-04 2.7456539810323701E-04 + 2.7685101569641823E-04 2.7915045504546792E-04 2.8146379973401992E-04 + 2.8379113385115274E-04 2.8613254199444637E-04 2.8848810927305826E-04 + 2.9085792131081502E-04 2.9324206424932568E-04 2.9564062475111278E-04 + 2.9805369000276169E-04 3.0048134771808996E-04 3.0292368614133540E-04 + 3.0538079405036366E-04 3.0785276075989432E-04 3.1033967612474855E-04 + 3.1284163054311339E-04 3.1535871495982871E-04 3.1789102086969247E-04 + 3.2043864032078564E-04 3.2300166591781872E-04 3.2558019082549696E-04 + 3.2817430877190706E-04 3.3078411405192343E-04 3.3340970153063573E-04 + 3.3605116664679703E-04 3.3870860541629214E-04 3.4138211443562823E-04 + 3.4407179088544480E-04 3.4677773253404649E-04 3.4950003774095672E-04 + 3.5223880546049263E-04 3.5499413524536072E-04 3.5776612725027654E-04 + 3.6055488223560409E-04 3.6336050157101857E-04 3.6618308723919028E-04 + 3.6902274183949174E-04 3.7187956859172636E-04 3.7475367133988019E-04 + 3.7764515455589658E-04 3.8055412334347271E-04 3.8348068344187960E-04 + 3.8642494122980640E-04 3.8938700372922514E-04 3.9236697860928178E-04 + 3.9536497419020880E-04 3.9838109944726271E-04 4.0141546401468428E-04 + 4.0446817818968355E-04 4.0753935293644819E-04 4.1062909989017710E-04 + 4.1373753136113745E-04 4.1686476033874669E-04 4.2001090049567939E-04 + 4.2317606619199794E-04 4.2636037247930980E-04 4.2956393510494865E-04 + 4.3278687051618117E-04 4.3602929586443928E-04 4.3929132900957812E-04 + 4.4257308852415955E-04 4.4587469369776174E-04 4.4919626454131438E-04 + 4.5253792179146025E-04 4.5589978691494445E-04 4.5928198211302765E-04 + 4.6268463032592784E-04 4.6610785523728887E-04 4.6955178127867524E-04 + 4.7301653363409480E-04 4.7650223824454742E-04 4.8000902181260407E-04 + 4.8353701180700950E-04 4.8708633646731648E-04 4.9065712480854547E-04 + 4.9424950662587471E-04 4.9786361249935579E-04 5.0149957379866058E-04 + 5.0515752268785589E-04 5.0883759213020527E-04 5.1253991589300261E-04 + 5.1626462855243352E-04 5.2001186549846513E-04 5.2378176293976797E-04 + 5.2757445790866514E-04 5.3139008826611378E-04 5.3522879270671343E-04 + 5.3909071076374754E-04 5.4297598281425458E-04 5.4688475008412977E-04 + 5.5081715465325667E-04 5.5477333946067175E-04 5.5875344830975840E-04 + 5.6275762587347272E-04 5.6678601769960286E-04 5.7083877021605613E-04 + 5.7491603073618234E-04 5.7901794746412672E-04 5.8314466950021488E-04 + 5.8729634684637298E-04 5.9147313041157880E-04 5.9567517201734442E-04 + 5.9990262440323520E-04 6.0415564123241893E-04 6.0843437709725266E-04 + 6.1273898752489729E-04 6.1706962898297208E-04 6.2142645888523993E-04 + 6.2580963559732755E-04 6.3021931844248116E-04 6.3465566770735525E-04 + 6.3911884464783880E-04 6.4360901149491457E-04 6.4812633146055394E-04 + 6.5267096874364915E-04 6.5724308853597928E-04 6.6184285702821396E-04 + 6.6647044141595170E-04 6.7112600990579664E-04 6.7580973172146996E-04 + 6.8052177710996059E-04 6.8526231734771014E-04 6.9003152474683834E-04 + 6.9482957266140332E-04 6.9965663549370258E-04 7.0451288870060878E-04 + 7.0939850879994572E-04 7.1431367337690442E-04 7.1925856109049347E-04 + 7.2423335168003364E-04 7.2923822597168765E-04 7.3427336588502987E-04 + 7.3933895443965933E-04 7.4443517576184865E-04 7.4956221509123449E-04 + 7.5472025878754886E-04 7.5990949433739059E-04 7.6513011036103817E-04 + 7.7038229661930281E-04 7.7566624402042523E-04 7.8098214462700942E-04 + 7.8633019166300525E-04 7.9171057952072573E-04 7.9712350376791308E-04 + 8.0256916115484245E-04 8.0804774962147177E-04 8.1355946830463557E-04 + 8.1910451754527744E-04 8.2468309889573101E-04 8.3029541512704254E-04 + 8.3594167023633950E-04 8.4162206945424096E-04 8.4733681925231602E-04 + 8.5308612735058361E-04 8.5887020272506186E-04 8.6468925561535958E-04 + 8.7054349753231362E-04 8.7643314126567649E-04 8.8235840089184508E-04 + 8.8831949178163965E-04 8.9431663060812738E-04 9.0035003535449750E-04 + 9.0641992532197724E-04 9.1252652113780021E-04 9.1867004476322526E-04 + 9.2485071950159520E-04 9.3106877000645320E-04 9.3732442228970419E-04 + 9.4361790372982427E-04 9.4994944308012257E-04 9.5631927047705185E-04 + 9.6272761744856810E-04 9.6917471692254265E-04 9.7566080323522339E-04 + 9.8218611213975009E-04 9.8875088081471418E-04 9.9535534787278056E-04 + 1.0019997533693517E-03 1.0086843388112901E-03 1.0154093471656919E-03 + 1.0221750228687112E-03 1.0289816118344414E-03 1.0358293614638476E-03 + 1.0427185206537532E-03 1.0496493398058826E-03 1.0566220708359561E-03 + 1.0636369671828416E-03 1.0706942838177584E-03 1.0777942772535432E-03 + 1.0849372055539628E-03 1.0921233283430920E-03 1.0993529068147410E-03 + 1.1066262037419451E-03 1.1139434834865089E-03 1.1213050120086070E-03 + 1.1287110568764464E-03 1.1361618872759835E-03 1.1436577740207019E-03 + 1.1511989895614488E-03 1.1587858079963316E-03 1.1664185050806700E-03 + 1.1740973582370165E-03 1.1818226465652273E-03 1.1895946508526020E-03 + 1.1974136535840808E-03 1.2052799389525037E-03 1.2131937928689326E-03 + 1.2211555029730346E-03 1.2291653586435271E-03 1.2372236510086890E-03 + 1.2453306729569332E-03 1.2534867191474435E-03 1.2616920860208721E-03 + 1.2699470718101099E-03 1.2782519765511136E-03 1.2866071020938036E-03 + 1.2950127521130215E-03 1.3034692321195630E-03 1.3119768494712679E-03 + 1.3205359133841828E-03 1.3291467349437875E-03 1.3378096271162972E-03 + 1.3465249047600169E-03 1.3552928846367828E-03 1.3641138854234606E-03 + 1.3729882277235164E-03 1.3819162340786588E-03 1.3908982289805479E-03 + 1.3999345388825814E-03 1.4090254922117416E-03 1.4181714193805244E-03 + 1.4273726527989355E-03 1.4366295268865550E-03 1.4459423780846831E-03 + 1.4553115448685519E-03 1.4647373677596162E-03 1.4742201893379132E-03 + 1.4837603542545009E-03 1.4933582092439715E-03 1.5030141031370343E-03 + 1.5127283868731840E-03 1.5225014135134369E-03 1.5323335382531498E-03 + 1.5422251184349105E-03 1.5521765135615121E-03 1.5621880853090016E-03 + 1.5722601975398074E-03 1.5823932163159474E-03 1.5925875099123165E-03 + 1.6028434488300530E-03 1.6131614058099866E-03 1.6235417558461650E-03 + 1.6339848761994680E-03 1.6444911464112970E-03 1.6550609483173499E-03 + 1.6656946660614800E-03 1.6763926861096358E-03 1.6871553972638879E-03 + 1.6979831906765370E-03 1.7088764598643101E-03 1.7198356007226390E-03 + 1.7308610115400293E-03 1.7419530930125103E-03 1.7531122482581755E-03 + 1.7643388828318129E-03 1.7756334047396166E-03 1.7869962244539926E-03 + 1.7984277549284542E-03 1.8099284116126007E-03 1.8214986124671939E-03 + 1.8331387779793205E-03 1.8448493311776495E-03 1.8566306976477774E-03 + 1.8684833055476655E-03 1.8804075856231801E-03 1.8924039712237097E-03 + 1.9044728983178903E-03 1.9166148055094171E-03 1.9288301340529585E-03 + 1.9411193278701551E-03 1.9534828335657302E-03 1.9659211004436814E-03 + 1.9784345805235778E-03 1.9910237285569593E-03 2.0036890020438233E-03 + 2.0164308612492239E-03 2.0292497692199546E-03 2.0421461918013503E-03 + 2.0551205976541719E-03 2.0681734582716133E-03 2.0813052479963824E-03 + 2.0945164440379156E-03 2.1078075264896741E-03 2.1211789783465518E-03 + 2.1346312855223914E-03 2.1481649368675967E-03 2.1617804241868578E-03 + 2.1754782422569864E-03 2.1892588888448423E-03 2.2031228647253877E-03 + 2.2170706736998344E-03 2.2311028226139141E-03 2.2452198213762401E-03 + 2.2594221829767970E-03 2.2737104235055340E-03 2.2880850621710643E-03 + 2.3025466213194958E-03 2.3170956264533444E-03 2.3317326062505918E-03 + 2.3464580925838386E-03 2.3612726205395817E-03 2.3761767284375969E-03 + 2.3911709578504545E-03 2.4062558536231339E-03 2.4214319638927711E-03 + 2.4366998401085102E-03 2.4520600370514932E-03 2.4675131128549486E-03 + 2.4830596290244126E-03 2.4987001504580752E-03 2.5144352454672327E-03 + 2.5302654857968852E-03 2.5461914466464322E-03 2.5622137066905184E-03 + 2.5783328480999792E-03 2.5945494565629327E-03 2.6108641213059866E-03 + 2.6272774351155772E-03 2.6437899943594309E-03 2.6604023990081595E-03 + 2.6771152526569842E-03 2.6939291625475907E-03 2.7108447395901058E-03 + 2.7278625983852244E-03 2.7449833572464472E-03 2.7622076382224688E-03 + 2.7795360671196926E-03 2.7969692735248788E-03 2.8145078908279357E-03 + 2.8321525562448359E-03 2.8499039108406815E-03 2.8677625995528963E-03 + 2.8857292712145695E-03 2.9038045785779267E-03 2.9219891783379514E-03 + 2.9402837311561358E-03 2.9586889016843883E-03 2.9772053585890761E-03 + 2.9958337745752068E-03 3.0145748264107644E-03 3.0334291949511861E-03 + 3.0523975651639839E-03 3.0714806261535181E-03 3.0906790711859133E-03 + 3.1099935977141266E-03 3.1294249074031639E-03 3.1489737061554503E-03 + 3.1686407041363490E-03 3.1884266157998298E-03 3.2083321599142979E-03 + 3.2283580595885756E-03 3.2485050422980245E-03 3.2687738399108527E-03 + 3.2891651887145493E-03 3.3096798294424933E-03 3.3303185073007193E-03 + 3.3510819719948393E-03 3.3719709777571233E-03 3.3929862833737513E-03 + 3.4141286522122115E-03 3.4353988522488853E-03 3.4567976560967691E-03 + 3.4783258410333770E-03 3.4999841890288163E-03 3.5217734867740115E-03 + 3.5436945257091130E-03 3.5657481020520639E-03 3.5879350168273451E-03 + 3.6102560758948811E-03 3.6327120899791311E-03 3.6553038746983423E-03 + 3.6780322505939821E-03 3.7008980431603431E-03 3.7239020828743301E-03 + 3.7470452052254066E-03 3.7703282507457526E-03 3.7937520650405607E-03 + 3.8173174988185431E-03 3.8410254079226081E-03 3.8648766533607138E-03 + 3.8888721013369222E-03 3.9130126232826091E-03 3.9372990958878983E-03 + 3.9617324011332385E-03 3.9863134263211997E-03 4.0110430641084535E-03 + 4.0359222125379195E-03 4.0609517750711394E-03 4.0861326606208091E-03 + 4.1114657835835218E-03 4.1369520638727050E-03 4.1625924269517341E-03 + 4.1883878038672809E-03 4.2143391312828076E-03 4.2404473515123041E-03 + 4.2667134125542010E-03 4.2931382681254812E-03 4.3197228776960138E-03 + 4.3464682065230695E-03 4.3733752256860476E-03 4.4004449121214113E-03 + 4.4276782486578261E-03 4.4550762240515010E-03 4.4826398330217523E-03 + 4.5103700762867561E-03 4.5382679605995343E-03 4.5663344987841303E-03 + 4.5945707097720242E-03 4.6229776186387326E-03 4.6515562566406439E-03 + 4.6803076612520686E-03 4.7092328762025010E-03 4.7383329515141058E-03 + 4.7676089435394172E-03 4.7970619149992752E-03 4.8266929350209596E-03 + 4.8565030791765801E-03 4.8864934295216626E-03 4.9166650746339784E-03 + 4.9470191096525982E-03 4.9775566363171701E-03 5.0082787630074347E-03 + 5.0391866047829730E-03 5.0702812834231680E-03 5.1015639274674352E-03 + 5.1330356722556567E-03 5.1646976599688628E-03 5.1965510396701576E-03 + 5.2285969673458782E-03 5.2608366059469927E-03 5.2932711254307391E-03 + 5.3259017028025281E-03 5.3587295221580473E-03 5.3917557747256550E-03 + 5.4249816589089965E-03 5.4584083803298758E-03 5.4920371518713774E-03 + 5.5258691937212362E-03 5.5599057334154607E-03 5.5941480058822228E-03 + 5.6285972534859674E-03 5.6632547260718306E-03 5.6981216810102599E-03 + 5.7331993832419473E-03 5.7684891053229690E-03 5.8039921274702436E-03 + 5.8397097376071908E-03 5.8756432314097254E-03 5.9117939123524629E-03 + 5.9481630917551983E-03 5.9847520888296904E-03 6.0215622307266629E-03 + 6.0585948525831495E-03 6.0958512975700140E-03 6.1333329169398539E-03 + 6.1710410700750755E-03 6.2089771245363431E-03 6.2471424561112189E-03 + 6.2855384488631656E-03 6.3241664951807454E-03 6.3630279958271927E-03 + 6.4021243599901821E-03 6.4414570053319591E-03 6.4810273580397145E-03 + 6.5208368528762361E-03 6.5608869332309146E-03 6.6011790511709542E-03 + 6.6417146674929619E-03 6.6824952517747557E-03 6.7235222824275397E-03 + 6.7647972467483044E-03 6.8063216409726020E-03 6.8480969703275446E-03 + 6.8901247490851828E-03 6.9324065006161114E-03 6.9749437574434612E-03 + 7.0177380612971027E-03 7.0607909631682552E-03 7.1041040233643261E-03 + 7.1476788115641234E-03 7.1915169068733414E-03 7.2356198978803391E-03 + 7.2799893827123355E-03 7.3246269690917772E-03 7.3695342743931710E-03 + 7.4147129257000986E-03 7.4601645598626814E-03 7.5058908235552616E-03 + 7.5518933733344932E-03 7.5981738756976678E-03 7.6447340071414960E-03 + 7.6915754542210618E-03 7.7386999136092507E-03 7.7861090921563991E-03 + 7.8338047069503921E-03 7.8817884853769424E-03 7.9300621651803762E-03 + 7.9786274945246385E-03 8.0274862320546606E-03 8.0766401469581292E-03 + 8.1260910190275055E-03 8.1758406387224848E-03 8.2258908072327056E-03 + 8.2762433365408932E-03 8.3269000494862900E-03 8.3778627798284950E-03 + 8.4291333723115550E-03 8.4807136827285620E-03 8.5326055779864299E-03 + 8.5848109361711979E-03 8.6373316466135507E-03 8.6901696099547874E-03 + 8.7433267382131391E-03 8.7968049548503725E-03 8.8506061948388851E-03 + 8.9047324047290561E-03 8.9591855427170394E-03 9.0139675787128479E-03 + 9.0690804944089133E-03 9.1245262833488886E-03 9.1803069509969679E-03 + 9.2364245148074276E-03 9.2928810042946820E-03 9.3496784611036155E-03 + 9.4068189390803681E-03 9.4643045043434140E-03 9.5221372353551433E-03 + 9.5803192229937072E-03 9.6388525706253038E-03 9.6977393941768564E-03 + 9.7569818222090644E-03 9.8165819959898509E-03 9.8765420695681692E-03 + 9.9368642098482691E-03 9.9975505966642623E-03 1.0058603422855181E-02 + 1.0120024894340350E-02 1.0181817230195215E-02 1.0243982662727512E-02 + 1.0306523437553916E-02 1.0369441813676973E-02 1.0432740063562597E-02 + 1.0496420473217763E-02 1.0560485342268834E-02 1.0624936984040094E-02 + 1.0689777725632803E-02 1.0755009908004652E-02 1.0820635886049540E-02 + 1.0886658028677922E-02 1.0953078718897363E-02 1.1019900353893724E-02 + 1.1087125345112562E-02 1.1154756118341115E-02 1.1222795113790552E-02 + 1.1291244786178781E-02 1.1360107604813539E-02 1.1429386053676053E-02 + 1.1499082631504955E-02 1.1569199851880776E-02 1.1639740243310708E-02 + 1.1710706349313968E-02 1.1782100728507421E-02 1.1853925954691685E-02 + 1.1926184616937742E-02 1.1998879319673830E-02 1.2072012682772904E-02 + 1.2145587341640417E-02 1.2219605947302613E-02 1.2294071166495148E-02 + 1.2368985681752291E-02 1.2444352191496392E-02 1.2520173410127941E-02 + 1.2596452068115882E-02 1.2673190912088565E-02 1.2750392704924922E-02 + 1.2828060225846274E-02 1.2906196270508425E-02 1.2984803651094232E-02 + 1.3063885196406692E-02 1.3143443751962306E-02 1.3223482180085084E-02 + 1.3304003360000743E-02 1.3385010187931595E-02 1.3466505577191647E-02 + 1.3548492458282340E-02 1.3630973778988528E-02 1.3713952504475088E-02 + 1.3797431617383777E-02 1.3881414117930721E-02 1.3965903024004137E-02 + 1.4050901371262711E-02 1.4136412213234219E-02 1.4222438621414675E-02 + 1.4308983685367965E-02 1.4396050512825760E-02 1.4483642229788086E-02 + 1.4571761980624084E-02 1.4660412928173442E-02 1.4749598253848046E-02 + 1.4839321157734269E-02 1.4929584858695487E-02 1.5020392594475239E-02 + 1.5111747621800583E-02 1.5203653216486169E-02 1.5296112673538425E-02 + 1.5389129307260465E-02 1.5482706451357181E-02 1.5576847459040947E-02 + 1.5671555703137673E-02 1.5766834576193173E-02 1.5862687490580230E-02 + 1.5959117878605766E-02 1.6056129192618711E-02 1.6153724905118030E-02 + 1.6251908508861421E-02 1.6350683516974197E-02 1.6450053463058792E-02 + 1.6550021901304449E-02 1.6650592406597556E-02 1.6751768574632186E-02 + 1.6853554022021190E-02 1.6955952386407541E-02 1.7058967326576299E-02 + 1.7162602522566666E-02 1.7266861675784749E-02 1.7371748509116512E-02 + 1.7477266767041130E-02 1.7583420215744865E-02 1.7690212643235129E-02 + 1.7797647859455128E-02 1.7905729696398660E-02 1.8014462008225544E-02 + 1.8123848671377119E-02 1.8233893584692417E-02 1.8344600669524393E-02 + 1.8455973869856826E-02 1.8568017152421217E-02 1.8680734506814418E-02 + 1.8794129945616227E-02 1.8908207504507633E-02 1.9022971242389268E-02 + 1.9138425241500039E-02 1.9254573607536431E-02 1.9371420469771750E-02 + 1.9488969981175983E-02 1.9607226318535762E-02 1.9726193682574753E-02 + 1.9845876298074230E-02 1.9966278413994135E-02 2.0087404303594084E-02 + 2.0209258264555083E-02 2.0331844619101074E-02 2.0455167714121147E-02 + 2.0579231921291644E-02 2.0704041637198838E-02 2.0829601283461622E-02 + 2.0955915306854471E-02 2.1082988179430818E-02 2.1210824398646303E-02 + 2.1339428487482642E-02 2.1468804994571301E-02 2.1598958494317713E-02 + 2.1729893587025335E-02 2.1861614899020235E-02 2.1994127082775549E-02 + 2.2127434817036284E-02 2.2261542806944125E-02 2.2396455784162526E-02 + 2.2532178507001777E-02 2.2668715760544321E-02 2.2806072356770020E-02 + 2.2944253134681725E-02 2.3083262960430700E-02 2.3223106727442228E-02 + 2.3363789356541362E-02 2.3505315796078424E-02 2.3647691022054988E-02 + 2.3790920038249369E-02 2.3935007876342580E-02 2.4079959596043917E-02 + 2.4225780285216800E-02 2.4372475060004322E-02 2.4520049064955023E-02 + 2.4668507473148280E-02 2.4817855486319984E-02 2.4968098334987684E-02 + 2.5119241278576069E-02 2.5271289605541935E-02 2.5424248633499260E-02 + 2.5578123709344019E-02 2.5732920209378698E-02 2.5888643539436925E-02 + 2.6045299135007454E-02 2.6202892461358356E-02 2.6361429013660512E-02 + 2.6520914317111264E-02 2.6681353927057339E-02 2.6842753429117842E-02 + 2.7005118439306561E-02 2.7168454604154259E-02 2.7332767600830195E-02 + 2.7498063137263613E-02 2.7664346952264499E-02 2.7831624815644086E-02 + 2.7999902528334789E-02 2.8169185922509575E-02 2.8339480861701009E-02 + 2.8510793240919464E-02 2.8683128986771049E-02 2.8856494057574580E-02 + 2.9030894443478370E-02 2.9206336166575794E-02 2.9382825281020701E-02 + 2.9560367873141723E-02 2.9738970061556042E-02 2.9918637997282178E-02 + 3.0099377863852275E-02 3.0281195877423096E-02 3.0464098286886596E-02 + 3.0648091373979256E-02 3.0833181453390566E-02 3.1019374872870601E-02 + 3.1206678013336434E-02 3.1395097288977679E-02 3.1584639147360614E-02 + 3.1775310069531715E-02 3.1967116570119351E-02 3.2160065197434889E-02 + 3.2354162533572026E-02 3.2549415194505306E-02 3.2745829830186826E-02 + 3.2943413124642058E-02 3.3142171796063762E-02 3.3342112596904866E-02 + 3.3543242313969449E-02 3.3745567768502516E-02 3.3949095816277947E-02 + 3.4153833347684764E-02 3.4359787287811916E-02 3.4566964596530997E-02 + 3.4775372268577562E-02 3.4985017333630054E-02 3.5195906856387411E-02 + 3.5408047936644128E-02 3.5621447709363811E-02 3.5836113344750190E-02 + 3.6052052048316442E-02 3.6269271060951791E-02 3.6487777658986427E-02 + 3.6707579154253586E-02 3.6928682894149682E-02 3.7151096261691510E-02 + 3.7374826675571432E-02 3.7599881590209674E-02 3.7826268495803964E-02 + 3.8053994918376632E-02 3.8283068419818732E-02 3.8513496597931504E-02 + 3.8745287086464540E-02 3.8978447555151501E-02 3.9212985709742028E-02 + 3.9448909292031209E-02 3.9686226079885180E-02 3.9924943887263892E-02 + 4.0165070564239985E-02 4.0406613997014743E-02 4.0649582107929710E-02 + 4.0893982855475436E-02 4.1139824234295887E-02 4.1387114275189166E-02 + 4.1635861045104444E-02 4.1886072647134474E-02 4.2137757220504543E-02 + 4.2390922940556394E-02 4.2645578018728675E-02 4.2901730702532163E-02 + 4.3159389275521105E-02 4.3418562057259219E-02 4.3679257403281706E-02 + 4.3941483705051576E-02 4.4205249389911737E-02 4.4470562921031263E-02 + 4.4737432797347133E-02 4.5005867553500112E-02 4.5275875759765272E-02 + 4.5547466021977220E-02 4.5820646981449074E-02 4.6095427314886320E-02 + 4.6371815734293741E-02 4.6649820986877255E-02 4.6929451854938672E-02 + 4.7210717155764616E-02 4.7493625741508498E-02 4.7778186499066191E-02 + 4.8064408349944528E-02 4.8352300250123215E-02 4.8641871189909126E-02 + 4.8933130193783869E-02 4.9226086320243348E-02 4.9520748661630212E-02 + 4.9817126343958254E-02 5.0115228526728769E-02 5.0415064402739296E-02 + 5.0716643197883333E-02 5.1019974170942443E-02 5.1325066613368810E-02 + 5.1631929849059864E-02 5.1940573234123016E-02 5.2251006156632078E-02 + 5.2563238036373347E-02 5.2877278324582937E-02 5.3193136503673660E-02 + 5.3510822086952355E-02 5.3830344618326614E-02 5.4151713672001396E-02 + 5.4474938852164687E-02 5.4800029792662637E-02 5.5126996156663298E-02 + 5.5455847636308918E-02 5.5786593952357313E-02 5.6119244853810472E-02 + 5.6453810117532151E-02 5.6790299547852120E-02 5.7128722976158883E-02 + 5.7469090260478639E-02 5.7811411285042011E-02 5.8155695959836676E-02 + 5.8501954220147145E-02 5.8850196026079812E-02 5.9200431362074875E-02 + 5.9552670236402594E-02 5.9906922680645930E-02 6.0263198749167475E-02 + 6.0621508518560949E-02 6.0981862087087835E-02 6.1344269574096971E-02 + 6.1708741119428805E-02 6.2075286882802304E-02 6.2443917043185623E-02 + 6.2814641798148635E-02 6.3187471363198883E-02 6.3562415971098421E-02 + 6.3939485871163451E-02 6.4318691328544286E-02 6.4700042623486956E-02 + 6.5083550050574993E-02 6.5469223917951666E-02 6.5857074546521802E-02 + 6.6247112269132838E-02 6.6639347429735679E-02 6.7033790382523009E-02 + 6.7430451491046803E-02 6.7829341127312648E-02 6.8230469670852500E-02 + 6.8633847507772988E-02 6.9039485029781467E-02 6.9447392633186902E-02 + 6.9857580717877260E-02 7.0270059686270925E-02 7.0684839942243879E-02 + 7.1101931890029529E-02 7.1521345933093602E-02 7.1943092472980766E-02 + 7.2367181908134792E-02 7.2793624632690443E-02 7.3222431035236207E-02 + 7.3653611497549343E-02 7.4087176393299994E-02 7.4523136086726102E-02 + 7.4961500931276834E-02 7.5402281268225596E-02 7.5845487425250088E-02 + 7.6291129714980935E-02 7.6739218433516304E-02 7.7189763858903596E-02 + 7.7642776249585890E-02 7.8098265842814554E-02 7.8556242853024802E-02 + 7.9016717470176384E-02 7.9479699858055974E-02 7.9945200152543014E-02 + 8.0413228459836367E-02 8.0883794854642047E-02 8.1356909378321671E-02 + 8.1832582036999627E-02 8.2310822799629521E-02 8.2791641596018206E-02 + 8.3275048314807198E-02 8.3761052801410441E-02 8.4249664855907735E-02 + 8.4740894230892580E-02 8.5234750629274825E-02 8.5731243702035220E-02 + 8.6230383045933653E-02 8.6732178201167409E-02 8.7236638648981124E-02 + 8.7743773809225656E-02 8.8253593037865799E-02 8.8766105624436362E-02 + 8.9281320789443896E-02 8.9799247681716043E-02 9.0319895375694015E-02 + 9.0843272868670749E-02 9.1369389077970417E-02 9.1898252838071404E-02 + 9.2429872897668894E-02 9.2964257916678339E-02 9.3501416463176959E-02 + 9.4041357010283821E-02 9.4584087932975361E-02 9.5129617504837963E-02 + 9.5677953894753517E-02 9.6229105163518874E-02 9.6783079260397573E-02 + 9.7339884019601863E-02 9.7899527156705204E-02 9.8462016264982091E-02 + 9.9027358811676722E-02 9.9595562134195806E-02 1.0016663343622786E-01 + 1.0074057978378434E-01 1.0131740810116421E-01 1.0189712516683806E-01 + 1.0247973760925304E-01 1.0306525190255418E-01 1.0365367436222406E-01 + 1.0424501114063624E-01 1.0483926822252357E-01 1.0543645142035862E-01 + 1.0603656636964431E-01 1.0663961852411517E-01 1.0724561315084524E-01 + 1.0785455532526367E-01 1.0846644992607356E-01 1.0908130163007576E-01 + 1.0969911490689264E-01 1.1031989401359354E-01 1.1094364298921701E-01 + 1.1157036564919136E-01 1.1220006557964871E-01 1.1283274613163399E-01 + 1.1346841041520410E-01 1.1410706129341844E-01 1.1474870137621575E-01 + 1.1539333301417962E-01 1.1604095829218650E-01 1.1669157902293743E-01 + 1.1734519674037064E-01 1.1800181269295271E-01 1.1866142783684748E-01 + 1.1932404282895936E-01 1.1998965801985112E-01 1.2065827344653125E-01 + 1.2132988882511261E-01 1.2200450354333678E-01 1.2268211665296508E-01 + 1.2336272686203159E-01 1.2404633252695878E-01 1.2473293164453111E-01 + 1.2542252184372657E-01 1.2611510037740273E-01 1.2681066411383543E-01 + 1.2750920952810915E-01 1.2821073269335434E-01 1.2891522927183294E-01 + 1.2962269450586594E-01 1.3033312320860488E-01 1.3104650975464138E-01 + 1.3176284807045538E-01 1.3248213162469730E-01 1.3320435341830453E-01 + 1.3392950597444678E-01 1.3465758132830141E-01 1.3538857101665325E-01 + 1.3612246606731940E-01 1.3685925698839427E-01 1.3759893375731369E-01 + 1.3834148580973665E-01 1.3908690202823945E-01 1.3983517073082369E-01 + 1.4058627965923190E-01 1.4134021596707214E-01 1.4209696620774506E-01 + 1.4285651632217589E-01 1.4361885162634372E-01 1.4438395679861096E-01 + 1.4515181586684564E-01 1.4592241219533825E-01 1.4669572847150791E-01 + 1.4747174669239804E-01 1.4825044815095537E-01 1.4903181342209554E-01 + 1.4981582234854698E-01 1.5060245402647512E-01 1.5139168679088300E-01 + 1.5218349820078550E-01 1.5297786502415653E-01 1.5377476322264480E-01 + 1.5457416793605885E-01 1.5537605346661557E-01 1.5618039326295438E-01 + 1.5698715990391049E-01 1.5779632508204891E-01 1.5860785958695525E-01 + 1.5942173328828188E-01 1.6023791511854701E-01 1.6105637305568693E-01 + 1.6187707410535579E-01 1.6269998428297563E-01 1.6352506859553159E-01 + 1.6435229102311255E-01 1.6518161450019483E-01 1.6601300089666826E-01 + 1.6684641099860276E-01 1.6768180448875417E-01 1.6851913992680867E-01 + 1.6935837472936391E-01 1.7019946514964732E-01 1.7104236625696881E-01 + 1.7188703191590934E-01 1.7273341476524245E-01 1.7358146619659129E-01 + 1.7443113633281690E-01 1.7528237400614169E-01 1.7613512673600543E-01 + 1.7698934070665431E-01 1.7784496074446413E-01 1.7870193029499798E-01 + 1.7956019139979840E-01 1.8041968467291528E-01 1.8128034927717115E-01 + 1.8214212290016357E-01 1.8300494173000836E-01 1.8386874043082291E-01 + 1.8473345211795428E-01 1.8559900833295020E-01 1.8646533901828150E-01 + 1.8733237249181167E-01 1.8820003542102307E-01 1.8906825279699763E-01 + 1.8993694790815946E-01 1.9080604231378212E-01 1.9167545581726253E-01 + 1.9254510643917142E-01 1.9341491039007844E-01 1.9428478204316288E-01 + 1.9515463390661272E-01 1.9602437659581887E-01 1.9689391880537019E-01 + 1.9776316728085891E-01 1.9863202679049835E-01 1.9950040009656780E-01 + 2.0036818792668565E-01 2.0123528894492565E-01 2.0210159972277947E-01 + 2.0296701470998119E-01 2.0383142620519965E-01 2.0469472432661007E-01 + 2.0555679698235910E-01 2.0641752984093026E-01 2.0727680630142792E-01 + 2.0813450746378709E-01 2.0899051209892777E-01 2.0984469661886473E-01 + 2.1069693504678988E-01 2.1154709898714094E-01 2.1239505759567581E-01 + 2.1324067754956522E-01 2.1408382301752726E-01 2.1492435563001663E-01 + 2.1576213444949324E-01 2.1659701594078512E-01 2.1742885394157271E-01 + 2.1825749963301116E-01 2.1908280151051440E-01 2.1990460535473005E-01 + 2.2072275420271920E-01 2.2153708831937863E-01 2.2234744516912142E-01 + 2.2315365938785078E-01 2.2395556275525111E-01 2.2475298416742728E-01 + 2.2554574960992282E-01 2.2633368213114846E-01 2.2711660181625135E-01 + 2.2789432576146343E-01 2.2866666804895713E-01 2.2943343972225114E-01 + 2.3019444876219780E-01 2.3094950006359277E-01 2.3169839541244733E-01 + 2.3244093346395986E-01 2.3317690972123484E-01 2.3390611651478349E-01 + 2.3462834298286064E-01 2.3534337505267325E-01 2.3605099542251540E-01 + 2.3675098354487276E-01 2.3744311561054812E-01 2.3812716453385815E-01 + 2.3880289993895354E-01 2.3947008814731538E-01 2.4012849216648224E-01 + 2.4077787168006634E-01 2.4141798303911088E-01 2.4204857925485318E-01 + 2.4266940999295011E-01 2.4328022156922671E-01 2.4388075694701308E-01 + 2.4447075573613131E-01 2.4504995419359998E-01 2.4561808522611908E-01 + 2.4617487839440788E-01 2.4672005991946117E-01 2.4725335269079685E-01 + 2.4777447627676394E-01 2.4828314693698667E-01 2.4877907763701712E-01 + 2.4926197806527195E-01 2.4973155465232857E-01 2.5018751059266076E-01 + 2.5062954586889030E-01 2.5105735727863371E-01 2.5147063846402679E-01 + 2.5186907994400598E-01 2.5225236914943111E-01 2.5262019046113060E-01 + 2.5297222525095459E-01 2.5330815192591977E-01 2.5362764597553183E-01 + 2.5393038002237001E-01 2.5421602387602121E-01 2.5448424459045116E-01 + 2.5473470652489638E-01 2.5496707140836855E-01 2.5518099840785469E-01 + 2.5537614420030358E-01 2.5555216304848422E-01 2.5570870688080388E-01 + 2.5584542537517335E-01 2.5596196604700544E-01 2.5605797434143313E-01 + 2.5613309372983273E-01 2.5618696581073797E-01 2.5621923041522726E-01 + 2.5622952571686941E-01 2.5621748834630753E-01 2.5618275351056452E-01 + 2.5612495511714639E-01 2.5604372590302543E-01 2.5593869756857512E-01 + 2.5580950091653476E-01 2.5565576599607515E-01 2.5547712225203573E-01 + 2.5527319867940229E-01 2.5504371237928886E-01 2.5478873546212122E-01 + 2.5450843263480305E-01 2.5420297310681844E-01 2.5387253049602954E-01 + 2.5351728274072782E-01 2.5313741201758166E-01 2.5273310466506654E-01 + 2.5230455111189481E-01 2.5185194580994325E-01 2.5137548717113795E-01 + 2.5087537750777067E-01 2.5035182297571340E-01 2.4980503352002059E-01 + 2.4923522282242055E-01 2.4864260825022727E-01 2.4802741080624199E-01 + 2.4738985507922653E-01 2.4673016919458479E-01 2.4604858476490735E-01 + 2.4534533684008381E-01 2.4462066385670625E-01 2.4387480758653338E-01 + 2.4310801308381141E-01 2.4232052863128470E-01 2.4151260568474794E-01 + 2.4068449881603285E-01 2.3983646565433650E-01 2.3896876682583620E-01 + 2.3808166589153937E-01 2.3717542928335381E-01 2.3625032623837738E-01 + 2.3530662873141409E-01 2.3434461140574939E-01 2.3336455150222321E-01 + 2.3236672878665610E-01 2.3135142547568305E-01 2.3031892616107114E-01 + 2.2926951773258969E-01 2.2820348929952258E-01 2.2712113211089793E-01 + 2.2602273947452969E-01 2.2490860667495732E-01 2.2377903089037834E-01 + 2.2263431110865897E-01 2.2147474804251649E-01 2.2030064404396496E-01 + 2.1911230301810444E-01 2.1791003033634596E-01 2.1669413274914709E-01 + 2.1546491829834641E-01 2.1422269622916060E-01 2.1296777690192581E-01 + 2.1170047170364215E-01 2.1042109295939318E-01 2.0912995384369076E-01 + 2.0782736829180451E-01 2.0651365091112203E-01 2.0518911689259026E-01 + 2.0385408192227092E-01 2.0250886209305108E-01 2.0115377381653640E-01 + 1.9978913373515875E-01 1.9841525863451298E-01 1.9703246535594529E-01 + 1.9564107070940928E-01 1.9424139138659241E-01 1.9283374387432545E-01 + 1.9141844436827304E-01 1.8999580868690946E-01 1.8856615218577014E-01 + 1.8712978967197721E-01 1.8568703531902658E-01 1.8423820258183071E-01 + 1.8278360411199870E-01 1.8132355167334366E-01 1.7985835605760059E-01 + 1.7838832700034254E-01 1.7691377309707534E-01 1.7543500171949789E-01 + 1.7395231893191601E-01 1.7246602940779274E-01 1.7097643634642673E-01 + 1.6948384138974726E-01 1.6798854453922429E-01 1.6649084407288345E-01 + 1.6499103646243232E-01 1.6348941629049757E-01 1.6198627616798739E-01 + 1.6048190665158579E-01 1.5897659616140708E-01 1.5747063089882263E-01 + 1.5596429476449991E-01 1.5445786927669097E-01 1.5295163348980137E-01 + 1.5144586391330822E-01 1.4994083443106881E-01 1.4843681622108115E-01 + 1.4693407767577626E-01 1.4543288432291368E-01 1.4393349874715899E-01 + 1.4243618051244053E-01 1.4094118608517167E-01 1.3944876875844614E-01 + 1.3795917857730880E-01 1.3647266226521423E-01 1.3498946315178692E-01 + 1.3350982110200596E-01 1.3203397244693169E-01 1.3056214991610154E-01 + 1.2909458257172315E-01 1.2763149574478888E-01 1.2617311097324205E-01 + 1.2471964594232064E-01 1.2327131442720746E-01 1.2182832623810604E-01 + 1.2039088716786685E-01 1.1895919894227869E-01 1.1753345917314048E-01 + 1.1611386131421721E-01 1.1470059462018445E-01 1.1329384410865320E-01 + 1.1189379052536647E-01 1.1050061031264245E-01 1.0911447558113693E-01 + 1.0773555408498990E-01 1.0636400920040380E-01 1.0499999990770145E-01 + 1.0364368077689327E-01 1.0229520195678089E-01 1.0095470916760602E-01 + 9.9622343697250870E-02 9.8298242400979813E-02 9.6982537704707855E-02 + 9.5675357611765419E-02 9.4376825713124016E-02 9.3087061201024404E-02 + 9.1806178886001469E-02 9.0534289217142364E-02 8.9271498305603464E-02 + 8.8017907951252736E-02 8.6773615672363205E-02 8.5538714738257055E-02 + 8.4313294204800479E-02 8.3097438952642391E-02 8.1891229728079912E-02 + 8.0694743186436435E-02 7.9508051937826951E-02 7.8331224595188292E-02 + 7.7164325824442367E-02 7.6007416396664140E-02 7.4860553242119932E-02 + 7.3723789506044635E-02 7.2597174606020762E-02 7.1480754290826953E-02 + 7.0374570700620837E-02 6.9278662428324478E-02 6.8193064582078800E-02 + 6.7117808848638105E-02 6.6052923557577733E-02 6.4998433746187786E-02 + 6.3954361224932130E-02 6.2920724643352327E-02 6.1897539556302804E-02 + 6.0884818490402989E-02 5.9882571010600232E-02 5.8890803786738700E-02 + 5.7909520660036157E-02 5.6938722709371670E-02 5.5978408317295551E-02 + 5.5028573235674207E-02 5.4089210650890680E-02 5.3160311248522080E-02 + 5.2241863277423792E-02 5.1333852613153576E-02 5.0436262820672130E-02 + 4.9549075216263540E-02 4.8672268928621573E-02 4.7805820959054848E-02 + 4.6949706240764652E-02 4.6103897697157295E-02 4.5268366299154081E-02 + 4.4443081121468712E-02 4.3628009397823089E-02 4.2823116575078576E-02 + 4.2028366366261956E-02 4.1243720802470643E-02 4.0469140283642402E-02 + 3.9704583628180593E-02 3.8950008121427508E-02 3.8205369562982795E-02 + 3.7470622312864500E-02 3.6745719336514923E-02 3.6030612248656051E-02 + 3.5325251355999530E-02 3.4629585698821304E-02 3.3943563091410604E-02 + 3.3267130161407636E-02 3.2600232388043250E-02 3.1942814139298219E-02 + 3.1294818707999973E-02 3.0656188346877260E-02 3.0026864302593412E-02 + 2.9406786848781716E-02 2.8795895318106508E-02 2.8194128133376274E-02 + 2.7601422837734441E-02 2.7017716123955871E-02 2.6442943862878508E-02 + 2.5877041130998590E-02 2.5319942237261174E-02 2.4771580749076393E-02 + 2.4231889517594640E-02 2.3700800702272342E-02 2.3178245794762544E-02 + 2.2664155642163564E-02 2.2158460469660916E-02 2.1661089902596225E-02 + 2.1171972987998732E-02 2.0691038215614303E-02 2.0218213538467526E-02 + 1.9753426392991717E-02 1.9296603718762115E-02 1.8847671977867773E-02 + 1.8406557173956038E-02 1.7973184870984472E-02 1.7547480211713661E-02 + 1.7129367935974565E-02 1.6718772398742147E-02 1.6315617588047514E-02 + 1.5919827142758757E-02 1.5531324370260594E-02 1.5150032264060717E-02 + 1.4775873521350440E-02 1.4408770560545157E-02 1.4048645538829431E-02 + 1.3695420369728963E-02 1.3349016740730942E-02 1.3009356130972479E-02 + 1.2676359829014333E-02 1.2349948950716253E-02 1.2030044457227643E-02 + 1.1716567173105997E-02 1.1409437804572780E-02 1.1108576957915263E-02 + 1.0813905158040262E-02 1.0525342867184163E-02 1.0242810503781175E-02 + 9.9662284614902164E-03 9.6955171283786019E-03 9.4305969062591592E-03 + 9.1713882301750049E-03 8.9178115880248956E-03 8.6697875403203666E-03 + 8.4272367400636539E-03 8.1900799527345469E-03 7.9582380763722708E-03 + 7.7316321617375222E-03 7.5101834325381183E-03 7.2938133057007465E-03 + 7.0824434116701909E-03 6.8759956147164542E-03 6.6743920332290995E-03 + 6.4775550599777123E-03 6.2854073823164439E-03 6.0978720023103757E-03 + 5.9148722567605640E-03 5.7363318371048220E-03 5.5621748091706641E-03 + 5.3923256327571148E-03 5.2267091810216928E-03 5.0652507596492605E-03 + 4.9078761257796517E-03 4.7545115066709659E-03 4.6050836180761834E-03 + 4.4595196823108731E-03 4.3177474459906266E-03 4.1796951974171015E-03 + 4.0452917835925115E-03 3.9144666268429822E-03 3.7871497410321016E-03 + 3.6632717473466369E-03 3.5427638896374973E-03 3.4255580492997431E-03 + 3.3115867596766311E-03 3.2007832199733789E-03 3.0930813086675903E-03 + 2.9884155964042419E-03 2.8867213583640698E-03 2.7879345860954224E-03 + 2.6919919988005435E-03 2.5988310540684938E-03 2.5083899580477507E-03 + 2.4206076750528079E-03 2.3354239365999743E-03 2.2527792498687428E-03 + 2.1726149055859602E-03 2.0948729853312040E-03 2.0194963682625871E-03 + 1.9464287372633312E-03 1.8756145845102237E-03 1.8069992164660787E-03 + 1.7405287582992124E-03 1.6761501577336796E-03 1.6138111883349678E-03 + 1.5534604522365197E-03 1.4950473823133002E-03 1.4385222438092419E-03 + 1.3838361354261651E-03 1.3309409898823582E-03 1.2797895739496824E-03 + 1.2303354879785347E-03 1.1825331649206548E-03 1.1363378688601794E-03 + 1.0917056930638826E-03 1.0485935575619064E-03 1.0069592062707392E-03 + 9.6676120367052804E-04 9.2795893104917623E-04 8.9051258232592195E-04 + 8.5438315946739893E-04 8.1953246750941366E-04 7.8592310919783275E-04 + 7.5351847926219135E-04 7.2228275833573739E-04 6.9218090653577736E-04 + 6.6317865671822076E-04 6.3524250742033096E-04 6.0833971550568080E-04 + 5.8243828852535618E-04 5.5750697680938570E-04 5.3351526530238361E-04 + 5.1043336515729180E-04 4.8823220510106142E-04 4.6688342258596711E-04 + 4.4635935474016570E-04 4.2663302913095692E-04 4.0767815435403370E-04 + 3.8946911046186370E-04 3.7198093924413266E-04 3.5518933437300206E-04 + 3.3907063142569381E-04 3.2360179779671158E-04 3.0876042251175696E-04 + 2.9452470595516141E-04 2.8087344952238465E-04 2.6778604520887815E-04 + 2.5524246514632801E-04 2.4322325109702350E-04 2.3170950391679393E-04 + 2.2068287299667862E-04 2.1012554569319628E-04 2.0002023675676811E-04 + 1.9035017776755910E-04 1.8109910658768401E-04 1.7225125683842591E-04 + 1.6379134741079053E-04 1.5570457201742415E-04 1.4797658879359783E-04 + 1.4059350995466086E-04 1.3354189151704339E-04 1.2680872308958971E-04 + 1.2038141774168842E-04 1.1424780195436552E-04 1.0839610566019686E-04 + 1.0281495237760104E-04 9.7493349444777351E-05 9.2420678358253778E-05 + 8.7586685220727759E-05 8.2981471302591853E-05 7.8595483721260572E-05 + 7.4419506242132409E-05 7.0444650204756659E-05 6.6662345577503997E-05 + 6.3064332143783890E-05 5.9642650822592673E-05 5.6389635125931467E-05 + 5.3297902755387834E-05 5.0360347339940751E-05 4.7570130316814686E-05 + 4.4920672956987251E-05 4.2405648536737576E-05 4.0018974656407830E-05 + 3.7754805707349706E-05 3.5607525487827060E-05 3.3571739968456010E-05 + 3.1642270207577348E-05 2.9814145416779671E-05 2.8082596176618963E-05 + 2.6443047802416804E-05 2.4891113859859176E-05 2.3422589829968664E-05 + 2.2033446922875522E-05 2.0719826039676659E-05 1.9478031881537231E-05 + 1.8304527205065780E-05 1.7195927222872938E-05 1.6148994148111687E-05 + 1.5160631881688768E-05 1.4227880840736768E-05 1.3347912926841150E-05 + 1.2518026632426417E-05 1.1735642283623034E-05 1.0998297417857971E-05 + 1.0303642294339950E-05 9.6494355355424968E-06 9.0335398977268942E-06 + 8.4539181684897641E-06 7.9086291892687617E-06 7.3958240006923175E-06 + 6.9137421086178405E-06 6.4607078686646557E-06 6.0351269870152625E-06 + 5.6354831352291080E-06 5.2603346767888200E-06 4.9083115030780846E-06 + 4.5781119764732929E-06 4.2684999782184324E-06 3.9783020587429251E-06 + 3.7064046880764297E-06 3.4517516040116199E-06 3.2133412556667861E-06 + 2.9902243401034286E-06 2.7815014296606691E-06 2.5863206876772794E-06 + 2.4038756702842567E-06 2.2334032119649818E-06 2.0741813925969437E-06 + 1.9255275837077297E-06 1.7867965716992356E-06 1.6573787558170284E-06 + 1.5366984186666412E-06 1.4242120671053282E-06 1.3194068413659690E-06 + 1.2217989902996843E-06 1.1309324106547506E-06 1.0463772483419570E-06 + 9.6772855967007465E-07 8.9460503056985720E-07 8.2664775186024587E-07 + 7.6351904864853166E-07 7.0490136199418478E-07 6.5049618097233884E-07 + 6.0002302337244669E-07 5.5321846403586275E-07 5.0983520247671277E-07 + 4.6964116385298722E-07 4.3241888696070862E-07 3.9796383601438520E-07 + 3.6608546249858738E-07 3.3660420447193890E-07 3.0935284911511581E-07 + 2.8417443050227488E-07 2.6092213720016506E-07 2.3945871938400960E-07 + 2.1965592631851145E-07 2.0139397290398243E-07 1.8456103403377255E-07 + 1.6905276554931394E-07 1.5477185061871478E-07 1.4162757040383254E-07 + 1.2953539791913987E-07 1.1841661402340908E-07 1.0819794452230042E-07 + 9.8811217396293024E-08 9.0193039204036501E-08 8.2284489746125169E-08 + 7.5030834108465175E-08 6.8381251237830221E-08 6.2288578234850169E-08 + 5.6709069581562658E-08 5.1602170551753830E-08 4.6930304082628873E-08 + 4.2658670415870207E-08 3.8755058844872230E-08 3.5189670932870717E-08 + 3.1934954593824822E-08 2.8965448454251893E-08 2.6257635939771701E-08 + 2.3789808554885267E-08 2.1541937848500136E-08 1.9495555580929608E-08 + 1.7633641630539557E-08 1.5940519199906352E-08 1.4401756902288321E-08 + 1.3004077329415618E-08 1.1735271721076391E-08 1.0584120375735247E-08 + 9.5403184594733963E-09 8.5944068879042882E-09 7.7377079724044416E-09 + 6.9622655380234562E-09 6.2607892358120240E-09 5.6266027870490388E-09 + 5.0535959109727786E-09 4.5361797011418619E-09 4.0692452284864190E-09 + 3.6481251614731490E-09 3.2685582056168765E-09 2.9266561758411893E-09 + 2.6188735259391275E-09 2.3419791696267910E-09 2.0930304374354957E-09 + 1.8693490229671797E-09 1.6684987808599371E-09 1.4882652471913674E-09 + 1.3266367610031657E-09 1.1817870731764014E-09 1.0520593360391421E-09 + 9.3595137386147159E-10 8.3210214080263927E-10 7.3927927893602824E-10 + 6.5636769470404703E-10 5.8235907756141136E-10 5.1634228966523335E-10 + 4.5749456027765112E-10 4.0507342307443793E-10 3.5840933881414246E-10 + 3.1689894982922080E-10 2.7999891656560505E-10 2.4722028993186942E-10 + 2.1812337653511638E-10 1.9231305698886652E-10 1.6943452038934430E-10 + 1.4916938078081031E-10 1.3123214397798541E-10 1.1536699549362845E-10 + 1.0134488254118612E-10 8.8960865154911281E-11 7.8031713401388980E-11 + 6.8393729455140903E-11 5.9900774984602494E-11 5.2422485850713692E-11 + 4.5842657565677558E-11 4.0057786300875261E-11 3.4975751476882039E-11 + 3.0514627121124860E-11 2.6601610245749156E-11 2.3172055485239699E-11 + 2.0168606145481395E-11 1.7540412658205301E-11 1.5242430211820493E-11 + 1.3234788045911426E-11 1.1482223556360054E-11 9.9535749650705288E-12 + 8.6213268663484156E-12 7.4612034746047144E-12 6.4518048685055336E-12 + 5.5742819580521459E-12 4.8120462962493339E-12 4.1505112187104718E-12 + 3.5768611252957930E-12 3.0798460200563528E-12 2.6495987015785619E-12 + 2.2774722473590636E-12 1.9558956650156890E-12 1.6782457917508402E-12 + 1.4387337131986049E-12 1.2323041451561843E-12 1.0545463781628871E-12 + 9.0161552678031340E-13 7.7016295398033263E-13 6.5727485740622256E-13 + 5.6041810949257664E-13 4.7739253848635411E-13 4.0628892320325624E-13 + 3.4545205170853845E-13 2.9344826379088838E-13 2.4903695980230334E-13 + 2.1114561480851387E-13 1.7884788762287147E-13 1.5134445972155264E-13 + 1.2794627975351514E-13 1.0805992581635106E-13 9.1174830281334954E-14 + 7.6852141093526031E-14 6.4715019488312380E-14 5.4440197265962001E-14 + 4.5750637433895447E-14 3.8409160419777314E-14 3.2212914410420097E-14 + 2.6988582893266876E-14 2.2588235360102224E-14 1.8885738549500239E-14 + 1.5773655711400356E-14 1.3160570314846185E-14 1.0968778515083478E-14 + 9.1323016629487386E-15 7.5951762802751006E-15 6.3099843319039363E-15 + 5.2365913802997071E-15 4.3410643865948626E-15 3.5947445882117482E-15 + 2.9734540970527315E-15 2.4568176762963635E-15 2.0276836150375438E-15 + 1.6716297701627244E-15 1.3765427211226106E-15 1.1322596186625260E-15 + 9.3026373237210866E-16 7.6342594006128473E-16 6.2578547740980666E-16 + 5.1236419935903103E-16 4.1900941323001142E-16 3.4226104331360602E-16 + 2.7923949163410290E-16 2.2755108212264856E-16 1.8520842521268320E-16 + 1.5056342863059244E-16 1.2225101792039369E-16 9.9141897461297213E-17 + 8.0302961484568089E-17 6.4964229796424351E-17 5.2490937960694338E-17 + 4.2360466007033974E-17 3.4143943828733092E-17 2.7486839269515587E-17 + 2.2099485858965524E-17 1.7745262819162372E-17 1.4230567894645037E-17 + + + -3.0682401775533608E-09 4.9734386057640319E-05 9.9769912605902496E-05 + 1.5010753244739576E-04 2.0074991391508631E-04 2.5169837263211957E-04 + 3.0295491920165248E-04 3.5452150881703658E-04 4.0639990714788664E-04 + 4.5859201607021804E-04 5.1109978874498035E-04 5.6392502342807584E-04 + 6.1706974455485498E-04 6.7053584866465297E-04 7.2432525121801780E-04 + 7.7843999011998732E-04 8.3288193981442078E-04 8.8765310189462844E-04 + 9.4275550805953431E-04 9.9819113432282158E-04 1.0539619574540839E-03 + 1.1100700734653669E-03 1.1665174806185852E-03 1.2233062423099485E-03 + 1.2804384326199143E-03 1.3379161157008243E-03 1.3957413784896149E-03 + 1.4539163322643031E-03 1.5124430734693229E-03 1.5713237519646187E-03 + 1.6305605084082930E-03 1.6901554605546661E-03 1.7501108118671590E-03 + 1.8104287370243896E-03 1.8711114084136267E-03 1.9321610595084816E-03 + 1.9935798874418553E-03 2.0553701305447464E-03 2.1175340461493954E-03 + 2.1800738765295519E-03 2.2429919047049084E-03 2.3062904219689115E-03 + 2.3699717118572852E-03 2.4340381086510056E-03 2.4984919278683237E-03 + 2.5633355282509273E-03 2.6285712437686690E-03 2.6942014631962771E-03 + 2.7602285710599380E-03 2.8266549516427625E-03 2.8934830366916298E-03 + 2.9607152553388695E-03 3.0283540373734086E-03 3.0964018552506224E-03 + 3.1648611901797727E-03 3.2337344940356521E-03 3.3030243113020739E-03 + 3.3727331436795810E-03 3.4428635211949847E-03 3.5134179859661685E-03 + 3.5843991305064115E-03 3.6558095132621675E-03 3.7276517286383031E-03 + 3.7999283997313051E-03 3.8726421508300949E-03 3.9457956153632120E-03 + 4.0193914613749441E-03 4.0934323630263877E-03 4.1679210106602563E-03 + 4.2428601165371751E-03 4.3182523964263352E-03 4.3941005944806971E-03 + 4.4704074707577852E-03 4.5471757913776922E-03 4.6244083560708230E-03 + 4.7021079669251958E-03 4.7802774452743281E-03 4.8589196440956342E-03 + 4.9380374126406475E-03 5.0176336248637160E-03 5.0977111772999694E-03 + 5.1782729831296196E-03 5.2593219718280902E-03 5.3408610837035386E-03 + 5.4228932835154661E-03 5.5054215605262937E-03 5.5884489030825464E-03 + 5.6719783396156371E-03 5.7560129044447921E-03 5.8405556434204409E-03 + 5.9256096406553015E-03 6.0111779844948757E-03 6.0972637816525616E-03 + 6.1838701679040068E-03 6.2710002833544854E-03 6.3586572995506727E-03 + 6.4468444024119876E-03 6.5355647971087833E-03 6.6248217124650977E-03 + 6.7146183848135485E-03 6.8049580847103575E-03 6.8958440964328642E-03 + 6.9872797221709948E-03 7.0792682810445259E-03 7.1718131203493242E-03 + 7.2649176072713617E-03 7.3585851202207907E-03 7.4528190715351383E-03 + 7.5476228774131546E-03 7.6429999918275699E-03 7.7389538759130433E-03 + 7.8354880220679150E-03 7.9326059379186097E-03 8.0303111490114525E-03 + 8.1286072170091532E-03 8.2274977056204339E-03 8.3269862129167656E-03 + 8.4270763548178369E-03 8.5277717718131186E-03 8.6290761218283385E-03 + 8.7309930858739254E-03 8.8335263716903117E-03 8.9366797057225649E-03 + 9.0404568360112625E-03 9.1448615362793358E-03 9.2498976016270051E-03 + 9.3555688465938713E-03 9.4618791182496092E-03 9.5688322779872610E-03 + 9.6764322123414712E-03 9.7846828354214797E-03 9.8935880788127498E-03 + 1.0003151904996913E-02 1.0113378289775142E-02 1.0224271247998887E-02 + 1.0335834807918120E-02 1.0448073020680111E-02 1.0560989969781009E-02 + 1.0674589760855228E-02 1.0788876523281699E-02 1.0903854407269247E-02 + 1.1019527596354196E-02 1.1135900293568918E-02 1.1252976726375338E-02 + 1.1370761155364768E-02 1.1489257860003859E-02 1.1608471146098745E-02 + 1.1728405350991912E-02 1.1849064828981183E-02 1.1970453969113302E-02 + 1.2092577184463545E-02 1.2215438911360224E-02 1.2339043617869199E-02 + 1.2463395794892460E-02 1.2588499968081280E-02 1.2714360679752386E-02 + 1.2840982504897538E-02 1.2968370047428124E-02 1.3096527940153049E-02 + 1.3225460840071836E-02 1.3355173430926523E-02 1.3485670430022500E-02 + 1.3616956581674444E-02 1.3749036659280537E-02 1.3881915458919581E-02 + 1.4015597813933278E-02 1.4150088584258213E-02 1.4285392658078317E-02 + 1.4421514953292877E-02 1.4558460416027015E-02 1.4696234028778692E-02 + 1.4834840795718196E-02 1.4974285755759100E-02 1.5114573978734743E-02 + 1.5255710564343718E-02 1.5397700641058294E-02 1.5540549372383347E-02 + 1.5684261949334356E-02 1.5828843595170283E-02 1.5974299566393971E-02 + 1.6120635151507245E-02 1.6267855668490674E-02 1.6415966467668693E-02 + 1.6564972934732490E-02 1.6714880484617133E-02 1.6865694568015344E-02 + 1.7017420664752921E-02 1.7170064291570947E-02 1.7323630997318002E-02 + 1.7478126362544012E-02 1.7633556003994071E-02 1.7789925571936469E-02 + 1.7947240750162321E-02 1.8105507255885181E-02 1.8264730842872178E-02 + 1.8424917299548357E-02 1.8586072448549609E-02 1.8748202145476973E-02 + 1.8911312286181269E-02 1.9075408799061087E-02 1.9240497648878419E-02 + 1.9406584835407508E-02 1.9573676397222427E-02 1.9741778409716689E-02 + 1.9910896979388141E-02 2.0081038255790697E-02 2.0252208424112485E-02 + 2.0424413703638268E-02 2.0597660357000586E-02 2.0771954680011577E-02 + 2.0947303008975366E-02 2.1123711717623415E-02 2.1301187217896991E-02 + 2.1479735961212127E-02 2.1659364436125178E-02 2.1840079175587435E-02 + 2.2021886745339676E-02 2.2204793755873108E-02 2.2388806855302382E-02 + 2.2573932730848921E-02 2.2760178114294954E-02 2.2947549773821678E-02 + 2.3136054520137780E-02 2.3325699207569467E-02 2.3516490727520069E-02 + 2.3708436015800510E-02 2.3901542049043746E-02 2.4095815847060567E-02 + 2.4291264471355246E-02 2.4487895026905612E-02 2.4685714660734600E-02 + 2.4884730562875920E-02 2.5084949969061701E-02 2.5286380155957036E-02 + 2.5489028445508214E-02 2.5692902203450631E-02 2.5898008841678710E-02 + 2.6104355816247531E-02 2.6311950624835850E-02 2.6520800816428186E-02 + 2.6730913981481707E-02 2.6942297755961894E-02 2.7154959825567662E-02 + 2.7368907920510704E-02 2.7584149817022511E-02 2.7800693339398296E-02 + 2.8018546357726940E-02 2.8237716792057332E-02 2.8458212608182386E-02 + 2.8680041822201612E-02 2.8903212496106688E-02 2.9127732743641537E-02 + 2.9353610724268262E-02 2.9580854650290506E-02 2.9809472779256607E-02 + 3.0039473424110362E-02 3.0270864944017647E-02 3.0503655749865344E-02 + 3.0737854303012912E-02 3.0973469117021174E-02 3.1210508756792460E-02 + 3.1448981837832332E-02 3.1688897028395446E-02 3.1930263049710819E-02 + 3.2173088675014096E-02 3.2417382731404813E-02 3.2663154098179027E-02 + 3.2910411708998819E-02 3.3159164551589938E-02 3.3409421667922309E-02 + 3.3661192153844624E-02 3.3914485163573954E-02 3.4169309901795238E-02 + 3.4425675630679997E-02 3.4683591671200470E-02 3.4943067397482055E-02 + 3.5204112240660744E-02 3.5466735689574730E-02 3.5730947290716283E-02 + 3.5996756649167856E-02 3.6264173425257666E-02 3.6533207339533767E-02 + 3.6803868171506153E-02 3.7076165760300504E-02 3.7350110001883534E-02 + 3.7625710854695862E-02 3.7902978337767700E-02 3.8181922527529319E-02 + 3.8462553564967722E-02 3.8744881650648752E-02 3.9028917045684910E-02 + 3.9314670075430089E-02 3.9602151127407441E-02 3.9891370649850405E-02 + 4.0182339156706118E-02 4.0475067223262502E-02 4.0769565491412384E-02 + 4.1065844665165489E-02 4.1363915514030326E-02 4.1663788872043694E-02 + 4.1965475640062026E-02 4.2268986783802968E-02 4.2574333335616749E-02 + 4.2881526394919961E-02 4.3190577127199120E-02 4.3501496766154051E-02 + 4.3814296614509071E-02 4.4128988040801252E-02 4.4445582484191365E-02 + 4.4764091453778590E-02 4.5084526524932597E-02 4.5406899346765388E-02 + 4.5731221635834186E-02 4.6057505181960438E-02 4.6385761844320375E-02 + 4.6716003556489298E-02 4.7048242320054300E-02 4.7382490212286472E-02 + 4.7718759383416041E-02 4.8057062056235278E-02 4.8397410526520586E-02 + 4.8739817167278938E-02 4.9084294422875110E-02 4.9430854816065135E-02 + 4.9779510942760043E-02 5.0130275476659526E-02 5.0483161167896827E-02 + 5.0838180842886986E-02 5.1195347406373666E-02 5.1554673841113514E-02 + 5.1916173207390080E-02 5.2279858646108561E-02 5.2645743375806624E-02 + 5.3013840697115837E-02 5.3384163989011253E-02 5.3756726712185642E-02 + 5.4131542408978259E-02 5.4508624703363803E-02 5.4887987301857878E-02 + 5.5269643993460189E-02 5.5653608651105586E-02 5.6039895231174849E-02 + 5.6428517774625167E-02 5.6819490407165323E-02 5.7212827340406947E-02 + 5.7608542871129501E-02 5.8006651382937174E-02 5.8407167346954302E-02 + 5.8810105320798875E-02 5.9215479950587853E-02 5.9623305971525646E-02 + 6.0033598206914340E-02 6.0446371570126431E-02 6.0861641064737841E-02 + 6.1279421785329524E-02 6.1699728917609817E-02 6.2122577739191824E-02 + 6.2547983618940886E-02 6.2975962020210607E-02 6.3406528498837142E-02 + 6.3839698705970241E-02 6.4275488385743443E-02 6.4713913378559029E-02 + 6.5154989619775644E-02 6.5598733142757493E-02 6.6045160075754672E-02 + 6.6494286645794723E-02 6.6946129177960445E-02 6.7400704095574748E-02 + 6.7858027920850134E-02 6.8318117277855403E-02 6.8780988888658606E-02 + 6.9246659578754977E-02 6.9715146273139808E-02 7.0186466001348813E-02 + 7.0660635893944390E-02 7.1137673186500980E-02 7.1617595217635360E-02 + 7.2100419431749024E-02 7.2586163379098886E-02 7.3074844713871559E-02 + 7.3566481199436470E-02 7.4061090705765886E-02 7.4558691209974576E-02 + 7.5059300799023426E-02 7.5562937668765678E-02 7.6069620125446769E-02 + 7.6579366584870232E-02 7.7092195575813968E-02 7.7608125738016065E-02 + 7.8127175823963321E-02 7.8649364699584515E-02 7.9174711345770130E-02 + 7.9703234856951063E-02 8.0234954443178394E-02 8.0769889431696273E-02 + 8.1308059265286683E-02 8.1849483505202214E-02 8.2394181830525590E-02 + 8.2942174039243713E-02 8.3493480049337709E-02 8.4048119899643517E-02 + 8.4606113748974143E-02 8.5167481878969747E-02 8.5732244693572907E-02 + 8.6300422719815875E-02 8.6872036609468573E-02 8.7447107139034030E-02 + 8.8025655210310055E-02 8.8607701851412299E-02 8.9193268217704333E-02 + 8.9782375593311634E-02 9.0375045389006245E-02 9.0971299147310170E-02 + 9.1571158539667311E-02 9.2174645368563915E-02 9.2781781568913382E-02 + 9.3392589207794655E-02 9.4007090485846670E-02 9.4625307737600875E-02 + 9.5247263433276552E-02 9.5872980178589015E-02 9.6502480715874875E-02 + 9.7135787925289541E-02 9.7772924823998270E-02 9.8413914570376682E-02 + 9.9058780461676307E-02 9.9707545935941791E-02 1.0036023457293887E-01 + 1.0101687009560389E-01 1.0167747636959754E-01 1.0234207740533093E-01 + 1.0301069735763176E-01 1.0368336052835984E-01 1.0436009136582088E-01 + 1.0504091446587251E-01 1.0572585457368658E-01 1.0641493658308741E-01 + 1.0710818553962279E-01 1.0780562663924204E-01 1.0850728523067620E-01 + 1.0921318681584834E-01 1.0992335705073226E-01 1.1063782174687865E-01 + 1.1135660687084693E-01 1.1207973854723392E-01 1.1280724305831159E-01 + 1.1353914684458316E-01 1.1427547650709896E-01 1.1501625880775050E-01 + 1.1576152066972815E-01 1.1651128917940584E-01 1.1726559158664829E-01 + 1.1802445530612331E-01 1.1878790791809252E-01 1.1955597716999786E-01 + 1.2032869097639094E-01 1.2110607742089860E-01 1.2188816475735913E-01 + 1.2267498140933708E-01 1.2346655597322267E-01 1.2426291721763573E-01 + 1.2506409408550090E-01 1.2587011569475548E-01 1.2668101133859819E-01 + 1.2749681048831341E-01 1.2831754279239552E-01 1.2914323807976480E-01 + 1.2997392635821470E-01 1.3080963781794763E-01 1.3165040283114940E-01 + 1.3249625195408948E-01 1.3334721592737933E-01 1.3420332567712970E-01 + 1.3506461231721359E-01 1.3593110714900392E-01 1.3680284166303514E-01 + 1.3767984754039084E-01 1.3856215665377528E-01 1.3944980106822846E-01 + 1.4034281304274721E-01 1.4124122503142753E-01 1.4214506968438223E-01 + 1.4305437984895752E-01 1.4396918857141705E-01 1.4488952909743727E-01 + 1.4581543487354387E-01 1.4674693954902915E-01 1.4768407697567157E-01 + 1.4862688121079976E-01 1.4957538651659752E-01 1.5052962736334466E-01 + 1.5148963842870414E-01 1.5245545460075285E-01 1.5342711097776510E-01 + 1.5440464287087571E-01 1.5538808580358182E-01 1.5637747551495193E-01 + 1.5737284795985199E-01 1.5837423931019340E-01 1.5938168595706706E-01 + 1.6039522451043639E-01 1.6141489180280486E-01 1.6244072488832556E-01 + 1.6347276104551547E-01 1.6451103777791276E-01 1.6555559281622714E-01 + 1.6660646411834509E-01 1.6766368987247257E-01 1.6872730849683057E-01 + 1.6979735864212947E-01 1.7087387919262714E-01 1.7195690926790552E-01 + 1.7304648822294905E-01 1.7414265565186490E-01 1.7524545138687439E-01 + 1.7635491550165588E-01 1.7747108831169270E-01 1.7859401037620934E-01 + 1.7972372249947988E-01 1.8086026573227570E-01 1.8200368137336581E-01 + 1.8315401097146547E-01 1.8431129632592380E-01 1.8547557948856233E-01 + 1.8664690276559620E-01 1.8782530871894459E-01 1.8901084016744951E-01 + 1.9020354018871058E-01 1.9140345212061968E-01 1.9261061956305833E-01 + 1.9382508637897591E-01 1.9504689669666986E-01 1.9627609491107476E-01 + 1.9751272568508885E-01 1.9875683395147117E-01 2.0000846491460336E-01 + 2.0126766405198016E-01 2.0253447711559969E-01 2.0380895013424455E-01 + 2.0509112941443489E-01 2.0638106154252392E-01 2.0767879338632003E-01 + 2.0898437209689255E-01 2.1029784510993713E-01 2.1161926014776486E-01 + 2.1294866522102376E-01 2.1428610863015718E-01 2.1563163896791773E-01 + 2.1698530511995820E-01 2.1834715626750209E-01 2.1971724188904590E-01 + 2.2109561176143264E-01 2.2248231596268245E-01 2.2387740487314936E-01 + 2.2528092917704659E-01 2.2669293986538766E-01 2.2811348823684191E-01 + 2.2954262589976182E-01 2.3098040477462248E-01 2.3242687709501719E-01 + 2.3388209541014943E-01 2.3534611258676877E-01 2.3681898181070962E-01 + 2.3830075658894709E-01 2.3979149075188660E-01 2.4129123845466460E-01 + 2.4280005417983069E-01 2.4431799273844182E-01 2.4584510927294947E-01 + 2.4738145925868524E-01 2.4892709850581060E-01 2.5048208316167758E-01 + 2.5204646971258077E-01 2.5362031498595700E-01 2.5520367615213180E-01 + 2.5679661072690951E-01 2.5839917657318706E-01 2.6001143190336307E-01 + 2.6163343528102645E-01 2.6326524562356535E-01 2.6490692220396156E-01 + 2.6655852465321667E-01 2.6822011296186293E-01 2.6989174748321421E-01 + 2.7157348893452005E-01 2.7326539839948644E-01 2.7496753733094287E-01 + 2.7667996755215024E-01 2.7840275126002212E-01 2.8013595102665140E-01 + 2.8187962980174208E-01 2.8363385091525450E-01 2.8539867807897007E-01 + 2.8717417538942852E-01 2.8896040733014150E-01 2.9075743877356292E-01 + 2.9256533498362702E-01 2.9438416161845155E-01 2.9621398473191080E-01 + 2.9805487077686105E-01 2.9990688660702808E-01 3.0177009947950995E-01 + 3.0364457705734316E-01 3.0553038741156863E-01 3.0742759902432187E-01 + 3.0933628079073294E-01 3.1125650202149813E-01 3.1318833244571687E-01 + 3.1513184221290047E-01 3.1708710189600808E-01 3.1905418249361456E-01 + 3.2103315543260147E-01 3.2302409257069142E-01 3.2502706619906929E-01 + 3.2704214904499307E-01 3.2906941427438324E-01 3.3110893549454312E-01 + 3.3316078675642496E-01 3.3522504255808289E-01 3.3730177784634535E-01 + 3.3939106802031349E-01 3.4149298893370955E-01 3.4360761689766411E-01 + 3.4573502868353978E-01 3.4787530152552726E-01 3.5002851312337524E-01 + 3.5219474164566056E-01 3.5437406573201791E-01 3.5656656449606683E-01 + 3.5877231752867250E-01 3.6099140490041159E-01 3.6322390716428554E-01 + 3.6546990535928581E-01 3.6772948101250696E-01 3.7000271614260721E-01 + 3.7228969326268152E-01 3.7459049538295519E-01 3.7690520601393668E-01 + 3.7923390916951671E-01 3.8157668936970279E-01 3.8393363164402661E-01 + 3.8630482153415280E-01 3.8869034509726852E-01 3.9109028890908937E-01 + 3.9350474006670350E-01 3.9593378619220598E-01 3.9837751543544486E-01 + 4.0083601647708594E-01 4.0330937853213339E-01 4.0579769135300808E-01 + 4.0830104523257116E-01 4.1081953100745533E-01 4.1335324006148338E-01 + 4.1590226432863425E-01 4.1846669629662897E-01 4.2104662900993828E-01 + 4.2364215607333955E-01 4.2625337165503374E-01 4.2888037049036526E-01 + 4.3152324788471275E-01 4.3418209971735766E-01 4.3685702244462249E-01 + 4.3954811310339836E-01 4.4225546931442189E-01 4.4497918928626495E-01 + 4.4771937181803584E-01 4.5047611630380602E-01 4.5324952273524372E-01 + 4.5603969170605446E-01 4.5884672441473706E-01 4.6167072266881160E-01 + 4.6451178888807021E-01 4.6737002610849615E-01 4.7024553798555463E-01 + 4.7313842879822893E-01 4.7604880345259010E-01 4.7897676748543244E-01 + 4.8192242706825378E-01 4.8488588901064078E-01 4.8786726076456560E-01 + 4.9086665042769306E-01 4.9388416674752939E-01 4.9691991912513578E-01 + 4.9997401761919325E-01 5.0304657294951238E-01 5.0613769650142248E-01 + 5.0924750032934196E-01 5.1237609716096932E-01 5.1552360040105483E-01 + 5.1869012413570925E-01 5.2187578313618643E-01 5.2508069286288395E-01 + 5.2830496946967787E-01 5.3154872980789747E-01 5.3481209143031672E-01 + 5.3809517259551942E-01 5.4139809227194235E-01 5.4472097014201470E-01 + 5.4806392660643000E-01 5.5142708278859098E-01 5.5481056053832001E-01 + 5.5821448243683824E-01 5.6163897180045519E-01 5.6508415268540180E-01 + 5.6855014989175245E-01 5.7203708896805749E-01 5.7554509621581496E-01 + 5.7907429869356242E-01 5.8262482422172313E-01 5.8619680138671104E-01 + 5.8979035954578685E-01 5.9340562883132308E-01 5.9704274015550596E-01 + 6.0070182521467752E-01 6.0438301649426573E-01 6.0808644727317684E-01 + 6.1181225162839603E-01 6.1556056443993767E-01 6.1933152139531700E-01 + 6.2312525899422166E-01 6.2694191455346648E-01 6.3078162621162515E-01 + 6.3464453293385481E-01 6.3853077451681484E-01 6.4244049159330374E-01 + 6.4637382563729451E-01 6.5033091896887840E-01 6.5431191475902362E-01 + 6.5831695703464843E-01 6.6234619068360623E-01 6.6639976145956459E-01 + 6.7047781598718115E-01 6.7458050176708406E-01 6.7870796718101567E-01 + 6.8286036149679952E-01 6.8703783487362990E-01 6.9124053836716259E-01 + 6.9546862393466002E-01 6.9972224444036002E-01 7.0400155366053963E-01 + 7.0830670628884251E-01 7.1263785794164580E-01 7.1699516516317441E-01 + 7.2137878543122291E-01 7.2578887716198348E-01 7.3022559971604240E-01 + 7.3468911340334520E-01 7.3917957948894364E-01 7.4369716019820609E-01 + 7.4824201872258345E-01 7.5281431922499020E-01 7.5741422684542759E-01 + 7.6204190770654345E-01 7.6669752891919707E-01 7.7138125858823225E-01 + 7.7609326581802396E-01 7.8083372071820178E-01 7.8560279440937486E-01 + 7.9040065902896417E-01 7.9522748773674379E-01 8.0008345472105558E-01 + 8.0496873520403334E-01 8.0988350544811050E-01 8.1482794276147374E-01 + 8.1980222550405668E-01 8.2480653309352259E-01 8.2984104601126385E-01 + 8.3490594580833011E-01 8.4000141511138449E-01 8.4512763762888199E-01 + 8.5028479815704761E-01 8.5547308258594634E-01 8.6069267790569914E-01 + 8.6594377221245467E-01 8.7122655471484767E-01 8.7654121573988664E-01 + 8.8188794673934812E-01 8.8726694029597297E-01 8.9267839012983152E-01 + 8.9812249110443598E-01 9.0359943923322428E-01 9.0910943168587111E-01 + 9.1465266679461277E-01 9.2022934406069146E-01 9.2583966416075580E-01 + 9.3148382895332993E-01 9.3716204148522420E-01 9.4287450599813061E-01 + 9.4862142793503856E-01 9.5440301394685800E-01 9.6021947189895640E-01 + 9.6607101087763936E-01 9.7195784119694650E-01 9.7788017440520347E-01 + 9.8383822329154969E-01 9.8983220189288668E-01 9.9586232550029907E-01 + 1.0019288106659232E+00 1.0080318752096622E+00 1.0141717382259265E+00 + 1.0203486200904421E+00 1.0265627424669888E+00 1.0328143283142690E+00 + 1.0391036018927344E+00 1.0454307887714684E+00 1.0517961158349440E+00 + 1.0581998112901008E+00 1.0646421046730608E+00 1.0711232268561777E+00 + 1.0776434100549239E+00 1.0842028878348580E+00 1.0908018951185661E+00 + 1.0974406681927147E+00 1.1041194447149172E+00 1.1108384637209541E+00 + 1.1175979656314978E+00 1.1243981922594457E+00 1.1312393868167707E+00 + 1.1381217939216337E+00 1.1450456596054364E+00 1.1520112313199049E+00 + 1.1590187579441940E+00 1.1660684897918743E+00 1.1731606786181712E+00 + 1.1802955776268960E+00 1.1874734414776666E+00 1.1946945262929993E+00 + 1.2019590896653281E+00 1.2092673906642817E+00 1.2166196898435542E+00 + 1.2240162492482243E+00 1.2314573324217133E+00 1.2389432044130104E+00 + 1.2464741317836416E+00 1.2540503826149190E+00 1.2616722265148119E+00 + 1.2693399346252567E+00 1.2770537796289916E+00 1.2848140357568536E+00 + 1.2926209787945770E+00 1.3004748860900026E+00 1.3083760365600490E+00 + 1.3163247106976164E+00 1.3243211905786998E+00 1.3323657598692371E+00 + 1.3404587038321134E+00 1.3486003093340500E+00 1.3567908648524636E+00 + 1.3650306604823670E+00 1.3733199879431470E+00 1.3816591405853997E+00 + 1.3900484133976925E+00 1.3984881030132841E+00 1.4069785077167520E+00 + 1.4155199274507648E+00 1.4241126638225801E+00 1.4327570201106306E+00 + 1.4414533012710502E+00 1.4502018139441475E+00 1.4590028664607837E+00 + 1.4678567688486945E+00 1.4767638328389314E+00 1.4857243718718902E+00 + 1.4947387011035977E+00 1.5038071374118520E+00 1.5129299994021195E+00 + 1.5221076074135935E+00 1.5313402835250574E+00 1.5406283515606514E+00 + 1.5499721370956003E+00 1.5593719674618935E+00 1.5688281717536683E+00 + 1.5783410808328786E+00 1.5879110273343930E+00 1.5975383456713894E+00 + 1.6072233720404767E+00 1.6169664444265770E+00 1.6267679026079704E+00 + 1.6366280881610373E+00 1.6465473444648704E+00 1.6565260167057618E+00 + 1.6665644518817100E+00 1.6766629988065964E+00 1.6868220081142007E+00 + 1.6970418322622975E+00 1.7073228255363433E+00 1.7176653440531056E+00 + 1.7280697457641332E+00 1.7385363904590958E+00 1.7490656397687474E+00 + 1.7596578571679673E+00 1.7703134079783451E+00 1.7810326593708752E+00 + 1.7918159803680218E+00 1.8026637418460121E+00 1.8135763165366137E+00 + 1.8245540790287127E+00 1.8355974057698634E+00 1.8467066750672383E+00 + 1.8578822670886557E+00 1.8691245638631810E+00 1.8804339492814421E+00 + 1.8918108090957302E+00 1.9032555309197419E+00 1.9147685042281308E+00 + 1.9263501203555655E+00 1.9380007724956858E+00 1.9497208556995667E+00 + 1.9615107668738412E+00 1.9733709047786132E+00 1.9853016700248360E+00 + 1.9973034650714621E+00 2.0093766942220088E+00 2.0215217636210250E+00 + 2.0337390812497649E+00 2.0460290569218076E+00 2.0583921022779745E+00 + 2.0708286307808939E+00 2.0833390577090993E+00 2.0959238001506706E+00 + 2.1085832769962578E+00 2.1213179089317498E+00 2.1341281184303154E+00 + 2.1470143297439086E+00 2.1599769688942865E+00 2.1730164636633069E+00 + 2.1861332435828280E+00 2.1993277399237345E+00 2.2126003856846275E+00 + 2.2259516155796559E+00 2.2393818660256697E+00 2.2528915751288530E+00 + 2.2664811826704674E+00 2.2801511300919799E+00 2.2939018604793482E+00 + 2.3077338185466050E+00 2.3216474506185740E+00 2.3356432046128450E+00 + 2.3497215300207581E+00 2.3638828778877254E+00 2.3781277007924371E+00 + 2.3924564528252974E+00 2.4068695895657850E+00 2.4213675680589950E+00 + 2.4359508467909818E+00 2.4506198856631722E+00 2.4653751459657607E+00 + 2.4802170903498766E+00 2.4951461827986843E+00 2.5101628885973257E+00 + 2.5252676743016931E+00 2.5404610077058836E+00 2.5557433578084674E+00 + 2.5711151947774038E+00 2.5865769899136843E+00 2.6021292156134819E+00 + 2.6177723453290151E+00 2.6335068535278499E+00 2.6493332156507776E+00 + 2.6652519080680994E+00 2.6812634080343276E+00 2.6973681936413256E+00 + 2.7135667437696771E+00 2.7298595380384105E+00 2.7462470567529120E+00 + 2.7627297808510161E+00 2.7793081918472624E+00 2.7959827717752028E+00 + 2.8127540031277531E+00 2.8296223687954449E+00 2.8465883520027200E+00 + 2.8636524362419635E+00 2.8808151052053810E+00 2.8980768427146435E+00 + 2.9154381326481151E+00 2.9328994588658217E+00 2.9504613051317992E+00 + 2.9681241550341340E+00 2.9858884919022008E+00 3.0037547987213387E+00 + 3.0217235580448554E+00 3.0397952519030809E+00 3.0579703617096823E+00 + 3.0762493681649006E+00 3.0946327511558493E+00 3.1131209896535745E+00 + 3.1317145616070530E+00 3.1504139438338030E+00 3.1692196119071161E+00 + 3.1881320400398567E+00 3.2071517009647295E+00 3.2262790658107732E+00 + 3.2455146039762788E+00 3.2648587829976923E+00 3.2843120684146609E+00 + 3.3038749236310303E+00 3.3235478097715938E+00 3.3433311855346979E+00 + 3.3632255070403465E+00 3.3832312276738943E+00 3.4033487979251005E+00 + 3.4235786652224465E+00 3.4439212737625877E+00 3.4643770643348990E+00 + 3.4849464741408176E+00 3.5056299366080244E+00 3.5264278811992118E+00 + 3.5473407332154032E+00 3.5683689135935484E+00 3.5895128386983925E+00 + 3.6107729201084071E+00 3.6321495643956005E+00 3.6536431728991396E+00 + 3.6752541414925464E+00 3.6969828603443644E+00 3.7188297136721040E+00 + 3.7407950794893048E+00 3.7628793293455813E+00 3.7850828280594073E+00 + 3.8074059334435129E+00 3.8298489960227236E+00 3.8524123587440116E+00 + 3.8750963566786432E+00 3.8979013167160761E+00 3.9208275572496758E+00 + 3.9438753878537702E+00 3.9670451089519974E+00 3.9903370114767394E+00 + 4.0137513765193598E+00 4.0372884749710654E+00 4.0609485671542114E+00 + 4.0847319024437478E+00 4.1086387188786411E+00 4.1326692427630078E+00 + 4.1568236882567469E+00 4.1811022569554144E+00 4.2055051374590802E+00 + 4.2300325049299792E+00 4.2546845206386106E+00 4.2794613314981325E+00 + 4.3043630695866808E+00 4.3293898516574743E+00 4.3545417786362943E+00 + 4.3798189351061696E+00 4.4052213887789611E+00 4.4307491899535556E+00 + 4.4564023709603573E+00 4.4821809455918471E+00 4.5080849085188568E+00 + 4.5341142346922805E+00 4.5602688787299801E+00 4.5865487742884143E+00 + 4.6129538334189029E+00 4.6394839459080135E+00 4.6661389786019063E+00 + 4.6929187747141370E+00 4.7198231531169084E+00 4.7468519076149693E+00 + 4.7740048062023313E+00 4.8012815903011168E+00 4.8286819739823494E+00 + 4.8562056431683507E+00 4.8838522548163121E+00 4.9116214360828367E+00 + 4.9395127834689578E+00 4.9675258619454219E+00 4.9956602040577485E+00 + 5.0239153090108877E+00 5.0522906417329381E+00 5.0807856319177302E+00 + 5.1093996730458180E+00 5.1381321213836033E+00 5.1669822949602020E+00 + 5.1959494725216473E+00 5.2250328924622718E+00 5.2542317517326440E+00 + 5.2835452047239988E+00 5.3129723621285665E+00 5.3425122897757049E+00 + 5.3721640074432342E+00 5.4019264876439417E+00 5.4317986543866317E+00 + 5.4617793819116773E+00 5.4918674934005196E+00 5.5220617596590138E+00 + 5.5523608977741379E+00 5.5827635697439844E+00 5.6132683810805215E+00 + 5.6438738793850458E+00 5.6745785528960120E+00 5.7053808290088730E+00 + 5.7362790727679576E+00 5.7672715853298815E+00 5.7983566023985089E+00 + 5.8295322926311304E+00 5.8607967560158256E+00 5.8921480222197200E+00 + 5.9235840489081006E+00 5.9551027200342714E+00 5.9867018441000726E+00 + 6.0183791523868999E+00 6.0501322971573881E+00 6.0819588498275525E+00 + 6.1138562991095622E+00 6.1458220491251048E+00 6.1778534174894775E+00 + 6.2099476333665322E+00 6.2421018354945623E+00 6.2743130701834708E+00 + 6.3065782892833067E+00 6.3388943481245290E+00 6.3712580034303423E+00 + 6.4036659112013989E+00 6.4361146245733920E+00 6.4686005916479266E+00 + 6.5011201532972613E+00 6.5336695409434480E+00 6.5662448743125799E+00 + 6.5988421591648585E+00 6.6314572850011135E+00 6.6640860227468615E+00 + 6.6967240224146192E+00 6.7293668107455069E+00 6.7620097888313220E+00 + 6.7946482297179918E+00 6.8272772759919711E+00 6.8598919373505378E+00 + 6.8924870881577238E+00 6.9250574649871215E+00 6.9575976641533890E+00 + 6.9901021392339828E+00 7.0225651985830817E+00 7.0549810028394662E+00 + 7.0873435624305712E+00 7.1196467350746513E+00 7.1518842232835942E+00 + 7.1840495718685071E+00 7.2161361654508331E+00 7.2481372259815426E+00 + 7.2800458102712433E+00 7.3118548075341785E+00 7.3435569369491231E+00 + 7.3751447452406147E+00 7.4066106042836726E+00 7.4379467087358231E+00 + 7.4691450736999672E+00 7.5001975324221641E+00 7.5310957340282316E+00 + 7.5618311413036636E+00 7.5923950285210102E+00 7.6227784793196669E+00 + 7.6529723846426210E+00 7.6829674407354247E+00 7.7127541472124275E+00 + 7.7423228051957969E+00 7.7716635155330138E+00 7.8007661770985397E+00 + 7.8296204851859743E+00 7.8582159299967049E+00 7.8865417952318912E+00 + 7.9145871567942585E+00 7.9423408816068806E+00 7.9697916265560522E+00 + 7.9969278375658082E+00 8.0237377488116568E+00 8.0502093820816309E+00 + 8.0763305462926951E+00 8.1020888371710384E+00 8.1274716371048363E+00 + 8.1524661151785249E+00 8.1770592273976295E+00 8.2012377171136350E+00 + 8.2249881156585616E+00 8.2482967431990968E+00 8.2711497098205111E+00 + 8.2935329168506193E+00 8.3154320584346006E+00 8.3368326233712633E+00 + 8.3577198972221360E+00 8.3780789647043949E+00 8.3978947123793866E+00 + 8.4171518316482850E+00 8.4358348220669033E+00 8.4539279949917763E+00 + 8.4714154775696873E+00 8.4882812170832693E+00 8.5045089856651348E+00 + 8.5200823853933940E+00 8.5349848537813759E+00 8.5491996696746160E+00 + 8.5627099595680427E+00 8.5754987043568036E+00 8.5875487465335816E+00 + 8.5988427978459807E+00 8.6093634474270022E+00 8.6190931704120164E+00 + 8.6280143370552818E+00 8.6361092223592895E+00 8.6433600162298507E+00 + 8.6497488341699249E+00 8.6552577285247914E+00 8.6598687002913266E+00 + 8.6635637115034445E+00 8.6663246982059619E+00 8.6681335840284621E+00 + 8.6689722943705867E+00 8.6688227712097508E+00 8.6676669885417734E+00 + 8.6654869684644762E+00 8.6622647979137177E+00 8.6579826460608373E+00 + 8.6526227823796820E+00 8.6461675953907893E+00 8.6385996120895836E+00 + 8.6299015180644520E+00 8.6200561783098255E+00 8.6090466587385084E+00 + 8.5968562483961790E+00 8.5834684823803524E+00 8.5688671654645585E+00 + 8.5530363964274994E+00 8.5359605930855302E+00 8.5176245180256238E+00 + 8.4980133050343092E+00 8.4771124862167184E+00 8.4549080197982942E+00 + 8.4313863185998930E+00 8.4065342791754141E+00 8.3803393115992382E+00 + 8.3527893698886082E+00 8.3238729830445841E+00 8.2935792866924167E+00 + 8.2618980553007262E+00 8.2288197349560050E+00 8.1943354766670335E+00 + 8.1584371701711653E+00 8.1211174782117670E+00 8.0823698712538921E+00 + 8.0421886626020314E+00 8.0005690438814128E+00 7.9575071208410080E+00 + 7.9129999494338756E+00 7.8670455721267620E+00 7.8196430543883420E+00 + 7.7707925213015354E+00 7.7204951942424742E+00 7.6687534275647655E+00 + 7.6155707452243364E+00 7.5609518772762474E+00 7.5049027961711934E+00 + 7.4474307527752659E+00 7.3885443120324608E+00 7.3282533881856038E+00 + 7.2665692794663039E+00 7.2035047021608722E+00 7.1390738239538409E+00 + 7.0732922964465859E+00 7.0061772867429850E+00 6.9377475079896804E+00 + 6.8680232487526194E+00 6.7970264011066313E+00 6.7247804873088786E+00 + 6.6513106849215076E+00 6.5766438502424398E+00 6.5008085398974860E+00 + 6.4238350304402898E+00 6.3457553357998311E+00 6.2666032224087083E+00 + 6.1864142218378371E+00 6.1052256407563013E+00 6.0230765680267933E+00 + 5.9400078787400217E+00 5.8560622349823941E+00 5.7712840831237502E+00 + 5.6857196474024700E+00 5.5994169195770835E+00 5.5124256444038018E+00 + 5.4247973006906980E+00 5.3365850776692234E+00 5.2478438464147859E+00 + 5.1586301260379397E+00 5.0690020443587205E+00 4.9790192927667123E+00 + 4.8887430749602334E+00 4.7982360492494047E+00 4.7075622640985939E+00 + 4.6167870865766725E+00 4.5259771233753989E+00 4.4352001340511960E+00 + 4.3445249361394955E+00 4.2540213017886837E+00 4.1637598455580802E+00 + 4.0738119030260576E+00 3.9842493998569171E+00 3.8951447109822799E+00 + 3.8065705095621416E+00 3.7185996054055046E+00 3.6313047725487633E+00 + 3.5447585657151981E+00 3.4590331254089901E+00 3.3741999714351500E+00 + 3.2903297846826027E+00 3.2074921770619782E+00 3.1257554495549549E+00 + 3.0451863384072793E+00 2.9658497495867473E+00 2.8878084817288290E+00 + 2.8111229379109273E+00 2.7358508267295050E+00 2.6620468533077881E+00 + 2.5897624010334828E+00 2.5190452050211318E+00 2.4499390185113441E+00 + 2.3824832736633423E+00 2.3167127384687851E+00 2.2526571718158919E+00 + 2.1903409790668369E+00 2.1297828708781728E+00 2.0709955283988069E+00 + 2.0139852784220009E+00 1.9587517825522083E+00 1.9052877449742547E+00 + 1.8535786439856412E+00 1.8036024930732404E+00 1.7553296379871735E+00 + 1.7087225969887403E+00 1.6637359522280597E+00 1.6203163010435442E+00 + 1.5784022768712080E+00 1.5379246504101010E+00 1.4988065227115068E+00 + 1.4609636229499146E+00 1.4243047247909351E+00 1.3887321965029999E+00 + 1.3541427012647154E+00 1.3204280655047220E+00 1.2874763345774130E+00 + 1.2551730366309359E+00 1.2234026771697413E+00 1.1920504885545766E+00 + 1.1610044605303012E+00 1.1301576798271715E+00 1.0994110089579299E+00 + 1.0686761365370476E+00 1.0378790337904964E+00 1.0069638544154080E+00 + 9.7589731759806841E-01 9.4467361681655260E-01 9.1331990004767905E-01 + 8.8190237017307804E-01 8.5053305773366616E-01 8.1937732170793010E-01 + 7.8860180850828643E-01 7.5817938932080109E-01 7.2803608585350277E-01 + 6.9810687470429278E-01 6.6833607787126514E-01 6.3867740783848637E-01 + 6.0909372119970751E-01 5.7955653967222165E-01 5.5004539767072069E-01 + 5.2054707247268017E-01 4.9105474725182813E-01 4.6156714988524861E-01 + 4.3208770246673694E-01 4.0262370841168277E-01 3.7318559650558608E-01 + 3.4378623453364038E-01 3.1444031946215734E-01 2.8516384656224530E-01 + 2.5597365630117891E-01 2.2688705523560618E-01 1.9792150539796169E-01 + 1.6909437561519686E-01 1.4042274768930860E-01 1.1192327024907030E-01 + 8.3612053341087303E-02 5.5504597250447804E-02 2.7615749554106291E-02 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 3.6856284493937391E-04 2.0833417820940434E-03 3.4821979071954921E-03 + 4.7342296119681406E-03 5.9259509781883334E-03 7.0612917776843405E-03 + 8.1124321593707017E-03 9.1221918009904441E-03 1.0098850919996762E-02 + 1.1048756007825766E-02 1.1977468649635266E-02 1.2887771531420799E-02 + 1.3783077510736151E-02 1.4665409676120617E-02 1.5536491272429958E-02 + 1.6397828381620929E-02 1.7250636102332888E-02 1.8095956006821522E-02 + 1.8934687283417406E-02 1.9767610489430085E-02 2.0595410936324360E-02 + 2.1418695124679771E-02 2.2238003600524508E-02 2.3053821325312189E-02 + 2.3866585981440213E-02 2.4676694712179661E-02 2.5484509652991080E-02 + 2.6290362506617322E-02 2.7094558357763247E-02 2.7897378878209565E-02 + 2.8699085038749669E-02 2.9499919419091573E-02 3.0300108187659165E-02 + 3.1099862808468194E-02 3.1899381520860991E-02 3.2698850629012732E-02 + 3.3498445631163339E-02 3.4298332213032495E-02 3.5098667125509471E-02 + 3.5899598963218093E-02 3.6701268857747632E-02 3.7503811097073701E-02 + 3.8307353680845972E-02 3.9112018819711221E-02 3.9917923385603758E-02 + 4.0725179318908622E-02 4.1533893997558385E-02 4.2344170572411965E-02 + 4.3156108272677074E-02 4.3969802684631507E-02 4.4785346006484025E-02 + 4.5602827281851208E-02 4.6422332614025445E-02 4.7243945362944087E-02 + 4.8067746326549282E-02 4.8893813908028112E-02 4.9722224270260733E-02 + 5.0553051478652723E-02 5.1386367633405060E-02 5.2222242992160398E-02 + 5.3060746083867329E-02 5.3901943814620747E-02 5.4745901566156635E-02 + 5.5592683287615609E-02 5.6442351581128120E-02 5.7294967781723910E-02 + 5.8150592032016529E-02 5.9009283352078161E-02 5.9871099704875912E-02 + 6.0736098057612778E-02 6.1604334439280629E-02 6.2475863994711951E-02 + 6.3350741035385169E-02 6.4229019087223366E-02 6.5110750935602771E-02 + 6.5995988667766486E-02 6.6884783712830465E-02 6.7777186879546300E-02 + 6.8673248391975153E-02 6.9573017923217267E-02 7.0476544627323640E-02 + 7.1383877169514345E-02 7.2295063754813649E-02 7.3210152155203434E-02 + 7.4129189735392190E-02 7.5052223477286573E-02 7.5979300003248762E-02 + 7.6910465598212546E-02 7.7845766230730681E-02 7.8785247573018358E-02 + 7.9728955020054393E-02 8.0676933707794052E-02 8.1629228530547826E-02 + 8.2585884157575784E-02 8.3546945048941293E-02 8.4512455470669240E-02 + 8.5482459509244824E-02 8.6457001085493840E-02 8.7436123967876728E-02 + 8.8419871785230988E-02 8.9408288038988967E-02 9.0401416114902600E-02 + 9.1399299294302155E-02 9.2401980764910296E-02 9.3409503631238872E-02 + 9.4421910924588862E-02 9.5439245612672224E-02 9.6461550608880592E-02 + 9.7488868781213198E-02 9.8521242960883423E-02 9.9558715950622656E-02 + 1.0060133053269286E-01 1.0164912947662383E-01 1.0270215554669077E-01 + 1.0376045150914052E-01 1.0482406013918276E-01 1.0589302422775718E-01 + 1.0696738658808122E-01 1.0804719006200007E-01 1.0913247752613846E-01 + 1.1022329189786643E-01 1.1131967614108960E-01 1.1242167327187176E-01 + 1.1352932636389378E-01 1.1464267855376167E-01 1.1576177304616707E-01 + 1.1688665311890625E-01 1.1801736212777088E-01 1.1915394351130151E-01 + 1.2029644079542909E-01 1.2144489759799455E-01 1.2259935763315719E-01 + 1.2375986471569665E-01 1.2492646276521448E-01 1.2609919581023543E-01 + 1.2727810799221795E-01 1.2846324356947172E-01 1.2965464692099551E-01 + 1.3085236255022537E-01 1.3205643508871046E-01 1.3326690929971025E-01 + 1.3448383008172188E-01 1.3570724247193564E-01 1.3693719164962670E-01 + 1.3817372293948293E-01 1.3941688181487025E-01 1.4066671390104107E-01 + 1.4192326497828653E-01 1.4318658098503384E-01 1.4445670802089430E-01 + 1.4573369234966124E-01 1.4701758040225729E-01 1.4830841877964068E-01 + 1.4960625425566590E-01 1.5091113377990170E-01 1.5222310448040993E-01 + 1.5354221366648613E-01 1.5486850883136080E-01 1.5620203765486734E-01 + 1.5754284800607668E-01 1.5889098794589343E-01 1.6024650572962906E-01 + 1.6160944980953720E-01 1.6297986883732468E-01 1.6435781166663180E-01 + 1.6574332735548805E-01 1.6713646516874170E-01 1.6853727458046072E-01 + 1.6994580527631864E-01 1.7136210715594827E-01 1.7278623033527843E-01 + 1.7421822514885213E-01 1.7565814215211759E-01 1.7710603212370568E-01 + 1.7856194606768885E-01 1.8002593521581750E-01 1.8149805102974409E-01 + 1.8297834520322923E-01 1.8446686966433162E-01 1.8596367657758459E-01 + 1.8746881834615492E-01 1.8898234761399321E-01 1.9050431726796516E-01 + 1.9203478043997263E-01 1.9357379050906620E-01 1.9512140110353976E-01 + 1.9667766610301682E-01 1.9824263964052968E-01 1.9981637610458236E-01 + 2.0139893014120530E-01 2.0299035665600570E-01 2.0459071081620275E-01 + 2.0620004805265801E-01 2.0781842406189729E-01 2.0944589480812292E-01 + 2.1108251652521873E-01 2.1272834571875346E-01 2.1438343916797004E-01 + 2.1604785392777126E-01 2.1772164733070326E-01 2.1940487698892502E-01 + 2.2109760079618332E-01 2.2279987692977102E-01 2.2451176385248858E-01 + 2.2623332031459900E-01 2.2796460535577634E-01 2.2970567830705030E-01 + 2.3145659879275116E-01 2.3321742673244708E-01 2.3498822234287450E-01 + 2.3676904613987551E-01 2.3855995894032386E-01 2.4036102186404742E-01 + 2.4217229633575657E-01 2.4399384408695879E-01 2.4582572715788115E-01 + 2.4766800789938287E-01 2.4952074897487170E-01 2.5138401336221311E-01 + 2.5325786435564152E-01 2.5514236556767056E-01 2.5703758093099849E-01 + 2.5894357470041274E-01 2.6086041145469879E-01 2.6278815609854073E-01 + 2.6472687386442306E-01 2.6667663031453603E-01 2.6863749134267489E-01 + 2.7060952317614040E-01 2.7259279237763795E-01 2.7458736584717969E-01 + 2.7659331082398236E-01 2.7861069488836498E-01 2.8063958596365196E-01 + 2.8268005231806553E-01 2.8473216256663064E-01 2.8679598567306880E-01 + 2.8887159095170051E-01 2.9095904806934059E-01 2.9305842704720408E-01 + 2.9516979826279499E-01 2.9729323245181727E-01 2.9942880071006767E-01 + 3.0157657449533776E-01 3.0373662562931658E-01 3.0590902629949185E-01 + 3.0809384906104714E-01 3.1029116683877334E-01 3.1250105292896302E-01 + 3.1472358100131820E-01 3.1695882510085394E-01 3.1920685964980439E-01 + 3.2146775944952538E-01 3.2374159968240218E-01 3.2602845591375595E-01 + 3.2832840409375230E-01 3.3064152055930640E-01 3.3296788203599498E-01 + 3.3530756563996367E-01 3.3766064887983760E-01 3.4002720965863181E-01 + 3.4240732627566239E-01 3.4480107742845961E-01 3.4720854221467784E-01 + 3.4962980013401057E-01 3.5206493109010456E-01 3.5451401539247135E-01 + 3.5697713375840529E-01 3.5945436731489394E-01 3.6194579760053935E-01 + 3.6445150656746916E-01 3.6697157658325619E-01 3.6950609043283295E-01 + 3.7205513132040935E-01 3.7461878287139039E-01 3.7719712913429354E-01 + 3.7979025458266391E-01 3.8239824411699669E-01 3.8502118306664873E-01 + 3.8765915719176192E-01 3.9031225268517600E-01 3.9298055617434940E-01 + 3.9566415472327582E-01 3.9836313583440053E-01 4.0107758745053579E-01 + 4.0380759795678017E-01 4.0655325618242993E-01 4.0931465140290113E-01 + 4.1209187334163816E-01 4.1488501217202556E-01 4.1769415851931180E-01 + 4.2051940346250993E-01 4.2336083853631434E-01 4.2621855573301026E-01 + 4.2909264750438286E-01 4.3198320676362478E-01 4.3489032688724188E-01 + 4.3781410171695850E-01 4.4075462556161943E-01 4.4371199319909771E-01 + 4.4668629987818537E-01 4.4967764132049881E-01 4.5268611372237022E-01 + 4.5571181375674336E-01 4.5875483857506882E-01 4.6181528580918524E-01 + 4.6489325357321409E-01 4.6798884046543937E-01 4.7110214557019009E-01 + 4.7423326845972152E-01 4.7738230919608482E-01 4.8054936833300765E-01 + 4.8373454691775730E-01 4.8693794649300720E-01 4.9015966909870323E-01 + 4.9339981727391741E-01 4.9665849405870410E-01 4.9993580299595314E-01 + 5.0323184813323441E-01 5.0654673402463768E-01 5.0988056573261409E-01 + 5.1323344882981004E-01 5.1660548940088680E-01 5.1999679404435484E-01 + 5.2340746987438558E-01 5.2683762452262262E-01 5.3028736613999550E-01 + 5.3375680339851295E-01 5.3724604549306199E-01 5.4075520214320016E-01 + 5.4428438359493247E-01 5.4783370062249270E-01 5.5140326453011335E-01 + 5.5499318715378454E-01 5.5860358086301098E-01 5.6223455856256221E-01 + 5.6588623369421487E-01 5.6955872023848531E-01 5.7325213271634912E-01 + 5.7696658619096541E-01 5.8070219626938069E-01 5.8445907910423356E-01 + 5.8823735139544453E-01 5.9203713039189243E-01 5.9585853389309573E-01 + 5.9970168025087078E-01 6.0356668837098293E-01 6.0745367771479730E-01 + 6.1136276830090752E-01 6.1529408070675196E-01 6.1924773607023831E-01 + 6.2322385609132991E-01 6.2722256303364621E-01 6.3124397972603341E-01 + 6.3528822956413100E-01 6.3935543651192561E-01 6.4344572510328990E-01 + 6.4755922044351311E-01 6.5169604821081517E-01 6.5585633465784487E-01 + 6.6004020661316964E-01 6.6424779148275248E-01 6.6847921725139992E-01 + 6.7273461248422373E-01 6.7701410632805514E-01 6.8131782851286782E-01 + 6.8564590935317260E-01 6.8999847974940653E-01 6.9437567118929011E-01 + 6.9877761574918507E-01 7.0320444609542121E-01 7.0765629548562525E-01 + 7.1213329776999823E-01 7.1663558739261335E-01 7.2116329939267310E-01 + 7.2571656940574669E-01 7.3029553366500177E-01 7.3490032900240354E-01 + 7.3953109284990093E-01 7.4418796324059178E-01 7.4887107880987636E-01 + 7.5358057879655382E-01 7.5831660304395077E-01 7.6307929200098923E-01 + 7.6786878672324166E-01 7.7268522887397251E-01 7.7752876072514387E-01 + 7.8239952515840627E-01 7.8729766566606241E-01 7.9222332635200621E-01 + 7.9717665193264164E-01 8.0215778773776458E-01 8.0716687971143741E-01 + 8.1220407441281650E-01 8.1726951901696776E-01 8.2236336131565047E-01 + 8.2748574971807776E-01 8.3263683325163618E-01 8.3781676156259566E-01 + 8.4302568491676966E-01 8.4826375420017075E-01 8.5353112091960370E-01 + 8.5882793720326156E-01 8.6415435580126887E-01 8.6951053008619950E-01 + 8.7489661405356500E-01 8.8031276232226374E-01 8.8575913013500895E-01 + 8.9123587335870535E-01 8.9674314848480940E-01 9.0228111262964150E-01 + 9.0784992353467031E-01 9.1344973956675934E-01 9.1908071971837735E-01 + 9.2474302360776395E-01 9.3043681147907265E-01 9.3616224420246319E-01 + 9.4191948327415997E-01 9.4770869081646780E-01 9.5353002957775246E-01 + 9.5938366293237698E-01 9.6526975488059563E-01 9.7118847004841158E-01 + 9.7713997368738326E-01 9.8312443167439112E-01 9.8914201051137296E-01 + 9.9519287732498429E-01 1.0012771998662522E+00 1.0073951465101449E+00 + 1.0135468862551251E+00 1.0197325887226394E+00 1.0259524241565661E+00 + 1.0322065634226067E+00 1.0384951780076472E+00 1.0448184400190346E+00 + 1.0511765221838394E+00 1.0575695978480499E+00 1.0639978409757027E+00 + 1.0704614261479897E+00 1.0769605285622796E+00 1.0834953240311018E+00 + 1.0900659889810713E+00 1.0966727004517629E+00 1.1033156360945207E+00 + 1.1099949741712112E+00 1.1167108935529160E+00 1.1234635737185776E+00 + 1.1302531947535657E+00 1.1370799373482021E+00 1.1439439827962032E+00 + 1.1508455129930757E+00 1.1577847104344450E+00 1.1647617582143144E+00 + 1.1717768400232662E+00 1.1788301401465882E+00 1.1859218434623437E+00 + 1.1930521354393571E+00 1.2002212021351502E+00 1.2074292301937977E+00 + 1.2146764068437117E+00 1.2219629198953599E+00 1.2292889577388937E+00 + 1.2366547093417508E+00 1.2440603642461110E+00 1.2515061125663349E+00 + 1.2589921449863104E+00 1.2665186527567034E+00 1.2740858276921583E+00 + 1.2816938621683989E+00 1.2893429491192607E+00 1.2970332820336266E+00 + 1.3047650549523071E+00 1.3125384624648009E+00 1.3203536997060090E+00 + 1.3282109623528291E+00 1.3361104466206990E+00 1.3440523492600089E+00 + 1.3520368675524665E+00 1.3600641993073594E+00 1.3681345428576941E+00 + 1.3762480970563005E+00 1.3844050612718031E+00 1.3926056353845033E+00 + 1.4008500197821856E+00 1.4091384153557946E+00 1.4174710234950547E+00 + 1.4258480460839495E+00 1.4342696854961408E+00 1.4427361445902527E+00 + 1.4512476267050822E+00 1.4598043356546724E+00 1.4684064757233255E+00 + 1.4770542516604643E+00 1.4857478686754153E+00 1.4944875324320850E+00 + 1.5032734490435111E+00 1.5121058250662989E+00 1.5209848674949753E+00 + 1.5299107837562014E+00 1.5388837817028711E+00 1.5479040696081232E+00 + 1.5569718561592023E+00 1.5660873504512052E+00 1.5752507619807474E+00 + 1.5844623006394476E+00 1.5937221767073322E+00 1.6030306008461124E+00 + 1.6123877840923075E+00 1.6217939378502984E+00 1.6312492738851705E+00 + 1.6407540043155198E+00 1.6503083416060500E+00 1.6599124985600924E+00 + 1.6695666883119522E+00 1.6792711243191616E+00 1.6890260203545557E+00 + 1.6988315904982387E+00 1.7086880491293996E+00 1.7185956109179901E+00 + 1.7285544908162627E+00 1.7385649040501525E+00 1.7486270661105554E+00 + 1.7587411927443768E+00 1.7689074999455483E+00 1.7791262039457802E+00 + 1.7893975212052542E+00 1.7997216684030963E+00 1.8100988624277417E+00 + 1.8205293203671296E+00 1.8310132594987309E+00 1.8415508972794301E+00 + 1.8521424513352476E+00 1.8627881394508983E+00 1.8734881795591707E+00 + 1.8842427897301810E+00 1.8950521881604132E+00 1.9059165931616509E+00 + 1.9168362231496485E+00 1.9278112966327501E+00 1.9388420322002355E+00 + 1.9499286485105431E+00 1.9610713642792947E+00 1.9722703982671785E+00 + 1.9835259692675935E+00 1.9948382960941859E+00 2.0062075975681348E+00 + 2.0176340925053062E+00 2.0291179997031890E+00 2.0406595379276760E+00 + 2.0522589258996016E+00 2.0639163822811608E+00 2.0756321256620729E+00 + 2.0874063745456048E+00 2.0992393473343496E+00 2.1111312623158498E+00 + 2.1230823376479964E+00 2.1350927913442330E+00 2.1471628412585595E+00 + 2.1592927050703565E+00 2.1714826002689502E+00 2.1837327441380281E+00 + 2.1960433537397934E+00 2.2084146458989706E+00 2.2208468371865293E+00 + 2.2333401439032490E+00 2.2458947820630453E+00 2.2585109673760937E+00 + 2.2711889152317077E+00 2.2839288406810185E+00 2.2967309584194244E+00 + 2.3095954827688345E+00 2.3225226276596431E+00 2.3355126066125322E+00 + 2.3485656327200184E+00 2.3616819186277325E+00 2.3748616765155566E+00 + 2.3881051180784310E+00 2.4014124545069953E+00 2.4147838964679593E+00 + 2.4282196540842271E+00 2.4417199369148230E+00 2.4552849539345174E+00 + 2.4689149135132626E+00 2.4826100233953396E+00 2.4963704906782960E+00 + 2.5101965217916118E+00 2.5240883224751012E+00 2.5380460977571042E+00 + 2.5520700519323896E+00 2.5661603885397999E+00 2.5803173103396877E+00 + 2.5945410192910323E+00 2.6088317165283281E+00 2.6231896023381949E+00 + 2.6376148761357712E+00 2.6521077364407595E+00 2.6666683808532921E+00 + 2.6812970060294652E+00 2.6959938076566496E+00 2.7107589804284804E+00 + 2.7255927180196249E+00 2.7404952130602549E+00 2.7554666571102251E+00 + 2.7705072406330160E+00 2.7856171529693579E+00 2.8007965823105909E+00 + 2.8160457156717413E+00 2.8313647388643575E+00 2.8467538364689711E+00 + 2.8622131918073572E+00 2.8777429869144591E+00 2.8933434025100597E+00 + 2.9090146179701333E+00 2.9247568112979176E+00 2.9405701590947007E+00 + 2.9564548365303152E+00 2.9724110173133256E+00 2.9884388736609244E+00 + 3.0045385762685357E+00 3.0207102942791448E+00 3.0369541952522749E+00 + 3.0532704451326933E+00 3.0696592082188503E+00 3.0861206471309295E+00 + 3.1026549227787052E+00 3.1192621943290009E+00 3.1359426191728996E+00 + 3.1526963528926215E+00 3.1695235492281100E+00 3.1864243600432953E+00 + 3.2033989352920593E+00 3.2204474229839262E+00 3.2375699691493316E+00 + 3.2547667178047490E+00 3.2720378109173414E+00 3.2893833883694117E+00 + 3.3068035879224911E+00 3.3242985451811387E+00 3.3418683935563935E+00 + 3.3595132642289447E+00 3.3772332861120016E+00 3.3950285858137921E+00 + 3.4128992875998008E+00 3.4308455133546460E+00 3.4488673825437246E+00 + 3.4669650121744104E+00 3.4851385167570719E+00 3.5033880082656794E+00 + 3.5217135960981296E+00 3.5401153870362814E+00 3.5585934852056349E+00 + 3.5771479920347020E+00 3.5957790062140860E+00 3.6144866236552247E+00 + 3.6332709374488332E+00 3.6521320378230144E+00 3.6710700121010689E+00 + 3.6900849446590023E+00 3.7091769168826909E+00 3.7283460071247623E+00 + 3.7475922906611427E+00 3.7669158396473295E+00 3.7863167230743198E+00 + 3.8057950067242152E+00 3.8253507531255910E+00 3.8449840215084787E+00 + 3.8646948677590998E+00 3.8844833443742619E+00 3.9043495004154494E+00 + 3.9242933814626668E+00 3.9443150295679024E+00 3.9644144832083419E+00 + 3.9845917772393014E+00 4.0048469428468030E+00 4.0251800074999240E+00 + 4.0455909949028088E+00 4.0660799249464068E+00 4.0866468136599394E+00 + 4.1072916731620195E+00 4.1280145116116218E+00 4.1488153331585895E+00 + 4.1696941378940107E+00 4.1906509218002510E+00 4.2116856767007400E+00 + 4.2327983902094264E+00 4.2539890456800986E+00 4.2752576221552756E+00 + 4.2966040943149775E+00 4.3180284324251232E+00 4.3395306022857536E+00 + 4.3611105651789828E+00 4.3827682778166670E+00 4.4045036922878822E+00 + 4.4263167560061287E+00 4.4482074116562655E+00 4.4701755971413037E+00 + 4.4922212455288575E+00 4.5143442849974784E+00 4.5365446387826900E+00 + 4.5588222251228423E+00 4.5811769572047352E+00 4.6036087431090467E+00 + 4.6261174857555858E+00 4.6487030828482609E+00 4.6713654268199658E+00 + 4.6941044047771916E+00 4.7169198984445186E+00 4.7398117841088654E+00 + 4.7627799325636344E+00 4.7858242090526915E+00 4.8089444732140638E+00 + 4.8321405790236875E+00 4.8554123747388145E+00 4.8787597028414105E+00 + 4.9021823999813616E+00 4.9256802969195368E+00 4.9492532184707914E+00 + 4.9729009834468139E+00 4.9966234045988607E+00 5.0204202885603983E+00 + 5.0442914357896731E+00 5.0682366405121639E+00 5.0922556906630057E+00 + 5.1163483678292900E+00 5.1405144471923387E+00 5.1647536974698953E+00 + 5.1890658808583527E+00 5.2134507529747873E+00 5.2379080627991277E+00 + 5.2624375526162721E+00 5.2870389579580896E+00 5.3117120075455047E+00 + 5.3364564232306968E+00 5.3612719199390346E+00 5.3861582056113724E+00 + 5.4111149811461203E+00 5.4361419403415292E+00 5.4612387698379470E+00 + 5.4864051490601922E+00 5.5116407501600104E+00 5.5369452379585011E+00 + 5.5623182698889311E+00 5.5877594959393493E+00 5.6132685585954789E+00 + 5.6388450927837894E+00 5.6644887258145831E+00 5.6901990773254125E+00 + 5.7159757592244986E+00 5.7418183756344980E+00 5.7677265228363002E+00 + 5.7936997892132185E+00 5.8197377551952929E+00 5.8458399932038052E+00 + 5.8720060675961729E+00 5.8982355346110324E+00 5.9245279423135671E+00 + 5.9508828305411958E+00 5.9772997308495572E+00 6.0037781664588268E+00 + 6.0303176522003250E+00 6.0569176944635421E+00 6.0835777911434556E+00 + 6.1102974315883802E+00 6.1370760965480029E+00 6.1639132581220633E+00 + 6.1908083797092965E+00 6.2177609159569078E+00 6.2447703127105152E+00 + 6.2718360069645458E+00 6.2989574268131046E+00 6.3261339914015240E+00 + 6.3533651108781815E+00 6.3806501863471343E+00 6.4079886098211531E+00 + 6.4353797641754573E+00 6.4628230231019348E+00 6.4903177510641736E+00 + 6.5178633032529358E+00 6.5454590255424341E+00 6.5731042544472977E+00 + 6.6007983170801268E+00 6.6285405311099082E+00 6.6563302047210913E+00 + 6.6841666365734946E+00 6.7120491157628965E+00 6.7399769217826124E+00 + 6.7679493244856976E+00 6.7959655840481004E+00 6.8240249509328006E+00 + 6.8521266658545423E+00 6.8802699597458687E+00 6.9084540537237187E+00 + 6.9366781590573163E+00 6.9649414771367679E+00 6.9932431994429081E+00 + 7.0215825075179108E+00 7.0499585729373022E+00 7.0783705572827085E+00 + 7.1068176121158873E+00 7.1352988789538694E+00 7.1638134892452863E+00 + 7.1923605643476840E+00 7.2209392155062853E+00 7.2495485438339333E+00 + 7.2781876402920354E+00 7.3068555856731239E+00 7.3355514505844752E+00 + 7.3642742954332432E+00 7.3930231704127491E+00 7.4217971154903806E+00 + 7.4505951603965794E+00 7.4794163246156895E+00 7.5082596173778864E+00 + 7.5371240376527773E+00 7.5660085741444698E+00 7.5949122052882414E+00 + 7.6238338992486794E+00 7.6527726139194945E+00 7.6817272969249624E+00 + 7.7106968856229443E+00 7.7396803071096913E+00 7.7686764782263289E+00 + 7.7976843055669702E+00 7.8267026854887742E+00 7.8557305041237058E+00 + 7.8847666373921133E+00 7.9138099510181670E+00 7.9428593005472212E+00 + 7.9719135313650851E+00 8.0009714787191495E+00 8.0300319677416141E+00 + 8.0590938134746271E+00 8.0881558208974891E+00 8.1172167849558772E+00 + 8.1462754905932613E+00 8.1753307127842731E+00 8.2043812165704555E+00 + 8.2334257570979155E+00 8.2624630796574365E+00 8.2914919197267345E+00 + 8.3205110030147722E+00 8.3495190455088704E+00 8.3785147535235893E+00 + 8.4074968237524050E+00 8.4364639433214155E+00 8.4654147898458412E+00 + 8.4943480314885651E+00 8.5232623270214702E+00 8.5521563258891273E+00 + 8.5810286682750352E+00 8.6098779851704439E+00 8.6387028984457377E+00 + 8.6675020209244629E+00 8.6962739564599776E+00 8.7250173000147910E+00 + 8.7537306377426010E+00 8.7824125470730419E+00 8.8110615967991990E+00 + 8.8396763471678916E+00 8.8682553499728023E+00 8.8967971486504442E+00 + 8.9253002783788258E+00 8.9537632661792763E+00 8.9821846310209299E+00 + 9.0105628839282925E+00 9.0388965280917226E+00 9.0671840589807911E+00 + 9.0954239644608528E+00 9.1236147249124500E+00 9.1517548133539037E+00 + 9.1798426955667818E+00 9.2078768302247500E+00 9.2358556690251685E+00 + 9.2637776568241232E+00 9.2916412317744452E+00 9.3194448254669258E+00 + 9.3471868630746879E+00 9.3748657635008303E+00 9.4024799395291598E+00 + 9.4300277979781875E+00 9.4575077398585226E+00 9.4849181605332493E+00 + 9.5122574498817514E+00 9.5395239924668243E+00 9.5667161677048185E+00 + 9.5938323500394667E+00 9.6208709091187306E+00 9.6478302099749929E+00 + 9.6747086132086828E+00 9.7015044751750938E+00 9.7282161481746190E+00 + 9.7548419806461801E+00 9.7813803173642331E+00 9.8078294996388813E+00 + 9.8341878655193096E+00 9.8604537500008202E+00 9.8866254852347915E+00 + 9.9127014007423657E+00 9.9386798236311265E+00 9.9645590788154408E+00 + 9.9903374892396855E+00 1.0016013376105198E+01 1.0041585059100177E+01 + 1.0067050856633218E+01 1.0092409086069750E+01 1.0117658063972067E+01 + 1.0142796106342439E+01 1.0167821528869478E+01 1.0192732647177902E+01 + 1.0217527777081234E+01 1.0242205234837959E+01 1.0266763337410806E+01 + 1.0291200402729109E+01 1.0315514749954531E+01 1.0339704699749721E+01 + 1.0363768574550214E+01 1.0387704698839499E+01 1.0411511399427100E+01 + 1.0435187005729817E+01 1.0458729850055999E+01 1.0482138267892847E+01 + 1.0505410598196899E+01 1.0528545183687463E+01 1.0551540371142986E+01 + 1.0574394511700717E+01 1.0597105961159027E+01 1.0619673080283034E+01 + 1.0642094235113051E+01 1.0664367797276087E+01 1.0686492144300338E+01 + 1.0708465659932624E+01 1.0730286734458927E+01 1.0751953765027791E+01 + 1.0773465155976917E+01 1.0794819319162499E+01 1.0816014674291939E+01 + 1.0837049649259272E+01 1.0857922680483968E+01 1.0878632213252594E+01 + 1.0899176702063752E+01 1.0919554610976075E+01 1.0939764413959518E+01 + 1.0959804595249725E+01 1.0979673649705836E+01 1.0999370083171513E+01 + 1.1018892412839234E+01 1.1038239167618295E+01 1.1057408888505984E+01 + 1.1076400128962346E+01 1.1095211455288728E+01 1.1113841447009667E+01 + 1.1132288697258689E+01 1.1150551813167827E+01 1.1168629416260842E+01 + 1.1186520142850574E+01 1.1204222644439922E+01 1.1221735588126942E+01 + 1.1239057657014065E+01 1.1256187550621158E+01 1.1273123985302830E+01 + 1.1289865694669698E+01 1.1306411430013698E+01 1.1322759960737619E+01 + 1.1338910074788577E+01 1.1354860579095270E+01 1.1370610300009201E+01 + 1.1386158083749621E+01 1.1401502796852032E+01 1.1416643326619862E+01 + 1.1431578581579378E+01 1.1446307491937365E+01 1.1460829010041182E+01 + 1.1475142110840775E+01 1.1489245792352396E+01 1.1503139076123029E+01 + 1.1516821007695450E+01 1.1530290657072532E+01 1.1543547119180788E+01 + 1.1556589514331398E+01 1.1569416988678443E+01 1.1582028714672882E+01 + 1.1594423891510921E+01 1.1606601745576006E+01 1.1618561530872306E+01 + 1.1630302529448656E+01 1.1641824051811041E+01 1.1653125437321993E+01 + 1.1664206054584696E+01 1.1675065301810351E+01 1.1685702607166004E+01 + 1.1696117429101262E+01 1.1706309256651172E+01 1.1716277609713337E+01 + 1.1726022039296378E+01 1.1735542127737775E+01 1.1744837488888454E+01 + 1.1753907768261522E+01 1.1762752643143269E+01 1.1771371822663383E+01 + 1.1779765047823020E+01 1.1787932091477765E+01 1.1795872758274358E+01 + 1.1803586884538932E+01 1.1811074338115443E+01 1.1818335018153062E+01 + 1.1825368854841727E+01 1.1832175809095139E+01 1.1838755872181155E+01 + 1.1845109065299528E+01 1.1851235439108107E+01 1.1857135073197929E+01 + 1.1862808075519391E+01 1.1868254581761263E+01 1.1873474754684796E+01 + 1.1878468783416640E+01 1.1883236882703239E+01 1.1887779292131373E+01 + 1.1892096275318959E+01 1.1896188119080918E+01 1.1900055132575599E+01 + 1.1903697646437221E+01 1.1907116011900380E+01 1.1910310599922916E+01 + 1.1913281800313326E+01 1.1916030020869831E+01 1.1918555686537220E+01 + 1.1920859238588763E+01 1.1922941133839522E+01 1.1924801843897828E+01 + 1.1926441854461331E+01 1.1927861664663492E+01 1.1929061786476618E+01 + 1.1930042744176436E+01 1.1930805073873048E+01 1.1931349323112428E+01 + 1.1931676050552001E+01 1.1931785825712517E+01 1.1931679228808818E+01 + 1.1931356850659510E+01 1.1930819292676144E+01 1.1930067166930622E+01 + 1.1929101096298721E+01 1.1927921714676462E+01 1.1926529667265788E+01 + 1.1924925610923774E+01 1.1923110214569704E+01 1.1921084159643154E+01 + 1.1918848140605071E+01 1.1916402865474048E+01 1.1913749056388435E+01 + 1.1910887450185506E+01 1.1907818798987661E+01 1.1904543870786762E+01 + 1.1901063450016446E+01 1.1897378338103568E+01 1.1893489353989700E+01 + 1.1889397334614296E+01 1.1885103135351539E+01 1.1880607630394111E+01 + 1.1875911713077352E+01 1.1871016296138398E+01 1.1865922311905734E+01 + 1.1860630712415716E+01 1.1855142469453087E+01 1.1849458574513640E+01 + 1.1843580038688263E+01 1.1837507892467732E+01 1.1831243185469097E+01 + 1.1824786986084481E+01 1.1818140381054203E+01 1.1811304474965985E+01 + 1.1804280389683273E+01 1.1797069263704874E+01 1.1789672251459525E+01 + 1.1782090522538125E+01 1.1774325260867046E+01 1.1766377663825818E+01 + 1.1758248941312290E+01 1.1749940314758380E+01 1.1741453016099557E+01 + 1.1732788286700693E+01 1.1723947376240879E+01 1.1714931541559992E+01 + 1.1705742045468767E+01 1.1696380155524761E+01 1.1686847142775694E+01 + 1.1677144280471914E+01 1.1667272842749268E+01 1.1657234103283525E+01 + 1.1647029333917246E+01 1.1636659803260050E+01 1.1626126775262691E+01 + 1.1615431507765431E+01 1.1604575251021320E+01 1.1593559246194056E+01 + 1.1582384723831105E+01 1.1571052902311759E+01 1.1559564986270168E+01 + 1.1547922164993246E+01 1.1536125610793404E+01 1.1524176477355676E+01 + 1.1512075898059432E+01 1.1499824984273816E+01 1.1487424823627638E+01 + 1.1474876478252581E+01 1.1462180983000048E+01 1.1449339343631445E+01 + 1.1436352534981451E+01 1.1423221499094732E+01 1.1409947143335241E+01 + 1.1396530338468793E+01 1.1382971916718502E+01 1.1369272669793277E+01 + 1.1355433346889230E+01 1.1341454652664646E+01 1.1327337245188012E+01 + 1.1313081733859971E+01 1.1298688677308894E+01 1.1284158581260929E+01 + 1.1269491896384476E+01 1.1254689016109602E+01 1.1239750274422944E+01 + 1.1224675943638568E+01 1.1209466232145093E+01 1.1194121282129895E+01 + 1.1178641167280889E+01 1.1163025890466519E+01 1.1147275381394650E+01 + 1.1131389494250923E+01 1.1115368005317702E+01 1.1099210610573779E+01 + 1.1082916923276191E+01 1.1066486471524613E+01 1.1049918695809337E+01 + 1.1033212946543591E+01 1.1016368481581356E+01 1.0999384463721155E+01 + 1.0982259958197240E+01 1.0964993930158878E+01 1.0947585242138647E+01 + 1.0930032651511146E+01 1.0912334807942651E+01 1.0894490250833229E+01 + 1.0876497406752000E+01 1.0858354586867042E+01 1.0840059984370672E+01 + 1.0821611671901598E+01 1.0803007598964726E+01 1.0784245589350345E+01 + 1.0765323338553221E+01 1.0746238411193433E+01 1.0726988238439807E+01 + 1.0707570115437530E+01 1.0687981198740843E+01 1.0668218503752540E+01 + 1.0648278902171384E+01 1.0628159119448737E+01 1.0607855732256072E+01 + 1.0587365165964425E+01 1.0566683692137492E+01 1.0545807426039675E+01 + 1.0524732324160578E+01 1.0503454181757469E+01 1.0481968630417287E+01 + 1.0460271135639584E+01 1.0438356994442209E+01 1.0416221332991030E+01 + 1.0393859104255684E+01 1.0371265085692595E+01 1.0348433876957378E+01 + 1.0325359897647873E+01 1.0302037385079910E+01 1.0278460392097363E+01 + 1.0254622784918263E+01 1.0230518241018903E+01 1.0206140247057618E+01 + 1.0181482096840222E+01 1.0156536889328819E+01 1.0131297526696148E+01 + 1.0105756712427089E+01 1.0079906949469596E+01 1.0053740538436726E+01 + 1.0027249575862117E+01 1.0000425952510591E+01 9.9732613517463111E+00 + 9.9457472479601829E+00 9.9178749050589854E+00 9.8896353750181216E+00 + 9.8610194965001483E+00 9.8320178935415008E+00 9.8026209743092103E+00 + 9.7728189299302901E+00 9.7426017333956292E+00 9.7119591385409674E+00 + 9.6808806791070037E+00 9.6493556678811423E+00 9.6173731959229727E+00 + 9.5849221318760964E+00 9.5519911213683315E+00 9.5185685865030134E+00 + 9.4846427254434698E+00 9.4502015120932565E+00 9.4152326958745736E+00 + 9.3797238016070867E+00 9.3436621294898945E+00 9.3070347551888108E+00 + 9.2698285300316385E+00 9.2320300813137059E+00 9.1936258127163626E+00 + 9.1546019048406784E+00 9.1149443158590842E+00 9.0746387822872023E+00 + 9.0336708198786297E+00 8.9920257246449502E+00 8.9496885740036927E+00 + 8.9066442280565798E+00 8.8628773310007904E+00 8.8183723126755726E+00 + 8.7731133902469409E+00 8.7270845700328810E+00 8.6802696494716951E+00 + 8.6326522192360571E+00 8.5842156654953161E+00 8.5349431723287967E+00 + 8.4848177242925082E+00 8.4338221091421683E+00 8.3819389207149531E+00 + 8.3291505619729467E+00 8.2754392482107768E+00 8.2207870104304437E+00 + 8.1651756988859692E+00 8.1085869868009439E+00 8.0510023742616870E+00 + 7.9924031922892906E+00 7.9327706070933024E+00 7.8720856245105564E+00 + 7.8103290946321309E+00 7.7474817166218672E+00 7.6835240437300341E+00 + 7.6184364885054716E+00 7.5521993282102606E+00 7.4847927104402796E+00 + 7.4161966589564612E+00 7.3463910797300800E+00 7.2753557672067357E+00 + 7.2030704107940160E+00 7.1295146015766901E+00 7.0546678392651714E+00 + 6.9785095393823031E+00 6.9010190406932379E+00 6.8221756128848510E+00 + 6.7419584645000681E+00 6.6603467511333259E+00 6.5773195838936642E+00 + 6.4928560381418565E+00 6.4069351625086703E+00 6.3195359882011761E+00 + 6.2306375386046486E+00 6.1402188391874910E+00 6.0482589277171313E+00 + 5.9547368647948167E+00 5.8596317447176043E+00 5.7629227066758384E+00 + 5.6645889462947183E+00 5.5646097275284951E+00 5.4629643949160673E+00 + 5.3596323862067257E+00 5.2545932453646644E+00 5.1478266359610965E+00 + 5.0393123549623775E+00 4.9290303469227128E+00 4.8169607185894572E+00 + 4.7030837539290582E+00 4.5873799295810773E+00 4.4698299307473857E+00 + 4.3504146675232116E+00 4.2291152916759422E+00 4.1059132138770078E+00 + 3.9807901213914398E+00 3.8537279962286597E+00 3.7247091337572598E+00 + 3.5937161617853151E+00 3.4607320601066327E+00 3.3257401805120446E+00 + 3.1887242672632121E+00 3.0496684780251035E+00 2.9085574052513095E+00 + 2.7653760980146194E+00 2.6201100842731111E+00 2.4727453935598152E+00 + 2.3232685800815496E+00 2.1716667462099806E+00 2.0179275663449103E+00 + 1.8620393111269373E+00 1.7039908719732713E+00 1.5437717859069242E+00 + 1.3813722606458976E+00 1.2167831999150294E+00 1.0499962289390188E+00 + 8.8100372007115479E-01 7.0979881850786375E-01 5.3637546803512159E-01 + 3.6072843674881855E-01 1.8285334268734335E-01 2.7466793117800533E-03 + -1.7959415923344810E-01 -3.6417085314761738E-01 -5.5098413235653543E-01 + -7.4003375231696067E-01 -9.3131847030385884E-01 -1.1248360222345821E+00 + -1.3205831000727375E+00 -1.5185553298399608E+00 -1.7187472502438992E+00 + -1.9211522919060213E+00 -2.1257627571422755E+00 -2.3325698002132289E+00 + -2.5415634079178764E+00 -2.7527323803567194E+00 -2.9660643116367287E+00 + -3.1815455702326907E+00 -3.3991612786600465E+00 -3.6188952920541837E+00 + -3.8407301751944227E+00 -4.0646471774610449E+00 -4.2906262051747595E+00 + -4.5186457907453184E+00 -4.7486830580543424E+00 -4.9807136835218877E+00 + -5.2147118523612352E+00 -5.4506502096159180E+00 -5.6884998056976590E+00 + -5.9282300363051954E+00 -6.1698085767974407E+00 -6.4132013113150590E+00 + -6.6583722571833981E+00 -6.9052834853746230E+00 -7.1538950380441877E+00 + -7.4041648443700305E+00 -7.6560486360975100E+00 -7.9094998643130427E+00 + -8.1644696190241817E+00 -8.4209065531036629E+00 -8.6787568120598451E+00 + -8.9379639709260683E+00 -9.1984689793286076E+00 -9.4602101155083957E+00 + -9.7231229497564957E+00 -9.9871403173958253E+00 -1.0252192301122605E+01 + -1.0518206222231475E+01 -1.0785106640001963E+01 -1.1052815358334380E+01 + -1.1321251438595308E+01 -1.1590331217569929E+01 -1.1859968329415164E+01 + -1.2130073730558944E+01 -1.2400555726585138E+01 -1.2671320000271558E+01 + -1.2942269640096606E+01 -1.3213305168689118E+01 -1.3484324570854280E+01 + -1.3755223320960702E+01 -1.4025894409611732E+01 -1.4296228369644565E+01 + -1.4566113301603167E+01 -1.4835434898911471E+01 -1.5104076473036596E+01 + -1.5371918978974964E+01 -1.5638841041423287E+01 -1.5904718982010687E+01 + -1.6169426847972279E+01 -1.6432836442638482E+01 -1.6694817358103155E+01 + -1.6955237010416301E+01 -1.7213960677627753E+01 -1.7470851540985382E+01 + -1.7725770729569629E+01 -1.7978577368623352E+01 -1.8229128631812920E+01 + -1.8477279797636683E+01 -1.8722884310175662E+01 -1.8965793844364207E+01 + -1.9205858375939577E+01 -1.9442926256215223E+01 -1.9676844291807164E+01 + -1.9907457829430832E+01 -2.0134610845872650E+01 -2.0358146043231006E+01 + -2.0577904949510419E+01 -2.0793728024644910E+01 -2.1005454772016385E+01 + -2.1212923855527844E+01 -2.1415973222282574E+01 -2.1614440230914468E+01 + -2.1808161785606906E+01 -2.1996974475831454E+01 -2.2180714721831851E+01 + -2.2359218925870479E+01 -2.2532323629249870E+01 -2.2699865675113244E+01 + -2.2861682377022845E+01 -2.3017611693305792E+01 -2.3167492407150871E+01 + -2.3311164312431075E+01 -2.3448468405218737E+01 -2.3579247080950324E+01 + -2.3703344337189499E+01 -2.3820605981926256E+01 -2.3930879847340304E+01 + -2.4034016008944064E+01 -2.4129867010010312E+01 -2.4218288091176497E+01 + -2.4299137425103545E+01 -2.4372276356054314E+01 -2.4437569644241151E+01 + -2.4494885714777332E+01 -2.4544096911049817E+01 -2.4585079752314950E+01 + -2.4617715195299969E+01 -2.4641888899575680E+01 -2.4657491496445051E+01 + -2.4664418861073646E+01 -2.4662572387566215E+01 -2.4651859266673014E+01 + -2.4632192765786023E+01 -2.4603492510863333E+01 -2.4565684769896411E+01 + -2.4518702737509376E+01 -2.4462486820256405E+01 -2.4396984922156228E+01 + -2.4322152729978512E+01 -2.4237953997768258E+01 -2.4144360830069669E+01 + -2.4041353963281875E+01 -2.3928923044552739E+01 -2.3807066907587689E+01 + -2.3675793844723533E+01 -2.3535121874588238E+01 -2.3385079004640396E+01 + -2.3225703487852371E+01 -2.3057044072774616E+01 -2.2879160246189574E+01 + -2.2692122467537370E+01 -2.2496012394266849E+01 -2.2290923097240317E+01 + -2.2076959265294544E+01 -2.1854237398034414E+01 -2.1622885985913154E+01 + -2.1383045676628967E+01 -2.1134869426847448E+01 -2.0878522638237524E+01 + -2.0614183276791440E+01 -2.0342041974381406E+01 -2.0062302111491512E+01 + -1.9775179880049592E+01 -1.9480904325274274E+01 -1.9179717365443615E+01 + -1.8871873788487168E+01 -1.8557641224299957E+01 -1.8237300091678240E+01 + -1.7911143518781028E+01 -1.7579477236027870E+01 -1.7242619440356037E+01 + -1.6900900629774213E+01 -1.6554663407170594E+01 -1.6204262252355520E+01 + -1.5850063261348904E+01 -1.5492443851954762E+01 -1.5131792434704662E+01 + -1.4768508048294478E+01 -1.4402999958689559E+01 -1.4035687221126382E+01 + -1.3666998204301745E+01 -1.3297370076106615E+01 -1.2927248250334129E+01 + -1.2557085793873831E+01 -1.2187342793987673E+01 -1.1818485685358086E+01 + -1.1450986536699645E+01 -1.1085322296832253E+01 -1.0721974000228563E+01 + -1.0361425932171702E+01 -1.0004164753787389E+01 -9.6506785873533225E+00 + -9.3014560624323064E+00 -8.9569853235286310E+00 -8.6177530001267897E+00 + -8.2842431401395142E+00 -7.9569361079665777E+00 -7.6363074485484788E+00 + -7.3228267189887291E+00 -7.0169562895146012E+00 -6.7191501157498958E+00 + -6.4298524844828471E+00 -6.1494967353284071E+00 -5.8785039609053946E+00 + -5.6172816883762771E+00 -5.3662225454286112E+00 -5.1257029140131030E+00 + -4.8960815753919356E+00 -4.6776983502931753E+00 -4.4708727382101312E+00 + -4.2759025601293210E+00 -4.0930626092144546E+00 -3.9226033142169809E+00 + -3.7647494206241272E+00 -3.6196986947915883E+00 -3.4876206565396233E+00 + -3.3686553459154167E+00 -3.2629121300409207E+00 -3.1704685561708721E+00 + -3.0913692572798674E+00 -3.0256249166769527E+00 -2.9732112983103711E+00 + -2.9340683495705524E+00 -2.9080993835250104E+00 -2.8951703476205819E+00 + -2.8951091859705445E+00 -2.9077053023827339E+00 -2.9327091313200322E+00 + -2.9698318239596162E+00 -3.0187450564746547E+00 -3.0790809675743471E+00 + -3.1504322322116307E+00 -3.2323522781977987E+00 -3.3243556522467537E+00 + -3.4259185417073637E+00 -3.5364794579263998E+00 -3.6554400868157186E+00 + -3.7821663117723250E+00 -3.9159894136176052E+00 -4.0562074516794677E+00 + -4.2020868295376044E+00 -4.3528640482849896E+00 -4.5077476494282003E+00 + -4.6659203487530583E+00 -4.8265413616209498E+00 -4.9887489192340206E+00 + -5.1516629744154763E+00 -5.3143880943946753E+00 -5.4760165369667879E+00 + -5.6356315052163222E+00 -5.7923105747541221E+00 -5.9451292861228406E+00 + -6.0931648936789937E+00 -6.2355002608665178E+00 -6.3712278903612791E+00 + -6.4994540760953612E+00 -6.6193031626702581E+00 -6.7299218961481664E+00 + -6.8304838486779076E+00 -6.9201938978774020E+00 -6.9982927403670336E+00 + -7.0640614173407910E+00 -7.1168258285856503E+00 -7.1559612099275087E+00 + -7.1808965477092830E+00 -7.1911189026064894E+00 -7.1861776138753948E+00 + -7.1656883540226755E+00 -7.1293370029028820E+00 -7.0768833094062895E+00 + -7.0081643082144804E+00 -6.9230974585914069E+00 -6.8216834718635617E+00 + -6.7040087941418447E+00 -6.5702477109693502E+00 -6.4206640409608404E+00 + -6.2556123861505819E+00 -6.0755389077013513E+00 -5.8809815968661452E+00 + -5.6725700126499232E+00 -5.4510244595064874E+00 -5.2171545806365680E+00 + -4.9718573450378853E+00 -4.7161144094050469E+00 -4.4509888392908952E+00 + -4.1776211776251273E+00 -3.8972248527387778E+00 -3.6110809224616669E+00 + -3.3205321556349214E+00 -3.0269764575010045E+00 -2.7318596508819386E+00 + -2.4366676308120505E+00 -2.1429179163274861E+00 -1.8521506294000538E+00 + -1.5659189375000322E+00 -1.2857790029393912E+00 -1.0132794889347470E+00 + -7.4995067918414493E-01 -4.9729327461396394E-01 -2.5676693775570947E-01 + -2.9778661886502904E-02 1.8232895146523817E-01 3.7828941686739187E-01 + 5.5692399559753947E-01 7.1715313159305194E-01 8.5800758702536783E-01 + 9.7863916765735837E-01 1.0783309247674702E+00 1.1565067179020601E+00 + 1.2127400211471160E+00 1.2467618550907076E+00 1.2584677272730571E+00 + 1.2479234657832319E+00 1.2153698338457319E+00 1.1612258178245136E+00 + 1.0860904871253549E+00 9.9074333205767162E-01 8.7614299486930547E-01 + 7.4342431992249269E-01 5.9389366134985888E-01 4.2902240051071788E-01 + 2.5043864113450559E-01 5.9917067141661548E-02 -1.4063303329956051E-01 + -3.4918155398701811E-01 -5.6359312249957461E-01 -7.8164435067852289E-01 + -1.0010426936706405E+00 -1.2194468035638935E+00 -1.4344882393309044E+00 + -1.6437943702991418E+00 -1.8450122859903191E+00 -2.0358335012426347E+00 + -2.2140192224010606E+00 -2.3774259184095663E+00 -2.5240309202606896E+00 + -2.6519577538650316E+00 -2.7595008954194573E+00 -2.8451496252085322E+00 + -2.9076106458990383E+00 -2.9458291252068234E+00 -2.9590078207386301E+00 + -2.9466239472272857E+00 -2.9084434536453871E+00 -2.8445323901180255E+00 + -2.7552650624296349E+00 -2.6413286954437005E+00 -2.5037243560696010E+00 + -2.3437639215814379E+00 -2.1630629200950064E+00 -1.9635291167189119E+00 + -1.7473467710868069E+00 -1.5169565493081156E+00 -1.2750311353837036E+00 + -1.0244466532343854E+00 -7.6825007997058758E-01 -5.0962290304746527E-01 + -2.5184134753093662E-01 1.7664262484578738E-03 2.4786568106693802E-01 + 4.8316247236785248E-01 7.0445241639929435E-01 9.0867018150620049E-01 + 1.0929389708551864E+00 1.2546192166642791E+00 1.3913556674827103E+00 + 1.5011220227792548E+00 1.5822622545524896E+00 1.6335277552778229E+00 + 1.6541094665226985E+00 1.6436641740843903E+00 1.6023342044051156E+00 + 1.5307598239052060E+00 1.4300837280493575E+00 1.3019471103812101E+00 + 1.1484769230010370E+00 9.7226407817715255E-01 7.7633249468602739E-01 + 5.6409906031483614E-01 3.3932476150138541E-01 1.0605741961638300E-01 + -1.3143333227397622E-01 -3.6872800182915344E-01 -6.0133509409489871E-01 + -8.2477365916331236E-01 -1.0346591403349730E+00 -1.2267909710163178E+00 + -1.3972402283809942E+00 -1.5424355377781336E+00 -1.6592453389695423E+00 + -1.7450545782617801E+00 -1.7978338838145169E+00 -1.8161993186504459E+00 + -1.7994608902506164E+00 -1.7476581293076228E+00 -1.6615812344135712E+00 + -1.5427765141896741E+00 -1.3935351423175317E+00 -1.2168645713829009E+00 + -1.0164423241534213E+00 -7.9655229008029971E-01 -5.6200409305689236E-01 + -3.1803655485070492E-01 -7.0206746743163517E-02 1.7573341198108816E-01 + 4.1397059884997467E-01 6.3877074397146882E-01 8.4462368496907736E-01 + 1.0263882875554835E+00 1.1794342485643716E+00 1.2997766344583646E+00 + 1.3841991429667060E+00 1.4303621194786102E+00 1.4368915217963794E+00 + 1.4034453127421287E+00 1.3307541725481529E+00 1.2206339608449317E+00 + 1.0759680161689635E+00 9.0065814959575041E-01 6.9954405410381937E-01 + 4.7829179368248487E-01 2.4325303256043485E-01 1.2976875601287290E-03 + -2.4037629598017241E-01 -4.7445136656182429E-01 -6.9371140774041762E-01 + -8.9126903180939554E-01 -1.0607921245814025E+00 -1.1967221930515850E+00 + -1.2944768420790314E+00 -1.3506287301393993E+00 -1.3630536497333927E+00 + -1.3310409593320496E+00 -1.2553604655833184E+00 -1.1382810110377124E+00 + -9.8353744637588503E-01 -7.9624432725501781E-01 -5.8275653215231382E-01 + -3.5047899448130437E-01 -1.0762981393483954E-01 1.3703691730510978E-01 + 3.7454025178297695E-01 5.9600335306020580E-01 7.9299460825270462E-01 + 9.5786600859410942E-01 1.0840751604496381E+00 1.1664770384681964E+00 + 1.2015719081530820E+00 1.1876967655299264E+00 1.1251491820143835E+00 + 1.0162345915724698E+00 8.6523077411605331E-01 6.7826650235846064E-01 + 4.6311492678656280E-01 2.2890614322780922E-01 -1.4232638476809686E-02 + -2.5559700774927302E-01 -4.8436940363301206E-01 -6.9010820181145749E-01 + -8.6324025390867820E-01 -9.9553366826821010E-01 -1.0805270138117202E+00 + -1.1138916650310520E+00 -1.0937057648403474E+00 -1.0206212842896574E+00 + -8.9790986077486279E-01 -7.3137838633341001E-01 -5.2915151022040796E-01 + -3.0132506098915895E-01 -5.9501565395335278E-02 1.8377382489179470E-01 + 4.1565199864768276E-01 6.2366232070103222E-01 7.9640347810412038E-01 + 9.2420450699066126E-01 9.9971689174629341E-01 1.0183999783548978E+00 + 9.7886564780898444E-01 8.8305424524589171E-01 7.3622199973577718E-01 + 5.4673028660284018E-01 3.2563861356740742E-01 8.6115547888539715E-02 + -1.5730577866217157E-01 -3.8958925112096460E-01 -5.9612596526012807E-01 + -7.6367680690440209E-01 -8.8126656603081932E-01 -9.4096784870101280E-01 + -9.3851630873569991E-01 -8.7370628164386632E-01 -7.5052762947052654E-01 + -5.7702004355849434E-01 -3.6483942865908031E-01 -1.2855123225208265E-01 + 1.1531364016908918E-01 3.4938487798980278E-01 5.5668809991379797E-01 + 7.2190366784477222E-01 8.3255558893691417E-01 8.8003616069721691E-01 + 8.6037838748044915E-01 7.7470206602846181E-01 6.2928037210426024E-01 + 4.3520071527932180E-01 2.0762488242160598E-01 -3.5313165051387596E-02 + -2.7390068218994701E-01 -4.8843019401623983E-01 -6.6085061786778287E-01 + -7.7634770976028367E-01 -8.2471294448624732E-01 -8.0136910531357286E-01 + -7.0794264508633853E-01 -5.5230644962077990E-01 -3.4805994966310472E-01 + -1.1346340715730853E-01 1.3010450672060656E-01 3.6004684620801841E-01 + 5.5464487526282369E-01 6.9515956657763411E-01 7.6773335204025439E-01 + 7.6489337180335304E-01 6.8648410926021541E-01 5.3990372826760036E-01 + 3.3958162384787299E-01 1.0570952190419980E-01 -1.3768202053642381E-01 + -3.6513383957169776E-01 -5.5242336906553335E-01 -6.7920958189988312E-01 + -7.3136606829357598E-01 -7.0272581832586867E-01 -5.9600915074795702E-01 + -4.2278428795078327E-01 -2.0241194421521191E-01 3.9958933324556731E-02 + 2.7616009219929866E-01 4.7824921634267148E-01 6.2186645496078963E-01 + 6.8929525608520170E-01 6.7183951129615527E-01 5.7117259988647029E-01 + 3.9944126613514169E-01 1.7803446961537928E-01 -6.4891975350958461E-02 + -2.9788023063201574E-01 -4.9021895653566361E-01 -6.1606361641520579E-01 + -6.5807280823157421E-01 -6.1003371947162299E-01 -4.7805603605648134E-01 + -2.8008749185636989E-01 -4.3728058300880522E-02 1.9743545333280102E-01 + 4.0852072477238738E-01 5.5843084563810952E-01 6.2458707283756443E-01 + 5.9657883163016900E-01 4.7811318010907772E-01 2.8686867570673147E-01 + 5.2161587715932059E-02 -1.8932561222509758E-01 -3.9917463630823907E-01 + -5.4338134701660945E-01 -5.9804376977878260E-01 -5.5361754107390493E-01 + -4.1694461114957526E-01 -2.1058786644173622E-01 3.0561510080936691E-02 + 2.6496239264449534E-01 4.5151199751706933E-01 5.5685684116766399E-01 + 5.6161876127359511E-01 4.6433916175698714E-01 2.8228723902449226E-01 + 4.8808974745352944E-02 -1.9247115048136559E-01 -3.9565795504230861E-01 + -5.2137227551569509E-01 -5.4463633394022393E-01 -4.6024363057601148E-01 + -2.8439708788874440E-01 -5.2077720852311278E-02 1.8954969814194900E-01 + 3.9053991114194275E-01 5.0855440696173970E-01 5.1807430250028774E-01 + 4.1638875794769425E-01 2.2487567506641293E-01 -1.4966879039446683E-02 + -2.5014123276429867E-01 -4.2773103104511756E-01 -5.0695794838920216E-01 + -4.6895135182805581E-01 -3.2181806938526542E-01 -9.9552359262474688E-02 + 1.4529249696936791E-01 3.5373818590862516E-01 4.7460899409264190E-01 + 4.7743633846718808E-01 3.6072513293279912E-01 1.5322405353325577E-01 + -9.2514409324867250E-02 -3.1303532981068533E-01 -4.5030507753319315E-01 + -4.6729781408096432E-01 -3.5860153570048331E-01 -1.5287338866497338E-01 + 9.3987162088260592E-02 3.1355782796125992E-01 4.4378625063500526E-01 + 4.4688693367471627E-01 3.2100878233598490E-01 1.0190898785246147E-01 + -1.4642278078878357E-01 -3.5000031798220349E-01 -4.4690534519412561E-01 + -4.0662641451332215E-01 -2.4051508241092179E-01 4.2672170082735928E-04 + 2.4044194290977472E-01 4.0252581550473421E-01 4.3338681583529232E-01 + 3.2172742491056333E-01 1.0337520813970531E-01 -1.4921660931128741E-01 + -3.5041509471887389E-01 -4.3045606438174711E-01 -3.6027953426093778E-01 + -1.6313925105127994E-01 9.1927025445893526E-02 3.1345941062083155E-01 + 4.2020662498438122E-01 3.7149382239026590E-01 1.8382726183245182E-01 + -7.3361850447754728E-02 -3.0243421923116370E-01 -4.1435003345162746E-01 + -3.6385050454196344E-01 -1.6895745285532685E-01 9.3975552774178461E-02 + 3.1912118165447362E-01 4.1353373251088071E-01 3.3621680358903350E-01 + 1.1727606489040053E-01 -1.5220940756827664E-01 -3.5704073534200970E-01 + -4.0708777677543667E-01 -2.7791816868072122E-01 -2.4232085698576745E-02 + 2.4166132712679961E-01 3.9872439711913410E-01 3.7262749630106662E-01 + 1.7230172952111730E-01 -1.1085603488619016E-01 -3.4316727420847187E-01 + -4.1141485352957635E-01 -2.7898712377439411E-01 -7.2541401647240929E-03 + 2.7082089286510719E-01 4.1470684832276594E-01 3.4778890915243077E-01 + 9.9867299656486996E-02 -2.0354093816364446E-01 -4.0312578352604900E-01 + -3.8939703455058033E-01 -1.6429369510434352E-01 1.5447082134984294E-01 + 3.9283697042213650E-01 4.1497421169797621E-01 2.0207559296466532E-01 + -1.3085851007463503E-01 -3.9456850783774106E-01 -4.3232706659442993E-01 + -2.1441318629140849E-01 1.3715623670507573E-01 4.1398542661731685E-01 + 4.4385341330631295E-01 1.9926530651558988E-01 -1.7691705578341718E-01 + -4.5164104742857297E-01 -4.4508965858228616E-01 -1.5004971539219106E-01 + 2.5262876992063404E-01 5.0143144185861321E-01 4.2335930527626670E-01 + 5.6305192949354189E-02 -3.6272321283513104E-01 -5.4726122499626018E-01 + -3.5722652072987271E-01 9.2400988413600157E-02 4.9510920547497383E-01 + 5.5894032897214041E-01 2.1919117769897195E-01 -2.9725751258344701E-01 + -6.1768337451782274E-01 -4.9081074204441361E-01 1.4036468834367958E-02 + 5.3431258445885432E-01 6.6971048449826487E-01 2.9029597749801705E-01 + -3.3899598665963543E-01 -7.3504506464934694E-01 -5.6452685647882583E-01 + 7.3728435607041024E-02 6.9124474563183158E-01 7.7726421485539354E-01 + + + 4.5657759257383690E-14 3.4138148533783361E-05 6.8482740125709661E-05 + 1.0303502319394371E-04 1.3779625370614131E-04 1.7276769522510702E-04 + 2.0795061895471741E-04 2.4334630378613272E-04 2.7895603634427532E-04 + 3.1478111103460895E-04 3.5082283009017448E-04 3.8708250361893661E-04 + 4.2356144965139731E-04 4.6026099418850728E-04 4.9718247124986095E-04 + 5.3432722292219158E-04 5.7169659940815051E-04 6.0929195907538365E-04 + 6.4711466850591172E-04 6.8516610254579907E-04 7.2344764435512492E-04 + 7.6196068545826827E-04 8.0070662579447807E-04 8.3968687376876315E-04 + 8.7890284630308391E-04 9.1835596888786126E-04 9.5804767563378011E-04 + 9.9797940932392346E-04 1.0381526214662184E-03 1.0785687723461888E-03 + 1.1192293310800367E-03 1.1601357756680453E-03 1.2012895930482966E-03 + 1.2426922791507256E-03 1.2843453389514837E-03 1.3262502865276564E-03 + 1.3684086451122869E-03 1.4108219471497385E-03 1.4534917343514166E-03 + 1.4964195577517783E-03 1.5396069777647377E-03 1.5830555642403618E-03 + 1.6267668965219441E-03 1.6707425635034039E-03 1.7149841636870467E-03 + 1.7594933052416588E-03 1.8042716060609598E-03 1.8493206938224231E-03 + 1.8946422060464240E-03 1.9402377901557653E-03 1.9861091035355528E-03 + 2.0322578135934491E-03 2.0786855978202718E-03 2.1253941438509646E-03 + 2.1723851495259409E-03 2.2196603229528017E-03 2.2672213825684151E-03 + 2.3150700572013728E-03 2.3632080861348517E-03 2.4116372191697946E-03 + 2.4603592166885443E-03 2.5093758497188156E-03 2.5586888999980686E-03 + 2.6083001600382700E-03 2.6582114331910448E-03 2.7084245337132325E-03 + 2.7589412868328084E-03 2.8097635288152558E-03 2.8608931070302867E-03 + 2.9123318800189954E-03 2.9640817175614069E-03 3.0161445007444491E-03 + 3.0685221220303162E-03 3.1212164853252561E-03 3.1742295060487656E-03 + 3.2275631112032199E-03 3.2812192394439106E-03 3.3351998411495077E-03 + 3.3895068784929429E-03 3.4441423255127399E-03 3.4991081681847698E-03 + 3.5544064044944041E-03 3.6100390445091782E-03 3.6660081104518036E-03 + 3.7223156367737157E-03 3.7789636702289789E-03 3.8359542699487035E-03 + 3.8932895075158825E-03 3.9509714670406849E-03 4.0090022452361944E-03 + 4.0673839514946356E-03 4.1261187079640318E-03 4.1852086496253467E-03 + 4.2446559243700614E-03 4.3044626930782634E-03 4.3646311296971852E-03 + 4.4251634213202003E-03 4.4860617682663346E-03 4.5473283841602277E-03 + 4.6089654960125934E-03 4.6709753443011622E-03 4.7333601830521045E-03 + 4.7961222799219718E-03 4.8592639162801021E-03 4.9227873872915448E-03 + 4.9866950020004764E-03 5.0509890834141181E-03 5.1156719685871762E-03 + 5.1807460087067809E-03 5.2462135691779396E-03 5.3120770297094997E-03 + 5.3783387844006597E-03 5.4450012418279549E-03 5.5120668251328287E-03 + 5.5795379721096843E-03 5.6474171352944632E-03 5.7157067820538436E-03 + 5.7844093946748500E-03 5.8535274704551070E-03 5.9230635217936032E-03 + 5.9930200762819980E-03 6.0633996767964684E-03 6.1342048815901575E-03 + 6.2054382643861239E-03 6.2771024144709000E-03 6.3491999367886170E-03 + 6.4217334520356197E-03 6.4947055967557663E-03 6.5681190234362450E-03 + 6.6419764006039423E-03 6.7162804129224695E-03 6.7910337612896842E-03 + 6.8662391629359266E-03 6.9418993515226830E-03 7.0180170772419980E-03 + 7.0945951069164180E-03 7.1716362240995171E-03 7.2491432291770875E-03 + 7.3271189394689207E-03 7.4055661893311624E-03 7.4844878302593497E-03 + 7.5638867309920383E-03 7.6437657776150568E-03 7.7241278736664013E-03 + 7.8049759402417434E-03 7.8863129161005994E-03 7.9681417577731339E-03 + 8.0504654396675989E-03 8.1332869541784446E-03 8.2166093117950582E-03 + 8.3004355412111628E-03 8.3847686894348988E-03 8.4696118218995711E-03 + 8.5549680225750196E-03 8.6408403940797119E-03 8.7272320577935075E-03 + 8.8141461539710704E-03 8.9015858418560190E-03 8.9895542997956920E-03 + 9.0780547253567212E-03 9.1670903354411394E-03 9.2566643664033828E-03 + 9.3467800741678427E-03 9.4374407343472098E-03 9.5286496423615114E-03 + 9.6204101135578275E-03 9.7127254833308269E-03 9.8055991072439844E-03 + 9.8990343611514466E-03 9.9930346413207600E-03 1.0087603364556316E-02 + 1.0182743968323447E-02 1.0278459910873415E-02 1.0374754671369026E-02 + 1.0471631750011078E-02 1.0569094668165569E-02 1.0667146968491642E-02 + 1.0765792215070329E-02 1.0865033993534079E-02 1.0964875911196992E-02 + 1.1065321597185981E-02 1.1166374702572642E-02 1.1268038900505834E-02 + 1.1370317886345288E-02 1.1473215377795760E-02 1.1576735115042206E-02 + 1.1680880860885683E-02 1.1785656400880034E-02 1.1891065543469505E-02 + 1.1997112120127067E-02 1.2103799985493694E-02 1.2211133017518376E-02 + 1.2319115117599097E-02 1.2427750210724533E-02 1.2537042245616704E-02 + 1.2646995194874437E-02 1.2757613055117752E-02 1.2868899847132994E-02 + 1.2980859616019047E-02 1.3093496431334221E-02 1.3206814387244149E-02 + 1.3320817602670586E-02 1.3435510221440962E-02 1.3550896412439105E-02 + 1.3666980369756538E-02 1.3783766312845027E-02 1.3901258486669748E-02 + 1.4019461161863631E-02 1.4138378634882485E-02 1.4258015228161072E-02 + 1.4378375290270235E-02 1.4499463196074777E-02 1.4621283346892529E-02 + 1.4743840170654159E-02 1.4867138122064137E-02 1.4991181682762530E-02 + 1.5115975361487797E-02 1.5241523694240720E-02 1.5367831244449010E-02 + 1.5494902603133315E-02 1.5622742389073853E-02 1.5751355248978249E-02 + 1.5880745857650449E-02 1.6010918918160429E-02 1.6141879162015094E-02 + 1.6273631349330211E-02 1.6406180269003288E-02 1.6539530738887594E-02 + 1.6673687605967148E-02 1.6808655746532807E-02 1.6944440066359454E-02 + 1.7081045500884164E-02 1.7218477015385498E-02 1.7356739605163925E-02 + 1.7495838295723227E-02 1.7635778142953102E-02 1.7776564233312798E-02 + 1.7918201684015918E-02 1.8060695643216242E-02 1.8204051290194822E-02 + 1.8348273835548080E-02 1.8493368521377024E-02 1.8639340621477794E-02 + 1.8786195441533069E-02 1.8933938319304986E-02 1.9082574624828777E-02 + 1.9232109760608036E-02 1.9382549161810952E-02 1.9533898296467525E-02 + 1.9686162665668392E-02 1.9839347803764517E-02 1.9993459278568274E-02 + 2.0148502691555607E-02 2.0304483678069540E-02 2.0461407907524830E-02 + 2.0619281083613921E-02 2.0778108944513991E-02 2.0937897263095483E-02 + 2.1098651847131656E-02 2.1260378539509673E-02 2.1423083218442610E-02 + 2.1586771797683080E-02 2.1751450226737943E-02 2.1917124491084412E-02 + 2.2083800612387346E-02 2.2251484648718064E-02 2.2420182694774242E-02 + 2.2589900882101204E-02 2.2760645379314770E-02 2.2932422392325055E-02 + 2.3105238164562024E-02 2.3279098977202012E-02 2.3454011149395972E-02 + 2.3629981038498851E-02 2.3807015040300496E-02 2.3985119589257895E-02 + 2.4164301158728699E-02 2.4344566261206416E-02 2.4525921448556892E-02 + 2.4708373312256050E-02 2.4891928483629346E-02 2.5076593634092540E-02 + 2.5262375475393846E-02 2.5449280759857709E-02 2.5637316280629884E-02 + 2.5826488871924166E-02 2.6016805409270368E-02 2.6208272809764111E-02 + 2.6400898032317786E-02 2.6594688077913327E-02 2.6789649989856296E-02 + 2.6985790854031549E-02 2.7183117799160592E-02 2.7381637997060247E-02 + 2.7581358662903011E-02 2.7782287055479093E-02 2.7984430477459792E-02 + 2.8187796275662522E-02 2.8392391841317685E-02 2.8598224610336835E-02 + 2.8805302063582533E-02 2.9013631727140051E-02 2.9223221172590363E-02 + 2.9434078017285061E-02 2.9646209924622809E-02 2.9859624604327440E-02 + 3.0074329812727878E-02 3.0290333353039427E-02 3.0507643075647253E-02 + 3.0726266878391029E-02 3.0946212706851658E-02 3.1167488554639737E-02 + 3.1390102463685322E-02 3.1614062524530091E-02 3.1839376876620806E-02 + 3.2066053708604603E-02 3.2294101258626119E-02 3.2523527814626557E-02 + 3.2754341714644308E-02 3.2986551347117615E-02 3.3220165151188537E-02 + 3.3455191617009689E-02 3.3691639286051983E-02 3.3929516751414347E-02 + 3.4168832658135889E-02 3.4409595703509196E-02 3.4651814637395972E-02 + 3.4895498262544490E-02 3.5140655434908852E-02 3.5387295063970287E-02 + 3.5635426113060288E-02 3.5885057599685737E-02 3.6136198595856067E-02 + 3.6388858228412299E-02 3.6643045679357951E-02 3.6898770186192233E-02 + 3.7156041042244896E-02 3.7414867597013519E-02 3.7675259256502308E-02 + 3.7937225483563375E-02 3.8200775798239842E-02 3.8465919778111118E-02 + 3.8732667058640154E-02 3.9001027333522884E-02 3.9271010355039541E-02 + 3.9542625934408542E-02 3.9815883942142055E-02 4.0090794308403822E-02 + 4.0367367023369308E-02 4.0645612137587814E-02 4.0925539762346717E-02 + 4.1207160070038454E-02 4.1490483294528598E-02 4.1775519731527551E-02 + 4.2062279738963163E-02 4.2350773737356497E-02 4.2641012210199399E-02 + 4.2933005704334566E-02 4.3226764830337605E-02 4.3522300262901763E-02 + 4.3819622741224827E-02 4.4118743069397996E-02 4.4419672116797690E-02 + 4.4722420818479269E-02 4.5027000175573310E-02 4.5333421255684243E-02 + 4.5641695193291275E-02 4.5951833190151788E-02 4.6263846515707308E-02 + 4.6577746507491614E-02 4.6893544571541455E-02 4.7211252182809769E-02 + 4.7530880885581578E-02 4.7852442293891517E-02 4.8175948091945135E-02 + 4.8501410034541809E-02 4.8828839947500369E-02 4.9158249728087459E-02 + 4.9489651345448388E-02 4.9823056841040554E-02 5.0158478329069556E-02 + 5.0495927996927391E-02 5.0835418105634390E-02 5.1176960990282461E-02 + 5.1520569060482177E-02 5.1866254800811674E-02 5.2214030771268675E-02 + 5.2563909607725195E-02 5.2915904022384871E-02 5.3270026804242920E-02 + 5.3626290819549227E-02 5.3984709012273764E-02 5.4345294404575091E-02 + 5.4708060097271499E-02 5.5073019270315264E-02 5.5440185183269167E-02 + 5.5809571175786499E-02 5.6181190668093475E-02 5.6555057161474770E-02 + 5.6931184238762103E-02 5.7309585564825009E-02 5.7690274887065782E-02 + 5.8073266035915908E-02 5.8458572925337023E-02 5.8846209553323328E-02 + 5.9236190002408200E-02 5.9628528440173252E-02 6.0023239119760631E-02 + 6.0420336380388032E-02 6.0819834647867471E-02 6.1221748435126344E-02 + 6.1626092342732225E-02 6.2032881059420508E-02 6.2442129362625338E-02 + 6.2853852119013467E-02 6.3268064285021297E-02 6.3684780907396099E-02 + 6.4104017123738463E-02 6.4525788163049949E-02 6.4950109346283175E-02 + 6.5376996086894915E-02 6.5806463891403072E-02 6.6238528359946522E-02 + 6.6673205186848439E-02 6.7110510161183329E-02 6.7550459167346644E-02 + 6.7993068185628835E-02 6.8438353292791673E-02 6.8886330662649001E-02 + 6.9337016566650270E-02 6.9790427374467834E-02 7.0246579554587824E-02 + 7.0705489674904365E-02 7.1167174403317185E-02 7.1631650508333214E-02 + 7.2098934859671407E-02 7.2569044428871438E-02 7.3041996289905139E-02 + 7.3517807619793304E-02 7.3996495699224327E-02 7.4478077913177551E-02 + 7.4962571751550286E-02 7.5449994809787854E-02 7.5940364789518239E-02 + 7.6433699499189794E-02 7.6930016854713582E-02 7.7429334880108253E-02 + 7.7931671708150019E-02 7.8437045581025752E-02 7.8945474850990044E-02 + 7.9456977981026466E-02 7.9971573545512292E-02 8.0489280230887555E-02 + 8.1010116836327833E-02 8.1534102274420955E-02 8.2061255571848110E-02 + 8.2591595870068493E-02 8.3125142426008200E-02 8.3661914612753269E-02 + 8.4201931920246997E-02 8.4745213955990384E-02 8.5291780445748366E-02 + 8.5841651234258659E-02 8.6394846285945806E-02 8.6951385685638552E-02 + 8.7511289639292875E-02 8.8074578474717169E-02 8.8641272642304078E-02 + 8.9211392715764434E-02 8.9784959392867236E-02 9.0361993496183124E-02 + 9.0942515973832030E-02 9.1526547900235997E-02 9.2114110476876065E-02 + 9.2705225033053132E-02 9.3299913026654191E-02 9.3898196044922153E-02 + 9.4500095805230874E-02 9.5105634155864580E-02 9.5714833076801759E-02 + 9.6327714680503052E-02 9.6944301212705364E-02 9.7564615053218853E-02 + 9.8188678716729844E-02 9.8816514853607637E-02 9.9448146250716823E-02 + 1.0008359583223317E-01 1.0072288666046601E-01 1.0136604193668360E-01 + 1.0201308500194445E-01 1.0266403933793347E-01 1.0331892856780230E-01 + 1.0397777645701520E-01 1.0464060691419977E-01 1.0530744399200229E-01 + 1.0597831188794836E-01 1.0665323494530871E-01 1.0733223765396918E-01 + 1.0801534465130756E-01 1.0870258072307265E-01 1.0939397080427210E-01 + 1.1008953998006166E-01 1.1078931348664289E-01 1.1149331671216349E-01 + 1.1220157519762466E-01 1.1291411463779259E-01 1.1363096088211601E-01 + 1.1435213993564848E-01 1.1507767795997602E-01 1.1580760127415099E-01 + 1.1654193635563001E-01 1.1728070984121862E-01 1.1802394852802053E-01 + 1.1877167937439231E-01 1.1952392950090444E-01 1.2028072619130711E-01 + 1.2104209689350180E-01 1.2180806922051826E-01 1.2257867095149816E-01 + 1.2335393003268250E-01 1.2413387457840627E-01 1.2491853287209911E-01 + 1.2570793336728922E-01 1.2650210468861675E-01 1.2730107563284923E-01 + 1.2810487516990565E-01 1.2891353244388520E-01 1.2972707677410178E-01 + 1.3054553765612473E-01 1.3136894476282598E-01 1.3219732794543182E-01 + 1.3303071723458243E-01 1.3386914284139562E-01 1.3471263515853849E-01 + 1.3556122476130356E-01 1.3641494240869190E-01 1.3727381904450242E-01 + 1.3813788579842715E-01 1.3900717398715282E-01 1.3988171511546782E-01 + 1.4076154087737749E-01 1.4164668315722337E-01 1.4253717403081081E-01 + 1.4343304576654115E-01 1.4433433082655187E-01 1.4524106186786201E-01 + 1.4615327174352474E-01 1.4707099350378583E-01 1.4799426039724972E-01 + 1.4892310587205035E-01 1.4985756357703078E-01 1.5079766736292749E-01 + 1.5174345128356231E-01 1.5269494959704050E-01 1.5365219676695679E-01 + 1.5461522746360623E-01 1.5558407656520309E-01 1.5655877915910671E-01 + 1.5753937054305259E-01 1.5852588622639305E-01 1.5951836193134147E-01 + 1.6051683359422661E-01 1.6152133736675170E-01 1.6253190961726091E-01 + 1.6354858693201429E-01 1.6457140611646759E-01 1.6560040419656030E-01 + 1.6663561842001134E-01 1.6767708625762048E-01 1.6872484540457758E-01 + 1.6977893378178013E-01 1.7083938953715580E-01 1.7190625104699370E-01 + 1.7297955691728292E-01 1.7405934598505821E-01 1.7514565731975187E-01 + 1.7623853022455552E-01 1.7733800423778645E-01 1.7844411913426356E-01 + 1.7955691492668949E-01 1.8067643186704066E-01 1.8180271044796506E-01 + 1.8293579140418759E-01 1.8407571571392140E-01 1.8522252460029009E-01 + 1.8637625953275466E-01 1.8753696222854890E-01 1.8870467465412294E-01 + 1.8987943902659402E-01 1.9106129781520642E-01 1.9225029374279598E-01 + 1.9344646978726593E-01 1.9464986918306854E-01 1.9586053542269502E-01 + 1.9707851225817397E-01 1.9830384370257670E-01 1.9953657403153091E-01 + 2.0077674778474305E-01 2.0202440976752722E-01 2.0327960505234349E-01 + 2.0454237898034389E-01 2.0581277716292512E-01 2.0709084548329229E-01 + 2.0837663009802754E-01 2.0967017743866823E-01 2.1097153421329470E-01 + 2.1228074740812392E-01 2.1359786428911223E-01 2.1492293240356658E-01 + 2.1625599958176395E-01 2.1759711393857967E-01 2.1894632387512092E-01 + 2.2030367808037471E-01 2.2166922553285720E-01 2.2304301550227668E-01 + 2.2442509755120205E-01 2.2581552153674087E-01 2.2721433761222651E-01 + 2.2862159622891112E-01 2.3003734813767085E-01 2.3146164439071568E-01 + 2.3289453634331098E-01 2.3433607565550613E-01 2.3578631429387131E-01 + 2.3724530453324391E-01 2.3871309895848272E-01 2.4018975046623156E-01 + 2.4167531226668978E-01 2.4316983788539445E-01 2.4467338116500781E-01 + 2.4618599626711463E-01 2.4770773767403173E-01 2.4923866019061836E-01 + 2.5077881894610354E-01 2.5232826939591702E-01 2.5388706732353028E-01 + 2.5545526884230713E-01 2.5703293039736241E-01 2.5862010876742791E-01 + 2.6021686106673070E-01 2.6182324474687585E-01 2.6343931759874206E-01 + 2.6506513775438262E-01 2.6670076368893769E-01 2.6834625422255287E-01 + 2.7000166852230989E-01 2.7166706610416225E-01 2.7334250683488370E-01 + 2.7502805093402083E-01 2.7672375897585866E-01 2.7842969189139399E-01 + 2.8014591097031405E-01 2.8187247786299002E-01 2.8360945458247355E-01 + 2.8535690350650617E-01 2.8711488737953472E-01 2.8888346931473707E-01 + 2.9066271279605643E-01 2.9245268168024263E-01 2.9425344019890598E-01 + 2.9606505296057462E-01 2.9788758495276590E-01 2.9972110154406162E-01 + 3.0156566848619587E-01 3.0342135191614850E-01 3.0528821835824943E-01 + 3.0716633472628890E-01 3.0905576832564152E-01 3.1095658685538957E-01 + 3.1286885841046730E-01 3.1479265148380065E-01 3.1672803496846608E-01 + 3.1867507815985158E-01 3.2063385075782797E-01 3.2260442286892893E-01 + 3.2458686500853834E-01 3.2658124810308736E-01 3.2858764349225811E-01 + 3.3060612293119651E-01 3.3263675859273262E-01 3.3467962306961091E-01 + 3.3673478937672491E-01 3.3880233095336504E-01 3.4088232166546767E-01 + 3.4297483580788057E-01 3.4507994810662668E-01 3.4719773372118445E-01 + 3.4932826824676988E-01 3.5147162771662815E-01 3.5362788860433469E-01 + 3.5579712782609968E-01 3.5797942274308431E-01 3.6017485116372189E-01 + 3.6238349134604603E-01 3.6460542200002799E-01 3.6684072228992048E-01 + 3.6908947183660479E-01 3.7135175071995402E-01 3.7362763948119093E-01 + 3.7591721912526327E-01 3.7822057112322066E-01 3.8053777741459704E-01 + 3.8286892040980453E-01 3.8521408299252818E-01 3.8757334852213005E-01 + 3.8994680083606020E-01 3.9233452425227089E-01 3.9473660357163748E-01 + 3.9715312408038866E-01 3.9958417155253678E-01 4.0202983225231809E-01 + 4.0449019293663624E-01 4.0696534085751129E-01 4.0945536376453506E-01 + 4.1196034990733005E-01 4.1448038803801418E-01 4.1701556741366891E-01 + 4.1956597779881366E-01 4.2213170946788381E-01 4.2471285320771213E-01 + 4.2730950032001425E-01 4.2992174262388183E-01 4.3254967245827247E-01 + 4.3519338268450974E-01 4.3785296668878049E-01 4.4052851838464296E-01 + 4.4322013221552808E-01 4.4592790315725384E-01 4.4865192672053167E-01 + 4.5139229895348587E-01 4.5414911644416484E-01 4.5692247632306171E-01 + 4.5971247626563322E-01 4.6251921449481992E-01 4.6534278978356863E-01 + 4.6818330145735543E-01 4.7104084939670698E-01 4.7391553403972753E-01 + 4.7680745638462035E-01 4.7971671799221066E-01 4.8264342098847246E-01 + 4.8558766806704562E-01 4.8854956249176146E-01 4.9152920809915923E-01 + 4.9452670930100712E-01 4.9754217108681598E-01 5.0057569902635501E-01 + 5.0362739927216105E-01 5.0669737856204911E-01 5.0978574422161282E-01 + 5.1289260416673199E-01 5.1601806690606211E-01 5.1916224154353141E-01 + 5.2232523778082973E-01 5.2550716591988478E-01 5.2870813686534757E-01 + 5.3192826212705224E-01 5.3516765382249232E-01 5.3842642467926716E-01 + 5.4170468803754113E-01 5.4500255785247687E-01 5.4832014869667889E-01 + 5.5165757576261010E-01 5.5501495486501351E-01 5.5839240244331589E-01 + 5.6179003556402696E-01 5.6520797192312011E-01 5.6864632984841201E-01 + 5.7210522830192090E-01 5.7558478688221926E-01 5.7908512582677396E-01 + 5.8260636601426119E-01 5.8614862896688757E-01 5.8971203685267826E-01 + 5.9329671248775995E-01 5.9690277933862435E-01 6.0053036152437778E-01 + 6.0417958381896875E-01 6.0785057165340639E-01 6.1154345111794761E-01 + 6.1525834896428233E-01 6.1899539260767922E-01 6.2275471012912786E-01 + 6.2653643027744865E-01 6.3034068247138808E-01 6.3416759680168400E-01 + 6.3801730403311374E-01 6.4188993560651342E-01 6.4578562364077741E-01 + 6.4970450093482146E-01 6.5364670096953159E-01 6.5761235790967798E-01 + 6.6160160660579825E-01 6.6561458259605966E-01 6.6965142210808015E-01 + 6.7371226206072887E-01 6.7779724006588360E-01 6.8190649443016671E-01 + 6.8604016415663116E-01 6.9019838894643049E-01 6.9438130920043384E-01 + 6.9858906602081650E-01 7.0282180121260585E-01 7.0707965728518674E-01 + 7.1136277745377441E-01 7.1567130564083059E-01 7.2000538647745371E-01 + 7.2436516530471184E-01 7.2875078817493510E-01 7.3316240185296078E-01 + 7.3760015381733257E-01 7.4206419226144416E-01 7.4655466609464050E-01 + 7.5107172494325913E-01 7.5561551915162550E-01 7.6018619978298596E-01 + 7.6478391862039219E-01 7.6940882816751832E-01 7.7406108164943066E-01 + 7.7874083301328811E-01 7.8344823692897969E-01 7.8818344878970770E-01 + 7.9294662471249089E-01 7.9773792153861567E-01 8.0255749683400912E-01 + 8.0740550888954199E-01 8.1228211672126172E-01 8.1718748007055209E-01 + 8.2212175940421661E-01 8.2708511591448308E-01 8.3207771151892418E-01 + 8.3709970886031060E-01 8.4215127130636103E-01 8.4723256294942695E-01 + 8.5234374860607254E-01 8.5748499381657595E-01 8.6265646484433811E-01 + 8.6785832867518686E-01 8.7309075301660144E-01 8.7835390629682819E-01 + 8.8364795766389526E-01 8.8897307698453021E-01 8.9432943484296890E-01 + 8.9971720253965426E-01 9.0513655208983390E-01 9.1058765622203042E-01 + 9.1607068837641381E-01 9.2158582270303790E-01 9.2713323405997317E-01 + 9.3271309801130520E-01 9.3832559082500877E-01 9.4397088947070240E-01 + 9.4964917161725404E-01 9.5536061563026908E-01 9.6110540056942617E-01 + 9.6688370618568997E-01 9.7269571291836332E-01 9.7854160189199879E-01 + 9.8442155491316130E-01 9.9033575446704036E-01 9.9628438371389649E-01 + 1.0022676264853567E+00 1.0082856672805396E+00 1.0143386912620203E+00 + 1.0204268842516124E+00 1.0265504327259980E+00 1.0327095238121509E+00 + 1.0389043452825983E+00 1.0451350855504946E+00 1.0514019336644940E+00 + 1.0577050793034430E+00 1.0640447127708650E+00 1.0704210249892521E+00 + 1.0768342074941355E+00 1.0832844524279679E+00 1.0897719525337657E+00 + 1.0962969011485528E+00 1.1028594921965642E+00 1.1094599201822366E+00 + 1.1160983801829465E+00 1.1227750678415278E+00 1.1294901793585350E+00 + 1.1362439114842637E+00 1.1430364615105097E+00 1.1498680272620818E+00 + 1.1567388070880400E+00 1.1636489998526671E+00 1.1705988049261680E+00 + 1.1775884221750859E+00 1.1846180519524376E+00 1.1916878950875378E+00 + 1.1987981528755585E+00 1.2059490270667501E+00 1.2131407198553799E+00 + 1.2203734338683245E+00 1.2276473721533816E+00 1.2349627381672013E+00 + 1.2423197357629252E+00 1.2497185691774604E+00 1.2571594430184045E+00 + 1.2646425622506223E+00 1.2721681321824556E+00 1.2797363584515591E+00 + 1.2873474470103554E+00 1.2950016041111230E+00 1.3026990362906588E+00 + 1.3104399503545725E+00 1.3182245533611463E+00 1.3260530526047940E+00 + 1.3339256555990846E+00 1.3418425700593355E+00 1.3498040038847685E+00 + 1.3578101651402048E+00 1.3658612620373025E+00 1.3739575029153417E+00 + 1.3820990962214998E+00 1.3902862504906683E+00 1.3985191743247605E+00 + 1.4067980763715133E+00 1.4151231653027707E+00 1.4234946497922454E+00 + 1.4319127384927499E+00 1.4403776400128567E+00 1.4488895628930289E+00 + 1.4574487155811751E+00 1.4660553064076052E+00 1.4747095435594242E+00 + 1.4834116350543107E+00 1.4921617887136711E+00 1.5009602121352004E+00 + 1.5098071126647736E+00 1.5187026973676987E+00 1.5276471729993228E+00 + 1.5366407459749356E+00 1.5456836223390180E+00 1.5547760077337645E+00 + 1.5639181073669022E+00 1.5731101259787896E+00 1.5823522678087694E+00 + 1.5916447365607505E+00 1.6009877353680557E+00 1.6103814667574572E+00 + 1.6198261326124199E+00 1.6293219341355392E+00 1.6388690718101493E+00 + 1.6484677453610777E+00 1.6581181537145426E+00 1.6678204949571951E+00 + 1.6775749662942230E+00 1.6873817640066060E+00 1.6972410834073826E+00 + 1.7071531187970312E+00 1.7171180634178320E+00 1.7271361094073101E+00 + 1.7372074477506316E+00 1.7473322682320138E+00 1.7575107593850889E+00 + 1.7677431084422088E+00 1.7780295012827008E+00 1.7883701223799988E+00 + 1.7987651547476835E+00 1.8092147798843812E+00 1.8197191777175059E+00 + 1.8302785265458303E+00 1.8408930029808552E+00 1.8515627818869640E+00 + 1.8622880363203336E+00 1.8730689374665737E+00 1.8839056545770887E+00 + 1.8947983549041270E+00 1.9057472036344887E+00 1.9167523638218764E+00 + 1.9278139963178642E+00 1.9389322597014553E+00 1.9501073102072097E+00 + 1.9613393016518927E+00 1.9726283853596700E+00 1.9839747100857419E+00 + 1.9953784219384856E+00 2.0068396642999811E+00 2.0183585777449817E+00 + 2.0299352999582183E+00 2.0415699656500754E+00 2.0532627064705791E+00 + 2.0650136509216370E+00 2.0768229242675882E+00 2.0886906484439081E+00 + 2.1006169419641720E+00 2.1126019198251114E+00 2.1246456934098501E+00 + 2.1367483703891756E+00 2.1489100546209428E+00 2.1611308460474081E+00 + 2.1734108405906416E+00 2.1857501300458195E+00 2.1981488019724758E+00 + 2.2106069395836210E+00 2.2231246216326856E+00 2.2357019222982979E+00 + 2.2483389110668086E+00 2.2610356526125255E+00 2.2737922066756684E+00 + 2.2866086279379521E+00 2.2994849658957479E+00 2.3124212647308608E+00 + 2.3254175631787715E+00 2.3384738943943972E+00 2.3515902858152424E+00 + 2.3647667590219896E+00 2.3780033295963738E+00 2.3913000069763912E+00 + 2.4046567943087593E+00 2.4180736882985414E+00 2.4315506790559631E+00 + 2.4450877499403187E+00 2.4586848774009336E+00 2.4723420308151081E+00 + 2.4860591723230558E+00 2.4998362566597097E+00 2.5136732309833953E+00 + 2.5275700347012657E+00 2.5415265992915193E+00 2.5555428481222600E+00 + 2.5696186962670247E+00 2.5837540503168368E+00 2.5979488081888027E+00 + 2.6122028589311648E+00 2.6265160825246983E+00 2.6408883496805253E+00 + 2.6553195216341194E+00 2.6698094499355554E+00 2.6843579762359160E+00 + 2.6989649320697455E+00 2.7136301386335520E+00 2.7283534065602351E+00 + 2.7431345356894061E+00 2.7579733148335408E+00 2.7728695215398180E+00 + 2.7878229218477184E+00 2.8028332700421483E+00 2.8179003084021610E+00 + 2.8330237669450673E+00 2.8482033631660042E+00 2.8634388017727632E+00 + 2.8787297744158602E+00 2.8940759594137848E+00 2.9094770214732923E+00 + 2.9249326114047300E+00 2.9404423658322520E+00 2.9560059068988922E+00 + 2.9716228419663775E+00 2.9872927633096196E+00 3.0030152478057839E+00 + 3.0187898566178770E+00 3.0346161348727265E+00 3.0504936113332977E+00 + 3.0664217980652264E+00 3.0824001900975526E+00 3.0984282650774237E+00 + 3.1145054829188492E+00 3.1306312854452449E+00 3.1468050960258012E+00 + 3.1630263192055299E+00 3.1792943403288407E+00 3.1956085251566728E+00 + 3.2119682194769394E+00 3.2283727487083196E+00 3.2448214174971692E+00 + 3.2613135093075742E+00 3.2778482860043132E+00 3.2944249874287506E+00 + 3.3110428309674558E+00 3.3277010111134819E+00 3.3443986990202261E+00 + 3.3611350420476791E+00 3.3779091633010494E+00 3.3947201611615689E+00 + 3.4115671088094492E+00 3.4284490537387673E+00 3.4453650172642942E+00 + 3.4623139940200400E+00 3.4792949514494573E+00 3.4963068292871786E+00 + 3.5133485390321635E+00 3.5304189634121195E+00 3.5475169558391051E+00 + 3.5646413398561845E+00 3.5817909085750057E+00 3.5989644241041527E+00 + 3.6161606169682474E+00 3.6333781855175111E+00 3.6506157953278491E+00 + 3.6678720785911669E+00 3.6851456334958939E+00 3.7024350235975709E+00 + 3.7197387771793071E+00 3.7370553866021057E+00 3.7543833076447806E+00 + 3.7717209588334484E+00 3.7890667207604056E+00 3.8064189353923195E+00 + 3.8237759053674925E+00 3.8411358932822202E+00 3.8584971209659558E+00 + 3.8758577687452940E+00 3.8932159746965298E+00 3.9105698338867376E+00 + 3.9279173976031738E+00 3.9452566725709666E+00 3.9625856201588454E+00 + 3.9799021555728618E+00 3.9972041470379929E+00 4.0144894149673602E+00 + 4.0317557311191816E+00 4.0490008177409953E+00 4.0662223467013927E+00 + 4.0834179386088492E+00 4.1005851619176763E+00 4.1177215320209335E+00 + 4.1348245103301968E+00 4.1518915033419992E+00 4.1689198616909486E+00 + 4.1859068791892815E+00 4.2028497918528016E+00 4.2197457769131219E+00 + 4.2365919518160204E+00 4.2533853732058606E+00 4.2701230358959936E+00 + 4.2868018718249470E+00 4.3034187489984372E+00 4.3199704704169868E+00 + 4.3364537729891444E+00 4.3528653264302033E+00 4.3692017321462622E+00 + 4.3854595221037025E+00 4.4016351576838399E+00 4.4177250285228320E+00 + 4.4337254513366773E+00 4.4496326687313132E+00 4.4654428479976804E+00 + 4.4811520798918627E+00 4.4967563774001134E+00 4.5122516744887564E+00 + 4.5276338248390520E+00 4.5428986005669287E+00 4.5580416909275305E+00 + 4.5730587010046806E+00 4.5879451503852327E+00 4.6026964718183132E+00 + 4.6173080098594523E+00 4.6317750194997744E+00 4.6460926647801246E+00 + 4.6602560173903624E+00 4.6742600552537459E+00 4.6880996610966026E+00 + 4.7017696210033293E+00 4.7152646229568633E+00 4.7285792553647594E+00 + 4.7417080055708931E+00 4.7546452583532135E+00 4.7673852944074282E+00 + 4.7799222888169446E+00 4.7922503095093765E+00 4.8043633156995620E+00 + 4.8162551563196603E+00 4.8279195684363465E+00 4.8393501756555333E+00 + 4.8505404865148156E+00 4.8614838928640811E+00 4.8721736682345558E+00 + 4.8826029661966981E+00 4.8927648187072723E+00 4.9026521344461704E+00 + 4.9122576971433087E+00 4.9215741638960759E+00 4.9305940634779848E+00 + 4.9393097946388789E+00 4.9477136243974149E+00 4.9557976863263304E+00 + 4.9635539788312322E+00 4.9709743634234203E+00 4.9780505629876730E+00 + 4.9847741600455304E+00 4.9911365950149857E+00 4.9971291644673776E+00 + 5.0027430193824021E+00 5.0079691634019738E+00 5.0127984510841817E+00 + 5.0172215861580680E+00 5.0212291197804300E+00 5.0248114487957602E+00 + 5.0279588140003266E+00 5.0306612984117942E+00 5.0329088255454568E+00 + 5.0346911576985658E+00 5.0359978942440016E+00 5.0368184699347829E+00 + 5.0371421532208700E+00 5.0369580445799178E+00 5.0362550748634298E+00 + 5.0350220036602433E+00 5.0332474176788793E+00 5.0309197291507353E+00 + 5.0280271742560307E+00 5.0245578115744438E+00 5.0204995205625638E+00 + 5.0158400000602219E+00 5.0105667668280969E+00 5.0046671541187662E+00 + 4.9981283102837253E+00 4.9909371974187939E+00 4.9830805900506281E+00 + 4.9745450738669348E+00 4.9653170444932471E+00 4.9553827063191624E+00 + 4.9447280713770070E+00 4.9333389582761962E+00 4.9212009911962467E+00 + 4.9082995989421834E+00 4.8946200140653930E+00 4.8801472720538461E+00 + 4.8648662105951983E+00 4.8487614689167344E+00 4.8318174872060151E+00 + 4.8140185061164473E+00 4.7953485663620210E+00 4.7757915084053906E+00 + 4.7553309722441783E+00 4.7339503972998669E+00 4.7116330224142544E+00 + 4.6883618859584875E+00 4.6641198260596752E+00 4.6388894809505024E+00 + 4.6126532894473140E+00 4.5853934915621215E+00 4.5570921292546656E+00 + 4.5277310473300734E+00 4.4972918944887788E+00 4.4657561245345034E+00 + 4.4331049977472485E+00 4.3993195824278253E+00 4.3643807566206965E+00 + 4.3282692100225377E+00 4.2909654460834687E+00 4.2524497843086619E+00 + 4.2127023627678879E+00 4.1717031408209833E+00 4.1294319020672718E+00 + 4.0858682575272365E+00 4.0409916490650515E+00 3.9947813530605440E+00 + 3.9472164843396937E+00 3.8982760003727899E+00 3.8479387057494976E+00 + 3.7961832569406448E+00 3.7429881673563687E+00 3.6883318127107549E+00 + 3.6321924367032858E+00 3.5745481570273805E+00 3.5153769717169676E+00 + 3.4546567658418423E+00 3.3923653185631641E+00 3.3284803105600727E+00 + 3.2629793318395324E+00 3.1958398899406770E+00 3.1270394185460666E+00 + 3.0565552865118435E+00 2.9843648073291900E+00 2.9104452490299706E+00 + 2.8347738445488990E+00 2.7573278025557881E+00 2.6780843187705483E+00 + 2.5970205877746650E+00 2.5141138153323701E+00 2.4293412312355627E+00 + 2.3426801026857440E+00 2.2541077482276513E+00 2.1636015522478713E+00 + 2.0711389800534090E+00 1.9766975935437789E+00 1.8802550674917160E+00 + 1.7817892064462719E+00 1.6812779622732636E+00 1.5786994523475064E+00 + 1.4740319784111338E+00 1.3672540461129574E+00 1.2583443852428642E+00 + 1.1472819706762796E+00 1.0340460440424668E+00 9.1861613613145821E-01 + 8.0097209005327208E-01 6.8109408516385228E-01 5.5896266177096543E-01 + 4.3455874663417021E-01 3.0786367927149727E-01 1.7885923908640342E-01 + 4.7527673327021902E-02 -8.6148274109423884E-02 -2.2218533301598026E-01 + -3.6059967634719026E-01 -5.0140688881148743E-01 -6.4462193457513195E-01 + -7.9025912406707088E-01 -9.3833207987694411E-01 -1.0888537017370836E+00 + -1.2418361305820895E+00 -1.3972907116785693E+00 -1.5552279568203518E+00 + -1.7156575055839014E+00 -1.8785880856411230E+00 -2.0440274721265070E+00 + -2.2119824460583239E+00 -2.3824587518130871E+00 -2.5554610536559368E+00 + -2.7309928913290662E+00 -2.9090566347031612E+00 -3.0896534374983711E+00 + -3.2727831900820212E+00 -3.4584444713539706E+00 -3.6466344997299736E+00 + -3.8373490832383497E+00 -4.0305825687444141E+00 -4.2263277903220553E+00 + -4.4245760167920078E+00 -4.6253168984504160E+00 -4.8285384130128604E+00 + -5.0342268108024042E+00 -5.2423665592122433E+00 -5.4529402864773102E+00 + -5.6659287247920656E+00 -5.8813106528135295E+00 -6.0990628375945519E+00 + -6.3191599759933883E+00 -6.5415746356096118E+00 -6.7662771953015488E+00 + -6.9932357853422085E+00 -7.2224162272763470E+00 -7.4537819735433359E+00 + -7.6872940469372990E+00 -7.9229109799777984E+00 -8.1605887542705418E+00 + -8.4002807399404205E+00 -8.6419376352259825E+00 -8.8855074063272070E+00 + -9.1309352276046134E+00 -9.3781634222314647E+00 -9.6271314034077395E+00 + -9.8777756162481971E+00 -1.0130029480461726E+01 -1.0383823333946873E+01 + -1.0639084377431013E+01 -1.0895736620288368E+01 -1.1153700827675342E+01 + -1.1412894469129977E+01 -1.1673231668785339E+01 -1.1934623157353998E+01 + -1.2196976226044830E+01 -1.2460194682580987E+01 -1.2724178809491569E+01 + -1.2988825324856281E+01 -1.3254027345686543E+01 -1.3519674354133922E+01 + -1.3785652166720435E+01 -1.4051842906790021E+01 -1.4318124980387973E+01 + -1.4584373055777130E+01 -1.4850458046806505E+01 -1.5116247100350353E+01 + -1.5381603588042632E+01 -1.5646387102532975E+01 -1.5910453458496159E+01 + -1.6173654698628056E+01 -1.6435839104866815E+01 -1.6696851215078063E+01 + -1.6956531845446495E+01 -1.7214718118816585E+01 -1.7471243499228052E+01 + -1.7725937832890988E+01 -1.7978627395844871E+01 -1.8229134948547600E+01 + -1.8477279797636683E+01 -1.8722884310175662E+01 -1.8965793844364207E+01 + -1.9205858375939577E+01 -1.9442926256215223E+01 -1.9676844291807164E+01 + -1.9907457829430832E+01 -2.0134610845872650E+01 -2.0358146043231006E+01 + -2.0577904949510419E+01 -2.0793728024644910E+01 -2.1005454772016385E+01 + -2.1212923855527844E+01 -2.1415973222282574E+01 -2.1614440230914468E+01 + -2.1808161785606906E+01 -2.1996974475831454E+01 -2.2180714721831851E+01 + -2.2359218925870479E+01 -2.2532323629249870E+01 -2.2699865675113244E+01 + -2.2861682377022845E+01 -2.3017611693305792E+01 -2.3167492407150871E+01 + -2.3311164312431075E+01 -2.3448468405218737E+01 -2.3579247080950324E+01 + -2.3703344337189499E+01 -2.3820605981926256E+01 -2.3930879847340304E+01 + -2.4034016008944064E+01 -2.4129867010010312E+01 -2.4218288091176497E+01 + -2.4299137425103545E+01 -2.4372276356054314E+01 -2.4437569644241151E+01 + -2.4494885714777332E+01 -2.4544096911049817E+01 -2.4585079752314950E+01 + -2.4617715195299969E+01 -2.4641888899575680E+01 -2.4657491496445051E+01 + -2.4664418861073646E+01 -2.4662572387566215E+01 -2.4651859266673014E+01 + -2.4632192765786023E+01 -2.4603492510863333E+01 -2.4565684769896411E+01 + -2.4518702737509376E+01 -2.4462486820256405E+01 -2.4396984922156228E+01 + -2.4322152729978512E+01 -2.4237953997768258E+01 -2.4144360830069669E+01 + -2.4041353963281875E+01 -2.3928923044552739E+01 -2.3807066907587689E+01 + -2.3675793844723533E+01 -2.3535121874588238E+01 -2.3385079004640396E+01 + -2.3225703487852371E+01 -2.3057044072774616E+01 -2.2879160246189574E+01 + -2.2692122467537370E+01 -2.2496012394266849E+01 -2.2290923097240317E+01 + -2.2076959265294544E+01 -2.1854237398034414E+01 -2.1622885985913154E+01 + -2.1383045676628967E+01 -2.1134869426847448E+01 -2.0878522638237524E+01 + -2.0614183276791440E+01 -2.0342041974381406E+01 -2.0062302111491512E+01 + -1.9775179880049592E+01 -1.9480904325274274E+01 -1.9179717365443615E+01 + -1.8871873788487168E+01 -1.8557641224299957E+01 -1.8237300091678240E+01 + -1.7911143518781028E+01 -1.7579477236027870E+01 -1.7242619440356037E+01 + -1.6900900629774213E+01 -1.6554663407170594E+01 -1.6204262252355520E+01 + -1.5850063261348904E+01 -1.5492443851954762E+01 -1.5131792434704662E+01 + -1.4768508048294478E+01 -1.4402999958689559E+01 -1.4035687221126382E+01 + -1.3666998204301745E+01 -1.3297370076106615E+01 -1.2927248250334129E+01 + -1.2557085793873831E+01 -1.2187342793987673E+01 -1.1818485685358086E+01 + -1.1450986536699645E+01 -1.1085322296832253E+01 -1.0721974000228563E+01 + -1.0361425932171702E+01 -1.0004164753787389E+01 -9.6506785873533225E+00 + -9.3014560624323064E+00 -8.9569853235286310E+00 -8.6177530001267897E+00 + -8.2842431401395142E+00 -7.9569361079665777E+00 -7.6363074485484788E+00 + -7.3228267189887291E+00 -7.0169562895146012E+00 -6.7191501157498958E+00 + -6.4298524844828471E+00 -6.1494967353284071E+00 -5.8785039609053946E+00 + -5.6172816883762771E+00 -5.3662225454286112E+00 -5.1257029140131030E+00 + -4.8960815753919356E+00 -4.6776983502931753E+00 -4.4708727382101312E+00 + -4.2759025601293210E+00 -4.0930626092144546E+00 -3.9226033142169809E+00 + -3.7647494206241272E+00 -3.6196986947915883E+00 -3.4876206565396233E+00 + -3.3686553459154167E+00 -3.2629121300409207E+00 -3.1704685561708721E+00 + -3.0913692572798674E+00 -3.0256249166769527E+00 -2.9732112983103711E+00 + -2.9340683495705524E+00 -2.9080993835250104E+00 -2.8951703476205819E+00 + -2.8951091859705445E+00 -2.9077053023827339E+00 -2.9327091313200322E+00 + -2.9698318239596162E+00 -3.0187450564746547E+00 -3.0790809675743471E+00 + -3.1504322322116307E+00 -3.2323522781977987E+00 -3.3243556522467537E+00 + -3.4259185417073637E+00 -3.5364794579263998E+00 -3.6554400868157186E+00 + -3.7821663117723250E+00 -3.9159894136176052E+00 -4.0562074516794677E+00 + -4.2020868295376044E+00 -4.3528640482849896E+00 -4.5077476494282003E+00 + -4.6659203487530583E+00 -4.8265413616209498E+00 -4.9887489192340206E+00 + -5.1516629744154763E+00 -5.3143880943946753E+00 -5.4760165369667879E+00 + -5.6356315052163222E+00 -5.7923105747541221E+00 -5.9451292861228406E+00 + -6.0931648936789937E+00 -6.2355002608665178E+00 -6.3712278903612791E+00 + -6.4994540760953612E+00 -6.6193031626702581E+00 -6.7299218961481664E+00 + -6.8304838486779076E+00 -6.9201938978774020E+00 -6.9982927403670336E+00 + -7.0640614173407910E+00 -7.1168258285856503E+00 -7.1559612099275087E+00 + -7.1808965477092830E+00 -7.1911189026064894E+00 -7.1861776138753948E+00 + -7.1656883540226755E+00 -7.1293370029028820E+00 -7.0768833094062895E+00 + -7.0081643082144804E+00 -6.9230974585914069E+00 -6.8216834718635617E+00 + -6.7040087941418447E+00 -6.5702477109693502E+00 -6.4206640409608404E+00 + -6.2556123861505819E+00 -6.0755389077013513E+00 -5.8809815968661452E+00 + -5.6725700126499232E+00 -5.4510244595064874E+00 -5.2171545806365680E+00 + -4.9718573450378853E+00 -4.7161144094050469E+00 -4.4509888392908952E+00 + -4.1776211776251273E+00 -3.8972248527387778E+00 -3.6110809224616669E+00 + -3.3205321556349214E+00 -3.0269764575010045E+00 -2.7318596508819386E+00 + -2.4366676308120505E+00 -2.1429179163274861E+00 -1.8521506294000538E+00 + -1.5659189375000322E+00 -1.2857790029393912E+00 -1.0132794889347470E+00 + -7.4995067918414493E-01 -4.9729327461396394E-01 -2.5676693775570947E-01 + -2.9778661886502904E-02 1.8232895146523817E-01 3.7828941686739187E-01 + 5.5692399559753947E-01 7.1715313159305194E-01 8.5800758702536783E-01 + 9.7863916765735837E-01 1.0783309247674702E+00 1.1565067179020601E+00 + 1.2127400211471160E+00 1.2467618550907076E+00 1.2584677272730571E+00 + 1.2479234657832319E+00 1.2153698338457319E+00 1.1612258178245136E+00 + 1.0860904871253549E+00 9.9074333205767162E-01 8.7614299486930547E-01 + 7.4342431992249269E-01 5.9389366134985888E-01 4.2902240051071788E-01 + 2.5043864113450559E-01 5.9917067141661548E-02 -1.4063303329956051E-01 + -3.4918155398701811E-01 -5.6359312249957461E-01 -7.8164435067852289E-01 + -1.0010426936706405E+00 -1.2194468035638935E+00 -1.4344882393309044E+00 + -1.6437943702991418E+00 -1.8450122859903191E+00 -2.0358335012426347E+00 + -2.2140192224010606E+00 -2.3774259184095663E+00 -2.5240309202606896E+00 + -2.6519577538650316E+00 -2.7595008954194573E+00 -2.8451496252085322E+00 + -2.9076106458990383E+00 -2.9458291252068234E+00 -2.9590078207386301E+00 + -2.9466239472272857E+00 -2.9084434536453871E+00 -2.8445323901180255E+00 + -2.7552650624296349E+00 -2.6413286954437005E+00 -2.5037243560696010E+00 + -2.3437639215814379E+00 -2.1630629200950064E+00 -1.9635291167189119E+00 + -1.7473467710868069E+00 -1.5169565493081156E+00 -1.2750311353837036E+00 + -1.0244466532343854E+00 -7.6825007997058758E-01 -5.0962290304746527E-01 + -2.5184134753093662E-01 1.7664262484578738E-03 2.4786568106693802E-01 + 4.8316247236785248E-01 7.0445241639929435E-01 9.0867018150620049E-01 + 1.0929389708551864E+00 1.2546192166642791E+00 1.3913556674827103E+00 + 1.5011220227792548E+00 1.5822622545524896E+00 1.6335277552778229E+00 + 1.6541094665226985E+00 1.6436641740843903E+00 1.6023342044051156E+00 + 1.5307598239052060E+00 1.4300837280493575E+00 1.3019471103812101E+00 + 1.1484769230010370E+00 9.7226407817715255E-01 7.7633249468602739E-01 + 5.6409906031483614E-01 3.3932476150138541E-01 1.0605741961638300E-01 + -1.3143333227397622E-01 -3.6872800182915344E-01 -6.0133509409489871E-01 + -8.2477365916331236E-01 -1.0346591403349730E+00 -1.2267909710163178E+00 + -1.3972402283809942E+00 -1.5424355377781336E+00 -1.6592453389695423E+00 + -1.7450545782617801E+00 -1.7978338838145169E+00 -1.8161993186504459E+00 + -1.7994608902506164E+00 -1.7476581293076228E+00 -1.6615812344135712E+00 + -1.5427765141896741E+00 -1.3935351423175317E+00 -1.2168645713829009E+00 + -1.0164423241534213E+00 -7.9655229008029971E-01 -5.6200409305689236E-01 + -3.1803655485070492E-01 -7.0206746743163517E-02 1.7573341198108816E-01 + 4.1397059884997467E-01 6.3877074397146882E-01 8.4462368496907736E-01 + 1.0263882875554835E+00 1.1794342485643716E+00 1.2997766344583646E+00 + 1.3841991429667060E+00 1.4303621194786102E+00 1.4368915217963794E+00 + 1.4034453127421287E+00 1.3307541725481529E+00 1.2206339608449317E+00 + 1.0759680161689635E+00 9.0065814959575041E-01 6.9954405410381937E-01 + 4.7829179368248487E-01 2.4325303256043485E-01 1.2976875601287290E-03 + -2.4037629598017241E-01 -4.7445136656182429E-01 -6.9371140774041762E-01 + -8.9126903180939554E-01 -1.0607921245814025E+00 -1.1967221930515850E+00 + -1.2944768420790314E+00 -1.3506287301393993E+00 -1.3630536497333927E+00 + -1.3310409593320496E+00 -1.2553604655833184E+00 -1.1382810110377124E+00 + -9.8353744637588503E-01 -7.9624432725501781E-01 -5.8275653215231382E-01 + -3.5047899448130437E-01 -1.0762981393483954E-01 1.3703691730510978E-01 + 3.7454025178297695E-01 5.9600335306020580E-01 7.9299460825270462E-01 + 9.5786600859410942E-01 1.0840751604496381E+00 1.1664770384681964E+00 + 1.2015719081530820E+00 1.1876967655299264E+00 1.1251491820143835E+00 + 1.0162345915724698E+00 8.6523077411605331E-01 6.7826650235846064E-01 + 4.6311492678656280E-01 2.2890614322780922E-01 -1.4232638476809686E-02 + -2.5559700774927302E-01 -4.8436940363301206E-01 -6.9010820181145749E-01 + -8.6324025390867820E-01 -9.9553366826821010E-01 -1.0805270138117202E+00 + -1.1138916650310520E+00 -1.0937057648403474E+00 -1.0206212842896574E+00 + -8.9790986077486279E-01 -7.3137838633341001E-01 -5.2915151022040796E-01 + -3.0132506098915895E-01 -5.9501565395335278E-02 1.8377382489179470E-01 + 4.1565199864768276E-01 6.2366232070103222E-01 7.9640347810412038E-01 + 9.2420450699066126E-01 9.9971689174629341E-01 1.0183999783548978E+00 + 9.7886564780898444E-01 8.8305424524589171E-01 7.3622199973577718E-01 + 5.4673028660284018E-01 3.2563861356740742E-01 8.6115547888539715E-02 + -1.5730577866217157E-01 -3.8958925112096460E-01 -5.9612596526012807E-01 + -7.6367680690440209E-01 -8.8126656603081932E-01 -9.4096784870101280E-01 + -9.3851630873569991E-01 -8.7370628164386632E-01 -7.5052762947052654E-01 + -5.7702004355849434E-01 -3.6483942865908031E-01 -1.2855123225208265E-01 + 1.1531364016908918E-01 3.4938487798980278E-01 5.5668809991379797E-01 + 7.2190366784477222E-01 8.3255558893691417E-01 8.8003616069721691E-01 + 8.6037838748044915E-01 7.7470206602846181E-01 6.2928037210426024E-01 + 4.3520071527932180E-01 2.0762488242160598E-01 -3.5313165051387596E-02 + -2.7390068218994701E-01 -4.8843019401623983E-01 -6.6085061786778287E-01 + -7.7634770976028367E-01 -8.2471294448624732E-01 -8.0136910531357286E-01 + -7.0794264508633853E-01 -5.5230644962077990E-01 -3.4805994966310472E-01 + -1.1346340715730853E-01 1.3010450672060656E-01 3.6004684620801841E-01 + 5.5464487526282369E-01 6.9515956657763411E-01 7.6773335204025439E-01 + 7.6489337180335304E-01 6.8648410926021541E-01 5.3990372826760036E-01 + 3.3958162384787299E-01 1.0570952190419980E-01 -1.3768202053642381E-01 + -3.6513383957169776E-01 -5.5242336906553335E-01 -6.7920958189988312E-01 + -7.3136606829357598E-01 -7.0272581832586867E-01 -5.9600915074795702E-01 + -4.2278428795078327E-01 -2.0241194421521191E-01 3.9958933324556731E-02 + 2.7616009219929866E-01 4.7824921634267148E-01 6.2186645496078963E-01 + 6.8929525608520170E-01 6.7183951129615527E-01 5.7117259988647029E-01 + 3.9944126613514169E-01 1.7803446961537928E-01 -6.4891975350958461E-02 + -2.9788023063201574E-01 -4.9021895653566361E-01 -6.1606361641520579E-01 + -6.5807280823157421E-01 -6.1003371947162299E-01 -4.7805603605648134E-01 + -2.8008749185636989E-01 -4.3728058300880522E-02 1.9743545333280102E-01 + 4.0852072477238738E-01 5.5843084563810952E-01 6.2458707283756443E-01 + 5.9657883163016900E-01 4.7811318010907772E-01 2.8686867570673147E-01 + 5.2161587715932059E-02 -1.8932561222509758E-01 -3.9917463630823907E-01 + -5.4338134701660945E-01 -5.9804376977878260E-01 -5.5361754107390493E-01 + -4.1694461114957526E-01 -2.1058786644173622E-01 3.0561510080936691E-02 + 2.6496239264449534E-01 4.5151199751706933E-01 5.5685684116766399E-01 + 5.6161876127359511E-01 4.6433916175698714E-01 2.8228723902449226E-01 + 4.8808974745352944E-02 -1.9247115048136559E-01 -3.9565795504230861E-01 + -5.2137227551569509E-01 -5.4463633394022393E-01 -4.6024363057601148E-01 + -2.8439708788874440E-01 -5.2077720852311278E-02 1.8954969814194900E-01 + 3.9053991114194275E-01 5.0855440696173970E-01 5.1807430250028774E-01 + 4.1638875794769425E-01 2.2487567506641293E-01 -1.4966879039446683E-02 + -2.5014123276429867E-01 -4.2773103104511756E-01 -5.0695794838920216E-01 + -4.6895135182805581E-01 -3.2181806938526542E-01 -9.9552359262474688E-02 + 1.4529249696936791E-01 3.5373818590862516E-01 4.7460899409264190E-01 + 4.7743633846718808E-01 3.6072513293279912E-01 1.5322405353325577E-01 + -9.2514409324867250E-02 -3.1303532981068533E-01 -4.5030507753319315E-01 + -4.6729781408096432E-01 -3.5860153570048331E-01 -1.5287338866497338E-01 + 9.3987162088260592E-02 3.1355782796125992E-01 4.4378625063500526E-01 + 4.4688693367471627E-01 3.2100878233598490E-01 1.0190898785246147E-01 + -1.4642278078878357E-01 -3.5000031798220349E-01 -4.4690534519412561E-01 + -4.0662641451332215E-01 -2.4051508241092179E-01 4.2672170082735928E-04 + 2.4044194290977472E-01 4.0252581550473421E-01 4.3338681583529232E-01 + 3.2172742491056333E-01 1.0337520813970531E-01 -1.4921660931128741E-01 + -3.5041509471887389E-01 -4.3045606438174711E-01 -3.6027953426093778E-01 + -1.6313925105127994E-01 9.1927025445893526E-02 3.1345941062083155E-01 + 4.2020662498438122E-01 3.7149382239026590E-01 1.8382726183245182E-01 + -7.3361850447754728E-02 -3.0243421923116370E-01 -4.1435003345162746E-01 + -3.6385050454196344E-01 -1.6895745285532685E-01 9.3975552774178461E-02 + 3.1912118165447362E-01 4.1353373251088071E-01 3.3621680358903350E-01 + 1.1727606489040053E-01 -1.5220940756827664E-01 -3.5704073534200970E-01 + -4.0708777677543667E-01 -2.7791816868072122E-01 -2.4232085698576745E-02 + 2.4166132712679961E-01 3.9872439711913410E-01 3.7262749630106662E-01 + 1.7230172952111730E-01 -1.1085603488619016E-01 -3.4316727420847187E-01 + -4.1141485352957635E-01 -2.7898712377439411E-01 -7.2541401647240929E-03 + 2.7082089286510719E-01 4.1470684832276594E-01 3.4778890915243077E-01 + 9.9867299656486996E-02 -2.0354093816364446E-01 -4.0312578352604900E-01 + -3.8939703455058033E-01 -1.6429369510434352E-01 1.5447082134984294E-01 + 3.9283697042213650E-01 4.1497421169797621E-01 2.0207559296466532E-01 + -1.3085851007463503E-01 -3.9456850783774106E-01 -4.3232706659442993E-01 + -2.1441318629140849E-01 1.3715623670507573E-01 4.1398542661731685E-01 + 4.4385341330631295E-01 1.9926530651558988E-01 -1.7691705578341718E-01 + -4.5164104742857297E-01 -4.4508965858228616E-01 -1.5004971539219106E-01 + 2.5262876992063404E-01 5.0143144185861321E-01 4.2335930527626670E-01 + 5.6305192949354189E-02 -3.6272321283513104E-01 -5.4726122499626018E-01 + -3.5722652072987271E-01 9.2400988413600157E-02 4.9510920547497383E-01 + 5.5894032897214041E-01 2.1919117769897195E-01 -2.9725751258344701E-01 + -6.1768337451782274E-01 -4.9081074204441361E-01 1.4036468834367958E-02 + 5.3431258445885432E-01 6.6971048449826487E-01 2.9029597749801705E-01 + -3.3899598665963543E-01 -7.3504506464934694E-01 -5.6452685647882583E-01 + 7.3728435607041024E-02 6.9124474563183158E-01 7.7726421485539354E-01 + + + 3.4604029805983781E-11 3.4758352165476183E-06 6.9727441691747977E-06 + 1.0490818475174774E-05 1.4030146563598522E-05 1.7590848279284543E-05 + 2.1173114558518076E-05 2.4777028487203278E-05 2.8402733651835213E-05 + 3.2050378026882576E-05 3.5720069965420580E-05 3.9411957754799689E-05 + 4.3126174391220086E-05 4.6862848542231447E-05 5.0622118631707719E-05 + 5.4404116182356395E-05 5.8208993073043275E-05 6.2036875216968222E-05 + 6.5887908066429641E-05 6.9762227243929593E-05 7.3659978551026268E-05 + 7.7581299970235935E-05 8.1526334193689844E-05 8.5495224595387570E-05 + 8.9488114411942398E-05 9.3505152476239446E-05 9.7546479482870133E-05 + 1.0161224690484043E-04 1.0570260462255184E-04 1.0981769518424765E-04 + 1.1395767076234066E-04 1.1812268050919007E-04 1.2231288206194393E-04 + 1.2652841840369761E-04 1.3076945082075240E-04 1.3503612634418449E-04 + 1.3932860638162463E-04 1.4364704236781670E-04 1.4799159413978112E-04 + 1.5236241843991186E-04 1.5675967568782678E-04 1.6118352223646503E-04 + 1.6563412119405545E-04 1.7011163576114856E-04 1.7461622526936241E-04 + 1.7914805548592373E-04 1.8370729309151996E-04 1.8829410064635527E-04 + 1.9290864475689448E-04 1.9755109488640621E-04 2.0222161980458433E-04 + 2.0692038770815695E-04 2.1164757151029449E-04 2.1640334289855492E-04 + 2.2118786905198147E-04 2.2600133384265172E-04 2.3084390466722915E-04 + 2.3571575980656386E-04 2.4061707641532442E-04 2.4554803303540758E-04 + 2.5050880841294377E-04 2.5549958334366381E-04 2.6052053809213685E-04 + 2.6557185582759492E-04 2.7065372202786402E-04 2.7576631879542830E-04 + 2.8090983198768489E-04 2.8608444993619760E-04 2.9129036002652767E-04 + 2.9652775211616621E-04 3.0179681543517469E-04 3.0709774320392775E-04 + 3.1243072738914755E-04 3.1779596098505548E-04 3.2319363825473649E-04 + 3.2862395887960950E-04 3.3408711729816597E-04 3.3958331280950358E-04 + 3.4511274490112132E-04 3.5067561678763003E-04 3.5627212785964603E-04 + 3.6190248171762878E-04 3.6756688393023917E-04 3.7326554175090402E-04 + 3.7899866034444131E-04 3.8476644835637978E-04 3.9056911638295558E-04 + 3.9640687469151889E-04 4.0227993457648940E-04 4.0818851119668571E-04 + 4.1413281833874047E-04 4.2011307206140167E-04 4.2612948968467310E-04 + 4.3218229067160894E-04 4.3827169489836818E-04 4.4439792287089285E-04 + 4.5056119915647022E-04 4.5676174508602052E-04 4.6299978826458383E-04 + 4.6927555382946640E-04 4.7558927106466849E-04 4.8194116850374215E-04 + 4.8833147787274110E-04 4.9476043202214507E-04 5.0122826328568833E-04 + 5.0773520664723637E-04 5.1428149966157449E-04 5.2086737993861361E-04 + 5.2749308677762510E-04 5.3415886071931913E-04 5.4086494472881618E-04 + 5.4761158192462940E-04 5.5439901819857688E-04 5.6122750051157888E-04 + 5.6809727521316133E-04 5.7500859392294133E-04 5.8196170701856358E-04 + 5.8895686759598373E-04 5.9599432951711300E-04 6.0307434928202972E-04 + 6.1019718382361783E-04 6.1736309174760431E-04 6.2457233314770929E-04 + 6.3182517172733106E-04 6.3912187019904518E-04 6.4646269301545144E-04 + 6.5384790850480973E-04 6.6127778373767637E-04 6.6875258928771823E-04 + 6.7627259713799162E-04 6.8383808069909637E-04 6.9144931449371017E-04 + 6.9910657529837644E-04 7.0681014176213501E-04 7.1456029380391700E-04 + 7.2235731249132825E-04 7.3020148239127611E-04 7.3809308783461924E-04 + 7.4603241572283483E-04 7.5401975452611832E-04 7.6205539514810139E-04 + 7.7013962934527498E-04 7.7827275082843110E-04 7.8645505580358108E-04 + 7.9468684073431784E-04 8.0296840575409215E-04 8.1130005154458505E-04 + 8.1968208033306211E-04 8.2811479808045721E-04 8.3659851055128335E-04 + 8.4513352538186960E-04 8.5372015474329509E-04 8.6235870891800104E-04 + 8.7104950277332941E-04 8.7979285202214870E-04 8.8858907437226211E-04 + 8.9743849008775539E-04 9.0634141987730433E-04 9.1529818835739331E-04 + 9.2430911979606305E-04 9.3337454345926430E-04 9.4249478801234406E-04 + 9.5167018455945350E-04 9.6090106706649072E-04 9.7018777082519790E-04 + 9.7953063376973975E-04 9.8892999537701556E-04 9.9838619686143794E-04 + 1.0078995825950161E-03 1.0174704981596944E-03 1.0270992911227757E-03 + 1.0367863116337317E-03 1.0465319122500588E-03 1.0563364466916825E-03 + 1.0662002711483893E-03 1.0761237449801444E-03 1.0861072280627844E-03 + 1.0961510838600665E-03 1.1062556771284184E-03 1.1164213753654827E-03 + 1.1266485480748052E-03 1.1369375664974154E-03 1.1472888052574811E-03 + 1.1577026405256803E-03 1.1681794503978632E-03 1.1787196159419257E-03 + 1.1893235201960940E-03 1.1999915492023078E-03 1.2107240898569095E-03 + 1.2215215327233977E-03 1.2323842701838024E-03 1.2433126968784992E-03 + 1.2543072104687109E-03 1.2653682102828807E-03 1.2764960982551172E-03 + 1.2876912793475591E-03 1.2989541598593596E-03 1.3102851498028782E-03 + 1.3216846607847247E-03 1.3331531068281192E-03 1.3446909053790985E-03 + 1.3562984751680802E-03 1.3679762385269167E-03 1.3797246197962232E-03 + 1.3915440461699344E-03 1.4034349469359937E-03 1.4153977545125979E-03 + 1.4274329041034650E-03 1.4395408325168118E-03 1.4517219801596115E-03 + 1.4639767895343878E-03 1.4763057063328199E-03 1.4887091786825147E-03 + 1.5011876574175444E-03 1.5137415959445280E-03 1.5263714507934884E-03 + 1.5390776808558739E-03 1.5518607480573263E-03 1.5647211169107014E-03 + 1.5776592549873215E-03 1.5906756325534720E-03 1.6037707228584810E-03 + 1.6169450015296599E-03 1.6301989475338702E-03 1.6435330428088862E-03 + 1.6569477717411200E-03 1.6704436221244082E-03 1.6840210844861875E-03 + 1.6976806523625401E-03 1.7114228220636175E-03 1.7252480929634524E-03 + 1.7391569681601579E-03 1.7531499526212198E-03 1.7672275552109570E-03 + 1.7813902875374312E-03 1.7956386644527146E-03 1.8099732037238567E-03 + 1.8243944263428762E-03 1.8389028567452415E-03 1.8534990218809228E-03 + 1.8681834525388107E-03 1.8829566825423086E-03 1.8978192486401883E-03 + 1.9127716909582795E-03 1.9278145531249943E-03 1.9429483818939174E-03 + 1.9581737274479085E-03 1.9734911428138562E-03 1.9889011850783385E-03 + 2.0044044141827775E-03 2.0200013937082058E-03 2.0356926903517258E-03 + 2.0514788747647769E-03 2.0673605203405591E-03 2.0833382047286009E-03 + 2.0994125080320675E-03 2.1155840151898080E-03 2.1318533135980728E-03 + 2.1482209946949295E-03 2.1646876534006589E-03 2.1812538879342276E-03 + 2.1979203006935936E-03 2.2146874973786568E-03 2.2315560874483936E-03 + 2.2485266840027744E-03 2.2655999036990341E-03 2.2827763669678487E-03 + 2.3000566985340335E-03 2.3174415261309027E-03 2.3349314818301450E-03 + 2.3525272011201219E-03 2.3702293235459797E-03 2.3880384926046223E-03 + 2.4059553554262704E-03 2.4239805634478084E-03 2.4421147713491616E-03 + 2.4603586387649807E-03 2.4787128285894723E-03 2.4971780077316904E-03 + 2.5157548472997068E-03 2.5344440227126038E-03 2.5532462128592176E-03 + 2.5721621015962538E-03 2.5911923759679711E-03 2.6103377278521634E-03 + 2.6295988529296522E-03 2.6489764513992617E-03 2.6684712273338592E-03 + 2.6880838893551364E-03 2.7078151504210729E-03 2.7276657273973704E-03 + 2.7476363418562802E-03 2.7677277196478350E-03 2.7879405908960938E-03 + 2.8082756901726077E-03 2.8287337566536685E-03 2.8493155337472823E-03 + 2.8700217694942265E-03 2.8908532164929864E-03 2.9118106318612004E-03 + 2.9328947770964242E-03 2.9541064185150071E-03 2.9754463272139028E-03 + 2.9969152784574691E-03 3.0185140526090273E-03 3.0402434347251927E-03 + 3.0621042142347002E-03 3.0840971859902354E-03 3.1062231491529872E-03 + 3.1284829075008060E-03 3.1508772706679644E-03 3.1734070518265947E-03 + 3.1960730702658064E-03 3.2188761493404674E-03 3.2418171180588445E-03 + 3.2648968098505956E-03 3.2881160637735878E-03 3.3114757235732360E-03 + 3.3349766380381491E-03 3.3586196612756429E-03 3.3824056527239294E-03 + 3.4063354763522258E-03 3.4304100021924789E-03 3.4546301050312361E-03 + 3.4789966650003515E-03 3.5035105676267308E-03 3.5281727037611088E-03 + 3.5529839695787372E-03 3.5779452667895843E-03 3.6030575025150736E-03 + 3.6283215893453428E-03 3.6537384453527570E-03 3.6793089943097843E-03 + 3.7050341651696564E-03 3.7309148929166916E-03 3.7569521181446898E-03 + 3.7831467869744000E-03 3.8094998512333989E-03 3.8360122686150080E-03 + 3.8626850026012962E-03 3.8895190223102909E-03 3.9165153030113311E-03 + 3.9436748256911460E-03 3.9709985771879189E-03 3.9984875505210430E-03 + 4.0261427445215520E-03 4.0539651641433470E-03 4.0819558203482086E-03 + 4.1101157303079557E-03 4.1384459173512533E-03 4.1669474108014682E-03 + 4.1956212463317615E-03 4.2244684659014835E-03 4.2534901178207961E-03 + 4.2826872565439426E-03 4.3120609430050191E-03 4.3416122444387773E-03 + 4.3713422348423603E-03 4.4012519943450335E-03 4.4313426099111394E-03 + 4.4616151746236770E-03 4.4920707886666727E-03 4.5227105586042706E-03 + 4.5535355977801293E-03 4.5845470261243974E-03 4.6157459705792108E-03 + 4.6471335646299326E-03 4.6787109487327876E-03 4.7104792702772035E-03 + 4.7424396834830828E-03 4.7745933496541092E-03 4.8069414370828225E-03 + 4.8394851209257825E-03 4.8722255838615251E-03 4.9051640151774921E-03 + 4.9383016117642026E-03 4.9716395776194513E-03 5.0051791238624709E-03 + 5.0389214692245915E-03 5.0728678396091418E-03 5.1070194682420501E-03 + 5.1413775959408730E-03 5.1759434709620477E-03 5.2107183491860989E-03 + 5.2457034939958494E-03 5.2809001764113437E-03 5.3163096750660846E-03 + 5.3519332765762356E-03 5.3877722749753176E-03 5.4238279723256306E-03 + 5.4601016785481285E-03 5.4965947113864468E-03 5.5333083965646923E-03 + 5.5702440679172198E-03 5.6074030672395910E-03 5.6447867443873562E-03 + 5.6823964574848080E-03 5.7202335726927022E-03 5.7582994646462587E-03 + 5.7965955161566199E-03 5.8351231183584300E-03 5.8738836707468937E-03 + 5.9128785814837612E-03 5.9521092669596451E-03 5.9915771522841129E-03 + 6.0312836711730669E-03 6.0712302659398408E-03 6.1114183876456859E-03 + 6.1518494959493259E-03 6.1925250596147636E-03 6.2334465561882787E-03 + 6.2746154718071523E-03 6.3160333021243806E-03 6.3577015513772480E-03 + 6.3996217330905634E-03 6.4417953698987637E-03 6.4842239935868915E-03 + 6.5269091452320469E-03 6.5698523751105123E-03 6.6130552430777416E-03 + 6.6565193181752306E-03 6.7002461789835545E-03 6.7442374137173002E-03 + 6.7884946199653533E-03 6.8330194052146718E-03 6.8778133865000299E-03 + 6.9228781905826412E-03 6.9682154541103065E-03 7.0138268236362980E-03 + 7.0597139555223553E-03 7.1058785162921283E-03 7.1523221823965944E-03 + 7.1990466404465176E-03 7.2460535872838714E-03 7.2933447298899959E-03 + 7.3409217856035000E-03 7.3887864821203814E-03 7.4369405575977158E-03 + 7.4853857605403475E-03 7.5341238501382959E-03 7.5831565961851947E-03 + 7.6324857790979680E-03 7.6821131900044184E-03 7.7320406309133519E-03 + 7.7822699147151782E-03 7.8328028651884745E-03 7.8836413170665608E-03 + 7.9347871162445873E-03 7.9862421196832505E-03 8.0380081956321486E-03 + 8.0900872234401008E-03 8.1424810939660728E-03 8.1951917093649705E-03 + 8.2482209833027072E-03 8.3015708409857787E-03 8.3552432192142544E-03 + 8.4092400664589218E-03 8.4635633429484131E-03 8.5182150207423896E-03 + 8.5731970838134434E-03 8.6285115280199422E-03 8.6841603613066944E-03 + 8.7401456037163022E-03 8.7964692873682623E-03 8.8531334569325361E-03 + 8.9101401689860634E-03 8.9674914928544180E-03 9.0251895100720639E-03 + 9.0832363149203708E-03 9.1416340142237030E-03 9.2003847274207840E-03 + 9.2594905869085968E-03 9.3189537376739909E-03 9.3787763379361445E-03 + 9.4389605586536612E-03 9.4995085839720047E-03 9.5604226112574759E-03 + 9.6217048510211720E-03 9.6833575271072208E-03 9.7453828767646630E-03 + 9.8077831507635028E-03 9.8705606133157823E-03 9.9337175424033565E-03 + 9.9972562296638222E-03 1.0061178980501202E-02 1.0125488114249039E-02 + 1.0190185964271084E-02 1.0255274877791007E-02 1.0320757216365455E-02 + 1.0386635355673513E-02 1.0452911685714925E-02 1.0519588610784085E-02 + 1.0586668549885443E-02 1.0654153936323685E-02 1.0722047218192799E-02 + 1.0790350858300041E-02 1.0859067334246773E-02 1.0928199138602082E-02 + 1.0997748778830150E-02 1.1067718777614104E-02 1.1138111672709243E-02 + 1.1208930017196006E-02 1.1280176379446586E-02 1.1351853343403771E-02 + 1.1423963508451084E-02 1.1496509489650851E-02 1.1569493917754685E-02 + 1.1642919439388749E-02 1.1716788717100267E-02 1.1791104429306596E-02 + 1.1865869270801755E-02 1.1941085952326291E-02 1.2016757200987695E-02 + 1.2092885760384696E-02 1.2169474390517339E-02 1.2246525867945940E-02 + 1.2324042986018411E-02 1.2402028554801990E-02 1.2480485401283260E-02 + 1.2559416369374493E-02 1.2638824320203548E-02 1.2718712131930737E-02 + 1.2799082700145221E-02 1.2879938937661983E-02 1.2961283775001171E-02 + 1.3043120160162375E-02 1.3125451058838016E-02 1.3208279454570499E-02 + 1.3291608348769971E-02 1.3375440760948537E-02 1.3459779728672154E-02 + 1.3544628307786702E-02 1.3629989572428350E-02 1.3715866615222309E-02 + 1.3802262547348620E-02 1.3889180498659422E-02 1.3976623617787320E-02 + 1.4064595072226667E-02 1.4153098048515455E-02 1.4242135752230102E-02 + 1.4331711408296538E-02 1.4421828260869449E-02 1.4512489573608895E-02 + 1.4603698629729180E-02 1.4695458732127407E-02 1.4787773203505192E-02 + 1.4880645386483661E-02 1.4974078643749405E-02 1.5068076358005179E-02 + 1.5162641932415347E-02 1.5257778790386024E-02 1.5353490375884987E-02 + 1.5449780153522856E-02 1.5546651608655974E-02 1.5644108247461774E-02 + 1.5742153597194244E-02 1.5840791206136434E-02 1.5940024643867311E-02 + 1.6039857501366672E-02 1.6140293390983600E-02 1.6241335946813838E-02 + 1.6342988824642253E-02 1.6445255702075706E-02 1.6548140278808056E-02 + 1.6651646276612586E-02 1.6755777439480767E-02 1.6860537533901529E-02 + 1.6965930348741519E-02 1.7071959695641504E-02 1.7178629408932805E-02 + 1.7285943345908855E-02 1.7393905386867674E-02 1.7502519435347110E-02 + 1.7611789418152883E-02 1.7721719285532039E-02 1.7832313011393777E-02 + 1.7943574593265198E-02 1.8055508052643894E-02 1.8168117434910008E-02 + 1.8281406809708727E-02 1.8395380270897193E-02 1.8510041936746734E-02 + 1.8625395950095509E-02 1.8741446478561127E-02 1.8858197714491053E-02 + 1.8975653875275153E-02 1.9093819203491139E-02 1.9212697966930689E-02 + 1.9332294458835272E-02 1.9452612998014904E-02 1.9573657929005412E-02 + 1.9695433622231664E-02 1.9817944474101519E-02 1.9941194907215593E-02 + 2.0065189370511965E-02 2.0189932339335453E-02 2.0315428315731188E-02 + 2.0441681828470337E-02 2.0568697433250682E-02 2.0696479712915491E-02 + 2.0825033277448946E-02 2.0954362764356999E-02 2.1084472838548338E-02 + 2.1215368192745675E-02 2.1347053547530543E-02 2.1479533651488109E-02 + 2.1612813281389802E-02 2.1746897242367218E-02 2.1881790368043396E-02 + 2.2017497520748358E-02 2.2154023591596763E-02 2.2291373500763694E-02 + 2.2429552197523295E-02 2.2568564660522612E-02 2.2708415897902071E-02 + 2.2849110947446863E-02 2.2990654876776720E-02 2.3133052783510050E-02 + 2.3276309795449077E-02 2.3420431070710804E-02 2.3565421797933944E-02 + 2.3711287196479480E-02 2.3858032516495684E-02 2.4005663039188305E-02 + 2.4154184076982260E-02 2.4303600973647935E-02 2.4453919104553416E-02 + 2.4605143876741519E-02 2.4757280729215285E-02 2.4910335133038409E-02 + 2.5064312591573271E-02 2.5219218640566893E-02 2.5375058848464992E-02 + 2.5531838816461479E-02 2.5689564178784600E-02 2.5848240602824604E-02 + 2.6007873789318285E-02 2.6168469472566229E-02 2.6330033420606969E-02 + 2.6492571435327437E-02 2.6656089352834318E-02 2.6820593043432484E-02 + 2.6986088411932434E-02 2.7152581397844440E-02 2.7320077975504418E-02 + 2.7488584154312570E-02 2.7658105978926907E-02 2.7828649529424179E-02 + 2.8000220921541537E-02 2.8172826306823117E-02 2.8346471872811779E-02 + 2.8521163843318251E-02 2.8696908478532124E-02 2.8873712075293500E-02 + 2.9051580967204976E-02 2.9230521524915180E-02 2.9410540156275984E-02 + 2.9591643306538195E-02 2.9773837458593772E-02 2.9957129133127199E-02 + 3.0141524888854805E-02 3.0327031322707636E-02 3.0513655070047656E-02 + 3.0701402804869955E-02 3.0890281240023194E-02 3.1080297127371096E-02 + 3.1271457258060430E-02 3.1463768462695135E-02 3.1657237611553139E-02 + 3.1851871614760087E-02 3.2047677422600632E-02 3.2244662025592778E-02 + 3.2442832454812401E-02 3.2642195782042895E-02 3.2842759120045202E-02 + 3.3044529622677600E-02 3.3247514485227642E-02 3.3451720944523956E-02 + 3.3657156279230931E-02 3.3863827809994321E-02 3.4071742899733554E-02 + 3.4280908953799753E-02 3.4491333420223161E-02 3.4703023789932841E-02 + 3.4915987596950401E-02 3.5130232418640731E-02 3.5345765875937671E-02 + 3.5562595633518920E-02 3.5780729400077906E-02 3.6000174928524718E-02 + 3.6220940016221490E-02 3.6443032505168567E-02 3.6666460282287962E-02 + 3.6891231279614599E-02 3.7117353474511616E-02 3.7344834889909674E-02 + 3.7573683594557622E-02 3.7803907703179825E-02 3.8035515376787080E-02 + 3.8268514822862844E-02 3.8502914295566418E-02 3.8738722096031367E-02 + 3.8975946572510550E-02 3.9214596120666627E-02 3.9454679183788227E-02 + 3.9696204252999689E-02 3.9939179867514038E-02 4.0183614614861869E-02 + 4.0429517131093877E-02 4.0676896101047098E-02 4.0925760258569963E-02 + 4.1176118386719016E-02 4.1427979318060276E-02 4.1681351934812275E-02 + 4.1936245169167143E-02 4.2192668003451839E-02 4.2450629470393401E-02 + 4.2710138653359736E-02 4.2971204686575955E-02 4.3233836755337693E-02 + 4.3498044096320042E-02 4.3763835997689238E-02 4.4031221799449460E-02 + 4.4300210893615674E-02 4.4570812724462075E-02 4.4843036788731472E-02 + 4.5116892635925457E-02 4.5392389868450525E-02 4.5669538141942446E-02 + 4.5948347165421961E-02 4.6228826701560970E-02 4.6510986566925830E-02 + 4.6794836632183916E-02 4.7080386822322171E-02 4.7367647116924927E-02 + 4.7656627550344582E-02 4.7947338211995136E-02 4.8239789246509533E-02 + 4.8533990854029790E-02 4.8829953290397479E-02 4.9127686867387971E-02 + 4.9427201952932265E-02 4.9728508971374735E-02 5.0031618403649863E-02 + 5.0336540787531595E-02 5.0643286717853911E-02 5.0951866846737706E-02 + 5.1262291883785630E-02 5.1574572596337548E-02 5.1888719809673141E-02 + 5.2204744407216570E-02 5.2522657330785892E-02 5.2842469580767208E-02 + 5.3164192216364738E-02 5.3487836355789721E-02 5.3813413176481868E-02 + 5.4140933915326477E-02 5.4470409868854694E-02 5.4801852393434596E-02 + 5.5135272905500160E-02 5.5470682881773904E-02 5.5808093859393372E-02 + 5.6147517436207772E-02 5.6488965270886739E-02 5.6832449083187686E-02 + 5.7177980654110935E-02 5.7525571826100380E-02 5.7875234503236402E-02 + 5.8226980651417383E-02 5.8580822298563137E-02 5.8936771534759270E-02 + 5.9294840512486999E-02 5.9655041446776517E-02 6.0017386615358222E-02 + 6.0381888358892855E-02 6.0748559081068743E-02 6.1117411248848036E-02 + 6.1488457392573290E-02 6.1861710106137009E-02 6.2237182047158099E-02 + 6.2614885937127066E-02 6.2994834561540494E-02 6.3377040770084173E-02 + 6.3761517476739402E-02 6.4148277659952554E-02 6.4537334362744544E-02 + 6.4928700692862273E-02 6.5322389822913829E-02 6.5718414990451668E-02 + 6.6116789498151599E-02 6.6517526713871886E-02 6.6920640070803825E-02 + 6.7326143067551344E-02 6.7734049268265747E-02 6.8144372302695169E-02 + 6.8557125866318222E-02 6.8972323720403447E-02 6.9389979692107320E-02 + 6.9810107674537006E-02 7.0232721626827407E-02 7.0657835574199371E-02 + 7.1085463608023078E-02 7.1515619885872489E-02 7.1948318631561578E-02 + 7.2383574135192932E-02 7.2821400753172630E-02 7.3261812908269983E-02 + 7.3704825089592280E-02 7.4150451852641977E-02 7.4598707819287152E-02 + 7.5049607677773481E-02 7.5503166182704071E-02 7.5959398155038868E-02 + 7.6418318482053896E-02 7.6879942117303673E-02 7.7344284080587883E-02 + 7.7811359457894941E-02 7.8281183401342200E-02 7.8753771129103312E-02 + 7.9229137925326459E-02 7.9707299140067231E-02 8.0188270189155475E-02 + 8.0672066554103375E-02 8.1158703782000033E-02 8.1648197485351584E-02 + 8.2140563341978903E-02 8.2635817094823330E-02 8.3133974551818812E-02 + 8.3635051585710829E-02 8.4139064133843755E-02 8.4646028198004833E-02 + 8.5155959844176315E-02 8.5668875202337333E-02 8.6184790466209624E-02 + 8.6703721893030591E-02 8.7225685803256334E-02 8.7750698580315839E-02 + 8.8278776670298501E-02 8.8809936581671245E-02 8.9344194884919612E-02 + 8.9881568212260607E-02 9.0422073257241289E-02 9.0965726774407674E-02 + 9.1512545578897153E-02 9.2062546546054294E-02 9.2615746610991506E-02 + 9.3172162768180675E-02 9.3731812070978568E-02 9.4294711631151815E-02 + 9.4860878618405170E-02 9.5430330259862112E-02 9.6003083839523204E-02 + 9.6579156697728846E-02 9.7158566230595697E-02 9.7741329889407882E-02 + 9.8327465180014242E-02 9.8916989662187857E-02 9.9509920948979799E-02 + 1.0010627670602586E-01 1.0070607465084828E-01 1.0130933255213789E-01 + 1.0191606822898523E-01 1.0252629955010589E-01 1.0314004443305705E-01 + 1.0375732084338152E-01 1.0437814679376883E-01 1.0500254034316715E-01 + 1.0563051959588511E-01 1.0626210270062429E-01 1.0689730784953105E-01 + 1.0753615327720370E-01 1.0817865725963777E-01 1.0882483811319388E-01 + 1.0947471419348544E-01 1.1012830389426606E-01 1.1078562564626548E-01 + 1.1144669791599678E-01 1.1211153920453545E-01 1.1278016804625333E-01 + 1.1345260300751488E-01 1.1412886268535581E-01 1.1480896570609736E-01 + 1.1549293072393281E-01 1.1618077641949319E-01 1.1687252149832751E-01 + 1.1756818468939387E-01 1.1826778474347564E-01 1.1897134043155848E-01 + 1.1967887054317283E-01 1.2039039388468320E-01 1.2110592927753880E-01 + 1.2182549555646746E-01 1.2254911156763694E-01 1.2327679616673913E-01 + 1.2400856821706595E-01 1.2474444658748980E-01 1.2548445015043344E-01 + 1.2622859777974821E-01 1.2697690834855579E-01 1.2772940072705760E-01 + 1.2848609378022954E-01 1.2924700636552022E-01 1.3001215733045221E-01 + 1.3078156551017098E-01 1.3155524972493479E-01 1.3233322877754974E-01 + 1.3311552145072250E-01 1.3390214650435109E-01 1.3469312267277220E-01 + 1.3548846866190142E-01 1.3628820314633167E-01 1.3709234476635021E-01 + 1.3790091212488462E-01 1.3871392378437392E-01 1.3953139826354716E-01 + 1.4035335403416782E-01 1.4117980951763909E-01 1.4201078308157969E-01 + 1.4284629303628710E-01 1.4368635763112544E-01 1.4453099505082306E-01 + 1.4538022341169468E-01 1.4623406075774531E-01 1.4709252505671738E-01 + 1.4795563419601848E-01 1.4882340597855823E-01 1.4969585811848940E-01 + 1.5057300823685985E-01 1.5145487385713527E-01 1.5234147240064574E-01 + 1.5323282118190584E-01 1.5412893740383993E-01 1.5502983815288154E-01 + 1.5593554039397600E-01 1.5684606096545564E-01 1.5776141657379822E-01 + 1.5868162378826961E-01 1.5960669903543678E-01 1.6053665859356020E-01 + 1.6147151858685377E-01 1.6241129497962367E-01 1.6335600357025659E-01 + 1.6430565998507710E-01 1.6526027967208676E-01 1.6621987789451945E-01 + 1.6718446972430068E-01 1.6815407003530652E-01 1.6912869349651941E-01 + 1.7010835456499568E-01 1.7109306747868608E-01 1.7208284624911516E-01 + 1.7307770465385397E-01 1.7407765622886492E-01 1.7508271426065863E-01 + 1.7609289177827378E-01 1.7710820154508403E-01 1.7812865605042738E-01 + 1.7915426750104343E-01 1.8018504781231670E-01 1.8122100859934753E-01 + 1.8226216116779170E-01 1.8330851650454508E-01 1.8436008526817546E-01 + 1.8541687777918270E-01 1.8647890401002237E-01 1.8754617357492065E-01 + 1.8861869571947257E-01 1.8969647931000369E-01 1.9077953282270527E-01 + 1.9186786433253009E-01 1.9296148150185907E-01 1.9406039156890875E-01 + 1.9516460133590172E-01 1.9627411715696633E-01 1.9738894492579617E-01 + 1.9850909006302522E-01 1.9963455750334946E-01 2.0076535168235959E-01 + 2.0190147652309742E-01 2.0304293542233454E-01 2.0418973123654244E-01 + 2.0534186626757633E-01 2.0649934224805361E-01 2.0766216032642162E-01 + 2.0883032105170612E-01 2.1000382435794859E-01 2.1118266954830761E-01 + 2.1236685527882818E-01 2.1355637954186837E-01 2.1475123964918671E-01 + 2.1595143221467564E-01 2.1715695313671354E-01 2.1836779758019359E-01 + 2.1958395995813568E-01 2.2080543391294266E-01 2.2203221229726003E-01 + 2.2326428715444505E-01 2.2450164969863318E-01 2.2574429029439058E-01 + 2.2699219843596344E-01 2.2824536272608556E-01 2.2950377085435936E-01 + 2.3076740957521591E-01 2.3203626468539573E-01 2.3331032100099991E-01 + 2.3458956233406400E-01 2.3587397146867181E-01 2.3716353013657498E-01 + 2.3845821899234054E-01 2.3975801758798779E-01 2.4106290434713154E-01 + 2.4237285653860771E-01 2.4368785024956932E-01 2.4500786035807057E-01 + 2.4633286050509251E-01 2.4766282306603227E-01 2.4899771912162172E-01 + 2.5033751842830620E-01 2.5168218938801418E-01 2.5303169901736899E-01 + 2.5438601291629404E-01 2.5574509523601796E-01 2.5710890864646807E-01 + 2.5847741430304749E-01 2.5985057181277321E-01 2.6122833919977739E-01 + 2.6261067287016260E-01 2.6399752757619488E-01 2.6538885637983045E-01 + 2.6678461061556558E-01 2.6818473985259927E-01 2.6958919185629365E-01 + 2.7099791254894734E-01 2.7241084596982917E-01 2.7382793423451235E-01 + 2.7524911749345660E-01 2.7667433388986162E-01 2.7810351951676388E-01 + 2.7953660837337846E-01 2.8097353232066169E-01 2.8241422103611075E-01 + 2.8385860196777518E-01 2.8530660028746468E-01 2.8675813884316637E-01 + 2.8821313811064941E-01 2.8967151614425385E-01 2.9113318852684950E-01 + 2.9259806831897145E-01 2.9406606600710689E-01 2.9553708945115670E-01 + 2.9701104383101762E-01 2.9848783159233067E-01 2.9996735239135836E-01 + 3.0144950303899454E-01 3.0293417744390355E-01 3.0442126655478025E-01 + 3.0591065830173575E-01 3.0740223753679291E-01 3.0889588597350498E-01 + 3.1039148212567957E-01 3.1188890124521507E-01 3.1338801525905341E-01 + 3.1488869270523445E-01 3.1639079866806907E-01 3.1789419471242519E-01 + 3.1939873881712294E-01 3.2090428530745774E-01 3.2241068478683871E-01 + 3.2391778406756550E-01 3.2542542610072633E-01 3.2693344990525447E-01 + 3.2844169049612482E-01 3.2994997881171395E-01 3.3145814164033893E-01 + 3.3296600154596506E-01 3.3447337679313488E-01 3.3598008127108814E-01 + 3.3748592441712916E-01 3.3899071113923313E-01 3.4049424173792686E-01 + 3.4199631182745782E-01 3.4349671225628164E-01 3.4499522902688545E-01 + 3.4649164321498327E-01 3.4798573088810641E-01 3.4947726302362497E-01 + 3.5096600542623618E-01 3.5245171864494690E-01 3.5393415788960036E-01 + 3.5541307294698793E-01 3.5688820809657390E-01 3.5835930202590516E-01 + 3.5982608774573960E-01 3.6128829250494504E-01 3.6274563770523716E-01 + 3.6419783881580359E-01 3.6564460528788162E-01 3.6708564046935366E-01 + 3.6852064151943897E-01 3.6994929932353643E-01 3.7137129840831928E-01 + 3.7278631685713959E-01 3.7419402622584785E-01 3.7559409145910222E-01 + 3.7698617080727326E-01 3.7836991574403184E-01 3.7974497088473541E-01 + 3.8111097390570792E-01 3.8246755546454186E-01 3.8381433912152180E-01 + 3.8515094126230953E-01 3.8647697102202033E-01 3.8779203021080066E-01 + 3.8909571324109243E-01 3.9038760705667663E-01 3.9166729106369935E-01 + 3.9293433706380249E-01 3.9418830918954889E-01 3.9542876384229148E-01 + 3.9665524963269416E-01 3.9786730732405995E-01 3.9906446977868315E-01 + 4.0024626190740742E-01 4.0141220062261512E-01 4.0256179479484999E-01 + 4.0369454521330034E-01 4.0480994455037389E-01 4.0590747733060872E-01 + 4.0698661990415158E-01 4.0804684042508477E-01 4.0908759883483509E-01 + 4.1010834685096459E-01 4.1110852796161174E-01 4.1208757742586422E-01 + 4.1304492228038980E-01 4.1397998135260161E-01 4.1489216528069872E-01 + 4.1578087654089324E-01 4.1664550948217521E-01 4.1748545036893792E-01 + 4.1830007743184466E-01 4.1908876092727998E-01 4.1985086320576115E-01 + 4.2058573878970368E-01 4.2129273446092314E-01 4.2197118935827049E-01 + 4.2262043508581970E-01 4.2323979583202054E-01 4.2382858850025040E-01 + 4.2438612285118099E-01 4.2491170165744535E-01 4.2540462087100178E-01 + 4.2586416980371494E-01 4.2628963132157499E-01 4.2668028205305558E-01 + 4.2703539261208967E-01 4.2735422783614418E-01 4.2763604703990216E-01 + 4.2788010428503442E-01 4.2808564866659504E-01 4.2825192461651668E-01 + 4.2837817222474445E-01 4.2846362757852480E-01 4.2850752312034690E-01 + 4.2850908802508658E-01 4.2846754859684894E-01 4.2838212868604875E-01 + 4.2825205012723461E-01 4.2807653319817912E-01 4.2785479710075275E-01 + 4.2758606046408021E-01 4.2726954187047717E-01 4.2690446040468494E-01 + 4.2649003622685261E-01 4.2602549116976834E-01 4.2551004936078501E-01 + 4.2494293786889109E-01 4.2432338737735781E-01 4.2365063288237365E-01 + 4.2292391441805627E-01 4.2214247780820846E-01 4.2130557544517261E-01 + 4.2041246709608943E-01 4.1946242073685214E-01 4.1845471341401669E-01 + 4.1738863213488414E-01 4.1626347478593373E-01 4.1507855107976205E-01 + 4.1383318353061199E-01 4.1252670845855549E-01 4.1115847702232761E-01 + 4.0972785628075825E-01 4.0823423028269745E-01 4.0667700118526445E-01 + 4.0505559040019001E-01 4.0336943976794981E-01 4.0161801275931702E-01 + 3.9980079570388660E-01 3.9791729904505080E-01 3.9596705862079939E-01 + 3.9394963696967328E-01 3.9186462466104743E-01 3.8971164164888022E-01 + 3.8749033864792948E-01 3.8520039853135196E-01 3.8284153774846835E-01 + 3.8041350776138344E-01 3.7791609649902452E-01 3.7534912982704671E-01 + 3.7271247303189153E-01 3.7000603231720713E-01 3.6722975631065613E-01 + 3.6438363757902320E-01 3.6146771414936035E-01 3.5848207103380930E-01 + 3.5542684175551437E-01 3.5230220987296634E-01 3.4910841049986197E-01 + 3.4584573181750533E-01 3.4251451657650367E-01 3.3911516358442012E-01 + 3.3564812917583198E-01 3.3211392866107220E-01 3.2851313774976365E-01 + 3.2484639394506404E-01 3.2111439790437379E-01 3.1731791476204368E-01 + 3.1345777540948994E-01 3.0953487772788196E-01 3.0555018776843190E-01 + 3.0150474087511553E-01 2.9739964274446756E-01 2.9323607041693711E-01 + 2.8901527319410775E-01 2.8473857347590131E-01 2.8040736751176321E-01 + 2.7602312605961060E-01 2.7158739494623491E-01 2.6710179552265173E-01 + 2.6256802500779736E-01 2.5798785671383284E-01 2.5336314014617622E-01 + 2.4869580097134489E-01 2.4398784084552688E-01 2.3924133709678788E-01 + 2.3445844225372672E-01 2.2964138341337301E-01 2.2479246144109474E-01 + 2.1991404999527586E-01 2.1500859436957009E-01 2.1007861014555707E-01 + 2.0512668164872991E-01 2.0015546020083103E-01 1.9516766216168235E-01 + 1.9016606675383474E-01 1.8515351366356556E-01 1.8013290041196067E-01 + 1.7510717949014973E-01 1.7007935525301718E-01 1.6505248056614963E-01 + 1.6002965320111975E-01 1.5501401197474399E-01 1.5000873262840489E-01 + 1.4501702344416170E-01 1.4004212059496746E-01 1.3508728322704242E-01 + 1.3015578827321966E-01 1.2525092499690471E-01 1.2037598926725196E-01 + 1.1553427756711655E-01 1.1072908073648431E-01 1.0596367745521508E-01 + 1.0124132747024733E-01 9.6565264573772791E-02 9.1938689340402252E-02 + 8.7364761632892626E-02 8.2846592887799345E-02 7.8387238194173800E-02 + 7.3989688180478103E-02 6.9656860726925535E-02 6.5391592522761943E-02 + 6.1196630490342123E-02 5.7074623100439550E-02 5.3028111605911608E-02 + 4.9059521223680243E-02 4.5171152298045358E-02 4.1365171481488064E-02 + 3.7643602972503083E-02 3.4008319853473447E-02 3.0461035575305932E-02 + 2.7003295639321311E-02 2.3636469530917914E-02 2.0361742963568439E-02 + 1.7180110495999403E-02 1.4092368589650810E-02 1.1099109177993900E-02 + 8.2007138236555449E-03 5.3973485438079533E-03 2.6889593886645995E-03 + 7.5268862274467050E-05 -2.4442267210122250E-03 -4.8702588471004451E-03 + -7.2037872787215126E-03 -9.4459992938132967E-03 -1.1598307578732181E-02 + -1.3662346667253834E-02 -1.5639967814991971E-02 -1.7533232198538438E-02 + -1.9344402329383840E-02 -2.1075931574828066E-02 -2.2730451681761341E-02 + -2.4310758204741153E-02 -2.5819793747408566E-02 -2.7260628936360116E-02 + -2.8636441059395459E-02 -2.9950490316041425E-02 -3.1206093647752748E-02 + -3.2406596138700457E-02 -3.3555340006031990E-02 -3.4655631231453800E-02 + -3.5710703924507835E-02 -3.6723682552551734E-02 -3.7697542223901315E-02 + -3.8635067269452171E-02 -3.9538808435156135E-02 -4.0411039073676693E-02 + -4.1253710809229273E-02 -4.2068409245816042E-02 -4.2856310396702089E-02 + -4.3618138632946828E-02 -4.4354127082013250E-02 -4.5063981554985318E-02 + -4.5746849243710044E-02 -4.6401293608270014E-02 -4.7025277071838185E-02 + -4.7616153355100901E-02 -4.8170671517496398E-02 -4.8684994028549512E-02 + -4.9154731471058810E-02 -4.9574996780129409E-02 -4.9940482249442031E-02 + -5.0245562890453704E-02 -5.0484430112827855E-02 -5.0651260107260329E-02 + -5.0740421756750011E-02 -5.0746729381239399E-02 -5.0665746135552317E-02 + -5.0494144433712952E-02 -5.0230130366274515E-02 -4.9873939713245379E-02 + -4.9428413835492048E-02 -4.8899664453581980E-02 -4.8297837095731412E-02 + -4.7633985657702313E-02 -4.6906932728570147E-02 -4.6112212050233484E-02 + -4.5245685511602823E-02 -4.4303621990359428E-02 -4.3282754973170599E-02 + -4.2180319982954788E-02 -4.0994073677965218E-02 -3.9722297044564515E-02 + -3.8363785413708419E-02 -3.6917828112638496E-02 -3.5384180463708552E-02 + -3.3763030621363994E-02 -3.2054963429556618E-02 -3.0260923131122483E-02 + -2.8382176397960333E-02 -2.6420276804403228E-02 -2.4377031551042979E-02 + -2.2254470968759592E-02 -2.0054821101124713E-02 -1.7780479478130520E-02 + -1.5433994051221651E-02 -1.3018045153748213E-02 -1.0535430274596460E-02 + -7.9890513899373364E-03 -5.3819045727743348E-03 -2.7170715873960868E-03 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 9.1460714455222991E-01 -7.0328390605778157E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 -7.0328390605778157E+00 9.2896894832380895E+01 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 3.8424506230616462E-01 -7.3232415455709461E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 -7.3232415455709461E+00 + 1.7349832447638386E+02 + + + -6.1227426799725412E-02 8.0346911593394532E-01 0.0000000000000000E+00 + 0.0000000000000000E+00 8.0346911593394532E-01 -1.6094419100880177E+01 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 -3.0836018090339579E-02 8.4396929964903478E-01 + 0.0000000000000000E+00 0.0000000000000000E+00 8.4396929964903478E-01 + -3.1740657946113409E+01 + + + + diff --git a/abipy/data/pseudos/C.psp8 b/abipy/data/pseudos/C.psp8 new file mode 100644 index 000000000..6f965f158 --- /dev/null +++ b/abipy/data/pseudos/C.psp8 @@ -0,0 +1,3062 @@ +C ONCVPSP-3.2.3.1 r_core= 1.20440 1.26326 +6.0000 4.0000 170503 zatom,zion,pspd +8 11 1 4 600 0 pspcod,pspxc,lmax,lloc,mmax,r2well +5.99000000 4.00000000 0.00000000 rchrg fchrg qchrg +2 2 0 0 0 nproj +1 1 extension_switch +0 6.4815481573149D+00 3.8550364487412D-01 +1 0.0000000000000D+00 -1.1200833593961D-09 6.4312884184847D-09 +2 1.0000000000000D-02 7.5046259163796D-02 -2.0296643971996D-02 +3 2.0000000000000D-02 1.4986447909687D-01 -4.0166829868339D-02 +4 3.0000000000000D-02 2.2422833822213D-01 -5.9191343295079D-02 +5 4.0000000000000D-02 2.9791492916908D-01 -7.6965343652414D-02 +6 5.0000000000000D-02 3.7070641341508D-01 -9.3105268774348D-02 +7 6.0000000000000D-02 4.4239161378013D-01 -1.0725540550020D-01 +8 7.0000000000000D-02 5.1276752539384D-01 -1.1909402248678D-01 +9 8.0000000000000D-02 5.8164072687356D-01 -1.2833896800143D-01 +10 9.0000000000000D-02 6.4882867482351D-01 -1.3475264330447D-01 +11 1.0000000000000D-01 7.1416086636758D-01 -1.3814627142433D-01 +12 1.1000000000000D-01 7.7747985624117D-01 -1.3838339152076D-01 +13 1.2000000000000D-01 8.3864211696530D-01 -1.3538252047415D-01 +14 1.3000000000000D-01 8.9751873278064D-01 -1.2911893567165D-01 +15 1.4000000000000D-01 9.5399592030214D-01 -1.1962554600855D-01 +16 1.5000000000000D-01 1.0079753712328D+00 -1.0699283170274D-01 +17 1.6000000000000D-01 1.0593744149169D+00 -9.1367847437014D-02 +18 1.7000000000000D-01 1.1081260009836D+00 -7.2952297402769D-02 +19 1.8000000000000D-01 1.1541785047976D+00 -5.1999704816997D-02 +20 1.9000000000000D-01 1.1974953608577D+00 -2.8811712223479D-02 +21 2.0000000000000D-01 1.2380545316412D+00 -3.7335621708784D-03 +22 2.1000000000000D-01 1.2758478216332D+00 2.2851179506039D-02 +23 2.2000000000000D-01 1.3108800483926D+00 5.0526583774543D-02 +24 2.3000000000000D-01 1.3431680844475D+00 7.8850917036889D-02 +25 2.4000000000000D-01 1.3727397855582D+00 1.0736370384931D-01 +26 2.5000000000000D-01 1.3996328224138D+00 1.3559319094203D-01 +27 2.6000000000000D-01 1.4238934341148D+00 1.6306410286081D-01 +28 2.7000000000000D-01 1.4455751228185D+00 1.8930557419665D-01 +29 2.8000000000000D-01 1.4647373096756D+00 2.1385913964056D-01 +30 2.9000000000000D-01 1.4814439726494D+00 2.3628666106035D-01 +31 3.0000000000000D-01 1.4957622869803D+00 2.5617807048343D-01 +32 3.1000000000000D-01 1.5077612889330D+00 2.7315880930358D-01 +33 3.2000000000000D-01 1.5175105830378D+00 2.8689684719864D-01 +34 3.3000000000000D-01 1.5250791123287D+00 2.9710916912128D-01 +35 3.4000000000000D-01 1.5305340100800D+00 3.0356762524743D-01 +36 3.5000000000000D-01 1.5339395502827D+00 3.0610404685839D-01 +37 3.6000000000000D-01 1.5353562125820D+00 3.0461454069176D-01 +38 3.7000000000000D-01 1.5348398756492D+00 2.9906288519694D-01 +39 3.8000000000000D-01 1.5324411510037D+00 2.8948296423476D-01 +40 3.9000000000000D-01 1.5282048671626D+00 2.7598018690343D-01 +41 4.0000000000000D-01 1.5221697117039D+00 2.5873185618015D-01 +42 4.1000000000000D-01 1.5143680364194D+00 2.3798646375099D-01 +43 4.2000000000000D-01 1.5048258282350D+00 2.1406190355790D-01 +44 4.3000000000000D-01 1.4935628460270D+00 1.8734261201611D-01 +45 4.4000000000000D-01 1.4805929208981D+00 1.5827565833067D-01 +46 4.5000000000000D-01 1.4659244149323D+00 1.2736582365511D-01 +47 4.6000000000000D-01 1.4495608309599D+00 9.5169722768604D-02 +48 4.7000000000000D-01 1.4315015634687D+00 6.2289036292097D-02 +49 4.8000000000000D-01 1.4117427785304D+00 2.9362935011134D-02 +50 4.9000000000000D-01 1.3902784085029D+00 -2.9402095717496D-03 +51 5.0000000000000D-01 1.3671012453548D+00 -3.3931722955126D-02 +52 5.1000000000000D-01 1.3422041147605D+00 -6.2912018094343D-02 +53 5.2000000000000D-01 1.3155811116684D+00 -8.9180354527724D-02 +54 5.3000000000000D-01 1.2872288768604D+00 -1.1204483520422D-01 +55 5.4000000000000D-01 1.2571478931299D+00 -1.3083250488416D-01 +56 5.5000000000000D-01 1.2253437791144D+00 -1.4489941065269D-01 +57 5.6000000000000D-01 1.1918285585416D+00 -1.5364048365524D-01 +58 5.7000000000000D-01 1.1566218826930D+00 -1.5649910165925D-01 +59 5.8000000000000D-01 1.1197521842544D+00 -1.5297619449522D-01 +60 5.9000000000000D-01 1.0812577414089D+00 -1.4263875880024D-01 +61 6.0000000000000D-01 1.0411876320325D+00 -1.2512765475646D-01 +62 6.1000000000000D-01 9.9960255915171D-01 -1.0016456560473D-01 +63 6.2000000000000D-01 9.5657553041642D-01 -6.7558010513005D-02 +64 6.3000000000000D-01 9.1219237620243D-01 -2.7208312848421D-02 +65 6.4000000000000D-01 8.6655209305401D-01 2.0888561269296D-02 +66 6.5000000000000D-01 8.1976700150629D-01 7.6638364985433D-02 +67 6.6000000000000D-01 7.7196270983395D-01 1.3984718883227D-01 +68 6.7000000000000D-01 7.2327787792451D-01 2.1022137429050D-01 +69 6.8000000000000D-01 6.7386377826973D-01 2.8736874505743D-01 +70 6.9000000000000D-01 6.2388365392028D-01 3.7080116088291D-01 +71 7.0000000000000D-01 5.7351187615442D-01 4.5993838109361D-01 +72 7.1000000000000D-01 5.2293290751218D-01 5.5411320721026D-01 +73 7.2000000000000D-01 4.7234007872159D-01 6.5257785648794D-01 +74 7.3000000000000D-01 4.2193419082321D-01 7.5451150120258D-01 +75 7.4000000000000D-01 3.7192195647283D-01 8.5902889212284D-01 +76 7.5000000000000D-01 3.2251429691676D-01 9.6518996916555D-01 +77 7.6000000000000D-01 2.7392451344942D-01 1.0720103479787D+00 +78 7.7000000000000D-01 2.2636635426851D-01 1.1784725581814D+00 +79 7.8000000000000D-01 1.8005199947201D-01 1.2835378976293D+00 +80 7.9000000000000D-01 1.3518998849701D-01 1.3861587573313D+00 +81 8.0000000000000D-01 9.1983115542585D-02 1.4852912637753D+00 +82 8.1000000000000D-01 5.0626319431712D-02 1.5799080795105D+00 +83 8.2000000000000D-01 1.1304594934681D-02 1.6690111989845D+00 +84 8.3000000000000D-01 -2.5809047213110D-02 1.7516445749157D+00 +85 8.4000000000000D-01 -6.0555544518615D-02 1.8269064109269D+00 +86 8.5000000000000D-01 -9.2791644600857D-02 1.8939609587934D+00 +87 8.6000000000000D-01 -1.2239163903832D-01 1.9520496634428D+00 +88 8.7000000000000D-01 -1.4924894474064D-01 2.0005015057389D+00 +89 8.8000000000000D-01 -1.7327750996207D-01 2.0387424020119D+00 +90 8.9000000000000D-01 -1.9441302396568D-01 2.0663035301455D+00 +91 9.0000000000000D-01 -2.1261391153855D-01 2.0828284646868D+00 +92 9.1000000000000D-01 -2.2786209602027D-01 2.0880790177221D+00 +93 9.2000000000000D-01 -2.4016351721120D-01 2.0819396980046D+00 +94 9.3000000000000D-01 -2.4954839343753D-01 2.0644207178085D+00 +95 9.4000000000000D-01 -2.5607122013050D-01 2.0356594950104D+00 +96 9.5000000000000D-01 -2.5981050048745D-01 1.9959206167181D+00 +97 9.6000000000000D-01 -2.6086820707922D-01 1.9455942501338D+00 +98 9.7000000000000D-01 -2.5936897660880D-01 1.8851930059862D+00 +99 9.8000000000000D-01 -2.5545904340421D-01 1.8153472797750D+00 +100 9.9000000000000D-01 -2.4930492042342D-01 1.7367991149163D+00 +101 1.0000000000000D+00 -2.4109183990400D-01 1.6503946517077D+00 +102 1.0100000000000D+00 -2.3102196876048D-01 1.5570752436109D+00 +103 1.0200000000000D+00 -2.1931241678015D-01 1.4578673398269D+00 +104 1.0300000000000D+00 -2.0619305834745D-01 1.3538712490566D+00 +105 1.0400000000000D+00 -1.9190419090675D-01 1.2462489141090D+00 +106 1.0500000000000D+00 -1.7669405544243D-01 1.1362108393749D+00 +107 1.0600000000000D+00 -1.6081624619648D-01 1.0250023248246D+00 +108 1.0700000000000D+00 -1.4452703831764D-01 9.1388916908527D-01 +109 1.0800000000000D+00 -1.2808266326461D-01 8.0414301102678D-01 +110 1.0900000000000D+00 -1.1173656255919D-01 6.9702648410191D-01 +111 1.1000000000000D+00 -9.5736650849705D-02 5.9377836007059D-01 +112 1.1100000000000D+00 -8.0322619289131D-02 4.9559885929050D-01 +113 1.1200000000000D+00 -6.5723309758566D-02 4.0363530225017D-01 +114 1.1300000000000D+00 -5.2154189643667D-02 3.1896827246866D-01 +115 1.1400000000000D+00 -3.9814955669888D-02 2.4259845411248D-01 +116 1.1500000000000D+00 -2.8887293975250D-02 1.7543430015419D-01 +117 1.1600000000000D+00 -1.9532821351614D-02 1.1828067403075D-01 +118 1.1700000000000D+00 -1.1895859144336D-02 7.1856389135055D-02 +119 1.1800000000000D+00 -6.0580152647417D-03 3.6522006996809D-02 +120 1.1900000000000D+00 -2.1852399205293D-03 1.3164670495360D-02 +121 1.2000000000000D+00 -3.8373768867712D-04 2.3332082758300D-03 +122 1.2100000000000D+00 5.4457491174078D-05 -3.0794019548294D-04 +123 1.2200000000000D+00 -7.1394887818297D-06 4.1762620438275D-05 +124 1.2300000000000D+00 -1.5017084661405D-05 8.8327099431907D-05 +125 1.2400000000000D+00 3.9338708360420D-06 -2.2986236657519D-05 +126 1.2500000000000D+00 9.1913224831885D-08 -5.8443053004359D-07 +127 1.2600000000000D+00 1.3565001094601D-07 -8.6253102252257D-07 +128 1.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +129 1.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +130 1.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +131 1.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +132 1.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +133 1.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +134 1.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +135 1.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +136 1.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +137 1.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +138 1.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +139 1.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +140 1.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +141 1.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +142 1.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +143 1.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +144 1.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +145 1.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +146 1.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +147 1.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +148 1.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +149 1.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +150 1.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +151 1.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +152 1.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +153 1.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +154 1.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +155 1.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +156 1.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +157 1.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +158 1.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +159 1.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +160 1.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +161 1.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +162 1.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +163 1.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +164 1.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +165 1.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +166 1.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +167 1.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +168 1.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +169 1.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +170 1.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +171 1.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +172 1.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +173 1.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +174 1.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +175 1.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +176 1.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +177 1.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +178 1.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +179 1.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +180 1.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +181 1.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +182 1.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +183 1.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +184 1.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +185 1.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +186 1.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +187 1.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +188 1.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +189 1.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +190 1.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +191 1.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +192 1.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +193 1.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +194 1.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +195 1.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +196 1.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +197 1.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +198 1.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +199 1.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +200 1.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +201 2.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +202 2.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +203 2.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +204 2.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +205 2.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +206 2.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +207 2.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +208 2.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +209 2.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +210 2.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +211 2.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +212 2.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +213 2.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +214 2.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +215 2.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +216 2.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +217 2.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +218 2.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +219 2.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +220 2.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +221 2.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +222 2.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +223 2.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +224 2.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +225 2.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +226 2.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +227 2.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +228 2.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +229 2.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +230 2.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +231 2.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +232 2.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +233 2.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +234 2.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +235 2.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +236 2.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +237 2.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +238 2.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +239 2.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +240 2.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +241 2.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +242 2.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +243 2.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +244 2.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +245 2.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +246 2.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +247 2.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +248 2.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +249 2.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +250 2.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +251 2.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +252 2.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +253 2.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +254 2.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +255 2.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +256 2.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +257 2.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +258 2.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +259 2.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +260 2.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +261 2.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +262 2.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +263 2.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +264 2.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +265 2.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +266 2.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +267 2.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +268 2.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +269 2.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +270 2.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +271 2.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +272 2.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +273 2.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +274 2.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +275 2.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +276 2.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +277 2.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +278 2.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +279 2.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +280 2.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +281 2.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +282 2.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +283 2.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +284 2.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +285 2.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +286 2.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +287 2.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +288 2.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +289 2.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +290 2.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +291 2.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +292 2.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +293 2.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +294 2.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +295 2.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +296 2.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +297 2.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +298 2.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +299 2.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +300 2.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +301 3.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +302 3.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +303 3.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +304 3.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +305 3.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +306 3.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +307 3.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +308 3.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +309 3.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +310 3.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +311 3.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +312 3.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +313 3.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +314 3.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +315 3.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +316 3.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +317 3.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +318 3.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +319 3.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +320 3.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +321 3.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +322 3.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +323 3.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +324 3.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +325 3.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +326 3.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +327 3.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +328 3.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +329 3.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +330 3.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +331 3.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +332 3.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +333 3.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +334 3.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +335 3.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +336 3.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +337 3.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +338 3.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +339 3.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +340 3.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +341 3.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +342 3.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +343 3.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +344 3.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +345 3.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +346 3.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +347 3.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +348 3.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +349 3.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +350 3.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +351 3.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +352 3.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +353 3.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +354 3.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +355 3.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +356 3.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +357 3.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +358 3.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +359 3.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +360 3.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +361 3.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +362 3.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +363 3.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +364 3.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +365 3.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +366 3.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +367 3.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +368 3.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +369 3.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +370 3.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +371 3.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +372 3.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +373 3.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +374 3.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +375 3.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +376 3.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +377 3.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +378 3.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +379 3.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +380 3.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +381 3.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +382 3.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +383 3.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +384 3.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +385 3.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +386 3.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +387 3.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +388 3.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +389 3.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +390 3.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +391 3.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +392 3.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +393 3.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +394 3.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +395 3.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +396 3.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +397 3.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +398 3.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +399 3.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +400 3.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +401 4.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +402 4.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +403 4.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +404 4.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +405 4.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +406 4.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +407 4.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +408 4.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +409 4.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +410 4.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +411 4.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +412 4.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +413 4.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +414 4.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +415 4.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +416 4.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +417 4.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +418 4.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +419 4.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +420 4.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +421 4.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +422 4.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +423 4.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +424 4.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +425 4.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +426 4.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +427 4.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +428 4.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +429 4.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +430 4.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +431 4.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +432 4.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +433 4.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +434 4.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +435 4.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +436 4.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +437 4.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +438 4.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +439 4.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +440 4.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +441 4.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +442 4.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +443 4.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +444 4.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +445 4.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +446 4.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +447 4.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +448 4.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +449 4.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +450 4.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +451 4.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +452 4.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +453 4.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +454 4.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +455 4.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +456 4.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +457 4.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +458 4.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +459 4.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +460 4.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +461 4.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +462 4.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +463 4.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +464 4.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +465 4.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +466 4.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +467 4.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +468 4.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +469 4.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +470 4.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +471 4.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +472 4.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +473 4.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +474 4.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +475 4.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +476 4.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +477 4.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +478 4.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +479 4.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +480 4.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +481 4.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +482 4.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +483 4.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +484 4.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +485 4.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +486 4.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +487 4.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +488 4.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +489 4.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +490 4.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +491 4.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +492 4.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +493 4.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +494 4.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +495 4.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +496 4.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +497 4.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +498 4.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +499 4.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +500 4.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +501 5.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +502 5.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +503 5.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +504 5.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +505 5.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +506 5.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +507 5.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +508 5.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +509 5.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +510 5.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +511 5.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +512 5.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +513 5.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +514 5.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +515 5.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +516 5.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +517 5.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +518 5.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +519 5.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +520 5.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +521 5.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +522 5.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +523 5.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +524 5.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +525 5.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +526 5.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +527 5.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +528 5.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +529 5.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +530 5.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +531 5.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +532 5.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +533 5.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +534 5.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +535 5.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +536 5.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +537 5.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +538 5.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +539 5.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +540 5.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +541 5.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +542 5.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +543 5.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +544 5.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +545 5.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +546 5.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +547 5.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +548 5.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +549 5.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +550 5.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +551 5.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +552 5.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +553 5.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +554 5.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +555 5.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +556 5.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +557 5.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +558 5.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +559 5.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +560 5.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +561 5.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +562 5.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +563 5.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +564 5.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +565 5.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +566 5.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +567 5.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +568 5.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +569 5.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +570 5.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +571 5.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +572 5.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +573 5.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +574 5.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +575 5.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +576 5.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +577 5.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +578 5.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +579 5.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +580 5.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +581 5.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +582 5.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +583 5.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +584 5.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +585 5.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +586 5.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +587 5.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +588 5.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +589 5.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +590 5.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +591 5.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +592 5.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +593 5.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +594 5.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +595 5.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +596 5.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +597 5.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +598 5.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +599 5.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +600 5.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +1 -4.1999614087404D+00 -8.7751665968299D-01 +1 0.0000000000000D+00 1.7756170478389D-08 -4.4488762451778D-08 +2 1.0000000000000D-02 3.1231219112051D-03 -2.4712083977674D-03 +3 2.0000000000000D-02 1.2460948715515D-02 -9.8307842598309D-03 +4 3.0000000000000D-02 2.7919375524212D-02 -2.1917761047860D-02 +5 4.0000000000000D-02 4.9343256428947D-02 -3.8467772289963D-02 +6 5.0000000000000D-02 7.6518910450595D-02 -5.9118824018801D-02 +7 6.0000000000000D-02 1.0917755591124D-01 -8.3419190015099D-02 +8 7.0000000000000D-02 1.4699960127123D-01 -1.1083724884145D-01 +9 8.0000000000000D-02 1.8961970271721D-01 -1.4077303716255D-01 +10 9.0000000000000D-02 2.3663248304615D-01 -1.7257125455574D-01 +11 1.0000000000000D-01 2.8759879301830D-01 -2.0553542182703D-01 +12 1.1000000000000D-01 3.4205238564672D-01 -2.3894286853090D-01 +13 1.2000000000000D-01 3.9950686609344D-01 -2.7206020656125D-01 +14 1.3000000000000D-01 4.5946277512364D-01 -3.0415893577344D-01 +15 1.4000000000000D-01 5.2141466253587D-01 -3.3453082487881D-01 +16 1.5000000000000D-01 5.8485800866593D-01 -3.6250271638931D-01 +17 1.6000000000000D-01 6.4929585691744D-01 -3.8745041807135D-01 +18 1.7000000000000D-01 7.1424502818552D-01 -4.0881136488434D-01 +19 1.8000000000000D-01 7.7924179883123D-01 -4.2609576425211D-01 +20 1.9000000000000D-01 8.4384693728352D-01 -4.3889597308665D-01 +21 2.0000000000000D-01 9.0765001008333D-01 -4.4689389644738D-01 +22 2.1000000000000D-01 9.7027288588051D-01 -4.4986624412620D-01 +23 2.2000000000000D-01 1.0313723851405D+00 -4.4768753174035D-01 +24 2.3000000000000D-01 1.0906420436723D+00 -4.4033076593391D-01 +25 2.4000000000000D-01 1.1478129790841D+00 -4.2786580781708D-01 +26 2.5000000000000D-01 1.2026538704216D+00 -4.1045546355044D-01 +27 2.6000000000000D-01 1.2549700820657D+00 -3.8834940474058D-01 +28 2.7000000000000D-01 1.3046019829674D+00 -3.6187607280578D-01 +29 2.8000000000000D-01 1.3514225310285D+00 -3.3143276949184D-01 +30 2.9000000000000D-01 1.3953342094533D+00 -2.9747417914446D-01 +31 3.0000000000000D-01 1.4362654168013D+00 -2.6049960614871D-01 +32 3.1000000000000D-01 1.4741664249225D+00 -2.2103924222659D-01 +33 3.2000000000000D-01 1.5090050286510D+00 -1.7963980228864D-01 +34 3.3000000000000D-01 1.5407620178460D+00 -1.3684988366978D-01 +35 3.4000000000000D-01 1.5694266059315D+00 -9.3205411433081D-02 +36 3.5000000000000D-01 1.5949919494138D+00 -4.9215531771954D-02 +37 3.6000000000000D-01 1.6174508899205D+00 -5.3493063483240D-03 +38 3.7000000000000D-01 1.6367920441732D+00 3.7976457159046D-02 +39 3.8000000000000D-01 1.6529963581075D+00 8.0407928602985D-02 +40 3.9000000000000D-01 1.6660342292853D+00 1.2166325637096D-01 +41 4.0000000000000D-01 1.6758632870867D+00 1.6153960900263D-01 +42 4.1000000000000D-01 1.6824269032401D+00 1.9991806626265D-01 +43 4.2000000000000D-01 1.6856534864477D+00 2.3676621904256D-01 +44 4.3000000000000D-01 1.6854565946071D+00 2.7213839172226D-01 +45 4.4000000000000D-01 1.6817358768997D+00 3.0617345736918D-01 +46 4.5000000000000D-01 1.6743788362876D+00 3.3909027409876D-01 +47 4.6000000000000D-01 1.6632633812588D+00 3.7118082873225D-01 +48 4.7000000000000D-01 1.6482611144783D+00 4.0280123022897D-01 +49 4.8000000000000D-01 1.6292412858546D+00 4.3436074892801D-01 +50 4.9000000000000D-01 1.6060753188902D+00 4.6630914714739D-01 +51 5.0000000000000D-01 1.5786418025092D+00 4.9912259097637D-01 +52 5.1000000000000D-01 1.5468318262444D+00 5.3328847109677D-01 +53 5.2000000000000D-01 1.5105545250896D+00 5.6928949124902D-01 +54 5.3000000000000D-01 1.4697426917703D+00 6.0758740572713D-01 +55 5.4000000000000D-01 1.4243583088967D+00 6.4860680146352D-01 +56 5.5000000000000D-01 1.3743978515879D+00 6.9271932542617D-01 +57 5.6000000000000D-01 1.3198972127918D+00 7.4022875398418D-01 +58 5.7000000000000D-01 1.2609361086566D+00 7.9135728761842D-01 +59 5.8000000000000D-01 1.1976418298922D+00 8.4623343202822D-01 +60 5.9000000000000D-01 1.1301922168916D+00 9.0488179580084D-01 +61 6.0000000000000D-01 1.0588177512921D+00 9.6721509586588D-01 +62 6.1000000000000D-01 9.8380267430018D-01 1.0330286158492D+00 +63 6.2000000000000D-01 9.0548506209547D-01 1.1019973101637D+00 +64 6.3000000000000D-01 8.2425581068966D-01 1.1736756890125D+00 +65 6.4000000000000D-01 7.4055650596224D-01 1.2475005584436D+00 +66 6.5000000000000D-01 6.5487617915245D-01 1.3227966254155D+00 +67 6.6000000000000D-01 5.6774697293717D-01 1.3987849128989D+00 +68 6.7000000000000D-01 4.7973876791058D-01 1.4745938655645D+00 +69 6.8000000000000D-01 3.9145284351632D-01 1.5492729633309D+00 +70 6.9000000000000D-01 3.0351467027999D-01 1.6218086005624D+00 +71 7.0000000000000D-01 2.1656595136039D-01 1.6911419335002D+00 +72 7.1000000000000D-01 1.3125605033868D-01 1.7561883492626D+00 +73 7.2000000000000D-01 4.8232958452188D-02 1.8158581673643D+00 +74 7.3000000000000D-01 -3.1866032395110D-02 1.8690781505941D+00 +75 7.4000000000000D-01 -1.0842377471248D-01 1.9148133766948D+00 +76 7.5000000000000D-01 -1.8085264634529D-01 1.9520890065285D+00 +77 7.6000000000000D-01 -2.4860368268081D-01 1.9800114785853D+00 +78 7.7000000000000D-01 -3.1117527721657D-01 1.9977886641920D+00 +79 7.8000000000000D-01 -3.6812127313025D-01 2.0047485324932D+00 +80 7.9000000000000D-01 -4.1905827790835D-01 2.0003558990433D+00 +81 8.0000000000000D-01 -4.6367204620802D-01 1.9842268662395D+00 +82 8.1000000000000D-01 -5.0172279269497D-01 1.9561406071730D+00 +83 8.2000000000000D-01 -5.3304931630026D-01 1.9160481959365D+00 +84 8.3000000000000D-01 -5.5757183977721D-01 1.8640782459565D+00 +85 8.4000000000000D-01 -5.7529349316023D-01 1.8005391823175D+00 +86 8.5000000000000D-01 -5.8630039622224D-01 1.7259180429693D+00 +87 8.6000000000000D-01 -5.9076032274338D-01 1.6408757757044D+00 +88 8.7000000000000D-01 -5.8891995775917D-01 1.5462390713308D+00 +89 8.8000000000000D-01 -5.8110078734935D-01 1.4429888469600D+00 +90 8.9000000000000D-01 -5.6769368835331D-01 1.3322455652035D+00 +91 9.0000000000000D-01 -5.4915231205584D-01 1.2152516437391D+00 +92 9.1000000000000D-01 -5.2598538079963D-01 1.0933512736721D+00 +93 9.2000000000000D-01 -4.9874803910617D-01 9.6796802295282D-01 +94 9.3000000000000D-01 -4.6803242072501D-01 8.4058065151781D-01 +95 9.4000000000000D-01 -4.3445760964308D-01 7.1269760666024D-01 +96 9.5000000000000D-01 -3.9865918609630D-01 5.8583069942697D-01 +97 9.6000000000000D-01 -3.6127855773876D-01 4.6146848483118D-01 +98 9.7000000000000D-01 -3.2295228114332D-01 3.4104987985256D-01 +99 9.8000000000000D-01 -2.8430157940134D-01 2.2593855270278D-01 +100 9.9000000000000D-01 -2.4592225839854D-01 1.1739860647144D-01 +101 1.0000000000000D+00 -2.0837521622684D-01 1.6572056814548D-02 +102 1.0100000000000D+00 -1.7217772855651D-01 -7.5541429163521D-02 +103 1.0200000000000D+00 -1.3779567704616D-01 -1.5810210904045D-01 +104 1.0300000000000D+00 -1.0563686877685D-01 -2.3044468446272D-01 +105 1.0400000000000D+00 -7.6045571709349D-02 -2.9208945425895D-01 +106 1.0500000000000D+00 -4.9298367365656D-02 -3.4274985589015D-01 +107 1.0600000000000D+00 -2.5601393905217D-02 -3.8233622511940D-01 +108 1.0700000000000D+00 -5.0890238752574D-03 -4.1095568108539D-01 +109 1.0800000000000D+00 1.2176007990679D-02 -4.2890812112546D-01 +110 1.0900000000000D+00 2.6201043072544D-02 -4.3667839360840D-01 +111 1.1000000000000D+00 3.7060546494927D-02 -4.3492478900148D-01 +112 1.1100000000000D+00 4.4891838473619D-02 -4.2446407198034D-01 +113 1.1200000000000D+00 4.9889610480312D-02 -4.0625334798878D-01 +114 1.1300000000000D+00 5.2299352133404D-02 -3.8136912302556D-01 +115 1.1400000000000D+00 5.2409836563222D-02 -3.5098397277820D-01 +116 1.1500000000000D+00 5.0544831214428D-02 -3.1634128755081D-01 +117 1.1600000000000D+00 4.7054218721320D-02 -2.7872860526477D-01 +118 1.1700000000000D+00 4.2304720487794D-02 -2.3945006422945D-01 +119 1.1800000000000D+00 3.6670426708693D-02 -1.9979853862856D-01 +120 1.1900000000000D+00 3.0523358574113D-02 -1.6102808247223D-01 +121 1.2000000000000D+00 2.4224208265963D-02 -1.2432706120141D-01 +122 1.2100000000000D+00 1.8113385308597D-02 -9.0792262255676D-02 +123 1.2200000000000D+00 1.2504812064176D-02 -6.1413011349744D-02 +124 1.2300000000000D+00 7.6785506053569D-03 -3.7048198790216D-02 +125 1.2400000000000D+00 3.8489096857112D-03 -1.8288230724058D-02 +126 1.2500000000000D+00 1.3042660740981D-03 -6.1111770505253D-03 +127 1.2600000000000D+00 1.3855420946817D-04 -6.4471480023924D-04 +128 1.2700000000000D+00 -9.0403254686383D-05 4.1138276421283D-04 +129 1.2800000000000D+00 1.0991401863351D-05 -5.0570026889161D-05 +130 1.2900000000000D+00 1.7200041360532D-05 -7.9058015078805D-05 +131 1.3000000000000D+00 -4.7981060600035D-06 2.2352249926595D-05 +132 1.3100000000000D+00 4.9853330040491D-09 -2.0093867380061D-08 +133 1.3200000000000D+00 2.3703400508093D-08 -9.5538850840905D-08 +134 1.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +135 1.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +136 1.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +137 1.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +138 1.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +139 1.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +140 1.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +141 1.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +142 1.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +143 1.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +144 1.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +145 1.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +146 1.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +147 1.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +148 1.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +149 1.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +150 1.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +151 1.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +152 1.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +153 1.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +154 1.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +155 1.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +156 1.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +157 1.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +158 1.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +159 1.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +160 1.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +161 1.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +162 1.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +163 1.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +164 1.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +165 1.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +166 1.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +167 1.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +168 1.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +169 1.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +170 1.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +171 1.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +172 1.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +173 1.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +174 1.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +175 1.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +176 1.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +177 1.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +178 1.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +179 1.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +180 1.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +181 1.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +182 1.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +183 1.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +184 1.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +185 1.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +186 1.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +187 1.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +188 1.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +189 1.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +190 1.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +191 1.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +192 1.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +193 1.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +194 1.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +195 1.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +196 1.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +197 1.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +198 1.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +199 1.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +200 1.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +201 2.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +202 2.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +203 2.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +204 2.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +205 2.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +206 2.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +207 2.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +208 2.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +209 2.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +210 2.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +211 2.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +212 2.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +213 2.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +214 2.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +215 2.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +216 2.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +217 2.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +218 2.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +219 2.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +220 2.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +221 2.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +222 2.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +223 2.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +224 2.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +225 2.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +226 2.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +227 2.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +228 2.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +229 2.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +230 2.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +231 2.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +232 2.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +233 2.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +234 2.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +235 2.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +236 2.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +237 2.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +238 2.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +239 2.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +240 2.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +241 2.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +242 2.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +243 2.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +244 2.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +245 2.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +246 2.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +247 2.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +248 2.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +249 2.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +250 2.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +251 2.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +252 2.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +253 2.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +254 2.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +255 2.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +256 2.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +257 2.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +258 2.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +259 2.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +260 2.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +261 2.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +262 2.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +263 2.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +264 2.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +265 2.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +266 2.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +267 2.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +268 2.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +269 2.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +270 2.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +271 2.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +272 2.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +273 2.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +274 2.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +275 2.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +276 2.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +277 2.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +278 2.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +279 2.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +280 2.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +281 2.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +282 2.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +283 2.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +284 2.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +285 2.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +286 2.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +287 2.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +288 2.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +289 2.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +290 2.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +291 2.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +292 2.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +293 2.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +294 2.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +295 2.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +296 2.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +297 2.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +298 2.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +299 2.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +300 2.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +301 3.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +302 3.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +303 3.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +304 3.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +305 3.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +306 3.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +307 3.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +308 3.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +309 3.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +310 3.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +311 3.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +312 3.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +313 3.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +314 3.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +315 3.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +316 3.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +317 3.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +318 3.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +319 3.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +320 3.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +321 3.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +322 3.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +323 3.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +324 3.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +325 3.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +326 3.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +327 3.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +328 3.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +329 3.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +330 3.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +331 3.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +332 3.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +333 3.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +334 3.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +335 3.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +336 3.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +337 3.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +338 3.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +339 3.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +340 3.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +341 3.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +342 3.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +343 3.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +344 3.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +345 3.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +346 3.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +347 3.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +348 3.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +349 3.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +350 3.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +351 3.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +352 3.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +353 3.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +354 3.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +355 3.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +356 3.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +357 3.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +358 3.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +359 3.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +360 3.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +361 3.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +362 3.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +363 3.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +364 3.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +365 3.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +366 3.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +367 3.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +368 3.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +369 3.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +370 3.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +371 3.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +372 3.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +373 3.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +374 3.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +375 3.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +376 3.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +377 3.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +378 3.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +379 3.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +380 3.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +381 3.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +382 3.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +383 3.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +384 3.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +385 3.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +386 3.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +387 3.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +388 3.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +389 3.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +390 3.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +391 3.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +392 3.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +393 3.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +394 3.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +395 3.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +396 3.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +397 3.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +398 3.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +399 3.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +400 3.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +401 4.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +402 4.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +403 4.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +404 4.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +405 4.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +406 4.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +407 4.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +408 4.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +409 4.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +410 4.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +411 4.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +412 4.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +413 4.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +414 4.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +415 4.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +416 4.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +417 4.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +418 4.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +419 4.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +420 4.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +421 4.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +422 4.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +423 4.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +424 4.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +425 4.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +426 4.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +427 4.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +428 4.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +429 4.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +430 4.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +431 4.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +432 4.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +433 4.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +434 4.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +435 4.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +436 4.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +437 4.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +438 4.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +439 4.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +440 4.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +441 4.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +442 4.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +443 4.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +444 4.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +445 4.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +446 4.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +447 4.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +448 4.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +449 4.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +450 4.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +451 4.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +452 4.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +453 4.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +454 4.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +455 4.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +456 4.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +457 4.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +458 4.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +459 4.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +460 4.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +461 4.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +462 4.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +463 4.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +464 4.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +465 4.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +466 4.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +467 4.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +468 4.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +469 4.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +470 4.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +471 4.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +472 4.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +473 4.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +474 4.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +475 4.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +476 4.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +477 4.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +478 4.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +479 4.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +480 4.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +481 4.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +482 4.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +483 4.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +484 4.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +485 4.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +486 4.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +487 4.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +488 4.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +489 4.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +490 4.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +491 4.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +492 4.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +493 4.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +494 4.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +495 4.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +496 4.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +497 4.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +498 4.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +499 4.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +500 4.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +501 5.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +502 5.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +503 5.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +504 5.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +505 5.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +506 5.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +507 5.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +508 5.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +509 5.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +510 5.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +511 5.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +512 5.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +513 5.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +514 5.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +515 5.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +516 5.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +517 5.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +518 5.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +519 5.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +520 5.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +521 5.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +522 5.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +523 5.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +524 5.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +525 5.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +526 5.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +527 5.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +528 5.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +529 5.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +530 5.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +531 5.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +532 5.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +533 5.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +534 5.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +535 5.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +536 5.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +537 5.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +538 5.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +539 5.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +540 5.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +541 5.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +542 5.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +543 5.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +544 5.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +545 5.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +546 5.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +547 5.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +548 5.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +549 5.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +550 5.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +551 5.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +552 5.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +553 5.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +554 5.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +555 5.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +556 5.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +557 5.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +558 5.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +559 5.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +560 5.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +561 5.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +562 5.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +563 5.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +564 5.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +565 5.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +566 5.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +567 5.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +568 5.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +569 5.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +570 5.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +571 5.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +572 5.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +573 5.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +574 5.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +575 5.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +576 5.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +577 5.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +578 5.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +579 5.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +580 5.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +581 5.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +582 5.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +583 5.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +584 5.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +585 5.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +586 5.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +587 5.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +588 5.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +589 5.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +590 5.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +591 5.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +592 5.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +593 5.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +594 5.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +595 5.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +596 5.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +597 5.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +598 5.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +599 5.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +600 5.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +4 +1 0.0000000000000D+00 -6.8381702692839D+00 +2 1.0000000000000D-02 -6.8377310215885D+00 +3 2.0000000000000D-02 -6.8364136988866D+00 +4 3.0000000000000D-02 -6.8342195724376D+00 +5 4.0000000000000D-02 -6.8311507542294D+00 +6 5.0000000000000D-02 -6.8272101889619D+00 +7 6.0000000000000D-02 -6.8224016427548D+00 +8 7.0000000000000D-02 -6.8167296890587D+00 +9 8.0000000000000D-02 -6.8101996922456D+00 +10 9.0000000000000D-02 -6.8028177892649D+00 +11 1.0000000000000D-01 -6.7945908697424D+00 +12 1.1000000000000D-01 -6.7855265548473D+00 +13 1.2000000000000D-01 -6.7756331751752D+00 +14 1.3000000000000D-01 -6.7649197477911D+00 +15 1.4000000000000D-01 -6.7533959524866D+00 +16 1.5000000000000D-01 -6.7410721071473D+00 +17 1.6000000000000D-01 -6.7279591420442D+00 +18 1.7000000000000D-01 -6.7140685727173D+00 +19 1.8000000000000D-01 -6.6994124710626D+00 +20 1.9000000000000D-01 -6.6840034341450D+00 +21 2.0000000000000D-01 -6.6678545502279D+00 +22 2.1000000000000D-01 -6.6509793615438D+00 +23 2.2000000000000D-01 -6.6333918233321D+00 +24 2.3000000000000D-01 -6.6151062587821D+00 +25 2.4000000000000D-01 -6.5961373096391D+00 +26 2.5000000000000D-01 -6.5764998823574D+00 +27 2.6000000000000D-01 -6.5562090898649D+00 +28 2.7000000000000D-01 -6.5352801892405D+00 +29 2.8000000000000D-01 -6.5137285156971D+00 +30 2.9000000000000D-01 -6.4915694135890D+00 +31 3.0000000000000D-01 -6.4688181652247D+00 +32 3.1000000000000D-01 -6.4454899185104D+00 +33 3.2000000000000D-01 -6.4215996145386D+00 +34 3.3000000000000D-01 -6.3971619163596D+00 +35 3.4000000000000D-01 -6.3721911402106D+00 +36 3.5000000000000D-01 -6.3467011905073D+00 +37 3.6000000000000D-01 -6.3207054998821D+00 +38 3.7000000000000D-01 -6.2942169754809D+00 +39 3.8000000000000D-01 -6.2672479526441D+00 +40 3.9000000000000D-01 -6.2398101569079D+00 +41 4.0000000000000D-01 -6.2119146751903D+00 +42 4.1000000000000D-01 -6.1835719367509D+00 +43 4.2000000000000D-01 -6.1547917043187D+00 +44 4.3000000000000D-01 -6.1255830756589D+00 +45 4.4000000000000D-01 -6.0959544955251D+00 +46 4.5000000000000D-01 -6.0659137775963D+00 +47 4.6000000000000D-01 -6.0354681363634D+00 +48 4.7000000000000D-01 -6.0046242278188D+00 +49 4.8000000000000D-01 -5.9733881984437D+00 +50 4.9000000000000D-01 -5.9417657413883D+00 +51 5.0000000000000D-01 -5.9097621587337D+00 +52 5.1000000000000D-01 -5.8773824286061D+00 +53 5.2000000000000D-01 -5.8446312758605D+00 +54 5.3000000000000D-01 -5.8115132449892D+00 +55 5.4000000000000D-01 -5.7780327739713D+00 +56 5.5000000000000D-01 -5.7441942677926D+00 +57 5.6000000000000D-01 -5.7100021704452D+00 +58 5.7000000000000D-01 -5.6754610344221D+00 +59 5.8000000000000D-01 -5.6405755867768D+00 +60 5.9000000000000D-01 -5.6053507911381D+00 +61 6.0000000000000D-01 -5.5697919051674D+00 +62 6.1000000000000D-01 -5.5339045332922D+00 +63 6.2000000000000D-01 -5.4976946746836D+00 +64 6.3000000000000D-01 -5.4611687667361D+00 +65 6.4000000000000D-01 -5.4243337244748D+00 +66 6.5000000000000D-01 -5.3871969764668D+00 +67 6.6000000000000D-01 -5.3497664979480D+00 +68 6.7000000000000D-01 -5.3120508419153D+00 +69 6.8000000000000D-01 -5.2740591688751D+00 +70 6.9000000000000D-01 -5.2358012759505D+00 +71 7.0000000000000D-01 -5.1972876257384D+00 +72 7.1000000000000D-01 -5.1585293752381D+00 +73 7.2000000000000D-01 -5.1195384047776D+00 +74 7.3000000000000D-01 -5.0803273465949D+00 +75 7.4000000000000D-01 -5.0409096123997D+00 +76 7.5000000000000D-01 -5.0012994189179D+00 +77 7.6000000000000D-01 -4.9615118100824D+00 +78 7.7000000000000D-01 -4.9215626743902D+00 +79 7.8000000000000D-01 -4.8814687557027D+00 +80 7.9000000000000D-01 -4.8412476557828D+00 +81 8.0000000000000D-01 -4.8009178268838D+00 +82 8.1000000000000D-01 -4.7604985529429D+00 +83 8.2000000000000D-01 -4.7200099181532D+00 +84 8.3000000000000D-01 -4.6794727621746D+00 +85 8.4000000000000D-01 -4.6389086216557D+00 +86 8.5000000000000D-01 -4.5983396583261D+00 +87 8.6000000000000D-01 -4.5577885744116D+00 +88 8.7000000000000D-01 -4.5172785167238D+00 +89 8.8000000000000D-01 -4.4768329712155D+00 +90 8.9000000000000D-01 -4.4364756501875D+00 +91 9.0000000000000D-01 -4.3962303746692D+00 +92 9.1000000000000D-01 -4.3561209546083D+00 +93 9.2000000000000D-01 -4.3161710695729D+00 +94 9.3000000000000D-01 -4.2764041525501D+00 +95 9.4000000000000D-01 -4.2368432792095D+00 +96 9.5000000000000D-01 -4.1975110646819D+00 +97 9.6000000000000D-01 -4.1584295694740D+00 +98 9.7000000000000D-01 -4.1196202156890D+00 +99 9.8000000000000D-01 -4.0811037142385D+00 +100 9.9000000000000D-01 -4.0429000032229D+00 +101 1.0000000000000D+00 -4.0050281971993D+00 +102 1.0100000000000D+00 -3.9675065466154D+00 +103 1.0200000000000D+00 -3.9303524063313D+00 +104 1.0300000000000D+00 -3.8935822118446D+00 +105 1.0400000000000D+00 -3.8572114616037D+00 +106 1.0500000000000D+00 -3.8212547036440D+00 +107 1.0600000000000D+00 -3.7857255247200D+00 +108 1.0700000000000D+00 -3.7506365400856D+00 +109 1.0800000000000D+00 -3.7159993821567D+00 +110 1.0900000000000D+00 -3.6818246864290D+00 +111 1.1000000000000D+00 -3.6481220731736D+00 +112 1.1100000000000D+00 -3.6149001237019D+00 +113 1.1200000000000D+00 -3.5821663502495D+00 +114 1.1300000000000D+00 -3.5499271588378D+00 +115 1.1400000000000D+00 -3.5181878048288D+00 +116 1.1500000000000D+00 -3.4869523406976D+00 +117 1.1600000000000D+00 -3.4562235583531D+00 +118 1.1700000000000D+00 -3.4260029235745D+00 +119 1.1800000000000D+00 -3.3962905010926D+00 +120 1.1900000000000D+00 -3.3670848758159D+00 +121 1.2000000000000D+00 -3.3383831616913D+00 +122 1.2100000000000D+00 -3.3101810853992D+00 +123 1.2200000000000D+00 -3.2824735037912D+00 +124 1.2300000000000D+00 -3.2552546803748D+00 +125 1.2400000000000D+00 -3.2285180857326D+00 +126 1.2500000000000D+00 -3.2022566211783D+00 +127 1.2600000000000D+00 -3.1764602821137D+00 +128 1.2700000000000D+00 -3.1511137809785D+00 +129 1.2800000000000D+00 -3.1261960686894D+00 +130 1.2900000000000D+00 -3.1016872282436D+00 +131 1.3000000000000D+00 -3.0775771295404D+00 +132 1.3100000000000D+00 -3.0538591584541D+00 +133 1.3200000000000D+00 -3.0305266170962D+00 +134 1.3300000000000D+00 -3.0075687138270D+00 +135 1.3400000000000D+00 -2.9849754485597D+00 +136 1.3500000000000D+00 -2.9627386832696D+00 +137 1.3600000000000D+00 -2.9408495592117D+00 +138 1.3700000000000D+00 -2.9192992499095D+00 +139 1.3800000000000D+00 -2.8980792299799D+00 +140 1.3900000000000D+00 -2.8771811080619D+00 +141 1.4000000000000D+00 -2.8565966601809D+00 +142 1.4100000000000D+00 -2.8363178555001D+00 +143 1.4200000000000D+00 -2.8163368641887D+00 +144 1.4300000000000D+00 -2.7966460679641D+00 +145 1.4400000000000D+00 -2.7772380687452D+00 +146 1.4500000000000D+00 -2.7581056956259D+00 +147 1.4600000000000D+00 -2.7392420102467D+00 +148 1.4700000000000D+00 -2.7206403105143D+00 +149 1.4800000000000D+00 -2.7022941327857D+00 +150 1.4900000000000D+00 -2.6841972525194D+00 +151 1.5000000000000D+00 -2.6663436835034D+00 +152 1.5100000000000D+00 -2.6487276757302D+00 +153 1.5200000000000D+00 -2.6313437120121D+00 +154 1.5300000000000D+00 -2.6141865034497D+00 +155 1.5400000000000D+00 -2.5972509838429D+00 +156 1.5500000000000D+00 -2.5805323031738D+00 +157 1.5600000000000D+00 -2.5640258202589D+00 +158 1.5700000000000D+00 -2.5477270946950D+00 +159 1.5800000000000D+00 -2.5316318782060D+00 +160 1.5900000000000D+00 -2.5157361055076D+00 +161 1.6000000000000D+00 -2.5000358847962D+00 +162 1.6100000000000D+00 -2.4845274879756D+00 +163 1.6200000000000D+00 -2.4692073407149D+00 +164 1.6300000000000D+00 -2.4540720124538D+00 +165 1.6400000000000D+00 -2.4391182064247D+00 +166 1.6500000000000D+00 -2.4243427498154D+00 +167 1.6600000000000D+00 -2.4097425841087D+00 +168 1.6700000000000D+00 -2.3953147557319D+00 +169 1.6800000000000D+00 -2.3810564070189D+00 +170 1.6900000000000D+00 -2.3669647676213D+00 +171 1.7000000000000D+00 -2.3530371463395D+00 +172 1.7100000000000D+00 -2.3392709235082D+00 +173 1.7200000000000D+00 -2.3256635438826D+00 +174 1.7300000000000D+00 -2.3122125101468D+00 +175 1.7400000000000D+00 -2.2989153769745D+00 +176 1.7500000000000D+00 -2.2857697457431D+00 +177 1.7600000000000D+00 -2.2727732598247D+00 +178 1.7700000000000D+00 -2.2599236005222D+00 +179 1.7800000000000D+00 -2.2472184835838D+00 +180 1.7900000000000D+00 -2.2346556563185D+00 +181 1.8000000000000D+00 -2.2222328952685D+00 +182 1.8100000000000D+00 -2.2099480044100D+00 +183 1.8200000000000D+00 -2.1977988138661D+00 +184 1.8300000000000D+00 -2.1857831790594D+00 +185 1.8400000000000D+00 -2.1738989803047D+00 +186 1.8500000000000D+00 -2.1621441227508D+00 +187 1.8600000000000D+00 -2.1505165366638D+00 +188 1.8700000000000D+00 -2.1390141779783D+00 +189 1.8800000000000D+00 -2.1276350290691D+00 +190 1.8900000000000D+00 -2.1163770997168D+00 +191 1.9000000000000D+00 -2.1052384281798D+00 +192 1.9100000000000D+00 -2.0942170823659D+00 +193 1.9200000000000D+00 -2.0833111610367D+00 +194 1.9300000000000D+00 -2.0725187950057D+00 +195 1.9400000000000D+00 -2.0618381483341D+00 +196 1.9500000000000D+00 -2.0512674193678D+00 +197 1.9600000000000D+00 -2.0408048417322D+00 +198 1.9700000000000D+00 -2.0304486851781D+00 +199 1.9800000000000D+00 -2.0201972563505D+00 +200 1.9900000000000D+00 -2.0100488993104D+00 +201 2.0000000000000D+00 -2.0000019958514D+00 +202 2.0100000000000D+00 -1.9900549656785D+00 +203 2.0200000000000D+00 -1.9802062663788D+00 +204 2.0300000000000D+00 -1.9704543932752D+00 +205 2.0400000000000D+00 -1.9607978789923D+00 +206 2.0500000000000D+00 -1.9512352928961D+00 +207 2.0600000000000D+00 -1.9417652403666D+00 +208 2.0700000000000D+00 -1.9323863618940D+00 +209 2.0800000000000D+00 -1.9230973320813D+00 +210 2.0900000000000D+00 -1.9138968584839D+00 +211 2.1000000000000D+00 -1.9047836803769D+00 +212 2.1100000000000D+00 -1.8957565674356D+00 +213 2.1200000000000D+00 -1.8868143183583D+00 +214 2.1300000000000D+00 -1.8779557594362D+00 +215 2.1400000000000D+00 -1.8691797431389D+00 +216 2.1500000000000D+00 -1.8604851466745D+00 +217 2.1600000000000D+00 -1.8518708705784D+00 +218 2.1700000000000D+00 -1.8433358373594D+00 +219 2.1800000000000D+00 -1.8348789901324D+00 +220 2.1900000000000D+00 -1.8264992914173D+00 +221 2.2000000000000D+00 -1.8181957219600D+00 +222 2.2100000000000D+00 -1.8099672796414D+00 +223 2.2200000000000D+00 -1.8018129785326D+00 +224 2.2300000000000D+00 -1.7937318479760D+00 +225 2.2400000000000D+00 -1.7857229318395D+00 +226 2.2500000000000D+00 -1.7777852878746D+00 +227 2.2600000000000D+00 -1.7699179871196D+00 +228 2.2700000000000D+00 -1.7621201134958D+00 +229 2.2800000000000D+00 -1.7543907634404D+00 +230 2.2900000000000D+00 -1.7467290456401D+00 +231 2.3000000000000D+00 -1.7391340808814D+00 +232 2.3100000000000D+00 -1.7316050019394D+00 +233 2.3200000000000D+00 -1.7241409535513D+00 +234 2.3300000000000D+00 -1.7167410924431D+00 +235 2.3400000000000D+00 -1.7094045874005D+00 +236 2.3500000000000D+00 -1.7021306193650D+00 +237 2.3600000000000D+00 -1.6949183815543D+00 +238 2.3700000000000D+00 -1.6877670796154D+00 +239 2.3800000000000D+00 -1.6806759317338D+00 +240 2.3900000000000D+00 -1.6736441687694D+00 +241 2.4000000000000D+00 -1.6666710343830D+00 +242 2.4100000000000D+00 -1.6597557850860D+00 +243 2.4200000000000D+00 -1.6528976903162D+00 +244 2.4300000000000D+00 -1.6460960324627D+00 +245 2.4400000000000D+00 -1.6393501068083D+00 +246 2.4500000000000D+00 -1.6326592214967D+00 +247 2.4600000000000D+00 -1.6260226974191D+00 +248 2.4700000000000D+00 -1.6194398680333D+00 +249 2.4800000000000D+00 -1.6129100792008D+00 +250 2.4900000000000D+00 -1.6064326889402D+00 +251 2.5000000000000D+00 -1.6000070672152D+00 +252 2.5100000000000D+00 -1.5936325953972D+00 +253 2.5200000000000D+00 -1.5873086661052D+00 +254 2.5300000000000D+00 -1.5810346821050D+00 +255 2.5400000000000D+00 -1.5748100588404D+00 +256 2.5500000000000D+00 -1.5686342219229D+00 +257 2.5600000000000D+00 -1.5625066090707D+00 +258 2.5700000000000D+00 -1.5564266571320D+00 +259 2.5800000000000D+00 -1.5503938100234D+00 +260 2.5900000000000D+00 -1.5444075182287D+00 +261 2.6000000000000D+00 -1.5384672644916D+00 +262 2.6100000000000D+00 -1.5325725527031D+00 +263 2.6200000000000D+00 -1.5267228942316D+00 +264 2.6300000000000D+00 -1.5209177822328D+00 +265 2.6400000000000D+00 -1.5151566872131D+00 +266 2.6500000000000D+00 -1.5094390862351D+00 +267 2.6600000000000D+00 -1.5037644686076D+00 +268 2.6700000000000D+00 -1.4981323548999D+00 +269 2.6800000000000D+00 -1.4925422696817D+00 +270 2.6900000000000D+00 -1.4869937484098D+00 +271 2.7000000000000D+00 -1.4814863265716D+00 +272 2.7100000000000D+00 -1.4760195496903D+00 +273 2.7200000000000D+00 -1.4705929701620D+00 +274 2.7300000000000D+00 -1.4652061462591D+00 +275 2.7400000000000D+00 -1.4598586426524D+00 +276 2.7500000000000D+00 -1.4545500300287D+00 +277 2.7600000000000D+00 -1.4492798856874D+00 +278 2.7700000000000D+00 -1.4440477930880D+00 +279 2.7800000000000D+00 -1.4388533416127D+00 +280 2.7900000000000D+00 -1.4336961265270D+00 +281 2.8000000000000D+00 -1.4285757488635D+00 +282 2.8100000000000D+00 -1.4234918153413D+00 +283 2.8200000000000D+00 -1.4184439382580D+00 +284 2.8300000000000D+00 -1.4134317353913D+00 +285 2.8400000000000D+00 -1.4084548299022D+00 +286 2.8500000000000D+00 -1.4035128502407D+00 +287 2.8600000000000D+00 -1.3986054300536D+00 +288 2.8700000000000D+00 -1.3937322080936D+00 +289 2.8800000000000D+00 -1.3888928281307D+00 +290 2.8900000000000D+00 -1.3840869388655D+00 +291 2.9000000000000D+00 -1.3793141938443D+00 +292 2.9100000000000D+00 -1.3745742513756D+00 +293 2.9200000000000D+00 -1.3698667744485D+00 +294 2.9300000000000D+00 -1.3651914306533D+00 +295 2.9400000000000D+00 -1.3605478921028D+00 +296 2.9500000000000D+00 -1.3559358353555D+00 +297 2.9600000000000D+00 -1.3513549413412D+00 +298 2.9700000000000D+00 -1.3468048952867D+00 +299 2.9800000000000D+00 -1.3422853866440D+00 +300 2.9900000000000D+00 -1.3377961090196D+00 +301 3.0000000000000D+00 -1.3333367601054D+00 +302 3.0100000000000D+00 -1.3289070416107D+00 +303 3.0200000000000D+00 -1.3245066591954D+00 +304 3.0300000000000D+00 -1.3201353224054D+00 +305 3.0400000000000D+00 -1.3157927446082D+00 +306 3.0500000000000D+00 -1.3114786429305D+00 +307 3.0600000000000D+00 -1.3071927381966D+00 +308 3.0700000000000D+00 -1.3029347548684D+00 +309 3.0800000000000D+00 -1.2987044209860D+00 +310 3.0900000000000D+00 -1.2945014681103D+00 +311 3.1000000000000D+00 -1.2903256312655D+00 +312 3.1100000000000D+00 -1.2861766488842D+00 +313 3.1200000000000D+00 -1.2820542627523D+00 +314 3.1300000000000D+00 -1.2779582179554D+00 +315 3.1400000000000D+00 -1.2738882628265D+00 +316 3.1500000000000D+00 -1.2698441488944D+00 +317 3.1600000000000D+00 -1.2658256308329D+00 +318 3.1700000000000D+00 -1.2618324664115D+00 +319 3.1800000000000D+00 -1.2578644164465D+00 +320 3.1900000000000D+00 -1.2539212447535D+00 +321 3.2000000000000D+00 -1.2500027181000D+00 +322 3.2100000000000D+00 -1.2461086061602D+00 +323 3.2200000000000D+00 -1.2422386814690D+00 +324 3.2300000000000D+00 -1.2383927193787D+00 +325 3.2400000000000D+00 -1.2345704980144D+00 +326 3.2500000000000D+00 -1.2307717982323D+00 +327 3.2600000000000D+00 -1.2269964035772D+00 +328 3.2700000000000D+00 -1.2232441002419D+00 +329 3.2800000000000D+00 -1.2195146770262D+00 +330 3.2900000000000D+00 -1.2158079252977D+00 +331 3.3000000000000D+00 -1.2121236389532D+00 +332 3.3100000000000D+00 -1.2084616143796D+00 +333 3.3200000000000D+00 -1.2048216504172D+00 +334 3.3300000000000D+00 -1.2012035483229D+00 +335 3.3400000000000D+00 -1.1976071117326D+00 +336 3.3500000000000D+00 -1.1940321466272D+00 +337 3.3600000000000D+00 -1.1904784612975D+00 +338 3.3700000000000D+00 -1.1869458663065D+00 +339 3.3800000000000D+00 -1.1834341744681D+00 +340 3.3900000000000D+00 -1.1799432008008D+00 +341 3.4000000000000D+00 -1.1764727624982D+00 +342 3.4100000000000D+00 -1.1730226789106D+00 +343 3.4200000000000D+00 -1.1695927714637D+00 +344 3.4300000000000D+00 -1.1661828636800D+00 +345 3.4400000000000D+00 -1.1627927811369D+00 +346 3.4500000000000D+00 -1.1594223514074D+00 +347 3.4600000000000D+00 -1.1560714041408D+00 +348 3.4700000000000D+00 -1.1527397709292D+00 +349 3.4800000000000D+00 -1.1494272852953D+00 +350 3.4900000000000D+00 -1.1461337827058D+00 +351 3.5000000000000D+00 -1.1428591003998D+00 +352 3.5100000000000D+00 -1.1396030774752D+00 +353 3.5200000000000D+00 -1.1363655548672D+00 +354 3.5300000000000D+00 -1.1331463752805D+00 +355 3.5400000000000D+00 -1.1299453832747D+00 +356 3.5500000000000D+00 -1.1267624251937D+00 +357 3.5600000000000D+00 -1.1235973490922D+00 +358 3.5700000000000D+00 -1.1204500047461D+00 +359 3.5800000000000D+00 -1.1173202435909D+00 +360 3.5900000000000D+00 -1.1142079186620D+00 +361 3.6000000000000D+00 -1.1111128846479D+00 +362 3.6100000000000D+00 -1.1080349978415D+00 +363 3.6200000000000D+00 -1.1049741161107D+00 +364 3.6300000000000D+00 -1.1019300989325D+00 +365 3.6400000000000D+00 -1.0989028073130D+00 +366 3.6500000000000D+00 -1.0958921037827D+00 +367 3.6600000000000D+00 -1.0928978523801D+00 +368 3.6700000000000D+00 -1.0899199186158D+00 +369 3.6800000000000D+00 -1.0869581694631D+00 +370 3.6900000000000D+00 -1.0840124733384D+00 +371 3.7000000000000D+00 -1.0810827000800D+00 +372 3.7100000000000D+00 -1.0781687209297D+00 +373 3.7200000000000D+00 -1.0752704085150D+00 +374 3.7300000000000D+00 -1.0723876368285D+00 +375 3.7400000000000D+00 -1.0695202812105D+00 +376 3.7500000000000D+00 -1.0666682183311D+00 +377 3.7600000000000D+00 -1.0638313261722D+00 +378 3.7700000000000D+00 -1.0610094840104D+00 +379 3.7800000000000D+00 -1.0582025723998D+00 +380 3.7900000000000D+00 -1.0554104731550D+00 +381 3.8000000000000D+00 -1.0526330693346D+00 +382 3.8100000000000D+00 -1.0498702452252D+00 +383 3.8200000000000D+00 -1.0471218863247D+00 +384 3.8300000000000D+00 -1.0443878793269D+00 +385 3.8400000000000D+00 -1.0416681121060D+00 +386 3.8500000000000D+00 -1.0389624737010D+00 +387 3.8600000000000D+00 -1.0362708543008D+00 +388 3.8700000000000D+00 -1.0335931452292D+00 +389 3.8800000000000D+00 -1.0309292389304D+00 +390 3.8900000000000D+00 -1.0282790289545D+00 +391 3.9000000000000D+00 -1.0256424099435D+00 +392 3.9100000000000D+00 -1.0230192776172D+00 +393 3.9200000000000D+00 -1.0204095287593D+00 +394 3.9300000000000D+00 -1.0178130612042D+00 +395 3.9400000000000D+00 -1.0152297738235D+00 +396 3.9500000000000D+00 -1.0126595665128D+00 +397 3.9600000000000D+00 -1.0101023401789D+00 +398 3.9700000000000D+00 -1.0075579967270D+00 +399 3.9800000000000D+00 -1.0050264390481D+00 +400 3.9900000000000D+00 -1.0025075710069D+00 +401 4.0000000000000D+00 -1.0000012974292D+00 +402 4.0100000000000D+00 -9.9750752409039D-01 +403 4.0200000000000D+00 -9.9502615770328D-01 +404 4.0300000000000D+00 -9.9255710590662D-01 +405 4.0400000000000D+00 -9.9010027725369D-01 +406 4.0500000000000D+00 -9.8765558120089D-01 +407 4.0600000000000D+00 -9.8522292809671D-01 +408 4.0700000000000D+00 -9.8280222917068D-01 +409 4.0800000000000D+00 -9.8039339652268D-01 +410 4.0900000000000D+00 -9.7799634311224D-01 +411 4.1000000000000D+00 -9.7561098274808D-01 +412 4.1100000000000D+00 -9.7323723007774D-01 +413 4.1200000000000D+00 -9.7087500057743D-01 +414 4.1300000000000D+00 -9.6852421054201D-01 +415 4.1400000000000D+00 -9.6618477707509D-01 +416 4.1500000000000D+00 -9.6385661807930D-01 +417 4.1600000000000D+00 -9.6153965224664D-01 +418 4.1700000000000D+00 -9.5923379904907D-01 +419 4.1800000000000D+00 -9.5693897872914D-01 +420 4.1900000000000D+00 -9.5465511229086D-01 +421 4.2000000000000D+00 -9.5238212149057D-01 +422 4.2100000000000D+00 -9.5011992882800D-01 +423 4.2200000000000D+00 -9.4786845753750D-01 +424 4.2300000000000D+00 -9.4562763157936D-01 +425 4.2400000000000D+00 -9.4339737563125D-01 +426 4.2500000000000D+00 -9.4117761507973D-01 +427 4.2600000000000D+00 -9.3896827601199D-01 +428 4.2700000000000D+00 -9.3676928520759D-01 +429 4.2800000000000D+00 -9.3458057013045D-01 +430 4.2900000000000D+00 -9.3240205892080D-01 +431 4.3000000000000D+00 -9.3023368038736D-01 +432 4.3100000000000D+00 -9.2807536399957D-01 +433 4.3200000000000D+00 -9.2592703987991D-01 +434 4.3300000000000D+00 -9.2378863879642D-01 +435 4.3400000000000D+00 -9.2166009215525D-01 +436 4.3500000000000D+00 -9.1954133199330D-01 +437 4.3600000000000D+00 -9.1743229097098D-01 +438 4.3700000000000D+00 -9.1533290236511D-01 +439 4.3800000000000D+00 -9.1324310006185D-01 +440 4.3900000000000D+00 -9.1116281854981D-01 +441 4.4000000000000D+00 -9.0909199291315D-01 +442 4.4100000000000D+00 -9.0703055882487D-01 +443 4.4200000000000D+00 -9.0497845254010D-01 +444 4.4300000000000D+00 -9.0293561088955D-01 +445 4.4400000000000D+00 -9.0090197127309D-01 +446 4.4500000000000D+00 -8.9887747165327D-01 +447 4.4600000000000D+00 -8.9686205054905D-01 +448 4.4700000000000D+00 -8.9485564702957D-01 +449 4.4800000000000D+00 -8.9285820070800D-01 +450 4.4900000000000D+00 -8.9086965173549D-01 +451 4.5000000000000D+00 -8.8888994079523D-01 +452 4.5100000000000D+00 -8.8691900909649D-01 +453 4.5200000000000D+00 -8.8495679836883D-01 +454 4.5300000000000D+00 -8.8300325085635D-01 +455 4.5400000000000D+00 -8.8105830931201D-01 +456 4.5500000000000D+00 -8.7912191699211D-01 +457 4.5600000000000D+00 -8.7719401765068D-01 +458 4.5700000000000D+00 -8.7527455553408D-01 +459 4.5800000000000D+00 -8.7336347537560D-01 +460 4.5900000000000D+00 -8.7146072239019D-01 +461 4.6000000000000D+00 -8.6956624226920D-01 +462 4.6100000000000D+00 -8.6767998117523D-01 +463 4.6200000000000D+00 -8.6580188573702D-01 +464 4.6300000000000D+00 -8.6393190304441D-01 +465 4.6400000000000D+00 -8.6206998064335D-01 +466 4.6500000000000D+00 -8.6021606653106D-01 +467 4.6600000000000D+00 -8.5837010915114D-01 +468 4.6700000000000D+00 -8.5653205738881D-01 +469 4.6800000000000D+00 -8.5470186056617D-01 +470 4.6900000000000D+00 -8.5287946843756D-01 +471 4.7000000000000D+00 -8.5106483118494D-01 +472 4.7100000000000D+00 -8.4925789941339D-01 +473 4.7200000000000D+00 -8.4745862414661D-01 +474 4.7300000000000D+00 -8.4566695682247D-01 +475 4.7400000000000D+00 -8.4388284928869D-01 +476 4.7500000000000D+00 -8.4210625379846D-01 +477 4.7600000000000D+00 -8.4033712300622D-01 +478 4.7700000000000D+00 -8.3857540996349D-01 +479 4.7800000000000D+00 -8.3682106811465D-01 +480 4.7900000000000D+00 -8.3507405129288D-01 +481 4.8000000000000D+00 -8.3333431371609D-01 +482 4.8100000000000D+00 -8.3160180998290D-01 +483 4.8200000000000D+00 -8.2987649506876D-01 +484 4.8300000000000D+00 -8.2815832432200D-01 +485 4.8400000000000D+00 -8.2644725345997D-01 +486 4.8500000000000D+00 -8.2474323856527D-01 +487 4.8600000000000D+00 -8.2304623608195D-01 +488 4.8700000000000D+00 -8.2135620281182D-01 +489 4.8800000000000D+00 -8.1967309591081D-01 +490 4.8900000000000D+00 -8.1799687288532D-01 +491 4.9000000000000D+00 -8.1632749158864D-01 +492 4.9100000000000D+00 -8.1466491021742D-01 +493 4.9200000000000D+00 -8.1300908730820D-01 +494 4.9300000000000D+00 -8.1135998173393D-01 +495 4.9400000000000D+00 -8.0971755270062D-01 +496 4.9500000000000D+00 -8.0808175974390D-01 +497 4.9600000000000D+00 -8.0645256272576D-01 +498 4.9700000000000D+00 -8.0482992183125D-01 +499 4.9800000000000D+00 -8.0321379756521D-01 +500 4.9900000000000D+00 -8.0160415074907D-01 +501 5.0000000000000D+00 -8.0000094251775D-01 +502 5.0100000000000D+00 -7.9840413431644D-01 +503 5.0200000000000D+00 -7.9681368789757D-01 +504 5.0300000000000D+00 -7.9522956531773D-01 +505 5.0400000000000D+00 -7.9365172893466D-01 +506 5.0500000000000D+00 -7.9208014140423D-01 +507 5.0600000000000D+00 -7.9051476567760D-01 +508 5.0700000000000D+00 -7.8895556499818D-01 +509 5.0800000000000D+00 -7.8740250289886D-01 +510 5.0900000000000D+00 -7.8585554319907D-01 +511 5.1000000000000D+00 -7.8431465000204D-01 +512 5.1100000000000D+00 -7.8277978769199D-01 +513 5.1200000000000D+00 -7.8125092093143D-01 +514 5.1300000000000D+00 -7.7972801465838D-01 +515 5.1400000000000D+00 -7.7821103408374D-01 +516 5.1500000000000D+00 -7.7669994468862D-01 +517 5.1600000000000D+00 -7.7519471222174D-01 +518 5.1700000000000D+00 -7.7369530269679D-01 +519 5.1800000000000D+00 -7.7220168238995D-01 +520 5.1900000000000D+00 -7.7071381783731D-01 +521 5.2000000000000D+00 -7.6923167583239D-01 +522 5.2100000000000D+00 -7.6775522342365D-01 +523 5.2200000000000D+00 -7.6628442791205D-01 +524 5.2300000000000D+00 -7.6481925684867D-01 +525 5.2400000000000D+00 -7.6335967803227D-01 +526 5.2500000000000D+00 -7.6190565950699D-01 +527 5.2600000000000D+00 -7.6045716955998D-01 +528 5.2700000000000D+00 -7.5901417671909D-01 +529 5.2800000000000D+00 -7.5757664975061D-01 +530 5.2900000000000D+00 -7.5614455765700D-01 +531 5.3000000000000D+00 -7.5471786967466D-01 +532 5.3100000000000D+00 -7.5329655527178D-01 +533 5.3200000000000D+00 -7.5188058414608D-01 +534 5.3300000000000D+00 -7.5046992622271D-01 +535 5.3400000000000D+00 -7.4906455165210D-01 +536 5.3500000000000D+00 -7.4766443080787D-01 +537 5.3600000000000D+00 -7.4626953428471D-01 +538 5.3700000000000D+00 -7.4487983289637D-01 +539 5.3800000000000D+00 -7.4349529767363D-01 +540 5.3900000000000D+00 -7.4211589986222D-01 +541 5.4000000000000D+00 -7.4074161092087D-01 +542 5.4100000000000D+00 -7.3937240251938D-01 +543 5.4200000000000D+00 -7.3800824653659D-01 +544 5.4300000000000D+00 -7.3664911505850D-01 +545 5.4400000000000D+00 -7.3529498037642D-01 +546 5.4500000000000D+00 -7.3394581498497D-01 +547 5.4600000000000D+00 -7.3260159158030D-01 +548 5.4700000000000D+00 -7.3126228305825D-01 +549 5.4800000000000D+00 -7.2992786251246D-01 +550 5.4900000000000D+00 -7.2859830323264D-01 +551 5.5000000000000D+00 -7.2727357870276D-01 +552 5.5100000000000D+00 -7.2595366259929D-01 +553 5.5200000000000D+00 -7.2463852878945D-01 +554 5.5300000000000D+00 -7.2332815132948D-01 +555 5.5400000000000D+00 -7.2202250446297D-01 +556 5.5500000000000D+00 -7.2072156261911D-01 +557 5.5600000000000D+00 -7.1942530041106D-01 +558 5.5700000000000D+00 -7.1813369263434D-01 +559 5.5800000000000D+00 -7.1684671426510D-01 +560 5.5900000000000D+00 -7.1556434045859D-01 +561 5.6000000000000D+00 -7.1428654654749D-01 +562 5.6100000000000D+00 -7.1301330804040D-01 +563 5.6200000000000D+00 -7.1174460062019D-01 +564 5.6300000000000D+00 -7.1048040014257D-01 +565 5.6400000000000D+00 -7.0922068263443D-01 +566 5.6500000000000D+00 -7.0796542429242D-01 +567 5.6600000000000D+00 -7.0671460148140D-01 +568 5.6700000000000D+00 -7.0546819073297D-01 +569 5.6800000000000D+00 -7.0422616874399D-01 +570 5.6900000000000D+00 -7.0298851237516D-01 +571 5.7000000000000D+00 -7.0175519864957D-01 +572 5.7100000000000D+00 -7.0052620475125D-01 +573 5.7200000000000D+00 -6.9930150802380D-01 +574 5.7300000000000D+00 -6.9808108596897D-01 +575 5.7400000000000D+00 -6.9686491624531D-01 +576 5.7500000000000D+00 -6.9565297666677D-01 +577 5.7600000000000D+00 -6.9444524520138D-01 +578 5.7700000000000D+00 -6.9324169996992D-01 +579 5.7800000000000D+00 -6.9204231924457D-01 +580 5.7900000000000D+00 -6.9084708144762D-01 +581 5.8000000000000D+00 -6.8965596515019D-01 +582 5.8100000000000D+00 -6.8846894907091D-01 +583 5.8200000000000D+00 -6.8728601207467D-01 +584 5.8300000000000D+00 -6.8610713317139D-01 +585 5.8400000000000D+00 -6.8493229151477D-01 +586 5.8500000000000D+00 -6.8376146640102D-01 +587 5.8600000000000D+00 -6.8259463726769D-01 +588 5.8700000000000D+00 -6.8143178369245D-01 +589 5.8800000000000D+00 -6.8027288539191D-01 +590 5.8900000000000D+00 -6.7911792222039D-01 +591 5.9000000000000D+00 -6.7796687416883D-01 +592 5.9100000000000D+00 -6.7681972136359D-01 +593 5.9200000000000D+00 -6.7567644406530D-01 +594 5.9300000000000D+00 -6.7453702266776D-01 +595 5.9400000000000D+00 -6.7340143769678D-01 +596 5.9500000000000D+00 -6.7226966980909D-01 +597 5.9600000000000D+00 -6.7114169979125D-01 +598 5.9700000000000D+00 -6.7001750855855D-01 +599 5.9800000000000D+00 -6.6889707715395D-01 +600 5.9900000000000D+00 -6.6778038674699D-01 +1 0.0000000000000D+00 1.0962487301585D+01 8.7718987629160D-10 -9.1507206686732D+01 -2.2574084823646D-08 2.1458206425126D+03 +2 1.0000000000000D-02 1.0957912835626D+01 -9.1471448333865D-01 -9.1399944701871D+01 2.1445842168356D+01 2.1419432478377D+03 +3 2.0000000000000D-02 1.0944200159584D+01 -1.8272850380168D+00 -9.1078552064330D+01 4.2813038545258D+01 2.1301710084513D+03 +4 3.0000000000000D-02 1.0921381403263D+01 -2.7355755967633D+00 -9.0544207055464D+01 6.4023323739337D+01 2.1105912274840D+03 +5 4.0000000000000D-02 1.0889509984848D+01 -3.6374657771088D+00 -8.9798867113833D+01 8.4999189985989D+01 2.0833086225674D+03 +6 5.0000000000000D-02 1.0848660415602D+01 -4.5308586290488D+00 -8.8845259408640D+01 1.0566426065365D+02 2.0484570664379D+03 +7 6.0000000000000D-02 1.0798928027258D+01 -5.4136882696516D+00 -8.7686867688580D+01 1.2594365697837D+02 2.0062046058739D+03 +8 7.0000000000000D-02 1.0740428623781D+01 -6.2839273679525D+00 -8.6327915505033D+01 1.4576435599842D+02 1.9567543025333D+03 +9 8.0000000000000D-02 1.0673298059189D+01 -7.1395944443561D+00 -8.4773345908517D+01 1.6505553768314D+02 1.9003434392623D+03 +10 9.0000000000000D-02 1.0597691743440D+01 -7.9787609498509D+00 -8.3028797736238D+01 1.8374891922361D+02 1.8372419306950D+03 +11 1.0000000000000D-01 1.0513784078775D+01 -8.7995580916256D+00 -8.1100578629327D+01 2.0177907457889D+02 1.7677508928447D+03 +12 1.1000000000000D-01 1.0421767829204D+01 -9.6001833731504D+00 -7.8995634936281D+01 2.1908373734071D+02 1.6922008489385D+03 +13 1.2000000000000D-01 1.0321853426149D+01 -1.0378906818443D+01 -7.6721518677152D+01 2.3560408542848D+02 1.6109498114761D+03 +14 1.3000000000000D-01 1.0214268213536D+01 -1.1134076852072D+01 -7.4286351759463D+01 2.5128500582552D+02 1.5243812245870D+03 +15 1.4000000000000D-01 1.0099255635929D+01 -1.1864125808426D+01 -7.1698787651930D+01 2.6607533803320D+02 1.4329017681725D+03 +16 1.5000000000000D-01 9.9770743735166D+00 -1.2567575045927D+01 -6.8967970735939D+01 2.7992809486682D+02 1.3369390296569D+03 +17 1.6000000000000D-01 9.8479974280343D+00 -1.3243039644104D+01 -6.6103493567107D+01 2.9280065945885D+02 1.2369390720344D+03 +18 1.7000000000000D-01 9.7123111638785D+00 -1.3889232663846D+01 -6.3115352290040D+01 3.0465495746554D+02 1.1333639080662D+03 +19 1.8000000000000D-01 9.5703143088776D+00 -1.4504968953610D+01 -6.0013900458641D+01 3.1545760362581D+02 1.0266889026795D+03 +20 1.9000000000000D-01 9.4223169193322D+00 -1.5089168486955D+01 -5.6809801521857D+01 3.2518002201071D+02 9.1740011139681D+02 +21 2.0000000000000D-01 9.2686393140759D+00 -1.5640859219345D+01 -5.3513980240643D+01 3.3379853946647D+02 8.0599158011599D+02 +22 2.1000000000000D-01 9.1096109824101D+00 -1.6159179454918D+01 -5.0137573306039D+01 3.4129445190771D+02 6.9296262194710D+02 +23 2.2000000000000D-01 8.9455694708515D+00 -1.6643379716568D+01 -4.6691879430651D+01 3.4765406333108D+02 5.7881508523904D+02 +24 2.3000000000000D-01 8.7768592536786D+00 -1.7092824115448D+01 -4.3188309186488D+01 3.5286869755235D+02 4.6405063403527D+02 +25 2.4000000000000D-01 8.6038305922926D+00 -1.7506991218716D+01 -3.9638334861010D+01 3.5693468287045D+02 3.4916805562106D+02 +26 2.5000000000000D-01 8.4268383884044D+00 -1.7885474417056D+01 -3.6053440600458D+01 3.5985331002182D+02 2.3466061371965D+02 +27 2.6000000000000D-01 8.2462410360305D+00 -1.8227981796172D+01 -3.2445073105037D+01 3.6163076395776D+02 1.2101346201241D+02 +28 2.7000000000000D-01 8.0623992772278D+00 -1.8534335519076D+01 -2.8824593134451D+01 3.6227803012780D+02 8.7011355108673D+00 +29 2.8000000000000D-01 7.8756750664125D+00 -1.8804470728529D+01 -2.5203228074557D+01 3.6181077612180D+02 -1.0181486683636D+02 +30 2.9000000000000D-01 7.6864304480064D+00 -1.9038433981464D+01 -2.1592025806748D+01 3.6024920966071D+02 -2.1008839339453D+02 +31 3.0000000000000D-01 7.4950264520202D+00 -1.9236381229590D+01 -1.8001810111040D+01 3.5761791406470D+02 -3.1569083038197D+02 +32 3.1000000000000D-01 7.3018220120327D+00 -1.9398575362605D+01 -1.4443137821871D+01 3.5394566246313D+02 -4.1821316147680D+02 +33 3.2000000000000D-01 7.1071729098485D+00 -1.9525383332599D+01 -1.0926257942413D+01 3.4926521212209D+02 -5.1726788241062D+02 +34 3.3000000000000D-01 6.9114307509199D+00 -1.9617272880193D+01 -7.4610729088407D+00 3.4361308037980D+02 -6.1249076329498D+02 +35 3.4000000000000D-01 6.7149419744075D+00 -1.9674808884817D+01 -4.0571021806521D+00 3.3702930377604D+02 -7.0354244592178D+02 +36 3.5000000000000D-01 6.5180469015161D+00 -1.9698649363189D+01 -7.2344831678534D-01 3.2955718204277D+02 -7.9010987300577D+02 +37 3.6000000000000D-01 6.3210788255008D+00 -1.9689541141586D+01 2.5312343197227D+00 3.2124300870647D+02 -8.7190753680015D+02 +38 3.7000000000000D-01 6.1243631464675D+00 -1.9648315228834D+01 5.6987681036176D+00 3.1213579009620D+02 -9.4867854833025D+02 +39 3.8000000000000D-01 5.9282165538251D+00 -1.9575881918099D+01 8.7714778290923D+00 3.0228695466529D+02 -1.0201956079993D+03 +40 3.9000000000000D-01 5.7329462589542D+00 -1.9473225646545D+01 1.1742213442188D+01 2.9175005594750D+02 -1.0862615172175D+03 +41 4.0000000000000D-01 5.5388492803660D+00 -1.9341399642891D+01 1.4604369724514D+01 2.8058045503987D+02 -1.1467070732936D+03 +42 4.1000000000000D-01 5.3462117833230D+00 -1.9181520392172D+01 1.7351903130704D+01 2.6883505163775D+02 -1.2014054570356D+03 +43 4.2000000000000D-01 5.1553084755850D+00 -1.8994761950950D+01 1.9979344926819D+01 2.5657191333669D+02 -1.2502408793713D+03 +44 4.3000000000000D-01 4.9664020606371D+00 -1.8782350141787D+01 2.2481812077984D+01 2.4385000892396D+02 -1.2931462721366D+03 +45 4.4000000000000D-01 4.7797427494409D+00 -1.8545556658631D+01 2.4855014363012D+01 2.3072889116440D+02 -1.3300794731423D+03 +46 4.5000000000000D-01 4.5955678314476D+00 -1.8285693114587D+01 2.7095258612154D+01 2.1726838240102D+02 -1.3610256590208D+03 +47 4.6000000000000D-01 4.4141013052928D+00 -1.8004105062195D+01 2.9199450037050D+01 2.0352827348305D+02 -1.3860041859686D+03 +48 4.7000000000000D-01 4.2355535693025D+00 -1.7702166016580D+01 3.1165090399154D+01 1.8956803922444D+02 -1.4050611366496D+03 +49 4.8000000000000D-01 4.0601211716296D+00 -1.7381271510516D+01 3.2990273384441D+01 1.7544654394368D+02 -1.4182711400711D+03 +50 4.9000000000000D-01 3.8879866195615D+00 -1.7042833210240D+01 3.4673677142782D+01 1.6122176981185D+02 -1.4257359952490D+03 +51 5.0000000000000D-01 3.7193182472496D+00 -1.6688273119431D+01 3.6214554125492D+01 1.4695055228426D+02 -1.4275832008895D+03 +52 5.1000000000000D-01 3.5542701408484D+00 -1.6319017897777D+01 3.7612718345098D+01 1.3268832729478D+02 -1.4239647213351D+03 +53 5.2000000000000D-01 3.3929821197904D+00 -1.5936493319340D+01 3.8868530190187D+01 1.1848889566933D+02 -1.4150556023076D+03 +54 5.3000000000000D-01 3.2355797726787D+00 -1.5542118894359D+01 3.9982878934779D+01 1.0440419802596D+02 -1.4010523169595D+03 +55 5.4000000000000D-01 3.0821745460510D+00 -1.5137302676879D+01 4.0957163104214D+01 9.0484110940737D+01 -1.3821711618891D+03 +56 5.5000000000000D-01 2.9328638840521D+00 -1.4723436278702D+01 4.1793268859221D+01 7.6776254508138D+01 -1.3586466276339D+03 +57 5.6000000000000D-01 2.7877314168541D+00 -1.4301890108792D+01 4.2493546563536D+01 6.3325822422788D+01 -1.3307293820207D+03 +58 5.7000000000000D-01 2.6468471954844D+00 -1.3874008855203D+01 4.3060785729790D+01 5.0175426158654D+01 -1.2986847583032D+03 +59 5.8000000000000D-01 2.5102679705557D+00 -1.3441107225054D+01 4.3498188505093D+01 3.7364960626435D+01 -1.2627904936000D+03 +60 5.9000000000000D-01 2.3780375122494D+00 -1.3004465956012D+01 4.3809341909884D+01 2.4931487274651D+01 -1.2233352162307D+03 +61 6.0000000000000D-01 2.2501869687770D+00 -1.2565328110958D+01 4.3998188993767D+01 1.2909136220549D+01 -1.1806161977752D+03 +62 6.1000000000000D-01 2.1267352604378D+00 -1.2124895665628D+01 4.4068999122860D+01 1.3290290056361D+00 -1.1349376376401D+03 +63 6.2000000000000D-01 2.0076895063016D+00 -1.1684326396950D+01 4.4026337575758D+01 -9.7807816933824D+00 -1.0866087246342D+03 +64 6.3000000000000D-01 1.8930454804791D+00 -1.1244731078116D+01 4.3875034641417D+01 -2.0395351455313D+01 -1.0359416461096D+03 +65 6.4000000000000D-01 1.7827880948909D+00 -1.0807170984311D+01 4.3620154414236D+01 -3.0492865897225D+01 -9.8324992976727D+02 +66 6.5000000000000D-01 1.6768919054154D+00 -1.0372655711315D+01 4.3266963457565D+01 -4.0054644534688D+01 -9.2884648162061D+02 +67 6.6000000000000D-01 1.5753216382848D+00 -9.9421413073215D+00 4.2820899526848D+01 -4.9065125635311D+01 -8.7304193264583D+02 +68 6.7000000000000D-01 1.4780327336014D+00 -9.5165287165147D+00 4.2287540520604D+01 -5.7511835832180D+01 -8.1614298657395D+02 +69 6.8000000000000D-01 1.3849719028721D+00 -9.0966625313295D+00 4.1672573823532D+01 -6.5385341767294D+01 -7.5845072556150D+02 +70 6.9000000000000D-01 1.2960776974963D+00 -8.6833300485896D+00 4.0981766210565D+01 -7.2679187231563D+01 -7.0025924207184D+02 +71 7.0000000000000D-01 1.2112810851979D+00 -8.2772606232399D+00 4.0220934449600D+01 -7.9389815533622D+01 -6.4185410565126D+02 +72 7.1000000000000D-01 1.1305060314643D+00 -7.8791253119124D+00 3.9395916755681D+01 -8.5516477648140D+01 -5.8351108908069D+02 +73 7.2000000000000D-01 1.0536700831382D+00 -7.4895367971576D+00 3.8512545223413D+01 -9.1061128389746D+01 -5.2549498608901D+02 +74 7.3000000000000D-01 9.8068495140655D-01 -7.1090495819607D+00 3.7576619357170D+01 -9.6028310751254D+01 -4.6805845555073D+02 +75 7.4000000000000D-01 9.1145709153997D-01 -6.7381604429891D+00 3.6593880813282D+01 -1.0042502949004D+02 -4.1144105090694D+02 +76 7.5000000000000D-01 8.4588827685940D-01 -6.3773091299375D+00 3.5569989451998D+01 -1.0426061583813D+02 -3.5586836994345D+02 +77 7.6000000000000D-01 7.8387616453372D-01 -6.0268792974557D+00 3.4510500784000D+01 -1.0754658385669D+02 -3.0155126107025D+02 +78 7.7000000000000D-01 7.2531485095527D-01 -5.6871996552967D+00 3.3420844890998D+01 -1.1029647966493D+02 -2.4868519817087D+02 +79 7.8000000000000D-01 6.7009541458513D-01 -5.3585453216267D+00 3.2306306882468D+01 -1.1252572513297D+02 -1.9744978021062D+02 +80 7.9000000000000D-01 6.1810644431437D-01 -5.0411393638688D+00 3.1172008939244D+01 -1.1425145695813D+02 -1.4800831061207D+02 +81 8.0000000000000D-01 5.6923455154611D-01 -4.7351545110027D+00 3.0022893985441D+01 -1.1549236213313D+02 -1.0050751350086D+02 +82 8.1000000000000D-01 5.2336486436561D-01 -4.4407150208744D+00 2.8863711017500D+01 -1.1626851134275D+02 -5.5077385230104D+01 +83 8.2000000000000D-01 4.8038150233160D-01 -4.1578986858670D+00 2.7699002104935D+01 -1.1660119127657D+02 -1.1831125334745D+01 +84 8.3000000000000D-01 4.4016803058889D-01 -3.8867389601699D+00 2.6533091070065D+01 -1.1651273676352D+02 2.9134818345005D+01 +85 8.4000000000000D-01 4.0260789217023D-01 -3.6272271918724D+00 2.5370073841779D+01 -1.1602636401646D+02 6.7740579059442D+01 +86 8.5000000000000D-01 3.6758481752264D-01 -3.3793149432125D+00 2.4213810466897D+01 -1.1516600604452D+02 1.0392261764511D+02 +87 8.6000000000000D-01 3.3498321045910D-01 -3.1429163825291D+00 2.3067918753177D+01 -1.1395615096778D+02 1.3763338669762D+02 +88 8.7000000000000D-01 3.0468850989971D-01 -2.9179107317611D+00 2.1935769511083D+01 -1.1242168422405D+02 1.6884088565661D+02 +89 8.8000000000000D-01 2.7658752692605D-01 -2.7041447537141D+00 2.0820483349404D+01 -1.1058773567200D+02 1.9752814244109D+02 +90 8.9000000000000D-01 2.5056875682789D-01 -2.5014352638185D+00 1.9724928973004D+01 -1.0847953213920D+02 2.2369263063983D+02 +91 9.0000000000000D-01 2.2652266597157D-01 -2.3095716516352D+00 1.8651722924862D+01 -1.0612225621670D+02 2.4734560739791D+02 +92 9.1000000000000D-01 2.0434195346363D-01 -2.1283183979949D+00 1.7603230705689D+01 -1.0354091198708D+02 2.6851139442940D+02 +93 9.2000000000000D-01 1.8392178772116D-01 -1.9574175743499D+00 1.6581569199700D+01 -1.0076019816903D+02 2.8722661017773D+02 +94 9.3000000000000D-01 1.6516001819069D-01 -1.7965913116537D+00 1.5588610329713D+01 -9.7804389192054D+01 3.0353935480357D+02 +95 9.4000000000000D-01 1.4795736258054D-01 -1.6455442268829D+00 1.4625985859989D+01 -9.4697224616170D+01 3.1750835759574D+02 +96 9.5000000000000D-01 1.3221757008616D-01 -1.5039657961437D+00 1.3695093261844D+01 -9.1461807229314D+01 3.2920209358105D+02 +97 9.6000000000000D-01 1.1784756119428D-01 -1.3715326641758D+00 1.2797102553614D+01 -8.8120510109504D+01 3.3869787817534D+02 +98 9.7000000000000D-01 1.0475754474906D-01 -1.2479108809597D+00 1.1932964024480D+01 -8.4694892798880D+01 3.4608094911594D+02 +99 9.8000000000000D-01 9.2861113052460D-02 -1.1327580570559D+00 1.1103416750559D+01 -8.1205626716134D+01 3.5144353784730D+02 +100 9.9000000000000D-01 8.2075315848213D-02 -1.0257254301965D+00 1.0308997810270D+01 -7.7672429874832D+01 3.5488393944867D+02 +101 1.0000000000000D+00 7.2320714111687D-02 -9.2645983662177D-01 9.5500521061510D+00 -7.4114010872418D+01 3.5650558891898D+02 +102 1.0100000000000D+00 6.3521414626326D-02 -8.3460558154934D-01 8.8267427007608D+00 -7.0548022060856D+01 3.5641614984127D+02 +103 1.0200000000000D+00 5.5605086379599D-02 -7.4980620409444D-01 8.1390615755653D+00 -6.6991021748254D+01 3.5472662011571D+02 +104 1.0300000000000D+00 4.8502959853614D-02 -6.7170613285632D-01 7.4868407234560D+00 -6.3458445234575D+01 3.5155046010623D+02 +105 1.0400000000000D+00 4.2149810319131D-02 -5.9995222928643D-01 6.8697634878023D+00 -5.9964584432142D+01 3.4700274932749D+02 +106 1.0500000000000D+00 3.6483926265554D-02 -5.3419521677607D-01 6.2873760636239D+00 -5.6522575749084D+01 3.4119937717416D+02 +107 1.0600000000000D+00 3.1447064116987D-02 -4.7409099425851D-01 5.7390990800857D+00 -5.3144395886905D+01 3.3425626992830D+02 +108 1.0700000000000D+00 2.6984390391802D-02 -4.1930183390863D-01 5.2242391870268D+00 -4.9840865169350D+01 3.2628865836960D+02 +109 1.0800000000000D+00 2.3044412463879D-02 -3.6949746325821D-01 4.7420005722546D+00 -4.6621657976620D+01 3.1741038972049D+02 +110 1.0900000000000D+00 1.9578899075910D-02 -3.2435603278858D-01 4.2914963410218D+00 -4.3495319824404D+01 3.0773328679886D+02 +111 1.1000000000000D+00 1.6542791742960D-02 -2.8356497067021D-01 3.8717596933487D+00 -4.0469290609322D+01 2.9736655617535D+02 +112 1.1100000000000D+00 1.3894108163778D-02 -2.4682172698888D-01 3.4817548401222D+00 -3.7549933519696D+01 2.8641624706018D+02 +113 1.1200000000000D+00 1.1593838730567D-02 -2.1383441034877D-01 3.1203876039206D+00 -3.4742569097522D+01 2.7498476240588D+02 +114 1.1300000000000D+00 9.6058371963318D-03 -1.8432232025470D-01 2.7865156557285D+00 -3.2051513924550D+01 2.6317042317757D+02 +115 1.1400000000000D+00 7.8967065227081D-03 -1.5801637913149D-01 2.4789583439553D+00 -2.9480123397337D+01 2.5106708623105D+02 +116 1.1500000000000D+00 6.4356808945284D-03 -1.3465946823770D-01 2.1965060772035D+00 -2.7030838056885D+01 2.3876381541986D+02 +117 1.1600000000000D+00 5.1945048354408D-03 -1.1400667213410D-01 1.9379292283298D+00 -2.4705232942099D+01 2.2634460560941D+02 +118 1.1700000000000D+00 4.1473103134114D-03 -9.5825436628462D-02 1.7019865322459D+00 -2.2504069442697D+01 2.1388815879304D+02 +119 1.1800000000000D+00 3.2704926795371D-03 -7.9895645357821D-02 1.4874329546666D+00 -2.0427349134504D+01 2.0146771116498D+02 +120 1.1900000000000D+00 2.5425862276008D-03 -6.6009620403701D-02 1.2930270145323D+00 -1.8474369095369D+01 1.8915090947433D+02 +121 1.2000000000000D+00 1.9441401036457D-03 -5.3972052475391D-02 1.1175375479870D+00 -1.6643778218651D+01 1.7699973479462D+02 +122 1.2100000000000D+00 1.4575952345891D-03 -4.3599866271554D-02 9.5974990671492D-01 -1.4933634064516D+01 1.6507047155429D+02 +123 1.2200000000000D+00 1.0671629166303D-03 -3.4722026706894D-02 8.1847158598853D-01 -1.3341459798489D+01 1.5341371954968D+02 +124 1.2300000000000D+00 7.5870560755753D-04 -2.7179291710755D-02 6.9253728510173D-01 -1.1864300807997D+01 1.4207444625034D+02 +125 1.2400000000000D+00 5.1962042792238D-04 -2.0823917220259D-02 5.8081340525790D-01 -1.0498780609835D+01 1.3109207663418D+02 +126 1.2500000000000D+00 3.3872583806356D-04 -1.5519319990365D-02 4.8220199281276D-01 -9.2411556785856D+00 1.2050061761311D+02 +127 1.2600000000000D+00 2.0615187412777D-04 -1.1139703703667D-02 3.9564414114846D-01 -8.0873688703225D+00 1.1032881400029D+02 +128 1.2700000000000D+00 1.1323427453127D-04 -7.5696536638743D-03 3.2012286705525D-01 -7.0331011482532D+00 1.0060033289386D+02 +129 1.2800000000000D+00 5.2412804371395D-05 -4.7037053098059D-03 2.5466547898086D-01 -6.0738213298017D+00 9.1333973313811D+01 +130 1.2900000000000D+00 1.7134006613498D-05 -2.4458915250581D-03 1.9834545872599D-01 -5.2048336227146D+00 8.2543897832600D+01 +131 1.3000000000000D+00 1.7585533708752D-06 -7.0927338760195D-04 1.5028388013022D-01 -4.4213227576701D+00 7.4239883036627D+01 +132 1.3100000000000D+00 1.4733662931571D-06 5.8454098385422D-04 1.0965038870444D-01 -3.7183965263005D+00 6.6427585629706D+01 +133 1.3200000000000D+00 1.2208590070511D-05 1.5058852754983D-03 7.5663769609912D-02 -3.0911255923135D+00 5.9108821040499D+01 +134 1.3300000000000D+00 3.0559461320699D-05 2.1175276945091D-03 4.7592131816594D-02 -2.5345804791085D+00 5.2281851587738D+01 +135 1.3400000000000D+00 5.3713127812446D-05 2.4751635600957D-03 2.4752736554072D-02 -2.0438656242540D+00 4.5941681146570D+01 +136 1.3500000000000D+00 7.9380369320703D-05 2.6279045908138D-03 6.5115003568872D-03 -1.6141504738423D+00 4.0080353587853D+01 +137 1.3600000000000D+00 1.0573217486952D-04 2.6187618232931D-03 -7.7177981720150D-03 -1.2406975918814D+00 3.4687252384381D+01 +138 1.3700000000000D+00 1.3134112253755D-04 2.4851190204413D-03 -1.8474577431052D-02 -9.1888776181695D-01 2.9749398667229D+01 +139 1.3800000000000D+00 1.5512741912787D-04 2.2591944929075D-03 -2.6252748276263D-02 -6.4424214066294D-01 2.5251745643316D+01 +140 1.3900000000000D+00 1.7630949833448D-04 1.9684888235340D-03 -3.1502216456855D-02 -4.1244148927331D-01 2.1177467052549D+01 +141 1.4000000000000D+00 1.9435902031439D-04 1.6362165554191D-03 -3.4630562442177D-02 -2.1934255182282D-01 1.7508237643499D+01 +142 1.4100000000000D+00 2.0896009030146D-04 1.2817205766848D-03 -3.6004872414632D-02 -6.0991691682677D-02 1.4224504182779D+01 +143 1.4200000000000D+00 2.1997254179209D-04 9.2086722235990D-04 -3.5953690723966D-02 6.6364145749006D-02 1.1305744949435D+01 +144 1.4300000000000D+00 2.2739905992737D-04 5.6642160521670D-04 -3.4769070344138D-02 1.6626898891855D-01 8.7307167934676D+00 +145 1.4400000000000D+00 2.3135596042402D-04 2.2840197205685D-04 -3.2708695458741D-02 2.4205180478161D-01 6.4776883243130D+00 +146 1.4500000000000D+00 2.3204740290156D-04 -8.5587529589920D-05 -2.9998051914574D-02 2.9682272288993D-01 4.5246582014713D+00 +147 1.4600000000000D+00 2.2974282360039D-04 -3.7004568251812D-04 -2.6832627097433D-02 3.3347135977598D-01 2.8495581115122D+00 +148 1.4700000000000D+00 2.2475736834772D-04 -6.2128542167530D-04 -2.3380113609867D-02 3.5466709948526D-01 1.4304392415801D+00 +149 1.4800000000000D+00 2.1743510528709D-04 -8.3716673056451D-04 -1.9782604040642D-02 3.6286115064525D-01 2.4564250745710D-01 +150 1.4900000000000D+00 2.0813479771572D-04 -1.0168515771943D-03 -1.6158754854095D-02 3.6029022577631D-01 -7.2604824386712D-01 +151 1.5000000000000D+00 1.9721801903224D-04 -1.1605801744439D-03 -1.2605906917843D-02 3.4898166500713D-01 -1.5052697883711D+00 +152 1.5100000000000D+00 1.8503940587850D-04 -1.2694681627874D-03 -9.2021488795766D-03 3.3075984511205D-01 -2.1119598159060D+00 +153 1.5200000000000D+00 1.7193882462869D-04 -1.3453241831430D-03 -6.0083086467446D-03 3.0725369433337D-01 -2.5652538888548D+00 +154 1.5300000000000D+00 1.5823528448989D-04 -1.3904868122301D-03 -3.0698682668135D-03 2.7990517009382D-01 -2.8833983054606D+00 +155 1.5400000000000D+00 1.4422235959715D-04 -1.4076803971890D-03 -4.1878559360478D-04 2.4997851069054D-01 -3.0836789083015D+00 +156 1.5500000000000D+00 1.3016499418331D-04 -1.3998884540828D-03 1.9247752496203D-03 2.1857014520642D-01 -3.1823646317315D+00 +157 1.5600000000000D+00 1.1629745831401D-04 -1.3702440118020D-03 3.9508193816039D-03 1.8661907293242D-01 -3.1946656542677D+00 +158 1.5700000000000D+00 1.0282234743278D-04 -1.3219355718360D-03 5.6579987790765D-03 1.5491761328969D-01 -3.1347048936805D+00 +159 1.5800000000000D+00 8.9910427467340D-05 -1.2581278178634D-03 7.0522012283165D-03 1.2412236052292D-01 -3.0155023489443D+00 +160 1.5900000000000D+00 7.7701217432359D-05 -1.1818958413303D-03 8.1452476934883D-03 9.4765245649523D-02 -2.8489711284187D+00 +161 1.6000000000000D+00 6.6304160708107D-05 -1.0961718763675D-03 8.9537012148102D-03 6.7264579157973D-02 -2.6459243728609D+00 +162 1.6100000000000D+00 5.5800269517155D-05 -1.0037033537409D-03 9.4977855180910D-03 4.1935971678051D-02 -2.4160919772545D+00 +163 1.6200000000000D+00 4.6244145536817D-05 -9.0702128405077D-04 9.8004114867462D-03 1.9003051962353D-02 -2.1681461904040D+00 +164 1.6300000000000D+00 3.7666254220992D-05 -8.0841776048470D-04 9.8863101691182D-03 -1.3921272313015D-03 -1.9097349892985D+00 +165 1.6400000000000D+00 3.0075403865365D-05 -7.0993173475305D-04 9.7812670197509D-03 -1.9179029681592D-02 -1.6475223352630D+00 +166 1.6500000000000D+00 2.3461303978896D-05 -6.1334179916780D-04 9.5114557889354D-03 -3.4349036275362D-02 -1.3872341439385D+00 +167 1.6600000000000D+00 1.7797194269201D-05 -5.2016535290317D-04 9.1028648557856D-03 -4.6946298240471D-02 -1.1337092288922D+00 +168 1.6700000000000D+00 1.3042421886699D-05 -4.3166282178468D-04 8.5808134668992D-03 -5.7059155459149D-02 -8.9095395556964D-01 +169 1.6800000000000D+00 9.1449881828496D-06 -3.4884656690945D-04 7.9695501621731D-03 -6.4812079288152D-02 -6.6220009790042D-01 +170 1.6900000000000D+00 6.0439526647803D-06 -2.7249311303617D-04 7.2919293989286D-03 -7.0358243937278D-02 -4.4996454375918D-01 +171 1.7000000000000D+00 3.6717340452584D-06 -2.0315857732581D-04 6.5691592325493D-03 -7.3872663506086D-02 -2.5611060349322D-01 +172 1.7100000000000D+00 1.9562128016716D-06 -1.4119594346467D-04 5.8206144017870D-03 -7.5545982587475D-02 -8.1909518180740D-02 +173 1.7200000000000D+00 8.2268283249500D-07 -8.6774256971275D-05 5.0637089503559D-03 -7.5578846979570D-02 7.1897836831103D-02 +174 1.7300000000000D+00 1.9557882217790D-07 -3.9898474036392D-05 4.3138212023888D-03 -7.4176919124781D-02 2.0504043115559D-01 +175 1.7400000000000D+00 2.5160260934181D-11 -4.3015607095043D-07 3.5842667406356D-03 -7.1546465373220D-02 3.1765757071184D-01 +176 1.7500000000000D+00 1.6315858871626D-07 3.1892085210516D-05 2.8863111818716D-03 -6.7890551186983D-02 4.1024165105524D-01 +177 1.7600000000000D+00 6.1526183392194D-07 5.7432179248399D-05 2.2292196819750D-03 -6.3405780763939D-02 4.8358292982147D-01 +178 1.7700000000000D+00 1.2906864253231D-06 7.6637061870154D-05 1.6203348207140D-03 -5.8279586815183D-02 5.3871732027415D-01 +179 1.7800000000000D+00 2.1285900325442D-06 9.0017877695787D-05 1.0651803948298D-03 -5.2688021224808D-02 5.7687701467736D-01 +180 1.7900000000000D+00 3.0734894720902D-06 9.8132428240098D-05 5.6758381687803D-04 -4.6794024768438D-02 5.9944457298871D-01 +181 1.8000000000000D+00 4.0756436007717D-06 1.0156888535811D-04 1.2981419875209D-04 -4.0746140305024D-02 6.0791045871760D-01 +182 1.8100000000000D+00 5.0912833062108D-06 1.0093091141130D-04 -2.4726876759299D-04 -3.4677628602642D-02 6.0383419851747D-01 +183 1.8200000000000D+00 6.0826967193837D-06 9.6824404790655D-05 -5.6405971770698D-04 -2.8705958069317D-02 5.8880940974141D-01 +184 1.8300000000000D+00 7.0181926386882D-06 8.9845656304291D-05 -8.2204747260573D-04 -2.2932622907580D-02 5.6443237737101D-01 +185 1.8400000000000D+00 7.8719526163911D-06 8.0571322359802D-05 -1.0236571931106D-03 -1.7443255149061D-02 5.3227471155576D-01 +186 1.8500000000000D+00 8.6237882658923D-06 6.9549718449463D-05 -1.1720913566974D-03 -1.2307999107671D-02 4.9385932226481D-01 +187 1.8600000000000D+00 9.2588260322702D-06 5.7293944177872D-05 -1.2711801147987D-03 -7.5820925365013D-03 4.5064045040718D-01 +188 1.8700000000000D+00 9.7671194836213D-06 4.4276219992775D-05 -1.3252333198039D-03 -3.3066533458527D-03 4.0398673939854D-01 +189 1.8800000000000D+00 1.0143226487772D-05 3.0923871884558D-05 -1.3389062792697D-03 4.9041020849202D-04 3.5516803709173D-01 +190 1.8900000000000D+00 1.0385737958380D-05 1.7616467835051D-05 -1.3170708963339D-03 3.7933434826551D-03 3.0534504446624D-01 +191 1.9000000000000D+00 1.0496796998742D-05 4.6842600842720D-06 -1.2647009199107D-03 6.5974263447951D-03 2.5556208294908D-01 +192 1.9100000000000D+00 1.0481599399646D-05 -7.5922984687437D-06 -1.1867670109002D-03 8.9077781373353D-03 2.0674251220384D-01 +193 1.9200000000000D+00 1.0347897161909D-05 -1.8982062820713D-05 -1.0881442690406D-03 1.0738135346771D-02 1.5968662652590D-01 +194 1.9300000000000D+00 1.0105515553876D-05 -2.9301824452844D-05 -9.7353297561416D-04 1.2109627963757D-02 1.1507183313087D-01 +195 1.9400000000000D+00 9.7658760157944D-06 -3.8414201351201D-05 -8.4738958915700D-04 1.3049543937870D-02 7.3454790725614D-02 +196 1.9500000000000D+00 9.3415615169192D-06 -4.6224950082556D-05 -7.1387252564686D-04 1.3590161991408D-02 3.5275272819576D-02 +197 1.9600000000000D+00 8.8458893514417D-06 -5.2679693163335D-05 -5.7679671367095D-04 1.3767583466598D-02 8.6161322664492D-04 +198 1.9700000000000D+00 8.2925401522262D-06 -5.7760380642480D-05 -4.3960177709168D-04 1.3620672336080D-02 -2.9562747559904D-02 +199 1.9800000000000D+00 7.6952077320108D-06 -6.1481361387138D-05 -3.0532908555032D-04 1.3190029610439D-02 -5.5871544087742D-02 +200 1.9900000000000D+00 7.0672968295745D-06 -6.3885352179879D-05 -1.7660912966303D-04 1.2517067239602D-02 -7.8027293146237D-02 +201 2.0000000000000D+00 6.4216626297901D-06 -6.5039324672983D-05 -5.5657902459194D-05 1.1643170761942D-02 -9.6072326588347D-02 +202 2.0100000000000D+00 5.7703832487261D-06 -6.5030305159219D-05 5.5719217409010D-05 1.0608933697750D-02 -1.1011931115614D-01 +203 2.0200000000000D+00 5.1245864880082D-06 -6.3961424420706D-05 1.5611613308212D-04 9.4535201975572D-03 -1.2034188019623D-01 +204 2.0300000000000D+00 4.4943022771751D-06 -6.1947890463353D-05 2.4450866806849D-04 8.2140855891632D-03 -1.2696486142568D-01 +205 2.0400000000000D+00 3.8883645801766D-06 -5.9113369586769D-05 3.2023238503994D-04 6.9253239581610D-03 -1.3025503425965D-01 +206 2.0500000000000D+00 3.3143433084110D-06 -5.5586480215266D-05 3.8295580039109D-04 5.6190905030953D-03 -1.3051190876216D-01 +207 2.0600000000000D+00 2.7785098704928D-06 -5.1497586195369D-05 4.3265043398335D-04 4.3241150045089D-03 -1.2805893586957D-01 +208 2.0700000000000D+00 2.2858361972755D-06 -4.6976008313493D-05 4.6955905342434D-04 3.0658121575743D-03 -1.2323543463844D-01 +209 2.0800000000000D+00 1.8400167951158D-06 -4.2147363073458D-05 4.9416084454084D-04 1.8661524256727D-03 -1.1638865983883D-01 +210 2.0900000000000D+00 1.4435172823055D-06 -3.7131477717156D-05 5.0713778806914D-04 7.4362504522123D-04 -1.0786703747656D-01 +211 2.1000000000000D+00 1.0976424607523D-06 -3.2040481006386D-05 5.0933919386940D-04 -2.8674365016740D-04 -9.8013696367842D-02 +212 2.1100000000000D+00 8.0262076122289D-07 -2.6977299749545D-05 5.0174746837496D-04 -1.2133094022152D-03 -8.7160877047613D-02 +213 2.1200000000000D+00 5.5770100692051D-07 -2.2034541610985D-05 4.8544566411766D-04 -2.0276759000956D-03 -7.5625218044884D-02 +214 2.1300000000000D+00 3.6126357018475D-07 -1.7293580106230D-05 4.6158450012825D-04 -2.7245155967767D-03 -6.3703454847939D-02 +215 2.1400000000000D+00 2.1093140277962D-07 -1.2824084329587D-05 4.3135408662788D-04 -3.3013575131010D-03 -5.1669281480351D-02 +216 2.1500000000000D+00 1.0369134238406D-07 -8.6837412419498D-06 3.9595581548994D-04 -3.7583395413820D-03 -3.9770644143967D-02 +217 2.1600000000000D+00 3.6014207759495D-08 -4.9182634286189D-06 3.5657751204070D-04 -4.0979410107187D-03 -2.8227827206163D-02 +218 2.1700000000000D+00 3.9699650718757D-09 -1.5616511734588D-06 3.1437221991919D-04 -4.3247049377591D-03 -1.7232301199193D-02 +219 2.1800000000000D+00 3.3486958819732D-09 1.3633680492364D-06 2.7043785746571D-04 -4.4449357747240D-03 -6.9460057899822D-03 +220 2.1900000000000D+00 2.9764946365258D-08 3.8447094596430D-06 2.2580202662473D-04 -4.4664137424596D-03 2.4986123663875D-03 +221 2.2000000000000D+00 7.8762185006869D-08 5.8801529999770D-06 1.8140845381377D-04 -4.3980981220824D-03 1.0998134586066D-02 +222 2.2100000000000D+00 1.4590943282804D-07 7.4764439822736D-06 1.3810626475056D-04 -4.2498364895921D-03 1.8477241406220D-02 +223 2.2200000000000D+00 2.2688126991252D-07 8.6483323462056D-06 9.6643121968902D-05 -4.0321009734213D-03 2.4887349555089D-02 +224 2.2300000000000D+00 3.1753736775963D-07 9.4174961928047D-06 5.7659772067418D-05 -3.7557176830012D-03 3.0204910431632D-02 +225 2.2400000000000D+00 4.1398426468925D-07 9.8114803479421D-06 2.1687908545925D-05 -3.4316316786694D-03 3.4429451057592D-02 +226 2.2500000000000D+00 5.1262683625454D-07 9.8626213450494D-06 -1.0849751259405D-05 -3.0706916667802D-03 3.7581399242622D-02 +227 2.2600000000000D+00 6.1021531859665D-07 9.6069078494048D-06 -3.9637773098662D-05 -2.6834395073877D-03 3.9699644589592D-02 +228 2.2700000000000D+00 7.0387227017529D-07 9.0829903384470D-06 -6.4463886430074D-05 -2.2799510743620D-03 4.0839153977691D-02 +229 2.2800000000000D+00 7.9111564747780D-07 8.3311464623754D-06 -8.5213568397288D-05 -1.8696826368399D-03 4.1068440306906D-02 +230 2.2900000000000D+00 8.6987138023033D-07 7.3923163787197D-06 -1.0186321933460D-04 -1.4613445826485D-03 4.0467030440145D-02 +231 2.3000000000000D+00 9.3847364109106D-07 6.3072842378461D-06 -1.1447233261306D-04 -1.0628126183805D-03 3.9123207144081D-02 +232 2.3100000000000D+00 9.9566050992845D-07 5.1158402048987D-06 -1.2317451221076D-04 -6.8104718741384D-04 3.7130583016017D-02 +233 2.3200000000000D+00 1.0405603427066D-06 3.8561030329985D-06 -1.2816819477018D-04 -3.2204683290834D-04 3.4586480256434D-02 +234 2.3300000000000D+00 1.0726716877606D-06 2.5639496047024D-06 -1.2970710205246D-04 9.1776302742736D-06 3.1588088495407D-02 +235 2.3400000000000D+00 1.0918381344684D-06 1.2724544895955D-06 -1.2808977342606D-04 3.0860505156973D-04 2.8239728377054D-02 +236 2.3500000000000D+00 1.0982187432763D-06 1.1534581924696D-08 -1.2365015227130D-04 5.7319392719615D-04 2.4642455554562D-02 +237 2.3600000000000D+00 1.0922549308497D-06 -1.1923551130647D-06 -1.1674794317794D-04 8.0083940735488D-04 2.0897473837997D-02 +238 2.3700000000000D+00 1.0746333221535D-06 -2.3164693044767D-06 -1.0775872737352D-04 9.9042735119408D-04 1.7061478511225D-02 +239 2.3800000000000D+00 1.0462499864862D-06 -3.3418497400436D-06 -9.7065943317661D-05 1.1417130717493D-03 1.3188936526053D-02 +240 2.3900000000000D+00 1.0081714776762D-06 -4.2533723982765D-06 -8.5052387910147D-05 1.2551461407938D-03 9.3538366602010D-03 +241 2.4000000000000D+00 9.6159538493333D-07 -5.0397162315187D-06 -7.2092136682336D-05 1.3314336635967D-03 5.7307842521905D-03 +242 2.4100000000000D+00 9.0781533091937D-07 -5.6932308126245D-06 -5.8543925829515D-05 1.3717201807229D-03 2.4788290712828D-03 +243 2.4200000000000D+00 8.4818337098708D-07 -6.2097681533266D-06 -4.4748441744769D-05 1.3788503415601D-03 -4.0542350973025D-04 +244 2.4300000000000D+00 7.8407554803643D-07 -6.5884556835082D-06 -3.1024106429400D-05 1.3576196876212D-03 -3.1392529442018D-03 +245 2.4400000000000D+00 7.1686285931966D-07 -6.8314134027624D-06 -1.7668261378381D-05 1.3137573362513D-03 -5.9187973429927D-03 +246 2.4500000000000D+00 6.4788049241635D-07 -6.9434665621720D-06 -4.9175033063473D-06 1.2475337305928D-03 -8.6528816784478D-03 +247 2.4600000000000D+00 5.7840283901111D-07 -6.9318043353376D-06 7.0403551235525D-06 1.1558400350843D-03 -1.1006698291806D-02 +248 2.4700000000000D+00 5.0962356582894D-07 -6.8057801697557D-06 1.8085197609785D-05 1.0352760104537D-03 -1.2737020569673D-02 +249 2.4800000000000D+00 4.4263497416373D-07 -6.5759928160580D-06 2.7970130350435D-05 8.9607118200045D-04 -1.3529872175459D-02 +250 2.4900000000000D+00 3.7841411911966D-07 -6.2542725487632D-06 3.6440491783667D-05 7.5475658927563D-04 -1.3212582914890D-02 +251 2.5000000000000D+00 3.1781370230085D-07 -5.8523317421333D-06 4.3225774789132D-05 6.2595118249166D-04 -1.1551427320952D-02 +252 2.5100000000000D+00 2.6155044423127D-07 -5.3860654021024D-06 4.8571089118194D-05 5.1419634208271D-04 -9.6729336806699D-03 +253 2.5200000000000D+00 2.1020318465818D-07 -4.8718750425756D-06 5.2879702793238D-05 4.1542933155572D-04 -9.0560682942291D-03 +254 2.5300000000000D+00 1.6423752872294D-07 -4.3285784610499D-06 5.6564566047131D-05 3.2743586483435D-04 -1.1164581504046D-02 +255 2.5400000000000D+00 1.2392692302923D-07 -3.7606747817077D-06 5.9437467086962D-05 2.2210139060848D-04 -1.5488820540079D-02 +256 2.5500000000000D+00 8.9413860629675D-08 -3.1699333264519D-06 6.1015037213245D-05 6.8757634846271D-05 -2.0530505789591D-02 +257 2.5600000000000D+00 6.0622335524855D-08 -2.5573187353197D-06 6.0865221839251D-05 -1.6288745573730D-04 -2.4699785861056D-02 +258 2.5700000000000D+00 3.7687091237328D-08 -1.9479412530963D-06 5.8372841641815D-05 -4.4549685528360D-04 -2.6218888864162D-02 +259 2.5800000000000D+00 2.0668259321941D-08 -1.3777717064778D-06 5.3067026788961D-05 -7.2305857717134D-04 -2.3686997525329D-02 +260 2.5900000000000D+00 9.5167364342970D-09 -8.8165066532392D-07 4.4566385735311D-05 -9.3627731961941D-04 -1.5859977343006D-02 +261 2.6000000000000D+00 3.3043567095451D-09 -4.8410633323843D-07 3.3788614376830D-05 -1.0454997550022D-03 -4.1684769604911D-03 +262 2.6100000000000D+00 5.3887006569581D-10 -1.9709567735671D-07 2.2483434115132D-05 -1.0343395464209D-03 8.2335060982975D-03 +263 2.6200000000000D+00 -3.3612113609405D-10 -2.6820665819533D-08 1.2475971355846D-05 -8.9370225623792D-04 1.7998159100650D-02 +264 2.6300000000000D+00 -4.1939146710732D-10 4.2418402305643D-08 4.9041105972506D-06 -6.5368692203180D-04 2.3179443717376D-02 +265 2.6400000000000D+00 -1.6636428419070D-10 4.6833407374368D-08 -7.1050814930546D-08 -3.8070414538748D-04 2.3826014790405D-02 +266 2.6500000000000D+00 7.8571817959572D-11 2.5075395585782D-08 -2.4599398852678D-06 -1.4296625934815D-04 2.0271180529624D-02 +267 2.6600000000000D+00 1.8490625102067D-10 7.2381042585834D-09 -2.7124991256886D-06 1.1151108281762D-05 1.3713973603457D-02 +268 2.6700000000000D+00 1.2123193528005D-10 -4.6611665969662D-09 -1.7133312798839D-06 9.1105801609464D-05 6.2466471682799D-03 +269 2.6800000000000D+00 -8.3086981160833D-12 -8.6565769665226D-09 -4.0437018454412D-07 1.0777563841635D-04 -5.7459419121041D-05 +270 2.6900000000000D+00 -4.0741030477188D-11 -9.2733201878537D-09 2.8318575279593D-07 8.4931000320854D-05 -3.2643418324571D-03 +271 2.7000000000000D+00 -3.5454562849553D-11 -5.4534287546923D-09 5.1919187007129D-07 4.0470397613581D-05 -4.1434600674309D-03 +272 2.7100000000000D+00 -1.8815643934368D-12 -2.3031162828331D-10 3.8779987752028D-07 -4.2045204246677D-06 -3.2987285144097D-03 +273 2.7200000000000D+00 0.0000000000000D+00 1.8769432104369D-09 2.7471112255563D-07 -2.3892481985760D-05 -2.0342383211922D-03 +274 2.7300000000000D+00 0.0000000000000D+00 1.9042017607139D-09 1.1701000840446D-07 -2.5288983000506D-05 -5.9472480322284D-04 +275 2.7400000000000D+00 0.0000000000000D+00 5.2323926240935D-10 -2.1780744157718D-08 -1.4435958915746D-05 5.6903433479363D-04 +276 2.7500000000000D+00 0.0000000000000D+00 -2.0931622601652D-10 -8.9734757050367D-08 -5.2424168240139D-06 1.0598247966565D-03 +277 2.7600000000000D+00 0.0000000000000D+00 -2.9638716949862D-10 -8.4831999676574D-08 2.3103633066242D-07 9.3942176937762D-04 +278 2.7700000000000D+00 0.0000000000000D+00 -1.4800262724493D-10 -3.3449031549927D-08 2.8944355092393D-06 4.6557650726389D-04 +279 2.7800000000000D+00 0.0000000000000D+00 9.6941683393527D-12 1.2444473920666D-08 3.4103030631337D-06 2.0331950361851D-05 +280 2.7900000000000D+00 0.0000000000000D+00 2.2271613394561D-11 2.1133108781037D-08 2.8050849755178D-06 -1.5805108131148D-04 +281 2.8000000000000D+00 0.0000000000000D+00 1.6439258052335D-11 1.4103723382345D-08 1.1464750839712D-06 -1.8462942756952D-04 +282 2.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.7748594193906D-10 -5.7437848941331D-07 -1.0981006821165D-04 +283 2.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.7005359229838D-09 -1.0114675633657D-06 -6.7477886077120D-05 +284 2.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.6551968536513D-09 -7.8240624093688D-07 -1.7054232634434D-05 +285 2.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -7.2461547217678D-10 -1.5824757234445D-07 2.2442345807715D-05 +286 2.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 1.7255016595343D-10 1.6558810462070D-07 3.7928499163035D-05 +287 2.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 2.5364549768667D-10 2.0266241900092D-07 3.1102445871858D-05 +288 2.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 1.4399796090562D-10 1.0573402822985D-07 1.1119922984793D-05 +289 2.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -3.5047745596322D-12 -1.1186118217614D-08 -7.0879919351162D-06 +290 2.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.0831934078591D-11 -2.8762414759033D-08 -1.0460817272234D-05 +291 2.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -9.4878195432433D-12 -2.3827052111020D-08 -7.3492570786247D-06 +292 2.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.5262812017682D-12 -3.6973012876914D-09 -6.4863404934838D-07 +293 2.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 2.1767519701789D-09 1.7668478359257D-06 +294 2.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 2.8031582094557D-09 1.9464273717488D-06 +295 2.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 1.4578163073921D-09 9.3262147205689D-07 +296 2.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -6.2638890723945D-11 -1.3058091157286D-07 +297 2.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.6851153853475D-10 -2.8666191798226D-07 +298 2.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.4549308343781D-10 -2.3377131150066D-07 +299 2.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.6893248255520D-11 -4.1046294207510D-08 +300 2.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 3.9380832405588D-12 2.2674997389567D-08 +301 3.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 5.4776001032183D-12 3.0040371173377D-08 +302 3.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 3.2509489215577D-12 1.7324766597393D-08 +303 3.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -5.4771349541539D-10 +304 3.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.0663166574198D-09 +305 3.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.0052566771624D-09 +306 3.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -6.7768828733841D-10 +307 3.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 6.0260181312566D-11 +308 3.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 1.0568682468909D-10 +309 3.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 7.9058977638845D-11 +310 3.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 4.3563975893126D-12 +311 3.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.0058650059020D-12 +312 3.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.5470324115284D-12 +313 3.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.4672769120195D-12 +314 3.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +315 3.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +316 3.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +317 3.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +318 3.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +319 3.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +320 3.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +321 3.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +322 3.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +323 3.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +324 3.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +325 3.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +326 3.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +327 3.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +328 3.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +329 3.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +330 3.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +331 3.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +332 3.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +333 3.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +334 3.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +335 3.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +336 3.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +337 3.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +338 3.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +339 3.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +340 3.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +341 3.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +342 3.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +343 3.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +344 3.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +345 3.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +346 3.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +347 3.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +348 3.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +349 3.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +350 3.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +351 3.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +352 3.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +353 3.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +354 3.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +355 3.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +356 3.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +357 3.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +358 3.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +359 3.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +360 3.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +361 3.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +362 3.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +363 3.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +364 3.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +365 3.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +366 3.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +367 3.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +368 3.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +369 3.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +370 3.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +371 3.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +372 3.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +373 3.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +374 3.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +375 3.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +376 3.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +377 3.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +378 3.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +379 3.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +380 3.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +381 3.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +382 3.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +383 3.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +384 3.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +385 3.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +386 3.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +387 3.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +388 3.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +389 3.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +390 3.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +391 3.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +392 3.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +393 3.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +394 3.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +395 3.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +396 3.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +397 3.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +398 3.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +399 3.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +400 3.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +401 4.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +402 4.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +403 4.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +404 4.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +405 4.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +406 4.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +407 4.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +408 4.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +409 4.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +410 4.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +411 4.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +412 4.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +413 4.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +414 4.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +415 4.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +416 4.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +417 4.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +418 4.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +419 4.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +420 4.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +421 4.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +422 4.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +423 4.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +424 4.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +425 4.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +426 4.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +427 4.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +428 4.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +429 4.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +430 4.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +431 4.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +432 4.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +433 4.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +434 4.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +435 4.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +436 4.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +437 4.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +438 4.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +439 4.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +440 4.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +441 4.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +442 4.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +443 4.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +444 4.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +445 4.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +446 4.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +447 4.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +448 4.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +449 4.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +450 4.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +451 4.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +452 4.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +453 4.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +454 4.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +455 4.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +456 4.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +457 4.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +458 4.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +459 4.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +460 4.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +461 4.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +462 4.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +463 4.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +464 4.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +465 4.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +466 4.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +467 4.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +468 4.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +469 4.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +470 4.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +471 4.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +472 4.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +473 4.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +474 4.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +475 4.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +476 4.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +477 4.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +478 4.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +479 4.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +480 4.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +481 4.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +482 4.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +483 4.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +484 4.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +485 4.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +486 4.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +487 4.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +488 4.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +489 4.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +490 4.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +491 4.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +492 4.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +493 4.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +494 4.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +495 4.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +496 4.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +497 4.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +498 4.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +499 4.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +500 4.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +501 5.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +502 5.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +503 5.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +504 5.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +505 5.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +506 5.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +507 5.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +508 5.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +509 5.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +510 5.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +511 5.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +512 5.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +513 5.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +514 5.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +515 5.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +516 5.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +517 5.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +518 5.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +519 5.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +520 5.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +521 5.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +522 5.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +523 5.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +524 5.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +525 5.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +526 5.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +527 5.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +528 5.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +529 5.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +530 5.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +531 5.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +532 5.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +533 5.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +534 5.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +535 5.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +536 5.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +537 5.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +538 5.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +539 5.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +540 5.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +541 5.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +542 5.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +543 5.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +544 5.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +545 5.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +546 5.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +547 5.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +548 5.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +549 5.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +550 5.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +551 5.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +552 5.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +553 5.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +554 5.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +555 5.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +556 5.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +557 5.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +558 5.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +559 5.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +560 5.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +561 5.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +562 5.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +563 5.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +564 5.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +565 5.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +566 5.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +567 5.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +568 5.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +569 5.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +570 5.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +571 5.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +572 5.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +573 5.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +574 5.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +575 5.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +576 5.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +577 5.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +578 5.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +579 5.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +580 5.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +581 5.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +582 5.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +583 5.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +584 5.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +585 5.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +586 5.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +587 5.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +588 5.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +589 5.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +590 5.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +591 5.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +592 5.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +593 5.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +594 5.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +595 5.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +596 5.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +597 5.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +598 5.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +599 5.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +600 5.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +1 0.0000000000000D+00 2.6451115717394D-01 7.8881056646265D+01 1.5477130082263D+03 +2 1.0000000000000D-02 2.6633263359994D-01 6.9693576112341D+01 1.3682561202365D+03 +3 2.0000000000000D-02 2.7179062647585D-01 6.1609408604334D+01 1.2116038112686D+03 +4 3.0000000000000D-02 2.8086585938039D-01 5.4445572787236D+01 1.0737774803273D+03 +5 4.0000000000000D-02 2.9352630918337D-01 4.8083058413983D+01 9.5213314708989D+02 +6 5.0000000000000D-02 3.0972736169025D-01 4.2431130580106D+01 8.4464751771448D+02 +7 6.0000000000000D-02 3.2941202896473D-01 3.7412170349604D+01 7.4960911346347D+02 +8 7.0000000000000D-02 3.5251122721024D-01 3.2957852646174D+01 6.6553366631486D+02 +9 8.0000000000000D-02 3.7894411409093D-01 2.9007462303950D+01 5.9112298573671D+02 +10 9.0000000000000D-02 4.0861848405395D-01 2.5506852664538D+01 5.2523772698425D+02 +11 1.0000000000000D-01 4.4143121989804D-01 2.2407665206730D+01 4.6687638583047D+02 +12 1.1000000000000D-01 4.7726879850010D-01 1.9666685497662D+01 4.1515790854561D+02 +13 1.2000000000000D-01 5.1600784825964D-01 1.7245286937971D+01 3.6930682231786D+02 +14 1.3000000000000D-01 5.5751575545266D-01 1.5108940283262D+01 3.2864033074010D+02 +15 1.4000000000000D-01 6.0165131630568D-01 1.3226777218981D+01 2.9255703825843D+02 +16 1.5000000000000D-01 6.4826543121163D-01 1.1571200617130D+01 2.6052706820412D+02 +17 1.6000000000000D-01 6.9720183711920D-01 1.0117536098210D+01 2.3208339166889D+02 +18 1.7000000000000D-01 7.4829787374260D-01 8.8437205332480D+00 2.0681421608410D+02 +19 1.8000000000000D-01 8.0138527886814D-01 7.7300237085643D+00 1.8435630405060D+02 +20 1.9000000000000D-01 8.5629100768632D-01 6.7587997773720D+00 1.6438910955368D+02 +21 2.0000000000000D-01 9.1283807076218D-01 5.9142654394028D+00 1.4662963235054D+02 +22 2.1000000000000D-01 9.7084638498208D-01 5.1823020660897D+00 1.3082790305058D+02 +23 2.2000000000000D-01 1.0301336315900D+00 4.5502792420116D+00 1.1676302171423D+02 +24 2.3000000000000D-01 1.0905161152606D+00 4.0068974297639D+00 1.0423968193787D+02 +25 2.4000000000000D-01 1.1518096180542D+00 3.5420476869345D+00 9.3085120525580D+01 +26 2.5000000000000D-01 1.2138302420719D+00 3.1466865705427D+00 8.3146440081921D+01 +27 2.6000000000000D-01 1.2763952346755D+00 2.8127245558549D+00 7.4288258281239D+01 +28 2.7000000000000D-01 1.3393237902635D+00 2.5329264727739D+00 6.6390643254657D+01 +29 2.8000000000000D-01 1.4024378228080D+00 2.3008226241624D+00 5.9347299557269D+01 +30 2.9000000000000D-01 1.4655627036402D+00 2.1106293969193D+00 5.3063973602064D+01 +31 3.0000000000000D-01 1.5285279593459D+00 1.9571783090710D+00 4.7457051336348D+01 +32 3.1000000000000D-01 1.5911679250715D+00 1.8358525553647D+00 4.2452324349454D+01 +33 3.2000000000000D-01 1.6533223490490D+00 1.7425302207911D+00 3.7983903591270D+01 +34 3.3000000000000D-01 1.7148369447197D+00 1.6735334270406D+00 3.3993262498939D+01 +35 3.4000000000000D-01 1.7755638874518D+00 1.6255827620564D+00 3.0428393618571D+01 +36 3.5000000000000D-01 1.8353622535086D+00 1.5957564184737D+00 2.7243064810144D+01 +37 3.6000000000000D-01 1.8940983996027D+00 1.5814535336962D+00 2.4396162871427D+01 +38 3.7000000000000D-01 1.9516462820791D+00 1.5803612834535D+00 2.1851113950372D+01 +39 3.8000000000000D-01 2.0078877154648D+00 1.5904253326923D+00 1.9575371435616D+01 +40 3.9000000000000D-01 2.0627125708167D+00 1.6098232933086D+00 1.7539963197701D+01 +41 4.0000000000000D-01 2.1160189149666D+00 1.6369408782425D+00 1.5719091059212D+01 +42 4.1000000000000D-01 2.1677130923933D+00 1.6703504765195D+00 1.4089776262889D+01 +43 4.2000000000000D-01 2.2177097520359D+00 1.7087919045693D+00 1.2631545481351D+01 +44 4.3000000000000D-01 2.2659318218962D+00 1.7511551161783D+00 1.1326152586731D+01 +45 4.4000000000000D-01 2.3123104347368D+00 1.7964646772516D+00 1.0157331986479D+01 +46 4.5000000000000D-01 2.3567848085828D+00 1.8438658325581D+00 9.1105798434311D+00 +47 4.6000000000000D-01 2.3993020860484D+00 1.8926120100765D+00 8.1729599436794D+00 +48 4.7000000000000D-01 2.4398171367511D+00 1.9420536245154D+00 7.3329313634400D+00 +49 4.8000000000000D-01 2.4782923272382D+00 1.9916280549268D+00 6.5801954235733D+00 +50 4.9000000000000D-01 2.5146972629276D+00 2.0408506817832D+00 5.9055597147758D+00 +51 5.0000000000000D-01 2.5490085065707D+00 2.0893068760306D+00 5.3008172339222D+00 +52 5.1000000000000D-01 2.5812092776769D+00 2.1366448361433D+00 4.7586388985092D+00 +53 5.2000000000000D-01 2.6112891372008D+00 2.1825691690847D+00 4.2724779070066D+00 +54 5.3000000000000D-01 2.6392436615988D+00 2.2268351080652D+00 3.8364845929285D+00 +55 5.4000000000000D-01 2.6650741101084D+00 2.2692432559332D+00 3.4454305835546D+00 +56 5.5000000000000D-01 2.6887870888134D+00 2.3096347411514D+00 3.0946412236243D+00 +57 5.6000000000000D-01 2.7103942147237D+00 2.3478866779616D+00 2.7799353604772D+00 +58 5.7000000000000D-01 2.7299117827445D+00 2.3839078380041D+00 2.4975717097468D+00 +59 5.8000000000000D-01 2.7473604380356D+00 2.4176344703069D+00 2.2442011265310D+00 +60 5.9000000000000D-01 2.7627648558791D+00 2.4490262492476D+00 2.0168241926195D+00 +61 6.0000000000000D-01 2.7761534307926D+00 2.4780623799672D+00 1.8127535933378D+00 +62 6.1000000000000D-01 2.7875579762524D+00 2.5047379369672D+00 1.6295807986168D+00 +63 6.2000000000000D-01 2.7970134360354D+00 2.5290605420449D+00 1.4651465872152D+00 +64 6.3000000000000D-01 2.8045576078491D+00 2.5510474926856D+00 1.3175149695555D+00 +65 6.4000000000000D-01 2.8102308796171D+00 2.5707234291628D+00 1.1849500828051D+00 +66 6.5000000000000D-01 2.8140759785074D+00 2.5881185823757D+00 1.0658956593024D+00 +67 6.6000000000000D-01 2.8161377325507D+00 2.6032675865177D+00 9.5895670854058D-01 +68 6.7000000000000D-01 2.8164628444931D+00 2.6162087842101D+00 8.6288310152255D-01 +69 6.8000000000000D-01 2.8150996773611D+00 2.6269839083883D+00 7.7655480021634D-01 +70 6.9000000000000D-01 2.8120980510887D+00 2.6356380041689D+00 6.9896852707194D-01 +71 7.0000000000000D-01 2.8075090494691D+00 2.6422194568962D+00 6.2922571561739D-01 +72 7.1000000000000D-01 2.8013848366356D+00 2.6467800163713D+00 5.6652161922187D-01 +73 7.2000000000000D-01 2.7937784822610D+00 2.6493747438384D+00 5.1013548006523D-01 +74 7.3000000000000D-01 2.7847437946688D+00 2.6500618470735D+00 4.5942167499033D-01 +75 7.4000000000000D-01 2.7743351610935D+00 2.6489024018252D+00 4.1380176206251D-01 +76 7.5000000000000D-01 2.7626073943807D+00 2.6459599799543D+00 3.7275735433998D-01 +77 7.6000000000000D-01 2.7496155855022D+00 2.6413002153472D+00 3.3582374842281D-01 +78 7.7000000000000D-01 2.7354149613530D+00 2.6349903401710D+00 3.0258423671585D-01 +79 7.8000000000000D-01 2.7200607474020D+00 2.6270987197232D+00 2.7266503488816D-01 +80 7.9000000000000D-01 2.7036080348798D+00 2.6176944071966D+00 2.4573075987654D-01 +81 8.0000000000000D-01 2.6861116522997D+00 2.6068467324066D+00 2.2148039864778D-01 +82 8.1000000000000D-01 2.6676260412220D+00 2.5946249322357D+00 1.9964371334994D-01 +83 8.2000000000000D-01 2.6482051362761D+00 2.5810978257367D+00 1.7997803402106D-01 +84 8.3000000000000D-01 2.6279022495583D+00 2.5663335335160D+00 1.6226539537353D-01 +85 8.4000000000000D-01 2.6067699596116D+00 2.5503992389614D+00 1.4630997913999D-01 +86 8.5000000000000D-01 2.5848600052692D+00 2.5333609877561D+00 1.3193582796208D-01 +87 8.6000000000000D-01 2.5622231847124D+00 2.5152835216629D+00 1.1898480080264D-01 +88 8.7000000000000D-01 2.5389092601363D+00 2.4962301425138D+00 1.0731474338574D-01 +89 8.8000000000000D-01 2.5149668684540D+00 2.4762626025426D+00 9.6797850256025D-02 +90 8.9000000000000D-01 2.4904434384870D+00 2.4554410175214D+00 8.7319197749338D-02 +91 9.0000000000000D-01 2.4653851150865D+00 2.4338237995423D+00 7.8775429527784D-02 +92 9.1000000000000D-01 2.4398366906234D+00 2.4114676066685D+00 7.1073578400861D-02 +93 9.2000000000000D-01 2.4138415442508D+00 2.3884273070416D+00 6.4130009968997D-02 +94 9.3000000000000D-01 2.3874415893028D+00 2.3647559553655D+00 5.7869475222198D-02 +95 9.4000000000000D-01 2.3606772291422D+00 2.3405047799797D+00 5.2224260633813D-02 +96 9.5000000000000D-01 2.3335873217006D+00 2.3157231789923D+00 4.7133425532722D-02 +97 9.6000000000000D-01 2.3062091528863D+00 2.2904587241631D+00 4.2542117637855D-02 +98 9.7000000000000D-01 2.2785784189515D+00 2.2647571714167D+00 3.8400958614644D-02 +99 9.8000000000000D-01 2.2507292178244D+00 2.2386624770246D+00 3.4665492386929D-02 +100 9.9000000000000D-01 2.2226940493255D+00 2.2122168186292D+00 3.1295689688042D-02 +101 1.0000000000000D+00 2.1945038240917D+00 2.1854606203993D+00 2.8255503051802D-02 +102 1.0100000000000D+00 2.1661878809418D+00 2.1584325816987D+00 2.5512467032377D-02 +103 1.0200000000000D+00 2.1377740123265D+00 2.1311697087331D+00 2.3037338997457D-02 +104 1.0300000000000D+00 2.1092884974191D+00 2.1037073487047D+00 2.0803776323499D-02 +105 1.0400000000000D+00 2.0807561423173D+00 2.0760792260654D+00 1.8788046264188D-02 +106 1.0500000000000D+00 2.0522003267549D+00 2.0483174805040D+00 1.6968765136160D-02 +107 1.0600000000000D+00 2.0236430566483D+00 2.0204527063460D+00 1.5326663829056D-02 +108 1.0700000000000D+00 1.9951050217431D+00 1.9925139930819D+00 1.3844376954089D-02 +109 1.0800000000000D+00 1.9666056575757D+00 1.9645289667684D+00 1.2506253217395D-02 +110 1.0900000000000D+00 1.9381632109230D+00 1.9365238320740D+00 1.1298184864660D-02 +111 1.1000000000000D+00 1.9097948078873D+00 1.9085234147669D+00 1.0207454248146D-02 +112 1.1100000000000D+00 1.8815165237431D+00 1.8805512044597D+00 9.2225957842155D-03 +113 1.1200000000000D+00 1.8533434536690D+00 1.8526293974495D+00 8.3332717422308D-03 +114 1.1300000000000D+00 1.8252897835000D+00 1.8247789395059D+00 7.5301604650520D-03 +115 1.1400000000000D+00 1.7973688596557D+00 1.7970195684743D+00 6.8048557633338D-03 +116 1.1500000000000D+00 1.7695932574279D+00 1.7693698565783D+00 6.1497763500168D-03 +117 1.1600000000000D+00 1.7419748468680D+00 1.7418472523163D+00 5.5580843119034D-03 +118 1.1700000000000D+00 1.7145248555576D+00 1.7144681218603D+00 5.0236117073294D-03 +119 1.1800000000000D+00 1.6872539277179D+00 1.6872477898753D+00 4.5407944662687D-03 +120 1.1900000000000D+00 1.6601721788238D+00 1.6602005796857D+00 4.1046128615878D-03 +121 1.2000000000000D+00 1.6332892456761D+00 1.6333398527288D+00 3.7105378953322D-03 +122 1.2100000000000D+00 1.6066143318546D+00 1.6066780472416D+00 3.3544830116759D-03 +123 1.2200000000000D+00 1.5801562526136D+00 1.5802267161321D+00 3.0327605856706D-03 +124 1.2300000000000D+00 1.5539234775204D+00 1.5539965639987D+00 2.7420427281657D-03 +125 1.2400000000000D+00 1.5279241676333D+00 1.5279974832666D+00 2.4793259732833D-03 +126 1.2500000000000D+00 1.5021661976860D+00 1.5022385894110D+00 2.2418994499973D-03 +127 1.2600000000000D+00 1.4766571667303D+00 1.4767282552515D+00 2.0273161996780D-03 +128 1.2700000000000D+00 1.4514043770344D+00 1.4514741442992D+00 1.8333673296267D-03 +129 1.2800000000000D+00 1.4264147434541D+00 1.4264832431465D+00 1.6580587097771D-03 +130 1.2900000000000D+00 1.4016946583712D+00 1.4017618928934D+00 1.4995899654985D-03 +131 1.3000000000000D+00 1.3772498624007D+00 1.3773158196074D+00 1.3563355445124D-03 +132 1.3100000000000D+00 1.3530854828450D+00 1.3531501638178D+00 1.2268276400173D-03 +133 1.3200000000000D+00 1.3292060783744D+00 1.3292695090470D+00 1.1097407930881D-03 +134 1.3300000000000D+00 1.3056157096553D+00 1.3056779093876D+00 1.0038780134617D-03 +135 1.3400000000000D+00 1.2823179327172D+00 1.2823789161312D+00 9.0815825411478D-04 +136 1.3500000000000D+00 1.2593158184948D+00 1.2593756034625D+00 8.2160511846653D-04 +137 1.3600000000000D+00 1.2366119886467D+00 1.2366705932308D+00 7.4333667690401D-04 +138 1.3700000000000D+00 1.2142086366164D+00 1.2142660788127D+00 6.7255627325697D-04 +139 1.3800000000000D+00 1.1921075500735D+00 1.1921638480827D+00 6.0854423794109D-04 +140 1.3900000000000D+00 1.1703101333743D+00 1.1703653055099D+00 5.5065040815262D-04 +141 1.4000000000000D+00 1.1488174287508D+00 1.1488714933970D+00 4.9828737713709D-04 +142 1.4100000000000D+00 1.1276301367022D+00 1.1276831122828D+00 4.5092440888020D-04 +143 1.4200000000000D+00 1.1067486355783D+00 1.1068005405263D+00 4.0808193869283D-04 +144 1.4300000000000D+00 1.0861730003650D+00 1.0862238530950D+00 3.6932661620594D-04 +145 1.4400000000000D+00 1.0659030206932D+00 1.0659528395757D+00 3.3426682914025D-04 +146 1.4500000000000D+00 1.0459382180930D+00 1.0459870214314D+00 3.0254866127511D-04 +147 1.4600000000000D+00 1.0262778625152D+00 1.0263256685238D+00 2.7385224879155D-04 +148 1.4700000000000D+00 1.0069209881396D+00 1.0069678149250D+00 2.4788848441913D-04 +149 1.4800000000000D+00 9.8786640849464D-01 9.8791227403772D-01 2.2439604805893D-04 +150 1.4900000000000D+00 9.6911273090717D-01 9.6915765304719D-01 2.0313872162228D-04 +151 1.5000000000000D+00 9.5065837030578D-01 9.5070236672603D-01 1.8390296647718D-04 +152 1.5100000000000D+00 9.3250156239764D-01 9.3254465061242D-01 1.6649573625839D-04 +153 1.5200000000000D+00 9.1464037624103D-01 9.1468257358406D-01 1.5074249944714D-04 +154 1.5300000000000D+00 8.9707272623306D-01 8.9711404984711D-01 1.3648545746766D-04 +155 1.5400000000000D+00 8.7979638353482D-01 8.7983685036247D-01 1.2358193053457D-04 +156 1.5500000000000D+00 8.6280898695196D-01 8.6284861372750D-01 1.1190290471516D-04 +157 1.5600000000000D+00 8.4610805329282D-01 8.4614685653510D-01 1.0133171507255D-04 +158 1.5700000000000D+00 8.2969098722136D-01 8.2972898322759D-01 9.1762859717894D-05 +159 1.5800000000000D+00 8.1355509062553D-01 8.1359229546595D-01 8.3100925871466D-05 +160 1.5900000000000D+00 7.9769757151853D-01 7.9773400103185D-01 7.5259621290885D-05 +161 1.6000000000000D+00 7.8211555249164D-01 7.8215122228124D-01 6.8160898341424D-05 +162 1.6100000000000D+00 7.6680607873620D-01 7.6684100416702D-01 6.1734162734126D-05 +163 1.6200000000000D+00 7.5176612565137D-01 7.5180032184740D-01 5.5915558941402D-05 +164 1.6300000000000D+00 7.3699260605554D-01 7.3702608789789D-01 5.0647323644320D-05 +165 1.6400000000000D+00 7.2248237701581D-01 7.2251515914137D-01 4.5877202619800D-05 +166 1.6500000000000D+00 7.0823224631373D-01 7.0826434311422D-01 4.1557922342727D-05 +167 1.6600000000000D+00 6.9423897855948D-01 6.9427040418106D-01 3.7646714012631D-05 +168 1.6700000000000D+00 6.8049930097292D-01 6.8053006931615D-01 3.4104881663943D-05 +169 1.6800000000000D+00 6.6700990884178D-01 6.6704003356195D-01 3.0897413516261D-05 +170 1.6900000000000D+00 6.5376747067517D-01 6.5379696518302D-01 2.7992628936760D-05 +171 1.7000000000000D+00 6.4076863306121D-01 6.4079751052392D-01 2.5361860975124D-05 +172 1.7100000000000D+00 6.2801002524652D-01 6.2803829858903D-01 2.2979167771573D-05 +173 1.7200000000000D+00 6.1548826344511D-01 6.1551594535165D-01 2.0821073129685D-05 +174 1.7300000000000D+00 6.0319995489361D-01 6.0322705780954D-01 1.8866330611623D-05 +175 1.7400000000000D+00 5.9114170165974D-01 5.9116823779349D-01 1.7095711436971D-05 +176 1.7500000000000D+00 5.7931010421960D-01 5.7933608554491D-01 1.5491811665412D-05 +177 1.7600000000000D+00 5.6770176481050D-01 5.6772720306878D-01 1.4038878692094D-05 +178 1.7700000000000D+00 5.5631329057329D-01 5.5633819727616D-01 1.2722653677452D-05 +179 1.7800000000000D+00 5.4514129649121D-01 5.4516568292311D-01 1.1530229524982D-05 +180 1.7900000000000D+00 5.3418240813690D-01 5.3420628535790D-01 1.0449922151220D-05 +181 1.8000000000000D+00 5.2343326423575D-01 5.2345664308443D-01 9.4711541496284D-06 +182 1.8100000000000D+00 5.1289051905439D-01 5.1291341015080D-01 8.5843496604592D-06 +183 1.8200000000000D+00 5.0255084462396D-01 5.0257325837269D-01 7.7808390009940D-06 +184 1.8300000000000D+00 4.9241093280394D-01 4.9243287939723D-01 7.0527728439806D-06 +185 1.8400000000000D+00 4.8246749719817D-01 4.8248898661908D-01 6.3930439748292D-06 +186 1.8500000000000D+00 4.7271727492508D-01 4.7273831695074D-01 5.7952172546792D-06 +187 1.8600000000000D+00 4.6315702825646D-01 4.6317763246130D-01 5.2534654064646D-06 +188 1.8700000000000D+00 4.5378354612316D-01 4.5380372188220D-01 4.7625118142787D-06 +189 1.8800000000000D+00 4.4459364550337D-01 4.4461340199558D-01 4.3175779211706D-06 +190 1.8900000000000D+00 4.3558417269134D-01 4.3560351890290D-01 3.9143363263262D-06 +191 1.9000000000000D+00 4.2675200445933D-01 4.2677094918701D-01 3.5488678657373D-06 +192 1.9100000000000D+00 4.1809404911410D-01 4.1811260096858D-01 3.2176230311755D-06 +193 1.9200000000000D+00 4.0960724745542D-01 4.0962541486463D-01 2.9173870062243D-06 +194 1.9300000000000D+00 4.0128857364259D-01 4.0130636485502D-01 2.6452478851955D-06 +195 1.9400000000000D+00 3.9313503597059D-01 3.9315245905864D-01 2.3985682112384D-06 +196 1.9500000000000D+00 3.8514367756659D-01 3.8516074042985D-01 2.1749587978396D-06 +197 1.9600000000000D+00 3.7731157700362D-01 3.7732828737204D-01 1.9722555043752D-06 +198 1.9700000000000D+00 3.6963584884435D-01 3.6965221428149D-01 1.7884977799212D-06 +199 1.9800000000000D+00 3.6211364411172D-01 3.6212967201806D-01 1.6219095544485D-06 +200 1.9900000000000D+00 3.5474215069515D-01 3.5475784831139D-01 1.4708817943521D-06 +201 2.0000000000000D+00 3.4751859369464D-01 3.4753396810483D-01 1.3339566922212D-06 +202 2.0100000000000D+00 3.4044023570459D-01 3.4045529383916D-01 1.2098135119775D-06 +203 2.0200000000000D+00 3.3350437704579D-01 3.3351912568463D-01 1.0972555221905D-06 +204 2.0300000000000D+00 3.2670835594193D-01 3.2672280171747D-01 9.9519844625585D-07 +205 2.0400000000000D+00 3.2004954865085D-01 3.2006369805105D-01 9.0265976654337D-07 +206 2.0500000000000D+00 3.1352536954804D-01 3.1353922891940D-01 8.1874917752341D-07 +207 2.0600000000000D+00 3.0713327116773D-01 3.0714684671818D-01 7.4265992961422D-07 +208 2.0700000000000D+00 3.0087074420556D-01 3.0088404200734D-01 6.7366088545000D-07 +209 2.0800000000000D+00 2.9473531748050D-01 2.9474834347304D-01 6.1108951566542D-07 +210 2.0900000000000D+00 2.8872455786568D-01 2.8873731785836D-01 5.5434534662038D-07 +211 2.1000000000000D+00 2.8283607018347D-01 2.8284856985839D-01 5.0288417870095D-07 +212 2.1100000000000D+00 2.7706749707130D-01 2.7707974198596D-01 4.5621279805649D-07 +213 2.1200000000000D+00 2.7141651882005D-01 2.7142851441005D-01 4.1388413867204D-07 +214 2.1300000000000D+00 2.6588085318334D-01 2.6589260476495D-01 3.7549302419645D-07 +215 2.1400000000000D+00 2.6045825516583D-01 2.6046976793857D-01 3.4067216372128D-07 +216 2.1500000000000D+00 2.5514651678593D-01 2.5515779583511D-01 3.0908863185952D-07 +217 2.1600000000000D+00 2.4994346681864D-01 2.4995451711790D-01 2.8044064877611D-07 +218 2.1700000000000D+00 2.4484697052034D-01 2.4485779693405D-01 2.5445462254435D-07 +219 2.1800000000000D+00 2.3985492933325D-01 2.3986553661881D-01 2.3088255754842D-07 +220 2.1900000000000D+00 2.3496528057588D-01 2.3497567338603D-01 2.0949961328568D-07 +221 2.2000000000000D+00 2.3017599711677D-01 2.3018618000191D-01 1.9010194702883D-07 +222 2.2100000000000D+00 2.2548508703441D-01 2.2549506444489D-01 1.7250476358001D-07 +223 2.2200000000000D+00 2.2089059326685D-01 2.2090036955520D-01 1.5654050030708D-07 +224 2.2300000000000D+00 2.1639059324739D-01 2.1640017267045D-01 1.4205724281834D-07 +225 2.2400000000000D+00 2.1198319853182D-01 2.1199258525286D-01 1.2891724770902D-07 +226 2.2500000000000D+00 2.0766655441634D-01 2.0767575250712D-01 1.1699560614136D-07 +227 2.2600000000000D+00 2.0343883954543D-01 2.0344785298824D-01 1.0617907162150D-07 +228 2.2700000000000D+00 1.9929826551527D-01 1.9930709820494D-01 9.6364942118778D-08 +229 2.2800000000000D+00 1.9524307646873D-01 1.9525173221454D-01 8.7460085327331D-08 +230 2.2900000000000D+00 1.9127154868496D-01 1.9128003121258D-01 7.9380051964118D-08 +231 2.3000000000000D+00 1.8738199016551D-01 1.8739030311884D-01 7.2048247909947D-08 +232 2.3100000000000D+00 1.8357274021453D-01 1.8358088715755D-01 6.5395215537145D-08 +233 2.3200000000000D+00 1.7984216901670D-01 1.7985015343524D-01 5.9357962822895D-08 +234 2.3300000000000D+00 1.7618867721271D-01 1.7619650251621D-01 5.3879351729224D-08 +235 2.3400000000000D+00 1.7261069547087D-01 1.7261836499408D-01 4.8907567703800D-08 +236 2.3500000000000D+00 1.6910668405910D-01 1.6911420106378D-01 4.4395611230964D-08 +237 2.3600000000000D+00 1.6567513241508D-01 1.6568250009159D-01 4.0300848462790D-08 +238 2.3700000000000D+00 1.6231455871474D-01 1.6232178018370D-01 3.6584615315195D-08 +239 2.3800000000000D+00 1.5902350944272D-01 1.5903058775655D-01 3.3211835669479D-08 +240 2.3900000000000D+00 1.5580055896168D-01 1.5580749710612D-01 3.0150690969804D-08 +241 2.4000000000000D+00 1.5264430908223D-01 1.5265110997785D-01 2.7372321835767D-08 +242 2.4100000000000D+00 1.4955338863528D-01 1.4956005513896D-01 2.4850544448021D-08 +243 2.4200000000000D+00 1.4652645304452D-01 1.4653298795086D-01 2.2561606057966D-08 +244 2.4300000000000D+00 1.4356218390102D-01 1.4356858994376D-01 2.0483960304236D-08 +245 2.4400000000000D+00 1.4065928854068D-01 1.4066556839405D-01 1.8598056595314D-08 +246 2.4500000000000D+00 1.3781649962291D-01 1.3782265590298D-01 1.6886159000292D-08 +247 2.4600000000000D+00 1.3503257471251D-01 1.3503860997850D-01 1.5332177166206D-08 +248 2.4700000000000D+00 1.3230629586485D-01 1.3231221262042D-01 1.3921509846794D-08 +249 2.4800000000000D+00 1.2963646921312D-01 1.2964226990759D-01 1.2640910578272D-08 +250 2.4900000000000D+00 1.2702192455960D-01 1.2702761158919D-01 1.1478360616958D-08 +251 2.5000000000000D+00 1.2446151497058D-01 1.2446709067962D-01 1.0422952573510D-08 +252 2.5100000000000D+00 1.2195411637411D-01 1.2195958305618D-01 9.4647906474722D-09 +253 2.5200000000000D+00 1.1949862716225D-01 1.1950398706134D-01 8.5948953473025D-09 +254 2.5300000000000D+00 1.1709396779737D-01 1.1709922310898D-01 7.8051168101487D-09 +255 2.5400000000000D+00 1.1473908042178D-01 1.1474423329402D-01 7.0880605809657D-09 +256 2.5500000000000D+00 1.1243292847224D-01 1.1243798100689D-01 6.4370163743615D-09 +257 2.5600000000000D+00 1.1017449629882D-01 1.1017945055238D-01 5.8458933668657D-09 +258 2.5700000000000D+00 1.0796278878749D-01 1.0796764677217D-01 5.3091648679824D-09 +259 2.5800000000000D+00 1.0579683098778D-01 1.0580159467253D-01 4.8218152613362D-09 +260 2.5900000000000D+00 1.0367566774512D-01 1.0368033905658D-01 4.3792915700878D-09 +261 2.6000000000000D+00 1.0159836333711D-01 1.0160294416055D-01 3.9774621064138D-09 +262 2.6100000000000D+00 9.9564001115023D-02 9.9568493295284D-02 3.6125771459804D-09 +263 2.6200000000000D+00 9.7571683150084D-02 9.7576088492484D-02 3.2812325604129D-09 +264 2.6300000000000D+00 9.5620529884102D-02 9.5624850155315D-02 2.9803388155233D-09 +265 2.6400000000000D+00 9.3709679785079D-02 9.3713916713997D-02 2.7070920021551D-09 +266 2.6500000000000D+00 9.1838289007930D-02 9.1842444286512D-02 2.4589464348254D-09 +267 2.6600000000000D+00 9.0005531059633D-02 9.0009606343728D-02 2.2335913192423D-09 +268 2.6700000000000D+00 8.8210596469255D-02 8.8214593379407D-02 2.0289295688623D-09 +269 2.6800000000000D+00 8.6452692463236D-02 8.6456612585473D-02 1.8430570859081D-09 +270 2.6900000000000D+00 8.4731042645209D-02 8.4734887531813D-02 1.6742451235093D-09 +271 2.7000000000000D+00 8.3044886680484D-02 8.3048657850740D-02 1.5209249254187D-09 +272 2.7100000000000D+00 8.1393479985931D-02 8.1397178926864D-02 1.3816719955148D-09 +273 2.7200000000000D+00 7.9776093424402D-02 7.9779721591493D-02 1.2551927706101D-09 +274 2.7300000000000D+00 7.8192013003675D-02 7.8195571821562D-02 1.1403134452955D-09 +275 2.7400000000000D+00 7.6640539580786D-02 7.6644030443950D-02 1.0359680896475D-09 +276 2.7500000000000D+00 7.5120988570846D-02 7.5124412844276D-02 9.4118870022946D-10 +277 2.7600000000000D+00 7.3632689660436D-02 7.3636048680289D-02 8.5509667254788D-10 +278 2.7700000000000D+00 7.2174986526021D-02 7.2178281600256D-02 7.7689427538421D-10 +279 2.7800000000000D+00 7.0747236556999D-02 7.0750468966003D-02 7.0585700448149D-10 +280 2.7900000000000D+00 6.9348810583267D-02 6.9351981580464D-02 6.4132705588819D-10 +281 2.8000000000000D+00 6.7979092607447D-02 6.7982203419891D-02 5.8270730672296D-10 +282 2.8100000000000D+00 6.6637479541847D-02 6.6640531370811D-02 5.2945540916492D-10 +283 2.8200000000000D+00 6.5323380949844D-02 6.5326374971381D-02 4.8107875651825D-10 +284 2.8300000000000D+00 6.4036218791621D-02 6.4039156157123D-02 4.3713030222265D-10 +285 2.8400000000000D+00 6.2775427174660D-02 6.2778309011401D-02 3.9720395636422D-10 +286 2.8500000000000D+00 6.1540452108470D-02 6.1543279520137D-02 3.6093084105205D-10 +287 2.8600000000000D+00 6.0330751263615D-02 6.0333525330823D-02 3.2797610438120D-10 +288 2.8700000000000D+00 5.9145793735172D-02 5.9148515515973D-02 2.9803565017901D-10 +289 2.8800000000000D+00 5.7985059810448D-02 5.7987730340826D-02 2.7083323161006D-10 +290 2.8900000000000D+00 5.6848040740841D-02 5.6850661035195D-02 2.4611795216851D-10 +291 2.9000000000000D+00 5.5734238517861D-02 5.5736809569475D-02 2.2366205902967D-10 +292 2.9100000000000D+00 5.4643165653347D-02 5.4645688434854D-02 2.0325863460381D-10 +293 2.9200000000000D+00 5.3574344963685D-02 5.3576820427519D-02 1.8471967912195D-10 +294 2.9300000000000D+00 5.2527309357988D-02 5.2529738436822D-02 1.6787455198086D-10 +295 2.9400000000000D+00 5.1501601630307D-02 5.1503985237485D-02 1.5256823408850D-10 +296 2.9500000000000D+00 5.0496774255701D-02 5.0499113285660D-02 1.3865988205772D-10 +297 2.9600000000000D+00 4.9512389190147D-02 4.9514684518825D-02 1.2602156768463D-10 +298 2.9700000000000D+00 4.8548017674235D-02 4.8550270159479D-02 1.1453714851030D-10 +299 2.9800000000000D+00 4.7603240040620D-02 4.7605450522571D-02 1.0410108870453D-10 +300 2.9900000000000D+00 4.6677645525127D-02 4.6679814826609D-02 9.4617483370602D-11 +301 3.0000000000000D+00 4.5770832081505D-02 4.5772961008400D-02 8.5999276787812D-11 +302 3.0100000000000D+00 4.4882406199734D-02 4.4884495541346D-02 7.8167373387295D-11 +303 3.0200000000000D+00 4.4011982727844D-02 4.4014033257259D-02 7.1049900134282D-11 +304 3.0300000000000D+00 4.3159184697208D-02 4.3161197171647D-02 6.4581554282793D-11 +305 3.0400000000000D+00 4.2323643151267D-02 4.2325618312421D-02 5.8703056547726D-11 +306 3.0500000000000D+00 4.1504996977540D-02 4.1506935551914D-02 5.3360528814953D-11 +307 3.0600000000000D+00 4.0702892742978D-02 4.0704795442208D-02 4.8505004269192D-11 +308 3.0700000000000D+00 3.9916984532591D-02 3.9918852053772D-02 4.4092017928846D-11 +309 3.0800000000000D+00 3.9146933791224D-02 3.9148766817217D-02 4.0081179245698D-11 +310 3.0900000000000D+00 3.8392409168466D-02 3.8394208368206D-02 3.6435779903850D-11 +311 3.1000000000000D+00 3.7653086366647D-02 3.7654852395443D-02 3.3122449102956D-11 +312 3.1100000000000D+00 3.6928647991987D-02 3.6930381491808D-02 3.0110902569368D-11 +313 3.1200000000000D+00 3.6218783408538D-02 3.6220485008304D-02 2.7373610423270D-11 +314 3.1300000000000D+00 3.5523188595166D-02 3.5524858911024D-02 2.4885551861332D-11 +315 3.1400000000000D+00 3.4841566005406D-02 3.4843205641004D-02 2.2623988069598D-11 +316 3.1500000000000D+00 3.4173624430212D-02 3.4175233976965D-02 2.0568277385422D-11 +317 3.1600000000000D+00 3.3519078863333D-02 3.3520658900682D-02 1.8699653015936D-11 +318 3.1700000000000D+00 3.2877650369511D-02 3.2879201465180D-02 1.7001055094578D-11 +319 3.1800000000000D+00 3.2249065955423D-02 3.2250588665666D-02 1.5456986693768D-11 +320 3.1900000000000D+00 3.1633058443197D-02 3.1634553313045D-02 1.4053372803779D-11 +321 3.2000000000000D+00 3.1029366346465D-02 3.1030833909957D-02 1.2777417093398D-11 +322 3.2100000000000D+00 3.0437733748992D-02 3.0439174529415D-02 1.1617484457848D-11 +323 3.2200000000000D+00 2.9857910185929D-02 2.9859324696042D-02 1.0563010477459D-11 +324 3.2300000000000D+00 2.9289650527337D-02 2.9291039269596D-02 9.6043949646953D-12 +325 3.2400000000000D+00 2.8732714864164D-02 2.8734078330934D-02 8.7329101781689D-12 +326 3.2500000000000D+00 2.8186868396566D-02 2.8188207070340D-02 7.9406186826696D-12 +327 3.2600000000000D+00 2.7651881324730D-02 2.7653195678334D-02 7.2203164421726D-12 +328 3.2700000000000D+00 2.7127528741689D-02 2.7128819238486D-02 6.5654536527413D-12 +329 3.2800000000000D+00 2.6613590528502D-02 2.6614857622589D-02 5.9700759368098D-12 +330 3.2900000000000D+00 2.6109851251565D-02 2.6111095387971D-02 5.4287670137261D-12 +331 3.3000000000000D+00 2.5616100062304D-02 2.5617321677177D-02 4.9366127975795D-12 +332 3.3100000000000D+00 2.5132130598596D-02 2.5133330119393D-02 4.4891435129168D-12 +333 3.3200000000000D+00 2.4657740888480D-02 2.4658918734144D-02 4.0822957317349D-12 +334 3.3300000000000D+00 2.4192733255791D-02 2.4193889836932D-02 3.7123728131804D-12 +335 3.3400000000000D+00 2.3736914228048D-02 2.3738049947118D-02 3.3760214205050D-12 +336 3.3500000000000D+00 2.3290094445864D-02 2.3291209697323D-02 3.0701905991798D-12 +337 3.3600000000000D+00 2.2852088574523D-02 2.2853183745010D-02 2.7921375637105D-12 +338 3.3700000000000D+00 2.2422715217327D-02 2.2423790685820D-02 2.5400930133041D-12 +339 3.3800000000000D+00 2.2001796831041D-02 2.2002852969017D-02 2.3105667598726D-12 +340 3.3900000000000D+00 2.1589159642697D-02 2.1590196814289D-02 2.1012072405281D-12 +341 3.4000000000000D+00 2.1184633568445D-02 2.1185652130594D-02 1.9101014639876D-12 +342 3.4100000000000D+00 2.0788052133999D-02 2.0789052436600D-02 1.7296542603878D-12 +343 3.4200000000000D+00 2.0399252397083D-02 2.0400234783137D-02 1.5681834556784D-12 +344 3.4300000000000D+00 2.0018074871056D-02 2.0019039676805D-02 1.4271590091584D-12 +345 3.4400000000000D+00 1.9644363450457D-02 1.9645311005531D-02 1.3061201216487D-12 +346 3.4500000000000D+00 1.9277965338023D-02 1.9278895965571D-02 1.2207768546398D-12 +347 3.4600000000000D+00 1.8918730973551D-02 1.8919644990377D-02 1.1380173071523D-12 +348 3.4700000000000D+00 1.8566513963852D-02 1.8567411680547D-02 1.0387494208035D-12 +349 3.4800000000000D+00 1.8221171014455D-02 1.8222052735520D-02 9.0874198549652D-13 +350 3.4900000000000D+00 1.7882561862676D-02 1.7883427886654D-02 7.1002632132821D-13 +351 3.5000000000000D+00 1.7550549212386D-02 1.7551399831978D-02 4.8029463870666D-13 +352 3.5100000000000D+00 1.7224998669817D-02 1.7225834172007D-02 2.5439536923656D-13 +353 3.5200000000000D+00 1.6905778680916D-02 1.6906599347084D-02 6.0557202897820D-14 +354 3.5300000000000D+00 1.6592760470001D-02 1.6593566576040D-02 -5.0557137172348D-14 +355 3.5400000000000D+00 1.6285817979926D-02 1.6286609796353D-02 -8.4455847874843D-14 +356 3.5500000000000D+00 1.5984827813325D-02 1.5985605605392D-02 -7.1078374659590D-14 +357 3.5600000000000D+00 1.5689669175131D-02 1.5690433202931D-02 -2.9816332919398D-14 +358 3.5700000000000D+00 1.5400223816387D-02 1.5400974334961D-02 6.8482048731089D-15 +359 3.5800000000000D+00 1.5116375979347D-02 1.5117113238785D-02 1.8084391498092D-14 +360 3.5900000000000D+00 1.4838012343757D-02 1.4838736589301D-02 1.8881535088037D-14 +361 3.6000000000000D+00 1.4565021974103D-02 1.4565733446242D-02 1.0960652267648D-14 +362 3.6100000000000D+00 1.4297296268170D-02 1.4297995202739D-02 -2.3367048845775D-16 +363 3.6200000000000D+00 1.4034728906646D-02 1.4035415534922D-02 -1.9319063211378D-15 +364 3.6300000000000D+00 1.3777215804085D-02 1.3777890352874D-02 -2.4828629860763D-15 +365 3.6400000000000D+00 1.3524655060457D-02 1.3525317752190D-02 -1.8402391751720D-15 +366 3.6500000000000D+00 1.3276946914076D-02 1.3277597966895D-02 -3.7655228939709D-16 +367 3.6600000000000D+00 1.3033993695405D-02 1.3034633323249D-02 0.0000000000000D+00 +368 3.6700000000000D+00 1.2795699782145D-02 1.2796328194836D-02 0.0000000000000D+00 +369 3.6800000000000D+00 1.2561971554938D-02 1.2562588958263D-02 0.0000000000000D+00 +370 3.6900000000000D+00 1.2332717354176D-02 1.2333323949971D-02 0.0000000000000D+00 +371 3.7000000000000D+00 1.2107847437751D-02 1.2108443423977D-02 0.0000000000000D+00 +372 3.7100000000000D+00 1.1887273939800D-02 1.1887859510622D-02 0.0000000000000D+00 +373 3.7200000000000D+00 1.1670910830352D-02 1.1671486176215D-02 0.0000000000000D+00 +374 3.7300000000000D+00 1.1458673875636D-02 1.1459239183342D-02 0.0000000000000D+00 +375 3.7400000000000D+00 1.1250480599461D-02 1.1251036052238D-02 0.0000000000000D+00 +376 3.7500000000000D+00 1.1046250245298D-02 1.1046796022875D-02 0.0000000000000D+00 +377 3.7600000000000D+00 1.0845903739555D-02 1.0846440018229D-02 0.0000000000000D+00 +378 3.7700000000000D+00 1.0649363655106D-02 1.0649890607814D-02 0.0000000000000D+00 +379 3.7800000000000D+00 1.0456554175951D-02 1.0457071972335D-02 0.0000000000000D+00 +380 3.7900000000000D+00 1.0267401062541D-02 1.0267909869012D-02 0.0000000000000D+00 +381 3.8000000000000D+00 1.0081831617993D-02 1.0082331597799D-02 0.0000000000000D+00 +382 3.8100000000000D+00 9.8997746549735D-03 9.9002659682614D-03 0.0000000000000D+00 +383 3.8200000000000D+00 9.7211604631623D-03 9.7216432670374D-03 0.0000000000000D+00 +384 3.8300000000000D+00 9.5459207775878D-03 9.5463952261766D-03 0.0000000000000D+00 +385 3.8400000000000D+00 9.3739887475370D-03 9.3744549920451D-03 0.0000000000000D+00 +386 3.8500000000000D+00 9.2052989064872D-03 9.2057570952576D-03 0.0000000000000D+00 +387 3.8600000000000D+00 9.0397871421826D-03 9.0402374207525D-03 0.0000000000000D+00 +388 3.8700000000000D+00 8.8773906676655D-03 8.8778331788216D-03 0.0000000000000D+00 +389 3.8800000000000D+00 8.7180479928638D-03 8.7184828766968D-03 0.0000000000000D+00 +390 3.8900000000000D+00 8.5616988968657D-03 8.5621262908236D-03 0.0000000000000D+00 +391 3.9000000000000D+00 8.4082844008604D-03 8.4087044398004D-03 0.0000000000000D+00 +392 3.9100000000000D+00 8.2577467413980D-03 8.2581595576379D-03 0.0000000000000D+00 +393 3.9200000000000D+00 8.1100293444608D-03 8.1104350678288D-03 0.0000000000000D+00 +394 3.9300000000000D+00 7.9650767999866D-03 7.9654755578704D-03 0.0000000000000D+00 +395 3.9400000000000D+00 7.8228348371812D-03 7.8232267545758D-03 0.0000000000000D+00 +396 3.9500000000000D+00 7.6832503000966D-03 7.6836354996515D-03 0.0000000000000D+00 +397 3.9600000000000D+00 7.5462711238043D-03 7.5466497258695D-03 0.0000000000000D+00 +398 3.9700000000000D+00 7.4118463111565D-03 7.4122184338276D-03 0.0000000000000D+00 +399 3.9800000000000D+00 7.2799259099479D-03 7.2802916691100D-03 0.0000000000000D+00 +400 3.9900000000000D+00 7.1504609909312D-03 7.1508205003025D-03 0.0000000000000D+00 +401 4.0000000000000D+00 7.0234036257753D-03 7.0237569969493D-03 0.0000000000000D+00 +402 4.0100000000000D+00 6.8987068658374D-03 6.8990542083243D-03 0.0000000000000D+00 +403 4.0200000000000D+00 6.7763247213150D-03 6.7766661425826D-03 0.0000000000000D+00 +404 4.0300000000000D+00 6.6562121408631D-03 6.6565477463764D-03 0.0000000000000D+00 +405 4.0400000000000D+00 6.5383249918300D-03 6.5386548850905D-03 0.0000000000000D+00 +406 4.0500000000000D+00 6.4226200405501D-03 6.4229443231337D-03 0.0000000000000D+00 +407 4.0600000000000D+00 6.3090549333378D-03 6.3093737049322D-03 0.0000000000000D+00 +408 4.0700000000000D+00 6.1975881777994D-03 6.1979015362412D-03 0.0000000000000D+00 +409 4.0800000000000D+00 6.0881791246459D-03 6.0884871659561D-03 0.0000000000000D+00 +410 4.0900000000000D+00 5.9807879499087D-03 5.9810907683283D-03 0.0000000000000D+00 +411 4.1000000000000D+00 5.8753756373352D-03 5.8756733253593D-03 0.0000000000000D+00 +412 4.1100000000000D+00 5.7719039613602D-03 5.7721966097720D-03 0.0000000000000D+00 +413 4.1200000000000D+00 5.6703354703561D-03 5.6706231682602D-03 0.0000000000000D+00 +414 4.1300000000000D+00 5.5706334703922D-03 5.5709163052464D-03 0.0000000000000D+00 +415 4.1400000000000D+00 5.4727620092451D-03 5.4730400668930D-03 0.0000000000000D+00 +416 4.1500000000000D+00 5.3766858606619D-03 5.3769592253635D-03 0.0000000000000D+00 +417 4.1600000000000D+00 5.2823705091018D-03 5.2826392635641D-03 0.0000000000000D+00 +418 4.1700000000000D+00 5.1897821347245D-03 5.1900463601316D-03 0.0000000000000D+00 +419 4.1800000000000D+00 5.0988875988715D-03 5.0991473749136D-03 0.0000000000000D+00 +420 4.1900000000000D+00 5.0096544297095D-03 5.0099098346120D-03 0.0000000000000D+00 +421 4.2000000000000D+00 4.9220508081456D-03 4.9223019186969D-03 0.0000000000000D+00 +422 4.2100000000000D+00 4.8360455541563D-03 4.8362924457356D-03 0.0000000000000D+00 +423 4.2200000000000D+00 4.7516081133344D-03 4.7518508599384D-03 0.0000000000000D+00 +424 4.2300000000000D+00 4.6687085438906D-03 4.6689472181604D-03 0.0000000000000D+00 +425 4.2400000000000D+00 4.5873175037865D-03 4.5875521770332D-03 0.0000000000000D+00 +426 4.2500000000000D+00 4.5074062381079D-03 4.5076369803383D-03 0.0000000000000D+00 +427 4.2600000000000D+00 4.4289465668183D-03 4.4291734467595D-03 0.0000000000000D+00 +428 4.2700000000000D+00 4.3519108727027D-03 4.3521339578268D-03 0.0000000000000D+00 +429 4.2800000000000D+00 4.2762720897095D-03 4.2764914462575D-03 0.0000000000000D+00 +430 4.2900000000000D+00 4.2020036914442D-03 4.2022193844494D-03 0.0000000000000D+00 +431 4.3000000000000D+00 4.1290796798299D-03 4.1292917731407D-03 0.0000000000000D+00 +432 4.3100000000000D+00 4.0574745741352D-03 4.0576831304382D-03 0.0000000000000D+00 +433 4.3200000000000D+00 3.9871634001750D-03 3.9873684810165D-03 0.0000000000000D+00 +434 4.3300000000000D+00 3.9181216798279D-03 3.9183233456357D-03 0.0000000000000D+00 +435 4.3400000000000D+00 3.8503254207789D-03 3.8505237308839D-03 0.0000000000000D+00 +436 4.3500000000000D+00 3.7837511063098D-03 3.7839461189661D-03 0.0000000000000D+00 +437 4.3600000000000D+00 3.7183756854730D-03 3.7185674578791D-03 0.0000000000000D+00 +438 4.3700000000000D+00 3.6541765634195D-03 3.6543651517376D-03 0.0000000000000D+00 +439 4.3800000000000D+00 3.5911315919464D-03 3.5913170513223D-03 0.0000000000000D+00 +440 4.3900000000000D+00 3.5292190603884D-03 3.5294014449709D-03 0.0000000000000D+00 +441 4.4000000000000D+00 3.4684176863985D-03 3.4685970493577D-03 0.0000000000000D+00 +442 4.4100000000000D+00 3.4087066071510D-03 3.4088830006972D-03 0.0000000000000D+00 +443 4.4200000000000D+00 3.3500653706805D-03 3.3502388460822D-03 0.0000000000000D+00 +444 4.4300000000000D+00 3.2924739273393D-03 3.2926445349408D-03 0.0000000000000D+00 +445 4.4400000000000D+00 3.2359126217269D-03 3.2360804109657D-03 0.0000000000000D+00 +446 4.4500000000000D+00 3.1803621843567D-03 3.1805272037808D-03 0.0000000000000D+00 +447 4.4600000000000D+00 3.1258037237749D-03 3.1259660210594D-03 0.0000000000000D+00 +448 4.4700000000000D+00 3.0722187187906D-03 3.0723783407538D-03 0.0000000000000D+00 +449 4.4800000000000D+00 3.0195890108253D-03 3.0197460034450D-03 0.0000000000000D+00 +450 4.4900000000000D+00 2.9678967966000D-03 2.9680512050293D-03 0.0000000000000D+00 +451 4.5000000000000D+00 2.9171246207776D-03 2.9172764893603D-03 0.0000000000000D+00 +452 4.5100000000000D+00 2.8672553688041D-03 2.8674047410898D-03 0.0000000000000D+00 +453 4.5200000000000D+00 2.8182722599560D-03 2.8184191787149D-03 0.0000000000000D+00 +454 4.5300000000000D+00 2.7701588404941D-03 2.7703033477317D-03 0.0000000000000D+00 +455 4.5400000000000D+00 2.7228989770041D-03 2.7230411139754D-03 0.0000000000000D+00 +456 4.5500000000000D+00 2.6764768499441D-03 2.6766166571674D-03 0.0000000000000D+00 +457 4.5600000000000D+00 2.6308769471138D-03 2.6310144643847D-03 0.0000000000000D+00 +458 4.5700000000000D+00 2.5860840574366D-03 2.5862193238415D-03 0.0000000000000D+00 +459 4.5800000000000D+00 2.5420832648303D-03 2.5422163187592D-03 0.0000000000000D+00 +460 4.5900000000000D+00 2.4988599421529D-03 2.4989908213128D-03 0.0000000000000D+00 +461 4.6000000000000D+00 2.4563997455033D-03 2.4565284869305D-03 0.0000000000000D+00 +462 4.6100000000000D+00 2.4146886083219D-03 2.4148152483948D-03 0.0000000000000D+00 +463 4.6200000000000D+00 2.3737127357911D-03 2.3738373102420D-03 0.0000000000000D+00 +464 4.6300000000000D+00 2.3334585993367D-03 2.3335811432643D-03 0.0000000000000D+00 +465 4.6400000000000D+00 2.2939129312160D-03 2.2940334790964D-03 0.0000000000000D+00 +466 4.6500000000000D+00 2.2550627192789D-03 2.2551813049780D-03 0.0000000000000D+00 +467 4.6600000000000D+00 2.2168952018558D-03 2.2170118586397D-03 0.0000000000000D+00 +468 4.6700000000000D+00 2.1793978625983D-03 2.1795126231448D-03 0.0000000000000D+00 +469 4.6800000000000D+00 2.1425584255687D-03 2.1426713219784D-03 0.0000000000000D+00 +470 4.6900000000000D+00 2.1063648503958D-03 2.1064759142023D-03 0.0000000000000D+00 +471 4.7000000000000D+00 2.0708053274864D-03 2.0709145896670D-03 0.0000000000000D+00 +472 4.7100000000000D+00 2.0358682735262D-03 2.0359757645120D-03 0.0000000000000D+00 +473 4.7200000000000D+00 2.0015423268189D-03 2.0016480765049D-03 0.0000000000000D+00 +474 4.7300000000000D+00 1.9678163428462D-03 1.9679203806011D-03 0.0000000000000D+00 +475 4.7400000000000D+00 1.9346793899232D-03 1.9347817445993D-03 0.0000000000000D+00 +476 4.7500000000000D+00 1.9021207449243D-03 1.9022214448666D-03 0.0000000000000D+00 +477 4.7600000000000D+00 1.8701298890965D-03 1.8702289621523D-03 0.0000000000000D+00 +478 4.7700000000000D+00 1.8386965040884D-03 1.8387939776164D-03 0.0000000000000D+00 +479 4.7800000000000D+00 1.8078104678100D-03 1.8079063686890D-03 0.0000000000000D+00 +480 4.7900000000000D+00 1.7774618505589D-03 1.7775562051967D-03 0.0000000000000D+00 +481 4.8000000000000D+00 1.7476409111845D-03 1.7477337455267D-03 0.0000000000000D+00 +482 4.8100000000000D+00 1.7183380933058D-03 1.7184294328440D-03 0.0000000000000D+00 +483 4.8200000000000D+00 1.6895440216913D-03 1.6896338914714D-03 0.0000000000000D+00 +484 4.8300000000000D+00 1.6612494986646D-03 1.6613379232950D-03 0.0000000000000D+00 +485 4.8400000000000D+00 1.6334455005130D-03 1.6335325041727D-03 0.0000000000000D+00 +486 4.8500000000000D+00 1.6061231740623D-03 1.6062087805085D-03 0.0000000000000D+00 +487 4.8600000000000D+00 1.5792738332956D-03 1.5793580658714D-03 0.0000000000000D+00 +488 4.8700000000000D+00 1.5528889560068D-03 1.5529718376489D-03 0.0000000000000D+00 +489 4.8800000000000D+00 1.5269601806627D-03 1.5270417339084D-03 0.0000000000000D+00 +490 4.8900000000000D+00 1.5014793031580D-03 1.5015595501529D-03 0.0000000000000D+00 +491 4.9000000000000D+00 1.4764382736945D-03 1.4765172361995D-03 0.0000000000000D+00 +492 4.9100000000000D+00 1.4518291937507D-03 1.4519068931487D-03 0.0000000000000D+00 +493 4.9200000000000D+00 1.4276443131002D-03 1.4277207704031D-03 0.0000000000000D+00 +494 4.9300000000000D+00 1.4038760268495D-03 1.4039512627051D-03 0.0000000000000D+00 +495 4.9400000000000D+00 1.3805168727101D-03 1.3805909074084D-03 0.0000000000000D+00 +496 4.9500000000000D+00 1.3575595280802D-03 1.3576323815600D-03 0.0000000000000D+00 +497 4.9600000000000D+00 1.3349968073237D-03 1.3350684991788D-03 0.0000000000000D+00 +498 4.9700000000000D+00 1.3128216590891D-03 1.3128922085748D-03 0.0000000000000D+00 +499 4.9800000000000D+00 1.2910271636786D-03 1.2910965897176D-03 0.0000000000000D+00 +500 4.9900000000000D+00 1.2696065304265D-03 1.2696748516148D-03 0.0000000000000D+00 +501 5.0000000000000D+00 1.2485530953175D-03 1.2486203299306D-03 0.0000000000000D+00 +502 5.0100000000000D+00 1.2278603183748D-03 1.2279264843731D-03 0.0000000000000D+00 +503 5.0200000000000D+00 1.2075217812779D-03 1.2075868963126D-03 0.0000000000000D+00 +504 5.0300000000000D+00 1.1875311849911D-03 1.1875952664097D-03 0.0000000000000D+00 +505 5.0400000000000D+00 1.1678823474397D-03 1.1679454122913D-03 0.0000000000000D+00 +506 5.0500000000000D+00 1.1485692011911D-03 1.1486312662321D-03 0.0000000000000D+00 +507 5.0600000000000D+00 1.1295857913638D-03 1.1296468730627D-03 0.0000000000000D+00 +508 5.0700000000000D+00 1.1109262733049D-03 1.1109863878478D-03 0.0000000000000D+00 +509 5.0800000000000D+00 1.0925849104921D-03 1.0926440737874D-03 0.0000000000000D+00 +510 5.0900000000000D+00 1.0745560724369D-03 1.0746143001207D-03 0.0000000000000D+00 +511 5.1000000000000D+00 1.0568342326314D-03 1.0568915400721D-03 0.0000000000000D+00 +512 5.1100000000000D+00 1.0394139664976D-03 1.0394703688006D-03 0.0000000000000D+00 +513 5.1200000000000D+00 1.0222899495394D-03 1.0223454615521D-03 0.0000000000000D+00 +514 5.1300000000000D+00 1.0054569552938D-03 1.0055115916098D-03 0.0000000000000D+00 +515 5.1400000000000D+00 9.8890985346963D-04 9.8896362843365D-04 0.0000000000000D+00 +516 5.1500000000000D+00 9.7264360809617D-04 9.7269653580812D-04 0.0000000000000D+00 +517 5.1600000000000D+00 9.5665327570658D-04 9.5670537002613D-04 0.0000000000000D+00 +518 5.1700000000000D+00 9.4093400352642D-04 9.4098527807719D-04 0.0000000000000D+00 +519 5.1800000000000D+00 9.2548102782734D-04 9.2553149600111D-04 0.0000000000000D+00 +520 5.1900000000000D+00 9.1028967213686D-04 9.1033934709768D-04 0.0000000000000D+00 +521 5.2000000000000D+00 8.9535534557408D-04 8.9540424026228D-04 0.0000000000000D+00 +522 5.2100000000000D+00 8.8067354121580D-04 8.8072166835201D-04 0.0000000000000D+00 +523 5.2200000000000D+00 8.6623983448918D-04 8.6628720657815D-04 0.0000000000000D+00 +524 5.2300000000000D+00 8.5204988157310D-04 8.5209651090757D-04 0.0000000000000D+00 +525 5.2400000000000D+00 8.3809941791703D-04 8.3814531658143D-04 0.0000000000000D+00 +526 5.2500000000000D+00 8.2438425669686D-04 8.2442943657104D-04 0.0000000000000D+00 +527 5.2600000000000D+00 8.1090028731193D-04 8.1094476007470D-04 0.0000000000000D+00 +528 5.2700000000000D+00 7.9764347394563D-04 7.9768725107839D-04 0.0000000000000D+00 +529 5.2800000000000D+00 7.8460985414189D-04 7.8465294693201D-04 0.0000000000000D+00 +530 5.2900000000000D+00 7.7179553739705D-04 7.7183795694138D-04 0.0000000000000D+00 +531 5.3000000000000D+00 7.5919670381212D-04 7.5923846102028D-04 0.0000000000000D+00 +532 5.3100000000000D+00 7.4680960278262D-04 7.4685070838030D-04 0.0000000000000D+00 +533 5.3200000000000D+00 7.3463055162675D-04 7.3467101615898D-04 0.0000000000000D+00 +534 5.3300000000000D+00 7.2265593431994D-04 7.2269576815419D-04 0.0000000000000D+00 +535 5.3400000000000D+00 7.1088220023298D-04 7.1092141356233D-04 0.0000000000000D+00 +536 5.3500000000000D+00 6.9930586289467D-04 6.9934446574085D-04 0.0000000000000D+00 +537 5.3600000000000D+00 6.8792349875080D-04 6.8796150096718D-04 0.0000000000000D+00 +538 5.3700000000000D+00 6.7673174607493D-04 6.7676915734949D-04 0.0000000000000D+00 +539 5.3800000000000D+00 6.6572730370355D-04 6.6576413356175D-04 0.0000000000000D+00 +540 5.3900000000000D+00 6.5490692992552D-04 6.5494318773314D-04 0.0000000000000D+00 +541 5.4000000000000D+00 6.4426744136293D-04 6.4430313632888D-04 0.0000000000000D+00 +542 5.4100000000000D+00 6.3380571187419D-04 6.3384085305321D-04 0.0000000000000D+00 +543 5.4200000000000D+00 6.2351867146005D-04 6.2355326775544D-04 0.0000000000000D+00 +544 5.4300000000000D+00 6.1340330525718D-04 6.1343736542339D-04 0.0000000000000D+00 +545 5.4400000000000D+00 6.0345665248474D-04 6.0349018513002D-04 0.0000000000000D+00 +546 5.4500000000000D+00 5.9367580541014D-04 5.9370881899903D-04 0.0000000000000D+00 +547 5.4600000000000D+00 5.8405790836797D-04 5.8409041122382D-04 0.0000000000000D+00 +548 5.4700000000000D+00 5.7460015678626D-04 5.7463215709369D-04 0.0000000000000D+00 +549 5.4800000000000D+00 5.6529979622880D-04 5.6533130203609D-04 0.0000000000000D+00 +550 5.4900000000000D+00 5.5615412144373D-04 5.5618514066520D-04 0.0000000000000D+00 +551 5.5000000000000D+00 5.4716047551808D-04 5.4719101593640D-04 0.0000000000000D+00 +552 5.5100000000000D+00 5.3831624889936D-04 5.3834631816784D-04 0.0000000000000D+00 +553 5.5200000000000D+00 5.2961887853864D-04 5.2964848418348D-04 0.0000000000000D+00 +554 5.5300000000000D+00 5.2106584702562D-04 5.2109499644806D-04 0.0000000000000D+00 +555 5.5400000000000D+00 5.1265468174052D-04 5.1268338221906D-04 0.0000000000000D+00 +556 5.5500000000000D+00 5.0438295400809D-04 5.0441121270056D-04 0.0000000000000D+00 +557 5.5600000000000D+00 4.9624827831597D-04 4.9627610226165D-04 0.0000000000000D+00 +558 5.5700000000000D+00 4.8824831150992D-04 4.8827570763157D-04 0.0000000000000D+00 +559 5.5800000000000D+00 4.8038075198320D-04 4.8040772708905D-04 0.0000000000000D+00 +560 5.5900000000000D+00 4.7264333892034D-04 4.7266989970610D-04 0.0000000000000D+00 +561 5.6000000000000D+00 4.6503385154323D-04 4.6506000459398D-04 0.0000000000000D+00 +562 5.6100000000000D+00 4.5755010837181D-04 4.5757586016394D-04 0.0000000000000D+00 +563 5.6200000000000D+00 4.5018996647692D-04 4.5021532337998D-04 0.0000000000000D+00 +564 5.6300000000000D+00 4.4295132083712D-04 4.4297628911565D-04 0.0000000000000D+00 +565 5.6400000000000D+00 4.3583210358068D-04 4.3585668939604D-04 0.0000000000000D+00 +566 5.6500000000000D+00 4.2883028331372D-04 4.2885449272582D-04 0.0000000000000D+00 +567 5.6600000000000D+00 4.2194386445247D-04 4.2196770342154D-04 0.0000000000000D+00 +568 5.6700000000000D+00 4.1517088656551D-04 4.1519436095378D-04 0.0000000000000D+00 +569 5.6800000000000D+00 4.0850942372517D-04 4.0853253929856D-04 0.0000000000000D+00 +570 5.6900000000000D+00 4.0195758386576D-04 4.0198034629553D-04 0.0000000000000D+00 +571 5.7000000000000D+00 3.9551350821648D-04 3.9553592308085D-04 0.0000000000000D+00 +572 5.7100000000000D+00 3.8917537063177D-04 3.8919744341750D-04 0.0000000000000D+00 +573 5.7200000000000D+00 3.8294137701425D-04 3.8296311311819D-04 0.0000000000000D+00 +574 5.7300000000000D+00 3.7680976472901D-04 3.7683116945966D-04 0.0000000000000D+00 +575 5.7400000000000D+00 3.7077880202918D-04 3.7079988060816D-04 0.0000000000000D+00 +576 5.7500000000000D+00 3.6484678748506D-04 3.6486754504861D-04 0.0000000000000D+00 +577 5.7600000000000D+00 3.5901204944021D-04 3.5903249104066D-04 0.0000000000000D+00 +578 5.7700000000000D+00 3.5327294549333D-04 3.5329307610049D-04 0.0000000000000D+00 +579 5.7800000000000D+00 3.4762786192621D-04 3.4764768642880D-04 0.0000000000000D+00 +580 5.7900000000000D+00 3.4207521319681D-04 3.4209473640381D-04 0.0000000000000D+00 +581 5.8000000000000D+00 3.3661344142733D-04 3.3663266806935D-04 0.0000000000000D+00 +582 5.8100000000000D+00 3.3124101590213D-04 3.3125995063275D-04 0.0000000000000D+00 +583 5.8200000000000D+00 3.2595643256609D-04 3.2597507996313D-04 0.0000000000000D+00 +584 5.8300000000000D+00 3.2075821355855D-04 3.2077657812539D-04 0.0000000000000D+00 +585 5.8400000000000D+00 3.1564490674802D-04 3.1566299291484D-04 0.0000000000000D+00 +586 5.8500000000000D+00 3.1061508523849D-04 3.1063289736350D-04 0.0000000000000D+00 +587 5.8600000000000D+00 3.0566734692478D-04 3.0568488929545D-04 0.0000000000000D+00 +588 5.8700000000000D+00 3.0080031404478D-04 3.0081759087902D-04 0.0000000000000D+00 +589 5.8800000000000D+00 2.9601263274018D-04 2.9602964818754D-04 0.0000000000000D+00 +590 5.8900000000000D+00 2.9130297261663D-04 2.9131973075941D-04 0.0000000000000D+00 +591 5.9000000000000D+00 2.8667002633853D-04 2.8668653119296D-04 0.0000000000000D+00 +592 5.9100000000000D+00 2.8211250921975D-04 2.8212876473707D-04 0.0000000000000D+00 +593 5.9200000000000D+00 2.7762915879159D-04 2.7764516885915D-04 0.0000000000000D+00 +594 5.9300000000000D+00 2.7321873441381D-04 2.7323450285614D-04 0.0000000000000D+00 +595 5.9400000000000D+00 2.6888001688257D-04 2.6889554746246D-04 0.0000000000000D+00 +596 5.9500000000000D+00 2.6461180804586D-04 2.6462710446536D-04 0.0000000000000D+00 +597 5.9600000000000D+00 2.6041293041888D-04 2.6042799632034D-04 0.0000000000000D+00 +598 5.9700000000000D+00 2.5628222682546D-04 2.5629706579252D-04 0.0000000000000D+00 +599 5.9800000000000D+00 2.5221856004692D-04 2.5223317560552D-04 0.0000000000000D+00 +600 5.9900000000000D+00 2.4822081243762D-04 2.4823520805693D-04 0.0000000000000D+00 + +# +#ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) +#scalar-relativistic version 3.2.3 08/16/2016 +# +#While it is not required under the terms of the GNU GPL, it is +#suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) +#in any publication utilizing these pseudopotentials. +# +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile +C 6.00 1 2 4 psp8 +# +# n l f +1 0 2.00 +2 0 2.00 +2 1 2.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax +1 +# +# l, rc, ep, ncon, nbas, qcut +0 1.20000 -0.50533 4 7 9.00000 +1 1.25000 -0.19424 4 8 9.40000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 +4 5 1.20000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl +0 2 2.00000 +1 2 1.50000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact +3 4.00000 1.55000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh +-12.00 12.00 0.02 +# +# OUTPUT GRID +# rlmax, drl +6.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf +0 +# nvcnf +# n l f + diff --git a/abipy/data/pseudos/Eu.xml b/abipy/data/pseudos/Eu.xml new file mode 100644 index 000000000..4f69c11cf --- /dev/null +++ b/abipy/data/pseudos/Eu.xml @@ -0,0 +1,15690 @@ + + + + + + + + + + + + + + + + + + + + + + 0.0000000000000000E+00 1.2463382772929941E-06 2.5037449544172510E-06 + 3.7723183268973607E-06 5.0521575631944822E-06 6.3433627124585205E-06 + 7.6460347123494170E-06 8.9602753969276498E-06 1.0286187504615014E-05 + 1.1623874686226030E-05 1.2973441513070578E-05 1.4334993485128649E-05 + 1.5708637039297540E-05 1.7094479557712486E-05 1.8492629376140924E-05 + 1.9903195792451590E-05 2.1326289075158578E-05 2.2762020472041417E-05 + 2.4210502218841713E-05 2.5671847548036858E-05 2.7146170697691971E-05 + 2.8633586920390085E-05 3.0134212492241803E-05 3.1648164721975175E-05 + 3.3175561960105864E-05 3.4716523608189119E-05 3.6271170128153758E-05 + 3.7839623051719058E-05 3.9422004989895212E-05 4.1018439642568389E-05 + 4.2629051808170561E-05 4.4253967393435579E-05 4.5893313423241580E-05 + 4.7547218050540932E-05 4.9215810566378411E-05 5.0899221409998315E-05 + 5.2597582179041301E-05 5.4311025639831786E-05 5.6039685737756648E-05 + 5.7783697607736326E-05 5.9543197584788566E-05 6.1318323214686377E-05 + 6.3109213264710235E-05 6.4916007734496040E-05 6.6738847866979422E-05 + 6.8577876159436985E-05 7.0433236374625922E-05 7.2305073552022335E-05 + 7.4193534019159540E-05 7.6098765403066776E-05 7.8020916641809835E-05 + 7.9960137996133983E-05 8.1916581061210398E-05 8.3890398778486616E-05 + 8.5881745447642850E-05 8.7890776738653689E-05 8.9917649703957571E-05 + 9.1962522790733960E-05 9.4025555853289797E-05 9.6106910165555680E-05 + 9.8206748433693236E-05 1.0032523480881439E-04 1.0246253489981354E-04 + 1.0461881578631390E-04 1.0679424603172832E-04 1.0898899569643681E-04 + 1.1120323635108048E-04 1.1343714108997373E-04 1.1569088454463578E-04 + 1.1796464289744208E-04 1.2025859389539701E-04 1.2257291686402892E-04 + 1.2490779272140878E-04 1.2726340399229287E-04 1.2963993482239148E-04 + 1.3203757099276411E-04 1.3445649993434268E-04 1.3689691074258338E-04 + 1.3935899419224924E-04 1.4184294275232311E-04 1.4434895060105407E-04 + 1.4687721364113672E-04 1.4942792951502532E-04 1.5200129762038477E-04 + 1.5459751912567745E-04 1.5721679698588978E-04 1.5985933595839724E-04 + 1.6252534261897169E-04 1.6521502537792938E-04 1.6792859449642352E-04 + 1.7066626210288064E-04 1.7342824220958379E-04 1.7621475072940234E-04 + 1.7902600549267060E-04 1.8186222626421629E-04 1.8472363476054030E-04 + 1.8761045466714906E-04 1.9052291165604061E-04 1.9346123340334621E-04 + 1.9642564960712855E-04 1.9941639200533775E-04 2.0243369439392741E-04 + 2.0547779264513090E-04 2.0854892472590037E-04 2.1164733071650949E-04 + 2.1477325282932109E-04 2.1792693542772176E-04 2.2110862504522467E-04 + 2.2431857040474171E-04 2.2755702243802694E-04 2.3082423430529280E-04 + 2.3412046141500065E-04 2.3744596144382652E-04 2.4080099435680463E-04 + 2.4418582242764997E-04 2.4760071025926075E-04 2.5104592480440318E-04 + 2.5452173538658063E-04 2.5802841372108678E-04 2.6156623393624675E-04 + 2.6513547259484705E-04 2.6873640871575460E-04 2.7236932379572884E-04 + 2.7603450183142779E-04 2.7973222934160797E-04 2.8346279538952345E-04 + 2.8722649160552215E-04 2.9102361220984370E-04 2.9485445403562013E-04 + 2.9871931655207933E-04 3.0261850188795627E-04 3.0655231485511125E-04 + 3.1052106297235760E-04 3.1452505648950162E-04 3.1856460841159652E-04 + 3.2264003452340959E-04 3.2675165341410967E-04 3.3089978650217101E-04 + 3.3508475806050026E-04 3.3930689524178602E-04 3.4356652810407291E-04 + 3.4786398963656352E-04 3.5219961578564966E-04 3.5657374548117343E-04 + 3.6098672066292353E-04 3.6543888630736500E-04 3.6993059045460728E-04 + 3.7446218423561211E-04 3.7903402189964197E-04 3.8364646084195305E-04 + 3.8829986163173454E-04 3.9299458804029438E-04 3.9773100706949729E-04 + 4.0250948898045466E-04 4.0733040732246793E-04 4.1219413896223154E-04 + 4.1710106411329265E-04 4.2205156636577432E-04 4.2704603271636189E-04 + 4.3208485359855567E-04 4.3716842291319187E-04 4.4229713805923654E-04 + 4.4747139996484977E-04 4.5269161311872860E-04 4.5795818560172725E-04 + 4.6327152911875734E-04 4.6863205903097317E-04 4.7404019438824092E-04 + 4.7949635796189747E-04 4.8500097627780071E-04 4.9055447964967049E-04 + 4.9615730221272913E-04 5.0180988195763939E-04 5.0751266076474186E-04 + 5.1326608443860039E-04 5.1907060274285015E-04 5.2492666943535838E-04 + 5.3083474230369550E-04 5.3679528320092209E-04 5.4280875808169289E-04 + 5.4887563703868319E-04 5.5499639433933612E-04 5.6117150846293816E-04 + 5.6740146213802396E-04 5.7368674238011171E-04 5.8002784052977609E-04 + 5.8642525229105644E-04 5.9287947777020864E-04 5.9939102151479972E-04 + 6.0596039255314950E-04 6.1258810443412352E-04 6.1927467526727911E-04 + 6.2602062776336649E-04 6.3282648927519194E-04 6.3969279183884230E-04 + 6.4662007221527530E-04 6.5360887193228123E-04 6.6065973732681426E-04 + 6.6777321958770282E-04 6.7494987479873713E-04 6.8219026398213991E-04 + 6.8949495314242352E-04 6.9686451331063667E-04 7.0429952058900303E-04 + 7.1180055619595784E-04 7.1936820651158264E-04 7.2700306312344532E-04 + 7.3470572287284632E-04 7.4247678790147513E-04 7.5031686569848176E-04 + 7.5822656914796701E-04 7.6620651657689244E-04 7.7425733180341719E-04 + 7.8237964418566470E-04 7.9057408867092048E-04 7.9884130584526925E-04 + 8.0718194198367023E-04 8.1559664910047923E-04 8.2408608500041960E-04 + 8.3265091333000309E-04 8.4129180362941028E-04 8.5000943138483127E-04 + 8.5880447808126914E-04 8.6767763125581549E-04 8.7662958455139543E-04 + 8.8566103777099395E-04 8.9477269693236051E-04 9.0396527432320072E-04 + 9.1323948855685951E-04 9.2259606462849507E-04 9.3203573397175610E-04 + 9.4155923451595973E-04 9.5116731074377679E-04 9.6086071374943338E-04 + 9.7064020129742213E-04 9.8050653788174253E-04 9.9046049478566196E-04 + 1.0005028501420099E-03 1.0106343889940085E-03 1.0208559033566390E-03 + 1.0311681922785590E-03 1.0415720619045643E-03 1.0520683255386097E-03 + 1.0626578037073861E-03 1.0733413242244656E-03 1.0841197222550127E-03 + 1.0949938403810712E-03 1.1059645286674341E-03 1.1170326447280932E-03 + 1.1281990537932846E-03 1.1394646287771232E-03 1.1508302503458433E-03 + 1.1622968069866424E-03 1.1738651950771368E-03 1.1855363189554357E-03 + 1.1973110909908355E-03 1.2091904316551411E-03 1.2211752695946247E-03 + 1.2332665417026192E-03 1.2454651931927583E-03 1.2577721776728696E-03 + 1.2701884572195166E-03 1.2827150024532108E-03 1.2953527926142872E-03 + 1.3081028156394538E-03 1.3209660682390232E-03 1.3339435559748289E-03 + 1.3470362933388309E-03 1.3602453038324247E-03 1.3735716200464492E-03 + 1.3870162837419085E-03 1.4005803459314124E-03 1.4142648669613329E-03 + 1.4280709165946977E-03 1.4419995740948160E-03 1.4560519283096486E-03 + 1.4702290777569257E-03 1.4845321307100244E-03 1.4989622052846018E-03 + 1.5135204295260037E-03 1.5282079414974488E-03 1.5430258893689922E-03 + 1.5579754315072844E-03 1.5730577365661220E-03 1.5882739835778065E-03 + 1.6036253620453121E-03 1.6191130720352735E-03 1.6347383242718012E-03 + 1.6505023402311231E-03 1.6664063522370746E-03 1.6824516035574321E-03 + 1.6986393485011039E-03 1.7149708525161819E-03 1.7314473922888703E-03 + 1.7480702558432812E-03 1.7648407426421302E-03 1.7817601636883147E-03 + 1.7988298416274015E-03 1.8160511108510247E-03 1.8334253176011941E-03 + 1.8509538200755381E-03 1.8686379885334788E-03 1.8864792054033494E-03 + 1.9044788653904605E-03 1.9226383755861342E-03 1.9409591555776954E-03 + 1.9594426375594476E-03 1.9780902664446329E-03 1.9969034999783837E-03 + 2.0158838088516835E-03 2.0350326768163295E-03 2.0543516008009262E-03 + 2.0738420910279042E-03 2.0935056711315790E-03 2.1133438782772579E-03 + 2.1333582632814085E-03 2.1535503907328855E-03 2.1739218391152431E-03 + 2.1944742009301303E-03 2.2152090828217795E-03 2.2361281057026068E-03 + 2.2572329048799198E-03 2.2785251301837583E-03 2.3000064460958636E-03 + 2.3216785318797995E-03 2.3435430817122229E-03 2.3656018048153274E-03 + 2.3878564255904529E-03 2.4103086837528901E-03 2.4329603344678831E-03 + 2.4558131484878295E-03 2.4788689122907134E-03 2.5021294282197531E-03 + 2.5255965146242999E-03 2.5492720060019854E-03 2.5731577531421250E-03 + 2.5972556232704085E-03 2.6215675001948564E-03 2.6460952844530924E-03 + 2.6708408934609097E-03 2.6958062616621631E-03 2.7209933406799887E-03 + 2.7464040994693755E-03 2.7720405244710741E-03 2.7979046197668923E-03 + 2.8239984072363543E-03 2.8503239267147614E-03 2.8768832361526545E-03 + 2.9036784117766837E-03 2.9307115482519190E-03 2.9579847588455960E-03 + 2.9855001755923149E-03 3.0132599494607105E-03 3.0412662505216034E-03 + 3.0695212681176327E-03 3.0980272110344110E-03 3.1267863076731911E-03 + 3.1558008062250648E-03 3.1850729748467161E-03 3.2146051018377246E-03 + 3.2443994958194526E-03 3.2744584859155162E-03 3.3047844219338610E-03 + 3.3353796745504540E-03 3.3662466354946094E-03 3.3973877177359518E-03 + 3.4288053556730514E-03 3.4605020053237257E-03 3.4924801445170343E-03 + 3.5247422730869844E-03 3.5572909130679418E-03 3.5901286088917922E-03 + 3.6232579275868463E-03 3.6566814589785133E-03 3.6904018158917529E-03 + 3.7244216343553359E-03 3.7587435738079007E-03 3.7933703173058568E-03 + 3.8283045717331268E-03 3.8635490680127491E-03 3.8991065613203724E-03 + 3.9349798312996237E-03 3.9711716822794100E-03 4.0076849434931396E-03 + 4.0445224692998924E-03 4.0816871394075546E-03 4.1191818590979390E-03 + 4.1570095594538892E-03 4.1951731975884221E-03 4.2336757568758919E-03 + 4.2725202471852047E-03 4.3117097051151229E-03 4.3512471942316307E-03 + 4.3911358053074327E-03 4.4313786565635636E-03 4.4719788939131542E-03 + 4.5129396912073584E-03 4.5542642504834583E-03 4.5959558022151785E-03 + 4.6380176055652268E-03 4.6804529486400709E-03 4.7232651487469765E-03 + 4.7664575526533441E-03 4.8100335368483210E-03 4.8539965078067621E-03 + 4.8983499022555209E-03 4.9430971874421100E-03 4.9882418614057558E-03 + 5.0337874532508332E-03 5.0797375234227652E-03 5.1260956639863405E-03 + 5.1728654989065294E-03 5.2200506843317661E-03 5.2676549088797806E-03 + 5.3156818939259316E-03 5.3641353938941273E-03 5.4130191965503192E-03 + 5.4623371232986016E-03 5.5120930294799532E-03 5.5622908046736056E-03 + 5.6129343730011187E-03 5.6640276934331307E-03 5.7155747600988504E-03 + 5.7675796025982873E-03 5.8200462863172674E-03 5.8729789127452223E-03 + 5.9263816197958289E-03 5.9802585821304745E-03 6.0346140114846082E-03 + 6.0894521569969913E-03 6.1447773055418537E-03 6.2005937820640185E-03 + 6.2569059499170002E-03 6.3137182112040979E-03 6.3710350071225193E-03 + 6.4288608183105779E-03 6.4872001651979389E-03 6.5460576083590056E-03 + 6.6054377488694383E-03 6.6653452286658203E-03 6.7257847309085596E-03 + 6.7867609803479575E-03 6.8482787436935722E-03 6.9103428299868491E-03 + 6.9729580909770484E-03 7.0361294215005440E-03 7.0998617598634394E-03 + 7.1641600882276302E-03 7.2290294330002751E-03 7.2944748652267162E-03 + 7.3605015009869041E-03 7.4271145017953503E-03 7.4943190750045973E-03 + 7.5621204742123077E-03 7.6305239996719487E-03 7.6995349987071500E-03 + 7.7691588661296758E-03 7.8394010446612167E-03 7.9102670253588005E-03 + 7.9817623480440952E-03 8.0538926017364627E-03 8.1266634250898410E-03 + 8.2000805068335823E-03 8.2741495862171145E-03 8.3488764534586351E-03 + 8.4242669501977362E-03 8.5003269699520413E-03 8.5770624585779671E-03 + 8.6544794147354800E-03 8.7325838903570766E-03 8.8113819911208573E-03 + 8.8908798769278159E-03 8.9710837623834180E-03 9.0519999172833654E-03 + 9.1336346671037748E-03 9.2159943934956405E-03 9.2990855347836830E-03 + 9.3829145864697105E-03 9.4674881017403293E-03 9.5528126919792889E-03 + 9.6388950272842527E-03 9.7257418369882803E-03 9.8133599101858527E-03 + 9.9017560962635746E-03 9.9909373054356699E-03 1.0080910509284112E-02 + 1.0171682741303664E-02 1.0263261097451700E-02 1.0355652736702881E-02 + 1.0448864881608858E-02 1.0542904818862815E-02 1.0637779899869151E-02 + 1.0733497541318141E-02 1.0830065225765691E-02 1.0927490502218341E-02 + 1.1025780986723318E-02 1.1124944362963971E-02 1.1224988382860412E-02 + 1.1325920867175463E-02 1.1427749706126108E-02 1.1530482860000225E-02 + 1.1634128359778928E-02 1.1738694307764306E-02 1.1844188878212881E-02 + 1.1950620317974579E-02 1.2057996947137379E-02 1.2166327159677800E-02 + 1.2275619424116998E-02 1.2385882284182853E-02 1.2497124359477830E-02 + 1.2609354346152757E-02 1.2722581017586729E-02 1.2836813225072838E-02 + 1.2952059898510204E-02 1.3068330047102016E-02 1.3185632760059766E-02 + 1.3303977207313876E-02 1.3423372640230439E-02 1.3543828392334516E-02 + 1.3665353880039728E-02 1.3787958603384333E-02 1.3911652146773959E-02 + 1.4036444179730751E-02 1.4162344457649354E-02 1.4289362822559484E-02 + 1.4417509203895279E-02 1.4546793619271598E-02 1.4677226175267035E-02 + 1.4808817068214075E-02 1.4941576584996077E-02 1.5075515103851531E-02 + 1.5210643095185300E-02 1.5346971122387112E-02 1.5484509842657394E-02 + 1.5623270007840305E-02 1.5763262465264317E-02 1.5904498158590151E-02 + 1.6046988128666236E-02 1.6190743514391908E-02 1.6335775553588054E-02 + 1.6482095583875710E-02 1.6629715043562327E-02 1.6778645472535880E-02 + 1.6928898513167100E-02 1.7080485911219453E-02 1.7233419516767465E-02 + 1.7387711285123040E-02 1.7543373277769985E-02 1.7700417663307013E-02 + 1.7858856718398871E-02 1.8018702828736168E-02 1.8179968490003497E-02 + 1.8342666308856354E-02 1.8506809003906603E-02 1.8672409406716672E-02 + 1.8839480462802771E-02 1.9008035232646731E-02 1.9178086892717119E-02 + 1.9349648736499209E-02 1.9522734175534170E-02 1.9697356740467555E-02 + 1.9873530082106940E-02 2.0051267972489146E-02 2.0230584305956815E-02 + 2.0411493100244500E-02 2.0594008497574604E-02 2.0778144765762802E-02 + 2.0963916299333495E-02 2.1151337620645059E-02 2.1340423381025007E-02 + 2.1531188361915501E-02 2.1723647476028687E-02 2.1917815768512608E-02 + 2.2113708418127292E-02 2.2311340738431242E-02 2.2510728178978690E-02 + 2.2711886326527191E-02 2.2914830906256244E-02 2.3119577782996410E-02 + 2.3326142962469668E-02 2.3534542592540571E-02 2.3744792964478522E-02 + 2.3956910514231437E-02 2.4170911823710454E-02 2.4386813622086331E-02 + 2.4604632787097156E-02 2.4824386346367668E-02 2.5046091478740509E-02 + 2.5269765515618995E-02 2.5495425942322094E-02 2.5723090399451264E-02 + 2.5952776684269391E-02 2.6184502752092241E-02 2.6418286717691870E-02 + 2.6654146856712899E-02 2.6892101607101107E-02 2.7132169570544717E-02 + 2.7374369513928683E-02 2.7618720370801628E-02 2.7865241242856071E-02 + 2.8113951401421509E-02 2.8364870288971087E-02 2.8618017520641390E-02 + 2.8873412885765764E-02 2.9131076349421477E-02 2.9391028053990246E-02 + 2.9653288320733034E-02 2.9917877651378516E-02 3.0184816729725717E-02 + 3.0454126423261105E-02 3.0725827784789651E-02 3.0999942054080784E-02 + 3.1276490659528706E-02 3.1555495219827416E-02 3.1836977545660908E-02 + 3.2120959641407987E-02 3.2407463706862573E-02 3.2696512138969097E-02 + 3.2988127533573199E-02 3.3282332687188373E-02 3.3579150598777786E-02 + 3.3878604471552373E-02 3.4180717714784661E-02 3.4485513945638598E-02 + 3.4793016991016057E-02 3.5103250889419159E-02 3.5416239892829736E-02 + 3.5732008468604901E-02 3.6050581301389981E-02 3.6371983295048094E-02 + 3.6696239574606868E-02 3.7023375488222765E-02 3.7353416609162388E-02 + 3.7686388737801814E-02 3.8022317903643452E-02 3.8361230367350688E-02 + 3.8703152622801065E-02 3.9048111399157072E-02 3.9396133662955905E-02 + 3.9747246620217447E-02 4.0101477718570908E-02 4.0458854649400772E-02 + 4.0819405350011204E-02 4.1183158005810294E-02 4.1550141052513249E-02 + 4.1920383178365224E-02 4.2293913326384221E-02 4.2670760696623372E-02 + 4.3050954748453871E-02 4.3434525202867641E-02 4.3821502044800946E-02 + 4.4211915525478367E-02 4.4605796164777417E-02 4.5003174753614768E-02 + 4.5404082356352841E-02 4.5808550313228578E-02 4.6216610242803269E-02 + 4.6628294044434103E-02 4.7043633900768204E-02 4.7462662280258062E-02 + 4.7885411939700029E-02 4.8311915926794874E-02 4.8742207582731123E-02 + 4.9176320544791693E-02 4.9614288748983160E-02 5.0056146432688874E-02 + 5.0501928137345352E-02 5.0951668711142276E-02 5.1405403311747075E-02 + 5.1863167409052890E-02 5.2324996787951737E-02 5.2790927551131780E-02 + 5.3260996121899419E-02 5.3735239247026986E-02 5.4213693999624966E-02 + 5.4696397782040510E-02 5.5183388328780870E-02 5.5674703709463660E-02 + 5.6170382331792612E-02 5.6670462944559991E-02 5.7174984640675983E-02 + 5.7683986860224357E-02 5.8197509393545968E-02 5.8715592384349140E-02 + 5.9238276332847652E-02 5.9765602098927173E-02 6.0297610905338972E-02 + 6.0834344340922795E-02 6.1375844363857866E-02 6.1922153304942697E-02 + 6.2473313870904615E-02 6.3029369147737851E-02 6.3590362604072123E-02 + 6.4156338094570498E-02 6.4727339863357491E-02 6.5303412547478235E-02 + 6.5884601180387373E-02 6.6470951195469946E-02 6.7062508429592618E-02 + 6.7659319126687281E-02 6.8261429941365942E-02 6.8868887942567666E-02 + 6.9481740617238510E-02 7.0100035874043287E-02 7.0723822047111154E-02 + 7.1353147899813812E-02 7.1988062628577404E-02 7.2628615866728724E-02 + 7.3274857688374703E-02 7.3926838612317358E-02 7.4584609606002800E-02 + 7.5248222089505323E-02 7.5917727939547500E-02 7.6593179493555083E-02 + 7.7274629553748850E-02 7.7962131391272033E-02 7.8655738750354670E-02 + 7.9355505852515218E-02 8.0061487400798853E-02 8.0773738584054205E-02 + 8.1492315081247407E-02 8.2217273065814528E-02 8.2948669210053352E-02 + 8.3686560689552950E-02 8.4431005187664013E-02 8.5182060900007434E-02 + 8.5939786539024232E-02 8.6704241338565038E-02 8.7475485058520402E-02 + 8.8253577989492890E-02 8.9038580957509633E-02 8.9830555328777831E-02 + 9.0629563014481704E-02 9.1435666475622013E-02 9.2248928727899457E-02 + 9.3069413346640137E-02 9.3897184471766010E-02 9.4732306812808711E-02 + 9.5574845653967760E-02 9.6424866859214739E-02 9.7282436877441314E-02 + 9.8147622747654442E-02 9.9020492104216679E-02 9.9901113182133239E-02 + 1.0078955482238659E-01 1.0168588647731744E-01 1.0259017821605461E-01 + 1.0350250072999199E-01 1.0442292533831518E-01 1.0535152399357667E-01 + 1.0628836928732012E-01 1.0723353445575588E-01 1.0818709338548528E-01 + 1.0914912061927719E-01 1.1011969136189516E-01 1.1109888148597595E-01 + 1.1208676753796148E-01 1.1308342674408195E-01 1.1408893701639353E-01 + 1.1510337695886871E-01 1.1612682587354076E-01 1.1715936376670358E-01 + 1.1820107135516546E-01 1.1925203007255951E-01 1.2031232207570940E-01 + 1.2138203025105138E-01 1.2246123822111467E-01 1.2355003035105752E-01 + 1.2464849175526325E-01 1.2575670830399302E-01 1.2687476663009928E-01 + 1.2800275413579798E-01 1.2914075899950053E-01 1.3028887018270802E-01 + 1.3144717743696449E-01 1.3261577131087399E-01 1.3379474315717876E-01 + 1.3498418513990021E-01 1.3618419024154435E-01 1.3739485227036982E-01 + 1.3861626586772183E-01 1.3984852651543028E-01 1.4109173054327356E-01 + 1.4234597513650976E-01 1.4361135834347299E-01 1.4488797908323897E-01 + 1.4617593715335755E-01 1.4747533323765383E-01 1.4878626891409957E-01 + 1.5010884666275329E-01 1.5144316987377202E-01 1.5278934285549339E-01 + 1.5414747084258934E-01 1.5551766000429354E-01 1.5690001745269991E-01 + 1.5829465125113709E-01 1.5970167042261491E-01 1.6112118495834807E-01 + 1.6255330582635413E-01 1.6399814498012769E-01 1.6545581536739323E-01 + 1.6692643093893358E-01 1.6841010665749856E-01 1.6990695850679174E-01 + 1.7141710350053679E-01 1.7294065969162584E-01 1.7447774618134679E-01 + 1.7602848312869501E-01 1.7759299175976606E-01 1.7917139437723187E-01 + 1.8076381436990252E-01 1.8237037622237090E-01 1.8399120552474488E-01 + 1.8562642898246492E-01 1.8727617442620839E-01 1.8894057082188362E-01 + 1.9061974828071035E-01 1.9231383806939231E-01 1.9402297262037718E-01 + 1.9574728554221080E-01 1.9748691162998100E-01 1.9924198687585448E-01 + 2.0101264847970912E-01 2.0279903485985773E-01 2.0460128566387009E-01 + 2.0641954177948901E-01 2.0825394534564345E-01 2.1010463976356114E-01 + 2.1197176970797749E-01 2.1385548113844643E-01 2.1575592131074994E-01 + 2.1767323878840900E-01 2.1960758345429859E-01 2.2155910652236308E-01 + 2.2352796054943830E-01 2.2551429944717688E-01 2.2751827849407952E-01 + 2.2954005434763483E-01 2.3157978505656429E-01 2.3363763007317878E-01 + 2.3571375026584290E-01 2.3780830793154986E-01 2.3992146680861037E-01 + 2.4205339208945079E-01 2.4420425043352842E-01 2.4637420998035822E-01 + 2.4856344036265826E-01 2.5077211271960975E-01 2.5300039971023502E-01 + 2.5524847552689628E-01 2.5751651590891095E-01 2.5980469815629148E-01 + 2.6211320114360476E-01 2.6444220533395452E-01 2.6679189279309046E-01 + 2.6916244720363897E-01 2.7155405387946385E-01 2.7396689978015226E-01 + 2.7640117352562910E-01 2.7885706541090383E-01 2.8133476742094443E-01 + 2.8383447324568728E-01 2.8635637829517757E-01 2.8890067971484484E-01 + 2.9146757640091570E-01 2.9405726901596047E-01 2.9666996000458157E-01 + 2.9930585360923723E-01 3.0196515588620970E-01 3.0464807472171224E-01 + 3.0735481984813989E-01 3.1008560286046633E-01 3.1284063723278321E-01 + 3.1562013833498981E-01 3.1842432344962818E-01 3.2125341178886840E-01 + 3.2410762451164682E-01 3.2698718474095245E-01 3.2989231758127130E-01 + 3.3282325013618269E-01 3.3578021152611176E-01 3.3876343290624250E-01 + 3.4177314748458565E-01 3.4480959054021137E-01 3.4787299944164096E-01 + 3.5096361366540157E-01 3.5408167481474923E-01 3.5722742663855306E-01 + 3.6040111505035249E-01 3.6360298814757963E-01 3.6683329623095312E-01 + 3.7009229182404757E-01 3.7338022969303086E-01 3.7669736686658312E-01 + 3.8004396265598672E-01 3.8342027867539974E-01 3.8682657886230626E-01 + 3.9026312949814823E-01 3.9373019922914376E-01 3.9722805908728559E-01 + 4.0075698251153058E-01 4.0431724536917457E-01 4.0790912597741669E-01 + 4.1153290512511870E-01 4.1518886609475236E-01 4.1887729468454710E-01 + 4.2259847923083060E-01 4.2635271063056845E-01 4.3014028236410445E-01 + 4.3396149051810601E-01 4.3781663380870522E-01 4.4170601360485323E-01 + 4.4562993395188111E-01 4.4958870159526360E-01 4.5358262600460142E-01 + 4.5761201939781199E-01 4.6167719676553981E-01 4.6577847589577520E-01 + 4.6991617739869951E-01 4.7409062473175051E-01 4.7830214422490330E-01 + 4.8255106510618279E-01 4.8683771952740340E-01 4.9116244259012926E-01 + 4.9552557237187339E-01 4.9992744995252469E-01 5.0436841944101496E-01 + 5.0884882800221309E-01 5.1336902588406785E-01 5.1792936644498921E-01 + 5.2253020618146706E-01 5.2717190475594322E-01 5.3185482502492509E-01 + 5.3657933306735528E-01 5.4134579821322382E-01 5.4615459307244252E-01 + 5.5100609356397567E-01 5.5590067894522144E-01 5.6083873184166233E-01 + 5.6582063827677953E-01 5.7084678770222330E-01 5.7591757302826141E-01 + 5.8103339065449322E-01 5.8619464050084036E-01 5.9140172603880448E-01 + 5.9665505432301036E-01 6.0195503602303069E-01 6.0730208545548181E-01 + 6.1269662061641694E-01 6.1813906321400391E-01 6.2362983870148625E-01 + 6.2916937631044578E-01 6.3475810908435526E-01 6.4039647391243504E-01 + 6.4608491156379932E-01 6.5182386672191617E-01 6.5761378801937276E-01 + 6.6345512807294038E-01 6.6934834351896044E-01 6.7529389504903981E-01 + 6.8129224744606898E-01 6.8734386962054839E-01 6.9344923464724817E-01 + 6.9960881980219414E-01 7.0582310659996983E-01 7.1209258083136251E-01 + 7.1841773260134212E-01 7.2479905636736730E-01 7.3123705097804337E-01 + 7.3773221971211678E-01 7.4428507031782309E-01 7.5089611505257103E-01 + 7.5756587072299186E-01 7.6429485872534364E-01 7.7108360508626184E-01 + 7.7793264050388555E-01 7.8484250038934722E-01 7.9181372490861957E-01 + 7.9884685902474728E-01 8.0594245254044616E-01 8.1310106014108863E-01 + 8.2032324143805613E-01 8.2760956101249061E-01 8.3496058845943411E-01 + 8.4237689843234631E-01 8.4985907068803368E-01 8.5740769013196794E-01 + 8.6502334686401527E-01 8.7270663622455813E-01 8.8045815884103895E-01 + 8.8827852067491775E-01 8.9616833306903343E-01 9.0412821279539801E-01 + 9.1215878210341728E-01 9.2026066876852430E-01 9.2843450614126066E-01 + 9.3668093319678492E-01 9.4500059458482932E-01 9.5339414068008466E-01 + 9.6186222763304685E-01 9.7040551742131531E-01 9.7902467790133230E-01 + 9.8772038286059760E-01 9.9649331207033731E-01 1.0053441513386512E+00 + 1.0142735925641129E+00 1.0232823337898647E+00 1.0323710792581902E+00 + 1.0415405394655561E+00 1.0507914312181603E+00 1.0601244776879719E+00 + 1.0695404084692532E+00 1.0790399596356011E+00 1.0886238737974856E+00 + 1.0982929001603086E+00 1.1080477945829614E+00 1.1178893196369173E+00 + 1.1278182446658509E+00 1.1378353458457675E+00 1.1479414062456865E+00 + 1.1581372158888612E+00 1.1684235718145259E+00 1.1788012781402113E+00 + 1.1892711461246008E+00 1.1998339942309568E+00 1.2104906481910909E+00 + 1.2212419410699200E+00 1.2320887133305967E+00 1.2430318129001965E+00 + 1.2540720952360134E+00 1.2652104233924282E+00 1.2764476680883863E+00 + 1.2877847077754494E+00 1.2992224287064753E+00 1.3107617250049053E+00 + 1.3224034987346467E+00 1.3341486599705978E+00 1.3459981268697976E+00 + 1.3579528257431868E+00 1.3700136911280310E+00 1.3821816658609707E+00 + 1.3944577011517358E+00 1.4068427566574913E+00 1.4193378005578619E+00 + 1.4319438096306265E+00 1.4446617693280621E+00 1.4574926738539846E+00 + 1.4704375262414791E+00 1.4834973384312937E+00 1.4966731313509560E+00 + 1.5099659349945787E+00 1.5233767885033862E+00 1.5369067402469332E+00 + 1.5505568479050664E+00 1.5643281785506147E+00 1.5782218087327897E+00 + 1.5922388245613546E+00 1.6063803217915218E+00 1.6206474059096241E+00 + 1.6350411922195165E+00 1.6495628059297727E+00 1.6642133822416532E+00 + 1.6789940664378318E+00 1.6939060139719335E+00 1.7089503905588705E+00 + 1.7241283722659499E+00 1.7394411456048249E+00 1.7548899076242404E+00 + 1.7704758660036233E+00 1.7862002391474718E+00 1.8020642562806122E+00 + 1.8180691575442993E+00 1.8342161940931441E+00 1.8505066281929334E+00 + 1.8669417333192992E+00 1.8835227942572819E+00 1.9002511072017474E+00 + 1.9171279798587251E+00 1.9341547315476446E+00 1.9513326933044517E+00 + 1.9686632079856698E+00 1.9861476303733845E+00 2.0037873272811324E+00 + 2.0215836776607623E+00 2.0395380727102248E+00 2.0576519159823414E+00 + 2.0759266234945035E+00 2.0943636238393779E+00 2.1129643582965940E+00 + 2.1317302809453937E+00 2.1506628587783112E+00 2.1697635718158619E+00 + 2.1890339132222225E+00 2.2084753894219662E+00 2.2280895202178206E+00 + 2.2478778389094907E+00 2.2678418924134975E+00 2.2879832413841164E+00 + 2.3083034603353938E+00 2.3288041377642039E+00 2.3494868762744456E+00 + 2.3703532927023141E+00 2.3914050182427098E+00 2.4126436985767312E+00 + 2.4340709940003342E+00 2.4556885795541339E+00 2.4774981451543265E+00 + 2.4995013957248049E+00 2.5217000513304524E+00 2.5440958473115787E+00 + 2.5666905344195965E+00 2.5894858789538717E+00 2.6124836628998214E+00 + 2.6356856840681879E+00 2.6590937562355950E+00 2.6827097092863501E+00 + 2.7065353893554631E+00 2.7305726589729797E+00 2.7548233972095950E+00 + 2.7792894998235202E+00 2.8039728794086956E+00 2.8288754655442965E+00 + 2.8539992049455951E+00 2.8793460616161104E+00 2.9049180170011559E+00 + 2.9307170701427512E+00 2.9567452378358619E+00 2.9830045547860813E+00 + 3.0094970737686779E+00 3.0362248657890891E+00 3.0631900202447859E+00 + 3.0903946450886259E+00 3.1178408669936517E+00 3.1455308315193102E+00 + 3.1734667032791921E+00 3.2016506661102659E+00 3.2300849232435573E+00 + 3.2587716974764125E+00 3.2877132313462414E+00 3.3169117873058553E+00 + 3.3463696479002900E+00 3.3760891159452577E+00 3.4060725147071871E+00 + 3.4363221880847981E+00 3.4668405007923582E+00 3.4976298385445497E+00 + 3.5286926082429391E+00 3.5600312381641523E+00 3.5916481781496903E+00 + 3.6235458997974659E+00 3.6557268966549783E+00 3.6881936844142622E+00 + 3.7209488011085643E+00 3.7539948073107126E+00 3.7873342863333108E+00 + 3.8209698444306688E+00 3.8549041110025724E+00 3.8891397387997881E+00 + 3.9236794041314589E+00 3.9585258070743397E+00 3.9936816716838321E+00 + 4.0291497462069508E+00 4.0649328032971850E+00 4.1010336402312015E+00 + 4.1374550791275500E+00 4.1741999671672563E+00 4.2112711768164308E+00 + 4.2486716060507694E+00 4.2864041785821243E+00 4.3244718440870775E+00 + 4.3628775784374874E+00 4.4016243839331439E+00 4.4407152895364632E+00 + 4.4801533511092950E+00 4.5199416516517630E+00 4.5600833015432984E+00 + 4.6005814387858130E+00 4.6414392292489568E+00 4.6826598669176267E+00 + 4.7242465741416817E+00 4.7662026018877865E+00 4.8085312299935890E+00 + 4.8512357674240993E+00 4.8943195525303889E+00 4.9377859533105202E+00 + 4.9816383676728506E+00 5.0258802237016864E+00 5.0705149799252167E+00 + 5.1155461255859027E+00 5.1609771809132692E+00 5.2068116973990390E+00 + 5.2530532580748011E+00 5.2997054777920880E+00 5.3467720035049995E+00 + 5.3942565145552361E+00 5.4421627229597647E+00 5.4904943737010106E+00 + 5.5392552450195698E+00 5.5884491487096026E+00 5.6380799304167910E+00 + 5.6881514699390081E+00 5.7386676815295505E+00 5.7896325142031655E+00 + 5.8410499520447772E+00 5.8929240145208883E+00 5.9452587567938115E+00 + 5.9980582700387179E+00 6.0513266817633831E+00 6.1050681561309021E+00 + 6.1592868942851835E+00 6.2139871346794138E+00 6.2691731534073272E+00 + 6.3248492645375114E+00 6.3810198204506907E+00 6.4376892121798885E+00 + 6.4948618697537350E+00 6.5525422625428007E+00 6.6107348996089179E+00 + 6.6694443300577113E+00 6.7286751433941996E+00 6.7884319698816080E+00 + 6.8487194809032728E+00 6.9095423893278420E+00 6.9709054498777405E+00 + 7.0328134595007832E+00 7.0952712577452210E+00 7.1582837271380368E+00 + 7.2218557935666787E+00 7.2859924266640599E+00 7.3506986401970797E+00 + 7.4159794924586180E+00 7.4818400866628689E+00 7.5482855713443220E+00 + 7.6153211407602734E+00 7.6829520352968030E+00 7.7511835418784854E+00 + 7.8200209943816539E+00 7.8894697740514257E+00 7.9595353099222894E+00 + 8.0302230792425462E+00 8.1015386079025333E+00 8.1734874708665117E+00 + 8.2460752926085199E+00 8.3193077475521040E+00 8.3931905605138191E+00 + 8.4677295071508105E+00 8.5429304144122877E+00 8.6187991609951027E+00 + 8.6953416778032047E+00 8.7725639484113280E+00 8.8504720095327976E+00 + 8.9290719514913395E+00 9.0083699186972499E+00 9.0883721101276826E+00 + 9.1690847798113175E+00 9.2505142373171516E+00 9.3326668482477970E+00 + 9.4155490347371416E+00 9.4991672759522903E+00 9.5835281086001149E+00 + 9.6686381274382978E+00 9.7545039857907696E+00 9.8411323960678772E+00 + 9.9285301302910938E+00 1.0016704020622464E+01 1.0105660959898609E+01 + 1.0195407902169601E+01 1.0285951863242634E+01 1.0377299921230383E+01 + 1.0469459217104376E+01 1.0562436955253199E+01 1.0656240404045764E+01 + 1.0750876896399376E+01 1.0846353830353038E+01 1.0942678669645838E+01 + 1.1039858944300285E+01 1.1137902251211031E+01 1.1236816254738789E+01 + 1.1336608687309367E+01 1.1437287350018224E+01 1.1538860113240251E+01 + 1.1641334917245116E+01 1.1744719772817861E+01 1.1849022761885175E+01 + 1.1954252038147267E+01 1.2060415827715133E+01 1.2167522429753671E+01 + 1.2275580217130537E+01 1.2384597637070534E+01 1.2494583211816057E+01 + 1.2605545539293242E+01 1.2717493293784207E+01 1.2830435226605001E+01 + 1.2944380166789781E+01 1.3059337021781095E+01 1.3175314778126054E+01 + 1.3292322502178935E+01 1.3410369340809877E+01 1.3529464522120026E+01 + 1.3649617356162768E+01 1.3770837235671610E+01 1.3893133636794508E+01 + 1.4016516119834504E+01 1.4140994329997147E+01 1.4266577998144589E+01 + 1.4393276941556103E+01 1.4521101064695646E+01 1.4650060359986064E+01 + 1.4780164908590347E+01 1.4911424881199535E+01 1.5043850538827881E+01 + 1.5177452233615069E+01 1.5312240409635303E+01 1.5448225603713848E+01 + 1.5585418446250801E+01 1.5723829662051939E+01 1.5863470071167225E+01 + 1.6004350589736593E+01 1.6146482230843400E+01 1.6289876105375196E+01 + 1.6434543422892375E+01 1.6580495492504557E+01 1.6727743723754472E+01 + 1.6876299627510008E+01 1.7026174816863989E+01 1.7177381008042126E+01 + 1.7329930021318734E+01 1.7483833781940852E+01 1.7639104321060572E+01 + 1.7795753776675355E+01 1.7953794394577010E+01 1.8113238529309061E+01 + 1.8274098645132376E+01 1.8436387316999642E+01 1.8600117231538341E+01 + 1.8765301188042617E+01 1.8931952099473666E+01 1.9100082993469254E+01 + 1.9269707013362265E+01 1.9440837419207927E+01 1.9613487588820497E+01 + 1.9787671018819157E+01 1.9963401325682902E+01 2.0140692246815075E+01 + 2.0319557641617237E+01 2.0500011492572728E+01 2.0682067906339498E+01 + 2.0865741114852987E+01 2.1051045476438802E+01 2.1237995476934923E+01 + 2.1426605730824232E+01 2.1616890982376944E+01 2.1808866106803332E+01 + 2.2002546111416365E+01 2.2197946136804958E+01 2.2395081458017724E+01 + 2.2593967485756796E+01 2.2794619767582677E+01 2.2997053989129753E+01 + 2.3201285975332244E+01 2.3407331691661469E+01 2.3615207245373806E+01 + 2.3824928886770042E+01 2.4036513010465448E+01 2.4249976156671536E+01 + 2.4465335012489170E+01 2.4682606413212802E+01 2.4901807343646723E+01 + 2.5122954939432720E+01 2.5346066488389802E+01 2.5571159431865386E+01 + 2.5798251366098867E+01 2.6027360043597323E+01 2.6258503374522988E+01 + 2.6491699428093515E+01 2.6726966433994622E+01 2.6964322783804889E+01 + 2.7203787032433677E+01 2.7445377899571536E+01 2.7689114271153770E+01 + 2.7935015200836510E+01 2.8183099911486369E+01 2.8433387796683288E+01 + 2.8685898422236296E+01 2.8940651527713193E+01 2.9197667027983783E+01 + 2.9456965014776415E+01 2.9718565758248793E+01 2.9982489708572466E+01 + 3.0248757497531699E+01 3.0517389940135995E+01 3.0788408036247450E+01 + 3.1061832972222511E+01 3.1337686122567895E+01 3.1615989051611695E+01 + 3.1896763515189036E+01 3.2180031462343003E+01 3.2465815037040144E+01 + 3.2754136579901719E+01 3.3045018629950285E+01 3.3338483926371310E+01 + 3.3634555410290929E+01 3.3933256226569540E+01 3.4234609725610710E+01 + 3.4538639465186819E+01 3.4845369212280509E+01 3.5154822944942893E+01 + 3.5467024854167597E+01 3.5781999345782054E+01 3.6099771042355577E+01 + 3.6420364785123787E+01 3.6743805635930741E+01 3.7070118879188286E+01 + 3.7399330023852229E+01 3.7731464805416699E+01 3.8066549187925887E+01 + 3.8404609366003960E+01 3.8745671766902404E+01 3.9089763052566127E+01 + 3.9436910121717887E+01 3.9787140111960674E+01 4.0140480401899396E+01 + 4.0496958613281038E+01 4.0856602613154202E+01 4.1219440516047129E+01 + 4.1585500686165766E+01 4.1954811739611252E+01 4.2327402546616511E+01 + 4.2703302233803363E+01 4.3082540186459646E+01 4.3465146050835926E+01 + 4.3851149736463356E+01 4.4240581418491615E+01 4.4633471540048099E+01 + 4.5029850814617348E+01 4.5429750228442195E+01 4.5833201042946335E+01 + 4.6240234797177614E+01 4.6650883310273827E+01 4.7065178683950322E+01 + 4.7483153305009040E+01 4.7904839847870591E+01 4.8330271277128389E+01 + 4.8759480850125890E+01 4.9192502119555968E+01 4.9629368936084049E+01 + 5.0070115450994628E+01 5.0514776118860411E+01 5.0963385700236145E+01 + 5.1415979264375757E+01 5.1872592191974171E+01 5.2333260177932630E+01 + 5.2798019234149315E+01 5.3266905692334831E+01 5.3739956206851765E+01 + 5.4217207757580404E+01 5.4698697652809820E+01 5.5184463532153821E+01 + 5.5674543369493755E+01 5.6168975475946823E+01 5.6667798502861430E+01 + 5.7171051444838035E+01 5.7678773642777820E+01 5.8191004786958374E+01 + 5.8707784920135815E+01 5.9229154440675472E+01 5.9755154105709742E+01 + 6.0285825034324624E+01 6.0821208710773497E+01 6.1361346987720395E+01 + 6.1906282089512104E+01 6.2456056615478289E+01 6.3010713543261986E+01 + 6.3570296232179615E+01 6.4134848426609864E+01 6.4704414259413753E+01 + 6.5279038255384421E+01 6.5858765334728233E+01 6.6443640816575680E+01 + 6.7033710422524408E+01 6.7629020280213823E+01 6.8229616926930277E+01 + 6.8835547313245485E+01 6.9446858806687032E+01 7.0063599195440673E+01 + 7.0685816692086419E+01 7.1313559937367344E+01 7.1946878003992424E+01 + 7.2585820400472002E+01 7.3230437074988316E+01 7.3880778419300626E+01 + 7.4536895272683623E+01 7.5198838925902237E+01 7.5866661125221000E+01 + 7.6540414076449622E+01 7.7220150449023450E+01 7.7905923380121067E+01 + 7.8597786478818691E+01 7.9295793830280090E+01 7.9999999999985093E+01 + + + 1.2408366258571902E-06 1.2518561669805533E-06 1.2629735697273076E-06 + 1.2741897031805866E-06 1.2855054441416212E-06 1.2969216771982817E-06 + 1.3084392947942281E-06 1.3200591972986765E-06 1.3317822930767828E-06 + 1.3436094985606542E-06 1.3555417383209869E-06 1.3675799451393458E-06 + 1.3797250600810803E-06 1.3919780325688929E-06 1.4043398204570563E-06 + 1.4168113901062935E-06 1.4293937164593217E-06 1.4420877831170650E-06 + 1.4548945824155468E-06 1.4678151155034629E-06 1.4808503924204465E-06 + 1.4940014321760250E-06 1.5072692628292781E-06 1.5206549215692063E-06 + 1.5341594547958109E-06 1.5477839182018940E-06 1.5615293768555851E-06 + 1.5753969052836028E-06 1.5893875875552506E-06 1.6035025173671658E-06 + 1.6177427981288149E-06 1.6321095430487512E-06 1.6466038752216389E-06 + 1.6612269277160474E-06 1.6759798436630271E-06 1.6908637763454733E-06 + 1.7058798892882807E-06 1.7210293563493006E-06 1.7363133618111032E-06 + 1.7517331004735601E-06 1.7672897777472420E-06 1.7829846097476526E-06 + 1.7988188233902948E-06 1.8147936564865817E-06 1.8309103578406039E-06 + 1.8471701873467472E-06 1.8635744160881869E-06 1.8801243264362509E-06 + 1.8968212121506675E-06 1.9136663784807011E-06 1.9306611422671888E-06 + 1.9478068320454827E-06 1.9651047881493053E-06 1.9825563628155265E-06 + 2.0001629202898747E-06 2.0179258369335818E-06 2.0358465013309803E-06 + 2.0539263143980499E-06 2.0721666894919356E-06 2.0905690525214325E-06 + 2.1091348420584519E-06 2.1278655094504832E-06 2.1467625189340458E-06 + 2.1658273477491577E-06 2.1850614862548124E-06 2.2044664380454868E-06 + 2.2240437200686817E-06 2.2437948627435071E-06 2.2637214100803190E-06 + 2.2838249198014193E-06 2.3041069634628303E-06 2.3245691265771451E-06 + 2.3452130087374745E-06 2.3660402237424928E-06 2.3870523997225900E-06 + 2.4082511792671533E-06 2.4296382195529675E-06 2.4512151924737688E-06 + 2.4729837847709358E-06 2.4949456981653501E-06 2.5171026494904276E-06 + 2.5394563708263246E-06 2.5620086096353416E-06 2.5847611288985311E-06 + 2.6077157072535114E-06 2.6308741391335097E-06 2.6542382349076377E-06 + 2.6778098210224192E-06 2.7015907401445618E-06 2.7255828513050097E-06 + 2.7497880300442654E-06 2.7742081685590126E-06 2.7988451758500305E-06 + 2.8237009778714290E-06 2.8487775176812045E-06 2.8740767555931359E-06 + 2.8996006693300323E-06 2.9253512541783326E-06 2.9513305231440840E-06 + 2.9775405071103103E-06 3.0039832549957660E-06 3.0306608339151121E-06 + 3.0575753293405051E-06 3.0847288452646277E-06 3.1121235043651647E-06 + 3.1397614481707372E-06 3.1676448372283138E-06 3.1957758512721112E-06 + 3.2241566893939841E-06 3.2527895702153408E-06 3.2816767320605774E-06 + 3.3108204331320571E-06 3.3402229516866385E-06 3.3698865862137741E-06 + 3.3998136556151942E-06 3.4300064993861803E-06 3.4604674777984491E-06 + 3.4911989720846675E-06 3.5222033846245969E-06 3.5534831391328955E-06 + 3.5850406808485925E-06 3.6168784767262332E-06 3.6489990156287314E-06 + 3.6814048085219371E-06 3.7140983886709185E-06 3.7470823118380019E-06 + 3.7803591564825588E-06 3.8139315239625751E-06 3.8478020387380103E-06 + 3.8819733485759533E-06 3.9164481247576117E-06 3.9512290622871367E-06 + 3.9863188801022929E-06 4.0217203212870090E-06 4.0574361532858207E-06 + 4.0934691681201989E-06 4.1298221826068229E-06 4.1664980385777693E-06 + 4.2034996031026731E-06 4.2408297687128575E-06 4.2784914536274456E-06 + 4.3164876019814921E-06 4.3548211840561371E-06 4.3934951965107968E-06 + 4.4325126626174276E-06 4.4718766324968622E-06 4.5115901833572444E-06 + 4.5516564197345939E-06 4.5920784737354878E-06 4.6328595052819088E-06 + 4.6740027023582775E-06 4.7155112812606504E-06 4.7573884868481607E-06 + 4.7996375927966749E-06 4.8422619018547070E-06 4.8852647461016044E-06 + 4.9286494872080281E-06 4.9724195166987455E-06 5.0165782562177547E-06 + 5.0611291577957717E-06 5.1060757041200746E-06 5.1514214088067710E-06 + 5.1971698166754577E-06 5.2433245040263345E-06 5.2898890789197799E-06 + 5.3368671814583913E-06 5.3842624840715634E-06 5.4320786918025526E-06 + 5.4803195425981279E-06 5.5289888076007730E-06 5.5780902914434849E-06 + 5.6276278325471971E-06 5.6776053034208491E-06 5.7280266109640952E-06 + 5.7788956967727392E-06 5.8302165374468453E-06 5.8819931449016144E-06 + 5.9342295666809973E-06 5.9869298862741147E-06 6.0400982234344661E-06 + 6.0937387345019957E-06 6.1478556127279981E-06 6.2024530886029176E-06 + 6.2575354301870687E-06 6.3131069434442722E-06 6.3691719725784789E-06 + 6.4257349003733562E-06 6.4828001485349158E-06 6.5403721780371693E-06 + 6.5984554894708497E-06 6.6570546233952480E-06 6.7161741606931597E-06 + 6.7758187229289812E-06 6.8359929727100014E-06 6.8967016140508886E-06 + 6.9579493927414117E-06 7.0197410967174512E-06 7.0820815564352664E-06 + 7.1449756452491232E-06 7.2084282797922571E-06 7.2724444203612145E-06 + 7.3370290713036227E-06 7.4021872814093955E-06 7.4679241443054083E-06 + 7.5342447988536905E-06 7.6011544295531370E-06 7.6686582669448085E-06 + 7.7367615880208126E-06 7.8054697166368230E-06 7.8747880239282641E-06 + 7.9447219287301943E-06 8.0152768980009055E-06 8.0864584472492980E-06 + 8.1582721409660466E-06 8.2307235930585869E-06 8.3038184672899853E-06 + 8.3775624777216833E-06 8.4519613891601817E-06 8.5270210176077133E-06 + 8.6027472307168722E-06 8.6791459482493198E-06 8.7562231425385643E-06 + 8.8339848389568083E-06 8.9124371163860022E-06 8.9915861076930247E-06 + 9.0714380002091187E-06 9.1519990362135879E-06 9.2332755134217468E-06 + 9.3152737854772705E-06 9.3980002624488393E-06 9.4814614113312649E-06 + 9.5656637565510220E-06 9.6506138804762857E-06 9.7363184239315057E-06 + 9.8227840867165258E-06 9.9100176281303431E-06 9.9980258674994841E-06 + 1.0086815684711112E-05 1.0176394020750857E-05 1.0266767878245386E-05 + 1.0357944322009848E-05 1.0449930479600129E-05 1.0542733541870065E-05 + 1.0636360763533541E-05 1.0730819463731656E-05 1.0826117026604842E-05 + 1.0922260901870129E-05 1.1019258605403514E-05 1.1117117719827481E-05 + 1.1215845895103803E-05 1.1315450849131511E-05 1.1415940368350259E-05 + 1.1517322308349003E-05 1.1619604594480107E-05 1.1722795222478884E-05 + 1.1826902259088668E-05 1.1931933842691377E-05 1.2037898183943758E-05 + 1.2144803566419225E-05 1.2252658347255391E-05 1.2361470957807426E-05 + 1.2471249904307105E-05 1.2582003768527800E-05 1.2693741208455337E-05 + 1.2806470958964814E-05 1.2920201832503444E-05 1.3034942719779453E-05 + 1.3150702590457081E-05 1.3267490493857780E-05 1.3385315559667635E-05 + 1.3504186998651027E-05 1.3624114103370729E-05 1.3745106248914284E-05 + 1.3867172893626900E-05 1.3990323579850838E-05 1.4114567934671381E-05 + 1.4239915670669387E-05 1.4366376586680603E-05 1.4493960568561609E-05 + 1.4622677589962659E-05 1.4752537713107363E-05 1.4883551089579260E-05 + 1.5015727961115427E-05 1.5149078660407074E-05 1.5283613611907314E-05 + 1.5419343332646065E-05 1.5556278433052179E-05 1.5694429617782951E-05 + 1.5833807686560875E-05 1.5974423535017919E-05 1.6116288155547271E-05 + 1.6259412638162651E-05 1.6403808171365244E-05 1.6549486043018370E-05 + 1.6696457641229841E-05 1.6844734455242267E-05 1.6994328076331134E-05 + 1.7145250198711009E-05 1.7297512620449670E-05 1.7451127244390405E-05 + 1.7606106079082486E-05 1.7762461239719944E-05 1.7920204949088633E-05 + 1.8079349538521714E-05 1.8239907448863671E-05 1.8401891231442814E-05 + 1.8565313549052485E-05 1.8730187176940917E-05 1.8896525003809940E-05 + 1.9064340032822560E-05 1.9233645382619390E-05 1.9404454288344223E-05 + 1.9576780102678656E-05 1.9750636296885914E-05 1.9926036461863929E-05 + 2.0102994309207816E-05 2.0281523672281717E-05 2.0461638507300210E-05 + 2.0643352894419323E-05 2.0826681038837206E-05 2.1011637271904625E-05 + 2.1198236052245261E-05 2.1386491966886003E-05 2.1576419732397254E-05 + 2.1768034196043382E-05 2.1961350336943363E-05 2.2156383267241785E-05 + 2.2353148233290162E-05 2.2551660616838805E-05 2.2751935936239303E-05 + 2.2953989847657584E-05 2.3157838146297858E-05 2.3363496767637334E-05 + 2.3570981788671977E-05 2.3780309429173307E-05 2.3991496052956305E-05 + 2.4204558169158690E-05 2.4419512433531427E-05 2.4636375649740802E-05 + 2.4855164770682004E-05 2.5075896899804395E-05 2.5298589292448512E-05 + 2.5523259357195052E-05 2.5749924657225648E-05 2.5978602911695925E-05 + 2.6209311997120602E-05 2.6442069948771000E-05 2.6676894962084930E-05 + 2.6913805394089031E-05 2.7152819764833832E-05 2.7393956758841529E-05 + 2.7637235226566598E-05 2.7882674185869405E-05 2.8130292823502926E-05 + 2.8380110496612551E-05 2.8632146734249371E-05 2.8886421238896802E-05 + 2.9142953888010789E-05 2.9401764735573706E-05 2.9662874013662014E-05 + 2.9926302134027887E-05 3.0192069689694856E-05 3.0460197456567627E-05 + 3.0730706395056224E-05 3.1003617651714518E-05 3.1278952560893297E-05 + 3.1556732646408088E-05 3.1836979623221692E-05 3.2119715399141743E-05 + 3.2404962076533338E-05 3.2692741954046790E-05 3.2983077528360812E-05 + 3.3275991495941165E-05 3.3571506754814903E-05 3.3869646406360381E-05 + 3.4170433757113215E-05 3.4473892320588113E-05 3.4780045819117125E-05 + 3.5088918185704030E-05 3.5400533565895242E-05 3.5714916319667432E-05 + 3.6032091023331725E-05 3.6352082471454945E-05 3.6674915678797904E-05 + 3.7000615882270860E-05 3.7329208542906388E-05 3.7660719347849783E-05 + 3.7995174212367003E-05 3.8332599281870640E-05 3.8673020933963785E-05 + 3.9016465780501964E-05 3.9362960669673633E-05 3.9712532688098820E-05 + 4.0065209162946671E-05 4.0421017664071660E-05 4.0779986006168833E-05 + 4.1142142250948210E-05 4.1507514709328375E-05 4.1876131943649667E-05 + 4.2248022769907033E-05 4.2623216260002610E-05 4.3001741744018370E-05 + 4.3383628812509035E-05 4.3768907318815137E-05 4.4157607381396844E-05 + 4.4549759386188354E-05 4.4945393988973293E-05 4.5344542117781233E-05 + 4.5747234975305307E-05 4.6153504041341532E-05 4.6563381075249618E-05 + 4.6976898118435774E-05 4.7394087496857376E-05 4.7814981823550141E-05 + 4.8239614001177460E-05 4.8668017224602565E-05 4.9100224983483457E-05 + 4.9536271064890892E-05 4.9976189555949730E-05 5.0420014846503450E-05 + 5.0867781631802698E-05 5.1319524915217366E-05 5.1775280010973052E-05 + 5.2235082546911571E-05 5.2698968467276253E-05 5.3166974035521624E-05 + 5.3639135837148400E-05 5.4115490782563386E-05 5.4596076109964939E-05 + 5.5080929388254020E-05 5.5570088519971008E-05 5.6063591744258671E-05 + 5.6561477639851515E-05 5.7063785128091520E-05 5.7570553475970783E-05 + 5.8081822299201226E-05 5.8597631565311321E-05 5.9118021596770581E-05 + 5.9643033074141724E-05 6.0172707039260648E-05 6.0707084898445099E-05 + 6.1246208425731212E-05 6.1790119766139283E-05 6.2338861438968401E-05 + 6.2892476341120214E-05 6.3451007750452501E-05 6.4014499329162085E-05 + 6.4582995127198254E-05 6.5156539585706246E-05 6.5735177540501242E-05 + 6.6318954225573446E-05 6.6907915276624228E-05 6.7502106734633398E-05 + 6.8101575049458562E-05 6.8706367083466138E-05 6.9316530115194958E-05 + 6.9932111843051768E-05 7.0553160389040523E-05 7.1179724302523629E-05 + 7.1811852564017682E-05 7.2449594589022343E-05 7.3093000231883007E-05 + 7.3742119789688490E-05 7.4397004006202528E-05 7.5057704075830932E-05 + 7.5724271647623485E-05 7.6396758829311268E-05 7.7075218191380575E-05 + 7.7759702771181986E-05 7.8450266077076966E-05 7.9146962092620473E-05 + 7.9849845280780999E-05 8.0558970588198446E-05 8.1274393449478965E-05 + 8.1996169791528987E-05 8.2724356037926954E-05 8.3459009113333963E-05 + 8.4200186447944174E-05 8.4947945981973851E-05 8.5702346170191213E-05 + 8.6463445986485456E-05 8.7231304928477534E-05 8.8005983022170956E-05 + 8.8787540826644077E-05 8.9576039438784606E-05 9.0371540498065297E-05 + 9.1174106191362837E-05 9.1983799257819179E-05 9.2800682993745686E-05 + 9.3624821257571819E-05 9.4456278474836484E-05 9.5295119643224962E-05 + 9.6141410337649737E-05 9.6995216715376481E-05 9.7856605521196355E-05 + 9.8725644092642923E-05 9.9602400365256789E-05 1.0048694287789617E-04 + 1.0137934077809439E-04 1.0227966382746597E-04 1.0318798240715964E-04 + 1.0410436752336067E-04 1.0502889081284113E-04 1.0596162454856054E-04 + 1.0690264164531547E-04 1.0785201566543908E-04 1.0880982082455255E-04 + 1.0977613199736596E-04 1.1075102472353206E-04 1.1173457521355128E-04 + 1.1272686035472899E-04 1.1372795771718677E-04 1.1473794555992538E-04 + 1.1575690283694345E-04 1.1678490920340909E-04 1.1782204502188650E-04 + 1.1886839136861895E-04 1.1992403003986593E-04 1.2098904355829810E-04 + 1.2206351517944813E-04 1.2314752889821867E-04 1.2424116945544922E-04 + 1.2534452234453985E-04 1.2645767381813512E-04 1.2758071089486649E-04 + 1.2871372136615444E-04 1.2985679380307229E-04 1.3101001756326915E-04 + 1.3217348279795607E-04 1.3334728045895269E-04 1.3453150230579810E-04 + 1.3572624091292334E-04 1.3693158967688831E-04 1.3814764282368323E-04 + 1.3937449541609405E-04 1.4061224336113441E-04 1.4186098341754277E-04 + 1.4312081320334583E-04 1.4439183120349073E-04 1.4567413677754270E-04 + 1.4696783016745335E-04 1.4827301250539652E-04 1.4958978582167362E-04 + 1.5091825305269075E-04 1.5225851804900428E-04 1.5361068558344032E-04 + 1.5497486135928465E-04 1.5635115201854553E-04 1.5773966515029118E-04 + 1.5914050929905922E-04 1.6055379397334304E-04 1.6197962965415149E-04 + 1.6341812780364633E-04 1.6486940087385521E-04 1.6633356231546202E-04 + 1.6781072658667671E-04 1.6930100916218160E-04 1.7080452654215958E-04 + 1.7232139626140058E-04 1.7385173689848970E-04 1.7539566808507734E-04 + 1.7695331051523046E-04 1.7852478595486833E-04 1.8011021725128126E-04 + 1.8170972834273313E-04 1.8332344426815139E-04 1.8495149117690043E-04 + 1.8659399633864414E-04 1.8825108815329462E-04 1.8992289616104902E-04 + 1.9160955105251728E-04 1.9331118467893742E-04 1.9502793006248369E-04 + 1.9675992140666523E-04 1.9850729410681627E-04 2.0027018476068183E-04 + 2.0204873117909465E-04 2.0384307239674964E-04 2.0565334868307124E-04 + 2.0747970155317999E-04 2.0932227377895471E-04 2.1118120940019294E-04 + 2.1305665373587209E-04 2.1494875339550827E-04 2.1685765629061827E-04 + 2.1878351164628199E-04 2.2072647001280702E-04 2.2268668327749910E-04 + 2.2466430467653415E-04 2.2665948880693852E-04 2.2867239163867372E-04 + 2.3070317052682851E-04 2.3275198422392147E-04 2.3481899289230920E-04 + 2.3690435811670835E-04 2.3900824291682674E-04 2.4113081176010634E-04 + 2.4327223057458156E-04 2.4543266676184909E-04 2.4761228921015542E-04 + 2.4981126830759810E-04 2.5202977595544684E-04 2.5426798558158084E-04 + 2.5652607215404574E-04 2.5880421219473299E-04 2.6110258379317703E-04 + 2.6342136662047916E-04 2.6576074194335195E-04 2.6812089263828892E-04 + 2.7050200320586233E-04 2.7290425978514389E-04 2.7532785016825797E-04 + 2.7777296381506104E-04 2.8023979186795147E-04 2.8272852716681356E-04 + 2.8523936426409074E-04 2.8777249943999559E-04 2.9032813071785350E-04 + 2.9290645787958137E-04 2.9550768248130772E-04 2.9813200786912646E-04 + 3.0077963919499499E-04 3.0345078343277094E-04 3.0614564939439098E-04 + 3.0886444774619651E-04 3.1160739102539949E-04 3.1437469365669986E-04 + 3.1716657196904528E-04 3.1998324421254421E-04 3.2282493057552661E-04 + 3.2569185320175569E-04 3.2858423620779560E-04 3.3150230570052936E-04 + 3.3444628979483588E-04 3.3741641863142200E-04 3.4041292439481211E-04 + 3.4343604133150134E-04 3.4648600576826430E-04 3.4956305613063204E-04 + 3.5266743296152961E-04 3.5579937894007909E-04 3.5895913890057269E-04 + 3.6214695985160975E-04 3.6536309099540864E-04 3.6860778374728633E-04 + 3.7188129175531176E-04 3.7518387092013637E-04 3.7851577941499625E-04 + 3.8187727770589672E-04 3.8526862857197141E-04 3.8869009712602659E-04 + 3.9214195083526543E-04 3.9562445954219495E-04 3.9913789548572397E-04 + 4.0268253332244070E-04 4.0625865014808728E-04 4.0986652551921966E-04 + 4.1350644147506013E-04 4.1717868255954814E-04 4.2088353584358092E-04 + 4.2462129094745740E-04 4.2839224006351755E-04 4.3219667797898316E-04 + 4.3603490209900419E-04 4.3990721246990583E-04 4.4381391180264601E-04 + 4.4775530549647879E-04 4.5173170166282639E-04 4.5574341114936888E-04 + 4.5979074756434025E-04 4.6387402730104752E-04 4.6799356956260275E-04 + 4.7214969638687486E-04 4.7634273267166752E-04 4.8057300620011386E-04 + 4.8484084766630401E-04 4.8914659070113252E-04 4.9349057189838343E-04 + 4.9787313084104017E-04 5.0229461012783196E-04 5.0675535540001791E-04 + 5.1125571536840379E-04 5.1579604184060510E-04 5.2037668974854736E-04 + 5.2499801717621102E-04 5.2966038538762735E-04 5.3436415885511586E-04 + 5.3910970528777953E-04 5.4389739566024838E-04 5.4872760424167833E-04 + 5.5360070862501231E-04 5.5851708975649414E-04 5.6347713196545207E-04 + 5.6848122299434079E-04 5.7352975402905136E-04 5.7862311972949542E-04 + 5.8376171826045255E-04 5.8894595132270009E-04 5.9417622418441157E-04 + 5.9945294571284104E-04 6.0477652840628456E-04 6.1014738842632443E-04 + 6.1556594563036589E-04 6.2103262360445398E-04 6.2654784969639146E-04 + 6.3211205504914276E-04 6.3772567463453770E-04 6.4338914728727761E-04 + 6.4910291573923610E-04 6.5486742665407291E-04 6.6068313066214952E-04 + 6.6655048239575444E-04 6.7246994052464696E-04 6.7844196779190890E-04 + 6.8446703105012278E-04 6.9054560129786413E-04 6.9667815371652145E-04 + 7.0286516770744461E-04 7.0910712692941777E-04 7.1540451933647237E-04 + 7.2175783721603007E-04 7.2816757722738476E-04 7.3463424044053289E-04 + 7.4115833237533711E-04 7.4774036304105164E-04 7.5438084697618442E-04 + 7.6108030328872554E-04 7.6783925569672571E-04 7.7465823256923471E-04 + 7.8153776696761042E-04 7.8847839668718463E-04 7.9548066429930891E-04 + 8.0254511719376749E-04 8.0967230762156559E-04 8.1686279273810629E-04 + 8.2411713464673915E-04 8.3143590044270667E-04 8.3881966225747443E-04 + 8.4626899730345267E-04 8.5378448791912579E-04 8.6136672161456857E-04 + 8.6901629111737946E-04 8.7673379441901309E-04 8.8451983482152620E-04 + 8.9237502098474350E-04 9.0029996697383360E-04 9.0829529230731793E-04 + 9.1636162200549472E-04 9.2449958663930372E-04 9.3270982237961882E-04 + 9.4099297104697555E-04 9.4934968016175130E-04 9.5778060299477692E-04 + 9.6628639861840999E-04 9.7486773195805637E-04 9.8352527384414469E-04 + 9.9225970106457456E-04 1.0010716964176155E-03 1.0099619487652907E-03 + 1.0189311530872242E-03 1.0279800105349672E-03 1.0371092284868152E-03 + 1.0463195206030995E-03 1.0556116068819823E-03 1.0649862137157389E-03 + 1.0744440739475381E-03 1.0839859269287397E-03 1.0936125185766819E-03 + 1.1033246014330016E-03 1.1131229347224544E-03 1.1230082844122724E-03 + 1.1329814232720402E-03 1.1430431309341000E-03 1.1531941939545080E-03 + 1.1634354058745111E-03 1.1737675672825881E-03 1.1841914858770331E-03 + 1.1947079765290908E-03 1.2053178613466655E-03 1.2160219697385803E-03 + 1.2268211384794205E-03 1.2377162117749455E-03 1.2487080413280784E-03 + 1.2597974864054944E-03 1.2709854139047849E-03 1.2822726984222307E-03 + 1.2936602223211720E-03 1.3051488758009798E-03 1.3167395569666531E-03 + 1.3284331718990208E-03 1.3402306347255774E-03 1.3521328676919424E-03 + 1.3641408012339496E-03 1.3762553740503925E-03 1.3884775331763938E-03 + 1.4008082340574500E-03 1.4132484406241099E-03 1.4257991253673389E-03 + 1.4384612694145359E-03 1.4512358626062284E-03 1.4641239035734603E-03 + 1.4771263998158487E-03 1.4902443677803508E-03 1.5034788329407198E-03 + 1.5168308298776655E-03 1.5303014023597410E-03 1.5438916034249243E-03 + 1.5576024954629493E-03 1.5714351502983516E-03 1.5853906492742525E-03 + 1.5994700833368996E-03 1.6136745531209404E-03 1.6280051690354697E-03 + 1.6424630513508325E-03 1.6570493302861928E-03 1.6717651460978972E-03 + 1.6866116491686006E-03 1.7015900000972078E-03 1.7167013697895880E-03 + 1.7319469395501203E-03 1.7473279011740346E-03 1.7628454570405732E-03 + 1.7785008202069966E-03 1.7942952145033981E-03 1.8102298746283873E-03 + 1.8263060462456048E-03 1.8425249860810943E-03 1.8588879620215566E-03 + 1.8753962532134525E-03 1.8920511501630084E-03 1.9088539548370934E-03 + 1.9258059807649949E-03 1.9429085531411120E-03 1.9601630089285376E-03 + 1.9775706969635850E-03 1.9951329780612233E-03 2.0128512251214557E-03 + 2.0307268232366516E-03 2.0487611697998127E-03 2.0669556746138219E-03 + 2.0853117600016483E-03 2.1038308609175288E-03 2.1225144250591552E-03 + 2.1413639129808327E-03 2.1603807982076679E-03 2.1795665673507462E-03 + 2.1989227202233582E-03 2.2184507699582385E-03 2.2381522431258460E-03 + 2.2580286798537163E-03 2.2780816339468394E-03 2.2983126730091435E-03 + 2.3187233785660309E-03 2.3393153461880047E-03 2.3600901856154167E-03 + 2.3810495208842863E-03 2.4021949904532726E-03 2.4235282473317530E-03 + 2.4450509592090349E-03 2.4667648085847428E-03 2.4886714929003230E-03 + 2.5107727246717585E-03 2.5330702316234306E-03 2.5555657568231780E-03 + 2.5782610588185712E-03 2.6011579117743654E-03 2.6242581056112129E-03 + 2.6475634461455666E-03 2.6710757552308650E-03 2.6947968708999422E-03 + 2.7187286475087100E-03 2.7428729558811298E-03 2.7672316834554478E-03 + 2.7918067344317554E-03 2.8166000299208386E-03 2.8416135080943537E-03 + 2.8668491243363553E-03 2.8923088513961338E-03 2.9179946795424524E-03 + 2.9439086167191222E-03 2.9700526887019652E-03 2.9964289392571896E-03 + 3.0230394303011401E-03 3.0498862420615014E-03 3.0769714732399099E-03 + 3.1042972411760052E-03 3.1318656820129706E-03 3.1596789508644991E-03 + 3.1877392219832874E-03 3.2160486889309912E-03 3.2446095647496983E-03 + 3.2734240821349499E-03 3.3024944936102503E-03 3.3318230717031805E-03 + 3.3614121091230251E-03 3.3912639189400198E-03 3.4213808347661650E-03 + 3.4517652109376418E-03 3.4824194226988768E-03 3.5133458663882044E-03 + 3.5445469596252096E-03 3.5760251414997178E-03 3.6077828727624555E-03 + 3.6398226360174367E-03 3.6721469359160086E-03 3.7047582993526757E-03 + 3.7376592756626207E-03 3.7708524368209916E-03 3.8043403776439597E-03 + 3.8381257159915932E-03 3.8722110929724596E-03 3.9065991731501142E-03 + 3.9412926447514119E-03 3.9762942198766195E-03 4.0116066347114527E-03 + 4.0472326497409611E-03 4.0831750499653510E-03 4.1194366451176561E-03 + 4.1560202698834045E-03 4.1929287841222362E-03 4.2301650730914245E-03 + 4.2677320476714473E-03 4.3056326445935645E-03 4.3438698266693426E-03 + 4.3824465830223031E-03 4.4213659293215685E-03 4.4606309080176499E-03 + 4.5002445885802215E-03 4.5402100677381148E-03 4.5805304697214043E-03 + 4.6212089465056021E-03 4.6622486780580914E-03 4.7036528725866887E-03 + 4.7454247667904808E-03 4.7875676261127965E-03 4.8300847449965012E-03 + 4.8729794471415577E-03 4.9162550857648028E-03 4.9599150438621028E-03 + 5.0039627344728400E-03 5.0484016009466693E-03 5.0932351172127245E-03 + 5.1384667880511829E-03 5.1841001493672647E-03 5.2301387684676034E-03 + 5.2765862443391355E-03 5.3234462079304783E-03 5.3707223224357045E-03 + 5.4184182835807530E-03 5.4665378199123442E-03 5.5150846930894105E-03 + 5.5640626981771860E-03 5.6134756639438675E-03 5.6633274531599524E-03 + 5.7136219629001523E-03 5.7643631248480640E-03 5.8155549056035545E-03 + 5.8672013069927861E-03 5.9193063663810809E-03 5.9718741569885275E-03 + 6.0249087882084332E-03 6.0784144059285060E-03 6.1323951928549791E-03 + 6.1868553688396314E-03 6.2417991912095856E-03 6.2972309551001656E-03 + 6.3531549937906806E-03 6.4095756790431150E-03 6.4664974214439204E-03 + 6.5239246707487876E-03 6.5818619162305459E-03 6.6403136870300259E-03 + 6.6992845525101598E-03 6.7587791226132177E-03 6.8188020482211047E-03 + 6.8793580215189805E-03 6.9404517763620903E-03 7.0020880886457575E-03 + 7.0642717766787764E-03 7.1270077015600525E-03 7.1903007675586626E-03 + 7.2541559224971550E-03 7.3185781581383792E-03 7.3835725105757489E-03 + 7.4491440606268442E-03 7.5152979342306570E-03 7.5820393028482695E-03 + 7.6493733838671777E-03 7.7173054410090737E-03 7.7858407847413670E-03 + 7.8549847726923586E-03 7.9247428100699905E-03 7.9951203500844177E-03 + 8.0661228943743526E-03 8.1377559934370600E-03 8.2100252470623143E-03 + 8.2829363047701270E-03 8.3564948662524351E-03 8.4307066818185925E-03 + 8.5055775528449229E-03 8.5811133322282757E-03 8.6573199248434901E-03 + 8.7342032880050376E-03 8.8117694319327141E-03 8.8900244202215276E-03 + 8.9689743703156126E-03 9.0486254539865110E-03 9.1289838978156814E-03 + 9.2100559836811452E-03 9.2918480492486192E-03 9.3743664884670050E-03 + 9.4576177520681124E-03 9.5416083480710095E-03 9.6263448422907408E-03 + 9.7118338588516612E-03 9.7980820807051731E-03 9.8850962501521901E-03 + 9.9728831693702714E-03 1.0061449700945255E-02 1.0150802768407789E-02 + 1.0240949356774611E-02 1.0331896513094489E-02 1.0423651346999178E-02 + 1.0516221031259177E-02 1.0609612802344504E-02 1.0703833960990297E-02 + 1.0798891872767589E-02 1.0894793968659154E-02 1.0991547745640292E-02 + 1.1089160767264978E-02 1.1187640664257079E-02 1.1286995135106965E-02 + 1.1387231946673191E-02 1.1488358934789725E-02 1.1590384004878565E-02 + 1.1693315132567597E-02 1.1797160364314153E-02 1.1901927818034076E-02 + 1.2007625683736202E-02 1.2114262224162693E-02 1.2221845775434906E-02 + 1.2330384747705148E-02 1.2439887625813995E-02 1.2550362969953644E-02 + 1.2661819416337152E-02 1.2774265677873433E-02 1.2887710544848429E-02 + 1.3002162885612354E-02 1.3117631647272820E-02 1.3234125856394349E-02 + 1.3351654619703971E-02 1.3470227124803212E-02 1.3589852640886184E-02 + 1.3710540519464250E-02 1.3832300195097140E-02 1.3955141186130336E-02 + 1.4079073095439248E-02 1.4204105611179853E-02 1.4330248507546141E-02 + 1.4457511645534058E-02 1.4585904973712443E-02 1.4715438529000808E-02 + 1.4846122437453813E-02 1.4977966915052921E-02 1.5110982268505104E-02 + 1.5245178896048379E-02 1.5380567288264792E-02 1.5517158028900432E-02 + 1.5654961795692923E-02 1.5793989361205948E-02 1.5934251593671494E-02 + 1.6075759457839504E-02 1.6218524015834870E-02 1.6362556428022326E-02 + 1.6507867953878808E-02 1.6654469952873768E-02 1.6802373885357012E-02 + 1.6951591313454674E-02 1.7102133901973144E-02 1.7254013419310793E-02 + 1.7407241738378005E-02 1.7561830837525428E-02 1.7717792801480173E-02 + 1.7875139822290647E-02 1.8033884200279567E-02 1.8194038345005655E-02 + 1.8355614776233532E-02 1.8518626124912542E-02 1.8683085134164220E-02 + 1.8849004660278307E-02 1.9016397673717836E-02 1.9185277260133176E-02 + 1.9355656621384807E-02 1.9527549076575442E-02 1.9700968063091198E-02 + 1.9875927137652148E-02 2.0052439977371914E-02 2.0230520380826910E-02 + 2.0410182269135189E-02 2.0591439687044424E-02 2.0774306804030029E-02 + 2.0958797915402727E-02 2.1144927443426206E-02 2.1332709938444366E-02 + 2.1522160080018841E-02 2.1713292678076659E-02 2.1906122674067798E-02 + 2.2100665142133269E-02 2.2296935290283669E-02 2.2494948461587765E-02 + 2.2694720135372118E-02 2.2896265928431015E-02 2.3099601596247497E-02 + 2.3304743034224733E-02 2.3511706278928766E-02 2.3720507509342258E-02 + 2.3931163048128992E-02 2.4143689362910000E-02 2.4358103067551019E-02 + 2.4574420923461009E-02 2.4792659840902585E-02 2.5012836880313881E-02 + 2.5234969253642398E-02 2.5459074325690244E-02 2.5685169615471730E-02 + 2.5913272797583025E-02 2.6143401703583556E-02 2.6375574323390164E-02 + 2.6609808806683316E-02 2.6846123464326122E-02 2.7084536769795466E-02 + 2.7325067360626294E-02 2.7567734039868692E-02 2.7812555777557511E-02 + 2.8059551712195447E-02 2.8308741152249323E-02 2.8560143577659170E-02 + 2.8813778641361275E-02 2.9069666170824363E-02 2.9327826169599835E-02 + 2.9588278818885164E-02 2.9851044479101672E-02 3.0116143691486370E-02 + 3.0383597179697359E-02 3.0653425851434091E-02 3.0925650800071876E-02 + 3.1200293306310568E-02 3.1477374839838312E-02 3.1756917061009804E-02 + 3.2038941822539795E-02 3.2323471171211010E-02 3.2610527349597823E-02 + 3.2900132797805175E-02 3.3192310155222469E-02 3.3487082262293570E-02 + 3.3784472162302209E-02 3.4084503103173611E-02 3.4387198539291466E-02 + 3.4692582133331616E-02 3.5000677758112053E-02 3.5311509498458751E-02 + 3.5625101653088638E-02 3.5941478736509297E-02 3.6260665480934949E-02 + 3.6582686838220135E-02 3.6907567981810115E-02 3.7235334308709067E-02 + 3.7566011441465014E-02 3.7899625230173033E-02 3.8236201754496255E-02 + 3.8575767325704183E-02 3.8918348488729770E-02 3.9263972024244455E-02 + 3.9612664950751900E-02 3.9964454526699736E-02 4.0319368252610628E-02 + 4.0677433873232326E-02 4.1038679379706108E-02 4.1403133011755133E-02 + 4.1770823259892322E-02 4.2141778867647021E-02 4.2516028833812329E-02 + 4.2893602414711893E-02 4.3274529126487181E-02 4.3658838747404526E-02 + 4.4046561320183100E-02 4.4437727154343756E-02 4.4832366828577920E-02 + 4.5230511193138291E-02 4.5632191372250698E-02 4.6037438766546743E-02 + 4.6446285055518788E-02 4.6858762199996282E-02 4.7274902444644593E-02 + 4.7694738320485118E-02 4.8118302647438708E-02 4.8545628536891414E-02 + 4.8976749394282496E-02 4.9411698921716166E-02 4.9850511120595985E-02 + 5.0293220294283236E-02 5.0739861050777976E-02 5.1190468305424779E-02 + 5.1645077283642343E-02 5.2103723523676773E-02 5.2566442879379838E-02 + 5.3033271523012217E-02 5.3504245948070489E-02 5.3979402972140468E-02 + 5.4458779739775046E-02 5.4942413725398327E-02 5.5430342736234581E-02 + 5.5922604915263983E-02 5.6419238744204743E-02 5.6920283046520644E-02 + 5.7425776990456423E-02 5.7935760092099879E-02 5.8450272218470427E-02 + 5.8969353590635987E-02 5.9493044786857061E-02 6.0021386745759180E-02 + 6.0554420769532699E-02 6.1092188527161737E-02 6.1634732057681954E-02 + 6.2182093773466202E-02 6.2734316463540496E-02 6.3291443296928734E-02 + 6.3853517826027800E-02 6.4420583990011535E-02 6.4992686118265919E-02 + 6.5569868933854844E-02 6.6152177557015468E-02 6.6739657508685879E-02 + 6.7332354714063847E-02 6.7930315506196298E-02 6.8533586629601836E-02 + 6.9142215243924582E-02 6.9756248927621292E-02 7.0375735681680082E-02 + 7.1000723933373047E-02 7.1631262540042484E-02 7.2267400792919392E-02 + 7.2909188420977114E-02 7.3556675594819210E-02 7.4209912930600697E-02 + 7.4868951493985356E-02 7.5533842804137469E-02 7.6204638837749791E-02 + 7.6881392033105844E-02 7.7564155294179662E-02 7.8252981994771875E-02 + 7.8947925982681272E-02 7.9649041583914795E-02 8.0356383606934090E-02 + 8.1070007346940712E-02 8.1789968590197742E-02 8.2516323618391341E-02 + 8.3249129213030779E-02 8.3988442659886434E-02 8.4734321753468442E-02 + 8.5486824801545083E-02 8.6246010629700068E-02 8.7011938585931606E-02 + 8.7784668545291655E-02 8.8564260914567039E-02 8.9350776637000834E-02 + 9.0144277197056893E-02 9.0944824625226683E-02 9.1752481502877681E-02 + 9.2567310967145919E-02 9.3389376715871525E-02 9.4218743012578751E-02 + 9.5055474691498623E-02 9.5899637162637802E-02 9.6751296416892438E-02 + 9.7610519031205711E-02 9.8477372173773128E-02 9.9351923609293527E-02 + 1.0023424170426559E-01 1.0112439543233299E-01 1.0202245437967576E-01 + 1.0292848875045095E-01 1.0384256937227961E-01 1.0476476770178397E-01 + 1.0569515583017432E-01 1.0663380648888320E-01 1.0758079305525173E-01 + 1.0853618955826635E-01 1.0950007068434472E-01 1.1047251178317499E-01 + 1.1145358887360561E-01 1.1244337864958899E-01 1.1344195848617560E-01 + 1.1444940644556308E-01 1.1546580128319950E-01 1.1649122245393854E-01 + 1.1752575011825157E-01 1.1856946514849362E-01 1.1962244913522635E-01 + 1.2068478439359485E-01 1.2175655396976330E-01 1.2283784164740739E-01 + 1.2392873195426288E-01 1.2502931016873378E-01 1.2613966232655988E-01 + 1.2725987522754070E-01 1.2839003644232214E-01 1.2953023431924141E-01 + 1.3068055799123471E-01 1.3184109738280347E-01 1.3301194321704476E-01 + 1.3419318702274416E-01 1.3538492114152939E-01 1.3658723873508974E-01 + 1.3780023379245940E-01 1.3902400113736363E-01 1.4025863643563216E-01 + 1.4150423620267752E-01 1.4276089781104065E-01 1.4402871949800150E-01 + 1.4530780037325927E-01 1.4659824042668090E-01 1.4790014053611603E-01 + 1.4921360247528398E-01 1.5053872892172929E-01 1.5187562346484929E-01 + 1.5322439061399051E-01 1.5458513580661928E-01 1.5595796541656495E-01 + 1.5734298676233380E-01 1.5874030811549930E-01 1.6015003870916689E-01 + 1.6157228874651150E-01 1.6300716940939344E-01 1.6445479286704948E-01 + 1.6591527228486228E-01 1.6738872183320563E-01 1.6887525669636994E-01 + 1.7037499308156787E-01 1.7188804822801651E-01 1.7341454041610332E-01 + 1.7495458897663346E-01 1.7650831430015654E-01 1.7807583784637884E-01 + 1.7965728215365789E-01 1.8125277084858291E-01 1.8286242865563693E-01 + 1.8448638140694815E-01 1.8612475605212755E-01 1.8777768066819106E-01 + 1.8944528446957268E-01 1.9112769781822542E-01 1.9282505223381322E-01 + 1.9453748040399027E-01 1.9626511619477457E-01 1.9800809466101388E-01 + 1.9976655205694108E-01 2.0154062584682689E-01 2.0333045471572683E-01 + 2.0513617858032046E-01 2.0695793859985082E-01 2.0879587718715817E-01 + 2.1065013801981472E-01 2.1252086605135392E-01 2.1440820752260320E-01 + 2.1631230997311710E-01 2.1823332225270861E-01 2.2017139453308696E-01 + 2.2212667831959607E-01 2.2409932646305980E-01 2.2608949317172852E-01 + 2.2809733402333518E-01 2.3012300597725852E-01 2.3216666738679070E-01 + 2.3422847801151753E-01 2.3630859902980852E-01 2.3840719305141436E-01 + 2.4052442413018019E-01 2.4266045777686948E-01 2.4481546097210419E-01 + 2.4698960217941560E-01 2.4918305135841493E-01 2.5139597997808105E-01 + 2.5362856103016196E-01 2.5588096904269964E-01 2.5815338009367444E-01 + 2.6044597182476753E-01 2.6275892345524893E-01 2.6509241579598725E-01 + 2.6744663126358575E-01 2.6982175389463980E-01 2.7221796936012510E-01 + 2.7463546497991320E-01 2.7707442973741270E-01 2.7953505429434400E-01 + 2.8201753100564325E-01 2.8452205393450142E-01 2.8704881886753131E-01 + 2.8959802333007528E-01 2.9216986660164701E-01 2.9476454973150745E-01 + 2.9738227555438246E-01 3.0002324870632113E-01 3.0268767564068932E-01 + 3.0537576464431121E-01 3.0808772585375027E-01 3.1082377127173888E-01 + 3.1358411478374781E-01 3.1636897217470794E-01 3.1917856114588067E-01 + 3.2201310133187283E-01 3.2487281431780796E-01 3.2775792365665013E-01 + 3.3066865488667635E-01 3.3360523554910954E-01 3.3656789520590563E-01 + 3.3955686545770114E-01 3.4257237996191453E-01 3.4561467445101407E-01 + 3.4868398675094714E-01 3.5178055679972869E-01 3.5490462666619998E-01 + 3.5805644056895114E-01 3.6123624489541445E-01 3.6444428822112185E-01 + 3.6768082132913882E-01 3.7094609722967059E-01 3.7424037117983694E-01 + 3.7756390070362855E-01 3.8091694561204031E-01 3.8429976802337767E-01 + 3.8771263238375009E-01 3.9115580548774204E-01 3.9462955649927178E-01 + 3.9813415697262933E-01 4.0166988087370614E-01 4.0523700460141426E-01 + 4.0883580700928901E-01 4.1246656942729010E-01 4.1612957568379616E-01 + 4.1982511212778834E-01 4.2355346765123769E-01 4.2731493371168783E-01 + 4.3110980435504143E-01 4.3493837623854292E-01 4.3880094865397085E-01 + 4.4269782355103732E-01 4.4662930556098701E-01 4.5059570202041510E-01 + 4.5459732299529065E-01 4.5863448130519879E-01 4.6270749254778998E-01 + 4.6681667512345376E-01 4.7096235026021177E-01 4.7514484203882384E-01 + 4.7936447741812521E-01 4.8362158626058838E-01 4.8791650135810449E-01 + 4.9224955845800206E-01 4.9662109628929169E-01 5.0103145658914927E-01 + 5.0548098412962539E-01 5.0997002674459957E-01 5.1449893535697466E-01 + 5.1906806400610395E-01 5.2367776987547143E-01 5.2832841332061198E-01 + 5.3302035789728508E-01 5.3775397038988992E-01 5.4252962084014056E-01 + 5.4734768257599631E-01 5.5220853224084032E-01 5.5711254982292557E-01 + 5.6206011868508310E-01 5.6705162559468469E-01 5.7208746075388173E-01 + 5.7716801783010585E-01 5.8229369398684849E-01 5.8746488991470147E-01 + 5.9268200986268338E-01 5.9794546166984452E-01 6.0325565679714233E-01 + 6.0861301035961024E-01 6.1401794115881092E-01 6.1947087171557025E-01 + 6.2497222830300980E-01 6.3052244097986909E-01 6.3612194362412855E-01 + 6.4177117396692074E-01 6.4747057362675176E-01 6.5322058814402872E-01 + 6.5902166701588138E-01 6.6487426373130498E-01 6.7077883580661002E-01 + 6.7673584482119042E-01 6.8274575645360203E-01 6.8880904051796765E-01 + 6.9492617100070864E-01 7.0109762609759041E-01 7.0732388825110848E-01 + + + + + 7.1911386487242952E+06 5.6073216474102540E+06 4.7957632985305516E+06 + 4.3745236202302966E+06 4.0968951792626525E+06 3.8514030909888404E+06 + 3.6912098167275018E+06 3.5629144341613157E+06 3.4536449936895692E+06 + 3.3598234575852226E+06 3.2776530461847000E+06 3.2046700984906857E+06 + 3.1391320708649065E+06 3.0797264339815537E+06 3.0254530534897456E+06 + 2.9755327334215874E+06 2.9293470428487184E+06 2.8863975174940573E+06 + 2.8462768691306333E+06 2.8086482878412595E+06 2.7732302631882993E+06 + 2.7397852536591971E+06 2.7081110958299483E+06 2.6780343986472841E+06 + 2.6494053992921389E+06 2.6220939108721567E+06 2.5959860965409172E+06 + 2.5709818767222338E+06 2.5469928267162433E+06 2.5239404580107448E+06 + 2.5017548026521034E+06 2.4803732390646818E+06 2.4597395117889810E+06 + 2.4398029081377289E+06 2.4205175627215328E+06 2.4018418668582882E+06 + 2.3837379645427931E+06 2.3661713202679669E+06 2.3491103468135935E+06 + 2.3325260833413987E+06 2.3163919158967505E+06 2.3006833338219468E+06 + 2.2853777167133428E+06 2.2704541474640886E+06 2.2558932476725285E+06 + 2.2416770322983456E+06 2.2277887809421364E+06 2.2142129235306173E+06 + 2.2009349385259380E+06 2.1879412620571284E+06 2.1752192066046782E+06 + 2.1627568880646499E+06 2.1505431601828397E+06 2.1385675554880076E+06 + 2.1268202319704741E+06 2.1152919248520508E+06 2.1039739028780935E+06 + 2.0928579286351139E+06 2.0819362224595442E+06 2.0712014295568122E+06 + 2.0606465899959076E+06 2.0502651112845712E+06 2.0400507432647520E+06 + 2.0299975550979669E+06 2.0200999141363774E+06 2.0103524664981607E+06 + 2.0007501191857534E+06 1.9912880236030046E+06 1.9819615603426360E+06 + 1.9727663251289653E+06 1.9636981158127633E+06 1.9547529203256189E+06 + 1.9459269055105797E+06 1.9372164067540746E+06 1.9286179183514703E+06 + 1.9201280845451802E+06 1.9117436911800508E+06 1.9034616579259846E+06 + 1.8952790310223587E+06 1.8871929765030644E+06 1.8792007738645992E+06 + 1.8712998101431211E+06 1.8634875743693311E+06 1.8557616523727428E+06 + 1.8481197219094557E+06 1.8405595480896239E+06 1.8330789790829320E+06 + 1.8256759420821057E+06 1.8183484395062206E+06 1.8110945454269585E+06 + 1.8039124022024260E+06 1.7968002173042481E+06 1.7897562603249121E+06 + 1.7827788601532383E+06 1.7758664023068531E+06 1.7690173264113637E+06 + 1.7622301238167128E+06 1.7555033353419174E+06 1.7488355491400154E+06 + 1.7422253986756846E+06 1.7356715608084910E+06 1.7291727539752806E+06 + 1.7227277364656604E+06 1.7163353047849303E+06 1.7099942920992505E+06 + 1.7037035667581714E+06 1.6974620308899789E+06 1.6912686190656163E+06 + 1.6851222970272589E+06 1.6790220604778265E+06 1.6729669339280054E+06 + 1.6669559695975457E+06 1.6609882463678524E+06 1.6550628687829992E+06 + 1.6491789660965647E+06 1.6433356913618085E+06 1.6375322205628518E+06 + 1.6317677517846895E+06 1.6260415044200011E+06 1.6203527184108254E+06 + 1.6147006535232912E+06 1.6090845886537279E+06 1.6035038211645326E+06 + 1.5979576662483010E+06 1.5924454563188180E+06 1.5869665404275479E+06 + 1.5815202837043887E+06 1.5761060668214958E+06 1.5707232854790438E+06 + 1.5653713499118984E+06 1.5600496844161612E+06 1.5547577268946755E+06 + 1.5494949284205933E+06 1.5442607528181428E+06 1.5390546762598169E+06 + 1.5338761868792246E+06 1.5287247843988813E+06 1.5235999797722623E+06 + 1.5185012948394874E+06 1.5134282619960064E+06 1.5083804238737302E+06 + 1.5033573330340486E+06 1.4983585516721995E+06 1.4933836513325383E+06 + 1.4884322126341776E+06 1.4835038250066061E+06 1.4785980864348356E+06 + 1.4737146032136679E+06 1.4688529897107177E+06 1.4640128681378087E+06 + 1.4591938683304084E+06 1.4543956275347627E+06 1.4496177902024174E+06 + 1.4448600077918218E+06 1.4401219385767514E+06 1.4354032474612305E+06 + 1.4307036058007525E+06 1.4260226912295010E+06 1.4213601874933585E+06 + 1.4167157842884772E+06 1.4120891771051933E+06 1.4074800670770616E+06 + 1.4028881608348575E+06 1.3983131703653033E+06 1.3937548128743789E+06 + 1.3892128106550341E+06 1.3846868909591329E+06 1.3801767858734766E+06 + 1.3756822321997611E+06 1.3712029713383040E+06 1.3667387491754417E+06 + 1.3622893159744262E+06 1.3578544262697068E+06 1.3534338387645020E+06 + 1.3490273162314955E+06 1.3446346254166041E+06 1.3402555369456515E+06 + 1.3358898252338979E+06 1.3315372683982949E+06 1.3271976481723830E+06 + 1.3228707498237405E+06 1.3185563620739018E+06 1.3142542770206570E+06 + 1.3099642900626489E+06 1.3056861998262035E+06 1.3014198080943066E+06 + 1.2971649197376759E+06 1.2929213426478319E+06 1.2886888876721305E+06 + 1.2844673685506792E+06 1.2802566018550792E+06 1.2760564069289367E+06 + 1.2718666058300955E+06 1.2676870232745176E+06 1.2635174865817826E+06 + 1.2593578256221421E+06 1.2552078727650880E+06 1.2510674628293859E+06 + 1.2469364330345278E+06 1.2428146229535663E+06 1.2387018744672898E+06 + 1.2345980317196916E+06 1.2305029410746982E+06 1.2264164510741306E+06 + 1.2223384123968449E+06 1.2182686778190339E+06 1.2142071021756458E+06 + 1.2101535423228962E+06 1.2061078571018430E+06 1.2020699073029798E+06 + 1.1980395556318474E+06 1.1940166666756056E+06 1.1900011068705621E+06 + 1.1859927444706182E+06 1.1819914495166193E+06 1.1779970938065678E+06 + 1.1740095508667033E+06 1.1700286959233934E+06 1.1660544058758465E+06 + 1.1620865592696087E+06 1.1581250362708161E+06 1.1541697186412106E+06 + 1.1502204897138744E+06 1.1462772343696770E+06 1.1423398390144166E+06 + 1.1384081915566376E+06 1.1344821813861071E+06 1.1305616993529357E+06 + 1.1266466377473276E+06 1.1227368902799457E+06 1.1188323520628747E+06 + 1.1149329195911703E+06 1.1110384907249832E+06 1.1071489646722358E+06 + 1.1032642419718592E+06 1.0993842244775516E+06 1.0955088153420652E+06 + 1.0916379190020061E+06 1.0877714411631275E+06 1.0839092887861305E+06 + 1.0800513700729201E+06 1.0761975944533485E+06 1.0723478725724111E+06 + 1.0685021162778975E+06 1.0646602386084714E+06 1.0608221537821989E+06 + 1.0569877771854929E+06 1.0531570253624651E+06 1.0493298160047026E+06 + 1.0455060679414221E+06 1.0416857011300345E+06 1.0378686366470843E+06 + 1.0340547966795642E+06 1.0302441045166070E+06 1.0264364845415322E+06 + 1.0226318622242513E+06 1.0188301641140305E+06 1.0150313178325858E+06 + 1.0112352520675199E+06 1.0074418965660949E+06 1.0036511821293229E+06 + 9.9986304060638521E+05 9.9607740488935960E+05 9.9229420890825696E+05 + 9.8851338762637100E+05 9.8473487703591213E+05 9.8095861415394826E+05 + 9.7718453701863054E+05 9.7341258468570095E+05 9.6964269722528290E+05 + 9.6587481571894884E+05 9.6210888225704920E+05 9.5834483993632440E+05 + 9.5458263285776367E+05 9.5082220612473204E+05 9.4706350584134646E+05 + 9.4330647911110637E+05 9.3955107403576409E+05 9.3579723971444729E+05 + 9.3204492624301394E+05 9.2829408471364062E+05 9.2454466721465008E+05 + 9.2079662683055899E+05 9.1704991764235601E+05 9.1330449472799734E+05 + 9.0956031416312163E+05 9.0581733302197861E+05 9.0207550937856582E+05 + 8.9833480230798200E+05 8.9459517188797204E+05 8.9085657920068770E+05 + 8.8711898633463110E+05 8.8338235638680449E+05 8.7964665346504620E+05 + 8.7591184269055992E+05 8.7217789020062238E+05 8.6844476315148000E+05 + 8.6471242972142342E+05 8.6098085911403329E+05 8.5725002156160749E+05 + 8.5351988832875341E+05 8.4979043171614700E+05 8.4606162506445975E+05 + 8.4233344275844353E+05 8.3860586023117206E+05 8.3487885396844370E+05 + 8.3115240151333029E+05 8.2742648147087684E+05 8.2370107351294765E+05 + 8.1997615838321089E+05 8.1625171790227154E+05 8.1252773497293214E+05 + 8.0880419358558988E+05 8.0508107882376551E+05 8.0135837686975498E+05 + 7.9763607501040655E+05 7.9391416164302302E+05 7.9019262628137169E+05 + 7.8647145956181292E+05 7.8275065324954293E+05 7.7903020024493220E+05 + 7.7531009458997939E+05 7.7159033147485589E+05 7.6787090724455344E+05 + 7.6415181940561789E+05 7.6043306663297513E+05 7.5671464877684345E+05 + 7.5299656686972594E+05 7.4927882313347724E+05 7.4556142098645086E+05 + 7.4184436505070888E+05 7.3812766115930188E+05 7.3441131636360870E+05 + 7.3069533894073719E+05 7.2697973840096965E+05 7.2326452549526666E+05 + 7.1954971222281060E+05 7.1583531183858984E+05 7.1212133886101935E+05 + 7.0840780907958990E+05 7.0469473956254951E+05 7.0098214866459894E+05 + 6.9727005603460886E+05 6.9355848262334906E+05 6.8984745069122233E+05 + 6.8613698381600017E+05 6.8242710690055753E+05 6.7871784618059488E+05 + 6.7500922923235386E+05 6.7130128498030303E+05 6.6759404370480822E+05 + 6.6388753704976675E+05 6.6018179803020624E+05 6.5647686103984097E+05 + 6.5277276185858564E+05 6.4906953766000574E+05 6.4536722701871407E+05 + 6.4166586991770123E+05 6.3796550775558688E+05 6.3426618335379974E+05 + 6.3056794096366747E+05 6.2687082627341442E+05 6.2317488641506084E+05 + 6.1948016997121484E+05 6.1578672698175465E+05 6.1209460895038699E+05 + 6.0840386885107949E+05 6.0471456113435898E+05 6.0102674173346907E+05 + 5.9734046807037282E+05 5.9365579906160629E+05 5.8997279512396024E+05 + 5.8629151817999373E+05 5.8261203166336345E+05 5.7893440052396781E+05 + 5.7525869123288919E+05 5.7158497178713861E+05 5.6791331171417958E+05 + 5.6424378207623179E+05 5.6057645547434769E+05 5.5691140605224238E+05 + 5.5324870949988486E+05 5.4958844305682287E+05 5.4593068551524833E+05 + 5.4227551722278225E+05 5.3862302008497901E+05 5.3497327756753343E+05 + 5.3132637469819072E+05 5.2768239806833339E+05 5.2404143583425583E+05 + 5.2040357771810173E+05 5.1676891500845802E+05 5.1313754056060308E+05 + 5.0950954879638617E+05 5.0588503570374177E+05 5.0226409883581597E+05 + 4.9864683730970480E+05 4.9503335180478852E+05 4.9142374456065625E+05 + 4.8781811937460222E+05 4.8421658159869304E+05 4.8061923813638987E+05 + 4.7702619743871543E+05 4.7343756949995708E+05 4.6985346585289360E+05 + 4.6627399956353585E+05 4.6269928522537142E+05 4.5912943895309721E+05 + 4.5556457837584219E+05 4.5200482262985094E+05 4.4845029235063732E+05 + 4.4490110966457688E+05 4.4135739817994845E+05 4.3781928297739499E+05 + 4.3428689059980732E+05 4.3076034904161305E+05 4.2723978773745877E+05 + 4.2372533755028155E+05 4.2021713075875089E+05 4.1671530104408070E+05 + 4.1321998347618832E+05 4.0973131449920358E+05 4.0624943191630725E+05 + 4.0277447487389238E+05 3.9930658384504099E+05 3.9584590061230317E+05 + 3.9239256824976997E+05 3.8894673110442766E+05 3.8550853477679077E+05 + 3.8207812610079354E+05 3.7865565312294452E+05 3.7524126508072147E+05 + 3.7183511238020880E+05 3.6843734657296049E+05 3.6504812033208733E+05 + 3.6166758742755337E+05 3.5829590270068101E+05 3.5493322203784989E+05 + 3.5157970234338788E+05 3.4823550151164364E+05 3.4490077839823387E+05 + 3.4157569279046368E+05 3.3826040537690569E+05 3.3495507771613990E+05 + 3.3165987220464379E+05 3.2837495204382803E+05 3.2510048120621819E+05 + 3.2183662440077041E+05 3.1858354703732161E+05 3.1534141519017221E+05 + 3.1211039556079387E+05 3.0889065543966176E+05 3.0568236266721290E+05 + 3.0248568559392059E+05 2.9930079303949390E+05 2.9612785425119143E+05 + 2.9296703886126104E+05 2.8981851684349071E+05 2.8668245846889162E+05 + 2.8355903426049364E+05 2.8044841494727158E+05 2.7735077141720091E+05 + 2.7426627466944029E+05 2.7119509576565528E+05 2.6813740578047850E+05 + 2.6509337575112039E+05 2.6206317662613268E+05 2.5904697921332833E+05 + 2.5604495412687442E+05 2.5305727173355833E+05 2.5008410209824142E+05 + 2.4712561492851039E+05 2.4418197951853104E+05 2.4125336469212861E+05 + 2.3833993874509231E+05 2.3544186938672964E+05 2.3255932368068129E+05 + 2.2969246798500570E+05 2.2684146789156212E+05 2.2400648816469399E+05 + 2.2118769267924735E+05 2.1838524435792590E+05 2.1559930510801717E+05 + 2.1283003575750330E+05 2.1007759599057818E+05 2.0734214428259776E+05 + 2.0462383783448240E+05 2.0192283250660056E+05 1.9923928275215803E+05 + 1.9657334155011579E+05 1.9392516033767391E+05 1.9129488894233792E+05 + 1.8868267551360826E+05 1.8608866645431877E+05 1.8351300635165503E+05 + 1.8095583790789117E+05 1.7841730187087221E+05 1.7589753696428199E+05 + 1.7339667981773359E+05 1.7091486489671294E+05 1.6845222443242322E+05 + 1.6600888835155996E+05 1.6358498420606682E+05 1.6118063710290266E+05 + 1.5879596963387224E+05 1.5643110180555921E+05 1.5408615096940249E+05 + 1.5176123175197130E+05 1.4945645598547216E+05 1.4717193263854680E+05 + 1.4490776774740318E+05 1.4266406434732716E+05 1.4044092240463168E+05 + 1.3823843874908524E+05 1.3605670700688029E+05 1.3389581753418819E+05 + 1.3175585735135415E+05 1.2963691007779083E+05 1.2753905586761932E+05 + 1.2546237134611768E+05 1.2340692954703169E+05 1.2137279985080175E+05 + 1.1936004792376928E+05 1.1736873565841356E+05 1.1539892111468334E+05 + 1.1345065846247815E+05 1.1152399792533979E+05 1.0961898572541476E+05 + 1.0773566402974445E+05 1.0587407089794779E+05 1.0403424023135132E+05 + 1.0221620172363201E+05 1.0041998081303100E+05 9.8645598636198090E+04 + 9.6893071983730581E+04 9.5162413257462802E+04 9.3453630429571203E+04 + 9.1766727003551554E+04 9.0101701977128570E+04 8.8458549807160452E+04 + 8.6837260376591963E+04 8.5237818963519385E+04 8.3660206212423393E+04 + 8.2104398107624700E+04 8.0570365949024199E+04 7.9058076330176962E+04 + 7.7567491118759528E+04 7.6098567439482955E+04 7.4651257659501265E+04 + 7.3225509376372080E+04 7.1821265408614156E+04 7.0438463788914669E+04 + 6.9077037760031206E+04 6.7736915773435350E+04 6.6418021490742496E+04 + 6.5120273787968261E+04 6.3843586762655999E+04 6.2587869743909825E+04 + 6.1353027305373937E+04 6.0138959281190801E+04 5.8945560784971080E+04 + 5.7772722231807173E+04 5.6620329363356002E+04 5.5488263276019177E+04 + 5.4376400452242597E+04 5.3284612794954912E+04 5.2212767665165433E+04 + 5.1160727922733488E+04 5.0128351970323929E+04 4.9115493800557109E+04 + 4.8122003046358841E+04 4.7147725034515322E+04 4.6192500842431306E+04 + 4.5256167358089449E+04 4.4338557343204331E+04 4.3439499499559977E+04 + 4.2558818538519605E+04 4.1696335253688812E+04 4.0851866596713662E+04 + 4.0025225756188011E+04 3.9216222239643917E+04 3.8424661958593344E+04 + 3.7650347316585641E+04 3.6893077300243225E+04 3.6152647573231698E+04 + 3.5428850573119169E+04 3.4721475611074304E+04 3.4030308974348249E+04 + 3.3355134031484631E+04 3.2695731340193906E+04 3.2051878757828206E+04 + 3.1423351554386987E+04 3.0809922527979728E+04 3.0211362122670791E+04 + 2.9627438548623923E+04 2.9057917904463869E+04 2.8502564301767005E+04 + 2.7961139991589011E+04 2.7433405492936094E+04 2.6919119723080676E+04 + 2.6418040129620425E+04 2.5929922824175632E+04 2.5454522717617459E+04 + 2.4991593656715711E+04 2.4540888562091743E+04 2.4102159567360748E+04 + 2.3675158159342376E+04 2.3259635319218440E+04 2.2855341664512373E+04 + 2.2462027591762806E+04 2.2079443419762545E+04 2.1707339533229828E+04 + 2.1345466526779051E+04 2.0993575349054710E+04 2.0651417446889165E+04 + 2.0318744909351171E+04 1.9995310611533951E+04 1.9680868357949043E+04 + 1.9375173025379063E+04 1.9077980705044360E+04 1.8789048843939185E+04 + 1.8508136385189388E+04 1.8235003907285671E+04 1.7969413762044147E+04 + 1.7711130211145988E+04 1.7459919561108989E+04 1.7215550296541711E+04 + 1.6977793211533863E+04 1.6746421539034192E+04 1.6521211078070308E+04 + 1.6301940318664379E+04 1.6088390564299458E+04 1.5880346051794248E+04 + 1.5677594068443450E+04 1.5479925066284435E+04 1.5287132773352167E+04 + 1.5099014301786263E+04 1.4915370252657820E+04 1.4736004817384572E+04 + 1.4560725875607663E+04 1.4389345089405349E+04 1.4221677993722520E+04 + 1.4057544082899411E+04 1.3896766893185317E+04 1.3739174081128809E+04 + 1.3584597497739232E+04 1.3432873258319018E+04 1.3283841807871946E+04 + 1.3137347981996330E+04 1.2993241063178662E+04 1.2851374832407686E+04 + 1.2711607616035539E+04 1.2573802327818083E+04 1.2437826506072512E+04 + 1.2303552345897553E+04 1.2170856726406946E+04 1.2039621232934658E+04 + 1.1909732174176615E+04 1.1781080594240291E+04 1.1653562279581882E+04 + 1.1527077760816193E+04 1.1401532309393342E+04 1.1276835929142551E+04 + 1.1152903342690839E+04 1.1029653972772650E+04 1.0907011918452523E+04 + 1.0784905926291689E+04 1.0663269356496250E+04 1.0542040144091738E+04 + 1.0421160755177505E+04 1.0300578138320185E+04 1.0180243671154391E+04 + 1.0060113102265144E+04 9.9401464884339821E+03 9.8203081273385142E+03 + 9.7005664858012351E+03 9.5808941236917581E+03 9.4612676135920756E+03 + 9.3416674563427277E+03 9.2220779925933202E+03 9.1024873104877406E+03 + 8.9828871496211250E+03 8.8632728014109780E+03 8.7436430060317653E+03 + 8.6239998460675160E+03 8.5043486370423634E+03 8.3846978149952556E+03 + 8.2650588212688308E+03 8.1454459846885820E+03 8.0258764013122400E+03 + 7.9063698119337223E+03 7.7869484775305782E+03 7.6676370528467705E+03 + 7.5484624583069608E+03 7.4294537504609589E+03 7.3106419911599951E+03 + 7.1920601156693519E+03 7.0737427999233296E+03 6.9557263271311622E+03 + 6.8380484539431718E+03 6.7207482763882581E+03 6.6038660957941738E+03 + 6.4874432849023751E+03 6.3715221543897078E+03 6.2561458200081979E+03 + 6.1413580705540580E+03 6.0272032368755727E+03 5.9137260621279629E+03 + 5.8009715734818947E+03 5.6889849554893135E+03 5.5778114253083786E+03 + 5.4674961099856719E+03 5.3580839259905570E+03 5.2496194611930314E+03 + 5.1421468594716607E+03 5.0357097081342299E+03 4.9303509283282801E+03 + 4.8261126686136067E+03 4.7230362018631649E+03 4.6211618256525262E+03 + 4.5205287662919327E+03 4.4211750866480188E+03 4.3231375978951974E+03 + 4.2264517753295513E+03 4.1311516783698635E+03 4.0372698748629764E+03 + 3.9448373698017303E+03 3.8538835385556245E+03 3.7644360647051567E+03 + 3.6765208825617051E+03 3.5901621244455969E+03 3.5053820727851476E+03 + 3.4222011170899236E+03 3.3406377158413088E+03 3.2607083633332491E+03 + 3.1824275614860398E+03 3.1058077966451892E+03 3.0308595213672043E+03 + 2.9575911411833549E+03 2.8860090063218063E+03 2.8161174083580086E+03 + 2.7479185817523007E+03 2.6814127102233074E+03 2.6165979378949446E+03 + 2.5534703851444342E+03 2.4920241690685020E+03 2.4322514284745153E+03 + 2.3741423532936542E+03 2.3176852183031638E+03 2.2628664210355319E+03 + 2.2096705237431543E+03 2.1580802992781882E+03 2.1080767807390584E+03 + 2.0596393147267863E+03 2.0127456180469576E+03 1.9673718376858692E+03 + 1.9234926138827232E+03 1.8810811461137600E+03 1.8401092617983159E+03 + 1.8005474875319528E+03 1.7623651226470333E+03 1.7255303148971279E+03 + 1.6900101380581766E+03 1.6557706712362512E+03 1.6227770796689933E+03 + 1.5909936968076452E+03 1.5603841074621814E+03 1.5309112317930042E+03 + 1.5025374099324513E+03 1.4752244870187817E+03 1.4489338984259009E+03 + 1.4236267549731690E+03 1.3992639279009522E+03 1.3758061333991900E+03 + 1.3532140164784316E+03 1.3314482339747765E+03 1.3104695364830957E+03 + 1.2902388490149733E+03 1.2707173501809114E+03 1.2518665496996691E+03 + 1.2336483640406732E+03 1.2160251900095066E+03 1.1989599760909757E+03 + 1.1824162913696230E+03 1.1663583918541119E+03 1.1507512840394825E+03 + 1.1355607855504472E+03 1.1207535827192435E+03 1.1062972849633140E+03 + 1.0921604758410076E+03 1.0783127606772002E+03 1.0647248106651602E+03 + 1.0513684033655475E+03 1.0382164595379650E+03 1.0252430762547665E+03 + 1.0124235562603540E+03 9.9973443355230393E+02 9.8715349517276798E+02 + 9.7465979921020903E+02 9.6223368902232812E+02 9.4985680370132081E+02 + 9.3751208481253173E+02 9.2518377944701820E+02 9.1285743963793186E+02 + 9.0051991819979162E+02 8.8815936105880394E+02 8.7576519615154893E+02 + 8.6332811897825218E+02 8.5084007490592160E+02 8.3829423832537680E+02 + 8.2568498877484933E+02 8.1300788415124521E+02 8.0025963113814009E+02 + 7.8743805298725897E+02 7.7454205479730115E+02 7.6157158644055323E+02 + 7.4852760329376122E+02 7.3541202493500225E+02 7.2222769197301147E+02 + 7.0897832117929863E+02 6.9566845909666768E+02 6.8230343430021549E+02 + 6.6888930848863254E+02 6.5543282658475812E+02 6.4194136602459821E+02 + 6.2842288541375785E+02 6.1488587272918608E+02 6.0133929324249414E+02 + 5.8779253733885730E+02 5.7425536840260781E+02 5.6073787093723035E+02 + 5.4725039908345946E+02 5.3380352569469221E+02 5.2040799212398213E+02 + 5.0707465887138994E+02 4.9381445723466982E+02 4.8063834209996884E+02 + 4.6755724600262312E+02 4.5458203458119937E+02 4.4172346354064899E+02 + 4.2899213723297191E+02 4.1639846895601505E+02 4.0395264306307791E+02 + 3.9166457896791491E+02 3.7954389712141455E+02 3.6759988702792799E+02 + 3.5584147736073083E+02 3.4427720822765298E+02 3.3291520562938297E+02 + 3.2176315814446269E+02 3.1082829586654611E+02 3.0011737161106925E+02 + 2.8963664440020040E+02 2.7939186522671832E+02 2.6938826508939809E+02 + 2.5963054528458514E+02 2.5012286993086133E+02 2.4086886069618211E+02 + 2.3187159368949179E+02 2.2313359847170142E+02 2.1465685913404562E+02 + 2.0644281738517435E+02 1.9849237758200712E+02 1.9080591363328710E+02 + 1.8338327769901159E+02 1.7622381060347740E+02 1.6932635387456548E+02 + 1.6268926331716054E+02 1.5631042402423518E+02 1.5018726672519813E+02 + 1.4431678536760026E+02 1.3869555582527812E+02 1.3331975562352378E+02 + 1.2818518456993587E+02 1.2328728617818045E+02 1.1862116977219057E+02 + 1.1418163315573766E+02 1.0996318573742626E+02 1.0596007199925674E+02 + 1.0216629520120341E+02 9.8575641217434168E+01 9.5181702404160873E+01 + 9.1977901404300894E+01 8.8957514800040485E+01 8.6113696530643040E+01 + 8.3439501000633030E+01 8.0927905811726973E+01 7.8571834055215717E+01 + 7.6364176115176789E+01 7.4297810937365085E+01 7.2365626726618345E+01 + 7.0560541041817572E+01 6.8875520261708502E+01 6.7303598396122482E+01 + 6.5837895214308986E+01 6.4471633654516594E+01 6.3198156466927770E+01 + 6.2010942027109003E+01 6.0903619242263517E+01 5.9869981461652472E+01 + 5.8903999299366106E+01 5.7999832284690754E+01 5.7151839272818407E+01 + 5.6354587574292410E+01 5.5602860791193173E+01 5.4891665376834837E+01 + 5.4216235959636371E+01 5.3572039488465215E+01 5.2954778265707255E+01 + 5.2360391936704481E+01 5.1785058501990875E+01 5.1225194414031762E+01 + 5.0677453814696612E+01 5.0138726964610704E+01 4.9606137911436925E+01 + 4.9077041441206156E+01 4.8549019354910818E+01 4.8019876111500245E+01 + 4.7487633877898908E+01 4.6950527026537493E+01 4.6406996120975784E+01 + 4.5855681430421299E+01 4.5295416014266650E+01 4.4725218418133686E+01 + 4.4144285023294458E+01 4.3551982091715267E+01 4.2947837549279015E+01 + 4.2331532549950040E+01 4.1702892863685925E+01 4.1061880130745401E+01 + 4.0408583024635725E+01 3.9743208365263122E+01 3.9066072222895556E+01 + 3.8377591052299962E+01 3.7678272894907799E+01 3.6968708685098008E+01 + 3.6249563694712002E+01 3.5521569147753240E+01 3.4785514034908779E+01 + 3.4042237155110151E+01 3.3292619408847408E+01 3.2537576365396340E+01 + 3.1778051123554363E+01 3.1015007482916747E+01 3.0249423440195393E+01 + 2.9482285022597839E+01 2.8714580467870483E+01 2.7947294758275373E+01 + 2.7181404513522875E+01 2.6417873245545536E+01 2.5657646975966095E+01 + 2.4901650215196785E+01 2.4150782300316898E+01 2.3405914087206291E+01 + 2.2667884990874803E+01 2.1937500366514595E+01 2.1215529222523887E+01 + 2.0502702255598649E+01 1.9799710196962511E+01 1.9107202457909271E+01 + 1.8425786062054151E+01 1.7756024851035182E+01 1.7098438949861666E+01 + 1.6453504477677363E+01 1.5821653489380036E+01 1.5203274133311961E+01 + 1.4598711010107168E+01 1.4008265717736643E+01 1.3432197567835598E+01 + 1.2870724458512019E+01 1.2324023889025108E+01 1.1792234101976433E+01 + 1.1275455338963877E+01 1.0773751196018942E+01 1.0287150065544974E+01 + 9.8156466519542729E+00 9.3592035486625349E+00 8.9177528646389135E+00 + 8.4911978892489763E+00 8.0794147847035092E+00 7.6822542961271614E+00 + 7.2995434691680288E+00 6.9310873674326352E+00 6.5766707803060207E+00 + 6.2360599141069812E+00 5.9090040594403623E+00 5.5952372283489531E+00 + 5.2944797554827172E+00 5.0064398581450904E+00 4.7308151504304732E+00 + 4.4672941078504564E+00 4.2155574785891030E+00 3.9752796386789679E+00 + 3.7461298886586052E+00 3.5277736897970127E+00 3.3198738384278608E+00 + 3.1220915773621503E+00 2.9340876437404635E+00 2.7555232530456966E+00 + 2.5860610193226372E+00 2.4253658119441877E+00 2.2731055495260843E+00 + 2.1289519318245302E+00 1.9925811106586448E+00 1.8636743010843204E+00 + 1.7419183342114526E+00 1.6270061532072178E+00 1.5186372541665103E+00 + 1.4165180736594369E+00 1.3203623248872318E+00 1.2298912844922427E+00 + 1.1448340321749204E+00 1.0649276453693739E+00 9.8991735131765657E-01 + 9.1955663895846740E-01 8.5360733310617209E-01 7.9183963343826314E-01 + 7.3403212083191993E-01 6.7997173359178564E-01 6.2945371609104428E-01 + 5.8228154230730100E-01 5.3826681667468890E-01 4.9722915459637429E-01 + 4.5899604487001044E-01 4.2340269617542942E-01 3.9029186966222323E-01 + 3.5951369955763757E-01 3.3092550359517747E-01 3.0439158494374252E-01 + 2.7978302719779641E-01 2.5697748387267916E-01 2.3585896373653775E-01 + 2.1631761320236872E-01 1.9824949690061502E-01 1.8155637745496858E-01 + 1.6614549539141171E-01 1.5192935002303604E-01 1.3882548207068393E-01 + 1.2675625870171542E-01 1.1564866159600729E-01 1.0543407857949226E-01 + 9.6048099300868731E-02 8.7430315366451072E-02 7.9524125291264416E-02 + 7.2276544571328927E-02 6.5638021132453178E-02 5.9562256364649367E-02 + 5.4006031908400073E-02 4.8929042319310882E-02 4.4293733701066242E-02 + 4.0065148362976560E-02 3.6210775527621378E-02 3.2700408086066522E-02 + 2.9506005372724520E-02 2.6601561909037938E-02 2.3962982044659478E-02 + 2.1567960406562579E-02 1.9395868050427058E-02 1.7427644194571934E-02 + 1.5645693404541999E-02 1.4033788086065478E-02 1.2576976135379642E-02 + 1.1261493588745211E-02 1.0074682107229137E-02 9.0049111284214514E-03 + 8.0415045135521918E-03 7.1746715164032774E-03 6.3954418993275161E-03 + 5.6956050215707602E-03 5.0676527257790035E-03 4.5047258499932860E-03 + 4.0005641945780471E-03 3.5494597761914276E-03 3.1462132041306210E-03 + 2.7860930180510844E-03 2.4647978300862015E-03 2.1784211187718268E-03 + 1.9234185268125084E-03 1.6965775195807308E-03 1.4949892662645828E-03 + 1.3160226107300141E-03 1.1573000044009984E-03 1.0166752787535546E-03 + 8.9221314031934446E-04 7.8217027639937832E-04 6.8497796494408863E-04 + 5.9922608724813755E-04 5.2364844723707445E-04 4.5710930613049544E-04 + 3.9859104617447522E-04 3.4718288191397243E-04 3.0207054210887221E-04 + 2.6252684989053795E-04 2.2790313309014633E-04 1.9762140084548420E-04 + 1.7116722660397450E-04 1.4808328148405389E-04 1.2796346563322502E-04 + 1.1044758872891877E-04 9.5216554108406136E-05 8.1988004187948912E-05 + 7.0512387841567501E-05 6.0569413259143563E-05 5.1964852495656328E-05 + 4.4527666462165473E-05 3.8107421499137350E-05 3.2571970918580015E-05 + 2.7805377008213577E-05 2.3706050963756632E-05 2.0185090059690893E-05 + 1.7164793090021611E-05 1.4577336714090351E-05 1.2363596833928081E-05 + 1.0472100514478885E-05 8.8580952417321905E-06 7.4827235017750072E-06 + 6.3122917613069781E-06 5.3176239424360834E-06 4.4734904166451846E-06 + 3.7581043995905849E-06 3.1526784146111281E-06 2.6410342130683874E-06 + 2.2092601983066734E-06 1.8454110013401506E-06 1.5392444043829838E-06 + 1.2819913068953447E-06 1.0661548815956098E-06 8.8533547837791632E-07 + 7.3407820558339809E-07 6.0774045373014041E-07 5.0237692956090438E-07 + 4.1464004088994898E-07 3.4169371781708707E-07 2.8113897585360267E-07 + 2.3094972361997540E-07 1.8941749412943285E-07 1.5510393618490090E-07 + 1.2680004287588751E-07 1.0349121920692750E-07 8.4327402010833631E-08 + 6.8597543885610388E-08 5.5707860194535741E-08 4.5163315334522318E-08 + 3.6551892559905058E-08 2.9531251599422127E-08 2.3817430994056601E-08 + 1.9175298301465376E-08 1.5410491774678888E-08 1.2362632476031955E-08 + 9.8996166162788064E-09 7.9128247398519074E-09 6.3131076829825642E-09 + 5.0274294355206134E-09 3.9960645183462313E-09 3.1702625837567711E-09 + 2.5103059562423745E-09 1.9838970218291020E-09 1.5648219812145240E-09 + 1.2318457131659399E-09 9.6779953320401801E-10 7.5882963933321778E-10 + 5.9377915253475264E-10 4.6368100825801062E-10 3.6134264387685893E-10 + 2.8100654974946869E-10 2.1807338956989499E-10 1.6887661972218653E-10 + 1.3049940840766693E-10 1.0062622611492615E-10 7.7422794923862982E-11 + 5.9439184173984127E-11 4.5531757612179721E-11 3.4800440859564534E-11 + 2.6538412301832035E-11 2.0191846088883254E-11 1.5327770475639026E-11 + 1.1608463203672387E-11 8.7711006584193945E-12 6.6116198059153583E-12 + 4.9719503920605774E-12 3.7299371111450928E-12 2.7914037285822084E-12 + 2.0839187466056797E-12 1.5519095235798790E-12 1.1528424488444933E-12 + 8.5424386321154306E-13 6.3138240438580718E-13 4.6547041246706491E-13 + 3.4227165317504105E-13 2.5102630065995121E-13 1.8362300981189454E-13 + 1.3396293230035021E-13 9.7472450494218922E-14 7.0730835565533209E-14 + 5.1186479937905007E-14 3.6941213255530356E-14 2.6586810205371117E-14 + 1.9081398919783145E-14 1.3656289472288554E-14 9.7459302462901451E-15 + 6.9353988147883976E-15 4.9211491523798451E-15 3.4817522591075185E-15 + 2.4561487531842588E-15 1.7275317730215124E-15 1.2114375145202636E-15 + 8.4697093147038838E-16 5.9036053128009376E-16 4.1023824693335890E-16 + 2.8419314057652008E-16 1.9626285751410913E-16 1.3511329300737193E-16 + 9.2721768030459823E-17 6.3427427540048998E-17 4.3248618091000929E-17 + 2.9393747585503504E-17 1.9911912912579523E-17 1.3444166450977048E-17 + 9.0470103340248796E-18 6.0675574447855667E-18 4.0555285713330336E-18 + 2.7014243001684253E-18 1.7932332038665331E-18 1.1862223225258852E-18 + 7.8192902619607969E-19 5.1360225547591126E-19 3.3614846175653624E-19 + 2.1921288504270125E-19 1.4243533675870289E-19 9.2208713206296788E-20 + 5.9472254097867293E-20 3.8214711855422342E-20 2.4462785773047303E-20 + 1.5600036017480366E-20 9.9100248346283003E-21 6.2710213353858792E-21 + 3.9527650753558436E-21 2.4816902312340348E-21 1.5518955589636602E-21 + 9.6656291665433357E-22 5.9956284809544241E-22 3.7039092105548377E-22 + 2.2787198415432874E-22 1.3960800711765440E-22 8.5173047622156055E-23 + 5.1742814631976956E-23 3.1299493787782592E-23 1.8851557856352249E-23 + 1.1304802326752331E-23 6.7494360895627859E-24 4.0118404467247653E-24 + 2.3739643006513033E-24 1.3984330141102942E-24 8.2002775841104273E-25 + 4.7864899420705999E-25 2.7809272675013344E-25 1.6081554426878970E-25 + 9.2558056069888384E-26 5.3018810378053580E-26 3.0224344587995599E-26 + 1.7146537112218381E-26 9.6798780764456103E-27 5.4377400989495376E-27 + 3.0395067700279144E-27 1.6904594395565735E-27 9.3541444686697879E-28 + 5.1496963336118286E-28 2.8204460025696100E-28 1.5367131677520725E-28 + 8.3288829573732997E-29 4.4903431800742170E-29 2.4079689041227225E-29 + 1.2843410071805448E-29 6.8131406674494437E-30 3.5944389962328930E-30 + 1.8858653523615516E-30 9.8393162154660258E-31 5.1047269405050937E-31 + 2.6333705942810524E-31 1.3507085124296587E-31 6.8881027392419608E-32 + 3.4922382510746958E-32 1.7601599576405088E-32 8.8190538034985173E-33 + 4.3922878599198121E-33 2.1743813354223988E-33 1.0698766460491846E-33 + 5.2319254460157675E-34 2.5427038931383232E-34 1.2280407652913537E-34 + 5.8937088405647150E-35 2.8106023250306323E-35 1.3317437748544222E-35 + 6.2694292284402164E-36 2.9322208345588176E-36 1.3623909701798185E-36 + 6.2880805288188919E-37 2.8828385042995315E-37 1.3127523733279205E-37 + 5.9371737687466842E-38 2.6667671648216963E-38 1.1895221667841529E-38 + 5.2688466409852569E-39 2.3173273923908594E-39 1.0119546626904136E-39 + 4.3874209412364847E-40 1.8884463993559214E-40 8.0689943612611820E-41 + 3.4223591764209541E-41 1.4407710536395772E-41 6.0200363517236178E-42 + 2.4963719371657893E-42 1.0272982384499850E-42 4.1949969383495368E-43 + 1.6997503107447864E-43 6.8332490709580919E-44 2.7253859795868647E-44 + 1.0783436126291773E-44 4.2323754529533330E-45 1.6477005207942280E-45 + 6.3622157166897106E-46 2.4363697271071451E-46 9.2523295879830287E-47 + 3.4841770888150162E-47 1.3009434723105846E-47 4.8160755368871412E-48 + 1.7675516405549579E-48 6.4307541818686348E-49 2.3191531078833961E-49 + 8.2897436814754651E-50 2.9367239262334376E-50 1.0310064001627382E-50 + 3.5867525509084108E-51 1.2363703739586187E-51 4.2224828731554355E-52 + 1.4286441156942662E-52 4.7883015881251490E-53 1.5896603652152308E-53 + 5.2270474171715492E-54 1.7021636530191747E-54 5.4891133646416989E-55 + 1.7527583200791563E-55 5.5414504801831270E-56 1.7344779674077939E-56 + 5.3742770982847585E-57 1.6483103231828933E-57 5.0036505520319007E-58 + 1.5032289800050909E-58 4.4690403994819049E-59 1.3146643396882071E-59 + 3.8263714290511170E-60 1.1017698293288399E-60 3.1382366606136813E-61 + 8.8415990874817825E-62 2.4636850594227939E-62 6.7890252941154693E-63 + 1.8499323095270220E-63 4.9841191678168477E-64 1.3275865663118321E-64 + 3.4957188934677218E-65 9.0984294470003386E-66 2.3405039728018730E-66 + 5.9500660354701600E-67 1.4947197051180595E-67 3.7100444502759071E-68 + 9.0977781306298804E-69 2.2038581183028755E-69 5.2732560692054987E-70 + 1.2461651412305005E-70 2.9082256860784674E-71 6.7017826529063333E-72 + 1.5248107647656079E-72 3.4249819323141901E-73 7.5939965384574939E-74 + 1.6619005315317521E-74 3.5893401709362607E-75 7.6498224360697917E-76 + 1.6086705330664630E-76 3.3374379637835627E-77 6.8303246335612777E-78 + 1.3788002870463777E-78 2.7450175640827177E-79 5.3891846092858604E-80 + 1.0432426123564409E-80 1.9910482336148862E-81 3.7459507608654323E-82 + 6.9466516140740698E-83 1.2696126335430715E-83 2.2866413330993405E-84 + 4.0579299535879265E-85 7.0947821340562043E-86 1.2219394870459436E-86 + 2.0729284567884480E-87 3.4633033734048984E-88 5.6979124302029055E-89 + 9.2301168862167480E-90 1.4720135127263584E-90 2.3108742847312107E-91 + 3.5706503905633895E-92 5.4296419360902159E-93 8.1244520118917303E-94 + 1.1960848379425075E-94 1.7322905294818006E-95 2.4678341326181091E-96 + 3.4577467564973522E-97 4.7642848235475776E-98 6.4546806966968224E-99 + 8.597444434162193E-100 1.125709906286117E-100 1.448741501659209E-101 + 1.832345278716314E-102 2.277300368099862E-103 2.780829792506459E-104 + 3.335907498010150E-105 3.930822449866477E-106 4.549115473021855E-107 + 5.169979366630815E-108 5.769167347928405E-109 6.320392741809984E-110 + 6.797131795879489E-111 7.174672604130320E-112 7.432198889310911E-113 + 7.554669378022429E-114 7.534259669171872E-115 7.371176079882317E-116 + 7.073725389863298E-117 6.657619729318231E-118 6.144596587695437E-119 + 5.560523092075734E-120 4.933216326774612E-121 4.290237619195469E-122 + 3.656905498136266E-123 3.054723908649105E-124 2.500349800211740E-125 + 2.005141498973685E-126 1.575250867680762E-127 1.212160200620990E-128 + 9.135266060564804E-130 6.741844421416973E-131 4.871674117789660E-132 + 3.446398740426640E-133 2.386638337551451E-134 1.617661705783392E-135 + 1.073038281845346E-136 6.964914400662402E-138 4.423196883166526E-139 + 2.748044627272166E-140 1.670035343624101E-141 9.926348461007883E-143 + 5.769832556197218E-144 3.279403661282649E-145 1.822354792778867E-146 + 9.899792203032715E-148 5.256822439827418E-149 2.728185623982854E-150 + 1.383654009506575E-151 6.856997560874035E-153 3.320042337353519E-154 + 1.570387944090340E-155 7.255625961609873E-157 3.274150670363382E-158 + 1.442878825327178E-159 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 1.2689302638490881E-03 1.2689302638485274E-03 1.2689302638468397E-03 + 1.2689302638439906E-03 1.2689302638399483E-03 1.2689302638346830E-03 + 1.2689302638281611E-03 1.2689302638203505E-03 1.2689302638112174E-03 + 1.2689302638007282E-03 1.2689302637888479E-03 1.2689302637755411E-03 + 1.2689302637607714E-03 1.2689302637445021E-03 1.2689302637266954E-03 + 1.2689302637073126E-03 1.2689302636863138E-03 1.2689302636636605E-03 + 1.2689302636393102E-03 1.2689302636132223E-03 1.2689302635853536E-03 + 1.2689302635556605E-03 1.2689302635240994E-03 1.2689302634906244E-03 + 1.2689302634551899E-03 1.2689302634177480E-03 1.2689302633782519E-03 + 1.2689302633366517E-03 1.2689302632928976E-03 1.2689302632469389E-03 + 1.2689302631987232E-03 1.2689302631481983E-03 1.2689302630953089E-03 + 1.2689302630400009E-03 1.2689302629822177E-03 1.2689302629219016E-03 + 1.2689302628589949E-03 1.2689302627934369E-03 1.2689302627251671E-03 + 1.2689302626541241E-03 1.2689302625802437E-03 1.2689302625034618E-03 + 1.2689302624237122E-03 1.2689302623409276E-03 1.2689302622550407E-03 + 1.2689302621659809E-03 1.2689302620736765E-03 1.2689302619780564E-03 + 1.2689302618790453E-03 1.2689302617765680E-03 1.2689302616705478E-03 + 1.2689302615609061E-03 1.2689302614475634E-03 1.2689302613304377E-03 + 1.2689302612094457E-03 1.2689302610845038E-03 1.2689302609555236E-03 + 1.2689302608224185E-03 1.2689302606850984E-03 1.2689302605434721E-03 + 1.2689302603974457E-03 1.2689302602469240E-03 1.2689302600918104E-03 + 1.2689302599320060E-03 1.2689302597674100E-03 1.2689302595979193E-03 + 1.2689302594234301E-03 1.2689302592438342E-03 1.2689302590590244E-03 + 1.2689302588688891E-03 1.2689302586733151E-03 1.2689302584721878E-03 + 1.2689302582653890E-03 1.2689302580527995E-03 1.2689302578342975E-03 + 1.2689302576097581E-03 1.2689302573790548E-03 1.2689302571420591E-03 + 1.2689302568986392E-03 1.2689302566486602E-03 1.2689302563919857E-03 + 1.2689302561284769E-03 1.2689302558579914E-03 1.2689302555803847E-03 + 1.2689302552955095E-03 1.2689302550032151E-03 1.2689302547033493E-03 + 1.2689302543957546E-03 1.2689302540802735E-03 1.2689302537567434E-03 + 1.2689302534249986E-03 1.2689302530848720E-03 1.2689302527361913E-03 + 1.2689302523787823E-03 1.2689302520124666E-03 1.2689302516370633E-03 + 1.2689302512523873E-03 1.2689302508582505E-03 1.2689302504544609E-03 + 1.2689302500408230E-03 1.2689302496171379E-03 1.2689302491832020E-03 + 1.2689302487388083E-03 1.2689302482837474E-03 1.2689302478178048E-03 + 1.2689302473407600E-03 1.2689302468523920E-03 1.2689302463524724E-03 + 1.2689302458407704E-03 1.2689302453170507E-03 1.2689302447810729E-03 + 1.2689302442325922E-03 1.2689302436713610E-03 1.2689302430971231E-03 + 1.2689302425096219E-03 1.2689302419085920E-03 1.2689302412937668E-03 + 1.2689302406648721E-03 1.2689302400216292E-03 1.2689302393637544E-03 + 1.2689302386909597E-03 1.2689302380029491E-03 1.2689302372994235E-03 + 1.2689302365800769E-03 1.2689302358445981E-03 1.2689302350926710E-03 + 1.2689302343239707E-03 1.2689302335381694E-03 1.2689302327349317E-03 + 1.2689302319139162E-03 1.2689302310747753E-03 1.2689302302171545E-03 + 1.2689302293406928E-03 1.2689302284450230E-03 1.2689302275297703E-03 + 1.2689302265945534E-03 1.2689302256389844E-03 1.2689302246626669E-03 + 1.2689302236651983E-03 1.2689302226461677E-03 1.2689302216051582E-03 + 1.2689302205417421E-03 1.2689302194554867E-03 1.2689302183459506E-03 + 1.2689302172126827E-03 1.2689302160552246E-03 1.2689302148731110E-03 + 1.2689302136658653E-03 1.2689302124330032E-03 1.2689302111740322E-03 + 1.2689302098884490E-03 1.2689302085757425E-03 1.2689302072353920E-03 + 1.2689302058668656E-03 1.2689302044696241E-03 1.2689302030431163E-03 + 1.2689302015867819E-03 1.2689302001000495E-03 1.2689301985823378E-03 + 1.2689301970330545E-03 1.2689301954515967E-03 1.2689301938373495E-03 + 1.2689301921896879E-03 1.2689301905079746E-03 1.2689301887915607E-03 + 1.2689301870397855E-03 1.2689301852519758E-03 1.2689301834274470E-03 + 1.2689301815654995E-03 1.2689301796654242E-03 1.2689301777264973E-03 + 1.2689301757479801E-03 1.2689301737291228E-03 1.2689301716691619E-03 + 1.2689301695673174E-03 1.2689301674227976E-03 1.2689301652347941E-03 + 1.2689301630024858E-03 1.2689301607250352E-03 1.2689301584015891E-03 + 1.2689301560312798E-03 1.2689301536132236E-03 1.2689301511465191E-03 + 1.2689301486302506E-03 1.2689301460634835E-03 1.2689301434452680E-03 + 1.2689301407746351E-03 1.2689301380505997E-03 1.2689301352721582E-03 + 1.2689301324382875E-03 1.2689301295479472E-03 1.2689301266000771E-03 + 1.2689301235935975E-03 1.2689301205274109E-03 1.2689301174003964E-03 + 1.2689301142114156E-03 1.2689301109593072E-03 1.2689301076428904E-03 + 1.2689301042609618E-03 1.2689301008122962E-03 1.2689300972956459E-03 + 1.2689300937097408E-03 1.2689300900532883E-03 1.2689300863249710E-03 + 1.2689300825234463E-03 1.2689300786473514E-03 1.2689300746952944E-03 + 1.2689300706658596E-03 1.2689300665576061E-03 1.2689300623690654E-03 + 1.2689300580987438E-03 1.2689300537451200E-03 1.2689300493066435E-03 + 1.2689300447817371E-03 1.2689300401687955E-03 1.2689300354661816E-03 + 1.2689300306722312E-03 1.2689300257852482E-03 1.2689300208035064E-03 + 1.2689300157252487E-03 1.2689300105486842E-03 1.2689300052719909E-03 + 1.2689299998933142E-03 1.2689299944107645E-03 1.2689299888224176E-03 + 1.2689299831263167E-03 1.2689299773204668E-03 1.2689299714028380E-03 + 1.2689299653713627E-03 1.2689299592239377E-03 1.2689299529584192E-03 + 1.2689299465726259E-03 1.2689299400643369E-03 1.2689299334312904E-03 + 1.2689299266711836E-03 1.2689299197816732E-03 1.2689299127603714E-03 + 1.2689299056048487E-03 1.2689298983126307E-03 1.2689298908811983E-03 + 1.2689298833079875E-03 1.2689298755903871E-03 1.2689298677257381E-03 + 1.2689298597113347E-03 1.2689298515444212E-03 1.2689298432221915E-03 + 1.2689298347417900E-03 1.2689298261003080E-03 1.2689298172947861E-03 + 1.2689298083222091E-03 1.2689297991795080E-03 1.2689297898635591E-03 + 1.2689297803711818E-03 1.2689297706991367E-03 1.2689297608441280E-03 + 1.2689297508027980E-03 1.2689297405717303E-03 1.2689297301474445E-03 + 1.2689297195264005E-03 1.2689297087049910E-03 1.2689296976795446E-03 + 1.2689296864463245E-03 1.2689296750015254E-03 1.2689296633412726E-03 + 1.2689296514616232E-03 1.2689296393585616E-03 1.2689296270280005E-03 + 1.2689296144657786E-03 1.2689296016676584E-03 1.2689295886293269E-03 + 1.2689295753463936E-03 1.2689295618143887E-03 1.2689295480287600E-03 + 1.2689295339848746E-03 1.2689295196780164E-03 1.2689295051033828E-03 + 1.2689294902560860E-03 1.2689294751311486E-03 1.2689294597235043E-03 + 1.2689294440279962E-03 1.2689294280393713E-03 1.2689294117522859E-03 + 1.2689293951612969E-03 1.2689293782608638E-03 1.2689293610453484E-03 + 1.2689293435090071E-03 1.2689293256459950E-03 1.2689293074503621E-03 + 1.2689292889160502E-03 1.2689292700368920E-03 1.2689292508066097E-03 + 1.2689292312188119E-03 1.2689292112669924E-03 1.2689291909445269E-03 + 1.2689291702446734E-03 1.2689291491605665E-03 1.2689291276852188E-03 + 1.2689291058115163E-03 1.2689290835322163E-03 1.2689290608399475E-03 + 1.2689290377272042E-03 1.2689290141863455E-03 1.2689289902095948E-03 + 1.2689289657890335E-03 1.2689289409166015E-03 1.2689289155840932E-03 + 1.2689288897831561E-03 1.2689288635052867E-03 1.2689288367418276E-03 + 1.2689288094839687E-03 1.2689287817227374E-03 1.2689287534490025E-03 + 1.2689287246534684E-03 1.2689286953266705E-03 1.2689286654589749E-03 + 1.2689286350405762E-03 1.2689286040614897E-03 1.2689285725115533E-03 + 1.2689285403804211E-03 1.2689285076575622E-03 1.2689284743322546E-03 + 1.2689284403935856E-03 1.2689284058304453E-03 1.2689283706315241E-03 + 1.2689283347853094E-03 1.2689282982800817E-03 1.2689282611039101E-03 + 1.2689282232446512E-03 1.2689281846899414E-03 1.2689281454271954E-03 + 1.2689281054436030E-03 1.2689280647261226E-03 1.2689280232614790E-03 + 1.2689279810361581E-03 1.2689279380364033E-03 1.2689278942482108E-03 + 1.2689278496573252E-03 1.2689278042492364E-03 1.2689277580091715E-03 + 1.2689277109220938E-03 1.2689276629726965E-03 1.2689276141453975E-03 + 1.2689275644243352E-03 1.2689275137933635E-03 1.2689274622360463E-03 + 1.2689274097356521E-03 1.2689273562751500E-03 1.2689273018372021E-03 + 1.2689272464041605E-03 1.2689271899580599E-03 1.2689271324806131E-03 + 1.2689270739532044E-03 1.2689270143568842E-03 1.2689269536723632E-03 + 1.2689268918800053E-03 1.2689268289598223E-03 1.2689267648914680E-03 + 1.2689266996542307E-03 1.2689266332270282E-03 1.2689265655883978E-03 + 1.2689264967164948E-03 1.2689264265890797E-03 1.2689263551835168E-03 + 1.2689262824767630E-03 1.2689262084453622E-03 1.2689261330654379E-03 + 1.2689260563126857E-03 1.2689259781623646E-03 1.2689258985892902E-03 + 1.2689258175678274E-03 1.2689257350718814E-03 1.2689256510748882E-03 + 1.2689255655498083E-03 1.2689254784691191E-03 1.2689253898048023E-03 + 1.2689252995283387E-03 1.2689252076106977E-03 1.2689251140223289E-03 + 1.2689250187331508E-03 1.2689249217125438E-03 1.2689248229293402E-03 + 1.2689247223518132E-03 1.2689246199476664E-03 1.2689245156840268E-03 + 1.2689244095274307E-03 1.2689243014438153E-03 1.2689241913985082E-03 + 1.2689240793562150E-03 1.2689239652810093E-03 1.2689238491363213E-03 + 1.2689237308849252E-03 1.2689236104889304E-03 1.2689234879097655E-03 + 1.2689233631081682E-03 1.2689232360441752E-03 1.2689231066771052E-03 + 1.2689229749655491E-03 1.2689228408673564E-03 1.2689227043396218E-03 + 1.2689225653386709E-03 1.2689224238200483E-03 1.2689222797385015E-03 + 1.2689221330479687E-03 1.2689219837015624E-03 1.2689218316515563E-03 + 1.2689216768493690E-03 1.2689215192455501E-03 1.2689213587897623E-03 + 1.2689211954307704E-03 1.2689210291164175E-03 1.2689208597936169E-03 + 1.2689206874083288E-03 1.2689205119055483E-03 1.2689203332292846E-03 + 1.2689201513225443E-03 1.2689199661273160E-03 1.2689197775845474E-03 + 1.2689195856341313E-03 1.2689193902148833E-03 1.2689191912645251E-03 + 1.2689189887196630E-03 1.2689187825157694E-03 1.2689185725871619E-03 + 1.2689183588669819E-03 1.2689181412871766E-03 1.2689179197784726E-03 + 1.2689176942703594E-03 1.2689174646910626E-03 1.2689172309675260E-03 + 1.2689169930253852E-03 1.2689167507889437E-03 1.2689165041811542E-03 + 1.2689162531235878E-03 1.2689159975364146E-03 1.2689157373383744E-03 + 1.2689154724467564E-03 1.2689152027773674E-03 1.2689149282445096E-03 + 1.2689146487609522E-03 1.2689143642379025E-03 1.2689140745849822E-03 + 1.2689137797101940E-03 1.2689134795198966E-03 1.2689131739187737E-03 + 1.2689128628098039E-03 1.2689125460942309E-03 1.2689122236715312E-03 + 1.2689118954393849E-03 1.2689115612936419E-03 1.2689112211282890E-03 + 1.2689108748354179E-03 1.2689105223051892E-03 1.2689101634258012E-03 + 1.2689097980834523E-03 1.2689094261623057E-03 1.2689090475444533E-03 + 1.2689086621098791E-03 1.2689082697364214E-03 1.2689078702997328E-03 + 1.2689074636732453E-03 1.2689070497281254E-03 1.2689066283332376E-03 + 1.2689061993551014E-03 1.2689057626578501E-03 1.2689053181031877E-03 + 1.2689048655503471E-03 1.2689044048560430E-03 1.2689039358744301E-03 + 1.2689034584570543E-03 1.2689029724528094E-03 1.2689024777078868E-03 + 1.2689019740657302E-03 1.2689014613669833E-03 1.2689009394494407E-03 + 1.2689004081480003E-03 1.2688998672946072E-03 1.2688993167182024E-03 + 1.2688987562446711E-03 1.2688981856967853E-03 1.2688976048941493E-03 + 1.2688970136531439E-03 1.2688964117868685E-03 1.2688957991050819E-03 + 1.2688951754141430E-03 1.2688945405169491E-03 1.2688938942128779E-03 + 1.2688932362977185E-03 1.2688925665636128E-03 1.2688918847989874E-03 + 1.2688911907884895E-03 1.2688904843129157E-03 1.2688897651491485E-03 + 1.2688890330700801E-03 1.2688882878445489E-03 1.2688875292372584E-03 + 1.2688867570087108E-03 1.2688859709151284E-03 1.2688851707083775E-03 + 1.2688843561358906E-03 1.2688835269405883E-03 1.2688826828607979E-03 + 1.2688818236301709E-03 1.2688809489776012E-03 1.2688800586271383E-03 + 1.2688791522979027E-03 1.2688782297039967E-03 1.2688772905544131E-03 + 1.2688763345529480E-03 1.2688753613981061E-03 1.2688743707830049E-03 + 1.2688733623952802E-03 1.2688723359169881E-03 1.2688712910245053E-03 + 1.2688702273884254E-03 1.2688691446734615E-03 1.2688680425383344E-03 + 1.2688669206356704E-03 1.2688657786118897E-03 1.2688646161070983E-03 + 1.2688634327549734E-03 1.2688622281826483E-03 1.2688610020105968E-03 + 1.2688597538525136E-03 1.2688584833151959E-03 1.2688571899984148E-03 + 1.2688558734947949E-03 1.2688545333896849E-03 1.2688531692610283E-03 + 1.2688517806792299E-03 1.2688503672070217E-03 1.2688489283993283E-03 + 1.2688474638031240E-03 1.2688459729572937E-03 1.2688444553924864E-03 + 1.2688429106309700E-03 1.2688413381864814E-03 1.2688397375640727E-03 + 1.2688381082599585E-03 1.2688364497613568E-03 1.2688347615463281E-03 + 1.2688330430836133E-03 1.2688312938324662E-03 1.2688295132424856E-03 + 1.2688277007534409E-03 1.2688258557950996E-03 1.2688239777870454E-03 + 1.2688220661384996E-03 1.2688201202481341E-03 1.2688181395038849E-03 + 1.2688161232827578E-03 1.2688140709506371E-03 1.2688119818620846E-03 + 1.2688098553601370E-03 1.2688076907761026E-03 1.2688054874293510E-03 + 1.2688032446271000E-03 1.2688009616641982E-03 1.2687986378229050E-03 + 1.2687962723726659E-03 1.2687938645698845E-03 1.2687914136576886E-03 + 1.2687889188656943E-03 1.2687863794097641E-03 1.2687837944917631E-03 + 1.2687811632993062E-03 1.2687784850055085E-03 1.2687757587687219E-03 + 1.2687729837322749E-03 1.2687701590242033E-03 1.2687672837569774E-03 + 1.2687643570272258E-03 1.2687613779154500E-03 1.2687583454857399E-03 + 1.2687552587854771E-03 1.2687521168450418E-03 1.2687489186775061E-03 + 1.2687456632783261E-03 1.2687423496250266E-03 1.2687389766768841E-03 + 1.2687355433745992E-03 1.2687320486399652E-03 1.2687284913755318E-03 + 1.2687248704642607E-03 1.2687211847691785E-03 1.2687174331330175E-03 + 1.2687136143778579E-03 1.2687097273047559E-03 1.2687057706933724E-03 + 1.2687017433015866E-03 1.2686976438651121E-03 1.2686934710970995E-03 + 1.2686892236877351E-03 1.2686849003038291E-03 1.2686804995884003E-03 + 1.2686760201602535E-03 1.2686714606135446E-03 1.2686668195173423E-03 + 1.2686620954151825E-03 1.2686572868246106E-03 1.2686523922367180E-03 + 1.2686474101156725E-03 1.2686423388982378E-03 1.2686371769932818E-03 + 1.2686319227812842E-03 1.2686265746138258E-03 1.2686211308130771E-03 + 1.2686155896712704E-03 1.2686099494501697E-03 1.2686042083805233E-03 + 1.2685983646615151E-03 1.2685924164601986E-03 1.2685863619109274E-03 + 1.2685801991147681E-03 1.2685739261389117E-03 1.2685675410160644E-03 + 1.2685610417438389E-03 1.2685544262841231E-03 1.2685476925624482E-03 + 1.2685408384673369E-03 1.2685338618496458E-03 1.2685267605218949E-03 + 1.2685195322575810E-03 1.2685121747904866E-03 1.2685046858139674E-03 + 1.2684970629802375E-03 1.2684893038996299E-03 1.2684814061398552E-03 + 1.2684733672252404E-03 1.2684651846359548E-03 1.2684568558072233E-03 + 1.2684483781285289E-03 1.2684397489427927E-03 1.2684309655455479E-03 + 1.2684220251840937E-03 1.2684129250566381E-03 1.2684036623114192E-03 + 1.2683942340458198E-03 1.2683846373054588E-03 1.2683748690832690E-03 + 1.2683649263185587E-03 1.2683548058960591E-03 1.2683445046449469E-03 + 1.2683340193378610E-03 1.2683233466898901E-03 1.2683124833575519E-03 + 1.2683014259377463E-03 1.2682901709666961E-03 1.2682787149188683E-03 + 1.2682670542058672E-03 1.2682551851753254E-03 1.2682431041097532E-03 + 1.2682308072253900E-03 1.2682182906710157E-03 1.2682055505267560E-03 + 1.2681925828028563E-03 1.2681793834384389E-03 1.2681659483002356E-03 + 1.2681522731813025E-03 1.2681383537997046E-03 1.2681241857971839E-03 + 1.2681097647377986E-03 1.2680950861065432E-03 1.2680801453079393E-03 + 1.2680649376646033E-03 1.2680494584157913E-03 1.2680337027159137E-03 + 1.2680176656330259E-03 1.2680013421472922E-03 1.2679847271494218E-03 + 1.2679678154390783E-03 1.2679506017232586E-03 1.2679330806146449E-03 + 1.2679152466299275E-03 1.2678970941880994E-03 1.2678786176087136E-03 + 1.2678598111101195E-03 1.2678406688076606E-03 1.2678211847118451E-03 + 1.2678013527264796E-03 1.2677811666467718E-03 1.2677606201574021E-03 + 1.2677397068305573E-03 1.2677184201239299E-03 1.2676967533786850E-03 + 1.2676746998173888E-03 1.2676522525418984E-03 1.2676294045312199E-03 + 1.2676061486393236E-03 1.2675824775929226E-03 1.2675583839892122E-03 + 1.2675338602935679E-03 1.2675088988372046E-03 1.2674834918147933E-03 + 1.2674576312820373E-03 1.2674313091532003E-03 1.2674045171985982E-03 + 1.2673772470420425E-03 1.2673494901582374E-03 1.2673212378701345E-03 + 1.2672924813462375E-03 1.2672632115978608E-03 1.2672334194763408E-03 + 1.2672030956701957E-03 1.2671722307022360E-03 1.2671408149266248E-03 + 1.2671088385258853E-03 1.2670762915078569E-03 1.2670431637025945E-03 + 1.2670094447592190E-03 1.2669751241427033E-03 1.2669401911306118E-03 + 1.2669046348097750E-03 1.2668684440729082E-03 1.2668316076151719E-03 + 1.2667941139306686E-03 1.2667559513088820E-03 1.2667171078310474E-03 + 1.2666775713664658E-03 1.2666373295687485E-03 1.2665963698719940E-03 + 1.2665546794869034E-03 1.2665122453968246E-03 1.2664690543537224E-03 + 1.2664250928740880E-03 1.2663803472347667E-03 1.2663348034687185E-03 + 1.2662884473607023E-03 1.2662412644428836E-03 1.2661932399903656E-03 + 1.2661443590166451E-03 1.2660946062689824E-03 1.2660439662236967E-03 + 1.2659924230813745E-03 1.2659399607619953E-03 1.2658865628999742E-03 + 1.2658322128391143E-03 1.2657768936274727E-03 1.2657205880121378E-03 + 1.2656632784339133E-03 1.2656049470219069E-03 1.2655455755880343E-03 + 1.2654851456214147E-03 1.2654236382826762E-03 1.2653610343981621E-03 + 1.2652973144540297E-03 1.2652324585902561E-03 1.2651664465945292E-03 + 1.2650992578960407E-03 1.2650308715591654E-03 1.2649612662770347E-03 + 1.2648904203649946E-03 1.2648183117539534E-03 1.2647449179836107E-03 + 1.2646702161955709E-03 1.2645941831263378E-03 1.2645167951001852E-03 + 1.2644380280219048E-03 1.2643578573694298E-03 1.2642762581863305E-03 + 1.2641932050741784E-03 1.2641086721847765E-03 1.2640226332122635E-03 + 1.2639350613850705E-03 1.2638459294577482E-03 1.2637552097026460E-03 + 1.2636628739014528E-03 1.2635688933365879E-03 1.2634732387824478E-03 + 1.2633758804964990E-03 1.2632767882102163E-03 1.2631759311198733E-03 + 1.2630732778771618E-03 1.2629687965796644E-03 1.2628624547611504E-03 + 1.2627542193817162E-03 1.2626440568177502E-03 1.2625319328517296E-03 + 1.2624178126618361E-03 1.2623016608114073E-03 1.2621834412381921E-03 + 1.2620631172434343E-03 1.2619406514807671E-03 1.2618160059449145E-03 + 1.2616891419602060E-03 1.2615600201688942E-03 1.2614286005192708E-03 + 1.2612948422535853E-03 1.2611587038957588E-03 1.2610201432388846E-03 + 1.2608791173325236E-03 1.2607355824697805E-03 1.2605894941741659E-03 + 1.2604408071862315E-03 1.2602894754499855E-03 1.2601354520990751E-03 + 1.2599786894427415E-03 1.2598191389515321E-03 1.2596567512427807E-03 + 1.2594914760658401E-03 1.2593232622870672E-03 1.2591520578745621E-03 + 1.2589778098826422E-03 1.2588004644360749E-03 1.2586199667140262E-03 + 1.2584362609337619E-03 1.2582492903340659E-03 1.2580589971583913E-03 + 1.2578653226377244E-03 1.2576682069731773E-03 1.2574675893182795E-03 + 1.2572634077609895E-03 1.2570555993054058E-03 1.2568440998531750E-03 + 1.2566288441845993E-03 1.2564097659394341E-03 1.2561867975973704E-03 + 1.2559598704582006E-03 1.2557289146216597E-03 1.2554938589669389E-03 + 1.2552546311318726E-03 1.2550111574917791E-03 1.2547633631379655E-03 + 1.2545111718558891E-03 1.2542545061029579E-03 1.2539932869859848E-03 + 1.2537274342382745E-03 1.2534568661963462E-03 1.2531814997762858E-03 + 1.2529012504497231E-03 1.2526160322194222E-03 1.2523257575944929E-03 + 1.2520303375652070E-03 1.2517296815774165E-03 1.2514236975065753E-03 + 1.2511122916313466E-03 1.2507953686068081E-03 1.2504728314372264E-03 + 1.2501445814484253E-03 1.2498105182597091E-03 1.2494705397553660E-03 + 1.2491245420557270E-03 1.2487724194877804E-03 1.2484140645553409E-03 + 1.2480493679087607E-03 1.2476782183141828E-03 1.2473005026223283E-03 + 1.2469161057368147E-03 1.2465249105819988E-03 1.2461267980703344E-03 + 1.2457216470692528E-03 1.2453093343675402E-03 1.2448897346412312E-03 + 1.2444627204189901E-03 1.2440281620469929E-03 1.2435859276532925E-03 + 1.2431358831116721E-03 1.2426778920049722E-03 1.2422118155878919E-03 + 1.2417375127492644E-03 1.2412548399737887E-03 1.2407636513032242E-03 + 1.2402637982970417E-03 1.2397551299925228E-03 1.2392374928643052E-03 + 1.2387107307833701E-03 1.2381746849754675E-03 1.2376291939789762E-03 + 1.2370740936021943E-03 1.2365092168800512E-03 1.2359343940302517E-03 + 1.2353494524088306E-03 1.2347542164651293E-03 1.2341485076961859E-03 + 1.2335321446005341E-03 1.2329049426314134E-03 1.2322667141493834E-03 + 1.2316172683743474E-03 1.2309564113369715E-03 1.2302839458295134E-03 + 1.2295996713560468E-03 1.2289033840820896E-03 1.2281948767836259E-03 + 1.2274739387955369E-03 1.2267403559594226E-03 1.2259939105708313E-03 + 1.2252343813258875E-03 1.2244615432673270E-03 1.2236751677299341E-03 + 1.2228750222853927E-03 1.2220608706865444E-03 1.2212324728110681E-03 + 1.2203895846045728E-03 1.2195319580231249E-03 1.2186593409751945E-03 + 1.2177714772630503E-03 1.2168681065235945E-03 1.2159489641686422E-03 + 1.2150137813246736E-03 1.2140622847720459E-03 1.2130941968836915E-03 + 1.2121092355633009E-03 1.2111071141830130E-03 1.2100875415206199E-03 + 1.2090502216962990E-03 1.2079948541088912E-03 1.2069211333717417E-03 + 1.2058287492481157E-03 1.2047173865862100E-03 1.2035867252537863E-03 + 1.2024364400724326E-03 1.2012662007514947E-03 1.2000756718216813E-03 + 1.1988645125683860E-03 1.1976323769647399E-03 1.1963789136044338E-03 + 1.1951037656343275E-03 1.1938065706868959E-03 1.1924869608125272E-03 + 1.1911445624117247E-03 1.1897789961672362E-03 1.1883898769761679E-03 + 1.1869768138821060E-03 1.1855394100073033E-03 1.1840772624849777E-03 + 1.1825899623917622E-03 1.1810770946803705E-03 1.1795382381125220E-03 + 1.1779729651921938E-03 1.1763808420992513E-03 1.1747614286235265E-03 + 1.1731142780994084E-03 1.1714389373410142E-03 1.1697349465780212E-03 + 1.1680018393922258E-03 1.1662391426549171E-03 1.1644463764651533E-03 + 1.1626230540890176E-03 1.1607686818999581E-03 1.1588827593203037E-03 + 1.1569647787640540E-03 1.1550142255810606E-03 1.1530305780026978E-03 + 1.1510133070891482E-03 1.1489618766784217E-03 1.1468757433372369E-03 + 1.1447543563138935E-03 1.1425971574932790E-03 1.1404035813541546E-03 + 1.1381730549288691E-03 1.1359049977656605E-03 1.1335988218937106E-03 + 1.1312539317911258E-03 1.1288697243560235E-03 1.1264455888809074E-03 + 1.1239809070305385E-03 1.1214750528234950E-03 1.1189273926176368E-03 + 1.1163372850997038E-03 1.1137040812792707E-03 1.1110271244873032E-03 + 1.1083057503795675E-03 1.1055392869451571E-03 1.1027270545204068E-03 + 1.0998683658084761E-03 1.0969625259049127E-03 1.0940088323294821E-03 + 1.0910065750646036E-03 1.0879550366007234E-03 1.0848534919889684E-03 + 1.0817012089014459E-03 1.0784974476995683E-03 1.0752414615107992E-03 + 1.0719324963142250E-03 1.0685697910353758E-03 1.0651525776507490E-03 + 1.0616800813024888E-03 1.0581515204236974E-03 1.0545661068748951E-03 + 1.0509230460921211E-03 1.0472215372472450E-03 1.0434607734210188E-03 + 1.0396399417894869E-03 1.0357582238243338E-03 1.0318147955078092E-03 + 1.0278088275628987E-03 1.0237394856994046E-03 1.0196059308766557E-03 + 1.0154073195835782E-03 1.0111428041369057E-03 1.0068115329983085E-03 + 1.0024126511112748E-03 9.9794530025861558E-04 9.9340861944146848E-04 + 9.8880174528074064E-04 9.8412381244195198E-04 9.7937395408448152E-04 + 9.7455130233625514E-04 9.6965498879495837E-04 9.6468414505690165E-04 + 9.5963790327469511E-04 9.5451539674494795E-04 9.4931576052726156E-04 + 9.4403813209580686E-04 9.3868165202485351E-04 9.3324546470965170E-04 + 9.2772871912415004E-04 9.2213056961703828E-04 9.1645017674771604E-04 + 9.1068670816382366E-04 9.0483933952202145E-04 8.9890725545379289E-04 + 8.9288965057811157E-04 8.8678573056285746E-04 8.8059471323696857E-04 + 8.7431582975537191E-04 8.6794832581883318E-04 8.6149146295091635E-04 + 8.5494451983434935E-04 8.4830679370919457E-04 8.4157760183525832E-04 + 8.3475628302132478E-04 8.2784219922387369E-04 8.2083473721802154E-04 + 8.1373331034356906E-04 8.0653736032910669E-04 7.9924635919728431E-04 + 7.9185981125441294E-04 7.8437725516773346E-04 7.7679826613380389E-04 + 7.6912245814154772E-04 7.6134948633369633E-04 7.5347904947044417E-04 + 7.4551089249933768E-04 7.3744480923549250E-04 7.2928064515645616E-04 + 7.2101830031617224E-04 7.1265773238263913E-04 7.0419895980406442E-04 + 6.9564206510849770E-04 6.8698719834206327E-04 6.7823458065116105E-04 + 6.6938450801416153E-04 6.6043735512836708E-04 6.5139357945817188E-04 + 6.4225372545061654E-04 6.3301842892476848E-04 6.2368842164154520E-04 + 6.1426453606089305E-04 6.0474771029349144E-04 5.9513899325436379E-04 + 5.8543955002611546E-04 5.7565066743975519E-04 5.6577375988139565E-04 + 5.5581037533337799E-04 5.4576220165873017E-04 5.3563107313819251E-04 + 5.2541897726933982E-04 5.1512806183774597E-04 5.0476064227044021E-04 + 4.9431920928235317E-04 4.8380643682675558E-04 4.7322519036117758E-04 + 4.6257853544069114E-04 4.5186974665084822E-04 4.4110231689305115E-04 + 4.3027996703562041E-04 4.1940665594423620E-04 4.0848659090602507E-04 + 3.9752423846200785E-04 3.8652433566324282E-04 3.7549190176647056E-04 + 3.6443225038571979E-04 3.5335100211692638E-04 3.4225409765318914E-04 + 3.3114781140900347E-04 3.2003876567243108E-04 3.0893394530490559E-04 + 2.9784071300903881E-04 2.8676682518557838E-04 2.7572044840145623E-04 + 2.6471017649160392E-04 2.5374504831809837E-04 2.4283456621106557E-04 + 2.3198871511660211E-04 2.2121798247797011E-04 2.1053337887722034E-04 + 1.9994645946545293E-04 1.8946934621087521E-04 1.7911475099494613E-04 + 1.6889599958799366E-04 1.5882705653678890E-04 1.4892255099779563E-04 + 1.3919780355104165E-04 1.2966885403078334E-04 1.2035249041051699E-04 + 1.1126627878119954E-04 1.0242859446302730E-04 9.3858654292503418E-05 + 8.5576550128109877E-05 7.7603283619478416E-05 6.9960802286525599E-05 + 6.2672036956785491E-05 5.5760940610869095E-05 4.9252528687844265E-05 + 4.3172920904164238E-05 3.7549384641759831E-05 3.2410379962928894E-05 + 2.7785606311727152E-05 2.3706050963756666E-05 2.0185090059690893E-05 + 1.7164793090021611E-05 1.4577336714090351E-05 1.2363596833928081E-05 + 1.0472100514478885E-05 8.8580952417321905E-06 7.4827235017750072E-06 + 6.3122917613069781E-06 5.3176239424360834E-06 4.4734904166451846E-06 + 3.7581043995905849E-06 3.1526784146111281E-06 2.6410342130683874E-06 + 2.2092601983066734E-06 1.8454110013401506E-06 1.5392444043829838E-06 + 1.2819913068953447E-06 1.0661548815956098E-06 8.8533547837791632E-07 + 7.3407820558339809E-07 6.0774045373014041E-07 5.0237692956090438E-07 + 4.1464004088994898E-07 3.4169371781708707E-07 2.8113897585360267E-07 + 2.3094972361997540E-07 1.8941749412943285E-07 1.5510393618490090E-07 + 1.2680004287588751E-07 1.0349121920692750E-07 8.4327402010833631E-08 + 6.8597543885610388E-08 5.5707860194535741E-08 4.5163315334522318E-08 + 3.6551892559905058E-08 2.9531251599422127E-08 2.3817430994056601E-08 + 1.9175298301465376E-08 1.5410491774678888E-08 1.2362632476031955E-08 + 9.8996166162788064E-09 7.9128247398519074E-09 6.3131076829825642E-09 + 5.0274294355206134E-09 3.9960645183462313E-09 3.1702625837567711E-09 + 2.5103059562423745E-09 1.9838970218291020E-09 1.5648219812145240E-09 + 1.2318457131659399E-09 9.6779953320401801E-10 7.5882963933321778E-10 + 5.9377915253475264E-10 4.6368100825801062E-10 3.6134264387685893E-10 + 2.8100654974946869E-10 2.1807338956989499E-10 1.6887661972218653E-10 + 1.3049940840766693E-10 1.0062622611492615E-10 7.7422794923862982E-11 + 5.9439184173984127E-11 4.5531757612179721E-11 3.4800440859564534E-11 + 2.6538412301832035E-11 2.0191846088883254E-11 1.5327770475639026E-11 + 1.1608463203672387E-11 8.7711006584193945E-12 6.6116198059153583E-12 + 4.9719503920605774E-12 3.7299371111450928E-12 2.7914037285822084E-12 + 2.0839187466056797E-12 1.5519095235798790E-12 1.1528424488444933E-12 + 8.5424386321154306E-13 6.3138240438580718E-13 4.6547041246706491E-13 + 3.4227165317504105E-13 2.5102630065995121E-13 1.8362300981189454E-13 + 1.3396293230035021E-13 9.7472450494218922E-14 7.0730835565533209E-14 + 5.1186479937905007E-14 3.6941213255530356E-14 2.6586810205371117E-14 + 1.9081398919783145E-14 1.3656289472288554E-14 9.7459302462901451E-15 + 6.9353988147883976E-15 4.9211491523798451E-15 3.4817522591075185E-15 + 2.4561487531842588E-15 1.7275317730215124E-15 1.2114375145202636E-15 + 8.4697093147038838E-16 5.9036053128009376E-16 4.1023824693335890E-16 + 2.8419314057652008E-16 1.9626285751410913E-16 1.3511329300737193E-16 + 9.2721768030459823E-17 6.3427427540048998E-17 4.3248618091000929E-17 + 2.9393747585503504E-17 1.9911912912579523E-17 1.3444166450977048E-17 + 9.0470103340248796E-18 6.0675574447855667E-18 4.0555285713330336E-18 + 2.7014243001684253E-18 1.7932332038665331E-18 1.1862223225258852E-18 + 7.8192902619607969E-19 5.1360225547591126E-19 3.3614846175653624E-19 + 2.1921288504270125E-19 1.4243533675870289E-19 9.2208713206296788E-20 + 5.9472254097867293E-20 3.8214711855422342E-20 2.4462785773047303E-20 + 1.5600036017480366E-20 9.9100248346283003E-21 6.2710213353858792E-21 + 3.9527650753558436E-21 2.4816902312340348E-21 1.5518955589636602E-21 + 9.6656291665433357E-22 5.9956284809544241E-22 3.7039092105548377E-22 + 2.2787198415432874E-22 1.3960800711765440E-22 8.5173047622156055E-23 + 5.1742814631976956E-23 3.1299493787782592E-23 1.8851557856352249E-23 + 1.1304802326752331E-23 6.7494360895627859E-24 4.0118404467247653E-24 + 2.3739643006513033E-24 1.3984330141102942E-24 8.2002775841104273E-25 + 4.7864899420705999E-25 2.7809272675013344E-25 1.6081554426878970E-25 + 9.2558056069888384E-26 5.3018810378053580E-26 3.0224344587995599E-26 + 1.7146537112218381E-26 9.6798780764456103E-27 5.4377400989495376E-27 + 3.0395067700279144E-27 1.6904594395565735E-27 9.3541444686697879E-28 + 5.1496963336118286E-28 2.8204460025696100E-28 1.5367131677520725E-28 + 8.3288829573732997E-29 4.4903431800742170E-29 2.4079689041227225E-29 + 1.2843410071805448E-29 6.8131406674494437E-30 3.5944389962328930E-30 + 1.8858653523615516E-30 9.8393162154660258E-31 5.1047269405050937E-31 + 2.6333705942810524E-31 1.3507085124296587E-31 6.8881027392419608E-32 + 3.4922382510746958E-32 1.7601599576405088E-32 8.8190538034985173E-33 + 4.3922878599198121E-33 2.1743813354223988E-33 1.0698766460491846E-33 + 5.2319254460157675E-34 2.5427038931383232E-34 1.2280407652913537E-34 + 5.8937088405647150E-35 2.8106023250306323E-35 1.3317437748544222E-35 + 6.2694292284402164E-36 2.9322208345588176E-36 1.3623909701798185E-36 + 6.2880805288188919E-37 2.8828385042995315E-37 1.3127523733279205E-37 + 5.9371737687466842E-38 2.6667671648216963E-38 1.1895221667841529E-38 + 5.2688466409852569E-39 2.3173273923908594E-39 1.0119546626904136E-39 + 4.3874209412364847E-40 1.8884463993559214E-40 8.0689943612611820E-41 + 3.4223591764209541E-41 1.4407710536395772E-41 6.0200363517236178E-42 + 2.4963719371657893E-42 1.0272982384499850E-42 4.1949969383495368E-43 + 1.6997503107447864E-43 6.8332490709580919E-44 2.7253859795868647E-44 + 1.0783436126291773E-44 4.2323754529533330E-45 1.6477005207942280E-45 + 6.3622157166897106E-46 2.4363697271071451E-46 9.2523295879830287E-47 + 3.4841770888150162E-47 1.3009434723105846E-47 4.8160755368871412E-48 + 1.7675516405549579E-48 6.4307541818686348E-49 2.3191531078833961E-49 + 8.2897436814754651E-50 2.9367239262334376E-50 1.0310064001627382E-50 + 3.5867525509084108E-51 1.2363703739586187E-51 4.2224828731554355E-52 + 1.4286441156942662E-52 4.7883015881251490E-53 1.5896603652152308E-53 + 5.2270474171715492E-54 1.7021636530191747E-54 5.4891133646416989E-55 + 1.7527583200791563E-55 5.5414504801831270E-56 1.7344779674077939E-56 + 5.3742770982847585E-57 1.6483103231828933E-57 5.0036505520319007E-58 + 1.5032289800050909E-58 4.4690403994819049E-59 1.3146643396882071E-59 + 3.8263714290511170E-60 1.1017698293288399E-60 3.1382366606136813E-61 + 8.8415990874817825E-62 2.4636850594227939E-62 6.7890252941154693E-63 + 1.8499323095270220E-63 4.9841191678168477E-64 1.3275865663118321E-64 + 3.4957188934677218E-65 9.0984294470003386E-66 2.3405039728018730E-66 + 5.9500660354701600E-67 1.4947197051180595E-67 3.7100444502759071E-68 + 9.0977781306298804E-69 2.2038581183028755E-69 5.2732560692054987E-70 + 1.2461651412305005E-70 2.9082256860784674E-71 6.7017826529063333E-72 + 1.5248107647656079E-72 3.4249819323141901E-73 7.5939965384574939E-74 + 1.6619005315317521E-74 3.5893401709362607E-75 7.6498224360697917E-76 + 1.6086705330664630E-76 3.3374379637835627E-77 6.8303246335612777E-78 + 1.3788002870463777E-78 2.7450175640827177E-79 5.3891846092858604E-80 + 1.0432426123564409E-80 1.9910482336148862E-81 3.7459507608654323E-82 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 3.1390958082771352E+00 3.1390958082739870E+00 3.1390958082644205E+00 + 3.1390958082482672E+00 3.1390958082253548E+00 3.1390958081955045E+00 + 3.1390958081585310E+00 3.1390958081142539E+00 3.1390958080624807E+00 + 3.1390958080030193E+00 3.1390958079356719E+00 3.1390958078602380E+00 + 3.1390958077765116E+00 3.1390958076842823E+00 3.1390958075833382E+00 + 3.1390958074734585E+00 3.1390958073544213E+00 3.1390958072260005E+00 + 3.1390958070879642E+00 3.1390958069400750E+00 3.1390958067820911E+00 + 3.1390958066137662E+00 3.1390958064348506E+00 3.1390958062450864E+00 + 3.1390958060442129E+00 3.1390958058319613E+00 3.1390958056080618E+00 + 3.1390958053722380E+00 3.1390958051242022E+00 3.1390958048636692E+00 + 3.1390958045903421E+00 3.1390958043039210E+00 3.1390958040041022E+00 + 3.1390958036905685E+00 3.1390958033630039E+00 3.1390958030210823E+00 + 3.1390958026644706E+00 3.1390958022928332E+00 3.1390958019058219E+00 + 3.1390958015030872E+00 3.1390958010842707E+00 3.1390958006490042E+00 + 3.1390958001969165E+00 3.1390957997276261E+00 3.1390957992407436E+00 + 3.1390957987358759E+00 3.1390957982126180E+00 3.1390957976705605E+00 + 3.1390957971092810E+00 3.1390957965283524E+00 3.1390957959273402E+00 + 3.1390957953057983E+00 3.1390957946632758E+00 3.1390957939993056E+00 + 3.1390957933134214E+00 3.1390957926051408E+00 3.1390957918739724E+00 + 3.1390957911194199E+00 3.1390957903409737E+00 3.1390957895381124E+00 + 3.1390957887103110E+00 3.1390957878570251E+00 3.1390957869777094E+00 + 3.1390957860718016E+00 3.1390957851387302E+00 3.1390957841779130E+00 + 3.1390957831887585E+00 3.1390957821706591E+00 3.1390957811229980E+00 + 3.1390957800451500E+00 3.1390957789364697E+00 3.1390957777963071E+00 + 3.1390957766239951E+00 3.1390957754188569E+00 3.1390957741802001E+00 + 3.1390957729073201E+00 3.1390957715995000E+00 3.1390957702560054E+00 + 3.1390957688760901E+00 3.1390957674589970E+00 3.1390957660039476E+00 + 3.1390957645101545E+00 3.1390957629768121E+00 3.1390957614031012E+00 + 3.1390957597881850E+00 3.1390957581312118E+00 3.1390957564313151E+00 + 3.1390957546876090E+00 3.1390957528991921E+00 3.1390957510651467E+00 + 3.1390957491845359E+00 3.1390957472564067E+00 3.1390957452797883E+00 + 3.1390957432536881E+00 3.1390957411770994E+00 3.1390957390489933E+00 + 3.1390957368683212E+00 3.1390957346340174E+00 3.1390957323449942E+00 + 3.1390957300001405E+00 3.1390957275983302E+00 3.1390957251384135E+00 + 3.1390957226192140E+00 3.1390957200395415E+00 3.1390957173981771E+00 + 3.1390957146938807E+00 3.1390957119253939E+00 3.1390957090914235E+00 + 3.1390957061906613E+00 3.1390957032217712E+00 3.1390957001833923E+00 + 3.1390956970741382E+00 3.1390956938925973E+00 3.1390956906373293E+00 + 3.1390956873068689E+00 3.1390956838997219E+00 3.1390956804143677E+00 + 3.1390956768492559E+00 3.1390956732028084E+00 3.1390956694734156E+00 + 3.1390956656594384E+00 3.1390956617592085E+00 3.1390956577710249E+00 + 3.1390956536931562E+00 3.1390956495238354E+00 3.1390956452612686E+00 + 3.1390956409036215E+00 3.1390956364490297E+00 3.1390956318955943E+00 + 3.1390956272413790E+00 3.1390956224844122E+00 3.1390956176226856E+00 + 3.1390956126541529E+00 3.1390956075767331E+00 3.1390956023882999E+00 + 3.1390955970866941E+00 3.1390955916697134E+00 3.1390955861351135E+00 + 3.1390955804806127E+00 3.1390955747038789E+00 3.1390955688025457E+00 + 3.1390955627741990E+00 3.1390955566163785E+00 3.1390955503265792E+00 + 3.1390955439022519E+00 3.1390955373407952E+00 3.1390955306395663E+00 + 3.1390955237958682E+00 3.1390955168069561E+00 3.1390955096700326E+00 + 3.1390955023822529E+00 3.1390954949407144E+00 3.1390954873424630E+00 + 3.1390954795844910E+00 3.1390954716637336E+00 3.1390954635770734E+00 + 3.1390954553213275E+00 3.1390954468932613E+00 3.1390954382895782E+00 + 3.1390954295069213E+00 3.1390954205418695E+00 3.1390954113909406E+00 + 3.1390954020505899E+00 3.1390953925172074E+00 3.1390953827871102E+00 + 3.1390953728565556E+00 3.1390953627217257E+00 3.1390953523787402E+00 + 3.1390953418236367E+00 3.1390953310523924E+00 3.1390953200608993E+00 + 3.1390953088449800E+00 3.1390952974003796E+00 3.1390952857227639E+00 + 3.1390952738077185E+00 3.1390952616507537E+00 3.1390952492472866E+00 + 3.1390952365926617E+00 3.1390952236821295E+00 3.1390952105108583E+00 + 3.1390951970739271E+00 3.1390951833663236E+00 3.1390951693829421E+00 + 3.1390951551185879E+00 3.1390951405679668E+00 3.1390951257256900E+00 + 3.1390951105862706E+00 3.1390950951441181E+00 3.1390950793935435E+00 + 3.1390950633287518E+00 3.1390950469438406E+00 3.1390950302328018E+00 + 3.1390950131895194E+00 3.1390949958077590E+00 3.1390949780811805E+00 + 3.1390949600033209E+00 3.1390949415676026E+00 3.1390949227673293E+00 + 3.1390949035956779E+00 3.1390948840457038E+00 3.1390948641103380E+00 + 3.1390948437823778E+00 3.1390948230544913E+00 3.1390948019192120E+00 + 3.1390947803689402E+00 3.1390947583959323E+00 3.1390947359923080E+00 + 3.1390947131500431E+00 3.1390946898609671E+00 3.1390946661167560E+00 + 3.1390946419089412E+00 3.1390946172288934E+00 3.1390945920678335E+00 + 3.1390945664168157E+00 3.1390945402667363E+00 3.1390945136083208E+00 + 3.1390944864321324E+00 3.1390944587285570E+00 3.1390944304878086E+00 + 3.1390944016999223E+00 3.1390943723547537E+00 3.1390943424419708E+00 + 3.1390943119510561E+00 3.1390942808713036E+00 3.1390942491918037E+00 + 3.1390942169014608E+00 3.1390941839889672E+00 3.1390941504428165E+00 + 3.1390941162512900E+00 3.1390940814024595E+00 3.1390940458841770E+00 + 3.1390940096840749E+00 3.1390939727895617E+00 3.1390939351878178E+00 + 3.1390938968657918E+00 3.1390938578101930E+00 3.1390938180074897E+00 + 3.1390937774439092E+00 3.1390937361054254E+00 3.1390936939777561E+00 + 3.1390936510463674E+00 3.1390936072964557E+00 3.1390935627129499E+00 + 3.1390935172805072E+00 3.1390934709835077E+00 3.1390934238060466E+00 + 3.1390933757319357E+00 3.1390933267446841E+00 3.1390932768275124E+00 + 3.1390932259633333E+00 3.1390931741347492E+00 3.1390931213240507E+00 + 3.1390930675132034E+00 3.1390930126838503E+00 3.1390929568173043E+00 + 3.1390928998945338E+00 3.1390928418961672E+00 3.1390927828024844E+00 + 3.1390927225934031E+00 3.1390926612484833E+00 3.1390925987469123E+00 + 3.1390925350675047E+00 3.1390924701886895E+00 3.1390924040885011E+00 + 3.1390923367445902E+00 3.1390922681341902E+00 3.1390921982341307E+00 + 3.1390921270208225E+00 3.1390920544702459E+00 3.1390919805579518E+00 + 3.1390919052590487E+00 3.1390918285481946E+00 3.1390917503995914E+00 + 3.1390916707869758E+00 3.1390915896836051E+00 3.1390915070622629E+00 + 3.1390914228952358E+00 3.1390913371543094E+00 3.1390912498107655E+00 + 3.1390911608353638E+00 3.1390910701983366E+00 3.1390909778693827E+00 + 3.1390908838176501E+00 3.1390907880117327E+00 3.1390906904196587E+00 + 3.1390905910088813E+00 3.1390904897462617E+00 3.1390903865980686E+00 + 3.1390902815299602E+00 3.1390901745069764E+00 3.1390900654935305E+00 + 3.1390899544533877E+00 3.1390898413496657E+00 3.1390897261448174E+00 + 3.1390896088006177E+00 3.1390894892781511E+00 3.1390893675378075E+00 + 3.1390892435392570E+00 3.1390891172414479E+00 3.1390889886025835E+00 + 3.1390888575801239E+00 3.1390887241307532E+00 3.1390885882103841E+00 + 3.1390884497741305E+00 3.1390883087763020E+00 3.1390881651703784E+00 + 3.1390880189090149E+00 3.1390878699440061E+00 3.1390877182262753E+00 + 3.1390875637058748E+00 3.1390874063319516E+00 3.1390872460527333E+00 + 3.1390870828155255E+00 3.1390869165666802E+00 3.1390867472515871E+00 + 3.1390865748146513E+00 3.1390863991992806E+00 3.1390862203478642E+00 + 3.1390860382017549E+00 3.1390858527012533E+00 3.1390856637855813E+00 + 3.1390854713928773E+00 3.1390852754601597E+00 3.1390850759233180E+00 + 3.1390848727170888E+00 3.1390846657750395E+00 3.1390844550295349E+00 + 3.1390842404117349E+00 3.1390840218515552E+00 3.1390837992776555E+00 + 3.1390835726174116E+00 3.1390833417968991E+00 3.1390831067408613E+00 + 3.1390828673726898E+00 3.1390826236144029E+00 3.1390823753866162E+00 + 3.1390821226085208E+00 3.1390818651978574E+00 3.1390816030708883E+00 + 3.1390813361423704E+00 3.1390810643255342E+00 3.1390807875320497E+00 + 3.1390805056720015E+00 3.1390802186538611E+00 3.1390799263844542E+00 + 3.1390796287689380E+00 3.1390793257107656E+00 3.1390790171116567E+00 + 3.1390787028715663E+00 3.1390783828886564E+00 3.1390780570592627E+00 + 3.1390777252778541E+00 3.1390773874370144E+00 3.1390770434273958E+00 + 3.1390766931376883E+00 3.1390763364545831E+00 3.1390759732627451E+00 + 3.1390756034447653E+00 3.1390752268811299E+00 3.1390748434501816E+00 + 3.1390744530280821E+00 3.1390740554887699E+00 3.1390736507039239E+00 + 3.1390732385429208E+00 3.1390728188727963E+00 3.1390723915582024E+00 + 3.1390719564613621E+00 3.1390715134420302E+00 3.1390710623574440E+00 + 3.1390706030622861E+00 3.1390701354086308E+00 3.1390696592458989E+00 + 3.1390691744208152E+00 3.1390686807773562E+00 3.1390681781567000E+00 + 3.1390676663971830E+00 3.1390671453342378E+00 3.1390666148003490E+00 + 3.1390660746250063E+00 3.1390655246346317E+00 3.1390649646525466E+00 + 3.1390643944989027E+00 3.1390638139906279E+00 3.1390632229413753E+00 + 3.1390626211614503E+00 3.1390620084577683E+00 3.1390613846337803E+00 + 3.1390607494894192E+00 3.1390601028210314E+00 3.1390594444213176E+00 + 3.1390587740792624E+00 3.1390580915800741E+00 3.1390573967051090E+00 + 3.1390566892318126E+00 3.1390559689336390E+00 3.1390552355799937E+00 + 3.1390544889361420E+00 3.1390537287631504E+00 3.1390529548178101E+00 + 3.1390521668525513E+00 3.1390513646153737E+00 3.1390505478497635E+00 + 3.1390497162946187E+00 3.1390488696841570E+00 3.1390480077478395E+00 + 3.1390471302102827E+00 3.1390462367911764E+00 3.1390453272051864E+00 + 3.1390444011618781E+00 3.1390434583656135E+00 3.1390424985154586E+00 + 3.1390415213051019E+00 3.1390405264227441E+00 3.1390395135510021E+00 + 3.1390384823668191E+00 3.1390374325413526E+00 3.1390363637398715E+00 + 3.1390352756216631E+00 3.1390341678399079E+00 3.1390330400415873E+00 + 3.1390318918673610E+00 3.1390307229514591E+00 3.1390295329215685E+00 + 3.1390283213987122E+00 3.1390270879971367E+00 3.1390258323241786E+00 + 3.1390245539801582E+00 3.1390232525582373E+00 3.1390219276443032E+00 + 3.1390205788168357E+00 3.1390192056467696E+00 3.1390178076973658E+00 + 3.1390163845240759E+00 3.1390149356743948E+00 3.1390134606877242E+00 + 3.1390119590952281E+00 3.1390104304196855E+00 3.1390088741753366E+00 + 3.1390072898677364E+00 3.1390056769935928E+00 3.1390040350406179E+00 + 3.1390023634873563E+00 3.1390006618030291E+00 3.1389989294473675E+00 + 3.1389971658704403E+00 3.1389953705124762E+00 3.1389935428037026E+00 + 3.1389916821641513E+00 3.1389897880034900E+00 3.1389878597208241E+00 + 3.1389858967045203E+00 3.1389838983320075E+00 3.1389818639695801E+00 + 3.1389797929722070E+00 3.1389776846833248E+00 3.1389755384346274E+00 + 3.1389733535458646E+00 3.1389711293246254E+00 3.1389688650661167E+00 + 3.1389665600529524E+00 3.1389642135549147E+00 3.1389618248287379E+00 + 3.1389593931178705E+00 3.1389569176522349E+00 3.1389543976479897E+00 + 3.1389518323072827E+00 3.1389492208180041E+00 3.1389465623535258E+00 + 3.1389438560724439E+00 3.1389411011183204E+00 3.1389382966194086E+00 + 3.1389354416883863E+00 3.1389325354220681E+00 3.1389295769011301E+00 + 3.1389265651898191E+00 3.1389234993356623E+00 3.1389203783691633E+00 + 3.1389172013035029E+00 3.1389139671342314E+00 3.1389106748389426E+00 + 3.1389073233769702E+00 3.1389039116890496E+00 3.1389004386969921E+00 + 3.1388969033033414E+00 3.1388933043910359E+00 3.1388896408230575E+00 + 3.1388859114420691E+00 3.1388821150700639E+00 3.1388782505079829E+00 + 3.1388743165353548E+00 3.1388703119098937E+00 3.1388662353671331E+00 + 3.1388620856200116E+00 3.1388578613584786E+00 3.1388535612490815E+00 + 3.1388491839345503E+00 3.1388447280333693E+00 3.1388401921393485E+00 + 3.1388355748211811E+00 3.1388308746219939E+00 3.1388260900588936E+00 + 3.1388212196225029E+00 3.1388162617764888E+00 3.1388112149570748E+00 + 3.1388060775725628E+00 3.1388008480028233E+00 3.1387955245988008E+00 + 3.1387901056819816E+00 3.1387845895438868E+00 3.1387789744455246E+00 + 3.1387732586168475E+00 3.1387674402562080E+00 3.1387615175297841E+00 + 3.1387554885710043E+00 3.1387493514799809E+00 3.1387431043228933E+00 + 3.1387367451313977E+00 3.1387302719020069E+00 3.1387236825954639E+00 + 3.1387169751361026E+00 3.1387101474111989E+00 3.1387031972703161E+00 + 3.1386961225246210E+00 3.1386889209462123E+00 3.1386815902674101E+00 + 3.1386741281800585E+00 3.1386665323348000E+00 3.1386588003403362E+00 + 3.1386509297626910E+00 3.1386429181244360E+00 3.1386347629039273E+00 + 3.1386264615345119E+00 3.1386180114037274E+00 3.1386094098524819E+00 + 3.1386006541742293E+00 3.1385917416141180E+00 3.1385826693681311E+00 + 3.1385734345822125E+00 3.1385640343513699E+00 3.1385544657187783E+00 + 3.1385447256748384E+00 3.1385348111562528E+00 3.1385247190450634E+00 + 3.1385144461676728E+00 3.1385039892938580E+00 3.1384933451357635E+00 + 3.1384825103468672E+00 3.1384714815209405E+00 3.1384602551909846E+00 + 3.1384488278281477E+00 3.1384371958406181E+00 3.1384253555725090E+00 + 3.1384133033027166E+00 3.1384010352437537E+00 3.1383885475405706E+00 + 3.1383758362693537E+00 3.1383628974363020E+00 3.1383497269763669E+00 + 3.1383363207520030E+00 3.1383226745518664E+00 3.1383087840894976E+00 + 3.1382946450019968E+00 3.1382802528486478E+00 3.1382656031095442E+00 + 3.1382506911841710E+00 3.1382355123899766E+00 3.1382200619609084E+00 + 3.1382043350459283E+00 3.1381883267074944E+00 3.1381720319200337E+00 + 3.1381554455683651E+00 3.1381385624461058E+00 3.1381213772540484E+00 + 3.1381038845985154E+00 3.1380860789896681E+00 3.1380679548398080E+00 + 3.1380495064616203E+00 3.1380307280664179E+00 3.1380116137623242E+00 + 3.1379921575524490E+00 3.1379723533330099E+00 3.1379521948914397E+00 + 3.1379316759044480E+00 3.1379107899360523E+00 3.1378895304355741E+00 + 3.1378678907355995E+00 3.1378458640499054E+00 3.1378234434713432E+00 + 3.1378006219696934E+00 3.1377773923894758E+00 3.1377537474477202E+00 + 3.1377296797317071E+00 3.1377051816966586E+00 3.1376802456633852E+00 + 3.1376548638159090E+00 3.1376290281990271E+00 3.1376027307158361E+00 + 3.1375759631252169E+00 3.1375487170392766E+00 3.1375209839207336E+00 + 3.1374927550802707E+00 3.1374640216738361E+00 3.1374347746998881E+00 + 3.1374050049966060E+00 3.1373747032390442E+00 3.1373438599362298E+00 + 3.1373124654282223E+00 3.1372805098831145E+00 3.1372479832939701E+00 + 3.1372148754757365E+00 3.1371811760620703E+00 3.1371468745021232E+00 + 3.1371119600572679E+00 3.1370764217977762E+00 3.1370402485994200E+00 + 3.1370034291400231E+00 3.1369659518959572E+00 3.1369278051385661E+00 + 3.1368889769305324E+00 3.1368494551221739E+00 3.1368092273476900E+00 + 3.1367682810213209E+00 3.1367266033334613E+00 3.1366841812466806E+00 + 3.1366410014917028E+00 3.1365970505632905E+00 3.1365523147160674E+00 + 3.1365067799602699E+00 3.1364604320574134E+00 3.1364132565158984E+00 + 3.1363652385865253E+00 3.1363163632579378E+00 3.1362666152519796E+00 + 3.1362159790189845E+00 3.1361644387329637E+00 3.1361119782867228E+00 + 3.1360585812868922E+00 3.1360042310488665E+00 3.1359489105916487E+00 + 3.1358926026326293E+00 3.1358352895822343E+00 3.1357769535385240E+00 + 3.1357175762816603E+00 3.1356571392682988E+00 3.1355956236258722E+00 + 3.1355330101467875E+00 3.1354692792825043E+00 3.1354044111375154E+00 + 3.1353383854632382E+00 3.1352711816517735E+00 3.1352027787295755E+00 + 3.1351331553510020E+00 3.1350622897917573E+00 3.1349901599422187E+00 + 3.1349167433006393E+00 3.1348420169662563E+00 3.1347659576322453E+00 + 3.1346885415785808E+00 3.1346097446647629E+00 3.1345295423224124E+00 + 3.1344479095477435E+00 3.1343648208939086E+00 3.1342802504632026E+00 + 3.1341941718991335E+00 3.1341065583783680E+00 3.1340173826025195E+00 + 3.1339266167898101E+00 3.1338342326665707E+00 3.1337402014586200E+00 + 3.1336444938824659E+00 3.1335470801363758E+00 3.1334479298912896E+00 + 3.1333470122815630E+00 3.1332442958955697E+00 3.1331397487661312E+00 + 3.1330333383607831E+00 3.1329250315718769E+00 3.1328147947065133E+00 + 3.1327025934762922E+00 3.1325883929869018E+00 3.1324721577275243E+00 + 3.1323538515600498E+00 3.1322334377081238E+00 3.1321108787459915E+00 + 3.1319861365871646E+00 3.1318591724728790E+00 3.1317299469603808E+00 + 3.1315984199109774E+00 3.1314645504779230E+00 3.1313282970940728E+00 + 3.1311896174593357E+00 3.1310484685279114E+00 3.1309048064953191E+00 + 3.1307585867851921E+00 3.1306097640358672E+00 3.1304582920867348E+00 + 3.1303041239643528E+00 3.1301472118683504E+00 3.1299875071570677E+00 + 3.1298249603329684E+00 3.1296595210278055E+00 3.1294911379875296E+00 + 3.1293197590569601E+00 3.1291453311641892E+00 3.1289678003047148E+00 + 3.1287871115253294E+00 3.1286032089077338E+00 3.1284160355518575E+00 + 3.1282255335589393E+00 3.1280316440142832E+00 3.1278343069697669E+00 + 3.1276334614260350E+00 3.1274290453144080E+00 3.1272209954784884E+00 + 3.1270092476554656E+00 3.1267937364571141E+00 3.1265743953504699E+00 + 3.1263511566382016E+00 3.1261239514386516E+00 3.1258927096655551E+00 + 3.1256573600074220E+00 3.1254178299065836E+00 3.1251740455379049E+00 + 3.1249259317871467E+00 3.1246734122289599E+00 3.1244164091045605E+00 + 3.1241548432990047E+00 3.1238886343181202E+00 3.1236177002650551E+00 + 3.1233419578164625E+00 3.1230613221982866E+00 3.1227757071611717E+00 + 3.1224850249554730E+00 3.1221891863058815E+00 3.1218881003856205E+00 + 3.1215816747902609E+00 3.1212698155111047E+00 3.1209524269081457E+00 + 3.1206294116826245E+00 3.1203006708491259E+00 3.1199661037072639E+00 + 3.1196256078128961E+00 3.1192790789489280E+00 3.1189264110956199E+00 + 3.1185674964004684E+00 3.1182022251476060E+00 3.1178304857267287E+00 + 3.1174521646015543E+00 3.1170671462777939E+00 3.1166753132706284E+00 + 3.1162765460717079E+00 3.1158707231156288E+00 3.1154577207459151E+00 + 3.1150374131804970E+00 3.1146096724766532E+00 3.1141743684954442E+00 + 3.1137313688656016E+00 3.1132805389469080E+00 3.1128217417930006E+00 + 3.1123548381136579E+00 3.1118796862365210E+00 3.1113961420682563E+00 + 3.1109040590551591E+00 3.1104032881431811E+00 3.1098936777373956E+00 + 3.1093750736608756E+00 3.1088473191129742E+00 3.1083102546270394E+00 + 3.1077637180275119E+00 3.1072075443864309E+00 3.1066415659793369E+00 + 3.1060656122405539E+00 3.1054795097178598E+00 3.1048830820265465E+00 + 3.1042761498028328E+00 3.1036585306566717E+00 3.1030300391239107E+00 + 3.1023904866178080E+00 3.1017396813799296E+00 3.1010774284303757E+00 + 3.1004035295173722E+00 3.0997177830662084E+00 3.0990199841275134E+00 + 3.0983099243248788E+00 3.0975873918018237E+00 3.0968521711680741E+00 + 3.0961040434452207E+00 3.0953427860116522E+00 3.0945681725468668E+00 + 3.0937799729750881E+00 3.0929779534082158E+00 3.0921618760881064E+00 + 3.0913314993281742E+00 3.0904865774543309E+00 3.0896268607452404E+00 + 3.0887520953719174E+00 3.0878620233366423E+00 3.0869563824112167E+00 + 3.0860349060745569E+00 3.0850973234496109E+00 3.0841433592396394E+00 + 3.0831727336638117E+00 3.0821851623921841E+00 3.0811803564800018E+00 + 3.0801580223013918E+00 3.0791178614823909E+00 3.0780595708333740E+00 + 3.0769828422808527E+00 3.0758873627986634E+00 3.0747728143385524E+00 + 3.0736388737601832E+00 3.0724852127605558E+00 3.0713114978028493E+00 + 3.0701173900447318E+00 3.0689025452661118E+00 3.0676666137963635E+00 + 3.0664092404410592E+00 3.0651300644081831E+00 3.0638287192338889E+00 + 3.0625048327077837E+00 3.0611580267977931E+00 3.0597879175745994E+00 + 3.0583941151356786E+00 3.0569762235289937E+00 3.0555338406763188E+00 + 3.0540665582962614E+00 3.0525739618269894E+00 3.0510556303487002E+00 + 3.0495111365058705E+00 3.0479400464292934E+00 3.0463419196579675E+00 + 3.0447163090608753E+00 3.0430627607586374E+00 3.0413808140451639E+00 + 3.0396700013092710E+00 3.0379298479563568E+00 3.0361598723301446E+00 + 3.0343595856345829E+00 3.0325284918559063E+00 3.0306660876849447E+00 + 3.0287718624397231E+00 3.0268452979884022E+00 3.0248858686726372E+00 + 3.0228930412313937E+00 3.0208662747253063E+00 3.0188050204616275E+00 + 3.0167087219198656E+00 3.0145768146781462E+00 3.0124087263404018E+00 + 3.0102038764644594E+00 3.0079616764911088E+00 3.0056815296742281E+00 + 3.0033628310120655E+00 3.0010049671797736E+00 2.9986073164632527E+00 + 2.9961692486944700E+00 2.9936901251882797E+00 2.9911692986809100E+00 + 2.9886061132701900E+00 2.9859999043576457E+00 2.9833499985925704E+00 + 2.9806557138182059E+00 2.9779163590201385E+00 2.9751312342770659E+00 + 2.9722996307140241E+00 2.9694208304582763E+00 2.9664941065979260E+00 + 2.9635187231434812E+00 2.9604939349924493E+00 2.9574189878971695E+00 + 2.9542931184360164E+00 2.9511155539881369E+00 2.9478855127119137E+00 + 2.9446022035272965E+00 2.9412648261022096E+00 2.9378725708431990E+00 + 2.9344246188905196E+00 2.9309201421178526E+00 2.9273583031368462E+00 + 2.9237382553066991E+00 2.9200591427489826E+00 2.9163201003679178E+00 + 2.9125202538763277E+00 2.9086587198275002E+00 2.9047346056531764E+00 + 2.9007470097079104E+00 2.8966950213200264E+00 2.8925777208494416E+00 + 2.8883941797525909E+00 2.8841434606547036E+00 2.8798246174297080E+00 + 2.8754366952880166E+00 2.8709787308724790E+00 2.8664497523627421E+00 + 2.8618487795883563E+00 2.8571748241508383E+00 2.8524268895550513E+00 + 2.8476039713501335E+00 2.8427050572803183E+00 2.8377291274459138E+00 + 2.8326751544747690E+00 2.8275421037045065E+00 2.8223289333758523E+00 + 2.8170345948373825E+00 2.8116580327619638E+00 2.8061981853752394E+00 + 2.8006539846964689E+00 2.7950243567920259E+00 2.7893082220418943E+00 + 2.7835044954194648E+00 2.7776120867849627E+00 2.7716299011928172E+00 + 2.7655568392132897E+00 2.7593917972686821E+00 2.7531336679844292E+00 + 2.7467813405553834E+00 2.7403337011275952E+00 2.7337896331959084E+00 + 2.7271480180176213E+00 2.7204077350425386E+00 2.7135676623596816E+00 + 2.7066266771609153E+00 2.6995836562217757E+00 2.6924374763997232E+00 + 2.6851870151500852E+00 2.6778311510598964E+00 2.6703687643998681E+00 + 2.6627987376946582E+00 2.6551199563116659E+00 2.6473313090684645E+00 + 2.6394316888590716E+00 2.6314199932991471E+00 2.6232951253902335E+00 + 2.6150559942031384E+00 2.6067015155804976E+00 2.5982306128585688E+00 + 2.5896422176082536E+00 2.5809352703953334E+00 2.5721087215598741E+00 + 2.5631615320146959E+00 2.5540926740628422E+00 2.5449011322338499E+00 + 2.5355859041386619E+00 2.5261460013429788E+00 2.5165804502587630E+00 + 2.5068882930536303E+00 2.4970685885777573E+00 2.4871204133079785E+00 + 2.4770428623086085E+00 2.4668350502085334E+00 2.4564961121941069E+00 + 2.4460252050172291E+00 2.4354215080180848E+00 2.4246842241618256E+00 + 2.4138125810885813E+00 2.4028058321759960E+00 2.3916632576135526E+00 + 2.3803841654878459E+00 2.3689678928779303E+00 2.3574138069598285E+00 + 2.3457213061192275E+00 2.3338898210714212E+00 2.3219188159873854E+00 + 2.3098077896249491E+00 2.2975562764639941E+00 2.2851638478444696E+00 + 2.2726301131061071E+00 2.2599547207286723E+00 2.2471373594714930E+00 + 2.2341777595110974E+00 2.2210756935757314E+00 2.2078309780755512E+00 + 2.1944434742272465E+00 2.1809130891719439E+00 2.1672397770852112E+00 + 2.1534235402780220E+00 2.1394644302875858E+00 2.1253625489570491E+00 + 2.1111180495030570E+00 2.0967311375703126E+00 2.0822020722723140E+00 + 2.0675311672176311E+00 2.0527187915210900E+00 2.0377653707994403E+00 + 2.0226713881512772E+00 2.0074373851210083E+00 1.9920639626469929E+00 + 1.9765517819940712E+00 1.9609015656710242E+00 1.9451140983336030E+00 + 1.9291902276741166E+00 1.9131308652988768E+00 1.8969369875949118E+00 + 1.8806096365878657E+00 1.8641499207931933E+00 1.8475590160631468E+00 + 1.8308381664323683E+00 1.8139886849653082E+00 1.7970119546090635E+00 + 1.7799094290555504E+00 1.7626826336173793E+00 1.7453331661222373E+00 + 1.7278626978308429E+00 1.7102729743840888E+00 1.6925658167852624E+00 + 1.6747431224237253E+00 1.6568068661466631E+00 1.6387591013859681E+00 + 1.6206019613476306E+00 1.6023376602711970E+00 1.5839684947671941E+00 + 1.5654968452406199E+00 1.5469251774086030E+00 1.5282560439205717E+00 + 1.5094920860891199E+00 1.4906360357397919E+00 1.4716907171876688E+00 + 1.4526590493484530E+00 1.4335440479913115E+00 1.4143488281400853E+00 + 1.3950766066288849E+00 1.3757307048172145E+00 1.3563145514686406E+00 + 1.3368316857959486E+00 1.3172857606742117E+00 1.2976805460216818E+00 + 1.2780199323464674E+00 1.2583079344549781E+00 1.2385486953158642E+00 + 1.2187464900704685E+00 1.1989057301781927E+00 1.1790309676819954E+00 + 1.1591268995760486E+00 1.1391983722538357E+00 1.1192503860113194E+00 + 1.0992880995756722E+00 1.0793168346256861E+00 1.0593420802655409E+00 + 1.0393694974088810E+00 1.0194049230251396E+00 9.9945437419513727E-01 + 9.7952405191772063E-01 9.5962034460410561E-01 9.3974983119121513E-01 + 9.1991928380025401E-01 9.0013566986166571E-01 8.8040615362267138E-01 + 8.6073809694903325E-01 8.4113905932846256E-01 8.2161679697914902E-01 + 8.0217926096376546E-01 7.8283459420660040E-01 7.6359112730975143E-01 + 7.4445737306324811E-01 7.2544201954418952E-01 7.0655392170121134E-01 + 6.8780209132303771E-01 6.6919568529392004E-01 6.5074399204414568E-01 + 6.3245641611101888E-01 6.1434246073448029E-01 5.9641170842242153E-01 + 5.7867379943345498E-01 5.6113840813960325E-01 5.4381521724830828E-01 + 5.2671388988217116E-01 5.0984403953580471E-01 4.9321519795255603E-01 + 4.7683678098893822E-01 4.6071805256189596E-01 4.4486808680282358E-01 + 4.2929572857287934E-01 4.1400955252598187E-01 3.9901782093871252E-01 + 3.8432844056007737E-01 3.6994891876792813E-01 3.5588631935273096E-01 + 3.4214721828244243E-01 3.2873765983432729E-01 3.1566311350978765E-01 + 3.0292843217604121E-01 2.9053781190338235E-01 2.7849475398784007E-01 + 2.6680227012242880E-01 2.5546357114826024E-01 2.4448131878249627E-01 + 2.3385736573698873E-01 2.2359274031422915E-01 2.1368763495027301E-01 + 2.0414139906534531E-01 1.9495253653563546E-01 1.8611870804467237E-01 + 1.7763673851099218E-01 1.6950262972040925E-01 1.6171157821839813E-01 + 1.5425799844098509E-01 1.4713555098386444E-01 1.4033717583042779E-01 + 1.3385513028246379E-01 1.2768103126461719E-01 1.2180590160767837E-01 + 1.1622021985910096E-01 1.1091397312410643E-01 1.0587671240994331E-01 + 1.0109760993143051E-01 9.6565517839885692E-02 9.2269027861388173E-02 + 8.8196531374988285E-02 8.4336279527357311E-02 8.0676751940355340E-02 + 7.7207748844262292E-02 7.3919683504903105E-02 7.0803304095992628E-02 + 6.7849693912236955E-02 6.5050270469709001E-02 6.2396783585276616E-02 + 5.9881312526671580E-02 5.7496262323869222E-02 5.5234359330742895E-02 + 5.3088646123365640E-02 5.1052475817826889E-02 4.9119505886020910E-02 + 4.7283691542583134E-02 4.5539278770132377E-02 4.3880797043383803E-02 + 4.2303051805781922E-02 4.0801116745327874E-02 3.9370325909536673E-02 + 3.8006265693257976E-02 3.6704766727656518E-02 3.5461895694181893E-02 + 3.4273947083942276E-02 3.3137434920577087E-02 3.2049084463366982E-02 + 3.1005823906878702E-02 3.0004776093561451E-02 2.9043250256327556E-02 + 2.8118733808917020E-02 2.7228884202419156E-02 2.6371520867136376E-02 + 2.5544617259186254E-02 2.4746293030788121E-02 2.3974806342818619E-02 + 2.3228546337237178E-02 2.2506025785730872E-02 2.1805873929253525E-02 + 2.1126829521454071E-02 2.0467734087066081E-02 1.9827525404408727E-02 + 1.9205231219230075E-02 1.8599963195274787E-02 1.8010911105204790E-02 + 1.7437337263883499E-02 1.6878571204557657E-02 1.6334004597144857E-02 + 1.5803086406665567E-02 1.5285318288833151E-02 1.4780250218935184E-02 + 1.4287476349386029E-02 1.3806631090702674E-02 1.3337385410136755E-02 + 1.2879443341775539E-02 1.2432538701599568E-02 1.1996432000740721E-02 + 1.1570907550016206E-02 1.1155770748718475E-02 1.0750845550607277E-02 + 1.0355972100078908E-02 9.9710045315689697E-03 9.5958089253799349E-03 + 9.2302614133037350E-03 8.8742464276288114E-03 8.5276550873755585E-03 + 8.1903837158839709E-03 7.8623324841765162E-03 7.5434041748264997E-03 + 7.2335030613696928E-03 6.9325338985926788E-03 6.6404010193041561E-03 + 6.3570075334380234E-03 6.0822546255377445E-03 5.8160409468236349E-03 + 5.5582620981447948E-03 5.3088102001602761E-03 5.0675735470823383E-03 + 4.8344363402491796E-03 4.6092784976837350E-03 4.3919755356456366E-03 + 4.1823985180056093E-03 3.9804140690797079E-03 3.7858844453635804E-03 + 3.5986676614207713E-03 3.4186176650126748E-03 3.2455845564011692E-03 + 3.0794148467669464E-03 2.9199517504800532E-03 2.7670355060178862E-03 + 2.6205037204799749E-03 2.4801917326623454E-03 2.3459329898458990E-03 + 2.2175594336636467E-03 2.0949018906648853E-03 1.9777904634830407E-03 + 1.8660549188322286E-03 1.7595250688973970E-03 1.6580311430375344E-03 + 1.5614041470841606E-03 1.4694762078813863E-03 1.3820809010733309E-03 + 1.2990535604951216E-03 1.2202315678598848E-03 1.1454546217532534E-03 + 1.0745649852454242E-03 1.0074077117073717E-03 9.4383084867042289E-04 + 8.8368561979639438E-04 8.2682658522887449E-04 7.7311178077474211E-04 + 7.2240283651938276E-04 6.7456507561029278E-04 6.2946759405260668E-04 + 5.8698332244811542E-04 5.4698907067770946E-04 5.0936555657753971E-04 + 4.7399741969296011E-04 4.4077322121293495E-04 4.0958543119280847E-04 + 3.8033040416635583E-04 3.5290834423050584E-04 3.2722326065928183E-04 + 3.0318291506879470E-04 2.8069876111375770E-04 2.5968587764911615E-04 + 2.4006289623929985E-04 2.2175192384324627E-04 2.0467846144676865E-04 + 1.8877131935606661E-04 1.7396252980797131E-04 1.6018725749478881E-04 + 1.4738370854499295E-04 1.3549303844625056E-04 1.2445925934484009E-04 + 1.1422914710591665E-04 1.0475214847270013E-04 9.5980288619749640E-05 + 8.7868079356229155E-05 8.0372428199593915E-05 7.3452548508387135E-05 + 6.7069870834813187E-05 6.1187955633258055E-05 5.5772407439802146E-05 + 5.0790790619736637E-05 4.6212546764869502E-05 4.2008913809705424E-05 + 3.8152846925048338E-05 3.4618941238914649E-05 3.1383356427513298E-05 + 2.8423743213172576E-05 2.5719171801174353E-05 2.3250062283247339E-05 + 2.0998117031760566E-05 1.8946255105249446E-05 1.7078548682644276E-05 + 1.5380161540344420E-05 1.3837289582985871E-05 1.2437103435335299E-05 + 1.1167693099164763E-05 1.0018014675212432E-05 8.9778391464155003E-06 + 8.0377032145344068E-06 7.1888621781071680E-06 6.4232448354175126E-06 + 5.7334103918802596E-06 5.1125073469896216E-06 4.5542343317950172E-06 + 4.0528028638110775E-06 3.6029019823817701E-06 3.1996647238467433E-06 + 2.8386363924370052E-06 2.5157445796894619E-06 2.2272708823428898E-06 + 1.9698242661793507E-06 1.7403160211208581E-06 1.5359362510873652E-06 + 1.3541318406728436E-06 1.1925858395978282E-06 1.0491982051421846E-06 + 9.2206784234040238E-07 8.0947588161815131E-07 7.0987013374576629E-07 + 6.2185066246228718E-07 5.4415641586047831E-07 4.7565285859649965E-07 + 4.1532054817353568E-07 3.6224459992298803E-07 3.1560498684554638E-07 + 2.7466762215390076E-07 2.3877617415616589E-07 2.0734456501182640E-07 + 1.7985010685929764E-07 1.5582723083596709E-07 1.3486176656947079E-07 + 1.1658573179574529E-07 1.0067259383949777E-07 8.6832966762073005E-08 + 7.4810710027608603E-08 6.4379396549729972E-08 5.5339119948199623E-08 + 4.7513612759531340E-08 4.0747649200684399E-08 3.4904707874775774E-08 + 2.9864871527756906E-08 2.5522942611660330E-08 2.1786754980829642E-08 + 1.8575663540889510E-08 1.5819195085269560E-08 1.3455844890776003E-08 + 1.1432004902554813E-08 9.7010105208906932E-09 8.2222941092114240E-09 + 6.9606343763752100E-09 5.8854917491132606E-09 4.9704207449427204E-09 + 4.1925511847350997E-09 3.5321308503606918E-09 2.9721228994742704E-09 + 2.4978519996806221E-09 2.0966937411660023E-09 1.7578024335517472E-09 + 1.4718728923351142E-09 1.2309322758934575E-09 1.0281584486317982E-09 + 8.5772172234857620E-10 7.1464716907527030E-10 5.9469500719308835E-10 + 4.9425684110118635E-10 4.1026578553583257E-10 3.4011873111619652E-10 + 2.8160920998506776E-10 2.3286950155298951E-10 1.9232078024161116E-10 + 1.5863025152649521E-10 1.3067435114480488E-10 1.0750719658091185E-10 + 8.8333581277417675E-11 7.2485891732458247E-11 5.9404406922128300E-11 + 4.8620509414071298E-11 3.9742399104522328E-11 3.2442954616976356E-11 + 2.6449434863667378E-11 2.1534754831274384E-11 1.7510105978027853E-11 + 1.4218723322764175E-11 1.1530628908518208E-11 9.3382053190544638E-12 + 7.5524737501935528E-12 6.0999691760839574E-12 4.9201207484375353E-12 + 3.9630590304244559E-12 3.1877832678493264E-12 2.5606318784665472E-12 + 2.0540079076803704E-12 1.6453185419576653E-12 1.3160940539624647E-12 + 1.0512569194132195E-12 8.3851642070161552E-13 6.6786794617574247E-13 + 5.3117950232666547E-13 4.2185076208793117E-13 3.3453234821975170E-13 + 2.6489505877325250E-13 2.0944043586769638E-13 1.6534550617819324E-13 + 1.3033572269146794E-13 1.0258113538334346E-13 8.0611680344732326E-14 + 6.3248288970182365E-14 4.9546300237003715E-14 3.8750795101273951E-14 + 3.0258511687719160E-14 2.3588846986457382E-14 1.8359050578441029E-14 + 1.4264941853707465E-14 1.1065162230769151E-14 8.5685049953911143E-15 + 6.6237372716722553E-15 5.1114368355622360E-15 3.9374553071664739E-15 + 3.0276920622344609E-15 2.3239227765891193E-15 1.7804751838232962E-15 + 1.3615843174781130E-15 1.0392918259536469E-15 7.9178021789438862E-16 + 6.0205421395426273E-16 4.5689865209936588E-16 3.4605636281061813E-16 + 2.6158071006235100E-16 1.9732658631685438E-16 1.4855096667629352E-16 + 1.1160000543822555E-16 8.3664372440125028E-17 6.2588300710349075E-17 + 4.6720833249650823E-17 3.4800163185824727E-17 2.5863877991790875E-17 + 1.9179441967514236E-17 1.4190460135085043E-17 1.0475224278380771E-17 + 7.7147989357685512E-18 5.6685025885800631E-18 4.1551098487545699E-18 + 3.0384703669915677E-18 2.2165304164432407E-18 1.6129703710087496E-18 + 1.1708488966436155E-18 8.4778317949470641E-19 6.1230230829564393E-19 + 4.4109464407988215E-19 3.1693488754406893E-19 2.2712672352738039E-19 + 1.6233563209315717E-19 1.1571625716473805E-19 8.2261614605507385E-20 + 5.8318963887020577E-20 4.1230579283649258E-20 2.9067885970061263E-20 + 2.0435209693643546E-20 1.4325296218935425E-20 1.0013229351985953E-20 + 6.9787539924460357E-21 4.8495548266860031E-21 3.3599526250423125E-21 + 2.3209122309502680E-21 1.5983264935347357E-21 1.0973378966853510E-21 + 7.5105230016821174E-22 5.1243840719977094E-22 3.4853111853915867E-22 + 2.3629606321811813E-22 1.5968827491197025E-22 1.0756666414900106E-22 + 7.2219909738829955E-23 4.8327810646469715E-23 3.2231798174057874E-23 + 2.1424238828822797E-23 1.4192073712960284E-23 9.3689724869024211E-24 + 6.1635324978273289E-24 4.0405912991118993E-24 2.6395109210804788E-24 + 1.7181101869212009E-24 1.1143283636088946E-24 7.2010445112064783E-25 + 4.6364263040926405E-25 2.9741447258972736E-25 1.9007146367128609E-25 + 1.2101325180372390E-25 7.6752960099338709E-26 4.8494045503265713E-26 + 3.0520915300221208E-26 1.9134063456115212E-26 1.1948184764694377E-26 + 7.4313230303504006E-27 4.6034575828954497E-27 2.8401424954982476E-27 + 1.7450912857550101E-27 1.0678300435936735E-27 6.5069263120082421E-28 + 3.9484175962477211E-28 2.3857626927915442E-28 1.4353961723989606E-28 + 8.5988419476125898E-29 5.1287900071599121E-29 3.0456474108359187E-29 + 1.8005986967696200E-29 1.0597649230751747E-29 6.2092623578235878E-30 + 3.6215188814965734E-30 2.1025389104930540E-30 1.2150160208685362E-30 + 6.9885429474534695E-31 4.0007353163144878E-31 2.2794146173247304E-31 + 1.2924653075860370E-31 7.2930347953420502E-32 4.0951841502439686E-32 + 2.2882144996074294E-32 1.2722186474183451E-32 7.0380655817927856E-33 + 3.8740032963043133E-33 2.1216973096427104E-33 1.1561630619050251E-33 + 6.2688768190188087E-34 3.3834437837578102E-34 1.8169111233155140E-34 + 9.7046226537921226E-35 5.1555283002948700E-35 2.7239326655931665E-35 + + + 1.0035787646800019E+01 1.0035787646791073E+01 1.0035787646765801E+01 + 1.0035787646723268E+01 1.0035787646662829E+01 1.0035787646584124E+01 + 1.0035787646486593E+01 1.0035787646369810E+01 1.0035787646233269E+01 + 1.0035787646076447E+01 1.0035787645898813E+01 1.0035787645699859E+01 + 1.0035787645479038E+01 1.0035787645235784E+01 1.0035787644969551E+01 + 1.0035787644679752E+01 1.0035787644365790E+01 1.0035787644027103E+01 + 1.0035787643663035E+01 1.0035787643272991E+01 1.0035787642856322E+01 + 1.0035787642412380E+01 1.0035787641940509E+01 1.0035787641440031E+01 + 1.0035787640910252E+01 1.0035787640350465E+01 1.0035787639759945E+01 + 1.0035787639137974E+01 1.0035787638483811E+01 1.0035787637796677E+01 + 1.0035787637075808E+01 1.0035787636320400E+01 1.0035787635529642E+01 + 1.0035787634702741E+01 1.0035787633838821E+01 1.0035787632937042E+01 + 1.0035787631996525E+01 1.0035787631016369E+01 1.0035787629995665E+01 + 1.0035787628933479E+01 1.0035787627828912E+01 1.0035787626680932E+01 + 1.0035787625488604E+01 1.0035787624250904E+01 1.0035787622966794E+01 + 1.0035787621635253E+01 1.0035787620255217E+01 1.0035787618825616E+01 + 1.0035787617345301E+01 1.0035787615813152E+01 1.0035787614228028E+01 + 1.0035787612588788E+01 1.0035787610894200E+01 1.0035787609143048E+01 + 1.0035787607334102E+01 1.0035787605466094E+01 1.0035787603537692E+01 + 1.0035787601547648E+01 1.0035787599494597E+01 1.0035787597377121E+01 + 1.0035787595193893E+01 1.0035787592943429E+01 1.0035787590624325E+01 + 1.0035787588235113E+01 1.0035787585774244E+01 1.0035787583240181E+01 + 1.0035787580631419E+01 1.0035787577946287E+01 1.0035787575183207E+01 + 1.0035787572340535E+01 1.0035787569416511E+01 1.0035787566409477E+01 + 1.0035787563317649E+01 1.0035787560139248E+01 1.0035787556872444E+01 + 1.0035787553515391E+01 1.0035787550066196E+01 1.0035787546522878E+01 + 1.0035787542883513E+01 1.0035787539146137E+01 1.0035787535308623E+01 + 1.0035787531368891E+01 1.0035787527324892E+01 1.0035787523174450E+01 + 1.0035787518915312E+01 1.0035787514545227E+01 1.0035787510062010E+01 + 1.0035787505463192E+01 1.0035787500746460E+01 1.0035787495909416E+01 + 1.0035787490949520E+01 1.0035787485864326E+01 1.0035787480651276E+01 + 1.0035787475307689E+01 1.0035787469830947E+01 1.0035787464218371E+01 + 1.0035787458467107E+01 1.0035787452574450E+01 1.0035787446537482E+01 + 1.0035787440353213E+01 1.0035787434018772E+01 1.0035787427531103E+01 + 1.0035787420887031E+01 1.0035787414083517E+01 1.0035787407117267E+01 + 1.0035787399985011E+01 1.0035787392683545E+01 1.0035787385209362E+01 + 1.0035787377558957E+01 1.0035787369728943E+01 1.0035787361715650E+01 + 1.0035787353515405E+01 1.0035787345124534E+01 1.0035787336539240E+01 + 1.0035787327755596E+01 1.0035787318769737E+01 1.0035787309577614E+01 + 1.0035787300175105E+01 1.0035787290558114E+01 1.0035787280722399E+01 + 1.0035787270663565E+01 1.0035787260377223E+01 1.0035787249859014E+01 + 1.0035787239104213E+01 1.0035787228108173E+01 1.0035787216866302E+01 + 1.0035787205373643E+01 1.0035787193625257E+01 1.0035787181616268E+01 + 1.0035787169341440E+01 1.0035787156795626E+01 1.0035787143973550E+01 + 1.0035787130869723E+01 1.0035787117478822E+01 1.0035787103795084E+01 + 1.0035787089812839E+01 1.0035787075526336E+01 1.0035787060929627E+01 + 1.0035787046016749E+01 1.0035787030781449E+01 1.0035787015217496E+01 + 1.0035786999318649E+01 1.0035786983078303E+01 1.0035786966489898E+01 + 1.0035786949546724E+01 1.0035786932241805E+01 1.0035786914568291E+01 + 1.0035786896519108E+01 1.0035786878086880E+01 1.0035786859264272E+01 + 1.0035786840043883E+01 1.0035786820417963E+01 1.0035786800378689E+01 + 1.0035786779918183E+01 1.0035786759028346E+01 1.0035786737701025E+01 + 1.0035786715927767E+01 1.0035786693699951E+01 1.0035786671009053E+01 + 1.0035786647846196E+01 1.0035786624202233E+01 1.0035786600067919E+01 + 1.0035786575434184E+01 1.0035786550291427E+01 1.0035786524629785E+01 + 1.0035786498439425E+01 1.0035786471710365E+01 1.0035786444432354E+01 + 1.0035786416594853E+01 1.0035786388187381E+01 1.0035786359199024E+01 + 1.0035786329618725E+01 1.0035786299435395E+01 1.0035786268637477E+01 + 1.0035786237213346E+01 1.0035786205151307E+01 1.0035786172439092E+01 + 1.0035786139064450E+01 1.0035786105014930E+01 1.0035786070277732E+01 + 1.0035786034839958E+01 1.0035785998688286E+01 1.0035785961809260E+01 + 1.0035785924189295E+01 1.0035785885814299E+01 1.0035785846670079E+01 + 1.0035785806742275E+01 1.0035785766016009E+01 1.0035785724476311E+01 + 1.0035785682108010E+01 1.0035785638895364E+01 1.0035785594822558E+01 + 1.0035785549873607E+01 1.0035785504031956E+01 1.0035785457280921E+01 + 1.0035785409603388E+01 1.0035785360982079E+01 1.0035785311399380E+01 + 1.0035785260837160E+01 1.0035785209277144E+01 1.0035785156700772E+01 + 1.0035785103089065E+01 1.0035785048422539E+01 1.0035784992681545E+01 + 1.0035784935846163E+01 1.0035784877895880E+01 1.0035784818809809E+01 + 1.0035784758566953E+01 1.0035784697145766E+01 1.0035784634524209E+01 + 1.0035784570679954E+01 1.0035784505590241E+01 1.0035784439231930E+01 + 1.0035784371581492E+01 1.0035784302614861E+01 1.0035784232307501E+01 + 1.0035784160634726E+01 1.0035784087570992E+01 1.0035784013090474E+01 + 1.0035783937167057E+01 1.0035783859773924E+01 1.0035783780883692E+01 + 1.0035783700468810E+01 1.0035783618500977E+01 1.0035783534951337E+01 + 1.0035783449790785E+01 1.0035783362989344E+01 1.0035783274516751E+01 + 1.0035783184342055E+01 1.0035783092433864E+01 1.0035782998760148E+01 + 1.0035782903288180E+01 1.0035782805984812E+01 1.0035782706816233E+01 + 1.0035782605748102E+01 1.0035782502745255E+01 1.0035782397771966E+01 + 1.0035782290792056E+01 1.0035782181768491E+01 1.0035782070663453E+01 + 1.0035781957438845E+01 1.0035781842055593E+01 1.0035781724473759E+01 + 1.0035781604652982E+01 1.0035781482552055E+01 1.0035781358129103E+01 + 1.0035781231341524E+01 1.0035781102145483E+01 1.0035780970496928E+01 + 1.0035780836350911E+01 1.0035780699661357E+01 1.0035780560381729E+01 + 1.0035780418464290E+01 1.0035780273860624E+01 1.0035780126521722E+01 + 1.0035779976397111E+01 1.0035779823435703E+01 1.0035779667585761E+01 + 1.0035779508794027E+01 1.0035779347006651E+01 1.0035779182168818E+01 + 1.0035779014224767E+01 1.0035778843117406E+01 1.0035778668788689E+01 + 1.0035778491180137E+01 1.0035778310231278E+01 1.0035778125881087E+01 + 1.0035777938067636E+01 1.0035777746727192E+01 1.0035777551795452E+01 + 1.0035777353206809E+01 1.0035777150894221E+01 1.0035776944789962E+01 + 1.0035776734824685E+01 1.0035776520927563E+01 1.0035776303027129E+01 + 1.0035776081050273E+01 1.0035775854922361E+01 1.0035775624567927E+01 + 1.0035775389909698E+01 1.0035775150869121E+01 1.0035774907366521E+01 + 1.0035774659320325E+01 1.0035774406647576E+01 1.0035774149264233E+01 + 1.0035773887084478E+01 1.0035773620020661E+01 1.0035773347983984E+01 + 1.0035773070883797E+01 1.0035772788627925E+01 1.0035772501122633E+01 + 1.0035772208272139E+01 1.0035771909979276E+01 1.0035771606145170E+01 + 1.0035771296668823E+01 1.0035770981447525E+01 1.0035770660376983E+01 + 1.0035770333350889E+01 1.0035770000260795E+01 1.0035769660996481E+01 + 1.0035769315445897E+01 1.0035768963494622E+01 1.0035768605026536E+01 + 1.0035768239923289E+01 1.0035767868064255E+01 1.0035767489326577E+01 + 1.0035767103585822E+01 1.0035766710714743E+01 1.0035766310583405E+01 + 1.0035765903060710E+01 1.0035765488012441E+01 1.0035765065301618E+01 + 1.0035764634789674E+01 1.0035764196335029E+01 1.0035763749793617E+01 + 1.0035763295018885E+01 1.0035762831861472E+01 1.0035762360169512E+01 + 1.0035761879788350E+01 1.0035761390560477E+01 1.0035760892325506E+01 + 1.0035760384920540E+01 1.0035759868179408E+01 1.0035759341932708E+01 + 1.0035758806008687E+01 1.0035758260232189E+01 1.0035757704424451E+01 + 1.0035757138404184E+01 1.0035756561986551E+01 1.0035755974983305E+01 + 1.0035755377202941E+01 1.0035754768450522E+01 1.0035754148527568E+01 + 1.0035753517232029E+01 1.0035752874358211E+01 1.0035752219696761E+01 + 1.0035751553034554E+01 1.0035750874154651E+01 1.0035750182836262E+01 + 1.0035749478854456E+01 1.0035748761980463E+01 1.0035748031981347E+01 + 1.0035747288619875E+01 1.0035746531654768E+01 1.0035745760840179E+01 + 1.0035744975925976E+01 1.0035744176657737E+01 1.0035743362776074E+01 + 1.0035742534016986E+01 1.0035741690112225E+01 1.0035740830788281E+01 + 1.0035739955766553E+01 1.0035739064764085E+01 1.0035738157492542E+01 + 1.0035737233658066E+01 1.0035736292961795E+01 1.0035735335099822E+01 + 1.0035734359762419E+01 1.0035733366634176E+01 1.0035732355394424E+01 + 1.0035731325716629E+01 1.0035730277268188E+01 1.0035729209710690E+01 + 1.0035728122699531E+01 1.0035727015884206E+01 1.0035725888907749E+01 + 1.0035724741406657E+01 1.0035723573011145E+01 1.0035722383344574E+01 + 1.0035721172023814E+01 1.0035719938658859E+01 1.0035718682852249E+01 + 1.0035717404199872E+01 1.0035716102290264E+01 1.0035714776704477E+01 + 1.0035713427016471E+01 1.0035712052791755E+01 1.0035710653588586E+01 + 1.0035709228957659E+01 1.0035707778440843E+01 1.0035706301572121E+01 + 1.0035704797877349E+01 1.0035703266873622E+01 1.0035701708069539E+01 + 1.0035700120964695E+01 1.0035698505049798E+01 1.0035696859806642E+01 + 1.0035695184707496E+01 1.0035693479215176E+01 1.0035691742783010E+01 + 1.0035689974854531E+01 1.0035688174863166E+01 1.0035686342232225E+01 + 1.0035684476374737E+01 1.0035682576693221E+01 1.0035680642579745E+01 + 1.0035678673414886E+01 1.0035676668568410E+01 1.0035674627399308E+01 + 1.0035672549254437E+01 1.0035670433468963E+01 1.0035668279366407E+01 + 1.0035666086258336E+01 1.0035663853443790E+01 1.0035661580208998E+01 + 1.0035659265827741E+01 1.0035656909560847E+01 1.0035654510655414E+01 + 1.0035652068345875E+01 1.0035649581852500E+01 1.0035647050381083E+01 + 1.0035644473124183E+01 1.0035641849259447E+01 1.0035639177949523E+01 + 1.0035636458342651E+01 1.0035633689571419E+01 1.0035630870752803E+01 + 1.0035628000988497E+01 1.0035625079363570E+01 1.0035622104947070E+01 + 1.0035619076791262E+01 1.0035615993931307E+01 1.0035612855385260E+01 + 1.0035609660153636E+01 1.0035606407219104E+01 1.0035603095545902E+01 + 1.0035599724079962E+01 1.0035596291748204E+01 1.0035592797458275E+01 + 1.0035589240098767E+01 1.0035585618537903E+01 1.0035581931623446E+01 + 1.0035578178183256E+01 1.0035574357023975E+01 1.0035570466930379E+01 + 1.0035566506666106E+01 1.0035562474972568E+01 1.0035558370568447E+01 + 1.0035554192149720E+01 1.0035549938388852E+01 1.0035545607934756E+01 + 1.0035541199412133E+01 1.0035536711420761E+01 1.0035532142535951E+01 + 1.0035527491307322E+01 1.0035522756258160E+01 1.0035517935885844E+01 + 1.0035513028660601E+01 1.0035508033025492E+01 1.0035502947395521E+01 + 1.0035497770157562E+01 1.0035492499669720E+01 1.0035487134260091E+01 + 1.0035481672227640E+01 1.0035476111840852E+01 1.0035470451336634E+01 + 1.0035464688920932E+01 1.0035458822767518E+01 1.0035452851017318E+01 + 1.0035446771778377E+01 1.0035440583124414E+01 1.0035434283094981E+01 + 1.0035427869694900E+01 1.0035421340892844E+01 1.0035414694621149E+01 + 1.0035407928775527E+01 1.0035401041214165E+01 1.0035394029756500E+01 + 1.0035386892183171E+01 1.0035379626235191E+01 1.0035372229613229E+01 + 1.0035364699977041E+01 1.0035357034944189E+01 1.0035349232089738E+01 + 1.0035341288945409E+01 1.0035333202999132E+01 1.0035324971693553E+01 + 1.0035316592425662E+01 1.0035308062546283E+01 1.0035299379358447E+01 + 1.0035290540117023E+01 1.0035281542028159E+01 1.0035272382248023E+01 + 1.0035263057881567E+01 1.0035253565982320E+01 1.0035243903551331E+01 + 1.0035234067535646E+01 1.0035224054827905E+01 1.0035213862265389E+01 + 1.0035203486628946E+01 1.0035192924641290E+01 1.0035182172967190E+01 + 1.0035171228211887E+01 1.0035160086919474E+01 1.0035148745572528E+01 + 1.0035137200590899E+01 1.0035125448330364E+01 1.0035113485081586E+01 + 1.0035101307069151E+01 1.0035088910449829E+01 1.0035076291311906E+01 + 1.0035063445674034E+01 1.0035050369483436E+01 1.0035037058615114E+01 + 1.0035023508870133E+01 1.0035009715974743E+01 1.0034995675579156E+01 + 1.0034981383255124E+01 1.0034966834496021E+01 1.0034952024714585E+01 + 1.0034936949240924E+01 1.0034921603322953E+01 1.0034905982122917E+01 + 1.0034890080716268E+01 1.0034873894091692E+01 1.0034857417147514E+01 + 1.0034840644690950E+01 1.0034823571436908E+01 1.0034806192005703E+01 + 1.0034788500921383E+01 1.0034770492610390E+01 1.0034752161399778E+01 + 1.0034733501514946E+01 1.0034714507078627E+01 1.0034695172108155E+01 + 1.0034675490514163E+01 1.0034655456098738E+01 1.0034635062553100E+01 + 1.0034614303456037E+01 1.0034593172271283E+01 1.0034571662346162E+01 + 1.0034549766909480E+01 1.0034527479068494E+01 1.0034504791807649E+01 + 1.0034481697986545E+01 1.0034458190336853E+01 1.0034434261460548E+01 + 1.0034409903827544E+01 1.0034385109773293E+01 1.0034359871496862E+01 + 1.0034334181057266E+01 1.0034308030372117E+01 1.0034281411215167E+01 + 1.0034254315212667E+01 1.0034226733841619E+01 1.0034198658427091E+01 + 1.0034170080139065E+01 1.0034140989989863E+01 1.0034111378831557E+01 + 1.0034081237353018E+01 1.0034050556076552E+01 1.0034019325355493E+01 + 1.0033987535371327E+01 1.0033955176129709E+01 1.0033922237457947E+01 + 1.0033888709002506E+01 1.0033854580224700E+01 1.0033819840397053E+01 + 1.0033784478601635E+01 1.0033748483725420E+01 1.0033711844456443E+01 + 1.0033674549281670E+01 1.0033636586482382E+01 1.0033597944130449E+01 + 1.0033558610085095E+01 1.0033518571988894E+01 1.0033477817264167E+01 + 1.0033436333108396E+01 1.0033394106490388E+01 1.0033351124147192E+01 + 1.0033307372579097E+01 1.0033262838044978E+01 1.0033217506558778E+01 + 1.0033171363885035E+01 1.0033124395534324E+01 1.0033076586758662E+01 + 1.0033027922546800E+01 1.0032978387619906E+01 1.0032927966426540E+01 + 1.0032876643137865E+01 1.0032824401642484E+01 1.0032771225541628E+01 + 1.0032717098144346E+01 1.0032662002461633E+01 1.0032605921201403E+01 + 1.0032548836763363E+01 1.0032490731233263E+01 1.0032431586377163E+01 + 1.0032371383636013E+01 1.0032310104119945E+01 1.0032247728601659E+01 + 1.0032184237511490E+01 1.0032119610930856E+01 1.0032053828585136E+01 + 1.0031986869838942E+01 1.0031918713688913E+01 1.0031849338756606E+01 + 1.0031778723282693E+01 1.0031706845119922E+01 1.0031633681726010E+01 + 1.0031559210156747E+01 1.0031483407058841E+01 1.0031406248662696E+01 + 1.0031327710774883E+01 1.0031247768770688E+01 1.0031166397586215E+01 + 1.0031083571711173E+01 1.0030999265180121E+01 1.0030913451564528E+01 + 1.0030826103965454E+01 1.0030737195004276E+01 1.0030646696813918E+01 + 1.0030554581030904E+01 1.0030460818786327E+01 1.0030365380696653E+01 + 1.0030268236854658E+01 1.0030169356820050E+01 1.0030068709610193E+01 + 1.0029966263690421E+01 1.0029861986963844E+01 1.0029755846761661E+01 + 1.0029647809833250E+01 1.0029537842335493E+01 1.0029425909821841E+01 + 1.0029311977232329E+01 1.0029196008882611E+01 1.0029077968452329E+01 + 1.0028957818974154E+01 1.0028835522822027E+01 1.0028711041699911E+01 + 1.0028584336629761E+01 1.0028455367938907E+01 1.0028324095248090E+01 + 1.0028190477459358E+01 1.0028054472742468E+01 1.0027916038521873E+01 + 1.0027775131464610E+01 1.0027631707465806E+01 1.0027485721634783E+01 + 1.0027337128282365E+01 1.0027185880905261E+01 1.0027031932172433E+01 + 1.0026875233910587E+01 1.0026715737088340E+01 1.0026553391801437E+01 + 1.0026388147257959E+01 1.0026219951761627E+01 1.0026048752695552E+01 + 1.0025874496507130E+01 1.0025697128690487E+01 1.0025516593769588E+01 + 1.0025332835281363E+01 1.0025145795758318E+01 1.0024955416710194E+01 + 1.0024761638605941E+01 1.0024564400856066E+01 1.0024363641792796E+01 + 1.0024159298651249E+01 1.0023951307550684E+01 1.0023739603473814E+01 + 1.0023524120246984E+01 1.0023304790520243E+01 1.0023081545745550E+01 + 1.0022854316155968E+01 1.0022623030744452E+01 1.0022387617241437E+01 + 1.0022148002092548E+01 1.0021904110435887E+01 1.0021655866079092E+01 + 1.0021403191475464E+01 1.0021146007700143E+01 1.0020884234425971E+01 + 1.0020617789898182E+01 1.0020346590909361E+01 1.0020070552774238E+01 + 1.0019789589302793E+01 1.0019503612773956E+01 1.0019212533909107E+01 + 1.0018916261843373E+01 1.0018614704098344E+01 1.0018307766554081E+01 + 1.0017995353419165E+01 1.0017677367201193E+01 1.0017353708677595E+01 + 1.0017024276864490E+01 1.0016688968985509E+01 1.0016347680440866E+01 + 1.0016000304773897E+01 1.0015646733639516E+01 1.0015286856770798E+01 + 1.0014920561944301E+01 1.0014547734946452E+01 1.0014168259537923E+01 + 1.0013782017417734E+01 1.0013388888187967E+01 1.0012988749316078E+01 + 1.0012581476096880E+01 1.0012166941615366E+01 1.0011745016707211E+01 + 1.0011315569919150E+01 1.0010878467469073E+01 1.0010433573204370E+01 + 1.0009980748561057E+01 1.0009519852521649E+01 1.0009050741570514E+01 + 1.0008573269651222E+01 1.0008087288122177E+01 1.0007592645710158E+01 + 1.0007089188465150E+01 1.0006576759712665E+01 1.0006055200006021E+01 + 1.0005524347078488E+01 1.0004984035793099E+01 1.0004434098092279E+01 + 1.0003874362947295E+01 1.0003304656306140E+01 1.0002724801039927E+01 + 1.0002134616889514E+01 1.0001533920411154E+01 1.0000922524920357E+01 + 1.0000300240434958E+01 9.9996668736178886E+00 9.9990222277190099E+00 + 9.9983661025147228E+00 9.9976982942472592E+00 9.9970185955642972E+00 + 9.9963267954550936E+00 9.9956226791867060E+00 9.9949060282397433E+00 + 9.9941766202423477E+00 9.9934342289030944E+00 9.9926786239420924E+00 + 9.9919095710225019E+00 9.9911268316800452E+00 9.9903301632503680E+00 + 9.9895193187972247E+00 9.9886940470375851E+00 9.9878540922661490E+00 + 9.9869991942795071E+00 9.9861290882975897E+00 9.9852435048841404E+00 + 9.9843421698662613E+00 9.9834248042534863E+00 9.9824911241528920E+00 + 9.9815408406852058E+00 9.9805736598991626E+00 9.9795892826825057E+00 + 9.9785874046746237E+00 9.9775677161751162E+00 9.9765299020514711E+00 + 9.9754736416469925E+00 9.9743986086844387E+00 9.9733044711692767E+00 + 9.9721908912925645E+00 9.9710575253306359E+00 9.9699040235432932E+00 + 9.9687300300704571E+00 9.9675351828285166E+00 9.9663191134027453E+00 + 9.9650814469390063E+00 9.9638218020344276E+00 9.9625397906252271E+00 + 9.9612350178727205E+00 9.9599070820476481E+00 9.9585555744139622E+00 + 9.9571800791090936E+00 9.9557801730216831E+00 9.9543554256697586E+00 + 9.9529053990752807E+00 9.9514296476366813E+00 9.9499277180005361E+00 + 9.9483991489293935E+00 9.9468434711689344E+00 9.9452602073132432E+00 + 9.9436488716658662E+00 9.9420089701014867E+00 9.9403399999236175E+00 + 9.9386414497195545E+00 9.9369127992156745E+00 9.9351535191276046E+00 + 9.9333630710092251E+00 9.9315409071001621E+00 9.9296864701694147E+00 + 9.9277991933575596E+00 9.9258785000163350E+00 9.9239238035449659E+00 + 9.9219345072259717E+00 9.9199100040561277E+00 9.9178496765760897E+00 + 9.9157528966978372E+00 9.9136190255284067E+00 9.9114474131917998E+00 + 9.9092373986479707E+00 9.9069883095090923E+00 9.9046994618529389E+00 + 9.9023701600340868E+00 9.8999996964917685E+00 9.8975873515548596E+00 + 9.8951323932446584E+00 9.8926340770743195E+00 9.8900916458454891E+00 + 9.8875043294417928E+00 9.8848713446197909E+00 9.8821918947968950E+00 + 9.8794651698363474E+00 9.8766903458281874E+00 9.8738665848686047E+00 + 9.8709930348359052E+00 9.8680688291625351E+00 9.8650930866042952E+00 + 9.8620649110072325E+00 9.8589833910711402E+00 9.8558476001079924E+00 + 9.8526565958000347E+00 9.8494094199533730E+00 9.8461050982469427E+00 + 9.8427426399809654E+00 9.8393210378202856E+00 9.8358392675344728E+00 + 9.8322962877349056E+00 9.8286910396095450E+00 9.8250224466529499E+00 + 9.8212894143928242E+00 9.8174908301149664E+00 9.8136255625834039E+00 + 9.8096924617573524E+00 9.8056903585053217E+00 9.8016180643154360E+00 + 9.7974743710031937E+00 9.7932580504142681E+00 9.7889678541254224E+00 + 9.7846025131424668E+00 9.7801607375929187E+00 9.7756412164169895E+00 + 9.7710426170553806E+00 9.7663635851326873E+00 9.7616027441381394E+00 + 9.7567586951039171E+00 9.7518300162791149E+00 9.7468152628007996E+00 + 9.7417129663624831E+00 9.7365216348791712E+00 9.7312397521498220E+00 + 9.7258657775160380E+00 9.7203981455184039E+00 9.7148352655498975E+00 + 9.7091755215068307E+00 9.7034172714365159E+00 9.6975588471822451E+00 + 9.6915985540264771E+00 9.6855346703311529E+00 9.6793654471748969E+00 + 9.6730891079891741E+00 9.6667038481920713E+00 9.6602078348186016E+00 + 9.6535992061509344E+00 9.6468760713460160E+00 9.6400365100611261E+00 + 9.6330785720785048E+00 9.6260002769285684E+00 9.6187996135116993E+00 + 9.6114745397182642E+00 9.6040229820497220E+00 9.5964428352374416E+00 + 9.5887319618605762E+00 9.5808881919659434E+00 9.5729093226855664E+00 + 9.5647931178554622E+00 9.5565373076348266E+00 9.5481395881257711E+00 + 9.5395976209940301E+00 9.5309090330905342E+00 9.5220714160757396E+00 + 9.5130823260442963E+00 9.5039392831525085E+00 9.4946397712488366E+00 + 9.4851812375068860E+00 9.4755610920613584E+00 9.4657767076475690E+00 + 9.4558254192458531E+00 9.4457045237304378E+00 9.4354112795221727E+00 + 9.4249429062470202E+00 9.4142965844012565E+00 9.4034694550229627E+00 + 9.3924586193697284E+00 9.3812611386038576E+00 9.3698740334863153E+00 + 9.3582942840795020E+00 9.3465188294586969E+00 9.3345445674333849E+00 + 9.3223683542800906E+00 9.3099870044861408E+00 9.2973972905048221E+00 + 9.2845959425250619E+00 9.2715796482533452E+00 9.2583450527106983E+00 + 9.2448887580452865E+00 9.2312073233604721E+00 9.2172972645614024E+00 + 9.2031550542191418E+00 9.1887771214531284E+00 9.1741598518349150E+00 + 9.1592995873139564E+00 9.1441926261640969E+00 9.1288352229542387E+00 + 9.1132235885449830E+00 9.0973538901101492E+00 9.0812222511857179E+00 + 9.0648247517481657E+00 9.0481574283227975E+00 9.0312162741230537E+00 + 9.0139972392231353E+00 8.9964962307658105E+00 8.9787091132061132E+00 + 8.9606317085919773E+00 8.9422597968851889E+00 8.9235891163251129E+00 + 8.9046153638323258E+00 8.8853341954593468E+00 8.8657412268890035E+00 + 8.8458320339793737E+00 8.8256021533615669E+00 8.8050470830904537E+00 + 8.7841622833494917E+00 8.7629431772143658E+00 8.7413851514761518E+00 + 8.7194835575264111E+00 8.6972337123073054E+00 8.6746308993285517E+00 + 8.6516703697550188E+00 8.6283473435660607E+00 8.6046570107899729E+00 + 8.5805945328170861E+00 8.5561550437933960E+00 8.5313336520982261E+00 + 8.5061254419080790E+00 8.4805254748517207E+00 8.4545287917574292E+00 + 8.4281304144957385E+00 8.4013253479244305E+00 8.3741085819343315E+00 + 8.3464750936017484E+00 8.3184198494518675E+00 8.2899378078351535E+00 + 8.2610239214209624E+00 8.2316731398106260E+00 8.2018804122782711E+00 + 8.1716406906377514E+00 8.1409489322408817E+00 8.1098001031146101E+00 + 8.0781891812366258E+00 8.0461111599550605E+00 8.0135610515559357E+00 + 7.9805338909843035E+00 7.9470247397202085E+00 7.9130286898144488E+00 + 7.8785408680898419E+00 7.8435564405115716E+00 7.8080706167277301E+00 + 7.7720786547859415E+00 7.7355758660355667E+00 7.6985576202087262E+00 + 7.6610193506899993E+00 7.6229565599838036E+00 7.5843648253714768E+00 + 7.5452398047692544E+00 7.5055772427929801E+00 7.4653729770254715E+00 + 7.4246229444933469E+00 7.3833231883589301E+00 7.3414698648276042E+00 + 7.2990592502710081E+00 7.2560877485714306E+00 7.2125518986915402E+00 + 7.1684483824660221E+00 7.1237740326183197E+00 7.0785258410068366E+00 + 7.0327009670990757E+00 6.9862967466713153E+00 6.9393107007361952E+00 + 6.8917405447016851E+00 6.8435841977518219E+00 6.7948397924508805E+00 + 6.7455056845734243E+00 6.6955804631504741E+00 6.6450629607283735E+00 + 6.5939522638383945E+00 6.5422477236750574E+00 6.4899489669663328E+00 + 6.4370559070344182E+00 6.3835687550446654E+00 6.3294880314203494E+00 + 6.2748145774202770E+00 6.2195495668691265E+00 6.1636945180222869E+00 + 6.1072513055504078E+00 6.0502221726305399E+00 5.9926097431289396E+00 + 5.9344170338469446E+00 5.8756474668140131E+00 5.8163048816104643E+00 + 5.7563935476859482E+00 5.6959181766496796E+00 5.6348839345059423E+00 + 5.5732964538055416E+00 5.5111618456723974E+00 5.4484867116734712E+00 + 5.3852781555026121E+00 5.3215437944223476E+00 5.2572917704296014E+00 + 5.1925307611052629E+00 5.1272699900886503E+00 5.0615192371313693E+00 + 4.9952888476795412E+00 4.9285897419307876E+00 4.8614334233003458E+00 + 4.7938319862418561E+00 4.7257981233683299E+00 4.6573451317943082E+00 + 4.5884869186446879E+00 4.5192380056674830E+00 4.4496135328747339E+00 + 4.3796292611490539E+00 4.3093015737508749E+00 4.2386474766673041E+00 + 4.1676845977275017E+00 4.0964311844321575E+00 4.0249061004524700E+00 + 3.9531288207345145E+00 3.8811194251720682E+00 3.8088985908206654E+00 + 3.7364875826323320E+00 3.6639082426891969E+00 3.5911829779509734E+00 + 3.5183347465482999E+00 3.4453870426445015E+00 3.3723638799435842E+00 + 3.2992897739407065E+00 3.2261897230233125E+00 3.1530891885758878E+00 + 3.0800140742783215E+00 3.0069907048262348E+00 2.9340458043237558E+00 + 2.8612064746648103E+00 2.7885001742718596E+00 2.7159546975773194E+00 + 2.6435981557156252E+00 2.5714589589484831E+00 2.4995658013778819E+00 + 2.4279476485719602E+00 2.3566337287890575E+00 2.2856535285358235E+00 + 2.2150367932219903E+00 2.1448135337464262E+00 2.0750140398790053E+00 + 2.0056689013010969E+00 1.9368090371923297E+00 1.8684657352351290E+00 + 1.8006707008647336E+00 1.7334561174909420E+00 1.6668547183249627E+00 + 1.6008998702731092E+00 1.5356256700771667E+00 1.4710670526161784E+00 + 1.4072599108772779E+00 1.3442412265759915E+00 1.2820492098350498E+00 + 1.2207234456095564E+00 1.1603050437190021E+00 1.1008367883957391E+00 + 1.0423632822669151E+00 9.8493107860971096E-01 9.2858879461088684E-01 + 8.7338719736028780E-01 8.1937925341619355E-01 7.6662013213792168E-01 + 7.1516715266270536E-01 6.6507966460585632E-01 6.1641822751115671E-01 + 5.6925242585641789E-01 5.2365319881696393E-01 4.7953013572828079E-01 + 4.3678304892706732E-01 3.9561592716057453E-01 3.5624350034369057E-01 + 3.1872241847753585E-01 2.8310542767546326E-01 2.4944912967362329E-01 + 2.1780495168761327E-01 1.8821883692456659E-01 1.6073039624753685E-01 + 1.3537218655380248E-01 1.1216916392508726E-01 9.1138357427247463E-02 + 7.2288803969375204E-02 5.5621775581774828E-02 4.1131317360541167E-02 + 2.8805096565568108E-02 1.8625740308455006E-02 1.0574404966137941E-02 + 4.6345464348275488E-03 7.9374593858024683E-04 -9.5479888849978132E-04 + -1.5113841128760223E-03 -1.7469044758044558E-03 -1.5962297323807054E-03 + -9.7523779404057624E-04 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + -5.3610334701845836E+01 -5.3610334699528892E+01 -5.3610334699259759E+01 + -5.3610334698917200E+01 -5.3610334698431352E+01 -5.3610334699783742E+01 + -5.3610334698661546E+01 -5.3610334698886632E+01 -5.3610334698650838E+01 + -5.3610334698050764E+01 -5.3610334698113412E+01 -5.3610334697717789E+01 + -5.3610334696931275E+01 -5.3610334696535880E+01 -5.3610334695714414E+01 + -5.3610334695143344E+01 -5.3610334694727506E+01 -5.3610334694392975E+01 + -5.3610334693560986E+01 -5.3610334692763537E+01 -5.3610334691952772E+01 + -5.3610334691088937E+01 -5.3610334690138401E+01 -5.3610334689072452E+01 + -5.3610334687866171E+01 -5.3610334686860426E+01 -5.3610334685641838E+01 + -5.3610334684529171E+01 -5.3610334683149873E+01 -5.3610334681494606E+01 + -5.3610334680145215E+01 -5.3610334678458699E+01 -5.3610334676979420E+01 + -5.3610334675380393E+01 -5.3610334673632934E+01 -5.3610334671710781E+01 + -5.3610334669829143E+01 -5.3610334667942922E+01 -5.3610334665786162E+01 + -5.3610334663559378E+01 -5.3610334661438117E+01 -5.3610334659165481E+01 + -5.3610334656711359E+01 -5.3610334654241761E+01 -5.3610334651714439E+01 + -5.3610334649090049E+01 -5.3610334646331864E+01 -5.3610334643405444E+01 + -5.3610334640448180E+01 -5.3610334637251228E+01 -5.3610334634108945E+01 + -5.3610334630813242E+01 -5.3610334627327916E+01 -5.3610334623768814E+01 + -5.3610334620092829E+01 -5.3610334616402490E+01 -5.3610334612509369E+01 + -5.3610334608513853E+01 -5.3610334604372113E+01 -5.3610334600173545E+01 + -5.3610334595741591E+01 -5.3610334591164111E+01 -5.3610334586519855E+01 + -5.3610334581638739E+01 -5.3610334576716475E+01 -5.3610334571584772E+01 + -5.3610334566313178E+01 -5.3610334560964283E+01 -5.3610334555376049E+01 + -5.3610334549610691E+01 -5.3610334543723873E+01 -5.3610334537662432E+01 + -5.3610334531476063E+01 -5.3610334525109998E+01 -5.3610334518511380E+01 + -5.3610334511724751E+01 -5.3610334504789385E+01 -5.3610334497647962E+01 + -5.3610334490335283E+01 -5.3610334482792993E+01 -5.3610334475051971E+01 + -5.3610334467138891E+01 -5.3610334458992043E+01 -5.3610334450634745E+01 + -5.3610334442086476E+01 -5.3610334433283178E+01 -5.3610334424241330E+01 + -5.3610334414974425E+01 -5.3610334405492459E+01 -5.3610334395727612E+01 + -5.3610334385761576E+01 -5.3610334375523237E+01 -5.3610334365014879E+01 + -5.3610334354306794E+01 -5.3610334343254358E+01 -5.3610334331924044E+01 + -5.3610334320375657E+01 -5.3610334308530526E+01 -5.3610334296377125E+01 + -5.3610334283902183E+01 -5.3610334271153292E+01 -5.3610334258048361E+01 + -5.3610334244691124E+01 -5.3610334230995178E+01 -5.3610334216995291E+01 + -5.3610334202604150E+01 -5.3610334187909551E+01 -5.3610334172877735E+01 + -5.3610334157473631E+01 -5.3610334141716372E+01 -5.3610334125566311E+01 + -5.3610334109036806E+01 -5.3610334092136945E+01 -5.3610334074872327E+01 + -5.3610334057193171E+01 -5.3610334039099911E+01 -5.3610334020589477E+01 + -5.3610334001655730E+01 -5.3610333982288942E+01 -5.3610333962524805E+01 + -5.3610333942250762E+01 -5.3610333921544147E+01 -5.3610333900381640E+01 + -5.3610333878737855E+01 -5.3610333856584425E+01 -5.3610333833935101E+01 + -5.3610333810798920E+01 -5.3610333787137300E+01 -5.3610333762951782E+01 + -5.3610333738240250E+01 -5.3610333712995903E+01 -5.3610333687167234E+01 + -5.3610333660781905E+01 -5.3610333633821725E+01 -5.3610333606264902E+01 + -5.3610333578086262E+01 -5.3610333549334001E+01 -5.3610333519935374E+01 + -5.3610333489928742E+01 -5.3610333459271949E+01 -5.3610333427919521E+01 + -5.3610333395931931E+01 -5.3610333363218487E+01 -5.3610333329829153E+01 + -5.3610333295701139E+01 -5.3610333260838779E+01 -5.3610333225274168E+01 + -5.3610333188931840E+01 -5.3610333151833728E+01 -5.3610333113929585E+01 + -5.3610333075230109E+01 -5.3610333035708116E+01 -5.3610332995362931E+01 + -5.3610332954156732E+01 -5.3610332912108802E+01 -5.3610332869170399E+01 + -5.3610332825348742E+01 -5.3610332780584955E+01 -5.3610332734904006E+01 + -5.3610332688294484E+01 -5.3610332640680653E+01 -5.3610332592069135E+01 + -5.3610332542486496E+01 -5.3610332491868249E+01 -5.3610332440200089E+01 + -5.3610332387461270E+01 -5.3610332333650724E+01 -5.3610332278733821E+01 + -5.3610332222695426E+01 -5.3610332165487534E+01 -5.3610332107132891E+01 + -5.3610332047569386E+01 -5.3610331986803885E+01 -5.3610331924785640E+01 + -5.3610331861530454E+01 -5.3610331796972282E+01 -5.3610331731110826E+01 + -5.3610331663913414E+01 -5.3610331595362339E+01 -5.3610331525432116E+01 + -5.3610331454088005E+01 -5.3610331381287999E+01 -5.3610331307048568E+01 + -5.3610331231309473E+01 -5.3610331154046328E+01 -5.3610331075226028E+01 + -5.3610330994848489E+01 -5.3610330912861450E+01 -5.3610330829224061E+01 + -5.3610330743907667E+01 -5.3610330656914179E+01 -5.3610330568173580E+01 + -5.3610330477686716E+01 -5.3610330385383982E+01 -5.3610330291264411E+01 + -5.3610330195276887E+01 -5.3610330097378203E+01 -5.3610329997553407E+01 + -5.3610329895755726E+01 -5.3610329791946647E+01 -5.3610329686093451E+01 + -5.3610329578170507E+01 -5.3610329468102563E+01 -5.3610329355875848E+01 + -5.3610329241444084E+01 -5.3610329124767269E+01 -5.3610329005808516E+01 + -5.3610328884535534E+01 -5.3610328760867155E+01 -5.3610328634778540E+01 + -5.3610328506245402E+01 -5.3610328375196787E+01 -5.3610328241595859E+01 + -5.3610328105391957E+01 -5.3610327966534399E+01 -5.3610327824974497E+01 + -5.3610327680677713E+01 -5.3610327533579444E+01 -5.3610327383628714E+01 + -5.3610327230759459E+01 -5.3610327074948287E+01 -5.3610326916125686E+01 + -5.3610326754218484E+01 -5.3610326589196603E+01 -5.3610326420980961E+01 + -5.3610326249533529E+01 -5.3610326074767670E+01 -5.3610325896636326E+01 + -5.3610325715085203E+01 -5.3610325530055555E+01 -5.3610325341453780E+01 + -5.3610325149236125E+01 -5.3610324953335798E+01 -5.3610324753667193E+01 + -5.3610324550187343E+01 -5.3610324342807253E+01 -5.3610324131465795E+01 + -5.3610323916081057E+01 -5.3610323696584608E+01 -5.3610323472886932E+01 + -5.3610323244934477E+01 -5.3610323012627184E+01 -5.3610322775899640E+01 + -5.3610322534651402E+01 -5.3610322288826069E+01 -5.3610322038319801E+01 + -5.3610321783058865E+01 -5.3610321522934164E+01 -5.3610321257886746E+01 + -5.3610320987798275E+01 -5.3610320712599091E+01 -5.3610320432181609E+01 + -5.3610320146451414E+01 -5.3610319855319382E+01 -5.3610319558674220E+01 + -5.3610319256420169E+01 -5.3610318948458982E+01 -5.3610318634673661E+01 + -5.3610318314975032E+01 -5.3610317989243399E+01 -5.3610317657373820E+01 + -5.3610317319250399E+01 -5.3610316974750070E+01 -5.3610316623767119E+01 + -5.3610316266185308E+01 -5.3610315901875644E+01 -5.3610315530716363E+01 + -5.3610315152589102E+01 -5.3610314767353280E+01 -5.3610314374888226E+01 + -5.3610313975066909E+01 -5.3610313567743972E+01 -5.3610313152783412E+01 + -5.3610312730047269E+01 -5.3610312299404583E+01 -5.3610311860693123E+01 + -5.3610311413781552E+01 -5.3610310958514901E+01 -5.3610310494730967E+01 + -5.3610310022285006E+01 -5.3610309541014054E+01 -5.3610309050752797E+01 + -5.3610308551356823E+01 -5.3610308042644327E+01 -5.3610307524442817E+01 + -5.3610306996581031E+01 -5.3610306458894051E+01 -5.3610305911191290E+01 + -5.3610305353293441E+01 -5.3610304785016666E+01 -5.3610304206169225E+01 + -5.3610303616560373E+01 -5.3610303015995399E+01 -5.3610302404277292E+01 + -5.3610301781195112E+01 -5.3610301146540273E+01 -5.3610300500121909E+01 + -5.3610299841705611E+01 -5.3610299171085842E+01 -5.3610298488031816E+01 + -5.3610297792322832E+01 -5.3610297083724490E+01 -5.3610296362008135E+01 + -5.3610295626928043E+01 -5.3610294878253768E+01 -5.3610294115721508E+01 + -5.3610293339097069E+01 -5.3610292548116632E+01 -5.3610291742516615E+01 + -5.3610290922030941E+01 -5.3610290086401790E+01 -5.3610289235341490E+01 + -5.3610288368576761E+01 -5.3610287485819605E+01 -5.3610286586779836E+01 + -5.3610285671160192E+01 -5.3610284738668170E+01 -5.3610283788988205E+01 + -5.3610282821821599E+01 -5.3610281836836968E+01 -5.3610280833725717E+01 + -5.3610279812142132E+01 -5.3610278771768741E+01 -5.3610277712252966E+01 + -5.3610276633257648E+01 -5.3610275534417390E+01 -5.3610274415393135E+01 + -5.3610273275801170E+01 -5.3610272115277624E+01 -5.3610270933436581E+01 + -5.3610269729904466E+01 -5.3610268504275432E+01 -5.3610267256164661E+01 + -5.3610265985149951E+01 -5.3610264690827961E+01 -5.3610263372767761E+01 + -5.3610262030554438E+01 -5.3610260663735112E+01 -5.3610259271879904E+01 + -5.3610257854520292E+01 -5.3610256411211999E+01 -5.3610254941470863E+01 + -5.3610253444833567E+01 -5.3610251920799982E+01 -5.3610250368891386E+01 + -5.3610248788586048E+01 -5.3610247179392353E+01 -5.3610245540769633E+01 + -5.3610243872198353E+01 -5.3610242173124362E+01 -5.3610240443018355E+01 + -5.3610238681297140E+01 -5.3610236887408547E+01 -5.3610235060756395E+01 + -5.3610233200766110E+01 -5.3610231306819401E+01 -5.3610229378320575E+01 + -5.3610227414631225E+01 -5.3610225415129150E+01 -5.3610223379152636E+01 + -5.3610221306064581E+01 -5.3610219195176448E+01 -5.3610217045824143E+01 + -5.3610214857295020E+01 -5.3610212628903838E+01 -5.3610210359911598E+01 + -5.3610208049605745E+01 -5.3610205697221481E+01 -5.3610203302022249E+01 + -5.3610200863213187E+01 -5.3610198380035520E+01 -5.3610195851663022E+01 + -5.3610193277305271E+01 -5.3610190656107953E+01 -5.3610187987259309E+01 + -5.3610185269869021E+01 -5.3610182503092147E+01 -5.3610179686011165E+01 + -5.3610176817750379E+01 -5.3610173897358131E+01 -5.3610170923924883E+01 + -5.3610167896465626E+01 -5.3610164814040587E+01 -5.3610161675625591E+01 + -5.3610158480249638E+01 -5.3610155226854317E+01 -5.3610151914425266E+01 + -5.3610148541869719E+01 -5.3610145108138973E+01 -5.3610141612097912E+01 + -5.3610138052663281E+01 -5.3610134428657673E+01 -5.3610130738953274E+01 + -5.3610126982334009E+01 -5.3610123157635833E+01 -5.3610119263593923E+01 + -5.3610115299000455E+01 -5.3610111262548251E+01 -5.3610107152986039E+01 + -5.3610102968956319E+01 -5.3610098709168021E+01 -5.3610094372211606E+01 + -5.3610089956746961E+01 -5.3610085461314924E+01 -5.3610080884527726E+01 + -5.3610076224873445E+01 -5.3610071480914101E+01 -5.3610066651082896E+01 + -5.3610061733890277E+01 -5.3610056727716334E+01 -5.3610051631009853E+01 + -5.3610046442095467E+01 -5.3610041159369921E+01 -5.3610035781093785E+01 + -5.3610030305607950E+01 -5.3610024731107977E+01 -5.3610019055875512E+01 + -5.3610013278042771E+01 -5.3610007395824894E+01 -5.3610001407290341E+01 + -5.3609995310589454E+01 -5.3609989103720721E+01 -5.3609982784766530E+01 + -5.3609976351652719E+01 -5.3609969802396030E+01 -5.3609963134844563E+01 + -5.3609956346944266E+01 -5.3609949436465392E+01 -5.3609942401279149E+01 + -5.3609935239074431E+01 -5.3609927947648359E+01 -5.3609920524606871E+01 + -5.3609912967661742E+01 -5.3609905274336953E+01 -5.3609897442261939E+01 + -5.3609889468871259E+01 -5.3609881351706903E+01 -5.3609873088110817E+01 + -5.3609864675539825E+01 -5.3609856111235516E+01 -5.3609847392565307E+01 + -5.3609838516670301E+01 -5.3609829480824196E+01 -5.3609820282065030E+01 + -5.3609810917565035E+01 -5.3609801384258610E+01 -5.3609791679214496E+01 + -5.3609781799258322E+01 -5.3609771741350293E+01 -5.3609761502200499E+01 + -5.3609751078664530E+01 -5.3609740467331541E+01 -5.3609729664941597E+01 + -5.3609718667961765E+01 -5.3609707473015668E+01 -5.3609696076442347E+01 + -5.3609684474743077E+01 -5.3609672664123885E+01 -5.3609660640963156E+01 + -5.3609648401327981E+01 -5.3609635941463914E+01 -5.3609623257298672E+01 + -5.3609610344944336E+01 -5.3609597200180581E+01 -5.3609583818974855E+01 + -5.3609570196957456E+01 -5.3609556329953016E+01 -5.3609542213431126E+01 + -5.3609527843065770E+01 -5.3609513214166029E+01 -5.3609498322246907E+01 + -5.3609483162447667E+01 -5.3609467730124116E+01 -5.3609452020239821E+01 + -5.3609436027982973E+01 -5.3609419748134179E+01 -5.3609403175708287E+01 + -5.3609386305297448E+01 -5.3609369131739761E+01 -5.3609351649429996E+01 + -5.3609333853019166E+01 -5.3609315736701923E+01 -5.3609297294935253E+01 + -5.3609278521704717E+01 -5.3609259411266478E+01 -5.3609239957391644E+01 + -5.3609220154126930E+01 -5.3609199995018734E+01 -5.3609179473901882E+01 + -5.3609158584088078E+01 -5.3609137319189408E+01 -5.3609115672277284E+01 + -5.3609093636733775E+01 -5.3609071205379152E+01 -5.3609048371358071E+01 + -5.3609025127232293E+01 -5.3609001465897883E+01 -5.3608977379649033E+01 + -5.3608952861126816E+01 -5.3608927902347283E+01 -5.3608902495684710E+01 + -5.3608876632867400E+01 -5.3608850305997230E+01 -5.3608823506502816E+01 + -5.3608796226200987E+01 -5.3608768456212751E+01 -5.3608740188056750E+01 + -5.3608711412537332E+01 -5.3608682120866220E+01 -5.3608652303515349E+01 + -5.3608621951382510E+01 -5.3608591054593965E+01 -5.3608559603719179E+01 + -5.3608527588529597E+01 -5.3608494999254845E+01 -5.3608461825296949E+01 + -5.3608428056533413E+01 -5.3608393681985383E+01 -5.3608358691165478E+01 + -5.3608323072698610E+01 -5.3608286815718706E+01 -5.3608249908441380E+01 + -5.3608212339610162E+01 -5.3608174097015585E+01 -5.3608135168993662E+01 + -5.3608095542897040E+01 -5.3608055206640955E+01 -5.3608014147121196E+01 + -5.3607972351819619E+01 -5.3607929807159294E+01 -5.3607886500169137E+01 + -5.3607842416783974E+01 -5.3607797543566974E+01 -5.3607751865945282E+01 + -5.3607705369996765E+01 -5.3607658040625076E+01 -5.3607609863406246E+01 + -5.3607560822698844E+01 -5.3607510903561163E+01 -5.3607460089787303E+01 + -5.3607408365896468E+01 -5.3607355715099715E+01 -5.3607302121359247E+01 + -5.3607247567280993E+01 -5.3607192036248357E+01 -5.3607135510242664E+01 + -5.3607077972046589E+01 -5.3607019402993664E+01 -5.3606959785246417E+01 + -5.3606899099464954E+01 -5.3606837327171228E+01 -5.3606774448327478E+01 + -5.3606710443789815E+01 -5.3606645292799961E+01 -5.3606578975523917E+01 + -5.3606511470454855E+01 -5.3606442757045961E+01 -5.3606372813016208E+01 + -5.3606301617076745E+01 -5.3606229146144969E+01 -5.3606155378166633E+01 + -5.3606080289226739E+01 -5.3606003856476050E+01 -5.3605926055139925E+01 + -5.3605846861546311E+01 -5.3605766250027443E+01 -5.3605684196059272E+01 + -5.3605600673049928E+01 -5.3605515655592441E+01 -5.3605429116137572E+01 + -5.3605341028362723E+01 -5.3605251363727135E+01 -5.3605160094961157E+01 + -5.3605067192495980E+01 -5.3604972628079295E+01 -5.3604876371079087E+01 + -5.3604778392225782E+01 -5.3604678659784469E+01 -5.3604577143430880E+01 + -5.3604473810287864E+01 -5.3604368628941145E+01 -5.3604261565329480E+01 + -5.3604152586906402E+01 -5.3604041658385505E+01 -5.3603928746048908E+01 + -5.3603813813339812E+01 -5.3603696825327262E+01 -5.3603577744138235E+01 + -5.3603456533584406E+01 -5.3603333154429500E+01 -5.3603207569183333E+01 + -5.3603079737197724E+01 -5.3602949619632163E+01 -5.3602817174376362E+01 + -5.3602682361192151E+01 -5.3602545136453095E+01 -5.3602405458473541E+01 + -5.3602263282057308E+01 -5.3602118564018546E+01 -5.3601971257535318E+01 + -5.3601821317866886E+01 -5.3601668696507119E+01 -5.3601513347105794E+01 + -5.3601355219411161E+01 -5.3601194265405283E+01 -5.3601030433029152E+01 + -5.3600863672536327E+01 -5.3600693929995195E+01 -5.3600521153870801E+01 + -5.3600345288291145E+01 -5.3600166279865867E+01 -5.3599984070714520E+01 + -5.3599798605526509E+01 -5.3599609824339005E+01 -5.3599417669852137E+01 + -5.3599222079946159E+01 -5.3599022995260668E+01 -5.3598820351441418E+01 + -5.3598614086993443E+01 -5.3598404135248806E+01 -5.3598190432499976E+01 + -5.3597972909682426E+01 -5.3597751500797258E+01 -5.3597526134296807E+01 + -5.3597296741809750E+01 -5.3597063249215005E+01 -5.3596825585683149E+01 + -5.3596583674428736E+01 -5.3596337442075679E+01 -5.3596086809078479E+01 + -5.3595831699422639E+01 -5.3595572030703821E+01 -5.3595307724175072E+01 + -5.3595038694470041E+01 -5.3594764860010663E+01 -5.3594486132363805E+01 + -5.3594202427018764E+01 -5.3593913652363682E+01 -5.3593619720852118E+01 + -5.3593320537579572E+01 -5.3593016011853230E+01 -5.3592706045359755E+01 + -5.3592390544146127E+01 -5.3592069406367436E+01 -5.3591742534696088E+01 + -5.3591409823627458E+01 -5.3591071172337010E+01 -5.3590726471531532E+01 + -5.3590375616764582E+01 -5.3590018494816903E+01 -5.3589654997490697E+01 + -5.3589285007501203E+01 -5.3588908412763892E+01 -5.3588525091783112E+01 + -5.3588134928449620E+01 -5.3587737796904726E+01 -5.3587333576870257E+01 + -5.3586922137969651E+01 -5.3586503355606069E+01 -5.3586077094722761E+01 + -5.3585643226250681E+01 -5.3585201610285125E+01 -5.3584752113124168E+01 + -5.3584294589843104E+01 -5.3583828901940805E+01 -5.3583354899292615E+01 + -5.3582872438427131E+01 -5.3582381363833903E+01 -5.3581881526893440E+01 + -5.3581372766516864E+01 -5.3580854928753205E+01 -5.3580327846735848E+01 + -5.3579791360991010E+01 -5.3579245298668347E+01 -5.3578689494575194E+01 + -5.3578123769662568E+01 -5.3577547952814761E+01 -5.3576961858563500E+01 + -5.3576365309657866E+01 -5.3575758113982701E+01 -5.3575140087931700E+01 + -5.3574511032504631E+01 -5.3573870757515877E+01 -5.3573219056834120E+01 + -5.3572555733457754E+01 -5.3571880573871354E+01 -5.3571193374014854E+01 + -5.3570493912725226E+01 -5.3569781978633046E+01 -5.3569057342654403E+01 + -5.3568319785849823E+01 -5.3567569070933658E+01 -5.3566804971126579E+01 + -5.3566027240649426E+01 -5.3565235644603803E+01 -5.3564429928414071E+01 + -5.3563609848774824E+01 -5.3562775142001620E+01 -5.3561925556082549E+01 + -5.3561060817900660E+01 -5.3560180666427563E+01 -5.3559284818779219E+01 + -5.3558373004591573E+01 -5.3557444930864982E+01 -5.3556500317567924E+01 + -5.3555538861228349E+01 -5.3554560271803226E+01 -5.3553564234975468E+01 + -5.3552550450336682E+01 -5.3551518592340223E+01 -5.3550468349844522E+01 + -5.3549399385675798E+01 -5.3548311377578329E+01 -5.3547203976340064E+01 + -5.3546076848198169E+01 -5.3544929631475391E+01 -5.3543761980494537E+01 + -5.3542573520673258E+01 -5.3541363893998025E+01 -5.3540132712524645E+01 + -5.3538879605468260E+01 -5.3537604171051335E+01 -5.3536306025265468E+01 + -5.3534984752011589E+01 -5.3533639953592086E+01 -5.3532271199080938E+01 + -5.3530878076607294E+01 -5.3529460139896877E+01 -5.3528016962407015E+01 + -5.3526548081973154E+01 -5.3525053056864039E+01 -5.3523531408466802E+01 + -5.3521982679327337E+01 -5.3520406373805599E+01 -5.3518802018171371E+01 + -5.3517169099160292E+01 -5.3515507126194379E+01 -5.3513815567766564E+01 + -5.3512093915859730E+01 -5.3510341620083629E+01 -5.3508558154371570E+01 + -5.3506742948789743E+01 -5.3504895458588301E+01 -5.3503015093605825E+01 + -5.3501101289756875E+01 -5.3499153435944969E+01 -5.3497170948072764E+01 + -5.3495153193378862E+01 -5.3493099567054557E+01 -5.3491009413918412E+01 + -5.3488882107728315E+01 -5.3486716970100908E+01 -5.3484513352615082E+01 + -5.3482270552879015E+01 -5.3479987899519486E+01 -5.3477664665302342E+01 + -5.3475300155106069E+01 -5.3472893615991737E+01 -5.3470444328264641E+01 + -5.3467951512391352E+01 -5.3465414423252390E+01 -5.3462832253799064E+01 + -5.3460204232607673E+01 -5.3457529524164848E+01 -5.3454807329833230E+01 + -5.3452036784651362E+01 -5.3449217061830595E+01 -5.3446347265948638E+01 + -5.3443426541094261E+01 -5.3440453960337322E+01 -5.3437428637643052E+01 + -5.3434349613491676E+01 -5.3431215970691497E+01 -5.3428026716016198E+01 + -5.3424780900049342E+01 -5.3421477494706508E+01 -5.3418115517243237E+01 + -5.3414693903527883E+01 -5.3411211636351041E+01 -5.3407667614304913E+01 + -5.3404060784541521E+01 -5.3400390007110857E+01 -5.3396654192313918E+01 + -5.3392852160351708E+01 -5.3388982783424112E+01 -5.3385044840535187E+01 + -5.3381037164494245E+01 -5.3376958491717275E+01 -5.3372807614293450E+01 + -5.3368583224617140E+01 -5.3364284072685130E+01 -5.3359908805392067E+01 + -5.3355456129228223E+01 -5.3350924644064492E+01 -5.3346313011427071E+01 + -5.3341619782592538E+01 -5.3336843572619834E+01 -5.3331982882573449E+01 + -5.3327036279497236E+01 -5.3322002212575811E+01 -5.3316879199242585E+01 + -5.3311665635085809E+01 -5.3306359986285678E+01 -5.3300960593065682E+01 + -5.3295465868660415E+01 -5.3289874096108953E+01 -5.3284183633959103E+01 + -5.3278392706191397E+01 -5.3272499614873666E+01 -5.3266502523001279E+01 + -5.3260399674317661E+01 -5.3254189168849230E+01 -5.3247869190117250E+01 + -5.3241437773141634E+01 -5.3234893039268961E+01 -5.3228232956416356E+01 + -5.3221455581750057E+01 -5.3214558813929408E+01 -5.3207540643878012E+01 + -5.3200398898785537E+01 -5.3193131501213770E+01 -5.3185736204608709E+01 + -5.3178210860994895E+01 -5.3170553147742133E+01 -5.3162760844102237E+01 + -5.3154831548974208E+01 -5.3146762966544649E+01 -5.3138552614785183E+01 + -5.3130198120463923E+01 -5.3121696918106402E+01 -5.3113046554650531E+01 + -5.3104244378593449E+01 -5.3095287854569165E+01 -5.3086174242402684E+01 + -5.3076900921889816E+01 -5.3067465061474707E+01 -5.3057863953520773E+01 + -5.3048094672319571E+01 -5.3038154420145084E+01 -5.3028040174301623E+01 + -5.3017749044256945E+01 -5.3007277907429703E+01 -5.2996623777702538E+01 + -5.2985783429647071E+01 -5.2974753778722153E+01 -5.2963531493629183E+01 + -5.2952113388503768E+01 -5.2940496023091548E+01 -5.2928676107246197E+01 + -5.2916650088612599E+01 -5.2904414569744297E+01 -5.2891965882980472E+01 + -5.2879300520500244E+01 -5.2866414696073598E+01 -5.2853304788373563E+01 + -5.2839966889283211E+01 -5.2826397260783061E+01 -5.2812591869496018E+01 + -5.2798546857472033E+01 -5.2784258062649471E+01 -5.2769721503857930E+01 + -5.2754932886878720E+01 -5.2739888103984562E+01 -5.2724582725279603E+01 + -5.2709012513098195E+01 -5.2693172898307154E+01 -5.2677059509877687E+01 + -5.2660667635840689E+01 -5.2643992768342919E+01 -5.2627030048946381E+01 + -5.2609774829477892E+01 -5.2592222101369863E+01 -5.2574367072604325E+01 + -5.2556204580799651E+01 -5.2537729686544992E+01 -5.2518937069944151E+01 + -5.2499821640625903E+01 -5.2480377917468232E+01 -5.2460600655561436E+01 + -5.2440484208844779E+01 -5.2420023174285362E+01 -5.2399211737174994E+01 + -5.2378044332777698E+01 -5.2356514974045297E+01 -5.2334617930967227E+01 + -5.2312347040485520E+01 -5.2289696403765682E+01 -5.2266659678106564E+01 + -5.2243230792328866E+01 -5.2219403220499615E+01 -5.2195170715615703E+01 + -5.2170526564983795E+01 -5.2145464342349072E+01 -5.2119977144801410E+01 + -5.2094058363472243E+01 -5.2067700901864512E+01 -5.2040897965212082E+01 + -5.2013642260164168E+01 -5.1985926802866466E+01 -5.1957744099967385E+01 + -5.1929086975441933E+01 -5.1899947732928005E+01 -5.1870319001275419E+01 + -5.1840192878258854E+01 -5.1809561794790206E+01 -5.1778417640107712E+01 + -5.1746752644537906E+01 -5.1714558486307993E+01 -5.1681827192695998E+01 + -5.1648550228669464E+01 -5.1614719416200749E+01 -5.1580326004998106E+01 + -5.1545361609702866E+01 -5.1509817263041796E+01 -5.1473684370554324E+01 + -5.1436953746568918E+01 -5.1399616586037304E+01 -5.1361663483808655E+01 + -5.1323085423070097E+01 -5.1283872778481644E+01 -5.1244016320631800E+01 + -5.1203506203682025E+01 -5.1162332985163332E+01 -5.1120486598869604E+01 + -5.1077957389221801E+01 -5.1034735070256325E+01 -5.0990809773675529E+01 + -5.0946170994885549E+01 -5.0900808653743944E+01 -5.0854712028715340E+01 + -5.0807870829207516E+01 -5.0760274119037504E+01 -5.0711911399121959E+01 + -5.0662771521577945E+01 -5.0612843781396897E+01 -5.0562116822644803E+01 + -5.0510579737608005E+01 -5.0458220966704360E+01 -5.0405029403436430E+01 + -5.0350993289784839E+01 -5.0296101325143894E+01 -5.0240341559129597E+01 + -5.0183702502508574E+01 -5.0126172019529299E+01 -5.0067738438671256E+01 + -5.0008389446793942E+01 -4.9948113197350025E+01 -4.9886897208836011E+01 + -4.9824729467912817E+01 -4.9761597334851260E+01 -4.9697488638798966E+01 + -4.9632390593116043E+01 -4.9566290879816705E+01 -4.9499176577916749E+01 + -4.9431035233848000E+01 -4.9361853806167098E+01 -4.9291619718513552E+01 + -4.9220319824267314E+01 -4.9147941438373863E+01 -4.9074471325786980E+01 + -4.8999896708242538E+01 -4.8924204280569214E+01 -4.8847381188229257E+01 + -4.8769414075856723E+01 -4.8690290031115431E+01 -4.8609995670078369E+01 + -4.8528518042699751E+01 -4.8445843759920812E+01 -4.8361959855763786E+01 + -4.8276852961340900E+01 -4.8190510118301667E+01 -4.8102918005187682E+01 + -4.8014063696691096E+01 -4.7923933948088681E+01 -4.7832515894478327E+01 + -4.7739796399301618E+01 -4.7645762687457399E+01 -4.7550401764200842E+01 + -4.7453700975745072E+01 -4.7355647505102979E+01 -4.7256228853529024E+01 + -4.7155432420125763E+01 -4.7053245897209749E+01 -4.6949656940774702E+01 + -4.6844653472616351E+01 -4.6738223448969421E+01 -4.6630355062005165E+01 + -4.6521036614191054E+01 -4.6410256611545691E+01 -4.6298003751468507E+01 + -4.6184266899968790E+01 -4.6069035200877572E+01 -4.5952297929093760E+01 + -4.5834044729249889E+01 -4.5714265336895934E+01 -4.5592949954776707E+01 + -4.5470088833803146E+01 -4.5345672795166628E+01 -4.5219692662896264E+01 + -4.5092139940042145E+01 -4.4963006084654886E+01 -4.4832283348213160E+01 + -4.4699963886925786E+01 -4.4566040770479319E+01 -4.4430506920721349E+01 + -4.4293356298595370E+01 -4.4154582662493482E+01 -4.4014180940990649E+01 + -4.3872145803461173E+01 -4.3728473225844240E+01 -4.3583158866552573E+01 + -4.3436199832029764E+01 -4.3287592851477477E+01 -4.3137336248400459E+01 + -4.2985427908321483E+01 -4.2831867461780028E+01 -4.2676654039969513E+01 + -4.2519788673828792E+01 -4.2361271833421625E+01 -4.2201106046753239E+01 + -4.2039293219778202E+01 -4.1875837477413214E+01 -4.1710742262239648E+01 + -4.1544013398870284E+01 -4.1375655970783846E+01 -4.1205677607661222E+01 + -4.1034085141325136E+01 -4.0860888113963362E+01 -4.0686095215849392E+01 + -4.0509718010408527E+01 -4.0331767158317206E+01 -4.0152256353214206E+01 + -3.9971198338826589E+01 -3.9788609046726890E+01 -3.9604503415432873E+01 + -3.9418899718938007E+01 -3.9231815199166569E+01 -3.9043270571124566E+01 + -3.8853285482725653E+01 -3.8661883179204644E+01 -3.8469085807165534E+01 + -3.8274919217476558E+01 -3.8079408133342973E+01 -3.7882581067204839E+01 + -3.7684465375807250E+01 -3.7485092262670342E+01 -3.7284491746387587E+01 + -3.7082697716107411E+01 -3.6879742842713341E+01 -3.6675663650374183E+01 + -3.6470495403825026E+01 -3.6264277154577826E+01 -3.6057046641147458E+01 + -3.5848845263963135E+01 -3.5639713039197034E+01 -3.5429693451887459E+01 + -3.5218828507906636E+01 -3.5007163410497178E+01 -3.4794741759012965E+01 + -3.4581609990057444E+01 -3.4367812775972538E+01 -3.4153397168449509E+01 + -3.3938408254447509E+01 -3.3722892937726641E+01 -3.3506895915234814E+01 + -3.3290463030997174E+01 -3.3073637642105545E+01 -3.2856463480279380E+01 + -3.2638981483797089E+01 -3.2421232105123977E+01 -3.2203252693458261E+01 + -3.1985079192458333E+01 -3.1766744167221528E+01 -3.1548277843893928E+01 + -3.1329706883953452E+01 -3.1111054726316279E+01 -3.0892341218661389E+01 + -3.0673582230319713E+01 -3.0454790252143646E+01 -3.0235973877650423E+01 + -3.0017131382812188E+01 -2.9798256094855009E+01 -2.9579501469318107E+01 + -2.9361026197437820E+01 -2.9142683659902140E+01 -2.8924310976036789E+01 + -2.8705902315084451E+01 -2.8487449230326074E+01 -2.8268938510567647E+01 + -2.8050354591757404E+01 -2.7831686623172313E+01 -2.7612921558627807E+01 + -2.7394052790184563E+01 -2.7175071806690944E+01 -2.6955977579496356E+01 + -2.6736766635283409E+01 -2.6517443007676977E+01 -2.6298006652319991E+01 + -2.6078463845462920E+01 -2.5858814891175911E+01 -2.5639061648258814E+01 + -2.5419202808739065E+01 -2.5199233096815597E+01 -2.4979141777443864E+01 + -2.4759811763993319E+01 -2.4542096723861775E+01 -2.4325914451420548E+01 + -2.4111163902956719E+01 -2.3897944377419162E+01 -2.3687568738394322E+01 + -2.3479045274719631E+01 -2.3272357662829926E+01 -2.3067489723041501E+01 + -2.2864425421895355E+01 -2.2663148867226560E+01 -2.2463644309713139E+01 + -2.2265896138799754E+01 -2.2069888883625019E+01 -2.1875607209622110E+01 + -2.1683035918963633E+01 -2.1492159947697296E+01 -2.1302964365818724E+01 + -2.1115434374828400E+01 -2.0929555307520832E+01 -2.0745312625872341E+01 + -2.0562691920615624E+01 -2.0381678909386995E+01 -2.0202259436141265E+01 + -2.0024419469501638E+01 -1.9848145102057490E+01 -1.9673422548873098E+01 + -1.9500238146701321E+01 -1.9328578352616486E+01 -1.9158429743169531E+01 + -1.8989779013118820E+01 -1.8822612974545571E+01 -1.8656918555662532E+01 + -1.8492682799904497E+01 -1.8329892864798921E+01 -1.8168536021042570E+01 + -1.8008599651422397E+01 -1.7850071249886678E+01 -1.7692938420506657E+01 + -1.7537188876548445E+01 -1.7382810439469054E+01 -1.7229791037992797E+01 + -1.7078118707136944E+01 -1.6927781587295989E+01 -1.6778767923292776E+01 + -1.6631066063399203E+01 -1.6484664458505510E+01 -1.6339551661279319E+01 + -1.6195716325184847E+01 -1.6053147203595223E+01 -1.5911833148912427E+01 + -1.5771763111695094E+01 -1.5632926139793870E+01 -1.5495311377494660E+01 + -1.5358908064669164E+01 -1.5223705535932922E+01 -1.5089693219810993E+01 + -1.4956860637910783E+01 -1.4825197404102115E+01 -1.4694693223704824E+01 + -1.4565337892683175E+01 -1.4437121296847602E+01 -1.4310033411063293E+01 + -1.4184064298466010E+01 -1.4059204109684581E+01 -1.3935443082070279E+01 + -1.3812771538933163E+01 -1.3691179888784964E+01 -1.3570658624588711E+01 + -1.3451198323014907E+01 -1.3332789643704437E+01 -1.3215423328537797E+01 + -1.3099090200910714E+01 -1.2983781165016426E+01 -1.2869487205134018E+01 + -1.2756199384923052E+01 -1.2643908846724637E+01 -1.2532606810868380E+01 + -1.2422284574985630E+01 -1.2312933513328620E+01 -1.2204545076095810E+01 + -1.2097110788763004E+01 -1.1990622251420357E+01 -1.1885071138115396E+01 + -1.1780449196201660E+01 -1.1676748245693066E+01 -1.1573960178624162E+01 + -1.1472076958415798E+01 -1.1371090619246512E+01 -1.1270993265429334E+01 + -1.1171777070794299E+01 -1.1073434278076162E+01 -1.0975957198307595E+01 + -1.0879338210217835E+01 -1.0783569759636455E+01 -1.0688644358902524E+01 + -1.0594554586278825E+01 -1.0501293085371465E+01 -1.0408852564554365E+01 + -1.0317225796398905E+01 -1.0226405617108666E+01 -1.0136384925959073E+01 + -1.0047156684741903E+01 -9.9587139172149168E+00 -9.8710497085560824E+00 + -9.7841572048227903E+00 -9.6980296124156702E+00 -9.6126601975473402E+00 + -9.5280422857156548E+00 -9.4441692611816030E+00 -9.3610345664519805E+00 + -9.2786317017664235E+00 -9.1969542245889979E+00 -9.1159957491043944E+00 + -9.0357499457184147E+00 -8.9562105405629371E+00 -8.8773713150051599E+00 + -8.7992261051613205E+00 -8.7217688014145569E+00 -8.6449933479370156E+00 + -8.5688937422163178E+00 -8.4934640345860224E+00 -8.4186983277603282E+00 + -8.3445907763727991E+00 -8.2711355865192644E+00 -8.1983270153046615E+00 + -8.1261593703938146E+00 -8.0546270095663477E+00 -7.9837243402753586E+00 + -7.9134458192100059E+00 -7.8437859518620439E+00 -7.7747392920960587E+00 + -7.7063004417235748E+00 -7.6384640500808061E+00 -7.5712248136102964E+00 + -7.5045774754460917E+00 -7.4385168250025782E+00 -7.3730376975670744E+00 + -7.3081349738958714E+00 -7.2438035798138429E+00 -7.1800384858176898E+00 + -7.1168347066825675E+00 -7.0541873010722389E+00 -6.9920913711525809E+00 + -6.9305420622086400E+00 -6.8695345622649349E+00 -6.8090641017090991E+00 + -6.7491259529189618E+00 -6.6897154298927806E+00 -6.6308278878828082E+00 + -6.5724587230320131E+00 -6.5146033720141219E+00 -6.4572573116767140E+00 + -6.4004160586874761E+00 -6.3440751691836654E+00 -6.2882302384245587E+00 + -6.2328769004469651E+00 -6.1780108277238641E+00 -6.1236277308259588E+00 + -6.0697233580862493E+00 -6.0162934952675213E+00 -5.9633339652328479E+00 + -5.9108406276189100E+00 -5.8588093785121984E+00 -5.8072361501281380E+00 + -5.7561169104929677E+00 -5.7054476631284512E+00 -5.6552244467393269E+00 + -5.6054433349035984E+00 -5.5561004357654671E+00 -5.5071918917309670E+00 + -5.4587138791663703E+00 -5.4106626080991580E+00 -5.3630343219216270E+00 + -5.3158252970971951E+00 -5.2690318428691869E+00 -5.2226503009722567E+00 + -5.1766770453462829E+00 -5.1311084818528805E+00 -5.0859410479943303E+00 + -5.0411712126349730E+00 -4.9967954757251496E+00 -4.9528103680274853E+00 + -4.9092124508455832E+00 -4.8659983157551929E+00 -4.8231645843376496E+00 + -4.7807079079157218E+00 -4.7386249672917291E+00 -4.6969124724880418E+00 + -4.6555671624898167E+00 -4.6145858049899644E+00 -4.5739651961364611E+00 + -4.5337021602817957E+00 -4.4937935497346668E+00 -4.4542362445138268E+00 + -4.4150271521041704E+00 -4.3761632072148942E+00 -4.3376413715397932E+00 + -4.2994586335197331E+00 -4.2616120081071500E+00 -4.2240985365326154E+00 + -4.1869152860735328E+00 -4.1500593498247955E+00 -4.1135278464715004E+00 + -4.0773179200636243E+00 -4.0414267397927661E+00 -4.0058514997707686E+00 + -3.9705894188103144E+00 -3.9356377402074947E+00 -3.9009937315262446E+00 + -3.8666546843846739E+00 -3.8326179142433334E+00 -3.7988807601952890E+00 + -3.7654405847580730E+00 -3.7322947736674368E+00 -3.6994407356729830E+00 + -3.6668759023355322E+00 -3.6345977278262813E+00 -3.6026036887277879E+00 + -3.5708912838366369E+00 -3.5394580339678869E+00 -3.5083014817612046E+00 + -3.4774191914887589E+00 -3.4468087488647590E+00 -3.4164677608566665E+00 + -3.3863938554981243E+00 -3.3565846817034783E+00 -3.3270379090839333E+00 + -3.2977512277653798E+00 -3.2687223482077670E+00 -3.2399490010260981E+00 + -3.2114289368129754E+00 -3.1831599259627521E+00 -3.1551397584971950E+00 + -3.1273662438926686E+00 -3.0998372109089041E+00 -3.0725505074192188E+00 + -3.0455040002422287E+00 -3.0186955749750970E+00 -2.9921231358281961E+00 + -2.9657846054612529E+00 -2.9396779248209080E+00 -2.9138010529797613E+00 + -2.8881519669767819E+00 -2.8627286616591219E+00 -2.8375291495253774E+00 + -2.8125514605701745E+00 -2.7877936421301475E+00 -2.7632537587312545E+00 + -2.7389298919374760E+00 -2.7148201402008145E+00 -2.6909226187125963E+00 + -2.6672354592561462E+00 -2.6437568100607005E+00 -2.6204848356566144E+00 + -2.5974177167318842E+00 -2.5745536499898858E+00 -2.5518908480083953E+00 + -2.5294275390998200E+00 -2.5071619671727086E+00 -2.4850923915944376E+00 + -2.4632170870551100E+00 -2.4415343434326875E+00 -2.4200424656592712E+00 + -2.3987397735885811E+00 -2.3776246018645795E+00 -2.3566952997912933E+00 + -2.3359502312037441E+00 -2.3153877743400120E+00 -2.2950063217144683E+00 + -2.2748042799920833E+00 -2.2547800698638425E+00 -2.2349321259232937E+00 + -2.2152588965441455E+00 -2.1957588437589619E+00 -2.1764304431389045E+00 + -2.1572721836745727E+00 -2.1382825676578556E+00 -2.1194601105648272E+00 + -2.1008033409397027E+00 -2.0823108002797892E+00 -2.0639810429214416E+00 + -2.0458126359270610E+00 -2.0278041589730496E+00 -2.0099542042387726E+00 + -1.9922613762964798E+00 -1.9747242920022279E+00 -1.9573415803877328E+00 + -1.9401118825531771E+00 -1.9230338515609848E+00 -1.9061061523305056E+00 + -1.8893274615336413E+00 -1.8726964674913722E+00 -1.8562118700712307E+00 + -1.8398723805856396E+00 -1.8236767216911576E+00 -1.8076236272886288E+00 + -1.7917118424241929E+00 -1.7759401231911558E+00 -1.7603072366327648E+00 + -1.7448119606457984E+00 -1.7294530838850288E+00 -1.7142294056685046E+00 + -1.6991397358837002E+00 -1.6841828948944619E+00 -1.6693577134487736E+00 + -1.6546630325873639E+00 -1.6400977035530864E+00 -1.6256605877011023E+00 + -1.6113505564098785E+00 -1.5971664909929388E+00 -1.5831072826114110E+00 + -1.5691718321873256E+00 -1.5553590503177082E+00 -1.5416678571893991E+00 + -1.5280971824946277E+00 -1.5146459653473503E+00 -1.5013131542003013E+00 + -1.4880977067627859E+00 -1.4749985899191858E+00 -1.4620147796482055E+00 + -1.4491452609428068E+00 -1.4363890277308478E+00 -1.4237450827964444E+00 + -1.4112124377020012E+00 -1.3987901127109277E+00 -1.3864771367110584E+00 + -1.3742725471387212E+00 -1.3621753899034912E+00 -1.3501847193135903E+00 + -1.3382995980019674E+00 -1.3265190968530098E+00 -1.3148422949298981E+00 + -1.3032682794026229E+00 -1.2917961454766125E+00 -1.2804249963219914E+00 + -1.2691539430034802E+00 -1.2579821044108912E+00 -1.2469086071902469E+00 + -1.2359325856754968E+00 -1.2250531818208503E+00 -1.2142695451336920E+00 + -1.2035808326080830E+00 -1.1929862086588710E+00 -1.1824848450563543E+00 + -1.1720759208615379E+00 -1.1617586223619463E+00 -1.1515321430080188E+00 + -1.1413956833500505E+00 -1.1313484509756859E+00 -1.1213896604479827E+00 + -1.1115185332439996E+00 -1.1017342976939286E+00 -1.0920361889207788E+00 + -1.0824234487805722E+00 -1.0728953258030762E+00 -1.0634510751330488E+00 + -1.0540899584720185E+00 -1.0448112440205597E+00 -1.0356142064210765E+00 + -1.0264981267011077E+00 -1.0174622922171113E+00 -1.0085059965987546E+00 + -9.9962853969368570E-01 -9.9082922751280789E-01 -9.8210737217601907E-01 + -9.7346229185843047E-01 -9.6489331073707374E-01 -9.5639975893806073E-01 + -9.4798097248421032E-01 -9.3963629324314990E-01 -9.3136506887585835E-01 + -9.2316665278567034E-01 -9.1504040406772125E-01 -9.0698568745885255E-01 + -8.9900187328794312E-01 -8.9108833742668003E-01 -8.8324446124077449E-01 + -8.7546963154159363E-01 -8.6776324053822007E-01 -8.6012468578994372E-01 + -8.5255337015916111E-01 -8.4504870176469393E-01 -8.3761009393551267E-01 + -8.3023696516488077E-01 -8.2292873906489072E-01 -8.1568484432139843E-01 + -8.0850471464936879E-01 -8.0138778874860028E-01 -7.9433351025984555E-01 + -7.8734132772131349E-01 -7.8041069452556433E-01 -7.7354106887677465E-01 + -7.6673191374837701E-01 -7.5998269684108544E-01 -7.5329289054127735E-01 + + + 1.0913780874825021E+02 9.5782910067966085E+01 8.8580176846929618E+01 + 8.4600009356138429E+01 8.1870941435945696E+01 7.9379640496060048E+01 + 7.7710786006745678E+01 7.6347863560703431E+01 7.5167528614686930E+01 + 7.4139022996765334E+01 7.3226334817626750E+01 7.2406010991210835E+01 + 7.1661331826687132E+01 7.0979551022617912E+01 7.0350867240961918E+01 + 6.9767579129024568E+01 6.9223525496289781E+01 6.8713703572277268E+01 + 6.8233997355497237E+01 6.7780980951294779E+01 6.7351773396582530E+01 + 6.6943929612578714E+01 6.6555357237049975E+01 6.6184252316645171E+01 + 6.5829048961611662E+01 6.5488379485210288E+01 6.5161042518767047E+01 + 6.4845977265772305E+01 6.4542242532770800E+01 6.4248999514266558E+01 + 6.3965497555105166E+01 6.3691062294619634E+01 6.3425085731141436E+01 + 6.3167017846306599E+01 6.2916359505029575E+01 6.2672656405509031E+01 + 6.2435493898770488E+01 6.2204492532371638E+01 6.1979304200429212E+01 + 6.1759608803864218E+01 6.1545111342043235E+01 6.1335539370814487E+01 + 6.1130640773063433E+01 6.0930181796914148E+01 6.0733945324030550E+01 + 6.0541729336463426E+01 6.0353345555414442E+01 6.0168618229356269E+01 + 5.9987383052320304E+01 5.9809486195974529E+01 5.9634783441462716E+01 + 5.9463139398950382E+01 5.9294426804484296E+01 5.9128525885179464E+01 + 5.8965323784938811E+01 5.8804714043928911E+01 5.8646596125899777E+01 + 5.8490874988181979E+01 5.8337460689831097E+01 5.8186268033940770E+01 + 5.8037216240619159E+01 5.7890228647536240E+01 5.7745232435305965E+01 + 5.7602158375278485E+01 5.7460940597588746E+01 5.7321516377544405E+01 + 5.7183825938645377E+01 5.7047812270707801E+01 5.6913420961727290E+01 + 5.6780600042257518E+01 5.6649299841205057E+01 5.6519472852052161E+01 + 5.6391073608617766E+01 5.6264058569553796E+01 5.6138386010851214E+01 + 5.6014015925700292E+01 5.5890909931110180E+01 5.5769031180749103E+01 + 5.5648344283514994E+01 5.5528815227391611E+01 5.5410411308183939E+01 + 5.5293101062763697E+01 5.5176854206486937E+01 5.5061641574475061E+01 + 5.4947435066477823E+01 5.4834207595058672E+01 5.4721933036866396E+01 + 5.4610586186774555E+01 5.4500142714689844E+01 5.4390579124844379E+01 + 5.4281872717403729E+01 5.4174001552233889E+01 5.4066944414683704E+01 + 5.3960680783250027E+01 5.3855190799002585E+01 5.3750455236655291E+01 + 5.3646455477178790E+01 5.3543173481857110E+01 5.3440591767697931E+01 + 5.3338693384113085E+01 5.3237461890791209E+01 5.3136881336690358E+01 + 5.3036936240083726E+01 5.2937611569595404E+01 5.2838892726168275E+01 + 5.2740765525909737E+01 5.2643216183764338E+01 5.2546231297966429E+01 + 5.2449797835228402E+01 5.2353903116623449E+01 5.2258534804123975E+01 + 5.2163680887759853E+01 5.2069329673362624E+01 5.1975469770863931E+01 + 5.1882090083118193E+01 5.1789179795222346E+01 5.1696728364305798E+01 + 5.1604725509766276E+01 5.1513161203928782E+01 5.1422025663105401E+01 + 5.1331309339035855E+01 5.1241002910689744E+01 5.1151097276412024E+01 + 5.1061583546394701E+01 5.0972453035459061E+01 5.0883697256132734E+01 + 5.0795307912007672E+01 5.0707276891365375E+01 5.0619596261056479E+01 + 5.0532258260623060E+01 5.0445255296651723E+01 5.0358579937347059E+01 + 5.0272224907315191E+01 5.0186183082547679E+01 5.0100447485596575E+01 + 5.0015011280932292E+01 4.9929867770475553E+01 4.9845010389296192E+01 + 4.9760432701470940E+01 4.9676128396093418E+01 4.9592091283429781E+01 + 4.9508315291213364E+01 4.9424794461072601E+01 4.9341522945086538E+01 + 4.9258495002462169E+01 4.9175704996328868E+01 4.9093147390644717E+01 + 4.9010816747210100E+01 4.8928707722784310E+01 4.8846815066300607E+01 + 4.8765133616175945E+01 4.8683658297711588E+01 4.8602384120580538E+01 + 4.8521306176398696E+01 4.8440419636376397E+01 4.8359719749046775E+01 + 4.8279201838068396E+01 4.8198861300098855E+01 4.8118693602736919E+01 + 4.8038694282530194E+01 4.7958858943046451E+01 4.7879183253005060E+01 + 4.7799662944467634E+01 4.7720293811084538E+01 4.7641071706395650E+01 + 4.7561992542183447E+01 4.7483052286876209E+01 4.7404246963999675E+01 + 4.7325572650675319E+01 4.7247025476163422E+01 4.7168601620449884E+01 + 4.7090297312874220E+01 4.7012108830798304E+01 4.6934032498313783E+01 + 4.6856064684986883E+01 4.6778201804639693E+01 4.6700440314165988E+01 + 4.6622776712381068E+01 4.6545207538904009E+01 4.6467729373071442E+01 + 4.6390338832881575E+01 4.6313032573967810E+01 4.6235807288600505E+01 + 4.6158659704716314E+01 4.6081586584974055E+01 4.6004584725836111E+01 + 4.5927650956674896E+01 4.5850782138903085E+01 4.5773975165127247E+01 + 4.5697226958324016E+01 4.5620534471037921E+01 4.5543894684600410E+01 + 4.5467304608369332E+01 4.5390761278988222E+01 4.5314261759664738E+01 + 4.5237803139467793E+01 4.5161382532642627E+01 4.5084997077943534E+01 + 4.5008643937983400E+01 4.4932320298599812E+01 4.4856023368237146E+01 + 4.4779750377344136E+01 4.4703498577786526E+01 4.4627265242274383E+01 + 4.4551047663803502E+01 4.4474843155110818E+01 4.4398649048143056E+01 + 4.4322462693538448E+01 4.4246281460121267E+01 4.4170102734408545E+01 + 4.4093923920128795E+01 4.4017742437752474E+01 4.3941555724033833E+01 + 4.3865361231563632E+01 4.3789156428332902E+01 4.3712938797306855E+01 + 4.3636705836009426E+01 4.3560455056117327E+01 4.3484183983064099E+01 + 4.3407890155653533E+01 4.3331571125682323E+01 4.3255224457571643E+01 + 4.3178847728007653E+01 4.3102438525590415E+01 4.3025994450491318E+01 + 4.2949513114118517E+01 4.2872992138790494E+01 4.2796429157417364E+01 + 4.2719821813189725E+01 4.2643167759275123E+01 4.2566464658521703E+01 + 4.2489710183168881E+01 4.2412902014565297E+01 4.2336037842893219E+01 + 4.2259115366900012E+01 4.2182132293635831E+01 4.2105086338197985E+01 + 4.2027975223481477E+01 4.1950796679935564E+01 4.1873548445326819E+01 + 4.1796228264507548E+01 4.1718833889190606E+01 4.1641363077729437E+01 + 4.1563813594904111E+01 4.1486183211712621E+01 4.1408469705167846E+01 + 4.1330670858099680E+01 4.1252784458962431E+01 4.1174808301647538E+01 + 4.1096740185301115E+01 4.1018577914146803E+01 4.0940319297313330E+01 + 4.0861962148667082E+01 4.0783504286649396E+01 4.0704943534118584E+01 + 4.0626277718196647E+01 4.0547504670120730E+01 4.0468622225098834E+01 + 4.0389628222170330E+01 4.0310520504070745E+01 4.0231296917100977E+01 + 4.0151955311000954E+01 4.0072493538827459E+01 3.9992909456836344E+01 + 3.9913200924368859E+01 3.9833365803742240E+01 3.9753401960144402E+01 + 3.9673307261532848E+01 3.9593079578537463E+01 3.9512716784367576E+01 + 3.9432216754722916E+01 3.9351577367708529E+01 3.9270796503753850E+01 + 3.9189872045535537E+01 3.9108801877904320E+01 3.9027583887815751E+01 + 3.8946215964264844E+01 3.8864695998224526E+01 3.8783021882588102E+01 + 3.8701191512115450E+01 3.8619202783382981E+01 3.8537053594737650E+01 + 3.8454741846254528E+01 3.8372265439698431E+01 3.8289622278489183E+01 + 3.8206810267670690E+01 3.8123827313883922E+01 3.8040671325343553E+01 + 3.7957340211818547E+01 3.7873831884616393E+01 3.7790144256571281E+01 + 3.7706275242035936E+01 3.7622222756877420E+01 3.7537984718476586E+01 + 3.7453559045731510E+01 3.7368943659064655E+01 3.7284136480433908E+01 + 3.7199135433347465E+01 3.7113938442882578E+01 3.7028543435708215E+01 + 3.6942948340111570E+01 3.6857151086028473E+01 3.6771149605077817E+01 + 3.6684941830599783E+01 3.6598525697698129E+01 3.6511899143286449E+01 + 3.6425060106138403E+01 3.6338006526942003E+01 3.6250736348357918E+01 + 3.6163247515081821E+01 3.6075537973910912E+01 3.5987605673814542E+01 + 3.5899448566008878E+01 3.5811064604035863E+01 3.5722451743846371E+01 + 3.5633607943887455E+01 3.5544531165194059E+01 3.5455219371484887E+01 + 3.5365670529262630E+01 3.5275882607918518E+01 3.5185853579841343E+01 + 3.5095581420530827E+01 3.5005064108715487E+01 3.4914299626475028E+01 + 3.4823285959367134E+01 3.4732021096559031E+01 3.4640503030963437E+01 + 3.4548729759379377E+01 3.4456699282637587E+01 3.4364409605750481E+01 + 3.4271858738067230E+01 3.4179044693433383E+01 3.4085965490355427E+01 + 3.3992619152170221E+01 3.3899003707219421E+01 3.3805117189028898E+01 + 3.3710957636493049E+01 3.3616523094064384E+01 3.3521811611948074E+01 + 3.3426821246301763E+01 3.3331550059440524E+01 3.3235996120047197E+01 + 3.3140157503387854E+01 3.3044032291532872E+01 3.2947618573583199E+01 + 3.2850914445902262E+01 3.2753918012353203E+01 3.2656627384541842E+01 + 3.2559040682065209E+01 3.2461156032765750E+01 3.2362971572991192E+01 + 3.2264485447860324E+01 3.2165695811534469E+01 3.2066600827494874E+01 + 3.1967198668826150E+01 3.1867487518505609E+01 3.1767465569698579E+01 + 3.1667131026060009E+01 3.1566482102042041E+01 3.1465517023207966E+01 + 3.1364234026552353E+01 3.1262631360827523E+01 3.1160707286876416E+01 + 3.1058460077971883E+01 3.0955888020162508E+01 3.0852989412624975E+01 + 3.0749762568023037E+01 3.0646205812873134E+01 3.0542317487916808E+01 + 3.0438095948499761E+01 3.0333539564957952E+01 3.0228646723010410E+01 + 3.0123415824159125E+01 3.0017845286095838E+01 2.9911933543116032E+01 + 2.9805679046539890E+01 2.9699080265140580E+01 2.9592135685579692E+01 + 2.9484843812849963E+01 2.9377203170725423E+01 2.9269212302218783E+01 + 2.9160869770046517E+01 2.9052174157101216E+01 2.8943124066931684E+01 + 2.8833718124230518E+01 2.8723954975329445E+01 2.8613833288702310E+01 + 2.8503351755475943E+01 2.8392509089948714E+01 2.8281304030117042E+01 + 2.8169735338209858E+01 2.8057801801230841E+01 2.7945502231509003E+01 + 2.7832835467256981E+01 2.7719800373137709E+01 2.7606395840839063E+01 + 2.7492620789656772E+01 2.7378474167085599E+01 2.7263954949418736E+01 + 2.7149062142355511E+01 2.7033794781617495E+01 2.6918151933572979E+01 + 2.6802132695869798E+01 2.6685736198076796E+01 2.6568961602333566E+01 + 2.6451808104008869E+01 2.6334274932367485E+01 2.6216361351245695E+01 + 2.6098066659735419E+01 2.5979390192876785E+01 2.5860331322359592E+01 + 2.5740889457233170E+01 2.5621064044625143E+01 2.5500854570468690E+01 + 2.5380260560238650E+01 2.5259281579696246E+01 2.5137917235642561E+01 + 2.5016167176680717E+01 2.4894031093986705E+01 2.4771508722089138E+01 + 2.4648599839657411E+01 2.4525304270298872E+01 2.4401621883364399E+01 + 2.4277552594762902E+01 2.4153096367784276E+01 2.4028253213931162E+01 + 2.3903023193759172E+01 2.3777406417725832E+01 2.3651403047047967E+01 + 2.3525013294567643E+01 2.3398237425626611E+01 2.3271075758949152E+01 + 2.3143528667533303E+01 2.3015596579550394E+01 2.2887279979252931E+01 + 2.2758579407890590E+01 2.2629495464634427E+01 2.2500028807509175E+01 + 2.2370180154333415E+01 2.2239950283667856E+01 2.2109340035771197E+01 + 2.1978350313564018E+01 2.1846982083600036E+01 2.1715236377045073E+01 + 2.1583114290663392E+01 2.1450616987811291E+01 2.1317745699438031E+01 + 2.1184501725093678E+01 2.1050886433943933E+01 2.0916901265791811E+01 + 2.0782547732105858E+01 2.0647827417054913E+01 2.0512741978549229E+01 + 2.0377293149287688E+01 2.0241482737811072E+01 2.0105312629561041E+01 + 1.9968784787944895E+01 1.9831901255405509E+01 1.9694664154496767E+01 + 1.9557075688963710E+01 1.9419138144827649E+01 1.9280853891475811E+01 + 1.9142225382755136E+01 1.9003255158070363E+01 1.8863945843485677E+01 + 1.8724300152830043E+01 1.8584320888805827E+01 1.8444010944100203E+01 + 1.8303373302499470E+01 1.8162411040005505E+01 1.8021127325954488E+01 + 1.7879525424137270E+01 1.7737608693921050E+01 1.7595380591372294E+01 + 1.7452844670380163E+01 1.7310004583780355E+01 1.7166864084478956E+01 + 1.7023427026575664E+01 1.6879697366486390E+01 1.6735679164064372E+01 + 1.6591376583719835E+01 1.6446793895537315E+01 1.6301935476390533E+01 + 1.6156805811054237E+01 1.6011409493312431E+01 1.5865751227062738E+01 + 1.5719835827416119E+01 1.5573668221791671E+01 1.5427253451005905E+01 + 1.5280596670355795E+01 1.5133703150695350E+01 1.4986578279504860E+01 + 1.4839227561952384E+01 1.4691656621946912E+01 1.4543871203182336E+01 + 1.4395877170172065E+01 1.4247680509273085E+01 1.4099287329699266E+01 + 1.3950703864523076E+01 1.3801936471664867E+01 1.3652991634869329E+01 + 1.3503875964668115E+01 1.3354596199328167E+01 1.3205159205784669E+01 + 1.3055571980558220E+01 1.2905841650655210E+01 1.2755975474450619E+01 + 1.2605980842552606E+01 1.2455865278647762E+01 1.2305636440326490E+01 + 1.2155302119887482E+01 1.2004870245120348E+01 1.1854348880065782E+01 + 1.1703746225751981E+01 1.1553070620906704E+01 1.1402330542643931E+01 + 1.1251534607123984E+01 1.1100691570186491E+01 1.0949810327954825E+01 + 1.0798899917411287E+01 1.0647969516941899E+01 1.0497028446849683E+01 + 1.0346086169835594E+01 1.0195152291445750E+01 1.0044236560484116E+01 + 9.8933488693894329E+00 9.7424992545751739E+00 9.5916978967316329E+00 + 9.4409551210887042E+00 9.2902813976384770E+00 9.1396873413161739E+00 + 8.9891837121384714E+00 8.8387814152979036E+00 8.6884915012120381E+00 + 8.5383251655263521E+00 8.3882937490693958E+00 8.2384087377590838E+00 + 8.0886817624588243E+00 7.9391245987820653E+00 7.7897491668441887E+00 + 7.6405675309601744E+00 7.4915918992869086E+00 7.3428346234087085E+00 + 7.1943081978646637E+00 7.0460252596165915E+00 6.8979985874560370E+00 + 6.7502411013490873E+00 6.6027658617175833E+00 6.4555860686552293E+00 + 6.3087150610773710E+00 6.1621663158028470E+00 6.0159534465666544E+00 + 5.8700902029618645E+00 5.7245904693094758E+00 5.5794682634547064E+00 + 5.4347377354882598E+00 5.2904131663912288E+00 5.1465089666020383E+00 + 5.0030396745041346E+00 4.8600199548328700E+00 4.7174645970001450E+00 + 4.5753885133354206E+00 4.4338067372415599E+00 4.2927344212641350E+00 + 4.1521868350727233E+00 4.0121793633527210E+00 3.8727275036063165E+00 + 3.7338468638611215E+00 3.5955531602850912E+00 3.4578622147063158E+00 + 3.3207899520362547E+00 3.1843523975950903E+00 3.0485656743377594E+00 + 2.9134459999793796E+00 2.7790096840187091E+00 2.6452731246583077E+00 + 2.5122528056201805E+00 2.3799652928555730E+00 2.2484272311477800E+00 + 2.1176553406066976E+00 1.9876664130540511E+00 1.8584773082981478E+00 + 1.7301049502971182E+00 1.6025663232096670E+00 1.4758784673323651E+00 + 1.3500584749226423E+00 1.2251234859066653E+00 1.1010906834713681E+00 + 9.7797728954001673E-01 8.5580056013073047E-01 7.3457778059751522E-01 + 6.1432626075344443E-01 4.9506332987571872E-01 3.7680633159247606E-01 + 2.5957261865129178E-01 1.4337954756946067E-01 2.8244473166246557E-02 + -8.5815257022594640E-02 -1.9878230844759232E-01 -3.1063936536510678E-01 + -4.2136913677300275E-01 -5.3095436246170213E-01 -6.3937781917978698E-01 + -7.4662232691322583E-01 -8.5267075527722791E-01 -9.5750603001968093E-01 + -1.0611111396350545E+00 -1.1634691420876533E+00 -1.2645631716430623E+00 + -1.3643764458066188E+00 -1.4628922723678062E+00 -1.5600940565494095E+00 + -1.6559653082603907E+00 -1.7504896494514526E+00 -1.8436508215722847E+00 + -1.9354326931296213E+00 -2.0258192673452049E+00 -2.1147946899128840E+00 + -2.2023432568540722E+00 -2.2884494224708209E+00 -2.3730978073958471E+00 + -2.4562732067387398E+00 -2.5379605983276572E+00 -2.6181451510457237E+00 + -2.6968122332612050E+00 -2.7739474213505808E+00 -2.8495365083133040E+00 + -2.9235655124770625E+00 -2.9960206862919838E+00 -3.0668885252121583E+00 + -3.1361557766625228E+00 -3.2038094490888511E+00 -3.2698368210884419E+00 + -3.3342254506186135E+00 -3.3969631842799597E+00 -3.4580381666708897E+00 + -3.5174388498096487E+00 -3.5751540026197710E+00 -3.6311727204743982E+00 + -3.6854844347947315E+00 -3.7380789226974409E+00 -3.7889463166854864E+00 + -3.8380771143766030E+00 -3.8854621882631850E+00 -3.9310927954971673E+00 + -3.9749605876930683E+00 -4.0170576207420572E+00 -4.0573763646297643E+00 + -4.0959097132500659E+00 -4.1326509942070420E+00 -4.1675939785969005E+00 + -4.2007328907615822E+00 -4.2320624180055031E+00 -4.2615777202666818E+00 + -4.2892744397335063E+00 -4.3151487103980433E+00 -4.3391971675368888E+00 + -4.3614169571103272E+00 -4.3818057450704808E+00 -4.4003617265691739E+00 + -4.4170836350559792E+00 -4.4319707512570305E+00 -4.4450229120250073E+00 + -4.4562405190506365E+00 -4.4656245474261125E+00 -4.4731765540506148E+00 + -4.4788986858681774E+00 -4.4827936879280657E+00 -4.4848649112576631E+00 + -4.4851163205380447E+00 -4.4835525015720448E+00 -4.4801786685348839E+00 + -4.4750006709971606E+00 -4.4680250007100071E+00 -4.4592587981422724E+00 + -4.4487098587593783E+00 -4.4363866390336684E+00 -4.4222982621757980E+00 + -4.4064545235769543E+00 -4.3888658959514792E+00 -4.3695435341694981E+00 + -4.3484992797692890E+00 -4.3257456651388901E+00 -4.3012959173567076E+00 + -4.2751639616807209E+00 -4.2473644246759541E+00 -4.2179126369700253E+00 + -4.1868246356264116E+00 -4.1541171661253609E+00 -4.1198076839422733E+00 + -4.0839143557134738E+00 -4.0464560599794845E+00 -4.0074523874958299E+00 + -3.9669236411016682E+00 -3.9248908351365772E+00 -3.8813756943958899E+00 + -3.8364006526153220E+00 -3.7899888504755075E+00 -3.7421641331174991E+00 + -3.6929510471602263E+00 -3.6423748372113067E+00 -3.5904614418626917E+00 + -3.5372374891628584E+00 -3.4827302915576031E+00 -3.4269678402915988E+00 + -3.3699787992633166E+00 -3.3117924983260729E+00 -3.2524389260283404E+00 + -3.1919487217868130E+00 -3.1303531674859770E+00 -3.0676841784984186E+00 + -3.0039742941204133E+00 -2.9392566674177441E+00 -2.8735650544772025E+00 + -2.8069338030595676E+00 -2.7393978406504331E+00 -2.6709926619056588E+00 + -2.6017543154887721E+00 -2.5317193902981954E+00 -2.4609250010826584E+00 + -2.3894087734438259E+00 -2.3172088282256773E+00 -2.2443637652908071E+00 + -2.1709126466845134E+00 -2.0968949791880656E+00 -2.0223506962633664E+00 + -1.9473201393917459E+00 -1.8718440388104791E+00 -1.7959634936512527E+00 + -1.7197199514855372E+00 -1.6431551872826566E+00 -1.5663112817870171E+00 + -1.4892305993218256E+00 -1.4119557650273804E+00 -1.3345296415428451E+00 + -1.2569953051412919E+00 -1.1793960213285914E+00 -1.1017752199176731E+00 + -1.0241764695905344E+00 -9.4664345196131572E-01 -8.6921993515474050E-01 + -7.9194974691515341E-01 -7.1487674726247119E-01 -6.3804480071237346E-01 + -5.6149774807917197E-01 -4.8527937788094250E-01 -4.0943339736765783E-01 + -3.3400340319428951E-01 -2.5903285176207058E-01 -1.8456502925238841E-01 + -1.1064302137904670E-01 -3.7309682885901710E-02 3.5392393181864101E-02 + 1.0742090640337898E-01 1.7873388007404700E-01 2.4928969243224472E-01 + 3.1904710798826896E-01 3.8796530892235748E-01 4.5600392651809374E-01 + 5.2312307259725488E-01 5.8928337092215710E-01 6.5444598853182556E-01 + 7.1857266697890587E-01 7.8162575343507046E-01 8.4356823163383399E-01 + 9.0436375262107127E-01 9.6397666528512616E-01 1.0223720466402006E+00 + 1.0795157318385467E+00 1.1353743438889410E+00 1.1899153230607376E+00 + 1.2431069559545591E+00 1.2949184042221655E+00 1.3453197329191526E+00 + 1.3942819384748961E+00 1.4417769762641817E+00 1.4877777877644540E+00 + 1.5322583272812440E+00 1.5751935882220816E+00 1.6165596288962019E+00 + 1.6563335978133575E+00 1.6944937584505191E+00 1.7310195134501112E+00 + 1.7658914282081302E+00 1.7990912538054196E+00 1.8306019492306977E+00 + 1.8604077028403374E+00 1.8884939529973976E+00 1.9148474078313726E+00 + 1.9394560640606633E+00 1.9623092248216687E+00 1.9833975164516404E+00 + 2.0027129041765783E+00 2.0202487066602202E+00 2.0359996093752142E+00 + 2.0499616767623530E+00 2.0621323631483079E+00 2.0725105223960480E+00 + 2.0810964162653129E+00 2.0878917214628423E+00 2.0928995353637037E+00 + 2.0961243803862208E+00 2.0975722070035654E+00 2.0972503953755277E+00 + 2.0951677555842250E+00 2.0913345264578136E+00 2.0857623729668133E+00 + 2.0784643821782867E+00 2.0694550577542468E+00 2.0587503129819824E+00 + 2.0463674623256418E+00 2.0323252114904724E+00 2.0166436459932306E+00 + 1.9993442182347552E+00 1.9804497330732005E+00 1.9599843318989971E+00 + 1.9379734752152944E+00 1.9144439237301398E+00 1.8894237179692508E+00 + 1.8629421564205590E+00 1.8350297722241122E+00 1.8057183084230231E+00 + 1.7750406917932176E+00 1.7430310052717297E+00 1.7097244590049783E+00 + 1.6751573600403009E+00 1.6393670806855305E+00 1.6023920255629605E+00 + 1.5642715973855434E+00 1.5250461614845054E+00 1.4847570091189939E+00 + 1.4434463195996836E+00 1.4011571212595713E+00 1.3579332513065618E+00 + 1.3138193145936974E+00 1.2688606413442702E+00 1.2231032438703804E+00 + 1.1765937723248694E+00 1.1293794695280144E+00 1.0815081249117571E+00 + 1.0330280276258026E+00 9.8398791885141068E-01 9.3443694337032024E-01 + 8.8442460043790039E-01 8.3400069401127397E-01 7.8321528238494198E-01 + 7.3211862728815924E-01 6.8076114250015729E-01 6.2919334204108701E-01 + 5.7746578799837855E-01 5.2562903805000827E-01 4.7373359274787047E-01 + 4.2182984262613421E-01 3.6996801520098471E-01 3.1819812192954028E-01 + 2.6656990519695434E-01 2.1513278540166617E-01 1.6393580820950648E-01 + 1.1302759204778290E-01 6.2456275910604854E-02 1.2269467546534166E-02 + -3.7485807900823308E-02 -8.6763158729369280E-02 -1.3551687692316228E-01 + -1.8370198773702376E-01 -2.3127429855374285E-01 -2.7819044694695338E-01 + -3.2440794788258820E-01 -3.6988523999070883E-01 -4.1458173083715177E-01 + -4.5845784112043164E-01 -5.0147504771339302E-01 -5.4359592546094060E-01 + -5.8478418763464035E-01 -6.2500472493222103E-01 -6.6422364289530267E-01 + -7.0240829760284507E-01 -7.3952732948206035E-01 -7.7555069506437879E-01 + -8.1044969650388721E-01 -8.4419700867169412E-01 -8.7676670364479992E-01 + -9.0813427242494948E-01 -9.3827664375380049E-01 -9.6717219993753067E-01 + -9.9480078965737806E-01 -1.0211437378221706E+00 -1.0461838526131844E+00 + -1.0699054299772415E+00 -1.0922942559353819E+00 -1.1133376071842009E+00 + -1.1330242505632637E+00 -1.1513444420297909E+00 -1.1682899258021411E+00 + -1.1838539342859604E+00 -1.1980311892641597E+00 -1.2108179046078529E+00 + -1.2222117904614707E+00 -1.2322120585061518E+00 -1.2408194275662578E+00 + -1.2480361285589983E+00 -1.2538659076534946E+00 -1.2583140265332067E+00 + -1.2613872588379580E+00 -1.2630938821567013E+00 -1.2634436652859307E+00 + -1.2624478507959680E+00 -1.2601191332080977E+00 -1.2564716332547354E+00 + -1.2515208687717370E+00 -1.2452837227731837E+00 -1.2377784092087520E+00 + -1.2290244368264454E+00 -1.2190425714779496E+00 -1.2078547971227473E+00 + -1.1954842757170077E+00 -1.1819553061161761E+00 -1.1672932820759161E+00 + -1.1515246494029066E+00 -1.1346768622835008E+00 -1.1167783388027721E+00 + -1.0978584156578137E+00 -1.0779473020666330E+00 -1.0570760328765747E+00 + -1.0352764208831082E+00 -1.0125810083802382E+00 -9.8902301797653136E-01 + -9.6463630272488055E-01 -9.3945529562847174E-01 -9.1351495859921417E-01 + -8.8685073095727751E-01 -8.5949847757077313E-01 -8.3149443674286549E-01 + -8.0287516795935854E-01 -7.7367749961330834E-01 -7.4393847682446768E-01 + -7.1369530947078164E-01 -6.8298532054694117E-01 -6.5184589496144119E-01 + -6.2031442887912691E-01 -5.8842827971098699E-01 -5.5622471684722663E-01 + -5.2374087322373464E-01 -4.9101369780594495E-01 -4.5807990906804513E-01 + -4.2497594953948475E-01 -3.9173794148495139E-01 -3.5840164377838379E-01 + -3.2500241002620095E-01 -2.9157514798983925E-01 -2.5815428035282301E-01 + -2.2477370687297843E-01 -1.9146676795606576E-01 -1.5826620968298111E-01 + -1.2520415031881071E-01 -9.2312048328351326E-02 -5.9620671919270056E-02 + -2.7160070130820901E-02 5.0404545170453291E-03 3.6952371802241750E-02 + 6.8547947997601805E-02 9.9800268479877968E-02 1.3068325874662950E-01 + 1.6117170383934518E-01 1.9124126617345871E-01 2.2086850177814299E-01 + 2.5003087495095005E-01 2.7870677133449062E-01 3.0687550942442343E-01 + 3.3451735052008841E-01 3.6161350713112872E-01 3.8814614985545126E-01 + 4.1409841274580550E-01 4.3945439718417934E-01 4.6419917428505431E-01 + 4.8831878585029426E-01 5.1180024390011525E-01 5.3463152880609710E-01 + 5.5680158605352903E-01 5.7830032166164425E-01 5.9911859629105058E-01 + 6.1924821806874297E-01 6.3868193416145880E-01 6.5741342112824019E-01 + 6.7543727408385723E-01 6.9274899470412021E-01 7.0934497810452957E-01 + 7.2522249862398680E-01 7.4037969454511054E-01 7.5481555178394388E-01 + 7.6852988658285504E-01 7.8152332724228224E-01 7.9379729493019124E-01 + 8.0535398361155219E-01 8.1619633914534306E-01 8.2632803760267359E-01 + 8.3575346286649399E-01 8.4447768358147701E-01 8.5250642953102951E-01 + 8.5984606752696324E-01 8.6650357690551683E-01 8.7248652473054400E-01 + 8.7780304081005034E-01 8.8246179263541591E-01 8.8647196035270237E-01 + 8.8984321187243054E-01 8.9258567821734347E-01 8.9470992919738490E-01 + 8.9622694948773807E-01 8.9714811516927928E-01 8.9748517077288104E-01 + 8.9725020685002377E-01 8.9645563807329443E-01 8.9511418185311331E-01 + 8.9323883744189780E-01 8.9084286548503244E-01 8.8793976796979168E-01 + 8.8454326851914222E-01 8.8066729297698909E-01 8.7632595023450655E-01 + 8.7153351325330930E-01 8.6630440024948208E-01 8.6065315601210179E-01 + 8.5459443334023966E-01 8.4814297459256527E-01 8.4131359335322731E-01 + 8.3412115622602279E-01 8.2658056477589481E-01 8.1870673764225266E-01 + 8.1051459285249616E-01 8.0201903036666111E-01 7.9323491488527498E-01 + 7.8417705895270862E-01 7.7486020638755659E-01 7.6529901607030049E-01 + 7.5550804611675537E-01 7.4550173846373891E-01 7.3529440389130540E-01 + 7.2490020750370487E-01 7.1433315468907888E-01 7.0360707757592178E-01 + 6.9273562200238736E-01 6.8173223501276858E-01 6.7061015289376580E-01 + 6.5938238976162677E-01 6.4806172670975770E-01 6.3666070152496468E-01 + 6.2519159897914822E-01 6.1366644170194706E-01 6.0209698163848846E-01 + 5.9049469209514638E-01 5.7887076037489993E-01 5.6723608100263023E-01 + 5.5560124953940027E-01 5.4397655698353331E-01 5.3237198475507264E-01 + 5.2079720025897747E-01 5.0926155302127130E-01 4.9777407139120183E-01 + 4.8634345980143295E-01 4.7497809657722956E-01 4.6368603228468525E-01 + 4.5247498860715041E-01 4.4135235773820741E-01 4.3032520227883014E-01 + 4.1940025562573569E-01 4.0858392283734074E-01 3.9788228196330411E-01 + 3.8730108582320227E-01 3.7684576421958799E-01 3.6652142657012160E-01 + 3.5633286494532912E-01 3.4628455749256642E-01 3.3638067223541029E-01 + 3.2662507123044654E-01 3.1702131506652520E-01 3.0757266769103558E-01 + 2.9828210154773255E-01 2.8915230301068473E-01 2.8018567809891776E-01 + 2.7138435845635983E-01 2.6275020758127166E-01 2.5428482729065138E-01 + 2.4598956440225084E-01 2.3786551761959845E-01 2.2991354460492067E-01 + 2.2213426922094684E-01 2.1452808892828285E-01 2.0709518231978383E-01 + 1.9983551677466221E-01 1.9274885621670826E-01 1.8583476895752801E-01 + 1.7909263560746416E-01 1.7252165703597441E-01 1.6612086236314230E-01 + 1.5988911696385316E-01 1.5382513046612334E-01 1.4792746472510673E-01 + 1.4219454175446683E-01 1.3662465159708501E-01 1.3121596011749051E-01 + 1.2596651669898393E-01 1.2087426182916022E-01 1.1593703455846069E-01 + 1.1115257981747696E-01 1.0651855558002511E-01 1.0203253986048548E-01 + 9.7692037535556803E-02 9.3494486982408032E-02 8.9437266527180717E-02 + 8.5517700699869179E-02 8.1733066293748297E-02 7.8080598229640974E-02 + 7.4557495227365420E-02 7.1160925288560051E-02 6.7888030996674037E-02 + 6.4735934641120596E-02 6.1701743173317045E-02 5.8782553002521748E-02 + 5.5975454638954189E-02 5.3277537190644153E-02 5.0685892718842725E-02 + 4.8197620454715109E-02 4.5809830877573440E-02 4.3519649652266346E-02 + 4.1324221420743927E-02 3.9220713440473988E-02 3.7206319060507878E-02 + 3.5278261024760477E-02 3.3433794591585977E-02 3.1670210459057963E-02 + 2.9984837486460109E-02 2.8375045204292168E-02 2.6838246107378328E-02 + 2.5371897728394356E-02 2.3973504491868865E-02 2.2640619351471099E-02 + 2.1370845216019375E-02 2.0161836171699570E-02 1.9011298509844361E-02 + 1.7916991570886599E-02 1.6876728415874155E-02 1.5888376337397071E-02 + 1.4949857221766597E-02 1.4059147774019372E-02 1.3214279616824885E-02 + 1.2413339273724620E-02 1.1654468046392856E-02 1.0935861794838750E-02 + 1.0255770628702804E-02 9.6124985170730880E-03 9.0044028235733084E-03 + 8.4298937728706207E-03 7.8874338542175119E-03 7.3755371671791071E-03 + 6.8927687143015516E-03 6.4377436451403779E-03 6.0091264557843652E-03 + 5.6056301477706372E-03 5.2260153500848852E-03 4.8690894077683799E-03 + 4.5337054405046907E-03 4.2187613744294281E-03 3.9231989502901609E-03 + 3.6460027109776198E-03 3.3861989713509237E-03 3.1428547731853925E-03 + 2.9150768279805812E-03 2.7020104502761670E-03 2.5028384840337739E-03 + 2.3167802245521981E-03 2.1430903382911944E-03 1.9810577828846625E-03 + 1.8300047295268268E-03 1.6892854898148909E-03 1.5582854490280807E-03 + 1.4364200077162973E-03 1.3231335333615825E-03 1.2178983237625079E-03 + 1.1202135836761193E-03 1.0296044161345452E-03 9.4562082973459298E-04 + 8.6783676307975008E-04 7.9584912743566386E-04 7.2927686854371183E-04 + 6.6776004842359813E-04 6.1095894788616603E-04 5.5855319037268240E-04 + 5.1024088763738787E-04 4.6573780769710736E-04 4.2477656538481164E-04 + 3.8710583576449949E-04 3.5248959059156897E-04 3.2070635793610223E-04 + 2.9154850502650687E-04 2.6482154431588663E-04 2.4034346272413777E-04 + 2.1794407396375350E-04 1.9746439381600271E-04 1.7875603818635143E-04 + 1.6168064373284728E-04 1.4610931082837449E-04 1.3192206858675298E-04 + 1.1900736165336227E-04 1.0726155843306323E-04 9.6588480401558815E-05 + 8.6898952120927111E-05 7.8110371555867856E-05 7.0146300264267391E-05 + 6.2936073014120420E-05 5.6414426358717312E-05 5.0521145683461401E-05 + 4.5200730220812685E-05 4.0402075514796094E-05 3.6078172803342540E-05 + 3.2185824775535057E-05 2.8685377151671853E-05 2.5540465526959716E-05 + 2.2717776914628493E-05 2.0186825421300947E-05 1.7919741486520983E-05 + 1.5891074119386512E-05 1.4077605568173403E-05 1.2458177863587141E-05 + 1.1013530682733329E-05 9.7261499889416004E-06 8.5801269120903518E-06 + 7.5610263449283481E-06 6.6557647429439929E-06 5.8524966284564308E-06 + 5.1405093136618135E-06 4.5101253722280089E-06 3.9526124045613912E-06 + 3.4600996579450110E-06 3.0255010792456619E-06 2.6424443946934906E-06 + 2.3052058282432852E-06 2.0086500871289187E-06 1.7481752603279075E-06 + 1.5196622926741047E-06 1.3194287142145996E-06 1.1441863210300775E-06 + 9.9100252006230134E-07 8.5726506646209834E-07 7.4064993753681289E-07 + 6.3909210249588929E-07 5.5075896183199947E-07 4.7402624430400023E-07 + 4.0745616308453037E-07 3.4977764568205812E-07 2.9986846473308011E-07 + 2.5673910867783621E-07 2.1951824267979055E-07 1.8743962092657388E-07 + 1.5983032166278888E-07 1.3610018596094968E-07 1.1573235034626972E-07 + 9.8274771966812235E-08 8.3332653057256153E-08 7.0561678998394178E-08 + 5.9661991342912093E-08 5.0372823779372237E-08 4.2467735159756520E-08 + 3.5750379441026475E-08 3.0050757707810014E-08 2.5221902371550944E-08 + 2.1136948201230119E-08 1.7686549051910090E-08 1.4776603039403251E-08 + 1.2326252481487260E-08 1.0266128207013107E-08 8.5368108421674639E-09 + 7.0874844356947325E-09 5.8747602990666385E-09 4.8616512297742425E-09 + 4.0166783717935486E-09 3.3130948618336137E-09 2.7282121275003708E-09 + 2.2428162575691927E-09 1.8406632680108207E-09 1.5080433524033469E-09 + 1.2334053433275155E-09 1.0070336330333694E-09 8.2077071715382687E-10 + 6.6777934393701255E-10 5.4233898214477615E-10 4.3967197157267836E-10 + 3.5579529864492265E-10 2.8739445271435048E-10 2.3171627299711000E-10 + 1.8647809742146728E-10 1.4979087850783819E-10 1.2009424269786840E-10 + 9.6101742854530610E-11 7.6754793095535730E-11 6.1183984450767398E-11 + 4.8676662448330469E-11 3.8649806701583106E-11 3.0627390655249553E-11 + 2.4221519335953440E-11 1.9116746466940871E-11 1.5057061637876873E-11 + 1.1835115142136571E-11 9.2833141833122155E-12 7.2664808087799644E-12 + 5.6758103888406066E-12 4.4239108173493120E-12 3.4407378251449328E-12 + 2.6702717148284733E-12 2.0678061833939098E-12 1.5977413431516723E-12 + 1.2317911433780377E-12 9.4753062349799234E-13 7.2722121652037505E-13 + 5.5686303461786258E-13 4.2543202244460073E-13 3.2426732906524037E-13 + 2.4658045866219903E-13 1.8706291228009191E-13 1.4157329732127490E-13 + 1.0688840257701118E-13 8.0505636658617968E-14 6.0486610351484317E-14 + 4.5333596057594353E-14 3.3892193684777440E-14 2.5274833833018190E-14 + 1.8800807610710420E-14 1.3949371039229745E-14 1.0323166698404442E-14 + 7.6197658552314474E-15 5.6095854982588141E-15 4.1187968591974835E-15 + 3.0161319280135268E-15 2.2027259397480222E-15 1.6043181134617466E-15 + 1.1652792667468713E-15 8.4405081084124051E-16 6.0967113711811421E-16 + 4.3913746076873611E-16 3.1540776622926069E-16 2.2589179906356568E-16 + 1.6131463585705907E-16 1.1486328896392920E-16 8.1547702823122846E-17 + 5.7723673800678602E-17 4.0737707156190829E-17 2.8663427488752692E-17 + 2.0106524705921457E-17 1.4060850215510318E-17 9.8025722679209975E-18 + 6.8125631359210989E-18 4.7196636895935563E-18 3.2593386970671517E-18 + 2.2436424716788310E-18 1.5394699484586646E-18 1.0528578891326898E-18 + 7.1768973631190237E-19 4.8759529434998140E-19 3.3016064536103171E-19 + 2.2280311451150069E-19 1.4984228053144315E-19 1.0042724531677630E-19 + 6.7074827604729393E-20 4.4642147801818746E-20 2.9607016285021784E-20 + 1.9565667815160809E-20 1.2883429558032405E-20 8.4526184008341170E-21 + 5.5253534896784658E-21 3.5985193647743388E-21 2.3349006813368721E-21 + 1.5093135356170524E-21 9.7194699001463863E-22 6.2350967070618319E-22 + 3.9844339486971065E-22 2.5362850877588246E-22 1.6081352466521898E-22 + 1.0156057063835429E-22 6.3883719639307531E-23 4.0022379848948955E-23 + 2.4971636462910689E-23 1.5516997220607504E-23 9.6021660092586270E-24 + 5.9171927743668043E-24 3.6310414200598843E-24 2.2187048099118054E-24 + 1.3499087348993964E-24 8.1776672913678560E-25 4.9323974199882040E-25 + 2.9619218121290204E-25 1.7707579077140974E-25 1.0538963229496919E-25 + 6.2441391650233277E-26 3.6826969876126450E-26 2.1620250797018673E-26 + 1.2633952862978882E-26 7.3482491219464477E-27 4.2537968977829946E-27 + 2.4507550552918794E-27 1.4051905284812293E-27 8.0179693894350400E-28 + 4.5526998860273150E-28 2.5723527628489023E-28 1.4462060700623003E-28 + 8.0900109779330143E-29 4.5026510755181918E-29 2.4932656333205607E-29 + 1.3735059794419733E-29 7.5272236988483398E-30 4.1035688251411235E-30 + 2.2253148364936568E-30 1.2003395227098463E-30 6.4399063765838827E-31 + 3.4363513007852880E-31 1.8236341097478573E-31 9.6245281334948829E-32 + 5.0512871611936379E-32 2.6362383392796522E-32 1.3680635097375655E-32 + 7.0590399187666042E-33 3.6214414599000079E-33 1.8471078721475576E-33 + 9.3660475374508920E-34 4.7211952257560054E-34 2.3656860180496958E-34 + 1.1782831662789339E-34 5.8332071387499163E-35 2.8701715436736976E-35 + 1.4035518496577555E-35 6.8209754335775876E-36 3.2941171639665227E-36 + 1.5808224402098652E-36 7.5379880770469146E-37 3.5713528681082174E-37 + 1.6810922697188661E-37 7.8615498144921455E-38 3.6522359998294650E-38 + 1.6854644716724698E-38 7.7262080243892237E-39 3.5178311552686654E-39 + 1.5908198948193130E-39 7.1446334658057318E-40 3.1865971101779996E-40 + 1.4113600999163566E-40 6.2070759187312420E-41 2.7105021679171367E-41 + 1.1751701254762247E-41 5.0584175797580549E-42 2.1615540832049791E-42 + 9.1691576513545567E-43 3.8608147754085034E-43 1.6135738651776821E-43 + 6.6931897498599343E-44 2.7554069620251114E-44 1.1256943959736357E-44 + 4.5636370081067266E-45 1.8358242717031014E-45 7.3274696412198245E-46 + 2.9017048249701249E-46 1.1399925065038865E-46 4.4429712333353741E-47 + 1.7176743539082588E-47 6.5868379843130206E-48 2.5052718495662191E-48 + 9.4503368070947689E-49 3.5353060025395502E-49 1.3114951768059008E-49 + 4.8243515170917127E-50 1.7596094198366497E-50 6.3631353835883682E-51 + 2.2812664009793873E-51 8.1078022696420523E-52 2.8564386086670398E-52 + 9.9750134969397551E-53 3.4525593207445581E-53 1.1843499239949028E-53 + 4.0262643992591270E-54 1.3563757647971542E-54 4.5277799553926849E-55 + 1.4975806860494465E-55 4.9075736626766727E-56 1.5932618058277789E-56 + 5.1241663884489049E-57 1.6324771120256962E-57 5.1514658258829015E-58 + 1.6100762575720529E-58 4.9838623823030634E-59 1.5277830969297889E-59 + 4.6377307290048033E-60 1.3940224147307398E-60 4.1488416454251327E-61 + 1.2224949195361172E-61 3.5661202951476102E-62 1.0299052076417797E-62 + 2.9454216895473186E-63 8.3047523949040501E-64 2.2635780815654502E-64 + 6.0993691669677120E-65 1.6246162331356423E-65 4.2770908187493748E-66 + + + 2.1464408140559672E+00 2.1464408140541322E+00 2.1464408140485625E+00 + 2.1464408140391584E+00 2.1464408140258184E+00 2.1464408140084390E+00 + 2.1464408139869136E+00 2.1464408139611346E+00 2.1464408139309921E+00 + 2.1464408138963731E+00 2.1464408138571631E+00 2.1464408138132449E+00 + 2.1464408137644990E+00 2.1464408137108029E+00 2.1464408136520321E+00 + 2.1464408135880597E+00 2.1464408135187560E+00 2.1464408134439887E+00 + 2.1464408133636237E+00 2.1464408132775210E+00 2.1464408131855421E+00 + 2.1464408130875428E+00 2.1464408129833763E+00 2.1464408128728945E+00 + 2.1464408127559453E+00 2.1464408126323713E+00 2.1464408125020156E+00 + 2.1464408123647170E+00 2.1464408122203094E+00 2.1464408120686258E+00 + 2.1464408119094931E+00 2.1464408117427376E+00 2.1464408115681808E+00 + 2.1464408113856401E+00 2.1464408111949296E+00 2.1464408109958608E+00 + 2.1464408107882393E+00 2.1464408105718702E+00 2.1464408103465504E+00 + 2.1464408101120758E+00 2.1464408098682384E+00 2.1464408096148238E+00 + 2.1464408093516156E+00 2.1464408090783920E+00 2.1464408087949263E+00 + 2.1464408085009898E+00 2.1464408081963460E+00 2.1464408078807562E+00 + 2.1464408075539763E+00 2.1464408072157561E+00 2.1464408068658436E+00 + 2.1464408065039784E+00 2.1464408061298976E+00 2.1464408057433308E+00 + 2.1464408053440049E+00 2.1464408049316397E+00 2.1464408045059500E+00 + 2.1464408040666449E+00 2.1464408036134293E+00 2.1464408031459987E+00 + 2.1464408026640478E+00 2.1464408021672599E+00 2.1464408016553169E+00 + 2.1464408011278922E+00 2.1464408005846529E+00 2.1464408000252599E+00 + 2.1464407994493682E+00 2.1464407988566245E+00 2.1464407982466707E+00 + 2.1464407976191406E+00 2.1464407969736610E+00 2.1464407963098520E+00 + 2.1464407956273255E+00 2.1464407949256872E+00 2.1464407942045343E+00 + 2.1464407934634560E+00 2.1464407927020352E+00 2.1464407919198449E+00 + 2.1464407911164503E+00 2.1464407902914107E+00 2.1464407894442723E+00 + 2.1464407885745778E+00 2.1464407876818572E+00 2.1464407867656332E+00 + 2.1464407858254200E+00 2.1464407848607205E+00 2.1464407838710304E+00 + 2.1464407828558345E+00 2.1464407818146083E+00 2.1464407807468167E+00 + 2.1464407796519143E+00 2.1464407785293464E+00 2.1464407773785474E+00 + 2.1464407761989408E+00 2.1464407749899390E+00 2.1464407737509430E+00 + 2.1464407724813435E+00 2.1464407711805191E+00 2.1464407698478363E+00 + 2.1464407684826492E+00 2.1464407670843011E+00 2.1464407656521227E+00 + 2.1464407641854311E+00 2.1464407626835307E+00 2.1464407611457132E+00 + 2.1464407595712571E+00 2.1464407579594273E+00 2.1464407563094734E+00 + 2.1464407546206332E+00 2.1464407528921283E+00 2.1464407511231665E+00 + 2.1464407493129412E+00 2.1464407474606295E+00 2.1464407455653935E+00 + 2.1464407436263802E+00 2.1464407416427203E+00 2.1464407396135270E+00 + 2.1464407375378984E+00 2.1464407354149153E+00 2.1464407332436410E+00 + 2.1464407310231217E+00 2.1464407287523857E+00 2.1464407264304421E+00 + 2.1464407240562835E+00 2.1464407216288812E+00 2.1464407191471899E+00 + 2.1464407166101425E+00 2.1464407140166539E+00 2.1464407113656172E+00 + 2.1464407086559061E+00 2.1464407058863726E+00 2.1464407030558474E+00 + 2.1464407001631391E+00 2.1464406972070358E+00 2.1464406941863006E+00 + 2.1464406910996754E+00 2.1464406879458777E+00 2.1464406847236019E+00 + 2.1464406814315189E+00 2.1464406780682714E+00 2.1464406746324811E+00 + 2.1464406711227428E+00 2.1464406675376240E+00 2.1464406638756666E+00 + 2.1464406601353860E+00 2.1464406563152685E+00 2.1464406524137747E+00 + 2.1464406484293344E+00 2.1464406443603488E+00 2.1464406402051912E+00 + 2.1464406359622035E+00 2.1464406316296971E+00 2.1464406272059513E+00 + 2.1464406226892154E+00 2.1464406180777047E+00 2.1464406133696041E+00 + 2.1464406085630614E+00 2.1464406036561923E+00 2.1464405986470783E+00 + 2.1464405935337645E+00 2.1464405883142597E+00 2.1464405829865365E+00 + 2.1464405775485309E+00 2.1464405719981396E+00 2.1464405663332209E+00 + 2.1464405605515946E+00 2.1464405546510381E+00 2.1464405486292919E+00 + 2.1464405424840503E+00 2.1464405362129693E+00 2.1464405298136584E+00 + 2.1464405232836854E+00 2.1464405166205727E+00 2.1464405098217973E+00 + 2.1464405028847890E+00 2.1464404958069334E+00 2.1464404885855637E+00 + 2.1464404812179674E+00 2.1464404737013809E+00 2.1464404660329910E+00 + 2.1464404582099319E+00 2.1464404502292851E+00 2.1464404420880800E+00 + 2.1464404337832903E+00 2.1464404253118339E+00 2.1464404166705746E+00 + 2.1464404078563164E+00 2.1464403988658063E+00 2.1464403896957300E+00 + 2.1464403803427148E+00 2.1464403708033246E+00 2.1464403610740610E+00 + 2.1464403511513628E+00 2.1464403410316013E+00 2.1464403307110840E+00 + 2.1464403201860494E+00 2.1464403094526672E+00 2.1464402985070388E+00 + 2.1464402873451918E+00 2.1464402759630841E+00 2.1464402643565976E+00 + 2.1464402525215411E+00 2.1464402404536447E+00 2.1464402281485619E+00 + 2.1464402156018680E+00 2.1464402028090555E+00 2.1464401897655350E+00 + 2.1464401764666352E+00 2.1464401629075991E+00 2.1464401490835812E+00 + 2.1464401349896498E+00 2.1464401206207828E+00 2.1464401059718670E+00 + 2.1464400910376944E+00 2.1464400758129649E+00 2.1464400602922802E+00 + 2.1464400444701441E+00 2.1464400283409608E+00 2.1464400118990321E+00 + 2.1464399951385560E+00 2.1464399780536274E+00 2.1464399606382303E+00 + 2.1464399428862415E+00 2.1464399247914265E+00 2.1464399063474366E+00 + 2.1464398875478090E+00 2.1464398683859627E+00 2.1464398488551968E+00 + 2.1464398289486897E+00 2.1464398086594958E+00 2.1464397879805426E+00 + 2.1464397669046309E+00 2.1464397454244284E+00 2.1464397235324717E+00 + 2.1464397012211629E+00 2.1464396784827628E+00 2.1464396553093947E+00 + 2.1464396316930388E+00 2.1464396076255299E+00 2.1464395830985525E+00 + 2.1464395581036446E+00 2.1464395326321872E+00 2.1464395066754069E+00 + 2.1464394802243700E+00 2.1464394532699829E+00 2.1464394258029862E+00 + 2.1464393978139533E+00 2.1464393692932857E+00 2.1464393402312121E+00 + 2.1464393106177853E+00 2.1464392804428756E+00 2.1464392496961726E+00 + 2.1464392183671777E+00 2.1464391864452024E+00 2.1464391539193657E+00 + 2.1464391207785898E+00 2.1464390870115952E+00 2.1464390526069002E+00 + 2.1464390175528134E+00 2.1464389818374348E+00 2.1464389454486468E+00 + 2.1464389083741140E+00 2.1464388706012789E+00 2.1464388321173540E+00 + 2.1464387929093238E+00 2.1464387529639377E+00 2.1464387122677029E+00 + 2.1464386708068863E+00 2.1464386285675037E+00 2.1464385855353205E+00 + 2.1464385416958454E+00 2.1464384970343233E+00 2.1464384515357340E+00 + 2.1464384051847873E+00 2.1464383579659141E+00 2.1464383098632682E+00 + 2.1464382608607142E+00 2.1464382109418261E+00 2.1464381600898839E+00 + 2.1464381082878634E+00 2.1464380555184341E+00 2.1464380017639537E+00 + 2.1464379470064610E+00 2.1464378912276705E+00 2.1464378344089678E+00 + 2.1464377765314038E+00 2.1464377175756852E+00 2.1464376575221737E+00 + 2.1464375963508746E+00 2.1464375340414352E+00 2.1464374705731339E+00 + 2.1464374059248774E+00 2.1464373400751917E+00 2.1464372730022157E+00 + 2.1464372046836950E+00 2.1464371350969733E+00 2.1464370642189881E+00 + 2.1464369920262598E+00 2.1464369184948877E+00 2.1464368436005379E+00 + 2.1464367673184426E+00 2.1464366896233833E+00 2.1464366104896917E+00 + 2.1464365298912349E+00 2.1464364478014111E+00 2.1464363641931379E+00 + 2.1464362790388485E+00 2.1464361923104769E+00 2.1464361039794535E+00 + 2.1464360140166949E+00 2.1464359223925955E+00 2.1464358290770136E+00 + 2.1464357340392692E+00 2.1464356372481279E+00 2.1464355386717955E+00 + 2.1464354382779045E+00 2.1464353360335058E+00 2.1464352319050586E+00 + 2.1464351258584169E+00 2.1464350178588236E+00 2.1464349078708942E+00 + 2.1464347958586112E+00 2.1464346817853062E+00 2.1464345656136539E+00 + 2.1464344473056571E+00 2.1464343268226380E+00 2.1464342041252196E+00 + 2.1464340791733219E+00 2.1464339519261411E+00 2.1464338223421420E+00 + 2.1464336903790437E+00 2.1464335559938044E+00 2.1464334191426100E+00 + 2.1464332797808590E+00 2.1464331378631489E+00 2.1464329933432613E+00 + 2.1464328461741493E+00 2.1464326963079197E+00 2.1464325436958198E+00 + 2.1464323882882206E+00 2.1464322300346037E+00 2.1464320688835432E+00 + 2.1464319047826881E+00 2.1464317376787503E+00 2.1464315675174834E+00 + 2.1464313942436681E+00 2.1464312178010938E+00 2.1464310381325400E+00 + 2.1464308551797613E+00 2.1464306688834651E+00 2.1464304791832971E+00 + 2.1464302860178166E+00 2.1464300893244834E+00 2.1464298890396347E+00 + 2.1464296850984645E+00 2.1464294774350039E+00 2.1464292659821029E+00 + 2.1464290506714039E+00 2.1464288314333251E+00 2.1464286081970365E+00 + 2.1464283808904372E+00 2.1464281494401334E+00 2.1464279137714142E+00 + 2.1464276738082302E+00 2.1464274294731678E+00 2.1464271806874242E+00 + 2.1464269273707854E+00 2.1464266694415985E+00 2.1464264068167451E+00 + 2.1464261394116191E+00 2.1464258671400960E+00 2.1464255899145073E+00 + 2.1464253076456146E+00 2.1464250202425772E+00 2.1464247276129291E+00 + 2.1464244296625448E+00 2.1464241262956123E+00 2.1464238174146026E+00 + 2.1464235029202396E+00 2.1464231827114664E+00 2.1464228566854167E+00 + 2.1464225247373800E+00 2.1464221867607702E+00 2.1464218426470909E+00 + 2.1464214922859020E+00 2.1464211355647840E+00 2.1464207723693050E+00 + 2.1464204025829807E+00 2.1464200260872426E+00 2.1464196427613964E+00 + 2.1464192524825862E+00 2.1464188551257553E+00 2.1464184505636070E+00 + 2.1464180386665666E+00 2.1464176193027349E+00 2.1464171923378537E+00 + 2.1464167576352580E+00 2.1464163150558369E+00 2.1464158644579889E+00 + 2.1464154056975748E+00 2.1464149386278746E+00 2.1464144630995423E+00 + 2.1464139789605583E+00 2.1464134860561779E+00 2.1464129842288906E+00 + 2.1464124733183612E+00 2.1464119531613868E+00 2.1464114235918421E+00 + 2.1464108844406282E+00 2.1464103355356179E+00 2.1464097767016042E+00 + 2.1464092077602426E+00 2.1464086285299975E+00 2.1464080388260829E+00 + 2.1464074384604066E+00 2.1464068272415089E+00 2.1464062049745025E+00 + 2.1464055714610155E+00 2.1464049264991227E+00 2.1464042698832868E+00 + 2.1464036014042915E+00 2.1464029208491771E+00 2.1464022280011736E+00 + 2.1464015226396307E+00 2.1464008045399514E+00 2.1464000734735196E+00 + 2.1463993292076289E+00 2.1463985715054079E+00 2.1463978001257495E+00 + 2.1463970148232319E+00 2.1463962153480423E+00 2.1463954014458984E+00 + 2.1463945728579708E+00 2.1463937293207982E+00 2.1463928705662072E+00 + 2.1463919963212268E+00 2.1463911063080041E+00 2.1463902002437152E+00 + 2.1463892778404783E+00 2.1463883388052611E+00 2.1463873828397917E+00 + 2.1463864096404630E+00 2.1463854188982388E+00 2.1463844102985541E+00 + 2.1463833835212194E+00 2.1463823382403193E+00 2.1463812741241095E+00 + 2.1463801908349134E+00 2.1463790880290161E+00 2.1463779653565567E+00 + 2.1463768224614177E+00 2.1463756589811145E+00 2.1463744745466800E+00 + 2.1463732687825510E+00 2.1463720413064498E+00 2.1463707917292618E+00 + 2.1463695196549173E+00 2.1463682246802649E+00 2.1463669063949458E+00 + 2.1463655643812642E+00 2.1463641982140578E+00 2.1463628074605632E+00 + 2.1463613916802808E+00 2.1463599504248374E+00 2.1463584832378433E+00 + 2.1463569896547514E+00 2.1463554692027116E+00 2.1463539214004204E+00 + 2.1463523457579714E+00 2.1463507417767032E+00 2.1463491089490399E+00 + 2.1463474467583352E+00 2.1463457546787068E+00 2.1463440321748761E+00 + 2.1463422787019950E+00 2.1463404937054817E+00 2.1463386766208403E+00 + 2.1463368268734881E+00 2.1463349438785739E+00 2.1463330270407956E+00 + 2.1463310757542127E+00 2.1463290894020557E+00 2.1463270673565367E+00 + 2.1463250089786472E+00 2.1463229136179622E+00 2.1463207806124340E+00 + 2.1463186092881870E+00 2.1463163989593026E+00 2.1463141489276087E+00 + 2.1463118584824596E+00 2.1463095269005112E+00 2.1463071534454965E+00 + 2.1463047373679958E+00 2.1463022779051997E+00 2.1462997742806711E+00 + 2.1462972257041026E+00 2.1462946313710671E+00 2.1462919904627693E+00 + 2.1462893021457856E+00 2.1462865655718053E+00 2.1462837798773635E+00 + 2.1462809441835726E+00 2.1462780575958456E+00 2.1462751192036147E+00 + 2.1462721280800503E+00 2.1462690832817666E+00 2.1462659838485290E+00 + 2.1462628288029513E+00 2.1462596171501920E+00 2.1462563478776406E+00 + 2.1462530199546017E+00 2.1462496323319731E+00 2.1462461839419156E+00 + 2.1462426736975200E+00 2.1462391004924672E+00 2.1462354632006804E+00 + 2.1462317606759740E+00 2.1462279917516942E+00 2.1462241552403545E+00 + 2.1462202499332634E+00 2.1462162746001461E+00 2.1462122279887610E+00 + 2.1462081088245051E+00 2.1462039158100175E+00 2.1461996476247727E+00 + 2.1461953029246672E+00 2.1461908803416003E+00 2.1461863784830433E+00 + 2.1461817959316067E+00 2.1461771312445950E+00 2.1461723829535559E+00 + 2.1461675495638226E+00 2.1461626295540426E+00 2.1461576213757056E+00 + 2.1461525234526562E+00 2.1461473341806037E+00 2.1461420519266179E+00 + 2.1461366750286204E+00 2.1461312017948626E+00 2.1461256305034007E+00 + 2.1461199594015512E+00 2.1461141867053484E+00 2.1461083105989838E+00 + 2.1461023292342398E+00 2.1460962407299098E+00 2.1460900431712129E+00 + 2.1460837346091934E+00 2.1460773130601116E+00 2.1460707765048235E+00 + 2.1460641228881538E+00 2.1460573501182458E+00 2.1460504560659142E+00 + 2.1460434385639773E+00 2.1460362954065797E+00 2.1460290243485032E+00 + 2.1460216231044651E+00 2.1460140893484048E+00 2.1460064207127560E+00 + 2.1459986147877079E+00 2.1459906691204513E+00 2.1459825812144140E+00 + 2.1459743485284797E+00 2.1459659684761947E+00 2.1459574384249591E+00 + 2.1459487556952075E+00 2.1459399175595677E+00 2.1459309212420128E+00 + 2.1459217639169923E+00 2.1459124427085507E+00 2.1459029546894288E+00 + 2.1458932968801521E+00 2.1458834662480970E+00 2.1458734597065456E+00 + 2.1458632741137240E+00 2.1458529062718181E+00 2.1458423529259805E+00 + 2.1458316107633091E+00 2.1458206764118168E+00 2.1458095464393780E+00 + 2.1457982173526595E+00 2.1457866855960268E+00 2.1457749475504384E+00 + 2.1457629995323155E+00 2.1457508377923915E+00 2.1457384585145465E+00 + 2.1457258578146119E+00 2.1457130317391631E+00 2.1456999762642854E+00 + 2.1456866872943170E+00 2.1456731606605763E+00 2.1456593921200593E+00 + 2.1456453773541155E+00 2.1456311119671074E+00 2.1456165914850325E+00 + 2.1456018113541360E+00 2.1455867669394864E+00 2.1455714535235355E+00 + 2.1455558663046448E+00 2.1455400003955925E+00 2.1455238508220469E+00 + 2.1455074125210225E+00 2.1454906803392984E+00 2.1454736490318149E+00 + 2.1454563132600404E+00 2.1454386675903097E+00 2.1454207064921298E+00 + 2.1454024243364600E+00 2.1453838153939606E+00 2.1453648738332061E+00 + 2.1453455937188743E+00 2.1453259690098974E+00 2.1453059935575816E+00 + 2.1452856611036943E+00 2.1452649652785198E+00 2.1452438995988752E+00 + 2.1452224574660930E+00 2.1452006321639741E+00 2.1451784168566941E+00 + 2.1451558045866812E+00 2.1451327882724520E+00 2.1451093607064111E+00 + 2.1450855145526111E+00 2.1450612423444726E+00 2.1450365364824635E+00 + 2.1450113892317404E+00 2.1449857927197451E+00 2.1449597389337582E+00 + 2.1449332197184128E+00 2.1449062267731609E+00 2.1448787516496983E+00 + 2.1448507857493406E+00 2.1448223203203569E+00 2.1447933464552515E+00 + 2.1447638550880024E+00 2.1447338369912479E+00 2.1447032827734249E+00 + 2.1446721828758588E+00 2.1446405275697962E+00 2.1446083069533923E+00 + 2.1445755109486404E+00 2.1445421292982489E+00 2.1445081515624653E+00 + 2.1444735671158388E+00 2.1444383651439338E+00 2.1444025346399767E+00 + 2.1443660644014524E+00 2.1443289430266352E+00 2.1442911589110589E+00 + 2.1442527002439284E+00 2.1442135550044670E+00 2.1441737109581949E+00 + 2.1441331556531491E+00 2.1440918764160353E+00 2.1440498603483076E+00 + 2.1440070943221841E+00 2.1439635649765938E+00 2.1439192587130456E+00 + 2.1438741616914321E+00 2.1438282598257583E+00 2.1437815387797903E+00 + 2.1437339839626346E+00 2.1436855805242376E+00 2.1436363133508043E+00 + 2.1435861670601377E+00 2.1435351259969018E+00 2.1434831742277911E+00 + 2.1434302955366298E+00 2.1433764734193703E+00 2.1433216910790160E+00 + 2.1432659314204519E+00 2.1432091770451809E+00 2.1431514102459754E+00 + 2.1430926130014307E+00 2.1430327669704234E+00 2.1429718534864790E+00 + 2.1429098535520326E+00 2.1428467478325963E+00 2.1427825166508265E+00 + 2.1427171399804799E+00 2.1426505974402703E+00 2.1425828682876227E+00 + 2.1425139314123078E+00 2.1424437653299768E+00 2.1423723481755781E+00 + 2.1422996576966620E+00 2.1422256712465688E+00 2.1421503657774994E+00 + 2.1420737178334655E+00 2.1419957035431185E+00 2.1419162986124554E+00 + 2.1418354783173950E+00 2.1417532174962304E+00 2.1416694905419491E+00 + 2.1415842713944193E+00 2.1414975335324460E+00 2.1414092499656872E+00 + 2.1413193932264281E+00 2.1412279353612220E+00 2.1411348479223795E+00 + 2.1410401019593159E+00 2.1409436680097498E+00 2.1408455160907471E+00 + 2.1407456156896187E+00 2.1406439357546576E+00 2.1405404446857146E+00 + 2.1404351103246184E+00 2.1403278999454352E+00 2.1402187802445463E+00 + 2.1401077173305789E+00 2.1399946767141467E+00 2.1398796232974240E+00 + 2.1397625213635436E+00 2.1396433345658110E+00 2.1395220259167362E+00 + 2.1393985577768824E+00 2.1392728918435231E+00 2.1391449891391057E+00 + 2.1390148099995234E+00 2.1388823140621906E+00 2.1387474602539087E+00 + 2.1386102067785382E+00 2.1384705111044533E+00 2.1383283299517939E+00 + 2.1381836192794990E+00 2.1380363342721203E+00 2.1378864293264219E+00 + 2.1377338580377483E+00 2.1375785731861696E+00 2.1374205267223929E+00 + 2.1372596697534374E+00 2.1370959525280773E+00 2.1369293244220340E+00 + 2.1367597339229270E+00 2.1365871286149773E+00 2.1364114551634512E+00 + 2.1362326592988539E+00 2.1360506858008543E+00 2.1358654784819526E+00 + 2.1356769801708753E+00 2.1354851326956936E+00 2.1352898768666728E+00 + 2.1350911524588319E+00 2.1348888981942280E+00 2.1346830517239401E+00 + 2.1344735496097687E+00 2.1342603273056304E+00 2.1340433191386574E+00 + 2.1338224582899854E+00 2.1335976767752300E+00 2.1333689054246534E+00 + 2.1331360738630063E+00 2.1328991104890473E+00 2.1326579424547338E+00 + 2.1324124956440809E+00 2.1321626946516767E+00 2.1319084627608667E+00 + 2.1316497219215749E+00 2.1313863927277907E+00 2.1311183943946848E+00 + 2.1308456447353699E+00 2.1305680601372976E+00 2.1302855555382796E+00 + 2.1299980444021358E+00 2.1297054386939593E+00 2.1294076488550004E+00 + 2.1291045837771576E+00 2.1287961507770703E+00 2.1284822555698155E+00 + 2.1281628022421999E+00 2.1278376932256360E+00 2.1275068292686106E+00 + 2.1271701094087279E+00 2.1268274309443260E+00 2.1264786894056735E+00 + 2.1261237785257161E+00 2.1257625902103965E+00 2.1253950145085199E+00 + 2.1250209395811757E+00 2.1246402516707010E+00 2.1242528350691856E+00 + 2.1238585720865109E+00 2.1234573430179204E+00 2.1230490261111168E+00 + 2.1226334975328758E+00 2.1222106313351832E+00 2.1217802994208714E+00 + 2.1213423715087796E+00 2.1208967150983966E+00 2.1204431954340186E+00 + 2.1199816754683862E+00 2.1195120158258218E+00 2.1190340747648397E+00 + 2.1185477081402468E+00 2.1180527693647138E+00 2.1175491093698162E+00 + 2.1170365765665511E+00 2.1165150168053102E+00 2.1159842733353176E+00 + 2.1154441867635252E+00 2.1148945950129585E+00 2.1143353332805175E+00 + 2.1137662339942196E+00 2.1131871267698910E+00 2.1125978383672996E+00 + 2.1119981926457276E+00 2.1113880105189775E+00 2.1107671099098164E+00 + 2.1101353057038565E+00 2.1094924097028596E+00 2.1088382305774780E+00 + 2.1081725738194232E+00 2.1074952416930635E+00 2.1068060331864475E+00 + 2.1061047439617577E+00 2.1053911663051950E+00 2.1046650890762844E+00 + 2.1039262976566198E+00 2.1031745738980332E+00 2.1024096960701995E+00 + 2.1016314388076753E+00 2.1008395730563789E+00 2.1000338660195070E+00 + 2.0992140811028968E+00 2.0983799778598393E+00 2.0975313119353447E+00 + 2.0966678350098631E+00 2.0957892947424761E+00 2.0948954347135547E+00 + 2.0939859943668950E+00 2.0930607089513447E+00 2.0921193094619133E+00 + 2.0911615225804021E+00 2.0901870706155310E+00 2.0891956714426012E+00 + 2.0881870384426873E+00 2.0871608804413806E+00 2.0861169016470953E+00 + 2.0850548015889463E+00 2.0839742750542238E+00 2.0828750120254704E+00 + 2.0817566976171880E+00 2.0806190120121828E+00 2.0794616303975806E+00 + 2.0782842229005176E+00 2.0770864545235446E+00 2.0758679850797539E+00 + 2.0746284691276653E+00 2.0733675559058886E+00 2.0720848892675954E+00 + 2.0707801076148225E+00 2.0694528438326514E+00 2.0681027252232740E+00 + 2.0667293734399990E+00 2.0653324044212278E+00 2.0639114283244235E+00 + 2.0624660494601392E+00 2.0609958662261185E+00 2.0595004710415328E+00 + 2.0579794502813820E+00 2.0564323842111274E+00 2.0548588469215798E+00 + 2.0532584062641202E+00 2.0516306237862842E+00 2.0499750546677884E+00 + 2.0482912476570321E+00 2.0465787450081674E+00 2.0448370824187654E+00 + 2.0430657889681774E+00 2.0412643870566418E+00 2.0394323923452142E+00 + 2.0375693136965989E+00 2.0356746531169567E+00 2.0337479056987737E+00 + 2.0317885595648737E+00 2.0297960958136638E+00 2.0277699884657117E+00 + 2.0257097044117347E+00 2.0236147033621212E+00 2.0214844377980667E+00 + 2.0193183529244503E+00 2.0171158866245520E+00 2.0148764694167278E+00 + 2.0125995244131647E+00 2.0102844672808446E+00 2.0079307062048368E+00 + 2.0055376418540574E+00 2.0031046673496364E+00 2.0006311682360347E+00 + 1.9981165224550557E+00 1.9955601003229111E+00 1.9929612645104993E+00 + 1.9903193700270545E+00 1.9876337642073483E+00 1.9849037867026074E+00 + 1.9821287694753424E+00 1.9793080367982603E+00 1.9764409052574750E+00 + 1.9735266837601932E+00 1.9705646735471045E+00 1.9675541682096733E+00 + 1.9644944537125637E+00 1.9613848084214158E+00 1.9582245031362147E+00 + 1.9550128011304926E+00 1.9517489581966094E+00 1.9484322226973683E+00 + 1.9450618356242366E+00 1.9416370306624360E+00 1.9381570342631820E+00 + 1.9346210657233658E+00 1.9310283372729695E+00 1.9273780541705177E+00 + 1.9236694148068756E+00 1.9199016108177240E+00 1.9160738272050255E+00 + 1.9121852424678283E+00 1.9082350287427485E+00 1.9042223519544970E+00 + 1.9001463719767933E+00 1.8960062428040536E+00 1.8918011127342422E+00 + 1.8875301245632461E+00 1.8831924157912046E+00 1.8787871188411811E+00 + 1.8743133612906018E+00 1.8697702661158826E+00 1.8651569519506817E+00 + 1.8604725333582204E+00 1.8557161211181212E+00 1.8508868225282222E+00 + 1.8459837417218454E+00 1.8410059800009797E+00 1.8359526361858818E+00 + 1.8308228069815637E+00 1.8256155873616962E+00 1.8203300709704076E+00 + 1.8149653505425052E+00 1.8095205183426442E+00 1.8039946666239568E+00 + 1.7983868881066796E+00 1.7926962764773315E+00 1.7869219269089547E+00 + 1.7810629366029900E+00 1.7751184053533211E+00 1.7690874361330531E+00 + 1.7629691357045660E+00 1.7567626152533997E+00 1.7504669910465462E+00 + 1.7440813851156725E+00 1.7376049259658468E+00 1.7310367493103234E+00 + 1.7243759988319101E+00 1.7176218269714862E+00 1.7107733957441762E+00 + 1.7038298775837415E+00 1.6967904562156708E+00 1.6896543275594960E+00 + 1.6824207006608258E+00 1.6750887986535683E+00 1.6676578597528053E+00 + 1.6601271382787550E+00 1.6524959057122739E+00 1.6447634517822496E+00 + 1.6369290855852900E+00 1.6289921367380544E+00 1.6209519565625179E+00 + 1.6128079193044569E+00 1.6045594233854232E+00 1.5962058926883653E+00 + 1.5877467778770882E+00 1.5791815577496482E+00 1.5705097406257662E+00 + 1.5617308657682292E+00 1.5528445048382564E+00 1.5438502633847235E+00 + 1.5347477823670346E+00 1.5255367397114050E+00 1.5162168519002430E+00 + 1.5067878755941901E+00 1.4972496092863443E+00 1.4876018949880656E+00 + 1.4778446199457016E+00 1.4679777183874170E+00 1.4580011732992340E+00 + 1.4479150182293090E+00 1.4377193391192518E+00 1.4274142761612738E+00 + 1.4170000256797397E+00 1.4064768420356151E+00 1.3958450395520847E+00 + 1.3851049944595177E+00 1.3742571468577884E+00 1.3633020026937417E+00 + 1.3522401357514571E+00 1.3410721896527864E+00 1.3297988798653937E+00 + 1.3184209957153665E+00 1.3069394024012413E+00 1.2953550430060752E+00 + 1.2836689405039432E+00 1.2718821997570082E+00 1.2599960094991198E+00 + 1.2480116443015397E+00 1.2359304665162292E+00 1.2237539281917875E+00 + 1.2114835729569284E+00 1.1991210378659951E+00 1.1866680552007989E+00 + 1.1741264542227572E+00 1.1614981628689320E+00 1.1487852093853161E+00 + 1.1359897238903993E+00 1.1231139398616325E+00 1.1101601955371794E+00 + 1.0971309352249146E+00 1.0840287105103750E+00 1.0708561813549180E+00 + 1.0576161170750780E+00 1.0443113971937528E+00 1.0309450121534327E+00 + 1.0175200638814246E+00 1.0040397661966469E+00 9.9050744504719024E-01 + 9.7692653856757550E-01 9.6330059694424763E-01 9.4963328207760411E-01 + 9.3592836702845128E-01 9.2218973523657688E-01 9.0842137949884838E-01 + 8.9462740069391555E-01 8.8081200624046718E-01 8.6697950827570081E-01 + 8.5313432154057744E-01 8.3928096095817040E-01 8.2542403889141636E-01 + 8.1156826206647648E-01 7.9771842814784000E-01 7.8387942195138915E-01 + 7.7005621128172064E-01 7.5625384238007709E-01 7.4247743496954144E-01 + 7.2873217688431990E-01 7.1502331827037113E-01 7.0135616534494660E-01 + 6.8773607370319700E-01 6.7416844116058072E-01 6.6065870012045058E-01 + 6.4721230945703023E-01 6.3383474590493705E-01 6.2053149494732485E-01 + 6.0730804119597892E-01 5.9416985825790658E-01 5.8112239808444199E-01 + 5.6817107980037784E-01 5.5532127801241626E-01 5.4257831059811767E-01 + 5.2994742597849609E-01 5.1743378987972810E-01 5.0504247159176141E-01 + 4.9277842973428565E-01 4.8064649754320421E-01 4.6865136769381482E-01 + 4.5679757668007598E-01 4.4508948877267385E-01 4.3353127958226334E-01 + 4.2212691925809026E-01 4.1088015535614802E-01 3.9979449541537304E-01 + 3.8887318928477643E-01 3.7811921124914699E-01 3.6753524200578097E-01 + 3.5712365054984441E-01 3.4688647603126016E-01 3.3682540965143515E-01 + 3.2694177667386759E-01 3.1723651862842611E-01 3.0771017579511600E-01 + 2.9836287005914547E-01 2.8919428823535898E-01 2.8020366596634533E-01 + 2.7138977230478634E-01 2.6275089509696797E-01 2.5428482729065138E-01 + 2.4598956440225084E-01 2.3786551761959845E-01 2.2991354460492067E-01 + 2.2213426922094684E-01 2.1452808892828285E-01 2.0709518231978383E-01 + 1.9983551677466221E-01 1.9274885621670826E-01 1.8583476895752801E-01 + 1.7909263560746416E-01 1.7252165703597441E-01 1.6612086236314230E-01 + 1.5988911696385316E-01 1.5382513046612334E-01 1.4792746472510673E-01 + 1.4219454175446683E-01 1.3662465159708501E-01 1.3121596011749051E-01 + 1.2596651669898393E-01 1.2087426182916022E-01 1.1593703455846069E-01 + 1.1115257981747696E-01 1.0651855558002511E-01 1.0203253986048548E-01 + 9.7692037535556803E-02 9.3494486982408032E-02 8.9437266527180717E-02 + 8.5517700699869179E-02 8.1733066293748297E-02 7.8080598229640974E-02 + 7.4557495227365420E-02 7.1160925288560051E-02 6.7888030996674037E-02 + 6.4735934641120596E-02 6.1701743173317045E-02 5.8782553002521748E-02 + 5.5975454638954189E-02 5.3277537190644153E-02 5.0685892718842725E-02 + 4.8197620454715109E-02 4.5809830877573440E-02 4.3519649652266346E-02 + 4.1324221420743927E-02 3.9220713440473988E-02 3.7206319060507878E-02 + 3.5278261024760477E-02 3.3433794591585977E-02 3.1670210459057963E-02 + 2.9984837486460109E-02 2.8375045204292168E-02 2.6838246107378328E-02 + 2.5371897728394356E-02 2.3973504491868865E-02 2.2640619351471099E-02 + 2.1370845216019375E-02 2.0161836171699570E-02 1.9011298509844361E-02 + 1.7916991570886599E-02 1.6876728415874155E-02 1.5888376337397071E-02 + 1.4949857221766597E-02 1.4059147774019372E-02 1.3214279616824885E-02 + 1.2413339273724620E-02 1.1654468046392856E-02 1.0935861794838750E-02 + 1.0255770628702804E-02 9.6124985170730880E-03 9.0044028235733084E-03 + 8.4298937728706207E-03 7.8874338542175119E-03 7.3755371671791071E-03 + 6.8927687143015516E-03 6.4377436451403779E-03 6.0091264557843652E-03 + 5.6056301477706372E-03 5.2260153500848852E-03 4.8690894077683799E-03 + 4.5337054405046907E-03 4.2187613744294281E-03 3.9231989502901609E-03 + 3.6460027109776198E-03 3.3861989713509237E-03 3.1428547731853925E-03 + 2.9150768279805812E-03 2.7020104502761670E-03 2.5028384840337739E-03 + 2.3167802245521981E-03 2.1430903382911944E-03 1.9810577828846625E-03 + 1.8300047295268268E-03 1.6892854898148909E-03 1.5582854490280807E-03 + 1.4364200077162973E-03 1.3231335333615825E-03 1.2178983237625079E-03 + 1.1202135836761193E-03 1.0296044161345452E-03 9.4562082973459298E-04 + 8.6783676307975008E-04 7.9584912743566386E-04 7.2927686854371183E-04 + 6.6776004842359813E-04 6.1095894788616603E-04 5.5855319037268240E-04 + 5.1024088763738787E-04 4.6573780769710736E-04 4.2477656538481164E-04 + 3.8710583576449949E-04 3.5248959059156897E-04 3.2070635793610223E-04 + 2.9154850502650687E-04 2.6482154431588663E-04 2.4034346272413777E-04 + 2.1794407396375350E-04 1.9746439381600271E-04 1.7875603818635143E-04 + 1.6168064373284728E-04 1.4610931082837449E-04 1.3192206858675298E-04 + 1.1900736165336227E-04 1.0726155843306323E-04 9.6588480401558815E-05 + 8.6898952120927111E-05 7.8110371555867856E-05 7.0146300264267391E-05 + 6.2936073014120420E-05 5.6414426358717312E-05 5.0521145683461401E-05 + 4.5200730220812685E-05 4.0402075514796094E-05 3.6078172803342540E-05 + 3.2185824775535057E-05 2.8685377151671853E-05 2.5540465526959716E-05 + 2.2717776914628493E-05 2.0186825421300947E-05 1.7919741486520983E-05 + 1.5891074119386512E-05 1.4077605568173403E-05 1.2458177863587141E-05 + 1.1013530682733329E-05 9.7261499889416004E-06 8.5801269120903518E-06 + 7.5610263449283481E-06 6.6557647429439929E-06 5.8524966284564308E-06 + 5.1405093136618135E-06 4.5101253722280089E-06 3.9526124045613912E-06 + 3.4600996579450110E-06 3.0255010792456619E-06 2.6424443946934906E-06 + 2.3052058282432852E-06 2.0086500871289187E-06 1.7481752603279075E-06 + 1.5196622926741047E-06 1.3194287142145996E-06 1.1441863210300775E-06 + 9.9100252006230134E-07 8.5726506646209834E-07 7.4064993753681289E-07 + 6.3909210249588929E-07 5.5075896183199947E-07 4.7402624430400023E-07 + 4.0745616308453037E-07 3.4977764568205812E-07 2.9986846473308011E-07 + 2.5673910867783621E-07 2.1951824267979055E-07 1.8743962092657388E-07 + 1.5983032166278888E-07 1.3610018596094968E-07 1.1573235034626972E-07 + 9.8274771966812235E-08 8.3332653057256153E-08 7.0561678998394178E-08 + 5.9661991342912093E-08 5.0372823779372237E-08 4.2467735159756520E-08 + 3.5750379441026475E-08 3.0050757707810014E-08 2.5221902371550944E-08 + 2.1136948201230119E-08 1.7686549051910090E-08 1.4776603039403251E-08 + 1.2326252481487260E-08 1.0266128207013107E-08 8.5368108421674639E-09 + 7.0874844356947325E-09 5.8747602990666385E-09 4.8616512297742425E-09 + 4.0166783717935486E-09 3.3130948618336137E-09 2.7282121275003708E-09 + 2.2428162575691927E-09 1.8406632680108207E-09 1.5080433524033469E-09 + 1.2334053433275155E-09 1.0070336330333694E-09 8.2077071715382687E-10 + 6.6777934393701255E-10 5.4233898214477615E-10 4.3967197157267836E-10 + 3.5579529864492265E-10 2.8739445271435048E-10 2.3171627299711000E-10 + 1.8647809742146728E-10 1.4979087850783819E-10 1.2009424269786840E-10 + 9.6101742854530610E-11 7.6754793095535730E-11 6.1183984450767398E-11 + 4.8676662448330469E-11 3.8649806701583106E-11 3.0627390655249553E-11 + 2.4221519335953440E-11 1.9116746466940871E-11 1.5057061637876873E-11 + 1.1835115142136571E-11 9.2833141833122155E-12 7.2664808087799644E-12 + 5.6758103888406066E-12 4.4239108173493120E-12 3.4407378251449328E-12 + 2.6702717148284733E-12 2.0678061833939098E-12 1.5977413431516723E-12 + 1.2317911433780377E-12 9.4753062349799234E-13 7.2722121652037505E-13 + 5.5686303461786258E-13 4.2543202244460073E-13 3.2426732906524037E-13 + 2.4658045866219903E-13 1.8706291228009191E-13 1.4157329732127490E-13 + 1.0688840257701118E-13 8.0505636658617968E-14 6.0486610351484317E-14 + 4.5333596057594353E-14 3.3892193684777440E-14 2.5274833833018190E-14 + 1.8800807610710420E-14 1.3949371039229745E-14 1.0323166698404442E-14 + 7.6197658552314474E-15 5.6095854982588141E-15 4.1187968591974835E-15 + 3.0161319280135268E-15 2.2027259397480222E-15 1.6043181134617466E-15 + 1.1652792667468713E-15 8.4405081084124051E-16 6.0967113711811421E-16 + 4.3913746076873611E-16 3.1540776622926069E-16 2.2589179906356568E-16 + 1.6131463585705907E-16 1.1486328896392920E-16 8.1547702823122846E-17 + 5.7723673800678602E-17 4.0737707156190829E-17 2.8663427488752692E-17 + 2.0106524705921457E-17 1.4060850215510318E-17 9.8025722679209975E-18 + 6.8125631359210989E-18 4.7196636895935563E-18 3.2593386970671517E-18 + 2.2436424716788310E-18 1.5394699484586646E-18 1.0528578891326898E-18 + 7.1768973631190237E-19 4.8759529434998140E-19 3.3016064536103171E-19 + 2.2280311451150069E-19 1.4984228053144315E-19 1.0042724531677630E-19 + 6.7074827604729393E-20 4.4642147801818746E-20 2.9607016285021784E-20 + 1.9565667815160809E-20 1.2883429558032405E-20 8.4526184008341170E-21 + 5.5253534896784658E-21 3.5985193647743388E-21 2.3349006813368721E-21 + 1.5093135356170524E-21 9.7194699001463863E-22 6.2350967070618319E-22 + 3.9844339486971065E-22 2.5362850877588246E-22 1.6081352466521898E-22 + 1.0156057063835429E-22 6.3883719639307531E-23 4.0022379848948955E-23 + 2.4971636462910689E-23 1.5516997220607504E-23 9.6021660092586270E-24 + 5.9171927743668043E-24 3.6310414200598843E-24 2.2187048099118054E-24 + 1.3499087348993964E-24 8.1776672913678560E-25 4.9323974199882040E-25 + 2.9619218121290204E-25 1.7707579077140974E-25 1.0538963229496919E-25 + 6.2441391650233277E-26 3.6826969876126450E-26 2.1620250797018673E-26 + 1.2633952862978882E-26 7.3482491219464477E-27 4.2537968977829946E-27 + 2.4507550552918794E-27 1.4051905284812293E-27 8.0179693894350400E-28 + 4.5526998860273150E-28 2.5723527628489023E-28 1.4462060700623003E-28 + 8.0900109779330143E-29 4.5026510755181918E-29 2.4932656333205607E-29 + 1.3735059794419733E-29 7.5272236988483398E-30 4.1035688251411235E-30 + 2.2253148364936568E-30 1.2003395227098463E-30 6.4399063765838827E-31 + 3.4363513007852880E-31 1.8236341097478573E-31 9.6245281334948829E-32 + 5.0512871611936379E-32 2.6362383392796522E-32 1.3680635097375655E-32 + 7.0590399187666042E-33 3.6214414599000079E-33 1.8471078721475576E-33 + 9.3660475374508920E-34 4.7211952257560054E-34 2.3656860180496958E-34 + 1.1782831662789339E-34 5.8332071387499163E-35 2.8701715436736976E-35 + 1.4035518496577555E-35 6.8209754335775876E-36 3.2941171639665227E-36 + 1.5808224402098652E-36 7.5379880770469146E-37 3.5713528681082174E-37 + 1.6810922697188661E-37 7.8615498144921455E-38 3.6522359998294650E-38 + 1.6854644716724698E-38 7.7262080243892237E-39 3.5178311552686654E-39 + 1.5908198948193130E-39 7.1446334658057318E-40 3.1865971101779996E-40 + 1.4113600999163566E-40 6.2070759187312420E-41 2.7105021679171367E-41 + 1.1751701254762247E-41 5.0584175797580549E-42 2.1615540832049791E-42 + 9.1691576513545567E-43 3.8608147754085034E-43 1.6135738651776821E-43 + 6.6931897498599343E-44 2.7554069620251114E-44 1.1256943959736357E-44 + 4.5636370081067266E-45 1.8358242717031014E-45 7.3274696412198245E-46 + 2.9017048249701249E-46 1.1399925065038865E-46 4.4429712333353741E-47 + 1.7176743539082588E-47 6.5868379843130206E-48 2.5052718495662191E-48 + 9.4503368070947689E-49 3.5353060025395502E-49 1.3114951768059008E-49 + 4.8243515170917127E-50 1.7596094198366497E-50 6.3631353835883682E-51 + 2.2812664009793873E-51 8.1078022696420523E-52 2.8564386086670398E-52 + 9.9750134969397551E-53 3.4525593207445581E-53 1.1843499239949028E-53 + 4.0262643992591270E-54 1.3563757647971542E-54 4.5277799553926849E-55 + 1.4975806860494465E-55 4.9075736626766727E-56 1.5932618058277789E-56 + 5.1241663884489049E-57 1.6324771120256962E-57 5.1514658258829015E-58 + 1.6100762575720529E-58 4.9838623823030634E-59 1.5277830969297889E-59 + 4.6377307290048033E-60 1.3940224147307398E-60 4.1488416454251327E-61 + 1.2224949195361172E-61 3.5661202951476102E-62 1.0299052076417797E-62 + 2.9454216895473186E-63 8.3047523949040501E-64 2.2635780815654502E-64 + 6.0993691669677120E-65 1.6246162331356423E-65 4.2770908187493748E-66 + + + 1.8534478039806288E+00 1.8534478039785400E+00 1.8534478039721785E+00 + 1.8534478039614359E+00 1.8534478039461990E+00 1.8534478039263469E+00 + 1.8534478039017592E+00 1.8534478038723143E+00 1.8534478038378839E+00 + 1.8534478037983400E+00 1.8534478037535524E+00 1.8534478037033870E+00 + 1.8534478036477071E+00 1.8534478035863735E+00 1.8534478035192423E+00 + 1.8534478034461708E+00 1.8534478033670081E+00 1.8534478032816055E+00 + 1.8534478031898081E+00 1.8534478030914583E+00 1.8534478029863952E+00 + 1.8534478028744557E+00 1.8534478027554722E+00 1.8534478026292751E+00 + 1.8534478024956893E+00 1.8534478023545371E+00 1.8534478022056402E+00 + 1.8534478020488103E+00 1.8534478018838614E+00 1.8534478017106011E+00 + 1.8534478015288325E+00 1.8534478013383564E+00 1.8534478011389686E+00 + 1.8534478009304627E+00 1.8534478007126243E+00 1.8534478004852384E+00 + 1.8534478002480841E+00 1.8534478000009360E+00 1.8534477997435652E+00 + 1.8534477994757377E+00 1.8534477991972151E+00 1.8534477989077529E+00 + 1.8534477986071036E+00 1.8534477982950150E+00 1.8534477979712274E+00 + 1.8534477976354795E+00 1.8534477972875003E+00 1.8534477969270193E+00 + 1.8534477965537561E+00 1.8534477961674254E+00 1.8534477957677391E+00 + 1.8534477953543991E+00 1.8534477949271060E+00 1.8534477944855521E+00 + 1.8534477940294229E+00 1.8534477935583999E+00 1.8534477930721567E+00 + 1.8534477925703625E+00 1.8534477920526777E+00 1.8534477915187564E+00 + 1.8534477909682492E+00 1.8534477904007958E+00 1.8534477898160298E+00 + 1.8534477892135810E+00 1.8534477885930674E+00 1.8534477879541023E+00 + 1.8534477872962913E+00 1.8534477866192320E+00 1.8534477859225138E+00 + 1.8534477852057194E+00 1.8534477844684230E+00 1.8534477837101881E+00 + 1.8534477829305744E+00 1.8534477821291302E+00 1.8534477813053956E+00 + 1.8534477804589014E+00 1.8534477795891697E+00 1.8534477786957158E+00 + 1.8534477777780409E+00 1.8534477768356412E+00 1.8534477758680010E+00 + 1.8534477748745939E+00 1.8534477738548867E+00 1.8534477728083332E+00 + 1.8534477717343771E+00 1.8534477706324530E+00 1.8534477695019824E+00 + 1.8534477683423773E+00 1.8534477671530389E+00 1.8534477659333577E+00 + 1.8534477646827081E+00 1.8534477634004594E+00 1.8534477620859622E+00 + 1.8534477607385593E+00 1.8534477593575811E+00 1.8534477579423418E+00 + 1.8534477564921454E+00 1.8534477550062827E+00 1.8534477534840292E+00 + 1.8534477519246484E+00 1.8534477503273907E+00 1.8534477486914884E+00 + 1.8534477470161643E+00 1.8534477453006231E+00 1.8534477435440557E+00 + 1.8534477417456385E+00 1.8534477399045297E+00 1.8534477380198751E+00 + 1.8534477360908022E+00 1.8534477341164226E+00 1.8534477320958314E+00 + 1.8534477300281071E+00 1.8534477279123094E+00 1.8534477257474817E+00 + 1.8534477235326494E+00 1.8534477212668194E+00 1.8534477189489791E+00 + 1.8534477165780994E+00 1.8534477141531276E+00 1.8534477116729957E+00 + 1.8534477091366155E+00 1.8534477065428732E+00 1.8534477038906403E+00 + 1.8534477011787638E+00 1.8534476984060719E+00 1.8534476955713668E+00 + 1.8534476926734327E+00 1.8534476897110272E+00 1.8534476866828897E+00 + 1.8534476835877296E+00 1.8534476804242386E+00 1.8534476771910791E+00 + 1.8534476738868930E+00 1.8534476705102918E+00 1.8534476670598656E+00 + 1.8534476635341777E+00 1.8534476599317613E+00 1.8534476562511260E+00 + 1.8534476524907528E+00 1.8534476486490943E+00 1.8534476447245736E+00 + 1.8534476407155853E+00 1.8534476366204937E+00 1.8534476324376343E+00 + 1.8534476281653094E+00 1.8534476238017916E+00 1.8534476193453224E+00 + 1.8534476147941064E+00 1.8534476101463202E+00 1.8534476054001037E+00 + 1.8534476005535636E+00 1.8534475956047707E+00 1.8534475905517604E+00 + 1.8534475853925321E+00 1.8534475801250492E+00 1.8534475747472345E+00 + 1.8534475692569752E+00 1.8534475636521186E+00 1.8534475579304734E+00 + 1.8534475520898055E+00 1.8534475461278417E+00 1.8534475400422656E+00 + 1.8534475338307201E+00 1.8534475274908015E+00 1.8534475210200658E+00 + 1.8534475144160194E+00 1.8534475076761270E+00 1.8534475007978046E+00 + 1.8534474937784213E+00 1.8534474866152975E+00 1.8534474793057032E+00 + 1.8534474718468608E+00 1.8534474642359398E+00 1.8534474564700594E+00 + 1.8534474485462824E+00 1.8534474404616232E+00 1.8534474322130348E+00 + 1.8534474237974192E+00 1.8534474152116209E+00 1.8534474064524258E+00 + 1.8534473975165588E+00 1.8534473884006899E+00 1.8534473791014214E+00 + 1.8534473696153000E+00 1.8534473599388057E+00 1.8534473500683526E+00 + 1.8534473400002922E+00 1.8534473297309082E+00 1.8534473192564169E+00 + 1.8534473085729619E+00 1.8534472976766221E+00 1.8534472865634002E+00 + 1.8534472752292261E+00 1.8534472636699597E+00 1.8534472518813792E+00 + 1.8534472398591890E+00 1.8534472275990155E+00 1.8534472150964034E+00 + 1.8534472023468174E+00 1.8534471893456386E+00 1.8534471760881632E+00 + 1.8534471625696052E+00 1.8534471487850859E+00 1.8534471347296431E+00 + 1.8534471203982179E+00 1.8534471057856652E+00 1.8534470908867431E+00 + 1.8534470756961148E+00 1.8534470602083453E+00 1.8534470444179021E+00 + 1.8534470283191511E+00 1.8534470119063553E+00 1.8534469951736743E+00 + 1.8534469781151606E+00 1.8534469607247581E+00 1.8534469429963023E+00 + 1.8534469249235139E+00 1.8534469065000019E+00 1.8534468877192578E+00 + 1.8534468685746543E+00 1.8534468490594445E+00 1.8534468291667585E+00 + 1.8534468088896021E+00 1.8534467882208532E+00 1.8534467671532606E+00 + 1.8534467456794417E+00 1.8534467237918797E+00 1.8534467014829199E+00 + 1.8534466787447712E+00 1.8534466555694991E+00 1.8534466319490266E+00 + 1.8534466078751279E+00 1.8534465833394298E+00 1.8534465583334077E+00 + 1.8534465328483800E+00 1.8534465068755106E+00 1.8534464804057988E+00 + 1.8534464534300870E+00 1.8534464259390451E+00 1.8534463979231790E+00 + 1.8534463693728196E+00 1.8534463402781214E+00 1.8534463106290660E+00 + 1.8534462804154475E+00 1.8534462496268782E+00 1.8534462182527827E+00 + 1.8534461862823921E+00 1.8534461537047440E+00 1.8534461205086765E+00 + 1.8534460866828268E+00 1.8534460522156255E+00 1.8534460170952940E+00 + 1.8534459813098416E+00 1.8534459448470599E+00 1.8534459076945193E+00 + 1.8534458698395648E+00 1.8534458312693156E+00 1.8534457919706540E+00 + 1.8534457519302268E+00 1.8534457111344411E+00 1.8534456695694548E+00 + 1.8534456272211792E+00 1.8534455840752693E+00 1.8534455401171193E+00 + 1.8534454953318629E+00 1.8534454497043624E+00 1.8534454032192085E+00 + 1.8534453558607114E+00 1.8534453076129012E+00 1.8534452584595178E+00 + 1.8534452083840056E+00 1.8534451573695130E+00 1.8534451053988832E+00 + 1.8534450524546500E+00 1.8534449985190313E+00 1.8534449435739244E+00 + 1.8534448876009015E+00 1.8534448305811981E+00 1.8534447724957159E+00 + 1.8534447133250105E+00 1.8534446530492841E+00 1.8534445916483866E+00 + 1.8534445291018007E+00 1.8534444653886408E+00 1.8534444004876445E+00 + 1.8534443343771660E+00 1.8534442670351694E+00 1.8534441984392205E+00 + 1.8534441285664833E+00 1.8534440573937083E+00 1.8534439848972273E+00 + 1.8534439110529450E+00 1.8534438358363337E+00 1.8534437592224231E+00 + 1.8534436811857911E+00 1.8534436017005627E+00 1.8534435207403901E+00 + 1.8534434382784570E+00 1.8534433542874602E+00 1.8534432687396085E+00 + 1.8534431816066061E+00 1.8534430928596517E+00 1.8534430024694220E+00 + 1.8534429104060692E+00 1.8534428166392065E+00 1.8534427211379001E+00 + 1.8534426238706594E+00 1.8534425248054280E+00 1.8534424239095739E+00 + 1.8534423211498736E+00 1.8534422164925113E+00 1.8534421099030578E+00 + 1.8534420013464703E+00 1.8534418907870691E+00 1.8534417781885391E+00 + 1.8534416635139068E+00 1.8534415467255376E+00 1.8534414277851186E+00 + 1.8534413066536488E+00 1.8534411832914248E+00 1.8534410576580300E+00 + 1.8534409297123218E+00 1.8534407994124187E+00 1.8534406667156833E+00 + 1.8534405315787135E+00 1.8534403939573312E+00 1.8534402538065573E+00 + 1.8534401110806102E+00 1.8534399657328831E+00 1.8534398177159324E+00 + 1.8534396669814608E+00 1.8534395134803054E+00 1.8534393571624199E+00 + 1.8534391979768581E+00 1.8534390358717581E+00 1.8534388707943292E+00 + 1.8534387026908306E+00 1.8534385315065567E+00 1.8534383571858195E+00 + 1.8534381796719315E+00 1.8534379989071867E+00 1.8534378148328445E+00 + 1.8534376273891089E+00 1.8534374365151096E+00 1.8534372421488838E+00 + 1.8534370442273578E+00 1.8534368426863259E+00 1.8534366374604276E+00 + 1.8534364284831319E+00 1.8534362156867128E+00 1.8534359990022289E+00 + 1.8534357783595021E+00 1.8534355536870948E+00 1.8534353249122877E+00 + 1.8534350919610565E+00 1.8534348547580508E+00 1.8534346132265642E+00 + 1.8534343672885205E+00 1.8534341168644362E+00 1.8534338618734072E+00 + 1.8534336022330764E+00 1.8534333378596088E+00 1.8534330686676679E+00 + 1.8534327945703859E+00 1.8534325154793367E+00 1.8534322313045077E+00 + 1.8534319419542762E+00 1.8534316473353720E+00 1.8534313473528559E+00 + 1.8534310419100846E+00 1.8534307309086837E+00 1.8534304142485147E+00 + 1.8534300918276423E+00 1.8534297635423078E+00 1.8534294292868880E+00 + 1.8534290889538718E+00 1.8534287424338158E+00 1.8534283896153207E+00 + 1.8534280303849846E+00 1.8534276646273777E+00 1.8534272922250010E+00 + 1.8534269130582488E+00 1.8534265270053738E+00 1.8534261339424449E+00 + 1.8534257337433131E+00 1.8534253262795695E+00 1.8534249114204990E+00 + 1.8534244890330529E+00 1.8534240589817932E+00 1.8534236211288593E+00 + 1.8534231753339179E+00 1.8534227214541237E+00 1.8534222593440726E+00 + 1.8534217888557558E+00 1.8534213098385151E+00 1.8534208221389923E+00 + 1.8534203256010828E+00 1.8534198200658865E+00 1.8534193053716597E+00 + 1.8534187813537584E+00 1.8534182478445949E+00 1.8534177046735765E+00 + 1.8534171516670586E+00 1.8534165886482878E+00 1.8534160154373422E+00 + 1.8534154318510838E+00 1.8534148377030935E+00 1.8534142328036138E+00 + 1.8534136169594917E+00 1.8534129899741154E+00 1.8534123516473544E+00 + 1.8534117017754965E+00 1.8534110401511801E+00 1.8534103665633370E+00 + 1.8534096807971161E+00 1.8534089826338243E+00 1.8534082718508511E+00 + 1.8534075482216061E+00 1.8534068115154423E+00 1.8534060614975816E+00 + 1.8534052979290496E+00 1.8534045205665923E+00 1.8534037291626042E+00 + 1.8534029234650478E+00 1.8534021032173777E+00 1.8534012681584555E+00 + 1.8534004180224735E+00 1.8533995525388665E+00 1.8533986714322288E+00 + 1.8533977744222272E+00 1.8533968612235125E+00 1.8533959315456334E+00 + 1.8533949850929408E+00 1.8533940215644953E+00 1.8533930406539749E+00 + 1.8533920420495813E+00 1.8533910254339345E+00 1.8533899904839806E+00 + 1.8533889368708845E+00 1.8533878642599317E+00 1.8533867723104218E+00 + 1.8533856606755577E+00 1.8533845290023423E+00 1.8533833769314654E+00 + 1.8533822040971892E+00 1.8533810101272359E+00 1.8533797946426729E+00 + 1.8533785572577863E+00 1.8533772975799687E+00 1.8533760152095904E+00 + 1.8533747097398765E+00 1.8533733807567776E+00 1.8533720278388419E+00 + 1.8533706505570826E+00 1.8533692484748394E+00 1.8533678211476481E+00 + 1.8533663681230979E+00 1.8533648889406866E+00 1.8533633831316814E+00 + 1.8533618502189708E+00 1.8533602897169097E+00 1.8533587011311743E+00 + 1.8533570839586044E+00 1.8533554376870429E+00 1.8533537617951787E+00 + 1.8533520557523813E+00 1.8533503190185372E+00 1.8533485510438759E+00 + 1.8533467512688004E+00 1.8533449191237139E+00 1.8533430540288360E+00 + 1.8533411553940276E+00 1.8533392226185958E+00 1.8533372550911176E+00 + 1.8533352521892403E+00 1.8533332132794884E+00 1.8533311377170669E+00 + 1.8533290248456553E+00 1.8533268739972057E+00 1.8533246844917313E+00 + 1.8533224556370955E+00 1.8533201867287910E+00 1.8533178770497227E+00 + 1.8533155258699834E+00 1.8533131324466197E+00 1.8533106960234063E+00 + 1.8533082158306036E+00 1.8533056910847192E+00 1.8533031209882644E+00 + 1.8533005047294979E+00 1.8532978414821770E+00 1.8532951304052983E+00 + 1.8532923706428308E+00 1.8532895613234530E+00 1.8532867015602734E+00 + 1.8532837904505604E+00 1.8532808270754517E+00 1.8532778104996730E+00 + 1.8532747397712415E+00 1.8532716139211673E+00 1.8532684319631536E+00 + 1.8532651928932840E+00 1.8532618956897091E+00 1.8532585393123298E+00 + 1.8532551227024641E+00 1.8532516447825256E+00 1.8532481044556772E+00 + 1.8532445006054910E+00 1.8532408320956024E+00 1.8532370977693478E+00 + 1.8532332964494076E+00 1.8532294269374343E+00 1.8532254880136791E+00 + 1.8532214784366110E+00 1.8532173969425254E+00 1.8532132422451508E+00 + 1.8532090130352452E+00 1.8532047079801857E+00 1.8532003257235552E+00 + 1.8531958648847113E+00 1.8531913240583606E+00 1.8531867018141148E+00 + 1.8531819966960446E+00 1.8531772072222255E+00 1.8531723318842710E+00 + 1.8531673691468629E+00 1.8531623174472691E+00 1.8531571751948583E+00 + 1.8531519407705976E+00 1.8531466125265503E+00 1.8531411887853559E+00 + 1.8531356678397111E+00 1.8531300479518289E+00 1.8531243273529008E+00 + 1.8531185042425407E+00 1.8531125767882231E+00 1.8531065431247082E+00 + 1.8531004013534607E+00 1.8530941495420550E+00 1.8530877857235690E+00 + 1.8530813078959736E+00 1.8530747140215027E+00 1.8530680020260177E+00 + 1.8530611697983581E+00 1.8530542151896827E+00 1.8530471360127962E+00 + 1.8530399300414664E+00 1.8530325950097293E+00 1.8530251286111794E+00 + 1.8530175284982464E+00 1.8530097922814683E+00 1.8530019175287353E+00 + 1.8529939017645416E+00 1.8529857424691958E+00 1.8529774370780505E+00 + 1.8529689829806892E+00 1.8529603775201131E+00 1.8529516179919161E+00 + 1.8529427016434299E+00 1.8529336256728770E+00 1.8529243872284813E+00 + 1.8529149834075895E+00 1.8529054112557555E+00 1.8528956677658242E+00 + 1.8528857498769855E+00 1.8528756544738254E+00 1.8528653783853468E+00 + 1.8528549183839844E+00 1.8528442711845921E+00 1.8528334334434222E+00 + 1.8528224017570754E+00 1.8528111726614440E+00 1.8527997426306273E+00 + 1.8527881080758299E+00 1.8527762653442448E+00 1.8527642107179116E+00 + 1.8527519404125532E+00 1.8527394505763997E+00 1.8527267372889831E+00 + 1.8527137965599154E+00 1.8527006243276414E+00 1.8526872164581742E+00 + 1.8526735687438025E+00 1.8526596769017800E+00 1.8526455365729906E+00 + 1.8526311433205835E+00 1.8526164926285948E+00 1.8526015799005360E+00 + 1.8525864004579624E+00 1.8525709495390115E+00 1.8525552222969226E+00 + 1.8525392137985193E+00 1.8525229190226766E+00 1.8525063328587568E+00 + 1.8524894501050104E+00 1.8524722654669583E+00 1.8524547735557435E+00 + 1.8524369688864486E+00 1.8524188458763877E+00 1.8524003988433693E+00 + 1.8523816220039206E+00 1.8523625094714906E+00 1.8523430552546163E+00 + 1.8523232532550526E+00 1.8523030972658774E+00 1.8522825809695569E+00 + 1.8522616979359778E+00 1.8522404416204494E+00 1.8522188053616575E+00 + 1.8521967823796006E+00 1.8521743657734737E+00 1.8521515485195230E+00 + 1.8521283234688599E+00 1.8521046833452348E+00 1.8520806207427776E+00 + 1.8520561281236880E+00 1.8520311978158985E+00 1.8520058220106799E+00 + 1.8519799927602203E+00 1.8519537019751504E+00 1.8519269414220279E+00 + 1.8518997027207815E+00 1.8518719773421009E+00 1.8518437566047945E+00 + 1.8518150316730830E+00 1.8517857935538580E+00 1.8517560330938923E+00 + 1.8517257409769898E+00 1.8516949077210951E+00 1.8516635236753547E+00 + 1.8516315790171081E+00 1.8515990637488535E+00 1.8515659676951344E+00 + 1.8515322804993832E+00 1.8514979916207157E+00 1.8514630903306495E+00 + 1.8514275657097827E+00 1.8513914066444108E+00 1.8513546018230718E+00 + 1.8513171397330452E+00 1.8512790086567834E+00 1.8512401966682777E+00 + 1.8512006916293662E+00 1.8511604811859694E+00 1.8511195527642674E+00 + 1.8510778935668029E+00 1.8510354905685207E+00 1.8509923305127340E+00 + 1.8509483999070251E+00 1.8509036850190630E+00 1.8508581718723629E+00 + 1.8508118462419567E+00 1.8507646936500000E+00 1.8507166993612887E+00 + 1.8506678483787089E+00 1.8506181254386029E+00 1.8505675150060497E+00 + 1.8505160012700672E+00 1.8504635681387305E+00 1.8504101992342010E+00 + 1.8503558778876759E+00 1.8503005871342360E+00 1.8502443097076187E+00 + 1.8501870280348891E+00 1.8501287242310234E+00 1.8500693800933883E+00 + 1.8500089770961410E+00 1.8499474963845137E+00 1.8498849187690081E+00 + 1.8498212247194850E+00 1.8497563943591553E+00 1.8496904074584570E+00 + 1.8496232434288373E+00 1.8495548813164131E+00 1.8494852997955369E+00 + 1.8494144771622321E+00 1.8493423913275315E+00 1.8492690198106863E+00 + 1.8491943397322661E+00 1.8491183278071361E+00 1.8490409603373068E+00 + 1.8489622132046708E+00 1.8488820618636008E+00 1.8488004813334309E+00 + 1.8487174461907989E+00 1.8486329305618570E+00 1.8485469081143544E+00 + 1.8484593520495765E+00 1.8483702350941404E+00 1.8482795294916641E+00 + 1.8481872069942702E+00 1.8480932388539644E+00 1.8479975958138477E+00 + 1.8479002480991897E+00 1.8478011654083388E+00 1.8477003169034778E+00 + 1.8475976712012288E+00 1.8474931963630830E+00 1.8473868598856755E+00 + 1.8472786286908867E+00 1.8471684691157824E+00 1.8470563469023713E+00 + 1.8469422271871900E+00 1.8468260744907141E+00 1.8467078527065839E+00 + 1.8465875250906458E+00 1.8464650542498036E+00 1.8463404021306891E+00 + 1.8462135300081288E+00 1.8460843984734139E+00 1.8459529674223845E+00 + 1.8458191960432910E+00 1.8456830428044624E+00 1.8455444654417636E+00 + 1.8454034209458330E+00 1.8452598655491097E+00 1.8451137547126411E+00 + 1.8449650431126630E+00 1.8448136846269507E+00 1.8446596323209536E+00 + 1.8445028384336766E+00 1.8443432543633360E+00 1.8441808306527694E+00 + 1.8440155169746026E+00 1.8438472621161621E+00 1.8436760139641404E+00 + 1.8435017194890011E+00 1.8433243247291216E+00 1.8431437747746739E+00 + 1.8429600137512339E+00 1.8427729848031174E+00 1.8425826300764354E+00 + 1.8423888907018762E+00 1.8421917067771942E+00 1.8419910173494056E+00 + 1.8417867603966975E+00 1.8415788728100300E+00 1.8413672903744420E+00 + 1.8411519477500384E+00 1.8409327784526732E+00 1.8407097148343117E+00 + 1.8404826880630667E+00 1.8402516281029138E+00 1.8400164636930714E+00 + 1.8397771223270403E+00 1.8395335302313112E+00 1.8392856123437129E+00 + 1.8390332922914177E+00 1.8387764923685925E+00 1.8385151335136740E+00 + 1.8382491352862917E+00 1.8379784158438122E+00 1.8377028919175069E+00 + 1.8374224787883338E+00 1.8371370902623394E+00 1.8368466386456579E+00 + 1.8365510347191183E+00 1.8362501877124446E+00 1.8359440052780467E+00 + 1.8356323934643950E+00 1.8353152566889794E+00 1.8349924977108314E+00 + 1.8346640176026308E+00 1.8343297157223553E+00 1.8339894896845030E+00 + 1.8336432353308609E+00 1.8332908467008138E+00 1.8329322160012007E+00 + 1.8325672335757015E+00 1.8321957878737500E+00 1.8318177654189765E+00 + 1.8314330507771563E+00 1.8310415265236841E+00 1.8306430732105350E+00 + 1.8302375693327424E+00 1.8298248912943593E+00 1.8294049133739103E+00 + 1.8289775076893255E+00 1.8285425441623544E+00 1.8280998904824413E+00 + 1.8276494120700764E+00 1.8271909720395989E+00 1.8267244311614577E+00 + 1.8262496478239210E+00 1.8257664779942200E+00 1.8252747751791440E+00 + 1.8247743903850542E+00 1.8242651720773322E+00 1.8237469661392440E+00 + 1.8232196158302261E+00 1.8226829617435745E+00 1.8221368417635468E+00 + 1.8215810910218619E+00 1.8210155418535965E+00 1.8204400237524696E+00 + 1.8198543633255191E+00 1.8192583842471610E+00 1.8186519072126182E+00 + 1.8180347498907363E+00 1.8174067268761560E+00 1.8167676496408671E+00 + 1.8161173264851076E+00 1.8154555624876392E+00 1.8147821594553672E+00 + 1.8140969158723232E+00 1.8133996268479877E+00 1.8126900840649740E+00 + 1.8119680757260477E+00 1.8112333865004977E+00 1.8104857974698458E+00 + 1.8097250860729031E+00 1.8089510260501640E+00 1.8081633873875422E+00 + 1.8073619362594435E+00 1.8065464349711926E+00 1.8057166419007802E+00 + 1.8048723114399772E+00 1.8040131939347714E+00 1.8031390356251700E+00 + 1.8022495785843411E+00 1.8013445606571041E+00 1.8004237153977938E+00 + 1.7994867720074628E+00 1.7985334552704721E+00 1.7975634854904405E+00 + 1.7965765784255698E+00 1.7955724452233681E+00 1.7945507923547546E+00 + 1.7935113215475718E+00 1.7924537297195067E+00 1.7913777089104346E+00 + 1.7902829462141989E+00 1.7891691237098257E+00 1.7880359183922081E+00 + 1.7868830021022608E+00 1.7857100414565490E+00 1.7845166977764413E+00 + 1.7833026270167689E+00 1.7820674796940301E+00 1.7808109008141528E+00 + 1.7795325297998403E+00 1.7782320004175201E+00 1.7769089407039163E+00 + 1.7755629728922813E+00 1.7741937133383041E+00 1.7728007724457275E+00 + 1.7713837545917015E+00 1.7699422580519180E+00 1.7684758749255352E+00 + 1.7669841910599540E+00 1.7654667859754700E+00 1.7639232327898375E+00 + 1.7623530981428039E+00 1.7607559421206309E+00 1.7591313181806858E+00 + 1.7574787730761143E+00 1.7557978467806665E+00 1.7540880724137304E+00 + 1.7523489761656184E+00 1.7505800772231708E+00 1.7487808876957438E+00 + 1.7469509125416345E+00 1.7450896494950201E+00 1.7431965889934788E+00 + 1.7412712141061661E+00 1.7393130004627206E+00 1.7373214161829944E+00 + 1.7352959218076656E+00 1.7332359702298550E+00 1.7311410066278039E+00 + 1.7290104683987479E+00 1.7268437850940390E+00 1.7246403783556743E+00 + 1.7223996618542974E+00 1.7201210412288046E+00 1.7178039140276753E+00 + 1.7154476696521472E+00 1.7130516893013557E+00 1.7106153459195927E+00 + 1.7081380041458025E+00 1.7056190202654660E+00 1.7030577421650297E+00 + 1.7004535092890383E+00 1.6978056526001097E+00 1.6951134945419579E+00 + 1.6923763490056098E+00 1.6895935212990094E+00 1.6867643081202046E+00 + 1.6838879975342997E+00 1.6809638689543951E+00 1.6779911931267046E+00 + 1.6749692321200875E+00 1.6718972393202274E+00 1.6687744594286575E+00 + 1.6656001284669362E+00 1.6623734737861684E+00 1.6590937140821760E+00 + 1.6557600594165698E+00 1.6523717112440104E+00 1.6489278624459529E+00 + 1.6454276973711701E+00 1.6418703918833717E+00 1.6382551134162497E+00 + 1.6345810210362650E+00 1.6308472655135458E+00 1.6270529894012298E+00 + 1.6231973271236448E+00 1.6192794050736881E+00 1.6152983417198137E+00 + 1.6112532477230204E+00 1.6071432260642844E+00 1.6029673721828330E+00 + 1.5987247741257467E+00 1.5944145127093279E+00 1.5900356616927078E+00 + 1.5855872879642110E+00 1.5810684517409346E+00 1.5764782067821232E+00 + 1.5718156006168262E+00 1.5670796747863980E+00 1.5622694651024505E+00 + 1.5573840019207772E+00 1.5524223104319044E+00 1.5473834109688600E+00 + 1.5422663193328063E+00 1.5370700471371799E+00 1.5317936021710188E+00 + 1.5264359887821635E+00 1.5209962082810313E+00 1.5154732593656930E+00 + 1.5098661385689993E+00 1.5041738407285064E+00 1.4983953594799944E+00 + 1.4925296877753604E+00 1.4865758184257238E+00 1.4805327446705590E+00 + 1.4743994607737154E+00 1.4681749626472158E+00 1.4618582485036919E+00 + 1.4554483195383876E+00 1.4489441806416583E+00 1.4423448411428987E+00 + 1.4356493155868688E+00 1.4288566245433953E+00 1.4219657954514493E+00 + 1.4149758634986076E+00 1.4078858725369103E+00 1.4006948760361981E+00 + 1.3934019380759317E+00 1.3860061343765957E+00 1.3785065533717655E+00 + 1.3709022973219172E+00 1.3631924834710807E+00 1.3553762452474500E+00 + 1.3474527335090800E+00 1.3394211178357585E+00 1.3312805878681975E+00 + 1.3230303546956794E+00 1.3146696522932564E+00 1.3061977390096380E+00 + 1.2976138991068800E+00 1.2889174443529969E+00 1.2801077156685581E+00 + 1.2711840848283804E+00 1.2621459562193735E+00 1.2529927686555733E+00 + 1.2437239972513703E+00 1.2343391553539573E+00 1.2248377965358979E+00 + 1.2152195166487691E+00 1.2054839559387185E+00 1.1956308012247889E+00 + 1.1856597881407342E+00 1.1755707034410456E+00 1.1653633873718496E+00 + 1.1550377361071733E+00 1.1445937042511047E+00 1.1340313074062134E+00 + 1.1233506248085023E+00 1.1125518020290870E+00 1.1016350537426272E+00 + 1.0906006665624857E+00 1.0794490019423575E+00 1.0681804991440154E+00 + 1.0567956782706918E+00 1.0452951433653352E+00 1.0336795855729035E+00 + 1.0219497863655771E+00 1.0101066208296252E+00 9.9815106101235118E-01 + 9.8608417932734826E-01 9.7390715201605771E-01 9.6162126266324399E-01 + 9.4922790576379679E-01 9.3672859033793021E-01 9.2412494359145292E-01 + 9.1141871461750701E-01 8.9861177813572679E-01 8.8570613826441880E-01 + 8.7270393232088317E-01 8.5960743464457601E-01 8.4641906043736892E-01 + 8.3314136961456975E-01 8.1977707065993954E-01 8.0632902447730559E-01 + 7.9280024823086770E-01 7.7919391916557545E-01 7.6551337839840572E-01 + 7.5176213467067243E-01 7.3794386805074419E-01 7.2406243357586397E-01 + 7.1012186482101436E-01 6.9612637738187733E-01 6.8208037225820928E-01 + 6.6798843912301042E-01 6.5385535946202888E-01 6.3968610956713479E-01 + 6.2548586336618617E-01 6.1125999507102780E-01 5.9701408162414971E-01 + 5.8275390492355306E-01 5.6848545380427407E-01 5.5421492575382048E-01 + 5.3994872833773710E-01 5.2569348031025054E-01 5.1145601238384486E-01 + 4.9724336763029753E-01 4.8306280148456143E-01 4.6892178132163509E-01 + 4.5482798557522236E-01 4.4078930236584590E-01 4.2681382760472070E-01 + 4.1290986253854528E-01 3.9908591069901306E-01 3.8535067421972297E-01 + 3.7171304948197748E-01 3.5818212204971461E-01 3.4476716085281151E-01 + 3.3147761157691968E-01 3.1832308921695007E-01 3.0531336975050860E-01 + 2.9245838088669590E-01 2.7976819184505020E-01 2.6725300211874342E-01 + 2.5492312917576820E-01 2.4278899505155094E-01 2.3086111178627564E-01 + 2.1915006566031825E-01 2.0766650018152660E-01 1.9642109777853178E-01 + 1.8542456015518319E-01 1.7468758726222980E-01 1.6422085484384991E-01 + 1.5403499051832220E-01 1.4414054835433954E-01 1.3454798190700942E-01 + 1.2526761568052880E-01 1.1630961498806107E-01 1.0768395418326264E-01 + 9.9400383242492063E-02 9.1468392681782570E-02 8.3897176798438416E-02 + 7.6695595233514380E-02 6.9872132858485689E-02 6.3434857997293898E-02 + 5.7391379003565890E-02 5.1748799222190389E-02 4.6513670374770721E-02 + 4.1691944419610286E-02 3.7288923949017956E-02 3.3309211199746530E-02 + 2.9756655766453033E-02 2.6634301123128833E-02 2.3944330073528534E-02 + 2.1688009268806371E-02 1.9865632948772617E-02 1.8476466082491948E-02 + 1.7518687104284451E-02 1.6989330462635090E-02 1.6884229221957908E-02 + 1.7197957980627284E-02 1.7923776393112236E-02 1.8622582678631233E-02 + 1.6672789946250422E-02 1.4419850597424184E-02 1.2434859913377571E-02 + 1.0651841793241331E-02 9.0570335200863359E-03 7.6372261381737524E-03 + 6.3797603125370318E-03 5.2725247595813542E-03 4.3039515545121665E-03 + 3.4630114234962218E-03 2.7392081307134023E-03 2.1225721129342580E-03 + 1.6036533538574245E-03 1.1735134961528497E-03 8.2371718083272050E-04 + 5.4632260371023200E-04 3.3387127206054956E-04 1.7937694477923968E-04 + 7.6313741941687503E-05 1.8603406655098929E-05 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + 2.4225810322483348E+00 2.1261365625742732E+00 1.9662544560310893E+00 + 1.8779050802854664E+00 1.8173269187314327E+00 1.7620265704903595E+00 + 1.7249824345917866E+00 1.6947292094334896E+00 1.6685289594656643E+00 + 1.6456989325728633E+00 1.6254397568451009E+00 1.6072308337483507E+00 + 1.5907010289680330E+00 1.5755674072587855E+00 1.5616124040323844E+00 + 1.5486650690038921E+00 1.5365886395475119E+00 1.5252720669972151E+00 + 1.5146239866882698E+00 1.5045683525604285E+00 1.4950412146383634E+00 + 1.4859882984615895E+00 1.4773631589730611E+00 1.4691257530536386E+00 + 1.4612413219857134E+00 1.4536795066503063E+00 1.4464136397628817E+00 + 1.4394201743803485E+00 1.4326782184404891E+00 1.4261691526310372E+00 + 1.4198763143510500E+00 1.4137847345413350E+00 1.4078809171420477E+00 + 1.4021526531738215E+00 1.3965888631354020E+00 1.3911794627092748E+00 + 1.3859152477688061E+00 1.3807877954599419E+00 1.3757893787417237E+00 + 1.3709128922522695E+00 1.3661517877507106E+00 1.3615000176920760E+00 + 1.3569519857394305E+00 1.3525025032168965E+00 1.3481467506704816E+00 + 1.3438802438359649E+00 1.3396988034229693E+00 1.3355985282143716E+00 + 1.3315757710550313E+00 1.3276271173664527E+00 1.3237493658758226E+00 + 1.3199395112919452E+00 1.3161947286973323E+00 1.3125123594569956E+00 + 1.3088898984709030E+00 1.3053249826196707E+00 1.3018153802723089E+00 + 1.2983589817412104E+00 1.2949537905840323E+00 1.2915979156639170E+00 + 1.2882895638904546E+00 1.2850270335725815E+00 1.2818087083227601E+00 + 1.2786330514586610E+00 1.2754986008544322E+00 1.2724039641989771E+00 + 1.2693478146236388E+00 1.2663288866649260E+00 1.2633459725323146E+00 + 1.2603979186539127E+00 1.2574836224754309E+00 1.2546020294906690E+00 + 1.2517521304837893E+00 1.2489329589653733E+00 1.2461435887863475E+00 + 1.2433831319151796E+00 1.2406507363650356E+00 1.2379455842590568E+00 + 1.2352668900228680E+00 1.2326138986943762E+00 1.2299858843418405E+00 + 1.2273821485821652E+00 1.2248020191916815E+00 1.2222448488027517E+00 + 1.2197100136798795E+00 1.2171969125695594E+00 1.2147049656186315E+00 + 1.2122336133562841E+00 1.2097823157353520E+00 1.2073505512286637E+00 + 1.2049378159768662E+00 1.2025436229841537E+00 1.2001675013587072E+00 + 1.1978089955949585E+00 1.1954676648949165E+00 1.1931430825259941E+00 + 1.1908348352131222E+00 1.1885425225628157E+00 1.1862657565174124E+00 + 1.1840041608373975E+00 1.1817573706102629E+00 1.1795250317841719E+00 + 1.1773068007250558E+00 1.1751023437956600E+00 1.1729113369552484E+00 + 1.1707334653788428E+00 1.1685684230948006E+00 1.1664159126397133E+00 + 1.1642756447296123E+00 1.1621473379466125E+00 1.1600307184401075E+00 + 1.1579255196417022E+00 1.1558314819931637E+00 1.1537483526867294E+00 + 1.1516758854169238E+00 1.1496138401435509E+00 1.1475619828650390E+00 + 1.1455200854016885E+00 1.1434879251883416E+00 1.1414652850759475E+00 + 1.1394519531415421E+00 1.1374477225062949E+00 1.1354523911611514E+00 + 1.1334657617997623E+00 1.1314876416581985E+00 1.1295178423613670E+00 + 1.1275561797755267E+00 1.1256024738667914E+00 1.1236565485652792E+00 + 1.1217182316346601E+00 1.1197873545467989E+00 1.1178637523612929E+00 + 1.1159472636097030E+00 1.1140377301842006E+00 1.1121349972304839E+00 + 1.1102389130446959E+00 1.1083493289742947E+00 1.1064660993225688E+00 + 1.1045890812566754E+00 1.1027181347191009E+00 1.1008531223423126E+00 + 1.0989939093665035E+00 1.0971403635603285E+00 1.0952923551444418E+00 + 1.0934497567177277E+00 1.0916124431861767E+00 1.0897802916941899E+00 + 1.0879531815583097E+00 1.0861309942032094E+00 1.0843136130998898E+00 + 1.0825009237059451E+00 1.0806928134078908E+00 1.0788891714653734E+00 + 1.0770898889572786E+00 1.0752948587295772E+00 1.0735039753449425E+00 + 1.0717171350339576E+00 1.0699342356478949E+00 1.0681551766130974E+00 + 1.0663798588866802E+00 1.0646081849138080E+00 1.0628400585861655E+00 + 1.0610753852018124E+00 1.0593140714262572E+00 1.0575560252547622E+00 + 1.0558011559757643E+00 1.0540493741354537E+00 1.0523005915034025E+00 + 1.0505547210392416E+00 1.0488116768602838E+00 1.0470713742102453E+00 + 1.0453337294286884E+00 1.0435986599215765E+00 1.0418660841324925E+00 + 1.0401359215148496E+00 1.0384080925048182E+00 1.0366825184950474E+00 + 1.0349591218091243E+00 1.0332378256767984E+00 1.0315185542098473E+00 + 1.0298012323786485E+00 1.0280857859894184E+00 1.0263721416620124E+00 + 1.0246602268084488E+00 1.0229499696118929E+00 1.0212412990063187E+00 + 1.0195341446566510E+00 1.0178284369394788E+00 1.0161241069242632E+00 + 1.0144210863550609E+00 1.0127193076327219E+00 1.0110187037975635E+00 + 1.0093192085124654E+00 1.0076207560464931E+00 1.0059232812588199E+00 + 1.0042267195831789E+00 1.0025310070126354E+00 1.0008360800847982E+00 + 9.9914187586736269E-01 9.9744833194407756E-01 9.9575538640102101E-01 + 9.9406297781321074E-01 9.9237104523161901E-01 9.9067952817042182E-01 + 9.8898836659463307E-01 9.8729750090798751E-01 9.8560687194122287E-01 + 9.8391642094048348E-01 9.8222608955619317E-01 9.8053581983206395E-01 + 9.7884555419443242E-01 9.7715523544184446E-01 9.7546480673487013E-01 + 9.7377421158622279E-01 9.7208339385105602E-01 9.7039229771750124E-01 + 9.6870086769748431E-01 9.6700904861768933E-01 9.6531678561079703E-01 + 9.6362402410690018E-01 9.6193070982513651E-01 9.6023678876551710E-01 + 9.5854220720095629E-01 9.5684691166948010E-01 9.5515084896663438E-01 + 9.5345396613805999E-01 9.5175621047225811E-01 9.5005752949352595E-01 + 9.4835787095504320E-01 9.4665718283215061E-01 9.4495541331580335E-01 + 9.4325251080610073E-01 9.4154842390607452E-01 9.3984310141557859E-01 + 9.3813649232532159E-01 9.3642854581104329E-01 9.3471921122787538E-01 + 9.3300843810479750E-01 9.3129617613922122E-01 9.2958237519179676E-01 + 9.2786698528118983E-01 9.2614995657918908E-01 9.2443123940576921E-01 + 9.2271078422435659E-01 9.2098854163721700E-01 9.1926446238096882E-01 + 9.1753849732216330E-01 9.1581059745304516E-01 9.1408071388741186E-01 + 9.1234879785653922E-01 9.1061480070528689E-01 9.0887867388825749E-01 + 9.0714036896609984E-01 9.0539983760191478E-01 9.0365703155774368E-01 + 9.0191190269116994E-01 9.0016440295205680E-01 8.9841448437932669E-01 + 8.9666209909787054E-01 8.9490719931558438E-01 8.9314973732046177E-01 + 8.9138966547777565E-01 8.8962693622740796E-01 8.8786150208122949E-01 + 8.8609331562059623E-01 8.8432232949390810E-01 8.8254849641429534E-01 + 8.8077176915739264E-01 8.7899210055917465E-01 8.7720944351390695E-01 + 8.7542375097217429E-01 8.7363497593903550E-01 8.7184307147218243E-01 + 8.7004799068026661E-01 8.6824968672129288E-01 8.6644811280106182E-01 + 8.6464322217177036E-01 8.6283496813061888E-01 8.6102330401855176E-01 + 8.5920818321909498E-01 8.5738955915722459E-01 8.5556738529837295E-01 + 8.5374161514748081E-01 8.5191220224819630E-01 8.5007910018206234E-01 + 8.4824226256786484E-01 8.4640164306103916E-01 8.4455719535317741E-01 + 8.4270887317157306E-01 8.4085663027890789E-01 8.3900042047298862E-01 + 8.3714019758658464E-01 8.3527591548732993E-01 8.3340752807772756E-01 + 8.3153498929525194E-01 8.2965825311248076E-01 8.2777727353738773E-01 + 8.2589200461364398E-01 8.2400240042109185E-01 8.2210841507621213E-01 + 8.2021000273274680E-01 8.1830711758236951E-01 8.1639971385548149E-01 + 8.1448774582203332E-01 8.1257116779251226E-01 8.1064993411895581E-01 + 8.0872399919606086E-01 8.0679331746243410E-01 8.0485784340187272E-01 + 8.0291753154475543E-01 8.0097233646953958E-01 7.9902221280431751E-01 + 7.9706711522851392E-01 7.9510699847460320E-01 7.9314181733001721E-01 + 7.9117152663902979E-01 7.8919608130484786E-01 7.8721543629172896E-01 + 7.8522954662720768E-01 7.8323836740442443E-01 7.8124185378457123E-01 + 7.7923996099938986E-01 7.7723264435380324E-01 7.7521985922865799E-01 + 7.7320156108350369E-01 7.7117770545955600E-01 7.6914824798271220E-01 + 7.6711314436665934E-01 7.6507235041613963E-01 7.6302582203024649E-01 + 7.6097351520591761E-01 7.5891538604144970E-01 7.5685139074016006E-01 + 7.5478148561413294E-01 7.5270562708813749E-01 7.5062377170359396E-01 + 7.4853587612264783E-01 7.4644189713238873E-01 7.4434179164920145E-01 + 7.4223551672315813E-01 7.4012302954258591E-01 7.3800428743875002E-01 + 7.3587924789059800E-01 7.3374786852971263E-01 7.3161010714530350E-01 + 7.2946592168936264E-01 7.2731527028192078E-01 7.2515811121643581E-01 + 7.2299440296531947E-01 7.2082410418557041E-01 7.1864717372453046E-01 + 7.1646357062577659E-01 7.1427325413516174E-01 7.1207618370692816E-01 + 7.0987231901002246E-01 7.0766161993451115E-01 7.0544404659809512E-01 + 7.0321955935283520E-01 7.0098811879191381E-01 6.9874968575666208E-01 + 6.9650422134359646E-01 6.9425168691167882E-01 6.9199204408968151E-01 + 6.8972525478369562E-01 6.8745128118481669E-01 6.8517008577692740E-01 + 6.8288163134464497E-01 6.8058588098143602E-01 6.7828279809784531E-01 + 6.7597234642989978E-01 6.7365449004763067E-01 6.7132919336381025E-01 + 6.6899642114276370E-01 6.6665613850940331E-01 6.6430831095836118E-01 + 6.6195290436332987E-01 6.5958988498651372E-01 6.5721921948828488E-01 + 6.5484087493695731E-01 6.5245481881875600E-01 6.5006101904793623E-01 + 6.4765944397705766E-01 6.4525006240742588E-01 6.4283284359972170E-01 + 6.4040775728477928E-01 6.3797477367452815E-01 6.3553386347310781E-01 + 6.3308499788816996E-01 6.3062814864233041E-01 6.2816328798481080E-01 + 6.2569038870324467E-01 6.2320942413564551E-01 6.2072036818258614E-01 + 6.1822319531952363E-01 6.1571788060930788E-01 6.1320439971488272E-01 + 6.1068272891214803E-01 6.0815284510302403E-01 6.0561472582866316E-01 + 6.0306834928288566E-01 6.0051369432577195E-01 5.9795074049743069E-01 + 5.9537946803197050E-01 5.9279985787167289E-01 5.9021189168128352E-01 + 5.8761555186257908E-01 5.8501082156904760E-01 5.8239768472079156E-01 + 5.7977612601962492E-01 5.7714613096431822E-01 5.7450768586608647E-01 + 5.7186077786421974E-01 5.6920539494193279E-01 5.6654152594238727E-01 + 5.6386916058491732E-01 5.6118828948141386E-01 5.5849890415295700E-01 + 5.5580099704657093E-01 5.5309456155220926E-01 5.5037959201993913E-01 + 5.4765608377726349E-01 5.4492403314669580E-01 5.4218343746346565E-01 + 5.3943429509346763E-01 5.3667660545134577E-01 5.3391036901880573E-01 + 5.3113558736308653E-01 5.2835226315563466E-01 5.2556040019095851E-01 + 5.2276000340566930E-01 5.1995107889768788E-01 5.1713363394566403E-01 + 5.1430767702855751E-01 5.1147321784538913E-01 5.0863026733519268E-01 + 5.0577883769714749E-01 5.0291894241084001E-01 5.0005059625676296E-01 + 4.9717381533693344E-01 4.9428861709571975E-01 4.9139502034080096E-01 + 4.8849304526432258E-01 4.8558271346419857E-01 4.8266404796558143E-01 + 4.7973707324247805E-01 4.7680181523954690E-01 4.7385830139402202E-01 + 4.7090656065780018E-01 4.6794662351966970E-01 4.6497852202769763E-01 + 4.6200228981173147E-01 4.5901796210606327E-01 4.5602557577220448E-01 + 4.5302516932181353E-01 4.5001678293973135E-01 4.4700045850714204E-01 + 4.4397623962485722E-01 4.4094417163670491E-01 4.3790430165302763E-01 + 4.3485667857428573E-01 4.3180135311475804E-01 4.2873837782633722E-01 + 4.2566780712240437E-01 4.2258969730179685E-01 4.1950410657284226E-01 + 4.1641109507746055E-01 4.1331072491534210E-01 4.1020306016817637E-01 + 4.0708816692392485E-01 4.0396611330113946E-01 4.0083696947332836E-01 + 3.9770080769334681E-01 3.9455770231778470E-01 3.9140772983141409E-01 + 3.8825096887160948E-01 3.8508750025275684E-01 3.8191740699069848E-01 + 3.7874077432710662E-01 3.7555768975385001E-01 3.7236824303733329E-01 + 3.6917252624277308E-01 3.6597063375841471E-01 3.6276266231970167E-01 + 3.5954871103333719E-01 3.5632888140129182E-01 3.5310327734467778E-01 + 3.4987200522753958E-01 3.4663517388050730E-01 3.4339289462432149E-01 + 3.4014528129321903E-01 3.3689245025813958E-01 3.3363452044978403E-01 + 3.3037161338148330E-01 3.2710385317186508E-01 3.2383136656730394E-01 + 3.2055428296416744E-01 3.1727273443080450E-01 3.1398685572928442E-01 + 3.1069678433687853E-01 3.0740266046724707E-01 3.0410462709132424E-01 + 3.0080282995790480E-01 2.9749741761388632E-01 2.9418854142415862E-01 + 2.9087635559115527E-01 2.8756101717397925E-01 2.8424268610718556E-01 + 2.8092152521909813E-01 2.7759770024971231E-01 2.7427137986814754E-01 + 2.7094273568961724E-01 2.6761194229190421E-01 2.6427917723134609E-01 + 2.6094462105825350E-01 2.5760845733181070E-01 2.5427087263438158E-01 + 2.5093205658522855E-01 2.4759220185361733E-01 2.4425150417128416E-01 + 2.4091016234423959E-01 2.3756837826389679E-01 2.3422635691749324E-01 + 2.3088430639778207E-01 2.2754243791197490E-01 2.2420096578991441E-01 + 2.2086010749143864E-01 2.1752008361292621E-01 2.1418111789300576E-01 + 2.1084343721736501E-01 2.0750727162268573E-01 2.0417285429965076E-01 + 2.0084042159498314E-01 1.9751021301253729E-01 1.9418247121335921E-01 + 1.9085744201473717E-01 1.8753537438818274E-01 1.8421652045633902E-01 + 1.8090113548876094E-01 1.7758947789657062E-01 1.7428180922593647E-01 + 1.7097839415035965E-01 1.6767950046173458E-01 1.6438539906014768E-01 + 1.6109636394240887E-01 1.5781267218925465E-01 1.5453460395122207E-01 + 1.5126244243314182E-01 1.4799647387723680E-01 1.4473698754479083E-01 + 1.4148427569634711E-01 1.3823863357042812E-01 1.3500035936072816E-01 + 1.3176975419174991E-01 1.2854712209287272E-01 1.2533276997079229E-01 + 1.2212700758033156E-01 1.1893014749357046E-01 1.1574250506727038E-01 + 1.1256439840857271E-01 1.0939614833892741E-01 1.0623807835622248E-01 + 1.0309051459509570E-01 9.9953785785382734E-02 9.6828223208684602E-02 + 9.3714160653016562E-02 9.0611934365507379E-02 8.7521883003129339E-02 + 8.4444347581414628E-02 8.1379671421142899E-02 7.8328200092959183E-02 + 7.5290281359903830E-02 7.2266265117816433E-02 6.9256503333593331E-02 + 6.6261349981265164E-02 6.3281160975873399E-02 6.0316294105112724E-02 + 5.7367108958718965E-02 5.4433966855574729E-02 5.1517230768507213E-02 + 4.8617265246757482E-02 4.5734436336097375E-02 4.2869111496569891E-02 + 4.0021659517837670E-02 3.7192450432116171E-02 3.4381855424673625E-02 + 3.1590246741886312E-02 2.8817997596828116E-02 2.6065482072386091E-02 + 2.3333075021887435E-02 2.0621151967232177E-02 1.7930088994522003E-02 + 1.5260262647181581E-02 1.2612049816569626E-02 9.9858276300804349E-03 + 7.3819733367379847E-03 4.8008641902868810E-03 2.2428773297901209E-03 + -2.9161034225814124E-04 -2.8022222842904320E-03 -5.2885824424794906E-03 + -7.7503153799894035E-03 -1.0187046408643588E-02 -1.2598401722988376E-02 + -1.4984008536726188E-02 -1.7343495221493754E-02 -1.9676491447957207E-02 + -2.1982628329195550E-02 -2.4261538566343038E-02 -2.6512856596462148E-02 + -2.8736218742614075E-02 -3.0931263366101372E-02 -3.3097631020850581E-02 + -3.5234964609906300E-02 -3.7342909544013286E-02 -3.9421113902254321E-02 + -4.1469228594726140E-02 -4.3486907527222618E-02 -4.5473807767908617E-02 + -4.7429589715960327E-02 -4.9353917272151826E-02 -5.1246458011368137E-02 + -5.3106883357025625E-02 -5.4934868757374446E-02 -5.6730093863670950E-02 + -5.8492242710185605E-02 -6.0221003896028157E-02 -6.1916070768761343E-02 + -6.3577141609766477E-02 -6.5203919821331752E-02 -6.6796114115411559E-02 + -6.8353438704030031E-02 -6.9875613491248670E-02 -7.1362364266672182E-02 + -7.2813422900400299E-02 -7.4228527539371716E-02 -7.5607422805009983E-02 + -7.6949859992100245E-02 -7.8255597268787641E-02 -7.9524399877606539E-02 + -8.0756040337433693E-02 -8.1950298646243480E-02 -8.3106962484547589E-02 + -8.4225827419391011E-02 -8.5306697108762194E-02 -8.6349383506278049E-02 + -8.7353707065995129E-02 -8.8319496947181941E-02 -8.9246591218904436E-02 + -9.0134837064240830E-02 -9.0984090983963622E-02 -9.1794218999507085E-02 + -9.2565096855035583E-02 -9.3296610218434564E-02 -9.3988654881022926E-02 + -9.4641136955802868E-02 -9.5253973074051063E-02 -9.5827090580052843E-02 + -9.6360427723777425E-02 -9.6853933851305266E-02 -9.7307569592786372E-02 + -9.7721307047747064E-02 -9.8095129967533792E-02 -9.8429033934681096E-02 + -9.8723026539012160E-02 -9.8977127550259530E-02 -9.9191369087001297E-02 + -9.9365795781698352E-02 -9.9500464941639000E-02 -9.9595446705566665E-02 + -9.9650824195797585E-02 -9.9666693665601394E-02 -9.9643164641651183E-02 + -9.9580360061320053E-02 -9.9478416404623099E-02 -9.9337483820586187E-02 + -9.9157726247832381E-02 -9.8939321529183361E-02 -9.8682461520052098E-02 + -9.8387352190421329E-02 -9.8054213720211517E-02 -9.7683280587797947E-02 + -9.7274801651508258E-02 -9.6829040223855273E-02 -9.6346274138328150E-02 + -9.5826795808517259E-02 -9.5270912279381337E-02 -9.4678945270452189E-02 + -9.4051231210771108E-02 -9.3388121265368912E-02 -9.2689981353087675E-02 + -9.1957192155555811E-02 -9.1190149117119812E-02 -9.0389262435555728E-02 + -8.9554957043367814E-02 -8.8687672579499263E-02 -8.7787863351276849E-02 + -8.6855998286415714E-02 -8.5892560874924001E-02 -8.4898049100732800E-02 + -8.3872975362902433E-02 -8.2817866386247149E-02 -8.1733263121234703E-02 + -8.0619720633016617E-02 -7.9477807979453308E-02 -7.8308108078011585E-02 + -7.7111217561404793E-02 -7.5887746621865218E-02 -7.4638318843950072E-02 + -7.3363571025763408E-02 -7.2064152988528946E-02 -7.0740727374411616E-02 + -6.9393969432528124E-02 -6.8024566793081359E-02 -6.6633219229564458E-02 + -6.5220638408998804E-02 -6.3787547630167779E-02 -6.2334681549832044E-02 + -6.0862785896921540E-02 -5.9372617174697523E-02 -5.7864942350913322E-02 + -5.6340538535996992E-02 -5.4800192649302915E-02 -5.3244701073481018E-02 + -5.1674869297044630E-02 -5.0091511545213172E-02 -4.8495450399134221E-02 + -4.6887516403594551E-02 -4.5268547663353469E-02 -4.3639389428242269E-02 + -4.2000893667187025E-02 -4.0353918631335139E-02 -3.8699328406477440E-02 + -3.7037992454973155E-02 -3.5370785147404778E-02 -3.3698585284204864E-02 + -3.2022275607515513E-02 -3.0342742303556283E-02 -2.8660874495796802E-02 + -2.6977563729245844E-02 -2.5293703446189180E-02 -2.3610188453727320E-02 + -2.1927914383480938E-02 -2.0247777143856796E-02 -1.8570672365283404E-02 + -1.6897494838848746E-02 -1.5229137948795161E-02 -1.3566493099348235E-02 + -1.1910449136381526E-02 -1.0261891764441105E-02 -8.6217029596816330E-03 + -6.9907603792878862E-03 -5.3699367679819572E-03 -3.7600993622412091E-03 + -2.1621092928745872E-03 -5.7682098662786006E-04 9.9491843249206497E-04 + 2.5522697414665130E-03 4.0944022153669114E-03 5.6204942225801429E-03 + 7.1297338174220433E-03 8.6213193294083293E-03 1.0094459948457179E-02 + 1.1548376305313510E-02 1.2982301046506405E-02 1.4395479403176249E-02 + 1.5787169753144599E-02 1.7156644175635141E-02 1.8503188998099107E-02 + 1.9826105334645728E-02 2.1124709615624508E-02 2.2398334107952576E-02 + 2.3646327425833950E-02 2.4868055031551341E-02 2.6062899726053201E-02 + 2.7230262129083471E-02 2.8369561148622404E-02 2.9480234439401051E-02 + 3.0561738850249293E-02 3.1613550859993247E-02 3.2635167001580374E-02 + 3.3626104274029171E-02 3.4585900541724654E-02 3.5514114920478818E-02 + 3.6410328149670601E-02 3.7274142949680192E-02 3.8105184363736472E-02 + 3.8903100083217595E-02 3.9667560755397478E-02 4.0398260272601891E-02 + 4.1094916041745443E-02 4.1757269233269924E-02 4.2385085008558226E-02 + 4.2978152724996707E-02 4.3536286117960482E-02 4.4059323459109109E-02 + 4.4547127690484307E-02 4.4999586534012988E-02 4.5416612576108073E-02 + 4.5798143327127346E-02 4.6144141255527883E-02 4.6454593796584530E-02 + 4.6729513335578357E-02 4.6968937165389607E-02 4.7172927418435456E-02 + 4.7341570972909836E-02 4.7474979333297682E-02 4.7573288485141987E-02 + 4.7636658724072592E-02 4.7665274459114088E-02 4.7659343990343758E-02 + 4.7619099260981526E-02 4.7544795584062077E-02 4.7436711343869523E-02 + 4.7295147672380772E-02 4.7120428101011934E-02 4.6912898188017207E-02 + 4.6672925121958218E-02 4.6400897301702680E-02 4.6097223893479443E-02 + 4.5762334365558939E-02 4.5396678001186429E-02 4.5000723390434573E-02 + 4.4574957901686023E-02 4.4119887133503649E-02 4.3636034347665532E-02 + 4.3123939884195363E-02 4.2584160559231934E-02 4.2017269046614465E-02 + 4.1423853244090411E-02 4.0804515625063105E-02 4.0159872576823553E-02 + 3.9490553726233647E-02 3.8797201253828843E-02 3.8080469197339976E-02 + 3.7341022745637900E-02 3.6579537524115760E-02 3.5796698872544795E-02 + 3.4993201116435842E-02 3.4169746832962089E-02 3.3327046112495783E-02 + 3.2465815816832264E-02 3.1586778835169436E-02 3.0690663338931546E-02 + 2.9778202036525134E-02 2.8850131429128751E-02 2.7907191068620451E-02 + 2.6950122818760410E-02 2.5979670120750000E-02 2.4996577264297354E-02 + 2.4001588665327415E-02 2.2995448151480719E-02 2.1978898256550330E-02 + 2.0952679525010891E-02 1.9917529827797643E-02 1.8874183690489679E-02 + 1.7823371635051957E-02 1.6765819536279369E-02 1.5702247994075477E-02 + 1.4633371722677485E-02 1.3559898957914809E-02 1.2482530883554012E-02 + 1.1401961077741312E-02 1.0318874980505011E-02 9.2339493832223635E-03 + 8.1478519408923183E-03 7.0612407079882903E-03 5.9747636985966338E-03 + 4.8890584714832049E-03 3.8047517406750706E-03 2.7224590121095486E-03 + 1.6427842468918256E-03 5.6631955172971543E-04 -5.0635510281351996E-04 + -1.5746721354777931E-03 -2.6380765779123105E-03 -3.6960262675093613E-03 + -4.7479920079197763E-03 -5.7934576953305988E-03 -6.8319204081780591E-03 + -7.8628904575651203E-03 -8.8858913952965784E-03 -9.9004599761969830E-03 + -1.0906146071293605E-02 -1.1902512528616228E-02 -1.2889134978836200E-02 + -1.3865601583808595E-02 -1.4831512727345073E-02 -1.5786480649234051E-02 + -1.6730129025658513E-02 -1.7662092501664336E-02 -1.8582016184126325E-02 + -1.9489555106522068E-02 -2.0384373679495867E-02 -2.1266145143215297E-02 + -2.2134551038416043E-02 -2.2989280712208418E-02 -2.3830030871809463E-02 + -2.4656505194219830E-02 -2.5468413992918878E-02 -2.6265473934790701E-02 + -2.7047407793107534E-02 -2.7813944216907308E-02 -2.8564817494620948E-02 + -2.9299767290766766E-02 -3.0018538338563515E-02 -3.0720880077345129E-02 + -3.1406546230391220E-02 -3.2075294324945561E-02 -3.2726885160947038E-02 + -3.3361082238007392E-02 -3.3977651151502426E-02 -3.4576358968673296E-02 + -3.5156973594779761E-02 -3.5719263138042627E-02 -3.6262995280647678E-02 + -3.6787936661660206E-02 -3.7293852276407892E-02 -3.7780504895772248E-02 + -3.8247654507863924E-02 -3.8695057783750264E-02 -3.9122467568230471E-02 + -3.9529632396101924E-02 -3.9916296033938876E-02 -4.0282197047115803E-02 + -4.0627068391624867E-02 -4.0950637030189918E-02 -4.1252623572225380E-02 + -4.1532741937329462E-02 -4.1790699042201333E-02 -4.2026194511113654E-02 + -4.2238920410341919E-02 -4.2428561007195796E-02 -4.2594792554545950E-02 + -4.2737283101934885E-02 -4.2855692334522057E-02 -4.2949671441229499E-02 + -4.3018863013515124E-02 -4.3062900976232610E-02 -4.3081410552011312E-02 + -4.3074008260543709E-02 -4.3040301954084211E-02 -4.2979890890357732E-02 + -4.2892365843956670E-02 -4.2777309257165039E-02 -4.2634295431004846E-02 + -4.2462890757145530E-02 -4.2262653991160984E-02 -4.2033136567464296E-02 + -4.1773882956087922E-02 -4.1484431061323983E-02 -4.1164312662087719E-02 + -4.0813053893711253E-02 -4.0430175770735016E-02 -4.0015194750117153E-02 + -3.9567623334148046E-02 -3.9086970712221808E-02 -3.8572743440492580E-02 + -3.8024446158323351E-02 -3.7441582340318552E-02 -3.6823655082626902E-02 + -3.6170167922098387E-02 -3.5480625686787622E-02 -3.4754535376207485E-02 + -3.3991407069659342E-02 -3.3190754860896197E-02 -3.2352097817308863E-02 + -3.1474960961770639E-02 -3.0558876275227985E-02 -2.9603383718079569E-02 + -2.8608032268354577E-02 -2.7572380974668374E-02 -2.6496000021914129E-02 + -2.5378471807627125E-02 -2.4219392026949185E-02 -2.3018370764110917E-02 + -2.1775033588347620E-02 -2.0489022652165369E-02 -1.9159997789886030E-02 + -1.7787637614409546E-02 -1.6371640610162618E-02 -1.4911726220227087E-02 + -1.3407635925701924E-02 -1.1859134315404101E-02 -1.0266010144096819E-02 + -8.6280773775441830E-03 -6.9451762228054104E-03 -5.2171741423422732E-03 + -3.4439668506941940E-03 -1.6254792926667461E-03 2.3833339778150112E-04 + 2.1474849585440101E-03 4.1019570806011497E-03 6.1016985095959384E-03 + 8.1466241676536894E-03 1.0236614295189534E-02 1.2371513612361719E-02 + 1.4551130499831109E-02 1.6775236198612764E-02 1.9043564029055816E-02 + 2.1355808629397344E-02 2.3711625214886244E-02 2.6110628859173445E-02 + 2.8552393800482623E-02 3.1036452775987308E-02 3.3562296388764581E-02 + 3.6129372512630334E-02 3.8737085741002431E-02 4.1384796886635267E-02 + 4.4071822539552559E-02 4.6797434690716060E-02 4.9560860428887708E-02 + 5.2361281717751097E-02 5.5197835259656776E-02 5.8069612451403491E-02 + 6.0975659436294953E-02 6.3914977255415645E-02 6.6886522099709328E-02 + 6.9889205663113033E-02 7.2921895595773639E-02 7.5983416055300984E-02 + 7.9072548353144492E-02 8.2188031692544794E-02 8.5328563994083603E-02 + 8.8492802804661402E-02 9.1679366285699754E-02 9.4886834276493248E-02 + 9.8113749428849276E-02 1.0135861840944480E-01 1.0461991316663112E-01 + 1.0789607225871442E-01 1.1118550224100958E-01 1.1448657910917459E-01 + 1.1779764979650353E-01 1.2111703372294663E-01 1.2444302439367819E-01 + 1.2777389104503148E-01 1.3110788033556928E-01 1.3444321807999138E-01 + 1.3777811102348697E-01 1.4111074865402878E-01 1.4443930505000943E-01 + 1.4776194076050880E-01 1.5107680471539495E-01 1.5438203616237056E-01 + 1.5767576662801419E-01 1.6095612189981101E-01 1.6422122402611680E-01 + 1.6746919333097388E-01 1.7069815044067413E-01 1.7390621831893774E-01 + 1.7709152430756966E-01 1.8025220216943427E-01 1.8338639413057514E-01 + 1.8649225291827887E-01 1.8956794379185510E-01 1.9261164656287244E-01 + 1.9562155760153574E-01 1.9859589182584722E-01 2.0153288467012379E-01 + 2.0443079402938924E-01 2.0728790217607238E-01 2.1010251764538401E-01 + 2.1287297708566974E-01 2.1559764706996465E-01 2.1827492586492445E-01 + 2.2090324515327070E-01 2.2348107170584555E-01 2.2600690899939552E-01 + 2.2847929877621509E-01 2.3089682254186369E-01 2.3325810299714392E-01 + 2.3556180540154409E-01 2.3780663886310827E-01 2.3999135755361017E-01 + 2.4211476184520367E-01 2.4417569936641040E-01 2.4617306597552063E-01 + 2.4810580664995527E-01 2.4997291629070784E-01 2.5177344044157413E-01 + 2.5350647592353032E-01 2.5517117138513107E-01 2.5676672777105342E-01 + 2.5829239871043702E-01 2.5974749082861126E-01 2.6113136398587294E-01 + 2.6244343144731508E-01 2.6368315998869496E-01 2.6485006994258659E-01 + 2.6594373519157954E-01 2.6696378311230412E-01 2.6790989447690117E-01 + 2.6878180331680679E-01 2.6957929675217779E-01 2.7030221479213862E-01 + 2.7095045010773955E-01 2.7152394777940186E-01 2.7202270501877379E-01 + 2.7244677086323926E-01 2.7279624583936080E-01 2.7307128158937471E-01 + 2.7327208045259932E-01 2.7339889499126446E-01 2.7345202744797464E-01 + 2.7343182911983388E-01 2.7333869963238905E-01 2.7317308609510610E-01 + 2.7293548211926105E-01 2.7262642667915338E-01 2.7224650279857415E-01 + 2.7179633604670816E-01 2.7127659283130279E-01 2.7068797848205678E-01 + 2.7003123512387034E-01 2.6930713934771094E-01 2.6851649969625502E-01 + 2.6766015399177268E-01 2.6673896654440621E-01 2.6575382528947322E-01 + 2.6470563891185755E-01 2.6359533402313517E-01 2.6242385246202993E-01 + 2.6119214879032215E-01 2.5990118805398560E-01 2.5855194387278235E-01 + 2.5714539691098021E-01 2.5568253376768107E-01 2.5416434630830403E-01 + 2.5259183144020686E-01 2.5096599131650632E-01 2.4928783393427495E-01 + 2.4755837407765263E-01 2.4577863454411300E-01 2.4394964758377463E-01 + 2.4207245647765016E-01 2.4014811718088880E-01 2.3817769996123422E-01 + 2.3616229096957819E-01 2.3410299368953191E-01 2.3200093022339996E-01 + 2.2985724238266875E-01 2.2767309256329996E-01 2.2544966439498512E-01 + 2.2318816316300938E-01 2.2088981600898996E-01 2.1855587192173270E-01 + 2.1618760153420116E-01 2.1378629674503410E-01 2.1135327018453515E-01 + 2.0888985454543116E-01 2.0639740179826449E-01 2.0387728231017815E-01 + 2.0133088388435563E-01 1.9875961073556758E-01 1.9616488241530453E-01 + 1.9354813269795987E-01 1.9091080843749553E-01 1.8825436840206541E-01 + 1.8558028209217933E-01 1.8289002854622133E-01 1.8018509513547282E-01 + 1.7746697634923417E-01 1.7473717256922489E-01 1.7199718883114018E-01 + 1.6924853357006911E-01 1.6649271734546620E-01 1.6373125154049867E-01 + 1.6096564702991556E-01 1.5819741281009661E-01 1.5542805458470252E-01 + 1.5265907329935291E-01 1.4989196361905288E-01 1.4712821234269202E-01 + 1.4436929674985666E-01 1.4161668287644222E-01 1.3887182371710305E-01 + 1.3613615735443058E-01 1.3341110501685291E-01 1.3069806906954048E-01 + 1.2799843094503804E-01 1.2531354902281930E-01 1.2264475646939013E-01 + 1.1999335905287431E-01 1.1736063294808290E-01 1.1474782254983301E-01 + 1.1215613831364542E-01 1.0958675464387767E-01 1.0704080784978552E-01 + 1.0451939418992660E-01 1.0202356802475353E-01 9.9554340096187036E-02 + 9.7112675951468996E-02 9.4699494526716124E-02 9.2315666903053900E-02 + 8.9962015247514571E-02 8.7639311945806056E-02 8.5348278932127528E-02 + 8.3089587220245509E-02 8.0863856635875142E-02 7.8671655748428923E-02 + 7.6513501997932942E-02 7.4389862010871208E-02 7.2301152096903992E-02 + 7.0247738916852320E-02 6.8229940311036824E-02 6.6248026276007579E-02 + 6.4302220076901437E-02 6.2392699482092515E-02 6.0519598106440378E-02 + 5.8683006849285645E-02 5.6882975413351355E-02 5.5119513890879990E-02 + 5.3392594403631630E-02 5.1702152783786412E-02 5.0048090283301865E-02 + 4.8430275299860964E-02 4.6848545108201280E-02 4.5302707586317187E-02 + 4.3792542926768492E-02 4.2317805324105735E-02 4.0878224630218014E-02 + 3.9473507970225578E-02 3.8103341312363530E-02 3.6767390986137106E-02 + 3.5465305143864916E-02 3.4196715161557180E-02 3.2961236975906041E-02 + 3.1758472354979438E-02 3.0588010101012312E-02 2.9449427184466980E-02 + 2.8342289809287356E-02 2.7266154409991167E-02 2.6220568581919419E-02 + 2.5205071946594208E-02 2.4219196954709889E-02 2.3262469629794405E-02 + 2.2334410256023614E-02 2.1434534014041308E-02 2.0562351568932297E-02 + 1.9717369614707794E-02 1.8899091379794581E-02 1.8107017098070076E-02 + 1.7340644449955665E-02 1.6599468977978607E-02 1.5882984481039749E-02 + 1.5190683391388812E-02 1.4522057138020962E-02 1.3876596499873533E-02 + 1.3253791951833301E-02 1.2653134006169187E-02 1.2074113551595876E-02 + 1.1516222191757864E-02 1.0978952584510105E-02 1.0461798782970606E-02 + 9.9642565789367730E-03 9.4858238488995158E-03 9.0260009025595229E-03 + 8.5842908334553495E-03 8.1601998710534151E-03 7.7532377334277635E-03 + 7.3629179794740315E-03 6.9887583594562732E-03 6.6302811625754930E-03 + 6.2870135601749222E-03 5.9584879431550655E-03 5.6442422521601988E-03 + 5.3438202991130217E-03 5.0567720787138724E-03 4.7826540685810678E-03 + 4.5210295167865209E-03 4.2714687156334644E-03 4.0335492606267901E-03 + 3.8068562936994952E-03 3.5909827298773408E-03 3.3855294666868536E-03 + 3.1901055757362433E-03 3.0043284760228944E-03 2.8278240886438124E-03 + 2.6602269727045856E-03 2.5011804423371010E-03 2.3503366648459072E-03 + 2.2073567401061727E-03 2.0719107614328332E-03 1.9436778582295961E-03 + 1.8223462208083276E-03 1.7076131078434214E-03 1.5991848369919486E-03 + 1.4967767592691350E-03 1.4001132178197975E-03 1.3089274917699582E-03 + 1.2229617258795956E-03 1.1419668467471625E-03 1.0657024663398918E-03 + 9.9393677364100429E-04 9.2644641521644612E-04 8.6301636550988113E-04 + 8.0343978767577473E-04 7.4751788575708503E-04 6.9505974900650378E-04 + 6.4588218913895631E-04 5.9980957128836078E-04 5.5667363942404912E-04 + 5.1631333696194274E-04 4.7857462328295108E-04 4.4331028684650725E-04 + 4.1037975556089715E-04 3.7964890504437121E-04 3.5098986538229632E-04 + 3.2428082695596001E-04 2.9940584588840298E-04 2.7625464962196085E-04 + 2.5472244311132859E-04 2.3470971608503455E-04 2.1612205179740560E-04 + 1.9886993766260271E-04 1.8286857813220296E-04 1.6803771014822289E-04 + 1.5430142147456098E-04 1.4158797218162344E-04 1.2982961953151873E-04 + 1.1896244648468629E-04 1.0892619402326248E-04 9.9664097461903606E-05 + 9.1122726893222086E-05 8.3251831892499676E-05 7.6004190584912475E-05 + 6.9335463158178896E-05 6.3204049884308720E-05 5.7570953696009995E-05 + 5.2399647346286579E-05 4.7655945163820490E-05 4.3307879401879784E-05 + 3.9325581164695741E-05 3.5681165882491912E-05 3.2348623294607837E-05 + 2.9303711889401924E-05 2.6523857739822714E-05 2.3988057664664833E-05 + 2.1676786637550936E-05 1.9571909358562666E-05 1.7656595897148271E-05 + 1.5915241309427771E-05 1.4333389128258781E-05 1.2897658620378925E-05 + 1.1595675701570632E-05 1.0416007398058188E-05 9.3480997402120130E-06 + 8.3822189730602301E-06 7.5093959670597454E-06 6.7213737120193344E-06 + 6.0105577769608071E-06 5.3699696190181852E-06 4.7932026251730368E-06 + 4.2743807716758992E-06 3.8081197873758924E-06 3.3894907088441294E-06 + 3.0139857171008406E-06 2.6774861479134493E-06 2.3762325699965098E-06 + 2.1067968279883328E-06 1.8660559497787155E-06 1.6511678205949076E-06 + 1.4595485291960226E-06 1.2888512945596228E-06 1.1369468845481293E-06 + 1.0019054411994585E-06 8.8197963047852247E-07 7.7558903753843732E-07 + 6.8130573175750239E-07 5.9784092902819460E-07 5.2403268196441493E-07 + 4.5883453185401643E-07 4.0130505925025637E-07 3.5059827316673215E-07 + 3.0595478363215530E-07 2.6669369287814707E-07 2.3220516665509745E-07 + 2.0194380233780698E-07 1.7542174072440775E-07 1.5220440816892481E-07 + 1.3190354487515640E-07 1.1417412250979925E-07 9.8708891776556791E-08 + 8.5234929558441095E-08 7.3510096293126490E-08 6.3319825185414507E-08 + 5.4474215827366445E-08 4.6805406698907893E-08 4.0165202823090185E-08 + 3.4422936556489810E-08 2.9463541108618976E-08 2.5185817907088856E-08 + 2.1500880360193048E-08 1.8330757918287088E-08 1.5607145602689153E-08 + 1.3270285358791666E-08 1.1267966701694602E-08 9.5546351610667159E-09 + 8.0905980002574471E-09 6.8413175860961132E-09 5.7767836234996088E-09 + 4.8709562461278902E-09 4.1012726740135700E-09 3.4482108144383589E-09 + 2.8949037963727969E-09 2.4267999945101999E-09 2.0313636192069756E-09 + 1.6978114263053133E-09 1.4168815385840269E-09 1.1806307710882831E-09 + 9.8225721835620466E-10 8.1594519501336761E-10 6.7672992466160463E-10 + 5.6037964765351770E-10 4.6329306831670155E-10 3.8241028846018062E-10 + 3.1513557843866875E-10 2.5927052143921498E-10 2.1295623265432923E-10 + 1.7462350417694339E-10 1.4294986025536881E-10 1.1682262734269171E-10 + 9.5307230432063093E-11 7.7620022663343455E-11 6.3105040206737104E-11 + 5.1214149981391404E-11 4.1490124778454295E-11 3.3552239680856934E-11 + 2.7084036087513875E-11 2.1822945872556942E-11 1.7551508893034492E-11 + 1.4089952795229572E-11 1.1289935399951198E-11 9.0292773597858534E-12 + 7.2075367184216781E-12 5.7422978624831460E-12 4.5660654986113911E-12 + 3.6236700348657376E-12 2.8701043843529107E-12 2.2687239980390689E-12 + 1.7897521026983855E-12 1.4090408731987683E-12 1.1070467870703942E-12 + 8.6798485396477864E-13 6.7913192483877819E-13 5.3025399026134766E-13 + 4.1313638378785638E-13 3.2119921099980556E-13 2.4918321163143101E-13 + 1.9289370454046420E-13 1.4899232695917764E-13 1.1482801590267678E-13 + 8.8300138811673564E-14 6.7747903934835786E-14 5.1861204349665938E-14 + 3.9608903604956599E-14 3.0181282089895257E-14 2.2943953932849471E-14 + 1.7401053737453882E-14 1.3165897142029701E-14 9.9376529352044494E-15 + 7.4828390412865833E-15 5.6206800403276522E-15 4.2115483806409817E-15 + 3.1478621089717098E-15 2.3469346793127961E-15 1.7453721315226023E-15 + 1.2946937616101935E-15 9.5791775050912669E-16 7.0690590771852180E-16 + 5.2030406071697916E-16 3.8194861048098647E-16 2.7963696488187375E-16 + 2.0418125679143889E-16 1.4868201687443270E-16 1.0797217040939398E-16 + 7.8192569052835900E-17 5.6468824763240346E-17 4.0665947081671493E-17 + 2.9202569901322725E-17 2.0910689849556432E-17 1.4930066019142171E-17 + 1.0628942295783608E-17 7.5447021621428789E-18 5.3395733543766870E-18 + 3.7676625362981413E-18 2.6504944102496912E-18 1.8589153558104025E-18 + 1.2997458051826522E-18 9.0596508280493000E-19 6.2951596964054890E-19 + 4.3604584564847498E-19 3.0107530342256909E-19 2.0721599286415996E-19 + 1.4215546330967824E-19 9.7202784045096932E-20 6.6244984637883565E-20 + 4.4996893657282221E-20 3.0461722860764670E-20 2.0552083068387084E-20 + + + -3.9144034414901152E-01 -3.9144034414803419E-01 -3.9144034414507961E-01 + -3.9144034414009121E-01 -3.9144034413301410E-01 -3.9144034412379458E-01 + -3.9144034411237605E-01 -3.9144034409870127E-01 -3.9144034408271133E-01 + -3.9144034406434702E-01 -3.9144034404354699E-01 -3.9144034402024941E-01 + -3.9144034399439070E-01 -3.9144034396590616E-01 -3.9144034393472971E-01 + -3.9144034390079402E-01 -3.9144034386403048E-01 -3.9144034382436826E-01 + -3.9144034378173603E-01 -3.9144034373606101E-01 -3.9144034368726827E-01 + -3.9144034363528218E-01 -3.9144034358002461E-01 -3.9144034352141666E-01 + -3.9144034345937739E-01 -3.9144034339382489E-01 -3.9144034332467448E-01 + -3.9144034325184046E-01 -3.9144034317523602E-01 -3.9144034309477144E-01 + -3.9144034301035546E-01 -3.9144034292189617E-01 -3.9144034282929785E-01 + -3.9144034273246403E-01 -3.9144034263129718E-01 -3.9144034252569604E-01 + -3.9144034241555836E-01 -3.9144034230077912E-01 -3.9144034218125257E-01 + -3.9144034205686989E-01 -3.9144034192751992E-01 -3.9144034179308967E-01 + -3.9144034165346386E-01 -3.9144034150852547E-01 -3.9144034135815398E-01 + -3.9144034120222759E-01 -3.9144034104062209E-01 -3.9144034087320922E-01 + -3.9144034069986050E-01 -3.9144034052044357E-01 -3.9144034033482306E-01 + -3.9144034014286255E-01 -3.9144033994442140E-01 -3.9144033973935788E-01 + -3.9144033952752516E-01 -3.9144033930877509E-01 -3.9144033908295717E-01 + -3.9144033884991697E-01 -3.9144033860949651E-01 -3.9144033836153652E-01 + -3.9144033810587275E-01 -3.9144033784233950E-01 -3.9144033757076652E-01 + -3.9144033729098049E-01 -3.9144033700280517E-01 -3.9144033670606099E-01 + -3.9144033640056408E-01 -3.9144033608612838E-01 -3.9144033576256282E-01 + -3.9144033542967366E-01 -3.9144033508726250E-01 -3.9144033473512801E-01 + -3.9144033437306447E-01 -3.9144033400086231E-01 -3.9144033361830827E-01 + -3.9144033322518446E-01 -3.9144033282126939E-01 -3.9144033240633652E-01 + -3.9144033198015565E-01 -3.9144033154249186E-01 -3.9144033109310639E-01 + -3.9144033063175449E-01 -3.9144033015818802E-01 -3.9144032967215420E-01 + -3.9144032917339372E-01 -3.9144032866164458E-01 -3.9144032813663837E-01 + -3.9144032759810182E-01 -3.9144032704575654E-01 -3.9144032647931887E-01 + -3.9144032589850009E-01 -3.9144032530300549E-01 -3.9144032469253470E-01 + -3.9144032406678197E-01 -3.9144032342543633E-01 -3.9144032276817953E-01 + -3.9144032209468799E-01 -3.9144032140463253E-01 -3.9144032069767642E-01 + -3.9144031997347856E-01 -3.9144031923168954E-01 -3.9144031847195393E-01 + -3.9144031769390986E-01 -3.9144031689718845E-01 -3.9144031608141416E-01 + -3.9144031524620365E-01 -3.9144031439116717E-01 -3.9144031351590713E-01 + -3.9144031262001860E-01 -3.9144031170308907E-01 -3.9144031076469848E-01 + -3.9144030980441819E-01 -3.9144030882181235E-01 -3.9144030781643613E-01 + -3.9144030678783687E-01 -3.9144030573555372E-01 -3.9144030465911622E-01 + -3.9144030355804665E-01 -3.9144030243185579E-01 -3.9144030128004814E-01 + -3.9144030010211700E-01 -3.9144029889754678E-01 -3.9144029766581306E-01 + -3.9144029640637967E-01 -3.9144029511870265E-01 -3.9144029380222606E-01 + -3.9144029245638501E-01 -3.9144029108060269E-01 -3.9144028967429301E-01 + -3.9144028823685778E-01 -3.9144028676768777E-01 -3.9144028526616387E-01 + -3.9144028373165335E-01 -3.9144028216351273E-01 -3.9144028056108676E-01 + -3.9144027892370736E-01 -3.9144027725069513E-01 -3.9144027554135707E-01 + -3.9144027379498714E-01 -3.9144027201086706E-01 -3.9144027018826488E-01 + -3.9144026832643436E-01 -3.9144026642461682E-01 -3.9144026448203839E-01 + -3.9144026249791103E-01 -3.9144026047143254E-01 -3.9144025840178520E-01 + -3.9144025628813739E-01 -3.9144025412964056E-01 -3.9144025192543158E-01 + -3.9144024967463042E-01 -3.9144024737634175E-01 -3.9144024502965324E-01 + -3.9144024263363614E-01 -3.9144024018734325E-01 -3.9144023768981062E-01 + -3.9144023514005760E-01 -3.9144023253708427E-01 -3.9144022987987220E-01 + -3.9144022716738441E-01 -3.9144022439856518E-01 -3.9144022157233904E-01 + -3.9144021868761025E-01 -3.9144021574326388E-01 -3.9144021273816348E-01 + -3.9144020967115239E-01 -3.9144020654105249E-01 -3.9144020334666385E-01 + -3.9144020008676406E-01 -3.9144019676010905E-01 -3.9144019336543195E-01 + -3.9144018990144114E-01 -3.9144018636682382E-01 -3.9144018276024001E-01 + -3.9144017908032813E-01 -3.9144017532569858E-01 -3.9144017149493959E-01 + -3.9144016758661082E-01 -3.9144016359924633E-01 -3.9144015953135375E-01 + -3.9144015538141280E-01 -3.9144015114787584E-01 -3.9144014682916645E-01 + -3.9144014242367953E-01 -3.9144013792978027E-01 -3.9144013334580458E-01 + -3.9144012867005734E-01 -3.9144012390081218E-01 -3.9144011903631243E-01 + -3.9144011407476731E-01 -3.9144010901435550E-01 -3.9144010385322037E-01 + -3.9144009858947271E-01 -3.9144009322118789E-01 -3.9144008774640715E-01 + -3.9144008216313508E-01 -3.9144007646933970E-01 -3.9144007066295272E-01 + -3.9144006474186760E-01 -3.9144005870393961E-01 -3.9144005254698427E-01 + -3.9144004626877749E-01 -3.9144003986705522E-01 -3.9144003333951194E-01 + -3.9144002668379924E-01 -3.9144001989752664E-01 -3.9144001297826053E-01 + -3.9144000592352168E-01 -3.9143999873078617E-01 -3.9143999139748537E-01 + -3.9143998392100160E-01 -3.9143997629867167E-01 -3.9143996852778251E-01 + -3.9143996060557207E-01 -3.9143995252922809E-01 -3.9143994429588752E-01 + -3.9143993590263432E-01 -3.9143992734649957E-01 -3.9143991862446159E-01 + -3.9143990973344261E-01 -3.9143990067030876E-01 -3.9143989143186997E-01 + -3.9143988201487767E-01 -3.9143987241602479E-01 -3.9143986263194308E-01 + -3.9143985265920428E-01 -3.9143984249431751E-01 -3.9143983213372829E-01 + -3.9143982157381768E-01 -3.9143981081090079E-01 -3.9143979984122718E-01 + -3.9143978866097595E-01 -3.9143977726625906E-01 -3.9143976565311711E-01 + -3.9143975381751833E-01 -3.9143974175535928E-01 -3.9143972946246025E-01 + -3.9143971693456731E-01 -3.9143970416734841E-01 -3.9143969115639382E-01 + -3.9143967789721340E-01 -3.9143966438523536E-01 -3.9143965061580560E-01 + -3.9143963658418501E-01 -3.9143962228555024E-01 -3.9143960771498854E-01 + -3.9143959286749935E-01 -3.9143957773799187E-01 -3.9143956232128174E-01 + -3.9143954661209274E-01 -3.9143953060505138E-01 -3.9143951429468771E-01 + -3.9143949767543301E-01 -3.9143948074161694E-01 -3.9143946348746761E-01 + -3.9143944590710827E-01 -3.9143942799455611E-01 -3.9143940974371949E-01 + -3.9143939114839726E-01 -3.9143937220227631E-01 -3.9143935289892878E-01 + -3.9143933323181074E-01 -3.9143931319426056E-01 -3.9143929277949596E-01 + -3.9143927198061168E-01 -3.9143925079057817E-01 -3.9143922920223917E-01 + -3.9143920720830827E-01 -3.9143918480136808E-01 -3.9143916197386774E-01 + -3.9143913871811875E-01 -3.9143911502629519E-01 -3.9143909089042866E-01 + -3.9143906630240799E-01 -3.9143904125397538E-01 -3.9143901573672241E-01 + -3.9143898974209140E-01 -3.9143896326136968E-01 -3.9143893628568560E-01 + -3.9143890880600946E-01 -3.9143888081314782E-01 -3.9143885229774172E-01 + -3.9143882325026313E-01 -3.9143879366101247E-01 -3.9143876352011531E-01 + -3.9143873281751879E-01 -3.9143870154298949E-01 -3.9143866968610869E-01 + -3.9143863723627087E-01 -3.9143860418267873E-01 -3.9143857051434044E-01 + -3.9143853622006608E-01 -3.9143850128846491E-01 -3.9143846570793950E-01 + -3.9143842946668517E-01 -3.9143839255268331E-01 -3.9143835495369950E-01 + -3.9143831665727868E-01 -3.9143827765074179E-01 -3.9143823792118121E-01 + -3.9143819745545710E-01 -3.9143815624019335E-01 -3.9143811426177216E-01 + -3.9143807150633159E-01 -3.9143802795975990E-01 -3.9143798360769100E-01 + -3.9143793843550007E-01 -3.9143789242830063E-01 -3.9143784557093658E-01 + -3.9143779784798027E-01 -3.9143774924372554E-01 -3.9143769974218473E-01 + -3.9143764932708219E-01 -3.9143759798184946E-01 -3.9143754568962008E-01 + -3.9143749243322384E-01 -3.9143743819518279E-01 -3.9143738295770369E-01 + -3.9143732670267450E-01 -3.9143726941165646E-01 -3.9143721106587964E-01 + -3.9143715164623683E-01 -3.9143709113327813E-01 -3.9143702950720205E-01 + -3.9143696674785328E-01 -3.9143690283471289E-01 -3.9143683774689514E-01 + -3.9143677146313582E-01 -3.9143670396179164E-01 -3.9143663522082911E-01 + -3.9143656521781933E-01 -3.9143649392992952E-01 -3.9143642133391843E-01 + -3.9143634740612543E-01 -3.9143627212246668E-01 -3.9143619545842473E-01 + -3.9143611738904205E-01 -3.9143603788891312E-01 -3.9143595693217575E-01 + -3.9143587449250400E-01 -3.9143579054309868E-01 -3.9143570505668029E-01 + -3.9143561800547877E-01 -3.9143552936122566E-01 -3.9143543909514550E-01 + -3.9143534717794598E-01 -3.9143525357980874E-01 -3.9143515827038133E-01 + -3.9143506121876576E-01 -3.9143496239350895E-01 -3.9143486176259457E-01 + -3.9143475929343174E-01 -3.9143465495284391E-01 -3.9143454870706007E-01 + -3.9143444052170290E-01 -3.9143433036177877E-01 -3.9143421819166574E-01 + -3.9143410397510353E-01 -3.9143398767518067E-01 -3.9143386925432422E-01 + -3.9143374867428671E-01 -3.9143362589613628E-01 -3.9143350088024093E-01 + -3.9143337358625874E-01 -3.9143324397312484E-01 -3.9143311199903774E-01 + -3.9143297762144541E-01 -3.9143284079703428E-01 -3.9143270148171394E-01 + -3.9143255963060264E-01 -3.9143241519801553E-01 -3.9143226813744703E-01 + -3.9143211840155939E-01 -3.9143196594216539E-01 -3.9143181071021471E-01 + -3.9143165265577734E-01 -3.9143149172802916E-01 -3.9143132787523438E-01 + -3.9143116104473041E-01 -3.9143099118291114E-01 -3.9143081823520970E-01 + -3.9143064214608098E-01 -3.9143046285898520E-01 -3.9143028031636928E-01 + -3.9143009445964932E-01 -3.9142990522919152E-01 -3.9142971256429343E-01 + -3.9142951640316570E-01 -3.9142931668291192E-01 -3.9142911333950886E-01 + -3.9142890630778687E-01 -3.9142869552140841E-01 -3.9142848091284838E-01 + -3.9142826241337109E-01 -3.9142803995301184E-01 -3.9142781346055083E-01 + -3.9142758286349416E-01 -3.9142734808804946E-01 -3.9142710905910222E-01 + -3.9142686570019358E-01 -3.9142661793349565E-01 -3.9142636567978706E-01 + -3.9142610885842710E-01 -3.9142584738733222E-01 -3.9142558118294923E-01 + -3.9142531016022863E-01 -3.9142503423259839E-01 -3.9142475331193732E-01 + -3.9142446730854547E-01 -3.9142417613111880E-01 -3.9142387968671755E-01 + -3.9142357788073961E-01 -3.9142327061688886E-01 -3.9142295779714542E-01 + -3.9142263932173599E-01 -3.9142231508910036E-01 -3.9142198499586234E-01 + -3.9142164893679371E-01 -3.9142130680478515E-01 -3.9142095849080977E-01 + -3.9142060388388877E-01 -3.9142024287105953E-01 -3.9141987533733658E-01 + -3.9141950116567742E-01 -3.9141912023694547E-01 -3.9141873242987302E-01 + -3.9141833762102135E-01 -3.9141793568474542E-01 -3.9141752649315076E-01 + -3.9141710991605511E-01 -3.9141668582094796E-01 -3.9141625407294822E-01 + -3.9141581453476160E-01 -3.9141536706663810E-01 -3.9141491152632873E-01 + -3.9141444776903861E-01 -3.9141397564738428E-01 -3.9141349501134581E-01 + -3.9141300570822013E-01 -3.9141250758257323E-01 -3.9141200047619101E-01 + -3.9141148422803040E-01 -3.9141095867416720E-01 -3.9141042364774759E-01 + -3.9140987897893226E-01 -3.9140932449484578E-01 -3.9140876001952135E-01 + -3.9140818537384559E-01 -3.9140760037550204E-01 -3.9140700483891505E-01 + -3.9140639857519083E-01 -3.9140578139205773E-01 -3.9140515309380752E-01 + -3.9140451348123201E-01 -3.9140386235156244E-01 -3.9140319949840413E-01 + -3.9140252471167375E-01 -3.9140183777753129E-01 -3.9140113847831492E-01 + -3.9140042659247176E-01 -3.9139970189448808E-01 -3.9139896415481990E-01 + -3.9139821313981971E-01 -3.9139744861166403E-01 -3.9139667032827863E-01 + -3.9139587804326231E-01 -3.9139507150581043E-01 -3.9139425046063547E-01 + -3.9139341464788802E-01 -3.9139256380307436E-01 -3.9139169765697363E-01 + -3.9139081593555408E-01 -3.9138991835988785E-01 -3.9138900464606080E-01 + -3.9138807450508739E-01 -3.9138712764281641E-01 -3.9138616375984192E-01 + -3.9138518255140742E-01 -3.9138418370731110E-01 -3.9138316691180908E-01 + -3.9138213184351550E-01 -3.9138107817530282E-01 -3.9138000557419905E-01 + -3.9137891370128269E-01 -3.9137780221157836E-01 -3.9137667075394672E-01 + -3.9137551897097522E-01 -3.9137434649886804E-01 -3.9137315296732939E-01 + -3.9137193799944864E-01 -3.9137070121158246E-01 -3.9136944221323527E-01 + -3.9136816060693574E-01 -3.9136685598811355E-01 -3.9136552794497159E-01 + -3.9136417605835755E-01 -3.9136279990163442E-01 -3.9136139904054246E-01 + -3.9135997303306885E-01 -3.9135852142930577E-01 -3.9135704377130975E-01 + -3.9135553959296010E-01 -3.9135400841981144E-01 -3.9135244976894645E-01 + -3.9135086314882378E-01 -3.9134924805912469E-01 -3.9134760399059659E-01 + -3.9134593042489341E-01 -3.9134422683441361E-01 -3.9134249268213572E-01 + -3.9134072742144915E-01 -3.9133893049598445E-01 -3.9133710133943755E-01 + -3.9133523937539577E-01 -3.9133334401715358E-01 -3.9133141466753230E-01 + -3.9132945071869146E-01 -3.9132745155194104E-01 -3.9132541653754432E-01 + -3.9132334503452437E-01 -3.9132123639046201E-01 -3.9131908994129266E-01 + -3.9131690501109700E-01 -3.9131468091189320E-01 -3.9131241694341773E-01 + -3.9131011239290936E-01 -3.9130776653488525E-01 -3.9130537863091491E-01 + -3.9130294792938769E-01 -3.9130047366528053E-01 -3.9129795505991732E-01 + -3.9129539132072555E-01 -3.9129278164098885E-01 -3.9129012519959600E-01 + -3.9128742116078291E-01 -3.9128466867387190E-01 -3.9128186687300737E-01 + -3.9127901487688360E-01 -3.9127611178847038E-01 -3.9127315669473200E-01 + -3.9127014866634463E-01 -3.9126708675740274E-01 -3.9126397000512614E-01 + -3.9126079742955899E-01 -3.9125756803326295E-01 -3.9125428080100649E-01 + -3.9125093469944894E-01 -3.9124752867681545E-01 -3.9124406166257192E-01 + -3.9124053256708791E-01 -3.9123694028129968E-01 -3.9123328367636084E-01 + -3.9122956160329297E-01 -3.9122577289262545E-01 -3.9122191635403164E-01 + -3.9121799077595748E-01 -3.9121399492524273E-01 -3.9120992754673761E-01 + -3.9120578736291051E-01 -3.9120157307345022E-01 -3.9119728335486037E-01 + -3.9119291686004654E-01 -3.9118847221789615E-01 -3.9118394803285267E-01 + -3.9117934288447848E-01 -3.9117465532701401E-01 -3.9116988388892560E-01 + -3.9116502707244882E-01 -3.9116008335312047E-01 -3.9115505117930383E-01 + -3.9114992897170603E-01 -3.9114471512288562E-01 -3.9113940799675329E-01 + -3.9113400592805930E-01 -3.9112850722187914E-01 -3.9112291015308209E-01 + -3.9111721296579643E-01 -3.9111141387286330E-01 -3.9110551105527891E-01 + -3.9109950266162835E-01 -3.9109338680751154E-01 -3.9108716157495677E-01 + -3.9108082501182118E-01 -3.9107437513118726E-01 -3.9106780991074208E-01 + -3.9106112729215092E-01 -3.9105432518041550E-01 -3.9104740144322292E-01 + -3.9104035391028513E-01 -3.9103318037266044E-01 -3.9102587858207127E-01 + -3.9101844625020227E-01 -3.9101088104799242E-01 -3.9100318060490835E-01 + -3.9099534250821127E-01 -3.9098736430220726E-01 -3.9097924348748192E-01 + -3.9097097752012810E-01 -3.9096256381095490E-01 -3.9095399972468459E-01 + -3.9094528257913386E-01 -3.9093640964438353E-01 -3.9092737814193002E-01 + -3.9091818524382554E-01 -3.9090882807180027E-01 -3.9089930369636983E-01 + -3.9088960913592846E-01 -3.9087974135582310E-01 -3.9086969726741633E-01 + -3.9085947372712609E-01 -3.9084906753545451E-01 -3.9083847543599654E-01 + -3.9082769411443152E-01 -3.9081672019749769E-01 -3.9080555025194785E-01 + -3.9079418078348849E-01 -3.9078260823569649E-01 -3.9077082898892207E-01 + -3.9075883935916750E-01 -3.9074663559694928E-01 -3.9073421388613960E-01 + -3.9072157034278587E-01 -3.9070870101391308E-01 -3.9069560187630098E-01 + -3.9068226883524337E-01 -3.9066869772328366E-01 -3.9065488429892803E-01 + -3.9064082424533780E-01 -3.9062651316899877E-01 -3.9061194659836374E-01 + -3.9059711998247759E-01 -3.9058202868957126E-01 -3.9056666800563733E-01 + -3.9055103313297623E-01 -3.9053511918872169E-01 -3.9051892120333354E-01 + -3.9050243411907215E-01 -3.9048565278844055E-01 -3.9046857197260160E-01 + -3.9045118633976739E-01 -3.9043349046356157E-01 -3.9041547882134986E-01 + -3.9039714579254625E-01 -3.9037848565688593E-01 -3.9035949259266967E-01 + -3.9034016067497751E-01 -3.9032048387385254E-01 -3.9030045605245023E-01 + -3.9028007096515993E-01 -3.9025932225568966E-01 -3.9023820345511939E-01 + -3.9021670797992308E-01 -3.9019482912995068E-01 -3.9017256008638079E-01 + -3.9014989390963617E-01 -3.9012682353726086E-01 -3.9010334178176514E-01 + -3.9007944132842770E-01 -3.9005511473306648E-01 -3.9003035441976469E-01 + -3.9000515267856228E-01 -3.8997950166310530E-01 -3.8995339338825502E-01 + -3.8992681972765825E-01 -3.8989977241127111E-01 -3.8987224302284584E-01 + -3.8984422299737082E-01 -3.8981570361846807E-01 -3.8978667601574574E-01 + -3.8975713116210492E-01 -3.8972705987100265E-01 -3.8969645279366355E-01 + -3.8966530041625036E-01 -3.8963359305697914E-01 -3.8960132086318983E-01 + -3.8956847380836762E-01 -3.8953504168910880E-01 -3.8950101412204080E-01 + -3.8946638054068472E-01 -3.8943113019226799E-01 -3.8939525213448334E-01 + -3.8935873523218933E-01 -3.8932156815405888E-01 -3.8928373936916894E-01 + -3.8924523714353265E-01 -3.8920604953657478E-01 -3.8916616439754526E-01 + -3.8912556936187515E-01 -3.8908425184746759E-01 -3.8904219905093029E-01 + -3.8899939794374278E-01 -3.8895583526835970E-01 -3.8891149753424969E-01 + -3.8886637101386612E-01 -3.8882044173855218E-01 -3.8877369549437868E-01 + -3.8872611781790956E-01 -3.8867769399189955E-01 -3.8862840904091872E-01 + -3.8857824772690591E-01 -3.8852719454464807E-01 -3.8847523371718384E-01 + -3.8842234919113278E-01 -3.8836852463194521E-01 -3.8831374341907782E-01 + -3.8825798864108740E-01 -3.8820124309064130E-01 -3.8814348925945352E-01 + -3.8808470933313116E-01 -3.8802488518593831E-01 -3.8796399837547935E-01 + -3.8790203013728769E-01 -3.8783896137933416E-01 -3.8777477267644161E-01 + -3.8770944426461129E-01 -3.8764295603525611E-01 -3.8757528752934395E-01 + -3.8750641793144297E-01 -3.8743632606367406E-01 -3.8736499037956651E-01 + -3.8729238895781237E-01 -3.8721849949592668E-01 -3.8714329930380098E-01 + -3.8706676529715933E-01 -3.8698887399090737E-01 -3.8690960149237930E-01 + -3.8682892349447584E-01 -3.8674681526869575E-01 -3.8666325165805920E-01 + -3.8657820706991802E-01 -3.8649165546865577E-01 -3.8640357036827416E-01 + -3.8631392482486393E-01 -3.8622269142896121E-01 -3.8612984229778385E-01 + -3.8603534906734871E-01 -3.8593918288447193E-01 -3.8584131439864189E-01 + -3.8574171375377275E-01 -3.8564035057983154E-01 -3.8553719398433750E-01 + -3.8543221254373855E-01 -3.8532537429464886E-01 -3.8521664672496864E-01 + -3.8510599676486007E-01 -3.8499339077759742E-01 -3.8487879455027729E-01 + -3.8476217328439560E-01 -3.8464349158628530E-01 -3.8452271345741562E-01 + -3.8439980228455006E-01 -3.8427472082976166E-01 -3.8414743122030798E-01 + -3.8401789493835847E-01 -3.8388607281057707E-01 -3.8375192499755656E-01 + -3.8361541098310631E-01 -3.8347648956338926E-01 -3.8333511883590582E-01 + -3.8319125618833105E-01 -3.8304485828719143E-01 -3.8289588106639227E-01 + -3.8274427971558811E-01 -3.8259000866839643E-01 -3.8243302159045139E-01 + -3.8227327136730371E-01 -3.8211071009215691E-01 -3.8194528905344433E-01 + -3.8177695872224449E-01 -3.8160566873953589E-01 -3.8143136790328680E-01 + -3.8125400415538119E-01 -3.8107352456838650E-01 -3.8088987533214591E-01 + -3.8070300174021660E-01 -3.8051284817613440E-01 -3.8031935809951933E-01 + -3.8012247403200666E-01 -3.7992213754302206E-01 -3.7971828923538237E-01 + -3.7951086873073309E-01 -3.7929981465482149E-01 -3.7908506462260139E-01 + -3.7886655522317353E-01 -3.7864422200456238E-01 -3.7841799945832716E-01 + -3.7818782100400800E-01 -3.7795361897341573E-01 -3.7771532459475127E-01 + -3.7747286797657209E-01 -3.7722617809159481E-01 -3.7697518276034531E-01 + -3.7671980863464510E-01 -3.7645998118095347E-01 -3.7619562466354928E-01 + -3.7592666212756737E-01 -3.7565301538188767E-01 -3.7537460498187658E-01 + -3.7509135021199069E-01 -3.7480316906823796E-01 -3.7450997824050453E-01 + -3.7421169309475316E-01 -3.7390822765508702E-01 -3.7359949458569619E-01 + -3.7328540517267933E-01 -3.7296586930575348E-01 -3.7264079545985451E-01 + -3.7231009067662790E-01 -3.7197366054582826E-01 -3.7163140918661830E-01 + -3.7128323922878570E-01 -3.7092905179387731E-01 -3.7056874647626192E-01 + -3.7020222132412600E-01 -3.6982937282041239E-01 -3.6945009586370881E-01 + -3.6906428374909506E-01 -3.6867182814895894E-01 -3.6827261909379305E-01 + -3.6786654495297116E-01 -3.6745349241553232E-01 -3.6703334647097002E-01 + -3.6660599039004205E-01 -3.6617130570561734E-01 -3.6572917219356454E-01 + -3.6527946785370519E-01 -3.6482206889083718E-01 -3.6435684969584747E-01 + -3.6388368282692946E-01 -3.6340243899091962E-01 -3.6291298702477154E-01 + -3.6241519387718046E-01 -3.6190892459038410E-01 -3.6139404228215338E-01 + -3.6087040812799215E-01 -3.6033788134357042E-01 -3.5979631916740834E-01 + -3.5924557684383879E-01 -3.5868550760626600E-01 -3.5811596266074580E-01 + -3.5753679116991482E-01 -3.5694784023729648E-01 -3.5634895489200119E-01 + -3.5573997807386221E-01 -3.5512075061902576E-01 -3.5449111124603255E-01 + -3.5385089654241703E-01 -3.5319994095186191E-01 -3.5253807676193794E-01 + -3.5186513409246534E-01 -3.5118094088453600E-01 -3.5048532289022855E-01 + -3.4977810366306072E-01 -3.4905910454921474E-01 -3.4832814467958317E-01 + -3.4758504096267306E-01 -3.4682960807841445E-01 -3.4606165847292292E-01 + -3.4528100235425901E-01 -3.4448744768923723E-01 -3.4368080020133596E-01 + -3.4286086336975424E-01 -3.4202743842968225E-01 -3.4118032437382956E-01 + -3.4031931795527542E-01 -3.3944421369169619E-01 -3.3855480387103976E-01 + -3.3765087855869885E-01 -3.3673222560625643E-01 -3.3579863066186993E-01 + -3.3484987718235748E-01 -3.3388574644706470E-01 -3.3290601757357990E-01 + -3.3191046753537490E-01 -3.3089887118144978E-01 -3.2987100125805618E-01 + -3.2882662843258753E-01 -3.2776552131971448E-01 -3.2668744650985437E-01 + -3.2559216860005880E-01 -3.2447945022741631E-01 -3.2334905210505321E-01 + -3.2220073306083907E-01 -3.2103425007888214E-01 -3.1984935834391859E-01 + -3.1864581128870290E-01 -3.1742336064449189E-01 -3.1618175649473618E-01 + -3.1492074733208636E-01 -3.1364008011881794E-01 -3.1233950035080121E-01 + -3.1101875212511260E-01 -3.0967757821142006E-01 -3.0831572012725328E-01 + -3.0693291821728275E-01 -3.0552891173672747E-01 -3.0410343893902025E-01 + -3.0265623716785667E-01 -3.0118704295375276E-01 -2.9969559211524549E-01 + -2.9818161986486802E-01 -2.9664486092002884E-01 -2.9508504961893917E-01 + -2.9350192004170922E-01 -2.9189520613676762E-01 -2.9026464185273237E-01 + -2.8860996127587135E-01 -2.8693089877329964E-01 -2.8522718914204831E-01 + -2.8349856776414212E-01 -2.8174477076783649E-01 -2.7996553519514600E-01 + -2.7816059917580122E-01 -2.7632970210778701E-01 -2.7447258484458154E-01 + -2.7258898988924962E-01 -2.7067866159550813E-01 -2.6874134637591546E-01 + -2.6677679291729778E-01 -2.6478475240354771E-01 -2.6276497874592109E-01 + -2.6071722882094728E-01 -2.5864126271606758E-01 -2.5653684398312621E-01 + -2.5440373989979603E-01 -2.5224172173906617E-01 -2.5005056504685974E-01 + -2.4783004992789021E-01 -2.4557996133981741E-01 -2.4330008939578138E-01 + -2.4099022967538053E-01 -2.3865018354412662E-01 -2.3627975848143945E-01 + -2.3387876841719041E-01 -2.3144703407682182E-01 -2.2898438333504187E-01 + -2.2649065157807621E-01 -2.2396568207446121E-01 -2.2140932635432403E-01 + -2.1882144459708813E-01 -2.1620190602753214E-01 -2.1355058932009227E-01 + -2.1086738301129154E-01 -2.0815218592014845E-01 -2.0540490757640262E-01 + -2.0262546865635997E-01 -1.9981380142613644E-01 -1.9696985019206181E-01 + -1.9409357175795766E-01 -1.9118493588898516E-01 -1.8824392578173041E-01 + -1.8527053854014119E-01 -1.8226478565691506E-01 -1.7922669349988901E-01 + -1.7615630380295080E-01 -1.7305367416093653E-01 -1.6991887852795445E-01 + -1.6675200771852475E-01 -1.6355316991087038E-01 -1.6032249115165997E-01 + -1.5706011586144547E-01 -1.5376620733999471E-01 -1.5044094827065674E-01 + -1.4708454122284573E-01 -1.4369720915168768E-01 -1.4027919589379059E-01 + -1.3683076665806054E-01 -1.3335220851042232E-01 -1.2984383085122991E-01 + -1.2630596588410231E-01 -1.2273896907484308E-01 -1.1914321959905497E-01 + -1.1551912077696946E-01 -1.1186710049395877E-01 -1.0818761160513801E-01 + -1.0448113232236844E-01 -1.0074816658193071E-01 -9.6989244391065293E-02 + -9.3204922151481795E-02 -8.9395782957908149E-02 -8.5562436869655423E-02 + -8.1705521153128402E-02 -7.7825700493121097E-02 -7.3923667170702784E-02 + -7.0000141205424901E-02 -6.6055870459517343E-02 -6.2091630701701747E-02 + -5.8108225628185885E-02 -5.4106486838377432E-02 -5.0087273762785212E-02 + -4.6051473540568946E-02 -4.2000000844166052E-02 -3.7933797648383616E-02 + -3.3853832941352614E-02 -2.9761102374741735E-02 -2.5656627850604311E-02 + -2.1541457042288239E-02 -1.7416662846833790E-02 -1.3283342766363409E-02 + -9.1426182159785666E-03 -4.9956337557929440E-03 -8.4355624480364141E-04 + 3.3124260856086090E-03 7.4711046406022111E-03 1.1631251555153238E-02 + 1.5791620873433280E-02 1.9950949815864323E-02 2.4107960135191526E-02 + 2.8261359562671673E-02 3.2409843345230317E-02 3.6552095874114850E-02 + 4.0686792405245434E-02 4.4812600871118241E-02 4.8928183783701493E-02 + 5.3032200227342570E-02 5.7123307940220379E-02 6.1200165482393196E-02 + 6.5261434487923972E-02 6.9305781997968371E-02 7.3331882871108284E-02 + 7.7338422266509138E-02 8.1324098194757888E-02 8.5287624130494330E-02 + 8.9227731680109570E-02 9.3143173296935125E-02 9.7032725035432241E-02 + 1.0089518933494741E-01 1.0472939782258077E-01 1.0853421412367037E-01 + 1.1230853666731253E-01 1.1605130147318002E-01 1.1976148490474066E-01 + 1.2343810637273542E-01 1.2708023097154619E-01 1.3068697202977822E-01 + 1.3425749355505676E-01 1.3779101255172477E-01 1.4128680118874545E-01 + 1.4474418879374604E-01 1.4816256364778285E-01 1.5154137455402222E-01 + 1.5488013215218457E-01 1.5817840994926730E-01 1.6143584503577479E-01 + 1.6465213845543930E-01 1.6782705519522301E-01 1.7096042376131806E-01 + 1.7405213530583197E-01 1.7710214226796281E-01 1.8011045649271665E-01 + 1.8307714678961029E-01 1.8600233589337717E-01 1.8888619678846691E-01 + 1.9172894835914123E-01 1.9453085032721171E-01 1.9729219744000104E-01 + 2.0001331287197605E-01 2.0269454080466731E-01 2.0533623815107616E-01 + 2.0793876539272946E-01 2.1050247649997408E-01 2.1302770790898903E-01 + 2.1551476653239621E-01 2.1796391678432639E-01 2.2037536660531942E-01 + 2.2274925247760971E-01 2.2508562342717128E-01 2.2738442401538722E-01 + 2.2964547633045634E-01 2.3186846099660480E-01 2.3405289722794725E-01 + 2.3619812196338236E-01 2.3830326812928360E-01 2.4036724208796936E-01 + 2.4238870034196949E-01 2.4436602557701653E-01 2.4629730214041620E-01 + 2.4818029106601860E-01 2.5001240477236358E-01 2.5179068157669715E-01 + 2.5351176018440541E-01 2.5517185433089817E-01 2.5676672777105342E-01 + 2.5829239871043702E-01 2.5974749082861126E-01 2.6113136398587294E-01 + 2.6244343144731508E-01 2.6368315998869496E-01 2.6485006994258659E-01 + 2.6594373519157954E-01 2.6696378311230412E-01 2.6790989447690117E-01 + 2.6878180331680679E-01 2.6957929675217779E-01 2.7030221479213862E-01 + 2.7095045010773955E-01 2.7152394777940186E-01 2.7202270501877379E-01 + 2.7244677086323926E-01 2.7279624583936080E-01 2.7307128158937471E-01 + 2.7327208045259932E-01 2.7339889499126446E-01 2.7345202744797464E-01 + 2.7343182911983388E-01 2.7333869963238905E-01 2.7317308609510610E-01 + 2.7293548211926105E-01 2.7262642667915338E-01 2.7224650279857415E-01 + 2.7179633604670816E-01 2.7127659283130279E-01 2.7068797848205678E-01 + 2.7003123512387034E-01 2.6930713934771094E-01 2.6851649969625502E-01 + 2.6766015399177268E-01 2.6673896654440621E-01 2.6575382528947322E-01 + 2.6470563891185755E-01 2.6359533402313517E-01 2.6242385246202993E-01 + 2.6119214879032215E-01 2.5990118805398560E-01 2.5855194387278235E-01 + 2.5714539691098021E-01 2.5568253376768107E-01 2.5416434630830403E-01 + 2.5259183144020686E-01 2.5096599131650632E-01 2.4928783393427495E-01 + 2.4755837407765263E-01 2.4577863454411300E-01 2.4394964758377463E-01 + 2.4207245647765016E-01 2.4014811718088880E-01 2.3817769996123422E-01 + 2.3616229096957819E-01 2.3410299368953191E-01 2.3200093022339996E-01 + 2.2985724238266875E-01 2.2767309256329996E-01 2.2544966439498512E-01 + 2.2318816316300938E-01 2.2088981600898996E-01 2.1855587192173270E-01 + 2.1618760153420116E-01 2.1378629674503410E-01 2.1135327018453515E-01 + 2.0888985454543116E-01 2.0639740179826449E-01 2.0387728231017815E-01 + 2.0133088388435563E-01 1.9875961073556758E-01 1.9616488241530453E-01 + 1.9354813269795987E-01 1.9091080843749553E-01 1.8825436840206541E-01 + 1.8558028209217933E-01 1.8289002854622133E-01 1.8018509513547282E-01 + 1.7746697634923417E-01 1.7473717256922489E-01 1.7199718883114018E-01 + 1.6924853357006911E-01 1.6649271734546620E-01 1.6373125154049867E-01 + 1.6096564702991556E-01 1.5819741281009661E-01 1.5542805458470252E-01 + 1.5265907329935291E-01 1.4989196361905288E-01 1.4712821234269202E-01 + 1.4436929674985666E-01 1.4161668287644222E-01 1.3887182371710305E-01 + 1.3613615735443058E-01 1.3341110501685291E-01 1.3069806906954048E-01 + 1.2799843094503804E-01 1.2531354902281930E-01 1.2264475646939013E-01 + 1.1999335905287431E-01 1.1736063294808290E-01 1.1474782254983301E-01 + 1.1215613831364542E-01 1.0958675464387767E-01 1.0704080784978552E-01 + 1.0451939418992660E-01 1.0202356802475353E-01 9.9554340096187036E-02 + 9.7112675951468996E-02 9.4699494526716124E-02 9.2315666903053900E-02 + 8.9962015247514571E-02 8.7639311945806056E-02 8.5348278932127528E-02 + 8.3089587220245509E-02 8.0863856635875142E-02 7.8671655748428923E-02 + 7.6513501997932942E-02 7.4389862010871208E-02 7.2301152096903992E-02 + 7.0247738916852320E-02 6.8229940311036824E-02 6.6248026276007579E-02 + 6.4302220076901437E-02 6.2392699482092515E-02 6.0519598106440378E-02 + 5.8683006849285645E-02 5.6882975413351355E-02 5.5119513890879990E-02 + 5.3392594403631630E-02 5.1702152783786412E-02 5.0048090283301865E-02 + 4.8430275299860964E-02 4.6848545108201280E-02 4.5302707586317187E-02 + 4.3792542926768492E-02 4.2317805324105735E-02 4.0878224630218014E-02 + 3.9473507970225578E-02 3.8103341312363530E-02 3.6767390986137106E-02 + 3.5465305143864916E-02 3.4196715161557180E-02 3.2961236975906041E-02 + 3.1758472354979438E-02 3.0588010101012312E-02 2.9449427184466980E-02 + 2.8342289809287356E-02 2.7266154409991167E-02 2.6220568581919419E-02 + 2.5205071946594208E-02 2.4219196954709889E-02 2.3262469629794405E-02 + 2.2334410256023614E-02 2.1434534014041308E-02 2.0562351568932297E-02 + 1.9717369614707794E-02 1.8899091379794581E-02 1.8107017098070076E-02 + 1.7340644449955665E-02 1.6599468977978607E-02 1.5882984481039749E-02 + 1.5190683391388812E-02 1.4522057138020962E-02 1.3876596499873533E-02 + 1.3253791951833301E-02 1.2653134006169187E-02 1.2074113551595876E-02 + 1.1516222191757864E-02 1.0978952584510105E-02 1.0461798782970606E-02 + 9.9642565789367730E-03 9.4858238488995158E-03 9.0260009025595229E-03 + 8.5842908334553495E-03 8.1601998710534151E-03 7.7532377334277635E-03 + 7.3629179794740315E-03 6.9887583594562732E-03 6.6302811625754930E-03 + 6.2870135601749222E-03 5.9584879431550655E-03 5.6442422521601988E-03 + 5.3438202991130217E-03 5.0567720787138724E-03 4.7826540685810678E-03 + 4.5210295167865209E-03 4.2714687156334644E-03 4.0335492606267901E-03 + 3.8068562936994952E-03 3.5909827298773408E-03 3.3855294666868536E-03 + 3.1901055757362433E-03 3.0043284760228944E-03 2.8278240886438124E-03 + 2.6602269727045856E-03 2.5011804423371010E-03 2.3503366648459072E-03 + 2.2073567401061727E-03 2.0719107614328332E-03 1.9436778582295961E-03 + 1.8223462208083276E-03 1.7076131078434214E-03 1.5991848369919486E-03 + 1.4967767592691350E-03 1.4001132178197975E-03 1.3089274917699582E-03 + 1.2229617258795956E-03 1.1419668467471625E-03 1.0657024663398918E-03 + 9.9393677364100429E-04 9.2644641521644612E-04 8.6301636550988113E-04 + 8.0343978767577473E-04 7.4751788575708503E-04 6.9505974900650378E-04 + 6.4588218913895631E-04 5.9980957128836078E-04 5.5667363942404912E-04 + 5.1631333696194274E-04 4.7857462328295108E-04 4.4331028684650725E-04 + 4.1037975556089715E-04 3.7964890504437121E-04 3.5098986538229632E-04 + 3.2428082695596001E-04 2.9940584588840298E-04 2.7625464962196085E-04 + 2.5472244311132859E-04 2.3470971608503455E-04 2.1612205179740560E-04 + 1.9886993766260271E-04 1.8286857813220296E-04 1.6803771014822289E-04 + 1.5430142147456098E-04 1.4158797218162344E-04 1.2982961953151873E-04 + 1.1896244648468629E-04 1.0892619402326248E-04 9.9664097461903606E-05 + 9.1122726893222086E-05 8.3251831892499676E-05 7.6004190584912475E-05 + 6.9335463158178896E-05 6.3204049884308720E-05 5.7570953696009995E-05 + 5.2399647346286579E-05 4.7655945163820490E-05 4.3307879401879784E-05 + 3.9325581164695741E-05 3.5681165882491912E-05 3.2348623294607837E-05 + 2.9303711889401924E-05 2.6523857739822714E-05 2.3988057664664833E-05 + 2.1676786637550936E-05 1.9571909358562666E-05 1.7656595897148271E-05 + 1.5915241309427771E-05 1.4333389128258781E-05 1.2897658620378925E-05 + 1.1595675701570632E-05 1.0416007398058188E-05 9.3480997402120130E-06 + 8.3822189730602301E-06 7.5093959670597454E-06 6.7213737120193344E-06 + 6.0105577769608071E-06 5.3699696190181852E-06 4.7932026251730368E-06 + 4.2743807716758992E-06 3.8081197873758924E-06 3.3894907088441294E-06 + 3.0139857171008406E-06 2.6774861479134493E-06 2.3762325699965098E-06 + 2.1067968279883328E-06 1.8660559497787155E-06 1.6511678205949076E-06 + 1.4595485291960226E-06 1.2888512945596228E-06 1.1369468845481293E-06 + 1.0019054411994585E-06 8.8197963047852247E-07 7.7558903753843732E-07 + 6.8130573175750239E-07 5.9784092902819460E-07 5.2403268196441493E-07 + 4.5883453185401643E-07 4.0130505925025637E-07 3.5059827316673215E-07 + 3.0595478363215530E-07 2.6669369287814707E-07 2.3220516665509745E-07 + 2.0194380233780698E-07 1.7542174072440775E-07 1.5220440816892481E-07 + 1.3190354487515640E-07 1.1417412250979925E-07 9.8708891776556791E-08 + 8.5234929558441095E-08 7.3510096293126490E-08 6.3319825185414507E-08 + 5.4474215827366445E-08 4.6805406698907893E-08 4.0165202823090185E-08 + 3.4422936556489810E-08 2.9463541108618976E-08 2.5185817907088856E-08 + 2.1500880360193048E-08 1.8330757918287088E-08 1.5607145602689153E-08 + 1.3270285358791666E-08 1.1267966701694602E-08 9.5546351610667159E-09 + 8.0905980002574471E-09 6.8413175860961132E-09 5.7767836234996088E-09 + 4.8709562461278902E-09 4.1012726740135700E-09 3.4482108144383589E-09 + 2.8949037963727969E-09 2.4267999945101999E-09 2.0313636192069756E-09 + 1.6978114263053133E-09 1.4168815385840269E-09 1.1806307710882831E-09 + 9.8225721835620466E-10 8.1594519501336761E-10 6.7672992466160463E-10 + 5.6037964765351770E-10 4.6329306831670155E-10 3.8241028846018062E-10 + 3.1513557843866875E-10 2.5927052143921498E-10 2.1295623265432923E-10 + 1.7462350417694339E-10 1.4294986025536881E-10 1.1682262734269171E-10 + 9.5307230432063093E-11 7.7620022663343455E-11 6.3105040206737104E-11 + 5.1214149981391404E-11 4.1490124778454295E-11 3.3552239680856934E-11 + 2.7084036087513875E-11 2.1822945872556942E-11 1.7551508893034492E-11 + 1.4089952795229572E-11 1.1289935399951198E-11 9.0292773597858534E-12 + 7.2075367184216781E-12 5.7422978624831460E-12 4.5660654986113911E-12 + 3.6236700348657376E-12 2.8701043843529107E-12 2.2687239980390689E-12 + 1.7897521026983855E-12 1.4090408731987683E-12 1.1070467870703942E-12 + 8.6798485396477864E-13 6.7913192483877819E-13 5.3025399026134766E-13 + 4.1313638378785638E-13 3.2119921099980556E-13 2.4918321163143101E-13 + 1.9289370454046420E-13 1.4899232695917764E-13 1.1482801590267678E-13 + 8.8300138811673564E-14 6.7747903934835786E-14 5.1861204349665938E-14 + 3.9608903604956599E-14 3.0181282089895257E-14 2.2943953932849471E-14 + 1.7401053737453882E-14 1.3165897142029701E-14 9.9376529352044494E-15 + 7.4828390412865833E-15 5.6206800403276522E-15 4.2115483806409817E-15 + 3.1478621089717098E-15 2.3469346793127961E-15 1.7453721315226023E-15 + 1.2946937616101935E-15 9.5791775050912669E-16 7.0690590771852180E-16 + 5.2030406071697916E-16 3.8194861048098647E-16 2.7963696488187375E-16 + 2.0418125679143889E-16 1.4868201687443270E-16 1.0797217040939398E-16 + 7.8192569052835900E-17 5.6468824763240346E-17 4.0665947081671493E-17 + 2.9202569901322725E-17 2.0910689849556432E-17 1.4930066019142171E-17 + 1.0628942295783608E-17 7.5447021621428789E-18 5.3395733543766870E-18 + 3.7676625362981413E-18 2.6504944102496912E-18 1.8589153558104025E-18 + 1.2997458051826522E-18 9.0596508280493000E-19 6.2951596964054890E-19 + 4.3604584564847498E-19 3.0107530342256909E-19 2.0721599286415996E-19 + 1.4215546330967824E-19 9.7202784045096932E-20 6.6244984637883565E-20 + 4.4996893657282221E-20 3.0461722860764670E-20 2.0552083068387084E-20 + + + -1.9971148812363889E+01 -1.9971148812301255E+01 -1.9971148812110822E+01 + -1.9971148811789270E+01 -1.9971148811333151E+01 -1.9971148810738892E+01 + -1.9971148810002909E+01 -1.9971148809121438E+01 -1.9971148808090788E+01 + -1.9971148806907092E+01 -1.9971148805566415E+01 -1.9971148804064725E+01 + -1.9971148802397973E+01 -1.9971148800561991E+01 -1.9971148798552463E+01 + -1.9971148796365082E+01 -1.9971148793995422E+01 -1.9971148791438956E+01 + -1.9971148788691032E+01 -1.9971148785747008E+01 -1.9971148782602004E+01 + -1.9971148779251159E+01 -1.9971148775689485E+01 -1.9971148771911839E+01 + -1.9971148767913014E+01 -1.9971148763687729E+01 -1.9971148759230566E+01 + -1.9971148754535974E+01 -1.9971148749598335E+01 -1.9971148744411874E+01 + -1.9971148738970754E+01 -1.9971148733268961E+01 -1.9971148727300410E+01 + -1.9971148721058942E+01 -1.9971148714538046E+01 -1.9971148707731402E+01 + -1.9971148700632313E+01 -1.9971148693234081E+01 -1.9971148685529851E+01 + -1.9971148677512602E+01 -1.9971148669175175E+01 -1.9971148660510305E+01 + -1.9971148651510578E+01 -1.9971148642168369E+01 -1.9971148632476002E+01 + -1.9971148622425567E+01 -1.9971148612009042E+01 -1.9971148601218260E+01 + -1.9971148590044834E+01 -1.9971148578480278E+01 -1.9971148566515875E+01 + -1.9971148554142800E+01 -1.9971148541352047E+01 -1.9971148528134385E+01 + -1.9971148514480451E+01 -1.9971148500380654E+01 -1.9971148485825285E+01 + -1.9971148470804351E+01 -1.9971148455307770E+01 -1.9971148439325180E+01 + -1.9971148422846049E+01 -1.9971148405859680E+01 -1.9971148388355097E+01 + -1.9971148370321131E+01 -1.9971148351746447E+01 -1.9971148332619407E+01 + -1.9971148312928229E+01 -1.9971148292660857E+01 -1.9971148271805038E+01 + -1.9971148250348229E+01 -1.9971148228277677E+01 -1.9971148205580381E+01 + -1.9971148182243144E+01 -1.9971148158252387E+01 -1.9971148133594387E+01 + -1.9971148108255104E+01 -1.9971148082220203E+01 -1.9971148055475169E+01 + -1.9971148028005157E+01 -1.9971147999794969E+01 -1.9971147970829261E+01 + -1.9971147941092227E+01 -1.9971147910567911E+01 -1.9971147879239950E+01 + -1.9971147847091732E+01 -1.9971147814106271E+01 -1.9971147780266300E+01 + -1.9971147745554244E+01 -1.9971147709952131E+01 -1.9971147673441699E+01 + -1.9971147636004275E+01 -1.9971147597620931E+01 -1.9971147558272257E+01 + -1.9971147517938583E+01 -1.9971147476599807E+01 -1.9971147434235480E+01 + -1.9971147390824733E+01 -1.9971147346346331E+01 -1.9971147300778597E+01 + -1.9971147254099460E+01 -1.9971147206286503E+01 -1.9971147157316782E+01 + -1.9971147107166960E+01 -1.9971147055813269E+01 -1.9971147003231486E+01 + -1.9971146949396942E+01 -1.9971146894284470E+01 -1.9971146837868478E+01 + -1.9971146780122851E+01 -1.9971146721020975E+01 -1.9971146660535808E+01 + -1.9971146598639749E+01 -1.9971146535304602E+01 -1.9971146470501804E+01 + -1.9971146404202141E+01 -1.9971146336375885E+01 -1.9971146266992761E+01 + -1.9971146196021866E+01 -1.9971146123431833E+01 -1.9971146049190605E+01 + -1.9971145973265564E+01 -1.9971145895623472E+01 -1.9971145816230479E+01 + -1.9971145735052104E+01 -1.9971145652053249E+01 -1.9971145567198075E+01 + -1.9971145480450168E+01 -1.9971145391772371E+01 -1.9971145301126892E+01 + -1.9971145208475146E+01 -1.9971145113777943E+01 -1.9971145016995283E+01 + -1.9971144918086463E+01 -1.9971144817009947E+01 -1.9971144713723550E+01 + -1.9971144608184218E+01 -1.9971144500348057E+01 -1.9971144390170476E+01 + -1.9971144277605998E+01 -1.9971144162608262E+01 -1.9971144045130121E+01 + -1.9971143925123496E+01 -1.9971143802539416E+01 -1.9971143677328030E+01 + -1.9971143549438576E+01 -1.9971143418819327E+01 -1.9971143285417607E+01 + -1.9971143149179742E+01 -1.9971143010051090E+01 -1.9971142867975963E+01 + -1.9971142722897753E+01 -1.9971142574758627E+01 -1.9971142423499835E+01 + -1.9971142269061456E+01 -1.9971142111382523E+01 -1.9971141950400927E+01 + -1.9971141786053366E+01 -1.9971141618275379E+01 -1.9971141447001401E+01 + -1.9971141272164562E+01 -1.9971141093696794E+01 -1.9971140911528785E+01 + -1.9971140725589951E+01 -1.9971140535808342E+01 -1.9971140342110782E+01 + -1.9971140144422680E+01 -1.9971139942668106E+01 -1.9971139736769715E+01 + -1.9971139526648759E+01 -1.9971139312224985E+01 -1.9971139093416753E+01 + -1.9971138870140862E+01 -1.9971138642312564E+01 -1.9971138409845661E+01 + -1.9971138172652239E+01 -1.9971137930642875E+01 -1.9971137683726418E+01 + -1.9971137431810106E+01 -1.9971137174799484E+01 -1.9971136912598315E+01 + -1.9971136645108594E+01 -1.9971136372230578E+01 -1.9971136093862700E+01 + -1.9971135809901440E+01 -1.9971135520241482E+01 -1.9971135224775516E+01 + -1.9971134923394285E+01 -1.9971134615986546E+01 -1.9971134302439033E+01 + -1.9971133982636371E+01 -1.9971133656461095E+01 -1.9971133323793598E+01 + -1.9971132984512064E+01 -1.9971132638492509E+01 -1.9971132285608569E+01 + -1.9971131925731662E+01 -1.9971131558730885E+01 -1.9971131184472871E+01 + -1.9971130802821818E+01 -1.9971130413639500E+01 -1.9971130016785143E+01 + -1.9971129612115412E+01 -1.9971129199484299E+01 -1.9971128778743253E+01 + -1.9971128349740848E+01 -1.9971127912323094E+01 -1.9971127466333019E+01 + -1.9971127011610907E+01 -1.9971126547994078E+01 -1.9971126075316885E+01 + -1.9971125593410697E+01 -1.9971125102103759E+01 -1.9971124601221291E+01 + -1.9971124090585203E+01 -1.9971123570014267E+01 -1.9971123039323878E+01 + -1.9971122498326132E+01 -1.9971121946829705E+01 -1.9971121384639755E+01 + -1.9971120811557903E+01 -1.9971120227382183E+01 -1.9971119631906962E+01 + -1.9971119024922857E+01 -1.9971118406216661E+01 -1.9971117775571368E+01 + -1.9971117132765944E+01 -1.9971116477575372E+01 -1.9971115809770556E+01 + -1.9971115129118214E+01 -1.9971114435380901E+01 -1.9971113728316706E+01 + -1.9971113007679605E+01 -1.9971112273218790E+01 -1.9971111524679149E+01 + -1.9971110761800766E+01 -1.9971109984319142E+01 -1.9971109191964896E+01 + -1.9971108384463836E+01 -1.9971107561536730E+01 -1.9971106722899343E+01 + -1.9971105868262239E+01 -1.9971104997330723E+01 -1.9971104109804863E+01 + -1.9971103205379208E+01 -1.9971102283742773E+01 -1.9971101344578962E+01 + -1.9971100387565510E+01 -1.9971099412374151E+01 -1.9971098418670856E+01 + -1.9971097406115433E+01 -1.9971096374361561E+01 -1.9971095323056705E+01 + -1.9971094251841865E+01 -1.9971093160351636E+01 -1.9971092048213926E+01 + -1.9971090915049956E+01 -1.9971089760474054E+01 -1.9971088584093661E+01 + -1.9971087385509037E+01 -1.9971086164313203E+01 -1.9971084920091933E+01 + -1.9971083652423388E+01 -1.9971082360878203E+01 -1.9971081045019183E+01 + -1.9971079704401273E+01 -1.9971078338571392E+01 -1.9971076947068216E+01 + -1.9971075529422137E+01 -1.9971074085155070E+01 -1.9971072613780279E+01 + -1.9971071114802207E+01 -1.9971069587716418E+01 -1.9971068032009331E+01 + -1.9971066447158076E+01 -1.9971064832630415E+01 -1.9971063187884425E+01 + -1.9971061512368475E+01 -1.9971059805520898E+01 -1.9971058066770023E+01 + -1.9971056295533693E+01 -1.9971054491219380E+01 -1.9971052653223843E+01 + -1.9971050780932970E+01 -1.9971048873721536E+01 -1.9971046930953054E+01 + -1.9971044951979614E+01 -1.9971042936141558E+01 -1.9971040882767369E+01 + -1.9971038791173417E+01 -1.9971036660663827E+01 -1.9971034490529998E+01 + -1.9971032280050800E+01 -1.9971030028491910E+01 -1.9971027735105896E+01 + -1.9971025399131793E+01 -1.9971023019794995E+01 -1.9971020596306897E+01 + -1.9971018127864696E+01 -1.9971015613651176E+01 -1.9971013052834302E+01 + -1.9971010444567206E+01 -1.9971007787987645E+01 -1.9971005082217932E+01 + -1.9971002326364523E+01 -1.9970999519517871E+01 -1.9970996660751990E+01 + -1.9970993749124275E+01 -1.9970990783675077E+01 -1.9970987763427626E+01 + -1.9970984687387421E+01 -1.9970981554542195E+01 -1.9970978363861377E+01 + -1.9970975114295932E+01 -1.9970971804777911E+01 -1.9970968434220172E+01 + -1.9970965001515996E+01 -1.9970961505538853E+01 -1.9970957945141883E+01 + -1.9970954319157524E+01 -1.9970950626397425E+01 -1.9970946865651740E+01 + -1.9970943035688858E+01 -1.9970939135255101E+01 -1.9970935163074202E+01 + -1.9970931117846973E+01 -1.9970926998250956E+01 -1.9970922802939786E+01 + -1.9970918530543024E+01 -1.9970914179665538E+01 -1.9970909748887145E+01 + -1.9970905236762174E+01 -1.9970900641818979E+01 -1.9970895962559435E+01 + -1.9970891197458574E+01 -1.9970886344963944E+01 -1.9970881403495333E+01 + -1.9970876371444078E+01 -1.9970871247172617E+01 -1.9970866029014037E+01 + -1.9970860715271439E+01 -1.9970855304217491E+01 -1.9970849794093798E+01 + -1.9970844183110525E+01 -1.9970838469445550E+01 -1.9970832651244137E+01 + -1.9970826726618238E+01 -1.9970820693645916E+01 -1.9970814550370736E+01 + -1.9970808294801166E+01 -1.9970801924909921E+01 -1.9970795438633342E+01 + -1.9970788833870735E+01 -1.9970782108483736E+01 -1.9970775260295568E+01 + -1.9970768287090468E+01 -1.9970761186612865E+01 -1.9970753956566750E+01 + -1.9970746594614955E+01 -1.9970739098378303E+01 -1.9970731465435033E+01 + -1.9970723693319918E+01 -1.9970715779523545E+01 -1.9970707721491411E+01 + -1.9970699516623320E+01 -1.9970691162272360E+01 -1.9970682655744195E+01 + -1.9970673994296206E+01 -1.9970665175136524E+01 -1.9970656195423302E+01 + -1.9970647052263686E+01 -1.9970637742713009E+01 -1.9970628263773794E+01 + -1.9970618612394844E+01 -1.9970608785470251E+01 -1.9970598779838465E+01 + -1.9970588592281274E+01 -1.9970578219522718E+01 -1.9970567658228248E+01 + -1.9970556905003424E+01 -1.9970545956393071E+01 -1.9970534808880092E+01 + -1.9970523458884333E+01 -1.9970511902761533E+01 -1.9970500136802062E+01 + -1.9970488157229905E+01 -1.9970475960201380E+01 -1.9970463541803941E+01 + -1.9970450898054910E+01 -1.9970438024900378E+01 -1.9970424918213666E+01 + -1.9970411573794266E+01 -1.9970397987366439E+01 -1.9970384154577872E+01 + -1.9970370070998225E+01 -1.9970355732117930E+01 -1.9970341133346540E+01 + -1.9970326270011487E+01 -1.9970311137356482E+01 -1.9970295730540094E+01 + -1.9970280044634173E+01 -1.9970264074622364E+01 -1.9970247815398448E+01 + -1.9970231261764845E+01 -1.9970214408430888E+01 -1.9970197250011132E+01 + -1.9970179781023834E+01 -1.9970161995889018E+01 -1.9970143888926895E+01 + -1.9970125454355994E+01 -1.9970106686291242E+01 -1.9970087578742397E+01 + -1.9970068125611885E+01 -1.9970048320693031E+01 -1.9970028157668132E+01 + -1.9970007630106270E+01 -1.9969986731461599E+01 -1.9969965455070994E+01 + -1.9969943794152190E+01 -1.9969921741801532E+01 -1.9969899290991773E+01 + -1.9969876434570011E+01 -1.9969853165255234E+01 -1.9969829475636335E+01 + -1.9969805358169413E+01 -1.9969780805175734E+01 -1.9969755808839103E+01 + -1.9969730361203567E+01 -1.9969704454170703E+01 -1.9969678079497427E+01 + -1.9969651228792991E+01 -1.9969623893516616E+01 -1.9969596064974827E+01 + -1.9969567734318556E+01 -1.9969538892540463E+01 -1.9969509530472116E+01 + -1.9969479638781127E+01 -1.9969449207968157E+01 -1.9969418228363995E+01 + -1.9969386690126477E+01 -1.9969354583237408E+01 -1.9969321897499523E+01 + -1.9969288622533096E+01 -1.9969254747772876E+01 -1.9969220262464606E+01 + -1.9969185155661798E+01 -1.9969149416222166E+01 -1.9969113032804277E+01 + -1.9969075993863793E+01 -1.9969038287650111E+01 -1.9968999902202452E+01 + -1.9968960825346194E+01 -1.9968921044689118E+01 -1.9968880547617374E+01 + -1.9968839321291700E+01 -1.9968797352643225E+01 -1.9968754628369556E+01 + -1.9968711134930434E+01 -1.9968666858543585E+01 -1.9968621785180389E+01 + -1.9968575900561426E+01 -1.9968529190152147E+01 -1.9968481639158121E+01 + -1.9968433232520571E+01 -1.9968383954911495E+01 -1.9968333790729041E+01 + -1.9968282724092472E+01 -1.9968230738837264E+01 -1.9968177818510004E+01 + -1.9968123946363214E+01 -1.9968069105350249E+01 -1.9968013278119770E+01 + -1.9967956447010398E+01 -1.9967898594045170E+01 -1.9967839700925936E+01 + -1.9967779749027546E+01 -1.9967718719392149E+01 -1.9967656592723127E+01 + -1.9967593349379086E+01 -1.9967528969367745E+01 -1.9967463432339681E+01 + -1.9967396717581895E+01 -1.9967328804011331E+01 -1.9967259670168364E+01 + -1.9967189294210023E+01 -1.9967117653903060E+01 -1.9967044726617171E+01 + -1.9966970489317792E+01 -1.9966894918558896E+01 -1.9966817990475707E+01 + -1.9966739680777206E+01 -1.9966659964738490E+01 -1.9966578817193085E+01 + -1.9966496212525040E+01 -1.9966412124660909E+01 -1.9966326527061646E+01 + -1.9966239392714236E+01 -1.9966150694123282E+01 -1.9966060403302347E+01 + -1.9965968491765334E+01 -1.9965874930517341E+01 -1.9965779690045874E+01 + -1.9965682740311379E+01 -1.9965584050738006E+01 -1.9965483590203910E+01 + -1.9965381327031654E+01 -1.9965277228978181E+01 -1.9965171263224843E+01 + -1.9965063396367078E+01 -1.9964953594403919E+01 -1.9964841822727458E+01 + -1.9964728046112011E+01 -1.9964612228703007E+01 -1.9964494334005931E+01 + -1.9964374324874797E+01 -1.9964252163500593E+01 -1.9964127811399472E+01 + -1.9964001229400676E+01 -1.9963872377634274E+01 -1.9963741215518915E+01 + -1.9963607701748849E+01 -1.9963471794281190E+01 -1.9963333450322757E+01 + -1.9963192626316754E+01 -1.9963049277929080E+01 -1.9962903360034453E+01 + -1.9962754826702454E+01 -1.9962603631183118E+01 -1.9962449725892224E+01 + -1.9962293062396643E+01 -1.9962133591399098E+01 -1.9961971262722670E+01 + -1.9961806025295392E+01 -1.9961637827134108E+01 -1.9961466615328266E+01 + -1.9961292336023501E+01 -1.9961114934404723E+01 -1.9960934354679036E+01 + -1.9960750540058413E+01 -1.9960563432741875E+01 -1.9960372973897506E+01 + -1.9960179103644048E+01 -1.9959981761032328E+01 -1.9959780884026173E+01 + -1.9959576409482974E+01 -1.9959368273134253E+01 -1.9959156409565324E+01 + -1.9958940752195097E+01 -1.9958721233255300E+01 -1.9958497783769243E+01 + -1.9958270333530436E+01 -1.9958038811080595E+01 -1.9957803143687514E+01 + -1.9957563257322313E+01 -1.9957319076636317E+01 -1.9957070524937773E+01 + -1.9956817524167715E+01 -1.9956559994875821E+01 -1.9956297856195629E+01 + -1.9956031025819300E+01 -1.9955759419972079E+01 -1.9955482953386138E+01 + -1.9955201539274071E+01 -1.9954915089301878E+01 -1.9954623513561415E+01 + -1.9954326720542536E+01 -1.9954024617104498E+01 -1.9953717108446995E+01 + -1.9953404098080789E+01 -1.9953085487797541E+01 -1.9952761177639381E+01 + -1.9952431065867763E+01 -1.9952095048931842E+01 -1.9951753021436268E+01 + -1.9951404876108544E+01 -1.9951050503765476E+01 -1.9950689793279484E+01 + -1.9950322631543820E+01 -1.9949948903437647E+01 -1.9949568491790153E+01 + -1.9949181277344241E+01 -1.9948787138719467E+01 -1.9948385952374309E+01 + -1.9947977592567838E+01 -1.9947561931320799E+01 -1.9947138838375757E+01 + -1.9946708181156747E+01 -1.9946269824728077E+01 -1.9945823631752674E+01 + -1.9945369462449221E+01 -1.9944907174549034E+01 -1.9944436623251850E+01 + -1.9943957661180946E+01 -1.9943470138337570E+01 -1.9942973902054401E+01 + -1.9942468796948187E+01 -1.9941954664871716E+01 -1.9941431344864895E+01 + -1.9940898673104808E+01 -1.9940356482854995E+01 -1.9939804604414039E+01 + -1.9939242865062862E+01 -1.9938671089011390E+01 -1.9938089097344236E+01 + -1.9937496707965273E+01 -1.9936893735541428E+01 -1.9936279991445424E+01 + -1.9935655283697390E+01 -1.9935019416905739E+01 -1.9934372192206677E+01 + -1.9933713407202813E+01 -1.9933042855900862E+01 -1.9932360328647846E+01 + -1.9931665612066610E+01 -1.9930958488989841E+01 -1.9930238738393371E+01 + -1.9929506135327678E+01 -1.9928760450848959E+01 -1.9928001451948326E+01 + -1.9927228901480120E+01 -1.9926442558088947E+01 -1.9925642176135419E+01 + -1.9924827505620414E+01 -1.9923998292108319E+01 -1.9923154276648827E+01 + -1.9922295195697121E+01 -1.9921420781033099E+01 -1.9920530759678975E+01 + -1.9919624853815304E+01 -1.9918702780695700E+01 -1.9917764252560374E+01 + -1.9916808976547372E+01 -1.9915836654603236E+01 -1.9914846983391289E+01 + -1.9913839654198942E+01 -1.9912814352842918E+01 -1.9911770759573216E+01 + -1.9910708548975276E+01 -1.9909627389870121E+01 -1.9908526945213541E+01 + -1.9907406871992713E+01 -1.9906266821121473E+01 -1.9905106437333874E+01 + -1.9903925359075426E+01 -1.9902723218393088E+01 -1.9901499640822848E+01 + -1.9900254245275601E+01 -1.9898986643921052E+01 -1.9897696442069648E+01 + -1.9896383238052309E+01 -1.9895046623098313E+01 -1.9893686181211017E+01 + -1.9892301489041301E+01 -1.9890892115759090E+01 -1.9889457622922503E+01 + -1.9887997564344758E+01 -1.9886511485958923E+01 -1.9884998925680311E+01 + -1.9883459413266486E+01 -1.9881892470174819E+01 -1.9880297609417788E+01 + -1.9878674335415795E+01 -1.9877022143847231E+01 -1.9875340521496330E+01 + -1.9873628946098240E+01 -1.9871886886181521E+01 -1.9870113800907976E+01 + -1.9868309139909716E+01 -1.9866472343123622E+01 -1.9864602840622705E+01 + -1.9862700052445135E+01 -1.9860763388419823E+01 -1.9858792247989452E+01 + -1.9856786020030285E+01 -1.9854744082669178E+01 -1.9852665803097445E+01 + -1.9850550537381377E+01 -1.9848397630269996E+01 -1.9846206414999173E+01 + -1.9843976213092922E+01 -1.9841706334160950E+01 -1.9839396075693095E+01 + -1.9837044722850294E+01 -1.9834651548252047E+01 -1.9832215811760381E+01 + -1.9829736760260232E+01 -1.9827213627436198E+01 -1.9824645633545583E+01 + -1.9822031985187756E+01 -1.9819371875069653E+01 -1.9816664481767482E+01 + -1.9813908969484356E+01 -1.9811104487804322E+01 -1.9808250171441948E+01 + -1.9805345139987999E+01 -1.9802388497651211E+01 -1.9799379332995294E+01 + -1.9796316718672244E+01 -1.9793199711151047E+01 -1.9790027350442003E+01 + -1.9786798659816629E+01 -1.9783512645523153E+01 -1.9780168296497227E+01 + -1.9776764584068200E+01 -1.9773300461660536E+01 -1.9769774864490710E+01 + -1.9766186709258804E+01 -1.9762534893835735E+01 -1.9758818296945261E+01 + -1.9755035777840813E+01 -1.9751186175977665E+01 -1.9747268310679345E+01 + -1.9743280980799405E+01 -1.9739222964377532E+01 -1.9735093018290325E+01 + -1.9730889877896828E+01 -1.9726612256678287E+01 -1.9722258845872510E+01 + -1.9717828314102693E+01 -1.9713319307000031E+01 -1.9708730446821306E+01 + -1.9704060332059939E+01 -1.9699307537051439E+01 -1.9694470611572900E+01 + -1.9689548080436275E+01 -1.9684538443075652E+01 -1.9679440173128228E+01 + -1.9674251718008957E+01 -1.9668971498479223E+01 -1.9663597908208587E+01 + -1.9658129313330370E+01 -1.9652564051990737E+01 -1.9646900433890874E+01 + -1.9641136739822873E+01 -1.9635271221198487E+01 -1.9629302099571291E+01 + -1.9623227566152035E+01 -1.9617045781316847E+01 -1.9610754874108469E+01 + -1.9604352941730589E+01 -1.9597838049034856E+01 -1.9591208228000838E+01 + -1.9584461477208556E+01 -1.9577595761304071E+01 -1.9570609010456991E+01 + -1.9563499119811627E+01 -1.9556263948929480E+01 -1.9548901321225234E+01 + -1.9541409023394447E+01 -1.9533784804834106E+01 -1.9526026377055164E+01 + -1.9518131413087634E+01 -1.9510097546877656E+01 -1.9501922372677196E+01 + -1.9493603444425325E+01 -1.9485138275122253E+01 -1.9476524336195080E+01 + -1.9467759056855833E+01 -1.9458839823451324E+01 -1.9449763978805503E+01 + -1.9440528821553400E+01 -1.9431131605467197E+01 -1.9421569538774591E+01 + -1.9411839783468864E+01 -1.9401939454611096E+01 -1.9391865619624419E+01 + -1.9381615297580275E+01 -1.9371185458476724E+01 -1.9360573022508888E+01 + -1.9349774859331625E+01 -1.9338787787314022E+01 -1.9327608572786492E+01 + -1.9316233929279765E+01 -1.9304660516756478E+01 -1.9292884940835091E+01 + -1.9280903752005926E+01 -1.9268713444840412E+01 -1.9256310457192132E+01 + -1.9243691169391425E+01 -1.9230851903432196E+01 -1.9217788922151954E+01 + -1.9204498428405007E+01 -1.9190976564228830E+01 -1.9177219410003655E+01 + -1.9163222983606005E+01 -1.9148983239555484E+01 -1.9134496068155983E+01 + -1.9119757294630581E+01 -1.9104762678251188E+01 -1.9089507911462523E+01 + -1.9073988619000893E+01 -1.9058200357008367E+01 -1.9042138612142040E+01 + -1.9025798800679123E+01 -1.9009176267617971E+01 -1.8992266285775553E+01 + -1.8975064054881411E+01 -1.8957564700668829E+01 -1.8939763273963617E+01 + -1.8921654749770418E+01 -1.8903234026357456E+01 -1.8884495924340392E+01 + -1.8865435185764927E+01 -1.8846046473189478E+01 -1.8826324368768237E+01 + -1.8806263373334978E+01 -1.8785857905488271E+01 -1.8765102300679093E+01 + -1.8743990810300833E+01 -1.8722517600783011E+01 -1.8700676752689066E+01 + -1.8678462259819032E+01 -1.8655868028317951E+01 -1.8632887875790654E+01 + -1.8609515530424197E+01 -1.8585744630118420E+01 -1.8561568721625495E+01 + -1.8536981259700177E+01 -1.8511975606260719E+01 -1.8486545029562418E+01 + -1.8460682703384517E+01 -1.8434381706231321E+01 -1.8407635020549648E+01 + -1.8380435531962750E+01 -1.8352776028522765E+01 -1.8324649199983039E+01 + -1.8296047637091171E+01 -1.8266963830904988E+01 -1.8237390172132404E+01 + -1.8207318950497140E+01 -1.8176742354131779E+01 -1.8145652468999806E+01 + -1.8114041278348825E+01 -1.8081900662196190E+01 -1.8049222396849569E+01 + -1.8015998154464107E+01 -1.7982219502638401E+01 -1.7947877904051381E+01 + -1.7912964716142419E+01 -1.7877471190836822E+01 -1.7841388474319427E+01 + -1.7804707606858429E+01 -1.7767419522682268E+01 -1.7729515049912226E+01 + -1.7690984910553311E+01 -1.7651819720546719E+01 -1.7612009989886253E+01 + -1.7571546122802381E+01 -1.7530418418016623E+01 -1.7488617069069896E+01 + -1.7446132164727985E+01 -1.7402953689467921E+01 -1.7359071524048328E+01 + -1.7314475446168522E+01 -1.7269155131218799E+01 -1.7223100153127536E+01 + -1.7176299985307750E+01 -1.7128744001708380E+01 -1.7080421477974216E+01 + -1.7031321592719252E+01 -1.6981433428917583E+01 -1.6930745975417896E+01 + -1.6879248128584766E+01 -1.6826928694073576E+01 -1.6773776388742995E+01 + -1.6719779842711393E+01 -1.6664927601562141E+01 -1.6609208128703827E+01 + -1.6552609807891258E+01 -1.6495120945913236E+01 -1.6436729775453333E+01 + -1.6377424458130275E+01 -1.6317193087724124E+01 -1.6256023693595534E+01 + -1.6193904244304559E+01 -1.6130822651436119E+01 -1.6066766773640150E+01 + -1.6001724420892728E+01 -1.5935683358986804E+01 -1.5868631314260092E+01 + -1.5800555978567827E+01 -1.5731445014509125E+01 -1.5661286060915144E+01 + -1.5590066738607453E+01 -1.5517774656435492E+01 -1.5444397417602593E+01 + -1.5369922626288860E+01 -1.5294337894580627E+01 -1.5217630849716638E+01 + -1.5139789141659364E+01 -1.5060800451002674E+01 -1.4980652497224876E+01 + -1.4899333047298081E+01 -1.4816829924663857E+01 -1.4733131018585887E+01 + -1.4648224293890351E+01 -1.4562097801104947E+01 -1.4474739687007284E+01 + -1.4386138205594257E+01 -1.4296281729483029E+01 -1.4205158761755655E+01 + -1.4112757948258393E+01 -1.4019068090367332E+01 -1.3924078158231993E+01 + -1.3827777304508833E+01 -1.3730154878596073E+01 -1.3631200441381552E+01 + -1.3530903780515937E+01 -1.3429254926222541E+01 -1.3326244167655576E+01 + -1.3221862069818663E+01 -1.3116099491055243E+01 -1.3008947601121992E+01 + -1.2900397899857174E+01 -1.2790442236454640E+01 -1.2679072829354526E+01 + -1.2566282286761719E+01 -1.2452063627801971E+01 -1.2336410304326554E+01 + -1.2219316223374410E+01 -1.2100775770301768E+01 -1.1980783832588040E+01 + -1.1859335824326189E+01 -1.1736427711405442E+01 -1.1612056037393973E+01 + -1.1486217950127687E+01 -1.1358911229010793E+01 -1.1230134313033691E+01 + -1.1099886329511868E+01 -1.0968167123548866E+01 -1.0834977288225705E+01 + -1.0700318195517607E+01 -1.0564192027937461E+01 -1.0426601810905023E+01 + -1.0287551445838183E+01 -1.0147045743962590E+01 -1.0005090460832674E+01 + -9.8616923315567249E+00 -9.7168591067164165E+00 -9.5705995889685784E+00 + -9.4229236703157397E+00 -9.2738423700296462E+00 -9.1233678732087782E+00 + -8.9715135699492485E+00 -8.8182940951055748E+00 -8.6637253686145854E+00 + -8.5078246363531349E+00 -8.3506105114968232E+00 -8.1921030163441451E+00 + -8.0323236245660539E+00 -7.8712953038377123E+00 -7.7090425588059368E+00 + -7.5455914743399726E+00 -7.3809697590109185E+00 -7.2152067887388922E+00 + -7.0483336505438379E+00 -6.8803831863290563E+00 -6.7113900366230181E+00 + -6.5413906841988094E+00 -6.3704234974844942E+00 -6.1985287736724679E+00 + -6.0257487814292636E+00 -5.8521278031010837E+00 -5.6777121763031229E+00 + -5.5025503347742024E+00 -5.3266928483712688E+00 -5.1501924620700592E+00 + -4.9731041338307218E+00 -4.7954850711802814E+00 -4.6173947663533719E+00 + -4.4388950298261767E+00 -4.2600500220687287E+00 -4.0809262833318725E+00 + -3.9015927612759405E+00 -3.7221208362383833E+00 -3.5425843439291413E+00 + -3.3630595953302342E+00 -3.1836253935685979E+00 -3.0043630475190817E+00 + -2.8253563818847085E+00 -2.6466917434907904E+00 -2.4684580035184589E+00 + -2.2907465553932091E+00 -2.1136513080320749E+00 -1.9372686741430918E+00 + -1.7616975532602244E+00 -1.5870393091848705E+00 -1.4133977414961849E+00 + -1.2408790507806757E+00 -1.0695917972225903E+00 -8.9964685218549401E-01 + -7.3115734240701136E-01 -5.6423858641951252E-01 -3.9900802280025677E-01 + -2.3558512984752591E-01 -7.4091336271983055E-02 8.5350077514554132E-02 + 2.4261408793525183E-01 3.9757404703686766E-01 5.5010181196061969E-01 + 7.0006788552819688E-01 8.4734156837557617E-01 9.9179112306584682E-01 + 1.1332839506105978E+00 1.2716867798234157E+00 1.4068658699228809E+00 + 1.5386872267928764E+00 1.6670168332967601E+00 1.7917208940274183E+00 + 1.9126660948574643E+00 2.0297198776345540E+00 2.1427507303419082E+00 + 2.2516284930171131E+00 2.3562246796912647E+00 2.4564128165746504E+00 + 2.5520687966754738E+00 2.6430712509935135E+00 2.7293019363812974E+00 + 2.8106461401102552E+00 2.8869931011190131E+00 2.9582364478549596E+00 + 3.0242746525476929E+00 3.0850115016737947E+00 3.1403565822874628E+00 + 3.1902257837980654E+00 3.2345418146764779E+00 3.2732347334637195E+00 + 3.3062424933406440E+00 3.3335114993935746E+00 3.3549971775788188E+00 + 3.3706645542490752E+00 3.3804888449552872E+00 3.3844560510800488E+00 + 3.3825635626916850E+00 3.3748207658329474E+00 3.3612496522733082E+00 + 3.3418854295610561E+00 3.3167771290090293E+00 3.2859882090377655E+00 + 3.2495971510812320E+00 3.2076980450340526E+00 3.1604011609859186E+00 + 3.1078335037487448E+00 3.0501393464365836E+00 2.9874807391074514E+00 + 2.9200379882216829E+00 2.8480101024145617E+00 2.7716151998219329E+00 + 2.6910908719396569E+00 2.6066944987416658E+00 2.5187035095286578E+00 + 2.4274155837340823E+00 2.3331487856761264E+00 2.2362416270189764E+00 + 2.1370530504938459E+00 2.0359623282366357E+00 1.9333688679252341E+00 + 1.8296919197502539E+00 1.7253701771333017E+00 1.6208612640192375E+00 + 1.5166411015198717E+00 1.4132031466790960E+00 1.3110574961707173E+00 + 1.2107298478347039E+00 1.1127603131102670E+00 1.0177020736430691E+00 + 9.2611987563382347E-01 8.3858835586222391E-01 7.5569019377293911E-01 + 6.7801408455257817E-01 6.0615252876801506E-01 5.4069943488089423E-01 + 4.8224753181068264E-01 4.3138558969269863E-01 3.8869544807630124E-01 + 3.5474885203753009E-01 3.3010409804490370E-01 3.1530249292264728E-01 + 3.1086463090536126E-01 3.1728649557694905E-01 3.3503539543532174E-01 + 3.6454574392484590E-01 4.0621469703049856E-01 4.4998710730525415E-01 + 4.2820912638996173E-01 3.9340098450191657E-01 3.5989884250804283E-01 + 3.2675196091492242E-01 2.9420962727943678E-01 2.6250568685134185E-01 + 2.3185857257330855E-01 2.0247120728430840E-01 1.7453104586845183E-01 + 1.4821019409194081E-01 1.2366548317939462E-01 1.0103869149434021E-01 + 8.0456780060833011E-02 6.2032204800508584E-02 4.5863289777971057E-02 + 3.2034664461404704E-02 2.0617763992194314E-02 1.1671389861226518E-02 + 5.2423267705524329E-03 1.3660093171904491E-03 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + -2.4191987681860226E-03 -9.9009466831354066E-03 -1.5800370406479931E-02 + -2.0795078292056124E-02 -2.5292265777131423E-02 -2.9428715382404168E-02 + -3.3349457016728076E-02 -3.7092876141365479E-02 -4.0688546107949808E-02 + -4.4164985498317988E-02 -4.7541548869878027E-02 -5.0833046769567958E-02 + -5.4051368276056416E-02 -5.7206051210240472E-02 -6.0304922416997184E-02 + -6.3354511598206750E-02 -6.6360334599925450E-02 -6.9327105126651176E-02 + -7.2258892202106836E-02 -7.5159239652328749E-02 -7.8031258467194650E-02 + -8.0877699179147500E-02 -8.3701009323132389E-02 -8.6503379587872672E-02 + -8.9286781274337618E-02 -9.2052996989642047E-02 -9.4803646017350265E-02 + -9.7540205454922868E-02 -1.0026402795371944E-01 -1.0297635670834543E-01 + -1.0567833820110084E-01 -1.0837103310065604E-01 -1.1105542563263024E-01 + -1.1373243167692809E-01 -1.1640290579781112E-01 -1.1906764737432850E-01 + -1.2172740596840798E-01 -1.2438288604375150E-01 -1.2703475112931112E-01 + -1.2968362750548376E-01 -1.3233010747846910E-01 -1.3497475229786218E-01 + -1.3761809476403994E-01 -1.4026064156486936E-01 -1.4290287537543703E-01 + -1.4554525674964153E-01 -1.4818822582842375E-01 -1.5083220388599286E-01 + -1.5347759473252245E-01 -1.5612478598934801E-01 -1.5877415025061981E-01 + -1.6142604614359365E-01 -1.6408081929822538E-01 -1.6673880323543167E-01 + -1.6940032018225731E-01 -1.7206568182122178E-01 -1.7473518998027396E-01 + -1.7740913726905830E-01 -1.8008780766655655E-01 -1.8277147706461613E-01 + -1.8546041377138908E-01 -1.8815487897827918E-01 -1.9085512719361947E-01 + -1.9356140664597229E-01 -1.9627395965965183E-01 -1.9899302300480881E-01 + -2.0171882822419054E-01 -2.0445160193848447E-01 -2.0719156613196904E-01 + -2.0993893842004041E-01 -2.1269393230003214E-01 -2.1545675738662001E-01 + -2.1822761963298498E-01 -2.2100672153880788E-01 -2.2379426234606911E-01 + -2.2659043822354799E-01 -2.2939544244083743E-01 -2.3220946553262209E-01 + -2.3503269545390398E-01 -2.3786531772680711E-01 -2.4070751557953640E-01 + -2.4355947007802531E-01 -2.4642136025076000E-01 -2.4929336320723075E-01 + -2.5217565425043004E-01 -2.5506840698377714E-01 -2.5797179341282900E-01 + -2.6088598404210162E-01 -2.6381114796730992E-01 -2.6674745296330626E-01 + -2.6969506556797962E-01 -2.7265415116235597E-01 -2.7562487404713054E-01 + -2.7860739751583519E-01 -2.8160188392484087E-01 -2.8460849476037431E-01 + -2.8762739070271826E-01 -2.9065873168775447E-01 -2.9370267696599511E-01 + -2.9675938515924088E-01 -2.9982901431499481E-01 -3.0291172195875077E-01 + -3.0600766514427014E-01 -3.0911700050195162E-01 -3.1223988428539390E-01 + -3.1537647241624178E-01 -3.1852692052740500E-01 -3.2169138400472941E-01 + -3.2487001802719950E-01 -3.2806297760574238E-01 -3.3127041762070214E-01 + -3.3449249285804833E-01 -3.3772935804437959E-01 -3.4098116788077831E-01 + -3.4424807707557004E-01 -3.4753024037603969E-01 -3.5082781259915091E-01 + -3.5414094866131335E-01 -3.5746980360724462E-01 -3.6081453263796104E-01 + -3.6417529113794167E-01 -3.6755223470149878E-01 -3.7094551915839014E-01 + -3.7435530059870387E-01 -3.7778173539705262E-01 -3.8122498023609863E-01 + -3.8468519212944435E-01 -3.8816252844391169E-01 -3.9165714692123610E-01 + -3.9516920569920055E-01 -3.9869886333223026E-01 -4.0224627881147196E-01 + -4.0581161158437790E-01 -4.0939502157381358E-01 -4.1299666919670835E-01 + -4.1661671538226891E-01 -4.2025532158976786E-01 -4.2391264982593058E-01 + -4.2758886266192886E-01 -4.3128412325000060E-01 -4.3499859533970958E-01 + -4.3873244329385541E-01 -4.4248583210405013E-01 -4.4625892740597195E-01 + -4.5005189549430719E-01 -4.5386490333739360E-01 -4.5769811859157367E-01 + -4.6155170961526720E-01 -4.6542584548277671E-01 -4.6932069599783072E-01 + -4.7323643170687274E-01 -4.7717322391211114E-01 -4.8113124468432877E-01 + -4.8511066687546467E-01 -4.8911166413097568E-01 -4.9313441090198068E-01 + -4.9717908245719716E-01 -5.0124585489467455E-01 -5.0533490515333013E-01 + -5.0944641102429244E-01 -5.1358055116205881E-01 -5.1773750509546757E-01 + -5.2191745323849614E-01 -5.2612057690088210E-01 -5.3034705829857387E-01 + -5.3459708056401734E-01 -5.3887082775627682E-01 -5.4316848487099700E-01 + -5.4749023785020667E-01 -5.5183627359196741E-01 -5.5620677995987222E-01 + -5.6060194579239075E-01 -5.6502196091206758E-01 -5.6946701613457562E-01 + -5.7393730327762049E-01 -5.7843301516970647E-01 -5.8295434565875559E-01 + -5.8750148962058768E-01 -5.9207464296725953E-01 -5.9667400265526427E-01 + -6.0129976669358942E-01 -6.0595213415163984E-01 -6.1063130516701858E-01 + -6.1533748095316820E-01 -6.2007086380687781E-01 -6.2483165711564492E-01 + -6.2962006536490223E-01 -6.3443629414510150E-01 -6.3928055015865792E-01 + -6.4415304122675343E-01 -6.4905397629599415E-01 -6.5398356544492675E-01 + -6.5894201989041123E-01 -6.6392955199384340E-01 -6.6894637526723222E-01 + -6.7399270437912795E-01 -6.7906875516039811E-01 -6.8417474460985239E-01 + -6.8931089089970976E-01 -6.9447741338091229E-01 -6.9967453258827905E-01 + -7.0490247024549746E-01 -7.1016144926995217E-01 -7.1545169377738937E-01 + -7.2077342908641040E-01 -7.2612688172279505E-01 -7.3151227942365216E-01 + -7.3692985114139065E-01 -7.4237982704751482E-01 -7.4786243853623302E-01 + -7.5337791822788069E-01 -7.5892649997215833E-01 -7.6450841885117138E-01 + -7.7012391118227697E-01 -7.7577321452073000E-01 -7.8145656766212690E-01 + -7.8717421064464177E-01 -7.9292638475104948E-01 -7.9871333251053744E-01 + -8.0453529770029630E-01 -8.1039252534688722E-01 -8.1628526172738158E-01 + -8.2221375437027211E-01 -8.2817825205614082E-01 -8.3417900481809615E-01 + -8.4021626394195403E-01 -8.4629028196617673E-01 -8.5240131268155295E-01 + -8.5854961113061778E-01 -8.6473543360681104E-01 -8.7095903765336191E-01 + -8.7722068206189763E-01 -8.8352062687077726E-01 -8.8985913336312994E-01 + -8.9623646406461244E-01 -9.0265288274085853E-01 -9.0910865439463451E-01 + -9.1560404526267913E-01 -9.2213932281223099E-01 -9.2871475573723672E-01 + -9.3533061395422901E-01 -9.4198716859787346E-01 -9.4868469201617334E-01 + -9.5542345776533122E-01 -9.6220374060425384E-01 -9.6902581648870068E-01 + -9.7588996256506566E-01 -9.8279645716378317E-01 -9.8974557979235656E-01 + -9.9673761112799608E-01 -1.0037728330098659E+00 -1.0108515284309258E+00 + -1.0179739815293649E+00 -1.0251404775796173E+00 -1.0323513029829523E+00 + -1.0396067452576321E+00 -1.0469070930286331E+00 -1.0542526360169091E+00 + -1.0616436650282066E+00 -1.0690804719414109E+00 -1.0765633496964138E+00 + -1.0840925922815108E+00 -1.0916684947202950E+00 -1.0992913530580588E+00 + -1.1069614643476842E+00 -1.1146791266350149E+00 -1.1224446389437002E+00 + -1.1302583012595089E+00 -1.1381204145140904E+00 -1.1460312805681825E+00 + -1.1539912021942580E+00 -1.1620004830585879E+00 -1.1700594277027307E+00 + -1.1781683415244188E+00 -1.1863275307578431E+00 -1.1945373024533201E+00 + -1.2027979644563369E+00 -1.2111098253859534E+00 -1.2194731946125632E+00 + -1.2278883822349953E+00 -1.2363556990569406E+00 -1.2448754565627065E+00 + -1.2534479668922720E+00 -1.2620735428156449E+00 -1.2707524977065017E+00 + -1.2794851455151011E+00 -1.2882718007404597E+00 -1.2971127784017733E+00 + -1.3060083940090821E+00 -1.3149589635331560E+00 -1.3239648033745937E+00 + -1.3330262303321192E+00 -1.3421435615700714E+00 -1.3513171145850591E+00 + -1.3605472071717866E+00 -1.3698341573880182E+00 -1.3791782835186845E+00 + -1.3885799040391051E+00 -1.3980393375773170E+00 -1.4075569028755051E+00 + -1.4171329187505028E+00 -1.4267677040533624E+00 -1.4364615776279757E+00 + -1.4462148582687342E+00 -1.4560278646772038E+00 -1.4659009154178169E+00 + -1.4758343288725511E+00 -1.4858284231945860E+00 -1.4958835162609248E+00 + -1.5059999256239569E+00 -1.5161779684619645E+00 -1.5264179615285309E+00 + -1.5367202211008593E+00 -1.5470850629269703E+00 -1.5575128021717721E+00 + -1.5680037533619784E+00 -1.5785582303298646E+00 -1.5891765461558462E+00 + -1.5998590131098511E+00 -1.6106059425914885E+00 -1.6214176450689775E+00 + -1.6322944300168349E+00 -1.6432366058522900E+00 -1.6542444798704250E+00 + -1.6653183581780093E+00 -1.6764585456260170E+00 -1.6876653457408093E+00 + -1.6989390606539643E+00 -1.7102799910307354E+00 -1.7216884359971139E+00 + -1.7331646930654954E+00 -1.7447090580589055E+00 -1.7563218250337940E+00 + -1.7680032862013546E+00 -1.7797537318473673E+00 -1.7915734502505412E+00 + -1.8034627275993282E+00 -1.8154218479072122E+00 -1.8274510929264201E+00 + -1.8395507420600714E+00 -1.8517210722727226E+00 -1.8639623579992932E+00 + -1.8762748710523565E+00 -1.8886588805277771E+00 -1.9011146527086673E+00 + -1.9136424509676495E+00 -1.9262425356674004E+00 -1.9389151640594617E+00 + -1.9516605901812916E+00 -1.9644790647515411E+00 -1.9773708350635324E+00 + -1.9903361448769219E+00 -2.0033752343075215E+00 -2.0164883397152655E+00 + -2.0296756935903018E+00 -2.0429375244371752E+00 -2.0562740566570978E+00 + -2.0696855104282812E+00 -2.0831721015843003E+00 -2.0967340414904854E+00 + -2.1103715369183056E+00 -2.1240847899177346E+00 -2.1378739976875734E+00 + -2.1517393524437076E+00 -2.1656810412852798E+00 -2.1796992460587696E+00 + -2.1937941432199350E+00 -2.2079659036936206E+00 -2.2222146927313911E+00 + -2.2365406697669901E+00 -2.2509439882695914E+00 -2.2654247955948206E+00 + -2.2799832328335432E+00 -2.2946194346583764E+00 -2.3093335291679264E+00 + -2.3241256377287209E+00 -2.3389958748148181E+00 -2.3539443478450779E+00 + -2.3689711570180711E+00 -2.3840763951446129E+00 -2.3992601474778916E+00 + -2.4145224915411969E+00 -2.4298634969532058E+00 -2.4452832252508161E+00 + -2.4607817297095216E+00 -2.4763590551612951E+00 -2.4920152378099680E+00 + -2.5077503050441083E+00 -2.5235642752473399E+00 -2.5394571576061336E+00 + -2.5554289519150228E+00 -2.5714796483792388E+00 -2.5876092274147604E+00 + -2.6038176594457445E+00 -2.6201049046993448E+00 -2.6364709129978876E+00 + -2.6529156235484015E+00 -2.6694389647294945E+00 -2.6860408538755536E+00 + -2.7027211970582616E+00 -2.7194798888654259E+00 -2.7363168121771064E+00 + -2.7532318379390230E+00 -2.7702248249332562E+00 -2.7872956195462164E+00 + -2.8044440555338750E+00 -2.8216699537842596E+00 -2.8389731220772028E+00 + -2.8563533548413460E+00 -2.8738104329083773E+00 -2.8913441232645316E+00 + -2.9089541787993092E+00 -2.9266403380514632E+00 -2.9444023249521938E+00 + -2.9622398485656212E+00 -2.9801526028264713E+00 -2.9981402662750294E+00 + -3.0162025017893304E+00 -3.0343389563146124E+00 -3.0525492605900362E+00 + -3.0708330288726717E+00 -3.0891898586587625E+00 -3.1076193304022839E+00 + -3.1261210072308039E+00 -3.1446944346586516E+00 -3.1633391402974276E+00 + -3.1820546335638489E+00 -3.2008404053849620E+00 -3.2196959279007351E+00 + -3.2386206541640523E+00 -3.2576140178381379E+00 -3.2766754328914249E+00 + -3.2958042932898954E+00 -3.3149999726869286E+00 -3.3342618241106758E+00 + -3.3535891796489952E+00 -3.3729813501319885E+00 -3.3924376248121657E+00 + -3.4119572710422719E+00 -3.4315395339508306E+00 -3.4511836361154127E+00 + -3.4708887772337365E+00 -3.4906541337925643E+00 -3.5104788587345062E+00 + -3.5303620811227594E+00 -3.5503029058038207E+00 -3.5703004130682672E+00 + -3.5903536583096178E+00 -3.6104616716813629E+00 -3.6306234577522343E+00 + -3.6508379951597432E+00 -3.6711042362620905E+00 -3.6914211067885194E+00 + -3.7117875054881520E+00 -3.7322023037774330E+00 -3.7526643453862114E+00 + -3.7731724460026150E+00 -3.7937253929166896E+00 -3.8143219446630510E+00 + -3.8349608306624736E+00 -3.8556407508626473E+00 -3.8763603753781419E+00 + -3.8971183441296642E+00 -3.9179132664827834E+00 -3.9387437208861567E+00 + -3.9596082545094320E+00 -3.9805053828809265E+00 -4.0014335895251669E+00 + -4.0223913256005019E+00 -4.0433770095368153E+00 -4.0643890266735605E+00 + -4.0854257288982208E+00 -4.1064854342853021E+00 -4.1275664267361005E+00 + -4.1486669556192810E+00 -4.1697852354125171E+00 -4.1909194453453242E+00 + -4.2120677290431932E+00 -4.2332281941733232E+00 -4.2543989120919798E+00 + -4.2755779174937851E+00 -4.2967632080630338E+00 -4.3179527441272887E+00 + -4.3391444483134212E+00 -4.3603362052062771E+00 -4.3815258610102372E+00 + -4.4027112232138066E+00 -4.4238900602575058E+00 -4.4450601012052733E+00 + -4.4662190354195701E+00 -4.4873645122404904E+00 -4.5084941406690353E+00 + -4.5296054890548501E+00 -4.5506960847886893E+00 -4.5717634139997649E+00 + -4.5928049212583932E+00 -4.6138180092840591E+00 -4.6348000386592654E+00 + -4.6557483275494400E+00 -4.6766601514291155E+00 -4.6975327428147828E+00 + -4.7183632910046036E+00 -4.7391489418254036E+00 -4.7598867973871313E+00 + -4.7805739158452161E+00 -4.8012073111710931E+00 -4.8217839529311863E+00 + -4.8423007660748070E+00 -4.8627546307311622E+00 -4.8831423820159374E+00 + -4.9034608098477870E+00 -4.9237066587750160E+00 -4.9438766278129638E+00 + -4.9639673702923135E+00 -4.9839754937188383E+00 -5.0038975596449156E+00 + -5.0237300835531595E+00 -5.0434695347527070E+00 -5.0631123362884090E+00 + -5.0826548648634651E+00 -5.1020934507758842E+00 -5.1214243778691388E+00 + -5.1406438834975923E+00 -5.1597481585069618E+00 -5.1787333472304260E+00 + -5.1975955475007440E+00 -5.2163308106788424E+00 -5.2349351416994114E+00 + -5.2534044991338815E+00 -5.2717347952713745E+00 -5.2899218962179830E+00 + -5.3079616220150205E+00 -5.3258497467766128E+00 -5.3435819988471858E+00 + -5.3611540609793993E+00 -5.3785615705329377E+00 -5.3958001196947949E+00 + -5.4128652557215151E+00 -5.4297524812039004E+00 -5.4464572543548089E+00 + -5.4629749893204682E+00 -5.4793010565159523E+00 -5.4954307829853395E+00 + -5.5113594527870502E+00 -5.5270823074050419E+00 -5.5425945461862858E+00 + -5.5578913268052226E+00 -5.5729677657556911E+00 -5.5878189388708988E+00 + -5.6024398818720869E+00 -5.6168255909463642E+00 -5.6309710233544124E+00 + -5.6448710980685304E+00 -5.6585206964416805E+00 -5.6719146629081507E+00 + -5.6850478057162848E+00 -5.6979148976940701E+00 -5.7105106770479832E+00 + -5.7228298481958184E+00 -5.7348670826340422E+00 -5.7466170198402136E+00 + -5.7580742682111783E+00 -5.7692334060374595E+00 -5.7800889825145614E+00 + -5.7906355187917242E+00 -5.8008675090586062E+00 -5.8107794216706123E+00 + -5.8203657003132827E+00 -5.8296207652063563E+00 -5.8385390143480791E+00 + -5.8471148248001299E+00 -5.8553425540138804E+00 -5.8632165411982884E+00 + -5.8707311087300207E+00 -5.8778805636062526E+00 -5.8846591989404882E+00 + -5.8910612955019479E+00 -5.8970811232987828E+00 -5.9027129432056054E+00 + -5.9079510086355240E+00 -5.9127895672571080E+00 -5.9172228627565051E+00 + -5.9212451366448686E+00 -5.9248506301114405E+00 -5.9280335859222637E+00 + -5.9307882503647829E+00 -5.9331088752383332E+00 -5.9349897198905088E+00 + -5.9364250532994882E+00 -5.9374091562021309E+00 -5.9379363232678424E+00 + -5.9380008653180116E+00 -5.9375971115907671E+00 -5.9367194120509668E+00 + -5.9353621397449903E+00 -5.9335196932001377E+00 -5.9311864988683318E+00 + -5.9283570136136508E+00 -5.9250257272435016E+00 -5.9211871650829409E+00 + -5.9168358905918961E+00 -5.9119665080248271E+00 -5.9065736651326279E+00 + -5.9006520559064164E+00 -5.8941964233629092E+00 -5.8872015623713274E+00 + -5.8796623225215106E+00 -5.8715736110333161E+00 -5.8629303957071999E+00 + -5.8537277079160130E+00 -5.8439606456382904E+00 -5.8336243765330398E+00 + -5.8227141410564736E+00 -5.8112252556209585E+00 -5.7991531157965159E+00 + -5.7864931995554425E+00 -5.7732410705603696E+00 -5.7593923814963510E+00 + -5.7449428774473805E+00 -5.7298883993177583E+00 -5.7142248872987782E+00 + -5.6979483843809229E+00 -5.6810550399118860E+00 -5.6635411132004805E+00 + -5.6454029771663068E+00 -5.6266371220351408E+00 -5.6072401590794545E+00 + -5.5872088244036782E+00 -5.5665399827732553E+00 -5.5452306314866018E+00 + -5.5232779042887268E+00 -5.5006790753249595E+00 -5.4774315631332895E+00 + -5.4535329346732180E+00 -5.4289809093891481E+00 -5.4037733633058922E+00 + -5.3779083331537034E+00 -5.3513840205201824E+00 -5.3241987960259687E+00 + -5.2963512035211560E+00 -5.2678399642991209E+00 -5.2386639813241649E+00 + -5.2088223434695085E+00 -5.1783143297616716E+00 -5.1471394136274755E+00 + -5.1152972671395869E+00 -5.0827877652564428E+00 -5.0496109900524546E+00 + -5.0157672349340841E+00 -4.9812570088376100E+00 -4.9460810404040574E+00 + -4.9102402821270212E+00 -4.8737359144689503E+00 -4.8365693499413851E+00 + -4.7987422371449329E+00 -4.7602564647643923E+00 -4.7211141655148277E+00 + -4.6813177200341727E+00 -4.6408697607180267E+00 -4.5997731754924409E+00 + -4.5580311115202905E+00 -4.5156469788371041E+00 -4.4726244539120197E+00 + -4.4289674831296164E+00 -4.3846802861884546E+00 -4.3397673594119777E+00 + -4.2942334789675751E+00 -4.2480837039895309E+00 -4.2013233796014822E+00 + -4.1539581398341827E+00 -4.1059939104341021E+00 -4.0574369115585762E+00 + -4.0082936603530746E+00 -3.9585709734061099E+00 -3.9082759690774060E+00 + -3.8574160696947595E+00 -3.8059990036151592E+00 -3.7540328071455149E+00 + -3.7015258263185489E+00 -3.6484867185191816E+00 -3.5949244539568115E+00 + -3.5408483169789280E+00 -3.4862679072213152E+00 -3.4311931405902909E+00 + -3.3756342500722774E+00 -3.3196017863660039E+00 -3.2631066183327597E+00 + -3.2061599332599191E+00 -3.1487732369331676E+00 -3.0909583535127445E+00 + -3.0327274252090137E+00 -2.9740929117528401E+00 -2.9150675896560734E+00 + -2.8556645512576511E+00 -2.7958972035507594E+00 -2.7357792667865395E+00 + -2.6753247728499621E+00 -2.6145480634034173E+00 -2.5534637877937678E+00 + -2.4920869007185402E+00 -2.4304326596471499E+00 -2.3685166219930425E+00 + -2.3063546420327334E+00 -2.2439628675679235E+00 -2.1813577363268331E+00 + -2.1185559721011629E+00 -2.0555745806151271E+00 -1.9924308451231578E+00 + -1.9291423217330939E+00 -1.8657268344517106E+00 -1.8022024699497554E+00 + -1.7385875720437218E+00 -1.6749007358918384E+00 -1.6111608019019632E+00 + -1.5473868493492449E+00 -1.4835981897016832E+00 -1.4198143596519306E+00 + -1.3560551138539172E+00 -1.2923404173631787E+00 -1.2286904377799839E+00 + -1.1651255370946869E+00 -1.1016662632349916E+00 -1.0383333413151132E+00 + -9.7514766458717639E-01 -9.1213028509544092E-01 -8.4930240403436108E-01 + -7.8668536181174942E-01 -7.2430062781872817E-01 -6.6216978990847919E-01 + -6.0031454358618030E-01 -5.3875668091291717E-01 -4.7751807912672095E-01 + -4.1662068898431570E-01 -3.5608652282755626E-01 -2.9593764237896741E-01 + -2.3619614627124683E-01 -1.7688415731604085E-01 -1.1802380951778321E-01 + -5.9637234838880553E-02 -1.7465497230385986E-03 5.5626158615931259E-02 + 1.1245884613192939E-01 1.6872952610251984E-01 2.2441628349391363E-01 + 2.7949728952523312E-01 3.3395081642164132E-01 3.8775525234521979E-01 + 4.4088911649177365E-01 4.9333107434100559E-01 5.4505995304678134E-01 + 5.9605475695348276E-01 6.4629468322373684E-01 6.9575913756217578E-01 + 7.4442775001924411E-01 7.9228039085859492E-01 8.3929718647117857E-01 + 8.8545853531884233E-01 9.3074512389015640E-01 9.7513794265118725E-01 + 1.0186183019741983E+00 1.0611678480276812E+00 1.1027685786117345E+00 + 1.1434028589236900E+00 1.1830534372398545E+00 1.2217034605004835E+00 + 1.2593364897863972E+00 1.2959365156770764E+00 1.3314879734816014E+00 + 1.3659757583351961E+00 1.3993852401556479E+00 1.4317022784550659E+00 + 1.4629132370036122E+00 1.4930049983425908E+00 1.5219649781447324E+00 + 1.5497811394195762E+00 1.5764420065612299E+00 1.6019366792347565E+00 + 1.6262548460955883E+00 1.6493867983338957E+00 1.6713234430327102E+00 + 1.6920563163247946E+00 1.7115775963290905E+00 1.7298801158430557E+00 + 1.7469573747627511E+00 1.7628035521984531E+00 1.7774135182499764E+00 + 1.7907828454034103E+00 1.8029078195094794E+00 1.8137854503035564E+00 + 1.8234134814285075E+00 1.8317903999237035E+00 1.8389154451468044E+00 + 1.8447886170986614E+00 1.8494106841258431E+00 1.8527831899794538E+00 + 1.8549084602126522E+00 1.8557896079027059E+00 1.8554305386859669E+00 + 1.8538359550961956E+00 1.8510113601978784E+00 1.8469630605068039E+00 + 1.8416981681903943E+00 1.8352246025399879E+00 1.8275510907069616E+00 + 1.8186871676940852E+00 1.8086431755930850E+00 1.7974302620592639E+00 + 1.7850603780138943E+00 1.7715462745655006E+00 1.7569014991416032E+00 + 1.7411403908233223E+00 1.7242780748763242E+00 1.7063304564727482E+00 + 1.6873142136001875E+00 1.6672467891552281E+00 1.6461463822205276E+00 + 1.6240319385259880E+00 1.6009231400959467E+00 1.5768403940858065E+00 + 1.5518048208127435E+00 1.5258382409864419E+00 1.4989631621468658E+00 + 1.4712027643171022E+00 1.4425808848802861E+00 1.4131220026903737E+00 + 1.3828512214273792E+00 1.3517942522083377E+00 1.3199773954659022E+00 + 1.2874275221071361E+00 1.2541720539655759E+00 1.2202389435602665E+00 + 1.1856566531759696E+00 1.1504541332793212E+00 1.1146608002862999E+00 + 1.0783065136969030E+00 1.0414215526135855E+00 1.0040365916606189E+00 + 9.6618267632221522E-01 9.2789119771799855E-01 8.8919386683513535E-01 + 8.5012268823729598E-01 8.1070993327146457E-01 7.7098811279454160E-01 + 7.3098994944270757E-01 6.9074834946750230E-01 6.5029637416373776E-01 + 6.0966721091545262E-01 5.6889414388735970E-01 5.2801052439043050E-01 + 4.8704974095152487E-01 4.4604518911823521E-01 4.0503024103134372E-01 + 3.6403821479851517E-01 3.2310234370399499E-01 2.8225574529014008E-01 + 2.4153139034757939E-01 2.0096207185159068E-01 1.6058037388293719E-01 + 1.2041864057184774E-01 8.0508945104068794E-02 4.0883058827956342E-02 + 1.5724205014067995E-03 -3.7391894282893835E-02 -7.5979203455855682E-02 + -1.1415924857639914E-01 -1.5190222464461978E-01 -1.8917880958646913E-01 + -2.2596019337227777E-01 -2.6221810673026119E-01 -2.9792484941396907E-01 + -3.3305331797914572E-01 -3.6757703302041167E-01 -4.0147016581132433E-01 + -4.3470756428256990E-01 -4.6726477826236962E-01 -4.9911808389081280E-01 + -5.3024450710637305E-01 -5.6062184608919630E-01 -5.9022869253305166E-01 + -6.1904445160792687E-01 -6.4704936046990646E-01 -6.7422450517647403E-01 + -7.0055183587593062E-01 -7.2601418016106833E-01 -7.5059525451129816E-01 + -7.7427967379488527E-01 -7.9705295886367611E-01 -8.1890154234592971E-01 + -8.3981277282610156E-01 -8.5977491768971004E-01 -8.7877716500100134E-01 + -8.9680962486185856E-01 -9.1386333076025283E-01 -9.2993024144017233E-01 + -9.4500324379542688E-01 -9.5907615719227368E-01 -9.7214373945391441E-01 + -9.8420169450102191E-01 -9.9524668136267924E-01 -1.0052763239946427E+00 + -1.0142892211186019E+00 -1.0222849551740822E+00 -1.0292640994805791E+00 + -1.0352282228389473E+00 -1.0401798910268201E+00 -1.0441226649129807E+00 + -1.0470610951778230E+00 -1.0490007138399564E+00 -1.0499480229308857E+00 + -1.0499104807282846E+00 -1.0488964859656538E+00 -1.0469153604008252E+00 + -1.0439773300671615E+00 -1.0400935054646712E+00 -1.0352758608839248E+00 + -1.0295372129993337E+00 -1.0228911988217890E+00 -1.0153522530639969E+00 + -1.0069355849437733E+00 -9.9765715443008418E-01 -9.8753364792241882E-01 + -9.7658245334538007E-01 -9.6482163463665549E-01 -9.5226990560709279E-01 + -9.3894660315587486E-01 -9.2487165983124120E-01 -9.1006557573684754E-01 + -8.9454938979506626E-01 -8.7834465039023879E-01 -8.6147338542658125E-01 + -8.4395807184624683E-01 -8.2582160466252519E-01 -8.0708726557109145E-01 + -7.8777869120823907E-01 -7.6791984112935219E-01 -7.4753496558333687E-01 + -7.2664857315976195E-01 -7.0528539838508608E-01 -6.8347036934286831E-01 + -6.6122857539055524E-01 -6.3858523504248688E-01 -6.1556566408529312E-01 + -5.9219524398821088E-01 -5.6849939066695421E-01 -5.4450352365589727E-01 + -5.2023303573943869E-01 -4.9571326308964747E-01 -4.7096945595366568E-01 + -4.4602674993080960E-01 -4.2091013787603770E-01 -3.9564444246330532E-01 + -3.7025428943936423E-01 -3.4476408159581617E-01 -3.1919797348462331E-01 + -2.9357984689987532E-01 -2.6793328714633302E-01 -2.4228156011318794E-01 + -2.1664759016951796E-01 -1.9105393889608682E-01 -1.6552278466645723E-01 + -1.4007590308879714E-01 -1.1473464831829014E-01 -8.9519935248664959E-02 + -6.4452222590061517E-02 -3.9551496839207660E-02 -1.4837257146690588E-02 + 9.6714989150318842E-03 3.3956288680350326E-02 5.7999156814513418E-02 + 8.1782686832565218E-02 1.0529001171391343E-01 1.2850482361429777E-01 + 1.5141138267797638E-01 1.7399452495399625E-01 1.9623966942143981E-01 + 2.1813282412952370E-01 2.3966059145937957E-01 2.6081017251522526E-01 + 2.8156937065341547E-01 3.0192659415858647E-01 3.2187085807656390E-01 + 3.4139178521426794E-01 3.6047960631705728E-01 3.7912515943392483E-01 + 3.9731988848127969E-01 4.1505584101558457E-01 4.3232566522514471E-01 + 4.4912260615132504E-01 4.6544050114917712E-01 4.8127377459801229E-01 + 4.9661743187295465E-01 5.1146705258959468E-01 5.2581878313592512E-01 + 5.3966932850814064E-01 5.5301594347058636E-01 5.6585642306470396E-01 + 5.7818909249718375E-01 5.9001279644403459E-01 6.0132688781429933E-01 + 6.1213121602461318E-01 6.2242611484332633E-01 6.3221238986996831E-01 + 6.4149130572188728E-01 6.5026457300451246E-01 6.5853433514412529E-01 + 6.6630315516217431E-01 6.7357400246730148E-01 6.8035023973556563E-01 + 6.8663560994093287E-01 6.9243422358686502E-01 6.9775054617691445E-01 + 7.0258938594790121E-01 7.0695588187435943E-01 7.1085549193872899E-01 + 7.1429398164867253E-01 7.1727741277196888E-01 7.1981213225103979E-01 + 7.2190476125379510E-01 7.2356218431515906E-01 7.2479153852415890E-01 + 7.2560020271467063E-01 7.2599578662312181E-01 7.2598611998317208E-01 + 7.2557924153504827E-01 7.2478338793511832E-01 7.2360698255905498E-01 + 7.2205862419905054E-01 7.2014707566182157E-01 7.1788125227935740E-01 + 7.1527021034839533E-01 7.1232313551765036E-01 7.0904933114375523E-01 + 7.0545820663800329E-01 7.0155926582632544E-01 6.9736209534477511E-01 + 6.9287635309221041E-01 6.8811175676095560E-01 6.8307807246524177E-01 + 6.7778510348612164E-01 6.7224267915042968E-01 6.6646064386034065E-01 + 6.6044884628905165E-01 6.5421712875723370E-01 6.4777531680401346E-01 + 6.4113320896550763E-01 6.3430056677320545E-01 6.2728710498378815E-01 + 6.2010248205133545E-01 6.1275629085221983E-01 6.0525804967229924E-01 + 5.9761719346538533E-01 5.8984306539124198E-01 5.8194490864069304E-01 + 5.7393185855463558E-01 5.6581293504304409E-01 5.5759703530927029E-01 + 5.4929292688414577E-01 5.4090924097364934E-01 5.3245446612310121E-01 + 5.2393694220011766E-01 5.1536485469779680E-01 5.0674622935892966E-01 + 4.9808892712137215E-01 4.8940063938407347E-01 4.8068888359271861E-01 + 4.7196099914343753E-01 4.6322414360256214E-01 4.5448528924005743E-01 + 4.4575121987391009E-01 4.3702852802251319E-01 4.2832361236187327E-01 + 4.1964267548431100E-01 4.1099172195524980E-01 4.0237655666461669E-01 + 3.9380278346934239E-01 3.8527580412347845E-01 3.7680081749244237E-01 + 3.6838281904788950E-01 3.6002660063975572E-01 3.5173675054195558E-01 + 3.4351765376815663E-01 3.3537349265394373E-01 3.2730824770150729E-01 + 3.1932569868271965E-01 3.1142942599626067E-01 3.0362281227318166E-01 + 2.9590904422751846E-01 2.8829111474343533E-01 2.8077182519402116E-01 + 2.7335378798259707E-01 2.6603942930061752E-01 2.5883099209099703E-01 + 2.5173053920744365E-01 2.4473995675851792E-01 2.3786095762427015E-01 + 2.3109508513229854E-01 2.2444371687913853E-01 2.1790806868199053E-01 + 2.1148919864501234E-01 2.0518801132374220E-01 1.9900526197069146E-01 + 1.9294156084484948E-01 1.8699737756773749E-01 1.8117304550883584E-01 + 1.7546876618366594E-01 1.6988461364862312E-01 1.6442053887781830E-01 + 1.5907637410872755E-01 1.5385183714539108E-01 1.4874653561022774E-01 + 1.4375997113820252E-01 1.3889154351007663E-01 1.3414055472466077E-01 + 1.2950621301329823E-01 1.2498763680303639E-01 1.2058385863795568E-01 + 1.1629382907068385E-01 1.1211642053801132E-01 1.0805043123556135E-01 + 1.0409458900644959E-01 1.0024755525767851E-01 9.6507928915621349E-02 + 9.2874250428386387E-02 8.9345005818290982E-02 8.5918630782360006E-02 + 8.2593514833065040E-02 7.9368005465836555E-02 7.6240412334648178E-02 + 7.3209011412614142E-02 7.0272049111382448E-02 6.7427746331403582E-02 + 6.4674302414990295E-02 6.2009898975469949E-02 5.9432703578362320E-02 + 5.6940873254451921E-02 5.4532557829009662E-02 5.2205903056314930E-02 + 4.9959053553757224E-02 4.7790155534120353E-02 4.5697359338984604E-02 + 4.3678821779539238E-02 4.1732708293604315E-02 3.9857194929671873E-02 + 3.8050470169802002E-02 3.6310736603690573E-02 3.4636212466158577E-02 + 3.3025133049827106E-02 3.1475752003957726E-02 2.9986342529473315E-02 + 2.8555198479107199E-02 2.7180635370542973E-02 2.5860991319350279E-02 + 2.4594627897539786E-02 2.3379930922671419E-02 2.2215311181667488E-02 + 2.1099205092813787E-02 2.0030075308868162E-02 1.9006411263736395E-02 + 1.8026729664803908E-02 1.7089574932724168E-02 1.6193519590245224E-02 + 1.5337164601495158E-02 1.4519139663038222E-02 1.3738103447944730E-02 + 1.2992743804082512E-02 1.2281777907832237E-02 1.1603952374443789E-02 + 1.0958043326285688E-02 1.0342856420286489E-02 9.7572268359262127E-03 + 9.2000192252015521E-03 8.6701276260577245E-03 8.1664753408514004E-03 + 7.6880147814772145E-03 7.2337272828542189E-03 6.8026228865231677E-03 + 6.3937400961496813E-03 6.0061456067579790E-03 5.6389340095329404E-03 + 5.2912274740237724E-03 4.9621754095587134E-03 4.6509541076364637E-03 + 4.3567663669982423E-03 4.0788411030046158E-03 3.8164329428469605E-03 + 3.5688218080167956E-03 3.3353124853417720E-03 3.1152341877781534E-03 + 2.9079401060301056E-03 2.7128069519518124E-03 2.5292344945787885E-03 + 2.3566450895392329E-03 2.1944832025114396E-03 2.0422149273222352E-03 + 1.8993274992297781E-03 1.7653288038932788E-03 1.6397468825097930E-03 + 1.5221294335890302E-03 1.4120433118386599E-03 1.3090740246455709E-03 + 1.2128252266587027E-03 1.1229182130049070E-03 1.0389914116981434E-03 + 9.6069987583241687E-04 8.8771477617793026E-04 8.1972289482646818E-04 + 7.5642612055470244E-04 6.9754094659174636E-04 6.4279797148910332E-04 + 5.9194140379682737E-04 5.4472857124877535E-04 5.0092943515249152E-04 + 4.6032611066552383E-04 4.2271239362033685E-04 3.8789329453479455E-04 + 3.5568458041503249E-04 3.2591232492306841E-04 2.9841246744330977E-04 + 2.7303038154086526E-04 2.4962045326096255E-04 2.2804566967337417E-04 + 2.0817721801921529E-04 1.8989409577031523E-04 1.7308273186413732E-04 + 1.5763661933036068E-04 1.4345595947915722E-04 1.3044731777629611E-04 + 1.1852329148675450E-04 1.0760218912681503E-04 9.7607721724879231E-05 + 8.8468705853631357E-05 8.0118778360875340E-05 7.2496122693445849E-05 + 6.5543206678155349E-05 5.9206531595815546E-05 5.3436392358983900E-05 + 4.8186648581244080E-05 4.3414506305490949E-05 3.9080310140824838E-05 + 3.5147345542189738E-05 3.1581650953750946E-05 2.8351839526094330E-05 + 2.5428930108539685E-05 2.2786187211082891E-05 2.0398969625585383E-05 + 1.8244587392685453E-05 1.6302166799382982E-05 1.4552523092204352E-05 + 1.2978040592154421E-05 1.1562559900167771E-05 1.0291271885352894E-05 + 9.1506181528494935E-06 8.1281976934688856E-06 7.2126794233479848E-06 + 6.3937203285075747E-06 5.6618889363699777E-06 5.0085938438664364E-06 + 4.4260170396710849E-06 3.9070517662610699E-06 3.4452446758560323E-06 + 3.0347420427775853E-06 2.6702398033386518E-06 2.3469372029792912E-06 + 2.0604938389715928E-06 1.8069898955867703E-06 1.5828893771241350E-06 + 1.3850061526182811E-06 1.2104726343459716E-06 1.0567109204283892E-06 + 9.2140623985101925E-07 8.0248254608808226E-07 6.9808011320814321E-07 + 6.0653499584138973E-07 5.2636022169720210E-07 4.5622859242473898E-07 + 3.9495697550190304E-07 3.4149197651300999E-07 2.9489688762761929E-07 + 2.5433981431793276E-07 2.1908288834663203E-07 1.8847248081864299E-07 + 1.6193033461747613E-07 1.3894554083891814E-07 1.1906728889207043E-07 + 1.0189832476111404E-07 8.7089056512498950E-08 7.4332250494076754E-08 + 6.3358265808320735E-08 5.3930778555142823E-08 4.5842951035500206E-08 + 3.8914004590156781E-08 3.2986158024268519E-08 2.7921896644041002E-08 + 2.3601539813072045E-08 1.9921077630017668E-08 1.6790249843038343E-08 + 1.4130842457461276E-08 1.1875179668762091E-08 9.9647907709564741E-09 + 8.3492335584953252E-09 6.9850574654715873E-09 5.8348912770383793E-09 + 4.8666417119849212E-09 4.0527905198846264E-09 3.3697789684308806E-09 + 2.7974697236405619E-09 2.3186771544560348E-09 1.9187580306074324E-09 + 1.5852554348525269E-09 1.3075894840748867E-09 1.0767891541003249E-09 + 8.8526013611401912E-10 7.2658422356529037E-10 5.9534624248405163E-10 + 4.8698499996326775E-10 3.9766513965878691E-10 3.2416716371249742E-10 + 2.6379321143090599E-10 2.1428647999318527E-10 1.7376243480421984E-10 + 1.4065018998145008E-10 1.1364264576111078E-10 9.1654151991692064E-11 + 7.3784627793935841E-11 5.9289209144895249E-11 4.7552620631484013E-11 + 3.8067576777078581E-11 3.0416613862930298E-11 2.4256836575276623E-11 + 1.9307136492303796E-11 1.5337502629110471E-11 1.2160099104156885E-11 + 9.6218324821182901E-12 7.5981723842275284E-12 5.9880243397602951E-12 + 4.7094842946548456E-12 3.6963303285697323E-12 2.8951295205986601E-12 + 2.2628570415176819E-12 1.7649408730327705E-12 1.3736594453366553E-12 + 1.0668312793691857E-12 8.2674571328688053E-13 6.3929224001416233E-13 + 4.9325310728611573E-13 3.7972982674474776E-13 2.9167927186543533E-13 + 2.2353926034536664E-13 1.7092703959737495E-13 1.3039703112583121E-13 + 9.9246632470577095E-14 7.5360902424432671E-14 5.7088633137505612E-14 + 4.3143698297316484E-14 3.2526707971428797E-14 2.4462938650949041E-14 + 1.8353275903186483E-14 1.3735535745822061E-14 1.0254043660303394E-14 + 7.6357673806871242E-15 5.6716381816780708E-15 4.2019694626552459E-15 + 3.1051027039276180E-15 2.2885890628117903E-15 1.6823579950763189E-15 + 1.2334389321874626E-15 9.0189363716701953E-16 6.5768984105263368E-16 + 4.7830475345247947E-16 3.4689299702713351E-16 2.5088983487664163E-16 + 1.8094918318748837E-16 1.3013839638433167E-16 9.3329443080889542E-17 + 6.6739867445803333E-17 4.7587662369592888E-17 3.3832539964897981E-17 + 2.3982523667235458E-17 1.6949751717487753E-17 1.1943432944273716E-17 + 8.3903472182349129E-18 5.8763120629846942E-18 4.1029115471940856E-18 + 2.8558143167044101E-18 1.9815557987285332E-18 1.3705948222850921E-18 + 9.4498761313215357E-19 6.4944906134634737E-19 4.4489099176946433E-19 + 3.0376599529145379E-19 2.0672314239696963E-19 1.4021378170790501E-19 + 9.4783146548986925E-20 6.3855365545194072E-20 4.2872267065022708E-20 + 2.8685015994048229E-20 1.9125818651730257E-20 1.2707433398433743E-20 + 8.4130793800371278E-21 5.5500617289672570E-21 3.6481488547393429E-21 + 2.3892704163253428E-21 1.5590572633336640E-21 1.0135582194629623E-21 + 6.5646405099582160E-22 4.2357901165447711E-22 2.7227304514314228E-22 + 1.7434398437685208E-22 1.1120559350515536E-22 7.0655953599478989E-23 + 4.4715526240196114E-23 2.8186441153907612E-23 1.7696166230659742E-23 + 1.1065213023418312E-23 6.8907498343423515E-24 4.2734993028927463E-24 + 2.6393406341944467E-24 1.6232520916494741E-24 9.9412077950374124E-25 + 6.0623189592549105E-25 3.6810229306555084E-25 2.2254195302328331E-25 + 1.3395294993427802E-25 8.0273634666669246E-26 4.7891334022545704E-26 + 2.8443776987663673E-26 1.6816930851626726E-26 9.8973295712629152E-27 + 5.7980730014599169E-27 3.3808512899216538E-27 1.9621284881476432E-27 + 1.1333652740112683E-27 6.5153146574184827E-28 3.7273976397773471E-28 + 2.1220839004580583E-28 1.2022294867139495E-28 6.7773756566352217E-29 + 3.8015990146279902E-29 2.1216936487851407E-29 1.1781255477812556E-29 + 6.5083927509262701E-30 3.5769248393368028E-30 1.9556008093763681E-30 + 1.0635679206972953E-30 5.7536709437388271E-31 3.0959901435748198E-31 + 1.6569473527968287E-31 8.8196656222448094E-32 4.6688435937635628E-32 + 2.4578744436607613E-32 1.2867152241859680E-32 6.6981770052353008E-33 + 3.4670582453050686E-33 1.7843282002842266E-33 9.1301101205932279E-34 + 4.6445474286045066E-34 2.3488494322669296E-34 1.1808356824628854E-34 + 5.9009813363407397E-35 2.9311450531965591E-35 1.4471259684354619E-35 + 7.1008252428260958E-36 3.4627578672165674E-36 1.6781216311939067E-36 + 8.0814595293929624E-37 3.8672132262603243E-37 1.8387603291073408E-37 + 8.6865518149715925E-38 4.0770067221396127E-38 1.9010058663368337E-38 + 8.8054113329103173E-39 4.0515014580539680E-39 1.8516477163752603E-39 + 8.4052851230988279E-40 3.7894294345316849E-40 1.6966720700653701E-40 + 7.5439707250356299E-41 3.3308511233663953E-41 1.4602882904133586E-41 + 6.3566018880565453E-42 2.7471931414020008E-42 1.1787067140604406E-42 + 5.0205256080730280E-43 2.1227255020704811E-43 8.9086919537631206E-44 + 3.7109372480530024E-44 1.5341818202112150E-44 6.2945905320113339E-45 + 2.5628861412826993E-45 1.0354662435724361E-45 4.1510819620073449E-46 + 1.6511192700598311E-46 6.5156024123599193E-47 2.5508105393159189E-47 + 9.9082464000404597E-48 3.8141894553665325E-48 1.4483090614551868E-48 + 5.4528006682031085E-49 2.0353753907981692E-49 7.5318694497810303E-50 + + + 7.9272356636860691E-15 1.2744854514350299E-06 2.5602892702876237E-06 + 3.8575119719726905E-06 5.1662549645557236E-06 6.4866205566800390E-06 + 7.8187119655646884E-06 9.1626333250731538E-06 1.0518489693853885E-05 + 1.1886387063553092E-05 1.3266432367100354E-05 1.4658733487067968E-05 + 1.6063399264104375E-05 1.7480539505442723E-05 1.8910264993484658E-05 + 2.0352687494460684E-05 2.1807919767167173E-05 2.3276075571781077E-05 + 2.4757269678753003E-05 2.6251617877778977E-05 2.7759236986852370E-05 + 2.9280244861395653E-05 3.0814760403473593E-05 3.2362903571088312E-05 + 3.3924795387556615E-05 3.5500557950970814E-05 3.7090314443743544E-05 + 3.8694189142237279E-05 4.0312307426479289E-05 4.1944795789963220E-05 + 4.3591781849537230E-05 4.5253394355380357E-05 4.6929763201067229E-05 + 4.8621019433722217E-05 5.0327295264263791E-05 5.2048724077739980E-05 + 5.3785440443755307E-05 5.5537580126990636E-05 5.7305280097816138E-05 + 5.9088678542998889E-05 6.0887914876505135E-05 6.2703129750398901E-05 + 6.4534465065837067E-05 6.6382063984162114E-05 6.8246070938093721E-05 + 7.0126631643019260E-05 7.2023893108384975E-05 7.3938003649187990E-05 + 7.5869112897570756E-05 7.7817371814517926E-05 7.9782932701657678E-05 + 8.1765949213167473E-05 8.3766576367785771E-05 8.5784970560929982E-05 + 8.7821289576922864E-05 8.9875692601326459E-05 9.1948340233386503E-05 + 9.4039394498586601E-05 9.6149018861314532E-05 9.8277378237640570E-05 + 1.0042463900820944E-04 1.0259096903124677E-04 1.0477653765568117E-04 + 1.0698151573438273E-04 1.0920607563751872E-04 1.1145039126602878E-04 + 1.1371463806521904E-04 1.1599899303847680E-04 1.1830363476110808E-04 + 1.2062874339429690E-04 1.2297450069918912E-04 1.2534109005110099E-04 + 1.2772869645385473E-04 1.3013750655423999E-04 1.3256770865660512E-04 + 1.3501949273757728E-04 1.3749305046091339E-04 1.3998857519248312E-04 + 1.4250626201538466E-04 1.4504630774519507E-04 1.4760891094535577E-04 + 1.5019427194269512E-04 1.5280259284308772E-04 1.5543407754725459E-04 + 1.5808893176670193E-04 1.6076736303980246E-04 1.6346958074801884E-04 + 1.6619579613227225E-04 1.6894622230945511E-04 1.7172107428909124E-04 + 1.7452056899014347E-04 1.7734492525797114E-04 1.8019436388143757E-04 + 1.8306910761016975E-04 1.8596938117197115E-04 1.8889541129038940E-04 + 1.9184742670243991E-04 1.9482565817648665E-04 1.9783033853028209E-04 + 2.0086170264916692E-04 2.0391998750443168E-04 2.0700543217184181E-04 + 2.1011827785032605E-04 2.1325876788083213E-04 2.1642714776534937E-04 + 2.1962366518609957E-04 2.2284857002489953E-04 2.2610211438269475E-04 + 2.2938455259926662E-04 2.3269614127311493E-04 2.3603713928151650E-04 + 2.3940780780076280E-04 2.4280841032657611E-04 2.4623921269470770E-04 + 2.4970048310171938E-04 2.5319249212594819E-04 2.5671551274865855E-04 + 2.6026982037538219E-04 2.6385569285744640E-04 2.6747341051369477E-04 + 2.7112325615240046E-04 2.7480551509337364E-04 2.7852047519026543E-04 + 2.8226842685307065E-04 2.8604966307082890E-04 2.8986447943452916E-04 + 2.9371317416021573E-04 2.9759604811230078E-04 3.0151340482708407E-04 + 3.0546555053648006E-04 3.0945279419195720E-04 3.1347544748868951E-04 + 3.1753382488992161E-04 3.2162824365155126E-04 3.2575902384693068E-04 + 3.2992648839188572E-04 3.3413096306996013E-04 3.3837277655788189E-04 + 3.4265226045125652E-04 3.4696974929048901E-04 3.5132558058693469E-04 + 3.5572009484928355E-04 3.6015363561017841E-04 3.6462654945306882E-04 + 3.6913918603930488E-04 3.7369189813547034E-04 3.7828504164095860E-04 + 3.8291897561579496E-04 3.8759406230870339E-04 3.9231066718542522E-04 + 3.9706915895728804E-04 4.0186990961002745E-04 4.0671329443286617E-04 + 4.1159969204785209E-04 4.1652948443945335E-04 4.2150305698442032E-04 + 4.2652079848191004E-04 4.3158310118387983E-04 4.3669036082574932E-04 + 4.4184297665733618E-04 4.4704135147406488E-04 4.5228589164845540E-04 + 4.5757700716188743E-04 4.6291511163665098E-04 4.6830062236827904E-04 + 4.7373396035816669E-04 4.7921555034648335E-04 4.8474582084537271E-04 + 4.9032520417245141E-04 4.9595413648460362E-04 5.0163305781207406E-04 + 5.0736241209286691E-04 5.1314264720744905E-04 5.1897421501375903E-04 + 5.2485757138253123E-04 5.3079317623292951E-04 5.3678149356850135E-04 + 5.4282299151344653E-04 5.4891814234921316E-04 5.5506742255141336E-04 + 5.6127131282707231E-04 5.6753029815220205E-04 5.7384486780971428E-04 + 5.8021551542766661E-04 5.8664273901784948E-04 5.9312704101471619E-04 + 5.9966892831465673E-04 6.0626891231562320E-04 6.1292750895710442E-04 + 6.1964523876045742E-04 6.2642262686959591E-04 6.3326020309204055E-04 + 6.4015850194033342E-04 6.4711806267382091E-04 6.5413942934080724E-04 + 6.6122315082108095E-04 6.6836978086882212E-04 6.7557987815588692E-04 + 6.8285400631548025E-04 6.9019273398621237E-04 6.9759663485655023E-04 + 7.0506628770966031E-04 7.1260227646865288E-04 7.2020519024222521E-04 + 7.2787562337071172E-04 7.3561417547254198E-04 7.4342145149111215E-04 + 7.5129806174207322E-04 7.5924462196103569E-04 7.6726175335170262E-04 + 7.7535008263442703E-04 7.8351024209520051E-04 7.9174286963507859E-04 + 8.0004860882004259E-04 8.0842810893130661E-04 8.1688202501606941E-04 + 8.2541101793871775E-04 8.3401575443248438E-04 8.4269690715156457E-04 + 8.5145515472369435E-04 8.6029118180319772E-04 8.6920567912450366E-04 + 8.7819934355613761E-04 8.8727287815519443E-04 8.9642699222229161E-04 + 9.0566240135701490E-04 9.1497982751385194E-04 9.2437999905862556E-04 + 9.3386365082542681E-04 9.4343152417405269E-04 9.5308436704795592E-04 + 9.6282293403270774E-04 9.7264798641498007E-04 9.8256029224205277E-04 + 9.9256062638184437E-04 1.0026497705834842E-03 1.0128285135384124E-03 + 1.0230976509420318E-03 1.0334579855559006E-03 1.0439103272704795E-03 + 1.0544554931684361E-03 1.0650943075885106E-03 1.0758276021899502E-03 + 1.0866562160175136E-03 1.0975809955670532E-03 1.1086027948516805E-03 + 1.1197224754685164E-03 1.1309409066660374E-03 1.1422589654120179E-03 + 1.1536775364620765E-03 1.1651975124288285E-03 1.1768197938516549E-03 + 1.1885452892670910E-03 1.2003749152798369E-03 1.2123095966344022E-03 + 1.2243502662873851E-03 1.2364978654803901E-03 1.2487533438135987E-03 + 1.2611176593199903E-03 1.2735917785402183E-03 1.2861766765981620E-03 + 1.2988733372771347E-03 1.3116827530967776E-03 1.3246059253906365E-03 + 1.3376438643844222E-03 1.3507975892749690E-03 1.3640681283098950E-03 + 1.3774565188679638E-03 1.3909638075401683E-03 1.4045910502115256E-03 + 1.4183393121436035E-03 1.4322096680577806E-03 1.4462032022192382E-03 + 1.4603210085217049E-03 1.4745641905729503E-03 1.4889338617810391E-03 + 1.5034311454413464E-03 1.5180571748243553E-03 1.5328130932642213E-03 + 1.5477000542481298E-03 1.5627192215064483E-03 1.5778717691036744E-03 + 1.5931588815301914E-03 1.6085817537948438E-03 1.6241415915183236E-03 + 1.6398396110273996E-03 1.6556770394499695E-03 1.6716551148109669E-03 + 1.6877750861291085E-03 1.7040382135145107E-03 1.7204457682671629E-03 + 1.7369990329762827E-03 1.7536993016205478E-03 1.7705478796692217E-03 + 1.7875460841841682E-03 1.8046952439227846E-03 1.8219966994418328E-03 + 1.8394518032022061E-03 1.8570619196746200E-03 1.8748284254462347E-03 + 1.8927527093282319E-03 1.9108361724643466E-03 1.9290802284403555E-03 + 1.9474863033945400E-03 1.9660558361291342E-03 1.9847902782227532E-03 + 2.0036910941438231E-03 2.0227597613650199E-03 2.0419977704787175E-03 + 2.0614066253134720E-03 2.0809878430515204E-03 2.1007429543473386E-03 + 2.1206735034472466E-03 2.1407810483100686E-03 2.1610671607288729E-03 + 2.1815334264537875E-03 2.2021814453158984E-03 2.2230128313522630E-03 + 2.2440292129320173E-03 2.2652322328836076E-03 2.2866235486231558E-03 + 2.3082048322839526E-03 2.3299777708471075E-03 2.3519440662733565E-03 + 2.3741054356360364E-03 2.3964636112552406E-03 2.4190203408331655E-03 + 2.4417773875906501E-03 2.4647365304049391E-03 2.4878995639486599E-03 + 2.5112682988300294E-03 2.5348445617343124E-03 2.5586301955665275E-03 + 2.5826270595954229E-03 2.6068370295987287E-03 2.6312619980096894E-03 + 2.6559038740649114E-03 2.6807645839535036E-03 2.7058460709675561E-03 + 2.7311502956539396E-03 2.7566792359674632E-03 2.7824348874253787E-03 + 2.8084192632632670E-03 2.8346343945922911E-03 2.8610823305578563E-03 + 2.8877651384996731E-03 2.9146849041132342E-03 2.9418437316127335E-03 + 2.9692437438954165E-03 2.9968870827073940E-03 3.0247759088109279E-03 + 3.0529124021531949E-03 3.0812987620365494E-03 3.1099372072902944E-03 + 3.1388299764439687E-03 3.1679793279021803E-03 3.1973875401209838E-03 + 3.2270569117858173E-03 3.2569897619910246E-03 3.2871884304209583E-03 + 3.3176552775326957E-03 3.3483926847403651E-03 3.3794030546011136E-03 + 3.4106888110027197E-03 3.4422523993528679E-03 3.4740962867700910E-03 + 3.5062229622764211E-03 3.5386349369917313E-03 3.5713347443298081E-03 + 3.6043249401961595E-03 3.6376081031875653E-03 3.6711868347934075E-03 + 3.7050637595987756E-03 3.7392415254893794E-03 3.7737228038582510E-03 + 3.8085102898143216E-03 3.8436067023927965E-03 3.8790147847674239E-03 + 3.9147373044646338E-03 3.9507770535795661E-03 3.9871368489940310E-03 + 4.0238195325963668E-03 4.0608279715032706E-03 4.0981650582835793E-03 + 4.1358337111840398E-03 4.1738368743570627E-03 4.2121775180905098E-03 + 4.2508586390394929E-03 4.2898832604602458E-03 4.3292544324460497E-03 + 4.3689752321652399E-03 4.4090487641013547E-03 4.4494781602953540E-03 + 4.4902665805900202E-03 4.5314172128765049E-03 4.5729332733430621E-03 + 4.6148180067259710E-03 4.6570746865626884E-03 4.6997066154472293E-03 + 4.7427171252878110E-03 4.7861095775667724E-03 4.8298873636027900E-03 + 4.8740539048154220E-03 4.9186126529919610E-03 4.9635670905566771E-03 + 5.0089207308424239E-03 5.0546771183646406E-03 5.1008398290977959E-03 + 5.1474124707542330E-03 5.1943986830655237E-03 5.2418021380662679E-03 + 5.2896265403804344E-03 5.3378756275101911E-03 5.3865531701273294E-03 + 5.4356629723672119E-03 5.4852088721253564E-03 5.5351947413566126E-03 + 5.5856244863769873E-03 5.6365020481681403E-03 5.6878314026845463E-03 + 5.7396165611633809E-03 5.7918615704371451E-03 5.8445705132490209E-03 + 5.8977475085710412E-03 5.9513967119250522E-03 6.0055223157064758E-03 + 6.0601285495109807E-03 6.1152196804639819E-03 6.1708000135530794E-03 + 6.2268738919634059E-03 6.2834456974159300E-03 6.3405198505087487E-03 + 6.3981008110613764E-03 6.4561930784620735E-03 6.5148011920182197E-03 + 6.5739297313097984E-03 6.6335833165459528E-03 6.6937666089247087E-03 + 6.7544843109958565E-03 6.8157411670270208E-03 6.8775419633729630E-03 + 6.9398915288480974E-03 7.0027947351023172E-03 7.0662564970001267E-03 + 7.1302817730030648E-03 7.1948755655555467E-03 7.2600429214740260E-03 + 7.3257889323396436E-03 7.3921187348942952E-03 7.4590375114401506E-03 + 7.5265504902427283E-03 7.5946629459374849E-03 7.6633801999399578E-03 + 7.7327076208595323E-03 7.8026506249168175E-03 7.8732146763647124E-03 + 7.9444052879131012E-03 8.0162280211573660E-03 8.0886884870105414E-03 + 8.1617923461393647E-03 8.2355453094040843E-03 8.3099531383020817E-03 + 8.3850216454155069E-03 8.4607566948626638E-03 8.5371642027535118E-03 + 8.6142501376490158E-03 8.6920205210245741E-03 8.7704814277375226E-03 + 8.8496389864986535E-03 8.9294993803479342E-03 9.0100688471343171E-03 + 9.0913536799997578E-03 9.1733602278675046E-03 9.2560948959345413E-03 + 9.3395641461684747E-03 9.4237744978086149E-03 9.5087325278714954E-03 + 9.5944448716608205E-03 9.6809182232817717E-03 9.7681593361598970E-03 + 9.8561750235644091E-03 9.9449721591361503E-03 1.0034557677420076E-02 + 1.0124938574402342E-02 1.0216121908052178E-02 1.0308114798868347E-02 + 1.0400924430430428E-02 1.0494558049954866E-02 1.0589022968855787E-02 + 1.0684326563310836E-02 1.0780476274831703E-02 1.0877479610839801E-02 + 1.0975344145246816E-02 1.1074077519040266E-02 1.1173687440874268E-02 + 1.1274181687665214E-02 1.1375568105192795E-02 1.1477854608706111E-02 + 1.1581049183534978E-02 1.1685159885706686E-02 1.1790194842567860E-02 + 1.1896162253411882E-02 1.2003070390111564E-02 1.2110927597757415E-02 + 1.2219742295301298E-02 1.2329522976205633E-02 1.2440278209098288E-02 + 1.2552016638432967E-02 1.2664746985155373E-02 1.2778478047375056E-02 + 1.2893218701042956E-02 1.3008977900634933E-02 1.3125764679840947E-02 + 1.3243588152260311E-02 1.3362457512102813E-02 1.3482382034895785E-02 + 1.3603371078197396E-02 1.3725434082315784E-02 1.3848580571034590E-02 + 1.3972820152344486E-02 1.4098162519180991E-02 1.4224617450168651E-02 + 1.4352194810371404E-02 1.4480904552049489E-02 1.4610756715422659E-02 + 1.4741761429439910E-02 1.4873928912555784E-02 1.5007269473513172E-02 + 1.5141793512132847E-02 1.5277511520109538E-02 1.5414434081814895E-02 + 1.5552571875107115E-02 1.5691935672147394E-02 1.5832536340223385E-02 + 1.5974384842579438E-02 1.6117492239253916E-02 1.6261869687923560E-02 + 1.6407528444754817E-02 1.6554479865262497E-02 1.6702735405175417E-02 + 1.6852306621309470E-02 1.7003205172447924E-02 1.7155442820228919E-02 + 1.7309031430040724E-02 1.7463982971923992E-02 1.7620309521481928E-02 + 1.7778023260797811E-02 1.7937136479360079E-02 1.8097661574995292E-02 + 1.8259611054808573E-02 1.8422997536132042E-02 1.8587833747480870E-02 + 1.8754132529517402E-02 1.8921906836023111E-02 1.9091169734878458E-02 + 1.9261934409051076E-02 1.9434214157591650E-02 1.9608022396638339E-02 + 1.9783372660429125E-02 1.9960278602322495E-02 2.0138753995826524E-02 + 2.0318812735636169E-02 2.0500468838679099E-02 2.0683736445169972E-02 + 2.0868629819673096E-02 2.1055163352173934E-02 2.1243351559158952E-02 + 2.1433209084704374E-02 2.1624750701573568E-02 2.1817991312323114E-02 + 2.2012945950418014E-02 2.2209629781355419E-02 2.2408058103797607E-02 + 2.2608246350713811E-02 2.2810210090531031E-02 2.3013965028294153E-02 + 2.3219527006834929E-02 2.3426912007950506E-02 2.3636136153590802E-02 + 2.3847215707055530E-02 2.4060167074200396E-02 2.4275006804652617E-02 + 2.4491751593036137E-02 2.4710418280205995E-02 2.4931023854492574E-02 + 2.5153585452955225E-02 2.5378120362645452E-02 2.5604646021880034E-02 + 2.5833180021523600E-02 2.6063740106281166E-02 2.6296344176000373E-02 + 2.6531010286983452E-02 2.6767756653309480E-02 2.7006601648166012E-02 + 2.7247563805191197E-02 2.7490661819825582E-02 2.7735914550673976E-02 + 2.7983341020877628E-02 2.8232960419496231E-02 2.8484792102900326E-02 + 2.8738855596173642E-02 2.8995170594525953E-02 2.9253756964715889E-02 + 2.9514634746484154E-02 2.9777824153997164E-02 3.0043345577300731E-02 + 3.0311219583784424E-02 3.0581466919656110E-02 3.0854108511426837E-02 + 3.1129165467406419E-02 3.1406659079209143E-02 3.1686610823270178E-02 + 3.1969042362372316E-02 3.2253975547183192E-02 3.2541432417803128E-02 + 3.2831435205323313E-02 3.3124006333394643E-02 3.3419168419807015E-02 + 3.3716944278078996E-02 3.4017356919058349E-02 3.4320429552532651E-02 + 3.4626185588850819E-02 3.4934648640554844E-02 3.5245842524022075E-02 + 3.5559791261118162E-02 3.5876519080860092E-02 3.6196050421090128E-02 + 3.6518409930159645E-02 3.6843622468623813E-02 3.7171713110946414E-02 + 3.7502707147214834E-02 3.7836630084865742E-02 3.8173507650420539E-02 + 3.8513365791231477E-02 3.8856230677237591E-02 3.9202128702730682E-02 + 3.9551086488131805E-02 3.9903130881777084E-02 4.0258288961714038E-02 + 4.0616588037507340E-02 4.0978055652054438E-02 4.1342719583411069E-02 + 4.1710607846625933E-02 4.2081748695585425E-02 4.2456170624867319E-02 + 4.2833902371603866E-02 4.3214972917354343E-02 4.3599411489986264E-02 + 4.3987247565565962E-02 4.4378510870257598E-02 4.4773231382231271E-02 + 4.5171439333579547E-02 4.5573165212241945E-02 4.5978439763938631E-02 + 4.6387293994111178E-02 4.6799759169872009E-02 4.7215866821961258E-02 + 4.7635648746711015E-02 4.8059137008017450E-02 4.8486363939319418E-02 + 4.8917362145584800E-02 4.9352164505302838E-02 4.9790804172483251E-02 + 5.0233314578661835E-02 5.0679729434911600E-02 5.1130082733860098E-02 + 5.1584408751711920E-02 5.2042742050276279E-02 5.2505117479000045E-02 + 5.2971570177004539E-02 5.3442135575127399E-02 5.3916849397967891E-02 + 5.4395747665935662E-02 5.4878866697303498E-02 5.5366243110261899E-02 + 5.5857913824977179E-02 5.6353916065650649E-02 5.6854287362580434E-02 + 5.7359065554223779E-02 5.7868288789260411E-02 5.8381995528656527E-02 + 5.8900224547728058E-02 5.9423014938203997E-02 5.9950406110288068E-02 + 6.0482437794718728E-02 6.1019150044827566E-02 6.1560583238594070E-02 + 6.2106778080697790E-02 6.2657775604566174E-02 6.3213617174417688E-02 + 6.3774344487300211E-02 6.4339999575122847E-02 6.4910624806682027E-02 + 6.5486262889679528E-02 6.6066956872732618E-02 6.6652750147376108E-02 + 6.7243686450053672E-02 6.7839809864099945E-02 6.8441164821710490E-02 + 6.9047796105900408E-02 6.9659748852449466E-02 7.0277068551833397E-02 + 7.0899801051140909E-02 7.1527992555974002E-02 7.2161689632332437E-02 + 7.2800939208479479E-02 7.3445788576789198E-02 7.4096285395573822E-02 + 7.4752477690889413E-02 7.5414413858319762E-02 7.6082142664736507E-02 + 7.6755713250034066E-02 7.7435175128839365E-02 7.8120578192193021E-02 + 7.8811972709202802E-02 7.9509409328666292E-02 8.0212939080661863E-02 + 8.0922613378107022E-02 8.1638484018281401E-02 8.2360603184314277E-02 + 8.3089023446633561E-02 8.3823797764375332E-02 8.4564979486752664E-02 + 8.5312622354380349E-02 8.6066780500555995E-02 8.6827508452492916E-02 + 8.7594861132505697E-02 8.8368893859144176E-02 8.9149662348274511E-02 + 8.9937222714106396E-02 9.0731631470161833E-02 9.1532945530185927E-02 + 9.2341222208995280E-02 9.3156519223262194E-02 9.3978894692233694E-02 + 9.4808407138380110E-02 9.5645115487973470E-02 9.6489079071591127E-02 + 9.7340357624542143E-02 9.8199011287215449E-02 9.9065100605343612E-02 + 9.9938686530182855E-02 1.0081983041860337E-01 1.0170859403308841E-01 + 1.0260503954163867E-01 1.0350922951757814E-01 1.0442122693925893E-01 + 1.0534109518966028E-01 1.0626889805587980E-01 1.0720469972851195E-01 + 1.0814856480091005E-01 1.0910055826832962E-01 1.1006074552694582E-01 + 1.1102919237274475E-01 1.1200596500028148E-01 1.1299113000130109E-01 + 1.1398475436321996E-01 1.1498690546745997E-01 1.1599765108763380E-01 + 1.1701705938757404E-01 1.1804519891920279E-01 1.1908213862023613E-01 + 1.2012794781171808E-01 1.2118269619537916E-01 1.2224645385081380E-01 + 1.2331929123247015E-01 1.2440127916644918E-01 1.2549248884710293E-01 + 1.2659299183343053E-01 1.2770286004526130E-01 1.2882216575922248E-01 + 1.2995098160448196E-01 1.3108938055826033E-01 1.3223743594110712E-01 + 1.3339522141193000E-01 1.3456281096277437E-01 1.3574027891334264E-01 + 1.3692769990524592E-01 1.3812514889598271E-01 1.3933270115263244E-01 + 1.4055043224525990E-01 1.4177841804001889E-01 1.4301673469194748E-01 + 1.4426545863744727E-01 1.4552466658643454E-01 1.4679443551415761E-01 + 1.4807484265266757E-01 1.4936596548193429E-01 1.5066788172059753E-01 + 1.5198066931634235E-01 1.5330440643588869E-01 1.5463917145458381E-01 + 1.5598504294558629E-01 1.5734209966863230E-01 1.5871042055836865E-01 + 1.6009008471224503E-01 1.6148117137794935E-01 1.6288375994037671E-01 + 1.6429792990811759E-01 1.6572376089945129E-01 1.6716133262783467E-01 + 1.6861072488686787E-01 1.7007201753472670E-01 1.7154529047804523E-01 + 1.7303062365523408E-01 1.7452809701922098E-01 1.7603779051959456E-01 + 1.7755978408414089E-01 1.7909415759975103E-01 1.8064099089268665E-01 + 1.8220036370818643E-01 1.8377235568939387E-01 1.8535704635559205E-01 + 1.8695451507972444E-01 1.8856484106518409E-01 1.9018810332185429E-01 + 1.9182438064137755E-01 1.9347375157163776E-01 1.9513629439043037E-01 + 1.9681208707830522E-01 1.9850120729055676E-01 2.0020373232834204E-01 + 2.0191973910890518E-01 2.0364930413488355E-01 2.0539250346267648E-01 + 2.0714941266984893E-01 2.0892010682154899E-01 2.1070466043591501E-01 + 2.1250314744844584E-01 2.1431564117531024E-01 2.1614221427556954E-01 + 2.1798293871228558E-01 2.1983788571249069E-01 2.2170712572598728E-01 + 2.2359072838295493E-01 2.2548876245033106E-01 2.2740129578693952E-01 + 2.2932839529733781E-01 2.3127012688435009E-01 2.3322655540025888E-01 + 2.3519774459662154E-01 2.3718375707268027E-01 2.3918465422233659E-01 + 2.4120049617965134E-01 2.4323134176284381E-01 2.4527724841674931E-01 + 2.4733827215370777E-01 2.4941446749284135E-01 2.5150588739768975E-01 + 2.5361258321216745E-01 2.5573460459480218E-01 2.5787199945122280E-01 + 2.6002481386485343E-01 2.6219309202577884E-01 2.6437687615774325E-01 + 2.6657620644323721E-01 2.6879112094664154E-01 2.7102165553537921E-01 + 2.7326784379903984E-01 2.7552971696643452E-01 2.7780730382053542E-01 + 2.8010063061126439E-01 2.8240972096608119E-01 2.8473459579833205E-01 + 2.8707527321331439E-01 2.8943176841201201E-01 2.9180409359245990E-01 + 2.9419225784868802E-01 2.9659626706720760E-01 2.9901612382098519E-01 + 3.0145182726086606E-01 3.0390337300439907E-01 3.0637075302201439E-01 + 3.0885395552051320E-01 3.1135296482381841E-01 3.1386776125094124E-01 + 3.1639832099112186E-01 3.1894461597608920E-01 3.2150661374940354E-01 + 3.2408427733282830E-01 3.2667756508968826E-01 3.2928643058517065E-01 + 3.3191082244351872E-01 3.3455068420207990E-01 3.3720595416215760E-01 + 3.3987656523662590E-01 3.4256244479426767E-01 3.4526351450078457E-01 + 3.4797969015644842E-01 3.5071088153034491E-01 3.5345699219117233E-01 + 3.5621791933456243E-01 3.5899355360687524E-01 3.6178377892544483E-01 + 3.6458847229522995E-01 3.6740750362184665E-01 3.7024073552094572E-01 + 3.7308802312390782E-01 3.7594921387983204E-01 3.7882414735378889E-01 + 3.8171265502131985E-01 3.8461456005916100E-01 3.8752967713217434E-01 + 3.9045781217647713E-01 3.9339876217875042E-01 3.9635231495172968E-01 + 3.9931824890586548E-01 4.0229633281715932E-01 4.0528632559117761E-01 + 4.0828797602325539E-01 4.1130102255489492E-01 4.1432519302638871E-01 + 4.1736020442568583E-01 4.2040576263352286E-01 4.2346156216486946E-01 + 4.2652728590671657E-01 4.2960260485226459E-01 4.3268717783155264E-01 + 4.3578065123860693E-01 4.3888265875516680E-01 4.4199282107106352E-01 + 4.4511074560134622E-01 4.4823602620024416E-01 4.5136824287206428E-01 + 4.5450696147914693E-01 4.5765173344699328E-01 4.6080209546670942E-01 + 4.6395756919489434E-01 4.6711766095115131E-01 4.7028186141337308E-01 + 4.7344964531098871E-01 4.7662047111637162E-01 4.7979378073460788E-01 + 4.8296899919186104E-01 4.8614553432255320E-01 4.8932277645563799E-01 + 4.9250009810022288E-01 4.9567685363082475E-01 4.9885237897257972E-01 + 5.0202599128671799E-01 5.0519698865664897E-01 5.0836464977502449E-01 + 5.1152823363216082E-01 5.1468697920622619E-01 5.1784010515561585E-01 + 5.2098680951397447E-01 5.2412626938833640E-01 5.2725764066087633E-01 + 5.3038005769480867E-01 5.3349263304497718E-01 5.3659445717371279E-01 + 5.3968459817257575E-01 5.4276210149060677E-01 5.4582598966976370E-01 + 5.4887526208822812E-01 5.5190889471232329E-01 5.5492583985779675E-01 + 5.5792502596126214E-01 5.6090535736263281E-01 5.6386571409941000E-01 + 5.6680495171372791E-01 5.6972190107308551E-01 5.7261536820575365E-01 + 5.7548413415186195E-01 5.7832695483122065E-01 5.8114256092897265E-01 + 5.8392965780021666E-01 5.8668692539476441E-01 5.8941301820326364E-01 + 5.9210656522594340E-01 5.9476616996529186E-01 5.9739041044400454E-01 + 5.9997783924961245E-01 6.0252698360722168E-01 6.0503634548183982E-01 + 6.0750440171183628E-01 6.0992960417509745E-01 6.1231037998949345E-01 + 6.1464513174933622E-01 6.1693223779952044E-01 6.1917005254911384E-01 + 6.2135690682618205E-01 6.2349110827569798E-01 6.2557094180241402E-01 + 6.2759467006061131E-01 6.2956053399270184E-01 6.3146675341867131E-01 + 6.3331152767840337E-01 6.3509303632895264E-01 6.3680943989886984E-01 + 6.3845888070170609E-01 6.4003948371085251E-01 6.4154935749789621E-01 + 6.4298659523668944E-01 6.4434927577534018E-01 6.4563546477835621E-01 + 6.4684321594116512E-01 6.4797057227924426E-01 6.4901556749408562E-01 + 6.4997622741820849E-01 6.5085057154142112E-01 6.5163661462049827E-01 + 6.5233236837441733E-01 6.5293584326725129E-01 6.5344505038076994E-01 + 6.5385800337873212E-01 6.5417272056479780E-01 6.5438722703589580E-01 + 6.5449955693279449E-01 6.5450775578952314E-01 6.5440988298316838E-01 + 6.5420401428544239E-01 6.5388824451727356E-01 6.5346069030751031E-01 + 6.5291949295664664E-01 6.5226282140629277E-01 6.5148887531489019E-01 + 6.5059588823995151E-01 6.4958213092684214E-01 6.4844591470386004E-01 + 6.4718559498306727E-01 6.4579957486602113E-01 6.4428630885319849E-01 + 6.4264430665556171E-01 6.4087213710630919E-01 6.3896843217044996E-01 + 6.3693189104939196E-01 6.3476128437726420E-01 6.3245545850521023E-01 + 6.3001333986933161E-01 6.2743393943743375E-01 6.2471635722911834E-01 + 6.2185978690316157E-01 6.1886352040544668E-01 6.1572695267005950E-01 + 6.1244958636542657E-01 6.0903103667663061E-01 6.0547103611425768E-01 + 6.0176943933933136E-01 5.9792622799302475E-01 5.9394151551898833E-01 + 5.8981555196521063E-01 5.8554872875141961E-01 5.8114158338703792E-01 + 5.7659480412374775E-01 5.7190923452570319E-01 5.6708587793938003E-01 + 5.6212590184401467E-01 5.5703064206252018E-01 5.5180160681166068E-01 + 5.4644048056919914E-01 5.4094912773461723E-01 5.3532959605893449E-01 + 5.2958411981802089E-01 5.2371512270275422E-01 5.1772522039830171E-01 + 5.1161722282373934E-01 5.0539413600225269E-01 4.9905916353116658E-01 + 4.9261570762016310E-01 4.8606736966514857E-01 4.7941795032448570E-01 + 4.7267144906358322E-01 4.6583206313321213E-01 4.5890418594642507E-01 + 4.5189240481859000E-01 4.4480149803474595E-01 4.3763643120845391E-01 + 4.3040235289632983E-01 4.2310458943275242E-01 4.1574863894963521E-01 + 4.0834016454687372E-01 4.0088498657999150E-01 3.9338907403264750E-01 + 3.8585853494317818E-01 3.7829960585606559E-01 3.7071864027134926E-01 + 3.6312209606738693E-01 3.5551652187520211E-01 3.4790854238586189E-01 + 3.4030484257588256E-01 3.3271215083975780E-01 3.2513722102319026E-01 + 3.1758681335556060E-01 3.1006767428568571E-01 3.0258651523087943E-01 + 2.9514999025589916E-01 2.8776467270538747E-01 2.8043703082110805E-01 + 2.7317340238348520E-01 2.6597996842571786E-01 2.5886272607815985E-01 + 2.5182746061061362E-01 2.4487971675070630E-01 2.3802476936764802E-01 + 2.3126759362233021E-01 2.2461283469691917E-01 2.1806477722976708E-01 + 2.1162731459463718E-01 2.0530391817682081E-01 1.9909760681260255E-01 + 1.9301091657281189E-01 1.8704587108559989E-01 1.8120395260819036E-01 + 1.7548607407192870E-01 1.6989255233950251E-01 1.6442308292754709E-01 + 1.5907671646178739E-01 1.5385183714539108E-01 1.4874653561022774E-01 + 1.4375997113820252E-01 1.3889154351007663E-01 1.3414055472466077E-01 + 1.2950621301329823E-01 1.2498763680303639E-01 1.2058385863795568E-01 + 1.1629382907068385E-01 1.1211642053801132E-01 1.0805043123556135E-01 + 1.0409458900644959E-01 1.0024755525767851E-01 9.6507928915621349E-02 + 9.2874250428386387E-02 8.9345005818290982E-02 8.5918630782360006E-02 + 8.2593514833065040E-02 7.9368005465836555E-02 7.6240412334648178E-02 + 7.3209011412614142E-02 7.0272049111382448E-02 6.7427746331403582E-02 + 6.4674302414990295E-02 6.2009898975469949E-02 5.9432703578362320E-02 + 5.6940873254451921E-02 5.4532557829009662E-02 5.2205903056314930E-02 + 4.9959053553757224E-02 4.7790155534120353E-02 4.5697359338984604E-02 + 4.3678821779539238E-02 4.1732708293604315E-02 3.9857194929671873E-02 + 3.8050470169802002E-02 3.6310736603690573E-02 3.4636212466158577E-02 + 3.3025133049827106E-02 3.1475752003957726E-02 2.9986342529473315E-02 + 2.8555198479107199E-02 2.7180635370542973E-02 2.5860991319350279E-02 + 2.4594627897539786E-02 2.3379930922671419E-02 2.2215311181667488E-02 + 2.1099205092813787E-02 2.0030075308868162E-02 1.9006411263736395E-02 + 1.8026729664803908E-02 1.7089574932724168E-02 1.6193519590245224E-02 + 1.5337164601495158E-02 1.4519139663038222E-02 1.3738103447944730E-02 + 1.2992743804082512E-02 1.2281777907832237E-02 1.1603952374443789E-02 + 1.0958043326285688E-02 1.0342856420286489E-02 9.7572268359262127E-03 + 9.2000192252015521E-03 8.6701276260577245E-03 8.1664753408514004E-03 + 7.6880147814772145E-03 7.2337272828542189E-03 6.8026228865231677E-03 + 6.3937400961496813E-03 6.0061456067579790E-03 5.6389340095329404E-03 + 5.2912274740237724E-03 4.9621754095587134E-03 4.6509541076364637E-03 + 4.3567663669982423E-03 4.0788411030046158E-03 3.8164329428469605E-03 + 3.5688218080167956E-03 3.3353124853417720E-03 3.1152341877781534E-03 + 2.9079401060301056E-03 2.7128069519518124E-03 2.5292344945787885E-03 + 2.3566450895392329E-03 2.1944832025114396E-03 2.0422149273222352E-03 + 1.8993274992297781E-03 1.7653288038932788E-03 1.6397468825097930E-03 + 1.5221294335890302E-03 1.4120433118386599E-03 1.3090740246455709E-03 + 1.2128252266587027E-03 1.1229182130049070E-03 1.0389914116981434E-03 + 9.6069987583241687E-04 8.8771477617793026E-04 8.1972289482646818E-04 + 7.5642612055470244E-04 6.9754094659174636E-04 6.4279797148910332E-04 + 5.9194140379682737E-04 5.4472857124877535E-04 5.0092943515249152E-04 + 4.6032611066552383E-04 4.2271239362033685E-04 3.8789329453479455E-04 + 3.5568458041503249E-04 3.2591232492306841E-04 2.9841246744330977E-04 + 2.7303038154086526E-04 2.4962045326096255E-04 2.2804566967337417E-04 + 2.0817721801921529E-04 1.8989409577031523E-04 1.7308273186413732E-04 + 1.5763661933036068E-04 1.4345595947915722E-04 1.3044731777629611E-04 + 1.1852329148675450E-04 1.0760218912681503E-04 9.7607721724879231E-05 + 8.8468705853631357E-05 8.0118778360875340E-05 7.2496122693445849E-05 + 6.5543206678155349E-05 5.9206531595815546E-05 5.3436392358983900E-05 + 4.8186648581244080E-05 4.3414506305490949E-05 3.9080310140824838E-05 + 3.5147345542189738E-05 3.1581650953750946E-05 2.8351839526094330E-05 + 2.5428930108539685E-05 2.2786187211082891E-05 2.0398969625585383E-05 + 1.8244587392685453E-05 1.6302166799382982E-05 1.4552523092204352E-05 + 1.2978040592154421E-05 1.1562559900167771E-05 1.0291271885352894E-05 + 9.1506181528494935E-06 8.1281976934688856E-06 7.2126794233479848E-06 + 6.3937203285075747E-06 5.6618889363699777E-06 5.0085938438664364E-06 + 4.4260170396710849E-06 3.9070517662610699E-06 3.4452446758560323E-06 + 3.0347420427775853E-06 2.6702398033386518E-06 2.3469372029792912E-06 + 2.0604938389715928E-06 1.8069898955867703E-06 1.5828893771241350E-06 + 1.3850061526182811E-06 1.2104726343459716E-06 1.0567109204283892E-06 + 9.2140623985101925E-07 8.0248254608808226E-07 6.9808011320814321E-07 + 6.0653499584138973E-07 5.2636022169720210E-07 4.5622859242473898E-07 + 3.9495697550190304E-07 3.4149197651300999E-07 2.9489688762761929E-07 + 2.5433981431793276E-07 2.1908288834663203E-07 1.8847248081864299E-07 + 1.6193033461747613E-07 1.3894554083891814E-07 1.1906728889207043E-07 + 1.0189832476111404E-07 8.7089056512498950E-08 7.4332250494076754E-08 + 6.3358265808320735E-08 5.3930778555142823E-08 4.5842951035500206E-08 + 3.8914004590156781E-08 3.2986158024268519E-08 2.7921896644041002E-08 + 2.3601539813072045E-08 1.9921077630017668E-08 1.6790249843038343E-08 + 1.4130842457461276E-08 1.1875179668762091E-08 9.9647907709564741E-09 + 8.3492335584953252E-09 6.9850574654715873E-09 5.8348912770383793E-09 + 4.8666417119849212E-09 4.0527905198846264E-09 3.3697789684308806E-09 + 2.7974697236405619E-09 2.3186771544560348E-09 1.9187580306074324E-09 + 1.5852554348525269E-09 1.3075894840748867E-09 1.0767891541003249E-09 + 8.8526013611401912E-10 7.2658422356529037E-10 5.9534624248405163E-10 + 4.8698499996326775E-10 3.9766513965878691E-10 3.2416716371249742E-10 + 2.6379321143090599E-10 2.1428647999318527E-10 1.7376243480421984E-10 + 1.4065018998145008E-10 1.1364264576111078E-10 9.1654151991692064E-11 + 7.3784627793935841E-11 5.9289209144895249E-11 4.7552620631484013E-11 + 3.8067576777078581E-11 3.0416613862930298E-11 2.4256836575276623E-11 + 1.9307136492303796E-11 1.5337502629110471E-11 1.2160099104156885E-11 + 9.6218324821182901E-12 7.5981723842275284E-12 5.9880243397602951E-12 + 4.7094842946548456E-12 3.6963303285697323E-12 2.8951295205986601E-12 + 2.2628570415176819E-12 1.7649408730327705E-12 1.3736594453366553E-12 + 1.0668312793691857E-12 8.2674571328688053E-13 6.3929224001416233E-13 + 4.9325310728611573E-13 3.7972982674474776E-13 2.9167927186543533E-13 + 2.2353926034536664E-13 1.7092703959737495E-13 1.3039703112583121E-13 + 9.9246632470577095E-14 7.5360902424432671E-14 5.7088633137505612E-14 + 4.3143698297316484E-14 3.2526707971428797E-14 2.4462938650949041E-14 + 1.8353275903186483E-14 1.3735535745822061E-14 1.0254043660303394E-14 + 7.6357673806871242E-15 5.6716381816780708E-15 4.2019694626552459E-15 + 3.1051027039276180E-15 2.2885890628117903E-15 1.6823579950763189E-15 + 1.2334389321874626E-15 9.0189363716701953E-16 6.5768984105263368E-16 + 4.7830475345247947E-16 3.4689299702713351E-16 2.5088983487664163E-16 + 1.8094918318748837E-16 1.3013839638433167E-16 9.3329443080889542E-17 + 6.6739867445803333E-17 4.7587662369592888E-17 3.3832539964897981E-17 + 2.3982523667235458E-17 1.6949751717487753E-17 1.1943432944273716E-17 + 8.3903472182349129E-18 5.8763120629846942E-18 4.1029115471940856E-18 + 2.8558143167044101E-18 1.9815557987285332E-18 1.3705948222850921E-18 + 9.4498761313215357E-19 6.4944906134634737E-19 4.4489099176946433E-19 + 3.0376599529145379E-19 2.0672314239696963E-19 1.4021378170790501E-19 + 9.4783146548986925E-20 6.3855365545194072E-20 4.2872267065022708E-20 + 2.8685015994048229E-20 1.9125818651730257E-20 1.2707433398433743E-20 + 8.4130793800371278E-21 5.5500617289672570E-21 3.6481488547393429E-21 + 2.3892704163253428E-21 1.5590572633336640E-21 1.0135582194629623E-21 + 6.5646405099582160E-22 4.2357901165447711E-22 2.7227304514314228E-22 + 1.7434398437685208E-22 1.1120559350515536E-22 7.0655953599478989E-23 + 4.4715526240196114E-23 2.8186441153907612E-23 1.7696166230659742E-23 + 1.1065213023418312E-23 6.8907498343423515E-24 4.2734993028927463E-24 + 2.6393406341944467E-24 1.6232520916494741E-24 9.9412077950374124E-25 + 6.0623189592549105E-25 3.6810229306555084E-25 2.2254195302328331E-25 + 1.3395294993427802E-25 8.0273634666669246E-26 4.7891334022545704E-26 + 2.8443776987663673E-26 1.6816930851626726E-26 9.8973295712629152E-27 + 5.7980730014599169E-27 3.3808512899216538E-27 1.9621284881476432E-27 + 1.1333652740112683E-27 6.5153146574184827E-28 3.7273976397773471E-28 + 2.1220839004580583E-28 1.2022294867139495E-28 6.7773756566352217E-29 + 3.8015990146279902E-29 2.1216936487851407E-29 1.1781255477812556E-29 + 6.5083927509262701E-30 3.5769248393368028E-30 1.9556008093763681E-30 + 1.0635679206972953E-30 5.7536709437388271E-31 3.0959901435748198E-31 + 1.6569473527968287E-31 8.8196656222448094E-32 4.6688435937635628E-32 + 2.4578744436607613E-32 1.2867152241859680E-32 6.6981770052353008E-33 + 3.4670582453050686E-33 1.7843282002842266E-33 9.1301101205932279E-34 + 4.6445474286045066E-34 2.3488494322669296E-34 1.1808356824628854E-34 + 5.9009813363407397E-35 2.9311450531965591E-35 1.4471259684354619E-35 + 7.1008252428260958E-36 3.4627578672165674E-36 1.6781216311939067E-36 + 8.0814595293929624E-37 3.8672132262603243E-37 1.8387603291073408E-37 + 8.6865518149715925E-38 4.0770067221396127E-38 1.9010058663368337E-38 + 8.8054113329103173E-39 4.0515014580539680E-39 1.8516477163752603E-39 + 8.4052851230988279E-40 3.7894294345316849E-40 1.6966720700653701E-40 + 7.5439707250356299E-41 3.3308511233663953E-41 1.4602882904133586E-41 + 6.3566018880565453E-42 2.7471931414020008E-42 1.1787067140604406E-42 + 5.0205256080730280E-43 2.1227255020704811E-43 8.9086919537631206E-44 + 3.7109372480530024E-44 1.5341818202112150E-44 6.2945905320113339E-45 + 2.5628861412826993E-45 1.0354662435724361E-45 4.1510819620073449E-46 + 1.6511192700598311E-46 6.5156024123599193E-47 2.5508105393159189E-47 + 9.9082464000404597E-48 3.8141894553665325E-48 1.4483090614551868E-48 + 5.4528006682031085E-49 2.0353753907981692E-49 7.5318694497810303E-50 + + + -4.4734904251740050E-10 2.3023291462342872E-06 4.6251922455238729E-06 + 6.9685633150459233E-06 9.3327518851267505E-06 1.1717955650199294E-05 + 1.4124431247914700E-05 1.6552193426797027E-05 1.9001540474036660E-05 + 2.1472583413088212E-05 2.3965586252027889E-05 2.6480755267772806E-05 + 2.9018280500937065E-05 3.1578357626444980E-05 3.4161112970606184E-05 + 3.6766819124274127E-05 3.9395677589000924E-05 4.2047880445167476E-05 + 4.4723650399804711E-05 4.7423141783435615E-05 5.0146658185490617E-05 + 5.2894319217994037E-05 5.5666413436872660E-05 5.8463122116470540E-05 + 6.1284648220732087E-05 6.4131237432091457E-05 6.7003104862370193E-05 + 6.9900490334464930E-05 7.2823610650041035E-05 7.5772654244620318E-05 + 7.8747920633248371E-05 8.1749594601320633E-05 8.4777933026292787E-05 + 8.7833162678334681E-05 9.0915509670115363E-05 9.4025261118936662E-05 + 9.7162606731752326E-05 1.0032782427136689E-04 1.0352115531102886E-04 + 1.0674282569048505E-04 1.0999312734451054E-04 1.1327229694277553E-04 + 1.1658056796510968E-04 1.1991823409698183E-04 1.2328553338856286E-04 + 1.2668273860110791E-04 1.3011011460084272E-04 1.3356792230468064E-04 + 1.3705644806361657E-04 1.4057594401216256E-04 1.4412670504927695E-04 + 1.4770899378515644E-04 1.5132309792255537E-04 1.5496929902551038E-04 + 1.5864788302306939E-04 1.6235912362935534E-04 1.6610333600085774E-04 + 1.6988079372066674E-04 1.7369179695572818E-04 1.7753664810962305E-04 + 1.8141565017382532E-04 1.8532908921659716E-04 1.8927728502516906E-04 + 1.9326055242441784E-04 1.9727918530107485E-04 2.0133350162944655E-04 + 2.0542383683173774E-04 2.0955049243200812E-04 2.1371379082757070E-04 + 2.1791406648016232E-04 2.2215164465833200E-04 2.2642684617744298E-04 + 2.3074002769533420E-04 2.3509150874555804E-04 2.3948162837534036E-04 + 2.4391074691628678E-04 2.4837919003299689E-04 2.5288732097628324E-04 + 2.5743548279920120E-04 2.6202403959722103E-04 2.6665334433948211E-04 + 2.7132375817777503E-04 2.7603565701084113E-04 2.8078939498372090E-04 + 2.8558534866388984E-04 2.9042389539659746E-04 2.9530541186418197E-04 + 3.0023028267028368E-04 3.0519888858108546E-04 3.1021161887593830E-04 + 3.1526886363385020E-04 3.2037102157042016E-04 3.2551848883993382E-04 + 3.3071167403122615E-04 3.3595097634061958E-04 3.4123680581363080E-04 + 3.4656957426068341E-04 3.5194970893167720E-04 3.5737761998961941E-04 + 3.6285373643919592E-04 3.6837848071650338E-04 3.7395229320526106E-04 + 3.7957560442872002E-04 3.8524885441184551E-04 3.9097248752444102E-04 + 3.9674694923514704E-04 4.0257269198239269E-04 4.0845017032362010E-04 + 4.1437984938420781E-04 4.2036218426475132E-04 4.2639764857852342E-04 + 4.3248671107175388E-04 4.3862984940603862E-04 4.4482754539593660E-04 + 4.5108027928700810E-04 4.5738854138199179E-04 4.6375282858486874E-04 + 4.7017363359946971E-04 4.7665145992977382E-04 4.8318681472482708E-04 + 4.8978020823231419E-04 4.9643215326801535E-04 5.0314317533867972E-04 + 5.0991379627324230E-04 5.1674454212631506E-04 5.2363595384916333E-04 + 5.3058856458720362E-04 5.3760291963806197E-04 5.4467956645614280E-04 + 5.5181906155630091E-04 5.5902195770815967E-04 5.6628882253448505E-04 + 5.7362022352658597E-04 5.8101673053397019E-04 5.8847892309482174E-04 + 5.9600738820339517E-04 6.0360270933921937E-04 6.1126548450090364E-04 + 6.1899631020431744E-04 6.2679578940003729E-04 6.3466453690640373E-04 + 6.4260316219397857E-04 6.5061228813395285E-04 6.5869254307052486E-04 + 6.6684455342908076E-04 6.7506896326089371E-04 6.8336640795826496E-04 + 6.9173754312998944E-04 7.0018301786520980E-04 7.0870349602328232E-04 + 7.1729964198451234E-04 7.2597212867324932E-04 7.3472163203036991E-04 + 7.4354883703848032E-04 7.5245443617560416E-04 7.6143912247124553E-04 + 7.7050359999598548E-04 7.7964857527859188E-04 7.8887476511381904E-04 + 7.9818289112717480E-04 8.0757367909526322E-04 8.1704786410244660E-04 + 8.2660618667291510E-04 8.3624939410748618E-04 8.4597824169274193E-04 + 8.5579348684004341E-04 8.6569589938790897E-04 8.7568625147301155E-04 + 8.8576532617460745E-04 8.9593391093520901E-04 9.0619279925907299E-04 + 9.1654279420731331E-04 9.2698470392046678E-04 9.3751934628101899E-04 + 9.4814754381721369E-04 9.5887012634808945E-04 9.6968793464191703E-04 + 9.8060181226693210E-04 9.9161261353279987E-04 1.0027211978218462E-03 + 1.0139284359815337E-03 1.0252352011741309E-03 1.0366423786417622E-03 + 1.0481508611764753E-03 1.0597615454009581E-03 1.0714753432374904E-03 + 1.0832931662376917E-03 1.0952159412912670E-03 1.1072445994979160E-03 + 1.1193800811167953E-03 1.1316233327987931E-03 1.1439753148302326E-03 + 1.1564369893528137E-03 1.1690093352371925E-03 1.1816933312629539E-03 + 1.1944899701960123E-03 1.2074002532119952E-03 1.2204251880344524E-03 + 1.2335657943779142E-03 1.2468230989834863E-03 1.2601981370543420E-03 + 1.2736919554230785E-03 1.2873056085414773E-03 1.3010401619866277E-03 + 1.3148966880102467E-03 1.3288762680307774E-03 1.3429799984658703E-03 + 1.3572089803740835E-03 1.3715643252997104E-03 1.3860471555590048E-03 + 1.4006586036078177E-03 1.4153998118168107E-03 1.4302719338724077E-03 + 1.4452761294551396E-03 1.4604135738555007E-03 1.4756854500195295E-03 + 1.4910929502011158E-03 1.5066372818046251E-03 1.5223196567971044E-03 + 1.5381413025928436E-03 1.5541034557659354E-03 1.5702073651787662E-03 + 1.5864542877428080E-03 1.6028454955133646E-03 1.6193822690766431E-03 + 1.6360659000038405E-03 1.6528976941815193E-03 1.6698789663345428E-03 + 1.6870110443395238E-03 1.7042952669401438E-03 1.7217329863766424E-03 + 1.7393255646432708E-03 1.7570743780342924E-03 1.7749808133164799E-03 + 1.7930462697083088E-03 1.8112721610094404E-03 1.8296599113645025E-03 + 1.8482109576530002E-03 1.8669267497647773E-03 1.8858087517422068E-03 + 1.9048584399804049E-03 1.9240773014699462E-03 1.9434668409557016E-03 + 1.9630285727611991E-03 1.9827640268276158E-03 2.0026747457198260E-03 + 2.0227622858580356E-03 2.0430282165729624E-03 2.0634741234729658E-03 + 2.0841016046960000E-03 2.1049122721157761E-03 2.1259077529691157E-03 + 2.1470896877173757E-03 2.1684597337225334E-03 2.1900195599473824E-03 + 2.2117708531877722E-03 2.2337153124213274E-03 2.2558546539583218E-03 + 2.2781906081279358E-03 2.3007249207359914E-03 2.3234593543648291E-03 + 2.3463956852135702E-03 2.3695357063215189E-03 2.3928812270503537E-03 + 2.4164340720268288E-03 2.4401960820196766E-03 2.4641691156543108E-03 + 2.4883550461695784E-03 2.5127557644365724E-03 2.5373731775059291E-03 + 2.5622092101758968E-03 2.5872658034012705E-03 2.6125449168100138E-03 + 2.6380485258081141E-03 2.6637786243494609E-03 2.6897372234842777E-03 + 2.7159263527531162E-03 2.7423480588141362E-03 2.7690044075001433E-03 + 2.7958974831196201E-03 2.8230293868675717E-03 2.8504022402479584E-03 + 2.8780181834603771E-03 2.9058793746074532E-03 2.9339879908855519E-03 + 2.9623462314251900E-03 2.9909563115264113E-03 3.0198204687492888E-03 + 3.0489409580341320E-03 3.0783200574373880E-03 3.1079600621587199E-03 + 3.1378632899934115E-03 3.1680320779340458E-03 3.1984687844454525E-03 + 3.2291757891204182E-03 3.2601554918915226E-03 3.2914103148994392E-03 + 3.3229427009349478E-03 3.3547551150592855E-03 3.3868500441008834E-03 + 3.4192299971217547E-03 3.4518975045488742E-03 3.4848551204936652E-03 + 3.5181054216248705E-03 3.5516510061660306E-03 3.5854944976539795E-03 + 3.6196385399998167E-03 3.6540858041114550E-03 3.6888389808165441E-03 + 3.7239007881251138E-03 3.7592739662694898E-03 3.7949612802740747E-03 + 3.8309655199415893E-03 3.8672895000337907E-03 3.9039360594134544E-03 + 3.9409080628355769E-03 3.9782084004298633E-03 4.0158399879828910E-03 + 4.0538057673798330E-03 4.0921087057396305E-03 4.1307517973578562E-03 + 4.1697380632812076E-03 4.2090705507827489E-03 4.2487523341430446E-03 + 4.2887865156801177E-03 4.3291762245360717E-03 4.3699246183985328E-03 + 4.4110348812243542E-03 4.4525102279068963E-03 4.4943538998218251E-03 + 4.5365691679602992E-03 4.5791593319918092E-03 4.6221277213043289E-03 + 4.6654776945783761E-03 4.7092126402597072E-03 4.7533359774955411E-03 + 4.7978511544024228E-03 4.8427616514492445E-03 4.8880709786742237E-03 + 4.9337826778559765E-03 4.9799003221546361E-03 5.0264275163390661E-03 + 5.0733678974433693E-03 5.1207251346609617E-03 5.1685029296727946E-03 + 5.2167050169236060E-03 5.2653351644114657E-03 5.3143971730522733E-03 + 5.3638948782556029E-03 5.4138321487343733E-03 5.4642128877284398E-03 + 5.5150410335744844E-03 5.5663205594461921E-03 5.6180554731617071E-03 + 5.6702498186253069E-03 5.7229076756783312E-03 5.7760331605161497E-03 + 5.8296304252042916E-03 5.8837036594818716E-03 5.9382570899964918E-03 + 5.9932949808016445E-03 6.0488216337560375E-03 6.1048413892173959E-03 + 6.1613586253676227E-03 6.2183777603658265E-03 6.2759032507024373E-03 + 6.3339395929398624E-03 6.3924913232266886E-03 6.4515630182253566E-03 + 6.5111592949860277E-03 6.5712848115493487E-03 6.6319442678701426E-03 + 6.6931424046385787E-03 6.7548840058517063E-03 6.8171738967814340E-03 + 6.8800169463566424E-03 6.9434180663973987E-03 7.0073822123086441E-03 + 7.0719143835406935E-03 7.1370196240772088E-03 7.2027030223671164E-03 + 7.2689697124502769E-03 7.3358248735223754E-03 7.4032737306845972E-03 + 7.4713215562429254E-03 7.5399736685203521E-03 7.6092354331027141E-03 + 7.6791122634189820E-03 7.7496096209999626E-03 7.8207330158119454E-03 + 7.8924880062799969E-03 7.9648802010327431E-03 8.0379152578165386E-03 + 8.1115988847381207E-03 8.1859368407075292E-03 8.2609349358464933E-03 + 8.3365990313608827E-03 8.4129350409571646E-03 8.4899489306192837E-03 + 8.5676467196206963E-03 8.6460344799386083E-03 8.7251183381879434E-03 + 8.8049044749143150E-03 8.8853991258241536E-03 8.9666085816428615E-03 + 9.0485391891141267E-03 9.1311973513710735E-03 9.2145895284235328E-03 + 9.2987222371101012E-03 9.3836020527623236E-03 9.4692356088890029E-03 + 9.5556295974886345E-03 9.6427907703785423E-03 9.7307259392104811E-03 + 9.8194419758242807E-03 9.9089458135741704E-03 9.9992444466473224E-03 + 1.0090344931974474E-02 1.0182254388426000E-02 1.0274979998898230E-02 + 1.0368529009196671E-02 1.0462908729878902E-02 1.0558126536305222E-02 + 1.0654189869235570E-02 1.0751106235380559E-02 1.0848883208233018E-02 + 1.0947528428396374E-02 1.1047049604189389E-02 1.1147454512504748E-02 + 1.1248750998948186E-02 1.1350946979183660E-02 1.1454050438495962E-02 + 1.1558069433895420E-02 1.1663012092736531E-02 1.1768886615540541E-02 + 1.1875701274842415E-02 1.1983464417002682E-02 1.2092184462122152E-02 + 1.2201869905387864E-02 1.2312529316857151E-02 1.2424171343073618E-02 + 1.2536804706932273E-02 1.2650438208810618E-02 1.2765080727250569E-02 + 1.2880741219535616E-02 1.2997428722208965E-02 1.3115152352165125E-02 + 1.3233921307149026E-02 1.3353744866316266E-02 1.3474632391373930E-02 + 1.3596593326684475E-02 1.3719637200817689E-02 1.3843773626533027E-02 + 1.3969012301879396E-02 1.4095363011155328E-02 1.4222835625061617E-02 + 1.4351440102078906E-02 1.4481186488892520E-02 1.4612084921218902E-02 + 1.4744145624920718E-02 1.4877378916186209E-02 1.5011795202764688E-02 + 1.5147404984889720E-02 1.5284218855707131E-02 1.5422247502117698E-02 + 1.5561501706116447E-02 1.5701992345112527E-02 1.5843730392936333E-02 + 1.5986726920665773E-02 1.6130993097606260E-02 1.6276540191895693E-02 + 1.6423379571799578E-02 1.6571522706066356E-02 1.6720981165349258E-02 + 1.6871766622752058E-02 1.7023890854662528E-02 1.7177365742159199E-02 + 1.7332203271265896E-02 1.7488415534463335E-02 1.7646014731382938E-02 + 1.7805013169426169E-02 1.7965423265529974E-02 1.8127257546210303E-02 + 1.8290528649232127E-02 1.8455249324283423E-02 1.8621432433855022E-02 + 1.8789090954526109E-02 1.8958237977805534E-02 1.9128886710982215E-02 + 1.9301050478621660E-02 1.9474742723041040E-02 1.9649977005813279E-02 + 1.9826767008367833E-02 2.0005126533577045E-02 2.0185069506312794E-02 + 2.0366609974779345E-02 2.0549762111696061E-02 2.0734540215071241E-02 + 2.0920958709690674E-02 2.1109032147885929E-02 2.1298775210873311E-02 + 2.1490202709759619E-02 2.1683329586801109E-02 2.1878170916535541E-02 + 2.2074741906838738E-02 2.2273057900193047E-02 2.2473134374773149E-02 + 2.2674986945874477E-02 2.2878631366819609E-02 2.3084083530368761E-02 + 2.3291359469698483E-02 2.3500475360102090E-02 2.3711447519776514E-02 + 2.3924292411181020E-02 2.4139026642601619E-02 2.4355666968895181E-02 + 2.4574230293339144E-02 2.4794733668540892E-02 2.5017194297877871E-02 + 2.5241629536788282E-02 2.5468056894212505E-02 2.5696494033816169E-02 + 2.5926958775386276E-02 2.6159469096194637E-02 2.6394043132250782E-02 + 2.6630699180085919E-02 2.6869455697605286E-02 2.7110331305962253E-02 + 2.7353344790703542E-02 2.7598515103316561E-02 2.7845861362777054E-02 + 2.8095402856745437E-02 2.8347159043216608E-02 2.8601149552041100E-02 + 2.8857394186394270E-02 2.9115912924120840E-02 2.9376725919596794E-02 + 2.9639853504918726E-02 2.9905316191640285E-02 3.0173134672239969E-02 + 3.0443329821868041E-02 3.0715922699779980E-02 3.0990934550921081E-02 + 3.1268386807618634E-02 3.1548301091323110E-02 3.1830699213837223E-02 + 3.2115603179531015E-02 3.2403035186594931E-02 3.2693017628901547E-02 + 3.2985573097576451E-02 3.3280724382993988E-02 3.3578494476094005E-02 + 3.3878906570430863E-02 3.4181984063850465E-02 3.4487750560146024E-02 + 3.4796229871001741E-02 3.5107446017699606E-02 3.5421423233005525E-02 + 3.5738185962791713E-02 3.6057758868168859E-02 3.6380166827131667E-02 + 3.6705434936588684E-02 3.7033588514012464E-02 3.7364653099607070E-02 + 3.7698654458059942E-02 3.8035618580525926E-02 3.8375571686563900E-02 + 3.8718540226147909E-02 3.9064550881532295E-02 3.9413630569383483E-02 + 3.9765806442664080E-02 4.0121105892844386E-02 4.0479556551695904E-02 + 4.0841186293489172E-02 4.1206023237147442E-02 4.1574095748224182E-02 + 4.1945432440908835E-02 4.2320062180459653E-02 4.2698014085099149E-02 + 4.3079317528170236E-02 4.3464002140435415E-02 4.3852097812285891E-02 + 4.4243634695710202E-02 4.4638643206856211E-02 4.5037154027900005E-02 + 4.5439198109761353E-02 4.5844806673919054E-02 4.6254011215016919E-02 + 4.6666843503019258E-02 4.7083335585664882E-02 4.7503519790654251E-02 + 4.7927428728195963E-02 4.8355095293215584E-02 4.8786552667871665E-02 + 4.9221834323936932E-02 4.9660974025258306E-02 5.0104005830112472E-02 + 5.0550964093839364E-02 5.1001883471200542E-02 5.1456798918927772E-02 + 5.1915745698255265E-02 5.2378759377512976E-02 5.2845875834562163E-02 + 5.3317131259492591E-02 5.3792562157163777E-02 5.4272205349871469E-02 + 5.4756097979930973E-02 5.5244277512383796E-02 5.5736781737590953E-02 + 5.6233648774020803E-02 5.6734917070911620E-02 5.7240625410954246E-02 + 5.7750812913174160E-02 5.8265519035575107E-02 5.8784783577895107E-02 + 5.9308646684622067E-02 5.9837148847538671E-02 6.0370330908802269E-02 + 6.0908234063630613E-02 6.1450899863284135E-02 6.1998370217926112E-02 + 6.2550687399527224E-02 6.3107894044840615E-02 6.3670033158301276E-02 + 6.4237148115074000E-02 6.4809282663946158E-02 6.5386480930415936E-02 + 6.5968787419683039E-02 6.6556247019685238E-02 6.7148905004192738E-02 + 6.7746807035925144E-02 6.8349999169492498E-02 6.8958527854692656E-02 + 6.9572439939579997E-02 7.0191782673610328E-02 7.0816603710816217E-02 + 7.1446951112985851E-02 7.2082873352879981E-02 7.2724419317498443E-02 + 7.3371638311215570E-02 7.4024580059176032E-02 7.4683294710446615E-02 + 7.5347832841395512E-02 7.6018245458928185E-02 7.6694584003857799E-02 + 7.7376900354296951E-02 7.8065246828851118E-02 7.8759676190187672E-02 + 7.9460241648262028E-02 8.0166996863861903E-02 8.0879995951861267E-02 + 8.1599293484850663E-02 8.2324944496391328E-02 8.3057004484599378E-02 + 8.3795529415601491E-02 8.4540575726969325E-02 8.5292200331300291E-02 + 8.6050460619668909E-02 8.6815414465170049E-02 8.7587120226457552E-02 + 8.8365636751344234E-02 8.9151023380268854E-02 8.9943339949927772E-02 + 9.0742646796843685E-02 9.1549004760992397E-02 9.2362475189331911E-02 + 9.3183119939461795E-02 9.4011001383230791E-02 9.4846182410371502E-02 + 9.5688726432127696E-02 9.6538697384835656E-02 9.7396159733702720E-02 + 9.8261178476286071E-02 9.9133819146299193E-02 1.0001414781717988E-01 + 1.0090223110575888E-01 1.0179813617597620E-01 1.0270193074247308E-01 + 1.0361368307428365E-01 1.0453346199854507E-01 1.0546133690408394E-01 + 1.0639737774511621E-01 1.0734165504492253E-01 1.0829423989945092E-01 + 1.0925520398102676E-01 1.1022461954192746E-01 1.1120255941810021E-01 + 1.1218909703268888E-01 1.1318430639973469E-01 1.1418826212776315E-01 + 1.1520103942334295E-01 1.1622271409473116E-01 1.1725336255536034E-01 + 1.1829306182747165E-01 1.1934188954559596E-01 1.2039992396008260E-01 + 1.2146724394061127E-01 1.2254392897964396E-01 1.2363005919588330E-01 + 1.2472571533772159E-01 1.2583097878659369E-01 1.2694593156038433E-01 + 1.2807065631675438E-01 1.2920523635645606E-01 1.3034975562659673E-01 + 1.3150429872390246E-01 1.3266895089787464E-01 1.3384379805399521E-01 + 1.3502892675681702E-01 1.3622442423303707E-01 1.3743037837455452E-01 + 1.3864687774140724E-01 1.3987401156470861E-01 1.4111186974953577E-01 + 1.4236054287772745E-01 1.4362012221066328E-01 1.4489069969189103E-01 + 1.4617236794983884E-01 1.4746522030031170E-01 1.4876935074900505E-01 + 1.5008485399393723E-01 1.5141182542772041E-01 1.5275036113987303E-01 + 1.5410055791899921E-01 1.5546251325481078E-01 1.5683632534017958E-01 + 1.5822209307297586E-01 1.5961991605794834E-01 1.6102989460832198E-01 + 1.6245212974745479E-01 1.6388672321029479E-01 1.6533377744472721E-01 + 1.6679339561282971E-01 1.6826568159199926E-01 1.6975073997589848E-01 + 1.7124867607537661E-01 1.7275959591912360E-01 1.7428360625427647E-01 + 1.7582081454682358E-01 1.7737132898186575E-01 1.7893525846377575E-01 + 1.8051271261607318E-01 1.8210380178122765E-01 1.8370863702026588E-01 + 1.8532733011213914E-01 1.8695999355298942E-01 1.8860674055513532E-01 + 1.9026768504590572E-01 1.9194294166625647E-01 1.9363262576914497E-01 + 1.9533685341770290E-01 1.9705574138317211E-01 1.9878940714259710E-01 + 2.0053796887627395E-01 2.0230154546493495E-01 2.0408025648667799E-01 + 2.0587422221360960E-01 2.0768356360822918E-01 2.0950840231950002E-01 + 2.1134886067862799E-01 2.1320506169454351E-01 2.1507712904901269E-01 + 2.1696518709151058E-01 2.1886936083365871E-01 2.2078977594336083E-01 + 2.2272655873858702E-01 2.2467983618074430E-01 2.2664973586769438E-01 + 2.2863638602636041E-01 2.3063991550493543E-01 2.3266045376464869E-01 + 2.3469813087113175E-01 2.3675307748529698E-01 2.3882542485380009E-01 + 2.4091530479896192E-01 2.4302284970827975E-01 2.4514819252338801E-01 + 2.4729146672848343E-01 2.4945280633828049E-01 2.5163234588533395E-01 + 2.5383022040687347E-01 2.5604656543099669E-01 2.5828151696228391E-01 + 2.6053521146681069E-01 2.6280778585648595E-01 2.6509937747277590E-01 + 2.6741012406972386E-01 2.6974016379629295E-01 2.7208963517798568E-01 + 2.7445867709774574E-01 2.7684742877608104E-01 2.7925602975043767E-01 + 2.8168461985374260E-01 2.8413333919217065E-01 2.8660232812200070E-01 + 2.8909172722569076E-01 2.9160167728697239E-01 2.9413231926507638E-01 + 2.9668379426802233E-01 2.9925624352489483E-01 3.0184980835717179E-01 + 3.0446463014898301E-01 3.0710085031634421E-01 3.0975861027530138E-01 + 3.1243805140897296E-01 3.1513931503340159E-01 3.1786254236230993E-01 + 3.2060787447058003E-01 3.2337545225652564E-01 3.2616541640288982E-01 + 3.2897790733652710E-01 3.3181306518674020E-01 3.3467102974225349E-01 + 3.3755194040674935E-01 3.4045593615296055E-01 3.4338315547526665E-01 + 3.4633373634076053E-01 3.4930781613873502E-01 3.5230553162854433E-01 + 3.5532701888583551E-01 3.5837241324703634E-01 3.6144184925214223E-01 + 3.6453546058564940E-01 3.6765338001571307E-01 3.7079573933136456E-01 + 3.7396266927782107E-01 3.7715429948978529E-01 3.8037075842271983E-01 + 3.8361217328203262E-01 3.8687866995009479E-01 3.9017037291106366E-01 + 3.9348740517347713E-01 3.9682988819049203E-01 4.0019794177774864E-01 + 4.0359168402885159E-01 4.0701123122828448E-01 4.1045669776182131E-01 + 4.1392819602427722E-01 4.1742583632459762E-01 4.2094972678816411E-01 + 4.2449997325630373E-01 4.2807667918288539E-01 4.3167994552794503E-01 + 4.3530987064830501E-01 4.3896655018503355E-01 4.4265007694775216E-01 + 4.4636054079566301E-01 4.5009802851522684E-01 4.5386262369442287E-01 + 4.5765440659349310E-01 4.6147345401209811E-01 4.6531983915280750E-01 + 4.6919363148078841E-01 4.7309489657968579E-01 4.7702369600354300E-01 + 4.8098008712466322E-01 4.8496412297736896E-01 4.8897585209753519E-01 + 4.9301531835778772E-01 4.9708256079827956E-01 5.0117761345296430E-01 + 5.0530050517122260E-01 5.0945125943478475E-01 5.1362989416978500E-01 + 5.1783642155392429E-01 5.2207084781852886E-01 5.2633317304549754E-01 + 5.3062339095893385E-01 5.3494148871141933E-01 5.3928744666477724E-01 + 5.4366123816520373E-01 5.4806282931268091E-01 5.5249217872450906E-01 + 5.5694923729287049E-01 5.6143394793629109E-01 5.6594624534485460E-01 + 5.7048605571908328E-01 5.7505329650231496E-01 5.7964787610648483E-01 + 5.8426969363115255E-01 5.8891863857565763E-01 5.9359459054427599E-01 + 5.9829741894423261E-01 6.0302698267643229E-01 6.0778312981880434E-01 + 6.1256569730208277E-01 6.1737451057791826E-01 6.2220938327916386E-01 + 6.2707011687223280E-01 6.3195650030132822E-01 6.3686830962448160E-01 + 6.4180530764121235E-01 6.4676724351168835E-01 6.5175385236725869E-01 + 6.5676485491220593E-01 6.6179995701660677E-01 6.6685884930015027E-01 + 6.7194120670678803E-01 6.7704668807009116E-01 6.8217493566917997E-01 + 6.8732557477511458E-01 6.9249821318759641E-01 6.9769244076189718E-01 + 7.0290782892587089E-01 7.0814393018695787E-01 7.1340027762904745E-01 + 7.1867638439912995E-01 7.2397174318360302E-01 7.2928582567417610E-01 + 7.3461808202325241E-01 7.3996794028873758E-01 7.4533480586817313E-01 + 7.5071806092217219E-01 7.5611706378704169E-01 7.6153114837660774E-01 + 7.6695962357315417E-01 7.7240177260748144E-01 7.7785685242805491E-01 + 7.8332409305923156E-01 7.8880269694861205E-01 7.9429183830348238E-01 + 7.9979066241643892E-01 8.0529828498022749E-01 8.1081379139186027E-01 + 8.1633623604611882E-01 8.2186464161853756E-01 8.2739799833801519E-01 + 8.3293526324917677E-01 8.3847535946469443E-01 8.4401717540774557E-01 + 8.4955956404483379E-01 8.5510134210924249E-01 8.6064128931538253E-01 + 8.6617814756437328E-01 8.7171062014116230E-01 8.7723737090362275E-01 + 8.8275702346399998E-01 8.8826816036316902E-01 8.9376932223823502E-01 + 8.9925900698397865E-01 9.0473566890874801E-01 9.1019771788542969E-01 + 9.1564351849819237E-01 9.2107138918572695E-01 9.2647960138177432E-01 + 9.3186637865380484E-01 9.3722989584076399E-01 9.4256827819083444E-01 + 9.4787960050029796E-01 9.5316188625458453E-01 9.5841310677270808E-01 + 9.6363118035637108E-01 9.6881397144505899E-01 9.7395928977859136E-01 + 9.7906488956863880E-01 9.8412846868081494E-01 9.8914766782910091E-01 + 9.9412006978435952E-01 9.9904319859892743E-01 1.0039145188492722E+00 + 1.0087314348989094E+00 1.0134912901838073E+00 1.0181913665227256E+00 + 1.0228288834549928E+00 1.0274009976083778E+00 1.0319048020999049E+00 + 1.0363373259725273E+00 1.0406955336707884E+00 1.0449763245587369E+00 + 1.0491765324835205E+00 1.0532929253882757E+00 1.0573222049780635E+00 + 1.0612610064428505E+00 1.0651058982416504E+00 1.0688533819521915E+00 + 1.0724998921906399E+00 1.0760417966061560E+00 1.0794753959552079E+00 + 1.0827969242608710E+00 1.0860025490624936E+00 1.0890883717613771E+00 + 1.0920504280683558E+00 1.0948846885593901E+00 1.0975870593455384E+00 + 1.1001533828639423E+00 1.1025794387966914E+00 1.1048609451247238E+00 + 1.1069935593241562E+00 1.1089728797127418E+00 1.1107944469543973E+00 + 1.1124537457300328E+00 1.1139462065831989E+00 1.1152672079493284E+00 + 1.1164120783776563E+00 1.1173760989551471E+00 1.1181545059420694E+00 + 1.1187424936291133E+00 1.1191352174262184E+00 1.1193277971935609E+00 + 1.1193153208253757E+00 1.1190928480975850E+00 1.1186554147904071E+00 + 1.1179980370973603E+00 1.1171157163323000E+00 1.1160034439463156E+00 + 1.1146562068664863E+00 1.1130689931686797E+00 1.1112367980966680E+00 + 1.1091546304399824E+00 1.1068175192829839E+00 1.1042205211376535E+00 + 1.1013587274726560E+00 1.0982272726511240E+00 1.0948213422895907E+00 + 1.0911361820503134E+00 1.0871671068790703E+00 1.0829095107002376E+00 + 1.0783588765806458E+00 1.0735107873733316E+00 1.0683609368518041E+00 + 1.0629051413449142E+00 1.0571393518817707E+00 1.0510596668553782E+00 + 1.0446623452128498E+00 1.0379438201790552E+00 1.0309007135195192E+00 + 1.0235298503471126E+00 1.0158282744757641E+00 1.0077932643229228E+00 + 9.9942234936078334E-01 9.9071332711453231E-01 9.8166428070378997E-01 + 9.7227359692131665E-01 9.6253998484055081E-01 9.5246249494104207E-01 + 9.4204053873798610E-01 9.3127390889898565E-01 9.2016279982792204E-01 + 9.0870782869227196E-01 8.9691005686634873E-01 8.8477101175895045E-01 + 8.7229270898946243E-01 8.5947767487189497E-01 8.4632896916129396E-01 + 8.3285020801177678E-01 8.1904558708986586E-01 8.0491990478084319E-01 + 7.9047858541967853E-01 7.7572770247154310E-01 7.6067400157996246E-01 + 7.4532492339352552E-01 7.2968862607445151E-01 7.1377400738452901E-01 + 6.9759072623562413E-01 6.8114922358354912E-01 6.6446074253528997E-01 + 6.4753734753041925E-01 6.3039194244829089E-01 6.1303828748299249E-01 + 5.9549101461830545E-01 5.7776564152493493E-01 5.5987858369227639E-01 + 5.4184716459686888E-01 5.2368962369947136E-01 5.0542512205264400E-01 + 4.8707374529078507E-01 4.6865650376463025E-01 4.5019532957285491E-01 + 4.3171307023416350E-01 4.1323347873469823E-01 3.9478119967738917E-01 + 3.7638175125265627E-01 3.5806150274337101E-01 3.3984764727142985E-01 + 3.2176816948913883E-01 3.0385180791555944E-01 2.8612801161666118E-01 + 2.6862689092834674E-01 2.5137916192378640E-01 2.3441608433095643E-01 + 2.1776939261301981E-01 2.0147121993382394E-01 1.8555401474317018E-01 + 1.7005044973205327E-01 1.5499332292721174E-01 1.4041545071705544E-01 + 1.2634955262793474E-01 1.1282812770076558E-01 9.9883322353880838E-02 + 8.7546789658641960E-02 7.5849540000171717E-02 6.4821783146996173E-02 + 5.4492761810492236E-02 4.4890576838123961E-02 3.6042004253839313E-02 + 2.7972304434792140E-02 2.0705023795966167E-02 1.4261789443388396E-02 + 8.6620973526157496E-03 3.9230947319977326E-03 5.9357339781463092E-05 + -2.9173373594949949E-03 -4.9982401911076342E-03 -6.1778622814723516E-03 + -6.5188251360805555E-03 -6.0776003452152243E-03 -4.8457660441340042E-03 + -2.8199996537886908E-03 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + 2.9614779391231652E-03 1.2120250212062230E-02 1.9342023450487807E-02 + 2.5456276355215877E-02 3.0961474699602892E-02 3.6025071329545751E-02 + 4.0824627216057979E-02 4.5407116013993609E-02 4.9808739206842513E-02 + 5.4064408404343275E-02 5.8197815164840190E-02 6.2227089672981795E-02 + 6.6166785811473505E-02 7.0028579179816017E-02 7.3822050942561293E-02 + 7.7555194382561934E-02 8.1234761683857890E-02 8.4866523097975113E-02 + 8.8455459696556923E-02 9.2005909634950159E-02 9.5521681215425994E-02 + 9.9006141488805530E-02 1.0246228659348473E-01 1.0589279825111404E-01 + 1.0930008962108151E-01 1.1268634287422226E-01 1.1605354024970103E-01 + 1.1940348993028059E-01 1.2273784775863678E-01 1.2605813558647985E-01 + 1.2936575687560001E-01 1.3266201003942227E-01 1.3594809991395157E-01 + 1.3922514767008609E-01 1.4249419941944455E-01 1.4575623371890351E-01 + 1.4901216814192067E-01 1.5226286505514872E-01 1.5550913671513580E-01 + 1.5875174978076395E-01 1.6199142932154001E-01 1.6522886238915374E-01 + 1.6846470120929843E-01 1.7169956604214265E-01 1.7493404775270466E-01 + 1.7816871012643762E-01 1.8140409196035243E-01 1.8464070895582346E-01 + 1.8787905543569342E-01 1.9111960590530103E-01 1.9436281647451345E-01 + 1.9760912615567680E-01 2.0085895805054108E-01 2.0411272043762149E-01 + 2.0737080777008113E-01 2.1063360159304151E-01 2.1390147138818677E-01 + 2.1717477535264695E-01 2.2045386111835671E-01 2.2373906641741331E-01 + 2.2703071969835986E-01 2.3032914069779542E-01 2.3363464097126069E-01 + 2.3694752438693523E-01 2.4026808758533211E-01 2.4359662040785215E-01 + 2.4693340629678623E-01 2.5027872266909962E-01 2.5363284126611085E-01 + 2.5699602848098285E-01 2.6036854566576262E-01 2.6375064941955090E-01 + 2.6714259185923828E-01 2.7054462087412007E-01 2.7395698036558397E-01 + 2.7737991047296345E-01 2.8081364778655787E-01 2.8425842554873160E-01 + 2.8771447384393317E-01 2.9118201977840524E-01 2.9466128765029026E-01 + 2.9815249911078590E-01 3.0165587331694799E-01 3.0517162707669226E-01 + 3.0869997498650759E-01 3.1224112956234717E-01 3.1579530136413769E-01 + 3.1936269911430093E-01 3.2294352981067098E-01 3.2653799883414097E-01 + 3.3014631005136880E-01 3.3376866591283150E-01 3.3740526754651062E-01 + 3.4105631484745991E-01 3.4472200656349838E-01 3.4840254037724711E-01 + 3.5209811298472055E-01 3.5580892017066257E-01 3.5953515688080945E-01 + 3.6327701729124745E-01 3.6703469487502238E-01 3.7080838246614806E-01 + 3.7459827232115167E-01 3.7840455617828506E-01 3.8222742531452314E-01 + 3.8606707060046230E-01 3.8992368255322535E-01 3.9379745138747346E-01 + 3.9768856706461791E-01 4.0159721934032216E-01 4.0552359781037489E-01 + 4.0946789195501426E-01 4.1343029118177599E-01 4.1741098486693662E-01 + 4.2141016239561446E-01 4.2542801320059409E-01 4.2946472679993108E-01 + 4.3352049283339039E-01 4.3759550109777623E-01 4.4168994158119768E-01 + 4.4580400449631863E-01 4.4993788031263959E-01 4.5409175978784910E-01 + 4.5826583399828674E-01 4.6246029436855812E-01 4.6667533270033196E-01 + 4.7091114120036215E-01 4.7516791250775875E-01 4.7944583972054300E-01 + 4.8374511642151891E-01 4.8806593670348197E-01 4.9240849519379853E-01 + 4.9677298707837875E-01 5.0115960812506499E-01 5.0556855470646245E-01 + 5.1000002382223386E-01 5.1445421312087436E-01 5.1893132092099359E-01 + 5.2343154623211796E-01 5.2795508877503339E-01 5.3250214900168891E-01 + 5.3707292811467144E-01 5.4166762808627145E-01 5.4628645167715628E-01 + 5.5092960245465750E-01 5.5559728481069637E-01 5.6028970397935296E-01 + 5.6500706605409079E-01 5.6974957800465498E-01 5.7451744769365010E-01 + 5.7931088389280616E-01 5.8413009629895152E-01 5.8897529554969186E-01 + 5.9384669323881067E-01 5.9874450193139939E-01 6.0366893517872211E-01 + 6.0862020753282575E-01 6.1359853456090152E-01 6.1860413285940397E-01 + 6.2363722006793554E-01 6.2869801488290278E-01 6.3378673707094568E-01 + 6.3890360748215391E-01 6.4404884806306595E-01 6.4922268186946130E-01 + 6.5442533307894857E-01 6.5965702700335382E-01 6.6491799010091246E-01 + 6.7020844998826845E-01 6.7552863545228325E-01 6.8087877646166006E-01 + 6.8625910417838154E-01 6.9166985096896705E-01 6.9711125041555277E-01 + 7.0258353732678891E-01 7.0808694774856751E-01 7.1362171897457061E-01 + 7.1918808955664770E-01 7.2478629931502181E-01 7.3041658934832199E-01 + 7.3607920204344679E-01 7.4177438108525640E-01 7.4750237146609699E-01 + 7.5326341949515119E-01 7.5905777280762166E-01 7.6488568037374172E-01 + 7.7074739250761826E-01 7.7664316087589946E-01 7.8257323850627003E-01 + 7.8853787979577772E-01 7.9453734051897840E-01 8.0057187783590944E-01 + 8.0664175029988383E-01 8.1274721786510751E-01 8.1888854189411076E-01 + 8.2506598516500340E-01 8.3127981187853806E-01 8.3753028766499338E-01 + 8.4381767959086196E-01 8.5014225616534855E-01 8.5650428734667428E-01 + 8.6290404454818448E-01 8.6934180064425137E-01 8.7581782997597979E-01 + 8.8233240835670323E-01 8.8888581307727033E-01 8.9547832291111917E-01 + 9.0211021811913439E-01 9.0878178045428459E-01 9.1549329316603656E-01 + 9.2224504100453919E-01 9.2903731022457758E-01 9.3587038858929239E-01 + 9.4274456537365436E-01 9.4966013136770078E-01 9.5661737887951515E-01 + 9.6361660173796115E-01 9.7065809529515212E-01 9.7774215642865969E-01 + 9.8486908354345382E-01 9.9203917657357021E-01 9.9925273698349804E-01 + 1.0065100677692842E+00 1.0138114734593475E+00 1.0211572601150012E+00 + 1.0285477353306680E+00 1.0359832082337981E+00 1.0434639894844659E+00 + 1.0509903912746530E+00 1.0585627273272085E+00 1.0661813128944717E+00 + 1.0738464647565642E+00 1.0815585012193354E+00 1.0893177421119538E+00 + 1.0971245087841515E+00 1.1049791241030922E+00 1.1128819124498754E+00 + 1.1208331997156604E+00 1.1288333132974029E+00 1.1368825820932023E+00 + 1.1449813364972432E+00 1.1531299083943343E+00 1.1613286311540250E+00 + 1.1695778396243022E+00 1.1778778701248531E+00 1.1862290604398875E+00 + 1.1946317498105141E+00 1.2030862789266530E+00 1.2115929899184907E+00 + 1.2201522263474514E+00 1.2287643331966940E+00 1.2374296568611103E+00 + 1.2461485451368217E+00 1.2549213472101690E+00 1.2637484136461761E+00 + 1.2726300963764876E+00 1.2815667486867666E+00 1.2905587252035386E+00 + 1.2996063818804819E+00 1.3087100759841432E+00 1.3178701660790706E+00 + 1.3270870120123663E+00 1.3363609748976251E+00 1.3456924170982703E+00 + 1.3550817022102601E+00 1.3645291950441651E+00 1.3740352616065938E+00 + 1.3836002690809690E+00 1.3932245858076291E+00 1.4029085812632540E+00 + 1.4126526260395948E+00 1.4224570918214994E+00 1.4323223513642280E+00 + 1.4422487784700349E+00 1.4522367479640075E+00 1.4622866356691544E+00 + 1.4723988183807288E+00 1.4825736738397635E+00 1.4928115807058244E+00 + 1.5031129185289511E+00 1.5134780677207742E+00 1.5239074095248093E+00 + 1.5344013259858928E+00 1.5449601999187632E+00 1.5555844148757638E+00 + 1.5662743551136566E+00 1.5770304055595306E+00 1.5878529517757862E+00 + 1.5987423799241973E+00 1.6096990767290118E+00 1.6207234294390911E+00 + 1.6318158257890736E+00 1.6429766539595356E+00 1.6542063025361420E+00 + 1.6655051604677784E+00 1.6768736170236229E+00 1.6883120617491718E+00 + 1.6998208844211826E+00 1.7114004750015219E+00 1.7230512235899060E+00 + 1.7347735203755146E+00 1.7465677555874548E+00 1.7584343194440675E+00 + 1.7703736021010532E+00 1.7823859935983937E+00 1.7944718838060703E+00 + 1.8066316623685363E+00 1.8188657186479407E+00 1.8311744416660869E+00 + 1.8435582200450868E+00 1.8560174419467257E+00 1.8685524950104830E+00 + 1.8811637662902150E+00 1.8938516421894651E+00 1.9066165083953930E+00 + 1.9194587498112921E+00 1.9323787504876879E+00 1.9453768935519815E+00 + 1.9584535611366320E+00 1.9716091343058502E+00 1.9848439929807828E+00 + 1.9981585158631683E+00 2.0115530803574417E+00 2.0250280624912707E+00 + 2.0385838368344951E+00 2.0522207764164531E+00 2.0659392526416700E+00 + 2.0797396352038935E+00 2.0936222919984444E+00 2.1075875890328581E+00 + 2.1216358903358197E+00 2.1357675578643276E+00 2.1499829514091062E+00 + 2.1642824284982183E+00 2.1786663442988514E+00 2.1931350515172880E+00 + 2.2076889002969788E+00 2.2223282381147711E+00 2.2370534096751871E+00 + 2.2518647568027967E+00 2.2667626183326188E+00 2.2817473299985469E+00 + 2.2968192243197625E+00 2.3119786304851315E+00 2.3272258742355296E+00 + 2.3425612777441058E+00 2.3579851594944277E+00 2.3734978341565092E+00 + 2.3890996124606878E+00 2.4047908010693098E+00 2.4205717024462352E+00 + 2.4364426147240983E+00 2.4524038315693226E+00 2.4684556420448573E+00 + 2.4845983304706225E+00 2.5008321762816088E+00 2.5171574538836405E+00 + 2.5335744325067551E+00 2.5500833760561741E+00 2.5666845429608647E+00 + 2.5833781860196328E+00 2.6001645522447352E+00 2.6170438827030122E+00 + 2.6340164123544603E+00 2.6510823698882744E+00 2.6682419775563102E+00 + 2.6854954510039319E+00 2.7028429990982432E+00 2.7202848237536581E+00 + 2.7378211197547992E+00 2.7554520745766951E+00 2.7731778682022461E+00 + 2.7909986729369476E+00 2.8089146532208304E+00 2.8269259654376073E+00 + 2.8450327577209946E+00 2.8632351697581973E+00 2.8815333325905117E+00 + 2.8999273684110465E+00 2.9184173903595196E+00 2.9370035023141252E+00 + 2.9556857986804430E+00 2.9744643641773534E+00 2.9933392736199638E+00 + 3.0123105916995025E+00 3.0313783727601646E+00 3.0505426605728925E+00 + 3.0698034881060856E+00 3.0891608772931778E+00 3.1086148387971093E+00 + 3.1281653717716487E+00 3.1478124636195437E+00 3.1675560897475092E+00 + 3.1873962133180056E+00 3.2073327849978015E+00 3.2273657427033156E+00 + 3.2474950113427030E+00 3.2677205025546865E+00 3.2880421144441168E+00 + 3.3084597313142319E+00 3.3289732233956300E+00 3.3495824465719211E+00 + 3.3702872421020516E+00 3.3910874363393129E+00 3.4119828404469796E+00 + 3.4329732501106185E+00 3.4540584452470275E+00 3.4752381897098021E+00 + 3.4965122309915491E+00 3.5178802999226999E+00 3.5393421103669644E+00 + 3.5608973589133863E+00 3.5825457245650290E+00 3.6042868684242584E+00 + 3.6261204333746626E+00 3.6480460437595865E+00 3.6700633050572731E+00 + 3.6921718035526570E+00 3.7143711060057707E+00 3.7366607593168188E+00 + 3.7590402901878770E+00 3.7815092047812731E+00 3.8040669883746410E+00 + 3.8267131050126562E+00 3.8494469971554777E+00 3.8722680853239324E+00 + 3.8951757677414167E+00 3.9181694199725770E+00 3.9412483945587771E+00 + 3.9644120206503648E+00 3.9876596036357999E+00 4.0109904247676358E+00 + 4.0344037407853985E+00 4.0578987835354159E+00 4.0814747595875955E+00 + 4.1051308498492194E+00 4.1288662091757997E+00 4.1526799659789999E+00 + 4.1765712218317059E+00 4.2005390510702885E+00 4.2245825003940745E+00 + 4.2487005884621372E+00 4.2728923054874093E+00 4.2971566128282035E+00 + 4.3214924425772026E+00 4.3458986971479572E+00 4.3703742488590240E+00 + 4.3949179395157199E+00 4.4195285799896524E+00 4.4442049497960552E+00 + 4.4689457966690309E+00 4.4937498361347599E+00 4.5186157510828062E+00 + 4.5435421913355665E+00 4.5685277732159886E+00 4.5935710791136160E+00 + 4.6186706570491571E+00 4.6438250202375251E+00 4.6690326466496437E+00 + 4.6942919785729842E+00 4.7196014221710234E+00 4.7449593470417497E+00 + 4.7703640857753058E+00 4.7958139335109369E+00 4.8213071474933447E+00 + 4.8468419466286186E+00 4.8724165110399058E+00 4.8980289816228764E+00 + 4.9236774596012882E+00 4.9493600060826441E+00 4.9750746416142597E+00 + 5.0008193457398171E+00 5.0265920565565878E+00 5.0523906702735610E+00 + 5.0782130407705939E+00 5.1040569791588251E+00 5.1299202533425410E+00 + 5.1558005875826503E+00 5.1816956620620749E+00 5.2076031124531390E+00 + 5.2335205294873273E+00 5.2594454585274857E+00 5.2853753991428274E+00 + 5.3113078046869138E+00 5.3372400818788517E+00 5.3631695903880159E+00 + 5.3890936424224760E+00 5.4150095023214666E+00 5.4409143861521390E+00 + 5.4668054613108410E+00 5.4926798461293016E+00 5.5185346094858971E+00 + 5.5443667704223918E+00 5.5701732977664387E+00 5.5959511097600751E+00 + 5.6216970736946887E+00 5.6474080055526166E+00 5.6730806696558291E+00 + 5.6987117783220063E+00 5.7242979915283225E+00 5.7498359165833728E+00 + 5.7753221078075034E+00 5.8007530662220743E+00 5.8261252392478209E+00 + 5.8514350204129251E+00 5.8766787490710657E+00 5.9018527101298393E+00 + 5.9269531337900832E+00 5.9519761952963597E+00 5.9769180146991774E+00 + 6.0017746566293368E+00 6.0265421300847519E+00 6.0512163882304009E+00 + 6.0757933282116374E+00 6.1002687909815316E+00 6.1246385611426142E+00 + 6.1488983668034773E+00 6.1730438794508755E+00 6.1970707138376291E+00 + 6.2209744278870218E+00 6.2447505226141065E+00 6.2683944420644560E+00 + 6.2919015732709536E+00 6.3152672462290722E+00 6.3384867338912807E+00 + 6.3615552521811045E+00 6.3844679600273562E+00 6.4072199594192174E+00 + 6.4298062954826314E+00 6.4522219565787235E+00 6.4744618744247022E+00 + 6.4965209242379949E+00 6.5183939249041210E+00 6.5400756391689505E+00 + 6.5615607738560211E+00 6.5828439801094536E+00 6.6039198536631956E+00 + 6.6247829351372207E+00 6.6454277103612425E+00 6.6658486107267896E+00 + 6.6860400135680838E+00 6.7059962425725708E+00 6.7257115682217341E+00 + 6.7451802082627657E+00 6.7643963282119843E+00 6.7833540418904841E+00 + 6.8020474119928620E+00 6.8204704506896814E+00 6.8386171202643116E+00 + 6.8564813337849984E+00 6.8740569558127076E+00 6.8913378031456149E+00 + 6.9083176456008495E+00 6.9249902068342752E+00 6.9413491651990382E+00 + 6.9573881546435352E+00 6.9731007656496358E+00 6.9884805462117825E+00 + 7.0035210028577835E+00 7.0182156017119661E+00 7.0325577696014197E+00 + 7.0465408952061175E+00 7.0601583302534898E+00 7.0734033907583322E+00 + 7.0862693583086669E+00 7.0987494813982064E+00 7.1108369768062580E+00 + 7.1225250310255941E+00 7.1338068017390590E+00 7.1446754193455817E+00 + 7.1551239885361051E+00 7.1651455899202707E+00 7.1747332817042411E+00 + 7.1838801014204243E+00 7.1925790677096000E+00 7.2008231821559212E+00 + 7.2086054311754548E+00 7.2159187879585502E+00 7.2227562144667106E+00 + 7.2291106634841134E+00 7.2349750807244169E+00 7.2403424069929860E+00 + 7.2452055804049209E+00 7.2495575386591247E+00 7.2533912213685356E+00 + 7.2566995724467773E+00 7.2594755425512405E+00 7.2617120915825719E+00 + 7.2634021912407611E+00 7.2645388276374758E+00 7.2651150039647536E+00 + 7.2651237432197711E+00 7.2645580909853793E+00 7.2634111182663581E+00 + 7.2616759243807909E+00 7.2593456399064280E+00 7.2564134296815537E+00 + 7.2528724958599042E+00 7.2487160810193538E+00 7.2439374713237488E+00 + 7.2385299997376586E+00 7.2324870492934403E+00 7.2258020564103989E+00 + 7.2184685142656173E+00 7.2104799762160985E+00 7.2018300592721527E+00 + 7.1925124476216533E+00 7.1825208962052391E+00 7.1718492343423881E+00 + 7.1604913694083931E+00 7.1484412905625287E+00 7.1356930725275509E+00 + 7.1222408794209473E+00 7.1080789686383783E+00 7.0932016947896717E+00 + 7.0776035136880866E+00 7.0612789863932601E+00 7.0442227833085349E+00 + 7.0264296883332014E+00 7.0078946030701239E+00 6.9886125510893882E+00 + 6.9685786822481681E+00 6.9477882770672110E+00 6.9262367511640290E+00 + 6.9039196597426313E+00 6.8808327021397764E+00 6.8569717264269796E+00 + 6.8323327340678635E+00 6.8069118846296250E+00 6.7807055005475965E+00 + 6.7537100719413097E+00 6.7259222614802390E+00 6.6973389092973328E+00 + 6.6679570379477724E+00 6.6377738574105729E+00 6.6067867701300260E+00 + 6.5749933760938140E+00 6.5423914779445891E+00 6.5089790861211565E+00 + 6.4747544240255808E+00 6.4397159332121365E+00 6.4038622785936727E+00 + 6.3671923536611708E+00 6.3297052857116256E+00 6.2914004410796558E+00 + 6.2522774303677977E+00 6.2123361136704327E+00 6.1715766057862815E+00 + 6.1299992814140900E+00 6.0876047803263331E+00 6.0443940125154612E+00 + 6.0003681633073587E+00 5.9555286984366491E+00 5.9098773690782780E+00 + 5.8634162168302133E+00 5.8161475786416208E+00 5.7680740916813624E+00 + 5.7191986981414020E+00 5.6695246499697420E+00 5.6190555135278037E+00 + 5.5677951741667622E+00 5.5157478407177951E+00 5.4629180498909182E+00 + 5.4093106705771801E+00 5.3549309080490541E+00 5.2997843080537157E+00 + 5.2438767607940227E+00 5.1872145047919043E+00 5.1298041306287967E+00 + 5.0716525845579410E+00 5.0127671719829960E+00 4.9531555607977316E+00 + 4.8928257845812917E+00 4.8317862456435225E+00 4.7700457179149547E+00 + 4.7076133496757873E+00 4.6444986661184053E+00 4.5807115717376927E+00 + 4.5162623525436159E+00 4.4511616780903429E+00 4.3854206033161764E+00 + 4.3190505701886570E+00 4.2520634091490006E+00 4.1844713403501839E+00 + 4.1162869746828781E+00 4.0475233145834020E+00 3.9781937546179957E+00 + 3.9083120818375221E+00 3.8378924758969024E+00 3.7669495089334433E+00 + 3.6954981451983135E+00 3.6235537404354514E+00 3.5511320410021363E+00 + 3.4782491827256088E+00 3.4049216894900689E+00 3.3311664715484262E+00 + 3.2570008235533718E+00 3.1824424223021923E+00 3.1075093241900289E+00 + 3.0322199623661956E+00 2.9565931435884130E+00 2.8806480447698077E+00 + 2.8044042092136623E+00 2.7278815425311098E+00 2.6511003082369404E+00 + 2.5740811230190248E+00 2.4968449516768492E+00 2.4194131017249161E+00 + 2.3418072176569589E+00 2.2640492748670344E+00 2.1861615732238486E+00 + 2.1081667302948541E+00 2.0300876742168672E+00 1.9519476362102668E+00 + 1.8737701427340201E+00 1.7955790072791256E+00 1.7173983217983124E+00 + 1.6392524477701147E+00 1.5611660068958482E+00 1.4831638714282152E+00 + 1.4052711541307321E+00 1.3275131978674521E+00 1.2499155648228299E+00 + 1.1725040253520211E+00 1.0953045464622069E+00 1.0183432799260439E+00 + 9.4164655002867259E-01 8.6524084095020792E-01 7.8915278378606191E-01 + 7.1340914320788917E-01 6.3803680376844985E-01 5.6306275585413501E-01 + 4.8851408128941864E-01 4.1441793859800247E-01 3.4080154792594169E-01 + 2.6769217563260550E-01 1.9511711855586331E-01 1.2310368795849913E-01 + 5.1679193163449565E-02 -1.9129075113897127E-02 -8.9293861727436238E-02 + -1.5878796434652018E-01 -2.2758425097624391E-01 -2.9565567774075502E-01 + -3.6297530691770208E-01 -4.2951632521111449E-01 -4.9525206224913715E-01 + -5.6015600929217912E-01 -6.2420183813611962E-01 -6.8736342019433028E-01 + -7.4961484574137727E-01 -8.1093044330039199E-01 -8.7128479915531409E-01 + -9.3065277696843851E-01 -9.8900953748309173E-01 -1.0463305582907416E+00 + -1.1025916536414797E+00 -1.1577689942767047E+00 -1.2118391272628153E+00 + -1.2647789958050657E+00 -1.3165659590212360E+00 -1.3671778116555251E+00 + -1.4165928037141573E+00 -1.4647896600053725E+00 -1.5117475995679877E+00 + -1.5574463549743143E+00 -1.6018661914949253E+00 -1.6449879261146427E+00 + -1.6867929463908060E+00 -1.7272632291466965E+00 -1.7663813589944439E+00 + -1.8041305466831243E+00 -1.8404946472686599E+00 -1.8754581781026360E+00 + -1.9090063366371770E+00 -1.9411250180422268E+00 -1.9718008326302479E+00 + -2.0010211230810495E+00 -2.0287739814563457E+00 -2.0550482659898002E+00 + -2.0798336176335610E+00 -2.1031204763371578E+00 -2.1249000970290881E+00 + -2.1451645652658984E+00 -2.1639068125085812E+00 -2.1811206309816948E+00 + -2.1968006880675750E+00 -2.2109425401861871E+00 -2.2235426461110044E+00 + -2.2345983796726623E+00 -2.2441080418048762E+00 -2.2520708718910569E+00 + -2.2584870583747230E+00 -2.2633577486018477E+00 -2.2666850578683952E+00 + -2.2684720776508756E+00 -2.2687228830018880E+00 -2.2674425390957427E+00 + -2.2646371069117301E+00 -2.2603136480440145E+00 -2.2544802286279135E+00 + -2.2471459223725270E+00 -2.2383208126893352E+00 -2.2280159939059203E+00 + -2.2162435715533992E+00 -2.2030166617156079E+00 -2.1883493894278843E+00 + -2.1722568861131837E+00 -2.1547552860436756E+00 -2.1358617218165987E+00 + -2.1155943188340891E+00 -2.0939721887780802E+00 -2.0710154220727293E+00 + -2.0467450793286344E+00 -2.0211831817648029E+00 -1.9943527006061623E+00 + -1.9662775454563255E+00 -1.9369825516469639E+00 -1.9064934665670001E+00 + -1.8748369349763003E+00 -1.8420404833101345E+00 -1.8081325029819908E+00 + -1.7731422326935506E+00 -1.7370997397618526E+00 -1.7000359004745791E+00 + -1.6619823794854507E+00 -1.6229716082625094E+00 -1.5830367626028710E+00 + -1.5422117392283448E+00 -1.5005311314769558E+00 -1.4580302041061926E+00 + -1.4147448672244534E+00 -1.3707116493678810E+00 -1.3259676697405300E+00 + -1.2805506096365089E+00 -1.2344986830635853E+00 -1.1878506065885226E+00 + -1.1406455684253187E+00 -1.0929231967884707E+00 -1.0447235275343452E+00 + -9.9608697111485689E-01 -9.4705427886875537E-01 -8.9766650867704645E-01 + -8.4796499001037950E-01 -7.9799128839755984E-01 -7.4778716934581169E-01 + -6.9739456174488068E-01 -6.4685552078864217E-01 -5.9621219044946017E-01 + -5.4550676554216138E-01 -4.9478145341613283E-01 -4.4407843531564239E-01 + -3.9343982745007178E-01 -3.4290764181723171E-01 -2.9252374682431759E-01 + -2.4232982775231893E-01 -1.9236734711074588E-01 -1.4267750493040945E-01 + -9.3301199042604074E-02 -4.4278985393417715E-02 4.3489615579836811E-03 + 5.2542888308367432E-02 1.0026350159830760E-01 1.4747200747089886E-01 + 1.9413015005368733E-01 2.4020025001642739E-01 2.8564524265711488E-01 + 3.3042871556795844E-01 3.7451494583119416E-01 4.1786893669163516E-01 + 4.6045645364816667E-01 5.0224405989977283E-01 5.4319915107283356E-01 + 5.8328998914519847E-01 6.2248573546906683E-01 6.6075648277923871E-01 + 6.9807328605664976E-01 7.3440819210041230E-01 7.6973426764634789E-01 + 8.0402562585853166E-01 8.3725745101487425E-01 8.6940602121106003E-01 + 9.0044872892193584E-01 9.3036409928788666E-01 9.5913180603784187E-01 + 9.8673268502111977E-01 1.0131487453970105E+00 1.0383631786225638E+00 + 1.0623603654822598E+00 1.0851258815128471E+00 1.1066465012853992E+00 + 1.1269102021029882E+00 1.1459061677413616E+00 1.1636247928828043E+00 + 1.1800576888492715E+00 1.1951976911125042E+00 1.2090388688391569E+00 + 1.2215765364286038E+00 1.2328072666536576E+00 1.2427289046742438E+00 + 1.2513405819253034E+00 1.2586427287400024E+00 1.2646370845887711E+00 + 1.2693267049885815E+00 1.2727159644245254E+00 1.2748105549643627E+00 + 1.2756174805714107E+00 1.2751450473815327E+00 1.2734028503805070E+00 + 1.2704017569971784E+00 1.2661538881314058E+00 1.2606725970877546E+00 + 1.2539724468101405E+00 1.2460691857282020E+00 1.2369797224455541E+00 + 1.2267220994300738E+00 1.2153154658090652E+00 1.2027800493274079E+00 + 1.1891371274930278E+00 1.1744089979098093E+00 1.1586189477817743E+00 + 1.1417912225629183E+00 1.1239509937238279E+00 1.1051243256081635E+00 + 1.0853381413585406E+00 1.0646201879015116E+00 1.0429989999940703E+00 + 1.0205038633484831E+00 9.9716477686705052E-01 9.7301241403297134E-01 + 9.4807808351673617E-01 9.2239368906900998E-01 8.9599168878041935E-01 + 8.6890505379575345E-01 8.4116722657499310E-01 8.1281207879624506E-01 + 7.8387386899654754E-01 7.5438720004570092E-01 7.2438697654617923E-01 + 6.9390836224908958E-01 6.6298673757231685E-01 6.3165765730260537E-01 + 5.9995680855873712E-01 5.6791996908814224E-01 5.3558296596451249E-01 + 5.0298163474922153E-01 4.7015177917481532E-01 4.3712913140443893E-01 + 4.0394931291686387E-01 3.7064779606288367E-01 3.3725986633512284E-01 + 3.0382058538984619E-01 2.7036475485614814E-01 2.3692688096489489E-01 + 2.0354114002703164E-01 1.7024134478827996E-01 1.3706091168489690E-01 + 1.0403282902296127E-01 7.1189626101626685E-02 3.8563343298907510E-02 + 6.1855031368189704E-03 -2.5912917658929210E-02 -5.7701515091010208E-02 + -8.9150483802088010E-02 -1.2023064195508838E-01 -1.5091345507258044E-01 + -1.8117105882700257E-01 -2.1097628077472930E-01 -2.4030266102822068E-01 + -2.6912447186175453E-01 -2.9741673624748854E-01 -3.2515524531986889E-01 + -3.5231657476765255E-01 -3.7887810015407369E-01 -4.0481801116693239E-01 + -4.3011532480155995E-01 -4.5474989748078515E-01 -4.7870243611708474E-01 + -5.0195450812303155E-01 -5.2448855037706377E-01 -5.4628787715207949E-01 + -5.6733668701516071E-01 -5.8762006870695704E-01 -6.0712400600924665E-01 + -6.2583538160986119E-01 -6.4374197997360283E-01 -6.6083248922820992E-01 + -6.7709650207481986E-01 -6.9252451573241791E-01 -7.0710793092721513E-01 + -7.2083904993923076E-01 -7.3371107372060018E-01 -7.4571809810372469E-01 + -7.5685510912132303E-01 -7.6711797746611410E-01 -7.7650345212443561E-01 + -7.8500915322547038E-01 -7.9263356415626851E-01 -7.9937602300147759E-01 + -8.0523671337544467E-01 -8.1021665472259630E-01 -8.1431769216894789E-01 + -8.1754248601264135E-01 -8.1989450094397520E-01 -8.2137799508470466E-01 + -8.2199800893240904E-01 -8.2176035428781147E-01 -8.2067160323150157E-01 + -8.1873907720203565E-01 -8.1597083620990540E-01 -8.1237566820313356E-01 + -8.0796307858075678E-01 -8.0274327983136318E-01 -7.9672718125676334E-01 + -7.8992637872625582E-01 -7.8235314439594106E-01 -7.7402041632044838E-01 + -7.6494178788155898E-01 -7.5513149695928949E-01 -7.4460441477560801E-01 + -7.3337603434851628E-01 -7.2146245850385482E-01 -7.0888038740303938E-01 + -6.9564710555629516E-01 -6.8178046830196670E-01 -6.6729888774270196E-01 + -6.5222131813819462E-01 -6.3656724076161741E-01 -6.2035664823268966E-01 + -6.0361002834453947E-01 -5.8634834740437103E-01 -5.6859303310947840E-01 + -5.5036595698073010E-01 -5.3168941637536959E-01 -5.1258611610020499E-01 + -4.9307914964508620E-01 -4.7319198005515217E-01 -4.5294842045889072E-01 + -4.3237261426757667E-01 -4.1148901506022767E-01 -3.9032236616693244E-01 + -3.6889767996217376E-01 -3.4724021687868595E-01 -3.2537546415134683E-01 + -3.0332911429967802E-01 -2.8112704335664207E-01 -2.5879528885055714E-01 + -2.3636002754613672E-01 -2.1384755294985050E-01 -1.9128425258398363E-01 + -1.6869658503299390E-01 -1.4611105676497729E-01 -1.2355419873029790E-01 + -1.0105254273870551E-01 -7.8632597615586719E-02 -5.6320825137369322E-02 + -3.4143615745537391E-02 -1.2127264038245357E-02 9.7020559618667505E-03 + 3.1318315765337355E-02 5.2695657600885085E-02 7.3808419829675342E-02 + 9.4631162590741613E-02 1.1513869367930682E-01 1.3530609465951138E-01 + 1.5510874721273127E-01 1.7452235972226021E-01 1.9352299409467974E-01 + 2.1208709281773050E-01 2.3019150625397958E-01 2.4781352016904346E-01 + 2.6493088349260457E-01 2.8152183630997696E-01 2.9756513808152896E-01 + 3.1304009608686384E-01 3.2792659409033814E-01 3.4220512122420566E-01 + 3.5585680108540929E-01 3.6886342104186010E-01 3.8120746174379161E-01 + 3.9287212683550810E-01 4.0384137286248289E-01 4.1409993936824446E-01 + 4.2363337917471106E-01 4.3242808883874645E-01 4.4047133927512339E-01 + 4.4775130653774570E-01 4.5425710274299352E-01 4.5997880711868344E-01 + 4.6490749716235363E-01 4.6903527987736932E-01 4.7235532306137568E-01 + 4.7486188660845752E-01 4.7655035377709859E-01 4.7741726237413629E-01 + 4.7746033578940106E-01 4.7667851380836812E-01 4.7507198311809973E-01 + 4.7264220741015117E-01 4.6939195697190800E-01 4.6532533764537731E-01 + 4.6044781902015480E-01 4.5476626171530177E-01 4.4828894359367311E-01 + 4.4102558474209613E-01 4.3298737104220519E-01 4.2418697614996881E-01 + 4.1463858169735296E-01 4.0435789552743412E-01 3.9336216777468458E-01 + 3.8167020460508039E-01 3.6930237943593214E-01 3.5628064146235805E-01 + 3.4262852132543598E-01 3.2837113376517774E-01 3.1353517710840689E-01 + 2.9814892944586335E-01 2.8224224135293319E-01 2.6584652500290246E-01 + 2.4899473950935433E-01 2.3172137231453846E-01 2.1406241641320148E-01 + 1.9605534316708384E-01 1.7773907042565346E-01 1.5915392562592653E-01 + 1.4034160350150734E-01 1.2134511799164702E-01 1.0220874790874067E-01 + 8.2977975900541637E-02 6.3699420234076057E-02 4.4420758933541402E-02 + 2.5190645824964671E-02 6.0586180756002162E-03 -1.2925005135564592E-02 + -3.1709233120523740E-02 -5.0242523595014167E-02 -6.8472912165315813E-02 + -8.6348151477409818E-02 -1.0381586004062852E-01 -1.2082368066280447E-01 + -1.3731944836007587E-01 -1.5325136753351201E-01 -1.6856819813473672E-01 + -1.8321945047402433E-01 -1.9715558825615054E-01 -2.1032823935941761E-01 + -2.2269041380219828E-01 -2.3419672826711227E-01 -2.4480363647538550E-01 + -2.5446966462242460E-01 -2.6315565099998611E-01 -2.7082498884045741E-01 + -2.7744387132498344E-01 -2.8298153759981032E-01 -2.8741051854485522E-01 + -2.9070688093593350E-01 -2.9285046853807517E-01 -2.9382513856304066E-01 + -2.9361899182054896E-01 -2.9222459479119706E-01 -2.8963919175091596E-01 + -2.8586490498355521E-01 -2.8090892103150528E-01 -2.7478366085580230E-01 + -2.6750693170878698E-01 -2.5910205846604578E-01 -2.4959799212199599E-01 + -2.3902939312718671E-01 -2.2743668723716554E-01 -2.1486609155471911E-01 + -2.0136960848132818E-01 -1.8700498535168344E-01 -1.7183563760879153E-01 + -1.5593053348802452E-01 -1.3936403831772670E-01 -1.2221571671263108E-01 + -1.0457009113508547E-01 -8.6516355528311370E-02 -6.8148042985721510E-02 + -4.9562646710573033E-02 -3.0861193840515330E-02 -1.2147772061344649E-02 + 6.4709906872034611E-03 2.4886492704332446E-02 4.2988770076905887E-02 + 6.0667151681504307E-02 7.7810955552476871E-02 9.4310224019744759E-02 + 1.1005649448837486E-01 1.2494360217885665E-01 1.3886851057440569E-01 + 1.5173216473178236E-01 1.6344036200795770E-01 1.7390463414023305E-01 + 1.8304313399643271E-01 1.9078151969035728E-01 1.9705382814241773E-01 + 2.0180332956378980E-01 2.0498335376424953E-01 2.0655807863886624E-01 + 2.0650327068889854E-01 2.0480696699057052E-01 2.0147008765568533E-01 + 1.9650696754568950E-01 1.8994579582175797E-01 1.8182895185458883E-01 + 1.7221322609621592E-01 1.6116991474981132E-01 1.4878477747966348E-01 + 1.3515784799937039E-01 1.2040308817796505E-01 1.0464787732616553E-01 + 8.8032329581302193E-02 7.0708433810542343E-02 5.2839012205632932E-02 + 3.4596495752822330E-02 1.6161517029019964E-02 -2.2786767051516921E-03 + -2.0531984383215893E-02 -3.8403377262320730E-02 -5.5696978395565068E-02 + -7.2218280176965507E-02 -8.7776481193671999E-02 -1.0218692003739682E-01 + -1.1527358011152246E-01 -1.2687163588493566E-01 -1.3683000755944741E-01 + -1.4501388781361388E-01 -1.5130720124799554E-01 -1.5561495447770776E-01 + -1.5786543259496230E-01 -1.5801219605810077E-01 -1.5603583105703245E-01 + -1.5194540616027030E-01 -1.4577958866524698E-01 -1.3760737564503620E-01 + -1.2752839729615814E-01 -1.1567275391704561E-01 -1.0220035274299019E-01 + -8.7299716970062238E-02 -7.1186246634221129E-02 -5.4099919563043192E-02 + -3.6302430346939515E-02 -1.8073776112146521E-02 2.9169028924568903E-04 + 1.8489706373436901E-02 3.6210998758077755E-02 5.3146574109712824E-02 + 6.8993327939822269E-02 8.3459883094772702E-02 9.6272556500651529E-02 + 1.0718134033290408E-01 1.1596577270228964E-01 1.2244056362615667E-01 + 1.2646083494565166E-01 1.2792682841777100E-01 1.2678793491012033E-01 + 1.2304589988665562E-01 1.1675706658546564E-01 1.0803352878774089E-01 + 9.7043080115905511E-02 8.4007866535991849E-02 6.9201673213743251E-02 + 5.2945805985854119E-02 3.5603561199500630E-02 1.7573315112401209E-02 + -7.1969518896917658E-04 -1.8832784122635178E-02 -3.6316263206025497E-02 + -5.2724714895975966E-02 -6.7628845770464921E-02 -8.0627628976694121E-02 + -9.1360409125315983E-02 -9.9518612301955883E-02 -1.0485668144803159E-01 + -1.0720184486753018E-01 -1.0646232478609351E-01 -1.0263360528800473E-01 + -9.5802405881829450E-02 -8.6148049328198917E-02 -7.3940970671939013E-02 + -5.9538188564363353E-02 -4.3375649200466354E-02 -2.5957456065555315E-02 + -7.8421129400906269E-03 1.0373969810143565E-02 2.8075328602609591E-02 + 4.4648155778163993E-02 5.9502239330979485E-02 7.2093398186032581E-02 + 8.1945585827741682E-02 8.8671767044508451E-02 9.1992634889017294E-02 + 9.1752233437685043E-02 8.7929591485216368E-02 8.0645556605055721E-02 + 7.0164150070075051E-02 5.6887940955537675E-02 4.1347159958992574E-02 + 2.4182535040628408E-02 6.1221240589809673E-03 -1.2047266573926957E-02 + -2.9513167049243581E-02 -4.5473810462859740E-02 -5.9176271643827251E-02 + -6.9954629630973181E-02 -7.7266229809852816E-02 -8.0724030422055226E-02 + -8.0123027242364600E-02 -7.5458872791084389E-02 -6.6937050722622210E-02 + -5.4971333965522763E-02 -4.0170741285753035E-02 -2.3314797332667388E-02 + -5.3175731499991007E-03 1.2818294028985978E-02 3.0055670964025397E-02 + 4.5382462495379867E-02 5.7873376075807052E-02 6.6750217006314602E-02 + 7.1436740837499374E-02 7.1604053542116408E-02 6.7202787236120540E-02 + 5.8478809654020025E-02 4.5970050494944500E-02 3.0483125979814087E-02 + 1.3049768752313210E-02 -5.1354472399267577E-03 -2.2793052496551159E-02 + -3.8647771196323004E-02 -5.1522913672041946E-02 -6.0433230910278794E-02 + -6.4668827314074057E-02 -6.3862711748689169E-02 -5.8035173439971582E-02 + -4.7609431082940662E-02 -3.3394898339837185E-02 -1.6536852455045228E-02 + 1.5658641175388824E-03 1.9370446988356334E-02 3.5319416560058124E-02 + 4.7979375803843559E-02 5.6177108936538316E-02 5.9119930177926890E-02 + 5.6487417292054851E-02 4.8483216480724456E-02 3.5838503645599068E-02 + 1.9762809156985087E-02 1.8429817909383301E-03 -1.6103344464915015E-02 + -3.2207862473302880E-02 -4.4748479270798912E-02 -5.2342615474927807E-02 + -5.4114920568893998E-02 -4.9818161981931973E-02 -3.9889424878419455E-02 + -2.5429708636739209E-02 -8.1031335544538268E-03 1.0038458395061839E-02 + 2.6789753418474584E-02 4.0060197045306715E-02 4.8144420205075325E-02 + 4.9959599202336696E-02 4.5215412453238998E-02 3.4488056238233346E-02 + 1.9180299193145102E-02 1.3639110492740451E-03 -1.6482599584016676E-02 + -3.1811348914407629E-02 -4.2373783979767217E-02 -4.6567834333045836E-02 + -4.3708647242961036E-02 -3.4174556662003419E-02 -1.9395031667981039E-02 + -1.6697031924923851E-03 1.6165598956017740E-02 3.1182548143001414E-02 + 4.0847415786590499E-02 4.3471028204653706E-02 3.8539574440467905E-02 + 2.6857503660638066E-02 1.0461353417117122E-02 -7.6985481983878742E-03 + -2.4266511493521388E-02 -3.6099751938661120E-02 -4.0883300233412433E-02 + -3.7621050382520088E-02 -2.6893032844951089E-02 -1.0807528065933785E-02 + 7.3667570550597482E-03 2.3836555615872095E-02 3.5072311707131050E-02 + 3.8588344865863045E-02 3.3539858835660984E-02 2.0986368029965254E-02 + 3.7334696969499601E-03 -1.4244046977810789E-02 -2.8693804000418897E-02 + -3.6100723555762312E-02 -3.4583957842962705E-02 -2.4440339446778193E-02 + -8.1663252236873068E-03 1.0089754169315859E-02 2.5546304389093711E-02 + 3.4041531008869981E-02 3.3196202005484017E-02 2.3154121226341751E-02 + 6.6555243162992623E-03 -1.1632344693761107E-02 -2.6391519692048289E-02 + -3.3204603530996114E-02 -2.9931830520078539E-02 -1.7473583393096636E-02 + 3.7210285517968366E-04 1.7985909207310018E-02 2.9663931825054772E-02 + 3.1493955159467901E-02 2.2750658909711299E-02 6.2917475617921435E-03 + -1.2265986884789365E-02 -2.6399935306831740E-02 -3.0981594407002440E-02 + -2.4216679654302922E-02 -8.4713556450432791E-03 1.0422488234551327E-02 + 2.5242740331121272E-02 3.0135007413696624E-02 2.3009462457176770E-02 + 6.5724816523040673E-03 -1.2549432577554288E-02 -2.6388652679924466E-02 + -2.8962832752405639E-02 -1.8967965472546831E-02 -5.9334357995430439E-04 + 1.8071181158437526E-02 2.8518444590289870E-02 2.5745509081333107E-02 + 1.0799542645296666E-02 -9.3971514627602167E-03 -2.5100601900677377E-02 + -2.8419488233436395E-02 -1.7396814036953246E-02 2.6502674224066301E-03 + 2.1483055024655778E-02 2.9079167647428891E-02 2.1043942196748478E-02 + 1.3545469240693665E-03 -1.9344199483027381E-02 -2.9350883519863747E-02 + -2.2571122514854783E-02 -2.4379179702078888E-03 1.9509816320677342E-02 + 3.0059043609665059E-02 2.2316415469005854E-02 4.3670142601870144E-04 + -2.2241158691646855E-02 -3.1127266710343174E-02 -1.9826801556172613E-02 + 5.0138223208317997E-03 2.7215035446626380E-02 3.1418396946386026E-02 + 1.3829219766035917E-02 -1.4192405044252430E-02 -3.3055925644591817E-02 + -2.8519298987770701E-02 -2.6510967657093145E-03 2.6335212407390878E-02 + 3.6534845162875411E-02 1.8925016064779615E-02 -1.4420622115425233E-02 + -3.7992569184247427E-02 -3.2133056948397284E-02 3.6840103338277416E-04 + 3.4431556008585676E-02 4.1548973521876080E-02 1.3678047773340045E-02 + -2.7775833869877014E-02 -4.7634565670796339E-02 -2.6615738134004106E-02 + 1.9739754453866630E-02 5.1453156243167625E-02 3.8162566492257806E-02 + -1.1629870037447542E-02 -5.4267116341094025E-02 -4.8539184799389561E-02 + 4.3973622469699707E-03 5.7332811232258939E-02 5.8173329830200793E-02 + 1.1897328540177604E-03 -6.1829178847176904E-02 -6.7452003009044276E-02 + -4.3385046007603156E-03 6.8837214793237969E-02 7.6497795084373807E-02 + 4.0370432207239414E-03 -7.9290582628769785E-02 -8.4933049013401693E-02 + 1.0793333060383802E-03 9.3833527923478155E-02 9.1594382532675628E-02 + + + -7.0780969925248946E-15 -1.1379664464077100E-06 -2.2860388711376266E-06 + -3.4443070226949169E-06 -4.6128614466170902E-06 -5.7917934925520917E-06 + -6.9811953213994976E-06 -8.1811599125148927E-06 -9.3917810709784236E-06 + -1.0613153434927856E-05 -1.1845372482956621E-05 -1.3088534541577750E-05 + -1.4342736792753916E-05 -1.5608077281494582E-05 -1.6884654923520299E-05 + -1.8172569512995402E-05 -1.9471921730329100E-05 -2.0782813150046001E-05 + -2.2105346248726538E-05 -2.3439624413017772E-05 -2.4785751947715537E-05 + -2.6143834083918198E-05 -2.7513976987252823E-05 -2.8896287766174600E-05 + -3.0290874480339700E-05 -3.1697846149052617E-05 -3.3117312759788623E-05 + -3.4549385276791743E-05 -3.5994175649749087E-05 -3.7451796822542442E-05 + -3.8922362742077245E-05 -4.0405988367190334E-05 -4.1902789677636459E-05 + -4.3412883683154745E-05 -4.4936388432615755E-05 -4.6473423023249710E-05 + -4.8024107609956637E-05 -4.9588563414699254E-05 -5.1166912735979046E-05 + -5.2759278958397012E-05 -5.4365786562298677E-05 -5.5986561133505257E-05 + -5.7621729373131027E-05 -5.9271419107487778E-05 -6.0935759298077570E-05 + -6.2614880051673781E-05 -6.4308912630492074E-05 -6.6017989462451468E-05 + -6.7742244151526663E-05 -6.9481811488192040E-05 -7.1236827459958781E-05 + -7.3007429262005323E-05 -7.4793755307902337E-05 -7.6595945240432741E-05 + -7.8414139942508020E-05 -8.0248481548181628E-05 -8.2099113453759572E-05 + -8.3966180329010434E-05 -8.5849828128474443E-05 -8.7750204102873144E-05 + -8.9667456810620330E-05 -9.1601736129435409E-05 -9.3553193268059397E-05 + -9.5521980778075802E-05 -9.7508252565835368E-05 -9.9512163904487779E-05 + -1.0153387144611979E-04 -1.0357353323400062E-04 -1.0563130871493706E-04 + -1.0770735875173778E-04 -1.0980184563578816E-04 -1.1191493309973712E-04 + -1.1404678633029661E-04 -1.1619757198115450E-04 -1.1836745818600225E-04 + -1.2055661457167861E-04 -1.2276521227142962E-04 -1.2499342393828620E-04 + -1.2724142375856141E-04 -1.2950938746546654E-04 -1.3179749235284882E-04 + -1.3410591728905077E-04 -1.3643484273089275E-04 -1.3878445073777984E-04 + -1.4115492498593379E-04 -1.4354645078275120E-04 -1.4595921508128948E-04 + -1.4839340649488154E-04 -1.5084921531188013E-04 -1.5332683351053291E-04 + -1.5582645477398965E-04 -1.5834827450544327E-04 -1.6089248984340479E-04 + -1.6345929967711377E-04 -1.6604890466208637E-04 -1.6866150723580036E-04 + -1.7129731163352085E-04 -1.7395652390426490E-04 -1.7663935192690965E-04 + -1.7934600542644202E-04 -1.8207669599035341E-04 -1.8483163708518001E-04 + -1.8761104407318997E-04 -1.9041513422921827E-04 -1.9324412675765198E-04 + -1.9609824280956558E-04 -1.9897770550000865E-04 -2.0188273992544724E-04 + -2.0481357318136037E-04 -2.0777043437999196E-04 -2.1075355466826091E-04 + -2.1376316724583104E-04 -2.1679950738333949E-04 -2.1986281244078886E-04 + -2.2295332188610234E-04 -2.2607127731384232E-04 -2.2921692246409691E-04 + -2.3239050324153356E-04 -2.3559226773462084E-04 -2.3882246623502284E-04 + -2.4208135125716447E-04 -2.4536917755797077E-04 -2.4868620215678109E-04 + -2.5203268435544185E-04 -2.5540888575857520E-04 -2.5881507029402990E-04 + -2.6225150423351190E-04 -2.6571845621339954E-04 -2.6921619725574404E-04 + -2.7274500078945370E-04 -2.7630514267166915E-04 -2.7989690120932816E-04 + -2.8352055718091924E-04 -2.8717639385843137E-04 -2.9086469702949857E-04 + -2.9458575501973736E-04 -2.9833985871528866E-04 -3.0212730158555369E-04 + -3.0594837970613649E-04 -3.0980339178198797E-04 -3.1369263917075443E-04 + -3.1761642590633700E-04 -3.2157505872265618E-04 -3.2556884707763030E-04 + -3.2959810317736618E-04 -3.3366314200056316E-04 -3.3776428132313585E-04 + -3.4190184174305501E-04 -3.4607614670540782E-04 -3.5028752252768173E-04 + -3.5453629842527394E-04 -3.5882280653722369E-04 -3.6314738195217776E-04 + -3.6751036273458340E-04 -3.7191208995111395E-04 -3.7635290769733108E-04 + -3.8083316312458222E-04 -3.8535320646713631E-04 -3.8991339106956272E-04 + -3.9451407341435077E-04 -3.9915561314977655E-04 -4.0383837311801598E-04 + -4.0856271938350720E-04 -4.1332902126156666E-04 -4.1813765134725772E-04 + -4.2298898554451455E-04 -4.2788340309552852E-04 -4.3282128661039081E-04 + -4.3780302209700159E-04 -4.4282899899124469E-04 -4.4789961018742606E-04 + -4.5301525206898859E-04 -4.5817632453949567E-04 -4.6338323105389069E-04 + -4.6863637865003497E-04 -4.7393617798052360E-04 -4.7928304334478680E-04 + -4.8467739272147462E-04 -4.9011964780112829E-04 -4.9561023401914353E-04 + -5.0114958058902596E-04 -5.0673812053594013E-04 -5.1237629073055957E-04 + -5.1806453192321548E-04 -5.2380328877834671E-04 -5.2959300990926164E-04 + -5.3543414791320089E-04 -5.4132715940671762E-04 -5.4727250506136937E-04 + -5.5327064963972637E-04 -5.5932206203169999E-04 -5.6542721529119586E-04 + -5.7158658667308914E-04 -5.7780065767052921E-04 -5.8406991405257733E-04 + -5.9039484590217562E-04 -5.9677594765445590E-04 -6.0321371813538581E-04 + -6.0970866060076163E-04 -6.1626128277554267E-04 -6.2287209689354062E-04 + -6.2954161973745521E-04 -6.3627037267926958E-04 -6.4305888172100411E-04 + -6.4990767753582857E-04 -6.5681729550954313E-04 -6.6378827578242653E-04 + -6.7082116329145452E-04 -6.7791650781289414E-04 -6.8507486400527643E-04 + -6.9229679145275014E-04 -6.9958285470882089E-04 -7.0693362334047773E-04 + -7.1434967197271161E-04 -7.2183158033343054E-04 -7.2937993329877154E-04 + -7.3699532093881638E-04 -7.4467833856371073E-04 -7.5242958677019872E-04 + -7.6024967148856056E-04 -7.6813920402997774E-04 -7.7609880113431136E-04 + -7.8412908501830690E-04 -7.9223068342422866E-04 -8.0040422966892115E-04 + -8.0865036269331175E-04 -8.1696972711235076E-04 -8.2536297326539097E-04 + -8.3383075726702126E-04 -8.4237374105834489E-04 -8.5099259245871811E-04 + -8.5968798521794459E-04 -8.6846059906893578E-04 -8.7731111978083659E-04 + -8.8624023921262285E-04 -8.9524865536717748E-04 -9.0433707244584095E-04 + -9.1350620090345231E-04 -9.2275675750387587E-04 -9.3208946537601852E-04 + -9.4150505407034828E-04 -9.5100425961591175E-04 -9.6058782457785852E-04 + -9.7025649811547927E-04 -9.8001103604075136E-04 -9.8985220087741198E-04 + -9.9978076192055142E-04 -1.0097974952967361E-03 -1.0199031840246637E-03 + -1.0300986180763641E-03 -1.0403845944389292E-03 -1.0507619171768073E-03 + -1.0612313974946357E-03 -1.0717938538006404E-03 -1.0824501117705949E-03 + -1.0932010044123507E-03 -1.1040473721309280E-03 -1.1149900627942036E-03 + -1.1260299317991630E-03 -1.1371678421387530E-03 -1.1484046644693231E-03 + -1.1597412771786634E-03 -1.1711785664546498E-03 -1.1827174263544953E-03 + -1.1943587588746202E-03 -1.2061034740211390E-03 -1.2179524898809685E-03 + -1.2299067326935796E-03 -1.2419671369233729E-03 -1.2541346453327010E-03 + -1.2664102090555415E-03 -1.2787947876718216E-03 -1.2912893492823994E-03 + -1.3038948705847157E-03 -1.3166123369491118E-03 -1.3294427424958310E-03 + -1.3423870901726933E-03 -1.3554463918334730E-03 -1.3686216683169560E-03 + -1.3819139495267116E-03 -1.3953242745115627E-03 -1.4088536915467804E-03 + -1.4225032582159845E-03 -1.4362740414937834E-03 -1.4501671178291412E-03 + -1.4641835732294853E-03 -1.4783245033455582E-03 -1.4925910135570274E-03 + -1.5069842190588484E-03 -1.5215052449483956E-03 -1.5361552263133712E-03 + -1.5509353083204833E-03 -1.5658466463049226E-03 -1.5808904058606243E-03 + -1.5960677629313306E-03 -1.6113799039024674E-03 -1.6268280256938297E-03 + -1.6424133358530892E-03 -1.6581370526501384E-03 -1.6740004051722587E-03 + -1.6900046334201412E-03 -1.7061509884047650E-03 -1.7224407322451137E-03 + -1.7388751382667808E-03 -1.7554554911014414E-03 -1.7721830867871932E-03 + -1.7890592328698122E-03 -1.8060852485048816E-03 -1.8232624645608416E-03 + -1.8405922237229512E-03 -1.8580758805981613E-03 -1.8757148018209277E-03 + -1.8935103661599643E-03 -1.9114639646259258E-03 -1.9295770005800666E-03 + -1.9478508898438513E-03 -1.9662870608095312E-03 -1.9848869545517184E-03 + -2.0036520249399250E-03 -2.0225837387521238E-03 -2.0416835757893007E-03 + -2.0609530289910213E-03 -2.0803936045520359E-03 -2.1000068220398951E-03 + -2.1197942145136329E-03 -2.1397573286434796E-03 -2.1598977248316487E-03 + -2.1802169773341923E-03 -2.2007166743839251E-03 -2.2213984183144559E-03 + -2.2422638256852979E-03 -2.2633145274081070E-03 -2.2845521688740216E-03 + -2.3059784100821347E-03 -2.3275949257691160E-03 -2.3494034055399609E-03 + -2.3714055539999189E-03 -2.3936030908875681E-03 -2.4159977512090945E-03 + -2.4385912853737307E-03 -2.4613854593304187E-03 -2.4843820547056682E-03 + -2.5075828689426470E-03 -2.5309897154414842E-03 -2.5546044237008342E-03 + -2.5784288394606831E-03 -2.6024648248464287E-03 -2.6267142585142209E-03 + -2.6511790357976019E-03 -2.6758610688554368E-03 -2.7007622868211547E-03 + -2.7258846359533135E-03 -2.7512300797874942E-03 -2.7768005992895358E-03 + -2.8025981930101316E-03 -2.8286248772407905E-03 -2.8548826861711802E-03 + -2.8813736720478505E-03 -2.9080999053343812E-03 -2.9350634748729286E-03 + -2.9622664880472080E-03 -2.9897110709469102E-03 -3.0173993685335865E-03 + -3.0453335448079868E-03 -3.0735157829788790E-03 -3.1019482856333631E-03 + -3.1306332749086946E-03 -3.1595729926656149E-03 -3.1887697006632229E-03 + -3.2182256807353985E-03 -3.2479432349687585E-03 -3.2779246858822171E-03 + -3.3081723766081065E-03 -3.3386886710749155E-03 -3.3694759541916261E-03 + -3.4005366320337014E-03 -3.4318731320306826E-03 -3.4634879031554705E-03 + -3.4953834161152667E-03 -3.5275621635441996E-03 -3.5600266601976591E-03 + -3.5927794431483326E-03 -3.6258230719839759E-03 -3.6591601290069400E-03 + -3.6927932194354422E-03 -3.7267249716066275E-03 -3.7609580371814064E-03 + -3.7954950913511075E-03 -3.8303388330459525E-03 -3.8654919851453693E-03 + -3.9009572946901564E-03 -3.9367375330965166E-03 -3.9728354963719861E-03 + -4.0092540053332515E-03 -4.0459959058258936E-03 -4.0830640689460788E-03 + -4.1204613912641788E-03 -4.1581907950503831E-03 -4.1962552285022808E-03 + -4.2346576659744546E-03 -4.2734011082101011E-03 -4.3124885825746697E-03 + -4.3519231432915901E-03 -4.3917078716800371E-03 -4.4318458763948155E-03 + -4.4723402936683370E-03 -4.5131942875547377E-03 -4.5544110501761458E-03 + -4.5959938019710829E-03 -4.6379457919450912E-03 -4.6802702979235299E-03 + -4.7229706268066178E-03 -4.7660501148266898E-03 -4.8095121278077489E-03 + -4.8533600614272566E-03 -4.8975973414802391E-03 -4.9422274241457320E-03 + -4.9872537962555316E-03 -5.0326799755653177E-03 -5.0785095110281626E-03 + -5.1247459830704176E-03 -5.1713930038700421E-03 -5.2184542176373500E-03 + -5.2659333008982460E-03 -5.3138339627799014E-03 -5.3621599452989797E-03 + -5.4109150236523497E-03 -5.4601030065103556E-03 -5.5097277363126565E-03 + -5.5597930895666696E-03 -5.6103029771485836E-03 -5.6612613446070390E-03 + -5.7126721724694643E-03 -5.7645394765510590E-03 -5.8168673082665129E-03 + -5.8696597549444283E-03 -5.9229209401444943E-03 -5.9766550239774121E-03 + -6.0308662034276534E-03 -6.0855587126789909E-03 -6.1407368234429041E-03 + -6.1964048452898095E-03 -6.2525671259832140E-03 -6.3092280518167749E-03 + -6.3663920479542554E-03 -6.4240635787725245E-03 -6.4822471482074238E-03 + -6.5409473001027656E-03 -6.6001686185622856E-03 -6.6599157283046724E-03 + -6.7201932950217078E-03 -6.7810060257395078E-03 -6.8423586691828686E-03 + -6.9042560161428120E-03 -6.9667028998473173E-03 -7.0297041963352652E-03 + -7.0932648248335835E-03 -7.1573897481377489E-03 -7.2220839729954878E-03 + -7.2873525504938601E-03 -7.3532005764497029E-03 -7.4196331918033641E-03 + -7.4866555830159576E-03 -7.5542729824699638E-03 -7.6224906688733413E-03 + -7.6913139676670853E-03 -7.7607482514363410E-03 -7.8307989403250365E-03 + -7.9014715024540924E-03 -7.9727714543432592E-03 -8.0447043613365611E-03 + -8.1172758380313823E-03 -8.1904915487113015E-03 -8.2643572077825758E-03 + -8.3388785802144469E-03 -8.4140614819831830E-03 -8.4899117805198876E-03 + -8.5664353951622821E-03 -8.6436382976101834E-03 -8.7215265123850479E-03 + -8.8001061172933003E-03 -8.8793832438937587E-03 -8.9593640779689603E-03 + -9.0400548600005019E-03 -9.1214618856485536E-03 -9.2035915062353008E-03 + -9.2864501292326297E-03 -9.3700442187539239E-03 -9.4543802960499884E-03 + -9.5394649400092971E-03 -9.6253047876623792E-03 -9.7119065346905706E-03 + -9.7992769359390476E-03 -9.8874228059341318E-03 -9.9763510194051455E-03 + -1.0066068511810479E-02 -1.0156582279868260E-02 -1.0247899382091431E-02 + -1.0340026939327302E-02 -1.0432972135301753E-02 -1.0526742217167904E-02 + -1.0621344496059493E-02 -1.0716786347648779E-02 -1.0813075212709309E-02 + -1.0910218597683216E-02 -1.1008224075253334E-02 -1.1107099284920176E-02 + -1.1206851933583553E-02 -1.1307489796129264E-02 -1.1409020716020483E-02 + -1.1511452605894137E-02 -1.1614793448162320E-02 -1.1719051295618536E-02 + -1.1824234272049134E-02 -1.1930350572849687E-02 -1.2037408465646496E-02 + -1.2145416290923292E-02 -1.2254382462652976E-02 -1.2364315468934725E-02 + -1.2475223872636174E-02 -1.2587116312040948E-02 -1.2700001501501551E-02 + -1.2813888232097457E-02 -1.2928785372298765E-02 -1.3044701868635078E-02 + -1.3161646746369935E-02 -1.3279629110180794E-02 -1.3398658144844297E-02 + -1.3518743115927403E-02 -1.3639893370483805E-02 -1.3762118337756228E-02 + -1.3885427529884205E-02 -1.4009830542617613E-02 -1.4135337056035983E-02 + -1.4261956835273445E-02 -1.4389699731249627E-02 -1.4518575681406291E-02 + -1.4648594710449780E-02 -1.4779766931099531E-02 -1.4912102544842350E-02 + -1.5045611842692770E-02 -1.5180305205959345E-02 -1.5316193107016974E-02 + -1.5453286110085384E-02 -1.5591594872013516E-02 -1.5731130143070284E-02 + -1.5871902767741329E-02 -1.6013923685531964E-02 -1.6157203931776488E-02 + -1.6301754638453535E-02 -1.6447587035007982E-02 -1.6594712449178872E-02 + -1.6743142307833969E-02 -1.6892888137810480E-02 -1.7043961566762224E-02 + -1.7196374324013396E-02 -1.7350138241418511E-02 -1.7505265254229078E-02 + -1.7661767401966691E-02 -1.7819656829302626E-02 -1.7978945786944062E-02 + -1.8139646632526880E-02 -1.8301771831515084E-02 -1.8465333958106837E-02 + -1.8630345696147129E-02 -1.8796819840047274E-02 -1.8964769295710854E-02 + -1.9134207081466698E-02 -1.9305146329008340E-02 -1.9477600284340379E-02 + -1.9651582308731621E-02 -1.9827105879674910E-02 -2.0004184591853914E-02 + -2.0182832158116677E-02 -2.0363062410455917E-02 -2.0544889300996363E-02 + -2.0728326902988783E-02 -2.0913389411811062E-02 -2.1100091145975917E-02 + -2.1288446548145771E-02 -2.1478470186154387E-02 -2.1670176754035278E-02 + -2.1863581073057387E-02 -2.2058698092767198E-02 -2.2255542892038186E-02 + -2.2454130680126878E-02 -2.2654476797735891E-02 -2.2856596718084019E-02 + -2.3060506047982911E-02 -2.3266220528920883E-02 -2.3473756038153555E-02 + -2.3683128589801095E-02 -2.3894354335952765E-02 -2.4107449567777741E-02 + -2.4322430716643292E-02 -2.4539314355239285E-02 -2.4758117198709621E-02 + -2.4978856105790537E-02 -2.5201548079955338E-02 -2.5426210270566033E-02 + -2.5652859974031460E-02 -2.5881514634972048E-02 -2.6112191847391258E-02 + -2.6344909355853197E-02 -2.6579685056667194E-02 -2.6816536999078294E-02 + -2.7055483386464511E-02 -2.7296542577540193E-02 -2.7539733087565525E-02 + -2.7785073589562653E-02 -2.8032582915537292E-02 -2.8282280057706999E-02 + -2.8534184169735050E-02 -2.8788314567970201E-02 -2.9044690732692544E-02 + -2.9303332309364740E-02 -2.9564259109889166E-02 -2.9827491113870449E-02 + -3.0093048469883293E-02 -3.0360951496746093E-02 -3.0631220684799173E-02 + -3.0903876697188599E-02 -3.1178940371154738E-02 -3.1456432719325564E-02 + -3.1736374931015110E-02 -3.2018788373525800E-02 -3.2303694593456077E-02 + -3.2591115318011364E-02 -3.2881072456320048E-02 -3.3173588100752702E-02 + -3.3468684528245474E-02 -3.3766384201627003E-02 -3.4066709770948694E-02 + -3.4369684074818288E-02 -3.4675330141736439E-02 -3.4983671191435965E-02 + -3.5294730636224098E-02 -3.5608532082326491E-02 -3.5925099331233938E-02 + -3.6244456381050782E-02 -3.6566627427844688E-02 -3.6891636866998347E-02 + -3.7219509294561783E-02 -3.7550269508605787E-02 -3.7883942510575967E-02 + -3.8220553506646479E-02 -3.8560127909074503E-02 -3.8902691337553648E-02 + -3.9248269620566996E-02 -3.9596888796738776E-02 -3.9948575116185027E-02 + -4.0303355041862048E-02 -4.0661255250912687E-02 -4.1022302636010401E-02 + -4.1386524306699847E-02 -4.1753947590734392E-02 -4.2124600035409604E-02 + -4.2498509408892313E-02 -4.2875703701545261E-02 -4.3256211127245939E-02 + -4.3640060124700217E-02 -4.4027279358749283E-02 -4.4417897721669784E-02 + -4.4811944334466870E-02 -4.5209448548158962E-02 -4.5610439945054232E-02 + -4.6014948340017847E-02 -4.6423003781729290E-02 -4.6834636553929707E-02 + -4.7249877176657525E-02 -4.7668756407473041E-02 -4.8091305242669982E-02 + -4.8517554918473940E-02 -4.8947536912227266E-02 -4.9381282943558584E-02 + -4.9818824975537385E-02 -5.0260195215811702E-02 -5.0705426117729074E-02 + -5.1154550381439089E-02 -5.1607600954976907E-02 -5.2064611035327196E-02 + -5.2525614069466646E-02 -5.2990643755385210E-02 -5.3459734043083990E-02 + -5.3932919135549082E-02 -5.4410233489701094E-02 -5.4891711817317564E-02 + -5.5377389085928895E-02 -5.5867300519685345E-02 -5.6361481600194226E-02 + -5.6859968067326828E-02 -5.7362795919992160E-02 -5.7870001416878009E-02 + -5.8381621077156519E-02 -5.8897691681153302E-02 -5.9418250270979661E-02 + -5.9943334151124184E-02 -6.0472980889004907E-02 -6.1007228315477800E-02 + -6.1546114525302439E-02 -6.2089677877561124E-02 -6.2637956996030655E-02 + -6.3190990769505739E-02 -6.3748818352070288E-02 -6.4311479163316643E-02 + -6.4879012888509890E-02 -6.5451459478694782E-02 -6.6028859150745023E-02 + -6.6611252387350231E-02 -6.7198679936941341E-02 -6.7791182813549677E-02 + -6.8388802296598453E-02 -6.8991579930625546E-02 -6.9599557524932465E-02 + -7.0212777153159808E-02 -7.0831281152784697E-02 -7.1455112124538381E-02 + -7.2084312931741765E-02 -7.2718926699554917E-02 -7.3358996814138711E-02 + -7.4004566921725454E-02 -7.4655680927595100E-02 -7.5312382994954741E-02 + -7.5974717543716985E-02 -7.6642729249176089E-02 -7.7316463040575267E-02 + -7.7995964099565579E-02 -7.8681277858549684E-02 -7.9372449998908398E-02 + -8.0069526449106240E-02 -8.0772553382671627E-02 -8.1481577216048595E-02 + -8.2196644606314997E-02 -8.2917802448763650E-02 -8.3645097874342753E-02 + -8.4378578246949373E-02 -8.5118291160574233E-02 -8.5864284436290364E-02 + -8.6616606119082659E-02 -8.7375304474513735E-02 -8.8140427985218955E-02 + -8.8912025347228765E-02 -8.9690145466109830E-02 -9.0474837452921578E-02 + -9.1266150619982930E-02 -9.2064134476441045E-02 -9.2868838723639657E-02 + -9.3680313250278077E-02 -9.4498608127356901E-02 -9.5323773602902562E-02 + -9.6155860096464887E-02 -9.6994918193382018E-02 -9.7840998638803439E-02 + -9.8694152331467069E-02 -9.9554430317221110E-02 -1.0042188378228378E-01 + -1.0129656404623487E-01 -1.0217852255472849E-01 -1.0306781087192275E-01 + -1.0396448067261452E-01 -1.0486858373407382E-01 -1.0578017192756832E-01 + -1.0669929720956793E-01 -1.0762601161262313E-01 -1.0856036723590566E-01 + -1.0950241623540224E-01 -1.1045221081375364E-01 -1.1140980320972640E-01 + -1.1237524568730967E-01 -1.1334859052442400E-01 -1.1432989000123472E-01 + -1.1531919638805556E-01 -1.1631656193283320E-01 -1.1732203884820214E-01 + -1.1833567929809476E-01 -1.1935753538389872E-01 -1.2038765913014592E-01 + -1.2142610246972191E-01 -1.2247291722858286E-01 -1.2352815510996623E-01 + -1.2459186767808206E-01 -1.2566410634126987E-01 -1.2674492233460849E-01 + -1.2783436670196324E-01 -1.2893249027745468E-01 -1.3003934366633615E-01 + -1.3115497722526157E-01 -1.3227944104192843E-01 -1.3341278491408110E-01 + -1.3455505832785467E-01 -1.3570631043544523E-01 -1.3686659003208634E-01 + -1.3803594553231444E-01 -1.3921442494550676E-01 -1.4040207585066911E-01 + -1.4159894537045767E-01 -1.4280508014441290E-01 -1.4402052630138645E-01 + -1.4524532943113980E-01 -1.4647953455509352E-01 -1.4772318609620674E-01 + -1.4897632784796222E-01 -1.5023900294243789E-01 -1.5151125381743819E-01 + -1.5279312218266392E-01 -1.5408464898489702E-01 -1.5538587437217244E-01 + -1.5669683765691630E-01 -1.5801757727802107E-01 -1.5934813076183263E-01 + -1.6068853468202485E-01 -1.6203882461832900E-01 -1.6339903511409631E-01 + -1.6476919963266032E-01 -1.6614935051247173E-01 -1.6753951892097749E-01 + -1.6893973480721053E-01 -1.7035002685306316E-01 -1.7177042242320834E-01 + -1.7320094751364110E-01 -1.7464162669880409E-01 -1.7609248307726461E-01 + -1.7755353821591072E-01 -1.7902481209262888E-01 -1.8050632303743122E-01 + -1.8199808767199294E-01 -1.8350012084756487E-01 -1.8501243558122593E-01 + -1.8653504299043250E-01 -1.8806795222583100E-01 -1.8961117040229153E-01 + -1.9116470252812226E-01 -1.9272855143242776E-01 -1.9430271769056337E-01 + -1.9588719954765005E-01 -1.9748199284010248E-01 -1.9908709091512916E-01 + -2.0070248454816053E-01 -2.0232816185815744E-01 -2.0396410822076022E-01 + -2.0561030617922585E-01 -2.0726673535311010E-01 -2.0893337234464854E-01 + -2.1061019064278305E-01 -2.1229716052479194E-01 -2.1399424895546795E-01 + -2.1570141948379998E-01 -2.1741863213710355E-01 -2.1914584331255085E-01 + -2.2088300566605032E-01 -2.2263006799841947E-01 -2.2438697513880315E-01 + -2.2615366782528049E-01 -2.2793008258260766E-01 -2.2971615159704525E-01 + -2.3151180258821027E-01 -2.3331695867790447E-01 -2.3513153825585817E-01 + -2.3695545484233704E-01 -2.3878861694755760E-01 -2.4063092792784982E-01 + -2.4248228583851897E-01 -2.4434258328334249E-01 -2.4621170726065103E-01 + -2.4808953900593572E-01 -2.4997595383092455E-01 -2.5187082095907459E-01 + -2.5377400335741990E-01 -2.5568535756472494E-01 -2.5760473351588359E-01 + -2.5953197436251191E-01 -2.6146691628967972E-01 -2.6340938832872690E-01 + -2.6535921216611275E-01 -2.6731620194824585E-01 -2.6928016408224187E-01 + -2.7125089703256439E-01 -2.7322819111349200E-01 -2.7521182827737434E-01 + -2.7720158189862132E-01 -2.7919721655338775E-01 -2.8119848779491086E-01 + -2.8320514192445423E-01 -2.8521691575782876E-01 -2.8723353638744592E-01 + -2.8925472093987648E-01 -2.9128017632888004E-01 -2.9330959900387821E-01 + -2.9534267469384884E-01 -2.9737907814661640E-01 -2.9941847286352358E-01 + -3.0146051082946940E-01 -3.0350483223830266E-01 -3.0555106521356989E-01 + -3.0759882552461087E-01 -3.0964771629801185E-01 -3.1169732772442327E-01 + -3.1374723676075872E-01 -3.1579700682779649E-01 -3.1784618750321225E-01 + -3.1989431421007669E-01 -3.2194090790085977E-01 -3.2398547473699729E-01 + -3.2602750576406586E-01 -3.2806647658264537E-01 -3.3010184701493528E-01 + -3.3213306076721383E-01 -3.3415954508823564E-01 -3.3618071042366715E-01 + -3.3819595006668851E-01 -3.4020463980487375E-01 -3.4220613756350593E-01 + -3.4419978304547122E-01 -3.4618489736789992E-01 -3.4816078269574025E-01 + -3.5012672187245536E-01 -3.5208197804806329E-01 -3.5402579430473752E-01 + -3.5595739328022513E-01 -3.5787597678934158E-01 -3.5978072544381984E-01 + -3.6167079827082582E-01 -3.6354533233045849E-01 -3.6540344233257477E-01 + -3.6724422025331677E-01 -3.6906673495172349E-01 -3.7087003178684680E-01 + -3.7265313223580893E-01 -3.7441503351327410E-01 -3.7615470819282681E-01 + -3.7787110383077843E-01 -3.7956314259296481E-01 -3.8122972088511153E-01 + -3.8286970898739309E-01 -3.8448195069383112E-01 -3.8606526295722948E-01 + -3.8761843554035874E-01 -3.8914023067416070E-01 -3.9062938272377135E-01 + -3.9208459786320865E-01 -3.9350455375959970E-01 -3.9488789926788864E-01 + -3.9623325413699223E-01 -3.9753920872842236E-01 -3.9880432374844965E-01 + -4.0002712999492324E-01 -4.0120612811992262E-01 -4.0233978840945811E-01 + -4.0342655058150845E-01 -4.0446482360372538E-01 -4.0545298553220160E-01 + -4.0638938337275771E-01 -4.0727233296626331E-01 -4.0810011889957504E-01 + -4.0887099444373087E-01 -4.0958318152112166E-01 -4.1023487070341152E-01 + -4.1082422124206847E-01 -4.1134936113341869E-01 -4.1180838722022822E-01 + -4.1219936533188190E-01 -4.1252033046530828E-01 -4.1276928700887633E-01 + -4.1294420901157403E-01 -4.1304304049985324E-01 -4.1306369584461045E-01 + -4.1300406018086161E-01 -4.1286198988273975E-01 -4.1263531309654883E-01 + -4.1232183033467479E-01 -4.1191931513325553E-01 -4.1142551477658923E-01 + -4.1083815109135668E-01 -4.1015492131381287E-01 -4.0937349903319920E-01 + -4.0849153521470755E-01 -4.0750665930541813E-01 -4.0641648042672274E-01 + -4.0521858865682120E-01 -4.0391055640697104E-01 -4.0248993989524673E-01 + -4.0095428072164885E-01 -3.9930110754847387E-01 -3.9752793788993868E-01 + -3.9563228001511708E-01 -3.9361163496831242E-01 -3.9146349871106084E-01 + -3.8918536439000367E-01 -3.8677472473493413E-01 -3.8422907459135502E-01 + -3.8154591359192663E-01 -3.7872274897122654E-01 -3.7575709852824313E-01 + -3.7264649374105280E-01 -3.6938848303813587E-01 -3.6598063523076318E-01 + -3.6242054311087984E-01 -3.5870582721886668E-01 -3.5483413978553258E-01 + -3.5080316885259633E-01 -3.4661064257586777E-01 -3.4225433371523351E-01 + -3.3773206431541958E-01 -3.3304171058139492E-01 -3.2818120795209710E-01 + -3.2314855637600975E-01 -3.1794182579188041E-01 -3.1255916181766397E-01 + -3.0699879165051874E-01 -3.0125903018036720E-01 -2.9533828631923492E-01 + -2.8923506954823935E-01 -2.8294799668367093E-01 -2.7647579886322798E-01 + -2.6981732875297065E-01 -2.6297156797508464E-01 -2.5593763475595988E-01 + -2.4871479179352299E-01 -2.4130245434213010E-01 -2.3370019851259602E-01 + -2.2590776978422925E-01 -2.1792509172495478E-01 -2.0975227491470394E-01 + -2.0138962606639813E-01 -1.9283765733784392E-01 -1.8409709582685438E-01 + -1.7516889324077714E-01 -1.6605423573046663E-01 -1.5675455387753190E-01 + -1.4727153282231042E-01 -1.3760712251872831E-01 -1.2776354810068666E-01 + -1.1774332034315382E-01 -1.0754924619946125E-01 -9.7184439394681812E-02 + -8.6652331053208589E-02 -7.5956680336749183E-02 -6.5101585067102966E-02 + -5.4091492306070341E-02 -4.2931208862722364E-02 -3.1625911696167831E-02 + -2.0181158179664451E-02 -8.6028961896705454E-03 3.1025260190153179E-03 + 1.4928350193286222E-02 2.6867398760682816E-02 3.8912065853684091E-02 + 5.1054308728309614E-02 6.3285639628688967E-02 7.5597118152055526E-02 + 8.7979344171297880E-02 1.0042245137505552E-01 1.1291610148808730E-01 + 1.2544947923753119E-01 1.3801128813340729E-01 1.5058974713449930E-01 + 1.6317258827355069E-01 1.7574705531832391E-01 1.8829990354774112E-01 + 2.0081740072479073E-01 2.1328532935036401E-01 2.2568899028438660E-01 + 2.3801320782272051E-01 2.5024233632027842E-01 2.6236026845241994E-01 + 2.7435044520813551E-01 2.8619586770974953E-01 2.9787911095459990E-01 + 3.0938233957470374E-01 3.2068732571041675E-01 3.3177546909379646E-01 + 3.4262781943645754E-01 3.5322510121532491E-01 3.6354774094776382E-01 + 3.7357589704489985E-01 3.8328949232871085E-01 3.9266824929439370E-01 + 4.0169172819476656E-01 4.1033936801775545E-01 4.1859053042144612E-01 + 4.2642454668371521E-01 4.3382076771484795E-01 4.4075861717194453E-01 + 4.4721764770319011E-01 4.5317760033806909E-01 4.5861846702644471E-01 + 4.6352055631489741E-01 4.6786456213291966E-01 4.7163163564428451E-01 + 4.7480346010025759E-01 4.7736232861118516E-01 4.7929122473134639E-01 + 4.8057390572878772E-01 4.8119498838719016E-01 4.8114003716056691E-01 + 4.8039565447384686E-01 4.7894957293313539E-01 4.7679074917871689E-01 + 4.7390945908170323E-01 4.7029739395175774E-01 4.6594775738853983E-01 + 4.6085536237362784E-01 4.5501672816272937E-01 4.4843017650022177E-01 + 4.4109592663955238E-01 4.3301618861411206E-01 4.2419525416401671E-01 + 4.1463958468507472E-01 4.0435789552743412E-01 3.9336216777468458E-01 + 3.8167020460508039E-01 3.6930237943593214E-01 3.5628064146235805E-01 + 3.4262852132543598E-01 3.2837113376517774E-01 3.1353517710840689E-01 + 2.9814892944586335E-01 2.8224224135293319E-01 2.6584652500290246E-01 + 2.4899473950935433E-01 2.3172137231453846E-01 2.1406241641320148E-01 + 1.9605534316708384E-01 1.7773907042565346E-01 1.5915392562592653E-01 + 1.4034160350150734E-01 1.2134511799164702E-01 1.0220874790874067E-01 + 8.2977975900541637E-02 6.3699420234076057E-02 4.4420758933541402E-02 + 2.5190645824964671E-02 6.0586180756002162E-03 -1.2925005135564592E-02 + -3.1709233120523740E-02 -5.0242523595014167E-02 -6.8472912165315813E-02 + -8.6348151477409818E-02 -1.0381586004062852E-01 -1.2082368066280447E-01 + -1.3731944836007587E-01 -1.5325136753351201E-01 -1.6856819813473672E-01 + -1.8321945047402433E-01 -1.9715558825615054E-01 -2.1032823935941761E-01 + -2.2269041380219828E-01 -2.3419672826711227E-01 -2.4480363647538550E-01 + -2.5446966462242460E-01 -2.6315565099998611E-01 -2.7082498884045741E-01 + -2.7744387132498344E-01 -2.8298153759981032E-01 -2.8741051854485522E-01 + -2.9070688093593350E-01 -2.9285046853807517E-01 -2.9382513856304066E-01 + -2.9361899182054896E-01 -2.9222459479119706E-01 -2.8963919175091596E-01 + -2.8586490498355521E-01 -2.8090892103150528E-01 -2.7478366085580230E-01 + -2.6750693170878698E-01 -2.5910205846604578E-01 -2.4959799212199599E-01 + -2.3902939312718671E-01 -2.2743668723716554E-01 -2.1486609155471911E-01 + -2.0136960848132818E-01 -1.8700498535168344E-01 -1.7183563760879153E-01 + -1.5593053348802452E-01 -1.3936403831772670E-01 -1.2221571671263108E-01 + -1.0457009113508547E-01 -8.6516355528311370E-02 -6.8148042985721510E-02 + -4.9562646710573033E-02 -3.0861193840515330E-02 -1.2147772061344649E-02 + 6.4709906872034611E-03 2.4886492704332446E-02 4.2988770076905887E-02 + 6.0667151681504307E-02 7.7810955552476871E-02 9.4310224019744759E-02 + 1.1005649448837486E-01 1.2494360217885665E-01 1.3886851057440569E-01 + 1.5173216473178236E-01 1.6344036200795770E-01 1.7390463414023305E-01 + 1.8304313399643271E-01 1.9078151969035728E-01 1.9705382814241773E-01 + 2.0180332956378980E-01 2.0498335376424953E-01 2.0655807863886624E-01 + 2.0650327068889854E-01 2.0480696699057052E-01 2.0147008765568533E-01 + 1.9650696754568950E-01 1.8994579582175797E-01 1.8182895185458883E-01 + 1.7221322609621592E-01 1.6116991474981132E-01 1.4878477747966348E-01 + 1.3515784799937039E-01 1.2040308817796505E-01 1.0464787732616553E-01 + 8.8032329581302193E-02 7.0708433810542343E-02 5.2839012205632932E-02 + 3.4596495752822330E-02 1.6161517029019964E-02 -2.2786767051516921E-03 + -2.0531984383215893E-02 -3.8403377262320730E-02 -5.5696978395565068E-02 + -7.2218280176965507E-02 -8.7776481193671999E-02 -1.0218692003739682E-01 + -1.1527358011152246E-01 -1.2687163588493566E-01 -1.3683000755944741E-01 + -1.4501388781361388E-01 -1.5130720124799554E-01 -1.5561495447770776E-01 + -1.5786543259496230E-01 -1.5801219605810077E-01 -1.5603583105703245E-01 + -1.5194540616027030E-01 -1.4577958866524698E-01 -1.3760737564503620E-01 + -1.2752839729615814E-01 -1.1567275391704561E-01 -1.0220035274299019E-01 + -8.7299716970062238E-02 -7.1186246634221129E-02 -5.4099919563043192E-02 + -3.6302430346939515E-02 -1.8073776112146521E-02 2.9169028924568903E-04 + 1.8489706373436901E-02 3.6210998758077755E-02 5.3146574109712824E-02 + 6.8993327939822269E-02 8.3459883094772702E-02 9.6272556500651529E-02 + 1.0718134033290408E-01 1.1596577270228964E-01 1.2244056362615667E-01 + 1.2646083494565166E-01 1.2792682841777100E-01 1.2678793491012033E-01 + 1.2304589988665562E-01 1.1675706658546564E-01 1.0803352878774089E-01 + 9.7043080115905511E-02 8.4007866535991849E-02 6.9201673213743251E-02 + 5.2945805985854119E-02 3.5603561199500630E-02 1.7573315112401209E-02 + -7.1969518896917658E-04 -1.8832784122635178E-02 -3.6316263206025497E-02 + -5.2724714895975966E-02 -6.7628845770464921E-02 -8.0627628976694121E-02 + -9.1360409125315983E-02 -9.9518612301955883E-02 -1.0485668144803159E-01 + -1.0720184486753018E-01 -1.0646232478609351E-01 -1.0263360528800473E-01 + -9.5802405881829450E-02 -8.6148049328198917E-02 -7.3940970671939013E-02 + -5.9538188564363353E-02 -4.3375649200466354E-02 -2.5957456065555315E-02 + -7.8421129400906269E-03 1.0373969810143565E-02 2.8075328602609591E-02 + 4.4648155778163993E-02 5.9502239330979485E-02 7.2093398186032581E-02 + 8.1945585827741682E-02 8.8671767044508451E-02 9.1992634889017294E-02 + 9.1752233437685043E-02 8.7929591485216368E-02 8.0645556605055721E-02 + 7.0164150070075051E-02 5.6887940955537675E-02 4.1347159958992574E-02 + 2.4182535040628408E-02 6.1221240589809673E-03 -1.2047266573926957E-02 + -2.9513167049243581E-02 -4.5473810462859740E-02 -5.9176271643827251E-02 + -6.9954629630973181E-02 -7.7266229809852816E-02 -8.0724030422055226E-02 + -8.0123027242364600E-02 -7.5458872791084389E-02 -6.6937050722622210E-02 + -5.4971333965522763E-02 -4.0170741285753035E-02 -2.3314797332667388E-02 + -5.3175731499991007E-03 1.2818294028985978E-02 3.0055670964025397E-02 + 4.5382462495379867E-02 5.7873376075807052E-02 6.6750217006314602E-02 + 7.1436740837499374E-02 7.1604053542116408E-02 6.7202787236120540E-02 + 5.8478809654020025E-02 4.5970050494944500E-02 3.0483125979814087E-02 + 1.3049768752313210E-02 -5.1354472399267577E-03 -2.2793052496551159E-02 + -3.8647771196323004E-02 -5.1522913672041946E-02 -6.0433230910278794E-02 + -6.4668827314074057E-02 -6.3862711748689169E-02 -5.8035173439971582E-02 + -4.7609431082940662E-02 -3.3394898339837185E-02 -1.6536852455045228E-02 + 1.5658641175388824E-03 1.9370446988356334E-02 3.5319416560058124E-02 + 4.7979375803843559E-02 5.6177108936538316E-02 5.9119930177926890E-02 + 5.6487417292054851E-02 4.8483216480724456E-02 3.5838503645599068E-02 + 1.9762809156985087E-02 1.8429817909383301E-03 -1.6103344464915015E-02 + -3.2207862473302880E-02 -4.4748479270798912E-02 -5.2342615474927807E-02 + -5.4114920568893998E-02 -4.9818161981931973E-02 -3.9889424878419455E-02 + -2.5429708636739209E-02 -8.1031335544538268E-03 1.0038458395061839E-02 + 2.6789753418474584E-02 4.0060197045306715E-02 4.8144420205075325E-02 + 4.9959599202336696E-02 4.5215412453238998E-02 3.4488056238233346E-02 + 1.9180299193145102E-02 1.3639110492740451E-03 -1.6482599584016676E-02 + -3.1811348914407629E-02 -4.2373783979767217E-02 -4.6567834333045836E-02 + -4.3708647242961036E-02 -3.4174556662003419E-02 -1.9395031667981039E-02 + -1.6697031924923851E-03 1.6165598956017740E-02 3.1182548143001414E-02 + 4.0847415786590499E-02 4.3471028204653706E-02 3.8539574440467905E-02 + 2.6857503660638066E-02 1.0461353417117122E-02 -7.6985481983878742E-03 + -2.4266511493521388E-02 -3.6099751938661120E-02 -4.0883300233412433E-02 + -3.7621050382520088E-02 -2.6893032844951089E-02 -1.0807528065933785E-02 + 7.3667570550597482E-03 2.3836555615872095E-02 3.5072311707131050E-02 + 3.8588344865863045E-02 3.3539858835660984E-02 2.0986368029965254E-02 + 3.7334696969499601E-03 -1.4244046977810789E-02 -2.8693804000418897E-02 + -3.6100723555762312E-02 -3.4583957842962705E-02 -2.4440339446778193E-02 + -8.1663252236873068E-03 1.0089754169315859E-02 2.5546304389093711E-02 + 3.4041531008869981E-02 3.3196202005484017E-02 2.3154121226341751E-02 + 6.6555243162992623E-03 -1.1632344693761107E-02 -2.6391519692048289E-02 + -3.3204603530996114E-02 -2.9931830520078539E-02 -1.7473583393096636E-02 + 3.7210285517968366E-04 1.7985909207310018E-02 2.9663931825054772E-02 + 3.1493955159467901E-02 2.2750658909711299E-02 6.2917475617921435E-03 + -1.2265986884789365E-02 -2.6399935306831740E-02 -3.0981594407002440E-02 + -2.4216679654302922E-02 -8.4713556450432791E-03 1.0422488234551327E-02 + 2.5242740331121272E-02 3.0135007413696624E-02 2.3009462457176770E-02 + 6.5724816523040673E-03 -1.2549432577554288E-02 -2.6388652679924466E-02 + -2.8962832752405639E-02 -1.8967965472546831E-02 -5.9334357995430439E-04 + 1.8071181158437526E-02 2.8518444590289870E-02 2.5745509081333107E-02 + 1.0799542645296666E-02 -9.3971514627602167E-03 -2.5100601900677377E-02 + -2.8419488233436395E-02 -1.7396814036953246E-02 2.6502674224066301E-03 + 2.1483055024655778E-02 2.9079167647428891E-02 2.1043942196748478E-02 + 1.3545469240693665E-03 -1.9344199483027381E-02 -2.9350883519863747E-02 + -2.2571122514854783E-02 -2.4379179702078888E-03 1.9509816320677342E-02 + 3.0059043609665059E-02 2.2316415469005854E-02 4.3670142601870144E-04 + -2.2241158691646855E-02 -3.1127266710343174E-02 -1.9826801556172613E-02 + 5.0138223208317997E-03 2.7215035446626380E-02 3.1418396946386026E-02 + 1.3829219766035917E-02 -1.4192405044252430E-02 -3.3055925644591817E-02 + -2.8519298987770701E-02 -2.6510967657093145E-03 2.6335212407390878E-02 + 3.6534845162875411E-02 1.8925016064779615E-02 -1.4420622115425233E-02 + -3.7992569184247427E-02 -3.2133056948397284E-02 3.6840103338277416E-04 + 3.4431556008585676E-02 4.1548973521876080E-02 1.3678047773340045E-02 + -2.7775833869877014E-02 -4.7634565670796339E-02 -2.6615738134004106E-02 + 1.9739754453866630E-02 5.1453156243167625E-02 3.8162566492257806E-02 + -1.1629870037447542E-02 -5.4267116341094025E-02 -4.8539184799389561E-02 + 4.3973622469699707E-03 5.7332811232258939E-02 5.8173329830200793E-02 + 1.1897328540177604E-03 -6.1829178847176904E-02 -6.7452003009044276E-02 + -4.3385046007603156E-03 6.8837214793237969E-02 7.6497795084373807E-02 + 4.0370432207239414E-03 -7.9290582628769785E-02 -8.4933049013401693E-02 + 1.0793333060383802E-03 9.3833527923478155E-02 9.1594382532675628E-02 + + + 9.2790104830450457E-09 -4.9300208588006760E-06 -9.9059619099322007E-06 + -1.4924737447711867E-05 -1.9988825729349780E-05 -2.5096989964465809E-05 + -3.0251137359881748E-05 -3.5450879781386531E-05 -4.0696794364717090E-05 + -4.5989174609695134E-05 -5.1328544772759720E-05 -5.6715354950965113E-05 + -6.2150178048886866E-05 -6.7633352103771657E-05 -7.3164986399905217E-05 + -7.8745763921552608E-05 -8.4376097348078878E-05 -9.0056529428341533E-05 + -9.5787428147777712E-05 -1.0156902890918938E-04 -1.0740218058835583E-04 + -1.1328703833297238E-04 -1.1922420327279493E-04 -1.2521407073706116E-04 + -1.3125711461801941E-04 -1.3735385085113569E-04 -1.4350469749553653E-04 + -1.4971020372170024E-04 -1.5597085247804989E-04 -1.6228698249522129E-04 + -1.6865932097036017E-04 -1.7508818584872210E-04 -1.8157412221955503E-04 + -1.8811772383802737E-04 -1.9471934664798453E-04 -2.0137970339686220E-04 + -2.0809914223518167E-04 -2.1487832405526797E-04 -2.2171766864922428E-04 + -2.2861771459975635E-04 -2.3557906923635751E-04 -2.4260231914970237E-04 + -2.4968782169929629E-04 -2.5683632323819796E-04 -2.6404828445590075E-04 + -2.7132426781097851E-04 -2.7866490536018285E-04 -2.8607070118457257E-04 + -2.9354228447330737E-04 -3.0108020282657889E-04 -3.0868509612845215E-04 + -3.1635750160642309E-04 -3.2409806571255073E-04 -3.3190733562340411E-04 + -3.3978600227613774E-04 -3.4773455952670930E-04 -3.5575380949589907E-04 + -3.6384421916753882E-04 -3.7200648193334661E-04 -3.8024123437089240E-04 + -3.8854914339860329E-04 -3.9693078500847861E-04 -4.0538688621174639E-04 + -4.1391809151968700E-04 -4.2252503435341333E-04 -4.3120841784024519E-04 + -4.3996895447736975E-04 -4.4880726400318998E-04 -4.5772404423929800E-04 + -4.6672005664028811E-04 -4.7579593818918161E-04 -4.8495238945253741E-04 + -4.9419020343065246E-04 -5.0351005009066998E-04 -5.1291263408020666E-04 + -5.2239875189926061E-04 -5.3196908436350260E-04 -5.4162443509481097E-04 + -5.5136551079504792E-04 -5.6119311482089127E-04 -5.7110797668782725E-04 + -5.8111089411565784E-04 -5.9120265611874493E-04 -6.0138404252024129E-04 + -6.1165581453516383E-04 -6.2201883629708476E-04 -6.3247386950682856E-04 + -6.4302177703277061E-04 -6.5366335184056695E-04 -6.6439942572922735E-04 + -6.7523083483408031E-04 -6.8615844713893371E-04 -6.9718310321443156E-04 + -7.0830567141209790E-04 -7.1952699401189922E-04 -7.3084798477619187E-04 + -7.4226950295723320E-04 -7.5379247000517311E-04 -7.6541776243764092E-04 + -7.7714629821002508E-04 -7.8897898046793185E-04 -8.0091676578964560E-04 + -8.1296055990530067E-04 -8.2511131074847286E-04 -8.3736996880878062E-04 + -8.4973749814746874E-04 -8.6221484564145523E-04 -8.7480300425260029E-04 + -8.8750295707689080E-04 -9.0031569380180382E-04 -9.1324222734290197E-04 + -9.2628354356632896E-04 -9.3944068436442986E-04 -9.5271467681559761E-04 + -9.6610653990023693E-04 -9.7961733005931550E-04 -9.9324812296708114E-04 + -1.0069999471254215E-03 -1.0208739193922534E-03 -1.0348710914523294E-03 + -1.0489925718909093E-03 -1.0632394462217036E-03 -1.0776128568788796E-03 + -1.0921139197587147E-03 -1.1067437472947136E-03 -1.1215035028973690E-03 + -1.1363943402859116E-03 -1.1514174250701950E-03 -1.1665739094508262E-03 + -1.1818650081537596E-03 -1.1972918901414561E-03 -1.2128557875029089E-03 + -1.2285578987904738E-03 -1.2443994604231690E-03 -1.2603816866839927E-03 + -1.2765058701392881E-03 -1.2927732337285475E-03 -1.3091850723763129E-03 + -1.3257426608701698E-03 -1.3424472830346464E-03 -1.3593002657318236E-03 + -1.3763029068282211E-03 -1.3934565471500043E-03 -1.4107625242268404E-03 + -1.4282221854255588E-03 -1.4458369108858583E-03 -1.4636080577806996E-03 + -1.4815370357925631E-03 -1.4996252278289604E-03 -1.5178740576859912E-03 + -1.5362849506332947E-03 -1.5548593537381874E-03 -1.5735986971343330E-03 + -1.5925044670320996E-03 -1.6115781362262085E-03 -1.6308211925622283E-03 + -1.6502351394624484E-03 -1.6698214953135668E-03 -1.6895817950324278E-03 + -1.7095175771408443E-03 -1.7296304014594421E-03 -1.7499218437112840E-03 + -1.7703934931616720E-03 -1.7910469403811244E-03 -1.8118838091061092E-03 + -1.8329057208341308E-03 -1.8541143256621429E-03 -1.8755112699358773E-03 + -1.8970982477414377E-03 -1.9188769296055019E-03 -1.9408490164411515E-03 + -1.9630162329478096E-03 -1.9853803106230240E-03 -2.0079429996759240E-03 + -2.0307060568879078E-03 -2.0536712668704649E-03 -2.0768404312459803E-03 + -2.1002153451154656E-03 -2.1237978537274583E-03 -2.1475897873683286E-03 + -2.1715930124391247E-03 -2.1958093992444140E-03 -2.2202408490512569E-03 + -2.2448892668012876E-03 -2.2697565777247148E-03 -2.2948447340960386E-03 + -2.3201556826155725E-03 -2.3456914173312937E-03 -2.3714539275993406E-03 + -2.3974452277326715E-03 -2.4236673413406775E-03 -2.4501223347238241E-03 + -2.4768122594894552E-03 -2.5037392155768581E-03 -2.5309052998562283E-03 + -2.5583126385212108E-03 -2.5859633754399185E-03 -2.6138596674562058E-03 + -2.6420037001861226E-03 -2.6703976719123002E-03 -2.6990438029985855E-03 + -2.7279443274297547E-03 -2.7571015127977887E-03 -2.7865176368765347E-03 + -2.8161949975300466E-03 -2.8461359091331933E-03 -2.8763427171289422E-03 + -2.9068177884617246E-03 -2.9375634936178452E-03 -2.9685822436691339E-03 + -2.9998764648432792E-03 -3.0314485969858756E-03 -3.0633011151591340E-03 + -3.0954365020463685E-03 -3.1278572753169870E-03 -3.1605659694288329E-03 + -3.1935651360771680E-03 -3.2268573650065927E-03 -3.2604452467442030E-03 + -3.2943314142565871E-03 -3.3285185116014239E-03 -3.3630092178872553E-03 + -3.3978062233887252E-03 -3.4329122506158100E-03 -3.4683300451902699E-03 + -3.5040623713698889E-03 -3.5401120279426688E-03 -3.5764818273434857E-03 + -3.6131746174637067E-03 -3.6501932645923432E-03 -3.6875406621796076E-03 + -3.7252197334484058E-03 -3.7632334167856094E-03 -3.8015846905887622E-03 + -3.8402765466397496E-03 -3.8793120157812298E-03 -3.9186941447147076E-03 + -3.9584260148328174E-03 -3.9985107285014452E-03 -4.0389514238660697E-03 + -4.0797512608718818E-03 -4.1209134242483998E-03 -4.1624411403204187E-03 + -4.2043376457324986E-03 -4.2466062225615343E-03 -4.2892501744092619E-03 + -4.3322728310125668E-03 -4.3756775572699807E-03 -4.4194677459647785E-03 + -4.4636468221117250E-03 -4.5082182370870917E-03 -4.5531854777463611E-03 + -4.5985520540127436E-03 -4.6443215177856484E-03 -4.6904974433742879E-03 + -4.7370834415764018E-03 -4.7840831549515496E-03 -4.8315002550423881E-03 + -4.8793384522959077E-03 -4.9276014815260137E-03 -4.9762931212615318E-03 + -5.0254171717939002E-03 -5.0749774732160016E-03 -5.1249779056006467E-03 + -5.1754223737736438E-03 -5.2263148171164059E-03 -5.2776592243270687E-03 + -5.3294595999804507E-03 -5.3817199952208711E-03 -5.4344444972350111E-03 + -5.4876372232077822E-03 -5.5413023349401855E-03 -5.5954440289301185E-03 + -5.6500665330792947E-03 -5.7051741219462633E-03 -5.7607710975739121E-03 + -5.8168618110545755E-03 -5.8734506409015381E-03 -5.9305420178059143E-03 + -5.9881404013528896E-03 -6.0462502932255554E-03 -6.1048762355534183E-03 + -6.1640228122271431E-03 -6.2236946476713463E-03 -6.2838964020720976E-03 + -6.3446327860897907E-03 -6.4059085445178068E-03 -6.4677284698866026E-03 + -6.5300973901524194E-03 -6.5930201860597533E-03 -6.6565017718049208E-03 + -6.7205471115217531E-03 -6.7851612097234813E-03 -6.8503491198781269E-03 + -6.9161159351199177E-03 -6.9824667984442800E-03 -7.0494068955915335E-03 + -7.1169414576476089E-03 -7.1850757654559425E-03 -7.2538151428665635E-03 + -7.3231649658956456E-03 -7.3931306516593007E-03 -7.4637176727165491E-03 + -7.5349315449598090E-03 -7.6067778343605176E-03 -7.6792621592714667E-03 + -7.7523901810081820E-03 -7.8261676220992803E-03 -7.9006002429133047E-03 + -7.9756938649871607E-03 -8.0514543590322132E-03 -8.1278876441329400E-03 + -8.2049996957684248E-03 -8.2827965429084494E-03 -8.3612842653151120E-03 + -8.4404689972473086E-03 -8.5203569291388212E-03 -8.6009543042733713E-03 + -8.6822674250316614E-03 -8.7643026445974274E-03 -8.8470663752671236E-03 + -8.9305650889382124E-03 -9.0148053087775338E-03 -9.0997936215543272E-03 + -9.1855366690367316E-03 -9.2720411537470255E-03 -9.3593138388637191E-03 + -9.4473615419013047E-03 -9.5361911482655000E-03 -9.6258095997162254E-03 + -9.7162239009220917E-03 -9.8074411192073559E-03 -9.8994683844176971E-03 + -9.9923128888580390E-03 -1.0085981889812610E-02 -1.0180482710497698E-02 + -1.0275822733232158E-02 -1.0372009414701133E-02 -1.0469050268817800E-02 + -1.0566952881801997E-02 -1.0665724905713336E-02 -1.0765374060160739E-02 + -1.0865908135706166E-02 -1.0967334987085391E-02 -1.1069662543764737E-02 + -1.1172898803291056E-02 -1.1277051833316343E-02 -1.1382129775283648E-02 + -1.1488140842500407E-02 -1.1595093319334096E-02 -1.1702995564658963E-02 + -1.1811856013072245E-02 -1.1921683173029045E-02 -1.2032485627617292E-02 + -1.2144272035750445E-02 -1.2257051135004851E-02 -1.2370831740396106E-02 + -1.2485622744036740E-02 -1.2601433116541740E-02 -1.2718271910771897E-02 + -1.2836148257390746E-02 -1.2955071368707239E-02 -1.3075050540058492E-02 + -1.3196095145786112E-02 -1.3318214648464373E-02 -1.3441418590986211E-02 + -1.3565716602162083E-02 -1.3691118396223421E-02 -1.3817633773736553E-02 + -1.3945272621578027E-02 -1.4074044915175525E-02 -1.4203960718102780E-02 + -1.4335030182634035E-02 -1.4467263552891041E-02 -1.4600671162520874E-02 + -1.4735263436356210E-02 -1.4871050893410171E-02 -1.5008044145490713E-02 + -1.5146253896873910E-02 -1.5285690950181452E-02 -1.5426366200131056E-02 + -1.5568290640637729E-02 -1.5711475362939605E-02 -1.5855931554515520E-02 + -1.6001670506089975E-02 -1.6148703605417335E-02 -1.6297042341923265E-02 + -1.6446698307369646E-02 -1.6597683195968455E-02 -1.6750008807187061E-02 + -1.6903687041590631E-02 -1.7058729910269105E-02 -1.7215149526285296E-02 + -1.7372958113043981E-02 -1.7532168002111995E-02 -1.7692791632957859E-02 + -1.7854841556674977E-02 -1.8018330435346473E-02 -1.8183271043634142E-02 + -1.8349676269538328E-02 -1.8517559113628693E-02 -1.8686932695107281E-02 + -1.8857810246370333E-02 -1.9030205119954124E-02 -1.9204130784417617E-02 + -1.9379600828888576E-02 -1.9556628963494176E-02 -1.9735229019438180E-02 + -1.9915414949900186E-02 -2.0097200833037648E-02 -2.0280600871676980E-02 + -2.0465629393198948E-02 -2.0652300854120204E-02 -2.0840629837869499E-02 + -2.1030631056533695E-02 -2.1222319355657101E-02 -2.1415709708701811E-02 + -2.1610817224395465E-02 -2.1807657143914607E-02 -2.2006244845471291E-02 + -2.2206595841521511E-02 -2.2408725783748206E-02 -2.2612650461117257E-02 + -2.2818385803067456E-02 -2.3025947881832008E-02 -2.3235352910307195E-02 + -2.3446617244790691E-02 -2.3659757388694986E-02 -2.3874789989761013E-02 + -2.4091731843757524E-02 -2.4310599896048238E-02 -2.4531411241360351E-02 + -2.4754183127140051E-02 -2.4978932951792897E-02 -2.5205678269510607E-02 + -2.5434436789464433E-02 -2.5665226377858664E-02 -2.5898065059017383E-02 + -2.6132971017718578E-02 -2.6369962598521736E-02 -2.6609058310215990E-02 + -2.6850276823926662E-02 -2.7093636977471785E-02 -2.7339157774590769E-02 + -2.7586858388604099E-02 -2.7836758161553454E-02 -2.8088876606903297E-02 + -2.8343233412359482E-02 -2.8599848437759944E-02 -2.8858741720347199E-02 + -2.9119933475095689E-02 -2.9383444094879637E-02 -2.9649294153690182E-02 + -2.9917504407924768E-02 -3.0188095797998749E-02 -3.0461089448667763E-02 + -3.0736506672974083E-02 -3.1014368971779116E-02 -3.1294698036652337E-02 + -3.1577515751481662E-02 -3.1862844192994101E-02 -3.2150705634088665E-02 + -3.2441122545187634E-02 -3.2734117594465102E-02 -3.3029713651040973E-02 + -3.3327933787248520E-02 -3.3628801278320852E-02 -3.3932339606906642E-02 + -3.4238572461835370E-02 -3.4547523743034249E-02 -3.4859217560367813E-02 + -3.5173678238148910E-02 -3.5490930315241399E-02 -3.5810998548142785E-02 + -3.6133907911774232E-02 -3.6459683601678991E-02 -3.6788351037314371E-02 + -3.7119935861253096E-02 -3.7454463944240970E-02 -3.7791961385407136E-02 + -3.8132454513580959E-02 -3.8475969892123235E-02 -3.8822534317314097E-02 + -3.9172174823682918E-02 -3.9524918684054527E-02 -3.9880793411879410E-02 + -4.0239826764594575E-02 -4.0602046744498708E-02 -4.0967481600356542E-02 + -4.1336159831816294E-02 -4.1708110189661696E-02 -4.2083361678570311E-02 + -4.2461943558804553E-02 -4.2843885350517447E-02 -4.3229216832861357E-02 + -4.3617968048478652E-02 -4.4010169305456488E-02 -4.4405851178858965E-02 + -4.4805044514171256E-02 -4.5207780428692231E-02 -4.5614090313897120E-02 + -4.6024005838718240E-02 -4.6437558951175018E-02 -4.6854781881690837E-02 + -4.7275707143825646E-02 -4.7700367538472684E-02 -4.8128796155465392E-02 + -4.8561026376964182E-02 -4.8997091878525890E-02 -4.9437026632601466E-02 + -4.9880864911224024E-02 -5.0328641288604044E-02 -5.0780390643103752E-02 + -5.1236148159941534E-02 -5.1695949335614770E-02 -5.2159829977042604E-02 + -5.2627826208364398E-02 -5.3099974470671149E-02 -5.3576311525640311E-02 + -5.4056874458945074E-02 -5.4541700682332737E-02 -5.5030827936484374E-02 + -5.5524294294463483E-02 -5.6022138163450280E-02 -5.6524398288667232E-02 + -5.7031113756207889E-02 -5.7542323994850444E-02 -5.8058068780806701E-02 + -5.8578388238968090E-02 -5.9103322846892785E-02 -5.9632913438046505E-02 + -6.0167201203571066E-02 -6.0706227697039254E-02 -6.1250034835889956E-02 + -6.1798664905999397E-02 -6.2352160563847202E-02 -6.2910564840443939E-02 + -6.3473921143523016E-02 -6.4042273262186242E-02 -6.4615665368007294E-02 + -6.5194142020813167E-02 -6.5777748170624900E-02 -6.6366529160666085E-02 + -6.6960530731255727E-02 -6.7559799023794373E-02 -6.8164380582236506E-02 + -6.8774322359039602E-02 -6.9389671716500387E-02 -7.0010476431483212E-02 + -7.0636784698151781E-02 -7.1268645132332525E-02 -7.1906106774101114E-02 + -7.2549219092230527E-02 -7.3198031987224021E-02 -7.3852595795346768E-02 + -7.4512961291761590E-02 -7.5179179694836118E-02 -7.5851302669670759E-02 + -7.6529382331637905E-02 -7.7213471249947430E-02 -7.7903622452230648E-02 + -7.8599889428088127E-02 -7.9302326132031628E-02 -8.0010986988861901E-02 + -8.0725926896458494E-02 -8.1447201229813831E-02 -8.2174865845934267E-02 + -8.2908977086678201E-02 -8.3649591783615543E-02 -8.4396767261303990E-02 + -8.5150561342154193E-02 -8.5911032350137306E-02 -8.6678239114870853E-02 + -8.7452240975810072E-02 -8.8233097786601544E-02 -8.9020869919533438E-02 + -8.9815618268703740E-02 -9.0617404255667514E-02 -9.1426289833050609E-02 + -9.2242337488589662E-02 -9.3065610250190126E-02 -9.3896171690054042E-02 + -9.4734085928581999E-02 -9.5579417639678269E-02 -9.6432232054504463E-02 + -9.7292594966588306E-02 -9.8160572735851853E-02 -9.9036232293369553E-02 + -9.9919641145641364E-02 -1.0081086738036470E-01 -1.0170997966905897E-01 + -1.0261704727382140E-01 -1.0353214005065005E-01 -1.0445532845464667E-01 + -1.0538668354469508E-01 -1.0632627698831007E-01 -1.0727418106628148E-01 + -1.0823046867770948E-01 -1.0919521334474803E-01 -1.1016848921749708E-01 + -1.1115037107853351E-01 -1.1214093434888955E-01 -1.1314025509159963E-01 + -1.1414841001793534E-01 -1.1516547649154227E-01 -1.1619153253407027E-01 + -1.1722665682970516E-01 -1.1827092873072219E-01 -1.1932442826217567E-01 + -1.2038723612748829E-01 -1.2145943371300640E-01 -1.2254110309359713E-01 + -1.2363232703793893E-01 -1.2473318901329726E-01 -1.2584377319094342E-01 + -1.2696416445176853E-01 -1.2809444839084264E-01 -1.2923471132347708E-01 + -1.3038504028991993E-01 -1.3154552306103179E-01 -1.3271624814351102E-01 + -1.3389730478526349E-01 -1.3508878298078542E-01 -1.3629077347671142E-01 + -1.3750336777697852E-01 -1.3872665814841956E-01 -1.3996073762602865E-01 + -1.4120570001878194E-01 -1.4246163991442337E-01 -1.4372865268582105E-01 + -1.4500683449583820E-01 -1.4629628230286423E-01 -1.4759709386648845E-01 + -1.4890936775306188E-01 -1.5023320334109211E-01 -1.5156870082666865E-01 + -1.5291596122916415E-01 -1.5427508639652512E-01 -1.5564617901131772E-01 + -1.5702934259548856E-01 -1.5842468151661659E-01 -1.5983230099291748E-01 + -1.6125230709899749E-01 -1.6268480677143582E-01 -1.6412990781389783E-01 + -1.6558771890340077E-01 -1.6705834959480248E-01 -1.6854191032713173E-01 + -1.7003851242848342E-01 -1.7154826812204346E-01 -1.7307129053054005E-01 + -1.7460769368303003E-01 -1.7615759251895333E-01 -1.7772110289429580E-01 + -1.7929834158680086E-01 -1.8088942630101654E-01 -1.8249447567389357E-01 + -1.8411360927990164E-01 -1.8574694763616209E-01 -1.8739461220772949E-01 + -1.8905672541287155E-01 -1.9073341062784335E-01 -1.9242479219225314E-01 + -1.9413099541375517E-01 -1.9585214657349972E-01 -1.9758837293046289E-01 + -1.9933980272666682E-01 -2.0110656519189027E-01 -2.0288879054833711E-01 + -2.0468661001541330E-01 -2.0650015581412456E-01 -2.0832956117193477E-01 + -2.1017496032664673E-01 -2.1203648853148810E-01 -2.1391428205884000E-01 + -2.1580847820456195E-01 -2.1771921529227453E-01 -2.1964663267713311E-01 + -2.2159087074982611E-01 -2.2355207094039065E-01 -2.2553037572190798E-01 + -2.2752592861400237E-01 -2.2953887418640675E-01 -2.3156935806208157E-01 + -2.3361752692076912E-01 -2.3568352850168084E-01 -2.3776751160669704E-01 + -2.3986962610287801E-01 -2.4199002292542052E-01 -2.4412885407983581E-01 + -2.4628627264443553E-01 -2.4846243277232155E-01 -2.5065748969344204E-01 + -2.5287159971635298E-01 -2.5510492022975911E-01 -2.5735760970389127E-01 + -2.5962982769166193E-01 -2.6192173482975811E-01 -2.6423349283922520E-01 + -2.6656526452611606E-01 -2.6891721378160283E-01 -2.7128950558218573E-01 + -2.7368230598935328E-01 -2.7609578214909336E-01 -2.7853010229127662E-01 + -2.8098543572848167E-01 -2.8346195285461406E-01 -2.8595982514342316E-01 + -2.8847922514659513E-01 -2.9102032649122178E-01 -2.9358330387745779E-01 + -2.9616833307558083E-01 -2.9877559092244832E-01 -3.0140525531813800E-01 + -3.0405750522173203E-01 -3.0673252064691209E-01 -3.0943048265716278E-01 + -3.1215157336051075E-01 -3.1489597590374879E-01 -3.1766387446645261E-01 + -3.2045545425443583E-01 -3.2327090149235327E-01 -3.2611040341660991E-01 + -3.2897414826702642E-01 -3.3186232527830656E-01 -3.3477512467104104E-01 + -3.3771273764193765E-01 -3.4067535635373231E-01 -3.4366317392419976E-01 + -3.4667638441496668E-01 -3.4971518281925928E-01 -3.5277976504944192E-01 + -3.5587032792346562E-01 -3.5898706915108808E-01 -3.6213018731888902E-01 + -3.6529988187515949E-01 -3.6849635311345058E-01 -3.7171980215574107E-01 + -3.7497043093467985E-01 -3.7824844217504955E-01 -3.8155403937443461E-01 + -3.8488742678294663E-01 -3.8824880938200135E-01 -3.9163839286253932E-01 + -3.9505638360174000E-01 -3.9850298863933803E-01 -4.0197841565260695E-01 + -4.0548287293034635E-01 -4.0901656934605635E-01 -4.1257971432970297E-01 + -4.1617251783854919E-01 -4.1979519032698231E-01 -4.2344794271484443E-01 + -4.2713098635476249E-01 -4.3084453299830505E-01 -4.3458879476065082E-01 + -4.3836398408406224E-01 -4.4217031370009213E-01 -4.4600799659017604E-01 + -4.4987724594511957E-01 -4.5377827512281443E-01 -4.5771129760456142E-01 + -4.6167652695003314E-01 -4.6567417675034067E-01 -4.6970446057964704E-01 + -4.7376759194511014E-01 -4.7786378423509129E-01 -4.8199325066550486E-01 + -4.8615620422448036E-01 -4.9035285761512881E-01 -4.9458342319629889E-01 + -4.9884811292154674E-01 -5.0314713827595992E-01 -5.0748071021094798E-01 + -5.1184903907678181E-01 -5.1625233455333719E-01 -5.2069080557809799E-01 + -5.2516466027221831E-01 -5.2967410586411534E-01 -5.3421934861059850E-01 + -5.3880059371558819E-01 -5.4341804524630000E-01 -5.4807190604662803E-01 + -5.5276237764827851E-01 -5.5748966017859958E-01 -5.6225395226603769E-01 + -5.6705545094251242E-01 -5.7189435154279733E-01 -5.7677084760100206E-01 + -5.8168513074380879E-01 -5.8663739058057884E-01 -5.9162781459020608E-01 + -5.9665658800449339E-01 -6.0172389368829404E-01 -6.0682991201588765E-01 + -6.1197482074401011E-01 -6.1715879488091385E-01 -6.2238200655183407E-01 + -6.2764462486047679E-01 -6.3294681574656952E-01 -6.3828874183930673E-01 + -6.4367056230663944E-01 -6.4909243270023598E-01 -6.5455450479619426E-01 + -6.6005692643117087E-01 -6.6559984133383443E-01 -6.7118338895189522E-01 + -6.7680770427403003E-01 -6.8247291764708384E-01 -6.8817915458813406E-01 + -6.9392653559145900E-01 -6.9971517593016885E-01 -7.0554518545256362E-01 + -7.1141666837281947E-01 -7.1732972305613329E-01 -7.2328444179807438E-01 + -7.2928091059806188E-01 -7.3531920892673452E-01 -7.4139940948721594E-01 + -7.4752157797008578E-01 -7.5368577280186155E-01 -7.5989204488690854E-01 + -7.6614043734265347E-01 -7.7243098522790266E-01 -7.7876371526411181E-01 + -7.8513864554959889E-01 -7.9155578526627712E-01 -7.9801513437901073E-01 + -8.0451668332735549E-01 -8.1106041270947005E-01 -8.1764629295804403E-01 + -8.2427428400823488E-01 -8.3094433495723752E-01 -8.3765638371535611E-01 + -8.4441035664872510E-01 -8.5120616821291661E-01 -8.5804372057787959E-01 + -8.6492290324360255E-01 -8.7184359264658973E-01 -8.7880565175678127E-01 + -8.8580892966490965E-01 -8.9285326116000463E-01 -8.9993846629687790E-01 + -9.0706434995353558E-01 -9.1423070137810558E-01 -9.2143729372532535E-01 + -9.2868388358229770E-01 -9.3597021048329576E-01 -9.4329599641361062E-01 + -9.5066094530202327E-01 -9.5806474250189533E-01 -9.6550705426067873E-01 + -9.7298752717753278E-01 -9.8050578764907204E-01 -9.8806144130296147E-01 + -9.9565407241904380E-01 -1.0032832433381527E+00 -1.0109484938581788E+00 + -1.0186493406172976E+00 -1.0263852764641597E+00 -1.0341557698150341E+00 + -1.0419602639974888E+00 -1.0497981765807367E+00 -1.0576688986921929E+00 + -1.0655717943204537E+00 -1.0735061996041855E+00 -1.0814714221070985E+00 + -1.0894667400787241E+00 -1.0974914017008170E+00 -1.1055446243195262E+00 + -1.1136255936629020E+00 -1.1217334630439100E+00 -1.1298673525487177E+00 + -1.1380263482102362E+00 -1.1462095011668849E+00 -1.1544158268064166E+00 + -1.1626443038949146E+00 -1.1708938736907819E+00 -1.1791634390438923E+00 + -1.1874518634797202E+00 -1.1957579702686376E+00 -1.2040805414802778E+00 + -1.2124183170231591E+00 -1.2207699936695124E+00 -1.2291342240655871E+00 + -1.2375096157273404E+00 -1.2458947300218719E+00 -1.2542880811345871E+00 + -1.2626881350225085E+00 -1.2710933083536611E+00 -1.2795019674331369E+00 + -1.2879124271158109E+00 -1.2963229497062800E+00 -1.3047317438461841E+00 + -1.3131369633894252E+00 -1.3215367062656884E+00 -1.3299290133327057E+00 + -1.3383118672177978E+00 -1.3466831911492330E+00 -1.3550408477780442E+00 + -1.3633826379909448E+00 -1.3717062997149758E+00 -1.3800095067147489E+00 + -1.3882898673830542E+00 -1.3965449235256937E+00 -1.4047721491414387E+00 + -1.4129689491982169E+00 -1.4211326584064932E+00 -1.4292605399910168E+00 + -1.4373497844621321E+00 -1.4453975083879740E+00 -1.4534007531688162E+00 + -1.4613564838151683E+00 -1.4692615877309891E+00 -1.4771128735037591E+00 + -1.4849070697030693E+00 -1.4926408236895439E+00 -1.5003107004360567E+00 + -1.5079131813631359E+00 -1.5154446631908798E+00 -1.5229014568093988E+00 + -1.5302797861703274E+00 -1.5375757872017701E+00 -1.5447855067493437E+00 + -1.5519049015459894E+00 -1.5589298372135070E+00 -1.5658560872987257E+00 + -1.5726793323475496E+00 -1.5793951590201221E+00 -1.5859990592505564E+00 + -1.5924864294549026E+00 -1.5988525697910718E+00 -1.6050926834747037E+00 + -1.6112018761550402E+00 -1.6171751553551597E+00 -1.6230074299810291E+00 + -1.6286935099040394E+00 -1.6342281056218610E+00 -1.6396058280027557E+00 + -1.6448211881185266E+00 -1.6498685971716229E+00 -1.6547423665220524E+00 + -1.6594367078200738E+00 -1.6639457332506942E+00 -1.6682634558964291E+00 + -1.6723837902247942E+00 -1.6763005527074764E+00 -1.6800074625781163E+00 + -1.6834981427361009E+00 -1.6867661208038420E+00 -1.6898048303453761E+00 + -1.6926076122543385E+00 -1.6951677163195296E+00 -1.6974783029767548E+00 + -1.6995324452556468E+00 -1.7013231309305532E+00 -1.7028432648848704E+00 + -1.7040856716983341E+00 -1.7050430984671558E+00 -1.7057082178670322E+00 + -1.7060736314694522E+00 -1.7061318733217918E+00 -1.7058754138020982E+00 + -1.7052966637595899E+00 -1.7043879789521641E+00 -1.7031416647924222E+00 + -1.7015499814139652E+00 -1.6996051490698116E+00 -1.6972993538751562E+00 + -1.6946247539066026E+00 -1.6915734856704805E+00 -1.6881376709526683E+00 + -1.6843094240627425E+00 -1.6800808594851695E+00 -1.6754440999504774E+00 + -1.6703912849392621E+00 -1.6649145796320508E+00 -1.6590061843178787E+00 + -1.6526583442745013E+00 -1.6458633601330814E+00 -1.6386135987399164E+00 + -1.6309015045278998E+00 -1.6227196114098610E+00 -1.6140605552058975E+00 + -1.6049170866164830E+00 -1.5952820847525782E+00 -1.5851485712338189E+00 + -1.5745097248650726E+00 -1.5633588969013235E+00 -1.5516896269100469E+00 + -1.5394956592395170E+00 -1.5267709601008577E+00 -1.5135097352704665E+00 + -1.4997064484186997E+00 -1.4853558400694831E+00 -1.4704529471943271E+00 + -1.4549931234429898E+00 -1.4389720600114591E+00 -1.4223858071466022E+00 + -1.4052307962848551E+00 -1.3875038628207805E+00 -1.3692022694992472E+00 + -1.3503237304228231E+00 -1.3308664356638606E+00 -1.3108290764681663E+00 + -1.2902108710347155E+00 -1.2690115908530273E+00 -1.2472315875768138E+00 + -1.2248718204095546E+00 -1.2019338839741907E+00 -1.1784200366355753E+00 + -1.1543332292408719E+00 -1.1296771342387084E+00 -1.1044561751341961E+00 + -1.0786755562322228E+00 -1.0523412926170894E+00 -1.0254602403115238E+00 + -9.9804012655321672E-01 -9.7008958012170698E-01 -9.4161816164290846E-01 + -9.1263639379279493E-01 -8.8315579131595434E-01 -8.5318889076827686E-01 + -8.2274927988680069E-01 -7.9185162648299146E-01 -7.6051170674893454E-01 + -7.2874643285874996E-01 -6.9657387974025708E-01 -6.6401331088471194E-01 + -6.3108520305429960E-01 -5.9781126973985133E-01 -5.6421448321281453E-01 + -5.3031909500789232E-01 -4.9615065466424219E-01 -4.6173602654519258E-01 + -4.2710340454816681E-01 -3.9228232450806472E-01 -3.5730367408943420E-01 + -3.2219969995450376E-01 -2.8700401198612335E-01 -2.5175158433700279E-01 + -2.1647875306888328E-01 -1.8122321013824255E-01 -1.4602399347791939E-01 + -1.1092147291780119E-01 -7.5957331681708651E-02 -4.1174543192033550E-02 + -6.6173429092090527E-03 2.7668805070936452E-02 6.1637246942060166E-02 + 9.5240183916496329E-02 1.2842872304199435E-01 1.6115293438883149E-01 + 1.9336191488894344E-01 2.2500385910550547E-01 2.5602613720683054E-01 + 2.8637538041238869E-01 3.1599757417036306E-01 3.4483815931607131E-01 + 3.7284214144818045E-01 3.9995420874495402E-01 4.2611885842553221E-01 + 4.5128053204128521E-01 4.7538375975965985E-01 4.9837331377715233E-01 + 5.2019437096900423E-01 5.4079268485118859E-01 5.6011476689427497E-01 + 5.7810807718948920E-01 5.9472122442388564E-01 6.0990417507458750E-01 + 6.2360847168050471E-01 6.3578745999460518E-01 6.4639652476002696E-01 + 6.5539333378896214E-01 6.6273808995473005E-01 6.6839379063417992E-01 + 6.7232649405994671E-01 6.7450559195980575E-01 6.7490408777377819E-01 + 6.7349887964870359E-01 6.7027104731463860E-01 6.6520614184837434E-01 + 6.5829447722615431E-01 6.4953142246127038E-01 6.3891769301236601E-01 + 6.2645964003597332E-01 6.1216953594196810E-01 5.9606585459436934E-01 + 5.7817354438246138E-01 5.5852429226938649E-01 5.3715677680826923E-01 + 5.1411690800004806E-01 4.8945805175371521E-01 4.6324123659990896E-01 + 4.3553534020347362E-01 4.0641725312161803E-01 3.7597201716242540E-01 + 3.4429293561568419E-01 3.1148165255599625E-01 2.7764819835777060E-01 + 2.4291099851611492E-01 2.0739684283748741E-01 1.7124081205211097E-01 + 1.3520987732283879E-01 1.0000560391297215E-01 6.5674475596471382E-02 + 3.2267456761014918E-02 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + -4.6634121148992574E-09 3.6764951350362863E-08 1.1269399402506954E-07 + 2.1766228489684140E-07 3.4797273697318467E-07 5.0169260728149093E-07 + 6.7728823379386590E-07 8.7385732389233332E-07 1.0907885009514603E-06 + 1.3275921462250017E-06 1.5839134672325497E-06 1.8594983578144324E-06 + 2.1541647380458502E-06 2.4677900804742507E-06 2.8003005795389762E-06 + 3.1516626564857386E-06 3.5218768107645167E-06 3.9109728109227956E-06 + 4.3190058862634468E-06 4.7460536939629670E-06 5.1922138667219145E-06 + 5.6576020089957265E-06 6.1423500455566131E-06 6.6466048494594351E-06 + 7.1705270942895129E-06 7.7142902883444039E-06 8.2780799577877301E-06 + 8.8620929528574515E-06 9.4665368565433875E-06 1.0091629479233062E-05 + 1.0737598425987878E-05 1.1404680725583623E-05 1.2093122512399698E-05 + 1.2803178753792446E-05 1.3535113016831389E-05 1.4289197269281241E-05 + 1.5065711710528571E-05 1.5864944628819952E-05 1.6687192281727776E-05 + 1.7532758797215048E-05 1.8401956093048898E-05 1.9295103812629094E-05 + 2.0212529275564317E-05 2.1154567441552901E-05 2.2121560886315786E-05 + 2.3113859788491387E-05 2.4131821926540510E-05 2.5175812684828564E-05 + 2.6246205068154626E-05 2.7343379724085362E-05 2.8467724972528506E-05 + 2.9619636842047256E-05 3.0799519112475297E-05 3.2007783363442900E-05 + 3.3244849028469073E-05 3.4511143454314693E-05 3.5807101965325341E-05 + 3.7133167932523998E-05 3.8489792847240386E-05 3.9877436399088644E-05 + 4.1296566558125676E-05 4.2747659661042549E-05 4.4231200501258246E-05 + 4.5747682422800324E-05 4.7297607417871702E-05 4.8881486228014145E-05 + 5.0499838448791575E-05 5.2153192637925943E-05 5.3842086426827281E-05 + 5.5567066635469337E-05 5.7328689390568344E-05 5.9127520247030526E-05 + 6.0964134312639720E-05 6.2839116375963336E-05 6.4753061037458584E-05 + 6.6706572843767967E-05 6.8700266425195209E-05 7.0734766636359989E-05 + 7.2810708700030236E-05 7.4928738354137608E-05 7.7089512001982918E-05 + 7.9293696865642517E-05 8.1541971142589439E-05 8.3835024165544836E-05 + 8.6173556565580139E-05 8.8558280438489666E-05 9.0989919514458640E-05 + 9.3469209331051431E-05 9.5996897409548752E-05 9.8573743434662986E-05 + 1.0120051943766380E-04 1.0387800998294699E-04 1.0660701235808217E-04 + 1.0938833676737654E-04 1.1222280652899196E-04 1.1511125827565672E-04 + 1.1805454215901251E-04 1.2105352205764028E-04 1.2410907578880894E-04 + 1.2722209532399330E-04 1.3039348700820798E-04 1.3362417178320606E-04 + 1.3691508541459335E-04 1.4026717872290783E-04 1.4368141781871899E-04 + 1.4715878434179980E-04 1.5070027570442747E-04 1.5430690533886878E-04 + 1.5797970294910969E-04 1.6171971476688671E-04 1.6552800381208288E-04 + 1.6940565015754818E-04 1.7335375119841023E-04 1.7737342192593870E-04 + 1.8146579520602989E-04 1.8563202206237978E-04 1.8987327196441403E-04 + 1.9419073312004523E-04 1.9858561277333084E-04 2.0305913750710329E-04 + 2.0761255355064773E-04 2.1224712709250535E-04 2.1696414459847785E-04 + 2.2176491313491298E-04 2.2665076069735432E-04 2.3162303654463413E-04 + 2.3668311153849617E-04 2.4183237848883322E-04 2.4707225250462526E-04 + 2.5240417135067043E-04 2.5782959581019486E-04 2.6335001005343771E-04 + 2.6896692201230276E-04 2.7468186376117243E-04 2.8049639190398163E-04 + 2.8641208796765285E-04 2.9243055880198704E-04 2.9855343698612097E-04 + 3.0478238124164830E-04 3.1111907685251442E-04 3.1756523609179256E-04 + 3.2412259865544969E-04 3.3079293210321438E-04 3.3757803230666250E-04 + 3.4447972390463179E-04 3.5149986076608679E-04 3.5864032646055262E-04 + 3.6590303473623672E-04 3.7328993000596531E-04 3.8080298784105805E-04 + 3.8844421547326846E-04 3.9621565230492091E-04 4.0411937042737403E-04 + 4.1215747514794602E-04 4.2033210552543750E-04 4.2864543491438848E-04 + 4.3709967151821298E-04 4.4569705895134993E-04 4.5443987681057819E-04 + 4.6333044125564273E-04 4.7237110559933908E-04 4.8156426090720890E-04 + 4.9091233660700380E-04 5.0041780110806797E-04 5.1008316243080377E-04 + 5.1991096884638002E-04 5.2990380952684549E-04 5.4006431520581635E-04 + 5.5039515884990487E-04 5.6089905634105965E-04 5.7157876716999820E-04 + 5.8243709514089797E-04 5.9347688908753385E-04 6.0470104360104359E-04 + 6.1611249976949872E-04 6.2771424592947928E-04 6.3950931842983493E-04 + 6.5150080240782753E-04 6.6369183257785562E-04 6.7608559403295422E-04 + 6.8868532305927353E-04 7.0149430796374672E-04 7.1451588991514742E-04 + 7.2775346379875270E-04 7.4121047908482613E-04 7.5489044071113428E-04 + 7.6879690997972328E-04 7.8293350546817532E-04 7.9730390395557280E-04 + 8.1191184136339943E-04 8.2676111371161919E-04 8.4185557809015666E-04 + 8.5719915364603676E-04 8.7279582258641120E-04 8.8864963119773160E-04 + 9.0476469088131457E-04 9.2114517920555367E-04 9.3779534097504014E-04 + 9.5471948931685096E-04 9.7192200678427015E-04 9.8940734647821730E-04 + 1.0071800331866506E-03 1.0252446645422268E-03 1.0436059121984960E-03 + 1.0622685230249186E-03 1.0812373203209925E-03 1.1005172050497828E-03 + 1.1201131570911542E-03 1.1400302365150051E-03 1.1602735848748088E-03 + 1.1808484265217729E-03 1.2017600699399317E-03 1.2230139091024886E-03 + 1.2446154248497284E-03 1.2665701862888369E-03 1.2888838522159426E-03 + 1.3115621725607359E-03 1.3346109898539934E-03 1.3580362407183523E-03 + 1.3818439573826950E-03 1.4060402692204898E-03 1.4306314043124480E-03 + 1.4556236910338663E-03 1.4810235596670154E-03 1.5068375440389617E-03 + 1.5330722831851814E-03 1.5597345230393732E-03 1.5868311181498397E-03 + 1.6143690334228394E-03 1.6423553458933141E-03 1.6707972465233800E-03 + 1.6997020420290068E-03 1.7290771567352932E-03 1.7589301344607523E-03 + 1.7892686404310507E-03 1.8201004632226075E-03 1.8514335167365090E-03 + 1.8832758422031698E-03 1.9156356102181847E-03 1.9485211228098430E-03 + 1.9819408155387335E-03 2.0159032596299311E-03 2.0504171641382144E-03 + 2.0854913781468060E-03 2.1211348930000977E-03 2.1573568445708647E-03 + 2.1941665155624556E-03 2.2315733378464445E-03 2.2695868948362690E-03 + 2.3082169238973450E-03 2.3474733187941951E-03 2.3873661321750883E-03 + 2.4279055780947432E-03 2.4691020345756084E-03 2.5109660462082684E-03 + 2.5535083267915308E-03 2.5967397620127322E-03 2.6406714121688223E-03 + 2.6853145149288056E-03 2.7306804881380934E-03 2.7767809326653551E-03 + 2.8236276352924506E-03 2.8712325716480271E-03 2.9196079091853818E-03 + 2.9687660102051959E-03 3.0187194349237342E-03 3.0694809445871419E-03 + 3.1210635046324581E-03 3.1734802878959538E-03 3.2267446778694556E-03 + 3.2808702720052724E-03 3.3358708850703832E-03 3.3917605525505467E-03 + 3.4485535341049730E-03 3.5062643170722268E-03 3.5649076200280506E-03 + 3.6244983963957676E-03 3.6850518381099486E-03 3.7465833793340589E-03 + 3.8091087002327449E-03 3.8726437307994794E-03 3.9372046547402947E-03 + 4.0028079134142823E-03 4.0694702098316047E-03 4.1372085127097417E-03 + 4.2060400605887028E-03 4.2759823660059367E-03 4.3470532197316973E-03 + 4.4192706950656174E-03 4.4926531521952261E-03 4.5672192426171919E-03 + 4.6429879136220594E-03 4.7199784128432298E-03 4.7982102928709981E-03 + 4.8777034159324132E-03 4.9584779586377267E-03 5.0405544167942901E-03 + 5.1239536102886179E-03 5.2086966880374825E-03 5.2948051330088293E-03 + 5.3823007673133244E-03 5.4712057573673509E-03 5.5615426191282773E-03 + 5.6533342234028408E-03 5.7466038012294494E-03 5.8413749493352596E-03 + 5.9376716356688668E-03 6.0355182050094254E-03 6.1349393846530870E-03 + 6.2359602901775552E-03 6.3386064312856705E-03 6.4429037177288076E-03 + 6.5488784653110069E-03 6.6565574019746537E-03 6.7659676739685983E-03 + 6.8771368520995479E-03 6.9900929380676425E-03 7.1048643708870223E-03 + 7.2214800333922999E-03 7.3399692588317798E-03 7.4603618375483011E-03 + 7.5826880237485784E-03 7.7069785423618913E-03 7.8332645959890181E-03 + 7.9615778719422138E-03 8.0919505493772179E-03 8.2244153065180025E-03 + 8.3590053279752607E-03 8.4957543121594054E-03 8.6346964787889415E-03 + 8.7758665764951400E-03 8.9192998905237211E-03 9.0650322505345608E-03 + 9.2131000385000973E-03 9.3635401967033828E-03 9.5163902358365617E-03 + 9.6716882432005807E-03 9.8294728910070118E-03 9.9897834447826902E-03 + 1.0152659771878075E-02 1.0318142350080023E-02 1.0486272276329851E-02 + 1.0657091275547335E-02 1.0830641709561587E-02 1.1006966586149320E-02 + 1.1186109568181437E-02 1.1368114982878586E-02 1.1553027831176356E-02 + 1.1740893797200880E-02 1.1931759257855487E-02 1.2125671292519041E-02 + 1.2322677692856644E-02 1.2522826972743347E-02 1.2726168378301411E-02 + 1.2932751898051804E-02 1.3142628273180407E-02 1.3355849007919501E-02 + 1.3572466380045124E-02 1.3792533451490688E-02 1.4016104079077430E-02 + 1.4243232925362108E-02 1.4473975469602291E-02 1.4708388018839802E-02 + 1.4946527719102496E-02 1.5188452566724818E-02 1.5434221419787461E-02 + 1.5683894009676246E-02 1.5937530952760647E-02 1.6195193762192014E-02 + 1.6456944859821694E-02 1.6722847588239248E-02 1.6992966222930683E-02 + 1.7267365984556915E-02 1.7546113051352324E-02 1.7829274571643419E-02 + 1.8116918676487462E-02 1.8409114492430996E-02 1.8705932154388011E-02 + 1.9007442818637456E-02 1.9313718675939943E-02 1.9624832964773107E-02 + 1.9940859984685387E-02 2.0261875109767607E-02 2.0587954802241883E-02 + 2.0919176626167289E-02 2.1255619261261537E-02 2.1597362516838005E-02 + 2.1944487345857338E-02 2.2297075859092630E-02 2.2655211339407323E-02 + 2.3018978256144886E-02 2.3388462279628867E-02 2.3763750295772577E-02 + 2.4144930420796726E-02 2.4532092016053907E-02 2.4925325702958353E-02 + 2.5324723378019519E-02 2.5730378227977795E-02 2.6142384745040690E-02 + 2.6560838742217541E-02 2.6985837368750900E-02 2.7417479125642682E-02 + 2.7855863881272525E-02 2.8301092887106683E-02 2.8753268793494529E-02 + 2.9212495665550557E-02 2.9678878999119029E-02 3.0152525736818665E-02 + 3.0633544284164517E-02 3.1122044525763937E-02 3.1618137841583502E-02 + 3.2121937123283734E-02 3.2633556790618141E-02 3.3153112807892883E-02 + 3.3680722700483688E-02 3.4216505571405785E-02 3.4760582117932953E-02 + 3.5313074648261694E-02 3.5874107098215827E-02 3.6443805047987346E-02 + 3.7022295738908521E-02 3.7609708090250604E-02 3.8206172716043950E-02 + 3.8811821941914348E-02 3.9426789821930097E-02 4.0051212155454388E-02 + 4.0685226503996752E-02 4.1328972208057937E-02 4.1982590403961746E-02 + 4.2646224040667383E-02 4.3320017896555783E-02 4.4004118596182827E-02 + 4.4698674626992285E-02 4.5403836355981352E-02 4.6119756046310870E-02 + 4.6846587873852562E-02 4.7584487943665175E-02 4.8333614306390951E-02 + 4.9094126974564042E-02 4.9866187938821860E-02 5.0649961184010057E-02 + 5.1445612705172117E-02 5.2253310523413213E-02 5.3073224701628799E-02 + 5.3905527360087427E-02 5.4750392691856997E-02 5.5607996978064116E-02 + 5.6478518602974398E-02 5.7362138068882872E-02 5.8259038010802483E-02 + 5.9169403210938214E-02 6.0093420612934274E-02 6.1031279335881990E-02 + 6.1983170688074400E-02 6.2949288180494445E-02 6.3929827540022438E-02 + 6.4924986722349143E-02 6.5934965924578412E-02 6.6959967597506248E-02 + 6.8000196457558532E-02 6.9055859498373368E-02 7.0127166002011257E-02 + 7.1214327549775358E-02 7.2317558032626669E-02 7.3437073661174579E-02 + 7.4573092975226268E-02 7.5725836852876399E-02 7.6895528519116990E-02 + 7.8082393553950233E-02 7.9286659899982681E-02 8.0508557869481689E-02 + 8.1748320150873452E-02 8.3006181814660518E-02 8.4282380318738748E-02 + 8.5577155513089948E-02 8.6890749643828993E-02 8.8223407356581879E-02 + 8.9575375699170304E-02 9.0946904123580655E-02 9.2338244487190302E-02 + 9.3749651053228730E-02 9.5181380490445264E-02 9.6633691871959568E-02 + 9.8106846673266843E-02 9.9601108769370367E-02 1.0111674443101480E-01 + 1.0265402231999070E-01 1.0421321348348168E-01 1.0579459134742598E-01 + 1.0739843170885975E-01 1.0902501272721501E-01 1.1067461491453746E-01 + 1.1234752112459588E-01 1.1404401654084836E-01 1.1576438866323320E-01 + 1.1750892729375226E-01 1.1927792452081026E-01 1.2107167470227786E-01 + 1.2289047444724259E-01 1.2473462259641016E-01 1.2660442020112300E-01 + 1.2850017050095572E-01 1.3042217889985278E-01 1.3237075294076786E-01 + 1.3434620227876809E-01 1.3634883865256314E-01 1.3837897585441800E-01 + 1.4043692969841201E-01 1.4252301798699932E-01 1.4463756047583237E-01 + 1.4678087883680482E-01 1.4895329661926987E-01 1.5115513920939408E-01 + 1.5338673378759843E-01 1.5564840928404605E-01 1.5794049633212959E-01 + 1.6026332721991221E-01 1.6261723583947840E-01 1.6500255763414526E-01 + 1.6741962954348946E-01 1.6986878994614135E-01 1.7235037860029701E-01 + 1.7486473658190282E-01 1.7741220622045897E-01 1.7999313103239706E-01 + 1.8260785565197918E-01 1.8525672575966776E-01 1.8794008800791850E-01 + 1.9065828994434089E-01 1.9341167993217948E-01 1.9620060706805972E-01 + 1.9902542109694987E-01 2.0188647232428486E-01 2.0478411152519851E-01 + 2.0771868985081396E-01 2.1069055873153558E-01 2.1370006977729222E-01 + 2.1674757467467734E-01 2.1983342508092957E-01 2.2295797251470642E-01 + 2.2612156824358937E-01 2.2932456316827290E-01 2.3256730770338177E-01 + 2.3585015165486017E-01 2.3917344409388450E-01 2.4253753322723992E-01 + 2.4594276626411327E-01 2.4938948927924690E-01 2.5287804707239814E-01 + 2.5640878302405778E-01 2.5998203894736921E-01 2.6359815493620348E-01 + 2.6725746920933202E-01 2.7096031795065256E-01 2.7470703514541728E-01 + 2.7849795241240921E-01 2.8233339883202752E-01 2.8621370077022512E-01 + 2.9013918169825909E-01 2.9411016200820461E-01 2.9812695882418833E-01 + 3.0218988580929990E-01 3.0629925296813637E-01 3.1045536644494093E-01 + 3.1465852831729724E-01 3.1890903638533569E-01 3.2320718395642328E-01 + 3.2755325962529364E-01 3.3194754704958862E-01 3.3639032472077990E-01 + 3.4088186573043283E-01 3.4542243753179541E-01 3.5001230169667402E-01 + 3.5465171366757714E-01 3.5934092250510347E-01 3.6408017063054637E-01 + 3.6886969356370236E-01 3.7370971965585831E-01 3.7860046981794537E-01 + 3.8354215724383722E-01 3.8853498712878631E-01 3.9357915638297947E-01 + 3.9867485334020059E-01 4.0382225746159472E-01 4.0902153903451532E-01 + 4.1427285886645349E-01 4.1957636797403619E-01 4.2493220726708147E-01 + 4.3034050722771128E-01 4.3580138758450382E-01 4.4131495698168433E-01 + 4.4688131264334385E-01 4.5250054003267215E-01 4.5817271250620761E-01 + 4.6389789096308098E-01 4.6967612348925697E-01 4.7550744499675929E-01 + 4.8139187685787005E-01 4.8732942653430406E-01 4.9332008720134640E-01 + 4.9936383736696016E-01 5.0546064048585770E-01 5.1161044456855209E-01 + 5.1781318178539781E-01 5.2406876806563796E-01 5.3037710269150096E-01 + 5.3673806788737011E-01 5.4315152840409753E-01 5.4961733109851951E-01 + 5.5613530450825710E-01 5.6270525842191421E-01 5.6932698344477939E-01 + 5.7600025056018900E-01 5.8272481068670956E-01 5.8950039423132439E-01 + 5.9632671063885001E-01 6.0320344793780778E-01 6.1013027228302286E-01 + 6.1710682749524093E-01 6.2413273459806207E-01 6.3120759135255311E-01 + 6.3833097178987164E-01 6.4550242574230099E-01 6.5272147837309114E-01 + 6.5998762970550928E-01 6.6730035415155309E-01 6.7465910004074436E-01 + 6.8206328914947811E-01 6.8951231623136822E-01 6.9700554854906793E-01 + 7.0454232540802963E-01 7.1212195769266518E-01 7.1974372740539261E-01 + 7.2740688720901847E-01 7.3511065997293190E-01 7.4285423832356878E-01 + 7.5063678419959046E-01 7.5845742841224517E-01 7.6631527021133461E-01 + 7.7420937685723767E-01 7.8213878319941932E-01 7.9010249126183463E-01 + 7.9809946983566837E-01 8.0612865407979273E-01 8.1418894512937134E-01 + 8.2227920971299606E-01 8.3039827977874336E-01 8.3854495212955860E-01 + 8.4671798806833432E-01 8.5491611305308612E-01 8.6313801636259613E-01 + 8.7138235077292925E-01 8.7964773224520920E-01 8.8793273962504538E-01 + 8.9623591435404504E-01 9.0455576019380335E-01 9.1289074296282890E-01 + 9.2123929028684348E-01 9.2959979136291060E-01 9.3797059673789696E-01 + 9.4635001810173991E-01 9.5473632809605202E-01 9.6312776013859391E-01 + 9.7152250826415432E-01 9.7991872698242000E-01 9.8831453115340129E-01 + 9.9670799588102199E-01 1.0050971564254838E+00 1.0134800081350144E+00 + 1.0218545063976612E+00 1.0302185666137491E+00 1.0385700641896829E+00 + 1.0469068345537516E+00 1.0552266731946016E+00 1.0635273357230863E+00 + 1.0718065379581492E+00 1.0800619560374751E+00 1.0882912265535745E+00 + 1.0964919467160430E+00 1.1046616745406881E+00 1.1127979290662375E+00 + 1.1208981905993698E+00 1.1289599009887572E+00 1.1369804639288703E+00 + 1.1449572452942551E+00 1.1528875735049939E+00 1.1607687399240947E+00 + 1.1685979992874957E+00 1.1763725701674224E+00 1.1840896354697934E+00 + 1.1917463429663659E+00 1.1993398058623392E+00 1.2068671034000669E+00 + 1.2143252814995769E+00 1.2217113534365538E+00 1.2290223005584102E+00 + 1.2362550730391166E+00 1.2434065906733662E+00 1.2504737437107076E+00 + 1.2574533937301917E+00 1.2643423745561118E+00 1.2711374932153678E+00 + 1.2778355309369451E+00 1.2844332441940203E+00 1.2909273657891156E+00 + 1.2973146059827592E+00 1.3035916536660184E+00 1.3097551775772727E+00 + 1.3158018275635666E+00 1.3217282358867954E+00 1.3275310185750082E+00 + 1.3332067768190152E+00 1.3387520984144619E+00 1.3441635592495107E+00 + 1.3494377248381790E+00 1.3545711518993875E+00 1.3595603899816826E+00 + 1.3644019831335608E+00 1.3690924716192849E+00 1.3736283936799925E+00 + 1.3780062873398924E+00 1.3822226922572407E+00 1.3862741516197403E+00 + 1.3901572140839922E+00 1.3938684357584807E+00 1.3974043822296063E+00 + 1.4007616306301218E+00 1.4039367717493343E+00 1.4069264121843246E+00 + 1.4097271765313433E+00 1.4123357096165288E+00 1.4147486787649257E+00 + 1.4169627761067594E+00 1.4189747209198011E+00 1.4207812620065268E+00 + 1.4223791801047425E+00 1.4237652903301239E+00 1.4249364446491006E+00 + 1.4258895343802946E+00 1.4266214927226109E+00 1.4271292973079430E+00 + 1.4274099727762415E+00 1.4274605933705731E+00 1.4272782855495882E+00 + 1.4268602306146401E+00 1.4262036673486282E+00 1.4253058946634418E+00 + 1.4241642742527447E+00 1.4227762332466520E+00 1.4211392668647580E+00 + 1.4192509410638743E+00 1.4171088951767665E+00 1.4147108445382119E+00 + 1.4120545830947293E+00 1.4091379859944924E+00 1.4059590121541319E+00 + 1.4025157067993956E+00 1.3988062039770774E+00 1.3948287290359931E+00 + 1.3905816010754053E+00 1.3860632353598492E+00 1.3812721456999970E+00 + 1.3762069467999254E+00 1.3708663565718497E+00 1.3652491984201514E+00 + 1.3593544034972167E+00 1.3531810129342285E+00 1.3467281800506838E+00 + 1.3399951725467878E+00 1.3329813746832715E+00 1.3256862894532730E+00 + 1.3181095407509276E+00 1.3102508755410369E+00 1.3021101660336609E+00 + 1.2936874118667512E+00 1.2849827422988020E+00 1.2759964184121868E+00 + 1.2667288353261281E+00 1.2571805244163079E+00 1.2473521555359841E+00 + 1.2372445392311151E+00 1.2268586289397263E+00 1.2161955231634933E+00 + 1.2052564675975939E+00 1.1940428572034156E+00 1.1825562382077126E+00 + 1.1707983100116168E+00 1.1587709269933060E+00 1.1464761001892907E+00 + 1.1339159988410366E+00 1.1210929517957933E+00 1.1080094487530212E+00 + 1.0946681413503236E+00 1.0810718440852323E+00 1.0672235350713932E+00 + 1.0531263566294229E+00 1.0387836157140784E+00 1.0241987841801561E+00 + 1.0093754988899777E+00 9.9431756166526142E-01 9.7902893908586563E-01 + 9.6351376213738416E-01 9.4777632570886106E-01 9.3182108794124952E-01 + 9.1565266942656398E-01 8.9927585225710616E-01 8.8269557892375916E-01 + 8.6591695106201327E-01 8.4894522804432238E-01 8.3178582541737367E-01 + 8.1444431318301347E-01 7.9692641392184149E-01 7.7923800075877658E-01 + 7.6138509517029362E-01 7.4337386463341038E-01 7.2521062011687065E-01 + 7.0690181341536507E-01 6.8845403432792285E-01 6.6987400768192129E-01 + 6.5116859020436013E-01 6.3234476724227495E-01 6.1340964933425890E-01 + 5.9437046863518295E-01 5.7523457519625643E-01 5.5600943310258166E-01 + 5.3670261647037976E-01 5.1732180530602545E-01 4.9787478122901319E-01 + 4.7836942306094477E-01 4.5881370228258311E-01 4.3921567836100467E-01 + 4.1958349394885242E-01 3.9992536995768402E-01 3.8024960050743362E-01 + 3.6056454775401331E-01 3.4087863659715018E-01 3.2120034927061419E-01 + 3.0153821981709311E-01 2.8190082845010334E-01 2.6229679580546195E-01 + 2.4273477708504362E-01 2.2322345609574151E-01 2.0377153918679336E-01 + 1.8438774908890643E-01 1.6508081865889568E-01 1.4585948453387987E-01 + 1.2673248069940854E-01 1.0770853197625804E-01 8.8796347431000844E-02 + 7.0004613715827488E-02 5.1341988343481415E-02 3.2817092903526579E-02 + 1.4438506226520979E-02 -3.7852424970167575E-03 -2.1845680635680501E-02 + -3.9734399066895944E-02 -5.7443059149725959E-02 -7.4963399713104742E-02 + -9.2287244051819650E-02 -1.0940650692260870E-01 -1.2631320153286313E-01 + -1.4299944651459207E-01 -1.5945747287650980E-01 -1.7567963092729422E-01 + -1.9165839716318750E-01 -2.0738638111310870E-01 -2.2285633213420375E-01 + -2.3806114615021065E-01 -2.5299387232399206E-01 -2.6764771965400980E-01 + -2.8201606348220476E-01 -2.9609245189762085E-01 -3.0987061201607680E-01 + -3.2334445611120283E-01 -3.3650808756632106E-01 -3.4935580661007276E-01 + -3.6188211579176610E-01 -3.7408172514561960E-01 -3.8594955698700995E-01 + -3.9748075027949603E-01 -4.0867066450960582E-01 -4.1951488300829115E-01 + -4.3000921566460587E-01 -4.4014970098935552E-01 -4.4993260750496267E-01 + -4.5935443446282909E-01 -4.6841191192087361E-01 -4.7710200025118238E-01 + -4.8542188918948526E-01 -4.9336899658239675E-01 -5.0094096703209212E-01 + -5.0813567067660925E-01 -5.1495120237108516E-01 -5.2138588154313903E-01 + -5.2743825297561120E-01 -5.3310708871468360E-01 -5.3839139120809743E-01 + -5.4329039765124465E-01 -5.4780358537252460E-01 -5.5193067794641060E-01 + -5.5567165161017307E-01 -5.5902674150213505E-01 -5.6199644724864017E-01 + -5.6458153750122331E-01 -5.6678305314747435E-01 -5.6860230906217868E-01 + -5.7004089440211292E-01 -5.7110067155713207E-01 -5.7178377394122670E-01 + -5.7209260283949870E-01 -5.7202982352736342E-01 -5.7159836085683402E-01 + -5.7080139447175471E-01 -5.6964235377730843E-01 -5.6812491275432508E-01 + -5.6625298467873542E-01 -5.6403071678170114E-01 -5.6146248486648220E-01 + -5.5855288788315527E-01 -5.5530674245131206E-01 -5.5172907731308318E-01 + -5.4782512769383562E-01 -5.4360032954541626E-01 -5.3906031364651197E-01 + -5.3421089953629430E-01 -5.2905808926079179E-01 -5.2360806091589540E-01 + -5.1786716197625438E-01 -5.1184190240504479E-01 -5.0553894754542794E-01 + -4.9896511080000289E-01 -4.9212734610949321E-01 -4.8503274024615117E-01 + -4.7768850494071202E-01 -4.7010196886428712E-01 -4.6228056948824359E-01 + -4.5423184484609314E-01 -4.4596342522170418E-01 -4.3748302478787560E-01 + -4.2879843321866723E-01 -4.1991750729787891E-01 -4.1084816254482664E-01 + -4.0159836487722600E-01 -3.9217612232952620E-01 -3.8258947684358152E-01 + -3.7284649614706739E-01 -3.6295526573364367E-01 -3.5292388095751892E-01 + -3.4276043925375865E-01 -3.3247303249450899E-01 -3.2206973949018525E-01 + -3.1155861864363393E-01 -3.0094770076435534E-01 -2.9024498204899818E-01 + -2.7945841723357684E-01 -2.6859591292213969E-01 -2.5766532109600448E-01 + -2.4667443280711526E-01 -2.3563097205856651E-01 -2.2454258987492093E-01 + -2.1341685856455594E-01 -2.0226126617595278E-01 -1.9108321114954693E-01 + -1.7988999716652623E-01 -1.6868882819575209E-01 -1.5748680373979132E-01 + -1.4629091428090119E-01 -1.3510803692766957E-01 -1.2394493126288046E-01 + -1.1280823539306674E-01 -1.0170446220008894E-01 -9.0639995794971062E-02 + -7.9621088174097882E-02 -6.8653856077760769E-02 -5.7744278050914498E-02 + -4.6898191705874510E-02 -3.6121291186565756E-02 -2.5419124833819216E-02 + -1.4797093051111817E-02 -4.2604463700813850E-03 6.1857162848973617E-03 + 1.6536449133755942E-02 2.6786960880034828E-02 3.6932615852934073E-02 + 4.6968934952414797E-02 5.6891596397413341E-02 6.6696436276902499E-02 + 7.6379448903234323E-02 8.5936786966838430E-02 9.5364761491086456E-02 + 1.0465984158593940E-01 1.1381865399893586E-01 1.2283798246231380E-01 + 1.3171476683551142E-01 1.4044610204316921E-01 1.4902923681005656E-01 + 1.5746157219607101E-01 1.6574065993671994E-01 1.7386420059718097E-01 + 1.8183004155112084E-01 1.8963617479882988E-01 1.9728073464272045E-01 + 2.0476199524164490E-01 2.1207836806860805E-01 2.1922839929897478E-01 + 2.2621076715806018E-01 2.3302427925770744E-01 2.3966786995103526E-01 + 2.4614059773291255E-01 2.5244164271075026E-01 2.5857030416620658E-01 + 2.6452599822343509E-01 2.7030825563384703E-01 2.7591671968147241E-01 + 2.8135114420710117E-01 2.8661139174393263E-01 2.9169743175270202E-01 + 2.9660933894048064E-01 3.0134729164469298E-01 3.0591157026239890E-01 + 3.1030255570457227E-01 3.1452072785580920E-01 3.1856666402143269E-01 + 3.2244103734617907E-01 3.2614461519124138E-01 3.2967825745926188E-01 + 3.3304291485965398E-01 3.3623962710929151E-01 3.3926952106598457E-01 + 3.4213380879417488E-01 3.4483378556396244E-01 3.4737082778583855E-01 + 3.4974639088444787E-01 3.5196200711529818E-01 3.5401928332871985E-01 + 3.5591989868553303E-01 3.5766560232888089E-01 3.5925821101661032E-01 + 3.6069960671843782E-01 3.6199173418194386E-01 3.6313659847128688E-01 + 3.6413626248234482E-01 3.6499284443787144E-01 3.6570851536611998E-01 + 3.6628549656631182E-01 3.6672605706426864E-01 3.6703251106145018E-01 + 3.6720721538061790E-01 3.6725256691130381E-01 3.6717100005819303E-01 + 3.6696498419549717E-01 3.6663702113029861E-01 3.6618964257776954E-01 + 3.6562540765103196E-01 3.6494690036830452E-01 3.6415672717982311E-01 + 3.6325751451682725E-01 3.6225190636473614E-01 3.6114256186241117E-01 + 3.5993215292921238E-01 3.5862336192131866E-01 3.5721887931858876E-01 + 3.5572140144303788E-01 3.5413362820980576E-01 3.5245826091133736E-01 + 3.5069800003536333E-01 3.4885554311713696E-01 3.4693358262633850E-01 + 3.4493480388900410E-01 3.4286188304486459E-01 3.4071748504052779E-01 + 3.3850426165903402E-01 3.3622484958648763E-01 3.3388186851665158E-01 + 3.3147791929462411E-01 3.2901558210102672E-01 3.2649741467842591E-01 + 3.2392595060204149E-01 3.2130369759718164E-01 3.1863313590618725E-01 + 3.1591671670802290E-01 3.1315686059399495E-01 3.1035595610337929E-01 + 3.0751635832297153E-01 3.0464038755487793E-01 3.0173032805614558E-01 + 2.9878842685644025E-01 2.9581689265579969E-01 2.9281789480666298E-01 + 2.8979356238631432E-01 2.8674598335858359E-01 2.8367720383093109E-01 + 2.8058922740742809E-01 2.7748401463650896E-01 2.7436348255533388E-01 + 2.7122950432750281E-01 2.6808390897139661E-01 2.6492848117432527E-01 + 2.6176496118618336E-01 2.5859504478466877E-01 2.5542038330246591E-01 + 2.5224258370521629E-01 2.4906320870759702E-01 2.4588377691353253E-01 + 2.4270576296551244E-01 2.3953059768732018E-01 2.3635966820426674E-01 + 2.3319431802538046E-01 2.3003584707306765E-01 2.2688551164759585E-01 + 2.2374452431644834E-01 2.2061405372223256E-01 2.1749522430734072E-01 + 2.1438911595895777E-01 2.1129676358407859E-01 2.0821915663077326E-01 + 2.0515723857865797E-01 2.0211190642799182E-01 1.9908401022258759E-01 + 1.9607435264625020E-01 1.9308368873525253E-01 1.9011272575000451E-01 + 1.8716212324720805E-01 1.8423249338930128E-01 1.8132440152090357E-01 + 1.7843836703261609E-01 1.7557486452140422E-01 1.7273432524460458E-01 + 1.6991713885224657E-01 1.6712365537068755E-01 1.6435418740042931E-01 + 1.6160901248305296E-01 1.5888837558701513E-01 1.5619249165977561E-01 + 1.5352154819434996E-01 1.5087570776161913E-01 1.4825511046522205E-01 + 1.4565987628316915E-01 1.4309010726581575E-01 1.4054588957102540E-01 + 1.3802729532639527E-01 1.3553438431022125E-01 1.3306720545348252E-01 + 1.3062579816901690E-01 1.2821019351801524E-01 1.2582041522671675E-01 + 1.2345648056785760E-01 1.2111840112216737E-01 1.1880618343522352E-01 + 1.1651982958438463E-01 1.1425933766953257E-01 1.1202470224006350E-01 + 1.0981591466913407E-01 1.0763296348465942E-01 1.0547583466504774E-01 + 1.0334451190621034E-01 1.0123897686501208E-01 9.9159209383068728E-02 + 9.7105187693639447E-02 9.5076888613328872E-02 9.3074287719386556E-02 + 9.1097359512563161E-02 8.9146077564764170E-02 8.7220414650114153E-02 + 8.5320342857502757E-02 8.3445833682245979E-02 8.1596858094139607E-02 + 7.9773386578935346E-02 7.7975389150117647E-02 7.6202835327828650E-02 + 7.4455694081876592E-02 7.2733933735973158E-02 7.1037521830699252E-02 + 6.9366424943178448E-02 6.7720608462057630E-02 6.6100036317131516E-02 + 6.4504670663804511E-02 6.2934471523526159E-02 6.1389396382341997E-02 + 5.9869399750745393E-02 5.8374432689053048E-02 5.6904442303520222E-02 + 5.5459371219329992E-02 5.4039157037385335E-02 5.2643731782481322E-02 + 5.1273021350898527E-02 4.9926944965729594E-02 4.8605414648310426E-02 + 4.7308334713967115E-02 4.6035601299950067E-02 4.4787101932849564E-02 + 4.3562715142103567E-02 4.2362310125353679E-02 4.1185746470418096E-02 + 4.0032873937671055E-02 3.8903532305510906E-02 3.7797551280544878E-02 + 3.6714750473085561E-02 3.5654939437539467E-02 3.4617917776355721E-02 + 3.3603475305364630E-02 3.2611392277602388E-02 3.1641439662087024E-02 + 3.0693379473492047E-02 2.9766965148252132E-02 2.8861941962325274E-02 + 2.7978047485626874E-02 2.7115012068030582E-02 2.6272559351788551E-02 + 2.5450406805257154E-02 2.4648266272904513E-02 2.3865844536721557E-02 + 2.3102843884343690E-02 2.2358962679412304E-02 2.1633895929954194E-02 + 2.0927335850824156E-02 2.0238972416541875E-02 1.9568493901148336E-02 + 1.8915587402007356E-02 1.8279939344784550E-02 1.7661235967141534E-02 + 1.7059163778991037E-02 1.6473409997462871E-02 1.5903662955034804E-02 + 1.5349612479582529E-02 1.4810950245398691E-02 1.4287370094524094E-02 + 1.3778568328020126E-02 1.3284243967092596E-02 1.2804098984248629E-02 + 1.2337838504931977E-02 1.1885170980333502E-02 1.1445808332310365E-02 + 1.1019466071569823E-02 1.0605863390476016E-02 1.0204723232019160E-02 + 9.8157723366452832E-03 9.4387412687760280E-03 9.0733644249533073E-03 + 8.7193800256185425E-03 8.3765300925824938E-03 8.0445604142578651E-03 + 7.7232205007127727E-03 7.4122635305619048E-03 7.1114462916435570E-03 + 6.8205291173377616E-03 6.5392758202667432E-03 6.2674536249859364E-03 + 6.0048331011266229E-03 5.7511880982919570E-03 5.5062956838421127E-03 + 5.2699360845338342E-03 5.0418926328084116E-03 4.8219517183542126E-03 + 4.6099027454066304E-03 4.4055380960937897E-03 4.2086530999910637E-03 + 4.0190460099145389E-03 3.8365179838631609E-03 3.6608730729124680E-03 + 3.4919182147705174E-03 3.3294632326283068E-03 3.1733208388724922E-03 + 3.0233066431777597E-03 2.8792391644581051E-03 2.7409398461305848E-03 + 2.6082330741301085E-03 2.4809461971091349E-03 2.3589095482602078E-03 + 2.2419564682109581E-03 2.1299233284598575E-03 2.0226495548449812E-03 + 1.9199776505668068E-03 1.8217532183182027E-03 1.7278249811098646E-03 + 1.6380448014163339E-03 1.5522676983057188E-03 1.4703518622549313E-03 + 1.3921586673908133E-03 1.3175526809354910E-03 1.2464016696715084E-03 + 1.1785766032780349E-03 1.1139516544237951E-03 1.0524041955347655E-03 + 9.9381479218531668E-04 9.3806719308993825E-04 8.8504831669899736E-04 + 8.3464823442617976E-04 7.8676015055724566E-04 7.4128037890947235E-04 + 6.9810831632889083E-04 6.5714641312796451E-04 6.1830014057998983E-04 + 5.8147795559813583E-04 5.4659126273692371E-04 5.1355437366209459E-04 + 4.8228446424130060E-04 4.5270152941312138E-04 4.2472833599549811E-04 + 3.9829037359704841E-04 3.7331580379585240E-04 3.4973540775041199E-04 + 3.2748253240659828E-04 3.0649303546262179E-04 2.8670522925154207E-04 + 2.6805982369760081E-04 2.5049986849881058E-04 2.3397069468389232E-04 + 2.1841985568682716E-04 2.0379706807711060E-04 1.9005415207827529E-04 + 1.7714497200150084E-04 1.6502537671516773E-04 1.5365314026509635E-04 + 1.4298790275401433E-04 1.3299111158252862E-04 1.2362596314758410E-04 + 1.1485734508813266E-04 1.0665177916150316E-04 9.8977364827820661E-05 + 9.1803723613764464E-05 8.5101944321030182E-05 7.8844529139068803E-05 + 7.3005340716034240E-05 6.7559550236410019E-05 6.2483586548493957E-05 + 5.7755086379826670E-05 5.3352845673745868E-05 4.9256772075555280E-05 + 4.5447838592309296E-05 4.1908038445931984E-05 3.8620341135327336E-05 + 3.5568649719281992E-05 3.2737759328318168E-05 3.0113316910224172E-05 + 2.7681782210763604E-05 2.5430389988044783E-05 2.3347113456210588E-05 + 2.1420628951485740E-05 1.9640281811186090E-05 1.7996053454046160E-05 + 1.6478529648155616E-05 1.5078869950903368E-05 1.3788778303602940E-05 + 1.2600474761911997E-05 1.1506668341751938E-05 1.0500530959176915E-05 + 9.5756724415262022E-06 8.7261165862159392E-06 7.9462782426771860E-06 + 7.2309413922204673E-06 6.5752381999981584E-06 5.9746290127363699E-06 + 5.4248832755128869E-06 4.9220613405600825E-06 4.4624971408663955E-06 + 4.0427817012307081E-06 3.6597474593845908E-06 3.3104533698337003E-06 + 2.9921707631750083E-06 2.7023699338163020E-06 2.4387074292539521E-06 + 2.1990140143486610E-06 1.9812832843729536E-06 1.7836609009833841E-06 + 1.6044344256912222E-06 1.4420237258631260E-06 1.2949719287743960E-06 + 1.1619368997577389E-06 1.0416832210366371E-06 9.3307464840640435E-07 + 8.3506702351122978E-07 7.4670161999660746E-07 6.6709890251060964E-07 + 5.9545268063960880E-07 5.3102462067436340E-07 4.7313910666969744E-07 + 4.2117883297833869E-07 3.7457882178131952E-07 3.3282541603874767E-07 + 2.9544840089456593E-07 2.6202100970118538E-07 2.3215398361257234E-07 + 2.0549342210482927E-07 1.8171787240777595E-07 1.6053563049873507E-07 + 1.4168224066977191E-07 1.2491818129783746E-07 1.1002672504249680E-07 + 9.6811962274852624E-08 8.5096977103559221E-08 7.4722165909142765E-08 + 6.5543688825990731E-08 5.7432045122149164E-08 5.0270763920345324E-08 + 4.3955202179378739E-08 3.8391442313150375E-08 3.3495282265175060E-08 + 2.9191311279503978E-08 2.5412065014704277E-08 2.2097254036054170E-08 + 1.9193060092617250E-08 1.6651494940602255E-08 1.4429816812663328E-08 + 1.2489999954857278E-08 1.0798252959187491E-08 9.3245819103860763E-09 + 8.0423946412066013E-09 6.9281426514229567E-09 5.9609974923846333E-09 + 5.1225586518036505E-09 4.3965901928990983E-09 3.7687836085677864E-09 + 3.2265445453563980E-09 2.7588012341612929E-09 2.3558326352607538E-09 + 2.0091144649742257E-09 1.7111814204291626E-09 1.4555040580791829E-09 + 1.2363789112355735E-09 1.0488305524188967E-09 8.8852441827299887E-10 + 7.5168931856602480E-10 6.3504864687756294E-10 5.3575939937284720E-10 + 4.5135819001671570E-10 3.7971352609202462E-10 3.1898367735595809E-10 + 2.6757953597569160E-10 2.2413192290032446E-10 1.8746284990188614E-10 + 1.5656029549262439E-10 1.3055609762143665E-10 1.0870660677652204E-10 + 9.0375780166225572E-11 7.5020431292409471E-11 6.2177379732358693E-11 + 5.1452273553194768E-11 4.2509881729546119E-11 3.5065676439192664E-11 + 2.8878545377172748E-11 2.3744492447727574E-11 1.9491201543934523E-11 + 1.5973352773045594E-11 1.3068593585678803E-11 1.0674078962059726E-11 + 8.7035052306625146E-12 7.0845713658025896E-12 5.7568098432504258E-12 + 4.6697364298925179E-12 3.7812747393744317E-12 3.0564170869656845E-12 + 2.4660882024664589E-12 1.9861827816600272E-12 1.5967517398606657E-12 + 1.2813154346777254E-12 1.0262851027311057E-12 8.2047635501692621E-13 + 6.5470084143996638E-13 5.2142416579679184E-13 4.1447984326434928E-13 + 3.2883057458511283E-13 2.6036939263671444E-13 2.0575434286622695E-13 + 1.6227131131562077E-13 1.2772043231312712E-13 1.0032220973724394E-13 + 7.8640086418262196E-14 6.1516709238006825E-14 4.8021574693698823E-14 + 3.7408111513603147E-14 2.9078572452467807E-14 2.2555374595896911E-14 + 1.7457753278721228E-14 1.3482785077876167E-14 1.0389995478077565E-14 + 7.9889012259746541E-15 6.1289499635969110E-15 4.6914138010258516E-15 + 3.5828719144575534E-15 2.7299824903377766E-15 2.0752984721987588E-15 + 1.5739263880588184E-15 1.1908645579501133E-15 8.9888748573802253E-16 + 6.7686832239042978E-16 5.0845185335352992E-16 3.8100725883766528E-16 + 2.8480370895728650E-16 2.1236297830108080E-16 1.5795201150220883E-16 + 1.1718688425780123E-16 8.6724374140594107E-17 6.4019075660991110E-17 + 4.7140595799794706E-17 3.4632192333731104E-17 2.5378596996035424E-17 + 1.8547711219094620E-17 1.3518788944268119E-17 9.8265158598995643E-18 + + + 1.4272679176125152E-17 6.6341137451679776E-13 2.6772641418026161E-12 + 6.0775384359334850E-12 1.0900961861136961E-11 1.7185023764471301E-11 + 2.4967989771461088E-11 3.4288916589452536E-11 4.5187667083541350E-11 + 5.7704925630010195E-11 7.1882213752301399E-11 8.7761906044644829E-11 + 1.0538724638854665E-10 1.2480236446744601E-10 1.4605229258493176E-10 + 1.6918298279202159E-10 1.9424132432908976E-10 2.2127516138814349E-10 + 2.5033331120124276E-10 2.8146558246096078E-10 3.1472279407890132E-10 + 3.5015679428837414E-10 3.8782048009746207E-10 4.2776781709882026E-10 + 4.7005385964264058E-10 5.1473477137936699E-10 5.6186784617883046E-10 + 6.1151152943261839E-10 6.6372543974659208E-10 7.1857039103062104E-10 + 7.7610841499268596E-10 8.3640278404468417E-10 8.9951803462734877E-10 + 9.6551999096186810E-10 1.0344757892359064E-09 1.1064539022318762E-09 + 1.1815241644054328E-09 1.2597577974223360E-09 1.3412274361619416E-09 + 1.4260071551957601E-09 1.5141724957496343E-09 1.6058004931582940E-09 + 1.7009697048211381E-09 1.7997602386683153E-09 1.9022537821463050E-09 + 2.0085336317323500E-09 2.1186847229873060E-09 2.2327936611566097E-09 + 2.3509487523292426E-09 2.4732400351647556E-09 2.5997593131986120E-09 + 2.7306001877362497E-09 2.8658580913465072E-09 3.0056303219651647E-09 + 3.1500160776196883E-09 3.2991164917862469E-09 3.4530346693905258E-09 + 3.6118757234638342E-09 3.7757468124663941E-09 3.9447571782897451E-09 + 4.1190181849505906E-09 4.2986433579884692E-09 4.4837484245799621E-09 + 4.6744513543823435E-09 4.8708724011197661E-09 5.0731341449254363E-09 + 5.2813615354532925E-09 5.4956819357731151E-09 5.7162251670631383E-09 + 5.9431235541145357E-09 6.1765119716623544E-09 6.4165278915578151E-09 + 6.6633114307971484E-09 6.9170054004222476E-09 7.1777553553089920E-09 + 7.4457096448591042E-09 7.7210194646118268E-09 8.0038389087919720E-09 + 8.2943250238111937E-09 8.5926378627395649E-09 8.8989405407650422E-09 + 9.2133992916584636E-09 9.5361835252621479E-09 9.8674658860206952E-09 + 1.0207422312572440E-08 1.0556232098420891E-08 1.0914077953705346E-08 + 1.1281146068090723E-08 1.1657626174796347E-08 1.2043711615784567E-08 + 1.2439599408129709E-08 1.2845490311588831E-08 1.3261588897395726E-08 + 1.3688103618300186E-08 1.4125246879874962E-08 1.4573235113113079E-08 + 1.5032288848338878E-08 1.5502632790456124E-08 1.5984495895557494E-08 + 1.6478111448919636E-08 1.6983717144408822E-08 1.7501555165322574E-08 + 1.8031872266692920E-08 1.8574919859077597E-08 1.9130954093865977E-08 + 1.9700235950126776E-08 2.0283031323025385E-08 2.0879611113838873E-08 + 2.1490251321597456E-08 2.2115233136381514E-08 2.2754843034303971E-08 + 2.3409372874208339E-08 2.4079119996112935E-08 2.4764387321433023E-08 + 2.5465483455012532E-08 2.6182722788997771E-08 2.6916425608586404E-08 + 2.7666918199685313E-08 2.8434532958511257E-08 2.9219608503169732E-08 + 3.0022489787247161E-08 3.0843528215452495E-08 3.1683081761345251E-08 + 3.2541515087187294E-08 3.3419199665956312E-08 3.4316513905560054E-08 + 3.5233843275290495E-08 3.6171580434558289E-08 3.7130125363948590E-08 + 3.8109885498639165E-08 3.9111275864224232E-08 4.0134719214986109E-08 + 4.1180646174659269E-08 4.2249495379731123E-08 4.3341713625325517E-08 + 4.4457756013714147E-08 4.5598086105504687E-08 4.6763176073551765E-08 + 4.7953506859641154E-08 4.9169568333995961E-08 5.0411859457655627E-08 + 5.1680888447779496E-08 5.2977172945926996E-08 5.4301240189367888E-08 + 5.5653627185477319E-08 5.7034880889270016E-08 5.8445558384130782E-08 + 5.9886227065798486E-08 6.1357464829660950E-08 6.2859860261421304E-08 + 6.4394012831195447E-08 6.5960533091101958E-08 6.7560042876407809E-08 + 6.9193175510292977E-08 7.0860576012298586E-08 7.2562901310525439E-08 + 7.4300820457649155E-08 7.6075014850821020E-08 7.7886178455523675E-08 + 7.9735018033452737E-08 8.1622253374496036E-08 8.3548617532885252E-08 + 8.5514857067592097E-08 8.7521732287047794E-08 8.9570017498261754E-08 + 9.1660501260418168E-08 9.3793986643031681E-08 9.5971291488742712E-08 + 9.8193248680836266E-08 1.0046070641556877E-07 1.0277452847938769E-07 + 1.0513559453113411E-07 1.0754480038931522E-07 1.1000305832453777E-07 + 1.1251129735719685E-07 1.1507046356051076E-07 1.1768152036900127E-07 + 1.2034544889251387E-07 1.2306324823587858E-07 1.2583593582431210E-07 + 1.2866454773466438E-07 1.3155013903261292E-07 1.3449378411591294E-07 + 1.3749657706381076E-07 1.4055963199273066E-07 1.4368408341834898E-07 + 1.4687108662416652E-07 1.5012181803669966E-07 1.5343747560740569E-07 + 1.5681927920146327E-07 1.6026847099353214E-07 1.6378631587061592E-07 + 1.6737410184215380E-07 1.7103314045747402E-07 1.7476476723073711E-07 + 1.7857034207350445E-07 1.8245124973507009E-07 1.8640890025069125E-07 + 1.9044472939786268E-07 1.9456019916077545E-07 1.9875679820310878E-07 + 2.0303604234930309E-07 2.0739947507446634E-07 2.1184866800306752E-07 + 2.1638522141657527E-07 2.2101076477020085E-07 2.2572695721890886E-07 + 2.3053548815286178E-07 2.3543807774246544E-07 2.4043647749318941E-07 + 2.4553247081033584E-07 2.5072787357393447E-07 2.5602453472394479E-07 + 2.6142433685595218E-07 2.6692919682754152E-07 2.7254106637554310E-07 + 2.7826193274434182E-07 2.8409381932545116E-07 2.9003878630855098E-07 + 2.9609893134419311E-07 3.0227639021838718E-07 3.0857333753927575E-07 + 3.1499198743611540E-07 3.2153459427078620E-07 3.2820345336204917E-07 + 3.3500090172278577E-07 3.4192931881044473E-07 3.4899112729093741E-07 + 3.5618879381622088E-07 3.6352482981581016E-07 3.7100179230247575E-07 + 3.7862228469237189E-07 3.8638895763985852E-07 3.9430450988728133E-07 + 4.0237168912996874E-07 4.1059329289672859E-07 4.1897216944611397E-07 + 4.2751121867874393E-07 4.3621339306596416E-07 4.4508169859513983E-07 + 4.5411919573187970E-07 4.6332900039949100E-07 4.7271428497597717E-07 + 4.8227827930888783E-07 4.9202427174834351E-07 5.0195561019855674E-07 + 5.1207570318818149E-07 5.2238802095983182E-07 5.3289609657910228E-07 + 5.4360352706345066E-07 5.5451397453128566E-07 5.6563116737163244E-07 + 5.7695890143473440E-07 5.8850104124397156E-07 6.0026152122947358E-07 + 6.1224434698381497E-07 6.2445359654018619E-07 6.3689342167344832E-07 + 6.4956804922447096E-07 6.6248178244817677E-07 6.7563900238571537E-07 + 6.8904416926118877E-07 7.0270182390338341E-07 7.1661658919294043E-07 + 7.3079317153542621E-07 7.4523636236076653E-07 7.5995103964951088E-07 + 7.7494216948640799E-07 7.9021480764178543E-07 8.0577410118122063E-07 + 8.2162529010401654E-07 8.3777370901100007E-07 8.5422478880214691E-07 + 8.7098405840459311E-07 8.8805714653155690E-07 9.0544978347272962E-07 + 9.2316780291669876E-07 9.4121714380597537E-07 9.5960385222519841E-07 + 9.7833408332312919E-07 9.9741410326901956E-07 1.0168502912439768E-06 + 1.0366491414679531E-06 1.0568172652629883E-06 1.0773613931533577E-06 + 1.0982883770032837E-06 1.1196051921928874E-06 1.1413189398330543E-06 + 1.1634368490199075E-06 1.1859662791296127E-06 1.2089147221542144E-06 + 1.2322898050792535E-06 1.2560992923038960E-06 1.2803510881043567E-06 + 1.3050532391413475E-06 1.3302139370123993E-06 1.3558415208497956E-06 + 1.3819444799649748E-06 1.4085314565402199E-06 1.4356112483684625E-06 + 1.4631928116420898E-06 1.4912852637916114E-06 1.5198978863750781E-06 + 1.5490401280191573E-06 1.5787216074128065E-06 1.6089521163544483E-06 + 1.6397416228536381E-06 1.6711002742881775E-06 1.7030384006176676E-06 + 1.7355665176545152E-06 1.7686953303934079E-06 1.8024357364003079E-06 + 1.8367988292620371E-06 1.8717959020975121E-06 1.9074384511317534E-06 + 1.9437381793337761E-06 1.9807070001195057E-06 2.0183570411208792E-06 + 2.0567006480223197E-06 2.0957503884657791E-06 2.1355190560255810E-06 + 2.1760196742542933E-06 2.2172655008009299E-06 2.2592700316027359E-06 + 2.3020470051519013E-06 2.3456104068385193E-06 2.3899744733711699E-06 + 2.4351536972764864E-06 2.4811628314791462E-06 2.5280168939637096E-06 + 2.5757311725197502E-06 2.6243212295718043E-06 2.6738029070955989E-06 + 2.7241923316221524E-06 2.7755059193312876E-06 2.8277603812361507E-06 + 2.8809727284603804E-06 2.9351602776095513E-06 2.9903406562386160E-06 + 3.0465318084170212E-06 3.1037520003932535E-06 3.1620198263606066E-06 + 3.2213542143259594E-06 3.2817744320833845E-06 3.3433000932945202E-06 + 3.4059511636775324E-06 3.4697479673066814E-06 3.5347111930244090E-06 + 3.6008619009679731E-06 3.6682215292126988E-06 3.7368119005338861E-06 + 3.8066552292895227E-06 3.8777741284259472E-06 3.9501916166086702E-06 + 4.0239311254805284E-06 4.0990165070495573E-06 4.1754720412087815E-06 + 4.2533224433903456E-06 4.3325928723563707E-06 4.4133089381289470E-06 + 4.4954967100617950E-06 4.5791827250560838E-06 4.6643939959229907E-06 + 4.7511580198956397E-06 4.8395027872930574E-06 4.9294567903388506E-06 + 5.0210490321374293E-06 5.1143090358105090E-06 5.2092668537967888E-06 + 5.3059530773177581E-06 5.4043988460124824E-06 5.5046358577445163E-06 + 5.6066963785839185E-06 5.7106132529675592E-06 5.8164199140408252E-06 + 5.9241503941840723E-06 6.0338393357269836E-06 6.1455220018542932E-06 + 6.2592342877062625E-06 6.3750127316773609E-06 6.4928945269167149E-06 + 6.6129175330338794E-06 6.7351202880136703E-06 6.8595420203437240E-06 + 6.9862226613586084E-06 7.1152028578043363E-06 7.2465239846272505E-06 + 7.3802281579911739E-06 7.5163582485270695E-06 7.6549578948192116E-06 + 7.7960715171321377E-06 7.9397443313827381E-06 8.0860223633616967E-06 + 8.2349524632089291E-06 8.3865823201473911E-06 8.5409604774799760E-06 + 8.6981363478541010E-06 8.8581602287988405E-06 9.0210833185393852E-06 + 9.1869577320938774E-06 9.3558365176575649E-06 9.5277736732794253E-06 + 9.7028241638365384E-06 9.8810439383114081E-06 1.0062489947377716E-05 + 1.0247220161300009E-05 1.0435293588152872E-05 1.0626770292365364E-05 + 1.0821711413596346E-05 1.1020179185946874E-05 1.1222236957515394E-05 + 1.1427949210302079E-05 1.1637381580468315E-05 1.1850600878957927E-05 + 1.2067675112486309E-05 1.2288673504904260E-05 1.2513666518943113E-05 + 1.2742725878347871E-05 1.2975924590405520E-05 1.3213336968875175E-05 + 1.3455038657327684E-05 1.3701106652901562E-05 1.3951619330483014E-05 + 1.4206656467317379E-05 1.4466299268059878E-05 1.4730630390273225E-05 + 1.4999733970380452E-05 1.5273695650080699E-05 1.5552602603236417E-05 + 1.5836543563240451E-05 1.6125608850871262E-05 1.6419890402645325E-05 + 1.6719481799675443E-05 1.7024478297043876E-05 1.7334976853699622E-05 + 1.7651076162889198E-05 1.7972876683130222E-05 1.8300480669737751E-05 + 1.8633992206913072E-05 1.8973517240404875E-05 1.9319163610753434E-05 + 1.9671041087127456E-05 2.0029261401764933E-05 2.0393938285028327E-05 + 2.0765187501084980E-05 2.1143126884224353E-05 2.1527876375822744E-05 + 2.1919558061967695E-05 2.2318296211753512E-05 2.2724217316259736E-05 + 2.3137450128225142E-05 2.3558125702429257E-05 2.3986377436794178E-05 + 2.4422341114219527E-05 2.4866154945163696E-05 2.5317959610984450E-05 + 2.5777898308052395E-05 2.6246116792651748E-05 2.6722763426681124E-05 + 2.7207989224170177E-05 2.7701947898625346E-05 2.8204795911219872E-05 + 2.8716692519843744E-05 2.9237799829027700E-05 2.9768282840758092E-05 + 3.0308309506197522E-05 3.0858050778327711E-05 3.1417680665531528E-05 + 3.1987376286129809E-05 3.2567317923891222E-05 3.3157689084531441E-05 + 3.3758676553219756E-05 3.4370470453111348E-05 3.4993264304922507E-05 + 3.5627255087568706E-05 3.6272643299883206E-05 3.6929633023435914E-05 + 3.7598431986472826E-05 3.8279251628994263E-05 3.8972307168994239E-05 + 3.9677817669879613E-05 4.0396006109092010E-05 4.1127099447952092E-05 + 4.1871328702748945E-05 4.2628929017097103E-05 4.3400139735582247E-05 + 4.4185204478720439E-05 4.4984371219252713E-05 4.5797892359799215E-05 + 4.6626024811898098E-05 4.7469030076451748E-05 4.8327174325607640E-05 + 4.9200728486097715E-05 5.0089968324062428E-05 5.0995174531387534E-05 + 5.1916632813577237E-05 5.2854633979195014E-05 5.3809474030896675E-05 + 5.4781454258085231E-05 5.5770881331217509E-05 5.6778067397789502E-05 + 5.7803330180032738E-05 5.8846993074349721E-05 5.9909385252522075E-05 + 6.0990841764720275E-05 6.2091703644348001E-05 6.3212318014755240E-05 + 6.4353038197849952E-05 6.5514223824645934E-05 6.6696240947778168E-05 + 6.7899462156021726E-05 6.9124266690851204E-05 7.0371040565073715E-05 + 7.1640176683576202E-05 7.2932074966221259E-05 7.4247142472930761E-05 + 7.5585793530998224E-05 7.6948449864664898E-05 7.8335540727005138E-05 + 7.9747503034157603E-05 8.1184781501945962E-05 8.2647828784932539E-05 + 8.4137105617944740E-05 8.5653080960122369E-05 8.7196232141526959E-05 + 8.8767045012360009E-05 9.0366014094837759E-05 9.1993642737766518E-05 + 9.3650443273869907E-05 9.5336937179913206E-05 9.7053655239678725E-05 + 9.8801137709838207E-05 1.0057993448877643E-04 1.0239060528841868E-04 + 1.0423371980911230E-04 1.0610985791762072E-04 1.0801960982828135E-04 + 1.0996357628738446E-04 1.1194236876083291E-04 1.1395660962513514E-04 + 1.1600693236179714E-04 1.1809398175516803E-04 1.2021841409380249E-04 + 1.2238089737540481E-04 1.2458211151541198E-04 1.2682274855928743E-04 + 1.2910351289858508E-04 1.3142512149085271E-04 1.3378830408344525E-04 + 1.3619380344131050E-04 1.3864237557882584E-04 1.4113478999574946E-04 + 1.4367182991736581E-04 1.4625429253889454E-04 1.4888298927423919E-04 + 1.5155874600915675E-04 1.5428240335891745E-04 1.5705481693054410E-04 + 1.5987685758970385E-04 1.6274941173233826E-04 1.6567338156111641E-04 + 1.6864968536679101E-04 1.7167925781455179E-04 1.7476305023545727E-04 + 1.7790203092303626E-04 1.8109718543515556E-04 1.8434951690123727E-04 + 1.8766004633492949E-04 1.9102981295231994E-04 1.9445987449579147E-04 + 1.9795130756362369E-04 2.0150520794543286E-04 2.0512269096356289E-04 + 2.0880489182052467E-04 2.1255296595259167E-04 2.1636808938966588E-04 + 2.2025145912151395E-04 2.2420429347049767E-04 2.2822783247089981E-04 + 2.3232333825497529E-04 2.3649209544583357E-04 2.4073541155727858E-04 + 2.4505461740072985E-04 2.4945106749934171E-04 2.5392614050945782E-04 + 2.5848123964951808E-04 2.6311779313655632E-04 2.6783725463042204E-04 + 2.7264110368585451E-04 2.7753084621255728E-04 2.8250801494340318E-04 + 2.8757416991091696E-04 2.9273089893218569E-04 2.9797981810232913E-04 + 3.0332257229670045E-04 3.0876083568195153E-04 3.1429631223612626E-04 + 3.1993073627794373E-04 3.2566587300542039E-04 3.3150351904400659E-04 + 3.3744550300439109E-04 3.4349368605015755E-04 3.4964996247544824E-04 + 3.5591626029281970E-04 3.6229454183146976E-04 3.6878680434600404E-04 + 3.7539508063594447E-04 3.8212143967614588E-04 3.8896798725832548E-04 + 3.9593686664389673E-04 4.0303025922829147E-04 4.1025038521699082E-04 + 4.1759950431344875E-04 4.2507991641912204E-04 4.3269396234582494E-04 + 4.4044402454060443E-04 4.4833252782337075E-04 4.5636194013749321E-04 + 4.6453477331358407E-04 4.7285358384671508E-04 4.8132097368727234E-04 + 4.8993959104571183E-04 4.9871213121143885E-04 5.0764133738605386E-04 + 5.1673000153123344E-04 5.2598096523146399E-04 5.3539712057192415E-04 + 5.4498141103173528E-04 5.5473683239288466E-04 5.6466643366505701E-04 + 5.7477331802666457E-04 5.8506064378235944E-04 5.9553162533728917E-04 + 6.0618953418840676E-04 6.1703769993311155E-04 6.2807951129551724E-04 + 6.3931841717066677E-04 6.5075792768696887E-04 6.6240161528720472E-04 + 6.7425311582838853E-04 6.8631612970081895E-04 6.9859442296665798E-04 + 7.1109182851833712E-04 7.2381224725717329E-04 7.3675964929249176E-04 + 7.4993807516163420E-04 7.6335163707120189E-04 7.7700452015987543E-04 + 7.9090098378320505E-04 8.0504536282070762E-04 8.1944206900568754E-04 + 8.3409559227812854E-04 8.4901050216105631E-04 8.6419144916079194E-04 + 8.7964316619144509E-04 8.9537047002411494E-04 9.1137826276116267E-04 + 9.2767153333599725E-04 9.4425535903881579E-04 9.6113490706869131E-04 + 9.7831543611249681E-04 9.9580229795106991E-04 1.0136009390930944E-03 + 1.0317169024371615E-03 1.0501558289624593E-03 1.0689234594485895E-03 + 1.0880256362249736E-03 1.1074683049503362E-03 1.1272575164227958E-03 + 1.1473994284210050E-03 1.1679003075769254E-03 1.1887665312806924E-03 + 1.2100045896181193E-03 1.2316210873414089E-03 1.2536227458735398E-03 + 1.2760164053469631E-03 1.2988090266770858E-03 1.3220076936711813E-03 + 1.3456196151732408E-03 1.3696521272453788E-03 1.3941126953863881E-03 + 1.4190089167880108E-03 1.4443485226295768E-03 1.4701393804115897E-03 + 1.4963894963288828E-03 1.5231070176840301E-03 1.5503002353415719E-03 + 1.5779775862237817E-03 1.6061476558485875E-03 1.6348191809103145E-03 + 1.6640010519039744E-03 1.6937023157937122E-03 1.7239321787261795E-03 + 1.7547000087894836E-03 1.7860153388184357E-03 1.8178878692468733E-03 + 1.8503274710076824E-03 1.8833441884813821E-03 1.9169482424939064E-03 + 1.9511500333644440E-03 1.9859601440040254E-03 2.0213893430656616E-03 + 2.0574485881468623E-03 2.0941490290452371E-03 2.1315020110680969E-03 + 2.1695190783967682E-03 2.2082119775065001E-03 2.2475926606428127E-03 + 2.2876732893550434E-03 2.3284662380880718E-03 2.3699840978329612E-03 + 2.4122396798374412E-03 2.4552460193771409E-03 2.4990163795883791E-03 + 2.5435642553635037E-03 2.5889033773095942E-03 2.6350477157714987E-03 + 2.6820114849201351E-03 2.7298091469069087E-03 2.7784554160853224E-03 + 2.8279652633005749E-03 2.8783539202482020E-03 2.9296368839027182E-03 + 2.9818299210171576E-03 3.0349490726946176E-03 3.0890106590326268E-03 + 3.1440312838415170E-03 3.2000278394376299E-03 3.2570175115124661E-03 + 3.3150177840787871E-03 3.3740464444946025E-03 3.4341215885662097E-03 + 3.4952616257311734E-03 3.5574852843223391E-03 3.6208116169139958E-03 + 3.6852600057510534E-03 3.7508501682624890E-03 3.8176021626599513E-03 + 3.8855363936226234E-03 3.9546736180695015E-03 4.0250349510199358E-03 + 4.0966418715437511E-03 4.1695162288017664E-03 4.2436802481779249E-03 + 4.3191565375040710E-03 4.3959680933783555E-03 4.4741383075784609E-03 + 4.5536909735705193E-03 4.6346502931149808E-03 4.7170408829703163E-03 + 4.8008877816956086E-03 4.8862164565532410E-03 4.9730528105124145E-03 + 5.0614231893548172E-03 5.1513543888832480E-03 5.2428736622342287E-03 + 5.3360087272957329E-03 5.4307877742307640E-03 5.5272394731080282E-03 + 5.6253929816403817E-03 5.7252779530321245E-03 5.8269245439361052E-03 + 5.9303634225213418E-03 6.0356257766522496E-03 6.1427433221801315E-03 + 6.2517483113478543E-03 6.3626735413085762E-03 6.4755523627590570E-03 + 6.5904186886886346E-03 6.7073070032441897E-03 6.8262523707121438E-03 + 6.9472904446178539E-03 7.0704574769430715E-03 7.1957903274622002E-03 + 7.3233264731975027E-03 7.4531040179941534E-03 7.5851617022152044E-03 + 7.7195389125569759E-03 7.8562756919852757E-03 7.9954127497924594E-03 + 8.1369914717758299E-03 8.2810539305372098E-03 8.4276428959039265E-03 + 8.5768018454712696E-03 8.7285749752660409E-03 8.8830072105314153E-03 + 9.0401442166326076E-03 9.2000324100830217E-03 9.3627189696907035E-03 + 9.5282518478242532E-03 9.6966797817979143E-03 9.8680523053748040E-03 + 1.0042419760387668E-02 1.0219833308476268E-02 1.0400344942940029E-02 + 1.0584007500705239E-02 1.0770874674404931E-02 1.0961001024570573E-02 + 1.1154441991933490E-02 1.1351253909834472E-02 1.1551494016739865E-02 + 1.1755220468861649E-02 1.1962492352879703E-02 1.2173369698763582E-02 + 1.2387913492691213E-02 1.2606185690062128E-02 1.2828249228601495E-02 + 1.3054168041552679E-02 1.3284007070954111E-02 1.3517832280997294E-02 + 1.3755710671462132E-02 1.3997710291225016E-02 1.4243900251835893E-02 + 1.4494350741159276E-02 1.4749133037074324E-02 1.5008319521229236E-02 + 1.5271983692843712E-02 1.5540200182554646E-02 1.5813044766297826E-02 + 1.6090594379220478E-02 1.6372927129616709E-02 1.6660122312879257E-02 + 1.6952260425460348E-02 1.7249423178832827E-02 1.7551693513444395E-02 + 1.7859155612655303E-02 1.8171894916650760E-02 1.8489998136318762E-02 + 1.8813553267082554E-02 1.9142649602678041E-02 1.9477377748864454E-02 + 1.9817829637056972E-02 2.0164098537869653E-02 2.0516279074555180E-02 + 2.0874467236329214E-02 2.1238760391564870E-02 2.1609257300843124E-02 + 2.1986058129844631E-02 2.2369264462066375E-02 2.2758979311347811E-02 + 2.3155307134188778E-02 2.3558353841841531E-02 2.3968226812159099E-02 + 2.4385034901179516E-02 2.4808888454427181E-02 2.5239899317909292E-02 + 2.5678180848786789E-02 2.6123847925696300E-02 2.6577016958700045E-02 + 2.7037805898839570E-02 2.7506334247267099E-02 2.7982723063929436E-02 + 2.8467094975775778E-02 2.8959574184461823E-02 2.9460286473520763E-02 + 2.9969359214969796E-02 3.0486921375321618E-02 3.1013103520966843E-02 + 3.1548037822893803E-02 3.2091858060710819E-02 3.2644699625932951E-02 + 3.3206699524497035E-02 3.3777996378464181E-02 3.4358730426869752E-02 + 3.4949043525679013E-02 3.5549079146803775E-02 3.6158982376136316E-02 + 3.6778899910552561E-02 3.7408980053837616E-02 3.8049372711482593E-02 + 3.8700229384301878E-02 3.9361703160817905E-02 4.0033948708357255E-02 + 4.0717122262802941E-02 4.1411381616942661E-02 4.2116886107353584E-02 + 4.2833796599761241E-02 4.3562275472807062E-02 4.4302486600159972E-02 + 4.5054595330901843E-02 4.5818768468117201E-02 4.6595174245614920E-02 + 4.7383982302705963E-02 4.8185363656960890E-02 4.8999490674867655E-02 + 4.9826537040308559E-02 5.0666677720771464E-02 5.1520088931209199E-02 + 5.2386948095459643E-02 5.3267433805134101E-02 5.4161725775878904E-02 + 5.5070004800919288E-02 5.5992452701779327E-02 5.6929252276083961E-02 + 5.7880587242332381E-02 5.8846642181543729E-02 5.9827602475657264E-02 + 6.0823654242583562E-02 6.1834984267786282E-02 6.2861779932278816E-02 + 6.3904229136917387E-02 6.4962520222867040E-02 6.6036841888111347E-02 + 6.7127383099885918E-02 6.8234333002895858E-02 6.9357880823189680E-02 + 7.0498215767550290E-02 7.1655526918266016E-02 7.2830003123137269E-02 + 7.4021832880580771E-02 7.5231204219674316E-02 7.6458304575004604E-02 + 7.7703320656158814E-02 7.8966438311706938E-02 8.0247842387521612E-02 + 8.1547716579274787E-02 8.2866243278951313E-02 8.4203603415215586E-02 + 8.5559976287469752E-02 8.6935539393437525E-02 8.8330468250099700E-02 + 8.9744936207822090E-02 9.1179114257501206E-02 9.2633170830552766E-02 + 9.4107271591579042E-02 9.5601579223536987E-02 9.7116253205239006E-02 + 9.8651449581006509E-02 1.0020732072231410E-01 1.0178401508124553E-01 + 1.0338167693559136E-01 1.0500044612542318E-01 1.0664045778097297E-01 + 1.0830184204165456E-01 1.0998472376606160E-01 1.1168922223278598E-01 + 1.1341545083189970E-01 1.1516351674694493E-01 1.1693352062728953E-01 + 1.1872555625070640E-01 1.2053971017603395E-01 1.2237606138579780E-01 + 1.2423468091866631E-01 1.2611563149162813E-01 1.2801896711178468E-01 + 1.2994473267766693E-01 1.3189296356999144E-01 1.3386368523177741E-01 + 1.3585691273777431E-01 1.3787265035314919E-01 1.3991089108139756E-01 + 1.4197161620147608E-01 1.4405479479414227E-01 1.4616038325753833E-01 + 1.4828832481204160E-01 1.5043854899445916E-01 1.5261097114164199E-01 + 1.5480549186362483E-01 1.5702199650642740E-01 1.5926035460468413E-01 + 1.6152041932428091E-01 1.6380202689522227E-01 1.6610499603498841E-01 + 1.6842912736266233E-01 1.7077420280415012E-01 1.7313998498886096E-01 + 1.7552621663824500E-01 1.7793261994663465E-01 1.8035889595487756E-01 + 1.8280472391730393E-01 1.8526976066260606E-01 1.8775363994926678E-01 + 1.9025597181623929E-01 1.9277634192961940E-01 1.9531431092611348E-01 + 1.9786941375417913E-01 2.0044115901377674E-01 2.0302902829571692E-01 + 2.0563247552169181E-01 2.0825092628612391E-01 2.1088377720105986E-01 + 2.1353039524539572E-01 2.1619011711982189E-01 2.1886224860894765E-01 + 2.2154606395214785E-01 2.2424080522477680E-01 2.2694568173147564E-01 + 2.2965986941339783E-01 2.3238251027126847E-01 2.3511271180630836E-01 + 2.3784954648113432E-01 2.4059205120286678E-01 2.4333922683077219E-01 + 2.4609003771089075E-01 2.4884341124017761E-01 2.5159823746284371E-01 + 2.5435336870164360E-01 2.5710761922701547E-01 2.5985976496705521E-01 + 2.6260854326145094E-01 2.6535265266259955E-01 2.6809075278723560E-01 + 2.7082146422204062E-01 2.7354336848678340E-01 2.7625500805866698E-01 + 2.7895488646165317E-01 2.8164146842464977E-01 2.8431318011253714E-01 + 2.8696840943409618E-01 2.8960550643100730E-01 2.9222278375215471E-01 + 2.9481851721754482E-01 2.9739094647622549E-01 2.9993827576263649E-01 + 3.0245867475586985E-01 3.0495027954635190E-01 3.0741119371448150E-01 + 3.0983948952576335E-01 3.1223320924695214E-01 3.1459036658772283E-01 + 3.1690894827230620E-01 3.1918691574547037E-01 3.2142220701715402E-01 + 3.2361273864991269E-01 3.2575640789322707E-01 3.2785109496852732E-01 + 3.2989466550861379E-01 3.3188497315489984E-01 3.3381986231564736E-01 + 3.3569717108806274E-01 3.3751473434677842E-01 3.3927038700085682E-01 + 3.4096196742103341E-01 3.4258732103844208E-01 3.4414430411554436E-01 + 3.4563078768940619E-01 3.4704466168685927E-01 3.4838383921038368E-01 + 3.4964626099282659E-01 3.5082990001827069E-01 3.5193276630550485E-01 + 3.5295291184963556E-01 3.5388843571637968E-01 3.5473748928253962E-01 + 3.5549828161502567E-01 3.5616908497960648E-01 3.5674824046930631E-01 + 3.5723416374103506E-01 3.5762535084762781E-01 3.5792038415100635E-01 + 3.5811793830062605E-01 3.5821678625975784E-01 3.5821580536048242E-01 + 3.5811398336652722E-01 3.5791042452128002E-01 3.5760435555644254E-01 + 3.5719513163489897E-01 3.5668224219939554E-01 3.5606531669665048E-01 + 3.5534413014448757E-01 3.5451860850753464E-01 3.5358883384498246E-01 + 3.5255504919184233E-01 3.5141766313309875E-01 3.5017725402814931E-01 + 3.4883457384095623E-01 3.4739055152942938E-01 3.4584629594575572E-01 + 3.4420309819765765E-01 3.4246243341899762E-01 3.4062596189669836E-01 + 3.3869552949970216E-01 3.3667316735465730E-01 3.3456109071219764E-01 + 3.3236169694717677E-01 3.3007756263597482E-01 3.2771143965414123E-01 + 3.2526625023812600E-01 3.2274508095579801E-01 3.2015117553185113E-01 + 3.1748792647609270E-01 3.1475886546509213E-01 3.1196765243072705E-01 + 3.0911806331287223E-01 3.0621397643789566E-01 3.0325935748976385E-01 + 3.0025824304651488E-01 2.9721472266160154E-01 2.9413291947728171E-01 + 2.9101696936579319E-01 2.8787099860356713E-01 2.8469910009426863E-01 + 2.8150530816799896E-01 2.7829357199657395E-01 2.7506772767847487E-01 + 2.7183146906179978E-01 2.6858831738938288E-01 2.6534158986712864E-01 + 2.6209436727457930E-01 2.5884946075571852E-01 2.5560937794793920E-01 + 2.5237628862800904E-01 2.4915199007554323E-01 2.4593787237695544E-01 + 2.4273488391589687E-01 2.3954349731973457E-01 2.3636367615547149E-01 + 2.3319484269245092E-01 2.3003584707306765E-01 2.2688551164759585E-01 + 2.2374452431644834E-01 2.2061405372223256E-01 2.1749522430734072E-01 + 2.1438911595895777E-01 2.1129676358407859E-01 2.0821915663077326E-01 + 2.0515723857865797E-01 2.0211190642799182E-01 1.9908401022258759E-01 + 1.9607435264625020E-01 1.9308368873525253E-01 1.9011272575000451E-01 + 1.8716212324720805E-01 1.8423249338930128E-01 1.8132440152090357E-01 + 1.7843836703261609E-01 1.7557486452140422E-01 1.7273432524460458E-01 + 1.6991713885224657E-01 1.6712365537068755E-01 1.6435418740042931E-01 + 1.6160901248305296E-01 1.5888837558701513E-01 1.5619249165977561E-01 + 1.5352154819434996E-01 1.5087570776161913E-01 1.4825511046522205E-01 + 1.4565987628316915E-01 1.4309010726581575E-01 1.4054588957102540E-01 + 1.3802729532639527E-01 1.3553438431022125E-01 1.3306720545348252E-01 + 1.3062579816901690E-01 1.2821019351801524E-01 1.2582041522671675E-01 + 1.2345648056785760E-01 1.2111840112216737E-01 1.1880618343522352E-01 + 1.1651982958438463E-01 1.1425933766953257E-01 1.1202470224006350E-01 + 1.0981591466913407E-01 1.0763296348465942E-01 1.0547583466504774E-01 + 1.0334451190621034E-01 1.0123897686501208E-01 9.9159209383068728E-02 + 9.7105187693639447E-02 9.5076888613328872E-02 9.3074287719386556E-02 + 9.1097359512563161E-02 8.9146077564764170E-02 8.7220414650114153E-02 + 8.5320342857502757E-02 8.3445833682245979E-02 8.1596858094139607E-02 + 7.9773386578935346E-02 7.7975389150117647E-02 7.6202835327828650E-02 + 7.4455694081876592E-02 7.2733933735973158E-02 7.1037521830699252E-02 + 6.9366424943178448E-02 6.7720608462057630E-02 6.6100036317131516E-02 + 6.4504670663804511E-02 6.2934471523526159E-02 6.1389396382341997E-02 + 5.9869399750745393E-02 5.8374432689053048E-02 5.6904442303520222E-02 + 5.5459371219329992E-02 5.4039157037385335E-02 5.2643731782481322E-02 + 5.1273021350898527E-02 4.9926944965729594E-02 4.8605414648310426E-02 + 4.7308334713967115E-02 4.6035601299950067E-02 4.4787101932849564E-02 + 4.3562715142103567E-02 4.2362310125353679E-02 4.1185746470418096E-02 + 4.0032873937671055E-02 3.8903532305510906E-02 3.7797551280544878E-02 + 3.6714750473085561E-02 3.5654939437539467E-02 3.4617917776355721E-02 + 3.3603475305364630E-02 3.2611392277602388E-02 3.1641439662087024E-02 + 3.0693379473492047E-02 2.9766965148252132E-02 2.8861941962325274E-02 + 2.7978047485626874E-02 2.7115012068030582E-02 2.6272559351788551E-02 + 2.5450406805257154E-02 2.4648266272904513E-02 2.3865844536721557E-02 + 2.3102843884343690E-02 2.2358962679412304E-02 2.1633895929954194E-02 + 2.0927335850824156E-02 2.0238972416541875E-02 1.9568493901148336E-02 + 1.8915587402007356E-02 1.8279939344784550E-02 1.7661235967141534E-02 + 1.7059163778991037E-02 1.6473409997462871E-02 1.5903662955034804E-02 + 1.5349612479582529E-02 1.4810950245398691E-02 1.4287370094524094E-02 + 1.3778568328020126E-02 1.3284243967092596E-02 1.2804098984248629E-02 + 1.2337838504931977E-02 1.1885170980333502E-02 1.1445808332310365E-02 + 1.1019466071569823E-02 1.0605863390476016E-02 1.0204723232019160E-02 + 9.8157723366452832E-03 9.4387412687760280E-03 9.0733644249533073E-03 + 8.7193800256185425E-03 8.3765300925824938E-03 8.0445604142578651E-03 + 7.7232205007127727E-03 7.4122635305619048E-03 7.1114462916435570E-03 + 6.8205291173377616E-03 6.5392758202667432E-03 6.2674536249859364E-03 + 6.0048331011266229E-03 5.7511880982919570E-03 5.5062956838421127E-03 + 5.2699360845338342E-03 5.0418926328084116E-03 4.8219517183542126E-03 + 4.6099027454066304E-03 4.4055380960937897E-03 4.2086530999910637E-03 + 4.0190460099145389E-03 3.8365179838631609E-03 3.6608730729124680E-03 + 3.4919182147705174E-03 3.3294632326283068E-03 3.1733208388724922E-03 + 3.0233066431777597E-03 2.8792391644581051E-03 2.7409398461305848E-03 + 2.6082330741301085E-03 2.4809461971091349E-03 2.3589095482602078E-03 + 2.2419564682109581E-03 2.1299233284598575E-03 2.0226495548449812E-03 + 1.9199776505668068E-03 1.8217532183182027E-03 1.7278249811098646E-03 + 1.6380448014163339E-03 1.5522676983057188E-03 1.4703518622549313E-03 + 1.3921586673908133E-03 1.3175526809354910E-03 1.2464016696715084E-03 + 1.1785766032780349E-03 1.1139516544237951E-03 1.0524041955347655E-03 + 9.9381479218531668E-04 9.3806719308993825E-04 8.8504831669899736E-04 + 8.3464823442617976E-04 7.8676015055724566E-04 7.4128037890947235E-04 + 6.9810831632889083E-04 6.5714641312796451E-04 6.1830014057998983E-04 + 5.8147795559813583E-04 5.4659126273692371E-04 5.1355437366209459E-04 + 4.8228446424130060E-04 4.5270152941312138E-04 4.2472833599549811E-04 + 3.9829037359704841E-04 3.7331580379585240E-04 3.4973540775041199E-04 + 3.2748253240659828E-04 3.0649303546262179E-04 2.8670522925154207E-04 + 2.6805982369760081E-04 2.5049986849881058E-04 2.3397069468389232E-04 + 2.1841985568682716E-04 2.0379706807711060E-04 1.9005415207827529E-04 + 1.7714497200150084E-04 1.6502537671516773E-04 1.5365314026509635E-04 + 1.4298790275401433E-04 1.3299111158252862E-04 1.2362596314758410E-04 + 1.1485734508813266E-04 1.0665177916150316E-04 9.8977364827820661E-05 + 9.1803723613764464E-05 8.5101944321030182E-05 7.8844529139068803E-05 + 7.3005340716034240E-05 6.7559550236410019E-05 6.2483586548493957E-05 + 5.7755086379826670E-05 5.3352845673745868E-05 4.9256772075555280E-05 + 4.5447838592309296E-05 4.1908038445931984E-05 3.8620341135327336E-05 + 3.5568649719281992E-05 3.2737759328318168E-05 3.0113316910224172E-05 + 2.7681782210763604E-05 2.5430389988044783E-05 2.3347113456210588E-05 + 2.1420628951485740E-05 1.9640281811186090E-05 1.7996053454046160E-05 + 1.6478529648155616E-05 1.5078869950903368E-05 1.3788778303602940E-05 + 1.2600474761911997E-05 1.1506668341751938E-05 1.0500530959176915E-05 + 9.5756724415262022E-06 8.7261165862159392E-06 7.9462782426771860E-06 + 7.2309413922204673E-06 6.5752381999981584E-06 5.9746290127363699E-06 + 5.4248832755128869E-06 4.9220613405600825E-06 4.4624971408663955E-06 + 4.0427817012307081E-06 3.6597474593845908E-06 3.3104533698337003E-06 + 2.9921707631750083E-06 2.7023699338163020E-06 2.4387074292539521E-06 + 2.1990140143486610E-06 1.9812832843729536E-06 1.7836609009833841E-06 + 1.6044344256912222E-06 1.4420237258631260E-06 1.2949719287743960E-06 + 1.1619368997577389E-06 1.0416832210366371E-06 9.3307464840640435E-07 + 8.3506702351122978E-07 7.4670161999660746E-07 6.6709890251060964E-07 + 5.9545268063960880E-07 5.3102462067436340E-07 4.7313910666969744E-07 + 4.2117883297833869E-07 3.7457882178131952E-07 3.3282541603874767E-07 + 2.9544840089456593E-07 2.6202100970118538E-07 2.3215398361257234E-07 + 2.0549342210482927E-07 1.8171787240777595E-07 1.6053563049873507E-07 + 1.4168224066977191E-07 1.2491818129783746E-07 1.1002672504249680E-07 + 9.6811962274852624E-08 8.5096977103559221E-08 7.4722165909142765E-08 + 6.5543688825990731E-08 5.7432045122149164E-08 5.0270763920345324E-08 + 4.3955202179378739E-08 3.8391442313150375E-08 3.3495282265175060E-08 + 2.9191311279503978E-08 2.5412065014704277E-08 2.2097254036054170E-08 + 1.9193060092617250E-08 1.6651494940602255E-08 1.4429816812663328E-08 + 1.2489999954857278E-08 1.0798252959187491E-08 9.3245819103860763E-09 + 8.0423946412066013E-09 6.9281426514229567E-09 5.9609974923846333E-09 + 5.1225586518036505E-09 4.3965901928990983E-09 3.7687836085677864E-09 + 3.2265445453563980E-09 2.7588012341612929E-09 2.3558326352607538E-09 + 2.0091144649742257E-09 1.7111814204291626E-09 1.4555040580791829E-09 + 1.2363789112355735E-09 1.0488305524188967E-09 8.8852441827299887E-10 + 7.5168931856602480E-10 6.3504864687756294E-10 5.3575939937284720E-10 + 4.5135819001671570E-10 3.7971352609202462E-10 3.1898367735595809E-10 + 2.6757953597569160E-10 2.2413192290032446E-10 1.8746284990188614E-10 + 1.5656029549262439E-10 1.3055609762143665E-10 1.0870660677652204E-10 + 9.0375780166225572E-11 7.5020431292409471E-11 6.2177379732358693E-11 + 5.1452273553194768E-11 4.2509881729546119E-11 3.5065676439192664E-11 + 2.8878545377172748E-11 2.3744492447727574E-11 1.9491201543934523E-11 + 1.5973352773045594E-11 1.3068593585678803E-11 1.0674078962059726E-11 + 8.7035052306625146E-12 7.0845713658025896E-12 5.7568098432504258E-12 + 4.6697364298925179E-12 3.7812747393744317E-12 3.0564170869656845E-12 + 2.4660882024664589E-12 1.9861827816600272E-12 1.5967517398606657E-12 + 1.2813154346777254E-12 1.0262851027311057E-12 8.2047635501692621E-13 + 6.5470084143996638E-13 5.2142416579679184E-13 4.1447984326434928E-13 + 3.2883057458511283E-13 2.6036939263671444E-13 2.0575434286622695E-13 + 1.6227131131562077E-13 1.2772043231312712E-13 1.0032220973724394E-13 + 7.8640086418262196E-14 6.1516709238006825E-14 4.8021574693698823E-14 + 3.7408111513603147E-14 2.9078572452467807E-14 2.2555374595896911E-14 + 1.7457753278721228E-14 1.3482785077876167E-14 1.0389995478077565E-14 + 7.9889012259746541E-15 6.1289499635969110E-15 4.6914138010258516E-15 + 3.5828719144575534E-15 2.7299824903377766E-15 2.0752984721987588E-15 + 1.5739263880588184E-15 1.1908645579501133E-15 8.9888748573802253E-16 + 6.7686832239042978E-16 5.0845185335352992E-16 3.8100725883766528E-16 + 2.8480370895728650E-16 2.1236297830108080E-16 1.5795201150220883E-16 + 1.1718688425780123E-16 8.6724374140594107E-17 6.4019075660991110E-17 + 4.7140595799794706E-17 3.4632192333731104E-17 2.5378596996035424E-17 + 1.8547711219094620E-17 1.3518788944268119E-17 9.8265158598995643E-18 + + + -1.0950112094502708E-14 4.1757662869016216E-12 1.6851188240655852E-11 + 3.8250919287098388E-11 6.8609583610228620E-11 1.0816082604011515E-10 + 1.5714174714136689E-10 2.1580667823738234E-10 2.8439993809953673E-10 + 3.6318178956317480E-10 4.5240784939997821E-10 5.5235171957703336E-10 + 6.6328187849722894E-10 7.8547468357826922E-10 9.1921962971861483E-10 + 1.0647976804426302E-09 1.2225067582085385E-09 1.3926527365209467E-09 + 1.5755364080891152E-09 1.7714782435985328E-09 1.9807895575248438E-09 + 2.2038034518923366E-09 2.4408498325371095E-09 2.6922661755531769E-09 + 2.9584053086637653E-09 3.2396173128998912E-09 3.5362596258064037E-09 + 3.8487073397525685E-09 4.1773296016119235E-09 4.5225099056914802E-09 + 4.8846416539849413E-09 5.2641191671760290E-09 5.6613514938481864E-09 + 6.0767523665061650E-09 6.5107397810430703E-09 6.9637551723272683E-09 + 7.4362305284783836E-09 7.9286121757419292E-09 8.4413630187231364E-09 + 8.9749452788984671E-09 9.5298373373426000E-09 1.0106524112121000E-08 + 1.0705494426768505E-08 1.1327258863709829E-08 1.1972325555388101E-08 + 1.2641226824837511E-08 1.3334490903926851E-08 1.4052666365740187E-08 + 1.4796306719068623E-08 1.5565977975173363E-08 1.6362260652019709E-08 + 1.7185739397263738E-08 1.8037021685398366E-08 1.8916714547407038E-08 + 1.9825443615610661E-08 2.0763846873709006E-08 2.1732569168451029E-08 + 2.2732276801127798E-08 2.3763642399613159E-08 2.4827352384614548E-08 + 2.5924109235766588E-08 2.7054628611888687E-08 2.8219634077209796E-08 + 2.9419872759563250E-08 3.0656099467850008E-08 3.1929086575352068E-08 + 3.3239619087225202E-08 3.4588501109414881E-08 3.5976547253572246E-08 + 3.7404588925267952E-08 3.8873482117885726E-08 4.0384083999903696E-08 + 4.1937280409085928E-08 4.3533967094687375E-08 4.5175063639663820E-08 + 4.6861508127773274E-08 4.8594239018499992E-08 5.0374237064246666E-08 + 5.2202487857566146E-08 5.4079996588710170E-08 5.6007791705734118E-08 + 5.7986916896702140E-08 6.0018445860671410E-08 6.2103457562658378E-08 + 6.4243060068789472E-08 6.6438384871776943E-08 6.8690579959882919E-08 + 7.1000817843020909E-08 7.3370295239775518E-08 7.5800222890061257E-08 + 7.8291846833624781E-08 8.0846427994048997E-08 8.3465251640522434E-08 + 8.6149632050495369E-08 8.8900905317562640E-08 9.1720438337785189E-08 + 9.4609609796181757E-08 9.7569842525473210E-08 1.0060257251236286E-07 + 1.0370926951650132E-07 1.0689143234902406E-07 1.1015057903425985E-07 + 1.1348826915388142E-07 1.1690607803876950E-07 1.2040562370956133E-07 + 1.2398854534931763E-07 1.2765652258398650E-07 1.3141124829081488E-07 + 1.3525447095561205E-07 1.3918795729915678E-07 1.4321350908674125E-07 + 1.4733295966135268E-07 1.5154819147073245E-07 1.5586109612933465E-07 + 1.6027362876322388E-07 1.6478775906244071E-07 1.6940550824479349E-07 + 1.7412892895318178E-07 1.7896011218820177E-07 1.8390118936324537E-07 + 1.8895432992247445E-07 1.9412174719461509E-07 1.9940569558313728E-07 + 2.0480846784134585E-07 2.1033240322910742E-07 2.1597988520582664E-07 + 2.2175333437850751E-07 2.2765522639720131E-07 2.3368807851761785E-07 + 2.3985444991721504E-07 2.4615696181404373E-07 2.5259826841125873E-07 + 2.5918108207891602E-07 2.6590816068269979E-07 2.7278231898460738E-07 + 2.7980642285569852E-07 2.8698338375616631E-07 2.9431618169007729E-07 + 3.0180783464966559E-07 3.0946143571498627E-07 3.1728011530462480E-07 + 3.2526708102698324E-07 3.3342558348175270E-07 3.4175894213884165E-07 + 3.5027054101391000E-07 3.5896382145699521E-07 3.6784228418481731E-07 + 3.7690950785446758E-07 3.8616912190716483E-07 3.9562483985917407E-07 + 4.0528042565969773E-07 4.1513972652890379E-07 4.2520665700778040E-07 + 4.3548519961029258E-07 4.4597941736185092E-07 4.5669344525423397E-07 + 4.6763148734439063E-07 4.7879784117377059E-07 4.9019686881082732E-07 + 5.0183302179139542E-07 5.1371082515957755E-07 5.2583489714567068E-07 + 5.3820993411003988E-07 5.5084072539484887E-07 5.6373214052844619E-07 + 5.7688914313731552E-07 5.9031678608046283E-07 6.0402021940019165E-07 + 6.1800468143448681E-07 6.3227551631297463E-07 6.4683815417287859E-07 + 6.6169813560570592E-07 6.7686109587973905E-07 6.9233278131675055E-07 + 7.0811903432547469E-07 7.2422580876811034E-07 7.4065917355208473E-07 + 7.5742529808438885E-07 7.7453047419697705E-07 7.9198110191384802E-07 + 8.0978370385566022E-07 8.2794491858683230E-07 8.4647151266748596E-07 + 8.6537036932002809E-07 8.8464849856094982E-07 9.0431304444335944E-07 + 9.2437127368086782E-07 9.4483059337582932E-07 9.6569854616782300E-07 + 9.8698280351078841E-07 1.0086911859177080E-06 1.0308316558080367E-06 + 1.0534123139336711E-06 1.0764414225576561E-06 1.0999273846801766E-06 + 1.1238787547624971E-06 1.1483042525721024E-06 1.1732127507873094E-06 + 1.1986132884613746E-06 1.2245150636768685E-06 1.2509274471627490E-06 + 1.2778599770859025E-06 1.3053223710594255E-06 1.3333245213406465E-06 + 1.3618764952637146E-06 1.3909885496853885E-06 1.4206711289376128E-06 + 1.4509348654045816E-06 1.4817905817874321E-06 1.5132493059046879E-06 + 1.5453222572548565E-06 1.5780208718844068E-06 1.6113567812020275E-06 + 1.6453418336842531E-06 1.6799880966372841E-06 1.7153078517862290E-06 + 1.7513136034989670E-06 1.7880180913220808E-06 1.8254342811631081E-06 + 1.8635753735659031E-06 1.9024548095743424E-06 1.9420862782087631E-06 + 1.9824837126254490E-06 2.0236613035993073E-06 2.0656334939975181E-06 + 2.1084149940178580E-06 2.1520207801041032E-06 2.1964661005359261E-06 + 2.2417664775850487E-06 2.2879377171758361E-06 2.3349959160722567E-06 + 2.3829574562347473E-06 2.4318390230331859E-06 2.4816575976079453E-06 + 2.5324304783516334E-06 2.5841752689569713E-06 2.6369098963347131E-06 + 2.6906526112909046E-06 2.7454219948671800E-06 2.8012369710077206E-06 + 2.8581167963180314E-06 2.9160810801621665E-06 2.9751497974794399E-06 + 3.0353432699646749E-06 3.0966821914715824E-06 3.1591876378319953E-06 + 3.2228810591021006E-06 3.2877842961485483E-06 3.3539195864446130E-06 + 3.4213095675670452E-06 3.4899772862380637E-06 3.5599462125052314E-06 + 3.6312402340950359E-06 3.7038836706353010E-06 3.7779012896888658E-06 + 3.8533183005729923E-06 3.9301603656029038E-06 4.0084536185578253E-06 + 4.0882246604373758E-06 4.1695005728235596E-06 4.2523089319075478E-06 + 4.3366778127121352E-06 4.4226357875596026E-06 4.5102119522251945E-06 + 4.5994359333565257E-06 4.6903378816936119E-06 4.7829484973171635E-06 + 4.8772990431410741E-06 4.9734213296115852E-06 5.0713477573010037E-06 + 5.1711113017900138E-06 5.2727455395620348E-06 5.3762846515430201E-06 + 5.4817634364997644E-06 5.5892173160751754E-06 5.6986823583831510E-06 + 5.8101952800185997E-06 5.9237934582106627E-06 6.0395149428765052E-06 + 6.1573984772430502E-06 6.2774835005305352E-06 6.3998101509256824E-06 + 6.5244193125097143E-06 6.6513525914140314E-06 6.7806523482666278E-06 + 6.9123617043841312E-06 7.0465245674827436E-06 7.1831856244841594E-06 + 7.3223903740938720E-06 7.4641851371400614E-06 7.6086170630442287E-06 + 7.7557341572054735E-06 7.9055852842973439E-06 8.0582201934130803E-06 + 8.2136895296256230E-06 8.3720448439899501E-06 8.5333386242304552E-06 + 8.6976242994894424E-06 8.8649562631119253E-06 9.0353898834604375E-06 + 9.2089815272145338E-06 9.3857885860374320E-06 9.5658694655396361E-06 + 9.7492836358562987E-06 9.9360916380306609E-06 1.0126355094273041E-05 + 1.0320136744210227E-05 1.0517500452029978E-05 1.0718511231443702E-05 + 1.0923235265434355E-05 1.1131739930759432E-05 1.1344093810769933E-05 + 1.1560366729006782E-05 1.1780629760154556E-05 1.2004955260278808E-05 + 1.2233416877931982E-05 1.2466089601352893E-05 1.2703049755429945E-05 + 1.2944375040696166E-05 1.3190144556006367E-05 1.3440438820580017E-05 + 1.3695339796327955E-05 1.3954930927705125E-05 1.4219297154856706E-05 + 1.4488524946153481E-05 1.4762702319701329E-05 1.5041918874859545E-05 + 1.5326265830253604E-05 1.5615836033099309E-05 1.5910723998471728E-05 + 1.6211025951433335E-05 1.6516839836244300E-05 1.6828265353490160E-05 + 1.7145404002344426E-05 1.7468359102501783E-05 1.7797235829405042E-05 + 1.8132141243178390E-05 1.8473184334168854E-05 1.8820476041542909E-05 + 1.9174129304938569E-05 1.9534259081714276E-05 1.9900982404529280E-05 + 2.0274418394927715E-05 2.0654688325952130E-05 2.1041915637838486E-05 + 2.1436225985882279E-05 2.1837747292070429E-05 2.2246609760349099E-05 + 2.2662945937149690E-05 2.3086890752653907E-05 2.3518581549785495E-05 + 2.3958158141294944E-05 2.4405762847768370E-05 2.4861540541434168E-05 + 2.5325638692363980E-05 2.5798207422408916E-05 2.6279399539486419E-05 + 2.6769370597842603E-05 2.7268278938301185E-05 2.7776285743747965E-05 + 2.8293555089050027E-05 2.8820253988241983E-05 2.9356552457568877E-05 + 2.9902623544420131E-05 3.0458643425939477E-05 3.1024791417451457E-05 + 3.1601250053835193E-05 3.2188205151404020E-05 3.2785845850014710E-05 + 3.3394364681318217E-05 3.4013957627917625E-05 3.4644824190899376E-05 + 3.5287167438279993E-05 3.5941194089412057E-05 3.6607114561376787E-05 + 3.7285143038499014E-05 3.7975497558602170E-05 3.8678400052107724E-05 + 3.9394076434260833E-05 4.0122756668384450E-05 4.0864674832125903E-05 + 4.1620069208570154E-05 4.2389182343919820E-05 4.3172261128376978E-05 + 4.3969556880007357E-05 4.4781325414936443E-05 4.5607827133233405E-05 + 4.6449327110727328E-05 4.7306095151006700E-05 4.8178405909819610E-05 + 4.9066538948136737E-05 4.9970778850506310E-05 5.0891415281050912E-05 + 5.1828743106765133E-05 5.2783062461563258E-05 5.3754678867432206E-05 + 5.4743903310394882E-05 5.5751052350927245E-05 5.6776448208925378E-05 + 5.7820418886015364E-05 5.8883298245477738E-05 5.9965426132982239E-05 + 6.1067148488155003E-05 6.2188817430673966E-05 6.3330791390879971E-05 + 6.4493435212611820E-05 6.5677120276671111E-05 6.6882224610585557E-05 + 6.8109133003403641E-05 6.9358237138592477E-05 7.0629935707426449E-05 + 7.1924634535883823E-05 7.3242746722044117E-05 7.4584692746117228E-05 + 7.5950900624585221E-05 7.7341806024084001E-05 7.8757852419006561E-05 + 8.0199491207509857E-05 8.1667181879660464E-05 8.3161392133580583E-05 + 8.4682598047967350E-05 8.6231284214578747E-05 8.7807943898712224E-05 + 8.9413079189538383E-05 9.1047201162967751E-05 9.2710830029469037E-05 + 9.4404495319804391E-05 9.6128736029993422E-05 9.7884100803129190E-05 + 9.9671148090980330E-05 1.0149044634316644E-04 1.0334257416764662E-04 + 1.0522812053665836E-04 1.0714768495244266E-04 1.0910187762557396E-04 + 1.1109131970405182E-04 1.1311664343136852E-04 1.1517849236609780E-04 + 1.1727752157726530E-04 1.1941439783467009E-04 1.2158979985641449E-04 + 1.2380441847976393E-04 1.2605895690429107E-04 1.2835413090279057E-04 + 1.3069066905277259E-04 1.3306931295141590E-04 1.3549081746116838E-04 + 1.3795595094270898E-04 1.4046549549215300E-04 1.4302024719576928E-04 + 1.4562101636315448E-04 1.4826862780195629E-04 1.5096392106374060E-04 + 1.5370775069781042E-04 1.5650098655064679E-04 1.5934451400664165E-04 + 1.6223923427791134E-04 1.6518606469536864E-04 1.6818593897098419E-04 + 1.7123980752881495E-04 1.7434863777173091E-04 1.7751341438831944E-04 + 1.8073513968025362E-04 1.8401483384923215E-04 1.8735353535004958E-04 + 1.9075230117510545E-04 1.9421220723153256E-04 1.9773434863998480E-04 + 2.0131984009368644E-04 2.0496981621131644E-04 2.0868543188673792E-04 + 2.1246786265515587E-04 2.1631830504977869E-04 2.2023797699088077E-04 + 2.2422811816628446E-04 2.2828999040612816E-04 2.3242487809426110E-04 + 2.3663408856189631E-04 2.4091895249926749E-04 2.4528082436971969E-04 + 2.4972108283724965E-04 2.5424113120321609E-04 2.5884239782670421E-04 + 2.6352633660065147E-04 2.6829442737915873E-04 2.7314817646273887E-04 + 2.7808911705578821E-04 2.8311880975440557E-04 2.8823884302180358E-04 + 2.9345083371412275E-04 2.9875642755658764E-04 3.0415729966860053E-04 + 3.0965515509513020E-04 3.1525172933629400E-04 3.2094878888846556E-04 + 3.2674813179571363E-04 3.3265158821907414E-04 3.3866102100629900E-04 + 3.4477832627148564E-04 3.5100543398942658E-04 3.5734430860454963E-04 + 3.6379694964063831E-04 3.7036539232914226E-04 3.7705170825029689E-04 + 3.8385800596395768E-04 3.9078643169171309E-04 3.9783916997377939E-04 + 4.0501844434977008E-04 4.1232651807840366E-04 4.1976569480879248E-04 + 4.2733831933321789E-04 4.3504677830446468E-04 4.4289350097732183E-04 + 4.5088095998550788E-04 4.5901167210184586E-04 4.6728819902906618E-04 + 4.7571314820443983E-04 4.8428917359598866E-04 4.9301897656812445E-04 + 5.0190530669091959E-04 5.1095096262071071E-04 5.2015879296349343E-04 + 5.2953169717891830E-04 5.3907262646186538E-04 5.4878458469546649E-04 + 5.5867062937009775E-04 5.6873387253569461E-04 5.7897748179966423E-04 + 5.8940468128311973E-04 6.0001875264950404E-04 6.1082303612383106E-04 + 6.2182093153963453E-04 6.3301589939072911E-04 6.4441146193336689E-04 + 6.5601120425616555E-04 6.6781877542706775E-04 6.7983788961659196E-04 + 6.9207232726783280E-04 7.0452593626789254E-04 7.1720263315057430E-04 + 7.3010640433232620E-04 7.4324130733243322E-04 7.5661147206793360E-04 + 7.7022110211620565E-04 7.8407447605033582E-04 7.9817594875105356E-04 + 8.1252995278861383E-04 8.2714099978496388E-04 8.4201368184245670E-04 + 8.5715267295681508E-04 8.7256273049173688E-04 8.8824869664488252E-04 + 9.0421549997960144E-04 9.2046815694420169E-04 9.3701177344610964E-04 + 9.5385154644076430E-04 9.7099276555229349E-04 9.8844081472145907E-04 + 1.0062011738892443E-03 1.0242794207002499E-03 1.0426812322413324E-03 + 1.0614123868075622E-03 1.0804787657203386E-03 1.0998863551302215E-03 + 1.1196412479137924E-03 1.1397496455491951E-03 1.1602178600574561E-03 + 1.1810523159637596E-03 1.2022595523048314E-03 1.2238462246645231E-03 + 1.2458191072370192E-03 1.2681850949469069E-03 1.2909512055920534E-03 + 1.3141245820227315E-03 1.3377124943708260E-03 1.3617223423143913E-03 + 1.3861616573706127E-03 1.4110381052518375E-03 1.4363594882368881E-03 + 1.4621337476093395E-03 1.4883689661217487E-03 1.5150733705095584E-03 + 1.5422553340478605E-03 1.5699233791582503E-03 1.5980861800584598E-03 + 1.6267525654505861E-03 1.6559315212748738E-03 1.6856321934941409E-03 + 1.7158638909449998E-03 1.7466360882105072E-03 1.7779584285859413E-03 + 1.8098407270638150E-03 1.8422929733710809E-03 1.8753253350823054E-03 + 1.9089481607803432E-03 1.9431719832560695E-03 1.9780075227726259E-03 + 2.0134656904187832E-03 2.0495575914555963E-03 2.0862945287963949E-03 + 2.1236880064825032E-03 2.1617497332678654E-03 2.2004916262394775E-03 + 2.2399258145268707E-03 2.2800646430291348E-03 2.3209206762684334E-03 + 2.3625067022764188E-03 2.4048357365412964E-03 2.4479210260443568E-03 + 2.4917760533777551E-03 2.5364145408862306E-03 2.5818504549343269E-03 + 2.6280980102223639E-03 2.6751716741872838E-03 2.7230861714651680E-03 + 2.7718564884536508E-03 2.8214978779419033E-03 2.8720258638185760E-03 + 2.9234562458795924E-03 2.9758051046932729E-03 3.0290888065812420E-03 + 3.0833240086567144E-03 3.1385276639775434E-03 3.1947170267699197E-03 + 3.2519096577578845E-03 3.3101234295668117E-03 3.3693765322578392E-03 + 3.4296874788952792E-03 3.4910751112998809E-03 3.5535586058097505E-03 + 3.6171574792167524E-03 3.6818915947538122E-03 3.7477811682302426E-03 + 3.8148467742283843E-03 3.8831093524541289E-03 3.9525902141581172E-03 + 4.0233110487029149E-03 4.0952939302124390E-03 4.1685613243692436E-03 + 4.2431360952963175E-03 4.3190415125907173E-03 4.3963012584579391E-03 + 4.4749394349780751E-03 4.5549805715026153E-03 4.6364496321616320E-03 + 4.7193720235194220E-03 4.8037736023624680E-03 4.8896806836147113E-03 + 4.9771200483801356E-03 5.0661189521540723E-03 5.1567051331452233E-03 + 5.2489068207633906E-03 5.3427527442395772E-03 5.4382721414010585E-03 + 5.5354947676039918E-03 5.6344509048123007E-03 5.7351713708140286E-03 + 5.8376875286554625E-03 5.9420312961619634E-03 6.0482351556804563E-03 + 6.1563321639593292E-03 6.2663559622146191E-03 6.3783407863473376E-03 + 6.4923214773639276E-03 6.6083334919580005E-03 6.7264129132635240E-03 + 6.8465964618256488E-03 6.9689215067217881E-03 7.0934260768982073E-03 + 7.2201488726843111E-03 7.3491292775149800E-03 7.4804073698496809E-03 + 7.6140239352763175E-03 7.7500204788645286E-03 7.8884392376732046E-03 + 8.0293231935133942E-03 8.1727160859183939E-03 8.3186624253083520E-03 + 8.4672075064130443E-03 8.6183974219022456E-03 8.7722790762441959E-03 + 8.9289001998147221E-03 9.0883093632217939E-03 9.2505559918858293E-03 + 9.4156903808639038E-03 9.5837637099205897E-03 9.7548280588511983E-03 + 9.9289364230642670E-03 1.0106142729415669E-02 1.0286501852330853E-02 + 1.0470069630159482E-02 1.0656902881847587E-02 1.0847059423838233E-02 + 1.1040598087306185E-02 1.1237578735619405E-02 1.1438062282155041E-02 + 1.1642110708346061E-02 1.1849787082092408E-02 1.2061155576404123E-02 + 1.2276281488417543E-02 1.2495231258685669E-02 1.2718072490788178E-02 + 1.2944873971289034E-02 1.3175705689991778E-02 1.3410638860532734E-02 + 1.3649745941323288E-02 1.3893100656831428E-02 1.4140778019187202E-02 + 1.4392854350164096E-02 1.4649407303500769E-02 1.4910515887605703E-02 + 1.5176260488597311E-02 1.5446722893742241E-02 1.5721986315247093E-02 + 1.6002135414452431E-02 1.6287256326404993E-02 1.6577436684823657E-02 + 1.6872765647457821E-02 1.7173333921855497E-02 1.7479233791536580E-02 + 1.7790559142588182E-02 1.8107405490668627E-02 1.8429870008433796E-02 + 1.8758051553411946E-02 1.9092050696303278E-02 1.9431969749710874E-02 + 1.9777912797340834E-02 2.0129985723647232E-02 2.0488296243920977E-02 + 2.0852953934875251E-02 2.1224070265656841E-02 2.1601758629377778E-02 + 2.1986134375102950E-02 2.2377314840335213E-02 2.2775419383977348E-02 + 2.3180569419814692E-02 2.3592888450499134E-02 2.4012502102016806E-02 + 2.4439538158715187E-02 2.4874126598809665E-02 2.5316399630437459E-02 + 2.5766491728259611E-02 2.6224539670557372E-02 2.6690682576929303E-02 + 2.7165061946475569E-02 2.7647821696596832E-02 2.8139108202318949E-02 + 2.8639070336170604E-02 2.9147859508672748E-02 2.9665629709387253E-02 + 3.0192537548512036E-02 3.0728742299125200E-02 3.1274405939960004E-02 + 3.1829693198817191E-02 3.2394771596561456E-02 3.2969811491720374E-02 + 3.3554986125704178E-02 3.4150471668610245E-02 3.4756447265692804E-02 + 3.5373095084413275E-02 3.6000600362132935E-02 3.6639151454435567E-02 + 3.7288939884065592E-02 3.7950160390541943E-02 3.8623010980354741E-02 + 3.9307692977845893E-02 4.0004411076724311E-02 4.0713373392210019E-02 + 4.1434791513840843E-02 4.2168880558929263E-02 4.2915859226660219E-02 + 4.3675949852853661E-02 4.4449378465347494E-02 4.5236374840092554E-02 + 4.6037172557821561E-02 4.6852009061440651E-02 4.7681125714024303E-02 + 4.8524767857475219E-02 4.9383184871829543E-02 5.0256630235216336E-02 + 5.1145361584436874E-02 5.2049640776186713E-02 5.2969733948927442E-02 + 5.3905911585371356E-02 5.4858448575593022E-02 5.5827624280743504E-02 + 5.6813722597408058E-02 5.7817032022531197E-02 5.8837845718946263E-02 + 5.9876461581501755E-02 6.0933182303750430E-02 6.2008315445195465E-02 + 6.3102173499109224E-02 6.4215073960861527E-02 6.5347339396809229E-02 + 6.6499297513663944E-02 6.7671281228365576E-02 6.8863628738442859E-02 + 7.0076683592817449E-02 7.1310794763053326E-02 7.2566316715029180E-02 + 7.3843609481000827E-02 7.5143038732036607E-02 7.6464975850814965E-02 + 7.7809798004709316E-02 7.9177888219211720E-02 8.0569635451578456E-02 + 8.1985434664735804E-02 8.3425686901371407E-02 8.4890799358179961E-02 + 8.6381185460273027E-02 8.7897264935626523E-02 8.9439463889601001E-02 + 9.1008214879471069E-02 9.2603956988895189E-02 9.4227135902306344E-02 + 9.5878203979153212E-02 9.7557620327956618E-02 9.9265850880103951E-02 + 1.0100336846334909E-01 1.0277065287494265E-01 1.0456819095431145E-01 + 1.0639647665526390E-01 1.0825601111761007E-01 1.1014730273813847E-01 + 1.1207086724088480E-01 1.1402722774657870E-01 1.1601691484122578E-01 + 1.1804046664371504E-01 1.2009842887236018E-01 1.2219135491025206E-01 + 1.2431980586941695E-01 1.2648435065354918E-01 1.2868556601929326E-01 + 1.3092403663595498E-01 1.3320035514348380E-01 1.3551512220863410E-01 + 1.3786894657918869E-01 1.4026244513606240E-01 1.4269624294319175E-01 + 1.4517097329506293E-01 1.4768727776168572E-01 1.5024580623090128E-01 + 1.5284721694786216E-01 1.5549217655144101E-01 1.5818136010751063E-01 + 1.6091545113879910E-01 1.6369514165121157E-01 1.6652113215635764E-01 + 1.6939413169012310E-01 1.7231485782704847E-01 1.7528403669030981E-01 + 1.7830240295703020E-01 1.8137069985875756E-01 1.8448967917677969E-01 + 1.8766010123206073E-01 1.9088273486953408E-01 1.9415835743645002E-01 + 1.9748775475453695E-01 2.0087172108560564E-01 2.0431105909035174E-01 + 2.0780657978002182E-01 2.1135910246058703E-01 2.1496945466910375E-01 + 2.1863847210189891E-01 2.2236699853423231E-01 2.2615588573099324E-01 + 2.3000599334813002E-01 2.3391818882432400E-01 2.3789334726252653E-01 + 2.4193235130091262E-01 2.4603609097282042E-01 2.5020546355515172E-01 + 2.5444137340485112E-01 2.5874473178284862E-01 2.6311645666506422E-01 + 2.6755747253985357E-01 2.7206871019141782E-01 2.7665110646855140E-01 + 2.8130560403819782E-01 2.8603315112316274E-01 2.9083470122341665E-01 + 2.9571121282030444E-01 3.0066364906299881E-01 3.0569297743657264E-01 + 3.1080016941091310E-01 3.1598620006983097E-01 3.2125204771954302E-01 + 3.2659869347584786E-01 3.3202712082913610E-01 3.3753831518643890E-01 + 3.4313326338974343E-01 3.4881295320961603E-01 3.5457837281333138E-01 + 3.6043051020655636E-01 3.6637035264771484E-01 3.7239888603396742E-01 + 3.7851709425797042E-01 3.8472595853428720E-01 3.9102645669447539E-01 + 3.9741956244977844E-01 4.0390624462034597E-01 4.1048746632984023E-01 + 4.1716418416432488E-01 4.2393734729425320E-01 4.3080789655835211E-01 + 4.3777676350819678E-01 4.4484486941222523E-01 4.5201312421789408E-01 + 4.5928242547073811E-01 4.6665365718888080E-01 4.7412768869179289E-01 + 4.8170537338179481E-01 4.8938754747694813E-01 4.9717502869388863E-01 + 5.0506861487915400E-01 5.1306908258749984E-01 5.2117718560571036E-01 + 5.2939365342036326E-01 5.3771918962803833E-01 5.4615447028630471E-01 + 5.5470014220398112E-01 5.6335682116905317E-01 5.7212509011253221E-01 + 5.8100549720671857E-01 5.8999855389616285E-01 5.9910473285965815E-01 + 6.0832446590157629E-01 6.1765814177091483E-01 6.2710610390632560E-01 + 6.3666864810542612E-01 6.4634602011676456E-01 6.5613841315271215E-01 + 6.6604596532163340E-01 6.7606875697766899E-01 6.8620680798651124E-01 + 6.9646007490553896E-01 7.0682844807672207E-01 7.1731174863077318E-01 + 7.2790972540099375E-01 7.3862205174535744E-01 7.4944832227541169E-01 + 7.6038804949064598E-01 7.7144066031702740E-01 7.8260549254846234E-01 + 7.9388179119007951E-01 8.0526870470228495E-01 8.1676528114460167E-01 + 8.2837046421854432E-01 8.4008308920874286E-01 8.5190187882179003E-01 + 8.6382543892235986E-01 8.7585225416637780E-01 8.8798068353108117E-01 + 9.0020895574214732E-01 9.1253516459812234E-01 9.2495726419275892E-01 + 9.3747306403592090E-01 9.5008022407419601E-01 9.6277624961240582E-01 + 9.7555848613769425E-01 9.8842411404805619E-01 1.0013701432875530E+00 + 1.0143934078909171E+00 1.0274905604404050E+00 1.0406580664384739E+00 + 1.0538921986000638E+00 1.0671890310687944E+00 1.0805444335620205E+00 + 1.0939540654499633E+00 1.1074133697750266E+00 1.1209175672176379E+00 + 1.1344616500159359E+00 1.1480403758470601E+00 1.1616482616785735E+00 + 1.1752795775993725E+00 1.1889283406401159E+00 1.2025883085940594E+00 + 1.2162529738502035E+00 1.2299155572512963E+00 1.2435690019905346E+00 + 1.2572059675615439E+00 1.2708188237774565E+00 1.2843996448759971E+00 + 1.2979402037285637E+00 1.3114319661726461E+00 1.3248660854881296E+00 + 1.3382333970393807E+00 1.3515244131064008E+00 1.3647293179298166E+00 + 1.3778379629959525E+00 1.3908398625898069E+00 1.4037241896453685E+00 + 1.4164797719244790E+00 1.4290950885570353E+00 1.4415582669772902E+00 + 1.4538570802927826E+00 1.4659789451243832E+00 1.4779109199578608E+00 + 1.4896397040494982E+00 1.5011516369302706E+00 1.5124326985552712E+00 + 1.5234685101472387E+00 1.5342443357852176E+00 1.5447450847916864E+00 + 1.5549553149736666E+00 1.5648592367757519E+00 1.5744407184051914E+00 + 1.5836832919915165E+00 1.5925701608455938E+00 1.6010842078851872E+00 + 1.6092080052964348E+00 1.6169238255029710E+00 1.6242136535164813E+00 + 1.6310592007447728E+00 1.6374419203353490E+00 1.6433430241345726E+00 + 1.6487435013442291E+00 1.6536241389590516E+00 1.6579655440702905E+00 + 1.6617481681217432E+00 1.6649523332057858E+00 1.6675582604878019E+00 + 1.6695461008480257E+00 1.6708959678300579E+00 1.6715879729852494E+00 + 1.6716022637016716E+00 1.6709190636054829E+00 1.6695187156211158E+00 + 1.6673817277747749E+00 1.6644888218232745E+00 1.6608209847870432E+00 + 1.6563595234624133E+00 1.6510861219835984E+00 1.6449829024995053E+00 + 1.6380324890242006E+00 1.6302180745126325E+00 1.6215234912050180E+00 + 1.6119332842739829E+00 1.6014327887980158E+00 1.5900082100731150E+00 + 1.5776467072614171E+00 1.5643364803611726E+00 1.5500668604663910E+00 + 1.5348284032670632E+00 1.5186129857216011E+00 1.5014139058122129E+00 + 1.4832259852711784E+00 1.4640456751414062E+00 1.4438711640078388E+00 + 1.4227024887077524E+00 1.4005416472970451E+00 1.3773927140166771E+00 + 1.3532619559680692E+00 1.3281579511687973E+00 1.3020917076200293E+00 + 1.2750767829748375E+00 1.2471294043520615E+00 1.2182685877933319E+00 + 1.1885162568117376E+00 1.1578973594289423E+00 1.1264399830439158E+00 + 1.0941754664206669E+00 1.0611385080243845E+00 1.0273672698759453E+00 + 9.9290347603355966E-01 9.5779250474758038E-01 9.2208347327105777E-01 + 8.8582931424408384E-01 8.4908684250539523E-01 8.1191681111980230E-01 + 7.7438395534613891E-01 7.3655702320748240E-01 6.9850879126406396E-01 + 6.6031606413082899E-01 6.2205965622606041E-01 5.8382435418632794E-01 + 5.4569885833658560E-01 5.0777570156425667E-01 4.7015114391323737E-01 + 4.3292504118893282E-01 3.9620068585078061E-01 3.6008461846487577E-01 + 3.2468640799779563E-01 2.9011839925575983E-01 2.5649542581145485E-01 + 2.2393448681703737E-01 1.9255438617652881E-01 1.6247533264721706E-01 + 1.3381849955859537E-01 1.0670554298110621E-01 8.1258077347737323E-02 + 5.7597107730848925E-02 3.5842418206451801E-02 1.6111916000848908E-02 + -1.4790685888224930E-03 -1.6818526175721979E-02 -2.9798555471552919E-02 + -4.0316192578163275E-02 -4.8274280829694531E-02 -5.3582379142756681E-02 + -5.6157706300947935E-02 -5.5926118027764489E-02 -5.2823113088616432E-02 + -4.7107184025699585E-02 -3.9024059531743149E-02 -2.8508600224147061E-02 + -1.5510731849347308E-02 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + -8.3446892704989623E-10 6.5558780479013916E-09 2.0096364080687231E-08 + 3.8817319427547783E-08 6.2061054865996493E-08 8.9481861694820100E-08 + 1.2080192136354625E-07 1.5586242332367532E-07 1.9455508279031389E-07 + 2.3679190359598947E-07 2.8250988621094764E-07 3.3166375616382376E-07 + 3.8422099538574372E-07 4.4015976820736086E-07 4.9946691072413162E-07 + 5.6213643196985368E-07 6.2816842064789972E-07 6.9756818492216699E-07 + 7.7034557399976939E-07 8.4651443722511682E-07 9.2609218667627126E-07 + 1.0090994398116075E-06 1.0955597249294746E-06 1.1854992364587771E-06 + 1.2789466302493617E-06 1.3759328513095144E-06 1.4764909881133689E-06 + 1.5806561488549079E-06 1.6884653559783629E-06 1.7999574560412479E-06 + 1.9151730425319462E-06 2.0341543897030602E-06 2.1569453958310897E-06 + 2.2835915345885372E-06 2.4141398134366927E-06 2.5486387381267265E-06 + 2.6871382825413788E-06 2.8296898632298440E-06 2.9763463180852855E-06 + 3.1271618886966165E-06 3.2821922059731296E-06 3.4414942786960559E-06 + 3.6051264847015537E-06 3.7731485644362905E-06 3.9456216166622227E-06 + 4.1226080961171843E-06 4.3041718129605473E-06 4.4903779338554784E-06 + 4.6812929845583662E-06 4.8769848538997168E-06 5.0775227990566406E-06 + 5.2829774520271982E-06 5.4934208272291835E-06 5.7089263301526083E-06 + 5.9295687670048864E-06 6.1554243552947741E-06 6.3865707353058477E-06 + 6.6230869824176310E-06 6.8650536202347692E-06 7.1125526344931725E-06 + 7.3656674877106530E-06 7.6244831345573973E-06 7.8890860379222093E-06 + 8.1595641856543268E-06 8.4360071079624309E-06 8.7185058954553543E-06 + 9.0071532178102369E-06 9.3020433430569691E-06 9.6032721574668792E-06 + 9.9109371860398904E-06 1.0225137613578777E-05 1.0545974306347967E-05 + 1.0873549834308767E-05 1.1207968493930522E-05 1.1549336331569792E-05 + 1.1897761167422221E-05 1.2253352620035901E-05 1.2616222131398298E-05 + 1.2986482992584747E-05 1.3364250369976736E-05 1.3749641332049609E-05 + 1.4142774876729262E-05 1.4543771959324056E-05 1.4952755521031776E-05 + 1.5369850518026601E-05 1.5795183951129923E-05 1.6228884896066813E-05 + 1.6671084534317633E-05 1.7121916184565199E-05 1.7581515334743333E-05 + 1.8050019674696369E-05 1.8527569129450792E-05 1.9014305893106395E-05 + 1.9510374463358777E-05 2.0015921676649536E-05 2.0531096743962376E-05 + 2.1056051287266077E-05 2.1590939376612119E-05 2.2135917567898036E-05 + 2.2691144941302745E-05 2.3256783140401038E-05 2.3832996411969164E-05 + 2.4419951646488850E-05 2.5017818419355077E-05 2.5626769032806340E-05 + 2.6246978558574967E-05 2.6878624881280037E-05 2.7521888742562328E-05 + 2.8176953785977155E-05 2.8844006602653676E-05 2.9523236777737911E-05 + 3.0214836937616168E-05 3.0919002797945510E-05 3.1635933212494461E-05 + 3.2365830222808381E-05 3.3108899108710941E-05 3.3865348439651151E-05 + 3.4635390126916459E-05 3.5419239476715836E-05 3.6217115244152047E-05 + 3.7029239688092000E-05 3.7855838626953122E-05 3.8697141495415881E-05 + 3.9553381402080951E-05 4.0424795188078115E-05 4.1311623486652929E-05 + 4.2214110783731770E-05 4.3132505479494626E-05 4.4067059950961706E-05 + 4.5018030615614138E-05 4.5985677996061658E-05 4.6970266785780844E-05 + 4.7972065915926364E-05 4.8991348623251482E-05 5.0028392519136134E-05 + 5.1083479659759081E-05 5.2156896617412484E-05 5.3248934552991576E-05 + 5.4359889289673407E-05 5.5490061387805299E-05 5.6639756221014700E-05 + 5.7809284053572617E-05 5.8998960119018957E-05 6.0209104700076848E-05 + 6.1440043209879476E-05 6.2692106274512928E-05 6.3965629816920176E-05 + 6.5260955142179211E-05 6.6578429024157954E-05 6.7918403793603571E-05 + 6.9281237427663782E-05 7.0667293640863408E-05 7.2076941977578437E-05 + 7.3510557906011637E-05 7.4968522913698973E-05 7.6451224604585029E-05 + 7.7959056797673651E-05 7.9492419627283974E-05 8.1051719644949813E-05 + 8.2637369922979715E-05 8.4249790159691406E-05 8.5889406786377522E-05 + 8.7556653076002579E-05 8.9251969253671142E-05 9.0975802608901272E-05 + 9.2728607609717488E-05 9.4510846018597478E-05 9.6322987010324549E-05 + 9.8165507291723663E-05 1.0003889122337326E-04 1.0194363094328596E-04 + 1.0388022649259008E-04 1.0584918594325802E-04 1.0785102552792511E-04 + 1.0988626977178080E-04 1.1195545162663112E-04 1.1405911260712786E-04 + 1.1619780292919247E-04 1.1837208165070246E-04 1.2058251681445255E-04 + 1.2282968559342096E-04 1.2511417443840413E-04 1.2743657922802240E-04 + 1.2979750542117536E-04 1.3219756821194337E-04 1.3463739268700507E-04 + 1.3711761398558234E-04 1.3963887746200053E-04 1.4220183885083846E-04 + 1.4480716443475059E-04 1.4745553121503090E-04 1.5014762708486892E-04 + 1.5288415100545000E-04 1.5566581318486139E-04 1.5849333525988526E-04 + 1.6136745048071731E-04 1.6428890389866754E-04 1.6725845255685410E-04 + 1.7027686568398524E-04 1.7334492489123044E-04 1.7646342437226790E-04 + 1.7963317110652777E-04 1.8285498506570667E-04 1.8612969942356525E-04 + 1.8945816076912012E-04 1.9284122932321311E-04 1.9627977915855373E-04 + 1.9977469842329159E-04 2.0332688956813995E-04 2.0693726957712516E-04 + 2.1060677020202923E-04 2.1433633820054521E-04 2.1812693557826939E-04 + 2.2197953983446245E-04 2.2589514421182487E-04 2.2987475795014449E-04 + 2.3391940654402403E-04 2.3803013200469344E-04 2.4220799312596355E-04 + 2.4645406575437597E-04 2.5076944306366559E-04 2.5515523583353474E-04 + 2.5961257273285820E-04 2.6414260060731858E-04 2.6874648477162832E-04 + 2.7342540930631702E-04 2.7818057735922672E-04 2.8301321145172747E-04 + 2.8792455378975435E-04 2.9291586657973395E-04 2.9798843234946982E-04 + 3.0314355427403912E-04 3.0838255650682972E-04 3.1370678451572205E-04 + 3.1911760542454833E-04 3.2461640835988574E-04 3.3020460480323886E-04 + 3.3588362894874479E-04 3.4165493806641566E-04 3.4752001287105658E-04 + 3.5348035789689082E-04 3.5953750187803246E-04 3.6569299813483838E-04 + 3.7194842496624528E-04 3.7830538604816328E-04 3.8476551083806788E-04 + 3.9133045498580739E-04 3.9800190075073142E-04 4.0478155742528627E-04 + 4.1167116176509265E-04 4.1867247842562445E-04 4.2578730040562221E-04 + 4.3301744949730201E-04 4.4036477674340685E-04 4.4783116290128913E-04 + 4.5541851891408734E-04 4.6312878638905271E-04 4.7096393808318467E-04 + 4.7892597839622949E-04 4.8701694387119952E-04 4.9523890370246969E-04 + 5.0359396025155729E-04 5.1208424957071294E-04 5.2071194193441847E-04 + 5.2947924237890928E-04 5.3838839124981694E-04 5.4744166475802203E-04 + 5.5664137554390454E-04 5.6598987325002636E-04 5.7548954510235062E-04 + 5.8514281650019013E-04 5.9495215161498212E-04 6.0492005399791985E-04 + 6.1504906719667509E-04 6.2534177538124160E-04 6.3580080397908042E-04 + 6.4642882031963557E-04 6.5722853428840653E-04 6.6820269899068522E-04 + 6.7935411142497392E-04 6.9068561316636763E-04 7.0220009105997536E-04 + 7.1390047792446471E-04 7.2578975326588609E-04 7.3787094400189538E-04 + 7.5014712519657419E-04 7.6262142080586542E-04 7.7529700443387459E-04 + 7.8817710010004819E-04 8.0126498301753921E-04 8.1456398038266755E-04 + 8.2807747217583899E-04 8.4180889197384633E-04 8.5576172777397977E-04 + 8.6993952282974306E-04 8.8434587649854110E-04 8.9898444510150819E-04 + 9.1385894279538997E-04 9.2897314245695599E-04 9.4433087657971491E-04 + 9.5993603818344696E-04 9.7579258173642570E-04 9.9190452409054445E-04 + 1.0082759454296745E-03 1.0249109902311212E-03 1.0418138682404831E-03 + 1.0589888554601863E-03 1.0764402951514553E-03 1.0941725988503940E-03 + 1.1121902473978944E-03 1.1304977919837761E-03 1.1490998552051419E-03 + 1.1680011321392803E-03 1.1872063914311639E-03 1.2067204763956639E-03 + 1.2265483061347569E-03 1.2466948766698066E-03 1.2671652620890089E-03 + 1.2879646157103208E-03 1.3090981712599458E-03 1.3305712440664142E-03 + 1.3523892322706392E-03 1.3745576180520559E-03 1.3970819688707884E-03 + 1.4199679387261453E-03 1.4432212694318984E-03 1.4668477919078297E-03 + 1.4908534274883443E-03 1.5152441892479979E-03 1.5400261833441041E-03 + 1.5652056103766679E-03 1.5907887667656576E-03 1.6167820461460726E-03 + 1.6431919407804661E-03 1.6700250429896248E-03 1.6972880466011460E-03 + 1.7249877484162379E-03 1.7531310496948181E-03 1.7817249576592929E-03 + 1.8107765870167317E-03 1.8402931614999944E-03 1.8702820154276286E-03 + 1.9007505952830992E-03 1.9317064613129831E-03 1.9631572891446870E-03 + 1.9951108714233363E-03 2.0275751194687745E-03 2.0605580649520660E-03 + 2.0940678615915670E-03 2.1281127868696841E-03 2.1627012437692686E-03 + 2.1978417625303174E-03 2.2335430024271489E-03 2.2698137535662037E-03 + 2.3066629387041497E-03 2.3440996150869550E-03 2.3821329763095401E-03 + 2.4207723541965881E-03 2.4600272207042206E-03 2.4999071898428242E-03 + 2.5404220196212296E-03 2.5815816140116270E-03 2.6233960249367294E-03 + 2.6658754542775481E-03 2.7090302559030508E-03 2.7528709377214037E-03 + 2.7974081637527608E-03 2.8426527562237782E-03 2.8886156976838237E-03 + 2.9353081331428255E-03 2.9827413722311588E-03 3.0309268913812468E-03 + 3.0798763360310229E-03 3.1296015228492262E-03 3.1801144419824259E-03 + 3.2314272593242268E-03 3.2835523188059291E-03 3.3365021447096378E-03 + 3.3902894440021344E-03 3.4449271086916615E-03 3.5004282182055507E-03 + 3.5568060417899999E-03 3.6140740409312212E-03 3.6722458717980354E-03 + 3.7313353877062743E-03 3.7913566416037745E-03 3.8523238885774511E-03 + 3.9142515883808116E-03 3.9771544079826660E-03 4.0410472241366466E-03 + 4.1059451259713216E-03 4.1718634176006819E-03 4.2388176207550574E-03 + 4.3068234774322114E-03 4.3758969525679028E-03 4.4460542367263352E-03 + 4.5173117488101228E-03 4.5896861387889863E-03 4.6631942904475860E-03 + 4.7378533241519642E-03 4.8136805996333715E-03 4.8906937187915495E-03 + 4.9689105285138724E-03 5.0483491235130042E-03 5.1290278491801311E-03 + 5.2109653044557303E-03 5.2941803447149509E-03 5.3786920846701346E-03 + 5.4645199012864718E-03 5.5516834367138846E-03 5.6402026012315719E-03 + 5.7300975762068114E-03 5.8213888170660470E-03 5.9140970562789131E-03 + 6.0082433063533315E-03 6.1038488628419379E-03 6.2009353073586406E-03 + 6.2995245106050486E-03 6.3996386354057896E-03 6.5013001397518783E-03 + 6.6045317798513479E-03 6.7093566131869592E-03 6.8157980015789215E-03 + 6.9238796142528656E-03 7.0336254309118261E-03 7.1450597448109669E-03 + 7.2582071658346438E-03 7.3730926235735291E-03 7.4897413704033116E-03 + 7.6081789845606693E-03 7.7284313732174327E-03 7.8505247755522901E-03 + 7.9744857658163720E-03 8.1003412563940332E-03 8.2281185008559483E-03 + 8.3578450970038468E-03 8.4895489899059502E-03 8.6232584749198985E-03 + 8.7590022007048227E-03 8.8968091722169459E-03 9.0367087536920333E-03 + 9.1787306716082789E-03 9.3229050176310453E-03 9.4692622515379216E-03 + 9.6178332041196614E-03 9.7686490800579454E-03 9.9217414607775355E-03 + 1.0077142307269348E-02 1.0234883962884392E-02 1.0394999156096174E-02 + 1.0557521003228321E-02 1.0722483011146776E-02 1.0889919079913653E-02 + 1.1059863505400983E-02 1.1232350981860720E-02 1.1407416604450738E-02 + 1.1585095871713545E-02 1.1765424688003540E-02 1.1948439365863223E-02 + 1.2134176628343539E-02 1.2322673611266953E-02 1.2513967865429793E-02 + 1.2708097358740233E-02 1.2905100478292950E-02 1.3105016032370843E-02 + 1.3307883252377421E-02 1.3513741794693092E-02 1.3722631742452496E-02 + 1.3934593607240420E-02 1.4149668330704265E-02 1.4367897286075005E-02 + 1.4589322279599561E-02 1.4813985551875779E-02 1.5041929779088812E-02 + 1.5273198074145452E-02 1.5507833987701640E-02 1.5745881509078873E-02 + 1.5987385067067667E-02 1.6232389530611107E-02 1.6480940209367842E-02 + 1.6733082854146219E-02 1.6988863657209322E-02 1.7248329252444152E-02 + 1.7511526715389407E-02 1.7778503563122838E-02 1.8049307753993792E-02 + 1.8323987687208450E-02 1.8602592202251338E-02 1.8885170578146124E-02 + 1.9171772532546507E-02 1.9462448220655720E-02 1.9757248233962958E-02 + 2.0056223598802405E-02 2.0359425774715233E-02 2.0666906652622764E-02 + 2.0978718552796042E-02 2.1294914222619130E-02 2.1615546834142945E-02 + 2.1940669981418678E-02 2.2270337677609206E-02 2.2604604351869572E-02 + 2.2943524845993584E-02 2.3287154410814852E-02 2.3635548702363382E-02 + 2.3988763777764207E-02 2.4346856090877309E-02 2.4709882487666989E-02 + 2.5077900201298364E-02 2.5450966846952128E-02 2.5829140416350201E-02 + 2.6212479271987537E-02 2.6601042141060724E-02 2.6994888109085954E-02 + 2.7394076613203925E-02 2.7798667435157312E-02 2.8208720693935811E-02 + 2.8624296838088866E-02 2.9045456637683282E-02 2.9472261175913742E-02 + 2.9904771840348249E-02 3.0343050313802973E-02 3.0787158564842165E-02 + 3.1237158837893703E-02 3.1693113642967403E-02 3.2155085744972507E-02 + 3.2623138152629211E-02 3.3097334106958767E-02 3.3577737069349599E-02 + 3.4064410709188322E-02 3.4557418891046562E-02 3.5056825661421813E-02 + 3.5562695235011349E-02 3.6075091980524408E-02 3.6594080406015889E-02 + 3.7119725143733830E-02 3.7652090934476343E-02 3.8191242611441509E-02 + 3.8737245083573374E-02 3.9290163318380873E-02 3.9850062324238322E-02 + 4.0417007132139464E-02 4.0991062776913410E-02 4.1572294277885828E-02 + 4.2160766618976685E-02 4.2756544728227285E-02 4.3359693456750205E-02 + 4.3970277557090598E-02 4.4588361660992941E-02 4.5214010256562541E-02 + 4.5847287664815981E-02 4.6488258015607679E-02 4.7136985222938778E-02 + 4.7793532959618121E-02 4.8457964631281478E-02 4.9130343349768388E-02 + 4.9810731905828798E-02 5.0499192741170651E-02 5.1195787919831828E-02 + 5.1900579098867888E-02 5.2613627498360772E-02 5.3334993870728299E-02 + 5.4064738469328300E-02 5.4802921016369507E-02 5.5549600670098016E-02 + 5.6304835991271368E-02 5.7068684908907312E-02 5.7841204685303689E-02 + 5.8622451880326172E-02 5.9412482314957119E-02 6.0211351034099990E-02 + 6.1019112268636926E-02 6.1835819396740634E-02 6.2661524904429208E-02 + 6.3496280345359951E-02 6.4340136299872175E-02 6.5193142333263274E-02 + 6.6055346953290114E-02 6.6926797566928681E-02 6.7807540436340727E-02 + 6.8697620634080567E-02 6.9597081997535476E-02 7.0505967082586052E-02 + 7.1424317116500338E-02 7.2352171950050101E-02 7.3289570008856428E-02 + 7.4236548243956313E-02 7.5193142081605199E-02 7.6159385372290306E-02 + 7.7135310338980120E-02 7.8120947524594198E-02 7.9116325738697285E-02 + 8.0121472003414976E-02 8.1136411498577476E-02 8.2161167506084307E-02 + 8.3195761353485040E-02 8.4240212356789843E-02 8.5294537762497166E-02 + 8.6358752688841037E-02 8.7432870066255997E-02 8.8516900577066723E-02 + 8.9610852594390777E-02 9.0714732120268260E-02 9.1828542723010553E-02 + 9.2952285473772989E-02 9.4085958882353049E-02 9.5229558832240671E-02 + 9.6383078514872031E-02 9.7546508363182585E-02 9.8719835984375934E-02 + 9.9903046092008826E-02 1.0109612043733904E-01 1.0229903774000382E-01 + 1.0351177361804220E-01 1.0473430051726866E-01 1.0596658764006635E-01 + 1.0720860087359875E-01 1.0846030271751890E-01 1.0972165221118568E-01 + 1.1099260486046211E-01 1.1227311256413468E-01 1.1356312354002907E-01 + 1.1486258225085663E-01 1.1617142932988710E-01 1.1748960150649457E-01 + 1.1881703153165815E-01 1.2015364810348107E-01 1.2149937579282484E-01 + 1.2285413496910749E-01 1.2421784172636434E-01 1.2559040780964600E-01 + 1.2697174054182750E-01 1.2836174275091364E-01 1.2976031269791014E-01 + 1.3116734400535199E-01 1.3258272558656148E-01 1.3400634157570168E-01 + 1.3543807125871235E-01 1.3687778900520414E-01 1.3832536420135946E-01 + 1.3978066118395407E-01 1.4124353917552465E-01 1.4271385222076677E-01 + 1.4419144912423837E-01 1.4567617338942038E-01 1.4716786315919606E-01 + 1.4866635115782259E-01 1.5017146463444553E-01 1.5168302530820033E-01 + 1.5320084931500219E-01 1.5472474715601284E-01 1.5625452364791412E-01 + 1.5778997787499660E-01 1.5933090314312998E-01 1.6087708693566719E-01 + 1.6242831087136989E-01 1.6398435066436773E-01 1.6554497608625277E-01 + 1.6710995093034703E-01 1.6867903297822681E-01 1.7025197396853425E-01 + 1.7182851956821718E-01 1.7340840934617691E-01 1.7499137674947279E-01 + 1.7657714908213126E-01 1.7816544748662461E-01 1.7975598692813591E-01 + 1.8134847618165481E-01 1.8294261782201723E-01 1.8453810821695971E-01 + 1.8613463752328327E-01 1.8773188968620430E-01 1.8932954244201314E-01 + 1.9092726732406132E-01 1.9252472967227527E-01 1.9412158864618795E-01 + 1.9571749724162368E-01 1.9731210231114543E-01 1.9890504458831579E-01 + 2.0049595871589923E-01 2.0208447327809118E-01 2.0367021083682879E-01 + 2.0525278797234997E-01 2.0683181532802736E-01 2.0840689765957432E-01 + 2.0997763388876042E-01 2.1154361716167241E-01 2.1310443491162992E-01 + 2.1465966892685465E-01 2.1620889542294799E-01 2.1775168512029100E-01 + 2.1928760332641492E-01 2.2081621002346788E-01 2.2233705996079439E-01 + 2.2384970275274807E-01 2.2535368298180433E-01 2.2684854030698803E-01 + 2.2833380957776719E-01 2.2980902095339714E-01 2.3127370002781106E-01 + 2.3272736796009050E-01 2.3416954161058173E-01 2.3559973368269779E-01 + 2.3701745287040338E-01 2.3842220401149633E-01 2.3981348824662846E-01 + 2.4119080318415473E-01 2.4255364307076741E-01 2.4390149896797464E-01 + 2.4523385893441238E-01 2.4655020821394413E-01 2.4785002942961171E-01 + 2.4913280278334027E-01 2.5039800626144265E-01 2.5164511584581478E-01 + 2.5287360573086121E-01 2.5408294854601576E-01 2.5527261558387643E-01 + 2.5644207703381766E-01 2.5759080222104941E-01 2.5871825985100966E-01 + 2.5982391825902867E-01 2.6090724566510881E-01 2.6196771043373518E-01 + 2.6300478133860344E-01 2.6401792783209560E-01 2.6500662031939637E-01 + 2.6597033043704543E-01 2.6690853133579795E-01 2.6782069796761315E-01 + 2.6870630737653034E-01 2.6956483899328204E-01 2.7039577493342065E-01 + 2.7119860029865689E-01 2.7197280348129377E-01 2.7271787647130508E-01 + 2.7343331516598590E-01 2.7411861968167495E-01 2.7477329466736938E-01 + 2.7539684961978972E-01 2.7598879919959352E-01 2.7654866354823970E-01 + 2.7707596860522093E-01 2.7757024642502326E-01 2.7803103549347230E-01 + 2.7845788104287372E-01 2.7885033536537646E-01 2.7920795812399091E-01 + 2.7953031666064343E-01 2.7981698630060664E-01 2.8006755065261374E-01 + 2.8028160190398599E-01 2.8045874111009034E-01 2.8059857847730402E-01 + 2.8070073363898329E-01 2.8076483592358481E-01 2.8079052461444493E-01 + 2.8077744920051251E-01 2.8072526961769118E-01 2.8063365648021060E-01 + 2.8050229130190490E-01 2.8033086670705115E-01 2.8011908663090146E-01 + 2.7986666650987457E-01 2.7957333346182567E-01 2.7923882645669934E-01 + 2.7886289647829643E-01 2.7844530667781014E-01 2.7798583252009418E-01 + 2.7748426192368314E-01 2.7694039539565884E-01 2.7635404616260861E-01 + 2.7572504029888989E-01 2.7505321685343898E-01 2.7433842797632230E-01 + 2.7358053904606533E-01 2.7277942879870376E-01 2.7193498945919198E-01 + 2.7104712687555504E-01 2.7011576065572912E-01 2.6914082430675601E-01 + 2.6812226537532652E-01 2.6706004558839019E-01 2.6595414099191633E-01 + 2.6480454208555326E-01 2.6361125395053797E-01 2.6237429636796372E-01 + 2.6109370392442038E-01 2.5976952610204557E-01 2.5840182735014944E-01 + 2.5699068713606954E-01 2.5553619997307248E-01 2.5403847542387570E-01 + 2.5249763807874226E-01 2.5091382750767266E-01 2.4928719818671941E-01 + 2.4761791939882274E-01 2.4590617510993790E-01 2.4415216382136787E-01 + 2.4235609839945427E-01 2.4051820588368769E-01 2.3863872727434346E-01 + 2.3671791730067171E-01 2.3475604417046725E-01 2.3275338930177097E-01 + 2.3071024703730547E-01 2.2862692434209542E-01 2.2650374048467056E-01 + 2.2434102670209016E-01 2.2213912584914605E-01 2.1989839203189404E-01 + 2.1761919022586348E-01 2.1530189587925860E-01 2.1294689450152435E-01 + 2.1055458123776230E-01 2.0812536042957944E-01 2.0565964516299962E-01 + 2.0315785680418127E-01 2.0062042452380274E-01 1.9804778481098104E-01 + 1.9544038097769126E-01 1.9279866265475884E-01 1.9012308528040836E-01 + 1.8741410958254873E-01 1.8467220105585111E-01 1.8189782943478061E-01 + 1.7909146816372054E-01 1.7625359386529010E-01 1.7338468580802174E-01 + 1.7048522537447325E-01 1.6755569553088881E-01 1.6459658029945923E-01 + 1.6160836423426189E-01 1.5859153190186767E-01 1.5554656736764863E-01 + 1.5247395368873484E-01 1.4937417241459108E-01 1.4624770309611640E-01 + 1.4309502280418737E-01 1.3991660565851380E-01 1.3671292236765961E-01 + 1.3348443978108759E-01 1.3023162045403458E-01 1.2695492222604005E-01 + 1.2365479781393286E-01 1.2033169442006825E-01 1.1698605335662494E-01 + 1.1361830968675436E-01 1.1022889188339828E-01 1.0681822150659910E-01 + 1.0338671290013605E-01 9.9934772908355549E-02 9.6462800614072239E-02 + 9.2971187098455976E-02 8.9460315223831896E-02 8.5930559440356963E-02 + 8.2382285617549234E-02 7.8815850901659115E-02 7.5231603599880376E-02 + 7.1629883092383009E-02 6.8011019773127443E-02 6.4375335020372293E-02 + 6.0723141197713153E-02 5.7054741686405216E-02 5.3370430949588148E-02 + 4.9670494628896028E-02 4.5955209673761571E-02 4.2224844503554543E-02 + 3.8479659202495624E-02 3.4719905747159586E-02 3.0945828266222285E-02 + 2.7157663332096373E-02 2.3355640284139088E-02 1.9539981583346289E-02 + 1.5710903198845150E-02 1.1868615027142456E-02 8.0133213460019618E-03 + 4.1452213060285473E-03 2.6450946450919951E-04 -3.6286236322074315E-03 + -7.5339908096032811E-03 -1.1451407559086278E-02 -1.5380691253398087E-02 + -1.9321660270079297E-02 -2.3274133008979545E-02 -2.7237926789954861E-02 + -3.1212856618301737E-02 -3.5198733808314120E-02 -3.9195364459904694E-02 + -4.3202547789578889E-02 -4.7220074325234222E-02 -5.1247723984024419E-02 + -5.5285264063526414E-02 -5.9332447187620492E-02 -6.3389009258635234E-02 + -6.7454667474419472E-02 -7.1529118470940775E-02 -7.5612036645828690E-02 + -7.9703072704693526E-02 -8.3801852450585607E-02 -8.7907975810071218E-02 + -9.2021016061286195E-02 -9.6140519205381691E-02 -1.0026600340756596E-01 + -1.0439695843026504E-01 -1.0853284498875300E-01 -1.1267309397629019E-01 + -1.1681710552712822E-01 -1.2096424790724003E-01 -1.2511385624085317E-01 + -1.2926523109397309E-01 -1.3341763694356434E-01 -1.3757030056384498E-01 + -1.4172240936037100E-01 -1.4587310967977138E-01 -1.5002150511891743E-01 + -1.5416665485317335E-01 -1.5830757199914541E-01 -1.6244322202355799E-01 + -1.6657252120634447E-01 -1.7069433516297447E-01 -1.7480747742817165E-01 + -1.7891070810071708E-01 -1.8300273254701416E-01 -1.8708220015937349E-01 + -1.9114770316384927E-01 -1.9519777547170974E-01 -1.9923089156844331E-01 + -2.0324546543438776E-01 -2.0723984949166802E-01 -2.1121233357301206E-01 + -2.1516114390907734E-01 -2.1908444213208250E-01 -2.2298032429478828E-01 + -2.2684681990497557E-01 -2.3068189097668870E-01 -2.3448343110038095E-01 + -2.3824926453493372E-01 -2.4197714532514975E-01 -2.4566475644874036E-01 + -2.4930970899722718E-01 -2.5290954139538369E-01 -2.5646171866389023E-01 + -2.5996363172997339E-01 -2.6341259679067203E-01 -2.6680585473331248E-01 + -2.7014057061758068E-01 -2.7341383322338575E-01 -2.7662265466853214E-01 + -2.7976397009992049E-01 -2.8283463746179199E-01 -2.8583143734426320E-01 + -2.8875107291512575E-01 -2.9159016993762549E-01 -2.9434527687668127E-01 + -2.9701286509571068E-01 -2.9958932914600678E-01 -3.0207098715030989E-01 + -3.0445408128201423E-01 -3.0673477834115631E-01 -3.0890917042814292E-01 + -3.1097327571593480E-01 -3.1292303932119558E-01 -3.1475433427473087E-01 + -3.1646296259136880E-01 -3.1804465643929075E-01 -3.1949507940866251E-01 + -3.2080982787933698E-01 -3.2198443248730041E-01 -3.2301435968945413E-01 + -3.2389501342629962E-01 -3.2462173688204032E-01 -3.2518981434162314E-01 + -3.2559447314420770E-01 -3.2583088573255969E-01 -3.2589417179787261E-01 + -3.2577940051948068E-01 -3.2548159289891715E-01 -3.2499572418773504E-01 + -3.2431672640840786E-01 -3.2343949096760571E-01 -3.2235887136088870E-01 + -3.2106968596794411E-01 -3.1956672093723765E-01 -3.1784473315873824E-01 + -3.1589845332363109E-01 -3.1372258906953548E-01 -3.1131182821008452E-01 + -3.0866084204802186E-01 -3.0576428877115286E-01 -3.0261681693143239E-01 + -2.9921306900827327E-01 -2.9554768505838547E-01 -2.9161530645616185E-01 + -2.8741057973032230E-01 -2.8292816050480335E-01 -2.7816271755424238E-01 + -2.7310893698682032E-01 -2.6776152656975322E-01 -2.6211522021498579E-01 + -2.5616478264454051E-01 -2.4990501425630682E-01 -2.4333075621163797E-01 + -2.3643689576568319E-01 -2.2921837185993715E-01 -2.2167018099383384E-01 + -2.1378738338844863E-01 -2.0556510945053991E-01 -1.9699856653945683E-01 + -1.8808304603327855E-01 -1.7881393068400603E-01 -1.6918670224536703E-01 + -1.5919694935108744E-01 -1.4884037561662575E-01 -1.3811280793379060E-01 + -1.2701020492549123E-01 -1.1552866552717451E-01 -1.0366443766228356E-01 + -9.1413926981185709E-02 -7.8773705636200231E-02 -6.5740521069305557E-02 + -5.2311304793551394E-02 -3.8483181153728688E-02 -2.4253476056255951E-02 + -9.6197256622292688E-03 5.4203149589949250E-03 2.0868663215546642E-02 + 3.6727100415935465E-02 5.2997163225494519E-02 6.9680135152041106E-02 + 8.6777038056119207E-02 1.0428862368134853E-01 1.2221536520083999E-01 + 1.4055744877625209E-01 1.5931476512680581E-01 1.7848690110632542E-01 + 1.9807313128711163E-01 2.1807240955016546E-01 2.3848336068186615E-01 + 2.5930427197778255E-01 2.8053308485477196E-01 3.0216738647292768E-01 + 3.2420440136934248E-01 3.4664098310601882E-01 3.6947360593460132E-01 + 3.9269835648098866E-01 4.1631092545328940E-01 4.4030659937696465E-01 + 4.6468025236148636E-01 4.8942633790331841E-01 5.1453888073049858E-01 + 5.4001146869469641E-01 5.6583724471708829E-01 5.9200889879499508E-01 + 6.1851866007672818E-01 6.4535828901260794E-01 6.7251906959063146E-01 + 6.9999180166565389E-01 7.2776679339141404E-01 7.5583385376500711E-01 + 7.8418228529376455E-01 8.1280087679468438E-01 8.4167789633675838E-01 + 8.7080108433670844E-01 9.0015764681873167E-01 9.2973424884897871E-01 + 9.5951700815564989E-01 9.8949148894570937E-01 1.0196426959295304E+00 + 1.0499550685651251E+00 1.0804124755341804E+00 1.1109982094628694E+00 + 1.1416949819013769E+00 1.1724849185775092E+00 1.2033495549413928E+00 + 1.2342698320203935E+00 1.2652260926060650E+00 1.2961980777980004E+00 + 1.3271649239330898E+00 1.3581051599330243E+00 1.3889967051076475E+00 + 1.4198168674571250E+00 1.4505423425218660E+00 1.4811492128355463E+00 + 1.5116129480433129E+00 1.5419084057549670E+00 1.5720098332061552E+00 + 1.6018908698207139E+00 1.6315245507548888E+00 1.6608833115209294E+00 + 1.6899389938081113E+00 1.7186628525878431E+00 1.7470255646343276E+00 + 1.7749972385721264E+00 1.8025474265564365E+00 1.8296451377144474E+00 + 1.8562588534512598E+00 1.8823565447285446E+00 1.9079056914121753E+00 + 1.9328733037742318E+00 1.9572259462204502E+00 1.9809297632971812E+00 + 2.0039505080126863E+00 2.0262535724861737E+00 2.0478040209154855E+00 + 2.0685666248312953E+00 2.0885059005837134E+00 2.1075861489875081E+00 + 2.1257714970366242E+00 2.1430259415895123E+00 2.1593133949259977E+00 + 2.1745977320862240E+00 2.1888428399250572E+00 2.2020126678523604E+00 + 2.2140712802824742E+00 2.2249829108844286E+00 2.2347120188073117E+00 + 2.2432233471496987E+00 2.2504819840436032E+00 2.2564534268263943E+00 + 2.2611036498704218E+00 2.2643991767212528E+00 2.2663071572526441E+00 + 2.2667954505708758E+00 2.2658327143862746E+00 2.2633885015109123E+00 + 2.2594333640379736E+00 2.2539389656126438E+00 2.2468782020232072E+00 + 2.2382253301349690E+00 2.2279561049705907E+00 2.2160479245228881E+00 + 2.2024799816830063E+00 2.1872334224904435E+00 2.1702915097699571E+00 + 2.1516397911191341E+00 2.1312662701504603E+00 2.1091615798719618E+00 + 2.0853191571024356E+00 2.0597354168418707E+00 2.0324099255905077E+00 + 2.0033455726769653E+00 1.9725487386867979E+00 1.9400294601615689E+00 + 1.9058015897778691E+00 1.8698829512476869E+00 1.8322954881929345E+00 + 1.7930654062492402E+00 1.7522233076378873E+00 1.7098043174177069E+00 + 1.6658482005909969E+00 1.6203994691923507E+00 1.5735074784385459E+00 + 1.5252265109644696E+00 1.4756158481160815E+00 1.4247398272188279E+00 + 1.3726678836906281E+00 1.3194745768238163E+00 1.2652395980219511E+00 + 1.2100477602461199E+00 1.1539889674028398E+00 1.0971581623926685E+00 + 1.0396552525363667E+00 9.8158501110507523E-01 9.2305695370330820E-01 + 8.6418518828970359E-01 8.0508823767139148E-01 7.4588883337425949E-01 + 6.8671367987418819E-01 6.2769318827388121E-01 5.6896117862675766E-01 + 5.1065455024345174E-01 4.5291291946760631E-01 3.9587822457541189E-01 + 3.3969429763675973E-01 2.8450640337388972E-01 2.3046074526449697E-01 + 1.7770393935882439E-01 1.2638245651245222E-01 7.6642033976470902E-02 + 2.8627057532756378E-02 -1.7520084387465870E-02 -6.1659672909908217E-02 + -1.0365535530051437E-01 -1.4337486372001504E-01 -1.8069075368411400E-01 + -2.1548115950123137E-01 -2.4763056369376396E-01 -2.7703057713802692E-01 + -3.0358072638095979E-01 -3.2718924430666446E-01 -3.4777386003196986E-01 + -3.6526258360575381E-01 -3.7959448077178770E-01 -3.9072043272998297E-01 + -3.9860387549521353E-01 -4.0322151311091409E-01 -4.0456399862757908E-01 + -4.0263657640755851E-01 -3.9745967897457496E-01 -3.8906947129226765E-01 + -3.7751833503952920E-01 -3.6287528515938200E-01 -3.4522631070053011E-01 + -3.2467463175706457E-01 -3.0134086415198774E-01 -2.7536308341533416E-01 + -2.4689677958919440E-01 -2.1611469446167805E-01 -1.8320653300184742E-01 + -1.4837854105009518E-01 -1.1185294172527627E-01 -7.3867223552924660E-02 + -3.4673274009198250E-02 5.4636469767464380E-03 4.6266098004160934E-02 + 8.7445814918002018E-02 1.2870523914284715E-01 1.6973921595727215E-01 + 2.1023686128831284E-01 2.4988359367505331E-01 2.8836332593754377E-01 + 3.2536080879983936E-01 3.6056411626548579E-01 3.9366725994607782E-01 + 4.2437291681886630E-01 4.5239525206282233E-01 4.7746281572415361E-01 + 4.9932148902694989E-01 5.1773745321258946E-01 5.3250015090770719E-01 + 5.4342520723483723E-01 5.5035727524651901E-01 5.5317276784104741E-01 + 5.5178243616812483E-01 5.4613375272015074E-01 5.3621305589669832E-01 + 5.2204741189416137E-01 5.0370614937802483E-01 4.8130202260956861E-01 + 4.5499195958774891E-01 4.2497735339318043E-01 3.9150385734240911E-01 + 3.5486064782878701E-01 3.1537912288535225E-01 2.7343100958963590E-01 + 2.2942585946354885E-01 1.8380791801353363E-01 1.3705236250175951E-01 + 8.9660910915918143E-02 4.2156814871326935E-02 -4.9207402285572745E-03 + -5.1022793115053131E-02 -9.5597276042467219E-02 -1.3809613657419656E-01 + -1.7798283992751809E-01 -2.1474016713939673E-01 -2.4787821151581946E-01 + -2.7694246338058987E-01 -3.0152186132901698E-01 -3.2125667732678276E-01 + -3.3584609340739041E-01 -3.4505531976548581E-01 -3.4872209808509513E-01 + -3.4676243035666604E-01 -3.3917537260022518E-01 -3.2604673519075783E-01 + -3.0755153722340228E-01 -2.8395507187648500E-01 -2.5561245330161875E-01 + -2.2296653340540862E-01 -1.8654409912666853E-01 -1.4695028750711103E-01 + -1.0486118694815562E-01 -6.1014628367281103E-02 -1.6199209204788026E-02 + 2.8758364071757497E-02 7.3007483779612262E-02 1.1568922036720149E-01 + 1.5595304581372027E-01 1.9297442492693120E-01 2.2597295102695292E-01 + 2.5423065790878130E-01 2.7711009972199308E-01 2.9407175617709080E-01 + 3.0469029403884235E-01 3.0866919897737494E-01 3.0585328626867403E-01 + 2.9623860622739301E-01 2.7997928211464829E-01 2.5739085585077726E-01 + 2.2894977111507747E-01 1.9528869486052763E-01 1.5718746694662963E-01 + 1.1555957295548783E-01 7.1434156109081479E-02 2.5933718634807142E-02 + -1.9752191749743256E-02 -6.4396861818196982E-02 -1.0676925497322548E-01 + -1.4566905721213763E-01 -1.7996302216617885E-01 -2.0862157792101071E-01 + -2.3075454638623435E-01 -2.4564474156615856E-01 -2.5277816307832457E-01 + -2.5186949222024646E-01 -2.4288163567483673E-01 -2.2603815140567210E-01 + -2.0182753582853113E-01 -1.7099855253512752E-01 -1.3454604006353779E-01 + -9.3686946282953334E-02 -4.9826693879443801E-02 -4.5163761544706887E-03 + 4.0598297274386116E-02 8.3834954456412883E-02 1.2353764111724570E-01 + 1.5814285780663442E-01 1.8624604028382777E-01 2.0666569758891998E-01 + 2.1850224699024615E-01 2.2118852781359152E-01 2.1452905598366956E-01 + 1.9872531262859991E-01 1.7438475221149077E-01 1.4251176997547624E-01 + 1.0447957801149134E-01 6.1982787272164191E-02 1.6971452260829776E-02 + -2.8431631744312263E-02 -7.2027529993207273E-02 -1.1164779083963980E-01 + -1.4526627843007112E-01 -1.7111063262927592E-01 -1.8776723205248630E-01 + -1.9427328970382787E-01 -1.9018981488640865E-01 -1.7564967138785256E-01 + -1.5137587282248821E-01 -1.1866657963945174E-01 -7.9344968678010427E-02 + -3.5674174278681081E-02 9.7602431085126260E-03 5.4195482793335047E-02 + 9.4857209432227640E-02 1.2913654284063944E-01 1.5476739304048817E-01 + 1.6999207483569928E-01 1.7370274965554991E-01 1.6554672730632580E-01 + 1.4598509953288288E-01 1.1629659013440177E-01 7.8521835606255211E-02 + 3.5347413808458163E-02 -1.0066413508992032E-02 -5.4305397375368651E-02 + -9.3954857698137814E-02 -1.2586936219922848E-01 -1.4743765380096163E-01 + -1.5682025294886423E-01 -1.5313725316298496E-01 -1.3658594991848227E-01 + -1.0847217738181374E-01 -7.1145465049672479E-02 -2.7836042661412989E-02 + 1.7599226570927703E-02 6.1005461743009859E-02 9.8307474534146469E-02 + 1.2590368805610314E-01 1.4103843215755718E-01 1.4211319172828371E-01 + 1.2889978416945891E-01 1.0262512132898347E-01 6.5908016065091446E-02 + 2.2542768433644320E-02 -2.2859155991816486E-02 -6.5340789262252105E-02 + -1.0014013329799551E-01 -1.2324234509152956E-01 -1.3187939662676182E-01 + -1.2491289654808319E-01 -1.0304405137528991E-01 -6.8808862019448663E-02 + -2.6345651936304129E-02 1.9059874242878382E-02 6.1603790639049159E-02 + 9.5703588151221985E-02 1.1675357469091278E-01 1.2179454079498239E-01 + 1.0999651794176001E-01 8.2870364361231838E-02 4.4155542168435417E-02 + -6.2593513881853944E-04 -4.4909434017687093E-02 -8.2032441463131142E-02 + -1.0625379974794572E-01 -1.1369225243462303E-01 -1.0302660273551115E-01 + -7.5823392613768553E-02 -3.6407153483375317E-02 8.7420215820873722E-03 + 5.1998160183819232E-02 8.5862316939980629E-02 1.0429287054711775E-01 + 1.0385624951960774E-01 8.4470824909895770E-02 4.9571010228177774E-02 + 5.6130081003879593E-03 -3.9035176205056650E-02 -7.5649791868206057E-02 + -9.6876340868270266E-02 -9.8283782482481624E-02 -7.9410040979306595E-02 + -4.4035692094803090E-02 4.3601157080014520E-04 4.4429379232455206E-02 + 7.8220449893598096E-02 9.4121883979691498E-02 8.8336622634976741E-02 + 6.2017449968270875E-02 2.1214322617818106E-02 -2.4368285916427517E-02 + -6.3593270546613928E-02 -8.6612116752491253E-02 -8.7428821429038142E-02 + -6.5625272498837192E-02 -2.6722078055903788E-02 1.9033898604485698E-02 + 5.9251013366909140E-02 8.2734410884502937E-02 8.2700678600270333E-02 + 5.8926280366284139E-02 1.8110871452346199E-02 -2.7799534422246169E-02 + -6.4986925605454257E-02 -8.1928487847104242E-02 -7.3110085613085823E-02 + -4.1059537286125519E-02 4.1012371054037029E-03 4.7641799796814488E-02 + 7.4950237342175638E-02 7.6525373395123775E-02 5.1515179233524035E-02 + 8.4251980188301597E-03 -3.7494652479891276E-02 -6.9503464281568186E-02 + -7.5523006854895811E-02 -5.2930746155176907E-02 -1.0026524235260721E-02 + 3.6684252204794363E-02 6.8660059493803299E-02 7.2732074154305035E-02 + 4.6796360900687978E-02 1.2500317486823041E-03 -4.4808401189160380E-02 + -7.1414767553059241E-02 -6.6497055180405384E-02 -3.1698474297947303E-02 + 1.7653121064877857E-02 5.8930093550761266E-02 7.2487830036562756E-02 + 5.1249534889831194E-02 4.8462379213403727E-03 -4.4235052171863756E-02 + -7.1272543374141503E-02 -6.1861556548648645E-02 -2.0019789038365276E-02 + 3.2867677327571322E-02 6.8547055512254790E-02 6.6965138029087448E-02 + 2.7939271233002012E-02 -2.7509434658544375E-02 -6.7921264467732612E-02 + -6.9133445671783061E-02 -2.9118573802481118E-02 2.9328949601690038E-02 + 7.0919706548522171E-02 6.9028784492008971E-02 2.3172587424615837E-02 + -3.8829522282160890E-02 -7.7011431686699439E-02 -6.4920941454614925E-02 + -8.4782572188508102E-03 5.5617085316640134E-02 8.3036331519663192E-02 + 5.2536211352835559E-02 -1.6948420803822757E-02 -7.6798552225447292E-02 + -8.2160259682367884E-02 -2.5899794850326511E-02 5.2705104303616149E-02 + 9.4199213926224296E-02 6.3700744998915759E-02 -1.9151345940992014E-02 + -9.0956971309789220E-02 -9.2205698528649696E-02 -1.6924143915431105E-02 + 7.7091093204299285E-02 1.1111823971979888E-01 5.1254677967741358E-02 + + + -1.1781335367760764E-16 -5.4761075447212673E-12 -2.2099389502896479E-11 + -5.0166842717092953E-11 -8.9981633997722393E-11 -1.4185321793639456E-10 + -2.0609745688983442E-10 -2.8303674317368360E-10 -3.7300012350624136E-10 + -4.7632342574289858E-10 -5.9334938794275011E-10 -7.2442778980964509E-10 + -8.6991558655064809E-10 -1.0301770451957159E-09 -1.2055838834231009E-09 + -1.3965154109358975E-09 -1.6033586734358454E-09 -1.8265085992414403E-09 + -2.0663681485981778E-09 -2.3233484657296274E-09 -2.5978690336789667E-09 + -2.8903578319913724E-09 -3.2012514972887025E-09 -3.5309954867888008E-09 + -3.8800442448225474E-09 -4.2488613724029934E-09 -4.6379197999016681E-09 + -5.0477019628882218E-09 -5.4786999811905830E-09 -5.9314158412339159E-09 + -6.4063615817174174E-09 -6.9040594826894897E-09 -7.4250422580824716E-09 + -7.9698532517695808E-09 -8.5390466372075827E-09 -9.1331876207299667E-09 + -9.7528526485565697E-09 -1.0398629617586673E-08 -1.1071118090043904E-08 + -1.1770929512042606E-08 -1.2498687436146169E-08 -1.3255027747989688E-08 + -1.4040598897039973E-08 -1.4856062131567845E-08 -1.5702091737908551E-08 + -1.6579375284087574E-08 -1.7488613867890943E-08 -1.8430522369459666E-08 + -1.9405829708490412E-08 -2.0415279106125047E-08 -2.1459628351613920E-08 + -2.2539650073838787E-08 -2.3656132017782980E-08 -2.4809877326037972E-08 + -2.6001704825437437E-08 -2.7232449318910544E-08 -2.8502961882649251E-08 + -2.9814110168684951E-08 -3.1166778712972043E-08 -3.2561869249077501E-08 + -3.4000301027577831E-08 -3.5483011141265522E-08 -3.7010954856270508E-08 + -3.8585105949202414E-08 -4.0206457050422236E-08 -4.1876019993554222E-08 + -4.3594826171349708E-08 -4.5363926898017407E-08 -4.7184393778137250E-08 + -4.9057319082275129E-08 -5.0983816129419960E-08 -5.2965019676365762E-08 + -5.5002086314163514E-08 -5.7096194871770127E-08 -5.9248546827023995E-08 + -6.1460366725078996E-08 -6.3732902604431257E-08 -6.6067426430674579E-08 + -6.8465234538125166E-08 -7.0927648079454673E-08 -7.3456013483478479E-08 + -7.6051702921243465E-08 -7.8716114780565536E-08 -8.1450674149170087E-08 + -8.4256833306586673E-08 -8.7136072224959553E-08 -9.0089899078930169E-08 + -9.3119850764759341E-08 -9.6227493428849784E-08 -9.9414423005843196E-08 + -1.0268226576645961E-07 -1.0603267887525815E-07 -1.0946735095849353E-07 + -1.1298800268225282E-07 -1.1659638734105510E-07 -1.2029429145710382E-07 + -1.2408353539038157E-07 -1.2796597395978296E-07 -1.3194349707548396E-07 + -1.3601803038274899E-07 -1.4019153591738149E-07 -1.4446601277302742E-07 + -1.4884349778054386E-07 -1.5332606619965046E-07 -1.5791583242308255E-07 + -1.6261495069347210E-07 -1.6742561583318466E-07 -1.7235006398734427E-07 + -1.7739057338028377E-07 -1.8254946508566025E-07 -1.8782910381048380E-07 + -1.9323189869330596E-07 -1.9876030411682401E-07 -2.0441682053515886E-07 + -2.1020399531607204E-07 -2.1612442359838598E-07 -2.2218074916488366E-07 + -2.2837566533096572E-07 -2.3471191584934389E-07 -2.4119229583106248E-07 + -2.4781965268314056E-07 -2.5459688706312931E-07 -2.6152695385089197E-07 + -2.6861286313791584E-07 -2.7585768123446400E-07 -2.8326453169489782E-07 + -2.9083659636148493E-07 -2.9857711642703165E-07 -3.0648939351667634E-07 + -3.1457679078918304E-07 -3.2284273405808980E-07 -3.3129071293306840E-07 + -3.3992428198184984E-07 -3.4874706191309593E-07 -3.5776274078058494E-07 + -3.6697507520909236E-07 -3.7638789164236239E-07 -3.8600508761356035E-07 + -3.9583063303861219E-07 -4.0586857153283939E-07 -4.1612302175130747E-07 + -4.2659817875331318E-07 -4.3729831539144723E-07 -4.4822778372565952E-07 + -4.5939101646279690E-07 -4.7079252842204619E-07 -4.8243691802676520E-07 + -4.9432886882316481E-07 -5.0647315102632552E-07 -5.1887462309403853E-07 + -5.3153823332897373E-07 -5.4446902150967169E-07 -5.5767212055088710E-07 + -5.7115275819380768E-07 -5.8491625872667200E-07 -5.9896804473635255E-07 + -6.1331363889143467E-07 -6.2795866575737540E-07 -6.4290885364430466E-07 + -6.5817003648805747E-07 -6.7374815576503178E-07 -6.8964926244148491E-07 + -7.0587951895786479E-07 -7.2244520124883459E-07 -7.3935270079959912E-07 + -7.5660852673920258E-07 -7.7421930797145413E-07 -7.9219179534415351E-07 + -8.1053286385730227E-07 -8.2924951491100720E-07 -8.4834887859376676E-07 + -8.6783821601188992E-07 -8.8772492166076635E-07 -9.0801652583873218E-07 + -9.2872069710431879E-07 -9.4984524477763099E-07 -9.7139812148666722E-07 + -9.9338742575937722E-07 -1.0158214046622743E-06 -1.0387084564864386E-06 + -1.0620571334817631E-06 -1.0858761446402937E-06 -1.1101743585295558E-06 + -1.1349608061767604E-06 -1.1602446840047847E-06 -1.1860353568208752E-06 + -1.2123423608590036E-06 -1.2391754068768384E-06 -1.2665443833083130E-06 + -1.2944593594727769E-06 -1.3229305888417532E-06 -1.3519685123643303E-06 + -1.3815837618522224E-06 -1.4117871634255933E-06 -1.4425897410207111E-06 + -1.4740027199605366E-06 -1.5060375305893931E-06 -1.5387058119728387E-06 + -1.5720194156639336E-06 -1.6059904095370636E-06 -1.6406310816905387E-06 + -1.6759539444192198E-06 -1.7119717382583849E-06 -1.7486974361001349E-06 + -1.7861442473836388E-06 -1.8243256223605263E-06 -1.8632552564367767E-06 + -1.9029470945924794E-06 -1.9434153358808433E-06 -1.9846744380078914E-06 + -2.0267391219942684E-06 -2.0696243769206358E-06 -2.1133454647581512E-06 + -2.1579179252855545E-06 -2.2033575810943935E-06 -2.2496805426840017E-06 + -2.2969032136477821E-06 -2.3450422959524765E-06 -2.3941147953120682E-06 + -2.4441380266579808E-06 -2.4951296197073420E-06 -2.5471075246310539E-06 + -2.6000900178234109E-06 -2.6540957077751392E-06 -2.7091435410516803E-06 + -2.7652528083785970E-06 -2.8224431508360227E-06 -2.8807345661641055E-06 + -2.9401474151814380E-06 -3.0007024283184567E-06 -3.0624207122679248E-06 + -3.1253237567545469E-06 -3.1894334414258475E-06 -3.2547720428665267E-06 + -3.3213622417384173E-06 -3.3892271300483788E-06 -3.4583902185463469E-06 + -3.5288754442559074E-06 -3.6007071781397588E-06 -3.6739102329024034E-06 + -3.7485098709326741E-06 -3.8245318123884037E-06 -3.9020022434259575E-06 + -3.9809478245770794E-06 -4.0613956992757799E-06 -4.1433735025378734E-06 + -4.2269093697959456E-06 -4.3120319458925310E-06 -4.3987703942342665E-06 + -4.4871544061099830E-06 -4.5772142101755870E-06 -4.6689805821087537E-06 + -4.7624848544364829E-06 -4.8577589265385586E-06 -4.9548352748300934E-06 + -5.0537469631263347E-06 -5.1545276531930022E-06 -5.2572116154854843E-06 + -5.3618337400802225E-06 -5.4684295478017698E-06 -5.5770352015490207E-06 + -5.6876875178240751E-06 -5.8004239784675104E-06 -5.9152827426036162E-06 + -6.0323026587994262E-06 -6.1515232774413100E-06 -6.2729848633330692E-06 + -6.3967284085194343E-06 -6.5227956453390307E-06 -6.6512290597109016E-06 + -6.7820719046587743E-06 -6.9153682140772799E-06 -7.0511628167444760E-06 + -7.1895013505850782E-06 -7.3304302771888602E-06 -7.4739968965887985E-06 + -7.6202493623035669E-06 -7.7692366966492052E-06 -7.9210088063245399E-06 + -8.0756164982755658E-06 -8.2331114958435151E-06 -8.3935464552017902E-06 + -8.5569749820868976E-06 -8.7234516488286315E-06 -8.8930320116848892E-06 + -9.0657726284864992E-06 -9.2417310765975890E-06 -9.4209659711972973E-06 + -9.6035369838882780E-06 -9.7895048616381002E-06 -9.9789314460593273E-06 + -1.0171879693034439E-05 -1.0368413692691612E-05 -1.0568598689737816E-05 + -1.0772501104155354E-05 -1.0980188552268655E-05 -1.1191729868187547E-05 + -1.1407195125634162E-05 -1.1626655660160003E-05 -1.1850184091760157E-05 + -1.2077854347891982E-05 -1.2309741686905262E-05 -1.2545922721891263E-05 + -1.2786475444958141E-05 -1.3031479251940439E-05 -1.3281014967550105E-05 + -1.3535164870977368E-05 -1.3794012721949130E-05 -1.4057643787253185E-05 + -1.4326144867736679E-05 -1.4599604325786960E-05 -1.4878112113303903E-05 + -1.5161759800171992E-05 -1.5450640603241571E-05 -1.5744849415827765E-05 + -1.6044482837737062E-05 -1.6349639205830091E-05 -1.6660418625131064E-05 + -1.6976923000492976E-05 -1.7299256068828723E-05 -1.7627523431918427E-05 + -1.7961832589802786E-05 -1.8302292974773495E-05 -1.8649015985970818E-05 + -1.9002115024599639E-05 -1.9361705529774678E-05 -1.9727905015006359E-05 + -2.0100833105338497E-05 -2.0480611575149708E-05 -2.0867364386630307E-05 + -2.1261217728946538E-05 -2.1662300058104770E-05 -2.2070742137527813E-05 + -2.2486677079356396E-05 -2.2910240386488346E-05 -2.3341569995368923E-05 + -2.3780806319545975E-05 -2.4228092294002535E-05 -2.4683573420282164E-05 + -2.5147397812420082E-05 -2.5619716243694860E-05 -2.6100682194215358E-05 + -2.6590451899357945E-05 -2.7089184399068488E-05 -2.7597041588045633E-05 + -2.8114188266820098E-05 -2.8640792193746556E-05 -2.9177024137924321E-05 + -2.9723057933062922E-05 -3.0279070532310257E-05 -3.0845242064059864E-05 + -3.1421755888754871E-05 -3.2008798656706689E-05 -3.2606560366946434E-05 + -3.3215234427126989E-05 -3.3835017714495517E-05 -3.4466110637954586E-05 + -3.5108717201231546E-05 -3.5763045067176380E-05 -3.6429305623207595E-05 + -3.7107714047926766E-05 -3.7798489378923073E-05 -3.8501854581787994E-05 + -3.9218036620363334E-05 -3.9947266528242831E-05 -4.0689779481550835E-05 + -4.1445814873020799E-05 -4.2215616387396075E-05 -4.2999432078177307E-05 + -4.3797514445740328E-05 -4.4610120516848340E-05 -4.5437511925584177E-05 + -4.6279954995727567E-05 -4.7137720824602867E-05 -4.8011085368424039E-05 + -4.8900329529163332E-05 -4.9805739242970476E-05 -5.0727605570171066E-05 + -5.1666224786870829E-05 -5.2621898478195838E-05 -5.3594933633197177E-05 + -5.4585642741449107E-05 -5.5594343891372603E-05 -5.6621360870313265E-05 + -5.7667023266406090E-05 -5.8731666572258284E-05 -5.9815632290482954E-05 + -6.0919268041116291E-05 -6.2042927670952384E-05 -6.3186971364829163E-05 + -6.4351765758900592E-05 -6.5537684055931277E-05 -6.6745106142647418E-05 + -6.7974418709183736E-05 -6.9226015370660695E-05 -7.0500296790932656E-05 + -7.1797670808543821E-05 -7.3118552564931853E-05 -7.4463364634919774E-05 + -7.5832537159536322E-05 -7.7226507981206452E-05 -7.8645722781353814E-05 + -8.0090635220459919E-05 -8.1561707080620292E-05 -8.3059408410646548E-05 + -8.4584217673755867E-05 -8.6136621897896424E-05 -8.7717116828754977E-05 + -8.9326207085493371E-05 -9.0964406319265348E-05 -9.2632237374559221E-05 + -9.4330232453421190E-05 -9.6058933282606302E-05 -9.7818891283713870E-05 + -9.9610667746354741E-05 -1.0143483400441058E-04 -1.0329197161543565E-04 + -1.0518267254325939E-04 -1.0710753934384621E-04 -1.0906718535446977E-04 + -1.1106223488626255E-04 -1.1309332342019889E-04 -1.1516109780657392E-04 + -1.1726621646804038E-04 -1.1940934960626635E-04 -1.2159117941227842E-04 + -1.2381240028055661E-04 -1.2607371902694650E-04 -1.2837585511045861E-04 + -1.3071954085902207E-04 -1.3310552169926379E-04 -1.3553455639038546E-04 + -1.3800741726221105E-04 -1.4052489045747791E-04 -1.4308777617844830E-04 + -1.4569688893791881E-04 -1.4835305781470321E-04 -1.5105712671367101E-04 + -1.5380995463042292E-04 -1.5661241592068294E-04 -1.5946540057449463E-04 + -1.6236981449530347E-04 -1.6532657978401473E-04 -1.6833663502811643E-04 + -1.7140093559595197E-04 -1.7452045393624247E-04 -1.7769617988294253E-04 + -1.8092912096553425E-04 -1.8422030272484725E-04 -1.8757076903451047E-04 + -1.9098158242812855E-04 -1.9445382443229365E-04 -1.9798859590552587E-04 + -2.0158701738325790E-04 -2.0525022942896265E-04 -2.0897939299154166E-04 + -2.1277568976907471E-04 -2.1664032257905815E-04 -2.2057451573523075E-04 + -2.2457951543111883E-04 -2.2865659013041176E-04 -2.3280703096428915E-04 + -2.3703215213582987E-04 -2.4133329133161949E-04 -2.4571181014069272E-04 + -2.5016909448093605E-04 -2.5470655503308129E-04 -2.5932562768243427E-04 + -2.6402777396846257E-04 -2.6881448154239551E-04 -2.7368726463296755E-04 + -2.7864766452045513E-04 -2.8369725001915698E-04 -2.8883761796845783E-04 + -2.9407039373264139E-04 -2.9939723170959549E-04 -3.0481981584857371E-04 + -3.1033986017717707E-04 -3.1595910933770712E-04 -3.2167933913307471E-04 + -3.2750235708241493E-04 -3.3343000298659828E-04 -3.3946414950379822E-04 + -3.4560670273530212E-04 -3.5185960282174981E-04 -3.5822482454997130E-04 + -3.6470437797063053E-04 -3.7130030902684998E-04 -3.7801470019401722E-04 + -3.8484967113097825E-04 -3.9180737934280439E-04 -3.9889002085535395E-04 + -4.0609983090182585E-04 -4.1343908462152082E-04 -4.2091009777103355E-04 + -4.2851522744808085E-04 -4.3625687282820803E-04 -4.4413747591458584E-04 + -4.5215952230113360E-04 -4.6032554194921731E-04 -4.6863810997813885E-04 + -4.7709984746968658E-04 -4.8571342228696926E-04 -4.9448154990781564E-04 + -5.0340699427296981E-04 -5.1249256864935669E-04 -5.2174113650869372E-04 + -5.3115561242169176E-04 -5.4073896296815880E-04 -5.5049420766324988E-04 + -5.6042441990017259E-04 -5.7053272790963709E-04 -5.8082231573632894E-04 + -5.9129642423273125E-04 -6.0195835207058047E-04 -6.1281145677027091E-04 + -6.2385915574854703E-04 -6.3510492738476614E-04 -6.4655231210609813E-04 + -6.5820491349197425E-04 -6.7006639939811959E-04 -6.8214050310054671E-04 + -6.9443102445981494E-04 -7.0694183110595618E-04 -7.1967685964440409E-04 + -7.3264011688330165E-04 -7.4583568108258197E-04 -7.5926770322516765E-04 + -7.7294040831072601E-04 -7.8685809667233060E-04 -8.0102514531646819E-04 + -8.1544600928677973E-04 -8.3012522305195985E-04 -8.4506740191824415E-04 + -8.6027724346690495E-04 -8.7575952901720931E-04 -8.9151912511527547E-04 + -9.0756098504927616E-04 -9.2389015039148433E-04 -9.4051175256758116E-04 + -9.5743101445375147E-04 -9.7465325200203222E-04 -9.9218387589439477E-04 + -1.0100283932261123E-03 -1.0281924092188563E-03 -1.0466816289641215E-03 + -1.0655018591974386E-03 -1.0846590101039515E-03 -1.1041590971559204E-03 + -1.1240082429826537E-03 -1.1442126792735124E-03 -1.1647787487144912E-03 + -1.1857129069590131E-03 -1.2070217246335166E-03 -1.2287118893784255E-03 + -1.2507902079251737E-03 -1.2732636082098353E-03 -1.2961391415240735E-03 + -1.3194239847040040E-03 -1.3431254423576608E-03 -1.3672509491317378E-03 + -1.3918080720182659E-03 -1.4168045127019523E-03 -1.4422481099488663E-03 + -1.4681468420371870E-03 -1.4945088292307742E-03 -1.5213423362962636E-03 + -1.5486557750644828E-03 -1.5764577070369237E-03 -1.6047568460380551E-03 + -1.6335620609143188E-03 -1.6628823782805289E-03 -1.6927269853145869E-03 + -1.7231052326012843E-03 -1.7540266370260540E-03 -1.7855008847195769E-03 + -1.8175378340540393E-03 -1.8501475186920358E-03 -1.8833401506889037E-03 + -1.9171261236495432E-03 -1.9515160159405515E-03 -1.9865205939586621E-03 + -2.0221508154564974E-03 -2.0584178329265393E-03 -2.0953329970443998E-03 + -2.1329078601723529E-03 -2.1711541799241583E-03 -2.2100839227922981E-03 + -2.2497092678385993E-03 -2.2900426104493997E-03 -2.3310965661563249E-03 + -2.3728839745237947E-03 -2.4154179031044293E-03 -2.4587116514634818E-03 + -2.5027787552734872E-03 -2.5476329904803247E-03 -2.5932883775418836E-03 + -2.6397591857406266E-03 -2.6870599375712115E-03 -2.7352054132045627E-03 + -2.7842106550295558E-03 -2.8340909722737615E-03 -2.8848619457044786E-03 + -2.9365394324114527E-03 -2.9891395706727109E-03 -3.0426787849048009E-03 + -3.0971737906989733E-03 -3.1526415999446745E-03 -3.2090995260418195E-03 + -3.2665651892034267E-03 -3.3250565218499823E-03 -3.3845917740971949E-03 + -3.4451895193386584E-03 -3.5068686599249543E-03 -3.5696484329409274E-03 + -3.6335484160826209E-03 -3.6985885336356774E-03 -3.7647890625567655E-03 + -3.8321706386597767E-03 -3.9007542629086317E-03 -3.9705613078182735E-03 + -4.0416135239658016E-03 -4.1139330466134780E-03 -4.1875424024454102E-03 + -4.2624645164199629E-03 -4.3387227187394999E-03 -4.4163407519397305E-03 + -4.4953427781002607E-03 -4.5757533861786378E-03 -4.6575975994697077E-03 + -4.7409008831923510E-03 -4.8256891522058020E-03 -4.9119887788574013E-03 + -4.9998266009642044E-03 -5.0892299299303678E-03 -5.1802265590025669E-03 + -5.2728447716658125E-03 -5.3671133501816360E-03 -5.4630615842712156E-03 + -5.5607192799455672E-03 -5.6601167684851572E-03 -5.7612849155714834E-03 + -5.8642551305727562E-03 -5.9690593759864239E-03 -6.0757301770407559E-03 + -6.1843006314581195E-03 -6.2948044193825627E-03 -6.4072758134740004E-03 + -6.5217496891720106E-03 -6.6382615351314508E-03 -6.7568474638329398E-03 + -6.8775442223706698E-03 -7.0003892034203015E-03 -7.1254204563899592E-03 + -7.2526766987566996E-03 -7.3821973275917914E-03 -7.5140224312772921E-03 + -7.6481928014169118E-03 -7.7847499449443828E-03 -7.9237360964317938E-03 + -8.0651942306014801E-03 -8.2091680750440467E-03 -8.3557021231457501E-03 + -8.5048416472285979E-03 -8.6566327119057505E-03 -8.8111221876560706E-03 + -8.9683577646204778E-03 -9.1283879666235676E-03 -9.2912621654239157E-03 + -9.4570305951960001E-03 -9.6257443672475122E-03 -9.7974554849750532E-03 + -9.9722168590617756E-03 -1.0150082322920476E-02 -1.0331106648385361E-02 + -1.0515345561656337E-02 -1.0702855759498791E-02 -1.0893694925703079E-02 + -1.1087921747806699E-02 -1.1285595934082999E-02 -1.1486778230800217E-02 + -1.1691530439753968E-02 -1.1899915436077598E-02 -1.2111997186333306E-02 + -1.2327840766888240E-02 -1.2547512382579309E-02 -1.2771079385670060E-02 + -1.2998610295103913E-02 -1.3230174816057079E-02 -1.3465843859795176E-02 + -1.3705689563837465E-02 -1.3949785312432137E-02 -1.4198205757347050E-02 + -1.4451026838979098E-02 -1.4708325807786568E-02 -1.4970181246048229E-02 + -1.5236673089952598E-02 -1.5507882652022015E-02 -1.5783892643874396E-02 + -1.6064787199327413E-02 -1.6350651897848317E-02 -1.6641573788353358E-02 + -1.6937641413360894E-02 -1.7238944833501427E-02 -1.7545575652388921E-02 + -1.7857627041856679E-02 -1.8175193767561562E-02 -1.8498372214960611E-02 + -1.8827260415663048E-02 -1.9161958074161864E-02 -1.9502566594948242E-02 + -1.9849189110012148E-02 -2.0201930506733089E-02 -2.0560897456163747E-02 + -2.0926198441710460E-02 -2.1297943788213272E-02 -2.1676245691428855E-02 + -2.2061218247919855E-02 -2.2452977485352854E-02 -2.2851641393208694E-02 + -2.3257329953907290E-02 -2.3670165174349878E-02 -2.4090271117881829E-02 + -2.4517773936677170E-02 -2.4952801904548790E-02 -2.5395485450184954E-02 + -2.5845957190815574E-02 -2.6304351966308877E-02 -2.6770806873700898E-02 + -2.7245461302159601E-02 -2.7728456968383795E-02 -2.8219937952439621E-02 + -2.8720050734034018E-02 -2.9228944229226842E-02 -2.9746769827582013E-02 + -3.0273681429757379E-02 -3.0809835485534256E-02 -3.1355391032285213E-02 + -3.1910509733880321E-02 -3.2475355920031188E-02 -3.3050096626070384E-02 + -3.3634901633166327E-02 -3.4229943508970580E-02 -3.4835397648695678E-02 + -3.5451442316621340E-02 -3.6078258688025076E-02 -3.6716030891535120E-02 + -3.7364946051900091E-02 -3.8025194333172703E-02 -3.8696968982302155E-02 + -3.9380466373128753E-02 -4.0075886050777311E-02 -4.0783430776440317E-02 + -4.1503306572546167E-02 -4.2235722768303334E-02 -4.2980892045612867E-02 + -4.3739030485340939E-02 -4.4510357613940663E-02 -4.5295096450414435E-02 + -4.6093473553604603E-02 -4.6905719069801129E-02 -4.7732066780654600E-02 + -4.8572754151379398E-02 -4.9428022379234826E-02 -5.0298116442267407E-02 + -5.1183285148298729E-02 -5.2083781184143058E-02 -5.2999861165033947E-02 + -5.3931785684243727E-02 -5.4879819362872770E-02 -5.5844230899789515E-02 + -5.6825293121697283E-02 -5.7823283033303252E-02 -5.8838481867567669E-02 + -5.9871175136002174E-02 -6.0921652678993646E-02 -6.1990208716121549E-02 + -6.3077141896438343E-02 -6.4182755348682077E-02 -6.5307356731384977E-02 + -6.6451258282843817E-02 -6.7614776870914231E-02 -6.8798234042589085E-02 + -7.0001956073320812E-02 -7.1226274016043575E-02 -7.2471523749851635E-02 + -7.3738046028284432E-02 -7.5026186527170843E-02 -7.6336295891981057E-02 + -7.7668729784630477E-02 -7.9023848929681353E-02 -8.0402019159881641E-02 + -8.1803611460979891E-02 -8.3229002015753950E-02 -8.4678572247183073E-02 + -8.6152708860697924E-02 -8.7651803885431118E-02 -8.9176254714397524E-02 + -9.0726464143520633E-02 -9.2302840409425380E-02 -9.3905797225913454E-02 + -9.5535753819025862E-02 -9.7193134960608121E-02 -9.8878371000274759E-02 + -1.0059189789567606E-01 -1.0233415724096322E-01 -1.0410559629334008E-01 + -1.0590666799759343E-01 -1.0773783100848081E-01 -1.0959954971085487E-01 + -1.1149229423740095E-01 -1.1341654048385182E-01 -1.1537277012154774E-01 + -1.1736147060719883E-01 -1.1938313518970067E-01 -1.2143826291385754E-01 + -1.2352735862084718E-01 -1.2565093294527246E-01 -1.2780950230862156E-01 + -1.3000358890896985E-01 -1.3223372070673420E-01 -1.3450043140629497E-01 + -1.3680426043329194E-01 -1.3914575290738654E-01 -1.4152545961028912E-01 + -1.4394393694882665E-01 -1.4640174691283275E-01 -1.4889945702762694E-01 + -1.5143764030084159E-01 -1.5401687516335200E-01 -1.5663774540405073E-01 + -1.5930084009820333E-01 -1.6200675352911195E-01 -1.6475608510280301E-01 + -1.6754943925544982E-01 -1.7038742535322607E-01 -1.7327065758428073E-01 + -1.7619975484251485E-01 -1.7917534060282542E-01 -1.8219804278748045E-01 + -1.8526849362326694E-01 -1.8838732948905215E-01 -1.9155519075338587E-01 + -1.9477272160175091E-01 -1.9804056985307450E-01 -2.0135938676508039E-01 + -2.0472982682807039E-01 -2.0815254754669496E-01 -2.1162820920926714E-01 + -2.1515747464416451E-01 -2.1874100896284507E-01 -2.2237947928898191E-01 + -2.2607355447324345E-01 -2.2982390479316350E-01 -2.3363120163762766E-01 + -2.3749611717538213E-01 -2.4141932400705082E-01 -2.4540149480005954E-01 + -2.4944330190590747E-01 -2.5354541695917360E-01 -2.5770851045762566E-01 + -2.6193325132285200E-01 -2.6622030644070915E-01 -2.7057034018096543E-01 + -2.7498401389545524E-01 -2.7946198539403455E-01 -2.8400490839765768E-01 + -2.8861343196782585E-01 -2.9328819991167931E-01 -2.9802985016198702E-01 + -3.0283901413123304E-01 -3.0771631603905653E-01 -3.1266237221219528E-01 + -3.1767779035615545E-01 -3.2276316879775363E-01 -3.2791909569768179E-01 + -3.3314614823225097E-01 -3.3844489174341408E-01 -3.4381587885619558E-01 + -3.4925964856261932E-01 -3.5477672527120119E-01 -3.6036761782110782E-01 + -3.6603281846000763E-01 -3.7177280178469396E-01 -3.7758802364347921E-01 + -3.8347891999941458E-01 -3.8944590575335747E-01 -3.9548937352586733E-01 + -4.0160969239696837E-01 -4.0780720660274916E-01 -4.1408223418781126E-01 + -4.2043506561255595E-01 -4.2686596231428486E-01 -4.3337515522112496E-01 + -4.3996284321776447E-01 -4.4662919156197300E-01 -4.5337433025095780E-01 + -4.6019835233650402E-01 -4.6710131218797973E-01 -4.7408322370218658E-01 + -4.8114405845917507E-01 -4.8828374382297585E-01 -4.9550216098649036E-01 + -5.0279914295951911E-01 -5.1017447249911441E-01 -5.1762787998150939E-01 + -5.2515904121467660E-01 -5.3276757519090467E-01 -5.4045304177860665E-01 + -5.4821493935274646E-01 -5.5605270236321458E-01 -5.6396569884067649E-01 + -5.7195322783938374E-01 -5.8001451681646843E-01 -5.8814871894750143E-01 + -5.9635491037794064E-01 -6.0463208741036101E-01 -6.1297916362737348E-01 + -6.2139496695024310E-01 -6.2987823663334430E-01 -6.3842762019473076E-01 + -6.4704167028314252E-01 -6.5571884148202453E-01 -6.6445748705111540E-01 + -6.7325585560654222E-01 -6.8211208774023258E-01 -6.9102421257994728E-01 + -6.9999014429107453E-01 -7.0900767852187785E-01 -7.1807448879378943E-01 + -7.2718812283874079E-01 -7.3634599888568475E-01 -7.4554540189872331E-01 + -7.5478347976951077E-01 -7.6405723946682436E-01 -7.7336354314656652E-01 + -7.8269910422568723E-01 -7.9206048342386515E-01 -8.0144408477703788E-01 + -8.1084615162737816E-01 -8.2026276259449704E-01 -8.2968982753306608E-01 + -8.3912308348260101E-01 -8.4855809061530862E-01 -8.5799022818851189E-01 + -8.6741469050854247E-01 -8.7682648291346343E-01 -8.8622041778244121E-01 + -8.9559111058010576E-01 -9.0493297594478761E-01 -9.1424022382995618E-01 + -9.2350685570884794E-01 -9.3272666085277667E-01 -9.4189321269420401E-01 + -9.5099986528631242E-01 -9.6003974987136920E-01 -9.6900577157089218E-01 + -9.7789060621117940E-01 -9.8668669729859471E-01 -9.9538625315950147E-01 + -1.0039812442606120E+00 -1.0124634007261117E+00 -1.0208242100687104E+00 + -1.0290549151525108E+00 -1.0371465124062833E+00 -1.0450897503065486E+00 + -1.0528751281506243E+00 -1.0604928951404755E+00 -1.0679330497991422E+00 + -1.0751853397420474E+00 -1.0822392618265164E+00 -1.0890840627033616E+00 + -1.0957087397952638E+00 -1.1021020427273318E+00 -1.1082524752360390E+00 + -1.1141482975832844E+00 -1.1197775295030725E+00 -1.1251279537089229E+00 + -1.1301871199907190E+00 -1.1349423499302076E+00 -1.1393807422648861E+00 + -1.1434891789304684E+00 -1.1472543318125148E+00 -1.1506626702380358E+00 + -1.1537004692381987E+00 -1.1563538186133944E+00 -1.1586086328319056E+00 + -1.1604506617934562E+00 -1.1618655024886981E+00 -1.1628386115853642E+00 + -1.1633553189715027E+00 -1.1634008422854911E+00 -1.1629603024619355E+00 + -1.1620187403215176E+00 -1.1605611342319397E+00 -1.1585724188656461E+00 + -1.1560375050787297E+00 -1.1529413009335283E+00 -1.1492687338856291E+00 + -1.1450047741537450E+00 -1.1401344592884537E+00 -1.1346429199531944E+00 + -1.1285154069277079E+00 -1.1217373193409683E+00 -1.1142942341369075E+00 + -1.1061719367723128E+00 -1.0973564531419497E+00 -1.0878340827212534E+00 + -1.0775914329119640E+00 -1.0666154545705619E+00 -1.0548934786935962E+00 + -1.0424132542277482E+00 -1.0291629869658627E+00 -1.0151313794830481E+00 + -1.0003076720595860E+00 -9.8468168452939431E-01 -9.6824385898449417E-01 + -9.5098530325717656E-01 -9.3289783509244584E-01 -9.1397402691363316E-01 + -8.9420725107418331E-01 -8.7359172547833230E-01 -8.5212255944244875E-01 + -8.2979579965807160E-01 -8.0660847610604736E-01 -7.8255864775981820E-01 + -7.5764544790381039E-01 -7.3186912888107436E-01 -7.0523110607211725E-01 + -6.7773400089463021E-01 -6.4938168260173779E-01 -6.2017930864424442E-01 + -5.9013336335057298E-01 -5.5925169466631752E-01 -5.2754354868426090E-01 + -4.9501960168505543E-01 -4.6169198939843797E-01 -4.2757433318587756E-01 + -3.9268176283703143E-01 -3.5703093566509125E-01 -3.2064005158022196E-01 + -2.8352886381557968E-01 -2.4571868497769392E-01 -2.0723238809164182E-01 + -1.6809440231267384E-01 -1.2833070297918517E-01 -8.7968795687623100E-02 + -4.7037694078574020E-02 -5.5678910350019416E-03 3.6408676991784121E-02 + 7.8858672794208315E-02 1.2174740860222895E-01 1.6503890387611078E-01 + 2.0869595088505419E-01 2.5268018822317478E-01 2.9695218237422116E-01 + 3.4147151739173948E-01 3.8619689271055602E-01 4.3108622904999483E-01 + 4.7609678230749680E-01 5.2118526527438025E-01 5.6630797693209600E-01 + 6.1142093900837213E-01 6.5648003938781219E-01 7.0144118188053939E-01 + 7.4626044175582051E-01 7.9089422634574491E-01 8.3529943991637290E-01 + 8.7943365189165101E-01 9.2325526739851804E-01 9.6672369898140587E-01 + 1.0097995382104170E+00 1.0524447257816878E+00 1.0946227185813453E+00 + 1.1362986520570146E+00 1.1774394961146959E+00 1.2180142026351348E+00 + 1.2579938425845993E+00 1.2973517305814193E+00 1.3360635346742591E+00 + 1.3741073689931425E+00 1.4114638668513591E+00 1.4481162318088392E+00 + 1.4840502641580440E+00 1.5192543602640729E+00 1.5537194821855653E+00 + 1.5874390950244743E+00 1.6204090695047595E+00 1.6526275473655598E+00 + 1.6840947672769573E+00 1.7148128491499790E+00 1.7447855349197516E+00 + 1.7740178841356864E+00 1.8025159229985410E+00 1.8302862458437055E+00 + 1.8573355684867163E+00 1.8836702333225079E+00 1.9092956666070573E+00 + 1.9342157889496840E+00 1.9584323807075361E+00 1.9819444047010315E+00 + 2.0047472894588361E+00 2.0268321770521465E+00 2.0481851404873788E+00 + 2.0687863765898156E+00 2.0886093813225344E+00 2.1076201155381216E+00 + 2.1257761702464646E+00 2.1430259415895123E+00 2.1593133949259977E+00 + 2.1745977320862240E+00 2.1888428399250572E+00 2.2020126678523604E+00 + 2.2140712802824742E+00 2.2249829108844286E+00 2.2347120188073117E+00 + 2.2432233471496987E+00 2.2504819840436032E+00 2.2564534268263943E+00 + 2.2611036498704218E+00 2.2643991767212528E+00 2.2663071572526441E+00 + 2.2667954505708758E+00 2.2658327143862746E+00 2.2633885015109123E+00 + 2.2594333640379736E+00 2.2539389656126438E+00 2.2468782020232072E+00 + 2.2382253301349690E+00 2.2279561049705907E+00 2.2160479245228881E+00 + 2.2024799816830063E+00 2.1872334224904435E+00 2.1702915097699571E+00 + 2.1516397911191341E+00 2.1312662701504603E+00 2.1091615798719618E+00 + 2.0853191571024356E+00 2.0597354168418707E+00 2.0324099255905077E+00 + 2.0033455726769653E+00 1.9725487386867979E+00 1.9400294601615689E+00 + 1.9058015897778691E+00 1.8698829512476869E+00 1.8322954881929345E+00 + 1.7930654062492402E+00 1.7522233076378873E+00 1.7098043174177069E+00 + 1.6658482005909969E+00 1.6203994691923507E+00 1.5735074784385459E+00 + 1.5252265109644696E+00 1.4756158481160815E+00 1.4247398272188279E+00 + 1.3726678836906281E+00 1.3194745768238163E+00 1.2652395980219511E+00 + 1.2100477602461199E+00 1.1539889674028398E+00 1.0971581623926685E+00 + 1.0396552525363667E+00 9.8158501110507523E-01 9.2305695370330820E-01 + 8.6418518828970359E-01 8.0508823767139148E-01 7.4588883337425949E-01 + 6.8671367987418819E-01 6.2769318827388121E-01 5.6896117862675766E-01 + 5.1065455024345174E-01 4.5291291946760631E-01 3.9587822457541189E-01 + 3.3969429763675973E-01 2.8450640337388972E-01 2.3046074526449697E-01 + 1.7770393935882439E-01 1.2638245651245222E-01 7.6642033976470902E-02 + 2.8627057532756378E-02 -1.7520084387465870E-02 -6.1659672909908217E-02 + -1.0365535530051437E-01 -1.4337486372001504E-01 -1.8069075368411400E-01 + -2.1548115950123137E-01 -2.4763056369376396E-01 -2.7703057713802692E-01 + -3.0358072638095979E-01 -3.2718924430666446E-01 -3.4777386003196986E-01 + -3.6526258360575381E-01 -3.7959448077178770E-01 -3.9072043272998297E-01 + -3.9860387549521353E-01 -4.0322151311091409E-01 -4.0456399862757908E-01 + -4.0263657640755851E-01 -3.9745967897457496E-01 -3.8906947129226765E-01 + -3.7751833503952920E-01 -3.6287528515938200E-01 -3.4522631070053011E-01 + -3.2467463175706457E-01 -3.0134086415198774E-01 -2.7536308341533416E-01 + -2.4689677958919440E-01 -2.1611469446167805E-01 -1.8320653300184742E-01 + -1.4837854105009518E-01 -1.1185294172527627E-01 -7.3867223552924660E-02 + -3.4673274009198250E-02 5.4636469767464380E-03 4.6266098004160934E-02 + 8.7445814918002018E-02 1.2870523914284715E-01 1.6973921595727215E-01 + 2.1023686128831284E-01 2.4988359367505331E-01 2.8836332593754377E-01 + 3.2536080879983936E-01 3.6056411626548579E-01 3.9366725994607782E-01 + 4.2437291681886630E-01 4.5239525206282233E-01 4.7746281572415361E-01 + 4.9932148902694989E-01 5.1773745321258946E-01 5.3250015090770719E-01 + 5.4342520723483723E-01 5.5035727524651901E-01 5.5317276784104741E-01 + 5.5178243616812483E-01 5.4613375272015074E-01 5.3621305589669832E-01 + 5.2204741189416137E-01 5.0370614937802483E-01 4.8130202260956861E-01 + 4.5499195958774891E-01 4.2497735339318043E-01 3.9150385734240911E-01 + 3.5486064782878701E-01 3.1537912288535225E-01 2.7343100958963590E-01 + 2.2942585946354885E-01 1.8380791801353363E-01 1.3705236250175951E-01 + 8.9660910915918143E-02 4.2156814871326935E-02 -4.9207402285572745E-03 + -5.1022793115053131E-02 -9.5597276042467219E-02 -1.3809613657419656E-01 + -1.7798283992751809E-01 -2.1474016713939673E-01 -2.4787821151581946E-01 + -2.7694246338058987E-01 -3.0152186132901698E-01 -3.2125667732678276E-01 + -3.3584609340739041E-01 -3.4505531976548581E-01 -3.4872209808509513E-01 + -3.4676243035666604E-01 -3.3917537260022518E-01 -3.2604673519075783E-01 + -3.0755153722340228E-01 -2.8395507187648500E-01 -2.5561245330161875E-01 + -2.2296653340540862E-01 -1.8654409912666853E-01 -1.4695028750711103E-01 + -1.0486118694815562E-01 -6.1014628367281103E-02 -1.6199209204788026E-02 + 2.8758364071757497E-02 7.3007483779612262E-02 1.1568922036720149E-01 + 1.5595304581372027E-01 1.9297442492693120E-01 2.2597295102695292E-01 + 2.5423065790878130E-01 2.7711009972199308E-01 2.9407175617709080E-01 + 3.0469029403884235E-01 3.0866919897737494E-01 3.0585328626867403E-01 + 2.9623860622739301E-01 2.7997928211464829E-01 2.5739085585077726E-01 + 2.2894977111507747E-01 1.9528869486052763E-01 1.5718746694662963E-01 + 1.1555957295548783E-01 7.1434156109081479E-02 2.5933718634807142E-02 + -1.9752191749743256E-02 -6.4396861818196982E-02 -1.0676925497322548E-01 + -1.4566905721213763E-01 -1.7996302216617885E-01 -2.0862157792101071E-01 + -2.3075454638623435E-01 -2.4564474156615856E-01 -2.5277816307832457E-01 + -2.5186949222024646E-01 -2.4288163567483673E-01 -2.2603815140567210E-01 + -2.0182753582853113E-01 -1.7099855253512752E-01 -1.3454604006353779E-01 + -9.3686946282953334E-02 -4.9826693879443801E-02 -4.5163761544706887E-03 + 4.0598297274386116E-02 8.3834954456412883E-02 1.2353764111724570E-01 + 1.5814285780663442E-01 1.8624604028382777E-01 2.0666569758891998E-01 + 2.1850224699024615E-01 2.2118852781359152E-01 2.1452905598366956E-01 + 1.9872531262859991E-01 1.7438475221149077E-01 1.4251176997547624E-01 + 1.0447957801149134E-01 6.1982787272164191E-02 1.6971452260829776E-02 + -2.8431631744312263E-02 -7.2027529993207273E-02 -1.1164779083963980E-01 + -1.4526627843007112E-01 -1.7111063262927592E-01 -1.8776723205248630E-01 + -1.9427328970382787E-01 -1.9018981488640865E-01 -1.7564967138785256E-01 + -1.5137587282248821E-01 -1.1866657963945174E-01 -7.9344968678010427E-02 + -3.5674174278681081E-02 9.7602431085126260E-03 5.4195482793335047E-02 + 9.4857209432227640E-02 1.2913654284063944E-01 1.5476739304048817E-01 + 1.6999207483569928E-01 1.7370274965554991E-01 1.6554672730632580E-01 + 1.4598509953288288E-01 1.1629659013440177E-01 7.8521835606255211E-02 + 3.5347413808458163E-02 -1.0066413508992032E-02 -5.4305397375368651E-02 + -9.3954857698137814E-02 -1.2586936219922848E-01 -1.4743765380096163E-01 + -1.5682025294886423E-01 -1.5313725316298496E-01 -1.3658594991848227E-01 + -1.0847217738181374E-01 -7.1145465049672479E-02 -2.7836042661412989E-02 + 1.7599226570927703E-02 6.1005461743009859E-02 9.8307474534146469E-02 + 1.2590368805610314E-01 1.4103843215755718E-01 1.4211319172828371E-01 + 1.2889978416945891E-01 1.0262512132898347E-01 6.5908016065091446E-02 + 2.2542768433644320E-02 -2.2859155991816486E-02 -6.5340789262252105E-02 + -1.0014013329799551E-01 -1.2324234509152956E-01 -1.3187939662676182E-01 + -1.2491289654808319E-01 -1.0304405137528991E-01 -6.8808862019448663E-02 + -2.6345651936304129E-02 1.9059874242878382E-02 6.1603790639049159E-02 + 9.5703588151221985E-02 1.1675357469091278E-01 1.2179454079498239E-01 + 1.0999651794176001E-01 8.2870364361231838E-02 4.4155542168435417E-02 + -6.2593513881853944E-04 -4.4909434017687093E-02 -8.2032441463131142E-02 + -1.0625379974794572E-01 -1.1369225243462303E-01 -1.0302660273551115E-01 + -7.5823392613768553E-02 -3.6407153483375317E-02 8.7420215820873722E-03 + 5.1998160183819232E-02 8.5862316939980629E-02 1.0429287054711775E-01 + 1.0385624951960774E-01 8.4470824909895770E-02 4.9571010228177774E-02 + 5.6130081003879593E-03 -3.9035176205056650E-02 -7.5649791868206057E-02 + -9.6876340868270266E-02 -9.8283782482481624E-02 -7.9410040979306595E-02 + -4.4035692094803090E-02 4.3601157080014520E-04 4.4429379232455206E-02 + 7.8220449893598096E-02 9.4121883979691498E-02 8.8336622634976741E-02 + 6.2017449968270875E-02 2.1214322617818106E-02 -2.4368285916427517E-02 + -6.3593270546613928E-02 -8.6612116752491253E-02 -8.7428821429038142E-02 + -6.5625272498837192E-02 -2.6722078055903788E-02 1.9033898604485698E-02 + 5.9251013366909140E-02 8.2734410884502937E-02 8.2700678600270333E-02 + 5.8926280366284139E-02 1.8110871452346199E-02 -2.7799534422246169E-02 + -6.4986925605454257E-02 -8.1928487847104242E-02 -7.3110085613085823E-02 + -4.1059537286125519E-02 4.1012371054037029E-03 4.7641799796814488E-02 + 7.4950237342175638E-02 7.6525373395123775E-02 5.1515179233524035E-02 + 8.4251980188301597E-03 -3.7494652479891276E-02 -6.9503464281568186E-02 + -7.5523006854895811E-02 -5.2930746155176907E-02 -1.0026524235260721E-02 + 3.6684252204794363E-02 6.8660059493803299E-02 7.2732074154305035E-02 + 4.6796360900687978E-02 1.2500317486823041E-03 -4.4808401189160380E-02 + -7.1414767553059241E-02 -6.6497055180405384E-02 -3.1698474297947303E-02 + 1.7653121064877857E-02 5.8930093550761266E-02 7.2487830036562756E-02 + 5.1249534889831194E-02 4.8462379213403727E-03 -4.4235052171863756E-02 + -7.1272543374141503E-02 -6.1861556548648645E-02 -2.0019789038365276E-02 + 3.2867677327571322E-02 6.8547055512254790E-02 6.6965138029087448E-02 + 2.7939271233002012E-02 -2.7509434658544375E-02 -6.7921264467732612E-02 + -6.9133445671783061E-02 -2.9118573802481118E-02 2.9328949601690038E-02 + 7.0919706548522171E-02 6.9028784492008971E-02 2.3172587424615837E-02 + -3.8829522282160890E-02 -7.7011431686699439E-02 -6.4920941454614925E-02 + -8.4782572188508102E-03 5.5617085316640134E-02 8.3036331519663192E-02 + 5.2536211352835559E-02 -1.6948420803822757E-02 -7.6798552225447292E-02 + -8.2160259682367884E-02 -2.5899794850326511E-02 5.2705104303616149E-02 + 9.4199213926224296E-02 6.3700744998915759E-02 -1.9151345940992014E-02 + -9.0956971309789220E-02 -9.2205698528649696E-02 -1.6924143915431105E-02 + 7.7091093204299285E-02 1.1111823971979888E-01 5.1254677967741358E-02 + + + -1.7836544448723338E-14 -3.8579789356132756E-12 -1.5566666416470845E-11 + -3.5339089924679269E-11 -6.3384064130825773E-11 -9.9924027438426941E-11 + -1.4517903603472907E-10 -1.9937699530156921E-10 -2.6274884992773977E-10 + -3.3553283586479132E-10 -4.1796675156584029E-10 -5.1030163624478288E-10 + -6.1278711079731863E-10 -7.2567810705929887E-10 -8.4923795790812068E-10 + -9.8373195108360999E-10 -1.1294371871583381E-09 -1.2866281081274473E-09 + -1.4555908581759421E-09 -1.6366121546429177E-09 -1.8299902068261447E-09 + -2.0360257402177360E-09 -2.2550258072473985E-09 -2.4873030094961290E-09 + -2.7331797317163556E-09 -2.9929814014415973E-09 -3.2670420432790092E-09 + -3.5557016551460810E-09 -3.8593059946299045E-09 -4.1782075585402141E-09 + -4.5127677425936664E-09 -4.8633560083281938E-09 -5.2303480988787174E-09 + -5.6141231089115875E-09 -6.0150754463320401E-09 -6.4335982702972777E-09 + -6.8701017343525865E-09 -7.3250015215374959E-09 -7.7987144359986513E-09 + -8.2916768939302912E-09 -8.8043237986477463E-09 -9.3371053587442148E-09 + -9.8904765426495507E-09 -1.0464904807703289E-08 -1.1060865725748282E-08 + -1.1678840460145486E-08 -1.2319326194187829E-08 -1.2982827369037310E-08 + -1.3669852686389417E-08 -1.4380927763489935E-08 -1.5116588918806545E-08 + -1.5877377719594000E-08 -1.6663849900729593E-08 -1.7476570627639843E-08 + -1.8316117232912386E-08 -1.9183078316099050E-08 -2.0078052105320473E-08 + -2.1001651651055252E-08 -2.1954497806642809E-08 -2.2937228667716217E-08 + -2.3950488224757714E-08 -2.4994939581080583E-08 -2.6071252565482084E-08 + -2.7180115765680554E-08 -2.8322227994802021E-08 -2.9498300610468881E-08 + -3.0709062470213930E-08 -3.1955252377447812E-08 -3.3237624126474435E-08 + -3.4556950895598687E-08 -3.5914013665025440E-08 -3.7309613274467388E-08 + -3.8744562470039024E-08 -4.0219694949897681E-08 -4.1735853367380967E-08 + -4.3293903060201089E-08 -4.4894724215595446E-08 -4.6539207786198949E-08 + -4.8228271226739686E-08 -4.9962844247534624E-08 -5.1743875920307769E-08 + -5.3572331236476863E-08 -5.5449195116782902E-08 -5.7375474330759399E-08 + -5.9352187194242533E-08 -6.1380381567660044E-08 -6.3461115949698206E-08 + -6.5595473605393183E-08 -6.7784559096229543E-08 -7.0029496775280572E-08 + -7.2331428544732836E-08 -7.4691526603265116E-08 -7.7110977618936084E-08 + -7.9590994763851975E-08 -8.2132812893065394E-08 -8.4737689982342210E-08 + -8.7406908153405231E-08 -9.0141775692177793E-08 -9.2943621224995605E-08 + -9.5813803186161140E-08 -9.8753704771168544E-08 -1.0176473042647221E-07 + -1.0484831663258764E-07 -1.0800592834370879E-07 -1.1123905134922367E-07 + -1.1454920260911829E-07 -1.1793793106838065E-07 -1.2140680990895862E-07 + -1.2495744468979920E-07 -1.2859147084889772E-07 -1.3231055379548302E-07 + -1.3611639054252626E-07 -1.4001070775519686E-07 -1.4399527087789101E-07 + -1.4807187248625230E-07 -1.5224234016146707E-07 -1.5650853596482142E-07 + -1.6087235748953566E-07 -1.6533573813050985E-07 -1.6990064593950067E-07 + -1.7456908768685508E-07 -1.7934310642372583E-07 -1.8422478456337912E-07 + -1.8921624036178460E-07 -1.9431963244324914E-07 -1.9953716596495027E-07 + -2.0487107924081258E-07 -2.1032365399670421E-07 -2.1589721954925086E-07 + -2.2159414410898036E-07 -2.2741683835976009E-07 -2.3336776199294105E-07 + -2.3944941912205591E-07 -2.4566435989985840E-07 -2.5201518353559333E-07 + -2.5850453602815065E-07 -2.6513511099164937E-07 -2.7190965493800092E-07 + -2.7883096404030788E-07 -2.8590188524551673E-07 -2.9312532619482877E-07 + -3.0050423301754891E-07 -3.0804162337394748E-07 -3.1574055684385483E-07 + -3.2360416032299681E-07 -3.3163561126076697E-07 -3.3983815099611129E-07 + -3.4821507642481790E-07 -3.5676975233875572E-07 -3.6550559566812789E-07 + -3.7442609245798633E-07 -3.8353479721702406E-07 -3.9283532203579242E-07 + -4.0233135064273130E-07 -4.1202663454544648E-07 -4.2192499013037066E-07 + -4.3203031180712451E-07 -4.4234656106892694E-07 -4.5287776936250265E-07 + -4.6362804974101014E-07 -4.7460158648581205E-07 -4.8580264356204620E-07 + -4.9723555708505598E-07 -5.0890475149480784E-07 -5.2081473072934971E-07 + -5.3297007830173929E-07 -5.4537546098373191E-07 -5.5803563950519014E-07 + -5.7095545128318184E-07 -5.8413983213868122E-07 -5.9759380320990289E-07 + -6.1132247910930430E-07 -6.2533106993666864E-07 -6.3962487772992949E-07 + -6.5420930781900527E-07 -6.6908985886500458E-07 -6.8427213196314864E-07 + -6.9976183460899106E-07 -7.1556477575469566E-07 -7.3168686842197310E-07 + -7.4813413984006573E-07 -7.6491272530932687E-07 -7.8202886934088692E-07 + -7.9948893431873396E-07 -8.1729940018363128E-07 -8.3546686175940119E-07 + -8.5399803666944557E-07 -8.7289976807422957E-07 -8.9217901762680514E-07 + -9.1184288118927736E-07 -9.3189858093106651E-07 -9.5235346922534069E-07 + -9.7321503896740520E-07 -9.9449091384730562E-07 -1.0161888610745468E-06 + -1.0383167864814967E-06 -1.0608827426828034E-06 -1.0838949291962851E-06 + -1.1073616917454081E-06 -1.1312915339792687E-06 -1.1556931108615594E-06 + -1.1805752358781979E-06 -1.2059468827652835E-06 -1.2318171950013665E-06 + -1.2581954705267818E-06 -1.2850911876702408E-06 -1.3125139952343435E-06 + -1.3404737122365048E-06 -1.3689803437238226E-06 -1.3980440746756530E-06 + -1.4276752711770969E-06 -1.4578844951976710E-06 -1.4886824957214762E-06 + -1.5200802222442942E-06 -1.5520888154866669E-06 -1.5847196273713456E-06 + -1.6179842136849365E-06 -1.6518943367280276E-06 -1.6864619779011301E-06 + -1.7216993341997031E-06 -1.7576188228287764E-06 -1.7942330864299570E-06 + -1.8315550063296011E-06 -1.8695976827487476E-06 -1.9083744678752883E-06 + -1.9478989483243675E-06 -1.9881849575414072E-06 -2.0292465858744746E-06 + -2.0710981717071889E-06 -2.1137543229864742E-06 -2.1572299044333492E-06 + -2.2015400548145461E-06 -2.2467001857391021E-06 -2.2927259910484503E-06 + -2.3396334443701964E-06 -2.3874388146585484E-06 -2.4361586636866915E-06 + -2.4858098531836927E-06 -2.5364095465301423E-06 -2.5879752253610485E-06 + -2.6405246884750188E-06 -2.6940760471795543E-06 -2.7486477506948351E-06 + -2.8042585796200893E-06 -2.8609276533772061E-06 -2.9186744403063233E-06 + -2.9775187572379748E-06 -3.0374807824953467E-06 -3.0985810609581698E-06 + -3.1608405055893013E-06 -3.2242804115775418E-06 -3.2889224582801340E-06 + -3.3547887145133303E-06 -3.4219016541909942E-06 -3.4902841523148582E-06 + -3.5599594989785831E-06 -3.6309514080394247E-06 -3.7032840194587475E-06 + -3.7769819081833301E-06 -3.8520701007465023E-06 -3.9285740673446332E-06 + -4.0065197416083848E-06 -4.0859335296456967E-06 -4.1668423097761529E-06 + -4.2492734477545810E-06 -4.3332548044028010E-06 -4.4188147412697105E-06 + -4.5059821339352320E-06 -4.5947863823737444E-06 -4.6852574116955043E-06 + -4.7774256915945455E-06 -4.8713222377236333E-06 -4.9669786321185343E-06 + -5.0644270216935436E-06 -5.1637001334756757E-06 -5.2648312870467669E-06 + -5.3678544042388481E-06 -5.4728040157720665E-06 -5.5797152770305596E-06 + -5.6886239782914645E-06 -5.7995665538806157E-06 -5.9125800947261503E-06 + -6.0277023647926191E-06 -6.1449718017476761E-06 -6.2644275454475874E-06 + -6.3861094315856917E-06 -6.5100580196436044E-06 -6.6363146008320395E-06 + -6.7649212086998492E-06 -6.8959206327632417E-06 -7.0293564400578078E-06 + -7.1652729729927671E-06 -7.3037153793576648E-06 -7.4447296182094083E-06 + -7.5883624794533583E-06 -7.7346615909619267E-06 -7.8836754406895469E-06 + -8.0354533907283375E-06 -8.1900456928304054E-06 -8.3475034996351784E-06 + -8.5078788870874770E-06 -8.6712248681720130E-06 -8.8375954122361356E-06 + -9.0070454573239117E-06 -9.1796309321717860E-06 -9.3554087695853982E-06 + -9.5344369296202451E-06 -9.7167744145075400E-06 -9.9024812871844864E-06 + -1.0091618692195151E-05 -1.0284248873787096E-05 -1.0480435196488711E-05 + -1.0680242158767715E-05 -1.0883735431786893E-05 -1.1090981854046233E-05 + -1.1302049477226350E-05 -1.1517007567040459E-05 -1.1735926642523927E-05 + -1.1958878485708287E-05 -1.2185936170857547E-05 -1.2417174086120743E-05 + -1.2652667957437783E-05 -1.2892494868148324E-05 -1.3136733292363235E-05 + -1.3385463111622188E-05 -1.3638765643706264E-05 -1.3896723664679977E-05 + -1.4159421442876106E-05 -1.4426944756770583E-05 -1.4699380929568804E-05 + -1.4976818852095632E-05 -1.5259349006541905E-05 -1.5547063506935762E-05 + -1.5840056122004973E-05 -1.6138422300402794E-05 -1.6442259205658124E-05 + -1.6751665750922099E-05 -1.7066742619696411E-05 -1.7387592308157187E-05 + -1.7714319147738961E-05 -1.8047029345066333E-05 -1.8385831017052516E-05 + -1.8730834218280997E-05 -1.9082150976048515E-05 -1.9439895337118018E-05 + -1.9804183385869613E-05 -2.0175133295199682E-05 -2.0552865356001983E-05 + -2.0937502024392441E-05 -2.1329167942461016E-05 -2.1727990001053426E-05 + -2.2134097361585786E-05 -2.2547621500996408E-05 -2.2968696259422680E-05 + -2.3397457878922443E-05 -2.3834045038324455E-05 -2.4278598912878361E-05 + -2.4731263202859245E-05 -2.5192184192277955E-05 -2.5661510786027865E-05 + -2.6139394554280505E-05 -2.6625989799725682E-05 -2.7121453573200852E-05 + -2.7625945757394841E-05 -2.8139629096436514E-05 -2.8662669249030446E-05 + -2.9195234848416610E-05 -2.9737497551190437E-05 -3.0289632088890209E-05 + -3.0851816329085540E-05 -3.1424231322120560E-05 -3.2007061366884610E-05 + -3.2600494068352602E-05 -3.3204720389792560E-05 -3.3819934721582812E-05 + -3.4446334934593320E-05 -3.5084122443082757E-05 -3.5733502279056060E-05 + -3.6394683140194374E-05 -3.7067877467934971E-05 -3.7753301512765048E-05 + -3.8451175394627690E-05 -3.9161723178910764E-05 -3.9885172947915011E-05 + -4.0621756866166396E-05 -4.1371711262887672E-05 -4.2135276693886345E-05 + -4.2912698029317675E-05 -4.3704224522190858E-05 -4.4510109895178006E-05 + -4.5330612406948728E-05 -4.6165994950406402E-05 -4.7016525120423163E-05 + -4.7882475308186127E-05 -4.8764122781059404E-05 -4.9661749771550799E-05 + -5.0575643567496877E-05 -5.1506096598261594E-05 -5.2453406530883170E-05 + -5.3417876364200691E-05 -5.4399814518424251E-05 -5.5399534935410044E-05 + -5.6417357183464811E-05 -5.7453606542407548E-05 -5.8508614124661724E-05 + -5.9582716962845789E-05 -6.0676258123950735E-05 -6.1789586819281170E-05 + -6.2923058507357169E-05 -6.4077035009351880E-05 -6.5251884623128428E-05 + -6.6447982240438056E-05 -6.7665709451613583E-05 -6.8905454693154214E-05 + -7.0167613335086706E-05 -7.1452587836052587E-05 -7.2760787849818074E-05 + -7.4092630359957383E-05 -7.5448539812932744E-05 -7.6828948252934050E-05 + -7.8234295445374881E-05 -7.9665029031287347E-05 -8.1121604657160060E-05 + -8.2604486121646515E-05 -8.4114145520764927E-05 -8.5651063396057810E-05 + -8.7215728883511230E-05 -8.8808639868401233E-05 -9.0430303145280959E-05 + -9.2081234571397938E-05 -9.3761959229158491E-05 -9.5473011593420735E-05 + -9.7214935699179632E-05 -9.8988285312379769E-05 -1.0079362409688552E-04 + -1.0263152580206385E-04 -1.0450257443817897E-04 -1.0640736445074061E-04 + -1.0834650092480525E-04 -1.1032059975821556E-04 -1.1233028786563101E-04 + -1.1437620337070543E-04 -1.1645899580360128E-04 -1.1857932630649122E-04 + -1.2073786784697414E-04 -1.2293530542096401E-04 -1.2517233626821989E-04 + -1.2744967009878721E-04 -1.2976802930097776E-04 -1.3212814918463816E-04 + -1.3453077819988986E-04 -1.3697667817448431E-04 -1.3946662455171314E-04 + -1.4200140664370531E-04 -1.4458182785777839E-04 -1.4720870597037040E-04 + -1.4988287336611776E-04 -1.5260517730664942E-04 -1.5537648020298768E-04 + -1.5819765986853880E-04 -1.6106960980467533E-04 -1.6399323948289022E-04 + -1.6696947462559444E-04 -1.6999925749176795E-04 -1.7308354718206616E-04 + -1.7622331993265774E-04 -1.7941956941565980E-04 -1.8267330706544095E-04 + -1.8598556238044018E-04 -1.8935738325677188E-04 -1.9278983630371122E-04 + -1.9628400718953959E-04 -1.9984100097675546E-04 -2.0346194246656654E-04 + -2.0714797655192480E-04 -2.1090026857688618E-04 -2.1472000469743312E-04 + -2.1860839225820852E-04 -2.2256666016708270E-04 -2.2659605928248828E-04 + -2.3069786279704256E-04 -2.3487336664629628E-04 -2.3912388990767256E-04 + -2.4345077521165616E-04 -2.4785538916991770E-04 -2.5233912278873656E-04 + -2.5690339192063522E-04 -2.6154963769543771E-04 -2.6627932697695291E-04 + -2.7109395281350277E-04 -2.7599503491517949E-04 -2.8098412012228589E-04 + -2.8606278289200048E-04 -2.9123262578457563E-04 -2.9649527997577783E-04 + -3.0185240575089037E-04 -3.0730569303990049E-04 -3.1285686193682365E-04 + -3.1850766323035111E-04 -3.2425987896708095E-04 -3.3011532299559210E-04 + -3.3607584154082099E-04 -3.4214331377292176E-04 -3.4831965240020524E-04 + -3.5460680426142031E-04 -3.6100675094768699E-04 -3.6752150939446736E-04 + -3.7415313254126063E-04 -3.8090370994745709E-04 -3.8777536846261917E-04 + -3.9477027288351891E-04 -4.0189062662364242E-04 -4.0913867241367831E-04 + -4.1651669298958436E-04 -4.2402701181241796E-04 -4.3167199378914506E-04 + -4.3945404601072673E-04 -4.4737561850965736E-04 -4.5543920501052182E-04 + -4.6364734372313603E-04 -4.7200261811683686E-04 -4.8050765774844487E-04 + -4.8916513905964093E-04 -4.9797778622623411E-04 -5.0694837199985910E-04 + -5.1607971857588403E-04 -5.2537469847007150E-04 -5.3483623541741247E-04 + -5.4446730527745390E-04 -5.5427093696924486E-04 -5.6425021340698715E-04 + -5.7440827246371857E-04 -5.8474830795239401E-04 -5.9527357061158479E-04 + -6.0598736912579785E-04 -6.1689307115060025E-04 -6.2799410436412465E-04 + -6.3929395753069729E-04 -6.5079618158798080E-04 -6.6250439075686899E-04 + -6.7442226365323416E-04 -6.8655354444499279E-04 -6.9890204401411467E-04 + -7.1147164113523505E-04 -7.2426628368415364E-04 -7.3728998987483783E-04 + -7.5054684949250959E-04 -7.6404102517919805E-04 -7.7777675371797084E-04 + -7.9175834735001295E-04 -8.0599019512298648E-04 -8.2047676424714723E-04 + -8.3522260147762730E-04 -8.5023233453885574E-04 -8.6551067355152380E-04 + -8.8106241249918742E-04 -8.9689243071495203E-04 -9.1300569439912267E-04 + -9.2940725814659052E-04 -9.4610226653542078E-04 -9.6309595570401123E-04 + -9.8039365499201937E-04 -9.9800078856994803E-04 -1.0159228771427613E-03 + -1.0341655396521969E-03 -1.0527344950070072E-03 -1.0716355638769131E-03 + -1.0908746704761203E-03 -1.1104578444075339E-03 -1.1303912225245562E-03 + -1.1506810508373154E-03 -1.1713336864338474E-03 -1.1923555994638629E-03 + -1.2137533751213614E-03 -1.2355337156937547E-03 -1.2577034426369119E-03 + -1.2802694986665496E-03 -1.3032389499190353E-03 -1.3266189881355000E-03 + -1.3504169328694856E-03 -1.3746402337586807E-03 -1.3992964728265971E-03 + -1.4243933668098621E-03 -1.4499387695532564E-03 -1.4759406744225172E-03 + -1.5024072167778568E-03 -1.5293466764737455E-03 -1.5567674804169730E-03 + -1.5846782051604476E-03 -1.6130875795494555E-03 -1.6420044873972279E-03 + -1.6714379702396022E-03 -1.7013972300978528E-03 -1.7318916323252624E-03 + -1.7629307084785046E-03 -1.7945241592448886E-03 -1.8266818574425548E-03 + -1.8594138510304565E-03 -1.8927303662105925E-03 -1.9266418105590543E-03 + -1.9611587762281501E-03 -1.9962920431901721E-03 -2.0320525825430315E-03 + -2.0684515598816534E-03 -2.1055003387111990E-03 -2.1432104839353844E-03 + -2.1815937653913969E-03 -2.2206621614573141E-03 -2.2604278627190587E-03 + -2.3009032756889604E-03 -2.3421010266136246E-03 -2.3840339653231528E-03 + -2.4267151691522520E-03 -2.4701579469468848E-03 -2.5143758431117953E-03 + -2.5593826417472832E-03 -2.6051923708579421E-03 -2.6518193066213925E-03 + -2.6992779777337953E-03 -2.7475831698382286E-03 -2.7967499300279317E-03 + -2.8467935714131679E-03 -2.8977296777808405E-03 -2.9495741083291000E-03 + -3.0023430024836810E-03 -3.0560527847939131E-03 -3.1107201699162113E-03 + -3.1663621676776212E-03 -3.2229960882325971E-03 -3.2806395473044827E-03 + -3.3393104715095153E-03 -3.3990271037902834E-03 -3.4598080089123925E-03 + -3.5216720790804856E-03 -3.5846385396482976E-03 -3.6487269548980141E-03 + -3.7139572339535930E-03 -3.7803496367706684E-03 -3.8479247802344781E-03 + -3.9167036443616471E-03 -3.9867075786054378E-03 -4.0579583082703680E-03 + -4.1304779410247343E-03 -4.2042889735410096E-03 -4.2794142982235514E-03 + -4.3558772100717536E-03 -4.4337014136495980E-03 -4.5129110301603895E-03 + -4.5935306046630247E-03 -4.6755851133828434E-03 -4.7590999711732227E-03 + -4.8441010390692279E-03 -4.9306146319940021E-03 -5.0186675265782785E-03 + -5.1082869691152534E-03 -5.1995006836393172E-03 -5.2923368801597948E-03 + -5.3868242629926504E-03 -5.4829920392745384E-03 -5.5808699275770339E-03 + -5.6804881666916579E-03 -5.7818775245383949E-03 -5.8850693072361694E-03 + -5.9900953683103110E-03 -6.0969881180538707E-03 -6.2057805330425304E-03 + -6.3165061658033315E-03 -6.4291991546470651E-03 -6.5438942336320050E-03 + -6.6606267427379018E-03 -6.7794326381581055E-03 -6.9003485027777358E-03 + -7.0234115568226655E-03 -7.1486596686729641E-03 -7.2761313658440659E-03 + -7.4058658461630426E-03 -7.5379029890964731E-03 -7.6722833672778880E-03 + -7.8090482582096835E-03 -7.9482396561588453E-03 -8.0899002842180854E-03 + -8.2340736065871379E-03 -8.3808038410243813E-03 -8.5301359715008272E-03 + -8.6821157610492833E-03 -8.8367897648223837E-03 -8.9942053433390463E-03 + -9.1544106759454784E-03 -9.3174547744777261E-03 -9.4833874971443372E-03 + -9.6522595626098214E-03 -9.8241225642994815E-03 -9.9990289849236531E-03 + -1.0177032211210057E-02 -1.0358186548887136E-02 -1.0542547237850874E-02 + -1.0730170467602898E-02 -1.0921113392879902E-02 -1.1115434149555669E-02 + -1.1313191870741602E-02 -1.1514446703148402E-02 -1.1719259823678141E-02 + -1.1927693456266979E-02 -1.2139810888963952E-02 -1.2355676491267046E-02 + -1.2575355731697534E-02 -1.2798915195644051E-02 -1.3026422603441364E-02 + -1.3257946828727031E-02 -1.3493557917037905E-02 -1.3733327104685278E-02 + -1.3977326837882375E-02 -1.4225630792139846E-02 -1.4478313891937121E-02 + -1.4735452330658332E-02 -1.4997123590793391E-02 -1.5263406464425316E-02 + -1.5534381073990506E-02 -1.5810128893306415E-02 -1.6090732768897463E-02 + -1.6376276941581270E-02 -1.6666847068350178E-02 -1.6962530244537158E-02 + -1.7263415026259742E-02 -1.7569591453150381E-02 -1.7881151071384556E-02 + -1.8198186956987675E-02 -1.8520793739431659E-02 -1.8849067625525490E-02 + -1.9183106423593704E-02 -1.9523009567950115E-02 -1.9868878143654473E-02 + -2.0220814911564713E-02 -2.0578924333690029E-02 -2.0943312598814007E-02 + -2.1314087648427221E-02 -2.1691359202943072E-02 -2.2075238788193494E-02 + -2.2465839762229864E-02 -2.2863277342402819E-02 -2.3267668632714570E-02 + -2.3679132651479508E-02 -2.4097790359237186E-02 -2.4523764686971580E-02 + -2.4957180564584885E-02 -2.5398164949655255E-02 -2.5846846856463022E-02 + -2.6303357385275110E-02 -2.6767829751900434E-02 -2.7240399317502325E-02 + -2.7721203618655495E-02 -2.8210382397664921E-02 -2.8708077633099155E-02 + -2.9214433570602692E-02 -2.9729596753889628E-02 -3.0253716055996905E-02 + -3.0786942710731444E-02 -3.1329430344337550E-02 -3.1881335007351519E-02 + -3.2442815206643341E-02 -3.3014031937657243E-02 -3.3595148716800270E-02 + -3.4186331614002918E-02 -3.4787749285411541E-02 -3.5399573006233323E-02 + -3.6021976703684178E-02 -3.6655136990062780E-02 -3.7299233195902330E-02 + -3.7954447403203431E-02 -3.8620964478735580E-02 -3.9298972107370655E-02 + -3.9988660825455130E-02 -4.0690224054180137E-02 -4.1403858132940820E-02 + -4.2129762352668639E-02 -4.2868138989099643E-02 -4.3619193335969267E-02 + -4.4383133738095472E-02 -4.5160171624352360E-02 -4.5950521540470926E-02 + -4.6754401181659633E-02 -4.7572031425023122E-02 -4.8403636361732436E-02 + -4.9249443328910576E-02 -5.0109682941233094E-02 -5.0984589122164269E-02 + -5.1874399134819421E-02 -5.2779353612424612E-02 -5.3699696588295612E-02 + -5.4635675525333001E-02 -5.5587541344966719E-02 -5.6555548455526163E-02 + -5.7539954779960108E-02 -5.8541021782880148E-02 -5.9559014496860477E-02 + -6.0594201547973105E-02 -6.1646855180448171E-02 -6.2717251280448472E-02 + -6.3805669398878273E-02 -6.4912392773168653E-02 -6.6037708347974344E-02 + -6.7181906794703275E-02 -6.8345282529821763E-02 -6.9528133731866754E-02 + -7.0730762357065005E-02 -7.1953474153500216E-02 -7.3196578673748486E-02 + -7.4460389285874715E-02 -7.5745223182721574E-02 -7.7051401389401045E-02 + -7.8379248768862333E-02 -7.9729094025490319E-02 -8.1101269706569903E-02 + -8.2496112201563082E-02 -8.3913961739054757E-02 -8.5355162381264518E-02 + -8.6820062016013097E-02 -8.8309012346005800E-02 -8.9822368875308409E-02 + -9.1360490892902019E-02 -9.2923741453154990E-02 -9.4512487353082056E-02 + -9.6127099106253305E-02 -9.7767950913183438E-02 -9.9435420628064805E-02 + -1.0112988972165321E-01 -1.0285174324019095E-01 -1.0460136976012330E-01 + -1.0637916133849960E-01 -1.0818551345882643E-01 -1.1002082497220445E-01 + -1.1188549803354382E-01 -1.1377993803265615E-01 -1.1570455352002726E-01 + -1.1765975612702276E-01 -1.1964596048033714E-01 -1.2166358411044134E-01 + -1.2371304735377085E-01 -1.2579477324845914E-01 -1.2790918742331694E-01 + -1.3005671797981427E-01 -1.3223779536680944E-01 -1.3445285224772488E-01 + -1.3670232335991078E-01 -1.3898664536588792E-01 -1.4130625669616600E-01 + -1.4366159738334813E-01 -1.4605310888718459E-01 -1.4848123391025916E-01 + -1.5094641620395344E-01 -1.5344910036438197E-01 -1.5598973161789720E-01 + -1.5856875559584208E-01 -1.6118661809813586E-01 -1.6384376484535196E-01 + -1.6654064121886009E-01 -1.6927769198865211E-01 -1.7205536102841398E-01 + -1.7487409101745388E-01 -1.7773432312902926E-01 -1.8063649670461934E-01 + -1.8358104891372795E-01 -1.8656841439871552E-01 -1.8959902490419006E-01 + -1.9267330889051096E-01 -1.9579169113083122E-01 -1.9895459229127632E-01 + -2.0216242849363966E-01 -2.0541561086015483E-01 -2.0871454503974848E-01 + -2.1205963071525055E-01 -2.1545126109103219E-01 -2.1888982236044563E-01 + -2.2237569315254982E-01 -2.2590924395750883E-01 -2.2949083653007590E-01 + -2.3312082327056388E-01 -2.3679954658269953E-01 -2.4052733820772354E-01 + -2.4430451853415877E-01 -2.4813139588254840E-01 -2.5200826576460877E-01 + -2.5593541011607529E-01 -2.5991309650267458E-01 -2.6394157729849710E-01 + -2.6802108883617576E-01 -2.7215185052819946E-01 -2.7633406395867627E-01 + -2.8056791194495118E-01 -2.8485355756835545E-01 -2.8919114317348893E-01 + -2.9358078933535620E-01 -2.9802259379373208E-01 -3.0251663035410165E-01 + -3.0706294775456555E-01 -3.1166156849807286E-01 -3.1631248764939618E-01 + -3.2101567159624084E-01 -3.2577105677391333E-01 -3.3057854835300898E-01 + -3.3543801888956193E-01 -3.4034930693714388E-01 -3.4531221562046255E-01 + -3.5032651116993996E-01 -3.5539192141690401E-01 -3.6050813424897010E-01 + -3.6567479602528458E-01 -3.7089150995130038E-01 -3.7615783441283746E-01 + -3.8147328126923591E-01 -3.8683731410540534E-01 -3.9224934644271753E-01 + -3.9770873990870098E-01 -4.0321480236555141E-01 -4.0876678599762029E-01 + -4.1436388535804008E-01 -4.2000523537478851E-01 -4.2568990931654288E-01 + -4.3141691671884874E-01 -4.3718520127111032E-01 -4.4299363866517277E-01 + -4.4884103440624612E-01 -4.5472612158716064E-01 -4.6064755862699375E-01 + -4.6660392697532027E-01 -4.7259372878344619E-01 -4.7861538454416863E-01 + -4.8466723070177203E-01 -4.9074751723415522E-01 -4.9685440520917445E-01 + -5.0298596431747800E-01 -5.0914017038435810E-01 -5.1531490286331438E-01 + -5.2150794231433362E-01 -5.2771696787003897E-01 -5.3393955469324705E-01 + -5.4017317142964205E-01 -5.4641517765960435E-01 -5.5266282135354328E-01 + -5.5891323633539025E-01 -5.6516343975921268E-01 -5.7141032960430271E-01 + -5.7765068219440319E-01 -5.8388114974716010E-01 -5.9009825796021387E-01 + -5.9629840364082187E-01 -6.0247785238628460E-01 -6.0863273632287085E-01 + -6.1475905191142854E-01 -6.2085265782834076E-01 -6.2690927293090903E-01 + -6.3292447431683885E-01 -6.3889369548795893E-01 -6.4481222462885812E-01 + -6.5067520301167803E-01 -6.5647762353886485E-01 -6.6221432943627856E-01 + -6.6788001310959644E-01 -6.7346921517765623E-01 -6.7897632369690997E-01 + -6.8439557359184455E-01 -6.8972104630687248E-01 -6.9494666969581931E-01 + -7.0006621816584635E-01 -7.0507331309325805E-01 -7.0996142352938585E-01 + -7.1472386721536507E-01 -7.1935381192533809E-01 -7.2384427715826305E-01 + -7.2818813619923572E-01 -7.3237811857184465E-01 -7.3640681290375409E-01 + -7.4026667022840065E-01 -7.4395000774625519E-01 -7.4744901306972267E-01 + -7.5075574897638864E-01 -7.5386215869578743E-01 -7.5676007175544735E-01 + -7.5944121041241142E-01 -7.6189719669686173E-01 -7.6411956009485049E-01 + -7.6609974589744745E-01 -7.6782912424385863E-01 -7.6929899988622452E-01 + -7.7050062270389186E-01 -7.7142519899494488E-01 -7.7206390357264520E-01 + -7.7240789269419519E-01 -7.7244831784890533E-01 -7.7217634043231154E-01 + -7.7158314733216982E-01 -7.7065996745144394E-01 -7.6939808919240682E-01 + -7.6778887892482162E-01 -7.6582380045979248E-01 -7.6349443554927088E-01 + -7.6079250542940513E-01 -7.5770989342380324E-01 -7.5423866862049038E-01 + -7.5037111063367268E-01 -7.4609973545850672E-01 -7.4141732242384006E-01 + -7.3631694224427180E-01 -7.3079198616897478E-01 -7.2483619622034889E-01 + -7.1844369651094997E-01 -7.1160902562188288E-01 -7.0432717002040068E-01 + -6.9659359848838442E-01 -6.8840429752687105E-01 -6.7975580769486665E-01 + -6.7064526083321319E-01 -6.6107041811619316E-01 -6.5102970886514211E-01 + -6.4052227004916640E-01 -6.2954798638847664E-01 -6.1810753096561311E-01 + -6.0620240623905275E-01 -5.9383498534239243E-01 -5.8100855354026615E-01 + -5.6772734969971461E-01 -5.5399660762266068E-01 -5.3982259707144487E-01 + -5.2521266430527902E-01 -5.1017527193075052E-01 -4.9472003785440227E-01 + -4.7885777310973671E-01 -4.6260051831504129E-01 -4.4596157850209905E-01 + -4.2895555603911234E-01 -4.1159838135445515E-01 -3.9390734115076198E-01 + -3.7590110378200015E-01 -3.5759974144905898E-01 -3.3902474885280809E-01 + -3.2019905792710673E-01 -3.0114704825827682E-01 -2.8189455278231224E-01 + -2.6246885833667521E-01 -2.4289870062995872E-01 -2.2321425318066937E-01 + -2.0344710976550912E-01 -1.8363025990870974E-01 -1.6379805693683527E-01 + -1.4398617811887413E-01 -1.2423157640941920E-01 -1.0457242331349043E-01 + -8.5048042395818146E-02 -6.5698832965293066E-02 -4.6566183477098545E-02 + -2.7692374211528287E-02 -9.1204688097200528E-03 9.1058057267508884E-03 + 2.6942190933204099E-02 4.4344040998120206E-02 6.1266479374973037E-02 + 7.7664568113844104E-02 9.3493490076665464E-02 1.0870874413177870E-01 + 1.2326635334652904E-01 1.3712308611092247E-01 1.5023669003008575E-01 + 1.6256613831835251E-01 1.7407188831292333E-01 1.8471615159967478E-01 + 1.9446317510793157E-01 2.0327953238470689E-01 2.1113442410176594E-01 + 2.1799998668136800E-01 2.2385160774852614E-01 2.2866824692973808E-01 + 2.3243276032058063E-01 2.3513222673827666E-01 2.3675827366100730E-01 + 2.3730740053444721E-01 2.3678129689913605E-01 2.3518715256127642E-01 + 2.3253795679627198E-01 2.2885278334082387E-01 2.2415705769814095E-01 + 2.1848280305443027E-01 2.1186886088643830E-01 2.0436108213280024E-01 + 1.9601248461000170E-01 1.8688337218111695E-01 1.7704141103648904E-01 + 1.6656165832519221E-01 1.5552653828939245E-01 1.4402576100648778E-01 + 1.3215617884168296E-01 1.2002157576273302E-01 1.0773238477535987E-01 + 9.5405328908791512E-02 8.3162981422624210E-02 7.1133241225660560E-02 + 5.9448719900971475E-02 4.8246037225873464E-02 3.7665022666802571E-02 + 2.7847821023276362E-02 1.8937901197275349E-02 1.1078967978914734E-02 + 4.4137777699754062E-03 -9.1713968427313780E-04 -4.7768502161275204E-03 + -7.1241801606093877E-03 -7.9273864611895395E-03 -7.0731725299213073E-03 + -4.4574874272488340E-03 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + 2.8125950506649223E-14 1.3829415134683374E-13 8.3434348487768756E-13 + 2.3990352764777278E-12 5.0928553475859759E-12 9.1540140157019584E-12 + 1.4813295587591135E-11 2.2294912667742493E-11 3.1819884641137971E-11 + 4.3609412309564436E-11 5.7885832544861412E-11 7.4873515937119290E-11 + 9.4799844381915504E-11 1.1789588642472187E-10 1.4439696441079135E-10 + 1.7454317179332021E-10 2.0857982707128744E-10 2.4675788599312827E-10 + 2.8933432440242669E-10 3.3657249792583115E-10 3.8874248449714791E-10 + 4.4612141421360948E-10 5.0899378994098588E-10 5.7765180140590731E-10 + 6.5239563497993543E-10 7.3353378095204873E-10 8.2138333977610434E-10 + 9.1627032853962421E-10 1.0185299887120609E-09 1.1285070960823183E-09 + 1.2465562736774630E-09 1.3730423083602772E-09 1.5083404717275828E-09 + 1.6528368458701044E-09 1.8069286545051373E-09 1.9710245999531347E-09 + 2.1455452063967490E-09 2.3309231698344256E-09 2.5276037151193327E-09 + 2.7360449604572193E-09 2.9567182897232102E-09 3.1901087329467166E-09 + 3.4367153553055235E-09 3.6970516549638495E-09 3.9716459700848961E-09 + 4.2610418953456369E-09 4.5657987082800735E-09 4.8864918057770156E-09 + 5.2237131510591458E-09 5.5780717314719021E-09 5.9501940274131395E-09 + 6.3407244927379020E-09 6.7503260469764851E-09 7.1796805797086214E-09 + 7.6294894674415860E-09 8.1004741033459294E-09 8.5933764402083666E-09 + 9.1089595469683039E-09 9.6480081792112314E-09 1.0211329363999924E-08 + 1.0799752999432129E-08 1.1414132469321753E-08 1.2055345273409222E-08 + 1.2724293673515653E-08 1.3421905356065024E-08 1.4149134111407975E-08 + 1.4906960530391438E-08 1.5696392718628258E-08 1.6518467028932173E-08 + 1.7374248812394495E-08 1.8264833188590368E-08 1.9191345835414478E-08 + 2.0154943799058046E-08 2.1156816324651976E-08 2.2198185708113394E-08 + 2.3280308169746775E-08 2.4404474750163987E-08 2.5572012229102043E-08 + 2.6784284067731565E-08 2.8042691375064041E-08 2.9348673899080927E-08 + 3.0703711043223448E-08 3.2109322908898265E-08 3.3567071364669923E-08 + 3.5078561142828941E-08 3.6645440964040718E-08 3.8269404690799189E-08 + 3.9952192510426409E-08 4.1695592148379288E-08 4.3501440112642400E-08 + 4.5371622970006987E-08 4.7308078655055161E-08 4.9312797812690285E-08 + 5.1387825175074772E-08 5.3535260973858958E-08 5.5757262388606889E-08 + 5.8056045032347849E-08 6.0433884475205997E-08 6.2893117807084472E-08 + 6.5436145240405620E-08 6.8065431753933527E-08 7.0783508778731965E-08 + 7.3592975927337207E-08 7.6496502767252191E-08 7.9496830639897676E-08 + 8.2596774526183718E-08 8.5799224959895209E-08 8.9107149990114814E-08 + 9.2523597193939240E-08 9.6051695740774528E-08 9.9694658509530615E-08 + 1.0345578426006854E-07 1.0733845986028777E-07 1.1134616257027658E-07 + 1.1548246238498548E-07 1.1975102443691953E-07 1.2415561146038526E-07 + 1.2870008631886492E-07 1.3338841459713382E-07 1.3822466725977475E-07 + 1.4321302337778739E-07 1.4835777292503502E-07 1.5366331964631254E-07 + 1.5913418399886744E-07 1.6477500616925265E-07 1.7059054916743602E-07 + 1.7658570200014333E-07 1.8276548292545921E-07 1.8913504279076442E-07 + 1.9569966845614177E-07 2.0246478630543370E-07 2.0943596584719489E-07 + 2.1661892340783938E-07 2.2401952591933728E-07 2.3164379480388218E-07 + 2.3949790995800922E-07 2.4758821383870448E-07 2.5592121565411976E-07 + 2.6450359566156369E-07 2.7334220957551638E-07 2.8244409308848239E-07 + 2.9181646650756720E-07 3.0146673950973955E-07 3.1140251601881627E-07 + 3.2163159920728286E-07 3.3216199662614715E-07 3.4300192546609977E-07 + 3.5415981795334153E-07 3.6564432688352726E-07 3.7746433129735788E-07 + 3.8962894230144680E-07 4.0214750903817996E-07 4.1502962480838224E-07 + 4.2828513335070124E-07 4.4192413528172088E-07 4.5595699470091798E-07 + 4.7039434596468366E-07 4.8524710063373321E-07 5.0052645459834825E-07 + 5.1624389538599950E-07 5.3241120965602117E-07 5.4904049088612318E-07 + 5.6614414725565775E-07 5.8373490973066822E-07 6.0182584035589490E-07 + 6.2043034075902990E-07 6.3956216087265711E-07 6.5923540787945036E-07 + 6.7946455538634261E-07 7.0026445283352838E-07 7.2165033514431658E-07 + 7.4363783262198580E-07 7.6624298109997924E-07 7.8948223235191598E-07 + 8.1337246476806849E-07 8.3793099430513096E-07 8.6317558571626970E-07 + 8.8912446406863032E-07 9.1579632655565933E-07 9.4321035461178289E-07 + 9.7138622633718046E-07 1.0003441292405924E-06 1.0301047733082945E-06 + 1.0606894044075844E-06 1.0921198180333458E-06 1.1244183734064585E-06 + 1.1576080079330643E-06 1.1917122520339092E-06 1.2267552443532400E-06 + 1.2627617473569554E-06 1.2997571633299665E-06 1.3377675507829826E-06 + 1.3768196412791860E-06 1.4169408566915362E-06 1.4581593269017082E-06 + 1.5005039079519655E-06 1.5440042006615327E-06 1.5886905697193560E-06 + 1.6345941632654138E-06 1.6817469329730720E-06 1.7301816546452823E-06 + 1.7799319493377623E-06 1.8310323050226006E-06 1.8835180988061192E-06 + 1.9374256197151280E-06 1.9927920920661045E-06 2.0496556994321689E-06 + 2.1080556092231377E-06 2.1680319978942929E-06 2.2296260767999209E-06 + 2.2928801187080829E-06 2.3578374849934868E-06 2.4245426535257702E-06 + 2.4930412472709272E-06 2.5633800636240846E-06 2.6356071044922745E-06 + 2.7097716071463265E-06 2.7859240758615067E-06 2.8641163143669922E-06 + 2.9444014591248201E-06 3.0268340134594417E-06 3.1114698825595495E-06 + 3.1983664093744247E-06 3.2875824114275707E-06 3.3791782185710096E-06 + 3.4732157117041867E-06 3.5697583624820554E-06 3.6688712740375074E-06 + 3.7706212227439783E-06 3.8750767010447018E-06 3.9823079613757205E-06 + 4.0923870612105126E-06 4.2053879092547474E-06 4.3213863128203778E-06 + 4.4404600264091251E-06 4.5626888015360108E-06 4.6881544378245045E-06 + 4.8169408354055615E-06 4.9491340486536753E-06 5.0848223412939226E-06 + 5.2240962429147424E-06 5.3670486069222096E-06 5.5137746699722989E-06 + 5.6643721129187190E-06 5.8189411233146699E-06 5.9775844595079951E-06 + 6.1404075163700884E-06 6.3075183926999524E-06 6.4790279603458824E-06 + 6.6550499350882356E-06 6.8357009493279496E-06 7.0211006266264452E-06 + 7.2113716581438342E-06 7.4066398810234269E-06 7.6070343587717797E-06 + 7.8126874636847394E-06 8.0237349613712266E-06 8.2403160974277406E-06 + 8.4625736863179378E-06 8.6906542025129743E-06 8.9247078739496793E-06 + 9.1648887778651107E-06 9.4113549390673767E-06 9.6642684307042333E-06 + 9.9237954775924235E-06 1.0190106562172283E-05 1.0463376533153809E-05 + 1.0743784716921973E-05 1.1031515031770683E-05 1.1326756105036754E-05 + 1.1629701393206691E-05 1.1940549305071145E-05 1.2259503328003693E-05 + 1.2586772157442410E-05 1.2922569829654734E-05 1.3267115857868054E-05 + 1.3620635371850605E-05 1.3983359261029107E-05 1.4355524321232028E-05 + 1.4737373405149282E-05 1.5129155576601513E-05 1.5531126268714469E-05 + 1.5943547446096223E-05 1.6366687771117445E-05 1.6800822774397382E-05 + 1.7246235029600806E-05 1.7703214332653574E-05 1.8172057885487278E-05 + 1.8653070484426244E-05 1.9146564713332485E-05 1.9652861141627615E-05 + 2.0172288527313203E-05 2.0705184025114258E-05 2.1251893399873416E-05 + 2.1812771245326765E-05 2.2388181208395050E-05 2.2978496219127711E-05 + 2.3584098726440133E-05 2.4205380939788234E-05 2.4842745076927879E-05 + 2.5496603617910099E-05 2.6167379565466977E-05 2.6855506711946636E-05 + 2.7561429912959740E-05 2.8285605367903671E-05 2.9028500907534839E-05 + 2.9790596288763423E-05 3.0572383496849265E-05 3.1374367055181695E-05 + 3.2197064342830926E-05 3.3041005920062635E-05 3.3906735862012407E-05 + 3.4794812100721000E-05 3.5705806775736879E-05 3.6640306593496672E-05 + 3.7598913195699609E-05 3.8582243536897630E-05 3.9590930271527032E-05 + 4.0625622150614126E-05 4.1686984428392136E-05 4.2775699279072530E-05 + 4.3892466224019900E-05 4.5038002569584951E-05 4.6213043855856941E-05 + 4.7418344316602342E-05 4.8654677350663547E-05 4.9922836005097215E-05 + 5.1223633470339404E-05 5.2557903587690360E-05 5.3926501369419334E-05 + 5.5330303531797489E-05 5.6770209041372510E-05 5.8247139674807981E-05 + 5.9762040592616496E-05 6.1315880927124262E-05 6.2909654385012449E-05 + 6.4544379864788398E-05 6.6221102089549178E-05 6.7940892255406322E-05 + 6.9704848695952012E-05 7.1514097563153066E-05 7.3369793525070341E-05 + 7.5273120480808526E-05 7.7225292293112626E-05 7.9227553539035130E-05 + 8.1281180279109319E-05 8.3387480845473078E-05 8.5547796649398575E-05 + 8.7763503008693705E-05 9.0036009995450800E-05 9.2366763304630795E-05 + 9.4757245143980921E-05 9.7208975145795609E-05 9.9723511301042609E-05 + 1.0230245091638820E-04 1.0494743159466576E-04 1.0766013223934752E-04 + 1.1044227408358940E-04 1.1329562174443264E-04 1.1622198430276002E-04 + 1.1922321640961639E-04 1.2230121941951859E-04 1.2545794255139264E-04 + 1.2869538407779131E-04 1.3201559254305960E-04 1.3542066801113084E-04 + 1.3891276334365073E-04 1.4249408550914293E-04 1.4616689692394593E-04 + 1.4993351682566586E-04 1.5379632267990858E-04 1.5775775162106927E-04 + 1.6182030192797608E-04 1.6598653453520198E-04 1.7025907458087676E-04 + 1.7464061299184860E-04 1.7913390810706553E-04 1.8374178734006404E-04 + 1.8846714888147130E-04 1.9331296344245029E-04 1.9828227604003291E-04 + 2.0337820782531166E-04 2.0860395795547649E-04 2.1396280551070826E-04 + 2.1945811145696219E-04 2.2509332065569283E-04 2.3087196392160105E-04 + 2.3679766012950129E-04 2.4287411837143285E-04 2.4910514016516323E-04 + 2.5549462171525696E-04 2.6204655622790357E-04 2.6876503628073175E-04 + 2.7565425624885261E-04 2.8271851478841155E-04 2.8996221737894546E-04 + 2.9738987892587718E-04 3.0500612642450110E-04 3.1281570168684554E-04 + 3.2082346413282389E-04 3.2903439364711861E-04 3.3745359350326832E-04 + 3.4608629335646093E-04 3.5493785230656809E-04 3.6401376203298158E-04 + 3.7331965000285172E-04 3.8286128275435500E-04 3.9264456925665163E-04 + 4.0267556434823260E-04 4.1296047225537898E-04 4.2350565019250494E-04 + 4.3431761204617734E-04 4.4540303214465237E-04 4.5676874911479453E-04 + 4.6842176982829476E-04 4.8036927343912466E-04 4.9261861551421686E-04 + 5.0517733225939273E-04 5.1805314484259710E-04 5.3125396381654760E-04 + 5.4478789364293355E-04 5.5866323732035514E-04 5.7288850111822376E-04 + 5.8747239941889207E-04 6.0242385967032531E-04 6.1775202745166817E-04 + 6.3346627165410336E-04 6.4957618977944738E-04 6.6609161335897088E-04 + 6.8302261349497794E-04 7.0037950652772601E-04 7.1817285983031534E-04 + 7.3641349773422037E-04 7.5511250758819452E-04 7.7428124595331558E-04 + 7.9393134493699639E-04 8.1407471866883953E-04 8.3472356992125342E-04 + 8.5589039687780785E-04 8.7758800005236230E-04 8.9982948936203429E-04 + 9.2262829135715974E-04 9.4599815661141620E-04 9.6995316727535726E-04 + 9.9450774479665810E-04 1.0196766578104131E-03 1.0454750302029091E-03 + 1.0719183493523206E-03 1.0990224745498600E-03 1.1268036456049562E-03 + 1.1552784916381005E-03 1.1844640400650434E-03 1.2143777257761158E-03 + 1.2450374005144645E-03 1.2764613424570868E-03 1.3086682660025870E-03 + 1.3416773317696615E-03 1.3755081568103385E-03 1.4101808250421158E-03 + 1.4457158979031422E-03 1.4821344252346966E-03 1.5194579563952621E-03 + 1.5577085516105314E-03 1.5969087935637982E-03 1.6370817992311815E-03 + 1.6782512319662582E-03 1.7204413138386975E-03 1.7636768382315506E-03 + 1.8079831827019653E-03 1.8533863221100746E-03 1.8999128420209488E-03 + 1.9475899523845183E-03 1.9964455014984230E-03 2.0465079902588757E-03 + 2.0978065867045827E-03 2.1503711408589351E-03 2.2042321998756624E-03 + 2.2594210234932275E-03 2.3159695998033352E-03 2.3739106613389002E-03 + 2.4332777014869941E-03 2.4941049912322200E-03 2.5564275962361451E-03 + 2.6202813942583741E-03 2.6857030929249470E-03 2.7527302478498306E-03 + 2.8214012811152286E-03 2.8917555001165929E-03 2.9638331167782142E-03 + 3.0376752671452895E-03 3.1133240313584967E-03 3.1908224540170478E-03 + 3.2702145649363364E-03 3.3515454003062517E-03 3.4348610242563079E-03 + 3.5202085508338108E-03 3.6076361664012170E-03 3.6971931524589878E-03 + 3.7889299089002237E-03 3.8828979777033113E-03 3.9791500670690377E-03 + 4.0777400760083947E-03 4.1787231193875767E-03 4.2821555534364331E-03 + 4.3880950017268867E-03 4.4966003816276721E-03 4.6077319312417871E-03 + 4.7215512368331573E-03 4.8381212607488113E-03 4.9575063698430897E-03 + 5.0797723644102084E-03 5.2049865076315453E-03 5.3332175555440989E-03 + 5.4645357875363152E-03 5.5990130373777119E-03 5.7367227247885127E-03 + 5.8777398875554448E-03 6.0221412142000379E-03 6.1700050772053559E-03 + 6.3214115668073743E-03 6.4764425253569314E-03 6.6351815822581362E-03 + 6.7977141894891846E-03 6.9641276577111942E-03 7.1345111929708325E-03 + 7.3089559340022564E-03 7.4875549901337228E-03 7.6704034798043622E-03 + 7.8575985696961049E-03 8.0492395144860195E-03 8.2454276972237714E-03 + 8.4462666703391358E-03 8.6518621972840430E-03 8.8623222948135526E-03 + 9.0777572759100974E-03 9.2982797933548605E-03 9.5240048839502385E-03 + 9.7550500133969601E-03 9.9915351218290739E-03 1.0233582670010229E-02 + 1.0481317686193771E-02 1.0734867813649481E-02 1.0994363358859239E-02 + 1.1259937340383438E-02 1.1531725538400190E-02 1.1809866544918331E-02 + 1.2094501814665556E-02 1.2385775716652262E-02 1.2683835586411339E-02 + 1.2988831778914049E-02 1.3300917722161262E-02 1.3620249971449460E-02 + 1.3946988264309913E-02 1.4281295576119468E-02 1.4623338176380693E-02 + 1.4973285685668431E-02 1.5331311133239984E-02 1.5697591015304685E-02 + 1.6072305353948966E-02 1.6455637756711931E-02 1.6847775476805906E-02 + 1.7248909473976216E-02 1.7659234475993258E-02 1.8078949040769760E-02 + 1.8508255619095373E-02 1.8947360617979577E-02 1.9396474464594131E-02 + 1.9855811670804455E-02 2.0325590898279438E-02 2.0806035024168147E-02 + 2.1297371207330499E-02 2.1799830955109376E-02 2.2313650190629412E-02 + 2.2839069320607811E-02 2.3376333303661182E-02 2.3925691719091206E-02 + 2.4487398836131751E-02 2.5061713683637722E-02 2.5648900120196459E-02 + 2.6249226904639659E-02 2.6862967766934049E-02 2.7490401479427076E-02 + 2.8131811928422411E-02 2.8787488186059633E-02 2.9457724582469761E-02 + 3.0142820778178168E-02 3.0843081836723941E-02 3.1558818297463063E-02 + 3.2290346248522256E-02 3.3037987399866825E-02 3.3802069156445541E-02 + 3.4582924691372828E-02 3.5380893019106179E-02 3.6196319068575962E-02 + 3.7029553756220829E-02 3.7880954058880943E-02 3.8750883086498544E-02 + 3.9639710154572357E-02 4.0547810856310998E-02 4.1475567134426725E-02 + 4.2423367352509622E-02 4.3391606365918191E-02 4.4380685592121688E-02 + 4.5391013080425216E-02 4.6423003581006726E-02 4.7477078613193668E-02 + 4.8553666532902509E-02 4.9653202599164586E-02 5.0776129039658051E-02 + 5.1922895115163889E-02 5.3093957182863714E-02 5.4289778758393144E-02 + 5.5510830576565730E-02 5.6757590650679764E-02 5.8030544330319116E-02 + 5.9330184357560593E-02 6.0657010921496911E-02 6.2011531710986459E-02 + 6.3394261965539558E-02 6.4805724524250125E-02 6.6246449872683993E-02 + 6.7716976187631325E-02 6.9217849379633836E-02 7.0749623133195466E-02 + 7.2312858944584071E-02 7.3908126157134046E-02 7.5536001993954674E-02 + 7.7197071587952942E-02 7.8891928009073339E-02 8.0621172288660031E-02 + 8.2385413440842242E-02 8.4185268480841874E-02 8.6021362440102597E-02 + 8.7894328378132991E-02 8.9804807390957753E-02 9.1753448616065617E-02 + 9.3740909233738859E-02 9.5767854464649860E-02 9.7834957563600597E-02 + 9.9942899809283753E-02 1.0209237048993577E-01 1.0428406688474960E-01 + 1.0651869424091266E-01 1.0879696574612735E-01 1.1111960249647222E-01 + 1.1348733345945376E-01 1.1590089543209464E-01 1.1836103299390369E-01 + 1.2086849845456298E-01 1.2342405179616829E-01 1.2602846060985162E-01 + 1.2868250002661252E-01 1.3138695264218220E-01 1.3414260843573678E-01 + 1.3695026468228128E-01 1.3981072585851345E-01 1.4272480354198386E-01 + 1.4569331630336138E-01 1.4871708959161173E-01 1.5179695561190126E-01 + 1.5493375319602967E-01 1.5812832766520263E-01 1.6138153068495023E-01 + 1.6469422011199830E-01 1.6806725983290294E-01 1.7150151959425455E-01 + 1.7499787482426218E-01 1.7855720644552900E-01 1.8218040067882718E-01 + 1.8586834883768921E-01 1.8962194711362443E-01 1.9344209635177978E-01 + 1.9732970181686041E-01 2.0128567294912683E-01 2.0531092311029411E-01 + 2.0940636931915033E-01 2.1357293197672714E-01 2.1781153458084365E-01 + 2.2212310342986283E-01 2.2650856731549179E-01 2.3096885720446536E-01 + 2.3550490590896031E-01 2.4011764774558375E-01 2.4480801818279299E-01 + 2.4957695347660439E-01 2.5442539029445171E-01 2.5935426532707218E-01 + 2.6436451488828699E-01 2.6945707450256817E-01 2.7463287848027845E-01 + 2.7989285948048009E-01 2.8523794806122471E-01 2.9066907221723082E-01 + 2.9618715690487862E-01 3.0179312355445154E-01 3.0748788956956108E-01 + 3.1327236781371709E-01 3.1914746608399236E-01 3.2511408657176460E-01 + 3.3117312531050974E-01 3.3732547161064697E-01 3.4357200748144079E-01 + 3.4991360703997237E-01 3.5635113590722134E-01 3.6288545059128924E-01 + 3.6951739785783128E-01 3.7624781408776098E-01 3.8307752462230954E-01 + 3.9000734309554486E-01 3.9703807075445330E-01 4.0417049576671688E-01 + 4.1140539251632691E-01 4.1874352088718575E-01 4.2618562553487682E-01 + 4.3373243514678178E-01 4.4138466169075635E-01 4.4914299965258120E-01 + 4.5700812526242202E-01 4.6498069571055689E-01 4.7306134835263519E-01 + 4.8125069990475827E-01 4.8954934562868557E-01 4.9795785850748031E-01 + 5.0647678841194366E-01 5.1510666125817894E-01 5.2384797815666972E-01 + 5.3270121455324571E-01 5.4166681936235184E-01 5.5074521409303046E-01 + 5.5993679196804591E-01 5.6924191703660432E-01 5.7866092328110474E-01 + 5.8819411371839780E-01 5.9784175949600449E-01 6.0760409898375567E-01 + 6.1748133686132145E-01 6.2747364320206189E-01 6.3758115255363790E-01 + 6.4780396301578569E-01 6.5814213531560850E-01 6.6859569188073631E-01 + 6.7916461591059374E-01 6.8984885044600586E-01 7.0064829743725432E-01 + 7.1156281681062106E-01 7.2259222553336766E-01 7.3373629667696083E-01 + 7.4499475847827157E-01 7.5636729339831632E-01 7.6785353717800597E-01 + 7.7945307789025164E-01 7.9116545498762803E-01 8.0299015834475485E-01 + 8.1492662729442922E-01 8.2697424965654687E-01 8.3913236075883713E-01 + 8.5140024244848289E-01 8.6377712209384871E-01 8.7626217157568853E-01 + 8.8885450626750495E-01 9.0155318400506135E-01 9.1435720404547216E-01 + 9.2726550601683932E-01 9.4027696885996548E-01 9.5339040976437017E-01 + 9.6660458310156083E-01 9.7991817935927061E-01 9.9332982408124348E-01 + 1.0068380768179144E+00 1.0204414300942162E+00 1.0341383084014781E+00 + 1.0479270672211394E+00 1.0618059920886012E+00 1.0757732977059935E+00 + 1.0898271271129627E+00 1.1039655509245474E+00 1.1181865666450224E+00 + 1.1324880980659524E+00 1.1468679947557185E+00 1.1613240316464599E+00 + 1.1758539087225901E+00 1.1904552508130506E+00 1.2051256074871393E+00 + 1.2198624530514082E+00 1.2346631866428155E+00 1.2495251324112200E+00 + 1.2644455397826739E+00 1.2794215837938263E+00 1.2944503654872637E+00 + 1.3095289123578531E+00 1.3246541788409321E+00 1.3398230468346484E+00 + 1.3550323262505042E+00 1.3702787555882119E+00 1.3855590025330913E+00 + 1.4008696645761558E+00 1.4162072696588321E+00 1.4315682768455495E+00 + 1.4469490770284517E+00 1.4623459936689609E+00 1.4777552835810472E+00 + 1.4931731377608490E+00 1.5085956822667219E+00 1.5240189791531320E+00 + 1.5394390274609535E+00 1.5548517642658650E+00 1.5702530657857727E+00 + 1.5856387485473820E+00 1.6010045706115288E+00 1.6163462328563873E+00 + 1.6316593803174106E+00 1.6469396035827863E+00 1.6621824402431655E+00 + 1.6773833763946528E+00 1.6925378481942677E+00 1.7076412434674368E+00 + 1.7226889033675064E+00 1.7376761240875800E+00 1.7525981586255299E+00 + 1.7674502186032692E+00 1.7822274761418684E+00 1.7969250657943172E+00 + 1.8115380865380184E+00 1.8260616038293576E+00 1.8404906517227346E+00 + 1.8548202350566614E+00 1.8690453317094722E+00 1.8831608949271987E+00 + 1.8971618557261383E+00 1.9110431253724534E+00 1.9247995979410466E+00 + 1.9384261529557103E+00 1.9519176581122839E+00 1.9652689720863434E+00 + 1.9784749474265020E+00 1.9915304335341537E+00 2.0044302797300171E+00 + 2.0171693384074136E+00 2.0297424682718122E+00 2.0421445376655822E+00 + 2.0543704279764978E+00 2.0664150371279324E+00 2.0782732831481625E+00 + 2.0899401078157225E+00 2.1014104803771274E+00 2.1126794013328976E+00 + 2.1237419062872602E+00 2.1345930698565709E+00 2.1452280096311398E+00 + 2.1556418901848855E+00 2.1658299271272172E+00 2.1757873911914212E+00 + 2.1855096123541546E+00 2.1949919839808913E+00 2.2042299669927203E+00 + 2.2132190940506855E+00 2.2219549737546465E+00 2.2304332948548136E+00 + 2.2386498304752331E+00 2.2466004423497239E+00 2.2542810850720421E+00 + 2.2616878103629543E+00 2.2688167713577139E+00 2.2756642269174536E+00 + 2.2822265459673741E+00 2.2885002118628255E+00 2.2944818267810279E+00 + 2.3001681161311862E+00 2.3055559329683297E+00 2.3106422623864482E+00 + 2.3154242258537248E+00 2.3198990854370050E+00 2.3240642478441389E+00 + 2.3279172681915918E+00 2.3314558533819838E+00 2.3346778649525812E+00 + 2.3375813212335821E+00 2.3401643986363507E+00 2.3424254318790840E+00 + 2.3443629129547898E+00 2.3459754886562294E+00 2.3472619564985684E+00 + 2.3482212589254186E+00 2.3488524757491009E+00 2.3491548148625507E+00 + 2.3491276013670559E+00 2.3487702653843576E+00 2.3480823289603103E+00 + 2.3470633926137365E+00 2.3457131222296481E+00 2.3440312371294381E+00 + 2.3420175002536205E+00 2.3396717114428927E+00 2.3369937047726670E+00 + 2.3339833507557457E+00 2.3306405639559968E+00 2.3269653161507007E+00 + 2.3229576546680879E+00 2.3186177249730466E+00 2.3139457960702958E+00 + 2.3089422869412100E+00 2.3036077921087612E+00 2.2979431045672074E+00 + 2.2919492346911099E+00 2.2856274242704413E+00 2.2789791553955161E+00 + 2.2720061544332646E+00 2.2647103917217728E+00 2.2570940778335191E+00 + 2.2491596573285033E+00 2.2409098008712944E+00 2.2323473964646583E+00 + 2.2234755403978101E+00 2.2142975283494999E+00 2.2048168469435012E+00 + 2.1950371659353438E+00 2.1849623311152149E+00 2.1745963579408119E+00 + 2.1639434258613632E+00 2.1530078732566835E+00 2.1417941928896873E+00 + 2.1303070277550531E+00 2.1185511671995814E+00 2.1065315431897695E+00 + 2.0942532266082097E+00 2.0817214234718988E+00 2.0689414709807354E+00 + 2.0559188333225062E+00 2.0426590971797594E+00 2.0291679669034002E+00 + 2.0154512593361074E+00 2.0015148982850977E+00 1.9873649086579677E+00 + 1.9730074102866617E+00 1.9584486114733910E+00 1.9436948022982325E+00 + 1.9287523477318853E+00 1.9136276805986534E+00 1.8983272944345442E+00 + 1.8828577362840531E+00 1.8672255994768097E+00 1.8514375164221095E+00 + 1.8355001514559903E+00 1.8194201937717502E+00 1.8032043504611317E+00 + 1.7868593396896499E+00 1.7703918840260986E+00 1.7538087039429862E+00 + 1.7371165115014862E+00 1.7203220042317926E+00 1.7034318592172017E+00 + 1.6864527273878767E+00 1.6693912280283147E+00 1.6522539435006252E+00 + 1.6350474141842271E+00 1.6177781336310644E+00 1.6004525439343313E+00 + 1.5830770313076512E+00 1.5656579218707409E+00 1.5482014776369584E+00 + 1.5307138926975123E+00 1.5132012895967693E+00 1.4956697158926768E+00 + 1.4781251408962575E+00 1.4605734525840235E+00 1.4430204546771335E+00 + 1.4254718638812971E+00 1.4079333072815998E+00 1.3904103198865927E+00 + 1.3729083423163531E+00 1.3554327186294453E+00 1.3379886942840609E+00 + 1.3205814142288144E+00 1.3032159211189429E+00 1.2858971536538346E+00 + 1.2686299450318037E+00 1.2514190215180669E+00 1.2342690011217361E+00 + 1.2171843923772734E+00 1.2001695932257039E+00 1.1832288899898398E+00 + 1.1663664564379626E+00 1.1495863529292576E+00 1.1328925256332796E+00 + 1.1162888058163301E+00 1.0997789091856653E+00 1.0833664352831225E+00 + 1.0670548669199000E+00 1.0508475696438346E+00 1.0347477912324159E+00 + 1.0187586612058728E+00 1.0028831903568172E+00 9.8712427029634964E-01 + 9.7148467301957020E-01 9.5596705049809361E-01 9.4057393431193104E-01 + 9.2530773533794231E-01 9.1017074351745930E-01 8.9516512773047885E-01 + 8.8029293580808388E-01 8.6555609471806538E-01 8.5095641096057228E-01 + 8.3649557121072948E-01 8.2217514324334218E-01 8.0799657716397821E-01 + 7.9396120700454009E-01 7.8007025263494567E-01 7.6632482206091834E-01 + 7.5272591407315204E-01 7.3927442123782772E-01 7.2597113320110729E-01 + 7.1281674026962771E-01 6.9981183721989659E-01 6.8695692728255753E-01 + 6.7425242624302895E-01 6.6169866659833165E-01 6.4929590171094442E-01 + 6.3704430990411265E-01 6.2494399844879056E-01 6.1299500739973700E-01 + 6.0119731324677994E-01 5.8955083235618799E-01 5.7805542418590727E-01 + 5.6671089426675836E-01 5.5551699694903311E-01 5.4447343792017155E-01 + 5.3357987650409910E-01 5.2283592775644705E-01 5.1224116437228162E-01 + 5.0179511842421765E-01 4.9149728294921102E-01 4.8134711340191688E-01 + 4.7134402899162342E-01 4.6148741391845849E-01 4.5177661852310413E-01 + 4.4221096036267288E-01 4.3278972522381076E-01 4.2351216808262965E-01 + 4.1437751401970263E-01 4.0538495909712641E-01 3.9653367120362554E-01 + 3.8782279087274985E-01 3.7925143207847917E-01 3.7081868301189203E-01 + 3.6252360684204665E-01 3.5436524246378109E-01 3.4634260523475513E-01 + 3.3845468770374731E-01 3.3070046033194694E-01 3.2307887220870751E-01 + 3.1558885176301732E-01 3.0822930747170768E-01 3.0099912856522698E-01 + 2.9389718573158746E-01 2.8692233181891996E-01 2.8007340253688229E-01 + 2.7334921715698535E-01 2.6674857921175726E-01 2.6027027719250379E-01 + 2.5391308524531048E-01 2.4767576386480206E-01 2.4155706058509782E-01 + 2.3555571066733080E-01 2.2967043778304172E-01 2.2389995469274418E-01 + 2.1824296391895856E-01 2.1269815841302514E-01 2.0726422221505703E-01 + 2.0193983110646119E-01 1.9672365325454744E-01 1.9161434984882103E-01 + 1.8661057572870973E-01 1.8171098000257818E-01 1.7691420665802404E-01 + 1.7221889516360950E-01 1.6762368106230113E-01 1.6312719655705157E-01 + 1.5872807108907108E-01 1.5442493190946749E-01 1.5021640464503291E-01 + 1.4610111385906244E-01 1.4207768360793158E-01 1.3814473799493884E-01 + 1.3430090172141454E-01 1.3054480063662344E-01 1.2687506228777437E-01 + 1.2329031646926714E-01 1.1978919577344269E-01 1.1637033614218989E-01 + 1.1303237741937840E-01 1.0977396390494282E-01 1.0659374490937955E-01 + 1.0349037530824709E-01 1.0046251609557540E-01 9.7508834934809413E-02 + 9.4628006705566620E-02 9.1818714044160102E-02 8.9079647875516046E-02 + 8.6409507933822613E-02 8.3807003268991237E-02 8.1270852735791280E-02 + 7.8799785462373470E-02 7.6392541294811517E-02 7.4047871214301078E-02 + 7.1764537723759486E-02 6.9541315200796358E-02 6.7376990214379456E-02 + 6.5270361803013432E-02 6.3220241712897668E-02 6.1225454595328403E-02 + 5.9284838163552386E-02 5.7397243310363000E-02 5.5561534188909495E-02 + 5.3776588260441897E-02 5.2041296313968796E-02 5.0354562464005388E-02 + 4.8715304133647122E-02 4.7122452031031152E-02 4.5574950127763844E-02 + 4.4071755648009685E-02 4.2611839076593792E-02 4.1194184193638628E-02 + 3.9817788141927699E-02 3.8481661531416911E-02 3.7184828583177329E-02 + 3.5926327312685746E-02 3.4705209749934546E-02 3.3520542191482185E-02 + 3.2371405477490907E-02 3.1256895285140127E-02 3.0176122428690090E-02 + 2.9128213155954930E-02 2.8112309431063482E-02 2.7127569194030855E-02 + 2.6173166588900031E-02 2.5248292153680317E-02 2.4352152967062207E-02 + 2.3483972748827131E-02 2.2642991912521535E-02 2.1828467570712797E-02 + 2.1039673494534079E-02 2.0275900030296602E-02 1.9536453976862524E-02 + 1.8820658427979923E-02 1.8127852584075767E-02 1.7457391538066826E-02 + 1.6808646039628561E-02 1.6181002242104777E-02 1.5573861435893675E-02 + 1.4986639771739012E-02 1.4418767976925598E-02 1.3869691066946081E-02 + 1.3338868054792594E-02 1.2825771659642292E-02 1.2329888016356854E-02 + 1.1850716386909254E-02 1.1387768874582899E-02 1.0940570141561346E-02 + 1.0508657130334338E-02 1.0091578789188692E-02 9.6888958019238740E-03 + 9.3001803218290460E-03 8.9250157098790545E-03 8.5629962770465938E-03 + 8.2137270305845094E-03 7.8768234241051189E-03 7.5519111112688801E-03 + 7.2386257028932378E-03 6.9366125273013432E-03 6.6455263937500496E-03 + 6.3650313588053077E-03 6.0948004955695897E-03 5.8345156657104514E-03 + 5.5838672942888200E-03 5.3425541474397750E-03 5.1102831130145805E-03 + 4.8867689843493795E-03 4.6717342473804029E-03 4.4649088713751232E-03 + 4.2660301035921137E-03 4.0748422682163436E-03 3.8910965699393671E-03 + 3.7145509025645995E-03 3.5449696630146174E-03 3.3821235711005717E-03 + 3.2257894953830793E-03 3.0757502854107215E-03 2.9317946105678863E-03 + 2.7937168056995591E-03 2.6613167236112737E-03 2.5343995944661583E-03 + 2.4127758920267986E-03 2.2962612066146260E-03 2.1846761245871370E-03 + 2.0778461140708200E-03 1.9756014166280706E-03 1.8777769444890070E-03 + 1.7842121829411588E-03 1.6947510974407373E-03 1.6092420449917218E-03 + 1.5275376893306388E-03 1.4494949194560364E-03 1.3749747710508371E-03 + 1.3038423503623805E-03 1.2359667601275523E-03 1.1712210271578810E-03 + 1.1094820312307872E-03 1.0506304349670841E-03 9.9455061441025973E-04 + 9.4113059005938849E-04 8.9026195814355554E-04 8.4183982196110111E-04 + 7.9576272314097060E-04 7.5193257271580086E-04 7.1025458192659741E-04 + 6.7063719270674495E-04 6.3299200781864187E-04 5.9723372063922339E-04 + 5.6328004461108304E-04 5.3105164239394701E-04 5.0047205476681865E-04 + 4.7146762934444097E-04 4.4396744918281722E-04 4.1790326135763010E-04 + 3.9320940560656753E-04 3.6982274313192726E-04 3.4768258566365200E-04 + 3.2673062488515101E-04 3.0691086232511895E-04 2.8816953981808711E-04 + 2.7045507063482884E-04 2.5371797138103652E-04 2.3791079475898427E-04 + 2.2298806328234058E-04 2.0890620402893770E-04 1.9562348451025290E-04 + 1.8309994972973858E-04 1.7129736049501475E-04 1.6017913304145382E-04 + 1.4971028001691940E-04 1.3985735286951422E-04 1.3058838567223875E-04 + 1.2187284041056432E-04 1.1368155375122037E-04 1.0598668530305528E-04 + 9.8761667373750648E-05 9.1981156219551115E-05 8.5620984779050973E-05 + 7.9658116876541609E-05 7.4070602875476850E-05 6.8837536758312661E-05 + 6.3939014605309447E-05 5.9356094441849170E-05 5.5070757421412007E-05 + 5.1065870309528173E-05 4.7325149232752097E-05 4.3833124655935224E-05 + 4.0575107550765613E-05 3.7537156718630257E-05 3.4706047231287867E-05 + 3.2069239953562500E-05 2.9614852113222855E-05 2.7331628884344949E-05 + 2.5208915951725264E-05 2.3236633025264618E-05 2.1405248274646880E-05 + 1.9705753656050950E-05 1.8129641104035574E-05 1.6668879563094901E-05 + 1.5315892834680651E-05 1.4063538216710323E-05 1.2905085913716782E-05 + 1.1834199196837790E-05 1.0844915293787973E-05 9.9316269898031586E-06 + 9.0890649212956722E-06 8.3122805446137132E-06 7.5966297628643891E-06 + 6.9377571942428378E-06 6.3315810657161459E-06 5.7742787162498089E-06 + 5.2622726940416069E-06 4.7922174324532670E-06 4.3609864895101000E-06 + 3.9656603359822471E-06 3.6035146771744948E-06 3.2720092936418654E-06 + 2.9687773861221491E-06 2.6916154100398419E-06 2.4384733849932703E-06 + 2.2074456646938689E-06 1.9967621528864458E-06 1.8047799508463051E-06 + 1.6299754221255210E-06 1.4709366603094986E-06 1.3263563456477471E-06 + 1.1950249765410391E-06 1.0758244620021899E-06 9.6772206135978799E-07 + 8.6976465764407965E-07 7.8107335128148411E-07 7.0083836092900790E-07 + 6.2831421850134842E-07 5.6281524568115622E-07 5.0371129945593830E-07 + 4.5042377449235861E-07 4.0242185043909321E-07 3.5921897254185369E-07 + 3.2036955425727834E-07 2.8546589086494261E-07 2.5413527339731560E-07 + 2.2603729253486584E-07 2.0086132244628145E-07 1.7832417489065395E-07 + 1.5816791423822664E-07 1.4015782440766510E-07 1.2408051905960157E-07 + 1.0974218672733629E-07 9.6966962904948645E-08 8.5595421449720773E-08 + 7.5483177988745790E-08 6.6499598348055649E-08 5.8526605345756469E-08 + 5.1457577607786173E-08 4.5196334375390130E-08 3.9656200576647880E-08 + 3.4759146729897423E-08 3.0434998534243063E-08 2.6620711281141628E-08 + 2.3259704491024642E-08 2.0301252439784375E-08 1.7699926491544713E-08 + 1.5415085396310143E-08 1.3410409943752118E-08 1.1653478587515600E-08 + 1.0115380868007300E-08 8.7703656657089523E-09 7.5955215117208485E-09 + 6.5704863675988306E-09 5.6771844627437681E-09 4.8995879448068280E-09 + 4.2235012569822209E-09 3.6363663058853690E-09 3.1270866251920912E-09 + 2.6858688735929761E-09 2.3040801311566555E-09 1.9741195761690912E-09 + 1.6893032352021904E-09 1.4437606028506860E-09 1.2323420245505776E-09 + 1.0505358264476061E-09 8.9439426071316111E-10 7.6046741329877829E-10 + 6.4574429416853013E-10 5.4760039783645728E-10 4.6375108484478189E-10 + 3.9221019292298425E-10 3.3125334023652300E-10 2.7938543262840694E-10 + 2.3531193233027212E-10 1.9791348751704410E-10 1.6622356053682118E-10 + 1.3940872789210660E-10 1.1675135729750989E-10 9.7634396600345039E-11 + 8.1528036222430397E-11 6.7978031252316842E-11 5.6595491565881086E-11 + 4.7047968549132798E-11 3.9051685299904613E-11 3.2364773744104428E-11 + 2.6781397065501646E-11 2.2126649325072769E-11 1.8252136301329063E-11 + 1.5032152646036127E-11 1.2360379323566654E-11 1.0147036372353666E-11 + 8.3164361665715113E-12 6.8048529892003276E-12 5.5587631959932888E-12 + 4.5332327575732590E-12 3.6906488199988745E-12 2.9995466224475603E-12 + 2.4336603951671631E-12 1.9711016003042591E-12 1.5936607618427431E-12 + 1.2862153193984951E-12 1.0362282785712068E-12 8.3332448063499181E-13 + 6.6893310886707075E-13 5.3598661673231493E-13 4.2866763052801812E-13 + 3.4219656936110516E-13 2.7265375946351237E-13 2.1683071661991683E-13 + 1.7210604663772059E-13 1.3634208425273170E-13 1.0779896889653295E-13 + 8.5063353113994151E-14 6.6989366520037847E-14 5.2649824214727530E-14 + 4.1295981633854580E-14 3.2324405019191721E-14 2.5249754295453122E-14 + 1.9682468608157902E-14 1.5310508884224281E-14 1.1884450687476843E-14 + 9.2053379734315948E-15 7.1148072413938697E-15 5.4870747546193290E-15 + 4.2224492978244864E-15 3.2420913876083737E-15 2.4837886833319555E-15 + 1.8985580540961186E-15 1.4479186167464776E-15 1.1017081585974428E-15 + 8.3633862343611693E-16 6.3340555742567528E-16 4.7858224971471030E-16 + 3.6074232462300046E-16 2.7126522356947425E-16 2.0348775526171771E-16 + 1.5227202753912690E-16 1.1366588440290572E-16 8.4636691541823004E-17 + 6.2863138220017176E-17 4.6572814805836503E-17 3.4415817745666670E-17 + 2.5366638348493540E-17 1.8648199751827486E-17 1.3673193010586242E-17 + 9.9988899634401677E-18 7.2924277219894888E-18 5.3042083334100700E-18 + 3.8475707505518994E-18 2.7832977558216498E-18 2.0078397983565145E-18 + 1.4443884529179636E-18 1.0361285723459954E-18 7.4115155090734089E-19 + 5.2863153117953127E-19 3.7595911642504261E-19 2.6659895158024756E-19 + 1.8849297209630175E-19 1.3287379648583556E-19 9.3385496044987974E-20 + 6.5434044894391948E-20 4.5708882299632876E-20 3.1831571120579102E-20 + 2.2098572734248634E-20 1.5293503503347760E-20 1.0550527865033072E-20 + 7.2552695697042506E-21 4.9731630187626137E-21 3.3978102542183140E-21 + 2.3138768072596108E-21 1.5705194346792403E-21 1.0624183088119809E-21 + 7.1628192660456470E-22 4.8127755552303321E-22 3.2226803679440703E-22 + 2.1504809162012394E-22 1.4300041492237073E-22 9.4756463108121954E-23 + 6.2565742475933723E-23 4.1162982988549115E-23 2.6983960501102913E-23 + 1.7624596451373296E-23 1.1469202139787655E-23 7.4359000941579855E-24 + 4.8029255438896182E-24 3.0905492070808592E-24 1.9811090365075482E-24 + 1.2650546416968728E-24 8.0468060651737100E-25 5.0984264359485605E-25 + 3.2175999948875683E-25 2.0225347444308383E-25 1.2662300419238593E-25 + 7.8952598644003371E-26 4.9027733436235630E-26 3.0319568753436724E-26 + 1.8672142449813559E-26 1.1450888601952935E-26 6.9926529248566274E-27 + 4.2519310770237411E-27 2.5742783071433409E-27 1.5517909308323545E-27 + 9.3132835684526759E-28 5.5647767608606574E-28 3.3101701701111296E-28 + 1.9601839088690547E-28 1.1555186324208826E-28 6.7805482773456100E-29 + 3.9609067253130100E-29 2.3039853779668156E-29 1.3339485322070416E-29 + 7.6864316512335251E-30 4.4077645897067291E-30 2.5153670061870787E-30 + + + 4.9937128315311020E-21 3.9856060968423799E-19 3.2311478907511318E-18 + 1.1051254376112582E-17 2.6547109102043755E-17 5.2546671321014615E-17 + 9.2022784633473326E-17 1.4809849633300994E-16 2.2405254689695695E-16 + 3.2332503469594444E-16 4.4952326114135173E-16 6.0642776163913264E-16 + 7.9799852787213598E-16 1.0283814270910937E-15 1.3019148242567625E-15 + 1.6231364130427916E-15 1.9967902618803302E-15 2.4278340814019525E-15 + 2.9214467198237432E-15 3.4830358929907037E-15 4.1182461560024909E-15 + 4.8329671235330207E-15 5.6333419461603369E-15 6.5257760502310716E-15 + 7.5169461489973656E-15 8.6138095329845995E-15 9.8236136477736535E-15 + 1.1153905967613930E-14 1.2612544173522003E-14 1.4207706644766354E-14 + 1.5947903272890100E-14 1.7841986607683980E-14 1.9899163344786854E-14 + 2.2129006164865929E-14 2.4541465934609805E-14 2.7146884280056541E-14 + 2.9956006543076263E-14 3.2979995132133498E-14 3.6230443278767985E-14 + 3.9719389211556165E-14 4.3459330759645592E-14 4.7463240398297566E-14 + 5.1744580749220807E-14 5.6317320548841603E-14 6.1195951098024131E-14 + 6.6395503207134447E-14 7.1931564650734414E-14 7.7820298146590740E-14 + 8.4078459874098777E-14 9.0723418547643479E-14 9.7773175060856617E-14 + 1.0524638271817661E-13 1.1316236807057745E-13 1.2154115237280478E-13 + 1.3040347367994805E-13 1.3977080960166756E-13 1.4966540073292009E-13 + 1.6011027478054366E-13 1.7112927140561017E-13 1.8274706780200859E-13 + 1.9498920503229457E-13 2.0788211514242971E-13 2.2145314907763821E-13 + 2.3573060542222934E-13 2.5074375998686884E-13 2.6652289626744747E-13 + 2.8309933680035348E-13 3.0050547543966009E-13 3.1877481058244758E-13 + 3.3794197936920425E-13 3.5804279288700697E-13 3.7911427240395265E-13 + 4.0119468666410497E-13 4.2432359027302860E-13 4.4854186320483098E-13 + 4.7389175146248199E-13 5.0041690892407058E-13 5.2816244040856044E-13 + 5.5717494599554794E-13 5.8750256663446735E-13 6.1919503107970004E-13 + 6.5230370418902122E-13 6.8688163662388359E-13 7.2298361599110495E-13 + 7.6066621946659566E-13 7.9998786794293010E-13 8.4100888174367933E-13 + 8.8379153794867237E-13 9.2840012937548982E-13 9.7490102526385022E-13 + 1.0233627337107431E-12 1.0738559659055768E-12 1.1264537022158917E-12 + 1.1812312601756481E-12 1.2382663644295071E-12 1.2976392186880035E-12 + 1.3594325797500375E-12 1.4237318336506519E-12 1.4906250739936870E-12 + 1.5602031825305325E-12 1.6325599120478842E-12 1.7077919716291858E-12 + 1.7859991143561551E-12 1.8672842275186976E-12 1.9517534254033426E-12 + 2.0395161447322961E-12 2.1306852428271839E-12 2.2253770985736146E-12 + 2.3237117162647520E-12 2.4258128324042913E-12 2.5318080255514205E-12 + 2.6418288292926186E-12 2.7560108484274753E-12 2.8744938784581534E-12 + 2.9974220284745491E-12 3.1249438475297164E-12 3.2572124546027781E-12 + 3.3943856722492181E-12 3.5366261640410902E-12 3.6841015759026662E-12 + 3.8369846814498358E-12 3.9954535314445051E-12 4.1596916074784589E-12 + 4.3298879800041837E-12 4.5062374708332628E-12 4.6889408202266312E-12 + 4.8782048587039138E-12 5.0742426837029489E-12 5.2772738412240588E-12 + 5.4875245125971661E-12 5.7052277065139732E-12 5.9306234564710513E-12 + 6.1639590237737005E-12 6.4054891062547915E-12 6.6554760528667531E-12 + 6.9141900843092494E-12 7.1819095198597916E-12 7.4589210105787144E-12 + 7.7455197790650210E-12 8.0420098659441897E-12 8.3487043832740226E-12 + 8.6659257750598999E-12 8.9940060850757910E-12 9.3332872321928170E-12 + 9.6841212934229400E-12 1.0046870794890518E-11 1.0421909010950816E-11 + 1.0809620271680242E-11 1.1210400278969272E-11 1.1624656431455369E-11 + 1.2052808158539876E-11 1.2495287263738970E-11 1.2952538277626431E-11 + 1.3425018820632291E-11 1.3913199975968813E-11 1.4417566672963272E-11 + 1.4938618081083503E-11 1.5476868014951173E-11 1.6032845350644898E-11 + 1.6607094453604151E-11 1.7200175618452904E-11 1.7812665521071442E-11 + 1.8445157683252415E-11 1.9098262950287918E-11 1.9772609981842873E-11 + 2.0468845756479583E-11 2.1187636090209192E-11 2.1929666169454870E-11 + 2.2695641098823100E-11 2.3486286464089559E-11 2.4302348910817017E-11 + 2.5144596739035261E-11 2.6013820514423213E-11 2.6910833696446006E-11 + 2.7836473283913241E-11 2.8791600478434837E-11 2.9777101366266838E-11 + 3.0793887619050396E-11 3.1842897213962475E-11 3.2925095173810178E-11 + 3.4041474327615619E-11 3.5193056092252303E-11 3.6380891275710102E-11 + 3.7606060902581641E-11 3.8869677062377798E-11 4.0172883781298564E-11 + 4.1516857918100232E-11 4.2902810084719795E-11 4.4331985592333179E-11 + 4.5805665423543628E-11 4.7325167231415591E-11 4.8891846366087700E-11 + 5.0507096929719846E-11 5.2172352860549014E-11 5.3889089046849725E-11 + 5.5658822471616396E-11 5.7483113388808523E-11 5.9363566532019350E-11 + 6.1301832356456200E-11 6.3299608315141219E-11 6.5358640170267217E-11 + 6.7480723340670387E-11 6.9667704286404588E-11 7.1921481931430952E-11 + 7.4244009125463835E-11 7.6637294146041123E-11 7.9103402241917917E-11 + 8.1644457218910218E-11 8.4262643069347884E-11 8.6960205646325712E-11 + 8.9739454383976090E-11 9.2602764065016863E-11 9.5552576636864819E-11 + 9.8591403077639206E-11 1.0172182531341436E-10 1.0494649818812040E-10 + 1.0826815148752473E-10 1.1168959201877097E-10 1.1521370574698727E-10 + 1.1884345999051972E-10 1.2258190567638808E-10 1.2643217965760509E-10 + 1.3039750709404203E-10 1.3448120389857515E-10 1.3868667925028561E-10 + 1.4301743817654391E-10 1.4747708420584983E-10 1.5206932209335677E-10 + 1.5679796062105791E-10 1.6166691547466496E-10 1.6668021219926937E-10 + 1.7184198923592685E-10 1.7715650104136811E-10 1.8262812129309789E-10 + 1.8826134618220154E-10 1.9406079779625015E-10 2.0003122759474891E-10 + 2.0617751997964854E-10 2.1250469596350429E-10 2.1901791693793355E-10 + 2.2572248854510467E-10 2.3262386465505133E-10 2.3972765145169389E-10 + 2.4703961163051648E-10 2.5456566871094001E-10 2.6231191146650047E-10 + 2.7028459847603826E-10 2.7849016279918527E-10 2.8693521677952149E-10 + 2.9562655697887638E-10 3.0457116924632519E-10 3.1377623392555112E-10 + 3.2324913120431955E-10 3.3299744660992739E-10 3.4302897665459169E-10 + 3.5335173463484246E-10 3.6397395658910285E-10 3.7490410741775272E-10 + 3.8615088717007847E-10 3.9772323750264253E-10 4.0963034831372524E-10 + 4.2188166455860492E-10 4.3448689325059819E-10 4.4745601065288826E-10 + 4.6079926966631726E-10 4.7452720741846226E-10 4.8865065305945060E-10 + 5.0318073577011578E-10 5.1812889298826541E-10 5.3350687885895595E-10 + 5.4932677291486494E-10 5.6560098899299131E-10 5.8234228439407978E-10 + 5.9956376929136759E-10 6.1727891639539712E-10 6.3550157088183760E-10 + 6.5424596058944237E-10 6.7352670649546774E-10 6.9335883347605595E-10 + 7.1375778135931909E-10 7.3473941627904825E-10 7.5632004233718424E-10 + 7.7851641358342257E-10 8.0134574632053718E-10 8.2482573174424695E-10 + 8.4897454892668210E-10 8.7381087815275752E-10 8.9935391461901226E-10 + 9.2562338250471418E-10 9.5263954942532950E-10 9.8042324127869319E-10 + 1.0089958574945207E-09 1.0383793866981668E-09 1.0685964227998639E-09 + 1.0996701815209262E-09 1.1316245173687816E-09 1.1644839410729394E-09 + 1.1982736374944062E-09 1.2330194840213289E-09 1.2687480694640298E-09 + 1.3054867134629551E-09 1.3432634864234065E-09 1.3821072299913042E-09 + 1.4220475780846081E-09 1.4631149784954668E-09 1.5053407150784633E-09 + 1.5487569305408774E-09 1.5933966498512052E-09 1.6392938042826670E-09 + 1.6864832561088839E-09 1.7350008239693255E-09 1.7848833089226878E-09 + 1.8361685212067584E-09 1.8888953077238897E-09 1.9431035802716927E-09 + 1.9988343445391053E-09 2.0561297298884909E-09 2.1150330199450641E-09 + 2.1755886840154286E-09 2.2378424093576438E-09 2.3018411343258480E-09 + 2.3676330824130402E-09 2.4352677972163393E-09 2.5047961783495904E-09 + 2.5762705183289823E-09 2.6497445404578998E-09 2.7252734377380689E-09 + 2.8029139128346578E-09 2.8827242191238713E-09 2.9647642028522566E-09 + 3.0490953464377106E-09 3.1357808129431192E-09 3.2248854917541874E-09 + 3.3164760454940900E-09 3.4106209582083054E-09 3.5073905848538879E-09 + 3.6068572021285103E-09 3.7090950606753473E-09 3.8141804387010519E-09 + 3.9221916970448884E-09 4.0332093357382864E-09 4.1473160520949951E-09 + 4.2645968003732373E-09 4.3851388530521596E-09 4.5090318637663801E-09 + 4.6363679319431592E-09 4.7672416691883534E-09 4.9017502674682244E-09 + 5.0399935691356253E-09 5.1820741388503657E-09 5.3280973374448659E-09 + 5.4781713977875685E-09 5.6324075026980841E-09 5.7909198649694194E-09 + 5.9538258095540649E-09 6.1212458579725186E-09 6.2933038150040452E-09 + 6.4701268577213217E-09 6.6518456269322441E-09 6.8385943210937523E-09 + 7.0305107927644731E-09 7.2277366476646051E-09 7.4304173464134326E-09 + 7.6387023090166401E-09 7.8527450221777121E-09 8.0727031495094482E-09 + 8.2987386447239945E-09 8.5310178678816070E-09 8.7697117047806879E-09 + 9.0149956895739032E-09 9.2670501306971513E-09 9.5260602402010850E-09 + 9.7922162665766229E-09 1.0065713631168900E-08 1.0346753068276287E-08 + 1.0635540769033982E-08 1.0932288529184045E-08 1.1237213900836915E-08 + 1.1550540348331822E-08 1.1872497408306697E-08 1.2203320854091229E-08 + 1.2543252864539185E-08 1.2892542197420286E-08 1.3251444367494050E-08 + 1.3620221829392121E-08 1.3999144165438582E-08 1.4388488278541497E-08 + 1.4788538590292021E-08 1.5199587244412139E-08 1.5621934315694438E-08 + 1.6055888024582463E-08 1.6501764957543627E-08 1.6959890293390421E-08 + 1.7430598035710836E-08 1.7914231251572092E-08 1.8411142316667255E-08 + 1.8921693167077868E-08 1.9446255557831258E-08 1.9985211328435475E-08 + 2.0538952675579967E-08 2.1107882433195048E-08 2.1692414360068299E-08 + 2.2292973435221994E-08 2.2909996161259876E-08 2.3543930875898970E-08 + 2.4195238071906135E-08 2.4864390725666260E-08 2.5551874634614752E-08 + 2.6258188763772381E-08 2.6983845601628857E-08 2.7729371525625887E-08 + 2.8495307177499208E-08 2.9282207848744338E-08 3.0090643876479773E-08 + 3.0921201049986449E-08 3.1774481028212207E-08 3.2651101768536063E-08 + 3.3551697967095336E-08 3.4476921510988001E-08 3.5427441942668600E-08 + 3.6403946936867835E-08 3.7407142790371781E-08 3.8437754925007734E-08 + 3.9496528404192212E-08 4.0584228463406486E-08 4.1701641054974073E-08 + 4.2849573407526400E-08 4.4028854600551061E-08 4.5240336154429731E-08 + 4.6484892636382273E-08 4.7763422282745300E-08 4.9076847638025355E-08 + 5.0426116211178451E-08 5.1812201149579013E-08 5.3236101931155518E-08 + 5.4698845075181333E-08 5.6201484872222685E-08 5.7745104133760523E-08 + 5.9330814962015172E-08 6.0959759540517344E-08 6.2633110945985630E-08 + 6.4352073982081359E-08 6.6117886035632354E-08 6.7931817955929158E-08 + 6.9795174957714445E-08 7.1709297548504896E-08 7.3675562480897824E-08 + 7.5695383730538326E-08 7.7770213500435197E-08 7.9901543252335330E-08 + 8.2090904765885417E-08 8.4339871226328853E-08 8.6650058341504041E-08 + 8.9023125488935402E-08 9.1460776893824816E-08 9.3964762838776565E-08 + 9.6536880906106667E-08 9.9178977253619783E-08 1.0189294792474515E-07 + 1.0468074019396577E-07 1.0754435394848344E-07 1.1048584310709605E-07 + 1.1350731707729284E-07 1.1661094225158858E-07 1.1979894354415975E-07 + 1.2307360596886125E-07 1.2643727625973898E-07 1.2989236453518483E-07 + 1.3344134600690093E-07 1.3708676273488713E-07 1.4083122542968239E-07 + 1.4467741530313487E-07 1.4862808596900820E-07 1.5268606539475753E-07 + 1.5685425790586094E-07 1.6113564624411189E-07 1.6553329368132695E-07 + 1.7005034618996390E-07 1.7469003467217009E-07 1.7945567724884648E-07 + 1.8435068161032619E-07 1.8937854743034069E-07 1.9454286884496118E-07 + 1.9984733699827008E-07 2.0529574265656018E-07 2.1089197889289240E-07 + 2.1664004384391977E-07 2.2254404354090733E-07 2.2860819481694784E-07 + 2.3483682829242951E-07 2.4123439144084369E-07 2.4780545173710952E-07 + 2.5455469989062350E-07 2.6148695316531161E-07 2.6860715878903478E-07 + 2.7592039745473060E-07 2.8343188691577809E-07 2.9114698567810343E-07 + 2.9907119679163010E-07 3.0721017174375490E-07 3.1556971445757258E-07 + 3.2415578539768681E-07 3.3297450578647701E-07 3.4203216193381280E-07 + 3.5133520968324495E-07 3.6089027897781086E-07 3.7070417854868202E-07 + 3.8078390072992562E-07 3.9113662640280359E-07 4.0176973007306300E-07 + 4.1269078508480114E-07 4.2390756897458818E-07 4.3542806896958534E-07 + 4.4726048763356605E-07 4.5941324866478141E-07 4.7189500284976072E-07 + 4.8471463417725512E-07 4.9788126611658715E-07 5.1140426806486759E-07 + 5.2529326196757980E-07 5.3955812911720409E-07 5.5420901713467815E-07 + 5.6925634713856807E-07 5.8471082110703634E-07 6.0058342943774868E-07 + 6.1688545871105076E-07 6.3362849966188880E-07 6.5082445536603996E-07 + 6.6848554964646161E-07 6.8662433570561253E-07 7.0525370498987185E-07 + 7.2438689629223791E-07 7.4403750509973250E-07 7.6421949319208432E-07 + 7.8494719849841229E-07 8.0623534521887056E-07 8.2809905421833377E-07 + 8.5055385369944175E-07 8.7361569016252417E-07 8.9730093966004533E-07 + 9.2162641935355548E-07 9.4660939938119815E-07 9.7226761504413183E-07 + 9.9861927932046243E-07 1.0256830957153945E-06 1.0534782714567176E-06 + 1.0820245310448209E-06 1.1113421301667715E-06 1.1414518699842605E-06 + 1.1723751118053765E-06 1.2041337921505785E-06 1.2367504382233824E-06 + 1.2702481837966653E-06 1.3046507855257034E-06 1.3399826396993827E-06 + 1.3762687994414059E-06 1.4135349923734405E-06 1.4518076387527323E-06 + 1.4911138700967984E-06 1.5314815483083131E-06 1.5729392853136107E-06 + 1.6155164632285193E-06 1.6592432550657332E-06 1.7041506459981906E-06 + 1.7502704551933531E-06 1.7976353582337717E-06 1.8462789101395266E-06 + 1.8962355690088008E-06 1.9475407202930568E-06 2.0002307017238394E-06 + 2.0543428289087502E-06 2.1099154216143715E-06 2.1669878307546910E-06 + 2.2256004661038451E-06 2.2857948247525626E-06 2.3476135203283431E-06 + 2.4111003129996691E-06 2.4763001402854132E-06 2.5432591486908167E-06 + 2.6120247261923856E-06 2.6826455355942407E-06 2.7551715487793440E-06 + 2.8296540818796026E-06 2.9061458313892954E-06 2.9847009112472709E-06 + 3.0653748909136518E-06 3.1482248344677522E-06 3.2333093407545975E-06 + 3.3206885846079205E-06 3.4104243591786371E-06 3.5025801193982174E-06 + 3.5972210266073454E-06 3.6944139943811554E-06 3.7942277355827832E-06 + 3.8967328106783867E-06 4.0020016773471141E-06 4.1101087414207163E-06 + 4.2211304091884502E-06 4.3351451411035434E-06 4.4522335069289509E-06 + 4.5724782423605407E-06 4.6959643071675251E-06 4.8227789448903778E-06 + 4.9530117441379580E-06 5.0867547015266978E-06 5.2241022863053102E-06 + 5.3651515067105352E-06 5.5100019780996779E-06 5.6587559929076004E-06 + 5.8115185924769362E-06 5.9683976408111952E-06 6.1295039003024853E-06 + 6.2949511094861845E-06 6.4648560628767416E-06 6.6393386929402839E-06 + 6.8185221542606665E-06 7.0025329099578123E-06 7.1915008204181231E-06 + 7.3855592343985716E-06 7.5848450825681538E-06 7.7894989735509197E-06 + 7.9996652925379630E-06 8.2154923025363376E-06 8.4371322483251084E-06 + 8.6647414631911300E-06 8.8984804785177380E-06 9.1385141363031771E-06 + 9.3850117046858714E-06 9.6381469965573467E-06 9.8980984913443027E-06 + 1.0165049460044340E-05 1.0439188093602223E-05 1.0720707634714672E-05 + 1.1009806513155772E-05 1.1306688484715800E-05 1.1611562773849677E-05 + 1.1924644220134100E-05 1.2246153428633455E-05 1.2576316924279466E-05 + 1.2915367310370199E-05 1.3263543431298072E-05 1.3621090539619461E-05 + 1.3988260467580178E-05 1.4365311803216019E-05 1.4752510071148778E-05 + 1.5150127918202619E-05 1.5558445303968778E-05 1.5977749696448892E-05 + 1.6408336272912395E-05 1.6850508126105180E-05 1.7304576475951897E-05 + 1.7770860886896768E-05 1.8249689491031954E-05 1.8741399217167481E-05 + 1.9246336025998146E-05 1.9764855151530520E-05 2.0297321348933756E-05 + 2.0844109148984466E-05 2.1405603119280595E-05 2.1982198132401105E-05 + 2.2574299641196927E-05 2.3182323961399434E-05 2.3806698561740143E-05 + 2.4447862361780202E-05 2.5106266037651293E-05 2.5782372335918087E-05 + 2.6476656395774671E-05 2.7189606079794503E-05 2.7921722313460308E-05 + 2.8673519433702185E-05 2.9445525546683649E-05 3.0238282895076235E-05 + 3.1052348235072695E-05 3.1888293223395519E-05 3.2746704814560666E-05 + 3.3628185668668290E-05 3.4533354569993567E-05 3.5462846856663571E-05 + 3.6417314861707792E-05 3.7397428365781778E-05 3.8403875061869345E-05 + 3.9437361032275035E-05 4.0498611238230390E-05 4.1588370022441488E-05 + 4.2707401624916365E-05 4.3856490712420285E-05 4.5036442921911117E-05 + 4.6248085418323126E-05 4.7492267467069677E-05 4.8769861021649351E-05 + 5.0081761326749897E-05 5.1428887537249765E-05 5.2812183353534241E-05 + 5.4232617673546450E-05 5.5691185262009197E-05 5.7188907437264519E-05 + 5.8726832776183387E-05 6.0306037837618945E-05 6.1927627904877891E-05 + 6.3592737747707024E-05 6.5302532404295244E-05 6.7058207983809693E-05 + 6.8860992489997333E-05 7.0712146666391322E-05 7.2612964863684055E-05 + 7.4564775929832593E-05 7.6568944123484121E-05 7.8626870051321315E-05 + 8.0739991629938591E-05 8.2909785072883481E-05 8.5137765903503916E-05 + 8.7425489994263626E-05 8.9774554633206019E-05 9.2186599618254627E-05 + 9.4663308380067763E-05 9.7206409134169676E-05 9.9817676063108745E-05 + 1.0249893052940633E-04 1.0525204232007700E-04 1.0807893092352706E-04 + 1.1098156683964774E-04 1.1396197292394796E-04 1.1702222576658969E-04 + 1.2016445710720308E-04 1.2339085528639409E-04 1.2670366673485980E-04 + 1.3010519750107031E-04 1.3359781481847859E-04 1.3718394871325602E-04 + 1.4086609365357363E-04 1.4464681024146267E-04 1.4852872694833027E-04 + 1.5251454189521321E-04 1.5660702467888967E-04 1.6080901824499575E-04 + 1.6512344080930823E-04 1.6955328782840027E-04 1.7410163402088724E-04 + 1.7877163544051709E-04 1.8356653160239489E-04 1.8848964766364027E-04 + 1.9354439665983316E-04 1.9873428179860894E-04 2.0406289881181203E-04 + 2.0953393836764593E-04 2.1515118854427854E-04 2.2091853736641559E-04 + 2.2683997540636335E-04 2.3291959845116251E-04 2.3916161023738812E-04 + 2.4557032525525222E-04 2.5215017162369825E-04 2.5890569403817917E-04 + 2.6584155679288697E-04 2.7296254687920752E-04 2.8027357716222908E-04 + 2.8777968963717695E-04 2.9548605876766323E-04 3.0339799490771585E-04 + 3.1152094780955380E-04 3.1986051021914470E-04 3.2842242156162126E-04 + 3.3721257171865021E-04 3.4623700489993083E-04 3.5550192361100640E-04 + 3.6501369271963650E-04 3.7477884362303209E-04 3.8480407851826219E-04 + 3.9509627477824698E-04 4.0566248943572789E-04 4.1650996377772562E-04 + 4.2764612805298256E-04 4.3907860629496576E-04 4.5081522126306931E-04 + 4.6286399950464836E-04 4.7523317654064011E-04 4.8793120217751322E-04 + 5.0096674594836920E-04 5.1434870268607684E-04 5.2808619823133433E-04 + 5.4218859527865263E-04 5.5666549936326290E-04 5.7152676499202084E-04 + 5.8678250192145036E-04 6.0244308158606292E-04 6.1851914368022114E-04 + 6.3502160289678690E-04 6.5196165582589104E-04 6.6935078801722513E-04 + 6.8720078120923750E-04 7.0552372072876313E-04 7.2433200306457220E-04 + 7.4363834361843115E-04 7.6345578463731748E-04 7.8379770333041922E-04 + 8.0467782017469222E-04 8.2611020741268101E-04 8.4810929774647244E-04 + 8.7068989323158907E-04 8.9386717437473168E-04 9.1765670943933690E-04 + 9.4207446396286638E-04 9.6713681048990583E-04 9.9286053852507255E-04 + 1.0192628647098267E-03 1.0463614432273344E-03 1.0741743764394523E-03 + 1.1027202257600874E-03 1.1320180227690484E-03 1.1620872805706344E-03 + 1.1929480054012084E-03 1.2246207084899339E-03 1.2571264181769986E-03 + 1.2904866922935293E-03 1.3247236308074511E-03 1.3598598887396077E-03 + 1.3959186893542767E-03 1.4329238376284419E-03 1.4708997340038806E-03 + 1.5098713884264096E-03 1.5498644346763027E-03 1.5909051449940572E-03 + 1.6330204450056022E-03 1.6762379289508645E-03 1.7205858752197655E-03 + 1.7660932621994159E-03 1.8127897844363553E-03 1.8607058691175861E-03 + 1.9098726928739205E-03 1.9603221989092381E-03 2.0120871144589593E-03 + 2.0652009685809968E-03 2.1196981102823528E-03 2.1756137269841806E-03 + 2.2329838633282054E-03 2.2918454403269991E-03 2.3522362748605013E-03 + 2.4141950995210278E-03 2.4777615828085390E-03 2.5429763496780176E-03 + 2.6098810024402048E-03 2.6785181420168609E-03 2.7489313895514129E-03 + 2.8211654083752863E-03 2.8952659263302284E-03 2.9712797584461425E-03 + 3.0492548299739432E-03 3.1292401997721738E-03 3.2112860840458647E-03 + 3.2954438804356639E-03 3.3817661924544634E-03 3.4703068542686669E-03 + 3.5611209558201531E-03 3.6542648682847414E-03 3.7497962698622728E-03 + 3.8477741718924256E-03 3.9482589452901834E-03 4.0513123472935815E-03 + 4.1569975485158750E-03 4.2653791602938231E-03 4.3765232623196480E-03 + 4.4904974305534241E-03 4.6073707653929005E-03 4.7272139200983223E-03 + 4.8500991294551671E-03 4.9761002386542325E-03 5.1052927323827491E-03 + 5.2377537641069829E-03 5.3735621855122697E-03 5.5127985761109057E-03 + 5.6555452729635750E-03 5.8018864005130108E-03 5.9519079004972907E-03 + 6.1056975619179932E-03 6.2633450510333338E-03 6.4249419413450418E-03 + 6.5905817435578636E-03 6.7603599354557568E-03 6.9343739916880188E-03 + 7.1127234133988512E-03 7.2955097576797552E-03 7.4828366667921298E-03 + 7.6748098971182307E-03 7.8715373477939096E-03 8.0731290889640098E-03 + 8.2796973896235235E-03 8.4913567449700043E-03 8.7082239032202201E-03 + 8.9304178918259251E-03 9.1580600430181732E-03 9.3912740186188840E-03 + 9.6301858340422063E-03 9.8749238814084348E-03 1.0125618951696357E-02 + 1.0382404255840963E-02 1.0645415444703028E-02 1.0914790627798347E-02 + 1.1190670390709997E-02 1.1473197811070564E-02 1.1762518473010511E-02 + 1.2058780479966696E-02 1.2362134465731716E-02 1.2672733603622997E-02 + 1.2990733613650482E-02 1.3316292767544886E-02 1.3649571891517555E-02 + 1.3990734366601511E-02 1.4339946126430981E-02 1.4697375652301663E-02 + 1.5063193965354530E-02 1.5437574615708150E-02 1.5820693668374370E-02 + 1.6212729685773742E-02 1.6613863706657434E-02 1.7024279221250636E-02 + 1.7444162142411679E-02 1.7873700772589308E-02 1.8313085766377159E-02 + 1.8762510088426203E-02 1.9222168966491659E-02 1.9692259839372693E-02 + 2.0172982299494574E-02 2.0664538029872195E-02 2.1167130735205739E-02 + 2.1680966066818397E-02 2.2206251541156661E-02 2.2743196451582785E-02 + 2.3292011773131758E-02 2.3852910059940398E-02 2.4426105335043941E-02 + 2.5011812972185559E-02 2.5610249569343081E-02 2.6221632813593555E-02 + 2.6846181336998495E-02 2.7484114563129682E-02 2.8135652543879980E-02 + 2.8801015786182074E-02 2.9480425068247603E-02 3.0174101244950974E-02 + 3.0882265041946765E-02 3.1605136838120003E-02 3.2342936435969007E-02 + 3.3095882819490399E-02 3.3864193899155876E-02 3.4648086243547115E-02 + 3.5447774797220978E-02 3.6263472584369898E-02 3.7095390397838858E-02 + 3.7943736473058584E-02 3.8808716146456576E-02 3.9690531497901506E-02 + 4.0589380976747254E-02 4.1505459011022219E-02 4.2438955599359666E-02 + 4.3390055885199494E-02 4.4358939712872976E-02 4.5345781165132562E-02 + 4.6350748081731341E-02 4.7374001558650881E-02 4.8415695427601789E-02 + 4.9475975715427251E-02 5.0554980083060093E-02 5.1652837243713501E-02 + 5.2769666359989031E-02 5.3905576419635177E-02 5.5060665589694038E-02 + 5.6235020548827307E-02 5.7428715797626928E-02 5.8641812946777228E-02 + 5.9874359982950966E-02 6.1126390512392090E-02 6.2397922982172643E-02 + 6.3688959879167742E-02 6.4999486906858334E-02 6.6329472140125384E-02 + 6.7678865158275786E-02 6.9047596156602456E-02 7.0435575036877543E-02 + 7.1842690477238888E-02 7.3268808982044201E-02 7.4713773912339895E-02 + 7.6177404497715595E-02 7.7659494830406031E-02 7.9159812842630795E-02 + 8.0678099268274545E-02 8.2214066590146767E-02 8.3767397974192859E-02 + 8.5337746192175892E-02 8.6924732534488833E-02 8.8527945714941589E-02 + 9.0146940769495199E-02 9.1781237951133327E-02 9.3430321623208565E-02 + 9.5093639153818618E-02 9.6770599813942773E-02 9.8460573682299088E-02 + 1.0016289056008229E-01 1.0187683889896608E-01 1.0360166474599557E-01 + 1.0533657070921530E-01 1.0708071494814768E-01 1.0883321019345595E-01 + 1.1059312280041976E-01 1.1235947184108751E-01 1.1413122824025425E-01 + 1.1590731396067969E-01 1.1768660124324765E-01 1.1946791190804028E-01 + 1.2125001672258452E-01 1.2303163484382192E-01 1.2481143334062120E-01 + 1.2658802680394432E-01 1.2835997705205279E-01 1.3012579293841528E-01 + 1.3188393027024228E-01 1.3363279184582741E-01 1.3537072761913410E-01 + 1.3709603500028872E-01 1.3880695930085746E-01 1.4050169433299653E-01 + 1.4217838317172796E-01 1.4383511908975283E-01 1.4546994667433738E-01 + 1.4708086313590268E-01 1.4866581981799823E-01 1.5022272391836317E-01 + 1.5174944043075320E-01 1.5324379431713192E-01 1.5470357291969628E-01 + 1.5612652862202811E-01 1.5751038176840160E-01 1.5885282384997065E-01 + 1.6015152096615379E-01 1.6140411756907636E-01 1.6260824049836128E-01 + 1.6376150331291026E-01 1.6486151092557599E-01 1.6590586454576706E-01 + 1.6689216693406519E-01 1.6781802797186371E-01 1.6868107054782580E-01 + 1.6947893676163658E-01 1.7020929444405947E-01 1.7086984399070448E-01 + 1.7145832550516943E-01 1.7197252624531201E-01 1.7241028836437222E-01 + 1.7276951693644482E-01 1.7304818825343998E-01 1.7324435837814178E-01 + 1.7335617193527741E-01 1.7338187111965966E-01 1.7331980489744497E-01 + 1.7316843837337875E-01 1.7292636229356806E-01 1.7259230264984882E-01 + 1.7216513034819900E-01 1.7164387089990629E-01 1.7102771409034001E-01 + 1.7031602357621986E-01 1.6950834635822948E-01 1.6860442207172630E-01 + 1.6760419203415897E-01 1.6650780798365863E-01 1.6531564043914715E-01 + 1.6402828660824895E-01 1.6264657776531580E-01 1.6117158601806630E-01 + 1.5960463037769582E-01 1.5794728204393546E-01 1.5620136881343416E-01 + 1.5436897851712356E-01 1.5245246138991531E-01 1.5045443127427741E-01 + 1.4837776555801602E-01 1.4622560374600291E-01 1.4400134456576863E-01 + 1.4170864150785190E-01 1.3935139670371691E-01 1.3693375304696612E-01 + 1.3446008446759103E-01 1.3193498427424263E-01 1.2936325148603847E-01 + 1.2674987508334362E-01 1.2410001611641142E-01 1.2141898762177548E-01 + 1.1871223230900471E-01 1.1598529799487052E-01 1.1324381077829261E-01 + 1.1049344596762206E-01 1.0773989679195349E-01 1.0498884095030481E-01 + 1.0224590507663474E-01 9.9516627224796927E-02 9.6806417505651526E-02 + 9.4120517038579418E-02 9.1463955411528519E-02 8.8841506877293003E-02 + 8.6257645548900586E-02 8.3716499893511820E-02 8.1221806861877036E-02 + 7.8776866028920520E-02 7.6384494160013722E-02 7.4046980656630443E-02 + 7.1766044373847884E-02 6.9542792340102383E-02 6.7377680946133806E-02 + 6.5270480204513426E-02 6.3220241712897668E-02 6.1225454595328403E-02 + 5.9284838163552386E-02 5.7397243310363000E-02 5.5561534188909495E-02 + 5.3776588260441897E-02 5.2041296313968796E-02 5.0354562464005388E-02 + 4.8715304133647122E-02 4.7122452031031152E-02 4.5574950127763844E-02 + 4.4071755648009685E-02 4.2611839076593792E-02 4.1194184193638628E-02 + 3.9817788141927699E-02 3.8481661531416911E-02 3.7184828583177329E-02 + 3.5926327312685746E-02 3.4705209749934546E-02 3.3520542191482185E-02 + 3.2371405477490907E-02 3.1256895285140127E-02 3.0176122428690090E-02 + 2.9128213155954930E-02 2.8112309431063482E-02 2.7127569194030855E-02 + 2.6173166588900031E-02 2.5248292153680317E-02 2.4352152967062207E-02 + 2.3483972748827131E-02 2.2642991912521535E-02 2.1828467570712797E-02 + 2.1039673494534079E-02 2.0275900030296602E-02 1.9536453976862524E-02 + 1.8820658427979923E-02 1.8127852584075767E-02 1.7457391538066826E-02 + 1.6808646039628561E-02 1.6181002242104777E-02 1.5573861435893675E-02 + 1.4986639771739012E-02 1.4418767976925598E-02 1.3869691066946081E-02 + 1.3338868054792594E-02 1.2825771659642292E-02 1.2329888016356854E-02 + 1.1850716386909254E-02 1.1387768874582899E-02 1.0940570141561346E-02 + 1.0508657130334338E-02 1.0091578789188692E-02 9.6888958019238740E-03 + 9.3001803218290460E-03 8.9250157098790545E-03 8.5629962770465938E-03 + 8.2137270305845094E-03 7.8768234241051189E-03 7.5519111112688801E-03 + 7.2386257028932378E-03 6.9366125273013432E-03 6.6455263937500496E-03 + 6.3650313588053077E-03 6.0948004955695897E-03 5.8345156657104514E-03 + 5.5838672942888200E-03 5.3425541474397750E-03 5.1102831130145805E-03 + 4.8867689843493795E-03 4.6717342473804029E-03 4.4649088713751232E-03 + 4.2660301035921137E-03 4.0748422682163436E-03 3.8910965699393671E-03 + 3.7145509025645995E-03 3.5449696630146174E-03 3.3821235711005717E-03 + 3.2257894953830793E-03 3.0757502854107215E-03 2.9317946105678863E-03 + 2.7937168056995591E-03 2.6613167236112737E-03 2.5343995944661583E-03 + 2.4127758920267986E-03 2.2962612066146260E-03 2.1846761245871370E-03 + 2.0778461140708200E-03 1.9756014166280706E-03 1.8777769444890070E-03 + 1.7842121829411588E-03 1.6947510974407373E-03 1.6092420449917218E-03 + 1.5275376893306388E-03 1.4494949194560364E-03 1.3749747710508371E-03 + 1.3038423503623805E-03 1.2359667601275523E-03 1.1712210271578810E-03 + 1.1094820312307872E-03 1.0506304349670841E-03 9.9455061441025973E-04 + 9.4113059005938849E-04 8.9026195814355554E-04 8.4183982196110111E-04 + 7.9576272314097060E-04 7.5193257271580086E-04 7.1025458192659741E-04 + 6.7063719270674495E-04 6.3299200781864187E-04 5.9723372063922339E-04 + 5.6328004461108304E-04 5.3105164239394701E-04 5.0047205476681865E-04 + 4.7146762934444097E-04 4.4396744918281722E-04 4.1790326135763010E-04 + 3.9320940560656753E-04 3.6982274313192726E-04 3.4768258566365200E-04 + 3.2673062488515101E-04 3.0691086232511895E-04 2.8816953981808711E-04 + 2.7045507063482884E-04 2.5371797138103652E-04 2.3791079475898427E-04 + 2.2298806328234058E-04 2.0890620402893770E-04 1.9562348451025290E-04 + 1.8309994972973858E-04 1.7129736049501475E-04 1.6017913304145382E-04 + 1.4971028001691940E-04 1.3985735286951422E-04 1.3058838567223875E-04 + 1.2187284041056432E-04 1.1368155375122037E-04 1.0598668530305528E-04 + 9.8761667373750648E-05 9.1981156219551115E-05 8.5620984779050973E-05 + 7.9658116876541609E-05 7.4070602875476850E-05 6.8837536758312661E-05 + 6.3939014605309447E-05 5.9356094441849170E-05 5.5070757421412007E-05 + 5.1065870309528173E-05 4.7325149232752097E-05 4.3833124655935224E-05 + 4.0575107550765613E-05 3.7537156718630257E-05 3.4706047231287867E-05 + 3.2069239953562500E-05 2.9614852113222855E-05 2.7331628884344949E-05 + 2.5208915951725264E-05 2.3236633025264618E-05 2.1405248274646880E-05 + 1.9705753656050950E-05 1.8129641104035574E-05 1.6668879563094901E-05 + 1.5315892834680651E-05 1.4063538216710323E-05 1.2905085913716782E-05 + 1.1834199196837790E-05 1.0844915293787973E-05 9.9316269898031586E-06 + 9.0890649212956722E-06 8.3122805446137132E-06 7.5966297628643891E-06 + 6.9377571942428378E-06 6.3315810657161459E-06 5.7742787162498089E-06 + 5.2622726940416069E-06 4.7922174324532670E-06 4.3609864895101000E-06 + 3.9656603359822471E-06 3.6035146771744948E-06 3.2720092936418654E-06 + 2.9687773861221491E-06 2.6916154100398419E-06 2.4384733849932703E-06 + 2.2074456646938689E-06 1.9967621528864458E-06 1.8047799508463051E-06 + 1.6299754221255210E-06 1.4709366603094986E-06 1.3263563456477471E-06 + 1.1950249765410391E-06 1.0758244620021899E-06 9.6772206135978799E-07 + 8.6976465764407965E-07 7.8107335128148411E-07 7.0083836092900790E-07 + 6.2831421850134842E-07 5.6281524568115622E-07 5.0371129945593830E-07 + 4.5042377449235861E-07 4.0242185043909321E-07 3.5921897254185369E-07 + 3.2036955425727834E-07 2.8546589086494261E-07 2.5413527339731560E-07 + 2.2603729253486584E-07 2.0086132244628145E-07 1.7832417489065395E-07 + 1.5816791423822664E-07 1.4015782440766510E-07 1.2408051905960157E-07 + 1.0974218672733629E-07 9.6966962904948645E-08 8.5595421449720773E-08 + 7.5483177988745790E-08 6.6499598348055649E-08 5.8526605345756469E-08 + 5.1457577607786173E-08 4.5196334375390130E-08 3.9656200576647880E-08 + 3.4759146729897423E-08 3.0434998534243063E-08 2.6620711281141628E-08 + 2.3259704491024642E-08 2.0301252439784375E-08 1.7699926491544713E-08 + 1.5415085396310143E-08 1.3410409943752118E-08 1.1653478587515600E-08 + 1.0115380868007300E-08 8.7703656657089523E-09 7.5955215117208485E-09 + 6.5704863675988306E-09 5.6771844627437681E-09 4.8995879448068280E-09 + 4.2235012569822209E-09 3.6363663058853690E-09 3.1270866251920912E-09 + 2.6858688735929761E-09 2.3040801311566555E-09 1.9741195761690912E-09 + 1.6893032352021904E-09 1.4437606028506860E-09 1.2323420245505776E-09 + 1.0505358264476061E-09 8.9439426071316111E-10 7.6046741329877829E-10 + 6.4574429416853013E-10 5.4760039783645728E-10 4.6375108484478189E-10 + 3.9221019292298425E-10 3.3125334023652300E-10 2.7938543262840694E-10 + 2.3531193233027212E-10 1.9791348751704410E-10 1.6622356053682118E-10 + 1.3940872789210660E-10 1.1675135729750989E-10 9.7634396600345039E-11 + 8.1528036222430397E-11 6.7978031252316842E-11 5.6595491565881086E-11 + 4.7047968549132798E-11 3.9051685299904613E-11 3.2364773744104428E-11 + 2.6781397065501646E-11 2.2126649325072769E-11 1.8252136301329063E-11 + 1.5032152646036127E-11 1.2360379323566654E-11 1.0147036372353666E-11 + 8.3164361665715113E-12 6.8048529892003276E-12 5.5587631959932888E-12 + 4.5332327575732590E-12 3.6906488199988745E-12 2.9995466224475603E-12 + 2.4336603951671631E-12 1.9711016003042591E-12 1.5936607618427431E-12 + 1.2862153193984951E-12 1.0362282785712068E-12 8.3332448063499181E-13 + 6.6893310886707075E-13 5.3598661673231493E-13 4.2866763052801812E-13 + 3.4219656936110516E-13 2.7265375946351237E-13 2.1683071661991683E-13 + 1.7210604663772059E-13 1.3634208425273170E-13 1.0779896889653295E-13 + 8.5063353113994151E-14 6.6989366520037847E-14 5.2649824214727530E-14 + 4.1295981633854580E-14 3.2324405019191721E-14 2.5249754295453122E-14 + 1.9682468608157902E-14 1.5310508884224281E-14 1.1884450687476843E-14 + 9.2053379734315948E-15 7.1148072413938697E-15 5.4870747546193290E-15 + 4.2224492978244864E-15 3.2420913876083737E-15 2.4837886833319555E-15 + 1.8985580540961186E-15 1.4479186167464776E-15 1.1017081585974428E-15 + 8.3633862343611693E-16 6.3340555742567528E-16 4.7858224971471030E-16 + 3.6074232462300046E-16 2.7126522356947425E-16 2.0348775526171771E-16 + 1.5227202753912690E-16 1.1366588440290572E-16 8.4636691541823004E-17 + 6.2863138220017176E-17 4.6572814805836503E-17 3.4415817745666670E-17 + 2.5366638348493540E-17 1.8648199751827486E-17 1.3673193010586242E-17 + 9.9988899634401677E-18 7.2924277219894888E-18 5.3042083334100700E-18 + 3.8475707505518994E-18 2.7832977558216498E-18 2.0078397983565145E-18 + 1.4443884529179636E-18 1.0361285723459954E-18 7.4115155090734089E-19 + 5.2863153117953127E-19 3.7595911642504261E-19 2.6659895158024756E-19 + 1.8849297209630175E-19 1.3287379648583556E-19 9.3385496044987974E-20 + 6.5434044894391948E-20 4.5708882299632876E-20 3.1831571120579102E-20 + 2.2098572734248634E-20 1.5293503503347760E-20 1.0550527865033072E-20 + 7.2552695697042506E-21 4.9731630187626137E-21 3.3978102542183140E-21 + 2.3138768072596108E-21 1.5705194346792403E-21 1.0624183088119809E-21 + 7.1628192660456470E-22 4.8127755552303321E-22 3.2226803679440703E-22 + 2.1504809162012394E-22 1.4300041492237073E-22 9.4756463108121954E-23 + 6.2565742475933723E-23 4.1162982988549115E-23 2.6983960501102913E-23 + 1.7624596451373296E-23 1.1469202139787655E-23 7.4359000941579855E-24 + 4.8029255438896182E-24 3.0905492070808592E-24 1.9811090365075482E-24 + 1.2650546416968728E-24 8.0468060651737100E-25 5.0984264359485605E-25 + 3.2175999948875683E-25 2.0225347444308383E-25 1.2662300419238593E-25 + 7.8952598644003371E-26 4.9027733436235630E-26 3.0319568753436724E-26 + 1.8672142449813559E-26 1.1450888601952935E-26 6.9926529248566274E-27 + 4.2519310770237411E-27 2.5742783071433409E-27 1.5517909308323545E-27 + 9.3132835684526759E-28 5.5647767608606574E-28 3.3101701701111296E-28 + 1.9601839088690547E-28 1.1555186324208826E-28 6.7805482773456100E-29 + 3.9609067253130100E-29 2.3039853779668156E-29 1.3339485322070416E-29 + 7.6864316512335251E-30 4.4077645897067291E-30 2.5153670061870787E-30 + + + 5.8823761111559201E-20 8.2884069781553332E-18 6.7197442819628583E-17 + 2.2982774324662464E-16 5.5209806262854586E-16 1.0928040977431040E-15 + 1.9137546087352039E-15 3.0799400284824526E-15 4.6595110288374246E-15 + 6.7240675009103393E-15 9.3485445621843206E-15 1.2611629176368038E-14 + 1.6595631408487153E-14 2.1386853601426411E-14 2.7075361748409439E-14 + 3.3755700353681600E-14 4.1526451900554884E-14 5.0490697371087455E-14 + 6.0756184566691462E-14 7.2435245813141535E-14 8.5645518266904807E-14 + 1.0050924008539813E-13 1.1715438405993187E-13 1.3571398572135202E-13 + 1.5632693442777431E-13 1.7913793420810702E-13 2.0429769328906742E-13 + 2.3196340072862863E-13 2.6229796434894944E-13 2.9547198356816148E-13 + 3.3166215053749287E-13 3.7105260712770528E-13 4.1383499062765433E-13 + 4.6020807617410242E-13 5.1037894052511762E-13 5.6456282832235092E-13 + 6.2298308788087891E-13 6.8587168474690679E-13 7.5346991401482213E-13 + 8.2602819924403976E-13 9.0380619711222271E-13 9.8707399639494256E-13 + 1.0761112254809900E-12 1.1712087406849282E-12 1.2726676465819737E-12 + 1.3808006329650745E-12 1.4959319744954711E-12 1.6183975425976472E-12 + 1.7485457208986323E-12 1.8867383173080155E-12 2.0333494024109290E-12 + 2.1887665709585044E-12 2.3533920842761128E-12 2.5276422115133516E-12 + 2.7119484230705417E-12 2.9067572290125300E-12 3.1125309262367057E-12 + 3.3297491124456350E-12 3.5589065092389053E-12 3.8005170181000830E-12 + 4.0551118853007129E-12 4.3232403894974322E-12 4.6054718566278121E-12 + 4.9023943662895642E-12 5.2146170043184088E-12 5.5427694239265848E-12 + 5.8875030879394165E-12 6.2494915368305382E-12 6.6294315304395967E-12 + 7.0280433356885867E-12 7.4460716090330915E-12 7.8842870245468618E-12 + 8.3434841431902278E-12 8.8244868796329412E-12 9.3281445084391665E-12 + 9.8553361941593517E-12 1.0406968881103113E-11 1.0983981682115911E-11 + 1.1587343313961103E-11 1.2218054243710901E-11 1.2877149827333039E-11 + 1.3565697211938855E-11 1.4284801200863374E-11 1.5035599190548036E-11 + 1.5819269133996427E-11 1.6637025386125017E-11 1.7490122785002119E-11 + 1.8379856833509895E-11 1.9307563280604173E-11 2.0274624054944621E-11 + 2.1282462948918301E-11 2.2332550325147338E-11 2.3426404020394337E-11 + 2.4565590661718491E-11 2.5751726927639849E-11 2.6986480343293195E-11 + 2.8271572079125828E-11 2.9608777751894155E-11 3.0999929566078972E-11 + 3.2446917525280749E-11 3.3951691513883199E-11 3.5516261903815081E-11 + 3.7142704182796819E-11 3.8833158092652407E-11 4.0589830066793359E-11 + 4.2414996334259634E-11 4.4311003132599654E-11 4.6280271169572926E-11 + 4.8325296972564424E-11 5.0448652920280542E-11 5.2652992158810040E-11 + 5.4941050141720504E-11 5.7315648379046046E-11 5.9779691352503660E-11 + 6.2336178678107730E-11 6.4988198577610483E-11 6.7738935839587329E-11 + 7.0591672037430809E-11 7.3549790474168144E-11 7.6616776702311808E-11 + 7.9796224458777325E-11 8.3091837469371504E-11 8.6507431665890297E-11 + 9.0046937767855721E-11 9.3714405811277893E-11 9.7514014376667405E-11 + 1.0145006215168121E-10 1.0552698146390395E-10 1.0974933861719620E-10 + 1.1412183843842315E-10 1.1864932237192032E-10 1.2333678789985393E-10 + 1.2818937315453276E-10 1.3321237729244649E-10 1.3841125539187239E-10 + 1.4379162603944038E-10 1.4935928004713313E-10 1.5512017642317485E-10 + 1.6108045520331930E-10 1.6724643996937656E-10 1.7362464283392415E-10 + 1.8022176817552800E-10 1.8704472253437949E-10 1.9410061565838736E-10 + 2.0139676981430693E-10 2.0894072544020759E-10 2.1674024424038986E-10 + 2.2480331882934871E-10 2.3313817955080225E-10 2.4175329828292570E-10 + 2.5065739766111775E-10 2.5985945598276545E-10 2.6936872223455378E-10 + 2.7919470834604811E-10 2.8934721488314449E-10 2.9983632633511318E-10 + 3.1067242280076955E-10 3.2186619091095931E-10 3.3342862655295341E-10 + 3.4537105530662920E-10 3.5770512332969910E-10 3.7044282894003826E-10 + 3.8359651533236198E-10 3.9717888176954834E-10 4.1120300646235036E-10 + 4.2568234054117139E-10 4.4063073395887421E-10 4.5606243381215175E-10 + 4.7199210719226779E-10 4.8843483843753739E-10 5.0540616150415554E-10 + 5.2292204945763486E-10 5.4099894660340654E-10 5.5965376817212582E-10 + 5.7890392144475792E-10 5.9876731798135386E-10 6.1926238163086944E-10 + 6.4040807718067482E-10 6.6222390600844312E-10 6.8472994219743002E-10 + 7.0794682803576147E-10 7.3189581174878676E-10 7.5659874040077668E-10 + 7.8207809900046872E-10 8.0835701557674385E-10 8.3545928075341267E-10 + 8.6340936774646068E-10 8.9223245831500862E-10 9.2195444428350469E-10 + 9.5260197049449817E-10 9.8420243876441642E-10 1.0167840320139431E-09 + 1.0503757463517105E-09 1.0850074026286507E-09 1.1207096749546468E-09 + 1.1575141071686203E-09 1.1954531487094547E-09 1.2345601757681201E-09 + 1.2748695082541491E-09 1.3164164488810639E-09 1.3592373053013426E-09 + 1.4033694131544449E-09 1.4488511729390654E-09 1.4957220806503369E-09 + 1.5440227405956675E-09 1.5937949257039667E-09 1.6450815832852445E-09 + 1.6979268759731116E-09 1.7523762323339731E-09 1.8084763537469758E-09 + 1.8662752710304252E-09 1.9258223679350824E-09 1.9871684286148229E-09 + 2.0503656769898488E-09 2.1154678084474692E-09 2.1825300302569494E-09 + 2.2516091122073201E-09 2.3227634324610668E-09 2.3960530026158428E-09 + 2.4715395367223749E-09 2.5492864867025035E-09 2.6293590820777385E-09 + 2.7118243961760722E-09 2.7967513934237941E-09 2.8842109658031969E-09 + 2.9742760104726051E-09 3.0670214722370655E-09 3.1625243920836310E-09 + 3.2608639791335537E-09 3.3621216693239335E-09 3.4663811787066705E-09 + 3.5737285721758819E-09 3.6842523323152026E-09 3.7980434104609050E-09 + 3.9151953147786322E-09 4.0358041669650220E-09 4.1599687895606023E-09 + 4.2877907535986902E-09 4.4193744791708477E-09 4.5548273041767745E-09 + 4.6942595738014643E-09 4.8377847082588418E-09 4.9855192927241373E-09 + 5.1375831773926325E-09 5.2940995482384606E-09 5.4551950295374674E-09 + 5.6209997868803210E-09 5.7916475941204060E-09 5.9672759696484720E-09 + 6.1480262629200979E-09 6.3340437518059947E-09 6.5254777644833425E-09 + 6.7224817841794183E-09 6.9252135592928384E-09 7.1338352417249836E-09 + 7.3485134680156610E-09 7.5694195283139039E-09 7.7967294618175548E-09 + 8.0306241944482948E-09 8.2712896882410136E-09 8.5189170597343550E-09 + 8.7737027387782859E-09 9.0358485794520432E-09 9.3055620757812801E-09 + 9.5830564372185602E-09 9.8685508121345754E-09 1.0162270399633343E-08 + 1.0464446656676290E-08 1.0775317434818915E-08 1.1095127195639792E-08 + 1.1424127134564954E-08 1.1762575421428037E-08 1.2110737372637240E-08 + 1.2468885630283184E-08 1.2837300374088351E-08 1.3216269548399023E-08 + 1.3606089039830758E-08 1.4007062909582048E-08 1.4419503627560955E-08 + 1.4843732293070115E-08 1.5280078861301466E-08 1.5728882407586570E-08 + 1.6190491356051334E-08 1.6665263745249837E-08 1.7153567495473779E-08 + 1.7655780666224535E-08 1.8172291744161344E-08 1.8703499928983043E-08 + 1.9249815413568314E-08 1.9811659688464981E-08 2.0389465873995506E-08 + 2.0983678997191773E-08 2.1594756346447795E-08 2.2223167796884110E-08 + 2.2869396162861065E-08 2.3533937529442616E-08 2.4217301636698968E-08 + 2.4920012248880251E-08 2.5642607528365197E-08 2.6385640424848747E-08 + 2.7149679102517604E-08 2.7935307319677008E-08 2.8743124896504963E-08 + 2.9573748095679296E-08 3.0427810157589883E-08 3.1305961653572872E-08 + 3.2208871059077778E-08 3.3137225170307650E-08 3.4091729655016734E-08 + 3.5073109510550159E-08 3.6082109655458735E-08 3.7119495419961296E-08 + 3.8186053132129360E-08 3.9282590682967877E-08 4.0409938074633617E-08 + 4.1568948112725649E-08 4.2760496938459784E-08 4.3985484697291672E-08 + 4.5244836202811544E-08 4.6539501585475150E-08 4.7870457018512886E-08 + 4.9238705376345378E-08 5.0645276989683443E-08 5.2091230415071860E-08 + 5.3577653136240601E-08 5.5105662435549876E-08 5.6676406124691357E-08 + 5.8291063427939719E-08 5.9950845822437955E-08 6.1656997893584379E-08 + 6.3410798283029978E-08 6.5213560550291706E-08 6.7066634193312728E-08 + 6.8971405530506995E-08 7.0929298833045901E-08 7.2941777222403857E-08 + 7.5010343814281553E-08 7.7136542764164886E-08 7.9321960413868015E-08 + 8.1568226380292891E-08 8.3877014792024565E-08 8.6250045471748779E-08 + 8.8689085188095509E-08 9.1195948902298791E-08 9.3772501103429610E-08 + 9.6420657126450015E-08 9.9142384603510358E-08 1.0193970477268757E-07 + 1.0481469402024784E-07 1.0776948533585772E-07 1.1080626986238030E-07 + 1.1392729849073556E-07 1.1713488341820887E-07 1.2043139988808696E-07 + 1.2381928786965332E-07 1.2730105377757179E-07 1.3087927233485369E-07 + 1.3455658839272457E-07 1.3833571883575842E-07 1.4221945451603594E-07 + 1.4621066230754107E-07 1.5031228712201360E-07 1.5452735405013017E-07 + 1.5885897048584545E-07 1.6331032845936140E-07 1.6788470681891446E-07 + 1.7258547364368101E-07 1.7741608864473173E-07 1.8238010567836172E-07 + 1.8748117525003085E-07 1.9272304713855432E-07 1.9810957313887643E-07 + 2.0364470974997946E-07 2.0933252107417816E-07 2.1517718169050233E-07 + 2.2118297966474678E-07 2.2735431963240097E-07 2.3369572591531731E-07 + 2.4021184581807715E-07 2.4690745289233476E-07 2.5378745043040546E-07 + 2.6085687491208276E-07 2.6812089965656756E-07 2.7558483845751956E-07 + 2.8325414949401748E-07 2.9113443915602590E-07 2.9923146603765494E-07 + 3.0755114516486892E-07 3.1609955210229246E-07 3.2488292737933429E-07 + 3.3390768089854584E-07 3.4318039659809186E-07 3.5270783704905499E-07 + 3.6249694839813250E-07 3.7255486522573730E-07 3.8288891576633865E-07 + 3.9350662700613138E-07 4.0441573019631099E-07 4.1562416625453672E-07 + 4.2714009152286625E-07 4.3897188356554137E-07 4.5112814712702746E-07 + 4.6361772030451804E-07 4.7644968083512770E-07 4.8963335261638366E-07 + 5.0317831227609208E-07 5.1709439608357059E-07 5.3139170696268925E-07 + 5.4608062164563938E-07 5.6117179812137431E-07 5.7667618322536034E-07 + 5.9260502039993386E-07 6.0896985782278657E-07 6.2578255649622434E-07 + 6.4305529880926214E-07 6.6080059716400234E-07 6.7903130298160777E-07 + 6.9776061568303919E-07 7.1700209228913326E-07 7.3676965691808305E-07 + 7.5707761082999616E-07 7.7794064253087064E-07 7.9937383828343945E-07 + 8.2139269282810245E-07 8.4401312034335702E-07 8.6725146592318921E-07 + 8.9112451713967957E-07 9.1564951587931656E-07 9.4084417087157190E-07 + 9.6672667001504793E-07 9.9331569351405577E-07 1.0206304270116456E-06 + 1.0486905754507425E-06 1.0775163768531411E-06 1.1071286168772727E-06 + 1.1375486434791963E-06 1.1687983822924326E-06 1.2009003519324443E-06 + 1.2338776802440244E-06 1.2677541206239729E-06 1.3025540689676215E-06 + 1.3383025809404541E-06 1.3750253898508417E-06 1.4127489248782489E-06 + 1.4515003298831983E-06 1.4913074827588069E-06 1.5321990149998353E-06 + 1.5742043324273689E-06 1.6173536356553028E-06 1.6616779418679200E-06 + 1.7072091066105855E-06 1.7539798466485416E-06 1.8020237629338577E-06 + 1.8513753646446890E-06 1.9020700936737215E-06 1.9541443496392463E-06 + 2.0076355158645329E-06 2.0625819859439764E-06 2.1190231907444924E-06 + 2.1769996267396747E-06 2.2365528844149276E-06 2.2977256779471979E-06 + 2.3605618755321779E-06 2.4251065303636499E-06 2.4914059127590701E-06 + 2.5595075427714220E-06 2.6294602241320708E-06 2.7013140786488254E-06 + 2.7751205818566132E-06 2.8509325994217549E-06 2.9288044248630789E-06 + 3.0087918176501746E-06 3.0909520431040638E-06 3.1753439127093858E-06 + 3.2620278260147428E-06 3.3510658132554308E-06 3.4425215794505331E-06 + 3.5364605493606940E-06 3.6329499141584396E-06 3.7320586787193335E-06 + 3.8338577105605884E-06 3.9384197902660948E-06 4.0458196627513985E-06 + 4.1561340904013332E-06 4.2694419072853728E-06 4.3858240751847055E-06 + 4.5053637406790607E-06 4.6281462942603705E-06 4.7542594305356094E-06 + 4.8837932105504455E-06 5.0168401254253644E-06 5.1534951618738869E-06 + 5.2938558693585424E-06 5.4380224291659213E-06 5.5860977254129699E-06 + 5.7381874177200694E-06 5.8944000160088048E-06 6.0548469573300676E-06 + 6.2196426847491472E-06 6.3889047281405263E-06 6.5627537874337862E-06 + 6.7413138180966491E-06 6.9247121186994638E-06 7.1130794209572523E-06 + 7.3065499821398982E-06 7.5052616802533347E-06 7.7093561112573430E-06 + 7.9189786892968656E-06 8.1342787496397039E-06 8.3554096541725467E-06 + 8.5825288996998596E-06 8.8157982294563998E-06 9.0553837474162364E-06 + 9.3014560356565010E-06 9.5541902749202996E-06 9.8137663685697710E-06 + 1.0080369069415639E-05 1.0354188110632783E-05 1.0635418339600537E-05 + 1.0924259855766676E-05 1.1220918151727721E-05 1.1525604258813322E-05 + 1.1838534895766468E-05 1.2159932622143092E-05 1.2490025995380577E-05 + 1.2829049732209906E-05 1.3177244874593888E-05 1.3534858959749910E-05 + 1.3902146195054165E-05 1.4279367637686722E-05 1.4666791378731418E-05 + 1.5064692732588565E-05 1.5473354431403754E-05 1.5893066824475537E-05 + 1.6324128083500218E-05 1.6766844412930243E-05 1.7221530265922084E-05 + 1.7688508566659845E-05 1.8168110937898973E-05 1.8660677935159800E-05 + 1.9166559287139397E-05 1.9686114142362338E-05 2.0219711322561238E-05 + 2.0767729583215243E-05 2.1330557880269681E-05 2.1908595644819764E-05 + 2.2502253064939161E-05 2.3111951374850020E-05 2.3738123152199700E-05 + 2.4381212622922706E-05 2.5041675974701974E-05 2.5719981678725416E-05 + 2.6416610819840690E-05 2.7132057435906787E-05 2.7866828866048216E-05 + 2.8621446108520895E-05 2.9396444187666237E-05 3.0192372531432323E-05 + 3.1009795358484966E-05 3.1849292075625709E-05 3.2711457686849689E-05 + 3.3596903211954164E-05 3.4506256117463403E-05 3.5440160758924733E-05 + 3.6399278834467643E-05 3.7384289851435645E-05 3.8395891604971915E-05 + 3.9434800669506907E-05 4.0501752903639232E-05 4.1597503968430269E-05 + 4.2722829859477050E-05 4.3878527453730922E-05 4.5065415070594157E-05 + 4.6284333047697168E-05 4.7536144333364949E-05 4.8821735093626200E-05 + 5.0142015336297982E-05 5.1497919551610534E-05 5.2890407370120767E-05 + 5.4320464237922052E-05 5.5789102110192782E-05 5.7297360163922189E-05 + 5.8846305528567363E-05 6.0437034037078227E-05 6.2070670997254606E-05 + 6.3748371983216067E-05 6.5471323648291947E-05 6.7240744559861926E-05 + 6.9057886056425212E-05 7.0924033127959903E-05 7.2840505319014402E-05 + 7.4808657657428874E-05 7.6829881606579236E-05 7.8905606043735234E-05 + 8.1037298264966440E-05 8.3226465016196115E-05 8.5474653552570530E-05 + 8.7783452726224873E-05 9.0154494102108923E-05 9.2589453105423072E-05 + 9.5090050198316694E-05 9.7658052089224324E-05 1.0029527297326711E-04 + 1.0300357580745193E-04 1.0578487361887894E-04 1.0864113084837596E-04 + 1.1157436473010532E-04 1.1458664670804071E-04 1.1768010389058339E-04 + 1.2085692054372436E-04 1.2411933962438228E-04 1.2746966435505573E-04 + 1.3091025984012200E-04 1.3444355472563960E-04 1.3807204290372817E-04 + 1.4179828526183423E-04 1.4562491148022868E-04 1.4955462187597637E-04 + 1.5359018929676872E-04 1.5773446106644146E-04 1.6199036098058723E-04 + 1.6636089135752235E-04 1.7084913514240754E-04 1.7545825806879414E-04 + 1.8019151087721928E-04 1.8505223159376305E-04 1.9004384786855652E-04 + 1.9516987937773575E-04 2.0043394028922937E-04 2.0583974179383895E-04 + 2.1139109470495214E-04 2.1709191212674920E-04 2.2294621219464081E-04 + 2.2895812088720788E-04 2.3513187491607733E-04 2.4147182468876906E-04 + 2.4798243735535549E-04 2.5466829993258939E-04 2.6153412251326815E-04 + 2.6858474156071538E-04 2.7582512329130143E-04 2.8326036714743287E-04 + 2.9089570936201146E-04 2.9873652661940728E-04 3.0678833981290758E-04 + 3.1505681790283132E-04 3.2354778187745415E-04 3.3226720881923818E-04 + 3.4122123607925804E-04 3.5041616556395115E-04 3.5985846813339854E-04 + 3.6955478811998254E-04 3.7951194796511268E-04 3.8973695298007225E-04 + 4.0023699623265642E-04 4.1101946356628360E-04 4.2209193874919213E-04 + 4.3346220876343923E-04 4.4513826923290478E-04 4.5712832999593439E-04 + 4.6944082082654286E-04 4.8208439730664600E-04 4.9506794685609675E-04 + 5.0840059492034844E-04 5.2209171132431480E-04 5.3615091679456723E-04 + 5.5058808965404707E-04 5.6541337269501435E-04 5.8063718023333222E-04 + 5.9627020535176671E-04 6.1232342733295322E-04 6.2880811929102391E-04 + 6.4573585600495597E-04 6.6311852195964421E-04 6.8096831959949401E-04 + 6.9929777780032467E-04 7.1811976056725471E-04 7.3744747596019673E-04 + 7.5729448525746967E-04 7.7767471236100212E-04 7.9860245344996273E-04 + 8.2009238689010797E-04 8.4215958340444800E-04 8.6481951651239911E-04 + 8.8808807324625648E-04 9.1198156514719713E-04 9.3651673955531063E-04 + 9.6171079119425069E-04 9.8758137406341649E-04 1.0141466136420663E-03 + 1.0414251194167748E-03 1.0694359977364398E-03 1.0981988650083795E-03 + 1.1277338612401128E-03 1.1580616639367788E-03 1.1892035023663315E-03 + 1.2211811721973488E-03 1.2540170505234898E-03 1.2877341112799779E-03 + 1.3223559410677581E-03 1.3579067553912644E-03 1.3944114153207777E-03 + 1.4318954445961831E-03 1.4703850471725016E-03 1.5099071252304916E-03 + 1.5504892976559734E-03 1.5921599190031914E-03 1.6349480989549209E-03 + 1.6788837222894970E-03 1.7239974693714353E-03 1.7703208371762239E-03 + 1.8178861608631684E-03 1.8667266359124978E-03 1.9168763408374840E-03 + 1.9683702604906114E-03 2.0212443099742413E-03 2.0755353591758634E-03 + 2.1312812579386028E-03 2.1885208618887524E-03 2.2472940589323689E-03 + 2.3076417964395315E-03 2.3696061091351018E-03 2.4332301477106690E-03 + 2.4985582081797223E-03 2.5656357619902970E-03 2.6345094869186752E-03 + 2.7052272987594826E-03 2.7778383838371100E-03 2.8523932323533041E-03 + 2.9289436725968461E-03 3.0075429060332751E-03 3.0882455432986616E-03 + 3.1711076411196702E-03 3.2561867401838208E-03 3.3435419039782575E-03 + 3.4332337586287834E-03 3.5253245337599206E-03 3.6198781044017064E-03 + 3.7169600339643791E-03 3.8166376183198449E-03 3.9189799310005401E-03 + 4.0240578695600934E-03 4.1319442031062248E-03 4.2427136210526194E-03 + 4.3564427831055451E-03 4.4732103705231296E-03 4.5930971386749699E-03 + 4.7161859709327842E-03 4.8425619339289754E-03 4.9723123342102883E-03 + 5.1055267763238047E-03 5.2422972223704640E-03 5.3827180530526056E-03 + 5.5268861302697984E-03 5.6749008612767349E-03 5.8268642644588526E-03 + 5.9828810367544812E-03 6.1430586227644033E-03 6.3075072855920530E-03 + 6.4763401794492277E-03 6.6496734240727960E-03 6.8276261809936695E-03 + 7.0103207317034821E-03 7.1978825577556161E-03 7.3904404228569767E-03 + 7.5881264569838090E-03 7.7910762425811020E-03 7.9994289028808493E-03 + 8.2133271923966883E-03 8.4329175896397674E-03 8.6583503921104938E-03 + 8.8897798136096697E-03 9.1273640839306790E-03 9.3712655509821940E-03 + 9.6216507853895614E-03 9.8786906876423327E-03 1.0142560597832324E-02 + 1.0413440408048077E-02 1.0691514677477181E-02 1.0976972750280931E-02 + 1.1270008876297512E-02 1.1570822334636433E-02 1.1879617560227689E-02 + 1.2196604273384870E-02 1.2521997612449922E-02 1.2856018269584353E-02 + 1.3198892629767575E-02 1.3550852913077173E-02 1.3912137320315755E-02 + 1.4282990182048257E-02 1.4663662111126765E-02 1.5054410158771915E-02 + 1.5455497974277459E-02 1.5867195968415852E-02 1.6289781480616355E-02 + 1.6723538949991654E-02 1.7168760090278241E-02 1.7625744068786510E-02 + 1.8094797689410951E-02 1.8576235579801332E-02 1.9070380382756640E-02 + 1.9577562951928171E-02 2.0098122551907339E-02 2.0632407062782167E-02 + 2.1180773189233108E-02 2.1743586674262041E-02 2.2321222517621121E-02 + 2.2914065199038079E-02 2.3522508906300487E-02 2.4146957768298390E-02 + 2.4787826093099426E-02 2.5445538611129699E-02 2.6120530723560628E-02 + 2.6813248755964976E-02 2.7524150217332958E-02 2.8253704064525733E-02 + 2.9002390972246009E-02 2.9770703608609485E-02 3.0559146916382549E-02 + 3.1368238399986897E-02 3.2198508418319678E-02 3.3050500483484617E-02 + 3.3924771565504316E-02 3.4821892403073235E-02 3.5742447820440691E-02 + 3.6687037050475602E-02 3.7656274063988276E-02 3.8650787905370139E-02 + 3.9671223034612707E-02 4.0718239675760090E-02 4.1792514171857822E-02 + 4.2894739346438102E-02 4.4025624871600263E-02 4.5185897642721316E-02 + 4.6376302159837866E-02 4.7597600915739939E-02 4.8850574790789157E-02 + 5.0136023454511361E-02 5.1454765773945893E-02 5.2807640228802320E-02 + 5.4195505333395871E-02 5.5619240065379827E-02 5.7079744301251775E-02 + 5.8577939258630751E-02 6.0114767945255179E-02 6.1691195614691524E-02 + 6.3308210228685408E-02 6.4966822926110876E-02 6.6668068498451916E-02 + 6.8413005871718516E-02 7.0202718594733468E-02 7.2038315333666225E-02 + 7.3920930372688029E-02 7.5851724120645114E-02 7.7831883623560541E-02 + 7.9862623082842671E-02 8.1945184378973815E-02 8.4080837600514269E-02 + 8.6270881578183300E-02 8.8516644423787844E-02 9.0819484073677029E-02 + 9.3180788836627504E-02 9.5601977945544633E-02 9.8084502112932043E-02 + 1.0062984408967784E-01 1.0323951922661334E-01 1.0591507603870869E-01 + 1.0865809677139232E-01 1.1147019796811050E-01 1.1435303103944248E-01 + 1.1730828283234994E-01 1.2033767619956004E-01 1.2344297056826069E-01 + 1.2662596250750727E-01 1.2988848629356378E-01 1.3323241447244849E-01 + 1.3665965841914965E-01 1.4017216889211459E-01 1.4377193658290058E-01 + 1.4746099265929763E-01 1.5124140930147409E-01 1.5511530022983527E-01 + 1.5908482122358886E-01 1.6315217062889065E-01 1.6731958985511203E-01 + 1.7158936385839837E-01 1.7596382161064025E-01 1.8044533655278616E-01 + 1.8503632703091019E-01 1.8973925671330863E-01 1.9455663498720588E-01 + 1.9949101733315852E-01 2.0454500567533718E-01 2.0972124870589731E-01 + 2.1502244218119923E-01 2.2045132918815669E-01 2.2601070037796872E-01 + 2.3170339416545918E-01 2.3753229689129385E-01 2.4350034294458736E-01 + 2.4961051484339958E-01 2.5586584327023942E-01 2.6226940705971108E-01 + 2.6882433313539583E-01 2.7553379639268077E-01 2.8240101952447316E-01 + 2.8942927278618980E-01 2.9662187369662979E-01 3.0398218667097093E-01 + 3.1151362258215076E-01 3.1921963824642358E-01 3.2710373582919139E-01 + 3.3516946216671417E-01 3.4342040799909979E-01 3.5186020711017019E-01 + 3.6049253536911668E-01 3.6932110966923193E-01 3.7834968675824232E-01 + 3.8758206195512174E-01 3.9702206774773147E-01 4.0667357226552953E-01 + 4.1654047762149715E-01 4.2662671811698250E-01 4.3693625830334742E-01 + 4.4747309089370557E-01 4.5824123451802545E-01 4.6924473131477457E-01 + 4.8048764435179697E-01 4.9197405486905321E-01 5.0370805933581175E-01 + 5.1569376631426633E-01 5.2793529312176968E-01 5.4043676228332083E-01 + 5.5320229776599039E-01 5.6623602098656600E-01 5.7954204658370001E-01 + 5.9312447794538958E-01 6.0698740248264083E-01 6.2113488663993777E-01 + 6.3557097063283396E-01 6.5029966290292396E-01 6.6532493428028416E-01 + 6.8065071184326054E-01 6.9628087246539605E-01 7.1221923603907455E-01 + 7.2846955836543692E-01 7.4503552370003878E-01 7.6192073694343421E-01 + 7.7912871546614160E-01 7.9666288055708789E-01 8.1452654848480133E-01 + 8.3272292116064150E-01 8.5125507639320341E-01 8.7012595772343004E-01 + 8.8933836382967557E-01 9.0889493749248551E-01 9.2879815410881794E-01 + 9.4905030974567894E-01 9.6965350872352196E-01 9.9060965071997542E-01 + 1.0119204173849523E+00 1.0335872584584755E+00 1.0556113773832538E+00 + 1.0779937164044706E+00 1.1007349411498979E+00 1.1238354246842313E+00 + 1.1472952310323248E+00 1.1711140981667494E+00 1.1952914204563685E+00 + 1.2198262305733181E+00 1.2447171808573425E+00 1.2699625241373456E+00 + 1.2955600940117682E+00 1.3215072845906426E+00 1.3478010297039784E+00 + 1.3744377815829023E+00 1.4014134890218228E+00 1.4287235750320570E+00 + 1.4563629139995455E+00 1.4843258083616482E+00 1.5126059648206609E+00 + 1.5411964701143002E+00 1.5700897663664959E+00 1.5992776260448542E+00 + 1.6287511265544055E+00 1.6585006245009852E+00 1.6885157296611482E+00 + 1.7187852786995967E+00 1.7492973086791723E+00 1.7800390304131459E+00 + 1.8109968017138713E+00 1.8421561005970817E+00 1.8735014985061187E+00 + 1.9050166336259380E+00 1.9366841843622284E+00 1.9684858430672221E+00 + 2.0004022900997840E+00 2.0324131683139197E+00 2.0644970580766580E+00 + 2.0966314529232246E+00 2.1287927359648342E+00 2.1609561571717455E+00 + 2.1930958116623778E+00 2.2251846191370106E+00 2.2571943046031073E+00 + 2.2890953805476246E+00 2.3208571307206136E+00 2.3524475957030866E+00 + 2.3838335604412624E+00 2.4149805439386558E+00 2.4458527913065407E+00 + 2.4764132683828319E+00 2.5066236591389082E+00 2.5364443661031895E+00 + 2.5658345140397616E+00 2.5947519571294611E+00 2.6231532899101326E+00 + 2.6509938622414762E+00 2.6782277985684440E+00 2.7048080217655497E+00 + 2.7306862818519289E+00 2.7558131898742730E+00 2.7801382572612803E+00 + 2.8036099409589839E+00 2.8261756946611554E+00 2.8477820264527827E+00 + 2.8683745631874928E+00 2.8878981219209439E+00 2.9062967887223143E+00 + 2.9235140051843405E+00 2.9394926629488163E+00 2.9541752065591278E+00 + 2.9675037449436679E+00 2.9794201718241338E+00 2.9898662953300170E+00 + 2.9987839770851954E+00 3.0061152810141882E+00 3.0118026320937417E+00 + 3.0157889852502291E+00 3.0180180045741811E+00 3.0184342529901551E+00 + 3.0169833924825946E+00 3.0136123949362688E+00 3.0082697636029203E+00 + 3.0009057651536160E+00 2.9914726722187703E+00 2.9799250162546738E+00 + 2.9662198505061981E+00 2.9503170227601800E+00 2.9321794575022833E+00 + 2.9117734470020404E+00 2.8890689507557901E+00 2.8640399026155023E+00 + 2.8366645248226230E+00 2.8069256480503140E+00 2.7748110364346648E+00 + 2.7403137164454416E+00 2.7034323083103873E+00 2.6641713585635189E+00 + 2.6225416721382127E+00 2.5785606422697516E+00 2.5322525763107042E+00 + 2.4836490153960966E+00 2.4327890457243191E+00 2.3797195990457150E+00 + 2.3244957397741630E+00 2.2671809359586228E+00 2.2078473111740169E+00 + 2.1465758742139305E+00 2.0834567232946353E+00 2.0185892213111827E+00 + 1.9520821385256388E+00 1.8840537589157840E+00 1.8146319462728127E+00 + 1.7439541660122877E+00 1.6721674585553812E+00 1.5994283600522523E+00 + 1.5259027661579416E+00 1.4517657345391164E+00 1.3772012217899605E+00 + 1.3024017504718497E+00 1.2275680020695794E+00 1.1529083317804718E+00 + 1.0786382012263047E+00 1.0049795254079383E+00 9.3215993051186807E-01 + 8.6041191953361273E-01 7.8997194310781393E-01 7.2107937343628081E-01 + 6.5397537978598741E-01 5.8890170469409420E-01 5.2609934077141574E-01 + 4.6580710884193222E-01 4.0826013909738984E-01 3.5368825798563808E-01 + 3.0231428468975097E-01 2.5435224229350722E-01 2.1000549006569369E-01 + 1.6946478473022031E-01 1.3290628011646907E-01 1.0048947619940278E-01 + 7.2355130235229673E-02 4.8623144465169077E-02 2.9390446686259519E-02 + 1.4624434894369849E-02 4.2809373366701096E-03 -1.6023866886552334E-03 + -3.0206080340074381E-03 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + -5.6452178180376038E-14 -2.7754739042289664E-13 -1.6744726108076314E-12 + -4.8147039999665852E-12 -1.0221015399386357E-11 -1.8371478331408139E-11 + -2.9729267225675861E-11 -4.4744359805191943E-11 -6.3860324166212515E-11 + -8.7521096832942854E-11 -1.1617289246656585E-10 -1.5026600704976972E-10 + -1.9025678067941643E-10 -2.3660895205763954E-10 -2.8979479697814060E-10 + -3.5029616656573926E-10 -4.1860539823732733E-10 -4.9522614298833764E-10 + -5.8067413373648930E-10 -6.7547790718865342E-10 -7.8017949126438681E-10 + -8.9533506709475277E-10 -1.0215156124548962E-09 -1.1593075321259615E-09 + -1.3093132796106213E-09 -1.4721519738080393E-09 -1.6484600136316924E-09 + -1.8388916930713784E-09 -2.0441198188230669E-09 -2.2648363323124386E-09 + -2.5017529377014763E-09 -2.7556017372782538E-09 -3.0271358754780809E-09 + -3.3171301926614341E-09 -3.6263818896747464E-09 -3.9557112041395606E-09 + -4.3059620993501273E-09 -4.6780029666065457E-09 -5.0727273417676761E-09 + -5.4910546367736353E-09 -5.9339308868603657E-09 -6.4023295141670686E-09 + -6.8972521084209763E-09 -7.4197292253713939E-09 -7.9708212036363091E-09 + -8.5516190006193750E-09 -9.1632450481519597E-09 -9.8068541285146259E-09 + -1.0483634271493881E-08 -1.1194807673133465E-08 -1.1941631636844461E-08 + -1.2725399537545177E-08 -1.3547441809509484E-08 -1.4409126958611701E-08 + -1.5311862599666025E-08 -1.6257096519570280E-08 -1.7246317766975717E-08 + -1.8281057769218156E-08 -1.9362891477259706E-08 -2.0493438539405451E-08 + -2.1674364504575223E-08 -2.2907382055927210E-08 -2.4194252275647618E-08 + -2.5536785941738417E-08 -2.6936844857654623E-08 -2.8396343215661297E-08 + -2.9917248994801765E-08 -3.1501585394388549E-08 -3.3151432303950959E-08 + -3.4868927810595250E-08 -3.6656269744756707E-08 -3.8515717265346549E-08 + -4.0449592485321189E-08 -4.2460282138726978E-08 -4.4550239290298803E-08 + -4.6721985088718580E-08 -4.8978110564666493E-08 -5.1321278474826205E-08 + -5.3754225193034463E-08 -5.6279762649795365E-08 -5.8900780321409665E-08 + -6.1620247270001309E-08 -6.4441214235756199E-08 -6.7366815782719245E-08 + -7.0400272499532799E-08 -7.3544893256531336E-08 -7.6804077520645085E-08 + -8.0181317729600836E-08 -8.3680201726946592E-08 -8.7304415259464451E-08 + -9.1057744538576561E-08 -9.4944078867388338E-08 -9.8967413335056698E-08 + -1.0313185158021147E-07 -1.0744160862520391E-07 -1.1190101378299981E-07 + -1.1651451363858140E-07 -1.2128667510676978E-07 -1.2622218856842676E-07 + -1.3132587108704675E-07 -1.3660266970779813E-07 -1.4205766484112766E-07 + -1.4769607373309384E-07 -1.5352325402465087E-07 -1.5954470740216120E-07 + -1.6576608334147227E-07 -1.7219318294795275E-07 -1.7883196289494364E-07 + -1.8568853946314447E-07 -1.9276919268351552E-07 -2.0008037058634529E-07 + -2.0762869355919888E-07 -2.1542095881653313E-07 -2.2346414498383297E-07 + -2.3176541679919982E-07 -2.4033212993539386E-07 -2.4917183594541195E-07 + -2.5829228733475881E-07 -2.6770144276365207E-07 -2.7740747238248253E-07 + -2.8741876330393668E-07 -2.9774392521527720E-07 -3.0839179613436333E-07 + -3.1937144831308650E-07 -3.3069219429199155E-07 -3.4236359310994664E-07 + -3.5439545667283049E-07 -3.6679785628529804E-07 -3.7958112934979669E-07 + -3.9275588623711299E-07 -4.0633301733282915E-07 -4.2032370026419458E-07 + -4.3473940731202397E-07 -4.4959191301235079E-07 -4.6489330195269532E-07 + -4.8065597676792143E-07 -4.9689266634078585E-07 -5.1361643421242088E-07 + -5.3084068720811500E-07 -5.4857918428390354E-07 -5.6684604559961692E-07 + -5.8565576182417999E-07 -6.0502320367910477E-07 -6.2496363172627161E-07 + -6.4549270640625004E-07 -6.6662649833357003E-07 -6.8838149885551901E-07 + -7.1077463088120714E-07 -7.3382325998782079E-07 -7.5754520581115679E-07 + -7.8195875372771139E-07 -8.0708266683579005E-07 -8.3293619824328810E-07 + -8.5953910366999486E-07 -8.8691165437247031E-07 -9.1507465039974966E-07 + -9.4404943418835297E-07 -9.7385790450527006E-07 -1.0045225307478457E-06 + -1.0360663676096882E-06 -1.0685130701219814E-06 -1.1018869090797984E-06 + -1.1362127868632901E-06 -1.1715162536638383E-06 -1.2078235241255560E-06 + -1.2451614944127577E-06 -1.2835577597143078E-06 -1.3230406321960370E-06 + -1.3636391594126851E-06 -1.4053831431911377E-06 -1.4483031589970374E-06 + -1.4924305757971081E-06 -1.5377975764299175E-06 -1.5844371784980736E-06 + -1.6323832557951981E-06 -1.6816705602813829E-06 -1.7323347446211445E-06 + -1.7844123852982928E-06 -1.8379410063224706E-06 -1.8929591035424997E-06 + -1.9495061695820721E-06 -2.0076227194137125E-06 -2.0673503165873319E-06 + -2.1287316001301292E-06 -2.1918103121350273E-06 -2.2566313260552330E-06 + -2.3232406757230183E-06 -2.3916855851112188E-06 -2.4620144988564653E-06 + -2.5342771135636321E-06 -2.6085244099114676E-06 -2.6848086855799111E-06 + -2.7631835890201066E-06 -2.8437041540886501E-06 -2.9264268355681775E-06 + -3.0114095455969540E-06 -3.0987116910306857E-06 -3.1883942117604155E-06 + -3.2805196200108901E-06 -3.3751520406445133E-06 -3.4723572524965218E-06 + -3.5722027307678017E-06 -3.6747576905022829E-06 -3.7800931311767006E-06 + -3.8882818824310845E-06 -3.9993986509691228E-06 -4.1135200686582852E-06 + -4.2307247418603304E-06 -4.3510933020236172E-06 -4.4747084575694223E-06 + -4.6016550471052993E-06 -4.7320200939993512E-06 -4.8658928623501380E-06 + -5.0033649143878147E-06 -5.1445301693430485E-06 -5.2894849638211151E-06 + -5.4383281137195730E-06 -5.5911609777289000E-06 -5.7480875224564071E-06 + -5.9092143892148411E-06 -6.0746509625181134E-06 -6.2445094403276049E-06 + -6.4189049060937211E-06 -6.5979554026383723E-06 -6.7817820079253044E-06 + -6.9705089127663325E-06 -7.1642635005127890E-06 -7.3631764287826988E-06 + -7.5673817132755117E-06 -7.7770168137275227E-06 -7.9922227220623852E-06 + -8.2131440527926648E-06 -8.4399291357295552E-06 -8.6727301110595189E-06 + -8.9117030268480302E-06 -9.1570079390320499E-06 -9.4088090139645393E-06 + -9.6672746335757727E-06 -9.9325775032179702E-06 -1.0204894762261395E-05 + -1.0484408097511698E-05 -1.0771303859520191E-05 -1.1065773181860406E-05 + -1.1368012103446240E-05 -1.1678221693968766E-05 -1.1996608182530843E-05 + -1.2323383089560583E-05 -1.2658763362086714E-05 -1.3002971512461111E-05 + -1.3356235760615695E-05 -1.3718790179943351E-05 -1.4090874846894459E-05 + -1.4472735994383151E-05 -1.4864626169099707E-05 -1.5266804392827821E-05 + -1.5679536327868083E-05 -1.6103094446671429E-05 -1.6537758205788963E-05 + -1.6983814224247236E-05 -1.7441556466460653E-05 -1.7911286429795682E-05 + -1.8393313336904246E-05 -1.8887954332946544E-05 -1.9395534687826739E-05 + -1.9916388003567854E-05 -2.0450856426955448E-05 -2.0999290867582810E-05 + -2.1562051221433759E-05 -2.2139506600142450E-05 -2.2732035566073129E-05 + -2.3340026373366243E-05 -2.3963877215100981E-05 -2.4603996476728069E-05 + -2.5260802995930405E-05 -2.5934726329072993E-05 -2.6626207024407659E-05 + -2.7335696902202286E-05 -2.8063659341968022E-05 -2.8810569576962926E-05 + -2.9576914996154148E-05 -3.0363195453825715E-05 -3.1169923587023605E-05 + -3.1997625141034132E-05 -3.2846839303097010E-05 -3.3718119044558816E-05 + -3.4612031471678386E-05 -3.5529158185299981E-05 -3.6470095649616050E-05 + -3.7435455570246793E-05 -3.8425865281868643E-05 -3.9441968145630502E-05 + -4.0484423956601359E-05 -4.1553909361499791E-05 -4.2651118286961147E-05 + -4.3776762378605357E-05 -4.4931571451173694E-05 -4.6116293950010305E-05 + -4.7331697424170374E-05 -4.8578569011444050E-05 -4.9857715935592169E-05 + -5.1169966016096838E-05 -5.2516168190737498E-05 -5.3897193051310698E-05 + -5.5313933392819311E-05 -5.6767304776464707E-05 -5.8258246106784078E-05 + -5.9787720223282626E-05 -6.1356714506919234E-05 -6.2966241501812736E-05 + -6.4617339552544876E-05 -6.6311073457445011E-05 -6.8048535138250874E-05 + -6.9830844326549147E-05 -7.1659149267409562E-05 -7.3534627440635748E-05 + -7.5458486300066657E-05 -7.7431964031372550E-05 -7.9456330328799924E-05 + -8.1532887191331188E-05 -8.3662969738735642E-05 -8.5847947047999409E-05 + -8.8089223010634647E-05 -9.0388237211378770E-05 -9.2746465828808100E-05 + -9.5165422558401465E-05 -9.7646659558603188E-05 -1.0019176842044663E-04 + -1.0280238116131467E-04 -1.0548017124342459E-04 -1.0822685461764058E-04 + -1.1104419079323171E-04 -1.1393398393420512E-04 -1.1689808398286265E-04 + -1.1993838781124094E-04 -1.2305684040111320E-04 -1.2625543605324527E-04 + -1.2953621962661467E-04 -1.3290128780832022E-04 -1.3635279041492276E-04 + -1.3989293172597889E-04 -1.4352397185054516E-04 -1.4724822812744827E-04 + -1.5106807656013662E-04 -1.5498595328694608E-04 -1.5900435608763287E-04 + -1.6312584592704699E-04 -1.6735304853683679E-04 -1.7168865603610055E-04 + -1.7613542859191853E-04 -1.8069619612072035E-04 -1.8537386003146772E-04 + -1.9017139501165118E-04 -1.9509185085712506E-04 -2.0013835434682729E-04 + -2.0531411116345510E-04 -2.1062240786119091E-04 -2.1606661388159947E-04 + -2.2165018361884159E-04 -2.2737665853537505E-04 -2.3324966932934362E-04 + -2.3927293815487571E-04 -2.4545028089654970E-04 -2.5178560949930365E-04 + -2.5828293435510233E-04 -2.6494636674769949E-04 -2.7178012135686640E-04 + -2.7878851882348588E-04 -2.8597598837694420E-04 -2.9334707052628447E-04 + -3.0090641981661787E-04 -3.0865880765232193E-04 -3.1660912518859016E-04 + -3.2476238629293051E-04 -3.3312373057824623E-04 -3.4169842650916938E-04 + -3.5049187458335206E-04 -3.5950961058946093E-04 -3.6875730894365570E-04 + -3.7824078610637255E-04 -3.8796600408127466E-04 -3.9793907399826925E-04 + -4.0816625978253669E-04 -4.1865398191155359E-04 -4.2940882126213815E-04 + -4.4043752304959253E-04 -4.5174700086105288E-04 -4.6334434078521366E-04 + -4.7523680564063301E-04 -4.8743183930487167E-04 -4.9993707114677195E-04 + -5.1276032056422904E-04 -5.2590960162985257E-04 -5.3939312784697930E-04 + -5.5321931701853315E-04 -5.6739679623129700E-04 -5.8193440695820302E-04 + -5.9684121028131067E-04 -6.1212649223819178E-04 -6.2779976929450306E-04 + -6.4387079394557861E-04 -6.6034956044994108E-04 -6.7724631069768454E-04 + -6.9457154021673956E-04 -7.1233600432010812E-04 -7.3055072439719506E-04 + -7.4922699435245029E-04 -7.6837638719458746E-04 -7.8801076177970758E-04 + -8.0814226971174510E-04 -8.2878336240368804E-04 -8.4994679830313060E-04 + -8.7164565028575352E-04 -8.9389331322042983E-04 -9.1670351170969355E-04 + -9.4009030800942448E-04 -9.6406811013163059E-04 -9.8865168013432593E-04 + -1.0138561426025561E-03 -1.0396969933247106E-03 -1.0661901081683446E-03 + -1.0933517521598004E-03 -1.1211985887720226E-03 -1.1497476894250216E-03 + -1.1790165432035437E-03 -1.2090230667965815E-03 -1.2397856146634514E-03 + -1.2713229894312456E-03 -1.3036544525285697E-03 -1.3367997350605535E-03 + -1.3707790489302185E-03 -1.4056130982113976E-03 -1.4413230907784585E-03 + -1.4779307501982207E-03 -1.5154583278895227E-03 -1.5539286155560124E-03 + -1.5933649578978167E-03 -1.6337912656078741E-03 -1.6752320286587796E-03 + -1.7177123298861242E-03 -1.7612578588744082E-03 -1.8058949261516946E-03 + -1.8516504776993155E-03 -1.8985521097830049E-03 -1.9466280841119704E-03 + -1.9959073433325268E-03 -2.0464195268630006E-03 -2.0981949870767691E-03 + -2.1512648058403540E-03 -2.2056608114136571E-03 -2.2614155957195129E-03 + -2.3185625319898560E-03 -2.3771357927958965E-03 -2.4371703684698772E-03 + -2.4987020859260161E-03 -2.5617676278884317E-03 -2.6264045525339181E-03 + -2.6926513135576242E-03 -2.7605472806696875E-03 -2.8301327605311762E-03 + -2.9014490181376198E-03 -2.9745382986586968E-03 -3.0494438497426718E-03 + -3.1262099442943203E-03 -3.2048819037352391E-03 -3.2855061217555051E-03 + -3.3681300885658274E-03 -3.4528024156594422E-03 -3.5395728610930683E-03 + -3.6284923552964941E-03 -3.7196130274203408E-03 -3.8129882322317957E-03 + -3.9086725775681732E-03 -4.0067219523582456E-03 -4.1071935552215418E-03 + -4.2101459236557632E-03 -4.3156389638227249E-03 -4.4237339809433084E-03 + -4.5344937103119487E-03 -4.6479823489414904E-03 -4.7642655878491038E-03 + -4.8834106449943578E-03 -5.0054862988803683E-03 -5.1305629228293190E-03 + -5.2587125199435765E-03 -5.3900087587637740E-03 -5.5245270096354595E-03 + -5.6623443817957874E-03 -5.8035397611920598E-03 -5.9481938490439090E-03 + -6.0963892011609497E-03 -6.2482102680280083E-03 -6.4037434356699141E-03 + -6.5630770673080823E-03 -6.7263015458211475E-03 -6.8935093170219034E-03 + -7.0647949337630817E-03 -7.2402551008843010E-03 -7.4199887210128403E-03 + -7.6040969412308227E-03 -7.7926832006213458E-03 -7.9858532787064809E-03 + -8.1837153447896303E-03 -8.3863800082152953E-03 -8.5939603695588344E-03 + -8.8065720727591914E-03 -9.0243333582074696E-03 -9.2473651168040478E-03 + -9.4757909449973733E-03 -9.7097372008169980E-03 -9.9493330609139747E-03 + -1.0194710578621280E-02 -1.0446004743047058E-02 -1.0703353539213575E-02 + -1.0966898009254364E-02 -1.1236782314682402E-02 -1.1513153799741839E-02 + -1.1796163055855541E-02 -1.2085963987181241E-02 -1.2382713877288124E-02 + -1.2686573456966348E-02 -1.2997706973181353E-02 -1.3316282259184778E-02 + -1.3642470805793927E-02 -1.3976447833850979E-02 -1.4318392367873583E-02 + -1.4668487310907858E-02 -1.5026919520594564E-02 -1.5393879886459414E-02 + -1.5769563408437576E-02 -1.6154169276642878E-02 -1.6547900952391132E-02 + -1.6950966250487507E-02 -1.7363577422786873E-02 -1.7785951243035957E-02 + -1.8218309093005987E-02 -1.8660877049923561E-02 -1.9113885975207669E-02 + -1.9577571604519940E-02 -2.0052174639134709E-02 -2.0537940838635495E-02 + -2.1035121114943225E-02 -2.1543971627681600E-02 -2.2064753880884282E-02 + -2.2597734821047585E-02 -2.3143186936532570E-02 -2.3701388358318760E-02 + -2.4272622962111880E-02 -2.4857180471806982E-02 -2.5455356564307210E-02 + -2.6067452975698596E-02 -2.6693777608779317E-02 -2.7334644641942150E-02 + -2.7990374639407064E-02 -2.8661294662800541E-02 -2.9347738384077237E-02 + -3.0050046199778011E-02 -3.0768565346618558E-02 -3.1503650018400310E-02 + -3.2255661484235545E-02 -3.3024968208076787E-02 -3.3811945969539285E-02 + -3.4616977986004979E-02 -3.5440455035994044E-02 -3.6282775583789596E-02 + -3.7144345905299851E-02 -3.8025580215139562E-02 -3.8926900794912928E-02 + -3.9848738122676836E-02 -4.0791531003563183E-02 -4.1755726701536995E-02 + -4.2741781072264506E-02 -4.3750158697065791E-02 -4.4781333017922482E-02 + -4.5835786473510720E-02 -4.6914010636227708E-02 -4.8016506350176597E-02 + -4.9143783870075411E-02 -5.0296363001049824E-02 -5.1474773239271500E-02 + -5.2679553913397667E-02 -5.3911254326768021E-02 -5.5170433900311226E-02 + -5.6457662316110616E-02 -5.7773519661577066E-02 -5.9118596574172490E-02 + -6.0493494386626524E-02 -6.1898825272584203E-02 -6.3335212392619064E-02 + -6.4803290040545011E-02 -6.6303703789953247E-02 -6.7837110640899839E-02 + -6.9404179166664276E-02 -7.1005589660494153E-02 -7.2642034282250190E-02 + -7.4314217204857064E-02 -7.6022854760464595E-02 -7.7768675586217223E-02 + -7.9552420769524790E-02 -8.1374843992723989E-02 -8.3236711677012520E-02 + -8.5138803125536275E-02 -8.7081910665499793E-02 -8.9066839789170821E-02 + -9.1094409293640072E-02 -9.3165451419193662E-02 -9.5280811986153222E-02 + -9.7441350530029155E-02 -9.9647940434833493E-02 -1.0190146906439064E-01 + -1.0420283789148170E-01 -1.0655296262465647E-01 -1.0895277333254028E-01 + -1.1140321456546444E-01 -1.1390524547424431E-01 -1.1645983992592619E-01 + -1.1906798661632724E-01 -1.2173068917918581E-01 -1.2444896629174329E-01 + -1.2722385177657636E-01 -1.3005639469949598E-01 -1.3294765946333528E-01 + -1.3589872589743981E-01 -1.3891068934268064E-01 -1.4198466073180682E-01 + -1.4512176666495125E-01 -1.4832314948010850E-01 -1.5158996731839364E-01 + -1.5492339418389781E-01 -1.5832461999794537E-01 -1.6179485064756133E-01 + -1.6533530802795046E-01 -1.6894723007878448E-01 -1.7263187081409476E-01 + -1.7639050034555442E-01 -1.8022440489893687E-01 -1.8413488682352638E-01 + -1.8812326459424947E-01 -1.9219087280629643E-01 -1.9633906216198399E-01 + -2.0056919944961368E-01 -2.0488266751406703E-01 -2.0928086521886946E-01 + -2.1376520739945434E-01 -2.1833712480733872E-01 -2.2299806404492659E-01 + -2.2774948749063617E-01 -2.3259287321404368E-01 -2.3752971488072977E-01 + -2.4256152164649936E-01 -2.4768981804064460E-01 -2.5291614383790650E-01 + -2.5824205391878746E-01 -2.6366911811785976E-01 -2.6919892105970084E-01 + -2.7483306198209734E-01 -2.8057315454613235E-01 -2.8642082663278851E-01 + -2.9237772012568136E-01 -2.9844549067953674E-01 -3.0462580747403506E-01 + -3.1092035295262577E-01 -3.1733082254593376E-01 -3.2385892437936570E-01 + -3.3050637896452828E-01 -3.3727491887407834E-01 -3.4416628839961194E-01 + -3.5118224319221492E-01 -3.5832454988529200E-01 -3.6559498569928972E-01 + -3.7299533802794377E-01 -3.8052740400566704E-01 -3.8819299005571301E-01 + -3.9599391141874440E-01 -4.0393199166143612E-01 -4.1200906216476274E-01 + -4.2022696159160255E-01 -4.2858753533331961E-01 -4.3709263493496525E-01 + -4.4574411749877502E-01 -4.5454384506562018E-01 -4.6349368397409146E-01 + -4.7259550419690599E-01 -4.8185117865432259E-01 -4.9126258250427896E-01 + -5.0083159240895958E-01 -5.1056008577751821E-01 -5.2044993998470390E-01 + -5.3050303156512524E-01 -5.4072123538293237E-01 -5.5110642377668950E-01 + -5.6166046567922434E-01 -5.7238522571228068E-01 -5.8328256325578198E-01 + -5.9435433149156436E-01 -6.0560237642143455E-01 -6.1702853585942707E-01 + -6.2863463839817790E-01 -6.4042250234931586E-01 -6.5239393465783135E-01 + -6.6455072979037111E-01 -6.7689466859745850E-01 -6.8942751714964523E-01 + -7.0215102554762143E-01 -7.1506692670636141E-01 -7.2817693511336712E-01 + -7.4148274556114402E-01 -7.5498603185403157E-01 -7.6868844548955673E-01 + -7.8259161431451540E-01 -7.9669714115598866E-01 -8.1100660242755696E-01 + -8.2552154671099609E-01 -8.4024349331375414E-01 -8.5517393080257265E-01 + -8.7031431551360550E-01 -8.8566607003946363E-01 -9.0123058169361103E-01 + -9.1700920095258753E-01 -9.3300323987656908E-01 -9.4921397050879752E-01 + -9.6564262325445904E-01 -9.8229038523962009E-01 -9.9915839865084788E-01 + -1.0162477590562189E+00 -1.0335595137083913E+00 -1.0510946598305178E+00 + -1.0688541428857443E+00 -1.0868388548311272E+00 -1.1050496323567898E+00 + -1.1234872551111807E+00 -1.1421524439133379E+00 -1.1610458589530361E+00 + -1.1801680979797697E+00 -1.1995196944814814E+00 -1.2191011158539533E+00 + -1.2389127615618123E+00 -1.2589549612920015E+00 -1.2792279731006102E+00 + -1.2997319815538626E+00 -1.3204670958639781E+00 -1.3414333480206104E+00 + -1.3626306909183348E+00 -1.3840589964806644E+00 -1.4057180537808029E+00 + -1.4276075671592159E+00 -1.4497271543379240E+00 -1.4720763445311260E+00 + -1.4946545765516157E+00 -1.5174611969121239E+00 -1.5404954579205181E+00 + -1.5637565157675504E+00 -1.5872434286055597E+00 -1.6109551546164411E+00 + -1.6348905500669468E+00 -1.6590483673493928E+00 -1.6834272530058163E+00 + -1.7080257457337298E+00 -1.7328422743719121E+00 -1.7578751558649846E+00 + -1.7831225932061201E+00 -1.8085826733578914E+00 -1.8342533651521216E+00 + -1.8601325171706842E+00 -1.8862178556103320E+00 -1.9125069821360294E+00 + -1.9389973717287172E+00 -1.9656863705349648E+00 -1.9925711937277111E+00 + -2.0196489233888282E+00 -2.0469165064260175E+00 -2.0743707525380208E+00 + -2.1020083322436500E+00 -2.1298257749913350E+00 -2.1578194673668118E+00 + -2.1859856514172140E+00 -2.2143204231097728E+00 -2.2428197309429421E+00 + -2.2714793747264790E+00 -2.3002950045450610E+00 -2.3292621199173666E+00 + -2.3583760691589570E+00 -2.3876320489532983E+00 -2.4170251041306252E+00 + -2.4465501276495920E+00 -2.4762018607720799E+00 -2.5059748934172972E+00 + -2.5358636646780384E+00 -2.5658624634796841E+00 -2.5959654293615477E+00 + -2.6261665533606484E+00 -2.6564596789795747E+00 -2.6868385032229991E+00 + -2.7172965776909543E+00 -2.7478273097210706E+00 -2.7784239635762455E+00 + -2.8090796616780618E+00 -2.8397873858898772E+00 -2.8705399788560877E+00 + -2.9013301454061189E+00 -2.9321504540326457E+00 -2.9629933384538001E+00 + -2.9938510992686913E+00 -3.0247159057144373E+00 -3.0555797975315833E+00 + -3.0864346869430475E+00 -3.1172723607500195E+00 -3.1480844825466852E+00 + -3.1788625950540474E+00 -3.2095981225720767E+00 -3.2402823735484474E+00 + -3.2709065432615811E+00 -3.3014617166155826E+00 -3.3319388710446018E+00 + -3.3623288795246005E+00 -3.3926225136909913E+00 -3.4228104470612659E+00 + -3.4528832583626157E+00 -3.4828314349651981E+00 -3.5126453764227561E+00 + -3.5423153981227982E+00 -3.5718317350495408E+00 -3.6011845456632425E+00 + -3.6303639159001277E+00 -3.6593598632976341E+00 -3.6881623412497722E+00 + -3.7167612433978414E+00 -3.7451464081616188E+00 -3.7733076234161635E+00 + -3.8012346313192991E+00 -3.8289171332944854E+00 -3.8563447951735830E+00 + -3.8835072525035228E+00 -3.9103941160203646E+00 -3.9369949772937849E+00 + -3.9632994145441880E+00 -3.9892969986340696E+00 -4.0149772992343680E+00 + -4.0403298911656558E+00 -4.0653443609132127E+00 -4.0900103133138765E+00 + -4.1143173784116938E+00 -4.1382552184782648E+00 -4.1618135351925565E+00 + -4.1849820769740544E+00 -4.2077506464618439E+00 -4.2301091081314297E+00 + -4.2520473960400302E+00 -4.2735555216903487E+00 -4.2946235820021617E+00 + -4.3152417673805070E+00 -4.3354003698692178E+00 -4.3550897913782913E+00 + -4.3743005519742466E+00 -4.3930232982230812E+00 -4.4112488115765842E+00 + -4.4289680167943049E+00 -4.4461719903950527E+00 -4.4628519691342010E+00 + -4.4789993585052228E+00 -4.4946057412664011E+00 -4.5096628859961934E+00 + -4.5241627556824540E+00 -4.5380975163524608E+00 -4.5514595457505873E+00 + -4.5642414420692816E+00 -4.5764360327353639E+00 -4.5880363832469877E+00 + -4.5990358060465839E+00 -4.6094278694002826E+00 -4.6192064062347624E+00 + -4.6283655228569982E+00 -4.6368996074510669E+00 -4.6448033382092220E+00 + -4.6520716909121251E+00 -4.6586999457277054E+00 -4.6646836929510940E+00 + -4.6700188373639051E+00 -4.6747016008540028E+00 -4.6787285229119195E+00 + -4.6820964586151010E+00 -4.6848025737310968E+00 -4.6868443366231798E+00 + -4.6882195067320680E+00 -4.6889261195377099E+00 -4.6889624680782420E+00 + -4.6883270813164906E+00 -4.6870186998925307E+00 -4.6850362500772667E+00 + -4.6823788170338254E+00 -4.6790456187830554E+00 -4.6750359825345873E+00 + -4.6703493252488890E+00 -4.6649851403940854E+00 -4.6589429927983650E+00 + -4.6522225232165519E+00 -4.6448234636856762E+00 -4.6367456639350939E+00 + -4.6279891280972016E+00 -4.6185540598619008E+00 -4.6084409132157740E+00 + -4.5976504452060549E+00 -4.5861837669304464E+00 -4.5740423892408666E+00 + -4.5612282604055343E+00 -4.5477437940363945E+00 -4.5335918867394636E+00 + -4.5187759259769225E+00 -4.5032997893965376E+00 -4.4871678373274229E+00 + -4.4703849002802949E+00 -4.4529562631947082E+00 -4.4348876479325510E+00 + -4.4161851952081497E+00 -4.3968554468302372E+00 -4.3769053288466218E+00 + -4.3563421359457637E+00 -4.3351735172824410E+00 -4.3134074637531912E+00 + -4.2910522966427376E+00 -4.2681166574885125E+00 -4.2446094989601120E+00 + -4.2205400765195096E+00 -4.1959179406140557E+00 -4.1707529291545420E+00 + -4.1450551600431327E+00 -4.1188350235390594E+00 -4.0921031742804912E+00 + -4.0648705228169835E+00 -4.0371482265451029E+00 -4.0089476799784762E+00 + -3.9802805043199116E+00 -3.9511585363358219E+00 -3.9215938165613760E+00 + -3.8915985768872097E+00 -3.8611852275958207E+00 -3.8303663439274187E+00 + -3.7991546522622821E+00 -3.7675630160097207E+00 -3.7356044212932780E+00 + -3.7032919625190166E+00 -3.6706388279089341E+00 -3.6376582850751573E+00 + -3.6043636667038119E+00 -3.5707683564099311E+00 -3.5368857748173936E+00 + -3.5027293659104264E+00 -3.4683125836962931E+00 -3.4336488792122797E+00 + -3.3987516879037272E+00 -3.3636344173945827E+00 -3.3283104356667184E+00 + -3.2927930596596835E+00 -3.2570955442986409E+00 -3.2212310719544601E+00 + -3.1852127423370327E+00 -3.1490535628198155E+00 -3.1127664391914998E+00 + -3.0763641668286104E+00 -3.0398594222810758E+00 -3.0032647552615761E+00 + -2.9665925810282916E+00 -2.9298551731500000E+00 -2.8930646566417297E+00 + -2.8562330014590258E+00 -2.8193720163387588E+00 -2.7824933429743712E+00 + -2.7456084505138367E+00 -2.7087286303690048E+00 -2.6718649913253398E+00 + -2.6350284549418368E+00 -2.5982297512313348E+00 -2.5614794146122093E+00 + -2.5247877801227903E+00 -2.4881649798904721E+00 -2.4516209398478290E+00 + -2.4151653766880878E+00 -2.3788077950524413E+00 -2.3425574849414605E+00 + -2.3064235193422191E+00 -2.2704147520625524E+00 -2.2345398157619454E+00 + -2.1988071201690600E+00 -2.1632248504738021E+00 -2.1278009658801147E+00 + -2.0925431983069522E+00 -2.0574590512214290E+00 -2.0225557985896065E+00 + -1.9878404839309456E+00 -1.9533199194619493E+00 -1.9190006853183939E+00 + -1.8848891288478378E+00 -1.8509913639683593E+00 -1.8173132705960489E+00 + -1.7838604941495109E+00 -1.7506384451482944E+00 -1.7176522989308314E+00 + -1.6849069955260811E+00 -1.6524072397225122E+00 -1.6201575013861182E+00 + -1.5881620160859942E+00 -1.5564247860908464E+00 -1.5249495818017531E+00 + -1.4937399436850760E+00 -1.4627991847643813E+00 -1.4321303937106427E+00 + -1.4017364386186624E+00 -1.3716199713900048E+00 -1.3417834328209453E+00 + -1.3122290583290241E+00 -1.2829588842862771E+00 -1.2539747548976672E+00 + -1.2252783295448435E+00 -1.1968710905001232E+00 -1.1687543509048353E+00 + -1.1409292629001635E+00 -1.1133968257978684E+00 -1.0861578941824592E+00 + -1.0592131858451257E+00 -1.0325632894621699E+00 -1.0062086719456647E+00 + -9.8014968541073166E-01 -9.5438657372086821E-01 -9.2891947858917212E-01 + -9.0374844522847453E-01 -8.7887342755645348E-01 -8.5429429297257886E-01 + -8.3001082673194015E-01 -8.0602273594683593E-01 -7.8232965325051174E-01 + -7.5893114015894270E-01 -7.3582669016655222E-01 -7.1301573161039900E-01 + -6.9049763033522260E-01 -6.6827169218894700E-01 -6.4633716537524533E-01 + -6.2469324268666959E-01 -6.0333906363881540E-01 -5.8227371652322324E-01 + -5.6149624039418078E-01 -5.4100562700233734E-01 -5.2080082268614269E-01 + -5.0088073023045299E-01 -4.8124421070028417E-01 -4.6189008525649461E-01 + -4.4281713695922154E-01 -4.2402411256405831E-01 -4.0550972431522725E-01 + -3.8727265173938519E-01 -3.6931154344314859E-01 -3.5162501891689424E-01 + -3.3421167034694116E-01 -3.1707006443777808E-01 -3.0019874424560505E-01 + -2.8359623102406378E-01 -2.6726102608271107E-01 -2.5119161265846379E-01 + -2.3538645779996892E-01 -2.1984401426462621E-01 -2.0456272242778395E-01 + -1.8954101220349498E-01 -1.7477730497609442E-01 -1.6027001554181697E-01 + -1.4601755405964575E-01 -1.3201832801060559E-01 -1.1827074416477179E-01 + -1.0477321055535596E-01 -9.1524138459335741E-02 -7.8521944384212394E-02 + -6.5765052060622609E-02 -5.3251894440652647E-02 -4.0980915701773320E-02 + -2.8950573256451326E-02 -1.7159339767474507E-02 -5.6057051690214564E-03 + 5.7118213065418498E-03 1.6794709096370142E-02 2.7644404269789969E-02 + 3.8262327486671327E-02 4.8649871952755122E-02 5.8808401373685551E-02 + 6.8739247910095252E-02 7.8443710137161352E-02 8.7923051011711398E-02 + 9.7178495853145738E-02 1.0621123034310641E-01 1.1502239854921260E-01 + 1.2361310098494205E-01 1.3198439270970996E-01 1.4013728148045135E-01 + 1.4807272596827289E-01 1.5579163404560054E-01 1.6329486116062061E-01 + 1.7058320880978151E-01 1.7765742311867802E-01 1.8451819354588739E-01 + 1.9116615171965434E-01 1.9760187041849139E-01 2.0382586270485431E-01 + 2.0983858121949170E-01 2.1564041764200020E-01 2.2123170232068110E-01 + 2.2661270407204981E-01 2.3178363014732309E-01 2.3674462636004104E-01 + 2.4149577736575106E-01 2.4603710708161777E-01 2.5036857923108602E-01 + 2.5449009799657296E-01 2.5840150876190426E-01 2.6210259892610582E-01 + 2.6559309877153670E-01 2.6887268237251427E-01 2.7194096853573629E-01 + 2.7479752177115996E-01 2.7744185330151377E-01 2.7987342213023675E-01 + 2.8209163620096239E-01 2.8409585369613821E-01 2.8588538453723994E-01 + 2.8745949216328426E-01 2.8881739567681974E-01 2.8995827245615019E-01 + 2.9088126133802811E-01 2.9158546647557249E-01 2.9206996197103857E-01 + 2.9233379737220161E-01 2.9237600410476877E-01 2.9219560289225660E-01 + 2.9179161219050187E-01 2.9116305763797479E-01 2.9030898249721260E-01 + 2.8922845903867550E-01 2.8792060079778459E-01 2.8638457562001252E-01 + 2.8461961939815478E-01 2.8262505040086228E-01 2.8040028409177653E-01 + 2.7794484834225697E-01 2.7525839894987159E-01 2.7234073538446341E-01 + 2.6919181669440839E-01 2.6581177751904722E-01 2.6220094416216672E-01 + 2.5835985069181933E-01 2.5428925503966626E-01 2.4999015507747693E-01 + 2.4546380465257994E-01 2.4071172956499981E-01 2.3573574346851778E-01 + 2.3053796367571852E-01 2.2512082684360060E-01 2.1948710451172346E-01 + 2.1363991845952165E-01 2.0758275584346583E-01 2.0131948406842190E-01 + 1.9485436534105710E-01 1.8819207084654554E-01 1.8133769448331408E-01 + 1.7429676608418321E-01 1.6707526404615142E-01 1.5967962728526927E-01 + 1.5211676642765784E-01 1.4439407414283334E-01 1.3651943452116672E-01 + 1.2850123139362535E-01 1.2034835548901539E-01 1.1207021032182157E-01 + 1.0367671670253936E-01 9.5178315762141266E-02 8.6585970383106267E-02 + 7.7911164931258742E-02 6.9165903185525068E-02 6.0362704366584211E-02 + 5.1514597170167521E-02 4.2635111716346000E-02 3.3738269332346457E-02 + 2.4838570093076363E-02 1.5950978050358777E-02 7.0909040886352245E-03 + -1.7258136486723382E-03 -1.0482931812098025E-02 -1.9163826423272325E-02 + -2.7751520017098744E-02 -3.6228711386821898E-02 -4.4577807968003438E-02 + -5.2780960896679323E-02 -6.0820102777200631E-02 -6.8676988196247346E-02 + -7.6333237020952030E-02 -8.3770380520632001E-02 -9.0969910352876687E-02 + -9.7913330455231248E-02 -1.0458221188297788E-01 -1.1095825063112966E-01 + -1.1702332847412864E-01 -1.2275957684961156E-01 -1.2814944380256632E-01 + -1.3317576399270989E-01 -1.3782183175106552E-01 -1.4207147715091900E-01 + -1.4590914503359895E-01 -1.4931997690082072E-01 -1.5228989555240838E-01 + -1.5480569231126237E-01 -1.5685511663642338E-01 -1.5842696788016017E-01 + -1.5951118889634558E-01 -1.6009896115521163E-01 -1.6018280096415560E-01 + -1.5975665633599390E-01 -1.5881600398528170E-01 -1.5735794587056287E-01 + -1.5538130463617561E-01 -1.5288671724218558E-01 -1.4987672600581017E-01 + -1.4635586621310773E-01 -1.4233074939661752E-01 -1.3781014131395411E-01 + -1.3280503360509521E-01 -1.2732870805336372E-01 -1.2139679232800261E-01 + -1.1502730604600987E-01 -1.0824069595875714E-01 -1.0105985904615873E-01 + -9.3510152289052656E-02 -8.5619387890277218E-02 -7.7417812727938337E-02 + -6.8938070851734354E-02 -6.0215147876080045E-02 -5.1286296183156985E-02 + -4.2190939925844669E-02 -3.2970558915520122E-02 -2.3668550593583807E-02 + -1.4330069418751142E-02 -5.0018431549211546E-03 4.2680342830907448E-03 + 1.3430333576567800E-02 2.2434944281820111E-02 3.1231152349867237E-02 + 3.9767940347187392E-02 4.7994309571992452E-02 5.5859622978403453E-02 + 6.3313967523899228E-02 7.0308534245053400E-02 7.6796014044671290E-02 + 8.2731006842075169E-02 8.8070441399874813E-02 9.2774002797813587E-02 + 9.6804564180312594E-02 1.0012861906261877E-01 1.0271671014493892E-01 + 1.0454385025896538E-01 1.0558993076162242E-01 1.0584011240203749E-01 + 1.0528519342548587E-01 1.0392194944872149E-01 1.0175343945146931E-01 + 9.8789272086186278E-02 9.5045826420106477E-02 9.0546421198030372E-02 + 8.5321426759487298E-02 7.9408313868080546E-02 7.2851633922298598E-02 + 6.5702925323964018E-02 5.8020541190527110E-02 4.9869394117798539E-02 + 4.1320614336834149E-02 3.2451118367901717E-02 2.3343086159790513E-02 + 1.4083345716588810E-02 4.7626653569507356E-03 -4.5250449789557261E-03 + -1.3683620566499206E-02 -2.2615612560445822E-02 -3.1223336554268410E-02 + -3.9409991398015827E-02 -4.7080838858718020E-02 -5.4144432876336107E-02 + -6.0513885311457544E-02 -6.6108153228605498E-02 -7.0853330945878340E-02 + -7.4683928346653453E-02 -7.7544115335428487E-02 -7.9388910874486490E-02 + -8.0185293811319155E-02 -7.9913211751715799E-02 -7.8566463605190401E-02 + -7.6153431184028314E-02 -7.2697635430514690E-02 -6.8238093533094735E-02 + -6.2829454422373809E-02 -5.6541891958041463E-02 -4.9460737567126545E-02 + -4.1685837202460767E-02 -3.3330621276526425E-02 -2.4520880694925289E-02 + -1.5393247254394690E-02 -6.0933824530314150E-03 3.2261148651061234E-03 + 1.2408064715528152E-02 2.1293301398760744E-02 2.9723475902477883E-02 + 3.7544025275365975E-02 4.4607261233449789E-02 5.0775522754575884E-02 + 5.5924330366943900E-02 5.9945473490216061E-02 6.2749956807351057E-02 + 6.4270727508433378E-02 6.4465102636366081E-02 6.3316814957673731E-02 + 6.0837597047162260E-02 5.7068226857411752E-02 5.2078964153112327E-02 + 4.5969315988827364E-02 3.8867080998804433E-02 3.0926636676386423E-02 + 2.2326450987853168E-02 1.3265819429894007E-02 3.9608507282290961E-03 + -5.3602516069534839E-03 -1.4462539226159430E-02 -2.3110201558275135E-02 + -3.1072856105384690E-02 -3.8132096165319006E-02 -4.4088122390937845E-02 + -4.8766264247522409E-02 -5.2023181211175884E-02 -5.3752522614045860E-02 + -5.3889820511744978E-02 -5.2416392871715276E-02 -4.9362045670353023E-02 + -4.4806382856253248E-02 -3.8878563040175694E-02 -3.1755381336436052E-02 + -2.3657603745045105E-02 -1.4844539126565774E-02 -5.6068989938682142E-03 + 3.7419336761598072E-03 1.2876030848281664E-02 2.1468169882065437E-02 + 2.9201863803654339E-02 3.5783760038735207E-02 4.0955938908664537E-02 + 4.4507599625489697E-02 4.6285595664253214E-02 4.6203276912595799E-02 + 4.4247116065851418E-02 4.0480643760264570E-02 3.5045292308335495E-02 + 2.8157851737801724E-02 2.0104372760276656E-02 1.1230506247742399E-02 + 1.9284429189873242E-03 -7.3791964488586787E-03 -1.6257979299137842E-02 + -2.4282062337969274E-02 -3.1055481996336017E-02 -3.6233302412587251E-02 + -3.9541491597854923E-02 -4.0794351560388541E-02 -3.9908345798287760E-02 + -3.6911255320073361E-02 -3.1945756526902763E-02 -2.5266751044772766E-02 + -1.7232084197787739E-02 -8.2866551185588749E-03 1.0596682938985827E-03 + 1.0259483535276833E-02 1.8759361539294087E-02 2.6033757873554053E-02 + 3.1619326958386942E-02 3.5147408493847170E-02 3.6372353701940217E-02 + 3.5193411918350279E-02 3.1668123013420459E-02 2.6015564919346243E-02 + 1.8608381909441672E-02 9.9532470404316929E-03 6.6025442776125837E-04 + -8.5973584599954439E-03 -1.7130878649194201E-02 -2.4287958303578886E-02 + -2.9505025315369606E-02 -3.2355827037696468E-02 -3.2592012684323400E-02 + -3.0171529368806776E-02 -2.5271469676447715E-02 -1.8282952313625325E-02 + -9.7870056229622440E-03 -5.1205500909412593E-04 8.7246170171217628E-03 + 1.7087311158928295E-02 2.3798564684202290E-02 2.8215145240829756E-02 + 2.9895882662728440E-02 2.8653901839021320E-02 2.4586672172754911E-02 + 1.8078944592302294E-02 9.7760350327855874E-03 5.2786772493071789E-04 + -8.6925453473615834E-03 -1.6889276033429743E-02 -2.3152564946063214E-02 + -2.6765064152973216E-02 -2.7292629072269151E-02 -2.4647630474658334E-02 + -1.9114895592064956E-02 -1.1334027154734628E-02 -2.2367259646785867E-03 + 7.0566167341050015E-03 1.5371038680828352E-02 2.1626726749728112E-02 + 2.4985593191757190E-02 2.4974505175489749E-02 2.1566193875635228E-02 + 1.5202979257435445E-02 6.7552269143463161E-03 -2.5847497120885876E-03 + -1.1462886067201814E-02 -1.8557909426941001E-02 -2.2783162064411312E-02 + -2.3464765878463297E-02 -2.0465871034794341E-02 -1.4232484840973364E-02 + -5.7469298893152556E-03 3.6108240218112458E-03 1.2277858992945055E-02 + 1.8768038974645955E-02 2.1934648901420387E-02 2.1189061822058573E-02 + 1.6631931309613372E-02 9.0654061911598777E-03 -1.2564922923345600E-04 + -9.2112839782347421E-03 -1.6436158390809023E-02 -2.0364390379135379E-02 + -2.0181787132246481E-02 -1.5889734945626351E-02 -8.3412802327397072E-03 + 9.0116068469876191E-04 9.8701451842438479E-03 1.6605653511216525E-02 + 1.9591856391982420E-02 1.8120415644016806E-02 1.2489895047814385E-02 + 3.9807625811643420E-03 -5.4063151652333861E-03 -1.3404161913901886E-02 + -1.8027483143498974E-02 -1.8084791280101115E-02 -1.3518968985363639E-02 + -5.4731840214022756E-03 3.9578810997689673E-03 1.2249730083128929E-02 + 1.7121019545602141E-02 1.7181203070309060E-02 1.2365760044406973E-02 + 4.0150977176320185E-03 -5.4554550801725636E-03 -1.3228910122614566E-02 + -1.6925378387187856E-02 -1.5358887135444295E-02 -8.9658687568389649E-03 + 2.5979851631584988E-04 9.3447081411659558E-03 1.5276650575885588E-02 + 1.6019284244663971E-02 1.1256948782828761E-02 2.5858619189555311E-03 + -6.9627023266567124E-03 -1.3950006825271076E-02 -1.5774945249477590E-02 + -1.1687297032898569E-02 -3.1625623465167804E-03 6.5611661232670010E-03 + 1.3672234943643878E-02 1.5284108506067404E-02 1.0657417209107609E-02 + 1.6136108676331055E-03 -8.1041065899026699E-03 -1.4338465688902234E-02 + -1.4310217558285163E-02 -7.9222495198189354E-03 2.0567640707450335E-03 + 1.1111981941462297E-02 1.4996558931771160E-02 1.1761703712724751E-02 + 2.8222690739043341E-03 -7.5526332761974620E-03 -1.4211454086456301E-02 + -1.3684945350511110E-02 -6.0725377802883992E-03 4.8032192723535374E-03 + 1.3217251509695542E-02 1.4533595362961397E-02 7.8272009112023751E-03 + -3.3699978780994230E-03 -1.2803634402883731E-02 -1.4946340073318302E-02 + + + -4.3043620360278538E-21 -3.4354181365612366E-19 -2.7851081607346275E-18 + -9.5256979221925993E-18 -2.2882446951876395E-17 -4.5292932438557659E-17 + -7.9319615542087916E-17 -1.2765442643625911E-16 -1.9312349600958678E-16 + -2.7869203859716676E-16 -3.8746939024210444E-16 -5.2271420711390761E-16 + -6.8783982884367406E-16 -8.8641981167212780E-16 -1.1221936364464772E-15 + -1.3990725966460772E-15 -1.7211458717646686E-15 -2.0926867915291322E-15 + -2.5181592965909747E-15 -3.0022246014873156E-15 -3.5497480658335697E-15 + -4.1658062798793331E-15 -4.8556943707339371E-15 -5.6249335357472783E-15 + -6.4792788097156378E-15 -7.4247270727722473E-15 -8.4675253060165851E-15 + -9.6141791021368551E-15 -1.0871461438485766E-14 -1.2246421720281362E-14 + -1.3746395101821502E-14 -1.5379012093825000E-14 -1.7152208465240562E-14 + -1.9074235448102295E-14 -2.1153670254251787E-14 -2.3399426912996874E-14 + -2.5820767439032703E-14 -2.8427313340214778E-14 -3.1229057475043488E-14 + -3.4236376269998743E-14 -3.7460042307147686E-14 -4.0911237292744033E-14 + -4.4601565417837555E-14 -4.8543067122224137E-14 -5.2748233273384965E-14 + -5.7230019772390085E-14 -6.2001862599080895E-14 -6.7077693309189029E-14 + -7.2471954996407314E-14 -7.8199618732792462E-14 -8.4276200501254599E-14 + -9.0717778634276959E-14 -9.7541011773401990E-14 -1.0476315736443009E-13 + -1.1240209070369723E-13 -1.2047632455122325E-13 -1.2900502932697159E-13 + -1.3800805390690948E-13 -1.4750594703602835E-13 -1.5751997937596303E-13 + -1.6807216620534146E-13 -1.7918529079150284E-13 -1.9088292845274405E-13 + -2.0318947133078863E-13 -2.1613015389371930E-13 -2.2973107919018976E-13 + -2.4401924587629566E-13 -2.5902257603709861E-13 -2.7476994382539765E-13 + -2.9129120494097861E-13 -3.0861722697421397E-13 -3.2677992063855583E-13 + -3.4581227191714740E-13 -3.6574837514947276E-13 -3.8662346708469631E-13 + -4.0847396192907800E-13 -4.3133748741561402E-13 -4.5525292192483195E-13 + -4.8026043268648139E-13 -5.0640151509267021E-13 -5.3371903315387414E-13 + -5.6225726113008188E-13 -5.9206192637026296E-13 -6.2318025339426003E-13 + -6.5566100925213948E-13 -6.8955455019702482E-13 -7.2491286970840953E-13 + -7.6178964790402210E-13 -8.0024030237928780E-13 -8.4032204051461346E-13 + -8.8209391329173106E-13 -9.2561687066158699E-13 -9.7095381850732468E-13 + -1.0181696772472127E-12 -1.0673314421235481E-12 -1.1185082452248633E-12 + -1.1717714192900649E-12 -1.2271945633444859E-12 -1.2848536102191932E-12 + -1.3448268960063470E-12 -1.4071952315048051E-12 -1.4720419757117530E-12 + -1.5394531114175722E-12 -1.6095173229628305E-12 -1.6823260762178414E-12 + -1.7579737008469463E-12 -1.8365574749213534E-12 -1.9181777119461647E-12 + -2.0029378503689774E-12 -2.0909445456393621E-12 -2.1823077648904091E-12 + -2.2771408843154498E-12 -2.3755607893151470E-12 -2.4776879774921572E-12 + -2.5836466645727570E-12 -2.6935648933368999E-12 -2.8075746456405524E-12 + -2.9258119576163704E-12 -3.0484170381411352E-12 -3.1755343906608643E-12 + -3.3073129384670053E-12 -3.4439061535195564E-12 -3.5854721889158058E-12 + -3.7321740151059701E-12 -3.8841795599596612E-12 -4.0416618527903510E-12 + -4.2047991724474745E-12 -4.3737751995891724E-12 -4.5487791732516797E-12 + -4.7300060518343632E-12 -4.9176566786230143E-12 -5.1119379519771343E-12 + -5.3130630003103144E-12 -5.5212513619967177E-12 -5.7367291703399196E-12 + -5.9597293437442771E-12 -6.1904917812329364E-12 -6.4292635634602582E-12 + -6.6762991593708166E-12 -6.9318606386610343E-12 -7.1962178902038755E-12 + -7.4696488466015417E-12 -7.7524397150353763E-12 -8.0448852145869695E-12 + -8.3472888202093659E-12 -8.6599630135317187E-12 -8.9832295406862816E-12 + -9.3174196773514345E-12 -9.6628745012098896E-12 -1.0019945172026497E-11 + -1.0388993219556141E-11 -1.0770390839497092E-11 -1.1164521197712128E-11 + -1.1571778742944981E-11 -1.1992569528266063E-11 -1.2427311541488428E-11 + -1.2876435044800419E-11 -1.3340382923869215E-11 -1.3819611046675775E-11 + -1.4314588632349083E-11 -1.4825798630274743E-11 -1.5353738109760890E-11 + -1.5898918660551244E-11 -1.6461866804483951E-11 -1.7043124418602895E-11 + -1.7643249170035478E-11 -1.8262814962961062E-11 -1.8902412398001684E-11 + -1.9562649244376714E-11 -2.0244150925171702E-11 -2.0947561016081474E-11 + -2.1673541757997856E-11 -2.2422774583821657E-11 -2.3195960659888997E-11 + -2.3993821442413901E-11 -2.4817099249357881E-11 -2.5666557848150798E-11 + -2.6542983059696807E-11 -2.7447183379112344E-11 -2.8379990613654581E-11 + -2.9342260538311893E-11 -3.0334873569539690E-11 -3.1358735457639175E-11 + -3.2414777998289978E-11 -3.3503959763760454E-11 -3.4627266854335342E-11 + -3.5785713670513600E-11 -3.6980343706545583E-11 -3.8212230365893222E-11 + -3.9482477799213168E-11 -4.0792221765479619E-11 -4.2142630516878723E-11 + -4.3534905708126366E-11 -4.4970283330875705E-11 -4.6450034673901549E-11 + -4.7975467309765471E-11 -4.9547926108686852E-11 -5.1168794280361008E-11 + -5.2839494444491118E-11 -5.4561489730816252E-11 -5.6336284909441214E-11 + -5.8165427552298221E-11 -6.0050509226587690E-11 -6.1993166721073337E-11 + -6.3995083306127651E-11 -6.6057990028449564E-11 -6.8183667041400436E-11 + -7.0373944971930280E-11 -7.2630706325093386E-11 -7.4955886927177400E-11 + -7.7351477408501158E-11 -7.9819524726961709E-11 -8.2362133733442474E-11 + -8.4981468780224511E-11 -8.7679755373571911E-11 -9.0459281871697608E-11 + -9.3322401229344346E-11 -9.6271532790253564E-11 -9.9309164128825393E-11 + -1.0243785294231105E-10 -1.0566022899491356E-10 -1.0897899611521276E-10 + -1.1239693424836343E-10 -1.1591690156456333E-10 -1.1954183662531756E-10 + -1.2327476060907871E-10 -1.2711877959787436E-10 -1.3107708692658602E-10 + -1.3515296559658196E-10 -1.3934979075545696E-10 -1.4367103224467706E-10 + -1.4812025721697786E-10 -1.5270113282541371E-10 -1.5741742898600637E-10 + -1.6227302121599454E-10 -1.6727189354974404E-10 -1.7241814153442559E-10 + -1.7771597530763275E-10 -1.8316972275916686E-10 -1.8878383277927575E-10 + -1.9456287859569951E-10 -2.0051156120193317E-10 -2.0663471287919016E-10 + -2.1293730081460652E-10 -2.1942443081830911E-10 -2.2610135114202516E-10 + -2.3297345640199804E-10 -2.4004629160904168E-10 -2.4732555630864017E-10 + -2.5481710883408774E-10 -2.6252697067572913E-10 -2.7046133096946539E-10 + -2.7862655110775225E-10 -2.8702916947642317E-10 -2.9567590632075247E-10 + -3.0457366874426205E-10 -3.1372955584387900E-10 -3.2315086398514461E-10 + -3.3284509222127317E-10 -3.4281994785996391E-10 -3.5308335218198067E-10 + -3.6364344631560454E-10 -3.7450859727120147E-10 -3.8568740414024275E-10 + -3.9718870446323353E-10 -4.0902158077114043E-10 -4.2119536730501688E-10 + -4.3371965691865545E-10 -4.4660430816924443E-10 -4.5985945260110183E-10 + -4.7349550222774792E-10 -4.8752315721767730E-10 -5.0195341378934778E-10 + -5.1679757232107236E-10 -5.3206724568162778E-10 -5.4777436778756265E-10 + -5.6393120239335064E-10 -5.8055035212069777E-10 -5.9764476773348021E-10 + -6.1522775766496912E-10 -6.3331299780418246E-10 -6.5191454154837523E-10 + -6.7104683012887641E-10 -6.9072470321768742E-10 -7.1096340982243253E-10 + -7.3177861947747795E-10 -7.5318643373923696E-10 -7.7520339799390175E-10 + -7.9784651358605073E-10 -8.2113325027683185E-10 -8.4508155904063299E-10 + -8.6970988520941472E-10 -8.9503718197409941E-10 -9.2108292425269886E-10 + -9.4786712293509132E-10 -9.7541033951465520E-10 -1.0037337011172064E-09 + -1.0328589159380318E-09 -1.0628082890980081E-09 -1.0936047389301850E-09 + -1.1252718137084624E-09 -1.1578337088303283E-09 -1.1913152844659403E-09 + -1.2257420836861440E-09 -1.2611403510824421E-09 -1.2975370518921297E-09 + -1.3349598916423483E-09 -1.3734373363270341E-09 -1.4129986331311963E-09 + -1.4536738317173257E-09 -1.4954938060891076E-09 -1.5384902770480918E-09 + -1.5826958352593162E-09 -1.6281439649423611E-09 -1.6748690682047408E-09 + -1.7229064900350074E-09 -1.7722925439733611E-09 -1.8230645384781342E-09 + -1.8752608040069186E-09 -1.9289207208316630E-09 -1.9840847476075901E-09 + -2.0407944507162599E-09 -2.0990925344037685E-09 -2.1590228717354948E-09 + -2.2206305363895294E-09 -2.2839618353113761E-09 -2.3490643422532673E-09 + -2.4159869322219083E-09 -2.4847798168592848E-09 -2.5554945807816757E-09 + -2.6281842189027583E-09 -2.7029031747674436E-09 -2.7797073799236442E-09 + -2.8586542943601055E-09 -2.9398029480390652E-09 -3.0232139835532340E-09 + -3.1089496999375930E-09 -3.1970740976670662E-09 -3.2876529248721866E-09 + -3.3807537248055707E-09 -3.4764458845930318E-09 -3.5748006853039812E-09 + -3.6758913533767670E-09 -3.7797931134354397E-09 -3.8865832425357122E-09 + -3.9963411258784069E-09 -4.1091483140302909E-09 -4.2250885816927832E-09 + -4.3442479880603952E-09 -4.4667149388118269E-09 -4.5925802497777642E-09 + -4.7219372123305893E-09 -4.8548816605425565E-09 -4.9915120401601176E-09 + -5.1319294794433325E-09 -5.2762378619208631E-09 -5.4245439011120881E-09 + -5.5769572172694803E-09 -5.7335904161957451E-09 -5.8945591701917146E-09 + -6.0599823011924606E-09 -6.2299818661506512E-09 -6.4046832447278809E-09 + -6.5842152293560199E-09 -6.7687101177327964E-09 -6.9583038078169985E-09 + -7.1531358953909239E-09 -7.3533497742592473E-09 -7.5590927391553733E-09 + -7.7705160914284370E-09 -7.9877752475856918E-09 -8.2110298507676388E-09 + -8.4404438852346762E-09 -8.6761857939466550E-09 -8.9184285993187342E-09 + -9.1673500272390834E-09 -9.4231326344365334E-09 -9.6859639392883444E-09 + -9.9560365561610571E-09 -1.0233548333379407E-08 -1.0518702494921501E-08 + -1.0811707785940188E-08 -1.1112778622214374E-08 -1.1422135243635754E-08 + -1.1740003871840051E-08 -1.2066616872094248E-08 -1.2402212919554873E-08 + -1.2747037170014551E-08 -1.3101341435258733E-08 -1.3465384363155870E-08 + -1.3839431622609322E-08 -1.4223756093501820E-08 -1.4618638061766806E-08 + -1.5024365419725257E-08 -1.5441233871829463E-08 -1.5869547145959983E-08 + -1.6309617210424781E-08 -1.6761764496814793E-08 -1.7226318128873390E-08 + -1.7703616157541919E-08 -1.8194005802347829E-08 -1.8697843699305901E-08 + -1.9215496155508754E-08 -1.9747339410585910E-08 -2.0293759905217542E-08 + -2.0855154556892055E-08 -2.1431931043103201E-08 -2.2024508092187154E-08 + -2.2633315782004712E-08 -2.3258795846680993E-08 -2.3901401991618777E-08 + -2.4561600217008961E-08 -2.5239869150066486E-08 -2.5936700386227545E-08 + -2.6652598839548314E-08 -2.7388083102554150E-08 -2.8143685815793336E-08 + -2.8919954047356304E-08 -2.9717449682629919E-08 -3.0536749824560793E-08 + -3.1378447204712423E-08 -3.2243150605405531E-08 -3.3131485293240510E-08 + -3.4044093464308710E-08 -3.4981634701407255E-08 -3.5944786443579905E-08 + -3.6934244468317055E-08 -3.7950723386754755E-08 -3.8994957152223284E-08 + -4.0067699582504616E-08 -4.1169724896167537E-08 -4.2301828263359909E-08 + -4.3464826371447244E-08 -4.4659558005896721E-08 -4.5886884646818077E-08 + -4.7147691081581896E-08 -4.8442886033948309E-08 -4.9773402810151373E-08 + -5.1140199962394454E-08 -5.2544261970225648E-08 -5.3986599940275439E-08 + -5.5468252324848787E-08 -5.6990285659881359E-08 -5.8553795322779865E-08 + -6.0159906310681673E-08 -6.1809774039684152E-08 -6.3504585165606338E-08 + -6.5245558426864780E-08 -6.7033945510056945E-08 -6.8871031938863404E-08 + -7.0758137986897500E-08 -7.2696619615145965E-08 -7.4687869434661377E-08 + -7.6733317695188409E-08 -7.8834433300419318E-08 -8.0992724850596952E-08 + -8.3209741713198197E-08 -8.5487075122459111E-08 -8.7826359308509490E-08 + -9.0229272656922372E-08 -9.2697538899490219E-08 -9.5232928337069079E-08 + -9.7837259095357518E-08 -1.0051239841449023E-07 -1.0326026397336139E-07 + -1.0608282524960802E-07 -1.0898210491621359E-07 -1.1196018027572076E-07 + -1.1501918473305676E-07 -1.1816130930801954E-07 -1.2138880418848345E-07 + -1.2470398032542345E-07 -1.2810921107088400E-07 -1.3160693386004199E-07 + -1.3519965193855718E-07 -1.3888993613642096E-07 -1.4268042668955739E-07 + -1.4657383511046285E-07 -1.5057294610919543E-07 -1.5468061956607874E-07 + -1.5889979255749820E-07 -1.6323348143623074E-07 -1.6768478396776232E-07 + -1.7225688152410439E-07 -1.7695304133665835E-07 -1.8177661880970488E-07 + -1.8673105989616216E-07 -1.9181990353727461E-07 -1.9704678416795484E-07 + -2.0241543428955082E-07 -2.0792968711183719E-07 -2.1359347926610272E-07 + -2.1941085359124213E-07 -2.2538596199480681E-07 -2.3152306839104563E-07 + -2.3782655171798450E-07 -2.4430090903568820E-07 -2.5095075870787306E-07 + -2.5778084366911332E-07 -2.6479603477994974E-07 -2.7200133427224647E-07 + -2.7940187928724032E-07 -2.8700294550875351E-07 -2.9480995089414667E-07 + -3.0282845950562074E-07 -3.1106418544457093E-07 -3.1952299689177233E-07 + -3.2821092025621349E-07 -3.3713414443552867E-07 -3.4629902519100210E-07 + -3.5571208964023018E-07 -3.6538004087061190E-07 -3.7530976267689068E-07 + -3.8550832442610672E-07 -3.9598298605335832E-07 -4.0674120319189274E-07 + -4.1779063244115128E-07 -4.2913913677643728E-07 -4.4079479110405200E-07 + -4.5276588796576823E-07 -4.6506094339667092E-07 -4.7768870294048873E-07 + -4.9065814782661789E-07 -5.0397850131321352E-07 -5.1765923520078013E-07 + -5.3171007652084612E-07 -5.4614101440444115E-07 -5.6096230713515773E-07 + -5.7618448939181314E-07 -5.9181837968573496E-07 -6.0787508799795525E-07 + -6.2436602362162911E-07 -6.4130290321520984E-07 -6.5869775907204022E-07 + -6.7656294761214686E-07 -6.9491115810222463E-07 -7.1375542160990853E-07 + -7.3310912019863162E-07 -7.5298599636954168E-07 -7.7340016275705056E-07 + -7.9436611208489331E-07 -8.1589872738962164E-07 -8.3801329251872319E-07 + -8.6072550291077222E-07 -8.8405147666509513E-07 -9.0800776590880318E-07 + -9.3261136846910053E-07 -9.5787973985907040E-07 -9.8383080558537880E-07 + -1.0104829737864647E-06 -1.0378551482101357E-06 -1.0659667415396258E-06 + -1.0948376890774795E-06 -1.1244884627968474E-06 -1.1549400857700114E-06 + -1.1862141469843260E-06 -1.2183328165558494E-06 -1.2513188613514239E-06 + -1.2851956610300794E-06 -1.3199872245150090E-06 -1.3557182069076942E-06 + -1.3924139268559506E-06 -1.4301003843881204E-06 -1.4688042792258586E-06 + -1.5085530295883112E-06 -1.5493747915009301E-06 -1.5912984786223103E-06 + -1.6343537826030434E-06 -1.6785711939907432E-06 -1.7239820236958768E-06 + -1.7706184250334892E-06 -1.8185134163561056E-06 -1.8677009042937434E-06 + -1.9182157076172418E-06 -1.9700935817415285E-06 -2.0233712438860769E-06 + -2.0780863989099807E-06 -2.1342777658398372E-06 -2.1919851051088132E-06 + -2.2512492465260882E-06 -2.3121121179960515E-06 -2.3746167750073595E-06 + -2.4388074309125013E-06 -2.5047294880188437E-06 -2.5724295695130510E-06 + -2.6419555522409394E-06 -2.7133566003657787E-06 -2.7866831999284752E-06 + -2.8619871943336584E-06 -2.9393218207865365E-06 -3.0187417477057757E-06 + -3.1003031131385339E-06 -3.1840635642044878E-06 -3.2700822975961052E-06 + -3.3584201011636382E-06 -3.4491393966135724E-06 -3.5423042833503065E-06 + -3.6379805834916566E-06 -3.7362358880893392E-06 -3.8371396045867873E-06 + -3.9407630055470291E-06 -4.0471792786848071E-06 -4.1564635782374434E-06 + -4.2686930777102715E-06 -4.3839470240333646E-06 -4.5023067931668634E-06 + -4.6238559471939259E-06 -4.7486802929405480E-06 -4.8768679421631223E-06 + -5.0085093733455577E-06 -5.1436974951485131E-06 -5.2825277115551506E-06 + -5.4250979887581841E-06 -5.5715089238347681E-06 -5.7218638152568051E-06 + -5.8762687352853499E-06 -6.0348326042994273E-06 -6.1976672671105208E-06 + -6.3648875713155178E-06 -6.5366114477426471E-06 -6.7129599930453891E-06 + -6.8940575545020904E-06 -7.0800318170794759E-06 -7.2710138928201366E-06 + -7.4671384126161750E-06 -7.6685436204316359E-06 -7.8753714700394345E-06 + -8.0877677243388480E-06 -8.3058820573226010E-06 -8.5298681587633683E-06 + -8.7598838416918903E-06 -8.9960911527410897E-06 -9.2386564854313360E-06 + -9.4877506964757097E-06 -9.7435492251844695E-06 -1.0006232216051076E-05 + -1.0275984644604330E-05 -1.0552996446612236E-05 -1.0837462650727194E-05 + -1.1129583514662731E-05 -1.1429564664995560E-05 -1.1737617240688853E-05 + -1.2053958040434614E-05 -1.2378809673916530E-05 -1.2712400717096437E-05 + -1.3054965871630647E-05 -1.3406746128525512E-05 -1.3767988936143329E-05 + -1.4138948372673964E-05 -1.4519885323189418E-05 -1.4911067661402419E-05 + -1.5312770436252774E-05 -1.5725276063448336E-05 -1.6148874522091779E-05 + -1.6583863556525645E-05 -1.7030548883534514E-05 -1.7489244405043714E-05 + -1.7960272426459383E-05 -1.8443963880798940E-05 -1.8940658558762141E-05 + -1.9450705344900764E-05 -1.9974462460044986E-05 -2.0512297710151358E-05 + -2.1064588741741116E-05 -2.1631723304099900E-05 -2.2214099518417850E-05 + -2.2812126154050000E-05 -2.3426222912083617E-05 -2.4056820716404717E-05 + -2.4704362012457161E-05 -2.5369301073898035E-05 -2.6052104317353066E-05 + -2.6753250625484223E-05 -2.7473231678587030E-05 -2.8212552294937584E-05 + -2.8971730780119877E-05 -2.9751299285564149E-05 -3.0551804176538721E-05 + -3.1373806409838244E-05 -3.2217881921421993E-05 -3.3084622024260194E-05 + -3.3974633816652012E-05 -3.4888540601288244E-05 -3.5826982315335694E-05 + -3.6790615971828582E-05 -3.7780116112661126E-05 -3.8796175273477839E-05 + -3.9839504460772819E-05 -4.0910833641509386E-05 -4.2010912245584844E-05 + -4.3140509681471782E-05 -4.4300415865372980E-05 -4.5491441764240168E-05 + -4.6714419953010470E-05 -4.7970205186426670E-05 -4.9259674985817067E-05 + -5.0583730241214204E-05 -5.1943295829210433E-05 -5.3339321246947872E-05 + -5.4772781262659692E-05 -5.6244676583181881E-05 -5.7756034538869778E-05 + -5.9307909786364050E-05 -6.0901385029657088E-05 -6.2537571759930215E-05 + -6.4217611014633243E-05 -6.5942674156297938E-05 -6.7713963671585435E-05 + -6.9532713991077224E-05 -7.1400192330338424E-05 -7.3317699552786470E-05 + -7.5286571054916865E-05 -7.7308177674451363E-05 -7.9383926621980110E-05 + -8.1515262436695240E-05 -8.3703667966812364E-05 -8.5950665375305569E-05 + -8.8257817171585789E-05 -9.0626727269770539E-05 -9.3059042074211660E-05 + -9.5556451592955743E-05 -9.8120690579835615E-05 -1.0075353970590356E-04 + -1.0345682676093046E-04 -1.0623242788572205E-04 -1.0908226883600476E-04 + -1.1200832627867005E-04 -1.1501262912116609E-04 -1.1809725987485488E-04 + -1.2126435605317190E-04 -1.2451611160543247E-04 -1.2785477838716584E-04 + -1.3128266766786108E-04 -1.3480215167703847E-04 -1.3841566518957982E-04 + -1.4212570715126517E-04 -1.4593484234549405E-04 -1.4984570310218209E-04 + -1.5386099104984730E-04 -1.5798347891193278E-04 -1.6221601234841444E-04 + -1.6656151184378835E-04 -1.7102297464253593E-04 -1.7560347673320026E-04 + -1.8030617488223093E-04 -1.8513430871876677E-04 -1.9009120287157060E-04 + -1.9518026915933109E-04 -2.0040500883559720E-04 -2.0576901488961546E-04 + -2.1127597440437316E-04 -2.1692967097318962E-04 -2.2273398717619723E-04 + -2.2869290711811105E-04 -2.3481051902868877E-04 -2.4109101792732122E-04 + -2.4753870835322802E-04 -2.5415800716273914E-04 -2.6095344639520305E-04 + -2.6792967620905682E-04 -2.7509146788964444E-04 -2.8244371693040199E-04 + -2.8999144618903035E-04 -2.9773980912033967E-04 -3.0569409308745481E-04 + -3.1385972275310529E-04 -3.2224226355277166E-04 -3.3084742525145118E-04 + -3.3968106558588805E-04 -3.4874919399408103E-04 -3.5805797543397887E-04 + -3.6761373429324191E-04 -3.7742295839201319E-04 -3.8749230308068075E-04 + -3.9782859543459125E-04 -4.0843883854777354E-04 -4.1933021592769980E-04 + -4.3051009599317261E-04 -4.4198603667745394E-04 -4.5376579013875566E-04 + -4.6585730758027475E-04 -4.7826874418194530E-04 -4.9100846414613052E-04 + -5.0408504585950774E-04 -5.1750728717338181E-04 -5.3128421080475292E-04 + -5.4542506986042191E-04 -5.5993935348647075E-04 -5.7483679264549818E-04 + -5.9012736602393368E-04 -6.0582130607187334E-04 -6.2192910517780756E-04 + -6.3846152198066496E-04 -6.5542958782163622E-04 -6.7284461333817660E-04 + -6.9071819520268713E-04 -7.0906222300829618E-04 -7.2788888630423844E-04 + -7.4721068178327545E-04 -7.6704042062362878E-04 -7.8739123598791435E-04 + -8.0827659068148476E-04 -8.2971028497268347E-04 -8.5170646457740262E-04 + -8.7427962881036841E-04 -8.9744463890558594E-04 -9.2121672650825176E-04 + -9.4561150234054672E-04 -9.7064496504355960E-04 -9.9633351019764072E-04 + -1.0226939395234190E-03 -1.0497434702656210E-03 -1.0774997447618607E-03 + -1.1059808401984305E-03 -1.1352052785550690E-03 -1.1651920367406878E-03 + -1.1959605569217893E-03 -1.2275307570454438E-03 -1.2599230415583297E-03 + -1.2931583123235297E-03 -1.3272579797363720E-03 -1.3622439740406875E-03 + -1.3981387568466560E-03 -1.4349653328511905E-03 -1.4727472617618207E-03 + -1.5115086704246758E-03 -1.5512742651571196E-03 -1.5920693442853921E-03 + -1.6339198108873000E-03 -1.6768521857399210E-03 -1.7208936204719299E-03 + -1.7660719109199507E-03 -1.8124155106881497E-03 -1.8599535449098142E-03 + -1.9087158242095661E-03 -1.9587328588643988E-03 -2.0100358731614020E-03 + -2.0626568199498215E-03 -2.1166283953844246E-03 -2.1719840538571215E-03 + -2.2287580231129872E-03 -2.2869853195466353E-03 -2.3467017636743612E-03 + -2.4079439957768187E-03 -2.4707494917067421E-03 -2.5351565788553445E-03 + -2.6012044522707159E-03 -2.6689331909207259E-03 -2.7383837740923350E-03 + -2.8095980979186397E-03 -2.8826189920239859E-03 -2.9574902362770926E-03 + -3.0342565776409094E-03 -3.1129637471074114E-03 -3.1936584767045823E-03 + -3.2763885165616566E-03 -3.3612026520181814E-03 -3.4481507207609397E-03 + -3.5372836299720398E-03 -3.6286533734708835E-03 -3.7223130488268966E-03 + -3.8183168744337845E-03 -3.9167202065064251E-03 -4.0175795559930444E-03 + -4.1209526053731385E-03 -4.2268982253067548E-03 -4.3354764911225589E-03 + -4.4467486991128366E-03 -4.5607773825799133E-03 -4.6776263276515472E-03 + -4.7973605887752851E-03 -4.9200465038948711E-03 -5.0457517092567820E-03 + -5.1745451538042870E-03 -5.3064971131221378E-03 -5.4416792028778704E-03 + -5.5801643917358897E-03 -5.7220270136535819E-03 -5.8673427795592871E-03 + -6.0161887883105830E-03 -6.1686435369056117E-03 -6.3247869298724366E-03 + -6.4847002877830382E-03 -6.6484663548175534E-03 -6.8161693053076268E-03 + -6.9878947492041880E-03 -7.1637297363654137E-03 -7.3437627596093799E-03 + -7.5280837564375667E-03 -7.7167841093377706E-03 -7.9099566445865552E-03 + -8.1076956294485799E-03 -8.3100967676711310E-03 -8.5172571931781717E-03 + -8.7292754618459572E-03 -8.9462515412608110E-03 -9.1682867983212523E-03 + -9.3954839845817994E-03 -9.6279472191997360E-03 -9.8657819693505570E-03 + -1.0109095027981230E-02 -1.0357994488751502E-02 -1.0612589718010788E-02 + -1.0872991323667168E-02 -1.1139311120767270E-02 -1.1411662093640832E-02 + -1.1690158354416421E-02 -1.1974915097739586E-02 -1.2266048551500949E-02 + -1.2563675923384254E-02 -1.2867915343022731E-02 -1.3178885799566727E-02 + -1.3496707074443733E-02 -1.3821499669080004E-02 -1.4153384727363719E-02 + -1.4492483952610980E-02 -1.4838919518770395E-02 -1.5192813975640486E-02 + -1.5554290147813305E-02 -1.5923471027087355E-02 -1.6300479658071281E-02 + -1.6685439016686714E-02 -1.7078471881267945E-02 -1.7479700695982731E-02 + -1.7889247426231859E-02 -1.8307233405714569E-02 -1.8733779174860653E-02 + -1.9169004310248445E-02 -1.9613027244686207E-02 -2.0065965077623198E-02 + -2.0527933375481915E-02 -2.0999045961601712E-02 -2.1479414695358426E-02 + -2.1969149240127661E-02 -2.2468356819668030E-02 -2.2977141962542361E-02 + -2.3495606234170689E-02 -2.4023847956096397E-02 -2.4561961912071589E-02 + -2.5110039040518901E-02 -2.5668166112952362E-02 -2.6236425397941392E-02 + -2.6814894310161593E-02 -2.7403645044137857E-02 -2.8002744192179331E-02 + -2.8612252346160306E-02 -2.9232223682630339E-02 -2.9862705530853857E-02 + -3.0503737923371677E-02 -3.1155353128612305E-02 -3.1817575165156431E-02 + -3.2490419297259342E-02 -3.3173891511175106E-02 -3.3867987971968265E-02 + -3.4572694460325112E-02 -3.5287985789115794E-02 -3.6013825199253495E-02 + -3.6750163734601979E-02 -3.7496939595556042E-02 -3.8254077471072054E-02 + -3.9021487848835246E-02 -3.9799066303383375E-02 -4.0586692761956908E-02 + -4.1384230747950911E-02 -4.2191526601822446E-02 -4.3008408679417992E-02 + -4.3834686527657749E-02 -4.4670150037631903E-02 -4.5514568575200857E-02 + -4.6367690089227864E-02 -4.7229240197658777E-02 -4.8098921251771100E-02 + -4.8976411378906563E-02 -4.9861363504168407E-02 -5.0753404351617050E-02 + -5.1652133425575779E-02 -5.2557121972805057E-02 -5.3467911926362022E-02 + -5.4384014832119722E-02 -5.5304910759023357E-02 -5.6230047194261376E-02 + -5.7158837924752869E-02 -5.8090661906388313E-02 -5.9024862122700562E-02 + -5.9960744434753181E-02 -6.0897576424244260E-02 -6.1834586231943725E-02 + -6.2770961393864580E-02 -6.3705847677649932E-02 -6.4638347921959077E-02 + -6.5567520881806354E-02 -6.6492380083039454E-02 -6.7411892689376321E-02 + -6.8324978385664106E-02 -6.9230508281302394E-02 -7.0127303837965352E-02 + -7.1014135826124467E-02 -7.1889723315068987E-02 -7.2752732701458711E-02 + -7.3601776781722889E-02 -7.4435413873927728E-02 -7.5252146995043706E-02 + -7.6050423099867689E-02 -7.6828632388165022E-02 -7.7585107686945182E-02 + -7.8318123915104759E-02 -7.9025897638010989E-02 -7.9706586719930098E-02 + -8.0358290082562095E-02 -8.0979047578258856E-02 -8.1566839986846787E-02 + -8.2119589145312907E-02 -8.2635158219919638E-02 -8.3111352130645758E-02 + -8.3545918138141592E-02 -8.3936546603687462E-02 -8.4280871932909340E-02 + -8.4576473714266284E-02 -8.4820878063550598E-02 -8.5011559185852709E-02 + -8.5145941166611352E-02 -8.5221400003525460E-02 -8.5235265891165785E-02 + -8.5184825770263040E-02 -8.5067326153566741E-02 -8.4879976240205532E-02 + -8.4619951330340615E-02 -8.4284396551758539E-02 -8.3870430909813984E-02 + -8.3375151671829462E-02 -8.2795639096670356E-02 -8.2128961519738711E-02 + -8.1372180803065658E-02 -8.0522358159495100E-02 -7.9576560359188600E-02 + -7.8531866325781630E-02 -7.7385374128493903E-02 -7.6134208375358642E-02 + -7.4775528011451903E-02 -7.3306534524563274E-02 -7.1724480559187440E-02 + -7.0026678937956943E-02 -6.8210512087759925E-02 -6.6273441865696101E-02 + -6.4213019777795227E-02 -6.2026897580978763E-02 -5.9712838256167938E-02 + -5.7268727337599391E-02 -5.4692584580477092E-02 -5.1982575945875437E-02 + -4.9137025878459854E-02 -4.6154429849040404E-02 -4.3033467130239547E-02 + -3.9773013769625290E-02 -3.6372155720596745E-02 -3.2830202087049294E-02 + -2.9146698433448942E-02 -2.5321440107425854E-02 -2.1354485517337114E-02 + -1.7246169302531405E-02 -1.2997115329206934E-02 -8.6082494399319278E-03 + -4.0808118800320379E-03 5.8363068079553618E-04 5.3831736180394761E-03 + 1.0315563404114953E-02 1.5378187337845966E-02 2.0568064051442882E-02 + 2.5881834898756832E-02 3.1315756332191164E-02 3.6865693378904454E-02 + 4.2527114329627268E-02 4.8295086755579947E-02 5.4164274970476295E-02 + 6.0128939055319915E-02 6.6182935563600831E-02 7.2319720023428083E-02 + 7.8532351351062804E-02 8.4813498287023045E-02 9.1155447961416225E-02 + 9.7550116689281430E-02 1.0398906308932333E-01 1.1046350361044971E-01 + 1.1696433053989203E-01 1.2348213255419595E-01 1.3000721786003780E-01 + 1.3652963995546505E-01 1.4303922602381261E-01 1.4952560795199288E-01 + 1.5597825594218417E-01 1.6238651466109214E-01 1.6873964184382939E-01 + 1.7502684924018433E-01 1.8123734575963849E-01 1.8736038263795818E-01 + 1.9338530041275018E-01 1.9930157745806806E-01 2.0509887978932187E-01 + 2.1076711180946581E-01 2.1629646762612609E-01 2.2167748252733666E-01 + 2.2690108416118052E-01 2.3195864292248988E-01 2.3684202100829838E-01 + 2.4154361956361092E-01 2.4605642330090688E-01 2.5037404194137952E-01 + 2.5449074779410474E-01 2.5840150876190426E-01 2.6210259892610582E-01 + 2.6559309877153670E-01 2.6887268237251427E-01 2.7194096853573629E-01 + 2.7479752177115996E-01 2.7744185330151377E-01 2.7987342213023675E-01 + 2.8209163620096239E-01 2.8409585369613821E-01 2.8588538453723994E-01 + 2.8745949216328426E-01 2.8881739567681974E-01 2.8995827245615019E-01 + 2.9088126133802811E-01 2.9158546647557249E-01 2.9206996197103857E-01 + 2.9233379737220161E-01 2.9237600410476877E-01 2.9219560289225660E-01 + 2.9179161219050187E-01 2.9116305763797479E-01 2.9030898249721260E-01 + 2.8922845903867550E-01 2.8792060079778459E-01 2.8638457562001252E-01 + 2.8461961939815478E-01 2.8262505040086228E-01 2.8040028409177653E-01 + 2.7794484834225697E-01 2.7525839894987159E-01 2.7234073538446341E-01 + 2.6919181669440839E-01 2.6581177751904722E-01 2.6220094416216672E-01 + 2.5835985069181933E-01 2.5428925503966626E-01 2.4999015507747693E-01 + 2.4546380465257994E-01 2.4071172956499981E-01 2.3573574346851778E-01 + 2.3053796367571852E-01 2.2512082684360060E-01 2.1948710451172346E-01 + 2.1363991845952165E-01 2.0758275584346583E-01 2.0131948406842190E-01 + 1.9485436534105710E-01 1.8819207084654554E-01 1.8133769448331408E-01 + 1.7429676608418321E-01 1.6707526404615142E-01 1.5967962728526927E-01 + 1.5211676642765784E-01 1.4439407414283334E-01 1.3651943452116672E-01 + 1.2850123139362535E-01 1.2034835548901539E-01 1.1207021032182157E-01 + 1.0367671670253936E-01 9.5178315762141266E-02 8.6585970383106267E-02 + 7.7911164931258742E-02 6.9165903185525068E-02 6.0362704366584211E-02 + 5.1514597170167521E-02 4.2635111716346000E-02 3.3738269332346457E-02 + 2.4838570093076363E-02 1.5950978050358777E-02 7.0909040886352245E-03 + -1.7258136486723382E-03 -1.0482931812098025E-02 -1.9163826423272325E-02 + -2.7751520017098744E-02 -3.6228711386821898E-02 -4.4577807968003438E-02 + -5.2780960896679323E-02 -6.0820102777200631E-02 -6.8676988196247346E-02 + -7.6333237020952030E-02 -8.3770380520632001E-02 -9.0969910352876687E-02 + -9.7913330455231248E-02 -1.0458221188297788E-01 -1.1095825063112966E-01 + -1.1702332847412864E-01 -1.2275957684961156E-01 -1.2814944380256632E-01 + -1.3317576399270989E-01 -1.3782183175106552E-01 -1.4207147715091900E-01 + -1.4590914503359895E-01 -1.4931997690082072E-01 -1.5228989555240838E-01 + -1.5480569231126237E-01 -1.5685511663642338E-01 -1.5842696788016017E-01 + -1.5951118889634558E-01 -1.6009896115521163E-01 -1.6018280096415560E-01 + -1.5975665633599390E-01 -1.5881600398528170E-01 -1.5735794587056287E-01 + -1.5538130463617561E-01 -1.5288671724218558E-01 -1.4987672600581017E-01 + -1.4635586621310773E-01 -1.4233074939661752E-01 -1.3781014131395411E-01 + -1.3280503360509521E-01 -1.2732870805336372E-01 -1.2139679232800261E-01 + -1.1502730604600987E-01 -1.0824069595875714E-01 -1.0105985904615873E-01 + -9.3510152289052656E-02 -8.5619387890277218E-02 -7.7417812727938337E-02 + -6.8938070851734354E-02 -6.0215147876080045E-02 -5.1286296183156985E-02 + -4.2190939925844669E-02 -3.2970558915520122E-02 -2.3668550593583807E-02 + -1.4330069418751142E-02 -5.0018431549211546E-03 4.2680342830907448E-03 + 1.3430333576567800E-02 2.2434944281820111E-02 3.1231152349867237E-02 + 3.9767940347187392E-02 4.7994309571992452E-02 5.5859622978403453E-02 + 6.3313967523899228E-02 7.0308534245053400E-02 7.6796014044671290E-02 + 8.2731006842075169E-02 8.8070441399874813E-02 9.2774002797813587E-02 + 9.6804564180312594E-02 1.0012861906261877E-01 1.0271671014493892E-01 + 1.0454385025896538E-01 1.0558993076162242E-01 1.0584011240203749E-01 + 1.0528519342548587E-01 1.0392194944872149E-01 1.0175343945146931E-01 + 9.8789272086186278E-02 9.5045826420106477E-02 9.0546421198030372E-02 + 8.5321426759487298E-02 7.9408313868080546E-02 7.2851633922298598E-02 + 6.5702925323964018E-02 5.8020541190527110E-02 4.9869394117798539E-02 + 4.1320614336834149E-02 3.2451118367901717E-02 2.3343086159790513E-02 + 1.4083345716588810E-02 4.7626653569507356E-03 -4.5250449789557261E-03 + -1.3683620566499206E-02 -2.2615612560445822E-02 -3.1223336554268410E-02 + -3.9409991398015827E-02 -4.7080838858718020E-02 -5.4144432876336107E-02 + -6.0513885311457544E-02 -6.6108153228605498E-02 -7.0853330945878340E-02 + -7.4683928346653453E-02 -7.7544115335428487E-02 -7.9388910874486490E-02 + -8.0185293811319155E-02 -7.9913211751715799E-02 -7.8566463605190401E-02 + -7.6153431184028314E-02 -7.2697635430514690E-02 -6.8238093533094735E-02 + -6.2829454422373809E-02 -5.6541891958041463E-02 -4.9460737567126545E-02 + -4.1685837202460767E-02 -3.3330621276526425E-02 -2.4520880694925289E-02 + -1.5393247254394690E-02 -6.0933824530314150E-03 3.2261148651061234E-03 + 1.2408064715528152E-02 2.1293301398760744E-02 2.9723475902477883E-02 + 3.7544025275365975E-02 4.4607261233449789E-02 5.0775522754575884E-02 + 5.5924330366943900E-02 5.9945473490216061E-02 6.2749956807351057E-02 + 6.4270727508433378E-02 6.4465102636366081E-02 6.3316814957673731E-02 + 6.0837597047162260E-02 5.7068226857411752E-02 5.2078964153112327E-02 + 4.5969315988827364E-02 3.8867080998804433E-02 3.0926636676386423E-02 + 2.2326450987853168E-02 1.3265819429894007E-02 3.9608507282290961E-03 + -5.3602516069534839E-03 -1.4462539226159430E-02 -2.3110201558275135E-02 + -3.1072856105384690E-02 -3.8132096165319006E-02 -4.4088122390937845E-02 + -4.8766264247522409E-02 -5.2023181211175884E-02 -5.3752522614045860E-02 + -5.3889820511744978E-02 -5.2416392871715276E-02 -4.9362045670353023E-02 + -4.4806382856253248E-02 -3.8878563040175694E-02 -3.1755381336436052E-02 + -2.3657603745045105E-02 -1.4844539126565774E-02 -5.6068989938682142E-03 + 3.7419336761598072E-03 1.2876030848281664E-02 2.1468169882065437E-02 + 2.9201863803654339E-02 3.5783760038735207E-02 4.0955938908664537E-02 + 4.4507599625489697E-02 4.6285595664253214E-02 4.6203276912595799E-02 + 4.4247116065851418E-02 4.0480643760264570E-02 3.5045292308335495E-02 + 2.8157851737801724E-02 2.0104372760276656E-02 1.1230506247742399E-02 + 1.9284429189873242E-03 -7.3791964488586787E-03 -1.6257979299137842E-02 + -2.4282062337969274E-02 -3.1055481996336017E-02 -3.6233302412587251E-02 + -3.9541491597854923E-02 -4.0794351560388541E-02 -3.9908345798287760E-02 + -3.6911255320073361E-02 -3.1945756526902763E-02 -2.5266751044772766E-02 + -1.7232084197787739E-02 -8.2866551185588749E-03 1.0596682938985827E-03 + 1.0259483535276833E-02 1.8759361539294087E-02 2.6033757873554053E-02 + 3.1619326958386942E-02 3.5147408493847170E-02 3.6372353701940217E-02 + 3.5193411918350279E-02 3.1668123013420459E-02 2.6015564919346243E-02 + 1.8608381909441672E-02 9.9532470404316929E-03 6.6025442776125837E-04 + -8.5973584599954439E-03 -1.7130878649194201E-02 -2.4287958303578886E-02 + -2.9505025315369606E-02 -3.2355827037696468E-02 -3.2592012684323400E-02 + -3.0171529368806776E-02 -2.5271469676447715E-02 -1.8282952313625325E-02 + -9.7870056229622440E-03 -5.1205500909412593E-04 8.7246170171217628E-03 + 1.7087311158928295E-02 2.3798564684202290E-02 2.8215145240829756E-02 + 2.9895882662728440E-02 2.8653901839021320E-02 2.4586672172754911E-02 + 1.8078944592302294E-02 9.7760350327855874E-03 5.2786772493071789E-04 + -8.6925453473615834E-03 -1.6889276033429743E-02 -2.3152564946063214E-02 + -2.6765064152973216E-02 -2.7292629072269151E-02 -2.4647630474658334E-02 + -1.9114895592064956E-02 -1.1334027154734628E-02 -2.2367259646785867E-03 + 7.0566167341050015E-03 1.5371038680828352E-02 2.1626726749728112E-02 + 2.4985593191757190E-02 2.4974505175489749E-02 2.1566193875635228E-02 + 1.5202979257435445E-02 6.7552269143463161E-03 -2.5847497120885876E-03 + -1.1462886067201814E-02 -1.8557909426941001E-02 -2.2783162064411312E-02 + -2.3464765878463297E-02 -2.0465871034794341E-02 -1.4232484840973364E-02 + -5.7469298893152556E-03 3.6108240218112458E-03 1.2277858992945055E-02 + 1.8768038974645955E-02 2.1934648901420387E-02 2.1189061822058573E-02 + 1.6631931309613372E-02 9.0654061911598777E-03 -1.2564922923345600E-04 + -9.2112839782347421E-03 -1.6436158390809023E-02 -2.0364390379135379E-02 + -2.0181787132246481E-02 -1.5889734945626351E-02 -8.3412802327397072E-03 + 9.0116068469876191E-04 9.8701451842438479E-03 1.6605653511216525E-02 + 1.9591856391982420E-02 1.8120415644016806E-02 1.2489895047814385E-02 + 3.9807625811643420E-03 -5.4063151652333861E-03 -1.3404161913901886E-02 + -1.8027483143498974E-02 -1.8084791280101115E-02 -1.3518968985363639E-02 + -5.4731840214022756E-03 3.9578810997689673E-03 1.2249730083128929E-02 + 1.7121019545602141E-02 1.7181203070309060E-02 1.2365760044406973E-02 + 4.0150977176320185E-03 -5.4554550801725636E-03 -1.3228910122614566E-02 + -1.6925378387187856E-02 -1.5358887135444295E-02 -8.9658687568389649E-03 + 2.5979851631584988E-04 9.3447081411659558E-03 1.5276650575885588E-02 + 1.6019284244663971E-02 1.1256948782828761E-02 2.5858619189555311E-03 + -6.9627023266567124E-03 -1.3950006825271076E-02 -1.5774945249477590E-02 + -1.1687297032898569E-02 -3.1625623465167804E-03 6.5611661232670010E-03 + 1.3672234943643878E-02 1.5284108506067404E-02 1.0657417209107609E-02 + 1.6136108676331055E-03 -8.1041065899026699E-03 -1.4338465688902234E-02 + -1.4310217558285163E-02 -7.9222495198189354E-03 2.0567640707450335E-03 + 1.1111981941462297E-02 1.4996558931771160E-02 1.1761703712724751E-02 + 2.8222690739043341E-03 -7.5526332761974620E-03 -1.4211454086456301E-02 + -1.3684945350511110E-02 -6.0725377802883992E-03 4.8032192723535374E-03 + 1.3217251509695542E-02 1.4533595362961397E-02 7.8272009112023751E-03 + -3.3699978780994230E-03 -1.2803634402883731E-02 -1.4946340073318302E-02 + + + -4.9314886714659302E-19 -9.7900754095492090E-18 -7.9265271290275940E-17 + -2.7113150286559094E-16 -6.5127370669753149E-16 -1.2892489895539080E-15 + -2.2576476983047012E-15 -3.6335292974911445E-15 -5.4969926450808083E-15 + -7.9326431909210989E-15 -1.1028728603310556E-14 -1.4878452114181756E-14 + -1.9578533417238683E-14 -2.5230748815720816E-14 -3.1942052021329704E-14 + -3.9822739503452425E-14 -4.8990212684897805E-14 -5.9565449290232199E-14 + -7.1675983120895169E-14 -8.5454243987280733E-14 -1.0103918085168451E-13 + -1.1857423976179946E-13 -1.3821106772890315E-13 -1.6010643816345148E-13 + -1.8442399188370910E-13 -2.1133487453143294E-13 -2.4101660006584070E-13 + -2.7365478855776482E-13 -3.0944175105440799E-13 -3.4857764222153882E-13 + -3.9127274854650637E-13 -4.3774306495249753E-13 -4.8821452884604087E-13 + -5.4292306637290135E-13 -6.0211026601763311E-13 -6.6603323353653329E-13 + -7.3495403230592788E-13 -8.0914629544274285E-13 -8.8889361142270421E-13 + -9.7449270800889816E-13 -1.0662507022471440E-12 -1.1644844385351441E-12 + -1.2695239082532550E-12 -1.3817141900317225E-12 -1.5014078605218738E-12 + -1.6289760975554524E-12 -1.7648010457902290E-12 -1.9092782320274905E-12 + -2.0628179485237612E-12 -2.2258478036351246E-12 -2.3988103082339995E-12 + -2.5821600096238756E-12 -2.7763754049384263E-12 -2.9819432896218576E-12 + -3.1993759857828378E-12 -3.4292002053578456E-12 -3.6719562625994668E-12 + -3.9282153186370667E-12 -4.1985612595417503E-12 -4.4835972113533657E-12 + -4.7839514004009201E-12 -5.1002704936128634E-12 -5.4332286686923733E-12 + -5.7835167462954629E-12 -6.1518577780678335E-12 -6.5389890573515512E-12 + -6.9456838855391427E-12 -7.3727329716989996E-12 -7.8209603805863300E-12 + -8.2912175744861452E-12 -8.7843779432393703E-12 -9.3013558879520743E-12 + -9.8430879632643378E-12 -1.0410540693946637E-11 -1.1004722458854170E-11 + -1.1626668379370308E-11 -1.2277446114902049E-11 -1.2958168849008058E-11 + -1.3669975154014498E-11 -1.4414043679085082E-11 -1.5191601962993977E-11 + -1.6003905674261916E-11 -1.6852255445467638E-11 -1.7737997510371358E-11 + -1.8662517889144188E-11 -1.9627254311242440E-11 -2.0633679069723149E-11 + -2.1683328402349763E-11 -2.2777777004807729E-11 -2.3918649325846666E-11 + -2.5107629889163885E-11 -2.6346455256781988E-11 -2.7636909474617828E-11 + -2.8980846159094901E-11 -3.0380168486038115E-11 -3.1836850110860860E-11 + -3.3352914319777170E-11 -3.4930459340046294E-11 -3.6571650419613175E-11 + -3.8278708719128917E-11 -4.0053940939106763E-11 -4.1899715102855485E-11 + -4.3818489607821643E-11 -4.5812770579976663E-11 -4.7885174389167580E-11 + -5.0038385237244506E-11 -5.2275168023370071E-11 -5.4598375367852443E-11 + -5.7010964654179800E-11 -5.9515957584541983E-11 -6.2116489470221725E-11 + -6.4815787501008117E-11 -6.7617181405966211E-11 -7.0524096500530858E-11 + -7.3540068297038166E-11 -7.6668744525548198E-11 -7.9913880339631508E-11 + -8.3279347203216227E-11 -8.6769137893928234E-11 -9.0387365578144766E-11 + -9.4138265331211955E-11 -9.8026211027571894E-11 -1.0205570439324503E-10 + -1.0623137520381775E-10 -1.1055800835123816E-10 -1.1504053441769479E-10 + -1.1968402047580332E-10 -1.2449369533143762E-10 -1.2947495374622329E-10 + -1.3463333563074985E-10 -1.3997455990020211E-10 -1.4550451617477632E-10 + -1.5122927765352034E-10 -1.5715507842396467E-10 -1.6328836908209945E-10 + -1.6963577271444407E-10 -1.7620411951323220E-10 -1.8300044215022187E-10 + -1.9003198139164020E-10 -1.9730619706790029E-10 -2.0483077563988282E-10 + -2.1261362652074451E-10 -2.2066289076804223E-10 -2.2898696607805775E-10 + -2.3759447918859176E-10 -2.4649433285214656E-10 -2.5569569142991821E-10 + -2.6520796762619948E-10 -2.7504087843838465E-10 -2.8520442265983188E-10 + -2.9570888600906222E-10 -3.0656485461712631E-10 -3.1778325237017791E-10 + -3.2937529794745890E-10 -3.4135254742016031E-10 -3.5372690765911833E-10 + -3.6651061203093612E-10 -3.7971626982487525E-10 -3.9335685956769023E-10 + -4.0744574170850451E-10 -4.2199665650551207E-10 -4.3702375123935971E-10 + -4.5254158502459037E-10 -4.6856516156040128E-10 -4.8510988995713883E-10 + -5.0219163719590184E-10 -5.1982675966598239E-10 -5.3803204702917047E-10 + -5.5682481645820991E-10 -5.7622284840482198E-10 -5.9624448546984120E-10 + -6.1690856114495485E-10 -6.3823448046941412E-10 -6.6024219491507103E-10 + -6.8295224658291068E-10 -7.0638575195471802E-10 -7.3056446911988610E-10 + -7.5551074962953014E-10 -7.8124760366872130E-10 -8.0779871988404802E-10 + -8.3518845656490136E-10 -8.6344186530722967E-10 -8.9258473327363853E-10 + -9.2264358649178774E-10 -9.5364569896212096E-10 -9.8561915072698391E-10 + -1.0185927873086356E-09 -1.0525963427399769E-09 -1.0876603658037890E-09 + -1.1238162809155890E-09 -1.1610964009208654E-09 -1.1995339843085853E-09 + -1.2391632590470610E-09 -1.2800193774860432E-09 -1.3221385252497108E-09 + -1.3655579415604710E-09 -1.4103158972750945E-09 -1.4564517593038997E-09 + -1.5040060204416759E-09 -1.5530203325701297E-09 -1.6035375159837672E-09 + -1.6556016303842458E-09 -1.7092579825198819E-09 -1.7645531511006848E-09 + -1.8215350456614443E-09 -1.8802529465696788E-09 -1.9407575192834349E-09 + -2.0031008880893400E-09 -2.0673365858236816E-09 -2.1335197794072615E-09 + -2.2017070788098654E-09 -2.2719567593375116E-09 -2.3443287619184450E-09 + -2.4188846599622474E-09 -2.4956877987432482E-09 -2.5748033381433743E-09 + -2.6562982286123580E-09 -2.7402413414143794E-09 -2.8267034911343630E-09 + -2.9157574756125031E-09 -3.0074781405503527E-09 -3.1019424404524296E-09 + -3.1992295153955685E-09 -3.2994207164001903E-09 -3.4025996846523107E-09 + -3.5088524051587763E-09 -3.6182673295656537E-09 -3.7309352809633172E-09 + -3.8469497654473069E-09 -3.9664068190579183E-09 -4.0894052240332351E-09 + -4.2160465280550988E-09 -4.3464350806230603E-09 -4.4806782054995398E-09 + -4.6188861908447203E-09 -4.7611724550225869E-09 -4.9076536057941144E-09 + -5.0584494031120932E-09 -5.2136830947091182E-09 -5.3734812961613897E-09 + -5.5379741844241574E-09 -5.7072955468791064E-09 -5.8815829560308493E-09 + -6.0609777635859469E-09 -6.2456253230287933E-09 -6.4356750204247895E-09 + -6.6312804062596066E-09 -6.8325992797605807E-09 -7.0397939200605139E-09 + -7.2530310389491049E-09 -7.4724820654814706E-09 -7.6983231206903854E-09 + -7.9307352779241807E-09 -8.1699046912523408E-09 -8.4160226056395070E-09 + -8.6692856379029176E-09 -8.9298958547476398E-09 -9.1980609116860440E-09 + -9.4739943045272761E-09 -9.7579153559399037E-09 -1.0050049599216756E-08 + -1.0350628711316268E-08 -1.0659890839493390E-08 -1.0978080802068019E-08 + -1.1305450119021343E-08 -1.1642257295420561E-08 -1.1988768021271561E-08 + -1.2345255374974097E-08 -1.2711999922645098E-08 -1.3089290102743337E-08 + -1.3477422253612602E-08 -1.3876700905597134E-08 -1.4287439085576171E-08 + -1.4709958451617166E-08 -1.5144589521335967E-08 -1.5591672008332412E-08 + -1.6051554969733201E-08 -1.6524597128435849E-08 -1.7011167091719496E-08 + -1.7511643699160291E-08 -1.8026416227999897E-08 -1.8555884583463201E-08 + -1.9100459944283000E-08 -1.9660564620191025E-08 -2.0236632738218343E-08 + -2.0829110203724503E-08 -2.1438455416904752E-08 -2.2065139284155179E-08 + -2.2709645682938666E-08 -2.3372471936768151E-08 -2.4054129016323906E-08 + -2.4755141871965267E-08 -2.5476050016486903E-08 -2.6217407739643751E-08 + -2.6979784707589799E-08 -2.7763766089100092E-08 -2.8569953282045304E-08 + -2.9398964238377775E-08 -3.0251433733359352E-08 -3.1128014148242575E-08 + -3.2029375746319028E-08 -3.2956207283951792E-08 -3.3909216315542039E-08 + -3.4889129896637586E-08 -3.5896695058927300E-08 -3.6932679332373800E-08 + -3.7997871283801197E-08 -3.9093081216353643E-08 -4.0219141586594774E-08 + -4.1376907735218769E-08 -4.2567258390347851E-08 -4.3791096544611396E-08 + -4.5049349762672136E-08 -4.6342971197042423E-08 -4.7672940000360988E-08 + -4.9040262217522056E-08 -5.0445971516645815E-08 -5.1891129820706670E-08 + -5.3376828187142196E-08 -5.4904187507839705E-08 -5.6474359298901144E-08 + -5.8088526806141630E-08 -5.9747905470329059E-08 -6.1453744149790286E-08 + -6.3207325769538742E-08 -6.5009968454148931E-08 -6.6863026264500248E-08 + -6.8767890384291657E-08 -7.0725990054404699E-08 -7.2738793510590776E-08 + -7.4807809235804800E-08 -7.6934586881842429E-08 -7.9120718455592493E-08 + -8.1367839482778594E-08 -8.3677630221649409E-08 -8.6051816738427219E-08 + -8.8492172276684581E-08 -9.1000518560346011E-08 -9.3578727122411742E-08 + -9.6228720345004736E-08 -9.8952473325546995E-08 -1.0175201496118426E-07 + -1.0462942956519364E-07 -1.0758685832918812E-07 -1.1062650078761957E-07 + -1.1375061666665731E-07 -1.1696152710041298E-07 -1.2026161661028727E-07 + -1.2365333481188891E-07 -1.2713919809038087E-07 -1.3072179139949373E-07 + -1.3440377012489350E-07 -1.3818786206123180E-07 -1.4207686938974422E-07 + -1.4607367054086813E-07 -1.5018122256744492E-07 -1.5440256276573799E-07 + -1.5874081143004779E-07 -1.6319917381622342E-07 -1.6778094218740314E-07 + -1.7248949887621340E-07 -1.7732831794913869E-07 -1.8230096835427352E-07 + -1.8741111587730887E-07 -1.9266252624204775E-07 -1.9805906759817426E-07 + -2.0360471335494973E-07 -2.0930354513780506E-07 -2.1515975548946944E-07 + -2.2117765091601327E-07 -2.2736165529546361E-07 -2.3371631266583986E-07 + -2.4024629056980487E-07 -2.4695638359017279E-07 -2.5385151660721855E-07 + -2.6093674841647659E-07 -2.6821727511527003E-07 -2.7569843438327023E-07 + -2.8338570867207336E-07 -2.9128472957934089E-07 -2.9940128160042712E-07 + -3.0774130643045087E-07 -3.1631090707263494E-07 -3.2511635255066183E-07 + -3.3416408184696656E-07 -3.4346070918265880E-07 -3.5301302793690921E-07 + -3.6282801641958373E-07 -3.7291284210058289E-07 -3.8327486692081729E-07 + -3.9392165303507361E-07 -4.0486096761103771E-07 -4.1610078871140733E-07 + -4.2764931085016176E-07 -4.3951495095620407E-07 -4.5170635414095017E-07 + -4.6423240049160558E-07 -4.7710221058236017E-07 -4.9032515262366333E-07 + -5.0391084875399424E-07 -5.1786918241773882E-07 -5.3221030467241368E-07 + -5.4694464219585154E-07 -5.6208290416554117E-07 -5.7763609025814645E-07 + -5.9361549827213159E-07 -6.1003273231854900E-07 -6.2689971105842070E-07 + -6.4422867622310187E-07 -6.6203220123489293E-07 -6.8032320064852131E-07 + -6.9911493830848462E-07 -7.1842103793517588E-07 -7.3825549249430895E-07 + -7.5863267361754967E-07 -7.7956734280695487E-07 -8.0107466091194524E-07 + -8.2317019965826659E-07 -8.4586995268405161E-07 -8.6919034662031622E-07 + -8.9314825307442962E-07 -9.1776100013869922E-07 -9.4304638586654502E-07 + -9.6902268947677536E-07 -9.9570868545828136E-07 -1.0231236563992886E-06 + -1.0512874070525526E-06 -1.0802202781514314E-06 -1.1099431609767489E-06 + -1.1404775123824469E-06 -1.1718453695460852E-06 -1.2040693664075856E-06 + -1.2371727493294400E-06 -1.2711793935040281E-06 -1.3061138203387478E-06 + -1.3420012144105189E-06 -1.3788674418509443E-06 -1.4167390683450088E-06 + -1.4556433783347615E-06 -1.4956083942057620E-06 -1.5366628964131443E-06 + -1.5788364433404263E-06 -1.6221593934194201E-06 -1.6666629255142453E-06 + -1.7123790619254695E-06 -1.7593406905104179E-06 -1.8075815887101378E-06 + -1.8571364469396177E-06 -1.9080408934306309E-06 -1.9603315198476832E-06 + -2.0140459067023779E-06 -2.0692226504960270E-06 -2.1259013910883844E-06 + -2.1841228392797863E-06 -2.2439288066744935E-06 -2.3053622344331790E-06 + -2.3684672244223840E-06 -2.4332890700422449E-06 -2.4998742887356213E-06 + -2.5682706545759529E-06 -2.6385272326926094E-06 -2.7106944136449818E-06 + -2.7848239492545147E-06 -2.8609689895043885E-06 -2.9391841202271604E-06 + -3.0195254013736734E-06 -3.1020504075294957E-06 -3.1868182679283960E-06 + -3.2738897088159469E-06 -3.3633270967560871E-06 -3.4551944822723885E-06 + -3.5495576454682858E-06 -3.6464841427888223E-06 -3.7460433553239923E-06 + -3.8483065362782792E-06 -3.9533468639058198E-06 -4.0612394915032506E-06 + -4.1720616011265833E-06 -4.2858924591237250E-06 -4.4028134705849647E-06 + -4.5229082388918138E-06 -4.6462626237700880E-06 -4.7729648023871346E-06 + -4.9031053317661062E-06 -5.0367772126223766E-06 -5.1740759566455430E-06 + -5.3150996515798278E-06 -5.4599490336498321E-06 -5.6087275560475522E-06 + -5.7615414644490040E-06 -5.9184998703562154E-06 -6.0797148305746409E-06 + -6.2453014239789566E-06 -6.4153778345059974E-06 -6.5900654348425365E-06 + -6.7694888712337439E-06 -6.9537761533677728E-06 -7.1430587430215767E-06 + -7.3374716485197548E-06 -7.5371535196413556E-06 -7.7422467458298939E-06 + -7.9528975566833918E-06 -8.1692561259235580E-06 -8.3914766770178072E-06 + -8.6197175927537815E-06 -8.8541415267620880E-06 -9.0949155184255169E-06 + -9.3422111121584483E-06 -9.5962044775941934E-06 -9.8570765339287686E-06 + -1.0125013078691898E-05 -1.0400204918586220E-05 -1.0682848004715041E-05 + -1.0973143570428407E-05 -1.1271298273938254E-05 -1.1577524345472189E-05 + -1.1892039734165987E-05 -1.2215068265910824E-05 -1.2546839798847531E-05 + -1.2887590386297137E-05 -1.3237562444560659E-05 -1.3597004922765746E-05 + -1.3966173479584857E-05 -1.4345330664531715E-05 -1.4734746100619258E-05 + -1.5134696678709567E-05 -1.5545466748944718E-05 -1.5967348325691304E-05 + -1.6400641290181506E-05 -1.6845653604686838E-05 -1.7302701528013457E-05 + -1.7772109840671022E-05 -1.8254212073288863E-05 -1.8749350740854860E-05 + -1.9257877587370635E-05 -1.9780153831344473E-05 -2.0316550421873183E-05 + -2.0867448300717947E-05 -2.1433238670700089E-05 -2.2014323271659546E-05 + -2.2611114664051546E-05 -2.3224036520240977E-05 -2.3853523923891586E-05 + -2.4500023674563746E-05 -2.5163994607023182E-05 -2.5845907909973752E-05 + -2.6546247462656841E-05 -2.7265510173297651E-05 -2.8004206331772877E-05 + -2.8762859966940456E-05 -2.9542009218620648E-05 -3.0342206715622130E-05 + -3.1164019965191570E-05 -3.2008031754442225E-05 -3.2874840559802037E-05 + -3.3765060970155410E-05 -3.4679324117566300E-05 -3.5618278127435420E-05 + -3.6582588567640212E-05 -3.7572938924820067E-05 -3.8590031081322901E-05 + -3.9634585811920071E-05 -4.0707343290625088E-05 -4.1809063613704621E-05 + -4.2940527332992328E-05 -4.4102536007274839E-05 -4.5295912766054118E-05 + -4.6521502890952192E-05 -4.7780174408745889E-05 -4.9072818703250898E-05 + -5.0400351145563654E-05 -5.1763711733905799E-05 -5.3163865760885419E-05 + -5.4601804487849446E-05 -5.6078545846362705E-05 -5.7595135154391774E-05 + -5.9152645849215280E-05 -6.0752180247017260E-05 -6.2394870315226990E-05 + -6.4081878472261933E-05 -6.5814398400493169E-05 -6.7593655893249572E-05 + -6.9420909710937015E-05 -7.1297452469296682E-05 -7.3224611549476413E-05 + -7.5203750028981405E-05 -7.7236267642894003E-05 -7.9323601767024854E-05 + -8.1467228429723499E-05 -8.3668663347168413E-05 -8.5929462991886607E-05 + -8.8251225687349742E-05 -9.0635592727411629E-05 -9.3084249534744422E-05 + -9.5598926842787837E-05 -9.8181401911630157E-05 -1.0083349977939075E-04 + -1.0355709454283654E-04 -1.0635411067270507E-04 -1.0922652436978094E-04 + -1.1217636494904388E-04 -1.1520571626627422E-04 -1.1831671818309367E-04 + -1.2151156806758533E-04 -1.2479252233775053E-04 -1.2816189804647354E-04 + -1.3162207450773198E-04 -1.3517549496648901E-04 -1.3882466831459278E-04 + -1.4257217084915705E-04 -1.4642064808303553E-04 -1.5037281659988671E-04 + -1.5443146595988159E-04 -1.5859946065743070E-04 -1.6287974212884692E-04 + -1.6727533081704838E-04 -1.7178932828897651E-04 -1.7642491940838805E-04 + -1.8118537457255374E-04 -1.8607405200217605E-04 -1.9109440009547956E-04 + -1.9624995984571380E-04 -2.0154436732004890E-04 -2.0698135621198703E-04 + -2.1256476045283757E-04 -2.1829851689850299E-04 -2.2418666808641052E-04 + -2.3023336506708658E-04 -2.3644287031076612E-04 -2.4281956068946062E-04 + -2.4936793054431799E-04 -2.5609259482804145E-04 -2.6299829233512076E-04 + -2.7008988901716012E-04 -2.7737238138745820E-04 -2.8485090001702300E-04 + -2.9253071312082633E-04 -3.0041723024136805E-04 -3.0851600603210591E-04 + -3.1683274413865143E-04 -3.2537330118654749E-04 -3.3414369087378636E-04 + -3.4315008817052282E-04 -3.5239883363432029E-04 -3.6189643783822613E-04 + -3.7164958591527988E-04 -3.8166514223002360E-04 -3.9195015516373165E-04 + -4.0251186204041744E-04 -4.1335769417206092E-04 -4.2449528204559298E-04 + -4.3593246064347170E-04 -4.4767727490776360E-04 -4.5973798535058763E-04 + -4.7212307381102551E-04 -4.8484124936720973E-04 -4.9790145440360798E-04 + -5.1131287084114994E-04 -5.2508492653438469E-04 -5.3922730183193616E-04 + -5.5374993631938810E-04 -5.6866303573565214E-04 -5.8397707907438740E-04 + -5.9970282587501380E-04 -6.1585132370525883E-04 -6.3243391584220259E-04 + -6.4946224916059164E-04 -6.6694828222320552E-04 -6.8490429359333688E-04 + -7.0334289036183247E-04 -7.2227701689948833E-04 -7.4171996384982401E-04 + -7.6168537734803282E-04 -7.8218726849000491E-04 -8.0324002305439172E-04 + -8.2485841147694457E-04 -8.4705759908587771E-04 -8.6985315662036725E-04 + -8.9326107100870088E-04 -9.1729775644827627E-04 -9.4198006576729789E-04 + -9.6732530209163762E-04 -9.9335123081404990E-04 -1.0200760918842654E-03 + -1.0475186124236371E-03 -1.0756980196649586E-03 -1.1046340542427012E-03 + -1.1343469838225621E-03 -1.1648576171040079E-03 -1.1961873181765147E-03 + -1.2283580212610749E-03 -1.2613922458398193E-03 -1.2953131121779269E-03 + -1.3301443572637959E-03 -1.3659103511506384E-03 -1.4026361137447541E-03 + -1.4403473320257257E-03 -1.4790703777141797E-03 -1.5188323254120633E-03 + -1.5596609712139268E-03 -1.6015848517985185E-03 -1.6446332640336827E-03 + -1.6888362850824706E-03 -1.7342247930466905E-03 -1.7808304881270411E-03 + -1.8286859143674869E-03 -1.8778244819452662E-03 -1.9282804900428102E-03 + -1.9800891503306810E-03 -2.0332866110470676E-03 -2.0879099817080276E-03 + -2.1439973584741791E-03 -2.2015878501508786E-03 -2.2607216048966382E-03 + -2.3214398375910376E-03 -2.3837848579452291E-03 -2.4478000993167028E-03 + -2.5135301482878607E-03 -2.5810207749968638E-03 -2.6503189642768433E-03 + -2.7214729475602004E-03 -2.7945322356612004E-03 -2.8695476523505582E-03 + -2.9465713688457741E-03 -3.0256569391523907E-03 -3.1068593363398683E-03 + -3.1902349897404104E-03 -3.2758418231115484E-03 -3.3637392937763281E-03 + -3.4539884327680079E-03 -3.5466518860055485E-03 -3.6417939565316854E-03 + -3.7394806478177347E-03 -3.8397797082002595E-03 -3.9427606764216349E-03 + -4.0484949283705824E-03 -4.1570557249857960E-03 -4.2685182613974859E-03 + -4.3829597173187657E-03 -4.5004593087033485E-03 -4.6210983407471229E-03 + -4.7449602622011396E-03 -4.8721307210824764E-03 -5.0026976218026202E-03 + -5.1367511837033478E-03 -5.2743840011291350E-03 -5.4156911049674013E-03 + -5.5607700257617474E-03 -5.7097208584055963E-03 -5.8626463284788891E-03 + -6.0196518602205640E-03 -6.1808456462446254E-03 -6.3463387189608622E-03 + -6.5162450238171795E-03 -6.6906814943456074E-03 -6.8697681290900729E-03 + -7.0536280704549823E-03 -7.2423876854905544E-03 -7.4361766487216815E-03 + -7.6351280269875187E-03 -7.8393783664082485E-03 -8.0490677814891391E-03 + -8.2643400464164178E-03 -8.4853426886157251E-03 -8.7122270845862368E-03 + -8.9451485581077527E-03 -9.1842664808303876E-03 -9.4297443753393849E-03 + -9.6817500207200830E-03 -9.9404555606908383E-03 -1.0206037614367926E-02 + -1.0478677389716305E-02 -1.0758560799730889E-02 -1.1045878581422780E-02 + -1.1340826417681181E-02 -1.1643605062043275E-02 -1.1954420466468255E-02 + -1.2273483912155752E-02 -1.2601012143473247E-02 -1.2937227505085389E-02 + -1.3282358082330891E-02 -1.3636637844891455E-02 -1.4000306793895134E-02 + -1.4373611112432972E-02 -1.4756803319637239E-02 -1.5150142428325908E-02 + -1.5553894106360858E-02 -1.5968330841739004E-02 -1.6393732111468332E-02 + -1.6830384554400210E-02 -1.7278582148000751E-02 -1.7738626389173746E-02 + -1.8210826479228032E-02 -1.8695499513028398E-02 -1.9192970672459560E-02 + -1.9703573424240516E-02 -2.0227649722186096E-02 -2.0765550213992599E-02 + -2.1317634452659585E-02 -2.1884271112570776E-02 -2.2465838210355655E-02 + -2.3062723330637486E-02 -2.3675323856678452E-02 -2.4304047206074698E-02 + -2.4949311071563052E-02 -2.5611543666989207E-02 -2.6291183978581247E-02 + -2.6988682021558907E-02 -2.7704499102190666E-02 -2.8439108085359210E-02 + -2.9192993667749571E-02 -2.9966652656711557E-02 -3.0760594254872292E-02 + -3.1575340350615565E-02 -3.2411425814465801E-02 -3.3269398801480360E-02 + -3.4149821059700644E-02 -3.5053268244760863E-02 -3.5980330240723529E-02 + -3.6931611487183109E-02 -3.7907731312727184E-02 -3.8909324274848466E-02 + -3.9937040506290801E-02 -4.0991546067984365E-02 -4.2073523308529842E-02 + -4.3183671230394204E-02 -4.4322705862724514E-02 -4.5491360640969765E-02 + -4.6690386793265655E-02 -4.7920553733620752E-02 -4.9182649461936442E-02 + -5.0477480970936281E-02 -5.1805874659935428E-02 -5.3168676755547289E-02 + -5.4566753739247506E-02 -5.6000992781845518E-02 -5.7472302184870518E-02 + -5.8981611828775288E-02 -6.0529873627987674E-02 -6.2118061992777800E-02 + -6.3747174297819398E-02 -6.5418231357490045E-02 -6.7132277907726814E-02 + -6.8890383094453805E-02 -7.0693640968414337E-02 -7.2543170986301767E-02 + -7.4440118518114676E-02 -7.6385655360532809E-02 -7.8380980256184438E-02 + -8.0427319418632640E-02 -8.2525927062866294E-02 -8.4678085941117212E-02 + -8.6885107883703225E-02 -8.9148334344738775E-02 -9.1469136952328237E-02 + -9.3848918063046044E-02 -9.6289111320247214E-02 -9.8791182215999182E-02 + -1.0135662865613354E-01 -1.0398698152809957E-01 -1.0668380527106863E-01 + -1.0944869844792501E-01 -1.1228329431858665E-01 -1.1518926141408356E-01 + -1.1816830411085820E-01 -1.2122216320465570E-01 -1.2435261648332845E-01 + -1.2756147929780717E-01 -1.3085060513072178E-01 -1.3422188616129016E-01 + -1.3767725382659329E-01 -1.4121867937738128E-01 -1.4484817442766534E-01 + -1.4856779149794852E-01 -1.5237962454963624E-01 -1.5628580951075735E-01 + -1.6028852479064956E-01 -1.6438999178364461E-01 -1.6859247535917399E-01 + -1.7289828433764001E-01 -1.7730977195034400E-01 -1.8182933628216058E-01 + -1.8645942069437998E-01 -1.9120251422766585E-01 -1.9606115198152874E-01 + -2.0103791546942759E-01 -2.0613543294760095E-01 -2.1135637971453977E-01 + -2.1670347837996623E-01 -2.2217949910035531E-01 -2.2778725977874070E-01 + -2.3352962622612383E-01 -2.3940951228196225E-01 -2.4542987989101345E-01 + -2.5159373913287725E-01 -2.5790414820247853E-01 -2.6436421333663107E-01 + -2.7097708868483794E-01 -2.7774597611966578E-01 -2.8467412498357536E-01 + -2.9176483176825374E-01 -2.9902143972231493E-01 -3.0644733838349025E-01 + -3.1404596303008986E-01 -3.2182079404860453E-01 -3.2977535621111898E-01 + -3.3791321785874262E-01 -3.4623798998536165E-01 -3.5475332521641911E-01 + -3.6346291667718389E-01 -3.7237049674467682E-01 -3.8147983567728577E-01 + -3.9079474011572146E-01 -4.0031905144861590E-01 -4.1005664403656550E-01 + -4.2001142328680280E-01 -4.3018732357197814E-01 -4.4058830598503312E-01 + -4.5121835592246867E-01 -4.6208148048803954E-01 -4.7318170570831436E-01 + -4.8452307355151852E-01 -4.9610963874089642E-01 -5.0794546535292184E-01 + -5.2003462319121374E-01 -5.3238118392620037E-01 -5.4498921699006231E-01 + -5.5786278521698796E-01 -5.7100594021756657E-01 -5.8442271747641661E-01 + -5.9811713116152487E-01 -6.1209316863356988E-01 -6.2635478464333516E-01 + -6.4090589520458685E-01 -6.5575037113003531E-01 -6.7089203121718399E-01 + -6.8633463507085601E-01 -7.0208187554886081E-01 -7.1813737081683338E-01 + -7.3450465599831949E-01 -7.5118717440540983E-01 -7.6818826833558218E-01 + -7.8551116941919330E-01 -8.0315898850424128E-01 -8.2113470505954067E-01 + -8.3944115608579295E-01 -8.5808102451431501E-01 -8.7705682707957133E-01 + -8.9637090165089139E-01 -9.1602539400476113E-01 -9.3602224402323708E-01 + -9.5636317130290716E-01 -9.7704966015731098E-01 -9.9808294399833497E-01 + -1.0194639890789574E+00 -1.0411934775849570E+00 -1.0632717900571302E+00 + -1.0856989871321261E+00 -1.1084747905853027E+00 -1.1315985636638122E+00 + -1.1550692906948532E+00 -1.1788855559582532E+00 -1.2030455218098961E+00 + -1.2275469060475526E+00 -1.2523869585064138E+00 -1.2775624368789353E+00 + -1.3030695817487890E+00 -1.3289040908349461E+00 -1.3550610924410735E+00 + -1.3815351181077167E+00 -1.4083200744661564E+00 -1.4354092142969335E+00 + -1.4627951067954517E+00 -1.4904696070517256E+00 -1.5184238247540673E+00 + -1.5466480921275294E+00 -1.5751319311244603E+00 -1.6038640198840839E+00 + -1.6328321584859695E+00 -1.6620232340231529E+00 -1.6914231850260837E+00 + -1.7210169652749630E+00 -1.7507885070402407E+00 -1.7807206837990186E+00 + -1.8107952724790992E+00 -1.8409929152909399E+00 -1.8712930812109838E+00 + -1.9016740271915817E+00 -1.9321127591758860E+00 -1.9625849930062651E+00 + -1.9930651153244725E+00 -2.0235261445678976E+00 -2.0539396921784143E+00 + -2.0842759241487818E+00 -2.1145035230445846E+00 -2.1445896506468940E+00 + -2.1744999113776244E+00 -2.2041983166786059E+00 -2.2336472505291738E+00 + -2.2628074363024644E+00 -2.2916379051726539E+00 -2.3200959663025000E+00 + -2.3481371790548948E+00 -2.3757153274889280E+00 -2.4027823974184965E+00 + -2.4292885563284474E+00 -2.4551821364620916E+00 -2.4804096214124050E+00 + -2.5049156365695975E+00 -2.5286429437969367E+00 -2.5515324407281974E+00 + -2.5735231651009984E+00 -2.5945523045619483E+00 -2.6145552124018883E+00 + -2.6334654297016011E+00 -2.6512147143917608E+00 -2.6677330777530450E+00 + -2.6829488289057863E+00 -2.6967886278618183E+00 -2.7091775477333693E+00 + -2.7200391467170908E+00 -2.7292955504932674E+00 -2.7368675457012475E+00 + -2.7426746851742889E+00 -2.7466354056351037E+00 -2.7486671585729621E+00 + -2.7486865550401269E+00 -2.7466095251198497E+00 -2.7423514928325909E+00 + -2.7358275672564014E+00 -2.7269527506466753E+00 -2.7156421643441213E+00 + -2.7018112932622325E+00 -2.6853762497413798E+00 -2.6662540575505158E+00 + -2.6443629568045433E+00 -2.6196227305475293E+00 -2.5919550537278853E+00 + -2.5612838652612777E+00 -2.5275357638377653E+00 -2.4906404280845407E+00 + -2.4505310616391367E+00 -2.4071448636244628E+00 -2.3604235249404861E+00 + -2.3103137507021780E+00 -2.2567678090540100E+00 -2.1997441064803596E+00 + -2.1392077896055550E+00 -2.0751313733378067E+00 -2.0074953950551260E+00 + -1.9362890943592592E+00 -1.8615111177338977E+00 -1.7831702472351894E+00 + -1.7012861521145675E+00 -1.6158901620266937E+00 -1.5270260602056771E+00 + -1.4347508947025580E+00 -1.3391358054632845E+00 -1.2402668646901378E+00 + -1.1382459275696122E+00 -1.0331914900652792E+00 -9.2523955006605418E-01 + -8.1454446774759148E-01 -7.0127982054787052E-01 -5.8563924767707654E-01 + -4.6783727857944241E-01 -3.4811013923782474E-01 -2.2671652966652189E-01 + -1.0393836537192626E-01 1.9918525021433431E-02 1.4452375437928278E-01 + 2.6952179290762052E-01 3.9453145486781205E-01 5.1914546639969672E-01 + 6.4293012531352434E-01 7.6542506432298552E-01 8.8614312978907439E-01 + 1.0045703886237556E+00 1.1201662765510028E+00 1.2323639014365910E+00 + 1.3405705158648000E+00 1.4441681735497809E+00 1.5425145845104469E+00 + 1.6349441841984627E+00 1.7207694319343794E+00 1.7992823540638805E+00 + 1.8697563471786329E+00 1.9314482565383420E+00 1.9836007444643344E+00 + 2.0254449629331317E+00 2.0562035438623165E+00 2.0750939196303486E+00 + 2.0813319851881045E+00 2.0741361116826411E+00 2.0527315198021929E+00 + 2.0163550190470523E+00 1.9642601168138454E+00 1.8957224985318846E+00 + 1.8100458770936656E+00 1.7065682064607679E+00 1.5846682505871530E+00 + 1.4437724946760591E+00 1.2833623812626145E+00 1.1029818486924341E+00 + 9.0664180223694002E-01 6.9837236845984374E-01 4.7785480958214099E-01 + 2.4485284726833573E-01 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 8.7488987496220716E+00 4.1079460370330678E-01 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 4.1079460370330678E-01 + -4.2379017786255448E-02 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 6.3319584539187579E+00 -8.1986864321236759E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 -8.1986864321236759E+00 + 1.0890774122075081E+01 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 1.6065289196232826E+00 1.1880960131822418E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 1.1880960131822418E+00 + -6.9459376073158898E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 1.8564318082026954E+01 -3.6592145709032273E+01 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 -3.6592145709032273E+01 + 7.2124467487477176E+01 + + + -2.9499197847908998E-01 -1.3472011749405795E-02 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 -1.3472011749405795E-02 + -1.2384265919268859E-03 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + -2.0267699948027018E-01 2.2701982956295222E-01 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 2.2701982956295222E-01 + -2.6182048717443762E-01 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + -5.7641981977843419E-02 -2.8631464965107017E-02 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 -2.8631464965107017E-02 + -3.4291304477937622E-02 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + -9.1567602035652085E-01 1.7736748594348133E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 1.7736748594348133E+00 + -3.4398360446563565E+00 + + + + diff --git a/abipy/data/pseudos/Li.xml b/abipy/data/pseudos/Li.xml new file mode 100644 index 000000000..1c8cdf874 --- /dev/null +++ b/abipy/data/pseudos/Li.xml @@ -0,0 +1,14800 @@ + + + + + + + + + + + + + + + + + + + + 0.0000000000000000E+00 9.5849465073996316E-06 1.9221359778243904E-05 + 2.8909516165430297E-05 3.8649693505744228E-05 4.8442171127828299E-05 + 5.8287229860189652E-05 6.8185152039257959E-05 7.8136221517477659E-05 + 8.8140723671452698E-05 9.8198945410126376E-05 1.0831117518301293E-04 + 1.1847770298846725E-04 1.2869882038200265E-04 1.3897482048465159E-04 + 1.4930599799137142E-04 1.5969264917949723E-04 1.7013507191723705E-04 + 1.8063356567221353E-04 1.9118843152005413E-04 2.0179997215302422E-04 + 2.1246849188870663E-04 2.2319429667873111E-04 2.3397769411754676E-04 + 2.4481899345124369E-04 2.5571850558642136E-04 2.6667654309910554E-04 + 2.7769342024371084E-04 2.8876945296205553E-04 2.9990495889241825E-04 + 3.1110025737865108E-04 3.2235566947933549E-04 3.3367151797698987E-04 + 3.4504812738732712E-04 3.5648582396856008E-04 3.6798493573075879E-04 + 3.7954579244525635E-04 3.9116872565410734E-04 4.0285406867959474E-04 + 4.1460215663378800E-04 4.2641332642815658E-04 4.3828791678322891E-04 + 4.5022626823830659E-04 4.6222872316123166E-04 4.7429562575820465E-04 + 4.8642732208365472E-04 4.9862416005016510E-04 5.1088648943844897E-04 + 5.2321466190738267E-04 5.3560903100408801E-04 5.4806995217407319E-04 + 5.6059778277142605E-04 5.7319288206906171E-04 5.8585561126902480E-04 + 5.9858633351285049E-04 6.1138541389197710E-04 6.2425321945821621E-04 + 6.3719011923427864E-04 6.5019648422435822E-04 6.6327268742477185E-04 + 6.7641910383465359E-04 6.8963611046671291E-04 7.0292408635804263E-04 + 7.1628341258099212E-04 7.2971447225409305E-04 7.4321765055304916E-04 + 7.5679333472178020E-04 7.7044191408352748E-04 7.8416378005202096E-04 + 7.9795932614270106E-04 8.1182894798400662E-04 8.2577304332871922E-04 + 8.3979201206536998E-04 8.5388625622970845E-04 8.6805618001623128E-04 + 8.8230218978977381E-04 8.9662469409716532E-04 9.1102410367894257E-04 + 9.2550083148113058E-04 9.4005529266708596E-04 9.5468790462940119E-04 + 9.6939908700187610E-04 9.8418926167155064E-04 9.9905885279080492E-04 + 1.0140082867895227E-03 1.0290379923873205E-03 1.0441484006058419E-03 + 1.0593399447811191E-03 1.0746130605760009E-03 1.0899681859926451E-03 + 1.1054057613850783E-03 1.1209262294718286E-03 1.1365300353486183E-03 + 1.1522176265011297E-03 1.1679894528178370E-03 1.1838459666029097E-03 + 1.1997876225891839E-03 1.2158148779512008E-03 1.2319281923183201E-03 + 1.2481280277878992E-03 1.2644148489385474E-03 1.2807891228434473E-03 + 1.2972513190837498E-03 1.3138019097620418E-03 1.3304413695158840E-03 + 1.3471701755314225E-03 1.3639888075570750E-03 1.3808977479172874E-03 + 1.3978974815263662E-03 1.4149884959023858E-03 1.4321712811811683E-03 + 1.4494463301303407E-03 1.4668141381634662E-03 1.4842752033542505E-03 + 1.5018300264508272E-03 1.5194791108901176E-03 1.5372229628122674E-03 + 1.5550620910751642E-03 1.5729970072690268E-03 1.5910282257310794E-03 + 1.6091562635603030E-03 1.6273816406322604E-03 1.6457048796140079E-03 + 1.6641265059790847E-03 1.6826470480225814E-03 1.7012670368762909E-03 + 1.7199870065239397E-03 1.7388074938165020E-03 1.7577290384875957E-03 + 1.7767521831689602E-03 1.7958774734060173E-03 1.8151054576735198E-03 + 1.8344366873912759E-03 1.8538717169399662E-03 1.8734111036770398E-03 + 1.8930554079527012E-03 1.9128051931259779E-03 1.9326610255808755E-03 + 1.9526234747426227E-03 1.9726931130940022E-03 1.9928705161917620E-03 + 2.0131562626831303E-03 2.0335509343224027E-03 2.0540551159876283E-03 + 2.0746693956973845E-03 2.0953943646276367E-03 2.1162306171286956E-03 + 2.1371787507422596E-03 2.1582393662185500E-03 2.1794130675335450E-03 + 2.2007004619062930E-03 2.2221021598163313E-03 2.2436187750211924E-03 + 2.2652509245740045E-03 2.2869992288411882E-03 2.3088643115202478E-03 + 2.3308467996576536E-03 2.3529473236668331E-03 2.3751665173462402E-03 + 2.3975050178975370E-03 2.4199634659438666E-03 2.4425425055482233E-03 + 2.4652427842319254E-03 2.4880649529931804E-03 2.5110096663257622E-03 + 2.5340775822377723E-03 2.5572693622705148E-03 2.5805856715174660E-03 + 2.6040271786433519E-03 2.6275945559033165E-03 2.6512884791622094E-03 + 2.6751096279139627E-03 2.6990586853010779E-03 2.7231363381342217E-03 + 2.7473432769119137E-03 2.7716801958403382E-03 2.7961477928532467E-03 + 2.8207467696319726E-03 2.8454778316255591E-03 2.8703416880709854E-03 + 2.8953390520135066E-03 2.9204706403271061E-03 2.9457371737350493E-03 + 2.9711393768305566E-03 2.9966779780975805E-03 3.0223537099316974E-03 + 3.0481673086611124E-03 3.0741195145677748E-03 3.1002110719086096E-03 + 3.1264427289368576E-03 3.1528152379235387E-03 3.1793293551790201E-03 + 3.2059858410747105E-03 3.2327854600648622E-03 3.2597289807085000E-03 + 3.2868171756914510E-03 3.3140508218485196E-03 3.3414307001857473E-03 + 3.3689575959028263E-03 3.3966322984156070E-03 3.4244556013787431E-03 + 3.4524283027084473E-03 3.4805512046053783E-03 3.5088251135776427E-03 + 3.5372508404639250E-03 3.5658292004567436E-03 3.5945610131258225E-03 + 3.6234471024416044E-03 3.6524882967988699E-03 3.6816854290405042E-03 + 3.7110393364813707E-03 3.7405508609323346E-03 3.7702208487243967E-03 + 3.8000501507329679E-03 3.8300396224022664E-03 3.8601901237698593E-03 + 3.8905025194913129E-03 3.9209776788650050E-03 3.9516164758570393E-03 + 3.9824197891263225E-03 4.0133885020497521E-03 4.0445235027475575E-03 + 4.0758256841087626E-03 4.1072959438167985E-03 4.1389351843752423E-03 + 4.1707443131337009E-03 4.2027242423138362E-03 4.2348758890355144E-03 + 4.2672001753431225E-03 4.2996980282319960E-03 4.3323703796750157E-03 + 4.3652181666493216E-03 4.3982423311632003E-03 4.4314438202830804E-03 + 4.4648235861607126E-03 4.4983825860604558E-03 4.5321217823867483E-03 + 4.5660421427116907E-03 4.6001446398028067E-03 4.6344302516509337E-03 + 4.6688999614982688E-03 4.7035547578665746E-03 4.7383956345855129E-03 + 4.7734235908211634E-03 4.8086396311046616E-03 4.8440447653610207E-03 + 4.8796400089380814E-03 4.9154263826356433E-03 4.9514049127347241E-03 + 4.9875766310270081E-03 5.0239425748444203E-03 5.0605037870888872E-03 + 5.0972613162622357E-03 5.1342162164962702E-03 5.1713695475829949E-03 + 5.2087223750050165E-03 5.2462757699660864E-03 5.2840308094218346E-03 + 5.3219885761106494E-03 5.3601501585847210E-03 5.3985166512412709E-03 + 5.4370891543539263E-03 5.4758687741042868E-03 5.5148566226136285E-03 + 5.5540538179748205E-03 5.5934614842843653E-03 5.6330807516746587E-03 + 5.6729127563463783E-03 5.7129586406010893E-03 5.7532195528739796E-03 + 5.7936966477668194E-03 5.8343910860810489E-03 5.8753040348510878E-03 + 5.9164366673777899E-03 5.9577901632621010E-03 5.9993657084388774E-03 + 6.0411644952109008E-03 6.0831877222830818E-03 6.1254365947968105E-03 + 6.1679123243645467E-03 6.2106161291045434E-03 6.2535492336757981E-03 + 6.2967128693131556E-03 6.3401082738626380E-03 6.3837366918169181E-03 + 6.4275993743510380E-03 6.4716975793582647E-03 6.5160325714861836E-03 + 6.5606056221729448E-03 6.6054180096837504E-03 6.6504710191474924E-03 + 6.6957659425936206E-03 6.7413040789891816E-03 6.7870867342760873E-03 + 6.8331152214085554E-03 6.8793908603907630E-03 6.9259149783147071E-03 + 6.9726889093982541E-03 7.0197139950234182E-03 7.0669915837748070E-03 + 7.1145230314783167E-03 7.1623097012400048E-03 7.2103529634851803E-03 + 7.2586541959977092E-03 7.3072147839595243E-03 7.3560361199903473E-03 + 7.4051196041876356E-03 7.4544666441667164E-03 7.5040786551011764E-03 + 7.5539570597634243E-03 7.6041032885655136E-03 7.6545187796001456E-03 + 7.7052049786819239E-03 7.7561633393888147E-03 7.8073953231038240E-03 + 7.8589023990569221E-03 7.9106860443671628E-03 7.9627477440850566E-03 + 8.0150889912351479E-03 8.0677112868588439E-03 8.1206161400574454E-03 + 8.1738050680354533E-03 8.2272795961440374E-03 8.2810412579248215E-03 + 8.3350915951538318E-03 8.3894321578857310E-03 8.4440645044982603E-03 + 8.4989902017369411E-03 8.5542108247599839E-03 8.6097279571834967E-03 + 8.6655431911268586E-03 8.7216581272584141E-03 8.7780743748413562E-03 + 8.8347935517798792E-03 8.8918172846655895E-03 8.9491472088241326E-03 + 9.0067849683621148E-03 9.0647322162142243E-03 9.1229906141906680E-03 + 9.1815618330247945E-03 9.2404475524210349E-03 9.2996494611030586E-03 + 9.3591692568622056E-03 9.4190086466061727E-03 9.4791693464079761E-03 + 9.5396530815551467E-03 9.6004615865992269E-03 9.6615966054054946E-03 + 9.7230598912029943E-03 9.7848532066348009E-03 9.8469783238085713E-03 + 9.9094370243473714E-03 9.9722310994407575E-03 1.0035362349896165E-02 + 1.0098832586190527E-02 1.0162643628522216E-02 1.0226797306863220E-02 + 1.0291295461011655E-02 1.0356139940644491E-02 1.0421332605370632E-02 + 1.0486875324784211E-02 1.0552769978518237E-02 1.0619018456298476E-02 + 1.0685622657997660E-02 1.0752584493689963E-02 1.0819905883705782E-02 + 1.0887588758686803E-02 1.0955635059641377E-02 1.1024046738000179E-02 + 1.1092825755672164E-02 1.1161974085100846E-02 1.1231493709320849E-02 + 1.1301386622014790E-02 1.1371654827570434E-02 1.1442300341138203E-02 + 1.1513325188688949E-02 1.1584731407072044E-02 1.1656521044073819E-02 + 1.1728696158476274E-02 1.1801258820116135E-02 1.1874211109944176E-02 + 1.1947555120084941E-02 1.2021292953896716E-02 1.2095426726031868E-02 + 1.2169958562497449E-02 1.2244890600716219E-02 1.2320224989587906E-02 + 1.2395963889550846E-02 1.2472109472643943E-02 1.2548663922568934E-02 + 1.2625629434753049E-02 1.2703008216411953E-02 1.2780802486613046E-02 + 1.2859014476339088E-02 1.2937646428552210E-02 1.3016700598258213E-02 + 1.3096179252571248E-02 1.3176084670778816E-02 1.3256419144407158E-02 + 1.3337184977286956E-02 1.3418384485619413E-02 1.3500019998042647E-02 + 1.3582093855698515E-02 1.3664608412299726E-02 1.3747566034197340E-02 + 1.3830969100448655E-02 1.3914820002885377E-02 1.3999121146182287E-02 + 1.4083874947926152E-02 1.4169083838685079E-02 1.4254750262078184E-02 + 1.4340876674845723E-02 1.4427465546919512E-02 1.4514519361493772E-02 + 1.4602040615096316E-02 1.4690031817660189E-02 1.4778495492595618E-02 + 1.4867434176862383E-02 1.4956850421042570E-02 1.5046746789413722E-02 + 1.5137125860022376E-02 1.5227990224758002E-02 1.5319342489427333E-02 + 1.5411185273829051E-02 1.5503521211828993E-02 1.5596352951435632E-02 + 1.5689683154876042E-02 1.5783514498672213E-02 1.5877849673717845E-02 + 1.5972691385355498E-02 1.6068042353454194E-02 1.6163905312487372E-02 + 1.6260283011611365E-02 1.6357178214744202E-02 1.6454593700644896E-02 + 1.6552532262993098E-02 1.6650996710469254E-02 1.6749989866835131E-02 + 1.6849514571014811E-02 1.6949573677176064E-02 1.7050170054812262E-02 + 1.7151306588824623E-02 1.7252986179604971E-02 1.7355211743118909E-02 + 1.7457986210989405E-02 1.7561312530580922E-02 1.7665193665083925E-02 + 1.7769632593599833E-02 1.7874632311226470E-02 1.7980195829143980E-02 + 1.8086326174701146E-02 1.8193026391502248E-02 1.8300299539494278E-02 + 1.8408148695054784E-02 1.8516576951080027E-02 1.8625587417073722E-02 + 1.8735183219236153E-02 1.8845367500553899E-02 1.8956143420889929E-02 + 1.9067514157074212E-02 1.9179482902994861E-02 1.9292052869689665E-02 + 1.9405227285438240E-02 1.9519009395854575E-02 1.9633402463980130E-02 + 1.9748409770377361E-02 1.9864034613223877E-02 1.9980280308406970E-02 + 2.0097150189618745E-02 2.0214647608451663E-02 2.0332775934494729E-02 + 2.0451538555430093E-02 2.0570938877130206E-02 2.0690980323755461E-02 + 2.0811666337852457E-02 2.0933000380452670E-02 2.1054985931171732E-02 + 2.1177626488309217E-02 2.1300925568948945E-02 2.1424886709059874E-02 + 2.1549513463597503E-02 2.1674809406605801E-02 2.1800778131319695E-02 + 2.1927423250268162E-02 2.2054748395377785E-02 2.2182757218076946E-02 + 2.2311453389400486E-02 2.2440840600095043E-02 2.2570922560724876E-02 + 2.2701703001778262E-02 2.2833185673774473E-02 2.2965374347371365E-02 + 2.3098272813473496E-02 2.3231884883340853E-02 2.3366214388698101E-02 + 2.3501265181844543E-02 2.3637041135764546E-02 2.3773546144238638E-02 + 2.3910784121955155E-02 2.4048759004622496E-02 2.4187474749082033E-02 + 2.4326935333421541E-02 2.4467144757089332E-02 2.4608107041008860E-02 + 2.4749826227694151E-02 2.4892306381365647E-02 2.5035551588066817E-02 + 2.5179565955781250E-02 2.5324353614550578E-02 2.5469918716592838E-02 + 2.5616265436421586E-02 2.5763397970965565E-02 2.5911320539689132E-02 + 2.6060037384713228E-02 2.6209552770937023E-02 2.6359870986160262E-02 + 2.6510996341206162E-02 2.6662933170045120E-02 2.6815685829918955E-02 + 2.6969258701465895E-02 2.7123656188846129E-02 2.7278882719868214E-02 + 2.7434942746115992E-02 2.7591840743076284E-02 2.7749581210267178E-02 + 2.7908168671367140E-02 2.8067607674344717E-02 2.8227902791588964E-02 + 2.8389058620040524E-02 2.8551079781323541E-02 2.8713970921878156E-02 + 2.8877736713093752E-02 2.9042381851442940E-02 2.9207911058616202E-02 + 2.9374329081657373E-02 2.9541640693099704E-02 2.9709850691102789E-02 + 2.9878963899590084E-02 3.0048985168387353E-02 3.0219919373361683E-02 + 3.0391771416561335E-02 3.0564546226356275E-02 3.0738248757579609E-02 + 3.0912883991669606E-02 3.1088456936812576E-02 3.1264972628086453E-02 + 3.1442436127605278E-02 3.1620852524664296E-02 3.1800226935885953E-02 + 3.1980564505366557E-02 3.2161870404823913E-02 3.2344149833745561E-02 + 3.2527408019537865E-02 3.2711650217676025E-02 3.2896881711854668E-02 + 3.3083107814139479E-02 3.3270333865119468E-02 3.3458565234060197E-02 + 3.3647807319057657E-02 3.3838065547193208E-02 3.4029345374689095E-02 + 3.4221652287065009E-02 3.4414991799295309E-02 3.4609369455967300E-02 + 3.4804790831440127E-02 3.5001261530004733E-02 3.5198787186044467E-02 + 3.5397373464196781E-02 3.5597026059515618E-02 3.5797750697634738E-02 + 3.5999553134931951E-02 3.6202439158694130E-02 3.6406414587283255E-02 + 3.6611485270303230E-02 3.6817657088767670E-02 3.7024935955268477E-02 + 3.7233327814145512E-02 3.7442838641656997E-02 3.7653474446150928E-02 + 3.7865241268237315E-02 3.8078145180961552E-02 3.8292192289978440E-02 + 3.8507388733727402E-02 3.8723740683608385E-02 3.8941254344158974E-02 + 3.9159935953232285E-02 3.9379791782175787E-02 3.9600828136011290E-02 + 3.9823051353615573E-02 4.0046467807902345E-02 4.0271083906004923E-02 + 4.0496906089460001E-02 4.0723940834392319E-02 4.0952194651700490E-02 + 4.1181674087243630E-02 4.1412385722029162E-02 4.1644336172401410E-02 + 4.1877532090231505E-02 4.2111980163108055E-02 4.2347687114528965E-02 + 4.2584659704094176E-02 4.2822904727699639E-02 4.3062429017732134E-02 + 4.3303239443265230E-02 4.3545342910256218E-02 4.3788746361744263E-02 + 4.4033456778049450E-02 4.4279481176972980E-02 4.4526826613998434E-02 + 4.4775500182494050E-02 4.5025509013916262E-02 4.5276860278014121E-02 + 4.5529561183034972E-02 4.5783618975931063E-02 4.6039040942567527E-02 + 4.6295834407931231E-02 4.6554006736340844E-02 4.6813565331658036E-02 + 4.7074517637499834E-02 4.7336871137452080E-02 4.7600633355284049E-02 + 4.7865811855164135E-02 4.8132414241876906E-02 4.8400448161041131E-02 + 4.8669921299329032E-02 4.8940841384686726E-02 4.9213216186555837E-02 + 4.9487053516096363E-02 4.9762361226410631E-02 5.0039147212768531E-02 + 5.0317419412833887E-02 5.0597185806892174E-02 5.0878454418079345E-02 + 5.1161233312611902E-02 5.1445530600018184E-02 5.1731354433371034E-02 + 5.2018713009521517E-02 5.2307614569334082E-02 5.2598067397922728E-02 + 5.2890079824888830E-02 5.3183660224559830E-02 5.3478817016229488E-02 + 5.3775558664399335E-02 5.4073893679021309E-02 5.4373830615741955E-02 + 5.4675378076147696E-02 5.4978544708011549E-02 5.5283339205541016E-02 + 5.5589770309627605E-02 5.5897846808097333E-02 5.6207577535962894E-02 + 5.6518971375676817E-02 5.6832037257386406E-02 5.7146784159189758E-02 + 5.7463221107393242E-02 5.7781357176770277E-02 5.8101201490821743E-02 + 5.8422763222037460E-02 5.8746051592159405E-02 5.9071075872445929E-02 + 5.9397845383937886E-02 5.9726369497725869E-02 6.0056657635218835E-02 + 6.0388719268414472E-02 6.0722563920170648E-02 6.1058201164478694E-02 + 6.1395640626737837E-02 6.1734891984031343E-02 6.2075964965403845E-02 + 6.2418869352140596E-02 6.2763614978047819E-02 6.3110211729734800E-02 + 6.3458669546897301E-02 6.3808998422602722E-02 6.4161208403576697E-02 + 6.4515309590491149E-02 6.4871312138253881E-02 6.5229226256300024E-02 + 6.5589062208884580E-02 6.5950830315376976E-02 6.6314540950556888E-02 + 6.6680204544911720E-02 6.7047831584935921E-02 6.7417432613431541E-02 + 6.7789018229810677E-02 6.8162599090399331E-02 6.8538185908743138E-02 + 6.8915789455914575E-02 6.9295420560821830E-02 6.9677090110519244E-02 + 7.0060809050519826E-02 7.0446588385108810E-02 7.0834439177659539E-02 + 7.1224372550950418E-02 7.1616399687484178E-02 7.2010531829808475E-02 + 7.2406780280838218E-02 7.2805156404179866E-02 7.3205671624457097E-02 + 7.3608337427638670E-02 7.4013165361367747E-02 7.4420167035292986E-02 + 7.4829354121401501E-02 7.5240738354353659E-02 7.5654331531819580E-02 + 7.6070145514817486E-02 7.6488192228053684E-02 7.6908483660264843E-02 + 7.7331031864561542E-02 7.7755848958774104E-02 7.8182947125799956E-02 + 7.8612338613953170E-02 7.9044035737315596E-02 7.9478050876090112E-02 + 7.9914396476955488E-02 8.0353085053423548E-02 8.0794129186197883E-02 + 8.1237541523534726E-02 8.1683334781605665E-02 8.2131521744862129E-02 + 8.2582115266402398E-02 8.3035128268339850E-02 8.3490573742173779E-02 + 8.3948464749161719E-02 8.4408814420694311E-02 8.4871635958671685E-02 + 8.5336942635882138E-02 8.5804747796382655E-02 8.6275064855881781E-02 + 8.6747907302124228E-02 8.7223288695277748E-02 8.7701222668321838E-02 + 8.8181722927438991E-02 8.8664803252407512E-02 8.9150477496996852E-02 + 8.9638759589364847E-02 9.0129663532457036E-02 9.0623203404408464E-02 + 9.1119393358947282E-02 9.1618247625800675E-02 9.2119780511102825E-02 + 9.2624006397805422E-02 9.3130939746089950E-02 9.3640595093782461E-02 + 9.4152987056770360E-02 9.4668130329421771E-02 9.5186039685006801E-02 + 9.5706729976121216E-02 9.6230216135112401E-02 9.6756513174507702E-02 + 9.7285636187444610E-02 9.7817600348104009E-02 9.8352420912145189E-02 + 9.8890113217143236E-02 9.9430692683029037E-02 9.9974174812531402E-02 + 1.0052057519162171E-01 1.0106990948996081E-01 1.0162219346134854E-01 + 1.0217744294417516E-01 1.0273567386187608E-01 1.0329690222338815E-01 + 1.0386114412360888E-01 1.0442841574385796E-01 1.0499873335234138E-01 + 1.0557211330461788E-01 1.0614857204406820E-01 1.0672812610236618E-01 + 1.0731079209995341E-01 1.0789658674651556E-01 1.0848552684146165E-01 + 1.0907762927440579E-01 1.0967291102565159E-01 1.1027138916667907E-01 + 1.1087308086063430E-01 1.1147800336282163E-01 1.1208617402119819E-01 + 1.1269761027687197E-01 1.1331232966460164E-01 1.1393034981329943E-01 + 1.1455168844653675E-01 1.1517636338305245E-01 1.1580439253726388E-01 + 1.1643579391978061E-01 1.1707058563792065E-01 1.1770878589623031E-01 + 1.1835041299700585E-01 1.1899548534081847E-01 1.1964402142704199E-01 + 1.2029603985438332E-01 1.2095155932141599E-01 1.2161059862711619E-01 + 1.2227317667140217E-01 1.2293931245567569E-01 1.2360902508336767E-01 + 1.2428233376048556E-01 1.2495925779616426E-01 1.2563981660321985E-01 + 1.2632402969870637E-01 1.2701191670447545E-01 1.2770349734773914E-01 + 1.2839879146163530E-01 1.2909781898579684E-01 1.2980059996692342E-01 + 1.3050715455935610E-01 1.3121750302565566E-01 1.3193166573718337E-01 + 1.3264966317468552E-01 1.3337151592888047E-01 1.3409724470104950E-01 + 1.3482687030362986E-01 1.3556041366081245E-01 1.3629789580914126E-01 + 1.3703933789811693E-01 1.3778476119080324E-01 1.3853418706443674E-01 + 1.3928763701104011E-01 1.4004513263803828E-01 1.4080669566887785E-01 + 1.4157234794365073E-01 1.4234211141972000E-01 1.4311600817234957E-01 + 1.4389406039533753E-01 1.4467629040165242E-01 1.4546272062407317E-01 + 1.4625337361583249E-01 1.4704827205126367E-01 1.4784743872645040E-01 + 1.4865089655988123E-01 1.4945866859310644E-01 1.5027077799139874E-01 + 1.5108724804441775E-01 1.5190810216687795E-01 1.5273336389922001E-01 + 1.5356305690828617E-01 1.5439720498799825E-01 1.5523583206004102E-01 + 1.5607896217454745E-01 1.5692661951078882E-01 1.5777882837786794E-01 + 1.5863561321541630E-01 1.5949699859429511E-01 1.6036300921729971E-01 + 1.6123366991986832E-01 1.6210900567079356E-01 1.6298904157293959E-01 + 1.6387380286396117E-01 1.6476331491702761E-01 1.6565760324155071E-01 + 1.6655669348391591E-01 1.6746061142821805E-01 1.6836938299700085E-01 + 1.6928303425199975E-01 1.7020159139489024E-01 1.7112508076803856E-01 + 1.7205352885525743E-01 1.7298696228256541E-01 1.7392540781895066E-01 + 1.7486889237713840E-01 1.7581744301436311E-01 1.7677108693314367E-01 + 1.7772985148206444E-01 1.7869376415655905E-01 1.7966285259969894E-01 + 1.8063714460298613E-01 1.8161666810715030E-01 1.8260145120294999E-01 + 1.8359152213197824E-01 1.8458690928747265E-01 1.8558764121512900E-01 + 1.8659374661392075E-01 1.8760525433692163E-01 1.8862219339213307E-01 + 1.8964459294331618E-01 1.9067248231082803E-01 1.9170589097246263E-01 + 1.9274484856429636E-01 1.9378938488153716E-01 1.9483952987938011E-01 + 1.9589531367386576E-01 1.9695676654274402E-01 1.9802391892634238E-01 + 1.9909680142843891E-01 2.0017544481713995E-01 2.0125988002576245E-01 + 2.0235013815372119E-01 2.0344625046742004E-01 2.0454824840114968E-01 + 2.0565616355798833E-01 2.0677002771070810E-01 2.0788987280268648E-01 + 2.0901573094882211E-01 2.1014763443645601E-01 2.1128561572629745E-01 + 2.1242970745335435E-01 2.1357994242787012E-01 2.1473635363626409E-01 + 2.1589897424207735E-01 2.1706783758692405E-01 2.1824297719144753E-01 + 2.1942442675628157E-01 2.2061222016301688E-01 2.2180639147517298E-01 + 2.2300697493917424E-01 2.2421400498533323E-01 2.2542751622883725E-01 + 2.2664754347074137E-01 2.2787412169896623E-01 2.2910728608930161E-01 + 2.3034707200641516E-01 2.3159351500486666E-01 2.3284665083012707E-01 + 2.3410651541960473E-01 2.3537314490367500E-01 2.3664657560671698E-01 + 2.3792684404815492E-01 2.3921398694350560E-01 2.4050804120543126E-01 + 2.4180904394479821E-01 2.4311703247174146E-01 2.4443204429673338E-01 + 2.4575411713166123E-01 2.4708328889090742E-01 2.4841959769243738E-01 + 2.4976308185889229E-01 2.5111377991868855E-01 2.5247173060712236E-01 + 2.5383697286748086E-01 2.5520954585215821E-01 2.5658948892377953E-01 + 2.5797684165632906E-01 2.5937164383628492E-01 2.6077393546376071E-01 + 2.6218375675365208E-01 2.6360114813679014E-01 2.6502615026110110E-01 + 2.6645880399277228E-01 2.6789915041742268E-01 2.6934723084128304E-01 + 2.7080308679237935E-01 2.7226676002172412E-01 2.7373829250451354E-01 + 2.7521772644133130E-01 2.7670510425935907E-01 2.7820046861359293E-01 + 2.7970386238806633E-01 2.8121532869708071E-01 2.8273491088644154E-01 + 2.8426265253470118E-01 2.8579859745440889E-01 2.8734278969336718E-01 + 2.8889527353589517E-01 2.9045609350409829E-01 2.9202529435914548E-01 + 2.9360292110255209E-01 2.9518901897747141E-01 2.9678363346999165E-01 + 2.9838681031044034E-01 2.9999859547469593E-01 3.0161903518550609E-01 + 3.0324817591381381E-01 3.0488606438008947E-01 3.0653274755567056E-01 + 3.0818827266410959E-01 3.0985268718252784E-01 3.1152603884297680E-01 + 3.1320837563380721E-01 3.1489974580104518E-01 3.1660019784977589E-01 + 3.1830978054553488E-01 3.2002854291570526E-01 3.2175653425092571E-01 + 3.2349380410650269E-01 3.2524040230383161E-01 3.2699637893182637E-01 + 3.2876178434835507E-01 3.3053666918168451E-01 3.3232108433193203E-01 + 3.3411508097252562E-01 3.3591871055167005E-01 3.3773202479382430E-01 + 3.3955507570118371E-01 3.4138791555517151E-01 3.4323059691793817E-01 + 3.4508317263386873E-01 3.4694569583109836E-01 3.4881821992303624E-01 + 3.5070079860989617E-01 3.5259348588023831E-01 3.5449633601251634E-01 + 3.5640940357663431E-01 3.5833274343551158E-01 3.6026641074665622E-01 + 3.6221046096374682E-01 3.6416494983822273E-01 3.6612993342088335E-01 + 3.6810546806349415E-01 3.7009161042040456E-01 3.7208841745017168E-01 + 3.7409594641719390E-01 3.7611425489335309E-01 3.7814340075966579E-01 + 3.8018344220794298E-01 3.8223443774245919E-01 3.8429644618162923E-01 + 3.8636952665969665E-01 3.8845373862842858E-01 3.9054914185882073E-01 + 3.9265579644281162E-01 3.9477376279500587E-01 3.9690310165440695E-01 + 3.9904387408615877E-01 4.0119614148329746E-01 4.0335996556851039E-01 + 4.0553540839590868E-01 4.0772253235280503E-01 4.0992140016150352E-01 + 4.1213207488109799E-01 4.1435461990928096E-01 4.1658909898416124E-01 + 4.1883557618609246E-01 4.2109411593950929E-01 4.2336478301477709E-01 + 4.2564764253004800E-01 4.2794275995312869E-01 4.3025020110335810E-01 + 4.3257003215349449E-01 4.3490231963161380E-01 4.3724713042301699E-01 + 4.3960453177214881E-01 4.4197459128452471E-01 4.4435737692867183E-01 + 4.4675295703807671E-01 4.4916140031314539E-01 4.5158277582317358E-01 + 4.5401715300832740E-01 4.5646460168163466E-01 4.5892519203098769E-01 + 4.6139899462115430E-01 4.6388608039580376E-01 4.6638652067954023E-01 + 4.6890038717994786E-01 4.7142775198964793E-01 4.7396868758836586E-01 + 4.7652326684500984E-01 4.7909156301976097E-01 4.8167364976617394E-01 + 4.8426960113328821E-01 4.8687949156775379E-01 4.8950339591596453E-01 + 4.9214138942620528E-01 4.9479354775080936E-01 4.9745994694832857E-01 + 5.0014066348571418E-01 5.0283577424051040E-01 5.0554535650305699E-01 + 5.0826948797870919E-01 5.1100824679006329E-01 5.1376171147919858E-01 + 5.1652996100992876E-01 5.1931307477006750E-01 5.2211113257370434E-01 + 5.2492421466349359E-01 5.2775240171295679E-01 5.3059577482879350E-01 + 5.3345441555321038E-01 5.3632840586625818E-01 5.3921782818818254E-01 + 5.4212276538178805E-01 5.4504330075481489E-01 5.4797951806232714E-01 + 5.5093150150911563E-01 5.5389933575211137E-01 5.5688310590281498E-01 + 5.5988289752973652E-01 5.6289879666084996E-01 5.6593088978605954E-01 + 5.6897926385968112E-01 5.7204400630293495E-01 5.7512520500645303E-01 + 5.7822294833280052E-01 5.8133732511900738E-01 5.8446842467911908E-01 + 5.8761633680675607E-01 5.9078115177768931E-01 5.9396296035242924E-01 + 5.9716185377882858E-01 6.0037792379469934E-01 6.0361126263044340E-01 + 6.0686196301169659E-01 6.1013011816199025E-01 6.1341582180542276E-01 + 6.1671916816934769E-01 6.2004025198707646E-01 6.2337916850059505E-01 + 6.2673601346329488E-01 6.3011088314271979E-01 6.3350387432332445E-01 + 6.3691508430925348E-01 6.4034461092712935E-01 6.4379255252885847E-01 + 6.4725900799445224E-01 6.5074407673486201E-01 6.5424785869483060E-01 + 6.5777045435575776E-01 6.6131196473858334E-01 6.6487249140668125E-01 + 6.6845213646877566E-01 6.7205100258186756E-01 6.7566919295417882E-01 + 6.7930681134811177E-01 6.8296396208322563E-01 6.8664075003922742E-01 + 6.9033728065898092E-01 6.9405365995152790E-01 6.9778999449513146E-01 + 7.0154639144033082E-01 7.0532295851301441E-01 7.0911980401750907E-01 + 7.1293703683968601E-01 7.1677476645008409E-01 7.2063310290704841E-01 + 7.2451215685988746E-01 7.2841203955204381E-01 7.3233286282428844E-01 + 7.3627473911792496E-01 7.4023778147801544E-01 7.4422210355662188E-01 + 7.4822781961606566E-01 7.5225504453220471E-01 7.5630389379772778E-01 + 7.6037448352546455E-01 7.6446693045171954E-01 7.6858135193961674E-01 + 7.7271786598246606E-01 7.7687659120714769E-01 7.8105764687751378E-01 + 7.8526115289780818E-01 7.8948722981610564E-01 7.9373599882776991E-01 + 7.9800758177892528E-01 8.0230210116995682E-01 8.0661968015901908E-01 + 8.1096044256556954E-01 8.1532451287391949E-01 8.1971201623680368E-01 + 8.2412307847896971E-01 8.2855782610078699E-01 8.3301638628187158E-01 + 8.3749888688473795E-01 8.4200545645846314E-01 8.4653622424237318E-01 + 8.5109132016975042E-01 8.5567087487155924E-01 8.6027501968019193E-01 + 8.6490388663323614E-01 8.6955760847726093E-01 8.7423631867162144E-01 + 8.7894015139229065E-01 8.8366924153570403E-01 8.8842372472262920E-01 + 8.9320373730205471E-01 8.9800941635510101E-01 9.0284089969895087E-01 + 9.0769832589080313E-01 9.1258183423184258E-01 9.1749156477124039E-01 + 9.2242765831016582E-01 9.2739025640582629E-01 9.3237950137552650E-01 + 9.3739553630074990E-01 9.4243850503126114E-01 9.4750855218923280E-01 + 9.5260582317339282E-01 9.5773046416319063E-01 9.6288262212299525E-01 + 9.6806244480630588E-01 9.7327008075999022E-01 9.7850567932854426E-01 + 9.8376939065837588E-01 9.8906136570210967E-01 9.9438175622291769E-01 + 9.9973071479886799E-01 1.0051083948273054E+00 1.0105149505292472E+00 + 1.0159505369538069E+00 1.0214153099826402E+00 1.0269094263344161E+00 + 1.0324330435693108E+00 1.0379863200935262E+00 1.0435694151638339E+00 + 1.0491824888921386E+00 1.0548257022500751E+00 1.0604992170736205E+00 + 1.0662031960677378E+00 1.0719378028110409E+00 1.0777032017604846E+00 + 1.0834995582560831E+00 1.0893270385256515E+00 1.0951858096895690E+00 + 1.1010760397655770E+00 1.1069978976735948E+00 1.1129515532405634E+00 + 1.1189371772053167E+00 1.1249549412234785E+00 1.1310050178723836E+00 + 1.1370875806560292E+00 1.1432028040100468E+00 1.1493508633067091E+00 + 1.1555319348599575E+00 1.1617461959304578E+00 1.1679938247306842E+00 + 1.1742750004300304E+00 1.1805899031599474E+00 1.1869387140191088E+00 + 1.1933216150786070E+00 1.1997387893871687E+00 1.2061904209764123E+00 + 1.2126766948661190E+00 1.2191977970695427E+00 1.2257539145987422E+00 + 1.2323452354699458E+00 1.2389719487089426E+00 1.2456342443565043E+00 + 1.2523323134738307E+00 1.2590663481480364E+00 1.2658365414976545E+00 + 1.2726430876781758E+00 1.2794861818876171E+00 1.2863660203721186E+00 + 1.2932828004315728E+00 1.3002367204252816E+00 1.3072279797776467E+00 + 1.3142567789838835E+00 1.3213233196157788E+00 1.3284278043274653E+00 + 1.3355704368612364E+00 1.3427514220533874E+00 1.3499709658400907E+00 + 1.3572292752633013E+00 1.3645265584766959E+00 1.3718630247516372E+00 + 1.3792388844831827E+00 1.3866543491961134E+00 1.3941096315510018E+00 + 1.4016049453503090E+00 1.4091405055445185E+00 1.4167165282382985E+00 + 1.4243332306967003E+00 1.4319908313513896E+00 1.4396895498069069E+00 + 1.4474296068469716E+00 1.4552112244408086E+00 1.4630346257495170E+00 + 1.4709000351324670E+00 1.4788076781537371E+00 1.4867577815885802E+00 + 1.4947505734299305E+00 1.5027862828949343E+00 1.5108651404315345E+00 + 1.5189873777250709E+00 1.5271532277049280E+00 1.5353629245512141E+00 + 1.5436167037014770E+00 1.5519148018574562E+00 1.5602574569918706E+00 + 1.5686449083552454E+00 1.5770773964827665E+00 1.5855551632011877E+00 + 1.5940784516357605E+00 1.6026475062172068E+00 1.6112625726887295E+00 + 1.6199238981130599E+00 1.6286317308795428E+00 1.6373863207112607E+00 + 1.6461879186721906E+00 1.6550367771744123E+00 1.6639331499853407E+00 + 1.6728772922350053E+00 1.6818694604233668E+00 1.6909099124276734E+00 + 1.6999989075098552E+00 1.7091367063239598E+00 1.7183235709236298E+00 + 1.7275597647696104E+00 1.7368455527373139E+00 1.7461812011244120E+00 + 1.7555669776584717E+00 1.7650031515046340E+00 1.7744899932733342E+00 + 1.7840277750280602E+00 1.7936167702931585E+00 1.8032572540616700E+00 + 1.8129495028032283E+00 1.8226937944719788E+00 1.8324904085145544E+00 + 1.8423396258780871E+00 1.8522417290182671E+00 1.8621970019074414E+00 + 1.8722057300427577E+00 1.8822682004543552E+00 1.8923847017135869E+00 + 1.9025555239413077E+00 1.9127809588161859E+00 1.9230612995830707E+00 + 1.9333968410614020E+00 1.9437878796536630E+00 1.9542347133538842E+00 + 1.9647376417561886E+00 1.9752969660633761E+00 1.9859129890955727E+00 + 1.9965860152989088E+00 2.0073163507542500E+00 2.0181043031859751E+00 + 2.0289501819708025E+00 2.0398542981466621E+00 2.0508169644216148E+00 + 2.0618384951828164E+00 2.0729192065055413E+00 2.0840594161622437E+00 + 2.0952594436316669E+00 2.1065196101080113E+00 2.1178402385101407E+00 + 2.1292216534908461E+00 2.1406641814461542E+00 2.1521681505246915E+00 + 2.1637338906370851E+00 2.1753617334654374E+00 2.1870520124728290E+00 + 2.1988050629128848E+00 2.2106212218393861E+00 2.2225008281159413E+00 + 2.2344442224256982E+00 2.2464517472811196E+00 2.2585237470337973E+00 + 2.2706605678843386E+00 2.2828625578922872E+00 2.2951300669861086E+00 + 2.3074634469732200E+00 2.3198630515500858E+00 2.3323292363123573E+00 + 2.3448623587650710E+00 2.3574627783329039E+00 2.3701308563704711E+00 + 2.3828669561727041E+00 2.3956714429852584E+00 2.4085446840149909E+00 + 2.4214870484404916E+00 2.4344989074226686E+00 2.4475806341153947E+00 + 2.4607326036762109E+00 2.4739551932770736E+00 2.4872487821151865E+00 + 2.5006137514238675E+00 2.5140504844834801E+00 2.5275593666324299E+00 + 2.5411407852782104E+00 2.5547951299085172E+00 2.5685227921024163E+00 + 2.5823241655415745E+00 2.5961996460215424E+00 2.6101496314631176E+00 + 2.6241745219237482E+00 2.6382747196090062E+00 2.6524506288841234E+00 + 2.6667026562855867E+00 2.6810312105327991E+00 2.6954367025397992E+00 + 2.7099195454270402E+00 2.7244801545332478E+00 2.7391189474273259E+00 + 2.7538363439203297E+00 2.7686327660775087E+00 2.7835086382304075E+00 + 2.7984643869890378E+00 2.8135004412541100E+00 2.8286172322293384E+00 + 2.8438151934337945E+00 2.8590947607143558E+00 2.8744563722581962E+00 + 2.8899004686053518E+00 2.9054274926613588E+00 2.9210378897099507E+00 + 2.9367321074258319E+00 2.9525105958875151E+00 2.9683738075902228E+00 + 2.9843221974588743E+00 3.0003562228611269E+00 3.0164763436204898E+00 + 3.0326830220295156E+00 3.0489767228630540E+00 3.0653579133915843E+00 + 3.0818270633946114E+00 3.0983846451741446E+00 3.1150311335682299E+00 + 3.1317670059645843E+00 3.1485927423142739E+00 3.1655088251454826E+00 + 3.1825157395773487E+00 3.1996139733338782E+00 3.2168040167579304E+00 + 3.2340863628252845E+00 3.2514615071587638E+00 3.2689299480424676E+00 + 3.2864921864360497E+00 3.3041487259890867E+00 3.3219000730555224E+00 + 3.3397467367081894E+00 3.3576892287534066E+00 3.3757280637456599E+00 + 3.3938637590023570E+00 3.4120968346186560E+00 3.4304278134823956E+00 + 3.4488572212890776E+00 3.4673855865569494E+00 3.4860134406421577E+00 + 3.5047413177539890E+00 3.5235697549701874E+00 3.5424992922523608E+00 + 3.5615304724614556E+00 3.5806638413733385E+00 3.5998999476944427E+00 + 3.6192393430775001E+00 3.6386825821373665E+00 3.6582302224669232E+00 + 3.6778828246530715E+00 3.6976409522928089E+00 3.7175051720093801E+00 + 3.7374760534685469E+00 3.7575541693949117E+00 3.7777400955883440E+00 + 3.7980344109404962E+00 3.8184376974514023E+00 3.8389505402461688E+00 + 3.8595735275917558E+00 3.8803072509138499E+00 3.9011523048138130E+00 + 3.9221092870857537E+00 3.9431787987336557E+00 3.9643614439886208E+00 + 3.9856578303261907E+00 4.0070685684837750E+00 4.0285942724781618E+00 + 4.0502355596231316E+00 4.0719930505471460E+00 4.0938673692111651E+00 + 4.1158591429265332E+00 4.1379690023729649E+00 4.1601975816166386E+00 + 4.1825455181283733E+00 4.2050134528019179E+00 4.2276020299723234E+00 + 4.2503118974344298E+00 4.2731437064614255E+00 4.2960981118235502E+00 + 4.3191757718068526E+00 4.3423773482320778E+00 4.3657035064736434E+00 + 4.3891549154787235E+00 4.4127322477864297E+00 4.4364361795471048E+00 + 4.4602673905416976E+00 4.4842265642012791E+00 4.5083143876266272E+00 + 4.5325315516079367E+00 4.5568787506446284E+00 4.5813566829652679E+00 + 4.6059660505475826E+00 4.6307075591386040E+00 4.6555819182749039E+00 + 4.6805898413029237E+00 4.7057320453994631E+00 4.7310092515922300E+00 + 4.7564221847805150E+00 4.7819715737559916E+00 4.8076581512236034E+00 + 4.8334826538225872E+00 4.8594458221475980E+00 4.8855484007699328E+00 + 4.9117911382589030E+00 4.9381747872032937E+00 4.9647001042329455E+00 + 4.9913678500404526E+00 5.0181787894029801E+00 5.0451336912041960E+00 + 5.0722333284563215E+00 5.0994784783222986E+00 5.1268699221380691E+00 + 5.1544084454350010E+00 5.1820948379624037E+00 5.2099298937101732E+00 + 5.2379144109315714E+00 5.2660491921661103E+00 5.2943350442625734E+00 + 5.3227727784021504E+00 5.3513632101217050E+00 5.3801071593371459E+00 + 5.4090054503669807E+00 5.4380589119559035E+00 5.4672683772985877E+00 + 5.4966346840636087E+00 5.5261586744173954E+00 5.5558411950484672E+00 + 5.5856830971916303E+00 5.6156852366524719E+00 5.6458484738318226E+00 + 5.6761736737505091E+00 5.7066617060740938E+00 5.7373134451378460E+00 + 5.7681297699718410E+00 5.7991115643261031E+00 5.8302597166960304E+00 + 5.8615751203477906E+00 5.8930586733440222E+00 5.9247112785695082E+00 + 5.9565338437571480E+00 5.9885272815139210E+00 6.0206925093470840E+00 + 6.0530304496905210E+00 6.0855420299311200E+00 6.1182281824354519E+00 + 6.1510898445764264E+00 6.1841279587602589E+00 6.2173434724534093E+00 + 6.2507373382098423E+00 6.2843105136982658E+00 6.3180639617296306E+00 + 6.3519986502847727E+00 6.3861155525420967E+00 6.4204156469055729E+00 + 6.4548999170327086E+00 6.4895693518628432E+00 6.5244249456454328E+00 + 6.5594676979685991E+00 6.5946986137878252E+00 6.6301187034546976E+00 + 6.6657289827459758E+00 6.7015304728926255E+00 6.7375242006092018E+00 + 6.7737111981231983E+00 6.8100925032047437E+00 6.8466691591962805E+00 + 6.8834422150425203E+00 6.9204127253205661E+00 6.9575817502700614E+00 + 6.9949503558237049E+00 7.0325196136377111E+00 7.0702906011226476E+00 + 7.1082644014742327E+00 7.1464421037044987E+00 7.1848248026729342E+00 + 7.2234135991179205E+00 7.2622095996883385E+00 7.3012139169752128E+00 + 7.3404276695437245E+00 7.3798519819651816E+00 7.4194879848493791E+00 + 7.4593368148769148E+00 7.4993996148318880E+00 7.5396775336345918E+00 + 7.5801717263744868E+00 7.6208833543433796E+00 7.6618135850686224E+00 + 7.7029635923467108E+00 7.7443345562768329E+00 7.7859276632948218E+00 + 7.8277441062070885E+00 7.8697850842248647E+00 7.9120518029986346E+00 + 7.9545454746526207E+00 7.9972673178196541E+00 8.0402185576760008E+00 + 8.0834004259766257E+00 8.1268141610903886E+00 8.1704610080356872E+00 + 8.2143422185160464E+00 8.2584590509560645E+00 8.3028127705375532E+00 + 8.3474046492357008E+00 8.3922359658556864E+00 8.4373080060692249E+00 + 8.4826220624515507E+00 8.5281794345183837E+00 8.5739814287633038E+00 + 8.6200293586951116E+00 8.6663245448755521E+00 8.7128683149572268E+00 + 8.7596620037215605E+00 8.8067069531171995E+00 8.8540045122983795E+00 + 8.9015560376637382E+00 8.9493628928950884E+00 8.9974264489966487E+00 + 9.0457480843342566E+00 9.0943291846749421E+00 9.1431711432267111E+00 + 9.1922753606783996E+00 9.2416432452399579E+00 9.2912762126827193E+00 + 9.3411756863801187E+00 9.3913430973484040E+00 9.4417798842877279E+00 + 9.4924874936234485E+00 9.5434673795475025E+00 9.5947210040602293E+00 + 9.6462498370121761E+00 9.6980553561463800E+00 9.7501390471406157E+00 + 9.8025024036501271E+00 9.8551469273503525E+00 9.9080741279800417E+00 + 9.9612855233845963E+00 1.0014782639559483E+01 1.0068567010694132E+01 + 1.0122640179215798E+01 1.0177003695833932E+01 1.0231659119584515E+01 + 1.0286608017874901E+01 1.0341851966528655E+01 1.0397392549830785E+01 + 1.0453231360573243E+01 1.0509370000100462E+01 1.0565810078355444E+01 + 1.0622553213925759E+01 1.0679601034090133E+01 1.0736955174864976E+01 + 1.0794617281051348E+01 1.0852589006282198E+01 1.0910872013069648E+01 + 1.0969467972852824E+01 1.1028378566045637E+01 1.1087605482085120E+01 + 1.1147150419479738E+01 1.1207015085858242E+01 1.1267201198018505E+01 + 1.1327710481976819E+01 1.1388544673017449E+01 1.1449705515742263E+01 + 1.1511194764120917E+01 1.1573014181541000E+01 1.1635165540858765E+01 + 1.1697650624449807E+01 1.1760471224260341E+01 1.1823629141858449E+01 + 1.1887126188485810E+01 1.1950964185109697E+01 1.2015144962475061E+01 + 1.2079670361157197E+01 1.2144542231614357E+01 1.2209762434240996E+01 + 1.2275332839420939E+01 1.2341255327581207E+01 1.2407531789245782E+01 + 1.2474164125089894E+01 1.2541154245994594E+01 1.2608504073101395E+01 + 1.2676215537867549E+01 1.2744290582121257E+01 1.2812731158117538E+01 + 1.2881539228594052E+01 1.2950716766827465E+01 1.3020265756690099E+01 + 1.3090188192706668E+01 1.3160486080111660E+01 1.3231161434906658E+01 + 1.3302216283918346E+01 1.3373652664856438E+01 1.3445472626372313E+01 + 1.3517678228117592E+01 1.3590271540803283E+01 1.3663254646259229E+01 + 1.3736629637493657E+01 1.3810398618753371E+01 1.3884563705583931E+01 + 1.3959127024890492E+01 1.4034090714998623E+01 1.4109456925715815E+01 + 1.4185227818392965E+01 1.4261405565986431E+01 1.4337992353120425E+01 + 1.4414990376149490E+01 1.4492401843221684E+01 1.4570228974341704E+01 + 1.4648474001434757E+01 1.4727139168410361E+01 1.4806226731226902E+01 + 1.4885738957956146E+01 1.4965678128848365E+01 1.5046046536397816E+01 + 1.5126846485408270E+01 1.5208080293059373E+01 1.5289750288972828E+01 + 1.5371858815279460E+01 1.5454408226686175E+01 1.5537400890543577E+01 + 1.5620839186913939E+01 1.5704725508639257E+01 1.5789062261410118E+01 + 1.5873851863834432E+01 1.5959096747507051E+01 1.6044799357079256E+01 + 1.6130962150329093E+01 1.6217587598231674E+01 1.6304678185030106E+01 + 1.6392236408306822E+01 1.6480264779055020E+01 1.6568765821750890E+01 + 1.6657742074425787E+01 1.6747196088739244E+01 1.6837130430051925E+01 + 1.6927547677499401E+01 1.7018450424065957E+01 1.7109841276658983E+01 + 1.7201722856183885E+01 1.7294097797618981E+01 1.7386968750091349E+01 + 1.7480338376952542E+01 1.7574209355855206E+01 1.7668584378829667E+01 + 1.7763466152361207E+01 1.7858857397467791E+01 1.7954760849777880E+01 + 1.8051179259609128E+01 1.8148115392047000E+01 1.8245572027024341E+01 + 1.8343551959400813E+01 1.8442057999043339E+01 1.8541092970906430E+01 + 1.8640659715113305E+01 1.8740761087037448E+01 1.8841399957384251E+01 + 1.8942579212273607E+01 1.9044301753322415E+01 1.9146570497728064E+01 + 1.9249388378351817E+01 1.9352758343803185E+01 1.9456683358524270E+01 + 1.9561166402874850E+01 1.9666210473217991E+01 1.9771818582005697E+01 + 1.9877993757865603E+01 1.9984739045687544E+01 2.0092057506711157E+01 + 2.0199952218613394E+01 2.0308426275597046E+01 2.0417482788479266E+01 + 2.0527124884780854E+01 2.0637355708816074E+01 2.0748178421782566E+01 + 2.0859596201852298E+01 2.0971612244262428E+01 2.1084229761407194E+01 + 2.1197451982929824E+01 2.1311282155815245E+01 2.1425723544483308E+01 + 2.1540779430882157E+01 2.1656453114582639E+01 2.1772747912872632E+01 + 2.1889667160852476E+01 2.2007214211530322E+01 2.2125392435918585E+01 + 2.2244205223130358E+01 2.2363655980476707E+01 2.2483748133564522E+01 + 2.2604485126394465E+01 2.2725870421460066E+01 2.2847907499846688E+01 + 2.2970599861331689E+01 2.3093951024484472E+01 2.3217964526767688E+01 + 2.3342643924638434E+01 2.3467992793650335E+01 2.3594014728556232E+01 + 2.3720713343410971E+01 2.3848092271675370E+01 2.3976155166320108E+01 + 2.4104905699930804E+01 2.4234347564813014E+01 2.4364484473098436E+01 + 2.4495320156851097E+01 2.4626858368174489E+01 2.4759102879319300E+01 + 2.4892057482791312E+01 2.5025725991460494E+01 2.5160112238669992E+01 + 2.5295220078346432E+01 2.5431053385110122E+01 2.5567616054386296E+01 + 2.5704912002516977E+01 2.5842945166872958E+01 2.5981719505967099E+01 + 2.6121238999567463E+01 2.6261507648811833E+01 2.6402529476322073E+01 + 2.6544308526319874E+01 2.6686848864742394E+01 2.6830154579359011E+01 + 2.6974229779888692E+01 2.7119078598117515E+01 2.7264705188017544E+01 + 2.7411113725865576E+01 2.7558308410363288E+01 2.7706293462757266E+01 + 2.7855073126960452E+01 2.8004651669673500E+01 2.8155033380507287E+01 + 2.8306222572106080E+01 2.8458223580270875E+01 2.8611040764084120E+01 + 2.8764678506034343E+01 2.8919141212142215E+01 2.9074433312086519E+01 + 2.9230559259331592E+01 2.9387523531254661E+01 2.9545330629274417E+01 + 2.9703985078980278E+01 2.9863491430261757E+01 3.0023854257439428E+01 + 3.0185078159395637E+01 3.0347167759706831E+01 3.0510127706775791E+01 + 3.0673962673965082E+01 3.0838677359731239E+01 3.1004276487759135E+01 + 3.1170764807097886E+01 3.1338147092296595E+01 3.1506428143541733E+01 + 3.1675612786794346E+01 3.1845705873928889E+01 3.2016712282872000E+01 + 3.2188636917742528E+01 3.2361484708992386E+01 3.2535260613547479E+01 + 3.2709969614950417E+01 3.2885616723502864E+01 3.3062206976409762E+01 + 3.3239745437923290E+01 3.3418237199488573E+01 3.3597687379889301E+01 + 3.3778101125394642E+01 3.3959483609907096E+01 3.4141840035110349E+01 + 3.4325175630619029E+01 3.4509495654128145E+01 3.4694805391564323E+01 + 3.4881110157237053E+01 3.5068415293991194E+01 3.5256726173360434E+01 + 3.5446048195720863E+01 3.5636386790446387E+01 3.5827747416063886E+01 + 3.6020135560410296E+01 3.6213556740789443E+01 3.6408016504130806E+01 + 3.6603520427148155E+01 3.6800074116499609E+01 3.6997683208948722E+01 + 3.7196353371525561E+01 3.7396090301689846E+01 3.7596899727493771E+01 + 3.7798787407746786E+01 3.8001759132180261E+01 3.8205820721614018E+01 + 3.8410978028122827E+01 3.8617236935204382E+01 3.8824603357948291E+01 + 3.9033083243205205E+01 3.9242682569757889E+01 3.9453407348492156E+01 + 3.9665263622569817E+01 3.9878257467601387E+01 4.0092394991820889E+01 + 4.0307682336260591E+01 4.0524125674927241E+01 4.0741731214979417E+01 + 4.0960505196904975E+01 4.1180453894700634E+01 4.1401583616051305E+01 + 4.1623900702511548E+01 4.1847411529686958E+01 4.2072122507417198E+01 + 4.2298040079960046E+01 4.2525170726175695E+01 4.2753520959713143E+01 + 4.2983097329196390E+01 4.3213906418412840E+01 4.3445954846501522E+01 + 4.3679249268143508E+01 4.3913796373752191E+01 4.4149602889665459E+01 + 4.4386675578338753E+01 4.4625021238538494E+01 4.4864646705537652E+01 + 4.5105558851311194E+01 4.5347764584733731E+01 4.5591270851777040E+01 + 4.5836084635709916E+01 4.6082212957297848E+01 4.6329662875004615E+01 + 4.6578441485194951E+01 4.6828555922337486E+01 4.7080013359210007E+01 + 4.7332821007104478E+01 4.7586986116034531E+01 4.7842515974942728E+01 + 4.8099417911910209E+01 4.8357699294366320E+01 4.8617367529300118E+01 + 4.8878430063473026E+01 4.9140894383631846E+01 4.9404768016724091E+01 + 4.9670058530113195E+01 4.9936773531796220E+01 5.0204920670621384E+01 + 5.0474507636507752E+01 5.0745542160665956E+01 5.1018032015819323E+01 + 5.1291985016427532E+01 5.1567409018909935E+01 5.1844311921871608E+01 + 5.2122701666329156E+01 5.2402586235939182E+01 5.2683973657226545E+01 + 5.2966871999814899E+01 5.3251289376658328E+01 5.3537233944273382E+01 + 5.3824713902973741E+01 5.4113737497104644E+01 5.4404313015280032E+01 + 5.4696448790619534E+01 5.4990153200988196E+01 5.5285434669236039E+01 + 5.5582301663439949E+01 5.5880762697146778E+01 5.6180826329616828E+01 + 5.6482501166070094E+01 5.6785795857932257E+01 5.7090719103083586E+01 + 5.7397279646107663E+01 5.7705486278542473E+01 5.8015347839132843E+01 + 5.8326873214083172E+01 5.8640071337313131E+01 5.8954951190713018E+01 + 5.9271521804402177E+01 5.9589792256987103E+01 5.9909771675822704E+01 + 6.0231469237273259E+01 6.0554894166975906E+01 6.0880055740105540E+01 + 6.1206963281640071E+01 6.1535626166628681E+01 6.1866053820459847E+01 + 6.2198255719132447E+01 6.2532241389526760E+01 6.2868020409678394E+01 + 6.3205602409052347E+01 6.3544997068819391E+01 6.3886214122134099E+01 + 6.4229263354413135E+01 6.4574154603616833E+01 6.4920897760530423E+01 + 6.5269502769048529E+01 6.5619979626459482E+01 6.5972338383732946E+01 + 6.6326589145807276E+01 6.6682742071879773E+01 6.7040807375698293E+01 + 6.7400795325853309E+01 6.7762716246073481E+01 6.8126580515520601E+01 + 6.8492398569088294E+01 6.8860180897700431E+01 6.9229938048612311E+01 + 6.9601680625713527E+01 6.9975419289831180E+01 7.0351164759036649E+01 + 7.0728927808951923E+01 7.1108719273059634E+01 7.1490550043012732E+01 + 7.1874431068947871E+01 7.2260373359798521E+01 7.2648387983611059E+01 + 7.3038486067862593E+01 7.3430678799779159E+01 7.3824977426657583E+01 + 7.4221393256186957E+01 7.4619937656774056E+01 7.5020622057868209E+01 + 7.5423457950290185E+01 7.5828456886560801E+01 7.6235630481232590E+01 + 7.6644990411223304E+01 7.7056548416149866E+01 7.7470316298666049E+01 + 7.7886305924799998E+01 7.8304529224295422E+01 7.8724998190952832E+01 + 7.9147724882974416E+01 7.9572721423308991E+01 8.0000000000000071E+01 + + + 9.5593048739240878E-06 9.6106339535660067E-06 9.6622386468065755E-06 + 9.7141204335643143E-06 9.7662808017042335E-06 9.8187212470804938E-06 + 9.8714432735792983E-06 9.9244483931620407E-06 9.9777381259086439E-06 + 1.0031314000061169E-05 1.0085177552067630E-05 1.0139330326626066E-05 + 1.0193773876728831E-05 1.0248509763707141E-05 1.0303539557275843E-05 + 1.0358864835578422E-05 1.0414487185232283E-05 1.0470408201374235E-05 + 1.0526629487706231E-05 1.0583152656541376E-05 1.0639979328850154E-05 + 1.0697111134306918E-05 1.0754549711336618E-05 1.0812296707161803E-05 + 1.0870353777849846E-05 1.0928722588360443E-05 1.0987404812593355E-05 + 1.1046402133436421E-05 1.1105716242813819E-05 1.1165348841734574E-05 + 1.1225301640341355E-05 1.1285576357959512E-05 1.1346174723146380E-05 + 1.1407098473740853E-05 1.1468349356913230E-05 1.1529929129215305E-05 + 1.1591839556630745E-05 1.1654082414625753E-05 1.1716659488199960E-05 + 1.1779572571937624E-05 1.1842823470059104E-05 1.1906413996472592E-05 + 1.1970345974826130E-05 1.2034621238559919E-05 1.2099241630958889E-05 + 1.2164209005205564E-05 1.2229525224433211E-05 1.2295192161779263E-05 + 1.2361211700439047E-05 1.2427585733719773E-05 1.2494316165094852E-05 + 1.2561404908258475E-05 1.2628853887180486E-05 1.2696665036161567E-05 + 1.2764840299888704E-05 1.2833381633490965E-05 1.2902291002595564E-05 + 1.2971570383384220E-05 1.3041221762649847E-05 1.3111247137853537E-05 + 1.3181648517181811E-05 1.3252427919604244E-05 1.3323587374931347E-05 + 1.3395128923872779E-05 1.3467054618095874E-05 1.3539366520284485E-05 + 1.3612066704198124E-05 1.3685157254731435E-05 1.3758640267974001E-05 + 1.3832517851270435E-05 1.3906792123280829E-05 1.3981465214041505E-05 + 1.4056539265026098E-05 1.4132016429206980E-05 1.4207898871116995E-05 + 1.4284188766911532E-05 1.4360888304430941E-05 1.4437999683263262E-05 + 1.4515525114807324E-05 1.4593466822336142E-05 1.4671827041060694E-05 + 1.4750608018194018E-05 1.4829812013015641E-05 1.4909441296936394E-05 + 1.4989498153563547E-05 1.5069984878766279E-05 1.5150903780741539E-05 + 1.5232257180080235E-05 1.5314047409833789E-05 1.5396276815581033E-05 + 1.5478947755495469E-05 1.5562062600412929E-05 1.5645623733899535E-05 + 1.5729633552320061E-05 1.5814094464906669E-05 1.5899008893827984E-05 + 1.5984379274258570E-05 1.6070208054448761E-05 1.6156497695794871E-05 + 1.6243250672909771E-05 1.6330469473693890E-05 1.6418156599406522E-05 + 1.6506314564737581E-05 1.6594945897879711E-05 1.6684053140600794E-05 + 1.6773638848316838E-05 1.6863705590165252E-05 1.6954255949078552E-05 + 1.7045292521858394E-05 1.7136817919250090E-05 1.7228834766017437E-05 + 1.7321345701018022E-05 1.7414353377278882E-05 1.7507860462072579E-05 + 1.7601869636993730E-05 1.7696383598035861E-05 1.7791405055668758E-05 + 1.7886936734916182E-05 1.7982981375434023E-05 1.8079541731588856E-05 + 1.8176620572536958E-05 1.8274220682303697E-05 1.8372344859863369E-05 + 1.8470995919219487E-05 1.8570176689485471E-05 1.8669890014965780E-05 + 1.8770138755237482E-05 1.8870925785232262E-05 1.8972253995318871E-05 + 1.9074126291386011E-05 1.9176545594925664E-05 1.9279514843116906E-05 + 1.9383036988910094E-05 1.9487115001111585E-05 1.9591751864468853E-05 + 1.9696950579756110E-05 1.9802714163860341E-05 1.9909045649867823E-05 + 2.0015948087151122E-05 2.0123424541456549E-05 2.0231478094992025E-05 + 2.0340111846515561E-05 2.0449328911424044E-05 2.0559132421842620E-05 + 2.0669525526714513E-05 2.0780511391891325E-05 2.0892093200223830E-05 + 2.1004274151653247E-05 2.1117057463303014E-05 2.1230446369571041E-05 + 2.1344444122222469E-05 2.1459053990482928E-05 2.1574279261132296E-05 + 2.1690123238598943E-05 2.1806589245054494E-05 2.1923680620509137E-05 + 2.2041400722907345E-05 2.2159752928224253E-05 2.2278740630562399E-05 + 2.2398367242249104E-05 2.2518636193934333E-05 2.2639550934689049E-05 + 2.2761114932104162E-05 2.2883331672389922E-05 2.3006204660475971E-05 + 2.3129737420111772E-05 2.3253933493967742E-05 2.3378796443736779E-05 + 2.3504329850236474E-05 2.3630537313511720E-05 2.3757422452938042E-05 + 2.3884988907325328E-05 2.4013240335022197E-05 2.4142180414020949E-05 + 2.4271812842062978E-05 2.4402141336744887E-05 2.4533169635625053E-05 + 2.4664901496330815E-05 2.4797340696666263E-05 2.4930491034720548E-05 + 2.5064356328976822E-05 2.5198940418421746E-05 2.5334247162655561E-05 + 2.5470280442002806E-05 2.5607044157623576E-05 2.5744542231625400E-05 + 2.5882778607175723E-05 2.6021757248615000E-05 2.6161482141570374E-05 + 2.6301957293069970E-05 2.6443186731657813E-05 2.6585174507509365E-05 + 2.6727924692547671E-05 2.6871441380560130E-05 2.7015728687315913E-05 + 2.7160790750683961E-05 2.7306631730751700E-05 2.7453255809944282E-05 + 2.7600667193144591E-05 2.7748870107813785E-05 2.7897868804112556E-05 + 2.8047667555023013E-05 2.8198270656471214E-05 2.8349682427450354E-05 + 2.8501907210144657E-05 2.8654949370053878E-05 2.8808813296118493E-05 + 2.8963503400845603E-05 2.9119024120435403E-05 2.9275379914908486E-05 + 2.9432575268233679E-05 2.9590614688456683E-05 2.9749502707829333E-05 + 2.9909243882939574E-05 3.0069842794842117E-05 3.0231304049189884E-05 + 3.0393632276365974E-05 3.0556832131616580E-05 3.0720908295184376E-05 + 3.0885865472442844E-05 3.1051708394031116E-05 3.1218441815989709E-05 + 3.1386070519896896E-05 3.1554599313005821E-05 3.1724033028382367E-05 + 3.1894376525043772E-05 3.2065634688097975E-05 3.2237812428883679E-05 + 3.2410914685111246E-05 3.2584946421004248E-05 3.2759912627441903E-05 + 3.2935818322102093E-05 3.3112668549605410E-05 3.3290468381659658E-05 + 3.3469222917205461E-05 3.3648937282562355E-05 3.3829616631575896E-05 + 3.4011266145765403E-05 3.4193891034472588E-05 3.4377496535010943E-05 + 3.4562087912815894E-05 3.4747670461595908E-05 3.4934249503484145E-05 + 3.5121830389191265E-05 3.5310418498158714E-05 3.5500019238713137E-05 + 3.5690638048221353E-05 3.5882280393246395E-05 3.6074951769704174E-05 + 3.6268657703021208E-05 3.6463403748292977E-05 3.6659195490443287E-05 + 3.6856038544384428E-05 3.7053938555178176E-05 3.7252901198197713E-05 + 3.7452932179290369E-05 3.7654037234941234E-05 3.7856222132437720E-05 + 3.8059492670034925E-05 3.8263854677121877E-05 3.8469314014388792E-05 + 3.8675876573995063E-05 3.8883548279738322E-05 3.9092335087224221E-05 + 3.9302242984037334E-05 3.9513277989912772E-05 3.9725446156908893E-05 + 3.9938753569580789E-05 4.0153206345154891E-05 4.0368810633704243E-05 + 4.0585572618325036E-05 4.0803498515313782E-05 4.1022594574345712E-05 + 4.1242867078653895E-05 4.1464322345209513E-05 4.1686966724902969E-05 + 4.1910806602726021E-05 4.2135848397954946E-05 4.2362098564334522E-05 + 4.2589563590263226E-05 4.2818249998979223E-05 4.3048164348747534E-05 + 4.3279313233047962E-05 4.3511703280764358E-05 4.3745341156374542E-05 + 4.3980233560141627E-05 4.4216387228305998E-05 4.4453808933278573E-05 + 4.4692505483834984E-05 4.4932483725310915E-05 4.5173750539798330E-05 + 4.5416312846342880E-05 4.5660177601142268E-05 4.5905351797745857E-05 + 4.6151842467255136E-05 4.6399656678525346E-05 4.6648801538368282E-05 + 4.6899284191756024E-05 4.7151111822025919E-05 4.7404291651086462E-05 + 4.7658830939624552E-05 4.7914736987313620E-05 4.8172017133022986E-05 + 4.8430678755028320E-05 4.8690729271223294E-05 4.8952176139332200E-05 + 4.9215026857123942E-05 4.9479288962626957E-05 4.9744970034345475E-05 + 5.0012077691476782E-05 5.0280619594129780E-05 5.0550603443544620E-05 + 5.0822036982313596E-05 5.1094927994603161E-05 5.1369284306377156E-05 + 5.1645113785621283E-05 5.1922424342568715E-05 5.2201223929926912E-05 + 5.2481520543105739E-05 5.2763322220446779E-05 5.3046637043453735E-05 + 5.3331473137024386E-05 5.3617838669683395E-05 5.3905741853816699E-05 + 5.4195190945906953E-05 5.4486194246770348E-05 5.4778760101794639E-05 + 5.5072896901178514E-05 5.5368613080172088E-05 5.5665917119319056E-05 + 5.5964817544699563E-05 5.6265322928175002E-05 5.6567441887633732E-05 + 5.6871183087238131E-05 5.7176555237673238E-05 5.7483567096396425E-05 + 5.7792227467888612E-05 5.8102545203906727E-05 5.8414529203737608E-05 + 5.8728188414453084E-05 5.9043531831166783E-05 5.9360568497291859E-05 + 5.9679307504800502E-05 5.9999757994484575E-05 6.0321929156217861E-05 + 6.0645830229219486E-05 6.0971470502318966E-05 6.1298859314222584E-05 + 6.1628006053781134E-05 6.1958920160259327E-05 6.2291611123606300E-05 + 6.2626088484727920E-05 6.2962361835760259E-05 6.3300440820344874E-05 + 6.3640335133905172E-05 6.3982054523924572E-05 6.4325608790225918E-05 + 6.4671007785252767E-05 6.5018261414351584E-05 6.5367379636056179E-05 + 6.5718372462372979E-05 6.6071249959068375E-05 6.6426022245957264E-05 + 6.6782699497193308E-05 6.7141291941560729E-05 6.7501809862767576E-05 + 6.7864263599740735E-05 6.8228663546922389E-05 6.8595020154568067E-05 + 6.8963343929046399E-05 6.9333645433140373E-05 6.9705935286350305E-05 + 7.0080224165198346E-05 7.0456522803534613E-05 7.0834841992845150E-05 + 7.1215192582561309E-05 7.1597585480370863E-05 7.1982031652530900E-05 + 7.2368542124182279E-05 7.2757127979665841E-05 7.3147800362840127E-05 + 7.3540570477401189E-05 7.3935449587203759E-05 7.4332449016584337E-05 + 7.4731580150685819E-05 7.5132854435784141E-05 7.5536283379616529E-05 + 7.5941878551711412E-05 7.6349651583720366E-05 7.6759614169751448E-05 + 7.7171778066704826E-05 7.7586155094609815E-05 7.8002757136963846E-05 + 7.8421596141073233E-05 7.8842684118395886E-05 7.9266033144885785E-05 + 7.9691655361339137E-05 8.0119562973742680E-05 8.0549768253623740E-05 + 8.0982283538402072E-05 8.1417121231743784E-05 8.1854293803916843E-05 + 8.2293813792148950E-05 8.2735693800986890E-05 8.3179946502658162E-05 + 8.3626584637434305E-05 8.4075621013996097E-05 8.4527068509801238E-05 + 8.4980940071453437E-05 8.5437248715073726E-05 8.5896007526673599E-05 + 8.6357229662530584E-05 8.6820928349565324E-05 8.7287116885720998E-05 + 8.7755808640344494E-05 8.8227017054570125E-05 8.8700755641704849E-05 + 8.9177037987615905E-05 8.9655877751120371E-05 9.0137288664376888E-05 + 9.0621284533279518E-05 9.1107879237853687E-05 9.1597086732654191E-05 + 9.2088921047165176E-05 9.2583396286202900E-05 9.3080526630319956E-05 + 9.3580326336211995E-05 9.4082809737126524E-05 9.4587991243274048E-05 + 9.5095885342241302E-05 9.5606506599406744E-05 9.6119869658358123E-05 + 9.6635989241312630E-05 9.7154880149538956E-05 9.7676557263781877E-05 + 9.8201035544688805E-05 9.8728330033239094E-05 9.9258455851175198E-05 + 9.9791428201436461E-05 1.0032726236859484E-04 1.0086597371929364E-04 + 1.0140757770268785E-04 1.0195208985088743E-04 1.0249952577940265E-04 + 1.0304990118759172E-04 1.0360323185911137E-04 1.0415953366236933E-04 + 1.0471882255097932E-04 1.0528111456421861E-04 1.0584642582748814E-04 + 1.0641477255277478E-04 1.0698617103911642E-04 1.0756063767306910E-04 + 1.0813818892917733E-04 1.0871884137044629E-04 1.0930261164881701E-04 + 1.0988951650564354E-04 1.1047957277217357E-04 1.1107279737003077E-04 + 1.1166920731170013E-04 1.1226881970101601E-04 1.1287165173365230E-04 + 1.1347772069761590E-04 1.1408704397374237E-04 1.1469963903619442E-04 + 1.1531552345296281E-04 1.1593471488637054E-04 1.1655723109357908E-04 + 1.1718308992709784E-04 1.1781230933529576E-04 1.1844490736291648E-04 + 1.1908090215159561E-04 1.1972031194038101E-04 1.2036315506625575E-04 + 1.2100944996466421E-04 1.2165921517004061E-04 1.2231246931634055E-04 + 1.2296923113757550E-04 1.2362951946834981E-04 1.2429335324440113E-04 + 1.2496075150314335E-04 1.2563173338421251E-04 1.2630631813001560E-04 + 1.2698452508628266E-04 1.2766637370262136E-04 1.2835188353307487E-04 + 1.2904107423668246E-04 1.2973396557804359E-04 1.3043057742788449E-04 + 1.3113092976362804E-04 1.3183504266996672E-04 1.3254293633943855E-04 + 1.3325463107300635E-04 1.3397014728063969E-04 1.3468950548190027E-04 + 1.3541272630653047E-04 1.3613983049504496E-04 1.3687083889932537E-04 + 1.3760577248321849E-04 1.3834465232313715E-04 1.3908749960866502E-04 + 1.3983433564316401E-04 1.4058518184438543E-04 1.4134005974508382E-04 + 1.4209899099363501E-04 1.4286199735465656E-04 1.4362910070963211E-04 + 1.4440032305753858E-04 1.4517568651547760E-04 1.4595521331930931E-04 + 1.4673892582429035E-04 1.4752684650571460E-04 1.4831899795955813E-04 + 1.4911540290312705E-04 1.4991608417570888E-04 1.5072106473922774E-04 + 1.5153036767890255E-04 1.5234401620390942E-04 1.5316203364804706E-04 + 1.5398444347040606E-04 1.5481126925604127E-04 1.5564253471664875E-04 + 1.5647826369124531E-04 1.5731848014685255E-04 1.5816320817918370E-04 + 1.5901247201333504E-04 1.5986629600448055E-04 1.6072470463857034E-04 + 1.6158772253303263E-04 1.6245537443748006E-04 1.6332768523441942E-04 + 1.6420467993996500E-04 1.6508638370455627E-04 1.6597282181367881E-04 + 1.6686401968858992E-04 1.6776000288704711E-04 1.6866079710404163E-04 + 1.6956642817253463E-04 1.7047692206419881E-04 1.7139230489016262E-04 + 1.7231260290175943E-04 1.7323784249127986E-04 1.7416805019272947E-04 + 1.7510325268258898E-04 1.7604347678057977E-04 1.7698874945043248E-04 + 1.7793909780066094E-04 1.7889454908533913E-04 1.7985513070488293E-04 + 1.8082087020683570E-04 1.8179179528665873E-04 1.8276793378852515E-04 + 1.8374931370611830E-04 1.8473596318343516E-04 1.8572791051559264E-04 + 1.8672518414963971E-04 1.8772781268537277E-04 1.8873582487615622E-04 + 1.8974924962974650E-04 1.9076811600912178E-04 1.9179245323331485E-04 + 1.9282229067825151E-04 1.9385765787759241E-04 1.9489858452358087E-04 + 1.9594510046789358E-04 1.9699723572249729E-04 1.9805502046050898E-04 + 1.9911848501706162E-04 2.0018765989017384E-04 2.0126257574162461E-04 + 2.0234326339783274E-04 2.0342975385074049E-04 2.0452207825870280E-04 + 2.0562026794738065E-04 2.0672435441063954E-04 2.0783436931145227E-04 + 2.0895034448280758E-04 2.1007231192862267E-04 2.1120030382466111E-04 + 2.1233435251945525E-04 2.1347449053523467E-04 2.1462075056885807E-04 + 2.1577316549275155E-04 2.1693176835585072E-04 2.1809659238454897E-04 + 2.1926767098365033E-04 2.2044503773732693E-04 2.2162872641008302E-04 + 2.2281877094772209E-04 2.2401520547832147E-04 2.2521806431321050E-04 + 2.2642738194795465E-04 2.2764319306334450E-04 2.2886553252639088E-04 + 2.3009443539132425E-04 2.3132993690060046E-04 2.3257207248591067E-04 + 2.3382087776919845E-04 2.3507638856368066E-04 2.3633864087487484E-04 + 2.3760767090163129E-04 2.3888351503717183E-04 2.4016620987013314E-04 + 2.4145579218561611E-04 2.4275229896624043E-04 2.4405576739320583E-04 + 2.4536623484735793E-04 2.4668373891026033E-04 2.4800831736527238E-04 + 2.4934000819863255E-04 2.5067884960054828E-04 2.5202487996629059E-04 + 2.5337813789729592E-04 2.5473866220227209E-04 2.5610649189831237E-04 + 2.5748166621201378E-04 2.5886422458060209E-04 2.6025420665306279E-04 + 2.6165165229127845E-04 2.6305660157117158E-04 2.6446909478385403E-04 + 2.6588917243678214E-04 2.6731687525491897E-04 2.6875224418190205E-04 + 2.7019532038121720E-04 2.7164614523737942E-04 2.7310476035711937E-04 + 2.7457120757057692E-04 2.7604552893250065E-04 2.7752776672345373E-04 + 2.7901796345102648E-04 2.8051616185105553E-04 2.8202240488884949E-04 + 2.8353673576042088E-04 2.8505919789372468E-04 2.8658983494990448E-04 + 2.8812869082454391E-04 2.8967580964892601E-04 2.9123123579129808E-04 + 2.9279501385814509E-04 2.9436718869546791E-04 2.9594780539007014E-04 + 2.9753690927085088E-04 2.9913454591010412E-04 3.0074076112482671E-04 + 3.0235560097803147E-04 3.0397911178006867E-04 3.0561134008995339E-04 + 3.0725233271670195E-04 3.0890213672067298E-04 3.1056079941491830E-04 + 3.1222836836653840E-04 3.1390489139804755E-04 3.1559041658874520E-04 + 3.1728499227609444E-04 3.1898866705710804E-04 3.2070148978974284E-04 + 3.2242350959430015E-04 3.2415477585483535E-04 3.2589533822057257E-04 + 3.2764524660733015E-04 3.2940455119895165E-04 3.3117330244874415E-04 + 3.3295155108092650E-04 3.3473934809208279E-04 3.3653674475262564E-04 + 3.3834379260826614E-04 3.4016054348149261E-04 3.4198704947305562E-04 + 3.4382336296346326E-04 3.4566953661448305E-04 3.4752562337065187E-04 + 3.4939167646079434E-04 3.5126774939954941E-04 3.5315389598890545E-04 + 3.5505017031974272E-04 3.5695662677338408E-04 3.5887332002315598E-04 + 3.6080030503595487E-04 3.6273763707382476E-04 3.6468537169554127E-04 + 3.6664356475820460E-04 3.6861227241884284E-04 3.7059155113602097E-04 + 3.7258145767146082E-04 3.7458204909166832E-04 3.7659338276957059E-04 + 3.7861551638616100E-04 3.8064850793215351E-04 3.8269241570964500E-04 + 3.8474729833378872E-04 3.8681321473447365E-04 3.8889022415801591E-04 + 3.9097838616885638E-04 3.9307776065127003E-04 3.9518840781108317E-04 + 3.9731038817739935E-04 3.9944376260433599E-04 4.0158859227276868E-04 + 4.0374493869208651E-04 4.0591286370195601E-04 4.0809242947409413E-04 + 4.1028369851405113E-04 4.1248673366300366E-04 4.1470159809955666E-04 + 4.1692835534155545E-04 4.1916706924790615E-04 4.2141780402040889E-04 + 4.2368062420559727E-04 4.2595559469659074E-04 4.2824278073495451E-04 + 4.3054224791257129E-04 4.3285406217352212E-04 4.3517828981597763E-04 + 4.3751499749409862E-04 4.3986425221994875E-04 4.4222612136541532E-04 + 4.4460067266414207E-04 4.4698797421347143E-04 4.4938809447639627E-04 + 4.5180110228352572E-04 4.5422706683505667E-04 4.5666605770276010E-04 + 4.5911814483197438E-04 4.6158339854361332E-04 4.6406188953618130E-04 + 4.6655368888780143E-04 4.6905886805825322E-04 4.7157749889102277E-04 + 4.7410965361536280E-04 4.7665540484836402E-04 4.7921482559703697E-04 + 4.8178798926040706E-04 4.8437496963161836E-04 4.8697584090005055E-04 + 4.8959067765344619E-04 4.9221955488004915E-04 4.9486254797075665E-04 + 4.9751973272127979E-04 5.0019118533431851E-04 5.0287698242174527E-04 + 5.0557720100680408E-04 5.0829191852631796E-04 5.1102121283291043E-04 + 5.1376516219723710E-04 5.1652384531023204E-04 5.1929734128536309E-04 + 5.2208572966090097E-04 5.2488909040220055E-04 5.2770750390399447E-04 + 5.3054105099269687E-04 5.3338981292872368E-04 5.3625387140882194E-04 + 5.3913330856841216E-04 5.4202820698394502E-04 5.4493864967526835E-04 + 5.4786472010800882E-04 5.5080650219596486E-04 5.5376408030351426E-04 + 5.5673753924803096E-04 5.5972696430232113E-04 5.6273244119706622E-04 + 5.6575405612328182E-04 5.6879189573478997E-04 5.7184604715070401E-04 + 5.7491659795792641E-04 5.7800363621366248E-04 5.8110725044794209E-04 + 5.8422752966616248E-04 5.8736456335163850E-04 5.9051844146816937E-04 + 5.9368925446261862E-04 5.9687709326750797E-04 6.0008204930362471E-04 + 6.0330421448264436E-04 6.0654368120976608E-04 6.0980054238636095E-04 + 6.1307489141263958E-04 6.1636682219032811E-04 6.1967642912536208E-04 + 6.2300380713059338E-04 6.2634905162851223E-04 6.2971225855398426E-04 + 6.3309352435700133E-04 6.3649294600544629E-04 6.3991062098787629E-04 + 6.4334664731631702E-04 6.4680112352907371E-04 6.5027414869355698E-04 + 6.5376582240912393E-04 6.5727624480993463E-04 6.6080551656782344E-04 + 6.6435373889518713E-04 6.6792101354788453E-04 6.7150744282815881E-04 + 6.7511312958756840E-04 6.7873817722993734E-04 6.8238268971432074E-04 + 6.8604677155798671E-04 6.8973052783941231E-04 6.9343406420129883E-04 + 6.9715748685359857E-04 7.0090090257656380E-04 7.0466441872380826E-04 + 7.0844814322538400E-04 7.1225218459087896E-04 7.1607665191252706E-04 + 7.1992165486833794E-04 7.2378730372524150E-04 7.2767370934225136E-04 + 7.3158098317364082E-04 7.3550923727214385E-04 7.3945858429216524E-04 + 7.4342913749301219E-04 7.4742101074214292E-04 7.5143431851843064E-04 + 7.5546917591544870E-04 7.5952569864476990E-04 7.6360400303928343E-04 + 7.6770420605653492E-04 7.7182642528207744E-04 7.7597077893284418E-04 + 7.8013738586053957E-04 7.8432636555504686E-04 7.8853783814785512E-04 + 7.9277192441550460E-04 7.9702874578305063E-04 8.0130842432754319E-04 + 8.0561108278153209E-04 8.0993684453658447E-04 8.1428583364682257E-04 + 8.1865817483248290E-04 8.2305399348349254E-04 8.2747341566306463E-04 + 8.3191656811131486E-04 8.3638357824889268E-04 8.4087457418064045E-04 + 8.4538968469926364E-04 8.4992903928902594E-04 8.5449276812946172E-04 + 8.5908100209910955E-04 8.6369387277926630E-04 8.6833151245775946E-04 + 8.7299405413274243E-04 8.7768163151650505E-04 8.8239437903931371E-04 + 8.8713243185326246E-04 8.9189592583614980E-04 8.9668499759537623E-04 + 9.0149978447186100E-04 9.0634042454398086E-04 9.1120705663153109E-04 + 9.1609982029970324E-04 9.2101885586309210E-04 9.2596430438971681E-04 + 9.3093630770506699E-04 9.3593500839616965E-04 9.4096054981567933E-04 + 9.4601307608598788E-04 9.5109273210335977E-04 9.5619966354208296E-04 + 9.6133401685865184E-04 9.6649593929596463E-04 9.7168557888754599E-04 + 9.7690308446179248E-04 9.8214860564624145E-04 9.8742229287186083E-04 + 9.9272429737736400E-04 9.9805477121354784E-04 1.0034138672476497E-03 + 1.0088017391677358E-03 1.0142185414871068E-03 1.0196644295487280E-03 + 1.0251395595296856E-03 1.0306440884456651E-03 1.0361781741554540E-03 + 1.0417419753654701E-03 1.0473356516343087E-03 1.0529593633773248E-03 + 1.0586132718712288E-03 1.0642975392587133E-03 1.0700123285531029E-03 + 1.0757578036430285E-03 1.0815341292971280E-03 1.0873414711687714E-03 + 1.0931799958008121E-03 1.0990498706303588E-03 1.1049512639935842E-03 + 1.1108843451305480E-03 1.1168492841900507E-03 1.1228462522345144E-03 + 1.1288754212448876E-03 1.1349369641255780E-03 1.1410310547094109E-03 + 1.1471578677626113E-03 1.1533175789898216E-03 1.1595103650391373E-03 + 1.1657364035071720E-03 1.1719958729441520E-03 1.1782889528590365E-03 + 1.1846158237246653E-03 1.1909766669829342E-03 1.1973716650500008E-03 + 1.2038010013215091E-03 1.2102648601778577E-03 1.2167634269894820E-03 + 1.2232968881221720E-03 1.2298654309424156E-03 1.2364692438227730E-03 + 1.2431085161472791E-03 1.2497834383168747E-03 1.2564942017548632E-03 + 1.2632409989124069E-03 1.2700240232740405E-03 1.2768434693632227E-03 + 1.2836995327479136E-03 1.2905924100461833E-03 1.2975222989318508E-03 + 1.3044893981401528E-03 1.3114939074734449E-03 1.3185360278069247E-03 + 1.3256159610944022E-03 1.3327339103740843E-03 1.3398900797744011E-03 + 1.3470846745198578E-03 1.3543179009369219E-03 1.3615899664599382E-03 + 1.3689010796370806E-03 1.3762514501363277E-03 1.3836412887514814E-03 + 1.3910708074082096E-03 1.3985402191701226E-03 1.4060497382448857E-03 + 1.4135995799903602E-03 1.4211899609207804E-03 1.4288210987129625E-03 + 1.4364932122125497E-03 1.4442065214402807E-03 1.4519612475983087E-03 + 1.4597576130765402E-03 1.4675958414590129E-03 1.4754761575303083E-03 + 1.4833987872819978E-03 1.4913639579191246E-03 1.4993718978667185E-03 + 1.5074228367763448E-03 1.5155170055326944E-03 1.5236546362602031E-03 + 1.5318359623297077E-03 1.5400612183651395E-03 1.5483306402502520E-03 + 1.5566444651353873E-03 1.5650029314442755E-03 1.5734062788808735E-03 + 1.5818547484362355E-03 1.5903485823954297E-03 1.5988880243444840E-03 + 1.6074733191773704E-03 1.6161047131030297E-03 1.6247824536524309E-03 + 1.6335067896856726E-03 1.6422779713991167E-03 1.6510962503325627E-03 + 1.6599618793764663E-03 1.6688751127791881E-03 1.6778362061542855E-03 + 1.6868454164878435E-03 1.6959030021458437E-03 1.7050092228815756E-03 + 1.7141643398430855E-03 1.7233686155806601E-03 1.7326223140543659E-03 + 1.7419257006416123E-03 1.7512790421447618E-03 1.7606826067987854E-03 + 1.7701366642789520E-03 1.7796414857085623E-03 1.7891973436667253E-03 + 1.7988045121961765E-03 1.8084632668111298E-03 1.8181738845051885E-03 + 1.8279366437592836E-03 1.8377518245496609E-03 1.8476197083559097E-03 + 1.8575405781690354E-03 1.8675147184995752E-03 1.8775424153857590E-03 + 1.8876239564017067E-03 1.8977596306656828E-03 1.9079497288483833E-03 + 1.9181945431812723E-03 1.9284943674649628E-03 1.9388494970776419E-03 + 1.9492602289835422E-03 1.9597268617414579E-03 1.9702496955133087E-03 + 1.9808290320727415E-03 1.9914651748137928E-03 2.0021584287595851E-03 + 2.0129091005710756E-03 2.0237174985558485E-03 2.0345839326769599E-03 + 2.0455087145618243E-03 2.0564921575111543E-03 2.0675345765079384E-03 + 2.0786362882264835E-03 2.0897976110414930E-03 2.1010188650371934E-03 + 2.1123003720165180E-03 2.1236424555103332E-03 2.1350454407867200E-03 + 2.1465096548602971E-03 2.1580354265016049E-03 2.1696230862465237E-03 + 2.1812729664057676E-03 2.1929854010744026E-03 2.2047607261414339E-03 + 2.2165992792994344E-03 2.2285014000542331E-03 2.2404674297346475E-03 + 2.2524977115022781E-03 2.2645925903613385E-03 2.2767524131685627E-03 + 2.2889775286431451E-03 2.3012682873767400E-03 2.3136250418435210E-03 + 2.3260481464102830E-03 2.3385379573466107E-03 2.3510948328350914E-03 + 2.3637191329815908E-03 2.3764112198255720E-03 2.3891714573504898E-03 + 2.4020002114942206E-03 2.4148978501595596E-03 2.4278647432247717E-03 + 2.4409012625541977E-03 2.4540077820089192E-03 2.4671846774574828E-03 + 2.4804323267866696E-03 2.4937511099123464E-03 2.5071414087903510E-03 + 2.5206036074274497E-03 2.5341380918923475E-03 2.5477452503267625E-03 + 2.5614254729565545E-03 2.5751791521029183E-03 2.5890066821936345E-03 + 2.6029084597743741E-03 2.6168848835200829E-03 2.6309363542464047E-03 + 2.6450632749211813E-03 2.6592660506760055E-03 2.6735450888178409E-03 + 2.6879007988407032E-03 2.7023335924374050E-03 2.7168438835113527E-03 + 2.7314320881884329E-03 2.7460986248289319E-03 2.7608439140395422E-03 + 2.7756683786854179E-03 2.7905724439023076E-03 2.8055565371087423E-03 + 2.8206210880182938E-03 2.8357665286519026E-03 2.8509932933502556E-03 + 2.8663018187862557E-03 2.8816925439775383E-03 2.8971659102990611E-03 + 2.9127223614957617E-03 2.9283623436952874E-03 2.9440863054207836E-03 + 2.9598946976037606E-03 2.9757879735970213E-03 2.9917665891876677E-03 + 3.0078310026101680E-03 3.0239816745595009E-03 3.0402190682043634E-03 + 3.0565436492004583E-03 3.0729558857038441E-03 3.0894562483843621E-03 + 3.1060452104391383E-03 3.1227232476061422E-03 3.1394908381778453E-03 + 3.1563484630149270E-03 3.1732966055600690E-03 3.1903357518518177E-03 + 3.2074663905385229E-03 3.2246890128923541E-03 3.2420041128233858E-03 + 3.2594121868937571E-03 3.2769137343319267E-03 3.2945092570469767E-03 + 3.3121992596430107E-03 3.3299842494336250E-03 3.3478647364564586E-03 + 3.3658412334878168E-03 3.3839142560573810E-03 3.4020843224629818E-03 + 3.4203519537854819E-03 3.4387176739037041E-03 3.4571820095094592E-03 + 3.4757454901226544E-03 3.4944086481064739E-03 3.5131720186826480E-03 + 3.5320361399468012E-03 3.5510015528838895E-03 3.5700688013836994E-03 + 3.5892384322564644E-03 3.6085109952485360E-03 3.6278870430581519E-03 + 3.6473671313512843E-03 3.6669518187775773E-03 3.6866416669863668E-03 + 3.7064372406427912E-03 3.7263391074439734E-03 3.7463478381353156E-03 + 3.7664640065268600E-03 3.7866881895097463E-03 3.8070209670727521E-03 + 3.8274629223189294E-03 3.8480146414823281E-03 3.8686767139448032E-03 + 3.8894497322529246E-03 3.9103342921349539E-03 3.9313309925179517E-03 + 3.9524404355449376E-03 3.9736632265921640E-03 3.9949999742864744E-03 + 4.0164512905227594E-03 4.0380177904815054E-03 4.0597000926464386E-03 + 4.0814988188222472E-03 4.1034145941524379E-03 4.1254480471372467E-03 + 4.1475998096516661E-03 4.1698705169635692E-03 4.1922608077519250E-03 + 4.2147713241251156E-03 4.2374027116393502E-03 4.2601556193171833E-03 + 4.2830306996661082E-03 4.3060286086973008E-03 4.3291500059444077E-03 + 4.3523955544824680E-03 4.3757659209469335E-03 4.3992617755527798E-03 + 4.4228837921137278E-03 4.4466326480615765E-03 4.4705090244656085E-03 + 4.4945136060521463E-03 4.5186470812241791E-03 4.5429101420810985E-03 + 4.5673034844385570E-03 4.5918278078484163E-03 4.6164838156188080E-03 + 4.6412722148343102E-03 4.6661937163762204E-03 4.6912490349429320E-03 + 4.7164388890704534E-03 4.7417640011529968E-03 4.7672250974637011E-03 + 4.7928229081754554E-03 4.8185581673818459E-03 4.8444316131182009E-03 + 4.8704439873827670E-03 4.8965960361579668E-03 4.9228885094318190E-03 + 4.9493221612194284E-03 4.9758977495846157E-03 5.0026160366616569E-03 + 5.0294777886771402E-03 5.0564837759719339E-03 5.0836347730232904E-03 + 5.1109315584670486E-03 5.1383749151199531E-03 5.1659656300021275E-03 + 5.1937044943596291E-03 5.2215923036871429E-03 5.2496298577507953E-03 + 5.2778179606110896E-03 5.3061574206459631E-03 5.3346490505739802E-03 + 5.3632936674776121E-03 5.3920920928267084E-03 5.4210451525020234E-03 + 5.4501536768189161E-03 5.4794185005511550E-03 5.5088404629548646E-03 + 5.5384204077925849E-03 5.5681591833574772E-03 5.5980576424976497E-03 + 5.6281166426406020E-03 5.6583370458178385E-03 5.6887197186895697E-03 + 5.7192655325695799E-03 5.7499753634502057E-03 5.7808500920274565E-03 + 5.8118906037262800E-03 5.8430977887259520E-03 5.8744725419855913E-03 + 5.9060157632698446E-03 5.9377283571746846E-03 5.9696112331533409E-03 + 6.0016653055423958E-03 6.0338914935879982E-03 6.0662907214722251E-03 + 6.0988639183395922E-03 6.1316120183236844E-03 6.1645359605739612E-03 + 6.1976366892826868E-03 6.2309151537120024E-03 6.2643723082211481E-03 + 6.2980091122938394E-03 6.3318265305657767E-03 6.3658255328523095E-03 + 6.4000070941762606E-03 6.4343721947958572E-03 6.4689218202328850E-03 + 6.5036569613009156E-03 6.5385786141337427E-03 6.5736877802139359E-03 + 6.6089854664015697E-03 6.6444726849630960E-03 6.6801504536003753E-03 + 6.7160197954798427E-03 6.7520817392618870E-03 6.7883373191303257E-03 + 6.8247875748220664E-03 6.8614335516569295E-03 6.8982763005676186E-03 + 6.9353168781298704E-03 6.9725563465927410E-03 7.0099957739090876E-03 + 7.0476362337661622E-03 7.0854788056164469E-03 7.1235245747085785E-03 + 7.1617746321184826E-03 7.2002300747806610E-03 7.2388920055196518E-03 + 7.2777615330816524E-03 7.3168397721663260E-03 7.3561278434587426E-03 + 7.3956268736615543E-03 7.4353379955272858E-03 7.4752623478908211E-03 + 7.5154010757020615E-03 7.5557553300587702E-03 7.5963262682395734E-03 + 7.6371150537371535E-03 7.6781228562916191E-03 7.7193508519240294E-03 + 7.7608002229701562E-03 7.8024721581143597E-03 7.8443678524236990E-03 + 7.8864885073821854E-03 7.9288353309252581E-03 7.9714095374744040E-03 + 8.0142123479720138E-03 8.0572449899163467E-03 8.1005086973967924E-03 + 8.1440047111292265E-03 8.1877342784915964E-03 8.2316986535597002E-03 + 8.2758990971431457E-03 8.3203368768215071E-03 8.3650132669806834E-03 + 8.4099295488494485E-03 8.4550870105361588E-03 8.5004869470657468E-03 + 8.5461306604168331E-03 8.5920194595590551E-03 8.6381546604906226E-03 + 8.6845375862760529E-03 8.7311695670841093E-03 8.7780519402259598E-03 + 8.8251860501934957E-03 8.8725732486979389E-03 8.9202148947085669E-03 + 8.9681123544917037E-03 9.0162670016498917E-03 9.0646802171612927E-03 + 9.1133533894192879E-03 9.1622879142722862E-03 9.2114851950637795E-03 + 9.2609466426725427E-03 9.3106736755531397E-03 9.3606677197765869E-03 + 9.4109302090712391E-03 9.4614625848639198E-03 9.5122662963212524E-03 + 9.5633428003912158E-03 9.6146935618449426E-03 9.6663200533186854E-03 + 9.7182237553561108E-03 9.7704061564507071E-03 9.8228687530884980E-03 + 9.8756130497909423E-03 9.9286405591580956E-03 9.9819528019119783E-03 + 1.0035551306940185E-02 1.0089437611339756E-02 1.0143613260461199E-02 + 1.0198079807952877E-02 1.0252838815805522E-02 1.0307891854397039E-02 + 1.0363240502537544E-02 1.0418886347514629E-02 1.0474830985138905E-02 + 1.0531076019789757E-02 1.0587623064461321E-02 1.0644473740808800E-02 + 1.0701629679194934E-02 1.0759092518736760E-02 1.0816863907352625E-02 + 1.0874945501809435E-02 1.0933338967770182E-02 1.0992045979841707E-02 + 1.1051068221622695E-02 1.1110407385752006E-02 1.1170065173957199E-02 + 1.1230043297103311E-02 1.1290343475241951E-02 1.1350967437660613E-02 + 1.1411916922932268E-02 1.1473193678965227E-02 1.1534799463053282E-02 + 1.1596736041926046E-02 1.1659005191799699E-02 1.1721608698427871E-02 + 1.1784548357152870E-02 1.1847825972957166E-02 1.1911443360515165E-02 + 1.1975402344245234E-02 1.2039704758362042E-02 1.2104352446929112E-02 + 1.2169347263911784E-02 1.2234691073230322E-02 1.2300385748813394E-02 + 1.2366433174651793E-02 1.2432835244852485E-02 1.2499593863692928E-02 + 1.2566710945675661E-02 1.2634188415583248E-02 1.2702028208533405E-02 + 1.2770232270034590E-02 1.2838802556041726E-02 1.2907741033012322E-02 + 1.2977049677962860E-02 1.3046730478525490E-02 1.3116785433005035E-02 + 1.3187216550436318E-02 1.3258025850641710E-02 1.3329215364289141E-02 + 1.3400787132950290E-02 1.3472743209159125E-02 1.3545085656470796E-02 + 1.3617816549520781E-02 1.3690937974084409E-02 1.3764452027136663E-02 + 1.3838360816912330E-02 1.3912666462966414E-02 1.3987371096234992E-02 + 1.4062476859096281E-02 1.4137985905432082E-02 1.4213900400689553E-02 + 1.4290222521943310E-02 1.4366954457957864E-02 1.4444098409250393E-02 + 1.4521656588153811E-02 1.4599631218880273E-02 1.4678024537584933E-02 + 1.4756838792430059E-02 1.4836076243649528E-02 1.4915739163613627E-02 + 1.4995829836894235E-02 1.5076350560330333E-02 1.5157303643093884E-02 + 1.5238691406756006E-02 1.5320516185353624E-02 1.5402780325456365E-02 + 1.5485486186233849E-02 1.5568636139523364E-02 1.5652232569897864E-02 + 1.5736277874734379E-02 1.5820774464282750E-02 1.5905724761734727E-02 + 1.5991131203293520E-02 1.6076996238243629E-02 1.6163322329021068E-02 + 1.6250111951284025E-02 1.6337367593983815E-02 1.6425091759436305E-02 + 1.6513286963393624E-02 1.6601955735116358E-02 1.6691100617446025E-02 + 1.6780724166878074E-02 1.6870828953635141E-02 1.6961417561740785E-02 + 1.7052492589093589E-02 1.7144056647541647E-02 1.7236112362957485E-02 + 1.7328662375313379E-02 1.7421709338756992E-02 1.7515255921687588E-02 + 1.7609304806832499E-02 1.7703858691324067E-02 1.7798920286776997E-02 + 1.7894492319366132E-02 1.7990577529904600E-02 1.8087178673922462E-02 + 1.8184298521745704E-02 1.8281939858575662E-02 1.8380105484568966E-02 + 1.8478798214917779E-02 1.8578020879930560E-02 1.8677776325113228E-02 + 1.8778067411250762E-02 1.8878897014489238E-02 1.8980268026418331E-02 + 1.9082183354154195E-02 1.9184645920422880E-02 1.9287658663644153E-02 + 1.9391224538015717E-02 1.9495346513597977E-02 1.9600027576399195E-02 + 1.9705270728461129E-02 1.9811078987945135E-02 1.9917455389218665E-02 + 2.0024402982942377E-02 2.0131924836157566E-02 2.0240024032374123E-02 + 2.0348703671658981E-02 2.0457966870725004E-02 2.0567816763020372E-02 + 2.0678256498818451E-02 2.0789289245308134E-02 2.0900918186684624E-02 + 2.1013146524240838E-02 2.1125977476459154E-02 2.1239414279103721E-02 + 2.1353460185313242E-02 2.1468118465694307E-02 2.1583392408415145E-02 + 2.1699285319299960E-02 2.1815800521923667E-02 2.1932941357707295E-02 + 2.2050711186013768E-02 2.2169113384244231E-02 2.2288151347934940E-02 + 2.2407828490854601E-02 2.2528148245102315E-02 2.2649114061205962E-02 + 2.2770729408221196E-02 2.2892997773830855E-02 2.3015922664445090E-02 + 2.3139507605301833E-02 2.3263756140567946E-02 2.3388671833440830E-02 + 2.3514258266250618E-02 2.3640519040562916E-02 2.3767457777282106E-02 + 2.3895078116755099E-02 2.4023383718875864E-02 2.4152378263190291E-02 + 2.4282065449001751E-02 2.4412448995477176E-02 2.4543532641753723E-02 + 2.4675320147045977E-02 2.4807815290753803E-02 2.4941021872570735E-02 + 2.5074943712592817E-02 2.5209584651428352E-02 2.5344948550307920E-02 + 2.5481039291195128E-02 2.5617860776897962E-02 2.5755416931180667E-02 + 2.5893711698876332E-02 2.6032749045999989E-02 2.6172532959862306E-02 + 2.6313067449184019E-02 2.6454356544210848E-02 2.6596404296829086E-02 + 2.6739214780681784E-02 2.6882792091285596E-02 2.7027140346148216E-02 + 2.7172263684886476E-02 2.7318166269345048E-02 2.7464852283715750E-02 + 2.7612325934657653E-02 2.7760591451417644E-02 2.7909653085951704E-02 + 2.8059515113046885E-02 2.8210181830443871E-02 2.8361657558960252E-02 + 2.8513946642614415E-02 2.8667053448750153E-02 2.8820982368161819E-02 + 2.8975737815220455E-02 2.9131324228000115E-02 2.9287746068405281E-02 + 2.9445007822298964E-02 2.9603113999630976E-02 2.9762069134567717E-02 + 2.9921877785621769E-02 3.0082544535783039E-02 3.0244073992649775E-02 + 3.0406470788561121E-02 3.0569739580729609E-02 3.0733885051374858E-02 + 3.0898911907858012E-02 3.1064824882816380E-02 3.1231628734299570E-02 + 3.1399328245905515E-02 3.1567928226918097E-02 3.1737433512444617E-02 + 3.1907848963554905E-02 3.2079179467420359E-02 3.2251429937454203E-02 + 3.2424605313452648E-02 3.2598710561736091E-02 3.2773750675292028E-02 + 3.2949730673917758E-02 3.3126655604364848E-02 3.3304530540483351E-02 + 3.3483360583367809E-02 3.3663150861503115E-02 3.3843906530911780E-02 + 3.4025632775301969E-02 3.4208334806215740E-02 3.4392017863178970E-02 + 3.4576687213851161E-02 3.4762348154176961E-02 3.4949006008537620E-02 + 3.5136666129903890E-02 3.5325333899989694E-02 3.5515014729406033E-02 + 3.5705714057816675E-02 3.5897437354093606E-02 3.6090190116474428E-02 + 3.6283977872719482E-02 3.6478806180270905E-02 3.6674680626411556E-02 + 3.6871606828425434E-02 3.7069590433758980E-02 3.7268637120182559E-02 + 3.7468752595953822E-02 3.7669942599980889E-02 3.7872212901987425E-02 + 3.8075569302677616E-02 3.8280017633903041E-02 3.8485563758829423E-02 + 3.8692213572104991E-02 3.8899973000029765E-02 3.9108848000724977E-02 + 3.9318844564304518E-02 3.9529968713046156E-02 3.9742226501564816E-02 + 3.9955624016985651E-02 4.0170167379119132E-02 4.0385862740636137E-02 + 4.0602716287244524E-02 4.0820734237866807E-02 4.1039922844817944E-02 + 4.1260288393985267E-02 4.1481837205008136E-02 4.1704575631459760E-02 + 4.1928510061028927E-02 4.2153646915703356E-02 4.2379992651954107E-02 + 4.2607553760920250E-02 4.2836336768595600E-02 4.3066348236015219E-02 + 4.3297594759444273E-02 4.3530082970566493E-02 4.3763819536675061E-02 + 4.3998811160863190E-02 4.4235064582216627E-02 4.4472586576007202E-02 + 4.4711383953886463E-02 4.4951463564081764E-02 4.5192832291591975E-02 + 4.5435497058385531E-02 4.5679464823598380E-02 4.5924742583734156E-02 + 4.6171337372864232E-02 4.6419256262829743E-02 4.6668506363444606E-02 + 4.6919094822698848E-02 4.7171028826964244E-02 4.7424315601199758E-02 + 4.7678962409159399E-02 4.7934976553599871E-02 4.8192365376490666E-02 + 4.8451136259224030E-02 4.8711296622826895E-02 4.8972853928173944E-02 + 4.9235815676201021E-02 4.9500189408120857E-02 4.9765982705638742E-02 + 5.0033203191170543E-02 5.0301858528060739E-02 5.0571956420802491E-02 + 5.0843504615258786E-02 5.1116510898884006E-02 5.1390983100947918E-02 + 5.1666929092759523E-02 5.1944356787893518E-02 5.2223274142416502E-02 + 5.2503689155115836E-02 5.2785609867728435E-02 5.3069044365171673E-02 + 5.3354000775775477E-02 5.3640487271514797E-02 5.3928512068244713E-02 + 5.4218083425935315E-02 5.4509209648909304E-02 5.4801899086079423E-02 + 5.5096160131188593E-02 5.5392001223050033E-02 5.5689430845789485E-02 + 5.5988457529088861E-02 5.6289089848430139E-02 5.6591336425342129E-02 + 5.6895205927646852E-02 5.7200707069708985E-02 5.7507848612685042E-02 + 5.7816639364774915E-02 5.8127088181474780E-02 5.8439203965830383E-02 + 5.8752995668693131E-02 5.9068472288976007E-02 5.9385642873912389E-02 + 5.9704516519314778E-02 6.0025102369836415E-02 6.0347409619232815E-02 + 6.0671447510625746E-02 6.0997225336768601E-02 6.1324752440312193E-02 + 6.1654038214073482E-02 6.1985092101304130E-02 6.2317923595962159E-02 + 6.2652542242983347E-02 6.2988957638555845E-02 6.3327179430394565E-02 + 6.3667217318018277E-02 6.4009081053028008E-02 6.4352780439385956E-02 + 6.4698325333697571E-02 6.5045725645493283E-02 6.5394991337513628E-02 + 6.5746132425993961E-02 6.6099158980952782E-02 6.6454081126479547E-02 + 6.6810909041025462E-02 6.7169652957695683E-02 6.7530323164541980E-02 + 6.7892930004858687E-02 6.8257483877478445E-02 6.8623995237071300E-02 + 6.8992474594443742E-02 6.9362932516840434E-02 6.9735379628247704E-02 + 7.0109826609697279E-02 7.0486284199573632E-02 7.0864763193920946E-02 + 7.1245274446753687E-02 7.1627828870366908E-02 7.2012437435650167E-02 + 7.2399111172401331E-02 7.2787861169643142E-02 7.3178698575941739E-02 + 7.3571634599725433E-02 7.3966680509607127E-02 7.4363847634706548E-02 + 7.4763147364976051E-02 7.5164591151526336E-02 7.5568190506955790E-02 + 7.5973957005679840E-02 7.6381902284263115E-02 7.6792038041753746E-02 + 7.7204376040017800E-02 7.7618928104077708E-02 7.8035706122450338E-02 + 7.8454722047488920E-02 7.8875987895724836E-02 7.9299515748213270E-02 + 7.9725317750878696E-02 8.0153406114863615E-02 8.0583793116879243E-02 + 8.1016491099556442E-02 8.1451512471801005E-02 8.1888869709148202E-02 + 8.2328575354121802E-02 8.2770642016592760E-02 8.3215082374141228E-02 + 8.3661909172420598E-02 8.4111135225521924E-02 8.4562773416342746E-02 + 8.5016836696955145E-02 8.5473338088978570E-02 8.5932290683951945E-02 + 8.6393707643710321E-02 8.6857602200761400E-02 8.7323987658665322E-02 + 8.7792877392416660E-02 8.8264284848827021E-02 8.8738223546911799E-02 + 8.9214707078276681E-02 8.9693749107508672E-02 9.0175363372566736E-02 + 9.0659563685176900E-02 9.1146363931227492E-02 9.1635778071167531E-02 + 9.2127820140407893E-02 9.2622504249722334E-02 9.3119844585653783E-02 + 9.3619855410919689E-02 9.4122551064822396E-02 9.4627945963659268E-02 + 9.5136054601136485E-02 9.5646891548785348E-02 9.6160471456378918E-02 + 9.6676809052353457E-02 9.7195919144229495E-02 9.7717816619037876E-02 + 9.8242516443745209E-02 9.8770033665684612E-02 9.9300383412985915E-02 + 9.9833580895010016E-02 1.0036964140278573E-01 1.0090858030944691E-01 + 1.0145041307067477E-01 1.0199515522513977E-01 1.0254282239494861E-01 + 1.0309343028609079E-01 1.0364699468889048E-01 1.0420353147845816E-01 + 1.0476305661514627E-01 1.0532558614500770E-01 1.0589113620025441E-01 + 1.0645972299972174E-01 1.0703136284933196E-01 1.0760607214256344E-01 + 1.0818386736091926E-01 1.0876476507440128E-01 1.0934878194198420E-01 + 1.0993593471209372E-01 1.1052624022308745E-01 1.1111971540373651E-01 + 1.1171637727371252E-01 1.1231624294407420E-01 1.1291932961775947E-01 + 1.1352565459007762E-01 1.1413523524920582E-01 1.1474808907668831E-01 + 1.1536423364793645E-01 1.1598368663273427E-01 1.1660646579574364E-01 + 1.1723258899701530E-01 1.1786207419249947E-01 1.1849493943456241E-01 + 1.1913120287250266E-01 1.1977088275307214E-01 1.2041399742100015E-01 + 1.2106056531951784E-01 1.2171060499088898E-01 1.2236413507693987E-01 + 1.2302117431959572E-01 1.2368174156141649E-01 1.2434585574613878E-01 + 1.2501353591921782E-01 1.2568480122837414E-01 1.2635967092414341E-01 + 1.2703816436042698E-01 1.2772030099504858E-01 1.2840610039031070E-01 + 1.2909558221355730E-01 1.2978876623773605E-01 1.3048567234196717E-01 + 1.3118632051211196E-01 1.3189073084134662E-01 1.3259892353073913E-01 + 1.3331091888982705E-01 1.3402673733720183E-01 1.3474639940109229E-01 + 1.3546992571995550E-01 1.3619733704306680E-01 1.3692865423111561E-01 + 1.3766389825680442E-01 1.3840309020544853E-01 1.3914625127558269E-01 + 1.3989340277956705E-01 1.4064456614420037E-01 1.4139976291133244E-01 + 1.4215901473848397E-01 1.4292234339946577E-01 1.4368977078500408E-01 + 1.4446131890336911E-01 1.4523700988100421E-01 1.4601686596316274E-01 + 1.4680090951454375E-01 1.4758916301993549E-01 1.4838164908485824E-01 + 1.4917839043621450E-01 1.4997940992293912E-01 1.5078473051665517E-01 + 1.5159437531233355E-01 1.5240836752895359E-01 1.5322673051017088E-01 + 1.5404948772498470E-01 1.5487666276841311E-01 1.5570827936216752E-01 + 1.5654436135533523E-01 1.5738493272506118E-01 1.5823001757723670E-01 + 1.5907964014719159E-01 1.5993382480038693E-01 1.6079259603311644E-01 + 1.6165597847320645E-01 1.6252399688072466E-01 1.6339667614868802E-01 + 1.6427404130377762E-01 1.6515611750705719E-01 1.6604293005469259E-01 + 1.6693450437867977E-01 1.6783086604757153E-01 1.6873204076721332E-01 + 1.6963805438147803E-01 1.7054893287300937E-01 1.7146470236396513E-01 + 1.7238538911676698E-01 1.7331101953485478E-01 1.7424162016344139E-01 + 1.7517721769027667E-01 1.7611783894641000E-01 1.7706351090696265E-01 + 1.7801426069189849E-01 1.7897011556680445E-01 1.7993110294367032E-01 + 1.8089725038167548E-01 1.8186858558798064E-01 1.8284513641851965E-01 + 1.8382693087880161E-01 1.8481399712471083E-01 1.8580636346331705E-01 + 1.8680405835368522E-01 1.8780711040769213E-01 1.8881554839084849E-01 + 1.8982940122312100E-01 1.9084869797976486E-01 1.9187346789215456E-01 + 1.9290374034862517E-01 1.9393954489531207E-01 1.9498091123700126E-01 + 1.9602786923797894E-01 1.9708044892288851E-01 1.9813868047759331E-01 + 1.9920259425003919E-01 2.0027222075112819E-01 2.0134759065559038E-01 + 2.0242873480286647E-01 2.0351568419798935E-01 2.0460847001247623E-01 + 2.0570712358521998E-01 2.0681167642338877E-01 2.0792216020333107E-01 + 2.0903860677148134E-01 2.1016104814527614E-01 2.1128951651406952E-01 + 2.1242404424005915E-01 2.1356466385921130E-01 2.1471140808219688E-01 + 2.1586430979532711E-01 2.1702340206149745E-01 2.1818871812113722E-01 + 2.1936029139315991E-01 2.2053815547592490E-01 2.2172234414819775E-01 + 2.2291289137012202E-01 2.2410983128419049E-01 2.2531319821622547E-01 + 2.2652302667636434E-01 2.2773935136004653E-01 2.2896220714901164E-01 + 2.3019162911229654E-01 2.3142765250724442E-01 2.3267031278051259E-01 + 2.3391964556909231E-01 2.3517568670132769E-01 2.3643847219794484E-01 + 2.3770803827308579E-01 2.3898442133534425E-01 2.4026765798881292E-01 + 2.4155778503413022E-01 2.4285483946953859E-01 2.4415885849194244E-01 + 2.4546987949797822E-01 2.4678794008508378E-01 2.4811307805257807E-01 + 2.4944533140274622E-01 2.5078473834192649E-01 2.5213133728160947E-01 + 2.5348516683953592E-01 2.5484626584080800E-01 2.5621467331899905E-01 + 2.5759042851727659E-01 2.5897357088952455E-01 2.6036414010147624E-01 + 2.6176217603185281E-01 2.6316771877350437E-01 2.6458080863456290E-01 + 2.6600148613959457E-01 2.6742979203076606E-01 2.6886576726900907E-01 + 2.7030945303519693E-01 2.7176089073132653E-01 2.7322012198170281E-01 + 2.7468718863413594E-01 2.7616213276113771E-01 2.7764499666113190E-01 + 2.7913582285966343E-01 2.8063465411062205E-01 2.8214153339746451E-01 + 2.8365650393444919E-01 2.8517960916787655E-01 2.8671089277733192E-01 + 2.8825039867694174E-01 2.8979817101662936E-01 2.9135425418338484E-01 + 2.9291869280253402E-01 2.9449153173902232E-01 2.9607281609869773E-01 + 2.9766259122960598E-01 2.9926090272329248E-01 3.0086779641610634E-01 + 3.0248331839051884E-01 3.0410751497644090E-01 3.0574043275255597E-01 + 3.0738211854765196E-01 3.0903261944196586E-01 3.1069198276853566E-01 + 3.1236025611455376E-01 3.1403748732273623E-01 3.1572372449269032E-01 + 3.1741901598229821E-01 3.1912341040909958E-01 3.2083695665169032E-01 + 3.2255970385112004E-01 3.2429170141230340E-01 3.2603299900543842E-01 + 3.2778364656742698E-01 3.2954369430331154E-01 3.3131319268771031E-01 + 3.3309219246626914E-01 3.3488074465711287E-01 3.3667890055231198E-01 + 3.3848671171935046E-01 3.4030423000260596E-01 3.4213150752483840E-01 + 3.4396859668868041E-01 3.4581555017814547E-01 3.4767242096013345E-01 + 3.4953926228595450E-01 3.5141612769285147E-01 3.5330307100554020E-01 + 3.5520014633774849E-01 3.5710740809377023E-01 3.5902491097002731E-01 + 3.6095270995663331E-01 3.6289086033897672E-01 3.6483941769930017E-01 + 3.6679843791830002E-01 3.6876797717672455E-01 3.7074809195698677E-01 + 3.7273883904478639E-01 3.7474027553073330E-01 3.7675245881199088E-01 + 3.7877544659391599E-01 3.8080929689171955E-01 3.8285406803212468E-01 + 3.8490981865504514E-01 3.8697660771526204E-01 3.8905449448411644E-01 + 3.9114353855121153E-01 3.9324379982611651E-01 3.9535533854009025E-01 + 3.9747821524780297E-01 3.9961249082907857E-01 4.0175822649063481E-01 + 4.0391548376784425E-01 4.0608432452649412E-01 4.0826481096456235E-01 + 4.1045700561400378E-01 4.1266097134253826E-01 4.1487677135545903E-01 + 4.1710446919744049E-01 4.1934412875436489E-01 4.2159581425515008E-01 + 4.2385959027359627E-01 4.2613552173023322E-01 4.2842367389418434E-01 + + + + + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 1.7529760580806086E+00 1.7529760577528555E+00 1.7529760567625392E+00 + 1.7529760550989888E+00 1.7529760527513978E+00 1.7529760497088236E+00 + 1.7529760459601864E+00 1.7529760414942681E+00 1.7529760362997115E+00 + 1.7529760303650144E+00 1.7529760236785343E+00 1.7529760162284824E+00 + 1.7529760080029240E+00 1.7529759989897740E+00 1.7529759891767984E+00 + 1.7529759785516124E+00 1.7529759671016740E+00 1.7529759548142909E+00 + 1.7529759416766089E+00 1.7529759276756165E+00 1.7529759127981437E+00 + 1.7529758970308551E+00 1.7529758803602513E+00 1.7529758627726666E+00 + 1.7529758442542673E+00 1.7529758247910494E+00 1.7529758043688362E+00 + 1.7529757829732779E+00 1.7529757605898479E+00 1.7529757372038424E+00 + 1.7529757128003740E+00 1.7529756873643785E+00 1.7529756608806037E+00 + 1.7529756333336111E+00 1.7529756047077742E+00 1.7529755749872773E+00 + 1.7529755441561103E+00 1.7529755121980666E+00 1.7529754790967451E+00 + 1.7529754448355443E+00 1.7529754093976608E+00 1.7529753727660862E+00 + 1.7529753349236066E+00 1.7529752958527993E+00 1.7529752555360301E+00 + 1.7529752139554517E+00 1.7529751710930002E+00 1.7529751269303937E+00 + 1.7529750814491303E+00 1.7529750346304822E+00 1.7529749864554978E+00 + 1.7529749369049972E+00 1.7529748859595673E+00 1.7529748335995632E+00 + 1.7529747798051021E+00 1.7529747245560647E+00 1.7529746678320863E+00 + 1.7529746096125622E+00 1.7529745498766351E+00 1.7529744886032015E+00 + 1.7529744257709050E+00 1.7529743613581317E+00 1.7529742953430085E+00 + 1.7529742277034035E+00 1.7529741584169181E+00 1.7529740874608868E+00 + 1.7529740148123742E+00 1.7529739404481706E+00 1.7529738643447883E+00 + 1.7529737864784627E+00 1.7529737068251439E+00 1.7529736253604977E+00 + 1.7529735420598991E+00 1.7529734568984301E+00 1.7529733698508785E+00 + 1.7529732808917304E+00 1.7529731899951735E+00 1.7529730971350839E+00 + 1.7529730022850321E+00 1.7529729054182737E+00 1.7529728065077497E+00 + 1.7529727055260789E+00 1.7529726024455576E+00 1.7529724972381557E+00 + 1.7529723898755096E+00 1.7529722803289227E+00 1.7529721685693598E+00 + 1.7529720545674430E+00 1.7529719382934490E+00 1.7529718197173034E+00 + 1.7529716988085799E+00 1.7529715755364903E+00 1.7529714498698892E+00 + 1.7529713217772622E+00 1.7529711912267254E+00 1.7529710581860212E+00 + 1.7529709226225145E+00 1.7529707845031843E+00 1.7529706437946257E+00 + 1.7529705004630418E+00 1.7529703544742390E+00 1.7529702057936234E+00 + 1.7529700543861990E+00 1.7529699002165586E+00 1.7529697432488813E+00 + 1.7529695834469283E+00 1.7529694207740385E+00 1.7529692551931213E+00 + 1.7529690866666556E+00 1.7529689151566812E+00 1.7529687406247969E+00 + 1.7529685630321541E+00 1.7529683823394500E+00 1.7529681985069288E+00 + 1.7529680114943686E+00 1.7529678212610813E+00 1.7529676277659061E+00 + 1.7529674309672039E+00 1.7529672308228537E+00 1.7529670272902438E+00 + 1.7529668203262683E+00 1.7529666098873247E+00 1.7529663959293003E+00 + 1.7529661784075761E+00 1.7529659572770147E+00 1.7529657324919556E+00 + 1.7529655040062111E+00 1.7529652717730595E+00 1.7529650357452380E+00 + 1.7529647958749397E+00 1.7529645521138044E+00 1.7529643044129142E+00 + 1.7529640527227854E+00 1.7529637969933656E+00 1.7529635371740244E+00 + 1.7529632732135465E+00 1.7529630050601306E+00 1.7529627326613746E+00 + 1.7529624559642749E+00 1.7529621749152193E+00 1.7529618894599774E+00 + 1.7529615995436960E+00 1.7529613051108908E+00 1.7529610061054404E+00 + 1.7529607024705793E+00 1.7529603941488909E+00 1.7529600810822985E+00 + 1.7529597632120595E+00 1.7529594404787578E+00 1.7529591128222979E+00 + 1.7529587801818922E+00 1.7529584424960603E+00 1.7529580997026162E+00 + 1.7529577517386621E+00 1.7529573985405804E+00 1.7529570400440284E+00 + 1.7529566761839226E+00 1.7529563068944409E+00 1.7529559321090065E+00 + 1.7529555517602824E+00 1.7529551657801625E+00 1.7529547740997655E+00 + 1.7529543766494213E+00 1.7529539733586670E+00 1.7529535641562353E+00 + 1.7529531489700478E+00 1.7529527277272021E+00 1.7529523003539687E+00 + 1.7529518667757782E+00 1.7529514269172077E+00 1.7529509807019836E+00 + 1.7529505280529585E+00 1.7529500688921098E+00 1.7529496031405283E+00 + 1.7529491307184071E+00 1.7529486515450332E+00 1.7529481655387769E+00 + 1.7529476726170798E+00 1.7529471726964501E+00 1.7529466656924459E+00 + 1.7529461515196669E+00 1.7529456300917456E+00 1.7529451013213355E+00 + 1.7529445651201001E+00 1.7529440213987004E+00 1.7529434700667870E+00 + 1.7529429110329868E+00 1.7529423442048933E+00 1.7529417694890521E+00 + 1.7529411867909541E+00 1.7529405960150191E+00 1.7529399970645865E+00 + 1.7529393898419048E+00 1.7529387742481148E+00 1.7529381501832433E+00 + 1.7529375175461859E+00 1.7529368762346971E+00 1.7529362261453778E+00 + 1.7529355671736599E+00 1.7529348992138005E+00 1.7529342221588571E+00 + 1.7529335359006872E+00 1.7529328403299238E+00 1.7529321353359733E+00 + 1.7529314208069919E+00 1.7529306966298754E+00 1.7529299626902488E+00 + 1.7529292188724475E+00 1.7529284650595056E+00 1.7529277011331399E+00 + 1.7529269269737382E+00 1.7529261424603426E+00 1.7529253474706334E+00 + 1.7529245418809176E+00 1.7529237255661119E+00 1.7529228983997269E+00 + 1.7529220602538520E+00 1.7529212109991406E+00 1.7529203505047948E+00 + 1.7529194786385465E+00 1.7529185952666453E+00 1.7529177002538379E+00 + 1.7529167934633556E+00 1.7529158747568943E+00 1.7529149439946017E+00 + 1.7529140010350559E+00 1.7529130457352502E+00 1.7529120779505756E+00 + 1.7529110975348043E+00 1.7529101043400703E+00 1.7529090982168516E+00 + 1.7529080790139524E+00 1.7529070465784866E+00 1.7529060007558541E+00 + 1.7529049413897286E+00 1.7529038683220333E+00 1.7529027813929265E+00 + 1.7529016804407760E+00 1.7529005653021428E+00 1.7528994358117673E+00 + 1.7528982918025389E+00 1.7528971331054799E+00 1.7528959595497269E+00 + 1.7528947709625124E+00 1.7528935671691324E+00 1.7528923479929399E+00 + 1.7528911132553144E+00 1.7528898627756415E+00 1.7528885963712966E+00 + 1.7528873138576129E+00 1.7528860150478685E+00 1.7528846997532601E+00 + 1.7528833677828781E+00 1.7528820189436876E+00 1.7528806530405023E+00 + 1.7528792698759630E+00 1.7528778692505107E+00 1.7528764509623684E+00 + 1.7528750148075076E+00 1.7528735605796328E+00 1.7528720880701529E+00 + 1.7528705970681557E+00 1.7528690873603816E+00 1.7528675587312013E+00 + 1.7528660109625862E+00 1.7528644438340863E+00 1.7528628571227984E+00 + 1.7528612506033454E+00 1.7528596240478427E+00 1.7528579772258759E+00 + 1.7528563099044736E+00 1.7528546218480727E+00 1.7528529128184982E+00 + 1.7528511825749302E+00 1.7528494308738753E+00 1.7528476574691396E+00 + 1.7528458621117959E+00 1.7528440445501570E+00 1.7528422045297425E+00 + 1.7528403417932523E+00 1.7528384560805323E+00 1.7528365471285448E+00 + 1.7528346146713365E+00 1.7528326584400058E+00 1.7528306781626732E+00 + 1.7528286735644480E+00 1.7528266443673919E+00 1.7528245902904926E+00 + 1.7528225110496223E+00 1.7528204063575090E+00 1.7528182759237021E+00 + 1.7528161194545360E+00 1.7528139366530946E+00 1.7528117272191783E+00 + 1.7528094908492657E+00 1.7528072272364776E+00 1.7528049360705431E+00 + 1.7528026170377600E+00 1.7528002698209568E+00 1.7527978940994597E+00 + 1.7527954895490463E+00 1.7527930558419156E+00 1.7527905926466418E+00 + 1.7527880996281406E+00 1.7527855764476259E+00 1.7527830227625680E+00 + 1.7527804382266590E+00 1.7527778224897650E+00 1.7527751751978891E+00 + 1.7527724959931259E+00 1.7527697845136205E+00 1.7527670403935272E+00 + 1.7527642632629616E+00 1.7527614527479627E+00 1.7527586084704423E+00 + 1.7527557300481442E+00 1.7527528170945972E+00 1.7527498692190713E+00 + 1.7527468860265265E+00 1.7527438671175708E+00 1.7527408120884136E+00 + 1.7527377205308099E+00 1.7527345920320223E+00 1.7527314261747635E+00 + 1.7527282225371539E+00 1.7527249806926655E+00 1.7527217002100763E+00 + 1.7527183806534132E+00 1.7527150215819096E+00 1.7527116225499426E+00 + 1.7527081831069884E+00 1.7527047027975666E+00 1.7527011811611821E+00 + 1.7526976177322793E+00 1.7526940120401777E+00 1.7526903636090232E+00 + 1.7526866719577274E+00 1.7526829365999150E+00 1.7526791570438611E+00 + 1.7526753327924387E+00 1.7526714633430531E+00 1.7526675481875920E+00 + 1.7526635868123563E+00 1.7526595786980055E+00 1.7526555233194918E+00 + 1.7526514201460022E+00 1.7526472686408947E+00 1.7526430682616327E+00 + 1.7526388184597241E+00 1.7526345186806565E+00 1.7526301683638288E+00 + 1.7526257669424872E+00 1.7526213138436586E+00 1.7526168084880842E+00 + 1.7526122502901476E+00 1.7526076386578102E+00 1.7526029729925376E+00 + 1.7525982526892305E+00 1.7525934771361571E+00 1.7525886457148740E+00 + 1.7525837578001593E+00 1.7525788127599373E+00 1.7525738099552028E+00 + 1.7525687487399488E+00 1.7525636284610864E+00 1.7525584484583723E+00 + 1.7525532080643298E+00 1.7525479066041678E+00 1.7525425433957051E+00 + 1.7525371177492903E+00 1.7525316289677157E+00 1.7525260763461425E+00 + 1.7525204591720114E+00 1.7525147767249671E+00 1.7525090282767644E+00 + 1.7525032130911873E+00 1.7524973304239668E+00 1.7524913795226849E+00 + 1.7524853596266925E+00 1.7524792699670182E+00 1.7524731097662796E+00 + 1.7524668782385902E+00 1.7524605745894686E+00 1.7524541980157449E+00 + 1.7524477477054661E+00 1.7524412228378028E+00 1.7524346225829510E+00 + 1.7524279461020367E+00 1.7524211925470161E+00 1.7524143610605765E+00 + 1.7524074507760410E+00 1.7524004608172550E+00 1.7523933902984989E+00 + 1.7523862383243718E+00 1.7523790039896963E+00 1.7523716863794048E+00 + 1.7523642845684384E+00 1.7523567976216352E+00 1.7523492245936234E+00 + 1.7523415645287097E+00 1.7523338164607671E+00 1.7523259794131243E+00 + 1.7523180523984481E+00 1.7523100344186302E+00 1.7523019244646736E+00 + 1.7522937215165686E+00 1.7522854245431787E+00 1.7522770325021200E+00 + 1.7522685443396340E+00 1.7522599589904730E+00 1.7522512753777704E+00 + 1.7522424924129172E+00 1.7522336089954333E+00 1.7522246240128436E+00 + 1.7522155363405409E+00 1.7522063448416625E+00 1.7521970483669531E+00 + 1.7521876457546324E+00 1.7521781358302622E+00 1.7521685174066042E+00 + 1.7521587892834858E+00 1.7521489502476599E+00 1.7521389990726641E+00 + 1.7521289345186759E+00 1.7521187553323707E+00 1.7521084602467758E+00 + 1.7520980479811212E+00 1.7520875172406922E+00 1.7520768667166786E+00 + 1.7520660950860250E+00 1.7520552010112711E+00 1.7520441831404034E+00 + 1.7520330401066928E+00 1.7520217705285388E+00 1.7520103730093062E+00 + 1.7519988461371687E+00 1.7519871884849374E+00 1.7519753986099003E+00 + 1.7519634750536555E+00 1.7519514163419370E+00 1.7519392209844495E+00 + 1.7519268874746918E+00 1.7519144142897827E+00 1.7519017998902866E+00 + 1.7518890427200311E+00 1.7518761412059323E+00 1.7518630937578070E+00 + 1.7518498987681896E+00 1.7518365546121519E+00 1.7518230596471038E+00 + 1.7518094122126169E+00 1.7517956106302182E+00 1.7517816532032060E+00 + 1.7517675382164495E+00 1.7517532639361919E+00 1.7517388286098472E+00 + 1.7517242304658003E+00 1.7517094677132001E+00 1.7516945385417564E+00 + 1.7516794411215257E+00 1.7516641736027005E+00 1.7516487341154003E+00 + 1.7516331207694495E+00 1.7516173316541637E+00 1.7516013648381243E+00 + 1.7515852183689626E+00 1.7515688902731279E+00 1.7515523785556624E+00 + 1.7515356811999692E+00 1.7515187961675838E+00 1.7515017213979354E+00 + 1.7514844548081105E+00 1.7514669942926118E+00 1.7514493377231166E+00 + 1.7514314829482336E+00 1.7514134277932483E+00 1.7513951700598795E+00 + 1.7513767075260227E+00 1.7513580379454949E+00 1.7513391590477774E+00 + 1.7513200685377515E+00 1.7513007640954366E+00 1.7512812433757223E+00 + 1.7512615040080981E+00 1.7512415435963846E+00 1.7512213597184529E+00 + 1.7512009499259482E+00 1.7511803117440088E+00 1.7511594426709807E+00 + 1.7511383401781342E+00 1.7511170017093658E+00 1.7510954246809116E+00 + 1.7510736064810466E+00 1.7510515444697883E+00 1.7510292359785897E+00 + 1.7510066783100369E+00 1.7509838687375365E+00 1.7509608045050067E+00 + 1.7509374828265560E+00 1.7509139008861694E+00 1.7508900558373814E+00 + 1.7508659448029520E+00 1.7508415648745388E+00 1.7508169131123574E+00 + 1.7507919865448536E+00 1.7507667821683566E+00 1.7507412969467375E+00 + 1.7507155278110611E+00 1.7506894716592381E+00 1.7506631253556653E+00 + 1.7506364857308707E+00 1.7506095495811502E+00 1.7505823136682013E+00 + 1.7505547747187520E+00 1.7505269294241914E+00 1.7504987744401832E+00 + 1.7504703063862932E+00 1.7504415218456004E+00 1.7504124173643023E+00 + 1.7503829894513268E+00 1.7503532345779333E+00 1.7503231491773070E+00 + 1.7502927296441555E+00 1.7502619723342943E+00 1.7502308735642400E+00 + 1.7501994296107779E+00 1.7501676367105505E+00 1.7501354910596192E+00 + 1.7501029888130382E+00 1.7500701260844156E+00 1.7500368989454678E+00 + 1.7500033034255769E+00 1.7499693355113375E+00 1.7499349911460991E+00 + 1.7499002662295093E+00 1.7498651566170453E+00 1.7498296581195436E+00 + 1.7497937665027230E+00 1.7497574774867080E+00 1.7497207867455378E+00 + 1.7496836899066819E+00 1.7496461825505394E+00 1.7496082602099396E+00 + 1.7495699183696374E+00 1.7495311524657984E+00 1.7494919578854864E+00 + 1.7494523299661375E+00 1.7494122639950338E+00 1.7493717552087713E+00 + 1.7493307987927182E+00 1.7492893898804744E+00 1.7492475235533200E+00 + 1.7492051948396559E+00 1.7491623987144489E+00 1.7491191300986586E+00 + 1.7490753838586692E+00 1.7490311548057038E+00 1.7489864376952462E+00 + 1.7489412272264426E+00 1.7488955180415113E+00 1.7488493047251339E+00 + 1.7488025818038457E+00 1.7487553437454211E+00 1.7487075849582525E+00 + 1.7486592997907149E+00 1.7486104825305386E+00 1.7485611274041599E+00 + 1.7485112285760769E+00 1.7484607801481904E+00 1.7484097761591451E+00 + 1.7483582105836566E+00 1.7483060773318384E+00 1.7482533702485166E+00 + 1.7482000831125422E+00 1.7481462096360936E+00 1.7480917434639660E+00 + 1.7480366781728696E+00 1.7479810072707036E+00 1.7479247241958307E+00 + 1.7478678223163475E+00 1.7478102949293373E+00 1.7477521352601229E+00 + 1.7476933364615141E+00 1.7476338916130354E+00 1.7475737937201614E+00 + 1.7475130357135289E+00 1.7474516104481588E+00 1.7473895107026471E+00 + 1.7473267291783703E+00 1.7472632584986700E+00 1.7471990912080300E+00 + 1.7471342197712469E+00 1.7470686365725967E+00 1.7470023339149818E+00 + 1.7469353040190805E+00 1.7468675390224844E+00 1.7467990309788186E+00 + 1.7467297718568713E+00 1.7466597535396906E+00 1.7465889678236970E+00 + 1.7465174064177673E+00 1.7464450609423205E+00 1.7463719229283878E+00 + 1.7462979838166794E+00 1.7462232349566353E+00 1.7461476676054724E+00 + 1.7460712729272161E+00 1.7459940419917335E+00 1.7459159657737360E+00 + 1.7458370351517942E+00 1.7457572409073310E+00 1.7456765737236062E+00 + 1.7455950241846905E+00 1.7455125827744309E+00 1.7454292398754061E+00 + 1.7453449857678700E+00 1.7452598106286827E+00 1.7451737045302356E+00 + 1.7450866574393620E+00 1.7449986592162390E+00 1.7449096996132745E+00 + 1.7448197682739897E+00 1.7447288547318847E+00 1.7446369484092958E+00 + 1.7445440386162374E+00 1.7444501145492408E+00 1.7443551652901719E+00 + 1.7442591798050431E+00 1.7441621469428110E+00 1.7440640554341624E+00 + 1.7439648938902901E+00 1.7438646508016566E+00 1.7437633145367393E+00 + 1.7436608733407746E+00 1.7435573153344777E+00 1.7434526285127587E+00 + 1.7433468007434236E+00 1.7432398197658574E+00 1.7431316731897040E+00 + 1.7430223484935243E+00 1.7429118330234465E+00 1.7428001139917983E+00 + 1.7426871784757341E+00 1.7425730134158384E+00 1.7424576056147252E+00 + 1.7423409417356133E+00 1.7422230083009034E+00 1.7421037916907214E+00 + 1.7419832781414630E+00 1.7418614537443209E+00 1.7417383044437937E+00 + 1.7416138160361814E+00 1.7414879741680716E+00 1.7413607643348032E+00 + 1.7412321718789232E+00 1.7411021819886237E+00 1.7409707796961620E+00 + 1.7408379498762760E+00 1.7407036772445681E+00 1.7405679463558890E+00 + 1.7404307416027012E+00 1.7402920472134207E+00 1.7401518472507485E+00 + 1.7400101256099898E+00 1.7398668660173506E+00 1.7397220520282193E+00 + 1.7395756670254390E+00 1.7394276942175488E+00 1.7392781166370286E+00 + 1.7391269171385089E+00 1.7389740783969745E+00 1.7388195829059498E+00 + 1.7386634129756644E+00 1.7385055507312033E+00 1.7383459781106378E+00 + 1.7381846768631464E+00 1.7380216285471064E+00 1.7378568145281799E+00 + 1.7376902159773737E+00 1.7375218138690829E+00 1.7373515889791231E+00 + 1.7371795218827331E+00 1.7370055929525685E+00 1.7368297823566754E+00 + 1.7366520700564421E+00 1.7364724358045338E+00 1.7362908591428137E+00 + 1.7361073194002326E+00 1.7359217956907165E+00 1.7357342669110190E+00 + 1.7355447117385674E+00 1.7353531086292782E+00 1.7351594358153617E+00 + 1.7349636713031067E+00 1.7347657928706373E+00 1.7345657780656567E+00 + 1.7343636042031714E+00 1.7341592483631934E+00 1.7339526873884179E+00 + 1.7337438978818933E+00 1.7335328562046524E+00 1.7333195384733429E+00 + 1.7331039205578171E+00 1.7328859780787202E+00 1.7326656864050440E+00 + 1.7324430206516654E+00 1.7322179556768587E+00 1.7319904660797947E+00 + 1.7317605261980140E+00 1.7315281101048743E+00 1.7312931916069838E+00 + 1.7310557442416121E+00 1.7308157412740703E+00 1.7305731556950781E+00 + 1.7303279602181121E+00 1.7300801272767170E+00 1.7298296290218080E+00 + 1.7295764373189475E+00 1.7293205237455995E+00 1.7290618595883549E+00 + 1.7288004158401455E+00 1.7285361631974252E+00 1.7282690720573330E+00 + 1.7279991125148366E+00 1.7277262543598446E+00 1.7274504670743029E+00 + 1.7271717198292615E+00 1.7268899814819247E+00 1.7266052205726752E+00 + 1.7263174053220713E+00 1.7260265036278275E+00 1.7257324830617646E+00 + 1.7254353108667431E+00 1.7251349539535661E+00 1.7248313788978633E+00 + 1.7245245519369494E+00 1.7242144389666589E+00 1.7239010055381569E+00 + 1.7235842168547253E+00 1.7232640377685311E+00 1.7229404327773568E+00 + 1.7226133660213236E+00 1.7222828012795779E+00 1.7219487019669586E+00 + 1.7216110311306450E+00 1.7212697514467683E+00 1.7209248252170111E+00 + 1.7205762143651793E+00 1.7202238804337429E+00 1.7198677845803660E+00 + 1.7195078875743988E+00 1.7191441497933564E+00 1.7187765312193699E+00 + 1.7184049914356041E+00 1.7180294896226751E+00 1.7176499845550144E+00 + 1.7172664345972317E+00 1.7168787977004432E+00 1.7164870313985807E+00 + 1.7160910928046722E+00 1.7156909386071060E+00 1.7152865250658622E+00 + 1.7148778080087297E+00 1.7144647428274948E+00 1.7140472844741057E+00 + 1.7136253874568215E+00 1.7131990058363251E+00 1.7127680932218281E+00 + 1.7123326027671413E+00 1.7118924871667298E+00 1.7114476986517424E+00 + 1.7109981889860195E+00 1.7105439094620807E+00 1.7100848108970852E+00 + 1.7096208436287805E+00 1.7091519575114187E+00 1.7086781019116608E+00 + 1.7081992257044536E+00 1.7077152772688888E+00 1.7072262044840416E+00 + 1.7067319547247910E+00 1.7062324748576154E+00 1.7057277112363733E+00 + 1.7052176096980627E+00 1.7047021155585629E+00 1.7041811736083565E+00 + 1.7036547281082324E+00 1.7031227227849761E+00 1.7025851008270334E+00 + 1.7020418048801702E+00 1.7014927770430985E+00 1.7009379588631071E+00 + 1.7003772913316542E+00 1.6998107148799664E+00 1.6992381693746037E+00 + 1.6986595941130251E+00 1.6980749278191347E+00 1.6974841086388099E+00 + 1.6968870741354269E+00 1.6962837612853663E+00 1.6956741064735095E+00 + 1.6950580454887294E+00 1.6944355135193592E+00 1.6938064451486652E+00 + 1.6931707743503017E+00 1.6925284344837630E+00 1.6918793582898219E+00 + 1.6912234778859689E+00 1.6905607247618413E+00 1.6898910297746477E+00 + 1.6892143231445893E+00 1.6885305344502790E+00 1.6878395926241510E+00 + 1.6871414259478823E+00 1.6864359620477991E+00 1.6857231278902933E+00 + 1.6850028497772371E+00 1.6842750533413977E+00 1.6835396635418618E+00 + 1.6827966046594580E+00 1.6820458002921859E+00 1.6812871733506594E+00 + 1.6805206460535436E+00 1.6797461399230167E+00 1.6789635757802326E+00 + 1.6781728737407942E+00 1.6773739532102498E+00 1.6765667328795884E+00 + 1.6757511307207691E+00 1.6749270639822473E+00 1.6740944491845404E+00 + 1.6732532021157951E+00 1.6724032378273885E+00 1.6715444706295481E+00 + 1.6706768140869952E+00 1.6698001810146201E+00 1.6689144834731802E+00 + 1.6680196327650254E+00 1.6671155394298662E+00 1.6662021132405667E+00 + 1.6652792631989746E+00 1.6643468975317868E+00 1.6634049236864645E+00 + 1.6624532483271715E+00 1.6614917773307756E+00 1.6605204157828823E+00 + 1.6595390679739181E+00 1.6585476373952734E+00 1.6575460267354827E+00 + 1.6565341378764749E+00 1.6555118718898660E+00 1.6544791290333216E+00 + 1.6534358087469823E+00 1.6523818096499410E+00 1.6513170295368063E+00 + 1.6502413653743133E+00 1.6491547132980311E+00 1.6480569686091311E+00 + 1.6469480257712297E+00 1.6458277784073307E+00 1.6446961192968277E+00 + 1.6435529403726219E+00 1.6423981327183015E+00 1.6412315865654383E+00 + 1.6400531912909670E+00 1.6388628354146741E+00 1.6376604065967797E+00 + 1.6364457916356436E+00 1.6352188764655609E+00 1.6339795461546940E+00 + 1.6327276849031047E+00 1.6314631760409224E+00 1.6301859020266265E+00 + 1.6288957444454710E+00 1.6275925840080332E+00 1.6262763005489047E+00 + 1.6249467730255249E+00 1.6236038795171648E+00 1.6222474972240530E+00 + 1.6208775024666648E+00 1.6194937706851757E+00 1.6180961764390633E+00 + 1.6166845934068979E+00 1.6152588943862980E+00 1.6138189512940668E+00 + 1.6123646351665111E+00 1.6108958161599596E+00 1.6094123635514601E+00 + 1.6079141457396959E+00 1.6064010302460920E+00 1.6048728837161448E+00 + 1.6033295719209582E+00 1.6017709597590177E+00 1.6001969112581713E+00 + 1.5986072895778702E+00 1.5970019570116343E+00 1.5953807749897639E+00 + 1.5937436040823181E+00 1.5920903040023398E+00 1.5904207336093550E+00 + 1.5887347509131446E+00 1.5870322130777899E+00 1.5853129764260125E+00 + 1.5835768964438075E+00 1.5818238277853713E+00 1.5800536242783492E+00 + 1.5782661389293804E+00 1.5764612239299898E+00 1.5746387306627929E+00 + 1.5727985097080464E+00 1.5709404108505436E+00 1.5690642830868651E+00 + 1.5671699746329950E+00 1.5652573329323052E+00 1.5633262046639147E+00 + 1.5613764357514499E+00 1.5594078713721893E+00 1.5574203559666204E+00 + 1.5554137332484064E+00 1.5533878462147808E+00 1.5513425371573764E+00 + 1.5492776476734906E+00 1.5471930186778029E+00 1.5450884904145623E+00 + 1.5429639024702346E+00 1.5408190937866382E+00 1.5386539026745665E+00 + 1.5364681668279165E+00 1.5342617233383240E+00 1.5320344087103221E+00 + 1.5297860588770329E+00 1.5275165092164049E+00 1.5252255945680000E+00 + 1.5229131492503425E+00 1.5205790070788601E+00 1.5182230013843923E+00 + 1.5158449650323098E+00 1.5134447304422416E+00 1.5110221296084230E+00 + 1.5085769941206779E+00 1.5061091551860482E+00 1.5036184436510764E+00 + 1.5011046900247649E+00 1.4985677245022091E+00 1.4960073769889339E+00 + 1.4934234771259285E+00 1.4908158543154086E+00 1.4881843377473036E+00 + 1.4855287564264943E+00 1.4828489392008082E+00 1.4801447147897804E+00 + 1.4774159118142083E+00 1.4746623588264944E+00 1.4718838843418065E+00 + 1.4690803168700572E+00 1.4662514849487278E+00 1.4633972171765350E+00 + 1.4605173422479700E+00 1.4576116889887132E+00 1.4546800863919427E+00 + 1.4517223636555447E+00 1.4487383502202518E+00 1.4457278758087118E+00 + 1.4426907704655019E+00 1.4396268645981105E+00 1.4365359890188896E+00 + 1.4334179749880060E+00 1.4302726542573867E+00 1.4270998591156916E+00 + 1.4238994224343124E+00 1.4206711777144236E+00 1.4174149591350917E+00 + 1.4141306016024524E+00 1.4108179407999928E+00 1.4074768132399211E+00 + 1.4041070563156539E+00 1.4007085083554460E+00 1.3972810086771486E+00 + 1.3938243976441309E+00 1.3903385167223814E+00 1.3868232085387706E+00 + 1.3832783169405358E+00 1.3797036870559585E+00 1.3760991653562729E+00 + 1.3724645997188067E+00 1.3687998394913714E+00 1.3651047355579073E+00 + 1.3613791404054134E+00 1.3576229081921387E+00 1.3538358948170963E+00 + 1.3500179579908549E+00 1.3461689573076712E+00 1.3422887543189344E+00 + 1.3383772126079503E+00 1.3344341978660808E+00 1.3304595779702260E+00 + 1.3264532230616841E+00 1.3224150056263737E+00 1.3183448005764458E+00 + 1.3142424853332801E+00 1.3101079399118751E+00 1.3059410470066450E+00 + 1.3017416920786202E+00 1.2975097634440584E+00 1.2932451523644821E+00 + 1.2889477531381217E+00 1.2846174631927951E+00 1.2802541831802075E+00 + 1.2758578170716803E+00 1.2714282722553059E+00 1.2669654596345332E+00 + 1.2624692937281783E+00 1.2579396927718598E+00 1.2533765788208631E+00 + 1.2487798778544070E+00 1.2441495198813397E+00 1.2394854390472372E+00 + 1.2347875737428953E+00 1.2300558667142214E+00 1.2252902651735054E+00 + 1.2204907209120623E+00 1.2156571904142339E+00 1.2107896349727363E+00 + 1.2058880208053391E+00 1.2009523191728613E+00 1.1959825064984595E+00 + 1.1909785644882043E+00 1.1859404802528988E+00 1.1808682464311455E+00 + 1.1757618613136167E+00 1.1706213289685141E+00 1.1654466593681789E+00 + 1.1602378685168324E+00 1.1549949785794158E+00 1.1497180180114903E+00 + 1.1444070216901587E+00 1.1390620310459836E+00 1.1336830941958502E+00 + 1.1282702660767452E+00 1.1228236085803800E+00 1.1173431906886551E+00 + 1.1118290886098730E+00 1.1062813859156770E+00 1.1007001736786515E+00 + 1.0950855506105241E+00 1.0894376232009180E+00 1.0837565058565892E+00 + 1.0780423210410843E+00 1.0722951994147458E+00 1.0665152799750071E+00 + 1.0607027101968920E+00 1.0548576461736483E+00 1.0489802527574326E+00 + 1.0430707036999685E+00 1.0371291817930830E+00 1.0311558790090494E+00 + 1.0251509966406183E+00 1.0191147454406666E+00 1.0130473457613483E+00 + 1.0069490276926505E+00 1.0008200312002478E+00 9.9466060626254238E-01 + 9.8847101300677898E-01 9.8225152184411235E-01 9.7600241360351281E-01 + 9.6972397966437796E-01 9.6341652208772166E-01 9.5708035374581202E-01 + 9.5071579845011622E-01 9.4432319107741147E-01 9.3790287769392122E-01 + 9.3145521567731415E-01 9.2498057383643473E-01 9.1847933252857872E-01 + 9.1195188377417880E-01 9.0539863136871235E-01 8.9881999099167564E-01 + 8.9221639031244182E-01 8.8558826909282196E-01 8.7893607928615713E-01 + 8.7226028513273002E-01 8.6556136325134247E-01 8.5883980272681348E-01 + 8.5209610519324352E-01 8.4533078491281066E-01 8.3854436884990124E-01 + 8.3173739674035863E-01 8.2491042115563962E-01 8.1806400756164632E-01 + 8.1119873437201961E-01 8.0431519299565524E-01 7.9741398787821993E-01 + 7.9049573653742999E-01 7.8356106959184102E-01 7.7661063078292047E-01 + 7.6964507699015383E-01 7.6266507823892449E-01 7.5567131770093188E-01 + 7.4866449168687266E-01 7.4164530963114916E-01 7.3461449406832957E-01 + 7.2757278060109976E-01 7.2052091785945216E-01 7.1345966745083100E-01 + 7.0638980390098149E-01 6.9931211458522080E-01 6.9222739964987878E-01 + 6.8513647192361482E-01 6.7804015681836427E-01 6.7093929221963122E-01 + 6.6383472836586466E-01 6.5672732771664188E-01 6.4961796480940193E-01 + 6.4250752610445461E-01 6.3539690981801411E-01 6.2828702574297912E-01 + 6.2117879505721918E-01 6.1407315011910624E-01 6.0697103425004384E-01 + 5.9987340150374735E-01 5.9278121642203729E-01 5.8569545377691634E-01 + 5.7861709829870067E-01 5.7154714438998955E-01 5.6448659582525118E-01 + 5.5743646543584235E-01 5.5039777478025409E-01 5.4337155379940572E-01 + 5.3635884045681526E-01 5.2936068036348671E-01 5.2237812638736980E-01 + 5.1541223824725724E-01 5.0846408209099159E-01 5.0153473005789595E-01 + 4.9462525982532768E-01 4.8773675413928408E-01 4.8087030032901595E-01 + 4.7402698980561037E-01 4.6720791754452795E-01 4.6041418155210417E-01 + 4.5364688231605277E-01 4.4690712224000129E-01 4.4019600506216727E-01 + 4.3351463525825118E-01 4.2686411742868863E-01 4.2024555567041383E-01 + 4.1366005293332103E-01 4.0710871036163326E-01 4.0059262662043371E-01 + 3.9411289720761972E-01 3.8767061375160666E-01 3.8126686329511372E-01 + 3.7490272756541099E-01 3.6857928223144582E-01 3.6229759614829471E-01 + 3.5605873058943233E-01 3.4986373846734048E-01 3.4371366354303384E-01 + 3.3760953962509194E-01 3.3155238975886553E-01 3.2554322540653458E-01 + 3.1958304561875595E-01 3.1367283619867292E-01 3.0781356885911260E-01 + 3.0200620037382692E-01 2.9625167172369654E-01 2.9055090723883292E-01 + 2.8490481373759718E-01 2.7931427966356281E-01 2.7378017422151441E-01 + 2.6830334651361543E-01 2.6288462467691681E-01 2.5752481502342667E-01 + 2.5222470118400475E-01 2.4698504325738285E-01 2.4180657696564870E-01 + 2.3669001281759172E-01 2.3163603528131652E-01 2.2664530196759042E-01 + 2.2171844282541148E-01 2.1685605935132579E-01 2.1205872381404162E-01 + 2.0732697849592802E-01 2.0266133495298985E-01 1.9806227329496251E-01 + 1.9353024148715325E-01 1.8906565467569286E-01 1.8466889453786411E-01 + 1.8034030865917450E-01 1.7608020993885012E-01 1.7188887602541233E-01 + 1.6776654878400488E-01 1.6371343379709752E-01 1.5972969990021138E-01 + 1.5581547875423687E-01 1.5197086445592403E-01 1.4819591318805386E-01 + 1.4449064291077232E-01 1.4085503309549863E-01 1.3728902450277505E-01 + 1.3379251900533273E-01 1.3036537945759619E-01 1.2700742961274747E-01 + 1.2371845408837746E-01 1.2049819838166240E-01 1.1734636893488554E-01 + 1.1426263325200402E-01 1.1124662006685208E-01 1.0829791956341454E-01 + 1.0541608364849349E-01 1.0260062627692378E-01 9.9851023829350447E-02 + 9.7166715542423024E-02 9.4547103991099987E-02 9.1991555622588372E-02 + 8.9499401341282453E-02 8.7069937143890871E-02 8.4702424803773310E-02 + 8.2396092603353718E-02 8.0150136113299048E-02 7.7963719017015098E-02 + 7.5835973978855456E-02 7.3766003554317075E-02 7.1752881140372884E-02 + 6.9795651964005612E-02 6.7893334106924844E-02 6.6044919564418103E-02 + 6.4249375336271355E-02 6.2505644547726585E-02 6.0812647598523527E-02 + 5.9169283338202407E-02 5.7574430267445666E-02 5.6026949273663917E-02 + 5.4525701398482534E-02 5.3069564860982847E-02 5.1657436490814709E-02 + 5.0288231617406073E-02 4.8960883955737743E-02 4.7674345488879666E-02 + 4.6427586347493381E-02 4.5219594686510337E-02 4.4049376559204878E-02 + 4.2915955788885636E-02 4.1818373838439976E-02 4.0755689677971364E-02 + 3.9726979650779363E-02 3.8731337337938591E-02 3.7767873421741788E-02 + 3.6835715548277699E-02 3.5934008189421045E-02 3.5061912504516325E-02 + 3.4218606202037878E-02 3.3403283401510137E-02 3.2615154495965477E-02 + 3.1853446015209903E-02 3.1117400490150795E-02 3.0406276318420595E-02 + 2.9719347631499249E-02 2.9055904163499662E-02 2.8415251121726843E-02 + 2.7796709059059829E-02 2.7199613748121774E-02 2.6623316057108635E-02 + 2.6067181827029415E-02 2.5530591749973654E-02 2.5012941247862172E-02 + 2.4513640350953304E-02 2.4032113575169645E-02 2.3567799797077061E-02 + 2.3120152125093878E-02 2.2688637765230522E-02 2.2272737879367212E-02 + 2.1871947433773277E-02 2.1485775035265851E-02 2.1113742752110452E-02 + 2.0755385916498184E-02 2.0410252905214820E-02 2.0077904894976076E-02 + 1.9757915588871751E-02 1.9449870910485015E-02 1.9153368662578572E-02 + 1.8868018147821897E-02 1.8593439749929927E-02 1.8329264474847229E-02 + 1.8075133453283172E-02 1.7830697407996955E-02 1.7595616091724265E-02 + 1.7369557704439920E-02 1.7152198301607195E-02 1.6943221207927326E-02 + 1.6742316453546305E-02 1.6549180251314851E-02 1.6363514534137733E-02 + 1.6185026570350803E-02 1.6013428672239084E-02 1.5848438008275997E-02 + 1.5689776523721031E-02 1.5537170967409348E-02 1.5390353015652669E-02 + 1.5249059477962347E-02 1.5113032564540866E-02 1.4982020192684475E-02 + 1.4855776308605790E-02 1.4734061202604053E-02 1.4616641798588572E-02 + 1.4503291903139356E-02 1.4393792403955285E-02 1.4287931412140780E-02 + 1.4185504346891840E-02 1.4086313964493146E-02 1.3990170336016161E-02 + 1.3896890779725921E-02 1.3806299755055776E-02 1.3718228725239326E-02 + 1.3632515995455504E-02 1.3549006532795288E-02 1.3467551773627377E-02 + 1.3388009423126750E-02 1.3310243250910484E-02 1.3234122885950423E-02 + 1.3159523613231520E-02 1.3086326174014758E-02 1.3014416571048987E-02 + 1.2943685879650878E-02 1.2874030065232840E-02 1.2805349807591546E-02 + 1.2737550332066727E-02 1.2670541247528307E-02 1.2604236391042445E-02 + 1.2538553678992159E-02 1.2473414964381131E-02 1.2408745900021750E-02 + 1.2344475807297023E-02 1.2280537550184340E-02 1.2216867414237068E-02 + 1.2153404990231084E-02 1.2090093062200026E-02 1.2026877499599771E-02 + 1.1963707153361060E-02 1.1900533755607633E-02 1.1837311822834743E-02 + 1.1773998562360041E-02 1.1710553781874236E-02 1.1646939801934122E-02 + 1.1583121371253009E-02 1.1519065584656906E-02 1.1454741803584528E-02 + 1.1390121579019738E-02 1.1325178576753693E-02 1.1259888504881398E-02 + 1.1194229043444777E-02 1.1128179776140314E-02 1.1061722124014470E-02 + 1.0994839281075643E-02 1.0927516151755034E-02 1.0859739290152997E-02 + 1.0791496841010837E-02 1.0722778482350844E-02 1.0653575369730436E-02 + 1.0583880082058550E-02 1.0513686568924763E-02 1.0442990099393392E-02 + 1.0371787212217400E-02 1.0300075667427857E-02 1.0227854399256896E-02 + 1.0155123470353368E-02 1.0081884027251908E-02 1.0008138257057507E-02 + 9.9338893453089043E-03 9.8591414349852337E-03 9.7838995866219372E-03 + 9.7081697395026596E-03 9.6319586738950261E-03 9.5552739742996145E-03 + 9.4781239936818102E-03 9.4005178186579962E-03 9.3224652356077489E-03 + 9.2439766976853271E-03 9.1650632927039646E-03 9.0857367118680303E-03 + 9.0060092193285455E-03 8.9258936225383410E-03 8.8454032433843959E-03 + 8.7645518900750195E-03 8.6833538297608759E-03 8.6018237618692029E-03 + 8.5199767921312845E-03 8.4378284072842633E-03 8.3553944504284588E-03 + 8.2726910970223853E-03 8.1897348314981088E-03 8.1065424244800947E-03 + 8.0231309105912828E-03 7.9395175668305895E-03 7.8557198915066608E-03 + 7.7717555837127509E-03 7.6876425233286406E-03 7.6033987515353695E-03 + 7.5190424518292685E-03 7.4345919315219324E-03 7.3500656037133322E-03 + 7.2654819697254430E-03 7.1808596019841782E-03 7.0962171273375070E-03 + 7.0115732107983277E-03 6.9269465397005748E-03 6.8423558082573686E-03 + 6.7578197025105263E-03 6.6733568856607115E-03 6.5889859837678930E-03 + 6.5047255718121153E-03 6.4205941601046656E-03 6.3366101810401034E-03 + 6.2527919761799170E-03 6.1691577836587149E-03 6.0857257259043377E-03 + 6.0025137976634129E-03 5.9195398543242612E-03 5.8368216005294750E-03 + 5.7543765790707265E-03 5.6722221600587772E-03 5.5903755303621542E-03 + 5.5088536833083060E-03 5.4276734086414116E-03 5.3468512827317561E-03 + 5.2664036590317617E-03 5.1863466587746066E-03 5.1066961619116655E-03 + 5.0274677982856501E-03 4.9486769390371076E-03 4.8703386882422411E-03 + 4.7924678747808579E-03 4.7150790444338885E-03 4.6381864522104478E-03 + 4.5618040549052271E-03 4.4859455038875427E-03 4.4106241381241485E-03 + 4.3358529774383640E-03 4.2616447160090092E-03 4.1880117161129625E-03 + 4.1149660021159024E-03 4.0425192547162894E-03 3.9706828054481922E-03 + 3.8994676314489975E-03 3.8288843504984964E-03 3.7589432163361298E-03 + 3.6896541142635545E-03 3.6210265570398741E-03 3.5530696810770587E-03 + 3.4857922429431115E-03 3.4192026161806006E-03 3.3533087884481069E-03 + 3.2881183589918922E-03 3.2236385364550072E-03 3.1598761370305148E-03 + 3.0968375829653946E-03 3.0345289014209464E-03 2.9729557236951275E-03 + 2.9121232848115632E-03 2.8520364234793190E-03 2.7926995824267358E-03 + 2.7341168091118829E-03 2.6762917568112035E-03 2.6192276860872487E-03 + 2.5629274666352326E-03 2.5073935795073381E-03 2.4526281197126474E-03 + 2.3986327991896731E-03 2.3454089501473169E-03 2.2929575287692666E-03 + 2.2412791192757920E-03 2.1903739383358337E-03 2.1402418398215619E-03 + 2.0908823198964939E-03 2.0422945224274481E-03 1.9944772447098194E-03 + 1.9474289434948141E-03 1.9011477413066178E-03 1.8556314330367577E-03 + 1.8108774928022825E-03 1.7668830810538790E-03 1.7236450519195264E-03 + 1.6811599607688180E-03 1.6394240719827644E-03 1.5984333669135631E-03 + 1.5581835520185714E-03 1.5186700671525580E-03 1.4798880940021814E-03 + 1.4418325646465668E-03 1.4044981702278940E-03 1.3678793697160187E-03 + 1.3319703987511107E-03 1.2967652785485200E-03 1.2622578248503967E-03 + 1.2284416569087546E-03 1.1953102064849780E-03 1.1628567268511419E-03 + 1.1310743017788399E-03 1.0999558545017358E-03 1.0694941566383469E-03 + 1.0396818370621492E-03 1.0105113907065929E-03 9.8197518729298727E-04 + 9.5406547996996919E-04 9.2677441385356589E-04 9.0009403445766387E-04 + 8.7401629600502477E-04 8.4853306960978793E-04 8.2363615132277060E-04 + 7.9931727003160235E-04 7.7556809520826025E-04 7.5238024449708260E-04 + 7.2974529113704922E-04 7.0765477121250895E-04 6.8610019072726767E-04 + 6.6507303249732955E-04 6.4456476285827680E-04 6.2456683818365823E-04 + 6.0507071121136972E-04 5.8606783717548227E-04 5.6754967974139304E-04 + 5.4950771674276884E-04 5.3193344571905363E-04 5.1481838925289489E-04 + 4.9815410010712322E-04 4.8193216616144384E-04 4.6614421514927810E-04 + 4.5078191919562378E-04 4.3583699915713707E-04 4.2130122876592370E-04 + 4.0716643857891763E-04 3.9342451973491777E-04 3.8006742752173128E-04 + 3.6708718475603018E-04 3.5447588497883456E-04 3.4222569546973349E-04 + 3.3032886008313000E-04 3.1877770191004220E-04 3.0756462576908501E-04 + 2.9668212053048950E-04 2.8612276127707321E-04 2.7587921130626923E-04 + 2.6594422397736340E-04 2.5631064440821450E-04 2.4697141102581323E-04 + 2.3791955697505035E-04 2.2914821139017756E-04 2.2065060053341021E-04 + 2.1242004880520586E-04 2.0444997963070091E-04 1.9673391622683815E-04 + 1.8926548225466208E-04 1.8203840236125283E-04 1.7504650261574250E-04 + 1.6828371084377854E-04 1.6174405686478994E-04 1.5542167263630198E-04 + 1.4931079230951752E-04 1.4340575220026346E-04 1.3770099067935218E-04 + 1.3219104798628577E-04 1.2687056597015148E-04 1.2173428776145416E-04 + 1.1677705737850684E-04 1.1199381927191832E-04 1.0737961781057352E-04 + 1.0292959671241256E-04 9.8638998423174472E-05 9.4503163446166459E-05 + 9.0517529625998386E-05 8.6677631389088918E-05 8.2979098943653515E-05 + 7.9417657441738191E-05 7.5989126105772790E-05 7.2689417321978374E-05 + 6.9514535702871032E-05 6.6460577120977375E-05 6.3523727715781008E-05 + 6.0700262875814722E-05 5.7986546197705341E-05 5.5379028423896801E-05 + 5.2874246360670446E-05 5.0468821778009409E-05 4.8159460292759383E-05 + 4.5942950236471846E-05 4.3816161509233750E-05 4.1776044420726227E-05 + 3.9819628519691201E-05 3.7944021412921940E-05 3.6146407574846969E-05 + 3.4424047148720266E-05 3.2774274740393056E-05 3.1194498205594367E-05 + 2.9682197431618141E-05 2.8234923114275233E-05 2.6850295530943080E-05 + 2.5526003310519128E-05 2.4259802201058079E-05 2.3049513835856635E-05 + 2.1893024498726563E-05 2.0788283889186059E-05 1.9733303888279892E-05 + 1.8726157325730761E-05 1.7764976749111288E-05 1.6847953195715057E-05 + 1.5973334967798871E-05 1.5139426411856378E-05 1.4344586702578661E-05 + 1.3587228632146051E-05 1.2865817405490833E-05 1.2178869442159750E-05 + 1.1524951185398422E-05 1.0902677919071160E-05 1.0310712593018594E-05 + 9.7477646574479984E-06 9.2125889069377729E-06 8.7039843346282377E-06 + 8.2207929971562886E-06 7.7618988908797980E-06 7.3262268399216556E-06 + 6.9127413965487924E-06 6.5204457543853035E-06 6.1483806749402450E-06 + 5.7956234279141074E-06 5.4612867457269214E-06 5.1445177926926559E-06 + 4.8444971492422985E-06 4.5604378115771585E-06 4.2915842071117682E-06 + 4.0372112260420780E-06 3.7966232693523198E-06 3.5691533135489773E-06 + 3.3541619923870248E-06 3.1510366958281736E-06 2.9591906864469762E-06 + 2.7780622334750727E-06 2.6071137646493257E-06 2.4458310360048330E-06 + 2.2937223197285787E-06 2.1503176101655650E-06 2.0151678480443757E-06 + 1.8878441629657349E-06 1.7679371341735872E-06 1.6550560696056532E-06 + 1.5488283031974501E-06 1.4488985103921344E-06 1.3549280417871472E-06 + 1.2665942748278846E-06 1.1835899834390099E-06 1.1056227254645876E-06 + 1.0324142477702142E-06 9.6369990884252214E-07 8.9922811870508752E-07 + 8.3875979595374308E-07 7.8206784169957914E-07 7.2893663019391392E-07 + 6.7916151589631072E-07 6.3254835673474057E-07 5.8891305329554092E-07 + 5.4808110367061753E-07 5.0988717367976536E-07 4.7417468217747999E-07 + 4.4079540114594719E-07 4.0960907026899849E-07 3.8048302567594414E-07 + 3.5329184253891510E-07 3.2791699120310551E-07 3.0424650652562594E-07 + 2.8217467009594024E-07 2.6160170500869845E-07 2.4243348285842132E-07 + 2.2458124262476851E-07 2.0796132111701023E-07 1.9249489464690317E-07 + 1.7810773160023650E-07 1.6472995557902475E-07 1.5229581878846912E-07 + 1.4074348534552035E-07 1.3001482418897989E-07 1.2005521127465313E-07 + 1.1081334074302714E-07 1.0224104475125149E-07 9.4293121665888107E-08 + 8.6927172317838059E-08 8.0103444026128540E-08 7.3784682102721227E-08 + 6.7935988556251503E-08 6.2524687718517352E-08 5.7520198523649293E-08 + 5.2893913176143154E-08 4.8619081950307627E-08 4.4670703870177631E-08 + 4.1025423025496100E-08 3.7661430286013136E-08 3.4558370183015824E-08 + 3.1697252733711166E-08 2.9060369990796172E-08 2.6631217106248754E-08 + 2.4394417705063794E-08 2.2335653371298309E-08 2.0441597055394366E-08 + 1.8699850218279286E-08 1.7098883534212515E-08 1.5627980980725835E-08 + 1.4277187150296235E-08 1.3037257624579380E-08 1.1899612258110969E-08 + 1.0856291224351914E-08 9.8999136827946068E-09 9.0236389315684441E-09 + 8.2211299155668076E-09 7.4865189655712838E-09 6.8143756491598422E-09 + 6.1996766193580194E-09 5.6377773520202049E-09 5.1243856678096111E-09 + 4.6555369393836018E-09 4.2275708889790132E-09 3.8371098860358944E-09 + 3.4810386587927117E-09 3.1564853379359689E-09 2.8608037543912742E-09 + 2.5915569172024752E-09 2.3465016011638462E-09 2.1235739774466985E-09 + 1.9208762239010820E-09 1.7366640550151858E-09 1.5693351146844647E-09 + 1.4174181779800767E-09 1.2795631110164322E-09 1.1545315408024469E-09 + 1.0411881896237536E-09 9.3849283104750154E-10 8.4549282706955224E-10 + 7.6131620824049976E-10 6.8516526081416420E-10 6.1631058706450636E-10 + 5.5408560691680264E-10 4.9788147094054869E-10 4.4714235655794719E-10 + 4.0136112103644027E-10 3.6007528646023703E-10 3.2286333341708705E-10 + 2.8934128159643100E-10 2.5915953687638897E-10 2.3199998578340354E-10 + 2.0757331944258521E-10 1.8561657030225407E-10 1.6589084601571394E-10 + 1.4817924589991876E-10 1.3228494636735004E-10 1.1802944264678287E-10 + 1.0525093497354989E-10 9.3802848242923654E-11 8.3552474883981210E-11 + 7.4379731428213243E-11 6.6176019919576319E-11 5.8843185943015493E-11 + 5.2292565638844882E-11 4.6444114622982574E-11 4.1225612249870037E-11 + 3.6571935137992462E-11 3.2424394329093658E-11 2.8730130873288954E-11 + 2.5441565025026682E-11 2.2515894600888252E-11 1.9914638391133607E-11 + 1.7603220834172796E-11 1.5550594458228598E-11 1.3728896868686439E-11 + 1.2113139314317199E-11 1.0680924101916924E-11 9.4121883481094524E-12 + 8.2889717601992522E-12 7.2952063260853202E-12 6.4165259673449314E-12 + 5.6400943705918848E-12 4.9544493609953138E-12 4.3493623192346918E-12 + 3.8157112699515233E-12 3.3453663866688732E-12 2.9310867658818592E-12 + 2.5664274222229718E-12 2.2456555478859471E-12 1.9636751634242867E-12 + 1.7159593641590116E-12 1.4984894372393728E-12 1.3077001893668722E-12 + 1.1404308847577304E-12 9.9388124749030324E-13 8.6557203234417161E-13 + 7.5330971394356364E-13 6.5515488580003881E-13 5.6939399901776255E-13 + 4.9451410526521021E-13 4.2918030039716187E-13 3.7221559407712316E-13 + 3.2258295713278732E-13 2.7936932238810251E-13 2.4177133655181964E-13 + 2.0908268058622438E-13 1.8068279399899019E-13 1.5602685485203664E-13 + 1.3463688210616486E-13 1.1609384034171776E-13 1.0003063907726872E-13 + 8.6125930078351390E-14 7.4098614132213345E-14 6.3702978763593315E-14 + 5.4724455559595988E-14 4.6975626491743315E-14 4.0293272578258345E-14 + 3.4534936308804852E-14 2.9576728667234628E-14 2.5310759561660101E-14 + 2.1643225090078124E-14 1.8492631453372257E-14 1.5788234471055466E-14 + 1.3468669594703285E-14 1.1480750106059335E-14 9.7784136831499362E-15 + 8.3217997488389787E-15 7.0764420086718413E-15 6.0125623626755965E-15 + 5.1044539608210760E-15 4.3299425838566556E-15 3.6699167880396933E-15 + 3.1079183700525769E-15 2.6297857016470182E-15 2.2233433654454005E-15 + 1.8781323056657351E-15 1.5851754009790443E-15 1.3367739808311088E-15 + 1.1263313499720170E-15 9.4819986636633916E-16 7.9754854203498521E-16 + 6.7024851092221613E-16 5.6277403815024792E-16 4.7211703599827400E-16 + 3.9571330807072895E-16 3.3137896837505620E-16 2.7725567995645496E-16 + 2.3176353149582809E-16 1.9356052268142863E-16 1.6150776271762956E-16 + 1.3463960326145965E-16 1.1213802935489057E-16 9.3310721301785058E-17 + 7.7572278476814195E-17 6.4428164125647950E-17 5.3460989538777790E-17 + 4.4318807631322794E-17 3.6705130888236269E-17 3.0370427676442329E-17 + 2.5104884821189878E-17 2.0732253743455059E-17 1.7104622930459443E-17 + 1.4097981564748146E-17 1.1608458209850214E-17 9.5491349291060405E-18 + 7.8473514375904991E-18 6.4424261517215587E-18 5.2837315663377878E-18 + 4.3290704811700097E-18 3.5433074152467015E-18 2.8972162610308901E-18 + 2.3665109898862606E-18 1.9310311571934879E-18 1.5740581823703981E-18 + 1.2817419945155314E-18 1.0426207236507953E-18 8.4721875442421083E-19 + 6.8771070753897568E-19 5.5764082931666949E-19 4.5168889935516901E-19 + 3.6547515132001979E-19 2.9539787793242841E-19 2.3849838866946294E-19 + 1.9234883377457839E-19 1.5495912338913921E-19 1.2469977525615495E-19 + 1.0023803505061825E-19 8.0485044106852254E-20 6.4552192238777559E-20 + 5.1715098813272628E-20 4.1383922049839161E-20 3.3078912187530932E-20 + 2.6410305069849008E-20 2.1061804279399270E-20 1.6777026816126277E-20 + 1.3348393365043680E-20 1.0608032752794686E-20 8.4203440486016323E-21 + 6.6759212916431717E-21 5.2865970218814321E-21 4.1814033395086365E-21 + 3.3032845380360256E-21 2.6064246406711716E-21 2.0540774212065674E-21 + 1.6168065500155367E-21 1.2710600775212390E-21 9.9801714138811360E-22 + 7.8265605263824734E-22 6.1300219147505145E-22 4.7952176898070184E-22 + 3.7463377183698277E-22 2.9231754151429460E-22 2.2779764444727164E-22 + 1.7729112939609452E-22 1.3780507822540452E-22 1.0697464905035116E-22 + 8.2933678939591684E-23 6.4211433754705117E-23 4.9650328408793498E-23 + 3.8340443842421751E-23 2.9567480092955250E-23 2.2771443074219594E-23 + 1.7513894868445556E-23 1.3452027029726248E-23 1.0318162880898398E-23 + 7.9035737936613615E-24 6.0457188115132441E-24 4.6181971614815917E-24 + 3.5228477067758458E-24 2.6835451246962668E-24 2.0413351539602821E-24 + 1.5506251800519440E-24 1.1762053858693433E-24 8.9092265170326498E-25 + 6.7386673390182445E-25 5.0895791072384956E-25 3.8384880523700553E-25 + 2.8907172215421902E-25 2.1737756540458873E-25 1.6322403450725641E-25 + 1.2237996893983254E-25 9.1619930445067765E-26 6.8488790019238069E-26 + 5.1120542709632677E-26 3.8099066489137076E-26 2.8351275489058932E-26 + 2.1065254518120329E-26 1.5627629077406384E-26 1.1575724131484752E-26 + 8.5610754979610833E-27 6.3216427148023554E-27 4.6606810607258714E-27 + 3.4307018485301588E-27 2.5213146118723007E-27 1.8500261809092153E-27 + 1.3552885066364361E-27 9.9125397342925714E-28 7.2382515083880183E-28 + 5.2768428147858508E-28 3.8406311754526214E-28 2.7907130398310169E-28 + 2.0244546390376487E-28 1.4661464189789647E-28 1.0600324927308609E-28 + 7.6512016013953235E-29 5.5132136117140847E-29 3.9658908080258620E-29 + 2.8479573088143602E-29 2.0416391995858772E-29 1.4610776677079010E-29 + 1.0437881511061096E-29 7.4437558428456867E-30 5.2991778710209987E-30 + 3.7658012556380231E-30 2.6713740005028494E-30 1.8916302514479596E-30 + 1.3370815563062785E-30 9.4339908188821657E-31 6.6442305460207760E-31 + 4.6709089073800702E-31 3.2776404136153333E-31 2.2957264548102952E-31 + 1.6049946689464050E-31 1.1199982549460837E-31 7.8009419173230323E-32 + 5.4232336425035212E-32 3.7631086616723303E-32 2.6062012664403350E-32 + 1.8015131688273896E-32 1.2428844318634650E-32 8.5582183490357846E-33 + 5.8815357469840909E-33 4.0341152524505776E-33 2.7615405106841182E-33 + 1.8866676884342677E-33 1.2863985165934087E-33 8.7536048315753591E-34 + 5.9446280226854838E-34 4.0288729195774811E-34 2.7249485123437556E-34 + 1.8392620901199637E-34 1.2388865153761399E-34 8.3276193458187514E-35 + 5.5861022271533076E-35 3.7393035974629274E-35 2.4978223332233893E-35 + + + 6.1434296525622800E+00 6.1434296517647615E+00 6.1434296493541565E+00 + 6.1434296453047796E+00 6.1434296395903827E+00 6.1434296321841506E+00 + 6.1434296230593217E+00 6.1434296121884229E+00 6.1434295995439534E+00 + 6.1434295850977909E+00 6.1434295688216789E+00 6.1434295506868848E+00 + 6.1434295306643767E+00 6.1434295087247017E+00 6.1434294848381095E+00 + 6.1434294589744765E+00 6.1434294311032005E+00 6.1434294011934636E+00 + 6.1434293692139663E+00 6.1434293351329261E+00 6.1434292989184085E+00 + 6.1434292605379675E+00 6.1434292199586524E+00 6.1434291771472376E+00 + 6.1434291320700627E+00 6.1434290846930182E+00 6.1434290349815930E+00 + 6.1434289829008373E+00 6.1434289284154673E+00 6.1434288714896983E+00 + 6.1434288120870670E+00 6.1434287501711653E+00 6.1434286857049178E+00 + 6.1434286186504270E+00 6.1434285489697293E+00 6.1434284766246199E+00 + 6.1434284015760374E+00 6.1434283237842404E+00 6.1434282432093914E+00 + 6.1434281598113101E+00 6.1434280735491029E+00 6.1434279843810682E+00 + 6.1434278922654100E+00 6.1434277971599185E+00 6.1434276990214398E+00 + 6.1434275978067276E+00 6.1434274934715463E+00 6.1434273859714894E+00 + 6.1434272752619217E+00 6.1434271612966063E+00 6.1434270440297061E+00 + 6.1434269234147472E+00 6.1434267994042031E+00 6.1434266719502384E+00 + 6.1434265410044606E+00 6.1434264065181035E+00 6.1434262684414431E+00 + 6.1434261267245880E+00 6.1434259813162582E+00 6.1434258321649420E+00 + 6.1434256792197202E+00 6.1434255224274494E+00 6.1434253617341357E+00 + 6.1434251970867058E+00 6.1434250284307597E+00 6.1434248557103199E+00 + 6.1434246788704483E+00 6.1434244978545660E+00 6.1434243126046422E+00 + 6.1434241230633990E+00 6.1434239291722363E+00 6.1434237308723221E+00 + 6.1434235281033107E+00 6.1434233208045113E+00 6.1434231089145062E+00 + 6.1434228923711061E+00 6.1434226711122095E+00 6.1434224450734538E+00 + 6.1434222141908110E+00 6.1434219783990729E+00 6.1434217376324556E+00 + 6.1434214918241468E+00 6.1434212409065392E+00 6.1434209848124457E+00 + 6.1434207234719587E+00 6.1434204568148862E+00 6.1434201847710881E+00 + 6.1434199072692239E+00 6.1434196242363734E+00 6.1434193355998348E+00 + 6.1434190412858376E+00 6.1434187412180243E+00 6.1434184353220225E+00 + 6.1434181235209770E+00 6.1434178057357478E+00 6.1434174818895846E+00 + 6.1434171519031890E+00 6.1434168156946063E+00 6.1434164731830370E+00 + 6.1434161242873948E+00 6.1434157689235338E+00 6.1434154070061755E+00 + 6.1434150384518365E+00 6.1434146631744513E+00 6.1434142810851382E+00 + 6.1434138920968628E+00 6.1434134961205249E+00 6.1434130930648712E+00 + 6.1434126828399194E+00 6.1434122653518664E+00 6.1434118405081586E+00 + 6.1434114082146642E+00 6.1434109683732467E+00 6.1434105208899519E+00 + 6.1434100656663793E+00 6.1434096026023832E+00 6.1434091315983865E+00 + 6.1434086525517868E+00 6.1434081653627590E+00 6.1434076699260682E+00 + 6.1434071661352441E+00 6.1434066538874745E+00 6.1434061330723280E+00 + 6.1434056035817584E+00 6.1434050653086034E+00 6.1434045181386807E+00 + 6.1434039619600940E+00 6.1434033966600170E+00 6.1434028221225940E+00 + 6.1434022382320608E+00 6.1434016448703099E+00 6.1434010419186320E+00 + 6.1434004292560926E+00 6.1433998067613667E+00 6.1433991743110292E+00 + 6.1433985317790709E+00 6.1433978790420403E+00 6.1433972159710653E+00 + 6.1433965424356316E+00 6.1433958583069765E+00 6.1433951634536719E+00 + 6.1433944577416506E+00 6.1433937410344708E+00 6.1433930131959595E+00 + 6.1433922740888747E+00 6.1433915235735261E+00 6.1433907615086829E+00 + 6.1433899877495231E+00 6.1433892021522229E+00 6.1433884045727627E+00 + 6.1433875948601893E+00 6.1433867728652718E+00 6.1433859384391676E+00 + 6.1433850914252233E+00 6.1433842316700877E+00 6.1433833590199241E+00 + 6.1433824733114042E+00 6.1433815743858720E+00 6.1433806620846481E+00 + 6.1433797362397815E+00 6.1433787966853819E+00 6.1433778432569364E+00 + 6.1433768757839404E+00 6.1433758940925252E+00 6.1433748980102836E+00 + 6.1433738873649952E+00 6.1433728619738845E+00 6.1433718216598434E+00 + 6.1433707662445363E+00 6.1433696955375892E+00 6.1433686093581672E+00 + 6.1433675075196748E+00 6.1433663898282100E+00 6.1433652560926477E+00 + 6.1433641061198534E+00 6.1433629397146170E+00 6.1433617566758221E+00 + 6.1433605568007223E+00 6.1433593398906510E+00 6.1433581057394679E+00 + 6.1433568541357788E+00 6.1433555848707799E+00 6.1433542977329765E+00 + 6.1433529925081238E+00 6.1433516689773642E+00 6.1433503269191609E+00 + 6.1433489661129519E+00 6.1433475863342020E+00 6.1433461873543971E+00 + 6.1433447689447780E+00 6.1433433308701959E+00 6.1433418728970226E+00 + 6.1433403947890675E+00 6.1433388963016426E+00 6.1433373771941984E+00 + 6.1433358372200146E+00 6.1433342761309673E+00 6.1433326936737638E+00 + 6.1433310895922046E+00 6.1433294636338971E+00 6.1433278155368720E+00 + 6.1433261450354282E+00 6.1433244518622017E+00 6.1433227357531051E+00 + 6.1433209964349880E+00 6.1433192336279596E+00 6.1433174470560523E+00 + 6.1433156364395280E+00 6.1433138014933801E+00 6.1433119419256457E+00 + 6.1433100574486348E+00 6.1433081477696625E+00 6.1433062125857960E+00 + 6.1433042515984981E+00 6.1433022645052722E+00 6.1433002509966910E+00 + 6.1432982107588545E+00 6.1432961434793407E+00 6.1432940488404890E+00 + 6.1432919265180503E+00 6.1432897761888183E+00 6.1432875975228125E+00 + 6.1432853901855555E+00 6.1432831538395520E+00 6.1432808881479133E+00 + 6.1432785927667037E+00 6.1432762673444401E+00 6.1432739115284596E+00 + 6.1432715249649075E+00 6.1432691072966978E+00 6.1432666581538768E+00 + 6.1432641771706402E+00 6.1432616639786657E+00 6.1432591181962728E+00 + 6.1432565394433727E+00 6.1432539273359605E+00 6.1432512814921862E+00 + 6.1432486015098728E+00 6.1432458869847055E+00 6.1432431375295975E+00 + 6.1432403527356332E+00 6.1432375321792767E+00 6.1432346754516107E+00 + 6.1432317821401776E+00 6.1432288518058584E+00 6.1432258840257497E+00 + 6.1432228783663465E+00 6.1432198343809263E+00 6.1432167516355989E+00 + 6.1432136296718092E+00 6.1432104680350186E+00 6.1432072662735493E+00 + 6.1432040239162937E+00 6.1432007404917321E+00 6.1431974155300821E+00 + 6.1431940485480618E+00 6.1431906390580169E+00 6.1431871865751813E+00 + 6.1431836905973185E+00 6.1431801506188251E+00 6.1431765661388242E+00 + 6.1431729366433299E+00 6.1431692616102787E+00 6.1431655405150707E+00 + 6.1431617728270691E+00 6.1431579580100664E+00 6.1431540955213810E+00 + 6.1431501848144254E+00 6.1431462253293443E+00 6.1431422165066785E+00 + 6.1431381577847981E+00 6.1431340485828176E+00 6.1431298883243484E+00 + 6.1431256764248836E+00 6.1431214122866384E+00 6.1431170953135794E+00 + 6.1431127249007496E+00 6.1431083004340401E+00 6.1431038212908380E+00 + 6.1430992868475816E+00 6.1430946964718958E+00 6.1430900495221108E+00 + 6.1430853453536018E+00 6.1430805833049771E+00 6.1430757627177837E+00 + 6.1430708829252216E+00 6.1430659432458175E+00 6.1430609430025909E+00 + 6.1430558814989782E+00 6.1430507580309177E+00 6.1430455718984058E+00 + 6.1430403223856400E+00 6.1430350087655272E+00 6.1430296303119922E+00 + 6.1430241862866310E+00 6.1430186759333507E+00 6.1430130985052287E+00 + 6.1430074532387335E+00 6.1430017393546192E+00 6.1429959560794876E+00 + 6.1429901026210008E+00 6.1429841781796384E+00 6.1429781819487692E+00 + 6.1429721131153743E+00 6.1429659708542887E+00 6.1429597543263261E+00 + 6.1429534626923008E+00 6.1429470950989904E+00 6.1429406506864384E+00 + 6.1429341285824073E+00 6.1429275279018807E+00 6.1429208477570931E+00 + 6.1429140872479273E+00 6.1429072454636922E+00 6.1429003214845430E+00 + 6.1428933143753675E+00 6.1428862231968910E+00 6.1428790470056516E+00 + 6.1428717848286034E+00 6.1428644356943911E+00 6.1428569986293464E+00 + 6.1428494726311920E+00 6.1428418566959344E+00 6.1428341498078556E+00 + 6.1428263509382308E+00 6.1428184590545989E+00 6.1428104731020614E+00 + 6.1428023920152803E+00 6.1427942147308237E+00 6.1427859401550533E+00 + 6.1427775671932823E+00 6.1427690947401459E+00 6.1427605216660304E+00 + 6.1427518468455675E+00 6.1427430691304510E+00 6.1427341873578518E+00 + 6.1427252003588633E+00 6.1427161069501590E+00 6.1427069059356869E+00 + 6.1426975961027086E+00 6.1426881762224426E+00 6.1426786450621478E+00 + 6.1426690013752312E+00 6.1426592438929717E+00 6.1426493713334196E+00 + 6.1426393824067924E+00 6.1426292758090497E+00 6.1426190502150364E+00 + 6.1426087042870225E+00 6.1425982366797829E+00 6.1425876460288835E+00 + 6.1425769309479890E+00 6.1425660900445784E+00 6.1425551219080852E+00 + 6.1425440251113352E+00 6.1425327982185847E+00 6.1425214397641899E+00 + 6.1425099482721626E+00 6.1424983222649514E+00 6.1424865602283063E+00 + 6.1424746606353802E+00 6.1424626219548841E+00 6.1424504426275348E+00 + 6.1424381210809154E+00 6.1424256557204782E+00 6.1424130449395529E+00 + 6.1424002871197416E+00 6.1423873806062907E+00 6.1423743237402171E+00 + 6.1423611148499884E+00 6.1423477522335466E+00 6.1423342341681035E+00 + 6.1423205589166816E+00 6.1423067247394609E+00 6.1422927298530059E+00 + 6.1422785724570250E+00 6.1422642507523779E+00 6.1422497629010309E+00 + 6.1422351070463126E+00 6.1422202813170861E+00 6.1422052838211467E+00 + 6.1421901126439522E+00 6.1421747658510464E+00 6.1421592414838084E+00 + 6.1421435375639453E+00 6.1421276520962893E+00 6.1421115830545148E+00 + 6.1420953283997886E+00 6.1420788860591298E+00 6.1420622539469587E+00 + 6.1420454299627281E+00 6.1420284119564563E+00 6.1420111977755480E+00 + 6.1419937852418487E+00 6.1419761721479107E+00 6.1419583562660103E+00 + 6.1419403353401387E+00 6.1419221070919940E+00 6.1419036692204649E+00 + 6.1418850193962271E+00 6.1418661552629397E+00 6.1418470744499247E+00 + 6.1418277745426098E+00 6.1418082531058680E+00 6.1417885076950816E+00 + 6.1417685358136609E+00 6.1417483349512327E+00 6.1417279025755009E+00 + 6.1417072361100615E+00 6.1416863329617835E+00 6.1416651905094062E+00 + 6.1416438060956775E+00 6.1416221770407837E+00 6.1416003006411914E+00 + 6.1415781741480107E+00 6.1415557947919988E+00 6.1415331597750926E+00 + 6.1415102662616716E+00 6.1414871113981668E+00 6.1414636922882764E+00 + 6.1414400060017922E+00 6.1414160495868586E+00 6.1413918200554116E+00 + 6.1413673143829826E+00 6.1413425295159332E+00 6.1413174623692122E+00 + 6.1412921098229090E+00 6.1412664687148579E+00 6.1412405358562729E+00 + 6.1412143080291095E+00 6.1411877819676342E+00 6.1411609543789094E+00 + 6.1411338219357816E+00 6.1411063812631550E+00 6.1410786289573611E+00 + 6.1410505615866828E+00 6.1410221756648866E+00 6.1409934676721374E+00 + 6.1409644340619591E+00 6.1409350712359334E+00 6.1409053755614353E+00 + 6.1408753433676706E+00 6.1408449709415818E+00 6.1408142545323319E+00 + 6.1407831903395289E+00 6.1407517745372742E+00 6.1407200032470808E+00 + 6.1406878725443468E+00 6.1406553784721547E+00 6.1406225170208710E+00 + 6.1405892841532772E+00 6.1405556757714965E+00 6.1405216877318072E+00 + 6.1404873158588815E+00 6.1404525559274852E+00 6.1404174036654329E+00 + 6.1403818547463205E+00 6.1403459048018787E+00 6.1403095494277284E+00 + 6.1402727841585030E+00 6.1402356044781188E+00 6.1401980058314889E+00 + 6.1401599836081537E+00 6.1401215331514871E+00 6.1400826497451355E+00 + 6.1400433286281846E+00 6.1400035649973592E+00 6.1399633539819760E+00 + 6.1399226906569844E+00 6.1398815700551088E+00 6.1398399871555691E+00 + 6.1397979368763362E+00 6.1397554140741182E+00 6.1397124135615408E+00 + 6.1396689300998304E+00 6.1396249583750340E+00 6.1395804930259974E+00 + 6.1395355286328934E+00 6.1394900597113100E+00 6.1394440807315078E+00 + 6.1393975860926284E+00 6.1393505701305431E+00 6.1393030271265108E+00 + 6.1392549512920214E+00 6.1392063367847172E+00 6.1391571777004534E+00 + 6.1391074680607964E+00 6.1390572018216032E+00 6.1390063728813766E+00 + 6.1389549750751007E+00 6.1389030021635485E+00 6.1388504478389621E+00 + 6.1387973057264249E+00 6.1387435693844425E+00 6.1386892323045492E+00 + 6.1386342879009561E+00 6.1385787295154026E+00 6.1385225504261633E+00 + 6.1384657438309462E+00 6.1384083028584833E+00 6.1383502205572800E+00 + 6.1382914899024730E+00 6.1382321038033210E+00 6.1381720550745351E+00 + 6.1381113364636706E+00 6.1380499406434552E+00 6.1379878601957634E+00 + 6.1379250876253861E+00 6.1378616153648515E+00 6.1377974357566139E+00 + 6.1377325410557608E+00 6.1376669234475818E+00 6.1376005750178999E+00 + 6.1375334877756433E+00 6.1374656536501986E+00 6.1373970644551665E+00 + 6.1373277119417615E+00 6.1372575877782580E+00 6.1371866835144360E+00 + 6.1371149906229165E+00 6.1370425004889126E+00 6.1369692044035720E+00 + 6.1368950935526128E+00 6.1368201590302354E+00 6.1367443918488211E+00 + 6.1366677829066019E+00 6.1365903230096199E+00 6.1365120028595124E+00 + 6.1364328130613996E+00 6.1363527441252534E+00 6.1362717864475398E+00 + 6.1361899303295164E+00 6.1361071659572088E+00 6.1360234834140348E+00 + 6.1359388726820203E+00 6.1358533236332624E+00 6.1357668260293883E+00 + 6.1356793695137934E+00 6.1355909436289480E+00 6.1355015377966078E+00 + 6.1354111413268368E+00 6.1353197434171483E+00 6.1352273331427574E+00 + 6.1351338994656563E+00 6.1350394312204291E+00 6.1349439171316291E+00 + 6.1348473457982831E+00 6.1347497056909477E+00 6.1346509851625406E+00 + 6.1345511724294814E+00 6.1344502555974838E+00 6.1343482226365245E+00 + 6.1342450613730088E+00 6.1341407595198021E+00 6.1340353046517926E+00 + 6.1339286842064649E+00 6.1338208854916187E+00 6.1337118956725503E+00 + 6.1336017017685949E+00 6.1334902906758177E+00 6.1333776491472234E+00 + 6.1332637637736278E+00 6.1331486210173152E+00 6.1330322071951695E+00 + 6.1329145084647987E+00 6.1327955108472745E+00 6.1326752002068616E+00 + 6.1325535622507354E+00 6.1324305825380874E+00 6.1323062464746814E+00 + 6.1321805393040965E+00 6.1320534461074017E+00 6.1319249518032590E+00 + 6.1317950411607853E+00 6.1316636987856343E+00 6.1315309090925973E+00 + 6.1313966563516358E+00 6.1312609246570995E+00 6.1311236979209873E+00 + 6.1309849599077300E+00 6.1308446941807588E+00 6.1307028841309483E+00 + 6.1305595129866255E+00 6.1304145637787570E+00 6.1302680193565733E+00 + 6.1301198623882955E+00 6.1299700753667521E+00 6.1298186405758157E+00 + 6.1296655401087703E+00 6.1295107558912161E+00 6.1293542696316639E+00 + 6.1291960628383810E+00 6.1290361168430749E+00 6.1288744127538548E+00 + 6.1287109314806498E+00 6.1285456537425604E+00 6.1283785600320089E+00 + 6.1282096306414644E+00 6.1280388456485539E+00 6.1278661849118299E+00 + 6.1276916280847411E+00 6.1275151545949216E+00 6.1273367436409636E+00 + 6.1271563742122295E+00 6.1269740250702904E+00 6.1267896747282693E+00 + 6.1266033014831827E+00 6.1264148834151122E+00 6.1262243983415186E+00 + 6.1260318238436016E+00 6.1258371372766156E+00 6.1256403157463657E+00 + 6.1254413361099633E+00 6.1252401749697523E+00 6.1250368086856364E+00 + 6.1248312133686174E+00 6.1246233648601294E+00 6.1244132387405621E+00 + 6.1242008103426278E+00 6.1239860547280882E+00 6.1237689466800038E+00 + 6.1235494607185172E+00 6.1233275710993604E+00 6.1231032517902282E+00 + 6.1228764764740511E+00 6.1226472185650138E+00 6.1224154511849065E+00 + 6.1221811471699423E+00 6.1219442790647447E+00 6.1217048191054291E+00 + 6.1214627392486820E+00 6.1212180111484908E+00 6.1209706061383518E+00 + 6.1207204952643011E+00 6.1204676492511609E+00 6.1202120385072378E+00 + 6.1199536331321784E+00 6.1196924028924418E+00 6.1194283172432327E+00 + 6.1191613453114373E+00 6.1188914558849694E+00 6.1186186174159847E+00 + 6.1183427980227911E+00 6.1180639654941293E+00 6.1177820872539774E+00 + 6.1174971303745895E+00 6.1172090616061583E+00 6.1169178473188106E+00 + 6.1166234535082973E+00 6.1163258458370864E+00 6.1160249895922600E+00 + 6.1157208496759647E+00 6.1154133906253101E+00 6.1151025765910081E+00 + 6.1147883713474185E+00 6.1144707382811809E+00 6.1141496403755706E+00 + 6.1138250402396679E+00 6.1134969000616994E+00 6.1131651816194390E+00 + 6.1128298463148765E+00 6.1124908551205710E+00 6.1121481685739933E+00 + 6.1118017468098209E+00 6.1114515495368122E+00 6.1110975360267688E+00 + 6.1107396651236749E+00 6.1103778952209025E+00 6.1100121842762318E+00 + 6.1096424897983335E+00 6.1092687688314866E+00 6.1088909779712761E+00 + 6.1085090733582579E+00 6.1081230106490816E+00 6.1077327450262926E+00 + 6.1073382312086988E+00 6.1069394234185905E+00 6.1065362754004369E+00 + 6.1061287403977005E+00 6.1057167711548592E+00 6.1053003199269922E+00 + 6.1048793384405622E+00 6.1044537779126209E+00 6.1040235890534973E+00 + 6.1035887220329945E+00 6.1031491264949205E+00 6.1027047515554136E+00 + 6.1022555457743870E+00 6.1018014571699268E+00 6.1013424332126389E+00 + 6.1008784208141646E+00 6.1004093663076144E+00 6.0999352154602979E+00 + 6.0994559134770157E+00 6.0989714049709587E+00 6.0984816339573173E+00 + 6.0979865438670098E+00 6.0974860775272539E+00 6.0969801771537870E+00 + 6.0964687843573380E+00 6.0959518401203487E+00 6.0954292848054674E+00 + 6.0949010581327689E+00 6.0943670991830050E+00 6.0938273464055417E+00 + 6.0932817375915240E+00 6.0927302098528875E+00 6.0921726996495060E+00 + 6.0916091427851145E+00 6.0910394743479834E+00 6.0904636287491360E+00 + 6.0898815397391584E+00 6.0892931403217556E+00 6.0886983627935658E+00 + 6.0880971387750060E+00 6.0874893991343901E+00 6.0868750739942428E+00 + 6.0862540927579216E+00 6.0856263840894176E+00 6.0849918758827650E+00 + 6.0843504952788443E+00 6.0837021686410591E+00 6.0830468215500550E+00 + 6.0823843788165597E+00 6.0817147644500587E+00 6.0810379016594762E+00 + 6.0803537128349783E+00 6.0796621195526797E+00 6.0789630425685228E+00 + 6.0782564017944223E+00 6.0775421162980718E+00 6.0768201042961136E+00 + 6.0760902831476802E+00 6.0753525693346973E+00 6.0746068784635598E+00 + 6.0738531252527439E+00 6.0730912235263110E+00 6.0723210861865660E+00 + 6.0715426252291547E+00 6.0707557517436026E+00 6.0699603758525296E+00 + 6.0691564067548471E+00 6.0683437526924289E+00 6.0675223209297870E+00 + 6.0666920177856101E+00 6.0658527485729863E+00 6.0650044176134585E+00 + 6.0641469282421534E+00 6.0632801827631146E+00 6.0624040824654326E+00 + 6.0615185275944139E+00 6.0606234173706710E+00 6.0597186499539104E+00 + 6.0588041224074614E+00 6.0578797307654302E+00 6.0569453699575071E+00 + 6.0560009337951488E+00 6.0550463150030458E+00 6.0540814051817957E+00 + 6.0531060947984354E+00 6.0521202731807939E+00 6.0511238284942985E+00 + 6.0501166477462727E+00 6.0490986167660852E+00 6.0480696201893398E+00 + 6.0470295414590565E+00 6.0459782627960710E+00 6.0449156652026241E+00 + 6.0438416284405463E+00 6.0427560310240063E+00 6.0416587502057997E+00 + 6.0405496619648824E+00 6.0394286409953208E+00 6.0382955606824646E+00 + 6.0371502931061736E+00 6.0359927090224268E+00 6.0348226778478553E+00 + 6.0336400676473954E+00 6.0324447451179397E+00 6.0312365755794106E+00 + 6.0300154229628689E+00 6.0287811497937600E+00 6.0275336171768314E+00 + 6.0262726847807091E+00 6.0249982108337372E+00 6.0237100521009017E+00 + 6.0224080638708868E+00 6.0210920999413213E+00 6.0197620126076750E+00 + 6.0184176526505606E+00 6.0170588693127032E+00 6.0156855102891225E+00 + 6.0142974217107410E+00 6.0128944481428475E+00 6.0114764325388910E+00 + 6.0100432162501276E+00 6.0085946390170824E+00 6.0071305389227172E+00 + 6.0056507524081040E+00 6.0041551142356306E+00 6.0026434574821943E+00 + 6.0011156135316330E+00 5.9995714120359231E+00 5.9980106809147209E+00 + 5.9964332463429990E+00 5.9948389327273315E+00 5.9932275626829270E+00 + 5.9915989570271666E+00 5.9899529347599350E+00 5.9882893130414434E+00 + 5.9866079071902618E+00 5.9849085306503094E+00 5.9831909949697444E+00 + 5.9814551098030453E+00 5.9797006828794999E+00 5.9779275199884108E+00 + 5.9761354249651522E+00 5.9743241996564311E+00 5.9724936439309815E+00 + 5.9706435556409705E+00 5.9687737305994482E+00 5.9668839625895185E+00 + 5.9649740432998559E+00 5.9630437623529033E+00 5.9610929072693848E+00 + 5.9591212634249935E+00 5.9571286140730555E+00 5.9551147402938085E+00 + 5.9530794209881881E+00 5.9510224328541010E+00 5.9489435503747030E+00 + 5.9468425457896821E+00 5.9447191890749753E+00 5.9425732479310671E+00 + 5.9404044877471680E+00 5.9382126716112920E+00 5.9359975602716917E+00 + 5.9337589120887637E+00 5.9314964830532100E+00 5.9292100267787777E+00 + 5.9268992944280114E+00 5.9245640347202793E+00 5.9222039939339162E+00 + 5.9198189158360774E+00 5.9174085417052416E+00 5.9149726102904552E+00 + 5.9125108577768808E+00 5.9100230177960507E+00 5.9075088213774833E+00 + 5.9049679969549098E+00 5.9024002703083980E+00 5.8998053645578290E+00 + 5.8971830001629737E+00 5.8945328948760567E+00 5.8918547637360268E+00 + 5.8891483190054181E+00 5.8864132702093173E+00 5.8836493240918033E+00 + 5.8808561845579979E+00 5.8780335526997014E+00 5.8751811267404737E+00 + 5.8722986020384766E+00 5.8693856710464614E+00 5.8664420232851890E+00 + 5.8634673453470825E+00 5.8604613208441876E+00 5.8574236303953011E+00 + 5.8543539516161314E+00 5.8512519590803702E+00 5.8481173242986006E+00 + 5.8449497157078216E+00 5.8417487986393306E+00 5.8385142352841033E+00 + 5.8352456846948080E+00 5.8319428027622511E+00 5.8286052421545600E+00 + 5.8252326523268181E+00 5.8218246795225559E+00 5.8183809666833248E+00 + 5.8149011534687931E+00 5.8113848762647562E+00 5.8078317680841343E+00 + 5.8042414585865281E+00 5.8006135740872642E+00 5.7969477374718794E+00 + 5.7932435682026160E+00 5.7895006823217647E+00 5.7857186923794099E+00 + 5.7818972074399584E+00 5.7780358330697430E+00 5.7741341712857155E+00 + 5.7701918205555627E+00 5.7662083757793443E+00 5.7621834282331044E+00 + 5.7581165655881810E+00 5.7540073718883118E+00 5.7498554274867431E+00 + 5.7456603090647942E+00 5.7414215895958405E+00 5.7371388383258832E+00 + 5.7328116207707094E+00 5.7284394986569476E+00 5.7240220299322058E+00 + 5.7195587687384393E+00 5.7150492653900287E+00 5.7104930663700983E+00 + 5.7058897142717715E+00 5.7012387478110771E+00 5.6965397018153521E+00 + 5.6917921071887454E+00 5.6869954908868836E+00 5.6821493759018278E+00 + 5.6772532812788432E+00 5.6723067220622250E+00 5.6673092092721671E+00 + 5.6622602499240999E+00 5.6571593469930068E+00 5.6520059994014593E+00 + 5.6467997019952341E+00 5.6415399455301403E+00 5.6362262166860857E+00 + 5.6308579980228819E+00 5.6254347679630978E+00 5.6199560008088030E+00 + 5.6144211667125097E+00 5.6088297316558426E+00 5.6031811574508463E+00 + 5.5974749017381864E+00 5.5917104179660546E+00 5.5858871553726219E+00 + 5.5800045589854541E+00 5.5740620696338947E+00 5.5680591239118415E+00 + 5.5619951541678905E+00 5.5558695885417322E+00 5.5496818509190797E+00 + 5.5434313609347639E+00 5.5371175339838565E+00 5.5307397812035637E+00 + 5.5242975094807036E+00 5.5177901214452785E+00 5.5112170154777722E+00 + 5.5045775856992760E+00 5.4978712219753501E+00 5.4910973099303249E+00 + 5.4842552309358608E+00 5.4773443621257218E+00 5.4703640763935200E+00 + 5.4633137424027645E+00 5.4561927246023849E+00 5.4490003832165979E+00 + 5.4417360742694045E+00 5.4343991495988737E+00 5.4269889568545278E+00 + 5.4195048395187078E+00 5.4119461369264510E+00 5.4043121842700437E+00 + 5.3966023126161131E+00 5.3888158489417641E+00 5.3809521161419882E+00 + 5.3730104330290738E+00 5.3649901143905243E+00 5.3568904710053626E+00 + 5.3487108096526157E+00 5.3404504331459819E+00 5.3321086403588973E+00 + 5.3236847262692297E+00 5.3151779819750384E+00 5.3065876947288455E+00 + 5.2979131479672210E+00 5.2891536213679311E+00 5.2803083908776864E+00 + 5.2713767287135944E+00 5.2623579034671231E+00 5.2532511801181823E+00 + 5.2440558200496152E+00 5.2347710811518287E+00 5.2253962178210482E+00 + 5.2159304810252465E+00 5.2063731183836506E+00 5.1967233741657903E+00 + 5.1869804893849798E+00 5.1771437018560036E+00 5.1672122462256089E+00 + 5.1571853540677521E+00 5.1470622539256148E+00 5.1368421713767445E+00 + 5.1265243291179399E+00 5.1161079470071256E+00 5.1055922421589734E+00 + 5.0949764290006323E+00 5.0842597193622208E+00 5.0734413225469828E+00 + 5.0625204453955313E+00 5.0514962924016178E+00 5.0403680657654446E+00 + 5.0291349654973789E+00 5.0177961894951446E+00 5.0063509336336462E+00 + 4.9947983918792342E+00 4.9831377563523613E+00 4.9713682174467646E+00 + 4.9594889639203847E+00 4.9474991829912902E+00 4.9353980604680672E+00 + 4.9231847808196463E+00 4.9108585272954848E+00 4.8984184820527927E+00 + 4.8858638262496177E+00 4.8731937401655960E+00 4.8604074033243707E+00 + 4.8475039945944856E+00 4.8344826923272670E+00 4.8213426744948160E+00 + 4.8080831187738848E+00 4.7947032026951906E+00 4.7812021037921326E+00 + 4.7675789997034332E+00 4.7538330683125967E+00 4.7399634878969108E+00 + 4.7259694372562056E+00 4.7118500958535892E+00 4.6976046439565078E+00 + 4.6832322627814857E+00 4.6687321346375645E+00 4.6541034430732831E+00 + 4.6393453730431427E+00 4.6244571110364987E+00 4.6094378452242353E+00 + 4.5942867656404873E+00 4.5790030643390622E+00 4.5635859355259241E+00 + 4.5480345757220597E+00 4.5323481839471880E+00 4.5165259618784672E+00 + 4.5005671140047587E+00 4.4844708477800124E+00 4.4682363738231370E+00 + 4.4518629060866832E+00 4.4353496619891395E+00 4.4186958626267661E+00 + 4.4019007329384339E+00 4.3849635018694260E+00 4.3678834025735922E+00 + 4.3506596725777475E+00 4.3332915539553536E+00 4.3157782935302222E+00 + 4.2981191430639818E+00 4.2803133594200151E+00 4.2623602047759475E+00 + 4.2442589468168785E+00 4.2260088589148230E+00 4.2076092203526851E+00 + 4.1890593165087351E+00 4.1703584390595392E+00 4.1515058862148608E+00 + 4.1325009629080469E+00 4.1133429810211259E+00 4.0940312596166377E+00 + 4.0745651251598822E+00 4.0549439117611268E+00 4.0351669614168744E+00 + 4.0152336242638036E+00 3.9951432588311753E+00 3.9748952323165874E+00 + 3.9544889208756060E+00 3.9339237098945068E+00 3.9131989943022885E+00 + 3.8923141788923066E+00 3.8712686786565862E+00 3.8500619191360728E+00 + 3.8286933367805824E+00 3.8071623793561424E+00 3.7854685063467262E+00 + 3.7636111893935840E+00 3.7415899127608006E+00 3.7194041738306489E+00 + 3.6970534836291695E+00 3.6745373673921091E+00 3.6518553651639869E+00 + 3.6290070324308492E+00 3.6059919408363887E+00 3.5828096788937041E+00 + 3.5594598527815129E+00 3.5359420872184413E+00 3.5122560263516487E+00 + 3.4884013347475071E+00 3.4643776984592969E+00 3.4401848261592733E+00 + 3.4158224503689576E+00 3.3912903287607872E+00 3.3665882455842877E+00 + 3.3417160132104207E+00 3.3166734737456287E+00 3.2914605008031286E+00 + 3.2660770014074538E+00 3.2405229180290407E+00 3.2147982307750476E+00 + 3.1889029597243623E+00 3.1628371674615461E+00 3.1366009617739077E+00 + 3.1101944985375201E+00 3.0836179848208496E+00 3.0568716821898763E+00 + 3.0299559102390123E+00 3.0028710503668803E+00 2.9756175498102233E+00 + 2.9481959259133697E+00 2.9206067706803318E+00 2.8928507556286909E+00 + 2.8649286369240126E+00 2.8368412608190479E+00 2.8085895694104446E+00 + 2.7801746067256285E+00 2.7515975251528539E+00 2.7228595921933896E+00 + 2.6939621975674974E+00 2.6649068606869362E+00 2.6356952384751158E+00 + 2.6063291335396452E+00 2.5768105026987596E+00 2.5471414658619462E+00 + 2.5173243152652574E+00 2.4873615250327585E+00 2.4572557610386609E+00 + 2.4270098910969509E+00 2.3966269954325257E+00 2.3661103773901124E+00 + 2.3354635743746854E+00 2.3046903689734060E+00 2.2737948002334445E+00 + 2.2427811750351938E+00 2.2116540794846138E+00 2.1804183903181449E+00 + 2.1490792862202035E+00 2.1176422589618857E+00 2.0861131243252351E+00 + 2.0544980327030706E+00 2.0228034792649225E+00 1.9910363136264011E+00 + 1.9592037488968572E+00 1.9273133699733513E+00 1.8953731410091261E+00 + 1.8633914119035668E+00 1.8313769236861488E+00 1.7993388126875767E+00 + 1.7672866133454708E+00 1.7352302595252762E+00 1.7031800842228280E+00 + 1.6711468175061543E+00 1.6391415825874394E+00 1.6071758898916331E+00 + 1.5752616290010335E+00 1.5434110583779870E+00 1.5116367927600689E+00 + 1.4799517881393105E+00 1.4483693242578339E+00 1.4169029845607188E+00 + 1.3855666335585799E+00 1.3543743915891810E+00 1.3233406069750042E+00 + 1.2924798255942329E+00 1.2618067579176782E+00 1.2313362435816035E+00 + 1.2010832135943710E+00 1.1710626503013575E+00 1.1412895452607892E+00 + 1.1117788552105969E+00 1.0825454563319130E+00 1.0536040970433957E+00 + 1.0249693495838395E+00 9.9665556066702155E-01 9.6867680151493873E-01 + 9.4104681758910991E-01 9.1377897836787969E-01 8.8688622752930890E-01 + 8.6038103389815035E-01 8.3427534354007071E-01 8.0858053338357738E-01 + 7.8330736674458890E-01 7.5846595113219129E-01 7.3406569869393146E-01 + 7.1011528965833071E-01 6.8662263911270105E-01 6.6359486740596774E-01 + 6.4103827447575590E-01 6.1895831834835024E-01 5.9735959801400984E-01 + 5.7624584086094666E-01 5.5561989479721918E-01 5.3548372513279408E-01 + 5.1583841626569327E-01 4.9668417815817673E-01 4.7802035750695759E-01 + 4.5984545350483108E-01 4.4215713800167677E-01 4.2495227981641354E-01 + 4.0822697292549470E-01 3.9197656816437698E-01 3.7619570803928709E-01 + 3.6087836422767622E-01 3.4601787723841448E-01 3.3160699769448521E-01 + 3.1763792869610452E-01 3.0410236860619916E-01 2.9099155364036228E-01 + 2.7829629960035746E-01 2.6600704204574832E-01 2.5411387425377024E-01 + 2.4260658224405365E-01 2.3147467618884712E-01 2.2070741757299292E-01 + 2.1029384144366292E-01 2.0022277317119344E-01 1.9048283920130463E-01 + 1.8106247131557079E-01 1.7194990406292066E-01 1.6313316511744991E-01 + 1.5460005842291280E-01 1.4633814021205566E-01 1.3833468814551331E-01 + 1.3057666403947985E-01 1.2305067093603937E-01 1.1574290553971146E-01 + 1.0863910737621565E-01 1.0172450641403848E-01 9.4983771225726737E-02 + 8.8400960241941370E-02 8.1959549379068741E-02 7.5642055547488721E-02 + 6.9422504433028165E-02 6.3306154437863818E-02 5.7388208026191601E-02 + 5.1772919982708256E-02 4.6482897844696516E-02 4.1508083758173012E-02 + 3.6845786445647594E-02 3.2493323050229873E-02 2.8447578083616441E-02 + 2.4705011270564240E-02 2.1261583001560273E-02 1.8112671568098936E-02 + 1.5252981730402883E-02 1.2676444219249409E-02 1.0376105878334140E-02 + 8.3440102891739060E-03 6.5710688889832275E-03 5.0469228226320542E-03 + 3.7597960694334318E-03 2.6963407376561083E-03 1.8414758696749150E-03 + 1.1782216452830194E-03 6.8753149752472239E-04 3.4812541922484670E-04 + 1.3632860759302089E-04 2.5920590146329373E-05 -1.1998897939247472E-05 + -9.1197752391442743E-06 1.6640296066067223E-09 1.6599414218431212E-09 + 1.6564422473870682E-09 1.6531557510651485E-09 1.6499629617934216E-09 + 1.6468083533520737E-09 1.6436555772355064E-09 1.6402228673764992E-09 + 1.6365518654072091E-09 1.6327991633116318E-09 1.6286799402384925E-09 + 1.6242319962253891E-09 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + -1.5667415131485233E+01 -1.5667415261818656E+01 -1.5667415309556180E+01 + -1.5667415320769949E+01 -1.5667415321040938E+01 -1.5667415315458950E+01 + -1.5667415305695725E+01 -1.5667415292442932E+01 -1.5667415276022842E+01 + -1.5667415256590481E+01 -1.5667415234232115E+01 -1.5667415208978806E+01 + -1.5667415180842230E+01 -1.5667415149831239E+01 -1.5667415115895793E+01 + -1.5667415079049594E+01 -1.5667415039241096E+01 -1.5667414996434907E+01 + -1.5667414950590175E+01 -1.5667414901692059E+01 -1.5667414849682576E+01 + -1.5667414794513219E+01 -1.5667414736143234E+01 -1.5667414674541483E+01 + -1.5667414609646487E+01 -1.5667414541419246E+01 -1.5667414469803926E+01 + -1.5667414394762341E+01 -1.5667414316233165E+01 -1.5667414234175441E+01 + -1.5667414148530639E+01 -1.5667414059251399E+01 -1.5667413966282421E+01 + -1.5667413869572702E+01 -1.5667413769066433E+01 -1.5667413664705142E+01 + -1.5667413556434029E+01 -1.5667413444202293E+01 -1.5667413327947667E+01 + -1.5667413207614114E+01 -1.5667413083137911E+01 -1.5667412954467268E+01 + -1.5667412821537013E+01 -1.5667412684287862E+01 -1.5667412542654445E+01 + -1.5667412396581421E+01 -1.5667412245999477E+01 -1.5667412090847579E+01 + -1.5667411931055634E+01 -1.5667411766567053E+01 -1.5667411597308364E+01 + -1.5667411423213878E+01 -1.5667411244213355E+01 -1.5667411060244481E+01 + -1.5667410871227816E+01 -1.5667410677103502E+01 -1.5667410477791430E+01 + -1.5667410273223549E+01 -1.5667410063321615E+01 -1.5667409848022023E+01 + -1.5667409627240637E+01 -1.5667409400903473E+01 -1.5667409168933204E+01 + -1.5667408931254986E+01 -1.5667408687787546E+01 -1.5667408438453029E+01 + -1.5667408183168067E+01 -1.5667407921855201E+01 -1.5667407654426498E+01 + -1.5667407380806019E+01 -1.5667407100900181E+01 -1.5667406814632290E+01 + -1.5667406521907390E+01 -1.5667406222647271E+01 -1.5667405916753923E+01 + -1.5667405604146236E+01 -1.5667405284727090E+01 -1.5667404958408547E+01 + -1.5667404625094342E+01 -1.5667404284694365E+01 -1.5667403937109896E+01 + -1.5667403582248154E+01 -1.5667403220008474E+01 -1.5667402850296064E+01 + -1.5667402473005842E+01 -1.5667402088043808E+01 -1.5667401695301761E+01 + -1.5667401294681508E+01 -1.5667400886074285E+01 -1.5667400469378007E+01 + -1.5667400044481305E+01 -1.5667399611281830E+01 -1.5667399169665103E+01 + -1.5667398719523700E+01 -1.5667398260742559E+01 -1.5667397793212368E+01 + -1.5667397316813817E+01 -1.5667396831435173E+01 -1.5667396336955084E+01 + -1.5667395833258091E+01 -1.5667395320220713E+01 -1.5667394797726811E+01 + -1.5667394265647371E+01 -1.5667393723861494E+01 -1.5667393172241148E+01 + -1.5667392610662418E+01 -1.5667392038991002E+01 -1.5667391457103420E+01 + -1.5667390864860035E+01 -1.5667390262136184E+01 -1.5667389648787585E+01 + -1.5667389024686134E+01 -1.5667388389688130E+01 -1.5667387743658090E+01 + -1.5667387086448477E+01 -1.5667386417923716E+01 -1.5667385737933019E+01 + -1.5667385046336642E+01 -1.5667384342977153E+01 -1.5667383627714472E+01 + -1.5667382900391390E+01 -1.5667382160856834E+01 -1.5667381408952606E+01 + -1.5667380644529452E+01 -1.5667379867418191E+01 -1.5667379077467693E+01 + -1.5667378274508829E+01 -1.5667377458383900E+01 -1.5667376628920184E+01 + -1.5667375785955802E+01 -1.5667374929314427E+01 -1.5667374058830683E+01 + -1.5667373174324872E+01 -1.5667372275626560E+01 -1.5667371362551082E+01 + -1.5667370434927960E+01 -1.5667369492564559E+01 -1.5667368535284540E+01 + -1.5667367562897040E+01 -1.5667366575218612E+01 -1.5667365572050745E+01 + -1.5667364553209053E+01 -1.5667363518492165E+01 -1.5667362467709777E+01 + -1.5667361400653990E+01 -1.5667360317131180E+01 -1.5667359216928938E+01 + -1.5667358099849949E+01 -1.5667356965677634E+01 -1.5667355814205921E+01 + -1.5667354645216435E+01 -1.5667353458500344E+01 -1.5667352253828879E+01 + -1.5667351030992485E+01 -1.5667349789757663E+01 -1.5667348529904254E+01 + -1.5667347251199828E+01 -1.5667345953420066E+01 -1.5667344636319122E+01 + -1.5667343299672391E+01 -1.5667341943232458E+01 -1.5667340566762896E+01 + -1.5667339170011246E+01 -1.5667337752740492E+01 -1.5667336314690740E+01 + -1.5667334855613584E+01 -1.5667333375250292E+01 -1.5667331873346997E+01 + -1.5667330349630650E+01 -1.5667328803851387E+01 -1.5667327235727363E+01 + -1.5667325644995348E+01 -1.5667324031376062E+01 -1.5667322394600740E+01 + -1.5667320734378288E+01 -1.5667319050432686E+01 -1.5667317342470259E+01 + -1.5667315610212640E+01 -1.5667313853351631E+01 -1.5667312071601387E+01 + -1.5667310264654445E+01 -1.5667308432217201E+01 -1.5667306573970187E+01 + -1.5667304689613449E+01 -1.5667302778823515E+01 -1.5667300841294981E+01 + -1.5667298876694181E+01 -1.5667296884706921E+01 -1.5667294864994354E+01 + -1.5667292817234896E+01 -1.5667290741083853E+01 -1.5667288636210358E+01 + -1.5667286502258190E+01 -1.5667284338895694E+01 -1.5667282145757126E+01 + -1.5667279922499127E+01 -1.5667277668749655E+01 -1.5667275384159490E+01 + -1.5667273068350088E+01 -1.5667270720957545E+01 -1.5667268341595053E+01 + -1.5667265929897638E+01 -1.5667263485469642E+01 -1.5667261007929341E+01 + -1.5667258496872616E+01 -1.5667255951918351E+01 -1.5667253372650334E+01 + -1.5667250758672193E+01 -1.5667248109560978E+01 -1.5667245424917738E+01 + -1.5667242704305773E+01 -1.5667239947310820E+01 -1.5667237153495392E+01 + -1.5667234322435691E+01 -1.5667231453676218E+01 -1.5667228546787804E+01 + -1.5667225601309919E+01 -1.5667222616799036E+01 -1.5667219592780764E+01 + -1.5667216528807129E+01 -1.5667213424391027E+01 -1.5667210279072371E+01 + -1.5667207092357383E+01 -1.5667203863775773E+01 -1.5667200592817833E+01 + -1.5667197279000344E+01 -1.5667193921810005E+01 -1.5667190520753653E+01 + -1.5667187075300491E+01 -1.5667183584943183E+01 -1.5667180049146751E+01 + -1.5667176467392981E+01 -1.5667172839125376E+01 -1.5667169163821487E+01 + -1.5667165440915680E+01 -1.5667161669867957E+01 -1.5667157850092636E+01 + -1.5667153981046908E+01 -1.5667150062146277E+01 -1.5667146092811501E+01 + -1.5667142072440566E+01 -1.5667138000468661E+01 -1.5667133876271533E+01 + -1.5667129699250641E+01 -1.5667125468788594E+01 -1.5667121184275340E+01 + -1.5667116845063761E+01 -1.5667112450544368E+01 -1.5667108000046239E+01 + -1.5667103492947803E+01 -1.5667098928574154E+01 -1.5667094306272913E+01 + -1.5667089625360310E+01 -1.5667084885178864E+01 -1.5667080085017853E+01 + -1.5667075224205890E+01 -1.5667070302023937E+01 -1.5667065317776260E+01 + -1.5667060270731278E+01 -1.5667055160187731E+01 -1.5667049985385162E+01 + -1.5667044745603402E+01 -1.5667039440075211E+01 -1.5667034068063325E+01 + -1.5667028628780256E+01 -1.5667023121472113E+01 -1.5667017545333952E+01 + -1.5667011899593708E+01 -1.5667006183433339E+01 -1.5667000396063752E+01 + -1.5666994536638619E+01 -1.5666988604359524E+01 -1.5666982598363509E+01 + -1.5666976517825635E+01 -1.5666970361871773E+01 -1.5666964129656924E+01 + -1.5666957820281558E+01 -1.5666951432886087E+01 -1.5666944966555368E+01 + -1.5666938420406931E+01 -1.5666931793500432E+01 -1.5666925084937986E+01 + -1.5666918293756762E+01 -1.5666911419043947E+01 -1.5666904459814981E+01 + -1.5666897415127263E+01 -1.5666890283982683E+01 -1.5666883065412781E+01 + -1.5666875758397250E+01 -1.5666868361958128E+01 -1.5666860875040234E+01 + -1.5666853296640177E+01 -1.5666845625690772E+01 -1.5666837861160161E+01 + -1.5666830001952830E+01 -1.5666822047027784E+01 -1.5666813995257487E+01 + -1.5666805845568257E+01 -1.5666797596822972E+01 -1.5666789247917334E+01 + -1.5666780797684606E+01 -1.5666772245004548E+01 -1.5666763588681571E+01 + -1.5666754827566283E+01 -1.5666745960437016E+01 -1.5666736986126779E+01 + -1.5666727903382803E+01 -1.5666718711007492E+01 -1.5666709407722232E+01 + -1.5666699992302984E+01 -1.5666690463448957E+01 -1.5666680819904778E+01 + -1.5666671060336498E+01 -1.5666661183463841E+01 -1.5666651187923296E+01 + -1.5666641072410377E+01 -1.5666630835530297E+01 -1.5666620475937261E+01 + -1.5666609992218469E+01 -1.5666599383005488E+01 -1.5666588646833011E+01 + -1.5666577782311668E+01 -1.5666566787952732E+01 -1.5666555662326758E+01 + -1.5666544403914916E+01 -1.5666533011250396E+01 -1.5666521482784059E+01 + -1.5666509817026414E+01 -1.5666498012379359E+01 -1.5666486067325241E+01 + -1.5666473980238191E+01 -1.5666461749554383E+01 -1.5666449373622848E+01 + -1.5666436850840771E+01 -1.5666424179514125E+01 -1.5666411358017236E+01 + -1.5666398384613853E+01 -1.5666385257637282E+01 -1.5666371975314259E+01 + -1.5666358535943996E+01 -1.5666344937720716E+01 -1.5666331178899075E+01 + -1.5666317257624135E+01 -1.5666303172120591E+01 -1.5666288920500380E+01 + -1.5666274500942267E+01 -1.5666259911510082E+01 -1.5666245150348919E+01 + -1.5666230215485200E+01 -1.5666215105013762E+01 -1.5666199816914508E+01 + -1.5666184349251523E+01 -1.5666168699958176E+01 -1.5666152867049616E+01 + -1.5666136848417576E+01 -1.5666120642027101E+01 -1.5666104245730605E+01 + -1.5666087657456808E+01 -1.5666070874990389E+01 -1.5666053896219783E+01 + -1.5666036718897757E+01 -1.5666019340849960E+01 -1.5666001759778261E+01 + -1.5665983973467640E+01 -1.5665965979570268E+01 -1.5665947775822048E+01 + -1.5665929359811980E+01 -1.5665910729238593E+01 -1.5665891881642951E+01 + -1.5665872814653014E+01 -1.5665853525762365E+01 -1.5665834012561069E+01 + -1.5665814272484962E+01 -1.5665794303050015E+01 -1.5665774101644045E+01 + -1.5665753665750161E+01 -1.5665732992675396E+01 -1.5665712079845504E+01 + -1.5665690924526247E+01 -1.5665669524079290E+01 -1.5665647875704819E+01 + -1.5665625976708750E+01 -1.5665603824230526E+01 -1.5665581415518322E+01 + -1.5665558747650202E+01 -1.5665535817807282E+01 -1.5665512623007871E+01 + -1.5665489160370829E+01 -1.5665465426851060E+01 -1.5665441419506042E+01 + -1.5665417135205713E+01 -1.5665392570961426E+01 -1.5665367723580118E+01 + -1.5665342589988526E+01 -1.5665317166930965E+01 -1.5665291451268184E+01 + -1.5665265439673263E+01 -1.5665239128939497E+01 -1.5665212515662468E+01 + -1.5665185596565992E+01 -1.5665158368175724E+01 -1.5665130827133474E+01 + -1.5665102969895328E+01 -1.5665074793041684E+01 -1.5665046292928068E+01 + -1.5665017466067482E+01 -1.5664988308747704E+01 -1.5664958817386227E+01 + -1.5664928988200272E+01 -1.5664898817533800E+01 -1.5664868301509616E+01 + -1.5664837436398678E+01 -1.5664806218239873E+01 -1.5664774643209974E+01 + -1.5664742707271511E+01 -1.5664710406524092E+01 -1.5664677736830473E+01 + -1.5664644694210082E+01 -1.5664611274429577E+01 -1.5664577473419389E+01 + -1.5664543286867504E+01 -1.5664508710607324E+01 -1.5664473740225986E+01 + -1.5664438371473317E+01 -1.5664402599840015E+01 -1.5664366420977181E+01 + -1.5664329830276049E+01 -1.5664292823301826E+01 -1.5664255395345540E+01 + -1.5664217541861802E+01 -1.5664179258045683E+01 -1.5664140539256612E+01 + -1.5664101380574513E+01 -1.5664061777267039E+01 -1.5664021724310357E+01 + -1.5663981216850956E+01 -1.5663940249763371E+01 -1.5663898818100837E+01 + -1.5663856916609628E+01 -1.5663814540236261E+01 -1.5663771683620773E+01 + -1.5663728341592561E+01 -1.5663684508675502E+01 -1.5663640179585613E+01 + -1.5663595348733224E+01 -1.5663550010711461E+01 -1.5663504159803761E+01 + -1.5663457790499953E+01 -1.5663410896952188E+01 -1.5663363473528861E+01 + -1.5663315514248172E+01 -1.5663267013356187E+01 -1.5663217964758465E+01 + -1.5663168362563178E+01 -1.5663118200533809E+01 -1.5663067472655230E+01 + -1.5663016172563719E+01 -1.5662964294115211E+01 -1.5662911830790637E+01 + -1.5662858776313289E+01 -1.5662805124037382E+01 -1.5662750867541140E+01 + -1.5662696000029483E+01 -1.5662640514942408E+01 -1.5662584405341931E+01 + -1.5662527664527138E+01 -1.5662470285392661E+01 -1.5662412261097263E+01 + -1.5662353584397444E+01 -1.5662294248292708E+01 -1.5662234245369977E+01 + -1.5662173568482208E+01 -1.5662112210067665E+01 -1.5662050162817710E+01 + -1.5661987418989078E+01 -1.5661923971126923E+01 -1.5661859811327416E+01 + -1.5661794931962937E+01 -1.5661729324963753E+01 -1.5661662982527567E+01 + -1.5661595896405638E+01 -1.5661528058639302E+01 -1.5661459460795964E+01 + -1.5661390094743991E+01 -1.5661319951866314E+01 -1.5661249023843419E+01 + -1.5661177301879230E+01 -1.5661104777484297E+01 -1.5661031441663786E+01 + -1.5660957285732174E+01 -1.5660882300503756E+01 -1.5660806477112143E+01 + -1.5660729806171387E+01 -1.5660652278618336E+01 -1.5660573884857449E+01 + -1.5660494615632066E+01 -1.5660414461145976E+01 -1.5660333411933342E+01 + -1.5660251457984051E+01 -1.5660168589629132E+01 -1.5660084796641984E+01 + -1.5660000069147110E+01 -1.5659914396683432E+01 -1.5659827769167977E+01 + -1.5659740175919671E+01 -1.5659651606621637E+01 -1.5659562050368560E+01 + -1.5659471496627443E+01 -1.5659379934244022E+01 -1.5659287352455355E+01 + -1.5659193739877661E+01 -1.5659099085504538E+01 -1.5659003377705583E+01 + -1.5658906605241510E+01 -1.5658808756213698E+01 -1.5658709819159874E+01 + -1.5658609781925831E+01 -1.5658508632767457E+01 -1.5658406359288726E+01 + -1.5658302949504872E+01 -1.5658198390731718E+01 -1.5658092670720057E+01 + -1.5657985776522800E+01 -1.5657877695632292E+01 -1.5657768414802385E+01 + -1.5657657921256144E+01 -1.5657546201471126E+01 -1.5657433242391930E+01 + -1.5657319030203952E+01 -1.5657203551558005E+01 -1.5657086792344609E+01 + -1.5656968738927372E+01 -1.5656849376892879E+01 -1.5656728692315969E+01 + -1.5656606670461874E+01 -1.5656483297099218E+01 -1.5656358557176880E+01 + -1.5656232436163702E+01 -1.5656104918679352E+01 -1.5655975989874456E+01 + -1.5655845634041045E+01 -1.5655713836002326E+01 -1.5655580579713188E+01 + -1.5655445849669062E+01 -1.5655309629480985E+01 -1.5655171903306444E+01 + -1.5655032654395120E+01 -1.5654891866570637E+01 -1.5654749522719122E+01 + -1.5654605606317896E+01 -1.5654460099877513E+01 -1.5654312986508442E+01 + -1.5654164248364372E+01 -1.5654013868186492E+01 -1.5653861827730253E+01 + -1.5653708109372220E+01 -1.5653552694471399E+01 -1.5653395565022850E+01 + -1.5653236701996153E+01 -1.5653076086988074E+01 -1.5652913700542022E+01 + -1.5652749523878184E+01 -1.5652583537123455E+01 -1.5652415721075450E+01 + -1.5652246055443442E+01 -1.5652074520609336E+01 -1.5651901095838015E+01 + -1.5651725761098728E+01 -1.5651548495207779E+01 -1.5651369277693757E+01 + -1.5651188086918877E+01 -1.5651004901978320E+01 -1.5650819700773191E+01 + -1.5650632461936429E+01 -1.5650443162879203E+01 -1.5650251781798051E+01 + -1.5650058295619839E+01 -1.5649862682053879E+01 -1.5649664917547446E+01 + -1.5649464979314953E+01 -1.5649262843296873E+01 -1.5649058486238721E+01 + -1.5648851883542401E+01 -1.5648643011452943E+01 -1.5648431844859120E+01 + -1.5648218359489974E+01 -1.5648002529679436E+01 -1.5647784330643400E+01 + -1.5647563736184734E+01 -1.5647340720961044E+01 -1.5647115258209514E+01 + -1.5646887322068947E+01 -1.5646656885182717E+01 -1.5646423921133872E+01 + -1.5646188401996193E+01 -1.5645950300765422E+01 -1.5645709588920548E+01 + -1.5645466238886851E+01 -1.5645220221524250E+01 -1.5644971508673727E+01 + -1.5644720070563615E+01 -1.5644465878425880E+01 -1.5644208901865566E+01 + -1.5643949111491077E+01 -1.5643686476243385E+01 -1.5643420966122619E+01 + -1.5643152549409997E+01 -1.5642881195431301E+01 -1.5642606871799085E+01 + -1.5642329547207114E+01 -1.5642049188557680E+01 -1.5641765763865175E+01 + -1.5641479239332721E+01 -1.5641189582298860E+01 -1.5640896758241359E+01 + -1.5640600733785977E+01 -1.5640301473680475E+01 -1.5639998943851570E+01 + -1.5639693108280989E+01 -1.5639383932158497E+01 -1.5639071378713796E+01 + -1.5638755412396124E+01 -1.5638435995633412E+01 -1.5638113092118211E+01 + -1.5637786663494118E+01 -1.5637456672670478E+01 -1.5637123080466296E+01 + -1.5636785849003996E+01 -1.5636444938264910E+01 -1.5636100309577934E+01 + -1.5635751922067691E+01 -1.5635399736222347E+01 -1.5635043710314687E+01 + -1.5634683803988018E+01 -1.5634319974617819E+01 -1.5633952181001890E+01 + -1.5633580379603286E+01 -1.5633204528347136E+01 -1.5632824582771216E+01 + -1.5632440499894070E+01 -1.5632052234318046E+01 -1.5631659742157806E+01 + -1.5631262977049094E+01 -1.5630861894158391E+01 -1.5630456446145322E+01 + -1.5630046587247460E+01 -1.5629632269092914E+01 -1.5629213444941652E+01 + -1.5628790065435274E+01 -1.5628362082826627E+01 -1.5627929446688675E+01 + -1.5627492108284086E+01 -1.5627050016121457E+01 -1.5626603120427848E+01 + -1.5626151368622535E+01 -1.5625694709872390E+01 -1.5625233090497215E+01 + -1.5624766458579158E+01 -1.5624294759303238E+01 -1.5623817939682016E+01 + -1.5623335943716784E+01 -1.5622848717284937E+01 -1.5622356203241520E+01 + -1.5621858346321213E+01 -1.5621355088155305E+01 -1.5620846372319690E+01 + -1.5620332139215535E+01 -1.5619812331233696E+01 -1.5619286887523277E+01 + -1.5618755749253753E+01 -1.5618218854305359E+01 -1.5617676142610998E+01 + -1.5617127550727263E+01 -1.5616573017332017E+01 -1.5616012477666645E+01 + -1.5615445869107644E+01 -1.5614873125536635E+01 -1.5614294183019281E+01 + -1.5613708974048297E+01 -1.5613117433357122E+01 -1.5612519492010575E+01 + -1.5611915083380040E+01 -1.5611304137102568E+01 -1.5610686585136845E+01 + -1.5610062355650840E+01 -1.5609431379191225E+01 -1.5608793582411911E+01 + -1.5608148894414224E+01 -1.5607497240329977E+01 -1.5606838547768993E+01 + -1.5606172740295936E+01 -1.5605499744024657E+01 -1.5604819480936197E+01 + -1.5604131875585660E+01 -1.5603436848324764E+01 -1.5602734322156586E+01 + -1.5602024215775204E+01 -1.5601306450574318E+01 -1.5600580943565793E+01 + -1.5599847614505844E+01 -1.5599106378683521E+01 -1.5598357154191474E+01 + -1.5597599854565354E+01 -1.5596834396209163E+01 -1.5596060690852743E+01 + -1.5595278653159308E+01 -1.5594488193057641E+01 -1.5593689223450845E+01 + -1.5592881652374379E+01 -1.5592065390949475E+01 -1.5591240345338599E+01 + -1.5590406424783904E+01 -1.5589563533524098E+01 -1.5588711578974175E+01 + -1.5587850463358482E+01 -1.5586980092173706E+01 -1.5586100365676687E+01 + -1.5585211187415664E+01 -1.5584312455571693E+01 -1.5583404071721048E+01 + -1.5582485931963369E+01 -1.5581557935855104E+01 -1.5580619977380177E+01 + -1.5579671954026988E+01 -1.5578713757601962E+01 -1.5577745283502924E+01 + -1.5576766421333041E+01 -1.5575777064357748E+01 -1.5574777099916602E+01 + -1.5573766419099927E+01 -1.5572744906961157E+01 -1.5571712452371223E+01 + -1.5570668938039853E+01 -1.5569614250581319E+01 -1.5568548270326680E+01 + -1.5567470881584283E+01 -1.5566381962255578E+01 -1.5565281394316409E+01 + -1.5564169053202786E+01 -1.5563044818474014E+01 -1.5561908563062033E+01 + -1.5560760164105488E+01 -1.5559599491955289E+01 -1.5558426421289813E+01 + -1.5557240819835409E+01 -1.5556042559742489E+01 -1.5554831506099331E+01 + -1.5553607528468858E+01 -1.5552370489232755E+01 -1.5551120255347001E+01 + -1.5549856686437707E+01 -1.5548579646787415E+01 -1.5547288993201802E+01 + -1.5545984587288501E+01 -1.5544666282979584E+01 -1.5543333939092388E+01 + -1.5541987406687806E+01 -1.5540626541771070E+01 -1.5539251192424063E+01 + -1.5537861211797974E+01 -1.5536456444960015E+01 -1.5535036742155215E+01 + -1.5533601945384888E+01 -1.5532151901924850E+01 -1.5530686450661195E+01 + -1.5529205435851930E+01 -1.5527708693208966E+01 -1.5526196063926511E+01 + -1.5524667380483109E+01 -1.5523122480954562E+01 -1.5521561194531134E+01 + -1.5519983356114018E+01 -1.5518388791548466E+01 -1.5516777332514685E+01 + -1.5515148801460455E+01 -1.5513503026774471E+01 -1.5511839827446682E+01 + -1.5510159028528228E+01 -1.5508460445496826E+01 -1.5506743900010889E+01 + -1.5505009203969605E+01 -1.5503256175577500E+01 -1.5501484623101875E+01 + -1.5499694361243638E+01 -1.5497885194573005E+01 -1.5496056934220563E+01 + -1.5494209381005954E+01 -1.5492342342438237E+01 -1.5490455615521844E+01 + -1.5488549004077587E+01 -1.5486622301234608E+01 -1.5484675307076312E+01 + -1.5482707810794581E+01 -1.5480719608660431E+01 -1.5478710485871702E+01 + -1.5476680234850811E+01 -1.5474628636713254E+01 -1.5472555479965280E+01 + -1.5470460541601417E+01 -1.5468343606140792E+01 -1.5466204446395267E+01 + -1.5464042842830411E+01 -1.5461858564008354E+01 -1.5459651386301015E+01 + -1.5457421073943877E+01 -1.5455167399137116E+01 -1.5452890121742080E+01 + -1.5450589009735150E+01 -1.5448263818527671E+01 -1.5445914311810853E+01 + -1.5443540240479443E+01 -1.5441141363868134E+01 -1.5438717428310488E+01 + -1.5436268188726290E+01 -1.5433793386801630E+01 -1.5431292772984525E+01 + -1.5428766084252892E+01 -1.5426213066526822E+01 -1.5423633452012091E+01 + -1.5421026982018327E+01 -1.5418393383930612E+01 -1.5415732394387275E+01 + -1.5413043735882994E+01 -1.5410327140340204E+01 -1.5407582325267583E+01 + -1.5404809017820915E+01 -1.5402006930482434E+01 -1.5399175785552416E+01 + -1.5396315290431222E+01 -1.5393425162512282E+01 -1.5390505104038542E+01 + -1.5387554827433874E+01 -1.5384574029731802E+01 -1.5381562418328540E+01 + -1.5378519684985983E+01 -1.5375445532006628E+01 -1.5372339645792987E+01 + -1.5369201723529333E+01 -1.5366031446233354E+01 -1.5362828505850436E+01 + -1.5359592577941932E+01 -1.5356323349222375E+01 -1.5353020489710842E+01 + -1.5349683680809283E+01 -1.5346312586968400E+01 -1.5342906884204115E+01 + -1.5339466231350833E+01 -1.5335990298998949E+01 -1.5332478740288028E+01 + -1.5328931220324776E+01 -1.5325347386507586E+01 -1.5321726898437758E+01 + -1.5318069397703990E+01 -1.5314374538319077E+01 -1.5310641956024211E+01 + -1.5306871299229790E+01 -1.5303062197785351E+01 -1.5299214294392931E+01 + -1.5295327212980666E+01 -1.5291400590542718E+01 -1.5287434045013130E+01 + -1.5283427207627664E+01 -1.5279379690283088E+01 -1.5275291118430474E+01 + -1.5271161097888244E+01 -1.5266989248265993E+01 -1.5262775169288814E+01 + -1.5258518474686547E+01 -1.5254218758036538E+01 -1.5249875627174177E+01 + -1.5245488669497535E+01 -1.5241057486900859E+01 -1.5236581660592053E+01 + -1.5232060786505755E+01 -1.5227494439596859E+01 -1.5222882209831647E+01 + -1.5218223665934099E+01 -1.5213518391831055E+01 -1.5208765949983746E+01 + -1.5203965918331495E+01 -1.5199117853009527E+01 -1.5194221325929226E+01 + -1.5189275886969265E+01 -1.5184281101965142E+01 -1.5179236514490597E+01 + -1.5174141684366678E+01 -1.5168996148840362E+01 -1.5163799461688395E+01 + -1.5158551153880131E+01 -1.5153250773136188E+01 -1.5147897844138312E+01 + -1.5142491908588363E+01 -1.5137032484876721E+01 -1.5131519108708204E+01 + -1.5125951292227256E+01 -1.5120328565117772E+01 -1.5114650433308418E+01 + -1.5108916420534879E+01 -1.5103126026520307E+01 -1.5097278769075290E+01 + -1.5091374141751803E+01 -1.5085411656477687E+01 -1.5079390800709623E+01 + -1.5073311080524860E+01 -1.5067171977324332E+01 -1.5060972991384777E+01 + -1.5054713598123593E+01 -1.5048393292110863E+01 -1.5042011542819454E+01 + -1.5035567839153309E+01 -1.5029061644752007E+01 -1.5022492442960058E+01 + -1.5015859691639239E+01 -1.5009162868628097E+01 -1.5002401426154215E+01 + -1.4995574836661106E+01 -1.4988682546803917E+01 -1.4981724023737510E+01 + -1.4974698708683661E+01 -1.4967606063638142E+01 -1.4960445524495210E+01 + -1.4953216548190417E+01 -1.4945918565465922E+01 -1.4938551028343115E+01 + -1.4931113362524385E+01 -1.4923605015279312E+01 -1.4916025407456853E+01 + -1.4908373981711186E+01 -1.4900650154194269E+01 -1.4892853363139224E+01 + -1.4884983020208795E+01 -1.4877038559371979E+01 -1.4869019387985166E+01 + -1.4860924935994307E+01 -1.4852754606659513E+01 -1.4844507826074452E+01 + -1.4836183993663692E+01 -1.4827782531905365E+01 -1.4819302836612874E+01 + -1.4810744326896641E+01 -1.4802106395222554E+01 -1.4793388457583857E+01 + -1.4784589903378139E+01 -1.4775710145765659E+01 -1.4766748571365488E+01 + -1.4757704590783685E+01 -1.4748577588182027E+01 -1.4739366971921473E+01 + -1.4730072124040172E+01 -1.4720692450971811E+01 -1.4711227332981521E+01 + -1.4701676174934461E+01 -1.4692038355679946E+01 -1.4682313278871030E+01 + -1.4672500322350995E+01 -1.4662598888937243E+01 -1.4652608355872559E+01 + -1.4642528125559689E+01 -1.4632357575069532E+01 -1.4622096106792343E+01 + -1.4611743098113640E+01 -1.4601297951879015E+01 -1.4590760046228626E+01 + -1.4580128784930602E+01 -1.4569403547419274E+01 -1.4558583738884142E+01 + -1.4547668740568893E+01 -1.4536657959592672E+01 -1.4525550779581193E+01 + -1.4514346610145830E+01 -1.4503044837866735E+01 -1.4491644875391712E+01 + -1.4480146112905333E+01 -1.4468547966713688E+01 -1.4456849831188892E+01 + -1.4445051126947106E+01 -1.4433151253250692E+01 -1.4421149635645625E+01 + -1.4409045679013017E+01 -1.4396838814505383E+01 -1.4384528453340772E+01 + -1.4372114033039500E+01 -1.4359594971902935E+01 -1.4346970714559545E+01 + -1.4334240687219518E+01 -1.4321404342384874E+01 -1.4308461115020267E+01 + -1.4295410466322576E+01 -1.4282251840876263E+01 -1.4268984709438667E+01 + -1.4255608527120760E+01 -1.4242122775125390E+01 -1.4228526920033444E+01 + -1.4214820454434919E+01 -1.4201002857372556E+01 -1.4187073633766458E+01 + -1.4173032276158835E+01 -1.4158878302810702E+01 -1.4144611220838142E+01 + -1.4130230562878559E+01 -1.4115735851723134E+01 -1.4101126635492633E+01 + -1.4086402453804668E+01 -1.4071562871392429E+01 -1.4056607445892256E+01 + -1.4041535759810651E+01 -1.4026347390081209E+01 -1.4011041938196207E+01 + -1.3995619001651804E+01 -1.3980078202205314E+01 -1.3964419159256739E+01 + -1.3948641516139702E+01 -1.3932744915560372E+01 -1.3916729023757098E+01 + -1.3900593508175751E+01 -1.3884338059413409E+01 -1.3867962371123278E+01 + -1.3851466159687558E+01 -1.3834849146540302E+01 -1.3818111075361262E+01 + -1.3801251696934681E+01 -1.3784270783801285E+01 -1.3767168117748644E+01 + -1.3749943501789524E+01 -1.3732596750414290E+01 -1.3715127698775941E+01 + -1.3697536195806311E+01 -1.3679822110504725E+01 -1.3661985328084933E+01 + -1.3644025753171515E+01 -1.3625943309073508E+01 -1.3607737937864155E+01 + -1.3589409602911397E+01 -1.3570958285612701E+01 -1.3552383991320973E+01 + -1.3533686742686333E+01 -1.3514866589107241E+01 -1.3495923596474574E+01 + -1.3476857860256711E+01 -1.3457669491628796E+01 -1.3438358634293536E+01 + -1.3418925446765082E+01 -1.3399370123146253E+01 -1.3379692871431820E+01 + -1.3359893938322767E+01 -1.3339973583484667E+01 -1.3319932108488722E+01 + -1.3299769826853721E+01 -1.3279487097320272E+01 -1.3259084289536865E+01 + -1.3238561821724145E+01 -1.3217920121936555E+01 -1.3197159670238948E+01 + -1.3176280955381170E+01 -1.3155284521660242E+01 -1.3134170920840349E+01 + -1.3112940763810498E+01 -1.3091594667691052E+01 -1.3070133312347844E+01 + -1.3048557382562709E+01 -1.3026867629545984E+01 -1.3005064808037741E+01 + -1.2983149742923494E+01 -1.2961123261167351E+01 -1.2938986263621663E+01 + -1.2916739651664725E+01 -1.2894384404324008E+01 -1.2871921499538136E+01 + -1.2849351996629817E+01 -1.2826676952103801E+01 -1.2803897507570447E+01 + -1.2781014799995440E+01 -1.2758030055117953E+01 -1.2734944492063462E+01 + -1.2711759422344873E+01 -1.2688476148753105E+01 -1.2665096069970557E+01 + -1.2641620573689963E+01 -1.2618051146868137E+01 -1.2594389263017371E+01 + -1.2570636498133990E+01 -1.2546794412088264E+01 -1.2522864670233709E+01 + -1.2498848918914785E+01 -1.2474748912677894E+01 -1.2450566383880735E+01 + -1.2426303175540795E+01 -1.2401961104970802E+01 -1.2377542102213670E+01 + -1.2353048067747467E+01 -1.2328481016435752E+01 -1.2303842929312720E+01 + -1.2279135902915128E+01 -1.2254361995217543E+01 -1.2229523380281869E+01 + -1.2204622188321355E+01 -1.2179660665531403E+01 -1.2154641008388145E+01 + -1.2129565528502209E+01 -1.2104436481218031E+01 -1.2079256235285447E+01 + -1.2054027095896352E+01 -1.2028751478962521E+01 -1.2003431728692011E+01 + -1.1978070296260755E+01 -1.1952669552071367E+01 -1.1927231968525343E+01 + -1.1901759927161477E+01 -1.1876255905269149E+01 -1.1850722278062975E+01 + -1.1825161508800871E+01 -1.1799575946269453E+01 -1.1773968018065867E+01 + -1.1748340023636143E+01 -1.1722694330338930E+01 -1.1697033162353787E+01 + -1.1671358799162675E+01 -1.1645673360638835E+01 -1.1619979007514782E+01 + -1.1594277723069343E+01 -1.1568571515164923E+01 -1.1542862194954438E+01 + -1.1517151580027313E+01 -1.1491441270626483E+01 -1.1465732853493941E+01 + -1.1440027676146785E+01 -1.1414327050915537E+01 -1.1388632027918252E+01 + -1.1362943598872921E+01 -1.1337262469440088E+01 -1.1311589262349139E+01 + -1.1285924289869318E+01 -1.1260267755847211E+01 -1.1234619529157561E+01 + -1.1208979344182934E+01 -1.1183346576207176E+01 -1.1157720439964955E+01 + -1.1132099767948041E+01 -1.1106483206667857E+01 -1.1080868998995212E+01 + -1.1055255177743813E+01 -1.1029639353247596E+01 -1.1004018903945758E+01 + -1.0978390770414222E+01 -1.0952751642650624E+01 -1.0927097761889152E+01 + -1.0901425104248410E+01 -1.0875729191699655E+01 -1.0850005271750215E+01 + -1.0824248138954065E+01 -1.0798452310287905E+01 -1.0772611858576562E+01 + -1.0746720583173650E+01 -1.0720771856667273E+01 -1.0694758790392195E+01 + -1.0668674095716554E+01 -1.0642510243834828E+01 -1.0616259342827254E+01 + -1.0589913291065816E+01 -1.0563463671120292E+01 -1.0536901895953422E+01 + -1.0510219120576435E+01 -1.0483406380064942E+01 -1.0456454519662937E+01 + -1.0429354323463812E+01 -1.0402096463444959E+01 -1.0374671617475617E+01 + -1.0347070437517669E+01 -1.0319283655438040E+01 -1.0291302070360182E+01 + -1.0263116640589566E+01 -1.0234718489848525E+01 -1.0206098983476830E+01 + -1.0177249753045364E+01 -1.0148162754896003E+01 -1.0118830312405571E+01 + -1.0089245154871994E+01 -1.0059400476539647E+01 -1.0029289953845961E+01 + -9.9989078201719117E+00 -9.9682488595590630E+00 -9.9373084960773177E+00 + -9.9060827622905521E+00 -9.8745684020987472E+00 -9.8427628124857591E+00 + -9.8106641587607140E+00 -9.7782712884483889E+00 -9.7455838579307272E+00 + -9.7126022177952418E+00 -9.6793275500216112E+00 -9.6457617245963085E+00 + -9.6119074465981704E+00 -9.5777680844409208E+00 -9.5433478264220302E+00 + -9.5086514816107908E+00 -9.4736846456346697E+00 -9.4384534758738372E+00 + -9.4029648665102243E+00 -9.3672262003476856E+00 -9.3312455333550357E+00 + -9.2950313261088517E+00 -9.2585926381816801E+00 -9.2219388428940832E+00 + -9.1850798320041136E+00 -9.1480257179955196E+00 -9.1107870495747445E+00 + -9.0733745062890740E+00 -9.0357991252122041E+00 -8.9980719931569766E+00 + -8.9602044847070950E+00 -8.9222079576588147E+00 -8.8840940022273465E+00 + -8.8458741455114982E+00 -8.8075601111920161E+00 -8.7691635388718474E+00 + -8.7306962528149104E+00 -8.6921700018385266E+00 -8.6535967346015212E+00 + -8.6149883652084345E+00 -8.5763570512463065E+00 -8.5377149893520432E+00 + -8.4990746903720975E+00 -8.4604488078239317E+00 -8.4218504022610414E+00 + -8.3832928036663308E+00 -8.3447898542997159E+00 -8.3063558036180414E+00 + -8.2680055155947425E+00 -8.2297543215074125E+00 -8.1916185172460558E+00 + -8.1536228193586204E+00 -8.1157607180328153E+00 -8.0779357376938634E+00 + -8.0400423603026017E+00 -8.0020567203713515E+00 -7.9639876245948402E+00 + -7.9258365198453768E+00 -7.8876048512919068E+00 -7.8492945034153916E+00 + -7.8109077921279013E+00 -7.7724475392837045E+00 -7.7339171554079984E+00 + -7.6953207310933198E+00 -7.6566631374620968E+00 -7.6179501359888802E+00 + -7.5791884978401844E+00 -7.5403861327215713E+00 -7.5015522269908654E+00 + -7.4626973904967038E+00 -7.4238338112495645E+00 -7.3849754165823711E+00 + -7.3461380389130708E+00 -7.3073395835949437E+00 -7.2686001955763491E+00 + -7.2299424207226384E+00 -7.1913913566568777E+00 -7.1529747868493745E+00 + -7.1147232904461131E+00 -7.0766703189579054E+00 -7.0388301373178122E+00 + -7.0011925311791874E+00 -6.9637564135316286E+00 -6.9265207032243366E+00 + -6.8894843249344433E+00 -6.8526462091353446E+00 -6.8160052920654497E+00 + -6.7795605156962422E+00 -6.7433108277013476E+00 -6.7072551814260422E+00 + -6.6713925358556772E+00 -6.6357218572048353E+00 -6.6002421124038619E+00 + -6.5649522788002646E+00 -6.5298513376360772E+00 -6.4949382756420899E+00 + -6.4602120850080542E+00 -6.4256717633529812E+00 -6.3913163136956754E+00 + -6.3571447444253897E+00 -6.3231560692726569E+00 -6.2893493072802773E+00 + -6.2557234827744681E+00 -6.2222776253361758E+00 -6.1890107697725325E+00 + -6.1559219560885072E+00 -6.1230102294586537E+00 -6.0902746401990608E+00 + -6.0577142437394498E+00 -6.0253281005954173E+00 -5.9931152763408218E+00 + -5.9610748415803512E+00 -5.9292058719222078E+00 -5.8975074479509857E+00 + -5.8659786552006352E+00 -5.8346185841276448E+00 -5.8034263300843225E+00 + -5.7724009932922495E+00 -5.7415416788158646E+00 -5.7108474965362070E+00 + -5.6803175611247934E+00 -5.6499509920176392E+00 -5.6197469133894478E+00 + -5.5897044541278857E+00 -5.5598227478080595E+00 -5.5301009326670982E+00 + -5.5005381515788860E+00 -5.4711335520289373E+00 -5.4418862860893942E+00 + -5.4127955103941776E+00 -5.3838603861142831E+00 -5.3550800789331774E+00 + -5.3264537590223568E+00 -5.2979806010170440E+00 -5.2696597839920045E+00 + -5.2414904914374976E+00 -5.2134719112353594E+00 -5.1856032356352282E+00 + -5.1578836612308940E+00 -5.1303123889367619E+00 -5.1028886239644669E+00 + -5.0756115757996110E+00 -5.0484804581786209E+00 -5.0214944890657387E+00 + -4.9946528906301397E+00 -4.9679548892231722E+00 -4.9413997153557130E+00 + -4.9149866036756844E+00 -4.8887147929456347E+00 -4.8625835260204919E+00 + -4.8365920498254207E+00 -4.8107396153337989E+00 -4.7850254775453154E+00 + -4.7594488954641951E+00 -4.7340091320775288E+00 -4.7087054543337503E+00 + -4.6835371331211864E+00 -4.6585034432467669E+00 -4.6336036634148234E+00 + -4.6088370762060293E+00 -4.5842029680564265E+00 -4.5597006292365858E+00 + -4.5353293538308792E+00 -4.5110884397168549E+00 -4.4869771885447518E+00 + -4.4629949057170801E+00 -4.4391409003683568E+00 -4.4154144853449395E+00 + -4.3918149771849553E+00 -4.3683416960983585E+00 -4.3449939659470900E+00 + -4.3217711142253323E+00 -4.2986724720399137E+00 -4.2756973740907593E+00 + -4.2528451586514917E+00 -4.2301151675501378E+00 -4.2075067461499094E+00 + -4.1850192433301272E+00 -4.1626520114672179E+00 -4.1404044064158319E+00 + -4.1182757874900604E+00 -4.0962655174447624E+00 -4.0743729624569669E+00 + -4.0525974921074086E+00 -4.0309384793621543E+00 -4.0093953005543153E+00 + -3.9879673353658784E+00 -3.9666539668096257E+00 -3.9454545812111559E+00 + -3.9243685681910083E+00 -3.9033953206468706E+00 -3.8825342347358944E+00 + -3.8617847098571123E+00 -3.8411461486339351E+00 -3.8206179568967595E+00 + -3.8001995436656597E+00 -3.7798903211331800E+00 -3.7596897046472142E+00 + -3.7395971126939980E+00 -3.7196119668811587E+00 -3.6997336919208887E+00 + -3.6799617156132003E+00 -3.6602954688292644E+00 -3.6407343854948540E+00 + -3.6212779025738642E+00 -3.6019254600519321E+00 -3.5826765009201433E+00 + -3.5635304711588183E+00 -3.5444868197213979E+00 -3.5255449985184177E+00 + -3.5067044624015571E+00 -3.4879646691477886E+00 -3.4693250794436050E+00 + -3.4507851568693364E+00 -3.4323443678835481E+00 -3.4140021818075370E+00 + -3.3957580708098836E+00 -3.3776115098911217E+00 -3.3595619768684690E+00 + -3.3416089523606494E+00 -3.3237519197727963E+00 -3.3059903652814362E+00 + -3.2883237778195546E+00 -3.2707516490617534E+00 -3.2532734734094650E+00 + -3.2358887479762695E+00 -3.2185969725732821E+00 -3.2013976496946217E+00 + -3.1842902845029566E+00 -3.1672743848151321E+00 -3.1503494610878708E+00 + -3.1335150264035554E+00 -3.1167705964560950E+00 -3.1001156895368434E+00 + -3.0835498265206254E+00 -3.0670725308518190E+00 -3.0506833285305182E+00 + -3.0343817480987716E+00 -3.0181673206268966E+00 -3.0020395796998636E+00 + -2.9859980614037651E+00 -2.9700423043123392E+00 -2.9541718494735818E+00 + -2.9383862403964303E+00 -2.9226850230375119E+00 -2.9070677457879697E+00 + -2.8915339594603577E+00 -2.8760832172756072E+00 -2.8607150748500714E+00 + -2.8454290901826211E+00 -2.8302248236418310E+00 -2.8151018379532258E+00 + -2.8000596981865931E+00 -2.7850979717433741E+00 -2.7702162283441139E+00 + -2.7554140400159834E+00 -2.7406909810803670E+00 -2.7260466281405273E+00 + -2.7114805600693153E+00 -2.6969923579969697E+00 -2.6825816052989713E+00 + -2.6682478875839633E+00 -2.6539907926817405E+00 -2.6398099106312993E+00 + -2.6257048336689546E+00 -2.6116751562165299E+00 -2.5977204748695888E+00 + -2.5838403883857519E+00 -2.5700344976730709E+00 -2.5563024057784589E+00 + -2.5426437178761945E+00 -2.5290580412564743E+00 -2.5155449853140417E+00 + -2.5021041615368662E+00 -2.4887351834948972E+00 -2.4754376668288556E+00 + -2.4622112292391121E+00 -2.4490554904746089E+00 -2.4359700723218469E+00 + -2.4229545985939334E+00 -2.4100086951196880E+00 -2.3971319897328018E+00 + -2.3843241122610723E+00 -2.3715846945156698E+00 -2.3589133702804879E+00 + -2.3463097753015361E+00 -2.3337735472763947E+00 -2.3213043258437263E+00 + -2.3089017525728459E+00 -2.2965654709533401E+00 -2.2842951263847526E+00 + -2.2720903661663252E+00 -2.2599508394867764E+00 -2.2478761974141572E+00 + -2.2358660928857557E+00 -2.2239201806980455E+00 -2.2120381174967036E+00 + -2.2002195617666715E+00 -2.1884641738222732E+00 -2.1767716157973944E+00 + -2.1651415516356960E+00 -2.1535736470808993E+00 -2.1420675696671156E+00 + -2.1306229887092276E+00 -2.1192395752933249E+00 -2.1079170022671878E+00 + -2.0966549442308291E+00 -2.0854530775270783E+00 -2.0743110802322287E+00 + -2.0632286321467168E+00 -2.0522054147858682E+00 -2.0412411113706912E+00 + -2.0303354068187112E+00 -2.0194879877348635E+00 -2.0086985424024308E+00 + -1.9979667607740326E+00 -1.9872923344626572E+00 -1.9766749567327555E+00 + -1.9661143224913582E+00 -1.9556101282792755E+00 -1.9451620722623144E+00 + -1.9347698542225467E+00 -1.9244331755496551E+00 -1.9141517392322742E+00 + -1.9039252498494352E+00 -1.8937534135619991E+00 -1.8836359381041947E+00 + -1.8735725327751451E+00 -1.8635629084304901E+00 -1.8536067774740219E+00 + -1.8437038538493660E+00 -1.8338538530317392E+00 -1.8240564920197018E+00 + -1.8143114893270089E+00 -1.8046185649744528E+00 -1.7949774404817989E+00 + -1.7853878388597175E+00 -1.7758494846018045E+00 -1.7663621036766131E+00 + -1.7569254235197300E+00 -1.7475391730259253E+00 -1.7382030825412973E+00 + -1.7289168838555087E+00 -1.7196803101940179E+00 -1.7104930962103984E+00 + -1.7013549779786514E+00 -1.6922656929856086E+00 -1.6832249801233390E+00 + -1.6742325796816040E+00 -1.6652882333403782E+00 -1.6563916841623680E+00 + -1.6475426765856163E+00 -1.6387409564161024E+00 -1.6299862708204234E+00 + -1.6212783683184853E+00 -1.6126169987762382E+00 -1.6040019133984735E+00 + -1.5954328647216200E+00 -1.5869096066066242E+00 -1.5784318942318245E+00 + -1.5699994840859053E+00 -1.5616121339608491E+00 -1.5532696029449646E+00 + -1.5449716514159257E+00 -1.5367180410338492E+00 -1.5285085347344356E+00 + -1.5203428967221064E+00 -1.5122208924632232E+00 -1.5041422886792968E+00 + -1.4961068533402797E+00 -1.4881143556578489E+00 -1.4801645660787663E+00 + -1.4722572562782490E+00 -1.4643921991533728E+00 -1.4565691688165401E+00 + -1.4487879405889423E+00 -1.4410482909940994E+00 -1.4333499977513924E+00 + -1.4256928397696738E+00 -1.4180765971408682E+00 -1.4105010511336480E+00 + -1.4029659841871174E+00 -1.3954711799045292E+00 -1.3880164230470626E+00 + -1.3806014995275955E+00 -1.3732261964045485E+00 -1.3658903018757274E+00 + -1.3585936052722305E+00 -1.3513358970523666E+00 -1.3441169687956069E+00 + -1.3369366131965905E+00 -1.3297946240591285E+00 -1.3226907962902781E+00 + -1.3156249258944102E+00 -1.3085968099673466E+00 -1.3016062466904916E+00 + -1.2946530353250303E+00 -1.2877369762061339E+00 -1.2808578707371974E+00 + -1.2740155213841311E+00 -1.2672097316696465E+00 -1.2604403061676124E+00 + -1.2537070504974042E+00 -1.2470097713183168E+00 -1.2403482763239755E+00 + -1.2337223742368102E+00 -1.2271318748025326E+00 -1.2205765887846487E+00 + -1.2140563279590191E+00 -1.2075709051084187E+00 -1.2011201340171569E+00 + -1.1947038294656944E+00 -1.1883218072253234E+00 -1.1819738840528424E+00 + -1.1756598776852880E+00 -1.1693796068346802E+00 -1.1631328911827903E+00 + -1.1569195513759596E+00 -1.1507394090199174E+00 -1.1445922866746550E+00 + -1.1384780078492986E+00 -1.1323963969970385E+00 -1.1263472795100653E+00 + -1.1203304817145332E+00 -1.1143458308655716E+00 -1.1083931551422923E+00 + -1.1024722836428560E+00 -1.0965830463795327E+00 -1.0907252742738212E+00 + -1.0848987991515637E+00 -1.0791034537381152E+00 -1.0733390716535185E+00 + -1.0676054874077063E+00 -1.0619025363957502E+00 -1.0562300548931023E+00 + -1.0505878800508952E+00 -1.0449758498912389E+00 -1.0393938033025667E+00 + -1.0338415800349858E+00 -1.0283190206956707E+00 -1.0228259667442698E+00 + -1.0173622604883343E+00 -1.0119277450787898E+00 -1.0065222645054039E+00 + -1.0011456635923111E+00 -9.9579778799352736E-01 -9.9047848418851947E-01 + -9.8518759947778034E-01 -9.7992498197842537E-01 -9.7469048061983321E-01 + -9.6948394513928049E-01 -9.6430522607763125E-01 -9.5915417477501996E-01 + -9.5403064336658405E-01 -9.4893448477819431E-01 -9.4386555272223294E-01 + -9.3882370169337659E-01 -9.3380878696440339E-01 -9.2882066458203683E-01 + -9.2385919136279071E-01 -9.1892422488885939E-01 -9.1401562350400534E-01 + -9.0913324630949488E-01 -9.0427695316002932E-01 -8.9944660465972348E-01 + -8.9464206215808650E-01 -8.8986318774602924E-01 -8.8510984425190320E-01 + -8.8038189523754251E-01 -8.7567920499434770E-01 -8.7100163853936885E-01 + -8.6634906161143332E-01 -8.6172134066726802E-01 -8.5711834287766875E-01 + -8.5253993612367218E-01 -8.4798598899274924E-01 -8.4345637077503433E-01 + -8.3895095145955234E-01 -8.3446960173048845E-01 -8.3001219296345619E-01 + -8.2557859722180593E-01 -8.2116868725293934E-01 -8.1678233648464404E-01 + -8.1241941902146120E-01 -8.0807980964105175E-01 -8.0376338379060575E-01 + -7.9947001758324598E-01 -7.9519958779447641E-01 -7.9095197185862465E-01 + -7.8672704786532577E-01 -7.8252469455601126E-01 -7.7834479132041579E-01 + -7.7418721819311709E-01 -7.7005185585007463E-01 -7.6593858560520645E-01 + -7.6184728940696556E-01 -7.5777784983495355E-01 -7.5373015009653255E-01 + -7.4970407402347539E-01 -7.4569950606861934E-01 -7.4171633130253911E-01 + -7.3775443541024910E-01 -7.3381370468790608E-01 -7.2989402603954801E-01 + -7.2599528697383187E-01 -7.2211737560080702E-01 -7.1826018062868779E-01 + -7.1442359136066147E-01 -7.1060749769170006E-01 -7.0681179010538986E-01 + -7.0303635967079181E-01 -6.9928109803929628E-01 -6.9554589744151984E-01 + -6.9183065068419325E-01 -6.8813525114708973E-01 -6.8445959277995339E-01 + -6.8080357009944625E-01 -6.7716707818612432E-01 -6.7355001268140902E-01 + -6.6995226978459754E-01 -6.6637374624986700E-01 -6.6281433938331602E-01 + -6.5927394704000208E-01 -6.5575246762101203E-01 -6.5224980007053757E-01 + -6.4876584387296654E-01 -6.4530049904999998E-01 -6.4185366615776851E-01 + -6.3842524628398256E-01 -6.3501514104507861E-01 -6.3162325258340024E-01 + -6.2824948356437538E-01 -6.2489373717372498E-01 -6.2155591711467761E-01 + -6.1823592760519575E-01 -6.1493367337523153E-01 -6.1164905966397787E-01 + -6.0838199221715294E-01 -6.0513237728428260E-01 -6.0190012161601170E-01 + -5.9868513246142119E-01 -5.9548731756535778E-01 -5.9230658516578927E-01 + -5.8914284399115879E-01 -5.8599600325776902E-01 -5.8286597266716389E-01 + -5.7975266240354251E-01 -5.7665598313116706E-01 -5.7357584599180367E-01 + -5.7051216260216464E-01 -5.6746484505136419E-01 -5.6443380589839975E-01 + -5.6141895816963006E-01 -5.5842021535628306E-01 -5.5543749141196119E-01 + -5.5247070075017690E-01 -5.4951975824188459E-01 -5.4658457921303982E-01 + -5.4366507944216380E-01 -5.4076117515791933E-01 -5.3787278303670993E-01 + -5.3499982020027781E-01 -5.3214220421332858E-01 -5.2929985308115546E-01 + -5.2647268524728974E-01 -5.2366061959115007E-01 -5.2086357542571660E-01 + -5.1808147249521042E-01 -5.1531423097278362E-01 -5.1256177145823223E-01 + -5.0982401497570673E-01 -5.0710088297144962E-01 -5.0439229731153168E-01 + -5.0169818027961177E-01 -4.9901845457470173E-01 -4.9635304330894198E-01 + -4.9370187000539834E-01 -4.9106485859585747E-01 -4.8844193341864806E-01 + -4.8583301921645944E-01 -4.8323804113418639E-01 -4.8065692471677135E-01 + -4.7808959590707056E-01 -4.7553598104372424E-01 -4.7299600685903687E-01 + -4.7046960047687825E-01 -4.6795668941058288E-01 -4.6545720156087383E-01 + -4.6297106521378439E-01 -4.6049820903860433E-01 -4.5803856208582405E-01 + -4.5559205378510126E-01 -4.5315861394323192E-01 -4.5073817274213013E-01 + -4.4833066073682831E-01 -4.4593600885347606E-01 -4.4355414838736101E-01 + -4.4118501100092955E-01 -4.3882852872182931E-01 -4.3648463394095044E-01 + -4.3415325941048849E-01 -4.3183433824201023E-01 -4.2952780390452988E-01 + -4.2723359022260299E-01 -4.2495163137441921E-01 -4.2268186188991785E-01 + -4.2042421664890062E-01 -4.1817863087916646E-01 -4.1594504015464839E-01 + -4.1372338039356094E-01 -4.1151358785656400E-01 -4.0931559914492627E-01 + -4.0712935119870997E-01 -4.0495478129495338E-01 -4.0279182704587513E-01 + -4.0064042639707625E-01 -3.9850051762576266E-01 -3.9637203933897019E-01 + -3.9425493047179883E-01 -3.9214913028566378E-01 -3.9005457836654522E-01 + -3.8797121462325856E-01 -3.8589897928572275E-01 -3.8383781290324925E-01 + -3.8178765634282874E-01 -3.7974845078743769E-01 -3.7772013773434665E-01 + -3.7570265899343847E-01 -3.7369595668554079E-01 -3.7169997324075932E-01 + -3.6971465139682880E-01 -3.6773993419746381E-01 -3.6577576499072761E-01 + -3.6382208742740019E-01 -3.6187884545936444E-01 -3.5994598333799427E-01 + -3.5802344561255162E-01 -3.5611117712859891E-01 -3.5420912302640917E-01 + -3.5231722873939608E-01 -3.5043543999254179E-01 -3.4856370280084231E-01 + -3.4670196346775561E-01 -3.4485016858365758E-01 -3.4300826502431231E-01 + -3.4117619994934201E-01 -3.3935392080071392E-01 -3.3754137530122635E-01 + -3.3573851145301242E-01 -3.3394527753604186E-01 -3.3216162210663980E-01 + -3.3038749399600797E-01 -3.2862284230875344E-01 -3.2686761642143136E-01 + -3.2512176598108594E-01 -3.2338524090381016E-01 -3.2165799137330214E-01 + -3.1993996783943979E-01 -3.1823112101685280E-01 -3.1653140188351203E-01 + -3.1484076167931990E-01 -3.1315915190470806E-01 -3.1148652431924995E-01 + -3.0982283094026963E-01 -3.0816802404146926E-01 -3.0652205615155464E-01 + -3.0488488005287506E-01 -3.0325644878006647E-01 -3.0163671561870120E-01 + -3.0002563410395050E-01 -2.9842315801924568E-01 -2.9682924139495609E-01 + -2.9524383850706432E-01 -2.9366690387585792E-01 -2.9209839226461953E-01 + -2.9053825867833094E-01 -2.8898645836238079E-01 -2.8744294680127686E-01 + -2.8590767971737252E-01 -2.8438061306959089E-01 -2.8286170305216429E-01 + -2.8135090609337315E-01 -2.7984817885429819E-01 -2.7835347822757295E-01 + -2.7686676133614890E-01 -2.7538798553206373E-01 -2.7391710839521477E-01 + -2.7245408773214480E-01 -2.7099888157482688E-01 -2.6955144817946330E-01 + -2.6811174602528315E-01 -2.6667973381335419E-01 -2.6525537046539360E-01 + -2.6383861512259160E-01 -2.6242942714443734E-01 -2.6102776610755063E-01 + -2.5963359180452478E-01 -2.5824686424276849E-01 -2.5686754364336156E-01 + -2.5549559043990921E-01 -2.5413096527740947E-01 -2.5277362901112177E-01 + -2.5142354270544226E-01 -2.5008066763278874E-01 -2.4874496527248582E-01 + -2.4741639730966236E-01 -2.4609492563414803E-01 -2.4478051233938294E-01 + -2.4347311972132590E-01 -2.4217271027737525E-01 -2.4087924670529071E-01 + -2.3959269190212160E-01 -2.3831300896314456E-01 -2.3704016118080107E-01 + -2.3577411204364659E-01 -2.3451482523529965E-01 -2.3326226463340244E-01 + -2.3201639430858051E-01 -2.3077717852341476E-01 -2.2954458173141373E-01 + -2.2831856857599259E-01 -2.2709910388946070E-01 -2.2588615269200912E-01 + -2.2467968019070972E-01 -2.2347965177851326E-01 -2.2228603303325900E-01 + -2.2109878971668404E-01 -2.1991788777344271E-01 -2.1874329333012810E-01 + -2.1757497269429890E-01 -2.1641289235351444E-01 -2.1525701897437033E-01 + -2.1410731940154423E-01 -2.1296376065684136E-01 -2.1182630993825086E-01 + -2.1069493461900246E-01 -2.0956960224662968E-01 -2.0845028054204048E-01 + -2.0733693739858786E-01 -2.0622954088115139E-01 -2.0512805922521776E-01 + -2.0403246083597171E-01 -2.0294271428738656E-01 -2.0185878832132473E-01 + -2.0078065184663926E-01 -1.9970827393828075E-01 -1.9864162383641198E-01 + -1.9758067094552242E-01 -1.9652538483355270E-01 -1.9547573523101866E-01 + -1.9443169203014513E-01 -1.9339322528399921E-01 -1.9236030520563321E-01 + -1.9133290216722856E-01 -1.9031098669924454E-01 -1.8929452948957495E-01 + -1.8828350138270405E-01 -1.8727787337887253E-01 -1.8627761663324255E-01 + -1.8528270245507228E-01 -1.8429310230689130E-01 -1.8330878780368093E-01 + -1.8232973071206157E-01 -1.8135590294947995E-01 -1.8038727658340584E-01 + -1.7942382383052777E-01 -1.7846551705595826E-01 -1.7751232877243814E-01 + -1.7656423163954993E-01 -1.7562119846293237E-01 -1.7468320219349892E-01 + -1.7375021592666373E-01 -1.7282221290156705E-01 -1.7189916650030959E-01 + -1.7098105024718652E-01 -1.7006783780792961E-01 -1.6915950298894966E-01 + -1.6825601973658635E-01 -1.6735736213635999E-01 -1.6646350441222688E-01 + -1.6557442092584174E-01 -1.6469008617581940E-01 -1.6381047479700553E-01 + -1.6293556155974634E-01 -1.6206532136916690E-01 -1.6119972926444862E-01 + -1.6033876041811504E-01 -1.5948239013531842E-01 -1.5863059385313033E-01 + -1.5778334713983888E-01 -1.5694062569424483E-01 -1.5610240534496719E-01 + -1.5526866204974693E-01 -1.5443937189475906E-01 -1.5361451109392565E-01 + -1.5279405598823237E-01 -1.5197798304505161E-01 -1.5116626885746487E-01 + -1.5035889014359327E-01 -1.4955582374592746E-01 -1.4875704663066508E-01 + -1.4796253588704777E-01 -1.4717226872670552E-01 -1.4638622248300207E-01 + -1.4560437461038350E-01 -1.4482670268373340E-01 -1.4405318439772705E-01 + -1.4328379756619364E-01 -1.4251852012147739E-01 -1.4175733011380656E-01 + -1.4100020571066146E-01 -1.4024712519614982E-01 -1.3949806697038283E-01 + -1.3875300954885467E-01 -1.3801193156182776E-01 -1.3727481175371758E-01 + -1.3654162898248470E-01 -1.3581236221902632E-01 -1.3508699054657450E-01 + -1.3436549316009452E-01 -1.3364784936568910E-01 -1.3293403858000413E-01 + + + 9.3364955531538705E+00 9.3789504372441375E+00 9.3771153915680792E+00 + 9.3759256512525919E+00 9.3749992241811082E+00 9.3286368909936037E+00 + 9.3253400235234913E+00 9.3261134383413591E+00 9.3251180395937112E+00 + 9.3245519573088842E+00 9.3240463955061106E+00 9.3235208750963778E+00 + 9.3230309868916414E+00 9.3225491995918350E+00 9.3220812177498580E+00 + 9.3216237728281417E+00 9.3211748900110010E+00 9.3207337385896061E+00 + 9.3202990395349410E+00 9.3198699802875247E+00 9.3194457951375558E+00 + 9.3190258393670238E+00 9.3186095633666319E+00 9.3181964844308531E+00 + 9.3177861832316626E+00 9.3173782900236759E+00 9.3169724778145593E+00 + 9.3165684557817805E+00 9.3161659638967560E+00 9.3157647686593670E+00 + 9.3153646594468871E+00 9.3149654455098254E+00 9.3145669534327311E+00 + 9.3141690249877946E+00 9.3137715153110445E+00 9.3133742913423703E+00 + 9.3129772304863572E+00 9.3125802194568017E+00 9.3121831532757184E+00 + 9.3117859344026321E+00 9.3113884719742597E+00 9.3109906811383674E+00 + 9.3105924824679729E+00 9.3101938014446084E+00 9.3097945680010739E+00 + 9.3093947161157242E+00 9.3089941834513130E+00 9.3085929110328287E+00 + 9.3081908429591866E+00 9.3077879261447940E+00 9.3073841100871331E+00 + 9.3069793466574620E+00 9.3065735899118227E+00 9.3061667959200722E+00 + 9.3057589226108561E+00 9.3053499296308555E+00 9.3049397782167151E+00 + 9.3045284310782623E+00 9.3041158522919183E+00 9.3037020072031655E+00 + 9.3032868623372789E+00 9.3028703853173234E+00 9.3024525447889168E+00 + 9.3020333103508932E+00 9.3016126524915119E+00 9.3011905425295094E+00 + 9.3007669525597088E+00 9.3003418554026656E+00 9.2999152245580063E+00 + 9.2994870341612401E+00 9.2990572589435576E+00 9.2986258741945420E+00 + 9.2981928557274376E+00 9.2977581798468005E+00 9.2973218233183310E+00 + 9.2968837633407251E+00 9.2964439775193473E+00 9.2960024438416582E+00 + 9.2955591406541416E+00 9.2951140466407320E+00 9.2946671408025647E+00 + 9.2942184024389718E+00 9.2937678111296123E+00 9.2933153467176997E+00 + 9.2928609892941605E+00 9.2924047191827803E+00 9.2919465169261546E+00 + 9.2914863632724334E+00 9.2910242391628266E+00 9.2905601257198018E+00 + 9.2900940042359128E+00 9.2896258561631946E+00 9.2891556631031893E+00 + 9.2886834067974373E+00 9.2882090691184853E+00 9.2877326320613545E+00 + 9.2872540777354082E+00 9.2867733883566768E+00 9.2862905462405045E+00 + 9.2858055337945871E+00 9.2853183335123326E+00 9.2848289279665259E+00 + 9.2843372998033065E+00 9.2838434317364129E+00 9.2833473065416818E+00 + 9.2828489070518110E+00 9.2823482161513358E+00 9.2818452167718348E+00 + 9.2813398918873471E+00 9.2808322245099699E+00 9.2803221976856509E+00 + 9.2798097944901503E+00 9.2792949980251649E+00 9.2787777914146297E+00 + 9.2782581578011261E+00 9.2777360803424660E+00 9.2772115422083967E+00 + 9.2766845265774212E+00 9.2761550166337621E+00 9.2756229955644010E+00 + 9.2750884465562482E+00 9.2745513527934378E+00 9.2740116974546662E+00 + 9.2734694637106649E+00 9.2729246347217344E+00 9.2723771936353732E+00 + 9.2718271235840017E+00 9.2712744076827125E+00 9.2707190290271537E+00 + 9.2701609706914301E+00 9.2696002157261059E+00 9.2690367471562176E+00 + 9.2684705479794349E+00 9.2679016011641746E+00 9.2673298896478435E+00 + 9.2667553963350890E+00 9.2661781040961237E+00 9.2655979957650914E+00 + 9.2650150541384644E+00 9.2644292619734880E+00 9.2638406019867006E+00 + 9.2632490568524091E+00 9.2626546092013076E+00 9.2620572416190434E+00 + 9.2614569366448567E+00 9.2608536767702674E+00 9.2602474444377414E+00 + 9.2596382220394364E+00 9.2590259919159656E+00 9.2584107363551453E+00 + 9.2577924375908456E+00 9.2571710778018019E+00 9.2565466391104572E+00 + 9.2559191035818724E+00 9.2552884532226116E+00 9.2546546699796561E+00 + 9.2540177357393816E+00 9.2533776323264565E+00 9.2527343415028938E+00 + 9.2520878449669990E+00 9.2514381243524024E+00 9.2507851612270837E+00 + 9.2501289370924304E+00 9.2494694333822949E+00 9.2488066314620436E+00 + 9.2481405126276890E+00 9.2474710581049653E+00 9.2467982490484442E+00 + 9.2461220665406660E+00 9.2454424915912927E+00 9.2447595051362228E+00 + 9.2440730880367816E+00 9.2433832210788864E+00 9.2426898849722097E+00 + 9.2419930603493956E+00 9.2412927277652415E+00 9.2405888676958963E+00 + 9.2398814605381059E+00 9.2391704866084083E+00 9.2384559261423753E+00 + 9.2377377592938590E+00 9.2370159661342246E+00 9.2362905266516115E+00 + 9.2355614207501837E+00 9.2348286282494012E+00 9.2340921288832991E+00 + 9.2333519022997415E+00 9.2326079280597266E+00 9.2318601856366556E+00 + 9.2311086544156371E+00 9.2303533136927793E+00 9.2295941426744950E+00 + 9.2288311204768014E+00 9.2280642261246335E+00 9.2272934385511558E+00 + 9.2265187365970895E+00 9.2257400990100145E+00 9.2249575044437222E+00 + 9.2241709314575075E+00 9.2233803585155396E+00 9.2225857639861655E+00 + 9.2217871261412583E+00 9.2209844231555618E+00 9.2201776331060241E+00 + 9.2193667339711549E+00 9.2185517036303537E+00 9.2177325198632811E+00 + 9.2169091603491928E+00 9.2160816026663017E+00 9.2152498242911260E+00 + 9.2144138025978659E+00 9.2135735148577389E+00 9.2127289382383442E+00 + 9.2118800498030460E+00 9.2110268265103095E+00 9.2101692452130770E+00 + 9.2093072826581484E+00 9.2084409154855091E+00 9.2075701202277536E+00 + 9.2066948733093934E+00 9.2058151510462771E+00 9.2049309296449362E+00 + 9.2040421852019634E+00 9.2031488937033750E+00 9.2022510310240087E+00 + 9.2013485729268680E+00 9.2004414950625044E+00 9.1995297729684236E+00 + 9.1986133820683964E+00 9.1976922976718978E+00 9.1967664949734402E+00 + 9.1958359490519808E+00 9.1949006348702547E+00 9.1939605272742124E+00 + 9.1930156009923270E+00 9.1920658306350358E+00 9.1911111906940608E+00 + 9.1901516555418237E+00 9.1891871994308012E+00 9.1882177964929070E+00 + 9.1872434207388807E+00 9.1862640460576355E+00 9.1852796462156618E+00 + 9.1842901948563878E+00 9.1832956654995552E+00 9.1822960315405950E+00 + 9.1812912662500121E+00 9.1802813427727390E+00 9.1792662341275317E+00 + 9.1782459132063234E+00 9.1772203527736131E+00 9.1761895254658281E+00 + 9.1751534037906968E+00 9.1741119601266288E+00 9.1730651667220737E+00 + 9.1720129956948959E+00 9.1709554190317544E+00 9.1698924085874562E+00 + 9.1688239360843262E+00 9.1677499731115919E+00 9.1666704911247319E+00 + 9.1655854614448629E+00 9.1644948552580683E+00 9.1633986436148120E+00 + 9.1622967974292635E+00 9.1611892874786882E+00 9.1600760844027906E+00 + 9.1589571587030925E+00 9.1578324807422842E+00 9.1567020207435963E+00 + 9.1555657487901367E+00 9.1544236348242869E+00 9.1532756486470213E+00 + 9.1521217599173035E+00 9.1509619381514042E+00 9.1497961527222884E+00 + 9.1486243728589578E+00 9.1474465676457992E+00 9.1462627060219610E+00 + 9.1450727567806815E+00 9.1438766885686569E+00 9.1426744698853764E+00 + 9.1414660690824991E+00 9.1402514543631774E+00 9.1390305937814258E+00 + 9.1378034552414498E+00 9.1365700064970152E+00 9.1353302151507716E+00 + 9.1340840486536266E+00 9.1328314743040586E+00 9.1315724592474847E+00 + 9.1303069704755906E+00 9.1290349748256912E+00 9.1277564389800432E+00 + 9.1264713294652147E+00 9.1251796126514080E+00 9.1238812547518062E+00 + 9.1225762218219160E+00 9.1212644797588869E+00 9.1199459943008794E+00 + 9.1186207310263665E+00 9.1172886553534944E+00 9.1159497325394128E+00 + 9.1146039276795996E+00 9.1132512057072077E+00 9.1118915313923807E+00 + 9.1105248693416030E+00 9.1091511839970263E+00 9.1077704396357859E+00 + 9.1063826003693578E+00 9.1049876301428654E+00 9.1035854927344140E+00 + 9.1021761517544277E+00 9.1007595706449642E+00 9.0993357126790606E+00 + 9.0979045409600321E+00 9.0964660184208235E+00 9.0950201078233306E+00 + 9.0935667717577058E+00 9.0921059726417059E+00 9.0906376727200122E+00 + 9.0891618340635318E+00 9.0876784185687587E+00 9.0861873879570592E+00 + 9.0846887037740185E+00 9.0831823273887569E+00 9.0816682199932455E+00 + 9.0801463426016245E+00 9.0786166560495509E+00 9.0770791209934760E+00 + 9.0755336979100090E+00 9.0739803470952030E+00 9.0724190286638926E+00 + 9.0708497025490189E+00 9.0692723285009240E+00 9.0676868660867065E+00 + 9.0660932746895035E+00 9.0644915135078410E+00 9.0628815415549280E+00 + 9.0612633176579962E+00 9.0596368004576018E+00 9.0580019484069556E+00 + 9.0563587197712447E+00 9.0547070726269379E+00 9.0530469648611192E+00 + 9.0513783541708026E+00 9.0497011980622428E+00 9.0480154538502742E+00 + 9.0463210786576074E+00 9.0446180294141669E+00 9.0429062628564143E+00 + 9.0411857355266481E+00 9.0394564037723590E+00 9.0377182237455020E+00 + 9.0359711514018830E+00 9.0342151425004111E+00 9.0324501526024950E+00 + 9.0306761370712927E+00 9.0288930510711012E+00 9.0271008495666329E+00 + 9.0252994873223837E+00 9.0234889189019096E+00 9.0216690986672035E+00 + 9.0198399807779914E+00 9.0180015191910758E+00 9.0161536676596548E+00 + 9.0142963797326683E+00 9.0124296087541147E+00 9.0105533078623825E+00 + 9.0086674299896075E+00 9.0067719278609744E+00 9.0048667539940812E+00 + 9.0029518606982553E+00 9.0010272000739100E+00 8.9990927240118683E+00 + 8.9971483841927142E+00 8.9951941320861373E+00 8.9932299189502718E+00 + 8.9912556958310343E+00 8.9892714135614824E+00 8.9872770227611678E+00 + 8.9852724738354759E+00 8.9832577169749754E+00 8.9812327021547720E+00 + 8.9791973791339004E+00 8.9771516974546213E+00 8.9750956064418190E+00 + 8.9730290552023639E+00 8.9709519926244585E+00 8.9688643673770283E+00 + 8.9667661279090591E+00 8.9646572224489880E+00 8.9625375990040652E+00 + 8.9604072053597505E+00 8.9582659890790648E+00 8.9561138975019716E+00 + 8.9539508777447860E+00 8.9517768766995314E+00 8.9495918410333459E+00 + 8.9473957171878578E+00 8.9451884513785878E+00 8.9429699895943564E+00 + 8.9407402775966585E+00 8.9384992609190874E+00 8.9362468848667280E+00 + 8.9339830945155718E+00 8.9317078347119399E+00 8.9294210500718663E+00 + 8.9271226849805476E+00 8.9248126835917549E+00 8.9224909898272724E+00 + 8.9201575473762986E+00 8.9178122996949014E+00 8.9154551900054493E+00 + 8.9130861612960732E+00 8.9107051563200752E+00 8.9083121175953952E+00 + 8.9059069874040784E+00 8.9034897077917172E+00 8.9010602205669134E+00 + 8.8986184673007553E+00 8.8961643893262767E+00 8.8936979277379411E+00 + 8.8912190233911321E+00 8.8887276169016118E+00 8.8862236486450357E+00 + 8.8837070587564320E+00 8.8811777871297206E+00 8.8786357734172086E+00 + 8.8760809570290871E+00 8.8735132771329699E+00 8.8709326726534155E+00 + 8.8683390822714294E+00 8.8657324444240295E+00 8.8631126973037535E+00 + 8.8604797788582417E+00 8.8578336267897448E+00 8.8551741785547193E+00 + 8.8525013713633580E+00 8.8498151421791942E+00 8.8471154277186521E+00 + 8.8444021644506297E+00 8.8416752885961021E+00 8.8389347361277046E+00 + 8.8361804427693595E+00 8.8334123439958567E+00 8.8306303750324737E+00 + 8.8278344708546204E+00 8.8250245661874711E+00 8.8222005955055653E+00 + 8.8193624930325090E+00 8.8165101927405782E+00 8.8136436283504338E+00 + 8.8107627333307388E+00 8.8078674408978799E+00 8.8049576840156192E+00 + 8.8020333953948349E+00 8.7990945074931695E+00 8.7961409525147900E+00 + 8.7931726624100879E+00 8.7901895688753999E+00 8.7871916033527775E+00 + 8.7841786970297040E+00 8.7811507808388711E+00 8.7781077854579390E+00 + 8.7750496413093249E+00 8.7719762785599720E+00 8.7688876271211598E+00 + 8.7657836166482959E+00 8.7626641765407633E+00 8.7595292359417147E+00 + 8.7563787237379245E+00 8.7532125685596416E+00 8.7500306987804475E+00 + 8.7468330425171210E+00 8.7436195276295212E+00 8.7403900817204825E+00 + 8.7371446321357222E+00 8.7338831059637609E+00 8.7306054300358298E+00 + 8.7273115309258298E+00 8.7240013349502767E+00 8.7206747681682781E+00 + 8.7173317563814798E+00 8.7139722251340945E+00 8.7105960997128644E+00 + 8.7072033051471234E+00 8.7037937662087774E+00 8.7003674074123669E+00 + 8.6969241530151358E+00 8.6934639270170884E+00 8.6899866531610677E+00 + 8.6864922549328512E+00 8.6829806555612752E+00 8.6794517780183593E+00 + 8.6759055450194325E+00 8.6723418790233033E+00 8.6687607022324240E+00 + 8.6651619365930692E+00 8.6615455037955620E+00 8.6579113252744655E+00 + 8.6542593222088193E+00 8.6505894155223917E+00 8.6469015258839619E+00 + 8.6431955737075690E+00 8.6394714791528333E+00 8.6357291621252568E+00 + 8.6319685422765779E+00 8.6281895390050956E+00 8.6243920714560449E+00 + 8.6205760585219782E+00 8.6167414188431923E+00 8.6128880708081113E+00 + 8.6090159325537474E+00 8.6051249219661532E+00 8.6012149566809004E+00 + 8.5972859540835849E+00 8.5933378313103148E+00 8.5893705052482723E+00 + 8.5853838925362442E+00 8.5813779095652301E+00 8.5773524724789940E+00 + 8.5733074971747136E+00 8.5692428993035890E+00 8.5651585942715300E+00 + 8.5610544972398035E+00 8.5569305231257520E+00 8.5527865866034976E+00 + 8.5486226021047127E+00 8.5444384838193503E+00 8.5402341456964592E+00 + 8.5360095014449744E+00 8.5317644645345645E+00 8.5274989481964880E+00 + 8.5232128654244530E+00 8.5189061289755461E+00 8.5145786513711386E+00 + 8.5102303448978649E+00 8.5058611216085680E+00 8.5014708933233170E+00 + 8.4970595716304285E+00 8.4926270678875344E+00 8.4881732932226317E+00 + 8.4836981585352031E+00 8.4792015744973384E+00 8.4746834515549061E+00 + 8.4701436999287143E+00 8.4655822296157250E+00 8.4609989503903105E+00 + 8.4563937718054927E+00 8.4517666031942476E+00 8.4471173536708228E+00 + 8.4424459321320988E+00 8.4377522472589419E+00 8.4330362075176328E+00 + 8.4282977211612984E+00 8.4235366962313734E+00 8.4187530405590909E+00 + 8.4139466617670298E+00 8.4091174672706490E+00 8.4042653642798850E+00 + 8.3993902598007715E+00 8.3944920606370985E+00 8.3895706733920701E+00 + 8.3846260044700518E+00 8.3796579600782852E+00 8.3746664462286997E+00 + 8.3696513687397029E+00 8.3646126332380302E+00 8.3595501451606395E+00 + 8.3544638097566093E+00 8.3493535320891006E+00 8.3442192170373328E+00 + 8.3390607692986070E+00 8.3338780933903536E+00 8.3286710936522361E+00 + 8.3234396742482684E+00 8.3181837391689690E+00 8.3129031922335788E+00 + 8.3075979370922983E+00 8.3022678772285392E+00 8.2969129159612542E+00 + 8.2915329564472824E+00 8.2861279016837575E+00 8.2806976545104938E+00 + 8.2752421176124908E+00 8.2697611935224327E+00 8.2642547846232048E+00 + 8.2587227931505378E+00 8.2531651211955914E+00 8.2475816707076142E+00 + 8.2419723434966983E+00 8.2363370412364993E+00 8.2306756654670359E+00 + 8.2249881175975226E+00 8.2192742989092569E+00 8.2135341105585518E+00 + 8.2077674535796721E+00 8.2019742288878703E+00 8.1961543372824170E+00 + 8.1903076794497380E+00 8.1844341559665175E+00 8.1785336673029079E+00 + 8.1726061138257560E+00 8.1666513958019085E+00 8.1606694134015001E+00 + 8.1546600667013625E+00 8.1486232556884204E+00 8.1425588802631825E+00 + 8.1364668402432585E+00 8.1303470353669027E+00 8.1241993652966524E+00 + 8.1180237296229798E+00 8.1118200278680170E+00 8.1055881594893027E+00 + 8.0993280238836078E+00 8.0930395203908088E+00 8.0867225482977840E+00 + 8.0803770068423919E+00 8.0740027952174884E+00 8.0675998125749935E+00 + 8.0611679580300404E+00 8.0547071306651130E+00 8.0482172295343055E+00 + 8.0416981536675944E+00 8.0351498020751801E+00 8.0285720737518886E+00 + 8.0219648676816036E+00 8.0153280828417746E+00 8.0086616182079879E+00 + 8.0019653727585673E+00 7.9952392454792580E+00 7.9884831353679342E+00 + 7.9816969414394112E+00 7.9748805627302746E+00 7.9680338983037808E+00 + 7.9611568472548191E+00 7.9542493087149237E+00 7.9473111818573772E+00 + 7.9403423659023060E+00 7.9333427601219091E+00 7.9263122638457064E+00 + 7.9192507764658453E+00 7.9121581974425021E+00 7.9050344263093022E+00 + 7.8978793626788271E+00 7.8906929062481748E+00 7.8834749568046112E+00 + 7.8762254142312127E+00 7.8689441785126650E+00 7.8616311497410392E+00 + 7.8542862281217092E+00 7.8469093139792641E+00 7.8395003077635312E+00 + 7.8320591100556465E+00 7.8245856215742045E+00 7.8170797431814325E+00 + 7.8095413758894958E+00 7.8019704208668053E+00 7.7943667794444522E+00 + 7.7867303531226399E+00 7.7790610435772498E+00 7.7713587526664405E+00 + 7.7636233824373004E+00 7.7558548351326309E+00 7.7480530131977119E+00 + 7.7402178192872064E+00 7.7323491562720905E+00 7.7244469272467038E+00 + 7.7165110355357927E+00 7.7085413847016957E+00 7.7005378785515628E+00 + 7.6925004211446559E+00 7.6844289167997211E+00 7.6763232701024133E+00 + 7.6681833859128199E+00 7.6600091693730619E+00 7.6518005259149007E+00 + 7.6435573612675221E+00 7.6352795814652952E+00 7.6269670928556650E+00 + 7.6186198021070970E+00 7.6102376162170895E+00 7.6018204425202685E+00 + 7.5933681886965632E+00 7.5848807627794335E+00 7.5763580731641929E+00 + 7.5678000286163858E+00 7.5592065382802671E+00 7.5505775116873401E+00 + 7.5419128587649364E+00 7.5332124898449582E+00 7.5244763156725796E+00 + 7.5157042474151483E+00 7.5068961966710477E+00 7.4980520754787081E+00 + 7.4891717963256745E+00 7.4802552721577396E+00 7.4713024163881752E+00 + 7.4623131429070009E+00 7.4532873660903727E+00 7.4442250008100235E+00 + 7.4351259624427879E+00 7.4259901668801955E+00 7.4168175305381467E+00 + 7.4076079703666640E+00 7.3983614038597363E+00 7.3890777490651907E+00 + 7.3797569245947070E+00 7.3703988496338493E+00 7.3610034439522316E+00 + 7.3515706279136932E+00 7.3421003224866137E+00 7.3325924492542658E+00 + 7.3230469304252610E+00 7.3134636888440641E+00 7.3038426480015914E+00 + 7.2941837320458731E+00 7.2844868657928021E+00 7.2747519747369767E+00 + 7.2649789850625623E+00 7.2551678236542978E+00 7.2453184181085222E+00 + 7.2354306967443307E+00 7.2255045886147391E+00 7.2155400235179830E+00 + 7.2055369320088642E+00 7.1954952454101795E+00 7.1854148958242119E+00 + 7.1752958161443150E+00 7.1651379400665549E+00 7.1549412021014360E+00 + 7.1447055375857014E+00 7.1344308826941898E+00 7.1241171744517855E+00 + 7.1137643507454245E+00 7.1033723503362012E+00 7.0929411128715065E+00 + 7.0824705788972500E+00 7.0719606898701866E+00 7.0614113881702698E+00 + 7.0508226171130861E+00 7.0401943209623816E+00 7.0295264449426291E+00 + 7.0188189352516819E+00 7.0080717390734861E+00 6.9972848045908629E+00 + 6.9864580809983590E+00 6.9755915185151620E+00 6.9646850683980857E+00 + 6.9537386829546213E+00 6.9427523155560413E+00 6.9317259206505657E+00 + 6.9206594537766239E+00 6.9095528715761381E+00 6.8984061318078913E+00 + 6.8872191933609539E+00 6.8759920162681585E+00 6.8647245617196546E+00 + 6.8534167920765130E+00 6.8420686708843634E+00 6.8306801628871350E+00 + 6.8192512340408138E+00 6.8077818515272801E+00 6.7962719837681913E+00 + 6.7847216004389059E+00 6.7731306724824734E+00 6.7614991721236999E+00 + 6.7498270728831979E+00 6.7381143495915445E+00 6.7263609784034752E+00 + 6.7145669368120995E+00 6.7027322036631940E+00 6.6908567591695292E+00 + 6.6789405849252264E+00 6.6669836639201705E+00 6.6549859805544873E+00 + 6.6429475206529949E+00 6.6308682714797564E+00 6.6187482217526554E+00 + 6.6065873616579882E+00 6.5943856828651057E+00 6.5821431785410907E+00 + 6.5698598433654514E+00 6.5575356735448826E+00 6.5451706668279979E+00 + 6.5327648225201420E+00 6.5203181414981994E+00 6.5078306262254486E+00 + 6.4953022807664187E+00 6.4827331108017772E+00 6.4701231236432433E+00 + 6.4574723282484952E+00 6.4447807352361526E+00 6.4320483569006850E+00 + 6.4192752072274075E+00 6.4064613019074557E+00 6.3936066583527804E+00 + 6.3807112957111327E+00 6.3677752348810861E+00 6.3547984985270221E+00 + 6.3417811110941704E+00 6.3287230988235859E+00 6.3156244897671634E+00 + 6.3024853138026611E+00 6.2893056026486711E+00 6.2760853898796274E+00 + 6.2628247109407784E+00 6.2495236031631496E+00 6.2361821057784983E+00 + 6.2228002599342656E+00 6.2093781087084601E+00 6.1959156971245823E+00 + 6.1824130721664812E+00 6.1688702827932058E+00 6.1552873799538306E+00 + 6.1416644166022270E+00 6.1280014477118341E+00 6.1142985302903803E+00 + 6.1005557233945495E+00 6.0867730881446329E+00 6.0729506877391399E+00 + 6.0590885874693274E+00 6.0451868547337337E+00 6.0312455590526168E+00 + 6.0172647720823607E+00 6.0032445676298263E+00 5.9891850216666551E+00 + 5.9750862123434700E+00 5.9609482200040507E+00 5.9467711271994421E+00 + 5.9325550187019767E+00 5.9182999815192208E+00 5.9040061049078725E+00 + 5.8896734803875495E+00 5.8753022017545380E+00 5.8608923650953919E+00 + 5.8464440688005208E+00 5.8319574135776282E+00 5.8174325024650955E+00 + 5.8028694408452530E+00 5.7882683364575502E+00 5.7736292994116267E+00 + 5.7589524422002878E+00 5.7442378797123732E+00 5.7294857292454671E+00 + 5.7146961105185783E+00 5.6998691456846231E+00 5.6850049593428320E+00 + 5.6701036785510226E+00 5.6551654328377339E+00 5.6401903542142406E+00 + 5.6251785771864453E+00 5.6101302387665894E+00 5.5950454784848738E+00 + 5.5799244384009024E+00 5.5647672631150007E+00 5.5495740997793543E+00 + 5.5343450981090285E+00 5.5190804103927862E+00 5.5037801915038047E+00 + 5.4884445989101529E+00 5.4730737926851623E+00 5.4576679355175939E+00 + 5.4422271927216439E+00 5.4267517322467560E+00 5.4112417246872626E+00 + 5.3956973432918387E+00 5.3801187639727486E+00 5.3645061653149453E+00 + 5.3488597285849062E+00 5.3331796377393141E+00 5.3174660794335322E+00 + 5.3017192430298490E+00 5.2859393206055296E+00 5.2701265069606427E+00 + 5.2542809996256663E+00 5.2384029988688976E+00 5.2224927077035819E+00 + 5.2065503318948716E+00 5.1905760799665037E+00 5.1745701632072763E+00 + 5.1585327956772584E+00 5.1424641942137663E+00 5.1263645784370908E+00 + 5.1102341707559669E+00 5.0940731963728094E+00 5.0778818832886436E+00 + 5.0616604623078194E+00 5.0454091670424397E+00 5.0291282339165067E+00 + 5.0128179021698269E+00 4.9964784138615945E+00 4.9801100138737304E+00 + 4.9637129499139352E+00 4.9472874725184113E+00 4.9308338350543428E+00 + 4.9143522937220583E+00 4.8978431075568958E+00 4.8813065384307635E+00 + 4.8647428510533937E+00 4.8481523129733031E+00 4.8315351945784020E+00 + 4.8148917690963486E+00 4.7982223125945103E+00 4.7815271039796539E+00 + 4.7648064249972961E+00 4.7480605602307131E+00 4.7312897970996302E+00 + 4.7144944258585628E+00 4.6976747395948308E+00 4.6808310342262214E+00 + 4.6639636084983014E+00 4.6470727639813898E+00 4.6301588050671709E+00 + 4.6132220389649579E+00 4.5962627756975909E+00 4.5792813280969780E+00 + 4.5622780117992692E+00 4.5452531452396547E+00 4.5282070496468299E+00 + 4.5111400490370182E+00 4.4940524702076869E+00 4.4769446427308468E+00 + 4.4598168989459772E+00 4.4426695739525641E+00 4.4255030056022653E+00 + 4.4083175344906662E+00 4.3911135039486684E+00 4.3738912600334494E+00 + 4.3566511515190580E+00 4.3393935298866007E+00 4.3221187493140114E+00 + 4.3048271666654436E+00 4.2875191414802396E+00 4.2701950359614944E+00 + 4.2528552149642058E+00 4.2355000459830423E+00 4.2181298991396430E+00 + 4.2007451471695534E+00 4.1833461654087145E+00 4.1659333317795495E+00 + 4.1485070267766169E+00 4.1310676334518472E+00 4.1136155373993581E+00 + 4.0961511267398523E+00 4.0786747921045619E+00 4.0611869266187917E+00 + 4.0436879258850347E+00 4.0261781879656340E+00 4.0086581133650361E+00 + 3.9911281050116059E+00 3.9735885682390086E+00 3.9560399107671533E+00 + 3.9384825426827175E+00 3.9209168764192173E+00 3.9033433267366533E+00 + 3.8857623107007271E+00 3.8681742476616110E+00 3.8505795592322833E+00 + 3.8329786692664318E+00 3.8153720038359165E+00 3.7977599912078079E+00 + 3.7801430618209624E+00 3.7625216482621888E+00 3.7448961852419691E+00 + 3.7272671095697403E+00 3.7096348601287428E+00 3.6919998778504377E+00 + 3.6743626056884855E+00 3.6567234885923057E+00 3.6390829734801731E+00 + 3.6214415092119174E+00 3.6037995465611754E+00 3.5861575381872082E+00 + 3.5685159386063097E+00 3.5508752041627645E+00 3.5332357929994078E+00 + 3.5155981650277277E+00 3.4979627818975896E+00 3.4803301069664894E+00 + 3.4627006052684273E+00 3.4450747434823459E+00 3.4274529899001611E+00 + 3.4098358143943766E+00 3.3922236883852848E+00 3.3746170848077668E+00 + 3.3570164780776857E+00 3.3394223440578634E+00 3.3218351600236717E+00 + 3.3042554046282198E+00 3.2866835578671441E+00 3.2691201010430073E+00 + 3.2515655167293045E+00 3.2340202887340861E+00 3.2164849020631938E+00 + 3.1989598428831267E+00 3.1814455984835046E+00 3.1639426572391862E+00 + 3.1464515085719982E+00 3.1289726429121036E+00 3.1115065516590068E+00 + 3.0940537271422013E+00 3.0766146625814499E+00 3.0591898520467353E+00 + 3.0417797904178365E+00 3.0243849733435724E+00 3.0070058972007194E+00 + 2.9896430590525664E+00 2.9722969566071655E+00 2.9549680881752289E+00 + 2.9376569526277274E+00 2.9203640493531520E+00 2.9030898782144852E+00 + 2.8858349395058243E+00 2.8685997339087437E+00 2.8513847624483315E+00 + 2.8341905264489378E+00 2.8170175274896345E+00 2.7998662673593908E+00 + 2.7827372480119634E+00 2.7656309715205283E+00 2.7485479400320125E+00 + 2.7314886557211939E+00 2.7144536207445236E+00 2.6974433371936968E+00 + 2.6804583070489811E+00 2.6634990321322953E+00 2.6465660140600509E+00 + 2.6296597541957647E+00 2.6127807536024488E+00 2.5959295129947617E+00 + 2.5791065326909637E+00 2.5623123125646514E+00 2.5455473519962926E+00 + 2.5288121498245548E+00 2.5121072042974522E+00 2.4954330130232898E+00 + 2.4787900729214494E+00 2.4621788801729689E+00 2.4455999301709728E+00 + 2.4290537174709370E+00 2.4125407357407846E+00 2.3960614777108358E+00 + 2.3796164351236126E+00 2.3632060986834933E+00 2.3468309580062399E+00 + 2.3304915015683965E+00 2.3141882166565502E+00 2.2979215893164886E+00 + 2.2816921043022402E+00 2.2655002450250055E+00 2.2493464935019900E+00 + 2.2332313303051370E+00 2.2171552345097778E+00 2.2011186836431991E+00 + 2.1851221536331145E+00 2.1691661187560900E+00 2.1532510515858823E+00 + 2.1373774229417251E+00 2.1215457018365558E+00 2.1057563554251955E+00 + 2.0900098489524814E+00 2.0743066457013604E+00 2.0586472069409525E+00 + 2.0430319918745825E+00 2.0274614575877843E+00 2.0119360589963016E+00 + 1.9964562487940620E+00 1.9810224774011533E+00 1.9656351929117946E+00 + 1.9502948410423120E+00 1.9350018650791274E+00 1.9197567058267513E+00 + 1.9045598015558052E+00 1.8894115879510647E+00 1.8743124980595329E+00 + 1.8592629622385464E+00 1.8442634081039282E+00 1.8293142604781774E+00 + 1.8144159413387106E+00 1.7995688697661694E+00 1.7847734618927706E+00 + 1.7700301308507358E+00 1.7553392867207867E+00 1.7407013364807160E+00 + 1.7261166839540405E+00 1.7115857297587402E+00 1.6971088712560864E+00 + 1.6826865024995754E+00 1.6683190141839472E+00 1.6540067935943288E+00 + 1.6397502245554825E+00 1.6255496873811730E+00 1.6114055588236598E+00 + 1.5973182120233194E+00 1.5832880164584000E+00 1.5693153378949307E+00 + 1.5554005383367548E+00 1.5415439759757423E+00 1.5277460051421496E+00 + 1.5140069762551474E+00 1.5003272357735278E+00 1.4867071261465876E+00 + 1.4731469857652060E+00 1.4596471489131109E+00 1.4462079457183590E+00 + 1.4328297021050174E+00 1.4195127397450749E+00 1.4062573760105763E+00 + 1.3930639239260012E+00 1.3799326921208852E+00 1.3668639847827027E+00 + 1.3538581016100111E+00 1.3409153377658884E+00 1.3280359838316409E+00 + 1.3152203257608253E+00 1.3024686448335805E+00 1.2897812176112853E+00 + 1.2771583158915536E+00 1.2646002066635806E+00 1.2521071520638609E+00 + 1.2396794093322780E+00 1.2273172307686031E+00 1.2150208636893887E+00 + 1.2027905503853054E+00 1.1906265280789168E+00 1.1785290288829184E+00 + 1.1664982797588594E+00 1.1545345024763602E+00 1.1426379135726321E+00 + 1.1308087243134302E+00 1.1190471406532188E+00 1.1073533631968233E+00 + 1.0957275871614600E+00 1.0841700023393923E+00 1.0726807930612390E+00 + 1.0612601381599629E+00 1.0499082109355540E+00 1.0386251791204413E+00 + 1.0274112048456643E+00 1.0162664446078096E+00 1.0051910492367679E+00 + 9.9418516386431888E-01 9.8324892789358109E-01 9.7238247496935437E-01 + 9.6158593294938133E-01 9.5085942387656219E-01 9.4020306395215325E-01 + 9.2961696350996859E-01 9.1910122699163310E-01 9.0865595292290380E-01 + 8.9828123389109604E-01 8.8797715652364606E-01 8.7774380146783726E-01 + 8.6758124337172537E-01 8.5748955086629053E-01 8.4746878654885049E-01 + 8.3751900696775605E-01 8.2764026260841150E-01 8.1783259788064022E-01 + 8.0809605110742611E-01 7.9843065451506123E-01 7.8883643422472360E-01 + 7.7931341024551493E-01 7.6986159646898300E-01 7.6048100066514612E-01 + 7.5117162448005637E-01 7.4193346343491118E-01 7.3276650692673895E-01 + 7.2367073823067751E-01 7.1464613450386205E-01 7.0569266679093756E-01 + 6.9681030003120847E-01 6.8799899306744416E-01 6.7925869865633692E-01 + 6.7058936348063369E-01 6.6199092816293870E-01 6.5346332728119316E-01 + 6.4500648938583105E-01 6.3662033701861198E-01 6.2830478673312329E-01 + 6.2005974911694894E-01 6.1188512881548984E-01 6.0378082455742987E-01 + 5.9574672918182925E-01 5.8778272966682676E-01 5.7988870715993390E-01 + 5.7206453700989413E-01 5.6431008880008449E-01 5.5662522638342771E-01 + 5.4900980791878984E-01 5.4146368590881777E-01 5.3398670723919461E-01 + 5.2657871321926264E-01 5.1923953962397751E-01 5.1196901673715012E-01 + 5.0476696939592736E-01 4.9763321703646557E-01 4.9056757374075033E-01 + 4.8356984828450272E-01 4.7663984418612748E-01 4.6977735975664525E-01 + 4.6298218815055386E-01 4.5625411741756139E-01 4.4959293055513905E-01 + 4.4299840556183195E-01 4.3647031549127568E-01 4.3000842850685844E-01 + 4.2361250793697935E-01 4.1728231233084456E-01 4.1101759551475175E-01 + 4.0481810664881213E-01 3.9868359028406397E-01 3.9261378641993372E-01 + 3.8660843056200356E-01 3.8066725378005334E-01 3.7478998276634024E-01 + 3.6897633989409861E-01 3.6322604327623659E-01 3.5753880682422023E-01 + 3.5191434030714125E-01 3.4635234941097615E-01 3.4085253579804842E-01 + 3.3541459716672706E-01 3.3003822731138999E-01 3.2472311618271466E-01 + 3.1946894994835423E-01 3.1427541105408424E-01 3.0914217828551627E-01 + 3.0406892683049780E-01 2.9905532834233312E-01 2.9410105100398437E-01 + 2.8920575959343681E-01 2.8436911555042982E-01 2.7959077704479335E-01 + 2.7487039904664745E-01 2.7020763339875964E-01 2.6560212889138246E-01 + 2.6105353133993059E-01 2.5656148366588771E-01 2.5212562598137422E-01 + 2.4774559567783533E-01 2.4342102751935488E-01 2.3915155374112781E-01 + 2.3493680415366294E-01 2.3077640625331688E-01 2.2666998533978816E-01 + 2.2261716464122186E-01 2.1861756544758829E-01 2.1467080725300502E-01 + 2.1077650790765751E-01 2.0693428377995549E-01 2.0314374992951051E-01 + 1.9940452029145680E-01 1.9571620787253710E-01 1.9207842495924971E-01 + 1.8849078333818173E-01 1.8495289452844696E-01 1.8146437002588114E-01 + 1.7802482155834251E-01 1.7463386135108436E-01 1.7129110240073483E-01 + 1.6799615875591561E-01 1.6474864580195889E-01 1.6154818054654260E-01 + 1.5839438190235627E-01 1.5528687096214522E-01 1.5222527126065827E-01 + 1.4920920901717410E-01 1.4623831335140353E-01 1.4331221646470213E-01 + 1.4043055377770633E-01 1.3759296401476789E-01 1.3479908922496589E-01 + 1.3204857472908155E-01 1.2934106898181072E-01 1.2667622333876055E-01 + 1.2405369171852294E-01 1.2147313015147995E-01 1.1893419620908434E-01 + 1.1643654831031827E-01 1.1397984490597089E-01 1.1156374354637900E-01 + 1.0918789984436325E-01 1.0685196635217577E-01 1.0455559137913992E-01 + 1.0229841778487993E-01 1.0008008179099415E-01 9.7900211860869946E-02 + 9.5758427702055254E-02 9.3654339447108353E-02 9.1587547066158154E-02 + 8.9557640056850268E-02 8.7564197444816014E-02 8.5606788110863308E-02 + 8.3684971441139594E-02 8.1798298275575360E-02 7.9946312110388398E-02 + 7.8128550494652602E-02 7.6344546550755885E-02 7.4593830544989234E-02 + 7.2875931437511157E-02 7.1190378349586511E-02 6.9536701898679110E-02 + 6.7914435366770221E-02 6.6323115682304895E-02 6.4762284209904999E-02 + 6.3231487353398730E-02 6.1730276986278927E-02 6.0258210729355756E-02 + 5.8814852098382109E-02 5.7399770545259909E-02 5.6012541415628982E-02 + 5.4652745843723510E-02 5.3319970602818276E-02 5.2013807926746786E-02 + 5.0733855315128869E-02 4.9479715332276027E-02 4.8250995407359672E-02 + 4.7047307641376983E-02 4.5868268624744274E-02 4.4713499267971961E-02 + 4.3582624646794618E-02 4.2475273862307296E-02 4.1391079916051801E-02 + 4.0329679599566966E-02 3.9290713397625097E-02 3.8273825404197992E-02 + 3.7278663250095885E-02 3.6304878041186969E-02 3.5352124306111579E-02 + 3.4420059952442808E-02 3.3508346230301668E-02 3.2616647702504574E-02 + 3.1744632220394073E-02 3.0891970904582053E-02 3.0058338129908060E-02 + 2.9243411513988474E-02 2.8446871908799382E-02 2.7668403394798622E-02 + 2.6907693277150098E-02 2.6164432083664538E-02 2.5438313564118176E-02 + 2.4729034690652005E-02 2.4036295658991860E-02 2.3359799890261896E-02 + 2.2699254033193530E-02 2.2054367966557305E-02 2.1424854801667913E-02 + 2.0810430884832108E-02 2.0210815799627330E-02 1.9625732368913199E-02 + 1.9054906656492593E-02 1.8498067968350105E-02 1.7954948853406195E-02 + 1.7425285103734790E-02 1.6908815754199794E-02 1.6405283081473238E-02 + 1.5914432602404070E-02 1.5436013071712001E-02 1.4969776478985600E-02 + 1.4515478044968659E-02 1.4072876217121905E-02 1.3641732664451161E-02 + 1.3221812271595699E-02 1.2812883132173273E-02 1.2414716541380773E-02 + 1.2027086987851371E-02 1.1649772144770915E-02 1.1282552860258118E-02 + 1.0925213147014331E-02 1.0577540171250075E-02 1.0239324240896647E-02 + 9.9103587931120615E-03 9.5904403810914939E-03 9.2793686601931637E-03 + 8.9769463733913174E-03 8.6829793360683073E-03 8.3972764201587155E-03 + 8.1196495376584694E-03 7.8499136235125160E-03 7.5878866178948961E-03 + 7.3333894478953120E-03 7.0862460086264824E-03 6.8462831437668915E-03 + 6.6133306255534924E-03 6.3872211342392883E-03 6.1677902370306306E-03 + 5.9548763665192260E-03 5.7483207986239182E-03 5.5479676300573119E-03 + 5.3536637553323538E-03 5.1652588433240164E-03 4.9826053134011767E-03 + 4.8055583111438240E-03 4.6339756836607420E-03 4.4677179545226922E-03 + 4.3066482983261916E-03 4.1506325149029020E-03 3.9995390031896273E-03 + 3.8532387347738430E-03 3.7116052271297150E-03 3.5745145165593920E-03 + 3.4418451308544555E-03 3.3134780616922419E-03 3.1892967367817462E-03 + 3.0691869917737701E-03 2.9530370419498849E-03 2.8407374537047381E-03 + 2.7321811158361672E-03 2.6272632106575269E-03 2.5258811849464976E-03 + 2.4279347207446953E-03 2.3333257060221841E-03 2.2419582052210078E-03 + 2.1537384296917202E-03 2.0685747080368272E-03 1.9863774563749215E-03 + 1.9070591485392423E-03 1.8305342862242017E-03 1.7567193690933972E-03 + 1.6855328648624304E-03 1.6168951793697484E-03 1.5507286266486116E-03 + 1.4869573990130946E-03 1.4255075371709209E-03 1.3663069003757497E-03 + 1.3092851366313435E-03 1.2543736529599184E-03 1.2015055857467374E-03 + 1.1506157711728342E-03 1.1016407157475542E-03 1.0545185669523698E-03 + 1.0091890840072122E-03 9.6559360877032240E-04 9.2367503678239169E-04 + 8.8337778846549067E-04 8.4464778048705478E-04 8.0743239729890186E-04 + 7.7168046286099233E-04 7.3734221255935932E-04 7.0436926532734694E-04 + 6.7271459597899330E-04 6.4233250776310469E-04 6.1317860514624380E-04 + 5.8520976683256007E-04 5.5838411902807070E-04 5.3266100895667300E-04 + 5.0800097863486617E-04 4.8436573891182490E-04 4.6171814378115811E-04 + 4.4002216497034916E-04 4.1924286681357546E-04 3.9934638141325788E-04 + 3.8029988409540665E-04 3.6207156916348798E-04 3.4463062595524474E-04 + 3.2794721520659157E-04 3.1199244572640531E-04 2.9673835138573621E-04 + 2.8215786842467771E-04 2.6822481307984321E-04 2.5491385953512813E-04 + 2.4220051819815781E-04 2.3006111430456068E-04 2.1847276685194600E-04 + 2.0741336786521804E-04 1.9686156199460707E-04 1.8679672644756831E-04 + 1.7719895125546195E-04 1.6804901987570371E-04 1.5932839012986115E-04 + 1.5101917547795366E-04 1.4310412662900889E-04 1.3556661348772991E-04 + 1.2839060743692927E-04 1.2156066395519866E-04 1.1506190556909716E-04 + 1.0888000513896106E-04 1.0300116947726477E-04 9.7412123298290396E-05 + 9.2100093497698884E-05 8.7052793760432822E-05 8.2258409495224633E-05 + 7.7705583093830058E-05 7.3383399512957098E-05 6.9281372176715746E-05 + 6.5389429197270843E-05 6.1697899911244890E-05 5.8197501729281465E-05 + 5.4879327296050838E-05 5.1734831957853293E-05 4.8755821534852838E-05 + 4.5934440394856268E-05 4.3263159825437657E-05 4.0734766701099032E-05 + 3.8342352442050526E-05 3.6079302261094041E-05 3.3939284694994069E-05 + 3.1916241416628642E-05 3.0004377324124690E-05 2.8198150903096347E-05 + 2.6492264858028701E-05 2.4881657008771600E-05 2.3361491448041830E-05 + 2.1927149955764029E-05 2.0574223666023656E-05 1.9298504982348076E-05 + 1.8095979736983242E-05 1.6962819589788423E-05 1.5895374662330080E-05 + 1.4890166402723206E-05 1.3943880676736030E-05 1.3053361080651148E-05 + 1.2215602471353973E-05 1.1427744709105939E-05 1.0687066608447942E-05 + 9.9909800926746320E-06 9.3370245473191238E-06 8.7228613680904737E-06 + 8.1462686987153329E-06 7.6051363541465060E-06 7.0974609246187867E-06 + 6.6213410560522461E-06 6.1749729023288804E-06 5.7566457449964106E-06 + 5.3647377759859243E-06 4.9977120389660092E-06 4.6541125249951377E-06 + 4.3325604181773670E-06 4.0317504870716918E-06 3.7504476176548403E-06 + 3.4874834836884590E-06 3.2417533503963132E-06 3.0122130074138493E-06 + 2.7978758270314919E-06 2.5978099438146061E-06 2.4111355517460840E-06 + 2.2370223151029527E-06 2.0746868893449520E-06 1.9233905483616573E-06 + 1.7824369144941907E-06 1.6511697878186545E-06 1.5289710712503890E-06 + 1.4152587881009409E-06 1.3094851887934932E-06 1.2111349435166098E-06 + 1.1197234176711220E-06 1.0347950270399964E-06 9.5592166968654727E-07 + 8.8270123166175799E-07 8.1475616367704903E-07 7.5173212597421685E-07 + 6.9329669869936512E-07 6.3913815516257566E-07 5.8896429543937925E-07 + 5.4250133784404649E-07 4.9949286587792720E-07 4.5969882832870432E-07 + 4.2289459026819300E-07 3.8887003276730340E-07 3.5742869921684577E-07 + 3.2838698621190008E-07 3.0157337702555524E-07 2.7682771576473411E-07 + 2.5400052036666966E-07 2.3295233265919695E-07 2.1355310377144975E-07 + 1.9568161324369465E-07 1.7922492024587468E-07 1.6407784537399000E-07 + 1.5014248155160889E-07 1.3732773262065088E-07 1.2554887826100589E-07 + 1.1472716393262510E-07 1.0478941458634989E-07 9.5667670940993453E-08 + 8.7298847174012934E-08 7.9624408921514615E-08 7.2590070530346035E-08 + 6.6145510550610060E-08 6.0244104501142054E-08 5.4842673983287476E-08 + 4.9901251259752734E-08 4.5382858455361224E-08 4.1253300575266478E-08 + 3.7480971573561356E-08 3.4036672741294036E-08 3.0893442717691565E-08 + 2.8026398461902475E-08 2.5412586554844744E-08 2.3030844231789692E-08 + 2.0861669576168065E-08 1.8887100333762471E-08 1.7090600833989373E-08 + 1.5456956531393435E-08 1.3972175705807035E-08 1.2623397883899387E-08 + 1.1398808568075237E-08 1.0287559880918452E-08 9.2796967546329819E-09 + 8.3660883152474702E-09 7.5383641307450391E-09 6.7888550107870627E-09 + 6.1105380633485817E-09 5.4969857303997097E-09 4.9423185407830651E-09 + 4.4411613336772045E-09 3.9886027205305625E-09 3.5801575671245654E-09 + 3.2117322905070908E-09 2.8795927779536804E-09 2.5803347468901105E-09 + 2.3108563758721206E-09 2.0683330472901697E-09 1.8501940524746848E-09 + 1.6541011193429658E-09 1.4779286316770944E-09 1.3197454175744651E-09 + 1.1777979925917630E-09 1.0504951506302241E-09 9.3639380270572627E-10 + 8.3418597043204722E-10 7.4268684733853426E-10 6.6082384706385312E-10 + 5.8762656303316806E-10 5.2221756945505167E-10 4.6380399838339293E-10 + 4.1166983219493880E-10 3.6516885515079447E-10 3.2371821175509857E-10 + 2.8679252341101523E-10 2.5391851841685542E-10 2.2467013365716639E-10 + 1.9866404943765298E-10 1.7555562180123285E-10 1.5503517935703034E-10 + 1.3682465416591391E-10 1.2067451856600463E-10 1.0636100199956849E-10 + 9.3683563928635686E-11 8.2462600809742347E-11 7.2537366847212788E-11 + 6.3764089867692310E-11 5.6014265164158493E-11 4.9173111552877068E-11 + 4.3138175178837617E-11 3.7818067800858847E-11 3.3131327393128750E-11 + 2.9005389921486808E-11 2.5375662095910953E-11 2.2184685770816940E-11 + 1.9381385466933161E-11 1.6920391227441227E-11 1.4761429701223381E-11 + 1.2868776971626412E-11 1.1210767224077159E-11 9.7593518738483565E-12 + 8.4897042597412053E-12 7.3798654536507515E-12 6.4104271429436604E-12 + 5.5642479151294398E-12 4.8261996150853950E-12 4.1829407565657388E-12 + 3.6227142541768704E-12 3.1351670015721926E-12 2.7111890582936147E-12 + 2.3427704233108119E-12 2.0228735695941476E-12 1.7453200925932466E-12 + 1.5046899877516415E-12 1.2962322195318340E-12 1.1157853781154203E-12 + 9.5970734114371246E-13 8.2481296765163389E-13 7.0831895071273096E-13 + 6.0779504517047173E-13 5.2112096802145680E-13 4.4644834231406185E-13 + 3.8216712154220711E-13 3.2687599110129505E-13 2.7935629703074125E-13 + 2.3854910054336003E-13 2.0353500023863646E-13 1.7351640287373260E-13 + 1.4780195854282016E-13 1.2579290747496303E-13 1.0697111375278245E-13 + 9.0888586396777794E-14 7.7158310743201495E-14 6.5446233130297687E-14 + 5.5464259837808217E-14 4.6964147215229213E-14 3.9732174182278131E-14 + 3.3584500968871326E-14 2.8363129243054498E-14 2.3932388799751873E-14 + 2.0175884882755641E-14 1.6993848106006390E-14 1.4300835935169269E-14 + 1.2023740883334330E-14 1.0100066052249639E-14 8.4764334908944694E-15 + 7.1072951165225325E-15 5.9538197124216517E-15 4.9829328378836520E-15 + 4.1664894096888745E-15 3.4805612858756538E-15 2.9048244419760659E-15 + 2.4220323132036229E-15 2.0175636153306705E-15 1.6790344807362855E-15 + 1.3959660797370178E-15 1.1595000634038902E-15 9.6215518265967681E-16 + 7.9761932731557128E-16 6.6057200359324815E-16 5.4653294352622007E-16 + 4.5173312676642086E-16 3.7300500562311806E-16 3.0768916723474890E-16 + 2.5355505108409760E-16 2.0873367306535033E-16 1.7166059555149626E-16 + 1.4102763215013176E-16 1.1574199112762792E-16 9.4891747255476557E-17 + 7.7716691967171273E-17 6.3583749602235863E-17 5.1966266120600727E-17 + 4.2426578583064176E-17 3.4601361168078212E-17 2.8189318496256673E-17 + 2.2940861270987902E-17 1.8649454201469800E-17 1.5144373142454650E-17 + 1.2284648480590364E-17 9.9540059883460112E-18 8.0566454903365225E-18 + 6.5137224668143281E-18 5.2604187795098087E-18 4.2435065840825504E-18 + 3.4193246546295464E-18 2.7520991875614989E-18 2.2125520171130035E-18 + 1.7767483565966073E-18 1.4251439300484972E-18 1.1417978936948999E-18 + 9.1372344999325874E-19 7.3035268626325558E-19 5.8309605937054998E-19 + 4.6498021193714195E-19 3.7035054145069368E-19 2.9462723414657563E-19 + 2.3410539085367949E-19 1.8579147165578822E-19 1.4726962063081205E-19 + 1.1659254372007152E-19 9.2192537957435184E-20 7.2809039230664971E-20 + 5.7429694049677509E-20 4.5242489996616879E-20 3.5596917732136123E-20 + 2.7972499824885531E-20 2.1953320993861633E-20 1.7207441269664892E-20 + 1.3470277007197893E-20 1.0531202064646180E-20 8.2227590112475866E-21 + 6.4119831112202385E-21 4.9934343551590388E-21 3.8836085467774240E-21 + 3.0164603666438404E-21 2.3398218816563333E-21 1.8125411815468735E-21 + 1.4021993807833085E-21 1.0832915113269205E-21 8.3577899047916912E-22 + 6.4393931799748277E-22 4.9545320981690525E-22 3.8068114564980133E-22 + 2.9209081365867865E-22 2.2380460220868648E-22 1.7124246364279434E-22 + 1.3084044145220094E-22 9.9829141058553872E-23 7.6059623596936525E-23 + 5.7866764287902074E-23 4.3962166117535377E-23 3.3350356001922452E-23 + 2.5263295625372707E-23 1.9109278336095769E-23 1.4433109801257927E-23 + 1.0885126212989630E-23 8.1971240018470490E-24 6.1636868059963655E-24 + 4.6277209583648988E-24 3.4692676833041892E-24 2.5968626855860455E-24 + 1.9408731617141178E-24 1.4483674691600400E-24 1.0791709188090948E-24 + 8.0283810375514428E-25 5.9633236056024021E-25 4.4224996056108472E-25 + 3.2746327471023595E-25 2.4208567364773013E-25 1.7868313667740563E-25 + 1.3167471176265132E-25 9.6877189218573319E-26 7.1160269387452032E-26 + 5.2185080760866189E-26 3.8207133746963418E-26 2.7927243150021567E-26 + 2.0379491749741515E-26 1.4846922856907849E-26 1.0798253054773547E-26 + 7.8404429624679938E-27 5.6832116795302189E-27 4.1125317232560273E-27 + 2.9708650704822395E-27 2.1424507762492093E-27 1.5423716542402842E-27 + 1.1084432248649878E-27 7.9520675972004471E-28 5.6948829199107682E-28 + 4.0712106754835799E-28 2.9053087012588375E-28 2.0696018016936405E-28 + 1.4716446336632899E-28 1.0445676750964429E-28 7.4008821725839473E-29 + 5.2340691419374730E-29 3.6948791353003736E-29 2.6035239032274803E-29 + 1.8311299525747900E-29 1.2854900476723711E-29 9.0075336391775203E-30 + 6.2997937747903840E-30 4.3977006171159069E-30 3.0640755765953655E-30 + 2.1308032240754872E-30 1.4789477387596520E-30 1.0245270935891969E-30 + 7.0835458450810527E-31 4.8879875498851923E-31 3.3663328067216922E-31 + 2.3138063897068382E-31 1.5872136800869752E-31 1.0866197098342955E-31 + 7.4241872260338700E-32 5.0622634593997581E-32 3.4447711250599298E-32 + 2.3393278175798025E-32 1.5853754997599624E-32 1.0722073455023070E-32 + 7.2364605998408212E-33 4.8738212524488013E-33 3.2757000192143400E-33 + 2.1969739755723520E-33 1.4703714867928718E-33 9.8198687780171876E-34 + 6.5441885578176050E-34 4.3518354064607618E-34 2.8876905994048929E-34 + 1.9119889351293199E-34 1.2631983761295130E-34 8.3272985530081417E-35 + 5.4774447074920697E-35 3.5949100644710259E-35 2.3541225218412577E-35 + 1.5381401759039182E-35 1.0027285507227247E-35 6.5220814632406735E-36 + 4.2325214286066224E-36 2.7404187345547899E-36 1.7702482987768454E-36 + 1.1408947746800187E-36 7.3357710420899399E-37 4.7057550038717856E-37 + 3.0115549578980723E-37 1.9227585384724945E-37 1.2246886438329809E-37 + 7.7819440183831925E-38 4.9329468612478443E-38 3.1194291120529827E-38 + 1.9678344072643856E-38 1.2383433936125691E-38 7.7736876121179071E-39 + 4.8678909133617717E-39 3.0407213975530155E-39 1.8946487744247926E-39 + 1.1775824024298306E-39 7.3006008125415229E-40 4.5146570002144933E-40 + 2.7847352502583438E-40 1.7132871549801574E-40 1.0513748182191682E-40 + 6.4351724385686056E-41 3.9285476286219748E-41 2.3920323681780173E-41 + 1.4526441034365344E-41 8.7983748552711475E-42 5.3148455211433956E-42 + 3.2019727840855609E-42 1.9238767961064719E-42 1.1528247745575944E-42 + 6.8892117198766971E-43 4.1057233223320604E-43 2.4401551701980658E-43 + 1.4462603928416018E-43 8.5481170741058475E-44 5.0382875974267750E-44 + 2.9612668392727922E-44 1.7355925140941665E-44 1.0143483729102707E-44 + 5.9113833585535020E-45 3.4351616174758412E-45 1.9904656954679068E-45 + 1.1500191451931959E-45 6.6250878213974972E-46 3.8054648707210257E-46 + 2.1794483579572073E-46 1.2445188622241605E-46 7.0854205412634564E-47 + 4.0219087196964219E-47 2.2761158528907976E-47 1.2842370873288060E-47 + 7.2240014195382268E-48 4.0512146605731256E-48 2.2649599150092969E-48 + 1.2623988690274965E-48 7.0143338330373376E-49 3.8852854958847694E-49 + 2.1453541360941495E-49 1.1808845529189026E-49 6.4794940749195853E-50 + 3.5439920190892383E-50 1.9322134419953956E-50 1.0500763989759139E-50 + 5.6883040937143538E-51 3.0713793734649720E-51 1.6529719254057332E-51 + 8.8668920220820589E-52 4.7407147898522666E-52 2.5262434807917922E-52 + 1.3417080382631339E-52 7.1020661047166991E-53 3.7466892288521645E-53 + 1.9698777359433104E-53 1.0321714474651376E-53 5.3898623848470148E-54 + 2.8048461253258377E-54 1.4545818374010250E-54 7.5172194554584792E-55 + 3.8713140627040677E-55 1.9867069572902990E-55 1.0159575008496943E-55 + 5.1769699663506087E-56 2.6286099431114919E-56 1.3299001340156050E-56 + 6.7041889736563347E-57 3.3674388384176404E-57 1.6852771018453885E-57 + 8.4033587858567932E-58 4.1748059136563794E-58 2.0663945649646425E-58 + 1.0190031698887668E-58 5.0062767515521669E-59 2.4503204581699201E-59 + 1.1947891622653864E-59 5.8037891936062246E-60 2.8085071063135121E-60 + 1.3538623459217042E-60 6.5012981903665230E-61 3.1098807153548151E-61 + 1.4818248970515633E-61 7.0331675356478925E-62 3.3250435114915802E-62 + 1.5657677361329808E-62 7.3439936569909980E-63 3.4308637332975790E-63 + 1.5963646855829519E-63 7.3979166283292587E-64 3.4144960179321756E-64 + 1.5695486874245394E-64 7.1853031075393798E-65 3.2758846409709618E-65 + 1.4873608399382542E-65 6.7251090726230273E-66 3.0280904981298253E-66 + 1.3577370700442862E-66 6.0621526433269433E-67 2.6952570594625472E-67 + 1.1933481030515462E-67 5.2589329087019127E-68 2.3019036740329367E-68 + 1.0031422052893697E-68 4.3522458774498251E-69 1.8798775946970576E-69 + + + 1.7562345553110250E+00 1.7562345551481595E+00 1.7562345546560558E+00 + 1.7562345538294115E+00 1.7562345526628564E+00 1.7562345511509536E+00 + 1.7562345492881970E+00 1.7562345470690119E+00 1.7562345444877552E+00 + 1.7562345415387108E+00 1.7562345382160938E+00 1.7562345345140460E+00 + 1.7562345304266367E+00 1.7562345259478607E+00 1.7562345210716388E+00 + 1.7562345157918169E+00 1.7562345101021624E+00 1.7562345039963683E+00 + 1.7562344974680475E+00 1.7562344905107343E+00 1.7562344831178842E+00 + 1.7562344752828702E+00 1.7562344669989847E+00 1.7562344582594369E+00 + 1.7562344490573529E+00 1.7562344393857734E+00 1.7562344292376542E+00 + 1.7562344186058643E+00 1.7562344074831853E+00 1.7562343958623106E+00 + 1.7562343837358427E+00 1.7562343710962953E+00 1.7562343579360902E+00 + 1.7562343442475548E+00 1.7562343300229251E+00 1.7562343152543411E+00 + 1.7562342999338474E+00 1.7562342840533911E+00 1.7562342676048215E+00 + 1.7562342505798898E+00 1.7562342329702452E+00 1.7562342147674368E+00 + 1.7562341959629102E+00 1.7562341765480078E+00 1.7562341565139674E+00 + 1.7562341358519196E+00 1.7562341145528888E+00 1.7562340926077900E+00 + 1.7562340700074290E+00 1.7562340467425006E+00 1.7562340228035866E+00 + 1.7562339981811563E+00 1.7562339728655636E+00 1.7562339468470456E+00 + 1.7562339201157231E+00 1.7562338926615977E+00 1.7562338644745508E+00 + 1.7562338355443423E+00 1.7562338058606091E+00 1.7562337754128636E+00 + 1.7562337441904938E+00 1.7562337121827589E+00 1.7562336793787907E+00 + 1.7562336457675907E+00 1.7562336113380290E+00 1.7562335760788426E+00 + 1.7562335399786342E+00 1.7562335030258707E+00 1.7562334652088807E+00 + 1.7562334265158552E+00 1.7562333869348432E+00 1.7562333464537525E+00 + 1.7562333050603465E+00 1.7562332627422432E+00 1.7562332194869141E+00 + 1.7562331752816811E+00 1.7562331301137168E+00 1.7562330839700402E+00 + 1.7562330368375183E+00 1.7562329887028612E+00 1.7562329395526222E+00 + 1.7562328893731955E+00 1.7562328381508148E+00 1.7562327858715505E+00 + 1.7562327325213092E+00 1.7562326780858304E+00 1.7562326225506864E+00 + 1.7562325659012783E+00 1.7562325081228360E+00 1.7562324492004151E+00 + 1.7562323891188960E+00 1.7562323278629799E+00 1.7562322654171894E+00 + 1.7562322017658647E+00 1.7562321368931622E+00 1.7562320707830519E+00 + 1.7562320034193168E+00 1.7562319347855486E+00 1.7562318648651474E+00 + 1.7562317936413185E+00 1.7562317210970710E+00 1.7562316472152140E+00 + 1.7562315719783574E+00 1.7562314953689064E+00 1.7562314173690610E+00 + 1.7562313379608134E+00 1.7562312571259460E+00 1.7562311748460271E+00 + 1.7562310911024124E+00 1.7562310058762380E+00 1.7562309191484218E+00 + 1.7562308308996588E+00 1.7562307411104190E+00 1.7562306497609463E+00 + 1.7562305568312540E+00 1.7562304623011227E+00 1.7562303661500993E+00 + 1.7562302683574920E+00 1.7562301689023694E+00 1.7562300677635574E+00 + 1.7562299649196358E+00 1.7562298603489366E+00 1.7562297540295404E+00 + 1.7562296459392737E+00 1.7562295360557072E+00 1.7562294243561511E+00 + 1.7562293108176530E+00 1.7562291954169964E+00 1.7562290781306953E+00 + 1.7562289589349929E+00 1.7562288378058575E+00 1.7562287147189810E+00 + 1.7562285896497736E+00 1.7562284625733628E+00 1.7562283334645892E+00 + 1.7562282022980027E+00 1.7562280690478611E+00 1.7562279336881252E+00 + 1.7562277961924562E+00 1.7562276565342121E+00 1.7562275146864443E+00 + 1.7562273706218952E+00 1.7562272243129928E+00 1.7562270757318490E+00 + 1.7562269248502556E+00 1.7562267716396800E+00 1.7562266160712627E+00 + 1.7562264581158129E+00 1.7562262977438048E+00 1.7562261349253749E+00 + 1.7562259696303169E+00 1.7562258018280783E+00 1.7562256314877578E+00 + 1.7562254585780992E+00 1.7562252830674889E+00 1.7562251049239535E+00 + 1.7562249241151506E+00 1.7562247406083713E+00 1.7562245543705313E+00 + 1.7562243653681691E+00 1.7562241735674402E+00 1.7562239789341154E+00 + 1.7562237814335735E+00 1.7562235810307987E+00 1.7562233776903762E+00 + 1.7562231713764880E+00 1.7562229620529066E+00 1.7562227496829930E+00 + 1.7562225342296907E+00 1.7562223156555203E+00 1.7562220939225783E+00 + 1.7562218689925273E+00 1.7562216408265958E+00 1.7562214093855701E+00 + 1.7562211746297922E+00 1.7562209365191519E+00 1.7562206950130850E+00 + 1.7562204500705654E+00 1.7562202016501023E+00 1.7562199497097337E+00 + 1.7562196942070207E+00 1.7562194350990443E+00 1.7562191723423985E+00 + 1.7562189058931852E+00 1.7562186357070086E+00 1.7562183617389706E+00 + 1.7562180839436639E+00 1.7562178022751682E+00 1.7562175166870422E+00 + 1.7562172271323204E+00 1.7562169335635047E+00 1.7562166359325611E+00 + 1.7562163341909121E+00 1.7562160282894304E+00 1.7562157181784348E+00 + 1.7562154038076827E+00 1.7562150851263636E+00 1.7562147620830939E+00 + 1.7562144346259092E+00 1.7562141027022600E+00 1.7562137662590029E+00 + 1.7562134252423962E+00 1.7562130795980913E+00 1.7562127292711276E+00 + 1.7562123742059252E+00 1.7562120143462780E+00 1.7562116496353464E+00 + 1.7562112800156515E+00 1.7562109054290669E+00 1.7562105258168121E+00 + 1.7562101411194457E+00 1.7562097512768573E+00 1.7562093562282601E+00 + 1.7562089559121847E+00 1.7562085502664706E+00 1.7562081392282585E+00 + 1.7562077227339827E+00 1.7562073007193642E+00 1.7562068731194018E+00 + 1.7562064398683648E+00 1.7562060008997846E+00 1.7562055561464465E+00 + 1.7562051055403824E+00 1.7562046490128613E+00 1.7562041864943820E+00 + 1.7562037179146637E+00 1.7562032432026382E+00 1.7562027622864407E+00 + 1.7562022750934012E+00 1.7562017815500366E+00 1.7562012815820400E+00 + 1.7562007751142727E+00 1.7562002620707562E+00 1.7561997423746598E+00 + 1.7561992159482949E+00 1.7561986827131024E+00 1.7561981425896471E+00 + 1.7561975954976026E+00 1.7561970413557462E+00 1.7561964800819483E+00 + 1.7561959115931602E+00 1.7561953358054059E+00 1.7561947526337707E+00 + 1.7561941619923944E+00 1.7561935637944543E+00 1.7561929579521616E+00 + 1.7561923443767469E+00 1.7561917229784498E+00 1.7561910936665099E+00 + 1.7561904563491528E+00 1.7561898109335823E+00 1.7561891573259671E+00 + 1.7561884954314300E+00 1.7561878251540362E+00 1.7561871463967822E+00 + 1.7561864590615850E+00 1.7561857630492670E+00 1.7561850582595486E+00 + 1.7561843445910315E+00 1.7561836219411899E+00 1.7561828902063572E+00 + 1.7561821492817136E+00 1.7561813990612714E+00 1.7561806394378661E+00 + 1.7561798703031393E+00 1.7561790915475302E+00 1.7561783030602582E+00 + 1.7561775047293122E+00 1.7561766964414358E+00 1.7561758780821148E+00 + 1.7561750495355632E+00 1.7561742106847078E+00 1.7561733614111763E+00 + 1.7561725015952816E+00 1.7561716311160080E+00 1.7561707498509971E+00 + 1.7561698576765321E+00 1.7561689544675241E+00 1.7561680400974953E+00 + 1.7561671144385669E+00 1.7561661773614408E+00 1.7561652287353853E+00 + 1.7561642684282197E+00 1.7561632963062983E+00 1.7561623122344938E+00 + 1.7561613160761818E+00 1.7561603076932246E+00 1.7561592869459548E+00 + 1.7561582536931566E+00 1.7561572077920518E+00 1.7561561490982804E+00 + 1.7561550774658856E+00 1.7561539927472944E+00 1.7561528947933009E+00 + 1.7561517834530480E+00 1.7561506585740096E+00 1.7561495200019732E+00 + 1.7561483675810203E+00 1.7561472011535078E+00 1.7561460205600508E+00 + 1.7561448256395009E+00 1.7561436162289308E+00 1.7561423921636101E+00 + 1.7561411532769902E+00 1.7561398994006814E+00 1.7561386303644340E+00 + 1.7561373459961185E+00 1.7561360461217037E+00 1.7561347305652382E+00 + 1.7561333991488266E+00 1.7561320516926102E+00 1.7561306880147460E+00 + 1.7561293079313836E+00 1.7561279112566441E+00 1.7561264978025979E+00 + 1.7561250673792430E+00 1.7561236197944812E+00 1.7561221548540964E+00 + 1.7561206723617304E+00 1.7561191721188603E+00 1.7561176539247763E+00 + 1.7561161175765541E+00 1.7561145628690351E+00 1.7561129895947987E+00 + 1.7561113975441403E+00 1.7561097865050443E+00 1.7561081562631609E+00 + 1.7561065066017780E+00 1.7561048373017991E+00 1.7561031481417142E+00 + 1.7561014388975749E+00 1.7560997093429682E+00 1.7560979592489885E+00 + 1.7560961883842123E+00 1.7560943965146685E+00 1.7560925834038128E+00 + 1.7560907488124984E+00 1.7560888924989477E+00 1.7560870142187257E+00 + 1.7560851137247080E+00 1.7560831907670527E+00 1.7560812450931726E+00 + 1.7560792764477036E+00 1.7560772845724748E+00 1.7560752692064772E+00 + 1.7560732300858348E+00 1.7560711669437725E+00 1.7560690795105831E+00 + 1.7560669675135980E+00 1.7560648306771538E+00 1.7560626687225593E+00 + 1.7560604813680629E+00 1.7560582683288197E+00 1.7560560293168581E+00 + 1.7560537640410450E+00 1.7560514722070526E+00 1.7560491535173215E+00 + 1.7560468076710283E+00 1.7560444343640489E+00 1.7560420332889226E+00 + 1.7560396041348145E+00 1.7560371465874836E+00 1.7560346603292389E+00 + 1.7560321450389080E+00 1.7560296003917959E+00 1.7560270260596473E+00 + 1.7560244217106102E+00 1.7560217870091930E+00 1.7560191216162275E+00 + 1.7560164251888302E+00 1.7560136973803580E+00 1.7560109378403705E+00 + 1.7560081462145885E+00 1.7560053221448519E+00 1.7560024652690771E+00 + 1.7559995752212143E+00 1.7559966516312064E+00 1.7559936941249432E+00 + 1.7559907023242183E+00 1.7559876758466846E+00 1.7559846143058109E+00 + 1.7559815173108337E+00 1.7559783844667136E+00 1.7559752153740877E+00 + 1.7559720096292231E+00 1.7559687668239699E+00 1.7559654865457119E+00 + 1.7559621683773208E+00 1.7559588118971039E+00 1.7559554166787577E+00 + 1.7559519822913170E+00 1.7559485082991018E+00 1.7559449942616701E+00 + 1.7559414397337647E+00 1.7559378442652600E+00 1.7559342074011106E+00 + 1.7559305286812974E+00 1.7559268076407735E+00 1.7559230438094104E+00 + 1.7559192367119429E+00 1.7559153858679120E+00 1.7559114907916109E+00 + 1.7559075509920261E+00 1.7559035659727811E+00 1.7558995352320785E+00 + 1.7558954582626403E+00 1.7558913345516491E+00 1.7558871635806883E+00 + 1.7558829448256805E+00 1.7558786777568278E+00 1.7558743618385486E+00 + 1.7558699965294151E+00 1.7558655812820905E+00 1.7558611155432653E+00 + 1.7558565987535910E+00 1.7558520303476164E+00 1.7558474097537211E+00 + 1.7558427363940485E+00 1.7558380096844388E+00 1.7558332290343597E+00 + 1.7558283938468382E+00 1.7558235035183911E+00 1.7558185574389549E+00 + 1.7558135549918128E+00 1.7558084955535247E+00 1.7558033784938534E+00 + 1.7557982031756911E+00 1.7557929689549858E+00 1.7557876751806649E+00 + 1.7557823211945616E+00 1.7557769063313344E+00 1.7557714299183940E+00 + 1.7557658912758205E+00 1.7557602897162881E+00 1.7557546245449815E+00 + 1.7557488950595186E+00 1.7557431005498645E+00 1.7557372402982525E+00 + 1.7557313135790980E+00 1.7557253196589158E+00 1.7557192577962328E+00 + 1.7557131272415039E+00 1.7557069272370225E+00 1.7557006570168339E+00 + 1.7556943158066449E+00 1.7556879028237355E+00 1.7556814172768660E+00 + 1.7556748583661852E+00 1.7556682252831390E+00 1.7556615172103738E+00 + 1.7556547333216443E+00 1.7556478727817151E+00 1.7556409347462638E+00 + 1.7556339183617848E+00 1.7556268227654883E+00 1.7556196470852008E+00 + 1.7556123904392622E+00 1.7556050519364257E+00 1.7555976306757539E+00 + 1.7555901257465121E+00 1.7555825362280644E+00 1.7555748611897668E+00 + 1.7555670996908574E+00 1.7555592507803499E+00 1.7555513134969212E+00 + 1.7555432868687995E+00 1.7555351699136537E+00 1.7555269616384779E+00 + 1.7555186610394748E+00 1.7555102671019436E+00 1.7555017788001579E+00 + 1.7554931950972485E+00 1.7554845149450833E+00 1.7554757372841461E+00 + 1.7554668610434134E+00 1.7554578851402289E+00 1.7554488084801807E+00 + 1.7554396299569726E+00 1.7554303484522955E+00 1.7554209628357009E+00 + 1.7554114719644667E+00 1.7554018746834650E+00 1.7553921698250310E+00 + 1.7553823562088251E+00 1.7553724326416980E+00 1.7553623979175521E+00 + 1.7553522508172010E+00 1.7553419901082292E+00 1.7553316145448505E+00 + 1.7553211228677621E+00 1.7553105138039999E+00 1.7552997860667912E+00 + 1.7552889383554051E+00 1.7552779693550042E+00 1.7552668777364904E+00 + 1.7552556621563522E+00 1.7552443212565088E+00 1.7552328536641555E+00 + 1.7552212579916011E+00 1.7552095328361113E+00 1.7551976767797444E+00 + 1.7551856883891888E+00 1.7551735662155972E+00 1.7551613087944180E+00 + 1.7551489146452295E+00 1.7551363822715647E+00 1.7551237101607422E+00 + 1.7551108967836895E+00 1.7550979405947675E+00 1.7550848400315928E+00 + 1.7550715935148564E+00 1.7550581994481411E+00 1.7550446562177393E+00 + 1.7550309621924656E+00 1.7550171157234695E+00 1.7550031151440433E+00 + 1.7549889587694336E+00 1.7549746448966452E+00 1.7549601718042440E+00 + 1.7549455377521594E+00 1.7549307409814858E+00 1.7549157797142776E+00 + 1.7549006521533450E+00 1.7548853564820477E+00 1.7548698908640867E+00 + 1.7548542534432903E+00 1.7548384423434031E+00 1.7548224556678684E+00 + 1.7548062914996119E+00 1.7547899479008193E+00 1.7547734229127145E+00 + 1.7547567145553347E+00 1.7547398208273013E+00 1.7547227397055913E+00 + 1.7547054691453050E+00 1.7546880070794300E+00 1.7546703514186042E+00 + 1.7546525000508753E+00 1.7546344508414597E+00 1.7546162016324960E+00 + 1.7545977502427974E+00 1.7545790944676023E+00 1.7545602320783198E+00 + 1.7545411608222761E+00 1.7545218784224530E+00 1.7545023825772299E+00 + 1.7544826709601180E+00 1.7544627412194940E+00 1.7544425909783292E+00 + 1.7544222178339202E+00 1.7544016193576106E+00 1.7543807930945139E+00 + 1.7543597365632311E+00 1.7543384472555690E+00 1.7543169226362496E+00 + 1.7542951601426235E+00 1.7542731571843728E+00 1.7542509111432174E+00 + 1.7542284193726132E+00 1.7542056791974519E+00 1.7541826879137523E+00 + 1.7541594427883527E+00 1.7541359410585970E+00 1.7541121799320212E+00 + 1.7540881565860305E+00 1.7540638681675809E+00 1.7540393117928499E+00 + 1.7540144845469081E+00 1.7539893834833873E+00 1.7539640056241419E+00 + 1.7539383479589115E+00 1.7539124074449739E+00 1.7538861810068005E+00 + 1.7538596655357053E+00 1.7538328578894897E+00 1.7538057548920818E+00 + 1.7537783533331781E+00 1.7537506499678746E+00 1.7537226415162990E+00 + 1.7536943246632346E+00 1.7536656960577452E+00 1.7536367523127900E+00 + 1.7536074900048422E+00 1.7535779056734941E+00 1.7535479958210680E+00 + 1.7535177569122140E+00 1.7534871853735117E+00 1.7534562775930596E+00 + 1.7534250299200667E+00 1.7533934386644370E+00 1.7533615000963507E+00 + 1.7533292104458369E+00 1.7532965659023507E+00 1.7532635626143342E+00 + 1.7532301966887842E+00 1.7531964641908071E+00 1.7531623611431728E+00 + 1.7531278835258644E+00 1.7530930272756200E+00 1.7530577882854732E+00 + 1.7530221624042872E+00 1.7529861454362843E+00 1.7529497331405686E+00 + 1.7529129212306480E+00 1.7528757053739459E+00 1.7528380811913127E+00 + 1.7528000442565270E+00 1.7527615900957998E+00 1.7527227141872612E+00 + 1.7526834119604540E+00 1.7526436787958144E+00 1.7526035100241508E+00 + 1.7525629009261146E+00 1.7525218467316672E+00 1.7524803426195419E+00 + 1.7524383837166981E+00 1.7523959650977721E+00 1.7523530817845188E+00 + 1.7523097287452536E+00 1.7522659008942811E+00 1.7522215930913234E+00 + 1.7521768001409392E+00 1.7521315167919402E+00 1.7520857377367967E+00 + 1.7520394576110412E+00 1.7519926709926645E+00 1.7519453724015037E+00 + 1.7518975562986279E+00 1.7518492170857112E+00 1.7518003491044072E+00 + 1.7517509466357091E+00 1.7517010038993104E+00 1.7516505150529511E+00 + 1.7515994741917664E+00 1.7515478753476190E+00 1.7514957124884316E+00 + 1.7514429795175099E+00 1.7513896702728577E+00 1.7513357785264874E+00 + 1.7512812979837202E+00 1.7512262222824817E+00 1.7511705449925887E+00 + 1.7511142596150300E+00 1.7510573595812378E+00 1.7509998382523539E+00 + 1.7509416889184857E+00 1.7508829047979579E+00 1.7508234790365531E+00 + 1.7507634047067449E+00 1.7507026748069279E+00 1.7506412822606323E+00 + 1.7505792199157368E+00 1.7505164805436690E+00 1.7504530568386008E+00 + 1.7503889414166329E+00 1.7503241268149736E+00 1.7502586054911062E+00 + 1.7501923698219517E+00 1.7501254121030168E+00 1.7500577245475402E+00 + 1.7499892992856274E+00 1.7499201283633739E+00 1.7498502037419816E+00 + 1.7497795172968691E+00 1.7497080608167677E+00 1.7496358260028111E+00 + 1.7495628044676170E+00 1.7494889877343547E+00 1.7494143672358082E+00 + 1.7493389343134278E+00 1.7492626802163707E+00 1.7491855961005345E+00 + 1.7491076730275787E+00 1.7490289019639380E+00 1.7489492737798222E+00 + 1.7488687792482125E+00 1.7487874090438393E+00 1.7487051537421576E+00 + 1.7486220038183060E+00 1.7485379496460582E+00 1.7484529814967640E+00 + 1.7483670895382775E+00 1.7482802638338766E+00 1.7481924943411720E+00 + 1.7481037709110017E+00 1.7480140832863187E+00 1.7479234211010659E+00 + 1.7478317738790365E+00 1.7477391310327299E+00 1.7476454818621892E+00 + 1.7475508155538308E+00 1.7474551211792619E+00 1.7473583876940848E+00 + 1.7472606039366920E+00 1.7471617586270454E+00 1.7470618403654461E+00 + 1.7469608376312915E+00 1.7468587387818204E+00 1.7467555320508423E+00 + 1.7466512055474612E+00 1.7465457472547781E+00 1.7464391450285874E+00 + 1.7463313865960559E+00 1.7462224595543927E+00 1.7461123513695027E+00 + 1.7460010493746287E+00 1.7458885407689781E+00 1.7457748126163390E+00 + 1.7456598518436801E+00 1.7455436452397384E+00 1.7454261794535908E+00 + 1.7453074409932179E+00 1.7451874162240428E+00 1.7450660913674656E+00 + 1.7449434524993819E+00 1.7448194855486798E+00 1.7446941762957313E+00 + 1.7445675103708629E+00 1.7444394732528157E+00 1.7443100502671858E+00 + 1.7441792265848544E+00 1.7440469872203979E+00 1.7439133170304866E+00 + 1.7437782007122666E+00 1.7436416228017262E+00 1.7435035676720443E+00 + 1.7433640195319264E+00 1.7432229624239233E+00 1.7430803802227324E+00 + 1.7429362566334849E+00 1.7427905751900137E+00 1.7426433192531088E+00 + 1.7424944720087525E+00 1.7423440164663384E+00 1.7421919354568760E+00 + 1.7420382116311754E+00 1.7418828274580147E+00 1.7417257652222926E+00 + 1.7415670070231613E+00 1.7414065347721450E+00 1.7412443301912330E+00 + 1.7410803748109660E+00 1.7409146499684940E+00 1.7407471368056231E+00 + 1.7405778162668417E+00 1.7404066690973263E+00 1.7402336758409309E+00 + 1.7400588168381599E+00 1.7398820722241148E+00 1.7397034219264325E+00 + 1.7395228456631926E+00 1.7393403229408169E+00 1.7391558330519423E+00 + 1.7389693550732721E+00 1.7387808678634198E+00 1.7385903500607160E+00 + 1.7383977800810106E+00 1.7382031361154460E+00 1.7380063961282122E+00 + 1.7378075378542832E+00 1.7376065387971311E+00 1.7374033762264200E+00 + 1.7371980271756797E+00 1.7369904684399577E+00 1.7367806765734504E+00 + 1.7365686278871140E+00 1.7363542984462523E+00 1.7361376640680850E+00 + 1.7359187003192931E+00 1.7356973825135429E+00 1.7354736857089890E+00 + 1.7352475847057538E+00 1.7350190540433856E+00 1.7347880679982952E+00 + 1.7345546005811689E+00 1.7343186255343601E+00 1.7340801163292572E+00 + 1.7338390461636295E+00 1.7335953879589505E+00 1.7333491143576969E+00 + 1.7331001977206253E+00 1.7328486101240266E+00 1.7325943233569552E+00 + 1.7323373089184355E+00 1.7320775380146456E+00 1.7318149815560762E+00 + 1.7315496101546652E+00 1.7312813941209106E+00 1.7310103034609563E+00 + 1.7307363078736577E+00 1.7304593767476171E+00 1.7301794791582024E+00 + 1.7298965838645333E+00 1.7296106593064497E+00 1.7293216736014509E+00 + 1.7290295945416119E+00 1.7287343895904754E+00 1.7284360258799165E+00 + 1.7281344702069854E+00 1.7278296890307225E+00 1.7275216484689488E+00 + 1.7272103142950330E+00 1.7268956519346292E+00 1.7265776264623940E+00 + 1.7262562025986736E+00 1.7259313447061699E+00 1.7256030167865748E+00 + 1.7252711824771856E+00 1.7249358050474901E+00 1.7245968473957272E+00 + 1.7242542720454221E+00 1.7239080411418959E+00 1.7235581164487455E+00 + 1.7232044593443052E+00 1.7228470308180737E+00 1.7224857914671214E+00 + 1.7221207014924691E+00 1.7217517206954391E+00 1.7213788084739849E+00 + 1.7210019238189904E+00 1.7206210253105436E+00 1.7202360711141884E+00 + 1.7198470189771438E+00 1.7194538262245029E+00 1.7190564497554039E+00 + 1.7186548460391715E+00 1.7182489711114417E+00 1.7178387805702486E+00 + 1.7174242295720963E+00 1.7170052728279965E+00 1.7165818645994890E+00 + 1.7161539586946282E+00 1.7157215084639497E+00 1.7152844667964087E+00 + 1.7148427861152951E+00 1.7143964183741238E+00 1.7139453150524957E+00 + 1.7134894271519381E+00 1.7130287051917197E+00 1.7125630992046403E+00 + 1.7120925587327955E+00 1.7116170328233165E+00 1.7111364700240907E+00 + 1.7106508183794504E+00 1.7101600254258449E+00 1.7096640381874864E+00 + 1.7091628031719701E+00 1.7086562663658773E+00 1.7081443732303501E+00 + 1.7076270686966468E+00 1.7071042971616737E+00 1.7065760024834951E+00 + 1.7060421279768239E+00 1.7055026164084872E+00 1.7049574099928755E+00 + 1.7044064503873644E+00 1.7038496786877249E+00 1.7032870354235095E+00 + 1.7027184605534138E+00 1.7021438934606319E+00 1.7015632729481780E+00 + 1.7009765372342045E+00 1.7003836239472891E+00 1.6997844701217175E+00 + 1.6991790121927379E+00 1.6985671859918079E+00 1.6979489267418206E+00 + 1.6973241690523209E+00 1.6966928469147007E+00 1.6960548936973863E+00 + 1.6954102421410098E+00 1.6947588243535685E+00 1.6941005718055728E+00 + 1.6934354153251823E+00 1.6927632850933330E+00 1.6920841106388529E+00 + 1.6913978208335703E+00 1.6907043438874139E+00 1.6900036073435050E+00 + 1.6892955380732424E+00 1.6885800622713873E+00 1.6878571054511344E+00 + 1.6871265924391867E+00 1.6863884473708270E+00 1.6856425936849839E+00 + 1.6848889541193000E+00 1.6841274507052024E+00 1.6833580047629675E+00 + 1.6825805368967985E+00 1.6817949669898986E+00 1.6810012141995543E+00 + 1.6801991969522196E+00 1.6793888329386160E+00 1.6785700391088316E+00 + 1.6777427316674385E+00 1.6769068260686186E+00 1.6760622370112988E+00 + 1.6752088784343084E+00 1.6743466635115460E+00 1.6734755046471663E+00 + 1.6725953134707874E+00 1.6717060008327154E+00 1.6708074767991936E+00 + 1.6698996506476773E+00 1.6689824308621311E+00 1.6680557251283570E+00 + 1.6671194403293488E+00 1.6661734825406809E+00 1.6652177570259310E+00 + 1.6642521682321361E+00 1.6632766197852851E+00 1.6622910144858547E+00 + 1.6612952543043864E+00 1.6602892403771057E+00 1.6592728730015860E+00 + 1.6582460516324693E+00 1.6572086748772286E+00 1.6561606404919909E+00 + 1.6551018453774107E+00 1.6540321855746083E+00 1.6529515562611656E+00 + 1.6518598517471874E+00 1.6507569654714280E+00 1.6496427899974921E+00 + 1.6485172170101035E+00 1.6473801373114521E+00 1.6462314408176206E+00 + 1.6450710165550919E+00 1.6438987526573428E+00 1.6427145363615248E+00 + 1.6415182540052384E+00 1.6403097910234044E+00 1.6390890319452300E+00 + 1.6378558603912812E+00 1.6366101590706610E+00 1.6353518097782982E+00 + 1.6340806933923473E+00 1.6327966898717117E+00 1.6314996782536846E+00 + 1.6301895366517190E+00 1.6288661422533277E+00 1.6275293713181180E+00 + 1.6261790991759668E+00 1.6248152002253371E+00 1.6234375479317487E+00 + 1.6220460148263964E+00 1.6206404725049313E+00 1.6192207916264014E+00 + 1.6177868419123655E+00 1.6163384921461763E+00 1.6148756101724444E+00 + 1.6133980628966882E+00 1.6119057162851718E+00 1.6103984353649381E+00 + 1.6088760842240462E+00 1.6073385260120137E+00 1.6057856229404726E+00 + 1.6042172362840463E+00 1.6026332263814518E+00 1.6010334526368337E+00 + 1.5994177735213360E+00 1.5977860465749238E+00 1.5961381284084528E+00 + 1.5944738747059999E+00 1.5927931402274615E+00 1.5910957788114217E+00 + 1.5893816433783086E+00 1.5876505859338312E+00 1.5859024575727199E+00 + 1.5841371084827651E+00 1.5823543879491739E+00 1.5805541443592430E+00 + 1.5787362252073611E+00 1.5769004771003514E+00 1.5750467457631576E+00 + 1.5731748760448825E+00 1.5712847119251976E+00 1.5693760965211181E+00 + 1.5674488720941626E+00 1.5655028800579087E+00 1.5635379609859421E+00 + 1.5615539546202242E+00 1.5595506998798780E+00 1.5575280348704059E+00 + 1.5554857968933484E+00 1.5534238224563994E+00 1.5513419472839782E+00 + 1.5492400063282856E+00 1.5471178337808333E+00 1.5449752630844831E+00 + 1.5428121269459836E+00 1.5406282573490360E+00 1.5384234855678873E+00 + 1.5361976421814669E+00 1.5339505570880867E+00 1.5316820595207030E+00 + 1.5293919780627663E+00 1.5270801406646626E+00 1.5247463746607668E+00 + 1.5223905067871160E+00 1.5200123631997176E+00 1.5176117694935105E+00 + 1.5151885507219862E+00 1.5127425314174907E+00 1.5102735356122181E+00 + 1.5077813868599099E+00 1.5052659082582791E+00 1.5027269224721711E+00 + 1.5001642517574769E+00 1.4975777179858156E+00 1.4949671426700013E+00 + 1.4923323469903098E+00 1.4896731518215645E+00 1.4869893777610554E+00 + 1.4842808451573044E+00 1.4815473741397032E+00 1.4787887846490346E+00 + 1.4760048964688950E+00 1.4731955292580354E+00 1.4703605025836433E+00 + 1.4674996359555792E+00 1.4646127488615863E+00 1.4616996608034947E+00 + 1.4587601913344348E+00 1.4557941600970858E+00 1.4528013868629681E+00 + 1.4497816915728126E+00 1.4467348943780098E+00 1.4436608156831761E+00 + 1.4405592761898434E+00 1.4374300969413032E+00 1.4342730993686121E+00 + 1.4310881053377962E+00 1.4278749371982598E+00 1.4246334178324322E+00 + 1.4213633707066602E+00 1.4180646199233820E+00 1.4147369902745903E+00 + 1.4113803072966236E+00 1.4079943973262783E+00 1.4045790875583042E+00 + 1.4011342061042626E+00 1.3976595820528059E+00 1.3941550455313727E+00 + 1.3906204277693395E+00 1.3870555611626414E+00 1.3834602793398885E+00 + 1.3798344172299992E+00 1.3761778111313721E+00 1.3724902987826215E+00 + 1.3687717194348965E+00 1.3650219139258082E+00 1.3612407247549865E+00 + 1.3574279961612896E+00 1.3535835742016866E+00 1.3497073068318421E+00 + 1.3457990439884144E+00 1.3418586376730994E+00 1.3378859420384381E+00 + 1.3338808134754079E+00 1.3298431107028243E+00 1.3257726948585684E+00 + 1.3216694295926676E+00 1.3175331811622439E+00 1.3133638185283587E+00 + 1.3091612134547657E+00 1.3049252406085974E+00 1.3006557776630043E+00 + 1.2963527054017645E+00 1.2920159078258813E+00 1.2876452722621934E+00 + 1.2832406894740025E+00 1.2788020537737534E+00 1.2743292631377647E+00 + 1.2698222193230382E+00 1.2652808279861572E+00 1.2607049988042887E+00 + 1.2560946455983044E+00 1.2514496864580282E+00 1.2467700438696299E+00 + 1.2420556448451641E+00 1.2373064210542823E+00 1.2325223089581001E+00 + 1.2277032499452534E+00 1.2228491904701342E+00 1.2179600821933125E+00 + 1.2130358821241514E+00 1.2080765527656159E+00 1.2030820622612726E+00 + 1.1980523845444846E+00 1.1929874994897895E+00 1.1878873930664662E+00 + 1.1827520574942798E+00 1.1775814914013878E+00 1.1723756999844086E+00 + 1.1671346951706345E+00 1.1618584957823699E+00 1.1565471277033839E+00 + 1.1512006240474464E+00 1.1458190253289404E+00 1.1404023796355092E+00 + 1.1349507428027159E+00 1.1294641785906889E+00 1.1239427588627062E+00 + 1.1183865637656918E+00 1.1127956819125737E+00 1.1071702105664685E+00 + 1.1015102558266265E+00 1.0958159328161026E+00 1.0900873658710843E+00 + 1.0843246887318199E+00 1.0785280447350756E+00 1.0726975870080593E+00 + 1.0668334786637248E+00 1.0609358929973887E+00 1.0550050136845590E+00 + 1.0490410349798955E+00 1.0430441619172020E+00 1.0370146105103439E+00 + 1.0309526079549867E+00 1.0248583928310318E+00 1.0187322153056386E+00 + 1.0125743373366947E+00 1.0063850328766017E+00 1.0001645880762262E+00 + 9.9391330148887413E-01 9.8763148427412362E-01 9.8131946040134377E-01 + 9.7497756685272952E-01 9.6860615382566106E-01 9.6220558493419539E-01 + 9.5577623740948758E-01 9.4931850229891179E-01 9.4283278466367948E-01 + 9.3631950377469964E-01 9.2977909330643826E-01 9.2321200152852212E-01 + 9.1661869149481034E-01 9.0999964122965005E-01 9.0335534391101890E-01 + 8.9668630805025318E-01 8.8999305766801429E-01 8.8327613246618542E-01 + 8.7653608799531924E-01 8.6977349581728058E-01 8.6298894366269707E-01 + 8.5618303558281483E-01 8.4935639209533931E-01 8.4250965032383462E-01 + 8.3564346413020951E-01 8.2875850423983655E-01 8.2185545835880047E-01 + 8.1493503128276379E-01 8.0799794499692179E-01 8.0104493876648697E-01 + 7.9407676921712878E-01 7.8709421040476646E-01 7.8009805387409970E-01 + 7.7308910870521252E-01 7.6606820154759769E-01 7.5903617664088996E-01 + 7.5199389582158682E-01 7.4494223851500041E-01 7.3788210171166646E-01 + 7.3081439992738839E-01 7.2374006514609024E-01 7.1666004674458395E-01 + 7.0957531139837238E-01 7.0248684296753072E-01 6.9539564236170193E-01 + 6.8830272738320042E-01 6.8120913254717708E-01 6.7411590887776629E-01 + 6.6702412367909814E-01 6.5993486028001846E-01 6.5284921775130433E-01 + 6.4576831059415807E-01 6.3869326839867369E-01 6.3162523547095994E-01 + 6.2456537042753990E-01 6.1751484575561355E-01 6.1047484733770485E-01 + 6.0344657393918899E-01 5.9643123665711084E-01 5.8943005832869855E-01 + 5.8244427289787803E-01 5.7547512473806750E-01 5.6852386792946508E-01 + 5.6159176548898460E-01 5.5468008855093842E-01 5.4779011549649870E-01 + 5.4092313102992162E-01 5.3408042519942101E-01 5.2726329236056746E-01 + 5.2047303007995716E-01 5.1371093797688216E-01 5.0697831650062275E-01 + 5.0027646564093819E-01 4.9360668356923537E-01 4.8697026520784564E-01 + 4.8036850072472648E-01 4.7380267395086600E-01 4.6727406071756267E-01 + 4.6078392711066463E-01 4.5433352763879370E-01 4.4792410331247429E-01 + 4.4155687963099416E-01 4.3523306447376570E-01 4.2895384589281377E-01 + 4.2272038980298027E-01 4.1653383756629775E-01 4.1039530346690412E-01 + 4.0430587207277358E-01 3.9826659548043575E-01 3.9227849043874796E-01 + 3.8634253534769564E-01 3.8045966712807788E-01 3.7463077795782473E-01 + 3.6885671187061370E-01 3.6313826121229831E-01 3.5747616295059309E-01 + 3.5187109483331436E-01 3.4632367139038711E-01 3.4083443977469119E-01 + 3.3540387543672839E-01 3.3003237762794385E-01 3.2472026472744930E-01 + 3.1946776938675581E-01 3.1427503348700758E-01 3.0914210290309280E-01 + 3.0406892206888669E-01 2.9905532834233312E-01 2.9410105100398437E-01 + 2.8920575959343681E-01 2.8436911555042982E-01 2.7959077704479335E-01 + 2.7487039904664745E-01 2.7020763339875964E-01 2.6560212889138246E-01 + 2.6105353133993059E-01 2.5656148366588771E-01 2.5212562598137422E-01 + 2.4774559567783533E-01 2.4342102751935488E-01 2.3915155374112781E-01 + 2.3493680415366294E-01 2.3077640625331688E-01 2.2666998533978816E-01 + 2.2261716464122186E-01 2.1861756544758829E-01 2.1467080725300502E-01 + 2.1077650790765751E-01 2.0693428377995549E-01 2.0314374992951051E-01 + 1.9940452029145680E-01 1.9571620787253710E-01 1.9207842495924971E-01 + 1.8849078333818173E-01 1.8495289452844696E-01 1.8146437002588114E-01 + 1.7802482155834251E-01 1.7463386135108436E-01 1.7129110240073483E-01 + 1.6799615875591561E-01 1.6474864580195889E-01 1.6154818054654260E-01 + 1.5839438190235627E-01 1.5528687096214522E-01 1.5222527126065827E-01 + 1.4920920901717410E-01 1.4623831335140353E-01 1.4331221646470213E-01 + 1.4043055377770633E-01 1.3759296401476789E-01 1.3479908922496589E-01 + 1.3204857472908155E-01 1.2934106898181072E-01 1.2667622333876055E-01 + 1.2405369171852294E-01 1.2147313015147995E-01 1.1893419620908434E-01 + 1.1643654831031827E-01 1.1397984490597089E-01 1.1156374354637900E-01 + 1.0918789984436325E-01 1.0685196635217577E-01 1.0455559137913992E-01 + 1.0229841778487993E-01 1.0008008179099415E-01 9.7900211860869946E-02 + 9.5758427702055254E-02 9.3654339447108353E-02 9.1587547066158154E-02 + 8.9557640056850268E-02 8.7564197444816014E-02 8.5606788110863308E-02 + 8.3684971441139594E-02 8.1798298275575360E-02 7.9946312110388398E-02 + 7.8128550494652602E-02 7.6344546550755885E-02 7.4593830544989234E-02 + 7.2875931437511157E-02 7.1190378349586511E-02 6.9536701898679110E-02 + 6.7914435366770221E-02 6.6323115682304895E-02 6.4762284209904999E-02 + 6.3231487353398730E-02 6.1730276986278927E-02 6.0258210729355756E-02 + 5.8814852098382109E-02 5.7399770545259909E-02 5.6012541415628982E-02 + 5.4652745843723510E-02 5.3319970602818276E-02 5.2013807926746786E-02 + 5.0733855315128869E-02 4.9479715332276027E-02 4.8250995407359672E-02 + 4.7047307641376983E-02 4.5868268624744274E-02 4.4713499267971961E-02 + 4.3582624646794618E-02 4.2475273862307296E-02 4.1391079916051801E-02 + 4.0329679599566966E-02 3.9290713397625097E-02 3.8273825404197992E-02 + 3.7278663250095885E-02 3.6304878041186969E-02 3.5352124306111579E-02 + 3.4420059952442808E-02 3.3508346230301668E-02 3.2616647702504574E-02 + 3.1744632220394073E-02 3.0891970904582053E-02 3.0058338129908060E-02 + 2.9243411513988474E-02 2.8446871908799382E-02 2.7668403394798622E-02 + 2.6907693277150098E-02 2.6164432083664538E-02 2.5438313564118176E-02 + 2.4729034690652005E-02 2.4036295658991860E-02 2.3359799890261896E-02 + 2.2699254033193530E-02 2.2054367966557305E-02 2.1424854801667913E-02 + 2.0810430884832108E-02 2.0210815799627330E-02 1.9625732368913199E-02 + 1.9054906656492593E-02 1.8498067968350105E-02 1.7954948853406195E-02 + 1.7425285103734790E-02 1.6908815754199794E-02 1.6405283081473238E-02 + 1.5914432602404070E-02 1.5436013071712001E-02 1.4969776478985600E-02 + 1.4515478044968659E-02 1.4072876217121905E-02 1.3641732664451161E-02 + 1.3221812271595699E-02 1.2812883132173273E-02 1.2414716541380773E-02 + 1.2027086987851371E-02 1.1649772144770915E-02 1.1282552860258118E-02 + 1.0925213147014331E-02 1.0577540171250075E-02 1.0239324240896647E-02 + 9.9103587931120615E-03 9.5904403810914939E-03 9.2793686601931637E-03 + 8.9769463733913174E-03 8.6829793360683073E-03 8.3972764201587155E-03 + 8.1196495376584694E-03 7.8499136235125160E-03 7.5878866178948961E-03 + 7.3333894478953120E-03 7.0862460086264824E-03 6.8462831437668915E-03 + 6.6133306255534924E-03 6.3872211342392883E-03 6.1677902370306306E-03 + 5.9548763665192260E-03 5.7483207986239182E-03 5.5479676300573119E-03 + 5.3536637553323538E-03 5.1652588433240164E-03 4.9826053134011767E-03 + 4.8055583111438240E-03 4.6339756836607420E-03 4.4677179545226922E-03 + 4.3066482983261916E-03 4.1506325149029020E-03 3.9995390031896273E-03 + 3.8532387347738430E-03 3.7116052271297150E-03 3.5745145165593920E-03 + 3.4418451308544555E-03 3.3134780616922419E-03 3.1892967367817462E-03 + 3.0691869917737701E-03 2.9530370419498849E-03 2.8407374537047381E-03 + 2.7321811158361672E-03 2.6272632106575269E-03 2.5258811849464976E-03 + 2.4279347207446953E-03 2.3333257060221841E-03 2.2419582052210078E-03 + 2.1537384296917202E-03 2.0685747080368272E-03 1.9863774563749215E-03 + 1.9070591485392423E-03 1.8305342862242017E-03 1.7567193690933972E-03 + 1.6855328648624304E-03 1.6168951793697484E-03 1.5507286266486116E-03 + 1.4869573990130946E-03 1.4255075371709209E-03 1.3663069003757497E-03 + 1.3092851366313435E-03 1.2543736529599184E-03 1.2015055857467374E-03 + 1.1506157711728342E-03 1.1016407157475542E-03 1.0545185669523698E-03 + 1.0091890840072122E-03 9.6559360877032240E-04 9.2367503678239169E-04 + 8.8337778846549067E-04 8.4464778048705478E-04 8.0743239729890186E-04 + 7.7168046286099233E-04 7.3734221255935932E-04 7.0436926532734694E-04 + 6.7271459597899330E-04 6.4233250776310469E-04 6.1317860514624380E-04 + 5.8520976683256007E-04 5.5838411902807070E-04 5.3266100895667300E-04 + 5.0800097863486617E-04 4.8436573891182490E-04 4.6171814378115811E-04 + 4.4002216497034916E-04 4.1924286681357546E-04 3.9934638141325788E-04 + 3.8029988409540665E-04 3.6207156916348798E-04 3.4463062595524474E-04 + 3.2794721520659157E-04 3.1199244572640531E-04 2.9673835138573621E-04 + 2.8215786842467771E-04 2.6822481307984321E-04 2.5491385953512813E-04 + 2.4220051819815781E-04 2.3006111430456068E-04 2.1847276685194600E-04 + 2.0741336786521804E-04 1.9686156199460707E-04 1.8679672644756831E-04 + 1.7719895125546195E-04 1.6804901987570371E-04 1.5932839012986115E-04 + 1.5101917547795366E-04 1.4310412662900889E-04 1.3556661348772991E-04 + 1.2839060743692927E-04 1.2156066395519866E-04 1.1506190556909716E-04 + 1.0888000513896106E-04 1.0300116947726477E-04 9.7412123298290396E-05 + 9.2100093497698884E-05 8.7052793760432822E-05 8.2258409495224633E-05 + 7.7705583093830058E-05 7.3383399512957098E-05 6.9281372176715746E-05 + 6.5389429197270843E-05 6.1697899911244890E-05 5.8197501729281465E-05 + 5.4879327296050838E-05 5.1734831957853293E-05 4.8755821534852838E-05 + 4.5934440394856268E-05 4.3263159825437657E-05 4.0734766701099032E-05 + 3.8342352442050526E-05 3.6079302261094041E-05 3.3939284694994069E-05 + 3.1916241416628642E-05 3.0004377324124690E-05 2.8198150903096347E-05 + 2.6492264858028701E-05 2.4881657008771600E-05 2.3361491448041830E-05 + 2.1927149955764029E-05 2.0574223666023656E-05 1.9298504982348076E-05 + 1.8095979736983242E-05 1.6962819589788423E-05 1.5895374662330080E-05 + 1.4890166402723206E-05 1.3943880676736030E-05 1.3053361080651148E-05 + 1.2215602471353973E-05 1.1427744709105939E-05 1.0687066608447942E-05 + 9.9909800926746320E-06 9.3370245473191238E-06 8.7228613680904737E-06 + 8.1462686987153329E-06 7.6051363541465060E-06 7.0974609246187867E-06 + 6.6213410560522461E-06 6.1749729023288804E-06 5.7566457449964106E-06 + 5.3647377759859243E-06 4.9977120389660092E-06 4.6541125249951377E-06 + 4.3325604181773670E-06 4.0317504870716918E-06 3.7504476176548403E-06 + 3.4874834836884590E-06 3.2417533503963132E-06 3.0122130074138493E-06 + 2.7978758270314919E-06 2.5978099438146061E-06 2.4111355517460840E-06 + 2.2370223151029527E-06 2.0746868893449520E-06 1.9233905483616573E-06 + 1.7824369144941907E-06 1.6511697878186545E-06 1.5289710712503890E-06 + 1.4152587881009409E-06 1.3094851887934932E-06 1.2111349435166098E-06 + 1.1197234176711220E-06 1.0347950270399964E-06 9.5592166968654727E-07 + 8.8270123166175799E-07 8.1475616367704903E-07 7.5173212597421685E-07 + 6.9329669869936512E-07 6.3913815516257566E-07 5.8896429543937925E-07 + 5.4250133784404649E-07 4.9949286587792720E-07 4.5969882832870432E-07 + 4.2289459026819300E-07 3.8887003276730340E-07 3.5742869921684577E-07 + 3.2838698621190008E-07 3.0157337702555524E-07 2.7682771576473411E-07 + 2.5400052036666966E-07 2.3295233265919695E-07 2.1355310377144975E-07 + 1.9568161324369465E-07 1.7922492024587468E-07 1.6407784537399000E-07 + 1.5014248155160889E-07 1.3732773262065088E-07 1.2554887826100589E-07 + 1.1472716393262510E-07 1.0478941458634989E-07 9.5667670940993453E-08 + 8.7298847174012934E-08 7.9624408921514615E-08 7.2590070530346035E-08 + 6.6145510550610060E-08 6.0244104501142054E-08 5.4842673983287476E-08 + 4.9901251259752734E-08 4.5382858455361224E-08 4.1253300575266478E-08 + 3.7480971573561356E-08 3.4036672741294036E-08 3.0893442717691565E-08 + 2.8026398461902475E-08 2.5412586554844744E-08 2.3030844231789692E-08 + 2.0861669576168065E-08 1.8887100333762471E-08 1.7090600833989373E-08 + 1.5456956531393435E-08 1.3972175705807035E-08 1.2623397883899387E-08 + 1.1398808568075237E-08 1.0287559880918452E-08 9.2796967546329819E-09 + 8.3660883152474702E-09 7.5383641307450391E-09 6.7888550107870627E-09 + 6.1105380633485817E-09 5.4969857303997097E-09 4.9423185407830651E-09 + 4.4411613336772045E-09 3.9886027205305625E-09 3.5801575671245654E-09 + 3.2117322905070908E-09 2.8795927779536804E-09 2.5803347468901105E-09 + 2.3108563758721206E-09 2.0683330472901697E-09 1.8501940524746848E-09 + 1.6541011193429658E-09 1.4779286316770944E-09 1.3197454175744651E-09 + 1.1777979925917630E-09 1.0504951506302241E-09 9.3639380270572627E-10 + 8.3418597043204722E-10 7.4268684733853426E-10 6.6082384706385312E-10 + 5.8762656303316806E-10 5.2221756945505167E-10 4.6380399838339293E-10 + 4.1166983219493880E-10 3.6516885515079447E-10 3.2371821175509857E-10 + 2.8679252341101523E-10 2.5391851841685542E-10 2.2467013365716639E-10 + 1.9866404943765298E-10 1.7555562180123285E-10 1.5503517935703034E-10 + 1.3682465416591391E-10 1.2067451856600463E-10 1.0636100199956849E-10 + 9.3683563928635686E-11 8.2462600809742347E-11 7.2537366847212788E-11 + 6.3764089867692310E-11 5.6014265164158493E-11 4.9173111552877068E-11 + 4.3138175178837617E-11 3.7818067800858847E-11 3.3131327393128750E-11 + 2.9005389921486808E-11 2.5375662095910953E-11 2.2184685770816940E-11 + 1.9381385466933161E-11 1.6920391227441227E-11 1.4761429701223381E-11 + 1.2868776971626412E-11 1.1210767224077159E-11 9.7593518738483565E-12 + 8.4897042597412053E-12 7.3798654536507515E-12 6.4104271429436604E-12 + 5.5642479151294398E-12 4.8261996150853950E-12 4.1829407565657388E-12 + 3.6227142541768704E-12 3.1351670015721926E-12 2.7111890582936147E-12 + 2.3427704233108119E-12 2.0228735695941476E-12 1.7453200925932466E-12 + 1.5046899877516415E-12 1.2962322195318340E-12 1.1157853781154203E-12 + 9.5970734114371246E-13 8.2481296765163389E-13 7.0831895071273096E-13 + 6.0779504517047173E-13 5.2112096802145680E-13 4.4644834231406185E-13 + 3.8216712154220711E-13 3.2687599110129505E-13 2.7935629703074125E-13 + 2.3854910054336003E-13 2.0353500023863646E-13 1.7351640287373260E-13 + 1.4780195854282016E-13 1.2579290747496303E-13 1.0697111375278245E-13 + 9.0888586396777794E-14 7.7158310743201495E-14 6.5446233130297687E-14 + 5.5464259837808217E-14 4.6964147215229213E-14 3.9732174182278131E-14 + 3.3584500968871326E-14 2.8363129243054498E-14 2.3932388799751873E-14 + 2.0175884882755641E-14 1.6993848106006390E-14 1.4300835935169269E-14 + 1.2023740883334330E-14 1.0100066052249639E-14 8.4764334908944694E-15 + 7.1072951165225325E-15 5.9538197124216517E-15 4.9829328378836520E-15 + 4.1664894096888745E-15 3.4805612858756538E-15 2.9048244419760659E-15 + 2.4220323132036229E-15 2.0175636153306705E-15 1.6790344807362855E-15 + 1.3959660797370178E-15 1.1595000634038902E-15 9.6215518265967681E-16 + 7.9761932731557128E-16 6.6057200359324815E-16 5.4653294352622007E-16 + 4.5173312676642086E-16 3.7300500562311806E-16 3.0768916723474890E-16 + 2.5355505108409760E-16 2.0873367306535033E-16 1.7166059555149626E-16 + 1.4102763215013176E-16 1.1574199112762792E-16 9.4891747255476557E-17 + 7.7716691967171273E-17 6.3583749602235863E-17 5.1966266120600727E-17 + 4.2426578583064176E-17 3.4601361168078212E-17 2.8189318496256673E-17 + 2.2940861270987902E-17 1.8649454201469800E-17 1.5144373142454650E-17 + 1.2284648480590364E-17 9.9540059883460112E-18 8.0566454903365225E-18 + 6.5137224668143281E-18 5.2604187795098087E-18 4.2435065840825504E-18 + 3.4193246546295464E-18 2.7520991875614989E-18 2.2125520171130035E-18 + 1.7767483565966073E-18 1.4251439300484972E-18 1.1417978936948999E-18 + 9.1372344999325874E-19 7.3035268626325558E-19 5.8309605937054998E-19 + 4.6498021193714195E-19 3.7035054145069368E-19 2.9462723414657563E-19 + 2.3410539085367949E-19 1.8579147165578822E-19 1.4726962063081205E-19 + 1.1659254372007152E-19 9.2192537957435184E-20 7.2809039230664971E-20 + 5.7429694049677509E-20 4.5242489996616879E-20 3.5596917732136123E-20 + 2.7972499824885531E-20 2.1953320993861633E-20 1.7207441269664892E-20 + 1.3470277007197893E-20 1.0531202064646180E-20 8.2227590112475866E-21 + 6.4119831112202385E-21 4.9934343551590388E-21 3.8836085467774240E-21 + 3.0164603666438404E-21 2.3398218816563333E-21 1.8125411815468735E-21 + 1.4021993807833085E-21 1.0832915113269205E-21 8.3577899047916912E-22 + 6.4393931799748277E-22 4.9545320981690525E-22 3.8068114564980133E-22 + 2.9209081365867865E-22 2.2380460220868648E-22 1.7124246364279434E-22 + 1.3084044145220094E-22 9.9829141058553872E-23 7.6059623596936525E-23 + 5.7866764287902074E-23 4.3962166117535377E-23 3.3350356001922452E-23 + 2.5263295625372707E-23 1.9109278336095769E-23 1.4433109801257927E-23 + 1.0885126212989630E-23 8.1971240018470490E-24 6.1636868059963655E-24 + 4.6277209583648988E-24 3.4692676833041892E-24 2.5968626855860455E-24 + 1.9408731617141178E-24 1.4483674691600400E-24 1.0791709188090948E-24 + 8.0283810375514428E-25 5.9633236056024021E-25 4.4224996056108472E-25 + 3.2746327471023595E-25 2.4208567364773013E-25 1.7868313667740563E-25 + 1.3167471176265132E-25 9.6877189218573319E-26 7.1160269387452032E-26 + 5.2185080760866189E-26 3.8207133746963418E-26 2.7927243150021567E-26 + 2.0379491749741515E-26 1.4846922856907849E-26 1.0798253054773547E-26 + 7.8404429624679938E-27 5.6832116795302189E-27 4.1125317232560273E-27 + 2.9708650704822395E-27 2.1424507762492093E-27 1.5423716542402842E-27 + 1.1084432248649878E-27 7.9520675972004471E-28 5.6948829199107682E-28 + 4.0712106754835799E-28 2.9053087012588375E-28 2.0696018016936405E-28 + 1.4716446336632899E-28 1.0445676750964429E-28 7.4008821725839473E-29 + 5.2340691419374730E-29 3.6948791353003736E-29 2.6035239032274803E-29 + 1.8311299525747900E-29 1.2854900476723711E-29 9.0075336391775203E-30 + 6.2997937747903840E-30 4.3977006171159069E-30 3.0640755765953655E-30 + 2.1308032240754872E-30 1.4789477387596520E-30 1.0245270935891969E-30 + 7.0835458450810527E-31 4.8879875498851923E-31 3.3663328067216922E-31 + 2.3138063897068382E-31 1.5872136800869752E-31 1.0866197098342955E-31 + 7.4241872260338700E-32 5.0622634593997581E-32 3.4447711250599298E-32 + 2.3393278175798025E-32 1.5853754997599624E-32 1.0722073455023070E-32 + 7.2364605998408212E-33 4.8738212524488013E-33 3.2757000192143400E-33 + 2.1969739755723520E-33 1.4703714867928718E-33 9.8198687780171876E-34 + 6.5441885578176050E-34 4.3518354064607618E-34 2.8876905994048929E-34 + 1.9119889351293199E-34 1.2631983761295130E-34 8.3272985530081417E-35 + 5.4774447074920697E-35 3.5949100644710259E-35 2.3541225218412577E-35 + 1.5381401759039182E-35 1.0027285507227247E-35 6.5220814632406735E-36 + 4.2325214286066224E-36 2.7404187345547899E-36 1.7702482987768454E-36 + 1.1408947746800187E-36 7.3357710420899399E-37 4.7057550038717856E-37 + 3.0115549578980723E-37 1.9227585384724945E-37 1.2246886438329809E-37 + 7.7819440183831925E-38 4.9329468612478443E-38 3.1194291120529827E-38 + 1.9678344072643856E-38 1.2383433936125691E-38 7.7736876121179071E-39 + 4.8678909133617717E-39 3.0407213975530155E-39 1.8946487744247926E-39 + 1.1775824024298306E-39 7.3006008125415229E-40 4.5146570002144933E-40 + 2.7847352502583438E-40 1.7132871549801574E-40 1.0513748182191682E-40 + 6.4351724385686056E-41 3.9285476286219748E-41 2.3920323681780173E-41 + 1.4526441034365344E-41 8.7983748552711475E-42 5.3148455211433956E-42 + 3.2019727840855609E-42 1.9238767961064719E-42 1.1528247745575944E-42 + 6.8892117198766971E-43 4.1057233223320604E-43 2.4401551701980658E-43 + 1.4462603928416018E-43 8.5481170741058475E-44 5.0382875974267750E-44 + 2.9612668392727922E-44 1.7355925140941665E-44 1.0143483729102707E-44 + 5.9113833585535020E-45 3.4351616174758412E-45 1.9904656954679068E-45 + 1.1500191451931959E-45 6.6250878213974972E-46 3.8054648707210257E-46 + 2.1794483579572073E-46 1.2445188622241605E-46 7.0854205412634564E-47 + 4.0219087196964219E-47 2.2761158528907976E-47 1.2842370873288060E-47 + 7.2240014195382268E-48 4.0512146605731256E-48 2.2649599150092969E-48 + 1.2623988690274965E-48 7.0143338330373376E-49 3.8852854958847694E-49 + 2.1453541360941495E-49 1.1808845529189026E-49 6.4794940749195853E-50 + 3.5439920190892383E-50 1.9322134419953956E-50 1.0500763989759139E-50 + 5.6883040937143538E-51 3.0713793734649720E-51 1.6529719254057332E-51 + 8.8668920220820589E-52 4.7407147898522666E-52 2.5262434807917922E-52 + 1.3417080382631339E-52 7.1020661047166991E-53 3.7466892288521645E-53 + 1.9698777359433104E-53 1.0321714474651376E-53 5.3898623848470148E-54 + 2.8048461253258377E-54 1.4545818374010250E-54 7.5172194554584792E-55 + 3.8713140627040677E-55 1.9867069572902990E-55 1.0159575008496943E-55 + 5.1769699663506087E-56 2.6286099431114919E-56 1.3299001340156050E-56 + 6.7041889736563347E-57 3.3674388384176404E-57 1.6852771018453885E-57 + 8.4033587858567932E-58 4.1748059136563794E-58 2.0663945649646425E-58 + 1.0190031698887668E-58 5.0062767515521669E-59 2.4503204581699201E-59 + 1.1947891622653864E-59 5.8037891936062246E-60 2.8085071063135121E-60 + 1.3538623459217042E-60 6.5012981903665230E-61 3.1098807153548151E-61 + 1.4818248970515633E-61 7.0331675356478925E-62 3.3250435114915802E-62 + 1.5657677361329808E-62 7.3439936569909980E-63 3.4308637332975790E-63 + 1.5963646855829519E-63 7.3979166283292587E-64 3.4144960179321756E-64 + 1.5695486874245394E-64 7.1853031075393798E-65 3.2758846409709618E-65 + 1.4873608399382542E-65 6.7251090726230273E-66 3.0280904981298253E-66 + 1.3577370700442862E-66 6.0621526433269433E-67 2.6952570594625472E-67 + 1.1933481030515462E-67 5.2589329087019127E-68 2.3019036740329367E-68 + 1.0031422052893697E-68 4.3522458774498251E-69 1.8798775946970576E-69 + + + 5.9714874026589246E+00 5.9714874019759216E+00 5.9714873999122515E+00 + 5.9714873964456654E+00 5.9714873915536399E+00 5.9714873852133774E+00 + 5.9714873774017860E+00 5.9714873680954899E+00 5.9714873572708198E+00 + 5.9714873449038119E+00 5.9714873309702021E+00 5.9714873154454242E+00 + 5.9714872983046066E+00 5.9714872795225675E+00 5.9714872590738146E+00 + 5.9714872369325347E+00 5.9714872130726002E+00 5.9714871874675559E+00 + 5.9714871600906170E+00 5.9714871309146718E+00 5.9714870999122747E+00 + 5.9714870670556328E+00 5.9714870323166203E+00 5.9714869956667584E+00 + 5.9714869570772189E+00 5.9714869165188214E+00 5.9714868739620233E+00 + 5.9714868293769197E+00 5.9714867827332405E+00 5.9714867340003446E+00 + 5.9714866831472131E+00 5.9714866301424490E+00 5.9714865749542696E+00 + 5.9714865175505052E+00 5.9714864578985942E+00 5.9714863959655746E+00 + 5.9714863317180855E+00 5.9714862651223584E+00 5.9714861961442107E+00 + 5.9714861247490489E+00 5.9714860509018566E+00 5.9714859745671935E+00 + 5.9714858957091836E+00 5.9714858142915253E+00 5.9714857302774691E+00 + 5.9714856436298263E+00 5.9714855543109486E+00 5.9714854622827458E+00 + 5.9714853675066566E+00 5.9714852699436598E+00 5.9714851695542617E+00 + 5.9714850662984933E+00 5.9714849601359017E+00 5.9714848510255472E+00 + 5.9714847389260006E+00 5.9714846237953321E+00 5.9714845055911079E+00 + 5.9714843842703891E+00 5.9714842597897126E+00 5.9714841321051022E+00 + 5.9714840011720511E+00 5.9714838669455217E+00 5.9714837293799334E+00 + 5.9714835884291677E+00 5.9714834440465472E+00 5.9714832961848394E+00 + 5.9714831447962524E+00 5.9714829898324169E+00 5.9714828312443924E+00 + 5.9714826689826532E+00 5.9714825029970857E+00 5.9714823332369766E+00 + 5.9714821596510141E+00 5.9714819821872718E+00 5.9714818007932111E+00 + 5.9714816154156640E+00 5.9714814260008380E+00 5.9714812324943001E+00 + 5.9714810348409735E+00 5.9714808329851241E+00 5.9714806268703651E+00 + 5.9714804164396398E+00 5.9714802016352158E+00 5.9714799823986802E+00 + 5.9714797586709309E+00 5.9714795303921653E+00 5.9714792975018804E+00 + 5.9714790599388534E+00 5.9714788176411471E+00 5.9714785705460880E+00 + 5.9714783185902718E+00 5.9714780617095435E+00 5.9714777998389978E+00 + 5.9714775329129628E+00 5.9714772608649955E+00 5.9714769836278769E+00 + 5.9714767011335965E+00 5.9714764133133471E+00 5.9714761200975159E+00 + 5.9714758214156705E+00 5.9714755171965601E+00 5.9714752073680950E+00 + 5.9714748918573459E+00 5.9714745705905266E+00 5.9714742434929944E+00 + 5.9714739104892347E+00 5.9714735715028429E+00 5.9714732264565304E+00 + 5.9714728752721085E+00 5.9714725178704704E+00 5.9714721541715958E+00 + 5.9714717840945246E+00 5.9714714075573596E+00 5.9714710244772489E+00 + 5.9714706347703768E+00 5.9714702383519542E+00 5.9714698351362081E+00 + 5.9714694250363678E+00 5.9714690079646520E+00 5.9714685838322676E+00 + 5.9714681525493871E+00 5.9714677140251453E+00 5.9714672681676175E+00 + 5.9714668148838230E+00 5.9714663540797002E+00 5.9714658856600975E+00 + 5.9714654095287623E+00 5.9714649255883341E+00 5.9714644337403220E+00 + 5.9714639338850999E+00 5.9714634259218933E+00 5.9714629097487562E+00 + 5.9714623852625754E+00 5.9714618523590453E+00 5.9714613109326553E+00 + 5.9714607608766803E+00 5.9714602020831693E+00 5.9714596344429225E+00 + 5.9714590578454878E+00 5.9714584721791368E+00 5.9714578773308640E+00 + 5.9714572731863544E+00 5.9714566596299887E+00 5.9714560365448159E+00 + 5.9714554038125387E+00 5.9714547613135069E+00 5.9714541089266930E+00 + 5.9714534465296829E+00 5.9714527739986600E+00 5.9714520912083886E+00 + 5.9714513980321939E+00 5.9714506943419527E+00 5.9714499800080763E+00 + 5.9714492548994924E+00 5.9714485188836264E+00 5.9714477718263890E+00 + 5.9714470135921589E+00 5.9714462440437597E+00 5.9714454630424543E+00 + 5.9714446704479158E+00 5.9714438661182188E+00 5.9714430499098166E+00 + 5.9714422216775205E+00 5.9714413812744942E+00 5.9714405285522174E+00 + 5.9714396633604867E+00 5.9714387855473774E+00 5.9714378949592399E+00 + 5.9714369914406760E+00 5.9714360748345134E+00 5.9714351449817968E+00 + 5.9714342017217561E+00 5.9714332448917995E+00 5.9714322743274808E+00 + 5.9714312898624904E+00 5.9714302913286224E+00 5.9714292785557666E+00 + 5.9714282513718757E+00 5.9714272096029557E+00 5.9714261530730308E+00 + 5.9714250816041332E+00 5.9714239950162762E+00 5.9714228931274365E+00 + 5.9714217757535142E+00 5.9714206427083374E+00 5.9714194938036202E+00 + 5.9714183288489426E+00 5.9714171476517324E+00 5.9714159500172332E+00 + 5.9714147357484908E+00 5.9714135046463177E+00 5.9714122565092760E+00 + 5.9714109911336521E+00 5.9714097083134270E+00 5.9714084078402543E+00 + 5.9714070895034386E+00 5.9714057530899005E+00 5.9714043983841538E+00 + 5.9714030251682830E+00 5.9714016332219195E+00 5.9714002223221936E+00 + 5.9713987922437362E+00 5.9713973427586318E+00 5.9713958736363972E+00 + 5.9713943846439497E+00 5.9713928755455843E+00 5.9713913461029353E+00 + 5.9713897960749600E+00 5.9713882252178987E+00 5.9713866332852472E+00 + 5.9713850200277330E+00 5.9713833851932741E+00 5.9713817285269553E+00 + 5.9713800497709979E+00 5.9713783486647189E+00 5.9713766249445159E+00 + 5.9713748783438181E+00 5.9713731085930606E+00 5.9713713154196562E+00 + 5.9713694985479515E+00 5.9713676576992043E+00 5.9713657925915395E+00 + 5.9713639029399266E+00 5.9713619884561311E+00 5.9713600488486929E+00 + 5.9713580838228779E+00 5.9713560930806535E+00 5.9713540763206439E+00 + 5.9713520332381007E+00 5.9713499635248599E+00 5.9713478668693067E+00 + 5.9713457429563386E+00 5.9713435914673241E+00 5.9713414120800676E+00 + 5.9713392044687703E+00 5.9713369683039819E+00 5.9713347032525812E+00 + 5.9713324089777080E+00 5.9713300851387450E+00 5.9713277313912636E+00 + 5.9713253473869949E+00 5.9713229327737674E+00 5.9713204871954826E+00 + 5.9713180102920669E+00 5.9713155016994248E+00 5.9713129610493958E+00 + 5.9713103879697131E+00 5.9713077820839517E+00 5.9713051430114943E+00 + 5.9713024703674700E+00 5.9712997637627279E+00 5.9712970228037650E+00 + 5.9712942470927013E+00 5.9712914362272214E+00 5.9712885898005208E+00 + 5.9712857074012753E+00 5.9712827886135686E+00 5.9712798330168546E+00 + 5.9712768401859115E+00 5.9712738096907776E+00 5.9712707410967081E+00 + 5.9712676339641186E+00 5.9712644878485390E+00 5.9712613023005519E+00 + 5.9712580768657393E+00 5.9712548110846386E+00 5.9712515044926704E+00 + 5.9712481566200966E+00 5.9712447669919548E+00 5.9712413351280098E+00 + 5.9712378605426917E+00 5.9712343427450323E+00 5.9712307812386136E+00 + 5.9712271755215074E+00 5.9712235250862111E+00 5.9712198294195886E+00 + 5.9712160880028113E+00 5.9712123003112927E+00 5.9712084658146267E+00 + 5.9712045839765260E+00 5.9712006542547522E+00 5.9711966761010560E+00 + 5.9711926489611109E+00 5.9711885722744462E+00 5.9711844454743739E+00 + 5.9711802679879380E+00 5.9711760392358233E+00 5.9711717586323036E+00 + 5.9711674255851648E+00 5.9711630394956314E+00 5.9711585997582999E+00 + 5.9711541057610704E+00 5.9711495568850568E+00 5.9711449525045337E+00 + 5.9711402919868473E+00 5.9711355746923447E+00 5.9711307999742997E+00 + 5.9711259671788302E+00 5.9711210756448256E+00 5.9711161247038644E+00 + 5.9711111136801325E+00 5.9711060418903559E+00 5.9711009086436961E+00 + 5.9710957132416906E+00 5.9710904549781549E+00 5.9710851331391064E+00 + 5.9710797470026726E+00 5.9710742958390117E+00 5.9710687789102215E+00 + 5.9710631954702560E+00 5.9710575447648306E+00 5.9710518260313323E+00 + 5.9710460384987396E+00 5.9710401813875178E+00 5.9710342539095338E+00 + 5.9710282552679601E+00 5.9710221846571789E+00 5.9710160412626889E+00 + 5.9710098242610083E+00 5.9710035328195756E+00 5.9709971660966517E+00 + 5.9709907232412158E+00 5.9709842033928746E+00 5.9709776056817496E+00 + 5.9709709292283790E+00 5.9709641731436118E+00 5.9709573365285031E+00 + 5.9709504184742093E+00 5.9709434180618723E+00 5.9709363343625270E+00 + 5.9709291664369708E+00 5.9709219133356655E+00 5.9709145740986269E+00 + 5.9709071477552991E+00 5.9708996333244473E+00 5.9708920298140429E+00 + 5.9708843362211432E+00 5.9708765515317745E+00 5.9708686747208075E+00 + 5.9708607047518409E+00 5.9708526405770792E+00 5.9708444811372043E+00 + 5.9708362253612552E+00 5.9708278721664962E+00 5.9708194204582918E+00 + 5.9708108691299806E+00 5.9708022170627384E+00 5.9707934631254496E+00 + 5.9707846061745746E+00 5.9707756450540082E+00 5.9707665785949491E+00 + 5.9707574056157657E+00 5.9707481249218448E+00 5.9707387353054617E+00 + 5.9707292355456323E+00 5.9707196244079679E+00 5.9707099006445343E+00 + 5.9707000629937008E+00 5.9706901101799952E+00 5.9706800409139449E+00 + 5.9706698538919367E+00 5.9706595477960560E+00 5.9706491212939294E+00 + 5.9706385730385803E+00 5.9706279016682462E+00 5.9706171058062472E+00 + 5.9706061840608013E+00 5.9705951350248734E+00 5.9705839572760055E+00 + 5.9705726493761464E+00 5.9705612098714838E+00 5.9705496372922804E+00 + 5.9705379301526893E+00 5.9705260869505912E+00 5.9705141061674034E+00 + 5.9705019862679150E+00 5.9704897257001024E+00 5.9704773228949408E+00 + 5.9704647762662262E+00 5.9704520842103843E+00 5.9704392451062906E+00 + 5.9704262573150695E+00 5.9704131191799075E+00 5.9703998290258573E+00 + 5.9703863851596433E+00 5.9703727858694569E+00 5.9703590294247624E+00 + 5.9703451140760917E+00 5.9703310380548329E+00 5.9703167995730331E+00 + 5.9703023968231843E+00 5.9702878279780052E+00 5.9702730911902373E+00 + 5.9702581845924199E+00 5.9702431062966754E+00 5.9702278543944907E+00 + 5.9702124269564836E+00 5.9701968220321842E+00 5.9701810376498106E+00 + 5.9701650718160240E+00 5.9701489225157083E+00 5.9701325877117313E+00 + 5.9701160653446967E+00 5.9700993533327145E+00 5.9700824495711551E+00 + 5.9700653519323970E+00 5.9700480582655802E+00 5.9700305663963595E+00 + 5.9700128741266445E+00 5.9699949792343441E+00 5.9699768794731050E+00 + 5.9699585725720530E+00 5.9699400562355223E+00 5.9699213281427941E+00 + 5.9699023859478126E+00 5.9698832272789266E+00 5.9698638497386014E+00 + 5.9698442509031402E+00 5.9698244283224042E+00 5.9698043795195259E+00 + 5.9697841019906130E+00 5.9697635932044637E+00 5.9697428506022696E+00 + 5.9697218715973159E+00 5.9697006535746766E+00 5.9696791938909124E+00 + 5.9696574898737627E+00 5.9696355388218301E+00 5.9696133380042715E+00 + 5.9695908846604695E+00 5.9695681759997203E+00 5.9695452092009020E+00 + 5.9695219814121465E+00 5.9694984897505119E+00 5.9694747313016361E+00 + 5.9694507031194082E+00 5.9694264022256167E+00 5.9694018256096060E+00 + 5.9693769702279260E+00 5.9693518330039712E+00 5.9693264108276365E+00 + 5.9693007005549399E+00 5.9692746990076584E+00 5.9692484029729682E+00 + 5.9692218092030584E+00 5.9691949144147607E+00 5.9691677152891645E+00 + 5.9691402084712273E+00 5.9691123905693892E+00 5.9690842581551760E+00 + 5.9690558077627998E+00 5.9690270358887556E+00 5.9689979389914143E+00 + 5.9689685134906130E+00 5.9689387557672324E+00 5.9689086621627787E+00 + 5.9688782289789639E+00 5.9688474524772648E+00 5.9688163288784999E+00 + 5.9687848543623803E+00 5.9687530250670715E+00 5.9687208370887408E+00 + 5.9686882864811102E+00 5.9686553692549893E+00 5.9686220813778146E+00 + 5.9685884187731855E+00 5.9685543773203884E+00 5.9685199528539110E+00 + 5.9684851411629749E+00 5.9684499379910241E+00 5.9684143390352560E+00 + 5.9683783399461019E+00 5.9683419363267278E+00 5.9683051237325317E+00 + 5.9682678976706214E+00 5.9682302535992884E+00 5.9681921869274923E+00 + 5.9681536930143206E+00 5.9681147671684496E+00 5.9680754046476050E+00 + 5.9680356006580135E+00 5.9679953503538377E+00 5.9679546488366233E+00 + 5.9679134911547278E+00 5.9678718723027462E+00 5.9678297872209338E+00 + 5.9677872307946176E+00 5.9677441978536008E+00 5.9677006831715715E+00 + 5.9676566814654901E+00 5.9676121873949830E+00 5.9675671955617196E+00 + 5.9675217005087902E+00 5.9674756967200739E+00 5.9674291786195974E+00 + 5.9673821405708951E+00 5.9673345768763504E+00 5.9672864817765419E+00 + 5.9672378494495755E+00 5.9671886740104059E+00 5.9671389495101668E+00 + 5.9670886699354710E+00 5.9670378292077224E+00 5.9669864211824102E+00 + 5.9669344396483988E+00 5.9668818783272197E+00 5.9668287308723205E+00 + 5.9667749908683616E+00 5.9667206518304523E+00 5.9666657072034184E+00 + 5.9666101503610287E+00 5.9665539746052421E+00 5.9664971731654335E+00 + 5.9664397391975976E+00 5.9663816657835804E+00 5.9663229459302629E+00 + 5.9662635725687654E+00 5.9662035385536232E+00 5.9661428366619633E+00 + 5.9660814595926821E+00 5.9660193999655862E+00 5.9659566503205514E+00 + 5.9658932031166598E+00 5.9658290507313314E+00 5.9657641854594479E+00 + 5.9656985995124527E+00 5.9656322850174650E+00 5.9655652340163723E+00 + 5.9654974384649044E+00 5.9654288902317116E+00 5.9653595810974300E+00 + 5.9652895027537296E+00 5.9652186468023656E+00 5.9651470047541988E+00 + 5.9650745680282293E+00 5.9650013279506036E+00 5.9649272757536176E+00 + 5.9648524025747056E+00 5.9647766994554177E+00 5.9647001573403982E+00 + 5.9646227670763388E+00 5.9645445194109179E+00 5.9644654049917509E+00 + 5.9643854143653030E+00 5.9643045379758073E+00 5.9642227661641645E+00 + 5.9641400891668370E+00 5.9640564971147194E+00 5.9639719800320083E+00 + 5.9638865278350552E+00 5.9638001303312116E+00 5.9637127772176539E+00 + 5.9636244580801980E+00 5.9635351623921098E+00 5.9634448795128971E+00 + 5.9633535986870765E+00 5.9632613090429523E+00 5.9631679995913576E+00 + 5.9630736592244125E+00 5.9629782767142192E+00 5.9628818407116029E+00 + 5.9627843397447915E+00 5.9626857622181113E+00 5.9625860964106527E+00 + 5.9624853304749248E+00 5.9623834524355006E+00 5.9622804501876452E+00 + 5.9621763114959254E+00 5.9620710239928103E+00 5.9619645751772499E+00 + 5.9618569524132576E+00 5.9617481429284442E+00 5.9616381338125715E+00 + 5.9615269120160574E+00 5.9614144643485050E+00 5.9613007774771738E+00 + 5.9611858379254645E+00 5.9610696320713714E+00 5.9609521461459289E+00 + 5.9608333662316371E+00 5.9607132782608661E+00 5.9605918680142542E+00 + 5.9604691211190755E+00 5.9603450230476067E+00 5.9602195591154565E+00 + 5.9600927144798979E+00 5.9599644741381672E+00 5.9598348229257576E+00 + 5.9597037455146724E+00 5.9595712264116960E+00 5.9594372499566166E+00 + 5.9593018003204294E+00 5.9591648615035506E+00 5.9590264173339760E+00 + 5.9588864514654434E+00 5.9587449473755729E+00 5.9586018883639760E+00 + 5.9584572575503598E+00 5.9583110378725923E+00 5.9581632120847710E+00 + 5.9580137627552539E+00 5.9578626722646710E+00 5.9577099228039296E+00 + 5.9575554963721675E+00 5.9573993747747247E+00 5.9572415396210623E+00 + 5.9570819723226753E+00 5.9569206540909709E+00 5.9567575659351411E+00 + 5.9565926886600051E+00 5.9564260028638127E+00 5.9562574889360578E+00 + 5.9560871270552411E+00 5.9559148971866183E+00 5.9557407790799317E+00 + 5.9555647522671027E+00 5.9553867960599156E+00 5.9552068895476644E+00 + 5.9550250115947918E+00 5.9548411408384734E+00 5.9546552556862125E+00 + 5.9544673343133825E+00 5.9542773546607632E+00 5.9540852944320264E+00 + 5.9538911310912219E+00 5.9536948418602220E+00 5.9534964037161444E+00 + 5.9532957933887412E+00 5.9530929873577705E+00 5.9528879618503332E+00 + 5.9526806928381815E+00 5.9524711560350134E+00 5.9522593268937074E+00 + 5.9520451806035677E+00 5.9518286920875116E+00 5.9516098359992355E+00 + 5.9513885867203582E+00 5.9511649183575255E+00 5.9509388047394873E+00 + 5.9507102194141472E+00 5.9504791356455806E+00 5.9502455264110097E+00 + 5.9500093643977756E+00 5.9497706220002371E+00 5.9495292713166821E+00 + 5.9492852841461703E+00 5.9490386319853688E+00 5.9487892860253346E+00 + 5.9485372171482762E+00 5.9482823959242817E+00 5.9480247926080034E+00 + 5.9477643771353197E+00 5.9475011191199529E+00 5.9472349878500532E+00 + 5.9469659522847538E+00 5.9466939810506894E+00 5.9464190424384640E+00 + 5.9461411043990999E+00 5.9458601345404460E+00 5.9455761001235388E+00 + 5.9452889680589429E+00 5.9449987049030293E+00 5.9447052768542434E+00 + 5.9444086497493140E+00 5.9441087890594284E+00 5.9438056598863787E+00 + 5.9434992269586422E+00 5.9431894546274551E+00 5.9428763068628161E+00 + 5.9425597472494678E+00 5.9422397389828348E+00 5.9419162448649026E+00 + 5.9415892273000717E+00 5.9412586482909759E+00 5.9409244694342274E+00 + 5.9405866519161483E+00 5.9402451565084471E+00 5.9398999435638391E+00 + 5.9395509730116540E+00 5.9391982043533504E+00 5.9388415966580332E+00 + 5.9384811085578990E+00 5.9381166982436282E+00 5.9377483234597559E+00 + 5.9373759414999689E+00 5.9369995092023773E+00 5.9366189829447151E+00 + 5.9362343186395119E+00 5.9358454717292020E+00 5.9354523971811988E+00 + 5.9350550494828909E+00 5.9346533826366237E+00 5.9342473501545996E+00 + 5.9338369050537461E+00 5.9334219998505162E+00 5.9330025865556539E+00 + 5.9325786166688843E+00 5.9321500411735730E+00 5.9317168105313147E+00 + 5.9312788746764751E+00 5.9308361830106762E+00 5.9303886843972204E+00 + 5.9299363271554677E+00 5.9294790590551525E+00 5.9290168273106367E+00 + 5.9285495785751134E+00 5.9280772589347528E+00 5.9275998139027744E+00 + 5.9271171884134848E+00 5.9266293268162338E+00 5.9261361728693185E+00 + 5.9256376697338231E+00 5.9251337599674079E+00 5.9246243855180172E+00 + 5.9241094877175389E+00 5.9235890072754067E+00 5.9230628842721078E+00 + 5.9225310581526642E+00 5.9219934677200241E+00 5.9214500511283958E+00 + 5.9209007458765130E+00 5.9203454888008409E+00 5.9197842160686962E+00 + 5.9192168631713251E+00 5.9186433649168908E+00 5.9180636554234027E+00 + 5.9174776681115713E+00 5.9168853356975948E+00 5.9162865901858748E+00 + 5.9156813628616556E+00 5.9150695842836054E+00 5.9144511842762988E+00 + 5.9138260919226537E+00 5.9131942355562765E+00 5.9125555427537337E+00 + 5.9119099403267583E+00 5.9112573543143663E+00 5.9105977099749065E+00 + 5.9099309317780309E+00 5.9092569433965840E+00 5.9085756676984094E+00 + 5.9078870267380923E+00 5.9071909417486017E+00 5.9064873331328727E+00 + 5.9057761204552826E+00 5.9050572224330731E+00 5.9043305569276674E+00 + 5.9035960409359101E+00 5.9028535905812261E+00 5.9021031211047026E+00 + 5.9013445468560564E+00 5.9005777812845546E+00 5.8998027369298098E+00 + 5.8990193254125218E+00 5.8982274574251061E+00 5.8974270427222439E+00 + 5.8966179901113422E+00 5.8958002074428997E+00 5.8949736016007863E+00 + 5.8941380784924258E+00 5.8932935430388929E+00 5.8924398991649047E+00 + 5.8915770497887321E+00 5.8907048968120108E+00 5.8898233411094481E+00 + 5.8889322825184571E+00 5.8880316198286611E+00 5.8871212507713242E+00 + 5.8862010720086859E+00 5.8852709791231774E+00 5.8843308666065521E+00 + 5.8833806278489158E+00 5.8824201551276438E+00 5.8814493395962133E+00 + 5.8804680712729169E+00 5.8794762390294855E+00 5.8784737305796009E+00 + 5.8774604324673003E+00 5.8764362300552868E+00 5.8754010075131164E+00 + 5.8743546478052950E+00 5.8732970326792584E+00 5.8722280426532460E+00 + 5.8711475570040639E+00 5.8700554537547447E+00 5.8689516096620844E+00 + 5.8678359002040796E+00 5.8667081995672534E+00 5.8655683806338530E+00 + 5.8644163149689517E+00 5.8632518728074317E+00 5.8620749230408444E+00 + 5.8608853332041688E+00 5.8596829694624422E+00 5.8584676965972777E+00 + 5.8572393779932659E+00 5.8559978756242623E+00 5.8547430500395468E+00 + 5.8534747603498669E+00 5.8521928642133716E+00 5.8508972178214016E+00 + 5.8495876758841909E+00 5.8482640916164090E+00 5.8469263167226089E+00 + 5.8455742013825507E+00 5.8442075942363729E+00 5.8428263423696807E+00 + 5.8414302912984795E+00 5.8400192849539891E+00 5.8385931656673460E+00 + 5.8371517741541563E+00 5.8356949494989445E+00 5.8342225291394527E+00 + 5.8327343488508383E+00 5.8312302427297116E+00 5.8297100431780748E+00 + 5.8281735808871034E+00 5.8266206848208277E+00 5.8250511821996556E+00 + 5.8234648984837847E+00 5.8218616573564672E+00 5.8202412807071635E+00 + 5.8186035886145380E+00 5.8169483993293536E+00 5.8152755292572005E+00 + 5.8135847929411186E+00 5.8118760030440750E+00 5.8101489703313041E+00 + 5.8084035036525288E+00 5.8066394099240295E+00 5.8048564941105969E+00 + 5.8030545592073324E+00 5.8012334062213338E+00 5.7993928341532275E+00 + 5.7975326399785754E+00 5.7956526186291635E+00 5.7937525629741140E+00 + 5.7918322638008970E+00 5.7898915097962140E+00 5.7879300875267079E+00 + 5.7859477814195763E+00 5.7839443737430329E+00 5.7819196445866368E+00 + 5.7798733718414903E+00 5.7778053311803008E+00 5.7757152960373146E+00 + 5.7736030375881038E+00 5.7714683247292431E+00 5.7693109240578275E+00 + 5.7671305998508888E+00 5.7649271140446414E+00 5.7627002262136449E+00 + 5.7604496935497931E+00 5.7581752708411953E+00 5.7558767104509316E+00 + 5.7535537622956712E+00 5.7512061738241638E+00 5.7488336899956032E+00 + 5.7464360532578791E+00 5.7440130035256827E+00 5.7415642781585090E+00 + 5.7390896119385246E+00 5.7365887370483160E+00 5.7340613830485214E+00 + 5.7315072768553375E+00 5.7289261427179223E+00 5.7263177021956571E+00 + 5.7236816741353360E+00 5.7210177746481792E+00 5.7183257170868078E+00 + 5.7156052120220551E+00 5.7128559672196859E+00 5.7100776876170265E+00 + 5.7072700752994638E+00 5.7044328294768700E+00 5.7015656464599003E+00 + 5.6986682196362164E+00 5.6957402394466063E+00 5.6927813933610079E+00 + 5.6897913658544415E+00 5.6867698383828822E+00 5.6837164893589929E+00 + 5.6806309941278421E+00 5.6775130249424928E+00 5.6743622509395282E+00 + 5.6711783381145278E+00 5.6679609492974476E+00 5.6647097441279444E+00 + 5.6614243790306498E+00 5.6581045071903580E+00 5.6547497785272007E+00 + 5.6513598396717271E+00 5.6479343339399772E+00 5.6444729013084851E+00 + 5.6409751783892679E+00 5.6374407984047616E+00 5.6338693911627384E+00 + 5.6302605830312142E+00 5.6266139969133127E+00 5.6229292522221419E+00 + 5.6192059648556389E+00 5.6154437471714482E+00 5.6116422079617561E+00 + 5.6078009524281915E+00 5.6039195821566956E+00 5.5999976950924424E+00 + 5.5960348855147775E+00 5.5920307440121970E+00 5.5879848574573741E+00 + 5.5838968089822263E+00 5.5797661779530454E+00 5.5755925399457009E+00 + 5.5713754667209052E+00 5.5671145261995649E+00 5.5628092824382289E+00 + 5.5584592956046182E+00 5.5540641219532931E+00 5.5496233138013995E+00 + 5.5451364195045736E+00 5.5406029834329651E+00 5.5360225459474162E+00 + 5.5313946433757852E+00 5.5267188079894485E+00 5.5219945679799736E+00 + 5.5172214474359826E+00 5.5123989663202231E+00 5.5075266404468302E+00 + 5.5026039814588446E+00 5.4976304968059404E+00 5.4926056897224083E+00 + 5.4875290592054213E+00 5.4824000999935452E+00 5.4772183025455687E+00 + 5.4719831530196110E+00 5.4666941332525818E+00 5.4613507207399472E+00 + 5.4559523886158523E+00 5.4504986056336220E+00 5.4449888361466323E+00 + 5.4394225400895868E+00 5.4337991729602013E+00 5.4281181858013419E+00 + 5.4223790251835897E+00 5.4165811331882994E+00 5.4107239473911362E+00 + 5.4048069008461228E+00 5.3988294220702278E+00 5.3927909350284837E+00 + 5.3866908591197067E+00 5.3805286091627851E+00 5.3743035953835978E+00 + 5.3680152234025664E+00 5.3616628942228699E+00 5.3552460042193628E+00 + 5.3487639451281783E+00 5.3422161040370879E+00 5.3356018633766231E+00 + 5.3289206009119816E+00 5.3221716897357476E+00 5.3153544982614847E+00 + 5.3084683902181542E+00 5.3015127246454945E+00 5.2944868558902920E+00 + 5.2873901336036342E+00 5.2802219027391617E+00 5.2729815035523515E+00 + 5.2656682716008509E+00 5.2582815377459236E+00 5.2508206281550223E+00 + 5.2432848643055285E+00 5.2356735629897040E+00 5.2279860363208730E+00 + 5.2202215917409012E+00 5.2123795320289856E+00 5.2044591553118140E+00 + 5.1964597550751170E+00 5.1883806201766731E+00 5.1802210348608133E+00 + 5.1719802787744324E+00 5.1636576269846097E+00 5.1552523499978360E+00 + 5.1467637137809232E+00 5.1381909797836363E+00 5.1295334049630954E+00 + 5.1207902418100089E+00 5.1119607383767791E+00 5.1030441383075358E+00 + 5.0940396808701678E+00 5.0849466009903788E+00 5.0757641292878626E+00 + 5.0664914921146265E+00 5.0571279115955301E+00 5.0476726056711207E+00 + 5.0381247881427980E+00 5.0284836687203969E+00 5.0187484530722388E+00 + 5.0089183428777400E+00 4.9989925358826088E+00 4.9889702259567441E+00 + 4.9788506031548954E+00 4.9686328537801252E+00 4.9583161604502024E+00 + 4.9478997021669722E+00 4.9373826543887773E+00 4.9267641891060459E+00 + 4.9160434749200714E+00 4.9052196771251300E+00 4.8942919577940023E+00 + 4.8832594758669412E+00 4.8721213872442659E+00 4.8608768448825872E+00 + 4.8495249988948110E+00 4.8380649966540048E+00 4.8264959829012284E+00 + 4.8148170998573994E+00 4.8030274873393504E+00 4.7911262828801426E+00 + 4.7791126218537610E+00 4.7669856376042796E+00 4.7547444615796550E+00 + 4.7423882234702113E+00 4.7299160513519638E+00 4.7173270718348919E+00 + 4.7046204102162896E+00 4.6917951906393212E+00 4.6788505362568804E+00 + 4.6657855694009394E+00 4.6525994117574614E+00 4.6392911845470559E+00 + 4.6258600087114878E+00 4.6123050051062187E+00 4.5986252946990618E+00 + 4.5848199987751617E+00 4.5708882391484407E+00 4.5568291383796069E+00 + 4.5426418200009673E+00 4.5283254087481355E+00 4.5138790307988419E+00 + 4.4993018140189998E+00 4.4845928882161692E+00 4.4697513854006559E+00 + 4.4547764400543626E+00 4.4396671894076007E+00 4.4244227737240465E+00 + 4.4090423365940312E+00 4.3935250252363360E+00 4.3778699908087253E+00 + 4.3620763887273890E+00 4.3461433789954951E+00 4.3300701265410826E+00 + 4.3138558015644968E+00 4.2974995798955682E+00 4.2810006433607759E+00 + 4.2643581801606079E+00 4.2475713852573449E+00 4.2306394607735145E+00 + 4.2135616164012264E+00 4.1963370698226630E+00 4.1789650471419382E+00 + 4.1614447833286086E+00 4.1437755226730593E+00 4.1259565192540357E+00 + 4.1079870374186163E+00 4.0898663522748242E+00 4.0715937501972421E+00 + 4.0531685293458226E+00 4.0345900001982384E+00 4.0158574860960359E+00 + 3.9969703238048866E+00 3.9779278640892377E+00 3.9587294723016750E+00 + 3.9393745289872744E+00 3.9198624305033105E+00 3.9001925896545830E+00 + 3.8803644363447258E+00 3.8603774182438078E+00 3.8402310014725827E+00 + 3.8199246713036845E+00 3.7994579328801761E+00 3.7788303119517463E+00 + 3.7580413556289316E+00 3.7370906331557543E+00 3.7159777367010758E+00 + 3.6947022821691129E+00 3.6732639100294455E+00 3.6516622861669146E+00 + 3.6298971027518023E+00 3.6079680791306843E+00 3.5858749627383517E+00 + 3.5636175300312223E+00 3.5411955874426133E+00 3.5186089723603429E+00 + 3.4958575541270478E+00 3.4729412350636450E+00 3.4498599515163733E+00 + 3.4266136749278582E+00 3.4032024129326284E+00 3.3796262104775434E+00 + 3.3558851509675489E+00 3.3319793574372696E+00 3.3079089937488564E+00 + 3.2836742658165572E+00 3.2592754228585070E+00 3.2347127586761641E+00 + 3.2099866129619148E+00 3.1850973726352905E+00 3.1600454732083176E+00 + 3.1348314001804263E+00 3.1094556904634816E+00 3.0839189338373769E+00 + 3.0582217744367077E+00 3.0323649122690126E+00 3.0063491047650825E+00 + 2.9801751683618458E+00 2.9538439801183412E+00 2.9273564793652236E+00 + 2.9007136693884008E+00 2.8739166191472232E+00 2.8469664650277697E+00 + 2.8198644126317243E+00 2.7926117386013352E+00 2.7652097924809755E+00 + 2.7376599986157797E+00 2.7099638580878813E+00 2.6821229506906823E+00 + 2.6541389369417221E+00 2.6260135601345604E+00 2.5977486484301822E+00 + 2.5693461169883829E+00 2.5408079701396007E+00 2.5121363035976376E+00 + 2.4833333067137517E+00 2.4544012647724736E+00 2.4253425613296762E+00 + 2.3961596805932346E+00 2.3668552098466917E+00 2.3374318419163278E+00 + 2.3078923776819931E+00 2.2782397286320548E+00 2.2484769194627821E+00 + 2.2186070907225361E+00 2.1886335015009508E+00 2.1585595321635047E+00 + 2.1283886871316393E+00 2.0981245977086784E+00 2.0677710249517438E+00 + 2.0373318625898218E+00 2.0068111399881152E+00 1.9762130251588155E+00 + 1.9455418278182715E+00 1.9148020024906920E+00 1.8839981516582975E+00 + 1.8531350289578834E+00 1.8222175424237035E+00 1.7912507577765240E+00 + 1.7602399017586390E+00 1.7291903655146179E+00 1.6981077080174785E+00 + 1.6669976595398794E+00 1.6358661251699722E+00 1.6047191883713798E+00 + 1.5735631145867406E+00 1.5424043548842021E+00 1.5112495496461436E+00 + 1.4801055322993346E+00 1.4489793330856910E+00 1.4178781828725808E+00 + 1.3868095170017389E+00 1.3557809791755471E+00 1.3248004253794579E+00 + 1.2938759278392069E+00 1.2630157790113250E+00 1.2322284956053511E+00 + 1.2015228226360466E+00 1.1709077375037724E+00 1.1403924541009807E+00 + 1.1099864269428050E+00 1.0796993553193870E+00 1.0495411874675600E+00 + 1.0195221247592798E+00 9.8965262590406355E-01 9.5994341116248316E-01 + 9.3040546656763090E-01 9.0105004815117495E-01 8.7188868617058657E-01 + 8.4293318933375094E-01 8.1419564901704899E-01 7.8568844347272893E-01 + 7.5742424202118541E-01 7.2941600922347205E-01 7.0167700902914698E-01 + 6.7422080889429725E-01 6.4706128386421302E-01 6.2021262061507365E-01 + 5.9368932144848585E-01 5.6750620823259412E-01 5.4167842628302287E-01 + 5.1622144817663140E-01 4.9115107749069392E-01 4.6648345245978551E-01 + 4.4223504954216014E-01 4.1842268688717654E-01 3.9506352769478920E-01 + 3.7217508345772116E-01 3.4977521707653308E-01 3.2788214583730246E-01 + 3.0651444424116375E-01 2.8569104667447687E-01 2.6543124990782002E-01 + 2.4575471541158947E-01 2.2668147147530004E-01 2.0823191511721809E-01 + 1.9042681377029480E-01 1.7328730672980791E-01 1.5683490634744976E-01 + 1.4109149895595630E-01 1.2607934550772598E-01 1.1182108191009194E-01 + 9.8339719039300208E-02 8.5658642414389613E-02 7.3801611511476087E-02 + 6.2792758698084081E-02 5.2656587766399351E-02 4.3417972043389846E-02 + 3.5102152054955676E-02 2.7734732720273134E-02 2.1341680051609621E-02 + 1.5949317333905696E-02 1.1584320757447987E-02 8.2737144758679715E-03 + 6.0448650607257560E-03 4.9263265322255830E-03 4.3871116580353553E-03 + 3.8961646512055974E-03 3.4399543303327658E-03 3.0205793421999435E-03 + 2.6364597753604554E-03 2.2860368746985410E-03 1.9677700609704190E-03 + 1.6801338499840930E-03 1.4216146169089821E-03 1.1907072756739195E-03 + 9.8591183135823303E-04 8.0572988397568793E-04 6.4866105015777195E-04 + 5.1319938998094802E-04 3.9782985166591969E-04 3.0102478704316409E-04 + 2.2124063573811039E-04 1.5691480148904020E-04 1.0646287004257193E-04 + 6.8276245299956313E-05 4.0720338552580301E-05 2.2133464794930801E-05 + 1.0826608207062760E-05 5.0842334680890556E-06 3.1663808392937340E-06 + 3.3122362489003380E-06 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + -6.4168073135270145E+00 -6.4459857818531612E+00 -6.4447245685859782E+00 + -6.4439068612524375E+00 -6.4432701234506906E+00 -6.4114060948500633E+00 + -6.4091401940448351E+00 -6.4096717244683665E+00 -6.4089875791035755E+00 + -6.4085984945194854E+00 -6.4082510038277629E+00 -6.4078897944319371E+00 + -6.4075530736938635E+00 -6.4072219192826898E+00 -6.4069002520357934E+00 + -6.4065858254936154E+00 -6.4062772823686869E+00 -6.4059740517274877E+00 + -6.4056752544915643E+00 -6.4053803321882050E+00 -6.4050887585406926E+00 + -6.4048000904278499E+00 -6.4045139500951711E+00 -6.4042300057694534E+00 + -6.4039479692356513E+00 -6.4036675863557475E+00 -6.4033886323749307E+00 + -6.4031109073970409E+00 -6.4028342326898358E+00 -6.4025584477533997E+00 + -6.4022834078108168E+00 -6.4020089817434638E+00 -6.4017350503458665E+00 + -6.4014615048505155E+00 -6.4011882456743940E+00 -6.4009151813468268E+00 + -6.4006422275891035E+00 -6.4003693065203073E+00 -6.4000963459693736E+00 + -6.3998232788766574E+00 -6.3995500427713656E+00 -6.3992765793137369E+00 + -6.3990028338924301E+00 -6.3987287552693681E+00 -6.3984542952654841E+00 + -6.3981794084818819E+00 -6.3979040520516142E+00 -6.3976281854182453E+00 + -6.3973517701377363E+00 -6.3970747697007830E+00 -6.3967971493731044E+00 + -6.3965188760515792E+00 -6.3962399181343539E+00 -6.3959602454033417E+00 + -6.3956798289176566E+00 -6.3953986409169028E+00 -6.3951166547331075E+00 + -6.3948338447104973E+00 -6.3945501861322063E+00 -6.3942656551532595E+00 + -6.3939802287392107E+00 -6.3936938846097791E+00 -6.3934066011871291E+00 + -6.3931183575482358E+00 -6.3928291333810110E+00 -6.3925389089438065E+00 + -6.3922476650280107E+00 -6.3919553829234532E+00 -6.3916620443863303E+00 + -6.3913676316094987E+00 -6.3910721271948718E+00 -6.3907755141277551E+00 + -6.3904777757530082E+00 -6.3901788957527694E+00 -6.3898788581257531E+00 + -6.3895776471678758E+00 -6.3892752474541661E+00 -6.3889716438218693E+00 + -6.3886668213545938E+00 -6.3883607653674632E+00 -6.3880534613932207E+00 + -6.3877448951691322E+00 -6.3874350526247321E+00 -6.3871239198702572E+00 + -6.3868114831857969E+00 -6.3864977290110332E+00 -6.3861826439356122E+00 + -6.3858662146900187E+00 -6.3855484281369925E+00 -6.3852292712633902E+00 + -6.3849087311725272E+00 -6.3845867950768715E+00 -6.3842634502911828E+00 + -6.3839386842259787E+00 -6.3836124843813513E+00 -6.3832848383410798E+00 + -6.3829557337670595E+00 -6.3826251583940117E+00 -6.3822931000244179E+00 + -6.3819595465237491E+00 -6.3816244858158608E+00 -6.3812879058786827E+00 + -6.3809497947400313E+00 -6.3806101404736708E+00 -6.3802689311955207E+00 + -6.3799261550600503E+00 -6.3795818002568225E+00 -6.3792358550071953E+00 + -6.3788883075611569E+00 -6.3785391461943020E+00 -6.3781883592049304E+00 + -6.3778359349112694E+00 -6.3774818616488025E+00 -6.3771261277677169E+00 + -6.3767687216304330E+00 -6.3764096316092482E+00 -6.3760488460840685E+00 + -6.3756863534402157E+00 -6.3753221420663273E+00 -6.3749562003523339E+00 + -6.3745885166874841E+00 -6.3742190794584888E+00 -6.3738478770476883E+00 + -6.3734748978313052E+00 -6.3731001301777459E+00 -6.3727235624459588E+00 + -6.3723451829838584E+00 -6.3719649801267941E+00 -6.3715829421960528E+00 + -6.3711990574974475E+00 -6.3708133143199017E+00 -6.3704257009341108E+00 + -6.3700362055912318E+00 -6.3696448165216157E+00 -6.3692515219335695E+00 + -6.3688563100121547E+00 -6.3684591689180223E+00 -6.3680600867862953E+00 + -6.3676590517254379E+00 -6.3672560518161960E+00 -6.3668510751105583E+00 + -6.3664441096307200E+00 -6.3660351433680953E+00 -6.3656241642823526E+00 + -6.3652111603004569E+00 -6.3647961193157521E+00 -6.3643790291870497E+00 + -6.3639598777377522E+00 -6.3635386527549898E+00 -6.3631153419887578E+00 + -6.3626899331511115E+00 -6.3622624139153414E+00 -6.3618327719151742E+00 + -6.3614009947440060E+00 -6.3609670699541310E+00 -6.3605309850559815E+00 + -6.3600927275174195E+00 -6.3596522847629746E+00 -6.3592096441731654E+00 + -6.3587647930837816E+00 -6.3583177187852060E+00 -6.3578684085217283E+00 + -6.3574168494908916E+00 -6.3569630288428280E+00 -6.3565069336796105E+00 + -6.3560485510546263E+00 -6.3555878679719395E+00 -6.3551248713856729E+00 + -6.3546595481993986E+00 -6.3541918852655392E+00 -6.3537218693847635E+00 + -6.3532494873053995E+00 -6.3527747257228651E+00 -6.3522975712790615E+00 + -6.3518180105618587E+00 -6.3513360301044619E+00 -6.3508516163849187E+00 + -6.3503647558255354E+00 -6.3498754347923327E+00 -6.3493836395945111E+00 + -6.3488893564839195E+00 -6.3483925716545073E+00 -6.3478932712418183E+00 + -6.3473914413224479E+00 -6.3468870679135403E+00 -6.3463801369722708E+00 + -6.3458706343953324E+00 -6.3453585460184243E+00 -6.3448438576157553E+00 + -6.3443265548995393E+00 -6.3438066235195079E+00 -6.3432840490624018E+00 + -6.3427588170514859E+00 -6.3422309129460643E+00 -6.3417003221409827E+00 + -6.3411670299661678E+00 -6.3406310216861055E+00 -6.3400922824994144E+00 + -6.3395507975383252E+00 -6.3390065518682217E+00 -6.3384595304871745E+00 + -6.3379097183254585E+00 -6.3373571002450877E+00 -6.3368016610393543E+00 + -6.3362433854323417E+00 -6.3356822580784860E+00 -6.3351182635620988E+00 + -6.3345513863968899E+00 -6.3339816110255418E+00 -6.3334089218192124E+00 + -6.3328333030771127E+00 -6.3322547390260118E+00 -6.3316732138197995E+00 + -6.3310887115390342E+00 -6.3305012161904823E+00 -6.3299107117066473E+00 + -6.3293171819453455E+00 -6.3287206106892278E+00 -6.3281209816453430E+00 + -6.3275182784446695E+00 -6.3269124846416780E+00 -6.3263035837138712E+00 + -6.3256915590613341E+00 -6.3250763940062873E+00 -6.3244580717926215E+00 + -6.3238365755854735E+00 -6.3232118884707420E+00 -6.3225839934546704E+00 + -6.3219528734633679E+00 -6.3213185113423798E+00 -6.3206808898562192E+00 + -6.3200399916879437E+00 -6.3193957994386691E+00 -6.3187482956271515E+00 + -6.3180974626893098E+00 -6.3174432829777976E+00 -6.3167857387615323E+00 + -6.3161248122252625E+00 -6.3154604854690977E+00 -6.3147927405080715E+00 + -6.3141215592716780E+00 -6.3134469236034230E+00 -6.3127688152603785E+00 + -6.3120872159127117E+00 -6.3114021071432571E+00 -6.3107134704470287E+00 + -6.3100212872307990E+00 -6.3093255388126135E+00 -6.3086262064213594E+00 + -6.3079232711962918E+00 -6.3072167141865840E+00 -6.3065065163508747E+00 + -6.3057926585567996E+00 -6.3050751215805354E+00 -6.3043538861063428E+00 + -6.3036289327261086E+00 -6.3029002419388807E+00 -6.3021677941504048E+00 + -6.3014315696726664E+00 -6.3006915487234254E+00 -6.2999477114257560E+00 + -6.2992000378075783E+00 -6.2984485078011900E+00 -6.2976931012428157E+00 + -6.2969337978721125E+00 -6.2961705773317362E+00 -6.2954034191668438E+00 + -6.2946323028246463E+00 -6.2938572076539216E+00 -6.2930781129045563E+00 + -6.2922949977270584E+00 -6.2915078411721117E+00 -6.2907166221900717E+00 + -6.2899213196305146E+00 -6.2891219122417441E+00 -6.2883183786703345E+00 + -6.2875106974606387E+00 -6.2866988470543133E+00 -6.2858828057898508E+00 + -6.2850625519020751E+00 -6.2842380635216974E+00 -6.2834093186748001E+00 + -6.2825762952823805E+00 -6.2817389711598350E+00 -6.2808973240165278E+00 + -6.2800513314552449E+00 -6.2792009709717549E+00 -6.2783462199542956E+00 + -6.2774870556831015E+00 -6.2766234553298990E+00 -6.2757553959574359E+00 + -6.2748828545189745E+00 -6.2740058078578080E+00 -6.2731242327067642E+00 + -6.2722381056877170E+00 -6.2713474033110845E+00 -6.2704521019753372E+00 + -6.2695521779665082E+00 -6.2686476074576793E+00 -6.2677383665085031E+00 + -6.2668244310646886E+00 -6.2659057769575037E+00 -6.2649823799032811E+00 + -6.2640542155029086E+00 -6.2631212592413306E+00 -6.2621834864870394E+00 + -6.2612408724915758E+00 -6.2602933923890216E+00 -6.2593410211954890E+00 + -6.2583837338086230E+00 -6.2574215050070752E+00 -6.2564543094500209E+00 + -6.2554821216766179E+00 -6.2545049161055175E+00 -6.2535226670343453E+00 + -6.2525353486391886E+00 -6.2515429349740765E+00 -6.2505453999704823E+00 + -6.2495427174367872E+00 -6.2485348610577791E+00 -6.2475218043941263E+00 + -6.2465035208818547E+00 -6.2454799838318547E+00 -6.2444511664293278E+00 + -6.2434170417332897E+00 -6.2423775826760366E+00 -6.2413327620626280E+00 + -6.2402825525703607E+00 -6.2392269267482527E+00 -6.2381658570165106E+00 + -6.2370993156660024E+00 -6.2360272748577437E+00 -6.2349497066223538E+00 + -6.2338665828595454E+00 -6.2327778753375833E+00 -6.2316835556927623E+00 + -6.2305835954288744E+00 -6.2294779659166846E+00 -6.2283666383933882E+00 + -6.2272495839620943E+00 -6.2261267735912798E+00 -6.2249981781142614E+00 + -6.2238637682286688E+00 -6.2227235144959039E+00 -6.2215773873405986E+00 + -6.2204253570501011E+00 -6.2192673937739187E+00 -6.2181034675231972E+00 + -6.2169335481701706E+00 -6.2157576054476298E+00 -6.2145756089483948E+00 + -6.2133875281247581E+00 -6.2121933322879626E+00 -6.2109929906076484E+00 + -6.2097864721113227E+00 -6.2085737456838173E+00 -6.2073547800667548E+00 + -6.2061295438579922E+00 -6.2048980055110974E+00 -6.2036601333347923E+00 + -6.2024158954924298E+00 -6.2011652600014324E+00 -6.1999081947327621E+00 + -6.1986446674103775E+00 -6.1973746456106893E+00 -6.1960980967620172E+00 + -6.1948149881440466E+00 -6.1935252868872874E+00 -6.1922289599725318E+00 + -6.1909259742303071E+00 -6.1896162963403443E+00 -6.1882998928310142E+00 + -6.1869767300788041E+00 -6.1856467743077692E+00 -6.1843099915889743E+00 + -6.1829663478399768E+00 -6.1816158088242670E+00 -6.1802583401507301E+00 + -6.1788939072731006E+00 -6.1775224754894182E+00 -6.1761440099414973E+00 + -6.1747584756143725E+00 -6.1733658373357603E+00 -6.1719660597755182E+00 + -6.1705591074451132E+00 -6.1691449446970594E+00 -6.1677235357243969E+00 + -6.1662948445601469E+00 -6.1648588350767630E+00 -6.1634154709856146E+00 + -6.1619647158364188E+00 -6.1605065330167221E+00 -6.1590408857513657E+00 + -6.1575677371019371E+00 -6.1560870499662368E+00 -6.1545987870777505E+00 + -6.1531029110051003E+00 -6.1515993841515337E+00 -6.1500881687543707E+00 + -6.1485692268844740E+00 -6.1470425204457264E+00 -6.1455080111745000E+00 + -6.1439656606391182E+00 -6.1424154302393328E+00 -6.1408572812057987E+00 + -6.1392911745995402E+00 -6.1377170713114468E+00 -6.1361349320617213E+00 + -6.1345447173993701E+00 -6.1329463877016801E+00 -6.1313399031737186E+00 + -6.1297252238477773E+00 -6.1281023095828830E+00 -6.1264711200642692E+00 + -6.1248316148028801E+00 -6.1231837531348239E+00 -6.1215274942208957E+00 + -6.1198627970460482E+00 -6.1181896204188959E+00 -6.1165079229711994E+00 + -6.1148176631573641E+00 -6.1131187992539351E+00 -6.1114112893591024E+00 + -6.1096950913922168E+00 -6.1079701630932490E+00 -6.1062364620223439E+00 + -6.1044939455592910E+00 -6.1027425709030654E+00 -6.1009822950713133E+00 + -6.0992130748998834E+00 -6.0974348670423346E+00 -6.0956476279694600E+00 + -6.0938513139688091E+00 -6.0920458811442000E+00 -6.0902312854152605E+00 + -6.0884074825169563E+00 -6.0865744279991087E+00 -6.0847320772259419E+00 + -6.0828803853756170E+00 -6.0810193074397780E+00 -6.0791487982230814E+00 + -6.0772688123427558E+00 -6.0753793042281377E+00 -6.0734802281202365E+00 + -6.0715715380712929E+00 -6.0696531879443212E+00 -6.0677251314126766E+00 + -6.0657873219596352E+00 -6.0638397128779538E+00 -6.0618822572694357E+00 + -6.0599149080445134E+00 -6.0579376179218229E+00 -6.0559503394278114E+00 + -6.0539530248962885E+00 -6.0519456264680462E+00 -6.0499280960904382E+00 + -6.0479003855169911E+00 -6.0458624463070016E+00 -6.0438142298251405E+00 + -6.0417556872410758E+00 -6.0396867695290819E+00 -6.0376074274676714E+00 + -6.0355176116392011E+00 -6.0334172724295225E+00 -6.0313063600276022E+00 + -6.0291848244251769E+00 -6.0270526154163875E+00 -6.0249096825974293E+00 + -6.0227559753662048E+00 -6.0205914429220044E+00 -6.0184160342651447E+00 + -6.0162296981966525E+00 -6.0140323833179403E+00 -6.0118240380304924E+00 + -6.0096046105355452E+00 -6.0073740488337757E+00 -6.0051323007250152E+00 + -6.0028793138079468E+00 -6.0006150354798127E+00 -5.9983394129361400E+00 + -5.9960523931704541E+00 -5.9937539229740135E+00 -5.9914439489355544E+00 + -5.9891224174410116E+00 -5.9867892746732903E+00 -5.9844444666120076E+00 + -5.9820879390332635E+00 -5.9797196375094073E+00 -5.9773395074088098E+00 + -5.9749474938956588E+00 -5.9725435419297428E+00 -5.9701275962662486E+00 + -5.9676996014555668E+00 -5.9652595018431089E+00 -5.9628072415691387E+00 + -5.9603427645685736E+00 -5.9578660145708557E+00 -5.9553769350997703E+00 + -5.9528754694733141E+00 -5.9503615608035538E+00 -5.9478351519964994E+00 + -5.9452961857519746E+00 -5.9427446045635062E+00 -5.9401803507182391E+00 + -5.9376033662968126E+00 -5.9350135931732959E+00 -5.9324109730150960E+00 + -5.9297954472829204E+00 -5.9271669572306811E+00 -5.9245254439054644E+00 + -5.9218708481475035E+00 -5.9192031105901401E+00 -5.9165221716597944E+00 + -5.9138279715759783E+00 -5.9111204503512882E+00 -5.9083995477914089E+00 + -5.9056652034951629E+00 -5.9029173568545037E+00 -5.9001559470546061E+00 + -5.8973809130738823E+00 -5.8945921936840788E+00 -5.8917897274503304E+00 + -5.8889734527312729E+00 -5.8861433076791183E+00 -5.8832992302398006E+00 + -5.8804411581530713E+00 -5.8775690289526459E+00 -5.8746827799663563E+00 + -5.8717823483163185E+00 -5.8688676709190890E+00 -5.8659386844858679E+00 + -5.8629953255226859E+00 -5.8600375303306231E+00 -5.8570652350060461E+00 + -5.8540783754408201E+00 -5.8510768873225869E+00 -5.8480607061350174E+00 + -5.8450297671580991E+00 -5.8419840054684258E+00 -5.8389233559395040E+00 + -5.8358477532420761E+00 -5.8327571318444722E+00 -5.8296514260129415E+00 + -5.8265305698120260E+00 -5.8233944971049425E+00 -5.8202431415539975E+00 + -5.8170764366209582E+00 -5.8138943155675289E+00 -5.8106967114557575E+00 + -5.8074835571485197E+00 -5.8042547853099800E+00 -5.8010103284060870E+00 + -5.7977501187050979E+00 -5.7944740882780739E+00 -5.7911821689994563E+00 + -5.7878742925476026E+00 -5.7845503904053768E+00 -5.7812103938607322E+00 + -5.7778542340073429E+00 -5.7744818417452102E+00 -5.7710931477813299E+00 + -5.7676880826303485E+00 -5.7642665766152597E+00 -5.7608285598680906E+00 + -5.7573739623306448E+00 -5.7539027137552310E+00 -5.7504147437054334E+00 + -5.7469099815568807E+00 -5.7433883564980626E+00 -5.7398497975311384E+00 + -5.7362942334727816E+00 -5.7327215929550475E+00 -5.7291318044262498E+00 + -5.7255247961518627E+00 -5.7219004962154409E+00 -5.7182588325195889E+00 + -5.7145997327868931E+00 -5.7109231245609404E+00 -5.7072289352073007E+00 + -5.7035170919145983E+00 -5.6997875216955300E+00 -5.6960401513879679E+00 + -5.6922749076560359E+00 -5.6884917169912752E+00 -5.6846905057137436E+00 + -5.6808711999732218E+00 -5.6770337257503956E+00 -5.6731780088580654E+00 + -5.6693039749424212E+00 -5.6654115494842756E+00 -5.6615006578003744E+00 + -5.6575712250447125E+00 -5.6536231762098810E+00 -5.6496564361284314E+00 + -5.6456709294742655E+00 -5.6416665807640616E+00 -5.6376433143587379E+00 + -5.6336010544648989E+00 -5.6295397251363468E+00 -5.6254592502756111E+00 + -5.6213595536355125E+00 -5.6172405588207273E+00 -5.6131021892894042E+00 + -5.6089443683548117E+00 -5.6047670191869994E+00 -5.6005700648144883E+00 + -5.5963534281260001E+00 -5.5921170318722133E+00 -5.5878607986675419E+00 + -5.5835846509919547E+00 -5.5792885111928054E+00 -5.5749723014867101E+00 + -5.5706359439614621E+00 -5.5662793605779584E+00 -5.5619024731721565E+00 + -5.5575052034570778E+00 -5.5530874730248430E+00 -5.5486492033487167E+00 + -5.5441903157852135E+00 -5.5397107315762124E+00 -5.5352103718511145E+00 + -5.5306891576290438E+00 -5.5261470098210550E+00 -5.5215838492323979E+00 + -5.5169995965648067E+00 -5.5123941724188272E+00 -5.5077674972961725E+00 + -5.5031194916021162E+00 -5.4984500756479182E+00 -5.4937591696532913E+00 + -5.4890466937489055E+00 -5.4843125679789084E+00 -5.4795567123035100E+00 + -5.4747790466015731E+00 -5.4699794906732828E+00 -5.4651579642427972E+00 + -5.4603143869609845E+00 -5.4554486784081684E+00 -5.4505607580969304E+00 + -5.4456505454749253E+00 -5.4407179599277660E+00 -5.4357629207819187E+00 + -5.4307853473076486E+00 -5.4257851587220269E+00 -5.4207622741919215E+00 + -5.4157166128370884E+00 -5.4106480937332622E+00 -5.4055566359153184E+00 + -5.4004421583804225E+00 -5.3953045800912998E+00 -5.3901438199794693E+00 + -5.3849597969485723E+00 -5.3797524298777173E+00 -5.3745216376248628E+00 + -5.3692673390302650E+00 -5.3639894529199523E+00 -5.3586878981092347E+00 + -5.3533625934062838E+00 -5.3480134576157177E+00 -5.3426404095422759E+00 + -5.3372433679944997E+00 -5.3318222517884566E+00 -5.3263769797515579E+00 + -5.3209074707263504E+00 -5.3154136435744146E+00 -5.3098954171802708E+00 + -5.3043527104553396E+00 -5.2987854423419511E+00 -5.2931935318174208E+00 + -5.2875768978981172E+00 -5.2819354596436359E+00 -5.2762691361609848E+00 + -5.2705778466088322E+00 -5.2648615102017891E+00 -5.2591200462147469E+00 + -5.2533533739872720E+00 -5.2475614129280332E+00 -5.2417440825192800E+00 + -5.2359013023213814E+00 -5.2300329919773976E+00 -5.2241390712177163E+00 + -5.2182194598647271E+00 -5.2122740778375505E+00 -5.2063028451568165E+00 + -5.2003056819494846E+00 -5.1942825084537434E+00 -5.1882332450239126E+00 + -5.1821578121354452E+00 -5.1760561303899424E+00 -5.1699281205202539E+00 + -5.1637737033955862E+00 -5.1575928000267206E+00 -5.1513853315712144E+00 + -5.1451512193387288E+00 -5.1388903847963405E+00 -5.1326027495739508E+00 + -5.1262882354697279E+00 -5.1199467644556078E+00 -5.1135782586828604E+00 + -5.1071826404876743E+00 -5.1007598323968324E+00 -5.0943097571334199E+00 + -5.0878323376225980E+00 -5.0813274969974227E+00 -5.0747951586047160E+00 + -5.0682352460110023E+00 -5.0616476830084967E+00 -5.0550323936211381E+00 + -5.0483893021106852E+00 -5.0417183329828648E+00 -5.0350194109935860E+00 + -5.0282924611551874E+00 -5.0215374087427582E+00 -5.0147541793005068E+00 + -5.0079426986481943E+00 -5.0011028928876105E+00 -4.9942346884091089E+00 + -4.9873380118982036E+00 -4.9804127903422186E+00 -4.9734589510370055E+00 + -4.9664764215936765E+00 -4.9594651299454551E+00 -4.9524250043545237E+00 + -4.9453559734189767E+00 -4.9382579660797905E+00 -4.9311309116278723E+00 + -4.9239747397111699E+00 -4.9167893803418119E+00 -4.9095747639033327E+00 + -4.9023308211579328E+00 -4.8950574832538134E+00 -4.8877546817325612E+00 + -4.8804223485365723E+00 -4.8730604160165649E+00 -4.8656688169391202E+00 + -4.8582474844942913E+00 -4.8507963523032842E+00 -4.8433153544261538E+00 + -4.8358044253696031E+00 -4.8282635000948000E+00 -4.8206925140252839E+00 + -4.8130914030549006E+00 -4.8054601035558031E+00 -4.7977985523865199E+00 + -4.7901066869000601E+00 -4.7823844449520827E+00 -4.7746317649091230E+00 + -4.7668485856568754E+00 -4.7590348466085262E+00 -4.7511904877131368E+00 + -4.7433154494641077E+00 -4.7354096729076574E+00 -4.7274730996513838E+00 + -4.7195056718728745E+00 -4.7115073323283756E+00 -4.7034780243614867E+00 + -4.6954176919119543E+00 -4.6873262795244823E+00 -4.6792037323576006E+00 + -4.6710499961926244E+00 -4.6628650174425941E+00 -4.6546487431613315E+00 + -4.6464011210525280E+00 -4.6381220994788679E+00 -4.6298116274712253E+00 + -4.6214696547378988E+00 -4.6130961316738990E+00 -4.6046910093702982E+00 + -4.5962542396236019E+00 -4.5877857749451971E+00 -4.5792855685708345E+00 + -4.5707535744701717E+00 -4.5621897473563475E+00 -4.5535940426956092E+00 + -4.5449664167170054E+00 -4.5363068264220949E+00 -4.5276152295947272E+00 + -4.5188915848108504E+00 -4.5101358514483758E+00 -4.5013479896970807E+00 + -4.4925279605685597E+00 -4.4836757259062177E+00 -4.4747912483953014E+00 + -4.4658744915729729E+00 -4.4569254198384467E+00 -4.4479439984631286E+00 + -4.4389301936008199E+00 -4.4298839722979597E+00 -4.4208053025039042E+00 + -4.4116941530812470E+00 -4.4025504938161557E+00 -4.3933742954287842E+00 + -4.3841655295836768E+00 -4.3749241689002600E+00 -4.3656501869633022E+00 + -4.3563435583334673E+00 -4.3470042585578721E+00 -4.3376322641806819E+00 + -4.3282275527537264E+00 -4.3187901028471716E+00 -4.3093198940601862E+00 + -4.2998169070316816E+00 -4.2902811234510301E+00 -4.2807125260688359E+00 + -4.2711110987077419E+00 -4.2614768262732330E+00 -4.2518096947644954E+00 + -4.2421096912852656E+00 -4.2323768040547289E+00 -4.2226110224184197E+00 + -4.2128123368591606E+00 -4.2029807390079954E+00 -4.1931162216551563E+00 + -4.1832187787610495E+00 -4.1732884054672468E+00 -4.1633250981075021E+00 + -4.1533288542187590E+00 -4.1432996725522022E+00 -4.1332375530842995E+00 + -4.1231424970278479E+00 -4.1130145068430437E+00 -4.1028535862485551E+00 + -4.0926597402325946E+00 -4.0824329750640027E+00 -4.0721732983033254E+00 + -4.0618807188139119E+00 -4.0515552467729821E+00 -4.0411968936827432E+00 + -4.0308056723814385E+00 -4.0203815970544472E+00 -4.0099246832453606E+00 + -3.9994349478670430E+00 -3.9889124092126997E+00 -3.9783570869669216E+00 + -3.9677690022167305E+00 -3.9571481774626189E+00 -3.9464946366295495E+00 + -3.9358084050779620E+00 -3.9250895096147564E+00 -3.9143379785042685E+00 + -3.9035538414791988E+00 -3.8927371297515547E+00 -3.8818878760235407E+00 + -3.8710061144984387E+00 -3.8600918808914715E+00 -3.8491452124406016E+00 + -3.8381661479173479E+00 -3.8271547276375442E+00 -3.8161109934720585E+00 + -3.8050349888575070E+00 -3.7939267588068968E+00 -3.7827863499202579E+00 + -3.7716138103952370E+00 -3.7604091900376075E+00 -3.7491725402717981E+00 + -3.7379039141513317E+00 -3.7266033663692362E+00 -3.7152709532684010E+00 + -3.7039067328518880E+00 -3.6925107647931799E+00 -3.6810831104464019E+00 + -3.6696238328564430E+00 -3.6581329967690599E+00 -3.6466106686409048E+00 + -3.6350569166494924E+00 -3.6234718107031023E+00 -3.6118554224506245E+00 + -3.6002078252913261E+00 -3.5885290943845560E+00 -3.5768193066593912E+00 + -3.5650785408241745E+00 -3.5533068773760177E+00 -3.5415043986102011E+00 + -3.5296711886295102E+00 -3.5178073333534843E+00 -3.5059129205275781E+00 + -3.4939880397322529E+00 -3.4820327823919759E+00 -3.4700472417841106E+00 + -3.4580315130477559E+00 -3.4459856931924548E+00 -3.4339098811068349E+00 + -3.4218041775671435E+00 -3.4096686852456788E+00 -3.3975035087191277E+00 + -3.3853087544768030E+00 -3.3730845309287729E+00 -3.3608309484138763E+00 + -3.3485481192076434E+00 -3.3362361575301036E+00 -3.3238951795534697E+00 + -3.3115253034097263E+00 -3.2991266491980795E+00 -3.2866993389923080E+00 + -3.2742434968479914E+00 -3.2617592488095992E+00 -3.2492467229174715E+00 + -3.2367060492146762E+00 -3.2241373597537279E+00 -3.2115407886031733E+00 + -3.1989164718540661E+00 -3.1862645476262821E+00 -3.1735851560747110E+00 + -3.1608784393953209E+00 -3.1481445418310559E+00 -3.1353836096776169E+00 + -3.1225957912890845E+00 -3.1097812370834093E+00 -3.0969400995477399E+00 + -3.0840725332436127E+00 -3.0711786948119841E+00 -3.0582587429781238E+00 + -3.0453128385563244E+00 -3.0323411444544877E+00 -3.0193438256785301E+00 + -3.0063210493366430E+00 -2.9932729846433741E+00 -2.9801998029235652E+00 + -2.9671016776161090E+00 -2.9539787842775440E+00 -2.9408313005854914E+00 + -2.9276594063418964E+00 -2.9144632834761262E+00 -2.9012431160478744E+00 + -2.8879990902498984E+00 -2.8747313944105835E+00 -2.8614402189963153E+00 + -2.8481257566136851E+00 -2.8347882020115205E+00 -2.8214277520827018E+00 + -2.8080446058658279E+00 -2.7946389645466829E+00 -2.7812110314595095E+00 + -2.7677610120881075E+00 -2.7542891140667320E+00 -2.7407955471807997E+00 + -2.7272805233674071E+00 -2.7137442567156667E+00 -2.7001869634668134E+00 + -2.6866088620141517E+00 -2.6730101729027842E+00 -2.6593911188291499E+00 + -2.6457519246403574E+00 -2.6320928173333202E+00 -2.6184140260536872E+00 + -2.6047157820945790E+00 -2.5909983188951036E+00 -2.5772618720386831E+00 + -2.5635066792511600E+00 -2.5497329803987148E+00 -2.5359410174855559E+00 + -2.5221310346514128E+00 -2.5083032781688166E+00 -2.4944579964401665E+00 + -2.4805954399945978E+00 -2.4667158614846167E+00 -2.4528195156825392E+00 + -2.4389066594767179E+00 -2.4249775518675349E+00 -2.4110324539632089E+00 + -2.3970716289753620E+00 -2.3830953422143848E+00 -2.3691038610845840E+00 + -2.3550974550791071E+00 -2.3410763957746497E+00 -2.3270409568259618E+00 + -2.3129914139601113E+00 -2.2989280449705491E+00 -2.2848511297109457E+00 + -2.2707609500888086E+00 -2.2566577900588962E+00 -2.2425419356163774E+00 + -2.2284136747898158E+00 -2.2142732976338992E+00 -2.2001210962219706E+00 + -2.1859573646383224E+00 -2.1717823989702874E+00 -2.1575964973000974E+00 + -2.1433999596965267E+00 -2.1291930882063208E+00 -2.1149761868453902E+00 + -2.1007495615897933E+00 -2.0865135203665095E+00 -2.0722683730439728E+00 + -2.0580144314224000E+00 -2.0437520092238928E+00 -2.0294814220823212E+00 + -2.0152029875329966E+00 -2.0009170250021073E+00 -1.9866238557959532E+00 + -1.9723238030899537E+00 -1.9580171919174394E+00 -1.9437043491582267E+00 + -1.9293856035269688E+00 -1.9150612855612996E+00 -1.9007317276097484E+00 + -1.8863972638194568E+00 -1.8720582301236512E+00 -1.8577149642289277E+00 + -1.8433678056022995E+00 -1.8290170954580467E+00 -1.8146631767443380E+00 + -1.8003063941296404E+00 -1.7859470939889230E+00 -1.7715856243896377E+00 + -1.7572223350774887E+00 -1.7428575774619897E+00 -1.7284917046018100E+00 + -1.7141250711899065E+00 -1.6997580335384426E+00 -1.6853909495634967E+00 + -1.6710241787695590E+00 -1.6566580822338177E+00 -1.6422930225902379E+00 + -1.6279293640134171E+00 -1.6135674722022459E+00 -1.5992077143633507E+00 + -1.5848504591943291E+00 -1.5704960768667720E+00 -1.5561449390090816E+00 + -1.5417974186890744E+00 -1.5274538903963837E+00 -1.5131147300246406E+00 + -1.4987803148534573E+00 -1.4844510235301958E+00 -1.4701272360515272E+00 + -1.4558093337447879E+00 -1.4414976992491173E+00 -1.4271927164963942E+00 + -1.4128947706919610E+00 -1.3986042482951404E+00 -1.3843215369995350E+00 + -1.3700470257131263E+00 -1.3557811045381603E+00 -1.3415241647508171E+00 + -1.3272765987806776E+00 -1.3130388001899733E+00 -1.2988111636526223E+00 + -1.2845940849330637E+00 -1.2703879608648616E+00 -1.2561931893291074E+00 + -1.2420101692326071E+00 -1.2278393004858459E+00 -1.2136809839807441E+00 + -1.1995356215681909E+00 -1.1854036160353632E+00 -1.1712853710828206E+00 + -1.1571812913013937E+00 -1.1430917821488278E+00 -1.1290172499262288E+00 + -1.1149581017542698E+00 -1.1009147455491815E+00 -1.0868875899985111E+00 + -1.0728770445366580E+00 -1.0588835193201771E+00 -1.0449074252028618E+00 + -1.0309491737105774E+00 -1.0170091770158816E+00 -1.0030878479123979E+00 + -9.8918559978895881E-01 -9.7530284660350863E-01 -9.6144000285676867E-01 + -9.4759748356566476E-01 -9.3377570423650436E-01 -9.1997508083792290E-01 + -9.0619602977356906E-01 -8.9243896785455690E-01 -8.7870431227166101E-01 + -8.6499248056726719E-01 -8.5130389060706368E-01 -8.3763896055148845E-01 + -8.2399810882691527E-01 -8.1038175409658664E-01 -7.9679031523128607E-01 + -7.8322421127975606E-01 -7.6968386143885159E-01 -7.5616968502343473E-01 + -7.4268210143600633E-01 -7.2922153013607394E-01 -7.1578839060925736E-01 + -7.0238310233612411E-01 -6.8900608476076908E-01 -6.7565775725911625E-01 + -6.6233853910696405E-01 -6.4904884944775931E-01 -6.3578910726010729E-01 + -6.2255973132501585E-01 -6.0936114019287269E-01 -5.9619375215016046E-01 + -5.8305798518590923E-01 -5.6995425695788215E-01 -5.5688298475850839E-01 + -5.4384458548055192E-01 -5.3083947558252698E-01 -5.1786807105386023E-01 + -5.0493078737980313E-01 -4.9202803950609564E-01 -4.7916024180339056E-01 + -4.6632780803143531E-01 -4.5353115130302252E-01 -4.4077068404771164E-01 + -4.2804681797532629E-01 -4.1535996403923686E-01 -4.0271053239943067E-01 + -3.9009893238538129E-01 -3.7752557245872109E-01 -3.6499086017572990E-01 + -3.5249520214964147E-01 -3.4003900401278675E-01 -3.2762267037857551E-01 + -3.1524660480333450E-01 -3.0291120974800650E-01 -2.9061688653972911E-01 + -2.7836403533330123E-01 -2.6615305507255499E-01 -2.5398434345164195E-01 + -2.4185829687625524E-01 -2.2977531042479662E-01 -2.1773577780951150E-01 + -2.0574009133760279E-01 -1.9378864187234487E-01 -1.8188181879421736E-01 + -1.7002000996207317E-01 -1.5820360167436709E-01 -1.4643297863045843E-01 + -1.3470852389201574E-01 -1.2303061884454081E-01 -1.1139964315903618E-01 + -9.9815974753839465E-02 -8.8279989756647359E-02 -7.6792062466783606E-02 + -6.5352565317587721E-02 -5.3961868839244496E-02 -4.2620341621785213E-02 + -3.1328350278433226E-02 -2.0086259409291152E-02 -8.8944315653953585E-03 + 2.2467727868352803E-03 1.3336995300730087E-02 2.4375879784049773E-02 + 3.5363072233196645E-02 4.6298220866923916E-02 5.7180976159519233E-02 + 6.8010990873436206E-02 7.8787920091348648E-02 8.9511421247602432E-02 + 1.0018115415904094E-01 1.1079678105518057E-01 1.2135796660771424E-01 + 1.3186437795931943E-01 1.4231568475175260E-01 1.5271155915320844E-01 + 1.6305167588492719E-01 1.7333571224703231E-01 1.8356334814358424E-01 + 1.9373426610683581E-01 2.0384815132067854E-01 2.1390469164326945E-01 + 2.2390357762882970E-01 2.3384450254861136E-01 2.4372716241102740E-01 + 2.5355125598094330E-01 2.6331648479813302E-01 2.7302255319490215E-01 + 2.8266916831288419E-01 2.9225604011902101E-01 3.0178288142073545E-01 + 3.1124940788031535E-01 3.2065533802852247E-01 3.3000039327744868E-01 + 3.3928429793264120E-01 3.4850677920452472E-01 3.5766756721914622E-01 + 3.6676639502827657E-01 3.7580299861890426E-01 3.8477711692215272E-01 + 3.9368849182166826E-01 4.0253686816151496E-01 4.1132199375362477E-01 + 4.2004361938484686E-01 4.2870149882364622E-01 4.3729538882650143E-01 + 4.4582504914405563E-01 4.5429024252706873E-01 4.6269073473223254E-01 + 4.7102629452789874E-01 4.7929669369977601E-01 4.8750170705665458E-01 + 4.9564111243621078E-01 5.0371469071094643E-01 5.1172222579431825E-01 + 5.1966350464710986E-01 5.2753831728409051E-01 5.3534645678101722E-01 + 5.4308771928201638E-01 5.5076190400739222E-01 5.5836881326189614E-01 + 5.6590825244348952E-01 5.7338003005262894E-01 5.8078395770209967E-01 + 5.8811985012740498E-01 5.9538752519773297E-01 6.0258680392749708E-01 + 6.0971751048844958E-01 6.1677947222235674E-01 6.2377251965421920E-01 + 6.3069648650600840E-01 6.3755120971088963E-01 6.4433652942788211E-01 + 6.5105228905691404E-01 6.5769833525421251E-01 6.6427451794796044E-01 + 6.7078069035415355E-01 6.7721670899257724E-01 6.8358243370282246E-01 + 6.8987772766025401E-01 6.9610245739184673E-01 7.0225649279179192E-01 + 7.0833970713680305E-01 7.1435197710102705E-01 7.2029318277049392E-01 + 7.2616320765704445E-01 7.3196193871168758E-01 7.3768926633736898E-01 + 7.4334508440115221E-01 7.4892929024584787E-01 7.5444178470117718E-01 + 7.5988247209459514E-01 7.6525126026196599E-01 7.7054806055835534E-01 + 7.7577278786928039E-01 7.8092536062287787E-01 7.8600570080353405E-01 + 7.9101373396769292E-01 7.9594938926266956E-01 8.0081259944951244E-01 + 8.0560330093112320E-01 8.1032143378709864E-01 8.1496694181698781E-01 + 8.1953977259396782E-01 8.2403987753124397E-01 8.2846721196385453E-01 + 8.3282173524892755E-01 8.3710341088789819E-01 8.4131220667464335E-01 + 8.4544809487400241E-01 8.4951105243570479E-01 8.5350106124929193E-01 + 8.5741810844622701E-01 8.6126218675600463E-01 8.6503329492371106E-01 + 8.6873143819707843E-01 8.7235662889170529E-01 8.7590888704361203E-01 + 8.7938824115878911E-01 8.8279472906969203E-01 8.8612839890882766E-01 + 8.8938931020948864E-01 8.9257753514337301E-01 8.9569315990408238E-01 + 8.9873628624439628E-01 9.0170703317350165E-01 9.0460553881807559E-01 + 9.0743196244807856E-01 9.1018648666422708E-01 9.1286931973928465E-01 + 9.1548069809940680E-01 9.1802088892472333E-01 9.2049019284003308E-01 + 9.2288894665691490E-01 9.2521752611765273E-01 9.2747634857921823E-01 + 9.2966587556226443E-01 9.3178661507583993E-01 9.3383912361373089E-01 + 9.3582400770342389E-01 9.3774192487438734E-01 9.3959358389965530E-01 + 9.4137974415470982E-01 9.4310121393201496E-01 9.4475884755008255E-01 + 9.4635354110482062E-01 9.4788622673054213E-01 9.4935786527090460E-01 + 9.5076943730842156E-01 9.5212193256670863E-01 9.5341633778276602E-01 + 9.5465362324583369E-01 9.5583472831079042E-01 9.5696054631046479E-01 + 9.5803190940218297E-01 9.5904957397599722E-01 9.6001420731040055E-01 + 9.6092637617154952E-01 9.6178653800328462E-01 9.6259503524307921E-01 + 9.6335209312809489E-01 9.6405782113978800E-01 9.6471221799763551E-01 + 9.6531517987981230E-01 9.6586651134857149E-01 9.6636593831288364E-01 + 9.6681312228387917E-01 9.6720767517233297E-01 9.6754917393403872E-01 + 9.6783717447351447E-01 9.6807122435016557E-01 9.6825087397506460E-01 + 9.6837568612497182E-01 9.6844524372162932E-01 9.6845915592209542E-01 + 9.6841706263773608E-01 9.6831863764640802E-01 9.6816359048762168E-01 + 9.6795166733826676E-01 9.6768265106132556E-01 9.6735636060605024E-01 + 9.6697264991886900E-01 9.6653140650263203E-01 9.6603254973973207E-01 + 9.6547602907353880E-01 9.6486182212331795E-01 9.6418993279089926E-01 + 9.6346038940279222E-01 9.6267324291940259E-01 9.6182856523308990E-01 + 9.6092644756896439E-01 9.5996699899613724E-01 9.5895034505247900E-01 + 9.5787662648242988E-01 9.5674599808490801E-01 9.5555862766662192E-01 + 9.5431469509498801E-01 9.5301439144417011E-01 9.5165791822749235E-01 + 9.5024548670938469E-01 9.4877731729020720E-01 9.4725363895752657E-01 + 9.4567468879778083E-01 9.4404071156265501E-01 9.4235195928491655E-01 + 9.4060869093886823E-01 9.3881117214099241E-01 9.3695967488676501E-01 + 9.3505447731996660E-01 9.3309586353119989E-01 9.3108412338260771E-01 + 9.2901955235609757E-01 9.2690245142264360E-01 9.2473312693046250E-01 + 9.2251189051009264E-01 9.2023905899459135E-01 9.1791495435322645E-01 + 9.1553990363721749E-01 9.1311423893619925E-01 9.1063829734420809E-01 + 9.0811242093410816E-01 9.0553695673946177E-01 9.0291225674294584E-01 + 9.0023867787049050E-01 8.9751658199038664E-01 8.9474633591666708E-01 + 8.9192831141614370E-01 8.8906288521851096E-01 8.8615043902899138E-01 + 8.8319135954303218E-01 8.8018603846261279E-01 8.7713487251375122E-01 + 8.7403826346483926E-01 8.7089661814545793E-01 8.6771034846537409E-01 + 8.6447987143342886E-01 8.6120560917606004E-01 8.5788798895523521E-01 + 8.5452744318558038E-01 8.5112440945052614E-01 8.4767933051730238E-01 + 8.4419265435064039E-01 8.4066483412504922E-01 8.3709632823556768E-01 + 8.3348760030689262E-01 8.2983911920080011E-01 8.2615135902181003E-01 + 8.2242479912102462E-01 8.1865992409811239E-01 8.1485722380140546E-01 + 8.1101719332608124E-01 8.0714033301042909E-01 8.0322714843018417E-01 + 7.9927815039093619E-01 7.9529385491861337E-01 7.9127478324805323E-01 + 7.8722146180966834E-01 7.8313442221422136E-01 7.7901420123572385E-01 + 7.7486134079246238E-01 7.7067638792617410E-01 7.6645989477936827E-01 + 7.6221241857080435E-01 7.5793452156911867E-01 7.5362677106459430E-01 + 7.4928973933906018E-01 7.4492400363389744E-01 7.4053014611611134E-01 + 7.3610875384244312E-01 7.3166041872145848E-01 7.2718573747354964E-01 + 7.2268531158878335E-01 7.1815974728249921E-01 7.1360965544856148E-01 + 7.0903565161015225E-01 7.0443835586797365E-01 6.9981839284572078E-01 + 6.9517639163266953E-01 6.9051298572320774E-01 6.8582881295313169E-01 + 6.8112451543250574E-01 6.7640073947487822E-01 6.7165813552263398E-01 + 6.6689735806824890E-01 6.6211906557120181E-01 6.5732392037029530E-01 + 6.5251258859112671E-01 6.4768574004843460E-01 6.4284404814306317E-01 + 6.3798818975326144E-01 6.3311884512004946E-01 6.2823669772638224E-01 + 6.2334243416983426E-01 6.1843674402855919E-01 6.1352031972026388E-01 + 6.0859385635396057E-01 6.0365805157427543E-01 5.9871360539810692E-01 + 5.9376122004344745E-01 5.8880159975020752E-01 5.8383545059291031E-01 + 5.7886348028513912E-01 5.7388639797567509E-01 5.6890491403627474E-01 + 5.6391973984108346E-01 5.5893158753771610E-01 5.5394116981007535E-01 + 5.4894919963302025E-01 5.4395639001903928E-01 5.3896345375712074E-01 + 5.3397110314406249E-01 5.2898004970850387E-01 5.2399100392800391E-01 + 5.1900467493953140E-01 5.1402177024377782E-01 5.0904299540373898E-01 + 5.0406905373805100E-01 4.9910064600960413E-01 4.9413847010998124E-01 + 4.8918322074031501E-01 4.8423558908917003E-01 4.7929626250808582E-01 + 4.7436592418543971E-01 4.6944525281930272E-01 4.6453492228997562E-01 + 4.5963560133290393E-01 4.5474795321267031E-01 4.4987263539877759E-01 + 4.4501029924391861E-01 4.4016158966543578E-01 4.3532714483065621E-01 + 4.3050759584678583E-01 4.2570356645601409E-01 4.2091567273648206E-01 + 4.1614452280973174E-01 4.1139071655522780E-01 4.0665484533253243E-01 + 4.0193749171166915E-01 3.9723922921218596E-01 3.9256062205140146E-01 + 3.8790222490227383E-01 3.8326458266130808E-01 3.7864823022687527E-01 + 3.7405369228827967E-01 3.6948148312588092E-01 3.6493210642253610E-01 + 3.6040605508658818E-01 3.5590381108659719E-01 3.5142584529796961E-01 + 3.4697261736160856E-01 3.4254457555467266E-01 3.3814215667349740E-01 + 3.3376578592869766E-01 3.2941587685244395E-01 3.2509283121787896E-01 + 3.2079703897059642E-01 3.1652887817208109E-01 3.1228871495499716E-01 + 3.0807690349017491E-01 3.0389378596512240E-01 2.9973969257387123E-01 + 2.9561494151793871E-01 2.9151983901818240E-01 2.8745467933728569E-01 + 2.8341974481261512E-01 2.7941530589916991E-01 2.7544162122231841E-01 + 2.7149893764002880E-01 2.6758749031426032E-01 2.6370750279120270E-01 + 2.5985918709001105E-01 2.5604274379970798E-01 2.5225836218388858E-01 + 2.4850622029287966E-01 2.4478648508299400E-01 2.4109931254250677E-01 + 2.3744484782399994E-01 2.3382322538269154E-01 2.3023456912039519E-01 + 2.2667899253472529E-01 2.2315659887319145E-01 2.1966748129180305E-01 + 2.1621172301782207E-01 2.1278939751630238E-01 2.0940056866004453E-01 + 2.0604529090262061E-01 2.0272360945410070E-01 1.9943556045914593E-01 + 1.9618117117710862E-01 1.9296046016381357E-01 1.8977343745467676E-01 + 1.8662010474883867E-01 1.8350045559399417E-01 1.8041447557159862E-01 + 1.7736214248215396E-01 1.7434342653026710E-01 1.7135829050920173E-01 + 1.6840668998463498E-01 1.6548857347735213E-01 1.6260388264461983E-01 + 1.5975255245998068E-01 1.5693451139123729E-01 1.5414968157638634E-01 + 1.5139797899729465E-01 1.4867931365090084E-01 1.4599358971775700E-01 + 1.4334070572772178E-01 1.4072055472263767E-01 1.3813302441584041E-01 + 1.3557799734834955E-01 1.3305535104162133E-01 1.3056495814673916E-01 + 1.2810668658995036E-01 1.2568039971445480E-01 1.2328595641838067E-01 + 1.2092321128888581E-01 1.1859201473234368E-01 1.1629221310058985E-01 + 1.1402364881320975E-01 1.1178616047587754E-01 1.0957958299475462E-01 + 1.0740374768698605E-01 1.0525848238733247E-01 1.0314361155100164E-01 + 1.0105895635274674E-01 9.9004334782317002E-02 9.6979561736358730E-02 + 9.4984449106869817E-02 9.3018805866332127E-02 9.1082438149645048E-02 + 8.9175149333002968E-02 8.7296740109860035E-02 8.5447008564137644E-02 + 8.3625750240837737E-02 8.1832758214224463E-02 8.0067823153752021E-02 + 7.8330733387908080E-02 7.6621274966157393E-02 7.4939231719161059E-02 + 7.3284385317457401E-02 7.1656515328782366E-02 7.0055399274210978E-02 + 6.8480812683300044E-02 6.6932529148403377E-02 6.5410320378335801E-02 + 6.3913956251548540E-02 6.2443204868980987E-02 6.0997832606740819E-02 + 5.9577604168764037E-02 5.8182282639592658E-02 5.6811629537404144E-02 + 5.5465404867417446E-02 5.4143367175788042E-02 5.2845273604100525E-02 + 5.1570879944551562E-02 5.0319940695911940E-02 4.9092209120340458E-02 + 4.7887437301117906E-02 4.6705376201353885E-02 4.5545775723712524E-02 + 4.4408384771192362E-02 4.3292951308983169E-02 4.2199222427416846E-02 + 4.1126944406015144E-02 4.0075862778632634E-02 3.9045722399679454E-02 + 3.8036267511403314E-02 3.7047241812201002E-02 3.6078388525920151E-02 + 3.5129450472107734E-02 3.4200170137151528E-02 3.3290289746257536E-02 + 3.2399551336197450E-02 3.1527696828757522E-02 3.0674468104813182E-02 + 2.9839607078950375E-02 2.9022855774551347E-02 2.8223956399256955E-02 + 2.7442651420717987E-02 2.6678683642542157E-02 2.5931796280344702E-02 + 2.5201733037806314E-02 2.4488238182643667E-02 2.3791056622395119E-02 + 2.3109933979925244E-02 2.2444616668552575E-02 2.1794851966703520E-02 + 2.1160388091999417E-02 2.0540974274681819E-02 1.9936360830285774E-02 + 1.9346299231470462E-02 1.8770542178919932E-02 1.8208843671229432E-02 + 1.7660959073694030E-02 1.7126645185921236E-02 1.6605660308190117E-02 + 1.6097764306484887E-02 1.5602718676132166E-02 1.5120286603976612E-02 + 1.4650233029031574E-02 1.4192324701545989E-02 1.3746330240432678E-02 + 1.3312020189005907E-02 1.2889167068981425E-02 1.2477545432694482E-02 + 1.2076931913496703E-02 1.1687105274295102E-02 1.1307846454201740E-02 + 1.0938938613265101E-02 1.0580167175258828E-02 1.0231319868507100E-02 + 9.8921867647289319E-03 9.5625603158882907E-03 9.2422353890393282E-03 + 8.9310092991605472E-03 8.6286818399738899E-03 8.3350553127492059E-03 + 8.0499345530965303E-03 7.7731269557524390E-03 7.5044424973695024E-03 + 7.2436937573201847E-03 6.9906959365301155E-03 6.7452668743572947E-03 + 6.5072270635371052E-03 6.2763996632146978E-03 6.0526105100888973E-03 + 5.8356881276939599E-03 5.6254637338470585E-03 5.4217712462919032E-03 + 5.2244472865699276E-03 5.0333311821528642E-03 4.8482649668713379E-03 + 4.6690933796761638E-03 4.4956638617698018E-03 4.3278265521469400E-03 + 4.1654342815842359E-03 4.0083425651199376E-03 3.8564095930654447E-03 + 3.7094962205911257E-03 3.5674659559298675E-03 3.4301849472419864E-03 + 3.2975219681859618E-03 3.1693484022396004E-03 3.0455382258166544E-03 + 2.9259679902242275E-03 2.8105168025061938E-03 2.6990663052182591E-03 + 2.5915006551799533E-03 2.4877065012490662E-03 2.3875729611636302E-03 + 2.2909915974965805E-03 2.1978563927677526E-03 2.1080637237576635E-03 + 2.0215123350671637E-03 1.9381033119664347E-03 1.8577400525765842E-03 + 1.7803282394262725E-03 1.7057758104254879E-03 1.6339929292977617E-03 + 1.5648919555115680E-03 1.4983874137509802E-03 1.4343959629647984E-03 + 1.3728363650327908E-03 1.3136294530867235E-03 1.2566980995232159E-03 + 1.2019671837444660E-03 1.1493635596621882E-03 1.0988160229991096E-03 + 1.0502552784215635E-03 1.0036139065358004E-03 9.5882633077968389E-04 + 9.1582878424059362E-04 8.7455927642933191E-04 8.3495756003899033E-04 + 7.9696509771669212E-04 7.6052502887527908E-04 7.2558213657097914E-04 + 6.9208281447218924E-04 6.5997503394357889E-04 6.2920831126870756E-04 + 5.9973367503350530E-04 5.7150363369194029E-04 5.4447214333435171E-04 + 5.1859457567794514E-04 4.9382768629807313E-04 4.7012958311802751E-04 + 4.4745969517414409E-04 4.2577874167219748E-04 4.0504870135014189E-04 + 3.8523278216145751E-04 3.6629539129247248E-04 3.4820210552625645E-04 + 3.3091964196483160E-04 3.1441582912068207E-04 2.9865957838776471E-04 + 2.8362085590144293E-04 2.6927065479605999E-04 2.5558096786810271E-04 + 2.4252476065224051E-04 2.3007594491679636E-04 2.1820935258457373E-04 + 2.0690071008427921E-04 1.9612661313716761E-04 1.8586450198291915E-04 + 1.7609263704814951E-04 1.6679007506039748E-04 1.5793664560985693E-04 + 1.4951292816059913E-04 1.4150022951249432E-04 1.3388056171455739E-04 + 1.2663662042994571E-04 1.1975176375238284E-04 1.1320999147333547E-04 + 1.0699592479883875E-04 1.0109478651446653E-04 9.5492381596542057E-05 + 9.0175078267322253E-05 8.5129789491525572E-05 8.0343954911240887E-05 + 7.5805523215934605E-05 7.1502934943964107E-05 6.7425105711727823E-05 + 6.3561409866300699E-05 5.9901664557159541E-05 5.6436114222354095E-05 + 5.3155415484263600E-05 5.0050622449863554E-05 4.7113172410236445E-05 + 4.4334871933880125E-05 4.1707883348198054E-05 3.9224711603408112E-05 + 3.6878191512961632E-05 3.4661475364442849E-05 3.2568020894800190E-05 + 3.0591579623662698E-05 2.8726185538401180E-05 2.6966144124516475E-05 + 2.5306021734869412E-05 2.3740635291207085E-05 2.2265042311396043E-05 + 2.0874531255732291E-05 1.9564612185672761E-05 1.8331007728311393E-05 + 1.7169644339915124E-05 1.6076643861831225E-05 1.5048315362084810E-05 + 1.4081147255999098E-05 1.3171799699191084E-05 1.2317097246324988E-05 + 1.1514021769038783E-05 1.0759705626501706E-05 1.0051425082106268E-05 + 9.3865939598515017E-06 8.7627575340322208E-06 8.1775866459109789E-06 + 7.6288720411181895E-06 7.1145189215965557E-06 6.6325417059830720E-06 + 6.1810589924006528E-06 5.7582887177157014E-06 5.3625435074037360E-06 + 4.9922262102552977E-06 4.6458256122465152E-06 4.3219123239932867E-06 + 4.0191348363055315E-06 3.7362157384554886E-06 3.4719480938800956E-06 + 3.2251919681444248E-06 2.9948711039766207E-06 2.7799697385306185E-06 + 2.5795295607893459E-06 2.3926467788512917E-06 2.2184692682236886E-06 + 2.0561948708765115E-06 1.9050651705660082E-06 1.7643706208593945E-06 + 1.6334388337439269E-06 1.5116408349664055E-06 1.3983830006070458E-06 + 1.2931072146029740E-06 1.1952889481477991E-06 1.1044354304794951E-06 + 1.0200839073962280E-06 9.4179998397239189E-07 8.6917604805345552E-07 + 8.0182977121289855E-07 7.3940268395783942E-07 6.8155882207159386E-07 + 6.2798344108134092E-07 5.7838179593742541E-07 5.3247798308727505E-07 + 4.9001384222172569E-07 4.5074791506438138E-07 4.1445445866576544E-07 + 3.8092251075312828E-07 3.4995500477407416E-07 3.2136793235750560E-07 + 2.9498955099874420E-07 2.7065963485716914E-07 2.4822876663413679E-07 + 2.2755766857648786E-07 2.0851657072643609E-07 1.9098461461221889E-07 + 1.7484929064544551E-07 1.6000590756071298E-07 1.4635709230072439E-07 + 1.3381231881584892E-07 1.2228746431087605E-07 1.1170439153356937E-07 + 1.0199055575962565E-07 9.3078635186734589E-08 8.4906183506694244E-08 + 7.7415303478959183E-08 7.0552340381608431E-08 6.4267594266571565E-08 + 5.8515049995032980E-08 5.3252124076317224E-08 4.8439427379234645E-08 + 4.4040542828904890E-08 4.0021817244475881E-08 3.6352166513977488E-08 + 3.3002893341812943E-08 2.9947516842131858E-08 2.7161613287594530E-08 + 2.4622667357846348E-08 2.2309933265427883E-08 2.0204305168872771E-08 + 1.8288196313440549E-08 1.6545426369322803E-08 1.4961116465292858E-08 + 1.3521591442675028E-08 1.2214288880225771E-08 1.1027674465086893E-08 + 9.9511633084211486E-09 8.9750468267154814E-09 8.0904248310668356E-09 + 7.2891424870915883E-09 6.5637318274516246E-09 5.9073575174071816E-09 + 5.3137665913203712E-09 4.7772418946775929E-09 4.2925589820086562E-09 + 3.8549462360846911E-09 3.4600479880108947E-09 3.1038904313217918E-09 + 2.7828501359686740E-09 2.4936249801895143E-09 2.2332073296999161E-09 + 1.9988593044684707E-09 1.7880899835674212E-09 1.5986344082475334E-09 + 1.4284342524993766E-09 1.2756200389576821E-09 1.1384947861046277E-09 + 1.0155189803558631E-09 9.0529677379216294E-10 8.0656331505178837E-10 + 7.1817312724532674E-10 6.3908945271597262E-10 5.6837449006401749E-10 + 5.0518045410320104E-10 4.4874139433710775E-10 3.9836571215310255E-10 + 3.5342932124638671E-10 3.1336939982353098E-10 2.7767868690870391E-10 + 2.4590027860157120E-10 2.1762288342740307E-10 1.9247649899089656E-10 + 1.7012847500826810E-10 1.5027993045964878E-10 1.3266249508726234E-10 + 1.1703534777543997E-10 1.0318252649672073E-10 9.0910486504118370E-11 + 8.0045885302631466E-11 7.0433574652199205E-11 6.1934781448150326E-11 + 5.4425460801789880E-11 4.7794806010804419E-11 4.1943901373839634E-11 + 3.6784504972744603E-11 3.2237949626029470E-11 2.8234151214095582E-11 + 2.4710714496503672E-11 2.1612127389303104E-11 1.8889035451323883E-11 + 1.6497589047066960E-11 1.4398856314884174E-11 1.2558295676687504E-11 + 1.0945282183384918E-11 9.5326825022742256E-12 8.2964738221580181E-12 + 7.2154023821812193E-12 6.2706777243222515E-12 5.4456991298836065E-12 + 4.7258110298231462E-12 4.0980844797684103E-12 3.5511220653128106E-12 + 3.0748838537993740E-12 2.6605322372008068E-12 2.3002937187069260E-12 + 1.9873358849076195E-12 1.7156579775598342E-12 1.4799936352870008E-12 + 1.2757245175047906E-12 1.0988036516243895E-12 9.4568746128558388E-13 + 8.1327553906009151E-13 6.9885732270322154E-13 6.0006492050404576E-13 + 5.1483140940591239E-13 4.4135400008846099E-13 3.7806152680704257E-13 + 3.2358577710599802E-13 2.7673622813657047E-13 2.3647780274772896E-13 + 2.0191130026288143E-13 1.7225619435016287E-13 1.4683552404276010E-13 + 1.2506263413750759E-13 1.0642954823085935E-13 9.0496781847577222E-14 + 7.6884424757624129E-14 6.5264340914088919E-14 5.5353351709540469E-14 + 4.6907283648679832E-14 3.9715775260783320E-14 3.3597750297519898E-14 + 2.8397475135369741E-14 2.3981127967196360E-14 2.0233815951138707E-14 + 1.7056984101086901E-14 1.4366166454540103E-14 1.2089036033332343E-14 + 1.0163715403952153E-14 8.5373143219545101E-15 7.1646650765791684E-15 + 6.0072297975431933E-15 5.0321572001861363E-15 4.2114690761698073E-15 + 3.5213593281142266E-15 2.9415905366126621E-15 2.4549749715862778E-15 + 2.0469286477416582E-15 1.7050885034518009E-15 1.4189840781381436E-15 + 1.1797561969249872E-15 9.7991616227234466E-16 8.1313981760562391E-16 + 6.7409160283126151E-16 5.5827437945654159E-16 4.6190137594825540E-16 + 3.8178710208100207E-16 3.1525451270727707E-16 2.6005608204574425E-16 + 2.1430676909745432E-16 1.7642711447428403E-16 1.4509508360097338E-16 + 1.1920524274142411E-16 9.7833887223744616E-17 8.0211008981750057E-17 + 6.5694344904454580E-17 5.3748817050086866E-17 4.3929303631066149E-17 + + + -7.6339251106243677E-01 -7.6339251088967885E-01 -7.6339251036768752E-01 + -7.6339250949083781E-01 -7.6339250825343330E-01 -7.6339250664970615E-01 + -7.6339250467381659E-01 -7.6339250231985156E-01 -7.6339249958182398E-01 + -7.6339249645367235E-01 -7.6339249292925915E-01 -7.6339248900237078E-01 + -7.6339248466671594E-01 -7.6339247991592574E-01 -7.6339247474355088E-01 + -7.6339246914306325E-01 -7.6339246310785280E-01 -7.6339245663122879E-01 + -7.6339244970641584E-01 -7.6339244232655712E-01 -7.6339243448470839E-01 + -7.6339242617384195E-01 -7.6339241738684194E-01 -7.6339240811650555E-01 + -7.6339239835554107E-01 -7.6339238809656651E-01 -7.6339237733211052E-01 + -7.6339236605460825E-01 -7.6339235425640317E-01 -7.6339234192974448E-01 + -7.6339232906678678E-01 -7.6339231565958798E-01 -7.6339230170010863E-01 + -7.6339228718021268E-01 -7.6339227209166283E-01 -7.6339225642612174E-01 + -7.6339224017515095E-01 -7.6339222333020917E-01 -7.6339220588265078E-01 + -7.6339218782372453E-01 -7.6339216914457397E-01 -7.6339214983623394E-01 + -7.6339212988963112E-01 -7.6339210929558221E-01 -7.6339208804479164E-01 + -7.6339206612785293E-01 -7.6339204353524404E-01 -7.6339202025732911E-01 + -7.6339199628435528E-01 -7.6339197160645189E-01 -7.6339194621362938E-01 + -7.6339192009577728E-01 -7.6339189324266410E-01 -7.6339186564393491E-01 + -7.6339183728910887E-01 -7.6339180816758168E-01 -7.6339177826861959E-01 + -7.6339174758136019E-01 -7.6339171609481160E-01 -7.6339168379784950E-01 + -7.6339165067921644E-01 -7.6339161672752021E-01 -7.6339158193123202E-01 + -7.6339154627868555E-01 -7.6339150975807468E-01 -7.6339147235745253E-01 + -7.6339143406472976E-01 -7.6339139486767293E-01 -7.6339135475390141E-01 + -7.6339131371088909E-01 -7.6339127172595955E-01 -7.6339122878628551E-01 + -7.6339118487888769E-01 -7.6339113999063157E-01 -7.6339109410822836E-01 + -7.6339104721822959E-01 -7.6339099930702858E-01 -7.6339095036085669E-01 + -7.6339090036578261E-01 -7.6339084930770951E-01 -7.6339079717237401E-01 + -7.6339074394534445E-01 -7.6339068961201750E-01 -7.6339063415761821E-01 + -7.6339057756719697E-01 -7.6339051982562744E-01 -7.6339046091760521E-01 + -7.6339040082764553E-01 -7.6339033954008051E-01 -7.6339027703905860E-01 + -7.6339021330854073E-01 -7.6339014833230090E-01 -7.6339008209392023E-01 + -7.6339001457678834E-01 -7.6338994576409946E-01 -7.6338987563885008E-01 + -7.6338980418383784E-01 -7.6338973138165833E-01 -7.6338965721470298E-01 + -7.6338958166515747E-01 -7.6338950471499889E-01 -7.6338942634599261E-01 + -7.6338934653969182E-01 -7.6338926527743345E-01 -7.6338918254033583E-01 + -7.6338909830929835E-01 -7.6338901256499625E-01 -7.6338892528787916E-01 + -7.6338883645816913E-01 -7.6338874605585816E-01 -7.6338865406070433E-01 + -7.6338856045222991E-01 -7.6338846520972015E-01 -7.6338836831221735E-01 + -7.6338826973852170E-01 -7.6338816946718591E-01 -7.6338806747651466E-01 + -7.6338796374455919E-01 -7.6338785824911704E-01 -7.6338775096772815E-01 + -7.6338764187767150E-01 -7.6338753095596246E-01 -7.6338741817935107E-01 + -7.6338730352431694E-01 -7.6338718696706809E-01 -7.6338706848353710E-01 + -7.6338694804937857E-01 -7.6338682563996407E-01 -7.6338670123038233E-01 + -7.6338657479543348E-01 -7.6338644630962615E-01 -7.6338631574717597E-01 + -7.6338618308199990E-01 -7.6338604828771461E-01 -7.6338591133763245E-01 + -7.6338577220475823E-01 -7.6338563086178601E-01 -7.6338548728109501E-01 + -7.6338534143474668E-01 -7.6338519329448129E-01 -7.6338504283171338E-01 + -7.6338489001752963E-01 -7.6338473482268387E-01 -7.6338457721759412E-01 + -7.6338441717233907E-01 -7.6338425465665294E-01 -7.6338408963992355E-01 + -7.6338392209118722E-01 -7.6338375197912522E-01 -7.6338357927205991E-01 + -7.6338340393795068E-01 -7.6338322594438945E-01 -7.6338304525859790E-01 + -7.6338286184742166E-01 -7.6338267567732776E-01 -7.6338248671439923E-01 + -7.6338229492433129E-01 -7.6338210027242748E-01 -7.6338190272359419E-01 + -7.6338170224233770E-01 -7.6338149879275852E-01 -7.6338129233854757E-01 + -7.6338108284298156E-01 -7.6338087026891832E-01 -7.6338065457879201E-01 + -7.6338043573460868E-01 -7.6338021369794118E-01 -7.6337998842992472E-01 + -7.6337975989125273E-01 -7.6337952804217013E-01 -7.6337929284246964E-01 + -7.6337905425148678E-01 -7.6337881222809445E-01 -7.6337856673069870E-01 + -7.6337831771723097E-01 -7.6337806514514694E-01 -7.6337780897141760E-01 + -7.6337754915252554E-01 -7.6337728564446028E-01 -7.6337701840271033E-01 + -7.6337674738226069E-01 -7.6337647253758489E-01 -7.6337619382264055E-01 + -7.6337591119086357E-01 -7.6337562459516228E-01 -7.6337533398791124E-01 + -7.6337503932094564E-01 -7.6337474054555587E-01 -7.6337443761248047E-01 + -7.6337413047190095E-01 -7.6337381907343527E-01 -7.6337350336613152E-01 + -7.6337318329846193E-01 -7.6337285881831596E-01 -7.6337252987299475E-01 + -7.6337219640920384E-01 -7.6337185837304744E-01 -7.6337151571002060E-01 + -7.6337116836500374E-01 -7.6337081628225500E-01 -7.6337045940540393E-01 + -7.6337009767744446E-01 -7.6336973104072736E-01 -7.6336935943695394E-01 + -7.6336898280716858E-01 -7.6336860109175175E-01 -7.6336821423041179E-01 + -7.6336782216217858E-01 -7.6336742482539577E-01 -7.6336702215771302E-01 + -7.6336661409607820E-01 -7.6336620057673021E-01 -7.6336578153519130E-01 + -7.6336535690625762E-01 -7.6336492662399369E-01 -7.6336449062172285E-01 + -7.6336404883201892E-01 -7.6336360118669877E-01 -7.6336314761681290E-01 + -7.6336268805263918E-01 -7.6336222242367158E-01 -7.6336175065861356E-01 + -7.6336127268536857E-01 -7.6336078843103206E-01 -7.6336029782188075E-01 + -7.6335980078336585E-01 -7.6335929724010287E-01 -7.6335878711586214E-01 + -7.6335827033356107E-01 -7.6335774681525215E-01 -7.6335721648211652E-01 + -7.6335667925445172E-01 -7.6335613505166400E-01 -7.6335558379225776E-01 + -7.6335502539382494E-01 -7.6335445977303640E-01 -7.6335388684563066E-01 + -7.6335330652640410E-01 -7.6335271872920152E-01 -7.6335212336690372E-01 + -7.6335152035141840E-01 -7.6335090959366991E-01 -7.6335029100358676E-01 + -7.6334966449009223E-01 -7.6334902996109244E-01 -7.6334838732346599E-01 + -7.6334773648305199E-01 -7.6334707734463880E-01 -7.6334640981195323E-01 + -7.6334573378764781E-01 -7.6334504917329005E-01 -7.6334435586934957E-01 + -7.6334365377518687E-01 -7.6334294278904125E-01 -7.6334222280801756E-01 + -7.6334149372807469E-01 -7.6334075544401292E-01 -7.6334000784946132E-01 + -7.6333925083686371E-01 -7.6333848429746765E-01 -7.6333770812131041E-01 + -7.6333692219720495E-01 -7.6333612641272730E-01 -7.6333532065420417E-01 + -7.6333450480669696E-01 -7.6333367875398905E-01 -7.6333284237857313E-01 + -7.6333199556163400E-01 -7.6333113818303799E-01 -7.6333027012131516E-01 + -7.6332939125364674E-01 -7.6332850145584974E-01 -7.6332760060236293E-01 + -7.6332668856622932E-01 -7.6332576521908435E-01 -7.6332483043113730E-01 + -7.6332388407115781E-01 -7.6332292600645946E-01 -7.6332195610288400E-01 + -7.6332097422478495E-01 -7.6331998023501157E-01 -7.6331897399489168E-01 + -7.6331795536421798E-01 -7.6331692420122621E-01 -7.6331588036258335E-01 + -7.6331482370336723E-01 -7.6331375407704993E-01 -7.6331267133548053E-01 + -7.6331157532886806E-01 -7.6331046590576190E-01 -7.6330934291303520E-01 + -7.6330820619586581E-01 -7.6330705559771783E-01 -7.6330589096032364E-01 + -7.6330471212366413E-01 -7.6330351892594928E-01 -7.6330231120360070E-01 + -7.6330108879122960E-01 -7.6329985152161983E-01 -7.6329859922570464E-01 + -7.6329733173254988E-01 -7.6329604886933167E-01 -7.6329475046131523E-01 + -7.6329343633183666E-01 -7.6329210630227917E-01 -7.6329076019205355E-01 + -7.6328939781857508E-01 -7.6328801899724352E-01 -7.6328662354142041E-01 + -7.6328521126240612E-01 -7.6328378196941904E-01 -7.6328233546957092E-01 + -7.6328087156784585E-01 -7.6327939006707524E-01 -7.6327789076791641E-01 + -7.6327637346882660E-01 -7.6327483796604123E-01 -7.6327328405354788E-01 + -7.6327171152306306E-01 -7.6327012016400708E-01 -7.6326850976347838E-01 + -7.6326688010622989E-01 -7.6326523097464161E-01 -7.6326356214869606E-01 + -7.6326187340595142E-01 -7.6326016452151635E-01 -7.6325843526802084E-01 + -7.6325668541559255E-01 -7.6325491473182727E-01 -7.6325312298176184E-01 + -7.6325130992784618E-01 -7.6324947532991605E-01 -7.6324761894516391E-01 + -7.6324574052810978E-01 -7.6324383983057298E-01 -7.6324191660164242E-01 + -7.6323997058764681E-01 -7.6323800153212429E-01 -7.6323600917579348E-01 + -7.6323399325652097E-01 -7.6323195350929185E-01 -7.6322988966617678E-01 + -7.6322780145630276E-01 -7.6322568860581752E-01 -7.6322355083786120E-01 + -7.6322138787253091E-01 -7.6321919942684813E-01 -7.6321698521472581E-01 + -7.6321474494693486E-01 -7.6321247833106831E-01 -7.6321018507150906E-01 + -7.6320786486939385E-01 -7.6320551742257736E-01 -7.6320314242559784E-01 + -7.6320073956964007E-01 -7.6319830854249948E-01 -7.6319584902854565E-01 + -7.6319336070868393E-01 -7.6319084326031905E-01 -7.6318829635731633E-01 + -7.6318571966996318E-01 -7.6318311286493146E-01 -7.6318047560523650E-01 + -7.6317780755019871E-01 -7.6317510835540248E-01 -7.6317237767265689E-01 + -7.6316961514995274E-01 -7.6316682043142348E-01 -7.6316399315730188E-01 + -7.6316113296387766E-01 -7.6315823948345518E-01 -7.6315531234431000E-01 + -7.6315235117064550E-01 -7.6314935558254782E-01 -7.6314632519594205E-01 + -7.6314325962254714E-01 -7.6314015846982886E-01 -7.6313702134095585E-01 + -7.6313384783475147E-01 -7.6313063754564647E-01 -7.6312739006363317E-01 + -7.6312410497421457E-01 -7.6312078185835819E-01 -7.6311742029244578E-01 + -7.6311401984822358E-01 -7.6311058009275146E-01 -7.6310710058835340E-01 + -7.6310358089256636E-01 -7.6310002055808601E-01 -7.6309641913271642E-01 + -7.6309277615931659E-01 -7.6308909117574664E-01 -7.6308536371481372E-01 + -7.6308159330421632E-01 -7.6307777946649080E-01 -7.6307392171895383E-01 + -7.6307001957364629E-01 -7.6306607253727710E-01 -7.6306208011116328E-01 + -7.6305804179117331E-01 -7.6305395706766832E-01 -7.6304982542544009E-01 + -7.6304564634365379E-01 -7.6304141929578495E-01 -7.6303714374955833E-01 + -7.6303281916688559E-01 -7.6302844500380329E-01 -7.6302402071040742E-01 + -7.6301954573079089E-01 -7.6301501950297690E-01 -7.6301044145885510E-01 + -7.6300581102411313E-01 -7.6300112761817107E-01 -7.6299639065411240E-01 + -7.6299159953861662E-01 -7.6298675367188895E-01 -7.6298185244759076E-01 + -7.6297689525276813E-01 -7.6297188146778083E-01 -7.6296681046623038E-01 + -7.6296168161488553E-01 -7.6295649427360968E-01 -7.6295124779528511E-01 + -7.6294594152573814E-01 -7.6294057480366284E-01 -7.6293514696054354E-01 + -7.6292965732057616E-01 -7.6292410520059117E-01 -7.6291848990997224E-01 + -7.6291281075057626E-01 -7.6290706701665223E-01 -7.6290125799475872E-01 + -7.6289538296368020E-01 -7.6288944119434376E-01 -7.6288343194973440E-01 + -7.6287735448480765E-01 -7.6287120804640407E-01 -7.6286499187316159E-01 + -7.6285870519542553E-01 -7.6285234723516038E-01 -7.6284591720585870E-01 + -7.6283941431244917E-01 -7.6283283775120414E-01 -7.6282618670964664E-01 + -7.6281946036645543E-01 -7.6281265789136921E-01 -7.6280577844509079E-01 + -7.6279882117918774E-01 -7.6279178523599578E-01 -7.6278466974851811E-01 + -7.6277747384032391E-01 -7.6277019662544765E-01 -7.6276283720828553E-01 + -7.6275539468349129E-01 -7.6274786813587048E-01 -7.6274025664027523E-01 + -7.6273255926149630E-01 -7.6272477505415448E-01 -7.6271690306258932E-01 + -7.6270894232075104E-01 -7.6270089185208567E-01 -7.6269275066942310E-01 + -7.6268451777486201E-01 -7.6267619215965410E-01 -7.6266777280408649E-01 + -7.6265925867736450E-01 -7.6265064873749133E-01 -7.6264194193114654E-01 + -7.6263313719356485E-01 -7.6262423344841301E-01 -7.6261522960766315E-01 + -7.6260612457146826E-01 -7.6259691722803435E-01 -7.6258760645349011E-01 + -7.6257819111176006E-01 -7.6256867005442841E-01 -7.6255904212060932E-01 + -7.6254930613681138E-01 -7.6253946091680114E-01 -7.6252950526146579E-01 + -7.6251943795867549E-01 -7.6250925778314194E-01 -7.6249896349627555E-01 + -7.6248855384604453E-01 -7.6247802756682792E-01 -7.6246738337926956E-01 + -7.6245661999013059E-01 -7.6244573609213995E-01 -7.6243473036384091E-01 + -7.6242360146944155E-01 -7.6241234805865810E-01 -7.6240096876655883E-01 + -7.6238946221340742E-01 -7.6237782700450218E-01 -7.6236606173001553E-01 + -7.6235416496483022E-01 -7.6234213526837658E-01 -7.6232997118446366E-01 + -7.6231767124111183E-01 -7.6230523395038385E-01 -7.6229265780821209E-01 + -7.6227994129422372E-01 -7.6226708287156753E-01 -7.6225408098673408E-01 + -7.6224093406937921E-01 -7.6222764053213887E-01 -7.6221419877044982E-01 + -7.6220060716236238E-01 -7.6218686406835334E-01 -7.6217296783113797E-01 + -7.6215891677547709E-01 -7.6214470920798594E-01 -7.6213034341693686E-01 + -7.6211581767206438E-01 -7.6210113022436254E-01 -7.6208627930588668E-01 + -7.6207126312954721E-01 -7.6205607988890511E-01 -7.6204072775796383E-01 + -7.6202520489095671E-01 -7.6200950942213785E-01 -7.6199363946556531E-01 + -7.6197759311488378E-01 -7.6196136844310580E-01 -7.6194496350238961E-01 + -7.6192837632381560E-01 -7.6191160491715870E-01 -7.6189464727066070E-01 + -7.6187750135079757E-01 -7.6186016510204591E-01 -7.6184263644664818E-01 + -7.6182491328437041E-01 -7.6180699349226488E-01 -7.6178887492442293E-01 + -7.6177055541172944E-01 -7.6175203276161429E-01 -7.6173330475779921E-01 + -7.6171436916004343E-01 -7.6169522370388820E-01 -7.6167586610039462E-01 + -7.6165629403588087E-01 -7.6163650517165815E-01 -7.6161649714376178E-01 + -7.6159626756267873E-01 -7.6157581401307495E-01 -7.6155513405351760E-01 + -7.6153422521619507E-01 -7.6151308500663406E-01 -7.6149171090341405E-01 + -7.6147010035787743E-01 -7.6144825079383749E-01 -7.6142615960728433E-01 + -7.6140382416608521E-01 -7.6138124180968336E-01 -7.6135840984879333E-01 + -7.6133532556509387E-01 -7.6131198621091567E-01 -7.6128838900892626E-01 + -7.6126453115181458E-01 -7.6124040980196694E-01 -7.6121602209114425E-01 + -7.6119136512015317E-01 -7.6116643595851463E-01 -7.6114123164412917E-01 + -7.6111574918293723E-01 -7.6108998554857910E-01 -7.6106393768204605E-01 + -7.6103760249133356E-01 -7.6101097685108654E-01 -7.6098405760224286E-01 + -7.6095684155167320E-01 -7.6092932547181469E-01 -7.6090150610030516E-01 + -7.6087338013960892E-01 -7.6084494425664051E-01 -7.6081619508238596E-01 + -7.6078712921151781E-01 -7.6075774320200529E-01 -7.6072803357472407E-01 + -7.6069799681305983E-01 -7.6066762936250543E-01 -7.6063692763025836E-01 + -7.6060588798480866E-01 -7.6057450675552940E-01 -7.6054278023225430E-01 + -7.6051070466485926E-01 -7.6047827626283293E-01 -7.6044549119484628E-01 + -7.6041234558831772E-01 -7.6037883552897179E-01 -7.6034495706039329E-01 + -7.6031070618357977E-01 -7.6027607885648474E-01 -7.6024107099356031E-01 + -7.6020567846529197E-01 -7.6016989709772909E-01 -7.6013372267201362E-01 + -7.6009715092389774E-01 -7.6006017754326283E-01 -7.6002279817362850E-01 + -7.5998500841165995E-01 -7.5994680380666713E-01 -7.5990817986010251E-01 + -7.5986913202504802E-01 -7.5982965570570205E-01 -7.5978974625685936E-01 + -7.5974939898338290E-01 -7.5970860913967342E-01 -7.5966737192913281E-01 + -7.5962568250362006E-01 -7.5958353596290396E-01 -7.5954092735410850E-01 + -7.5949785167115169E-01 -7.5945430385418289E-01 -7.5941027878900647E-01 + -7.5936577130650806E-01 -7.5932077618206928E-01 -7.5927528813497680E-01 + -7.5922930182782766E-01 -7.5918281186592740E-01 -7.5913581279667985E-01 + -7.5908829910897335E-01 -7.5904026523255874E-01 -7.5899170553742301E-01 + -7.5894261433315324E-01 -7.5889298586829634E-01 -7.5884281432971223E-01 + -7.5879209384191737E-01 -7.5874081846642694E-01 -7.5868898220108305E-01 + -7.5863657897938297E-01 -7.5858360266979463E-01 -7.5853004707506999E-01 + -7.5847590593154568E-01 -7.5842117290844335E-01 -7.5836584160715637E-01 + -7.5830990556053146E-01 -7.5825335823214590E-01 -7.5819619301557040E-01 + -7.5813840323363202E-01 -7.5807998213766503E-01 -7.5802092290675283E-01 + -7.5796121864696675E-01 -7.5790086239059307E-01 -7.5783984709535268E-01 + -7.5777816564361500E-01 -7.5771581084160022E-01 -7.5765277541857690E-01 + -7.5758905202604787E-01 -7.5752463323693153E-01 -7.5745951154473001E-01 + -7.5739367936269408E-01 -7.5732712902297472E-01 -7.5725985277576990E-01 + -7.5719184278845919E-01 -7.5712309114473120E-01 -7.5705358984370330E-01 + -7.5698333079902913E-01 -7.5691230583800040E-01 -7.5684050670063663E-01 + -7.5676792503876678E-01 -7.5669455241510231E-01 -7.5662038030229950E-01 + -7.5654540008201299E-01 -7.5646960304393829E-01 -7.5639298038484648E-01 + -7.5631552320760831E-01 -7.5623722252020664E-01 -7.5615806923474216E-01 + -7.5607805416642604E-01 -7.5599716803256378E-01 -7.5591540145152858E-01 + -7.5583274494172292E-01 -7.5574918892053333E-01 -7.5566472370326954E-01 + -7.5557933950209555E-01 -7.5549302642495175E-01 -7.5540577447446178E-01 + -7.5531757354683149E-01 -7.5522841343073588E-01 -7.5513828380619497E-01 + -7.5504717424343737E-01 -7.5495507420175456E-01 -7.5486197302834057E-01 + -7.5476785995712292E-01 -7.5467272410757968E-01 -7.5457655448354632E-01 + -7.5447933997200933E-01 -7.5438106934188720E-01 -7.5428173124280207E-01 + -7.5418131420383550E-01 -7.5407980663227370E-01 -7.5397719681234110E-01 + -7.5387347290391826E-01 -7.5376862294125013E-01 -7.5366263483163931E-01 + -7.5355549635412789E-01 -7.5344719515816450E-01 -7.5333771876226030E-01 + -7.5322705455262773E-01 -7.5311518978181136E-01 -7.5300211156730013E-01 + -7.5288780689012813E-01 -7.5277226259346219E-01 -7.5265546538117301E-01 + -7.5253740181639439E-01 -7.5241805832006836E-01 -7.5229742116947396E-01 + -7.5217547649674332E-01 -7.5205221028736258E-01 -7.5192760837865802E-01 + -7.5180165645826702E-01 -7.5167434006259504E-01 -7.5154564457525685E-01 + -7.5141555522550152E-01 -7.5128405708662460E-01 -7.5115113507436271E-01 + -7.5101677394527178E-01 -7.5088095829509216E-01 -7.5074367255709673E-01 + -7.5060490100042143E-01 -7.5046462772838196E-01 -7.5032283667677224E-01 + -7.5017951161214869E-01 -7.5003463613009391E-01 -7.4988819365346993E-01 + -7.4974016743064764E-01 -7.4959054053372487E-01 -7.4943929585672320E-01 + -7.4928641611377034E-01 -7.4913188383726448E-01 -7.4897568137602000E-01 + -7.4881779089339584E-01 -7.4865819436540726E-01 -7.4849687357881833E-01 + -7.4833381012921663E-01 -7.4816898541907018E-01 -7.4800238065576485E-01 + -7.4783397684962472E-01 -7.4766375481191294E-01 -7.4749169515281300E-01 + -7.4731777827939239E-01 -7.4714198439354740E-01 -7.4696429348992566E-01 + -7.4678468535383324E-01 -7.4660313955912017E-01 -7.4641963546604562E-01 + -7.4623415221912492E-01 -7.4604666874495484E-01 -7.4585716375002020E-01 + -7.4566561571848033E-01 -7.4547200290993243E-01 -7.4527630335715733E-01 + -7.4507849486384470E-01 -7.4487855500229305E-01 -7.4467646111109487E-01 + -7.4447219029279588E-01 -7.4426571941153485E-01 -7.4405702509066174E-01 + -7.4384608371033356E-01 -7.4363287140509082E-01 -7.4341736406140801E-01 + -7.4319953731522626E-01 -7.4297936654946051E-01 -7.4275682689148659E-01 + -7.4253189321060398E-01 -7.4230454011547886E-01 -7.4207474195155965E-01 + -7.4184247279847426E-01 -7.4160770646740237E-01 -7.4137041649842328E-01 + -7.4113057615784317E-01 -7.4088815843549638E-01 -7.4064313604202414E-01 + -7.4039548140613054E-01 -7.4014516667181174E-01 -7.3989216369556432E-01 + -7.3963644404356810E-01 -7.3937797898884339E-01 -7.3911673950838619E-01 + -7.3885269628027728E-01 -7.3858581968076709E-01 -7.3831607978133595E-01 + -7.3804344634572761E-01 -7.3776788882696176E-01 -7.3748937636431622E-01 + -7.3720787778028762E-01 -7.3692336157752480E-01 -7.3663579593573858E-01 + -7.3634514870858192E-01 -7.3605138742050857E-01 -7.3575447926360427E-01 + -7.3545439109439081E-01 -7.3515108943060470E-01 -7.3484454044795078E-01 + -7.3453470997682735E-01 -7.3422156349902712E-01 -7.3390506614440965E-01 + -7.3358518268754813E-01 -7.3326187754434935E-01 -7.3293511476864692E-01 + -7.3260485804876851E-01 -7.3227107070407238E-01 -7.3193371568146226E-01 + -7.3159275555187164E-01 -7.3124815250672059E-01 -7.3089986835434839E-01 + -7.3054786451641462E-01 -7.3019210202427665E-01 -7.2983254151533672E-01 + -7.2946914322936518E-01 -7.2910186700479096E-01 -7.2873067227496935E-01 + -7.2835551806442000E-01 -7.2797636298503643E-01 -7.2759316523227102E-01 + -7.2720588258128704E-01 -7.2681447238308983E-01 -7.2641889156062356E-01 + -7.2601909660484487E-01 -7.2561504357076634E-01 -7.2520668807347421E-01 + -7.2479398528411620E-01 -7.2437688992586369E-01 -7.2395535626984397E-01 + -7.2352933813104803E-01 -7.2309878886420742E-01 -7.2266366135964666E-01 + -7.2222390803910519E-01 -7.2177948085153454E-01 -7.2133033126886659E-01 + -7.2087641028175553E-01 -7.2041766839529198E-01 -7.1995405562468973E-01 + -7.1948552149094835E-01 -7.1901201501648404E-01 -7.1853348472073797E-01 + -7.1804987861575731E-01 -7.1756114420174844E-01 -7.1706722846260473E-01 + -7.1656807786140786E-01 -7.1606363833590536E-01 -7.1555385529395954E-01 + -7.1503867360897144E-01 -7.1451803761528232E-01 -7.1399189110354666E-01 + -7.1346017731608169E-01 -7.1292283894219377E-01 -7.1237981811347739E-01 + -7.1183105639909305E-01 -7.1127649480102151E-01 -7.1071607374929102E-01 + -7.1014973309718610E-01 -7.0957741211643144E-01 -7.0899904949235193E-01 + -7.0841458331901408E-01 -7.0782395109434348E-01 -7.0722708971522130E-01 + -7.0662393547256208E-01 -7.0601442404636694E-01 -7.0539849050076253E-01 + -7.0477606927901437E-01 -7.0414709419852795E-01 -7.0351149844582561E-01 + -7.0286921457150930E-01 -7.0222017448520435E-01 -7.0156430945048676E-01 + -7.0090155007979493E-01 -7.0023182632932646E-01 -6.9955506749391805E-01 + -6.9887120220191301E-01 -6.9818015841001457E-01 -6.9748186339812712E-01 + -6.9677624376418434E-01 -6.9606322541896726E-01 -6.9534273358091092E-01 + -6.9461469277090149E-01 -6.9387902680706615E-01 -6.9313565879955175E-01 + -6.9238451114530120E-01 -6.9162550552281787E-01 -6.9085856288693015E-01 + -6.9008360346354980E-01 -6.8930054674442642E-01 -6.8850931148190042E-01 + -6.8770981568365663E-01 -6.8690197660747498E-01 -6.8608571075598568E-01 + -6.8526093387142395E-01 -6.8442756093039137E-01 -6.8358550613861968E-01 + -6.8273468292574280E-01 -6.8187500394007572E-01 -6.8100638104340172E-01 + -6.8012872530577129E-01 -6.7924194700031226E-01 -6.7834595559805300E-01 + -6.7744065976276191E-01 -6.7652596734580162E-01 -6.7560178538100291E-01 + -6.7466802007955784E-01 -6.7372457682493359E-01 -6.7277136016781169E-01 + -6.7180827382105035E-01 -6.7083522065467560E-01 -6.6985210269089868E-01 + -6.6885882109916828E-01 -6.6785527619125373E-01 -6.6684136741635947E-01 + -6.6581699335628575E-01 -6.6478205172061877E-01 -6.6373643934196924E-01 + -6.6268005217125237E-01 -6.6161278527301315E-01 -6.6053453282080277E-01 + -6.5944518809260466E-01 -6.5834464346631449E-01 -6.5723279041527594E-01 + -6.5610951950387852E-01 -6.5497472038321181E-01 -6.5382828178679053E-01 + -6.5267009152634126E-01 -6.5150003648766541E-01 -6.5031800262657014E-01 + -6.4912387496487989E-01 -6.4791753758652681E-01 -6.4669887363372225E-01 + -6.4546776530321825E-01 -6.4422409384265544E-01 -6.4296773954700692E-01 + -6.4169858175511651E-01 -6.4041649884634111E-01 -6.3912136823729315E-01 + -6.3781306637869584E-01 -6.3649146875234641E-01 -6.3515644986819908E-01 + -6.3380788326156445E-01 -6.3244564149043925E-01 -6.3106959613295810E-01 + -6.2967961778498382E-01 -6.2827557605783257E-01 -6.2685733957614354E-01 + -6.2542477597589441E-01 -6.2397775190256866E-01 -6.2251613300948072E-01 + -6.2103978395626325E-01 -6.1954856840751960E-01 -6.1804234903165134E-01 + -6.1652098749986117E-01 -6.1498434448534189E-01 -6.1343227966265124E-01 + -6.1186465170728321E-01 -6.1028131829544052E-01 -6.0868213610401134E-01 + -6.0706696081076161E-01 -6.0543564709474362E-01 -6.0378804863693236E-01 + -6.0212401812109162E-01 -6.0044340723487977E-01 -5.9874606667120167E-01 + -5.9703184612981064E-01 -5.9530059431917193E-01 -5.9355215895859237E-01 + -5.9178638678062312E-01 -5.9000312353374451E-01 -5.8820221398534123E-01 + -5.8638350192497168E-01 -5.8454683016794629E-01 -5.8269204055921719E-01 + -5.8081897397758686E-01 -5.7892747034025349E-01 -5.7701736860768627E-01 + -5.7508850678885770E-01 -5.7314072194682442E-01 -5.7117385020467859E-01 + -5.6918772675187235E-01 -5.6718218585092861E-01 -5.6515706084454276E-01 + -5.6311218416309239E-01 -5.6104738733256121E-01 -5.5896250098288269E-01 + -5.5685735485672494E-01 -5.5473177781871685E-01 -5.5258559786513417E-01 + -5.5041864213404990E-01 -5.4823073691596647E-01 -5.4602170766493496E-01 + -5.4379137901018149E-01 -5.4153957476824077E-01 -5.3926611795562074E-01 + -5.3697083080200392E-01 -5.3465353476399835E-01 -5.3231405053945313E-01 + -5.2995219808235072E-01 -5.2756779661828701E-01 -5.2516066466055544E-01 + -5.2273062002684956E-01 -5.2027747985659178E-01 -5.1780106062890863E-01 + -5.1530117818126675E-01 -5.1277764772877799E-01 -5.1023028388419656E-01 + -5.0765890067861663E-01 -5.0506331158288764E-01 -5.0244332952976645E-01 + -4.9979876693681552E-01 -4.9712943573006674E-01 -4.9443514736847083E-01 + -4.9171571286913812E-01 -4.8897094283340009E-01 -4.8620064747369757E-01 + -4.8340463664132149E-01 -4.8058271985501588E-01 -4.7773470633047049E-01 + -4.7486040501070598E-01 -4.7195962459738855E-01 -4.6903217358307558E-01 + -4.6607786028442200E-01 -4.6309649287636051E-01 -4.6008787942727702E-01 + -4.5705182793519966E-01 -4.5398814636502433E-01 -4.5089664268678825E-01 + -4.4777712491502220E-01 -4.4462940114919464E-01 -4.4145327961526964E-01 + -4.3824856870840190E-01 -4.3501507703678666E-01 -4.3175261346668625E-01 + -4.2846098716865705E-01 -4.2514000766499921E-01 -4.2178948487844065E-01 + -4.1840922918209567E-01 -4.1499905145070315E-01 -4.1155876311317774E-01 + -4.0808817620649024E-01 -4.0458710343090615E-01 -4.0105535820659788E-01 + -3.9749275473166262E-01 -3.9389910804156020E-01 -3.9027423407000028E-01 + -3.8661794971130420E-01 -3.8293007288425707E-01 -3.7921042259748294E-01 + -3.7545881901636224E-01 -3.7167508353151513E-01 -3.6785903882887949E-01 + -3.6401050896140447E-01 -3.6012931942238063E-01 -3.5621529722043999E-01 + -3.5226827095624313E-01 -3.4828807090088099E-01 -3.4427452907601369E-01 + -3.4022747933577402E-01 -3.3614675745045686E-01 -3.3203220119202331E-01 + -3.2788365042143502E-01 -3.2370094717785647E-01 -3.1948393576973544E-01 + -3.1523246286779699E-01 -3.1094637759996552E-01 -3.0662553164824707E-01 + -3.0226977934758797E-01 -2.9787897778673700E-01 -2.9345298691113675E-01 + -2.8899166962785655E-01 -2.8449489191260108E-01 -2.7996252291881130E-01 + -2.7539443508887734E-01 -2.7079050426748780E-01 -2.6615060981713440E-01 + -2.6147463473579302E-01 -2.5676246577680062E-01 -2.5201399357094389E-01 + -2.4722911275078238E-01 -2.4240772207722242E-01 -2.3754972456835685E-01 + -2.3265502763058674E-01 -2.2772354319204344E-01 -2.2275518783832177E-01 + -2.1774988295053749E-01 -2.1270755484572718E-01 -2.0762813491959028E-01 + -2.0251155979159566E-01 -1.9735777145245484E-01 -1.9216671741396943E-01 + -1.8693835086126001E-01 -1.8167263080738225E-01 -1.7636952225033145E-01 + -1.7102899633243965E-01 -1.6565103050215835E-01 -1.6023560867823575E-01 + -1.5478272141627644E-01 -1.4929236607767893E-01 -1.4376454700094629E-01 + -1.3819927567535711E-01 -1.3259657091698496E-01 -1.2695645904705535E-01 + -1.2127897407261137E-01 -1.1556415786948615E-01 -1.0981206036754422E-01 + -1.0402273973817280E-01 -9.8196262583994526E-02 -9.2332704130768647E-02 + -8.6432148421446878E-02 -8.0494688512342108E-02 -7.4520426671378967E-02 + -6.8509474578359944E-02 -6.2461953527220858E-02 -5.6377994630206880E-02 + -5.0257739023916538E-02 -4.4101338077148826E-02 -3.7908953600490465E-02 + -3.1680758057566503E-02 -2.5416934777885595E-02 -1.9117678171183303E-02 + -1.2783193943193733E-02 -6.4136993127447955E-03 -9.4232300814450252E-06 + 6.4293934036876547E-03 1.2902497516133716E-02 1.9409623642153855E-02 + 2.5950493701853747E-02 3.2524816777784515E-02 3.9132288891696343E-02 + 4.5772592780926234E-02 5.2445397674600908E-02 5.9150359069801185E-02 + 6.5887118507869533E-02 7.2655303351037134E-02 7.9454526559559230E-02 + 8.6284386469560159E-02 9.3144466571803378E-02 1.0003433529159309E-01 + 1.0695354577004769E-01 1.1390163564698531E-01 1.2087812684567258E-01 + 1.2788252535969899E-01 1.3491432104226017E-01 1.4197298739813607E-01 + 1.4905798137865781E-01 1.5616874318000615E-01 1.6330469604513687E-01 + 1.7046524606970470E-01 1.7764978201233342E-01 1.8485767510961290E-01 + 1.9208827889620925E-01 1.9934092903050318E-01 2.0661494312617121E-01 + 2.1390962059016996E-01 2.2122424246756547E-01 2.2855807129369871E-01 + 2.3591035095418605E-01 2.4328030655327404E-01 2.5066714429108333E-01 + 2.5807005135031530E-01 2.6548819579299437E-01 2.7292072646785365E-01 + 2.8036677292900974E-01 2.8782544536655796E-01 2.9529583454978314E-01 + 3.0277701178368760E-01 3.1026802887956972E-01 3.1776791814040661E-01 + 3.2527569236183695E-01 3.3279034484954789E-01 3.4031084945393381E-01 + 3.4783616062287459E-01 3.5536521347356781E-01 3.6289692388434236E-01 + 3.7043018860743160E-01 3.7796388540371195E-01 3.8549687320045894E-01 + 3.9302799227319413E-01 4.0055606445273551E-01 4.0807989335863254E-01 + 4.1559826466014599E-01 4.2310994636603777E-01 4.3061368914443332E-01 + 4.3810822667408478E-01 4.4559227602839241E-01 4.5306453809360125E-01 + 4.6052369802261478E-01 4.6796842572595304E-01 4.7539737640137197E-01 + 4.8280919110377218E-01 4.9020249735703775E-01 4.9757590980950334E-01 + 5.0492803093481720E-01 5.1225745177999948E-01 5.1956275276257002E-01 + 5.2684250451866355E-01 5.3409526880412328E-01 5.4131959945059971E-01 + 5.4851404337876819E-01 5.5567714167082716E-01 5.6280743070449812E-01 + 5.6990344335082788E-01 5.7696371023815074E-01 5.8398676108462011E-01 + 5.9097112610182978E-01 5.9791533747206926E-01 6.0481793090184321E-01 + 6.1167744725438722E-01 6.1849243426392808E-01 6.2526144833456854E-01 + 6.3198305642671082E-01 6.3865583803403181E-01 6.4527838725410036E-01 + 6.5184931495579168E-01 6.5836725104674454E-01 6.6483084684419291E-01 + 6.7123877755257300E-01 6.7758974485139756E-01 6.8388247959696891E-01 + 6.9011574464159564E-01 6.9628833777403643E-01 7.0239909478502882E-01 + 7.0844689266178307E-01 7.1443065291546659E-01 7.2034934504575066E-01 + 7.2620199014659670E-01 7.3198766465753629E-01 7.3770550426480219E-01 + 7.4335470795671976E-01 7.4893454223789790E-01 7.5444434550680339E-01 + 7.5988353260140906E-01 7.6525159951768329E-01 7.7054812830576913E-01 + 7.7577279214878136E-01 7.8092536062287787E-01 7.8600570080353405E-01 + 7.9101373396769292E-01 7.9594938926266956E-01 8.0081259944951244E-01 + 8.0560330093112320E-01 8.1032143378709864E-01 8.1496694181698781E-01 + 8.1953977259396782E-01 8.2403987753124397E-01 8.2846721196385453E-01 + 8.3282173524892755E-01 8.3710341088789819E-01 8.4131220667464335E-01 + 8.4544809487400241E-01 8.4951105243570479E-01 8.5350106124929193E-01 + 8.5741810844622701E-01 8.6126218675600463E-01 8.6503329492371106E-01 + 8.6873143819707843E-01 8.7235662889170529E-01 8.7590888704361203E-01 + 8.7938824115878911E-01 8.8279472906969203E-01 8.8612839890882766E-01 + 8.8938931020948864E-01 8.9257753514337301E-01 8.9569315990408238E-01 + 8.9873628624439628E-01 9.0170703317350165E-01 9.0460553881807559E-01 + 9.0743196244807856E-01 9.1018648666422708E-01 9.1286931973928465E-01 + 9.1548069809940680E-01 9.1802088892472333E-01 9.2049019284003308E-01 + 9.2288894665691490E-01 9.2521752611765273E-01 9.2747634857921823E-01 + 9.2966587556226443E-01 9.3178661507583993E-01 9.3383912361373089E-01 + 9.3582400770342389E-01 9.3774192487438734E-01 9.3959358389965530E-01 + 9.4137974415470982E-01 9.4310121393201496E-01 9.4475884755008255E-01 + 9.4635354110482062E-01 9.4788622673054213E-01 9.4935786527090460E-01 + 9.5076943730842156E-01 9.5212193256670863E-01 9.5341633778276602E-01 + 9.5465362324583369E-01 9.5583472831079042E-01 9.5696054631046479E-01 + 9.5803190940218297E-01 9.5904957397599722E-01 9.6001420731040055E-01 + 9.6092637617154952E-01 9.6178653800328462E-01 9.6259503524307921E-01 + 9.6335209312809489E-01 9.6405782113978800E-01 9.6471221799763551E-01 + 9.6531517987981230E-01 9.6586651134857149E-01 9.6636593831288364E-01 + 9.6681312228387917E-01 9.6720767517233297E-01 9.6754917393403872E-01 + 9.6783717447351447E-01 9.6807122435016557E-01 9.6825087397506460E-01 + 9.6837568612497182E-01 9.6844524372162932E-01 9.6845915592209542E-01 + 9.6841706263773608E-01 9.6831863764640802E-01 9.6816359048762168E-01 + 9.6795166733826676E-01 9.6768265106132556E-01 9.6735636060605024E-01 + 9.6697264991886900E-01 9.6653140650263203E-01 9.6603254973973207E-01 + 9.6547602907353880E-01 9.6486182212331795E-01 9.6418993279089926E-01 + 9.6346038940279222E-01 9.6267324291940259E-01 9.6182856523308990E-01 + 9.6092644756896439E-01 9.5996699899613724E-01 9.5895034505247900E-01 + 9.5787662648242988E-01 9.5674599808490801E-01 9.5555862766662192E-01 + 9.5431469509498801E-01 9.5301439144417011E-01 9.5165791822749235E-01 + 9.5024548670938469E-01 9.4877731729020720E-01 9.4725363895752657E-01 + 9.4567468879778083E-01 9.4404071156265501E-01 9.4235195928491655E-01 + 9.4060869093886823E-01 9.3881117214099241E-01 9.3695967488676501E-01 + 9.3505447731996660E-01 9.3309586353119989E-01 9.3108412338260771E-01 + 9.2901955235609757E-01 9.2690245142264360E-01 9.2473312693046250E-01 + 9.2251189051009264E-01 9.2023905899459135E-01 9.1791495435322645E-01 + 9.1553990363721749E-01 9.1311423893619925E-01 9.1063829734420809E-01 + 9.0811242093410816E-01 9.0553695673946177E-01 9.0291225674294584E-01 + 9.0023867787049050E-01 8.9751658199038664E-01 8.9474633591666708E-01 + 8.9192831141614370E-01 8.8906288521851096E-01 8.8615043902899138E-01 + 8.8319135954303218E-01 8.8018603846261279E-01 8.7713487251375122E-01 + 8.7403826346483926E-01 8.7089661814545793E-01 8.6771034846537409E-01 + 8.6447987143342886E-01 8.6120560917606004E-01 8.5788798895523521E-01 + 8.5452744318558038E-01 8.5112440945052614E-01 8.4767933051730238E-01 + 8.4419265435064039E-01 8.4066483412504922E-01 8.3709632823556768E-01 + 8.3348760030689262E-01 8.2983911920080011E-01 8.2615135902181003E-01 + 8.2242479912102462E-01 8.1865992409811239E-01 8.1485722380140546E-01 + 8.1101719332608124E-01 8.0714033301042909E-01 8.0322714843018417E-01 + 7.9927815039093619E-01 7.9529385491861337E-01 7.9127478324805323E-01 + 7.8722146180966834E-01 7.8313442221422136E-01 7.7901420123572385E-01 + 7.7486134079246238E-01 7.7067638792617410E-01 7.6645989477936827E-01 + 7.6221241857080435E-01 7.5793452156911867E-01 7.5362677106459430E-01 + 7.4928973933906018E-01 7.4492400363389744E-01 7.4053014611611134E-01 + 7.3610875384244312E-01 7.3166041872145848E-01 7.2718573747354964E-01 + 7.2268531158878335E-01 7.1815974728249921E-01 7.1360965544856148E-01 + 7.0903565161015225E-01 7.0443835586797365E-01 6.9981839284572078E-01 + 6.9517639163266953E-01 6.9051298572320774E-01 6.8582881295313169E-01 + 6.8112451543250574E-01 6.7640073947487822E-01 6.7165813552263398E-01 + 6.6689735806824890E-01 6.6211906557120181E-01 6.5732392037029530E-01 + 6.5251258859112671E-01 6.4768574004843460E-01 6.4284404814306317E-01 + 6.3798818975326144E-01 6.3311884512004946E-01 6.2823669772638224E-01 + 6.2334243416983426E-01 6.1843674402855919E-01 6.1352031972026388E-01 + 6.0859385635396057E-01 6.0365805157427543E-01 5.9871360539810692E-01 + 5.9376122004344745E-01 5.8880159975020752E-01 5.8383545059291031E-01 + 5.7886348028513912E-01 5.7388639797567509E-01 5.6890491403627474E-01 + 5.6391973984108346E-01 5.5893158753771610E-01 5.5394116981007535E-01 + 5.4894919963302025E-01 5.4395639001903928E-01 5.3896345375712074E-01 + 5.3397110314406249E-01 5.2898004970850387E-01 5.2399100392800391E-01 + 5.1900467493953140E-01 5.1402177024377782E-01 5.0904299540373898E-01 + 5.0406905373805100E-01 4.9910064600960413E-01 4.9413847010998124E-01 + 4.8918322074031501E-01 4.8423558908917003E-01 4.7929626250808582E-01 + 4.7436592418543971E-01 4.6944525281930272E-01 4.6453492228997562E-01 + 4.5963560133290393E-01 4.5474795321267031E-01 4.4987263539877759E-01 + 4.4501029924391861E-01 4.4016158966543578E-01 4.3532714483065621E-01 + 4.3050759584678583E-01 4.2570356645601409E-01 4.2091567273648206E-01 + 4.1614452280973174E-01 4.1139071655522780E-01 4.0665484533253243E-01 + 4.0193749171166915E-01 3.9723922921218596E-01 3.9256062205140146E-01 + 3.8790222490227383E-01 3.8326458266130808E-01 3.7864823022687527E-01 + 3.7405369228827967E-01 3.6948148312588092E-01 3.6493210642253610E-01 + 3.6040605508658818E-01 3.5590381108659719E-01 3.5142584529796961E-01 + 3.4697261736160856E-01 3.4254457555467266E-01 3.3814215667349740E-01 + 3.3376578592869766E-01 3.2941587685244395E-01 3.2509283121787896E-01 + 3.2079703897059642E-01 3.1652887817208109E-01 3.1228871495499716E-01 + 3.0807690349017491E-01 3.0389378596512240E-01 2.9973969257387123E-01 + 2.9561494151793871E-01 2.9151983901818240E-01 2.8745467933728569E-01 + 2.8341974481261512E-01 2.7941530589916991E-01 2.7544162122231841E-01 + 2.7149893764002880E-01 2.6758749031426032E-01 2.6370750279120270E-01 + 2.5985918709001105E-01 2.5604274379970798E-01 2.5225836218388858E-01 + 2.4850622029287966E-01 2.4478648508299400E-01 2.4109931254250677E-01 + 2.3744484782399994E-01 2.3382322538269154E-01 2.3023456912039519E-01 + 2.2667899253472529E-01 2.2315659887319145E-01 2.1966748129180305E-01 + 2.1621172301782207E-01 2.1278939751630238E-01 2.0940056866004453E-01 + 2.0604529090262061E-01 2.0272360945410070E-01 1.9943556045914593E-01 + 1.9618117117710862E-01 1.9296046016381357E-01 1.8977343745467676E-01 + 1.8662010474883867E-01 1.8350045559399417E-01 1.8041447557159862E-01 + 1.7736214248215396E-01 1.7434342653026710E-01 1.7135829050920173E-01 + 1.6840668998463498E-01 1.6548857347735213E-01 1.6260388264461983E-01 + 1.5975255245998068E-01 1.5693451139123729E-01 1.5414968157638634E-01 + 1.5139797899729465E-01 1.4867931365090084E-01 1.4599358971775700E-01 + 1.4334070572772178E-01 1.4072055472263767E-01 1.3813302441584041E-01 + 1.3557799734834955E-01 1.3305535104162133E-01 1.3056495814673916E-01 + 1.2810668658995036E-01 1.2568039971445480E-01 1.2328595641838067E-01 + 1.2092321128888581E-01 1.1859201473234368E-01 1.1629221310058985E-01 + 1.1402364881320975E-01 1.1178616047587754E-01 1.0957958299475462E-01 + 1.0740374768698605E-01 1.0525848238733247E-01 1.0314361155100164E-01 + 1.0105895635274674E-01 9.9004334782317002E-02 9.6979561736358730E-02 + 9.4984449106869817E-02 9.3018805866332127E-02 9.1082438149645048E-02 + 8.9175149333002968E-02 8.7296740109860035E-02 8.5447008564137644E-02 + 8.3625750240837737E-02 8.1832758214224463E-02 8.0067823153752021E-02 + 7.8330733387908080E-02 7.6621274966157393E-02 7.4939231719161059E-02 + 7.3284385317457401E-02 7.1656515328782366E-02 7.0055399274210978E-02 + 6.8480812683300044E-02 6.6932529148403377E-02 6.5410320378335801E-02 + 6.3913956251548540E-02 6.2443204868980987E-02 6.0997832606740819E-02 + 5.9577604168764037E-02 5.8182282639592658E-02 5.6811629537404144E-02 + 5.5465404867417446E-02 5.4143367175788042E-02 5.2845273604100525E-02 + 5.1570879944551562E-02 5.0319940695911940E-02 4.9092209120340458E-02 + 4.7887437301117906E-02 4.6705376201353885E-02 4.5545775723712524E-02 + 4.4408384771192362E-02 4.3292951308983169E-02 4.2199222427416846E-02 + 4.1126944406015144E-02 4.0075862778632634E-02 3.9045722399679454E-02 + 3.8036267511403314E-02 3.7047241812201002E-02 3.6078388525920151E-02 + 3.5129450472107734E-02 3.4200170137151528E-02 3.3290289746257536E-02 + 3.2399551336197450E-02 3.1527696828757522E-02 3.0674468104813182E-02 + 2.9839607078950375E-02 2.9022855774551347E-02 2.8223956399256955E-02 + 2.7442651420717987E-02 2.6678683642542157E-02 2.5931796280344702E-02 + 2.5201733037806314E-02 2.4488238182643667E-02 2.3791056622395119E-02 + 2.3109933979925244E-02 2.2444616668552575E-02 2.1794851966703520E-02 + 2.1160388091999417E-02 2.0540974274681819E-02 1.9936360830285774E-02 + 1.9346299231470462E-02 1.8770542178919932E-02 1.8208843671229432E-02 + 1.7660959073694030E-02 1.7126645185921236E-02 1.6605660308190117E-02 + 1.6097764306484887E-02 1.5602718676132166E-02 1.5120286603976612E-02 + 1.4650233029031574E-02 1.4192324701545989E-02 1.3746330240432678E-02 + 1.3312020189005907E-02 1.2889167068981425E-02 1.2477545432694482E-02 + 1.2076931913496703E-02 1.1687105274295102E-02 1.1307846454201740E-02 + 1.0938938613265101E-02 1.0580167175258828E-02 1.0231319868507100E-02 + 9.8921867647289319E-03 9.5625603158882907E-03 9.2422353890393282E-03 + 8.9310092991605472E-03 8.6286818399738899E-03 8.3350553127492059E-03 + 8.0499345530965303E-03 7.7731269557524390E-03 7.5044424973695024E-03 + 7.2436937573201847E-03 6.9906959365301155E-03 6.7452668743572947E-03 + 6.5072270635371052E-03 6.2763996632146978E-03 6.0526105100888973E-03 + 5.8356881276939599E-03 5.6254637338470585E-03 5.4217712462919032E-03 + 5.2244472865699276E-03 5.0333311821528642E-03 4.8482649668713379E-03 + 4.6690933796761638E-03 4.4956638617698018E-03 4.3278265521469400E-03 + 4.1654342815842359E-03 4.0083425651199376E-03 3.8564095930654447E-03 + 3.7094962205911257E-03 3.5674659559298675E-03 3.4301849472419864E-03 + 3.2975219681859618E-03 3.1693484022396004E-03 3.0455382258166544E-03 + 2.9259679902242275E-03 2.8105168025061938E-03 2.6990663052182591E-03 + 2.5915006551799533E-03 2.4877065012490662E-03 2.3875729611636302E-03 + 2.2909915974965805E-03 2.1978563927677526E-03 2.1080637237576635E-03 + 2.0215123350671637E-03 1.9381033119664347E-03 1.8577400525765842E-03 + 1.7803282394262725E-03 1.7057758104254879E-03 1.6339929292977617E-03 + 1.5648919555115680E-03 1.4983874137509802E-03 1.4343959629647984E-03 + 1.3728363650327908E-03 1.3136294530867235E-03 1.2566980995232159E-03 + 1.2019671837444660E-03 1.1493635596621882E-03 1.0988160229991096E-03 + 1.0502552784215635E-03 1.0036139065358004E-03 9.5882633077968389E-04 + 9.1582878424059362E-04 8.7455927642933191E-04 8.3495756003899033E-04 + 7.9696509771669212E-04 7.6052502887527908E-04 7.2558213657097914E-04 + 6.9208281447218924E-04 6.5997503394357889E-04 6.2920831126870756E-04 + 5.9973367503350530E-04 5.7150363369194029E-04 5.4447214333435171E-04 + 5.1859457567794514E-04 4.9382768629807313E-04 4.7012958311802751E-04 + 4.4745969517414409E-04 4.2577874167219748E-04 4.0504870135014189E-04 + 3.8523278216145751E-04 3.6629539129247248E-04 3.4820210552625645E-04 + 3.3091964196483160E-04 3.1441582912068207E-04 2.9865957838776471E-04 + 2.8362085590144293E-04 2.6927065479605999E-04 2.5558096786810271E-04 + 2.4252476065224051E-04 2.3007594491679636E-04 2.1820935258457373E-04 + 2.0690071008427921E-04 1.9612661313716761E-04 1.8586450198291915E-04 + 1.7609263704814951E-04 1.6679007506039748E-04 1.5793664560985693E-04 + 1.4951292816059913E-04 1.4150022951249432E-04 1.3388056171455739E-04 + 1.2663662042994571E-04 1.1975176375238284E-04 1.1320999147333547E-04 + 1.0699592479883875E-04 1.0109478651446653E-04 9.5492381596542057E-05 + 9.0175078267322253E-05 8.5129789491525572E-05 8.0343954911240887E-05 + 7.5805523215934605E-05 7.1502934943964107E-05 6.7425105711727823E-05 + 6.3561409866300699E-05 5.9901664557159541E-05 5.6436114222354095E-05 + 5.3155415484263600E-05 5.0050622449863554E-05 4.7113172410236445E-05 + 4.4334871933880125E-05 4.1707883348198054E-05 3.9224711603408112E-05 + 3.6878191512961632E-05 3.4661475364442849E-05 3.2568020894800190E-05 + 3.0591579623662698E-05 2.8726185538401180E-05 2.6966144124516475E-05 + 2.5306021734869412E-05 2.3740635291207085E-05 2.2265042311396043E-05 + 2.0874531255732291E-05 1.9564612185672761E-05 1.8331007728311393E-05 + 1.7169644339915124E-05 1.6076643861831225E-05 1.5048315362084810E-05 + 1.4081147255999098E-05 1.3171799699191084E-05 1.2317097246324988E-05 + 1.1514021769038783E-05 1.0759705626501706E-05 1.0051425082106268E-05 + 9.3865939598515017E-06 8.7627575340322208E-06 8.1775866459109789E-06 + 7.6288720411181895E-06 7.1145189215965557E-06 6.6325417059830720E-06 + 6.1810589924006528E-06 5.7582887177157014E-06 5.3625435074037360E-06 + 4.9922262102552977E-06 4.6458256122465152E-06 4.3219123239932867E-06 + 4.0191348363055315E-06 3.7362157384554886E-06 3.4719480938800956E-06 + 3.2251919681444248E-06 2.9948711039766207E-06 2.7799697385306185E-06 + 2.5795295607893459E-06 2.3926467788512917E-06 2.2184692682236886E-06 + 2.0561948708765115E-06 1.9050651705660082E-06 1.7643706208593945E-06 + 1.6334388337439269E-06 1.5116408349664055E-06 1.3983830006070458E-06 + 1.2931072146029740E-06 1.1952889481477991E-06 1.1044354304794951E-06 + 1.0200839073962280E-06 9.4179998397239189E-07 8.6917604805345552E-07 + 8.0182977121289855E-07 7.3940268395783942E-07 6.8155882207159386E-07 + 6.2798344108134092E-07 5.7838179593742541E-07 5.3247798308727505E-07 + 4.9001384222172569E-07 4.5074791506438138E-07 4.1445445866576544E-07 + 3.8092251075312828E-07 3.4995500477407416E-07 3.2136793235750560E-07 + 2.9498955099874420E-07 2.7065963485716914E-07 2.4822876663413679E-07 + 2.2755766857648786E-07 2.0851657072643609E-07 1.9098461461221889E-07 + 1.7484929064544551E-07 1.6000590756071298E-07 1.4635709230072439E-07 + 1.3381231881584892E-07 1.2228746431087605E-07 1.1170439153356937E-07 + 1.0199055575962565E-07 9.3078635186734589E-08 8.4906183506694244E-08 + 7.7415303478959183E-08 7.0552340381608431E-08 6.4267594266571565E-08 + 5.8515049995032980E-08 5.3252124076317224E-08 4.8439427379234645E-08 + 4.4040542828904890E-08 4.0021817244475881E-08 3.6352166513977488E-08 + 3.3002893341812943E-08 2.9947516842131858E-08 2.7161613287594530E-08 + 2.4622667357846348E-08 2.2309933265427883E-08 2.0204305168872771E-08 + 1.8288196313440549E-08 1.6545426369322803E-08 1.4961116465292858E-08 + 1.3521591442675028E-08 1.2214288880225771E-08 1.1027674465086893E-08 + 9.9511633084211486E-09 8.9750468267154814E-09 8.0904248310668356E-09 + 7.2891424870915883E-09 6.5637318274516246E-09 5.9073575174071816E-09 + 5.3137665913203712E-09 4.7772418946775929E-09 4.2925589820086562E-09 + 3.8549462360846911E-09 3.4600479880108947E-09 3.1038904313217918E-09 + 2.7828501359686740E-09 2.4936249801895143E-09 2.2332073296999161E-09 + 1.9988593044684707E-09 1.7880899835674212E-09 1.5986344082475334E-09 + 1.4284342524993766E-09 1.2756200389576821E-09 1.1384947861046277E-09 + 1.0155189803558631E-09 9.0529677379216294E-10 8.0656331505178837E-10 + 7.1817312724532674E-10 6.3908945271597262E-10 5.6837449006401749E-10 + 5.0518045410320104E-10 4.4874139433710775E-10 3.9836571215310255E-10 + 3.5342932124638671E-10 3.1336939982353098E-10 2.7767868690870391E-10 + 2.4590027860157120E-10 2.1762288342740307E-10 1.9247649899089656E-10 + 1.7012847500826810E-10 1.5027993045964878E-10 1.3266249508726234E-10 + 1.1703534777543997E-10 1.0318252649672073E-10 9.0910486504118370E-11 + 8.0045885302631466E-11 7.0433574652199205E-11 6.1934781448150326E-11 + 5.4425460801789880E-11 4.7794806010804419E-11 4.1943901373839634E-11 + 3.6784504972744603E-11 3.2237949626029470E-11 2.8234151214095582E-11 + 2.4710714496503672E-11 2.1612127389303104E-11 1.8889035451323883E-11 + 1.6497589047066960E-11 1.4398856314884174E-11 1.2558295676687504E-11 + 1.0945282183384918E-11 9.5326825022742256E-12 8.2964738221580181E-12 + 7.2154023821812193E-12 6.2706777243222515E-12 5.4456991298836065E-12 + 4.7258110298231462E-12 4.0980844797684103E-12 3.5511220653128106E-12 + 3.0748838537993740E-12 2.6605322372008068E-12 2.3002937187069260E-12 + 1.9873358849076195E-12 1.7156579775598342E-12 1.4799936352870008E-12 + 1.2757245175047906E-12 1.0988036516243895E-12 9.4568746128558388E-13 + 8.1327553906009151E-13 6.9885732270322154E-13 6.0006492050404576E-13 + 5.1483140940591239E-13 4.4135400008846099E-13 3.7806152680704257E-13 + 3.2358577710599802E-13 2.7673622813657047E-13 2.3647780274772896E-13 + 2.0191130026288143E-13 1.7225619435016287E-13 1.4683552404276010E-13 + 1.2506263413750759E-13 1.0642954823085935E-13 9.0496781847577222E-14 + 7.6884424757624129E-14 6.5264340914088919E-14 5.5353351709540469E-14 + 4.6907283648679832E-14 3.9715775260783320E-14 3.3597750297519898E-14 + 2.8397475135369741E-14 2.3981127967196360E-14 2.0233815951138707E-14 + 1.7056984101086901E-14 1.4366166454540103E-14 1.2089036033332343E-14 + 1.0163715403952153E-14 8.5373143219545101E-15 7.1646650765791684E-15 + 6.0072297975431933E-15 5.0321572001861363E-15 4.2114690761698073E-15 + 3.5213593281142266E-15 2.9415905366126621E-15 2.4549749715862778E-15 + 2.0469286477416582E-15 1.7050885034518009E-15 1.4189840781381436E-15 + 1.1797561969249872E-15 9.7991616227234466E-16 8.1313981760562391E-16 + 6.7409160283126151E-16 5.5827437945654159E-16 4.6190137594825540E-16 + 3.8178710208100207E-16 3.1525451270727707E-16 2.6005608204574425E-16 + 2.1430676909745432E-16 1.7642711447428403E-16 1.4509508360097338E-16 + 1.1920524274142411E-16 9.7833887223744616E-17 8.0211008981750057E-17 + 6.5694344904454580E-17 5.3748817050086866E-17 4.3929303631066149E-17 + + + 1.2815466905222152E+01 1.2815466898142699E+01 1.2815466876751072E+01 + 1.2815466840816782E+01 1.2815466790106553E+01 1.2815466724384308E+01 + 1.2815466643411016E+01 1.2815466546943323E+01 1.2815466434736127E+01 + 1.2815466306541900E+01 1.2815466162108418E+01 1.2815466001180599E+01 + 1.2815465823501659E+01 1.2815465628810003E+01 1.2815465416841285E+01 + 1.2815465187327861E+01 1.2815464939999673E+01 1.2815464674581728E+01 + 1.2815464390796370E+01 1.2815464088363004E+01 1.2815463766996997E+01 + 1.2815463426409746E+01 1.2815463066310869E+01 1.2815462686403956E+01 + 1.2815462286390453E+01 1.2815461865968437E+01 1.2815461424831097E+01 + 1.2815460962668721E+01 1.2815460479167395E+01 1.2815459974009968E+01 + 1.2815459446874007E+01 1.2815458897434921E+01 1.2815458325362798E+01 + 1.2815457730324407E+01 1.2815457111981662E+01 1.2815456469993606E+01 + 1.2815455804013927E+01 1.2815455113693508E+01 1.2815454398676193E+01 + 1.2815453658605255E+01 1.2815452893116674E+01 1.2815452101843704E+01 + 1.2815451284413703E+01 1.2815450440451018E+01 1.2815449569574362E+01 + 1.2815448671398713E+01 1.2815447745533165E+01 1.2815446791583184E+01 + 1.2815445809149049E+01 1.2815444797826606E+01 1.2815443757205745E+01 + 1.2815442686873102E+01 1.2815441586408438E+01 1.2815440455387980E+01 + 1.2815439293381605E+01 1.2815438099955495E+01 1.2815436874669642E+01 + 1.2815435617078531E+01 1.2815434326732005E+01 1.2815433003173577E+01 + 1.2815431645942738E+01 1.2815430254572334E+01 1.2815428828589496E+01 + 1.2815427367517129E+01 1.2815425870870600E+01 1.2815424338160133E+01 + 1.2815422768890869E+01 1.2815421162561387E+01 1.2815419518663866E+01 + 1.2815417836685338E+01 1.2815416116106473E+01 1.2815414356401542E+01 + 1.2815412557038341E+01 1.2815410717478748E+01 1.2815408837178493E+01 + 1.2815406915585907E+01 1.2815404952143790E+01 1.2815402946287763E+01 + 1.2815400897447184E+01 1.2815398805043641E+01 1.2815396668493403E+01 + 1.2815394487204610E+01 1.2815392260578703E+01 1.2815389988010706E+01 + 1.2815387668888102E+01 1.2815385302589853E+01 1.2815382888490324E+01 + 1.2815380425953375E+01 1.2815377914338240E+01 1.2815375352994550E+01 + 1.2815372741265072E+01 1.2815370078485223E+01 1.2815367363982075E+01 + 1.2815364597074989E+01 1.2815361777074747E+01 1.2815358903285228E+01 + 1.2815355975000722E+01 1.2815352991508821E+01 1.2815349952087367E+01 + 1.2815346856006697E+01 1.2815343702527999E+01 1.2815340490903775E+01 + 1.2815337220378627E+01 1.2815333890186768E+01 1.2815330499555644E+01 + 1.2815327047702469E+01 1.2815323533833938E+01 1.2815319957150189E+01 + 1.2815316316840400E+01 1.2815312612084631E+01 1.2815308842052890E+01 + 1.2815305005906504E+01 1.2815301102796942E+01 1.2815297131864133E+01 + 1.2815293092240429E+01 1.2815288983046527E+01 1.2815284803393466E+01 + 1.2815280552382148E+01 1.2815276229101519E+01 1.2815271832632714E+01 + 1.2815267362042990E+01 1.2815262816391755E+01 1.2815258194725944E+01 + 1.2815253496081345E+01 1.2815248719483552E+01 1.2815243863945977E+01 + 1.2815238928470427E+01 1.2815233912048537E+01 1.2815228813658846E+01 + 1.2815223632268722E+01 1.2815218366834053E+01 1.2815213016297575E+01 + 1.2815207579590524E+01 1.2815202055632412E+01 1.2815196443328926E+01 + 1.2815190741574007E+01 1.2815184949248311E+01 1.2815179065220807E+01 + 1.2815173088346004E+01 1.2815167017465667E+01 1.2815160851408752E+01 + 1.2815154588990199E+01 1.2815148229011781E+01 1.2815141770261297E+01 + 1.2815135211511905E+01 1.2815128551524337E+01 1.2815121789043637E+01 + 1.2815114922800824E+01 1.2815107951512459E+01 1.2815100873881027E+01 + 1.2815093688593045E+01 1.2815086394320108E+01 1.2815078989719842E+01 + 1.2815071473433202E+01 1.2815063844085950E+01 1.2815056100288182E+01 + 1.2815048240634640E+01 1.2815040263703111E+01 1.2815032168055236E+01 + 1.2815023952237031E+01 1.2815015614777199E+01 1.2815007154188121E+01 + 1.2814998568964398E+01 1.2814989857584454E+01 1.2814981018508398E+01 + 1.2814972050180115E+01 1.2814962951024642E+01 1.2814953719448532E+01 + 1.2814944353841911E+01 1.2814934852575544E+01 1.2814925214002315E+01 + 1.2814915436454912E+01 1.2814905518248519E+01 1.2814895457678517E+01 + 1.2814885253021274E+01 1.2814874902533232E+01 1.2814864404451519E+01 + 1.2814853756992186E+01 1.2814842958352610E+01 1.2814832006707965E+01 + 1.2814820900214524E+01 1.2814809637006128E+01 1.2814798215196600E+01 + 1.2814786632877322E+01 1.2814774888118350E+01 1.2814762978969014E+01 + 1.2814750903454787E+01 1.2814738659580819E+01 1.2814726245326961E+01 + 1.2814713658653242E+01 1.2814700897494413E+01 1.2814687959762830E+01 + 1.2814674843346534E+01 1.2814661546111338E+01 1.2814648065896634E+01 + 1.2814634400519072E+01 1.2814620547770534E+01 1.2814606505417139E+01 + 1.2814592271199913E+01 1.2814577842836153E+01 1.2814563218014195E+01 + 1.2814548394399626E+01 1.2814533369628956E+01 1.2814518141314307E+01 + 1.2814502707039665E+01 1.2814487064362137E+01 1.2814471210810732E+01 + 1.2814455143887745E+01 1.2814438861066058E+01 1.2814422359791283E+01 + 1.2814405637479691E+01 1.2814388691518962E+01 1.2814371519266778E+01 + 1.2814354118051460E+01 1.2814336485171163E+01 1.2814318617893703E+01 + 1.2814300513456896E+01 1.2814282169065983E+01 1.2814263581896272E+01 + 1.2814244749091134E+01 1.2814225667761457E+01 1.2814206334985300E+01 + 1.2814186747809153E+01 1.2814166903245898E+01 1.2814146798274431E+01 + 1.2814126429839845E+01 1.2814105794853864E+01 1.2814084890192943E+01 + 1.2814063712698294E+01 1.2814042259176608E+01 1.2814020526398350E+01 + 1.2813998511097017E+01 1.2813976209971619E+01 1.2813953619681648E+01 + 1.2813930736851654E+01 1.2813907558066463E+01 1.2813884079874729E+01 + 1.2813860298784100E+01 1.2813836211265381E+01 1.2813811813748265E+01 + 1.2813787102624644E+01 1.2813762074243760E+01 1.2813736724915161E+01 + 1.2813711050907607E+01 1.2813685048447500E+01 1.2813658713719459E+01 + 1.2813632042865891E+01 1.2813605031985437E+01 1.2813577677133518E+01 + 1.2813549974321766E+01 1.2813521919517337E+01 1.2813493508641811E+01 + 1.2813464737572389E+01 1.2813435602139522E+01 1.2813406098127128E+01 + 1.2813376221273497E+01 1.2813345967267825E+01 1.2813315331751587E+01 + 1.2813284310318959E+01 1.2813252898513978E+01 1.2813221091831096E+01 + 1.2813188885715215E+01 1.2813156275560395E+01 1.2813123256709085E+01 + 1.2813089824452652E+01 1.2813055974029595E+01 1.2813021700625619E+01 + 1.2812986999372917E+01 1.2812951865349595E+01 1.2812916293578878E+01 + 1.2812880279029912E+01 1.2812843816614542E+01 1.2812806901188580E+01 + 1.2812769527550484E+01 1.2812731690442162E+01 1.2812693384545462E+01 + 1.2812654604484990E+01 1.2812615344824007E+01 1.2812575600066824E+01 + 1.2812535364656151E+01 1.2812494632973499E+01 1.2812453399337850E+01 + 1.2812411658004933E+01 1.2812369403167818E+01 1.2812326628953487E+01 + 1.2812283329426068E+01 1.2812239498582215E+01 1.2812195130353274E+01 + 1.2812150218602850E+01 1.2812104757125971E+01 1.2812058739650404E+01 + 1.2812012159833673E+01 1.2811965011263014E+01 1.2811917287454987E+01 + 1.2811868981854522E+01 1.2811820087834317E+01 1.2811770598693172E+01 + 1.2811720507655920E+01 1.2811669807873161E+01 1.2811618492418866E+01 + 1.2811566554290486E+01 1.2811513986410391E+01 1.2811460781619347E+01 + 1.2811406932681344E+01 1.2811352432279053E+01 1.2811297273015905E+01 + 1.2811241447412350E+01 1.2811184947907561E+01 1.2811127766855344E+01 + 1.2811069896527417E+01 1.2811011329108270E+01 1.2810952056697632E+01 + 1.2810892071307105E+01 1.2810831364860688E+01 1.2810769929193551E+01 + 1.2810707756050299E+01 1.2810644837085277E+01 1.2810581163858917E+01 + 1.2810516727841744E+01 1.2810451520407907E+01 1.2810385532837417E+01 + 1.2810318756313874E+01 1.2810251181924309E+01 1.2810182800657230E+01 + 1.2810113603402096E+01 1.2810043580947847E+01 1.2809972723981899E+01 + 1.2809901023089974E+01 1.2809828468752945E+01 1.2809755051348874E+01 + 1.2809680761147531E+01 1.2809605588313442E+01 1.2809529522902610E+01 + 1.2809452554861451E+01 1.2809374674025353E+01 1.2809295870118852E+01 + 1.2809216132753191E+01 1.2809135451425492E+01 1.2809053815517425E+01 + 1.2808971214293539E+01 1.2808887636901474E+01 1.2808803072368180E+01 + 1.2808717509601781E+01 1.2808630937387310E+01 1.2808543344386944E+01 + 1.2808454719138508E+01 1.2808365050054302E+01 1.2808274325419031E+01 + 1.2808182533388829E+01 1.2808089661990003E+01 1.2807995699117196E+01 + 1.2807900632533020E+01 1.2807804449864623E+01 1.2807707138604862E+01 + 1.2807608686107725E+01 1.2807509079590496E+01 1.2807408306128361E+01 + 1.2807306352655997E+01 1.2807203205965568E+01 1.2807098852702406E+01 + 1.2806993279366658E+01 1.2806886472311044E+01 1.2806778417737799E+01 + 1.2806669101699129E+01 1.2806558510092493E+01 1.2806446628663114E+01 + 1.2806333442998394E+01 1.2806218938529343E+01 1.2806103100526864E+01 + 1.2805985914100241E+01 1.2805867364195844E+01 1.2805747435595878E+01 + 1.2805626112914982E+01 1.2805503380600971E+01 1.2805379222930242E+01 + 1.2805253624007911E+01 1.2805126567764342E+01 1.2804998037954800E+01 + 1.2804868018157373E+01 1.2804736491769223E+01 1.2804603442006981E+01 + 1.2804468851904170E+01 1.2804332704307875E+01 1.2804194981877757E+01 + 1.2804055667085153E+01 1.2803914742208571E+01 1.2803772189333159E+01 + 1.2803627990348954E+01 1.2803482126947907E+01 1.2803334580621060E+01 + 1.2803185332659037E+01 1.2803034364146571E+01 1.2802881655963198E+01 + 1.2802727188778515E+01 1.2802570943051865E+01 1.2802412899029271E+01 + 1.2802253036740762E+01 1.2802091335998487E+01 1.2801927776394718E+01 + 1.2801762337299047E+01 1.2801594997855233E+01 1.2801425736980974E+01 + 1.2801254533362176E+01 1.2801081365454028E+01 1.2800906211476006E+01 + 1.2800729049410084E+01 1.2800549856997765E+01 1.2800368611739213E+01 + 1.2800185290887839E+01 1.2799999871450494E+01 1.2799812330182631E+01 + 1.2799622643586517E+01 1.2799430787908603E+01 1.2799236739137012E+01 + 1.2799040472996904E+01 1.2798841964950677E+01 1.2798641190192637E+01 + 1.2798438123647109E+01 1.2798232739964869E+01 1.2798025013522912E+01 + 1.2797814918415945E+01 1.2797602428458861E+01 1.2797387517181743E+01 + 1.2797170157825279E+01 1.2796950323340583E+01 1.2796727986383239E+01 + 1.2796503119311486E+01 1.2796275694183187E+01 1.2796045682752883E+01 + 1.2795813056467038E+01 1.2795577786461392E+01 1.2795339843559097E+01 + 1.2795099198264939E+01 1.2794855820763486E+01 1.2794609680915579E+01 + 1.2794360748253956E+01 1.2794108991980799E+01 1.2793854380962195E+01 + 1.2793596883728370E+01 1.2793336468465633E+01 1.2793073103015693E+01 + 1.2792806754871064E+01 1.2792537391170441E+01 1.2792264978696187E+01 + 1.2791989483869889E+01 1.2791710872748842E+01 1.2791429111021529E+01 + 1.2791144164004450E+01 1.2790855996636477E+01 1.2790564573477702E+01 + 1.2790269858702633E+01 1.2789971816096568E+01 1.2789670409053569E+01 + 1.2789365600569443E+01 1.2789057353238714E+01 1.2788745629250103E+01 + 1.2788430390383033E+01 1.2788111598001588E+01 1.2787789213051989E+01 + 1.2787463196056013E+01 1.2787133507108615E+01 1.2786800105870990E+01 + 1.2786462951568685E+01 1.2786122002984280E+01 1.2785777218453839E+01 + 1.2785428555862557E+01 1.2785075972639431E+01 1.2784719425751945E+01 + 1.2784358871701926E+01 1.2783994266520033E+01 1.2783625565760691E+01 + 1.2783252724497842E+01 1.2782875697317326E+01 1.2782494438315968E+01 + 1.2782108901091878E+01 1.2781719038741825E+01 1.2781324803855055E+01 + 1.2780926148508037E+01 1.2780523024257789E+01 1.2780115382138463E+01 + 1.2779703172654163E+01 1.2779286345774468E+01 1.2778864850926839E+01 + 1.2778438636992638E+01 1.2778007652300108E+01 1.2777571844620155E+01 + 1.2777131161158241E+01 1.2776685548548874E+01 1.2776234952851262E+01 + 1.2775779319541117E+01 1.2775318593505098E+01 1.2774852719035094E+01 + 1.2774381639819884E+01 1.2773905298942127E+01 1.2773423638868923E+01 + 1.2772936601445709E+01 1.2772444127891557E+01 1.2771946158789900E+01 + 1.2771442634083533E+01 1.2770933493066551E+01 1.2770418674379558E+01 + 1.2769898115999192E+01 1.2769371755234861E+01 1.2768839528717983E+01 + 1.2768301372398518E+01 1.2767757221535135E+01 1.2767207010687454E+01 + 1.2766650673711558E+01 1.2766088143748156E+01 1.2765519353220041E+01 + 1.2764944233820014E+01 1.2764362716505389E+01 1.2763774731490875E+01 + 1.2763180208237006E+01 1.2762579075446899E+01 1.2761971261054157E+01 + 1.2761356692218493E+01 1.2760735295313561E+01 1.2760106995921026E+01 + 1.2759471718822446E+01 1.2758829387988646E+01 1.2758179926573407E+01 + 1.2757523256902726E+01 1.2756859300468275E+01 1.2756187977917184E+01 + 1.2755509209041975E+01 1.2754822912774546E+01 1.2754129007173907E+01 + 1.2753427409419610E+01 1.2752718035798694E+01 1.2752000801701831E+01 + 1.2751275621607432E+01 1.2750542409078308E+01 1.2749801076746218E+01 + 1.2749051536305833E+01 1.2748293698503753E+01 1.2747527473128049E+01 + 1.2746752768998212E+01 1.2745969493955345E+01 1.2745177554851518E+01 + 1.2744376857539304E+01 1.2743567306861356E+01 1.2742748806639579E+01 + 1.2741921259664815E+01 1.2741084567684904E+01 1.2740238631394670E+01 + 1.2739383350424333E+01 1.2738518623328449E+01 1.2737644347574900E+01 + 1.2736760419532750E+01 1.2735866734460288E+01 1.2734963186495637E+01 + 1.2734049668641712E+01 1.2733126072756454E+01 1.2732192289540199E+01 + 1.2731248208523660E+01 1.2730293718054996E+01 1.2729328705288230E+01 + 1.2728353056170025E+01 1.2727366655427181E+01 1.2726369386553955E+01 + 1.2725361131798781E+01 1.2724341772151467E+01 1.2723311187331021E+01 + 1.2722269255768952E+01 1.2721215854600384E+01 1.2720150859646706E+01 + 1.2719074145403534E+01 1.2717985585026616E+01 1.2716885050316735E+01 + 1.2715772411708157E+01 1.2714647538251288E+01 1.2713510297599738E+01 + 1.2712360555995447E+01 1.2711198178254113E+01 1.2710023027749719E+01 + 1.2708834966401232E+01 1.2707633854653588E+01 1.2706419551466290E+01 + 1.2705191914297188E+01 1.2703950799083577E+01 1.2702696060230352E+01 + 1.2701427550592065E+01 1.2700145121457679E+01 1.2698848622532207E+01 + 1.2697537901922868E+01 1.2696212806120869E+01 1.2694873179986121E+01 + 1.2693518866726683E+01 1.2692149707886013E+01 1.2690765543323863E+01 + 1.2689366211196653E+01 1.2687951547944502E+01 1.2686521388268490E+01 + 1.2685075565116081E+01 1.2683613909660787E+01 1.2682136251285808E+01 + 1.2680642417564222E+01 1.2679132234238642E+01 1.2677605525206090E+01 + 1.2676062112496369E+01 1.2674501816252789E+01 1.2672924454713753E+01 + 1.2671329844191522E+01 1.2669717799054588E+01 1.2668088131704948E+01 + 1.2666440652561191E+01 1.2664775170033987E+01 1.2663091490508284E+01 + 1.2661389418322779E+01 1.2659668755746315E+01 1.2657929302958667E+01 + 1.2656170858028467E+01 1.2654393216891854E+01 1.2652596173329853E+01 + 1.2650779518947447E+01 1.2648943043149021E+01 1.2647086533119236E+01 + 1.2645209773796989E+01 1.2643312547855238E+01 1.2641394635674965E+01 + 1.2639455815324302E+01 1.2637495862533120E+01 1.2635514550670921E+01 + 1.2633511650721218E+01 1.2631486931257379E+01 1.2629440158419511E+01 + 1.2627371095887565E+01 1.2625279504858169E+01 1.2623165144018790E+01 + 1.2621027769521326E+01 1.2618867134958450E+01 1.2616682991334708E+01 + 1.2614475087043573E+01 1.2612243167838875E+01 1.2609986976808155E+01 + 1.2607706254347057E+01 1.2605400738130530E+01 1.2603070163086802E+01 + 1.2600714261368067E+01 1.2598332762324551E+01 1.2595925392474319E+01 + 1.2593491875477065E+01 1.2591031932102235E+01 1.2588545280202471E+01 + 1.2586031634683868E+01 1.2583490707476431E+01 1.2580922207503759E+01 + 1.2578325840652271E+01 1.2575701309743405E+01 1.2573048314501225E+01 + 1.2570366551520181E+01 1.2567655714237441E+01 1.2564915492897613E+01 + 1.2562145574523697E+01 1.2559345642884889E+01 1.2556515378462107E+01 + 1.2553654458417695E+01 1.2550762556561581E+01 1.2547839343317488E+01 + 1.2544884485691378E+01 1.2541897647234688E+01 1.2538878488013669E+01 + 1.2535826664572300E+01 1.2532741829898789E+01 1.2529623633391088E+01 + 1.2526471720819748E+01 1.2523285734294605E+01 1.2520065312227587E+01 + 1.2516810089295760E+01 1.2513519696407949E+01 1.2510193760664118E+01 + 1.2506831905319920E+01 1.2503433749749831E+01 1.2499998909408555E+01 + 1.2496526995792825E+01 1.2493017616403929E+01 1.2489470374707730E+01 + 1.2485884870096667E+01 1.2482260697850275E+01 1.2478597449093213E+01 + 1.2474894710760257E+01 1.2471152065550163E+01 1.2467369091888822E+01 + 1.2463545363887253E+01 1.2459680451299352E+01 1.2455773919481866E+01 + 1.2451825329350335E+01 1.2447834237337819E+01 1.2443800195353962E+01 + 1.2439722750738007E+01 1.2435601446218451E+01 1.2431435819868414E+01 + 1.2427225405061945E+01 1.2422969730428424E+01 1.2418668319809955E+01 + 1.2414320692213316E+01 1.2409926361768175E+01 1.2405484837677482E+01 + 1.2400995624174234E+01 1.2396458220473679E+01 1.2391872120726886E+01 + 1.2387236813973081E+01 1.2382551784092902E+01 1.2377816509759455E+01 + 1.2373030464391844E+01 1.2368193116104647E+01 1.2363303927659775E+01 + 1.2358362356417761E+01 1.2353367854287395E+01 1.2348319867676450E+01 + 1.2343217837440218E+01 1.2338061198831559E+01 1.2332849381451021E+01 + 1.2327581809192376E+01 1.2322257900195417E+01 1.2316877066788960E+01 + 1.2311438715441534E+01 1.2305942246709240E+01 1.2300387055179105E+01 + 1.2294772529419475E+01 1.2289098051924912E+01 1.2283362999059447E+01 + 1.2277566741006913E+01 1.2271708641712298E+01 1.2265788058829353E+01 + 1.2259804343661761E+01 1.2253756841110665E+01 1.2247644889617114E+01 + 1.2241467821104301E+01 1.2235224960924658E+01 1.2228915627797663E+01 + 1.2222539133755967E+01 1.2216094784086900E+01 1.2209581877273534E+01 + 1.2202999704936840E+01 1.2196347551777492E+01 1.2189624695515167E+01 + 1.2182830406831645E+01 1.2175963949309818E+01 1.2169024579372673E+01 + 1.2162011546226239E+01 1.2154924091795129E+01 1.2147761450665891E+01 + 1.2140522850021787E+01 1.2133207509585155E+01 1.2125814641554369E+01 + 1.2118343450540976E+01 1.2110793133508061E+01 1.2103162879710160E+01 + 1.2095451870626869E+01 1.2087659279903407E+01 1.2079784273285297E+01 + 1.2071826008555997E+01 1.2063783635473293E+01 1.2055656295705470E+01 + 1.2047443122767888E+01 1.2039143241957724E+01 1.2030755770291174E+01 + 1.2022279816436686E+01 1.2013714480653698E+01 1.2005058854724663E+01 + 1.1996312021890738E+01 1.1987473056789666E+01 1.1978541025384287E+01 + 1.1969514984905109E+01 1.1960393983778102E+01 1.1951177061561886E+01 + 1.1941863248883136E+01 1.1932451567368282E+01 1.1922941029580475E+01 + 1.1913330638951200E+01 1.1903619389716155E+01 1.1893806266848992E+01 + 1.1883890245993783E+01 1.1873870293401506E+01 1.1863745365863883E+01 + 1.1853514410644966E+01 1.1843176365419078E+01 1.1832730158201755E+01 + 1.1822174707285861E+01 1.1811508921176021E+01 1.1800731698522771E+01 + 1.1789841928056198E+01 1.1778838488524308E+01 1.1767720248623625E+01 + 1.1756486066937667E+01 1.1745134791870854E+01 1.1733665261585299E+01 + 1.1722076303934694E+01 1.1710366736402795E+01 1.1698535366040534E+01 + 1.1686580989398314E+01 1.1674502392470139E+01 1.1662298350624280E+01 + 1.1649967628545841E+01 1.1637508980175161E+01 1.1624921148642908E+01 + 1.1612202866213805E+01 1.1599352854224204E+01 1.1586369823022290E+01 + 1.1573252471911422E+01 1.1559999489088520E+01 1.1546609551588737E+01 + 1.1533081325228236E+01 1.1519413464545369E+01 1.1505604612748764E+01 + 1.1491653401659660E+01 1.1477558451658103E+01 1.1463318371632235E+01 + 1.1448931758922502E+01 1.1434397199272018E+01 1.1419713266776492E+01 + 1.1404878523833958E+01 1.1389891521096462E+01 1.1374750797423701E+01 + 1.1359454879834729E+01 1.1344002283465631E+01 1.1328391511523481E+01 + 1.1312621055246053E+01 1.1296689393857729E+01 1.1280594994532311E+01 + 1.1264336312353038E+01 1.1247911790277154E+01 1.1231319859098331E+01 + 1.1214558937415438E+01 1.1197627431598130E+01 1.1180523735757504E+01 + 1.1163246231717643E+01 1.1145793288987107E+01 1.1128163264736164E+01 + 1.1110354503771662E+01 1.1092365338517686E+01 1.1074194088994629E+01 + 1.1055839062803040E+01 1.1037298555111271E+01 1.1018570848639021E+01 + 1.0999654213649251E+01 1.0980546907942117E+01 1.0961247176847188E+01 + 1.0941753253221535E+01 1.0922063357451641E+01 1.0902175697454282E+01 + 1.0882088468682273E+01 1.0861799854134006E+01 1.0841308024365446E+01 + 1.0820611137502475E+01 1.0799707339261229E+01 1.0778594762967426E+01 + 1.0757271529582674E+01 1.0735735747729178E+01 1.0713985513725175E+01 + 1.0692018911617255E+01 1.0669834013220328E+01 1.0647428878159458E+01 + 1.0624801553918639E+01 1.0601950075888769E+01 1.0578872467424517E+01 + 1.0555566739903762E+01 1.0532030892790157E+01 1.0508262913701756E+01 + 1.0484260778484597E+01 1.0460022451290298E+01 1.0435545884657811E+01 + 1.0410829019602492E+01 1.0385869785707461E+01 1.0360666101223025E+01 + 1.0335215873171636E+01 1.0309516997452253E+01 1.0283567358961355E+01 + 1.0257364831710600E+01 1.0230907278953476E+01 1.0204192553320240E+01 + 1.0177218496956209E+01 1.0149982941668382E+01 1.0122483709077533E+01 + 1.0094718610778401E+01 1.0066685448505842E+01 1.0038382014308741E+01 + 1.0009806090730359E+01 9.9809554509988665E+00 9.9518278592208951E+00 + 9.9224210705884719E+00 9.8927328315899583E+00 9.8627608802302476E+00 + 9.8325029462614140E+00 9.8019567514186718E+00 9.7711200096686799E+00 + 9.7399904274648677E+00 9.7085657040116207E+00 9.6768435315403689E+00 + 9.6448215955930046E+00 9.6124975753155972E+00 9.5798691437651318E+00 + 9.5469339682228611E+00 9.5136897105203424E+00 9.4801340273748558E+00 + 9.4462645707400110E+00 9.4120789881621505E+00 9.3775749231530856E+00 + 9.3427500155708909E+00 9.3076019020170744E+00 9.2721282162412884E+00 + 9.2363265895648858E+00 9.2001946513113424E+00 9.1637300292532391E+00 + 9.1269303500733923E+00 9.0897932398370784E+00 9.0523163244811915E+00 + 9.0144972303173194E+00 8.9763335845471950E+00 8.9378230157959724E+00 + 8.8989631546611481E+00 8.8597516342746658E+00 8.8201860908830696E+00 + 8.7802641644425048E+00 8.7399834992340857E+00 8.6993417444897680E+00 + 8.6583365550427391E+00 8.6169655919915265E+00 8.5752265233823657E+00 + 8.5331170249110873E+00 8.4906347806441769E+00 8.4477774837584541E+00 + 8.4045428372990472E+00 8.3609285549607311E+00 8.3169323618860354E+00 + 8.2725519954868503E+00 8.2277852062865815E+00 8.1826297587807595E+00 + 8.1370834323267793E+00 8.0911440220485389E+00 8.0448093397683120E+00 + 7.9980772149600288E+00 7.9509454957282371E+00 7.9034120498104974E+00 + 7.8554747656024766E+00 7.8071315532094241E+00 7.7583803455254889E+00 + 7.7092190993351730E+00 7.6596457964444822E+00 7.6096584448369446E+00 + 7.5592550798569897E+00 7.5084337654235540E+00 7.4571925952702927E+00 + 7.4055296942139162E+00 7.3534432194539381E+00 7.3009313619014469E+00 + 7.2479923475378225E+00 7.1946244388055671E+00 7.1408259360291799E+00 + 7.0865951788693806E+00 7.0319305478084848E+00 6.9768304656696669E+00 + 6.9212933991713346E+00 6.8653178605110510E+00 6.8089024089894341E+00 + 6.7520456526666957E+00 6.6947462500534645E+00 6.6370029118416909E+00 + 6.5788144026690967E+00 6.5201795429229836E+00 6.4610972105813911E+00 + 6.4015663430922363E+00 6.3415859392926519E+00 6.2811550613685014E+00 + 6.2202728368510485E+00 6.1589384606586268E+00 6.0971511971772951E+00 + 6.0349103823833543E+00 5.9722154260089022E+00 5.9090658137524867E+00 + 5.8454611095287046E+00 5.7814009577665910E+00 5.7168850857520681E+00 + 5.6519133060116937E+00 5.5864855187490985E+00 5.5206017143222503E+00 + 5.4542619757701347E+00 5.3874664813867232E+00 5.3202155073434128E+00 + 5.2525094303598463E+00 5.1843487304237463E+00 5.1157339935588642E+00 + 5.0466659146490045E+00 4.9771453003041985E+00 4.9071730717845954E+00 + 4.8367502679752032E+00 4.7658780484080205E+00 4.6945576963436810E+00 + 4.6227906219021033E+00 4.5505783652462899E+00 4.4779225998211851E+00 + 4.4048251356481574E+00 4.3312879226717556E+00 4.2573130541622319E+00 + 4.1829027701749668E+00 4.1080594610626981E+00 4.0327856710459553E+00 + 3.9570841018417786E+00 3.8809576163412745E+00 3.8044092423531466E+00 + 3.7274421763985086E+00 3.6500597875635923E+00 3.5722656214119315E+00 + 3.4940634039511500E+00 3.4154570456555438E+00 3.3364506455543101E+00 + 3.2570484953650922E+00 3.1772550836953521E+00 3.0970751002948607E+00 + 3.0165134403653910E+00 2.9355752089308691E+00 2.8542657252614889E+00 + 2.7725905273511433E+00 2.6905553764586139E+00 2.6081662616953092E+00 + 2.5254294046739250E+00 2.4423512642092700E+00 2.3589385410713839E+00 + 2.2751981827969625E+00 2.1911373885455769E+00 2.1067636140128161E+00 + 2.0220845763926216E+00 1.9371082593889861E+00 1.8518429182748259E+00 + 1.7662970850000967E+00 1.6804795733450995E+00 1.5943994841172724E+00 + 1.5080662103924500E+00 1.4214894427987452E+00 1.3346791748360876E+00 + 1.2476457082380554E+00 1.1603996583679013E+00 1.0729519596485733E+00 + 9.8531387102470003E-01 8.9749698145347456E-01 8.0951321542401866E-01 + 7.2137483850071482E-01 6.3309446288507920E-01 5.4468505300158410E-01 + 4.5615993109425429E-01 3.6753278283850993E-01 2.7881766296042582E-01 + 1.9002900086236574E-01 1.0118160624796796E-01 1.2290674746291761E-02 + -7.6628206471157131E-02 -1.6555905308524396E-01 -2.5448547804045146E-01 + -3.4339068597620159E-01 -4.3225746768367973E-01 -5.2106819459634734E-01 + -6.0980481331433933E-01 -6.9844884017538278E-01 -7.8698135587204920E-01 + -8.7538300012510195E-01 -9.6363396642066002E-01 -1.0517139968159857E+00 + -1.1396023768213683E+00 -1.2272779303661598E+00 -1.3147190148611361E+00 + -1.4019035163558289E+00 -1.4888088448108858E+00 -1.5754119294853022E+00 + -1.6616892144553452E+00 -1.7476166542678253E+00 -1.8331697097466677E+00 + -1.9183233439541345E+00 -2.0030520183249814E+00 -2.0873296889814390E+00 + -2.1711298032446602E+00 -2.2544252963505027E+00 -2.3371885883841892E+00 + -2.4193915814525688E+00 -2.5010056570999684E+00 -2.5820016739868588E+00 + -2.6623499658487639E+00 -2.7420203397442009E+00 -2.8209820746148662E+00 + -2.8992039201727642E+00 -2.9766540961291104E+00 -3.0533002917892214E+00 + -3.1291096660267637E+00 -3.2040488476593350E+00 -3.2780839362476741E+00 + -3.3511805033360891E+00 -3.4233035941578129E+00 -3.4944177298296504E+00 + -3.5644869100556096E+00 -3.6334746163659029E+00 -3.7013438159203802E+00 + -3.7680569658933591E+00 -3.8335760184751084E+00 -3.8978624265157680E+00 + -3.9608771498371911E+00 -4.0225806622478197E+00 -4.0829329592865866E+00 + -4.1418935667309844E+00 -4.1994215499033025E+00 -4.2554755238020467E+00 + -4.3100136641050533E+00 -4.3629937190693857E+00 -4.4143730223738435E+00 + -4.4641085069382598E+00 -4.5121567197615056E+00 -4.5584738378183518E+00 + -4.6030156850603863E+00 -4.6457377505613433E+00 -4.6865952078539541E+00 + -4.7255429355086003E+00 -4.7625355389930268E+00 -4.7975273738746127E+00 + -4.8304725704056404E+00 -4.8613250595518736E+00 -4.8900386005173271E+00 + -4.9165668098161026E+00 -4.9408631919575452E+00 -4.9628811717993546E+00 + -4.9825741286285394E+00 -4.9998954320382660E+00 -5.0147984796611560E+00 + -5.0272367368276418E+00 -5.0371637782195657E+00 -5.0445333315853746E+00 + -5.0492993235975625E+00 -5.0514159279147544E+00 -5.0508376155419352E+00 + -5.0475192075509314E+00 -5.0414159302551491E+00 -5.0324834729148851E+00 + -5.0206780480627247E+00 -5.0059564545348838E+00 -4.9882761433002791E+00 + -4.9675952861790948E+00 -4.9438728475474756E+00 -4.9170686591254764E+00 + -4.8871434979480863E+00 -4.8540591676230616E+00 -4.8177785829802744E+00 + -4.7782658582234454E+00 -4.7354863986890852E+00 -4.6894069963355332E+00 + -4.6399959290683048E+00 -4.5872230640291249E+00 -4.5310599649675511E+00 + -4.4714800038186615E+00 -4.4084584766185406E+00 -4.3419727238855126E+00 + -4.2720022556013770E+00 -4.1985288809330532E+00 -4.1215368428290819E+00 + -4.0410129576385376E+00 -3.9569467598974937E+00 -3.8693306524310036E+00 + -3.7781600619268989E+00 -3.6834336001304657E+00 -3.5851532308287410E+00 + -3.4833244427757233E+00 -3.3779564287333765E+00 -3.2690622707900361E+00 + -3.1566591321340773E+00 -3.0407684554517740E+00 -2.9214161681332067E+00 + -2.7986328944641987E+00 -2.6724541749901096E+00 -2.5429206932405197E+00 + -2.4100785100027338E+00 -2.2739793053424626E+00 -2.1346806285643050E+00 + -1.9922461563172595E+00 -1.8467459590422268E+00 -1.6982567759751412E+00 + -1.5468622989067990E+00 -1.3926534649183329E+00 -1.2357287582993504E+00 + -1.0761945218732358E+00 -9.1416527794389435E-01 -7.4976405908532184E-01 + -5.8312274900297312E-01 -4.1438243368658095E-01 -2.4369376308852814E-01 + -7.1217323551659786E-02 1.0287597877703016E-01 2.7840452331738130E-01 + 4.5517556897669670E-01 6.3298483638520198E-01 8.1161607820977666E-01 + 9.9084063731198169E-01 1.1704169925136225E+00 1.3500902917296285E+00 + 1.5295918722410373E+00 1.7086387678632196E+00 1.8869332027840497E+00 + 2.0641620718329392E+00 2.2399964069556506E+00 2.4140908296631114E+00 + 2.5860829892311497E+00 2.7555929864274216E+00 2.9222227825484954E+00 + 3.0855555935542101E+00 3.2451552690864407E+00 3.4005656561745647E+00 + 3.5513099474252674E+00 3.6968900135099552E+00 3.8367857197638746E+00 + 3.9704542267268774E+00 4.0973292744557188E+00 4.2168204504554954E+00 + 4.3283124410862319E+00 4.4311642663102795E+00 4.5247084976610950E+00 + 4.6082504593294189E+00 4.6810674122741744E+00 4.7424077212827793E+00 + 4.7914900049229781E+00 4.8275022683519468E+00 4.8496010189557390E+00 + 4.8569103648271552E+00 4.8485210961031324E+00 4.8234897492137669E+00 + 4.7808376541150537E+00 4.7195499646090999E+00 4.6385746718830605E+00 + 4.5368216014291889E+00 4.4131613935438718E+00 4.2664244676326186E+00 + 4.0953999705914326E+00 3.8988347095727853E+00 3.6754320694847626E+00 + 3.4238509156110841E+00 3.1426635462904882E+00 2.8538321795136228E+00 + 2.5794506237653496E+00 2.3200214048613148E+00 2.0753829891346323E+00 + 1.8455123747159141E+00 1.6303680385692527E+00 1.4298868027642668E+00 + 1.2439803681088428E+00 1.0725313933606826E+00 9.1538918141544190E-01 + 7.7236489384453233E-01 6.4322627406201494E-01 5.2769190851384939E-01 + 4.2542495178467715E-01 3.3602638033696541E-01 2.5902774450606347E-01 + 1.9388347030869005E-01 1.3996273761974964E-01 9.6541047734693075E-02 + 6.2791524808309129E-02 3.7776130039374585E-02 2.0436942275666701E-02 + 9.5877324337543240E-03 3.9060877430511115E-03 1.9264530892973077E-03 + 2.0344371253500490E-03 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + -2.2438345685195781E+01 -2.2540718946321501E+01 -2.2536601261544256E+01 + -2.2534048076888322E+01 -2.2532141564674063E+01 -2.2420990623517934E+01 + -2.2413189909442508E+01 -2.2415139773937128E+01 -2.2412814925024936E+01 + -2.2411500150610507E+01 -2.2410319259263382E+01 -2.2409083579945957E+01 + -2.2407927604993308E+01 -2.2406787273608945E+01 -2.2405677098132781E+01 + -2.2404589920037605E+01 -2.2403521500726239E+01 -2.2402470201327315E+01 + -2.2401433224854689E+01 -2.2400408828168459E+01 -2.2399395334643462E+01 + -2.2398391323943773E+01 -2.2397395578289771E+01 -2.2396407020943506E+01 + -2.2395424712166843E+01 -2.2394447819414712E+01 -2.2393475603418477E+01 + -2.2392507404266389E+01 -2.2391542629948592E+01 -2.2390580747244034E+01 + -2.2389621273840227E+01 -2.2388663771822102E+01 -2.2387707842135804E+01 + -2.2386753119886489E+01 -2.2385799270325123E+01 -2.2384845985402013E+01 + -2.2383892980796677E+01 -2.2382939993346650E+01 -2.2381986778812617E+01 + -2.2381033109928964E+01 -2.2380078774696653E+01 -2.2379123574883767E+01 + -2.2378167324703732E+01 -2.2377209849646803E+01 -2.2376250985443978E+01 + -2.2375290577145602E+01 -2.2374328478300132E+01 -2.2373364550219790E+01 + -2.2372398661322595E+01 -2.2371430686541693E+01 -2.2370460506793151E+01 + -2.2369488008496255E+01 -2.2368513083139629E+01 -2.2367535626888227E+01 + -2.2366555540226788E+01 -2.2365572727635342E+01 -2.2364587097294059E+01 + -2.2363598560813504E+01 -2.2362607032988457E+01 -2.2361612431572158E+01 + -2.2360614677069858E+01 -2.2359613692548479E+01 -2.2358609403462555E+01 + -2.2357601737492914E+01 -2.2356590624398788E+01 -2.2355575995880578E+01 + -2.2354557785453544E+01 -2.2353535928330427E+01 -2.2352510361312813E+01 + -2.2351481022690560E+01 -2.2350447852147894E+01 -2.2349410790676604E+01 + -2.2348369780494583E+01 -2.2347324764970697E+01 -2.2346275688553852E+01 + -2.2345222496707510E+01 -2.2344165135847806E+01 -2.2343103553286220E+01 + -2.2342037697175396E+01 -2.2340967516458672E+01 -2.2339892960822517E+01 + -2.2338813980652070E+01 -2.2337730526989091E+01 -2.2336642551492655E+01 + -2.2335550006401842E+01 -2.2334452844500994E+01 -2.2333351019086603E+01 + -2.2332244483936108E+01 -2.2331133193278450E+01 -2.2330017101766515E+01 + -2.2328896164450594E+01 -2.2327770336753485E+01 -2.2326639574447029E+01 + -2.2325503833629647E+01 -2.2324363070705154E+01 -2.2323217242362620E+01 + -2.2322066305557215E+01 -2.2320910217492006E+01 -2.2319748935600693E+01 + -2.2318582417531037E+01 -2.2317410621129351E+01 -2.2316233504425277E+01 + -2.2315051025617795E+01 -2.2313863143061372E+01 -2.2312669815253148E+01 + -2.2311471000820379E+01 -2.2310266658508617E+01 -2.2309056747170320E+01 + -2.2307841225753972E+01 -2.2306620053293745E+01 -2.2305393188899352E+01 + -2.2304160591746584E+01 -2.2302922221068108E+01 -2.2301678036144594E+01 + -2.2300427996296250E+01 -2.2299172060874717E+01 -2.2297910189255202E+01 + -2.2296642340828857E+01 -2.2295368474995637E+01 -2.2294088551157270E+01 + -2.2292802528710382E+01 -2.2291510367040264E+01 -2.2290212025514307E+01 + -2.2288907463476065E+01 -2.2287596640239418E+01 -2.2286279515082843E+01 + -2.2284956047244030E+01 -2.2283626195914430E+01 -2.2282289920234312E+01 + -2.2280947179287608E+01 -2.2279597932097239E+01 -2.2278242137620349E+01 + -2.2276879754743774E+01 -2.2275510742279724E+01 -2.2274135058961395E+01 + -2.2272752663438869E+01 -2.2271363514275084E+01 -2.2269967569941851E+01 + -2.2268564788816075E+01 -2.2267155129175954E+01 -2.2265738549197497E+01 + -2.2264315006950742E+01 -2.2262884460396577E+01 -2.2261446867383164E+01 + -2.2260002185642673E+01 -2.2258550372788132E+01 -2.2257091386310279E+01 + -2.2255625183574420E+01 -2.2254151721817514E+01 -2.2252670958145060E+01 + -2.2251182849528512E+01 -2.2249687352802106E+01 -2.2248184424660337E+01 + -2.2246674021655146E+01 -2.2245156100193224E+01 -2.2243630616533547E+01 + -2.2242097526784615E+01 -2.2240556786902012E+01 -2.2239008352685971E+01 + -2.2237452179778899E+01 -2.2235888223662894E+01 -2.2234316439657583E+01 + -2.2232736782917527E+01 -2.2231149208430267E+01 -2.2229553671013658E+01 + -2.2227950125313960E+01 -2.2226338525803577E+01 -2.2224718826778837E+01 + -2.2223090982357800E+01 -2.2221454946478342E+01 -2.2219810672895818E+01 + -2.2218158115181254E+01 -2.2216497226719067E+01 -2.2214827960705339E+01 + -2.2213150270145437E+01 -2.2211464107852503E+01 -2.2209769426445078E+01 + -2.2208066178345412E+01 -2.2206354315777517E+01 -2.2204633790765243E+01 + -2.2202904555130370E+01 -2.2201166560490805E+01 -2.2199419758258692E+01 + -2.2197664099638573E+01 -2.2195899535625632E+01 -2.2194126017003764E+01 + -2.2192343494343952E+01 -2.2190551918002317E+01 -2.2188751238118485E+01 + -2.2186941404613744E+01 -2.2185122367189265E+01 -2.2183294075324461E+01 + -2.2181456478275273E+01 -2.2179609525072330E+01 -2.2177753164519274E+01 + -2.2175887345191171E+01 -2.2174012015432641E+01 -2.2172127123356372E+01 + -2.2170232616841201E+01 -2.2168328443530690E+01 -2.2166414550831274E+01 + -2.2164490885910681E+01 -2.2162557395696272E+01 -2.2160614026873329E+01 + -2.2158660725883603E+01 -2.2156697438923409E+01 -2.2154724111942105E+01 + -2.2152740690640623E+01 -2.2150747120469536E+01 -2.2148743346627679E+01 + -2.2146729314060401E+01 -2.2144704967457990E+01 -2.2142670251254106E+01 + -2.2140625109624075E+01 -2.2138569486483309E+01 -2.2136503325485787E+01 + -2.2134426570022370E+01 -2.2132339163219150E+01 -2.2130241047935943E+01 + -2.2128132166764615E+01 -2.2126012462027614E+01 -2.2123881875776210E+01 + -2.2121740349788986E+01 -2.2119587825570196E+01 -2.2117424244348296E+01 + -2.2115249547074143E+01 -2.2113063674419514E+01 -2.2110866566775634E+01 + -2.2108658164251285E+01 -2.2106438406671522E+01 -2.2104207233575856E+01 + -2.2101964584216752E+01 -2.2099710397558070E+01 -2.2097444612273375E+01 + -2.2095167166744318E+01 -2.2092877999059287E+01 -2.2090577047011433E+01 + -2.2088264248097364E+01 -2.2085939539515415E+01 -2.2083602858164049E+01 + -2.2081254140640315E+01 -2.2078893323238155E+01 -2.2076520341946896E+01 + -2.2074135132449516E+01 -2.2071737630121149E+01 -2.2069327770027428E+01 + -2.2066905486922810E+01 -2.2064470715249069E+01 -2.2062023389133596E+01 + -2.2059563442387844E+01 -2.2057090808505652E+01 -2.2054605420661545E+01 + -2.2052107211709306E+01 -2.2049596114180169E+01 -2.2047072060281280E+01 + -2.2044534981893996E+01 -2.2041984810572284E+01 -2.2039421477541090E+01 + -2.2036844913694644E+01 -2.2034255049594883E+01 -2.2031651815469765E+01 + -2.2029035141211590E+01 -2.2026404956375391E+01 -2.2023761190177218E+01 + -2.2021103771492555E+01 -2.2018432628854594E+01 -2.2015747690452599E+01 + -2.2013048884130196E+01 -2.2010336137383678E+01 -2.2007609377360524E+01 + -2.2004868530857397E+01 -2.2002113524318691E+01 -2.1999344283834837E+01 + -2.1996560735140495E+01 -2.1993762803612892E+01 -2.1990950414270241E+01 + -2.1988123491769908E+01 -2.1985281960406628E+01 -2.1982425744111126E+01 + -2.1979554766448121E+01 -2.1976668950614631E+01 -2.1973768219438334E+01 + -2.1970852495375805E+01 -2.1967921700510896E+01 -2.1964975756552800E+01 + -2.1962014584834524E+01 -2.1959038106310967E+01 -2.1956046241557338E+01 + -2.1953038910767351E+01 -2.1950016033751478E+01 -2.1946977529935083E+01 + -2.1943923318356880E+01 -2.1940853317667081E+01 -2.1937767446125580E+01 + -2.1934665621600139E+01 -2.1931547761564850E+01 -2.1928413783098140E+01 + -2.1925263602881110E+01 -2.1922097137195642E+01 -2.1918914301922747E+01 + -2.1915715012540662E+01 -2.1912499184123135E+01 -2.1909266731337592E+01 + -2.1906017568443328E+01 -2.1902751609289762E+01 -2.1899468767314534E+01 + -2.1896168955541764E+01 -2.1892852086580238E+01 -2.1889518072621527E+01 + -2.1886166825438234E+01 -2.1882798256382159E+01 -2.1879412276382364E+01 + -2.1876008795943573E+01 -2.1872587725144026E+01 -2.1869148973633898E+01 + -2.1865692450633354E+01 -2.1862218064930673E+01 -2.1858725724880404E+01 + -2.1855215338401603E+01 -2.1851686812975796E+01 -2.1848140055645388E+01 + -2.1844574973011465E+01 -2.1840991471232229E+01 -2.1837389456020890E+01 + -2.1833768832643980E+01 -2.1830129505919313E+01 -2.1826471380214205E+01 + -2.1822794359443520E+01 -2.1819098347067932E+01 -2.1815383246091741E+01 + -2.1811648959061369E+01 -2.1807895388063049E+01 -2.1804122434721272E+01 + -2.1800330000196659E+01 -2.1796517985184131E+01 -2.1792686289910979E+01 + -2.1788834814135008E+01 -2.1784963457142599E+01 -2.1781072117746682E+01 + -2.1777160694284916E+01 -2.1773229084617800E+01 -2.1769277186126658E+01 + -2.1765304895711679E+01 -2.1761312109790126E+01 -2.1757298724294348E+01 + -2.1753264634669708E+01 -2.1749209735872764E+01 -2.1745133922369334E+01 + -2.1741037088132469E+01 -2.1736919126640633E+01 -2.1732779930875580E+01 + -2.1728619393320528E+01 -2.1724437405958184E+01 -2.1720233860268770E+01 + -2.1716008647228023E+01 -2.1711761657305271E+01 -2.1707492780461511E+01 + -2.1703201906147321E+01 -2.1698888923301045E+01 -2.1694553720346686E+01 + -2.1690196185192033E+01 -2.1685816205226626E+01 -2.1681413667319809E+01 + -2.1676988457818780E+01 -2.1672540462546511E+01 -2.1668069566799865E+01 + -2.1663575655347628E+01 -2.1659058612428421E+01 -2.1654518321748814E+01 + -2.1649954666481360E+01 -2.1645367529262373E+01 -2.1640756792190384E+01 + -2.1636122336823686E+01 -2.1631464044178671E+01 -2.1626781794727716E+01 + -2.1622075468397107E+01 -2.1617344944565254E+01 -2.1612590102060551E+01 + -2.1607810819159415E+01 -2.1603006973584300E+01 -2.1598178442501755E+01 + -2.1593325102520371E+01 -2.1588446829688820E+01 -2.1583543499493725E+01 + -2.1578614986858003E+01 -2.1573661166138539E+01 -2.1568681911124354E+01 + -2.1563677095034585E+01 -2.1558646590516471E+01 -2.1553590269643461E+01 + -2.1548508003913110E+01 -2.1543399664245182E+01 -2.1538265120979485E+01 + -2.1533104243874192E+01 -2.1527916902103676E+01 -2.1522702964256393E+01 + -2.1517462298333243E+01 -2.1512194771745303E+01 -2.1506900251311944E+01 + -2.1501578603258920E+01 -2.1496229693216254E+01 -2.1490853386216493E+01 + -2.1485449546692472E+01 -2.1480018038475549E+01 -2.1474558724793543E+01 + -2.1469071468268830E+01 -2.1463556130916349E+01 -2.1458012574141623E+01 + -2.1452440658738901E+01 -2.1446840244889152E+01 -2.1441211192158079E+01 + -2.1435553359494282E+01 -2.1429866605227232E+01 -2.1424150787065333E+01 + -2.1418405762094075E+01 -2.1412631386774098E+01 -2.1406827516939185E+01 + -2.1400994007794377E+01 -2.1395130713914167E+01 -2.1389237489240429E+01 + -2.1383314187080664E+01 -2.1377360660106060E+01 -2.1371376760349431E+01 + -2.1365362339203674E+01 -2.1359317247419614E+01 -2.1353241335104173E+01 + -2.1347134451718606E+01 -2.1340996446076570E+01 -2.1334827166342293E+01 + -2.1328626460028659E+01 -2.1322394173995427E+01 -2.1316130154447503E+01 + -2.1309834246932830E+01 -2.1303506296340874E+01 -2.1297146146900580E+01 + -2.1290753642178739E+01 -2.1284328625078089E+01 -2.1277870937835541E+01 + -2.1271380422020403E+01 -2.1264856918532658E+01 -2.1258300267601189E+01 + -2.1251710308781899E+01 -2.1245086880956226E+01 -2.1238429822329056E+01 + -2.1231738970427333E+01 -2.1225014162098191E+01 -2.1218255233507239E+01 + -2.1211462020136885E+01 -2.1204634356784716E+01 -2.1197772077561662E+01 + -2.1190875015890605E+01 -2.1183943004504414E+01 -2.1176975875444590E+01 + -2.1169973460059431E+01 -2.1162935589002519E+01 -2.1155862092231033E+01 + -2.1148752799004399E+01 -2.1141607537882308E+01 -2.1134426136723629E+01 + -2.1127208422684454E+01 -2.1119954222216741E+01 -2.1112663361066822E+01 + -2.1105335664273845E+01 -2.1097970956168247E+01 -2.1090569060370353E+01 + -2.1083129799788882E+01 -2.1075652996619464E+01 -2.1068138472343218E+01 + -2.1060586047725412E+01 -2.1052995542814003E+01 -2.1045366776938234E+01 + -2.1037699568707296E+01 -2.1029993736008961E+01 -2.1022249096008359E+01 + -2.1014465465146444E+01 -2.1006642659138897E+01 -2.0998780492974824E+01 + -2.0990878780915349E+01 -2.0982937336492643E+01 -2.0974955972508393E+01 + -2.0966934501032796E+01 -2.0958872733403346E+01 -2.0950770480223760E+01 + -2.0942627551362666E+01 -2.0934443755952596E+01 -2.0926218902388772E+01 + -2.0917952798328358E+01 -2.0909645250688957E+01 -2.0901296065647955E+01 + -2.0892905048641300E+01 -2.0884472004362575E+01 -2.0875996736762172E+01 + -2.0867479049046178E+01 -2.0858918743675471E+01 -2.0850315622365006E+01 + -2.0841669486082875E+01 -2.0832980135049379E+01 -2.0824247368736277E+01 + -2.0815470985866117E+01 -2.0806650784411385E+01 -2.0797786561593703E+01 + -2.0788878113883342E+01 -2.0779925236998345E+01 -2.0770927725904055E+01 + -2.0761885374812323E+01 -2.0752797977181160E+01 -2.0743665325713938E+01 + -2.0734487212359063E+01 -2.0725263428309407E+01 -2.0715993764001865E+01 + -2.0706678009116857E+01 -2.0697315952578023E+01 -2.0687907382551963E+01 + -2.0678452086447571E+01 -2.0668949850916118E+01 -2.0659400461850730E+01 + -2.0649803704386333E+01 -2.0640159362899386E+01 -2.0630467221007688E+01 + -2.0620727061570268E+01 -2.0610938666687510E+01 -2.0601101817700798E+01 + -2.0591216295192670E+01 -2.0581281878986886E+01 -2.0571298348148392E+01 + -2.0561265480983533E+01 -2.0551183055040141E+01 -2.0541050847107687E+01 + -2.0530868633217644E+01 -2.0520636188643653E+01 -2.0510353287901854E+01 + -2.0500019704751242E+01 -2.0489635212194138E+01 -2.0479199582476518E+01 + -2.0468712587088614E+01 -2.0458173996765378E+01 -2.0447583581486992E+01 + -2.0436941110479736E+01 -2.0426246352216353E+01 -2.0415499074417017E+01 + -2.0404699044049970E+01 -2.0393846027332362E+01 -2.0382939789731100E+01 + -2.0371980095963821E+01 -2.0360966709999818E+01 -2.0349899395060984E+01 + -2.0338777913623094E+01 -2.0327602027416606E+01 -2.0316371497428111E+01 + -2.0305086083901475E+01 -2.0293745546338993E+01 -2.0282349643502918E+01 + -2.0270898133416747E+01 -2.0259390773366651E+01 -2.0247827319903024E+01 + -2.0236207528842034E+01 -2.0224531155267208E+01 -2.0212797953531165E+01 + -2.0201007677257323E+01 -2.0189160079341654E+01 -2.0177254911954655E+01 + -2.0165291926543087E+01 -2.0153270873832220E+01 -2.0141191503827638E+01 + -2.0129053565817436E+01 -2.0116856808374379E+01 -2.0104600979358249E+01 + -2.0092285825918001E+01 -2.0079911094494154E+01 -2.0067476530821359E+01 + -2.0054981879930772E+01 -2.0042426886152690E+01 -2.0029811293119188E+01 + -2.0017134843766868E+01 -2.0004397280339621E+01 -1.9991598344391448E+01 + -1.9978737776789476E+01 -1.9965815317716892E+01 -1.9952830706676149E+01 + -1.9939783682492006E+01 -1.9926673983314721E+01 -1.9913501346623558E+01 + -1.9900265509230035E+01 -1.9886966207281386E+01 -1.9873603176264236E+01 + -1.9860176151008027E+01 -1.9846684865688950E+01 -1.9833129053833606E+01 + -1.9819508448322892E+01 -1.9805822781396056E+01 -1.9792071784654656E+01 + -1.9778255189066648E+01 -1.9764372724970798E+01 -1.9750424122080702E+01 + -1.9736409109489468E+01 -1.9722327415674027E+01 -1.9708178768499771E+01 + -1.9693962895225166E+01 -1.9679679522506600E+01 -1.9665328376403121E+01 + -1.9650909182381486E+01 -1.9636421665321130E+01 -1.9621865549519413E+01 + -1.9607240558696596E+01 -1.9592546416001525E+01 -1.9577782844016792E+01 + -1.9562949564764352E+01 -1.9548046299711157E+01 -1.9533072769774861E+01 + -1.9518028695329729E+01 -1.9502913796212443E+01 -1.9487727791728364E+01 + -1.9472470400657308E+01 -1.9457141341260268E+01 -1.9441740331285327E+01 + -1.9426267087974487E+01 -1.9410721328069986E+01 -1.9395102767821175E+01 + -1.9379411122991204E+01 -1.9363646108863961E+01 -1.9347807440251135E+01 + -1.9331894831499312E+01 -1.9315907996497330E+01 -1.9299846648683477E+01 + -1.9283710501053125E+01 -1.9267499266166297E+01 -1.9251212656155438E+01 + -1.9234850382733171E+01 -1.9218412157200365E+01 -1.9201897690454203E+01 + -1.9185306692996395E+01 -1.9168638874941514E+01 -1.9151893946025453E+01 + -1.9135071615614152E+01 -1.9118171592712091E+01 -1.9101193585971444E+01 + -1.9084137303700782E+01 -1.9067002453874316E+01 -1.9049788744141235E+01 + -1.9032495881834961E+01 -1.9015123573982734E+01 -1.8997671527315223E+01 + -1.8980139448276415E+01 -1.8962527043033415E+01 -1.8944834017486695E+01 + -1.8927060077280110E+01 -1.8909204927811349E+01 -1.8891268274242481E+01 + -1.8873249821510544E+01 -1.8855149274338302E+01 -1.8836966337245201E+01 + -1.8818700714558513E+01 -1.8800352110424473E+01 -1.8781920228819679E+01 + -1.8763404773562694E+01 -1.8744805448325568E+01 -1.8726121956645898E+01 + -1.8707354001938604E+01 -1.8688501287508171E+01 -1.8669563516560988E+01 + -1.8650540392217668E+01 -1.8631431617525838E+01 -1.8612236895472723E+01 + -1.8592955928998244E+01 -1.8573588421008086E+01 -1.8554134074386848E+01 + -1.8534592592011574E+01 -1.8514963676765362E+01 -1.8495247031551031E+01 + -1.8475442359305084E+01 -1.8455549363011887E+01 -1.8435567745717748E+01 + -1.8415497210545517E+01 -1.8395337460709193E+01 -1.8375088199528538E+01 + -1.8354749130444151E+01 -1.8334319957032715E+01 -1.8313800383022031E+01 + -1.8293190112306757E+01 -1.8272488848963896E+01 -1.8251696297268712E+01 + -1.8230812161710855E+01 -1.8209836147010357E+01 -1.8188767958134157E+01 + -1.8167607300312689E+01 -1.8146353879056576E+01 -1.8125007400173647E+01 + -1.8103567569785938E+01 -1.8082034094347208E+01 -1.8060406680660368E+01 + -1.8038685035895110E+01 -1.8016868867605897E+01 -1.7994957883750001E+01 + -1.7972951792705874E+01 -1.7950850303291514E+01 -1.7928653124783207E+01 + -1.7906359966934374E+01 -1.7883970539994660E+01 -1.7861484554729234E+01 + -1.7838901722438145E+01 -1.7816221754976109E+01 -1.7793444364772405E+01 + -1.7770569264850774E+01 -1.7747596168849928E+01 -1.7724524791043873E+01 + -1.7701354846362648E+01 -1.7678086050413299E+01 -1.7654718119500824E+01 + -1.7631250770649661E+01 -1.7607683721625154E+01 -1.7584016690955220E+01 + -1.7560249397952404E+01 -1.7536381562735993E+01 -1.7512412906254372E+01 + -1.7488343150307674E+01 -1.7464172017570487E+01 -1.7439899231614987E+01 + -1.7415524516934141E+01 -1.7391047598965077E+01 -1.7366468204112902E+01 + -1.7341786059774481E+01 -1.7317000894362597E+01 -1.7292112437330271E+01 + -1.7267120419195393E+01 -1.7242024571565345E+01 -1.7216824627162161E+01 + -1.7191520319847598E+01 -1.7166111384648815E+01 -1.7140597557783760E+01 + -1.7114978576687314E+01 -1.7089254180037226E+01 -1.7063424107780637E+01 + -1.7037488101160541E+01 -1.7011445902742675E+01 -1.6985297256442440E+01 + -1.6959041907552322E+01 -1.6932679602769280E+01 -1.6906210090222533E+01 + -1.6879633119501428E+01 -1.6852948441683768E+01 -1.6826155809364131E+01 + -1.6799254976682509E+01 -1.6772245699353292E+01 -1.6745127734694272E+01 + -1.6717900841656125E+01 -1.6690564780851872E+01 -1.6663119314586783E+01 + -1.6635564206888365E+01 -1.6607899223536705E+01 -1.6580124132094966E+01 + -1.6552238701940144E+01 -1.6524242704294139E+01 -1.6496135912254800E+01 + -1.6467918100827635E+01 -1.6439589046957266E+01 -1.6411148529559583E+01 + -1.6382596329553717E+01 -1.6353932229894635E+01 -1.6325156015605682E+01 + -1.6296267473811422E+01 -1.6267266393770871E+01 -1.6238152566910770E+01 + -1.6208925786859187E+01 -1.6179585849479334E+01 -1.6150132552903678E+01 + -1.6120565697568214E+01 -1.6090885086246889E+01 -1.6061090524086598E+01 + -1.6031181818641951E+01 -1.6001158779910647E+01 -1.5971021220368923E+01 + -1.5940768955007183E+01 -1.5910401801366033E+01 -1.5879919579572476E+01 + -1.5849322112376178E+01 -1.5818609225186197E+01 -1.5787780746107909E+01 + -1.5756836505979971E+01 -1.5725776338411725E+01 -1.5694600079820823E+01 + -1.5663307569470886E+01 -1.5631898649509649E+01 -1.5600373165007140E+01 + -1.5568730963994156E+01 -1.5536971897501074E+01 -1.5505095819596587E+01 + -1.5473102587427030E+01 -1.5440992061255731E+01 -1.5408764104502570E+01 + -1.5376418583783801E+01 -1.5343955368952201E+01 -1.5311374333137225E+01 + -1.5278675352785545E+01 -1.5245858307701832E+01 -1.5212923081089571E+01 + -1.5179869559592275E+01 -1.5146697633334840E+01 -1.5113407195965092E+01 + -1.5079998144695660E+01 -1.5046470380345893E+01 -1.5012823807384104E+01 + -1.4979058333970039E+01 -1.4945173871997461E+01 -1.4911170337136982E+01 + -1.4877047648879172E+01 -1.4842805730577799E+01 -1.4808444509493206E+01 + -1.4773963916836086E+01 -1.4739363887811257E+01 -1.4704644361661703E+01 + -1.4669805281712982E+01 -1.4634846595417439E+01 -1.4599768254399066E+01 + -1.4564570214498195E+01 -1.4529252435816620E+01 -1.4493814882762710E+01 + -1.4458257524096927E+01 -1.4422580332977303E+01 -1.4386783287005329E+01 + -1.4350866368271836E+01 -1.4314829563403071E+01 -1.4278672863607140E+01 + -1.4242396264720435E+01 -1.4205999767254239E+01 -1.4169483376441674E+01 + -1.4132847102284581E+01 -1.4096090959600819E+01 -1.4059214968071510E+01 + -1.4022219152288583E+01 -1.3985103541802435E+01 -1.3947868171169722E+01 + -1.3910513080001378E+01 -1.3873038313010772E+01 -1.3835443920061943E+01 + -1.3797729956218063E+01 -1.3759896481790138E+01 -1.3721943562385500E+01 + -1.3683871268956922E+01 -1.3645679677851593E+01 -1.3607368870860164E+01 + -1.3568938935266258E+01 -1.3530389963895670E+01 -1.3491722055166159E+01 + -1.3452935313136967E+01 -1.3414029847558844E+01 -1.3375005773923842E+01 + -1.3335863213515461E+01 -1.3296602293458847E+01 -1.3257223146771139E+01 + -1.3217725912411840E+01 -1.3178110735333505E+01 -1.3138377766532189E+01 + -1.3098527163098451E+01 -1.3058559088268094E+01 -1.3018473711473233E+01 + -1.2978271208393249E+01 -1.2937951761006143E+01 -1.2897515557639714E+01 + -1.2856962793023021E+01 -1.2816293668337741E+01 -1.2775508391269842E+01 + -1.2734607176061189E+01 -1.2693590243561260E+01 -1.2652457821279025E+01 + -1.2611210143434763E+01 -1.2569847451012150E+01 -1.2528369991810207E+01 + -1.2486778020495514E+01 -1.2445071798654316E+01 -1.2403251594844924E+01 + -1.2361317684649968E+01 -1.2319270350728758E+01 -1.2277109882869878E+01 + -1.2234836578043591E+01 -1.2192450740454516E+01 -1.2149952681594225E+01 + -1.2107342720293882E+01 -1.2064621182777142E+01 -1.2021788402712817E+01 + -1.1978844721267791E+01 -1.1935790487159865E+01 -1.1892626056710810E+01 + -1.1849351793899171E+01 -1.1805968070413469E+01 -1.1762475265705124E+01 + -1.1718873767041648E+01 -1.1675163969559792E+01 -1.1631346276318666E+01 + -1.1587421098352955E+01 -1.1543388854726187E+01 -1.1499249972583968E+01 + -1.1455004887207316E+01 -1.1410654042065982E+01 -1.1366197888871760E+01 + -1.1321636887631986E+01 -1.1276971506702768E+01 -1.1232202222842560E+01 + -1.1187329521265546E+01 -1.1142353895695130E+01 -1.1097275848417461E+01 + -1.1052095890334868E+01 -1.1006814541019496E+01 -1.0961432328766778E+01 + -1.0915949790649087E+01 -1.0870367472569246E+01 -1.0824685929314205E+01 + -1.0778905724608661E+01 -1.0733027431168667E+01 -1.0687051630755365E+01 + -1.0640978914228594E+01 -1.0594809881600700E+01 -1.0548545142090145E+01 + -1.0502185314175355E+01 -1.0455731025648410E+01 -1.0409182913668880E+01 + -1.0362541624817581E+01 -1.0315807815150496E+01 -1.0268982150252512E+01 + -1.0222065305291411E+01 -1.0175057965071659E+01 -1.0127960824088479E+01 + -1.0080774586581704E+01 -1.0033499966589799E+01 -9.9861376880038932E+00 + -9.9386884846218511E+00 -9.8911531002023221E+00 -9.8435322885189240E+00 + -9.7958268134143633E+00 -9.7480374488547117E+00 -9.7001649789836186E+00 + -9.6522101981765971E+00 -9.6041739110954829E+00 -9.5560569327427114E+00 + -9.5078600885158711E+00 -9.4595842142621986E+00 -9.4112301563331773E+00 + -9.3627987716391718E+00 -9.3142909277041550E+00 -9.2657075027205025E+00 + -9.2170493856038807E+00 -9.1683174760481858E+00 -9.1195126845805206E+00 + -9.0706359326164119E+00 -9.0216881525149564E+00 -8.9726702876341484E+00 + -8.9235832923863416E+00 -8.8744281322936764E+00 -8.8252057840437335E+00 + -8.7759172355453732E+00 -8.7265634859844479E+00 -8.6771455458799096E+00 + -8.6276644371398614E+00 -8.5781211931178643E+00 -8.5285168586692919E+00 + -8.4788524902078972E+00 -8.4291291557625030E+00 -8.3793479350338842E+00 + -8.3295099194517039E+00 -8.2796162122318364E+00 -8.2296679284336296E+00 + -8.1796661950174592E+00 -8.1296121509025401E+00 -8.0795069470247842E+00 + -8.0293517463949744E+00 -7.9791477241570936E+00 -7.9288960676468871E+00 + -7.8785979764506493E+00 -7.8282546624641984E+00 -7.7778673499521869E+00 + -7.7274372756074801E+00 -7.6769656886109994E+00 -7.6264538506916493E+00 + -7.5759030361865554E+00 -7.5253145321016408E+00 -7.4746896381723271E+00 + -7.4240296669247599E+00 -7.3733359437370192E+00 -7.3226098069009113E+00 + -7.2718526076838472E+00 -7.2210657103912155E+00 -7.1702504924289086E+00 + -7.1194083443663132E+00 -7.0685406699995132E+00 -7.0176488864149356E+00 + -6.9667344240532811E+00 -6.9157987267738159E+00 -6.8648432519190496E+00 + -6.8138694703797738E+00 -6.7628788666604107E+00 -6.7118729389448513E+00 + -6.6608531991625837E+00 -6.6098211730552796E+00 -6.5587784002436988E+00 + -6.5077264342951286E+00 -6.4566668427910958E+00 -6.4056012073955566E+00 + -6.3545311239235236E+00 -6.3034582024101011E+00 -6.2523840671798983E+00 + -6.2013103569170118E+00 -6.1502387247352797E+00 -6.0991708382491030E+00 + -6.0481083796447122E+00 -5.9970530457517714E+00 -5.9460065481155988E+00 + -5.8949706130696882E+00 -5.8439469818088359E+00 -5.7929374104626135E+00 + -5.7419436701693742E+00 -5.6909675471507226E+00 -5.6400108427863955E+00 + -5.5890753736897105E+00 -5.5381629717833629E+00 -5.4872754843758358E+00 + -5.4364147742381066E+00 -5.3855827196810075E+00 -5.3347812146329057E+00 + -5.2840121687179087E+00 -5.2332775073345337E+00 -5.1825791717348304E+00 + -5.1319191191039533E+00 -5.0812993226402092E+00 -5.0307217716354584E+00 + -4.9801884715561071E+00 -4.9297014441244063E+00 -4.8792627274002465E+00 + -4.8288743758633208E+00 -4.7785384604957590E+00 -4.7282570688650996E+00 + -4.6780323052077168E+00 -4.6278662905125740E+00 -4.5777611626053787E+00 + -4.5277190762330761E+00 -4.4777422031486998E+00 -4.4278327321965589E+00 + -4.3779928693977190E+00 -4.3282248380358030E+00 -4.2785308787430472E+00 + -4.2289132495866628E+00 -4.1793742261554003E+00 -4.1299161016463861E+00 + -4.0805411869520984E+00 -4.0312518107476123E+00 -3.9820503195779162E+00 + -3.9329390779454592E+00 -3.8839204683977084E+00 -3.8349968916149026E+00 + -3.7861707664977420E+00 -3.7374445302552215E+00 -3.6888206384923956E+00 + -3.6403015652981314E+00 -3.5918898033328093E+00 -3.5435878639159011E+00 + -3.4953982771134542E+00 -3.4473235918253797E+00 -3.3993663758725403E+00 + -3.3515292160836201E+00 -3.3038147183816875E+00 -3.2562255078704356E+00 + -3.2087642289200731E+00 -3.1614335452528008E+00 -3.1142361400278276E+00 + -3.0671747159258884E+00 -3.0202519952332096E+00 -2.9734707199248884E+00 + -2.9268336517476246E+00 -2.8803435723017019E+00 -2.8340032831222981E+00 + -2.7878156057598988E+00 -2.7417833818599329E+00 -2.6959094732413842E+00 + -2.6501967619744962E+00 -2.6046481504574075E+00 -2.5592665614916568E+00 + -2.5140549383565296E+00 -2.4690162448821797E+00 -2.4241534655214383E+00 + -2.3794696054202267E+00 -2.3349676904865628E+00 -2.2906507674580054E+00 + -2.2465219039675626E+00 -2.2025841886078932E+00 -2.1588407309937798E+00 + -2.1152946618228001E+00 -2.0719491329340829E+00 -2.0288073173650920E+00 + -1.9858724094063502E+00 -1.9431476246540300E+00 -1.9006362000602917E+00 + -1.8583413939813358E+00 -1.8162664862230342E+00 -1.7744147780840553E+00 + -1.7327895923964465E+00 -1.6913942735634935E+00 -1.6502321875948349E+00 + -1.6093067221387083E+00 -1.5686212865112164E+00 -1.5281793117225562E+00 + -1.4879842505000465E+00 -1.4480395773079340E+00 -1.4083487883637973E+00 + -1.3689154016514946E+00 -1.3297429569305235E+00 -1.2908350157416872E+00 + -1.2521951614089848E+00 -1.2138269990375583E+00 -1.1757341555076450E+00 + -1.1379202794643737E+00 -1.1003890413033102E+00 -1.0631441331516331E+00 + -1.0261892688448015E+00 -9.8952818389862640E-01 -9.5316463547657182E-01 + -9.1710240235220752E-01 -8.8134528486665420E-01 -8.4589710488089864E-01 + -8.1076170572283657E-01 -7.7594295212893372E-01 -7.4144473018032098E-01 + -7.0727094723322348E-01 -6.7342553184355924E-01 -6.3991243368555173E-01 + -6.0673562346422560E-01 -5.7389909282161289E-01 -5.4140685423651669E-01 + -5.0926294091767299E-01 -4.7747140669013916E-01 -4.4603632587474262E-01 + -4.1496179316040915E-01 -3.8425192346918968E-01 -3.5391085181316367E-01 + -3.2394273314625605E-01 -2.9435174220429106E-01 -2.6514207333956968E-01 + -2.3631794034652134E-01 -2.0788357627885018E-01 -1.7984323325797077E-01 + -1.5220118227249393E-01 -1.2496171296853281E-01 -9.8129133430570295E-02 + -7.1707769952662315E-02 -4.5701966799684149E-02 -2.0116085958374105E-02 + 5.0454931221182364E-03 2.9778373800460913E-02 5.4078142524449049E-02 + 7.7940369123708914E-02 1.0136060711410583E-01 1.2433439401419677E-01 + 1.4685725167406447E-01 1.6892468661689602E-01 1.9053219039367128E-01 + 2.1167523995132737E-01 2.3234929801481505E-01 2.5254981348343458E-01 + 2.7227222184187660E-01 2.9151194558640586E-01 3.1026439466662137E-01 + 3.2852496694326677E-01 3.4628904866255783E-01 3.6355201494751710E-01 + 3.8030923030682395E-01 3.9655604916169179E-01 4.1228781639130219E-01 + 4.2749986789735067E-01 4.4218753118826071E-01 4.5634612598363616E-01 + 4.6997096483954393E-01 4.8305735379522868E-01 4.9560059304187587E-01 + 5.0759597761404385E-01 5.1903879810441489E-01 5.2992434140250533E-01 + 5.4024789145801788E-01 5.5000473006948092E-01 5.5919013769887949E-01 + 5.6779939431297100E-01 5.7582778025198933E-01 5.8327057712641595E-01 + 5.9012306874258069E-01 5.9638054205778335E-01 6.0203828816567173E-01 + 6.0709160331260592E-01 6.1153578994573710E-01 6.1536615779355608E-01 + 6.1857802497959991E-01 6.2116671917012689E-01 6.2312757875640501E-01 + 6.2445595407240850E-01 6.2514720864862749E-01 6.2519672050270336E-01 + 6.2459988346760686E-01 6.2335210855807588E-01 6.2144882537601120E-01 + 6.1888548355550033E-01 6.1565755424816659E-01 6.1176053164950861E-01 + 6.0718993456688697E-01 6.0194130802980039E-01 5.9601022494308298E-01 + 5.8939228778364805E-01 5.8208313034138148E-01 5.7407841950478344E-01 + 5.6537385709192634E-01 5.5596518172733933E-01 5.4584817076530479E-01 + 5.3501864226020823E-01 5.2347245698439415E-01 5.1120552049411694E-01 + 4.9821378524407633E-01 4.8449325275107535E-01 4.7003997580729689E-01 + 4.5485006074372403E-01 4.3891966974420854E-01 4.2224502321069235E-01 + 4.0482240218010768E-01 3.8664815079348119E-01 3.6771867881774623E-01 + 3.4803046422083400E-01 3.2758005580053401E-01 3.0636407586775283E-01 + 2.8437922298465118E-01 2.6162227475830080E-01 2.3809009069038287E-01 + 2.1377961508354876E-01 1.8868788000497405E-01 1.6281200830772080E-01 + 1.3614921671039443E-01 1.0869681893563364E-01 8.0452228907877829E-02 + 5.1412964010799228E-02 2.1576648404660011E-02 -9.0589835962301985E-03 + -4.0496084086007959E-02 -7.2736688069896097E-02 -1.0578270990756919E-01 + -1.3963593969801200E-01 -1.7429803960722012E-01 -2.0977054014047081E-01 + -2.4605483636156966E-01 -2.8315218406216774E-01 -3.2106369588521422E-01 + -3.5979033740750527E-01 -3.9933292318758495E-01 -4.3969211278669718E-01 + -4.8086840677199755E-01 -5.2286214271324394E-01 -5.6567349118626897E-01 + -6.0930245179895814E-01 -6.5374884925818955E-01 -6.9901232949930059E-01 + -7.4509235590290235E-01 -7.9198820562762096E-01 -8.3969896609122141E-01 + -8.8822353163687151E-01 -9.3756060042558109E-01 -9.8770867160044595E-01 + -1.0386660427727050E+00 -1.0904308078839842E+00 -1.1430008555028677E+00 + -1.1963738676173299E+00 -1.2505473189865817E+00 -1.3055184771168942E+00 + -1.3612844029248738E+00 -1.4178419521483032E+00 -1.4751877775582003E+00 + -1.5333183320156585E+00 -1.5922298724023285E+00 -1.6519184644336133E+00 + -1.7123799883374626E+00 -1.7736101453487256E+00 -1.8356044649282139E+00 + -1.8983583125665719E+00 -1.9618668979750999E+00 -2.0261252833990526E+00 + -2.0911283917138790E+00 -2.1568710138826970E+00 -2.2233478152662491E+00 + -2.2905533401877474E+00 -2.3584820140697484E+00 -2.4271281423849778E+00 + -2.4964859056067636E+00 -2.5665493493185632E+00 -2.6373123686587241E+00 + -2.7087686863503935E+00 -2.7809118237115378E+00 -2.8537350642688293E+00 + -2.9272314099184786E+00 -3.0013935299867018E+00 -3.0762137040285098E+00 + -3.1516837597382894E+00 -3.2277950078839535E+00 -3.3045381766590443E+00 + -3.3819033482058956E+00 -3.4598799002306388E+00 -3.5384564555552309E+00 + -3.6176208421082805E+00 -3.6973600652582208E+00 -3.7776602935939310E+00 + -3.8585068583467290E+00 -3.9398842657328390E+00 -4.0217762206834395E+00 + -4.1041656598087402E+00 -4.1870347910660026E+00 -4.2703651374816891E+00 + -4.3541375823919699E+00 -4.4383324139624927E+00 -4.5229293671640294E+00 + -4.6079076618509500E+00 -4.6932460360588584E+00 -4.7789227740645144E+00 + -4.8649157291104759E+00 -4.9512023409765913E+00 -5.0377596487808489E+00 + -5.1245642995203120E+00 -5.2115925529302967E+00 -5.2988202832599001E+00 + -5.3862229785468267E+00 -5.4737757379360907E+00 -5.5614532675343913E+00 + -5.6492298752323862E+00 -5.7370794648659063E+00 -5.8249755300284995E+00 + -5.9128911477928394E+00 -6.0007989725502480E+00 -6.0886712301348753E+00 + -6.1764797123632142E+00 -6.2641957720893613E+00 -6.3517903188518385E+00 + -6.4392338151679196E+00 -6.5264962735156011E+00 -6.6135472540312872E+00 + -6.7003558629419873E+00 -6.7868907517438286E+00 -6.8731201171340581E+00 + -6.9590117016999722E+00 -7.0445327953664281E+00 -7.1296502376020827E+00 + -7.2143304203841048E+00 -7.2985392919210170E+00 -7.3822423611337804E+00 + -7.4654047028957384E+00 -7.5479909640327838E+00 -7.6299653700861345E+00 + -7.7112917328406585E+00 -7.7919334586229780E+00 -7.8718535573740471E+00 + -7.9510146525019092E+00 -8.0293789915209945E+00 -8.1069084574848969E+00 + -8.1835645812202085E+00 -8.2593085543694631E+00 -8.3341012432514159E+00 + -8.4079032035475123E+00 -8.4806746958233443E+00 -8.5523757018941087E+00 + -8.6229659420431624E+00 -8.6924048931027116E+00 -8.7606518074055977E+00 + -8.8276657326170049E+00 -8.8934055324546719E+00 -8.9578299083058575E+00 + -9.0208974217491154E+00 -9.0825665179884130E+00 -9.1427955502067100E+00 + -9.2015428048456211E+00 -9.2587665278172508E+00 -9.3144249516536277E+00 + -9.3684763235985766E+00 -9.4208789346460602E+00 -9.4715911495283631E+00 + -9.5205714376566597E+00 -9.5677784050154955E+00 -9.6131708270120342E+00 + -9.6567076822797020E+00 -9.6983481874350037E+00 -9.7380518327851000E+00 + -9.7757784189825827E+00 -9.8114880946226677E+00 -9.8451413947768334E+00 + -9.8766992804554334E+00 -9.9061231789904927E+00 -9.9333750253284219E+00 + -9.9584173042207560E+00 -9.9812130932994396E+00 -1.0001726107021518E+01 + -1.0019920741466152E+01 -1.0035762119965222E+01 -1.0049216139546710E+01 + -1.0060249518168032E+01 -1.0068829842714415E+01 -1.0074925617735255E+01 + -1.0078506314889029E+01 -1.0079542423065032E+01 -1.0078005499147835E+01 + -1.0073868219387588E+01 -1.0067104431337018E+01 -1.0057689206312975E+01 + -1.0045598892337775E+01 -1.0030811167512629E+01 -1.0013305093772546E+01 + -9.9930611709690798E+00 -9.9700613912242186E+00 -9.9442892934953644E+00 + -9.9157300182884622E+00 -9.8843703624526924E+00 -9.8501988339869566E+00 + -9.8132057067850038E+00 -9.7733830752424495E+00 -9.7307249086455663E+00 + -9.6852271052582122E+00 -9.6368875460195316E+00 -9.5857061477617460E+00 + -9.5316849158535728E+00 -9.4748279961713990E+00 -9.4151417262966781E+00 + -9.3526346858345430E+00 -9.2873177457451881E+00 -9.2192041165760354E+00 + -9.1483093954794814E+00 -9.0746516118976022E+00 -8.9982512717921406E+00 + -8.9191314002949333E+00 -8.8373175826509769E+00 -8.7528380033236335E+00 + -8.6657234831286782E+00 -8.5760075142615086E+00 -8.4837262930795241E+00 + -8.3889187504994300E+00 -8.2916265798676712E+00 -8.1918942621601669E+00 + -8.0897690883663458E+00 -7.9853011789112438E+00 -7.8785434999685595E+00 + -7.7695518765168954E+00 -7.6583850019911681E+00 -7.5451044443811632E+00 + -7.4297746486293015E+00 -7.3124629351806387E+00 -7.1932394945387239E+00 + -7.0721773776823813E+00 -6.9493524822000392E+00 -6.8248435340001619E+00 + -6.6987320644586203E+00 -6.5711023828665622E+00 -6.4420415440451482E+00 + -6.3116393109970907E+00 -6.1799881124684868E+00 -6.0471829952986074E+00 + -5.9133215714396572E+00 -5.7785039595334160E+00 -5.6428327209368723E+00 + -5.5064127900944433E+00 -5.3693513991604949E+00 -5.2317579967820542E+00 + -5.0937441609586029E+00 -4.9554235059028660E+00 -4.8169115828341784E+00 + -4.6783257746441285E+00 -4.5397851843826516E+00 -4.4014105175217342E+00 + -4.2633239579634248E+00 -4.1256490377687500E+00 -3.9885105005947561E+00 + -3.8520341588378595E+00 -3.7163467444933445E+00 -3.5815757537530497E+00 + -3.4478492853761229E+00 -3.3152958728810540E+00 -3.1840443106214038E+00 + -3.0542234738223106E+00 -2.9259621326702212E+00 -2.7993887605645571E+00 + -2.6746313366567187E+00 -2.5518171428194254E+00 -2.4310725552077295E+00 + -2.3125228305919738E+00 -2.1962918876628508E+00 -2.0825020835291697E+00 + -1.9712739856502504E+00 -1.8627261394668797E+00 -1.7569748320175427E+00 + -1.6541338518500197E+00 -1.5543142455627132E+00 -1.4576240713348139E+00 + -1.3641681498299256E+00 -1.2740478128838213E+00 -1.1873606504136303E+00 + -1.1042002560128843E+00 -1.0246559717244366E+00 -9.4881263251133108E-01 + -8.7675031097381140E-01 -8.0854406288925007E-01 -7.4426367418056205E-01 + -6.8397340994731282E-01 -6.2773176622242277E-01 -5.7559122514591277E-01 + -5.2759801427541564E-01 -4.8379187078102925E-01 -4.4420581129937475E-01 + -4.0886590824842534E-01 -3.7779107343040713E-01 -3.5099284977490058E-01 + -3.2847521209790548E-01 -3.1023437777486390E-01 -2.9625862824643362E-01 + -2.8652814229471307E-01 -2.8101484204476079E-01 -2.7968225266105384E-01 + -2.8248537672113305E-01 -2.8937058425853363E-01 -3.0027551947420877E-01 + -3.1512902511967106E-01 -3.3385108555571491E-01 -3.5635278948777643E-01 + -3.8253631337222477E-01 -4.1229492647717059E-01 -4.4551301856624664E-01 + -4.8206615115421131E-01 -5.2182113325868518E-01 -5.6463612254279649E-01 + -6.1036075270866708E-01 -6.5883628796114391E-01 -7.0989580531510055E-01 + -7.6336440546727158E-01 -8.1905945289530135E-01 -8.7679084578175959E-01 + -9.3636131628956421E-01 -9.9756676163711855E-01 -1.0601966063364994E+00 + -1.1240341958661486E+00 -1.1888572219505054E+00 -1.2544381795130428E+00 + -1.3205448552559498E+00 -1.3869408476995173E+00 -1.4533861183870456E+00 + -1.5196375738268437E+00 -1.5854496776020792E+00 -1.6505750919315598E+00 + -1.7147653478108558E+00 -1.7777715427031142E+00 -1.8393450645835494E+00 + -1.8992383409706204E+00 -1.9572056114014154E+00 -2.0130037216289560E+00 + -2.0663929376355163E+00 -2.1171377773698552E+00 -2.1650078579273480E+00 + -2.2097787557022057E+00 -2.2512328768501217E+00 -2.2891603352097500E+00 + -2.3233598346425035E+00 -2.3536395525640703E+00 -2.3798180212585822E+00 + -2.4017250033886390E+00 -2.4192023579432802E+00 -2.4321048927019260E+00 + -2.4403011991378345E+00 -2.4436744655399214E+00 -2.4421232639997585E+00 + -2.4355623067914203E+00 -2.4239231675683151E+00 -2.4071549627141438E+00 + -2.3852249881164447E+00 -2.3581193065829509E+00 -2.3258432810939831E+00 + -2.2884220490810576E+00 -2.2459009329434325E+00 -2.1983457820628933E+00 + -2.1458432416538149E+00 -2.0885009438918987E+00 -2.0264476169030154E+00 + -1.9598331073637389E+00 -1.8888283126697161E+00 -1.8136250188672010E+00 + -1.7344356408187946E+00 -1.6514928613866866E+00 -1.5650491667669908E+00 + -1.4753762754970923E+00 -1.3827644590846704E+00 -1.2875217526726797E+00 + -1.1899730546582721E+00 -1.0904591147256557E+00 -9.8933541033193040E-01 + -8.8697091230043967E-01 -7.8374674082641982E-01 -6.8005471388332639E-01 + -5.7629579073292192E-01 -4.7287841398562330E-01 -3.7021675442704588E-01 + -2.6872886361869502E-01 -1.6883474009194380E-01 -7.0954315780506275E-02 + 2.4494629826728894E-02 1.1709861948850421E-01 2.0645068280326270E-01 + 2.9215260558738898E-01 3.7381721321164041E-01 4.5107067626141817E-01 + 5.2355482610567572E-01 5.9092946721141426E-01 6.5287467233355923E-01 + 7.0909304605174217E-01 7.5931194152442227E-01 8.0328561479549254E-01 + 8.4079730052791424E-01 8.7166119266174547E-01 8.9572431320942092E-01 + 9.1286825221795764E-01 9.2301076185516395E-01 9.2610718762321642E-01 + 9.2215171987699240E-01 9.1117844913406487E-01 8.9326220911601095E-01 + 8.6851919206376083E-01 8.3710732162915713E-01 7.9922636956654780E-01 + 7.5511780353623315E-01 7.0506435458971795E-01 6.4938929433689963E-01 + 5.8845541339861773E-01 5.2266369452366224E-01 4.5245167569511185E-01 + 3.7829150066287048E-01 3.0068765661140406E-01 2.2017440109631317E-01 + 1.3731288295030242E-01 5.2687964556352225E-02 -3.3095244301103097E-02 + -1.1941512788417906E-01 -2.0563756513405732E-01 -2.9112017032324078E-01 + -3.7521675147842992E-01 -4.5728196123264941E-01 -5.3667611169388618E-01 + -6.1277012189785862E-01 -6.8495056347777983E-01 -7.5262476736907802E-01 + -8.1522595170870671E-01 -8.7221832862533477E-01 -9.2310214538762880E-01 + -9.6741861342367741E-01 -1.0047546770859397E+00 -1.0347475727543078E+00 + -1.0570891279851486E+00 -1.0715297499666827E+00 -1.0778820525688053E+00 + -1.0760240718148009E+00 -1.0659020206871510E+00 -1.0475325358397876E+00 + -1.0210043710514249E+00 -9.8647949514021838E-01 -9.4419355558559470E-01 + -8.9445567327828079E-01 -8.3764753864795527E-01 -7.7422178489490900E-01 + -7.0469962016509979E-01 -6.2966770723575638E-01 -5.4977428658997929E-01 + -4.6572454661317786E-01 -3.7827525299007680E-01 -2.8822865815686138E-01 + -1.9642572079579451E-01 -1.0373867476569092E-01 -1.1062996446381269E-02 + 8.0691170866603698E-02 1.7060806726479946E-01 2.5777576352568798E-01 + 3.4129591855818681E-01 4.2029375143934478E-01 4.9392812437113337E-01 + 5.6140162551340411E-01 6.2197053417505122E-01 6.7495454542727251E-01 + 7.1974612699639950E-01 7.5581937845170677E-01 7.8273826137197022E-01 + 8.0016406949091223E-01 8.0786200991107315E-01 8.0570677044857997E-01 + 7.9368695411951684E-01 7.7190826977251958E-01 7.4059537795759067E-01 + 7.0009230331532690E-01 6.5086133906076660E-01 5.9348038547441317E-01 + 5.2863868261643165E-01 4.5713091762614477E-01 3.7984970879554397E-01 + 2.9777649190832439E-01 2.1197085886870173E-01 1.2355842411854302E-01 + 3.3717320427145273E-02 -5.6336548034085790E-02 -1.4536534125657999E-01 + -2.3212602796534218E-01 -3.1538783507752438E-01 -3.9395017501361068E-01 + -4.6666080298513729E-01 -5.3243393813681794E-01 -5.9026806728868486E-01 + -6.3926313851467431E-01 -6.7863684439774374E-01 -7.0773969197623798E-01 + -7.2606855855716645E-01 -7.3327844007886844E-01 -7.2919211184977284E-01 + -7.1380744048264888E-01 -6.8730211080262682E-01 -6.5003556244601890E-01 + -6.0254796768333874E-01 -5.4555612446743618E-01 -4.7994618646668247E-01 + -4.0676320439599845E-01 -3.2719750966538275E-01 -2.4256803144406724E-01 + -1.5430270076613736E-01 -6.3916159223250404E-02 2.7014946079661824E-02 + 1.1687873658262227E-01 2.0405654004291640E-01 2.8695253007536942E-01 + 3.6402405430569235E-01 4.3381209373508534E-01 4.9497126013771242E-01 + 5.4629871246262995E-01 5.8676135865247081E-01 6.1552070725398478E-01 + 6.3195474473535695E-01 6.3567624037828885E-01 6.2654692155342906E-01 + 6.0468701838821914E-01 5.7047974822958525E-01 5.2457039645062820E-01 + 4.6785975021268317E-01 4.0149175451534319E-01 3.2683538356299524E-01 + 2.4546085303406512E-01 1.5911043772914502E-01 6.9664301374360152E-02 + -2.0898112210088360E-02 -1.1054043837916520E-01 -1.9721468144942100E-01 + -2.7890849459594902E-01 -3.5369340424233114E-01 -4.1977284738562409E-01 + -4.7552882746518182E-01 -5.1956595821123930E-01 -5.5075165853587893E-01 + -5.6825128754758958E-01 -5.7155706909549087E-01 -5.6050975099085143E-01 + -5.3531207540382775E-01 -4.9653330306571103E-01 -4.4510423289748469E-01 + -3.8230238745888684E-01 -3.0972728891900003E-01 -2.2926602467792431E-01 + -1.4304958979566021E-01 -5.3400787466586906E-02 3.7225239509122814E-02 + 1.2630649308791181E-01 2.1132400788858563E-01 2.8983430213662459E-01 + 3.5954236355001462E-01 4.1837300438371949E-01 4.6453834056630283E-01 + 4.9659913631657754E-01 5.1351781362471538E-01 5.1470105943361233E-01 + 5.0003017395233429E-01 4.6987759045183636E-01 4.2510835657106527E-01 + 3.6706579314171078E-01 2.9754102940827160E-01 2.1872664094823352E-01 + 1.3315517349957348E-01 4.3623904719797713E-02 -4.6892242992039118E-02 + -1.3533719323205803E-01 -2.1867668314023161E-01 -2.9400437263991602E-01 + -3.5864744622051897E-01 -4.1026785810017269E-01 -4.4695530261116861E-01 + -4.6730806707123496E-01 -4.7049815309342791E-01 -4.5631743772783911E-01 + -4.2520218542722188E-01 -3.7823390640046944E-01 -3.1711537039267496E-01 + -2.4412150433129856E-01 -1.6202589800132577E-01 -7.4004678338399854E-02 + 1.6479450628314560E-02 1.0580921315359014E-01 1.9035612251552306E-01 + 2.6662974419188584E-01 3.3142682857707489E-01 3.8197392426003185E-01 + 4.1605698509698597E-01 4.3213167044724005E-01 4.2940852270084401E-01 + 4.0790799155781160E-01 3.6848134818357176E-01 3.1279486707759657E-01 + 2.4327620670626504E-01 1.6302363441135387E-01 7.5680546216110159E-02 + -1.4720453809714474E-02 -1.0393791668115325E-01 -1.8771879795146340E-01 + -2.6200374696252754E-01 -3.2313094746264415E-01 -3.6802680616902317E-01 + -3.9437636982302254E-01 -4.0075919277229244E-01 -3.8674690157787128E-01 + -3.5295144506457332E-01 -3.0102138315435240E-01 -2.3358299564660950E-01 + -1.5412689364408494E-01 -6.6843616221190449E-02 2.3585240647564888E-02 + 1.1223091299499324E-01 1.9418438839234872E-01 2.6483231978524391E-01 + 3.2012653997833423E-01 3.5683123175740694E-01 3.7273217472227127E-01 + 3.6679382090320617E-01 3.3925224670289039E-01 2.9163522369145928E-01 + 2.2670461830523500E-01 1.4832088132565655E-01 6.1234277484492131E-02 + -2.9187556196344354E-02 -1.1728146777341782E-01 -1.9744174402896264E-01 + -2.6448270197705531E-01 -3.1398753416594810E-01 -3.4261954281586776E-01 + -3.4837301365649814E-01 -3.3074374625960706E-01 -2.9080361433110197E-01 + -2.3116929726882254E-01 -1.5586220423295899E-01 -7.0064195223386930E-02 + 2.0218509001705836E-02 1.0856340604208709E-01 1.8858547110953444E-01 + 2.5440531322203874E-01 3.0109748836457439E-01 3.2508418489803542E-01 + 3.2444160465906013E-01 2.9909117599379192E-01 2.5085509100246473E-01 + 1.8336517499793217E-01 1.0182517460111243E-01 1.2638409399688180E-02 + -7.7075550515318392E-02 -1.6004093783506931E-01 -2.2941987517054355E-01 + -2.7939237208946449E-01 -3.0567242656031912E-01 -3.0591294428003019E-01 + -2.7995903157244845E-01 -2.2992012743780726E-01 -1.6004576798499642E-01 + -7.6406496750118347E-02 1.3600796051285426E-02 1.0188657089028531E-01 + 1.8038976991968628E-01 2.4182350395758748E-01 2.8037633121595334E-01 + 2.9230028181512935E-01 2.7632360382065663E-01 2.3383960732067122E-01 + 1.6884216320295678E-01 8.7601909224772997E-02 -1.8970170914552221E-03 + -9.0714333414113821E-02 -1.6983698748296389E-01 -2.3110331103972143E-01 + -2.6807332939254769E-01 -2.7675066043983998E-01 -2.5607170364851389E-01 + -2.0809800744791837E-01 -1.3787638855389681E-01 -5.2966041839256038E-02 + 3.7330910149785339E-02 1.2296327215640805E-01 1.9424692900284893E-01 + 2.4298096697933075E-01 2.6343412684520379E-01 2.5307949132754853E-01 + 2.1297800871399244E-01 1.4774779295484680E-01 6.5102768902691663E-02 + -2.5003802957572610E-02 -1.1154417435090119E-01 -1.8375868273647994E-01 + -2.3251505047876694E-01 -2.5151164852483215E-01 -2.3816186153573474E-01 + -1.9402871802654487E-01 -1.2473063996049813E-01 -3.9305153714378586E-02 + 5.0910144446160918E-02 1.3375062182583106E-01 1.9786636455477699E-01 + 2.3431279106969335E-01 2.3786434083135269E-01 2.0785140768322721E-01 + 1.4837735827344431E-01 6.7854069302638265E-02 -2.2109122449133496E-02 + -1.0833007173555208E-01 -1.7797408943184506E-01 -2.2049399767629149E-01 + -2.2929466056735989E-01 -2.0285171647942218E-01 -1.4508351541712317E-01 + -6.4881359536790764E-02 2.5168020185047803E-02 1.1070135776535409E-01 + 1.7785813647919724E-01 2.1556309023500475E-01 2.1743290107785662E-01 + 1.8296873914284481E-01 1.1779762836070433E-01 3.2875042304136522E-02 + -5.7263583823897513E-02 -1.3694249446186341E-01 -1.9207832030836286E-01 + -2.1273145361828505E-01 -1.9500624376915573E-01 -1.4192136725257787E-01 + -6.3039694033848487E-02 2.7133632635401778E-02 1.1174289962798313E-01 + 1.7471785507227033E-01 2.0387697924906484E-01 1.9339283774115404E-01 + 1.4510392419911861E-01 6.8356301040581768E-02 -2.1664732554013865E-02 + -1.0684805313804382E-01 -1.6977864609183271E-01 -1.9735231444333892E-01 + -1.8362615290789785E-01 -1.3126456535113018E-01 -5.1203250343159326E-02 + 3.9483154424987031E-02 1.2113189512551442E-01 1.7574728121227678E-01 + 1.9104599337759631E-01 1.6337093672101141E-01 9.8755000819552935E-02 + 1.1799570284923488E-02 -7.7478352984836241E-02 -1.4818909486145940E-01 + -1.8349284016935291E-01 -1.7473938209101580E-01 -1.2378309780530519E-01 + -4.2816513599133688E-02 4.8358108877055647E-02 1.2706239055655957E-01 + 1.7338248576776880E-01 1.7532033953147302E-01 1.3210160273351459E-01 + 5.4686432247665520E-02 -3.6789396024279448E-02 -1.1811287112915377E-01 + -1.6738459097720029E-01 -1.7102746853055803E-01 -1.2774264268748572E-01 + -4.9211989177752845E-02 4.2811372618769238E-02 1.2237871176773192E-01 + 1.6665083603429393E-01 1.6258806932746256E-01 1.1103632752596684E-01 + 2.6870768198902672E-02 -6.5043091523197191E-02 -1.3706055677620449E-01 + -1.6709977363833092E-01 -1.4559899144096661E-01 -7.8851444850328828E-02 + 1.2514900420900791E-02 9.9674373536443248E-02 1.5461805620411601E-01 + 1.5926308947482765E-01 1.1167127333922253E-01 2.7166862634137683E-02 + -6.6281618955253252E-02 -1.3714503795812988E-01 -1.6100318268108094E-01 + -1.2919206378643644E-01 -5.2303021330726528E-02 4.2968155168215887E-02 + + + -1.6388048168010123E+00 -1.6388048163264965E+00 -1.6388048148927239E+00 + -1.6388048124842489E+00 -1.6388048090854259E+00 -1.6388048046804109E+00 + -1.6388047992531642E+00 -1.6388047927874432E+00 -1.6388047852668066E+00 + -1.6388047766745986E+00 -1.6388047669939674E+00 -1.6388047562078429E+00 + -1.6388047442989477E+00 -1.6388047312497778E+00 -1.6388047170426323E+00 + -1.6388047016595699E+00 -1.6388046850824434E+00 -1.6388046672928656E+00 + -1.6388046482722385E+00 -1.6388046280017112E+00 -1.6388046064622293E+00 + -1.6388045836344716E+00 -1.6388045594989060E+00 -1.6388045340357407E+00 + -1.6388045072249497E+00 -1.6388044790462599E+00 -1.6388044494791414E+00 + -1.6388044185028243E+00 -1.6388043860962713E+00 -1.6388043522381994E+00 + -1.6388043169070547E+00 -1.6388042800810210E+00 -1.6388042417380242E+00 + -1.6388042018557045E+00 -1.6388041604114441E+00 -1.6388041173823469E+00 + -1.6388040727452269E+00 -1.6388040264766266E+00 -1.6388039785527926E+00 + -1.6388039289497012E+00 -1.6388038776430098E+00 -1.6388038246081074E+00 + -1.6388037698200619E+00 -1.6388037132536544E+00 -1.6388036548833542E+00 + -1.6388035946833175E+00 -1.6388035326273991E+00 -1.6388034686891226E+00 + -1.6388034028417062E+00 -1.6388033350580329E+00 -1.6388032653106666E+00 + -1.6388031935718392E+00 -1.6388031198134441E+00 -1.6388030440070327E+00 + -1.6388029661238357E+00 -1.6388028861347059E+00 -1.6388028040101665E+00 + -1.6388027197203918E+00 -1.6388026332351764E+00 -1.6388025445239716E+00 + -1.6388024535558574E+00 -1.6388023602995367E+00 -1.6388022647233462E+00 + -1.6388021667952459E+00 -1.6388020664828016E+00 -1.6388019637531999E+00 + -1.6388018585732365E+00 -1.6388017509093045E+00 -1.6388016407274049E+00 + -1.6388015279931274E+00 -1.6388014126716528E+00 -1.6388012947277506E+00 + -1.6388011741257669E+00 -1.6388010508296313E+00 -1.6388009248028337E+00 + -1.6388007960084423E+00 -1.6388006644090825E+00 -1.6388005299669326E+00 + -1.6388003926437278E+00 -1.6388002524007486E+00 -1.6388001091988191E+00 + -1.6387999629982928E+00 -1.6387998137590678E+00 -1.6387996614405573E+00 + -1.6387995060016962E+00 -1.6387993474009417E+00 -1.6387991855962509E+00 + -1.6387990205450935E+00 -1.6387988522044372E+00 -1.6387986805307388E+00 + -1.6387985054799505E+00 -1.6387983270074897E+00 -1.6387981450682712E+00 + -1.6387979596166671E+00 -1.6387977706065133E+00 -1.6387975779911075E+00 + -1.6387973817232042E+00 -1.6387971817549911E+00 -1.6387969780381095E+00 + -1.6387967705236217E+00 -1.6387965591620286E+00 -1.6387963439032414E+00 + -1.6387961246965963E+00 -1.6387959014908238E+00 -1.6387956742340730E+00 + -1.6387954428738678E+00 -1.6387952073571312E+00 -1.6387949676301714E+00 + -1.6387947236386575E+00 -1.6387944753276340E+00 -1.6387942226414991E+00 + -1.6387939655240156E+00 -1.6387937039182705E+00 -1.6387934377667173E+00 + -1.6387931670111113E+00 -1.6387928915925507E+00 -1.6387926114514397E+00 + -1.6387923265274984E+00 -1.6387920367597408E+00 -1.6387917420864664E+00 + -1.6387914424452774E+00 -1.6387911377730384E+00 -1.6387908280058856E+00 + -1.6387905130792237E+00 -1.6387901929276949E+00 -1.6387898674851968E+00 + -1.6387895366848508E+00 -1.6387892004590248E+00 -1.6387888587392858E+00 + -1.6387885114564156E+00 -1.6387881585404009E+00 -1.6387877999204175E+00 + -1.6387874355248224E+00 -1.6387870652811509E+00 -1.6387866891160991E+00 + -1.6387863069555175E+00 -1.6387859187244038E+00 -1.6387855243468956E+00 + -1.6387851237462525E+00 -1.6387847168448491E+00 -1.6387843035641758E+00 + -1.6387838838248141E+00 -1.6387834575464304E+00 -1.6387830246477775E+00 + -1.6387825850466642E+00 -1.6387821386599630E+00 -1.6387816854035948E+00 + -1.6387812251925045E+00 -1.6387807579406739E+00 -1.6387802835610923E+00 + -1.6387798019657485E+00 -1.6387793130656387E+00 -1.6387788167707211E+00 + -1.6387783129899387E+00 -1.6387778016311760E+00 -1.6387772826012861E+00 + -1.6387767558060338E+00 -1.6387762211501218E+00 -1.6387756785371614E+00 + -1.6387751278696607E+00 -1.6387745690490125E+00 -1.6387740019754899E+00 + -1.6387734265482259E+00 -1.6387728426651988E+00 -1.6387722502232276E+00 + -1.6387716491179536E+00 -1.6387710392438370E+00 -1.6387704204941231E+00 + -1.6387697927608493E+00 -1.6387691559348152E+00 -1.6387685099055926E+00 + -1.6387678545614885E+00 -1.6387671897895393E+00 -1.6387665154754887E+00 + -1.6387658315038063E+00 -1.6387651377576236E+00 -1.6387644341187557E+00 + -1.6387637204676784E+00 -1.6387629966835011E+00 -1.6387622626439735E+00 + -1.6387615182254498E+00 -1.6387607633028836E+00 -1.6387599977498122E+00 + -1.6387592214383429E+00 -1.6387584342391242E+00 -1.6387576360213429E+00 + -1.6387568266527150E+00 -1.6387560059994448E+00 -1.6387551739262320E+00 + -1.6387543302962384E+00 -1.6387534749710804E+00 -1.6387526078108126E+00 + -1.6387517286739017E+00 -1.6387508374172217E+00 -1.6387499338960272E+00 + -1.6387490179639368E+00 -1.6387480894729107E+00 -1.6387471482732472E+00 + -1.6387461942135502E+00 -1.6387452271407175E+00 -1.6387442468999165E+00 + -1.6387432533345732E+00 -1.6387422462863435E+00 -1.6387412255951035E+00 + -1.6387401910989232E+00 -1.6387391426340467E+00 -1.6387380800348732E+00 + -1.6387370031339394E+00 -1.6387359117619000E+00 -1.6387348057474973E+00 + -1.6387336849175489E+00 -1.6387325490969327E+00 -1.6387313981085416E+00 + -1.6387302317732959E+00 -1.6387290499100848E+00 -1.6387278523357769E+00 + -1.6387266388651718E+00 -1.6387254093109982E+00 -1.6387241634838827E+00 + -1.6387229011923152E+00 -1.6387216222426468E+00 -1.6387203264390546E+00 + -1.6387190135835130E+00 -1.6387176834757764E+00 -1.6387163359133647E+00 + -1.6387149706915158E+00 -1.6387135876031742E+00 -1.6387121864389687E+00 + -1.6387107669871821E+00 -1.6387093290337245E+00 -1.6387078723621060E+00 + -1.6387063967534248E+00 -1.6387049019863134E+00 -1.6387033878369364E+00 + -1.6387018540789502E+00 -1.6387003004834837E+00 -1.6386987268191056E+00 + -1.6386971328517994E+00 -1.6386955183449172E+00 -1.6386938830591924E+00 + -1.6386922267526665E+00 -1.6386905491806811E+00 -1.6386888500958523E+00 + -1.6386871292480252E+00 -1.6386853863842608E+00 -1.6386836212487856E+00 + -1.6386818335829876E+00 -1.6386800231253549E+00 -1.6386781896114626E+00 + -1.6386763327739460E+00 -1.6386744523424461E+00 -1.6386725480436011E+00 + -1.6386706196009952E+00 -1.6386686667351331E+00 -1.6386666891634094E+00 + -1.6386646866000689E+00 -1.6386626587561752E+00 -1.6386606053395678E+00 + -1.6386585260548456E+00 -1.6386564206033090E+00 -1.6386542886829365E+00 + -1.6386521299883539E+00 -1.6386499442107842E+00 -1.6386477310380125E+00 + -1.6386454901543546E+00 -1.6386432212406283E+00 -1.6386409239740807E+00 + -1.6386385980283942E+00 -1.6386362430736070E+00 -1.6386338587761051E+00 + -1.6386314447985644E+00 -1.6386290007999120E+00 -1.6386265264352808E+00 + -1.6386240213560006E+00 -1.6386214852094982E+00 -1.6386189176393142E+00 + -1.6386163182850171E+00 -1.6386136867821861E+00 -1.6386110227623509E+00 + -1.6386083258529567E+00 -1.6386055956773260E+00 -1.6386028318546002E+00 + -1.6386000339996840E+00 -1.6385972017232413E+00 -1.6385943346315983E+00 + -1.6385914323267341E+00 -1.6385884944062110E+00 -1.6385855204631432E+00 + -1.6385825100861215E+00 -1.6385794628592025E+00 -1.6385763783618228E+00 + -1.6385732561687680E+00 -1.6385700958501239E+00 -1.6385668969712153E+00 + -1.6385636590925508E+00 -1.6385603817697907E+00 -1.6385570645536678E+00 + -1.6385537069899623E+00 -1.6385503086194175E+00 -1.6385468689777052E+00 + -1.6385433875953681E+00 -1.6385398639977562E+00 -1.6385362977049780E+00 + -1.6385326882318374E+00 -1.6385290350877812E+00 -1.6385253377768307E+00 + -1.6385215957975463E+00 -1.6385178086429326E+00 -1.6385139758004135E+00 + -1.6385100967517412E+00 -1.6385061709729545E+00 -1.6385021979343104E+00 + -1.6384981771002198E+00 -1.6384941079291895E+00 -1.6384899898737402E+00 + -1.6384858223803729E+00 -1.6384816048894704E+00 -1.6384773368352519E+00 + -1.6384730176456928E+00 -1.6384686467424745E+00 -1.6384642235408973E+00 + -1.6384597474498137E+00 -1.6384552178715741E+00 -1.6384506342019336E+00 + -1.6384459958299993E+00 -1.6384413021381390E+00 -1.6384365525019411E+00 + -1.6384317462900921E+00 -1.6384268828643440E+00 -1.6384219615794180E+00 + -1.6384169817829364E+00 -1.6384119428153356E+00 -1.6384068440097985E+00 + -1.6384016846921752E+00 -1.6383964641808861E+00 -1.6383911817868770E+00 + -1.6383858368134876E+00 -1.6383804285564201E+00 -1.6383749563036225E+00 + -1.6383694193352079E+00 -1.6383638169233863E+00 -1.6383581483323721E+00 + -1.6383524128182752E+00 -1.6383466096290531E+00 -1.6383407380043824E+00 + -1.6383347971755939E+00 -1.6383287863655749E+00 -1.6383227047886806E+00 + -1.6383165516506280E+00 -1.6383103261484253E+00 -1.6383040274702565E+00 + -1.6382976547953940E+00 -1.6382912072940992E+00 -1.6382846841275309E+00 + -1.6382780844476394E+00 -1.6382714073970757E+00 -1.6382646521090702E+00 + -1.6382578177073588E+00 -1.6382509033060557E+00 -1.6382439080095648E+00 + -1.6382368309124626E+00 -1.6382296710994069E+00 -1.6382224276450055E+00 + -1.6382150996137275E+00 -1.6382076860597909E+00 -1.6382001860270408E+00 + -1.6381925985488495E+00 -1.6381849226479888E+00 -1.6381771573365280E+00 + -1.6381693016157128E+00 -1.6381613544758500E+00 -1.6381533148961758E+00 + -1.6381451818447565E+00 -1.6381369542783588E+00 -1.6381286311423202E+00 + -1.6381202113704298E+00 -1.6381116938848130E+00 -1.6381030775957848E+00 + -1.6380943614017391E+00 -1.6380855441890130E+00 -1.6380766248317540E+00 + -1.6380676021917970E+00 -1.6380584751185174E+00 -1.6380492424487043E+00 + -1.6380399030064212E+00 -1.6380304556028795E+00 -1.6380208990362792E+00 + -1.6380112320916771E+00 -1.6380014535408522E+00 -1.6379915621421508E+00 + -1.6379815566403479E+00 -1.6379714357665003E+00 -1.6379611982377771E+00 + -1.6379508427573581E+00 -1.6379403680142299E+00 -1.6379297726830560E+00 + -1.6379190554240219E+00 -1.6379082148826825E+00 -1.6378972496897903E+00 + -1.6378861584611426E+00 -1.6378749397974175E+00 -1.6378635922840228E+00 + -1.6378521144909091E+00 -1.6378405049724090E+00 -1.6378287622670864E+00 + -1.6378168848975447E+00 -1.6378048713702595E+00 -1.6377927201754079E+00 + -1.6377804297866865E+00 -1.6377679986611435E+00 -1.6377554252389870E+00 + -1.6377427079434062E+00 -1.6377298451803912E+00 -1.6377168353385494E+00 + -1.6377036767888997E+00 -1.6376903678847055E+00 -1.6376769069612673E+00 + -1.6376632923357375E+00 -1.6376495223069218E+00 -1.6376355951550661E+00 + -1.6376215091416861E+00 -1.6376072625093350E+00 -1.6375928534814190E+00 + -1.6375782802619805E+00 -1.6375635410354865E+00 -1.6375486339666243E+00 + -1.6375335572000898E+00 -1.6375183088603589E+00 -1.6375028870514776E+00 + -1.6374872898568471E+00 -1.6374715153389825E+00 -1.6374555615393143E+00 + -1.6374394264779286E+00 -1.6374231081533657E+00 -1.6374066045423636E+00 + -1.6373899135996435E+00 -1.6373730332576582E+00 -1.6373559614263531E+00 + -1.6373386959929286E+00 -1.6373212348215866E+00 -1.6373035757532990E+00 + -1.6372857166055348E+00 -1.6372676551720160E+00 -1.6372493892224720E+00 + -1.6372309165023586E+00 -1.6372122347326132E+00 -1.6371933416093829E+00 + -1.6371742348037703E+00 -1.6371549119615361E+00 -1.6371353707028533E+00 + -1.6371156086220147E+00 -1.6370956232871587E+00 -1.6370754122399869E+00 + -1.6370549729954822E+00 -1.6370343030416166E+00 -1.6370133998390557E+00 + -1.6369922608208802E+00 -1.6369708833922645E+00 -1.6369492649302022E+00 + -1.6369274027831835E+00 -1.6369052942708882E+00 -1.6368829366838897E+00 + -1.6368603272833251E+00 -1.6368374633005907E+00 -1.6368143419370140E+00 + -1.6367909603635293E+00 -1.6367673157203535E+00 -1.6367434051166574E+00 + -1.6367192256302250E+00 -1.6366947743071156E+00 -1.6366700481613317E+00 + -1.6366450441744598E+00 -1.6366197592953329E+00 -1.6365941904396752E+00 + -1.6365683344897379E+00 -1.6365421882939470E+00 -1.6365157486665396E+00 + -1.6364890123871867E+00 -1.6364619762006307E+00 -1.6364346368163181E+00 + -1.6364069909079830E+00 -1.6363790351133041E+00 -1.6363507660335010E+00 + -1.6363221802329340E+00 -1.6362932742387188E+00 -1.6362640445403205E+00 + -1.6362344875891521E+00 -1.6362045997981527E+00 -1.6361743775414010E+00 + -1.6361438171536677E+00 -1.6361129149300104E+00 -1.6360816671253422E+00 + -1.6360500699539910E+00 -1.6360181195892856E+00 -1.6359858121630919E+00 + -1.6359531437653860E+00 -1.6359201104437795E+00 -1.6358867082030895E+00 + -1.6358529330048739E+00 -1.6358187807669515E+00 -1.6357842473629456E+00 + -1.6357493286218068E+00 -1.6357140203273279E+00 -1.6356783182176799E+00 + -1.6356422179848749E+00 -1.6356057152743375E+00 -1.6355688056843396E+00 + -1.6355314847655344E+00 -1.6354937480204366E+00 -1.6354555909028945E+00 + -1.6354170088175874E+00 -1.6353779971194773E+00 -1.6353385511132899E+00 + -1.6352986660529656E+00 -1.6352583371411316E+00 -1.6352175595285245E+00 + -1.6351763283134626E+00 -1.6351346385412622E+00 -1.6350924852036761E+00 + -1.6350498632383319E+00 -1.6350067675281337E+00 -1.6349631929006794E+00 + -1.6349191341276750E+00 -1.6348745859243341E+00 -1.6348295429487649E+00 + -1.6347839998013685E+00 -1.6347379510242201E+00 -1.6346913911004239E+00 + -1.6346443144535143E+00 -1.6345967154468026E+00 -1.6345485883827151E+00 + -1.6344999275021816E+00 -1.6344507269839263E+00 -1.6344009809438538E+00 + -1.6343506834343295E+00 -1.6342998284435379E+00 -1.6342484098947825E+00 + -1.6341964216457781E+00 -1.6341438574879639E+00 -1.6340907111457910E+00 + -1.6340369762760150E+00 -1.6339826464669611E+00 -1.6339277152377800E+00 + -1.6338721760377544E+00 -1.6338160222454869E+00 -1.6337592471682085E+00 + -1.6337018440409743E+00 -1.6336438060259106E+00 -1.6335851262114194E+00 + -1.6335257976114175E+00 -1.6334658131645252E+00 -1.6334051657332520E+00 + -1.6333438481032052E+00 -1.6332818529822581E+00 -1.6332191729997267E+00 + -1.6331558007055196E+00 -1.6330917285692932E+00 -1.6330269489796232E+00 + -1.6329614542430964E+00 -1.6328952365834626E+00 -1.6328282881407576E+00 + -1.6327606009703837E+00 -1.6326921670422341E+00 -1.6326229782397701E+00 + -1.6325530263591024E+00 -1.6324823031080566E+00 -1.6324108001052429E+00 + -1.6323385088790909E+00 -1.6322654208669056E+00 -1.6321915274138901E+00 + -1.6321168197721596E+00 -1.6320412890997649E+00 -1.6319649264596745E+00 + -1.6318877228187747E+00 -1.6318096690468600E+00 -1.6317307559155592E+00 + -1.6316509740973359E+00 -1.6315703141644173E+00 -1.6314887665877298E+00 + -1.6314063217358123E+00 -1.6313229698737515E+00 -1.6312387011620533E+00 + -1.6311535056555699E+00 -1.6310673733023353E+00 -1.6309802939424738E+00 + -1.6308922573070173E+00 -1.6308032530167795E+00 -1.6307132705811640E+00 + -1.6306222993969961E+00 -1.6305303287473156E+00 -1.6304373478001919E+00 + -1.6303433456074843E+00 -1.6302483111036274E+00 -1.6301522331043672E+00 + -1.6300551003055235E+00 -1.6299569012817197E+00 -1.6298576244850771E+00 + -1.6297572582439468E+00 -1.6296557907615836E+00 -1.6295532101148262E+00 + -1.6294495042527570E+00 -1.6293446609953679E+00 -1.6292386680321591E+00 + -1.6291315129208082E+00 -1.6290231830857436E+00 -1.6289136658167385E+00 + -1.6288029482675055E+00 -1.6286910174542544E+00 -1.6285778602542269E+00 + -1.6284634634042507E+00 -1.6283478134992484E+00 -1.6282308969907318E+00 + -1.6281127001853171E+00 -1.6279932092431573E+00 -1.6278724101764452E+00 + -1.6277502888478179E+00 -1.6276268309687931E+00 -1.6275020220981913E+00 + -1.6273758476405102E+00 -1.6272482928443093E+00 -1.6271193428005672E+00 + -1.6269889824410309E+00 -1.6268571965365357E+00 -1.6267239696953084E+00 + -1.6265892863612732E+00 -1.6264531308123205E+00 -1.6263154871585541E+00 + -1.6261763393405506E+00 -1.6260356711275532E+00 -1.6258934661157012E+00 + -1.6257497077261955E+00 -1.6256043792034822E+00 -1.6254574636133765E+00 + -1.6253089438412269E+00 -1.6251588025899832E+00 -1.6250070223783222E+00 + -1.6248535855387043E+00 -1.6246984742154151E+00 -1.6245416703626345E+00 + -1.6243831557424109E+00 -1.6242229119226599E+00 -1.6240609202751621E+00 + -1.6238971619734912E+00 -1.6237316179909480E+00 -1.6235642690984868E+00 + -1.6233950958625760E+00 -1.6232240786431096E+00 -1.6230511975912107E+00 + -1.6228764326470797E+00 -1.6226997635378011E+00 -1.6225211697751110E+00 + -1.6223406306531749E+00 -1.6221581252463078E+00 -1.6219736324066998E+00 + -1.6217871307621043E+00 -1.6215985987135140E+00 -1.6214080144327918E+00 + -1.6212153558603146E+00 -1.6210206007025560E+00 -1.6208237264296614E+00 + -1.6206247102730176E+00 -1.6204235292227658E+00 -1.6202201600252968E+00 + -1.6200145791807454E+00 -1.6198067629404409E+00 -1.6195966873043279E+00 + -1.6193843280183704E+00 -1.6191696605719434E+00 -1.6189526601951609E+00 + -1.6187333018562240E+00 -1.6185115602587066E+00 -1.6182874098388376E+00 + -1.6180608247627435E+00 -1.6178317789236614E+00 -1.6176002459391450E+00 + -1.6173661991482300E+00 -1.6171296116085545E+00 -1.6168904560934847E+00 + -1.6166487050891976E+00 -1.6164043307917280E+00 -1.6161573051039995E+00 + -1.6159075996328174E+00 -1.6156551856858337E+00 -1.6154000342684978E+00 + -1.6151421160809525E+00 -1.6148814015149282E+00 -1.6146178606505770E+00 + -1.6143514632532947E+00 -1.6140821787705308E+00 -1.6138099763285165E+00 + -1.6135348247290167E+00 -1.6132566924460188E+00 -1.6129755476223850E+00 + -1.6126913580665125E+00 -1.6124040912489142E+00 -1.6121137142987969E+00 + -1.6118201940006012E+00 -1.6115234967904957E+00 -1.6112235887528554E+00 + -1.6109204356167182E+00 -1.6106140027521547E+00 -1.6103042551666746E+00 + -1.6099911575015367E+00 -1.6096746740280745E+00 -1.6093547686439595E+00 + -1.6090314048694385E+00 -1.6087045458435216E+00 -1.6083741543201620E+00 + -1.6080401926643830E+00 -1.6077026228483646E+00 -1.6073614064475139E+00 + -1.6070165046364824E+00 -1.6066678781851471E+00 -1.6063154874545646E+00 + -1.6059592923928911E+00 -1.6055992525312428E+00 -1.6052353269795392E+00 + -1.6048674744223153E+00 -1.6044956531144761E+00 -1.6041198208770120E+00 + -1.6037399350926986E+00 -1.6033559527017451E+00 -1.6029678301973878E+00 + -1.6025755236214749E+00 -1.6021789885599993E+00 -1.6017781801385693E+00 + -1.6013730530178814E+00 -1.6009635613891162E+00 -1.6005496589693260E+00 + -1.6001312989967489E+00 -1.5997084342261003E+00 -1.5992810169238272E+00 + -1.5988489988633168E+00 -1.5984123313200569E+00 -1.5979709650667635E+00 + -1.5975248503684538E+00 -1.5970739369775047E+00 -1.5966181741286301E+00 + -1.5961575105338510E+00 -1.5956918943773979E+00 -1.5952212733105879E+00 + -1.5947455944466451E+00 -1.5942648043554806E+00 -1.5937788490584406E+00 + -1.5932876740230022E+00 -1.5927912241574085E+00 -1.5922894438052879E+00 + -1.5917822767402192E+00 -1.5912696661602432E+00 -1.5907515546823419E+00 + -1.5902278843368471E+00 -1.5896985965618566E+00 -1.5891636321975460E+00 + -1.5886229314804607E+00 -1.5880764340377924E+00 -1.5875240788815370E+00 + -1.5869658044026789E+00 -1.5864015483652925E+00 -1.5858312479006043E+00 + -1.5852548395010135E+00 -1.5846722590140472E+00 -1.5840834416363072E+00 + -1.5834883219073244E+00 -1.5828868337034072E+00 -1.5822789102314099E+00 + -1.5816644840224847E+00 -1.5810434869257470E+00 -1.5804158501019492E+00 + -1.5797815040170506E+00 -1.5791403784357723E+00 -1.5784924024151064E+00 + -1.5778375042977577E+00 -1.5771756117055562E+00 -1.5765066515328225E+00 + -1.5758305499396557E+00 -1.5751472323452276E+00 -1.5744566234209800E+00 + -1.5737586470838012E+00 -1.5730532264891501E+00 -1.5723402840241270E+00 + -1.5716197413005044E+00 -1.5708915191477091E+00 -1.5701555376057525E+00 + -1.5694117159181293E+00 -1.5686599725246435E+00 -1.5679002250542120E+00 + -1.5671323903176146E+00 -1.5663563843001904E+00 -1.5655721221544849E+00 + -1.5647795181928887E+00 -1.5639784858801700E+00 -1.5631689378260101E+00 + -1.5623507857774739E+00 -1.5615239406114398E+00 -1.5606883123269812E+00 + -1.5598438100377034E+00 -1.5589903419640532E+00 -1.5581278154255498E+00 + -1.5572561368330198E+00 -1.5563752116807379E+00 -1.5554849445385655E+00 + -1.5545852390440242E+00 -1.5536759978943482E+00 -1.5527571228384731E+00 + -1.5518285146689861E+00 -1.5508900732140651E+00 -1.5499416973293403E+00 + -1.5489832848897407E+00 -1.5480147327812945E+00 -1.5470359368928943E+00 + -1.5460467921080177E+00 -1.5450471922964226E+00 -1.5440370303058037E+00 + -1.5430161979534038E+00 -1.5419845860176118E+00 -1.5409420842294932E+00 + -1.5398885812643466E+00 -1.5388239647331463E+00 -1.5377481211740427E+00 + -1.5366609360437578E+00 -1.5355622937090077E+00 -1.5344520774378594E+00 + -1.5333301693910804E+00 -1.5321964506134600E+00 -1.5310508010251129E+00 + -1.5298930994127213E+00 -1.5287232234208377E+00 -1.5275410495430553E+00 + -1.5263464531132651E+00 -1.5251393082968245E+00 -1.5239194880817426E+00 + -1.5226868642698403E+00 -1.5214413074678932E+00 -1.5201826870787796E+00 + -1.5189108712925838E+00 -1.5176257270777442E+00 -1.5163271201721458E+00 + -1.5150149150742149E+00 -1.5136889750340410E+00 -1.5123491620444693E+00 + -1.5109953368322095E+00 -1.5096273588489206E+00 -1.5082450862623333E+00 + -1.5068483759473734E+00 -1.5054370834772688E+00 -1.5040110631146948E+00 + -1.5025701678029282E+00 -1.5011142491569964E+00 -1.4996431574548874E+00 + -1.4981567416287367E+00 -1.4966548492560594E+00 -1.4951373265510119E+00 + -1.4936040183556794E+00 -1.4920547681313778E+00 -1.4904894179500365E+00 + -1.4889078084855631E+00 -1.4873097790052865E+00 -1.4856951673614458E+00 + -1.4840638099826895E+00 -1.4824155418656868E+00 -1.4807501965667236E+00 + -1.4790676061934356E+00 -1.4773676013965162E+00 -1.4756500113615778E+00 + -1.4739146638010083E+00 -1.4721613849459503E+00 -1.4703899995383467E+00 + -1.4686003308230580E+00 -1.4667922005400658E+00 -1.4649654289167882E+00 + -1.4631198346604717E+00 -1.4612552349506940E+00 -1.4593714454319566E+00 + -1.4574682802064074E+00 -1.4555455518266720E+00 -1.4536030712887966E+00 + -1.4516406480253332E+00 -1.4496580898985325E+00 -1.4476552031937098E+00 + -1.4456317926127051E+00 -1.4435876612675507E+00 -1.4415226106742411E+00 + -1.4394364407466878E+00 -1.4373289497908446E+00 -1.4351999344990052E+00 + -1.4330491899442648E+00 -1.4308765095751983E+00 -1.4286816852107047E+00 + -1.4264645070350774E+00 -1.4242247635932663E+00 -1.4219622417863647E+00 + -1.4196767268673218E+00 -1.4173680024368820E+00 -1.4150358504397722E+00 + -1.4126800511611375E+00 -1.4103003832232321E+00 -1.4078966235823651E+00 + -1.4054685475261515E+00 -1.4030159286710187E+00 -1.4005385389600209E+00 + -1.3980361486609543E+00 -1.3955085263647957E+00 -1.3929554389844345E+00 + -1.3903766517537839E+00 -1.3877719282271943E+00 -1.3851410302792535E+00 + -1.3824837181049301E+00 -1.3797997502201007E+00 -1.3770888834624930E+00 + -1.3743508729929814E+00 -1.3715854722973331E+00 -1.3687924331883774E+00 + -1.3659715058085848E+00 -1.3631224386331360E+00 -1.3602449784734247E+00 + -1.3573388704810603E+00 -1.3544038581523372E+00 -1.3514396833332560E+00 + -1.3484460862249932E+00 -1.3454228053899906E+00 -1.3423695777585287E+00 + -1.3392861386359014E+00 -1.3361722217101517E+00 -1.3330275590604279E+00 + -1.3298518811659474E+00 -1.3266449169155594E+00 -1.3234063936180280E+00 + -1.3201360370128949E+00 -1.3168335712821089E+00 -1.3134987190622849E+00 + -1.3101312014577517E+00 -1.3067307380542814E+00 -1.3032970469336291E+00 + -1.2998298446888124E+00 -1.2963288464402247E+00 -1.2927937658525448E+00 + -1.2892243151525122E+00 -1.2856202051475509E+00 -1.2819811452452827E+00 + -1.2783068434739626E+00 -1.2745970065038374E+00 -1.2708513396694585E+00 + -1.2670695469929862E+00 -1.2632513312084896E+00 -1.2593963937872905E+00 + -1.2555044349643467E+00 -1.2515751537657340E+00 -1.2476082480372299E+00 + -1.2436034144740351E+00 -1.2395603486516595E+00 -1.2354787450580076E+00 + -1.2313582971266792E+00 -1.2271986972715196E+00 -1.2229996369224647E+00 + -1.2187608065626907E+00 -1.2144818957670991E+00 -1.2101625932421878E+00 + -1.2058025868673428E+00 -1.2014015637375459E+00 -1.1969592102075781E+00 + -1.1924752119377211E+00 -1.1879492539410159E+00 -1.1833810206321012E+00 + -1.1787701958776522E+00 -1.1741164630484993E+00 -1.1694195050734257E+00 + -1.1646790044947157E+00 -1.1598946435254422E+00 -1.1550661041085803E+00 + -1.1501930679780068E+00 -1.1452752167213367E+00 -1.1403122318447467E+00 + -1.1353037948397344E+00 -1.1302495872519500E+00 -1.1251492907520568E+00 + -1.1200025872087311E+00 -1.1148091587638067E+00 -1.1095686879096465E+00 + -1.1042808575687546E+00 -1.0989453511757044E+00 -1.0935618527614146E+00 + -1.0881300470398421E+00 -1.0826496194971291E+00 -1.0771202564832498E+00 + -1.0715416453062492E+00 -1.0659134743290679E+00 -1.0602354330690671E+00 + -1.0545072123002708E+00 -1.0487285041583969E+00 -1.0428990022487470E+00 + -1.0370184017569728E+00 -1.0310863995628450E+00 -1.0251026943570252E+00 + -1.0190669867609190E+00 -1.0129789794497106E+00 -1.0068383772785900E+00 + -1.0006448874122602E+00 -9.9439821945780393E-01 -9.8809808560096346E-01 + -9.8174420074589119E-01 -9.7533628265847405E-01 -9.6887405211324606E-01 + -9.6235723304403109E-01 -9.5578555269833265E-01 -9.4915874179557569E-01 + -9.4247653468923609E-01 -9.3573866953300300E-01 -9.2894488845095857E-01 + -9.2209493771196183E-01 -9.1518856790819347E-01 -9.0822553413806173E-01 + -9.0120559619344887E-01 -8.9412851875146049E-01 -8.8699407157070242E-01 + -8.7980202969220833E-01 -8.7255217364507032E-01 -8.6524428965690692E-01 + -8.5787816986920395E-01 -8.5045361255763952E-01 -8.4297042235749919E-01 + -8.3542841049425420E-01 -8.2782739501937463E-01 -8.2016720105152852E-01 + -8.1244766102320320E-01 -8.0466861493286934E-01 -7.9682991060279373E-01 + -7.8893140394257411E-01 -7.8097295921850052E-01 -7.7295444932887969E-01 + -7.6487575608534919E-01 -7.5673677050035248E-01 -7.4853739308084255E-01 + -7.4027753412831387E-01 -7.3195711404529196E-01 -7.2357606364835325E-01 + -7.1513432448781111E-01 -7.0663184917414390E-01 -6.9806860171129792E-01 + -6.8944455783697178E-01 -6.8075970536994845E-01 -6.7201404456466329E-01 + -6.6320758847302241E-01 -6.5434036331367429E-01 -6.4541240884877116E-01 + -6.3642377876836709E-01 -6.2737454108257640E-01 -6.1826477852154771E-01 + -6.0909458894345048E-01 -5.9986408575049521E-01 -5.9057339831318056E-01 + -5.8122267240280623E-01 -5.7181207063243245E-01 -5.6234177290634635E-01 + -5.5281197687817085E-01 -5.4322289841772353E-01 -5.3357477208674420E-01 + -5.2386785162357297E-01 -5.1410241043693183E-01 -5.0427874210888513E-01 + -4.9439716090710589E-01 -4.8445800230654201E-01 -4.7446162352060134E-01 + -4.6440840404195893E-01 -4.5429874619307331E-01 -4.4413307568654781E-01 + -4.3391184219540258E-01 -4.2363551993337983E-01 -4.1330460824536985E-01 + -4.0291963220804883E-01 -3.9248114324083955E-01 -3.8198971972727003E-01 + -3.7144596764679516E-01 -3.6085052121723893E-01 -3.5020404354783302E-01 + -3.3950722730304939E-01 -3.2876079537717290E-01 -3.1796550157980630E-01 + -3.0712213133228988E-01 -2.9623150237513729E-01 -2.8529446548652787E-01 + -2.7431190521190874E-01 -2.6328474060479601E-01 -2.5221392597872044E-01 + -2.4110045167047703E-01 -2.2994534481459805E-01 -2.1874967012914753E-01 + -2.0751453071281742E-01 -1.9624106885334455E-01 -1.8493046684724962E-01 + -1.7358394783089512E-01 -1.6220277662282384E-01 -1.5078826057740047E-01 + -1.3934175044968197E-01 -1.2786464127148281E-01 -1.1635837323858475E-01 + -1.0482443260904604E-01 -9.3264352612482657E-02 -8.1679714370301068E-02 + -7.0072147826713185E-02 -5.8443332690474664E-02 -4.6794999387194308E-02 + -3.5128930022064873E-02 -2.3446959352889356E-02 -1.1750975773180431E-02 + -4.2922305204897623E-05 1.1675202397291952E-02 2.3401343036860405E-02 + 3.5133386650890032E-02 4.6869161581185065E-02 5.8606436434829691E-02 + 7.0342919036675680E-02 8.2076255373766935E-02 9.3804028532050110E-02 + 1.0552375762576040E-01 1.1723289671984170E-01 1.2892883374588565E-01 + 1.4060888941199109E-01 1.5227031610705502E-01 1.6391029679999070E-01 + 1.7552594393441870E-01 1.8711429831941673E-01 1.9867232801691445E-01 + 2.1019692722638691E-01 2.2168491516752240E-01 2.3313303496158386E-01 + 2.4453795251221655E-01 2.5589625538647737E-01 2.6720445169695872E-01 + 2.7845896898585293E-01 2.8965615311190074E-01 3.0079226714120866E-01 + 3.1186349024288762E-01 3.2286591659071456E-01 3.3379555427178759E-01 + 3.4464832420347635E-01 3.5542005905983309E-01 3.6610650220878815E-01 + 3.7670330666147539E-01 3.8720603403510123E-01 3.9761015353084084E-01 + 4.0791104092833047E-01 4.1810397759834916E-01 4.2818414953538708E-01 + 4.3814664641188911E-01 4.4798646065600978E-01 4.5769848655477169E-01 + 4.6727751938471473E-01 4.7671825457204209E-01 4.8601528688451440E-01 + 4.9516310965735466E-01 5.0415611405550120E-01 5.1298858837474615E-01 + 5.2165471738427949E-01 5.3014858171334056E-01 5.3846415728478136E-01 + 5.4659531479841073E-01 5.5453581926718509E-01 5.6227932960934490E-01 + 5.6981939829979056E-01 5.7714947108408454E-01 5.8426288675861693E-01 + 5.9115287702059194E-01 5.9781256639162883E-01 6.0423497221899847E-01 + 6.1041300475851168E-01 6.1633946734340728E-01 6.2200705664361222E-01 + 6.2740836301999603E-01 6.3253587097838204E-01 6.3738195972823397E-01 + 6.4193890385119023E-01 6.4619887408472587E-01 6.5015393822646861E-01 + 6.5379606216486941E-01 6.5711711104219184E-01 6.6010885055585666E-01 + 6.6276294840462546E-01 6.6507097588610109E-01 6.6702440965239995E-01 + 6.6861463363106088E-01 6.6983294111847136E-01 6.7067053705340063E-01 + 6.7111854047842323E-01 6.7116798719738169E-01 6.7080983263719796E-01 + 6.7003495492276921E-01 6.6883415817381975E-01 6.6719817603306120E-01 + 6.6511767543514533E-01 6.6258326062638051E-01 6.5958547744539908E-01 + 6.5611481787533377E-01 6.5216172487846480E-01 6.4771659752454991E-01 + 6.4276979642457233E-01 6.3731164948180119E-01 6.3133245797274506E-01 + 6.2482250297065767E-01 6.1777205212491448E-01 6.1017136680989892E-01 + 6.0201070965747905E-01 5.9328035248749811E-01 5.8397058465153739E-01 + 5.7407172180500210E-01 5.6357411512385791E-01 5.5246816098215024E-01 + 5.4074431110740562E-01 5.2839308323129397E-01 5.1540507225349208E-01 + 5.0177096193729431E-01 4.8748153715616593E-01 4.7252769671058192E-01 + 4.5690046673568718E-01 4.4059101472039935E-01 4.2359066415945634E-01 + 4.0589090986036708E-01 3.8748343392815182E-01 3.6836012245091176E-01 + 3.4851308291050948E-01 3.2793466234281027E-01 3.0661746627298947E-01 + 2.8455437845196085E-01 2.6173858142064194E-01 2.3816357792964044E-01 + 2.1382321324270634E-01 1.8871169835281937E-01 1.6282363414087003E-01 + 1.3615403650751060E-01 1.0869836250955529E-01 8.0452537533168361E-02 + 5.1412983536863716E-02 2.1576648404660011E-02 -9.0589835962301985E-03 + -4.0496084086007959E-02 -7.2736688069896097E-02 -1.0578270990756919E-01 + -1.3963593969801200E-01 -1.7429803960722012E-01 -2.0977054014047081E-01 + -2.4605483636156966E-01 -2.8315218406216774E-01 -3.2106369588521422E-01 + -3.5979033740750527E-01 -3.9933292318758495E-01 -4.3969211278669718E-01 + -4.8086840677199755E-01 -5.2286214271324394E-01 -5.6567349118626897E-01 + -6.0930245179895814E-01 -6.5374884925818955E-01 -6.9901232949930059E-01 + -7.4509235590290235E-01 -7.9198820562762096E-01 -8.3969896609122141E-01 + -8.8822353163687151E-01 -9.3756060042558109E-01 -9.8770867160044595E-01 + -1.0386660427727050E+00 -1.0904308078839842E+00 -1.1430008555028677E+00 + -1.1963738676173299E+00 -1.2505473189865817E+00 -1.3055184771168942E+00 + -1.3612844029248738E+00 -1.4178419521483032E+00 -1.4751877775582003E+00 + -1.5333183320156585E+00 -1.5922298724023285E+00 -1.6519184644336133E+00 + -1.7123799883374626E+00 -1.7736101453487256E+00 -1.8356044649282139E+00 + -1.8983583125665719E+00 -1.9618668979750999E+00 -2.0261252833990526E+00 + -2.0911283917138790E+00 -2.1568710138826970E+00 -2.2233478152662491E+00 + -2.2905533401877474E+00 -2.3584820140697484E+00 -2.4271281423849778E+00 + -2.4964859056067636E+00 -2.5665493493185632E+00 -2.6373123686587241E+00 + -2.7087686863503935E+00 -2.7809118237115378E+00 -2.8537350642688293E+00 + -2.9272314099184786E+00 -3.0013935299867018E+00 -3.0762137040285098E+00 + -3.1516837597382894E+00 -3.2277950078839535E+00 -3.3045381766590443E+00 + -3.3819033482058956E+00 -3.4598799002306388E+00 -3.5384564555552309E+00 + -3.6176208421082805E+00 -3.6973600652582208E+00 -3.7776602935939310E+00 + -3.8585068583467290E+00 -3.9398842657328390E+00 -4.0217762206834395E+00 + -4.1041656598087402E+00 -4.1870347910660026E+00 -4.2703651374816891E+00 + -4.3541375823919699E+00 -4.4383324139624927E+00 -4.5229293671640294E+00 + -4.6079076618509500E+00 -4.6932460360588584E+00 -4.7789227740645144E+00 + -4.8649157291104759E+00 -4.9512023409765913E+00 -5.0377596487808489E+00 + -5.1245642995203120E+00 -5.2115925529302967E+00 -5.2988202832599001E+00 + -5.3862229785468267E+00 -5.4737757379360907E+00 -5.5614532675343913E+00 + -5.6492298752323862E+00 -5.7370794648659063E+00 -5.8249755300284995E+00 + -5.9128911477928394E+00 -6.0007989725502480E+00 -6.0886712301348753E+00 + -6.1764797123632142E+00 -6.2641957720893613E+00 -6.3517903188518385E+00 + -6.4392338151679196E+00 -6.5264962735156011E+00 -6.6135472540312872E+00 + -6.7003558629419873E+00 -6.7868907517438286E+00 -6.8731201171340581E+00 + -6.9590117016999722E+00 -7.0445327953664281E+00 -7.1296502376020827E+00 + -7.2143304203841048E+00 -7.2985392919210170E+00 -7.3822423611337804E+00 + -7.4654047028957384E+00 -7.5479909640327838E+00 -7.6299653700861345E+00 + -7.7112917328406585E+00 -7.7919334586229780E+00 -7.8718535573740471E+00 + -7.9510146525019092E+00 -8.0293789915209945E+00 -8.1069084574848969E+00 + -8.1835645812202085E+00 -8.2593085543694631E+00 -8.3341012432514159E+00 + -8.4079032035475123E+00 -8.4806746958233443E+00 -8.5523757018941087E+00 + -8.6229659420431624E+00 -8.6924048931027116E+00 -8.7606518074055977E+00 + -8.8276657326170049E+00 -8.8934055324546719E+00 -8.9578299083058575E+00 + -9.0208974217491154E+00 -9.0825665179884130E+00 -9.1427955502067100E+00 + -9.2015428048456211E+00 -9.2587665278172508E+00 -9.3144249516536277E+00 + -9.3684763235985766E+00 -9.4208789346460602E+00 -9.4715911495283631E+00 + -9.5205714376566597E+00 -9.5677784050154955E+00 -9.6131708270120342E+00 + -9.6567076822797020E+00 -9.6983481874350037E+00 -9.7380518327851000E+00 + -9.7757784189825827E+00 -9.8114880946226677E+00 -9.8451413947768334E+00 + -9.8766992804554334E+00 -9.9061231789904927E+00 -9.9333750253284219E+00 + -9.9584173042207560E+00 -9.9812130932994396E+00 -1.0001726107021518E+01 + -1.0019920741466152E+01 -1.0035762119965222E+01 -1.0049216139546710E+01 + -1.0060249518168032E+01 -1.0068829842714415E+01 -1.0074925617735255E+01 + -1.0078506314889029E+01 -1.0079542423065032E+01 -1.0078005499147835E+01 + -1.0073868219387588E+01 -1.0067104431337018E+01 -1.0057689206312975E+01 + -1.0045598892337775E+01 -1.0030811167512629E+01 -1.0013305093772546E+01 + -9.9930611709690798E+00 -9.9700613912242186E+00 -9.9442892934953644E+00 + -9.9157300182884622E+00 -9.8843703624526924E+00 -9.8501988339869566E+00 + -9.8132057067850038E+00 -9.7733830752424495E+00 -9.7307249086455663E+00 + -9.6852271052582122E+00 -9.6368875460195316E+00 -9.5857061477617460E+00 + -9.5316849158535728E+00 -9.4748279961713990E+00 -9.4151417262966781E+00 + -9.3526346858345430E+00 -9.2873177457451881E+00 -9.2192041165760354E+00 + -9.1483093954794814E+00 -9.0746516118976022E+00 -8.9982512717921406E+00 + -8.9191314002949333E+00 -8.8373175826509769E+00 -8.7528380033236335E+00 + -8.6657234831286782E+00 -8.5760075142615086E+00 -8.4837262930795241E+00 + -8.3889187504994300E+00 -8.2916265798676712E+00 -8.1918942621601669E+00 + -8.0897690883663458E+00 -7.9853011789112438E+00 -7.8785434999685595E+00 + -7.7695518765168954E+00 -7.6583850019911681E+00 -7.5451044443811632E+00 + -7.4297746486293015E+00 -7.3124629351806387E+00 -7.1932394945387239E+00 + -7.0721773776823813E+00 -6.9493524822000392E+00 -6.8248435340001619E+00 + -6.6987320644586203E+00 -6.5711023828665622E+00 -6.4420415440451482E+00 + -6.3116393109970907E+00 -6.1799881124684868E+00 -6.0471829952986074E+00 + -5.9133215714396572E+00 -5.7785039595334160E+00 -5.6428327209368723E+00 + -5.5064127900944433E+00 -5.3693513991604949E+00 -5.2317579967820542E+00 + -5.0937441609586029E+00 -4.9554235059028660E+00 -4.8169115828341784E+00 + -4.6783257746441285E+00 -4.5397851843826516E+00 -4.4014105175217342E+00 + -4.2633239579634248E+00 -4.1256490377687500E+00 -3.9885105005947561E+00 + -3.8520341588378595E+00 -3.7163467444933445E+00 -3.5815757537530497E+00 + -3.4478492853761229E+00 -3.3152958728810540E+00 -3.1840443106214038E+00 + -3.0542234738223106E+00 -2.9259621326702212E+00 -2.7993887605645571E+00 + -2.6746313366567187E+00 -2.5518171428194254E+00 -2.4310725552077295E+00 + -2.3125228305919738E+00 -2.1962918876628508E+00 -2.0825020835291697E+00 + -1.9712739856502504E+00 -1.8627261394668797E+00 -1.7569748320175427E+00 + -1.6541338518500197E+00 -1.5543142455627132E+00 -1.4576240713348139E+00 + -1.3641681498299256E+00 -1.2740478128838213E+00 -1.1873606504136303E+00 + -1.1042002560128843E+00 -1.0246559717244366E+00 -9.4881263251133108E-01 + -8.7675031097381140E-01 -8.0854406288925007E-01 -7.4426367418056205E-01 + -6.8397340994731282E-01 -6.2773176622242277E-01 -5.7559122514591277E-01 + -5.2759801427541564E-01 -4.8379187078102925E-01 -4.4420581129937475E-01 + -4.0886590824842534E-01 -3.7779107343040713E-01 -3.5099284977490058E-01 + -3.2847521209790548E-01 -3.1023437777486390E-01 -2.9625862824643362E-01 + -2.8652814229471307E-01 -2.8101484204476079E-01 -2.7968225266105384E-01 + -2.8248537672113305E-01 -2.8937058425853363E-01 -3.0027551947420877E-01 + -3.1512902511967106E-01 -3.3385108555571491E-01 -3.5635278948777643E-01 + -3.8253631337222477E-01 -4.1229492647717059E-01 -4.4551301856624664E-01 + -4.8206615115421131E-01 -5.2182113325868518E-01 -5.6463612254279649E-01 + -6.1036075270866708E-01 -6.5883628796114391E-01 -7.0989580531510055E-01 + -7.6336440546727158E-01 -8.1905945289530135E-01 -8.7679084578175959E-01 + -9.3636131628956421E-01 -9.9756676163711855E-01 -1.0601966063364994E+00 + -1.1240341958661486E+00 -1.1888572219505054E+00 -1.2544381795130428E+00 + -1.3205448552559498E+00 -1.3869408476995173E+00 -1.4533861183870456E+00 + -1.5196375738268437E+00 -1.5854496776020792E+00 -1.6505750919315598E+00 + -1.7147653478108558E+00 -1.7777715427031142E+00 -1.8393450645835494E+00 + -1.8992383409706204E+00 -1.9572056114014154E+00 -2.0130037216289560E+00 + -2.0663929376355163E+00 -2.1171377773698552E+00 -2.1650078579273480E+00 + -2.2097787557022057E+00 -2.2512328768501217E+00 -2.2891603352097500E+00 + -2.3233598346425035E+00 -2.3536395525640703E+00 -2.3798180212585822E+00 + -2.4017250033886390E+00 -2.4192023579432802E+00 -2.4321048927019260E+00 + -2.4403011991378345E+00 -2.4436744655399214E+00 -2.4421232639997585E+00 + -2.4355623067914203E+00 -2.4239231675683151E+00 -2.4071549627141438E+00 + -2.3852249881164447E+00 -2.3581193065829509E+00 -2.3258432810939831E+00 + -2.2884220490810576E+00 -2.2459009329434325E+00 -2.1983457820628933E+00 + -2.1458432416538149E+00 -2.0885009438918987E+00 -2.0264476169030154E+00 + -1.9598331073637389E+00 -1.8888283126697161E+00 -1.8136250188672010E+00 + -1.7344356408187946E+00 -1.6514928613866866E+00 -1.5650491667669908E+00 + -1.4753762754970923E+00 -1.3827644590846704E+00 -1.2875217526726797E+00 + -1.1899730546582721E+00 -1.0904591147256557E+00 -9.8933541033193040E-01 + -8.8697091230043967E-01 -7.8374674082641982E-01 -6.8005471388332639E-01 + -5.7629579073292192E-01 -4.7287841398562330E-01 -3.7021675442704588E-01 + -2.6872886361869502E-01 -1.6883474009194380E-01 -7.0954315780506275E-02 + 2.4494629826728894E-02 1.1709861948850421E-01 2.0645068280326270E-01 + 2.9215260558738898E-01 3.7381721321164041E-01 4.5107067626141817E-01 + 5.2355482610567572E-01 5.9092946721141426E-01 6.5287467233355923E-01 + 7.0909304605174217E-01 7.5931194152442227E-01 8.0328561479549254E-01 + 8.4079730052791424E-01 8.7166119266174547E-01 8.9572431320942092E-01 + 9.1286825221795764E-01 9.2301076185516395E-01 9.2610718762321642E-01 + 9.2215171987699240E-01 9.1117844913406487E-01 8.9326220911601095E-01 + 8.6851919206376083E-01 8.3710732162915713E-01 7.9922636956654780E-01 + 7.5511780353623315E-01 7.0506435458971795E-01 6.4938929433689963E-01 + 5.8845541339861773E-01 5.2266369452366224E-01 4.5245167569511185E-01 + 3.7829150066287048E-01 3.0068765661140406E-01 2.2017440109631317E-01 + 1.3731288295030242E-01 5.2687964556352225E-02 -3.3095244301103097E-02 + -1.1941512788417906E-01 -2.0563756513405732E-01 -2.9112017032324078E-01 + -3.7521675147842992E-01 -4.5728196123264941E-01 -5.3667611169388618E-01 + -6.1277012189785862E-01 -6.8495056347777983E-01 -7.5262476736907802E-01 + -8.1522595170870671E-01 -8.7221832862533477E-01 -9.2310214538762880E-01 + -9.6741861342367741E-01 -1.0047546770859397E+00 -1.0347475727543078E+00 + -1.0570891279851486E+00 -1.0715297499666827E+00 -1.0778820525688053E+00 + -1.0760240718148009E+00 -1.0659020206871510E+00 -1.0475325358397876E+00 + -1.0210043710514249E+00 -9.8647949514021838E-01 -9.4419355558559470E-01 + -8.9445567327828079E-01 -8.3764753864795527E-01 -7.7422178489490900E-01 + -7.0469962016509979E-01 -6.2966770723575638E-01 -5.4977428658997929E-01 + -4.6572454661317786E-01 -3.7827525299007680E-01 -2.8822865815686138E-01 + -1.9642572079579451E-01 -1.0373867476569092E-01 -1.1062996446381269E-02 + 8.0691170866603698E-02 1.7060806726479946E-01 2.5777576352568798E-01 + 3.4129591855818681E-01 4.2029375143934478E-01 4.9392812437113337E-01 + 5.6140162551340411E-01 6.2197053417505122E-01 6.7495454542727251E-01 + 7.1974612699639950E-01 7.5581937845170677E-01 7.8273826137197022E-01 + 8.0016406949091223E-01 8.0786200991107315E-01 8.0570677044857997E-01 + 7.9368695411951684E-01 7.7190826977251958E-01 7.4059537795759067E-01 + 7.0009230331532690E-01 6.5086133906076660E-01 5.9348038547441317E-01 + 5.2863868261643165E-01 4.5713091762614477E-01 3.7984970879554397E-01 + 2.9777649190832439E-01 2.1197085886870173E-01 1.2355842411854302E-01 + 3.3717320427145273E-02 -5.6336548034085790E-02 -1.4536534125657999E-01 + -2.3212602796534218E-01 -3.1538783507752438E-01 -3.9395017501361068E-01 + -4.6666080298513729E-01 -5.3243393813681794E-01 -5.9026806728868486E-01 + -6.3926313851467431E-01 -6.7863684439774374E-01 -7.0773969197623798E-01 + -7.2606855855716645E-01 -7.3327844007886844E-01 -7.2919211184977284E-01 + -7.1380744048264888E-01 -6.8730211080262682E-01 -6.5003556244601890E-01 + -6.0254796768333874E-01 -5.4555612446743618E-01 -4.7994618646668247E-01 + -4.0676320439599845E-01 -3.2719750966538275E-01 -2.4256803144406724E-01 + -1.5430270076613736E-01 -6.3916159223250404E-02 2.7014946079661824E-02 + 1.1687873658262227E-01 2.0405654004291640E-01 2.8695253007536942E-01 + 3.6402405430569235E-01 4.3381209373508534E-01 4.9497126013771242E-01 + 5.4629871246262995E-01 5.8676135865247081E-01 6.1552070725398478E-01 + 6.3195474473535695E-01 6.3567624037828885E-01 6.2654692155342906E-01 + 6.0468701838821914E-01 5.7047974822958525E-01 5.2457039645062820E-01 + 4.6785975021268317E-01 4.0149175451534319E-01 3.2683538356299524E-01 + 2.4546085303406512E-01 1.5911043772914502E-01 6.9664301374360152E-02 + -2.0898112210088360E-02 -1.1054043837916520E-01 -1.9721468144942100E-01 + -2.7890849459594902E-01 -3.5369340424233114E-01 -4.1977284738562409E-01 + -4.7552882746518182E-01 -5.1956595821123930E-01 -5.5075165853587893E-01 + -5.6825128754758958E-01 -5.7155706909549087E-01 -5.6050975099085143E-01 + -5.3531207540382775E-01 -4.9653330306571103E-01 -4.4510423289748469E-01 + -3.8230238745888684E-01 -3.0972728891900003E-01 -2.2926602467792431E-01 + -1.4304958979566021E-01 -5.3400787466586906E-02 3.7225239509122814E-02 + 1.2630649308791181E-01 2.1132400788858563E-01 2.8983430213662459E-01 + 3.5954236355001462E-01 4.1837300438371949E-01 4.6453834056630283E-01 + 4.9659913631657754E-01 5.1351781362471538E-01 5.1470105943361233E-01 + 5.0003017395233429E-01 4.6987759045183636E-01 4.2510835657106527E-01 + 3.6706579314171078E-01 2.9754102940827160E-01 2.1872664094823352E-01 + 1.3315517349957348E-01 4.3623904719797713E-02 -4.6892242992039118E-02 + -1.3533719323205803E-01 -2.1867668314023161E-01 -2.9400437263991602E-01 + -3.5864744622051897E-01 -4.1026785810017269E-01 -4.4695530261116861E-01 + -4.6730806707123496E-01 -4.7049815309342791E-01 -4.5631743772783911E-01 + -4.2520218542722188E-01 -3.7823390640046944E-01 -3.1711537039267496E-01 + -2.4412150433129856E-01 -1.6202589800132577E-01 -7.4004678338399854E-02 + 1.6479450628314560E-02 1.0580921315359014E-01 1.9035612251552306E-01 + 2.6662974419188584E-01 3.3142682857707489E-01 3.8197392426003185E-01 + 4.1605698509698597E-01 4.3213167044724005E-01 4.2940852270084401E-01 + 4.0790799155781160E-01 3.6848134818357176E-01 3.1279486707759657E-01 + 2.4327620670626504E-01 1.6302363441135387E-01 7.5680546216110159E-02 + -1.4720453809714474E-02 -1.0393791668115325E-01 -1.8771879795146340E-01 + -2.6200374696252754E-01 -3.2313094746264415E-01 -3.6802680616902317E-01 + -3.9437636982302254E-01 -4.0075919277229244E-01 -3.8674690157787128E-01 + -3.5295144506457332E-01 -3.0102138315435240E-01 -2.3358299564660950E-01 + -1.5412689364408494E-01 -6.6843616221190449E-02 2.3585240647564888E-02 + 1.1223091299499324E-01 1.9418438839234872E-01 2.6483231978524391E-01 + 3.2012653997833423E-01 3.5683123175740694E-01 3.7273217472227127E-01 + 3.6679382090320617E-01 3.3925224670289039E-01 2.9163522369145928E-01 + 2.2670461830523500E-01 1.4832088132565655E-01 6.1234277484492131E-02 + -2.9187556196344354E-02 -1.1728146777341782E-01 -1.9744174402896264E-01 + -2.6448270197705531E-01 -3.1398753416594810E-01 -3.4261954281586776E-01 + -3.4837301365649814E-01 -3.3074374625960706E-01 -2.9080361433110197E-01 + -2.3116929726882254E-01 -1.5586220423295899E-01 -7.0064195223386930E-02 + 2.0218509001705836E-02 1.0856340604208709E-01 1.8858547110953444E-01 + 2.5440531322203874E-01 3.0109748836457439E-01 3.2508418489803542E-01 + 3.2444160465906013E-01 2.9909117599379192E-01 2.5085509100246473E-01 + 1.8336517499793217E-01 1.0182517460111243E-01 1.2638409399688180E-02 + -7.7075550515318392E-02 -1.6004093783506931E-01 -2.2941987517054355E-01 + -2.7939237208946449E-01 -3.0567242656031912E-01 -3.0591294428003019E-01 + -2.7995903157244845E-01 -2.2992012743780726E-01 -1.6004576798499642E-01 + -7.6406496750118347E-02 1.3600796051285426E-02 1.0188657089028531E-01 + 1.8038976991968628E-01 2.4182350395758748E-01 2.8037633121595334E-01 + 2.9230028181512935E-01 2.7632360382065663E-01 2.3383960732067122E-01 + 1.6884216320295678E-01 8.7601909224772997E-02 -1.8970170914552221E-03 + -9.0714333414113821E-02 -1.6983698748296389E-01 -2.3110331103972143E-01 + -2.6807332939254769E-01 -2.7675066043983998E-01 -2.5607170364851389E-01 + -2.0809800744791837E-01 -1.3787638855389681E-01 -5.2966041839256038E-02 + 3.7330910149785339E-02 1.2296327215640805E-01 1.9424692900284893E-01 + 2.4298096697933075E-01 2.6343412684520379E-01 2.5307949132754853E-01 + 2.1297800871399244E-01 1.4774779295484680E-01 6.5102768902691663E-02 + -2.5003802957572610E-02 -1.1154417435090119E-01 -1.8375868273647994E-01 + -2.3251505047876694E-01 -2.5151164852483215E-01 -2.3816186153573474E-01 + -1.9402871802654487E-01 -1.2473063996049813E-01 -3.9305153714378586E-02 + 5.0910144446160918E-02 1.3375062182583106E-01 1.9786636455477699E-01 + 2.3431279106969335E-01 2.3786434083135269E-01 2.0785140768322721E-01 + 1.4837735827344431E-01 6.7854069302638265E-02 -2.2109122449133496E-02 + -1.0833007173555208E-01 -1.7797408943184506E-01 -2.2049399767629149E-01 + -2.2929466056735989E-01 -2.0285171647942218E-01 -1.4508351541712317E-01 + -6.4881359536790764E-02 2.5168020185047803E-02 1.1070135776535409E-01 + 1.7785813647919724E-01 2.1556309023500475E-01 2.1743290107785662E-01 + 1.8296873914284481E-01 1.1779762836070433E-01 3.2875042304136522E-02 + -5.7263583823897513E-02 -1.3694249446186341E-01 -1.9207832030836286E-01 + -2.1273145361828505E-01 -1.9500624376915573E-01 -1.4192136725257787E-01 + -6.3039694033848487E-02 2.7133632635401778E-02 1.1174289962798313E-01 + 1.7471785507227033E-01 2.0387697924906484E-01 1.9339283774115404E-01 + 1.4510392419911861E-01 6.8356301040581768E-02 -2.1664732554013865E-02 + -1.0684805313804382E-01 -1.6977864609183271E-01 -1.9735231444333892E-01 + -1.8362615290789785E-01 -1.3126456535113018E-01 -5.1203250343159326E-02 + 3.9483154424987031E-02 1.2113189512551442E-01 1.7574728121227678E-01 + 1.9104599337759631E-01 1.6337093672101141E-01 9.8755000819552935E-02 + 1.1799570284923488E-02 -7.7478352984836241E-02 -1.4818909486145940E-01 + -1.8349284016935291E-01 -1.7473938209101580E-01 -1.2378309780530519E-01 + -4.2816513599133688E-02 4.8358108877055647E-02 1.2706239055655957E-01 + 1.7338248576776880E-01 1.7532033953147302E-01 1.3210160273351459E-01 + 5.4686432247665520E-02 -3.6789396024279448E-02 -1.1811287112915377E-01 + -1.6738459097720029E-01 -1.7102746853055803E-01 -1.2774264268748572E-01 + -4.9211989177752845E-02 4.2811372618769238E-02 1.2237871176773192E-01 + 1.6665083603429393E-01 1.6258806932746256E-01 1.1103632752596684E-01 + 2.6870768198902672E-02 -6.5043091523197191E-02 -1.3706055677620449E-01 + -1.6709977363833092E-01 -1.4559899144096661E-01 -7.8851444850328828E-02 + 1.2514900420900791E-02 9.9674373536443248E-02 1.5461805620411601E-01 + 1.5926308947482765E-01 1.1167127333922253E-01 2.7166862634137683E-02 + -6.6281618955253252E-02 -1.3714503795812988E-01 -1.6100318268108094E-01 + -1.2919206378643644E-01 -5.2303021330726528E-02 4.2968155168215887E-02 + + + -2.3795700667258615E+01 -2.3795700657598609E+01 -2.3795700628409037E+01 + -2.3795700579375616E+01 -2.3795700510180019E+01 -2.3795700420499855E+01 + -2.3795700310008566E+01 -2.3795700178375228E+01 -2.3795700025265099E+01 + -2.3795699850339432E+01 -2.3795699653254925E+01 -2.3795699433663973E+01 + -2.3795699191214851E+01 -2.3795698925551445E+01 -2.3795698636312991E+01 + -2.3795698323134591E+01 -2.3795697985646651E+01 -2.3795697623474940E+01 + -2.3795697236240485E+01 -2.3795696823559851E+01 -2.3795696385045300E+01 + -2.3795695920302911E+01 -2.3795695428935346E+01 -2.3795694910539705E+01 + -2.3795694364708186E+01 -2.3795693791028111E+01 -2.3795693189081462E+01 + -2.3795692558445456E+01 -2.3795691898691633E+01 -2.3795691209387105E+01 + -2.3795690490092689E+01 -2.3795689740364491E+01 -2.3795688959752752E+01 + -2.3795688147802732E+01 -2.3795687304053587E+01 -2.3795686428039325E+01 + -2.3795685519287794E+01 -2.3795684577321786E+01 -2.3795683601657164E+01 + -2.3795682591805317E+01 -2.3795681547270597E+01 -2.3795680467551691E+01 + -2.3795679352141025E+01 -2.3795678200525401E+01 -2.3795677012185230E+01 + -2.3795675786594099E+01 -2.3795674523219329E+01 -2.3795673221522744E+01 + -2.3795671880958288E+01 -2.3795670500974527E+01 -2.3795669081012619E+01 + -2.3795667620507199E+01 -2.3795666118886384E+01 -2.3795664575570669E+01 + -2.3795662989974101E+01 -2.3795661361503814E+01 -2.3795659689559660E+01 + -2.3795657973534297E+01 -2.3795656212812677E+01 -2.3795654406772911E+01 + -2.3795652554785448E+01 -2.3795650656213489E+01 -2.3795648710412014E+01 + -2.3795646716728992E+01 -2.3795644674503961E+01 -2.3795642583068844E+01 + -2.3795640441747835E+01 -2.3795638249856584E+01 -2.3795636006702928E+01 + -2.3795633711586472E+01 -2.3795631363798257E+01 -2.3795628962621095E+01 + -2.3795626507328876E+01 -2.3795623997187523E+01 -2.3795621431453839E+01 + -2.3795618809375682E+01 -2.3795616130192165E+01 -2.3795613393133454E+01 + -2.3795610597420509E+01 -2.3795607742264981E+01 -2.3795604826869276E+01 + -2.3795601850426440E+01 -2.3795598812119806E+01 -2.3795595711123237E+01 + -2.3795592546600890E+01 -2.3795589317706600E+01 -2.3795586023584928E+01 + -2.3795582663369416E+01 -2.3795579236184452E+01 -2.3795575741143409E+01 + -2.3795572177349410E+01 -2.3795568543895151E+01 -2.3795564839862571E+01 + -2.3795561064322825E+01 -2.3795557216335965E+01 -2.3795553294951286E+01 + -2.3795549299206773E+01 -2.3795545228129473E+01 -2.3795541080734477E+01 + -2.3795536856025702E+01 -2.3795532552995258E+01 -2.3795528170623456E+01 + -2.3795523707878981E+01 -2.3795519163717731E+01 -2.3795514537084433E+01 + -2.3795509826910980E+01 -2.3795505032116299E+01 -2.3795500151607509E+01 + -2.3795495184278529E+01 -2.3795490129010524E+01 -2.3795484984671695E+01 + -2.3795479750116790E+01 -2.3795474424187773E+01 -2.3795469005712359E+01 + -2.3795463493505192E+01 -2.3795457886366847E+01 -2.3795452183084581E+01 + -2.3795446382430917E+01 -2.3795440483163762E+01 -2.3795434484027869E+01 + -2.3795428383752260E+01 -2.3795422181052011E+01 -2.3795415874626688E+01 + -2.3795409463161409E+01 -2.3795402945325655E+01 -2.3795396319773495E+01 + -2.3795389585143671E+01 -2.3795382740058898E+01 -2.3795375783126271E+01 + -2.3795368712936661E+01 -2.3795361528064682E+01 -2.3795354227068191E+01 + -2.3795346808489082E+01 -2.3795339270851926E+01 -2.3795331612664196E+01 + -2.3795323832416674E+01 -2.3795315928582308E+01 -2.3795307899616727E+01 + -2.3795299743957468E+01 -2.3795291460024217E+01 -2.3795283046219058E+01 + -2.3795274500924460E+01 -2.3795265822505581E+01 -2.3795257009308358E+01 + -2.3795248059659073E+01 -2.3795238971866016E+01 -2.3795229744216879E+01 + -2.3795220374980435E+01 -2.3795210862405433E+01 -2.3795201204720545E+01 + -2.3795191400134115E+01 -2.3795181446833841E+01 -2.3795171342987043E+01 + -2.3795161086739760E+01 -2.3795150676216998E+01 -2.3795140109521871E+01 + -2.3795129384736480E+01 -2.3795118499920573E+01 -2.3795107453111846E+01 + -2.3795096242325481E+01 -2.3795084865554042E+01 -2.3795073320767617E+01 + -2.3795061605912128E+01 -2.3795049718911311E+01 -2.3795037657663979E+01 + -2.3795025420046390E+01 -2.3795013003909251E+01 -2.3795000407079034E+01 + -2.3794987627358715E+01 -2.3794974662524737E+01 -2.3794961510329252E+01 + -2.3794948168497928E+01 -2.3794934634731455E+01 -2.3794920906703748E+01 + -2.3794906982062663E+01 -2.3794892858429368E+01 -2.3794878533397750E+01 + -2.3794864004534222E+01 -2.3794849269378243E+01 -2.3794834325440597E+01 + -2.3794819170204363E+01 -2.3794803801123908E+01 -2.3794788215624870E+01 + -2.3794772411103100E+01 -2.3794756384925698E+01 -2.3794740134429684E+01 + -2.3794723656921654E+01 -2.3794706949678357E+01 -2.3794690009944958E+01 + -2.3794672834935955E+01 -2.3794655421834150E+01 -2.3794637767790626E+01 + -2.3794619869923988E+01 -2.3794601725320728E+01 -2.3794583331033824E+01 + -2.3794564684083561E+01 -2.3794545781456431E+01 -2.3794526620104470E+01 + -2.3794507196945609E+01 -2.3794487508863625E+01 -2.3794467552705829E+01 + -2.3794447325285081E+01 -2.3794426823377762E+01 -2.3794406043724546E+01 + -2.3794384983028660E+01 -2.3794363637956479E+01 -2.3794342005136688E+01 + -2.3794320081160318E+01 -2.3794297862579985E+01 -2.3794275345909217E+01 + -2.3794252527622554E+01 -2.3794229404154990E+01 -2.3794205971901068E+01 + -2.3794182227215295E+01 -2.3794158166410536E+01 -2.3794133785758998E+01 + -2.3794109081490539E+01 -2.3794084049792481E+01 -2.3794058686810185E+01 + -2.3794032988644751E+01 -2.3794006951354227E+01 -2.3793980570951845E+01 + -2.3793953843406843E+01 -2.3793926764642706E+01 -2.3793899330537595E+01 + -2.3793871536922790E+01 -2.3793843379583411E+01 -2.3793814854257690E+01 + -2.3793785956635158E+01 -2.3793756682357991E+01 -2.3793727027019319E+01 + -2.3793696986162338E+01 -2.3793666555281078E+01 -2.3793635729818874E+01 + -2.3793604505168229E+01 -2.3793572876670016E+01 -2.3793540839613126E+01 + -2.3793508389233452E+01 -2.3793475520714058E+01 -2.3793442229183864E+01 + -2.3793408509717786E+01 -2.3793374357335182E+01 -2.3793339767000084E+01 + -2.3793304733620136E+01 -2.3793269252046926E+01 -2.3793233317073213E+01 + -2.3793196923434913E+01 -2.3793160065808401E+01 -2.3793122738811068E+01 + -2.3793084937000174E+01 -2.3793046654872377E+01 -2.3793007886863045E+01 + -2.3792968627345108E+01 -2.3792928870629474E+01 -2.3792888610962866E+01 + -2.3792847842529060E+01 -2.3792806559446010E+01 -2.3792764755766296E+01 + -2.3792722425477265E+01 -2.3792679562498037E+01 -2.3792636160680964E+01 + -2.3792592213809737E+01 -2.3792547715598943E+01 -2.3792502659693053E+01 + -2.3792457039666239E+01 -2.3792410849021515E+01 -2.3792364081188325E+01 + -2.3792316729524639E+01 -2.3792268787313720E+01 -2.3792220247764629E+01 + -2.3792171104011185E+01 -2.3792121349110296E+01 -2.3792070976042332E+01 + -2.3792019977709554E+01 -2.3791968346935572E+01 -2.3791916076464133E+01 + -2.3791863158958623E+01 -2.3791809587001129E+01 -2.3791755353091386E+01 + -2.3791700449646044E+01 -2.3791644868997622E+01 -2.3791588603393684E+01 + -2.3791531644995423E+01 -2.3791473985878145E+01 -2.3791415618028154E+01 + -2.3791356533344487E+01 -2.3791296723634826E+01 -2.3791236180617211E+01 + -2.3791174895917887E+01 -2.3791112861070019E+01 -2.3791050067513076E+01 + -2.3790986506592368E+01 -2.3790922169556666E+01 -2.3790857047558493E+01 + -2.3790791131652337E+01 -2.3790724412793804E+01 -2.3790656881838331E+01 + -2.3790588529540361E+01 -2.3790519346552500E+01 -2.3790449323423179E+01 + -2.3790378450596904E+01 -2.3790306718413031E+01 -2.3790234117103623E+01 + -2.3790160636792912E+01 -2.3790086267496008E+01 -2.3790010999118273E+01 + -2.3789934821452828E+01 -2.3789857724180973E+01 -2.3789779696869385E+01 + -2.3789700728970196E+01 -2.3789620809818828E+01 -2.3789539928632699E+01 + -2.3789458074511092E+01 -2.3789375236432594E+01 -2.3789291403254548E+01 + -2.3789206563710795E+01 -2.3789120706411811E+01 -2.3789033819841755E+01 + -2.3788945892358377E+01 -2.3788856912191154E+01 -2.3788766867439715E+01 + -2.3788675746072300E+01 -2.3788583535925266E+01 -2.3788490224700425E+01 + -2.3788395799964601E+01 -2.3788300249147458E+01 -2.3788203559540108E+01 + -2.3788105718294439E+01 -2.3788006712420039E+01 -2.3787906528784625E+01 + -2.3787805154110213E+01 -2.3787702574973363E+01 -2.3787598777803396E+01 + -2.3787493748879832E+01 -2.3787387474331151E+01 -2.3787279940133672E+01 + -2.3787171132109250E+01 -2.3787061035924765E+01 -2.3786949637088174E+01 + -2.3786836920949021E+01 -2.3786722872695726E+01 -2.3786607477354082E+01 + -2.3786490719785281E+01 -2.3786372584683967E+01 -2.3786253056576992E+01 + -2.3786132119821044E+01 -2.3786009758601601E+01 -2.3785885956929977E+01 + -2.3785760698642253E+01 -2.3785633967396677E+01 -2.3785505746672580E+01 + -2.3785376019768059E+01 -2.3785244769797472E+01 -2.3785111979690573E+01 + -2.3784977632189225E+01 -2.3784841709846496E+01 -2.3784704195023906E+01 + -2.3784565069889346E+01 -2.3784424316416143E+01 -2.3784281916378671E+01 + -2.3784137851352124E+01 -2.3783992102710290E+01 -2.3783844651621845E+01 + -2.3783695479050245E+01 -2.3783544565748812E+01 -2.3783391892261971E+01 + -2.3783237438919230E+01 -2.3783081185835734E+01 -2.3782923112908893E+01 + -2.3782763199815268E+01 -2.3782601426009634E+01 -2.3782437770721462E+01 + -2.3782272212952616E+01 -2.3782104731475975E+01 -2.3781935304831208E+01 + -2.3781763911323811E+01 -2.3781590529021649E+01 -2.3781415135752496E+01 + -2.3781237709102054E+01 -2.3781058226410057E+01 -2.3780876664769234E+01 + -2.3780693001021600E+01 -2.3780507211755893E+01 -2.3780319273304645E+01 + -2.3780129161742057E+01 -2.3779936852880773E+01 -2.3779742322268707E+01 + -2.3779545545187322E+01 -2.3779346496646895E+01 -2.3779145151385556E+01 + -2.3778941483865299E+01 -2.3778735468268856E+01 -2.3778527078497280E+01 + -2.3778316288166536E+01 -2.3778103070604182E+01 -2.3777887398847348E+01 + -2.3777669245637533E+01 -2.3777448583419876E+01 -2.3777225384338184E+01 + -2.3776999620232399E+01 -2.3776771262634721E+01 -2.3776540282767630E+01 + -2.3776306651538832E+01 -2.3776070339538705E+01 -2.3775831317037362E+01 + -2.3775589553979977E+01 -2.3775345019984623E+01 -2.3775097684337357E+01 + -2.3774847515989926E+01 -2.3774594483555362E+01 -2.3774338555304258E+01 + -2.3774079699161771E+01 -2.3773817882703113E+01 -2.3773553073150747E+01 + -2.3773285237368992E+01 -2.3773014341861749E+01 -2.3772740352767993E+01 + -2.3772463235857717E+01 -2.3772182956527910E+01 -2.3771899479799213E+01 + -2.3771612770310334E+01 -2.3771322792315818E+01 -2.3771029509680695E+01 + -2.3770732885876832E+01 -2.3770432883977840E+01 -2.3770129466656037E+01 + -2.3769822596177086E+01 -2.3769512234396160E+01 -2.3769198342753178E+01 + -2.3768880882269126E+01 -2.3768559813539742E+01 -2.3768235096733484E+01 + -2.3767906691584255E+01 -2.3767574557388983E+01 -2.3767238653001780E+01 + -2.3766898936828841E+01 -2.3766555366824651E+01 -2.3766207900486229E+01 + -2.3765856494848606E+01 -2.3765501106479952E+01 -2.3765141691476373E+01 + -2.3764778205457198E+01 -2.3764410603558552E+01 -2.3764038840429951E+01 + -2.3763662870227812E+01 -2.3763282646610538E+01 -2.3762898122733681E+01 + -2.3762509251243440E+01 -2.3762115984271851E+01 -2.3761718273431310E+01 + -2.3761316069808963E+01 -2.3760909323960284E+01 -2.3760497985905040E+01 + -2.3760082005119880E+01 -2.3759661330532754E+01 -2.3759235910518008E+01 + -2.3758805692889670E+01 -2.3758370624894926E+01 -2.3757930653209890E+01 + -2.3757485723931048E+01 -2.3757035782570657E+01 -2.3756580774050143E+01 + -2.3756120642693261E+01 -2.3755655332220861E+01 -2.3755184785742458E+01 + -2.3754708945751378E+01 -2.3754227754117984E+01 -2.3753741152081567E+01 + -2.3753249080245688E+01 -2.3752751478569280E+01 -2.3752248286361269E+01 + -2.3751739442272989E+01 -2.3751224884290654E+01 -2.3750704549729509E+01 + -2.3750178375225179E+01 -2.3749646296727409E+01 -2.3749108249492171E+01 + -2.3748564168074537E+01 -2.3748013986320828E+01 -2.3747457637361254E+01 + -2.3746895053602472E+01 -2.3746326166719456E+01 -2.3745750907647441E+01 + -2.3745169206574580E+01 -2.3744580992933400E+01 -2.3743986195393465E+01 + -2.3743384741852704E+01 -2.3742776559428130E+01 -2.3742161574450044E+01 + -2.3741539712450773E+01 -2.3740910898158265E+01 -2.3740275055486450E+01 + -2.3739632107526159E+01 -2.3738981976537957E+01 -2.3738324583941257E+01 + -2.3737659850306343E+01 -2.3736987695345732E+01 -2.3736308037904060E+01 + -2.3735620795949362E+01 -2.3734925886563335E+01 -2.3734223225932414E+01 + -2.3733512729337594E+01 -2.3732794311145142E+01 -2.3732067884796486E+01 + -2.3731333362798647E+01 -2.3730590656714803E+01 -2.3729839677152597E+01 + -2.3729080333755558E+01 -2.3728312535191563E+01 -2.3727536189143976E+01 + -2.3726751202299056E+01 -2.3725957480337286E+01 -2.3725154927921878E+01 + -2.3724343448686810E+01 -2.3723522945228261E+01 -2.3722693319091057E+01 + -2.3721854470759258E+01 -2.3721006299643843E+01 -2.3720148704071811E+01 + -2.3719281581274540E+01 -2.3718404827375490E+01 -2.3717518337379353E+01 + -2.3716622005159341E+01 -2.3715715723446042E+01 -2.3714799383814285E+01 + -2.3713872876671427E+01 -2.3712936091244611E+01 -2.3711988915568718E+01 + -2.3711031236473250E+01 -2.3710062939568910E+01 -2.3709083909236462E+01 + -2.3708094028611434E+01 -2.3707093179573103E+01 -2.3706081242728768E+01 + -2.3705058097402553E+01 -2.3704023621620170E+01 -2.3702977692096123E+01 + -2.3701920184218700E+01 -2.3700850972036775E+01 -2.3699769928245498E+01 + -2.3698676924172105E+01 -2.3697571829760356E+01 -2.3696454513556954E+01 + -2.3695324842696706E+01 -2.3694182682886545E+01 -2.3693027898391605E+01 + -2.3691860352019393E+01 -2.3690679905104190E+01 -2.3689486417491423E+01 + -2.3688279747522884E+01 -2.3687059752019245E+01 -2.3685826286265204E+01 + -2.3684579203992627E+01 -2.3683318357364161E+01 -2.3682043596957474E+01 + -2.3680754771746965E+01 -2.3679451729087834E+01 -2.3678134314699008E+01 + -2.3676802372645902E+01 -2.3675455745321901E+01 -2.3674094273432392E+01 + -2.3672717795975132E+01 -2.3671326150223898E+01 -2.3669919171709488E+01 + -2.3668496694200982E+01 -2.3667058549688178E+01 -2.3665604568361857E+01 + -2.3664134578595323E+01 -2.3662648406924998E+01 -2.3661145878031661E+01 + -2.3659626814720465E+01 -2.3658091037900899E+01 -2.3656538366567457E+01 + -2.3654968617778817E+01 -2.3653381606638593E+01 -2.3651777146273513E+01 + -2.3650155047813744E+01 -2.3648515120370877E+01 -2.3646857171017491E+01 + -2.3645181004765632E+01 -2.3643486424544768E+01 -2.3641773231180871E+01 + -2.3640041223372901E+01 -2.3638290197672120E+01 -2.3636519948458378E+01 + -2.3634730267917750E+01 -2.3632920946020320E+01 -2.3631091770495622E+01 + -2.3629242526809875E+01 -2.3627372998142370E+01 -2.3625482965362124E+01 + -2.3623572207002145E+01 -2.3621640499236644E+01 -2.3619687615855401E+01 + -2.3617713328239446E+01 -2.3615717405335467E+01 -2.3613699613631006E+01 + -2.3611659717128585E+01 -2.3609597477318591E+01 -2.3607512653155172E+01 + -2.3605405001028711E+01 -2.3603274274739171E+01 -2.3601120225469533E+01 + -2.3598942601757518E+01 -2.3596741149469604E+01 -2.3594515611772021E+01 + -2.3592265729104167E+01 -2.3589991239148063E+01 -2.3587691876801458E+01 + -2.3585367374149278E+01 -2.3583017460432771E+01 -2.3580641862021132E+01 + -2.3578240302382021E+01 -2.3575812502050674E+01 -2.3573358178600177E+01 + -2.3570877046610811E+01 -2.3568368817638387E+01 -2.3565833200183892E+01 + -2.3563269899662174E+01 -2.3560678618368613E+01 -2.3558059055448190E+01 + -2.3555410906862939E+01 -2.3552733865358551E+01 -2.3550027620431688E+01 + -2.3547291858296298E+01 -2.3544526261850461E+01 -2.3541730510641482E+01 + -2.3538904280831559E+01 -2.3536047245163623E+01 -2.3533159072926065E+01 + -2.3530239429916552E+01 -2.3527287978407184E+01 -2.3524304377108034E+01 + -2.3521288281130420E+01 -2.3518239341950668E+01 -2.3515157207372049E+01 + -2.3512041521488410E+01 -2.3508891924645038E+01 -2.3505708053401502E+01 + -2.3502489540492142E+01 -2.3499236014788135E+01 -2.3495947101256668E+01 + -2.3492622420922991E+01 -2.3489261590828583E+01 -2.3485864223991776E+01 + -2.3482429929366553E+01 -2.3478958311801435E+01 -2.3475448971997796E+01 + -2.3471901506466931E+01 -2.3468315507489457E+01 -2.3464690563071240E+01 + -2.3461026256900130E+01 -2.3457322168303033E+01 -2.3453577872200835E+01 + -2.3449792939065102E+01 -2.3445966934872839E+01 -2.3442099421060629E+01 + -2.3438189954479576E+01 -2.3434238087349382E+01 -2.3430243367210871E+01 + -2.3426205336880336E+01 -2.3422123534400637E+01 -2.3417997492994736E+01 + -2.3413826741016617E+01 -2.3409610801903185E+01 -2.3405349194124511E+01 + -2.3401041431134264E+01 -2.3396687021320314E+01 -2.3392285467954032E+01 + -2.3387836269138084E+01 -2.3383338917758159E+01 -2.3378792901427207E+01 + -2.3374197702435403E+01 -2.3369552797697548E+01 -2.3364857658698792E+01 + -2.3360111751441128E+01 -2.3355314536390026E+01 -2.3350465468418225E+01 + -2.3345563996752688E+01 -2.3340609564916114E+01 -2.3335601610673638E+01 + -2.3330539565974792E+01 -2.3325422856896370E+01 -2.3320250903584878E+01 + -2.3315023120199065E+01 -2.3309738914850527E+01 -2.3304397689545375E+01 + -2.3298998840123254E+01 -2.3293541756198803E+01 -2.3288025821100987E+01 + -2.3282450411809968E+01 -2.3276814898897936E+01 -2.3271118646465094E+01 + -2.3265361012078102E+01 -2.3259541346706389E+01 -2.3253658994658533E+01 + -2.3247713293517414E+01 -2.3241703574076684E+01 -2.3235629160274009E+01 + -2.3229489369126338E+01 -2.3223283510662903E+01 -2.3217010887858301E+01 + -2.3210670796564898E+01 -2.3204262525445259E+01 -2.3197785355903488E+01 + -2.3191238562015783E+01 -2.3184621410460945E+01 -2.3177933160450088E+01 + -2.3171173063655765E+01 -2.3164340364141573E+01 -2.3157434298289104E+01 + -2.3150454094725383E+01 -2.3143398974251536E+01 -2.3136268149767346E+01 + -2.3129060826198000E+01 -2.3121776200420360E+01 -2.3114413461185503E+01 + -2.3106971789044987E+01 -2.3099450356273493E+01 -2.3091848326792160E+01 + -2.3084164856091036E+01 -2.3076399091151437E+01 -2.3068550170366105E+01 + -2.3060617223462145E+01 -2.3052599371418925E+01 -2.3044495726389698E+01 + -2.3036305391619745E+01 -2.3028027461364612E+01 -2.3019661020809480E+01 + -2.3011205145984956E+01 -2.3002658903685234E+01 -2.2994021351383829E+01 + -2.2985291537149404E+01 -2.2976468499560863E+01 -2.2967551267622262E+01 + -2.2958538860676541E+01 -2.2949430288319085E+01 -2.2940224550310749E+01 + -2.2930920636490907E+01 -2.2921517526688387E+01 -2.2912014190632437E+01 + -2.2902409587865311E+01 -2.2892702667650536E+01 -2.2882892368883905E+01 + -2.2872977620001425E+01 -2.2862957338889267E+01 -2.2852830432791492E+01 + -2.2842595798216585E+01 -2.2832252320845360E+01 -2.2821798875438073E+01 + -2.2811234325738948E+01 -2.2800557524383105E+01 -2.2789767312800429E+01 + -2.2778862521120789E+01 -2.2767841968078475E+01 -2.2756704460913927E+01 + -2.2745448795279106E+01 -2.2734073755138219E+01 -2.2722578112671282E+01 + -2.2710960628174156E+01 -2.2699220049961781E+01 -2.2687355114267238E+01 + -2.2675364545142710E+01 -2.2663247054359879E+01 -2.2651001341308010E+01 + -2.2638626092895748E+01 -2.2626119983446269E+01 -2.2613481674598166E+01 + -2.2600709815202940E+01 -2.2587803041221612E+01 -2.2574759975623302E+01 + -2.2561579228280969E+01 -2.2548259395868524E+01 -2.2534799061757067E+01 + -2.2521196795910335E+01 -2.2507451154780789E+01 -2.2493560681205562E+01 + -2.2479523904300130E+01 -2.2465339339354880E+01 -2.2451005487727677E+01 + -2.2436520836740534E+01 -2.2421883859572311E+01 -2.2407093015153066E+01 + -2.2392146748058178E+01 -2.2377043488402876E+01 -2.2361781651733423E+01 + -2.2346359638923818E+01 -2.2330775836066984E+01 -2.2315028614368689E+01 + -2.2299116330041411E+01 -2.2283037324196904E+01 -2.2266789922740500E+01 + -2.2250372436263497E+01 -2.2233783159937492E+01 -2.2217020373406754E+01 + -2.2200082340682904E+01 -2.2182967310038503E+01 -2.2165673513899851E+01 + -2.2148199168743087E+01 -2.2130542474986733E+01 -2.2112701616886845E+01 + -2.2094674762432454E+01 -2.2076460063239971E+01 -2.2058055654448694E+01 + -2.2039459654617897E+01 -2.2020670165621080E+01 -2.2001685272544769E+01 + -2.1982503043584920E+01 -2.1963121529944157E+01 -2.1943538765731393E+01 + -2.1923752767859774E+01 -2.1903761535946312E+01 -2.1883563052213002E+01 + -2.1863155281387133E+01 -2.1842536170603420E+01 -2.1821703649306656E+01 + -2.1800655629154924E+01 -2.1779390003924497E+01 -2.1757904649414698E+01 + -2.1736197423355325E+01 -2.1714266165312260E+01 -2.1692108696598446E+01 + -2.1669722820182049E+01 -2.1647106320598240E+01 -2.1624256963861047E+01 + -2.1601172497377437E+01 -2.1577850649863009E+01 -2.1554289131256823E+01 + -2.1530485632641614E+01 -2.1506437826162081E+01 -2.1482143364947252E+01 + -2.1457599883032799E+01 -2.1432804995287384E+01 -2.1407756297337809E+01 + -2.1382451365498500E+01 -2.1356887756704293E+01 -2.1331063008440530E+01 + -2.1304974638679482E+01 -2.1278620145818739E+01 -2.1251997008619743E+01 + -2.1225102686150692E+01 -2.1197934617731612E+01 -2.1170490222881241E+01 + -2.1142766901267517E+01 -2.1114762032661023E+01 -2.1086472976890128E+01 + -2.1057897073800440E+01 -2.1029031643216896E+01 -2.0999873984908199E+01 + -2.0970421378557340E+01 -2.0940671083730500E+01 -2.0910620339856123E+01 + -2.0880266366201571E+01 -2.0849606361857006E+01 -2.0818637505721973E+01 + -2.0787356956497202E+01 -2.0755761852678443E+01 -2.0723849312555885E+01 + -2.0691616434218595E+01 -2.0659060295562139E+01 -2.0626177954301088E+01 + -2.0592966447987546E+01 -2.0559422794032887E+01 -2.0525543989736033E+01 + -2.0491327012315733E+01 -2.0456768818949215E+01 -2.0421866346815765E+01 + -2.0386616513147221E+01 -2.0351016215281021E+01 -2.0315062330724245E+01 + -2.0278751717219855E+01 -2.0242081212819702E+01 -2.0205047635967070E+01 + -2.0167647785582155E+01 -2.0129878441157491E+01 -2.0091736362857372E+01 + -2.0053218291628117E+01 -2.0014320949312847E+01 -1.9975041038775426E+01 + -1.9935375244031313E+01 -1.9895320230388869E+01 -1.9854872644594320E+01 + -1.9814029114990600E+01 -1.9772786251682010E+01 -1.9731140646706343E+01 + -1.9689088874220261E+01 -1.9646627490690758E+01 -1.9603753035097789E+01 + -1.9560462029146418E+01 -1.9516750977488464E+01 -1.9472616367956647E+01 + -1.9428054671805981E+01 -1.9383062343969559E+01 -1.9337635823323428E+01 + -1.9291771532963626E+01 -1.9245465880494809E+01 -1.9198715258329919E+01 + -1.9151516044005337E+01 -1.9103864600504341E+01 -1.9055757276596893E+01 + -1.9007190407190475E+01 -1.8958160313696233E+01 -1.8908663304406637E+01 + -1.8858695674890360E+01 -1.8808253708399054E+01 -1.8757333676289683E+01 + -1.8705931838463346E+01 -1.8654044443816790E+01 -1.8601667730713491E+01 + -1.8548797927467493E+01 -1.8495431252846455E+01 -1.8441563916589068E+01 + -1.8387192119943577E+01 -1.8332312056219735E+01 -1.8276919911362437E+01 + -1.8221011864540969E+01 -1.8164584088760776E+01 -1.8107632751490186E+01 + -1.8050154015310614E+01 -1.7992144038585540E+01 -1.7933598976149405E+01 + -1.7874514980019153E+01 -1.7814888200126152E+01 -1.7754714785070323E+01 + -1.7693990882897310E+01 -1.7632712641898021E+01 -1.7570876211431358E+01 + -1.7508477742771774E+01 -1.7445513389980594E+01 -1.7381979310801459E+01 + -1.7317871667583699E+01 -1.7253186628228569E+01 -1.7187920367164068E+01 + -1.7122069066344881E+01 -1.7055628916283084E+01 -1.6988596117103693E+01 + -1.6920966879629574E+01 -1.6852737426496727E+01 -1.6783903993298377E+01 + -1.6714462829759949E+01 -1.6644410200944350E+01 -1.6573742388489944E+01 + -1.6502455691879394E+01 -1.6430546429741323E+01 -1.6358010941187317E+01 + -1.6284845587180559E+01 -1.6211046751940330E+01 -1.6136610844381192E+01 + -1.6061534299589823E+01 -1.5985813580335536E+01 -1.5909445178621603E+01 + -1.5832425617271198E+01 -1.5754751451554007E+01 -1.5676419270852373E+01 + -1.5597425700366552E+01 -1.5517767402860320E+01 -1.5437441080450078E+01 + -1.5356443476434034E+01 -1.5274771377164907E+01 -1.5192421613968207E+01 + -1.5109391065100933E+01 -1.5025676657759892E+01 -1.4941275370132562E+01 + -1.4856184233496711E+01 -1.4770400334365704E+01 -1.4683920816684710E+01 + -1.4596742884071860E+01 -1.4508863802113966E+01 -1.4420280900708685E+01 + -1.4330991576460438E+01 -1.4240993295127849E+01 -1.4150283594124017E+01 + -1.4058860085070853E+01 -1.3966720456406927E+01 -1.3873862476053811E+01 + -1.3780283994133820E+01 -1.3685982945748679E+01 -1.3590957353815531E+01 + -1.3495205331959276E+01 -1.3398725087466971E+01 -1.3301514924300957E+01 + -1.3203573246174404E+01 -1.3104898559687303E+01 -1.3005489477525950E+01 + -1.2905344721727047E+01 -1.2804463127003878E+01 -1.2702843644139437E+01 + -1.2600485343445454E+01 -1.2497387418286609E+01 -1.2393549188674513E+01 + -1.2288970104928815E+01 -1.2183649751406842E+01 -1.2077587850304294E+01 + -1.1970784265526479E+01 -1.1863239006629641E+01 -1.1754952232836063E+01 + -1.1645924257120654E+01 -1.1536155550371692E+01 -1.1425646745625125E+01 + -1.1314398642375741E+01 -1.1202412210960183E+01 -1.1089688597019169E+01 + -1.0976229126036081E+01 -1.0862035307950368E+01 -1.0747108841852864E+01 + -1.0631451620755779E+01 -1.0515065736442468E+01 -1.0397953484398810E+01 + -1.0280117368821115E+01 -1.0161560107706656E+01 -1.0042284638023560E+01 + -9.9222941209608919E+00 -9.8015919472618922E+00 -9.6801817426370746E+00 + -9.5580673732587336E+00 -9.4352529513384216E+00 -9.3117428407850991E+00 + -9.1875416629455984E+00 -9.0626543024264965E+00 -8.9370859129982350E+00 + -8.8108419235814637E+00 -8.6839280443122657E+00 -8.5563502726916667E+00 + -8.4281148998135578E+00 -8.2992285166746065E+00 -8.1696980205622012E+00 + -8.0395306215238200E+00 -7.9087338489127870E+00 -7.7773155580133340E+00 + -7.6452839367417251E+00 -7.5126475124246239E+00 -7.3794151586504970E+00 + -7.2455961021954076E+00 -7.1111999300227549E+00 -6.9762365963515638E+00 + -6.8407164297958234E+00 -6.7046501405708261E+00 -6.5680488277661322E+00 + -6.4309239866824237E+00 -6.2932875162291353E+00 -6.1551517263838234E+00 + -6.0165293457063633E+00 -5.8774335289102577E+00 -5.7378778644838349E+00 + -5.5978763823616324E+00 -5.4574435616410115E+00 -5.3165943383414893E+00 + -5.1753441132034474E+00 -5.0337087595211756E+00 -4.8917046310081655E+00 + -4.7493485696887241E+00 -4.6066579138130628E+00 -4.4636505057895803E+00 + -4.3203447001306561E+00 -4.1767593714066553E+00 -4.0329139222006196E+00 + -3.8888282910626510E+00 -3.7445229604519104E+00 -3.6000189646638030E+00 + -3.4553378977355127E+00 -3.3105019213213236E+00 -3.1655337725301855E+00 + -3.0204567717203088E+00 -2.8752948302399806E+00 -2.7300724581072466E+00 + -2.5848147716202652E+00 -2.4395475008871341E+00 -2.2942969972671157E+00 + -2.1490902407130670E+00 -2.0039548470035471E+00 -1.8589190748545030E+00 + -1.7140118328962992E+00 -1.5692626865095676E+00 -1.4247018645013254E+00 + -1.2803602656111417E+00 -1.1362694648336760E+00 -9.9246171954270224E-01 + -8.4896997540130670E-01 -7.0582787204403663E-01 -5.6306974851357405E-01 + -4.2073064843591584E-01 -2.7884632491616618E-01 -1.3745324513683280E-01 + 3.4114053604579770E-03 1.4370971872849081E-01 2.8340306122589265E-01 + 4.2245207000484591E-01 5.6081665029996763E-01 6.9845597303969231E-01 + 8.3532847290335066E-01 9.7139184685091151E-01 1.1066030531496849E+00 + 1.2409183109236226E+00 1.3742931002549650E+00 1.5066821628658140E+00 + 1.6380395034093480E+00 1.7683183914010923E+00 1.8974713638231613E+00 + 2.0254502284344498E+00 2.1522060678202251E+00 2.2776892442169339E+00 + 2.4018494051501471E+00 2.5246354899215633E+00 2.6459957369874076E+00 + 2.7658776922660775E+00 2.8842282184193255E+00 3.0009935051496890E+00 + 3.1161190805607260E+00 3.2295498236242555E+00 3.3412299778060550E+00 + 3.4511031658981133E+00 3.5591124061088117E+00 3.6652001294670775E+00 + 3.7693081985916490E+00 3.8713779278866687E+00 3.9713501052204032E+00 + 4.0691650151464236E+00 4.1647624637340126E+00 4.2580818050702787E+00 + 4.3490619694992931E+00 4.4376414936725830E+00 4.5237585524758979E+00 + 4.6073509929110275E+00 4.6883563700063906E+00 4.7667119848339334E+00 + 4.8423549247156581E+00 4.9152221056998204E+00 4.9852503173960159E+00 + 5.0523762702545287E+00 5.1165366453831798E+00 5.1776681469949297E+00 + 5.2357075575827956E+00 5.2905917959220359E+00 5.3422579780023591E+00 + 5.3906434809947887E+00 5.4356860103639955E+00 5.4773236702360046E+00 + 5.5154950371375504E+00 5.5501392372253617E+00 5.5811960271273540E+00 + 5.6086058785215718E+00 5.6323100665804660E+00 5.6522507624156493E+00 + 5.6683711296556849E+00 5.6806154253017089E+00 5.6889291050002875E+00 + 5.6932589328846266E+00 5.6935530961344654E+00 5.6897613244112195E+00 + 5.6818350143281169E+00 5.6697273591205173E+00 5.6533934836850275E+00 + 5.6327905851594702E+00 5.6078780792234451E+00 5.5786177522993903E+00 + 5.5449739198438843E+00 5.5069135909178231E+00 5.4644066392346495E+00 + 5.4174259808856000E+00 5.3659477589507896E+00 5.3099515352044886E+00 + 5.2494204891349048E+00 5.1843416244950866E+00 5.1147059836180420E+00 + 5.0405088697213323E+00 4.9617500774451582E+00 4.8784341318623197E+00 + 4.7905705362110336E+00 4.6981740286035212E+00 4.6012648479711888E+00 + 4.4998690095101193E+00 4.3940185898996553E+00 4.2837520225696952E+00 + 4.1691144032998624E+00 4.0501578064393353E+00 3.9269416120395610E+00 + 3.7995328442035734E+00 3.6680065209555095E+00 3.5324460159413289E+00 + 3.3929434322818723E+00 3.2495999888995568E+00 3.1025264196490014E+00 + 2.9518433855865278E+00 2.7976819007220737E+00 2.6401837715974459E+00 + 2.4795020510471959E+00 2.3158015064967721E+00 2.1492591031677875E+00 + 1.9800645025534003E+00 1.8084205765452441E+00 1.6345439375885027E+00 + 1.4586654852519148E+00 1.2810309696050373E+00 1.1019015717959386E+00 + 9.2155450223216795E-01 7.4028361676832721E-01 5.5840005131129999E-01 + 3.7623287525486837E-01 1.9412976416198510E-01 1.2457692116683029E-02 + -1.6839635583204790E-01 -3.4802465070642491E-01 -5.2599796568484380E-01 + -7.0186480080582325E-01 -8.7515058585556327E-01 -1.0453568610032498E+00 + -1.2119604347495729E+00 -1.3744125187492202E+00 -1.5321378390726668E+00 + -1.6845337234709610E+00 -1.8309691642054133E+00 -1.9707838560150057E+00 + -2.1032872087854839E+00 -2.2277573344965091E+00 -2.3434400080228528E+00 + -2.4495476013707593E+00 -2.5452579909378881E+00 -2.6297134373938058E+00 + -2.7020194377764799E+00 -2.7612435494238388E+00 -2.8064141853553739E+00 + -2.8365193807381175E+00 -2.8505055300816386E+00 -2.8472760948172979E+00 + -2.8256902809366844E+00 -2.7845616863795990E+00 -2.7226569178744198E+00 + -2.6386941769603722E+00 -2.5313418149422047E+00 -2.3992168565424503E+00 + -2.2408834920511853E+00 -2.0548165560722484E+00 -1.8600214756383029E+00 + -1.6757384553879728E+00 -1.5023274861443499E+00 -1.3395644573950320E+00 + -1.1873487736720381E+00 -1.0455664908158055E+00 -9.1408851502525734E-01 + -7.9276862514665558E-01 -6.8144128703103091E-01 -5.7991926783096148E-01 + -4.8799103024291601E-01 -4.0541791996834797E-01 -3.3193113324430551E-01 + -2.6722847962965846E-01 -2.1097095515984274E-01 -1.6277913407309658E-01 + -1.2222942624464980E-01 -8.8850227243123608E-02 -6.2118032267748174E-02 + -4.1453567630264823E-02 -2.6218047031877537E-02 -1.5709653923059778E-02 + -9.1603902852024494E-03 -5.7334480416884447E-03 -4.5213024369412397E-03 + -4.5447364313462692E-03 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 1.7342741990801494E-06 9.4919063772960908E-06 1.6074238500836900E-05 + 2.2023046267565465E-05 2.7645072250862682E-05 3.3012025899627476E-05 + 3.8281855009000234E-05 4.3540758323056848E-05 4.8882389116258939E-05 + 5.4089490266262202E-05 5.9141726849845619E-05 6.4263032912947437E-05 + 6.9362488626541807E-05 7.4448738917023667E-05 7.9546270691695825E-05 + 8.4646362665838633E-05 8.9755738277238033E-05 9.4875781600630126E-05 + 1.0000847004314139E-04 1.0515557896645311E-04 1.1031846838549530E-04 + 1.1549843484931564E-04 1.2069656932886813E-04 1.2591385398461971E-04 + 1.3115116184905063E-04 1.3640927644997629E-04 1.4168890690561368E-04 + 1.4699069760968129E-04 1.5231523827760011E-04 1.5766307134406482E-04 + 1.6303469847426096E-04 1.6843058598132934E-04 1.7385116939681034E-04 + 1.7929685737362030E-04 1.8476803500838376E-04 1.9026506669515619E-04 + 1.9578829858217121E-04 2.0133806069618076E-04 2.0691466878637024E-04 + 2.1251842593039943E-04 2.1814962393809371E-04 2.2380854458222299E-04 + 2.2949546068108494E-04 2.3521063705350266E-04 2.4095433136366213E-04 + 2.4672679487056646E-04 2.5252827309460706E-04 2.5835900641189749E-04 + 2.6421923058547595E-04 2.7010917724120038E-04 2.7602907429506783E-04 + 2.8197914633771903E-04 2.8795961498115293E-04 2.9397069917204758E-04 + 3.0001261547540789E-04 3.0608557833184080E-04 3.1218980029139982E-04 + 3.1832549222648814E-04 3.2449286352601844E-04 3.3069212227280652E-04 + 3.3692347540593238E-04 3.4318712886956731E-04 3.4948328774962360E-04 + 3.5581215639941973E-04 3.6217393855542698E-04 3.6856883744405009E-04 + 3.7499705588026235E-04 3.8145879635888291E-04 3.8795426113914598E-04 + 3.9448365232317204E-04 4.0104717192889920E-04 4.0764502195793600E-04 + 4.1427740445880467E-04 4.2094452158595604E-04 4.2764657565490661E-04 + 4.3438376919384777E-04 4.4115630499198843E-04 4.4796438614491896E-04 + 4.5480821609724742E-04 4.6168799868268588E-04 4.6860393816182508E-04 + 4.7555623925777182E-04 4.8254510718979965E-04 4.8957074770518579E-04 + 4.9663336710935259E-04 5.0373317229444501E-04 5.1087037076648194E-04 + 5.1804517067116000E-04 5.2525778081840180E-04 5.3250841070577397E-04 + 5.3979727054084348E-04 5.4712457126252000E-04 5.5449052456148077E-04 + 5.6189534289974861E-04 5.6933923952946720E-04 5.7682242851093458E-04 + 5.8434512472992832E-04 5.9190754391440074E-04 5.9950990265057605E-04 + 6.0715241839847094E-04 6.1483530950689721E-04 6.2255879522797033E-04 + 6.3032309573116585E-04 6.3812843211694668E-04 6.4597502642998344E-04 + 6.5386310167200661E-04 6.6179288181430682E-04 6.6976459180990446E-04 + 6.7777845760541501E-04 6.8583470615262766E-04 6.9393356541981024E-04 + 7.0207526440276273E-04 7.1026003313563691E-04 7.1848810270153302E-04 + 7.2675970524288980E-04 7.3507507397167814E-04 7.4343444317941185E-04 + 7.5183804824698562E-04 7.6028612565435887E-04 7.6877891299009283E-04 + 7.7731664896072675E-04 7.8589957340003899E-04 7.9452792727819136E-04 + 8.0320195271073758E-04 8.1192189296753852E-04 8.2068799248157139E-04 + 8.2950049685764167E-04 8.3835965288101531E-04 8.4726570852595702E-04 + 8.5621891296419931E-04 8.6521951657334321E-04 8.7426777094517670E-04 + 8.8336392889394502E-04 8.9250824446456152E-04 9.0170097294075841E-04 + 9.1094237085319297E-04 9.2023269598750124E-04 9.2957220739232145E-04 + 9.3896116538726821E-04 9.4839983157086300E-04 9.5788846882845701E-04 + 9.6742734134009907E-04 9.7701671458838221E-04 9.8665685536627502E-04 + 9.9634803178491973E-04 1.0060905132814164E-03 1.0158845706265825E-03 + 1.0257304759326981E-03 1.0356285026612497E-03 1.0455789256306404E-03 + 1.0555820210239031E-03 1.0656380663964090E-03 1.0757473406835583E-03 + 1.0859101242084671E-03 1.0961266986896573E-03 1.1063973472487383E-03 + 1.1167223544180931E-03 1.1271020061485550E-03 1.1375365898170927E-03 + 1.1480263942344980E-03 1.1585717096530765E-03 1.1691728277743391E-03 + 1.1798300417567009E-03 1.1905436462231970E-03 1.2013139372691875E-03 + 1.2121412124700807E-03 1.2230257708890743E-03 1.2339679130848927E-03 + 1.2449679411195365E-03 1.2560261585660574E-03 1.2671428705163296E-03 + 1.2783183835888439E-03 1.2895530059365131E-03 1.3008470472544865E-03 + 1.3122008187879943E-03 1.3236146333401922E-03 1.3350888052800257E-03 + 1.3466236505501191E-03 1.3582194866746766E-03 1.3698766327673961E-03 + 1.3815954095394106E-03 1.3933761393072424E-03 1.4052191460007812E-03 + 1.4171247551712741E-03 1.4290932939993427E-03 1.4411250913030213E-03 + 1.4532204775458111E-03 1.4653797848447560E-03 1.4776033469785421E-03 + 1.4898914993956231E-03 1.5022445792223576E-03 1.5146629252711778E-03 + 1.5271468780487781E-03 1.5396967797643290E-03 1.5523129743377053E-03 + 1.5649958074077531E-03 1.5777456263405673E-03 1.5905627802378021E-03 + 1.6034476199449992E-03 1.6164004980599481E-03 1.6294217689410597E-03 + 1.6425117887157845E-03 1.6556709152890320E-03 1.6688995083516333E-03 + 1.6821979293888275E-03 1.6955665416887613E-03 1.7090057103510312E-03 + 1.7225158022952435E-03 1.7360971862695968E-03 1.7497502328594997E-03 + 1.7634753144962136E-03 1.7772728054655164E-03 1.7911430819163958E-03 + 1.8050865218697746E-03 1.8191035052272614E-03 1.8331944137799181E-03 + 1.8473596312170739E-03 1.8615995431351495E-03 1.8759145370465184E-03 + 1.8903050023883928E-03 1.9047713305317430E-03 1.9193139147902318E-03 + 1.9339331504291920E-03 1.9486294346746232E-03 1.9634031667222192E-03 + 1.9782547477464243E-03 1.9931845809095117E-03 2.0081930713707037E-03 + 2.0232806262953096E-03 2.0384476548638924E-03 2.0536945682814662E-03 + 2.0690217797867329E-03 2.0844297046613220E-03 2.0999187602390866E-03 + 2.1154893659154094E-03 2.1311419431565494E-03 2.1468769155090078E-03 + 2.1626947086089312E-03 2.1785957501915354E-03 2.1945804701005642E-03 + 2.2106493002977800E-03 2.2268026748724691E-03 2.2430410300509946E-03 + 2.2593648042063619E-03 2.2757744378678257E-03 2.2922703737305178E-03 + 2.3088530566651067E-03 2.3255229337274847E-03 2.3422804541684871E-03 + 2.3591260694436384E-03 2.3760602332229255E-03 2.3930834014005988E-03 + 2.4101960321050112E-03 2.4273985857084729E-03 2.4446915248371470E-03 + 2.4620753143809598E-03 2.4795504215035557E-03 2.4971173156522722E-03 + 2.5147764685681351E-03 2.5325283542959034E-03 2.5503734491941206E-03 + 2.5683122319452118E-03 2.5863451835655927E-03 2.6044727874158262E-03 + 2.6226955292107837E-03 2.6410138970298590E-03 2.6594283813271883E-03 + 2.6779394749419168E-03 2.6965476731084753E-03 2.7152534734669049E-03 + 2.7340573760731837E-03 2.7529598834096112E-03 2.7719615003951904E-03 + 2.7910627343960604E-03 2.8102640952359387E-03 2.8295660952066069E-03 + 2.8489692490784118E-03 2.8684740741107924E-03 2.8880810900628467E-03 + 2.9077908192039078E-03 2.9276037863241611E-03 2.9475205187452771E-03 + 2.9675415463310817E-03 2.9876674014982334E-03 3.0078986192269559E-03 + 3.0282357370717645E-03 3.0486792951722411E-03 3.0692298362638188E-03 + 3.0898879056886126E-03 3.1106540514062482E-03 3.1315288240047379E-03 + 3.1525127767113646E-03 3.1736064654036109E-03 3.1948104486200883E-03 + 3.2161252875715072E-03 3.2375515461516690E-03 3.2590897909484714E-03 + 3.2807405912549546E-03 3.3025045190803472E-03 3.3243821491611663E-03 + 3.3463740589723089E-03 3.3684808287381884E-03 3.3907030414438836E-03 + 3.4130412828463079E-03 3.4354961414854081E-03 3.4580682086953860E-03 + 3.4807580786159233E-03 3.5035663482034527E-03 3.5264936172424341E-03 + 3.5495404883566580E-03 3.5727075670205616E-03 3.5959954615705754E-03 + 3.6194047832164848E-03 3.6429361460528038E-03 3.6665901670701879E-03 + 3.6903674661668416E-03 3.7142686661599624E-03 3.7382943927971942E-03 + 3.7624452747681086E-03 3.7867219437156823E-03 3.8111250342478288E-03 + 3.8356551839488977E-03 3.8603130333912427E-03 3.8850992261467653E-03 + 3.9100144087985001E-03 3.9350592309521960E-03 3.9602343452479361E-03 + 3.9855404073717449E-03 4.0109780760672377E-03 4.0365480131472602E-03 + 4.0622508835055629E-03 4.0880873551284646E-03 4.1140580991065575E-03 + 4.1401637896464026E-03 4.1664051040822452E-03 4.1927827228877453E-03 + 4.2192973296877097E-03 4.2459496112698504E-03 4.2727402575965349E-03 + 4.2996699618165655E-03 4.3267394202769448E-03 4.3539493325346797E-03 + 4.3813004013685654E-03 4.4087933327909999E-03 4.4364288360597909E-03 + 4.4642076236899760E-03 4.4921304114656502E-03 4.5201979184518000E-03 + 4.5484108670061398E-03 4.5767699827909515E-03 4.6052759947849383E-03 + 4.6339296352950763E-03 4.6627316399684661E-03 4.6916827478041892E-03 + 4.7207837011651764E-03 4.7500352457900607E-03 4.7794381308050487E-03 + 4.8089931087357748E-03 4.8387009355191852E-03 4.8685623705153717E-03 + 4.8985781765194577E-03 4.9287491197734521E-03 4.9590759699781007E-03 + 4.9895595003047483E-03 5.0202004874071917E-03 5.0509997114335115E-03 + 5.0819579560379335E-03 5.1130760083926471E-03 5.1443546591996465E-03 + 5.1757947027025438E-03 5.2073969366983894E-03 5.2391621625494751E-03 + 5.2710911851951269E-03 5.3031848131635025E-03 5.3354438585833464E-03 + 5.3678691371957703E-03 5.4004614683660027E-03 5.4332216750951207E-03 + 5.4661505840317755E-03 5.4992490254838992E-03 5.5325178334304148E-03 + 5.5659578455328935E-03 5.5995699031472258E-03 5.6333548513352559E-03 + 5.6673135388764229E-03 5.7014468182793425E-03 5.7357555457934048E-03 + 5.7702405814203297E-03 5.8049027889257058E-03 5.8397430358505175E-03 + 5.8747621935226202E-03 5.9099611370682145E-03 5.9453407454232894E-03 + 5.9809019013450371E-03 6.0166454914232260E-03 6.0525724060915727E-03 + 6.0886835396390566E-03 6.1249797902212244E-03 6.1614620598714476E-03 + 6.1981312545121518E-03 6.2349882839660168E-03 6.2720340619671399E-03 + 6.3092695061721556E-03 6.3466955381713238E-03 6.3843130834995787E-03 + 6.4221230716475369E-03 6.4601264360724855E-03 6.4983241142092755E-03 + 6.5367170474812282E-03 6.5753061813109718E-03 6.6140924651312437E-03 + 6.6530768523956228E-03 6.6922603005892421E-03 6.7316437712394307E-03 + 6.7712282299263373E-03 6.8110146462934569E-03 6.8510039940581349E-03 + 6.8911972510220243E-03 6.9315953990814611E-03 6.9721994242378012E-03 + 7.0130103166076967E-03 7.0540290704333066E-03 7.0952566840924531E-03 + 7.1366941601087360E-03 7.1783425051615236E-03 7.2202027300959492E-03 + 7.2622758499327920E-03 7.3045628838783296E-03 7.3470648553340869E-03 + 7.3897827919065240E-03 7.4327177254166652E-03 7.4758706919096597E-03 + 7.5192427316642255E-03 7.5628348892020697E-03 7.6066482132971895E-03 + 7.6506837569851310E-03 7.6949425775721331E-03 7.7394257366441999E-03 + 7.7841343000761027E-03 7.8290693380402877E-03 7.8742319250156758E-03 + 7.9196231397964095E-03 7.9652440655004746E-03 8.0110957895782580E-03 + 8.0571794038210003E-03 8.1034960043691370E-03 8.1500466917205673E-03 + 8.1968325707387994E-03 8.2438547506610248E-03 8.2911143451060553E-03 + 8.3386124720821776E-03 8.3863502539948780E-03 8.4343288176545253E-03 + 8.4825492942838237E-03 8.5310128195252716E-03 8.5797205334484285E-03 + 8.6286735805571248E-03 8.6778731097964870E-03 8.7273202745598959E-03 + 8.7770162326958057E-03 8.8269621465144263E-03 8.8771591827943100E-03 + 8.9276085127887646E-03 8.9783113122321803E-03 9.0292687613461858E-03 + 9.0804820448457287E-03 9.1319523519449216E-03 9.1836808763628586E-03 + 9.2356688163291994E-03 9.2879173745896836E-03 9.3404277584114397E-03 + 9.3932011795881780E-03 9.4462388544452151E-03 9.4995420038443985E-03 + 9.5531118531887831E-03 9.6069496324272374E-03 9.6610565760588320E-03 + 9.7154339231371074E-03 9.7700829172741553E-03 9.8250048066445324E-03 + 9.8802008439890041E-03 9.9356722866181316E-03 9.9914203964156911E-03 + 1.0047446439841855E-02 1.0103751687936287E-02 1.0160337416320966E-02 + 1.0217204905202911E-02 1.0274355439376645E-02 1.0331790308226492E-02 + 1.0389510805728717E-02 1.0447518230453432E-02 1.0505813885566295E-02 + 1.0564399078830061E-02 1.0623275122605866E-02 1.0682443333854366E-02 + 1.0741905034136610E-02 1.0801661549614747E-02 1.0861714211052488E-02 + 1.0922064353815368E-02 1.0982713317870789E-02 1.1043662447787816E-02 + 1.1104913092736776E-02 1.1166466606488604E-02 1.1228324347414002E-02 + 1.1290487678482269E-02 1.1352957967260009E-02 1.1415736585909494E-02 + 1.1478824911186888E-02 1.1542224324440102E-02 1.1605936211606493E-02 + 1.1669961963210268E-02 1.1734302974359664E-02 1.1798960644743802E-02 + 1.1863936378629343E-02 1.1929231584856858E-02 1.1994847676836886E-02 + 1.2060786072545819E-02 1.2127048194521367E-02 1.2193635469857888E-02 + 1.2260549330201306E-02 1.2327791211743874E-02 1.2395362555218500E-02 + 1.2463264805892899E-02 1.2531499413563386E-02 1.2600067832548394E-02 + 1.2668971521681652E-02 1.2738211944305100E-02 1.2807790568261451E-02 + 1.2877708865886486E-02 1.2947968314000967E-02 1.3018570393902263E-02 + 1.3089516591355663E-02 1.3160808396585306E-02 1.3232447304264868E-02 + 1.3304434813507772E-02 1.3376772427857198E-02 1.3449461655275658E-02 + 1.3522504008134264E-02 1.3595901003201601E-02 1.3669654161632272E-02 + 1.3743765008955073E-02 1.3818235075060846E-02 1.3893065894189842E-02 + 1.3968259004918836E-02 1.4043815950147805E-02 1.4119738277086248E-02 + 1.4196027537239059E-02 1.4272685286392091E-02 1.4349713084597268E-02 + 1.4427112496157362E-02 1.4504885089610245E-02 1.4583032437712857E-02 + 1.4661556117424729E-02 1.4740457709891016E-02 1.4819738800425241E-02 + 1.4899400978491477E-02 1.4979445837686203E-02 1.5059874975719648E-02 + 1.5140689994396779E-02 1.5221892499597758E-02 1.5303484101258003E-02 + 1.5385466413347806E-02 1.5467841053851454E-02 1.5550609644745913E-02 + 1.5633773811979033E-02 1.5717335185447299E-02 1.5801295398973115E-02 + 1.5885656090281551E-02 1.5970418900976675E-02 1.6055585476517344E-02 + 1.6141157466192525E-02 1.6227136523096125E-02 1.6313524304101292E-02 + 1.6400322469834215E-02 1.6487532684647390E-02 1.6575156616592462E-02 + 1.6663195937392385E-02 1.6751652322413185E-02 1.6840527450635127E-02 + 1.6929823004623375E-02 1.7019540670498066E-02 1.7109682137903877E-02 + 1.7200249099979008E-02 1.7291243253323641E-02 1.7382666297967787E-02 + 1.7474519937338572E-02 1.7566805878227031E-02 1.7659525830754166E-02 + 1.7752681508336594E-02 1.7846274627651450E-02 1.7940306908600809E-02 + 1.8034780074275399E-02 1.8129695850917865E-02 1.8225055967885227E-02 + 1.8320862157610890E-02 1.8417116155565898E-02 1.8513819700219702E-02 + 1.8610974533000150E-02 1.8708582398252904E-02 1.8806645043200256E-02 + 1.8905164217899246E-02 1.9004141675199097E-02 1.9103579170698031E-02 + 1.9203478462699441E-02 1.9303841312167353E-02 1.9404669482681193E-02 + 1.9505964740389924E-02 1.9607728853965462E-02 1.9709963594555412E-02 + 1.9812670735735113E-02 1.9915852053458930E-02 2.0019509326010886E-02 + 2.0123644333954568E-02 2.0228258860082334E-02 2.0333354689363696E-02 + 2.0438933608893081E-02 2.0544997407836836E-02 2.0651547877379436E-02 + 2.0758586810668962E-02 2.0866116002761836E-02 2.0974137250566811E-02 + 2.1082652352788177E-02 2.1191663109868170E-02 2.1301171323928635E-02 + 2.1411178798711895E-02 2.1521687339520836E-02 2.1632698753158194E-02 + 2.1744214847865029E-02 2.1856237433258409E-02 2.1968768320268287E-02 + 2.2081809321073530E-02 2.2195362249037155E-02 2.2309428918640708E-02 + 2.2424011145417831E-02 2.2539110745887016E-02 2.2654729537483438E-02 + 2.2770869338489971E-02 2.2887531967967365E-02 2.3004719245683584E-02 + 2.3122432992042162E-02 2.3240675028009829E-02 2.3359447175043149E-02 + 2.3478751255014300E-02 2.3598589090136051E-02 2.3718962502885660E-02 + 2.3839873315928045E-02 2.3961323352037944E-02 2.4083314434021234E-02 + 2.4205848384635235E-02 2.4328927026508199E-02 2.4452552182057760E-02 + 2.4576725673408593E-02 2.4701449322308954E-02 2.4826724950046394E-02 + 2.4952554377362497E-02 2.5078939424366686E-02 2.5205881910448976E-02 + 2.5333383654191872E-02 2.5461446473281173E-02 2.5590072184415995E-02 + 2.5719262603217545E-02 2.5849019544137104E-02 2.5979344820363005E-02 + 2.6110240243726459E-02 2.6241707624606612E-02 2.6373748771834342E-02 + 2.6506365492595264E-02 2.6639559592331528E-02 2.6773332874642806E-02 + 2.6907687141186007E-02 2.7042624191574164E-02 2.7178145823274134E-02 + 2.7314253831503429E-02 2.7450950009125792E-02 2.7588236146545850E-02 + 2.7726114031602710E-02 2.7864585449462485E-02 2.8003652182509674E-02 + 2.8143316010237621E-02 2.8283578709137745E-02 2.8424442052587817E-02 + 2.8565907810739099E-02 2.8707977750402392E-02 2.8850653634932999E-02 + 2.8993937224114606E-02 2.9137830274042105E-02 2.9282334537003178E-02 + 2.9427451761358955E-02 2.9573183691423404E-02 2.9719532067341816E-02 + 2.9866498624967829E-02 3.0014085095739738E-02 3.0162293206555356E-02 + 3.0311124679646004E-02 3.0460581232449116E-02 3.0610664577479924E-02 + 3.0761376422201923E-02 3.0912718468896167E-02 3.1064692414529541E-02 + 3.1217299950621721E-02 3.1370542763111076E-02 3.1524422532219501E-02 + 3.1678940932315991E-02 3.1834099631779030E-02 3.1989900292857955E-02 + 3.2146344571533030E-02 3.2303434117374547E-02 3.2461170573400464E-02 + 3.2619555575933219E-02 3.2778590754455085E-02 3.2938277731462615E-02 + 3.3098618122319706E-02 3.3259613535109624E-02 3.3421265570485803E-02 + 3.3583575821521550E-02 3.3746545873558402E-02 3.3910177304053546E-02 + 3.4074471682425861E-02 3.4239430569900905E-02 3.4405055519354757E-02 + 3.4571348075156473E-02 3.4738309773009686E-02 3.4905942139792735E-02 + 3.5074246693397856E-02 3.5243224942568964E-02 3.5412878386738511E-02 + 3.5583208515862989E-02 3.5754216810257367E-02 3.5925904740428255E-02 + 3.6098273766906004E-02 3.6271325340075565E-02 3.6445060900006286E-02 + 3.6619481876280308E-02 3.6794589687820137E-02 3.6970385742714759E-02 + 3.7146871438044730E-02 3.7324048159706177E-02 3.7501917282233420E-02 + 3.7680480168620696E-02 3.7859738170142564E-02 3.8039692626173273E-02 + 3.8220344864004878E-02 3.8401696198664272E-02 3.8583747932729194E-02 + 3.8766501356142874E-02 3.8949957746027712E-02 3.9134118366497855E-02 + 3.9318984468470528E-02 3.9504557289476334E-02 3.9690838053468437E-02 + 3.9877827970630733E-02 4.0065528237184608E-02 4.0253940035195002E-02 + 4.0443064532375131E-02 4.0632902881890171E-02 4.0823456222159993E-02 + 4.1014725676660563E-02 4.1206712353724632E-02 4.1399417346340971E-02 + 4.1592841731953004E-02 4.1786986572255894E-02 4.1981852912993049E-02 + 4.2177441783751324E-02 4.2373754197755298E-02 4.2570791151660528E-02 + 4.2768553625345818E-02 4.2967042581704362E-02 4.3166258966434251E-02 + 4.3366203707827476E-02 4.3566877716558407E-02 4.3768281885471126E-02 + 4.3970417089365811E-02 4.4173284184784216E-02 4.4376884009794219E-02 + 4.4581217383773450E-02 4.4786285107191889E-02 4.4992087961393923E-02 + 4.5198626708379000E-02 4.5405902090581825E-02 4.5613914830651490E-02 + 4.5822665631229845E-02 4.6032155174728993E-02 4.6242384123107862E-02 + 4.6453353117648165E-02 4.6665062778729421E-02 4.6877513705603176E-02 + 4.7090706476166456E-02 4.7304641646734528E-02 4.7519319751812852E-02 + 4.7734741303868386E-02 4.7950906793099941E-02 4.8167816687208119E-02 + 4.8385471431164347E-02 4.8603871446979453E-02 4.8823017133471182E-02 + 4.9042908866031590E-02 4.9263546996393397E-02 4.9484931852395900E-02 + 4.9707063737750315E-02 4.9929942931804396E-02 5.0153569689306655E-02 + 5.0377944240170003E-02 5.0603066789234659E-02 5.0828937516030820E-02 + 5.1055556574540757E-02 5.1282924092960251E-02 5.1511040173459921E-02 + 5.1739904891945708E-02 5.1969518297819373E-02 5.2199880413738069E-02 + 5.2430991235374175E-02 5.2662850731174105E-02 5.2895458842117278E-02 + 5.3128815481474426E-02 5.3362920534565900E-02 5.3597773858519465E-02 + 5.3833375282027862E-02 5.4069724605106180E-02 5.4306821598849205E-02 + 5.4544666005188036E-02 5.4783257536647034E-02 5.5022595876100450E-02 + 5.5262680676528883E-02 5.5503511560775563E-02 5.5745088121302758E-02 + 5.5987409919947877E-02 5.6230476487679641E-02 5.6474287324354437E-02 + 5.6718841898472164E-02 5.6964139646932511E-02 5.7210179974791296E-02 + 5.7456962255016612E-02 5.7704485828245312E-02 5.7952750002539445E-02 + 5.8201754053142929E-02 5.8451497222238587E-02 5.8701978718704750E-02 + 5.8953197717872843E-02 5.9205153361284742E-02 5.9457844756450509E-02 + 5.9711270976606480E-02 5.9965431060473619E-02 6.0220324012016192E-02 + 6.0475948800200831E-02 6.0732304358756220E-02 6.0989389585932613E-02 + 6.1247203344262480E-02 6.1505744460321241E-02 6.1765011724488499E-02 + 6.2025003890710029E-02 6.2285719676260072E-02 6.2547157761504282E-02 + 6.2809316789663533E-02 6.3072195366577793E-02 6.3335792060471255E-02 + 6.3600105401717774E-02 6.3865133882607242E-02 6.4130875957112407E-02 + 6.4397330040656953E-02 6.4664494509883708E-02 6.4932367702424484E-02 + 6.5200947916669846E-02 6.5470233411540582E-02 6.5740222406259499E-02 + 6.6010913080124523E-02 6.6282303572282500E-02 6.6554391981504230E-02 + 6.6827176365960209E-02 6.7100654742997534E-02 6.7374825088918247E-02 + 6.7649685338758037E-02 6.7925233386066597E-02 6.8201467082689038E-02 + 6.8478384238548407E-02 6.8755982621429429E-02 6.9034259956763377E-02 + 6.9313213927414394E-02 6.9592842173467173E-02 6.9873142292015286E-02 + 7.0154111836951805E-02 7.0435748318760497E-02 7.0718049204308950E-02 + 7.1001011916642709E-02 7.1284633834781147E-02 7.1568912293514614E-02 + 7.1853844583203111E-02 7.2139427949576743E-02 7.2425659593537181E-02 + 7.2712536670961225E-02 7.3000056292505666E-02 7.3288215523413844E-02 + 7.3577011383323926E-02 7.3866440846078726E-02 7.4156500839537273E-02 + 7.4447188245388318E-02 7.4738499898965083E-02 7.5030432589062238E-02 + 7.5322983057754520E-02 7.5616148000217223E-02 7.5909924064548329E-02 + 7.6204307851592823E-02 7.6499295914768672E-02 7.6794884759894697E-02 + 7.7091070845020815E-02 7.7387850580259362E-02 7.7685220327619431E-02 + 7.7983176400842374E-02 7.8281715065239996E-02 7.8580832537534298E-02 + 7.8880524985699474E-02 7.9180788528806167E-02 7.9481619236867751E-02 + 7.9783013130688391E-02 8.0084966181713846E-02 8.0387474311884144E-02 + 8.0690533393488501E-02 8.0994139249022448E-02 8.1298287651047310E-02 + 8.1602974322051783E-02 8.1908194934315809E-02 8.2213945109777337E-02 + 8.2520220419900217E-02 8.2827016385545571E-02 8.3134328476845112E-02 + 8.3442152113076734E-02 8.3750482662542619E-02 8.4059315442449878E-02 + 8.4368645718793420E-02 8.4678468706241725E-02 8.4988779568024322E-02 + 8.5299573415822560E-02 8.5610845309662550E-02 8.5922590257810558E-02 + 8.6234803216671277E-02 8.6547479090688426E-02 8.6860612732247960E-02 + 8.7174198941583916E-02 8.7488232466687341E-02 8.7802708003216989E-02 + 8.8117620194413396E-02 8.8432963631015507E-02 8.8748732851179957E-02 + 8.9064922340403002E-02 8.9381526531445321E-02 8.9698539804259694E-02 + 9.0015956485921325E-02 9.0333770850560838E-02 9.0651977119300425E-02 + 9.0970569460192802E-02 9.1289541988162762E-02 9.1608888764951907E-02 + 9.1928603799066227E-02 9.2248681045726658E-02 9.2569114406822348E-02 + 9.2889897730867435E-02 9.3211024812960216E-02 9.3532489394745857E-02 + 9.3854285164381837E-02 9.4176405756506654E-02 9.4498844752211597E-02 + 9.4821595679015561E-02 9.5144652010843156E-02 9.5468007168006144E-02 + 9.5791654517187422E-02 9.6115587371429098E-02 9.6439798990123407E-02 + 9.6764282579006974E-02 9.7089031290158348E-02 9.7414038221999080E-02 + 9.7739296419297961E-02 9.8064798873179287E-02 9.8390538521133442E-02 + 9.8716508247032222E-02 9.9042700881147083E-02 9.9369109200170835E-02 + 9.9695725927243434E-02 1.0002254373198106E-01 1.0034955523050905E-01 + 1.0067675298549840E-01 1.0100412950620674E-01 1.0133167724852180E-01 + 1.0165938861501027E-01 1.0198725595496948E-01 1.0231527156448370E-01 + 1.0264342768648434E-01 1.0297171651081390E-01 1.0330013017429451E-01 + 1.0362866076080078E-01 1.0395730030133607E-01 1.0428604077411406E-01 + 1.0461487410464432E-01 1.0494379216582216E-01 1.0527278677802344E-01 + 1.0560184970920346E-01 1.0593097267500091E-01 1.0626014733884630E-01 + 1.0658936531207576E-01 1.0691861815404875E-01 1.0724789737227154E-01 + 1.0757719442252554E-01 1.0790650070900075E-01 1.0823580758443431E-01 + 1.0856510635025461E-01 1.0889438825673060E-01 1.0922364450312692E-01 + 1.0955286623786402E-01 1.0988204455868460E-01 1.1021117051282563E-01 + 1.1054023509719627E-01 1.1086922925856171E-01 1.1119814389373329E-01 + 1.1152696984976483E-01 1.1185569792415512E-01 1.1218431886505742E-01 + 1.1251282337149469E-01 1.1284120209358231E-01 1.1316944563275708E-01 + 1.1349754454201380E-01 1.1382548932614815E-01 1.1415327044200753E-01 + 1.1448087829874878E-01 1.1480830325810380E-01 1.1513553563465208E-01 + 1.1546256569610189E-01 1.1578938366357880E-01 1.1611597971192250E-01 + 1.1644234396999174E-01 1.1676846652097754E-01 1.1709433740272523E-01 + 1.1741994660806460E-01 1.1774528408514975E-01 1.1807033973780658E-01 + 1.1839510342589071E-01 1.1871956496565389E-01 1.1904371413012015E-01 + 1.1936754064947132E-01 1.1969103421144267E-01 1.2001418446172783E-01 + 1.2033698100439479E-01 1.2065941340231066E-01 1.2098147117757821E-01 + 1.2130314381198211E-01 1.2162442074744609E-01 1.2194529138650094E-01 + 1.2226574509276358E-01 1.2258577119142690E-01 1.2290535896976121E-01 + 1.2322449767762743E-01 1.2354317652800063E-01 1.2386138469750664E-01 + 1.2417911132696960E-01 1.2449634552197178E-01 1.2481307635342528E-01 + 1.2512929285815627E-01 1.2544498403950072E-01 1.2576013886791365E-01 + 1.2607474628158935E-01 1.2638879518709567E-01 1.2670227446001975E-01 + 1.2701517294562703E-01 1.2732747945953260E-01 1.2763918278838565E-01 + 1.2795027169056650E-01 1.2826073489689616E-01 1.2857056111135939E-01 + 1.2887973901183972E-01 1.2918825725086727E-01 1.2949610445638010E-01 + 1.2980326923249730E-01 1.3010974016030449E-01 1.3041550579865263E-01 + 1.3072055468496818E-01 1.3102487533607601E-01 1.3132845624903369E-01 + 1.3163128590197803E-01 1.3193335275498283E-01 1.3223464525092796E-01 + 1.3253515181637959E-01 1.3283486086248078E-01 1.3313376078585265E-01 + 1.3343183996950522E-01 1.3372908678375856E-01 1.3402548958717159E-01 + 1.3432103672748108E-01 1.3461571654254784E-01 1.3490951736131071E-01 + 1.3520242750474754E-01 1.3549443528684230E-01 1.3578552901555854E-01 + 1.3607569699381694E-01 1.3636492752047732E-01 1.3665320889132429E-01 + 1.3694052940005536E-01 1.3722687733927036E-01 1.3751224100146189E-01 + 1.3779660868000518E-01 1.3807996867014685E-01 1.3836230926999116E-01 + 1.3864361878148210E-01 1.3892388551138135E-01 1.3920309777223999E-01 + 1.3948124388336242E-01 1.3975831217176191E-01 1.4003429097310563E-01 + 1.4030916863264861E-01 1.4058293350615370E-01 1.4085557396079765E-01 + 1.4112707837605978E-01 1.4139743514459333E-01 1.4166663267307680E-01 + 1.4193465938304362E-01 1.4220150371168858E-01 1.4246715411264838E-01 + 1.4273159905675553E-01 1.4299482703276326E-01 1.4325682654803795E-01 + 1.4351758612921983E-01 1.4377709432284741E-01 1.4403533969594468E-01 + 1.4429231083656904E-01 1.4454799635431684E-01 1.4480238488078573E-01 + 1.4505546506999029E-01 1.4530722559873016E-01 1.4555765516690639E-01 + 1.4580674249778636E-01 1.4605447633821311E-01 1.4630084545875804E-01 + 1.4654583865381388E-01 1.4678944474162672E-01 1.4703165256426434E-01 + 1.4727245098752004E-01 1.4751182890074713E-01 1.4774977521662613E-01 + 1.4798627887085963E-01 1.4822132882179445E-01 1.4845491404996947E-01 + 1.4868702355758695E-01 1.4891764636790658E-01 1.4914677152456016E-01 + 1.4937438809078715E-01 1.4960048514858756E-01 1.4982505179779421E-01 + 1.5004807715506172E-01 1.5026955035277206E-01 1.5048946053785694E-01 + 1.5070779687053606E-01 1.5092454852297199E-01 1.5113970467784210E-01 + 1.5135325452682655E-01 1.5156518726901541E-01 1.5177549210923461E-01 + 1.5198415825629200E-01 1.5219117492114573E-01 1.5239653131499620E-01 + 1.5260021664730453E-01 1.5280222012373890E-01 1.5300253094405350E-01 + 1.5320113829990020E-01 1.5339803137257946E-01 1.5359319933073240E-01 + 1.5378663132797848E-01 1.5397831650050342E-01 1.5416824396460171E-01 + 1.5435640281417887E-01 1.5454278211821959E-01 1.5472737091822519E-01 + 1.5491015822562934E-01 1.5509113301919558E-01 1.5527028424240522E-01 + 1.5544760080084058E-01 1.5562307155957236E-01 1.5579668534055677E-01 + 1.5596843092005094E-01 1.5613829702605436E-01 1.5630627233578226E-01 + 1.5647234547318165E-01 1.5663650500649573E-01 1.5679873944588615E-01 + 1.5695903724111981E-01 1.5711738677932988E-01 1.5727377638285708E-01 + 1.5742819430718152E-01 1.5758062873894968E-01 1.5773106779410723E-01 + 1.5787949951614244E-01 1.5802591187444870E-01 1.5817029276281164E-01 + 1.5831262999802731E-01 1.5845291131865732E-01 1.5859112438392534E-01 + 1.5872725677276048E-01 1.5886129598298920E-01 1.5899322943068189E-01 + 1.5912304444965300E-01 1.5925072829111858E-01 1.5937626812351066E-01 + 1.5949965103244740E-01 1.5962086402085829E-01 1.5973989400926222E-01 + 1.5985672783619234E-01 1.5997135225876558E-01 1.6008375395338897E-01 + 1.6019391951659612E-01 1.6030183546600471E-01 1.6040748824138651E-01 + 1.6051086420583716E-01 1.6061194964703590E-01 1.6071073077857936E-01 + 1.6080719374137786E-01 1.6090132460509746E-01 1.6099310936963213E-01 + 1.6108253396659003E-01 1.6116958426077557E-01 1.6125424605165178E-01 + 1.6133650507476424E-01 1.6141634700311064E-01 1.6149375744843888E-01 + 1.6156872196246094E-01 1.6164122603796671E-01 1.6171125510982973E-01 + 1.6177879455589475E-01 1.6184382969774516E-01 1.6190634580135002E-01 + 1.6196632807759861E-01 1.6202376168273355E-01 1.6207863171870823E-01 + 1.6213092323349740E-01 1.6218062122140531E-01 1.6222771062342858E-01 + 1.6227217632774513E-01 1.6231400317042077E-01 1.6235317593644349E-01 + 1.6238967936122164E-01 1.6242349813270485E-01 1.6245461689432344E-01 + 1.6248302024897063E-01 1.6250869276429369E-01 1.6253161897960308E-01 + 1.6255178341475654E-01 1.6256917058142925E-01 1.6258376499724089E-01 + 1.6259555120327229E-01 1.6260451378558038E-01 1.6261063740139173E-01 + 1.6261390681073887E-01 1.6261430691439085E-01 1.6261182279902139E-01 + 1.6260643979065023E-01 1.6259814351749266E-01 1.6258691998344676E-01 + 1.6257275565353974E-01 1.6255563755274396E-01 1.6253555337964626E-01 + 1.6251249163651504E-01 1.6248644177734572E-01 1.6245739437547349E-01 + 1.6242534131230757E-01 1.6239027598866326E-01 1.6235219356002056E-01 + 1.6231109119682732E-01 1.6226696837065374E-01 1.6221982716659880E-01 + 1.6216967262181686E-01 1.6211651308936487E-01 1.6206036062574689E-01 + 1.6200123139953815E-01 1.6193914611729426E-01 1.6187413046157054E-01 + 1.6180621553430713E-01 1.6173543829704848E-01 1.6166184199750047E-01 + 1.6158547656978339E-01 1.6150639899346927E-01 1.6142467359414453E-01 + 1.6134037226590719E-01 1.6125357459400250E-01 1.6116436785388452E-01 + 1.6107284686155443E-01 1.6097911364933179E-01 1.6088327694155338E-01 + 1.6078545140642628E-01 1.6068575666376303E-01 1.6058431603399617E-01 + 1.6048125502205365E-01 1.6037669954061651E-01 1.6027077389102565E-01 + 1.6016359853636886E-01 1.6005528771938712E-01 1.5994594699657583E-01 + 1.5983567077749852E-01 1.5972453997268049E-01 1.5961261986209863E-01 + 1.5949995829693048E-01 1.5938658433819577E-01 1.5927250741660007E-01 + 1.5915771706914858E-01 1.5904218327234723E-01 1.5892585735281511E-01 + 1.5880867341839061E-01 1.5869055022077300E-01 1.5857139333795867E-01 + 1.5845109755323908E-01 1.5832954930761481E-01 1.5820662911274011E-01 + 1.5808221382941709E-01 1.5795617873907133E-01 1.5782839935948692E-01 + 1.5769875297878841E-01 1.5756711990138791E-01 1.5743338441535426E-01 + 1.5729743550208983E-01 1.5715916731652574E-01 1.5701847946984021E-01 + 1.5687527714767130E-01 1.5672947109569191E-01 1.5658097750192373E-01 + 1.5642971780186316E-01 1.5627561842883381E-01 1.5611861052829268E-01 + 1.5595862965131652E-01 1.5579561543932582E-01 1.5562951130932443E-01 + 1.5546026414656675E-01 1.5528782400960089E-01 1.5511214385104102E-01 + 1.5493317925615657E-01 1.5475088820038041E-01 1.5456523082609702E-01 + 1.5437616923851713E-01 1.5418366732005662E-01 1.5398769056237013E-01 + 1.5378820591502115E-01 1.5358518164967550E-01 1.5337858723866732E-01 + 1.5316839324678602E-01 1.5295457123516712E-01 1.5273709367621477E-01 + 1.5251593387854992E-01 1.5229106592104247E-01 1.5206246459506290E-01 + 1.5183010535415459E-01 1.5159396427040253E-01 1.5135401799683892E-01 + 1.5111024373528698E-01 1.5086261920910635E-01 1.5061112264035253E-01 + 1.5035573273091363E-01 1.5009642864723138E-01 1.4983319000825238E-01 + 1.4956599687629110E-01 1.4929482975052039E-01 1.4901966956282792E-01 + 1.4874049767581010E-01 1.4845729588269108E-01 1.4817004640897788E-01 + 1.4787873191567924E-01 1.4758333550393266E-01 1.4728384072089817E-01 + 1.4698023156678866E-01 1.4667249250292086E-01 1.4636060846067780E-01 + 1.4604456485128609E-01 1.4572434757631814E-01 1.4539994303883677E-01 + 1.4507133815510698E-01 1.4473852036680734E-01 1.4440147765367684E-01 + 1.4406019854654084E-01 1.4371467214066225E-01 1.4336488810937253E-01 + 1.4301083671793716E-01 1.4265250883761707E-01 1.4228989595989114E-01 + 1.4192299021080668E-01 1.4155178436543131E-01 1.4117627186237872E-01 + 1.4079644681838874E-01 1.4041230404293881E-01 1.4002383905287366E-01 + 1.3963104808703583E-01 1.3923392812088625E-01 1.3883247688110445E-01 + 1.3842669286015996E-01 1.3801657533084841E-01 1.3760212436078800E-01 + 1.3718334082687123E-01 1.3676022642967142E-01 1.3633278370780139E-01 + 1.3590101605222404E-01 1.3546492772051558E-01 1.3502452385108082E-01 + 1.3457981047732345E-01 1.3413079454176996E-01 1.3367748391015052E-01 + 1.3321988738543597E-01 1.3275801472183199E-01 1.3229187663873007E-01 + 1.3182148483461401E-01 1.3134685200092008E-01 1.3086799183584680E-01 + 1.3038491905811056E-01 1.2989764942064089E-01 1.2940619972420533E-01 + 1.2891058783095699E-01 1.2841083267789047E-01 1.2790695429019300E-01 + 1.2739897379447315E-01 1.2688691343184902E-01 1.2637079657087277E-01 + 1.2585064772026749E-01 1.2532649254144873E-01 1.2479835786079845E-01 + 1.2426627168166038E-01 1.2373026319601672E-01 1.2319036279580849E-01 + 1.2264660208385460E-01 1.2209901388432388E-01 1.2154763225271042E-01 + 1.2099249248525974E-01 1.2043363112778943E-01 1.1987108598384721E-01 + 1.1930489612214480E-01 1.1873510188320471E-01 1.1816174488515457E-01 + 1.1758486802860166E-01 1.1700451550051993E-01 1.1642073277707941E-01 + 1.1583356662534676E-01 1.1524306510378848E-01 1.1464927756150498E-01 + 1.1405225463612577E-01 1.1345204825029859E-01 1.1284871160670464E-01 + 1.1224229918153625E-01 1.1163286671637559E-01 1.1102047120841652E-01 + 1.1040517089897489E-01 1.0978702526023940E-01 1.0916609498021765E-01 + 1.0854244194583935E-01 1.0791612922418407E-01 1.0728722104180795E-01 + 1.0665578276215064E-01 1.0602188086101122E-01 1.0538558290008858E-01 + 1.0474695749859213E-01 1.0410607430293456E-01 1.0346300395452743E-01 + 1.0281781805570959E-01 1.0217058913384557E-01 1.0152139060364060E-01 + 1.0087029672772635E-01 1.0021738257558029E-01 9.9562723980847687E-02 + 9.8906397497145568E-02 9.8248480352432263E-02 9.7589050402033944E-02 + 9.6928186080426068E-02 9.6265966351872442E-02 9.5602470660030137E-02 + 9.4937778876633142E-02 9.4271971249369993E-02 9.3605128349076375E-02 + 9.2937331016363506E-02 9.2268660307806852E-02 9.1599197441819616E-02 + 9.0929023744337395E-02 9.0258220594438443E-02 8.9586869370025232E-02 + 8.8915051393690714E-02 8.8242847878889766E-02 8.7570339876536812E-02 + 8.6897608222144984E-02 8.6224733483619642E-02 8.5551795909816666E-02 + 8.4878875379969299E-02 8.4206051354085404E-02 8.3533402824411129E-02 + 8.2861008268050512E-02 8.2188945600829191E-02 8.1517292132480754E-02 + 8.0846124523231630E-02 8.0175518741853566E-02 7.9505550025247687E-02 + 7.8836292839617947E-02 7.8167820843286648E-02 7.7500206851198655E-02 + 7.6833522801155171E-02 7.6167839721813582E-02 7.5503227702483050E-02 + 7.4839755864740912E-02 7.4177492335890105E-02 7.3516504224272194E-02 + 7.2856857596446251E-02 7.2198617456238665E-02 7.1541847725665311E-02 + 7.0886611227721580E-02 7.0232969671034290E-02 6.9580983636362059E-02 + 6.8930712564929497E-02 6.8282214748577597E-02 6.7635547321704681E-02 + 6.6990766254976394E-02 6.6347926350771511E-02 6.5707081240336321E-02 + 6.5068283382608838E-02 6.4431584064679748E-02 6.3797033403847514E-02 + 6.3164680351226909E-02 6.2534572696868254E-02 6.1906757076338227E-02 + 6.1281278978717796E-02 6.0658182755964157E-02 6.0037511633587892E-02 + 5.9419307722589632E-02 5.8803612032604091E-02 5.8190464486193569E-02 + 5.7579903934233435E-02 5.6971968172333340E-02 5.6366693958230796E-02 + 5.5764117030099807E-02 5.5164272125709561E-02 5.4567193002373546E-02 + 5.3972912457622299E-02 5.3381462350538603E-02 5.2792873623687717E-02 + 5.2207176325577975E-02 5.1624399633586636E-02 5.1044571877282285E-02 + 5.0467720562079606E-02 4.9893872393156964E-02 4.9323053299571970E-02 + 4.8755288458506282E-02 4.8190602319572923E-02 4.7629018629120654E-02 + 4.7070560454466531E-02 4.6515250207993609E-02 4.5963109673695213E-02 + 4.5414160022846720E-02 4.4868421845272573E-02 4.4325915169595505E-02 + 4.3786659485691194E-02 4.3250673766630152E-02 4.2717976490049804E-02 + 4.2188585658898575E-02 4.1662518821500273E-02 4.1139793090884391E-02 + 4.0620425163335222E-02 4.0104431336110406E-02 3.9591827524287214E-02 + 3.9082629276693273E-02 3.8576851790884506E-02 3.8074509927136367E-02 + 3.7575618221414912E-02 3.7080190897302669E-02 3.6588241876852674E-02 + 3.6099784790353057E-02 3.5614832984983913E-02 3.5133399532356349E-02 + 3.4655497234924414E-02 3.4181138631266664E-02 3.3710336000238782E-02 + 3.3243101364000341E-02 3.2779446489926804E-02 3.2319382891417919E-02 + 3.1862921827622050E-02 3.1410074302096150E-02 3.0960851060427605E-02 + 3.0515262586847836E-02 3.0073319099869152E-02 2.9635030546983295E-02 + 2.9200406598459613E-02 2.8769456640287946E-02 2.8342189766310224E-02 + 2.7918614769591395E-02 2.7498740133079246E-02 2.7082574019607210E-02 + 2.6670124261295839E-02 2.6261398348408543E-02 2.5856403417721514E-02 + 2.5455146240465541E-02 2.5057633209901446E-02 2.4663870328588234E-02 + 2.4273863195406389E-02 2.3887616992395711E-02 2.3505136471469096E-02 + 2.3126425941062134E-02 2.2751489252776858E-02 2.2380329788078777E-02 + 2.2012950445102548E-02 2.1649353625622932E-02 2.1289541222242921E-02 + 2.0933514605851997E-02 2.0581274613402947E-02 2.0232821536054820E-02 + 1.9888155107727335E-02 1.9547274494108195E-02 1.9210178282154235E-02 + 1.8876864470122549E-02 1.8547330458166943E-02 1.8221573039530752E-02 + 1.7899588392365065E-02 1.7581372072198821E-02 1.7266919005083217E-02 + 1.6956223481431738E-02 1.6649279150572491E-02 1.6346079016028695E-02 + 1.6046615431538451E-02 1.5750880097824247E-02 1.5458864060118335E-02 + 1.5170557706448710E-02 1.4885950766687882E-02 1.4605032312363363E-02 + 1.4327790757228087E-02 1.4054213858585156E-02 1.3784288719360844E-02 + 1.3518001790916384E-02 1.3255338876588583E-02 1.2996285135946485E-02 + 1.2740825089750279E-02 1.2488942625597358E-02 1.2240621004238126E-02 + 1.1995842866544242E-02 1.1754590241109291E-02 1.1516844552462388E-02 + 1.1282586629872941E-02 1.1051796716724710E-02 1.0824454480436676E-02 + 1.0600539022906714E-02 1.0380028891454826E-02 1.0162902090240837E-02 + 9.9491360921324691E-03 9.7387078509981427E-03 9.5315938143998580E-03 + 9.3277699366603774E-03 9.1272116922795129E-03 8.9298940896743104E-03 + 8.7357916852175022E-03 8.5448785975496041E-03 8.3571285221392348E-03 + 8.1725147460675798E-03 7.9910101630121556E-03 7.8125872884064057E-03 + 7.6372182747511830E-03 7.4648749270552163E-03 7.2955287183819684E-03 + 7.1291508054805120E-03 6.9657120444792048E-03 6.8051830066206912E-03 + 6.6475339940182719E-03 6.4927350554133236E-03 6.3407560019149867E-03 + 6.1915664227032213E-03 6.0451357006773955E-03 5.9014330280333146E-03 + 5.7604274217516972E-03 5.6220877389826004E-03 5.4863826923101083E-03 + 5.3532808648830707E-03 5.2227507253976829E-03 5.0947606429187914E-03 + 4.9692789015274340E-03 4.8462737147824727E-03 4.7257132399853565E-03 + 4.6075655922371388E-03 4.4917988582780684E-03 4.3783811101001597E-03 + 4.2672804183243275E-03 4.1584648653337653E-03 4.0519025581562187E-03 + 3.9475616410882932E-03 3.8454103080553322E-03 3.7454168147013208E-03 + 3.6475494902033995E-03 3.5517767488065376E-03 3.4580671010740094E-03 + 3.3663891648502246E-03 3.2767116759326201E-03 3.1890034984499802E-03 + 3.1032336349450505E-03 3.0193712361594894E-03 2.9373856105200302E-03 + 2.8572462333247011E-03 2.7789227556287784E-03 2.7023850128301014E-03 + 2.6276030329541633E-03 2.5545470446393737E-03 2.4831874848234531E-03 + 2.4134950061322278E-03 2.3454404839721929E-03 2.2789950233288408E-03 + 2.2141299652726487E-03 2.1508168931752441E-03 2.0890276386382016E-03 + 2.0287342871373698E-03 1.9699091833857946E-03 1.9125249364183991E-03 + 1.8565544244019947E-03 1.8019707991741283E-03 1.7487474905146809E-03 + 1.6968582101540718E-03 1.6462769555222634E-03 1.5969780132427389E-03 + 1.5489359623758411E-03 1.5021256774159701E-03 1.4565223310471626E-03 + 1.4121013966618017E-03 1.3688386506471252E-03 1.3267101744444526E-03 + 1.2856923563859387E-03 1.2457618933138831E-03 1.2068957919875354E-03 + 1.1690713702824588E-03 1.1322662581875460E-03 1.0964583986047282E-03 + 1.0616260479565586E-03 1.0277477766067332E-03 9.9480246909873331E-04 + 9.6276932421767933E-04 9.3162785488052745E-04 9.0135788785974176E-04 + 8.7193956334548480E-04 8.4335333435144532E-04 8.1557996596928826E-04 + 7.8860053447678605E-04 7.6239642630454357E-04 7.3694933686629732E-04 + 7.1224126925762646E-04 6.8825453282793023E-04 6.6497174163045983E-04 + 6.4237581275510295E-04 6.2044996454862611E-04 5.9917771472694050E-04 + 5.7854287838398038E-04 5.5852956590162893E-04 5.3912218076513860E-04 + 5.2030541728836628E-04 5.0206425825309391E-04 4.8438397246665268E-04 + 4.6725011224193943E-04 4.5064851080390953E-04 4.3456527962648319E-04 + 4.1898680570378748E-04 4.0389974875952242E-04 3.8929103839820784E-04 + 3.7514787120195155E-04 3.6145770777631605E-04 3.4820826974878936E-04 + 3.3538753672325257E-04 3.2298374319379892E-04 3.1098537542113369E-04 + 2.9938116827474569E-04 2.8816010204392201E-04 2.7731139922062322E-04 + 2.6682452125715070E-04 2.5668916530144164E-04 2.4689526091277702E-04 + 2.3743296676057544E-04 2.2829266730890082E-04 2.1946496948920235E-04 + 2.1094069936375659E-04 2.0271089878218397E-04 1.9476682203334623E-04 + 1.8709993249486047E-04 1.7970189928237786E-04 1.7256459390072108E-04 + 1.6568008689888216E-04 1.5904064453083294E-04 1.5263872542400897E-04 + 1.4646697725727946E-04 1.4051823345013066E-04 1.3478550986473437E-04 + 1.2926200152250632E-04 1.2394107933668726E-04 1.1881628686242832E-04 + 1.1388133706578734E-04 1.0913010911299432E-04 1.0455664518127137E-04 + 1.0015514729244714E-04 9.5919974170536422E-05 9.1845638124405881E-05 + 8.7926801956593009E-05 8.4158275899282902E-05 8.0535014578406408E-05 + 7.7052114006759498E-05 7.3704808607004337E-05 7.0488468265353610E-05 + 6.7398595416697413E-05 6.4430822161884341E-05 6.1580907417817878E-05 + 5.8844734100992134E-05 5.6218306345038214E-05 5.3697746752819212E-05 + 5.1279293683561324E-05 4.8959298575476338E-05 4.6734223304284897E-05 + 4.4600637578015286E-05 4.2555216368415306E-05 4.0594737379275578E-05 + 3.8716078551932327E-05 3.6916215608175231E-05 3.5192219630768987E-05 + 3.3541254681842716E-05 3.1960575458560990E-05 3.0447524987288500E-05 + 2.8999532377083439E-05 2.7614110387681814E-05 2.6288852226665966E-05 + 2.5021442200529184E-05 2.3809605147366559E-05 2.2651203303701711E-05 + 2.1544111709372491E-05 2.0486326480331085E-05 1.9475885458632959E-05 + 1.8510894157052068E-05 1.7589523843269117E-05 1.6710009663646752E-05 + 1.5870648806025495E-05 1.5069798701179473E-05 1.4305875262562581E-05 + 1.3577351163965298E-05 1.2882754154694880E-05 1.2220665411883544E-05 + 1.1589717929520533E-05 1.0988594943797932E-05 1.0416028394351372E-05 + 9.8707974209715451E-06 9.3517268953544642E-06 8.8576859874537225E-06 + 8.3875867659910346E-06 7.9403828326766267E-06 7.5150679896859435E-06 + 7.1106749399337964E-06 6.7262740196836413E-06 6.3609719630245993E-06 + 6.0139106977461364E-06 5.6842661721360738E-06 5.3712472122253371E-06 + 5.0740944089996423E-06 4.7920790350962557E-06 4.5245019905020918E-06 + 4.2706927767672895E-06 4.0300084992477275E-06 3.8018328968883098E-06 + 3.5855753990587183E-06 3.3806702089525504E-06 3.1865754130609641E-06 + 3.0027721162322280E-06 2.8287636018288932E-06 2.6640745164955697E-06 + 2.5082500790510126E-06 2.3608553130200985E-06 2.2214743023226141E-06 + 2.0897094696381182E-06 1.9651808769681463E-06 1.8475255479196922E-06 + 1.7363968112367207E-06 1.6314636651093039E-06 1.5324101617935016E-06 + 1.4389348120783533E-06 1.3507500091402774E-06 1.2675814713289355E-06 + 1.1891677034329129E-06 1.1152594759777852E-06 1.0456193221137345E-06 + 9.8002105165462196E-07 9.1824928183520074E-07 8.6009898435835428E-07 + 8.0537504830931405E-07 7.5389185851929758E-07 7.0547288896639394E-07 + 6.5995031080726008E-07 6.1716461463886503E-07 5.7696424659544071E-07 + 5.3920525789177076E-07 5.0375096742999655E-07 4.7047163709333759E-07 + 4.3924415935632204E-07 4.0995175684749887E-07 3.8248369350695210E-07 + 3.5673499698741686E-07 3.3260619195429496E-07 3.1000304394639269E-07 + 2.8883631346582180E-07 2.6902151997207191E-07 2.5047871546193662E-07 + 2.3313226732358293E-07 2.1691065015974295E-07 2.0174624628163139E-07 + 1.8757515458186257E-07 1.7433700750127368E-07 1.6197479581116988E-07 + 1.5043470093912354E-07 1.3966593457300447E-07 1.2962058528447016E-07 + 1.2025347191961790E-07 1.1152200351096366E-07 1.0338604547129394E-07 + 9.5807791836285942E-08 8.8751643329071693E-08 8.2184091026133034E-08 + 7.6073605410073101E-08 7.0390530600877854E-08 6.5106983563292851E-08 + 6.0196758093855567E-08 5.5635233396973214E-08 5.1399287065186522E-08 + 4.7467212284432703E-08 4.3818639090699802E-08 4.0434459509948034E-08 + 3.7296756418569445E-08 3.4388735966947642E-08 3.1694663413880027E-08 + 2.9199802224716951E-08 2.6890356291070020E-08 2.4753415134832908E-08 + 2.2776901964044948E-08 2.0949524452814446E-08 1.9260728122093995E-08 + 1.7700652202575830E-08 1.6260087865339569E-08 1.4930438710147327E-08 + 1.3703683405433506E-08 1.2572340378085799E-08 1.1529434455055725E-08 + 1.0568465362672659E-08 9.6833779932680033E-09 8.8685343523416684E-09 + 8.1186871030274423E-09 7.4289546280330901E-09 6.7947975325505296E-09 + 6.2119965148481023E-09 5.6766315343756221E-09 5.1850622102321999E-09 + 4.7339093857690214E-09 4.3200377979265523E-09 3.9405397926375045E-09 + 3.5927200302673285E-09 3.2740811276122205E-09 2.9823101854342244E-09 + 2.7152661528845147E-09 2.4709679824512967E-09 2.2475835312704440E-09 + 2.0434191667555873E-09 1.8569100365431387E-09 1.6866109647071736E-09 + 1.5311879380823764E-09 1.3894101483411556E-09 1.2601425572063794E-09 + 1.1423389538453837E-09 1.0350354750859443E-09 9.3734456062308976E-10 + 8.4844931684830773E-10 7.6759826433240056E-10 6.9410044533138854E-10 + 6.2732086896373936E-10 5.6667627292841177E-10 5.1163118179884104E-10 + 4.6169424303980355E-10 4.1641482295387415E-10 3.7537984577392092E-10 + 3.3821086007929707E-10 3.0456131762809456E-10 2.7411405056752629E-10 + 2.4657893381107645E-10 2.2169072015600951E-10 1.9920703645990014E-10 + 1.7890652990156383E-10 1.6058715402168070E-10 1.4406458487310124E-10 + 1.2917075821166817E-10 1.1575251922694624E-10 1.0367037684981655E-10 + 9.2797355181904975E-11 8.3017935071557060E-11 7.4227079313832117E-11 + 6.6329335379038057E-11 5.9238009976829258E-11 5.2874410142050505E-11 + 4.7167145885420432E-11 4.2051489787926808E-11 3.7468789233475948E-11 + 3.3365927270928183E-11 2.9694828375142963E-11 2.6412005637971697E-11 + 2.3478146164801315E-11 2.0857731683445617E-11 1.8518691586154123E-11 + 1.6432085802414660E-11 1.4571815228132273E-11 1.2914357362374626E-11 + 1.1438523996166347E-11 1.0125246758872043E-11 8.9573705038208261E-12 + 7.9194292625723830E-12 6.9976873884792639E-12 6.1793995361698421E-12 + 5.4533139859206790E-12 4.8094535057738300E-12 4.2388735209779842E-12 + + + 1.7690283103406063E-15 2.1281060992002549E-06 4.2676391509138583E-06 + 6.4186605121380443E-06 8.5812318693156854E-06 1.0755415240104323E-05 + 1.2941272975153644E-05 1.5138867759894185E-05 1.7348262616333645E-05 + 1.9569520904864861E-05 2.1802706326081532E-05 2.4047882922605452E-05 + 2.6305115080922202E-05 2.8574467533227480E-05 3.0856005359283008E-05 + 3.3149793988282345E-05 3.5455899200727257E-05 3.7774387130313369E-05 + 4.0105324265826216E-05 4.2448777453048023E-05 4.4804813896674008E-05 + 4.7173501162238950E-05 4.9554907178054906E-05 5.1949100237158404E-05 + 5.4356148999268530E-05 5.6776122492755488E-05 5.9209090116619830E-05 + 6.1655121642481751E-05 6.4114287216582240E-05 6.6586657361793121E-05 + 6.9072302979640080E-05 7.1571295352334681E-05 7.4083706144818226E-05 + 7.6609607406816614E-05 7.9149071574905668E-05 8.1702171474588108E-05 + 8.4268980322381229E-05 8.6849571727916347E-05 8.9444019696048875E-05 + 9.2052398628979712E-05 9.4674783328389114E-05 9.7311248997580506E-05 + 9.9961871243636549E-05 1.0262672607958700E-04 1.0530588992658793E-04 + 1.0799943961611218E-04 1.1070745239215260E-04 1.1343000591343585E-04 + 1.1616717825564950E-04 1.1891904791367963E-04 1.2168569380386153E-04 + 1.2446719526624210E-04 1.2726363206685417E-04 1.3007508440000305E-04 + 1.3290163289056604E-04 1.3574335859630330E-04 1.3860034301018179E-04 + 1.4147266806271110E-04 1.4436041612429253E-04 1.4726367000758049E-04 + 1.5018251296985581E-04 1.5311702871541335E-04 1.5606730139796067E-04 + 1.5903341562303116E-04 1.6201545645040848E-04 1.6501350939656590E-04 + 1.6802766043711692E-04 1.7105799600928011E-04 1.7410460301435710E-04 + 1.7716756882022323E-04 1.8024698126383222E-04 1.8334292865373401E-04 + 1.8645549977260614E-04 1.8958478387979866E-04 1.9273087071389249E-04 + 1.9589385049527221E-04 1.9907381392871200E-04 2.0227085220597519E-04 + 2.0548505700842870E-04 2.0871652050967080E-04 2.1196533537817314E-04 + 2.1523159477993697E-04 2.1851539238116349E-04 2.2181682235093871E-04 + 2.2513597936393265E-04 2.2847295860311284E-04 2.3182785576247262E-04 + 2.3520076704977382E-04 2.3859178918930461E-04 2.4200101942465163E-04 + 2.4542855552148662E-04 2.4887449577036948E-04 2.5233893898956509E-04 + 2.5582198452787501E-04 2.5932373226748552E-04 2.6284428262683034E-04 + 2.6638373656346839E-04 2.6994219557697731E-04 2.7351976171186259E-04 + 2.7711653756048196E-04 2.8073262626598596E-04 2.8436813152527359E-04 + 2.8802315759196464E-04 2.9169780927938715E-04 2.9539219196358127E-04 + 2.9910641158631916E-04 3.0284057465814168E-04 3.0659478826140964E-04 + 3.1036916005337378E-04 3.1416379826925902E-04 3.1797881172536678E-04 + 3.2181430982219309E-04 3.2567040254756398E-04 3.2954720047978676E-04 + 3.3344481479081919E-04 3.3736335724945547E-04 3.4130294022452837E-04 + 3.4526367668813023E-04 3.4924568021884889E-04 3.5324906500502364E-04 + 3.5727394584801668E-04 3.6132043816550241E-04 3.6538865799477468E-04 + 3.6947872199607243E-04 3.7359074745592157E-04 3.7772485229049639E-04 + 3.8188115504899739E-04 3.8605977491704873E-04 3.9026083172011300E-04 + 3.9448444592692425E-04 3.9873073865293989E-04 4.0299983166381114E-04 + 4.0729184737887069E-04 4.1160690887464153E-04 4.1594513988836199E-04 + 4.2030666482153155E-04 4.2469160874347494E-04 4.2910009739492450E-04 + 4.3353225719162361E-04 4.3798821522794847E-04 4.4246809928054711E-04 + 4.4697203781200344E-04 4.5150015997451391E-04 4.5605259561358978E-04 + 4.6062947527177582E-04 4.6523093019239025E-04 4.6985709232328428E-04 + 4.7450809432062212E-04 4.7918406955268030E-04 4.8388515210366927E-04 + 4.8861147677757306E-04 4.9336317910201157E-04 4.9814039533212185E-04 + 5.0294326245446143E-04 5.0777191819093221E-04 5.1262650100272538E-04 + 5.1750715009428569E-04 5.2241400541730139E-04 5.2734720767471050E-04 + 5.3230689832473087E-04 5.3729321958491285E-04 5.4230631443621165E-04 + 5.4734632662708225E-04 5.5241340067759632E-04 5.5750768188358188E-04 + 5.6262931632078373E-04 5.6777845084904637E-04 5.7295523311652065E-04 + 5.7815981156389201E-04 5.8339233542862993E-04 5.8865295474926375E-04 + 5.9394182036967720E-04 5.9925908394342870E-04 6.0460489793809477E-04 + 6.0997941563963346E-04 6.1538279115677641E-04 6.2081517942543961E-04 + 6.2627673621315993E-04 6.3176761812355569E-04 6.3728798260080991E-04 + 6.4283798793417831E-04 6.4841779326252206E-04 6.5402755857886204E-04 + 6.5966744473496127E-04 6.6533761344592958E-04 6.7103822729485166E-04 + 6.7676944973744382E-04 6.8253144510673175E-04 6.8832437861775567E-04 + 6.9414841637229863E-04 7.0000372536364300E-04 7.0589047348134910E-04 + 7.1180882951606182E-04 7.1775896316434112E-04 7.2374104503352104E-04 + 7.2975524664659042E-04 7.3580174044710533E-04 7.4188069980412089E-04 + 7.4799229901715625E-04 7.5413671332118172E-04 7.6031411889163417E-04 + 7.6652469284945834E-04 7.7276861326617695E-04 7.7904605916898463E-04 + 7.8535721054587293E-04 7.9170224835078018E-04 7.9808135450876855E-04 + 8.0449471192123203E-04 8.1094250447112670E-04 8.1742491702823533E-04 + 8.2394213545445400E-04 8.3049434660911270E-04 8.3708173835431935E-04 + 8.4370449956033572E-04 8.5036282011097925E-04 8.5705689090905825E-04 + 8.6378690388182904E-04 8.7055305198649100E-04 8.7735552921570188E-04 + 8.8419453060313059E-04 8.9107025222903290E-04 8.9798289122586293E-04 + 9.0493264578390888E-04 9.1191971515696411E-04 9.1894429966802357E-04 + 9.2600660071501457E-04 9.3310682077655757E-04 9.4024516341775246E-04 + 9.4742183329600614E-04 9.5463703616687889E-04 9.6189097888997252E-04 + 9.6918386943484214E-04 9.7651591688694642E-04 9.8388733145362076E-04 + 9.9129832447009342E-04 9.9874910840552235E-04 1.0062398968690737E-03 + 1.0137709046160251E-03 1.0213423475539081E-03 1.0289544427486781E-03 + 1.0366074084309203E-03 1.0443014640020881E-03 1.0520368300407721E-03 + 1.0598137283090077E-03 1.0676323817586111E-03 1.0754930145375529E-03 + 1.0833958519963624E-03 1.0913411206945698E-03 1.0993290484071776E-03 + 1.1073598641311729E-03 1.1154337980920678E-03 1.1235510817504792E-03 + 1.1317119478087424E-03 1.1399166302175591E-03 1.1481653641826806E-03 + 1.1564583861716289E-03 1.1647959339204505E-03 1.1731782464405082E-03 + 1.1816055640253098E-03 1.1900781282573674E-03 1.1985961820151028E-03 + 1.2071599694797803E-03 1.2157697361424847E-03 1.2244257288111253E-03 + 1.2331281956174925E-03 1.2418773860243353E-03 1.2506735508324911E-03 + 1.2595169421880409E-03 1.2684078135895148E-03 1.2773464198951223E-03 + 1.2863330173300345E-03 1.2953678634936940E-03 1.3044512173671714E-03 + 1.3135833393205548E-03 1.3227644911203845E-03 1.3319949359371216E-03 + 1.3412749383526583E-03 1.3506047643678744E-03 1.3599846814102176E-03 + 1.3694149583413453E-03 1.3788958654647886E-03 1.3884276745336674E-03 + 1.3980106587584437E-03 1.4076450928147161E-03 1.4173312528510515E-03 + 1.4270694164968695E-03 1.4368598628703539E-03 1.4467028725864187E-03 + 1.4565987277647067E-03 1.4665477120376403E-03 1.4765501105585049E-03 + 1.4866062100095830E-03 1.4967162986103250E-03 1.5068806661255709E-03 + 1.5170996038738067E-03 1.5273734047354724E-03 1.5377023631613083E-03 + 1.5480867751807481E-03 1.5585269384103589E-03 1.5690231520623175E-03 + 1.5795757169529425E-03 1.5901849355112639E-03 1.6008511117876377E-03 + 1.6115745514624137E-03 1.6223555618546405E-03 1.6331944519308202E-03 + 1.6440915323137119E-03 1.6550471152911744E-03 1.6660615148250647E-03 + 1.6771350465601769E-03 1.6882680278332298E-03 1.6994607776819046E-03 + 1.7107136168539275E-03 1.7220268678162008E-03 1.7334008547639818E-03 + 1.7448359036301131E-03 1.7563323420942975E-03 1.7678904995924222E-03 + 1.7795107073259376E-03 1.7911932982712787E-03 1.8029386071893390E-03 + 1.8147469706349972E-03 1.8266187269666851E-03 1.8385542163560206E-03 + 1.8505537807974749E-03 1.8626177641181032E-03 1.8747465119873215E-03 + 1.8869403719267350E-03 1.8991996933200152E-03 1.9115248274228409E-03 + 1.9239161273728717E-03 1.9363739481997959E-03 1.9488986468354137E-03 + 1.9614905821237825E-03 1.9741501148314126E-03 1.9868776076575182E-03 + 1.9996734252443215E-03 2.0125379341874063E-03 2.0254715030461386E-03 + 2.0384745023541242E-03 2.0515473046297367E-03 2.0646902843866927E-03 + 2.0779038181446851E-03 2.0911882844400669E-03 2.1045440638366043E-03 + 2.1179715389362673E-03 2.1314710943900945E-03 2.1450431169091036E-03 + 2.1586879952752631E-03 2.1724061203525213E-03 2.1861978850978912E-03 + 2.2000636845725978E-03 2.2140039159532754E-03 2.2280189785432378E-03 + 2.2421092737837877E-03 2.2562752052656047E-03 2.2705171787401764E-03 + 2.2848356021313034E-03 2.2992308855466531E-03 2.3137034412893825E-03 + 2.3282536838698125E-03 2.3428820300171729E-03 2.3575888986913994E-03 + 2.3723747110950028E-03 2.3872398906849852E-03 2.4021848631848356E-03 + 2.4172100565965715E-03 2.4323159012128595E-03 2.4475028296291807E-03 + 2.4627712767560771E-03 2.4781216798314483E-03 2.4935544784329198E-03 + 2.5090701144902766E-03 2.5246690322979458E-03 2.5403516785275728E-03 + 2.5561185022406371E-03 2.5719699549011372E-03 2.5879064903883589E-03 + 2.6039285650096885E-03 2.6200366375135108E-03 2.6362311691021469E-03 + 2.6525126234448978E-03 2.6688814666911216E-03 2.6853381674833946E-03 + 2.7018831969707335E-03 2.7185170288218955E-03 2.7352401392387385E-03 + 2.7520530069696514E-03 2.7689561133230562E-03 2.7859499421809758E-03 + 2.8030349800126806E-03 2.8202117158883972E-03 2.8374806414930868E-03 + 2.8548422511403019E-03 2.8722970417861082E-03 2.8898455130430801E-03 + 2.9074881671943718E-03 2.9252255092078500E-03 2.9430580467503151E-03 + 2.9609862902017798E-03 2.9790107526698343E-03 2.9971319500040694E-03 + 3.0153504008105926E-03 3.0336666264666064E-03 3.0520811511350610E-03 + 3.0705945017793878E-03 3.0892072081783006E-03 3.1079198029406859E-03 + 3.1267328215205527E-03 3.1456468022320739E-03 3.1646622862646829E-03 + 3.1837798176982822E-03 3.2029999435184927E-03 3.2223232136320062E-03 + 3.2417501808819972E-03 3.2612814010636328E-03 3.2809174329396472E-03 + 3.3006588382559986E-03 3.3205061817576072E-03 3.3404600312041733E-03 + 3.3605209573860737E-03 3.3806895341403445E-03 3.4009663383667349E-03 + 3.4213519500438444E-03 3.4418469522453556E-03 3.4624519311563322E-03 + 3.4831674760896067E-03 3.5039941795022476E-03 3.5249326370121129E-03 + 3.5459834474144904E-03 3.5671472126988140E-03 3.5884245380654613E-03 + 3.6098160319426561E-03 3.6313223060034298E-03 3.6529439751826894E-03 + 3.6746816576943503E-03 3.6965359750485787E-03 3.7185075520691033E-03 + 3.7405970169106188E-03 3.7628050010762716E-03 3.7851321394352468E-03 + 3.8075790702404313E-03 3.8301464351461643E-03 3.8528348792260850E-03 + 3.8756450509910565E-03 3.8985776024071943E-03 3.9216331889139746E-03 + 3.9448124694424352E-03 3.9681161064334582E-03 3.9915447658561698E-03 + 4.0150991172263921E-03 4.0387798336252280E-03 4.0625875917176908E-03 + 4.0865230717714836E-03 4.1105869576758148E-03 4.1347799369603512E-03 + 4.1591027008142205E-03 4.1835559441051615E-03 4.2081403653987225E-03 + 4.2328566669775644E-03 4.2577055548608826E-03 4.2826877388238878E-03 + 4.3078039324174165E-03 4.3330548529876087E-03 4.3584412216957046E-03 + 4.3839637635379189E-03 4.4096232073654274E-03 4.4354202859044414E-03 + 4.4613557357763905E-03 4.4874302975181747E-03 4.5136447156025649E-03 + 4.5399997384586496E-03 4.5664961184924205E-03 4.5931346121074260E-03 + 4.6199159797255555E-03 4.6468409858078956E-03 4.6739103988757084E-03 + 4.7011249915314976E-03 4.7284855404801738E-03 4.7559928265503417E-03 + 4.7836476347156657E-03 4.8114507541163485E-03 4.8394029780807046E-03 + 4.8675051041468607E-03 4.8957579340845195E-03 4.9241622739168728E-03 + 4.9527189339425666E-03 4.9814287287578288E-03 5.0102924772786554E-03 + 5.0393110027631156E-03 5.0684851328337763E-03 5.0978156995002081E-03 + 5.1273035391816244E-03 5.1569494927295994E-03 5.1867544054509081E-03 + 5.2167191271304779E-03 5.2468445120544350E-03 5.2771314190332621E-03 + 5.3075807114250709E-03 5.3381932571589701E-03 5.3689699287585591E-03 + 5.3999116033655098E-03 5.4310191627632860E-03 5.4622934934009260E-03 + 5.4937354864169957E-03 5.5253460376635984E-03 5.5571260477305321E-03 + 5.5890764219695167E-03 5.6211980705185840E-03 5.6534919083265443E-03 + 5.6859588551775638E-03 5.7185998357158650E-03 5.7514157794705404E-03 + 5.7844076208804799E-03 5.8175762993193866E-03 5.8509227591209438E-03 + 5.8844479496040613E-03 5.9181528250982522E-03 5.9520383449691294E-03 + 5.9861054736439949E-03 6.0203551806375568E-03 6.0547884405777576E-03 + 6.0894062332317303E-03 6.1242095435318448E-03 6.1591993616018732E-03 + 6.1943766827833001E-03 6.2297425076617086E-03 6.2652978420933148E-03 + 6.3010436972315790E-03 6.3369810895539851E-03 6.3731110408888920E-03 + 6.4094345784425173E-03 6.4459527348260433E-03 6.4826665480828246E-03 + 6.5195770617157353E-03 6.5566853247146038E-03 6.5939923915837965E-03 + 6.6314993223698807E-03 6.6692071826894555E-03 6.7071170437570469E-03 + 6.7452299824131614E-03 6.7835470811524190E-03 6.8220694281518560E-03 + 6.8607981172992983E-03 6.8997342482218661E-03 6.9388789263146117E-03 + 6.9782332627692555E-03 7.0177983746030608E-03 7.0575753846878015E-03 + 7.0975654217788680E-03 7.1377696205444886E-03 7.1781891215950645E-03 + 7.2188250715126134E-03 7.2596786228803674E-03 7.3007509343124338E-03 + 7.3420431704836258E-03 7.3835565021593856E-03 7.4252921062258328E-03 + 7.4672511657199181E-03 7.5094348698597248E-03 7.5518444140748502E-03 + 7.5944810000369446E-03 7.6373458356903184E-03 7.6804401352827340E-03 + 7.7237651193962477E-03 7.7673220149782202E-03 7.8111120553724074E-03 + 7.8551364803501889E-03 7.8993965361419238E-03 7.9438934754683856E-03 + 7.9886285575723661E-03 8.0336030482503241E-03 8.0788182198842425E-03 + 8.1242753514735207E-03 8.1699757286670203E-03 8.2159206437952183E-03 + 8.2621113959024817E-03 8.3085492907794562E-03 8.3552356409955595E-03 + 8.4021717659315768E-03 8.4493589918124331E-03 8.4967986517399795E-03 + 8.5444920857260052E-03 8.5924406407252348E-03 8.6406456706685734E-03 + 8.6891085364963604E-03 8.7378306061917654E-03 8.7868132548143390E-03 + 8.8360578645335780E-03 8.8855658246627060E-03 8.9353385316925035E-03 + 8.9853773893252397E-03 9.0356838085087383E-03 9.0862592074705626E-03 + 9.1371050117522567E-03 9.1882226542437558E-03 9.2396135752178289E-03 + 9.2912792223647078E-03 9.3432210508267582E-03 9.3954405232332845E-03 + 9.4479391097353985E-03 9.5007182880410736E-03 9.5537795434501929E-03 + 9.6071243688897832E-03 9.6607542649492818E-03 9.7146707399159704E-03 + 9.7688753098104427E-03 9.8233694984222134E-03 9.8781548373453876E-03 + 9.9332328660144374E-03 9.9886051317401043E-03 1.0044273189745335E-02 + 1.0100238603201353E-02 1.0156502943263788E-02 1.0213067789108930E-02 + 1.0269934727970042E-02 1.0327105355173762E-02 1.0384581274176600E-02 + 1.0442364096601521E-02 1.0500455442274589E-02 1.0558856939261728E-02 + 1.0617570223905500E-02 1.0676596940862043E-02 1.0735938743138024E-02 + 1.0795597292127687E-02 1.0855574257649972E-02 1.0915871317985706E-02 + 1.0976490159914868E-02 1.1037432478753922E-02 1.1098699978393209E-02 + 1.1160294371334393E-02 1.1222217378728012E-02 1.1284470730411045E-02 + 1.1347056164944566E-02 1.1409975429651423E-02 1.1473230280654020E-02 + 1.1536822482912110E-02 1.1600753810260666E-02 1.1665026045447759E-02 + 1.1729640980172568E-02 1.1794600415123311E-02 1.1859906160015346E-02 + 1.1925560033629219E-02 1.1991563863848769E-02 1.2057919487699312E-02 + 1.2124628751385813E-02 1.2191693510331104E-02 1.2259115629214081E-02 + 1.2326896982008041E-02 1.2395039452018917E-02 1.2463544931923601E-02 + 1.2532415323808242E-02 1.2601652539206606E-02 1.2671258499138412E-02 + 1.2741235134147677E-02 1.2811584384341044E-02 1.2882308199426184E-02 + 1.2953408538750105E-02 1.3024887371337522E-02 1.3096746675929149E-02 + 1.3168988441020074E-02 1.3241614664898036E-02 1.3314627355681681E-02 + 1.3388028531358885E-02 1.3461820219824899E-02 1.3536004458920633E-02 + 1.3610583296470760E-02 1.3685558790321880E-02 1.3760933008380530E-02 + 1.3836708028651321E-02 1.3912885939274819E-02 1.3989468838565529E-02 + 1.4066458835049705E-02 1.4143858047503184E-02 1.4221668604989112E-02 + 1.4299892646895566E-02 1.4378532322973118E-02 1.4457589793372366E-02 + 1.4537067228681274E-02 1.4616966809962523E-02 1.4697290728790658E-02 + 1.4778041187289202E-02 1.4859220398167680E-02 1.4940830584758416E-02 + 1.5022873981053319E-02 1.5105352831740495E-02 1.5188269392240718E-02 + 1.5271625928743792E-02 1.5355424718244739E-02 1.5439668048579817E-02 + 1.5524358218462474E-02 1.5609497537519008E-02 1.5695088326324158E-02 + 1.5781132916436451E-02 1.5867633650433411E-02 1.5954592881946571E-02 + 1.6042012975696230E-02 1.6129896307526106E-02 1.6218245264437641E-02 + 1.6307062244624252E-02 1.6396349657505204E-02 1.6486109923759328E-02 + 1.6576345475358467E-02 1.6667058755600699E-02 1.6758252219143257E-02 + 1.6849928332035236E-02 1.6942089571749936E-02 1.7034738427217061E-02 + 1.7127877398854449E-02 1.7221508998599675E-02 1.7315635749941178E-02 + 1.7410260187949226E-02 1.7505384859306392E-02 1.7601012322337857E-02 + 1.7697145147041186E-02 1.7793785915115896E-02 1.7890937219992575E-02 + 1.7988601666861646E-02 1.8086781872701723E-02 1.8185480466307555E-02 + 1.8284700088317649E-02 1.8384443391241331E-02 1.8484713039485491E-02 + 1.8585511709380768E-02 1.8686842089207456E-02 1.8788706879220712E-02 + 1.8891108791675493E-02 1.8994050550850843E-02 1.9097534893073764E-02 + 1.9201564566742574E-02 1.9306142332349657E-02 1.9411270962503724E-02 + 1.9516953241951549E-02 1.9623191967599058E-02 1.9729989948531861E-02 + 1.9837350006035238E-02 1.9945274973613404E-02 2.0053767697008278E-02 + 2.0162831034217499E-02 2.0272467855511834E-02 2.0382681043451905E-02 + 2.0493473492904247E-02 2.0604848111056649E-02 2.0716807817432740E-02 + 2.0829355543905873E-02 2.0942494234712315E-02 2.1056226846463529E-02 + 2.1170556348157787E-02 2.1285485721190937E-02 2.1401017959366362E-02 + 2.1517156068904038E-02 2.1633903068448819E-02 2.1751261989077866E-02 + 2.1869235874306992E-02 2.1987827780096364E-02 2.2107040774855029E-02 + 2.2226877939444657E-02 2.2347342367182197E-02 2.2468437163841615E-02 + 2.2590165447654527E-02 2.2712530349309923E-02 2.2835535011952738E-02 + 2.2959182591181369E-02 2.3083476255044033E-02 2.3208419184034147E-02 + 2.3334014571084374E-02 2.3460265621559697E-02 2.3587175553249039E-02 + 2.3714747596355973E-02 2.3842984993487942E-02 2.3971890999644332E-02 + 2.4101468882203183E-02 2.4231721920906658E-02 2.4362653407845093E-02 + 2.4494266647439738E-02 2.4626564956424055E-02 2.4759551663823525E-02 + 2.4893230110934229E-02 2.5027603651299687E-02 2.5162675650686306E-02 + 2.5298449487057315E-02 2.5434928550545032E-02 2.5572116243421674E-02 + 2.5710015980068380E-02 2.5848631186942625E-02 2.5987965302544068E-02 + 2.6128021777378500E-02 2.6268804073920085E-02 2.6410315666571899E-02 + 2.6552560041624488E-02 2.6695540697212750E-02 2.6839261143270753E-02 + 2.6983724901484794E-02 2.7128935505244259E-02 2.7274896499590810E-02 + 2.7421611441165259E-02 2.7569083898152470E-02 2.7717317450224193E-02 + 2.7866315688479647E-02 2.8016082215384049E-02 2.8166620644704807E-02 + 2.8317934601445410E-02 2.8470027721777209E-02 2.8622903652968660E-02 + 2.8776566053312243E-02 2.8931018592048920E-02 2.9086264949290154E-02 + 2.9242308815937430E-02 2.9399153893599112E-02 2.9556803894504803E-02 + 2.9715262541416890E-02 2.9874533567539687E-02 3.0034620716425417E-02 + 3.0195527741877802E-02 3.0357258407852489E-02 3.0519816488354758E-02 + 3.0683205767334253E-02 3.0847430038576693E-02 3.1012493105592457E-02 + 3.1178398781502335E-02 3.1345150888919801E-02 3.1512753259830266E-02 + 3.1681209735467085E-02 3.1850524166184099E-02 3.2020700411325001E-02 + 3.2191742339089099E-02 3.2363653826393737E-02 3.2536438758732980E-02 + 3.2710101030032981E-02 3.2884644542503415E-02 3.3060073206485345E-02 + 3.3236390940295193E-02 3.3413601670064991E-02 3.3591709329578612E-02 + 3.3770717860104098E-02 3.3950631210221786E-02 3.4131453335648647E-02 + 3.4313188199058105E-02 3.4495839769895849E-02 3.4679412024191177E-02 + 3.4863908944364079E-02 3.5049334519027808E-02 3.5235692742786894E-02 + 3.5422987616030716E-02 3.5611223144722086E-02 3.5800403340181565E-02 + 3.5990532218866486E-02 3.6181613802145351E-02 3.6373652116067211E-02 + 3.6566651191125940E-02 3.6760615062019386E-02 3.6955547767403424E-02 + 3.7151453349640463E-02 3.7348335854542898E-02 3.7546199331110863E-02 + 3.7745047831264533E-02 3.7944885409570708E-02 3.8145716122963871E-02 + 3.8347544030461193E-02 3.8550373192871912E-02 3.8754207672500332E-02 + 3.8959051532843340E-02 3.9164908838281089E-02 3.9371783653761948E-02 + 3.9579680044480751E-02 3.9788602075550829E-02 3.9998553811669321E-02 + 4.0209539316775927E-02 4.0421562653704932E-02 4.0634627883830182E-02 + 4.0848739066703492E-02 4.1063900259685641E-02 4.1280115517570382E-02 + 4.1497388892201122E-02 4.1715724432080312E-02 4.1935126181971309E-02 + 4.2155598182492676E-02 4.2377144469704593E-02 4.2599769074687946E-02 + 4.2823476023114974E-02 4.3048269334812143E-02 4.3274153023314853E-02 + 4.3501131095413835E-02 4.3729207550693198E-02 4.3958386381059970E-02 + 4.4188671570265001E-02 4.4420067093415082E-02 4.4652576916476408E-02 + 4.4886204995768772E-02 4.5120955277450789E-02 4.5356831696995961E-02 + 4.5593838178659120E-02 4.5831978634933726E-02 4.6071256965999237E-02 + 4.6311677059158771E-02 4.6553242788267162E-02 4.6795958013148634E-02 + 4.7039826579004462E-02 4.7284852315810408E-02 4.7531039037703594E-02 + 4.7778390542358933E-02 4.8026910610354773E-02 4.8276603004527699E-02 + 4.8527471469316338E-02 4.8779519730094097E-02 4.9032751492490569E-02 + 4.9287170441701479E-02 4.9542780241787120E-02 4.9799584534959064E-02 + 5.0057586940854951E-02 5.0316791055801342E-02 5.0577200452064243E-02 + 5.0838818677087616E-02 5.1101649252719074E-02 5.1365695674423145E-02 + 5.1630961410481645E-02 5.1897449901181281E-02 5.2165164557987885E-02 + 5.2434108762707689E-02 5.2704285866635017E-02 5.2975699189686219E-02 + 5.3248352019520405E-02 5.3522247610645737E-02 5.3797389183511977E-02 + 5.4073779923588583E-02 5.4351422980428686E-02 5.4630321466718319E-02 + 5.4910478457310979E-02 5.5191896988247210E-02 5.5474580055759455E-02 + 5.5758530615261308E-02 5.6043751580321537E-02 5.6330245821622722E-02 + 5.6618016165903867E-02 5.6907065394887248E-02 5.7197396244189389E-02 + 5.7489011402215573E-02 5.7781913509037858E-02 5.8076105155257018E-02 + 5.8371588880847224E-02 5.8668367173984132E-02 5.8966442469855725E-02 + 5.9265817149456002E-02 5.9566493538361368E-02 5.9868473905489182E-02 + 6.0171760461838614E-02 6.0476355359213967E-02 6.0782260688929377E-02 + 6.1089478480495646E-02 6.1398010700288434E-02 6.1707859250197984E-02 + 6.2019025966260209E-02 6.2331512617268603E-02 6.2645320903367413E-02 + 6.2960452454625143E-02 6.3276908829589307E-02 6.3594691513821036E-02 + 6.3913801918410285E-02 6.4234241378471238E-02 6.4556011151617437E-02 + 6.4879112416417209E-02 6.5203546270828278E-02 6.5529313730612188E-02 + 6.5856415727728296E-02 6.6184853108706782E-02 6.6514626633000895E-02 + 6.6845736971318070E-02 6.7178184703930208E-02 6.7511970318962403E-02 + 6.7847094210660458E-02 6.8183556677636648E-02 6.8521357921094303E-02 + 6.8860498043030266E-02 6.9200977044415565E-02 6.9542794823354293E-02 + 6.9885951173220245E-02 7.0230445780771589E-02 7.0576278224243130E-02 + 7.0923447971416365E-02 7.1271954377666924E-02 7.1621796683989991E-02 + 7.1972974015002675E-02 7.2325485376924015E-02 7.2679329655532240E-02 + 7.3034505614099479E-02 7.3391011891303426E-02 7.3748846999116630E-02 + 7.4108009320672283E-02 7.4468497108108087E-02 7.4830308480386576E-02 + 7.5193441421092744E-02 7.5557893776208945E-02 7.5923663251867043E-02 + 7.6290747412077448E-02 7.6659143676435657E-02 7.7028849317806042E-02 + 7.7399861459982761E-02 7.7772177075328394E-02 7.8145792982389856E-02 + 7.8520705843491911E-02 7.8896912162308361E-02 7.9274408281411080E-02 + 7.9653190379796873E-02 8.0033254470392501E-02 8.0414596397537702E-02 + 8.0797211834447005E-02 8.1181096280649706E-02 8.1566245059408737E-02 + 8.1952653315118598E-02 8.2340316010682368E-02 8.2729227924868420E-02 + 8.3119383649646425E-02 8.3510777587503929E-02 8.3903403948742489E-02 + 8.4297256748755461E-02 8.4692329805285710E-02 8.5088616735665284E-02 + 8.5486110954036673E-02 8.5884805668556025E-02 8.6284693878578969E-02 + 8.6685768371829605E-02 8.7088021721552389E-02 8.7491446283648799E-02 + 8.7896034193797629E-02 8.8301777364560713E-02 8.8708667482474177E-02 + 8.9116696005125506E-02 8.9525854158218038E-02 8.9936132932622051E-02 + 9.0347523081414749E-02 9.0760015116908080E-02 9.1173599307667316E-02 + 9.1588265675518810E-02 9.2004003992549363E-02 9.2420803778097554E-02 + 9.2838654295737483E-02 9.3257544550256630E-02 9.3677463284628101E-02 + 9.4098398976978179E-02 9.4520339837551023E-02 9.4943273805670567E-02 + 9.5367188546701037E-02 9.5792071449007657E-02 9.6217909620917932E-02 + 9.6644689887685167E-02 9.7072398788455611E-02 9.7501022573239948E-02 + 9.7930547199890722E-02 9.8360958331087725E-02 9.8792241331331382E-02 + 9.9224381263946740E-02 9.9657362888099274E-02 1.0009117065582362E-01 + 1.0052578870906763E-01 1.0096120087675263E-01 1.0139739067185176E-01 + 1.0183434128848909E-01 1.0227203559905944E-01 1.0271045615137284E-01 + 1.0314958516582376E-01 1.0358940453258855E-01 1.0402989580885187E-01 + 1.0447104021606513E-01 1.0491281863723879E-01 1.0535521161427006E-01 + 1.0579819934530975E-01 1.0624176168216894E-01 1.0668587812776893E-01 + 1.0713052783363669E-01 1.0757568959744809E-01 1.0802134186062140E-01 + 1.0846746270596469E-01 1.0891402985537799E-01 1.0936102066761516E-01 + 1.0980841213610662E-01 1.1025618088684648E-01 1.1070430317634730E-01 + 1.1115275488966515E-01 1.1160151153849809E-01 1.1205054825936167E-01 + 1.1249983981184435E-01 1.1294936057694593E-01 1.1339908455550347E-01 + 1.1384898536670685E-01 1.1429903624670844E-01 1.1474921004733014E-01 + 1.1519947923487173E-01 1.1564981588902401E-01 1.1610019170189094E-01 + 1.1655057797712437E-01 1.1700094562917585E-01 1.1745126518266910E-01 + 1.1790150677189752E-01 1.1835164014045108E-01 1.1880163464097686E-01 + 1.1925145923507749E-01 1.1970108249335215E-01 1.2015047259558434E-01 + 1.2059959733108185E-01 1.2104842409917246E-01 1.2149691990986086E-01 + 1.2194505138465182E-01 1.2239278475754353E-01 1.2284008587619739E-01 + 1.2328692020328796E-01 1.2373325281803958E-01 1.2417904841795288E-01 + 1.2462427132072892E-01 1.2506888546639397E-01 1.2551285441963150E-01 + 1.2595614137232616E-01 1.2639870914632609E-01 1.2684052019642791E-01 + 1.2728153661359068E-01 1.2772172012838376E-01 1.2816103211467578E-01 + 1.2859943359356762E-01 1.2903688523757806E-01 1.2947334737508540E-01 + 1.2990877999503231E-01 1.3034314275189932E-01 1.3077639497095170E-01 + 1.3120849565376752E-01 1.3163940348404971E-01 1.3206907683373181E-01 + 1.3249747376937901E-01 1.3292455205889317E-01 1.3335026917852605E-01 + 1.3377458232020698E-01 1.3419744839919059E-01 1.3461882406202971E-01 + 1.3503866569487902E-01 1.3545692943213608E-01 1.3587357116542295E-01 + 1.3628854655291542E-01 1.3670181102902437E-01 1.3711331981443417E-01 + 1.3752302792650337E-01 1.3793089019003216E-01 1.3833686124840167E-01 + 1.3874089557508879E-01 1.3914294748556200E-01 1.3954297114956118E-01 + 1.3994092060376584E-01 1.4033674976485558E-01 1.4073041244296572E-01 + 1.4112186235554208E-01 1.4151105314159684E-01 1.4189793837636899E-01 + 1.4228247158639121E-01 1.4266460626496538E-01 1.4304429588804829E-01 + 1.4342149393054868E-01 1.4379615388303668E-01 1.4416822926886663E-01 + 1.4453767366171189E-01 1.4490444070351310E-01 1.4526848412283710E-01 + 1.4562975775364714E-01 1.4598821555448024E-01 1.4634381162803103E-01 + 1.4669650024113842E-01 1.4704623584517035E-01 1.4739297309680449E-01 + 1.4773666687919765E-01 1.4807727232353957E-01 1.4841474483098424E-01 + 1.4874904009495168E-01 1.4908011412379177E-01 1.4940792326380212E-01 + 1.4973242422258953E-01 1.5005357409276504E-01 1.5037133037596070E-01 + 1.5068565100715600E-01 1.5099649437930027E-01 1.5130381936821707E-01 + 1.5160758535777413E-01 1.5190775226530362E-01 1.5220428056725349E-01 + 1.5249713132505277E-01 1.5278626621116889E-01 1.5307164753533770E-01 + 1.5335323827094161E-01 1.5363100208151423E-01 1.5390490334734400E-01 + 1.5417490719215241E-01 1.5444097950981775E-01 1.5470308699111526E-01 + 1.5496119715044304E-01 1.5521527835250193E-01 1.5546529983889454E-01 + 1.5571123175460971E-01 1.5595304517435488E-01 1.5619071212869748E-01 + 1.5642420562997700E-01 1.5665349969794529E-01 1.5687856938509212E-01 + 1.5709939080161270E-01 1.5731594113996877E-01 1.5752819869899859E-01 + 1.5773614290752355E-01 1.5793975434740357E-01 1.5813901477598655E-01 + 1.5833390714789997E-01 1.5852441563612918E-01 1.5871052565232485E-01 + 1.5889222386628341E-01 1.5906949822454047E-01 1.5924233796801723E-01 + 1.5941073364865888E-01 1.5957467714500290E-01 1.5973416167661356E-01 + 1.5988918181732012E-01 1.6003973350719333E-01 1.6018581406319649E-01 + 1.6032742218844581E-01 1.6046455798001544E-01 1.6059722293522294E-01 + 1.6072541995633066E-01 1.6084915335360050E-01 1.6096842884663934E-01 + 1.6108325356397513E-01 1.6119363604080408E-01 1.6129958621485319E-01 + 1.6140111542030314E-01 1.6149823637972130E-01 1.6159096319395763E-01 + 1.6167931132996016E-01 1.6176329760647151E-01 1.6184294017757364E-01 + 1.6191825851405547E-01 1.6198927338258085E-01 1.6205600682264762E-01 + 1.6211848212133209E-01 1.6217672378582645E-01 1.6223075751378499E-01 + 1.6228061016150780E-01 1.6232630971000267E-01 1.6236788522898196E-01 + 1.6240536683886303E-01 1.6243878567086242E-01 1.6246817382528819E-01 + 1.6249356432815878E-01 1.6251499108629552E-01 1.6253248884106231E-01 + 1.6254609312095047E-01 1.6255584019323613E-01 1.6256176701496675E-01 + 1.6256391118356794E-01 1.6256231088739581E-01 1.6255700485660088E-01 + 1.6254803231470838E-01 1.6253543293136802E-01 1.6251924677677115E-01 + 1.6249951427828907E-01 1.6247627617993887E-01 1.6244957350534536E-01 + 1.6241944752493254E-01 1.6238593972814616E-01 1.6234909180158430E-01 + 1.6230894561399356E-01 1.6226554320917178E-01 1.6221892680791308E-01 + 1.6216913882022635E-01 1.6211622186916547E-01 1.6206021882772048E-01 + 1.6200117287034024E-01 1.6193912754078446E-01 1.6187412683814192E-01 + 1.6180621532299477E-01 1.6173543829704848E-01 1.6166184199750047E-01 + 1.6158547656978339E-01 1.6150639899346927E-01 1.6142467359414453E-01 + 1.6134037226590719E-01 1.6125357459400250E-01 1.6116436785388452E-01 + 1.6107284686155443E-01 1.6097911364933179E-01 1.6088327694155338E-01 + 1.6078545140642628E-01 1.6068575666376303E-01 1.6058431603399617E-01 + 1.6048125502205365E-01 1.6037669954061651E-01 1.6027077389102565E-01 + 1.6016359853636886E-01 1.6005528771938712E-01 1.5994594699657583E-01 + 1.5983567077749852E-01 1.5972453997268049E-01 1.5961261986209863E-01 + 1.5949995829693048E-01 1.5938658433819577E-01 1.5927250741660007E-01 + 1.5915771706914858E-01 1.5904218327234723E-01 1.5892585735281511E-01 + 1.5880867341839061E-01 1.5869055022077300E-01 1.5857139333795867E-01 + 1.5845109755323908E-01 1.5832954930761481E-01 1.5820662911274011E-01 + 1.5808221382941709E-01 1.5795617873907133E-01 1.5782839935948692E-01 + 1.5769875297878841E-01 1.5756711990138791E-01 1.5743338441535426E-01 + 1.5729743550208983E-01 1.5715916731652574E-01 1.5701847946984021E-01 + 1.5687527714767130E-01 1.5672947109569191E-01 1.5658097750192373E-01 + 1.5642971780186316E-01 1.5627561842883381E-01 1.5611861052829268E-01 + 1.5595862965131652E-01 1.5579561543932582E-01 1.5562951130932443E-01 + 1.5546026414656675E-01 1.5528782400960089E-01 1.5511214385104102E-01 + 1.5493317925615657E-01 1.5475088820038041E-01 1.5456523082609702E-01 + 1.5437616923851713E-01 1.5418366732005662E-01 1.5398769056237013E-01 + 1.5378820591502115E-01 1.5358518164967550E-01 1.5337858723866732E-01 + 1.5316839324678602E-01 1.5295457123516712E-01 1.5273709367621477E-01 + 1.5251593387854992E-01 1.5229106592104247E-01 1.5206246459506290E-01 + 1.5183010535415459E-01 1.5159396427040253E-01 1.5135401799683892E-01 + 1.5111024373528698E-01 1.5086261920910635E-01 1.5061112264035253E-01 + 1.5035573273091363E-01 1.5009642864723138E-01 1.4983319000825238E-01 + 1.4956599687629110E-01 1.4929482975052039E-01 1.4901966956282792E-01 + 1.4874049767581010E-01 1.4845729588269108E-01 1.4817004640897788E-01 + 1.4787873191567924E-01 1.4758333550393266E-01 1.4728384072089817E-01 + 1.4698023156678866E-01 1.4667249250292086E-01 1.4636060846067780E-01 + 1.4604456485128609E-01 1.4572434757631814E-01 1.4539994303883677E-01 + 1.4507133815510698E-01 1.4473852036680734E-01 1.4440147765367684E-01 + 1.4406019854654084E-01 1.4371467214066225E-01 1.4336488810937253E-01 + 1.4301083671793716E-01 1.4265250883761707E-01 1.4228989595989114E-01 + 1.4192299021080668E-01 1.4155178436543131E-01 1.4117627186237872E-01 + 1.4079644681838874E-01 1.4041230404293881E-01 1.4002383905287366E-01 + 1.3963104808703583E-01 1.3923392812088625E-01 1.3883247688110445E-01 + 1.3842669286015996E-01 1.3801657533084841E-01 1.3760212436078800E-01 + 1.3718334082687123E-01 1.3676022642967142E-01 1.3633278370780139E-01 + 1.3590101605222404E-01 1.3546492772051558E-01 1.3502452385108082E-01 + 1.3457981047732345E-01 1.3413079454176996E-01 1.3367748391015052E-01 + 1.3321988738543597E-01 1.3275801472183199E-01 1.3229187663873007E-01 + 1.3182148483461401E-01 1.3134685200092008E-01 1.3086799183584680E-01 + 1.3038491905811056E-01 1.2989764942064089E-01 1.2940619972420533E-01 + 1.2891058783095699E-01 1.2841083267789047E-01 1.2790695429019300E-01 + 1.2739897379447315E-01 1.2688691343184902E-01 1.2637079657087277E-01 + 1.2585064772026749E-01 1.2532649254144873E-01 1.2479835786079845E-01 + 1.2426627168166038E-01 1.2373026319601672E-01 1.2319036279580849E-01 + 1.2264660208385460E-01 1.2209901388432388E-01 1.2154763225271042E-01 + 1.2099249248525974E-01 1.2043363112778943E-01 1.1987108598384721E-01 + 1.1930489612214480E-01 1.1873510188320471E-01 1.1816174488515457E-01 + 1.1758486802860166E-01 1.1700451550051993E-01 1.1642073277707941E-01 + 1.1583356662534676E-01 1.1524306510378848E-01 1.1464927756150498E-01 + 1.1405225463612577E-01 1.1345204825029859E-01 1.1284871160670464E-01 + 1.1224229918153625E-01 1.1163286671637559E-01 1.1102047120841652E-01 + 1.1040517089897489E-01 1.0978702526023940E-01 1.0916609498021765E-01 + 1.0854244194583935E-01 1.0791612922418407E-01 1.0728722104180795E-01 + 1.0665578276215064E-01 1.0602188086101122E-01 1.0538558290008858E-01 + 1.0474695749859213E-01 1.0410607430293456E-01 1.0346300395452743E-01 + 1.0281781805570959E-01 1.0217058913384557E-01 1.0152139060364060E-01 + 1.0087029672772635E-01 1.0021738257558029E-01 9.9562723980847687E-02 + 9.8906397497145568E-02 9.8248480352432263E-02 9.7589050402033944E-02 + 9.6928186080426068E-02 9.6265966351872442E-02 9.5602470660030137E-02 + 9.4937778876633142E-02 9.4271971249369993E-02 9.3605128349076375E-02 + 9.2937331016363506E-02 9.2268660307806852E-02 9.1599197441819616E-02 + 9.0929023744337395E-02 9.0258220594438443E-02 8.9586869370025232E-02 + 8.8915051393690714E-02 8.8242847878889766E-02 8.7570339876536812E-02 + 8.6897608222144984E-02 8.6224733483619642E-02 8.5551795909816666E-02 + 8.4878875379969299E-02 8.4206051354085404E-02 8.3533402824411129E-02 + 8.2861008268050512E-02 8.2188945600829191E-02 8.1517292132480754E-02 + 8.0846124523231630E-02 8.0175518741853566E-02 7.9505550025247687E-02 + 7.8836292839617947E-02 7.8167820843286648E-02 7.7500206851198655E-02 + 7.6833522801155171E-02 7.6167839721813582E-02 7.5503227702483050E-02 + 7.4839755864740912E-02 7.4177492335890105E-02 7.3516504224272194E-02 + 7.2856857596446251E-02 7.2198617456238665E-02 7.1541847725665311E-02 + 7.0886611227721580E-02 7.0232969671034290E-02 6.9580983636362059E-02 + 6.8930712564929497E-02 6.8282214748577597E-02 6.7635547321704681E-02 + 6.6990766254976394E-02 6.6347926350771511E-02 6.5707081240336321E-02 + 6.5068283382608838E-02 6.4431584064679748E-02 6.3797033403847514E-02 + 6.3164680351226909E-02 6.2534572696868254E-02 6.1906757076338227E-02 + 6.1281278978717796E-02 6.0658182755964157E-02 6.0037511633587892E-02 + 5.9419307722589632E-02 5.8803612032604091E-02 5.8190464486193569E-02 + 5.7579903934233435E-02 5.6971968172333340E-02 5.6366693958230796E-02 + 5.5764117030099807E-02 5.5164272125709561E-02 5.4567193002373546E-02 + 5.3972912457622299E-02 5.3381462350538603E-02 5.2792873623687717E-02 + 5.2207176325577975E-02 5.1624399633586636E-02 5.1044571877282285E-02 + 5.0467720562079606E-02 4.9893872393156964E-02 4.9323053299571970E-02 + 4.8755288458506282E-02 4.8190602319572923E-02 4.7629018629120654E-02 + 4.7070560454466531E-02 4.6515250207993609E-02 4.5963109673695213E-02 + 4.5414160022846720E-02 4.4868421845272573E-02 4.4325915169595505E-02 + 4.3786659485691194E-02 4.3250673766630152E-02 4.2717976490049804E-02 + 4.2188585658898575E-02 4.1662518821500273E-02 4.1139793090884391E-02 + 4.0620425163335222E-02 4.0104431336110406E-02 3.9591827524287214E-02 + 3.9082629276693273E-02 3.8576851790884506E-02 3.8074509927136367E-02 + 3.7575618221414912E-02 3.7080190897302669E-02 3.6588241876852674E-02 + 3.6099784790353057E-02 3.5614832984983913E-02 3.5133399532356349E-02 + 3.4655497234924414E-02 3.4181138631266664E-02 3.3710336000238782E-02 + 3.3243101364000341E-02 3.2779446489926804E-02 3.2319382891417919E-02 + 3.1862921827622050E-02 3.1410074302096150E-02 3.0960851060427605E-02 + 3.0515262586847836E-02 3.0073319099869152E-02 2.9635030546983295E-02 + 2.9200406598459613E-02 2.8769456640287946E-02 2.8342189766310224E-02 + 2.7918614769591395E-02 2.7498740133079246E-02 2.7082574019607210E-02 + 2.6670124261295839E-02 2.6261398348408543E-02 2.5856403417721514E-02 + 2.5455146240465541E-02 2.5057633209901446E-02 2.4663870328588234E-02 + 2.4273863195406389E-02 2.3887616992395711E-02 2.3505136471469096E-02 + 2.3126425941062134E-02 2.2751489252776858E-02 2.2380329788078777E-02 + 2.2012950445102548E-02 2.1649353625622932E-02 2.1289541222242921E-02 + 2.0933514605851997E-02 2.0581274613402947E-02 2.0232821536054820E-02 + 1.9888155107727335E-02 1.9547274494108195E-02 1.9210178282154235E-02 + 1.8876864470122549E-02 1.8547330458166943E-02 1.8221573039530752E-02 + 1.7899588392365065E-02 1.7581372072198821E-02 1.7266919005083217E-02 + 1.6956223481431738E-02 1.6649279150572491E-02 1.6346079016028695E-02 + 1.6046615431538451E-02 1.5750880097824247E-02 1.5458864060118335E-02 + 1.5170557706448710E-02 1.4885950766687882E-02 1.4605032312363363E-02 + 1.4327790757228087E-02 1.4054213858585156E-02 1.3784288719360844E-02 + 1.3518001790916384E-02 1.3255338876588583E-02 1.2996285135946485E-02 + 1.2740825089750279E-02 1.2488942625597358E-02 1.2240621004238126E-02 + 1.1995842866544242E-02 1.1754590241109291E-02 1.1516844552462388E-02 + 1.1282586629872941E-02 1.1051796716724710E-02 1.0824454480436676E-02 + 1.0600539022906714E-02 1.0380028891454826E-02 1.0162902090240837E-02 + 9.9491360921324691E-03 9.7387078509981427E-03 9.5315938143998580E-03 + 9.3277699366603774E-03 9.1272116922795129E-03 8.9298940896743104E-03 + 8.7357916852175022E-03 8.5448785975496041E-03 8.3571285221392348E-03 + 8.1725147460675798E-03 7.9910101630121556E-03 7.8125872884064057E-03 + 7.6372182747511830E-03 7.4648749270552163E-03 7.2955287183819684E-03 + 7.1291508054805120E-03 6.9657120444792048E-03 6.8051830066206912E-03 + 6.6475339940182719E-03 6.4927350554133236E-03 6.3407560019149867E-03 + 6.1915664227032213E-03 6.0451357006773955E-03 5.9014330280333146E-03 + 5.7604274217516972E-03 5.6220877389826004E-03 5.4863826923101083E-03 + 5.3532808648830707E-03 5.2227507253976829E-03 5.0947606429187914E-03 + 4.9692789015274340E-03 4.8462737147824727E-03 4.7257132399853565E-03 + 4.6075655922371388E-03 4.4917988582780684E-03 4.3783811101001597E-03 + 4.2672804183243275E-03 4.1584648653337653E-03 4.0519025581562187E-03 + 3.9475616410882932E-03 3.8454103080553322E-03 3.7454168147013208E-03 + 3.6475494902033995E-03 3.5517767488065376E-03 3.4580671010740094E-03 + 3.3663891648502246E-03 3.2767116759326201E-03 3.1890034984499802E-03 + 3.1032336349450505E-03 3.0193712361594894E-03 2.9373856105200302E-03 + 2.8572462333247011E-03 2.7789227556287784E-03 2.7023850128301014E-03 + 2.6276030329541633E-03 2.5545470446393737E-03 2.4831874848234531E-03 + 2.4134950061322278E-03 2.3454404839721929E-03 2.2789950233288408E-03 + 2.2141299652726487E-03 2.1508168931752441E-03 2.0890276386382016E-03 + 2.0287342871373698E-03 1.9699091833857946E-03 1.9125249364183991E-03 + 1.8565544244019947E-03 1.8019707991741283E-03 1.7487474905146809E-03 + 1.6968582101540718E-03 1.6462769555222634E-03 1.5969780132427389E-03 + 1.5489359623758411E-03 1.5021256774159701E-03 1.4565223310471626E-03 + 1.4121013966618017E-03 1.3688386506471252E-03 1.3267101744444526E-03 + 1.2856923563859387E-03 1.2457618933138831E-03 1.2068957919875354E-03 + 1.1690713702824588E-03 1.1322662581875460E-03 1.0964583986047282E-03 + 1.0616260479565586E-03 1.0277477766067332E-03 9.9480246909873331E-04 + 9.6276932421767933E-04 9.3162785488052745E-04 9.0135788785974176E-04 + 8.7193956334548480E-04 8.4335333435144532E-04 8.1557996596928826E-04 + 7.8860053447678605E-04 7.6239642630454357E-04 7.3694933686629732E-04 + 7.1224126925762646E-04 6.8825453282793023E-04 6.6497174163045983E-04 + 6.4237581275510295E-04 6.2044996454862611E-04 5.9917771472694050E-04 + 5.7854287838398038E-04 5.5852956590162893E-04 5.3912218076513860E-04 + 5.2030541728836628E-04 5.0206425825309391E-04 4.8438397246665268E-04 + 4.6725011224193943E-04 4.5064851080390953E-04 4.3456527962648319E-04 + 4.1898680570378748E-04 4.0389974875952242E-04 3.8929103839820784E-04 + 3.7514787120195155E-04 3.6145770777631605E-04 3.4820826974878936E-04 + 3.3538753672325257E-04 3.2298374319379892E-04 3.1098537542113369E-04 + 2.9938116827474569E-04 2.8816010204392201E-04 2.7731139922062322E-04 + 2.6682452125715070E-04 2.5668916530144164E-04 2.4689526091277702E-04 + 2.3743296676057544E-04 2.2829266730890082E-04 2.1946496948920235E-04 + 2.1094069936375659E-04 2.0271089878218397E-04 1.9476682203334623E-04 + 1.8709993249486047E-04 1.7970189928237786E-04 1.7256459390072108E-04 + 1.6568008689888216E-04 1.5904064453083294E-04 1.5263872542400897E-04 + 1.4646697725727946E-04 1.4051823345013066E-04 1.3478550986473437E-04 + 1.2926200152250632E-04 1.2394107933668726E-04 1.1881628686242832E-04 + 1.1388133706578734E-04 1.0913010911299432E-04 1.0455664518127137E-04 + 1.0015514729244714E-04 9.5919974170536422E-05 9.1845638124405881E-05 + 8.7926801956593009E-05 8.4158275899282902E-05 8.0535014578406408E-05 + 7.7052114006759498E-05 7.3704808607004337E-05 7.0488468265353610E-05 + 6.7398595416697413E-05 6.4430822161884341E-05 6.1580907417817878E-05 + 5.8844734100992134E-05 5.6218306345038214E-05 5.3697746752819212E-05 + 5.1279293683561324E-05 4.8959298575476338E-05 4.6734223304284897E-05 + 4.4600637578015286E-05 4.2555216368415306E-05 4.0594737379275578E-05 + 3.8716078551932327E-05 3.6916215608175231E-05 3.5192219630768987E-05 + 3.3541254681842716E-05 3.1960575458560990E-05 3.0447524987288500E-05 + 2.8999532377083439E-05 2.7614110387681814E-05 2.6288852226665966E-05 + 2.5021442200529184E-05 2.3809605147366559E-05 2.2651203303701711E-05 + 2.1544111709372491E-05 2.0486326480331085E-05 1.9475885458632959E-05 + 1.8510894157052068E-05 1.7589523843269117E-05 1.6710009663646752E-05 + 1.5870648806025495E-05 1.5069798701179473E-05 1.4305875262562581E-05 + 1.3577351163965298E-05 1.2882754154694880E-05 1.2220665411883544E-05 + 1.1589717929520533E-05 1.0988594943797932E-05 1.0416028394351372E-05 + 9.8707974209715451E-06 9.3517268953544642E-06 8.8576859874537225E-06 + 8.3875867659910346E-06 7.9403828326766267E-06 7.5150679896859435E-06 + 7.1106749399337964E-06 6.7262740196836413E-06 6.3609719630245993E-06 + 6.0139106977461364E-06 5.6842661721360738E-06 5.3712472122253371E-06 + 5.0740944089996423E-06 4.7920790350962557E-06 4.5245019905020918E-06 + 4.2706927767672895E-06 4.0300084992477275E-06 3.8018328968883098E-06 + 3.5855753990587183E-06 3.3806702089525504E-06 3.1865754130609641E-06 + 3.0027721162322280E-06 2.8287636018288932E-06 2.6640745164955697E-06 + 2.5082500790510126E-06 2.3608553130200985E-06 2.2214743023226141E-06 + 2.0897094696381182E-06 1.9651808769681463E-06 1.8475255479196922E-06 + 1.7363968112367207E-06 1.6314636651093039E-06 1.5324101617935016E-06 + 1.4389348120783533E-06 1.3507500091402774E-06 1.2675814713289355E-06 + 1.1891677034329129E-06 1.1152594759777852E-06 1.0456193221137345E-06 + 9.8002105165462196E-07 9.1824928183520074E-07 8.6009898435835428E-07 + 8.0537504830931405E-07 7.5389185851929758E-07 7.0547288896639394E-07 + 6.5995031080726008E-07 6.1716461463886503E-07 5.7696424659544071E-07 + 5.3920525789177076E-07 5.0375096742999655E-07 4.7047163709333759E-07 + 4.3924415935632204E-07 4.0995175684749887E-07 3.8248369350695210E-07 + 3.5673499698741686E-07 3.3260619195429496E-07 3.1000304394639269E-07 + 2.8883631346582180E-07 2.6902151997207191E-07 2.5047871546193662E-07 + 2.3313226732358293E-07 2.1691065015974295E-07 2.0174624628163139E-07 + 1.8757515458186257E-07 1.7433700750127368E-07 1.6197479581116988E-07 + 1.5043470093912354E-07 1.3966593457300447E-07 1.2962058528447016E-07 + 1.2025347191961790E-07 1.1152200351096366E-07 1.0338604547129394E-07 + 9.5807791836285942E-08 8.8751643329071693E-08 8.2184091026133034E-08 + 7.6073605410073101E-08 7.0390530600877854E-08 6.5106983563292851E-08 + 6.0196758093855567E-08 5.5635233396973214E-08 5.1399287065186522E-08 + 4.7467212284432703E-08 4.3818639090699802E-08 4.0434459509948034E-08 + 3.7296756418569445E-08 3.4388735966947642E-08 3.1694663413880027E-08 + 2.9199802224716951E-08 2.6890356291070020E-08 2.4753415134832908E-08 + 2.2776901964044948E-08 2.0949524452814446E-08 1.9260728122093995E-08 + 1.7700652202575830E-08 1.6260087865339569E-08 1.4930438710147327E-08 + 1.3703683405433506E-08 1.2572340378085799E-08 1.1529434455055725E-08 + 1.0568465362672659E-08 9.6833779932680033E-09 8.8685343523416684E-09 + 8.1186871030274423E-09 7.4289546280330901E-09 6.7947975325505296E-09 + 6.2119965148481023E-09 5.6766315343756221E-09 5.1850622102321999E-09 + 4.7339093857690214E-09 4.3200377979265523E-09 3.9405397926375045E-09 + 3.5927200302673285E-09 3.2740811276122205E-09 2.9823101854342244E-09 + 2.7152661528845147E-09 2.4709679824512967E-09 2.2475835312704440E-09 + 2.0434191667555873E-09 1.8569100365431387E-09 1.6866109647071736E-09 + 1.5311879380823764E-09 1.3894101483411556E-09 1.2601425572063794E-09 + 1.1423389538453837E-09 1.0350354750859443E-09 9.3734456062308976E-10 + 8.4844931684830773E-10 7.6759826433240056E-10 6.9410044533138854E-10 + 6.2732086896373936E-10 5.6667627292841177E-10 5.1163118179884104E-10 + 4.6169424303980355E-10 4.1641482295387415E-10 3.7537984577392092E-10 + 3.3821086007929707E-10 3.0456131762809456E-10 2.7411405056752629E-10 + 2.4657893381107645E-10 2.2169072015600951E-10 1.9920703645990014E-10 + 1.7890652990156383E-10 1.6058715402168070E-10 1.4406458487310124E-10 + 1.2917075821166817E-10 1.1575251922694624E-10 1.0367037684981655E-10 + 9.2797355181904975E-11 8.3017935071557060E-11 7.4227079313832117E-11 + 6.6329335379038057E-11 5.9238009976829258E-11 5.2874410142050505E-11 + 4.7167145885420432E-11 4.2051489787926808E-11 3.7468789233475948E-11 + 3.3365927270928183E-11 2.9694828375142963E-11 2.6412005637971697E-11 + 2.3478146164801315E-11 2.0857731683445617E-11 1.8518691586154123E-11 + 1.6432085802414660E-11 1.4571815228132273E-11 1.2914357362374626E-11 + 1.1438523996166347E-11 1.0125246758872043E-11 8.9573705038208261E-12 + 7.9194292625723830E-12 6.9976873884792639E-12 6.1793995361698421E-12 + 5.4533139859206790E-12 4.8094535057738300E-12 4.2388735209779842E-12 + + + 2.5477471694845821E-13 3.0657798759328356E-04 6.1480215810579670E-04 + 9.2468135061926204E-04 1.2362244516727872E-03 1.5494403955176397E-03 + 1.8643381643732467E-03 2.1809267886848120E-03 2.4992153473820189E-03 + 2.8192129681394134E-03 3.1409288276379125E-03 3.4643721518279624E-03 + 3.7895522161939033E-03 4.1164783460198905E-03 4.4451599166571596E-03 + 4.7756063537927615E-03 5.1078271337197580E-03 5.4418317836088248E-03 + 5.7776298817812776E-03 6.1152310579837008E-03 6.4546449936639097E-03 + 6.7958814222484152E-03 7.1389501294214638E-03 7.4838609534054641E-03 + 7.8306237852429957E-03 8.1792485690802587E-03 8.5297453024521415E-03 + 8.8821240365686994E-03 9.2363948766033092E-03 9.5925679819821603E-03 + 9.9506535666755557E-03 1.0310661899490576E-02 1.0672603304365386E-02 + 1.1036488160665124E-02 1.1402326903479362E-02 1.1770130023921179E-02 + 1.2139908069427783E-02 1.2511671644062852E-02 1.2885431408820374E-02 + 1.3261198081930136E-02 1.3638982439165021E-02 1.4018795314149660E-02 + 1.4400647598670973E-02 1.4784550242990283E-02 1.5170514256157156E-02 + 1.5558550706324769E-02 1.5948670721067194E-02 1.6340885487698211E-02 + 1.6735206253591914E-02 1.7131644326504946E-02 1.7530211074900621E-02 + 1.7930917928274642E-02 1.8333776377482576E-02 1.8738797975069121E-02 + 1.9145994335599169E-02 1.9555377135990613E-02 1.9966958115848830E-02 + 2.0380749077803174E-02 2.0796761887845072E-02 2.1215008475668103E-02 + 2.1635500835009654E-02 2.2058251023994727E-02 2.2483271165481301E-02 + 2.2910573447407729E-02 2.3340170123141907E-02 2.3772073511832321E-02 + 2.4206295998761031E-02 2.4642850035698469E-02 2.5081748141260192E-02 + 2.5523002901265510E-02 2.5966626969098048E-02 2.6412633066068298E-02 + 2.6861033981777999E-02 2.7311842574486468E-02 2.7765071771479150E-02 + 2.8220734569437678E-02 2.8678844034812453E-02 2.9139413304196712E-02 + 2.9602455584702973E-02 3.0067984154341254E-02 3.0536012362399563E-02 + 3.1006553629826128E-02 3.1479621449613873E-02 3.1955229387186965E-02 + 3.2433391080789270E-02 3.2914120241875060E-02 3.3397430655501700E-02 + 3.3883336180724526E-02 3.4371850750993749E-02 3.4862988374553511E-02 + 3.5356763134842983E-02 3.5853189190900081E-02 3.6352280777766491E-02 + 3.6854052206895707E-02 3.7358517866562697E-02 3.7865692222276023E-02 + 3.8375589817192121E-02 3.8888225272531690E-02 3.9403613287998560E-02 + 3.9921768642200366E-02 4.0442706193072012E-02 4.0966440878301008E-02 + 4.1492987715755103E-02 4.2022361803912542E-02 4.2554578322294208E-02 + 4.3089652531898268E-02 4.3627599775637259E-02 4.4168435478777204E-02 + 4.4712175149379377E-02 4.5258834378744263E-02 4.5808428841858047E-02 + 4.6360974297841182E-02 4.6916486590399716E-02 4.7474981648278819E-02 + 4.8036475485718759E-02 4.8600984202913436E-02 4.9168523986471195E-02 + 4.9739111109878165E-02 5.0312761933964154E-02 5.0889492907370951E-02 + 5.1469320567023261E-02 5.2052261538601707E-02 5.2638332537019238E-02 + 5.3227550366898989E-02 5.3819931923055585E-02 5.4415494190978804E-02 + 5.5014254247319129E-02 5.5616229260377237E-02 5.6221436490594724E-02 + 5.6829893291048372E-02 5.7441617107946624E-02 5.8056625481128929E-02 + 5.8674936044567659E-02 5.9296566526872520E-02 5.9921534751797983E-02 + 6.0549858638753472E-02 6.1181556203315751E-02 6.1816645557744555E-02 + 6.2455144911500879E-02 6.3097072571767832E-02 6.3742446943974324E-02 + 6.4391286532321942E-02 6.5043609940314009E-02 6.5699435871287945E-02 + 6.6358783128950202E-02 6.7021670617914253E-02 6.7688117344241294E-02 + 6.8358142415983911E-02 6.9031765043732540E-02 6.9709004541165256E-02 + 7.0389880325599702E-02 7.1074411918548672E-02 7.1762618946278514E-02 + 7.2454521140370293E-02 7.3150138338283988E-02 7.3849490483925945E-02 + 7.4552597628219003E-02 7.5259479929676104E-02 7.5970157654976445E-02 + 7.6684651179545052E-02 7.7402980988135514E-02 7.8125167675415302E-02 + 7.8851231946554842E-02 7.9581194617819470E-02 8.0315076617164291E-02 + 8.1052898984832686E-02 8.1794682873957594E-02 8.2540449551166267E-02 + 8.3290220397188044E-02 8.4044016907465602E-02 8.4801860692769182E-02 + 8.5563773479814240E-02 8.6329777111882486E-02 8.7099893549446014E-02 + 8.7874144870795007E-02 8.8652553272668341E-02 8.9435141070888138E-02 + 9.0221930700997210E-02 9.1012944718900327E-02 9.1808205801508252E-02 + 9.2607736747385996E-02 9.3411560477403857E-02 9.4219700035392553E-02 + 9.5032178588800975E-02 9.5849019429358265E-02 9.6670245973739216E-02 + 9.7495881764232725E-02 9.8325950469414516E-02 9.9160475884822935E-02 + 9.9999481933638418E-02 1.0084299266736683E-01 1.0169103226652600E-01 + 1.0254362504133639E-01 1.0340079543241523E-01 1.0426256801147403E-01 + 1.0512896748202029E-01 1.0600001868006283E-01 1.0687574657482031E-01 + 1.0775617626943443E-01 1.0864133300168652E-01 1.0953124214471696E-01 + 1.1042592920775075E-01 1.1132541983682437E-01 1.1222973981551802E-01 + 1.1313891506569115E-01 1.1405297164822284E-01 1.1497193576375413E-01 + 1.1589583375343673E-01 1.1682469209968380E-01 1.1775853742692539E-01 + 1.1869739650236855E-01 1.1964129623675970E-01 1.2059026368515346E-01 + 1.2154432604768313E-01 1.2250351067033706E-01 1.2346784504573843E-01 + 1.2443735681392856E-01 1.2541207376315580E-01 1.2639202383066719E-01 + 1.2737723510350515E-01 1.2836773581930822E-01 1.2936355436711586E-01 + 1.3036471928817742E-01 1.3137125927676616E-01 1.3238320318099620E-01 + 1.3340058000364521E-01 1.3442341890298062E-01 1.3545174919359032E-01 + 1.3648560034721824E-01 1.3752500199360329E-01 1.3856998392132389E-01 + 1.3962057607864631E-01 1.4067680857437773E-01 1.4173871167872357E-01 + 1.4280631582414935E-01 1.4387965160624785E-01 1.4495874978460993E-01 + 1.4604364128369954E-01 1.4713435719373560E-01 1.4823092877157543E-01 + 1.4933338744160563E-01 1.5044176479663557E-01 1.5155609259879690E-01 + 1.5267640278044736E-01 1.5380272744507928E-01 1.5493509886823295E-01 + 1.5607354949841457E-01 1.5721811195801974E-01 1.5836881904426112E-01 + 1.5952570373010075E-01 1.6068879916518858E-01 1.6185813867680438E-01 + 1.6303375577080531E-01 1.6421568413257912E-01 1.6540395762800089E-01 + 1.6659861030439638E-01 1.6779967639150878E-01 1.6900719030247216E-01 + 1.7022118663478936E-01 1.7144170017131460E-01 1.7266876588124150E-01 + 1.7390241892109673E-01 1.7514269463573864E-01 1.7638962855936088E-01 + 1.7764325641650117E-01 1.7890361412305619E-01 1.8017073778730103E-01 + 1.8144466371091353E-01 1.8272542839000622E-01 1.8401306851616028E-01 + 1.8530762097746806E-01 1.8660912285957879E-01 1.8791761144675176E-01 + 1.8923312422291297E-01 1.9055569887271856E-01 1.9188537328262417E-01 + 1.9322218554195847E-01 1.9456617394400316E-01 1.9591737698707898E-01 + 1.9727583337563678E-01 1.9864158202135396E-01 2.0001466204423815E-01 + 2.0139511277373470E-01 2.0278297374984150E-01 2.0417828472422822E-01 + 2.0558108566136307E-01 2.0699141673964411E-01 2.0840931835253690E-01 + 2.0983483110971768E-01 2.1126799583822317E-01 2.1270885358360675E-01 + 2.1415744561109892E-01 2.1561381340677452E-01 2.1707799867872785E-01 + 2.1855004335825107E-01 2.2002998960102096E-01 2.2151787978828932E-01 + 2.2301375652808328E-01 2.2451766265640838E-01 2.2602964123845892E-01 + 2.2754973556983604E-01 2.2907798917776998E-01 2.3061444582234999E-01 + 2.3215914949776040E-01 2.3371214443352267E-01 2.3527347509574406E-01 + 2.3684318618837305E-01 2.3842132265446112E-01 2.4000792967743120E-01 + 2.4160305268235133E-01 2.4320673733721765E-01 2.4481902955424051E-01 + 2.4643997549114097E-01 2.4806962155245052E-01 2.4970801439082033E-01 + 2.5135520090833496E-01 2.5301122825783412E-01 2.5467614384424192E-01 + 2.5634999532590047E-01 2.5803283061591259E-01 2.5972469788349106E-01 + 2.6142564555531439E-01 2.6313572231688886E-01 2.6485497711391881E-01 + 2.6658345915368392E-01 2.6832121790642183E-01 2.7006830310672014E-01 + 2.7182476475491429E-01 2.7359065311849234E-01 2.7536601873350852E-01 + 2.7715091240600076E-01 2.7894538521341927E-01 2.8074948850606141E-01 + 2.8256327390851055E-01 2.8438679332108746E-01 2.8622009892130468E-01 + 2.8806324316533194E-01 2.8991627878946508E-01 2.9177925881160743E-01 + 2.9365223653275274E-01 2.9553526553848158E-01 2.9742839970046075E-01 + 2.9933169317795344E-01 3.0124520041933445E-01 3.0316897616361510E-01 + 3.0510307544197574E-01 3.0704755357930436E-01 3.0900246619574384E-01 + 3.1096786920824909E-01 3.1294381883214772E-01 3.1493037158271286E-01 + 3.1692758427674145E-01 3.1893551403414139E-01 3.2095421827952553E-01 + 3.2298375474381602E-01 3.2502418146585449E-01 3.2707555679402062E-01 + 3.2913793938786090E-01 3.3121138821972190E-01 3.3329596257639621E-01 + 3.3539172206077184E-01 3.3749872659349461E-01 3.3961703641463464E-01 + 3.4174671208536334E-01 3.4388781448964040E-01 3.4604040483590448E-01 + 3.4820454465877720E-01 3.5038029582077229E-01 3.5256772051401541E-01 + 3.5476688126197109E-01 3.5697784092117918E-01 3.5920066268299883E-01 + 3.6143541007536228E-01 3.6368214696453660E-01 3.6594093755689505E-01 + 3.6821184640069554E-01 3.7049493838786884E-01 3.7279027875581727E-01 + 3.7509793308921896E-01 3.7741796732184246E-01 3.7975044773837241E-01 + 3.8209544097624015E-01 3.8445301402746623E-01 3.8682323424051213E-01 + 3.8920616932213797E-01 3.9160188733927259E-01 3.9401045672089213E-01 + 3.9643194625990552E-01 3.9886642511505327E-01 4.0131396281281051E-01 + 4.0377462924930368E-01 4.0624849469223290E-01 4.0873562978280881E-01 + 4.1123610553769085E-01 4.1374999335094420E-01 4.1627736499599810E-01 + 4.1881829262761838E-01 4.2137284878388809E-01 4.2394110638819898E-01 + 4.2652313875124859E-01 4.2911901957305143E-01 4.3172882294495857E-01 + 4.3435262335168501E-01 4.3699049567334963E-01 4.3964251518752073E-01 + 4.4230875757127858E-01 4.4498929890327726E-01 4.4768421566582706E-01 + 4.5039358474698038E-01 4.5311748344262892E-01 4.5585598945861006E-01 + 4.5860918091282582E-01 4.6137713633736954E-01 4.6415993468066269E-01 + 4.6695765530960209E-01 4.6977037801171828E-01 4.7259818299734230E-01 + 4.7544115090178379E-01 4.7829936278751867E-01 4.8117290014638620E-01 + 4.8406184490179921E-01 4.8696627941096204E-01 4.8988628646709781E-01 + 4.9282194930168965E-01 4.9577335158672997E-01 4.9874057743697919E-01 + 5.0172371141223804E-01 5.0472283851962418E-01 5.0773804421586965E-01 + 5.1076941440961843E-01 5.1381703546373880E-01 5.1688099419764755E-01 + 5.1996137788964225E-01 5.2305827427924778E-01 5.2617177156956640E-01 + 5.2930195842964634E-01 5.3244892399685806E-01 5.3561275787927853E-01 + 5.3879355015809083E-01 5.4199139138998931E-01 5.4520637260960358E-01 + 5.4843858533192114E-01 5.5168812155473479E-01 5.5495507376109032E-01 + 5.5823953492174749E-01 5.6154159849765606E-01 5.6486135844243923E-01 + 5.6819890920488603E-01 5.7155434573145858E-01 5.7492776346881225E-01 + 5.7831925836631637E-01 5.8172892687859923E-01 5.8515686596809413E-01 + 5.8860317310760157E-01 5.9206794628286130E-01 5.9555128399513513E-01 + 5.9905328526379831E-01 6.0257404962894912E-01 6.0611367715402109E-01 + 6.0967226842841216E-01 6.1324992457012184E-01 6.1684674722840183E-01 + 6.2046283858641638E-01 6.2409830136391264E-01 6.2775323881990608E-01 + 6.3142775475537227E-01 6.3512195351595357E-01 6.3883593999467481E-01 + 6.4256981963467219E-01 6.4632369843192927E-01 6.5009768293803083E-01 + 6.5389188026292133E-01 6.5770639807767850E-01 6.6154134461729708E-01 + 6.6539682868348238E-01 6.6927295964745803E-01 6.7316984745278319E-01 + 6.7708760261817913E-01 6.8102633624037090E-01 6.8498615999693679E-01 + 6.8896718614917196E-01 6.9296952754496099E-01 6.9699329762166062E-01 + 7.0103861040899773E-01 7.0510558053197536E-01 7.0919432321378961E-01 + 7.1330495427876051E-01 7.1743759015526876E-01 7.2159234787871140E-01 + 7.2576934509446200E-01 7.2996870006084102E-01 7.3419053165210602E-01 + 7.3843495936144343E-01 7.4270210330397446E-01 7.4699208421977514E-01 + 7.5130502347690276E-01 7.5564104307443525E-01 7.6000026564552270E-01 + 7.6438281446044865E-01 7.6878881342969707E-01 7.7321838710704327E-01 + 7.7767166069264049E-01 7.8214876003612799E-01 7.8664981163974268E-01 + 7.9117494266145050E-01 7.9572428091807501E-01 8.0029795488845124E-01 + 8.0489609371657611E-01 8.0951882721478496E-01 8.1416628586692030E-01 + 8.1883860083152804E-01 8.2353590394505038E-01 8.2825832772504149E-01 + 8.3300600537338154E-01 8.3777907077950908E-01 8.4257765852365873E-01 + 8.4740190388011549E-01 8.5225194282046646E-01 8.5712791201687977E-01 + 8.6202994884537820E-01 8.6695819138912922E-01 8.7191277844174508E-01 + 8.7689384951059146E-01 8.8190154482010441E-01 8.8693600531511896E-01 + 8.9199737266420409E-01 8.9708578926301430E-01 9.0220139823763745E-01 + 9.0734434344796400E-01 9.1251476949106014E-01 9.1771282170454826E-01 + 9.2293864616999999E-01 9.2819238971633766E-01 9.3347419992323633E-01 + 9.3878422512454718E-01 9.4412261441172196E-01 9.4948951763724354E-01 + 9.5488508541806871E-01 9.6030946913907800E-01 9.6576282095653831E-01 + 9.7124529380155800E-01 9.7675704138356712E-01 9.8229821819379781E-01 + 9.8786897950876884E-01 9.9346948139378277E-01 9.9909988070642430E-01 + 1.0047603351000784E+00 1.0104510030274327E+00 1.0161720437440109E+00 + 1.0219236173116948E+00 1.0277058846022631E+00 1.0335190073009290E+00 + 1.0393631479098893E+00 1.0452384697518771E+00 1.0511451369737173E+00 + 1.0570833145498928E+00 1.0630531682861109E+00 1.0690548648228804E+00 + 1.0750885716390841E+00 1.0811544570555662E+00 1.0872526902387201E+00 + 1.0933834412040748E+00 1.0995468808198907E+00 1.1057431808107674E+00 + 1.1119725137612329E+00 1.1182350531193559E+00 1.1245309732003561E+00 + 1.1308604491902106E+00 1.1372236571492667E+00 1.1436207740158650E+00 + 1.1500519776099483E+00 1.1565174466366850E+00 1.1630173606900893E+00 + 1.1695519002566428E+00 1.1761212467189150E+00 1.1827255823591893E+00 + 1.1893650903630864E+00 1.1960399548231802E+00 1.2027503607426304E+00 + 1.2094964940387960E+00 1.2162785415468613E+00 1.2230966910234522E+00 + 1.2299511311502542E+00 1.2368420515376286E+00 1.2437696427282237E+00 + 1.2507340962005864E+00 1.2577356043727670E+00 1.2647743606059263E+00 + 1.2718505592079279E+00 1.2789643954369372E+00 1.2861160655050157E+00 + 1.2933057665816952E+00 1.3005336967975647E+00 1.3078000552478413E+00 + 1.3151050419959345E+00 1.3224488580770093E+00 1.3298317055015370E+00 + 1.3372537872588339E+00 1.3447153073206097E+00 1.3522164706444799E+00 + 1.3597574831774932E+00 1.3673385518596339E+00 1.3749598846273243E+00 + 1.3826216904169044E+00 1.3903241791681120E+00 1.3980675618275462E+00 + 1.4058520503521119E+00 1.4136778577124658E+00 1.4215451978964331E+00 + 1.4294542859124160E+00 1.4374053377927971E+00 1.4453985705973078E+00 + 1.4534342024164004E+00 1.4615124523745850E+00 1.4696335406337666E+00 + 1.4777976883965505E+00 1.4860051179095373E+00 1.4942560524665891E+00 + 1.5025507164120933E+00 1.5108893351441843E+00 1.5192721351179552E+00 + 1.5276993438486466E+00 1.5361711899148125E+00 1.5446879029614591E+00 + 1.5532497137031622E+00 1.5618568539271542E+00 1.5705095564963913E+00 + 1.5792080553525929E+00 1.5879525855192462E+00 1.5967433831045938E+00 + 1.6055806853045695E+00 1.6144647304057409E+00 1.6233957577881826E+00 + 1.6323740079283326E+00 1.6413997224018237E+00 1.6504731438862705E+00 + 1.6595945161640147E+00 1.6687640841248570E+00 1.6779820937687226E+00 + 1.6872487922083133E+00 1.6965644276717071E+00 1.7059292495049194E+00 + 1.7153435081744230E+00 1.7248074552696286E+00 1.7343213435053202E+00 + 1.7438854267240369E+00 1.7534999598984256E+00 1.7631651991335349E+00 + 1.7728814016690577E+00 1.7826488258815354E+00 1.7924677312865029E+00 + 1.8023383785405793E+00 1.8122610294435144E+00 1.8222359469401772E+00 + 1.8322633951224783E+00 1.8423436392312498E+00 1.8524769456580563E+00 + 1.8626635819469479E+00 1.8729038167961531E+00 1.8831979200597044E+00 + 1.8935461627490058E+00 1.9039488170343264E+00 1.9144061562462373E+00 + 1.9249184548769582E+00 1.9354859885816587E+00 1.9461090341796676E+00 + 1.9567878696556154E+00 1.9675227741605115E+00 1.9783140280127085E+00 + 1.9891619126988371E+00 2.0000667108746115E+00 2.0110287063655954E+00 + 2.0220481841678395E+00 2.0331254304484712E+00 2.0442607325461699E+00 + 2.0554543789715605E+00 2.0667066594075219E+00 2.0780178647093810E+00 + 2.0893882869050349E+00 2.1008182191949496E+00 2.1123079559520823E+00 + 2.1238577927216773E+00 2.1354680262209724E+00 2.1471389543388026E+00 + 2.1588708761350652E+00 2.1706640918401088E+00 2.1825189028539880E+00 + 2.1944356117456043E+00 2.2064145222517282E+00 2.2184559392759011E+00 + 2.2305601688872168E+00 2.2427275183189677E+00 2.2549582959671710E+00 + 2.2672528113889525E+00 2.2796113753008043E+00 2.2920342995767133E+00 + 2.3045218972461274E+00 2.3170744824917975E+00 2.3296923706474595E+00 + 2.3423758781953934E+00 2.3551253227638016E+00 2.3679410231240419E+00 + 2.3808232991877136E+00 2.3937724720035773E+00 2.4067888637543060E+00 + 2.4198727977530670E+00 2.4330245984399483E+00 2.4462445913782007E+00 + 2.4595331032503029E+00 2.4728904618538454E+00 2.4863169960972398E+00 + 2.4998130359952322E+00 2.5133789126642285E+00 2.5270149583174226E+00 + 2.5407215062597279E+00 2.5544988908825146E+00 2.5683474476581223E+00 + 2.5822675131341892E+00 2.5962594249277435E+00 2.6103235217190814E+00 + 2.6244601432454440E+00 2.6386696302944350E+00 2.6529523246972446E+00 + 2.6673085693215968E+00 2.6817387080645023E+00 2.6962430858447446E+00 + 2.7108220485951002E+00 2.7254759432543469E+00 2.7402051177589914E+00 + 2.7550099210347327E+00 2.7698907029876705E+00 2.7848478144952233E+00 + 2.7998816073968058E+00 2.8149924344841759E+00 2.8301806494915458E+00 + 2.8454466070853566E+00 2.8607906628537831E+00 2.8762131732959286E+00 + 2.8917144958107150E+00 2.9072949886854489E+00 2.9229550110840816E+00 + 2.9386949230351291E+00 2.9545150854192830E+00 2.9704158599566619E+00 + 2.9863976091937370E+00 3.0024606964898868E+00 3.0186054860036440E+00 + 3.0348323426785107E+00 3.0511416322284677E+00 3.0675337211230946E+00 + 3.0840089765722598E+00 3.1005677665105167E+00 3.1172104595810119E+00 + 3.1339374251190582E+00 3.1507490331352610E+00 3.1676456542982385E+00 + 3.1846276599169414E+00 3.2016954219225080E+00 3.2188493128497018E+00 + 3.2360897058178923E+00 3.2534169745116222E+00 3.2708314931606397E+00 + 3.2883336365195275E+00 3.3059237798468399E+00 3.3236022988837268E+00 + 3.3413695698320982E+00 3.3592259693322783E+00 3.3771718744401205E+00 + 3.3952076626036565E+00 3.4133337116391780E+00 3.4315503997067820E+00 + 3.4498581052853918E+00 3.4682572071472015E+00 3.4867480843315808E+00 + 3.5053311161183602E+00 3.5240066820006049E+00 3.5427751616566940E+00 + 3.5616369349219053E+00 3.5805923817593128E+00 3.5996418822300704E+00 + 3.6187858164630828E+00 3.6380245646240215E+00 3.6573585068836660E+00 + 3.6767880233856145E+00 3.6963134942132725E+00 3.7159352993561945E+00 + 3.7356538186756851E+00 3.7554694318697250E+00 3.7753825184371310E+00 + 3.7953934576410275E+00 3.8155026284715183E+00 3.8357104096076382E+00 + 3.8560171793785174E+00 3.8764233157237324E+00 3.8969291961529136E+00 + 3.9175351977044870E+00 3.9382416969036229E+00 3.9590490697193279E+00 + 3.9799576915206987E+00 4.0009679370322893E+00 4.0220801802886204E+00 + 4.0432947945877622E+00 4.0646121524440595E+00 4.0860326255398753E+00 + 4.1075565846764137E+00 4.1291843997236217E+00 4.1509164395690759E+00 + 4.1727530720658947E+00 4.1946946639796696E+00 4.2167415809343618E+00 + 4.2388941873571522E+00 4.2611528464222959E+00 4.2835179199938285E+00 + 4.3059897685672484E+00 4.3285687512100868E+00 4.3512552255013448E+00 + 4.3740495474698049E+00 4.3969520715311861E+00 4.4199631504241124E+00 + 4.4430831351449180E+00 4.4663123748812330E+00 4.4896512169443179E+00 + 4.5131000067001557E+00 4.5366590874993360E+00 4.5603288006055482E+00 + 4.5841094851228581E+00 4.6080014779215919E+00 4.6320051135629168E+00 + 4.6561207242220330E+00 4.6803486396099805E+00 4.7046891868940044E+00 + 4.7291426906165368E+00 4.7537094726126936E+00 4.7783898519262680E+00 + 4.8031841447242902E+00 4.8280926642099784E+00 4.8531157205342206E+00 + 4.8782536207054275E+00 4.9035066684978172E+00 4.9288751643580850E+00 + 4.9543594053103872E+00 4.9799596848597281E+00 5.0056762928935807E+00 + 5.0315095155818224E+00 5.0574596352749266E+00 5.0835269304003701E+00 + 5.1097116753572447E+00 5.1360141404090349E+00 5.1624345915745860E+00 + 5.1889732905171080E+00 5.2156304944313590E+00 5.2424064559288261E+00 + 5.2693014229209778E+00 5.2963156385005119E+00 5.3234493408205603E+00 + 5.3507027629718751E+00 5.3780761328579096E+00 5.4055696730677596E+00 + 5.4331836007470180E+00 5.4609181274664076E+00 5.4887734590881987E+00 + 5.5167497956304139E+00 5.5448473311287785E+00 5.5730662534962985E+00 + 5.6014067443805340E+00 5.6298689790185268E+00 5.6584531260892827E+00 + 5.6871593475638216E+00 5.7159877985527761E+00 5.7449386271514209E+00 + 5.7740119742822182E+00 5.8032079735347546E+00 5.8325267510030585E+00 + 5.8619684251202395E+00 5.8915331064904795E+00 5.9212208977182588E+00 + 5.9510318932348358E+00 5.9809661791218662E+00 6.0110238329322803E+00 + 6.0412049235081513E+00 6.0715095107957371E+00 6.1019376456574932E+00 + 6.1324893696811200E+00 6.1631647149855340E+00 6.1939637040237772E+00 + 6.2248863493827660E+00 6.2559326535798849E+00 6.2871026088563999E+00 + 6.3183961969675453E+00 6.3498133889693369E+00 6.3813541450020876E+00 + 6.4130184140704571E+00 6.4448061338201184E+00 6.4767172303109435E+00 + 6.5087516177866256E+00 6.5409091984407812E+00 6.5731898621794285E+00 + 6.6055934863797425E+00 6.6381199356451921E+00 6.6707690615568493E+00 + 6.7035407024209350E+00 6.7364346830124848E+00 6.7694508143151477E+00 + 6.8025888932569654E+00 6.8358487024422709E+00 6.8692300098793861E+00 + 6.9027325687043799E+00 6.9363561169005363E+00 6.9701003770137202E+00 + 7.0039650558634747E+00 7.0379498442497477E+00 7.0720544166553614E+00 + 7.1062784309440268E+00 7.1406215280539120E+00 7.1750833316866913E+00 + 7.2096634479920576E+00 7.2443614652475832E+00 7.2791769535339510E+00 + 7.3141094644054405E+00 7.3491585305556546E+00 7.3843236654784095E+00 + 7.4196043631237547E+00 7.4550000975490276E+00 7.4905103225649761E+00 + 7.5261344713767482E+00 7.5618719562199157E+00 7.5977221679911899E+00 + 7.6336844758740634E+00 7.6697582269590878E+00 7.7059427458589278E+00 + 7.7422373343179771E+00 7.7786412708165820E+00 7.8151538101697673E+00 + 7.8517741831204413E+00 7.8885015959270186E+00 7.9253352299453752E+00 + 7.9622742412051615E+00 7.9993177599802525E+00 8.0364648903535745E+00 + 8.0737147097758992E+00 8.1110662686188331E+00 8.1485185897217995E+00 + 8.1860706679330448E+00 8.2237214696445395E+00 8.2614699323207965E+00 + 8.2993149640214767E+00 8.3372554429178667E+00 8.3752902168029575E+00 + 8.4134181025953367E+00 8.4516378858366217E+00 8.4899483201825827E+00 + 8.5283481268876464E+00 8.5668359942830925E+00 8.6054105772485379E+00 + 8.6440704966769193E+00 8.6828143389328201E+00 8.7216406553041121E+00 + 8.7605479614468624E+00 8.7995347368235404E+00 8.8385994241343688E+00 + 8.8777404287418662E+00 8.9169561180885530E+00 8.9562448211076831E+00 + 8.9956048276271225E+00 9.0350343877662507E+00 9.0745317113258182E+00 + 9.1140949671708444E+00 9.1537222826064397E+00 9.1934117427466191E+00 + 9.2331613898759386E+00 9.2729692228041074E+00 9.3128331962134858E+00 + 9.3527512199994014E+00 9.3927211586033508E+00 9.4327408303390765E+00 + 9.4728080067114551E+00 9.5129204117282420E+00 9.5530757212047064E+00 + 9.5932715620610818E+00 9.6335055116128245E+00 9.6737750968538734E+00 + 9.7140777937326863E+00 9.7544110264212751E+00 9.7947721665770686E+00 + 9.8351585325978359E+00 9.8755673888695448E+00 9.9159959450072570E+00 + 9.9564413550891171E+00 9.9969007168834469E+00 1.0037371071068968E+01 + 1.0077849400448345E+01 1.0118332629154889E+01 1.0158817621852736E+01 + 1.0199301182930382E+01 1.0239780055687733E+01 1.0280250921516799E+01 + 1.0320710399075992E+01 1.0361155043458323E+01 1.0401581345353398E+01 + 1.0441985730203458E+01 1.0482364557353595E+01 1.0522714119196134E+01 + 1.0563030640309517E+01 1.0603310276591690E+01 1.0643549114388126E+01 + 1.0683743169614912E+01 1.0723888386876604E+01 1.0763980638579580E+01 + 1.0804015724040607E+01 1.0843989368591153E+01 1.0883897222677458E+01 + 1.0923734860956770E+01 1.0963497781389789E+01 1.1003181404329673E+01 + 1.1042781071607989E+01 1.1082292045617542E+01 1.1121709508392795E+01 + 1.1161028560687789E+01 1.1200244221052191E+01 1.1239351424905637E+01 + 1.1278345023610694E+01 1.1317219783544886E+01 1.1355970385172158E+01 + 1.1394591422114120E+01 1.1433077400221482E+01 1.1471422736646147E+01 + 1.1509621758914413E+01 1.1547668704001655E+01 1.1585557717409117E+01 + 1.1623282852243179E+01 1.1660838068297691E+01 1.1698217231139976E+01 + 1.1735414111200857E+01 1.1772422382869603E+01 1.1809235623594128E+01 + 1.1845847312987217E+01 1.1882250831939466E+01 1.1918439461739442E+01 + 1.1954406383202036E+01 1.1990144675805514E+01 1.2025647316838182E+01 + 1.2060907180555297E+01 1.2095917037347297E+01 1.2130669552919846E+01 + 1.2165157287486961E+01 1.2199372694977864E+01 1.2233308122258570E+01 + 1.2266955808369216E+01 1.2300307883778173E+01 1.2333356369653876E+01 + 1.2366093177155598E+01 1.2398510106744158E+01 1.2430598847513826E+01 + 1.2462350976546444E+01 1.2493757958289383E+01 1.2524811143958111E+01 + 1.2555501770965032E+01 1.2585820962375895E+01 1.2615759726395165E+01 + 1.2645308955881696E+01 1.2674459427896403E+01 1.2703201803283404E+01 + 1.2731526626286080E+01 1.2759424324200030E+01 1.2786885207064158E+01 + 1.2813899467392220E+01 1.2840457179946100E+01 1.2866548301552871E+01 + 1.2892162670967839E+01 1.2917290008785013E+01 1.2941919917397474E+01 + 1.2966041881009588E+01 1.2989645265703068E+01 1.3012719319559476E+01 + 1.3035253172841026E+01 1.3057235838232373E+01 1.3078656211145583E+01 + 1.3099503070090956E+01 1.3119765077116153E+01 1.3139430778316184E+01 + 1.3158488604417222E+01 1.3176926871436711E+01 1.3194733781422844E+01 + 1.3211897423276358E+01 1.3228405773657348E+01 1.3244246697980671E+01 + 1.3259407951502736E+01 1.3273877180503113E+01 1.3287641923564253E+01 + 1.3300689612952800E+01 1.3313007576105958E+01 1.3324583037226574E+01 + 1.3335403118990614E+01 1.3345454844370789E+01 1.3354725138580299E+01 + 1.3363200831140613E+01 1.3370868658077370E+01 1.3377715264248648E+01 + 1.3383727205809663E+01 1.3388890952818610E+01 1.3393192891987779E+01 + 1.3396619329584738E+01 1.3399156494488100E+01 1.3400790541402902E+01 + 1.3401507554240073E+01 1.3401293549665388E+01 1.3400134480822844E+01 + 1.3398016241237409E+01 1.3394924668902915E+01 1.3390845550560112E+01 + 1.3385764626170538E+01 1.3379667593591808E+01 1.3372540113460099E+01 + 1.3364367814285446E+01 1.3355136297766240E+01 1.3344831144328074E+01 + 1.3333437918894338E+01 1.3320942176893462E+01 1.3307329470510085E+01 + 1.3292585355186208E+01 1.3276695396378773E+01 1.3259645176580417E+01 + 1.3241420302610083E+01 1.3222006413180326E+01 1.3201389186747802E+01 + 1.3179554349654477E+01 1.3156487684566086E+01 1.3132175039215120E+01 + 1.3106602335455435E+01 1.3079755578635691E+01 1.3051620867298897E+01 + 1.3022184403215297E+01 1.2991432501755886E+01 1.2959351602614092E+01 + 1.2925928280882777E+01 1.2891149258494030E+01 1.2855001416029168E+01 + 1.2817471804906274E+01 1.2778547659952526E+01 1.2738216412368823E+01 + 1.2696465703093635E+01 1.2653283396573801E+01 1.2608657594948584E+01 + 1.2562576652654819E+01 1.2515029191459476E+01 1.2466004115926564E+01 + 1.2415490629325005E+01 1.2363478249983809E+01 1.2309956828100864E+01 + 1.2254916563011170E+01 1.2198348020920369E+01 1.2140242153108970E+01 + 1.2080590314612341E+01 1.2019384283381466E+01 1.1956616279928488E+01 + 1.1892278987461465E+01 1.1826365572511568E+01 1.1758869706055968E+01 + 1.1689785585138734E+01 1.1619107954991872E+01 1.1546832131657835E+01 + 1.1472954025113715E+01 1.1397470162897827E+01 1.1320377714236828E+01 + 1.1241674514672528E+01 1.1161359091185210E+01 1.1079430687809984E+01 + 1.0995889291741682E+01 1.0910735659922283E+01 1.0823971346104111E+01 + 1.0735598728380436E+01 1.0645621037173985E+01 1.0554042383672195E+01 + 1.0460867788696735E+01 1.0366103211992986E+01 1.0269755581923448E+01 + 1.0171832825547286E+01 1.0072343899066189E+01 9.9712988186144926E+00 + 9.8687086913694912E+00 9.7645857469553743E+00 9.6589433691116575E+00 + 9.5517961275946277E+00 9.4431598102768355E+00 9.3330514554076931E+00 + 9.2214893839940917E+00 9.1084932322572101E+00 8.9940839841179532E+00 + 8.8782840036598358E+00 8.7611170675140499E+00 8.6426083971075141E+00 + 8.5227846907100790E+00 8.4016741552124721E+00 8.2793065375621158E+00 + 8.1557131557780966E+00 8.0309269294616872E+00 7.9049824097130195E+00 + 7.7779158083581921E+00 7.6497650263853307E+00 7.5205696814809171E+00 + 7.3903711345508967E+00 7.2592125151038571E+00 7.1271387453657056E+00 + 6.9941965629869483E+00 6.8604345421954323E+00 6.7259031132382914E+00 + 6.5906545799471443E+00 6.4547431352512197E+00 6.3182248744520608E+00 + 6.1811578060630312E+00 6.0436018600049302E+00 5.9056188929375777E+00 + 5.7672726904937939E+00 5.6286289661698978E+00 5.4897553566120614E+00 + 5.3507214130242691E+00 5.2115985884074023E+00 5.0724602203237490E+00 + 4.9333815088644117E+00 4.7944394894791698E+00 4.6557130003105263E+00 + 4.5172826436541387E+00 4.3792307411481373E+00 4.2416412822721883E+00 + 4.1045998657163327E+00 3.9681936331549292E+00 3.8325111949391317E+00 + 3.6976425471942966E+00 3.5636789797837300E+00 3.4307129745722857E+00 + 3.2988380933944890E+00 3.1681488551027077E+00 3.0387406010383584E+00 + 2.9107093482381421E+00 2.7841516296515971E+00 2.6591643206119473E+00 + 2.5358444507644240E+00 2.4142890006179791E+00 2.2945946818452376E+00 + 2.1768577004145677E+00 2.0611735015928749E+00 1.9476364958131662E+00 + 1.8363397643520603E+00 1.7273747437141094E+00 1.6208308875661672E+00 + 1.5167953050129792E+00 1.4153523739471683E+00 1.3165833281496506E+00 + 1.2205658167544904E+00 1.1273734346295066E+00 1.0370752221572455E+00 + 9.4973513283270050E-01 8.6541146702207050E-01 7.8415627015302380E-01 + 7.0601469352925528E-01 6.3102431588125307E-01 5.5921442368226981E-01 + 4.9060524817095891E-01 4.2520715693176725E-01 3.6319673283144965E-01 + 3.0495785069321463E-01 2.5081064794693403E-01 2.0108210444201424E-01 + 1.5610267722418514E-01 1.1620193401781186E-01 8.1703037248720481E-02 + 5.2915926867614115E-02 3.0129051330120001E-02 1.3599503413754639E-02 + 3.5414330526096281E-03 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + -0.0000000000000000E+00 -0.0000000000000000E+00 -0.0000000000000000E+00 + + + -9.7778824319235780E-04 -1.6167924275497128E-03 -2.3919484050964617E-03 + -2.4727630499623045E-03 -1.6892034061557705E-03 -5.3169668756421445E-04 + -1.8130044522177930E-04 7.3094815209433719E-05 3.2324235525804076E-04 + 4.7482576793427754E-04 6.0154194503008308E-04 7.1586044506775437E-04 + 8.1651086155088435E-04 9.1006901328551061E-04 9.9845221450598019E-04 + 1.0829998638452456E-03 1.1648565737441810E-03 1.2447175778153169E-03 + 1.3231102905126300E-03 1.4004198399953263E-03 1.4769326720057503E-03 + 1.5528684988331670E-03 1.6283966192488146E-03 1.7036501471538960E-03 + 1.7787348772293509E-03 1.8537359499390667E-03 1.9287226708546048E-03 + 2.0037520329863486E-03 2.0788713761579116E-03 2.1541203851863531E-03 + 2.2295326224288136E-03 2.3051367109874613E-03 2.3809572575249306E-03 + 2.4570155787896528E-03 2.5333302780542557E-03 2.6099177062232728E-03 + 2.6867923333385312E-03 2.7639670499730938E-03 2.8414534133403744E-03 + 2.9192618494905697E-03 2.9974018203967373E-03 3.0758819627845460E-03 + 3.1547102040872703E-03 3.2338938597733405E-03 3.3134397154225650E-03 + 3.3933540962528233E-03 3.4736429262658950E-03 3.5543117787674929E-03 + 3.6353659196878226E-03 3.7168103448674658E-03 3.7986498122616944E-03 + 3.8808888698520054E-03 3.9635318799182886E-03 4.0465830402083569E-03 + 4.1300464024602267E-03 4.2139258886552712E-03 4.2982253053196256E-03 + 4.3829483561421446E-03 4.4680986531362215E-03 4.5536797265390231E-03 + 4.6396950336121739E-03 4.7261479664835104E-03 4.8130418591506323E-03 + 4.9003799937515202E-03 4.9881656061886012E-03 5.0764018911840774E-03 + 5.1650920068350339E-03 5.2542390787232822E-03 5.3438462036334072E-03 + 5.4339164529201931E-03 5.5244528755662549E-03 5.6154585009614375E-03 + 5.7069363414364556E-03 5.7988893945725680E-03 5.8913206453154966E-03 + 5.9842330679090450E-03 6.0776296276695051E-03 6.1715132826145481E-03 + 6.2658869849637972E-03 6.3607536825206245E-03 6.4561163199466668E-03 + 6.5519778399428527E-03 6.6483411843387651E-03 6.7452092951063762E-03 + 6.8425851153001115E-03 6.9404715899298759E-03 7.0388716667764079E-03 + 7.1377882971506122E-03 7.2372244366028992E-03 7.3371830455860225E-03 + 7.4376670900780711E-03 7.5386795421650988E-03 7.6402233805899682E-03 + 7.7423015912666503E-03 7.8449171677676538E-03 7.9480731117810548E-03 + 8.0517724335444161E-03 8.1560181522549111E-03 8.2608132964575847E-03 + 8.3661609044133056E-03 8.4720640244495792E-03 8.5785257152938884E-03 + 8.6855490463912440E-03 8.7931370982069490E-03 8.9012929625155793E-03 + 9.0100197426800505E-03 9.1193205539139011E-03 9.2291985235389024E-03 + 9.3396567912280865E-03 9.4506985092403205E-03 9.5623268426493595E-03 + 9.6745449695602777E-03 9.7873560813205203E-03 9.9007633827254467E-03 + 1.0014770092214286E-02 1.0129379442062693E-02 1.0244594678567191E-02 + 1.0360419062227098E-02 1.0476855867918999E-02 1.0593908385066911E-02 + 1.0711579917810687E-02 1.0829873785167575E-02 1.0948793321190316E-02 + 1.1068341875123152E-02 1.1188522811553451E-02 1.1309339510560902E-02 + 1.1430795367862743E-02 1.1552893794957041E-02 1.1675638219264917E-02 + 1.1799032084267131E-02 1.1923078849640780E-02 1.2047781991392883E-02 + 1.2173145001993988E-02 1.2299171390508278E-02 1.2425864682720399E-02 + 1.2553228421264676E-02 1.2681266165750264E-02 1.2809981492884493E-02 + 1.2939377996597865E-02 1.3069459288162286E-02 1.3200228996316364E-02 + 1.3331690767382351E-02 1.3463848265384061E-02 1.3596705172167749E-02 + 1.3730265187515252E-02 1.3864532029264543E-02 1.3999509433421750E-02 + 1.4135201154276675E-02 1.4271610964520133E-02 1.4408742655352358E-02 + 1.4546600036600759E-02 1.4685186936830987E-02 1.4824507203457696E-02 + 1.4964564702859645E-02 1.5105363320488669E-02 1.5246906960983119E-02 + 1.5389199548276231E-02 1.5532245025708215E-02 1.5676047356138180E-02 + 1.5820610522050502E-02 1.5965938525670537E-02 1.6112035389069440E-02 + 1.6258905154278001E-02 1.6406551883391275E-02 1.6554979658684792E-02 + 1.6704192582719730E-02 1.6854194778454526E-02 1.7004990389354213E-02 + 1.7156583579497307E-02 1.7308978533690605E-02 1.7462179457575163E-02 + 1.7616190577736033E-02 1.7771016141814821E-02 1.7926660418616749E-02 + 1.8083127698220871E-02 1.8240422292092998E-02 1.8398548533192380E-02 + 1.8557510776085567E-02 1.8717313397052255E-02 1.8877960794200798E-02 + 1.9039457387575592E-02 1.9201807619271365E-02 1.9365015953540104E-02 + 1.9529086876906063E-02 1.9694024898276125E-02 1.9859834549051589E-02 + 2.0026520383239564E-02 2.0194086977566521E-02 2.0362538931590027E-02 + 2.0531880867810593E-02 2.0702117431786963E-02 2.0873253292246992E-02 + 2.1045293141202980E-02 2.1218241694063621E-02 2.1392103689749697E-02 + 2.1566883890807340E-02 2.1742587083523193E-02 2.1919218078039249E-02 + 2.2096781708467669E-02 2.2275282833004929E-02 2.2454726334053904E-02 + 2.2635117118327778E-02 2.2816460116979308E-02 2.2998760285711448E-02 + 2.3182022604891925E-02 2.3366252079676107E-02 2.3551453740122269E-02 + 2.3737632641306614E-02 2.3924793863447109E-02 2.4112942512018214E-02 + 2.4302083717871435E-02 2.4492222637352935E-02 2.4683364452426800E-02 + 2.4875514370791357E-02 2.5068677626000253E-02 2.5262859477584075E-02 + 2.5458065211171790E-02 2.5654300138609514E-02 2.5851569598086644E-02 + 2.6049878954254008E-02 2.6249233598347733E-02 2.6449638948311861E-02 + 2.6651100448922774E-02 2.6853623571911192E-02 2.7057213816084343E-02 + 2.7261876707454787E-02 2.7467617799363245E-02 2.7674442672600781E-02 + 2.7882356935538213E-02 2.8091366224247974E-02 2.8301476202633707E-02 + 2.8512692562554360E-02 2.8725021023952375E-02 2.8938467334981000E-02 + 2.9153037272128649E-02 2.9368736640352215E-02 2.9585571273200949E-02 + 2.9803547032945785E-02 3.0022669810711791E-02 3.0242945526603792E-02 + 3.0464380129836186E-02 3.0686979598866425E-02 3.0910749941523274E-02 + 3.1135697195136206E-02 3.1361827426670950E-02 3.1589146732855913E-02 + 3.1817661240319456E-02 3.2047377105717492E-02 3.2278300515871571E-02 + 3.2510437687894474E-02 3.2743794869330857E-02 3.2978378338289920E-02 + 3.3214194403575294E-02 3.3451249404823372E-02 3.3689549712638316E-02 + 3.3929101728726617E-02 3.4169911886032377E-02 3.4411986648871302E-02 + 3.4655332513075350E-02 3.4899956006116888E-02 3.5145863687257646E-02 + 3.5393062147680260E-02 3.5641558010626080E-02 3.5891357931534418E-02 + 3.6142468598183319E-02 3.6394896730824612E-02 3.6648649082325159E-02 + 3.6903732438308627E-02 3.7160153617291497E-02 3.7417919470823582E-02 + 3.7677036883633566E-02 3.7937512773764427E-02 3.8199354092720135E-02 + 3.8462567825602513E-02 3.8727160991253597E-02 3.8993140642402301E-02 + 3.9260513865805959E-02 3.9529287782388629E-02 3.9799469547390338E-02 + 4.0071066350507341E-02 4.0344085416037422E-02 4.0618534003024509E-02 + 4.0894419405401616E-02 4.1171748952143171E-02 4.1450530007396701E-02 + 4.1730769970636704E-02 4.2012476276817930E-02 4.2295656396508043E-02 + 4.2580317836038661E-02 4.2866468137659389E-02 4.3154114879673550E-02 + 4.3443265676594602E-02 4.3733928179291649E-02 4.4026110075134031E-02 + 4.4319819088144273E-02 4.4615062979140051E-02 4.4911849545895638E-02 + 4.5210186623275146E-02 4.5510082083399503E-02 4.5811543835777568E-02 + 4.6114579827468916E-02 4.6419198043231323E-02 4.6725406505668900E-02 + 4.7033213275386676E-02 4.7342626451137210E-02 4.7653654169972366E-02 + 4.7966304607400277E-02 4.8280585977531966E-02 4.8596506533233469E-02 + 4.8914074566279615E-02 4.9233298407504275E-02 4.9554186426959503E-02 + 4.9876747034059095E-02 5.0200988677738770E-02 5.0526919846602708E-02 + 5.0854549069085292E-02 5.1183884913597724E-02 5.1514935988690003E-02 + 5.1847710943190538E-02 5.2182218466377196E-02 5.2518467288117689E-02 + 5.2856466179035250E-02 5.3196223950659469E-02 5.3537749455570799E-02 + 5.3881051587573135E-02 5.4226139281840932E-02 5.4573021515068335E-02 + 5.4921707305633061E-02 5.5272205713751660E-02 5.5624525841626853E-02 + 5.5978676833611359E-02 5.6334667876364500E-02 5.6692508199001949E-02 + 5.7052207073254001E-02 5.7413773813624364E-02 5.7777217777545811E-02 + 5.8142548365529408E-02 5.8509775021337890E-02 5.8878907232113836E-02 + 5.9249954528563735E-02 5.9622926485102437E-02 5.9997832720011926E-02 + 6.0374682895590753E-02 6.0753486718321606E-02 6.1134253939018335E-02 + 6.1516994352992606E-02 6.1901717800196474E-02 6.2288434165392391E-02 + 6.2677153378301695E-02 6.3067885413766483E-02 6.3460640291899989E-02 + 6.3855428078243556E-02 6.4252258883930616E-02 6.4651142865831901E-02 + 6.5052090226719123E-02 6.5455111215414752E-02 6.5860216126961996E-02 + 6.6267415302764435E-02 6.6676719130736500E-02 6.7088138045485843E-02 + 6.7501682528447127E-02 6.7917363108042000E-02 6.8335190359835388E-02 + 6.8755174906690447E-02 6.9177327418912263E-02 6.9601658614434236E-02 + 7.0028179258934453E-02 7.0456900166005532E-02 7.0887832197316925E-02 + 7.1320986262753475E-02 7.1756373320581088E-02 7.2194004377589244E-02 + 7.2633890489247760E-02 7.3076042759861987E-02 7.3520472342727072E-02 + 7.3967190440265090E-02 7.4416208304198192E-02 7.4867537235678377E-02 + 7.5321188585454182E-02 7.5777173754013910E-02 7.6235504191735665E-02 + 7.6696191399036870E-02 7.7159246926524733E-02 7.7624682375141293E-02 + 7.8092509396324200E-02 7.8562739692133912E-02 7.9035385015418916E-02 + 7.9510457169953891E-02 7.9987968010584720E-02 8.0467929443381492E-02 + 8.0950353425779886E-02 8.1435251966721772E-02 8.1922637126800313E-02 + 8.2412521018416438E-02 8.2904915805900647E-02 8.3399833705672721E-02 + 8.3897286986371555E-02 8.4397287969003712E-02 8.4899849027078853E-02 + 8.5404982586757563E-02 8.5912701126970789E-02 8.6423017179585726E-02 + 8.6935943329521440E-02 8.7451492214889293E-02 8.7969676527140217E-02 + 8.8490509011192833E-02 8.9014002465554284E-02 8.9540169742478207E-02 + 9.0069023748076918E-02 9.0600577442462263E-02 9.1134843839876772E-02 + 9.1671836008818508E-02 9.2211567072175260E-02 9.2754050207346408E-02 + 9.3299298646378884E-02 9.3847325676079729E-02 9.4398144638156059E-02 + 9.4951768929323971E-02 9.5508212001440190E-02 9.6067487361627915E-02 + 9.6629608572381939E-02 9.7194589251697078E-02 9.7762443073194191E-02 + 9.8333183766221147E-02 9.8906825115977065E-02 9.9483380963628021E-02 + 1.0006286520641949E-01 1.0064529179778106E-01 1.0123067474744371E-01 + 1.0181902812154865E-01 1.0241036604275218E-01 1.0300470269033632E-01 + 1.0360205230030817E-01 1.0420242916550716E-01 1.0480584763570627E-01 + 1.0541232211771424E-01 1.0602186707547021E-01 1.0663449703014125E-01 + 1.0725022656021753E-01 1.0786907030162103E-01 1.0849104294777386E-01 + 1.0911615924970096E-01 1.0974443401613104E-01 1.1037588211355116E-01 + 1.1101051846633699E-01 1.1164835805680108E-01 1.1228941592527072E-01 + 1.1293370717020776E-01 1.1358124694824480E-01 1.1423205047428693E-01 + 1.1488613302157347E-01 1.1554350992175673E-01 1.1620419656496629E-01 + 1.1686820839987559E-01 1.1753556093378018E-01 1.1820626973264775E-01 + 1.1888035042118289E-01 1.1955781868288898E-01 1.2023869026013075E-01 + 1.2092298095417398E-01 1.2161070662525017E-01 1.2230188319260528E-01 + 1.2299652663454511E-01 1.2369465298846810E-01 1.2439627835093715E-01 + 1.2510141887768975E-01 1.2581009078370173E-01 1.2652231034319492E-01 + 1.2723809388968335E-01 1.2795745781601500E-01 1.2868041857437396E-01 + 1.2940699267632802E-01 1.3013719669283152E-01 1.3087104725425489E-01 + 1.3160856105039562E-01 1.3234975483048494E-01 1.3309464540321098E-01 + 1.3384324963671718E-01 1.3459558445861197E-01 1.3535166685595465E-01 + 1.3611151387526599E-01 1.3687514262251643E-01 1.3764257026311646E-01 + 1.3841381402191386E-01 1.3918889118316088E-01 1.3996781909051431E-01 + 1.4075061514698739E-01 1.4153729681494548E-01 1.4232788161606860E-01 + 1.4312238713131059E-01 1.4392083100087014E-01 1.4472323092416597E-01 + 1.4552960465974302E-01 1.4633997002527580E-01 1.4715434489748519E-01 + 1.4797274721210496E-01 1.4879519496379229E-01 1.4962170620607915E-01 + 1.5045229905131810E-01 1.5128699167057530E-01 1.5212580229358533E-01 + 1.5296874920866457E-01 1.5381585076259363E-01 1.5466712536057439E-01 + 1.5552259146610412E-01 1.5638226760087390E-01 1.5724617234469487E-01 + 1.5811432433536449E-01 1.5898674226855766E-01 1.5986344489770377E-01 + 1.6074445103389123E-01 1.6162977954571336E-01 1.6251944935912155E-01 + 1.6341347945734144E-01 1.6431188888067808E-01 1.6521469672639702E-01 + 1.6612192214854998E-01 1.6703358435784260E-01 1.6794970262145037E-01 + 1.6887029626285374E-01 1.6979538466166613E-01 1.7072498725346441E-01 + 1.7165912352957691E-01 1.7259781303690366E-01 1.7354107537773372E-01 + 1.7448893020953105E-01 1.7544139724471586E-01 1.7639849625045284E-01 + 1.7736024704845446E-01 1.7832666951471365E-01 1.7929778357928933E-01 + 1.8027360922607599E-01 1.8125416649254228E-01 1.8223947546947603E-01 + 1.8322955630074861E-01 1.8422442918301704E-01 1.8522411436546651E-01 + 1.8622863214951529E-01 1.8723800288856321E-01 1.8825224698766577E-01 + 1.8927138490325246E-01 1.9029543714278502E-01 1.9132442426447732E-01 + 1.9235836687697158E-01 1.9339728563897868E-01 1.9444120125896550E-01 + 1.9549013449479927E-01 1.9654410615340989E-01 1.9760313709041186E-01 + 1.9866724820971604E-01 1.9973646046320362E-01 2.0081079485031081E-01 + 2.0189027241762303E-01 2.0297491425851019E-01 2.0406474151267603E-01 + 2.0515977536576319E-01 2.0626003704892729E-01 2.0736554783838468E-01 + 2.0847632905499677E-01 2.0959240206377339E-01 2.1071378827345658E-01 + 2.1184050913601177E-01 2.1297258614618575E-01 2.1411004084095137E-01 + 2.1525289479909479E-01 2.1640116964064413E-01 2.1755488702635403E-01 + 2.1871406865721016E-01 2.1987873627385160E-01 2.2104891165605950E-01 + 2.2222461662217732E-01 2.2340587302854481E-01 2.2459270276891646E-01 + 2.2578512777385307E-01 2.2698317001020715E-01 2.2818685148037801E-01 + 2.2939619422177979E-01 2.3061122030621461E-01 2.3183195183918093E-01 + 2.3305841095926250E-01 2.3429061983739546E-01 2.3552860067628364E-01 + 2.3677237570962131E-01 2.3802196720145852E-01 2.3927739744545251E-01 + 2.4053868876415796E-01 2.4180586350826633E-01 2.4307894405589292E-01 + 2.4435795281178929E-01 2.4564291220658299E-01 2.4693384469595267E-01 + 2.4823077275990971E-01 2.4953371890190190E-01 2.5084270564803934E-01 + 2.5215775554622255E-01 2.5347889116532391E-01 2.5480613509429567E-01 + 2.5613950994129570E-01 2.5747903833281871E-01 2.5882474291275515E-01 + 2.6017664634147780E-01 2.6153477129493335E-01 2.6289914046366836E-01 + 2.6426977655186074E-01 2.6564670227635279E-01 2.6702994036566813E-01 + 2.6841951355897820E-01 2.6981544460508849E-01 2.7121775626141997E-01 + 2.7262647129292711E-01 2.7404161247102665E-01 2.7546320257252843E-01 + 2.7689126437854428E-01 2.7832582067333056E-01 2.7976689424318829E-01 + 2.8121450787530877E-01 2.8266868435657599E-01 2.8412944647241700E-01 + 2.8559681700558398E-01 2.8707081873493934E-01 2.8855147443422596E-01 + 2.9003880687080469E-01 2.9153283880439412E-01 2.9303359298573944E-01 + 2.9454109215538021E-01 2.9605535904227348E-01 2.9757641636245546E-01 + 2.9910428681769996E-01 3.0063899309410058E-01 3.0218055786069042E-01 + 3.0372900376806322E-01 3.0528435344685267E-01 3.0684662950634278E-01 + 3.0841585453296455E-01 3.0999205108879607E-01 3.1157524171002693E-01 + 3.1316544890546411E-01 3.1476269515495908E-01 3.1636700290776498E-01 + 3.1797839458105531E-01 3.1959689255817719E-01 3.2122251918709238E-01 + 3.2285529677869163E-01 3.2449524760506682E-01 3.2614239389788002E-01 + 3.2779675784657342E-01 3.2945836159660014E-01 3.3112722724773241E-01 + 3.3280337685216610E-01 3.3448683241276056E-01 3.3617761588116291E-01 + 3.3787574915595703E-01 3.3958125408076845E-01 3.4129415244230060E-01 + 3.4301446596849300E-01 3.4474221632645413E-01 3.4647742512053581E-01 + 3.4822011389027002E-01 3.4997030410838320E-01 3.5172801717868607E-01 + 3.5349327443399825E-01 3.5526609713401791E-01 3.5704650646319197E-01 + 3.5883452352853962E-01 3.6063016935747083E-01 3.6243346489552802E-01 + 3.6424443100416148E-01 3.6606308845845398E-01 3.6788945794480366E-01 + 3.6972356005857576E-01 3.7156541530177528E-01 3.7341504408062842E-01 + 3.7527246670315562E-01 3.7713770337675007E-01 3.7901077420569612E-01 + 3.8089169918865851E-01 3.8278049821612370E-01 3.8467719106785653E-01 + 3.8658179741029697E-01 3.8849433679392298E-01 3.9041482865059923E-01 + 3.9234329229093490E-01 3.9427974690142642E-01 3.9622421154186704E-01 + 3.9817670514244446E-01 4.0013724650097060E-01 4.0210585428005663E-01 + 4.0408254700416790E-01 4.0606734305674175E-01 4.0806026067721307E-01 + 4.1006131795810319E-01 4.1207053284191592E-01 4.1408792311810166E-01 + 4.1611350642003986E-01 4.1814730022181557E-01 4.2018932183510671E-01 + 4.2223958840607584E-01 4.2429811691194624E-01 4.2636492415793881E-01 + 4.2844002677382870E-01 4.3052344121070402E-01 4.3261518373750057E-01 + 4.3471527043764902E-01 4.3682371720564706E-01 4.3894053974348790E-01 + 4.4106575355717859E-01 4.4319937395315750E-01 4.4534141603472938E-01 + 4.4749189469835149E-01 4.4965082463001599E-01 4.5181822030148217E-01 + 4.5399409596651763E-01 4.5617846565709702E-01 4.5837134317953121E-01 + 4.6057274211060378E-01 4.6278267579363636E-01 4.6500115733447839E-01 + 4.6722819959755291E-01 4.6946381520170105E-01 4.7170801651620159E-01 + 4.7396081565647208E-01 4.7622222448003559E-01 4.7849225458214506E-01 + 4.8077091729160326E-01 4.8305822366637979E-01 4.8535418448922329E-01 + 4.8765881026329372E-01 4.8997211120769057E-01 4.9229409725286655E-01 + 4.9462477803613031E-01 4.9696416289707501E-01 4.9931226087283354E-01 + 5.0166908069343696E-01 5.0403463077697241E-01 5.0640891922492826E-01 + 5.0879195381720921E-01 5.1118374200728744E-01 5.1358429091725899E-01 + 5.1599360733280830E-01 5.1841169769812989E-01 5.2083856811092577E-01 + 5.2327422431711823E-01 5.2571867170572084E-01 5.2817191530350160E-01 + 5.3063395976975336E-01 5.3310480939086335E-01 5.3558446807485205E-01 + 5.3807293934593459E-01 5.4057022633903995E-01 5.4307633179404535E-01 + 5.4559125805028719E-01 5.4811500704079497E-01 5.5064758028650829E-01 + 5.5318897889048968E-01 5.5573920353200690E-01 5.5829825446057635E-01 + 5.6086613149009723E-01 5.6344283399255324E-01 5.6602836089209518E-01 + 5.6862271065883629E-01 5.7122588130250207E-01 5.7383787036618628E-01 + 5.7645867492005298E-01 5.7908829155478492E-01 5.8172671637522422E-01 + 5.8437394499362572E-01 5.8702997252330547E-01 5.8969479357171173E-01 + 5.9236840223378506E-01 5.9505079208515932E-01 5.9774195617522097E-01 + 6.0044188702017842E-01 6.0315057659611071E-01 6.0586801633178766E-01 + 6.0859419710151774E-01 6.1132910921802786E-01 6.1407274242510645E-01 + 6.1682508589017404E-01 6.1958612819698811E-01 6.2235585733801635E-01 + 6.2513426070692901E-01 6.2792132509089205E-01 6.3071703666294543E-01 + 6.3352138097408672E-01 6.3633434294549107E-01 6.3915590686043466E-01 + 6.4198605635647898E-01 6.4482477441718422E-01 6.4767204336403139E-01 + 6.5052784484809101E-01 6.5339215984177479E-01 6.5626496863039530E-01 + 6.5914625080365341E-01 6.6203598524702578E-01 6.6493415013330481E-01 + 6.6784072291356533E-01 6.7075568030859867E-01 6.7367899829994582E-01 + 6.7661065212078653E-01 6.7955061624708613E-01 6.8249886438825746E-01 + 6.8545536947801766E-01 6.8842010366506456E-01 6.9139303830363852E-01 + 6.9437414394395736E-01 6.9736339032279326E-01 7.0036074635363477E-01 + 7.0336618011700924E-01 7.0637965885049536E-01 7.0940114893897910E-01 + 7.1243061590447687E-01 7.1546802439593582E-01 7.1851333817912499E-01 + 7.2156652012632871E-01 7.2462753220572318E-01 7.2769633547109758E-01 + 7.3077289005106172E-01 7.3385715513842709E-01 7.3694908897934308E-01 + 7.4004864886238830E-01 7.4315579110756580E-01 7.4627047105525945E-01 + 7.4939264305473996E-01 7.5252226045328818E-01 7.5565927558422896E-01 + 7.5880363975596876E-01 7.6195530323984839E-01 7.6511421525868484E-01 + 7.6828032397483126E-01 7.7145357647822954E-01 7.7463391877429755E-01 + 7.7782129577183223E-01 7.8101565127056616E-01 7.8421692794889331E-01 + 7.8742506735121054E-01 7.9064000987540739E-01 7.9386169476004731E-01 + 7.9709006007146332E-01 8.0032504269080296E-01 8.0356657830087674E-01 + 8.0681460137301098E-01 8.1006904515353084E-01 8.1332984165049904E-01 + 8.1659692161996822E-01 8.1987021455225628E-01 8.2314964865810514E-01 + 8.2643515085475083E-01 8.2972664675177599E-01 8.3302406063688961E-01 + 8.3632731546146333E-01 8.3963633282620820E-01 8.4295103296639406E-01 + 8.4627133473714122E-01 8.4959715559847770E-01 8.5292841160039856E-01 + 8.5626501736750471E-01 8.5960688608382785E-01 8.6295392947741323E-01 + 8.6630605780446523E-01 8.6966317983394048E-01 8.7302520283138507E-01 + 8.7639203254302001E-01 8.7976357317954224E-01 8.8313972739976210E-01 + 8.8652039629421198E-01 8.8990547936837339E-01 8.9329487452589151E-01 + 8.9668847805179253E-01 9.0008618459523504E-01 9.0348788715224970E-01 + 9.0689347704841827E-01 9.1030284392124061E-01 9.1371587570239610E-01 + 9.1713245859967829E-01 9.2055247707932408E-01 9.2397581384740279E-01 + 9.2740234983146230E-01 9.3083196416203517E-01 9.3426453415401367E-01 + 9.3769993528745765E-01 9.4113804118862587E-01 9.4457872361067885E-01 + 9.4802185241431047E-01 9.5146729554793752E-01 9.5491491902794001E-01 + 9.5836458691880944E-01 9.6181616131275915E-01 9.6526950230944675E-01 + 9.6872446799529943E-01 9.7218091442295118E-01 9.7563869559004912E-01 + 9.7909766341833226E-01 9.8255766773206421E-01 9.8601855623665347E-01 + 9.8948017449677073E-01 9.9294236591457430E-01 9.9640497170728193E-01 + 9.9986783088513509E-01 1.0033307802284779E+00 1.0067936542653180E+00 + 1.0102562852479668E+00 1.0137185031301443E+00 1.0171801355433379E+00 + 1.0206410077731272E+00 1.0241009427355408E+00 1.0275597609526799E+00 + 1.0310172805285169E+00 1.0344733171243570E+00 1.0379276839339062E+00 + 1.0413801916585139E+00 1.0448306484815642E+00 1.0482788600432236E+00 + 1.0517246294146312E+00 1.0551677570718998E+00 1.0586080408699170E+00 + 1.0620452760158143E+00 1.0654792550422734E+00 1.0689097677804935E+00 + 1.0723366013330693E+00 1.0757595400463407E+00 1.0791783654827554E+00 + 1.0825928563927691E+00 1.0860027886866903E+00 1.0894079354058774E+00 + 1.0928080666942213E+00 1.0962029497687951E+00 1.0995923488905643E+00 + 1.1029760253347971E+00 1.1063537373610464E+00 1.1097252401828992E+00 + 1.1130902859375809E+00 1.1164486236551538E+00 1.1197999992272860E+00 + 1.1231441553759220E+00 1.1264808316217336E+00 1.1298097642519092E+00 + 1.1331306862881212E+00 1.1364433274536412E+00 1.1397474141406254E+00 + 1.1430426693769482E+00 1.1463288127924676E+00 1.1496055605852480E+00 + 1.1528726254875432E+00 1.1561297167310545E+00 1.1593765400122362E+00 + 1.1626127974571761E+00 1.1658381875859609E+00 1.1690524052770050E+00 + 1.1722551417307536E+00 1.1754460844333068E+00 1.1786249171194578E+00 + 1.1817913197355452E+00 1.1849449684017608E+00 1.1880855353744735E+00 + 1.1912126890078820E+00 1.1943260937152338E+00 1.1974254099300021E+00 + 1.2005102940664176E+00 1.2035803984798488E+00 1.2066353714266491E+00 + 1.2096748570235636E+00 1.2126984952070583E+00 1.2157059216919397E+00 + 1.2186967679297693E+00 1.2216706610669428E+00 1.2246272239020057E+00 + 1.2275660748430510E+00 1.2304868278645631E+00 1.2333890924636508E+00 + 1.2362724736161419E+00 1.2391365717320306E+00 1.2419809826108441E+00 + 1.2448052973961399E+00 1.2476091025301019E+00 1.2503919797072369E+00 + 1.2531535058280090E+00 1.2558932529517193E+00 1.2586107882493587E+00 + 1.2613056739556467E+00 1.2639774673208020E+00 1.2666257205619957E+00 + 1.2692499808139168E+00 1.2718497900794945E+00 1.2744246851799725E+00 + 1.2769741977038345E+00 1.2794978539566448E+00 1.2819951749091143E+00 + 1.2844656761453654E+00 1.2869088678108886E+00 1.2893242545593500E+00 + 1.2917113354995962E+00 1.2940696041419184E+00 1.2963985483436782E+00 + 1.2986976502547150E+00 1.3009663862623815E+00 1.3032042269355695E+00 + 1.3054106369686476E+00 1.3075850751249967E+00 1.3097269941797103E+00 + 1.3118358408621067E+00 1.3139110557973706E+00 1.3159520734482584E+00 + 1.3179583220556268E+00 1.3199292235791134E+00 1.3218641936367446E+00 + 1.3237626414442738E+00 1.3256239697541605E+00 1.3274475747939383E+00 + 1.3292328462035272E+00 1.3309791669731044E+00 1.3326859133793414E+00 + 1.3343524549218615E+00 1.3359781542588642E+00 1.3375623671422332E+00 + 1.3391044423520229E+00 1.3406037216307334E+00 1.3420595396167014E+00 + 1.3434712237771118E+00 1.3448380943403775E+00 1.3461594642280177E+00 + 1.3474346389859542E+00 1.3486629167154474E+00 1.3498435880031003E+00 + 1.3509759358506306E+00 1.3520592356039551E+00 1.3530927548816345E+00 + 1.3540757535030425E+00 1.3550074834155965E+00 1.3558871886215209E+00 + 1.3567141051044145E+00 1.3574874607544976E+00 1.3582064752941634E+00 + 1.3588703602022121E+00 1.3594783186378623E+00 1.3600295453641162E+00 + 1.3605232266706269E+00 1.3609585402957671E+00 1.3613346553483423E+00 + 1.3616507322283764E+00 1.3619059225478931E+00 1.3620993690502907E+00 + 1.3622302055298252E+00 1.3622975567502051E+00 1.3623005383625388E+00 + 1.3622382568227460E+00 1.3621098093082435E+00 1.3619142836343276E+00 + 1.3616507581695292E+00 1.3613183017505204E+00 1.3609159735966514E+00 + 1.3604428232234025E+00 1.3598978903556473E+00 1.3592802048398909E+00 + 1.3585887865561013E+00 1.3578226453288611E+00 1.3569807808379999E+00 + 1.3560621825283146E+00 1.3550658295186455E+00 1.3539906905109085E+00 + 1.3528357236972899E+00 1.3515998766682018E+00 1.3502820863182836E+00 + 1.3488812787527491E+00 1.3473963691920909E+00 1.3458262618770793E+00 + 1.3441698499723693E+00 1.3424260154698482E+00 1.3405936290909124E+00 + 1.3386715501880406E+00 1.3366586266464662E+00 1.3345536947838363E+00 + 1.3323555792502206E+00 1.3300630929268875E+00 1.3276750368243080E+00 + 1.3251901999798137E+00 1.3226073593540353E+00 1.3199252797269720E+00 + 1.3171427135929292E+00 1.3142584010548892E+00 1.3112710697184384E+00 + 1.3081794345839681E+00 1.3049821979390184E+00 1.3016780492496371E+00 + 1.2982656650500912E+00 1.2947437088329508E+00 1.2911108309376369E+00 + 1.2873656684381396E+00 1.2835068450303033E+00 1.2795329709172933E+00 + 1.2754426426955785E+00 1.2712344432387077E+00 1.2669069415811411E+00 + 1.2624586928004125E+00 1.2578882378990259E+00 1.2531941036848759E+00 + 1.2483748026510901E+00 1.2434288328549234E+00 1.2383546777951078E+00 + 1.2331508062889029E+00 1.2278156723480109E+00 1.2223477150529993E+00 + 1.2167453584274146E+00 1.2110070113101983E+00 1.2051310672278710E+00 + 1.1991159042644148E+00 1.1929598849314127E+00 1.1866613560362245E+00 + 1.1802186485496791E+00 1.1736300774719759E+00 1.1668939416981843E+00 + 1.1600085238823008E+00 1.1529720902997553E+00 1.1457828907097962E+00 + 1.1384391582158224E+00 1.1309391091250360E+00 1.1232809428067654E+00 + 1.1154628415496390E+00 1.1074829704177858E+00 1.0993394771055598E+00 + 1.0910304917913209E+00 1.0825541269903234E+00 1.0739084774056189E+00 + 1.0650916197786722E+00 1.0561016127386593E+00 1.0469364966499959E+00 + 1.0375942934596383E+00 1.0280730065427581E+00 1.0183706205472862E+00 + 1.0084851012375107E+00 9.9841439533682030E-01 9.8815643036911793E-01 + 9.7770911449915743E-01 9.6707033637224527E-01 9.5623796495256108E-01 + 9.4520984936110108E-01 9.3398381871233049E-01 9.2255768194978682E-01 + 9.1092922768170070E-01 8.9909622401498590E-01 8.8705641838899674E-01 + 8.7480753740871731E-01 8.6234728667698868E-01 8.4967335062652616E-01 + 8.3678339235146604E-01 8.2367505343826253E-01 8.1034595379678165E-01 + 7.9679369149048362E-01 7.8301584256695522E-01 7.6900996088840723E-01 + 7.5477357796171385E-01 7.4030420276928666E-01 7.2559932159949914E-01 + 7.1065639787789447E-01 6.9547287199821595E-01 6.8004616115523731E-01 + 6.6437365917643565E-01 6.4845273635622747E-01 6.3228073928979833E-01 + 6.1585499070843819E-01 5.9917278931625650E-01 5.8223140962758335E-01 + 5.6502810180643537E-01 5.4756009150659357E-01 5.2982457971440988E-01 + 5.1181874259253413E-01 4.9353973132614459E-01 4.7498467197082700E-01 + 4.5615066530273135E-01 4.3703478667162576E-01 4.1763408585528605E-01 + 3.9794558691781595E-01 3.7796628806963289E-01 3.5769316153085312E-01 + 3.3712315339765037E-01 3.1625318351147685E-01 2.9508014533173904E-01 + 2.7360090581202801E-01 2.5181230527948151E-01 2.2971115731771163E-01 + 2.0729424865393223E-01 1.8455833904909658E-01 1.6150016119305055E-01 + 1.3811642060221652E-01 1.1440379552276404E-01 9.0358936836969411E-02 + 6.5978467974474930E-02 4.1258984827099297E-02 1.6197055668431035E-02 + -9.2107789219908389E-03 -3.4968006130473961E-02 -6.1078140976262518E-02 + -8.7544726374246956E-02 -1.1437133319293194E-01 -1.4156156030825709E-01 + -1.6911903465207134E-01 -1.9704741125666758E-01 -2.2535037329487823E-01 + -2.5403163211459656E-01 -2.8309492726928198E-01 -3.1254402654425467E-01 + -3.4238272597704034E-01 -3.7261484987450577E-01 -4.0324425082365689E-01 + -4.3427480969933097E-01 -4.6571043566590875E-01 -4.9755506617434975E-01 + -5.2981266695473095E-01 -5.6248723200351014E-01 -5.9558278356518612E-01 + -6.2910337210956790E-01 -6.6305307630308008E-01 -6.9743600297448982E-01 + -7.3225628707539636E-01 -7.6751809163400708E-01 -8.0322560770297080E-01 + -8.3938305430159188E-01 -8.7599467834948896E-01 -9.1306475459502234E-01 + -9.5059758553517992E-01 -9.8859750132770607E-01 -1.0270688596959741E+00 + -1.0660160458242329E+00 -1.1054434722446855E+00 -1.1453555787152985E+00 + -1.1857568320881078E+00 -1.2266517261670387E+00 -1.2680447815568174E+00 + -1.3099405455012119E+00 -1.3523435917113014E+00 -1.3952585201839549E+00 + -1.4386899570112348E+00 -1.4826425541804205E+00 -1.5271209893672060E+00 + -1.5721299657227590E+00 -1.6176742116557470E+00 -1.6637584806130756E+00 + -1.7103875508630200E+00 -1.7575662252829258E+00 -1.8052993311583865E+00 + -1.8535917199992269E+00 -1.9024482673803333E+00 -1.9518738728159828E+00 + -2.0018734596794165E+00 -2.0524519751795700E+00 -2.1036143904113946E+00 + -2.1553657004969353E+00 -2.2077109248381452E+00 -2.2606551075061678E+00 + -2.3142033177944716E+00 -2.3683606509669302E+00 -2.4231322292387492E+00 + -2.4785232030288991E+00 -2.5345387525311160E+00 -2.5911840896532787E+00 + -2.6484644603815402E+00 -2.7063851476295637E+00 -2.7649514746397985E+00 + -2.8241688090060628E+00 -2.8840425673922412E+00 -2.9445782210241496E+00 + -3.0057813020319086E+00 -3.0676574107206922E+00 -3.1302122238433538E+00 + -3.1934515039418168E+00 -3.2573811098137448E+00 -3.3220070081452588E+00 + -3.3873352863277320E+00 -3.4533721664506398E+00 -3.5201240204232112E+00 + -3.5875973861362924E+00 -3.6557989845158008E+00 -3.7247357372604828E+00 + -3.7944147849743080E+00 -3.8648435053196688E+00 -3.9360295307202158E+00 + -4.0079807650321984E+00 -4.0807053984935937E+00 -4.1542119201409022E+00 + -4.2285091267715362E+00 -4.3036061274277166E+00 -4.3795123422967466E+00 + -4.4562374948780779E+00 -4.5337915962708415E+00 -4.6121849205139567E+00 + -4.6914279700703743E+00 -4.7715314308222787E+00 -4.8525061163333421E+00 + -4.9343629016543531E+00 -5.0171126475874308E+00 -5.1007661170535439E+00 + -5.1853338859845728E+00 -5.2708262519060014E+00 -5.3572531440047397E+00 + -5.4446240388869862E+00 -5.5329478863292216E+00 -5.6222330490510899E+00 + -5.7124872598671095E+00 -5.8037175985507359E+00 -5.8959304894562905E+00 + -5.9891317195498699E+00 -6.0833264751497031E+00 -6.1785193945381840E+00 + -6.2747146327918104E+00 -6.3719159347542567E+00 -6.4701267120392085E+00 + -6.5693501202557574E+00 -6.6695891332043944E+00 -6.7708466114924697E+00 + -6.8731253637738350E+00 -6.9764281995409982E+00 -7.0807579730324557E+00 + -7.1861176183397157E+00 -7.2925101761816684E+00 -7.3999388130823176E+00 + -7.5084068338398460E+00 -7.6179176882403894E+00 -7.7284749729689768E+00 + -7.8400824296212495E+00 -7.9527439396379878E+00 -8.0664635168917513E+00 + -8.1812452985494861E+00 -8.2970935347382149E+00 -8.4140125774448364E+00 + -8.5320068689961150E+00 -8.6510809303911724E+00 -8.7712393496941310E+00 + -8.8924867706414581E+00 -9.0148278815751048E+00 -9.1382674047750427E+00 + -9.2628100862395701E+00 -9.3884606859364705E+00 -9.5152239685352864E+00 + -9.6431046946141556E+00 -9.7721076123305721E+00 -9.9022374495345140E+00 + -1.0033498906302087E+01 -1.0165896647863939E+01 -1.0299435297901388E+01 + -1.0434119432184207E+01 -1.0569953572522870E+01 -1.0706942181011401E+01 + -1.0845089654536324E+01 -1.0984400319529703E+01 -1.1124878426945143E+01 + -1.1266528147439390E+01 -1.1409353566740410E+01 -1.1553358681187078E+01 + -1.1698547393426381E+01 -1.1844923508255496E+01 -1.1992490728596371E+01 + -1.2141252651593190E+01 -1.2291212764823607E+01 -1.2442374442614657E+01 + -1.2594740942457079E+01 -1.2748315401510398E+01 -1.2903100833193994E+01 + -1.3059100123858165E+01 -1.3216316029530628E+01 -1.3374751172734847E+01 + -1.3534408039376224E+01 -1.3695288975693057E+01 -1.3857396185269122E+01 + -1.4020731726105936E+01 -1.4185297507752487E+01 -1.4351095288490326E+01 + -1.4518126672572146E+01 -1.4686393107514496E+01 -1.4855895881440576E+01 + -1.5026636120475482E+01 -1.5198614786191008E+01 -1.5371832673101803E+01 + -1.5546290406211472E+01 -1.5721988438609609E+01 -1.5898927049119905E+01 + -1.6077106340001230E+01 -1.6256526234701614E+01 -1.6437186475666945E+01 + -1.6619086622206332E+01 -1.6802226048415879E+01 -1.6986603941163278E+01 + -1.7172219298135328E+01 -1.7359070925952288E+01 -1.7547157438350627E+01 + -1.7736477254439833E+01 -1.7927028597034703E+01 -1.8118809491069044E+01 + -1.8311817762094545E+01 -1.8506051034869422E+01 -1.8701506732041999E+01 + -1.8898182072934784E+01 -1.9096074072434465E+01 -1.9295179539993363E+01 + -1.9495495078749922E+01 -1.9697017084772291E+01 -1.9899741746434067E+01 + -2.0103665043928142E+01 -2.0308782748924305E+01 -2.0515090424380933E+01 + -2.0722583424514948E+01 -2.0931256894939843E+01 -2.1141105772977667E+01 + -2.1352124788153645E+01 -2.1564308462880629E+01 -2.1777651113340397E+01 + -2.1992146850569352E+01 -2.2207789581756664E+01 -2.2424573011760238E+01 + -2.2642490644847889E+01 -2.2861535786670430E+01 -2.3081701546471486E+01 + -2.3302980839540208E+01 -2.3525366389910605E+01 -2.3748850733312480E+01 + -2.3973426220376730E+01 -2.4199085020097062E+01 -2.4425819123550689E+01 + -2.4653620347877244E+01 -2.4882480340516249E+01 -2.5112390583700570E+01 + -2.5343342399203813E+01 -2.5575326953336120E+01 -2.5808335262183800E+01 + -2.6042358197083967E+01 -2.6277386490327689E+01 -2.6513410741078637E+01 + -2.6750421421497165E+01 -2.6988408883055406E+01 -2.7227363363028058E+01 + -2.7467274991141505E+01 -2.7708133796362802E+01 -2.7949929713808537E+01 + -2.8192652591749553E+01 -2.8436292198690122E+01 -2.8680838230494185E+01 + -2.8926280317532903E+01 -2.9172608031824812E+01 -2.9419810894139065E+01 + -2.9667878381030810E+01 -2.9916799931777039E+01 -3.0166564955180110E+01 + -3.0417162836205502E+01 -3.0668582942419292E+01 -3.0920814630191721E+01 + -3.1173847250631574E+01 -3.1427670155216717E+01 -3.1682272701086767E+01 + -3.1937644255963459E+01 -3.2193774202665708E+01 -3.2450651943186507E+01 + -3.2708266902300124E+01 -3.2966608530669475E+01 -3.3225666307424824E+01 + -3.3485429742186071E+01 -3.3745888376504006E+01 -3.4007031784696125E+01 + -3.4268849574055487E+01 -3.4531331384414685E+01 -3.4794466887045793E+01 + -3.5058245782883652E+01 -3.5322657800059275E+01 -3.5587692690734535E+01 + -3.5853340227230582E+01 -3.6119590197446108E+01 -3.6386432399563873E+01 + -3.6653856636045816E+01 -3.6921852706920973E+01 -3.7190410402371825E+01 + -3.7459519494627919E+01 -3.7729169729177620E+01 -3.7999350815311331E+01 + -3.8270052416012348E+01 -3.8541264137212430E+01 -3.8812975516432623E+01 + -3.9085176010831574E+01 -3.9357854984683932E+01 -3.9631001696316503E+01 + -3.9904605284527243E+01 -4.0178654754517709E+01 -4.0453138963368524E+01 + -4.0728046605089425E+01 -4.1003366195277451E+01 -4.1279086055416975E+01 + -4.1555194296856548E+01 -4.1831678804498992E+01 -4.2108527220241903E+01 + -4.2385726926205706E+01 -4.2663265027788682E+01 -4.2941128336587475E+01 + -4.3219303353222998E+01 -4.3497776250112523E+01 -4.3776532854228279E+01 + -4.4055558629884182E+01 -4.4334838661592052E+01 -4.4614357637029883E+01 + -4.4894099830163917E+01 -4.5174049084567685E+01 -4.5454188796980937E+01 + -4.5734501901151177E+01 -4.6014970852002143E+01 -4.6295577610171925E+01 + -4.6576303626964602E+01 -4.6857129829760666E+01 -4.7138036607927816E+01 + -4.7419003799279224E+01 -4.7700010677120716E+01 -4.7981035937933427E+01 + -4.8262057689734249E+01 -4.8543053441160176E+01 -4.8824000091319057E+01 + -4.9104873920451290E+01 -4.9385650581447280E+01 -4.9666305092261950E+01 + -4.9946811829272185E+01 -5.0227144521617554E+01 -5.0507276246568601E+01 + -5.0787179425962584E+01 -5.1066825823749554E+01 -5.1346186544687789E+01 + -5.1625232034227295E+01 -5.1903932079622152E+01 -5.2182255812305321E+01 + -5.2460171711564925E+01 -5.2737647609553257E+01 -5.3014650697664038E+01 + -5.3291147534305651E+01 -5.3567104054101861E+01 -5.3842485578544689E+01 + -5.4117256828123892E+01 -5.4391381935956197E+01 -5.4664824462930333E+01 + -5.4937547414386863E+01 -5.5209513258342454E+01 -5.5480683945270528E+01 + -5.5751020929442127E+01 -5.6020485191829422E+01 -5.6289037264571078E+01 + -5.6556637256990648E+01 -5.6823244883160669E+01 -5.7088819494311025E+01 + -5.7353320099469435E+01 -5.7616705407521394E+01 -5.7878933857424748E+01 + -5.8139963653173091E+01 -5.8399752800141215E+01 -5.8658259142769033E+01 + -5.8915440403531768E+01 -5.9171254223144800E+01 -5.9425658201939896E+01 + -5.9678609942351322E+01 -5.9930067092438257E+01 -6.0179987390372411E+01 + -6.0428328709808163E+01 -6.0675049106052796E+01 -6.0920106862949275E+01 + -6.1163460540376619E+01 -6.1405069022275370E+01 -6.1644891565094753E+01 + -6.1882887846562745E+01 -6.2119018014669940E+01 -6.2353242736763221E+01 + -6.2585523248636655E+01 -6.2815821403509517E+01 -6.3044099720780920E+01 + -6.3270321434445009E+01 -6.3494450541057915E+01 -6.3716451847140142E+01 + -6.3936291015906704E+01 -6.4153934613212002E+01 -6.4369350152602280E+01 + -6.4582506139371006E+01 -6.4793372113511168E+01 -6.5001918691468290E+01 + -6.5208117606594072E+01 -6.5411941748212627E+01 -6.5613365199207450E+01 + -6.5812363272050519E+01 -6.6008912543192125E+01 -6.6202990885741073E+01 + -6.6394577500369408E+01 -6.6583652944377803E+01 -6.6770199158871392E+01 + -6.6954199493992846E+01 -6.7135638732175295E+01 -6.7314503109375138E+01 + -6.7490780334259412E+01 -6.7664459605321611E+01 -6.7835531625911656E+01 + -6.8003988617170023E+01 -6.8169824328860216E+01 -6.8333034048105048E+01 + -6.8493614606031514E+01 -6.8651564382341846E+01 -6.8806883307826809E+01 + -6.8959572864849434E+01 -6.9109636085826722E+01 -6.9257077549744892E+01 + -6.9401903376748692E+01 -6.9544121220845668E+01 -6.9683740260776261E+01 + -6.9820771189097172E+01 -6.9955226199536170E+01 -7.0087118972672542E+01 + -7.0216464660005016E+01 -7.0343279866470283E+01 -7.0467582631474158E+01 + -7.0589392408505304E+01 -7.0708730043395363E+01 -7.0825617751298566E+01 + -7.0940079092456998E+01 -7.1052138946825366E+01 -7.1161823487623707E+01 + -7.1269160153890041E+01 -7.1374177622105378E+01 -7.1476905776958475E+01 + -7.1577375681324540E+01 -7.1675619545523290E+01 -7.1771670695928790E+01 + -7.1865563542995019E+01 -7.1957333548766670E+01 -7.2047017193937549E+01 + -7.2134651944521309E+01 -7.2220276218197100E+01 -7.2303929350387989E+01 + -7.2385651560134065E+01 -7.2465483915812612E+01 -7.2543468300764616E+01 + -7.2619647378876479E+01 -7.2694064560169380E+01 -7.2766763966445907E+01 + -7.2837790397037864E+01 -7.2907189294703116E+01 -7.2975006711710421E+01 + -7.3041289276156192E+01 -7.3106084158547617E+01 -7.3169439038692488E+01 + -7.3231402072926130E+01 -7.3292021861709117E+01 -7.3351347417627409E+01 + -7.3409428133819276E+01 -7.3466313752859634E+01 -7.3522054336121570E+01 + -7.3576700233642057E+01 -7.3630302054508121E+01 -7.3682910637786136E+01 + -7.3734577024008672E+01 -7.3785352427235381E+01 -7.3835288207703059E+01 + -7.3884435845074307E+01 -7.3932846912299553E+01 -7.3980573050097433E+01 + -7.4027665942066491E+01 -7.4074177290429702E+01 -7.4120158792422387E+01 + -7.4165662117323876E+01 -7.4210738884137356E+01 -7.4255440639921687E+01 + -7.4299818838772183E+01 -7.4343924821454763E+01 -7.4387809795688440E+01 + -7.4431524817078028E+01 -7.4475120770691021E+01 -7.4518648353276816E+01 + -7.4562158056125142E+01 -7.4605700148555158E+01 -7.4649324662034417E+01 + -7.4693081374916545E+01 -7.4737019797795469E+01 -7.4781189159464716E+01 + -7.4825638393477959E+01 -7.4870416125299201E+01 -7.4915570660035627E+01 + -7.4961149970745112E+01 -7.5007201687305994E+01 -7.5053773085843488E+01 + -7.5100911078698601E+01 -7.5148662204933444E+01 -7.5197072621359055E+01 + -7.5246188094078235E+01 -7.5296053990530311E+01 -7.5346715272027780E+01 + -7.5398216486775652E+01 -7.5450601763358591E+01 -7.5503914804689501E+01 + -7.5558198882403715E+01 -7.5613496831692075E+01 -7.5669851046557511E+01 + -7.5727303475487972E+01 -7.5785895617531494E+01 -7.5845668518763205E+01 + -7.5906662769135252E+01 -7.5968918499694524E+01 -7.6032475380162495E+01 + -7.6097372616860824E+01 -7.6163648950977432E+01 -7.6231342657158351E+01 + -7.6300491542416694E+01 -7.6371132945349373E+01 -7.6443303735648399E+01 + -7.6517040313900907E+01 -7.6592378611663349E+01 -7.6669354091805019E+01 + -7.6748001749106564E+01 -7.6828356111108619E+01 -7.6910451239197954E+01 + -7.6994320729923217E+01 -7.7079997716533043E+01 -7.7167514870724546E+01 + -7.7256904404597620E+01 -7.7348198072802745E+01 -7.7441427174878200E+01 + -7.7536622557765057E+01 -7.7633814618495421E+01 -7.7733033307044380E+01 + -7.7834308129337970E+01 -7.7937668150413430E+01 -7.8043141997719260E+01 + -7.8150757864554222E+01 -7.8260543513633522E+01 -7.8372526280779965E+01 + -7.8486733078730936E+01 -7.8603190401056324E+01 -7.8721924326182432E+01 + -7.8842960521513803E+01 -7.8966324247650761E+01 -7.9092040362693510E+01 + -7.9220133326631966E+01 -7.9350627205811421E+01 -7.9483545677474623E+01 + -7.9618912034370950E+01 -7.9756749189430465E+01 -7.9897079680499147E+01 + -8.0039925675128700E+01 -8.0185308975419929E+01 -8.0333251022912521E+01 + -8.0483772903521142E+01 -8.0636895352510194E+01 -8.0792638759508080E+01 + -8.0951023173553892E+01 -8.1112068308175054E+01 -8.1275793546494114E+01 + -8.1442217946357943E+01 -8.1611360245491610E+01 -8.1783238866668725E+01 + -8.1957871922900949E+01 -8.2135277222639374E+01 -8.2315472274989574E+01 + -8.2498474294934795E+01 -8.2684300208566427E+01 -8.2872966658320777E+01 + -8.3064490008217177E+01 -8.3258886349099186E+01 -8.3456171503873136E+01 + -8.3656361032746332E+01 -8.3859470238459480E+01 -8.4065514171513669E+01 + -8.4274507635391458E+01 -8.4486465191766968E+01 -8.4701401165708120E+01 + -8.4919329650865194E+01 -8.5140264514648834E+01 -8.5364219403391587E+01 + -8.5591207747496583E+01 -8.5821242766568375E+01 -8.6054337474526250E+01 + -8.6290504684700636E+01 -8.6529757014907872E+01 -8.6772106892506883E+01 + -8.7017566559432183E+01 -8.7266148077206950E+01 -8.7517863331930997E+01 + -8.7772724039246640E+01 -8.8030741749279002E+01 -8.8291927851550398E+01 + -8.8556293579870584E+01 -8.8823850017197685E+01 -8.9094608100474076E+01 + -8.9368578625431851E+01 -8.9645772251371739E+01 -8.9926199505910660E+01 + -9.0209870789701057E+01 -9.0496796381118571E+01 -9.0786986440918525E+01 + -9.1080451016862241E+01 -9.1377200048308950E+01 -9.1677243370777632E+01 + -9.1980590720472890E+01 -9.2287251738779801E+01 -9.2597235976723013E+01 + -9.2910552899391007E+01 -9.3227211890327311E+01 -9.3547222255883355E+01 + -9.3870593229538329E+01 -9.4197333976179721E+01 -9.4527453596350284E+01 + -9.4860961130454271E+01 -9.5197865562929579E+01 -9.5538175826379472E+01 + -9.5881900805666376E+01 -9.6229049341968363E+01 -9.6579630236794358E+01 + -9.6933652255962130E+01 -9.7291124133534296E+01 -9.7652054575716548E+01 + -9.8016452264712967E+01 -9.8384325862542525E+01 -9.8755684014813156E+01 + -9.9130535354481296E+01 -9.9508888505291168E+01 -9.9890752084158791E+01 + -1.0027613472081714E+02 -1.0066504500065064E+02 -1.0105749159233673E+02 + -1.0145348309737193E+02 -1.0185314069264800E+02 -1.0225635492966165E+02 + -1.0266329041083630E+02 -1.0307381855537756E+02 -1.0348799223908790E+02 + -1.0390580473340349E+02 -1.0432725639534307E+02 -1.0475234858157741E+02 + -1.0518108281589517E+02 -1.0561346085063686E+02 -1.0604948466350206E+02 + -1.0648915645432616E+02 -1.0693247864205580E+02 -1.0737945386174619E+02 + -1.0783008496161395E+02 -1.0828437500013771E+02 -1.0874232724321128E+02 + -1.0920394516134458E+02 -1.0966923242691236E+02 -1.1013819291145310E+02 + -1.1061083068301116E+02 -1.1108715000352858E+02 -1.1156715532627874E+02 + -1.1205085129334763E+02 -1.1253824273315539E+02 -1.1302933465802379E+02 + -1.1352413226178366E+02 -1.1402264091742319E+02 -1.1452486617477888E+02 + -1.1503081375826241E+02 -1.1554048956462997E+02 -1.1605389966078563E+02 + -1.1657105028162484E+02 -1.1709194782791221E+02 -1.1761659886419407E+02 + -1.1814501011674797E+02 -1.1867718847156219E+02 -1.1921314097235167E+02 + -1.1975287481860236E+02 -1.2029639736364982E+02 -1.2084371611278458E+02 + -1.2139483872139041E+02 -1.2194977299310865E+02 -1.2250852687803001E+02 + -1.2307110847091597E+02 -1.2363752600944230E+02 -1.2420778787247150E+02 + -1.2478190257834619E+02 -1.2535987878320928E+02 -1.2594172527934329E+02 + -1.2652745099353515E+02 -1.2711706498545969E+02 -1.2771057644608297E+02 + -1.2830799469608789E+02 -1.2890932918431483E+02 -1.2951458948622346E+02 + -1.3012378530236825E+02 -1.3073692645689383E+02 -1.3135402289604218E+02 + -1.3197508468667760E+02 -1.3260012201482368E+02 -1.3322914518421322E+02 + -1.3386216461485287E+02 -1.3449919084159578E+02 -1.3514023451272888E+02 + -1.3578530638856657E+02 -1.3643441734005722E+02 -1.3708757834739600E+02 + -1.3774480049864519E+02 -1.3840609498836474E+02 -1.3907147311624490E+02 + -1.3974094628574889E+02 -1.4041452600275665E+02 -1.4109222387421616E+02 + -1.4177405160679544E+02 -1.4246002100554043E+02 -1.4315014397253233E+02 + -1.4384443250554727E+02 -1.4454289869671859E+02 -1.4524555473119591E+02 + -1.4595241288580741E+02 -1.4666348552771669E+02 -1.4737878511308259E+02 + -1.4809832418571148E+02 -1.4882211537571081E+02 -1.4955017139813609E+02 + -1.5028250505163300E+02 -1.5101912921707776E+02 -1.5176005685620692E+02 + -1.5250530101024566E+02 -1.5325487479852450E+02 -1.5400879141709240E+02 + -1.5476706413731785E+02 -1.5552970630448445E+02 -1.5629673133637473E+02 + -1.5706815272184346E+02 -1.5784398401938313E+02 -1.5862423885567378E+02 + -1.5940893092412560E+02 -1.6019807398340376E+02 -1.6099168185594493E+02 + -1.6178976842645685E+02 -1.6259234764040343E+02 -1.6339943350247782E+02 + -1.6421104007505514E+02 -1.6502718147663427E+02 -1.6584787188025757E+02 + -1.6667312551191796E+02 -1.6750295664894318E+02 -1.6833737961836616E+02 + -1.6917640879527283E+02 -1.7002005860112993E+02 -1.7086834350209580E+02 + -1.7172127800730507E+02 -1.7257887666713694E+02 -1.7344115407145600E+02 + -1.7430812484783479E+02 -1.7517980365974873E+02 -1.7605620520475077E+02 + -1.7693734421261803E+02 -1.7782323544347409E+02 -1.7871389368588717E+02 + -1.7960933375493767E+02 -1.8050957049026331E+02 -1.8141461875407111E+02 + -1.8232449342912591E+02 -1.8323920941670625E+02 -1.8415878163453021E+02 + -1.8508322501465454E+02 -1.8601255450133718E+02 -1.8694678504887355E+02 + -1.8788593161939500E+02 -1.8883000918063914E+02 -1.8977903270368157E+02 + -1.9073301716063713E+02 -1.9169197752232387E+02 -1.9265592875588990E+02 + -1.9362488582240766E+02 -1.9459886367442576E+02 -1.9557787725348777E+02 + -1.9656194148760761E+02 -1.9755107128870978E+02 -1.9854528155002487E+02 + -1.9954458714344887E+02 -2.0054900291685735E+02 -2.0155854369137674E+02 + -2.0257322425861670E+02 -2.0359305937785220E+02 -2.0461806377316748E+02 + -2.0564825213054780E+02 -2.0668363909493092E+02 -2.0772423926720580E+02 + -2.0877006720116805E+02 -2.0982113740042351E+02 -2.1087746431524212E+02 + -2.1193906233936414E+02 -2.1300594580675033E+02 -2.1407812898828544E+02 + -2.1515562608842242E+02 -2.1623845124177853E+02 -2.1732661850967244E+02 + -2.1842014187660561E+02 -2.1951903524669120E+02 -2.2062331244001845E+02 + -2.2173298718896552E+02 -2.2284807313444654E+02 -2.2396858382210394E+02 + -2.2509453269843294E+02 -2.2622593310685014E+02 -2.2736279828369393E+02 + -2.2850514135416083E+02 -2.2965297532818016E+02 -2.3080631309621609E+02 + -2.3196516742500916E+02 -2.3312955095324136E+02 -2.3429947618713967E+02 + -2.3547495549600092E+02 -2.3665600110765183E+02 -2.3784262510383115E+02 + -2.3903483941549902E+02 -2.4023265581807354E+02 -2.4143608592658614E+02 + -2.4264514119076520E+02 -2.4385983289003551E+02 -2.4508017212844229E+02 + -2.4630616982949024E+02 -2.4753783673090510E+02 -2.4877518337930729E+02 + + + 2.2062673953396339E-14 2.6563998936719431E-05 5.3270634337363991E-05 + 8.0120672075808104E-05 1.0711488213782507E-04 1.3425403864314968E-04 + 1.6153891986766758E-04 1.8897030826572648E-04 2.1654899049256189E-04 + 2.4427575742683513E-04 2.7215140419329655E-04 3.0017673018559372E-04 + 3.2835253908916390E-04 3.5667963890428602E-04 3.8515884196918635E-04 + 4.1379096498343591E-04 4.4257682903117268E-04 4.7151725960482344E-04 + 5.0061308662864004E-04 5.2986514448252081E-04 5.5927427202591634E-04 + 5.8884131262188400E-04 6.1856711416124197E-04 6.4845252908686632E-04 + 6.7849841441813559E-04 7.0870563177546366E-04 7.3907504740499059E-04 + 7.6960753220345812E-04 8.0030396174308538E-04 8.3116521629676319E-04 + 8.6219218086312614E-04 8.9338574519209348E-04 9.2474680381019207E-04 + 9.5627625604631560E-04 9.8797500605743026E-04 1.0198439628545210E-03 + 1.0518840403285707E-03 1.0840961572768559E-03 1.1164812374291168E-03 + 1.1490402094741594E-03 1.1817740070864901E-03 1.2146835689528716E-03 + 1.2477698387993975E-03 1.2810337654185413E-03 1.3144763026960791E-03 + 1.3480984096388409E-03 1.3819010504018522E-03 1.4158851943159938E-03 + 1.4500518159160094E-03 1.4844018949680760E-03 1.5189364164981101E-03 + 1.5536563708200674E-03 1.5885627535639829E-03 1.6236565657047717E-03 + 1.6589388135907874E-03 1.6944105089727727E-03 1.7300726690325104E-03 + 1.7659263164124829E-03 1.8019724792447936E-03 1.8382121911805819E-03 + 1.8746464914198610E-03 1.9112764247412159E-03 1.9481030415315714E-03 + 1.9851273978165542E-03 2.0223505552904027E-03 2.0597735813467394E-03 + 2.0973975491088443E-03 2.1352235374605139E-03 2.1732526310770180E-03 + 2.2114859204561323E-03 2.2499245019492672E-03 2.2885694777929504E-03 + 2.3274219561403575E-03 2.3664830510930815E-03 2.4057538827332143E-03 + 2.4452355771549584E-03 2.4849292664973501E-03 2.5248360889764693E-03 + 2.5649571889178814E-03 2.6052937167898118E-03 2.6458468292356969E-03 + 2.6866176891075025E-03 2.7276074654990438E-03 2.7688173337793594E-03 + 2.8102484756262636E-03 2.8519020790605423E-03 2.8937793384795022E-03 + 2.9358814546917500E-03 2.9782096349508735E-03 3.0207650929906732E-03 + 3.0635490490591734E-03 3.1065627299545484E-03 3.1498073690591401E-03 + 3.1932842063757644E-03 3.2369944885624526E-03 3.2809394689685399E-03 + 3.3251204076703480E-03 3.3695385715075262E-03 3.4141952341190281E-03 + 3.4590916759795606E-03 3.5042291844365834E-03 3.5496090537468898E-03 + 3.5952325851133383E-03 3.6411010867227747E-03 3.6872158737832738E-03 + 3.7335782685614088E-03 3.7801896004199154E-03 3.8270512058572789E-03 + 3.8741644285435173E-03 3.9215306193610324E-03 3.9691511364415037E-03 + 4.0170273452060029E-03 4.0651606184029868E-03 4.1135523361485070E-03 + 4.1622038859651057E-03 4.2111166628215875E-03 4.2602920691734271E-03 + 4.3097315150021727E-03 4.3594364178563558E-03 4.4094082028915682E-03 + 4.4596483029116837E-03 4.5101581584095314E-03 4.5609392176083011E-03 + 4.6119929365029616E-03 4.6633207789017958E-03 4.7149242164680766E-03 + 4.7668047287626079E-03 4.8189638032859940E-03 4.8714029355207003E-03 + 4.9241236289745017E-03 4.9771273952224889E-03 5.0304157539517239E-03 + 5.0839902330035523E-03 5.1378523684175422E-03 5.1920037044755661E-03 + 5.2464457937462378E-03 5.3011801971285764E-03 5.3562084838973331E-03 + 5.4115322317473827E-03 5.4671530268390629E-03 5.5230724638434935E-03 + 5.5792921459881378E-03 5.6358136851027219E-03 5.6926387016652527E-03 + 5.7497688248480706E-03 5.8072056925652111E-03 5.8649509515181514E-03 + 5.9230062572434364E-03 5.9813732741604677E-03 6.0400536756180911E-03 + 6.0990491439428538E-03 6.1583613704875905E-03 6.2179920556789366E-03 + 6.2779429090665181E-03 6.3382156493714094E-03 6.3988120045353532E-03 + 6.4597337117701051E-03 6.5209825176074281E-03 6.5825601779485061E-03 + 6.6444684581143075E-03 6.7067091328959685E-03 6.7692839866057460E-03 + 6.8321948131272190E-03 6.8954434159676781E-03 6.9590316083088660E-03 + 7.0229612130586344E-03 7.0872340629038197E-03 7.1518520003615018E-03 + 7.2168168778322661E-03 7.2821305576533267E-03 7.3477949121515812E-03 + 7.4138118236956449E-03 7.4801831847521195E-03 7.5469108979380603E-03 + 7.6139968760750593E-03 7.6814430422446405E-03 7.7492513298425634E-03 + 7.8174236826348935E-03 7.8859620548121945E-03 7.9548684110465322E-03 + 8.0241447265467121E-03 8.0937929871147379E-03 8.1638151892029654E-03 + 8.2342133399708004E-03 8.3049894573414482E-03 8.3761455700609808E-03 + 8.4476837177537463E-03 8.5196059509828788E-03 8.5919143313081051E-03 + 8.6646109313439097E-03 8.7376978348191071E-03 8.8111771366364104E-03 + 8.8850509429314727E-03 8.9593213711343864E-03 9.0339905500285856E-03 + 9.1090606198123980E-03 9.1845337321590156E-03 9.2604120502795505E-03 + 9.3366977489831807E-03 9.4133930147398386E-03 9.4905000457421312E-03 + 9.5680210519688627E-03 9.6459582552463688E-03 9.7243138893143410E-03 + 9.8030901998863215E-03 9.8822894447165733E-03 9.9619138936625495E-03 + 1.0041965828750173E-02 1.0122447544239134E-02 1.0203361346688101E-02 + 1.0284709555019584E-02 1.0366494500587133E-02 1.0448718527241446E-02 + 1.0531383991396075E-02 1.0614493262095971E-02 1.0698048721084586E-02 + 1.0782052762870567E-02 1.0866507794797380E-02 1.0951416237110682E-02 + 1.1036780523028018E-02 1.1122603098807892E-02 1.1208886423818539E-02 + 1.1295632970609147E-02 1.1382845224979884E-02 1.1470525686051255E-02 + 1.1558676866337523E-02 1.1647301291816044E-02 1.1736401502000351E-02 + 1.1825980050011913E-02 1.1916039502653183E-02 1.2006582440479403E-02 + 1.2097611457873339E-02 1.2189129163118741E-02 1.2281138178473872E-02 + 1.2373641140244807E-02 1.2466640698864627E-02 1.2560139518964258E-02 + 1.2654140279450398E-02 1.2748645673580713E-02 1.2843658409041342E-02 + 1.2939181208021991E-02 1.3035216807295989E-02 1.3131767958295362E-02 + 1.3228837427190030E-02 1.3326427994967315E-02 1.3424542457508291E-02 + 1.3523183625670303E-02 1.3622354325363954E-02 1.3722057397634983E-02 + 1.3822295698744764E-02 1.3923072100249545E-02 1.4024389489085441E-02 + 1.4126250767646110E-02 1.4228658853868195E-02 1.4331616681312550E-02 + 1.4435127199248460E-02 1.4539193372735305E-02 1.4643818182709047E-02 + 1.4749004626064700E-02 1.4854755715743077E-02 1.4961074480814466E-02 + 1.5067963966564979E-02 1.5175427234583278E-02 1.5283467362847273E-02 + 1.5392087445809196E-02 1.5501290594487719E-02 1.5611079936551114E-02 + 1.5721458616408737E-02 1.5832429795298242E-02 1.5943996651377617E-02 + 1.6056162379812149E-02 1.6168930192866148E-02 1.6282303319994775E-02 + 1.6396285007932374E-02 1.6510878520787784E-02 1.6626087140134454E-02 + 1.6741914165104295E-02 1.6858362912479299E-02 1.6975436716786963E-02 + 1.7093138930393617E-02 1.7211472923599383E-02 1.7330442084733763E-02 + 1.7450049820249496E-02 1.7570299554821006E-02 1.7691194731440256E-02 + 1.7812738811513098E-02 1.7934935274957702E-02 1.8057787620302905E-02 + 1.8181299364786293E-02 1.8305474044453030E-02 1.8430315214257455E-02 + 1.8555826448161214E-02 1.8682011339233914E-02 1.8808873499756535E-02 + 1.8936416561321827E-02 1.9064644174935020E-02 1.9193560011120134E-02 + 1.9323167760019935E-02 1.9453471131501743E-02 1.9584473855261703E-02 + 1.9716179680928533E-02 1.9848592378170393E-02 1.9981715736800298E-02 + 2.0115553566882074E-02 2.0250109698839412E-02 2.0385387983561154E-02 + 2.0521392292509866E-02 2.0658126517832023E-02 2.0795594572467324E-02 + 2.0933800390255559E-02 2.1072747926052345E-02 2.1212441155833608E-02 + 2.1352884076812829E-02 2.1494080707550267E-02 2.1636035088066302E-02 + 2.1778751279953087E-02 2.1922233366492638E-02 2.2066485452767168E-02 + 2.2211511665775646E-02 2.2357316154548890E-02 2.2503903090265013E-02 + 2.2651276666370731E-02 2.2799441098691149E-02 2.2948400625554595E-02 + 2.3098159507907640E-02 2.3248722029434291E-02 2.3400092496675653E-02 + 2.3552275239153670E-02 2.3705274609485748E-02 2.3859094983514618E-02 + 2.4013740760422089E-02 2.4169216362855062E-02 2.4325526237053738E-02 + 2.4482674852965954E-02 2.4640666704382985E-02 2.4799506309053615E-02 + 2.4959198208818832E-02 2.5119746969735141E-02 2.5281157182199636E-02 + 2.5443433461081202E-02 2.5606580445846436E-02 2.5770602800692377E-02 + 2.5935505214668812E-02 2.6101292401819663E-02 2.6267969101301723E-02 + 2.6435540077528165E-02 2.6604010120290282E-02 2.6773384044897153E-02 + 2.6943666692309340E-02 2.7114862929267059E-02 2.7286977648435167E-02 + 2.7460015768526632E-02 2.7633982234451831E-02 2.7808882017441704E-02 + 2.7984720115198043E-02 2.8161501552024865E-02 2.8339231378967746E-02 + 2.8517914673956514E-02 2.8697556541942556E-02 2.8878162115042124E-02 + 2.9059736552674811E-02 2.9242285041712088E-02 2.9425812796614020E-02 + 2.9610325059574439E-02 2.9795827100672346E-02 2.9982324218005930E-02 + 3.0169821737847068E-02 3.0358325014781778E-02 3.0547839431867507E-02 + 3.0738370400767819E-02 3.0929923361913171E-02 3.1122503784642024E-02 + 3.1316117167355807E-02 3.1510769037668827E-02 3.1706464952559965E-02 + 3.1903210498522488E-02 3.2101011291722069E-02 3.2299872978148160E-02 + 3.2499801233767230E-02 3.2700801764678711E-02 3.2902880307276366E-02 + 3.3106042628394852E-02 3.3310294525478727E-02 3.3515641826731779E-02 + 3.3722090391280830E-02 3.3929646109336103E-02 3.4138314902347505E-02 + 3.4348102723168433E-02 3.4559015556223753E-02 3.4771059417659449E-02 + 3.4984240355521473E-02 3.5198564449906829E-02 3.5414037813139336E-02 + 3.5630666589926890E-02 3.5848456957536821E-02 3.6067415125956355E-02 + 3.6287547338064927E-02 3.6508859869801000E-02 3.6731359030332492E-02 + 3.6955051162229566E-02 3.7179942641634343E-02 3.7406039878434154E-02 + 3.7633349316432127E-02 3.7861877433521943E-02 3.8091630741866091E-02 + 3.8322615788068247E-02 3.8554839153348140E-02 3.8788307453719424E-02 + 3.9023027340173592E-02 3.9259005498847532E-02 3.9496248651213303E-02 + 3.9734763554252046E-02 3.9974557000638067E-02 4.0215635818919689E-02 + 4.0458006873703788E-02 4.0701677065833657E-02 4.0946653332581108E-02 + 4.1192942647830938E-02 4.1440552022257132E-02 4.1689488503521423E-02 + 4.1939759176456419E-02 4.2191371163253763E-02 4.2444331623652291E-02 + 4.2698647755130784E-02 4.2954326793100933E-02 4.3211376011091124E-02 + 4.3469802720949857E-02 4.3729614273024714E-02 4.3990818056377480E-02 + 4.4253421498961790E-02 4.4517432067823062E-02 4.4782857269300182E-02 + 4.5049704649221610E-02 4.5317981793101245E-02 4.5587696326338092E-02 + 4.5858855914420689E-02 4.6131468263125003E-02 4.6405541118715046E-02 + 4.6681082268150542E-02 4.6958099539282497E-02 4.7236600801072497E-02 + 4.7516593963778844E-02 4.7798086979175078E-02 4.8081087840760789E-02 + 4.8365604583954572E-02 4.8651645286315791E-02 4.8939218067750624E-02 + 4.9228331090720390E-02 4.9518992560458081E-02 4.9811210725170453E-02 + 5.0104993876265311E-02 5.0400350348549929E-02 5.0697288520461327E-02 + 5.0995816814269852E-02 5.1295943696302998E-02 5.1597677677156444E-02 + 5.1901027311920159E-02 5.2206001200389915E-02 5.2512607987289316E-02 + 5.2820856362498655E-02 5.3130755061259853E-02 5.3442312864417786E-02 + 5.3755538598626564E-02 5.4070441136588314E-02 5.4387029397268881E-02 + 5.4705312346124149E-02 5.5025298995332664E-02 5.5346998404017203E-02 + 5.5670419678475386E-02 5.5995571972411354E-02 5.6322464487158490E-02 + 5.6651106471922966E-02 5.6981507224001277E-02 5.7313676089022200E-02 + 5.7647622461173616E-02 5.7983355783449084E-02 5.8320885547864958E-02 + 5.8660221295711606E-02 5.9001372617783550E-02 5.9344349154612286E-02 + 5.9689160596716487E-02 6.0035816684831628E-02 6.0384327210155547E-02 + 6.0734702014581261E-02 6.1086950990949164E-02 6.1441084083280417E-02 + 6.1797111287025239E-02 6.2155042649306866E-02 6.2514888269161586E-02 + 6.2876658297791516E-02 6.3240362938801101E-02 6.3606012448455401E-02 + 6.3973617135920230E-02 6.4343187363514340E-02 6.4714733546951397E-02 + 6.5088266155603272E-02 6.5463795712738609E-02 6.5841332795784788E-02 + 6.6220888036574221E-02 6.6602472121584197E-02 6.6986095792224004E-02 + 6.7371769845060617E-02 6.7759505132081996E-02 6.8149312560955702E-02 + 6.8541203095287523E-02 6.8935187754869329E-02 6.9331277615943473E-02 + 6.9729483811463516E-02 7.0129817531354860E-02 7.0532290022759028E-02 + 7.0936912590315579E-02 7.1343696596407116E-02 7.1752653461434071E-02 + 7.2163794664064113E-02 7.2577131741506415E-02 7.2992676289775210E-02 + 7.3410439963932317E-02 7.3830434478390591E-02 7.4252671607141066E-02 + 7.4677163184051820E-02 7.5103921103101920E-02 7.5532957318679483E-02 + 7.5964283845827665E-02 7.6397912760521075E-02 7.6833856199937614E-02 + 7.7272126362715160E-02 7.7712735509243708E-02 7.8155695961903110E-02 + 7.8601020105368083E-02 7.9048720386853941E-02 7.9498809316401117E-02 + 7.9951299467140205E-02 8.0406203475565902E-02 8.0863534041813456E-02 + 8.1323303929930132E-02 8.1785525968142592E-02 8.2250213049136794E-02 + 8.2717378130328839E-02 8.3187034234139687E-02 8.3659194448274660E-02 + 8.4133871925993101E-02 8.4611079886378657E-02 8.5090831614625953E-02 + 8.5573140462303701E-02 8.6058019847649464E-02 8.6545483255813987E-02 + 8.7035544239172091E-02 8.7528216417577562E-02 8.8023513478639528E-02 + 8.8521449178007000E-02 8.9022037339647267E-02 8.9525291856105069E-02 + 9.0031226688802229E-02 9.0539855868294078E-02 9.1051193494555760E-02 + 9.1565253737264943E-02 9.2082050836057458E-02 9.2601599100823662E-02 + 9.3123912911972542E-02 9.3649006720717812E-02 9.4176895049340986E-02 + 9.4707592491477643E-02 9.5241113712382197E-02 9.5777473449210684E-02 + 9.6316686511302652E-02 9.6858767780430205E-02 9.7403732211095551E-02 + 9.7951594830800612E-02 9.8502370740308376E-02 9.9056075113925959E-02 + 9.9612723199773795E-02 1.0017233032006385E-01 1.0073491187135003E-01 + 1.0130048332482496E-01 1.0186906022656719E-01 1.0244065819782590E-01 + 1.0301529293528924E-01 1.0359298021133630E-01 1.0417373587431367E-01 + 1.0475757584881080E-01 1.0534451613591042E-01 1.0593457281345921E-01 + 1.0652776203632572E-01 1.0712410003667699E-01 1.0772360312422292E-01 + 1.0832628768648030E-01 1.0893217018904007E-01 1.0954126717582308E-01 + 1.1015359526932313E-01 1.1076917117088271E-01 1.1138801166092335E-01 + 1.1201013359923020E-01 1.1263555392517073E-01 1.1326428965795447E-01 + 1.1389635789690451E-01 1.1453177582165791E-01 1.1517056069246144E-01 + 1.1581272985037118E-01 1.1645830071752908E-01 1.1710729079737135E-01 + 1.1775971767489660E-01 1.1841559901686503E-01 1.1907495257208148E-01 + 1.1973779617156698E-01 1.2040414772885043E-01 1.2107402524014663E-01 + 1.2174744678460882E-01 1.2242443052453611E-01 1.2310499470560976E-01 + 1.2378915765709479E-01 1.2447693779206982E-01 1.2516835360762155E-01 + 1.2586342368507933E-01 1.2656216669020107E-01 1.2726460137338330E-01 + 1.2797074656987165E-01 1.2868062119995016E-01 1.2939424426913537E-01 + 1.3011163486837152E-01 1.3083281217422749E-01 1.3155779544907256E-01 + 1.3228660404125131E-01 1.3301925738528492E-01 1.3375577500202332E-01 + 1.3449617649884152E-01 1.3524048156976071E-01 1.3598870999567880E-01 + 1.3674088164447981E-01 1.3749701647119025E-01 1.3825713451816188E-01 + 1.3902125591519582E-01 1.3978940087968733E-01 1.4056158971677371E-01 + 1.4133784281944975E-01 1.4211818066871598E-01 1.4290262383369132E-01 + 1.4369119297173127E-01 1.4448390882855872E-01 1.4528079223834639E-01 + 1.4608186412382465E-01 1.4688714549641513E-01 1.4769665745626520E-01 + 1.4851042119238334E-01 1.4932845798270519E-01 1.5015078919414923E-01 + 1.5097743628271498E-01 1.5180842079351667E-01 1.5264376436087079E-01 + 1.5348348870832379E-01 1.5432761564868613E-01 1.5517616708411119E-01 + 1.5602916500607455E-01 1.5688663149542303E-01 1.5774858872239531E-01 + 1.5861505894659628E-01 1.5948606451704522E-01 1.6036162787212102E-01 + 1.6124177153958544E-01 1.6212651813652557E-01 1.6301589036934905E-01 + 1.6390991103373143E-01 1.6480860301455635E-01 1.6571198928589576E-01 + 1.6662009291088270E-01 1.6753293704170333E-01 1.6845054491945363E-01 + 1.6937293987407950E-01 1.7030014532426016E-01 1.7123218477731589E-01 + 1.7216908182902610E-01 1.7311086016356075E-01 1.7405754355329303E-01 + 1.7500915585867255E-01 1.7596572102802491E-01 1.7692726309739931E-01 + 1.7789380619037418E-01 1.7886537451784598E-01 1.7984199237783621E-01 + 1.8082368415524352E-01 1.8181047432160868E-01 1.8280238743488847E-01 + 1.8379944813916985E-01 1.8480168116439410E-01 1.8580911132608544E-01 + 1.8682176352501950E-01 1.8783966274695593E-01 1.8886283406223087E-01 + 1.8989130262548426E-01 1.9092509367527644E-01 1.9196423253370407E-01 + 1.9300874460599690E-01 1.9405865538013661E-01 1.9511399042645633E-01 + 1.9617477539713785E-01 1.9724103602581086E-01 1.9831279812707017E-01 + 1.9939008759597629E-01 2.0047293040756131E-01 2.0156135261630487E-01 + 2.0265538035556729E-01 2.0375503983708967E-01 2.0486035735035174E-01 + 2.0597135926201290E-01 2.0708807201527032E-01 2.0821052212925623E-01 + 2.0933873619835139E-01 2.1047274089151094E-01 2.1161256295157033E-01 + 2.1275822919455059E-01 2.1390976650887428E-01 2.1506720185462255E-01 + 2.1623056226275225E-01 2.1739987483429088E-01 2.1857516673948091E-01 + 2.1975646521696066E-01 2.2094379757284396E-01 2.2213719117984262E-01 + 2.2333667347633190E-01 2.2454227196539517E-01 2.2575401421381594E-01 + 2.2697192785113079E-01 2.2819604056852941E-01 2.2942638011783473E-01 + 2.3066297431038985E-01 2.3190585101593097E-01 2.3315503816150943E-01 + 2.3441056373021743E-01 2.3567245576002005E-01 2.3694074234257273E-01 + 2.3821545162185073E-01 2.3949661179293508E-01 2.4078425110063564E-01 + 2.4207839783814061E-01 2.4337908034561412E-01 2.4468632700877838E-01 + 2.4600016625741902E-01 2.4732062656389853E-01 2.4864773644164800E-01 + 2.4998152444353153E-01 2.5132201916029578E-01 2.5266924921888079E-01 + 2.5402324328076581E-01 2.5538403004020138E-01 2.5675163822249186E-01 + 2.5812609658219193E-01 2.5950743390117886E-01 2.6089567898685867E-01 + 2.6229086067021046E-01 2.6369300780380500E-01 2.6510214925977232E-01 + 2.6651831392774328E-01 2.6794153071279625E-01 2.6937182853322300E-01 + 2.7080923631839920E-01 2.7225378300647440E-01 2.7370549754212925E-01 + 2.7516440887419613E-01 2.7663054595330305E-01 2.7810393772935249E-01 + 2.7958461314909355E-01 2.8107260115355198E-01 2.8256793067541530E-01 + 2.8407063063634785E-01 2.8558072994434780E-01 2.8709825749088363E-01 + 2.8862324214815610E-01 2.9015571276612884E-01 2.9169569816963614E-01 + 2.9324322715535805E-01 2.9479832848874049E-01 2.9636103090086363E-01 + 2.9793136308528373E-01 2.9950935369475074E-01 3.0109503133784549E-01 + 3.0268842457563100E-01 3.0428956191823214E-01 3.0589847182118562E-01 + 3.0751518268196854E-01 3.0913972283626528E-01 3.1077212055422093E-01 + 3.1241240403666670E-01 3.1406060141120140E-01 3.1571674072819933E-01 + 3.1738084995683652E-01 3.1905295698090314E-01 3.2073308959465252E-01 + 3.2242127549846344E-01 3.2411754229452311E-01 3.2582191748236783E-01 + 3.2753442845431852E-01 3.2925510249091344E-01 3.3098396675613057E-01 + 3.3272104829267474E-01 3.3446637401698937E-01 3.3621997071439857E-01 + 3.3798186503387456E-01 3.3975208348302655E-01 3.4153065242271663E-01 + 3.4331759806178652E-01 3.4511294645149765E-01 3.4691672348004221E-01 + 3.4872895486681815E-01 3.5054966615669697E-01 3.5237888271413853E-01 + 3.5421662971713785E-01 3.5606293215121454E-01 3.5791781480315443E-01 + 3.5978130225465504E-01 3.6165341887595021E-01 3.6353418881923005E-01 + 3.6542363601193095E-01 3.6732178414996086E-01 3.6922865669080246E-01 + 3.7114427684644075E-01 3.7306866757614726E-01 3.7500185157927585E-01 + 3.7694385128780222E-01 3.7889468885866523E-01 3.8085438616618800E-01 + 3.8282296479416061E-01 3.8480044602796704E-01 3.8678685084632042E-01 + 3.8878219991311153E-01 3.9078651356898292E-01 3.9279981182271689E-01 + 3.9482211434262643E-01 3.9685344044758974E-01 3.9889380909814826E-01 + 4.0094323888723177E-01 4.0300174803093203E-01 4.0506935435887265E-01 + 4.0714607530469676E-01 4.0923192789614254E-01 4.1132692874512627E-01 + 4.1343109403744172E-01 4.1554443952260267E-01 4.1766698050317264E-01 + 4.1979873182409327E-01 4.2193970786184182E-01 4.2408992251335664E-01 + 4.2624938918469174E-01 4.2841812077967323E-01 4.3059612968820082E-01 + 4.3278342777437889E-01 4.3498002636450234E-01 4.3718593623480784E-01 + 4.3940116759898384E-01 4.4162573009553180E-01 4.4385963277490598E-01 + 4.4610288408633958E-01 4.4835549186458018E-01 4.5061746331637825E-01 + 4.5288880500663742E-01 4.5516952284451040E-01 4.5745962206908009E-01 + 4.5975910723493901E-01 4.6206798219755441E-01 4.6438625009812567E-01 + 4.6671391334859091E-01 4.6905097361605907E-01 4.7139743180718291E-01 + 4.7375328805203515E-01 4.7611854168818057E-01 4.7849319124386752E-01 + 4.8087723442149977E-01 4.8327066808044777E-01 4.8567348821987844E-01 + 4.8808568996103369E-01 4.9050726752943136E-01 4.9293821423668549E-01 + 4.9537852246199793E-01 4.9782818363345660E-01 5.0028718820894547E-01 + 5.0275552565679171E-01 5.0523318443602405E-01 5.0772015197642828E-01 + 5.1021641465824596E-01 5.1272195779144014E-01 5.1523676559489417E-01 + 5.1776082117483935E-01 5.2029410650346519E-01 5.2283660239681251E-01 + 5.2538828849244501E-01 5.2794914322667619E-01 5.3051914381171483E-01 + 5.3309826621209533E-01 5.3568648512085448E-01 5.3828377393556559E-01 + 5.4089010473363852E-01 5.4350544824744351E-01 5.4612977383901939E-01 + 5.4876304947437504E-01 5.5140524169732352E-01 5.5405631560308988E-01 + 5.5671623481125354E-01 5.5938496143848759E-01 5.6206245607086047E-01 + 5.6474867773546178E-01 5.6744358387199445E-01 5.7014713030356667E-01 + 5.7285927120721558E-01 5.7557995908400716E-01 5.7830914472858275E-01 + 5.8104677719820452E-01 5.8379280378160603E-01 5.8654716996690370E-01 + 5.8930981940950777E-01 5.9208069389927720E-01 5.9485973332707898E-01 + 5.9764687565124108E-01 6.0044205686307750E-01 6.0324521095213890E-01 + 6.0605626987082917E-01 6.0887516349864046E-01 6.1170181960569114E-01 + 6.1453616381577558E-01 6.1737811956889854E-01 6.2022760808328758E-01 + 6.2308454831668492E-01 6.2594885692730584E-01 6.2882044823399486E-01 + 6.3169923417591822E-01 6.3458512427169056E-01 6.3747802557775923E-01 + 6.4037784264648556E-01 6.4328447748315509E-01 6.4619782950280980E-01 + 6.4911779548620419E-01 6.5204426953516992E-01 6.5497714302747589E-01 + 6.5791630457075934E-01 6.6086163995612723E-01 6.6381303211074860E-01 + 6.6677036105015308E-01 6.6973350382954777E-01 6.7270233449450323E-01 + 6.7567672403113932E-01 6.7865654031530898E-01 6.8164164806130922E-01 + 6.8463190876972446E-01 6.8762718067467044E-01 6.9062731869021055E-01 + 6.9363217435598279E-01 6.9664159578224294E-01 6.9965542759390387E-01 + 7.0267351087415586E-01 7.0569568310694630E-01 7.0872177811886239E-01 + 7.1175162602011921E-01 7.1478505314505336E-01 7.1782188199129193E-01 + 7.2086193115854735E-01 7.2390501528635309E-01 7.2695094499098900E-01 + 7.2999952680178493E-01 7.3305056309616157E-01 7.3610385203418438E-01 + 7.3915918749214637E-01 7.4221635899498672E-01 7.4527515164846581E-01 + 7.4833534606963747E-01 7.5139671831713628E-01 7.5445903982015494E-01 + 7.5752207730661736E-01 7.6058559273035697E-01 7.6364934319746314E-01 + 7.6671308089164758E-01 7.6977655299865999E-01 7.7283950162966841E-01 + 7.7590166374384650E-01 7.7896277106974154E-01 7.8202255002597643E-01 + 7.8508072164057496E-01 7.8813700146975385E-01 7.9119109951516164E-01 + 7.9424272014060471E-01 7.9729156198752749E-01 8.0033731788934381E-01 + 8.0337967478509509E-01 8.0641831363159355E-01 8.0945290931494540E-01 + 8.1248313056069943E-01 8.1550863984326083E-01 8.1852909329384671E-01 + 8.2154414060765657E-01 8.2455342494991724E-01 8.2755658286055633E-01 + 8.3055324415838749E-01 8.3354303184343947E-01 8.3652556199880823E-01 + 8.3950044369102317E-01 8.4246727886956474E-01 8.4542566226489502E-01 + 8.4837518128575462E-01 8.5131541591512205E-01 8.5424593860504394E-01 + 8.5716631417029088E-01 8.6007609968111032E-01 8.6297484435450900E-01 + 8.6586208944452669E-01 8.6873736813140445E-01 8.7160020540959460E-01 + 8.7445011797445438E-01 8.7728661410802644E-01 8.8010919356335604E-01 + 8.8291734744805550E-01 8.8571055810618893E-01 8.8848829899950543E-01 + 8.9125003458706797E-01 8.9399522020421918E-01 8.9672330193959426E-01 + 8.9943371651205872E-01 9.0212589114545516E-01 9.0479924344273654E-01 + 9.0745318125893437E-01 9.1008710257275394E-01 9.1270039535736913E-01 + 9.1529243744948097E-01 9.1786259641789902E-01 9.2041022943069062E-01 + 9.2293468312101201E-01 9.2543529345227593E-01 9.2791138558164921E-01 + 9.3036227372305491E-01 9.3278726100855891E-01 9.3518563934892196E-01 + 9.3755668929316727E-01 9.3989967988666301E-01 9.4221386852882294E-01 + 9.4449850082894438E-01 9.4675281046189697E-01 9.4897601902201034E-01 + 9.5116733587644842E-01 9.5332595801748343E-01 9.5545106991373618E-01 + 9.5754184336049863E-01 9.5959743732920255E-01 9.6161699781585575E-01 + 9.6359965768867784E-01 9.6554453653479333E-01 9.6745074050627644E-01 + 9.6931736216505371E-01 9.7114348032727382E-01 9.7292815990674342E-01 + 9.7467045175782518E-01 9.7636939251732702E-01 9.7802400444602799E-01 + 9.7963329526928467E-01 9.8119625801718180E-01 9.8271187086393785E-01 + 9.8417909696714712E-01 9.8559688430569503E-01 9.8696416551835309E-01 + 9.8827985774080551E-01 9.8954286244284628E-01 9.9075206526544624E-01 + 9.9190633585684984E-01 9.9300452770889891E-01 9.9404547799299170E-01 + 9.9502800739589503E-01 9.9595091995523177E-01 9.9681300289532837E-01 + 9.9761302646256633E-01 9.9834974376101648E-01 9.9902189058830193E-01 + 9.9962818527110719E-01 1.0001673285016761E+00 1.0006380031736499E+00 + 1.0010388742191507E+00 1.0013685884454984E+00 1.0016257743731340E+00 + 1.0018090420732395E+00 1.0019169830067696E+00 1.0019481698637376E+00 + 1.0019011564031517E+00 1.0017744772944284E+00 1.0015666479587528E+00 + 1.0012761644123067E+00 1.0009015031102000E+00 1.0004411207914885E+00 + 9.9989345432576104E-01 9.9925692056072990E-01 9.9852991617145814E-01 + 9.9771081751134216E-01 9.9679798046396639E-01 9.9578974029776013E-01 + 9.9468441152154730E-01 9.9348028774265729E-01 9.9217564152669602E-01 + 9.9076872425972140E-01 9.8925776601254567E-01 9.8764097540746454E-01 + 9.8591653948753433E-01 9.8408262358827581E-01 9.8213737121239109E-01 + 9.8007890390698482E-01 9.7790532114406525E-01 9.7561470020412355E-01 + 9.7320509606266870E-01 9.7067454128042596E-01 9.6802104589691662E-01 + 9.6524259732752082E-01 9.6233716026485172E-01 9.5930267658306234E-01 + 9.5613706524735842E-01 9.5283822222669723E-01 9.4940402041146721E-01 + 9.4583230953541741E-01 9.4212091610220572E-01 9.3826764331667578E-01 + 9.3427027102124560E-01 9.3012655563732116E-01 9.2583423011173971E-01 + 9.2139100386895167E-01 9.1679456276863636E-01 9.1204256906848824E-01 + 9.0713266139417081E-01 9.0206245471382296E-01 8.9682954031962658E-01 + 8.9143148581579812E-01 8.8586583511221084E-01 8.8013010842585437E-01 + 8.7422180228823021E-01 8.6813838956050993E-01 8.6187731945473334E-01 + 8.5543601756345700E-01 8.4881188589666512E-01 8.4200230292542466E-01 + 8.3500462363457117E-01 8.2781617958238951E-01 8.2043427896895382E-01 + 8.1285620671249115E-01 8.0507922453398983E-01 7.9710057105076237E-01 + 7.8891746187850609E-01 7.8052708974180696E-01 7.7192662459438233E-01 + 7.6311321374749663E-01 7.5408398200868765E-01 7.4483603182854385E-01 + 7.3536644345802993E-01 7.2567227511503973E-01 7.1575056316002494E-01 + 7.0559832228234898E-01 6.9521254569580249E-01 6.8459020534447945E-01 + 6.7372825211805887E-01 6.6262361607797604E-01 6.5127320669282973E-01 + 6.3967391308466293E-01 6.2782260428500192E-01 6.1571612950138099E-01 + 6.0335131839346479E-01 5.9072498136067375E-01 5.7783390983805949E-01 + 5.6467487660440430E-01 5.5124463609865071E-01 5.3753992474753587E-01 + 5.2355746130241487E-01 5.0929394718660426E-01 4.9474606685160011E-01 + 4.7991048814335779E-01 4.6478386267831484E-01 4.4936282622780049E-01 + 4.3364399911154133E-01 4.1762398660087585E-01 4.0129937932934578E-01 + 3.8466675371194020E-01 3.6772267237227702E-01 3.5046368457734184E-01 + 3.3288632667918372E-01 3.1498712256320799E-01 2.9676258410388123E-01 + 2.7820921162473866E-01 2.5932349436453594E-01 2.4010191094845554E-01 + 2.2054092986299528E-01 2.0063700993441730E-01 1.8038660081085545E-01 + 1.5978614344553430E-01 1.3883207058264330E-01 1.1752080724276540E-01 + 9.5848771209048750E-02 7.3812373511470200E-02 5.1408018910522608E-02 + 2.8632106375894219E-02 5.4810295631000806E-03 -1.8048822716471305E-02 + -4.1961066030381959E-02 -6.6259319868946912E-02 -9.0947207196395513E-02 + -1.1602835401274822E-01 -1.4150638892742698E-01 -1.6738494274439777E-01 + -1.9366764806334166E-01 -2.2035813889541883E-01 -2.4746005029721860E-01 + -2.7497701802409463E-01 -3.0291267820343465E-01 -3.3127066703246566E-01 + -3.6005462049904147E-01 -3.8926817413046388E-01 -4.1891496276994644E-01 + -4.4899862038470612E-01 -4.7952277990651299E-01 -5.1049107310766328E-01 + -5.4190713051440631E-01 -5.7377458136018211E-01 -6.0609705358104082E-01 + -6.3887817385619861E-01 -6.7212156769566067E-01 -7.0583085957787950E-01 + -7.4000967313982913E-01 -7.7466163142263234E-01 -8.0979035717585224E-01 + -8.4539947322128806E-01 -8.8149260288228704E-01 -9.1807337047888438E-01 + -9.5514540189216146E-01 -9.9271232520288899E-01 -1.0307777714037423E+00 + -1.0693453751922752E+00 -1.1084187758433692E+00 -1.1480016181684791E+00 + -1.1880975535608349E+00 -1.2287102411318938E+00 -1.2698433489418490E+00 + -1.3115005553255150E+00 -1.3536855503183036E+00 -1.3964020371830683E+00 + -1.4396537340429734E+00 -1.4834443756199547E+00 -1.5277777150835552E+00 + -1.5726575260107321E+00 -1.6180876044597865E+00 -1.6640717711594524E+00 + -1.7106138738148697E+00 -1.7577177895318759E+00 -1.8053874273611712E+00 + -1.8536267309612562E+00 -1.9024396813826043E+00 -1.9518302999709900E+00 + -2.0018026513910829E+00 -2.0523608467676504E+00 -2.1035090469438793E+00 + -2.1552514658538309E+00 -2.2075923740057979E+00 -2.2605361020742749E+00 + -2.3140870445945301E+00 -2.3682496637543711E+00 -2.4230284932787591E+00 + -2.4784281423967389E+00 -2.5344532998858336E+00 -2.5911087381801066E+00 + -2.6483993175350808E+00 -2.7063299902334657E+00 -2.7649058048204229E+00 + -2.8241319103503573E+00 -2.8840135606299371E+00 -2.9445561184363571E+00 + -3.0057650596905607E+00 -3.0676459775604705E+00 -3.1302045864693007E+00 + -3.1934467259795376E+00 -3.2573783645218199E+00 -3.3220056029333609E+00 + -3.3873346777689530E+00 -3.4533719643429972E+00 -3.5201239794595773E+00 + -3.5875973837782489E+00 -3.6557989845158008E+00 -3.7247357372604828E+00 + -3.7944147849743080E+00 -3.8648435053196688E+00 -3.9360295307202158E+00 + -4.0079807650321984E+00 -4.0807053984935937E+00 -4.1542119201409022E+00 + -4.2285091267715362E+00 -4.3036061274277166E+00 -4.3795123422967466E+00 + -4.4562374948780779E+00 -4.5337915962708415E+00 -4.6121849205139567E+00 + -4.6914279700703743E+00 -4.7715314308222787E+00 -4.8525061163333421E+00 + -4.9343629016543531E+00 -5.0171126475874308E+00 -5.1007661170535439E+00 + -5.1853338859845728E+00 -5.2708262519060014E+00 -5.3572531440047397E+00 + -5.4446240388869862E+00 -5.5329478863292216E+00 -5.6222330490510899E+00 + -5.7124872598671095E+00 -5.8037175985507359E+00 -5.8959304894562905E+00 + -5.9891317195498699E+00 -6.0833264751497031E+00 -6.1785193945381840E+00 + -6.2747146327918104E+00 -6.3719159347542567E+00 -6.4701267120392085E+00 + -6.5693501202557574E+00 -6.6695891332043944E+00 -6.7708466114924697E+00 + -6.8731253637738350E+00 -6.9764281995409982E+00 -7.0807579730324557E+00 + -7.1861176183397157E+00 -7.2925101761816684E+00 -7.3999388130823176E+00 + -7.5084068338398460E+00 -7.6179176882403894E+00 -7.7284749729689768E+00 + -7.8400824296212495E+00 -7.9527439396379878E+00 -8.0664635168917513E+00 + -8.1812452985494861E+00 -8.2970935347382149E+00 -8.4140125774448364E+00 + -8.5320068689961150E+00 -8.6510809303911724E+00 -8.7712393496941310E+00 + -8.8924867706414581E+00 -9.0148278815751048E+00 -9.1382674047750427E+00 + -9.2628100862395701E+00 -9.3884606859364705E+00 -9.5152239685352864E+00 + -9.6431046946141556E+00 -9.7721076123305721E+00 -9.9022374495345140E+00 + -1.0033498906302087E+01 -1.0165896647863939E+01 -1.0299435297901388E+01 + -1.0434119432184207E+01 -1.0569953572522870E+01 -1.0706942181011401E+01 + -1.0845089654536324E+01 -1.0984400319529703E+01 -1.1124878426945143E+01 + -1.1266528147439390E+01 -1.1409353566740410E+01 -1.1553358681187078E+01 + -1.1698547393426381E+01 -1.1844923508255496E+01 -1.1992490728596371E+01 + -1.2141252651593190E+01 -1.2291212764823607E+01 -1.2442374442614657E+01 + -1.2594740942457079E+01 -1.2748315401510398E+01 -1.2903100833193994E+01 + -1.3059100123858165E+01 -1.3216316029530628E+01 -1.3374751172734847E+01 + -1.3534408039376224E+01 -1.3695288975693057E+01 -1.3857396185269122E+01 + -1.4020731726105936E+01 -1.4185297507752487E+01 -1.4351095288490326E+01 + -1.4518126672572146E+01 -1.4686393107514496E+01 -1.4855895881440576E+01 + -1.5026636120475482E+01 -1.5198614786191008E+01 -1.5371832673101803E+01 + -1.5546290406211472E+01 -1.5721988438609609E+01 -1.5898927049119905E+01 + -1.6077106340001230E+01 -1.6256526234701614E+01 -1.6437186475666945E+01 + -1.6619086622206332E+01 -1.6802226048415879E+01 -1.6986603941163278E+01 + -1.7172219298135328E+01 -1.7359070925952288E+01 -1.7547157438350627E+01 + -1.7736477254439833E+01 -1.7927028597034703E+01 -1.8118809491069044E+01 + -1.8311817762094545E+01 -1.8506051034869422E+01 -1.8701506732041999E+01 + -1.8898182072934784E+01 -1.9096074072434465E+01 -1.9295179539993363E+01 + -1.9495495078749922E+01 -1.9697017084772291E+01 -1.9899741746434067E+01 + -2.0103665043928142E+01 -2.0308782748924305E+01 -2.0515090424380933E+01 + -2.0722583424514948E+01 -2.0931256894939843E+01 -2.1141105772977667E+01 + -2.1352124788153645E+01 -2.1564308462880629E+01 -2.1777651113340397E+01 + -2.1992146850569352E+01 -2.2207789581756664E+01 -2.2424573011760238E+01 + -2.2642490644847889E+01 -2.2861535786670430E+01 -2.3081701546471486E+01 + -2.3302980839540208E+01 -2.3525366389910605E+01 -2.3748850733312480E+01 + -2.3973426220376730E+01 -2.4199085020097062E+01 -2.4425819123550689E+01 + -2.4653620347877244E+01 -2.4882480340516249E+01 -2.5112390583700570E+01 + -2.5343342399203813E+01 -2.5575326953336120E+01 -2.5808335262183800E+01 + -2.6042358197083967E+01 -2.6277386490327689E+01 -2.6513410741078637E+01 + -2.6750421421497165E+01 -2.6988408883055406E+01 -2.7227363363028058E+01 + -2.7467274991141505E+01 -2.7708133796362802E+01 -2.7949929713808537E+01 + -2.8192652591749553E+01 -2.8436292198690122E+01 -2.8680838230494185E+01 + -2.8926280317532903E+01 -2.9172608031824812E+01 -2.9419810894139065E+01 + -2.9667878381030810E+01 -2.9916799931777039E+01 -3.0166564955180110E+01 + -3.0417162836205502E+01 -3.0668582942419292E+01 -3.0920814630191721E+01 + -3.1173847250631574E+01 -3.1427670155216717E+01 -3.1682272701086767E+01 + -3.1937644255963459E+01 -3.2193774202665708E+01 -3.2450651943186507E+01 + -3.2708266902300124E+01 -3.2966608530669475E+01 -3.3225666307424824E+01 + -3.3485429742186071E+01 -3.3745888376504006E+01 -3.4007031784696125E+01 + -3.4268849574055487E+01 -3.4531331384414685E+01 -3.4794466887045793E+01 + -3.5058245782883652E+01 -3.5322657800059275E+01 -3.5587692690734535E+01 + -3.5853340227230582E+01 -3.6119590197446108E+01 -3.6386432399563873E+01 + -3.6653856636045816E+01 -3.6921852706920973E+01 -3.7190410402371825E+01 + -3.7459519494627919E+01 -3.7729169729177620E+01 -3.7999350815311331E+01 + -3.8270052416012348E+01 -3.8541264137212430E+01 -3.8812975516432623E+01 + -3.9085176010831574E+01 -3.9357854984683932E+01 -3.9631001696316503E+01 + -3.9904605284527243E+01 -4.0178654754517709E+01 -4.0453138963368524E+01 + -4.0728046605089425E+01 -4.1003366195277451E+01 -4.1279086055416975E+01 + -4.1555194296856548E+01 -4.1831678804498992E+01 -4.2108527220241903E+01 + -4.2385726926205706E+01 -4.2663265027788682E+01 -4.2941128336587475E+01 + -4.3219303353222998E+01 -4.3497776250112523E+01 -4.3776532854228279E+01 + -4.4055558629884182E+01 -4.4334838661592052E+01 -4.4614357637029883E+01 + -4.4894099830163917E+01 -4.5174049084567685E+01 -4.5454188796980937E+01 + -4.5734501901151177E+01 -4.6014970852002143E+01 -4.6295577610171925E+01 + -4.6576303626964602E+01 -4.6857129829760666E+01 -4.7138036607927816E+01 + -4.7419003799279224E+01 -4.7700010677120716E+01 -4.7981035937933427E+01 + -4.8262057689734249E+01 -4.8543053441160176E+01 -4.8824000091319057E+01 + -4.9104873920451290E+01 -4.9385650581447280E+01 -4.9666305092261950E+01 + -4.9946811829272185E+01 -5.0227144521617554E+01 -5.0507276246568601E+01 + -5.0787179425962584E+01 -5.1066825823749554E+01 -5.1346186544687789E+01 + -5.1625232034227295E+01 -5.1903932079622152E+01 -5.2182255812305321E+01 + -5.2460171711564925E+01 -5.2737647609553257E+01 -5.3014650697664038E+01 + -5.3291147534305651E+01 -5.3567104054101861E+01 -5.3842485578544689E+01 + -5.4117256828123892E+01 -5.4391381935956197E+01 -5.4664824462930333E+01 + -5.4937547414386863E+01 -5.5209513258342454E+01 -5.5480683945270528E+01 + -5.5751020929442127E+01 -5.6020485191829422E+01 -5.6289037264571078E+01 + -5.6556637256990648E+01 -5.6823244883160669E+01 -5.7088819494311025E+01 + -5.7353320099469435E+01 -5.7616705407521394E+01 -5.7878933857424748E+01 + -5.8139963653173091E+01 -5.8399752800141215E+01 -5.8658259142769033E+01 + -5.8915440403531768E+01 -5.9171254223144800E+01 -5.9425658201939896E+01 + -5.9678609942351322E+01 -5.9930067092438257E+01 -6.0179987390372411E+01 + -6.0428328709808163E+01 -6.0675049106052796E+01 -6.0920106862949275E+01 + -6.1163460540376619E+01 -6.1405069022275370E+01 -6.1644891565094753E+01 + -6.1882887846562745E+01 -6.2119018014669940E+01 -6.2353242736763221E+01 + -6.2585523248636655E+01 -6.2815821403509517E+01 -6.3044099720780920E+01 + -6.3270321434445009E+01 -6.3494450541057915E+01 -6.3716451847140142E+01 + -6.3936291015906704E+01 -6.4153934613212002E+01 -6.4369350152602280E+01 + -6.4582506139371006E+01 -6.4793372113511168E+01 -6.5001918691468290E+01 + -6.5208117606594072E+01 -6.5411941748212627E+01 -6.5613365199207450E+01 + -6.5812363272050519E+01 -6.6008912543192125E+01 -6.6202990885741073E+01 + -6.6394577500369408E+01 -6.6583652944377803E+01 -6.6770199158871392E+01 + -6.6954199493992846E+01 -6.7135638732175295E+01 -6.7314503109375138E+01 + -6.7490780334259412E+01 -6.7664459605321611E+01 -6.7835531625911656E+01 + -6.8003988617170023E+01 -6.8169824328860216E+01 -6.8333034048105048E+01 + -6.8493614606031514E+01 -6.8651564382341846E+01 -6.8806883307826809E+01 + -6.8959572864849434E+01 -6.9109636085826722E+01 -6.9257077549744892E+01 + -6.9401903376748692E+01 -6.9544121220845668E+01 -6.9683740260776261E+01 + -6.9820771189097172E+01 -6.9955226199536170E+01 -7.0087118972672542E+01 + -7.0216464660005016E+01 -7.0343279866470283E+01 -7.0467582631474158E+01 + -7.0589392408505304E+01 -7.0708730043395363E+01 -7.0825617751298566E+01 + -7.0940079092456998E+01 -7.1052138946825366E+01 -7.1161823487623707E+01 + -7.1269160153890041E+01 -7.1374177622105378E+01 -7.1476905776958475E+01 + -7.1577375681324540E+01 -7.1675619545523290E+01 -7.1771670695928790E+01 + -7.1865563542995019E+01 -7.1957333548766670E+01 -7.2047017193937549E+01 + -7.2134651944521309E+01 -7.2220276218197100E+01 -7.2303929350387989E+01 + -7.2385651560134065E+01 -7.2465483915812612E+01 -7.2543468300764616E+01 + -7.2619647378876479E+01 -7.2694064560169380E+01 -7.2766763966445907E+01 + -7.2837790397037864E+01 -7.2907189294703116E+01 -7.2975006711710421E+01 + -7.3041289276156192E+01 -7.3106084158547617E+01 -7.3169439038692488E+01 + -7.3231402072926130E+01 -7.3292021861709117E+01 -7.3351347417627409E+01 + -7.3409428133819276E+01 -7.3466313752859634E+01 -7.3522054336121570E+01 + -7.3576700233642057E+01 -7.3630302054508121E+01 -7.3682910637786136E+01 + -7.3734577024008672E+01 -7.3785352427235381E+01 -7.3835288207703059E+01 + -7.3884435845074307E+01 -7.3932846912299553E+01 -7.3980573050097433E+01 + -7.4027665942066491E+01 -7.4074177290429702E+01 -7.4120158792422387E+01 + -7.4165662117323876E+01 -7.4210738884137356E+01 -7.4255440639921687E+01 + -7.4299818838772183E+01 -7.4343924821454763E+01 -7.4387809795688440E+01 + -7.4431524817078028E+01 -7.4475120770691021E+01 -7.4518648353276816E+01 + -7.4562158056125142E+01 -7.4605700148555158E+01 -7.4649324662034417E+01 + -7.4693081374916545E+01 -7.4737019797795469E+01 -7.4781189159464716E+01 + -7.4825638393477959E+01 -7.4870416125299201E+01 -7.4915570660035627E+01 + -7.4961149970745112E+01 -7.5007201687305994E+01 -7.5053773085843488E+01 + -7.5100911078698601E+01 -7.5148662204933444E+01 -7.5197072621359055E+01 + -7.5246188094078235E+01 -7.5296053990530311E+01 -7.5346715272027780E+01 + -7.5398216486775652E+01 -7.5450601763358591E+01 -7.5503914804689501E+01 + -7.5558198882403715E+01 -7.5613496831692075E+01 -7.5669851046557511E+01 + -7.5727303475487972E+01 -7.5785895617531494E+01 -7.5845668518763205E+01 + -7.5906662769135252E+01 -7.5968918499694524E+01 -7.6032475380162495E+01 + -7.6097372616860824E+01 -7.6163648950977432E+01 -7.6231342657158351E+01 + -7.6300491542416694E+01 -7.6371132945349373E+01 -7.6443303735648399E+01 + -7.6517040313900907E+01 -7.6592378611663349E+01 -7.6669354091805019E+01 + -7.6748001749106564E+01 -7.6828356111108619E+01 -7.6910451239197954E+01 + -7.6994320729923217E+01 -7.7079997716533043E+01 -7.7167514870724546E+01 + -7.7256904404597620E+01 -7.7348198072802745E+01 -7.7441427174878200E+01 + -7.7536622557765057E+01 -7.7633814618495421E+01 -7.7733033307044380E+01 + -7.7834308129337970E+01 -7.7937668150413430E+01 -7.8043141997719260E+01 + -7.8150757864554222E+01 -7.8260543513633522E+01 -7.8372526280779965E+01 + -7.8486733078730936E+01 -7.8603190401056324E+01 -7.8721924326182432E+01 + -7.8842960521513803E+01 -7.8966324247650761E+01 -7.9092040362693510E+01 + -7.9220133326631966E+01 -7.9350627205811421E+01 -7.9483545677474623E+01 + -7.9618912034370950E+01 -7.9756749189430465E+01 -7.9897079680499147E+01 + -8.0039925675128700E+01 -8.0185308975419929E+01 -8.0333251022912521E+01 + -8.0483772903521142E+01 -8.0636895352510194E+01 -8.0792638759508080E+01 + -8.0951023173553892E+01 -8.1112068308175054E+01 -8.1275793546494114E+01 + -8.1442217946357943E+01 -8.1611360245491610E+01 -8.1783238866668725E+01 + -8.1957871922900949E+01 -8.2135277222639374E+01 -8.2315472274989574E+01 + -8.2498474294934795E+01 -8.2684300208566427E+01 -8.2872966658320777E+01 + -8.3064490008217177E+01 -8.3258886349099186E+01 -8.3456171503873136E+01 + -8.3656361032746332E+01 -8.3859470238459480E+01 -8.4065514171513669E+01 + -8.4274507635391458E+01 -8.4486465191766968E+01 -8.4701401165708120E+01 + -8.4919329650865194E+01 -8.5140264514648834E+01 -8.5364219403391587E+01 + -8.5591207747496583E+01 -8.5821242766568375E+01 -8.6054337474526250E+01 + -8.6290504684700636E+01 -8.6529757014907872E+01 -8.6772106892506883E+01 + -8.7017566559432183E+01 -8.7266148077206950E+01 -8.7517863331930997E+01 + -8.7772724039246640E+01 -8.8030741749279002E+01 -8.8291927851550398E+01 + -8.8556293579870584E+01 -8.8823850017197685E+01 -8.9094608100474076E+01 + -8.9368578625431851E+01 -8.9645772251371739E+01 -8.9926199505910660E+01 + -9.0209870789701057E+01 -9.0496796381118571E+01 -9.0786986440918525E+01 + -9.1080451016862241E+01 -9.1377200048308950E+01 -9.1677243370777632E+01 + -9.1980590720472890E+01 -9.2287251738779801E+01 -9.2597235976723013E+01 + -9.2910552899391007E+01 -9.3227211890327311E+01 -9.3547222255883355E+01 + -9.3870593229538329E+01 -9.4197333976179721E+01 -9.4527453596350284E+01 + -9.4860961130454271E+01 -9.5197865562929579E+01 -9.5538175826379472E+01 + -9.5881900805666376E+01 -9.6229049341968363E+01 -9.6579630236794358E+01 + -9.6933652255962130E+01 -9.7291124133534296E+01 -9.7652054575716548E+01 + -9.8016452264712967E+01 -9.8384325862542525E+01 -9.8755684014813156E+01 + -9.9130535354481296E+01 -9.9508888505291168E+01 -9.9890752084158791E+01 + -1.0027613472081714E+02 -1.0066504500065064E+02 -1.0105749159233673E+02 + -1.0145348309737193E+02 -1.0185314069264800E+02 -1.0225635492966165E+02 + -1.0266329041083630E+02 -1.0307381855537756E+02 -1.0348799223908790E+02 + -1.0390580473340349E+02 -1.0432725639534307E+02 -1.0475234858157741E+02 + -1.0518108281589517E+02 -1.0561346085063686E+02 -1.0604948466350206E+02 + -1.0648915645432616E+02 -1.0693247864205580E+02 -1.0737945386174619E+02 + -1.0783008496161395E+02 -1.0828437500013771E+02 -1.0874232724321128E+02 + -1.0920394516134458E+02 -1.0966923242691236E+02 -1.1013819291145310E+02 + -1.1061083068301116E+02 -1.1108715000352858E+02 -1.1156715532627874E+02 + -1.1205085129334763E+02 -1.1253824273315539E+02 -1.1302933465802379E+02 + -1.1352413226178366E+02 -1.1402264091742319E+02 -1.1452486617477888E+02 + -1.1503081375826241E+02 -1.1554048956462997E+02 -1.1605389966078563E+02 + -1.1657105028162484E+02 -1.1709194782791221E+02 -1.1761659886419407E+02 + -1.1814501011674797E+02 -1.1867718847156219E+02 -1.1921314097235167E+02 + -1.1975287481860236E+02 -1.2029639736364982E+02 -1.2084371611278458E+02 + -1.2139483872139041E+02 -1.2194977299310865E+02 -1.2250852687803001E+02 + -1.2307110847091597E+02 -1.2363752600944230E+02 -1.2420778787247150E+02 + -1.2478190257834619E+02 -1.2535987878320928E+02 -1.2594172527934329E+02 + -1.2652745099353515E+02 -1.2711706498545969E+02 -1.2771057644608297E+02 + -1.2830799469608789E+02 -1.2890932918431483E+02 -1.2951458948622346E+02 + -1.3012378530236825E+02 -1.3073692645689383E+02 -1.3135402289604218E+02 + -1.3197508468667760E+02 -1.3260012201482368E+02 -1.3322914518421322E+02 + -1.3386216461485287E+02 -1.3449919084159578E+02 -1.3514023451272888E+02 + -1.3578530638856657E+02 -1.3643441734005722E+02 -1.3708757834739600E+02 + -1.3774480049864519E+02 -1.3840609498836474E+02 -1.3907147311624490E+02 + -1.3974094628574889E+02 -1.4041452600275665E+02 -1.4109222387421616E+02 + -1.4177405160679544E+02 -1.4246002100554043E+02 -1.4315014397253233E+02 + -1.4384443250554727E+02 -1.4454289869671859E+02 -1.4524555473119591E+02 + -1.4595241288580741E+02 -1.4666348552771669E+02 -1.4737878511308259E+02 + -1.4809832418571148E+02 -1.4882211537571081E+02 -1.4955017139813609E+02 + -1.5028250505163300E+02 -1.5101912921707776E+02 -1.5176005685620692E+02 + -1.5250530101024566E+02 -1.5325487479852450E+02 -1.5400879141709240E+02 + -1.5476706413731785E+02 -1.5552970630448445E+02 -1.5629673133637473E+02 + -1.5706815272184346E+02 -1.5784398401938313E+02 -1.5862423885567378E+02 + -1.5940893092412560E+02 -1.6019807398340376E+02 -1.6099168185594493E+02 + -1.6178976842645685E+02 -1.6259234764040343E+02 -1.6339943350247782E+02 + -1.6421104007505514E+02 -1.6502718147663427E+02 -1.6584787188025757E+02 + -1.6667312551191796E+02 -1.6750295664894318E+02 -1.6833737961836616E+02 + -1.6917640879527283E+02 -1.7002005860112993E+02 -1.7086834350209580E+02 + -1.7172127800730507E+02 -1.7257887666713694E+02 -1.7344115407145600E+02 + -1.7430812484783479E+02 -1.7517980365974873E+02 -1.7605620520475077E+02 + -1.7693734421261803E+02 -1.7782323544347409E+02 -1.7871389368588717E+02 + -1.7960933375493767E+02 -1.8050957049026331E+02 -1.8141461875407111E+02 + -1.8232449342912591E+02 -1.8323920941670625E+02 -1.8415878163453021E+02 + -1.8508322501465454E+02 -1.8601255450133718E+02 -1.8694678504887355E+02 + -1.8788593161939500E+02 -1.8883000918063914E+02 -1.8977903270368157E+02 + -1.9073301716063713E+02 -1.9169197752232387E+02 -1.9265592875588990E+02 + -1.9362488582240766E+02 -1.9459886367442576E+02 -1.9557787725348777E+02 + -1.9656194148760761E+02 -1.9755107128870978E+02 -1.9854528155002487E+02 + -1.9954458714344887E+02 -2.0054900291685735E+02 -2.0155854369137674E+02 + -2.0257322425861670E+02 -2.0359305937785220E+02 -2.0461806377316748E+02 + -2.0564825213054780E+02 -2.0668363909493092E+02 -2.0772423926720580E+02 + -2.0877006720116805E+02 -2.0982113740042351E+02 -2.1087746431524212E+02 + -2.1193906233936414E+02 -2.1300594580675033E+02 -2.1407812898828544E+02 + -2.1515562608842242E+02 -2.1623845124177853E+02 -2.1732661850967244E+02 + -2.1842014187660561E+02 -2.1951903524669120E+02 -2.2062331244001845E+02 + -2.2173298718896552E+02 -2.2284807313444654E+02 -2.2396858382210394E+02 + -2.2509453269843294E+02 -2.2622593310685014E+02 -2.2736279828369393E+02 + -2.2850514135416083E+02 -2.2965297532818016E+02 -2.3080631309621609E+02 + -2.3196516742500916E+02 -2.3312955095324136E+02 -2.3429947618713967E+02 + -2.3547495549600092E+02 -2.3665600110765183E+02 -2.3784262510383115E+02 + -2.3903483941549902E+02 -2.4023265581807354E+02 -2.4143608592658614E+02 + -2.4264514119076520E+02 -2.4385983289003551E+02 -2.4508017212844229E+02 + -2.4630616982949024E+02 -2.4753783673090510E+02 -2.4877518337930729E+02 + + + 1.7958101368800716E-14 2.1143952660784688E-05 4.2401438652598473E-05 + 6.3773067607513732E-05 8.5259452431152768E-05 1.0686120932064600E-04 + 1.2857895778203314E-04 1.5041332064806906E-04 1.7236492409615080E-04 + 1.9443439766614429E-04 2.1662237427871222E-04 2.3892949025336671E-04 + 2.6135638532670562E-04 2.8390370267035160E-04 3.0657208891054133E-04 + 3.2936219414456130E-04 3.5227467196292023E-04 3.7531017946376612E-04 + 3.9846937727561806E-04 4.2175292957302376E-04 4.4516150409899341E-04 + 4.6869577218095268E-04 4.9235640875181451E-04 5.1614409236979092E-04 + 5.4005950523581105E-04 5.6410333321510041E-04 5.8827626585620932E-04 + 6.1257899640984180E-04 6.3701222185016222E-04 6.6157664289393956E-04 + 6.8627296402183570E-04 7.1110189349649024E-04 7.3606414338431129E-04 + 7.6116042957666535E-04 7.8639147180847684E-04 8.1175799367918166E-04 + 8.3726072267657965E-04 8.6290039019193095E-04 8.8867773154704401E-04 + 9.1459348601107828E-04 9.4064839682312848E-04 9.6684321121591899E-04 + 9.9317868043189718E-04 1.0196555597506410E-03 1.0462746085059553E-03 + 1.0730365901101199E-03 1.0999422720763990E-03 1.1269924260369896E-03 + 1.1541878277710740E-03 1.1815292572223142E-03 1.2090174985259145E-03 + 1.2366533400214668E-03 1.2644375742893804E-03 1.2923709981630894E-03 + 1.3204544127556218E-03 1.3486886234837547E-03 1.3770744400882710E-03 + 1.4056126766592927E-03 1.4343041516592366E-03 1.4631496879448545E-03 + 1.4921501127924152E-03 1.5213062579243200E-03 1.5506189595230169E-03 + 1.5800890582708374E-03 1.6097173993540382E-03 1.6395048325078660E-03 + 1.6694522120292135E-03 1.6995603967948705E-03 1.7298302503058710E-03 + 1.7602626406916875E-03 1.7908584407528808E-03 1.8216185279685134E-03 + 1.8525437845344399E-03 1.8836350973874066E-03 1.9148933582219243E-03 + 1.9463194635268978E-03 1.9779143146041772E-03 2.0096788175919087E-03 + 2.0416138835009649E-03 2.0737204282334004E-03 2.1059993726092858E-03 + 2.1384516423946366E-03 2.1710781683284323E-03 2.2038798861447511E-03 + 2.2368577366100794E-03 2.2700126655392197E-03 2.3033456238277924E-03 + 2.3368575674782041E-03 2.3705494576265361E-03 2.4044222605715225E-03 + 2.4384769478125292E-03 2.4727144960407393E-03 2.5071358872247413E-03 + 2.5417421085827236E-03 2.5765341526457291E-03 2.6115130172782355E-03 + 2.6466797057004172E-03 2.6820352265197393E-03 2.7175805937593458E-03 + 2.7533168268972078E-03 2.7892449508796543E-03 2.8253659961587517E-03 + 2.8616809987286203E-03 2.8981910001394987E-03 2.9348970475348581E-03 + 2.9718001936944716E-03 3.0089014970397345E-03 3.0462020216804118E-03 + 3.0837028374509799E-03 3.1214050199260750E-03 3.1593096504514066E-03 + 3.1974178161878705E-03 3.2357306101368681E-03 3.2742491311726048E-03 + 3.3129744840588982E-03 3.3519077795129250E-03 3.3910501342053583E-03 + 3.4304026708028563E-03 3.4699665180128103E-03 3.5097428106067199E-03 + 3.5497326894310846E-03 3.5899373014918533E-03 3.6303577999246203E-03 + 3.6709953440833068E-03 3.7118510995382526E-03 3.7529262381216753E-03 + 3.7942219379681532E-03 3.8357393835309270E-03 3.8774797656311402E-03 + 3.9194442814848409E-03 3.9616341347417806E-03 4.0040505355211416E-03 + 4.0466947004247251E-03 4.0895678526155473E-03 4.1326712218162373E-03 + 4.1760060443502018E-03 4.2195735631859934E-03 4.2633750279743336E-03 + 4.3074116950719346E-03 4.3516848275902452E-03 4.3961956954252255E-03 + 4.4409455752956167E-03 4.4859357507761348E-03 4.5311675123367555E-03 + 4.5766421573916376E-03 4.6223609903009036E-03 4.6683253224635412E-03 + 4.7145364722971121E-03 4.7609957653237354E-03 4.8077045341658672E-03 + 4.8546641186193468E-03 4.9018758656840938E-03 4.9493411295743715E-03 + 4.9970612717997716E-03 5.0450376611792195E-03 5.0932716738870598E-03 + 5.1417646934935292E-03 5.1905181109886608E-03 5.2395333248617592E-03 + 5.2888117410832642E-03 5.3383547732102120E-03 5.3881638423700293E-03 + 5.4382403773457393E-03 5.4885858145754581E-03 5.5392015982441041E-03 + 5.5900891802695861E-03 5.6412500203747076E-03 5.6926855861518313E-03 + 5.7443973530438182E-03 5.7963868044460520E-03 5.8486554317065658E-03 + 5.9012047342120273E-03 5.9540362193780021E-03 6.0071514027546478E-03 + 6.0605518079808332E-03 6.1142389669383655E-03 6.1682144197247896E-03 + 6.2224797146953181E-03 6.2770364085382602E-03 6.3318860663160040E-03 + 6.3870302614882626E-03 6.4424705759763886E-03 6.4982086002056917E-03 + 6.5542459331370045E-03 6.6105841823356892E-03 6.6672249639995627E-03 + 6.7241699030218816E-03 6.7814206330165504E-03 6.8389787963872755E-03 + 6.8968460443504381E-03 6.9550240370062988E-03 7.0135144433859315E-03 + 7.0723189414749832E-03 7.1314392182905599E-03 7.1908769699080511E-03 + 7.2506339015118680E-03 7.3107117274775341E-03 7.3711121713624745E-03 + 7.4318369660098882E-03 7.4928878535778154E-03 7.5542665855732674E-03 + 7.6159749229299219E-03 7.6780146360406112E-03 7.7403875048136887E-03 + 7.8030953187381638E-03 7.8661398769021180E-03 7.9295229880814132E-03 + 7.9932464707771489E-03 8.0573121532318548E-03 8.1217218735642523E-03 + 8.1864774797330390E-03 8.2515808296634054E-03 8.3170337912453415E-03 + 8.3828382424261296E-03 8.4489960712399240E-03 8.5155091758685412E-03 + 8.5823794647159508E-03 8.6496088564179553E-03 8.7171992799451262E-03 + 8.7851526746455192E-03 8.8534709902625998E-03 8.9221561870774235E-03 + 8.9912102358499328E-03 9.0606351179648176E-03 9.1304328254647512E-03 + 9.2006053611015121E-03 9.2711547383913535E-03 9.3420829816762384E-03 + 9.4133921261760223E-03 9.4850842180662174E-03 9.5571613145315187E-03 + 9.6296254837962003E-03 9.7024788052248942E-03 9.7757233693529233E-03 + 9.8493612779893009E-03 9.9233946442033386E-03 9.9978255924206144E-03 + 1.0072656258565538E-02 1.0147888789959088E-02 1.0223525345534511E-02 + 1.0299568095806207E-02 1.0376019222976658E-02 1.0452880920967311E-02 + 1.0530155395525839E-02 1.0607844864247052E-02 1.0685951556642079E-02 + 1.0764477714247956E-02 1.0843425590625063E-02 1.0922797451466964E-02 + 1.1002595574680880E-02 1.1082822250398644E-02 1.1163479781048062E-02 + 1.1244570481505348E-02 1.1326096679050391E-02 1.1408060713515281E-02 + 1.1490464937276370E-02 1.1573311715426454E-02 1.1656603425746700E-02 + 1.1740342458800996E-02 1.1824531218031431E-02 1.1909172119827165E-02 + 1.1994267593545454E-02 1.2079820081629332E-02 1.2165832039667611E-02 + 1.2252305936491681E-02 1.2339244254155193E-02 1.2426649488106763E-02 + 1.2514524147218946E-02 1.2602870753894021E-02 1.2691691844028623E-02 + 1.2780989967250878E-02 1.2870767686887332E-02 1.2961027580029556E-02 + 1.3051772237672021E-02 1.3143004264760103E-02 1.3234726280236116E-02 + 1.3326940917120507E-02 1.3419650822683179E-02 1.3512858658357682E-02 + 1.3606567099944504E-02 1.3700778837681712E-02 1.3795496576224741E-02 + 1.3890723034817840E-02 1.3986460947373920E-02 1.4082713062461481E-02 + 1.4179482143521110E-02 1.4276770968812514E-02 1.4374582331591659E-02 + 1.4472919040120812E-02 1.4571783917834060E-02 1.4671179803314288E-02 + 1.4771109550452724E-02 1.4871576028545526E-02 1.4972582122276123E-02 + 1.5074130731923673E-02 1.5176224773314987E-02 1.5278867178082663E-02 + 1.5382060893567895E-02 1.5485808882987130E-02 1.5590114125584956E-02 + 1.5694979616597705E-02 1.5800408367394891E-02 1.5906403405626164E-02 + 1.6012967775184322E-02 1.6120104536374861E-02 1.6227816766027369E-02 + 1.6336107557527655E-02 1.6444980020934540E-02 1.6554437283040527E-02 + 1.6664482487514211E-02 1.6775118794953598E-02 1.6886349383001497E-02 + 1.6998177446398074E-02 1.7110606197145339E-02 1.7223638864484813E-02 + 1.7337278695170981E-02 1.7451528953355805E-02 1.7566392920831224E-02 + 1.7681873897054837E-02 1.7797975199350734E-02 1.7914700162820107E-02 + 1.8032052140602536E-02 1.8150034503927857E-02 1.8268650642155940E-02 + 1.8387903962946310E-02 1.8507797892303061E-02 1.8628335874825007E-02 + 1.8749521373514384E-02 1.8871357870181897E-02 1.8993848865340571E-02 + 1.9116997878400085E-02 1.9240808447829143E-02 1.9365284131045910E-02 + 1.9490428504770962E-02 1.9616245164947435E-02 1.9742737726995734E-02 + 1.9869909825755518E-02 1.9997765115744862E-02 2.0126307271174284E-02 + 2.0255539986070131E-02 2.0385466974411771E-02 2.0516091970218243E-02 + 2.0647418727682512E-02 2.0779451021155543E-02 2.0912192645542838E-02 + 2.1045647416065377E-02 2.1179819168605288E-02 2.1314711759805632E-02 + 2.1450329067027329E-02 2.1586674988658593E-02 2.1723753444066653E-02 + 2.1861568373840852E-02 2.2000123739746670E-02 2.2139423525132561E-02 + 2.2279471734686914E-02 2.2420272394781754E-02 2.2561829553559603E-02 + 2.2704147281016700E-02 2.2847229669169716E-02 2.2991080832045152E-02 + 2.3135704906028426E-02 2.3281106049734213E-02 2.3427288444320422E-02 + 2.3574256293583014E-02 2.3722013823876238E-02 2.3870565284574111E-02 + 2.4019914947908297E-02 2.4170067109310966E-02 2.4321026087274173E-02 + 2.4472796223787702E-02 2.4625381884248124E-02 2.4778787457658460E-02 + 2.4933017356804494E-02 2.5088076018234488E-02 2.5243967902626143E-02 + 2.5400697494686153E-02 2.5558269303422400E-02 2.5716687862218611E-02 + 2.5875957728962215E-02 2.6036083486310625E-02 2.6197069741563689E-02 + 2.6358921127076138E-02 2.6521642300216881E-02 2.6685237943559318E-02 + 2.6849712765041608E-02 2.7015071498131281E-02 2.7181318901791152E-02 + 2.7348459760959558E-02 2.7516498886298445E-02 2.7685441114578359E-02 + 2.7855291308771086E-02 2.8026054358233500E-02 2.8197735178760962E-02 + 2.8370338712763420E-02 2.8543869929467367E-02 2.8718333825030071E-02 + 2.8893735422648673E-02 2.9070079772806047E-02 2.9247371953270086E-02 + 2.9425617069350780E-02 2.9604820254170702E-02 2.9784986668490443E-02 + 2.9966121501169708E-02 3.0148229969201010E-02 3.0331317317848071E-02 + 3.0515388820808630E-02 3.0700449780450268E-02 3.0886505527852309E-02 + 3.1073561423041338E-02 3.1261622855132121E-02 3.1450695242489383E-02 + 3.1640784032884638E-02 3.1831894703667228E-02 3.2024032761943252E-02 + 3.2217203744647711E-02 3.2411413218900759E-02 3.2606666781950337E-02 + 3.2802970061483173E-02 3.3000328715791720E-02 3.3198748433931578E-02 + 3.3398234935736210E-02 3.3598793972309540E-02 3.3800431325906821E-02 + 3.4003152810192262E-02 3.4206964270476398E-02 3.4411871583893909E-02 + 3.4617880659461177E-02 3.4824997438462506E-02 3.5033227894346132E-02 + 3.5242578033097140E-02 3.5453053893479379E-02 3.5664661547013886E-02 + 3.5877407098378056E-02 3.6091296685257533E-02 3.6306336479081248E-02 + 3.6522532684606951E-02 3.6739891540487471E-02 3.6958419319459708E-02 + 3.7178122328211834E-02 3.7399006907957125E-02 3.7621079434398040E-02 + 3.7844346318084643E-02 3.8068814004409729E-02 3.8294488973863304E-02 + 3.8521377742407478E-02 3.8749486861539451E-02 3.8978822918258854E-02 + 3.9209392535872509E-02 3.9441202373504625E-02 3.9674259126889030E-02 + 3.9908569527957925E-02 4.0144140345815670E-02 4.0380978386226972E-02 + 4.0619090492242250E-02 4.0858483544257397E-02 4.1099164460311984E-02 + 4.1341140196201047E-02 4.1584417745679329E-02 4.1829004140922450E-02 + 4.2074906452279834E-02 4.2322131789084193E-02 4.2570687299301649E-02 + 4.2820580170077852E-02 4.3071817627913615E-02 4.3324406938922116E-02 + 4.3578355408798342E-02 4.3833670383426712E-02 4.4090359248801718E-02 + 4.4348429431475912E-02 4.4607888398600505E-02 4.4868743658263037E-02 + 4.5131002759709528E-02 4.5394673293690790E-02 4.5659762892276461E-02 + 4.5926279229798000E-02 4.6194230022341548E-02 4.6463623028478430E-02 + 4.6734466049360761E-02 4.7006766928962530E-02 4.7280533554362493E-02 + 4.7555773855898736E-02 4.7832495807410697E-02 4.8110707426697985E-02 + 4.8390416775553176E-02 4.8671631960127866E-02 4.8954361131072988E-02 + 4.9238612483891171E-02 4.9524394259299775E-02 4.9811714743129835E-02 + 5.0100582267019987E-02 5.0391005208413518E-02 5.0682991990900851E-02 + 5.0976551084376237E-02 5.1271691005600507E-02 5.1568420318083619E-02 + 5.1866747632765900E-02 5.2166681607856633E-02 5.2468230949391903E-02 + 5.2771404411379695E-02 5.3076210796493870E-02 5.3382658955561206E-02 + 5.3690757788513475E-02 5.4000516244407937E-02 5.4311943321804598E-02 + 5.4625048068800516E-02 5.4939839583827463E-02 5.5256327015428972E-02 + 5.5574519562842935E-02 5.5894426476095584E-02 5.6216057056672278E-02 + 5.6539420657266914E-02 5.6864526682714543E-02 5.7191384589562758E-02 + 5.7520003887211409E-02 5.7850394137369109E-02 5.8182564955209432E-02 + 5.8516526008787206E-02 5.8852287020290800E-02 5.9189857765610039E-02 + 5.9529248074889074E-02 5.9870467833113929E-02 6.0213526980049545E-02 + 6.0558435510735815E-02 6.0905203475885086E-02 6.1253840982094125E-02 + 6.1604358192274410E-02 6.1956765325658414E-02 6.2311072658862758E-02 + 6.2667290525344727E-02 6.3025429316415887E-02 6.3385499481227459E-02 + 6.3747511527381562E-02 6.4111476020794686E-02 6.4477403586762044E-02 + 6.4845304909650570E-02 6.5215190733623168E-02 6.5587071862913085E-02 + 6.5960959162260205E-02 6.6336863557020315E-02 6.6714796033630952E-02 + 6.7094767640399303E-02 6.7476789487236677E-02 6.7860872746356798E-02 + 6.8247028652642608E-02 6.8635268503916019E-02 6.9025603661619570E-02 + 6.9418045550673824E-02 6.9812605660421204E-02 7.0209295544542555E-02 + 7.0608126821826642E-02 7.1009111176427761E-02 7.1412260358077365E-02 + 7.1817586182779170E-02 7.2225100533084438E-02 7.2634815358453203E-02 + 7.3046742675645079E-02 7.3460894569372076E-02 7.3877283192288368E-02 + 7.4295920765975895E-02 7.4716819580800967E-02 7.5139991996725011E-02 + 7.5565450443375412E-02 7.5993207421017714E-02 7.6423275500402968E-02 + 7.6855667323671023E-02 7.7290395604458120E-02 7.7727473128485380E-02 + 7.8166912753979953E-02 7.8608727412277729E-02 7.9052930107885305E-02 + 7.9499533919547893E-02 7.9948551999951642E-02 8.0399997576963478E-02 + 8.0853883953345196E-02 8.1310224508045467E-02 8.1769032695993116E-02 + 8.2230322048550603E-02 8.2694106174734813E-02 8.3160398761123716E-02 + 8.3629213572302158E-02 8.4100564451430465E-02 8.4574465321133468E-02 + 8.5050930183498158E-02 8.5529973120748143E-02 8.6011608295725170E-02 + 8.6495849952567233E-02 8.6982712417193173E-02 8.7472210097486944E-02 + 8.7964357484155126E-02 8.8459169151354780E-02 8.8956659756714559E-02 + 8.9456844042470021E-02 8.9959736835610468E-02 9.0465353048645725E-02 + 9.0973707679876448E-02 9.1484815814458151E-02 9.1998692624120984E-02 + 9.2515353368922512E-02 9.3034813396418711E-02 9.3557088143424921E-02 + 9.4082193135936243E-02 9.4610143990077597E-02 9.5140956412198038E-02 + 9.5674646200077026E-02 9.6211229243056043E-02 9.6750721522732078E-02 + 9.7293139113837898E-02 9.7838498184396300E-02 9.8386814996646324E-02 + 9.8938105907817556E-02 9.9492387370151175E-02 1.0004967593236713E-01 + 1.0060998823915279E-01 1.0117334103321138E-01 1.0173975115482421E-01 + 1.0230923554293124E-01 1.0288181123566555E-01 1.0345749537112015E-01 + 1.0403630518807665E-01 1.0461825802622658E-01 1.0520337132744231E-01 + 1.0579166263633911E-01 1.0638314960045266E-01 1.0697784997160607E-01 + 1.0757578160606822E-01 1.0817696246590772E-01 1.0878141061896725E-01 + 1.0938914423984322E-01 1.1000018161109396E-01 1.1061454112291200E-01 + 1.1123224127557745E-01 1.1185330067793275E-01 1.1247773804986590E-01 + 1.1310557222285077E-01 1.1373682213978233E-01 1.1437150685692224E-01 + 1.1500964554379510E-01 1.1565125748427432E-01 1.1629636207710060E-01 + 1.1694497883793019E-01 1.1759712739800911E-01 1.1825282750682570E-01 + 1.1891209903214475E-01 1.1957496196066320E-01 1.2024143639915857E-01 + 1.2091154257554190E-01 1.2158530083949194E-01 1.2226273166246437E-01 + 1.2294385564011340E-01 1.2362869349222477E-01 1.2431726606341248E-01 + 1.2500959432458891E-01 1.2570569937347470E-01 1.2640560243569970E-01 + 1.2710932486575469E-01 1.2781688814733608E-01 1.2852831389514860E-01 + 1.2924362385493551E-01 1.2996283990529658E-01 1.3068598405791623E-01 + 1.3141307845896968E-01 1.3214414539000557E-01 1.3287920726821209E-01 + 1.3361828664888134E-01 1.3436140622483023E-01 1.3510858882841864E-01 + 1.3585985743237483E-01 1.3661523515024360E-01 1.3737474523793683E-01 + 1.3813841109497052E-01 1.3890625626515160E-01 1.3967830443710089E-01 + 1.4045457944654213E-01 1.4123510527630057E-01 1.4201990605809431E-01 + 1.4280900607319033E-01 1.4360242975343776E-01 1.4440020168279663E-01 + 1.4520234659822509E-01 1.4600888939085330E-01 1.4681985510686343E-01 + 1.4763526894901530E-01 1.4845515627769718E-01 1.4927954261174853E-01 + 1.5010845363033723E-01 1.5094191517356831E-01 1.5177995324394206E-01 + 1.5262259400701678E-01 1.5346986379393013E-01 1.5432178910098926E-01 + 1.5517839659211036E-01 1.5603971309990083E-01 1.5690576562637035E-01 + 1.5777658134443812E-01 1.5865218759989039E-01 1.5953261191164242E-01 + 1.6041788197355419E-01 1.6130802565603067E-01 1.6220307100686518E-01 + 1.6310304625282904E-01 1.6400797980095733E-01 1.6491790023989600E-01 + 1.6583283634160179E-01 1.6675281706219755E-01 1.6767787154362662E-01 + 1.6860802911534239E-01 1.6954331929544816E-01 1.7048377179216981E-01 + 1.7142941650524493E-01 1.7238028352765525E-01 1.7333640314703350E-01 + 1.7429780584661120E-01 1.7526452230788608E-01 1.7623658341083165E-01 + 1.7721402023660260E-01 1.7819686406821522E-01 1.7918514639246466E-01 + 1.8017889890190797E-01 1.8117815349519348E-01 1.8218294228036616E-01 + 1.8319329757503355E-01 1.8420925190934065E-01 1.8523083802584253E-01 + 1.8625808888318887E-01 1.8729103765634086E-01 1.8832971773821139E-01 + 1.8937416274311267E-01 1.9042440650658168E-01 1.9148048308768703E-01 + 1.9254242677093164E-01 1.9361027206793846E-01 1.9468405371988715E-01 + 1.9576380669799795E-01 1.9684956620616745E-01 1.9794136768258000E-01 + 1.9903924680189103E-01 2.0014323947660168E-01 2.0125338185951194E-01 + 2.0236971034440637E-01 2.0349226156988204E-01 2.0462107241857769E-01 + 2.0575618002276286E-01 2.0689762176235493E-01 2.0804543527011291E-01 + 2.0919965843071181E-01 2.1036032938593571E-01 2.1152748653399472E-01 + 2.1270116853274360E-01 2.1388141430143448E-01 2.1506826302266122E-01 + 2.1626175414585380E-01 2.1746192738653616E-01 2.1866882273089897E-01 + 2.1988248043726111E-01 2.2110294103698902E-01 2.2233024533915627E-01 + 2.2356443442982554E-01 2.2480554967599709E-01 2.2605363272761633E-01 + 2.2730872552023174E-01 2.2857087027472506E-01 2.2984010950290973E-01 + 2.3111648600833348E-01 2.3240004288726707E-01 2.3369082353312609E-01 + 2.3498887163800528E-01 2.3629423119373044E-01 2.3760694649627190E-01 + 2.3892706214688514E-01 2.4025462305446477E-01 2.4158967443860724E-01 + 2.4293226183082764E-01 2.4428243107808378E-01 2.4564022834444815E-01 + 2.4700570011443684E-01 2.4837889319374373E-01 2.4975985471460657E-01 + 2.5114863213442856E-01 2.5254527324119652E-01 2.5394982615580181E-01 + 2.5536233933249974E-01 2.5678286156293323E-01 2.5821144197970619E-01 + 2.5964813005589416E-01 2.6109297561084627E-01 2.6254602880973121E-01 + 2.6400734016922128E-01 2.6547696055720443E-01 2.6695494119721269E-01 + 2.6844133367025869E-01 2.6993618991747503E-01 2.7143956224337662E-01 + 2.7295150331658935E-01 2.7447206617568920E-01 2.7600130422841412E-01 + 2.7753927125671940E-01 2.7908602141809813E-01 2.8064160924867698E-01 + 2.8220608966593935E-01 2.8377951797111772E-01 2.8536194985171442E-01 + 2.8695344138548917E-01 2.8855404904072313E-01 2.9016382968028659E-01 + 2.9178284056561821E-01 2.9341113935647878E-01 2.9504878411491758E-01 + 2.9669583330886562E-01 2.9835234581389708E-01 3.0001838091487731E-01 + 3.0169399831105548E-01 3.0337925811528593E-01 3.0507422086063507E-01 + 3.0677894749871909E-01 3.0849349940677978E-01 3.1021793838591222E-01 + 3.1195232666588418E-01 3.1369672690843009E-01 3.1545120220780626E-01 + 3.1721581609503890E-01 3.1899063253773613E-01 3.2077571594604798E-01 + 3.2257113117342467E-01 3.2437694351727420E-01 3.2619321872482959E-01 + 3.2802002299296751E-01 3.2985742297138154E-01 3.3170548576423120E-01 + 3.3356427893437807E-01 3.3543387050148932E-01 3.3731432894930585E-01 + 3.3920572322461279E-01 3.4110812273909397E-01 3.4302159737296861E-01 + 3.4494621747645715E-01 3.4688205387093823E-01 3.4882917785196982E-01 + 3.5078766119023436E-01 3.5275757613409631E-01 3.5473899540937176E-01 + 3.5673199222508706E-01 3.5873664026995561E-01 3.6075301371675578E-01 + 3.6278118722460856E-01 3.6482123593785853E-01 3.6687323548837691E-01 + 3.6893726199741989E-01 3.7101339207628936E-01 3.7310170282621219E-01 + 3.7520227184151561E-01 3.7731517720784863E-01 3.7944049750502234E-01 + 3.8157831180568313E-01 3.8372869967774148E-01 3.8589174118366626E-01 + 3.8806751688057012E-01 3.9025610781961567E-01 3.9245759554848836E-01 + 3.9467206210904276E-01 3.9689959003681252E-01 3.9914026236130734E-01 + 4.0139416260745442E-01 4.0366137478929204E-01 4.0594198341508436E-01 + 4.0823607348188462E-01 4.1054373047724974E-01 4.1286504037542804E-01 + 4.1520008963693100E-01 4.1754896520558016E-01 4.1991175450819490E-01 + 4.2228854545071726E-01 4.2467942641659040E-01 4.2708448626268047E-01 + 4.2950381431732915E-01 4.3193750037839940E-01 4.3438563470695518E-01 + 4.3684830802484509E-01 4.3932561151200705E-01 4.4181763679866126E-01 + 4.4432447596573821E-01 4.4684622153508929E-01 4.4938296646655246E-01 + 4.5193480415259590E-01 4.5450182841329184E-01 4.5708413348683591E-01 + 4.5968181402587349E-01 4.6229496509042073E-01 4.6492368213897373E-01 + 4.6756806102202775E-01 4.7022819797455634E-01 4.7290418960569364E-01 + 4.7559613289107988E-01 4.7830412516404730E-01 4.8102826410400668E-01 + 4.8376864772883216E-01 4.8652537438043980E-01 4.8929854271631579E-01 + 4.9208825169878467E-01 4.9489460057915613E-01 4.9771768888679280E-01 + 5.0055761641708985E-01 5.0341448321550419E-01 5.0628838956275202E-01 + 5.0917943596241044E-01 5.1208772312036710E-01 5.1501335193622166E-01 + 5.1795642347702164E-01 5.2091703896550456E-01 5.2389529976012672E-01 + 5.2689130733459522E-01 5.2990516325999681E-01 5.3293696918340461E-01 + 5.3598682680552678E-01 5.3905483785865194E-01 5.4214110408488558E-01 + 5.4524572720959685E-01 5.4836880891940121E-01 5.5151045083454286E-01 + 5.5467075448251202E-01 5.5784982127096017E-01 5.6104775245682936E-01 + 5.6426464912123764E-01 5.6750061213339453E-01 5.7075574212290991E-01 + 5.7403013944469916E-01 5.7732390414554291E-01 5.8063713592888300E-01 + 5.8396993411884535E-01 5.8732239762249350E-01 5.9069462488970115E-01 + 5.9408671387668321E-01 5.9749876199833474E-01 6.0093086609162194E-01 + 6.0438312236876757E-01 6.0785562636992974E-01 6.1134847291971461E-01 + 6.1486175607486582E-01 6.1839556907702453E-01 6.2195000429943526E-01 + 6.2552515319390389E-01 6.2912110623580164E-01 6.3273795286579582E-01 + 6.3637578143440021E-01 6.4003467913913115E-01 6.4371473196467111E-01 + 6.4741602461491443E-01 6.5113864044835079E-01 6.5488266141470219E-01 + 6.5864816797917403E-01 6.6243523905186319E-01 6.6624395191265429E-01 + 6.7007438213895343E-01 6.7392660352005362E-01 6.7780068798399074E-01 + 6.8169670550670380E-01 6.8561472403105617E-01 6.8955480937553515E-01 + 6.9351702514807545E-01 6.9750143264556697E-01 7.0150809076320908E-01 + 7.0553705589547677E-01 7.0958838183013029E-01 7.1366211964811432E-01 + 7.1775831761720466E-01 7.2187702107455320E-01 7.2601827232222904E-01 + 7.3018211050313009E-01 7.3436857148865764E-01 7.3857768774626065E-01 + 7.4280948822296200E-01 7.4706399820972091E-01 7.5134123920918316E-01 + 7.5564122880032025E-01 7.5996398049491709E-01 7.6430950359815841E-01 + 7.6867780305802869E-01 7.7306887931156909E-01 7.7748272813292540E-01 + 7.8191934046930134E-01 7.8637870228135931E-01 7.9086079437086410E-01 + 7.9536559221334191E-01 7.9989306577393282E-01 8.0444317933245635E-01 + 8.0901589129390206E-01 8.1361115399854056E-01 8.1822891352764160E-01 + 8.2286910950044367E-01 8.2753167487141277E-01 8.3221653571892473E-01 + 8.3692361102882773E-01 8.4165281247542678E-01 8.4640404419472670E-01 + 8.5117720255049223E-01 8.5597217590137631E-01 8.6078884435615166E-01 + 8.6562707952328377E-01 8.7048674425955097E-01 8.7536769240688261E-01 + 8.8026976852858840E-01 8.8519280763481911E-01 8.9013663490444617E-01 + 8.9510106539950984E-01 9.0008590377198561E-01 9.0509094397014145E-01 + 9.1011596892623592E-01 9.1516075025175525E-01 9.2022504791339410E-01 + 9.2530860990975627E-01 9.3041117193640610E-01 9.3553245704999466E-01 + 9.4067217531271197E-01 9.4583002344659040E-01 9.5100568446604794E-01 + 9.5619882730429917E-01 9.6140910644446820E-01 9.6663616152239995E-01 + 9.7187961694444813E-01 9.7713908147917672E-01 9.8241414784696146E-01 + 9.8770439230196627E-01 9.9300937421066726E-01 9.9832863561211216E-01 + 1.0036617007751616E+00 1.0090080757483613E+00 1.0143672478984682E+00 + 1.0197386854372896E+00 1.0251218369536639E+00 1.0305161309142270E+00 + 1.0359209751773659E+00 1.0413357564842698E+00 1.0467598399416171E+00 + 1.0521925685084297E+00 1.0576332624544520E+00 1.0630812188225756E+00 + 1.0685357108815263E+00 1.0739959875585880E+00 1.0794612728823858E+00 + 1.0849307653930222E+00 1.0904036375635502E+00 1.0958790351985916E+00 + 1.1013560768337378E+00 1.1068338531130066E+00 1.1123114261776497E+00 + 1.1177878290215317E+00 1.1232620648540423E+00 1.1287331064535555E+00 + 1.1341998955003296E+00 1.1396613419147035E+00 1.1451163231803818E+00 + 1.1505636836540938E+00 1.1560022338791223E+00 1.1614307498776033E+00 + 1.1668479724500143E+00 1.1722526064502723E+00 1.1776433200616290E+00 + 1.1830187440710285E+00 1.1883774711283575E+00 1.1937180549964974E+00 + 1.1990390098035490E+00 1.2043388092890657E+00 1.2096158860336608E+00 + 1.2148686306948437E+00 1.2200953912315198E+00 1.2252944721301080E+00 + 1.2304641336170750E+00 1.2356025908763815E+00 1.2407080132689778E+00 + 1.2457785235280177E+00 1.2508121969784101E+00 1.2558070607405016E+00 + 1.2607610929369271E+00 1.2656722218970140E+00 1.2705383253726361E+00 + 1.2753572297391094E+00 1.2801267092155613E+00 1.2848444850784919E+00 + 1.2895082248866891E+00 1.2941155417000152E+00 1.2986639933264588E+00 + 1.3031510815542084E+00 1.3075742514060680E+00 1.3119308904035452E+00 + 1.3162183278331088E+00 1.3204338340401209E+00 1.3245746197243948E+00 + 1.3286378352571735E+00 1.3326205700140978E+00 1.3365198517327419E+00 + 1.3403326458784379E+00 1.3440558550490465E+00 1.3476863183868528E+00 + 1.3512208110322117E+00 1.3546560435943118E+00 1.3579886616601646E+00 + 1.3612152453322981E+00 1.3643323088038348E+00 1.3673362999626633E+00 + 1.3702236000553225E+00 1.3729905233691289E+00 1.3756333169771002E+00 + 1.3781481605222556E+00 1.3805311660598714E+00 1.3827783779463518E+00 + 1.3848857727921238E+00 1.3868492594683148E+00 1.3886646791809043E+00 + 1.3903278056200583E+00 1.3918343451662252E+00 1.3931799371769158E+00 + 1.3943601543634427E+00 1.3953705032331296E+00 1.3962064246289645E+00 + 1.3968632943663579E+00 1.3973364239406065E+00 1.3976210613852118E+00 + 1.3977123921695189E+00 1.3976055402693914E+00 1.3972955693179967E+00 + 1.3967774838801972E+00 1.3960462308744559E+00 1.3950967011094297E+00 + 1.3939237309607715E+00 1.3925221041910365E+00 1.3908865539422783E+00 + 1.3890117648577718E+00 1.3868923753729472E+00 1.3845229801962640E+00 + 1.3818981329482030E+00 1.3790123489897446E+00 1.3758601084510382E+00 + 1.3724358594495909E+00 1.3687340215221493E+00 1.3647489892734854E+00 + 1.3604751362419820E+00 1.3559068190049792E+00 1.3510383815230833E+00 + 1.3458641597277072E+00 1.3403784863780188E+00 1.3345756961759621E+00 + 1.3284501311676131E+00 1.3219961464145995E+00 1.3152081159835760E+00 + 1.3080804392292777E+00 1.3006075473838770E+00 1.2927839104950574E+00 + 1.2846040446860079E+00 1.2760625197633293E+00 1.2671539671841201E+00 + 1.2578730883985931E+00 1.2482146635501432E+00 1.2381735605959119E+00 + 1.2277447448088188E+00 1.2169232886837527E+00 1.2057043822950289E+00 + 1.1940833440608862E+00 1.1820556319693398E+00 1.1696168552517641E+00 + 1.1567627865356382E+00 1.1434893744562538E+00 1.1297927567779125E+00 + 1.1156692740091949E+00 1.1011154835152035E+00 1.0861281741756537E+00 + 1.0707043815555148E+00 1.0548414036182276E+00 1.0385368169974305E+00 + 1.0217884938223398E+00 1.0045946191115762E+00 9.8695370874491650E-01 + 9.6886462801064921E-01 9.5032661076324254E-01 9.3133927914246051E-01 + 9.1190266393107755E-01 8.9201722550063878E-01 8.7168387535417269E-01 + 8.5090399830751418E-01 8.2967947526516317E-01 8.0801270661053737E-01 + 7.8590663621130541E-01 7.6336477603083930E-01 7.4039123133933626E-01 + 7.1699072652654794E-01 6.9316863150662078E-01 6.6893098867979861E-01 + 6.4428454048896067E-01 6.1923675749644469E-01 5.9379586701616904E-01 + 5.6797088223572678E-01 5.4177163184488886E-01 5.1520879010602239E-01 + 4.8829390736578154E-01 4.6103944095948574E-01 4.3345878646439445E-01 + 4.0556630927744625E-01 3.7737737645119557E-01 3.4890838875109759E-01 + 3.2017681286619670E-01 2.9120121370885199E-01 2.6200128675233031E-01 + 2.3259789030214148E-01 2.0301307765115795E-01 1.7327012900041713E-01 + 1.4339358306635203E-01 1.1340926826488557E-01 8.3344333353528505E-02 + 5.3227277423326641E-02 2.3087979080524887E-02 -7.0422752937239859E-03 + -3.7130764380641418E-02 -6.7143306019976687E-02 -9.7044232735680511E-02 + -1.2679636889212814E-01 -1.5636100968536881E-01 -1.8569790217226795E-01 + -2.1476522861755784E-01 -2.4351959233069850E-01 -2.7191600637202418E-01 + -2.9990788530776141E-01 -3.2744704039591688E-01 -3.5448367849913853E-01 + -3.8096640507461149E-01 -4.0684223163879796E-01 -4.3205658805876013E-01 + -4.5655334015085591E-01 -4.8027481297885449E-01 -5.0316182038341595E-01 + -5.2515370120489246E-01 -5.4618836278098837E-01 -5.6620233226424033E-01 + -5.8513081637472697E-01 -6.0290777026791076E-01 -6.1946597613800880E-01 + -6.3473713235272400E-01 -6.4865195385908025E-01 -6.6114028466122332E-01 + -6.7213122328258601E-01 -6.8155326208097078E-01 -6.8933444141884359E-01 + -6.9540251971199163E-01 -6.9968516042085460E-01 -7.0211013716356974E-01 + -7.0260555813816572E-01 -7.0110011117567705E-01 -6.9752333071247818E-01 + -6.9180588820119870E-01 -6.8387990740599147E-01 -6.7367930620710703E-01 + -6.6114016659573149E-01 -6.4620113464654172E-01 -6.2880385232564351E-01 + -6.0889342313618022E-01 -5.8641891367367827E-01 -5.6133389329184702E-01 + -5.3359701421499628E-01 -5.0317263453201932E-01 -4.7003148662257760E-01 + -4.3415139379259199E-01 -3.9551803789767109E-01 -3.5446546749246460E-01 + -3.1178048362153715E-01 -2.6819958450972053E-01 -2.2454754129127508E-01 + -1.8173755425720176E-01 -1.4076932198145378E-01 -1.0272454122082673E-01 + -6.8759308808248584E-02 -4.0092856701365975E-02 -1.7992023198663089E-02 + -3.7508523227875409E-03 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 2.9080297513129403E+00 -2.4120455743702989E+00 -8.2809540738632652E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 -2.4120455743702989E+00 + 2.0071899098489889E+00 6.9156214726630845E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 -8.2809540738632652E+00 6.9156214726630845E+00 + 2.3272287011133741E+01 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 2.5968700376441103E-03 6.1542116785047785E-02 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 6.1542116785047785E-02 + 1.1598042129900272E+00 + + + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 + + + + diff --git a/abipy/data/pseudos/N.psp8 b/abipy/data/pseudos/N.psp8 new file mode 100644 index 000000000..41e8705f8 --- /dev/null +++ b/abipy/data/pseudos/N.psp8 @@ -0,0 +1,3062 @@ +N ONCVPSP-3.2.3.1 r_core= 1.20551 1.35824 +7.0000 5.0000 170503 zatom,zion,pspd +8 11 1 4 600 0 pspcod,pspxc,lmax,lloc,mmax,r2well +5.99000000 4.00000000 0.00000000 rchrg fchrg qchrg +2 2 0 0 0 nproj +1 1 extension_switch +0 7.4945088144027D+00 6.3630495169662D-01 +1 0.0000000000000D+00 -3.3431593049471D-09 1.7910622873707D-08 +2 1.0000000000000D-02 9.4537664568024D-02 -6.0658145186611D-02 +3 2.0000000000000D-02 1.8873006386481D-01 -1.2059666821381D-01 +4 3.0000000000000D-02 2.8223476979408D-01 -1.7910733756255D-01 +5 4.0000000000000D-02 3.7471498397291D-01 -2.3550447688530D-01 +6 5.0000000000000D-02 4.6584224187739D-01 -2.8913568203951D-01 +7 6.0000000000000D-02 5.5529898658224D-01 -3.3939187857811D-01 +8 7.0000000000000D-02 6.4278097265076D-01 -3.8571652142232D-01 +9 8.0000000000000D-02 7.2799946407422D-01 -4.2761375635261D-01 +10 9.0000000000000D-02 8.1068319420838D-01 -4.6465538463064D-01 +11 1.0000000000000D-01 8.9058006032454D-01 -4.9648649705569D-01 +12 1.1000000000000D-01 9.6745853058840D-01 -5.2282967154129D-01 +13 1.2000000000000D-01 1.0411087468947D+00 -5.4348765829120D-01 +14 1.3000000000000D-01 1.1113433129036D+00 -5.5834450823074D-01 +15 1.4000000000000D-01 1.1779977627254D+00 -5.6736513284961D-01 +16 1.5000000000000D-01 1.2409307118553D+00 -5.7059331635359D-01 +17 1.6000000000000D-01 1.3000236980484D+00 -5.6814823331930D-01 +18 1.7000000000000D-01 1.3551807257137D+00 -5.6021955621953D-01 +19 1.8000000000000D-01 1.4063275329813D+00 -5.4706126658056D-01 +20 1.9000000000000D-01 1.4534106057418D+00 -5.2898431052787D-01 +21 2.0000000000000D-01 1.4963959675627D+00 -5.0634826350218D-01 +22 2.1000000000000D-01 1.5352677783621D+00 -4.7955218947447D-01 +23 2.2000000000000D-01 1.5700267779864D+00 -4.4902489661713D-01 +24 2.3000000000000D-01 1.6006886133199D+00 -4.1521480374612D-01 +25 2.4000000000000D-01 1.6272820892111D+00 -3.7857963966154D-01 +26 2.5000000000000D-01 1.6498473842938D+00 -3.3957620061507D-01 +27 2.6000000000000D-01 1.6684342726914D+00 -2.9865038944023D-01 +28 2.7000000000000D-01 1.6831003916369D+00 -2.5622775342507D-01 +29 2.8000000000000D-01 1.6939095932232D+00 -2.1270472690909D-01 +30 2.9000000000000D-01 1.7009304158712D+00 -1.6844076906928D-01 +31 3.0000000000000D-01 1.7042347077160D+00 -1.2375156774089D-01 +32 3.1000000000000D-01 1.7038964300409D+00 -7.8903456797992D-02 +33 3.2000000000000D-01 1.6999906642136D+00 -3.4109168080260D-02 +34 3.3000000000000D-01 1.6925928404139D+00 1.0474990355471D-02 +35 3.4000000000000D-01 1.6817782008786D+00 5.4750469146307D-02 +36 3.5000000000000D-01 1.6676215045615D+00 9.8676297857476D-02 +37 3.6000000000000D-01 1.6501969741302D+00 1.4226739609093D-01 +38 3.7000000000000D-01 1.6295784802300D+00 1.8559141442471D-01 +39 3.8000000000000D-01 1.6058399520611D+00 2.2876417685293D-01 +40 3.9000000000000D-01 1.5790559976766D+00 2.7194382772054D-01 +41 4.0000000000000D-01 1.5493027121213D+00 3.1532381540874D-01 +42 4.1000000000000D-01 1.5166586467305D+00 3.5912487160379D-01 +43 4.2000000000000D-01 1.4812059086796D+00 4.0358616828681D-01 +44 4.3000000000000D-01 1.4430313563278D+00 4.4895585411206D-01 +45 4.4000000000000D-01 1.4022278531069D+00 4.9548118715351D-01 +46 4.5000000000000D-01 1.3588955407302D+00 5.4339849175360D-01 +47 4.6000000000000D-01 1.3131430913937D+00 5.9292317313898D-01 +48 4.7000000000000D-01 1.2650888984293D+00 6.4424002442699D-01 +49 4.8000000000000D-01 1.2148621655725D+00 6.9749405657869D-01 +50 4.9000000000000D-01 1.1626038565999D+00 7.5278207280592D-01 +51 5.0000000000000D-01 1.1084674695667D+00 8.1014519508157D-01 +52 5.1000000000000D-01 1.0526196031642D+00 8.6956253197347D-01 +53 5.2000000000000D-01 9.9524028678107D-01 9.3094615439104D-01 +54 5.3000000000000D-01 9.3652305058757D-01 9.9413751944073D-01 +55 5.4000000000000D-01 8.7667471729028D-01 1.0589054529749D+00 +56 5.5000000000000D-01 8.1591490301628D-01 1.1249457691184D+00 +57 5.6000000000000D-01 7.5447522094512D-01 1.1918825708691D+00 +58 5.7000000000000D-01 6.9259818771821D-01 1.2592712402851D+00 +59 5.8000000000000D-01 6.3053583914885D-01 1.3266030907602D+00 +60 5.9000000000000D-01 5.6854806823012D-01 1.3933116179832D+00 +61 6.0000000000000D-01 5.0690070472581D-01 1.4587802513160D+00 +62 6.1000000000000D-01 4.4586336162974D-01 1.5223514740576D+00 +63 6.2000000000000D-01 3.8570707931869D-01 1.5833371503355D+00 +64 6.3000000000000D-01 3.2670180324567D-01 1.6410298685081D+00 +65 6.4000000000000D-01 2.6911373533659D-01 1.6947150869886D+00 +66 6.5000000000000D-01 2.1320260284311D-01 1.7436838484388D+00 +67 6.6000000000000D-01 1.5921889113082D-01 1.7872458130665D+00 +68 6.7000000000000D-01 1.0740108870274D-01 1.8247423515374D+00 +69 6.8000000000000D-01 5.7972993630530D-02 1.8555594330020D+00 +70 6.9000000000000D-01 1.1141130447062D-02 1.8791400441766D+00 +71 7.0000000000000D-01 -3.2907674558717D-02 1.8949958813163D+00 +72 7.1000000000000D-01 -7.4008513772024D-02 1.9027180680631D+00 +73 7.2000000000000D-01 -1.1202037158561D-01 1.9019866686819D+00 +74 7.3000000000000D-01 -1.4682781172400D-01 1.8925787874350D+00 +75 7.4000000000000D-01 -1.7834234439323D-01 1.8743750706651D+00 +76 7.5000000000000D-01 -2.0650344457587D-01 1.8473644580065D+00 +77 7.6000000000000D-01 -2.3127919887726D-01 1.8116470622748D+00 +78 7.7000000000000D-01 -2.5266656496181D-01 1.7674350936794D+00 +79 7.8000000000000D-01 -2.7069123461014D-01 1.7150517820486D+00 +80 7.9000000000000D-01 -2.8540709866258D-01 1.6549282900833D+00 +81 8.0000000000000D-01 -2.9689531945703D-01 1.5875986505473D+00 +82 8.1000000000000D-01 -3.0526302365924D-01 1.5136927998560D+00 +83 8.2000000000000D-01 -3.1064163548068D-01 1.4339278189731D+00 +84 8.3000000000000D-01 -3.1318487703678D-01 1.3490975290756D+00 +85 8.4000000000000D-01 -3.1306646888063D-01 1.2600606233242D+00 +86 8.5000000000000D-01 -3.1047756942322D-01 1.1677275465981D+00 +87 8.6000000000000D-01 -3.0562399690436D-01 1.0730463615450D+00 +88 8.7000000000000D-01 -2.9872328170469D-01 9.7698786122104D-01 +89 8.8000000000000D-01 -2.9000160000030D-01 8.8053020544827D-01 +90 8.9000000000000D-01 -2.7969064198924D-01 7.8464336943988D-01 +91 9.0000000000000D-01 -2.6802446911244D-01 6.9027369895819D-01 +92 9.1000000000000D-01 -2.5523641482139D-01 5.9832886612027D-01 +93 9.2000000000000D-01 -2.4155608250341D-01 5.0966351392089D-01 +94 9.3000000000000D-01 -2.2720649217617D-01 4.2506586567830D-01 +95 9.4000000000000D-01 -2.1240142454113D-01 3.4524555812875D-01 +96 9.5000000000000D-01 -1.9734300699680D-01 2.7082293411694D-01 +97 9.6000000000000D-01 -1.8221958134724D-01 2.0232000325275D-01 +98 9.7000000000000D-01 -1.6720388718926D-01 1.4015324647937D-01 +99 9.8000000000000D-01 -1.5245158875564D-01 8.4628405640064D-02 +100 9.9000000000000D-01 -1.3810016591489D-01 3.5937359500348D-02 +101 1.0000000000000D+00 -1.2426818273705D-01 -5.8428530405161D-03 +102 1.0100000000000D+00 -1.1105493942102D-01 -4.0748844255845D-02 +103 1.0200000000000D+00 -9.8540505607660D-02 -6.8927548355874D-02 +104 1.0300000000000D+00 -8.6786125405492D-02 -9.0630819394714D-02 +105 1.0400000000000D+00 -7.5834976707713D-02 -1.0620806693943D-01 +106 1.0500000000000D+00 -6.5713260746188D-02 -1.1609707682266D-01 +107 1.0600000000000D+00 -5.6431590304270D-02 -1.2081320582532D-01 +108 1.0700000000000D+00 -4.7986639490125D-02 -1.2093716950847D-01 +109 1.0800000000000D+00 -4.0363012385701D-02 -1.1710167307241D-01 +110 1.0900000000000D+00 -3.3535283298515D-02 -1.0997716013261D-01 +111 1.1000000000000D+00 -2.7470158134767D-02 -1.0025697173299D-01 +112 1.1100000000000D+00 -2.2128703241199D-02 -8.8642224869476D-02 +113 1.1200000000000D+00 -1.7468587037156D-02 -7.5826724993426D-02 +114 1.1300000000000D+00 -1.3446279354436D-02 -6.2482228495323D-02 +115 1.1400000000000D+00 -1.0019153896054D-02 -4.9244367863806D-02 +116 1.1500000000000D+00 -7.1474410505876D-03 -3.6699541271835D-02 +117 1.1600000000000D+00 -4.7959812913502D-03 -2.5373051011560D-02 +118 1.1700000000000D+00 -2.9368671253110D-03 -1.5723983152264D-02 +119 1.1800000000000D+00 -1.5411132073303D-03 -8.0938711407713D-03 +120 1.1900000000000D+00 -6.0779367273570D-04 -2.8243130120799D-03 +121 1.2000000000000D+00 -1.5452065629466D-04 -1.9499741138625D-04 +122 1.2100000000000D+00 -1.5827814901239D-05 3.4664047813287D-04 +123 1.2200000000000D+00 -4.5156147937783D-09 -5.9496398333976D-07 +124 1.2300000000000D+00 -1.4646863076585D-06 -5.5655474555096D-05 +125 1.2400000000000D+00 1.0555801939064D-08 1.4058129817298D-05 +126 1.2500000000000D+00 2.2121867641579D-08 -1.2225850441899D-07 +127 1.2600000000000D+00 1.1876019593450D-07 -6.5633897529377D-07 +128 1.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +129 1.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +130 1.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +131 1.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +132 1.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +133 1.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +134 1.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +135 1.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +136 1.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +137 1.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +138 1.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +139 1.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +140 1.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +141 1.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +142 1.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +143 1.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +144 1.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +145 1.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +146 1.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +147 1.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +148 1.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +149 1.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +150 1.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +151 1.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +152 1.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +153 1.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +154 1.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +155 1.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +156 1.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +157 1.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +158 1.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +159 1.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +160 1.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +161 1.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +162 1.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +163 1.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +164 1.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +165 1.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +166 1.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +167 1.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +168 1.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +169 1.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +170 1.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +171 1.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +172 1.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +173 1.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +174 1.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +175 1.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +176 1.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +177 1.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +178 1.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +179 1.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +180 1.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +181 1.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +182 1.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +183 1.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +184 1.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +185 1.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +186 1.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +187 1.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +188 1.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +189 1.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +190 1.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +191 1.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +192 1.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +193 1.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +194 1.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +195 1.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +196 1.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +197 1.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +198 1.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +199 1.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +200 1.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +201 2.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +202 2.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +203 2.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +204 2.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +205 2.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +206 2.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +207 2.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +208 2.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +209 2.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +210 2.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +211 2.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +212 2.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +213 2.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +214 2.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +215 2.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +216 2.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +217 2.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +218 2.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +219 2.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +220 2.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +221 2.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +222 2.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +223 2.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +224 2.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +225 2.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +226 2.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +227 2.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +228 2.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +229 2.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +230 2.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +231 2.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +232 2.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +233 2.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +234 2.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +235 2.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +236 2.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +237 2.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +238 2.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +239 2.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +240 2.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +241 2.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +242 2.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +243 2.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +244 2.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +245 2.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +246 2.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +247 2.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +248 2.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +249 2.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +250 2.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +251 2.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +252 2.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +253 2.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +254 2.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +255 2.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +256 2.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +257 2.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +258 2.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +259 2.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +260 2.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +261 2.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +262 2.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +263 2.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +264 2.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +265 2.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +266 2.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +267 2.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +268 2.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +269 2.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +270 2.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +271 2.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +272 2.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +273 2.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +274 2.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +275 2.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +276 2.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +277 2.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +278 2.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +279 2.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +280 2.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +281 2.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +282 2.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +283 2.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +284 2.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +285 2.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +286 2.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +287 2.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +288 2.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +289 2.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +290 2.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +291 2.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +292 2.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +293 2.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +294 2.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +295 2.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +296 2.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +297 2.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +298 2.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +299 2.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +300 2.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +301 3.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +302 3.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +303 3.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +304 3.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +305 3.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +306 3.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +307 3.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +308 3.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +309 3.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +310 3.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +311 3.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +312 3.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +313 3.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +314 3.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +315 3.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +316 3.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +317 3.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +318 3.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +319 3.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +320 3.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +321 3.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +322 3.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +323 3.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +324 3.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +325 3.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +326 3.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +327 3.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +328 3.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +329 3.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +330 3.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +331 3.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +332 3.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +333 3.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +334 3.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +335 3.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +336 3.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +337 3.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +338 3.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +339 3.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +340 3.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +341 3.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +342 3.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +343 3.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +344 3.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +345 3.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +346 3.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +347 3.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +348 3.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +349 3.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +350 3.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +351 3.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +352 3.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +353 3.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +354 3.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +355 3.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +356 3.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +357 3.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +358 3.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +359 3.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +360 3.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +361 3.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +362 3.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +363 3.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +364 3.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +365 3.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +366 3.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +367 3.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +368 3.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +369 3.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +370 3.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +371 3.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +372 3.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +373 3.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +374 3.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +375 3.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +376 3.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +377 3.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +378 3.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +379 3.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +380 3.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +381 3.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +382 3.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +383 3.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +384 3.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +385 3.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +386 3.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +387 3.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +388 3.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +389 3.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +390 3.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +391 3.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +392 3.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +393 3.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +394 3.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +395 3.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +396 3.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +397 3.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +398 3.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +399 3.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +400 3.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +401 4.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +402 4.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +403 4.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +404 4.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +405 4.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +406 4.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +407 4.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +408 4.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +409 4.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +410 4.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +411 4.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +412 4.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +413 4.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +414 4.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +415 4.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +416 4.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +417 4.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +418 4.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +419 4.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +420 4.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +421 4.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +422 4.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +423 4.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +424 4.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +425 4.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +426 4.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +427 4.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +428 4.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +429 4.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +430 4.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +431 4.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +432 4.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +433 4.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +434 4.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +435 4.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +436 4.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +437 4.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +438 4.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +439 4.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +440 4.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +441 4.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +442 4.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +443 4.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +444 4.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +445 4.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +446 4.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +447 4.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +448 4.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +449 4.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +450 4.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +451 4.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +452 4.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +453 4.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +454 4.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +455 4.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +456 4.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +457 4.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +458 4.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +459 4.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +460 4.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +461 4.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +462 4.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +463 4.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +464 4.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +465 4.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +466 4.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +467 4.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +468 4.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +469 4.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +470 4.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +471 4.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +472 4.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +473 4.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +474 4.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +475 4.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +476 4.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +477 4.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +478 4.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +479 4.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +480 4.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +481 4.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +482 4.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +483 4.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +484 4.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +485 4.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +486 4.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +487 4.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +488 4.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +489 4.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +490 4.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +491 4.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +492 4.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +493 4.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +494 4.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +495 4.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +496 4.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +497 4.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +498 4.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +499 4.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +500 4.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +501 5.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +502 5.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +503 5.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +504 5.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +505 5.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +506 5.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +507 5.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +508 5.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +509 5.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +510 5.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +511 5.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +512 5.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +513 5.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +514 5.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +515 5.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +516 5.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +517 5.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +518 5.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +519 5.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +520 5.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +521 5.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +522 5.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +523 5.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +524 5.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +525 5.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +526 5.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +527 5.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +528 5.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +529 5.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +530 5.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +531 5.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +532 5.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +533 5.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +534 5.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +535 5.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +536 5.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +537 5.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +538 5.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +539 5.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +540 5.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +541 5.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +542 5.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +543 5.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +544 5.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +545 5.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +546 5.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +547 5.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +548 5.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +549 5.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +550 5.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +551 5.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +552 5.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +553 5.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +554 5.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +555 5.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +556 5.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +557 5.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +558 5.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +559 5.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +560 5.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +561 5.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +562 5.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +563 5.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +564 5.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +565 5.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +566 5.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +567 5.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +568 5.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +569 5.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +570 5.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +571 5.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +572 5.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +573 5.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +574 5.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +575 5.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +576 5.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +577 5.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +578 5.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +579 5.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +580 5.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +581 5.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +582 5.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +583 5.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +584 5.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +585 5.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +586 5.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +587 5.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +588 5.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +589 5.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +590 5.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +591 5.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +592 5.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +593 5.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +594 5.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +595 5.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +596 5.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +597 5.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +598 5.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +599 5.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +600 5.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +1 -4.2939052122115D+00 -1.0069878791374D+00 +1 0.0000000000000D+00 9.3469691153647D-09 -2.2383237319179D-08 +2 1.0000000000000D-02 2.6580050453065D-03 -1.9373453116400D-03 +3 2.0000000000000D-02 1.0609335004340D-02 -7.7131680159692D-03 +4 3.0000000000000D-02 2.3786241676146D-02 -1.7219500815637D-02 +5 4.0000000000000D-02 4.2076830318240D-02 -3.0278626284042D-02 +6 5.0000000000000D-02 6.5326568868419D-02 -4.6646372870646D-02 +7 6.0000000000000D-02 9.3340362903758D-02 -6.6016638054531D-02 +8 7.0000000000000D-02 1.2588515926964D-01 -8.8027049572639D-02 +9 8.0000000000000D-02 1.6269303196466D-01 -1.1226565326590D-01 +10 9.0000000000000D-02 2.0346469541984D-01 -1.3827849591989D-01 +11 1.0000000000000D-01 2.4787338292588D-01 -1.6557795392895D-01 +12 1.1000000000000D-01 2.9556902178282D-01 -1.9365164403435D-01 +13 1.2000000000000D-01 3.4618263189161D-01 -2.2197174106983D-01 +14 1.3000000000000D-01 3.9933087107013D-01 -2.5000451982040D-01 +15 1.4000000000000D-01 4.5462064842210D-01 -2.7721993392072D-01 +16 1.5000000000000D-01 5.1165372665299D-01 -3.0310104427510D-01 +17 1.6000000000000D-01 5.7003123531867D-01 -3.2715311278535D-01 +18 1.7000000000000D-01 6.2935801958743D-01 -3.4891218416326D-01 +19 1.8000000000000D-01 6.8924675314009D-01 -3.6795298914849D-01 +20 1.9000000000000D-01 7.4932174924607D-01 -3.8389601634251D-01 +21 2.0000000000000D-01 8.0922241072648D-01 -3.9641361683606D-01 +22 2.1000000000000D-01 8.6860626731456D-01 -4.0523502551387D-01 +23 2.2000000000000D-01 9.2715155769510D-01 -4.1015020498107D-01 +24 2.3000000000000D-01 9.8455932307050D-01 -4.1101244203032D-01 +25 2.4000000000000D-01 1.0405549892732D+00 -4.0773965198487D-01 +26 2.5000000000000D-01 1.0948894250179D+00 -4.0031437260051D-01 +27 2.6000000000000D-01 1.1473394746495D+00 -3.8878245596700D-01 +28 2.7000000000000D-01 1.1977079744833D+00 -3.7325049347608D-01 +29 2.8000000000000D-01 1.2458232723293D+00 -3.5388203488830D-01 +30 2.9000000000000D-01 1.2915382798410D+00 -3.3089268730579D-01 +31 3.0000000000000D-01 1.3347290967181D+00 -3.0454420294408D-01 +32 3.1000000000000D-01 1.3752932543408D+00 -2.7513768551979D-01 +33 3.2000000000000D-01 1.4131476339426D+00 -2.4300606340354D-01 +34 3.3000000000000D-01 1.4482261207843D+00 -2.0850599304933D-01 +35 3.4000000000000D-01 1.4804770608464D+00 -1.7200936827828D-01 +36 3.5000000000000D-01 1.5098605902016D+00 -1.3389461951028D-01 +37 3.6000000000000D-01 1.5363459093913D+00 -9.4537991809731D-02 +38 3.7000000000000D-01 1.5599085757524D+00 -5.4304991527715D-02 +39 3.8000000000000D-01 1.5805278857205D+00 -1.3542188344039D-02 +40 3.9000000000000D-01 1.5981844166682D+00 2.7430447326903D-02 +41 4.0000000000000D-01 1.6128577938855D+00 6.8326502180380D-02 +42 4.1000000000000D-01 1.6245247429338D+00 1.0889921786261D-01 +43 4.2000000000000D-01 1.6331574809182D+00 1.4894659097485D-01 +44 4.3000000000000D-01 1.6387224923506D+00 1.8831535778420D-01 +45 4.4000000000000D-01 1.6411797263766D+00 2.2690376913003D-01 +46 4.5000000000000D-01 1.6404822423889D+00 2.6466308608081D-01 +47 4.6000000000000D-01 1.6365763206417D+00 3.0159775359347D-01 +48 4.7000000000000D-01 1.6294020436302D+00 3.3776423722824D-01 +49 4.8000000000000D-01 1.6188943429184D+00 3.7326853632257D-01 +50 4.9000000000000D-01 1.6049844950217D+00 4.0826241536674D-01 +51 5.0000000000000D-01 1.5876020391058D+00 4.4293842306224D-01 +52 5.1000000000000D-01 1.5666770788659D+00 4.7752379514238D-01 +53 5.2000000000000D-01 1.5421429212330D+00 5.1227336192314D-01 +54 5.3000000000000D-01 1.5139389957145D+00 5.4746160422333D-01 +55 5.4000000000000D-01 1.4820139904091D+00 5.8337402126507D-01 +56 5.5000000000000D-01 1.4463291342052D+00 6.2029799102910D-01 +57 5.6000000000000D-01 1.4068615495423D+00 6.5851331687576D-01 +58 5.7000000000000D-01 1.3636075964865D+00 6.9828266381691D-01 +59 5.8000000000000D-01 1.3165861268533D+00 7.3984209333431D-01 +60 5.9000000000000D-01 1.2658415667602D+00 7.8339190698662D-01 +61 6.0000000000000D-01 1.2114467473272D+00 8.2908800612826D-01 +62 6.1000000000000D-01 1.1535054062890D+00 8.7703396787946D-01 +63 6.2000000000000D-01 1.0921542879456D+00 9.2727402621011D-01 +64 6.3000000000000D-01 1.0275647751790D+00 9.7978713163160D-01 +65 6.4000000000000D-01 9.5994399496975D-01 1.0344822440666D+00 +66 6.5000000000000D-01 8.8953534796081D-01 1.0911949910147D+00 +67 6.6000000000000D-01 8.1661842289515D-01 1.1496857977366D+00 +68 6.7000000000000D-01 7.4150826798098D-01 1.2096395683884D+00 +69 6.8000000000000D-01 6.6455400332962D-01 1.2706669670619D+00 +70 6.9000000000000D-01 5.8613677120411D-01 1.3323073164286D+00 +71 7.0000000000000D-01 5.0666703376825D-01 1.3940330995014D+00 +72 7.1000000000000D-01 4.2658124096670D-01 1.4552560178391D+00 +73 7.2000000000000D-01 3.4633790406706D-01 1.5153345274021D+00 +74 7.3000000000000D-01 2.6641312271252D-01 1.5735827425696D+00 +75 7.4000000000000D-01 1.8729562504840D-01 1.6292805696041D+00 +76 7.5000000000000D-01 1.0948139126506D-01 1.6816849039265D+00 +77 7.6000000000000D-01 3.3467940504610D-02 1.7300417015344D+00 +78 7.7000000000000D-01 -4.0251630613356D-02 1.7735987140735D+00 +79 7.8000000000000D-01 -1.1119476284735D-01 1.8116186601084D+00 +80 7.9000000000000D-01 -1.7889560249418D-01 1.8433925923014D+00 +81 8.0000000000000D-01 -2.4291111949147D-01 1.8682532118086D+00 +82 8.1000000000000D-01 -3.0282707070495D-01 1.8855878774708D+00 +83 8.2000000000000D-01 -3.5826370418469D-01 1.8948510584516D+00 +84 8.3000000000000D-01 -4.0888110266980D-01 1.8955759848764D+00 +85 8.4000000000000D-01 -4.5438406904924D-01 1.8873852617175D+00 +86 8.5000000000000D-01 -4.9452646278814D-01 1.8700002264911D+00 +87 8.6000000000000D-01 -5.2911490441009D-01 1.8432488510583D+00 +88 8.7000000000000D-01 -5.5801177485638D-01 1.8070720116204D+00 +89 8.8000000000000D-01 -5.8113744776029D-01 1.7615279784712D+00 +90 8.9000000000000D-01 -5.9847170518598D-01 1.7067950077276D+00 +91 9.0000000000000D-01 -6.1005430096909D-01 1.6431719505727D+00 +92 9.1000000000000D-01 -6.1598465021680D-01 1.5710768308936D+00 +93 9.2000000000000D-01 -6.1642063852114D-01 1.4910433789533D+00 +94 9.3000000000000D-01 -6.1157655973632D-01 1.4037155462044D+00 +95 9.4000000000000D-01 -6.0172020648849D-01 1.3098400638476D+00 +96 9.5000000000000D-01 -5.8716915264041D-01 1.2102571445444D+00 +97 9.6000000000000D-01 -5.6828628142423D-01 1.1058894620750D+00 +98 9.7000000000000D-01 -5.4547462675381D-01 9.9772957734992D-01 +99 9.8000000000000D-01 -5.1917160757986D-01 8.8682600920784D-01 +100 9.9000000000000D-01 -4.8984274673516D-01 7.7426817648501D-01 +101 1.0000000000000D+00 -4.5797497530814D-01 6.6117046094285D-01 +102 1.0100000000000D+00 -4.2406963160438D-01 5.4865565981132D-01 +103 1.0200000000000D+00 -3.8863526989532D-01 4.3783811118217D-01 +104 1.0300000000000D+00 -3.5218039826870D-01 3.2980678492003D-01 +105 1.0400000000000D+00 -3.1520626671311D-01 2.2560863544547D-01 +106 1.0500000000000D+00 -2.7819982669445D-01 1.2623251231639D-01 +107 1.0600000000000D+00 -2.4162698085707D-01 3.2593917105849D-02 +108 1.0700000000000D+00 -2.0592623708848D-01 -5.4479116579968D-02 +109 1.0800000000000D+00 -1.7150287474154D-01 -1.3425875992590D-01 +110 1.0900000000000D+00 -1.3872372133027D-01 -2.0612850692406D-01 +111 1.1000000000000D+00 -1.0791262986393D-01 -2.6959245881281D-01 +112 1.1100000000000D+00 -7.9346732340651D-02 -3.2428259743176D-01 +113 1.1200000000000D+00 -5.3253533390053D-02 -3.6996389919528D-01 +114 1.1300000000000D+00 -2.9808891719337D-02 -4.0653718267761D-01 +115 1.1400000000000D+00 -9.1359240347351D-03 -4.3403961554858D-01 +116 1.1500000000000D+00 8.6951523173693D-03 -4.5264285298845D-01 +117 1.1600000000000D+00 2.3666237521811D-02 -4.6264881931522D-01 +118 1.1700000000000D+00 3.5809644466461D-02 -4.6448318545918D-01 +119 1.1800000000000D+00 4.5205503732971D-02 -4.5868664039367D-01 +120 1.1900000000000D+00 5.1978335399433D-02 -4.4590411317387D-01 +121 1.2000000000000D+00 5.6292841477797D-02 -4.2687209547220D-01 +122 1.2100000000000D+00 5.8348808960098D-02 -4.0240365791241D-01 +123 1.2200000000000D+00 5.8376622255250D-02 -3.7337592676866D-01 +124 1.2300000000000D+00 5.6632577604369D-02 -3.4071718265581D-01 +125 1.2400000000000D+00 5.3393954816838D-02 -3.0539332669765D-01 +126 1.2500000000000D+00 4.8952605248045D-02 -2.6838981594943D-01 +127 1.2600000000000D+00 4.3608478473392D-02 -2.3069360727408D-01 +128 1.2700000000000D+00 3.7663154853726D-02 -1.9327528004500D-01 +129 1.2800000000000D+00 3.1413447176029D-02 -1.5707143882534D-01 +130 1.2900000000000D+00 2.5145211644292D-02 -1.2296777552335D-01 +131 1.3000000000000D+00 1.9127483187134D-02 -9.1783087595021D-02 +132 1.3100000000000D+00 1.3607051518280D-02 -6.4254550232628D-02 +133 1.3200000000000D+00 8.8070397680954D-03 -4.1040129469147D-02 +134 1.3300000000000D+00 4.8920860334728D-03 -2.2568552951537D-02 +135 1.3400000000000D+00 2.0544576765706D-03 -9.4369752212571D-03 +136 1.3500000000000D+00 4.7271049970881D-04 -2.2326798010333D-03 +137 1.3600000000000D+00 -7.5320828376363D-05 2.5053005797204D-04 +138 1.3700000000000D+00 -5.9245384421658D-05 2.3923690662729D-04 +139 1.3800000000000D+00 2.7837210825983D-05 -1.1517106372181D-04 +140 1.3900000000000D+00 4.9784929444276D-06 -2.0761251179990D-05 +141 1.4000000000000D+00 -5.3709688958474D-06 2.2112741355058D-05 +142 1.4100000000000D+00 4.5970679188121D-08 -7.9845110853301D-08 +143 1.4200000000000D+00 7.0911062219530D-08 -1.2316332331037D-07 +144 1.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +145 1.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +146 1.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +147 1.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +148 1.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +149 1.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +150 1.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +151 1.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +152 1.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +153 1.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +154 1.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +155 1.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +156 1.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +157 1.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +158 1.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +159 1.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +160 1.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +161 1.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +162 1.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +163 1.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +164 1.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +165 1.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +166 1.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +167 1.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +168 1.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +169 1.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +170 1.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +171 1.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +172 1.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +173 1.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +174 1.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +175 1.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +176 1.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +177 1.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +178 1.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +179 1.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +180 1.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +181 1.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +182 1.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +183 1.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +184 1.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +185 1.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +186 1.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +187 1.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +188 1.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +189 1.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +190 1.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +191 1.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +192 1.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +193 1.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +194 1.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +195 1.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +196 1.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +197 1.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +198 1.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +199 1.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +200 1.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +201 2.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +202 2.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +203 2.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +204 2.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +205 2.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +206 2.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +207 2.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +208 2.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +209 2.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +210 2.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +211 2.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +212 2.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +213 2.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +214 2.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +215 2.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +216 2.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +217 2.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +218 2.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +219 2.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +220 2.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +221 2.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +222 2.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +223 2.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +224 2.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +225 2.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +226 2.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +227 2.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +228 2.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +229 2.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +230 2.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +231 2.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +232 2.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +233 2.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +234 2.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +235 2.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +236 2.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +237 2.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +238 2.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +239 2.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +240 2.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +241 2.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +242 2.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +243 2.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +244 2.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +245 2.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +246 2.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +247 2.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +248 2.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +249 2.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +250 2.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +251 2.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +252 2.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +253 2.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +254 2.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +255 2.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +256 2.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +257 2.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +258 2.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +259 2.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +260 2.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +261 2.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +262 2.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +263 2.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +264 2.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +265 2.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +266 2.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +267 2.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +268 2.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +269 2.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +270 2.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +271 2.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +272 2.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +273 2.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +274 2.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +275 2.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +276 2.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +277 2.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +278 2.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +279 2.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +280 2.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +281 2.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +282 2.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +283 2.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +284 2.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +285 2.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +286 2.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +287 2.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +288 2.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +289 2.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +290 2.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +291 2.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +292 2.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +293 2.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +294 2.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +295 2.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +296 2.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +297 2.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +298 2.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +299 2.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +300 2.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +301 3.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +302 3.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +303 3.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +304 3.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +305 3.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +306 3.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +307 3.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +308 3.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +309 3.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +310 3.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +311 3.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +312 3.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +313 3.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +314 3.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +315 3.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +316 3.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +317 3.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +318 3.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +319 3.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +320 3.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +321 3.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +322 3.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +323 3.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +324 3.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +325 3.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +326 3.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +327 3.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +328 3.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +329 3.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +330 3.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +331 3.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +332 3.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +333 3.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +334 3.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +335 3.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +336 3.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +337 3.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +338 3.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +339 3.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +340 3.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +341 3.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +342 3.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +343 3.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +344 3.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +345 3.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +346 3.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +347 3.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +348 3.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +349 3.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +350 3.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +351 3.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +352 3.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +353 3.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +354 3.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +355 3.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +356 3.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +357 3.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +358 3.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +359 3.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +360 3.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +361 3.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +362 3.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +363 3.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +364 3.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +365 3.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +366 3.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +367 3.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +368 3.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +369 3.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +370 3.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +371 3.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +372 3.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +373 3.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +374 3.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +375 3.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +376 3.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +377 3.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +378 3.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +379 3.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +380 3.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +381 3.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +382 3.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +383 3.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +384 3.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +385 3.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +386 3.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +387 3.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +388 3.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +389 3.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +390 3.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +391 3.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +392 3.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +393 3.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +394 3.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +395 3.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +396 3.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +397 3.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +398 3.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +399 3.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +400 3.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +401 4.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +402 4.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +403 4.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +404 4.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +405 4.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +406 4.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +407 4.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +408 4.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +409 4.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +410 4.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +411 4.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +412 4.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +413 4.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +414 4.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +415 4.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +416 4.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +417 4.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +418 4.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +419 4.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +420 4.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +421 4.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +422 4.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +423 4.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +424 4.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +425 4.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +426 4.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +427 4.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +428 4.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +429 4.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +430 4.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +431 4.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +432 4.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +433 4.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +434 4.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +435 4.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +436 4.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +437 4.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +438 4.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +439 4.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +440 4.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +441 4.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +442 4.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +443 4.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +444 4.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +445 4.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +446 4.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +447 4.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +448 4.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +449 4.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +450 4.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +451 4.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +452 4.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +453 4.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +454 4.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +455 4.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +456 4.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +457 4.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +458 4.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +459 4.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +460 4.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +461 4.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +462 4.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +463 4.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +464 4.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +465 4.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +466 4.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +467 4.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +468 4.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +469 4.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +470 4.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +471 4.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +472 4.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +473 4.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +474 4.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +475 4.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +476 4.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +477 4.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +478 4.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +479 4.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +480 4.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +481 4.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +482 4.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +483 4.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +484 4.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +485 4.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +486 4.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +487 4.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +488 4.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +489 4.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +490 4.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +491 4.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +492 4.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +493 4.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +494 4.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +495 4.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +496 4.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +497 4.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +498 4.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +499 4.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +500 4.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +501 5.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +502 5.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +503 5.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +504 5.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +505 5.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +506 5.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +507 5.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +508 5.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +509 5.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +510 5.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +511 5.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +512 5.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +513 5.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +514 5.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +515 5.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +516 5.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +517 5.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +518 5.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +519 5.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +520 5.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +521 5.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +522 5.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +523 5.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +524 5.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +525 5.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +526 5.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +527 5.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +528 5.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +529 5.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +530 5.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +531 5.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +532 5.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +533 5.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +534 5.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +535 5.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +536 5.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +537 5.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +538 5.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +539 5.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +540 5.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +541 5.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +542 5.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +543 5.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +544 5.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +545 5.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +546 5.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +547 5.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +548 5.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +549 5.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +550 5.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +551 5.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +552 5.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +553 5.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +554 5.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +555 5.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +556 5.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +557 5.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +558 5.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +559 5.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +560 5.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +561 5.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +562 5.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +563 5.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +564 5.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +565 5.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +566 5.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +567 5.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +568 5.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +569 5.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +570 5.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +571 5.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +572 5.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +573 5.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +574 5.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +575 5.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +576 5.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +577 5.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +578 5.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +579 5.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +580 5.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +581 5.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +582 5.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +583 5.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +584 5.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +585 5.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +586 5.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +587 5.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +588 5.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +589 5.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +590 5.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +591 5.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +592 5.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +593 5.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +594 5.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +595 5.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +596 5.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +597 5.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +598 5.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +599 5.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +600 5.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +4 +1 0.0000000000000D+00 -8.5690966567891D+00 +2 1.0000000000000D-02 -8.5684631213554D+00 +3 2.0000000000000D-02 -8.5665682093656D+00 +4 3.0000000000000D-02 -8.5634289156081D+00 +5 4.0000000000000D-02 -8.5590727888144D+00 +6 5.0000000000000D-02 -8.5535368621619D+00 +7 6.0000000000000D-02 -8.5468662426199D+00 +8 7.0000000000000D-02 -8.5391124579965D+00 +9 8.0000000000000D-02 -8.5303316605427D+00 +10 9.0000000000000D-02 -8.5205827863895D+00 +11 1.0000000000000D-01 -8.5099257629431D+00 +12 1.1000000000000D-01 -8.4984198428966D+00 +13 1.2000000000000D-01 -8.4861221259223D+00 +14 1.3000000000000D-01 -8.4730863095243D+00 +15 1.4000000000000D-01 -8.4593616911613D+00 +16 1.5000000000000D-01 -8.4449924261287D+00 +17 1.6000000000000D-01 -8.4300170310579D+00 +18 1.7000000000000D-01 -8.4144681118195D+00 +19 1.8000000000000D-01 -8.3983722872208D+00 +20 1.9000000000000D-01 -8.3817502759336D+00 +21 2.0000000000000D-01 -8.3646171130399D+00 +22 2.1000000000000D-01 -8.3469824638658D+00 +23 2.2000000000000D-01 -8.3288510056464D+00 +24 2.3000000000000D-01 -8.3102228514409D+00 +25 2.4000000000000D-01 -8.2910939951388D+00 +26 2.5000000000000D-01 -8.2714567607679D+00 +27 2.6000000000000D-01 -8.2513002435399D+00 +28 2.7000000000000D-01 -8.2306107337768D+00 +29 2.8000000000000D-01 -8.2093721180510D+00 +30 2.9000000000000D-01 -8.1875662543739D+00 +31 3.0000000000000D-01 -8.1651733202990D+00 +32 3.1000000000000D-01 -8.1421721341201D+00 +33 3.2000000000000D-01 -8.1185404502975D+00 +34 3.3000000000000D-01 -8.0942552306666D+00 +35 3.4000000000000D-01 -8.0692928932328D+00 +36 3.5000000000000D-01 -8.0436295402045D+00 +37 3.6000000000000D-01 -8.0172411665582D+00 +38 3.7000000000000D-01 -7.9901038508380D+00 +39 3.8000000000000D-01 -7.9621939286500D+00 +40 3.9000000000000D-01 -7.9334881502663D+00 +41 4.0000000000000D-01 -7.9039638233692D+00 +42 4.1000000000000D-01 -7.8735989424929D+00 +43 4.2000000000000D-01 -7.8423723075483D+00 +44 4.3000000000000D-01 -7.8102636346424D+00 +45 4.4000000000000D-01 -7.7772536636596D+00 +46 4.5000000000000D-01 -7.7433242683640D+00 +47 4.6000000000000D-01 -7.7084585758631D+00 +48 4.7000000000000D-01 -7.6726411034013D+00 +49 4.8000000000000D-01 -7.6358579205992D+00 +50 4.9000000000000D-01 -7.5980968451769D+00 +51 5.0000000000000D-01 -7.5593476785599D+00 +52 5.1000000000000D-01 -7.5196024855357D+00 +53 5.2000000000000D-01 -7.4788559181878D+00 +54 5.3000000000000D-01 -7.4371055797998D+00 +55 5.4000000000000D-01 -7.3943524186082D+00 +56 5.5000000000000D-01 -7.3506011356280D+00 +57 5.6000000000000D-01 -7.3058605850625D+00 +58 5.7000000000000D-01 -7.2601441415041D+00 +59 5.8000000000000D-01 -7.2134700054687D+00 +60 5.9000000000000D-01 -7.1658614188845D+00 +61 6.0000000000000D-01 -7.1173467649952D+00 +62 6.1000000000000D-01 -7.0679595331932D+00 +63 6.2000000000000D-01 -7.0177381378694D+00 +64 6.3000000000000D-01 -6.9667255909351D+00 +65 6.4000000000000D-01 -6.9149690389529D+00 +66 6.5000000000000D-01 -6.8625191865290D+00 +67 6.6000000000000D-01 -6.8094296364975D+00 +68 6.7000000000000D-01 -6.7557561832047D+00 +69 6.8000000000000D-01 -6.7015560978914D+00 +70 6.9000000000000D-01 -6.6468874420307D+00 +71 7.0000000000000D-01 -6.5918084430357D+00 +72 7.1000000000000D-01 -6.5363769531229D+00 +73 7.2000000000000D-01 -6.4806500098504D+00 +74 7.3000000000000D-01 -6.4246835011949D+00 +75 7.4000000000000D-01 -6.3685319327809D+00 +76 7.5000000000000D-01 -6.3122482858760D+00 +77 7.6000000000000D-01 -6.2558839499629D+00 +78 7.7000000000000D-01 -6.1994887105716D+00 +79 7.8000000000000D-01 -6.1431107723536D+00 +80 7.9000000000000D-01 -6.0867967984505D+00 +81 8.0000000000000D-01 -6.0305919498327D+00 +82 8.1000000000000D-01 -5.9745399118207D+00 +83 8.2000000000000D-01 -5.9186828990635D+00 +84 8.3000000000000D-01 -5.8630616342820D+00 +85 8.4000000000000D-01 -5.8077152999214D+00 +86 8.5000000000000D-01 -5.7526814650442D+00 +87 8.6000000000000D-01 -5.6979959923444D+00 +88 8.7000000000000D-01 -5.6436929318639D+00 +89 8.8000000000000D-01 -5.5898044089625D+00 +90 8.9000000000000D-01 -5.5363605142946D+00 +91 9.0000000000000D-01 -5.4833892031156D+00 +92 9.1000000000000D-01 -5.4309162103586D+00 +93 9.2000000000000D-01 -5.3789649866392D+00 +94 9.3000000000000D-01 -5.3275566588876D+00 +95 9.4000000000000D-01 -5.2767100177713D+00 +96 9.5000000000000D-01 -5.2264415325758D+00 +97 9.6000000000000D-01 -5.1767653928802D+00 +98 9.7000000000000D-01 -5.1276935751912D+00 +99 9.8000000000000D-01 -5.0792359318163D+00 +100 9.9000000000000D-01 -5.0314002986018D+00 +101 1.0000000000000D+00 -4.9841926177541D+00 +102 1.0100000000000D+00 -4.9376170718061D+00 +103 1.0200000000000D+00 -4.8916762248072D+00 +104 1.0300000000000D+00 -4.8463711669899D+00 +105 1.0400000000000D+00 -4.8017016594946D+00 +106 1.0500000000000D+00 -4.7576662760517D+00 +107 1.0600000000000D+00 -4.7142625389873D+00 +108 1.0700000000000D+00 -4.6714870473159D+00 +109 1.0800000000000D+00 -4.6293355950938D+00 +110 1.0900000000000D+00 -4.5878032785820D+00 +111 1.1000000000000D+00 -4.5468845910721D+00 +112 1.1100000000000D+00 -4.5065735045365D+00 +113 1.1200000000000D+00 -4.4668635374516D+00 +114 1.1300000000000D+00 -4.4277478083299D+00 +115 1.1400000000000D+00 -4.3892190751769D+00 +116 1.1500000000000D+00 -4.3512697550769D+00 +117 1.1600000000000D+00 -4.3138919379748D+00 +118 1.1700000000000D+00 -4.2770774199618D+00 +119 1.1800000000000D+00 -4.2408175356174D+00 +120 1.1900000000000D+00 -4.2051030379276D+00 +121 1.2000000000000D+00 -4.1699252031248D+00 +122 1.2100000000000D+00 -4.1352795092269D+00 +123 1.2200000000000D+00 -4.1011668802748D+00 +124 1.2300000000000D+00 -4.0675899203805D+00 +125 1.2400000000000D+00 -4.0345425297080D+00 +126 1.2500000000000D+00 -4.0020147040067D+00 +127 1.2600000000000D+00 -3.9699966297234D+00 +128 1.2700000000000D+00 -3.9384833121121D+00 +129 1.2800000000000D+00 -3.9074691703299D+00 +130 1.2900000000000D+00 -3.8769471621700D+00 +131 1.3000000000000D+00 -3.8469112523527D+00 +132 1.3100000000000D+00 -3.8173552500707D+00 +133 1.3200000000000D+00 -3.7882727657948D+00 +134 1.3300000000000D+00 -3.7596573054141D+00 +135 1.3400000000000D+00 -3.7315023695480D+00 +136 1.3500000000000D+00 -3.7037999808252D+00 +137 1.3600000000000D+00 -3.6765359066964D+00 +138 1.3700000000000D+00 -3.6496896976604D+00 +139 1.3800000000000D+00 -3.6232360394888D+00 +140 1.3900000000000D+00 -3.5971583712490D+00 +141 1.4000000000000D+00 -3.5714503780081D+00 +142 1.4100000000000D+00 -3.5461080913269D+00 +143 1.4200000000000D+00 -3.5211264390328D+00 +144 1.4300000000000D+00 -3.4964956840939D+00 +145 1.4400000000000D+00 -3.4722075983456D+00 +146 1.4500000000000D+00 -3.4482562138268D+00 +147 1.4600000000000D+00 -3.4246347067899D+00 +148 1.4700000000000D+00 -3.4013361178803D+00 +149 1.4800000000000D+00 -3.3783538709793D+00 +150 1.4900000000000D+00 -3.3556815035329D+00 +151 1.5000000000000D+00 -3.3333126691768D+00 +152 1.5100000000000D+00 -3.3112411673971D+00 +153 1.5200000000000D+00 -3.2894609425223D+00 +154 1.5300000000000D+00 -3.2679660852380D+00 +155 1.5400000000000D+00 -3.2467508351902D+00 +156 1.5500000000000D+00 -3.2258095827932D+00 +157 1.5600000000000D+00 -3.2051368702533D+00 +158 1.5700000000000D+00 -3.1847273919309D+00 +159 1.5800000000000D+00 -3.1645759937756D+00 +160 1.5900000000000D+00 -3.1446776720017D+00 +161 1.6000000000000D+00 -3.1250275708516D+00 +162 1.6100000000000D+00 -3.1056209796041D+00 +163 1.6200000000000D+00 -3.0864533288225D+00 +164 1.6300000000000D+00 -3.0675201859266D+00 +165 1.6400000000000D+00 -3.0488172501102D+00 +166 1.6500000000000D+00 -3.0303403468634D+00 +167 1.6600000000000D+00 -3.0120854222014D+00 +168 1.6700000000000D+00 -2.9940485365524D+00 +169 1.6800000000000D+00 -2.9762258584222D+00 +170 1.6900000000000D+00 -2.9586136581760D+00 +171 1.7000000000000D+00 -2.9412083019228D+00 +172 1.7100000000000D+00 -2.9240062455810D+00 +173 1.7200000000000D+00 -2.9070040291720D+00 +174 1.7300000000000D+00 -2.8901982715483D+00 +175 1.7400000000000D+00 -2.8735856655180D+00 +176 1.7500000000000D+00 -2.8571629734650D+00 +177 1.7600000000000D+00 -2.8409270234485D+00 +178 1.7700000000000D+00 -2.8248747058415D+00 +179 1.7800000000000D+00 -2.8090029705132D+00 +180 1.7900000000000D+00 -2.7933088244865D+00 +181 1.8000000000000D+00 -2.7777893301151D+00 +182 1.8100000000000D+00 -2.7624416036560D+00 +183 1.8200000000000D+00 -2.7472628143023D+00 +184 1.8300000000000D+00 -2.7322501835045D+00 +185 1.8400000000000D+00 -2.7174009846105D+00 +186 1.8500000000000D+00 -2.7027125427151D+00 +187 1.8600000000000D+00 -2.6881822346482D+00 +188 1.8700000000000D+00 -2.6738074890997D+00 +189 1.8800000000000D+00 -2.6595857867210D+00 +190 1.8900000000000D+00 -2.6455146602633D+00 +191 1.9000000000000D+00 -2.6315916946077D+00 +192 1.9100000000000D+00 -2.6178145266911D+00 +193 1.9200000000000D+00 -2.6041808453220D+00 +194 1.9300000000000D+00 -2.5906883906425D+00 +195 1.9400000000000D+00 -2.5773349542037D+00 +196 1.9500000000000D+00 -2.5641183795718D+00 +197 1.9600000000000D+00 -2.5510365524522D+00 +198 1.9700000000000D+00 -2.5380874018430D+00 +199 1.9800000000000D+00 -2.5252689255221D+00 +200 1.9900000000000D+00 -2.5125791922108D+00 +201 2.0000000000000D+00 -2.5000162991538D+00 +202 2.0100000000000D+00 -2.4875782264776D+00 +203 2.0200000000000D+00 -2.4752630100723D+00 +204 2.0300000000000D+00 -2.4630688656596D+00 +205 2.0400000000000D+00 -2.4509941428141D+00 +206 2.0500000000000D+00 -2.4390372539991D+00 +207 2.0600000000000D+00 -2.4271966548316D+00 +208 2.0700000000000D+00 -2.4154708066021D+00 +209 2.0800000000000D+00 -2.4038579453718D+00 +210 2.0900000000000D+00 -2.3923562514448D+00 +211 2.1000000000000D+00 -2.3809639969120D+00 +212 2.1100000000000D+00 -2.3696796745081D+00 +213 2.1200000000000D+00 -2.3585018267732D+00 +214 2.1300000000000D+00 -2.3474289510752D+00 +215 2.1400000000000D+00 -2.3364595648341D+00 +216 2.1500000000000D+00 -2.3255922155634D+00 +217 2.1600000000000D+00 -2.3148254903772D+00 +218 2.1700000000000D+00 -2.3041579985869D+00 +219 2.1800000000000D+00 -2.2935883745714D+00 +220 2.1900000000000D+00 -2.2831152775819D+00 +221 2.2000000000000D+00 -2.2727373913325D+00 +222 2.2100000000000D+00 -2.2624534233567D+00 +223 2.2200000000000D+00 -2.2522621044767D+00 +224 2.2300000000000D+00 -2.2421621882802D+00 +225 2.2400000000000D+00 -2.2321524506119D+00 +226 2.2500000000000D+00 -2.2222316890795D+00 +227 2.2600000000000D+00 -2.2123987225718D+00 +228 2.2700000000000D+00 -2.2026523907905D+00 +229 2.2800000000000D+00 -2.1929915537933D+00 +230 2.2900000000000D+00 -2.1834150915499D+00 +231 2.3000000000000D+00 -2.1739219035091D+00 +232 2.3100000000000D+00 -2.1645109081770D+00 +233 2.3200000000000D+00 -2.1551810427067D+00 +234 2.3300000000000D+00 -2.1459312624977D+00 +235 2.3400000000000D+00 -2.1367605408064D+00 +236 2.3500000000000D+00 -2.1276678683662D+00 +237 2.3600000000000D+00 -2.1186522530170D+00 +238 2.3700000000000D+00 -2.1097127193444D+00 +239 2.3800000000000D+00 -2.1008483083282D+00 +240 2.3900000000000D+00 -2.0920580769989D+00 +241 2.4000000000000D+00 -2.0833410981037D+00 +242 2.4100000000000D+00 -2.0746964597804D+00 +243 2.4200000000000D+00 -2.0661232652392D+00 +244 2.4300000000000D+00 -2.0576206324529D+00 +245 2.4400000000000D+00 -2.0491876938542D+00 +246 2.4500000000000D+00 -2.0408235960402D+00 +247 2.4600000000000D+00 -2.0325274994856D+00 +248 2.4700000000000D+00 -2.0242985782603D+00 +249 2.4800000000000D+00 -2.0161360197565D+00 +250 2.4900000000000D+00 -2.0080390244208D+00 +251 2.5000000000000D+00 -2.0000068054928D+00 +252 2.5100000000000D+00 -1.9920385887505D+00 +253 2.5200000000000D+00 -1.9841336122616D+00 +254 2.5300000000000D+00 -1.9762911261405D+00 +255 2.5400000000000D+00 -1.9685103923111D+00 +256 2.5500000000000D+00 -1.9607906842752D+00 +257 2.5600000000000D+00 -1.9531312868867D+00 +258 2.5700000000000D+00 -1.9455314961301D+00 +259 2.5800000000000D+00 -1.9379906189056D+00 +260 2.5900000000000D+00 -1.9305079728173D+00 +261 2.6000000000000D+00 -1.9230828859685D+00 +262 2.6100000000000D+00 -1.9157146967597D+00 +263 2.6200000000000D+00 -1.9084027536925D+00 +264 2.6300000000000D+00 -1.9011464151772D+00 +265 2.6400000000000D+00 -1.8939450493456D+00 +266 2.6500000000000D+00 -1.8867980338672D+00 +267 2.6600000000000D+00 -1.8797047557699D+00 +268 2.6700000000000D+00 -1.8726646112651D+00 +269 2.6800000000000D+00 -1.8656770055758D+00 +270 2.6900000000000D+00 -1.8587413527695D+00 +271 2.7000000000000D+00 -1.8518570755943D+00 +272 2.7100000000000D+00 -1.8450236053188D+00 +273 2.7200000000000D+00 -1.8382403815752D+00 +274 2.7300000000000D+00 -1.8315068522064D+00 +275 2.7400000000000D+00 -1.8248224731160D+00 +276 2.7500000000000D+00 -1.8181867081217D+00 +277 2.7600000000000D+00 -1.8115990288121D+00 +278 2.7700000000000D+00 -1.8050589144062D+00 +279 2.7800000000000D+00 -1.7985658516164D+00 +280 2.7900000000000D+00 -1.7921193345139D+00 +281 2.8000000000000D+00 -1.7857188643975D+00 +282 2.8100000000000D+00 -1.7793639496651D+00 +283 2.8200000000000D+00 -1.7730541056878D+00 +284 2.8300000000000D+00 -1.7667888546857D+00 +285 2.8400000000000D+00 -1.7605677256083D+00 +286 2.8500000000000D+00 -1.7543902540150D+00 +287 2.8600000000000D+00 -1.7482559819637D+00 +288 2.8700000000000D+00 -1.7421644578982D+00 +289 2.8800000000000D+00 -1.7361152365310D+00 +290 2.8900000000000D+00 -1.7301078787466D+00 +291 2.9000000000000D+00 -1.7241419514492D+00 +292 2.9100000000000D+00 -1.7182170275101D+00 +293 2.9200000000000D+00 -1.7123326856380D+00 +294 2.9300000000000D+00 -1.7064885103401D+00 +295 2.9400000000000D+00 -1.7006840918033D+00 +296 2.9500000000000D+00 -1.6949190257578D+00 +297 2.9600000000000D+00 -1.6891929134193D+00 +298 2.9700000000000D+00 -1.6835053612353D+00 +299 2.9800000000000D+00 -1.6778559809709D+00 +300 2.9900000000000D+00 -1.6722443895568D+00 +301 3.0000000000000D+00 -1.6666702091004D+00 +302 3.0100000000000D+00 -1.6611330667891D+00 +303 3.0200000000000D+00 -1.6556325947316D+00 +304 3.0300000000000D+00 -1.6501684299292D+00 +305 3.0400000000000D+00 -1.6447402140537D+00 +306 3.0500000000000D+00 -1.6393475934970D+00 +307 3.0600000000000D+00 -1.6339902192629D+00 +308 3.0700000000000D+00 -1.6286677469060D+00 +309 3.0800000000000D+00 -1.6233798364847D+00 +310 3.0900000000000D+00 -1.6181261524479D+00 +311 3.1000000000000D+00 -1.6129063635797D+00 +312 3.1100000000000D+00 -1.6077201429165D+00 +313 3.1200000000000D+00 -1.6025671676848D+00 +314 3.1300000000000D+00 -1.5974471192372D+00 +315 3.1400000000000D+00 -1.5923596829845D+00 +316 3.1500000000000D+00 -1.5873045483342D+00 +317 3.1600000000000D+00 -1.5822814086243D+00 +318 3.1700000000000D+00 -1.5772899610626D+00 +319 3.1800000000000D+00 -1.5723299066651D+00 +320 3.1900000000000D+00 -1.5674009501970D+00 +321 3.2000000000000D+00 -1.5625028001137D+00 +322 3.2100000000000D+00 -1.5576351685033D+00 +323 3.2200000000000D+00 -1.5527977710305D+00 +324 3.2300000000000D+00 -1.5479903268812D+00 +325 3.2400000000000D+00 -1.5432125587077D+00 +326 3.2500000000000D+00 -1.5384641925759D+00 +327 3.2600000000000D+00 -1.5337449579128D+00 +328 3.2700000000000D+00 -1.5290545874549D+00 +329 3.2800000000000D+00 -1.5243928171981D+00 +330 3.2900000000000D+00 -1.5197593863478D+00 +331 3.3000000000000D+00 -1.5151540372706D+00 +332 3.3100000000000D+00 -1.5105765154463D+00 +333 3.3200000000000D+00 -1.5060265694212D+00 +334 3.3300000000000D+00 -1.5015039507620D+00 +335 3.3400000000000D+00 -1.4970084140103D+00 +336 3.3500000000000D+00 -1.4925397166389D+00 +337 3.3600000000000D+00 -1.4880976190074D+00 +338 3.3700000000000D+00 -1.4836818843199D+00 +339 3.3800000000000D+00 -1.4792922785826D+00 +340 3.3900000000000D+00 -1.4749285705628D+00 +341 3.4000000000000D+00 -1.4705905317481D+00 +342 3.4100000000000D+00 -1.4662779363063D+00 +343 3.4200000000000D+00 -1.4619905610466D+00 +344 3.4300000000000D+00 -1.4577281853811D+00 +345 3.4400000000000D+00 -1.4534905912866D+00 +346 3.4500000000000D+00 -1.4492775632677D+00 +347 3.4600000000000D+00 -1.4450888883203D+00 +348 3.4700000000000D+00 -1.4409243558956D+00 +349 3.4800000000000D+00 -1.4367837578648D+00 +350 3.4900000000000D+00 -1.4326668884845D+00 +351 3.5000000000000D+00 -1.4285735443626D+00 +352 3.5100000000000D+00 -1.4245035244250D+00 +353 3.5200000000000D+00 -1.4204566298822D+00 +354 3.5300000000000D+00 -1.4164326641974D+00 +355 3.5400000000000D+00 -1.4124314330546D+00 +356 3.5500000000000D+00 -1.4084527443270D+00 +357 3.5600000000000D+00 -1.4044964080469D+00 +358 3.5700000000000D+00 -1.4005622363745D+00 +359 3.5800000000000D+00 -1.3966500435693D+00 +360 3.5900000000000D+00 -1.3927596459600D+00 +361 3.6000000000000D+00 -1.3888908619161D+00 +362 3.6100000000000D+00 -1.3850435118198D+00 +363 3.6200000000000D+00 -1.3812174180377D+00 +364 3.6300000000000D+00 -1.3774124048941D+00 +365 3.6400000000000D+00 -1.3736282986435D+00 +366 3.6500000000000D+00 -1.3698649274446D+00 +367 3.6600000000000D+00 -1.3661221213343D+00 +368 3.6700000000000D+00 -1.3623997122016D+00 +369 3.6800000000000D+00 -1.3586975337631D+00 +370 3.6900000000000D+00 -1.3550154215378D+00 +371 3.7000000000000D+00 -1.3513532128228D+00 +372 3.7100000000000D+00 -1.3477107466696D+00 +373 3.7200000000000D+00 -1.3440878638601D+00 +374 3.7300000000000D+00 -1.3404844068838D+00 +375 3.7400000000000D+00 -1.3369002199149D+00 +376 3.7500000000000D+00 -1.3333351487894D+00 +377 3.7600000000000D+00 -1.3297890409837D+00 +378 3.7700000000000D+00 -1.3262617455924D+00 +379 3.7800000000000D+00 -1.3227531133070D+00 +380 3.7900000000000D+00 -1.3192629963947D+00 +381 3.8000000000000D+00 -1.3157912486779D+00 +382 3.8100000000000D+00 -1.3123377255138D+00 +383 3.8200000000000D+00 -1.3089022837739D+00 +384 3.8300000000000D+00 -1.3054847818249D+00 +385 3.8400000000000D+00 -1.3020850795087D+00 +386 3.8500000000000D+00 -1.2987030381232D+00 +387 3.8600000000000D+00 -1.2953385204040D+00 +388 3.8700000000000D+00 -1.2919913905053D+00 +389 3.8800000000000D+00 -1.2886615139819D+00 +390 3.8900000000000D+00 -1.2853487577708D+00 +391 3.9000000000000D+00 -1.2820529901742D+00 +392 3.9100000000000D+00 -1.2787740808413D+00 +393 3.9200000000000D+00 -1.2755119007516D+00 +394 3.9300000000000D+00 -1.2722663221977D+00 +395 3.9400000000000D+00 -1.2690372187688D+00 +396 3.9500000000000D+00 -1.2658244653344D+00 +397 3.9600000000000D+00 -1.2626279380277D+00 +398 3.9700000000000D+00 -1.2594475142301D+00 +399 3.9800000000000D+00 -1.2562830725553D+00 +400 3.9900000000000D+00 -1.2531344928341D+00 +401 4.0000000000000D+00 -1.2500016560989D+00 +402 4.0100000000000D+00 -1.2468844445689D+00 +403 4.0200000000000D+00 -1.2437827416352D+00 +404 4.0300000000000D+00 -1.2406964318464D+00 +405 4.0400000000000D+00 -1.2376254008942D+00 +406 4.0500000000000D+00 -1.2345695355993D+00 +407 4.0600000000000D+00 -1.2315287238975D+00 +408 4.0700000000000D+00 -1.2285028548261D+00 +409 4.0800000000000D+00 -1.2254918185102D+00 +410 4.0900000000000D+00 -1.2224955061495D+00 +411 4.1000000000000D+00 -1.2195138100052D+00 +412 4.1100000000000D+00 -1.2165466233872D+00 +413 4.1200000000000D+00 -1.2135938406412D+00 +414 4.1300000000000D+00 -1.2106553571360D+00 +415 4.1400000000000D+00 -1.2077310692518D+00 +416 4.1500000000000D+00 -1.2048208743673D+00 +417 4.1600000000000D+00 -1.2019246708480D+00 +418 4.1700000000000D+00 -1.1990423580343D+00 +419 4.1800000000000D+00 -1.1961738362301D+00 +420 4.1900000000000D+00 -1.1933190066909D+00 +421 4.2000000000000D+00 -1.1904777716127D+00 +422 4.2100000000000D+00 -1.1876500341209D+00 +423 4.2200000000000D+00 -1.1848356982589D+00 +424 4.2300000000000D+00 -1.1820346689779D+00 +425 4.2400000000000D+00 -1.1792468521255D+00 +426 4.2500000000000D+00 -1.1764721544356D+00 +427 4.2600000000000D+00 -1.1737104835181D+00 +428 4.2700000000000D+00 -1.1709617478480D+00 +429 4.2800000000000D+00 -1.1682258567559D+00 +430 4.2900000000000D+00 -1.1655027204179D+00 +431 4.3000000000000D+00 -1.1627922498457D+00 +432 4.3100000000000D+00 -1.1600943568768D+00 +433 4.3200000000000D+00 -1.1574089541651D+00 +434 4.3300000000000D+00 -1.1547359551715D+00 +435 4.3400000000000D+00 -1.1520752741545D+00 +436 4.3500000000000D+00 -1.1494268261610D+00 +437 4.3600000000000D+00 -1.1467905270173D+00 +438 4.3700000000000D+00 -1.1441662933204D+00 +439 4.3800000000000D+00 -1.1415540424287D+00 +440 4.3900000000000D+00 -1.1389536924539D+00 +441 4.4000000000000D+00 -1.1363651622520D+00 +442 4.4100000000000D+00 -1.1337883714151D+00 +443 4.4200000000000D+00 -1.1312232402631D+00 +444 4.4300000000000D+00 -1.1286696898352D+00 +445 4.4400000000000D+00 -1.1261276418821D+00 +446 4.4500000000000D+00 -1.1235970188578D+00 +447 4.4600000000000D+00 -1.1210777439120D+00 +448 4.4700000000000D+00 -1.1185697408821D+00 +449 4.4800000000000D+00 -1.1160729342852D+00 +450 4.4900000000000D+00 -1.1135872493113D+00 +451 4.5000000000000D+00 -1.1111126118153D+00 +452 4.5100000000000D+00 -1.1086489483096D+00 +453 4.5200000000000D+00 -1.1061961859571D+00 +454 4.5300000000000D+00 -1.1037542525638D+00 +455 4.5400000000000D+00 -1.1013230765718D+00 +456 4.5500000000000D+00 -1.0989025870524D+00 +457 4.5600000000000D+00 -1.0964927136990D+00 +458 4.5700000000000D+00 -1.0940933868206D+00 +459 4.5800000000000D+00 -1.0917045373345D+00 +460 4.5900000000000D+00 -1.0893260967603D+00 +461 4.6000000000000D+00 -1.0869579972132D+00 +462 4.6100000000000D+00 -1.0846001713973D+00 +463 4.6200000000000D+00 -1.0822525525994D+00 +464 4.6300000000000D+00 -1.0799150746826D+00 +465 4.6400000000000D+00 -1.0775876720804D+00 +466 4.6500000000000D+00 -1.0752702797901D+00 +467 4.6600000000000D+00 -1.0729628333670D+00 +468 4.6700000000000D+00 -1.0706652689186D+00 +469 4.6800000000000D+00 -1.0683775230983D+00 +470 4.6900000000000D+00 -1.0660995331000D+00 +471 4.7000000000000D+00 -1.0638312366519D+00 +472 4.7100000000000D+00 -1.0615725720113D+00 +473 4.7200000000000D+00 -1.0593234779586D+00 +474 4.7300000000000D+00 -1.0570838937919D+00 +475 4.7400000000000D+00 -1.0548537593218D+00 +476 4.7500000000000D+00 -1.0526330148656D+00 +477 4.7600000000000D+00 -1.0504216012422D+00 +478 4.7700000000000D+00 -1.0482194597667D+00 +479 4.7800000000000D+00 -1.0460265322455D+00 +480 4.7900000000000D+00 -1.0438427609708D+00 +481 4.8000000000000D+00 -1.0416680887158D+00 +482 4.8100000000000D+00 -1.0395024587296D+00 +483 4.8200000000000D+00 -1.0373458147322D+00 +484 4.8300000000000D+00 -1.0351981009099D+00 +485 4.8400000000000D+00 -1.0330592619101D+00 +486 4.8500000000000D+00 -1.0309292428367D+00 +487 4.8600000000000D+00 -1.0288079892457D+00 +488 4.8700000000000D+00 -1.0266954471401D+00 +489 4.8800000000000D+00 -1.0245915629653D+00 +490 4.8900000000000D+00 -1.0224962836053D+00 +491 4.9000000000000D+00 -1.0204095563773D+00 +492 4.9100000000000D+00 -1.0183313290279D+00 +493 4.9200000000000D+00 -1.0162615497284D+00 +494 4.9300000000000D+00 -1.0142001670708D+00 +495 4.9400000000000D+00 -1.0121471300631D+00 +496 4.9500000000000D+00 -1.0101023881257D+00 +497 4.9600000000000D+00 -1.0080658910866D+00 +498 4.9700000000000D+00 -1.0060375891780D+00 +499 4.9800000000000D+00 -1.0040174330314D+00 +500 4.9900000000000D+00 -1.0020053736743D+00 +501 5.0000000000000D+00 -1.0000013625259D+00 +502 5.0100000000000D+00 -9.9800535139353D-01 +503 5.0200000000000D+00 -9.9601729246819D-01 +504 5.0300000000000D+00 -9.9403713832125D-01 +505 5.0400000000000D+00 -9.9206484190051D-01 +506 5.0500000000000D+00 -9.9010035652640D-01 +507 5.0600000000000D+00 -9.8814363588844D-01 +508 5.0700000000000D+00 -9.8619463404150D-01 +509 5.0800000000000D+00 -9.8425330540222D-01 +510 5.0900000000000D+00 -9.8231960474548D-01 +511 5.1000000000000D+00 -9.8039348720088D-01 +512 5.1100000000000D+00 -9.7847490824923D-01 +513 5.1200000000000D+00 -9.7656382371918D-01 +514 5.1300000000000D+00 -9.7466018978380D-01 +515 5.1400000000000D+00 -9.7276396295725D-01 +516 5.1500000000000D+00 -9.7087510009141D-01 +517 5.1600000000000D+00 -9.6899355837269D-01 +518 5.1700000000000D+00 -9.6711929531870D-01 +519 5.1800000000000D+00 -9.6525226877515D-01 +520 5.1900000000000D+00 -9.6339243691264D-01 +521 5.2000000000000D+00 -9.6153975822352D-01 +522 5.2100000000000D+00 -9.5969419151884D-01 +523 5.2200000000000D+00 -9.5785569592527D-01 +524 5.2300000000000D+00 -9.5602423088209D-01 +525 5.2400000000000D+00 -9.5419975613819D-01 +526 5.2500000000000D+00 -9.5238223174919D-01 +527 5.2600000000000D+00 -9.5057161807443D-01 +528 5.2700000000000D+00 -9.4876787577415D-01 +529 5.2800000000000D+00 -9.4697096580662D-01 +530 5.2900000000000D+00 -9.4518084942532D-01 +531 5.3000000000000D+00 -9.4339748817616D-01 +532 5.3100000000000D+00 -9.4162084389472D-01 +533 5.3200000000000D+00 -9.3985087870356D-01 +534 5.3300000000000D+00 -9.3808755500949D-01 +535 5.3400000000000D+00 -9.3633083550090D-01 +536 5.3500000000000D+00 -9.3458068314517D-01 +537 5.3600000000000D+00 -9.3283706118603D-01 +538 5.3700000000000D+00 -9.3109993314101D-01 +539 5.3800000000000D+00 -9.2936926279889D-01 +540 5.3900000000000D+00 -9.2764501421719D-01 +541 5.4000000000000D+00 -9.2592715171965D-01 +542 5.4100000000000D+00 -9.2421563989382D-01 +543 5.4200000000000D+00 -9.2251044358856D-01 +544 5.4300000000000D+00 -9.2081152791169D-01 +545 5.4400000000000D+00 -9.1911885822761D-01 +546 5.4500000000000D+00 -9.1743240015491D-01 +547 5.4600000000000D+00 -9.1575211956407D-01 +548 5.4700000000000D+00 -9.1407798257514D-01 +549 5.4800000000000D+00 -9.1240995555547D-01 +550 5.4900000000000D+00 -9.1074800511744D-01 +551 5.5000000000000D+00 -9.0909209811627D-01 +552 5.5100000000000D+00 -9.0744220164781D-01 +553 5.5200000000000D+00 -9.0579828304634D-01 +554 5.5300000000000D+00 -9.0416030988240D-01 +555 5.5400000000000D+00 -9.0252824996069D-01 +556 5.5500000000000D+00 -9.0090207131795D-01 +557 5.5600000000000D+00 -8.9928174222085D-01 +558 5.5700000000000D+00 -8.9766723116400D-01 +559 5.5800000000000D+00 -8.9605850686782D-01 +560 5.5900000000000D+00 -8.9445553827655D-01 +561 5.6000000000000D+00 -8.9285829455627D-01 +562 5.6100000000000D+00 -8.9126674509292D-01 +563 5.6200000000000D+00 -8.8968085949030D-01 +564 5.6300000000000D+00 -8.8810060756819D-01 +565 5.6400000000000D+00 -8.8652595936042D-01 +566 5.6500000000000D+00 -8.8495688511298D-01 +567 5.6600000000000D+00 -8.8339335528209D-01 +568 5.6700000000000D+00 -8.8183534053245D-01 +569 5.6800000000000D+00 -8.8028281173529D-01 +570 5.6900000000000D+00 -8.7873573996665D-01 +571 5.7000000000000D+00 -8.7719409650552D-01 +572 5.7100000000000D+00 -8.7565785283212D-01 +573 5.7200000000000D+00 -8.7412698062607D-01 +574 5.7300000000000D+00 -8.7260145176473D-01 +575 5.7400000000000D+00 -8.7108123832139D-01 +576 5.7500000000000D+00 -8.6956631256366D-01 +577 5.7600000000000D+00 -8.6805664695168D-01 +578 5.7700000000000D+00 -8.6655221413654D-01 +579 5.7800000000000D+00 -8.6505298695862D-01 +580 5.7900000000000D+00 -8.6355893844589D-01 +581 5.8000000000000D+00 -8.6207004181234D-01 +582 5.8100000000000D+00 -8.6058627045639D-01 +583 5.8200000000000D+00 -8.5910759795927D-01 +584 5.8300000000000D+00 -8.5763399808346D-01 +585 5.8400000000000D+00 -8.5616544477118D-01 +586 5.8500000000000D+00 -8.5470191214281D-01 +587 5.8600000000000D+00 -8.5324337449538D-01 +588 5.8700000000000D+00 -8.5178980630106D-01 +589 5.8800000000000D+00 -8.5034118220568D-01 +590 5.8900000000000D+00 -8.4889747702727D-01 +591 5.9000000000000D+00 -8.4745866575454D-01 +592 5.9100000000000D+00 -8.4602472354553D-01 +593 5.9200000000000D+00 -8.4459562572611D-01 +594 5.9300000000000D+00 -8.4317134778859D-01 +595 5.9400000000000D+00 -8.4175186539030D-01 +596 5.9500000000000D+00 -8.4033715435224D-01 +597 5.9600000000000D+00 -8.3892719065766D-01 +598 5.9700000000000D+00 -8.3752195045072D-01 +599 5.9800000000000D+00 -8.3612141003519D-01 +600 5.9900000000000D+00 -8.3472554587303D-01 +1 0.0000000000000D+00 2.3998259331754D+01 2.2281511746769D-08 -3.2802392378444D+02 -1.2013190598736D-05 1.2595796562147D+04 +2 1.0000000000000D-02 2.3981863388412D+01 -3.2781405120575D+00 -3.2739443107689D+02 1.2583560897703D+02 1.2558316133778D+04 +3 2.0000000000000D-02 2.3932738459642D+01 -6.5437037601464D+00 -3.2550973060829D+02 2.5091586985918D+02 1.2445201604643D+04 +4 3.0000000000000D-02 2.3851072926742D+01 -9.7841879656305D+00 -3.2238113076880D+02 3.7449139994412D+02 1.2257604892633D+04 +5 4.0000000000000D-02 2.3737179493408D+01 -1.2987241723655D+01 -3.1802737863602D+02 4.9582471316544D+02 1.1997051439205D+04 +6 5.0000000000000D-02 2.3591493317783D+01 -1.6140737703523D+01 -3.1247451247245D+02 6.1419601481928D+02 1.1665592103948D+04 +7 6.0000000000000D-02 2.3414569410340D+01 -1.9232844581237D+01 -3.0575565647262D+02 7.2890883539084D+02 1.1265834538907D+04 +8 7.0000000000000D-02 2.3207079323633D+01 -2.2252096641334D+01 -2.9791076024923D+02 8.3929544091925D+02 1.0800914119438D+04 +9 8.0000000000000D-02 2.2969807159954D+01 -2.5187460507452D+01 -2.8898628554777D+02 9.4472196935301D+02 1.0274464508368D+04 +10 9.0000000000000D-02 2.2703644928177D+01 -2.8028398488407D+01 -2.7903484317189D+02 1.0445932442310D+03 9.6905830115158D+03 +11 1.0000000000000D-01 2.2409587286098D+01 -3.0764928058758D+01 -2.6811478356657D+02 1.1383572222485D+03 9.0537920915579D+03 +12 1.1000000000000D-01 2.2088725709156D+01 -3.3387677029451D+01 -2.5628974493006D+02 1.2255090335446D+03 8.3689966375044D+03 +13 1.2000000000000D-01 2.1742242130696D+01 -3.5887934004818D+01 -2.4362816310959D+02 1.3055945790719D+03 7.6414380013979D+03 +14 1.3000000000000D-01 2.1371402102755D+01 -3.8257693766446D+01 -2.3020274787206D+02 1.3782136534768D+03 6.8766452220511D+03 +15 1.4000000000000D-01 2.0977547529691D+01 -4.0489697271845D+01 -2.1608993042730D+02 1.4430225677299D+03 6.0803838311951D+03 +16 1.5000000000000D-01 2.0562089029861D+01 -4.2577466005835D+01 -2.0136928731613D+02 1.4997362506138D+03 5.2586029110634D+03 +17 1.6000000000000D-01 2.0126497982928D+01 -4.4515330474622D+01 -1.8612294595407D+02 1.5481298140246D+03 4.4173808999041D+03 +18 1.7000000000000D-01 1.9672298322182D+01 -4.6298452686105D+01 -1.7043497724462D+02 1.5880395726599D+03 3.5628707556299D+03 +19 1.8000000000000D-01 1.9201058132572D+01 -4.7922842514488D+01 -1.5439078074161D+02 1.6193635144121D+03 2.7012450294894D+03 +20 1.9000000000000D-01 1.8714381115899D+01 -4.9385367902138D+01 -1.3807646784776D+02 1.6420612235096D+03 1.8386414354271D+03 +21 2.0000000000000D-01 1.8213897984783D+01 -5.0683758906299D+01 -1.2157824848845D+02 1.6561532641134D+03 9.8110946561294D+02 +22 2.1000000000000D-01 1.7701257846715D+01 -5.1816605652212D+01 -1.0498182659443D+02 1.6617200375645D+03 1.3455858875063D+02 +23 2.2000000000000D-01 1.7178119638585D+01 -5.2783350306742D+01 -8.8371809569041D+01 1.6589001317389D+03 -6.9529143731407D+02 +24 2.3000000000000D-01 1.6646143670704D+01 -5.3584273237396D+01 -7.1831136705367D+01 1.6478881860224D+03 -1.5029576782007D+03 +25 2.4000000000000D-01 1.6106983337450D+01 -5.4220473569992D+01 -5.5440531260157D+01 1.6289323000563D+03 -2.2832380868696D+03 +26 2.5000000000000D-01 1.5562277049268D+01 -5.4693844403833D+01 -3.9277980587708D+01 1.6023310187404D+03 -3.0312521204774D+03 +27 2.6000000000000D-01 1.5013640438006D+01 -5.5007042985589D+01 -2.3418248392512D+01 1.5684299298400D+03 -3.7424775468328D+03 +28 2.7000000000000D-01 1.4462658884311D+01 -5.5163456181785D+01 -7.9324227783198D+00 1.5276179139787D+03 -4.4127831136950D+03 +29 2.8000000000000D-01 1.3910880412260D+01 -5.5167161624555D+01 7.1124966413513D+00 1.4803230896914D+03 -5.0384568244653D+03 +30 2.9000000000000D-01 1.3359808992490D+01 -5.5022884935758D+01 2.1653969745665D+01 1.4270084986491D+03 -5.6162296009018D+03 +31 3.0000000000000D-01 1.2810898290913D+01 -5.4735953460566D+01 3.5634242656767D+01 1.3681675779126D+03 -6.1432940031451D+03 +32 3.1000000000000D-01 1.2265545895665D+01 -5.4312246962883D+01 4.9000628347458D+01 1.3043194698582D+03 -6.6173171016333D+03 +33 3.2000000000000D-01 1.1725088050343D+01 -5.3758145752370D+01 6.1705739540314D+01 1.2360041982629D+03 -7.0364435574939D+03 +34 3.3000000000000D-01 1.1190794916842D+01 -5.3080476717974D+01 7.3707674163278D+01 1.1637778295260D+03 -7.3993540395388D+03 +35 3.4000000000000D-01 1.0663866386218D+01 -5.2286457767909D+01 8.4970149410933D+01 1.0882075564649D+03 -7.7051349000595D+03 +36 3.5000000000000D-01 1.0145428451187D+01 -5.1383641149716D+01 9.5462590350512D+01 1.0098668123906D+03 -7.9534241501438D+03 +37 3.6000000000000D-01 9.6365301489315D+00 -5.0379856144960D+01 1.0516016759564D+02 9.2933052860097D+02 -8.1442981033885D+03 +38 3.7000000000000D-01 9.1381410780995D+00 -4.9283151615929D+01 1.1404378907562D+02 8.4717044174313D+02 -8.2783105009339D+03 +39 3.8000000000000D-01 8.6511494891337D+00 -4.8101738868908D+01 1.2210004529471D+02 7.6395061224276D+02 -8.3564476246517D+03 +40 3.9000000000000D-01 8.1763609425018D+00 -4.6843935284644D+01 1.2932111084077D+02 6.8022310237120D+02 -8.3801145361132D+03 +41 4.0000000000000D-01 7.7144975249855D+00 -4.5518109145758D+01 1.3570460399810D+02 5.9652392744994D+02 -8.3511115105047D+03 +42 4.1000000000000D-01 7.2661976100089D+00 -4.4132626066777D+01 1.4125340703416D+02 5.1336926539157D+02 -8.2716017151534D+03 +43 4.2000000000000D-01 6.8320161440639D+00 -4.2695797405574D+01 1.4597545010673D+02 4.3125195949319D+02 -8.1440820613999D+03 +44 4.3000000000000D-01 6.4124254376459D+00 -4.1215831005255D+01 1.4988346185823D+02 3.5063836349304D+02 -7.9713492393277D+03 +45 4.4000000000000D-01 6.0078164357885D+00 -3.9700784582448D+01 1.5299469006120D+02 2.7196551198526D+02 -7.7564631129514D+03 +46 4.5000000000000D-01 5.6185004402923D+00 -3.8158522044203D+01 1.5533059590432D+02 1.9563867122164D+02 -7.5027120385489D+03 +47 4.6000000000000D-01 5.2447112531038D+00 -3.6596672978792D+01 1.5691652551546D+02 1.2202925144079D+02 -7.2135721403599D+03 +48 4.7000000000000D-01 4.8866077080332D+00 -3.5022595528842D+01 1.5778136262854D+02 5.1473108365210D+01 -6.8926717913535D+03 +49 4.8000000000000D-01 4.5442765561051D+00 -3.3443342816709D+01 1.5795716610412D+02 -1.5730771861567D+01 -6.5437503076990D+03 +50 4.9000000000000D-01 4.2177356683290D+00 -3.1865633053644D+01 1.5747879628735D+02 -7.9321204533510D+01 -6.1706219736355D+03 +51 5.0000000000000D-01 3.9069375185570D+00 -3.0295823425864D+01 1.5638353391674D+02 -1.3907535392530D+02 -5.7771364568573D+03 +52 5.1000000000000D-01 3.6117729083502D+00 -2.8739887812498D+01 1.5471069544418D+02 -1.9480891430319D+02 -5.3671438623179D+03 +53 5.2000000000000D-01 3.3320748954165D+00 -2.7203398353487D+01 1.5250124833252D+02 -2.4637592833184D+02 -4.9444581646841D+03 +54 5.3000000000000D-01 3.0676228871797D+00 -2.5691510849483D+01 1.4979742992404D+02 -2.9366826415965D+02 -4.5128250250402D+03 +55 5.4000000000000D-01 2.8181468613929D+00 -2.4208953941600D+01 1.4664237314711D+02 -3.3661476786319D+02 -4.0758892856175D+03 +56 5.5000000000000D-01 2.5833316763950D+00 -2.2760021986402D+01 1.4307974226535D+02 -3.7518011155439D+02 -3.6371667946264D+03 +57 5.6000000000000D-01 2.3628214346078D+00 -2.1348571511224D+01 1.3915338152167D+02 -4.0936336645480D+02 -3.2000170972784D+03 +58 5.7000000000000D-01 2.1562238641614D+00 -1.9978021107235D+01 1.3490697937821D+02 -4.3919631815643D+02 -2.7676200392448D+03 +59 5.8000000000000D-01 1.9631146850908D+00 -1.8651354592124D+01 1.3038375070969D+02 -4.6474156313072D+02 -2.3429544165939D+03 +60 5.9000000000000D-01 1.7830419283422D+00 -1.7371127252193D+01 1.2562613907377D+02 -4.8609040348427D+02 -1.9287800408329D+03 +61 6.0000000000000D-01 1.6155301778282D+00 -1.6139474953679D+01 1.2067554085438D+02 -5.0336058163596D+02 -1.5276227243830D+03 +62 6.1000000000000D-01 1.4600847079631D+00 -1.4958125896934D+01 1.1557205278237D+02 -5.1669387545075D+02 -1.1417621125978D+03 +63 6.2000000000000D-01 1.3161954914350D+00 -1.3828414773322D+01 1.1035424404276D+02 -5.2625359153578D+02 -7.7322304314600D+02 +64 6.3000000000000D-01 1.1833410544383D+00 -1.2751299074343D+01 1.0505895384157D+02 -5.3222198392887D+02 -4.2376945066498D+02 +65 6.4000000000000D-01 1.0609921591238D+00 -1.1727377295159D+01 9.9721115039969D+01 -5.3479762837483D+02 -9.4901346531620D+01 +66 6.5000000000000D-01 9.4861529563415D-01 -1.0756908770111D+01 9.4373604138517D+01 -5.3419278054093D+02 2.1214458524052D+02 +67 6.6000000000000D-01 8.4567596872485D-01 -9.8398348764705D+00 8.9047117619542D+01 -5.3063075444184D+02 4.9639385216092D+02 +68 6.7000000000000D-01 7.5164176659962D-01 -8.9758013441252D+00 8.3770074406278D+01 -5.2434331699377D+02 7.5712722305673D+02 +69 6.8000000000000D-01 6.6598520220102D-01 -8.1641814113881D+00 7.8568543931740D+01 -5.1556819645312D+02 9.9387286087908D+02 +70 6.9000000000000D-01 5.8818631976422D-01 -7.4040995773198D+00 7.3466198827545D+01 -5.0454660589142D+02 1.2064018612552D+03 +71 7.0000000000000D-01 5.1773506188493D-01 -6.6944557037148D+00 6.8484291965628D+01 -4.9152093108534D+02 1.3947066169235D+03 +72 7.1000000000000D-01 4.5413339480425D-01 -6.0339492353302D+00 6.3641655553651D+01 -4.7673254333986D+02 1.5589969676036D+03 +73 7.2000000000000D-01 3.9689719179959D-01 -5.4211033197553D+00 5.8954722044367D+01 -4.6041970019360D+02 1.6996809012937D+03 +74 7.3000000000000D-01 3.4555787677208D-01 -4.8542886172555D+00 5.4437564746963D+01 -4.4281566718201D+02 1.8173477714147D+03 +75 7.4000000000000D-01 2.9966383206707D-01 -4.3317466128707D+00 5.0101956655881D+01 -4.2414696509781D+02 1.9127534189188D+03 +76 7.5000000000000D-01 2.5878157640387D-01 -3.8516122554283D+00 4.5957445866408D+01 -4.0463180770060D+02 1.9868006737571D+03 +77 7.6000000000000D-01 2.2249672043673D-01 -3.4119357673871D+00 4.2011445713637D+01 -3.8447871801804D+02 2.0405216538662D+03 +78 7.7000000000000D-01 1.9041470894764D-01 -3.0107034871561D+00 3.8269337824517D+01 -3.6388533049712D+02 2.0750588825220D+03 +79 7.8000000000000D-01 1.6216135996088D-01 -2.6458576241141D+00 3.4734586215838D+01 -3.4303737980246D+02 2.0916466682060D+03 +80 7.9000000000000D-01 1.3738321217282D-01 -2.3153148252045D+00 3.1408860570260D+01 -3.2210787602738D+02 2.0915925619283D+03 +81 8.0000000000000D-01 1.1574769300935D-01 -2.0169834706001D+00 2.8292166840418D+01 -3.0125646321594D+02 2.0762592455982D+03 +82 8.1000000000000D-01 9.6943120356260D-02 -1.7487796342530D+00 2.5382983370644D+01 -2.8062895637202D+02 2.0470469727111D+03 +83 8.2000000000000D-01 8.0678551560152D-02 -1.5086416629743D+00 2.2678400782138D+01 -2.6035705058562D+02 2.0053767386193D+03 +84 8.3000000000000D-01 6.6683493674305D-02 -1.2945433448888D+00 2.0174263939604D+01 -2.4055819405547D+02 1.9526743545462D+03 +85 8.4000000000000D-01 5.4707489132957D-02 -1.1045056544875D+00 1.7865314408107D+01 -2.2133561536411D+02 1.8903555364336D+03 +86 8.5000000000000D-01 4.4519591087242D-02 -9.3660707691481D-01 1.5745331909737D+01 -2.0277849436117D+02 1.8198121167456D+03 +87 8.6000000000000D-01 3.5907742536948D-02 -7.8899252848210D-01 1.3807273402118D+01 -1.8496226486553D+02 1.7423994812378D+03 +88 8.7000000000000D-01 2.8678073155490D-02 -6.5988090357109D-01 1.2043408523015D+01 -1.6794903659565D+02 1.6594252955222D+03 +89 8.8000000000000D-01 2.2654127343162D-02 -5.4757129001250D-01 1.0445450274047D+01 -1.5178812319128D+02 1.5721395660349D+03 +90 8.9000000000000D-01 1.7676036568761D-02 -4.5044790562786D-01 9.0046799499174D+00 -1.3651666281880D+02 1.4817260671368D+03 +91 9.0000000000000D-01 1.3599648485355D-02 -3.6698381788096D-01 7.7120654558809D+00 -1.2216031760915D+02 1.3892951474278D+03 +92 9.1000000000000D-01 1.0295624645953D-02 -2.9574351646827D-01 6.5583722940704D+00 -1.0873403817264D+02 1.2958779040756D+03 +93 9.2000000000000D-01 7.6485179128560D-03 -2.3538441518620D-01 5.5342666358875D+00 -9.6242879635583D+01 1.2024216995500D+03 +94 9.3000000000000D-01 5.5558398641905D-03 -1.8465736456888D-01 4.6304100317729D+00 -8.4682855948929D+01 1.1097869827229D+03 +95 9.4000000000000D-01 3.9271276659576D-03 -1.4240626062052D-01 3.8375454400498D+00 -7.4041819684881D+01 1.0187453594925D+03 +96 9.5000000000000D-01 2.6830190108673D-03 -1.0756683752067D-01 3.1465743813169D+00 -6.4300355159303D+01 9.2997884511329D+02 +97 9.6000000000000D-01 1.7543428403889D-03 -7.9164733524972D-02 2.5486251428375D+00 -5.5432673437214D+01 8.4408022107517D+02 +98 9.7000000000000D-01 1.0812326633546D-03 -5.6312919453185D-02 2.0351120686350D+00 -4.7407498610161D+01 7.6155441028126D+02 +99 9.8000000000000D-01 6.1226841360453D-04 -3.8208578333421D-02 1.5977860706856D+00 -4.0188935610286D+01 6.8282077679882D+02 +100 9.9000000000000D-01 3.0365189121826D-04 -2.4129522907535D-02 1.2287765913834D+00 -3.3737310820359D+01 6.0821625030685D+02 +101 1.0000000000000D+00 1.1841998714184D-04 -1.3430234985504D-02 9.2062532866238D-01 -2.8009977744733D+01 5.3799917244377D+02 +102 1.0100000000000D+00 2.5699068441667D-05 -5.5376071662394D-03 6.6631210739958D-01 -2.2962081043650D+01 4.7235375998036D+02 +103 1.0200000000000D+00 3.1146341817777D-09 5.3536718330346D-05 4.5927334259446D-01 -1.8547273292351D+01 4.1139507900169D+02 +104 1.0300000000000D+00 2.0577457788625D-05 3.7850707696062D-03 2.9341359084912D-01 -1.4718379876612D+01 3.5517442528039D+02 +105 1.0400000000000D+00 7.0789270879422D-05 6.0402795123443D-03 1.6311072765437D-01 -1.1428008502418D+01 3.0368500879717D+02 +106 1.0500000000000D+00 1.3756536039829D-04 7.1485924298003D-03 6.3215317058547D-02 -8.6291007197763D+00 2.5686784340121D+02 +107 1.0600000000000D+00 2.1087717065074D-04 7.3902857330179D-03 -1.0955236728613D-02 -6.2754239381104D+00 2.1461774796000D+02 +108 1.0700000000000D+00 2.8327243667068D-04 7.0011020184900D-03 -6.3627157176461D-02 -4.3220032381757D+00 1.7678937077530D+02 +109 1.0800000000000D+00 3.4945244302208D-04 6.1767446004330D-03 -9.8584780499178D-02 -2.7254931605753D+00 1.4320315567308D+02 +110 1.0900000000000D+00 4.0589343137330D-04 5.0772096541195D-03 -1.1918846343204D-01 -1.4444904627853D+00 1.1365117601710D+02 +111 1.1000000000000D+00 4.5051040214931D-04 3.8309242241986D-03 -1.2839532841857D-01 -4.3978943835146D-01 8.7902769248630D+01 +112 1.1100000000000D+00 4.8236120703694D-04 2.5386651728823D-03 -1.2878228504968D-01 3.2541784303034D-01 6.5709914568935D+01 +113 1.1200000000000D+00 5.0138865122666D-04 1.2772386936815D-03 -1.2257078930453D-01 8.8539358217348D-01 4.6812303454906D+01 +114 1.1300000000000D+00 5.0819812824906D-04 1.0290586132762D-04 -1.1165283628652D-01 1.2717552807627D+00 3.0942062177702D+01 +115 1.1400000000000D+00 5.0386820130997D-04 -9.4545615441065D-04 -9.7617711025425D-02 1.5134221311716D+00 1.7828092601832D+01 +116 1.1500000000000D+00 4.8979144816529D-04 -1.8434623105755D-03 -8.1779064914657D-02 1.6366027938689D+00 7.2000070678472D+00 +117 1.1600000000000D+00 4.6754286723442D-04 -2.5785986330370D-03 -6.5201924432306D-02 1.6648204164541D+00 -1.2083593556266D+00 +118 1.1700000000000D+00 4.3877315842196D-04 -3.1478692315167D-03 -4.8729284843671D-02 1.6189706287509D+00 -7.6558678670930D+00 +119 1.1800000000000D+00 4.0512420665318D-04 -3.5557061856570D-03 -3.3007972152091D-02 1.5174081763835D+00 -1.2391429475408D+01 +120 1.1900000000000D+00 3.6816418819429D-04 -3.8121331359980D-03 -1.8513515209950D-02 1.3760578590298D+00 -1.5651787384325D+01 +121 1.2000000000000D+00 3.2933982081739D-04 -3.9311716494710D-03 -5.5738057725058D-03 1.2085455452884D+00 -1.7659717901910D+01 +122 1.2100000000000D+00 2.8994339975147D-04 -3.9294773822733D-03 5.6086334825076D-03 1.0263451681531D+00 -1.8622634217981D+01 +123 1.2200000000000D+00 2.5109236022985D-04 -3.8251914573222D-03 1.4935919162558D-02 8.3893771336866D-01 -1.8731573123654D+01 +124 1.2300000000000D+00 2.1371932419808D-04 -3.6369909021167D-03 2.2395709116323D-02 6.5397853565167D-01 -1.8160539492995D+01 +125 1.2400000000000D+00 1.7857074899819D-04 -3.3833216727397D-03 2.8043800059465D-02 4.7746961654379D-01 -1.7066181344055D+01 +126 1.2500000000000D+00 1.4621235075751D-04 -3.0817970597949D-03 3.1988467756343D-02 3.1393344354670D-01 -1.5587766220802D+01 +127 1.2600000000000D+00 1.1703981271042D-04 -2.7487439057673D-03 3.4376537662735D-02 1.6658579113657D-01 -1.3847426066623D+01 +128 1.2700000000000D+00 9.1293395935364D-05 -2.3988797332754D-03 3.5381164169686D-02 3.7504914042903D-02 -1.1950638503007D+01 +129 1.2800000000000D+00 6.9075140980574D-05 -2.0451035052272D-03 3.5191280739366D-02 -7.2205225286433D-02 -9.9869109536332D+00 +130 1.2900000000000D+00 5.0367680768078D-05 -1.6983838148582D-03 3.4002641576791D-02 -1.6225941050379D-01 -8.0306339687486D+00 +131 1.3000000000000D+00 3.5053788866810D-05 -1.3677294132109D-03 3.2010371832536D-02 -2.3304477906722D-01 -6.1420720995082D+00 +132 1.3100000000000D+00 2.2935808663460D-05 -1.0602265768140D-03 2.9402934878017D-02 -2.8548503547504D-01 -4.3684594236221D+00 +133 1.3200000000000D+00 1.3754462939827D-05 -7.8113037065669D-04 2.6357397752578D-02 -3.2091594912902D-01 -2.7451704031946D+00 +134 1.3300000000000D+00 7.2065597882147D-06 -5.3399765509694D-04 2.3035883462820D-02 -3.4097275548714D-01 -1.2969388329423D+00 +135 1.3400000000000D+00 2.9611484631455D-06 -3.2084935937307D-04 1.9583087966553D-02 -3.4749001756224D-01 -3.9096313166972D-02 +136 1.3500000000000D+00 6.7399500919346D-07 -1.4235338301737D-04 1.6124735723373D-02 -3.4241375900267D-01 1.0211906786538D+00 +137 1.3600000000000D+00 1.5310420382447D-10 1.9812681413383D-06 1.2766854477899D-02 -3.2772589493082D-01 1.8837071541559D+00 +138 1.3700000000000D+00 6.0454712189396D-07 1.1360722443615D-04 9.5957417720294D-03 -3.0538065936066D-01 2.5540193554926D+00 +139 1.3800000000000D+00 2.1706291004023D-06 1.9474331277937D-04 6.6785145933595D-03 -2.7725236495835D-01 3.0423600252173D+00 +140 1.3900000000000D+00 4.4070832941566D-06 2.4818774368230D-04 4.0641229690528D-03 -2.4509405113141D-01 3.3625859102340D+00 +141 1.4000000000000D+00 7.0527365309524D-06 2.7714312547264D-04 1.7847258523948D-03 -2.1050611689242D-01 3.5312156049218D+00 +142 1.4100000000000D+00 9.8797933840160D-06 2.8505624191383D-04 -1.4265959957999D-04 -1.7491414192545D-01 3.5665544801676D+00 +143 1.4200000000000D+00 1.2695544486696D-05 2.7547609913997D-04 -1.7143400084288D-03 -1.3955501056700D-01 3.4879156111691D+00 +144 1.4300000000000D+00 1.5342759045073D-05 2.5192987461867D-04 -2.9380149938660D-03 -1.0547032923410D-01 3.3149345105405D+00 +145 1.4400000000000D+00 1.7698925782901D-05 2.1781899495710D-04 -3.8308210800619D-03 -7.3506225698274D-02 3.0669828512521D+00 +146 1.4500000000000D+00 1.9674561366145D-05 1.7633445088454D-04 -4.4173996925816D-03 -4.4318502112054D-02 2.7626774592321D+00 +147 1.4600000000000D+00 2.1210752894156D-05 1.3039099536711D-04 -4.7280340888409D-03 -1.8382287092811D-02 2.4194818772718D+00 +148 1.4700000000000D+00 2.2276156706248D-05 8.2579748618126D-05 -4.7969127378047D-03 3.9948712082325D-03 2.0533980537348D+00 +149 1.4800000000000D+00 2.2863577727711D-05 3.5137077577339D-05 -4.6605230404223D-03 2.2657124196667D-02 1.6787395298816D+00 +150 1.4900000000000D+00 2.2986346517156D-05 -1.0070949080446D-05 -4.3562280812187D-03 3.7582694005246D-02 1.3079829042960D+00 +151 1.5000000000000D+00 2.2674584576838D-05 -5.1551018628520D-05 -3.9210152399491D-03 4.8865010953760D-02 9.5168750383906D-01 +152 1.5100000000000D+00 2.1971515959570D-05 -8.8173310090990D-05 -3.3904420935269D-03 5.6693408353322D-02 6.1847742013053D-01 +153 1.5200000000000D+00 2.0929924938146D-05 -1.1915280244304D-04 -2.7977742855201D-03 6.1333933314550D-02 3.1507648250736D-01 +154 1.5300000000000D+00 1.9608821030089D-05 -1.4402270771977D-04 -2.1733101916101D-03 6.3110648731262D-02 4.6389049532909D-02 +155 1.5400000000000D+00 1.8070434229185D-05 -1.6260239274621D-04 -1.5438928596819D-03 6.2388094639699D-02 -1.8438299348218D-01 +156 1.5500000000000D+00 1.6377507461815D-05 -1.7496080812511D-04 -9.3258485242388D-04 5.9554855762022D-02 -3.7559282270110D-01 +157 1.5600000000000D+00 1.4591018425049D-05 -1.8137804913165D-04 -3.5850552824039D-04 5.5008961947608D-02 -5.2698147024771D-01 +158 1.5700000000000D+00 1.2768244244339D-05 -1.8230535821252D-04 1.6319880491507D-04 4.9144800581558D-02 -6.3949425461667D-01 +159 1.5800000000000D+00 1.0961265011947D-05 -1.7832605664790D-04 6.2126048319319D-04 4.2342113961348D-02 -7.1509132612443D-01 +160 1.5900000000000D+00 9.2158211974193D-06 -1.7011741128101D-04 1.0080968022766D-03 3.4956743043906D-02 -7.5655444052936D-01 +161 1.6000000000000D+00 7.5705631461091D-06 -1.5841529417337D-04 1.3195331210700D-03 2.7313412647651D-02 -7.6729847219982D-01 +162 1.6100000000000D+00 6.0566238930750D-06 -1.4398162463054D-04 1.5544630211910D-03 1.9700280774460D-02 -7.5118947625418D-01 +163 1.6200000000000D+00 4.6975100212003D-06 -1.2757566413920D-04 1.7144628999379D-03 1.2365310941831D-02 -7.1237491119767D-01 +164 1.6300000000000D+00 3.5092524454173D-06 -1.0992919935314D-04 1.8033789704140D-03 5.5142343964172D-03 -6.5512787663559D-01 +165 1.6400000000000D+00 2.5007904397844D-06 -9.1725976888996D-05 1.8269003130403D-03 -6.8998540717412D-04 -5.8370800457695D-01 +166 1.6500000000000D+00 1.6745339275258D-06 -7.3585420551624D-05 1.7921350811253D-03 -6.1264084103794D-03 -5.0224080951639D-01 +167 1.6600000000000D+00 1.0270745655773D-06 -5.6050489429840D-05 1.7071972737269D-03 -1.0714240082371D-02 -4.1461566625113D-01 +168 1.6700000000000D+00 5.4998941395772D-07 -3.9579609864031D-05 1.5808202834662D-03 -1.4410057417004D-02 -3.2440381950968D-01 +169 1.6800000000000D+00 2.3071670821561D-07 -2.4542275950941D-05 1.4219983110601D-03 -1.7204276872412D-02 -2.3479496183401D-01 +170 1.6900000000000D+00 5.3446507692475D-08 -1.1218072341415D-05 1.2396698019447D-03 -1.9117124699919D-02 -1.4855296389690D-01 +171 1.7000000000000D+00 1.8857823543317D-11 2.0133703882010D-07 1.0424393265596D-03 -2.0194201912434D-02 -6.7988570413637D-02 +172 1.7100000000000D+00 5.0775643698587D-08 9.6077083751889D-06 8.3834834178404D-04 -2.0501914746355D-02 5.0514714420072D-03 +173 1.7200000000000D+00 1.8536954286953D-07 1.6969577157706D-05 6.3468906405919D-04 -2.0122810683979D-02 6.9181015765401D-02 +174 1.7300000000000D+00 3.8348658250555D-07 2.2324092408882D-05 4.3786674009970D-04 -1.9151070801813D-02 1.2345852973282D-01 +175 1.7400000000000D+00 6.2549015994617D-07 2.5767576771542D-05 2.5330469917087D-04 -1.7688165515982D-02 1.6736025374486D-01 +176 1.7500000000000D+00 8.9296024639405D-07 2.7445467665339D-05 8.5391816255129D-05 -1.5838864367805D-02 2.0074500212425D-01 +177 1.7600000000000D+00 1.1691330592196D-06 2.7541827513782D-05 -6.2531705857941D-05 -1.3707607446333D-02 2.2381187721700D-01 +178 1.7700000000000D+00 1.4392361722753D-06 2.6268946289398D-05 -1.8815533469410D-04 -1.1395331597268D-02 2.3705352153516D-01 +179 1.7800000000000D+00 1.6907173649780D-06 2.3857281542568D-05 -2.9014870309451D-04 -8.9967924489005D-03 2.4120684028310D-01 +180 1.7900000000000D+00 1.9133821937312D-06 2.0545949857443D-05 -3.6808891255036D-04 -6.5983575622091D-03 2.3720270074522D-01 +181 1.8000000000000D+00 2.0994323515027D-06 1.6574199484779D-05 -4.2236773740684D-04 -4.2763597908219D-03 2.2611277061328D-01 +182 1.8100000000000D+00 2.2434321015866D-06 1.2173645433688D-05 -4.5408448854133D-04 -2.0958752121720D-03 2.0909539354219D-01 +183 1.8200000000000D+00 2.3421953933534D-06 7.5619514309621D-06 -4.6493085711673D-04 -1.1006426017160D-04 1.8736203651430D-01 +184 1.8300000000000D+00 2.3946198922688D-06 2.9372969650344D-06 -4.5706783928392D-04 1.6400988555388D-03 1.6217095749888D-01 +185 1.8400000000000D+00 2.4014722275041D-06 -1.5254789529746D-06 -4.3300704033811D-04 3.1256183512301D-03 1.3476669023436D-01 +186 1.8500000000000D+00 2.3651345911310D-06 -5.6780059402249D-06 -3.9548835528451D-04 4.3295875050784D-03 1.0607650167857D-01 +187 1.8600000000000D+00 2.2893371466655D-06 -9.3999182679404D-06 -3.4737224234427D-04 5.2462699139885D-03 7.6917022236190D-02 +188 1.8700000000000D+00 2.1788663644144D-06 -1.2599643645699D-05 -2.9152995058660D-04 5.8769871905440D-03 4.8727085370511D-02 +189 1.8800000000000D+00 2.0392847543693D-06 -1.5214011050676D-05 -2.3075163843824D-04 6.2302140678278D-03 2.2971924967879D-02 +190 1.8900000000000D+00 1.8766472124573D-06 -1.7207084242441D-05 -1.6768819189791D-04 6.3310051722382D-03 -2.6081374098932D-04 +191 1.9000000000000D+00 1.6972396043610D-06 -1.8568244185835D-05 -1.0479223067155D-04 6.2170561705466D-03 -2.1809674532427D-02 +192 1.9100000000000D+00 1.5073391914288D-06 -1.9309716583163D-05 -4.4180942082026D-05 5.9139513831363D-03 -4.1855023216738D-02 +193 1.9200000000000D+00 1.3129952913174D-06 -1.9463709870282D-05 1.2475484873695D-05 5.4204183948484D-03 -5.9331278697228D-02 +194 1.9300000000000D+00 1.1198557909144D-06 -1.9079452246926D-05 6.3847081042468D-05 4.7487159871393D-03 -7.3295460536374D-02 +195 1.9400000000000D+00 9.3300620461733D-07 -1.8217171150174D-05 1.0805512482293D-04 3.9800936247415D-03 -7.8673328182574D-02 +196 1.9500000000000D+00 7.5686641496186D-07 -1.6945160368341D-05 1.4369108325936D-04 3.1863813220821D-03 -7.1973437029160D-02 +197 1.9600000000000D+00 5.9510220916896D-07 -1.5350294122894D-05 1.7135902868203D-04 2.4555879567271D-03 -6.1909084952446D-02 +198 1.9700000000000D+00 4.5061502267335D-07 -1.3525842361034D-05 1.9233913500603D-04 1.8524621095962D-03 -6.1034270142037D-02 +199 1.9800000000000D+00 3.2543088256865D-07 -1.1541385166232D-05 2.0731521289541D-04 1.2844416641812D-03 -7.6060416383389D-02 +200 1.9900000000000D+00 2.2067831586233D-07 -9.4365970744762D-06 2.1578423834581D-04 4.8466106989996D-04 -1.0361857492357D-01 +201 2.0000000000000D+00 1.3666908385236D-07 -7.2662480584757D-06 2.1678789023351D-04 -7.4307430738368D-04 -1.3620603946564D-01 +202 2.0100000000000D+00 7.4071017419418D-08 -5.1510101547854D-06 2.0467765733501D-04 -2.2049658362310D-03 -1.4774730288394D-01 +203 2.0200000000000D+00 3.2446873270019D-08 -3.2153614571013D-06 1.7517095574033D-04 -3.6355612664759D-03 -1.1544452124085D-01 +204 2.0300000000000D+00 8.9094610875027D-09 -1.6231189475822D-06 1.3174076256141D-04 -4.6124707926224D-03 -4.5139167722758D-02 +205 2.0400000000000D+00 -1.0726638913947D-09 -5.2420676176371D-07 8.2952563795753D-05 -4.7219048532213D-03 3.8425938535748D-02 +206 2.0500000000000D+00 -2.5383672876122D-09 2.9636523265384D-08 3.8179284175491D-05 -3.8207337774977D-03 1.0787380037426D-01 +207 2.0600000000000D+00 -4.8043835060620D-10 1.8812903774646D-07 5.2345605341919D-06 -2.3792743784331D-03 1.4271150644263D-01 +208 2.0700000000000D+00 7.8465558155065D-10 1.4269080080677D-07 -9.8459276123218D-06 -9.6273937838004D-04 1.2755913948385D-01 +209 2.0800000000000D+00 5.8928046705718D-10 2.8773371812617D-08 -1.0833200645083D-05 9.3683607763130D-05 7.8866778523519D-02 +210 2.0900000000000D+00 -6.8893969018490D-11 -5.0937129057389D-08 -5.4482630242104D-06 5.9008240013104D-04 2.4853439628683D-02 +211 2.1000000000000D+00 -1.5120567668302D-10 -5.1085319163399D-08 -4.9647640408752D-07 5.3255561812835D-04 -1.1475489718673D-02 +212 2.1100000000000D+00 -3.2544376197594D-11 -8.7881422332360D-09 2.4485736504896D-06 2.0615922847660D-04 -2.7306886391748D-02 +213 2.1200000000000D+00 -9.0957407464662D-13 1.0696759967969D-08 2.6706361021918D-06 -3.4328609955478D-05 -2.3863176386949D-02 +214 2.1300000000000D+00 -7.5248991005194D-13 8.2524964945969D-09 1.0573763373686D-06 -1.2898867406966D-04 -9.6902098337770D-03 +215 2.1400000000000D+00 0.0000000000000D+00 -5.9629540514165D-10 -5.5452446099924D-07 -1.1253345110785D-04 3.5121903693971D-03 +216 2.1500000000000D+00 0.0000000000000D+00 -1.4628853365524D-09 -7.1765322499534D-07 -5.3758522028091D-05 7.3398031760057D-03 +217 2.1600000000000D+00 0.0000000000000D+00 -4.5372326493352D-10 -1.7211274699177D-07 1.4990451676382D-05 5.0976392710689D-03 +218 2.1700000000000D+00 0.0000000000000D+00 7.9099025856270D-11 1.3328184090810D-07 3.9595282554000D-05 1.8785818932752D-03 +219 2.1800000000000D+00 0.0000000000000D+00 8.1238631090189D-11 1.1820425653247D-07 2.2833666972813D-05 -5.4572936795211D-04 +220 2.1900000000000D+00 0.0000000000000D+00 1.1931210477050D-13 -3.4766059320448D-09 -5.6847988355163D-06 -1.6769814583536D-03 +221 2.2000000000000D+00 0.0000000000000D+00 6.6674212456765D-13 -1.9071348879975D-08 -1.0239730961365D-05 -1.3333825825361D-03 +222 2.2100000000000D+00 0.0000000000000D+00 3.5923822294718D-13 -9.9226424717792D-09 -4.3369412127111D-06 -2.0581601660183D-04 +223 2.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 9.4115597912700D-10 1.4030131893471D-06 5.3473879141967D-04 +224 2.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 1.4413554189563D-09 1.7591721798539D-06 4.4941377848125D-04 +225 2.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 2.6077935582130D-10 2.8545766966275D-07 2.1689856066405D-05 +226 2.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -5.1386592075089D-11 -2.2602889536297D-07 -1.3297356591018D-04 +227 2.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -4.7121207273330D-11 -1.9325426378140D-07 -9.3669756048742D-05 +228 2.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -8.8029037981717D-14 4.6968368621153D-09 9.4372895811687D-06 +229 2.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -4.2454370831623D-13 2.2229469773612D-08 2.4170439739250D-05 +230 2.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -2.4936997722757D-13 1.2757561799799D-08 1.2548392537161D-05 +231 2.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -6.7645919511713D-10 -1.9362894499957D-06 +232 2.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.2511799941095D-09 -3.1350713092936D-06 +233 2.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -4.2913872884328D-10 -1.0207696265761D-06 +234 2.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 2.5456551902371D-11 2.4282509011773D-07 +235 2.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 3.1630394844176D-11 2.8632335164132D-07 +236 2.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 4.1373278915950D-12 3.6352210680992D-08 +237 2.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 2.3299366626304D-13 -1.9240785930410D-08 +238 2.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 2.1970827375191D-13 -1.7814030856097D-08 +239 2.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 8.1758241072729D-11 +240 2.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 9.0505276528482D-10 +241 2.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 6.8807698829119D-10 +242 2.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -5.0356457663451D-12 +243 2.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.8839912955497D-11 +244 2.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.2264509414892D-11 +245 2.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -6.1005420833751D-14 +246 2.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -1.5688940735477D-13 +247 2.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 -9.0058657574541D-14 +248 2.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +249 2.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +250 2.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +251 2.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +252 2.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +253 2.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +254 2.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +255 2.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +256 2.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +257 2.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +258 2.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +259 2.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +260 2.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +261 2.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +262 2.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +263 2.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +264 2.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +265 2.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +266 2.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +267 2.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +268 2.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +269 2.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +270 2.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +271 2.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +272 2.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +273 2.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +274 2.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +275 2.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +276 2.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +277 2.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +278 2.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +279 2.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +280 2.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +281 2.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +282 2.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +283 2.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +284 2.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +285 2.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +286 2.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +287 2.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +288 2.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +289 2.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +290 2.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +291 2.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +292 2.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +293 2.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +294 2.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +295 2.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +296 2.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +297 2.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +298 2.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +299 2.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +300 2.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +301 3.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +302 3.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +303 3.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +304 3.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +305 3.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +306 3.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +307 3.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +308 3.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +309 3.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +310 3.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +311 3.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +312 3.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +313 3.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +314 3.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +315 3.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +316 3.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +317 3.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +318 3.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +319 3.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +320 3.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +321 3.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +322 3.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +323 3.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +324 3.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +325 3.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +326 3.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +327 3.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +328 3.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +329 3.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +330 3.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +331 3.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +332 3.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +333 3.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +334 3.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +335 3.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +336 3.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +337 3.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +338 3.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +339 3.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +340 3.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +341 3.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +342 3.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +343 3.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +344 3.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +345 3.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +346 3.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +347 3.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +348 3.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +349 3.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +350 3.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +351 3.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +352 3.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +353 3.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +354 3.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +355 3.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +356 3.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +357 3.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +358 3.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +359 3.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +360 3.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +361 3.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +362 3.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +363 3.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +364 3.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +365 3.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +366 3.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +367 3.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +368 3.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +369 3.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +370 3.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +371 3.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +372 3.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +373 3.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +374 3.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +375 3.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +376 3.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +377 3.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +378 3.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +379 3.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +380 3.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +381 3.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +382 3.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +383 3.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +384 3.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +385 3.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +386 3.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +387 3.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +388 3.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +389 3.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +390 3.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +391 3.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +392 3.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +393 3.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +394 3.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +395 3.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +396 3.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +397 3.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +398 3.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +399 3.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +400 3.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +401 4.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +402 4.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +403 4.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +404 4.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +405 4.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +406 4.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +407 4.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +408 4.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +409 4.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +410 4.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +411 4.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +412 4.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +413 4.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +414 4.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +415 4.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +416 4.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +417 4.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +418 4.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +419 4.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +420 4.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +421 4.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +422 4.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +423 4.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +424 4.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +425 4.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +426 4.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +427 4.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +428 4.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +429 4.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +430 4.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +431 4.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +432 4.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +433 4.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +434 4.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +435 4.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +436 4.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +437 4.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +438 4.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +439 4.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +440 4.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +441 4.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +442 4.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +443 4.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +444 4.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +445 4.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +446 4.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +447 4.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +448 4.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +449 4.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +450 4.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +451 4.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +452 4.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +453 4.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +454 4.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +455 4.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +456 4.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +457 4.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +458 4.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +459 4.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +460 4.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +461 4.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +462 4.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +463 4.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +464 4.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +465 4.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +466 4.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +467 4.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +468 4.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +469 4.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +470 4.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +471 4.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +472 4.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +473 4.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +474 4.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +475 4.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +476 4.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +477 4.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +478 4.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +479 4.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +480 4.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +481 4.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +482 4.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +483 4.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +484 4.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +485 4.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +486 4.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +487 4.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +488 4.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +489 4.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +490 4.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +491 4.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +492 4.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +493 4.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +494 4.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +495 4.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +496 4.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +497 4.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +498 4.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +499 4.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +500 4.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +501 5.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +502 5.0100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +503 5.0200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +504 5.0300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +505 5.0400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +506 5.0500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +507 5.0600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +508 5.0700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +509 5.0800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +510 5.0900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +511 5.1000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +512 5.1100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +513 5.1200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +514 5.1300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +515 5.1400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +516 5.1500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +517 5.1600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +518 5.1700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +519 5.1800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +520 5.1900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +521 5.2000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +522 5.2100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +523 5.2200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +524 5.2300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +525 5.2400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +526 5.2500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +527 5.2600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +528 5.2700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +529 5.2800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +530 5.2900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +531 5.3000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +532 5.3100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +533 5.3200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +534 5.3300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +535 5.3400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +536 5.3500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +537 5.3600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +538 5.3700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +539 5.3800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +540 5.3900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +541 5.4000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +542 5.4100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +543 5.4200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +544 5.4300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +545 5.4400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +546 5.4500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +547 5.4600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +548 5.4700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +549 5.4800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +550 5.4900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +551 5.5000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +552 5.5100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +553 5.5200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +554 5.5300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +555 5.5400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +556 5.5500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +557 5.5600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +558 5.5700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +559 5.5800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +560 5.5900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +561 5.6000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +562 5.6100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +563 5.6200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +564 5.6300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +565 5.6400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +566 5.6500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +567 5.6600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +568 5.6700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +569 5.6800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +570 5.6900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +571 5.7000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +572 5.7100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +573 5.7200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +574 5.7300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +575 5.7400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +576 5.7500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +577 5.7600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +578 5.7700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +579 5.7800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +580 5.7900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +581 5.8000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +582 5.8100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +583 5.8200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +584 5.8300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +585 5.8400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +586 5.8500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +587 5.8600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +588 5.8700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +589 5.8800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +590 5.8900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +591 5.9000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +592 5.9100000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +593 5.9200000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +594 5.9300000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +595 5.9400000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +596 5.9500000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +597 5.9600000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +598 5.9700000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +599 5.9800000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +600 5.9900000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 0.0000000000000D+00 +1 0.0000000000000D+00 1.0201513778068D+00 1.3319884286107D+02 2.5004210099240D+03 +2 1.0000000000000D-02 1.0247352945856D+00 1.1522627067132D+02 2.1646555592539D+03 +3 2.0000000000000D-02 1.0384682500590D+00 9.9762727010379D+01 1.8780851870322D+03 +4 3.0000000000000D-02 1.0612939631740D+00 8.6351874231806D+01 1.6312445701261D+03 +5 4.0000000000000D-02 1.0931189645694D+00 7.4693508372627D+01 1.4178188967188D+03 +6 5.0000000000000D-02 1.1338130913347D+00 6.4559420437379D+01 1.2330206296196D+03 +7 6.0000000000000D-02 1.1832101768339D+00 5.5757111270753D+01 1.0728724709684D+03 +8 7.0000000000000D-02 1.2411089305013D+00 4.8119980612995D+01 9.3399395741515D+02 +9 8.0000000000000D-02 1.3072740025187D+00 4.1502610932292D+01 8.1348911485647D+02 +10 9.0000000000000D-02 1.3814372270798D+00 3.5777658213836D+01 7.0886875688927D+02 +11 1.0000000000000D-01 1.4632990368368D+00 3.0833452925409D+01 6.1798981354310D+02 +12 1.1000000000000D-01 1.5525300400475D+00 2.6572011055671D+01 5.3900540358813D+02 +13 1.2000000000000D-01 1.6487727509068D+00 2.2907331804891D+01 4.7032278668253D+02 +14 1.3000000000000D-01 1.7516434625413D+00 1.9763920150604D+01 4.1056757993722D+02 +15 1.4000000000000D-01 1.8607342512020D+00 1.7075496907039D+01 3.5855315934304D+02 +16 1.5000000000000D-01 1.9756150992882D+00 1.4783869790494D+01 3.1325443701492D+02 +17 1.6000000000000D-01 2.0958361240124D+00 1.2837944590275D+01 2.7378536557346D+02 +18 1.7000000000000D-01 2.2209298977563D+00 1.1192858907205D+01 2.3937963038206D+02 +19 1.8000000000000D-01 2.3504138454954D+00 9.8092232848835D+00 2.0937407308606D+02 +20 1.9000000000000D-01 2.4837927040923D+00 8.6524564278053D+00 1.8319445663381D+02 +21 2.0000000000000D-01 2.6205610277750D+00 7.6922027874228D+00 1.6034323775268D+02 +22 2.1000000000000D-01 2.7602057237545D+00 6.9018221929167D+00 1.4038906034447D+02 +23 2.2000000000000D-01 2.9022086016783D+00 6.2579424479467D+00 1.2295772401289D+02 +24 2.3000000000000D-01 3.0460489204997D+00 5.7400669277504D+00 1.0772441699403D+02 +25 2.4000000000000D-01 3.1912059163423D+00 5.3302302046823D+00 9.4407032929613D+01 +26 2.5000000000000D-01 3.3371612950878D+00 5.0126956140923D+00 8.2760416859379D+01 +27 2.6000000000000D-01 3.4834016736936D+00 4.7736894550603D+00 7.2571408078000D+01 +28 2.7000000000000D-01 3.6294209546741D+00 4.6011672104605D+00 6.3654566597422D+01 +29 2.8000000000000D-01 3.7747226187391D+00 4.4846077764429D+00 5.5848486311842D+01 +30 2.9000000000000D-01 3.9188219212904D+00 4.4148322207375D+00 4.9012611961025D+01 +31 3.0000000000000D-01 4.0612479793086D+00 4.3838440498577D+00 4.3024488960923D+01 +32 3.1000000000000D-01 4.2015457361305D+00 4.3846883646049D+00 3.7777385407361D+01 +33 3.2000000000000D-01 4.3392777926977D+00 4.4113276281520D+00 3.3178234312094D+01 +34 3.3000000000000D-01 4.4740260950518D+00 4.4585320679691D+00 2.9145851588222D+01 +35 3.4000000000000D-01 4.6053934691375D+00 4.5217829880435D+00 2.5609391710113D+01 +36 3.5000000000000D-01 4.7330049953499D+00 4.5971874867593D+00 2.2507008395686D+01 +37 3.6000000000000D-01 4.8565092167010D+00 4.6814032630777D+00 1.9784692312772D+01 +38 3.7000000000000D-01 4.9755791759694D+00 4.7715723528091D+00 1.7395261766218D+01 +39 3.8000000000000D-01 5.0899132787250D+00 4.8652627699325D+00 1.5297485694105D+01 +40 3.9000000000000D-01 5.1992359806588D+00 4.9604171359220D+00 1.3455321175934D+01 +41 4.0000000000000D-01 5.3032982991835D+00 5.0553074629610D+00 1.1837250110905D+01 +42 4.1000000000000D-01 5.4018781507888D+00 5.1484953154329D+00 1.0415701830132D+01 +43 4.2000000000000D-01 5.4947805171068D+00 5.2387966116323D+00 9.1665502228551D+00 +44 4.3000000000000D-01 5.5818374440623D+00 5.3252503531443D+00 8.0686755349556D+00 +45 4.4000000000000D-01 5.6629078798230D+00 5.4070905989831D+00 7.1035823779882D+00 +46 4.5000000000000D-01 5.7378773585168D+00 5.4837210577359D+00 6.2550666938303D+00 +47 4.6000000000000D-01 5.8066575378305D+00 5.5546917759081D+00 5.5089254643656D+00 +48 4.7000000000000D-01 5.8691855996301D+00 5.6196775652506D+00 4.8527038356923D+00 +49 4.8000000000000D-01 5.9254235236491D+00 5.6784580232834D+00 4.2754750384068D+00 +50 4.9000000000000D-01 5.9753572450495D+00 5.7308992188009D+00 3.7676490370583D+00 +51 5.0000000000000D-01 6.0189957072876D+00 5.7769372801158D+00 3.3208062617333D+00 +52 5.1000000000000D-01 6.0563698221859D+00 5.8165641875303D+00 2.9275531120022D+00 +53 5.2000000000000D-01 6.0875313494408D+00 5.8498160130001D+00 2.5813962317861D+00 +54 5.3000000000000D-01 6.1125517079734D+00 5.8767636890147D+00 2.2766328721852D+00 +55 5.4000000000000D-01 6.1315207315604D+00 5.8975061742116D+00 2.0082550005145D+00 +56 5.5000000000000D-01 6.1445453810743D+00 5.9121656740172D+00 1.7718651675036D+00 +57 5.6000000000000D-01 6.1517484254202D+00 5.9208844236714D+00 1.5636024865135D+00 +58 5.7000000000000D-01 6.1532671028866D+00 5.9238224818561D+00 1.3800773869942D+00 +59 5.8000000000000D-01 6.1492517741475D+00 5.9211560243780D+00 1.2183140599843D+00 +60 5.9000000000000D-01 6.1398645775647D+00 5.9130757480327D+00 1.0756997100382D+00 +61 6.0000000000000D-01 6.1252780967652D+00 5.8997851532442D+00 9.4993986686836D-01 +62 6.1000000000000D-01 6.1056740497137D+00 5.8814986251817D+00 8.3901910327972D-01 +63 6.2000000000000D-01 6.0812420076865D+00 5.8584393436146D+00 7.4116656856319D-01 +64 6.3000000000000D-01 6.0521781516865D+00 5.8308371113943D+00 6.5482579415301D-01 +65 6.4000000000000D-01 6.0186840729459D+00 5.7989262061674D+00 5.7862827078378D-01 +66 6.5000000000000D-01 5.9809656232420D+00 5.7629433459509D+00 5.1137033965269D-01 +67 6.6000000000000D-01 5.9392318198322D+00 5.7231258322390D+00 4.5199298478574D-01 +68 6.7000000000000D-01 5.8936938089018D+00 5.6797099061409D+00 3.9956415871535D-01 +69 6.8000000000000D-01 5.8445638905203D+00 5.6329293294802D+00 3.5326331731803D-01 +70 6.9000000000000D-01 5.7920546072446D+00 5.5830141861708D+00 3.1236788018807D-01 +71 7.0000000000000D-01 5.7363778976819D+00 5.5301898889193D+00 2.7624136968382D-01 +72 7.1000000000000D-01 5.6777443155629D+00 5.4746763710476D+00 2.4432301416976D-01 +73 7.2000000000000D-01 5.6163623141559D+00 5.4166874414296D+00 2.1611862954778D-01 +74 7.3000000000000D-01 5.5524375952127D+00 5.3564302809043D+00 1.9119261761911D-01 +75 7.4000000000000D-01 5.4861725210543D+00 5.2941050600638D+00 1.6916094108726D-01 +76 7.5000000000000D-01 5.4177655879025D+00 5.2299046604027D+00 1.4968495330386D-01 +77 7.6000000000000D-01 5.3474109581290D+00 5.1640144830455D+00 1.3246597658684D-01 +78 7.7000000000000D-01 5.2752980487394D+00 5.0966123314309D+00 1.1724053658969D-01 +79 7.8000000000000D-01 5.2016111731257D+00 5.0278683562981D+00 1.0377617195590D-01 +80 7.9000000000000D-01 5.1265292329104D+00 4.9579450530527D+00 9.1867748688949D-02 +81 8.0000000000000D-01 5.0502254565658D+00 4.8869973030860D+00 8.1334217532329D-02 +82 8.1000000000000D-01 4.9728671814142D+00 4.8151724518865D+00 7.2015760355409D-02 +83 8.2000000000000D-01 4.8946156756011D+00 4.7426104178534D+00 6.3771278250113D-02 +84 8.3000000000000D-01 4.8156259966724D+00 4.6694438266086D+00 5.6476179894685D-02 +85 8.4000000000000D-01 4.7360468834771D+00 4.5957981663567D+00 5.0020433849304D-02 +86 8.5000000000000D-01 4.6560206782479D+00 4.5217919604590D+00 4.4306852912550D-02 +87 8.6000000000000D-01 4.5756832758805D+00 4.4475369539159D+00 3.9249582572019D-02 +88 8.7000000000000D-01 4.4951640976313D+00 4.3731383108909D+00 3.4772768999313D-02 +89 8.8000000000000D-01 4.4145860866716D+00 4.2986948207833D+00 3.0809385031742D-02 +90 8.9000000000000D-01 4.3340657231742D+00 4.2242991106796D+00 2.7300195204496D-02 +91 9.0000000000000D-01 4.2537130568529D+00 4.1500378622856D+00 2.4192843194782D-02 +92 9.1000000000000D-01 4.1736317551246D+00 4.0759920316861D+00 2.1441047054226D-02 +93 9.2000000000000D-01 4.0939191653092D+00 4.0022370704845D+00 1.9003889373192D-02 +94 9.3000000000000D-01 4.0146663895228D+00 3.9288431470634D+00 1.6845191071533D-02 +95 9.4000000000000D-01 3.9359583711430D+00 3.8558753668700D+00 1.4932958871569D-02 +96 9.5000000000000D-01 3.8578739919365D+00 3.7833939907768D+00 1.3238897704357D-02 +97 9.6000000000000D-01 3.7804861791286D+00 3.7114546506996D+00 1.1737980348950D-02 +98 9.7000000000000D-01 3.7038620218585D+00 3.6401085617719D+00 1.0408067533435D-02 +99 9.8000000000000D-01 3.6280628966086D+00 3.5694027304798D+00 9.2295725212199D-03 +100 9.9000000000000D-01 3.5531446013088D+00 3.4993801582578D+00 8.1851649365769D-03 +101 1.0000000000000D+00 3.4791574979082D+00 3.4300800401280D+00 7.2595092002347D-03 +102 1.0100000000000D+00 3.4061466632647D+00 3.3615379580460D+00 6.4390334973429D-03 +103 1.0200000000000D+00 3.3341520482388D+00 3.2937860686802D+00 5.7117256861049D-03 +104 1.0300000000000D+00 3.2632086448885D+00 3.2268532854160D+00 5.0669529802767D-03 +105 1.0400000000000D+00 3.1933466616441D+00 3.1607654544290D+00 4.4953026224612D-03 +106 1.0500000000000D+00 3.1245917063100D+00 3.0955455247193D+00 3.9884410715799D-03 +107 1.0600000000000D+00 3.0569649766812D+00 3.0312137120441D+00 3.5389895524525D-03 +108 1.0700000000000D+00 2.9904834584910D+00 2.9677876567203D+00 3.1404140456491D-03 +109 1.0800000000000D+00 2.9251601303225D+00 2.9052825753040D+00 2.7869280302617D-03 +110 1.0900000000000D+00 2.8610041750122D+00 2.8437114061834D+00 2.4734064987465D-03 +111 1.1000000000000D+00 2.7980211969893D+00 2.7830849491422D+00 2.1953099130382D-03 +112 1.1100000000000D+00 2.7362134448656D+00 2.7234119989776D+00 1.9486169599394D-03 +113 1.1200000000000D+00 2.6755800384973D+00 2.6646994732720D+00 1.7297650732113D-03 +114 1.1300000000000D+00 2.6161171996279D+00 2.6069525344345D+00 1.5355978253698D-03 +115 1.1400000000000D+00 2.5578184851338D+00 2.5501747061391D+00 1.3633183825614D-03 +116 1.1500000000000D+00 2.5006750217924D+00 2.4943679842996D+00 1.2104483247787D-03 +117 1.1600000000000D+00 2.4446757414150D+00 2.4395329427289D+00 1.0747912082802D-03 +118 1.1700000000000D+00 2.3898076147327D+00 2.3856688336371D+00 9.5440032461438D-04 +119 1.1800000000000D+00 2.3360558854784D+00 2.3327736831265D+00 8.4755016014033D-04 +120 1.1900000000000D+00 2.2834042954972D+00 2.2808443818481D+00 7.5271113729297D-04 +121 1.2000000000000D+00 2.2318353122449D+00 2.2298767709849D+00 6.6852725651470D-04 +122 1.2100000000000D+00 2.1813303555814D+00 2.1798657237275D+00 5.9379630362355D-04 +123 1.2200000000000D+00 2.1318701411119D+00 2.1308052224102D+00 5.2745232203223D-04 +124 1.2300000000000D+00 2.0834350743631D+00 2.0826884314743D+00 4.6855009522840D-04 +125 1.2400000000000D+00 2.0360056810713D+00 2.0355077664215D+00 4.1625140887794D-04 +126 1.2500000000000D+00 1.9895627383215D+00 1.9892549589245D+00 3.6981287746449D-04 +127 1.2600000000000D+00 1.9440873509788D+00 1.9439211182511D+00 3.2857516612959D-04 +128 1.2700000000000D+00 1.8995609655335D+00 1.8994967891632D+00 2.9195344612031D-04 +129 1.2800000000000D+00 1.8559654957382D+00 1.8559720064426D+00 2.5942893449152D-04 +130 1.2900000000000D+00 1.8132833886211D+00 1.8133363461968D+00 2.3054140120227D-04 +131 1.3000000000000D+00 1.7714976525468D+00 1.7715789740885D+00 2.0488253316612D-04 +132 1.3100000000000D+00 1.7305918937310D+00 1.7306886906354D+00 1.8209004915628D-04 +133 1.3200000000000D+00 1.6905503355543D+00 1.6906539737169D+00 1.6184248744598D-04 +134 1.3300000000000D+00 1.6513578217135D+00 1.6514630184196D+00 1.4385458820858D-04 +135 1.3400000000000D+00 1.6129998180060D+00 1.6131037743575D+00 1.2787319650054D-04 +136 1.3500000000000D+00 1.5754623910261D+00 1.5755639805864D+00 1.1367363441104D-04 +137 1.3600000000000D+00 1.5387321889003D+00 1.5388311982346D+00 1.0105648444520D-04 +138 1.3700000000000D+00 1.5027962880626D+00 1.5028928409705D+00 8.9844735911474D-05 +139 1.3800000000000D+00 1.4676420094989D+00 1.4677362034109D+00 7.9881258261850D-05 +140 1.3900000000000D+00 1.4332566340425D+00 1.4333484875861D+00 7.1026557994456D-05 +141 1.4000000000000D+00 1.3996273023636D+00 1.3997168275592D+00 6.3156790576363D-05 +142 1.4100000000000D+00 1.3667410724812D+00 1.3668283122984D+00 5.6161998801567D-05 +143 1.4200000000000D+00 1.3345849753517D+00 1.3346700069025D+00 4.9944547606305D-05 +144 1.4300000000000D+00 1.3031460888037D+00 1.3032289722614D+00 4.4417738870344D-05 +145 1.4400000000000D+00 1.2724114969596D+00 1.2724922832468D+00 3.9504580665047D-05 +146 1.4500000000000D+00 1.2423683016204D+00 1.2424470455098D+00 3.5136696180680D-05 +147 1.4600000000000D+00 1.2130036557608D+00 1.2130804109652D+00 3.1253356603761D-05 +148 1.4700000000000D+00 1.1843047737625D+00 1.1843795920426D+00 2.7800621208222D-05 +149 1.4800000000000D+00 1.1562589428443D+00 1.1563318747658D+00 2.4730576818677D-05 +150 1.4900000000000D+00 1.1288535358679D+00 1.1289246307416D+00 2.2000660656424D-05 +151 1.5000000000000D+00 1.1020760222313D+00 1.1021453281109D+00 1.9573061168306D-05 +152 1.5100000000000D+00 1.0759139778183D+00 1.0759815415320D+00 1.7414185421860D-05 +153 1.5200000000000D+00 1.0503550940773D+00 1.0504209612511D+00 1.5494186493644D-05 +154 1.5300000000000D+00 1.0253871862322D+00 1.0254514013152D+00 1.3786544609979D-05 +155 1.5400000000000D+00 1.0009982006964D+00 1.0010608069853D+00 1.2267694194119D-05 +156 1.5500000000000D+00 9.7717622172596D-01 9.7723726138979D-01 1.0916694373125D-05 +157 1.5600000000000D+00 9.5390947737538D-01 9.5396899148067D-01 9.7149347335058D-06 +158 1.5700000000000D+00 9.3118634478472D-01 9.3124437331994D-01 8.6458757461439D-06 +159 1.5800000000000D+00 9.0899535485604D-01 9.0905193675639D-01 7.6948169035435D-06 +160 1.5900000000000D+00 8.8732519634619D-01 8.8738036951800D-01 6.8486919441775D-06 +161 1.6000000000000D+00 8.6616471942511D-01 8.6621852077018D-01 6.0958862067257D-06 +162 1.6100000000000D+00 8.4550293872762D-01 8.4555540416718D-01 5.4260749993316D-06 +163 1.6200000000000D+00 8.2532903593820D-01 8.2538020043680D-01 4.8300797013547D-06 +164 1.6300000000000D+00 8.0563236193822D-01 8.0568225952732D-01 4.2997401531023D-06 +165 1.6400000000000D+00 7.8640243854741D-01 7.8645110234791D-01 3.8278012531018D-06 +166 1.6500000000000D+00 7.6762895988812D-01 7.6767642213280D-01 3.4078121900872D-06 +167 1.6600000000000D+00 7.4930179339705D-01 7.4934808545391D-01 3.0340370407999D-06 +168 1.6700000000000D+00 7.3141098051527D-01 7.3145613291032D-01 2.7013751909248D-06 +169 1.6800000000000D+00 7.1394673707567D-01 7.1399077951397D-01 2.4052908232759D-06 +170 1.6900000000000D+00 6.9689945341453D-01 6.9694241480100D-01 2.1417500716666D-06 +171 1.7000000000000D+00 6.8025969422323D-01 6.8030160268366D-01 1.9071653795283D-06 +172 1.7100000000000D+00 6.6401819816703D-01 6.6405908106858D-01 1.6983458722502D-06 +173 1.7200000000000D+00 6.4816587728329D-01 6.4820576125454D-01 1.5124534238953D-06 +174 1.7300000000000D+00 6.3269381618261D-01 6.3273272713318D-01 1.3469634747718D-06 +175 1.7400000000000D+00 6.1759327106440D-01 6.1763123420386D-01 1.1996303184184D-06 +176 1.7500000000000D+00 6.0285566856711D-01 6.0289270842359D-01 1.0684561750201D-06 +177 1.7600000000000D+00 5.8847260446488D-01 5.8850874490369D-01 9.5166374144935D-07 +178 1.7700000000000D+00 5.7443584222546D-01 5.7447110646730D-01 8.4767179109539D-07 +179 1.7800000000000D+00 5.6073731144227D-01 5.6077172208057D-01 7.5507344739900D-07 +180 1.7900000000000D+00 5.4736910615155D-01 5.4740268516923D-01 6.7261694297336D-07 +181 1.8000000000000D+00 5.3432348304955D-01 5.3435625183572D-01 5.9918840603864D-07 +182 1.8100000000000D+00 5.2159285961433D-01 5.2162483898053D-01 5.3379669705947D-07 +183 1.8200000000000D+00 5.0916981215006D-01 5.0920102234612D-01 4.7555975675959D-07 +184 1.8300000000000D+00 4.9704707375285D-01 4.9707753448228D-01 4.2369266286235D-07 +185 1.8400000000000D+00 4.8521753221955D-01 4.8524726265456D-01 3.7749679469690D-07 +186 1.8500000000000D+00 4.7367422789261D-01 4.7370324668877D-01 3.3635042268807D-07 +187 1.8600000000000D+00 4.6241035146450D-01 4.6243867677498D-01 2.9970012543974D-07 +188 1.8700000000000D+00 4.5141924173351D-01 4.5144689122297D-01 2.6705333537238D-07 +189 1.8800000000000D+00 4.4069438333010D-01 4.4072137418821D-01 2.3797157928604D-07 +190 1.8900000000000D+00 4.3022940441062D-01 4.3025575336521D-01 2.1206454612897D-07 +191 1.9000000000000D+00 4.2001807432949D-01 4.2004379765937D-01 1.8898477615701D-07 +192 1.9100000000000D+00 4.1005430129349D-01 4.1007941484089D-01 1.6842293016473D-07 +193 1.9200000000000D+00 4.0033213000064D-01 4.0035664918334D-01 1.5010362341755D-07 +194 1.9300000000000D+00 3.9084573927419D-01 3.9086967909733D-01 1.3378164726971D-07 +195 1.9400000000000D+00 3.8158943968653D-01 3.8161281475403D-01 1.1923870119449D-07 +196 1.9500000000000D+00 3.7255767118826D-01 3.7258049571403D-01 1.0628038680568D-07 +197 1.9600000000000D+00 3.6374500073447D-01 3.6376728855322D-01 9.4733616506003D-08 +198 1.9700000000000D+00 3.5514611992076D-01 3.5516788449854D-01 8.4444252777167D-08 +199 1.9800000000000D+00 3.4675584262617D-01 3.4677709707065D-01 7.5275031350715D-08 +200 1.9900000000000D+00 3.3856910266749D-01 3.3858985973789D-01 6.7103718432385D-08 +201 2.0000000000000D+00 3.3058095146981D-01 3.3060122358662D-01 5.9821440495813D-08 +202 2.0100000000000D+00 3.2278655574944D-01 3.2280635500379D-01 5.3331246210443D-08 +203 2.0200000000000D+00 3.1518119521991D-01 3.1520053338276D-01 4.7546772842732D-08 +204 2.0300000000000D+00 3.0776026031403D-01 3.0777914884504D-01 4.2391103134626D-08 +205 2.0400000000000D+00 3.0051924993047D-01 3.0053769998665D-01 3.7795723369501D-08 +206 2.0500000000000D+00 2.9345376920324D-01 2.9347179164733D-01 3.3699599423260D-08 +207 2.0600000000000D+00 2.8655952729455D-01 2.8657713270318D-01 3.0048368860357D-08 +208 2.0700000000000D+00 2.7983233521662D-01 2.7984953388826D-01 2.6793595795755D-08 +209 2.0800000000000D+00 2.7326810367724D-01 2.7328490563987D-01 2.3892135928269D-08 +210 2.0900000000000D+00 2.6686284095629D-01 2.6687925597489D-01 2.1305549046559D-08 +211 2.1000000000000D+00 2.6061265080980D-01 2.6062868839362D-01 1.8999585882603D-08 +212 2.1100000000000D+00 2.5451373040327D-01 2.5452939981291D-01 1.6943735088131D-08 +213 2.1200000000000D+00 2.4856236827729D-01 2.4857767853154D-01 1.5110805909745D-08 +214 2.1300000000000D+00 2.4275494234133D-01 2.4276990222381D-01 1.3476574388050D-08 +215 2.1400000000000D+00 2.3708791790118D-01 2.3710253596686D-01 1.2019453393402D-08 +216 2.1500000000000D+00 2.3155784571701D-01 2.3157213029848D-01 1.0720205440879D-08 +217 2.1600000000000D+00 2.2616136009285D-01 2.2617531930643D-01 9.5616900721370D-09 +218 2.1700000000000D+00 2.2089517700001D-01 2.2090881875168D-01 8.5286291294330D-09 +219 2.1800000000000D+00 2.1575609223076D-01 2.1576942422193D-01 7.6074088060303D-09 +220 2.1900000000000D+00 2.1074097958598D-01 2.1075400931910D-01 6.7858956573523D-09 +221 2.2000000000000D+00 2.0584678909503D-01 2.0585952387900D-01 6.0532739946242D-09 +222 2.2100000000000D+00 2.0107054526698D-01 2.0108299222248D-01 5.3999062905556D-09 +223 2.2200000000000D+00 1.9640934537610D-01 1.9642151144068D-01 4.8172004809008D-09 +224 2.2300000000000D+00 1.9186035777814D-01 1.9187224971126D-01 4.2974984830379D-09 +225 2.2400000000000D+00 1.8742082025933D-01 1.8743244464715D-01 3.8339746755483D-09 +226 2.2500000000000D+00 1.8308803841792D-01 1.8309940167804D-01 3.4205431003212D-09 +227 2.2600000000000D+00 1.7885938407626D-01 1.7887049246231D-01 3.0517798713036D-09 +228 2.2700000000000D+00 1.7473229372574D-01 1.7474315333178D-01 2.7228491753784D-09 +229 2.2800000000000D+00 1.7070426700241D-01 1.7071488376729D-01 2.4294392150221D-09 +230 2.2900000000000D+00 1.6677286519325D-01 1.6678324490477D-01 2.1677070544843D-09 +231 2.3000000000000D+00 1.6293570977402D-01 1.6294585807303D-01 1.9342255748740D-09 +232 2.3100000000000D+00 1.5919048097674D-01 1.5920040336109D-01 1.7259393046903D-09 +233 2.3200000000000D+00 1.5553491638733D-01 1.5554461821572D-01 1.5401243923794D-09 +234 2.3300000000000D+00 1.5196680957324D-01 1.5197629606896D-01 1.3743514105979D-09 +235 2.3400000000000D+00 1.4848400873981D-01 1.4849328499437D-01 1.2264545582493D-09 +236 2.3500000000000D+00 1.4508441541587D-01 1.4509348639253D-01 1.0945026018809D-09 +237 2.3600000000000D+00 1.4176598316776D-01 1.4177485370498D-01 9.7677287408468D-10 +238 2.3700000000000D+00 1.3852671634116D-01 1.3853539115590D-01 8.7172976584760D-10 +239 2.3800000000000D+00 1.3536466883083D-01 1.3537315252181D-01 7.7800360332689D-10 +240 2.3900000000000D+00 1.3227794287746D-01 1.3228623992832D-01 6.9437258357617D-10 +241 2.4000000000000D+00 1.2926468789116D-01 1.2927280267349D-01 6.1974756500079D-10 +242 2.4100000000000D+00 1.2632309930147D-01 1.2633103607780D-01 5.5315687159809D-10 +243 2.4200000000000D+00 1.2345141743313D-01 1.2345918035984D-01 4.9373375920153D-10 +244 2.4300000000000D+00 1.2064792640736D-01 1.2065551953747D-01 4.4070547611691D-10 +245 2.4400000000000D+00 1.1791095306811D-01 1.1791838035401D-01 3.9338252857813D-10 +246 2.4500000000000D+00 1.1523886593286D-01 1.1524613122898D-01 3.5114988223900D-10 +247 2.4600000000000D+00 1.1263007416761D-01 1.1263718123297D-01 3.1345911883016D-10 +248 2.4700000000000D+00 1.1008302658534D-01 1.1008997908610D-01 2.7982085168909D-10 +249 2.4800000000000D+00 1.0759621066793D-01 1.0760301217980D-01 2.4979853769304D-10 +250 2.4900000000000D+00 1.0516815161073D-01 1.0517480562135D-01 2.2300286646249D-10 +251 2.5000000000000D+00 1.0279741138938D-01 1.0280392130064D-01 1.9908639492531D-10 +252 2.5100000000000D+00 1.0048258784873D-01 1.0048895697900D-01 1.7773918505806D-10 +253 2.5200000000000D+00 9.8222313813143D-02 9.8228545399432D-02 1.5868480494271D-10 +254 2.5300000000000D+00 9.6015256217663D-02 9.6021353417778D-02 1.4167652472252D-10 +255 2.5400000000000D+00 9.3860115260075D-02 9.3866081154659D-02 1.2649423268948D-10 +256 2.5500000000000D+00 9.1755623573037D-02 9.1761461167578D-02 1.1294159969784D-10 +257 2.5600000000000D+00 8.9700545415787D-02 8.9706257642567D-02 1.0084337378503D-10 +258 2.5700000000000D+00 8.7693675885509D-02 8.7699265605498D-02 9.0043192387349D-11 +259 2.5800000000000D+00 8.5733840147563D-02 8.5739310152267D-02 8.0401585027526D-11 +260 2.5900000000000D+00 8.3819892683990D-02 8.3825245697241D-02 7.1794041889200D-11 +261 2.6000000000000D+00 8.1950716560504D-02 8.1955955240205D-02 6.4109455160699D-11 +262 2.6100000000000D+00 8.0125222711222D-02 8.0130349651043D-02 5.7248723925935D-11 +263 2.6200000000000D+00 7.8342349240374D-02 7.8347366971402D-02 5.1123369220214D-11 +264 2.6300000000000D+00 7.6601060741362D-02 7.6605971733707D-02 4.5654417956223D-11 +265 2.6400000000000D+00 7.4900347632552D-02 7.4905154296910D-02 4.0771438373957D-11 +266 2.6500000000000D+00 7.3239225508754D-02 7.3243930197922D-02 3.6411542372651D-11 +267 2.6600000000000D+00 7.1616734508933D-02 7.1621339519290D-02 3.2518581735044D-11 +268 2.6700000000000D+00 7.0031938699791D-02 7.0036446272738D-02 2.9042489229503D-11 +269 2.6800000000000D+00 6.8483925473721D-02 6.8488337797075D-02 2.5938555359918D-11 +270 2.6900000000000D+00 6.6971804961980D-02 6.6976124171338D-02 2.3166853233365D-11 +271 2.7000000000000D+00 6.5494709462838D-02 6.5498937642902D-02 2.0691779884783D-11 +272 2.7100000000000D+00 6.4051792882971D-02 6.4055932068839D-02 1.8481542845478D-11 +273 2.7200000000000D+00 6.2642230193084D-02 6.2646282371500D-02 1.6507748482969D-11 +274 2.7300000000000D+00 6.1265216897439D-02 6.1269184008015D-02 1.4745067970488D-11 +275 2.7400000000000D+00 5.9919968515977D-02 5.9923852452385D-02 1.3170890990507D-11 +276 2.7500000000000D+00 5.8605720079395D-02 5.8609522690517D-02 1.1765022174367D-11 +277 2.7600000000000D+00 5.7321725637189D-02 5.7325448728247D-02 1.0509436386039D-11 +278 2.7700000000000D+00 5.6067257777814D-02 5.6070903111466D-02 9.3880504832930D-12 +279 2.7800000000000D+00 5.4841607160460D-02 5.4845176457862D-02 8.3864978502894D-12 +280 2.7900000000000D+00 5.3644082058894D-02 5.3647577000742D-02 7.4919471872123D-12 +281 2.8000000000000D+00 5.2474007917111D-02 5.2477430144648D-02 6.6929559765586D-12 +282 2.8100000000000D+00 5.1330726915197D-02 5.1334078031200D-02 5.9793013557659D-12 +283 2.8200000000000D+00 5.0213597546585D-02 5.0216879116319D-02 5.3418499803923D-12 +284 2.8300000000000D+00 4.9121994206444D-02 4.9125207758600D-02 4.7724560467800D-12 +285 2.8400000000000D+00 4.8055306789531D-02 4.8058453817127D-02 4.2638441929925D-12 +286 2.8500000000000D+00 4.7012940298484D-02 4.7016022259753D-02 3.8101643473714D-12 +287 2.8600000000000D+00 4.5994314462316D-02 4.5997332781565D-02 3.4053405704204D-12 +288 2.8700000000000D+00 4.4998863364376D-02 4.5001819432826D-02 3.0426063399017D-12 +289 2.8800000000000D+00 4.4026035079312D-02 4.4028930255911D-02 2.7168417405168D-12 +290 2.8900000000000D+00 4.3075291319469D-02 4.3078126931689D-02 2.4152946155978D-12 +291 2.9000000000000D+00 4.2146107090927D-02 4.2148884435538D-02 2.1525056281139D-12 +292 2.9100000000000D+00 4.1237970356960D-02 4.1240690700783D-02 1.9306210584235D-12 +293 2.9200000000000D+00 4.0350381710722D-02 4.0353046291363D-02 1.7658568363096D-12 +294 2.9300000000000D+00 3.9482854056505D-02 3.9485464083071D-02 1.6269362162604D-12 +295 2.9400000000000D+00 3.8634912298666D-02 3.8637468952460D-02 1.4579336481205D-12 +296 2.9500000000000D+00 3.7806093038320D-02 3.7808597473520D-02 1.2211365601430D-12 +297 2.9600000000000D+00 3.6995944277921D-02 3.6998397622243D-02 8.5482096826332D-13 +298 2.9700000000000D+00 3.6204025133993D-02 3.6206428489332D-02 4.6795041569638D-13 +299 2.9800000000000D+00 3.5429905555932D-02 3.5432259998990D-02 1.2578806499748D-13 +300 2.9900000000000D+00 3.4673166052647D-02 3.4675472635544D-02 -7.3517028375816D-14 +301 3.0000000000000D+00 3.3933397426416D-02 3.3935657177287D-02 -1.2073405412606D-13 +302 3.0100000000000D+00 3.3210200513168D-02 3.3212414436741D-02 -8.1662239022755D-14 +303 3.0200000000000D+00 3.2503185929178D-02 3.2505355007340D-02 -3.5198794348872D-15 +304 3.0300000000000D+00 3.1811973824369D-02 3.1814099016717D-02 2.2978691714989D-14 +305 3.0400000000000D+00 3.1136193642679D-02 3.1138275887056D-02 2.7236415407367D-14 +306 3.0500000000000D+00 3.0475483887220D-02 3.0477524100237D-02 1.3924532278207D-14 +307 3.0600000000000D+00 2.9829491892137D-02 2.9831490969686D-02 -1.1519206742695D-15 +308 3.0700000000000D+00 2.9197873600353D-02 2.9199832418100D-02 -3.3319200913189D-15 +309 3.0800000000000D+00 2.8580293347107D-02 2.8582212760979D-02 -3.1106057665263D-15 +310 3.0900000000000D+00 2.7976423648341D-02 2.7978304494994D-02 -9.4420536984573D-16 +311 3.1000000000000D+00 2.7385944994910D-02 2.7387788092193D-02 0.0000000000000D+00 +312 3.1100000000000D+00 2.6808545652488D-02 2.6810351799889D-02 0.0000000000000D+00 +313 3.1200000000000D+00 2.6243921465930D-02 2.6245691445013D-02 0.0000000000000D+00 +314 3.1300000000000D+00 2.5691775668729D-02 2.5693510243559D-02 0.0000000000000D+00 +315 3.1400000000000D+00 2.5151818697355D-02 2.5153518614916D-02 0.0000000000000D+00 +316 3.1500000000000D+00 2.4623768011136D-02 2.4625434001732D-02 0.0000000000000D+00 +317 3.1600000000000D+00 2.4107347915428D-02 2.4108980693081D-02 0.0000000000000D+00 +318 3.1700000000000D+00 2.3602289390042D-02 2.3603889652874D-02 0.0000000000000D+00 +319 3.1800000000000D+00 2.3108329921954D-02 2.3109898352564D-02 0.0000000000000D+00 +320 3.1900000000000D+00 2.2625213342739D-02 2.2626750608568D-02 0.0000000000000D+00 +321 3.2000000000000D+00 2.2152689669183D-02 2.2154196422868D-02 0.0000000000000D+00 +322 3.2100000000000D+00 2.1690514948565D-02 2.1691991828292D-02 0.0000000000000D+00 +323 3.2200000000000D+00 2.1238451108015D-02 2.1239898737853D-02 0.0000000000000D+00 +324 3.2300000000000D+00 2.0796265807700D-02 2.0797684797933D-02 0.0000000000000D+00 +325 3.2400000000000D+00 2.0363732297235D-02 2.0365123244688D-02 0.0000000000000D+00 +326 3.2500000000000D+00 1.9940629276144D-02 1.9941992764492D-02 0.0000000000000D+00 +327 3.2600000000000D+00 1.9526740758183D-02 1.9528077358260D-02 0.0000000000000D+00 +328 3.2700000000000D+00 1.9121855938768D-02 1.9123166208868D-02 0.0000000000000D+00 +329 3.2800000000000D+00 1.8725769065619D-02 1.8727053551783D-02 0.0000000000000D+00 +330 3.2900000000000D+00 1.8338279312890D-02 1.8339538549196D-02 0.0000000000000D+00 +331 3.3000000000000D+00 1.7959190658960D-02 1.7960425167796D-02 0.0000000000000D+00 +332 3.3100000000000D+00 1.7588311766741D-02 1.7589522059078D-02 0.0000000000000D+00 +333 3.3200000000000D+00 1.7225455867108D-02 1.7226642442765D-02 0.0000000000000D+00 +334 3.3300000000000D+00 1.6870440645375D-02 1.6871603993273D-02 0.0000000000000D+00 +335 3.3400000000000D+00 1.6523088131174D-02 1.6524228729591D-02 0.0000000000000D+00 +336 3.3500000000000D+00 1.6183224590420D-02 1.6184342907234D-02 0.0000000000000D+00 +337 3.3600000000000D+00 1.5850680420237D-02 1.5851776913167D-02 0.0000000000000D+00 +338 3.3700000000000D+00 1.5525290046561D-02 1.5526365163397D-02 0.0000000000000D+00 +339 3.3800000000000D+00 1.5206891824869D-02 1.5207946003705D-02 0.0000000000000D+00 +340 3.3900000000000D+00 1.4895327942717D-02 1.4896361612168D-02 0.0000000000000D+00 +341 3.4000000000000D+00 1.4590444324972D-02 1.4591457904393D-02 0.0000000000000D+00 +342 3.4100000000000D+00 1.4292090541451D-02 1.4293084441150D-02 0.0000000000000D+00 +343 3.4200000000000D+00 1.4000119717402D-02 1.4001094338844D-02 0.0000000000000D+00 +344 3.4300000000000D+00 1.3714388445601D-02 1.3715344181612D-02 0.0000000000000D+00 +345 3.4400000000000D+00 1.3434756700847D-02 1.3435693935806D-02 0.0000000000000D+00 +346 3.4500000000000D+00 1.3161087756654D-02 1.3162006866691D-02 0.0000000000000D+00 +347 3.4600000000000D+00 1.2893248104460D-02 1.2894149457639D-02 0.0000000000000D+00 +348 3.4700000000000D+00 1.2631107374418D-02 1.2631991330920D-02 0.0000000000000D+00 +349 3.4800000000000D+00 1.2374538258171D-02 1.2375405170475D-02 0.0000000000000D+00 +350 3.4900000000000D+00 1.2123416433737D-02 1.2124266646792D-02 0.0000000000000D+00 +351 3.5000000000000D+00 1.1877620492517D-02 1.1878454343912D-02 0.0000000000000D+00 +352 3.5100000000000D+00 1.1637031867989D-02 1.1637849688120D-02 0.0000000000000D+00 +353 3.5200000000000D+00 1.1401534765907D-02 1.1402336878138D-02 0.0000000000000D+00 +354 3.5300000000000D+00 1.1171016096563D-02 1.1171802817384D-02 0.0000000000000D+00 +355 3.5400000000000D+00 1.0945365408791D-02 1.0946137047975D-02 0.0000000000000D+00 +356 3.5500000000000D+00 1.0724474825842D-02 1.0725231686590D-02 0.0000000000000D+00 +357 3.5600000000000D+00 1.0508238982216D-02 1.0508981361311D-02 0.0000000000000D+00 +358 3.5700000000000D+00 1.0296554962610D-02 1.0297283150554D-02 0.0000000000000D+00 +359 3.5800000000000D+00 1.0089322242154D-02 1.0090036523313D-02 0.0000000000000D+00 +360 3.5900000000000D+00 9.8864426288234D-03 9.8871432815638D-03 0.0000000000000D+00 +361 3.6000000000000D+00 9.6878202062211D-03 9.6885075030410D-03 0.0000000000000D+00 +362 3.6100000000000D+00 9.4933612785032D-03 9.4940354861645D-03 0.0000000000000D+00 +363 3.6200000000000D+00 9.3029743164073D-03 9.3036356960633D-03 0.0000000000000D+00 +364 3.6300000000000D+00 9.1165699051911D-03 9.1172187125104D-03 0.0000000000000D+00 +365 3.6400000000000D+00 8.9340606931494D-03 8.9346971784380D-03 0.0000000000000D+00 +366 3.6500000000000D+00 8.7553613417253D-03 8.7559857500449D-03 0.0000000000000D+00 +367 3.6600000000000D+00 8.5803884768501D-03 8.5810010481343D-03 0.0000000000000D+00 +368 3.6700000000000D+00 8.4090606417081D-03 8.4096616108754D-03 0.0000000000000D+00 +369 3.6800000000000D+00 8.2412982505944D-03 8.2418878476592D-03 0.0000000000000D+00 +370 3.6900000000000D+00 8.0770235436046D-03 8.0776019937849D-03 0.0000000000000D+00 +371 3.7000000000000D+00 7.9161605427922D-03 7.9167280666151D-03 0.0000000000000D+00 +372 3.7100000000000D+00 7.7586350092267D-03 7.7591918226317D-03 0.0000000000000D+00 +373 3.7200000000000D+00 7.6043744017278D-03 7.6049207161670D-03 0.0000000000000D+00 +374 3.7300000000000D+00 7.4533078356481D-03 7.4538438581853D-03 0.0000000000000D+00 +375 3.7400000000000D+00 7.3053660433253D-03 7.3058919767312D-03 0.0000000000000D+00 +376 3.7500000000000D+00 7.1604813352827D-03 7.1609973781295D-03 0.0000000000000D+00 +377 3.7600000000000D+00 7.0185875627676D-03 7.0190939095202D-03 0.0000000000000D+00 +378 3.7700000000000D+00 6.8796200808367D-03 6.8801169219423D-03 0.0000000000000D+00 +379 3.7800000000000D+00 6.7435157123572D-03 6.7440032343329D-03 0.0000000000000D+00 +380 3.7900000000000D+00 6.6102127130614D-03 6.6106910985799D-03 0.0000000000000D+00 +381 3.8000000000000D+00 6.4796507373670D-03 6.4801201653397D-03 0.0000000000000D+00 +382 3.8100000000000D+00 6.3517708054946D-03 6.3522314511535D-03 0.0000000000000D+00 +383 3.8200000000000D+00 6.2265152705948D-03 6.2269673055721D-03 0.0000000000000D+00 +384 3.8300000000000D+00 6.1038277872366D-03 6.1042713796428D-03 0.0000000000000D+00 +385 3.8400000000000D+00 5.9836532804691D-03 5.9840885949689D-03 0.0000000000000D+00 +386 3.8500000000000D+00 5.8659379159603D-03 5.8663651138473D-03 0.0000000000000D+00 +387 3.8600000000000D+00 5.7506290705807D-03 5.7510483098498D-03 0.0000000000000D+00 +388 3.8700000000000D+00 5.6376753036480D-03 5.6380867390666D-03 0.0000000000000D+00 +389 3.8800000000000D+00 5.5270263290761D-03 5.5274301122537D-03 0.0000000000000D+00 +390 3.8900000000000D+00 5.4186329880190D-03 5.4190292674747D-03 0.0000000000000D+00 +391 3.9000000000000D+00 5.3124472227712D-03 5.3128361440002D-03 0.0000000000000D+00 +392 3.9100000000000D+00 5.2084220504271D-03 5.2088037559658D-03 0.0000000000000D+00 +393 3.9200000000000D+00 5.1065115377358D-03 5.1068861672247D-03 0.0000000000000D+00 +394 3.9300000000000D+00 5.0066707764205D-03 5.0070384666662D-03 0.0000000000000D+00 +395 3.9400000000000D+00 4.9088558592006D-03 4.9092167442369D-03 0.0000000000000D+00 +396 3.9500000000000D+00 4.8130238565152D-03 4.8133780676614D-03 0.0000000000000D+00 +397 3.9600000000000D+00 4.7191327933796D-03 4.7194804592989D-03 0.0000000000000D+00 +398 3.9700000000000D+00 4.6271416271654D-03 4.6274828739214D-03 0.0000000000000D+00 +399 3.9800000000000D+00 4.5370102257576D-03 4.5373451768694D-03 0.0000000000000D+00 +400 3.9900000000000D+00 4.4486993465396D-03 4.4490281230359D-03 0.0000000000000D+00 +401 4.0000000000000D+00 4.3621706155909D-03 4.3624933360628D-03 0.0000000000000D+00 +402 4.0100000000000D+00 4.2773865073781D-03 4.2777032880308D-03 0.0000000000000D+00 +403 4.0200000000000D+00 4.1943103250902D-03 4.1946212797934D-03 0.0000000000000D+00 +404 4.0300000000000D+00 4.1129061813016D-03 4.1132114216390D-03 0.0000000000000D+00 +405 4.0400000000000D+00 4.0331389795330D-03 4.0334386148503D-03 0.0000000000000D+00 +406 4.0500000000000D+00 3.9549743956644D-03 3.9552685331169D-03 0.0000000000000D+00 +407 4.0600000000000D+00 3.8783788600975D-03 3.8786676046958D-03 0.0000000000000D+00 +408 4.0700000000000D+00 3.8033195403413D-03 3.8036029949967D-03 0.0000000000000D+00 +409 4.0800000000000D+00 3.7297643238929D-03 3.7300425894613D-03 0.0000000000000D+00 +410 4.0900000000000D+00 3.6576818020212D-03 3.6579549773465D-03 0.0000000000000D+00 +411 4.1000000000000D+00 3.5870412531855D-03 3.5873094351416D-03 0.0000000000000D+00 +412 4.1100000000000D+00 3.5178126273402D-03 3.5180759108723D-03 0.0000000000000D+00 +413 4.1200000000000D+00 3.4499665304948D-03 3.4502250086598D-03 0.0000000000000D+00 +414 4.1300000000000D+00 3.3834742096138D-03 3.3837279736197D-03 0.0000000000000D+00 +415 4.1400000000000D+00 3.3183075382070D-03 3.3185566774512D-03 0.0000000000000D+00 +416 4.1500000000000D+00 3.2544390016778D-03 3.2546836037856D-03 0.0000000000000D+00 +417 4.1600000000000D+00 3.1918416834264D-03 3.1920818342871D-03 0.0000000000000D+00 +418 4.1700000000000D+00 3.1304892511717D-03 3.1307250349751D-03 0.0000000000000D+00 +419 4.1800000000000D+00 3.0703559436043D-03 3.0705874428761D-03 0.0000000000000D+00 +420 4.1900000000000D+00 3.0114165576032D-03 3.0116438532392D-03 0.0000000000000D+00 +421 4.2000000000000D+00 2.9536464352633D-03 2.9538696065634D-03 0.0000000000000D+00 +422 4.2100000000000D+00 2.8970214515856D-03 2.8972405762868D-03 0.0000000000000D+00 +423 4.2200000000000D+00 2.8415180023584D-03 2.8417331566672D-03 0.0000000000000D+00 +424 4.2300000000000D+00 2.7871129923287D-03 2.7873242509526D-03 0.0000000000000D+00 +425 4.2400000000000D+00 2.7337838238886D-03 2.7339912600672D-03 0.0000000000000D+00 +426 4.2500000000000D+00 2.6815083855607D-03 2.6817120710958D-03 0.0000000000000D+00 +427 4.2600000000000D+00 2.6302650410913D-03 2.6304650463765D-03 0.0000000000000D+00 +428 4.2700000000000D+00 2.5800326187120D-03 2.5802290127617D-03 0.0000000000000D+00 +429 4.2800000000000D+00 2.5307904006235D-03 2.5309832511014D-03 0.0000000000000D+00 +430 4.2900000000000D+00 2.4825181130160D-03 2.4827074862628D-03 0.0000000000000D+00 +431 4.3000000000000D+00 2.4351959158160D-03 2.4353818768761D-03 0.0000000000000D+00 +432 4.3100000000000D+00 2.3888043930221D-03 2.3889870056707D-03 0.0000000000000D+00 +433 4.3200000000000D+00 2.3433245431897D-03 2.3435038699585D-03 0.0000000000000D+00 +434 4.3300000000000D+00 2.2987377700489D-03 2.2989138722515D-03 0.0000000000000D+00 +435 4.3400000000000D+00 2.2550258737343D-03 2.2551988114912D-03 0.0000000000000D+00 +436 4.3500000000000D+00 2.2121710416255D-03 2.2123408738882D-03 0.0000000000000D+00 +437 4.3600000000000D+00 2.1701558397835D-03 2.1703226243585D-03 0.0000000000000D+00 +438 4.3700000000000D+00 2.1289632045026D-03 2.1291269980747D-03 0.0000000000000D+00 +439 4.3800000000000D+00 2.0885764339902D-03 2.0887372921453D-03 0.0000000000000D+00 +440 4.3900000000000D+00 2.0489791805302D-03 2.0491371577775D-03 0.0000000000000D+00 +441 4.4000000000000D+00 2.0101554424352D-03 2.0103105922292D-03 0.0000000000000D+00 +442 4.4100000000000D+00 1.9720895563760D-03 1.9722419311376D-03 0.0000000000000D+00 +443 4.4200000000000D+00 1.9347661898928D-03 1.9349158410306D-03 0.0000000000000D+00 +444 4.4300000000000D+00 1.8981703340179D-03 1.8983173119484D-03 0.0000000000000D+00 +445 4.4400000000000D+00 1.8622872962384D-03 1.8624316504062D-03 0.0000000000000D+00 +446 4.4500000000000D+00 1.8271026934682D-03 1.8272444723654D-03 0.0000000000000D+00 +447 4.4600000000000D+00 1.7926024451425D-03 1.7927416963280D-03 0.0000000000000D+00 +448 4.4700000000000D+00 1.7587727665818D-03 1.7589095367004D-03 0.0000000000000D+00 +449 4.4800000000000D+00 1.7256001624549D-03 1.7257344972550D-03 0.0000000000000D+00 +450 4.4900000000000D+00 1.6930714204225D-03 1.6932033647748D-03 0.0000000000000D+00 +451 4.5000000000000D+00 1.6611736050440D-03 1.6613032029589D-03 0.0000000000000D+00 +452 4.5100000000000D+00 1.6298940515297D-03 1.6300213461743D-03 0.0000000000000D+00 +453 4.5200000000000D+00 1.5992203598625D-03 1.5993453935778D-03 0.0000000000000D+00 +454 4.5300000000000D+00 1.5691403889997D-03 1.5692632033170D-03 0.0000000000000D+00 +455 4.5400000000000D+00 1.5396422511430D-03 1.5397628868000D-03 0.0000000000000D+00 +456 4.5500000000000D+00 1.5107143064107D-03 1.5108328033677D-03 0.0000000000000D+00 +457 4.5600000000000D+00 1.4823451572446D-03 1.4824615546994D-03 0.0000000000000D+00 +458 4.5700000000000D+00 1.4545236431610D-03 1.4546379795650D-03 0.0000000000000D+00 +459 4.5800000000000D+00 1.4272388355973D-03 1.4273511486694D-03 0.0000000000000D+00 +460 4.5900000000000D+00 1.4004800328349D-03 1.4005903595767D-03 0.0000000000000D+00 +461 4.6000000000000D+00 1.3742367551368D-03 1.3743451318466D-03 0.0000000000000D+00 +462 4.6100000000000D+00 1.3484987399553D-03 1.3486052022421D-03 0.0000000000000D+00 +463 4.6200000000000D+00 1.3232559371277D-03 1.3233605199250D-03 0.0000000000000D+00 +464 4.6300000000000D+00 1.2984985043154D-03 1.2986012418944D-03 0.0000000000000D+00 +465 4.6400000000000D+00 1.2742168025083D-03 1.2743177284912D-03 0.0000000000000D+00 +466 4.6500000000000D+00 1.2504013915714D-03 1.2505005389439D-03 0.0000000000000D+00 +467 4.6600000000000D+00 1.2270430261494D-03 1.2271404272738D-03 0.0000000000000D+00 +468 4.6700000000000D+00 1.2041326512826D-03 1.2042283379095D-03 0.0000000000000D+00 +469 4.6800000000000D+00 1.1816613983532D-03 1.1817554016341D-03 0.0000000000000D+00 +470 4.6900000000000D+00 1.1596205810809D-03 1.1597129315798D-03 0.0000000000000D+00 +471 4.7000000000000D+00 1.1380016915819D-03 1.1380924192866D-03 0.0000000000000D+00 +472 4.7100000000000D+00 1.1167963965779D-03 1.1168855309118D-03 0.0000000000000D+00 +473 4.7200000000000D+00 1.0959965337045D-03 1.0960841035372D-03 0.0000000000000D+00 +474 4.7300000000000D+00 1.0755941077477D-03 1.0756801414063D-03 0.0000000000000D+00 +475 4.7400000000000D+00 1.0555812871055D-03 1.0556658123850D-03 0.0000000000000D+00 +476 4.7500000000000D+00 1.0359504002919D-03 1.0360334444658D-03 0.0000000000000D+00 +477 4.7600000000000D+00 1.0166939324760D-03 1.0167755223062D-03 0.0000000000000D+00 +478 4.7700000000000D+00 9.9780452226679D-04 9.9788468401368D-04 0.0000000000000D+00 +479 4.7800000000000D+00 9.7927495835613D-04 9.7935371778871D-04 0.0000000000000D+00 +480 4.7900000000000D+00 9.6109817631771D-04 9.6117555872284D-04 0.0000000000000D+00 +481 4.8000000000000D+00 9.4326725549946D-04 9.4334328569139D-04 0.0000000000000D+00 +482 4.8100000000000D+00 9.2577541596888D-04 9.2585011829840D-04 0.0000000000000D+00 +483 4.8200000000000D+00 9.0861601548410D-04 9.0868941384759D-04 0.0000000000000D+00 +484 4.8300000000000D+00 8.9178254673748D-04 8.9185466458575D-04 0.0000000000000D+00 +485 4.8400000000000D+00 8.7526863433611D-04 8.7533949468305D-04 0.0000000000000D+00 +486 4.8500000000000D+00 8.5906803206235D-04 8.5913765749337D-04 0.0000000000000D+00 +487 4.8600000000000D+00 8.4317462014524D-04 8.4324303282564D-04 0.0000000000000D+00 +488 4.8700000000000D+00 8.2758240257890D-04 8.2764962426196D-04 0.0000000000000D+00 +489 4.8800000000000D+00 8.1228550452157D-04 8.1235155655654D-04 0.0000000000000D+00 +490 4.8900000000000D+00 7.9727816982171D-04 7.9734307316164D-04 0.0000000000000D+00 +491 4.9000000000000D+00 7.8255475841474D-04 7.8261853362409D-04 0.0000000000000D+00 +492 4.9100000000000D+00 7.6810974391976D-04 7.6817241118194D-04 0.0000000000000D+00 +493 4.9200000000000D+00 7.5393771125313D-04 7.5399929037785D-04 0.0000000000000D+00 +494 4.9300000000000D+00 7.4003335427413D-04 7.4009386470454D-04 0.0000000000000D+00 +495 4.9400000000000D+00 7.2639147354196D-04 7.2645093436179D-04 0.0000000000000D+00 +496 4.9500000000000D+00 7.1300697410669D-04 7.1306540404709D-04 0.0000000000000D+00 +497 4.9600000000000D+00 6.9987486325591D-04 6.9993228070226D-04 0.0000000000000D+00 +498 4.9700000000000D+00 6.8699024840610D-04 6.8704667140465D-04 0.0000000000000D+00 +499 4.9800000000000D+00 6.7434833501342D-04 6.7440378127779D-04 0.0000000000000D+00 +500 4.9900000000000D+00 6.6194442450703D-04 6.6199891142459D-04 0.0000000000000D+00 +501 5.0000000000000D+00 6.4977391234397D-04 6.4982745698205D-04 0.0000000000000D+00 +502 5.0100000000000D+00 6.3783228604985D-04 6.3788490516190D-04 0.0000000000000D+00 +503 5.0200000000000D+00 6.2611512325773D-04 6.2616683328933D-04 0.0000000000000D+00 +504 5.0300000000000D+00 6.1461808985839D-04 6.1466890695310D-04 0.0000000000000D+00 +505 5.0400000000000D+00 6.0333693816962D-04 6.0338687817474D-04 0.0000000000000D+00 +506 5.0500000000000D+00 5.9226750512289D-04 5.9231658359513D-04 0.0000000000000D+00 +507 5.0600000000000D+00 5.8140571056454D-04 5.8145394277556D-04 0.0000000000000D+00 +508 5.0700000000000D+00 5.7074755553309D-04 5.7079495647488D-04 0.0000000000000D+00 +509 5.0800000000000D+00 5.6028912054022D-04 5.6033570493048D-04 0.0000000000000D+00 +510 5.0900000000000D+00 5.5002656394924D-04 5.5007234623655D-04 0.0000000000000D+00 +511 5.1000000000000D+00 5.3995612036945D-04 5.4000111473839D-04 0.0000000000000D+00 +512 5.1100000000000D+00 5.3007409906636D-04 5.3011831944252D-04 0.0000000000000D+00 +513 5.1200000000000D+00 5.2037688246537D-04 5.2042034252027D-04 0.0000000000000D+00 +514 5.1300000000000D+00 5.1086092465315D-04 5.1090363780900D-04 0.0000000000000D+00 +515 5.1400000000000D+00 5.0152274985817D-04 5.0156472929266D-04 0.0000000000000D+00 +516 5.1500000000000D+00 4.9235895103066D-04 4.9240020968154D-04 0.0000000000000D+00 +517 5.1600000000000D+00 4.8336618843310D-04 4.8340673900271D-04 0.0000000000000D+00 +518 5.1700000000000D+00 4.7454118824809D-04 4.7458104320783D-04 0.0000000000000D+00 +519 5.1800000000000D+00 4.6588074124721D-04 4.6591991284187D-04 0.0000000000000D+00 +520 5.1900000000000D+00 4.5738170150461D-04 4.5742020175665D-04 0.0000000000000D+00 +521 5.2000000000000D+00 4.4904098504101D-04 4.4907882575475D-04 0.0000000000000D+00 +522 5.2100000000000D+00 4.4085556858172D-04 4.4089276134744D-04 0.0000000000000D+00 +523 5.2200000000000D+00 4.3282248831839D-04 4.3285904451634D-04 0.0000000000000D+00 +524 5.2300000000000D+00 4.2493883869182D-04 4.2497476949620D-04 0.0000000000000D+00 +525 5.2400000000000D+00 4.1720177119460D-04 4.1723708757738D-04 0.0000000000000D+00 +526 5.2500000000000D+00 4.0960849328508D-04 4.0964320601983D-04 0.0000000000000D+00 +527 5.2600000000000D+00 4.0215626716461D-04 4.0219038683021D-04 0.0000000000000D+00 +528 5.2700000000000D+00 3.9484240869331D-04 3.9487594567759D-04 0.0000000000000D+00 +529 5.2800000000000D+00 3.8766428630117D-04 3.8769725080449D-04 0.0000000000000D+00 +530 5.2900000000000D+00 3.8061931992242D-04 3.8065172196115D-04 0.0000000000000D+00 +531 5.3000000000000D+00 3.7370497992475D-04 3.7373682933474D-04 0.0000000000000D+00 +532 5.3100000000000D+00 3.6691878617310D-04 3.6695009261304D-04 0.0000000000000D+00 +533 5.3200000000000D+00 3.6025830695392D-04 3.6028907990864D-04 0.0000000000000D+00 +534 5.3300000000000D+00 3.5372115801125D-04 3.5375140679494D-04 0.0000000000000D+00 +535 5.3400000000000D+00 3.4730500159232D-04 3.4733473535176D-04 0.0000000000000D+00 +536 5.3500000000000D+00 3.4100754550959D-04 3.4103677322722D-04 0.0000000000000D+00 +537 5.3600000000000D+00 3.3482654220688D-04 3.3485527270385D-04 0.0000000000000D+00 +538 5.3700000000000D+00 3.2875978789680D-04 3.2878802983602D-04 0.0000000000000D+00 +539 5.3800000000000D+00 3.2280512167530D-04 3.2283288356432D-04 0.0000000000000D+00 +540 5.3900000000000D+00 3.1696042463057D-04 3.1698771482448D-04 0.0000000000000D+00 +541 5.4000000000000D+00 3.1122361901296D-04 3.1125044571724D-04 0.0000000000000D+00 +542 5.4100000000000D+00 3.0559266740883D-04 3.0561903868210D-04 0.0000000000000D+00 +543 5.4200000000000D+00 3.0006557192877D-04 3.0009149568550D-04 0.0000000000000D+00 +544 5.4300000000000D+00 2.9464037340070D-04 2.9466585741389D-04 0.0000000000000D+00 +545 5.4400000000000D+00 2.8931515066285D-04 2.8934020256666D-04 0.0000000000000D+00 +546 5.4500000000000D+00 2.8408801972971D-04 2.8411264702198D-04 0.0000000000000D+00 +547 5.4600000000000D+00 2.7895713307221D-04 2.7898134311702D-04 0.0000000000000D+00 +548 5.4700000000000D+00 2.7392067888946D-04 2.7394447891957D-04 0.0000000000000D+00 +549 5.4800000000000D+00 2.6897688039563D-04 2.6900027751492D-04 0.0000000000000D+00 +550 5.4900000000000D+00 2.6412399510638D-04 2.6414699629220D-04 0.0000000000000D+00 +551 5.5000000000000D+00 2.5936031419391D-04 2.5938292629942D-04 0.0000000000000D+00 +552 5.5100000000000D+00 2.5468416180111D-04 2.5470639155757D-04 0.0000000000000D+00 +553 5.5200000000000D+00 2.5009389436809D-04 2.5011574838710D-04 0.0000000000000D+00 +554 5.5300000000000D+00 2.4558789999990D-04 2.4560938477557D-04 0.0000000000000D+00 +555 5.5400000000000D+00 2.4116459783739D-04 2.4118571974853D-04 0.0000000000000D+00 +556 5.5500000000000D+00 2.3682243744058D-04 2.3684320275282D-04 0.0000000000000D+00 +557 5.5600000000000D+00 2.3255989816426D-04 2.3258031303207D-04 0.0000000000000D+00 +558 5.5700000000000D+00 2.2837548863802D-04 2.2839555910680D-04 0.0000000000000D+00 +559 5.5800000000000D+00 2.2426774611543D-04 2.2428747812348D-04 0.0000000000000D+00 +560 5.5900000000000D+00 2.2023523592941D-04 2.2025463530990D-04 0.0000000000000D+00 +561 5.6000000000000D+00 2.1627655093682D-04 2.1629562341970D-04 0.0000000000000D+00 +562 5.6100000000000D+00 2.1239031097444D-04 2.1240906218832D-04 0.0000000000000D+00 +563 5.6200000000000D+00 2.0857516231816D-04 2.0859359779219D-04 0.0000000000000D+00 +564 5.6300000000000D+00 2.0482977717262D-04 2.0484790233826D-04 0.0000000000000D+00 +565 5.6400000000000D+00 2.0115285317925D-04 2.0117067337209D-04 0.0000000000000D+00 +566 5.6500000000000D+00 1.9754311287873D-04 1.9756063334021D-04 0.0000000000000D+00 +567 5.6600000000000D+00 1.9399930323415D-04 1.9401652911328D-04 0.0000000000000D+00 +568 5.6700000000000D+00 1.9052019515037D-04 1.9053713150541D-04 0.0000000000000D+00 +569 5.6800000000000D+00 1.8710458300318D-04 1.8712123480329D-04 0.0000000000000D+00 +570 5.6900000000000D+00 1.8375128416546D-04 1.8376765629233D-04 0.0000000000000D+00 +571 5.7000000000000D+00 1.8045913858793D-04 1.8047523583736D-04 0.0000000000000D+00 +572 5.7100000000000D+00 1.7722700834105D-04 1.7724283542447D-04 0.0000000000000D+00 +573 5.7200000000000D+00 1.7405377716906D-04 1.7406933871513D-04 0.0000000000000D+00 +574 5.7300000000000D+00 1.7093835007281D-04 1.7095365062886D-04 0.0000000000000D+00 +575 5.7400000000000D+00 1.6787965289335D-04 1.6789469692687D-04 0.0000000000000D+00 +576 5.7500000000000D+00 1.6487663190411D-04 1.6489142380422D-04 0.0000000000000D+00 +577 5.7600000000000D+00 1.6192825339637D-04 1.6194279747521D-04 0.0000000000000D+00 +578 5.7700000000000D+00 1.5903350333172D-04 1.5904780382583D-04 0.0000000000000D+00 +579 5.7800000000000D+00 1.5619138692284D-04 1.5620544799456D-04 0.0000000000000D+00 +580 5.7900000000000D+00 1.5340092826052D-04 1.5341475399929D-04 0.0000000000000D+00 +581 5.8000000000000D+00 1.5066116994894D-04 1.5067476437264D-04 0.0000000000000D+00 +582 5.8100000000000D+00 1.4797117274483D-04 1.4798453980106D-04 0.0000000000000D+00 +583 5.8200000000000D+00 1.4533001520387D-04 1.4534315877123D-04 0.0000000000000D+00 +584 5.8300000000000D+00 1.4273679331872D-04 1.4274971720802D-04 0.0000000000000D+00 +585 5.8400000000000D+00 1.4019062022706D-04 1.4020332818256D-04 0.0000000000000D+00 +586 5.8500000000000D+00 1.3769062583535D-04 1.3770312153598D-04 0.0000000000000D+00 +587 5.8600000000000D+00 1.3523595650250D-04 1.3524824356299D-04 0.0000000000000D+00 +588 5.8700000000000D+00 1.3282577472207D-04 1.3283785669411D-04 0.0000000000000D+00 +589 5.8800000000000D+00 1.3045925880913D-04 1.3047113918252D-04 0.0000000000000D+00 +590 5.8900000000000D+00 1.2813560259348D-04 1.2814728479725D-04 0.0000000000000D+00 +591 5.9000000000000D+00 1.2585401510441D-04 1.2586550250786D-04 0.0000000000000D+00 +592 5.9100000000000D+00 1.2361372032098D-04 1.2362501623479D-04 0.0000000000000D+00 +593 5.9200000000000D+00 1.2141395684145D-04 1.2142506451872D-04 0.0000000000000D+00 +594 5.9300000000000D+00 1.1925397761029D-04 1.1926490024756D-04 0.0000000000000D+00 +595 5.9400000000000D+00 1.1713304964210D-04 1.1714379038039D-04 0.0000000000000D+00 +596 5.9500000000000D+00 1.1505045374975D-04 1.1506101567551D-04 0.0000000000000D+00 +597 5.9600000000000D+00 1.1300548427797D-04 1.1301587042407D-04 0.0000000000000D+00 +598 5.9700000000000D+00 1.1099744882971D-04 1.1100766217641D-04 0.0000000000000D+00 +599 5.9800000000000D+00 1.0902566804758D-04 1.0903571152346D-04 0.0000000000000D+00 +600 5.9900000000000D+00 1.0708947533085D-04 1.0709935181372D-04 0.0000000000000D+00 + +# +#ONCVPSP (Optimized Norm-Conservinng Vanderbilt PSeudopotential) +#scalar-relativistic version 3.2.3 08/16/2016 +# +#While it is not required under the terms of the GNU GPL, it is +#suggested that you cite D. R. Hamann, Phys. Rev. B 88, 085117 (2013) +#in any publication utilizing these pseudopotentials. +# +# ATOM AND REFERENCE CONFIGURATION +# atsym z nc nv iexc psfile +N 7.00 1 2 4 psp8 +# +# n l f +1 0 2.00 +2 0 2.00 +2 1 3.00 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# lmax +1 +# +# l, rc, ep, ncon, nbas, qcut +0 1.20000 -0.68291 4 8 8.80000 +1 1.35000 -0.26055 4 8 9.00000 +# +# LOCAL POTENTIAL +# lloc, lpopt, rc(5), dvloc0 +4 5 1.20000 0.00000 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# l, nproj, debl +0 2 1.00000 +1 2 1.00000 +# +# MODEL CORE CHARGE +# icmod, fcfact, rcfact +3 4.00000 1.50000 +# +# LOG DERIVATIVE ANALYSIS +# epsh1, epsh2, depsh +-12.00 12.00 0.02 +# +# OUTPUT GRID +# rlmax, drl +6.00 0.01 +# +# TEST CONFIGURATIONS +# ncnf +0 +# nvcnf +# n l f + diff --git a/abipy/data/pseudos/N.xml b/abipy/data/pseudos/N.xml new file mode 100644 index 000000000..28004dd05 --- /dev/null +++ b/abipy/data/pseudos/N.xml @@ -0,0 +1,5109 @@ + + + + + + + + + + + + + + + + + + + 0.0000000000000000E+00 2.6371539578299171E-05 5.3102600006581150E-05 + 8.0198082600569471E-05 1.0766295549518662E-04 1.3550225455549823E-04 + 1.6372108430006777E-04 1.9232461883690718E-04 2.2131810281218048E-04 + 2.5070685237184662E-04 2.8049625613640894E-04 3.1069177618895375E-04 + 3.4129894907665941E-04 3.7232338682595981E-04 4.0377077797154370E-04 + 4.3564688859938752E-04 4.6795756340400446E-04 5.0070872676010640E-04 + 5.3390638380887878E-04 5.6755662155906126E-04 6.0166561000304269E-04 + 6.3623960324816673E-04 6.7128494066346679E-04 7.0680804804202908E-04 + 7.4281543877920424E-04 7.7931371506688256E-04 8.1630956910404685E-04 + 8.5380978432383382E-04 8.9182123663731944E-04 9.3035089569426272E-04 + 9.6940582616103683E-04 1.0089931890159827E-03 1.0491202428624211E-03 + 1.0897943452595653E-03 1.1310229540715776E-03 1.1728136288350181E-03 + 1.2151740321449370E-03 1.2581119310598572E-03 1.3016351985259207E-03 + 1.3457518148204436E-03 1.3904698690151501E-03 1.4357975604593590E-03 + 1.4817432002833890E-03 1.5283152129224565E-03 1.5755221376613550E-03 + 1.6233726302001851E-03 1.6718754642414356E-03 1.7210395330987023E-03 + 1.7708738513273299E-03 1.8213875563772952E-03 1.8725899102686159E-03 + 1.9244903012896033E-03 1.9770982457182683E-03 2.0304233895671914E-03 + 2.0844755103521808E-03 2.1392645188850531E-03 2.1948004610908328E-03 + 2.2510935198497483E-03 2.3081540168643291E-03 2.3659924145519521E-03 + 2.4246193179632012E-03 2.4840454767263683E-03 2.5442817870184723E-03 + 2.6053392935631399E-03 2.6672291916557348E-03 2.7299628292160824E-03 + 2.7935517088691882E-03 2.8580074900543214E-03 2.9233419911628483E-03 + 2.9895671917052106E-03 3.0566952345074476E-03 3.1247384279376694E-03 + 3.1937092481628660E-03 3.2636203414365046E-03 3.3344845264172977E-03 + 3.4063147965195913E-03 3.4791243222957891E-03 3.5529264538512683E-03 + 3.6277347232921979E-03 3.7035628472067467E-03 3.7804247291801083E-03 + 3.8583344623438157E-03 3.9373063319598067E-03 4.0173548180397253E-03 + 4.0984945979999207E-03 4.1807405493526550E-03 4.2641077524339889E-03 + 4.3486114931688621E-03 4.4342672658738641E-03 4.5210907760982258E-03 + 4.6090979435035300E-03 4.6983049047826892E-03 4.7887280166187098E-03 + 4.8803838586838066E-03 4.9732892366793824E-03 5.0674611854174736E-03 + 5.1629169719441910E-03 5.2596740987057482E-03 5.3577503067576459E-03 + 5.4571635790176170E-03 5.5579321435629088E-03 5.6600744769725198E-03 + 5.7636093077150117E-03 5.8685556195824801E-03 5.9749326551713760E-03 + 6.0827599194107464E-03 6.1920571831386014E-03 6.3028444867270286E-03 + 6.4151421437567127E-03 6.5289707447415872E-03 6.6443511609042202E-03 + 6.7613045480027006E-03 6.8798523502096795E-03 7.0000163040443075E-03 + 7.1218184423577635E-03 7.2452810983731223E-03 7.3704269097802999E-03 + 7.4972788228868234E-03 7.6258600968251867E-03 7.7561943078175658E-03 + 7.8883053534986713E-03 8.0222174572975417E-03 8.1579551728790615E-03 + 8.2955433886460466E-03 8.4350073323026849E-03 8.5763725754802178E-03 + 8.7196650384256513E-03 8.8649109947544092E-03 9.0121370762677767E-03 + 9.1613702778360114E-03 9.3126379623480367E-03 9.4659678657285952E-03 + 9.6213881020238319E-03 9.7789271685561670E-03 9.9386139511494914E-03 + 1.0100477729425548E-02 1.0264548182172564E-02 1.0430855392787035E-02 + 1.0599429854789727E-02 1.0770302477416855E-02 1.0943504591287501E-02 + 1.1119067954148286E-02 1.1297024756696359E-02 1.1477407628481777E-02 + 1.1660249643890345E-02 1.1845584328208029E-02 1.2033445663768027E-02 + 1.2223868096181659E-02 1.2416886540654195E-02 1.2612536388386790E-02 + 1.2810853513065702E-02 1.3011874277439930E-02 1.3215635539988623E-02 + 1.3422174661679279E-02 1.3631529512818128E-02 1.3843738479993936E-02 + 1.4058840473116384E-02 1.4276874932550516E-02 1.4497881836348332E-02 + 1.4721901707579079E-02 1.4948975621759371E-02 1.5179145214384702E-02 + 1.5412452688563573E-02 1.5648940822755669E-02 1.5888652978615650E-02 + 1.6131633108943715E-02 1.6377925765744691E-02 1.6627576108396908E-02 + 1.6880629911932499E-02 1.7137133575430501E-02 1.7397134130524492E-02 + 1.7660679250026109E-02 1.7927817256666177E-02 1.8198597131955024E-02 + 1.8473068525163509E-02 1.8751281762426634E-02 1.9033287855971054E-02 + 1.9319138513468614E-02 1.9608886147517234E-02 1.9902583885251086E-02 + 2.0200285578081865E-02 2.0502045811572736E-02 2.0807919915447011E-02 + 2.1117963973733160E-02 2.1432234835048240E-02 2.1750790123021450E-02 + 2.2073688246859756E-02 2.2400988412057687E-02 2.2732750631252949E-02 + 2.3069035735230250E-02 2.3409905384074919E-02 2.3755422078478777E-02 + 2.4105649171199971E-02 2.4460650878679178E-02 2.4820492292814109E-02 + 2.5185239392894465E-02 2.5554959057699788E-02 2.5929719077762006E-02 + 2.6309588167795384E-02 2.6694635979295712E-02 2.7084933113311480E-02 + 2.7480551133388913E-02 2.7881562578693741E-02 2.8288040977311673E-02 + 2.8700060859730227E-02 2.9117697772504465E-02 2.9541028292108844E-02 + 2.9970130038978148E-02 3.0405081691739569E-02 3.0845963001639061E-02 + 3.1292854807164198E-02 3.1745839048866430E-02 3.2204998784385500E-02 + 3.2670418203678470E-02 3.3142182644456689E-02 3.3620378607832832E-02 + 3.4105093774181604E-02 3.4596417019216424E-02 3.5094438430285362E-02 + 3.5599249322889361E-02 3.6110942257425345E-02 3.6629611056158008E-02 + 3.7155350820422497E-02 3.7688257948062097E-02 3.8228430151103214E-02 + 3.8775966473671666E-02 3.9330967310153030E-02 3.9893534423600510E-02 + 4.0463770964394061E-02 4.1041781489153474E-02 4.1627671979909728E-02 + 4.2221549863537280E-02 4.2823524031451718E-02 4.3433704859575477E-02 + 4.4052204228576190E-02 4.4679135544380674E-02 4.5314613758968558E-02 + 4.5958755391449696E-02 4.6611678549428451E-02 4.7273502950659761E-02 + 4.7944349944999944E-02 4.8624342536657171E-02 4.9313605406745037E-02 + 5.0012264936143580E-02 5.0720449228672186E-02 5.1438288134578139E-02 + 5.2165913274345665E-02 5.2903458062829221E-02 5.3651057733716166E-02 + 5.4408849364322678E-02 5.5176971900727699E-02 5.5955566183249782E-02 + 5.6744774972270901E-02 5.7544742974412720E-02 5.8355616869069253E-02 + 5.9177545335301743E-02 6.0010679079099745E-02 6.0855170861014184E-02 + 6.1711175524167015E-02 6.2578850022642574E-02 6.3458353450266333E-02 + 6.4349847069775687E-02 6.5253494342388557E-02 6.6169460957775095E-02 + 6.7097914864438002E-02 6.8039026300506858E-02 6.8992967824952608E-02 + 6.9959914349227256E-02 7.0940043169334971E-02 7.1933533998340682E-02 + 7.2940568999321359E-02 7.3961332818767170E-02 7.4996012620437258E-02 + 7.6044798119677695E-02 7.7107881618207030E-02 7.8185458039375905E-02 + 7.9277724963907725E-02 8.0384882666126187E-02 8.1507134150677146E-02 + 8.2644685189750572E-02 8.3797744360810458E-02 8.4966523084838846E-02 + 8.6151235665100967E-02 8.7352099326439642E-02 8.8569334255104437E-02 + 8.9803163639124550E-02 9.1053813709231615E-02 9.2321513780340772E-02 + 9.3606496293596880E-02 9.4908996858994302E-02 9.6229254298577455E-02 + 9.7567510690230314E-02 9.8924011412063251E-02 1.0029900518740437E-01 + 1.0169274413040497E-01 1.0310548379226583E-01 1.0453748320809483E-01 + 1.0598900494440208E-01 1.0746031514724376E-01 1.0895168359102141E-01 + 1.1046338372794709E-01 1.1199569273818223E-01 1.1354889158066098E-01 + 1.1512326504460552E-01 1.1671910180174412E-01 1.1833669445924114E-01 + 1.1997633961334800E-01 1.2163833790378673E-01 1.2332299406887379E-01 + 1.2503061700139612E-01 1.2676151980524811E-01 1.2851601985284200E-01 + 1.3029443884329980E-01 1.3209710286143891E-01 1.3392434243756221E-01 + 1.3577649260806235E-01 1.3765389297685357E-01 1.3955688777764005E-01 + 1.4148582593703340E-01 1.4344106113853033E-01 1.4542295188736348E-01 + 1.4743186157623533E-01 1.4946815855194867E-01 1.5153221618294554E-01 + 1.5362441292776638E-01 1.5574513240444351E-01 1.5789476346083964E-01 + 1.6007370024594586E-01 1.6228234228215091E-01 1.6452109453849717E-01 + 1.6679036750493367E-01 1.6909057726758245E-01 1.7142214558503061E-01 + 1.7378549996566212E-01 1.7618107374604511E-01 1.7860930617038645E-01 + 1.8107064247107021E-01 1.8356553395029349E-01 1.8609443806281650E-01 + 1.8865781849983926E-01 1.9125614527402265E-01 1.9388989480566846E-01 + 1.9655955001007350E-01 1.9926560038607630E-01 2.0200854210580926E-01 + 2.0478887810567534E-01 2.0760711817856481E-01 2.1046377906732847E-01 + 2.1335938455952691E-01 2.1629446558346968E-01 2.1926956030556496E-01 + 2.2228521422899492E-01 2.2534198029373870E-01 2.2844041897795672E-01 + 2.3158109840075819E-01 2.3476459442636982E-01 2.3799149076972326E-01 + 2.4126237910348455E-01 2.4457785916654032E-01 2.4793853887396416E-01 + 2.5134503442848105E-01 2.5479797043345354E-01 2.5829798000740584E-01 + 2.6184570490011078E-01 2.6544179561025888E-01 2.6908691150473046E-01 + 2.7278172093949676E-01 2.7652690138216601E-01 2.8032313953620214E-01 + 2.8417113146683642E-01 2.8807158272869460E-01 2.9202520849516661E-01 + 2.9603273368953725E-01 3.0009489311790621E-01 3.0421243160391837E-01 + 3.0838610412533379E-01 3.1261667595245707E-01 3.1690492278845439E-01 + 3.2125163091158454E-01 3.2565759731936689E-01 3.3012362987471794E-01 + 3.3465054745407696E-01 3.3923918009755311E-01 3.4389036916111748E-01 + 3.4860496747087316E-01 3.5338383947942525E-01 3.5822786142438401E-01 + 3.6313792148902962E-01 3.6811491996516460E-01 3.7315976941819046E-01 + 3.7827339485443123E-01 3.8345673389074003E-01 3.8871073692641617E-01 + 3.9403636731746872E-01 3.9943460155325328E-01 4.0490642943551780E-01 + 4.1045285425988959E-01 4.1607489299983480E-01 4.2177357649312941E-01 + 4.2754994963086856E-01 4.3340507154905500E-01 4.3934001582279719E-01 + 4.4535587066315846E-01 4.5145373911668629E-01 4.5763473926766346E-01 + 4.6390000444311663E-01 4.7025068342061760E-01 4.7668794063892173E-01 + 4.8321295641147383E-01 4.8982692714282672E-01 4.9653106554801035E-01 + 5.0332660087488934E-01 5.1021477912955615E-01 5.1719686330479320E-01 + 5.2427413361165121E-01 5.3144788771418261E-01 5.3871944096738011E-01 + 5.4609012665835288E-01 5.5356129625079487E-01 5.6113431963278448E-01 + 5.6881058536796081E-01 5.7659150095012890E-01 5.8447849306133104E-01 + 5.9247300783343881E-01 6.0057651111330990E-01 6.0879048873156261E-01 + 6.1711644677501154E-01 6.2555591186281845E-01 6.3411043142640888E-01 + 6.4278157399320146E-01 6.5157092947421091E-01 6.6048010945556668E-01 + 6.6951074749400863E-01 6.7866449941641027E-01 6.8794304362338421E-01 + 6.9734808139703031E-01 7.0688133721287538E-01 7.1654455905606806E-01 + 7.2633951874188130E-01 7.3626801224058902E-01 7.4633186000676810E-01 + 7.5653290731308953E-01 7.6687302458866391E-01 7.7735410776199276E-01 + 7.8797807860860392E-01 7.9874688510341940E-01 8.0966250177793042E-01 + 8.2072693008223796E-01 8.3194219875203612E-01 8.4331036418059113E-01 + 8.5483351079579595E-01 8.6651375144236331E-01 8.7835322776922820E-01 + 8.9035411062223646E-01 9.0251860044218168E-01 9.1484892766827108E-01 + 9.2734735314708905E-01 9.4001616854714198E-01 9.5285769677904841E-01 + 9.6587429242146028E-01 9.7906834215279170E-01 9.9244226518882772E-01 + 1.0059985137263103E+00 1.0197395733925592E+00 1.0336679637012316E+00 + 1.0477862385142873E+00 1.0620969865102610E+00 1.0766028316589105E+00 + 1.0913064337023397E+00 1.1062104886426805E+00 1.1213177292364191E+00 + 1.1366309254954698E+00 1.1521528851950724E+00 1.1678864543886158E+00 + 1.1838345179294825E+00 1.2000000000000006E+00 1.2163858646476196E+00 + 1.2329951163283821E+00 1.2498308004578134E+00 1.2668960039693138E+00 + 1.2841938558801755E+00 1.3017275278653038E+00 1.3195002348387650E+00 + 1.3375152355432633E+00 1.3557758331476497E+00 1.3742853758525839E+00 + 1.3930472575044468E+00 1.4120649182176255E+00 1.4313418450052766E+00 + 1.4508815724186999E+00 1.4706876831954174E+00 1.4907638089160922E+00 + 1.5111136306704045E+00 1.5317408797319987E+00 1.5526493382426434E+00 + 1.5738428399057089E+00 1.5953252706891010E+00 1.6171005695377820E+00 + 1.6391727290959954E+00 1.6615457964393521E+00 1.6842238738168835E+00 + 1.7072111194032173E+00 1.7305117480610019E+00 1.7541300321137363E+00 + 1.7780703021291246E+00 1.8023369477131139E+00 1.8269344183147604E+00 + 1.8518672240420575E+00 1.8771399364889048E+00 1.9027571895733315E+00 + 1.9287236803871615E+00 1.9550441700572470E+00 1.9817234846184641E+00 + 2.0087665158985910E+00 2.0361782224152578E+00 2.0639636302851252E+00 + 2.0921278341454501E+00 2.1206759980882310E+00 2.1496133566070692E+00 + 2.1789452155569538E+00 2.2086769531271178E+00 2.2388140208271716E+00 + 2.2693619444866728E+00 2.3003263252683173E+00 2.3317128406949577E+00 + 2.3635272456906016E+00 2.3957753736356318E+00 2.4284631374363816E+00 + 2.4615965306093130E+00 2.4951816283799579E+00 2.5292245887968630E+00 + 2.5637316538606991E+00 2.5987091506687769E+00 2.6341634925751647E+00 + 2.6701011803666059E+00 2.7065288034544999E+00 2.7434530410831015E+00 + 2.7808806635542069E+00 2.8188185334685367E+00 2.8572736069840281E+00 + 2.8962529350913075E+00 2.9357636649065268E+00 2.9758130409818366E+00 + 3.0164084066337153E+00 3.0575572052894269E+00 3.0992669818518155E+00 + 3.1415453840827134E+00 3.1844001640052095E+00 3.2278391793250267E+00 + 3.2718703948712982E+00 3.3165018840569593E+00 3.3617418303590689E+00 + 3.4075985288192903E+00 3.4540803875648591E+00 3.5011959293502590E+00 + 3.5489537931199258E+00 3.5973627355922573E+00 3.6464316328652058E+00 + 3.6961694820437838E+00 3.7465854028897336E+00 3.7976886394936957E+00 + 3.8494885619701789E+00 3.9019946681756177E+00 3.9552165854498877E+00 + 4.0091640723815294E+00 4.0638470205970538E+00 4.1192754565746226E+00 + 4.1754595434824964E+00 4.2324095830424948E+00 4.2901360174188969E+00 + 4.3486494311330812E+00 4.4079605530042487E+00 4.4680802581166494E+00 + 4.5290195698135891E+00 4.5907896617186266E+00 4.6534018597843305E+00 + 4.7168676443689801E+00 4.7811986523415531E+00 4.8464066792154279E+00 + 4.9125036813111667E+00 4.9795017779487747E+00 5.0474132536698759E+00 + 5.1162505604901600E+00 5.1860263201825330E+00 5.2567533265913982E+00 + 5.3284445479785107E+00 5.4011131294007821E+00 5.4747723951205112E+00 + 5.5494358510484814E+00 5.6251171872203454E+00 5.7018302803068002E+00 + 5.7795891961579651E+00 5.8584081923824209E+00 5.9383017209614737E+00 + 6.0192844308989981E+00 6.1013711709074334E+00 6.1845769921303937E+00 + 6.2689171509023920E+00 6.3544071115461929E+00 6.4410625492083033E+00 + 6.5288993527330756E+00 6.6179336275760932E+00 6.7081816987571736E+00 + 6.7996601138536708E+00 6.8923856460345903E+00 6.9863752971360524E+00 + 7.0816463007786998E+00 7.1782161255275883E+00 7.2761024780951624E+00 + 7.3753233065879158E+00 7.4758968037972426E+00 7.5778414105352745E+00 + 7.6811758190160839E+00 7.7859189762830310E+00 7.8920900876828304E+00 + 7.9997086203869792E+00 8.1087943069611867E+00 8.2193671489834745E+00 + 8.3314474207116103E+00 8.4450556728004660E+00 8.5602127360702127E+00 + 8.6769397253257097E+00 8.7952580432280794E+00 8.9151893842190173E+00 + 9.0367557384986004E+00 9.1599793960573592E+00 9.2848829507632669E+00 + 9.4114893045045083E+00 9.5398216713886210E+00 9.6699035819990495E+00 + 9.8017588877095694E+00 9.9354117650576175E+00 1.0070886720177201E+01 + 1.0208208593292277E+01 1.0347402563271361E+01 1.0488494152244240E+01 + 1.0631509230281640E+01 1.0776474020138604E+01 1.0923415102062714E+01 + 1.1072359418667679E+01 1.1223334279873459E+01 1.1376367367913728E+01 + 1.1531486742411575E+01 1.1688720845524442E+01 1.1848098507159161E+01 + 1.2009648950258141E+01 1.2173401796157501E+01 1.2339387070018454E+01 + 1.2507635206332543E+01 1.2678177054502024E+01 1.2851043884496308E+01 + 1.3026267392585508E+01 1.3203879707152169E+01 1.3383913394582208E+01 + 1.3566401465236213E+01 1.3751377379501996E+01 1.3938875053929932E+01 + 1.4128928867451682E+01 1.4321573667683824E+01 1.4516844777317377E+01 + 1.4714778000594471E+01 1.4915409629873277E+01 1.5118776452282454E+01 + 1.5324915756466329E+01 1.5533865339421919E+01 1.5745663513429419E+01 + 1.5960349113076896E+01 1.6177961502380892E+01 1.6398540582004095E+01 + 1.6622126796571358E+01 1.6848761142085511E+01 1.7078485173444232E+01 + 1.7311341012059454E+01 1.7547371353580473E+01 1.7786619475722663E+01 + 1.8029129246202597E+01 1.8274945130781528E+01 1.8524112201418475E+01 + 1.8776676144534456E+01 1.9032683269389384E+01 1.9292180516573215E+01 + 1.9555215466612754E+01 1.9821836348695953E+01 2.0092092049514868E+01 + 2.0366032122229580E+01 2.0643706795553950E+01 2.0925166982965425E+01 + 2.1210464292040356E+01 2.1499651033916582E+01 2.1792780232885026E+01 + 2.2089905636112046E+01 2.2391081723494366E+01 2.2696363717648179E+01 + 2.3005807594034803E+01 2.3319470091223984E+01 2.3637408721297344E+01 + 2.3959681780393591E+01 2.4286348359397504E+01 2.4617468354774616E+01 + 2.4953102479553646E+01 2.5293312274458682E+01 2.5638160119192865E+01 + 2.5987709243876427E+01 2.6342023740640141E+01 2.6701168575377093E+01 + 2.7065209599654597E+01 2.7434213562788536E+01 2.7808248124082240E+01 + 2.8187381865232329E+01 2.8571684302903606E+01 2.8961225901475238E+01 + 2.9356078085961148E+01 2.9756313255106051E+01 3.0162004794660298E+01 + 3.0573227090835658E+01 3.0990055543944479E+01 3.1412566582224855E+01 + 3.1840837675854250E+01 3.2274947351154204E+01 3.2714975204988434E+01 + 3.3161001919357787E+01 3.3613109276193583E+01 3.4071380172352917E+01 + 3.4535898634818366E+01 3.5006749836104859E+01 3.5484020109876653E+01 + 3.5967796966777158E+01 3.6458169110474635E+01 3.6955226453926372E+01 + 3.7459060135865194E+01 3.7969762537510078E+01 3.8487427299504937E+01 + 3.9012149339088246E+01 3.9544024867496717E+01 4.0083151407606294E+01 + 4.0629627811813613E+01 4.1183554280161211E+01 4.1745032378709958E+01 + 4.2314165058161571E+01 4.2891056672735729E+01 4.3475812999303805E+01 + 4.4068541256783867E+01 4.4669350125799923E+01 4.5278349768609232E+01 + 4.5895651849301323E+01 4.6521369554272304E+01 4.7155617612978411E+01 + 4.7798512318972094E+01 4.8450171551225694E+01 4.9110714795744990E+01 + 4.9780263167477855E+01 5.0458939432521440E+01 5.1146868030632170E+01 + 5.1844175098042570E+01 5.2550988490589219E+01 5.3267437807155993E+01 + 5.3993654413436538E+01 5.4729771466021568E+01 5.5475923936813665E+01 + 5.6232248637775328E+01 5.6998884246014335E+01 5.7775971329211146E+01 + 5.8563652371392884E+01 5.9362071799058704E+01 6.0171376007661486E+01 + 6.0991713388449952E+01 6.1823234355677819E+01 6.2666091374182805E+01 + 6.3520438987342210E+01 6.4386433845409428E+01 6.5264234734236737E+01 + 6.6154002604389902E+01 6.7055900600659328E+01 6.7970094091973991E+01 + 6.8896750701722340E+01 6.9836040338487933E+01 7.0788135227202801E+01 + 7.1753209940726123E+01 7.2731441431853298E+01 7.3723009065761431E+01 + 7.4728094652897127E+01 7.5746882482312614E+01 7.6779559355456456E+01 + 7.7826314620424370E+01 7.8887340206678132E+01 7.9962830660236733E+01 + 8.1052983179347621E+01 + + + 2.6193396400557223E-05 2.6550488640466473E-05 2.6912449087073832E-05 + 2.7279344108207580E-05 2.7651240976482655E-05 2.8028207881635612E-05 + 2.8410313943027574E-05 2.8797629222317779E-05 2.9190224736309803E-05 + 2.9588172469972987E-05 2.9991545389641362E-05 3.0400417456392480E-05 + 3.0814863639608660E-05 3.1234959930723160E-05 3.1660783357153665E-05 + 3.2092411996425769E-05 3.2529924990489057E-05 3.2973402560228212E-05 + 3.3422926020172143E-05 3.3878577793403451E-05 3.4340441426671298E-05 + 3.4808601605710225E-05 3.5283144170767854E-05 3.5764156132344268E-05 + 3.6251725687145923E-05 3.6745942234257138E-05 3.7246896391531960E-05 + 3.7754680012209612E-05 3.8269386201756307E-05 3.8791109334936804E-05 + 3.9319945073118607E-05 3.9855990381812134E-05 4.0399343548449966E-05 + 4.0950104200408507E-05 4.1508373323275291E-05 4.2074253279365380E-05 + 4.2647847826490179E-05 4.3229262136982045E-05 4.3818602816978422E-05 + 4.4415977925968713E-05 4.5021496996607695E-05 4.5635271054799102E-05 + 4.6257412640052913E-05 4.6888035826120197E-05 4.7527256241909358E-05 + 4.8175191092687374E-05 4.8831959181570183E-05 4.9497680931306041E-05 + 5.0172478406355804E-05 5.0856475335274229E-05 5.1549797133396458E-05 + 5.2252570925833716E-05 5.2964925570782550E-05 5.3686991683151816E-05 + 5.4418901658511790E-05 5.5160789697369780E-05 5.5912791829776629E-05 + 5.6675045940268756E-05 5.7447691793150204E-05 5.8230871058119287E-05 + 5.9024727336244722E-05 5.9829406186295793E-05 6.0645055151431537E-05 + 6.1471823786253711E-05 6.2309863684228644E-05 6.3159328505482903E-05 + 6.4020374004977867E-05 6.4893158061068388E-05 6.5777840704450938E-05 + 6.6674584147506183E-05 6.7583552814041688E-05 6.8504913369440228E-05 + 6.9438834751218813E-05 7.0385488200004604E-05 7.1345047290932999E-05 + 7.2317687965473739E-05 7.3303588563690907E-05 7.4302929856942890E-05 + 7.5315895081027817E-05 7.6342669969781159E-05 7.7383442789131222E-05 + 7.8438404371618950E-05 7.9507748151388304E-05 8.0591670199653723E-05 + 8.1690369260651013E-05 8.2804046788078459E-05 8.3932906982034678E-05 + 8.5077156826460061E-05 8.6237006127088550E-05 8.7412667549917032E-05 + 8.8604356660198981E-05 8.9812291961969764E-05 9.1036694938110747E-05 + 9.2277790090959804E-05 9.3535804983475051E-05 9.4810970280960241E-05 + 9.6103519793358608E-05 9.7413690518123567E-05 9.8741722683673628E-05 + 1.0008785979344001E-04 1.0145234867051448E-04 1.0283543950290598E-04 + 1.0423738588941446E-04 1.0565844488612951E-04 1.0709887705356366E-04 + 1.0855894650442757E-04 1.1003892095205707E-04 1.1153907175949994E-04 + 1.1305967398927227E-04 1.1460100645379295E-04 1.1616335176650578E-04 + 1.1774699639369838E-04 1.1935223070702773E-04 1.2097934903676185E-04 + 1.2262864972574701E-04 1.2430043518411096E-04 1.2599501194471174E-04 + 1.2771269071934263E-04 1.2945378645570297E-04 1.3121861839514621E-04 + 1.3300751013121457E-04 1.3482078966897234E-04 1.3665878948514748E-04 + 1.3852184658909373E-04 1.4041030258458320E-04 1.4232450373244190E-04 + 1.4426480101403878E-04 1.4623155019564049E-04 1.4822511189364361E-04 + 1.5024585164069581E-04 1.5229413995271893E-04 1.5437035239684519E-04 + 1.5647486966028024E-04 1.5860807762010432E-04 1.6077036741402579E-04 + 1.6296213551209824E-04 1.6518378378941643E-04 1.6743571959980234E-04 + 1.6971835585049639E-04 1.7203211107786657E-04 1.7437740952414997E-04 + 1.7675468121524027E-04 1.7916436203953588E-04 1.8160689382786284E-04 + 1.8408272443448751E-04 1.8659230781923369E-04 1.8913610413071887E-04 + 1.9171457979072574E-04 1.9432820757972352E-04 1.9697746672355551E-04 + 1.9966284298130837E-04 2.0238482873437879E-04 2.0514392307675555E-04 + 2.0794063190653113E-04 2.1077546801866157E-04 2.1364895119899111E-04 + 2.1656160831955780E-04 2.1951397343519962E-04 2.2250658788147608E-04 + 2.2554000037392679E-04 2.2861476710868067E-04 2.3173145186443969E-04 + 2.3489062610585029E-04 2.3809286908828528E-04 2.4133876796405491E-04 + 2.4462891789006413E-04 2.4796392213693921E-04 2.5134439219964084E-04 + 2.5477094790958657E-04 2.5824421754829977E-04 2.6176483796261043E-04 + 2.6533345468142443E-04 2.6895072203408563E-04 2.7261730327035177E-04 + 2.7633387068200504E-04 2.8010110572612230E-04 2.8391969915002318E-04 + 2.8779035111792467E-04 2.9171377133932003E-04 2.9569067919910850E-04 + 2.9972180388950008E-04 3.0380788454371655E-04 3.0794967037151786E-04 + 3.1214792079657308E-04 3.1640340559570702E-04 3.2071690504004348E-04 + 3.2508921003807241E-04 3.2952112228066947E-04 3.3401345438808985E-04 + 3.3856703005896900E-04 3.4318268422135192E-04 3.4786126318578386E-04 + 3.5260362480048565E-04 3.5741063860864709E-04 3.6228318600786279E-04 + 3.6722216041174162E-04 3.7222846741372155E-04 3.7730302495311434E-04 + 3.8244676348341737E-04 3.8766062614291688E-04 3.9294556892762025E-04 + 3.9830256086654235E-04 4.0373258419938496E-04 4.0923663455663624E-04 + 4.1481572114212547E-04 4.2047086691806868E-04 4.2620310879263370E-04 + 4.3201349781006609E-04 4.3790309934340298E-04 4.4387299328981807E-04 + 4.4992427426862673E-04 4.5605805182199154E-04 4.6227545061836543E-04 + 4.6857761065870500E-04 4.7496568748549956E-04 4.8144085239464524E-04 + 4.8800429265021152E-04 4.9465721170213295E-04 5.0140082940686929E-04 + 5.0823638225107586E-04 5.1516512357831917E-04 5.2218832381888819E-04 + 5.2930727072273353E-04 5.3652326959558751E-04 5.4383764353829788E-04 + 5.5125173368942941E-04 5.5876689947116946E-04 5.6638451883858599E-04 + 5.7410598853228694E-04 5.8193272433451930E-04 5.8986616132876456E-04 + 5.9790775416286807E-04 6.0605897731576134E-04 6.1432132536781421E-04 + 6.2269631327487853E-04 6.3118547664606445E-04 6.3979037202530325E-04 + 6.4851257717675264E-04 6.5735369137408651E-04 6.6631533569373649E-04 + 6.7539915331212268E-04 6.8460680980694452E-04 6.9393999346257357E-04 + 7.0340041557961095E-04 7.1298981078866757E-04 7.2270993736841789E-04 + 7.3256257756799416E-04 7.4254953793377100E-04 7.5267264964060956E-04 + 7.6293376882761521E-04 7.7333477693847100E-04 7.8387758106641557E-04 + 7.9456411430391853E-04 8.0539633609712853E-04 8.1637623260514701E-04 + 8.2750581706420750E-04 8.3878713015681210E-04 8.5022224038590680E-04 + 8.6181324445415409E-04 8.7356226764837572E-04 8.8547146422924097E-04 + 8.9754301782626205E-04 9.0977914183817791E-04 9.2218207983879531E-04 + 9.3475410598836358E-04 9.4749752545055476E-04 9.6041467481513306E-04 + 9.7350792252638284E-04 9.8677966931737726E-04 1.0002323486501714E-03 + 1.0138684271619896E-03 1.0276904051175039E-03 1.0417008168672702E-03 + 1.0559022313124207E-03 1.0702972523756878E-03 1.0848885194788506E-03 + 1.0996787080266900E-03 1.1146705298975415E-03 1.1298667339405377E-03 + 1.1452701064796249E-03 1.1608834718244568E-03 1.1767096927882499E-03 + 1.1927516712126947E-03 1.2090123485000352E-03 1.2254947061523876E-03 + 1.2422017663184215E-03 1.2591365923474902E-03 1.2763022893513161E-03 + 1.2937020047733322E-03 1.3113389289657888E-03 1.3292162957747240E-03 + 1.3473373831329090E-03 1.3657055136608832E-03 1.3843240552761735E-03 + 1.4031964218108289E-03 1.4223260736373634E-03 1.4417165183032449E-03 + 1.4613713111740203E-03 1.4812940560852202E-03 1.5014884060031435E-03 + 1.5219580636946543E-03 1.5427067824061041E-03 1.5637383665515210E-03 + 1.5850566724101697E-03 1.6066656088336265E-03 1.6285691379624944E-03 + 1.6507712759528820E-03 1.6732760937128010E-03 1.6960877176485872E-03 + 1.7192103304215095E-03 1.7426481717146790E-03 1.7664055390104339E-03 + 1.7904867883783058E-03 1.8148963352737329E-03 1.8396386553476670E-03 + 1.8647182852672051E-03 1.8901398235474267E-03 1.9159079313945579E-03 + 1.9420273335606347E-03 1.9685028192098111E-03 1.9953392427964956E-03 + 2.0225415249554395E-03 2.0501146534039685E-03 2.0780636838565163E-03 + 2.1063937409516167E-03 2.1351100191915489E-03 2.1642177838947763E-03 + 2.1937223721613828E-03 2.2236291938516569E-03 2.2539437325780356E-03 + 2.2846715467105534E-03 2.3158182703960106E-03 2.3473896145910279E-03 + 2.3793913681091849E-03 2.4118293986824459E-03 2.4447096540370422E-03 + 2.4780381629840274E-03 2.5118210365246930E-03 2.5460644689710744E-03 + 2.5807747390817074E-03 2.6159582112128847E-03 2.6516213364856035E-03 + 2.6877706539684119E-03 2.7244127918764041E-03 2.7615544687865372E-03 + 2.7992024948695310E-03 2.8373637731385574E-03 2.8760453007149445E-03 + 2.9152541701111603E-03 2.9549975705312607E-03 2.9952827891890827E-03 + 3.0361172126443922E-03 3.0775083281572753E-03 3.1194637250609642E-03 + 3.1619910961533959E-03 3.2050982391077388E-03 3.2487930579021356E-03 + 3.2930835642689693E-03 3.3379778791638526E-03 3.3834842342546673E-03 + 3.4296109734308789E-03 3.4763665543334648E-03 3.5237595499056661E-03 + 3.5717986499648946E-03 3.6204926627960736E-03 3.6698505167666764E-03 + 3.7198812619638299E-03 3.7705940718536853E-03 3.8219982449634424E-03 + 3.8741032065863000E-03 3.9269185105096213E-03 3.9804538407667220E-03 + 4.0347190134124699E-03 4.0897239783231421E-03 4.1454788210207811E-03 + 4.2019937645224621E-03 4.2592791712147424E-03 4.3173455447536660E-03 + 4.3762035319906932E-03 4.4358639249248467E-03 4.4963376626815264E-03 + 4.5576358335182440E-03 4.6197696768577505E-03 4.6827505853488244E-03 + 4.7465901069552313E-03 4.8112999470730890E-03 4.8768919706771363E-03 + 4.9433782044962680E-03 5.0107708392186810E-03 5.0790822317271552E-03 + 5.1483249073647486E-03 5.2185115622314102E-03 5.2896550655118736E-03 + 5.3617684618353341E-03 5.4348649736672546E-03 5.5089580037337898E-03 + 5.5840611374792697E-03 5.6601881455571601E-03 5.7373529863550404E-03 + 5.8155698085539343E-03 5.8948529537225791E-03 5.9752169589470279E-03 + 6.0566765594961460E-03 6.1392466915234029E-03 6.2229424948055199E-03 + 6.3077793155184450E-03 6.3937727090511666E-03 6.4809384428579165E-03 + 6.5692924993492260E-03 6.6588510788223986E-03 6.7496306024319597E-03 + 6.8416477152005474E-03 6.9349192890709351E-03 7.0294624259995804E-03 + 7.1252944610923968E-03 7.2224329657832303E-03 7.3208957510557454E-03 + 7.4207008707091460E-03 7.5218666246684779E-03 7.6244115623400393E-03 + 7.7283544860125121E-03 7.8337144543045266E-03 7.9405107856591554E-03 + 8.0487630618860904E-03 8.1584911317520714E-03 8.2697151146203293E-03 + 8.3824554041395730E-03 8.4967326719833057E-03 8.6125678716401262E-03 + 8.7299822422556503E-03 8.8489973125269010E-03 8.9696349046496961E-03 + 9.0919171383199108E-03 9.2158664347892702E-03 9.3415055209764026E-03 + 9.4688574336340182E-03 9.5979455235728154E-03 9.7287934599430224E-03 + 9.8614252345742646E-03 9.9958651663746602E-03 1.0132137905789837E-02 + 1.0270268439322740E-02 1.0410282094115108E-02 1.0552204542591304E-02 + 1.0696061807165603E-02 1.0841880265013521E-02 1.0989686652908275E-02 + 1.1139508072123092E-02 1.1291371993400478E-02 1.1445306261989108E-02 + 1.1601339102749466E-02 1.1759499125329035E-02 1.1919815329408062E-02 + 1.2082317110016869E-02 1.2247034262925607E-02 1.2413996990107508E-02 + 1.2583235905276595E-02 1.2754782039500947E-02 1.2928666846892426E-02 + 1.3104922210374001E-02 1.3283580447525700E-02 1.3464674316510199E-02 + 1.3648237022079337E-02 1.3834302221662346E-02 1.4022904031537222E-02 + 1.4214077033086098E-02 1.4407856279136041E-02 1.4604277300386180E-02 + 1.4803376111922501E-02 1.5005189219821455E-02 1.5209753627843553E-02 + 1.5417106844218305E-02 1.5627286888521569E-02 1.5840332298646689E-02 + 1.6056282137870692E-02 1.6275176002016733E-02 1.6497054026714350E-02 + 1.6721956894758527E-02 1.6949925843569174E-02 1.7181002672752233E-02 + 1.7415229751763999E-02 1.7652650027679771E-02 1.7893307033068510E-02 + 1.8137244893974808E-02 1.8384508338009666E-02 1.8635142702551653E-02 + 1.8889193943059778E-02 1.9146708641499737E-02 1.9407734014884968E-02 + 1.9672317923934299E-02 1.9940508881847459E-02 2.0212356063200296E-02 + 2.0487909312961305E-02 2.0767219155630935E-02 2.1050336804505698E-02 + 2.1337314171068406E-02 2.1628203874506480E-02 2.1923059251360073E-02 + 2.2221934365301569E-02 2.2524884017048635E-02 2.2831963754412241E-02 + 2.3143229882481714E-02 2.3458739473948598E-02 2.3778550379571418E-02 + 2.4102721238782918E-02 2.4431311490441997E-02 2.4764381383732253E-02 + 2.5101991989208969E-02 2.5444205209996934E-02 2.5791083793140698E-02 + 2.6142691341109713E-02 2.6499092323460146E-02 2.6860352088655962E-02 + 2.7226536876050891E-02 2.7597713828033870E-02 2.7973951002340059E-02 + 2.8355317384529597E-02 2.8741882900636700E-02 2.9133718429990935E-02 + 2.9530895818213488E-02 2.9933487890390437E-02 3.0341568464425813E-02 + 3.0755212364576585E-02 3.1174495435172096E-02 3.1599494554520748E-02 + 3.2030287649005958E-02 3.2466953707374686E-02 3.2909572795220415E-02 + 3.3358226069663752E-02 3.3812995794233025E-02 3.4273965353947999E-02 + 3.4741219270608949E-02 3.5214843218294330E-02 3.5694924039069716E-02 + 3.6181549758910705E-02 3.6674809603843318E-02 3.7174794016303969E-02 + 3.7681594671722773E-02 3.8195304495332837E-02 3.8716017679208591E-02 + 3.9243829699536749E-02 3.9778837334122331E-02 4.0321138680133574E-02 + 4.0870833172088575E-02 4.1428021600087461E-02 4.1992806128292787E-02 + 4.2565290313662039E-02 4.3145579124935496E-02 4.3733778961882831E-02 + 4.4329997674812417E-02 4.4934344584346211E-02 4.5546930501464536E-02 + 4.6167867747823804E-02 4.6797270176351685E-02 4.7435253192122634E-02 + 4.8081933773518222E-02 4.8737430493675876E-02 4.9401863542229967E-02 + 5.0075354747349532E-02 5.0758027598076162E-02 5.1450007266966552E-02 + 5.2151420633043753E-02 5.2862396305061093E-02 5.3583064645083729E-02 + 5.4313557792391186E-02 5.5054009687706074E-02 5.5804556097752762E-02 + 5.6565334640151482E-02 5.7336484808651125E-02 5.8118147998706460E-02 + 5.8910467533403961E-02 5.9713588689740776E-02 6.0527658725262591E-02 + 6.1352826905064085E-02 6.2189244529157639E-02 6.3037064960215161E-02 + 6.3896443651688284E-02 6.4767538176311701E-02 6.5650508254995146E-02 + 6.6545515786109344E-02 6.7452724875170914E-02 6.8372301864932497E-02 + 6.9304415365882707E-02 7.0249236287161898E-02 7.1206937867899361E-02 + 7.2177695708978168E-02 7.3161687805232578E-02 7.4159094578084520E-02 + 7.5170098908625166E-02 7.6194886171147183E-02 7.7233644267134527E-02 + 7.8286563659715480E-02 7.9353837408584912E-02 8.0435661205403519E-02 + 8.1532233409678925E-02 8.2643755085136258E-02 8.3770430036584506E-02 + 8.4912464847285429E-02 8.6070068916832027E-02 8.7243454499543446E-02 + 8.8432836743382565E-02 8.9638433729405761E-02 9.0860466511748922E-02 + 9.2099159158159180E-02 9.3354738791079403E-02 9.4627435629292406E-02 + 9.5917483030133213E-02 9.7225117532276611E-02 9.8550578899108052E-02 + 9.9894110162686039E-02 1.0125595766830298E-01 1.0263637111965519E-01 + 1.0403560362462712E-01 1.0545391174170041E-01 1.0689155552699564E-01 + 1.0834879858195534E-01 1.0982590810167701E-01 1.1132315492390508E-01 + 1.1284081357869109E-01 1.1437916233872966E-01 1.1593848327038296E-01 + 1.1751906228539839E-01 1.1912118919333287E-01 1.2074515775469118E-01 + 1.2239126573478877E-01 1.2405981495834933E-01 1.2575111136484593E-01 + 1.2746546506459752E-01 1.2920319039562878E-01 1.3096460598130727E-01 + 1.3275003478876429E-01 1.3455980418811345E-01 1.3639424601247574E-01 + 1.3825369661882364E-01 1.4013849694965430E-01 1.4204899259550352E-01 + 1.4398553385831231E-01 1.4594847581565615E-01 1.4793817838585224E-01 + 1.4995500639395179E-01 1.5199932963863347E-01 1.5407152296000853E-01 + 1.5617196630834984E-01 1.5830104481375870E-01 1.6045914885678064E-01 + 1.6264667413998474E-01 1.6486402176051712E-01 1.6711159828364633E-01 + 1.6938981581730880E-01 1.7169909208767176E-01 1.7403985051572601E-01 + 1.7641252029492308E-01 1.7881753646987048E-01 1.8125534001610019E-01 + 1.8372637792092467E-01 1.8623110326539355E-01 1.8876997530737105E-01 + 1.9134345956574267E-01 1.9395202790577140E-01 1.9659615862561722E-01 + 1.9927633654403643E-01 2.0199305308927620E-01 2.0474680638918133E-01 + 2.0753810136252934E-01 2.1036744981160943E-01 2.1323537051606706E-01 + 2.1614238932802385E-01 2.1908903926849652E-01 2.2207586062513004E-01 + 2.2510340105126256E-01 2.2817221566634147E-01 2.3128286715770802E-01 + 2.3443592588377046E-01 2.3763196997858102E-01 2.4087158545784335E-01 + 2.4415536632636034E-01 2.4748391468694969E-01 2.5085784085084312E-01 + 2.5427776344959091E-01 2.5774430954849220E-01 2.6125811476157168E-01 + 2.6481982336812299E-01 2.6843008843084293E-01 2.7208957191557226E-01 + 2.7579894481267436E-01 2.7955888726006423E-01 2.8337008866791635E-01 + 2.8723324784507276E-01 2.9114907312717409E-01 2.9511828250653777E-01 + 2.9914160376380655E-01 3.0321977460139227E-01 3.0735354277873655E-01 + 3.1154366624942043E-01 3.1579091330013809E-01 3.2009606269156760E-01 + 3.2445990380116230E-01 3.2888323676788789E-01 3.3336687263893322E-01 + 3.3791163351842129E-01 3.4251835271814812E-01 3.4718787491037306E-01 + 3.5192105628269937E-01 3.5671876469505875E-01 3.6158187983884010E-01 + 3.6651129339818667E-01 3.7150790921349230E-01 3.7657264344712621E-01 + 3.8170642475141786E-01 3.8691019443893160E-01 3.9218490665506023E-01 + 3.9753152855297780E-01 4.0295104047097063E-01 4.0844443611218945E-01 + 4.1401272272685191E-01 4.1965692129692783E-01 4.2537806672334338E-01 + 4.3117720801573695E-01 4.3705540848480251E-01 4.4301374593725174E-01 + 4.4905331287344152E-01 4.5517521668768812E-01 4.6138057987131575E-01 + 4.6767054021847299E-01 4.7404625103475440E-01 4.8050888134866732E-01 + 4.8705961612598064E-01 4.9369965648699649E-01 5.0043021992678072E-01 + 5.0725254053840363E-01 5.1416786923921531E-01 5.2117747400021108E-01 + 5.2828264007852166E-01 5.3548467025307345E-01 5.4278488506346223E-01 + 5.5018462305208260E-01 5.5768524100955796E-01 5.6528811422351888E-01 + 5.7299463673076634E-01 5.8080622157288408E-01 5.8872430105532469E-01 + 5.9675032701003361E-01 6.0488577106165176E-01 6.1313212489734747E-01 + 6.2149090054032796E-01 6.2996363062707750E-01 6.3855186868837865E-01 + 6.4725718943415700E-01 6.5608118904222201E-01 6.6502548545093143E-01 + 6.7409171865585304E-01 6.8328155101046784E-01 6.9259666753097382E-01 + 7.0203877620524446E-01 7.1160960830600040E-01 7.2131091870824959E-01 + 7.3114448621105144E-01 7.4111211386367781E-01 7.5121562929620966E-01 + 7.6145688505464626E-01 7.7183775894058093E-01 7.8236015435550932E-01 + 7.9302600064982987E-01 8.0383725347660306E-01 8.1479589515013529E-01 + 8.2590393500944237E-01 8.3716340978668458E-01 8.4857638398060886E-01 + 8.6014495023508952E-01 8.7187122972282893E-01 8.8375737253428677E-01 + 8.9580555807191586E-01 9.0801799544976747E-01 9.2039692389855032E-01 + 9.3294461317620048E-01 9.4566336398406692E-01 9.5855550838875347E-01 + 9.7162341024972054E-01 9.8486946565271338E-01 9.9829610334910113E-01 + 1.0119057852012039E+00 1.0257010066336920E+00 1.0396842970911391E+00 + 1.0538582205018063E+00 1.0682253757477655E+00 1.0827883971414156E+00 + 1.0975499549085002E+00 + + + + + 7.1651758470742197E+02 7.2080892087312213E+02 7.1922345935878639E+02 + 7.1817703783782235E+02 7.1734896742398098E+02 7.0968203267135641E+02 + 7.0864230324806545E+02 7.0827046625127696E+02 7.0765552841806868E+02 + 7.0712988838838999E+02 7.0662542479109743E+02 7.0613326069778589E+02 + 7.0565354820179664E+02 7.0518275734454551E+02 7.0471935581525304E+02 + 7.0426156189743699E+02 7.0380808195628015E+02 7.0335784311782186E+02 + 7.0290993591937433E+02 7.0246359549603233E+02 7.0201816410218532E+02 + 7.0157307255658930E+02 7.0112782297885224E+02 7.0068197601074428E+02 + 7.0023514076288018E+02 6.9978696674402249E+02 6.9933713741454301E+02 + 6.9888536494455923E+02 6.9843138592946298E+02 6.9797495785742069E+02 + 6.9751585617570504E+02 6.9705387183815003E+02 6.9658880924172547E+02 + 6.9612048448034204E+02 6.9564872385895035E+02 6.9517336262260028E+02 + 6.9469424386407991E+02 6.9421121758074412E+02 6.9372413985661422E+02 + 6.9323287215023095E+02 6.9273728067217144E+02 6.9223723583893366E+02 + 6.9173261179215149E+02 6.9122328597391356E+02 6.9070913875044096E+02 + 6.9019005307762347E+02 6.8966591420288580E+02 6.8913660939870340E+02 + 6.8860202772379409E+02 6.8806205980854963E+02 6.8751659766179785E+02 + 6.8696553449636451E+02 6.8640876457125523E+02 6.8584618304858066E+02 + 6.8527768586357706E+02 6.8470316960629577E+02 6.8412253141372719E+02 + 6.8353566887125078E+02 6.8294247992246505E+02 6.8234286278655895E+02 + 6.8173671588247112E+02 6.8112393775919054E+02 6.8050442703162003E+02 + 6.7987808232148291E+02 6.7924480220281851E+02 6.7860448515166593E+02 + 6.7795702949956888E+02 6.7730233339057600E+02 6.7664029474146150E+02 + 6.7597081120489361E+02 6.7529378013532914E+02 6.7460909855742216E+02 + 6.7391666313676785E+02 6.7321637015280294E+02 6.7250811547372678E+02 + 6.7179179453329596E+02 6.7106730230938081E+02 6.7033453330416319E+02 + 6.6959338152589260E+02 6.6884374047209747E+02 6.6808550311417639E+02 + 6.6731856188330551E+02 6.6654280865758301E+02 6.6575813475036580E+02 + 6.6496443089974071E+02 6.6416158725907906E+02 6.6334949338864487E+02 + 6.6252803824820592E+02 6.6169711019062561E+02 6.6085659695639902E+02 + 6.6000638566910936E+02 6.5914636283178436E+02 6.5827641432413225E+02 + 6.5739642540063187E+02 6.5650628068947981E+02 6.5560586419236222E+02 + 6.5469505928505646E+02 6.5377374871884365E+02 6.5284181462273591E+02 + 6.5189913850650157E+02 6.5094560126449767E+02 6.4998108318029711E+02 + 6.4900546393211698E+02 6.4801862259904885E+02 6.4702043766808652E+02 + 6.4601078704196743E+02 6.4498954804781533E+02 6.4395659744660418E+02 + 6.4291181144344580E+02 6.4185506569869960E+02 6.4078623533992879E+02 + 6.3970519497469718E+02 6.3861181870422547E+02 6.3750598013791364E+02 + 6.3638755240874002E+02 6.3525640818955401E+02 6.3411241971026880E+02 + 6.3295545877596976E+02 6.3178539678595223E+02 6.3060210475370525E+02 + 6.2940545332785098E+02 6.2819531281405682E+02 6.2697155319794035E+02 + 6.2573404416897597E+02 6.2448265514542379E+02 6.2321725530030005E+02 + 6.2193771358839967E+02 6.2064389877439419E+02 6.1933567946202299E+02 + 6.1801292412438909E+02 6.1667550113538834E+02 6.1532327880228547E+02 + 6.1395612539945068E+02 6.1257390920328919E+02 6.1117649852836894E+02 + 6.0976376176477845E+02 6.0833556741672396E+02 6.0689178414239461E+02 + 6.0543228079510595E+02 6.0395692646575549E+02 6.0246559052659393E+02 + 6.0095814267634728E+02 5.9943445298669758E+02 5.9789439195015359E+02 + 5.9633783052931960E+02 5.9476464020759079E+02 5.9317469304129600E+02 + 5.9156786171329622E+02 5.8994401958807157E+02 5.8830304076830737E+02 + 5.8664480015299921E+02 5.8496917349710429E+02 5.8327603747273611E+02 + 5.8156526973194877E+02 5.7983674897110427E+02 5.7809035499684842E+02 + 5.7632596879372011E+02 5.7454347259338954E+02 5.7274274994556527E+02 + 5.7092368579055812E+02 5.6908616653354318E+02 5.6723008012050627E+02 + 5.6535531611590670E+02 5.6346176578206200E+02 5.6154932216025350E+02 + 5.5961788015358457E+02 5.5766733661157525E+02 5.5569759041651969E+02 + 5.5370854257159772E+02 5.5170009629076117E+02 5.4967215709037498E+02 + 5.4762463288264360E+02 5.4555743407079694E+02 5.4347047364604907E+02 + 5.4136366728632629E+02 5.3923693345674883E+02 5.3709019351188101E+02 + 5.3492337179971241E+02 5.3273639576738924E+02 5.3052919606866374E+02 + 5.2830170667305242E+02 5.2605386497669213E+02 5.2378561191486529E+02 + 5.2149689207618292E+02 5.1918765381838944E+02 5.1685784938577638E+02 + 5.1450743502816567E+02 5.1213637112143249E+02 5.0974462228953684E+02 + 5.0733215752801715E+02 5.0489895032891843E+02 5.0244497880709287E+02 + 4.9997022582784416E+02 4.9747467913584637E+02 4.9495833148529709E+02 + 4.9242118077123848E+02 4.8986323016198548E+02 4.8728448823260061E+02 + 4.8468496909933162E+02 4.8206469255496154E+02 4.7942368420496337E+02 + 4.7676197560440704E+02 4.7407960439550635E+02 4.7137661444573217E+02 + 4.6865305598639054E+02 4.6590898575155853E+02 4.6314446711728658E+02 + 4.6035957024094245E+02 4.5755437220059514E+02 4.5472895713430739E+02 + 4.5188341637922019E+02 4.4901784861029603E+02 4.4613235997858084E+02 + 4.4322706424885592E+02 4.4030208293651606E+02 4.3735754544354296E+02 + 4.3439358919339679E+02 4.3141035976467901E+02 4.2840801102339043E+02 + 4.2538670525360976E+02 4.2234661328642323E+02 4.1928791462690322E+02 + 4.1621079757896808E+02 4.1311545936790384E+02 4.1000210626036647E+02 + 4.0687095368164159E+02 4.0372222632996159E+02 4.0055615828765724E+02 + 3.9737299312891525E+02 3.9417298402392800E+02 3.9095639383918194E+02 + 3.8772349523367023E+02 3.8447457075076085E+02 3.8120991290549540E+02 + 3.7792982426704930E+02 3.7463461753610449E+02 3.7132461561687603E+02 + 3.6800015168351638E+02 3.6466156924064660E+02 3.6130922217772314E+02 + 3.5794347481698259E+02 3.5456470195467398E+02 3.5117328889530705E+02 + 3.4776963147863086E+02 3.4435413609905601E+02 3.4092721971724313E+02 + 3.3748930986356430E+02 3.3404084463315593E+02 3.3058227267227153E+02 + 3.2711405315565651E+02 3.2363665575465353E+02 3.2015056059575778E+02 + 3.1665625820934395E+02 3.1315424946828273E+02 3.0964504551617739E+02 + 3.0612916768494586E+02 3.0260714740148626E+02 2.9907952608316435E+02 + 2.9554685502187090E+02 2.9200969525640153E+02 2.8846861743291817E+02 + 2.8492420165326843E+02 2.8137703731093484E+02 2.7782772291440762E+02 + 2.7427686589778108E+02 2.7072508241838591E+02 2.6717299714128200E+02 + 2.6362124301045185E+02 2.6007046100655020E+02 2.5652129989107465E+02 + 2.5297441593684869E+02 2.4943047264471528E+02 2.4589014044636968E+02 + 2.4235409639326491E+02 2.3882302383155647E+02 2.3529761206306966E+02 + 2.3177855599229039E+02 2.2826655575941291E+02 2.2476231635949000E+02 + 2.2126654724777026E+02 2.1777996193131966E+02 2.1430327754705894E+02 + 2.1083721442637605E+02 2.0738249564649314E+02 2.0393984656880977E+02 + 2.0050999436446074E+02 1.9709366752736639E+02 1.9369159537507903E+02 + 1.9030450753776481E+02 1.8693313343568872E+02 1.8357820174560575E+02 + 1.8024043985649456E+02 1.7692057331509852E+02 1.7361932526178217E+02 + 1.7033741585723240E+02 1.6707556170058177E+02 1.6383447523954936E+02 + 1.6061486417324625E+02 1.5741743084830853E+02 1.5424287164906858E+02 + 1.5109187638249975E+02 1.4796512765870668E+02 1.4486330026776025E+02 + 1.4178706055371595E+02 1.3873706578667569E+02 1.3571396353378887E+02 + 1.3271839103011544E+02 1.2975097455029703E+02 1.2681232878201706E+02 + 1.2390305620224620E+02 1.2102374645729935E+02 1.1817497574774467E+02 + 1.1535730621923545E+02 1.1257128536034224E+02 1.0981744540848501E+02 + 1.0709630276507838E+02 1.0440835742100958E+02 1.0175409239358525E+02 + 9.9133973176083188E+01 9.6548447201052454E+01 9.3997943318504412E+01 + 9.1482871290139002E+01 8.9003621300742140E+01 8.6560563487885602E+01 + 8.4154047491049838E+01 8.1784402021273834E+01 7.9451934452425263E+01 + 7.7156930435158003E+01 7.4899653534605889E+01 7.2680344892830448E+01 + 7.0499222917016056E+01 6.8356482994368122E+01 6.6252297234635591E+01 + 6.4186814241140183E+01 6.2160158911148670E+01 6.0172432266382515E+01 + 5.8223711314406195E+01 5.6314048941584439E+01 5.4443473838242205E+01 + 5.2611990456604524E+01 5.0819579002028334E+01 4.9066195457977578E+01 + 4.7351771645123833E+01 4.5676215314884971E+01 4.4039410277644720E+01 + 4.2441216565819360E+01 4.0881470631862776E+01 3.9359985581224223E+01 + 3.7876551440190291E+01 3.6430935458465875E+01 3.5022882446262145E+01 + 3.3652115145579607E+01 3.2318334635286675E+01 3.1021220769512492E+01 + 2.9760432648784608E+01 2.8535609123257721E+01 2.7346369327294049E+01 + 2.6192313244569352E+01 2.5073022302795351E+01 2.3988059997063221E+01 + 2.2936972540730508E+01 2.1919289542690311E+01 2.0934524709781762E+01 + 1.9982176573020304E+01 1.9061729236248443E+01 1.8172653145732866E+01 + 1.7314405879158702E+01 1.6486432952402637E+01 1.5688168642396981E+01 + 1.4919036824332791E+01 1.4178451821388638E+01 1.3465819265113980E+01 + 1.2780536964543913E+01 1.2121995782073164E+01 1.1489580514074961E+01 + 1.0882670774213222E+01 1.0300641877366374E+01 9.7428657220571111E+00 + 9.2087116692658526E+00 8.6975474154873069E+00 8.2087398579173829E+00 + 7.7416559496775710E+00 7.2956635428662304E+00 6.8701322174387407E+00 + 6.4644340938360720E+00 6.0779446273430988E+00 5.7100433821989478E+00 + 5.3601147835264582E+00 5.0275488451944934E+00 4.7117418717728921E+00 + 4.4120971327849494E+00 4.1280255075042191E+00 3.8589460985825119E+00 + 3.6042868128350305E+00 3.3634849075536319E+00 3.1359875007747378E+00 + 2.9212520440119913E+00 2.7187467560889633E+00 2.5279510168975667E+00 + 2.3483557201897769E+00 2.1794635849055206E+00 2.0207894250706393E+00 + 1.8718603789700539E+00 1.7322160990981315E+00 1.6014089052652214E+00 + 1.4790039041165073E+00 1.3645790790839947E+00 1.2577253553111203E+00 + 1.1580466442319002E+00 1.0651598721548015E+00 9.7869499636253621E-01 + 8.9829501094266140E-01 8.2361594294574669E-01 7.5432683772856635E-01 + 6.9010973070989723E-01 6.3065960146874278E-01 5.7568430533079240E-01 + 5.2490447743810609E-01 4.7805340482136532E-01 4.3487686314831747E-01 + 3.9513291646804621E-01 3.5859168018713289E-01 3.2503504942786426E-01 + 2.9425639655918745E-01 2.6606024284894148E-01 2.4026190975832318E-01 + 2.1668715540366623E-01 1.9517180126097544E-01 1.7556135345269747E-01 + 1.5771062210548265E-01 1.4148334144146832E-01 1.2675179255363270E-01 + 1.1339643025846596E-01 1.0130551501891244E-01 9.0374750666138495E-02 + 8.0506928488912485E-02 7.1611578172177615E-02 6.3604626024107949E-02 + 5.6408060912449653E-02 4.9949608321586729E-02 4.4162412932361401E-02 + 3.8984730112166653E-02 3.4359626681031034E-02 3.0234691289991834E-02 + 2.6561754711718340E-02 2.3296620301385303E-02 2.0398804839671571E-02 + 1.7831289920954060E-02 1.5560283999631221E-02 1.3554995157230933E-02 + 1.1787414603517961E-02 1.0232110877021285E-02 8.8660346648719718E-03 + 7.6683341190526980E-03 6.6201805064516955E-03 5.7046039937197323E-03 + 4.9063393349961090E-03 4.2116812011721251E-03 3.6083488635169562E-03 + 3.0853599221731288E-03 2.6329127511734236E-03 2.2422773161443594E-03 + 1.9056940086246571E-03 1.6162801318029389E-03 1.3679436663107682E-03 + 1.1553039413263750E-03 9.7361883546878659E-04 8.1871813360109868E-04 + 6.8694266951640885E-04 5.7508889034719849E-04 4.8035848621170145E-04 + 4.0031273788137210E-04 3.3283124591533157E-04 2.7607471655695295E-04 + 2.2845149252602594E-04 1.8858753047530590E-04 1.5529954112915165E-04 + 1.2757102281062385E-04 1.0453093402890772E-04 8.5434765890345647E-05 + 6.9647790175351602E-05 5.6630273864964660E-05 4.5924465593145109E-05 + 3.7143173846138318E-05 2.9959770643817941E-05 2.4099467848597337E-05 + 1.9331726096781711E-05 1.5463668588838414E-05 1.2334383574229642E-05 + 9.8100102991228446E-06 7.7795134372794999E-06 6.1510605904503850E-06 + 4.8489263273959817E-06 3.8108544399358387E-06 2.9858176460049714E-06 + 2.3321208844751842E-06 1.8158006496174457E-06 1.4092785330331827E-06 + 1.0902323087175388E-06 8.4065254550233995E-07 6.4605689446952514E-07 + 4.9483791156876917E-07 3.7772357217465889E-07 2.8733254877042861E-07 + 2.1780888860868320E-07 1.6452297716982525E-07 1.2382763618446881E-07 + 9.2859910969952784E-08 6.9380578145868744E-08 5.1644676883781028E-08 + 3.8297458254058899E-08 2.8291079583393675E-08 2.0818163763963828E-08 + 1.5259015046590253E-08 1.1139849116695589E-08 8.0998706146245729E-09 + 5.8654285511252866E-09 4.2298106314773686E-09 3.0375113142828067E-09 + 2.1720342141147354E-09 1.5464747908195236E-09 1.0962807031099153E-09 + 7.7371037001059153E-10 5.4360999211690584E-10 3.8020962465242347E-10 + 2.6470332208866204E-10 1.8342979462488543E-10 1.2651085843871085E-10 + 8.6837242993465272E-11 5.9316708727631850E-11 4.0319299266275338E-11 + 2.7270025741037766E-11 1.8351269036503428E-11 1.2286426308896213E-11 + 8.1834139172272665E-12 5.4220440374852740E-12 3.5733935637143104E-12 + 2.3423793223671386E-12 1.5270772461738943E-12 9.9005789299023412E-13 + 6.3829864957925420E-13 4.0918386443025563E-13 2.6080224959731303E-13 + 1.6526046548992165E-13 1.0410161742028458E-13 6.5184212013503966E-14 + 4.0568492545632007E-14 2.5093508734090914E-14 1.5424959403723470E-14 + 9.4219394379377554E-15 5.7183827229292306E-15 3.4481425565739613E-15 + 2.0655618075963732E-15 1.2291178219384471E-15 7.2646043116119181E-16 + 4.2643589984422347E-16 2.4858707473896582E-16 1.4389489247048439E-16 + 8.2701375981939016E-17 4.7188751561699361E-17 2.6728827493278341E-17 + 1.5027739568488932E-17 8.3856318617656118E-18 4.6436741059667476E-18 + 2.5516804360628683E-18 1.3911809223725253E-18 7.5246664429934007E-19 + 4.0372913394056504E-19 2.1485445469598120E-19 1.1339702299916877E-19 + 5.9348928697118212E-20 3.0798410969881650E-20 1.5845192261605719E-20 + 8.0810798325320256E-21 4.0850011169494123E-21 2.0465077158906464E-21 + 1.0159675679972439E-21 4.9973259252625155E-22 2.4351868267666574E-22 + 1.1754613764801142E-22 5.6196577439807652E-23 2.6606026235713558E-23 + 1.2472723202846147E-23 5.7888913094029976E-24 2.6596427483704730E-24 + 1.2094424177916915E-24 5.4427761233274243E-25 2.4236379124427704E-25 + 1.0677382515058442E-25 4.6531671753696124E-26 2.0056514851181866E-26 + 8.5491035463389469E-27 3.6031178657286112E-27 1.5012837320423097E-27 + 6.1831000308484088E-28 2.5167544185074152E-28 1.0122725947126314E-28 + 4.0225948227751929E-29 1.5790521015625051E-29 6.1220412700012266E-30 + 2.3438671908643386E-30 8.8599870396835293E-31 3.3061453522376406E-31 + 1.2176543724429173E-31 4.4255050531450512E-32 1.5869413121601052E-32 + 5.6135760089819204E-33 1.9584818721515316E-33 6.7378320951057609E-34 + 2.2853879669217420E-34 7.6411059032020337E-35 2.5178241308569098E-35 + 8.1749058246579996E-36 2.6148245817694717E-36 8.2379274269086316E-37 + 2.5557657969759701E-37 7.8066163387543799E-38 2.3472168577377058E-38 + 6.9454597474934823E-39 2.0221524141640603E-39 5.7915987815445456E-40 + 1.6313991006862800E-40 4.5185957840062161E-41 1.2303580732453114E-41 + 3.2926564378184374E-42 8.6586295252265582E-43 2.2368640898944221E-43 + 5.6756612057777619E-44 1.4140909948614391E-44 3.4587466676162639E-45 + 8.3030185898553108E-46 1.9557951498213914E-46 4.5193288483136462E-47 + 1.0241882016180042E-47 2.2757877847492820E-48 4.9570095793703588E-49 + 1.0581141250359200E-49 2.2128792204143493E-50 4.5329610465450425E-51 + 9.0926596111000594E-52 1.7855380823100742E-52 3.4316271848710877E-53 + 6.4530711303234052E-54 1.1869974326229877E-54 2.1351615511439680E-55 + 3.7548195544105882E-56 6.4536232949056811E-57 1.0838079514252374E-57 + 1.7779206131988043E-58 2.8481314441131278E-59 4.4542118155248946E-60 + 6.7986029019756455E-61 1.0124662347395177E-61 1.4707095281489462E-62 + 2.0832027333051216E-63 2.8765149732070629E-64 3.8708279030549967E-65 + 5.0747465191718822E-66 6.4799073978352681E-67 8.0563341863595773E-68 + 9.7496782765302828E-69 1.1481452442804772E-69 1.3153049183828004E-70 + 1.4653731969595071E-71 1.5871983051839786E-72 1.6708756978988557E-73 + 1.7090544650364279E-74 1.6979906079855807E-75 1.6381405268999682E-76 + 1.5341665311984434E-77 1.3943393809340983E-78 1.2294433293762967E-79 + 1.0513861389121353E-80 8.7176557272695023E-82 7.0063421825765896E-83 + 5.4564227274729067E-84 4.1164332367713186E-85 3.0074790735207639E-86 + 2.1272797649340349E-87 1.4563340043827789E-88 9.6468544449957613E-90 + 6.1812109302436211E-91 3.8300115261034678E-92 2.2942552295929498E-93 + 1.3282379628267630E-94 7.4298646363591007E-96 4.0145431012841447E-97 + 2.0947006564270706E-98 1.0551639252153592E-99 5.129944358771984E-101 + 2.406489246350063E-102 1.088977088746017E-103 4.752294348529183E-105 + 1.999517359337203E-106 8.109107422061029E-108 3.169107986182370E-109 + 1.193187092723134E-110 4.326934778255924E-112 1.510937795628804E-113 + 5.079287360020645E-115 1.643409810105594E-116 5.116514430167020E-118 + 1.532454312290613E-119 4.414556405522751E-121 1.222856348224231E-122 + 3.256542332283837E-124 8.335591927278474E-126 2.050319565307458E-127 + 4.845297666197195E-129 1.099874179131067E-130 2.397731023900272E-132 + 5.018865220780844E-134 1.008491728103191E-135 1.944985723735699E-137 + 3.599603787773790E-139 6.391539997297716E-141 1.088650689135474E-142 + 1.778381319009335E-144 2.785716606322373E-146 4.183583457281490E-148 + 6.022606194486214E-150 8.309432994855727E-152 1.098593084241085E-153 + 1.391585187801758E-155 1.688575045950977E-157 1.962456165603258E-159 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 + + + 3.3777651115973577E+00 3.3777651015125079E+00 3.3777650707036462E+00 + 3.3777650183239554E+00 3.3777649434987427E+00 3.3777648453254430E+00 + 3.3777647228728176E+00 3.3777645751801000E+00 3.3777644012561425E+00 + 3.3777642000785182E+00 3.3777639705926168E+00 3.3777637117106951E+00 + 3.3777634223109199E+00 3.3777631012363649E+00 3.3777627472939953E+00 + 3.3777623592536186E+00 3.3777619358467952E+00 3.3777614757657419E+00 + 3.3777609776621773E+00 3.3777604401461527E+00 3.3777598617848450E+00 + 3.3777592411013155E+00 3.3777585765732336E+00 3.3777578666315615E+00 + 3.3777571096592127E+00 3.3777563039896559E+00 3.3777554479054963E+00 + 3.3777545396370057E+00 3.3777535773606124E+00 3.3777525591973649E+00 + 3.3777514832113216E+00 3.3777503474079218E+00 3.3777491497323031E+00 + 3.3777478880675673E+00 3.3777465602330037E+00 3.3777451639822544E+00 + 3.3777436970014403E+00 3.3777421569072255E+00 3.3777405412448247E+00 + 3.3777388474859644E+00 3.3777370730267906E+00 3.3777352151856923E+00 + 3.3777332712010937E+00 3.3777312382291740E+00 3.3777291133415126E+00 + 3.3777268935226870E+00 3.3777245756677927E+00 3.3777221565798898E+00 + 3.3777196329673917E+00 3.3777170014413693E+00 3.3777142585127851E+00 + 3.3777114005896474E+00 3.3777084239740880E+00 3.3777053248593609E+00 + 3.3777020993267453E+00 3.3776987433423744E+00 3.3776952527539761E+00 + 3.3776916232875127E+00 3.3776878505437304E+00 3.3776839299946246E+00 + 3.3776798569797903E+00 3.3776756267026795E+00 3.3776712342267539E+00 + 3.3776666744715231E+00 3.3776619422084888E+00 3.3776570320569603E+00 + 3.3776519384797585E+00 3.3776466557788050E+00 3.3776411780905820E+00 + 3.3776354993814710E+00 3.3776296134429602E+00 3.3776235138867108E+00 + 3.3776171941395110E+00 3.3776106474380496E+00 3.3776038668235921E+00 + 3.3775968451364635E+00 3.3775895750104103E+00 3.3775820488667931E+00 + 3.3775742589086142E+00 3.3775661971143953E+00 3.3775578552318635E+00 + 3.3775492247714798E+00 3.3775402969997814E+00 3.3775310629325399E+00 + 3.3775215133277263E+00 3.3775116386782900E+00 3.3775014292047314E+00 + 3.3774908748474628E+00 3.3774799652589755E+00 3.3774686897957711E+00 + 3.3774570375100783E+00 3.3774449971413434E+00 3.3774325571074755E+00 + 3.3774197054958601E+00 3.3774064300541147E+00 3.3773927181806007E+00 + 3.3773785569146533E+00 3.3773639329265635E+00 3.3773488325072654E+00 + 3.3773332415577517E+00 3.3773171455781847E+00 3.3773005296567171E+00 + 3.3772833784579936E+00 3.3772656762113464E+00 3.3772474066986509E+00 + 3.3772285532418609E+00 3.3772090986901846E+00 3.3771890254069219E+00 + 3.3771683152559198E+00 3.3771469495876758E+00 3.3771249092250408E+00 + 3.3771021744485301E+00 3.3770787249812364E+00 3.3770545399733245E+00 + 3.3770295979860916E+00 3.3770038769755919E+00 3.3769773542758172E+00 + 3.3769500065813993E+00 3.3769218099298484E+00 3.3768927396832988E+00 + 3.3768627705097458E+00 3.3768318763637692E+00 3.3768000304667329E+00 + 3.3767672052864302E+00 3.3767333725161666E+00 3.3766985030532792E+00 + 3.3766625669770551E+00 3.3766255335260440E+00 3.3765873710747454E+00 + 3.3765480471096612E+00 3.3765075282046797E+00 3.3764657799957929E+00 + 3.3764227671551095E+00 3.3763784533641603E+00 3.3763328012864684E+00 + 3.3762857725393629E+00 3.3762373276650202E+00 3.3761874261007159E+00 + 3.3761360261482483E+00 3.3760830849425276E+00 3.3760285584193119E+00 + 3.3759724012820405E+00 3.3759145669677735E+00 3.3758550076121869E+00 + 3.3757936740136127E+00 3.3757305155960933E+00 3.3756654803714157E+00 + 3.3755985149001217E+00 3.3755295642514258E+00 3.3754585719620640E+00 + 3.3753854799939900E+00 3.3753102286909300E+00 3.3752327567337423E+00 + 3.3751530010945499E+00 3.3750708969896346E+00 3.3749863778310250E+00 + 3.3748993751767724E+00 3.3748098186798661E+00 3.3747176360357454E+00 + 3.3746227529283908E+00 3.3745250929749289E+00 3.3744245776687434E+00 + 3.3743211263210080E+00 3.3742146560006532E+00 3.3741050814726736E+00 + 3.3739923151347662E+00 3.3738762669522360E+00 3.3737568443911274E+00 + 3.3736339523495453E+00 3.3735074930870907E+00 3.3733773661523871E+00 + 3.3732434683086381E+00 3.3731056934571439E+00 3.3729639325587653E+00 + 3.3728180735532289E+00 3.3726680012762587E+00 3.3725135973744460E+00 + 3.3723547402178236E+00 3.3721913048100545E+00 3.3720231626961961E+00 + 3.3718501818679636E+00 3.3716722266664219E+00 3.3714891576820598E+00 + 3.3713008316521371E+00 3.3711071013552831E+00 3.3709078155032279E+00 + 3.3707028186296157E+00 3.3704919509758247E+00 3.3702750483736885E+00 + 3.3700519421250865E+00 3.3698224588782537E+00 3.3695864205007942E+00 + 3.3693436439492581E+00 3.3690939411352181E+00 3.3688371187877486E+00 + 3.3685729783122138E+00 3.3683013156452661E+00 3.3680219211059579E+00 + 3.3677345792428652E+00 3.3674390686771236E+00 3.3671351619412637E+00 + 3.3668226253137381E+00 3.3665012186490371E+00 3.3661706952032748E+00 + 3.3658308014551217E+00 3.3654812769219715E+00 3.3651218539712295E+00 + 3.3647522576265749E+00 3.3643722053690905E+00 3.3639814069331129E+00 + 3.3635795640966926E+00 3.3631663704664949E+00 3.3627415112570214E+00 + 3.3623046630640214E+00 3.3618554936319129E+00 3.3613936616150952E+00 + 3.3609188163329815E+00 3.3604305975186071E+00 3.3599286350606419E+00 + 3.3594125487386615E+00 3.3588819479514891E+00 3.3583364314384547E+00 + 3.3577755869933967E+00 3.3571989911712121E+00 3.3566062089868121E+00 + 3.3559967936062431E+00 3.3553702860298418E+00 3.3547262147672092E+00 + 3.3540640955037850E+00 3.3533834307588632E+00 3.3526837095348356E+00 + 3.3519644069574319E+00 3.3512249839067776E+00 3.3504648866390374E+00 + 3.3496835463984453E+00 3.3488803790194726E+00 3.3480547845189319E+00 + 3.3472061466777818E+00 3.3463338326124030E+00 3.3454371923350963E+00 + 3.3445155583035948E+00 3.3435682449593087E+00 3.3425945482540937E+00 + 3.3415937451652602E+00 3.3405650931986068E+00 3.3395078298791949E+00 + 3.3384211722296269E+00 3.3373043162355431E+00 3.3361564362981126E+00 + 3.3349766846732121E+00 3.3337641908970492E+00 3.3325180611979710E+00 + 3.3312373778941522E+00 3.3299211987769284E+00 3.3285685564794734E+00 + 3.3271784578305672E+00 3.3257498831931795E+00 3.3242817857875662E+00 + 3.3227730909986533E+00 3.3212226956673914E+00 3.3196294673658446E+00 + 3.3179922436557185E+00 3.3163098313300776E+00 3.3145810056379794E+00 + 3.3128045094917797E+00 3.3109790526568377E+00 3.3091033109233781E+00 + 3.3071759252602777E+00 3.3051955009505218E+00 3.3031606067081221E+00 + 3.3010697737762595E+00 3.2989214950064558E+00 3.2967142239185776E+00 + 3.2944463737414806E+00 3.2921163164341194E+00 3.2897223816869992E+00 + 3.2872628559037782E+00 3.2847359811629615E+00 3.2821399541595402E+00 + 3.2794729251265342E+00 3.2767329967363441E+00 3.2739182229819419E+00 + 3.2710266080378685E+00 3.2680561051010710E+00 3.2650046152116614E+00 + 3.2618699860537088E+00 3.2586500107361749E+00 3.2553424265542326E+00 + 3.2519449137311538E+00 3.2484550941410619E+00 3.2448705300129137E+00 + 3.2411887226160583E+00 3.2374071109278617E+00 3.2335230702838991E+00 + 3.2295339110113224E+00 3.2254368770460515E+00 3.2212291445345542E+00 + 3.2169078204210453E+00 3.2124699410210242E+00 3.2079124705822006E+00 + 3.2032322998339242E+00 3.1984262445263694E+00 3.1934910439608641E+00 + 3.1884233595128397E+00 3.1832197731490433E+00 3.1778767859408243E+00 + 3.1723908165754020E+00 3.1667581998672527E+00 3.1609751852718899E+00 + 3.1550379354045357E+00 3.1489425245663409E+00 3.1426849372810781E+00 + 3.1362610668454285E+00 3.1296667138962180E+00 3.1228975849982610E+00 + 3.1159492912567046E+00 3.1088173469580846E+00 3.1014971682445918E+00 + 3.0939840718264171E+00 3.0862732737373593E+00 3.0783598881392695E+00 + 3.0702389261813066E+00 3.0619052949203889E+00 3.0533537963096911E+00 + 3.0445791262625002E+00 3.0355758737992260E+00 3.0263385202859721E+00 + 3.0168614387735273E+00 3.0071388934463537E+00 2.9971650391917009E+00 + 2.9869339212997099E+00 2.9764394753060408E+00 2.9656755269893562E+00 + 2.9546357925368030E+00 2.9433138788914235E+00 2.9317032842964372E+00 + 2.9197973990522037E+00 2.9075895065027342E+00 2.8950727842697033E+00 + 2.8822403057530321E+00 2.8690850419183258E+00 2.8555998633927437E+00 + 2.8417775428922307E+00 2.8276107580044392E+00 2.8130920943532494E+00 + 2.7982140491723602E+00 2.7829690353171301E+00 2.7673493857456699E+00 + 2.7513473585020676E+00 2.7349551422366738E+00 2.7181648623004739E+00 + 2.7009685874528904E+00 2.6833583372246612E+00 2.6653260899800788E+00 + 2.6468637917254494E+00 2.6279633657135313E+00 2.6086167228966777E+00 + 2.5888157732845625E+00 2.5685524382657685E+00 2.5478186639559981E+00 + 2.5266064356394669E+00 2.5049077933739525E+00 2.4827148488342248E+00 + 2.4600198034729481E+00 2.4368149680828872E+00 2.4130927838491609E+00 + 2.3888458449855507E+00 2.3640669230543989E+00 2.3387489930754946E+00 + 2.3128852615355218E+00 2.2864691964161894E+00 2.2594945593660811E+00 + 2.2319554401485857E+00 2.2038462935059657E+00 2.1751619785878180E+00 + 2.1458978011007841E+00 2.1160495583455186E+00 2.0856135873165553E+00 + 2.0545868160508647E+00 2.0229668184217409E+00 1.9907518725859337E+00 + 1.9579410233040735E+00 1.9245341483670400E+00 1.8905320293744388E+00 + 1.8559364271254493E+00 1.8207501618973911E+00 1.7849771989031107E+00 + 1.7486227392350611E+00 1.7116933166216384E+00 1.6741969003399610E+00 + 1.6361430046490930E+00 1.5975428051284790E+00 1.5584092623284416E+00 + 1.5187572531628055E+00 1.4786037104983560E+00 1.4379677714217320E+00 + 1.3968709346918462E+00 1.3553372279148554E+00 1.3133933850093054E+00 + 1.2710690345614590E+00 1.2283968997048926E+00 1.1854130101945788E+00 + 1.1421569273836929E+00 1.0986719828517360E+00 1.0550055314749591E+00 + 1.0112092197750389E+00 9.6733927042934609E-01 9.2345678387620778E-01 + 8.7962805800152322E-01 8.3592492694887521E-01 7.9242512015433242E-01 + 7.4921264276944710E-01 7.0637817870170616E-01 6.6401951757128219E-01 + 6.2224200695625775E-01 5.8115903137603997E-01 5.4089251954451367E-01 + 5.0157348151100223E-01 4.6334257739830786E-01 4.2635071954357828E-01 + 3.9075970994954612E-01 3.5674291506115835E-01 3.2448597999624029E-01 + 2.9418758447863341E-01 2.6606024284894114E-01 2.4026190975832318E-01 + 2.1668715540366623E-01 1.9517180126097544E-01 1.7556135345269747E-01 + 1.5771062210548265E-01 1.4148334144146832E-01 1.2675179255363270E-01 + 1.1339643025846596E-01 1.0130551501891244E-01 9.0374750666138495E-02 + 8.0506928488912485E-02 7.1611578172177615E-02 6.3604626024107949E-02 + 5.6408060912449653E-02 4.9949608321586729E-02 4.4162412932361401E-02 + 3.8984730112166653E-02 3.4359626681031034E-02 3.0234691289991834E-02 + 2.6561754711718340E-02 2.3296620301385303E-02 2.0398804839671571E-02 + 1.7831289920954060E-02 1.5560283999631221E-02 1.3554995157230933E-02 + 1.1787414603517961E-02 1.0232110877021285E-02 8.8660346648719718E-03 + 7.6683341190526980E-03 6.6201805064516955E-03 5.7046039937197323E-03 + 4.9063393349961090E-03 4.2116812011721251E-03 3.6083488635169562E-03 + 3.0853599221731288E-03 2.6329127511734236E-03 2.2422773161443594E-03 + 1.9056940086246571E-03 1.6162801318029389E-03 1.3679436663107682E-03 + 1.1553039413263750E-03 9.7361883546878659E-04 8.1871813360109868E-04 + 6.8694266951640885E-04 5.7508889034719849E-04 4.8035848621170145E-04 + 4.0031273788137210E-04 3.3283124591533157E-04 2.7607471655695295E-04 + 2.2845149252602594E-04 1.8858753047530590E-04 1.5529954112915165E-04 + 1.2757102281062385E-04 1.0453093402890772E-04 8.5434765890345647E-05 + 6.9647790175351602E-05 5.6630273864964660E-05 4.5924465593145109E-05 + 3.7143173846138318E-05 2.9959770643817941E-05 2.4099467848597337E-05 + 1.9331726096781711E-05 1.5463668588838414E-05 1.2334383574229642E-05 + 9.8100102991228446E-06 7.7795134372794999E-06 6.1510605904503850E-06 + 4.8489263273959817E-06 3.8108544399358387E-06 2.9858176460049714E-06 + 2.3321208844751842E-06 1.8158006496174457E-06 1.4092785330331827E-06 + 1.0902323087175388E-06 8.4065254550233995E-07 6.4605689446952514E-07 + 4.9483791156876917E-07 3.7772357217465889E-07 2.8733254877042861E-07 + 2.1780888860868320E-07 1.6452297716982525E-07 1.2382763618446881E-07 + 9.2859910969952784E-08 6.9380578145868744E-08 5.1644676883781028E-08 + 3.8297458254058899E-08 2.8291079583393675E-08 2.0818163763963828E-08 + 1.5259015046590253E-08 1.1139849116695589E-08 8.0998706146245729E-09 + 5.8654285511252866E-09 4.2298106314773686E-09 3.0375113142828067E-09 + 2.1720342141147354E-09 1.5464747908195236E-09 1.0962807031099153E-09 + 7.7371037001059153E-10 5.4360999211690584E-10 3.8020962465242347E-10 + 2.6470332208866204E-10 1.8342979462488543E-10 1.2651085843871085E-10 + 8.6837242993465272E-11 5.9316708727631850E-11 4.0319299266275338E-11 + 2.7270025741037766E-11 1.8351269036503428E-11 1.2286426308896213E-11 + 8.1834139172272665E-12 5.4220440374852740E-12 3.5733935637143104E-12 + 2.3423793223671386E-12 1.5270772461738943E-12 9.9005789299023412E-13 + 6.3829864957925420E-13 4.0918386443025563E-13 2.6080224959731303E-13 + 1.6526046548992165E-13 1.0410161742028458E-13 6.5184212013503966E-14 + 4.0568492545632007E-14 2.5093508734090914E-14 1.5424959403723470E-14 + 9.4219394379377554E-15 5.7183827229292306E-15 3.4481425565739613E-15 + 2.0655618075963732E-15 1.2291178219384471E-15 7.2646043116119181E-16 + 4.2643589984422347E-16 2.4858707473896582E-16 1.4389489247048439E-16 + 8.2701375981939016E-17 4.7188751561699361E-17 2.6728827493278341E-17 + 1.5027739568488932E-17 8.3856318617656118E-18 4.6436741059667476E-18 + 2.5516804360628683E-18 1.3911809223725253E-18 7.5246664429934007E-19 + 4.0372913394056504E-19 2.1485445469598120E-19 1.1339702299916877E-19 + 5.9348928697118212E-20 3.0798410969881650E-20 1.5845192261605719E-20 + 8.0810798325320256E-21 4.0850011169494123E-21 2.0465077158906464E-21 + 1.0159675679972439E-21 4.9973259252625155E-22 2.4351868267666574E-22 + 1.1754613764801142E-22 5.6196577439807652E-23 2.6606026235713558E-23 + 1.2472723202846147E-23 5.7888913094029976E-24 2.6596427483704730E-24 + 1.2094424177916915E-24 5.4427761233274243E-25 2.4236379124427704E-25 + 1.0677382515058442E-25 4.6531671753696124E-26 2.0056514851181866E-26 + 8.5491035463389469E-27 3.6031178657286112E-27 1.5012837320423097E-27 + 6.1831000308484088E-28 2.5167544185074152E-28 1.0122725947126314E-28 + 4.0225948227751929E-29 1.5790521015625051E-29 6.1220412700012266E-30 + 2.3438671908643386E-30 8.8599870396835293E-31 3.3061453522376406E-31 + 1.2176543724429173E-31 4.4255050531450512E-32 1.5869413121601052E-32 + 5.6135760089819204E-33 1.9584818721515316E-33 6.7378320951057609E-34 + 2.2853879669217420E-34 7.6411059032020337E-35 2.5178241308569098E-35 + 8.1749058246579996E-36 2.6148245817694717E-36 8.2379274269086316E-37 + 2.5557657969759701E-37 7.8066163387543799E-38 2.3472168577377058E-38 + 6.9454597474934823E-39 2.0221524141640603E-39 5.7915987815445456E-40 + 1.6313991006862800E-40 4.5185957840062161E-41 1.2303580732453114E-41 + 3.2926564378184374E-42 8.6586295252265582E-43 2.2368640898944221E-43 + 5.6756612057777619E-44 1.4140909948614391E-44 3.4587466676162639E-45 + 8.3030185898553108E-46 1.9557951498213914E-46 4.5193288483136462E-47 + 1.0241882016180042E-47 2.2757877847492820E-48 4.9570095793703588E-49 + 1.0581141250359200E-49 2.2128792204143493E-50 4.5329610465450425E-51 + 9.0926596111000594E-52 1.7855380823100742E-52 3.4316271848710877E-53 + 6.4530711303234052E-54 1.1869974326229877E-54 2.1351615511439680E-55 + 3.7548195544105882E-56 6.4536232949056811E-57 1.0838079514252374E-57 + 1.7779206131988043E-58 2.8481314441131278E-59 4.4542118155248946E-60 + 6.7986029019756455E-61 1.0124662347395177E-61 1.4707095281489462E-62 + 2.0832027333051216E-63 2.8765149732070629E-64 3.8708279030549967E-65 + 5.0747465191718822E-66 6.4799073978352681E-67 8.0563341863595773E-68 + 9.7496782765302828E-69 1.1481452442804772E-69 1.3153049183828004E-70 + 1.4653731969595071E-71 1.5871983051839786E-72 1.6708756978988557E-73 + 1.7090544650364279E-74 1.6979906079855807E-75 1.6381405268999682E-76 + 1.5341665311984434E-77 1.3943393809340983E-78 1.2294433293762967E-79 + 1.0513861389121353E-80 8.7176557272695023E-82 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 + + + 8.3228405985074516E-01 8.3228406376307040E-01 8.3228407571507046E-01 + 8.3228409603526343E-01 8.3228412506297877E-01 8.3228416314835652E-01 + 8.3228421065266223E-01 8.3228426794861488E-01 8.3228433542071945E-01 + 8.3228441346561488E-01 8.3228450249242614E-01 8.3228460292313033E-01 + 8.3228471519293046E-01 8.3228483975064160E-01 8.3228497705908788E-01 + 8.3228512759550710E-01 8.3228529185197297E-01 8.3228547033582501E-01 + 8.3228566357011036E-01 8.3228587209404059E-01 8.3228609646345941E-01 + 8.3228633725132461E-01 8.3228659504820168E-01 8.3228687046277516E-01 + 8.3228716412236892E-01 8.3228747667348679E-01 8.3228780878236464E-01 + 8.3228816113553861E-01 8.3228853444043005E-01 8.3228892942594712E-01 + 8.3228934684310174E-01 8.3228978746564564E-01 8.3229025209072327E-01 + 8.3229074153954175E-01 8.3229125665806325E-01 8.3229179831771383E-01 + 8.3229236741611134E-01 8.3229296487781845E-01 8.3229359165510963E-01 + 8.3229424872876656E-01 8.3229493710889124E-01 8.3229565783574333E-01 + 8.3229641198060222E-01 8.3229720064665091E-01 8.3229802496988448E-01 + 8.3229888612004843E-01 8.3229978530159587E-01 8.3230072375467690E-01 + 8.3230170275615678E-01 8.3230272362065583E-01 8.3230378770162439E-01 + 8.3230489639244576E-01 8.3230605112756939E-01 8.3230725338367673E-01 + 8.3230850468087847E-01 8.3230980658394638E-01 8.3231116070357836E-01 + 8.3231256869769887E-01 8.3231403227279588E-01 8.3231555318529582E-01 + 8.3231713324297574E-01 8.3231877430641321E-01 8.3232047829048239E-01 + 8.3232224716588277E-01 8.3232408296071902E-01 8.3232598776211819E-01 + 8.3232796371789908E-01 8.3233001303827847E-01 8.3233213799763250E-01 + 8.3233434093630554E-01 8.3233662426246580E-01 8.3233899045401560E-01 + 8.3234144206055338E-01 8.3234398170539270E-01 8.3234661208763316E-01 + 8.3234933598429017E-01 8.3235215625248682E-01 8.3235507583170076E-01 + 8.3235809774608116E-01 8.3236122510682042E-01 8.3236446111459972E-01 + 8.3236780906209851E-01 8.3237127233657215E-01 8.3237485442250647E-01 + 8.3237855890433909E-01 8.3238238946926069E-01 8.3238634991009075E-01 + 8.3239044412823704E-01 8.3239467613672957E-01 8.3239905006334980E-01 + 8.3240357015383271E-01 8.3240824077516917E-01 8.3241306641899149E-01 + 8.3241805170505756E-01 8.3242320138483061E-01 8.3242852034515147E-01 + 8.3243401361202163E-01 8.3243968635448684E-01 8.3244554388862435E-01 + 8.3245159168164362E-01 8.3245783535610085E-01 8.3246428069422951E-01 + 8.3247093364238545E-01 8.3247780031562246E-01 8.3248488700238710E-01 + 8.3249220016934666E-01 8.3249974646634828E-01 8.3250753273151512E-01 + 8.3251556599648291E-01 8.3252385349178248E-01 8.3253240265236628E-01 + 8.3254122112328832E-01 8.3255031676554347E-01 8.3255969766206495E-01 + 8.3256937212388438E-01 8.3257934869646388E-01 8.3258963616620352E-01 + 8.3260024356712259E-01 8.3261118018772973E-01 8.3262245557807557E-01 + 8.3263407955700763E-01 8.3264606221961235E-01 8.3265841394487261E-01 + 8.3267114540352882E-01 8.3268426756615477E-01 8.3269779171146052E-01 + 8.3271172943481531E-01 8.3272609265700992E-01 8.3274089363325410E-01 + 8.3275614496242434E-01 8.3277185959656086E-01 8.3278805085062757E-01 + 8.3280473241253417E-01 8.3282191835343788E-01 8.3283962313832360E-01 + 8.3285786163686881E-01 8.3287664913461268E-01 8.3289600134442665E-01 + 8.3291593441829292E-01 8.3293646495941276E-01 8.3295761003463586E-01 + 8.3297938718723574E-01 8.3300181445002819E-01 8.3302491035884729E-01 + 8.3304869396638959E-01 8.3307318485643034E-01 8.3309840315843509E-01 + 8.3312436956255553E-01 8.3315110533504089E-01 8.3317863233406764E-01 + 8.3320697302599245E-01 8.3323615050205058E-01 8.3326618849550305E-01 + 8.3329711139925278E-01 8.3332894428393145E-01 8.3336171291647887E-01 + 8.3339544377922148E-01 8.3343016408947124E-01 8.3346590181964686E-01 + 8.3350268571794062E-01 8.3354054532954369E-01 8.3357951101843797E-01 + 8.3361961398978190E-01 8.3366088631288859E-01 8.3370336094482944E-01 + 8.3374707175466656E-01 8.3379205354833730E-01 8.3383834209420649E-01 + 8.3388597414929699E-01 8.3393498748623207E-01 8.3398542092088823E-01 + 8.3403731434079287E-01 8.3409070873427504E-01 8.3414564622039844E-01 + 8.3420217007968611E-01 8.3426032478566381E-01 8.3432015603724685E-01 + 8.3438171079197654E-01 8.3444503730014730E-01 8.3451018513983166E-01 + 8.3457720525283419E-01 8.3464614998159448E-01 8.3471707310706467E-01 + 8.3479002988758333E-01 8.3486507709877533E-01 8.3494227307449442E-01 + 8.3502167774884950E-01 8.3510335269932223E-01 8.3518736119101955E-01 + 8.3527376822208088E-01 8.3536264057026677E-01 8.3545404684076408E-01 + 8.3554805751523265E-01 8.3564474500212482E-01 8.3574418368830972E-01 + 8.3584644999202651E-01 8.3595162241721466E-01 8.3605978160923555E-01 + 8.3617101041202613E-01 8.3628539392672274E-01 8.3640301957178487E-01 + 8.3652397714464899E-01 8.3664835888496103E-01 8.3677625953941059E-01 + 8.3690777642820857E-01 8.3704300951325150E-01 8.3718206146799790E-01 + 8.3732503774910916E-01 8.3747204666988173E-01 8.3762319947552111E-01 + 8.3777861042028867E-01 8.3793839684656812E-01 8.3810267926589166E-01 + 8.3827158144196701E-01 8.3844523047574493E-01 8.3862375689257873E-01 + 8.3880729473150772E-01 8.3899598163671729E-01 8.3918995895121196E-01 + 8.3938937181275974E-01 8.3959436925212982E-01 8.3980510429369148E-01 + 8.4002173405840586E-01 8.4024441986926046E-01 8.4047332735919222E-01 + 8.4070862658153955E-01 8.4095049212308060E-01 8.4119910321969038E-01 + 8.4145464387466806E-01 8.4171730297978276E-01 8.4198727443907484E-01 + 8.4226475729546779E-01 8.4254995586022297E-01 8.4284307984528861E-01 + 8.4314434449858555E-01 8.4345397074226913E-01 8.4377218531400711E-01 + 8.4409922091131828E-01 8.4443531633900648E-01 8.4478071665972898E-01 + 8.4513567334773554E-01 8.4550044444581052E-01 8.4587529472545109E-01 + 8.4626049585031238E-01 8.4665632654294665E-01 8.4706307275485904E-01 + 8.4748102783990831E-01 8.4791049273106511E-01 8.4835177612054835E-01 + 8.4880519464334614E-01 8.4927107306413896E-01 8.4974974446762019E-01 + 8.5024155045221583E-01 8.5074684132720058E-01 8.5126597631319167E-01 + 8.5179932374601730E-01 8.5234726128391736E-01 8.5291017611806363E-01 + 8.5348846518635135E-01 8.5408253539042256E-01 8.5469280381586332E-01 + 8.5531969795551466E-01 8.5596365593583079E-01 8.5662512674618851E-01 + 8.5730457047106789E-01 8.5800245852499701E-01 8.5871927389013447E-01 + 8.5945551135636999E-01 8.6021167776379714E-01 8.6098829224739226E-01 + 8.6178588648372756E-01 8.6260500493953218E-01 8.6344620512187864E-01 + 8.6431005782977943E-01 8.6519714740692855E-01 8.6610807199533446E-01 + 8.6704344378953135E-01 8.6800388929106964E-01 8.6899004956292536E-01 + 8.7000258048347157E-01 8.7104215299960475E-01 8.7210945337859314E-01 + 8.7320518345820253E-01 8.7433006089458232E-01 8.7548481940739986E-01 + 8.7667020902164161E-01 8.7788699630548506E-01 8.7913596460357790E-01 + 8.8041791426505067E-01 8.8173366286549815E-01 8.8308404542216501E-01 + 8.8446991460148161E-01 8.8589214091806012E-01 8.8735161292419895E-01 + 8.8884923738889088E-01 8.9038593946526057E-01 8.9196266284528325E-01 + 8.9358036990059519E-01 8.9524004180811112E-01 8.9694267865907717E-01 + 8.9868929955016075E-01 9.0048094265502365E-01 9.0231866527480487E-01 + 9.0420354386580104E-01 9.0613667404256726E-01 9.0811917055454894E-01 + 9.1015216723425152E-01 9.1223681691485925E-01 9.1437429131508396E-01 + 9.1656578088893237E-01 9.1881249463793169E-01 9.2111565988325506E-01 + 9.2347652199503283E-01 9.2589634407602162E-01 9.2837640659664233E-01 + 9.3091800697827831E-01 9.3352245912153964E-01 9.3619109287608249E-01 + 9.3892525344837630E-01 9.4172630074367247E-01 9.4459560863825198E-01 + 9.4753456417782844E-01 9.5054456669784937E-01 9.5362702686121426E-01 + 9.5678336560875188E-01 9.6001501301761549E-01 9.6332340706254571E-01 + 9.6670999227474419E-01 9.7017621829292489E-01 9.7372353830087532E-01 + 9.7735340734564979E-01 9.8106728053034431E-01 9.8486661107514406E-01 + 9.8875284824015008E-01 9.9272743510328010E-01 9.9679180618631857E-01 + 1.0009473849219959E+00 1.0051955809547648E+00 1.0095377872677533E+00 + 1.0139753771281801E+00 1.0185097008433315E+00 1.0231420823190280E+00 + 1.0278738154123634E+00 1.0327061600703273E+00 1.0376403382458088E+00 + 1.0426775295823689E+00 1.0478188668590676E+00 1.0530654311865784E+00 + 1.0584182469457792E+00 1.0638782764600050E+00 1.0694464143921676E+00 + 1.0751234818580315E+00 1.0809102202470284E+00 1.0868072847421568E+00 + 1.0928152375307312E+00 1.0989345406979933E+00 1.1051655487959540E+00 + 1.1115085010802235E+00 1.1179635134080488E+00 1.1245305697913706E+00 + 1.1312095135993259E+00 1.1380000384053957E+00 1.1449016784752142E+00 + 1.1519137988920600E+00 1.1590355853180909E+00 1.1662660333906292E+00 + 1.1736039377541407E+00 1.1810478807300622E+00 1.1885962206282830E+00 + 1.1962470797059304E+00 1.2039983317811009E+00 1.2118475895114051E+00 + 1.2197921913495520E+00 1.2278291881908578E+00 1.2359553297303563E+00 + 1.2441670505502800E+00 1.2524604559619656E+00 1.2608313076298092E+00 + 1.2692750090087184E+00 1.2777865906305741E+00 1.2863606952796125E+00 + 1.2949915631012603E+00 1.3036730166938963E+00 1.3123984462382674E+00 + 1.3211607947247686E+00 1.3299525433446457E+00 1.3387656971172752E+00 + 1.3475917708320562E+00 1.3564217753901378E+00 1.3652462046381022E+00 + 1.3740550227929345E+00 1.3828376525649686E+00 1.3915829640931168E+00 + 1.4002792648144513E+00 1.4089142903980607E+00 1.4174751968811039E+00 + 1.4259485541529444E+00 1.4343203409412266E+00 1.4425759414615846E+00 + 1.4507001439003693E+00 1.4586771409071473E+00 1.4664905322807771E+00 + 1.4741233300393863E+00 1.4815579660705329E+00 1.4887763025630190E+00 + 1.4957596454261397E+00 1.5024887609054394E+00 1.5089438956060646E+00 + 1.5151048001355105E+00 1.5209507565765630E+00 1.5264606099985314E+00 + 1.5316128042100843E+00 1.5363854219499815E+00 1.5407562297024791E+00 + 1.5447027273119545E+00 1.5482022025560507E+00 1.5512317908182121E+00 + 1.5537685399784982E+00 1.5557894806159536E+00 1.5572717015861457E+00 + 1.5581924310037274E+00 1.5585291226216909E+00 1.5582595475563081E+00 + 1.5573618912593366E+00 1.5558148555869693E+00 1.5535977657580136E+00 + 1.5506906819320663E+00 1.5470745150719649E+00 1.5427311466838360E+00 + 1.5376435519527276E+00 1.5317959257126406E+00 1.5251738106070409E+00 + 1.5177642267103639E+00 1.5095558017932589E+00 1.5005389013251786E+00 + 1.4907057572184836E+00 1.4800505942294864E+00 1.4685697528452100E+00 + 1.4562618074014158E+00 1.4431276780992361E+00 1.4291707355162182E+00 + 1.4143968961445423E+00 1.3988147074364952E+00 1.3824354207969205E+00 + 1.3652730509363025E+00 1.3473444199884961E+00 1.3286691848056393E+00 + 1.3092698458715915E+00 1.2891717363259911E+00 1.2684029896653624E+00 + 1.2469944847870114E+00 1.2249797671669527E+00 1.2023949451156855E+00 + 1.1792785602358975E+00 1.1556714314146159E+00 1.1316164719189918E+00 + 1.1071584794299218E+00 1.0823438991410663E+00 1.0572205603726845E+00 + 1.0318373875004840E+00 1.0062440863805442E+00 9.8049080786416909E-01 + 9.5462779044440105E-01 9.2870498456367268E-01 9.0277166164588696E-01 + 8.7687601150509531E-01 8.5106473243742842E-01 8.2538261903655841E-01 + 7.9987215360088804E-01 7.7457310794044143E-01 7.4952216346158085E-01 + 7.2475255862808552E-01 7.0029412467637708E-01 6.7617341667384856E-01 + 6.5241395566029348E-01 6.2903659956259816E-01 6.0606006269434887E-01 + 5.8350160592490408E-01 5.6137703700078667E-01 5.3970071607546644E-01 + 5.1848556623516640E-01 4.9774308879059836E-01 4.7748338308874577E-01 + 4.5771517058520961E-01 4.3844582290606349E-01 4.1968139361868378E-01 + 4.0142665342362954E-01 3.8368512847422692E-01 3.6645914152710363E-01 + 3.4974985562538513E-01 3.3355732001659932E-01 3.1788051800938044E-01 + 3.0271741647678635E-01 2.8806501671931906E-01 2.7391940640743528E-01 + 2.6027581233139707E-01 2.4712865369554457E-01 2.3447159570441781E-01 + 2.2229760319945491E-01 2.1059899411711705E-01 1.9936749255214664E-01 + 1.8859428122307378E-01 1.7827005315097874E-01 1.6838506237672887E-01 + 1.5892917355335168E-01 1.4989191028317433E-01 1.4126250203693538E-01 + 1.3302992957031429E-01 1.2518296871886431E-01 1.1771023248358276E-01 + 1.1060021134475471E-01 1.0384131171617279E-01 9.7421892516875885E-02 + 9.1330299809733742E-02 8.5554899483493332E-02 8.0084107963204518E-02 + 7.4906420943862254E-02 7.0010440151444489E-02 6.5384898144137352E-02 + 6.1018681174422544E-02 5.6900850139888139E-02 5.3020659657112584E-02 + 4.9367575298805130E-02 4.5931289039587826E-02 4.2701732960415038E-02 + 3.9669091265693568E-02 3.6823810670721269E-02 3.4156609220161456E-02 + 3.1658483600939480E-02 2.9320715015238977E-02 2.7134873681208038E-02 + 2.5092822030598642E-02 2.3186716673865473E-02 2.1409009204270031E-02 + 1.9752445913271820E-02 1.8210066489950980E-02 1.6775201777395908E-02 + 1.5441470658898339E-02 1.4202776146428814E-02 1.3053300743209104E-02 + 1.1987501151252711E-02 1.1000102393510033E-02 1.0086091418731121E-02 + 9.2407102553539299E-03 8.4594487786479721E-03 7.7380371530084624E-03 + 7.0724380087213148E-03 6.4588384097291254E-03 5.8936416659478913E-03 + 5.3734590405431614E-03 4.8951013993040905E-03 4.4555708458862012E-03 + 4.0520523832627831E-03 3.6819056382625210E-03 3.3426566826099549E-03 + 3.0319899804549964E-03 2.7477404890071874E-03 2.4878859356046727E-03 + 2.2505392913701556E-03 2.0339414585566814E-03 1.8364541857813694E-03 + 1.6565532225997816E-03 1.4928217222981339E-03 1.3439438993833293E-03 + 1.2086989460377044E-03 1.0859552097792101E-03 9.7466463272981763E-04 + 8.7385745124398014E-04 7.8263715318229658E-04 7.0017568882831582E-04 + 6.2570893033309755E-04 5.5853237362514106E-04 4.9799707593440852E-04 + 4.4350582143906089E-04 3.9450950704194714E-04 3.5050373991017561E-04 + 3.1102563815392492E-04 2.7565082586847333E-04 2.4399061370452936E-04 + 2.1568935615473347E-04 1.9042197683721368E-04 1.6789165320932968E-04 + 1.4782765234573682E-04 1.2998330965483215E-04 1.1413414267750007E-04 + 1.0007609240369449E-04 8.7623884848526208E-05 7.6609505943874210E-05 + 6.6880783118741793E-05 5.8300067257190073E-05 5.0743009033101773E-05 + 4.4097423923488112E-05 3.8262240494471438E-05 3.3146526835036680E-05 + 2.8668590282272369E-05 2.4755145837680459E-05 2.1340548917194297E-05 + 1.8366088308037166E-05 1.5779335423947016E-05 1.3533546157196929E-05 + 1.1587111821965879E-05 9.9030558697158004E-06 8.4485732340786682E-06 + 7.1946093310929405E-06 6.1154759011622024E-06 5.1885010324820557E-06 + 4.3937108524746298E-06 3.7135405144886363E-06 3.1325722420984157E-06 + 2.6372983231290007E-06 2.2159070703390671E-06 1.8580898857425824E-06 + 1.5548676810229407E-06 1.2984350175230636E-06 1.0820204359780976E-06 + 8.9976154855940005E-07 7.4659356396320481E-07 6.1815001023268990E-07 + 5.1067450976671845E-07 4.2094254655721663E-07 3.4619224712542870E-07 + 2.8406327391566700E-07 2.3254300308136858E-07 1.8991922770075520E-07 + 1.5473869253786064E-07 1.2577082758195666E-07 1.0197610483048593E-07 + 8.2478496216713239E-08 6.6541560325578322E-08 5.3547731703762619E-08 + 4.2980429277937933E-08 3.4408639783328381E-08 2.7473668316249010E-08 + 2.1877781309028717E-08 1.7374497538747405E-08 1.3760310381168444E-08 + 1.0867649568829246E-08 8.5589133687358266E-09 6.7214225209215518E-09 + 5.2631656325984902E-09 4.1092221587793016E-09 3.1987637698145224E-09 + 2.4825479548069017E-09 1.9208292769369361E-09 1.4816239154336541E-09 + 1.1392721253285276E-09 8.7325113899072175E-10 6.6719793397615258E-10 + 5.0810730351964532E-10 3.8567588502064568E-10 2.9176731655039217E-10 + 2.1997758281319729E-10 1.6528295407480270E-10 1.2375578144172436E-10 + 9.2335850151540079E-11 6.8647063693395749E-11 5.0850984348918964E-11 + 3.7530233504496400E-11 2.7595996269926827E-11 2.0214913438729229E-11 + 1.4751509391183424E-11 1.0723023163701080E-11 7.7641041899391088E-12 + 5.5993237250998038E-12 4.0218545523740121E-12 2.8769996966693425E-12 + 2.0495178771317106E-12 1.4539098030816944E-12 1.0270040267853242E-12 + 7.2232137722880492E-13 5.0580926634040917E-13 3.5262660108350839E-13 + 2.4473098342920250E-13 1.6907587918656352E-13 1.1626954750192915E-13 + 7.9581994938105873E-14 5.4212433478082261E-14 3.6752923541050146E-14 + 2.4794953945286102E-14 1.6645089469364723E-14 1.1118106361515695E-14 + 7.3886896870880287E-15 4.8850114608266992E-15 3.2128802362108256E-15 + 2.1019534532021126E-15 1.3677907246917514E-15 8.8522196857481012E-16 + 5.6975509077051605E-16 3.6466563660815110E-16 2.3208053094140429E-16 + 1.4685407974616568E-16 9.2385220190435232E-17 5.7776792565383599E-17 + 3.5917294007919059E-17 2.2193069161766776E-17 1.3628828951798268E-17 + 8.3174554680059202E-18 5.0440113045055814E-18 3.0393281515339952E-18 + 1.8195204844084491E-18 1.0821200505417476E-18 6.3928406019362284E-19 + 3.7512197986566688E-19 2.1861053167860377E-19 1.2651696468840876E-19 + 7.2704985405704651E-20 4.1483503826962943E-20 2.3498491437854356E-20 + 1.3213405656329249E-20 7.3748998743779723E-21 4.0852610246115052E-21 + 2.2457476950058643E-21 1.2249944590355016E-21 6.6296899720663223E-22 + 3.5595209118281350E-22 1.8957531159108023E-22 1.0014192493787378E-22 + 5.2462066728369624E-23 2.7253411760051224E-23 1.4037586121882325E-23 + 7.1681888560290064E-24 3.6284453348355322E-24 1.8204295139014350E-24 + 9.0514172182326566E-25 4.4595939216383672E-25 2.1769874348670570E-25 + 1.0527943297429250E-25 5.0431577136180330E-26 2.3926358282117491E-26 + 1.1241093865588174E-26 5.2292641526302990E-27 2.4083186808290456E-27 + 1.0979163225138956E-27 4.9538880663579712E-28 2.2119929387711762E-28 + 9.7728223080643123E-29 4.2716167367840869E-29 1.8468729498620127E-29 + 7.8975035450225617E-30 3.3395307881931858E-30 1.3962325644409629E-30 + 5.7708496455491793E-31 2.3575643056175528E-31 9.5183207153356897E-32 + 3.7971732713436337E-32 1.4965566691186740E-32 5.8262220634454302E-33 + 2.2401109044094600E-33 8.5048602109329228E-34 3.1879067183569834E-34 + 1.1795311574616186E-34 4.3072716017928252E-35 1.5520538193580468E-35 + 5.5175290113861279E-36 1.9348016301847881E-36 6.6911668188685480E-37 + 2.2817048171526632E-37 7.6705553655365201E-38 2.5416773615993481E-38 + 8.2995731217018694E-39 2.6702210385400566E-39 8.4626840191773894E-40 + 2.6415008029456672E-40 8.1186954550127330E-41 2.4565449735462742E-41 + 7.3160243355707565E-42 2.1441018117055780E-42 6.1821891424705619E-43 + 1.7533614983068749E-43 4.8903224388166361E-44 1.3410464330016285E-44 + 3.6148705382554666E-45 9.5760300438014795E-46 2.4924252238554140E-46 + 6.3723791578953906E-47 1.6000068447663242E-47 3.9443857243894308E-48 + 9.5448643985726695E-49 2.2666763521538647E-49 5.2811354099627190E-50 + 1.2069075750512613E-50 2.7052234305629524E-51 5.9432982898684969E-52 + 1.2762750858478298E-52 2.6848095633014605E-53 5.5311206289344903E-54 + 1.1156284456472983E-54 + + + 6.2578655005194355E+00 6.2578654823762099E+00 6.2578654269491309E+00 + 6.2578653327152063E+00 6.2578651981008679E+00 6.2578650214819787E+00 + 6.2578648011833913E+00 6.2578645354765037E+00 6.2578642225783163E+00 + 6.2578638606494117E+00 6.2578634477924613E+00 6.2578629820505709E+00 + 6.2578624614055194E+00 6.2578618837758935E+00 6.2578612470154322E+00 + 6.2578605489109274E+00 6.2578597871803909E+00 6.2578589594710765E+00 + 6.2578580633573795E+00 6.2578570963387046E+00 6.2578560558372818E+00 + 6.2578549391961458E+00 6.2578537436764972E+00 6.2578524664555255E+00 + 6.2578511046241019E+00 6.2578496551840228E+00 6.2578481150456575E+00 + 6.2578464810252123E+00 6.2578447498419063E+00 6.2578429181155233E+00 + 6.2578409823632652E+00 6.2578389389967697E+00 6.2578367843192826E+00 + 6.2578345145224432E+00 6.2578321256831355E+00 6.2578296137599594E+00 + 6.2578269745902437E+00 6.2578242038864333E+00 6.2578212972320939E+00 + 6.2578182500787980E+00 6.2578150577423495E+00 6.2578117153983195E+00 + 6.2578082180785248E+00 6.2578045606670187E+00 6.2578007378953258E+00 + 6.2577967443388074E+00 6.2577925744117273E+00 6.2577882223625378E+00 + 6.2577836822697543E+00 6.2577789480367363E+00 6.2577740133865420E+00 + 6.2577688718572020E+00 6.2577635167962358E+00 6.2577579413552922E+00 + 6.2577521384846175E+00 6.2577461009271556E+00 6.2577398212131898E+00 + 6.2577332916538060E+00 6.2577265043344763E+00 6.2577194511095424E+00 + 6.2577121235950228E+00 6.2577045131619942E+00 6.2576966109297931E+00 + 6.2576884077586792E+00 6.2576798942427168E+00 6.2576710607021235E+00 + 6.2576618971758693E+00 6.2576523934132551E+00 6.2576425388658210E+00 + 6.2576323226797124E+00 6.2576217336861415E+00 6.2576107603924509E+00 + 6.2575993909739775E+00 6.2575876132638424E+00 6.2575754147439486E+00 + 6.2575627825345475E+00 6.2575497033840612E+00 6.2575361636591964E+00 + 6.2575221493336883E+00 6.2575076459778769E+00 6.2574926387466681E+00 + 6.2574771123678872E+00 6.2574610511312443E+00 6.2574444388751571E+00 + 6.2574272589740669E+00 6.2574094943260379E+00 6.2573911273391811E+00 + 6.2573721399174627E+00 6.2573525134471728E+00 6.2573322287823308E+00 + 6.2573112662296877E+00 6.2572896055333844E+00 6.2572672258589437E+00 + 6.2572441057778221E+00 6.2572202232505330E+00 6.2571955556088836E+00 + 6.2571700795394580E+00 6.2571437710650759E+00 6.2571166055258551E+00 + 6.2570885575611381E+00 6.2570596010894670E+00 6.2570297092877940E+00 + 6.2569988545720268E+00 6.2569670085749740E+00 6.2569341421249307E+00 + 6.2569002252231591E+00 6.2568652270203389E+00 6.2568291157940124E+00 + 6.2567918589229246E+00 6.2567534228630786E+00 6.2567137731222928E+00 + 6.2566728742319588E+00 6.2566306897214039E+00 6.2565871820908106E+00 + 6.2565423127808009E+00 6.2564960421434188E+00 6.2564483294129509E+00 + 6.2563991326736534E+00 6.2563484088282726E+00 6.2562961135659645E+00 + 6.2562422013277015E+00 6.2561866252707432E+00 6.2561293372354072E+00 + 6.2560702877078258E+00 6.2560094257800287E+00 6.2559466991140011E+00 + 6.2558820539020203E+00 6.2558154348241555E+00 6.2557467850072390E+00 + 6.2556760459824128E+00 6.2556031576404312E+00 6.2555280581858952E+00 + 6.2554506840913300E+00 6.2553709700489959E+00 6.2552888489214435E+00 + 6.2552042516908193E+00 6.2551171074068641E+00 6.2550273431348584E+00 + 6.2549348838990717E+00 6.2548396526263685E+00 6.2547415700896094E+00 + 6.2546405548469970E+00 6.2545365231818550E+00 6.2544293890392977E+00 + 6.2543190639612147E+00 6.2542054570208414E+00 6.2540884747551528E+00 + 6.2539680210933337E+00 6.2538439972854540E+00 6.2537163018296589E+00 + 6.2535848303955310E+00 6.2534494757464110E+00 6.2533101276585219E+00 + 6.2531666728396234E+00 6.2530189948456742E+00 6.2528669739912965E+00 + 6.2527104872625427E+00 6.2525494082261952E+00 6.2523836069332352E+00 + 6.2522129498238304E+00 6.2520372996285714E+00 6.2518565152656214E+00 + 6.2516704517360786E+00 6.2514789600171321E+00 6.2512818869512365E+00 + 6.2510790751322007E+00 6.2508703627902609E+00 6.2506555836707793E+00 + 6.2504345669119816E+00 6.2502071369186734E+00 6.2499731132331657E+00 + 6.2497323104021953E+00 6.2494845378380601E+00 6.2492295996815308E+00 + 6.2489672946558432E+00 6.2486974159182154E+00 6.2484197509084716E+00 + 6.2481340811930082E+00 6.2478401823050227E+00 6.2475378235779129E+00 + 6.2472267679776570E+00 6.2469067719292477E+00 6.2465775851377154E+00 + 6.2462389504055853E+00 6.2458906034446855E+00 6.2455322726823805E+00 + 6.2451636790660761E+00 6.2447845358567182E+00 6.2443945484197920E+00 + 6.2439934140149598E+00 6.2435808215715012E+00 6.2431564514637010E+00 + 6.2427199752800657E+00 6.2422710555833758E+00 6.2418093456675088E+00 + 6.2413344893050811E+00 6.2408461204913408E+00 6.2403438631792723E+00 + 6.2398273310067474E+00 6.2392961270202170E+00 6.2387498433878168E+00 + 6.2381880611049771E+00 6.2376103496942275E+00 6.2370162668970304E+00 + 6.2364053583552872E+00 6.2357771572854555E+00 6.2351311841463293E+00 + 6.2344669462960018E+00 6.2337839376390098E+00 6.2330816382661141E+00 + 6.2323595140859336E+00 6.2316170164435354E+00 6.2308535817307318E+00 + 6.2300686309881748E+00 6.2292615694944002E+00 6.2284317863458414E+00 + 6.2275786540256899E+00 6.2267015279617386E+00 6.2257997460727701E+00 + 6.2248726283043938E+00 6.2239194761511323E+00 6.2229395721679071E+00 + 6.2219321794691549E+00 6.2208965412142208E+00 6.2198318800825110E+00 + 6.2187373977294795E+00 6.2176122742355613E+00 6.2164556675413110E+00 + 6.2152667128604620E+00 6.2140445220867129E+00 6.2127881831841796E+00 + 6.2114967595603838E+00 6.2101692894241749E+00 6.2088047851299972E+00 + 6.2074022325060199E+00 6.2059605901636790E+00 6.2044787887916284E+00 + 6.2029557304339473E+00 6.2013902877498044E+00 6.1997813032543538E+00 + 6.1981275885443914E+00 6.1964279235039008E+00 6.1946810554905669E+00 + 6.1928856985040861E+00 6.1910405323344655E+00 6.1891442016910228E+00 + 6.1871953153123060E+00 6.1851924450531381E+00 6.1831341249528569E+00 + 6.1810188502818786E+00 6.1788450765658567E+00 6.1766112185908755E+00 + 6.1743156493838729E+00 6.1719566991713055E+00 6.1695326543146134E+00 + 6.1670417562250135E+00 6.1644822002524648E+00 6.1618521345513306E+00 + 6.1591496589237771E+00 6.1563728236369073E+00 6.1535196282168600E+00 + 6.1505880202181089E+00 6.1475758939677876E+00 6.1444810892834596E+00 + 6.1413013901675475E+00 6.1380345234774349E+00 6.1346781575660110E+00 + 6.1312299008980942E+00 6.1276873006442703E+00 6.1240478412448338E+00 + 6.1203089429479913E+00 6.1164679603249379E+00 6.1125221807572041E+00 + 6.1084688228971880E+00 6.1043050351048427E+00 6.1000278938592158E+00 + 6.0956344021411999E+00 6.0911214877935524E+00 6.0864860018573275E+00 + 6.0817247168832296E+00 6.0768343252149464E+00 6.0718114372520589E+00 + 6.0666525796933906E+00 6.0613541937505415E+00 6.0559126333446764E+00 + 6.0503241632819940E+00 6.0445849574046342E+00 6.0386910967295799E+00 + 6.0326385675644909E+00 6.0264232596041847E+00 6.0200409640180474E+00 + 6.0134873715191315E+00 6.0067580704191199E+00 5.9998485446721403E+00 + 5.9927541719110087E+00 5.9854702214753166E+00 5.9779918524297235E+00 + 5.9703141115807687E+00 5.9624319314927146E+00 5.9543401285038300E+00 + 5.9460334007436106E+00 5.9375063261566678E+00 5.9287533605377591E+00 + 5.9197688355753231E+00 5.9105469569107081E+00 5.9010818022174956E+00 + 5.8913673193007483E+00 5.8813973242217195E+00 5.8711654994528581E+00 + 5.8606653920674772E+00 5.8498904119650765E+00 5.8388338301395271E+00 + 5.8274887769979236E+00 5.8158482407265621E+00 5.8039050657155977E+00 + 5.7916519510490723E+00 5.7790814490591860E+00 5.7661859639553814E+00 + 5.7529577505323397E+00 5.7393889129642366E+00 5.7254714036890446E+00 + 5.7111970223905644E+00 5.6965574150835350E+00 5.6815440733095208E+00 + 5.6661483334495788E+00 5.6503613761574067E+00 5.6341742259246290E+00 + 5.6175777507780014E+00 5.6005626621205069E+00 5.5831195147201029E+00 + 5.5652387068498452E+00 5.5469104805874663E+00 5.5281249222782876E+00 + 5.5088719631708294E+00 5.4891413802169913E+00 5.4689227970527625E+00 + 5.4482056851623781E+00 5.4269793652132883E+00 5.4052330085773885E+00 + 5.3829556390387125E+00 5.3601361346724223E+00 5.3367632299020373E+00 + 5.3128255177375401E+00 5.2883114521695900E+00 5.2632093507240167E+00 + 5.2375073971697548E+00 5.2111936443531626E+00 5.1842560171573870E+00 + 5.1566823155626667E+00 5.1284602177804928E+00 5.0995772834519277E+00 + 5.0700209568701586E+00 5.0397785701915359E+00 5.0088373466173337E+00 + 4.9771844034895718E+00 4.9448067552584671E+00 4.9116913162819777E+00 + 4.8778249033929670E+00 4.8431942381771949E+00 4.8077859489014454E+00 + 4.7715865720214508E+00 4.7345825531884511E+00 4.6967602476799710E+00 + 4.6581059201718507E+00 4.6186057437561212E+00 4.5782457981115661E+00 + 4.5370120667284848E+00 4.4948904330863568E+00 4.4518666756777545E+00 + 4.4079264617709599E+00 4.3630553398030960E+00 4.3172387302931901E+00 + 4.2704619151709888E+00 4.2227100254163021E+00 4.1739680269093800E+00 + 4.1242207043971222E+00 4.0734526434968359E+00 4.0216482106626854E+00 + 3.9687915310548818E+00 3.9148664642721824E+00 3.8598565779240461E+00 + 3.8037451190393528E+00 3.7465149833362306E+00 3.6881486824036456E+00 + 3.6286283088573041E+00 3.5679354995873345E+00 3.5060513972148026E+00 + 3.4429566099048947E+00 3.3786311697099594E+00 3.3130544895963387E+00 + 3.2462053193269105E+00 3.1780617003229530E+00 3.1086009195606645E+00 + 3.0377994624702862E+00 2.9656329646358754E+00 2.8920761618624140E+00 + 2.8171028378768801E+00 2.7406857684832748E+00 2.6627966604416136E+00 + 2.5834060826551419E+00 2.5024833863742177E+00 2.4199966101279315E+00 + 2.3359123639942383E+00 2.2501956867428472E+00 2.1628098685211499E+00 + 2.0737162315494748E+00 1.9828738624024904E+00 1.8902392930425016E+00 + 1.7957661357363166E+00 1.6994046922252253E+00 1.6011015848018471E+00 + 1.5007995034369523E+00 1.3984372398452776E+00 1.2939503031666413E+00 + 1.1872726076148239E+00 1.0783400266620626E+00 9.6709707380150256E-01 + 8.5350867016243415E-01 7.3757999210448211E-01 6.1938887670439857E-01 + 4.9913731876990014E-01 3.7733847080427957E-01 2.5355795433210621E-01 + 1.2813339279920927E-01 2.7910351090282035E-02 -2.3169269429082647E-02 + -5.2054160544603857E-02 -8.4118240946274347E-02 -1.1842699562929471E-01 + -1.5386349874821811E-01 -1.9026960327038803E-01 -2.2727320427423001E-01 + -2.6443630839600751E-01 -3.0129788458267093E-01 -3.3740497946047066E-01 + -3.7233327455597814E-01 -4.0569910114018459E-01 -4.3716510807868614E-01 + -4.6644156366698408E-01 -4.9328488409418425E-01 -5.1749456639543934E-01 + -5.3890934191511319E-01 -5.5740308686432771E-01 -5.7288082887903768E-01 + -5.8527505765351362E-01 -5.9454246494352958E-01 -6.0066118751478725E-01 + -6.0362859302980210E-01 -6.0345962491812088E-01 -6.0018570317697983E-01 + -5.9385416164086424E-01 -5.8452818797774819E-01 -5.7228722075239247E-01 + -5.5722774876148795E-01 -5.3946445177043301E-01 -5.1913161880789693E-01 + -4.9638478005204967E-01 -4.7140249060512962E-01 -4.4438820854650429E-01 + -4.1557221501515801E-01 -3.8521353016896698E-01 -3.5360178534868703E-01 + -3.2105901839453160E-01 -2.8794032399672914E-01 -2.5462399949210401E-01 + -2.2150122543974235E-01 -1.8897594838567816E-01 -1.5746584493951069E-01 + -1.2740387680071641E-01 -9.9232353683473051E-02 -7.3426556875579627E-02 + -5.0532332249899746E-02 -3.1147924900078294E-02 -1.5907862308353789E-02 + -5.4927717906434921E-03 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 + + + -3.6010697804636436E+01 -3.6010702216159629E+01 -3.6010703643107433E+01 + -3.6010703895273011E+01 -3.6010703928669038E+01 -3.6010703845527686E+01 + -3.6010703681090547E+01 -3.6010703447246421E+01 -3.6010703150911354E+01 + -3.6010702793217888E+01 -3.6010702375674860E+01 -3.6010701896862017E+01 + -3.6010701356568646E+01 -3.6010700752482151E+01 -3.6010700083641119E+01 + -3.6010699347285815E+01 -3.6010698542030411E+01 -3.6010697664849346E+01 + -3.6010696714028164E+01 -3.6010695686340746E+01 -3.6010694579823195E+01 + -3.6010693391049678E+01 -3.6010692117830693E+01 -3.6010690756547014E+01 + -3.6010689304801474E+01 -3.6010687758771653E+01 -3.6010686115843527E+01 + -3.6010684371992625E+01 -3.6010682524387946E+01 -3.6010680568789297E+01 + -3.6010678502145673E+01 -3.6010676319982636E+01 -3.6010674019019369E+01 + -3.6010671594540085E+01 -3.6010669043023498E+01 -3.6010666359491118E+01 + -3.6010663540181014E+01 -3.6010660579830869E+01 -3.6010657474419141E+01 + -3.6010654218394293E+01 -3.6010650807455264E+01 -3.6010647235739256E+01 + -3.6010643498663427E+01 -3.6010639590030785E+01 -3.6010635504954060E+01 + -3.6010631236888237E+01 -3.6010626780623994E+01 -3.6010622129245640E+01 + -3.6010617277209342E+01 -3.6010612217203537E+01 -3.6010606943330302E+01 + -3.6010601447863287E+01 -3.6010595724523533E+01 -3.6010589765147515E+01 + -3.6010583563060742E+01 -3.6010577109630781E+01 -3.6010570397765740E+01 + -3.6010563418340112E+01 -3.6010556163816403E+01 -3.6010548624549109E+01 + -3.6010540792532588E+01 -3.6010532657568348E+01 -3.6010524211158206E+01 + -3.6010515442518326E+01 -3.6010506342625625E+01 -3.6010496900081158E+01 + -3.6010487105310041E+01 -3.6010476946257256E+01 -3.6010466412767549E+01 + -3.6010455492093129E+01 -3.6010444173461380E+01 -3.6010432443395551E+01 + -3.6010420290470016E+01 -3.6010407700435735E+01 -3.6010394661177671E+01 + -3.6010381157630405E+01 -3.6010367176951377E+01 -3.6010352703212959E+01 + -3.6010337722799406E+01 -3.6010322218872943E+01 -3.6010306177003734E+01 + -3.6010289579390587E+01 -3.6010272410742147E+01 -3.6010254652238956E+01 + -3.6010236287680989E+01 -3.6010217297171771E+01 -3.6010197663549349E+01 + -3.6010177365779739E+01 -3.6010156385685548E+01 -3.6010134701030829E+01 + -3.6010112292562511E+01 -3.6010089136775946E+01 -3.6010065213283255E+01 + -3.6010040497237156E+01 -3.6010014967049457E+01 -3.6009988596456374E+01 + -3.6009961362600215E+01 -3.6009933237719764E+01 -3.6009904197617075E+01 + -3.6009874212947771E+01 -3.6009843258098826E+01 -3.6009811302052718E+01 + -3.6009778317700096E+01 -3.6009744272256945E+01 -3.6009709137031642E+01 + -3.6009672877374385E+01 -3.6009635462921693E+01 -3.6009596857052870E+01 + -3.6009557027638024E+01 -3.6009515935974420E+01 -3.6009473548064193E+01 + -3.6009429823004972E+01 -3.6009384724829140E+01 -3.6009338210308137E+01 + -3.6009290241390133E+01 -3.6009240772393319E+01 -3.6009189763063333E+01 + -3.6009137165125829E+01 -3.6009082935999572E+01 -3.6009027024671695E+01 + -3.6008969386101974E+01 -3.6008909966386234E+01 -3.6008848717887425E+01 + -3.6008785583643665E+01 -3.6008720513275499E+01 -3.6008653446594622E+01 + -3.6008584330322009E+01 -3.6008513100860078E+01 -3.6008439701868539E+01 + -3.6008364066149895E+01 -3.6008286134126855E+01 -3.6008205834800968E+01 + -3.6008123105177368E+01 -3.6008037870240948E+01 -3.6007950063386396E+01 + -3.6007859605358085E+01 -3.6007766425736961E+01 -3.6007670440787393E+01 + -3.6007571576060450E+01 -3.6007469743091789E+01 -3.6007364863175901E+01 + -3.6007256842852421E+01 -3.6007145598920395E+01 -3.6007031032643397E+01 + -3.6006913056072058E+01 -3.6006791564898656E+01 -3.6006666466156858E+01 + -3.6006537649655542E+01 -3.6006405017130675E+01 -3.6006268452177899E+01 + -3.6006127850935876E+01 -3.6005983090439067E+01 -3.6005834060915802E+01 + -3.6005680632472746E+01 -3.6005522689092857E+01 -3.6005360093567297E+01 + -3.6005192723285802E+01 -3.6005020433312374E+01 -3.6004843094072150E+01 + -3.6004660552472139E+01 -3.6004472671580970E+01 -3.6004279289691006E+01 + -3.6004080262102249E+01 -3.6003875418011091E+01 -3.6003664604512522E+01 + -3.6003447641198647E+01 -3.6003224366498301E+01 -3.6002994589861999E+01 + -3.6002758140567742E+01 -3.6002514817358019E+01 -3.6002264439845703E+01 + -3.6002006795465768E+01 -3.6001741693625775E+01 -3.6001468909822655E+01 + -3.6001188242683710E+01 -3.6000899455102108E+01 -3.6000602334322750E+01 + -3.6000296629930055E+01 -3.5999982117147418E+01 -3.5999658531508146E+01 + -3.5999325635542789E+01 -3.5998983149948330E+01 -3.5998630823850903E+01 + -3.5998268362284179E+01 -3.5997895500218966E+01 -3.5997511926153017E+01 + -3.5997117360108739E+01 -3.5996711473123987E+01 -3.5996293969440373E+01 + -3.5995864501661636E+01 -3.5995422757361730E+01 -3.5994968369686497E+01 + -3.5994501008610541E+01 -3.5994020286735235E+01 -3.5993525855452738E+01 + -3.5993017305675963E+01 -3.5992494269176262E+01 -3.5991956313968878E+01 + -3.5991403051108335E+01 -3.5990834024438549E+01 -3.5990248823138018E+01 + -3.5989646965534433E+01 -3.5989028017710282E+01 -3.5988391471055508E+01 + -3.5987736867265426E+01 -3.5987063669296312E+01 -3.5986371393095467E+01 + -3.5985659471601501E+01 -3.5984927393577308E+01 -3.5984174560277744E+01 + -3.5983400431763258E+01 -3.5982604375842051E+01 -3.5981785822273082E+01 + -3.5980944103560851E+01 -3.5980078617471328E+01 -3.5979188659245089E+01 + -3.5978273592872384E+01 -3.5977332674261014E+01 -3.5976365231743287E+01 + -3.5975370479711472E+01 -3.5974347708852818E+01 -3.5973296089742597E+01 + -3.5972214873326195E+01 -3.5971103183932023E+01 -3.5969960230550285E+01 + -3.5968785088700059E+01 -3.5967576923084494E+01 -3.5966334757706505E+01 + -3.5965057710515403E+01 -3.5963744751151729E+01 -3.5962394948209649E+01 + -3.5961007213955270E+01 -3.5959580564886110E+01 -3.5958113852723287E+01 + -3.5956606038969930E+01 -3.5955055911454515E+01 -3.5953462373632838E+01 + -3.5951824145912248E+01 -3.5950140070476472E+01 -3.5948408796590734E+01 + -3.5946629101766945E+01 -3.5944799560202753E+01 -3.5942918881149922E+01 + -3.5940985559601948E+01 -3.5938998232765897E+01 -3.5936955312069152E+01 + -3.5934855358680799E+01 -3.5932696695862305E+01 -3.5930477804534242E+01 + -3.5928196914944827E+01 -3.5925852423324720E+01 -3.5923442461799453E+01 + -3.5920965337223009E+01 -3.5918419078213702E+01 -3.5915801897310295E+01 + -3.5913111713949370E+01 -3.5910346641142873E+01 -3.5907504483167465E+01 + -3.5904583248015662E+01 -3.5901580618504937E+01 -3.5898494491817253E+01 + -3.5895322422676124E+01 -3.5892062191346518E+01 -3.5888711217471062E+01 + -3.5885267157963860E+01 -3.5881727290026824E+01 -3.5878089140438668E+01 + -3.5874349836216851E+01 -3.5870506766857844E+01 -3.5866556901037036E+01 + -3.5862497483438908E+01 -3.5858325315817105E+01 -3.5854037490108752E+01 + -3.5849630632116401E+01 -3.5845101672675590E+01 -3.5840447052138330E+01 + -3.5835663531438534E+01 -3.5830747355492704E+01 -3.5825695106069496E+01 + -3.5820502822145606E+01 -3.5815166896573309E+01 -3.5809683151359252E+01 + -3.5804047780177889E+01 -3.5798256376468487E+01 -3.5792304923936356E+01 + -3.5786188775278191E+01 -3.5779903692879458E+01 -3.5773444775915429E+01 + -3.5766807553516344E+01 -3.5759986857927686E+01 -3.5752977972490378E+01 + -3.5745775448454111E+01 -3.5738374310200058E+01 -3.5730768813247415E+01 + -3.5722953709195494E+01 -3.5714922942392711E+01 -3.5706670977151980E+01 + -3.5698191430497133E+01 -3.5689478464249831E+01 -3.5680525351208985E+01 + -3.5671325934772504E+01 -3.5661873125860716E+01 -3.5652160432770607E+01 + -3.5642180386111207E+01 -3.5631926141637010E+01 -3.5621389830429031E+01 + -3.5610564237474073E+01 -3.5599441074312779E+01 -3.5588012736149615E+01 + -3.5576270494172938E+01 -3.5564206333986817E+01 -3.5551811064822871E+01 + -3.5539076242066251E+01 -3.5525992190598771E+01 -3.5512550014174636E+01 + -3.5498739530173111E+01 -3.5484551368519945E+01 -3.5469974815206719E+01 + -3.5455000003383255E+01 -3.5439615663082790E+01 -3.5423811407015123E+01 + -3.5407575384062525E+01 -3.5390896662175493E+01 -3.5373762783354927E+01 + -3.5356162245890722E+01 -3.5338081958739764E+01 -3.5319509825152146E+01 + -3.5300432094583229E+01 -3.5280836049515706E+01 -3.5260707253320639E+01 + -3.5240032341798312E+01 -3.5218796165740095E+01 -3.5196984688373007E+01 + -3.5174582021753224E+01 -3.5151573430914013E+01 -3.5127942263684560E+01 + -3.5103673061870552E+01 -3.5078748384608069E+01 -3.5053152026410622E+01 + -3.5026865734749954E+01 -3.4999872534190601E+01 -3.4972153339604738E+01 + -3.4943690384924615E+01 -3.4914463734152548E+01 -3.4884454812523217E+01 + -3.4853642818343339E+01 -3.4822008353467488E+01 -3.4789529740009392E+01 + -3.4756186746061694E+01 -3.4721956812419144E+01 -3.4686818868398682E+01 + -3.4650749474931615E+01 -3.4613726724143959E+01 -3.4575726306557115E+01 + -3.4536725486722446E+01 -3.4496699103793951E+01 -3.4455623614052577E+01 + -3.4413473035756276E+01 -3.4370223047769372E+01 -3.4325846891434480E+01 + -3.4280319512722087E+01 -3.4233613435862786E+01 -3.4185702934499510E+01 + -3.4136559893970471E+01 -3.4086157994810236E+01 -3.4034468582924511E+01 + -3.3981464846487270E+01 -3.3927117715748935E+01 -3.3871400011878649E+01 + -3.3814282400834678E+01 -3.3755737490013878E+01 -3.3695735863461678E+01 + -3.3634250099302498E+01 -3.3571250916568502E+01 -3.3506711083295322E+01 + -3.3440601708403520E+01 -3.3372896007058223E+01 -3.3303565774300445E+01 + -3.3232584970790711E+01 -3.3159926418270835E+01 -3.3085565165146924E+01 + -3.3009475447311416E+01 -3.2931633789205797E+01 -3.2852016277030629E+01 + -3.2770601346986091E+01 -3.2687367421441408E+01 -3.2602295332022216E+01 + -3.2515366372859980E+01 -3.2426564302207304E+01 -3.2335873870462386E+01 + -3.2243282340145313E+01 -3.2148778550055582E+01 -3.2052353889932192E+01 + -3.1954001966008786E+01 -3.1853718963831103E+01 -3.1751503984819522E+01 + -3.1647358728995933E+01 -3.1541288577364348E+01 -3.1433301526300315E+01 + -3.1323410097173234E+01 -3.1211629456524964E+01 -3.1097980242807502E+01 + -3.0982485811657362E+01 -3.0865176079611643E+01 -3.0746083840438342E+01 + -3.0625249734050378E+01 -3.0502717581810291E+01 -3.0378540584125147E+01 + -3.0252775600107675E+01 -3.0125490626539911E+01 -2.9996757846614102E+01 + -2.9866662260750942E+01 -2.9735293016071061E+01 -2.9602752538373014E+01 + -2.9469144810679385E+01 -2.9334583015986727E+01 -2.9199171344684373E+01 + -2.9063005952862529E+01 -2.8926142044094572E+01 -2.8788575799841428E+01 + -2.8650178170951239E+01 -2.8510523907772924E+01 -2.8370133811124489E+01 + -2.8228773014256547E+01 -2.8059696787529852E+01 -2.7839081803494782E+01 + -2.7593993016537755E+01 -2.7349939113113059E+01 -2.7106117477520225E+01 + -2.6861561496921023E+01 -2.6616259989433136E+01 -2.6370005792293369E+01 + -2.6122522044292602E+01 -2.5873526029797304E+01 -2.5622738865477594E+01 + -2.5369926287231614E+01 -2.5114890037441096E+01 -2.4857492509574151E+01 + -2.4597638724712176E+01 -2.4335292039539745E+01 -2.4070453613403259E+01 + -2.3803173350270519E+01 -2.3533530810301201E+01 -2.3261642979347730E+01 + -2.2987648696278963E+01 -2.2711713468008057E+01 -2.2434018621607485E+01 + -2.2154762804658045E+01 -2.1874156718547798E+01 -2.1592420713032233E+01 + -2.1309785764581246E+01 -2.1026486470220036E+01 -2.0742768769153972E+01 + -2.0458877612020160E+01 -2.0175071762828381E+01 -1.9891605474456533E+01 + -1.9608750552864354E+01 -1.9326771517070043E+01 -1.9045954950105084E+01 + -1.8766577856008567E+01 -1.8488944143054955E+01 -1.8213346197221700E+01 + -1.7940108124133172E+01 -1.7669544202572816E+01 -1.7401992068661041E+01 + -1.7137798939218371E+01 -1.6877325403110639E+01 -1.6620946472162146E+01 + -1.6369053030022595E+01 -1.6122045963257381E+01 -1.5880359698497232E+01 + -1.5644499848124081E+01 -1.5415024974945190E+01 -1.5192530515322233E+01 + -1.4977658540217647E+01 -1.4770468404342040E+01 -1.4571493087902949E+01 + -1.4375202886707381E+01 -1.4181561372435759E+01 -1.3990532635658287E+01 + -1.3802081256632922E+01 -1.3616172314977925E+01 -1.3432771366155153E+01 + -1.3251844447177529E+01 -1.3073358057559268E+01 -1.2897279162005344E+01 + -1.2723575174840425E+01 -1.2552213960437552E+01 -1.2383163820334083E+01 + -1.2216393491996957E+01 -1.2051872137999158E+01 -1.1889569343586855E+01 + -1.1729455107426688E+01 -1.1571499838332077E+01 -1.1415674347203336E+01 + -1.1261949843183638E+01 -1.1110297926503888E+01 -1.0960690584270152E+01 + -1.0813100183996147E+01 -1.0667499469170529E+01 -1.0523861553315278E+01 + -1.0382159915440132E+01 -1.0242368394507952E+01 -1.0104461184852248E+01 + -9.9684128309629294E+00 -9.8341982229198983E+00 -9.7017925914366341E+00 + -9.5711715033457470E+00 -9.4423108568556735E+00 -9.3151868768505626E+00 + -9.1897761106913087E+00 -9.0660554240201900E+00 -8.9440019961003863E+00 + -8.8235933155316246E+00 -8.7048071760251933E+00 -8.5876216722375140E+00 + -8.4720151956614611E+00 -8.3579664305745229E+00 -8.2454543500431221E+00 + -8.1344582119821851E+00 -8.0249575552692622E+00 -7.9169321959123220E+00 + -7.8103622232705705E+00 -7.7052279963274826E+00 -7.6015101400152814E+00 + -7.4991895415902450E+00 -7.3982473470579393E+00 -7.2986649576478841E+00 + -7.2004240263367789E+00 -7.1035064544197271E+00 -7.0078943881286611E+00 + -6.9135702152974323E+00 -6.8205165620728083E+00 -6.7287162896707686E+00 + -6.6381524911774950E+00 -6.5488084883943216E+00 -6.4606678287261650E+00 + -6.3737142821127231E+00 -6.2879318380018718E+00 -6.2033047023646954E+00 + -6.1198172947514928E+00 -6.0374542453882762E+00 -5.9562003923131339E+00 + -5.8760407785519275E+00 -5.7969606493327275E+00 -5.7189454493385155E+00 + -5.6419808199975652E+00 -5.5660525968109953E+00 -5.4911468067169737E+00 + -5.4172496654910338E+00 -5.3443475751820637E+00 -5.2724271215833935E+00 + -5.2014750717385674E+00 -5.1314783714812240E+00 -5.0624241430087062E+00 + -4.9942996824888812E+00 -4.9270924576996951E+00 -4.8607901057010610E+00 + -4.7953804305385459E+00 -4.7308514009785165E+00 -4.6671911482742239E+00 + -4.6043879639624352E+00 -4.5424302976902027E+00 -4.4813067550712828E+00 + -4.4210060955718884E+00 -4.3615172304252967E+00 -4.3028292205749619E+00 + -4.2449312746456638E+00 -4.1878127469424067E+00 -4.1314631354765972E+00 + -4.0758720800191668E+00 -4.0210293601802736E+00 -3.9669248935151553E+00 + -3.9135487336558548E+00 -3.8608910684684092E+00 -3.8089422182351620E+00 + -3.7576926338618377E+00 -3.7071328951090758E+00 -3.6572537088480437E+00 + -3.6080459073398203E+00 -3.5595004465382258E+00 -3.5116084044157447E+00 + -3.4643609793122532E+00 -3.4177494883062423E+00 -3.3717653656081978E+00 + -3.3264001609758398E+00 -3.2816455381509435E+00 -3.2374932733174200E+00 + -3.1939352535803751E+00 -3.1509634754658591E+00 -3.1085700434410066E+00 + -3.0667471684543091E+00 -3.0254871664957461E+00 -2.9847824571764545E+00 + -2.9446255623277371E+00 -2.9050091046190940E+00 -2.8659258061950337E+00 + -2.8273684873304092E+00 -2.7893300651040147E+00 -2.7518035520901982E+00 + -2.7147820550682638E+00 -2.6782587737493531E+00 -2.6422269995206578E+00 + -2.6066801142066600E+00 -2.5716115888471869E+00 -2.5370149824920563E+00 + -2.5028839410120720E+00 -2.4692121959261613E+00 -2.4359935632444154E+00 + -2.4032219423268311E+00 -2.3708913147575426E+00 -2.3389957432342929E+00 + -2.3075293704729920E+00 -2.2764864181271229E+00 -2.2458611857217909E+00 + -2.2156480496022297E+00 -2.1858414618965614E+00 -2.1564359494926113E+00 + -2.1274261130285881E+00 -2.0988066258974607E+00 -2.0705722332647851E+00 + -2.0427177510998815E+00 -2.0152380652201090E+00 -1.9881281303480969E+00 + -1.9613829691817448E+00 -1.9349976714768111E+00 -1.9089673931419358E+00 + -1.8832873553459037E+00 -1.8579528436370201E+00 -1.8329592070743665E+00 + -1.8083018573708605E+00 -1.7839762680478868E+00 -1.7599779736013839E+00 + -1.7363025686792091E+00 -1.7129457072696408E+00 -1.6899031019008584E+00 + -1.6671705228512521E+00 -1.6447437973704304E+00 -1.6226188089107367E+00 + -1.6007914963691925E+00 -1.5792578533396759E+00 -1.5580139273752194E+00 + -1.5370558192602866E+00 -1.5163796822928834E+00 -1.4959817215763846E+00 + -1.4758581933209276E+00 -1.4560054041542649E+00 -1.4364197104419101E+00 + -1.4170975176164977E+00 -1.3980352795161957E+00 -1.3792294977320638E+00 + -1.3606767209642328E+00 -1.3423735443867815E+00 -1.3243166090212022E+00 + -1.3065026011183241E+00 -1.2889282515486058E+00 -1.2715903352006366E+00 + -1.2544856703877922E+00 -1.2376111182628913E+00 -1.2209635822407645E+00 + -1.2045400074286199E+00 -1.1883373800641066E+00 -1.1723527269609648E+00 + -1.1565831149621628E+00 -1.1410256504004277E+00 -1.1256774785660419E+00 + -1.1105357831818476E+00 -1.0955977858853265E+00 -1.0808607457176782E+00 + -1.0663219586197954E+00 -1.0519787569350421E+00 -1.0378285089187469E+00 + -1.0238686182543144E+00 -1.0100965235758763E+00 -9.9650969799737132E-01 + -9.8310564864799566E-01 -9.6988191621391562E-01 -9.5683607448616659E-01 + -9.4396572991465499E-01 -9.3126852116817704E-01 -9.1874211870037414E-01 + -9.0638422432154875E-01 -8.9419257077625025E-01 -8.8216492132657343E-01 + -8.7029906934106094E-01 -8.5859283788916729E-01 -8.4704407934118719E-01 + -8.3565067497358070E-01 -8.2441053457962488E-01 -8.1332159608531518E-01 + -8.0238182517044820E-01 -7.9158921489481537E-01 -7.8094178532944269E-01 + -7.7043758319279210E-01 -7.6007468149188273E-01 -7.4985117916824429E-01 + -7.3976520074864660E-01 -7.2981489600053917E-01 -7.1999843959213783E-01 + -7.1031403075709276E-01 -7.0075989296367824E-01 -6.9133427358844945E-01 + -6.8203544359428481E-01 -6.7286169721278333E-01 -6.6381135163093652E-01 + -6.5488274668202662E-01 -6.4607424454069007E-01 -6.3738422942209427E-01 + -6.2881110728516620E-01 -6.2035330553982404E-01 -6.1200927275815686E-01 + -6.0377747838948892E-01 -5.9565641247929468E-01 -5.8764458539189679E-01 + -5.7974052753690153E-01 -5.7194278909932350E-01 -5.6424993977334470E-01 + -5.5666056849966428E-01 -5.4917328320638448E-01 -5.4178671055339478E-01 + -5.3449949568019017E-01 -5.2731030195709760E-01 -5.2021781073984963E-01 + -5.1322072112746620E-01 -5.0631774972339827E-01 -4.9950763039989071E-01 + -4.9278911406551840E-01 -4.8616096843585593E-01 -4.7962197780723870E-01 + -4.7317094283356537E-01 -4.6680668030611466E-01 -4.6052802293632511E-01 + -4.5433381914150123E-01 -4.4822293283340703E-01 -4.4219424320970668E-01 + -4.3624664454821577E-01 -4.3037904600392285E-01 -4.2459037140874523E-01 + -4.1887955907398533E-01 -4.1324556159544079E-01 -4.0768734566114689E-01 + -4.0220389186170435E-01 -3.9679419450316328E-01 -3.9145726142242709E-01 + -3.8619211380514207E-01 -3.8099778600604028E-01 -3.7587332537170115E-01 + -3.7081779206570337E-01 -3.6583025889612480E-01 -3.6090981114537207E-01 + -3.5605554640229875E-01 -3.5126657439658471E-01 -3.4654201683534602E-01 + -3.4188100724194498E-01 -3.3728269079697043E-01 -3.3274622418135952E-01 + -3.2827077542163424E-01 -3.2385552373721604E-01 -3.1949965938980246E-01 + -3.1520238353476909E-01 -3.1096290807457255E-01 -3.0678045551412736E-01 + -3.0265425881813035E-01 -2.9858356127030611E-01 -2.9456761633454631E-01 + -2.9060568751792215E-01 -2.8669704823553510E-01 -2.8284098167719324E-01 + -2.7903678067587889E-01 -2.7528374757798868E-01 -2.7158119411532000E-01 + -2.6792844127878029E-01 -2.6432481919379780E-01 -2.6076966699740811E-01 + -2.5726233271699800E-01 -2.5380217315067666E-01 -2.5038855374926289E-01 + -2.4702084849985720E-01 -2.4369843981098324E-01 -2.4042071839927406E-01 + -2.3718708317768400E-01 -2.3399694114520622E-01 -2.3084970727807302E-01 + -2.2774480442242362E-01 -2.2468166318841234E-01 -2.2165972184574589E-01 + -2.1867842622062536E-01 + + + -8.2249818008487328E+00 -8.2497546579429013E+00 -8.2406757532680235E+00 + -8.2346776907225081E+00 -8.2299278225452195E+00 -8.1858282493154793E+00 + -8.1798283984622131E+00 -8.1776807084345240E+00 -8.1741284639439318E+00 + -8.1710905483217005E+00 -8.1681738106070298E+00 -8.1653270585316573E+00 + -8.1625512412040919E+00 -8.1598260041545601E+00 -8.1571425275871654E+00 + -8.1544905341883975E+00 -8.1518625596679417E+00 -8.1492524086409155E+00 + -8.1466548244783752E+00 -8.1440653818919788E+00 -8.1414802709730392E+00 + -8.1388961905772010E+00 -8.1363102489715793E+00 -8.1337198903115215E+00 + -8.1311228367925033E+00 -8.1285170422010324E+00 -8.1259006548095858E+00 + -8.1232719871996686E+00 -8.1206294915917425E+00 -8.1179717395002005E+00 + -8.1152974048325301E+00 -8.1126052497555943E+00 -8.1098941127997968E+00 + -8.1071628987875410E+00 -8.1044105702584766E+00 -8.1016361401307542E+00 + -8.0988386653889126E+00 -8.0960172416293847E+00 -8.0931709983259914E+00 + -8.0902990947030595E+00 -8.0874007161237120E+00 -8.0844750709166870E+00 + -8.0815213875782561E+00 -8.0785389122960947E+00 -8.0755269067505910E+00 + -8.0724846461560897E+00 -8.0694114175103113E+00 -8.0663065180249749E+00 + -8.0631692537147561E+00 -8.0599989381247639E+00 -8.0567948911798108E+00 + -8.0535564381408609E+00 -8.0502829086561398E+00 -8.0469736358960144E+00 + -8.0436279557622417E+00 -8.0402452061632168E+00 -8.0368247263482662E+00 + -8.0333658562944148E+00 -8.0298679361402776E+00 -8.0263303056621886E+00 + -8.0227523037881703E+00 -8.0191332681460903E+00 -8.0154725346425124E+00 + -8.0117694370693844E+00 -8.0080233067357920E+00 -8.0042334721225004E+00 + -8.0003992585571577E+00 -7.9965199879082318E+00 -7.9925949782960517E+00 + -7.9886235438194202E+00 -7.9846049942964195E+00 -7.9805386350181937E+00 + -7.9764237665146585E+00 -7.9722596843310605E+00 -7.9680456788145575E+00 + -7.9637810349099940E+00 -7.9594650319641236E+00 -7.9550969435376171E+00 + -7.9506760372243042E+00 -7.9462015744770271E+00 -7.9416728104396634E+00 + -7.9370889937848608E+00 -7.9324493665570772E+00 -7.9277531640205376E+00 + -7.9229996145117898E+00 -7.9181879392965477E+00 -7.9133173524305551E+00 + -7.9083870606241859E+00 -7.9033962631105927E+00 -7.8983441515171560E+00 + -7.8932299097400689E+00 -7.8880527138218950E+00 -7.8828117318319197E+00 + -7.8775061237491553E+00 -7.8721350413479216E+00 -7.8666976280857943E+00 + -7.8611930189939514E+00 -7.8556203405696889E+00 -7.8499787106711487E+00 + -7.8442672384140826E+00 -7.8384850240706774E+00 -7.8326311589703375E+00 + -7.8267047254023936E+00 -7.8207047965207090E+00 -7.8146304362501242E+00 + -7.8084806991947762E+00 -7.8022546305481848E+00 -7.7959512660051651E+00 + -7.7895696316755583E+00 -7.7831087439997049E+00 -7.7765676096657703E+00 + -7.7699452255288497E+00 -7.7632405785318950E+00 -7.7564526456284817E+00 + -7.7495803937074399E+00 -7.7426227795193689E+00 -7.7355787496050548E+00 + -7.7284472402258633E+00 -7.7212271772960870E+00 -7.7139174763173495E+00 + -7.7065170423150748E+00 -7.6990247697770648E+00 -7.6914395425942770E+00 + -7.6837602340038043E+00 -7.6759857065341714E+00 -7.6681148119529645E+00 + -7.6601463912168812E+00 -7.6520792744242847E+00 -7.6439122807702873E+00 + -7.6356442185044937E+00 -7.6272738848914532E+00 -7.6188000661738986E+00 + -7.6102215375388678E+00 -7.6015370630868198E+00 -7.5927453958037674E+00 + -7.5838452775366205E+00 -7.5748354389717312E+00 -7.5657145996168405E+00 + -7.5564814677864627E+00 -7.5471347405908427E+00 -7.5376731039285954E+00 + -7.5280952324831460E+00 -7.5183997897230803E+00 -7.5085854279065325E+00 + -7.4986507880897193E+00 -7.4885945001397802E+00 -7.4784151827520295E+00 + -7.4681114434717424E+00 -7.4576818787206776E+00 -7.4471250738283823E+00 + -7.4364396030684983E+00 -7.4256240297002085E+00 -7.4146769060149236E+00 + -7.4035967733884398E+00 -7.3923821623386647E+00 -7.3810315925890988E+00 + -7.3695435731382615E+00 -7.3579166023351545E+00 -7.3461491679610562E+00 + -7.3342397473176861E+00 -7.3221868073220477E+00 -7.3099888046080190E+00 + -7.2976441856349741E+00 -7.2851513868035793E+00 -7.2725088345789271E+00 + -7.2597149456212939E+00 -7.2467681269246347E+00 -7.2336667759630737E+00 + -7.2204092808455611E+00 -7.2069940204789731E+00 -7.1934193647397651E+00 + -7.1796836746545090E+00 -7.1657853025894678E+00 -7.1517225924494285E+00 + -7.1374938798860983E+00 -7.1230974925161785E+00 -7.1085317501494867E+00 + -7.0937949650272065E+00 -7.0788854420706944E+00 -7.0638014791409161E+00 + -7.0485413673088546E+00 -7.0331033911371508E+00 -7.0174858289731379E+00 + -7.0016869532536496E+00 -6.9857050308217508E+00 -6.9695383232557209E+00 + -6.9531850872105414E+00 -6.9366435747721100E+00 -6.9199120338245326E+00 + -6.9029887084306534E+00 -6.8858718392262075E+00 -6.8685596638277859E+00 + -6.8510504172549416E+00 -6.8333423323666489E+00 -6.8154336403124844E+00 + -6.7973225709987259E+00 -6.7790073535696722E+00 -6.7604862169044964E+00 + -6.7417573901298491E+00 -6.7228191031485709E+00 -6.7036695871846899E+00 + -6.6843070753450995E+00 -6.6647298031980755E+00 -6.6449360093690091E+00 + -6.6249239361535794E+00 -6.6046918301486128E+00 -6.5842379429009883E+00 + -6.5635605315747343E+00 -6.5426578596366980E+00 -6.5215281975609702E+00 + -6.5001698235523531E+00 -6.4785810242891326E+00 -6.4567600956853601E+00 + -6.4347053436729631E+00 -6.4124150850038140E+00 -6.3898876480721229E+00 + -6.3671213737572367E+00 -6.3441146162871833E+00 -6.3208657441231013E+00 + -6.2973731408647540E+00 -6.2736352061773974E+00 -6.2496503567400463E+00 + -6.2254170272154967E+00 -6.2009336712420726E+00 -6.1761987624474131E+00 + -6.1512107954843165E+00 -6.1259682870888579E+00 -6.1004697771608525E+00 + -6.0747138298667425E+00 -6.0486990347650638E+00 -6.0224240079544709E+00 + -5.9958873932444732E+00 -5.9690878633488103E+00 -5.9420241211016114E+00 + -5.9146949006962002E+00 -5.8870989689466526E+00 -5.8592351265719946E+00 + -5.8311022095029807E+00 -5.8026990902114504E+00 -5.7740246790620118E+00 + -5.7450779256861120E+00 -5.7158578203781598E+00 -5.6863633955136637E+00 + -5.6565937269891196E+00 -5.6265479356834014E+00 -5.5962251889404619E+00 + -5.5656247020729870E+00 -5.5347457398867679E+00 -5.5035876182253558E+00 + -5.4721497055346955E+00 -5.4404314244473095E+00 -5.4084322533855707E+00 + -5.3761517281836202E+00 -5.3435894437273959E+00 -5.3107450556122657E+00 + -5.2776182818176203E+00 -5.2442089043978992E+00 -5.2105167711893019E+00 + -5.1765417975315593E+00 -5.1422839680040271E+00 -5.1077433381752746E+00 + -5.0729200363654474E+00 -5.0378142654204616E+00 -5.0024263044972059E+00 + -4.9667565108587750E+00 -4.9308053216787879E+00 -4.8945732558537216E+00 + -4.8580609158222501E+00 -4.8212689893904574E+00 -4.7841982515617456E+00 + -4.7468495663703019E+00 -4.7092238887167923E+00 -4.6713222662051033E+00 + -4.6331458409787034E+00 -4.5946958515552785E+00 -4.5559736346582573E+00 + -4.5169806270436794E+00 -4.4777183673209642E+00 -4.4381884977659452E+00 + -4.3983927661246520E+00 -4.3583330274060970E+00 -4.3180112456624276E+00 + -4.2774294957546939E+00 -4.2365899651024073E+00 -4.1954949554151213E+00 + -4.1541468844041018E+00 -4.1125482874722028E+00 -4.0707018193799716E+00 + -4.0286102558859991E+00 -3.9862764953594381E+00 -3.9437035603626476E+00 + -3.9008945992018003E+00 -3.8578528874433000E+00 -3.8145818293938301E+00 + -3.7710849595417386E+00 -3.7273659439575502E+00 -3.6834285816512100E+00 + -3.6392768058838030E+00 -3.5949146854312604E+00 -3.5503464257977293E+00 + -3.5055763703760836E+00 -3.4606090015531472E+00 -3.4154489417570493E+00 + -3.3701009544442391E+00 -3.3245699450235362E+00 -3.2788609617146247E+00 + -3.2329791963383698E+00 -3.1869299850362700E+00 -3.1407188089163975E+00 + -3.0943512946230762E+00 -3.0478332148276013E+00 -3.0011704886371828E+00 + -2.9543691819193838E+00 -2.9074355075392120E+00 -2.8603758255060248E+00 + -2.8131966430274362E+00 -2.7659046144672743E+00 -2.7185065412047664E+00 + -2.6710093713919876E+00 -2.6234201996066431E+00 -2.5757462663972159E+00 + -2.5279949577175178E+00 -2.4801738042476331E+00 -2.4322904805982426E+00 + -2.3843528043952960E+00 -2.3363687352419853E+00 -2.2883463735549632E+00 + -2.2402939592717370E+00 -2.1922198704261615E+00 -2.1441326215889234E+00 + -2.0960408621699682E+00 -2.0479533745797469E+00 -1.9998790722462283E+00 + -1.9518269974845992E+00 -1.9038063192165853E+00 -1.8558263305364100E+00 + -1.8078964461203588E+00 -1.7600261994770392E+00 -1.7122252400354090E+00 + -1.6645033300677949E+00 -1.6168703414451320E+00 -1.5693362522218015E+00 + -1.5219111430475531E+00 -1.4746051934041093E+00 -1.4274286776642631E+00 + -1.3803919609714170E+00 -1.3335054949377441E+00 -1.2867798131594155E+00 + -1.2402255265475541E+00 -1.1938533184739590E+00 -1.1476739397309195E+00 + -1.1016982033048646E+00 -1.0559369789639739E+00 -1.0104011876603738E+00 + -9.6510179574800059E-01 -9.2004980901776967E-01 -8.7525626655225408E-01 + -8.3073223440267152E-01 -7.8648879909163294E-01 -7.4253706094574290E-01 + -6.9888812726283545E-01 -6.5555310531928901E-01 -6.1254309522357797E-01 + -5.6986918262285113E-01 -5.2754243126997824E-01 -4.8557387545908753E-01 + -4.4397451233811785E-01 -4.0275529410736011E-01 -3.6192712011323663E-01 + -3.2150082884675180E-01 -2.8148718985602428E-01 -2.4189689558209354E-01 + -2.0274055312673800E-01 -1.6402867596029713E-01 -1.2577167557643743E-01 + -8.7979853099376698E-02 -5.0663390847257413E-02 -1.3832343853062500E-02 + 2.2503368658339875E-02 5.8333971841824352E-02 9.3649843861142792E-02 + 1.2844152458914224E-01 1.6269972439815916E-01 1.9641533306602979E-01 + 2.2957942883035246E-01 2.6218328763167653E-01 2.9421839259505544E-01 + 3.2567644380866850E-01 3.5654936846756352E-01 3.8682933145927345E-01 + 4.1650874647506414E-01 4.4558028773423208E-01 4.7403690240701868E-01 + 5.0187182381135320E-01 5.2907858543612007E-01 5.5565103580452690E-01 + 5.8158335413072604E-01 6.0687006663652820E-01 6.3150606327951386E-01 + 6.5548661449844126E-01 6.7880738741030200E-01 7.0146446070610191E-01 + 7.2345433730797848E-01 7.4477395369639110E-01 7.6542068472848779E-01 + 7.8539234278747372E-01 8.0468717026543957E-01 8.2330382471465813E-01 + 8.4124135650947418E-01 8.5849917951788501E-01 8.7507703603225362E-01 + 8.9097495796737780E-01 9.0619322699851113E-01 9.2073233677523370E-01 + 9.3459296051425622E-01 9.4777592707726099E-01 9.6028220805181719E-01 + 9.7211291740264016E-01 9.8326932404028722E-01 9.9375287632289044E-01 + 1.0035652362665408E+00 1.0127083202991500E+00 1.0211843429102354E+00 + 1.0289958595899438E+00 1.0361458059661430E+00 1.0426375308938647E+00 + 1.0484748222334883E+00 1.0536619249869124E+00 1.0582035522103146E+00 + 1.0621048896236056E+00 1.0653715950902187E+00 1.0680097941894848E+00 + 1.0700260730094473E+00 1.0714274691122394E+00 1.0722214614170966E+00 + 1.0724159595422820E+00 1.0720192929667549E+00 1.0710402002241732E+00 + 1.0694878182272798E+00 1.0673716717370989E+00 1.0647016629341046E+00 + 1.0614880610124917E+00 1.0577414916992234E+00 1.0534729265925729E+00 + 1.0486936722170257E+00 1.0434153587000135E+00 1.0376499279887716E+00 + 1.0314096215410065E+00 1.0247069674396030E+00 1.0175547668983702E+00 + 1.0099660801418759E+00 1.0019542116573932E+00 9.9353269483036954E-01 + 9.8471527598649677E-01 9.7551589787336079E-01 9.6594868262271016E-01 + 9.5602791424083455E-01 9.4576802067940902E-01 9.3518355554270916E-01 + 9.2428917948943268E-01 9.1309964138873734E-01 9.0162975929062517E-01 + 8.8989440127064701E-01 8.7790846620825769E-01 8.6568686455699950E-01 + 8.5324449916330047E-01 8.4059624618894546E-01 8.2775693619043766E-01 + 8.1474133540640692E-01 8.0156412730210047E-01 7.8823989441775899E-01 + 7.7478310056537925E-01 7.6120807341603192E-01 7.4752898751749308E-01 + 7.3375984777951975E-01 7.1991447346163884E-01 7.0600648269580979E-01 + 6.9204927757382595E-01 6.7805602982675561E-01 6.6403966712119300E-01 + 6.5001285999450009E-01 6.3598800944869383E-01 6.2197723522002979E-01 + 6.0799236473881157E-01 5.9404492279141119E-01 5.8014612189398151E-01 + 5.6630685338488274E-01 5.5253767924041286E-01 5.3884882461606709E-01 + 5.2525017111324868E-01 5.1175125076912331E-01 4.9836124076515859E-01 + 4.8508895884783054E-01 4.7194285945303527E-01 4.5893103052387596E-01 + 4.4606119100978903E-01 4.3334068903335449E-01 4.2077650070967382E-01 + 4.0837522960187089E-01 3.9614310679508891E-01 3.8408599157034251E-01 + 3.7220937265871340E-01 3.6051837005568488E-01 3.4901773737487984E-01 + 3.3771186471219750E-01 3.2660478203908266E-01 3.1570016302290477E-01 + 3.0500132933469026E-01 2.9451125538267325E-01 2.8423257345892822E-01 + 2.7416757928002899E-01 2.6431823790225106E-01 2.5468618999303411E-01 + 2.4527275844169633E-01 2.3607895529259923E-01 2.2710548898533642E-01 + 2.1835277188725871E-01 2.0982092810448125E-01 2.0150980155824030E-01 + 1.9341896431403352E-01 1.8554772515138818E-01 1.7789513836230286E-01 + 1.7046001276639433E-01 1.6324092093053039E-01 1.5623620858023396E-01 + 1.4944400418942275E-01 1.4286222873409277E-01 1.3648860559441531E-01 + 1.3032067058840396E-01 1.2435578211888072E-01 1.1859113141396893E-01 + 1.1302375283982402E-01 1.0765053426282702E-01 1.0246822743708285E-01 + 9.7473458391822490E-02 9.2662737792264596E-02 8.8032471246691835E-02 + 8.3578969531965294E-02 7.9298458709474939E-02 7.5187090103613061E-02 + 7.1240950115269763E-02 6.7456069843584002E-02 6.3828434490222533E-02 + 6.0353992521787914E-02 5.7028664567544712E-02 5.3848352031470093E-02 + 5.0808945399642647E-02 4.7906332226145369E-02 4.5136404782933952E-02 + 4.2495067361470483E-02 3.9978243216308856E-02 3.7581881143201795E-02 + 3.5301961686650944E-02 3.3134502974107222E-02 3.1075566176224725E-02 + 2.9121260594650526E-02 2.7267748380778920E-02 2.5511248890691816E-02 + 2.3848042683136162E-02 2.2274475168842432E-02 2.0786959920758324E-02 + 1.9381981655853999E-02 1.8056098900047352E-02 1.6805946348499551E-02 + 1.5628236934046618E-02 1.4519763616866349E-02 1.3477400908640544E-02 + 1.2498106144471045E-02 1.1578920515658179E-02 1.0716969876166969E-02 + 9.9094653352096475E-03 9.1537036478813987E-03 8.4470674152217224E-03 + 7.7870251044592671E-03 7.1711308995545293E-03 6.5970243915056577E-03 + 6.0624301172472845E-03 5.5651569553701857E-03 5.1030973863360023E-03 + 4.6742266243700262E-03 4.2766016277952495E-03 3.9083599942291072E-03 + 3.5677187468031017E-03 3.2529730173839772E-03 2.9624946326696627E-03 + 2.6947306089971268E-03 2.4482015617240528E-03 2.2215000351210597E-03 + 2.0132887588248812E-03 1.8222988370431216E-03 1.6473278768556765E-03 + 1.4872380621149760E-03 1.3409541795956594E-03 1.2074616041741492E-03 + 1.0858042499213905E-03 9.7508249406021207E-04 8.7445108076706669E-04 + 7.8311701178196684E-04 7.0033743072784780E-04 6.2541750793016751E-04 + 5.5770833236957107E-04 4.9660481719620815E-04 4.4154362498633842E-04 + 3.9200111863329677E-04 3.4749134343981734E-04 3.0756404562151283E-04 + 2.7180273204685133E-04 2.3982277563232811E-04 2.1126957038785285E-04 + 1.8581673967180530E-04 1.6316440077278796E-04 1.4303748849062834E-04 + 1.2518413994724108E-04 1.0937414242274526E-04 9.5397445587644251E-05 + 8.3062739091369525E-05 7.2196096074129363E-05 6.2639682795426557E-05 + 5.4250534221031511E-05 4.6899395082412138E-05 4.0469625620022152E-05 + 3.4856170945441125E-05 2.9964592707767658E-05 2.5710161527193652E-05 + 2.2017008463295277E-05 1.8817333616954154E-05 1.6050669822390838E-05 + 1.3663199268743814E-05 1.1607120797954470E-05 9.8400655562402465E-06 + 8.3245586288367433E-06 7.0275242605268701E-06 5.9198322562334522E-06 + 4.9758831650461818E-06 4.1732298758661837E-06 3.4922332917459141E-06 + 2.9157498013492690E-06 2.4288483281500404E-06 2.0185548094590147E-06 + 1.6736220366090254E-06 1.3843228731857212E-06 1.1422649587006072E-06 + 9.4022509927676040E-07 7.7200164356323457E-07 6.3228324011462002E-07 + 5.1653247086954528E-07 4.2088295323939450E-07 3.4204859988000013E-07 + 2.7724381976841542E-07 2.2411353614495042E-07 1.8067198570255741E-07 + 1.4524934869592931E-07 1.1644534107071989E-07 9.3088977027581302E-08 + 7.4203783457905139E-08 5.8977816306740595E-08 4.6737893082190413E-08 + 3.6927515442290310E-08 2.9088011099798966E-08 2.2842475283157039E-08 + 1.7882138803373175E-08 1.3954832555686928E-08 1.0855257208500109E-08 + 8.4168020950240619E-09 6.5046891330810913E-09 5.0102461718526102E-09 + 3.8461397221479024E-09 2.9424197908133216E-09 2.2432497310066957E-09 + 1.7042118544878364E-09 1.2900952344448992E-09 9.7308587200757769E-10 + 7.3129138346240993E-10 5.4754272323522070E-10 4.0842461575303871E-10 + 3.0349396093638832E-10 2.2465154138749480E-10 1.6564100056593063E-10 + 1.2164699650110841E-10 8.8978996970002058E-11 6.4819007854615897E-11 + 4.7024249810788407E-11 3.3972032646653430E-11 2.4438613049433295E-11 + 1.7504987750351451E-11 1.2483944493011367E-11 8.8638171959155636E-12 + 6.2653094886501698E-12 4.4084967097005189E-12 3.0877198242326284E-12 + 2.1525704751338339E-12 1.4935555725700221E-12 1.0313401416663494E-12 + 7.0871335963072254E-13 4.8461709802416072E-13 3.2972898491741416E-13 + 2.2321134809139096E-13 1.5033020216841792E-13 1.0072023045899604E-13 + 6.7126954293452463E-14 4.4499567387332076E-14 2.9340106349112537E-14 + 1.9239006375181642E-14 1.2545449806313413E-14 8.1346642101188423E-15 + 5.2445657107153059E-15 3.3617251954513310E-15 2.1422171197395446E-15 + 1.3569965047692931E-15 8.5442283920197506E-16 5.3470013152106342E-16 + 3.3254853034552489E-16 2.0552780224766350E-16 1.2621760991785458E-16 + 7.7013293293701101E-17 4.6684193541419536E-17 2.8112146511108705E-17 + 1.6815090000061452E-17 9.9895513650747755E-18 5.8937868035653003E-18 + 3.4530593824402373E-18 2.0087869588820107E-18 1.1602255413015219E-18 + 6.6525423285749356E-19 3.7864044336902537E-19 2.1390325564584396E-19 + 1.1992651298294400E-19 6.6723108328125410E-20 3.6834593167634258E-20 + 2.0174778435378792E-20 1.0961983762402554E-20 5.9081384284444546E-21 + 3.1582491383012450E-21 1.6742829653672476E-21 8.8013654334143264E-22 + 4.5873448057052415E-22 2.3703567123701275E-22 1.2141079803237197E-22 + 6.1637062846011592E-23 3.1011069387252460E-23 1.5460742456575224E-23 + 7.6371407617181662E-24 3.7373656021415976E-24 1.8116806676719139E-24 + 8.6981196565614924E-25 4.1356388159529104E-25 1.9470567732707443E-25 + 9.0756588673760613E-26 4.1877954518362976E-26 1.9126882530840681E-26 + 8.6456472553281515E-27 3.8671237430700763E-27 1.7114254923903451E-27 + 7.4928826446223164E-28 3.2449052257534609E-28 1.3898179666422453E-28 + 5.8864958595143429E-29 2.4651225918579800E-29 1.0205687268060168E-29 + 4.1764464117044937E-30 1.6891606091860150E-30 6.7510667737487145E-31 + 2.6659313136718822E-31 1.0400109279919766E-31 4.0075245874150886E-32 + 1.5251074955427881E-32 5.7312188546994326E-33 2.1264336081475743E-33 + 7.7884441581718896E-34 2.8156530860474566E-34 1.0045519697283947E-34 + 3.5364342062356075E-35 1.2282692095834740E-35 4.2081489775673378E-36 + 1.4219778287292914E-36 4.7384164008022882E-37 1.5568501992818449E-37 + 5.0427612128159389E-38 1.6100169996232361E-38 5.0659415093832493E-39 + 1.5708544898154063E-39 4.8007598885854061E-40 1.4408605022746938E-40 + 4.1827682454487397E-41 1.1941608097789383E-41 3.3521252020024279E-42 + 9.2498771655452149E-43 + + + 1.2145719768417094E+00 1.2145719768659549E+00 1.2145719769400176E+00 + 1.2145719770659353E+00 1.2145719772458108E+00 1.2145719774818133E+00 + 1.2145719777761821E+00 1.2145719781312263E+00 1.2145719785493287E+00 + 1.2145719790329470E+00 1.2145719795846162E+00 1.2145719802069512E+00 + 1.2145719809026485E+00 1.2145719816744893E+00 1.2145719825253416E+00 + 1.2145719834581619E+00 1.2145719844759997E+00 1.2145719855819983E+00 + 1.2145719867793987E+00 1.2145719880715415E+00 1.2145719894618709E+00 + 1.2145719909539374E+00 1.2145719925513994E+00 1.2145719942580284E+00 + 1.2145719960777113E+00 1.2145719980144534E+00 1.2145720000723823E+00 + 1.2145720022557518E+00 1.2145720045689445E+00 1.2145720070164763E+00 + 1.2145720096029997E+00 1.2145720123333084E+00 1.2145720152123409E+00 + 1.2145720182451845E+00 1.2145720214370794E+00 1.2145720247934244E+00 + 1.2145720283197794E+00 1.2145720320218722E+00 1.2145720359056014E+00 + 1.2145720399770421E+00 1.2145720442424510E+00 1.2145720487082716E+00 + 1.2145720533811393E+00 1.2145720582678869E+00 1.2145720633755501E+00 + 1.2145720687113741E+00 1.2145720742828181E+00 1.2145720800975621E+00 + 1.2145720861635141E+00 1.2145720924888153E+00 1.2145720990818465E+00 + 1.2145721059512367E+00 1.2145721131058675E+00 1.2145721205548830E+00 + 1.2145721283076951E+00 1.2145721363739919E+00 1.2145721447637461E+00 + 1.2145721534872216E+00 1.2145721625549832E+00 1.2145721719779039E+00 + 1.2145721817671746E+00 1.2145721919343118E+00 1.2145722024911685E+00 + 1.2145722134499422E+00 1.2145722248231847E+00 1.2145722366238125E+00 + 1.2145722488651183E+00 1.2145722615607786E+00 1.2145722747248666E+00 + 1.2145722883718635E+00 1.2145723025166688E+00 1.2145723171746126E+00 + 1.2145723323614666E+00 1.2145723480934592E+00 1.2145723643872850E+00 + 1.2145723812601206E+00 1.2145723987296355E+00 1.2145724168140077E+00 + 1.2145724355319383E+00 1.2145724549026633E+00 1.2145724749459719E+00 + 1.2145724956822195E+00 1.2145725171323447E+00 1.2145725393178852E+00 + 1.2145725622609942E+00 1.2145725859844583E+00 1.2145726105117136E+00 + 1.2145726358668660E+00 1.2145726620747068E+00 1.2145726891607349E+00 + 1.2145727171511742E+00 1.2145727460729947E+00 1.2145727759539320E+00 + 1.2145728068225103E+00 1.2145728387080637E+00 1.2145728716407562E+00 + 1.2145729056516081E+00 1.2145729407725179E+00 1.2145729770362867E+00 + 1.2145730144766425E+00 1.2145730531282664E+00 1.2145730930268199E+00 + 1.2145731342089692E+00 1.2145731767124155E+00 1.2145732205759221E+00 + 1.2145732658393433E+00 1.2145733125436553E+00 1.2145733607309861E+00 + 1.2145734104446473E+00 1.2145734617291672E+00 1.2145735146303234E+00 + 1.2145735691951762E+00 1.2145736254721053E+00 1.2145736835108454E+00 + 1.2145737433625212E+00 1.2145738050796882E+00 1.2145738687163696E+00 + 1.2145739343280970E+00 1.2145740019719518E+00 1.2145740717066051E+00 + 1.2145741435923649E+00 1.2145742176912158E+00 1.2145742940668676E+00 + 1.2145743727848011E+00 1.2145744539123151E+00 1.2145745375185768E+00 + 1.2145746236746711E+00 1.2145747124536532E+00 1.2145748039306004E+00 + 1.2145748981826678E+00 1.2145749952891429E+00 1.2145750953315038E+00 + 1.2145751983934761E+00 1.2145753045610954E+00 1.2145754139227678E+00 + 1.2145755265693323E+00 1.2145756425941265E+00 1.2145757620930537E+00 + 1.2145758851646498E+00 1.2145760119101539E+00 1.2145761424335788E+00 + 1.2145762768417858E+00 1.2145764152445595E+00 1.2145765577546839E+00 + 1.2145767044880222E+00 1.2145768555635970E+00 1.2145770111036747E+00 + 1.2145771712338482E+00 1.2145773360831245E+00 1.2145775057840147E+00 + 1.2145776804726249E+00 1.2145778602887480E+00 1.2145780453759600E+00 + 1.2145782358817194E+00 1.2145784319574646E+00 1.2145786337587190E+00 + 1.2145788414451928E+00 1.2145790551808928E+00 1.2145792751342315E+00 + 1.2145795014781380E+00 1.2145797343901743E+00 1.2145799740526511E+00 + 1.2145802206527498E+00 1.2145804743826429E+00 1.2145807354396203E+00 + 1.2145810040262173E+00 1.2145812803503444E+00 1.2145815646254234E+00 + 1.2145818570705200E+00 1.2145821579104863E+00 1.2145824673761005E+00 + 1.2145827857042140E+00 1.2145831131378968E+00 1.2145834499265911E+00 + 1.2145837963262633E+00 1.2145841525995609E+00 1.2145845190159734E+00 + 1.2145848958519938E+00 1.2145852833912849E+00 1.2145856819248486E+00 + 1.2145860917511968E+00 1.2145865131765263E+00 1.2145869465148973E+00 + 1.2145873920884132E+00 1.2145878502274052E+00 1.2145883212706168E+00 + 1.2145888055653957E+00 1.2145893034678839E+00 1.2145898153432129E+00 + 1.2145903415657029E+00 1.2145908825190599E+00 1.2145914385965808E+00 + 1.2145920102013563E+00 1.2145925977464804E+00 1.2145932016552581E+00 + 1.2145938223614163E+00 1.2145944603093188E+00 1.2145951159541810E+00 + 1.2145957897622843E+00 1.2145964822111956E+00 1.2145971937899864E+00 + 1.2145979249994501E+00 1.2145986763523251E+00 1.2145994483735132E+00 + 1.2146002416003001E+00 1.2146010565825764E+00 1.2146018938830556E+00 + 1.2146027540774926E+00 1.2146036377548997E+00 1.2146045455177614E+00 + 1.2146054779822462E+00 1.2146064357784132E+00 1.2146074195504197E+00 + 1.2146084299567208E+00 1.2146094676702626E+00 1.2146105333786750E+00 + 1.2146116277844528E+00 1.2146127516051322E+00 1.2146139055734573E+00 + 1.2146150904375408E+00 1.2146163069610085E+00 1.2146175559231387E+00 + 1.2146188381189844E+00 1.2146201543594854E+00 1.2146215054715621E+00 + 1.2146228922981943E+00 1.2146243156984826E+00 1.2146257765476891E+00 + 1.2146272757372563E+00 1.2146288141748038E+00 1.2146303927840993E+00 + 1.2146320125050030E+00 1.2146336742933814E+00 1.2146353791209892E+00 + 1.2146371279753174E+00 1.2146389218594060E+00 1.2146407617916122E+00 + 1.2146426488053406E+00 1.2146445839487243E+00 1.2146465682842573E+00 + 1.2146486028883741E+00 1.2146506888509712E+00 1.2146528272748687E+00 + 1.2146550192752052E+00 1.2146572659787653E+00 1.2146595685232271E+00 + 1.2146619280563351E+00 1.2146643457349851E+00 1.2146668227242163E+00 + 1.2146693601961085E+00 1.2146719593285724E+00 1.2146746213040334E+00 + 1.2146773473079902E+00 1.2146801385274542E+00 1.2146829961492487E+00 + 1.2146859213581696E+00 1.2146889153349905E+00 1.2146919792543076E+00 + 1.2146951142822100E+00 1.2146983215737699E+00 1.2147016022703336E+00 + 1.2147049574966073E+00 1.2147083883575243E+00 1.2147118959348742E+00 + 1.2147154812836851E+00 1.2147191454283455E+00 1.2147228893584383E+00 + 1.2147267140242834E+00 1.2147306203321642E+00 1.2147346091392157E+00 + 1.2147386812479606E+00 1.2147428374004681E+00 1.2147470782721117E+00 + 1.2147514044649077E+00 1.2147558165003982E+00 1.2147603148120683E+00 + 1.2147648997372493E+00 1.2147695715084972E+00 1.2147743302443996E+00 + 1.2147791759397890E+00 1.2147841084553208E+00 1.2147891275063782E+00 + 1.2147942326512735E+00 1.2147994232786916E+00 1.2148046985943437E+00 + 1.2148100576067773E+00 1.2148154991122997E+00 1.2148210216789559E+00 + 1.2148266236295191E+00 1.2148323030234218E+00 1.2148380576375808E+00 + 1.2148438849460439E+00 1.2148497820983952E+00 1.2148557458968474E+00 + 1.2148617727719464E+00 1.2148678587568129E+00 1.2148739994598321E+00 + 1.2148801900357087E+00 1.2148864251548013E+00 1.2148926989706210E+00 + 1.2148990050854183E+00 1.2149053365137257E+00 1.2149116856437621E+00 + 1.2149180441965683E+00 1.2149244031827555E+00 1.2149307528567308E+00 + 1.2149370826682606E+00 1.2149433812112325E+00 1.2149496361694490E+00 + 1.2149558342593079E+00 1.2149619611691835E+00 1.2149680014953423E+00 + 1.2149739386741953E+00 1.2149797549106958E+00 1.2149854311026695E+00 + 1.2149909467608671E+00 1.2149962799244947E+00 1.2150014070719979E+00 + 1.2150063030268312E+00 1.2150109408579561E+00 1.2150152917747858E+00 + 1.2150193250162784E+00 1.2150230077338762E+00 1.2150263048679673E+00 + 1.2150291790175245E+00 1.2150315903025721E+00 1.2150334962191065E+00 + 1.2150348514860723E+00 1.2150356078839948E+00 1.2150357140848336E+00 + 1.2150351154726018E+00 1.2150337539542910E+00 1.2150315677606023E+00 + 1.2150284912359635E+00 1.2150244546173017E+00 1.2150193838009964E+00 + 1.2150132000974305E+00 1.2150058199725173E+00 1.2149971547755594E+00 + 1.2149871104527683E+00 1.2149755872457408E+00 1.2149624793741549E+00 + 1.2149476747019292E+00 1.2149310543860425E+00 1.2149124925071821E+00 + 1.2148918556813622E+00 1.2148690026516076E+00 1.2148437838587693E+00 + 1.2148160409904984E+00 1.2147856065073686E+00 1.2147523031450977E+00 + 1.2147159433917833E+00 1.2146763289390181E+00 1.2146332501057260E+00 + 1.2145864852335064E+00 1.2145358000522339E+00 1.2144809470146314E+00 + 1.2144216645984791E+00 1.2143576765750907E+00 1.2142886912426412E+00 + 1.2142144006229001E+00 1.2141344796198761E+00 1.2140485851388405E+00 + 1.2139563551641763E+00 1.2138574077944426E+00 1.2137513402330331E+00 + 1.2136377277327599E+00 1.2135161224926889E+00 1.2133860525055069E+00 + 1.2132470203537009E+00 1.2130985019528115E+00 1.2129399452400127E+00 + 1.2127707688062663E+00 1.2125903604703245E+00 1.2123980757928396E+00 + 1.2121932365288917E+00 1.2119751290172620E+00 1.2117430025048344E+00 + 1.2114960674045667E+00 1.2112334934855418E+00 1.2109544079937020E+00 + 1.2106578937019861E+00 1.2103429868886919E+00 1.2100086752430725E+00 + 1.2096538956973037E+00 1.2092775321841995E+00 1.2088784133202504E+00 + 1.2084553100138298E+00 1.2080069329987111E+00 1.2075319302933492E+00 + 1.2070288845867709E+00 1.2064963105523234E+00 1.2059326520909837E+00 + 1.2053362795064626E+00 1.2047054866148903E+00 1.2040384877925128E+00 + 1.2033334149655095E+00 1.2025883145468306E+00 1.2018011443257604E+00 + 1.2009697703168765E+00 1.2000919635760443E+00 1.1991653969922214E+00 + 1.1981876420650228E+00 1.1971561656793321E+00 1.1960683268896410E+00 + 1.1949213737283566E+00 1.1937124400539798E+00 1.1924385424568558E+00 + 1.1910965772421525E+00 1.1896833175117996E+00 1.1881954103693795E+00 + 1.1866293742743679E+00 1.1849815965746942E+00 1.1832483312493485E+00 + 1.1814256968956922E+00 1.1795096749992364E+00 1.1774961085269575E+00 + 1.1753807008887038E+00 1.1731590153149192E+00 1.1708264747027664E+00 + 1.1683783619867678E+00 1.1658098210942909E+00 1.1631158585505614E+00 + 1.1602913458023971E+00 1.1573310223344708E+00 1.1542294996566249E+00 + 1.1509812662455279E+00 1.1475806935287216E+00 1.1440220430038601E+00 + 1.1402994745905328E+00 1.1364070563165065E+00 1.1323387754443626E+00 + 1.1280885511482424E+00 1.1236502488536420E+00 1.1190176963557175E+00 + 1.1141847018332474E+00 1.1091450738759656E+00 1.1038926436422589E+00 + 1.0984212892618634E+00 1.0927249625939088E+00 1.0867977184440216E+00 + 1.0806337463348274E+00 1.0742274049115053E+00 1.0675732590475158E+00 + 1.0606661196945566E+00 1.0535010864944299E+00 1.0460735931379557E+00 + 1.0383794554163315E+00 1.0304149218622729E+00 1.0221767268205997E+00 + 1.0136621457190995E+00 1.0048690522289085E+00 9.9579597690731037E-01 + 9.8644216680259611E-01 9.7680764536803733E-01 9.6689327187720020E-01 + 9.5670079935267105E-01 9.4623292981114826E-01 9.3549336538570715E-01 + 9.2448685360625038E-01 9.1321922479655515E-01 9.0169741917498081E-01 + 8.8992950081921296E-01 8.7792465516591645E-01 8.6569316615532010E-01 + 8.5324636848915114E-01 8.4059656973713204E-01 8.2775693619043766E-01 + 8.1474133540640681E-01 8.0156412730210047E-01 7.8823989441775899E-01 + 7.7478310056537925E-01 7.6120807341603192E-01 7.4752898751749308E-01 + 7.3375984777951975E-01 7.1991447346163884E-01 7.0600648269580979E-01 + 6.9204927757382595E-01 6.7805602982675561E-01 6.6403966712119300E-01 + 6.5001285999450009E-01 6.3598800944869383E-01 6.2197723522002979E-01 + 6.0799236473881157E-01 5.9404492279141119E-01 5.8014612189398151E-01 + 5.6630685338488274E-01 5.5253767924041286E-01 5.3884882461606709E-01 + 5.2525017111324868E-01 5.1175125076912331E-01 4.9836124076515859E-01 + 4.8508895884783054E-01 4.7194285945303527E-01 4.5893103052387596E-01 + 4.4606119100978903E-01 4.3334068903335449E-01 4.2077650070967382E-01 + 4.0837522960187089E-01 3.9614310679508891E-01 3.8408599157034251E-01 + 3.7220937265871340E-01 3.6051837005568488E-01 3.4901773737487984E-01 + 3.3771186471219750E-01 3.2660478203908266E-01 3.1570016302290477E-01 + 3.0500132933469026E-01 2.9451125538267325E-01 2.8423257345892822E-01 + 2.7416757928002899E-01 2.6431823790225106E-01 2.5468618999303411E-01 + 2.4527275844169633E-01 2.3607895529259923E-01 2.2710548898533642E-01 + 2.1835277188725871E-01 2.0982092810448125E-01 2.0150980155824030E-01 + 1.9341896431403352E-01 1.8554772515138818E-01 1.7789513836230286E-01 + 1.7046001276639433E-01 1.6324092093053039E-01 1.5623620858023396E-01 + 1.4944400418942275E-01 1.4286222873409277E-01 1.3648860559441531E-01 + 1.3032067058840396E-01 1.2435578211888072E-01 1.1859113141396893E-01 + 1.1302375283982402E-01 1.0765053426282702E-01 1.0246822743708285E-01 + 9.7473458391822490E-02 9.2662737792264596E-02 8.8032471246691835E-02 + 8.3578969531965294E-02 7.9298458709474939E-02 7.5187090103613061E-02 + 7.1240950115269763E-02 6.7456069843584002E-02 6.3828434490222533E-02 + 6.0353992521787914E-02 5.7028664567544712E-02 5.3848352031470093E-02 + 5.0808945399642647E-02 4.7906332226145369E-02 4.5136404782933952E-02 + 4.2495067361470483E-02 3.9978243216308856E-02 3.7581881143201795E-02 + 3.5301961686650944E-02 3.3134502974107222E-02 3.1075566176224725E-02 + 2.9121260594650526E-02 2.7267748380778920E-02 2.5511248890691816E-02 + 2.3848042683136162E-02 2.2274475168842432E-02 2.0786959920758324E-02 + 1.9381981655853999E-02 1.8056098900047352E-02 1.6805946348499551E-02 + 1.5628236934046618E-02 1.4519763616866349E-02 1.3477400908640544E-02 + 1.2498106144471045E-02 1.1578920515658179E-02 1.0716969876166969E-02 + 9.9094653352096475E-03 9.1537036478813987E-03 8.4470674152217224E-03 + 7.7870251044592671E-03 7.1711308995545293E-03 6.5970243915056577E-03 + 6.0624301172472845E-03 5.5651569553701857E-03 5.1030973863360023E-03 + 4.6742266243700262E-03 4.2766016277952495E-03 3.9083599942291072E-03 + 3.5677187468031017E-03 3.2529730173839772E-03 2.9624946326696627E-03 + 2.6947306089971268E-03 2.4482015617240528E-03 2.2215000351210597E-03 + 2.0132887588248812E-03 1.8222988370431216E-03 1.6473278768556765E-03 + 1.4872380621149760E-03 1.3409541795956594E-03 1.2074616041741492E-03 + 1.0858042499213905E-03 9.7508249406021207E-04 8.7445108076706669E-04 + 7.8311701178196684E-04 7.0033743072784780E-04 6.2541750793016751E-04 + 5.5770833236957107E-04 4.9660481719620815E-04 4.4154362498633842E-04 + 3.9200111863329677E-04 3.4749134343981734E-04 3.0756404562151283E-04 + 2.7180273204685133E-04 2.3982277563232811E-04 2.1126957038785285E-04 + 1.8581673967180530E-04 1.6316440077278796E-04 1.4303748849062834E-04 + 1.2518413994724108E-04 1.0937414242274526E-04 9.5397445587644251E-05 + 8.3062739091369525E-05 7.2196096074129363E-05 6.2639682795426557E-05 + 5.4250534221031511E-05 4.6899395082412138E-05 4.0469625620022152E-05 + 3.4856170945441125E-05 2.9964592707767658E-05 2.5710161527193652E-05 + 2.2017008463295277E-05 1.8817333616954154E-05 1.6050669822390838E-05 + 1.3663199268743814E-05 1.1607120797954470E-05 9.8400655562402465E-06 + 8.3245586288367433E-06 7.0275242605268701E-06 5.9198322562334522E-06 + 4.9758831650461818E-06 4.1732298758661837E-06 3.4922332917459141E-06 + 2.9157498013492690E-06 2.4288483281500404E-06 2.0185548094590147E-06 + 1.6736220366090254E-06 1.3843228731857212E-06 1.1422649587006072E-06 + 9.4022509927676040E-07 7.7200164356323457E-07 6.3228324011462002E-07 + 5.1653247086954528E-07 4.2088295323939450E-07 3.4204859988000013E-07 + 2.7724381976841542E-07 2.2411353614495042E-07 1.8067198570255741E-07 + 1.4524934869592931E-07 1.1644534107071989E-07 9.3088977027581302E-08 + 7.4203783457905139E-08 5.8977816306740595E-08 4.6737893082190413E-08 + 3.6927515442290310E-08 2.9088011099798966E-08 2.2842475283157039E-08 + 1.7882138803373175E-08 1.3954832555686928E-08 1.0855257208500109E-08 + 8.4168020950240619E-09 6.5046891330810913E-09 5.0102461718526102E-09 + 3.8461397221479024E-09 2.9424197908133216E-09 2.2432497310066957E-09 + 1.7042118544878364E-09 1.2900952344448992E-09 9.7308587200757769E-10 + 7.3129138346240993E-10 5.4754272323522070E-10 4.0842461575303871E-10 + 3.0349396093638832E-10 2.2465154138749480E-10 1.6564100056593063E-10 + 1.2164699650110841E-10 8.8978996970002058E-11 6.4819007854615897E-11 + 4.7024249810788407E-11 3.3972032646653430E-11 2.4438613049433295E-11 + 1.7504987750351451E-11 1.2483944493011367E-11 8.8638171959155636E-12 + 6.2653094886501698E-12 4.4084967097005189E-12 3.0877198242326284E-12 + 2.1525704751338339E-12 1.4935555725700221E-12 1.0313401416663494E-12 + 7.0871335963072254E-13 4.8461709802416072E-13 3.2972898491741416E-13 + 2.2321134809139096E-13 1.5033020216841792E-13 1.0072023045899604E-13 + 6.7126954293452463E-14 4.4499567387332076E-14 2.9340106349112537E-14 + 1.9239006375181642E-14 1.2545449806313413E-14 8.1346642101188423E-15 + 5.2445657107153059E-15 3.3617251954513310E-15 2.1422171197395446E-15 + 1.3569965047692931E-15 8.5442283920197506E-16 5.3470013152106342E-16 + 3.3254853034552489E-16 2.0552780224766350E-16 1.2621760991785458E-16 + 7.7013293293701101E-17 4.6684193541419536E-17 2.8112146511108705E-17 + 1.6815090000061452E-17 9.9895513650747755E-18 5.8937868035653003E-18 + 3.4530593824402373E-18 2.0087869588820107E-18 1.1602255413015219E-18 + 6.6525423285749356E-19 3.7864044336902537E-19 2.1390325564584396E-19 + 1.1992651298294400E-19 6.6723108328125410E-20 3.6834593167634258E-20 + 2.0174778435378792E-20 1.0961983762402554E-20 5.9081384284444546E-21 + 3.1582491383012450E-21 1.6742829653672476E-21 8.8013654334143264E-22 + 4.5873448057052415E-22 2.3703567123701275E-22 1.2141079803237197E-22 + 6.1637062846011592E-23 3.1011069387252460E-23 1.5460742456575224E-23 + 7.6371407617181662E-24 3.7373656021415976E-24 1.8116806676719139E-24 + 8.6981196565614924E-25 4.1356388159529104E-25 1.9470567732707443E-25 + 9.0756588673760613E-26 4.1877954518362976E-26 1.9126882530840681E-26 + 8.6456472553281515E-27 3.8671237430700763E-27 1.7114254923903451E-27 + 7.4928826446223164E-28 3.2449052257534609E-28 1.3898179666422453E-28 + 5.8864958595143429E-29 2.4651225918579800E-29 1.0205687268060168E-29 + 4.1764464117044937E-30 1.6891606091860150E-30 6.7510667737487145E-31 + 2.6659313136718822E-31 1.0400109279919766E-31 4.0075245874150886E-32 + 1.5251074955427881E-32 5.7312188546994326E-33 2.1264336081475743E-33 + 7.7884441581718896E-34 2.8156530860474566E-34 1.0045519697283947E-34 + 3.5364342062356075E-35 1.2282692095834740E-35 4.2081489775673378E-36 + 1.4219778287292914E-36 4.7384164008022882E-37 1.5568501992818449E-37 + 5.0427612128159389E-38 1.6100169996232361E-38 5.0659415093832493E-39 + 1.5708544898154063E-39 4.8007598885854061E-40 1.4408605022746938E-40 + 4.1827682454487397E-41 1.1941608097789383E-41 3.3521252020024279E-42 + 9.2498771655452149E-43 + + + -9.3738125129698517E+01 -9.3738124800036687E+01 -9.3738123792919296E+01 + -9.3738122080668774E+01 -9.3738119634693192E+01 -9.3738116425486282E+01 + -9.3738112422608324E+01 -9.3738107594652249E+01 -9.3738101909217590E+01 + -9.3738095332882835E+01 -9.3738087831172862E+01 -9.3738079368531601E+01 + -9.3738069908286192E+01 -9.3738059412617787E+01 -9.3738047842527521E+01 + -9.3738035157800667E+01 -9.3738021316974482E+01 -9.3738006277297274E+01 + -9.3737989994695738E+01 -9.3737972423734220E+01 -9.3737953517574269E+01 + -9.3737933227935841E+01 -9.3737911505055521E+01 -9.3737888297644005E+01 + -9.3737863552839158E+01 -9.3737837216164138E+01 -9.3737809231479403E+01 + -9.3737779540933929E+01 -9.3737748084917456E+01 -9.3737714802008099E+01 + -9.3737679628922976E+01 -9.3737642500461064E+01 -9.3737603349451717E+01 + -9.3737562106696245E+01 -9.3737518700908808E+01 -9.3737473058659390E+01 + -9.3737425104310248E+01 -9.3737374759951123E+01 -9.3737321945339758E+01 + -9.3737266577829459E+01 -9.3737208572303615E+01 -9.3737147841104729E+01 + -9.3737084293958489E+01 -9.3737017837905867E+01 -9.3736948377220131E+01 + -9.3736875813330826E+01 -9.3736800044744200E+01 -9.3736720966956383E+01 + -9.3736638472369961E+01 -9.3736552450206901E+01 -9.3736462786414549E+01 + -9.3736369363577566E+01 -9.3736272060818123E+01 -9.3736170753700549E+01 + -9.3736065314127913E+01 -9.3735955610240012E+01 -9.3735841506307409E+01 + -9.3735722862618417E+01 -9.3735599535370213E+01 -9.3735471376551757E+01 + -9.3735338233822418E+01 -9.3735199950393095E+01 -9.3735056364898838E+01 + -9.3734907311267875E+01 -9.3734752618594470E+01 -9.3734592110994257E+01 + -9.3734425607469788E+01 -9.3734252921763726E+01 -9.3734073862212355E+01 + -9.3733888231592047E+01 -9.3733695826960542E+01 -9.3733496439502147E+01 + -9.3733289854355576E+01 -9.3733075850446511E+01 -9.3732854200313128E+01 + -9.3732624669927048E+01 -9.3732387018507012E+01 -9.3732140998332525E+01 + -9.3731886354541885E+01 -9.3731622824941169E+01 -9.3731350139789811E+01 + -9.3731068021594481E+01 -9.3730776184889606E+01 -9.3730474336013472E+01 + -9.3730162172878764E+01 -9.3729839384735655E+01 -9.3729505651932712E+01 + -9.3729160645662176E+01 -9.3728804027708620E+01 -9.3728435450179930E+01 + -9.3728054555244441E+01 -9.3727660974844397E+01 -9.3727254330418617E+01 + -9.3726834232599231E+01 -9.3726400280917261E+01 -9.3725952063491107E+01 + -9.3725489156704739E+01 -9.3725011124883110E+01 -9.3724517519953096E+01 + -9.3724007881099723E+01 -9.3723481734411109E+01 -9.3722938592508996E+01 + -9.3722377954178441E+01 -9.3721799303977704E+01 -9.3721202111845514E+01 + -9.3720585832692819E+01 -9.3719949905979831E+01 -9.3719293755293066E+01 + -9.3718616787898043E+01 -9.3717918394287778E+01 -9.3717197947713501E+01 + -9.3716454803708729E+01 -9.3715688299592358E+01 -9.3714897753965914E+01 + -9.3714082466189737E+01 -9.3713241715852675E+01 -9.3712374762218559E+01 + -9.3711480843663423E+01 -9.3710559177096371E+01 -9.3709608957362136E+01 + -9.3708629356628791E+01 -9.3707619523760101E+01 -9.3706578583666996E+01 + -9.3705505636643736E+01 -9.3704399757687526E+01 -9.3703259995792180E+01 + -9.3702085373234496E+01 -9.3700874884827201E+01 -9.3699627497163519E+01 + -9.3698342147830061E+01 -9.3697017744609695E+01 -9.3695653164652356E+01 + -9.3694247253630110E+01 -9.3692798824862038E+01 -9.3691306658424296E+01 + -9.3689769500227015E+01 -9.3688186061072685E+01 -9.3686555015683638E+01 + -9.3684875001704128E+01 -9.3683144618678313E+01 -9.3681362426998319E+01 + -9.3679526946820104E+01 -9.3677636656954775E+01 -9.3675689993725982E+01 + -9.3673685349801360E+01 -9.3671621072981523E+01 -9.3669495464970097E+01 + -9.3667306780096553E+01 -9.3665053224014073E+01 -9.3662732952357430E+01 + -9.3660344069364001E+01 -9.3657884626458653E+01 -9.3655352620799235E+01 + -9.3652745993783824E+01 -9.3650062629514323E+01 -9.3647300353222263E+01 + -9.3644456929647660E+01 -9.3641530061376827E+01 -9.3638517387131955E+01 + -9.3635416480019316E+01 -9.3632224845724551E+01 -9.3628939920659676E+01 + -9.3625559070062451E+01 -9.3622079586043924E+01 -9.3618498685580775E+01 + -9.3614813508451974E+01 -9.3611021115126789E+01 -9.3607118484584888E+01 + -9.3603102512090075E+01 -9.3598970006888734E+01 -9.3594717689861241E+01 + -9.3590342191097164E+01 -9.3585840047417889E+01 -9.3581207699816204E+01 + -9.3576441490841887E+01 -9.3571537661910199E+01 -9.3566492350534745E+01 + -9.3561301587492736E+01 -9.3555961293910258E+01 -9.3550467278266936E+01 + -9.3544815233327597E+01 -9.3539000732980142E+01 -9.3533019229002889E+01 + -9.3526866047728006E+01 -9.3520536386634106E+01 -9.3514025310834484E+01 + -9.3507327749475181E+01 -9.3500438492036324E+01 -9.3493352184540143E+01 + -9.3486063325648857E+01 -9.3478566262663392E+01 -9.3470855187417726E+01 + -9.3462924132059896E+01 -9.3454766964724513E+01 -9.3446377385083579E+01 + -9.3437748919791730E+01 -9.3428874917797629E+01 -9.3419748545538909E+01 + -9.3410362782009514E+01 -9.3400710413697013E+01 -9.3390784029381777E+01 + -9.3380576014807218E+01 -9.3370078547201032E+01 -9.3359283589661999E+01 + -9.3348182885394522E+01 -9.3336767951788445E+01 -9.3325030074354800E+01 + -9.3312960300491412E+01 -9.3300549433099320E+01 -9.3287788024016322E+01 + -9.3274666367297399E+01 -9.3261174492311682E+01 -9.3247302156659018E+01 + -9.3233038838910460E+01 -9.3218373731157413E+01 -9.3203295731370503E+01 + -9.3187793435561872E+01 -9.3171855129746092E+01 -9.3155468781699142E+01 + -9.3138622032500791E+01 -9.3121302187868196E+01 -9.3103496209268897E+01 + -9.3085190704802997E+01 -9.3066371919864352E+01 -9.3047025727554384E+01 + -9.3027137618873041E+01 -9.3006692692643654E+01 -9.2985675645201397E+01 + -9.2964070759821951E+01 -9.2941861895878816E+01 -9.2919032477747805E+01 + -9.2895565483423738E+01 -9.2871443432868404E+01 -9.2846648376065332E+01 + -9.2821161880789930E+01 -9.2794965020078152E+01 -9.2768038359390417E+01 + -9.2740361943475719E+01 -9.2711915282909544E+01 -9.2682677340317809E+01 + -9.2652626516266153E+01 -9.2621740634829933E+01 -9.2589996928802421E+01 + -9.2557372024579706E+01 -9.2523841926675630E+01 -9.2489382001892352E+01 + -9.2453966963114141E+01 -9.2417570852737882E+01 -9.2380167025728355E+01 + -9.2341728132282512E+01 -9.2302226100114297E+01 -9.2261632116338291E+01 + -9.2219916608955415E+01 -9.2177049227933480E+01 -9.2132998825876228E+01 + -9.2087733438271513E+01 -9.2041220263320781E+01 -9.1993425641343975E+01 + -9.1944315033747273E+01 -9.1893853001552060E+01 -9.1842003183495194E+01 + -9.1788728273671367E+01 -9.1733989998733449E+01 -9.1677749094638557E+01 + -9.1619965282942303E+01 -9.1560597246632113E+01 -9.1499602605505274E+01 + -9.1436937891081428E+01 -9.1372558521055907E+01 -9.1306418773293117E+01 + -9.1238471759352549E+01 -9.1168669397558233E+01 -9.1096962385605764E+01 + -9.1023300172713064E+01 -9.0947630931322223E+01 -9.0869901528340534E+01 + -9.0790057495951572E+01 -9.0708043001976193E+01 -9.0623800819812885E+01 + -9.0537272297949357E+01 -9.0448397329060327E+01 -9.0357114318719852E+01 + -9.0263360153705165E+01 -9.0167070169943713E+01 -9.0068178120093563E+01 + -8.9966616140790492E+01 -8.9862314719568886E+01 -8.9755202661494437E+01 + -8.9645207055512827E+01 -8.9532253240558717E+01 -8.9416264771442485E+01 + -8.9297163384548981E+01 -8.9174868963383815E+01 -8.9049299504006314E+01 + -8.8920371080379340E+01 -8.8787997809685805E+01 -8.8652091817668975E+01 + -8.8512563204021859E+01 -8.8369320007902530E+01 -8.8222268173623888E+01 + -8.8071311516576998E+01 -8.7916351689462914E+01 -8.7757288148904081E+01 + -8.7594018122498312E+01 -8.7426436576417473E+01 -8.7254436183621877E+01 + -8.7077907292795729E+01 -8.6896737898089881E+01 -8.6710813609793732E+01 + -8.6520017626029826E+01 -8.6324230705612678E+01 -8.6123331142178273E+01 + -8.5917194739728657E+01 -8.5705694789745579E+01 -8.5488702049999759E+01 + -8.5266084725231437E+01 -8.5037708449887631E+01 -8.4803436273057244E+01 + -8.4563128645830346E+01 -8.4316643411266568E+01 -8.4063835797182577E+01 + -8.3804558411992303E+01 -8.3538661243822304E+01 -8.3265991663168819E+01 + -8.2986394429333586E+01 -8.2699711700943269E+01 -8.2405783050811493E+01 + -8.2104445485475750E+01 -8.1795533469703187E+01 -8.1478878956320344E+01 + -8.1154311421711370E+01 -8.0821657907342882E+01 -8.0480743067721320E+01 + -8.0131389225169130E+01 -7.9773416431850052E+01 -7.9406642539483016E+01 + -7.9030883277206101E+01 -7.8645952338066905E+01 -7.8251661474650234E+01 + -7.7847820604346012E+01 -7.7434237924827130E+01 -7.7010720040273910E+01 + -7.6577072098952911E+01 -7.6133097942744698E+01 -7.5678600269259135E+01 + -7.5213380807190873E+01 -7.4737240505579905E+01 -7.4249979737695810E+01 + -7.3751398520246113E+01 -7.3241296748656708E+01 -7.2719474449198529E+01 + -7.2185732048725782E+01 -7.1639870662855174E+01 -7.1081692403384551E+01 + -7.0511000705816201E+01 -6.9927600677832658E+01 -6.9331299469606535E+01 + -6.8721906666831032E+01 -6.8099234707376581E+01 -6.7463099322490208E+01 + -6.6813320003443238E+01 -6.6149720494563837E+01 -6.5472129313577867E+01 + -6.4780380300172354E+01 -6.4074313193706175E+01 -6.3353774240962963E+01 + -6.2618616834843586E+01 -6.1868702184850477E+01 -6.1103900020216329E+01 + -6.0324089326457781E+01 -5.9529159116137535E+01 -5.8719009234520541E+01 + -5.7893551200786028E+01 -5.7052709085364789E+01 -5.6196420423911704E+01 + -5.5324637168302473E+01 -5.4437326674978550E+01 -5.3534472730809725E+01 + -5.2616076616535672E+01 -5.1682158207693199E+01 -5.0732757112779474E+01 + -4.9767933848197572E+01 -4.8787771049380673E+01 -4.7792374717196587E+01 + -4.6781875498583098E+01 -4.5756430000014561E+01 -4.4716222132185919E+01 + -4.3661464483935518E+01 -4.2592399723123890E+01 -4.1509302021798241E+01 + -4.0412478502602866E+01 -3.9302270702931722E+01 -3.8179056052914206E+01 + -3.7043249362796885E+01 -3.5895304314784390E+01 -3.4735714953834865E+01 + -3.3565017171339598E+01 -3.2383790174957781E+01 -3.1192657937253319E+01 + -2.9992290615054376E+01 -2.8783405930751858E+01 -2.7566770505969831E+01 + -2.6343201137252958E+01 -2.5113566002573759E+01 -2.3878785786620096E+01 + -2.2639834711908716E+01 -2.1397741461877722E+01 -2.0153589981163027E+01 + -1.8908520137313158E+01 -1.7663728227231211E+01 -1.6420467310670038E+01 + -1.5180047352123246E+01 -1.3943835151503240E+01 -1.2713254043068257E+01 + -1.1489783341119967E+01 -1.0274957510155202E+01 -9.0703650363100223E+00 + -7.8776469762113202E+00 -6.6984951586664216E+00 -5.5346500140699186E+00 + -4.3878980059650008E+00 -3.2600686388888680E+00 -2.1530310165005981E+00 + -1.0686899240416723E+00 -8.9814094261393713E-03 1.0241321622268240E+00 + 2.0286676050537360E+00 3.0026269832674939E+00 3.9440042783442428E+00 + 4.8507926728175406E+00 5.7209924688367133E+00 6.5526196570974520E+00 + 7.3437151487939829E+00 8.0923546798112724E+00 8.7966593924371992E+00 + 9.4548070954661654E+00 1.0065044198572410E+01 1.0625698311351190E+01 + 1.1135191491378837E+01 1.1592054119053969E+01 1.1994939369882319E+01 + 1.2342638247253705E+01 1.2634095130706896E+01 1.2868423786184225E+01 + 1.3044923775980628E+01 1.3163097197029945E+01 1.3222665666980436E+01 + 1.3223587468316113E+01 1.3166074751754563E+01 1.3050610691465756E+01 + 1.2877966476539910E+01 1.2649218015820802E+01 1.2365762226996596E+01 + 1.2029332776007490E+01 1.1642015129698713E+01 1.1206260783628347E+01 + 1.0724900528316383E+01 1.0201156621488815E+01 9.6386537413248092E+00 + 9.0414286067809311E+00 8.4139381660977666E+00 7.7610662738487797E+00 + 7.0881288006418375E+00 6.4008771479028477E+00 5.7055001730222488E+00 + 5.0086245672943051E+00 4.3173137700003545E+00 3.6390655458392311E+00 + 2.9818083984110912E+00 2.3539160514060873E+00 1.7634700982427025E+00 + 1.2278486473176418E+00 7.6525657633356869E-01 3.9527987607740533E-01 + 1.3886839449111943E-01 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 + + + -2.5365224938420297E+01 -2.5440990619736684E+01 -2.5412449757722854E+01 + -2.5393372224541601E+01 -2.5378104844180022E+01 -2.5241571392449544E+01 + -2.5222818271460934E+01 -2.5216012972153578E+01 -2.5204927050098295E+01 + -2.5195467571079408E+01 -2.5186402864485267E+01 -2.5177569186565687E+01 + -2.5168965130648900E+01 -2.5160524973148203E+01 -2.5152219608160497E+01 + -2.5144015966544440E+01 -2.5135890039565361E+01 -2.5127821990072462E+01 + -2.5119795054896272E+01 -2.5111795162774946E+01 -2.5103810233321692E+01 + -2.5095829824139020E+01 -2.5087844807378222E+01 -2.5079847130738376E+01 + -2.5071829630100822E+01 -2.5063785879626057E+01 -2.5055710072314294E+01 + -2.5047596923124232E+01 -2.5039441589949611E+01 -2.5031239608584656E+01 + -2.5022986838800286E+01 -2.5014679419326043E+01 -2.5006313730019055E+01 + -2.4997886359880422E+01 -2.4989394079860794E+01 -2.4980833819614109E+01 + -2.4972202647525823E+01 -2.4963497753472662E+01 -2.4954716433872587E+01 + -2.4945856078665347E+01 -2.4936914159927657E+01 -2.4927888221878877E+01 + -2.4918775872074423E+01 -2.4909574773618068E+01 -2.4900282638251145E+01 + -2.4890897220199786E+01 -2.4881416310679178E+01 -2.4871837732969411E+01 + -2.4862159337990271E+01 -2.4852379000312464E+01 -2.4842494614552162E+01 + -2.4832504092102724E+01 -2.4822405358164072E+01 -2.4812196349035347E+01 + -2.4801875009641051E+01 -2.4791439291264517E+01 -2.4780887149466444E+01 + -2.4770216542168225E+01 -2.4759425427882853E+01 -2.4748511764078188E+01 + -2.4737473505658816E+01 -2.4726308603554823E+01 -2.4715015003406737E+01 + -2.4703590644337396E+01 -2.4692033457802324E+01 -2.4680341366511268E+01 + -2.4668512283414234E+01 -2.4656544110746090E+01 -2.4644434739124524E+01 + -2.4632182046696514E+01 -2.4619783898329175E+01 -2.4607238144840938E+01 + -2.4594542622269930E+01 -2.4581695151176138E+01 -2.4568693535974724E+01 + -2.4555535564297926E+01 -2.4542219006383249E+01 -2.4528741614485799E+01 + -2.4515101122313069E+01 -2.4501295244480239E+01 -2.4487321675984582E+01 + -2.4473178091697555E+01 -2.4458862145873287E+01 -2.4444371471672238E+01 + -2.4429703680699152E+01 -2.4414856362554115E+01 -2.4399827084396012E+01 + -2.4384613390517547E+01 -2.4369212801931081E+01 -2.4353622815964631E+01 + -2.4337840905867512E+01 -2.4321864520424949E+01 -2.4305691083581380E+01 + -2.4289317994071688E+01 -2.4272742625060371E+01 -2.4255962323787955E+01 + -2.4238974411224483E+01 -2.4221776181729766E+01 -2.4204364902720176E+01 + -2.4186737814341722E+01 -2.4168892129149182E+01 -2.4150825031791250E+01 + -2.4132533678701282E+01 -2.4114015197793961E+01 -2.4095266688167282E+01 + -2.4076285219810128E+01 -2.4057067833315234E+01 -2.4037611539597499E+01 + -2.4017913319617701E+01 -2.3997970124111408E+01 -2.3977778873323416E+01 + -2.3957336456747377E+01 -2.3936639732870880E+01 -2.3915685528925980E+01 + -2.3894470640645217E+01 -2.3872991832023203E+01 -2.3851245835083869E+01 + -2.3829229349653470E+01 -2.3806939043139476E+01 -2.3784371550315431E+01 + -2.3761523473111986E+01 -2.3738391380414122E+01 -2.3714971807864906E+01 + -2.3691261257675713E+01 -2.3667256198443368E+01 -2.3642953064974076E+01 + -2.3618348258114672E+01 -2.3593438144591119E+01 -2.3568219056854605E+01 + -2.3542687292935522E+01 -2.3516839116305363E+01 -2.3490670755747054E+01 + -2.3464178405233703E+01 -2.3437358223816290E+01 -2.3410206335520339E+01 + -2.3382718829252095E+01 -2.3354891758714285E+01 -2.3326721142331905E+01 + -2.3298202963188348E+01 -2.3269333168972121E+01 -2.3240107671934538E+01 + -2.3210522348858806E+01 -2.3180573041040692E+01 -2.3150255554281333E+01 + -2.3119565658892423E+01 -2.3088499089714215E+01 -2.3057051546146795E+01 + -2.3025218692194951E+01 -2.2992996156527092E+01 -2.2960379532548661E+01 + -2.2927364378490470E+01 -2.2893946217512493E+01 -2.2860120537823342E+01 + -2.2825882792816209E+01 -2.2791228401221598E+01 -2.2756152747277270E+01 + -2.2720651180916146E+01 -2.2684719017972387E+01 -2.2648351540406523E+01 + -2.2611543996549777E+01 -2.2574291601368589E+01 -2.2536589536749439E+01 + -2.2498432951804922E+01 -2.2459816963201540E+01 -2.2420736655509589E+01 + -2.2381187081576222E+01 -2.2341163262921789E+01 -2.2300660190160510E+01 + -2.2259672823445815E+01 -2.2218196092941305E+01 -2.2176224899317646E+01 + -2.2133754114276442E+01 -2.2090778581101500E+01 -2.2047293115238286E+01 + -2.2003292504902440E+01 -2.1958771511717618E+01 -2.1913724871384087E+01 + -2.1868147294378055E+01 -2.1822033466683131E+01 -2.1775378050554327E+01 + -2.1728175685315367E+01 -2.1680420988190356E+01 -2.1632108555170294E+01 + -2.1583232961915467E+01 -2.1533788764694329E+01 -2.1483770501359921E+01 + -2.1433172692364522E+01 -2.1381989841813251E+01 -2.1330216438557837E+01 + -2.1277846957330961E+01 -2.1224875859922378E+01 -2.1171297596397498E+01 + -2.1117106606359407E+01 -2.1062297320255091E+01 -2.1006864160726821E+01 + -2.0950801544009686E+01 -2.0894103881375862E+01 -2.0836765580626906E+01 + -2.0778781047634613E+01 -2.0720144687931626E+01 -2.0660850908352423E+01 + -2.0600894118725911E+01 -2.0540268733620145E+01 -2.0478969174140385E+01 + -2.0416989869781286E+01 -2.0354325260333994E+01 -2.0290969797849243E+01 + -2.0226917948657132E+01 -2.0162164195444650E+01 -2.0096703039391659E+01 + -2.0030529002366286E+01 -1.9963636629180563E+01 -1.9896020489907063E+01 + -1.9827675182257597E+01 -1.9758595334024388E+01 -1.9688775605585001E+01 + -1.9618210692471369E+01 -1.9546895328003959E+01 -1.9474824285991780E+01 + -1.9401992383498740E+01 -1.9328394483677442E+01 -1.9254025498670639E+01 + -1.9178880392581458E+01 -1.9102954184512530E+01 -1.9026241951675111E+01 + -1.8948738832568317E+01 -1.8870440030229251E+01 -1.8791340815554520E+01 + -1.8711436530693351E+01 -1.8630722592513060E+01 -1.8549194496136881E+01 + -1.8466847818554854E+01 -1.8383678222307658E+01 -1.8299681459244013E+01 + -1.8214853374351428E+01 -1.8129189909660784E+01 -1.8042687108224619E+01 + -1.7955341118169070E+01 -1.7867148196819691E+01 -1.7778104714900685E+01 + -1.7688207160807721E+01 -1.7597452144953756E+01 -1.7505836404187846E+01 + -1.7413356806286362E+01 -1.7320010354516221E+01 -1.7225794192269593E+01 + -1.7130705607769386E+01 -1.7034742038845028E+01 -1.6937901077777386E+01 + -1.6840180476212339E+01 -1.6741578150141756E+01 -1.6642092184950940E+01 + -1.6541720840531408E+01 -1.6440462556457589E+01 -1.6338315957226392E+01 + -1.6235279857557774E+01 -1.6131353267755177E+01 -1.6026535399123812E+01 + -1.5920825669445266E+01 -1.5814223708506374E+01 -1.5706729363680438E+01 + -1.5598342705558661E+01 -1.5489064033629543E+01 -1.5378893882003924E+01 + -1.5267833025183096E+01 -1.5155882483867572E+01 -1.5043043530803530E+01 + -1.4929317696664331E+01 -1.4814706775964021E+01 -1.4699212832999615E+01 + -1.4582838207819186E+01 -1.4465585522212042E+01 -1.4347457685717870E+01 + -1.4228457901650902E+01 -1.4108589673135480E+01 -1.3987856809149172E+01 + -1.3866263430569239E+01 -1.3743813976218458E+01 -1.3620513208905869E+01 + -1.3496366221458109E+01 -1.3371378442736635E+01 -1.3245555643636283E+01 + -1.3118903943060197E+01 -1.2991429813866155E+01 -1.2863140088779334E+01 + -1.2734041966266020E+01 -1.2604143016363112E+01 -1.2473451186457813E+01 + -1.2341974807011850E+01 -1.2209722597224518E+01 -1.2076703670628630E+01 + -1.1942927540613352E+01 -1.1808404125867719E+01 -1.1673143755738709E+01 + -1.1537157175497281E+01 -1.1400455551506054E+01 -1.1263050476281792E+01 + -1.1124953973446166E+01 -1.0986178502557646E+01 -1.0846736963817802E+01 + -1.0706642702644656E+01 -1.0565909514106080E+01 -1.0424551647205655E+01 + -1.0282583809013767E+01 -1.0140021168636222E+01 -9.9968793610127165E+00 + -9.8531744905374534E+00 -9.7089231344937872E+00 -9.5641423462951387E+00 + -9.4188496585238184E+00 -9.2730630857596399E+00 -9.1268011271898395E+00 + -8.9800827689919203E+00 -8.8329274864807790E+00 -8.6853552460113264E+00 + -8.5373865066279127E+00 -8.3890422214513940E+00 -8.2403438387949297E+00 + -8.0913133029991950E+00 -7.9419730549777494E+00 -7.7923460324629463E+00 + -7.6424556699430024E+00 -7.4923258982803347E+00 -7.3419811440013696E+00 + -7.1914463282478795E+00 -7.0407468653796181E+00 -6.8899086612181693E+00 + -6.7389581109214998E+00 -6.5879220964788479E+00 -6.4368279838152134E+00 + -6.2857036194948703E+00 -6.1345773270130088E+00 -5.9834779026646103E+00 + -5.8324346109796368E+00 -5.6814771797133892E+00 -5.5306357943811202E+00 + -5.3799410923256747E+00 -5.2294241563072106E+00 -5.0791165076038549E+00 + -4.9290500986125165E+00 -4.7792573049389206E+00 -4.6297709169663319E+00 + -4.4806241308925427E+00 -4.3318505392250346E+00 -4.1834841207246116E+00 + -4.0355592297882117E+00 -3.8881105852621358E+00 -3.7411732586775637E+00 + -3.5947826619008838E+00 -3.4489745341922884E+00 -3.3037849286668521E+00 + -3.1592501981535031E+00 -3.0154069804482990E+00 -2.8722921829598271E+00 + -2.7299429667458242E+00 -2.5883967299416519E+00 -2.4476910905829068E+00 + -2.3078638688260287E+00 -2.1689530685727205E+00 -2.0309968585056866E+00 + -1.8940335525451875E+00 -1.7581015897377188E+00 -1.6232395135900795E+00 + -1.4894859508638030E+00 -1.3568795898466395E+00 -1.2254591581192558E+00 + -1.0952633998365378E+00 -9.6633105254383989E-01 -8.3870082354899955E-01 + -7.1241136587098297E-01 -5.8750125378546803E-01 -4.6400895798640551E-01 + -3.4197282038057647E-01 -2.2143102852917429E-01 -1.0242158974644557E-01 + 1.5017695139772360E-02 1.3084925836728822E-01 2.4503579216824189E-01 + 3.5754027606656541E-01 4.6832600457503942E-01 5.7735661533627947E-01 + 6.8459611776773610E-01 7.9000892228890596E-01 8.9355987022960648E-01 + 9.9521426454131634E-01 1.0949379014591687E+00 1.1926971032896450E+00 + 1.2884587525275573E+00 1.3821903275339349E+00 1.4738599400313843E+00 + 1.5634363746917368E+00 1.6508891310967260E+00 1.7361884683388049E+00 + 1.8193054524861212E+00 1.9002120070512867E+00 1.9788809664637199E+00 + 2.0552861323353717E+00 2.1294023320159252E+00 2.2012054785470774E+00 + 2.2706726306468608E+00 2.3377820507995328E+00 2.4025132589321516E+00 + 2.4648470785893699E+00 2.5247656720665836E+00 2.5822525607447839E+00 + 2.6372926270163592E+00 2.6898720948148367E+00 2.7399784869364483E+00 + 2.7876005590672173E+00 2.8327282126089548E+00 2.8753523908314680E+00 + 2.9154649652799800E+00 2.9530586213988190E+00 2.9881267536557634E+00 + 3.0206633807748515E+00 3.0506630908148531E+00 3.0781210237119354E+00 + 3.1030328956654265E+00 3.1253950657182514E+00 3.1452046405997720E+00 + 3.1624596100160449E+00 3.1771590017422011E+00 3.1893030445697357E+00 + 3.1988933275486007E+00 3.2059329458375245E+00 3.2104266263378616E+00 + 3.2123808295023024E+00 3.2118038266901330E+00 3.2087057547751447E+00 + 3.2030986512208059E+00 3.1949964735432927E+00 3.1844151071422995E+00 + 3.1713723651000412E+00 3.1558879829313922E+00 3.1379836105712284E+00 + 3.1176828032157640E+00 3.0950110120528778E+00 3.0699955754462813E+00 + 3.0426657107813306E+00 3.0130525069249408E+00 2.9811889170820658E+00 + 2.9471097517290539E+00 2.9108516712541368E+00 2.8724531779239864E+00 + 2.8319546068113590E+00 2.7893981153539502E+00 2.7448276712612674E+00 + 2.6982890385395262E+00 2.6498297614598152E+00 2.5994991463490966E+00 + 2.5473482411344683E+00 2.4934298126172152E+00 2.4377983214933581E+00 + 2.3805098951713339E+00 2.3216222984650692E+00 2.2611949022621474E+00 + 2.1992886502826301E+00 2.1359660240547500E+00 2.0712910062399952E+00 + 2.0053290424423338E+00 1.9381470016354916E+00 1.8698131353384602E+00 + 1.8003970356635159E+00 1.7299695923532772E+00 1.6586029489139744E+00 + 1.5863704579416640E+00 1.5133466357264436E+00 1.4396071162073889E+00 + 1.3652286043376407E+00 1.2902888289052648E+00 1.2148664948409909E+00 + 1.1390412350289083E+00 1.0628935616206390E+00 9.8650481683742075E-01 + 9.0995712322801015E-01 8.3333333333333293E-01 7.5671697869141119E-01 + 6.8019221809837072E-01 6.0384378502324509E-01 5.2775693405598156E-01 + 4.5201738624953847E-01 3.7671127319836623E-01 3.0192507967691051E-01 + 2.2774558464324574E-01 1.5425980039459125E-01 8.1554909643432774E-02 + 9.7182002653976845E-03 -6.1163002546951638E-02 -1.3100140700647400E-01 + -1.9970982862734393E-01 -2.6720126760611912E-01 -3.3338899001260047E-01 + -3.9818661312665393E-01 -4.6150819526709091E-01 -5.2326833046680377E-01 + -5.8338224835447450E-01 -6.4176591960707596E-01 -6.9833616733893500E-01 + -7.5301078479212114E-01 -8.0570865968919902E-01 -8.5634990560282342E-01 + -9.0485600068706817E-01 -9.5114993410272997E-01 -9.9515636045296429E-01 + -1.0368017625265866E+00 -1.0760146226238443E+00 -1.1127256027138728E+00 + -1.1468677336441817E+00 -1.1783766135895319E+00 -1.2071906158940031E+00 + -1.2332511064185245E+00 -1.2565026704655646E+00 -1.2768933493093262E+00 + -1.2943748863061799E+00 -1.3089029825132312E+00 -1.3204375616834845E+00 + -1.3289430444447108E+00 -1.3343886314064100E+00 -1.3367485948649542E+00 + -1.3360025786999563E+00 -1.3321359059681270E+00 -1.3251398936050984E+00 + -1.3150121735389815E+00 -1.3017570194000065E+00 -1.2853856778767734E+00 + -1.2659167036196290E+00 -1.2433762964235240E+00 -1.2177986392349398E+00 + -1.1892262353183738E+00 -1.1577102426864128E+00 -1.1233108036426540E+00 + -1.0860973670083509E+00 -1.0461490003017939E+00 -1.0035546888149394E+00 + -9.5841361818616466E-01 -9.1083543670346434E-01 -8.6094049319212651E-01 + -8.0886004594862404E-01 -7.5473643778311728E-01 -6.9872323183211216E-01 + -6.4098530240701412E-01 -5.8169887476106641E-01 -5.2105150729465532E-01 + -4.5924200938646548E-01 -3.9648028774539318E-01 -3.3298711393628960E-01 + -2.6899380555297497E-01 -2.0474181340671779E-01 -1.4048220708023421E-01 + -7.6475051279413828E-02 -1.2988665610929933E-02 4.9701239262698101E-02 + 1.1131255567451592E-01 1.7155790917598207E-01 2.3014593010993253E-01 + 2.8678267074666175E-01 3.4117317104006528E-01 3.9302317470476905E-01 + 4.4204099575134631E-01 4.8793953383933036E-01 5.3043843481337782E-01 + 5.6926639057602479E-01 6.0416357002340615E-01 6.3488417013387266E-01 + 6.6119907346311424E-01 6.8289859527659247E-01 6.9979530035853277E-01 + 7.1172686619875203E-01 7.1855896580156209E-01 7.2018813981754004E-01 + 7.1654462410782005E-01 7.0759509525667874E-01 6.9334529300366798E-01 + 6.7384247513119266E-01 6.4917765708530961E-01 6.1948758560392592E-01 + 5.8495639296443558E-01 5.4581687623932207E-01 5.0235134427119987E-01 + 4.5489197406667892E-01 4.0382061809027170E-01 3.4956800465406923E-01 + 2.9261227539337126E-01 2.3347680684681679E-01 1.7272726757987872E-01 + 1.1096786826158594E-01 4.8836769781079023E-02 -1.2999375980787830E-02 + -7.3851766598263910E-02 -1.3301667103721304E-01 -1.8978351758251666E-01 + -2.4344381428326012E-01 -2.9330084827884989E-01 -3.3868008809329586E-01 + -3.7894018874853419E-01 -4.1348447358932505E-01 -4.4177273936959888E-01 + -4.6333320287181884E-01 -4.7777437868762529E-01 -4.8479664948150447E-01 + -4.8420326292906063E-01 -4.7591046454819963E-01 -4.5995645394540668E-01 + -4.3650883483303721E-01 -4.0587021790862365E-01 -3.6848163179138971E-01 + -3.2492340221687299E-01 -2.7591317515235242E-01 -2.2230078693602329E-01 + -1.6505972538493338E-01 -1.0527498130509498E-01 -4.4127160944934386E-02 + 1.7127182742683586E-02 7.7178938518146334E-02 1.3469336397882911E-01 + 1.8834023638326683E-01 2.3682676567565092E-01 2.7893265233701714E-01 + 3.1354651159300051E-01 3.3970272448542499E-01 3.5661762183230949E-01 + 3.6372376676891427E-01 3.6070098404532319E-01 3.4750269909928189E-01 + 3.2437610728680982E-01 2.9187470394048404E-01 2.5086177929544234E-01 + 2.0250362808753786E-01 1.4825144953201025E-01 8.9811224793072464E-02 + 2.9101258026976398E-02 -3.1802448534259897E-02 -9.0732252517366482E-02 + -1.4550500220764950E-01 -1.9400620819843359E-01 -2.3427953463908860E-01 + -2.6461821678819458E-01 -2.8365439820169780E-01 -2.9044187358469831E-01 + -2.8452737379080612E-01 -2.6600539117378441E-01 -2.3555166855529874E-01 + -1.9443091003297425E-01 -1.4447505297099758E-01 -8.8029588398779585E-02 + -2.7866931049297224E-02 3.2932306950485657E-02 9.1127152007597079E-02 + 1.4348790903060779E-01 1.8698392508918601E-01 2.1897753099421949E-01 + 2.3741225436326524E-01 2.4098195832150746E-01 2.2926686572135496E-01 + 2.0282269263441441E-01 1.6321051640623641E-01 1.1295766306803201E-01 + 5.5443850201267603E-02 -5.2880144133664641E-03 -6.4790814392229723E-02 + -1.1852962165534416E-01 -1.6223621765046817E-01 -1.9227604436315898E-01 + -2.0599675793317157E-01 -2.0202448847786988E-01 -1.8047366209717128E-01 + -1.4303944126306065E-01 -9.2948872292486814E-02 -3.4757724173150345E-02 + 2.6005660135591073E-02 8.3331343452999182E-02 1.3131759680543939E-01 + 1.6480661783631154E-01 1.7999963684797629E-01 1.7497698665555650E-01 + 1.5004880608048451E-01 1.0787182740396008E-01 5.3287892788430671E-02 + -7.1301636081022102E-03 -6.5802090186572681E-02 -1.1506887095369646E-01 + -1.4822246747711934E-01 -1.6050253964873970E-01 -1.4990844683568907E-01 + -1.1768169207805537E-01 -6.8341601736403454E-02 -9.2124726541051530E-03 + 5.0545153964213517E-02 1.0129976190441758E-01 1.3452643754434732E-01 + 1.4434579575849052E-01 1.2874122302052574E-01 9.0188106822784414E-02 + 3.5501047105700088E-02 -2.5169815460939850E-02 -8.0099612894601824E-02 + -1.1824012938996215E-01 -1.3154851943096663E-01 -1.1689880836291038E-01 + -7.7098764789328297E-02 -2.0667451723617353E-02 3.9730698765018072E-02 + 8.9988521648479106E-02 1.1787261195734276E-01 1.1619221242842605E-01 + 8.4979415485805065E-02 3.1975405768257630E-02 -2.8923620771351050E-02 + -8.1082110373837765E-02 -1.0965393166476645E-01 -1.0602704758796218E-01 + -7.0826412017876442E-02 -1.4359312007987330E-02 4.5961774293143805E-02 + 9.0756635765577326E-02 1.0497253355257290E-01 8.3313336522977857E-02 + 3.2772554446279530E-02 -2.9016007145998071E-02 -7.9526429179081190E-02 + -9.9512493644856745E-02 -8.0708806919519191E-02 -2.9904940853875097E-02 + 3.2750859789198880E-02 8.1239006323475957E-02 9.4440209772628167E-02 + 6.5818909488211202E-02 7.4573433766355959E-03 -5.4179036181034514E-02 + -8.9784259604784047E-02 -8.1330942795157166E-02 -3.1974602991903522E-02 + 3.3936387603577783E-02 8.2054824466865489E-02 8.5828027447830038E-02 + 4.1849403866384673E-02 -2.6329546287791300E-02 -7.9711863135406860E-02 + -8.5861911608043198E-02 -3.9313535128776819E-02 3.2684403143406586E-02 + 8.4813377948400312E-02 8.1892224625260218E-02 2.3489149916803856E-02 + -5.2587205984943791E-02 -9.3391661404461507E-02 -6.7629025198821663E-02 + 9.1351255786494140E-03 8.1608995391310460E-02 9.3477849494206955E-02 + 3.1735426904794056E-02 -5.8332704949668766E-02 -1.0427647688599087E-01 + -6.4461066129861480E-02 3.2862898217945948E-02 1.0655217303480576E-01 + 8.9042231346616096E-02 -1.0665539034730508E-02 -1.0655121390657546E-01 + -1.0780492883410986E-01 -5.4850780414344253E-03 1.0908210163943681E-01 + 1.2314760775340326E-01 1.3865274975024038E-02 -1.1750418686260362E-01 + -1.3622477871348382E-01 -1.2550645783063702E-02 1.3381687366949951E-01 + 1.4611166737527889E-01 -1.1336891437748850E-03 -1.5826028482132981E-01 + -1.4921810716325815E-01 3.0244509770902504E-02 1.8825946553617467E-01 + 1.3917927087075344E-01 -7.6688185616413510E-02 -2.1703944622667284E-01 + -1.0789184426808106E-01 1.3851847103056561E-01 2.3287840628558204E-01 + 4.8475558701869426E-02 -2.0687161320203459E-01 -2.2041496511923050E-01 + 3.9643370199665670E-02 2.6432290227894806E-01 1.6682189501823616E-01 + -1.5209205545375898E-01 + + + 4.5221940197274302E+00 4.5221940182683635E+00 4.5221940138109566E+00 + 4.5221940062326960E+00 4.5221939954070320E+00 4.5221939812033805E+00 + 4.5221939634870116E+00 4.5221939421189212E+00 4.5221939169557102E+00 + 4.5221938878494541E+00 4.5221938546475711E+00 4.5221938171926883E+00 + 4.5221937753224966E+00 4.5221937288696132E+00 4.5221936776614289E+00 + 4.5221936215199570E+00 4.5221935602616821E+00 4.5221934936973911E+00 + 4.5221934216320125E+00 4.5221933438644504E+00 4.5221932601873993E+00 + 4.5221931703871752E+00 4.5221930742435221E+00 4.5221929715294333E+00 + 4.5221928620109431E+00 4.5221927454469339E+00 4.5221926215889310E+00 + 4.5221924901808848E+00 4.5221923509589574E+00 4.5221922036512927E+00 + 4.5221920479777964E+00 4.5221918836498860E+00 4.5221917103702607E+00 + 4.5221915278326348E+00 4.5221913357214953E+00 4.5221911337118312E+00 + 4.5221909214688587E+00 4.5221906986477425E+00 4.5221904648933124E+00 + 4.5221902198397634E+00 4.5221899631103541E+00 4.5221896943170936E+00 + 4.5221894130604152E+00 4.5221891189288561E+00 4.5221888114987099E+00 + 4.5221884903336820E+00 4.5221881549845282E+00 4.5221878049886861E+00 + 4.5221874398698985E+00 4.5221870591378224E+00 4.5221866622876279E+00 + 4.5221862487995859E+00 4.5221858181386478E+00 4.5221853697540082E+00 + 4.5221849030786565E+00 4.5221844175289201E+00 4.5221839125039942E+00 + 4.5221833873854456E+00 4.5221828415367273E+00 4.5221822743026561E+00 + 4.5221816850088876E+00 4.5221810729613745E+00 4.5221804374458126E+00 + 4.5221797777270591E+00 4.5221790930485568E+00 4.5221783826317150E+00 + 4.5221776456752991E+00 4.5221768813547856E+00 4.5221760888217046E+00 + 4.5221752672029707E+00 4.5221744156001789E+00 4.5221735330889024E+00 + 4.5221726187179501E+00 4.5221716715086187E+00 4.5221706904539110E+00 + 4.5221696745177518E+00 4.5221686226341591E+00 4.5221675337064093E+00 + 4.5221664066061642E+00 4.5221652401725976E+00 4.5221640332114648E+00 + 4.5221627844941779E+00 4.5221614927568341E+00 4.5221601566992291E+00 + 4.5221587749838310E+00 4.5221573462347422E+00 4.5221558690366166E+00 + 4.5221543419335575E+00 4.5221527634279788E+00 4.5221511319794354E+00 + 4.5221494460034286E+00 4.5221477038701634E+00 4.5221459039032892E+00 + 4.5221440443785879E+00 4.5221421235226407E+00 4.5221401395114507E+00 + 4.5221380904690225E+00 4.5221359744659173E+00 4.5221337895177491E+00 + 4.5221315335836545E+00 4.5221292045647150E+00 4.5221268003023294E+00 + 4.5221243185765534E+00 4.5221217571043795E+00 4.5221191135379826E+00 + 4.5221163854629083E+00 4.5221135703962085E+00 4.5221106657845356E+00 + 4.5221076690021791E+00 4.5221045773490438E+00 4.5221013880485730E+00 + 4.5220980982456256E+00 4.5220947050042746E+00 4.5220912053055615E+00 + 4.5220875960451803E+00 4.5220838740311011E+00 4.5220800359811273E+00 + 4.5220760785203744E+00 4.5220719981787028E+00 4.5220677913880571E+00 + 4.5220634544797385E+00 4.5220589836816094E+00 4.5220543751152107E+00 + 4.5220496247928015E+00 4.5220447286143219E+00 4.5220396823642641E+00 + 4.5220344817084666E+00 4.5220291221908093E+00 4.5220235992298239E+00 + 4.5220179081152043E+00 4.5220120440042342E+00 4.5220060019180943E+00 + 4.5219997767380891E+00 4.5219933632017515E+00 4.5219867558988538E+00 + 4.5219799492672967E+00 4.5219729375888926E+00 4.5219657149850301E+00 + 4.5219582754122136E+00 4.5219506126574869E+00 4.5219427203337261E+00 + 4.5219345918748024E+00 4.5219262205306112E+00 4.5219175993619629E+00 + 4.5219087212353353E+00 4.5218995788174761E+00 4.5218901645698617E+00 + 4.5218804707429960E+00 4.5218704893705519E+00 4.5218602122633627E+00 + 4.5218496310032279E+00 4.5218387369365640E+00 4.5218275211678671E+00 + 4.5218159745530020E+00 4.5218040876923054E+00 4.5217918509234947E+00 + 4.5217792543143789E+00 4.5217662876553737E+00 4.5217529404518046E+00 + 4.5217392019159943E+00 4.5217250609591444E+00 4.5217105061829646E+00 + 4.5216955258711033E+00 4.5216801079803197E+00 4.5216642401314084E+00 + 4.5216479095998894E+00 4.5216311033064249E+00 4.5216138078069745E+00 + 4.5215960092826855E+00 4.5215776935294851E+00 4.5215588459473990E+00 + 4.5215394515295682E+00 4.5215194948509643E+00 4.5214989600567792E+00 + 4.5214778308505101E+00 4.5214560904816992E+00 4.5214337217333398E+00 + 4.5214107069089327E+00 4.5213870278191761E+00 4.5213626657682964E+00 + 4.5213376015399858E+00 4.5213118153829575E+00 4.5212852869961031E+00 + 4.5212579955132179E+00 4.5212299194873271E+00 4.5212010368745545E+00 + 4.5211713250175514E+00 4.5211407606284570E+00 4.5211093197714014E+00 + 4.5210769778444941E+00 4.5210437095613312E+00 4.5210094889319787E+00 + 4.5209742892434255E+00 4.5209380830394927E+00 4.5209008421001782E+00 + 4.5208625374204265E+00 4.5208231391883054E+00 4.5207826167625749E+00 + 4.5207409386496202E+00 4.5206980724797514E+00 4.5206539849828271E+00 + 4.5206086419632063E+00 4.5205620082739904E+00 4.5205140477905452E+00 + 4.5204647233832915E+00 4.5204139968897072E+00 4.5203618290855676E+00 + 4.5203081796553652E+00 4.5202530071619105E+00 4.5201962690150541E+00 + 4.5201379214395523E+00 4.5200779194420253E+00 4.5200162167769662E+00 + 4.5199527659118157E+00 4.5198875179910356E+00 4.5198204227991763E+00 + 4.5197514287228984E+00 4.5196804827119204E+00 4.5196075302388659E+00 + 4.5195325152579704E+00 4.5194553801626220E+00 4.5193760657416959E+00 + 4.5192945111346514E+00 4.5192106537853620E+00 4.5191244293946129E+00 + 4.5190357718712786E+00 4.5189446132820850E+00 4.5188508837999519E+00 + 4.5187545116508678E+00 4.5186554230592346E+00 4.5185535421916683E+00 + 4.5184487910991802E+00 4.5183410896577154E+00 4.5182303555069767E+00 + 4.5181165039874998E+00 4.5179994480759307E+00 4.5178790983184252E+00 + 4.5177553627621521E+00 4.5176281468848156E+00 4.5174973535221428E+00 + 4.5173628827932806E+00 4.5172246320240497E+00 4.5170824956679523E+00 + 4.5169363652249181E+00 4.5167861291576763E+00 4.5166316728057110E+00 + 4.5164728782966996E+00 4.5163096244553884E+00 4.5161417867098042E+00 + 4.5159692369947182E+00 4.5157918436523072E+00 4.5156094713298840E+00 + 4.5154219808746401E+00 4.5152292292252953E+00 4.5150310693005560E+00 + 4.5148273498842872E+00 4.5146179155072916E+00 4.5144026063256062E+00 + 4.5141812579951752E+00 4.5139537015428113E+00 4.5137197632333370E+00 + 4.5134792644327391E+00 4.5132320214672701E+00 4.5129778454783178E+00 + 4.5127165422729405E+00 4.5124479121699146E+00 4.5121717498411531E+00 + 4.5118878441483403E+00 4.5115959779746522E+00 4.5112959280513714E+00 + 4.5109874647792507E+00 4.5106703520444569E+00 4.5103443470288935E+00 + 4.5100092000147640E+00 4.5096646541831316E+00 4.5093104454063200E+00 + 4.5089463020339364E+00 4.5085719446722976E+00 4.5081870859570587E+00 + 4.5077914303187985E+00 4.5073846737413357E+00 4.5069665035125368E+00 + 4.5065365979673526E+00 4.5060946262228203E+00 4.5056402479047737E+00 + 4.5051731128659620E+00 4.5046928608952896E+00 4.5041991214178871E+00 + 4.5036915131856725E+00 4.5031696439580928E+00 4.5026331101727139E+00 + 4.5020814966052765E+00 4.5015143760188892E+00 4.5009313088019498E+00 + 4.5003318425944201E+00 4.4997155119020285E+00 4.4990818376979966E+00 + 4.4984303270118202E+00 4.4977604725046820E+00 4.4970717520309806E+00 + 4.4963636281855193E+00 4.4956355478358097E+00 4.4948869416389909E+00 + 4.4941172235427613E+00 4.4933257902698065E+00 4.4925120207850791E+00 + 4.4916752757453340E+00 4.4908148969302619E+00 4.4899302066545577E+00 + 4.4890205071602276E+00 4.4880850799884042E+00 4.4871231853299296E+00 + 4.4861340613539040E+00 4.4851169235134307E+00 4.4840709638276497E+00 + 4.4829953501392508E+00 4.4818892253465181E+00 4.4807517066089622E+00 + 4.4795818845255715E+00 4.4783788222846557E+00 4.4771415547842262E+00 + 4.4758690877218097E+00 4.4745603966525422E+00 4.4732144260143976E+00 + 4.4718300881192565E+00 4.4704062621086083E+00 4.4689417928724957E+00 + 4.4674354899303781E+00 4.4658861262724496E+00 4.4642924371599539E+00 + 4.4626531188829510E+00 4.4609668274739400E+00 4.4592321773757071E+00 + 4.4574477400616637E+00 4.4556120426069290E+00 4.4537235662082981E+00 + 4.4517807446512281E+00 4.4497819627218478E+00 4.4477255545619876E+00 + 4.4456098019650963E+00 4.4434329326109214E+00 4.4411931182366562E+00 + 4.4388884727422901E+00 4.4365170502277396E+00 4.4340768429593123E+00 + 4.4315657792629803E+00 4.4289817213418079E+00 4.4263224630149089E+00 + 4.4235857273751220E+00 4.4207691643625751E+00 4.4178703482512560E+00 + 4.4148867750455647E+00 4.4118158597838297E+00 4.4086549337456313E+00 + 4.4054012415597663E+00 4.4020519382095795E+00 4.3986040859323703E+00 + 4.3950546510094810E+00 4.3914005004436696E+00 4.3876383985203065E+00 + 4.3837650032488815E+00 4.3797768626813269E+00 4.3756704111035960E+00 + 4.3714419650969694E+00 4.3670877194655553E+00 4.3626037430264475E+00 + 4.3579859742590950E+00 4.3532302168104469E+00 4.3483321348525310E+00 + 4.3432872482892124E+00 4.3380909278090432E+00 4.3327383897811815E+00 + 4.3272246909916428E+00 4.3215447232172650E+00 4.3156932076351264E+00 + 4.3096646890653254E+00 4.3034535300454895E+00 4.2970539047357148E+00 + 4.2904597926530732E+00 4.2836649722353481E+00 4.2766630142342583E+00 + 4.2694472749390018E+00 4.2620108892317567E+00 4.2543467634775034E+00 + 4.2464475682515079E+00 4.2383057309087304E+00 4.2299134280006179E+00 + 4.2212625775458763E+00 4.2123448311632750E+00 4.2031515660759311E+00 + 4.1936738769982762E+00 4.1839025679186221E+00 4.1738281437923073E+00 + 4.1634408021625333E+00 4.1527304247284027E+00 4.1416865688822586E+00 + 4.1302984592412706E+00 4.1185549792012957E+00 4.1064446625443622E+00 + 4.0939556851348256E+00 4.0810758567431389E+00 4.0677926130404867E+00 + 4.0540930078121082E+00 4.0399637054421822E+00 4.0253909737284745E+00 + 4.0103606770907261E+00 3.9948582702430531E+00 3.9788687924071846E+00 + 3.9623768621506459E+00 3.9453666729415335E+00 3.9278219895197650E+00 + 3.9097261451933756E+00 3.8910620401776543E+00 3.8718121411048294E+00 + 3.8519584818423414E+00 3.8314826657688106E+00 3.8103658696683551E+00 + 3.7885888494161768E+00 3.7661319476410622E+00 3.7429751035638028E+00 + 3.7190978652244815E+00 3.6944794043258771E+00 3.6690985339352062E+00 + 3.6429337293015371E+00 3.6159631520618416E+00 3.5881646781242797E+00 + 3.5595159295331680E+00 3.5299943106356690E+00 3.4995770488856204E+00 + 3.4682412406347232E+00 3.4359639022752146E+00 3.4027220271110106E+00 + 3.3684926483454358E+00 3.3332529085828444E+00 3.2969801362480253E+00 + 3.2596519293305497E+00 3.2212462468606540E+00 3.1817415085176832E+00 + 3.1411167027608200E+00 3.0993515038534691E+00 3.0564263981260118E+00 + 3.0123228197851364E+00 2.9670232965297636E+00 2.9205116051718938E+00 + 2.8727729373829400E+00 2.8237940755899191E+00 2.7735635789280066E+00 + 2.7220719790131462E+00 2.6693119851266607E+00 2.6152786981987477E+00 + 2.5599698327342253E+00 2.5033859455362371E+00 2.4455306697453265E+00 + 2.3864109523148231E+00 2.3260372925807595E+00 2.2644239790456004E+00 + 2.2015893208696991E+00 2.1375558698399635E+00 2.0723506277483934E+00 + 2.0060052331480343E+00 1.9385561203432407E+00 1.8700446421950365E+00 + 1.8005171468583459E+00 1.7300249968912080E+00 1.6586245172576688E+00 + 1.5863768565547220E+00 1.5133477432926319E+00 1.4396071162073889E+00 + 1.3652286043376396E+00 1.2902888289052648E+00 1.2148664948409909E+00 + 1.1390412350289083E+00 1.0628935616206390E+00 9.8650481683742075E-01 + 9.0995712322801015E-01 8.3333333333333293E-01 7.5671697869141119E-01 + 6.8019221809837072E-01 6.0384378502324509E-01 5.2775693405598156E-01 + 4.5201738624953847E-01 3.7671127319836623E-01 3.0192507967691051E-01 + 2.2774558464324574E-01 1.5425980039459125E-01 8.1554909643432774E-02 + 9.7182002653976845E-03 -6.1163002546951638E-02 -1.3100140700647400E-01 + -1.9970982862734393E-01 -2.6720126760611912E-01 -3.3338899001260047E-01 + -3.9818661312665393E-01 -4.6150819526709091E-01 -5.2326833046680377E-01 + -5.8338224835447450E-01 -6.4176591960707596E-01 -6.9833616733893500E-01 + -7.5301078479212114E-01 -8.0570865968919902E-01 -8.5634990560282342E-01 + -9.0485600068706817E-01 -9.5114993410272997E-01 -9.9515636045296429E-01 + -1.0368017625265866E+00 -1.0760146226238443E+00 -1.1127256027138728E+00 + -1.1468677336441817E+00 -1.1783766135895319E+00 -1.2071906158940031E+00 + -1.2332511064185245E+00 -1.2565026704655646E+00 -1.2768933493093262E+00 + -1.2943748863061799E+00 -1.3089029825132312E+00 -1.3204375616834845E+00 + -1.3289430444447108E+00 -1.3343886314064100E+00 -1.3367485948649542E+00 + -1.3360025786999563E+00 -1.3321359059681270E+00 -1.3251398936050984E+00 + -1.3150121735389815E+00 -1.3017570194000065E+00 -1.2853856778767734E+00 + -1.2659167036196290E+00 -1.2433762964235240E+00 -1.2177986392349398E+00 + -1.1892262353183738E+00 -1.1577102426864128E+00 -1.1233108036426540E+00 + -1.0860973670083509E+00 -1.0461490003017939E+00 -1.0035546888149394E+00 + -9.5841361818616466E-01 -9.1083543670346434E-01 -8.6094049319212651E-01 + -8.0886004594862404E-01 -7.5473643778311728E-01 -6.9872323183211216E-01 + -6.4098530240701412E-01 -5.8169887476106641E-01 -5.2105150729465532E-01 + -4.5924200938646548E-01 -3.9648028774539318E-01 -3.3298711393628960E-01 + -2.6899380555297497E-01 -2.0474181340671779E-01 -1.4048220708023421E-01 + -7.6475051279413828E-02 -1.2988665610929933E-02 4.9701239262698101E-02 + 1.1131255567451592E-01 1.7155790917598207E-01 2.3014593010993253E-01 + 2.8678267074666175E-01 3.4117317104006528E-01 3.9302317470476905E-01 + 4.4204099575134631E-01 4.8793953383933036E-01 5.3043843481337782E-01 + 5.6926639057602479E-01 6.0416357002340615E-01 6.3488417013387266E-01 + 6.6119907346311424E-01 6.8289859527659247E-01 6.9979530035853277E-01 + 7.1172686619875203E-01 7.1855896580156209E-01 7.2018813981754004E-01 + 7.1654462410782005E-01 7.0759509525667874E-01 6.9334529300366798E-01 + 6.7384247513119266E-01 6.4917765708530961E-01 6.1948758560392592E-01 + 5.8495639296443558E-01 5.4581687623932207E-01 5.0235134427119987E-01 + 4.5489197406667892E-01 4.0382061809027170E-01 3.4956800465406923E-01 + 2.9261227539337126E-01 2.3347680684681679E-01 1.7272726757987872E-01 + 1.1096786826158594E-01 4.8836769781079023E-02 -1.2999375980787830E-02 + -7.3851766598263910E-02 -1.3301667103721304E-01 -1.8978351758251666E-01 + -2.4344381428326012E-01 -2.9330084827884989E-01 -3.3868008809329586E-01 + -3.7894018874853419E-01 -4.1348447358932505E-01 -4.4177273936959888E-01 + -4.6333320287181884E-01 -4.7777437868762529E-01 -4.8479664948150447E-01 + -4.8420326292906063E-01 -4.7591046454819963E-01 -4.5995645394540668E-01 + -4.3650883483303721E-01 -4.0587021790862365E-01 -3.6848163179138971E-01 + -3.2492340221687299E-01 -2.7591317515235242E-01 -2.2230078693602329E-01 + -1.6505972538493338E-01 -1.0527498130509498E-01 -4.4127160944934386E-02 + 1.7127182742683586E-02 7.7178938518146334E-02 1.3469336397882911E-01 + 1.8834023638326683E-01 2.3682676567565092E-01 2.7893265233701714E-01 + 3.1354651159300051E-01 3.3970272448542499E-01 3.5661762183230949E-01 + 3.6372376676891427E-01 3.6070098404532319E-01 3.4750269909928189E-01 + 3.2437610728680982E-01 2.9187470394048404E-01 2.5086177929544234E-01 + 2.0250362808753786E-01 1.4825144953201025E-01 8.9811224793072464E-02 + 2.9101258026976398E-02 -3.1802448534259897E-02 -9.0732252517366482E-02 + -1.4550500220764950E-01 -1.9400620819843359E-01 -2.3427953463908860E-01 + -2.6461821678819458E-01 -2.8365439820169780E-01 -2.9044187358469831E-01 + -2.8452737379080612E-01 -2.6600539117378441E-01 -2.3555166855529874E-01 + -1.9443091003297425E-01 -1.4447505297099758E-01 -8.8029588398779585E-02 + -2.7866931049297224E-02 3.2932306950485657E-02 9.1127152007597079E-02 + 1.4348790903060779E-01 1.8698392508918601E-01 2.1897753099421949E-01 + 2.3741225436326524E-01 2.4098195832150746E-01 2.2926686572135496E-01 + 2.0282269263441441E-01 1.6321051640623641E-01 1.1295766306803201E-01 + 5.5443850201267603E-02 -5.2880144133664641E-03 -6.4790814392229723E-02 + -1.1852962165534416E-01 -1.6223621765046817E-01 -1.9227604436315898E-01 + -2.0599675793317157E-01 -2.0202448847786988E-01 -1.8047366209717128E-01 + -1.4303944126306065E-01 -9.2948872292486814E-02 -3.4757724173150345E-02 + 2.6005660135591073E-02 8.3331343452999182E-02 1.3131759680543939E-01 + 1.6480661783631154E-01 1.7999963684797629E-01 1.7497698665555650E-01 + 1.5004880608048451E-01 1.0787182740396008E-01 5.3287892788430671E-02 + -7.1301636081022102E-03 -6.5802090186572681E-02 -1.1506887095369646E-01 + -1.4822246747711934E-01 -1.6050253964873970E-01 -1.4990844683568907E-01 + -1.1768169207805537E-01 -6.8341601736403454E-02 -9.2124726541051530E-03 + 5.0545153964213517E-02 1.0129976190441758E-01 1.3452643754434732E-01 + 1.4434579575849052E-01 1.2874122302052574E-01 9.0188106822784414E-02 + 3.5501047105700088E-02 -2.5169815460939850E-02 -8.0099612894601824E-02 + -1.1824012938996215E-01 -1.3154851943096663E-01 -1.1689880836291038E-01 + -7.7098764789328297E-02 -2.0667451723617353E-02 3.9730698765018072E-02 + 8.9988521648479106E-02 1.1787261195734276E-01 1.1619221242842605E-01 + 8.4979415485805065E-02 3.1975405768257630E-02 -2.8923620771351050E-02 + -8.1082110373837765E-02 -1.0965393166476645E-01 -1.0602704758796218E-01 + -7.0826412017876442E-02 -1.4359312007987330E-02 4.5961774293143805E-02 + 9.0756635765577326E-02 1.0497253355257290E-01 8.3313336522977857E-02 + 3.2772554446279530E-02 -2.9016007145998071E-02 -7.9526429179081190E-02 + -9.9512493644856745E-02 -8.0708806919519191E-02 -2.9904940853875097E-02 + 3.2750859789198880E-02 8.1239006323475957E-02 9.4440209772628167E-02 + 6.5818909488211202E-02 7.4573433766355959E-03 -5.4179036181034514E-02 + -8.9784259604784047E-02 -8.1330942795157166E-02 -3.1974602991903522E-02 + 3.3936387603577783E-02 8.2054824466865489E-02 8.5828027447830038E-02 + 4.1849403866384673E-02 -2.6329546287791300E-02 -7.9711863135406860E-02 + -8.5861911608043198E-02 -3.9313535128776819E-02 3.2684403143406586E-02 + 8.4813377948400312E-02 8.1892224625260218E-02 2.3489149916803856E-02 + -5.2587205984943791E-02 -9.3391661404461507E-02 -6.7629025198821663E-02 + 9.1351255786494140E-03 8.1608995391310460E-02 9.3477849494206955E-02 + 3.1735426904794056E-02 -5.8332704949668766E-02 -1.0427647688599087E-01 + -6.4461066129861480E-02 3.2862898217945948E-02 1.0655217303480576E-01 + 8.9042231346616096E-02 -1.0665539034730508E-02 -1.0655121390657546E-01 + -1.0780492883410986E-01 -5.4850780414344253E-03 1.0908210163943681E-01 + 1.2314760775340326E-01 1.3865274975024038E-02 -1.1750418686260362E-01 + -1.3622477871348382E-01 -1.2550645783063702E-02 1.3381687366949951E-01 + 1.4611166737527889E-01 -1.1336891437748850E-03 -1.5826028482132981E-01 + -1.4921810716325815E-01 3.0244509770902504E-02 1.8825946553617467E-01 + 1.3917927087075344E-01 -7.6688185616413510E-02 -2.1703944622667284E-01 + -1.0789184426808106E-01 1.3851847103056561E-01 2.3287840628558204E-01 + 4.8475558701869426E-02 -2.0687161320203459E-01 -2.2041496511923050E-01 + 3.9643370199665670E-02 2.6432290227894806E-01 1.6682189501823616E-01 + -1.5209205545375898E-01 + + + 3.3397090291611228E+01 3.3397090181307739E+01 3.3397089844332427E+01 + 3.3397089271423816E+01 3.3397088453015087E+01 3.3397087379234058E+01 + 3.3397086039895392E+01 3.3397084424490394E+01 3.3397082522178586E+01 + 3.3397080321776784E+01 3.3397077811750030E+01 3.3397074980201545E+01 + 3.3397071814860794E+01 3.3397068303073773E+01 3.3397064431791627E+01 + 3.3397060187558857E+01 3.3397055556502259E+01 3.3397050524317372E+01 + 3.3397045076257378E+01 3.3397039197120051E+01 3.3397032871233357E+01 + 3.3397026082443027E+01 3.3397018814098743E+01 3.3397011049039101E+01 + 3.3397002769576922E+01 3.3396993957484732E+01 3.3396984593978225E+01 + 3.3396974659700959E+01 3.3396964134707744E+01 3.3396952998447091E+01 + 3.3396941229744861E+01 3.3396928806785382E+01 3.3396915707093527E+01 + 3.3396901907515911E+01 3.3396887384200681E+01 3.3396872112578606E+01 + 3.3396856067341723E+01 3.3396839222421654E+01 3.3396821550969747E+01 + 3.3396803025333014E+01 3.3396783617031886E+01 3.3396763296736594E+01 + 3.3396742034241910E+01 3.3396719798444138E+01 3.3396696557313767E+01 + 3.3396672277869804E+01 3.3396646926152741E+01 3.3396620467196172E+01 + 3.3396592864998723E+01 3.3396564082494329E+01 3.3396534081522184E+01 + 3.3396502822795185E+01 3.3396470265868508E+01 3.3396436369106496E+01 + 3.3396401089648620E+01 3.3396364383375293E+01 3.3396326204871961E+01 + 3.3396286507391750E+01 3.3396245242819191E+01 3.3396202361630280E+01 + 3.3396157812852813E+01 3.3396111544025658E+01 3.3396063501157052E+01 + 3.3396013628680230E+01 3.3395961869410854E+01 3.3395908164498714E+01 + 3.3395852453383107E+01 3.3395794673743161E+01 3.3395734761448843E+01 + 3.3395672650510143E+01 3.3395608273023591E+01 3.3395541559120090E+01 + 3.3395472436908051E+01 3.3395400832417046E+01 3.3395326669539145E+01 + 3.3395249869969419E+01 3.3395170353143492E+01 3.3395088036174812E+01 + 3.3395002833787821E+01 3.3394914658253256E+01 3.3394823419316936E+01 + 3.3394729024130619E+01 3.3394631377178321E+01 3.3394530380201999E+01 + 3.3394425932124022E+01 3.3394317928968540E+01 3.3394206263781058E+01 + 3.3394090826543469E+01 3.3393971504089897E+01 3.3393848180016313E+01 + 3.3393720734593501E+01 3.3393589044669888E+01 3.3393452983579820E+01 + 3.3393312421041607E+01 3.3393167223059145E+01 3.3393017251817547E+01 + 3.3392862365575553E+01 3.3392702418557185E+01 3.3392537260837472E+01 + 3.3392366738228411E+01 3.3392190692159467E+01 3.3392008959554410E+01 + 3.3391821372706964E+01 3.3391627759150545E+01 3.3391427941526899E+01 + 3.3391221737448994E+01 3.3391008959360562E+01 3.3390789414393055E+01 + 3.3390562904217589E+01 3.3390329224892270E+01 3.3390088166706533E+01 + 3.3389839514021077E+01 3.3389583045101887E+01 3.3389318531951666E+01 + 3.3389045740135181E+01 3.3388764428601249E+01 3.3388474349497599E+01 + 3.3388175247982723E+01 3.3387866862031913E+01 3.3387548922237883E+01 + 3.3387221151604379E+01 3.3386883265338362E+01 3.3386534970630876E+01 + 3.3386175966436397E+01 3.3385805943244300E+01 3.3385424582842909E+01 + 3.3385031558080193E+01 3.3384626532614547E+01 3.3384209160661193E+01 + 3.3383779086729483E+01 3.3383335945355540E+01 3.3382879360824973E+01 + 3.3382408946890330E+01 3.3381924306477913E+01 3.3381425031389981E+01 + 3.3380910701996399E+01 3.3380380886918488E+01 3.3379835142704508E+01 + 3.3379273013495165E+01 3.3378694030681750E+01 3.3378097712553945E+01 + 3.3377483563937076E+01 3.3376851075821143E+01 3.3376199724978505E+01 + 3.3375528973572209E+01 3.3374838268751624E+01 3.3374127042239685E+01 + 3.3373394709906613E+01 3.3372640671332945E+01 3.3371864309361428E+01 + 3.3371064989634291E+01 3.3370242060120972E+01 3.3369394850630158E+01 + 3.3368522672310377E+01 3.3367624817136459E+01 3.3366700557381634E+01 + 3.3365749145075533E+01 3.3364769811447523E+01 3.3363761766354884E+01 + 3.3362724197694924E+01 3.3361656270802570E+01 3.3360557127828919E+01 + 3.3359425887105694E+01 3.3358261642491449E+01 3.3357063462699045E+01 + 3.3355830390606073E+01 3.3354561442546540E+01 3.3353255607581772E+01 + 3.3351911846755350E+01 3.3350529092322219E+01 3.3349106246962371E+01 + 3.3347642182969416E+01 3.3346135741420888E+01 3.3344585731320997E+01 + 3.3342990928725612E+01 3.3341350075840964E+01 3.3339661880096870E+01 + 3.3337925013198223E+01 3.3336138110148390E+01 3.3334299768246865E+01 + 3.3332408546061266E+01 3.3330462962369182E+01 3.3328461495074919E+01 + 3.3326402580092861E+01 3.3324284610206291E+01 3.3322105933890690E+01 + 3.3319864854108488E+01 3.3317559627069905E+01 3.3315188460963093E+01 + 3.3312749514646640E+01 3.3310240896310866E+01 3.3307660662100886E+01 + 3.3305006814705273E+01 3.3302277301904930E+01 3.3299470015083919E+01 + 3.3296582787703258E+01 3.3293613393730219E+01 3.3290559546029094E+01 + 3.3287418894708019E+01 3.3284189025423359E+01 3.3280867457637058E+01 + 3.3277451642831004E+01 3.3273938962671359E+01 3.3270326727127063E+01 + 3.3266612172539077E+01 3.3262792459635577E+01 3.3258864671499794E+01 + 3.3254825811481140E+01 3.3250672801054996E+01 3.3246402477622752E+01 + 3.3242011592258791E+01 3.3237496807396653E+01 3.3232854694454971E+01 + 3.3228081731403442E+01 3.3223174300264915E+01 3.3218128684553477E+01 + 3.3212941066646550E+01 3.3207607525089450E+01 3.3202124031831374E+01 + 3.3196486449389297E+01 3.3190690527941499E+01 3.3184731902346499E+01 + 3.3178606089085108E+01 3.3172308483126912E+01 3.3165834354715031E+01 + 3.3159178846074802E+01 3.3152336968032593E+01 3.3145303596556822E+01 + 3.3138073469208976E+01 3.3130641181505453E+01 3.3123001183192777E+01 + 3.3115147774426589E+01 3.3107075101859479E+01 3.3098777154630753E+01 + 3.3090247760259253E+01 3.3081480580435176E+01 3.3072469106708908E+01 + 3.3063206656078485E+01 3.3053686366467375E+01 3.3043901192094928E+01 + 3.3033843898735959E+01 3.3023507058870059E+01 3.3012883046710769E+01 + 3.3001964033123343E+01 3.2990741980418790E+01 3.2979208637031078E+01 + 3.2967355532066236E+01 3.2955173969728897E+01 3.2942655023621050E+01 + 3.2929789530909609E+01 3.2916568086363064E+01 3.2902981036254204E+01 + 3.2889018472125912E+01 3.2874670224420356E+01 3.2859925855967482E+01 + 3.2844774655331314E+01 3.2829205630012609E+01 3.2813207499507349E+01 + 3.2796768688215856E+01 3.2779877318203049E+01 3.2762521201810920E+01 + 3.2744687834115240E+01 3.2726364385230951E+01 3.2707537692462040E+01 + 3.2688194252295972E+01 3.2668320212239806E+01 3.2647901362500924E+01 + 3.2626923127506032E+01 3.2605370557262589E+01 3.2583228318561289E+01 + 3.2560480686017570E+01 3.2537111532952828E+01 3.2513104322118224E+01 + 3.2488442096256968E+01 3.2463107468511154E+01 3.2437082612668284E+01 + 3.2410349253255177E+01 3.2382888655475391E+01 3.2354681614997141E+01 + 3.2325708447589690E+01 3.2295948978612479E+01 3.2265382532366374E+01 + 3.2233987921297960E+01 3.2201743435074874E+01 3.2168626829527632E+01 + 3.2134615315468544E+01 3.2099685547389143E+01 3.2063813612050168E+01 + 3.2026975016961678E+01 3.1989144678770099E+01 3.1950296911556869E+01 + 3.1910405415057504E+01 3.1869443262815210E+01 3.1827382890278557E+01 + 3.1784196082854272E+01 3.1739853963930621E+01 3.1694326982887848E+01 + 3.1647584903106427E+01 3.1599596789993992E+01 3.1550330999049759E+01 + 3.1499755163982321E+01 3.1447836184905828E+01 3.1394540216637278E+01 + 3.1339832657114638E+01 3.1283678135968088E+01 3.1226040503267107E+01 + 3.1166882818477362E+01 3.1106167339654203E+01 3.1043855512913215E+01 + 3.0979907962205257E+01 3.0914284479443538E+01 3.0846944015015950E+01 + 3.0777844668729244E+01 3.0706943681233412E+01 3.0634197425968480E+01 + 3.0559561401689542E+01 3.0482990225628914E+01 3.0404437627342315E+01 + 3.0323856443310589E+01 3.0241198612357429E+01 3.0156415171950627E+01 + 3.0069456255462349E+01 2.9980271090460164E+01 2.9888807998114515E+01 + 2.9795014393800905E+01 2.9698836788993326E+01 2.9600220794534977E+01 + 2.9499111125391764E+01 2.9395451606986331E+01 2.9289185183225410E+01 + 2.9180253926335389E+01 2.9068599048618641E+01 2.8954160916266822E+01 + 2.8836879065353450E+01 2.8716692220148172E+01 2.8593538313894893E+01 + 2.8467354512204810E+01 2.8338077239219206E+01 2.8205642206710081E+01 + 2.8069984446282653E+01 2.7931038344864625E+01 2.7788737683661477E+01 + 2.7643015680773381E+01 2.7493805037671486E+01 2.7341037989742372E+01 + 2.7184646361115501E+01 2.7024561623992327E+01 2.6860714962713907E+01 + 2.6693037342800004E+01 2.6521459585202955E+01 2.6345912446037051E+01 + 2.6166326702033540E+01 2.5982633241998407E+01 2.5794763164537368E+01 + 2.5602647882337063E+01 2.5406219233284634E+01 2.5205409598720482E+01 + 2.5000152029121963E+01 2.4790380377520652E+01 2.4576029440963588E+01 + 2.4357035110322517E+01 2.4133334528770170E+01 2.3904866259235565E+01 + 2.3671570461152008E+01 2.3433389076814077E+01 2.3190266027651546E+01 + 2.2942147420731686E+01 2.2688981765787677E+01 2.2430720203071623E+01 + 2.2167316742311538E+01 2.1898728513050642E+01 2.1624916026622241E+01 + 2.1345843450003375E+01 2.1061478891765848E+01 2.0771794700324278E+01 + 2.0476767774645573E+01 2.0176379887563556E+01 1.9870618021798336E+01 + 1.9559474718744490E+01 1.9242948440046320E+01 1.8921043941932005E+01 + 1.8593772662212722E+01 1.8261153119810370E+01 1.7923211326584415E+01 + 1.7579981211180804E+01 1.7231505054521090E+01 1.6877833936478485E+01 + 1.6519028193177412E+01 1.6155157884256564E+01 1.5786303269314178E+01 + 1.5412555292638480E+01 1.5034016075180228E+01 1.4650799412596525E+01 + 1.4263031278028540E+01 1.3870850328115617E+01 1.3474408410571501E+01 + 1.3073871071465009E+01 1.2669418060139517E+01 1.2261243829504870E+01 + 1.1849558029203807E+01 1.1434585988927857E+01 1.1016569188905066E+01 + 1.0595765714327809E+01 1.0172450690216534E+01 9.7469166929389779E+00 + 9.3194741343080985E+00 8.8904516138891232E+00 8.4601962348311606E+00 + 8.0290738782281004E+00 7.5974694306896717E+00 7.1657869594802994E+00 + 6.7344498292547881E+00 6.3039007540924006E+00 5.8746017782121500E+00 + 5.4470341784266765E+00 5.0216982810919060E+00 4.5991131860081014E+00 + 4.1798163894569020E+00 3.7643632982992923E+00 3.3533266268335304E+00 + 2.9472956679187479E+00 2.5468754297118772E+00 2.1526856292569616E+00 + 1.7653595341099371E+00 1.3855426431808324E+00 1.0138911980490284E+00 + 6.5107051615180400E-01 2.9775313747999738E-01 -4.5383223269206942E-02 + -3.7765792669442705E-01 -6.9838986793504476E-01 -1.0069001515828637E+00 + -1.3025149879046349E+00 -1.5845688151020365E+00 -1.8524076512694947E+00 + -2.1053926785101083E+00 -2.3429040602996496E+00 -2.5643449916764269E+00 + -2.7691459801617184E+00 -2.9567693534871800E+00 -3.1267139882297363E+00 + -3.2785202513380769E+00 -3.4117751442946935E+00 -3.5261176372986940E+00 + -3.6212441784194729E+00 -3.6969143601736301E+00 -3.7529567234603145E+00 + -3.7892746762952370E+00 -3.8058525023643934E+00 -3.8027614321344489E+00 + -3.7801657471762784E+00 -3.7383288865634570E+00 -3.6776195227846116E+00 + -3.5985175736604318E+00 -3.5016201163812077E+00 -3.3876471701139073E+00 + -3.2574473147639678E+00 -3.1120031155772514E+00 -2.9524363264350737E+00 + -2.7800128490724108E+00 -2.5961474311609005E+00 -2.4024080933402603E+00 + -2.2005202839591553E+00 -1.9923707705456060E+00 -1.7800112888849533E+00 + -1.5656619840017374E+00 -1.3517146921983036E+00 -1.1407361293853768E+00 + -9.3547106790968571E-01 -7.3885046793470299E-01 -5.5380242219226028E-01 + -3.8578582745983481E-01 -2.4055639108193108E-01 -1.2431304091423775E-01 + -4.3692712005935684E-02 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 + + + 1.0105508529182857E-04 5.4267925653037812E-04 9.2392113184112761E-04 + 1.2723343962935090E-03 1.6047728764319719E-03 1.9273905402759823E-03 + 2.2500519434026926E-03 2.5726347326386801E-03 2.8939150267319517E-03 + 3.2142341754153171E-03 3.5361648372269064E-03 3.8605704912698653E-03 + 4.1871119702522946E-03 4.5163911679985021E-03 4.8486998096286260E-03 + 5.1842199162114421E-03 5.5231642084509012E-03 5.8657037068970790E-03 + 6.2119929313385770E-03 6.5621719125074258E-03 6.9163687210158070E-03 + 7.2747022126155615E-03 7.6372836957626497E-03 8.0042184278911483E-03 + 8.3756067532736837E-03 8.7515450300312339E-03 9.1321263811601910E-03 + 9.5174413086774965E-03 9.9075782006455924E-03 1.0302623752300063E-02 + 1.0702663318532382E-02 1.1107781210818079E-02 1.1518060948960501E-02 + 1.1933585475834851E-02 1.2354437341652470E-02 1.2780698862977603E-02 + 1.3212452260719133E-02 1.3649779780527317E-02 1.4092763798396588E-02 + 1.4541486913774883E-02 1.4996032032078364E-02 1.5456482438186019E-02 + 1.5922921862226155E-02 1.6395434538752623E-02 1.6874105260233165E-02 + 1.7359019425627946E-02 1.7850263084717082E-02 1.8347922978736879E-02 + 1.8852086577802029E-02 1.9362842115521948E-02 1.9880278621161381E-02 + 2.0404485949646639E-02 2.0935554809677313E-02 2.1473576790168435E-02 + 2.2018644385218139E-02 2.2570851017770000E-02 2.3130291062118235E-02 + 2.3697059865384153E-02 2.4271253768076810E-02 2.4852970123836651E-02 + 2.5442307318448664E-02 2.6039364788201326E-02 2.6644243037658170E-02 + 2.7257043656901275E-02 2.7877869338298326E-02 2.8506823892839508E-02 + 2.9144012266084492E-02 2.9789540553755354E-02 3.0443516017006979E-02 + 3.1106047097402816E-02 3.1777243431620465E-02 3.2457215865908454E-02 + 3.3146076470313805E-02 3.3843938552696178E-02 3.4550916672543626E-02 + 3.5267126654602438E-02 3.5992685602331868E-02 3.6727711911193082E-02 + 3.7472325281780454E-02 3.8226646732801461E-02 3.8990798613911172E-02 + 3.9764904618405199E-02 4.0549089795774991E-02 4.1343480564127642E-02 + 4.2148204722472160E-02 4.2963391462872882E-02 4.3789171382470307E-02 + 4.4625676495368825E-02 4.5473040244390264E-02 4.6331397512691254E-02 + 4.7200884635242329E-02 4.8081639410165876E-02 4.8973801109929424E-02 + 4.9877510492390364E-02 5.0792909811688040E-02 5.1720142828977994E-02 + 5.2659354823003275E-02 5.3610692600497313E-02 5.4574304506411771E-02 + 5.5550340433963306E-02 5.6538951834492049E-02 5.7540291727124382E-02 + 5.8554514708232509E-02 5.9581776960682634E-02 6.0622236262862929E-02 + 6.1676051997482981E-02 6.2743385160134654E-02 6.3824398367605437E-02 + 6.4919255865933834E-02 6.6028123538196204E-02 6.7151168912014725E-02 + 6.8288561166774800E-02 6.9440471140540500E-02 7.0607071336656071E-02 + 7.1788535930020922E-02 7.2985040773025603E-02 7.4196763401135346E-02 + 7.5423883038107459E-02 7.6666580600829065E-02 7.7925038703760011E-02 + 7.9199441662966774E-02 8.0489975499731678E-02 8.1796827943721923E-02 + 8.3120188435701833E-02 8.4460248129772694E-02 8.5817199895121821E-02 + 8.7191238317264580E-02 8.8582559698760610E-02 8.9991362059386126E-02 + 9.1417845135743345E-02 9.2862210380287746E-02 9.4324660959753115E-02 + 9.5805401752954086E-02 9.7304639347945546E-02 9.8822582038517029E-02 + 1.0035943982000080E-01 1.0191542438437082E-01 1.0349074911460983E-01 + 1.0508562907832099E-01 1.0670028102056038E-01 1.0833492335586534E-01 + 1.0998977615945393E-01 1.1166506115756988E-01 1.1336100171694667E-01 + 1.1507782283336360E-01 1.1681575111926738E-01 1.1857501479043075E-01 + 1.2035584365161929E-01 1.2215846908123811E-01 1.2398312401492810E-01 + 1.2583004292808142E-01 1.2769946181724631E-01 1.2959161818038767E-01 + 1.3150675099597361E-01 1.3344510070085397E-01 1.3540690916689649E-01 + 1.3739241967634966E-01 1.3940187689589370E-01 1.4143552684934829E-01 + 1.4349361688899753E-01 1.4557639566549940E-01 1.4768411309633833E-01 + 1.4981702033278757E-01 1.5197536972533957E-01 1.5415941478756653E-01 + 1.5636941015837236E-01 1.5860561156259395E-01 1.6086827576991267E-01 + 1.6315766055203298E-01 1.6547402463808775E-01 1.6781762766822550E-01 + 1.7018873014533831E-01 1.7258759338488525E-01 1.7501447946276649E-01 + 1.7746965116120461E-01 1.7995337191258534E-01 1.8246590574121380E-01 + 1.8500751720293701E-01 1.8757847132258765E-01 1.9017903352920018E-01 + 1.9280946958895034E-01 1.9547004553577113E-01 1.9816102759959381E-01 + 2.0088268213216645E-01 2.0363527553039770E-01 2.0641907415717656E-01 + 2.0923434425961790E-01 2.1208135188468005E-01 2.1496036279210581E-01 + 2.1787164236463166E-01 2.2081545551541742E-01 2.2379206659263848E-01 + 2.2680173928119340E-01 2.2984473650146983E-01 2.3292132030511811E-01 + 2.3603175176777991E-01 2.3917629087871575E-01 2.4235519642728295E-01 + 2.4556872588620640E-01 2.4881713529159319E-01 2.5210067911963419E-01 + 2.5541961015994447E-01 2.5877417938548558E-01 2.6216463581902111E-01 + 2.6559122639605254E-01 2.6905419582418261E-01 2.7255378643885819E-01 + 2.7609023805543931E-01 2.7966378781754719E-01 2.8327467004164048E-01 + 2.8692311605777204E-01 2.9060935404647931E-01 2.9433360887175986E-01 + 2.9809610191009034E-01 3.0189705087543844E-01 3.0573666964023161E-01 + 3.0961516805223360E-01 3.1353275174729378E-01 3.1748962195792629E-01 + 3.2148597531768169E-01 3.2552200366127831E-01 3.2959789382045263E-01 + 3.3371382741550404E-01 3.3786998064249518E-01 3.4206652405608651E-01 + 3.4630362234797374E-01 3.5058143412090642E-01 3.5490011165826724E-01 + 3.5925980068918822E-01 3.6366064014919380E-01 3.6810276193635094E-01 + 3.7258629066292176E-01 3.7711134340250452E-01 3.8167802943266549E-01 + 3.8628644997305311E-01 3.9093669791900376E-01 3.9562885757064181E-01 + 4.0036300435748085E-01 4.0513920455854840E-01 4.0995751501804018E-01 + 4.1481798285653754E-01 4.1972064517780444E-01 4.2466552877120245E-01 + 4.2965264980975443E-01 4.3468201354389863E-01 4.3975361399097995E-01 + 4.4486743362052555E-01 4.5002344303536579E-01 4.5522160064865547E-01 + 4.6046185235686737E-01 4.6574413120882918E-01 4.7106835707088057E-01 + 4.7643443628824012E-01 4.8184226134266678E-01 4.8729171050652115E-01 + 4.9278264749332240E-01 4.9831492110492165E-01 5.0388836487540101E-01 + 5.0950279671182908E-01 5.1515801853200638E-01 5.2085381589933544E-01 + 5.2658995765497008E-01 5.3236619554739528E-01 5.3818226385960399E-01 + 5.4403787903404188E-01 5.4993273929550168E-01 5.5586652427215422E-01 + 5.6183889461491698E-01 5.6784949161536624E-01 5.7389793682240497E-01 + 5.7998383165791922E-01 5.8610675703164994E-01 5.9226627295553169E-01 + 5.9846191815774563E-01 6.0469320969675688E-01 6.1095964257560864E-01 + 6.1726068935675660E-01 6.2359579977774060E-01 6.2996440036800094E-01 + 6.3636589406715360E-01 6.4279965984505527E-01 6.4926505232399701E-01 + 6.5576140140338046E-01 6.6228801188723196E-01 6.6884416311494244E-01 + 6.7542910859560756E-01 6.8204207564637864E-01 6.8868226503522734E-01 + 6.9534885062856033E-01 7.0204097904411056E-01 7.0875776930956869E-01 + 7.1549831252741281E-01 7.2226167154641630E-01 7.2904688064033452E-01 + 7.3585294519426769E-01 7.4267884139923579E-01 7.4952351595548772E-01 + 7.5638588578511456E-01 7.6326483775452136E-01 7.7015922840735085E-01 + 7.7706788370845470E-01 7.8398959879953423E-01 7.9092313776707390E-01 + 7.9786723342323063E-01 8.0482058710033744E-01 8.1178186845970635E-01 + 8.1874971531544072E-01 8.2572273347396219E-01 8.3269949659000475E-01 + 8.3967854603982250E-01 8.4665839081238903E-01 8.5363750741937283E-01 + 8.6061433982470747E-01 8.6758729939457879E-01 8.7455476486867012E-01 + 8.8151508235353948E-01 8.8846656533898960E-01 8.9540749473834036E-01 + 9.0233611895351129E-01 9.0925065396583538E-01 9.1614928345354096E-01 + 9.2303015893686158E-01 9.2989139995172954E-01 9.3673109425302270E-01 + 9.4354729804834980E-01 9.5033803626334656E-01 9.5710130283947892E-01 + 9.6383506106532901E-01 9.7053724394235130E-01 9.7720575458605841E-01 + 9.8383846666361052E-01 9.9043322486874130E-01 9.9698784543493957E-01 + 1.0035001166877864E+00 1.0099677996372858E+00 1.0163886286110282E+00 + 1.0227603119289308E+00 1.0290805326202768E+00 1.0353469491836806E+00 + 1.0415571963905637E+00 1.0477088861326052E+00 1.0537996083135608E+00 + 1.0598269317857307E+00 1.0657884053312245E+00 1.0716815586880755E+00 + 1.0775039036210807E+00 1.0832529350371176E+00 1.0889261321445194E+00 + 1.0945209596559089E+00 1.1000348690337391E+00 1.1054652997775687E+00 + 1.1108096807519416E+00 1.1160654315535106E+00 1.1212299639158902E+00 + 1.1263006831505105E+00 1.1312749896215577E+00 1.1361502802529604E+00 + 1.1409239500651769E+00 1.1455933937394822E+00 1.1501560072073322E+00 + 1.1546091892623633E+00 1.1589503431925838E+00 1.1631768784304368E+00 + 1.1672862122185286E+00 1.1712757712891011E+00 1.1751429935556683E+00 + 1.1788853298156983E+00 1.1825002454638689E+00 1.1859852222161400E+00 + 1.1893377598458343E+00 1.1925553779340388E+00 1.1956356176379308E+00 + 1.1985760434822339E+00 1.2013742451807539E+00 1.2040278394970929E+00 + 1.2065344721559692E+00 1.2088918198193839E+00 1.2110975921449436E+00 + 1.2131495339472111E+00 1.2150454274869751E+00 1.2167830949177938E+00 + 1.2183604009242415E+00 1.2197752555917953E+00 1.2210256175543852E+00 + 1.2221094974720419E+00 1.2230249618977835E+00 1.2237701375993681E+00 + 1.2243432164074288E+00 1.2247424606658837E+00 1.2249662093621863E+00 + 1.2250128850124047E+00 1.2248810013669171E+00 1.2245691719840488E+00 + 1.2240761196876968E+00 1.2234006868770979E+00 1.2225418465882256E+00 + 1.2214987141132740E+00 1.2202705588649181E+00 1.2188568160258377E+00 + 1.2172570973559831E+00 1.2154712003508810E+00 1.2134991147724310E+00 + 1.2113410254359676E+00 1.2089973100685740E+00 1.2064685310924912E+00 + 1.2037554203712675E+00 1.2008588563113600E+00 1.1977798332441041E+00 + 1.1945194236990775E+00 1.1910787349633827E+00 1.1874588621159441E+00 + 1.1836608404253888E+00 1.1796856004943939E+00 1.1755339297257170E+00 + 1.1712064435065963E+00 1.1667035689301650E+00 1.1620255429157300E+00 + 1.1571724253323421E+00 1.1521441263107097E+00 1.1469404455378176E+00 + 1.1415611201814047E+00 1.1360058773807684E+00 1.1302744870847077E+00 + 1.1243668114225644E+00 1.1182828476489528E+00 1.1120227628112471E+00 + 1.1055869194301333E+00 1.0989758924696758E+00 1.0921904785889842E+00 + 1.0852316990780870E+00 1.0781007980167416E+00 1.0707992371247284E+00 + 1.0633286885737685E+00 1.0556910267740969E+00 1.0478883198841762E+00 + 1.0399228215520731E+00 1.0317969631973287E+00 1.0235133469868505E+00 + 1.0150747395447990E+00 1.0064840663584294E+00 9.9774440679244214E-01 + 9.8885898959673468E-01 9.7983118878083741E-01 9.7066451972808332E-01 + 9.6136263542998179E-01 9.5192932273366671E-01 9.4236849851046645E-01 + 9.3268420567010313E-01 9.2288060896159485E-01 9.1296199051781868E-01 + 9.0293274511528143E-01 8.9279737513367696E-01 8.8256048521102071E-01 + 8.7222677659955394E-01 8.6180104123524959E-01 8.5128815553968806E-01 + 8.4069307397757453E-01 8.3002082239630592E-01 8.1927649117609802E-01 + 8.0846522822030620E-01 7.9759223181600925E-01 7.8666274339477738E-01 + 7.7568204022293885E-01 7.6465542804980713E-01 7.5358823374116246E-01 + 7.4248579792406499E-01 7.3135346766769538E-01 7.2019658922356744E-01 + 7.0902050084702717E-01 6.9783052572058746E-01 6.8663196499827128E-01 + 6.7543009098880036E-01 6.6423014049417262E-01 6.5303730831889284E-01 + 6.4185674096388312E-01 6.3069353051789434E-01 6.1955270875803525E-01 + 6.0843924146989659E-01 5.9735802299656704E-01 5.8631387102472698E-01 + 5.7531152161486576E-01 5.6435562448157950E-01 5.5345073852878657E-01 + 5.4260132764362579E-01 5.3181175675172665E-01 5.2108628813547020E-01 + 5.1042907801583237E-01 4.9984417339736315E-01 4.8933550917485868E-01 + 4.7890690549929432E-01 4.6856206539965284E-01 4.5830457265634916E-01 + 4.4813788992107978E-01 4.3806535707708538E-01 4.2809018983301866E-01 + 4.1821547854287955E-01 4.0844418724379083E-01 3.9877915290277194E-01 + 3.8922308486313217E-01 3.7977856448062558E-01 3.7044804493914840E-01 + 3.6123385123545843E-01 3.5213818032222854E-01 3.4316310139865763E-01 + 3.3431055633794521E-01 3.2558236024105053E-01 3.1698020210650990E-01 + 3.0850564560654303E-01 3.0016012996005714E-01 2.9194497088940674E-01 + 2.8386136167820081E-01 2.7591037427234660E-01 2.6809296047064479E-01 + 2.6040995317450161E-01 2.5286206769871866E-01 2.4544990314175610E-01 + 2.3817394381508794E-01 2.3103456073264891E-01 2.2403201316270224E-01 + 2.1716645024568562E-01 2.1043791268271553E-01 2.0384633450037318E-01 + 1.9739154489814717E-01 1.9107327018541712E-01 1.8489113581510658E-01 + 1.7884466852109912E-01 1.7293329856616843E-01 1.6715636210654616E-01 + 1.6151310367831465E-01 1.5600267880961741E-01 1.5062415676122845E-01 + 1.4537652339637167E-01 1.4025868417885554E-01 1.3526946729665770E-01 + 1.3040762690609578E-01 1.2567184648971338E-01 1.2106074231906011E-01 + 1.1657286701167849E-01 1.1220671316990041E-01 1.0796071708752829E-01 + 1.0383326250916522E-01 9.9822684425900449E-02 9.5927272890255877E-02 + 9.2145276832778705E-02 8.8474907862418017E-02 8.4914344032853403E-02 + 8.1461733557234364E-02 7.8115198454329973E-02 7.4872838109858758E-02 + 7.1732732737748453E-02 6.8692946727240106E-02 6.5751531863075752E-02 + 6.2906530407471600E-02 6.0155978034151729E-02 5.7497906606380898E-02 + 5.4930346792660088E-02 5.2451330515519014E-02 5.0058893230629530E-02 + 4.7751076035251250E-02 4.5525927606788301E-02 4.3381505973955681E-02 + 4.1315880124709631E-02 3.9327131456662688E-02 3.7413355077158497E-02 + 3.5572660961504958E-02 3.3803174979030126E-02 3.2103039797617826E-02 + 3.0470415678177713E-02 2.8903481171094966E-02 2.7400433727072040E-02 + 2.5959490234917278E-02 2.4578887498746323E-02 2.3256882666748045E-02 + 2.1991753623137905E-02 2.0781799354191163E-02 1.9625340298339723E-02 + 1.8520718689254707E-02 1.7466298899651605E-02 1.6460467792278645E-02 + 1.5501635083216633E-02 1.4588233721263161E-02 1.3718720285830337E-02 + 1.2891575404483678E-02 1.2105304190018609E-02 1.1358436695835042E-02 + 1.0649528387349321E-02 9.9771606262918869E-03 9.3399411639883481E-03 + 8.7365046391174057E-03 8.1655130749826287E-03 7.6256563710231434E-03 + 7.1156527831158283E-03 6.6342493871788203E-03 6.1802225206621262E-03 + 5.7523781966938832E-03 5.3495524859251357E-03 4.9706118614689602E-03 + 4.6144535027461218E-03 4.2800055545155723E-03 3.9662273378703898E-03 + 3.6721095105058982E-03 3.3966741741049944E-03 3.1389749272263947E-03 + 2.8980968626148075E-03 2.6731565083709832E-03 2.4633017129171695E-03 + 2.2677114741644837E-03 2.0855957137289800E-03 1.9161949974494067E-03 + 1.7587802038296122E-03 1.6126521423608785E-03 1.4771411239732251E-03 + 1.3516064861202048E-03 1.2354360752189527E-03 1.1280456893474947E-03 + 1.0288784842456562E-03 9.3740434577596989E-04 8.5311923207857397E-04 + 7.7554448870112728E-04 7.0422614000344001E-04 6.3873416012885751E-04 + 5.7866172680284443E-04 5.2362446116567334E-04 4.7325965677307328E-04 + 4.2722550080813519E-04 3.8520029044187821E-04 3.4688164716071098E-04 + 3.1198573174848025E-04 2.8024646247082189E-04 2.5141473886182349E-04 + 2.2525767335933064E-04 2.0155783287706589E-04 1.8011249224062628E-04 + 1.6073290125170282E-04 1.4324356698180069E-04 1.2748155273448569E-04 + 1.1329579495479670E-04 1.0054643920690367E-04 8.9104196187204251E-05 + 7.8849718590625877E-05 6.9672999503573487E-05 6.1472792858352767E-05 + 5.4156056351484800E-05 4.7637417102534475E-05 4.1838660211247680E-05 + 3.6688240259192937E-05 3.2120815697938574E-05 2.8076805969192865E-05 + 2.4501971113375259E-05 2.1347013541776022E-05 1.8567201573773285E-05 + 1.6122014274418733E-05 1.3974807068947714E-05 1.2092497559246165E-05 + 1.0445270922806883E-05 9.0063042369923374E-06 7.7515090402203971E-06 + 6.6592914167114959E-06 5.7103288723631509E-06 4.8873632558207523E-06 + 4.1750089705439561E-06 3.5595757202696104E-06 3.0289050313801700E-06 + 2.5722198009322944E-06 2.1799861281143481E-06 1.8437866993136480E-06 + 1.5562050124220001E-06 1.3107197441373458E-06 1.1016085844502615E-06 + 9.2386088502635728E-07 7.7309849204485293E-07 6.4550415961792901E-07 + 5.3775697065241679E-07 4.4697419266025228E-07 3.7065908901322376E-07 + 3.0665433447907295E-07 2.5309943502751504E-07 2.0839519096407396E-07 + 1.7116833197246799E-07 1.4024417994193903E-07 1.1461915556526557E-07 + 9.3438426348567388E-08 7.5975681290620272E-08 6.1615373351809393E-08 + 4.9837169436259352E-08 4.0202369593212384E-08 3.2342077943337001E-08 + 2.5946927441158553E-08 2.0758178989885501E-08 1.6560032633890451E-08 + 1.3173004580927807E-08 1.0448238673338925E-08 8.2626346650375739E-09 + 6.5146883054713173E-09 5.1209498249401768E-09 4.0130180039654468E-09 + 3.1349966426541227E-09 2.4413489765677642E-09 1.8950934675643149E-09 + 1.4662914864571775E-09 1.1307837543770488E-09 8.6913807627705071E-10 + 6.6577593698484049E-10 5.0824999004089533E-10 3.8664840290258071E-10 + 2.9310547741369502E-10 2.2140098779643083E-10 1.6663331326579763E-10 + 1.2495372940224999E-10 9.3351199533995666E-11 6.9478709615444891E-11 + 5.1513649647866743E-11 3.8045990995225352E-11 2.7989068724699562E-11 + 2.0508675477285511E-11 1.4966930013957302E-11 1.0878018829806439E-11 + 7.8734402560709610E-12 5.6748224421160924E-12 4.0727528429072328E-12 + 2.9103589631836017E-12 2.0706282310006560E-12 1.4666577201731629E-12 + 1.0341895153405408E-12 7.2592122712597969E-13 5.0718896953716564E-13 + 3.5270661688946667E-13 2.4411423978983958E-13 1.6814352178081454E-13 + 1.1525137775156741E-13 7.8607164154978564E-14 5.3345626000282967E-14 + 3.6018569412751223E-14 2.4194404284422239E-14 1.6167158898006317E-14 + 1.0746123807880342E-14 7.1045729567677770E-15 4.6715429800128873E-15 + 3.0548279352434018E-15 1.9864816813905847E-15 1.2844604017778745E-15 + 8.2577497650188683E-16 5.2780513653236456E-16 3.3536829711080810E-16 + 2.1182247893536575E-16 1.3298064097899677E-16 8.2972725368378467E-17 + 5.1448959814402370E-17 3.1701180033011560E-17 1.9408619286766043E-17 + 1.1805830599908071E-17 7.1341620098853302E-18 4.2824788529805058E-18 + 2.5533723509265475E-18 1.5120287916481171E-18 8.8918630950454809E-19 + 5.1924409736923692E-19 3.0106151526699848E-19 1.7330139117206834E-19 + 9.9030669796221527E-20 5.6171425490957292E-20 3.1622478164313786E-20 + 1.7667179119016258E-20 9.7945607434488617E-21 5.3877098401730848E-21 + 2.9402171696322995E-21 1.5917121835497450E-21 8.5469858049873210E-22 + 4.5517413076048786E-22 2.4038678331458797E-22 1.2588203245941132E-22 + 6.5356413641181362E-23 3.3638342534993061E-23 1.7161407646454047E-23 + 8.6774604494793418E-24 4.3481323910243394E-24 2.1588950363014859E-24 + 1.0620053879217088E-24 5.1753126985278773E-25 2.4980750982228834E-25 + 1.1942048900381784E-25 5.6538386293804177E-26 2.6500593629775649E-26 + 1.2280441606407467E-26 5.6324660374307517E-27 2.5565153443151062E-27 + 1.1481579260326194E-27 + + + 2.3368852426070008E-12 6.7705601542176764E-05 1.3633422714561520E-04 + 2.0589845991754186E-04 2.7641105448258674E-04 3.4788493931966818E-04 + 4.2033321913065004E-04 4.9376917724124102E-04 5.6820627803453520E-04 + 6.4365816941766921E-04 7.2013868532201826E-04 7.9766184823739674E-04 + 8.7624187178072198E-04 9.5589316329961122E-04 1.0366303265113659E-03 + 1.1184681641778524E-03 1.2014216808167357E-03 1.2855060854495678E-03 + 1.3707367943872365E-03 1.4571294340532648E-03 1.5446998438454827E-03 + 1.6334640790365779E-03 1.7234384137140681E-03 1.8146393437602059E-03 + 1.9070835898723655E-03 2.0007881006244639E-03 2.0957700555699421E-03 + 2.1920468683869080E-03 2.2896361900659663E-03 2.3885559121413378E-03 + 2.4888241699658384E-03 2.5904593460303140E-03 2.6934800733281203E-03 + 2.7979052387652622E-03 2.9037539866167976E-03 3.0110457220301366E-03 + 3.1198001145758543E-03 3.2300371018466546E-03 3.3417768931051544E-03 + 3.4550399729811033E-03 3.5698471052187253E-03 3.6862193364748624E-03 + 3.8041780001685675E-03 3.9237447203828643E-03 4.0449414158193666E-03 + 4.1677903038064394E-03 4.2923139043616401E-03 4.4185350443091773E-03 + 4.5464768614530649E-03 4.6761628088067848E-03 4.8076166588801499E-03 + 4.9408625080241643E-03 5.0759247808346494E-03 5.2128282346153845E-03 + 5.3515979639015988E-03 5.4922594050445892E-03 5.6348383408582562E-03 + 5.7793609053284267E-03 5.9258535883857603E-03 6.0743432407430551E-03 + 6.2248570787978895E-03 6.3774226896013506E-03 6.5320680358938220E-03 + 6.6888214612086418E-03 6.8477116950445603E-03 7.0087678581078946E-03 + 7.1720194676252848E-03 7.3374964427279973E-03 7.5052291099086963E-03 + 7.6752482085516273E-03 7.8475848965371946E-03 8.0222707559218943E-03 + 8.1993377986945490E-03 8.3788184726099231E-03 8.5607456671006159E-03 + 8.7451527192683471E-03 8.9320734199555916E-03 9.1215420198986659E-03 + 9.3135932359632388E-03 9.5082622574634186E-03 9.7055847525654524E-03 + 9.9055968747770867E-03 1.0108335269523767E-02 1.0313837080812741E-02 + 1.0522139957986185E-02 1.0733282062564522E-02 1.0947302075181055E-02 + 1.1164239202609101E-02 1.1384133184882735E-02 1.1607024302512455E-02 + 1.1832953383796831E-02 1.2061961812231424E-02 1.2294091534016191E-02 + 1.2529385065662616E-02 1.2767885501701737E-02 1.3009636522494497E-02 + 1.3254682402145501E-02 1.3503068016521579E-02 1.3754838851376457E-02 + 1.4010041010582766E-02 1.4268721224472768E-02 1.4530926858289155E-02 + 1.4796705920747199E-02 1.5066107072709639E-02 1.5339179635975716E-02 + 1.5615973602185642E-02 1.5896539641842025E-02 1.6180929113449524E-02 + 1.6469194072774203E-02 1.6761387282224094E-02 1.7057562220352183E-02 + 1.7357773091483522E-02 1.7662074835467771E-02 1.7970523137558671E-02 + 1.8283174438421913E-02 1.8600085944272923E-02 1.8921315637146059E-02 + 1.9246922285296661E-02 1.9576965453737556E-02 1.9911505514911453E-02 + 2.0250603659500838E-02 2.0594321907376867E-02 2.0942723118688767E-02 + 2.1295871005095342E-02 2.1653830141140158E-02 2.2016665975771892E-02 + 2.2384444844011510E-02 2.2757233978767683E-02 2.3135101522802255E-02 + 2.3518116540847085E-02 2.3906349031874063E-02 2.4299869941519635E-02 + 2.4698751174665756E-02 2.5103065608178390E-02 2.5512887103805684E-02 + 2.5928290521236803E-02 2.6349351731323543E-02 2.6776147629465868E-02 + 2.7208756149163217E-02 2.7647256275732914E-02 2.8091728060197448E-02 + 2.8542252633341966E-02 2.8998912219943569E-02 2.9461790153173999E-02 + 2.9930970889177132E-02 3.0406540021822796E-02 3.0888584297638296E-02 + 3.1377191630919274E-02 3.1872451119021150E-02 3.2374453057832639E-02 + 3.2883288957432727E-02 3.3399051557932359E-02 3.3921834845502374E-02 + 3.4451734068588723E-02 3.4988845754316322E-02 3.5533267725082994E-02 + 3.6085099115344126E-02 3.6644440388589911E-02 3.7211393354515510E-02 + 3.7786061186385902E-02 3.8368548438595683E-02 3.8958961064425465E-02 + 3.9557406433995294E-02 4.0163993352415821E-02 4.0778832078138615E-02 + 4.1402034341505377E-02 4.2033713363497559E-02 4.2673983874686176E-02 + 4.3322962134382831E-02 4.3980765949991750E-02 4.4647514696563757E-02 + 4.5323329336551581E-02 4.6008332439767215E-02 4.6702648203540857E-02 + 4.7406402473081352E-02 4.8119722762038110E-02 4.8842738273263478E-02 + 4.9575579919775632E-02 5.0318380345921010E-02 5.1071273948735126E-02 + 5.1834396899501436E-02 5.2607887165506323E-02 5.3391884531989439E-02 + 5.4186530624287466E-02 5.4991968930169596E-02 5.5808344822363208E-02 + 5.6635805581266657E-02 5.7474500417848060E-02 5.8324580496726015E-02 + 5.9186198959430801E-02 6.0059510947841677E-02 6.0944673627797874E-02 + 6.1841846212878672E-02 6.2751189988349623E-02 6.3672868335269486E-02 + 6.4607046754754024E-02 6.5553892892391566E-02 6.6513576562804502E-02 + 6.7486269774351862E-02 6.8472146753965846E-02 6.9471383972116760E-02 + 7.0484160167898491E-02 7.1510656374228182E-02 7.2551055943151047E-02 + 7.3605544571242632E-02 7.4674310325099996E-02 7.5757543666911190E-02 + 7.6855437480094574E-02 7.7968187094995853E-02 7.9095990314632991E-02 + 8.0239047440476149E-02 8.1397561298250626E-02 8.2571737263750208E-02 + 8.3761783288644920E-02 8.4967909926271498E-02 8.6190330357388156E-02 + 8.7429260415879589E-02 8.8684918614393496E-02 8.9957526169891291E-02 + 9.1247307029094116E-02 9.2554487893802967E-02 9.3879298246074078E-02 + 9.5221970373224565E-02 9.6582739392647873E-02 9.7961843276412566E-02 + 9.9359522875620401E-02 1.0077602194449559E-01 1.0221158716417732E-01 + 1.0366646816618733E-01 1.0514091755553898E-01 1.0663519093345816E-01 + 1.0814954691967958E-01 1.0968424717428474E-01 1.1123955641904244E-01 + 1.1281574245821463E-01 1.1441307619878527E-01 1.1603183167006945E-01 + 1.1767228604265953E-01 1.1933471964665895E-01 1.2101941598915752E-01 + 1.2272666177089406E-01 1.2445674690205565E-01 1.2620996451715563E-01 + 1.2798661098893219E-01 1.2978698594120755E-01 1.3161139226064245E-01 + 1.3346013610732060E-01 1.3533352692409242E-01 1.3723187744460677E-01 + 1.3915550369995344E-01 1.4110472502383836E-01 1.4307986405620898E-01 + 1.4508124674524264E-01 1.4710920234761030E-01 1.4916406342691924E-01 + 1.5124616585023998E-01 1.5335584878261294E-01 1.5549345467943160E-01 + 1.5765932927658888E-01 1.5985382157827338E-01 1.6207728384229522E-01 + 1.6433007156281595E-01 1.6661254345035245E-01 1.6892506140892005E-01 + 1.7126799051017255E-01 1.7364169896439338E-01 1.7604655808818423E-01 + 1.7848294226869249E-01 1.8095122892421064E-01 1.8345179846097878E-01 + 1.8598503422600546E-01 1.8855132245572734E-01 1.9115105222030712E-01 + 1.9378461536337405E-01 1.9645240643699396E-01 1.9915482263165205E-01 + 2.0189226370102409E-01 2.0466513188129795E-01 2.0747383180480503E-01 + 2.1031877040770425E-01 2.1320035683145971E-01 2.1611900231783474E-01 + 2.1907512009712138E-01 2.2206912526931089E-01 2.2510143467789812E-01 + 2.2817246677600511E-01 2.3128264148449412E-01 2.3443238004172995E-01 + 2.3762210484463825E-01 2.4085223928069402E-01 2.4412320755046071E-01 + 2.4743543448028704E-01 2.5078934532475555E-01 2.5418536555845950E-01 + 2.5762392065667472E-01 2.6110543586447088E-01 2.6463033595380153E-01 + 2.6819904496808122E-01 2.7181198595375877E-01 2.7546958067836386E-01 + 2.7917224933449730E-01 2.8292041022921022E-01 2.8671447945820716E-01 + 2.9055487056428070E-01 2.9444199417937406E-01 2.9837625764964504E-01 + 3.0235806464288473E-01 3.0638781473762983E-01 3.1046590299327675E-01 + 3.1459271950049833E-01 3.1876864891123069E-01 3.2299406994748847E-01 + 3.2726935488823400E-01 3.3159486903351287E-01 3.3597097014504490E-01 + 3.4039800786243263E-01 3.4487632309413863E-01 3.4940624738234760E-01 + 3.5398810224081817E-01 3.5862219846480331E-01 3.6330883541209746E-01 + 3.6804830025424606E-01 3.7284086719693477E-01 3.7768679666855415E-01 + 3.8258633447591328E-01 3.8753971092606276E-01 3.9254713991316198E-01 + 3.9760881796931186E-01 4.0272492327825682E-01 4.0789561465084789E-01 + 4.1312103046113557E-01 4.1840128754195960E-01 4.2373648003888581E-01 + 4.2912667822132999E-01 4.3457192724971166E-01 4.4007224589746047E-01 + 4.4562762522671234E-01 4.5123802721652395E-01 4.5690338334244379E-01 + 4.6262359310628071E-01 4.6839852251493069E-01 4.7422800250713165E-01 + 4.8011182732703989E-01 4.8604975284355306E-01 4.9204149481432424E-01 + 4.9808672709346241E-01 5.0418507978194993E-01 5.1033613731986227E-01 + 5.1653943651953871E-01 5.2279446453890688E-01 5.2910065679425877E-01 + 5.3545739481184018E-01 5.4186400401773971E-01 5.4831975146563572E-01 + 5.5482384350211444E-01 5.6137542336937807E-01 5.6797356874531935E-01 + 5.7461728922110622E-01 5.8130552371657584E-01 5.8803713783395384E-01 + 5.9481092115060807E-01 6.0162558445179248E-01 6.0847975690456724E-01 + 6.1537198317437347E-01 6.2230072048602314E-01 6.2926433563118678E-01 + 6.3626110192481400E-01 6.4328919611328084E-01 6.5034669523746880E-01 + 6.5743157345441405E-01 6.6454169882161318E-01 6.7167483004859418E-01 + 6.7882861322086752E-01 6.8600057850195617E-01 6.9318813681981362E-01 + 7.0038857654457876E-01 7.0759906016531493E-01 7.1481662097410770E-01 + 7.2203815976669183E-01 7.2926044156958592E-01 7.3648009240461676E-01 + 7.4369359610261232E-01 7.5089729117905668E-01 7.5808736778550700E-01 + 7.6525986475168217E-01 7.7241066673425940E-01 7.7953550148963102E-01 + 7.8662993728912567E-01 7.9368938049650717E-01 8.0070907332895169E-01 + 8.0768409182411571E-01 8.1460934403739571E-01 8.2147956849502723E-01 + 8.2828933293024198E-01 8.3503303333135082E-01 8.4170489333229148E-01 + 8.4829896397790638E-01 8.5480912389796249E-01 8.6122907992571052E-01 + 8.6755236819857151E-01 8.7377235578035073E-01 8.7988224284617822E-01 + 8.8587506547316786E-01 8.9174369908153173E-01 8.9748086257260962E-01 + 9.0307912321190253E-01 9.0853090230675038E-01 9.1382848172973530E-01 + 9.1896401134017824E-01 9.2392951735721551E-01 9.2871691173885051E-01 + 9.3331800262203679E-01 9.3772450587921607E-01 9.4192805784676059E-01 + 9.4592022928040986E-01 9.4969254059197827E-01 9.5323647842028902E-01 + 9.5654351358737122E-01 9.5960512048841162E-01 9.6241279796064017E-01 + 9.6495809167220692E-01 9.6723261806706706E-01 9.6922808989582210E-01 + 9.7093634335527568E-01 9.7234936685102424E-01 9.7345933138760843E-01 + 9.7425862257945750E-01 9.7473987426294995E-01 9.7489600367523699E-01 + 9.7472024814890801E-01 9.7420620325295360E-01 9.7334786228968573E-01 + 9.7213965703413785E-01 9.7057649957688363E-01 9.6865382510302711E-01 + 9.6636763540924486E-01 9.6371454292708114E-01 9.6069181498416689E-01 + 9.5729741799560297E-01 9.5353006123543138E-01 9.4938923979298706E-01 + 9.4487527627109202E-01 9.3998936073276285E-01 9.3473358835066123E-01 + 9.2911099415935050E-01 9.2312558425518887E-01 9.1678236273308800E-01 + 9.1008735359446202E-01 9.0304761680770729E-01 8.9567125765307687E-01 + 8.8796742843974086E-01 8.7994632164656605E-01 8.7161915351252606E-01 + 8.6299813709116358E-01 8.5409644379030825E-01 8.4492815244829489E-01 + 8.3550818505714275E-01 8.2585222833857530E-01 8.1597664051874108E-01 + 8.0589834284179851E-01 7.9563469562275768E-01 7.8520335897969173E-01 + 7.7462213882049991E-01 7.6390881920852127E-01 7.5308098291600356E-01 + 7.4215582282022663E-01 7.3114994783321041E-01 7.2007918831678885E-01 + 7.0895840745992411E-01 6.9780132693067265E-01 6.8662037731427361E-01 + 6.7542658647320741E-01 6.6422952208575470E-01 6.5303730831889151E-01 + 6.4185674096388190E-01 6.3069353051789434E-01 6.1955270875803525E-01 + 6.0843924146989659E-01 5.9735802299656704E-01 5.8631387102472698E-01 + 5.7531152161486576E-01 5.6435562448157950E-01 5.5345073852878657E-01 + 5.4260132764362579E-01 5.3181175675172665E-01 5.2108628813547020E-01 + 5.1042907801583237E-01 4.9984417339736315E-01 4.8933550917485868E-01 + 4.7890690549929432E-01 4.6856206539965284E-01 4.5830457265634916E-01 + 4.4813788992107978E-01 4.3806535707708538E-01 4.2809018983301866E-01 + 4.1821547854287955E-01 4.0844418724379083E-01 3.9877915290277194E-01 + 3.8922308486313217E-01 3.7977856448062558E-01 3.7044804493914840E-01 + 3.6123385123545843E-01 3.5213818032222854E-01 3.4316310139865763E-01 + 3.3431055633794521E-01 3.2558236024105053E-01 3.1698020210650990E-01 + 3.0850564560654303E-01 3.0016012996005714E-01 2.9194497088940674E-01 + 2.8386136167820081E-01 2.7591037427234660E-01 2.6809296047064479E-01 + 2.6040995317450161E-01 2.5286206769871866E-01 2.4544990314175610E-01 + 2.3817394381508794E-01 2.3103456073264891E-01 2.2403201316270224E-01 + 2.1716645024568562E-01 2.1043791268271553E-01 2.0384633450037318E-01 + 1.9739154489814717E-01 1.9107327018541712E-01 1.8489113581510658E-01 + 1.7884466852109912E-01 1.7293329856616843E-01 1.6715636210654616E-01 + 1.6151310367831465E-01 1.5600267880961741E-01 1.5062415676122845E-01 + 1.4537652339637167E-01 1.4025868417885554E-01 1.3526946729665770E-01 + 1.3040762690609578E-01 1.2567184648971338E-01 1.2106074231906011E-01 + 1.1657286701167849E-01 1.1220671316990041E-01 1.0796071708752829E-01 + 1.0383326250916522E-01 9.9822684425900449E-02 9.5927272890255877E-02 + 9.2145276832778705E-02 8.8474907862418017E-02 8.4914344032853403E-02 + 8.1461733557234364E-02 7.8115198454329973E-02 7.4872838109858758E-02 + 7.1732732737748453E-02 6.8692946727240106E-02 6.5751531863075752E-02 + 6.2906530407471600E-02 6.0155978034151729E-02 5.7497906606380898E-02 + 5.4930346792660088E-02 5.2451330515519014E-02 5.0058893230629530E-02 + 4.7751076035251250E-02 4.5525927606788301E-02 4.3381505973955681E-02 + 4.1315880124709631E-02 3.9327131456662688E-02 3.7413355077158497E-02 + 3.5572660961504958E-02 3.3803174979030126E-02 3.2103039797617826E-02 + 3.0470415678177713E-02 2.8903481171094966E-02 2.7400433727072040E-02 + 2.5959490234917278E-02 2.4578887498746323E-02 2.3256882666748045E-02 + 2.1991753623137905E-02 2.0781799354191163E-02 1.9625340298339723E-02 + 1.8520718689254707E-02 1.7466298899651605E-02 1.6460467792278645E-02 + 1.5501635083216633E-02 1.4588233721263161E-02 1.3718720285830337E-02 + 1.2891575404483678E-02 1.2105304190018609E-02 1.1358436695835042E-02 + 1.0649528387349321E-02 9.9771606262918869E-03 9.3399411639883481E-03 + 8.7365046391174057E-03 8.1655130749826287E-03 7.6256563710231434E-03 + 7.1156527831158283E-03 6.6342493871788203E-03 6.1802225206621262E-03 + 5.7523781966938832E-03 5.3495524859251357E-03 4.9706118614689602E-03 + 4.6144535027461218E-03 4.2800055545155723E-03 3.9662273378703898E-03 + 3.6721095105058982E-03 3.3966741741049944E-03 3.1389749272263947E-03 + 2.8980968626148075E-03 2.6731565083709832E-03 2.4633017129171695E-03 + 2.2677114741644837E-03 2.0855957137289800E-03 1.9161949974494067E-03 + 1.7587802038296122E-03 1.6126521423608785E-03 1.4771411239732251E-03 + 1.3516064861202048E-03 1.2354360752189527E-03 1.1280456893474947E-03 + 1.0288784842456562E-03 9.3740434577596989E-04 8.5311923207857397E-04 + 7.7554448870112728E-04 7.0422614000344001E-04 6.3873416012885751E-04 + 5.7866172680284443E-04 5.2362446116567334E-04 4.7325965677307328E-04 + 4.2722550080813519E-04 3.8520029044187821E-04 3.4688164716071098E-04 + 3.1198573174848025E-04 2.8024646247082189E-04 2.5141473886182349E-04 + 2.2525767335933064E-04 2.0155783287706589E-04 1.8011249224062628E-04 + 1.6073290125170282E-04 1.4324356698180069E-04 1.2748155273448569E-04 + 1.1329579495479670E-04 1.0054643920690367E-04 8.9104196187204251E-05 + 7.8849718590625877E-05 6.9672999503573487E-05 6.1472792858352767E-05 + 5.4156056351484800E-05 4.7637417102534475E-05 4.1838660211247680E-05 + 3.6688240259192937E-05 3.2120815697938574E-05 2.8076805969192865E-05 + 2.4501971113375259E-05 2.1347013541776022E-05 1.8567201573773285E-05 + 1.6122014274418733E-05 1.3974807068947714E-05 1.2092497559246165E-05 + 1.0445270922806883E-05 9.0063042369923374E-06 7.7515090402203971E-06 + 6.6592914167114959E-06 5.7103288723631509E-06 4.8873632558207523E-06 + 4.1750089705439561E-06 3.5595757202696104E-06 3.0289050313801700E-06 + 2.5722198009322944E-06 2.1799861281143481E-06 1.8437866993136480E-06 + 1.5562050124220001E-06 1.3107197441373458E-06 1.1016085844502615E-06 + 9.2386088502635728E-07 7.7309849204485293E-07 6.4550415961792901E-07 + 5.3775697065241679E-07 4.4697419266025228E-07 3.7065908901322376E-07 + 3.0665433447907295E-07 2.5309943502751504E-07 2.0839519096407396E-07 + 1.7116833197246799E-07 1.4024417994193903E-07 1.1461915556526557E-07 + 9.3438426348567388E-08 7.5975681290620272E-08 6.1615373351809393E-08 + 4.9837169436259352E-08 4.0202369593212384E-08 3.2342077943337001E-08 + 2.5946927441158553E-08 2.0758178989885501E-08 1.6560032633890451E-08 + 1.3173004580927807E-08 1.0448238673338925E-08 8.2626346650375739E-09 + 6.5146883054713173E-09 5.1209498249401768E-09 4.0130180039654468E-09 + 3.1349966426541227E-09 2.4413489765677642E-09 1.8950934675643149E-09 + 1.4662914864571775E-09 1.1307837543770488E-09 8.6913807627705071E-10 + 6.6577593698484049E-10 5.0824999004089533E-10 3.8664840290258071E-10 + 2.9310547741369502E-10 2.2140098779643083E-10 1.6663331326579763E-10 + 1.2495372940224999E-10 9.3351199533995666E-11 6.9478709615444891E-11 + 5.1513649647866743E-11 3.8045990995225352E-11 2.7989068724699562E-11 + 2.0508675477285511E-11 1.4966930013957302E-11 1.0878018829806439E-11 + 7.8734402560709610E-12 5.6748224421160924E-12 4.0727528429072328E-12 + 2.9103589631836017E-12 2.0706282310006560E-12 1.4666577201731629E-12 + 1.0341895153405408E-12 7.2592122712597969E-13 5.0718896953716564E-13 + 3.5270661688946667E-13 2.4411423978983958E-13 1.6814352178081454E-13 + 1.1525137775156741E-13 7.8607164154978564E-14 5.3345626000282967E-14 + 3.6018569412751223E-14 2.4194404284422239E-14 1.6167158898006317E-14 + 1.0746123807880342E-14 7.1045729567677770E-15 4.6715429800128873E-15 + 3.0548279352434018E-15 1.9864816813905847E-15 1.2844604017778745E-15 + 8.2577497650188683E-16 5.2780513653236456E-16 3.3536829711080810E-16 + 2.1182247893536575E-16 1.3298064097899677E-16 8.2972725368378467E-17 + 5.1448959814402370E-17 3.1701180033011560E-17 1.9408619286766043E-17 + 1.1805830599908071E-17 7.1341620098853302E-18 4.2824788529805058E-18 + 2.5533723509265475E-18 1.5120287916481171E-18 8.8918630950454809E-19 + 5.1924409736923692E-19 3.0106151526699848E-19 1.7330139117206834E-19 + 9.9030669796221527E-20 5.6171425490957292E-20 3.1622478164313786E-20 + 1.7667179119016258E-20 9.7945607434488617E-21 5.3877098401730848E-21 + 2.9402171696322995E-21 1.5917121835497450E-21 8.5469858049873210E-22 + 4.5517413076048786E-22 2.4038678331458797E-22 1.2588203245941132E-22 + 6.5356413641181362E-23 3.3638342534993061E-23 1.7161407646454047E-23 + 8.6774604494793418E-24 4.3481323910243394E-24 2.1588950363014859E-24 + 1.0620053879217088E-24 5.1753126985278773E-25 2.4980750982228834E-25 + 1.1942048900381784E-25 5.6538386293804177E-26 2.6500593629775649E-26 + 1.2280441606407467E-26 5.6324660374307517E-27 2.5565153443151062E-27 + 1.1481579260326194E-27 + + + -1.2674556196246023E-10 -3.6753292655629069E-03 -7.4007639252523724E-03 + -1.1176987016355923E-02 -1.5004690884888821E-02 -1.8884577312339629E-02 + -2.2817357644136060E-02 -2.6803752919855039E-02 -3.0844494005198467E-02 + -3.4940321725760462E-02 -3.9091987002609525E-02 -4.3300250989709632E-02 + -4.7565885213203478E-02 -5.1889671712587390E-02 -5.6272403183796955E-02 + -6.0714883124235106E-02 -6.5217925979762878E-02 -6.9782357293685301E-02 + -7.4409013857752559E-02 -7.9098743865208779E-02 -8.3852407065911586E-02 + -8.8670874923553605E-02 -9.3555030775013509E-02 -9.8505769991858436E-02 + -1.0352400014403708E-01 -1.0861064116578799E-01 -1.1376662552378645E-01 + -1.1899289838756799E-01 -1.2429041780225643E-01 -1.2966015486362831E-01 + -1.3510309389553399E-01 -1.4062023262973034E-01 -1.4621258238812662E-01 + -1.5188116826749751E-01 -1.5762702932669459E-01 -1.6345121877637236E-01 + -1.6935480417128349E-01 -1.7533886760516168E-01 -1.8140450590823101E-01 + -1.8755283084738242E-01 -1.9378496932903971E-01 -2.0010206360476163E-01 + -2.0650527147961137E-01 -2.1299576652332605E-01 -2.1957473828433477E-01 + -2.2624339250664494E-01 -2.3300295134964646E-01 -2.3985465361087646E-01 + -2.4679975495175968E-01 -2.5383952812639765E-01 -2.6097526321341141E-01 + -2.6820826785090002E-01 -2.7553986747455306E-01 -2.8297140555894407E-01 + -2.9050424386205337E-01 -2.9813976267308123E-01 -3.0587936106355251E-01 + -3.1372445714179331E-01 -3.2167648831080142E-01 -3.2973691152956003E-01 + -3.3790720357784254E-01 -3.4618886132454535E-01 -3.5458340199958710E-01 + -3.6309236346945922E-01 -3.7171730451640661E-01 -3.8045980512134353E-01 + -3.8932146675051943E-01 -3.9830391264601173E-01 -4.0740878812003989E-01 + -4.1663776085320520E-01 -4.2599252119668385E-01 -4.3547478247840038E-01 + -4.4508628131326938E-01 -4.5482877791753218E-01 -4.6470405642723467E-01 + -4.7471392522091677E-01 -4.8486021724654049E-01 -4.9514479035273390E-01 + -5.0556952762439655E-01 -5.1613633772267697E-01 -5.2684715522946690E-01 + -5.3770394099635366E-01 -5.4870868249817639E-01 -5.5986339419121245E-01 + -5.7117011787598737E-01 -5.8263092306488440E-01 -5.9424790735450206E-01 + -6.0602319680285888E-01 -6.1795894631149917E-01 -6.3005734001257641E-01 + -6.4232059166091515E-01 -6.5475094503115805E-01 -6.6735067432004669E-01 + -6.8012208455390244E-01 -6.9306751200128114E-01 -7.0618932459102690E-01 + -7.1948992233562425E-01 -7.3297173775995961E-01 -7.4663723633561840E-01 + -7.6048891692067411E-01 -7.7452931220506005E-01 -7.8876098916165993E-01 + -8.0318654950304924E-01 -8.1780863014403282E-01 -8.3262990367005618E-01 + -8.4765307881142982E-01 -8.6288090092358327E-01 -8.7831615247330008E-01 + -8.9396165353101031E-01 -9.0982026226927204E-01 -9.2589487546733851E-01 + -9.4218842902211208E-01 -9.5870389846530324E-01 -9.7544429948698819E-01 + -9.9241268846561248E-01 -1.0096121630044346E+00 -1.0270458624745691E+00 + -1.0447169685645614E+00 -1.0626287058366564E+00 -1.0807843422897692E+00 + -1.0991871899292220E+00 -1.1178406053432746E+00 -1.1367479902865465E+00 + -1.1559127922703489E+00 -1.1753385051600111E+00 -1.1950286697791970E+00 + -1.2149868745213137E+00 -1.2352167559680387E+00 -1.2557219995150015E+00 + -1.2765063400046728E+00 -1.2975735623665370E+00 -1.3189275022644855E+00 + -1.3405720467516553E+00 -1.3625111349325023E+00 -1.3847487586324092E+00 + -1.4072889630746155E+00 -1.4301358475647044E+00 -1.4532935661825435E+00 + -1.4767663284817385E+00 -1.5005584001966614E+00 -1.5246741039570300E+00 + -1.5491178200100382E+00 -1.5738939869501267E+00 -1.5990071024563199E+00 + -1.6244617240371764E+00 -1.6502624697833423E+00 -1.6764140191277479E+00 + -1.7029211136133080E+00 -1.7297885576683476E+00 -1.7570212193894714E+00 + -1.7846240313319881E+00 -1.8126019913079545E+00 -1.8409601631915933E+00 + -1.8697036777322267E+00 -1.8988377333745146E+00 -1.9283675970861707E+00 + -1.9582986051928335E+00 -1.9886361642202173E+00 -2.0193857517434082E+00 + -2.0505529172431918E+00 -2.0821432829693305E+00 -2.1141625448107049E+00 + -2.1466164731723176E+00 -2.1795109138586568E+00 -2.2128517889638704E+00 + -2.2466450977680670E+00 -2.2808969176398928E+00 -2.3156134049451729E+00 + -2.3508007959613111E+00 -2.3864654077974214E+00 -2.4226136393198523E+00 + -2.4592519720830444E+00 -2.4963869712652467E+00 -2.5340252866090132E+00 + -2.5721736533661921E+00 -2.6108388932470987E+00 -2.6500279153735646E+00 + -2.6897477172353796E+00 -2.7300053856502822E+00 -2.7708080977263188E+00 + -2.8121631218271772E+00 -2.8540778185390403E+00 -2.8965596416393167E+00 + -2.9396161390666187E+00 -2.9832549538910444E+00 -3.0274838252848997E+00 + -3.0723105894928553E+00 -3.1177431808011979E+00 -3.1637896325054000E+00 + -3.2104580778754928E+00 -3.2577567511186571E+00 -3.3056939883380720E+00 + -3.3542782284873924E+00 -3.4035180143201362E+00 -3.4534219933332002E+00 + -3.5039989187033678E+00 -3.5552576502161042E+00 -3.6072071551857667E+00 + -3.6598565093659947E+00 -3.7132148978492516E+00 -3.7672916159546963E+00 + -3.8220960701027127E+00 -3.8776377786754979E+00 -3.9339263728616891E+00 + -3.9909715974843865E+00 -4.0487833118108760E+00 -4.1073714903420351E+00 + -4.1667462235811605E+00 -4.2269177187791334E+00 -4.2878963006552233E+00 + -4.3496924120912999E+00 -4.4123166147977342E+00 -4.4757795899489992E+00 + -4.5400921387869131E+00 -4.6052651831891440E+00 -4.6713097662014071E+00 + -4.7382370525301338E+00 -4.8060583289938208E+00 -4.8747850049300299E+00 + -4.9444286125558339E+00 -5.0150008072783452E+00 -5.0865133679528700E+00 + -5.1589781970851485E+00 -5.2324073209750352E+00 -5.3068128897975715E+00 + -5.3822071776186613E+00 -5.4586025823409834E+00 -5.5360116255768785E+00 + -5.6144469524437977E+00 -5.6939213312783732E+00 -5.7744476532646631E+00 + -5.8560389319719022E+00 -5.9387083027970418E+00 -6.0224690223073116E+00 + -6.1073344674772345E+00 -6.1933181348147608E+00 -6.2804336393713358E+00 + -6.3686947136289485E+00 -6.4581152062591585E+00 -6.5487090807467307E+00 + -6.6404904138717082E+00 -6.7334733940425631E+00 -6.8276723194732956E+00 + -6.9231015961968145E+00 -7.0197757359062898E+00 -7.1177093536167986E+00 + -7.2169171651378488E+00 -7.3174139843483674E+00 -7.4192147202641836E+00 + -7.5223343738883193E+00 -7.6267880348342914E+00 -7.7325908777105656E+00 + -7.8397581582562683E+00 -7.9483052092156310E+00 -8.0582474359392933E+00 + -8.1696003117000338E+00 -8.2823793727089150E+00 -8.3966002128193864E+00 + -8.5122784779035516E+00 -8.6294298598865353E+00 -8.7480700904235338E+00 + -8.8682149342020420E+00 -8.9898801818542573E+00 -9.1130816424597665E+00 + -9.2378351356221327E+00 -9.3641564830992721E+00 -9.4920614999671749E+00 + -9.6215659852977282E+00 -9.7526857123266861E+00 -9.8854364180923611E+00 + -1.0019833792517785E+01 -1.0155893466915465E+01 -1.0293631001886270E+01 + -1.0433061874588411E+01 -1.0574201465346869E+01 -1.0717065043575571E+01 + -1.0861667752982465E+01 -1.1008024596025558E+01 -1.1156150417588494E+01 + -1.1306059887840167E+01 -1.1457767484246277E+01 -1.1611287472692531E+01 + -1.1766633887684371E+01 -1.1923820511582351E+01 -1.2082860852831972E+01 + -1.2243768123145976E+01 -1.2406555213593434E+01 -1.2571234669550398E+01 + -1.2737818664463244E+01 -1.2906318972375063E+01 -1.3076746939162875E+01 + -1.3249113452431784E+01 -1.3423428910010006E+01 -1.3599703186986018E+01 + -1.3777945601227762E+01 -1.3958164877320428E+01 -1.4140369108858359E+01 + -1.4324565719021768E+01 -1.4510761419369947E+01 -1.4698962166775296E+01 + -1.4889173118425839E+01 -1.5081398584813506E+01 -1.5275641980630873E+01 + -1.5471905773488643E+01 -1.5670191430368014E+01 -1.5870499361717394E+01 + -1.6072828863098309E+01 -1.6277178054285304E+01 -1.6483543815716743E+01 + -1.6691921722194838E+01 -1.6902305973726651E+01 -1.7114689323393527E+01 + -1.7329063002136884E+01 -1.7545416640338836E+01 -1.7763738186077831E+01 + -1.7984013819931238E+01 -1.8206227866196777E+01 -1.8430362700397261E+01 + -1.8656398652930722E+01 -1.8884313908726892E+01 -1.9114084402760355E+01 + -1.9345683711273917E+01 -1.9579082938557931E+01 -1.9814250599127600E+01 + -2.0051152495138702E+01 -2.0289751588875987E+01 -2.0530007870147692E+01 + -2.0771878218414159E+01 -2.1015316259475629E+01 -2.1260272216544692E+01 + -2.1506692755520174E+01 -2.1754520824283730E+01 -2.2003695485834655E+01 + -2.2254151745076616E+01 -2.2505820369072833E+01 -2.2758627700582061E+01 + -2.3012495464689682E+01 -2.3267340568352065E+01 -2.3523074892667740E+01 + -2.3779605077699440E+01 -2.4036832299670806E+01 -2.4294652040367616E+01 + -2.4552953848579349E+01 -2.4811621093428002E+01 -2.5070530709436717E+01 + -2.5329552933205306E+01 -2.5588551031572951E+01 -2.5847381021162345E+01 + -2.6105891379221475E+01 -2.6363922745696257E+01 -2.6621307616494640E+01 + -2.6877870027929461E+01 -2.7133425232356224E+01 -2.7387779365060261E+01 + -2.7640729102486848E+01 -2.7892061311947792E+01 -2.8141552692993638E+01 + -2.8388969410691907E+01 -2.8634066721112980E+01 -2.8876588589398022E+01 + -2.9116267300850243E+01 -2.9352823065584410E+01 -2.9585963617353968E+01 + -2.9815383807281165E+01 -3.0040765193324379E+01 -3.0261775626443644E+01 + -3.0478068834556161E+01 -3.0689284005524463E+01 -3.0895045370579510E+01 + -3.1094961789759374E+01 -3.1288626341135242E+01 -3.1475615915808206E+01 + -3.1655490820887330E+01 -3.1827794392909237E+01 -3.1992052624427039E+01 + -3.2147773806793317E+01 -3.2294448192470817E+01 -3.2431547680553820E+01 + -3.2558525529548660E+01 -3.2674816101859861E+01 -3.2779834644858653E+01 + -3.2872977113868359E+01 -3.2953620042898756E+01 -3.3021120469491642E+01 + -3.3074815920594794E+01 -3.3114024467009202E+01 -3.3138044854573963E+01 + -3.3146156720955226E+01 -3.3137620907627003E+01 -3.3111679877402239E+01 + -3.3067558248689807E+01 -3.3004463458502393E+01 -3.2921586567153767E+01 + -3.2818103218513606E+01 -3.2693174770680969E+01 -3.2545949612963916E+01 + -3.2375564686100354E+01 -3.2181147223760831E+01 -3.1961816734486668E+01 + -3.1716687244355455E+01 -3.1444869821823932E+01 -3.1145475407346655E+01 + -3.0817617971524331E+01 -3.0460418026647666E+01 -3.0073006517599293E+01 + -2.9654529119083676E+01 -2.9204150967117428E+01 -2.8721061853517885E+01 + -2.8204481912838943E+01 -2.7653667831702489E+01 -2.7067919610766161E+01 + -2.6446587909600758E+01 -2.5789082004442122E+01 -2.5094878388107482E+01 + -2.4363530040227360E+01 -2.3594676394259324E+01 -2.2788054025468572E+01 + -2.1943508081007039E+01 -2.1061004469357826E+01 -2.0140642821560853E+01 + -1.9182670230654089E+01 -1.8187495768512949E+01 -1.7155705770551236E+01 + -1.6088079868353901E+01 -1.4985607738024838E+01 -1.3849506517611568E+01 + -1.2681238830114932E+01 -1.1482531329014455E+01 -1.0255393660583778E+01 + -9.0021377111824794E+00 -7.7253969777399458E+00 -6.4281458653859529E+00 + -5.1137186770614189E+00 -3.7858280154946793E+00 -2.4485822674484137E+00 + -1.1065017830524286E+00 2.3546670144984827E-01 1.5719379218934553E+00 + 2.8970788313892668E+00 4.2046029303624550E+00 5.4877689820978297E+00 + 6.7393850295382780E+00 7.9518187576700123E+00 9.1170153893184072E+00 + 1.0226524462119572E+01 1.1271537012495539E+01 1.2242934890515762E+01 + 1.3131354149671813E+01 1.3927264700043660E+01 1.4621068684720179E+01 + 1.5203220340453178E+01 1.5664370437556805E+01 1.5995538764648176E+01 + 1.6188318534964392E+01 1.6235117047348492E+01 1.6129437441817441E+01 + 1.5866206952958494E+01 1.5442157691243175E+01 1.4856266680794041E+01 + 1.4110262661561665E+01 1.3209208035439827E+01 1.2162165312347250E+01 + 1.0982958509262899E+01 9.6910411905671232E+00 8.3124842335034348E+00 + 6.8810979836842980E+00 5.4397052630259193E+00 4.0415837427748862E+00 + 2.7520985412302146E+00 1.6500484994832296E+00 8.4293769243041872E-01 + 3.0544349690246875E-01 7.4560489778849638E-03 -9.7084518055747804E-02 + -7.3127202553799522E-02 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 + + + 5.3663197318637619E-04 2.6904312739193005E-03 4.5665059942845603E-03 + 6.2507461936821560E-03 7.8130083540749497E-03 9.3071153799886581E-03 + 1.0841855158532429E-02 1.2382114446489673E-02 1.3916213008306890E-02 + 1.5450579426574284E-02 1.6993808557575544E-02 1.8549654382588258E-02 + 2.0116396293657655E-02 2.1696656157295088E-02 2.3291735241592493E-02 + 2.4902434645922251E-02 2.6529723565651381E-02 2.8174388156257342E-02 + 2.9837145188387589E-02 3.1518648744221431E-02 3.3219500252500513E-02 + 3.4940260253647333E-02 3.6681455466289439E-02 3.8443585321626998E-02 + 4.0227126971190241E-02 4.2032539413094740E-02 4.3860266863037761E-02 + 4.5710741530630920E-02 4.7584385925698192E-02 4.9481614783941100E-02 + 5.1402836686130979E-02 5.3348455427572085E-02 5.5318871183271237E-02 + 5.7314481504968200E-02 5.9335682179038125E-02 6.1382867968695985E-02 + 6.3456433259517400E-02 6.5556772623797957E-02 6.7684281316482811E-02 + 6.9839355713163756E-02 7.2022393698838574E-02 7.4233795014665371E-02 + 7.6473961568755661E-02 7.8743297716076674E-02 8.1042210511732146E-02 + 8.3371109941232271E-02 8.5730409130813701E-02 8.8120524540416550E-02 + 9.0541876141544075E-02 9.2994887581911212E-02 9.5479986338520034E-02 + 9.7997603860572907E-02 1.0054817570344246E-01 1.0313214165475310E-01 + 1.0574994585349135E-01 1.0840203690294038E-01 1.1108886797813584E-01 + 1.1381089692844780E-01 1.1656858637582135E-01 1.1936240380914168E-01 + 1.2219282167513167E-01 1.2506031746614246E-01 1.2796537380515280E-01 + 1.3090847852825649E-01 1.3389012476488360E-01 1.3691081101597258E-01 + 1.3997104123028511E-01 1.4307132487903204E-01 1.4621217702896042E-01 + 1.4939411841403313E-01 1.5261767550581701E-01 1.5588338058268073E-01 + 1.5919177179789429E-01 1.6254339324670547E-01 1.6593879503246450E-01 + 1.6937853333185449E-01 1.7286317045927990E-01 1.7639327493045626E-01 + 1.7996942152523926E-01 1.8359219134972329E-01 1.8726217189763586E-01 + 1.9097995711104729E-01 1.9474614744041324E-01 1.9856134990395882E-01 + 2.0242617814641473E-01 2.0634125249710616E-01 2.1030720002739695E-01 + 2.1432465460748423E-01 2.1839425696253903E-01 2.2251665472818175E-01 + 2.2669250250528264E-01 2.3092246191407167E-01 2.3520720164754133E-01 + 2.3954739752412266E-01 2.4394373253961393E-01 2.4839689691833650E-01 + 2.5290758816349340E-01 2.5747651110670128E-01 2.6210437795666686E-01 + 2.6679190834697414E-01 2.7153982938294985E-01 2.7634887568757027E-01 + 2.8121978944636999E-01 2.8615332045131681E-01 2.9115022614360542E-01 + 2.9621127165533118E-01 3.0133722984999517E-01 3.0652888136179363E-01 + 3.1178701463364467E-01 3.1711242595389727E-01 3.2250591949167334E-01 + 3.2796830733078436E-01 3.3350040950216836E-01 3.3910305401478663E-01 + 3.4477707688491965E-01 3.5052332216380122E-01 3.5634264196352256E-01 + 3.6223589648114279E-01 3.6820395402093548E-01 3.7424769101470035E-01 + 3.8036799204006766E-01 3.8656574983672032E-01 3.9284186532045529E-01 + 3.9919724759500635E-01 4.0563281396154616E-01 4.1214948992578271E-01 + 4.1874820920256650E-01 4.2542991371791794E-01 4.3219555360838413E-01 + 4.3904608721763438E-01 4.4598248109019584E-01 4.5300570996223422E-01 + 4.6011675674927716E-01 4.6731661253077877E-01 4.7460627653141835E-01 + 4.8198675609902869E-01 4.8945906667903816E-01 4.9702423178531902E-01 + 5.0468328296732201E-01 5.1243725977338039E-01 5.2028720971006215E-01 + 5.2823418819744572E-01 5.3627925852019354E-01 5.4442349177429072E-01 + 5.5266796680932151E-01 5.6101377016614096E-01 5.6946199600981051E-01 + 5.7801374605765155E-01 5.8667012950227249E-01 5.9543226292942508E-01 + 6.0430127023053593E-01 6.1327828250976302E-01 6.2236443798541430E-01 + 6.3156088188557857E-01 6.4086876633779488E-01 6.5028925025260043E-01 + 6.5982349920078809E-01 6.6947268528419446E-01 6.7923798699985238E-01 + 6.8912058909731710E-01 6.9912168242899519E-01 7.0924246379328115E-01 + 7.1948413577031667E-01 7.2984790655018361E-01 7.4033498975332468E-01 + 7.5094660424300619E-01 7.6168397392960763E-01 7.7254832756654390E-01 + 7.8354089853760001E-01 7.9466292463547883E-01 8.0591564783133196E-01 + 8.1730031403506875E-01 8.2881817284621218E-01 8.4047047729507740E-01 + 8.5225848357405387E-01 8.6418345075874015E-01 8.7624664051872359E-01 + 8.8844931681773909E-01 9.0079274560298705E-01 9.1327819448335978E-01 + 9.2590693239632371E-01 9.3868022926322048E-01 9.5159935563272224E-01 + 9.6466558231219623E-01 9.7788017998671450E-01 9.9124441882545089E-01 + 1.0047595680752059E+00 1.0184268956407880E+00 1.0322476676519949E+00 + 1.0462231480169077E+00 1.0603545979612516E+00 1.0746432755535280E+00 + 1.0890904352156554E+00 1.1036973272188406E+00 1.1184651971643988E+00 + 1.1333952854492531E+00 1.1484888267158186E+00 1.1637470492860107E+00 + 1.1791711745790714E+00 1.1947624165129564E+00 1.2105219808889822E+00 + 1.2264510647594626E+00 1.2425508557780445E+00 1.2588225315324650E+00 + 1.2752672588594558E+00 1.2918861931414958E+00 1.3086804775851577E+00 + 1.3256512424807461E+00 1.3427996044429769E+00 1.3601266656324018E+00 + 1.3776335129573227E+00 1.3953212172559215E+00 1.4131908324583353E+00 + 1.4312433947284333E+00 1.4494799215850098E+00 1.4679014110021680E+00 + 1.4865088404886249E+00 1.5053031661457044E+00 1.5242853217037826E+00 + 1.5434562175369309E+00 1.5628167396555708E+00 1.5823677486768735E+00 + 1.6021100787727356E+00 1.6220445365950902E+00 1.6421719001783903E+00 + 1.6624929178190451E+00 1.6830083069316575E+00 1.7037187528818856E+00 + 1.7246249077957527E+00 1.7457273893452989E+00 1.7670267795103920E+00 + 1.7885236233166204E+00 1.8102184275491087E+00 1.8321116594422164E+00 + 1.8542037453449740E+00 1.8764950693622431E+00 1.8989859719715170E+00 + 1.9216767486153212E+00 1.9445676482692247E+00 1.9676588719854120E+00 + 1.9909505714118825E+00 2.0144428472872624E+00 2.0381357479113169E+00 + 2.0620292675912224E+00 2.0861233450636867E+00 2.1104178618930449E+00 + 2.1349126408454611E+00 2.1596074442394033E+00 2.1845019722725660E+00 + 2.2095958613254649E+00 2.2348886822419254E+00 2.2603799385867371E+00 + 2.2860690648807571E+00 2.3119554248137750E+00 2.3380383094355053E+00 + 2.3643169353250477E+00 2.3907904427392612E+00 2.4174578937404494E+00 + 2.4443182703038575E+00 2.4713704724054693E+00 2.4986133160906330E+00 + 2.5260455315241011E+00 2.5536657610220810E+00 2.5814725570669421E+00 + 2.6094643803052522E+00 2.6376395975298830E+00 2.6659964796468998E+00 + 2.6945331996280877E+00 2.7232478304499064E+00 2.7521383430197703E+00 + 2.7812026040905997E+00 2.8104383741645549E+00 2.8398433053870353E+00 + 2.8694149394319433E+00 2.8991507053793431E+00 2.9290479175866788E+00 + 2.9591037735547272E+00 2.9893153517895574E+00 3.0196796096617833E+00 + 3.0501933812645006E+00 3.0808533752712641E+00 3.1116561727956165E+00 + 3.1425982252536770E+00 3.1736758522313386E+00 3.2048852393577620E+00 + 3.2362224361868179E+00 3.2676833540882559E+00 3.2992637641504210E+00 + 3.3309592950963975E+00 3.3627654312155317E+00 3.3946775103123557E+00 + 3.4266907216749942E+00 3.4588001040652130E+00 3.4910005437323535E+00 + 3.5232867724534209E+00 3.5556533656017675E+00 3.5880947402467531E+00 + 3.6206051532869972E+00 3.6531786996197768E+00 3.6858093103493257E+00 + 3.7184907510367791E+00 3.7512166199946928E+00 3.7839803466290225E+00 + 3.8167751898317146E+00 3.8495942364269862E+00 3.8824303996745715E+00 + 3.9152764178332791E+00 3.9481248527882622E+00 3.9809680887456125E+00 + 4.0137983309978429E+00 4.0466076047640698E+00 4.0793877541086836E+00 + 4.1121304409425052E+00 4.1448271441104731E+00 4.1774691585700046E+00 + 4.2100475946643421E+00 4.2425533774951782E+00 4.2749772463991125E+00 + 4.3073097545324659E+00 4.3395412685691284E+00 4.3716619685161788E+00 + 4.4036618476521747E+00 4.4355307125929864E+00 4.4672581834902099E+00 + 4.4988336943672387E+00 4.5302464935980629E+00 4.5614856445340548E+00 + 4.5925400262838654E+00 4.6233983346517284E+00 4.6540490832393022E+00 + 4.6844806047163567E+00 4.7146810522653917E+00 4.7446384012053331E+00 + 4.7743404507992997E+00 4.8037748262513107E+00 4.8329289808967353E+00 + 4.8617901985909970E+00 4.8903455963008886E+00 4.9185821269025478E+00 + 4.9464865821899151E+00 4.9740455960970538E+00 5.0012456481373899E+00 + 5.0280730670624587E+00 5.0545140347422262E+00 5.0805545902685818E+00 + 5.1061806342829454E+00 5.1313779335282819E+00 5.1561321256252333E+00 + 5.1804287240711693E+00 5.2042531234604050E+00 5.2275906049228631E+00 + 5.2504263417777750E+00 5.2727454053980694E+00 5.2945327712804495E+00 + 5.3157733253152424E+00 5.3364518702494230E+00 5.3565531323356090E+00 + 5.3760617681591487E+00 5.3949623716351658E+00 5.4132394811670670E+00 + 5.4308775869580845E+00 5.4478611384675331E+00 5.4641745520042493E+00 + 5.4798022184503790E+00 5.4947285111101509E+00 5.5089377936801291E+00 + 5.5224144283397267E+00 5.5351427839639324E+00 5.5471072444637999E+00 + 5.5582922172647571E+00 5.5686821419382149E+00 5.5782614990080432E+00 + 5.5870148189610305E+00 5.5949266914986380E+00 5.6019817750772107E+00 + 5.6081648067946341E+00 5.6134606126941726E+00 5.6178541185701905E+00 + 5.6213303613764296E+00 5.6238745013554876E+00 5.6254718350278443E+00 + 5.6261078092011454E+00 5.6257680361842830E+00 5.6244383104170899E+00 + 5.6221046267536847E+00 5.6187532006654610E+00 5.6143704906562064E+00 + 5.6089432232047320E+00 5.6024584205657693E+00 5.5949034317620372E+00 + 5.5862659670825714E+00 5.5765341363537120E+00 5.5656964911582074E+00 + 5.5537420710288394E+00 5.5406604534197790E+00 5.5264418069436703E+00 + 5.5110769469410021E+00 5.4945573919120516E+00 5.4768754186947559E+00 + 5.4580241135382366E+00 5.4379974154520871E+00 5.4167901474917191E+00 + 5.3943980310911561E+00 5.3708176783308197E+00 5.3460465572973028E+00 + 5.3200829266121126E+00 5.2929257368801554E+00 5.2645744992448540E+00 + 5.2350291243122387E+00 5.2042897381520854E+00 5.1723564855045545E+00 + 5.1392293332419650E+00 5.1049078890787536E+00 5.0693912510819708E+00 + 5.0326779024396773E+00 4.9947656631123278E+00 4.9556517055613716E+00 + 4.9153326361087482E+00 4.8738046372719168E+00 4.8310636604889599E+00 + 4.7871056539202170E+00 4.7419268072838934E+00 4.6955237954030471E+00 + 4.6478940042618984E+00 4.5990357273455702E+00 4.5489483249851403E+00 + 4.4976323443878545E+00 4.4450896022115698E+00 4.3913232344834903E+00 + 4.3363377202592179E+00 4.2801388858363252E+00 4.2227338958932306E+00 + 4.1641312369660231E+00 4.1043406975025079E+00 4.0433733475600722E+00 + 3.9812415201716940E+00 3.9179587955524986E+00 3.8535399886687549E+00 + 3.7880011402255951E+00 3.7213595108190436E+00 3.6536335778098388E+00 + 3.5848430343802167E+00 3.5150087902051643E+00 3.4441529731857474E+00 + 3.3722989317382552E+00 3.2994712371972170E+00 3.2256956859636374E+00 + 3.1509993011058581E+00 3.0754103331943425E+00 2.9989582602204861E+00 + 2.9216737865108708E+00 2.8435888406013983E+00 2.7647365720797552E+00 + 2.6851513474399198E+00 2.6048687450193779E+00 2.5239255491089643E+00 + 2.4423597433378990E+00 2.3602105034433034E+00 2.2775181895354963E+00 + 2.1943243379681863E+00 2.1106716529174236E+00 2.0266039977652928E+00 + 1.9421663863744567E+00 1.8574049743283492E+00 1.7723670501991848E+00 + 1.6871010268925961E+00 1.6016564331034706E+00 1.5160839049029395E+00 + 1.4304351774611743E+00 1.3447630768950465E+00 1.2591215122136117E+00 + 1.1735654673178706E+00 1.0881509929943569E+00 1.0029351988246709E+00 + 9.1797624491525032E-01 8.3333333333333293E-01 7.4906669911621138E-01 + 6.6523760070160975E-01 5.8190830960717266E-01 4.9914209916683344E-01 + 4.1700323211112955E-01 3.3555694675749292E-01 2.5486944155513475E-01 + 1.7500785770751615E-01 9.6040259573575107E-02 1.8035612526988386E-02 + -5.8936242069112042E-02 -1.3480461513625805E-01 -2.0949800178930506E-01 + -2.8294411728631369E-01 -3.5506993744671606E-01 -4.2580174398442788E-01 + -4.9506517522121046E-01 -5.6278528266307670E-01 -6.2888659393864799E-01 + -6.9329318261292860E-01 -7.5592874540270638E-01 -8.1671668733052605E-01 + -8.7558021536268105E-01 -9.3244244108268537E-01 -9.8722649295506970E-01 + -1.0398556387348024E+00 -1.0902534185750388E+00 -1.1383437893800292E+00 + -1.1840512809408310E+00 -1.2273011643784546E+00 -1.2680196334026754E+00 + -1.3061339988744816E+00 -1.3415728971350442E+00 -1.3742665125379252E+00 + -1.4041468145855658E+00 -1.4311478100357804E+00 -1.4552058103046779E+00 + -1.4762597144404661E+00 -1.4942513078970878E+00 -1.5091255772754824E+00 + -1.5208310411352901E+00 -1.5293200969115874E+00 -1.5345493838877944E+00 + -1.5364801620871624E+00 -1.5350787068429839E+00 -1.5303167186924451E+00 + -1.5221717481083488E+00 -1.5106276344344809E+00 -1.4956749582217912E+00 + -1.4773115059713686E+00 -1.4555427460737418E+00 -1.4303823144900965E+00 + -1.4018525084469966E+00 -1.3699847861103949E+00 -1.3348202698652305E+00 + -1.2964102504528341E+00 -1.2548166888089112E+00 -1.2101127120004547E+00 + -1.1623830991814101E+00 -1.1117247529761991E+00 -1.0582471511602936E+00 + -1.0020727729417440E+00 -9.4333749356212238E-01 -8.8219094033600887E-01 + -8.1879680264240640E-01 -7.5333308777824315E-01 -6.8599231399340177E-01 + -6.1698163146007390E-01 -5.4652286139938766E-01 -4.7485244310936897E-01 + -4.0222127822575837E-01 -3.2889446121774180E-01 -2.5515088489212817E-01 + -1.8128270957087139E-01 -1.0759468463801908E-01 -3.4403311343812852E-02 + 3.7964163873014094E-02 1.0917093570724415E-01 1.7887201531501018E-01 + 2.4671580296251536E-01 3.1234586499863476E-01 3.7540292055795499E-01 + 4.3552704150300325E-01 4.9236006690063289E-01 5.4554823078600123E-01 + 5.9474499909005940E-01 6.3961410838872657E-01 6.7983279557437948E-01 + 7.1509520365868284E-01 7.4511594470164633E-01 7.6963379634337181E-01 + 7.8841550361760848E-01 8.0125965268355004E-01 8.0800057786655666E-01 + 8.0851225800193716E-01 8.0271215259154327E-01 7.9056492278555834E-01 + 7.7208597677952240E-01 7.4734477397134269E-01 7.1646781727233044E-01 + 6.7964125844400591E-01 6.3711303738957992E-01 5.8919447313447715E-01 + 5.3626122197079140E-01 4.7875351712029218E-01 4.1717560451006730E-01 + 3.5209429108885482E-01 2.8413652578654669E-01 2.1398593898721227E-01 + 1.4237827450154458E-01 7.0095658736404318E-02 -2.0403346988966892E-03 + -7.3176850128677293E-02 -1.4243915007604080E-01 -2.0894123291952268E-01 + -2.7179762369364735E-01 -3.3013626392038031E-01 -3.8311239327069307E-01 + -4.2992327980078071E-01 -4.6982361688364693E-01 -5.0214136432381051E-01 + -5.2629376924169669E-01 -5.4180326008340585E-01 -5.4831286570045401E-01 + -5.4560077222160674E-01 -5.3359359499527992E-01 -5.1237791302148883E-01 + -4.8220959102036143E-01 -4.4352040177247481E-01 -3.9692146091235797E-01 + -3.4320300032282619E-01 -2.8333003701241660E-01 -2.1843354409581531E-01 + -1.4979680123976793E-01 -7.8836695313299246E-02 -7.0798590870481369E-03 + 6.3866322951500770E-02 1.3234764777471528E-01 1.9670158526938483E-01 + 2.5529974133134686E-01 3.0659348529863295E-01 3.4916170499948274E-01 + 3.8175942222086418E-01 4.0336577936777157E-01 4.1322970570394224E-01 + 4.1091140165431839E-01 3.9631765634382221E-01 3.6972895188262578E-01 + 3.3181632323608862E-01 2.8364604973752566E-01 2.2667046691370060E-01 + 1.6270351627348981E-01 9.3880103239459667E-02 2.2598911477708483E-02 + -4.8550979114654266E-02 -1.1687851620124494E-01 -1.7969209229589198E-01 + -2.3441095923841129E-01 -2.7868268404277469E-01 -3.1050177280769431E-01 + -3.2832377711622551E-01 -3.3116856143400430E-01 -3.1870602647060292E-01 + -2.9131752904039132E-01 -2.5012658567734958E-01 -1.9699325583110983E-01 + -1.3446791271833519E-01 -6.5701940584657892E-02 5.6847742812899020E-03 + 7.5776928330644241E-02 1.4057174547453602E-01 1.9621282260330855E-01 + 2.3923773183222671E-01 2.6682437148169857E-01 2.7701881274774848E-01 + 2.6892607793764617E-01 2.4284521655312882E-01 2.0033148602032608E-01 + 1.4417158775825001E-01 7.8262835222102325E-02 7.3937641323180928E-03 + -6.3068224351009602E-02 -1.2756753830601456E-01 -1.8080538463441517E-01 + -2.1820629955607837E-01 -2.3636628447858971E-01 -2.3343815707682369E-01 + -2.0940903747526496E-01 -1.6622884447771918E-01 -1.0775782360496725E-01 + -3.9515521752732360E-02 3.1767315395733998E-02 9.8770023314628530E-02 + 1.5432884580036671E-01 1.9223937026687932E-01 2.0802694437264388E-01 + 1.9958772276357209E-01 1.6760426486249183E-01 1.1565405932477089E-01 + 4.9957760705547423E-02 -2.1244858499835741E-02 -8.8652620734192625E-02 + -1.4310141593554437E-01 -1.7686061900389879E-01 -1.8484540621976686E-01 + -1.6555323425276555E-01 -1.2153706004752846E-01 -5.9286874772890921E-02 + 1.1541184024747801E-02 7.9497390934068032E-02 1.3315163149403333E-01 + 1.6307990062845432E-01 1.6368255708262475E-01 1.3447219153408330E-01 + 8.0515701797200925E-02 1.1836458855608472E-02 -5.8233881604444739E-02 + -1.1554359727654083E-01 -1.4802398422506688E-01 -1.4842340569501955E-01 + -1.1623601695295367E-01 -5.8278234605309398E-02 1.2394361591386797E-02 + 7.9175924375977286E-02 1.2573692255917035E-01 1.4015231774535730E-01 + 1.1828476711446276E-01 6.5416612439729752E-02 -4.5419482525039931E-03 + -7.2349629179688790E-02 -1.1859137710076031E-01 -1.2938906542034101E-01 + -1.0098318134723813E-01 -4.1600220210764080E-02 3.0340706337580091E-02 + 9.1550537483907651E-02 1.2135822663623334E-01 1.0902456057107973E-01 + 5.8240298507787114E-02 -1.3201703618946382E-02 -7.9050087252216933E-02 + -1.1404780142065017E-01 -1.0392844855785839E-01 -5.1956006293140386E-02 + 2.1165414370458508E-02 8.4823103602360186E-02 1.1111534980764444E-01 + 8.7526960319491212E-02 2.3808645244449068E-02 -5.0952296034398631E-02 + -1.0092162173869337E-01 -1.0075327251270852E-01 -4.9269589377915916E-02 + 2.8049912394552817E-02 9.0587905136379585E-02 1.0363512517618199E-01 + 5.8358029748377331E-02 -2.1004508072838067E-02 -8.8705300210148344E-02 + -1.0334285707366540E-01 -5.3881430381468309E-02 3.0713206517018365E-02 + 9.6778773216147918E-02 9.9465203373176853E-02 3.4103791854082272E-02 + -5.6809832378026830E-02 -1.0949976037836372E-01 -8.3441207270101125E-02 + 6.0968491056694928E-03 9.4160133178173885E-02 1.1178234548169412E-01 + 4.0583313321247337E-02 -6.6955349301627040E-02 -1.2360786188268048E-01 + -7.7719738572573277E-02 3.8129061843061973E-02 1.2653605307053764E-01 + 1.0571763174993354E-01 -1.3619599323657859E-02 -1.2761106289130608E-01 + -1.2726645822436816E-01 -3.4755794619024272E-03 1.3218412315011016E-01 + 1.4488236065094576E-01 1.1048288655961469E-02 -1.4392220812639600E-01 + -1.5945975666032586E-01 -6.6537596425416887E-03 1.6480770781891338E-01 + 1.6933349488687433E-01 -1.2947509813083400E-02 -1.9452174863209629E-01 + -1.6967368568929628E-01 5.1110831090086448E-02 2.2911317331306158E-01 + 1.5257697758696626E-01 -1.0922357103012718E-01 -2.5949058925667490E-01 + -1.0867518874123652E-01 1.8339710121399369E-01 2.7075896336848587E-01 + 3.1997330606208275E-02 -2.6382265452011638E-01 -2.3748503827237011E-01 + 5.8651376417998204E-02 3.5726856209220520E-01 1.2822937346785501E-01 + -2.9239081389476734E-01 4.7243998312051133E-01 -3.5756654099389702E+00 + 1.2403040785686937E+01 + + + 1.1807674196034901E-11 3.4218828313964915E-04 6.8904158614928345E-04 + 1.0406235041546831E-03 1.3969984990868441E-03 1.7582319114896514E-03 + 2.1243899724879664E-03 2.4955398159185170E-03 2.8717494906255903E-03 + 3.2530879729239181E-03 3.6396251792308919E-03 4.0314319788704468E-03 + 4.4285802070509256E-03 4.8311426780192788E-03 5.2391931983939172E-03 + 5.6528065806787289E-03 6.0720586569606117E-03 6.4970262927930168E-03 + 6.9277874012680409E-03 7.3644209572795490E-03 7.8070070119799703E-03 + 8.2556267074332581E-03 8.7103622914667962E-03 9.1712971327248018E-03 + 9.6385157359259871E-03 1.0112103757328237E-02 1.0592148020402991E-02 + 1.1078736531722304E-02 1.1571958497061259E-02 1.2071904337718724E-02 + 1.2578665707059357E-02 1.3092335507279824E-02 1.3613007906402184E-02 + 1.4140778355497567E-02 1.4675743606143097E-02 1.5218001728115330E-02 + 1.5767652127323239E-02 1.6324795563983925E-02 1.6889534171044499E-02 + 1.7461971472853111E-02 1.8042212404082658E-02 1.8630363328910483E-02 + 1.9226532060457428E-02 1.9830827880489722E-02 2.0443361559387172E-02 + 2.1064245376381224E-02 2.1693593140066376E-02 2.2331520209188768E-02 + 2.2978143513715306E-02 2.3633581576187355E-02 2.4297954533362500E-02 + 2.4971384158148337E-02 2.5653993881832086E-02 2.6345908816609871E-02 + 2.7047255778419713E-02 2.7758163310082202E-02 2.8478761704752716E-02 + 2.9209183029689601E-02 2.9949561150342169E-02 3.0700031754762741E-02 + 3.1460732378347143E-02 3.2231802428907684E-02 3.3013383212083240E-02 + 3.3805617957090479E-02 3.4608651842821060E-02 3.5422632024288900E-02 + 3.6247707659432395E-02 3.7084029936275929E-02 3.7931752100455456E-02 + 3.8791029483112770E-02 3.9662019529163303E-02 4.0544881825942188E-02 + 4.1439778132233381E-02 4.2346872407686899E-02 4.3266330842629028E-02 + 4.4198321888270574E-02 4.5143016287318122E-02 4.6100587104993630E-02 + 4.7071209760467192E-02 4.8055062058708686E-02 4.9052324222763073E-02 + 5.0063178926455149E-02 5.1087811327528772E-02 5.2126409101226220E-02 + 5.3179162474313181E-02 5.4246264259554873E-02 5.5327909890648813E-02 + 5.6424297457620225E-02 5.7535627742685301E-02 5.8662104256588611E-02 + 5.9803933275420190E-02 6.0961323877918104E-02 6.2134487983262772E-02 + 6.3323640389368621E-02 6.4528998811679367E-02 6.5750783922473022E-02 + 6.6989219390682558E-02 6.8244531922238519E-02 6.9516951300939975E-02 + 7.0806710429859698E-02 7.2114045373290428E-02 7.3439195399238044E-02 + 7.4782403022468552E-02 7.6143914048114811E-02 7.7523977615850267E-02 + 7.8922846244635206E-02 8.0340775878043322E-02 8.1778025930174067E-02 + 8.3234859332158198E-02 8.4711542579263152E-02 8.6208345778604395E-02 + 8.7725542697470280E-02 8.9263410812266658E-02 9.0822231358088451E-02 + 9.2402289378924515E-02 9.4003873778503264E-02 9.5627277371785363E-02 + 9.7272796937111008E-02 9.8940733269007985E-02 1.0063139123166799E-01 + 1.0234507981309800E-01 1.0408211217995346E-01 1.0584280573306042E-01 + 1.0762748216363335E-01 1.0943646751019591E-01 1.1127009221621106E-01 + 1.1312869118842787E-01 1.1501260385595162E-01 1.1692217423004407E-01 + 1.1885775096466095E-01 1.2081968741773316E-01 1.2280834171319814E-01 + 1.2482407680378921E-01 1.2686726053458772E-01 1.2893826570734651E-01 + 1.3103747014558945E-01 1.3316525676049479E-01 1.3532201361756752E-01 + 1.3750813400410808E-01 1.3972401649748237E-01 1.4197006503420015E-01 + 1.4424668897980680E-01 1.4655430319959475E-01 1.4889332813014000E-01 + 1.5126418985166912E-01 1.5366732016126233E-01 1.5610315664689675E-01 + 1.5857214276233661E-01 1.6107472790287253E-01 1.6361136748191710E-01 + 1.6618252300845920E-01 1.6878866216538083E-01 1.7143025888864216E-01 + 1.7410779344733596E-01 1.7682175252461566E-01 1.7957262929950071E-01 + 1.8236092352955907E-01 1.8518714163447236E-01 1.8805179678048234E-01 + 1.9095540896572247E-01 1.9389850510643353E-01 1.9688161912406549E-01 + 1.9990529203326396E-01 2.0297007203074208E-01 2.0607651458503645E-01 + 2.0922518252714431E-01 2.1241664614204220E-01 2.1565148326108083E-01 + 2.1893027935525447E-01 2.2225362762933928E-01 2.2562212911689794E-01 + 2.2903639277614146E-01 2.3249703558664581E-01 2.3600468264691316E-01 + 2.3955996727277032E-01 2.4316353109659716E-01 2.4681602416737095E-01 + 2.5051810505152106E-01 2.5427044093457662E-01 2.5807370772359745E-01 + 2.6192859015037218E-01 2.6583578187536916E-01 2.6979598559242257E-01 + 2.7380991313413383E-01 2.7787828557797323E-01 2.8200183335305534E-01 + 2.8618129634756856E-01 2.9041742401683479E-01 2.9471097549197062E-01 + 2.9906271968912623E-01 3.0347343541926652E-01 3.0794391149847061E-01 + 3.1247494685870819E-01 3.1706735065906322E-01 3.2172194239736296E-01 + 3.2643955202217373E-01 3.3122102004512138E-01 3.3606719765348886E-01 + 3.4097894682304580E-01 3.4595714043105663E-01 3.5100266236941691E-01 + 3.5611640765785668E-01 3.6129928255715693E-01 3.6655220468231053E-01 + 3.7187610311556490E-01 3.7727191851927455E-01 3.8274060324849013E-01 + 3.8828312146320759E-01 3.9390044924019152E-01 3.9959357468429274E-01 + 4.0536349803916377E-01 4.1121123179728025E-01 4.1713780080916918E-01 + 4.2314424239173409E-01 4.2923160643557495E-01 4.3540095551117691E-01 + 4.4165336497385643E-01 4.4798992306733076E-01 4.5441173102577842E-01 + 4.6091990317425435E-01 4.6751556702730590E-01 4.7419986338564507E-01 + 4.8097394643070468E-01 4.8783898381692192E-01 4.9479615676156147E-01 + 5.0184666013190227E-01 5.0899170252958748E-01 5.1623250637193840E-01 + 5.2357030797002346E-01 5.3100635760325210E-01 5.3854191959027264E-01 + 5.4617827235592187E-01 5.5391670849398289E-01 5.6175853482547689E-01 + 5.6970507245222124E-01 5.7775765680536084E-01 5.8591763768856830E-01 + 5.9418637931560825E-01 6.0256526034192337E-01 6.1105567388991255E-01 + 6.1965902756753011E-01 6.2837674347984573E-01 6.3721025823316235E-01 + 6.4616102293129385E-01 6.5523050316357601E-01 6.6442017898416506E-01 + 6.7373154488216858E-01 6.8316610974211989E-01 6.9272539679430212E-01 + 7.0241094355439471E-01 7.1222430175189577E-01 7.2216703724676179E-01 + 7.3224072993366063E-01 7.4244697363323464E-01 7.5278737596971979E-01 + 7.6326355823426639E-01 7.7387715523325395E-01 7.8462981512088281E-01 + 7.9552319921528858E-01 8.0655898179738961E-01 8.1773884989166068E-01 + 8.2906450302797552E-01 8.4053765298363625E-01 8.5216002350467701E-01 + 8.6393335000547733E-01 8.7585937924569757E-01 8.8793986898350430E-01 + 9.0017658760400598E-01 9.1257131372178835E-01 9.2512583575639062E-01 + 9.3784195147950955E-01 9.5072146753269504E-01 9.6376619891421833E-01 + 9.7697796843378082E-01 9.9035860613365012E-01 1.0039099486747745E+00 + 1.0176338386863639E+00 1.0315321240773696E+00 1.0456066573082416E+00 + 1.0598592946212730E+00 1.0742918952277820E+00 1.0889063204503275E+00 + 1.1037044328180610E+00 1.1186880951132918E+00 1.1338591693672218E+00 + 1.1492195158027774E+00 1.1647709917223612E+00 1.1805154503382893E+00 + 1.1964547395435861E+00 1.2125907006207388E+00 1.2289251668859249E+00 + 1.2454599622661362E+00 1.2621968998065514E+00 1.2791377801053945E+00 + 1.2962843896734533E+00 1.3136384992153072E+00 1.3312018618292498E+00 + 1.3489762111227603E+00 1.3669632592403074E+00 1.3851646948001444E+00 + 1.4035821807366622E+00 1.4222173520447519E+00 1.4410718134225389E+00 + 1.4601471368087096E+00 1.4794448588105702E+00 1.4989664780188485E+00 + 1.5187134522051344E+00 1.5386871953977626E+00 1.5588890748317779E+00 + 1.5793204077685632E+00 1.5999824581805404E+00 1.6208764332962915E+00 + 1.6420034800012677E+00 1.6633646810891893E+00 1.6849610513591060E+00 + 1.7067935335529416E+00 1.7288629941283082E+00 1.7511702188611669E+00 + 1.7737159082728873E+00 1.7965006728760968E+00 1.8195250282336533E+00 + 1.8427893898249237E+00 1.8662940677135140E+00 1.8900392610104750E+00 + 1.9140250521269309E+00 1.9382514008100344E+00 1.9627181379560472E+00 + 1.9874249591943163E+00 2.0123714182358801E+00 2.0375569199803967E+00 + 2.0629807133750555E+00 2.0886418840191792E+00 2.1145393465081694E+00 + 2.1406718365105619E+00 2.1670379025719453E+00 2.1936358976396013E+00 + 2.2204639703018310E+00 2.2475200557360333E+00 2.2748018663597942E+00 + 2.3023068821793857E+00 2.3300323408303250E+00 2.3579752273048999E+00 + 2.3861322633618309E+00 2.4144998966136426E+00 2.4430742892876212E+00 + 2.4718513066567338E+00 2.5008265051373590E+00 2.5299951200511912E+00 + 2.5593520530493619E+00 2.5888918591974086E+00 2.6186087337205519E+00 + 2.6484964984094903E+00 2.6785485876879278E+00 2.7087580343439157E+00 + 2.7391174549282886E+00 2.7696190348246126E+00 2.8002545129963403E+00 + 2.8310151664183421E+00 2.8618917942014144E+00 2.8928747014200997E+00 + 2.9239536826558981E+00 2.9551180052699095E+00 2.9863563924209973E+00 + 3.0176570058478145E+00 3.0490074284354907E+00 3.0803946465902627E+00 + 3.1118050324482374E+00 3.1432243259473118E+00 3.1746376167945543E+00 + 3.2060293263646726E+00 3.2373831895688352E+00 3.2686822367369754E+00 + 3.2999087755607412E+00 3.3310443731486443E+00 3.3620698382495631E+00 + 3.3929652037056028E+00 3.4237097092004904E+00 3.4542817843750968E+00 + 3.4846590323874569E+00 3.5148182140006270E+00 3.5447352322881343E+00 + 3.5743851180533257E+00 3.6037420160659686E+00 3.6327791722266358E+00 + 3.6614689217771050E+00 3.6897826786826924E+00 3.7176909263208264E+00 + 3.7451632096184806E+00 3.7721681287898803E+00 3.7986733348349038E+00 + 3.8246455269677830E+00 3.8500504521551653E+00 3.8748529069522126E+00 + 3.8990167418351129E+00 3.9225048682382493E+00 3.9452792685140428E+00 + 3.9673010090433900E+00 3.9885302567342524E+00 4.0089262991554886E+00 + 4.0284475685622301E+00 4.0470516700779307E+00 4.0646954143064757E+00 + 4.0813348546554202E+00 4.0969253296581423E+00 4.1114215105885616E+00 + 4.1247774546666776E+00 4.1369466641563113E+00 4.1478821516580577E+00 + 4.1575365119000267E+00 4.1658620003263804E+00 4.1728106187785770E+00 + 4.1783342085562207E+00 4.1823845511332109E+00 4.1849134767899203E+00 + 4.1858729814031479E+00 4.1852153516119897E+00 4.1828932985489669E+00 + 4.1788601002914421E+00 4.1730697531476864E+00 4.1654771318444208E+00 + 4.1560381586277115E+00 4.1447099812257910E+00 4.1314511595502879E+00 + 4.1162218609305752E+00 4.0989840635837673E+00 4.0797017679196417E+00 + 4.0583412151646279E+00 4.0348711126612917E+00 4.0092628650587692E+00 + 3.9814908104548654E+00 3.9515324603812494E+00 3.9193687423393611E+00 + 3.8849842433956217E+00 3.8483674531306402E+00 3.8095110040084501E+00 + 3.7684119069888715E+00 3.7250717799501927E+00 3.6794970662216282E+00 + 3.6316992402479262E+00 3.5816949971246714E+00 3.5295064224563717E+00 + 3.4751611387048609E+00 3.4186924239193877E+00 3.3601392984795662E+00 + 3.2995465752475965E+00 3.2369648683288550E+00 3.1724505554938309E+00 + 3.1060656892371963E+00 3.0378778514617588E+00 2.9679599469014444E+00 + 2.8963899306672869E+00 2.8232504657493593E+00 2.7486285069768153E+00 + 2.6726148088770434E+00 2.5953033561413479E+00 2.5167907170661588E+00 + 2.4371753224756230E+00 2.3565566753365914E+00 2.2750344996595899E+00 + 2.1927078414659618E+00 2.1096741397404801E+00 2.0260282915516536E+00 + 1.9418617431084093E+00 1.8572616476637189E+00 1.7723101421398841E+00 + 1.6870838074479499E+00 1.6016533930620058E+00 1.5160839049029406E+00 + 1.4304351774611739E+00 1.3447630768950465E+00 1.2591215122136117E+00 + 1.1735654673178706E+00 1.0881509929943569E+00 1.0029351988246709E+00 + 9.1797624491525032E-01 8.3333333333333293E-01 7.4906669911621138E-01 + 6.6523760070160975E-01 5.8190830960717266E-01 4.9914209916683344E-01 + 4.1700323211112955E-01 3.3555694675749292E-01 2.5486944155513475E-01 + 1.7500785770751615E-01 9.6040259573575107E-02 1.8035612526988386E-02 + -5.8936242069112042E-02 -1.3480461513625805E-01 -2.0949800178930506E-01 + -2.8294411728631369E-01 -3.5506993744671606E-01 -4.2580174398442788E-01 + -4.9506517522121046E-01 -5.6278528266307670E-01 -6.2888659393864799E-01 + -6.9329318261292860E-01 -7.5592874540270638E-01 -8.1671668733052605E-01 + -8.7558021536268105E-01 -9.3244244108268537E-01 -9.8722649295506970E-01 + -1.0398556387348024E+00 -1.0902534185750388E+00 -1.1383437893800292E+00 + -1.1840512809408310E+00 -1.2273011643784546E+00 -1.2680196334026754E+00 + -1.3061339988744816E+00 -1.3415728971350442E+00 -1.3742665125379252E+00 + -1.4041468145855658E+00 -1.4311478100357804E+00 -1.4552058103046779E+00 + -1.4762597144404661E+00 -1.4942513078970878E+00 -1.5091255772754824E+00 + -1.5208310411352901E+00 -1.5293200969115874E+00 -1.5345493838877944E+00 + -1.5364801620871624E+00 -1.5350787068429839E+00 -1.5303167186924451E+00 + -1.5221717481083488E+00 -1.5106276344344809E+00 -1.4956749582217912E+00 + -1.4773115059713686E+00 -1.4555427460737418E+00 -1.4303823144900965E+00 + -1.4018525084469966E+00 -1.3699847861103949E+00 -1.3348202698652305E+00 + -1.2964102504528341E+00 -1.2548166888089112E+00 -1.2101127120004547E+00 + -1.1623830991814101E+00 -1.1117247529761991E+00 -1.0582471511602936E+00 + -1.0020727729417440E+00 -9.4333749356212238E-01 -8.8219094033600887E-01 + -8.1879680264240640E-01 -7.5333308777824315E-01 -6.8599231399340177E-01 + -6.1698163146007390E-01 -5.4652286139938766E-01 -4.7485244310936897E-01 + -4.0222127822575837E-01 -3.2889446121774180E-01 -2.5515088489212817E-01 + -1.8128270957087139E-01 -1.0759468463801908E-01 -3.4403311343812852E-02 + 3.7964163873014094E-02 1.0917093570724415E-01 1.7887201531501018E-01 + 2.4671580296251536E-01 3.1234586499863476E-01 3.7540292055795499E-01 + 4.3552704150300325E-01 4.9236006690063289E-01 5.4554823078600123E-01 + 5.9474499909005940E-01 6.3961410838872657E-01 6.7983279557437948E-01 + 7.1509520365868284E-01 7.4511594470164633E-01 7.6963379634337181E-01 + 7.8841550361760848E-01 8.0125965268355004E-01 8.0800057786655666E-01 + 8.0851225800193716E-01 8.0271215259154327E-01 7.9056492278555834E-01 + 7.7208597677952240E-01 7.4734477397134269E-01 7.1646781727233044E-01 + 6.7964125844400591E-01 6.3711303738957992E-01 5.8919447313447715E-01 + 5.3626122197079140E-01 4.7875351712029218E-01 4.1717560451006730E-01 + 3.5209429108885482E-01 2.8413652578654669E-01 2.1398593898721227E-01 + 1.4237827450154458E-01 7.0095658736404318E-02 -2.0403346988966892E-03 + -7.3176850128677293E-02 -1.4243915007604080E-01 -2.0894123291952268E-01 + -2.7179762369364735E-01 -3.3013626392038031E-01 -3.8311239327069307E-01 + -4.2992327980078071E-01 -4.6982361688364693E-01 -5.0214136432381051E-01 + -5.2629376924169669E-01 -5.4180326008340585E-01 -5.4831286570045401E-01 + -5.4560077222160674E-01 -5.3359359499527992E-01 -5.1237791302148883E-01 + -4.8220959102036143E-01 -4.4352040177247481E-01 -3.9692146091235797E-01 + -3.4320300032282619E-01 -2.8333003701241660E-01 -2.1843354409581531E-01 + -1.4979680123976793E-01 -7.8836695313299246E-02 -7.0798590870481369E-03 + 6.3866322951500770E-02 1.3234764777471528E-01 1.9670158526938483E-01 + 2.5529974133134686E-01 3.0659348529863295E-01 3.4916170499948274E-01 + 3.8175942222086418E-01 4.0336577936777157E-01 4.1322970570394224E-01 + 4.1091140165431839E-01 3.9631765634382221E-01 3.6972895188262578E-01 + 3.3181632323608862E-01 2.8364604973752566E-01 2.2667046691370060E-01 + 1.6270351627348981E-01 9.3880103239459667E-02 2.2598911477708483E-02 + -4.8550979114654266E-02 -1.1687851620124494E-01 -1.7969209229589198E-01 + -2.3441095923841129E-01 -2.7868268404277469E-01 -3.1050177280769431E-01 + -3.2832377711622551E-01 -3.3116856143400430E-01 -3.1870602647060292E-01 + -2.9131752904039132E-01 -2.5012658567734958E-01 -1.9699325583110983E-01 + -1.3446791271833519E-01 -6.5701940584657892E-02 5.6847742812899020E-03 + 7.5776928330644241E-02 1.4057174547453602E-01 1.9621282260330855E-01 + 2.3923773183222671E-01 2.6682437148169857E-01 2.7701881274774848E-01 + 2.6892607793764617E-01 2.4284521655312882E-01 2.0033148602032608E-01 + 1.4417158775825001E-01 7.8262835222102325E-02 7.3937641323180928E-03 + -6.3068224351009602E-02 -1.2756753830601456E-01 -1.8080538463441517E-01 + -2.1820629955607837E-01 -2.3636628447858971E-01 -2.3343815707682369E-01 + -2.0940903747526496E-01 -1.6622884447771918E-01 -1.0775782360496725E-01 + -3.9515521752732360E-02 3.1767315395733998E-02 9.8770023314628530E-02 + 1.5432884580036671E-01 1.9223937026687932E-01 2.0802694437264388E-01 + 1.9958772276357209E-01 1.6760426486249183E-01 1.1565405932477089E-01 + 4.9957760705547423E-02 -2.1244858499835741E-02 -8.8652620734192625E-02 + -1.4310141593554437E-01 -1.7686061900389879E-01 -1.8484540621976686E-01 + -1.6555323425276555E-01 -1.2153706004752846E-01 -5.9286874772890921E-02 + 1.1541184024747801E-02 7.9497390934068032E-02 1.3315163149403333E-01 + 1.6307990062845432E-01 1.6368255708262475E-01 1.3447219153408330E-01 + 8.0515701797200925E-02 1.1836458855608472E-02 -5.8233881604444739E-02 + -1.1554359727654083E-01 -1.4802398422506688E-01 -1.4842340569501955E-01 + -1.1623601695295367E-01 -5.8278234605309398E-02 1.2394361591386797E-02 + 7.9175924375977286E-02 1.2573692255917035E-01 1.4015231774535730E-01 + 1.1828476711446276E-01 6.5416612439729752E-02 -4.5419482525039931E-03 + -7.2349629179688790E-02 -1.1859137710076031E-01 -1.2938906542034101E-01 + -1.0098318134723813E-01 -4.1600220210764080E-02 3.0340706337580091E-02 + 9.1550537483907651E-02 1.2135822663623334E-01 1.0902456057107973E-01 + 5.8240298507787114E-02 -1.3201703618946382E-02 -7.9050087252216933E-02 + -1.1404780142065017E-01 -1.0392844855785839E-01 -5.1956006293140386E-02 + 2.1165414370458508E-02 8.4823103602360186E-02 1.1111534980764444E-01 + 8.7526960319491212E-02 2.3808645244449068E-02 -5.0952296034398631E-02 + -1.0092162173869337E-01 -1.0075327251270852E-01 -4.9269589377915916E-02 + 2.8049912394552817E-02 9.0587905136379585E-02 1.0363512517618199E-01 + 5.8358029748377331E-02 -2.1004508072838067E-02 -8.8705300210148344E-02 + -1.0334285707366540E-01 -5.3881430381468309E-02 3.0713206517018365E-02 + 9.6778773216147918E-02 9.9465203373176853E-02 3.4103791854082272E-02 + -5.6809832378026830E-02 -1.0949976037836372E-01 -8.3441207270101125E-02 + 6.0968491056694928E-03 9.4160133178173885E-02 1.1178234548169412E-01 + 4.0583313321247337E-02 -6.6955349301627040E-02 -1.2360786188268048E-01 + -7.7719738572573277E-02 3.8129061843061973E-02 1.2653605307053764E-01 + 1.0571763174993354E-01 -1.3619599323657859E-02 -1.2761106289130608E-01 + -1.2726645822436816E-01 -3.4755794619024272E-03 1.3218412315011016E-01 + 1.4488236065094576E-01 1.1048288655961469E-02 -1.4392220812639600E-01 + -1.5945975666032586E-01 -6.6537596425416887E-03 1.6480770781891338E-01 + 1.6933349488687433E-01 -1.2947509813083400E-02 -1.9452174863209629E-01 + -1.6967368568929628E-01 5.1110831090086448E-02 2.2911317331306158E-01 + 1.5257697758696626E-01 -1.0922357103012718E-01 -2.5949058925667490E-01 + -1.0867518874123652E-01 1.8339710121399369E-01 2.7075896336848587E-01 + 3.1997330606208275E-02 -2.6382265452011638E-01 -2.3748503827237011E-01 + 5.8651376417998204E-02 3.5726856209220520E-01 1.2822937346785501E-01 + -2.9239081389476734E-01 4.7243998312051133E-01 -3.5756654099389702E+00 + 1.2403040785686937E+01 + + + 3.4519559953538614E-11 1.0007210920136430E-03 2.0150849158569370E-03 + 3.0432774513789000E-03 4.0854872131765889E-03 5.1419052851146623E-03 + 6.2127253553137980E-03 7.2981437516145033E-03 8.3983594775221809E-03 + 9.5135742486405130E-03 1.0643992529599550E-02 1.1789821571485065E-02 + 1.2951271449775564E-02 1.4128555102794923E-02 1.5321888370685988E-02 + 1.6531490034913717E-02 1.7757581858303437E-02 1.9000388625623081E-02 + 2.0260138184714879E-02 2.1537061488185516E-02 2.2831392635660801E-02 + 2.4143368916613665E-02 2.5473230853772851E-02 2.6821222247118394E-02 + 2.8187590218474598E-02 2.9572585256707109E-02 3.0976461263530819E-02 + 3.2399475599938624E-02 3.3841889133258939E-02 3.5303966284850663E-02 + 3.6785975078441092E-02 3.8288187189121740E-02 3.9810877993002869E-02 + 4.1354326617541154E-02 4.2918815992549111E-02 4.4504632901890981E-02 + 4.6112068035879805E-02 4.7741416044380772E-02 4.9392975590631702E-02 + 5.1067049405791515E-02 5.2763944344223206E-02 5.4483971439523812E-02 + 5.6227445961310074E-02 5.7994687472768980E-02 5.9786019888986047E-02 + 6.1601771536057261E-02 6.3442275210998197E-02 6.5307868242461806E-02 + 6.7198892552269296E-02 6.9115694717774248E-02 7.1058626035061190E-02 + 7.3028042582995847E-02 7.5024305288137319E-02 7.7047779990520288E-02 + 7.9098837510320028E-02 8.1177853715417095E-02 8.3285209589862241E-02 + 8.5421291303263910E-02 8.7586490281103976E-02 8.9781203275995522E-02 + 9.2005832439896129E-02 9.4260785397286773E-02 9.6546475319326711E-02 + 9.8863320999008103E-02 1.0121174692730496E-01 1.0359218337034462E-01 + 1.0600506644760670E-01 1.0845083821117016E-01 1.1092994672600795E-01 + 1.1344284615135726E-01 1.1598999682317321E-01 1.1857186533767465E-01 + 1.2118892463600499E-01 1.2384165409001616E-01 1.2653053958918950E-01 + 1.2925607362871147E-01 1.3201875539871369E-01 1.3481909087469715E-01 + 1.3765759290915455E-01 1.4053478132439393E-01 1.4345118300660234E-01 + 1.4640733200113634E-01 1.4940376960907653E-01 1.5244104448505641E-01 + 1.5551971273636350E-01 1.5864033802335942E-01 1.6180349166120916E-01 + 1.6500975272294305E-01 1.6825970814387015E-01 1.7155395282736224E-01 + 1.7489308975201054E-01 1.7827773008018474E-01 1.8170849326800784E-01 + 1.8518600717676609E-01 1.8871090818574804E-01 1.9228384130657353E-01 + 1.9590546029898748E-01 1.9957642778814988E-01 2.0329741538345455E-01 + 2.0706910379886984E-01 2.1089218297482412E-01 2.1476735220167464E-01 + 2.1869532024474339E-01 2.2267680547096019E-01 2.2671253597713448E-01 + 2.3080324971984259E-01 2.3494969464698817E-01 2.3915262883102653E-01 + 2.4341282060387340E-01 2.4773104869353571E-01 2.5210810236243930E-01 + 2.5654478154753435E-01 2.6104189700213354E-01 2.6560027043953560E-01 + 2.7022073467845065E-01 2.7490413379022549E-01 2.7965132324791603E-01 + 2.8446317007719002E-01 2.8934055300910616E-01 2.9428436263477387E-01 + 2.9929550156191459E-01 3.0437488457333300E-01 3.0952343878732935E-01 + 3.1474210382005907E-01 3.2003183194986456E-01 3.2539358828358478E-01 + 3.3082835092486895E-01 3.3633711114450637E-01 3.4192087355278800E-01 + 3.4758065627391221E-01 3.5331749112246497E-01 3.5913242378195587E-01 + 3.6502651398547925E-01 3.7100083569844350E-01 3.7705647730345782E-01 + 3.8319454178731910E-01 3.8941614693017201E-01 3.9572242549681436E-01 + 4.0211452543017190E-01 4.0859361004696321E-01 4.1516085823555443E-01 + 4.2181746465600733E-01 4.2856463994235472E-01 4.3540361090708424E-01 + 4.4233562074785387E-01 4.4936192925644075E-01 4.5648381302994051E-01 + 4.6370256568418933E-01 4.7101949806947213E-01 4.7843593848845123E-01 + 4.8595323291635351E-01 4.9357274522343930E-01 5.0129585739969929E-01 + 5.0912396978182117E-01 5.1705850128238662E-01 5.2510088962134371E-01 + 5.3325259155969018E-01 5.4151508313540242E-01 5.4988985990158734E-01 + 5.5837843716684199E-01 5.6698235023780297E-01 5.7570315466388200E-01 + 5.8454242648419552E-01 5.9350176247656761E-01 6.0258278040874180E-01 + 6.1178711929163054E-01 6.2111643963465890E-01 6.3057242370316002E-01 + 6.4015677577775620E-01 6.4987122241573503E-01 6.5971751271434753E-01 + 6.6969741857602760E-01 6.7981273497542727E-01 6.9006528022826508E-01 + 7.0045689626192897E-01 7.1098944888777094E-01 7.2166482807503729E-01 + 7.3248494822632215E-01 7.4345174845461037E-01 7.5456719286162266E-01 + 7.6583327081763997E-01 7.7725199724245730E-01 7.8882541288757690E-01 + 8.0055558461950593E-01 8.1244460570393906E-01 8.2449459609088394E-01 + 8.3670770270050066E-01 8.4908609970958870E-01 8.6163198883855485E-01 + 8.7434759963875552E-01 8.8723518978009308E-01 9.0029704533864940E-01 + 9.1353548108422800E-01 9.2695284076764950E-01 9.4055149740763966E-01 + 9.5433385357704681E-01 9.6830234168824436E-01 9.8245942427753974E-01 + 9.9680759428829924E-01 1.0113493753525746E+00 1.0260873220710569E+00 + 1.0410240202909751E+00 1.0561620873818227E+00 1.0715041725084526E+00 + 1.0870529569014091E+00 1.1028111541241166E+00 1.1187815103364653E+00 + 1.1349668045547672E+00 1.1513698489073516E+00 1.1679934888856818E+00 + 1.1848406035904691E+00 1.2019141059724099E+00 1.2192169430670978E+00 + 1.2367520962236473E+00 1.2545225813264793E+00 1.2725314490099429E+00 + 1.2907817848650178E+00 1.3092767096377038E+00 1.3280193794184056E+00 + 1.3470129858218221E+00 1.3662607561565574E+00 1.3857659535839155E+00 + 1.4055318772650425E+00 1.4255618624958473E+00 1.4458592808287372E+00 + 1.4664275401805642E+00 1.4872700849257450E+00 1.5083903959738385E+00 + 1.5297919908305395E+00 1.5514784236411947E+00 1.5734532852158114E+00 + 1.5957202030344755E+00 1.6182828412320884E+00 1.6411449005613332E+00 + 1.6643101183325506E+00 1.6877822683292998E+00 1.7115651606984150E+00 + 1.7356626418128940E+00 1.7600785941064963E+00 1.7848169358783013E+00 + 1.8098816210657906E+00 1.8352766389847324E+00 1.8610060140341866E+00 + 1.8870738053648417E+00 1.9134841065087138E+00 1.9402410449684051E+00 + 1.9673487817636990E+00 1.9948115109335085E+00 2.0226334589907955E+00 + 2.0508188843281969E+00 2.0793720765720018E+00 2.1082973558816778E+00 + 2.1375990721925713E+00 2.1672816043988212E+00 2.1973493594736095E+00 + 2.2278067715238143E+00 2.2586583007756644E+00 2.2899084324884376E+00 + 2.3215616757923807E+00 2.3536225624474665E+00 2.3860956455192710E+00 + 2.4189854979677210E+00 2.4522967111451037E+00 2.4860338931984671E+00 + 2.5202016673724619E+00 2.5548046702077190E+00 2.5898475496297251E+00 + 2.6253349629235658E+00 2.6612715745885791E+00 2.6976620540682110E+00 + 2.7345110733483140E+00 2.7718233044187794E+00 2.8096034165914139E+00 + 2.8478560736681642E+00 2.8865859309522612E+00 2.9257976320954207E+00 + 2.9654958057736547E+00 3.0056850621836735E+00 3.0463699893520331E+00 + 3.0875551492480495E+00 3.1292450736924509E+00 3.1714442600515316E+00 + 3.2141571667079205E+00 3.2573882082975958E+00 3.3011417507026106E+00 + 3.3454221057888351E+00 3.3902335258769902E+00 3.4355801979353311E+00 + 3.4814662374814214E+00 3.5278956821801137E+00 3.5748724851242222E+00 + 3.6224005077838308E+00 3.6704835126096365E+00 3.7191251552748841E+00 + 3.7683289765401571E+00 3.8180983937242257E+00 3.8684366917639266E+00 + 3.9193470138446385E+00 3.9708323515831339E+00 4.0228955347425517E+00 + 4.0755392204600387E+00 4.1287658819647612E+00 4.1825777967653126E+00 + 4.2369770342826607E+00 4.2919654429051928E+00 4.3475446364409764E+00 + 4.4037159799410350E+00 4.4604805748672378E+00 4.5178392435761658E+00 + 4.5757925130904633E+00 4.6343405981272854E+00 4.6934833833520750E+00 + 4.7532204048257656E+00 4.8135508306108097E+00 4.8744734405015500E+00 + 4.9359866048420074E+00 4.9980882623937912E+00 5.0607758972146311E+00 + 5.1240465145068530E+00 5.1878966153946182E+00 5.2523221705854111E+00 + 5.3173185928716595E+00 5.3828807084258594E+00 5.4490027268410790E+00 + 5.5156782098676951E+00 5.5829000387950956E+00 5.6506603804261033E+00 + 5.7189506515899469E+00 5.7877614821379062E+00 5.8570826763653683E+00 + 5.9269031728007064E+00 5.9972110023018983E+00 6.0679932443992852E+00 + 6.1392359818215061E+00 6.2109242531413731E+00 6.2830420034762513E+00 + 6.3555720331769896E+00 6.4284959444392165E+00 6.5017940857684016E+00 + 6.5754454942315403E+00 6.6494278354268967E+00 6.7237173411033808E+00 + 6.7982887443612876E+00 6.8731152123673729E+00 6.9481682765171868E+00 + 7.0234177599796839E+00 7.0988317025608048E+00 7.1743762828246931E+00 + 7.2500157374148460E+00 7.3257122775203358E+00 7.4014260024371321E+00 + 7.4771148101796916E+00 7.5527343051033196E+00 7.6282377025058627E+00 + 7.7035757301851016E+00 7.7786965269367734E+00 7.8535455379902386E+00 + 7.9280654073902070E+00 8.0021958673465470E+00 8.0758736245912353E+00 + 8.1490322437966984E+00 8.2216020281323399E+00 8.2935098970560048E+00 + 8.3646792614629835E+00 8.4350298963419608E+00 8.5044778111186652E+00 + 8.5729351179010020E+00 8.6403098978774775E+00 8.7065060661618876E+00 + 8.7714232354230308E+00 8.8349565786881978E+00 8.8969966917647234E+00 + 8.9574294557840695E+00 9.0161359004395010E+00 9.0729920685604082E+00 + 9.1278688827467001E+00 9.1806320148709748E+00 9.2311417593520027E+00 + 9.2792529112041304E+00 9.3248146499779310E+00 9.3676704308278076E+00 + 9.4076578840713125E+00 9.4446087247458603E+00 9.4783486738197453E+00 + 9.5086973928738487E+00 9.5354684342510314E+00 9.5584692088509016E+00 + 9.5775009739522527E+00 9.5923588436578004E+00 9.6028318247840367E+00 + 9.6087028812620545E+00 9.6097490303704891E+00 9.6057414743966802E+00 + 9.5964457716057741E+00 9.5816220507010321E+00 9.5610252732756891E+00 + 9.5344055490835231E+00 9.5015085093021572E+00 9.4620757433169498E+00 + 9.4158453049188466E+00 9.3625522941859707E+00 9.3019295216979234E+00 + 9.2337082621187907E+00 9.1576191045662458E+00 9.0733929075675626E+00 + 8.9807618667693756E+00 8.8794607039280784E+00 8.7692279860328082E+00 + 8.6498075837182071E+00 8.5209502783800399E+00 8.3824155276121655E+00 + 8.2339733987254853E+00 8.0754066801652282E+00 7.9065131806047511E+00 + 7.7271082253356589E+00 7.5370273592714128E+00 7.3361292654207029E+00 + 7.1242989070188933E+00 6.9014509006177045E+00 6.6675331262769548E+00 + 6.4225305795352847E+00 6.1664694680194687E+00 5.8994215533272891E+00 + 5.6215087361277991E+00 5.3329078792012696E+00 5.0338558593191394E+00 + 4.7246548343561194E+00 4.4056777067469834E+00 4.0773737582461305E+00 + 3.7402744238157544E+00 3.3949991642272370E+00 3.0422613874898259E+00 + 2.6828743583557486E+00 2.3177570227529167E+00 1.9479396598610672E+00 + 1.5745692585027835E+00 1.1989144963385647E+00 8.2237017980093952E-01 + 4.4646097952975122E-01 7.2844269980929813E-02 -2.9668814741999394E-01 + -6.6020969106922023E-01 -1.0156603061972678E+00 -1.3608497634985810E+00 + -1.6934633266777852E+00 -2.0110702173834034E+00 -2.3111353629833760E+00 + -2.5910349760348228E+00 -2.8480765847568086E+00 -3.0795242120798569E+00 + -3.2826294877240723E+00 -3.4546695741573976E+00 -3.5929928942404401E+00 + -3.6950737670116345E+00 -3.7585771897227569E+00 -3.7814351503794250E+00 + -3.7619360173727134E+00 -3.6988287332671326E+00 -3.5914437406977067E+00 + -3.4398327922395544E+00 -3.2449300461530588E+00 -3.0087371296308114E+00 + -2.7345351648843272E+00 -2.4271271060870299E+00 -2.0931141328440033E+00 + -1.7412102955656543E+00 -1.3826001183883720E+00 -1.0313444462149750E+00 + -7.0484048619812856E-01 -4.2420848361667335E-01 -2.1842109385592631E-01 + -8.0967555953303308E-02 -4.2692607125124262E-03 2.3273287178183489E-02 + 1.8019380667583854E-02 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 + + + 1.7587657387881872E+00 5.3327925200471853E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 5.3327925200471853E+00 1.6061942894787933E+01 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 4.5363200566050227E-01 2.1460423157423056E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 2.1460423157423056E+00 + 9.9046168377620027E+00 + + + -6.9204563136518446E-02 -2.0530658660082191E-01 0.0000000000000000E+00 + 0.0000000000000000E+00 -2.0530658660082191E-01 -6.1033017522004340E-01 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 -2.9427759043430719E-02 -1.3072613169608638E-01 + 0.0000000000000000E+00 0.0000000000000000E+00 -1.3072613169608638E-01 + -5.8244557843272049E-01 + + + + diff --git a/abipy/data/pseudos/Sr.xml b/abipy/data/pseudos/Sr.xml new file mode 100644 index 000000000..41acba595 --- /dev/null +++ b/abipy/data/pseudos/Sr.xml @@ -0,0 +1,12648 @@ + + + + + + + + + + + + + + + + + + + + + 0.0000000000000000E+00 1.9221987425835636E-06 3.8608607453583627E-06 + 5.8161270129614945E-06 7.7881397577075081E-06 9.7770424099318317E-06 + 1.1782979628423057E-05 1.3806097310944184E-05 1.5846542604844387E-05 + 1.7904463917761421E-05 1.9980010928415621E-05 2.2073334597496791E-05 + 2.4184587178643684E-05 2.6313922229517966E-05 2.8461494622973023E-05 + 3.0627460558318313E-05 3.2811977572680020E-05 3.5015204552459419E-05 + 3.7237301744888952E-05 3.9478430769687767E-05 4.1738754630816453E-05 + 4.4018437728333091E-05 4.6317645870350295E-05 4.8636546285095291E-05 + 5.0975307633072464E-05 5.3334100019331001E-05 5.5713095005836714E-05 + 5.8112465623950572E-05 6.0532386387013580E-05 6.2973033303039832E-05 + 6.5434583887517922E-05 6.7917217176322248E-05 7.0421113738734884E-05 + 7.2946455690578739E-05 7.5493426707463597E-05 7.8062212038145206E-05 + 8.0652998517999228E-05 8.3265974582609923E-05 8.5901330281476013E-05 + 8.8559257291833350E-05 9.1239948932596141E-05 9.3943600178417847E-05 + 9.6670407673871923E-05 9.9420569747754665E-05 1.0219428642751000E-04 + 1.0499175945377835E-04 1.0781319229506950E-04 1.1065879016256176E-04 + 1.1352876002502749E-04 1.1642331062388639E-04 1.1934265248838815E-04 + 1.2228699795092466E-04 1.2525656116247369E-04 1.2825155810817474E-04 + 1.3127220662303800E-04 1.3431872640778863E-04 1.3739133904484580E-04 + 1.4049026801443934E-04 1.4361573871086395E-04 1.4676797845887272E-04 + 1.4994721653021142E-04 1.5315368416029390E-04 1.5638761456502053E-04 + 1.5964924295774077E-04 1.6293880656636085E-04 1.6625654465059821E-04 + 1.6960269851938321E-04 1.7297751154841086E-04 1.7638122919784151E-04 + 1.7981409903015464E-04 1.8327637072815408E-04 1.8676829611312894E-04 + 1.9029012916316863E-04 1.9384212603163582E-04 1.9742454506579727E-04 + 2.0103764682561384E-04 2.0468169410269230E-04 2.0835695193939849E-04 + 2.1206368764813482E-04 2.1580217083078278E-04 2.1957267339831166E-04 + 2.2337546959055578E-04 2.2721083599616039E-04 2.3107905157269894E-04 + 2.3498039766696262E-04 2.3891515803542340E-04 2.4288361886487249E-04 + 2.4688606879323547E-04 2.5092279893056617E-04 2.5499410288021930E-04 + 2.5910027676020585E-04 2.6324161922472997E-04 2.6741843148591157E-04 + 2.7163101733569374E-04 2.7587968316793908E-04 2.8016473800071394E-04 + 2.8448649349876494E-04 2.8884526399618670E-04 2.9324136651928472E-04 + 2.9767512080963347E-04 3.0214684934733171E-04 3.0665687737445839E-04 + 3.1120553291872738E-04 3.1579314681734705E-04 3.2042005274108171E-04 + 3.2508658721852189E-04 3.2979308966055978E-04 3.3453990238507651E-04 + 3.3932737064183959E-04 3.4415584263761372E-04 3.4902566956148740E-04 + 3.5393720561041565E-04 3.5889080801498169E-04 3.6388683706537969E-04 + 3.6892565613761970E-04 3.7400763171995677E-04 3.7913313343954704E-04 + 3.8430253408933167E-04 3.8951620965515100E-04 3.9477453934309175E-04 + 4.0007790560706713E-04 4.0542669417663400E-04 4.1082129408504843E-04 + 4.1626209769756074E-04 4.2174950073995408E-04 4.2728390232732601E-04 + 4.3286570499311775E-04 4.3849531471839171E-04 4.4417314096135909E-04 + 4.4989959668716189E-04 4.5567509839790842E-04 4.6150006616296692E-04 + 4.6737492364951842E-04 4.7330009815337146E-04 4.7927602063004037E-04 + 4.8530312572609021E-04 4.9138185181074969E-04 4.9751264100779500E-04 + 5.0369593922770697E-04 5.0993219620010320E-04 5.1622186550644893E-04 + 5.2256540461304664E-04 5.2896327490430887E-04 5.3541594171631650E-04 + 5.4192387437066402E-04 5.4848754620859437E-04 5.5510743462542679E-04 + 5.6178402110527883E-04 5.6851779125608641E-04 5.7530923484492354E-04 + 5.8215884583362432E-04 5.8906712241471018E-04 5.9603456704762550E-04 + 6.0306168649528218E-04 6.1014899186091851E-04 6.1729699862527300E-04 + 6.2450622668407715E-04 6.3177720038586852E-04 6.3911044857012855E-04 + 6.4650650460574644E-04 6.5396590642981256E-04 6.6148919658674463E-04 + 6.6907692226774839E-04 6.7672963535061548E-04 6.8444789243986531E-04 + 6.9223225490722606E-04 7.0008328893246703E-04 7.0800156554457687E-04 + 7.1598766066329790E-04 7.2404215514101271E-04 7.3216563480499254E-04 + 7.4035869050000558E-04 7.4862191813129158E-04 7.5695591870790317E-04 + 7.6536129838641865E-04 7.7383866851503066E-04 7.8238864567801070E-04 + 7.9101185174055492E-04 7.9970891389401493E-04 8.0848046470151477E-04 + 8.1732714214395868E-04 8.2624958966643497E-04 8.3524845622501309E-04 + 8.4432439633394724E-04 8.5347807011327810E-04 8.6271014333684796E-04 + 8.7202128748072212E-04 8.8141217977202933E-04 8.9088350323821691E-04 + 9.0043594675673041E-04 9.1007020510511759E-04 9.1978697901156064E-04 + 9.2958697520584407E-04 9.3947090647075520E-04 9.4943949169392879E-04 + 9.5949345592013255E-04 9.6963353040400264E-04 9.7986045266322910E-04 + 9.9017496653219903E-04 1.0005778222160959E-03 1.0110697763454669E-03 + 1.0216515920312525E-03 1.0323240389202904E-03 1.0430878932512948E-03 + 1.0539439379113151E-03 1.0648929624926756E-03 1.0759357633504066E-03 + 1.0870731436601645E-03 1.0983059134766508E-03 1.1096348897925276E-03 + 1.1210608965978419E-03 1.1325847649399554E-03 1.1442073329839897E-03 + 1.1559294460737888E-03 1.1677519567934028E-03 1.1796757250290993E-03 + 1.1917016180319053E-03 1.2038305104806846E-03 1.2160632845457568E-03 + 1.2284008299530598E-03 1.2408440440488608E-03 1.2533938318650248E-03 + 1.2660511061848398E-03 1.2788167876094055E-03 1.2916918046245922E-03 + 1.3046770936685713E-03 1.3177735991999273E-03 1.3309822737663482E-03 + 1.3443040780739093E-03 1.3577399810569474E-03 1.3712909599485341E-03 + 1.3849580003515538E-03 1.3987420963103877E-03 1.4126442503832159E-03 + 1.4266654737149346E-03 1.4408067861107006E-03 1.4550692161101038E-03 + 1.4694538010619788E-03 1.4839615871998482E-03 1.4985936297180270E-03 + 1.5133509928483611E-03 1.5282347499376396E-03 1.5432459835256556E-03 + 1.5583857854239496E-03 1.5736552567952138E-03 1.5890555082333873E-03 + 1.6045876598444304E-03 1.6202528413277958E-03 1.6360521920585904E-03 + 1.6519868611704523E-03 1.6680580076391224E-03 1.6842668003667486E-03 + 1.7006144182668964E-03 1.7171020503503000E-03 1.7337308958113380E-03 + 1.7505021641152601E-03 1.7674170750861481E-03 1.7844768589956434E-03 + 1.8016827566524260E-03 1.8190360194924597E-03 1.8365379096700186E-03 + 1.8541897001494801E-03 1.8719926747979183E-03 1.8899481284784781E-03 + 1.9080573671445586E-03 1.9263217079347947E-03 1.9447424792688611E-03 + 1.9633210209440873E-03 1.9820586842329113E-03 2.0009568319811532E-03 + 2.0200168387071492E-03 2.0392400907017130E-03 2.0586279861289770E-03 + 2.0781819351280736E-03 2.0979033599157074E-03 2.1177936948895909E-03 + 2.1378543867327801E-03 2.1580868945188848E-03 2.1784926898182023E-03 + 2.1990732568047452E-03 2.2198300923641861E-03 2.2407647062027366E-03 + 2.2618786209569475E-03 2.2831733723044589E-03 2.3046505090756906E-03 + 2.3263115933664976E-03 2.3481582006517807E-03 2.3701919199000821E-03 + 2.3924143536891468E-03 2.4148271183224938E-03 2.4374318439469643E-03 + 2.4602301746712947E-03 2.4832237686856916E-03 2.5064142983824440E-03 + 2.5298034504775517E-03 2.5533929261334167E-03 2.5771844410825617E-03 + 2.6011797257524311E-03 2.6253805253912414E-03 2.6497886001949269E-03 + 2.6744057254351563E-03 2.6992336915884554E-03 2.7242743044664395E-03 + 2.7495293853471454E-03 2.7750007711075087E-03 2.8006903143569556E-03 + 2.8265998835721590E-03 2.8527313632329271E-03 2.8790866539592777E-03 + 2.9056676726496675E-03 2.9324763526204210E-03 2.9595146437463391E-03 + 2.9867845126025265E-03 3.0142879426074201E-03 3.0420269341670547E-03 + 3.0700035048205516E-03 3.0982196893868694E-03 3.1266775401127913E-03 + 3.1553791268222040E-03 3.1843265370666276E-03 3.2135218762770622E-03 + 3.2429672679171171E-03 3.2726648536374513E-03 3.3026167934315539E-03 + 3.3328252657928341E-03 3.3632924678730809E-03 3.3940206156422570E-03 + 3.4250119440496865E-03 3.4562687071865938E-03 3.4877931784500654E-03 + 3.5195876507083885E-03 3.5516544364678285E-03 3.5839958680408124E-03 + 3.6166142977155807E-03 3.6495120979272580E-03 3.6826916614304253E-03 + 3.7161554014731356E-03 3.7499057519724509E-03 3.7839451676914566E-03 + 3.8182761244178139E-03 3.8529011191438204E-03 3.8878226702480350E-03 + 3.9230433176784376E-03 3.9585656231371719E-03 3.9943921702668668E-03 + 4.0305255648385458E-03 4.0669684349411636E-03 4.1037234311727400E-03 + 4.1407932268331610E-03 4.1781805181186028E-03 4.2158880243176470E-03 + 4.2539184880090453E-03 4.2922746752612189E-03 4.3309593758334161E-03 + 4.3699754033786446E-03 4.4093255956482958E-03 4.4490128146985617E-03 + 4.4890399470985838E-03 4.5294099041404152E-03 4.5701256220507577E-03 + 4.6111900622045317E-03 4.6526062113402544E-03 4.6943770817772850E-03 + 4.7365057116349118E-03 4.7789951650533289E-03 4.8218485324165008E-03 + 4.8650689305769247E-03 4.9086595030823433E-03 4.9526234204043734E-03 + 4.9969638801691113E-03 5.0416841073896955E-03 5.0867873547008865E-03 + 5.1322769025956222E-03 5.1781560596636375E-03 5.2244281628320904E-03 + 5.2710965776082783E-03 5.3181646983244141E-03 5.3656359483845138E-03 + 5.4135137805133788E-03 5.4618016770077403E-03 5.5105031499895164E-03 + 5.5596217416612791E-03 5.6091610245638697E-03 5.6591246018362620E-03 + 5.7095161074776071E-03 5.7603392066115618E-03 5.8115975957528593E-03 + 5.8632950030761567E-03 5.9154351886872170E-03 5.9680219448963708E-03 + 6.0210590964943616E-03 6.0745505010305180E-03 6.1285000490933399E-03 + 6.1829116645934542E-03 6.2377893050490343E-03 6.2931369618736211E-03 + 6.3489586606664478E-03 6.4052584615052173E-03 6.4620404592414232E-03 + 6.5193087837981580E-03 6.5770676004705169E-03 6.6353211102285290E-03 + 6.6940735500227340E-03 6.7533291930923171E-03 6.8130923492759439E-03 + 6.8733673653252024E-03 6.9341586252207738E-03 6.9954705504912864E-03 + 7.0573076005348992E-03 7.1196742729436593E-03 7.1825751038306117E-03 + 7.2460146681597431E-03 7.3099975800787077E-03 7.3745284932544546E-03 + 7.4396121012116770E-03 7.5052531376742114E-03 7.5714563769093100E-03 + 7.6382266340749112E-03 7.7055687655698405E-03 7.7734876693870475E-03 + 7.8419882854698329E-03 7.9110755960711682E-03 7.9807546261160441E-03 + 8.0510304435669772E-03 8.1219081597925825E-03 8.1933929299393762E-03 + 8.2654899533066949E-03 8.3382044737248685E-03 8.4115417799366342E-03 + 8.4855072059817592E-03 8.5601061315850567E-03 8.6353439825476216E-03 + 8.7112262311414990E-03 8.7877583965076736E-03 8.8649460450575136E-03 + 8.9427947908776138E-03 9.0213102961381464E-03 9.1004982715046610E-03 + 9.1803644765534684E-03 9.2609147201905169E-03 9.3421548610739310E-03 + 9.4240908080400875E-03 9.5067285205334192E-03 9.5900740090398336E-03 + 9.6741333355239035E-03 9.7589126138697344E-03 9.8444180103256871E-03 + 9.9306557439528247E-03 1.0017632087077288E-02 1.0105353365746453E-02 + 1.0193825960189083E-02 1.0283056305279367E-02 1.0373050891004931E-02 + 1.0463816262938908E-02 1.0555359022715979E-02 1.0647685828512566E-02 + 1.0740803395531070E-02 1.0834718496488309E-02 1.0929437962108102E-02 + 1.1024968681618107E-02 1.1121317603250868E-02 1.1218491734749215E-02 + 1.1316498143875918E-02 1.1415343958927786E-02 1.1515036369254094E-02 + 1.1615582625779520E-02 1.1716990041531488E-02 1.1819265992172107E-02 + 1.1922417916534587E-02 1.2026453317164319E-02 1.2131379760864529E-02 + 1.2237204879246656E-02 1.2343936369285418E-02 1.2451581993878637E-02 + 1.2560149582411820E-02 1.2669647031327677E-02 1.2780082304700414E-02 + 1.2891463434815002E-02 1.3003798522751344E-02 1.3117095738973555E-02 + 1.3231363323924182E-02 1.3346609588623586E-02 1.3462842915274371E-02 + 1.3580071757871114E-02 1.3698304642815214E-02 1.3817550169535056E-02 + 1.3937817011111429E-02 1.4059113914908418E-02 1.4181449703209576E-02 + 1.4304833273859618E-02 1.4429273600911542E-02 1.4554779735279409E-02 + 1.4681360805396589E-02 1.4809026017879727E-02 1.4937784658198368E-02 + 1.5067646091350263E-02 1.5198619762542599E-02 1.5330715197878915E-02 + 1.5463942005052007E-02 1.5598309874042657E-02 1.5733828577824488E-02 + 1.5870507973074752E-02 1.6008358000891228E-02 1.6147388687515255E-02 + 1.6287610145061013E-02 1.6429032572250975E-02 1.6571666255157713E-02 + 1.6715521567951974E-02 1.6860608973657321E-02 1.7006939024911055E-02 + 1.7154522364731809E-02 1.7303369727293558E-02 1.7453491938706441E-02 + 1.7604899917804121E-02 1.7757604676937960E-02 1.7911617322778000E-02 + 1.8066949057120699E-02 1.8223611177703797E-02 1.8381615079027944E-02 + 1.8540972253185507E-02 1.8701694290696347E-02 1.8863792881350930E-02 + 1.9027279815060510E-02 1.9192166982714649E-02 1.9358466377046038E-02 + 1.9526190093502854E-02 1.9695350331128420E-02 1.9865959393448533E-02 + 2.0038029689366244E-02 2.0211573734064514E-02 2.0386604149916412E-02 + 2.0563133667403193E-02 2.0741175126040179E-02 2.0920741475310711E-02 + 2.1101845775607912E-02 2.1284501199184670E-02 2.1468721031111668E-02 + 2.1654518670243601E-02 2.1841907630193814E-02 2.2030901540317123E-02 + 2.2221514146701139E-02 2.2413759313165995E-02 2.2607651022272836E-02 + 2.2803203376340692E-02 2.3000430598472267E-02 2.3199347033588318E-02 + 2.3399967149471124E-02 2.3602305537816712E-02 2.3806376915296180E-02 + 2.4012196124625993E-02 2.4219778135647688E-02 2.4429138046416565E-02 + 2.4640291084299871E-02 2.4853252607084236E-02 2.5068038104092832E-02 + 2.5284663197311864E-02 2.5503143642526819E-02 2.5723495330468468E-02 + 2.5945734287968543E-02 2.6169876679125549E-02 2.6395938806480362E-02 + 2.6623937112201967E-02 2.6853888179283292E-02 2.7085808732747442E-02 + 2.7319715640864106E-02 2.7555625916376444E-02 2.7793556717738407E-02 + 2.8033525350362846E-02 2.8275549267880104E-02 2.8519646073407522E-02 + 2.8765833520829644E-02 2.9014129516089688E-02 2.9264552118491778E-02 + 2.9517119542014515E-02 2.9771850156635606E-02 3.0028762489668168E-02 + 3.0287875227108109E-02 3.0549207214993296E-02 3.0812777460774300E-02 + 3.1078605134696721E-02 3.1346709571195695E-02 3.1617110270302035E-02 + 3.1889826899060558E-02 3.2164879292960427E-02 3.2442287457378025E-02 + 3.2722071569031889E-02 3.3004251977450258E-02 3.3288849206451053E-02 + 3.3575883955634836E-02 3.3865377101890186E-02 3.4157349700912235E-02 + 3.4451822988733970E-02 3.4748818383270992E-02 3.5048357485879165E-02 + 3.5350462082925811E-02 3.5655154147374198E-02 3.5962455840381838E-02 + 3.6272389512912270E-02 3.6584977707360675E-02 3.6900243159193533E-02 + 3.7218208798602104E-02 3.7538897752170390E-02 3.7862333344557061E-02 + 3.8188539100192050E-02 3.8517538744987319E-02 3.8849356208062832E-02 + 3.9184015623486751E-02 3.9521541332030938E-02 3.9861957882941119E-02 + 4.0205290035722679E-02 4.0551562761941343E-02 4.0900801247039480E-02 + 4.1253030892167808E-02 4.1608277316033088E-02 4.1966566356761298E-02 + 4.2327924073777022E-02 4.2692376749698654E-02 4.3059950892250225E-02 + 4.3430673236189266E-02 4.3804570745251334E-02 4.4181670614111199E-02 + 4.4562000270360641E-02 4.4945587376503553E-02 4.5332459831967820E-02 + 4.5722645775134532E-02 4.6116173585384460E-02 4.6513071885162398E-02 + 4.6913369542058811E-02 4.7317095670909498E-02 4.7724279635913101E-02 + 4.8134951052767057E-02 4.8549139790821462E-02 4.8966875975251671E-02 + 4.9388189989249202E-02 4.9813112476231866E-02 5.0241674342072357E-02 + 5.0673906757346246E-02 5.1109841159598900E-02 5.1549509255632335E-02 + 5.1992943023811126E-02 5.2440174716388364E-02 5.2891236861851473E-02 + 5.3346162267287951E-02 5.3804984020771801E-02 5.4267735493769897E-02 + 5.4734450343569351E-02 5.5205162515725249E-02 5.5679906246529957E-02 + 5.6158716065502996E-02 5.6641626797902599E-02 5.7128673567258419E-02 + 5.7619891797926523E-02 5.8115317217665691E-02 5.8614985860236030E-02 + 5.9118934068019748E-02 5.9627198494664628E-02 6.0139816107749829E-02 + 6.0656824191474702E-02 6.1178260349370420E-02 6.1704162507035233E-02 + 6.2234568914892791E-02 6.2769518150974257E-02 6.3309049123723996E-02 + 6.3853201074829835E-02 6.4402013582077033E-02 6.4955526562226876E-02 + 6.5513780273920061E-02 6.6076815320604582E-02 6.6644672653489292E-02 + 6.7217393574522125E-02 6.7795019739394308E-02 6.8377593160569780E-02 + 6.8965156210341313E-02 6.9557751623912117E-02 7.0155422502504158E-02 + 7.0758212316492888E-02 7.1366164908569271E-02 7.1979324496928385E-02 + 7.2597735678485639E-02 7.3221443432120212E-02 7.3850493121946872E-02 + 7.4484930500615165E-02 7.5124801712637329E-02 7.5770153297744169E-02 + 7.6421032194270530E-02 7.7077485742568896E-02 7.7739561688452738E-02 + 7.8407308186669231E-02 7.9080773804401441E-02 7.9760007524801169E-02 + 8.0445058750551329E-02 8.1135977307459389E-02 8.1832813448080910E-02 + 8.2535617855375165E-02 8.3244441646391068E-02 8.3959336375985169E-02 + 8.4680354040571282E-02 8.5407547081902568E-02 8.6140968390885614E-02 + 8.6880671311427460E-02 8.7626709644315168E-02 8.8379137651129355E-02 + 8.9138010058190470E-02 8.9903382060539397E-02 9.0675309325951664E-02 + 9.1453847998986676E-02 9.2239054705071127E-02 9.3030986554617487E-02 + 9.3829701147177938E-02 9.4635256575633472E-02 9.5447711430419552E-02 + 9.6267124803787310E-02 9.7093556294101713E-02 9.7927066010175853E-02 + 9.8767714575643498E-02 9.9615563133367960E-02 1.0047067334988946E-01 + 1.0133310741990996E-01 1.0220292807081723E-01 1.0308019856724690E-01 + 1.0396498271568405E-01 1.0485734486910370E-01 1.0575734993165188E-01 + 1.0666506336336604E-01 1.0758055118493617E-01 1.0850387998250655E-01 + 1.0943511691251905E-01 1.1037432970659747E-01 1.1132158667647378E-01 + 1.1227695671895686E-01 1.1324050932094314E-01 1.1421231456447110E-01 + 1.1519244313181828E-01 1.1618096631064234E-01 1.1717795599916558E-01 + 1.1818348471140501E-01 1.1919762558244604E-01 1.2022045237376204E-01 + 1.2125203947857881E-01 1.2229246192728602E-01 1.2334179539289403E-01 + 1.2440011619653803E-01 1.2546750131302853E-01 1.2654402837645087E-01 + 1.2762977568581102E-01 1.2872482221073100E-01 1.2982924759719203E-01 + 1.3094313217332806E-01 1.3206655695526784E-01 1.3319960365302758E-01 + 1.3434235467645403E-01 1.3549489314121815E-01 1.3665730287486066E-01 + 1.3782966842288899E-01 1.3901207505492652E-01 1.4020460877091415E-01 + 1.4140735630736587E-01 1.4262040514367716E-01 1.4384384350848758E-01 + 1.4507776038609765E-01 1.4632224552294149E-01 1.4757738943411397E-01 + 1.4884328340995434E-01 1.5012001952268555E-01 1.5140769063311180E-01 + 1.5270639039737183E-01 1.5401621327375128E-01 1.5533725452955230E-01 + 1.5666961024802351E-01 1.5801337733534776E-01 1.5936865352769061E-01 + 1.6073553739830918E-01 1.6211412836472089E-01 1.6350452669593549E-01 + 1.6490683351974722E-01 1.6632115083009044E-01 1.6774758149445737E-01 + 1.6918622926138088E-01 1.7063719876797973E-01 1.7210059554756957E-01 + 1.7357652603733797E-01 1.7506509758608685E-01 1.7656641846203977E-01 + 1.7808059786071670E-01 1.7960774591287579E-01 1.8114797369252417E-01 + 1.8270139322499621E-01 1.8426811749510175E-01 1.8584826045534322E-01 + 1.8744193703420461E-01 1.8904926314451001E-01 1.9067035569185431E-01 + 1.9230533258310656E-01 1.9395431273498459E-01 1.9561741608270558E-01 + 1.9729476358870837E-01 1.9898647725145191E-01 2.0069268011428776E-01 + 2.0241349627441052E-01 2.0414905089188307E-01 2.0589947019874019E-01 + 2.0766488150816909E-01 2.0944541322377022E-01 2.1124119484889595E-01 + 2.1305235699606997E-01 2.1487903139648634E-01 2.1672135090959188E-01 + 2.1857944953274872E-01 2.2045346241098060E-01 2.2234352584680164E-01 + 2.2424977731013129E-01 2.2617235544829192E-01 2.2811140009609351E-01 + 2.3006705228600419E-01 2.3203945425840744E-01 2.3402874947194857E-01 + 2.3603508261396822E-01 2.3805859961102641E-01 2.4009944763951521E-01 + 2.4215777513636463E-01 2.4423373180983801E-01 2.4632746865042129E-01 + 2.4843913794180406E-01 2.5056889327195664E-01 2.5271688954430077E-01 + 2.5488328298897600E-01 2.5706823117420208E-01 2.5927189301774078E-01 + 2.6149442879845364E-01 2.6373600016795973E-01 2.6599677016239226E-01 + 2.6827690321425812E-01 2.7057656516439654E-01 2.7289592327404139E-01 + 2.7523514623698692E-01 2.7759440419185638E-01 2.7997386873447810E-01 + 2.8237371293036523E-01 2.8479411132730376E-01 2.8723523996804695E-01 + 2.8969727640312093E-01 2.9218039970373744E-01 2.9468479047481888E-01 + 2.9721063086813287E-01 2.9975810459554258E-01 3.0232739694236738E-01 + 3.0491869478086003E-01 3.0753218658379683E-01 3.1016806243818790E-01 + 3.1282651405910167E-01 3.1550773480360911E-01 3.1821191968484625E-01 + 3.2093926538619982E-01 3.2368997027561147E-01 3.2646423442000561E-01 + 3.2926225959984173E-01 3.3208424932378883E-01 3.3493040884352926E-01 + 3.3780094516868586E-01 3.4069606708187927E-01 3.4361598515391195E-01 + 3.4656091175908538E-01 3.4953106109064547E-01 3.5252664917636234E-01 + 3.5554789389424096E-01 3.5859501498837038E-01 3.6166823408490478E-01 + 3.6476777470818394E-01 3.6789386229698923E-01 3.7104672422094259E-01 + 3.7422658979704243E-01 3.7743369030634316E-01 3.8066825901077572E-01 + 3.8393053117011527E-01 3.8722074405909129E-01 3.9053913698464499E-01 + 3.9388595130333592E-01 3.9726143043889478E-01 4.0066581989993016E-01 + 4.0409936729778434E-01 4.0756232236454298E-01 4.1105493697119777E-01 + 4.1457746514596766E-01 4.1813016309277390E-01 4.2171328920987494E-01 + 4.2532710410865932E-01 4.2897187063260284E-01 4.3264785387638421E-01 + 4.3635532120516735E-01 4.4009454227404582E-01 4.4386578904765805E-01 + 4.4766933581996654E-01 4.5150545923420882E-01 4.5537443830301716E-01 + 4.5927655442871412E-01 4.6321209142377834E-01 4.6718133553148788E-01 + 4.7118457544673759E-01 4.7522210233703965E-01 4.7929420986369931E-01 + 4.8340119420317396E-01 4.8754335406861526E-01 4.9172099073159409E-01 + 4.9593440804401551E-01 5.0018391246021643E-01 5.0446981305925664E-01 + 5.0879242156739701E-01 5.1315205238077455E-01 5.1754902258826796E-01 + 5.2198365199456120E-01 5.2645626314340244E-01 5.3096718134106557E-01 + 5.3551673468000949E-01 5.4010525406274223E-01 5.4473307322588549E-01 + 5.4940052876445311E-01 5.5410796015632879E-01 5.5885570978695931E-01 + 5.6364412297425526E-01 5.6847354799370931E-01 5.7334433610372626E-01 + 5.7825684157117108E-01 5.8321142169713613E-01 5.8820843684292734E-01 + 5.9324825045627660E-01 5.9833122909777503E-01 6.0345774246753481E-01 + 6.0862816343207626E-01 6.1384286805145094E-01 6.1910223560659150E-01 + 6.2440664862689899E-01 6.2975649291806268E-01 6.3515215759012500E-01 + 6.4059403508577994E-01 6.4608252120891763E-01 6.5161801515341033E-01 + 6.5720091953215021E-01 6.6283164040633036E-01 6.6851058731498003E-01 + 6.7423817330474844E-01 6.8001481495995397E-01 6.8584093243287503E-01 + 6.9171694947431317E-01 6.9764329346441734E-01 7.0362039544375943E-01 + 7.0964869014469600E-01 7.1572861602297766E-01 7.2186061528964407E-01 + 7.2804513394319037E-01 7.3428262180199921E-01 7.4057353253706004E-01 + 7.4691832370497058E-01 7.5331745678120710E-01 7.5977139719369946E-01 + 7.6628061435667316E-01 7.7284558170479634E-01 7.7946677672761677E-01 + 7.8614468100428425E-01 7.9287978023858063E-01 7.9967256429425082E-01 + 8.0652352723062215E-01 8.1343316733855020E-01 8.2040198717665125E-01 + 8.2743049360785836E-01 8.3451919783629214E-01 8.4166861544443183E-01 + 8.4887926643062661E-01 8.5615167524690650E-01 8.6348637083713109E-01 + 8.7088388667546712E-01 8.7834476080517920E-01 8.8586953587776862E-01 + 8.9345875919244611E-01 9.0111298273592833E-01 9.0883276322259732E-01 + 9.1661866213498167E-01 9.2447124576459860E-01 9.3239108525314762E-01 + 9.4037875663404202E-01 9.4843484087430896E-01 9.5655992391685130E-01 + 9.6475459672305219E-01 9.7301945531577216E-01 9.8135510082268640E-01 + 9.8976213952001268E-01 9.9824118287661223E-01 1.0067928475984518E+00 + 1.0154177556734727E+00 1.0241165344168166E+00 1.0328898165164584E+00 + 1.0417382400792288E+00 1.0506624486772134E+00 1.0596630913945697E+00 + 1.0687408228747395E+00 1.0778963033680524E+00 1.0871301987797615E+00 + 1.0964431807184636E+00 1.1058359265449540E+00 1.1153091194214966E+00 + 1.1248634483615032E+00 1.1344996082796515E+00 1.1442183000424346E+00 + 1.1540202305191243E+00 1.1639061126331987E+00 1.1738766654141808E+00 + 1.1839326140499427E+00 1.1940746899394568E+00 1.2043036307459771E+00 + 1.2146201804507097E+00 1.2250250894069092E+00 1.2355191143944599E+00 + 1.2461030186749271E+00 1.2567775720470558E+00 1.2675435509027690E+00 + 1.2784017382836430E+00 1.2893529239378445E+00 1.3003979043775891E+00 + 1.3115374829370590E+00 1.3227724698308378E+00 1.3341036822128478E+00 + 1.3455319442357687E+00 1.3570580871109887E+00 1.3686829491690680E+00 + 1.3804073759206958E+00 1.3922322201182069E+00 1.4041583418175867E+00 + 1.4161866084410344E+00 1.4283178948400597E+00 1.4405530833590958E+00 + 1.4528930638996960E+00 1.4653387339852395E+00 1.4778909988262205E+00 + 1.4905507713860928E+00 1.5033189724476588E+00 1.5161965306800462E+00 + 1.5291843827062623E+00 1.5422834731712993E+00 1.5554947548108606E+00 + 1.5688191885206388E+00 1.5822577434262124E+00 1.5958113969535408E+00 + 1.6094811349000393E+00 1.6232679515062873E+00 1.6371728495283506E+00 + 1.6511968403106960E+00 1.6653409438597702E+00 1.6796061889181704E+00 + 1.6939936130394735E+00 1.7085042626637119E+00 1.7231391931934623E+00 + 1.7378994690706318E+00 1.7527861638538578E+00 1.7678003602965990E+00 + 1.7829431504258981E+00 1.7982156356217878E+00 1.8136189266974083E+00 + 1.8291541439798082E+00 1.8448224173914085E+00 1.8606248865322090E+00 + 1.8765627007626537E+00 1.8926370192872362E+00 1.9088490112388226E+00 + 1.9251998557636649E+00 1.9416907421071750E+00 1.9583228697004322E+00 + 1.9750974482473960E+00 1.9920156978129204E+00 2.0090788489114697E+00 + 2.0262881425966244E+00 2.0436448305513601E+00 2.0611501751790611E+00 + 2.0788054496953658E+00 2.0966119382207484E+00 2.1145709358739251E+00 + 2.1326837488660653E+00 2.1509516945957721E+00 2.1693761017449140E+00 + 2.1879583103752727E+00 2.2066996720259850E+00 2.2256015498118744E+00 + 2.2446653185225669E+00 2.2638923647224951E+00 2.2832840868517614E+00 + 2.3028418953278234E+00 2.3225672126480905E+00 2.3424614734934011E+00 + 2.3625261248323404E+00 2.3827626260265156E+00 2.4031724489366715E+00 + 2.4237570780297548E+00 2.4445180104868971E+00 2.4654567563122800E+00 + 2.4865748384429951E+00 2.5078737928597841E+00 2.5293551686987636E+00 + 2.5510205283641176E+00 2.5728714476417047E+00 2.5949095158136823E+00 + 2.6171363357741200E+00 2.6395535241455428E+00 2.6621627113965549E+00 + 2.6849655419603939E+00 2.7079636743545499E+00 2.7311587813014095E+00 + 2.7545525498498868E+00 2.7781466814981450E+00 2.8019428923173626E+00 + 2.8259429130765175E+00 2.8501484893683076E+00 2.8745613817360800E+00 + 2.8991833658018944E+00 2.9240162323956866E+00 2.9490617876854808E+00 + 2.9743218533088038E+00 2.9997982665051386E+00 3.0254928802495695E+00 + 3.0514075633875692E+00 3.0775442007708933E+00 3.1039046933946888E+00 + 3.1304909585357752E+00 3.1573049298920530E+00 3.1843485577231951E+00 + 3.2116238089924529E+00 3.2391326675097383E+00 3.2668771340759273E+00 + 3.2948592266283514E+00 3.3230809803875849E+00 3.3515444480054892E+00 + 3.3802516997144694E+00 3.4092048234780927E+00 3.4384059251429133E+00 + 3.4678571285916528E+00 3.4975605758976966E+00 3.5275184274808478E+00 + 3.5577328622645128E+00 3.5882060778341365E+00 3.6189402905970582E+00 + 3.6499377359437348E+00 3.6812006684102925E+00 3.7127313618425202E+00 + 3.7445321095612782E+00 3.7766052245292494E+00 3.8089530395192197E+00 + 3.8415779072837029E+00 3.8744822007260820E+00 3.9076683130732208E+00 + 3.9411386580494852E+00 3.9748956700523239E+00 4.0089418043293499E+00 + 4.0432795371568675E+00 4.0779113660200386E+00 4.1128398097944778E+00 + 4.1480674089294851E+00 4.1835967256328370E+00 4.2194303440570931E+00 + 4.2555708704876132E+00 4.2920209335320587E+00 4.3287831843116127E+00 + 4.3658602966538167E+00 4.4032549672870056E+00 4.4409699160364724E+00 + 4.4790078860223090E+00 4.5173716438588674E+00 4.5560639798560514E+00 + 4.5950877082222004E+00 4.6344456672688068E+00 4.6741407196169762E+00 + 4.7141757524055841E+00 4.7545536775012902E+00 4.7952774317103577E+00 + 4.8363499769921878E+00 4.8777743006748304E+00 4.9195534156721932E+00 + 4.9616903607032077E+00 5.0041882005128713E+00 5.0470500260950972E+00 + 5.0902789549175944E+00 5.1338781311485553E+00 5.1778507258853637E+00 + 5.2221999373852652E+00 5.2669289912979327E+00 5.3120411409001047E+00 + 5.3575396673322340E+00 5.4034278798370643E+00 5.4497091160004079E+00 + 5.4963867419938186E+00 5.5434641528194613E+00 5.5909447725570658E+00 + 5.6388320546129123E+00 5.6871294819710387E+00 5.7358405674465951E+00 + 5.7849688539412751E+00 5.8345179147010775E+00 5.8844913535761325E+00 + 5.9348928052828516E+00 5.9857259356683157E+00 6.0369944419768364E+00 + 6.0887020531189497E+00 6.1408525299425563E+00 6.1934496655064919E+00 + 6.2464972853564378E+00 6.2999992478031048E+00 6.3539594442028813E+00 + 6.4083817992409102E+00 6.4632702712164560E+00 6.5186288523308926E+00 + 6.5744615689779948E+00 6.6307724820368223E+00 6.6875656871671065E+00 + 6.7448453151070851E+00 6.8026155319739621E+00 6.8608805395669679E+00 + 6.9196445756728808E+00 6.9789119143743541E+00 7.0386868663606910E+00 + 7.0989737792414163E+00 7.1597770378625283E+00 7.2211010646253264E+00 + 7.2829503198081786E+00 7.3453293018908328E+00 7.4082425478816418E+00 + 7.4716946336476022E+00 7.5356901742470814E+00 7.6002338242655307E+00 + 7.6653302781540651E+00 7.7309842705708105E+00 7.7972005767253760E+00 + 7.8639840127260792E+00 7.9313394359302700E+00 7.9992717452976665E+00 + 8.0677858817465893E+00 8.1368868285133615E+00 8.2065796115148100E+00 + 8.2768692997137077E+00 8.3477610054875679E+00 8.4192598850003897E+00 + 8.4913711385777084E+00 8.5641000110848982E+00 8.6374517923085197E+00 + 8.7114318173411984E+00 8.7860454669695489E+00 8.8612981680655771E+00 + 8.9371953939814510E+00 9.0137426649474861E+00 9.0909455484737087E+00 + 9.1688096597548352E+00 9.2473406620785763E+00 9.3265442672376633E+00 + 9.4064262359451885E+00 9.4869923782536283E+00 9.5682485539774884E+00 + 9.6502006731194001E+00 9.7328546963000218E+00 9.8162166351916280E+00 + 9.9002925529552304E+00 9.9850885646817176E+00 1.0070610837836487E+01 + 1.0156865592708087E+01 1.0243859102860689E+01 1.0331597695590254E+01 + 1.0420087752384878E+01 1.0509335709388816E+01 1.0599348057870653E+01 + 1.0690131344695486E+01 1.0781692172800991E+01 1.0874037201677723E+01 + 1.0967173147853551E+01 1.1061106785382016E+01 1.1155844946335202E+01 + 1.1251394521300508E+01 1.1347762459881881E+01 1.1444955771205340E+01 + 1.1542981524428647E+01 1.1641846849255540E+01 1.1741558936454345E+01 + 1.1842125038380845E+01 1.1943552469505935E+01 1.2045848606947466E+01 + 1.2149020891006883E+01 1.2253076825710433E+01 1.2358023979354812E+01 + 1.2463869985057796E+01 1.2570622541313274E+01 1.2678289412551244E+01 + 1.2786878429702609E+01 1.2896397490768621E+01 1.3006854561395372E+01 + 1.3118257675453245E+01 1.3230614935621078E+01 1.3343934513975677E+01 + 1.3458224652586029E+01 1.3573493664112851E+01 1.3689749932413264E+01 + 1.3807001913150426E+01 1.3925258134408612E+01 1.4044527197313569E+01 + 1.4164817776657911E+01 1.4286138621532286E+01 1.4408498555961520E+01 + 1.4531906479546517E+01 1.4656371368111607E+01 1.4781902274357247E+01 + 1.4908508328518510E+01 1.5036198739029263E+01 1.5164982793191706E+01 + 1.5294869857852099E+01 1.5425869380081837E+01 1.5557990887864667E+01 + 1.5691243990789744E+01 1.5825638380750387E+01 1.5961183832649217E+01 + 1.6097890205108921E+01 1.6235767441189378E+01 1.6374825569110936E+01 + 1.6515074702983632E+01 1.6656525043542889E+01 1.6799186878891536E+01 + 1.6943070585247913E+01 1.7088186627700765E+01 1.7234545560970208E+01 + 1.7382158030175496E+01 1.7531034771609367E+01 1.7681186613518726E+01 + 1.7832624476892317E+01 1.7985359376255143E+01 1.8139402420469338E+01 + 1.8294764813542443E+01 1.8451457855442033E+01 1.8609492942917733E+01 + 1.8768881570330215E+01 1.8929635330486999E+01 1.9091765915485887E+01 + 1.9255285117565130E+01 1.9420204829961229E+01 1.9586537047774044E+01 + 1.9754293868839049E+01 1.9923487494607333E+01 2.0094130231033162E+01 + 2.0266234489468765E+01 2.0439812787567359E+01 2.0614877750193319E+01 + 2.0791442110340551E+01 2.0969518710058679E+01 2.1149120501386907E+01 + 2.1330260547296142E+01 2.1512952022639215E+01 2.1697208215108873E+01 + 2.1883042526204534E+01 2.2070468472206745E+01 2.2259499685160389E+01 + 2.2450149913866280E+01 2.2642433024880905E+01 2.2836363003525271E+01 + 2.3031953954901837E+01 2.3229220104920540E+01 2.3428175801333595E+01 + 2.3628835514778821E+01 2.3831213839832241E+01 2.4035325496069735E+01 + 2.4241185329137327E+01 2.4448808311831286E+01 2.4658209545186875E+01 + 2.4869404259576779E+01 2.5082407815819028E+01 2.5297235706293936E+01 + 2.5513903556071067E+01 2.5732427124045817E+01 2.5952822304085277E+01 + 2.6175105126184633E+01 2.6399291757632724E+01 2.6625398504188105E+01 + 2.6853441811265121E+01 2.7083438265129729E+01 2.7315404594106230E+01 + 2.7549357669793643E+01 2.7785314508292970E+01 2.8023292271444959E+01 + 2.8263308268078070E+01 2.8505379955267522E+01 2.8749524939605148E+01 + 2.8995760978479645E+01 2.9244105981368492E+01 2.9494578011140248E+01 + 2.9747195285368417E+01 3.0001976177656672E+01 3.0258939218974881E+01 + 3.0518103099007067E+01 3.0779486667510962E+01 3.1043108935688608E+01 + 3.1308989077569507E+01 3.1577146431404874E+01 3.1847600501074290E+01 + 3.2120370957504456E+01 3.2395477640099536E+01 3.2672940558184571E+01 + 3.2952779892460427E+01 3.3235015996471773E+01 3.3519669398087622E+01 + 3.3806760800994020E+01 3.4096311086200096E+01 3.4388341313556957E+01 + 3.4682872723289002E+01 3.4979926737539316E+01 3.5279524961927272E+01 + 3.5581689187120219E+01 3.5886441390418526E+01 3.6193803737353697E+01 + 3.6503798583300743E+01 3.6816448475104302E+01 3.7131776152718118E+01 + 3.7449804550859525E+01 3.7770556800677035E+01 3.8094056231433001E+01 + 3.8420326372200577E+01 3.8749390953574618E+01 3.9081273909398185E+01 + 3.9415999378502882E+01 3.9753591706464725E+01 4.0094075447375083E+01 + 4.0437475365626177E+01 4.0783816437712424E+01 4.1133123854047319E+01 + 4.1485423020795061E+01 4.1840739561719040E+01 4.2199099320044994E+01 + 4.2560528360340889E+01 4.2925052970412885E+01 4.3292699663216894E+01 + 4.3663495178787180E+01 4.4037466486181430E+01 4.4414640785441776E+01 + 4.4795045509573796E+01 4.5178708326541184E+01 4.5565657141278393E+01 + 4.5955920097720480E+01 4.6349525580849544E+01 4.6746502218759879E+01 + 4.7146878884739614E+01 4.7550684699371025E+01 4.7957949032648763E+01 + 4.8368701506115556E+01 4.8782971995016922E+01 4.9200790630474316E+01 + 4.9622187801676084E+01 5.0047194158088423E+01 5.0475840611684021E+01 + 5.0908158339190635E+01 5.1344178784358910E+01 5.1783933660248891E+01 + 5.2227454951536807E+01 5.2674774916841749E+01 5.3125926091071250E+01 + 5.3580941287788427E+01 5.4039853601597898E+01 5.4502696410553192E+01 + 5.4969503378584683E+01 5.5440308457947403E+01 5.5915145891691267E+01 + 5.6394050216151008E+01 5.6877056263458350E+01 5.7364199164075821E+01 + 5.7855514349351218E+01 5.8351037554095001E+01 5.8850804819179665E+01 + 5.9354852494160397E+01 5.9863217239919699E+01 6.0375936031333097E+01 + 6.0893046159958828E+01 6.1414585236750369E+01 6.1940591194791445E+01 + 6.2471102292055285E+01 6.3006157114187594E+01 6.3545794577312208E+01 + 6.4090053930862496E+01 6.4638974760435261E+01 6.5192596990670324E+01 + 6.5750960888154623E+01 6.6314107064350168E+01 6.6882076478548782E+01 + 6.7454910440850270E+01 6.8032650615167526E+01 6.8615339022257089E+01 + 6.9203018042774801E+01 6.9795730420358652E+01 7.0393519264737947E+01 + 7.0996428054867991E+01 7.1604500642093441E+01 7.2217781253336852E+01 + 7.2836314494315786E+01 7.3460145352787563E+01 7.4089319201820530E+01 + 7.4723881803094571E+01 7.5363879310229919E+01 7.6009358272143089E+01 + 7.6660365636433596E+01 7.7316948752797657E+01 7.7979155376472448E+01 + 7.8647033671709949E+01 7.9320632215279090E+01 7.9999999999999915E+01 + + + 1.9140138141683285E-06 1.9304069720318777E-06 1.9469405341196538E-06 + 1.9636157029666638E-06 1.9804336914073916E-06 1.9973957226640150E-06 + 2.0145030304353734E-06 2.0317568589866970E-06 2.0491584632401072E-06 + 2.0667091088658905E-06 2.0844100723745546E-06 2.1022626412096729E-06 + 2.1202681138415240E-06 2.1384277998615315E-06 2.1567430200775169E-06 + 2.1752151066097666E-06 2.1938454029879172E-06 2.2126352642486781E-06 + 2.2315860570343845E-06 2.2506991596924002E-06 2.2699759623753666E-06 + 2.2894178671423136E-06 2.3090262880606343E-06 2.3288026513089371E-06 + 2.3487483952807732E-06 2.3688649706892562E-06 2.3891538406725770E-06 + 2.4096164809004208E-06 2.4302543796812996E-06 2.4510690380707995E-06 + 2.4720619699807558E-06 2.4932347022893668E-06 2.5145887749522486E-06 + 2.5361257411144344E-06 2.5578471672233495E-06 2.5797546331427334E-06 + 2.6018497322675572E-06 2.6241340716399080E-06 2.6466092720658792E-06 + 2.6692769682334545E-06 2.6921388088314020E-06 2.7151964566691926E-06 + 2.7384515887979375E-06 2.7619058966323656E-06 2.7855610860738449E-06 + 2.8094188776344615E-06 2.8334810065621503E-06 2.8577492229669121E-06 + 2.8822252919481006E-06 2.9069109937228025E-06 2.9318081237553200E-06 + 2.9569184928877602E-06 2.9822439274717412E-06 3.0077862695012312E-06 + 3.0335473767465170E-06 3.0595291228893309E-06 3.0857333976591253E-06 + 3.1121621069705219E-06 3.1388171730619290E-06 3.1657005346353569E-06 + 3.1928141469974224E-06 3.2201599822015663E-06 3.2477400291914838E-06 + 3.2755562939457883E-06 3.3036107996239134E-06 3.3319055867132601E-06 + 3.3604427131776083E-06 3.3892242546068015E-06 3.4182523043677065E-06 + 3.4475289737564745E-06 3.4770563921520957E-06 3.5068367071712852E-06 + 3.5368720848246733E-06 3.5671647096743552E-06 3.5977167849927787E-06 + 3.6285305329229905E-06 3.6596081946402650E-06 3.6909520305151089E-06 + 3.7225643202776632E-06 3.7544473631835177E-06 3.7866034781809402E-06 + 3.8190350040795429E-06 3.8517442997203894E-06 3.8847337441475598E-06 + 3.9180057367811847E-06 3.9515626975919686E-06 3.9854070672771919E-06 + 4.0195413074382356E-06 4.0539679007596247E-06 4.0886893511895884E-06 + 4.1237081841221956E-06 4.1590269465810219E-06 4.1946482074044096E-06 + 4.2305745574323016E-06 4.2668086096946879E-06 4.3033529996016480E-06 + 4.3402103851350436E-06 4.3773834470418354E-06 4.4148748890290623E-06 + 4.4526874379604920E-06 4.4908238440549512E-06 4.5292868810863594E-06 + 4.5680793465854706E-06 4.6072040620433548E-06 4.6466638731165979E-06 + 4.6864616498342911E-06 4.7266002868067643E-06 4.7670827034361281E-06 + 4.8079118441286045E-06 4.8490906785086875E-06 4.8906222016351271E-06 + 4.9325094342187750E-06 4.9747554228422833E-06 5.0173632401816971E-06 + 5.0603359852299373E-06 5.1036767835221993E-06 5.1473887873632807E-06 + 5.1914751760568629E-06 5.2359391561367419E-06 5.2807839616000628E-06 + 5.3260128541425249E-06 5.3716291233956222E-06 5.4176360871659047E-06 + 5.4640370916762928E-06 5.5108355118094615E-06 5.5580347513532986E-06 + 5.6056382432484789E-06 5.6536494498381506E-06 5.7020718631197579E-06 + 5.7509090049990283E-06 5.8001644275461327E-06 5.8498417132540323E-06 + 5.8999444752990472E-06 5.9504763578036553E-06 6.0014410361015373E-06 + 6.0528422170048959E-06 6.1046836390740627E-06 6.1569690728894144E-06 + 6.2097023213256184E-06 6.2628872198282281E-06 6.3165276366926471E-06 + 6.3706274733454807E-06 6.4251906646282951E-06 6.4802211790838140E-06 + 6.5357230192445627E-06 6.5917002219239806E-06 6.6481568585100368E-06 + 6.7050970352613452E-06 6.7625248936058340E-06 6.8204446104419587E-06 + 6.8788603984425019E-06 6.9377765063609716E-06 6.9971972193406299E-06 + 7.0571268592261602E-06 7.1175697848780080E-06 7.1785303924894174E-06 + 7.2400131159061740E-06 7.3020224269490974E-06 7.3645628357392842E-06 + 7.4276388910261466E-06 7.4912551805182548E-06 7.5554163312170147E-06 + 7.6201270097532081E-06 7.6853919227263962E-06 7.7512158170472650E-06 + 7.8176034802828661E-06 7.8845597410048360E-06 7.9520894691405951E-06 + 8.0201975763275514E-06 8.0888890162703286E-06 8.1581687851010814E-06 + 8.2280419217428612E-06 8.2985135082761257E-06 8.3695886703083700E-06 + 8.4412725773469167E-06 8.5135704431749247E-06 8.5864875262305951E-06 + 8.6600291299896311E-06 8.7342006033509875E-06 8.8090073410258956E-06 + 8.8844547839302431E-06 8.9605484195803179E-06 9.0372937824919097E-06 + 9.1146964545828826E-06 9.1927620655791277E-06 9.2714962934240646E-06 + 9.3509048646915867E-06 9.4309935550025949E-06 9.5117681894450597E-06 + 9.5932346429976989E-06 9.6753988409572969E-06 9.7582667593696465E-06 + 9.8418444254642241E-06 9.9261379180925564E-06 1.0011153368170360E-05 + 1.0096896959123452E-05 1.0183374927337502E-05 1.0270593562611608E-05 + 1.0358559208615789E-05 1.0447278263352361E-05 1.0536757179621300E-05 + 1.0627002465489560E-05 1.0718020684764426E-05 1.0809818457470923E-05 + 1.0902402460333319E-05 1.0995779427260723E-05 1.1089956149836874E-05 + 1.1184939477814110E-05 1.1280736319611578E-05 1.1377353642817688E-05 + 1.1474798474696908E-05 1.1573077902700857E-05 1.1672199074983806E-05 + 1.1772169200922591E-05 1.1872995551640957E-05 1.1974685460538422E-05 + 1.2077246323823648E-05 1.2180685601052395E-05 1.2285010815670071E-05 + 1.2390229555558945E-05 1.2496349473590021E-05 1.2603378288179664E-05 + 1.2711323783850985E-05 1.2820193811800025E-05 1.2929996290466800E-05 + 1.3040739206111233E-05 1.3152430613394018E-05 1.3265078635962461E-05 + 1.3378691467041328E-05 1.3493277370028774E-05 1.3608844679097361E-05 + 1.3725401799800224E-05 1.3842957209682430E-05 1.3961519458897587E-05 + 1.4081097170829708E-05 1.4201699042720422E-05 1.4323333846301545E-05 + 1.4446010428433098E-05 1.4569737711746708E-05 1.4694524695294659E-05 + 1.4820380455204339E-05 1.4947314145338440E-05 1.5075334997960685E-05 + 1.5204452324407383E-05 1.5334675515764608E-05 1.5466014043551282E-05 + 1.5598477460408055E-05 1.5732075400792094E-05 1.5866817581677811E-05 + 1.6002713803263659E-05 1.6139773949684847E-05 1.6278007989732332E-05 + 1.6417425977577809E-05 1.6558038053505018E-05 1.6699854444647266E-05 + 1.6842885465731278E-05 1.6987141519827404E-05 1.7132633099106300E-05 + 1.7279370785602026E-05 1.7427365251981700E-05 1.7576627262321792E-05 + 1.7727167672890978E-05 1.7878997432939801E-05 1.8032127585496990E-05 + 1.8186569268172703E-05 1.8342333713968546E-05 1.8499432252094639E-05 + 1.8657876308793563E-05 1.8817677408171487E-05 1.8978847173036285E-05 + 1.9141397325742974E-05 1.9305339689046215E-05 1.9470686186960336E-05 + 1.9637448845626490E-05 1.9805639794187438E-05 1.9975271265669670E-05 + 2.0146355597873220E-05 2.0318905234268937E-05 2.0492932724903630E-05 + 2.0668450727312830E-05 2.0845472007441383E-05 2.1024009440572016E-05 + 2.1204076012261727E-05 2.1385684819286324E-05 2.1568849070592939E-05 + 2.1753582088260805E-05 2.1939897308470163E-05 2.2127808282479566E-05 + 2.2317328677611427E-05 2.2508472278246183E-05 2.2701252986824786E-05 + 2.2895684824859920E-05 2.3091781933955796E-05 2.3289558576836759E-05 + 2.3489029138384581E-05 2.3690208126684813E-05 2.3893110174081907E-05 + 2.4097750038243542E-05 2.4304142603233939E-05 2.4512302880596483E-05 + 2.4722246010445503E-05 2.4933987262567454E-05 2.5147542037531607E-05 + 2.5362925867810078E-05 2.5580154418907646E-05 2.5799243490501055E-05 + 2.6020209017588283E-05 2.6243067071647419E-05 2.6467833861805701E-05 + 2.6694525736018375E-05 2.6923159182257778E-05 2.7153750829712517E-05 + 2.7386317449997009E-05 2.7620875958371274E-05 2.7857443414971293E-05 + 2.8096037026049764E-05 2.8336674145227659E-05 2.8579372274756308E-05 + 2.8824149066790491E-05 2.9071022324672211E-05 2.9320010004225703E-05 + 2.9571130215063350E-05 2.9824401221902830E-05 3.0079841445895638E-05 + 3.0337469465966825E-05 3.0597304020166374E-05 3.0859364007031999E-05 + 3.1123668486963782E-05 3.1390236683610396E-05 3.1659087985267377E-05 + 3.1930241946287231E-05 3.2203718288501753E-05 3.2479536902656345E-05 + 3.2757717849856867E-05 3.3038281363028597E-05 3.3321247848387967E-05 + 3.3606637886926639E-05 3.3894472235908551E-05 3.4184771830379533E-05 + 3.4477557784690068E-05 3.4772851394030938E-05 3.5070674135982139E-05 + 3.5371047672074957E-05 3.5673993849367511E-05 3.5979534702033758E-05 + 3.6287692452966054E-05 3.6598489515391585E-05 3.6911948494502422E-05 + 3.7228092189099795E-05 3.7546943593252188E-05 3.7868525897967912E-05 + 3.8192862492881670E-05 3.8519976967955986E-05 3.8849893115196721E-05 + 3.9182634930383767E-05 3.9518226614816136E-05 3.9856692577072365E-05 + 4.0198057434785671E-05 4.0542346016434593E-05 4.0889583363148736E-05 + 4.1239794730530180E-05 4.1593005590490296E-05 4.1949241633102485E-05 + 4.2308528768470634E-05 4.2670893128613658E-05 4.3036361069366198E-05 + 4.3404959172295443E-05 4.3776714246634611E-05 4.4151653331232787E-05 + 4.4529803696521613E-05 4.4911192846498621E-05 4.5295848520727849E-05 + 4.5683798696357237E-05 4.6075071590153668E-05 4.6469695660555120E-05 + 4.6867699609740607E-05 4.7269112385717727E-05 4.7673963184428200E-05 + 4.8082281451871274E-05 4.8494096886245575E-05 4.8909439440108951E-05 + 4.9328339322557194E-05 4.9750827001421062E-05 5.0176933205482510E-05 + 5.0606688926709432E-05 5.1040125422510023E-05 5.1477274218006126E-05 + 5.1918167108326058E-05 5.2362836160917379E-05 5.2811313717879026E-05 + 5.3263632398313832E-05 5.3719825100700876E-05 5.4179925005288407E-05 + 5.4643965576506987E-05 5.5111980565403642E-05 5.5584004012096504E-05 + 5.6060070248250808E-05 5.6540213899575770E-05 5.7024469888343196E-05 + 5.7512873435927304E-05 5.8005460065366640E-05 5.8502265603947605E-05 + 5.9003326185810510E-05 5.9508678254577441E-05 6.0018358566003163E-05 + 6.0532404190648293E-05 6.1050852516575664E-05 6.1573741252069641E-05 + 6.2101108428378710E-05 6.2632992402481664E-05 6.3169431859877358E-05 + 6.3710465817398541E-05 6.4256133626049464E-05 6.4806474973868236E-05 + 6.5361529888813234E-05 6.5921338741674624E-05 6.6485942249010490E-05 + 6.7055381476108448E-05 6.7629697839972303E-05 6.8208933112334506E-05 + 6.8793129422694245E-05 6.9382329261381839E-05 6.9976575482648930E-05 + 7.0575911307785657E-05 7.1180380328263992E-05 7.1790026508908596E-05 + 7.2404894191094196E-05 7.3025028095970876E-05 7.3650473327716798E-05 + 7.4281275376818492E-05 7.4917480123379884E-05 7.5559133840458979E-05 + 7.6206283197433666E-05 7.6858975263395922E-05 7.7517257510575509E-05 + 7.8181177817792502E-05 7.8850784473939969E-05 7.9526126181495818E-05 + 8.0207252060065460E-05 8.0894211649953994E-05 8.1587054915769879E-05 + 8.2285832250058558E-05 8.2990594476968022E-05 8.3701392855945139E-05 + 8.4418279085464175E-05 8.5141305306786637E-05 8.5870524107754012E-05 + 8.6605988526612307E-05 8.7347752055870028E-05 8.8095868646188456E-05 + 8.8850392710305997E-05 8.9611379126995633E-05 9.0378883245056284E-05 + 9.1152960887338756E-05 9.1933668354805652E-05 9.2721062430626555E-05 + 9.3515200384307781E-05 9.4316139975857968E-05 9.5123939459988973E-05 + 9.5938657590353103E-05 9.6760353623816144E-05 9.7589087324767687E-05 + 9.8424918969467544E-05 9.9267909350430185E-05 1.0011811978084610E-04 + 1.0097561209904146E-04 1.0184044867297565E-04 1.0271269240477765E-04 + 1.0359240673532093E-04 1.0447965564883779E-04 1.0537450367757308E-04 + 1.0627701590647781E-04 1.0718725797794310E-04 1.0810529609657446E-04 + 1.0903119703400675E-04 1.0996502813376127E-04 1.1090685731614341E-04 + 1.1185675308318299E-04 1.1281478452361615E-04 1.1378102131791090E-04 + 1.1475553374333494E-04 1.1573839267906726E-04 1.1672966961135302E-04 + 1.1772943663870348E-04 1.1873776647713962E-04 1.1975473246548119E-04 + 1.2078040857068041E-04 1.2181486939320242E-04 1.2285819017245083E-04 + 1.2391044679224027E-04 1.2497171578631526E-04 1.2604207434391732E-04 + 1.2712160031539874E-04 1.2821037221788512E-04 1.2930846924098606E-04 + 1.3041597125255458E-04 1.3153295880449664E-04 1.3265951313862960E-04 + 1.3379571619259148E-04 1.3494165060579986E-04 1.3609739972546332E-04 + 1.3726304761264301E-04 1.3843867904836686E-04 1.3962437953979573E-04 + 1.4082023532644295E-04 1.4202633338644653E-04 1.4324276144289547E-04 + 1.4446960797020975E-04 1.4570696220057606E-04 1.4695491413043712E-04 + 1.4821355452703818E-04 1.4948297493502785E-04 1.5076326768311734E-04 + 1.5205452589079528E-04 1.5335684347510064E-04 1.5467031515745396E-04 + 1.5599503647054577E-04 1.5733110376528619E-04 1.5867861421781204E-04 + 1.6003766583655505E-04 1.6140835746936987E-04 1.6279078881072421E-04 + 1.6418506040894953E-04 1.6559127367355439E-04 1.6700953088259976E-04 + 1.6843993519013883E-04 1.6988259063371912E-04 1.7133760214194983E-04 + 1.7280507554213285E-04 1.7428511756796094E-04 1.7577783586728010E-04 + 1.7728333900991945E-04 1.7880173649558723E-04 1.8033313876183600E-04 + 1.8187765719209430E-04 1.8343540412376830E-04 1.8500649285641246E-04 + 1.8659103765996941E-04 1.8818915378308228E-04 1.8980095746147643E-04 + 1.9142656592641374E-04 1.9306609741321872E-04 1.9471967116987910E-04 + 1.9638740746571827E-04 1.9806942760014335E-04 1.9976585391146692E-04 + 2.0147680978580590E-04 2.0320241966605539E-04 2.0494280906093991E-04 + 2.0669810455414139E-04 2.0846843381350710E-04 2.1025392560033440E-04 + 2.1205470977873656E-04 2.1387091732508716E-04 2.1570268033754771E-04 + 2.1755013204567472E-04 2.1941340682011005E-04 2.2129264018235428E-04 + 2.2318796881462286E-04 2.2509953056978847E-04 2.2702746448140690E-04 + 2.2897191077382950E-04 2.3093301087240156E-04 2.3291090741374955E-04 + 2.3490574425615501E-04 2.3691766649001786E-04 2.3894682044840875E-04 + 2.4099335371771319E-04 2.4305741514836545E-04 2.4513915486567515E-04 + 2.4723872428074545E-04 2.4935627610148700E-04 2.5149196434372386E-04 + 2.5364594434239621E-04 2.5581837276285693E-04 2.5800940761226839E-04 + 2.6021920825109314E-04 2.6244793540468542E-04 2.6469575117498139E-04 + 2.6696281905228800E-04 2.6924930392717569E-04 2.7155537210247084E-04 + 2.7388119130535119E-04 2.7622693069954480E-04 2.7859276089763492E-04 + 2.8097885397346847E-04 2.8338538347467171E-04 2.8581252443527183E-04 + 2.8826045338842970E-04 2.9072934837927800E-04 2.9321938897787188E-04 + 2.9573075629224841E-04 2.9826363298160078E-04 3.0081820326956265E-04 + 3.0339465295760749E-04 3.0599316943856177E-04 3.0861394171023606E-04 + 3.1125716038917032E-04 3.1392301772449822E-04 3.1661170761193038E-04 + 3.1932342560785575E-04 3.2205836894356690E-04 3.2481673653960374E-04 + 3.2759872902022268E-04 3.3040454872798679E-04 3.3323439973848538E-04 + 3.3608848787517495E-04 3.3896702072435070E-04 3.4187020765024317E-04 + 3.4479825981024792E-04 3.4775139017028262E-04 3.5072981352027690E-04 + 3.5373374648979371E-04 3.5676340756378726E-04 3.5981901709849270E-04 + 3.6290079733745408E-04 3.6600897242768744E-04 3.6914376843598558E-04 + 3.7230541336535916E-04 3.7549413717162072E-04 3.7871017178011003E-04 + 3.8195375110256164E-04 3.8522511105411946E-04 3.8852448957049516E-04 + 3.9185212662527362E-04 3.9520826424736626E-04 3.9859314653861619E-04 + 4.0200701969155130E-04 4.0545013200729102E-04 4.0892273391360495E-04 + 4.1242507798312902E-04 4.1595741895173463E-04 4.1952001373705679E-04 + 4.2311312145717946E-04 4.2673700344948381E-04 4.3039192328965477E-04 + 4.3407814681085233E-04 4.3779594212304493E-04 4.4154557963251218E-04 + 4.4532733206151075E-04 4.4914147446811059E-04 4.5298828426620116E-04 + 4.5686804124566712E-04 4.6078102759274049E-04 4.6472752791052325E-04 + 4.6870782923968848E-04 4.7272222107935552E-04 4.7677099540814919E-04 + 4.8085444670543416E-04 4.8497287197273432E-04 4.8912657075533275E-04 + 4.9331584516406127E-04 4.9754099989727228E-04 5.0180234226300047E-04 + 5.0610018220131371E-04 5.1043483230685737E-04 5.1480660785158941E-04 + 5.1921582680771112E-04 5.2366280987079330E-04 5.2814788048310306E-04 + 5.3267136485712788E-04 5.3723359199930247E-04 5.4183489373393619E-04 + 5.4647560472735135E-04 5.5115606251222176E-04 5.5587660751212336E-04 + 5.6063758306629436E-04 5.6543933545460587E-04 5.7028221392275069E-04 + 5.7516657070764250E-04 5.8009276106303674E-04 5.8506114328536675E-04 + 5.9007207873980729E-04 5.9512593188655550E-04 6.0022307030733948E-04 + 6.0536386473215278E-04 6.1054868906622068E-04 6.1577792041719414E-04 + 6.2105193912257849E-04 6.2637112877739459E-04 6.3173587626208234E-04 + 6.3714657177063659E-04 6.4260360883898948E-04 6.4810738437362991E-04 + 6.5365829868047629E-04 6.5925675549398876E-04 6.6490316200653514E-04 + 6.7059792889800766E-04 6.7634147036569063E-04 6.8213420415438961E-04 + 6.8797655158681277E-04 6.9386893759421694E-04 6.9981179074731035E-04 + 7.0580554328742882E-04 7.1185063115797081E-04 7.1794749403610578E-04 + 7.2409657536475186E-04 7.3029832238483128E-04 7.3655318616779790E-04 + 7.4286162164844565E-04 7.4922408765799539E-04 7.5564104695747029E-04 + 7.6211296627135135E-04 7.6864031632152498E-04 7.7522357186151811E-04 + 7.8186321171103070E-04 7.8855971879076116E-04 7.9531358015752951E-04 + 8.0212528703970407E-04 8.0899533487292720E-04 8.1592422333615338E-04 + 8.2291245638798976E-04 8.2996054230335308E-04 8.3706899371043290E-04 + 8.4423832762798331E-04 8.5146906550292252E-04 8.5876173324826168E-04 + 8.6611686128135299E-04 8.7353498456247249E-04 8.8101664263372703E-04 + 8.8856237965829771E-04 8.9617274446001586E-04 9.0384829056328476E-04 + 9.1158957623333674E-04 9.1939716451683784E-04 9.2727162328283812E-04 + 9.3521352526407828E-04 9.4322344809864346E-04 9.5130197437197676E-04 + 9.5944969165925409E-04 9.6766719256811636E-04 9.7595507478177672E-04 + 9.8431394110248859E-04 9.9274439949539103E-04 1.0012470631327239E-03 + 1.0098225504384312E-03 1.0184714851331380E-03 1.0271944962795163E-03 + 1.0359922183280352E-03 1.0448652911631124E-03 1.0538143601496503E-03 + 1.0628400761799790E-03 1.0719430957211911E-03 1.0811240808628968E-03 + 1.0903836993653739E-03 1.0997226247081385E-03 1.1091415361389266E-03 + 1.1186411187231017E-03 1.1282220633934792E-03 1.1378850670005793E-03 + 1.1476308323633134E-03 1.1574600683200993E-03 1.1673734897804189E-03 + 1.1773718177768172E-03 1.1874557795173424E-03 1.1976261084384375E-03 + 1.2078835442582876E-03 1.2182288330306224E-03 1.2286627271989761E-03 + 1.2391859856514147E-03 1.2497993737757358E-03 1.2605036635151348E-03 + 1.2712996334243519E-03 1.2821880687262945E-03 1.2931697613691568E-03 + 1.3042455100840133E-03 1.3154161204429174E-03 1.3266824049174872E-03 + 1.3380451829380078E-03 1.3495052809530238E-03 1.3610635324894517E-03 + 1.3727207782132063E-03 1.3844778659903394E-03 1.3963356509487151E-03 + 1.4082949955402011E-03 1.4203567696033992E-03 1.4325218504269070E-03 + 1.4447911228131333E-03 1.4571654791426464E-03 1.4696458194390831E-03 + 1.4822330514346043E-03 1.4949280906359252E-03 1.5077318603908979E-03 + 1.5206452919556705E-03 1.5336693245624170E-03 1.5468049054876561E-03 + 1.5600529901211460E-03 1.5734145420353738E-03 1.5868905330556353E-03 + 1.6004819433307256E-03 1.6141897614042227E-03 1.6280149842863893E-03 + 1.6419586175266902E-03 1.6560216752869209E-03 1.6702051804149823E-03 + 1.6845101645192671E-03 1.6989376680436963E-03 1.7134887403433866E-03 + 1.7281644397609834E-03 1.7429658337036298E-03 1.7578939987206066E-03 + 1.7729500205816264E-03 1.7881349943558126E-03 1.8034500244913435E-03 + 1.8188962248957834E-03 1.8344747190170943E-03 1.8501866399253575E-03 + 1.8660331303951788E-03 1.8820153429888091E-03 1.8981344401399660E-03 + 1.9143915942383936E-03 1.9307879877151232E-03 1.9473248131284817E-03 + 1.9640032732508262E-03 1.9808245811560243E-03 1.9977899603076882E-03 + 2.0149006446481595E-03 2.0321578786882595E-03 2.0495629175977964E-03 + 2.0671170272968712E-03 2.0848214845479445E-03 2.1026775770487012E-03 + 2.1206866035257026E-03 2.1388498738288560E-03 2.1571687090266795E-03 + 2.1756444415023889E-03 2.1942784150507976E-03 2.2130719849760669E-03 + 2.2320265181902765E-03 2.2511433933128438E-03 2.2704240007707876E-03 + 2.2898697428998735E-03 2.3094820340465979E-03 2.3292623006710609E-03 + 2.3492119814507205E-03 2.3693325273850220E-03 2.3896254019009459E-03 + 2.4100920809594405E-03 2.4307340531627749E-03 2.4515528198628027E-03 + 2.4725498952701719E-03 2.4937268065644493E-03 2.5150850940052023E-03 + 2.5366263110440145E-03 2.5583520244374909E-03 2.5802638143611993E-03 + 2.6023632745246100E-03 2.6246520122869964E-03 2.6471316487743624E-03 + 2.6698038189973392E-03 2.6926701719701108E-03 2.7157323708303393E-03 + 2.7389920929601478E-03 2.7624510301081109E-03 2.7861108885122994E-03 + 2.8099733890243894E-03 2.8340402672348080E-03 2.8583132735989867E-03 + 2.8827941735646667E-03 2.9074847477003102E-03 2.9323867918245954E-03 + 2.9575021171370478E-03 2.9828325503497640E-03 3.0083799338202783E-03 + 3.0341461256855533E-03 3.0601329999971425E-03 3.0863424468574852E-03 + 3.1127763725573871E-03 3.1394366997146549E-03 3.1663253674139541E-03 + 3.1934443313478326E-03 3.2207955639589683E-03 3.2483810545836209E-03 + 3.2762028095963389E-03 3.3042628525558784E-03 3.3325632243523819E-03 + 3.3611059833558261E-03 3.3898932055657204E-03 3.4189269847621135E-03 + 3.4482094326578751E-03 3.4777426790522886E-03 3.5075288719859468E-03 + 3.5375701778970038E-03 3.5678687817787347E-03 3.5984268873384619E-03 + 3.6292467171578240E-03 3.6603305128544536E-03 3.6916805352449969E-03 + 3.7232990645095641E-03 3.7551884003575548E-03 3.7873508621949462E-03 + 3.8197887892929736E-03 3.8525045409582813E-03 3.8855004967045092E-03 + 3.9187790564253807E-03 3.9523426405692402E-03 3.9861936903151105E-03 + 4.0203346677502236E-03 4.0547680560491283E-03 4.0894963596542775E-03 + 4.1245221044581889E-03 4.1598478379871635E-03 4.1954761295865603E-03 + 4.2314095706077002E-03 4.2676507745963146E-03 4.3042023774826597E-03 + 4.3410670377732096E-03 4.3782474367440429E-03 4.4157462786358443E-03 + 4.4535662908506022E-03 4.4917102241499637E-03 4.5301808528553263E-03 + 4.5689809750496125E-03 4.6081134127807866E-03 4.6475810122670897E-03 + 4.6873866441040947E-03 4.7275332034734576E-03 4.7680236103535096E-03 + 4.8088608097316219E-03 4.8500477718184222E-03 4.8915874922638141E-03 + 4.9334829923748649E-03 4.9757373193355520E-03 5.0183535464283857E-03 + 5.0613347732579557E-03 5.1046841259763612E-03 5.1484047575105973E-03 + 5.1924998477918495E-03 5.2369726039868149E-03 5.2818262607309471E-03 + 5.3270640803637350E-03 5.3726893531659513E-03 5.4187053975990086E-03 + 5.4651155605462921E-03 5.5119232175565988E-03 5.5591317730896350E-03 + 5.6067446607636594E-03 5.6547653436052015E-03 5.7031973143009482E-03 + 5.7520440954517494E-03 5.8013092398288904E-03 5.8509963306324179E-03 + 5.9011089817517974E-03 5.9516508380287889E-03 6.0026255755224736E-03 + 6.0540369017767111E-03 6.1058885560897223E-03 6.1581843097860967E-03 + 6.2109279664911161E-03 6.2641233624073523E-03 6.3177743665937024E-03 + 6.3718848812468389E-03 6.4264588419849509E-03 6.4815002181340814E-03 + 6.5370130130167426E-03 6.5930012642431372E-03 6.6494690440048448E-03 + 6.7064204593709487E-03 6.7638596525867820E-03 6.8217908013752425E-03 + 6.8802181192405684E-03 6.9391458557748927E-03 6.9985782969672512E-03 + 7.0585197655153396E-03 7.1189746211399634E-03 7.1799472609020438E-03 + 7.2414421195225263E-03 7.3034636697048485E-03 7.3660164224602790E-03 + 7.4291049274360721E-03 7.4927337732462870E-03 7.5569075878055766E-03 + 7.6216310386658234E-03 7.6869088333555383E-03 7.7527457197223539E-03 + 7.8191464862782615E-03 7.8861159625479276E-03 7.9536590194200039E-03 + 8.0217805695013220E-03 8.0904855674742392E-03 8.1597790104570474E-03 + 8.2296659383673358E-03 8.3001514342886714E-03 8.3712406248401972E-03 + 8.4429386805495669E-03 8.5152508162290395E-03 8.5881822913546728E-03 + 8.6617384104489877E-03 8.7359245234666545E-03 8.8107460261836780E-03 + 8.8862083605898909E-03 8.9623170152846546E-03 9.0390775258761408E-03 + 9.1164954753839619E-03 9.1945764946451628E-03 9.2733262627238740E-03 + 9.3527505073242676E-03 9.4328550052071945E-03 9.5136455826103829E-03 + 9.5951281156721260E-03 9.6773085308586894E-03 9.7601928053954318E-03 + 9.8437869677014244E-03 9.9280970978280515E-03 1.0013129327901099E-02 + 1.0098889842566829E-02 1.0185384879441857E-02 1.0272620729566704E-02 + 1.0360603737863506E-02 1.0449340303597378E-02 1.0538836880841897E-02 + 1.0629099978948595E-02 1.0720136163020273E-02 1.0811952054388575E-02 + 1.0904554331095622E-02 1.0997949728379603E-02 1.1092145039164784E-02 + 1.1187147114555466E-02 1.1282962864334323E-02 1.1379599257465048E-02 + 1.1477063322599094E-02 1.1575362148586952E-02 1.1674502884993812E-02 + 1.1774492742619420E-02 1.1875338994022711E-02 1.1977048974050612E-02 + 1.2079630080371601E-02 1.2183089774013816E-02 1.2287435579907571E-02 + 1.2392675087432838E-02 1.2498815950971092E-02 1.2605865890462108E-02 + 1.2713832691965512E-02 1.2822724208226966E-02 1.2932548359249370E-02 + 1.3043313132868986E-02 1.3155026585336259E-02 1.3267696841901948E-02 + 1.3381332097407944E-02 1.3495940616883376E-02 1.3611530736145815E-02 + 1.3728110862407423E-02 1.3845689474886512E-02 1.3964275125424322E-02 + 1.4083876439106875E-02 1.4204502114892466E-02 1.4326160926244228E-02 + 1.4448861721768290E-02 1.4572613425857467E-02 1.4697425039340167E-02 + 1.4823305640135251E-02 1.4950264383912126E-02 1.5078310504756725E-02 + 1.5207453315843234E-02 1.5337702210111279E-02 1.5469066660949205E-02 + 1.5601556222883171E-02 1.5735180532271902E-02 1.5869949308007766E-02 + 1.6005872352223491E-02 1.6142959551005170E-02 1.6281220875111406E-02 + 1.6420666380698317E-02 1.6561306210051058E-02 1.6703150592321588E-02 + 1.6846209844272445E-02 1.6990494371027360E-02 1.7136014666827862E-02 + 1.7282781315796601E-02 1.7430804992707303E-02 1.7580096463760929E-02 + 1.7730666587368996E-02 1.7882526314943123E-02 1.8035686691691644E-02 + 1.8190158857423065E-02 1.8345954047356092E-02 1.8503083592936915E-02 + 1.8661558922663458E-02 1.8821391562916387E-02 1.8982593138797722E-02 + 1.9145175374976137E-02 1.9309150096539805E-02 1.9474529229856621E-02 + 1.9641324803441385E-02 1.9809548948830805E-02 1.9979213901465960E-02 + 2.0150332001581981E-02 2.0322915695105855E-02 2.0496977534561416E-02 + 2.0672530179982447E-02 2.0849586399833562E-02 2.1028159071938671E-02 + 2.1208261184417893E-02 2.1389905836631987E-02 2.1573106240135170E-02 + 2.1757875719636208E-02 2.1944227713967295E-02 2.2132175777061596E-02 + 2.2321733578939254E-02 2.2512914906701296E-02 2.2705733665532770E-02 + 2.2900203879713820E-02 2.3096339693639840E-02 2.3294155372850362E-02 + 2.3493665305066355E-02 2.3694884001236864E-02 2.3897826096594504E-02 + 2.4102506351719670E-02 2.4308939653614439E-02 2.4517141016785045E-02 + 2.4727125584334066E-02 2.4938908629061968E-02 2.5152505554577591E-02 + 2.5367931896418901E-02 2.5585203323182600E-02 2.5804335637663895E-02 + 2.6025344778006006E-02 2.6248246818859122E-02 2.6473057972549705E-02 + 2.6699794590259805E-02 2.6928473163215970E-02 2.7159110323889124E-02 + 2.7391722847203929E-02 2.7626327651759038E-02 2.7862941801057767E-02 + 2.8101582504748888E-02 2.8342267119878486E-02 2.8585013152152533E-02 + 2.8829838257209792E-02 2.9076760241906346E-02 2.9325797065610403E-02 + 2.9576966841508692E-02 2.9830287837924036E-02 3.0085778479643679E-02 + 3.0343457349259837E-02 3.0603343188520853E-02 3.0865454899694538E-02 + 3.1129811546943106E-02 3.1396432357709489E-02 3.1665336724115922E-02 + 3.1936544204374605E-02 3.2210074524209813E-02 3.2485947578293033E-02 + 3.2764183431689624E-02 3.3044802321318310E-02 3.3327824657423323E-02 + 3.3613271025058483E-02 3.3901162185584616E-02 3.4191519078179765E-02 + 3.4484362821361747E-02 3.4779714714524637E-02 3.5077596239487495E-02 + 3.5378029062057031E-02 3.5681035033603578E-02 3.5986636192649947E-02 + 3.6294854766474927E-02 3.6605713172729419E-02 3.6919234021067192E-02 + 3.7235440114789513E-02 3.7554354452503283E-02 3.7876000229794073E-02 + 3.8200400840913327E-02 3.8527579880479432E-02 3.8857561145194439E-02 + 3.9190368635574284E-02 3.9526026557694723E-02 3.9864559324952059E-02 + 4.0205991559838394E-02 4.0550348095732699E-02 4.0897653978707281E-02 + 4.1247934469348865E-02 4.1601215044596560E-02 4.1957521399594272E-02 + 4.2316879449559849E-02 4.2679315331670173E-02 4.3044855406961735E-02 + 4.3413526262248446E-02 4.3785354712054941E-02 4.4160367800567056E-02 + 4.4538592803599071E-02 4.4920057230577112E-02 4.5304788826540217E-02 + 4.5692815574158559E-02 4.6084165695768085E-02 4.6478867655424014E-02 + 4.6876950160970349E-02 4.7278442166128275E-02 4.7683372872602221E-02 + 4.8091771732203317E-02 4.8503668448991767E-02 4.8919092981437540E-02 + 4.9338075544598771E-02 4.9760646612320041E-02 5.0186836919448273E-02 + 5.0616677464068428E-02 5.1050199509758282E-02 5.1487434587861758E-02 + 5.1928414499783027E-02 5.2373171319298827E-02 5.2821737394891613E-02 + 5.3274145352102571E-02 5.3730428095904101E-02 5.4190618813093269E-02 + 5.4654750974705971E-02 5.5122858338450639E-02 5.5594974951164319E-02 + 5.6071135151288344E-02 5.6551373571366192E-02 5.7035725140562578E-02 + 5.7524225087203555E-02 5.8016908941338895E-02 5.8513812537326709E-02 + 5.9014972016439023E-02 5.9520423829491312E-02 6.0030204739492860E-02 + 6.0544351824321052E-02 6.1062902479418445E-02 6.1585894420511836E-02 + 6.2113365686356427E-02 6.2645354641501630E-02 6.3181899979081774E-02 + 6.3723040723630775E-02 6.4268816233919779E-02 6.4819266205820181E-02 + 6.5374430675191164E-02 6.5934350020790872E-02 6.6499064967214111E-02 + 6.7068616587853638E-02 6.7643046307887894E-02 6.8222395907294245E-02 + 6.8806707523887192E-02 6.9396023656383379E-02 6.9990387167493187E-02 + 7.0589841287037269E-02 7.1194429615091814E-02 7.1804196125158926E-02 + 7.2419185167365119E-02 7.3039441471687644E-02 7.3665010151206772E-02 + 7.4295936705388144E-02 7.4932267023391105E-02 7.5574047387406737E-02 + 7.6221324476024574E-02 7.6874145367626809E-02 7.7532557543812872E-02 + 7.8196608892853306E-02 7.8866347713171914E-02 7.9541822716859611E-02 + 8.0223083033216638E-02 8.0910178212326087E-02 8.1603158228658407E-02 + 8.2302073484705265E-02 8.3006974814645890E-02 8.3717913488044915E-02 + 8.4434941213580222E-02 8.5158110142805152E-02 8.5887472873940496E-02 + 8.6623082455700703E-02 8.7364992391152585E-02 8.8113256641605797E-02 + 8.8867929630538745E-02 8.9629066247555955E-02 9.0396721852380804E-02 + 9.1170952278882403E-02 9.1951813839135754E-02 9.2739363327517782E-02 + 9.3533658024838859E-02 9.4334755702507628E-02 9.5142714626734418E-02 + 9.5957593562767840E-02 9.6779451779169509E-02 9.7608349052125273E-02 + 9.8444345669791933E-02 9.9287502436682731E-02 1.0013788067809026E-01 + 1.0099554224454570E-01 1.0186054951631877E-01 1.0273296540795357E-01 + 1.0361285337284512E-01 1.0450027740785502E-01 1.0539530205796485E-01 + 1.0629799242097226E-01 1.0720841415222432E-01 1.0812663346939345E-01 + 1.0905271715729420E-01 1.0998673257273960E-01 1.1092874764944063E-01 + 1.1187883090294808E-01 1.1283705143563426E-01 1.1380347894172081E-01 + 1.1477818371234624E-01 1.1576123664067907E-01 1.1675270922707472E-01 + 1.1775267358427466E-01 1.1876120244265204E-01 1.1977836915550223E-01 + 1.2080424770437651E-01 1.2183891270446472E-01 1.2288243941002062E-01 + 1.2393490371983625E-01 1.2499638218276259E-01 1.2606695200327619E-01 + 1.2714669104709486E-01 1.2823567784684206E-01 1.2933399160775691E-01 + 1.3044171221345713E-01 1.3155892023174726E-01 1.3268569692047977E-01 + 1.3382212423346534E-01 1.3496828482643244E-01 1.3612426206304071E-01 + 1.3729014002094270E-01 1.3846600349789973E-01 1.3965193801795031E-01 + 1.4084802983762915E-01 1.4205436595224133E-01 1.4327103410219064E-01 + 1.4449812277935953E-01 1.4573572123354731E-01 1.4698391947895964E-01 + 1.4824280830075659E-01 1.4951247926165626E-01 1.5079302470859293E-01 + 1.5208453777943448E-01 1.5338711240975744E-01 1.5470084333967724E-01 + 1.5602582612074128E-01 1.5736215712287646E-01 1.5870993354139959E-01 + 1.6006925340408734E-01 1.6144021557830418E-01 1.6282291977819560E-01 + 1.6421746657193856E-01 1.6562395738905697E-01 1.6704249452779987E-01 + 1.6847318116258017E-01 1.6991612135147957E-01 1.7137142004381808E-01 + 1.7283918308778504E-01 1.7431951723814032E-01 1.7581253016397669E-01 + 1.7731833045655193E-01 1.7883702763718770E-01 1.8036873216523386E-01 + 1.8191355544610305E-01 1.8347160983937477E-01 1.8504300866696519E-01 + 1.8662786622137212E-01 1.8822629777398545E-01 1.8983841958347233E-01 + 1.9146434890423381E-01 1.9310420399493081E-01 1.9475810412708824E-01 + 1.9642616959376744E-01 1.9810852171831655E-01 1.9980528286319582E-01 + 2.0151657643887513E-01 2.0324252691281117E-01 2.0498325981850146E-01 + 2.0673890176461213E-01 2.0850958044418941E-01 2.1029542464394482E-01 + 2.1209656425362303E-01 2.1391313027545036E-01 2.1574525483366069E-01 + 2.1759307118410651E-01 2.1945671372395190E-01 2.2133631800144513E-01 + 2.2323202072578063E-01 2.2514395977703930E-01 2.2707227421621842E-01 + 2.2901710429534683E-01 2.3097859146768332E-01 2.3295687839800808E-01 + 2.3495210897299629E-01 2.3696442831168466E-01 2.3899398277602760E-01 + 2.4104091998154009E-01 2.4310538880803545E-01 2.4518753941045499E-01 + 2.4728752322978637E-01 2.4940549300408166E-01 2.5154160277956367E-01 + 2.5369600792183100E-01 2.5586886512716012E-01 2.5806033243389931E-01 + 2.6027056923396463E-01 2.6249973628443463E-01 2.6474799571923924E-01 + 2.6701551106095572E-01 2.6930244723269953E-01 2.7160897057012034E-01 + 2.7393524883350223E-01 2.7628145121996145E-01 2.7864774837575684E-01 + 2.8103431240869797E-01 2.8344131690066449E-01 2.8586893692023274E-01 + 2.8831734903540601E-01 2.9078673132645827E-01 2.9327726339888838E-01 + 2.9578912639647909E-01 2.9832250301447710E-01 3.0087757751287653E-01 + 3.0345453572982306E-01 3.0605356509513143E-01 3.0867485464391498E-01 + 3.1131859503033632E-01 3.1398497854147550E-01 3.1667419911131200E-01 + 3.1938645233483481E-01 3.2212193548226403E-01 3.2488084751340135E-01 + 3.2766338909210219E-01 3.3046976260086686E-01 3.3330017215556490E-01 + 3.3615482362027693E-01 3.3903392462226967E-01 3.4193768456709889E-01 + 3.4486631465383677E-01 3.4782002789043459E-01 3.5079903910921723E-01 + 3.5380356498250448E-01 3.5683382403837510E-01 3.5989003667655667E-01 + 3.6297242518445788E-01 3.6608121375333763E-01 3.6921662849460801E-01 + 3.7237889745628144E-01 3.7556825063955940E-01 3.7878492001555636E-01 + 3.8202913954217738E-01 3.8530114518112962E-01 3.8860117491508650E-01 + 3.9192946876499901E-01 3.9528626880754864E-01 3.9867181919275918E-01 + 4.0208636616175031E-01 4.0553015806464920E-01 4.0900344537865585E-01 + 4.1250648072625684E-01 4.1603951889360152E-01 4.1960281684903550E-01 + 4.2319663376178551E-01 4.2682123102081548E-01 4.3047687225383308E-01 + 4.3416382334646630E-01 4.3788235246160423E-01 4.4163273005889708E-01 + 4.4541522891442936E-01 4.4923012414056251E-01 4.5307769320593883E-01 + 4.5695821595566916E-01 4.6087197463168084E-01 4.6481925389324907E-01 + 4.6880034083770283E-01 4.7281552502130103E-01 4.7686509848029901E-01 + 4.8094935575218384E-01 4.8506859389709894E-01 4.8922311251945322E-01 + 4.9341321378970643E-01 4.9763920246634996E-01 5.0190138591807532E-01 + 5.0620007414612411E-01 5.1053557980684161E-01 5.1490821823441180E-01 + 5.1931830746379504E-01 5.2376616825386191E-01 5.2825212411071831E-01 + 5.3277650131123699E-01 5.3733962892679199E-01 5.4194183884718594E-01 + 5.4658346580479755E-01 5.5126484739892023E-01 5.5598632412032067E-01 + 5.6074823937600538E-01 5.6555093951419166E-01 5.7039477384950654E-01 + 5.7528009468838559E-01 5.8020725735470158E-01 5.8517662021560968E-01 + 5.9018854470760795E-01 5.9524339536282789E-01 6.0034153983555139E-01 + 6.0548334892894351E-01 6.1066919662203145E-01 6.1589946009689689E-01 + 6.2117451976611293E-01 6.2649475930041620E-01 6.3186056565660564E-01 + 6.3727232910568998E-01 6.4273044326127737E-01 6.4823530510819560E-01 + 6.5378731503137522E-01 6.5938687684496278E-01 6.6503439782169482E-01 + 6.7073028872252372E-01 6.7647496382648509E-01 6.8226884096083862E-01 + + + + + 3.2042148374113394E+05 2.9349056354944949E+05 2.7782628963699128E+05 + 2.6899925800467597E+05 2.6286944057240302E+05 2.5558618517905424E+05 + 2.5169611541811356E+05 2.4862475432237089E+05 2.4589253792318678E+05 + 2.4351078754699917E+05 2.4138775063921619E+05 2.3947019805411060E+05 + 2.3772228089892631E+05 2.3611570477877709E+05 2.3462871669373842E+05 + 2.3324420004034365E+05 2.3194842162721156E+05 2.3073020579951996E+05 + 2.2958033863112691E+05 2.2849113580060727E+05 2.2745612317700285E+05 + 2.2646979640336384E+05 2.2552743721220145E+05 2.2462497115825498E+05 + 2.2375885606193126E+05 2.2292599355044862E+05 2.2212365819548815E+05 + 2.2134944021459634E+05 2.2060119874094479E+05 2.1987702340947682E+05 + 2.1917520254744554E+05 2.1849419665436257E+05 2.1783261615165710E+05 + 2.1718920260425820E+05 2.1656281278475231E+05 2.1595240507979394E+05 + 2.1535702783812798E+05 2.1477580933722053E+05 2.1420794910640889E+05 + 2.1365271039264195E+05 2.1310941359317655E+05 2.1257743051027376E+05 + 2.1205617930764818E+05 2.1154512006842188E+05 2.1104375087064973E+05 + 2.1055160430981041E+05 2.1006824440864092E+05 2.0959326386375603E+05 + 2.0912628158602357E+05 2.0866694049794096E+05 2.0821490555650892E+05 + 2.0776986197450751E+05 2.0733151361680723E+05 2.0689958155148354E+05 + 2.0647380273818874E+05 2.0605392883849927E+05 2.0563972513491695E+05 + 2.0523096954685304E+05 2.0482745173337345E+05 2.0442897227370783E+05 + 2.0403534191759792E+05 2.0364638089848656E+05 2.0326191830335071E+05 + 2.0288179149368359E+05 2.0250584557274031E+05 2.0213393289469811E+05 + 2.0176591261185249E+05 2.0140165025637526E+05 2.0104101735353563E+05 + 2.0068389106359135E+05 2.0033015384985288E+05 1.9997969317066378E+05 + 1.9963240119327063E+05 1.9928817452774724E+05 1.9894691397931788E+05 + 1.9860852431758196E+05 1.9827291406127569E+05 1.9793999527734218E+05 + 1.9760968339318552E+05 1.9728189702108759E+05 1.9695655779385980E+05 + 1.9663359021087887E+05 1.9631292149373438E+05 1.9599448145077610E+05 + 1.9567820234991511E+05 1.9536401879908322E+05 1.9505186763380602E+05 + 1.9474168781138730E+05 1.9443342031124694E+05 1.9412700804098675E+05 + 1.9382239574779494E+05 1.9351952993483067E+05 1.9321835878225529E+05 + 1.9291883207260567E+05 1.9262090112022488E+05 1.9232451870449100E+05 + 1.9202963900659687E+05 1.9173621754966286E+05 1.9144421114196783E+05 + 1.9115357782310943E+05 1.9086427681291301E+05 1.9057626846292088E+05 + 1.9028951421030893E+05 1.9000397653408549E+05 1.8971961891343765E+05 + 1.8943640578809843E+05 1.8915430252062273E+05 1.8887327536045553E+05 + 1.8859329140969820E+05 1.8831431859047158E+05 1.8803632561379019E+05 + 1.8775928194986441E+05 1.8748315779974998E+05 1.8720792406827470E+05 + 1.8693355233817222E+05 1.8666001484535990E+05 1.8638728445529827E+05 + 1.8611533464037941E+05 1.8584413945828687E+05 1.8557367353127900E+05 + 1.8530391202635082E+05 1.8503483063622605E+05 1.8476640556114135E+05 + 1.8449861349138163E+05 1.8423143159052942E+05 1.8396483747939527E+05 + 1.8369880922059415E+05 1.8343332530373838E+05 1.8316836463121753E+05 + 1.8290390650453640E+05 1.8263993061118713E+05 1.8237641701202880E+05 + 1.8211334612915281E+05 1.8185069873420993E+05 1.8158845593718012E+05 + 1.8132659917556413E+05 1.8106511020397846E+05 1.8080397108413585E+05 + 1.8054316417519422E+05 1.8028267212445801E+05 1.8002247785841770E+05 + 1.7976256457411134E+05 1.7950291573079614E+05 1.7924351504191590E+05 + 1.7898434646735233E+05 1.7872539420594848E+05 1.7846664268829342E+05 + 1.7820807656975667E+05 1.7794968072376339E+05 1.7769144023529970E+05 + 1.7743334039463900E+05 1.7717536669128208E+05 1.7691750480809962E+05 + 1.7665974061567287E+05 1.7640206016682173E+05 1.7614444969131512E+05 + 1.7588689559075487E+05 1.7562938443362905E+05 1.7537190295052575E+05 + 1.7511443802950316E+05 1.7485697671160969E+05 1.7459950618654810E+05 + 1.7434201378847915E+05 1.7408448699196038E+05 1.7382691340801216E+05 + 1.7356928078031132E+05 1.7331157698150264E+05 1.7305379000962924E+05 + 1.7279590798467290E+05 1.7253791914520477E+05 1.7227981184513983E+05 + 1.7202157455059269E+05 1.7176319583683155E+05 1.7150466438532661E+05 + 1.7124596898089082E+05 1.7098709850890798E+05 1.7072804195264718E+05 + 1.7046878839066112E+05 1.7020932699426307E+05 1.6994964702508363E+05 + 1.6968973783270200E+05 1.6942958885235011E+05 1.6916918960268860E+05 + 1.6890852968365108E+05 1.6864759877435581E+05 1.6838638663108155E+05 + 1.6812488308530676E+05 1.6786307804180979E+05 1.6760096147682893E+05 + 1.6733852343628017E+05 1.6707575403403005E+05 1.6681264345022524E+05 + 1.6654918192967292E+05 1.6628535978027535E+05 1.6602116737151227E+05 + 1.6575659513297494E+05 1.6549163355294577E+05 1.6522627317702628E+05 + 1.6496050460680958E+05 1.6469431849859786E+05 1.6442770556216131E+05 + 1.6416065655954267E+05 1.6389316230390006E+05 1.6362521365839127E+05 + 1.6335680153509678E+05 1.6308791689398329E+05 1.6281855074190206E+05 + 1.6254869413162646E+05 1.6227833816092406E+05 1.6200747397166493E+05 + 1.6173609274896485E+05 1.6146418572036093E+05 1.6119174415502223E+05 + 1.6091875936299225E+05 1.6064522269446307E+05 1.6037112553908170E+05 + 1.6009645932528685E+05 1.5982121551967639E+05 1.5954538562640411E+05 + 1.5926896118660571E+05 1.5899193377785533E+05 1.5871429501364793E+05 + 1.5843603654291102E+05 1.5815715004954461E+05 1.5787762725198673E+05 + 1.5759745990280676E+05 1.5731663978832465E+05 1.5703515872825685E+05 + 1.5675300857538712E+05 1.5647018121526320E+05 1.5618666856591855E+05 + 1.5590246257761854E+05 1.5561755523263212E+05 1.5533193854502603E+05 + 1.5504560456048494E+05 1.5475854535615366E+05 1.5447075304050438E+05 + 1.5418221975322557E+05 1.5389293766513598E+05 1.5360289897811937E+05 + 1.5331209592508385E+05 1.5302052076994258E+05 1.5272816580761754E+05 + 1.5243502336406434E+05 1.5214108579632133E+05 1.5184634549257802E+05 + 1.5155079487226781E+05 1.5125442638617969E+05 1.5095723251659455E+05 + 1.5065920577743996E+05 1.5036033871446905E+05 1.5006062390545814E+05 + 1.4976005396042782E+05 1.4945862152188332E+05 1.4915631926507698E+05 + 1.4885313989829115E+05 1.4854907616314277E+05 1.4824412083490711E+05 + 1.4793826672286450E+05 1.4763150667066642E+05 1.4732383355672189E+05 + 1.4701524029460660E+05 1.4670571983348971E+05 1.4639526515858428E+05 + 1.4608386929161576E+05 1.4577152529131318E+05 1.4545822625391890E+05 + 1.4514396531372084E+05 1.4482873564360329E+05 1.4451253045562032E+05 + 1.4419534300158769E+05 1.4387716657369729E+05 1.4355799450514972E+05 + 1.4323782017081071E+05 1.4291663698788430E+05 1.4259443841660980E+05 + 1.4227121796097711E+05 1.4194696916946466E+05 1.4162168563579561E+05 + 1.4129536099971656E+05 1.4096798894779658E+05 1.4063956321424592E+05 + 1.4031007758175695E+05 1.3997952588236428E+05 1.3964790199832697E+05 + 1.3931519986303040E+05 1.3898141346191007E+05 1.3864653683339476E+05 + 1.3831056406987263E+05 1.3797348931867565E+05 1.3763530678308735E+05 + 1.3729601072337007E+05 1.3695559545781327E+05 1.3661405536380346E+05 + 1.3627138487891495E+05 1.3592757850202051E+05 1.3558263079442552E+05 + 1.3523653638102030E+05 1.3488928995145619E+05 1.3454088626134017E+05 + 1.3419132013345315E+05 1.3384058645898767E+05 1.3348868019880704E+05 + 1.3313559638472646E+05 1.3278133012081409E+05 1.3242587658471454E+05 + 1.3206923102899196E+05 1.3171138878249665E+05 1.3135234525174991E+05 + 1.3099209592235263E+05 1.3063063636041309E+05 1.3026796221399757E+05 + 1.2990406921460030E+05 1.2953895317863622E+05 1.2917261000895294E+05 + 1.2880503569636570E+05 1.2843622632121133E+05 1.2806617805492495E+05 + 1.2769488716163562E+05 1.2732234999978484E+05 1.2694856302376393E+05 + 1.2657352278557325E+05 1.2619722593650197E+05 1.2581966922882733E+05 + 1.2544084951753575E+05 1.2506076376206304E+05 1.2467940902805593E+05 + 1.2429678248915245E+05 1.2391288142878389E+05 1.2352770324199466E+05 + 1.2314124543728413E+05 1.2275350563846594E+05 1.2236448158654869E+05 + 1.2197417114163392E+05 1.2158257228483514E+05 1.2118968312021435E+05 + 1.2079550187673836E+05 1.2040002691025252E+05 1.2000325670547428E+05 + 1.1960518987800289E+05 1.1920582517634954E+05 1.1880516148398251E+05 + 1.1840319782139178E+05 1.1799993334816952E+05 1.1759536736510803E+05 + 1.1718949931631437E+05 1.1678232879134033E+05 1.1637385552732986E+05 + 1.1596407941118057E+05 1.1555300048172183E+05 1.1514061893190681E+05 + 1.1472693511102010E+05 1.1431194952689811E+05 1.1389566284816533E+05 + 1.1347807590648132E+05 1.1305918969880365E+05 1.1263900538966044E+05 + 1.1221752431343739E+05 1.1179474797667509E+05 1.1137067806037745E+05 + 1.1094531642233132E+05 1.1051866509943621E+05 1.1009072631004256E+05 + 1.0966150245630031E+05 1.0923099612651483E+05 1.0879921009751143E+05 + 1.0836614733700690E+05 1.0793181100598718E+05 1.0749620446109158E+05 + 1.0705933125700173E+05 1.0662119514883605E+05 1.0618180009454649E+05 + 1.0574115025732054E+05 1.0529925000798333E+05 1.0485610392740376E+05 + 1.0441171680889949E+05 1.0396609366064318E+05 1.0351923970806730E+05 + 1.0307116039626789E+05 1.0262186139240547E+05 1.0217134858810253E+05 + 1.0171962810183663E+05 1.0126670628132900E+05 1.0081258970592554E+05 + 1.0035728518897218E+05 9.9900799780180852E+04 9.9443140767986639E+04 + 9.8984315681895052E+04 9.8524332294816835E+04 9.8063198625391873E+04 + 9.7600922940297751E+04 9.7137513756544911E+04 9.6672979843755311E+04 + 9.6207330226423961E+04 9.5740574186161990E+04 9.5272721263920510E+04 + 9.4803781262193384E+04 9.4333764247197440E+04 9.3862680551029553E+04 + 9.3390540773799235E+04 9.2917355785733962E+04 9.2443136729257967E+04 + 9.1967895021040677E+04 9.1491642354016440E+04 9.1014390699370109E+04 + 9.0536152308491044E+04 9.0056939714890701E+04 8.9576765736084242E+04 + 8.9095643475434306E+04 8.8613586323953976E+04 8.8130607962069553E+04 + 8.7646722361339242E+04 8.7161943786128060E+04 8.6676286795235210E+04 + 8.6189766243474674E+04 8.5702397283204438E+04 8.5214195365805339E+04 + 8.4725176243105510E+04 8.4235355968750024E+04 8.3744750899513296E+04 + 8.3253377696552503E+04 8.2761253326600025E+04 8.2268395063093514E+04 + 8.1774820487240300E+04 8.1280547489016695E+04 8.0785594268096975E+04 + 8.0289979334713047E+04 7.9793721510441101E+04 7.9296839928912945E+04 + 7.8799354036452438E+04 7.8301283592631095E+04 7.7802648670744587E+04 + 7.7303469658205373E+04 7.6803767256850944E+04 7.6303562483164686E+04 + 7.5802876668407844E+04 7.5301731458659473E+04 7.4800148814764325E+04 + 7.4298151012183356E+04 7.3795760640747860E+04 7.3293000604312998E+04 + 7.2789894120309429E+04 7.2286464719190350E+04 7.1782736243772801E+04 + 7.1278732848469197E+04 7.0774478998409220E+04 7.0269999468447815E+04 + 6.9765319342058559E+04 6.9260464010109092E+04 6.8755459169517882E+04 + 6.8250330821788506E+04 6.7745105271420151E+04 6.7239809124193067E+04 + 6.6734469285324391E+04 6.6229112957495308E+04 6.5723767638744583E+04 + 6.5218461120228720E+04 6.4713221483844987E+04 6.4208077099716225E+04 + 6.3703056623534998E+04 6.3198188993765594E+04 6.2693503428700948E+04 + 6.2189029423373962E+04 6.1684796746319713E+04 6.1180835436188310E+04 + 6.0677175798204997E+04 6.0173848400477189E+04 5.9670884070145592E+04 + 5.9168313889378289E+04 5.8666169191205896E+04 5.8164481555196457E+04 + 5.7663282802968082E+04 5.7162604993538233E+04 5.6662480418508232E+04 + 5.6162941597081437E+04 5.5664021270913334E+04 5.5165752398793549E+04 + 5.4668168151157326E+04 5.4171301904426356E+04 5.3675187235176665E+04 + 5.3179857914134300E+04 5.2685347899996385E+04 5.2191691333078190E+04 + 5.1698922528783747E+04 5.1207075970901307E+04 5.0716186304721807E+04 + 5.0226288329980802E+04 4.9737416993622202E+04 4.9249607382385715E+04 + 4.8762894715215771E+04 4.8277314335493516E+04 4.7792901703090625E+04 + 4.7309692386246388E+04 4.6827722053268073E+04 4.6347026464054048E+04 + 4.5867641461442217E+04 4.5389602962382269E+04 4.4912946948934223E+04 + 4.4437709459093967E+04 4.3963926577446269E+04 4.3491634425646960E+04 + 4.3020869152735868E+04 4.2551666925281846E+04 4.2084063917361775E+04 + 4.1618096300374760E+04 4.1153800232694739E+04 4.0691211849162450E+04 + 4.0230367250420219E+04 3.9771302492090537E+04 3.9314053573803307E+04 + 3.8858656428072019E+04 3.8405146909024530E+04 3.7953560780988999E+04 + 3.7503933706940465E+04 3.7056301236810395E+04 3.6610698795663338E+04 + 3.6167161671744725E+04 3.5725725004403052E+04 3.5286423771892041E+04 + 3.4849292779056101E+04 3.4414366644904330E+04 3.3981679790077433E+04 + 3.3551266424213100E+04 3.3123160533214665E+04 3.2697395866428535E+04 + 3.2274005923735938E+04 3.1853023942565014E+04 3.1434482884828591E+04 + 3.1018415423795042E+04 3.0604853930896777E+04 3.0193830462484675E+04 + 2.9785376746534173E+04 2.9379524169310283E+04 2.8976303761998275E+04 + 2.8575746187308072E+04 2.8177881726059153E+04 2.7782740263753843E+04 + 2.7390351277147169E+04 2.7000743820820655E+04 2.6613946513768802E+04 + 2.6229987526006680E+04 2.5848894565206869E+04 2.5470694863374283E+04 + 2.5095415163568548E+04 2.4723081706682227E+04 2.4353720218284532E+04 + 2.3987355895539509E+04 2.3624013394208509E+04 2.3263716815746448E+04 + 2.2906489694501874E+04 2.2552354985029946E+04 2.2201335049529491E+04 + 2.1853451645413305E+04 2.1508725913022761E+04 2.1167178363495997E+04 + 2.0828828866801367E+04 2.0493696639945883E+04 2.0161800235369290E+04 + 1.9833157529535016E+04 1.9507785711727880E+04 1.9185701273070084E+04 + 1.8866919995766035E+04 1.8551456942586879E+04 1.8239326446605413E+04 + 1.7930542101192663E+04 1.7625116750286918E+04 1.7323062478945907E+04 + 1.7024390604193046E+04 1.6729111666168876E+04 1.6437235419598073E+04 + 1.6148770825583202E+04 1.5863726043735272E+04 1.5582108424652359E+04 + 1.5303924502756339E+04 1.5029179989498361E+04 1.4757879766942853E+04 + 1.4490027881740958E+04 1.4225627539502630E+04 1.3964681099577576E+04 + 1.3707190070254790E+04 1.3453155104389572E+04 1.3202575995467905E+04 + 1.2955451674116826E+04 1.2711780205069737E+04 1.2471558784594865E+04 + 1.2234783738395598E+04 1.2001450519990347E+04 1.1771553709579744E+04 + 1.1545087013408327E+04 1.1322043263628135E+04 1.1102414418670542E+04 + 1.0886191564133000E+04 1.0673364914186201E+04 1.0463923813507787E+04 + 1.0257856739747363E+04 1.0055151306527887E+04 9.8557942669873755E+03 + 9.6597715178652852E+03 9.4670681041366606E+03 9.2776682241970684E+03 + 9.0915552356009703E+03 8.9087116613551480E+03 8.7291191967690393E+03 + 8.5527587168625814E+03 8.3796102843322715E+03 8.2096531580748742E+03 + 8.0428658022685395E+03 7.8792258960096588E+03 7.7187103435038907E+03 + 7.5612952848085906E+03 7.4069561071239668E+03 7.2556674566289475E+03 + 7.1074032508577984E+03 6.9621366916123015E+03 6.8198402784042828E+03 + 6.6804858224220798E+03 6.5440444610143941E+03 6.4104866726838864E+03 + 6.2797822925826586E+03 6.1519005285007879E+03 6.0268099773386502E+03 + 5.9044786420530399E+03 5.7848739490663902E+03 5.6679627661279737E+03 + 5.5537114206151227E+03 5.4420857182620275E+03 5.3330509623028793E+03 + 5.2265719730158180E+03 5.1226131076532420E+03 5.0211382807436603E+03 + 4.9221109847495327E+03 4.8254943110652357E+03 4.7312509713384752E+03 + 4.6393433190981987E+03 4.5497333716712756E+03 4.4623828323701609E+03 + 4.3772531129328163E+03 4.2943053561961697E+03 4.2135004589836062E+03 + 4.1347990951869751E+03 4.0581617390229526E+03 3.9835486884434063E+03 + 3.9109200886791423E+03 3.8402359558959733E+03 3.7714562009420742E+03 + 3.7045406531650942E+03 3.6394490842774712E+03 3.5761412322481642E+03 + 3.5145768251991549E+03 3.4547156052841701E+03 3.3965173525279206E+03 + 3.3399419086034782E+03 3.2849492005256393E+03 3.2314992642379120E+03 + 3.1795522680708450E+03 3.1290685360493108E+03 3.0800085710265748E+03 + 3.0323330776227499E+03 2.9860029849455177E+03 2.9409794690708763E+03 + 2.8972239752619316E+03 2.8546982399037270E+03 2.8133643121323285E+03 + 2.7731845751364021E+03 2.7341217671099043E+03 2.6961390018345028E+03 + 2.6591997888706846E+03 2.6232680533367848E+03 2.5883081552553035E+03 + 2.5542849084464647E+03 2.5211635989490119E+03 2.4889100029488750E+03 + 2.4574904041965269E+03 2.4268716108944936E+03 2.3970209720367775E+03 + 2.3679063931825553E+03 2.3394963516469506E+03 2.3117599110923347E+03 + 2.2846667355041127E+03 2.2581871025356113E+03 2.2322919162072858E+03 + 2.2069527189462524E+03 2.1821417029527574E+03 2.1578317208810581E+03 + 2.1339962958229057E+03 2.1106096305827800E+03 2.0876466162348192E+03 + 2.0650828399523684E+03 2.0428945921020668E+03 2.0210588725953073E+03 + 1.9995533964911042E+03 1.9783565988453031E+03 1.9574476388023129E+03 + 1.9368064029264747E+03 1.9164135077715175E+03 1.8962503016874405E+03 + 1.8762988658654460E+03 1.8565420146225292E+03 1.8369632949285367E+03 + 1.8175469851794739E+03 1.7982780932219682E+03 1.7791423536347634E+03 + 1.7601262242742253E+03 1.7412168820917097E+03 1.7224022182317308E+03 + 1.7036708324206957E+03 1.6850120266570013E+03 1.6664157982141421E+03 + 1.6478728319693578E+03 1.6293744920712606E+03 1.6109128129606879E+03 + 1.5924804897599097E+03 1.5740708680460934E+03 1.5556779330257712E+03 + 1.5372962981277590E+03 1.5189211930328479E+03 1.5005484511592069E+03 + 1.4821744966232309E+03 1.4637963306961854E+03 1.4454115177777260E+03 + 1.4270181709079411E+03 1.4086149368401846E+03 1.3902009806975168E+03 + 1.3717759702361302E+03 1.3533400597395878E+03 1.3348938735681904E+03 + 1.3164384893881711E+03 1.2979754211058380E+03 1.2795066015320886E+03 + 1.2610343648030175E+03 1.2425614285826318E+03 1.2240908760738264E+03 + 1.2056261378640418E+03 1.1871709736320670E+03 1.1687294537426019E+03 + 1.1503059407551655E+03 1.1319050708740319E+03 1.1135317353657515E+03 + 1.0951910619707728E+03 1.0768883963355299E+03 1.0586292834912349E+03 + 1.0404194494053545E+03 1.0222647826315462E+03 1.0041713160834852E+03 + 9.8614520895776366E+02 9.6819272883057863E+02 9.5032023395261183E+02 + 9.3253415576597070E+02 9.1484098166665945E+02 8.9724723803546897E+02 + 8.7975947355965059E+02 8.6238424286714360E+02 8.4512809049450459E+02 + 8.2799753520902652E+02 8.1099905470486783E+02 7.9413907069227400E+02 + 7.7742393439823252E+02 7.6085991249614926E+02 7.4445317348131039E+02 + 7.2820977450807777E+02 7.1213564870391247E+02 6.9623659297445568E+02 + 6.8051825631299073E+02 6.6498612862670961E+02 6.4964553009123983E+02 + 6.3450160104399004E+02 6.1955929242584546E+02 6.0482335677980961E+02 + 5.9029833981414879E+02 5.7598857253663493E+02 5.6189816396542062E+02 + 5.4803099442107521E+02 5.3439070940327599E+02 5.2098071405458722E+02 + 5.0780416821274810E+02 4.9486398205180603E+02 4.8216281231141181E+02 + 4.6970305911251239E+02 4.5748686335667043E+02 4.4551610470514896E+02 + 4.3379240013290445E+02 4.2231710305155474E+02 4.1109130299440898E+02 + 4.0011582585560149E+02 3.8939123467437770E+02 3.7891783095459812E+02 + 3.6869565650855236E+02 3.5872449581321615E+02 3.4900387886615761E+02 + 3.3953308452737531E+02 3.3031114433248388E+02 3.2133684676177916E+02 + 3.1260874194889936E+02 3.0412514681200321E+02 2.9588415058960504E+02 + 2.8788362076251207E+02 2.8012120934260685E+02 2.7259435950859830E+02 + 2.6530031256827101E+02 2.5823611522625521E+02 2.5139862713585396E+02 + 2.4478452871307871E+02 2.3839032919070630E+02 2.3221237488990317E+02 + 2.2624685768667243E+02 2.2048982365112667E+02 2.1493718183546281E+02 + 2.0958471318937490E+02 2.0442807957976828E+02 1.9946283289272017E+02 + 1.9468442419582769E+02 1.9008821293954315E+02 1.8566947617659420E+02 + 1.8142341777918676E+02 1.7734517763434167E+02 1.7342984079842063E+02 + 1.6967244659266518E+02 1.6606799762228891E+02 1.6261146870279666E+02 + 1.5929781567744456E+02 1.5612198411107747E+02 1.5307891784620537E+02 + 1.5016356740791576E+02 1.4737089824490371E+02 1.4469589879448696E+02 + 1.4213358835990550E+02 1.3967902478848376E+02 1.3732731193931164E+02 + 1.3507360692898334E+02 1.3291312714359580E+02 1.3084115700471500E+02 + 1.2885305447639868E+02 1.2694425729973700E+02 1.2511028894082419E+02 + 1.2334676423776182E+02 1.2164939473233069E+02 1.2001399367245507E+02 + 1.1843648067260759E+02 1.1691288602084312E+02 1.1543935462319733E+02 + 1.1401214957860583E+02 1.1262765538018337E+02 1.1128238074145986E+02 + 1.0997296104886543E+02 1.0869616044423155E+02 1.0744887354324793E+02 + 1.0622812679759609E+02 1.0503107950988102E+02 1.0385502451149061E+02 + 1.0269738851420325E+02 1.0155573214676279E+02 1.0042774968784246E+02 + 9.9311268506867890E+01 9.8204248224138226E+01 9.7104779601597869E+01 + 9.6011083175524050E+01 9.4921507642322737E+01 9.3834528008573812E+01 + 9.2748743516467002E+01 9.1662875355791925E+01 9.0575764173720756E+01 + 8.9486367393714659E+01 8.8393756355019804E+01 8.7297113284354282E+01 + 8.6195728111547950E+01 8.5088995141047320E+01 8.3976409591353985E+01 + 8.2857564014592583E+01 8.1732144608523200E+01 8.0599927433391770E+01 + 7.9460774546068350E+01 7.8314630063927297E+01 7.7161516170895908E+01 + 7.6001529078016404E+01 7.4834834950744394E+01 7.3661665815032919E+01 + 7.2482315454030967E+01 7.1297135306963156E+01 7.0106530381444756E+01 + 6.8910955190141109E+01 6.7710909722290708E+01 6.6506935460190292E+01 + 6.5299611450287415E+01 6.4089550438049756E+01 6.2877395075274094E+01 + 6.1663814207979847E+01 6.0449499252491272E+01 5.9235160666767001E+01 + 5.8021524523472962E+01 5.6809329190734267E+01 5.5599322125932069E+01 + 5.4392256787348799E+01 5.3188889667898515E+01 5.1989977454624388E+01 + 5.0796274317092802E+01 4.9608529327276592E+01 4.8427484012989375E+01 + 4.7253870046420445E+01 4.6088407068818576E+01 4.4931800651893951E+01 + 4.3784740396040299E+01 4.2647898165035791E+01 4.1521926456457074E+01 + 4.0407456906635325E+01 3.9305098928604899E+01 3.8215438481131947E+01 + 3.7139036966577692E+01 3.6076430255034921E+01 3.5028127831889307E+01 + 3.3994612065689118E+01 3.2976337592965287E+01 3.1973730816423870E+01 + 3.0987189512737949E+01 3.0017082545991180E+01 2.9063749682676093E+01 + 2.8127501504018721E+01 2.7208619411296311E+01 2.6307355719725049E+01 + 2.5423933836429065E+01 2.4558548517952481E+01 2.3711366202747875E+01 + 2.2882525414060218E+01 2.2072137228630464E+01 2.1280285806661613E+01 + 2.0507028978523934E+01 1.9752398883723952E+01 1.9016402657720530E+01 + 1.8299023162243859E+01 1.7600219754853164E+01 1.6919929093561805E+01 + 1.6258065972456055E+01 1.5614524184341818E+01 1.4989177406565229E+01 + 1.4381880106273183E+01 1.3792468461501347E+01 1.3220761294604614E+01 + 1.2666561014674055E+01 1.2129654565717194E+01 1.1609814377534660E+01 + 1.1106799316201023E+01 1.0620355631678551E+01 1.0150217899244167E+01 + 9.6961099530042922E+00 9.2577458083586972E+00 8.8348305714723985E+00 + 8.4270613335276430E+00 8.0341280477297836E+00 7.6557143871700779E+00 + 7.2914985817798446E+00 6.9411542327401543E+00 6.6043511028414921E+00 + 6.2807558814199966E+00 5.9700329226306543E+00 5.6718449559525075E+00 + 5.3858537679614136E+00 5.1117208545473272E+00 4.8491080429013875E+00 + 4.5976780827504609E+00 4.3570952064744679E+00 4.1270256579057287E+00 + 3.9071381897781849E+00 3.6971045299659187E+00 3.4965998168253356E+00 + 3.3053030041271785E+00 3.1228972362323759E+00 2.9490701943224558E+00 + 2.7835144146350923E+00 2.6259275797730539E+00 2.4760127842414135E+00 + 2.3334787754194295E+00 2.1980401711837629E+00 2.0694176553660921E+00 + 1.9473381521516373E+00 1.8315349804082852E+00 1.7217479887863312E+00 + 1.6177236722577675E+00 1.5192152705841522E+00 1.4259828490301558E+00 + 1.3377933614915283E+00 1.2544206960965407E+00 1.1756457032816610E+00 + 1.1012562063428428E+00 1.0310469945254004E+00 9.6481979883482905E-01 + 9.0238325091709226E-01 8.4355282555585498E-01 7.8815076754704427E-01 + 7.3600600391876114E-01 6.8695404264942361E-01 6.4083685918379485E-01 + 5.9750277214633785E-01 5.5680630969952860E-01 5.1860806799277692E-01 + 4.8277456310132938E-01 4.4917807777254820E-01 4.1769650418968030E-01 + 3.8821318384128156E-01 3.6061674545692696E-01 3.3480094184477716E-01 + 3.1066448634935778E-01 2.8811088954218550E-01 2.6704829666545166E-01 + 2.4738932627011612E-01 2.2905091042369857E-01 2.1195413680858938E-01 + 1.9602409298692905E-01 1.8118971307146492E-01 1.6738362701148532E-01 + 1.5454201267748241E-01 1.4260445090645579E-01 1.3151378365058239E-01 + 1.2121597535473648E-01 1.1165997767238597E-01 1.0279759761435196E-01 + 9.4583369210594209E-02 8.6974428751369556E-02 7.9930393660759186E-02 + 7.3413245042684414E-02 6.7387213927087797E-02 6.1818671232039296E-02 + 5.6676021446144781E-02 5.1929600024833864E-02 4.7551574483942378E-02 + 4.3515849164494809E-02 3.9797973633756215E-02 3.6375054679498219E-02 + 3.3225671846976258E-02 3.0329796461378292E-02 2.7668714072443694E-02 + 2.5224950252552385E-02 2.2982199674840033E-02 2.0925258393756391E-02 + 1.9039959246946257E-02 1.7313110294348805E-02 1.5732436207956436E-02 + 1.4286522523719097E-02 1.2964762665588212E-02 1.1757307650633660E-02 + 1.0655018383513265E-02 9.6494204482864155E-03 8.7326613056219297E-03 + 7.8974698038205109E-03 7.1371179127277164E-03 6.4453845905306549E-03 + 5.8165216945825562E-03 5.2452218487598675E-03 4.7265881814070512E-03 + 4.2561058496381745E-03 3.8296152676252681E-03 3.4432869584896031E-03 + 3.0935979515051689E-03 2.7773096485072860E-03 2.4914470856568656E-03 + 2.2332795190268934E-03 2.0003022648377123E-03 1.7902197275606433E-03 + 1.6009295515198366E-03 1.4305078340421820E-03 1.2771953406222794E-03 + 1.1393846649750835E-03 1.0156082792348148E-03 9.0452742191710674E-04 + 8.0492177358536016E-04 7.1567987244584397E-04 6.3579022433403281E-04 + 5.6433306374230113E-04 5.0047272467230791E-04 4.4345058217105287E-04 + 3.9257852742478509E-04 3.4723294123745879E-04 3.0684913260827607E-04 + 2.7091621094531547E-04 2.3897236220770301E-04 2.1060050095724750E-04 + 1.8542427192173782E-04 1.6310437622603095E-04 1.4333519893448347E-04 + 1.2584171596970438E-04 1.1037665982898954E-04 9.6717924812276675E-05 + 8.4666193705375625E-05 7.4042769030956165E-05 6.4687593088966135E-05 + 5.6457442059441365E-05 4.9224280435826730E-05 4.2873762997812576E-05 + 3.7303872421161875E-05 3.2423681459981405E-05 2.8152229426343918E-05 + 2.4417503435010690E-05 2.1155515579219834E-05 1.8309467859015490E-05 + 1.5828997298318589E-05 1.3669494262785660E-05 1.1791487529309330E-05 + 1.0160090161619198E-05 8.7445007166108687E-06 7.5175547444950984E-06 + 6.4553219543001559E-06 5.5367447963008391E-06 4.7433145661583957E-06 + 4.0587814634577309E-06 3.4688953413750068E-06 2.9611741658093539E-06 + 2.5246974628106987E-06 2.1499222738231506E-06 1.8285193603766858E-06 + 1.5532276045779310E-06 1.3177247402006673E-06 1.1165127224324578E-06 + 9.4481620341555580E-07 7.9849272659993188E-07 6.7395338652406259E-07 + 5.6809282282768695E-07 4.7822752890603720E-07 4.0204155741596269E-07 + 3.3753879757682157E-07 2.8300108356474867E-07 2.3695146992852733E-07 + 1.9812207946930332E-07 1.6542599199625046E-07 1.3793269933063858E-07 + 1.1484670338060747E-07 9.5488880513138664E-08 7.9280277241099476E-08 + 6.5728039823666154E-08 5.4413214120925330E-08 4.4980182293521184E-08 + 3.7127530015526679E-08 3.0600162068598818E-08 2.5182505780403511E-08 + 2.0692661011095784E-08 1.6977372508942307E-08 1.3907715661422463E-08 + 1.1375400154821191E-08 9.2896080000035436E-09 7.5742929454210197E-09 + 6.1658776263428168E-09 5.0112930239392597E-09 4.0663120485569040E-09 + 3.2941354259987066E-09 2.6641936508308202E-09 2.1511336639029731E-09 + 1.7339631907624236E-09 1.3953294138018797E-09 1.1209119068906074E-09 + 8.9891259339477396E-10 7.1962794744367813E-10 5.7509078919414165E-10 + 4.5877086794783201E-10 3.6532501812129040E-10 2.9038904408461738E-10 + 2.3040466897877106E-10 1.8247589473422968E-10 1.4424998764526821E-10 + 1.1381904536519210E-10 8.9638734076427889E-11 7.0461323743564882E-11 + 5.5280607788095563E-11 4.3286682574667805E-11 3.3828891639076498E-11 + 2.6385518184779883E-11 2.0539044447778497E-11 1.5955994492924559E-11 + 1.2370543389941234E-11 9.5712152857249284E-12 7.3901097301306065E-12 + 5.6941932301573611E-12 4.3782743998132351E-12 3.3593487982710083E-12 + 2.5720557860666162E-12 1.9650363297339350E-12 1.4980192197109125E-12 + 1.1394949633748958E-12 8.6486279664753241E-13 6.5495776902364027E-13 + 4.9488249276561764E-13 3.7308257388811268E-13 2.8061651823905586E-13 + 2.1058049622186233E-13 1.5765614251202168E-13 1.1775588499830694E-13 + 8.7745407546983964E-14 6.5226975280137772E-14 4.8370671460663276E-14 + 3.5783262123745341E-14 2.6406541761449619E-14 1.9438721830990802E-14 + 1.4273786316562149E-14 1.0454822454130236E-14 7.6381948724937703E-15 + 5.5661123020812427E-15 4.0456736604770386E-15 2.9329038026746338E-15 + 2.1206219224906699E-15 1.5292462982209605E-15 1.0998428389990193E-15 + 7.8888372952098002E-16 5.6430596642173870E-16 4.0255533925128090E-16 + 2.8637546237052422E-16 2.0315857614022147E-16 1.4371876175682797E-16 + 1.0138190514646535E-16 7.1312514289420422E-17 5.0017148642616370E-17 + 3.4979167411723506E-17 2.4390839697394134E-17 1.6957431909623862E-17 + 1.1754351324584923E-17 8.1232837604510084E-18 5.5969055064112130E-18 + 3.8444714854184530E-18 2.6326095923481037E-18 1.7971575335670110E-18 + 1.2229940233437697E-18 8.2963973173188257E-19 5.6100946474539017E-19 + 3.7814170959039971E-19 2.5405686269802683E-19 1.7013251595093057E-19 + 1.1355643446862459E-19 7.5542625007498843E-20 5.0085966079721818E-20 + 3.3095682442174102E-20 2.1794427087179313E-20 1.4302956420484817E-20 + 9.3540504727263236E-21 6.0961313000668134E-21 3.9589195857382286E-21 + 2.5618502904214935E-21 1.6518565275483132E-21 1.0612534156149358E-21 + 6.7932976603560224E-22 4.3325481281511325E-22 2.7529205133834110E-22 + 1.7426800675889644E-22 1.0990094731229014E-22 6.9044791954011074E-23 + 4.3210763630502169E-23 2.6938298722230445E-23 1.6728274500985457E-23 + 1.0347139595191213E-23 6.3747468225549438E-24 3.9116879726553575E-24 + 2.3906121745633343E-24 1.4550656993808012E-24 8.8200164622697697E-25 + 5.3241972084273888E-25 3.2005256366396570E-25 1.9158225716790219E-25 + 1.1419321046188351E-25 6.7773574129139120E-26 4.0049726498749906E-26 + 2.3563597238968658E-26 1.3802894604611913E-26 8.0494986416952619E-27 + 4.6732709732261193E-27 2.7009081896324855E-27 1.5538837199775945E-27 + 8.8987707142665675E-28 5.0725594709256882E-28 2.8780119217247841E-28 + 1.6252077150301958E-28 9.1339450789028659E-29 5.1088528207365703E-29 + 2.8437142493211359E-29 1.5751721585607228E-29 8.6822323077969863E-30 + 4.7618720224817357E-30 2.5986540460011621E-30 1.4109933813936290E-30 + 7.6223419386271610E-31 4.0965649037073715E-31 2.1902822205756078E-31 + 1.1649568654254557E-31 6.1635324346652508E-32 3.2436947781813491E-32 + 1.6979345750252357E-32 8.8400078596288193E-33 4.5773589232490238E-33 + 2.3571521914382645E-33 1.2071192400522515E-33 6.1472658468199559E-34 + 3.1128794651323458E-34 1.5673649786004563E-34 7.8466514457574882E-35 + 3.9055631174993657E-35 1.9326203471350341E-35 9.5071720517845347E-36 + 4.6491785941473121E-36 2.2599516362423787E-36 1.0919377640357392E-36 + 5.2438474954653390E-37 2.5028398394813051E-37 1.1872006654770226E-37 + 5.5962912016347257E-38 2.6214309589527253E-38 1.2201553843448360E-38 + 5.6429592160988609E-39 2.5929252497854835E-39 1.1836967621670058E-39 + 5.3682676786937513E-40 2.4185037709552993E-40 1.0823151473363485E-40 + 4.8109442123675523E-41 2.1239856117090343E-41 9.3130583973411499E-42 + 4.0553395175328326E-42 1.7536005430689481E-42 7.5296863967898786E-43 + 3.2102574688220961E-43 1.3589183949586040E-43 5.7109845506035035E-44 + 2.3826816948330012E-44 9.8680564505669948E-45 4.0567726708218984E-45 + 1.6553347780859854E-45 6.7037772214975775E-46 2.6943504989415094E-46 + 1.0746359865442750E-46 4.2531744524654889E-47 1.6702484022833855E-47 + 6.5078311207709049E-48 2.5156480299062558E-48 9.6470091573569658E-49 + 3.6697399433090471E-49 1.3846754982060374E-49 5.1820421168212256E-50 + 1.9233748362286279E-50 7.0795651704384933E-51 2.5840341904664459E-51 + 9.3520765038015765E-52 3.3558676524798221E-52 1.1938703907140652E-52 + 4.2104980454724245E-53 1.4719795829281869E-53 5.1007021981224428E-54 + 1.7518043362010840E-54 5.9626043708508062E-55 2.0111673988679914E-55 + 6.7218539966177309E-56 2.2259996597089053E-56 7.3033572875850839E-57 + 2.3738181245963075E-57 7.6430291233075470E-58 2.4374865975571704E-58 + 7.6991504838037869E-59 2.4084196407320143E-59 7.4606205368821246E-60 + 2.2884191226560143E-60 6.9498930855400587E-61 2.0896158625297232E-61 + 6.2196239894781465E-62 1.8324596985354281E-62 5.3436791383978002E-63 + 1.5422141608409608E-63 4.4046340110705436E-64 1.2447953974675444E-64 + 3.4807354952453994E-65 9.6292085015891204E-66 2.6352269170912325E-66 + 7.1336921234196098E-67 1.9100309347786231E-67 5.0577415417130461E-68 + 1.3244125064632317E-68 3.4292587845126943E-69 8.7790444678785678E-70 + 2.2218954344760101E-70 5.5588948573714998E-71 1.3746767761994439E-71 + 3.3598397457805130E-72 8.1152260784427535E-73 1.9368891147395615E-73 + 4.5676064338468724E-74 1.0641670487848592E-74 2.4492059660470222E-75 + 5.5679081718488730E-76 1.2501631260413244E-76 2.7720784252696011E-77 + 6.0696635673424336E-78 1.3121993249315371E-78 2.8007002111702494E-79 + 5.9009283049675033E-80 1.2272017524142770E-80 2.5188845701739420E-81 + 5.1021325282282353E-82 1.0197662145056651E-82 2.0109853756283736E-83 + 3.9122838699666207E-84 7.5078996504273771E-85 1.4211059900836691E-85 + 2.6528177174701892E-86 4.8833073569243639E-87 8.8633718824019278E-88 + 1.5860412072954147E-88 2.7977740849553430E-89 4.8645803208245755E-90 + 8.3361272390964591E-91 1.4077351750394747E-91 2.3424293708557696E-92 + 3.8401837342542194E-93 6.2019506145195208E-94 9.8661123631104350E-95 + 1.5458086403248872E-95 2.3851055784005240E-96 3.6236963587437536E-97 + 5.4204862147262643E-98 7.9820917948858646E-99 1.1570092699412877E-99 + 1.650623685670541E-100 2.317393274294058E-101 3.201408031578093E-102 + 4.351319653123240E-103 5.818198625797293E-104 7.652309111881020E-105 + 9.898777700406455E-106 1.259227902209037E-106 1.575104258699485E-107 + 1.937068082144398E-108 2.341851800580064E-109 2.782922643328297E-110 + 3.250261137860091E-111 3.730430093291821E-112 4.206987293632244E-113 + 4.661258256679396E-114 5.073441474858026E-115 5.423980151820017E-116 + 5.695024208825599E-117 5.871984972578639E-118 5.944757424027866E-119 + 5.908689348112065E-120 5.765062100639311E-121 5.521037039037057E-122 + 5.189066465854267E-123 4.785836073336620E-124 4.330864370736507E-125 + 3.844923980853136E-126 3.348464100302375E-127 2.860201558121103E-128 + 2.396013229342387E-129 1.968212311859774E-130 1.585234531730861E-131 + 1.251707219378289E-132 9.688322226710817E-134 7.349876534799057E-135 + 5.464448968513896E-136 3.981043557351970E-137 2.841719652958164E-138 + 1.987233823501824E-139 1.361288000826165E-140 9.133440881210280E-142 + 6.001398058121192E-143 3.861486292418166E-144 2.432715205558093E-145 + 1.500422683855767E-146 9.058841213749120E-148 5.353276469108376E-149 + 3.096037853406159E-150 1.752202202490874E-151 9.702990641680072E-153 + 5.256815700505349E-154 2.786045599117182E-155 1.444291555450215E-156 + 7.322777458007085E-158 3.630818369173286E-159 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 2.9944082301220569E+00 2.9944082301096380E+00 2.9944082300719637E+00 + 2.9944082300083830E+00 2.9944082299182329E+00 2.9944082298008383E+00 + 2.9944082296555101E+00 2.9944082294815471E+00 2.9944082292782306E+00 + 2.9944082290448333E+00 2.9944082287806064E+00 2.9944082284847915E+00 + 2.9944082281566153E+00 2.9944082277952835E+00 2.9944082273999948E+00 + 2.9944082269699224E+00 2.9944082265042322E+00 2.9944082260020686E+00 + 2.9944082254625610E+00 2.9944082248848187E+00 2.9944082242679380E+00 + 2.9944082236109959E+00 2.9944082229130493E+00 2.9944082221731407E+00 + 2.9944082213902892E+00 2.9944082205634985E+00 2.9944082196917523E+00 + 2.9944082187740118E+00 2.9944082178092235E+00 2.9944082167963080E+00 + 2.9944082157341674E+00 2.9944082146216839E+00 2.9944082134577155E+00 + 2.9944082122410998E+00 2.9944082109706507E+00 2.9944082096451625E+00 + 2.9944082082634034E+00 2.9944082068241178E+00 2.9944082053260268E+00 + 2.9944082037678292E+00 2.9944082021481959E+00 2.9944082004657715E+00 + 2.9944081987191793E+00 2.9944081969070124E+00 2.9944081950278387E+00 + 2.9944081930801980E+00 2.9944081910626035E+00 2.9944081889735417E+00 + 2.9944081868114640E+00 2.9944081845748003E+00 2.9944081822619451E+00 + 2.9944081798712663E+00 2.9944081774010982E+00 2.9944081748497449E+00 + 2.9944081722154792E+00 2.9944081694965394E+00 2.9944081666911333E+00 + 2.9944081637974316E+00 2.9944081608135731E+00 2.9944081577376624E+00 + 2.9944081545677648E+00 2.9944081513019136E+00 2.9944081479381026E+00 + 2.9944081444742885E+00 2.9944081409083925E+00 2.9944081372382896E+00 + 2.9944081334618247E+00 2.9944081295767950E+00 2.9944081255809616E+00 + 2.9944081214720395E+00 2.9944081172477053E+00 2.9944081129055888E+00 + 2.9944081084432792E+00 2.9944081038583183E+00 2.9944080991482038E+00 + 2.9944080943103843E+00 2.9944080893422655E+00 2.9944080842412006E+00 + 2.9944080790044980E+00 2.9944080736294110E+00 2.9944080681131502E+00 + 2.9944080624528659E+00 2.9944080566456615E+00 2.9944080506885835E+00 + 2.9944080445786283E+00 2.9944080383127316E+00 2.9944080318877777E+00 + 2.9944080253005878E+00 2.9944080185479316E+00 2.9944080116265148E+00 + 2.9944080045329837E+00 2.9944079972639228E+00 2.9944079898158544E+00 + 2.9944079821852374E+00 2.9944079743684653E+00 2.9944079663618650E+00 + 2.9944079581616956E+00 2.9944079497641516E+00 2.9944079411653544E+00 + 2.9944079323613542E+00 2.9944079233481324E+00 2.9944079141215934E+00 + 2.9944079046775687E+00 2.9944078950118143E+00 2.9944078851200073E+00 + 2.9944078749977465E+00 2.9944078646405541E+00 2.9944078540438639E+00 + 2.9944078432030343E+00 2.9944078321133332E+00 2.9944078207699456E+00 + 2.9944078091679676E+00 2.9944077973024092E+00 2.9944077851681872E+00 + 2.9944077727601273E+00 2.9944077600729599E+00 2.9944077471013228E+00 + 2.9944077338397523E+00 2.9944077202826929E+00 2.9944077064244814E+00 + 2.9944076922593577E+00 2.9944076777814512E+00 2.9944076629847949E+00 + 2.9944076478633033E+00 2.9944076324107889E+00 2.9944076166209506E+00 + 2.9944076004873708E+00 2.9944075840035187E+00 2.9944075671627481E+00 + 2.9944075499582898E+00 2.9944075323832524E+00 2.9944075144306224E+00 + 2.9944074960932601E+00 2.9944074773638971E+00 2.9944074582351332E+00 + 2.9944074386994388E+00 2.9944074187491432E+00 2.9944073983764423E+00 + 2.9944073775733928E+00 2.9944073563319065E+00 2.9944073346437508E+00 + 2.9944073125005461E+00 2.9944072898937608E+00 2.9944072668147146E+00 + 2.9944072432545679E+00 2.9944072192043243E+00 2.9944071946548259E+00 + 2.9944071695967525E+00 2.9944071440206157E+00 2.9944071179167584E+00 + 2.9944070912753515E+00 2.9944070640863898E+00 2.9944070363396880E+00 + 2.9944070080248815E+00 2.9944069791314196E+00 2.9944069496485626E+00 + 2.9944069195653813E+00 2.9944068888707505E+00 2.9944068575533467E+00 + 2.9944068256016458E+00 2.9944067930039169E+00 2.9944067597482205E+00 + 2.9944067258224050E+00 2.9944066912141052E+00 2.9944066559107321E+00 + 2.9944066198994737E+00 2.9944065831672937E+00 2.9944065457009184E+00 + 2.9944065074868416E+00 2.9944064685113192E+00 2.9944064287603593E+00 + 2.9944063882197227E+00 2.9944063468749196E+00 2.9944063047112013E+00 + 2.9944062617135576E+00 2.9944062178667128E+00 2.9944061731551184E+00 + 2.9944061275629559E+00 2.9944060810741200E+00 2.9944060336722229E+00 + 2.9944059853405873E+00 2.9944059360622419E+00 2.9944058858199107E+00 + 2.9944058345960158E+00 2.9944057823726662E+00 2.9944057291316564E+00 + 2.9944056748544594E+00 2.9944056195222171E+00 2.9944055631157425E+00 + 2.9944055056155063E+00 2.9944054470016357E+00 2.9944053872539085E+00 + 2.9944053263517429E+00 2.9944052642741945E+00 2.9944052009999500E+00 + 2.9944051365073197E+00 2.9944050707742309E+00 2.9944050037782231E+00 + 2.9944049354964388E+00 2.9944048659056168E+00 2.9944047949820876E+00 + 2.9944047227017627E+00 2.9944046490401308E+00 2.9944045739722496E+00 + 2.9944044974727362E+00 2.9944044195157602E+00 2.9944043400750378E+00 + 2.9944042591238222E+00 2.9944041766348972E+00 2.9944040925805662E+00 + 2.9944040069326450E+00 2.9944039196624570E+00 2.9944038307408185E+00 + 2.9944037401380337E+00 2.9944036478238854E+00 2.9944035537676243E+00 + 2.9944034579379624E+00 2.9944033603030613E+00 2.9944032608305213E+00 + 2.9944031594873808E+00 2.9944030562400905E+00 2.9944029510545187E+00 + 2.9944028438959331E+00 2.9944027347289905E+00 2.9944026235177290E+00 + 2.9944025102255574E+00 2.9944023948152396E+00 2.9944022772488870E+00 + 2.9944021574879511E+00 2.9944020354932035E+00 2.9944019112247271E+00 + 2.9944017846419113E+00 2.9944016557034283E+00 2.9944015243672313E+00 + 2.9944013905905305E+00 2.9944012543297935E+00 2.9944011155407222E+00 + 2.9944009741782445E+00 2.9944008301964966E+00 2.9944006835488164E+00 + 2.9944005341877227E+00 2.9944003820649034E+00 2.9944002271312034E+00 + 2.9944000693366037E+00 2.9943999086302164E+00 2.9943997449602597E+00 + 2.9943995782740465E+00 2.9943994085179715E+00 2.9943992356374909E+00 + 2.9943990595771068E+00 2.9943988802803512E+00 2.9943986976897747E+00 + 2.9943985117469163E+00 2.9943983223923016E+00 2.9943981295654138E+00 + 2.9943979332046782E+00 2.9943977332474478E+00 2.9943975296299814E+00 + 2.9943973222874232E+00 2.9943971111537881E+00 2.9943968961619394E+00 + 2.9943966772435671E+00 2.9943964543291708E+00 2.9943962273480378E+00 + 2.9943959962282225E+00 2.9943957608965222E+00 2.9943955212784599E+00 + 2.9943952772982607E+00 2.9943950288788268E+00 2.9943947759417191E+00 + 2.9943945184071263E+00 2.9943942561938521E+00 2.9943939892192830E+00 + 2.9943937173993649E+00 2.9943934406485799E+00 2.9943931588799226E+00 + 2.9943928720048687E+00 2.9943925799333546E+00 2.9943922825737483E+00 + 2.9943919798328209E+00 2.9943916716157211E+00 2.9943913578259473E+00 + 2.9943910383653174E+00 2.9943907131339396E+00 2.9943903820301836E+00 + 2.9943900449506544E+00 2.9943897017901517E+00 2.9943893524416496E+00 + 2.9943889967962596E+00 2.9943886347431978E+00 2.9943882661697541E+00 + 2.9943878909612605E+00 2.9943875090010490E+00 2.9943871201704306E+00 + 2.9943867243486473E+00 2.9943863214128412E+00 2.9943859112380267E+00 + 2.9943854936970342E+00 2.9943850686604923E+00 2.9943846359967794E+00 + 2.9943841955719854E+00 2.9943837472498740E+00 2.9943832908918413E+00 + 2.9943828263568779E+00 2.9943823535015222E+00 2.9943818721798232E+00 + 2.9943813822432919E+00 2.9943808835408641E+00 2.9943803759188494E+00 + 2.9943798592208917E+00 2.9943793332879167E+00 2.9943787979580914E+00 + 2.9943782530667700E+00 2.9943776984464545E+00 2.9943771339267333E+00 + 2.9943765593342411E+00 2.9943759744926042E+00 2.9943753792223848E+00 + 2.9943747733410349E+00 2.9943741566628401E+00 2.9943735289988589E+00 + 2.9943728901568760E+00 2.9943722399413426E+00 2.9943715781533164E+00 + 2.9943709045904052E+00 2.9943702190467052E+00 2.9943695213127430E+00 + 2.9943688111754154E+00 2.9943680884179198E+00 2.9943673528196975E+00 + 2.9943666041563644E+00 2.9943658421996484E+00 2.9943650667173194E+00 + 2.9943642774731218E+00 2.9943634742267049E+00 2.9943626567335548E+00 + 2.9943618247449164E+00 2.9943609780077276E+00 2.9943601162645379E+00 + 2.9943592392534408E+00 2.9943583467079855E+00 2.9943574383571132E+00 + 2.9943565139250614E+00 2.9943555731312959E+00 2.9943546156904217E+00 + 2.9943536413121006E+00 2.9943526497009665E+00 2.9943516405565376E+00 + 2.9943506135731286E+00 2.9943495684397634E+00 2.9943485048400751E+00 + 2.9943474224522251E+00 2.9943463209487997E+00 2.9943451999967201E+00 + 2.9943440592571373E+00 2.9943428983853377E+00 2.9943417170306450E+00 + 2.9943405148363071E+00 2.9943392914394034E+00 2.9943380464707263E+00 + 2.9943367795546831E+00 2.9943354903091817E+00 2.9943341783455160E+00 + 2.9943328432682539E+00 2.9943314846751239E+00 2.9943301021568938E+00 + 2.9943286952972481E+00 2.9943272636726763E+00 2.9943258068523360E+00 + 2.9943243243979358E+00 2.9943228158635971E+00 2.9943212807957376E+00 + 2.9943197187329238E+00 2.9943181292057446E+00 2.9943165117366717E+00 + 2.9943148658399168E+00 2.9943131910212930E+00 2.9943114867780678E+00 + 2.9943097525988156E+00 2.9943079879632686E+00 2.9943061923421674E+00 + 2.9943043651970962E+00 2.9943025059803348E+00 2.9943006141346982E+00 + 2.9942986890933638E+00 2.9942967302797152E+00 2.9942947371071695E+00 + 2.9942927089790032E+00 2.9942906452881828E+00 2.9942885454171790E+00 + 2.9942864087377958E+00 2.9942842346109808E+00 2.9942820223866344E+00 + 2.9942797714034297E+00 2.9942774809886084E+00 2.9942751504577894E+00 + 2.9942727791147705E+00 2.9942703662513144E+00 2.9942679111469550E+00 + 2.9942654130687787E+00 2.9942628712712080E+00 2.9942602849957902E+00 + 2.9942576534709668E+00 2.9942549759118591E+00 2.9942522515200243E+00 + 2.9942494794832371E+00 2.9942466589752375E+00 2.9942437891555014E+00 + 2.9942408691689857E+00 2.9942378981458821E+00 2.9942348752013648E+00 + 2.9942317994353269E+00 2.9942286699321214E+00 2.9942254857602855E+00 + 2.9942222459722814E+00 2.9942189496042082E+00 2.9942155956755236E+00 + 2.9942121831887580E+00 2.9942087111292222E+00 2.9942051784647101E+00 + 2.9942015841451939E+00 2.9941979271025279E+00 2.9941942062501239E+00 + 2.9941904204826391E+00 2.9941865686756524E+00 2.9941826496853365E+00 + 2.9941786623481219E+00 2.9941746054803602E+00 2.9941704778779736E+00 + 2.9941662783161047E+00 2.9941620055487590E+00 2.9941576583084446E+00 + 2.9941532353057934E+00 2.9941487352291918E+00 2.9941441567443938E+00 + 2.9941394984941319E+00 2.9941347590977201E+00 2.9941299371506558E+00 + 2.9941250312241996E+00 2.9941200398649661E+00 2.9941149615944975E+00 + 2.9941097949088289E+00 2.9941045382780516E+00 2.9940991901458669E+00 + 2.9940937489291302E+00 2.9940882130173900E+00 2.9940825807724165E+00 + 2.9940768505277240E+00 2.9940710205880814E+00 2.9940650892290206E+00 + 2.9940590546963373E+00 2.9940529152055677E+00 2.9940466689414755E+00 + 2.9940403140575218E+00 2.9940338486753251E+00 2.9940272708841080E+00 + 2.9940205787401513E+00 2.9940137702662155E+00 2.9940068434509652E+00 + 2.9939997962483904E+00 2.9939926265772008E+00 2.9939853323202237E+00 + 2.9939779113237814E+00 2.9939703613970683E+00 2.9939626803115065E+00 + 2.9939548658001027E+00 2.9939469155567782E+00 2.9939388272357013E+00 + 2.9939305984506044E+00 2.9939222267740835E+00 2.9939137097368937E+00 + 2.9939050448272275E+00 2.9938962294899834E+00 2.9938872611260177E+00 + 2.9938781370913925E+00 2.9938688546965984E+00 2.9938594112057766E+00 + 2.9938498038359107E+00 2.9938400297560306E+00 2.9938300860863727E+00 + 2.9938199698975505E+00 2.9938096782096935E+00 2.9937992079915845E+00 + 2.9937885561597728E+00 2.9937777195776740E+00 2.9937666950546600E+00 + 2.9937554793451278E+00 2.9937440691475490E+00 2.9937324611035163E+00 + 2.9937206517967558E+00 2.9937086377521394E+00 2.9936964154346666E+00 + 2.9936839812484384E+00 2.9936713315356061E+00 2.9936584625753078E+00 + 2.9936453705825881E+00 2.9936320517072836E+00 2.9936185020329193E+00 + 2.9936047175755522E+00 2.9935906942826165E+00 2.9935764280317469E+00 + 2.9935619146295740E+00 2.9935471498105022E+00 2.9935321292354740E+00 + 2.9935168484906951E+00 2.9935013030863624E+00 2.9934854884553497E+00 + 2.9934693999518784E+00 2.9934530328501641E+00 2.9934363823430457E+00 + 2.9934194435405819E+00 2.9934022114686285E+00 2.9933846810673916E+00 + 2.9933668471899559E+00 2.9933487046007845E+00 2.9933302479741979E+00 + 2.9933114718928224E+00 2.9932923708460142E+00 2.9932729392282575E+00 + 2.9932531713375314E+00 2.9932330613736546E+00 2.9932126034365925E+00 + 2.9931917915247488E+00 2.9931706195332128E+00 2.9931490812519868E+00 + 2.9931271703641809E+00 2.9931048804441751E+00 2.9930822049557491E+00 + 2.9930591372501878E+00 2.9930356705643382E+00 2.9930117980186530E+00 + 2.9929875126151879E+00 2.9929628072355601E+00 2.9929376746388905E+00 + 2.9929121074596918E+00 2.9928860982057319E+00 2.9928596392558515E+00 + 2.9928327228577554E+00 2.9928053411257571E+00 2.9927774860384826E+00 + 2.9927491494365555E+00 2.9927203230202042E+00 2.9926909983468728E+00 + 2.9926611668287544E+00 2.9926308197303042E+00 2.9925999481656964E+00 + 2.9925685430962514E+00 2.9925365953278065E+00 2.9925040955080440E+00 + 2.9924710341237843E+00 2.9924374014982158E+00 2.9924031877880934E+00 + 2.9923683829808723E+00 2.9923329768918099E+00 2.9922969591610085E+00 + 2.9922603192504105E+00 2.9922230464407331E+00 2.9921851298283686E+00 + 2.9921465583222147E+00 2.9921073206404607E+00 2.9920674053073135E+00 + 2.9920268006496706E+00 2.9919854947937345E+00 2.9919434756615693E+00 + 2.9919007309675982E+00 2.9918572482150481E+00 2.9918130146923190E+00 + 2.9917680174693015E+00 2.9917222433936344E+00 2.9916756790868919E+00 + 2.9916283109406998E+00 2.9915801251128054E+00 2.9915311075230555E+00 + 2.9914812438493272E+00 2.9914305195233757E+00 2.9913789197266176E+00 + 2.9913264293858353E+00 2.9912730331688211E+00 2.9912187154799343E+00 + 2.9911634604555828E+00 2.9911072519596438E+00 2.9910500735787817E+00 + 2.9909919086177088E+00 2.9909327400943506E+00 2.9908725507349332E+00 + 2.9908113229689910E+00 2.9907490389242821E+00 2.9906856804216240E+00 + 2.9906212289696366E+00 2.9905556657593944E+00 2.9904889716589951E+00 + 2.9904211272080281E+00 2.9903521126119563E+00 2.9902819077363891E+00 + 2.9902104921012742E+00 2.9901378448749818E+00 2.9900639448682873E+00 + 2.9899887705282575E+00 2.9899122999320236E+00 2.9898345107804611E+00 + 2.9897553803917503E+00 2.9896748856948334E+00 2.9895930032227636E+00 + 2.9895097091059277E+00 2.9894249790651739E+00 2.9893387884048077E+00 + 2.9892511120054692E+00 2.9891619243169041E+00 2.9890711993505907E+00 + 2.9889789106722606E+00 2.9888850313942825E+00 2.9887895341679203E+00 + 2.9886923911754573E+00 2.9885935741221936E+00 2.9884930542282984E+00 + 2.9883908022205303E+00 2.9882867883238231E+00 2.9881809822527123E+00 + 2.9880733532026369E+00 2.9879638698410762E+00 2.9878525002985530E+00 + 2.9877392121594690E+00 2.9876239724527993E+00 2.9875067476426227E+00 + 2.9873875036184883E+00 2.9872662056856307E+00 2.9871428185550140E+00 + 2.9870173063331991E+00 2.9868896325120580E+00 2.9867597599583076E+00 + 2.9866276509028524E+00 2.9864932669299762E+00 2.9863565689663258E+00 + 2.9862175172697270E+00 2.9860760714177990E+00 2.9859321902963911E+00 + 2.9857858320878119E+00 2.9856369542588719E+00 2.9854855135487175E+00 + 2.9853314659564649E+00 2.9851747667286244E+00 2.9850153703463174E+00 + 2.9848532305122766E+00 2.9846883001376248E+00 2.9845205313284398E+00 + 2.9843498753720916E+00 2.9841762827233480E+00 2.9839997029902521E+00 + 2.9838200849197589E+00 2.9836373763831441E+00 2.9834515243611475E+00 + 2.9832624749288947E+00 2.9830701732405442E+00 2.9828745635136964E+00 + 2.9826755890135317E+00 2.9824731920366885E+00 2.9822673138948756E+00 + 2.9820578948982051E+00 2.9818448743382620E+00 2.9816281904708717E+00 + 2.9814077804986021E+00 2.9811835805529676E+00 2.9809555256763316E+00 + 2.9807235498035238E+00 2.9804875857431377E+00 2.9802475651585310E+00 + 2.9800034185485065E+00 2.9797550752276774E+00 2.9795024633065030E+00 + 2.9792455096709984E+00 2.9789841399621171E+00 2.9787182785547803E+00 + 2.9784478485365713E+00 2.9781727716860806E+00 2.9778929684508881E+00 + 2.9776083579251891E+00 2.9773188578270537E+00 2.9770243844753170E+00 + 2.9767248527660795E+00 2.9764201761488369E+00 2.9761102666022170E+00 + 2.9757950346093098E+00 2.9754743891326156E+00 2.9751482375885643E+00 + 2.9748164858216377E+00 2.9744790380780604E+00 2.9741357969790689E+00 + 2.9737866634937427E+00 2.9734315369114057E+00 2.9730703148135689E+00 + 2.9727028930454265E+00 2.9723291656868915E+00 2.9719490250231675E+00 + 2.9715623615148368E+00 2.9711690637674839E+00 2.9707690185008118E+00 + 2.9703621105172835E+00 2.9699482226702432E+00 2.9695272358315425E+00 + 2.9690990288586394E+00 2.9686634785611759E+00 2.9682204596670316E+00 + 2.9677698447878216E+00 2.9673115043838645E+00 2.9668453067285747E+00 + 2.9663711178723187E+00 2.9658888016056735E+00 2.9653982194221205E+00 + 2.9648992304801509E+00 2.9643916915647721E+00 2.9638754570484114E+00 + 2.9633503788512066E+00 2.9628163064006832E+00 2.9622730865907907E+00 + 2.9617205637403075E+00 2.9611585795506010E+00 2.9605869730627341E+00 + 2.9600055806138972E+00 2.9594142357931799E+00 2.9588127693966548E+00 + 2.9582010093817734E+00 2.9575787808210610E+00 2.9569459058550973E+00 + 2.9563022036447957E+00 2.9556474903229342E+00 2.9549815789449689E+00 + 2.9543042794390901E+00 2.9536153985555300E+00 2.9529147398150979E+00 + 2.9522021034569521E+00 2.9514772863855874E+00 2.9507400821170204E+00 + 2.9499902807241831E+00 2.9492276687814982E+00 2.9484520293086400E+00 + 2.9476631417134653E+00 2.9468607817340886E+00 2.9460447213801313E+00 + 2.9452147288730921E+00 2.9443705685858634E+00 2.9435120009813578E+00 + 2.9426387825502558E+00 2.9417506657478505E+00 2.9408473989299919E+00 + 2.9399287262881098E+00 2.9389943877833136E+00 2.9380441190795614E+00 + 2.9370776514758798E+00 2.9360947118376393E+00 2.9350950225268564E+00 + 2.9340783013315401E+00 2.9330442613940435E+00 2.9319926111384476E+00 + 2.9309230541969242E+00 2.9298352893351218E+00 2.9287290103765118E+00 + 2.9276039061257393E+00 2.9264596602909254E+00 2.9252959514049421E+00 + 2.9241124527456468E+00 2.9229088322550645E+00 2.9216847524575025E+00 + 2.9204398703766157E+00 2.9191738374513929E+00 2.9178862994510713E+00 + 2.9165768963889604E+00 2.9152452624351901E+00 2.9138910258283581E+00 + 2.9125138087860787E+00 2.9111132274144400E+00 2.9096888916163439E+00 + 2.9082404049987445E+00 2.9067673647787795E+00 2.9052693616887710E+00 + 2.9037459798801364E+00 2.9021967968261562E+00 2.9006213832236454E+00 + 2.8990193028934952E+00 2.8973901126801063E+00 2.8957333623497012E+00 + 2.8940485944875269E+00 2.8923353443939503E+00 2.8905931399794405E+00 + 2.8888215016584540E+00 2.8870199422422305E+00 2.8851879668304825E+00 + 2.8833250727020259E+00 2.8814307492043136E+00 2.8795044776419183E+00 + 2.8775457311639707E+00 2.8755539746505310E+00 2.8735286645979587E+00 + 2.8714692490032552E+00 2.8693751672474059E+00 2.8672458499777580E+00 + 2.8650807189894167E+00 2.8628791871057127E+00 2.8606406580577506E+00 + 2.8583645263630522E+00 2.8560501772033411E+00 2.8536969863014732E+00 + 2.8513043197975638E+00 2.8488715341243274E+00 2.8463979758816613E+00 + 2.8438829817105300E+00 2.8413258781661646E+00 2.8387259815906249E+00 + 2.8360825979847757E+00 2.8333950228797100E+00 2.8306625412076740E+00 + 2.8278844271725432E+00 2.8250599441199085E+00 2.8221883444068143E+00 + 2.8192688692712267E+00 2.8163007487012850E+00 2.8132832013044005E+00 + 2.8102154341762891E+00 2.8070966427699839E+00 2.8039260107649411E+00 + 2.8007027099362842E+00 2.7974259000243067E+00 2.7940947286042959E+00 + 2.7907083309567979E+00 2.7872658299383999E+00 2.7837663358531506E+00 + 2.7802089463247301E+00 2.7765927461694706E+00 2.7729168072703585E+00 + 2.7691801884521468E+00 2.7653819353577105E+00 2.7615210803257670E+00 + 2.7575966422701343E+00 2.7536076265606564E+00 2.7495530249059668E+00 + 2.7454318152382582E+00 2.7412429616002116E+00 2.7369854140343048E+00 + 2.7326581084746469E+00 2.7282599666415708E+00 2.7237898959391740E+00 + 2.7192467893560237E+00 2.7146295253692627E+00 2.7099369678523413E+00 + 2.7051679659866217E+00 2.7003213541771172E+00 2.6953959519726318E+00 + 2.6903905639905688E+00 2.6853039798467182E+00 2.6801349740902998E+00 + 2.6748823061446099E+00 2.6695447202535645E+00 2.6641209454345183E+00 + 2.6586096954376779E+00 2.6530096687125102E+00 2.6473195483815317E+00 + 2.6415380022218491E+00 2.6356636826549189E+00 2.6296952267449210E+00 + 2.6236312562062207E+00 2.6174703774203922E+00 2.6112111814632821E+00 + 2.6048522441426436E+00 2.5983921260468530E+00 2.5918293726052721E+00 + 2.5851625141608432E+00 2.5783900660554875E+00 2.5715105287289535E+00 + 2.5645223878317469E+00 2.5574241143528327E+00 2.5502141647627794E+00 + 2.5428909811731017E+00 2.5354529915125337E+00 2.5278986097210363E+00 + 2.5202262359623253E+00 2.5124342568558067E+00 2.5045210457287603E+00 + 2.4964849628897019E+00 2.4883243559238846E+00 2.4800375600118989E+00 + 2.4716228982724067E+00 2.4630786821300878E+00 2.4544032117098711E+00 + 2.4455947762586199E+00 2.4366516545954564E+00 2.4275721155919419E+00 + 2.4183544186834336E+00 2.4089968144128950E+00 2.3994975450085936E+00 + 2.3898548449970800E+00 2.3800669418529599E+00 2.3701320566869852E+00 + 2.3600484049740782E+00 2.3498141973229445E+00 2.3394276402890015E+00 + 2.3288869372324088E+00 2.3181902892230548E+00 2.3073358959944361E+00 + 2.2963219569484115E+00 2.2851466722129063E+00 2.2738082437547291E+00 + 2.2623048765497065E+00 2.2506347798124708E+00 2.2387961682882849E+00 + 2.2267872636093813E+00 2.2146062957184198E+00 2.2022515043617155E+00 + 2.1897211406550161E+00 2.1770134687246991E+00 2.1641267674273794E+00 + 2.1510593321510036E+00 2.1378094767006499E+00 2.1243755352723310E+00 + 2.1107558645182749E+00 2.0969488457072214E+00 2.0829528869834637E+00 + 2.0687664257284299E+00 2.0543879310288329E+00 2.0398159062554591E+00 + 2.0250488917568994E+00 2.0100854676726270E+00 1.9949242568700294E+00 + 1.9795639280101263E+00 1.9640031987469238E+00 1.9482408390654953E+00 + 1.9322756747640759E+00 1.9161065910856709E+00 1.8997325365048416E+00 + 1.8831525266755820E+00 1.8663656485463358E+00 1.8493710646485360E+00 + 1.8321680175651722E+00 1.8147558345861927E+00 1.7971339325577504E+00 + 1.7793018229326008E+00 1.7612591170291787E+00 1.7430055315071864E+00 + 1.7245408940677640E+00 1.7058651493866679E+00 1.6869783652891157E+00 + 1.6678807391753356E+00 1.6485726047060798E+00 1.6290544387578678E+00 + 1.6093268686578570E+00 1.5893906797087551E+00 1.5692468230145529E+00 + 1.5488964236180798E+00 1.5283407889620468E+00 1.5075814176853783E+00 + 1.4866200087672443E+00 1.4654584710316214E+00 1.4440989330255656E+00 + 1.4225437532849456E+00 1.4007955310019196E+00 1.3788571171087349E+00 + 1.3567316257932642E+00 1.3344224464619250E+00 1.3119332561663981E+00 + 1.2892680325111043E+00 1.2664310670588983E+00 1.2434269792531778E+00 + 1.2202607308752524E+00 1.1969376410563253E+00 1.1734634018643941E+00 + 1.1498440944868236E+00 1.1260862060302550E+00 1.1021966469602835E+00 + 1.0781827692039594E+00 1.0540523849392536E+00 1.0298137860962173E+00 + 1.0054757645955994E+00 9.8104763335161649E-01 9.5653924806636115E-01 + 9.3196102984443985E-01 9.0732398865746511E-01 8.8263974768888065E-01 + 8.5792056859095922E-01 8.3317937768666184E-01 8.0842979315037011E-01 + 7.8368615320270640E-01 7.5896354535577093E-01 7.3427783674650804E-01 + 7.0964570559730156E-01 6.8508467384405192E-01 6.6061314097371804E-01 + 6.3625041911448876E-01 6.1201676942345451E-01 5.8793343981823565E-01 + 5.6402270410046207E-01 5.4030790252099559E-01 5.1681348383822867E-01 + 4.9356504892279907E-01 4.7058939596393778E-01 4.4791456733442975E-01 + 4.2556989817338226E-01 4.0358606674798742E-01 3.8199514665753576E-01 + 3.6083066094535121E-01 3.4012763818641767E-01 3.1992267062097551E-01 + 3.0025397440685009E-01 2.8116145206569931E-01 2.6268675720112444E-01 + 2.4487336156933129E-01 2.2776662458571184E-01 2.1141386535387185E-01 + 1.9586443730642231E-01 1.8116980555016240E-01 1.6738362701148574E-01 + 1.5454201267748241E-01 1.4260445090645579E-01 1.3151378365058239E-01 + 1.2121597535473648E-01 1.1165997767238597E-01 1.0279759761435196E-01 + 9.4583369210594209E-02 8.6974428751369556E-02 7.9930393660759186E-02 + 7.3413245042684414E-02 6.7387213927087797E-02 6.1818671232039296E-02 + 5.6676021446144781E-02 5.1929600024833864E-02 4.7551574483942378E-02 + 4.3515849164494809E-02 3.9797973633756215E-02 3.6375054679498219E-02 + 3.3225671846976258E-02 3.0329796461378292E-02 2.7668714072443694E-02 + 2.5224950252552385E-02 2.2982199674840033E-02 2.0925258393756391E-02 + 1.9039959246946257E-02 1.7313110294348805E-02 1.5732436207956436E-02 + 1.4286522523719097E-02 1.2964762665588212E-02 1.1757307650633660E-02 + 1.0655018383513265E-02 9.6494204482864155E-03 8.7326613056219297E-03 + 7.8974698038205109E-03 7.1371179127277164E-03 6.4453845905306549E-03 + 5.8165216945825562E-03 5.2452218487598675E-03 4.7265881814070512E-03 + 4.2561058496381745E-03 3.8296152676252681E-03 3.4432869584896031E-03 + 3.0935979515051689E-03 2.7773096485072860E-03 2.4914470856568656E-03 + 2.2332795190268934E-03 2.0003022648377123E-03 1.7902197275606433E-03 + 1.6009295515198366E-03 1.4305078340421820E-03 1.2771953406222794E-03 + 1.1393846649750835E-03 1.0156082792348148E-03 9.0452742191710674E-04 + 8.0492177358536016E-04 7.1567987244584397E-04 6.3579022433403281E-04 + 5.6433306374230113E-04 5.0047272467230791E-04 4.4345058217105287E-04 + 3.9257852742478509E-04 3.4723294123745879E-04 3.0684913260827607E-04 + 2.7091621094531547E-04 2.3897236220770301E-04 2.1060050095724750E-04 + 1.8542427192173782E-04 1.6310437622603095E-04 1.4333519893448347E-04 + 1.2584171596970438E-04 1.1037665982898954E-04 9.6717924812276675E-05 + 8.4666193705375625E-05 7.4042769030956165E-05 6.4687593088966135E-05 + 5.6457442059441365E-05 4.9224280435826730E-05 4.2873762997812576E-05 + 3.7303872421161875E-05 3.2423681459981405E-05 2.8152229426343918E-05 + 2.4417503435010690E-05 2.1155515579219834E-05 1.8309467859015490E-05 + 1.5828997298318589E-05 1.3669494262785660E-05 1.1791487529309330E-05 + 1.0160090161619198E-05 8.7445007166108687E-06 7.5175547444950984E-06 + 6.4553219543001559E-06 5.5367447963008391E-06 4.7433145661583957E-06 + 4.0587814634577309E-06 3.4688953413750068E-06 2.9611741658093539E-06 + 2.5246974628106987E-06 2.1499222738231506E-06 1.8285193603766858E-06 + 1.5532276045779310E-06 1.3177247402006673E-06 1.1165127224324578E-06 + 9.4481620341555580E-07 7.9849272659993188E-07 6.7395338652406259E-07 + 5.6809282282768695E-07 4.7822752890603720E-07 4.0204155741596269E-07 + 3.3753879757682157E-07 2.8300108356474867E-07 2.3695146992852733E-07 + 1.9812207946930332E-07 1.6542599199625046E-07 1.3793269933063858E-07 + 1.1484670338060747E-07 9.5488880513138664E-08 7.9280277241099476E-08 + 6.5728039823666154E-08 5.4413214120925330E-08 4.4980182293521184E-08 + 3.7127530015526679E-08 3.0600162068598818E-08 2.5182505780403511E-08 + 2.0692661011095784E-08 1.6977372508942307E-08 1.3907715661422463E-08 + 1.1375400154821191E-08 9.2896080000035436E-09 7.5742929454210197E-09 + 6.1658776263428168E-09 5.0112930239392597E-09 4.0663120485569040E-09 + 3.2941354259987066E-09 2.6641936508308202E-09 2.1511336639029731E-09 + 1.7339631907624236E-09 1.3953294138018797E-09 1.1209119068906074E-09 + 8.9891259339477396E-10 7.1962794744367813E-10 5.7509078919414165E-10 + 4.5877086794783201E-10 3.6532501812129040E-10 2.9038904408461738E-10 + 2.3040466897877106E-10 1.8247589473422968E-10 1.4424998764526821E-10 + 1.1381904536519210E-10 8.9638734076427889E-11 7.0461323743564882E-11 + 5.5280607788095563E-11 4.3286682574667805E-11 3.3828891639076498E-11 + 2.6385518184779883E-11 2.0539044447778497E-11 1.5955994492924559E-11 + 1.2370543389941234E-11 9.5712152857249284E-12 7.3901097301306065E-12 + 5.6941932301573611E-12 4.3782743998132351E-12 3.3593487982710083E-12 + 2.5720557860666162E-12 1.9650363297339350E-12 1.4980192197109125E-12 + 1.1394949633748958E-12 8.6486279664753241E-13 6.5495776902364027E-13 + 4.9488249276561764E-13 3.7308257388811268E-13 2.8061651823905586E-13 + 2.1058049622186233E-13 1.5765614251202168E-13 1.1775588499830694E-13 + 8.7745407546983964E-14 6.5226975280137772E-14 4.8370671460663276E-14 + 3.5783262123745341E-14 2.6406541761449619E-14 1.9438721830990802E-14 + 1.4273786316562149E-14 1.0454822454130236E-14 7.6381948724937703E-15 + 5.5661123020812427E-15 4.0456736604770386E-15 2.9329038026746338E-15 + 2.1206219224906699E-15 1.5292462982209605E-15 1.0998428389990193E-15 + 7.8888372952098002E-16 5.6430596642173870E-16 4.0255533925128090E-16 + 2.8637546237052422E-16 2.0315857614022147E-16 1.4371876175682797E-16 + 1.0138190514646535E-16 7.1312514289420422E-17 5.0017148642616370E-17 + 3.4979167411723506E-17 2.4390839697394134E-17 1.6957431909623862E-17 + 1.1754351324584923E-17 8.1232837604510084E-18 5.5969055064112130E-18 + 3.8444714854184530E-18 2.6326095923481037E-18 1.7971575335670110E-18 + 1.2229940233437697E-18 8.2963973173188257E-19 5.6100946474539017E-19 + 3.7814170959039971E-19 2.5405686269802683E-19 1.7013251595093057E-19 + 1.1355643446862459E-19 7.5542625007498843E-20 5.0085966079721818E-20 + 3.3095682442174102E-20 2.1794427087179313E-20 1.4302956420484817E-20 + 9.3540504727263236E-21 6.0961313000668134E-21 3.9589195857382286E-21 + 2.5618502904214935E-21 1.6518565275483132E-21 1.0612534156149358E-21 + 6.7932976603560224E-22 4.3325481281511325E-22 2.7529205133834110E-22 + 1.7426800675889644E-22 1.0990094731229014E-22 6.9044791954011074E-23 + 4.3210763630502169E-23 2.6938298722230445E-23 1.6728274500985457E-23 + 1.0347139595191213E-23 6.3747468225549438E-24 3.9116879726553575E-24 + 2.3906121745633343E-24 1.4550656993808012E-24 8.8200164622697697E-25 + 5.3241972084273888E-25 3.2005256366396570E-25 1.9158225716790219E-25 + 1.1419321046188351E-25 6.7773574129139120E-26 4.0049726498749906E-26 + 2.3563597238968658E-26 1.3802894604611913E-26 8.0494986416952619E-27 + 4.6732709732261193E-27 2.7009081896324855E-27 1.5538837199775945E-27 + 8.8987707142665675E-28 5.0725594709256882E-28 2.8780119217247841E-28 + 1.6252077150301958E-28 9.1339450789028659E-29 5.1088528207365703E-29 + 2.8437142493211359E-29 1.5751721585607228E-29 8.6822323077969863E-30 + 4.7618720224817357E-30 2.5986540460011621E-30 1.4109933813936290E-30 + 7.6223419386271610E-31 4.0965649037073715E-31 2.1902822205756078E-31 + 1.1649568654254557E-31 6.1635324346652508E-32 3.2436947781813491E-32 + 1.6979345750252357E-32 8.8400078596288193E-33 4.5773589232490238E-33 + 2.3571521914382645E-33 1.2071192400522515E-33 6.1472658468199559E-34 + 3.1128794651323458E-34 1.5673649786004563E-34 7.8466514457574882E-35 + 3.9055631174993657E-35 1.9326203471350341E-35 9.5071720517845347E-36 + 4.6491785941473121E-36 2.2599516362423787E-36 1.0919377640357392E-36 + 5.2438474954653390E-37 2.5028398394813051E-37 1.1872006654770226E-37 + 5.5962912016347257E-38 2.6214309589527253E-38 1.2201553843448360E-38 + 5.6429592160988609E-39 2.5929252497854835E-39 1.1836967621670058E-39 + 5.3682676786937513E-40 2.4185037709552993E-40 1.0823151473363485E-40 + 4.8109442123675523E-41 2.1239856117090343E-41 9.3130583973411499E-42 + 4.0553395175328326E-42 1.7536005430689481E-42 7.5296863967898786E-43 + 3.2102574688220961E-43 1.3589183949586040E-43 5.7109845506035035E-44 + 2.3826816948330012E-44 9.8680564505669948E-45 4.0567726708218984E-45 + 1.6553347780859854E-45 6.7037772214975775E-46 2.6943504989415094E-46 + 1.0746359865442750E-46 4.2531744524654889E-47 1.6702484022833855E-47 + 6.5078311207709049E-48 2.5156480299062558E-48 9.6470091573569658E-49 + 3.6697399433090471E-49 1.3846754982060374E-49 5.1820421168212256E-50 + 1.9233748362286279E-50 7.0795651704384933E-51 2.5840341904664459E-51 + 9.3520765038015765E-52 3.3558676524798221E-52 1.1938703907140652E-52 + 4.2104980454724245E-53 1.4719795829281869E-53 5.1007021981224428E-54 + 1.7518043362010840E-54 5.9626043708508062E-55 2.0111673988679914E-55 + 6.7218539966177309E-56 2.2259996597089053E-56 7.3033572875850839E-57 + 2.3738181245963075E-57 7.6430291233075470E-58 2.4374865975571704E-58 + 7.6991504838037869E-59 2.4084196407320143E-59 7.4606205368821246E-60 + 2.2884191226560143E-60 6.9498930855400587E-61 2.0896158625297232E-61 + 6.2196239894781465E-62 1.8324596985354281E-62 5.3436791383978002E-63 + 1.5422141608409608E-63 4.4046340110705436E-64 1.2447953974675444E-64 + 3.4807354952453994E-65 9.6292085015891204E-66 2.6352269170912325E-66 + 7.1336921234196098E-67 1.9100309347786231E-67 5.0577415417130461E-68 + 1.3244125064632317E-68 3.4292587845126943E-69 8.7790444678785678E-70 + 2.2218954344760101E-70 5.5588948573714998E-71 1.3746767761994439E-71 + 3.3598397457805130E-72 8.1152260784427535E-73 1.9368891147395615E-73 + 4.5676064338468724E-74 1.0641670487848592E-74 2.4492059660470222E-75 + 5.5679081718488730E-76 1.2501631260413244E-76 2.7720784252696011E-77 + 6.0696635673424336E-78 1.3121993249315371E-78 2.8007002111702494E-79 + 5.9009283049675033E-80 1.2272017524142770E-80 2.5188845701739420E-81 + 5.1021325282282353E-82 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 1.7047086719477909E+00 1.7047086719509765E+00 1.7047086719606162E+00 + 1.7047086719768838E+00 1.7047086719999509E+00 1.7047086720299882E+00 + 1.7047086720671727E+00 1.7047086721116838E+00 1.7047086721637055E+00 + 1.7047086722234248E+00 1.7047086722910305E+00 1.7047086723667195E+00 + 1.7047086724506892E+00 1.7047086725431415E+00 1.7047086726442842E+00 + 1.7047086727543241E+00 1.7047086728734784E+00 1.7047086730019658E+00 + 1.7047086731400072E+00 1.7047086732878325E+00 1.7047086734456716E+00 + 1.7047086736137609E+00 1.7047086737923416E+00 1.7047086739816599E+00 + 1.7047086741819653E+00 1.7047086743935134E+00 1.7047086746165643E+00 + 1.7047086748513829E+00 1.7047086750982399E+00 1.7047086753574112E+00 + 1.7047086756291776E+00 1.7047086759138250E+00 1.7047086762116457E+00 + 1.7047086765229371E+00 1.7047086768480022E+00 1.7047086771871500E+00 + 1.7047086775406957E+00 1.7047086779089604E+00 1.7047086782922720E+00 + 1.7047086786909624E+00 1.7047086791053727E+00 1.7047086795358484E+00 + 1.7047086799827429E+00 1.7047086804464155E+00 1.7047086809272332E+00 + 1.7047086814255690E+00 1.7047086819418040E+00 1.7047086824763256E+00 + 1.7047086830295284E+00 1.7047086836018155E+00 1.7047086841935974E+00 + 1.7047086848052924E+00 1.7047086854373255E+00 1.7047086860901308E+00 + 1.7047086867641514E+00 1.7047086874598372E+00 1.7047086881776470E+00 + 1.7047086889180481E+00 1.7047086896815171E+00 1.7047086904685398E+00 + 1.7047086912796103E+00 1.7047086921152321E+00 1.7047086929759183E+00 + 1.7047086938621916E+00 1.7047086947745866E+00 1.7047086957136421E+00 + 1.7047086966799128E+00 1.7047086976739616E+00 1.7047086986963613E+00 + 1.7047086997476966E+00 1.7047087008285622E+00 1.7047087019395639E+00 + 1.7047087030813197E+00 1.7047087042544578E+00 1.7047087054596177E+00 + 1.7047087066974538E+00 1.7047087079686287E+00 1.7047087092738200E+00 + 1.7047087106137166E+00 1.7047087119890205E+00 1.7047087134004475E+00 + 1.7047087148487234E+00 1.7047087163345922E+00 1.7047087178588090E+00 + 1.7047087194221415E+00 1.7047087210253744E+00 1.7047087226693052E+00 + 1.7047087243547456E+00 1.7047087260825240E+00 1.7047087278534823E+00 + 1.7047087296684784E+00 1.7047087315283873E+00 1.7047087334340980E+00 + 1.7047087353865171E+00 1.7047087373865666E+00 1.7047087394351874E+00 + 1.7047087415333346E+00 1.7047087436819841E+00 1.7047087458821280E+00 + 1.7047087481347762E+00 1.7047087504409566E+00 1.7047087528017180E+00 + 1.7047087552181277E+00 1.7047087576912692E+00 1.7047087602222508E+00 + 1.7047087628121964E+00 1.7047087654622548E+00 1.7047087681735913E+00 + 1.7047087709473956E+00 1.7047087737848778E+00 1.7047087766872684E+00 + 1.7047087796558249E+00 1.7047087826918228E+00 1.7047087857965624E+00 + 1.7047087889713681E+00 1.7047087922175874E+00 1.7047087955365934E+00 + 1.7047087989297833E+00 1.7047088023985790E+00 1.7047088059444293E+00 + 1.7047088095688088E+00 1.7047088132732171E+00 1.7047088170591840E+00 + 1.7047088209282646E+00 1.7047088248820428E+00 1.7047088289221310E+00 + 1.7047088330501718E+00 1.7047088372678336E+00 1.7047088415768197E+00 + 1.7047088459788620E+00 1.7047088504757222E+00 1.7047088550691949E+00 + 1.7047088597611086E+00 1.7047088645533215E+00 1.7047088694477277E+00 + 1.7047088744462540E+00 1.7047088795508620E+00 1.7047088847635485E+00 + 1.7047088900863476E+00 1.7047088955213276E+00 1.7047089010705951E+00 + 1.7047089067362953E+00 1.7047089125206079E+00 1.7047089184257569E+00 + 1.7047089244540039E+00 1.7047089306076497E+00 1.7047089368890371E+00 + 1.7047089433005520E+00 1.7047089498446211E+00 1.7047089565237163E+00 + 1.7047089633403529E+00 1.7047089702970892E+00 1.7047089773965323E+00 + 1.7047089846413335E+00 1.7047089920341929E+00 1.7047089995778595E+00 + 1.7047090072751274E+00 1.7047090151288451E+00 1.7047090231419089E+00 + 1.7047090313172670E+00 1.7047090396579225E+00 1.7047090481669283E+00 + 1.7047090568473937E+00 1.7047090657024855E+00 1.7047090747354217E+00 + 1.7047090839494812E+00 1.7047090933480009E+00 1.7047091029343753E+00 + 1.7047091127120599E+00 1.7047091226845730E+00 1.7047091328554942E+00 + 1.7047091432284662E+00 1.7047091538071961E+00 1.7047091645954582E+00 + 1.7047091755970938E+00 1.7047091868160100E+00 1.7047091982561851E+00 + 1.7047092099216692E+00 1.7047092218165789E+00 1.7047092339451098E+00 + 1.7047092463115288E+00 1.7047092589201780E+00 1.7047092717754779E+00 + 1.7047092848819247E+00 1.7047092982440979E+00 1.7047093118666545E+00 + 1.7047093257543358E+00 1.7047093399119662E+00 1.7047093543444551E+00 + 1.7047093690567996E+00 1.7047093840540839E+00 1.7047093993414821E+00 + 1.7047094149242619E+00 1.7047094308077795E+00 1.7047094469974904E+00 + 1.7047094634989430E+00 1.7047094803177858E+00 1.7047094974597641E+00 + 1.7047095149307288E+00 1.7047095327366291E+00 1.7047095508835222E+00 + 1.7047095693775709E+00 1.7047095882250480E+00 1.7047096074323345E+00 + 1.7047096270059243E+00 1.7047096469524277E+00 1.7047096672785680E+00 + 1.7047096879911905E+00 1.7047097090972587E+00 1.7047097306038572E+00 + 1.7047097525181985E+00 1.7047097748476199E+00 1.7047097975995893E+00 + 1.7047098207817035E+00 1.7047098444016935E+00 1.7047098684674282E+00 + 1.7047098929869109E+00 1.7047099179682912E+00 1.7047099434198558E+00 + 1.7047099693500407E+00 1.7047099957674261E+00 1.7047100226807494E+00 + 1.7047100500988943E+00 1.7047100780309052E+00 1.7047101064859831E+00 + 1.7047101354734895E+00 1.7047101650029521E+00 1.7047101950840644E+00 + 1.7047102257266906E+00 1.7047102569408679E+00 1.7047102887368073E+00 + 1.7047103211249020E+00 1.7047103541157240E+00 1.7047103877200334E+00 + 1.7047104219487763E+00 1.7047104568130924E+00 1.7047104923243139E+00 + 1.7047105284939759E+00 1.7047105653338104E+00 1.7047106028557575E+00 + 1.7047106410719641E+00 1.7047106799947935E+00 1.7047107196368216E+00 + 1.7047107600108447E+00 1.7047108011298850E+00 1.7047108430071902E+00 + 1.7047108856562414E+00 1.7047109290907532E+00 1.7047109733246804E+00 + 1.7047110183722234E+00 1.7047110642478287E+00 1.7047111109661981E+00 + 1.7047111585422863E+00 1.7047112069913097E+00 1.7047112563287550E+00 + 1.7047113065703743E+00 1.7047113577321962E+00 1.7047114098305305E+00 + 1.7047114628819680E+00 1.7047115169033946E+00 1.7047115719119852E+00 + 1.7047116279252188E+00 1.7047116849608761E+00 1.7047117430370502E+00 + 1.7047118021721483E+00 1.7047118623848989E+00 1.7047119236943582E+00 + 1.7047119861199127E+00 1.7047120496812878E+00 1.7047121143985533E+00 + 1.7047121802921286E+00 1.7047122473827880E+00 1.7047123156916675E+00 + 1.7047123852402739E+00 1.7047124560504856E+00 1.7047125281445641E+00 + 1.7047126015451577E+00 1.7047126762753084E+00 1.7047127523584622E+00 + 1.7047128298184704E+00 1.7047129086795996E+00 1.7047129889665418E+00 + 1.7047130707044160E+00 1.7047131539187788E+00 1.7047132386356323E+00 + 1.7047133248814297E+00 1.7047134126830858E+00 1.7047135020679831E+00 + 1.7047135930639816E+00 1.7047136856994236E+00 1.7047137800031453E+00 + 1.7047138760044853E+00 1.7047139737332897E+00 1.7047140732199286E+00 + 1.7047141744952934E+00 1.7047142775908173E+00 1.7047143825384796E+00 + 1.7047144893708126E+00 1.7047145981209155E+00 1.7047147088224641E+00 + 1.7047148215097172E+00 1.7047149362175293E+00 1.7047150529813613E+00 + 1.7047151718372893E+00 1.7047152928220159E+00 1.7047154159728806E+00 + 1.7047155413278738E+00 1.7047156689256431E+00 1.7047157988055079E+00 + 1.7047159310074698E+00 1.7047160655722260E+00 1.7047162025411797E+00 + 1.7047163419564511E+00 1.7047164838608946E+00 1.7047166282981052E+00 + 1.7047167753124379E+00 1.7047169249490119E+00 1.7047170772537352E+00 + 1.7047172322733091E+00 1.7047173900552455E+00 1.7047175506478807E+00 + 1.7047177141003875E+00 1.7047178804627952E+00 1.7047180497859991E+00 + 1.7047182221217767E+00 1.7047183975228013E+00 1.7047185760426642E+00 + 1.7047187577358816E+00 1.7047189426579177E+00 1.7047191308651959E+00 + 1.7047193224151191E+00 1.7047195173660841E+00 1.7047197157775025E+00 + 1.7047199177098107E+00 1.7047201232244960E+00 1.7047203323841109E+00 + 1.7047205452522900E+00 1.7047207618937725E+00 1.7047209823744176E+00 + 1.7047212067612254E+00 1.7047214351223579E+00 1.7047216675271564E+00 + 1.7047219040461630E+00 1.7047221447511431E+00 1.7047223897151036E+00 + 1.7047226390123154E+00 1.7047228927183367E+00 1.7047231509100327E+00 + 1.7047234136655991E+00 1.7047236810645874E+00 1.7047239531879235E+00 + 1.7047242301179368E+00 1.7047245119383794E+00 1.7047247987344534E+00 + 1.7047250905928373E+00 1.7047253876017077E+00 1.7047256898507679E+00 + 1.7047259974312727E+00 1.7047263104360573E+00 1.7047266289595600E+00 + 1.7047269530978579E+00 1.7047272829486850E+00 1.7047276186114699E+00 + 1.7047279601873586E+00 1.7047283077792477E+00 1.7047286614918131E+00 + 1.7047290214315407E+00 1.7047293877067593E+00 1.7047297604276692E+00 + 1.7047301397063788E+00 1.7047305256569316E+00 1.7047309183953450E+00 + 1.7047313180396431E+00 1.7047317247098874E+00 1.7047321385282168E+00 + 1.7047325596188827E+00 1.7047329881082827E+00 1.7047334241249994E+00 + 1.7047338677998374E+00 1.7047343192658613E+00 1.7047347786584375E+00 + 1.7047352461152707E+00 1.7047357217764421E+00 1.7047362057844591E+00 + 1.7047366982842871E+00 1.7047371994233973E+00 1.7047377093518095E+00 + 1.7047382282221328E+00 1.7047387561896155E+00 1.7047392934121850E+00 + 1.7047398400504983E+00 1.7047403962679872E+00 1.7047409622309053E+00 + 1.7047415381083786E+00 1.7047421240724516E+00 1.7047427202981433E+00 + 1.7047433269634913E+00 1.7047439442496084E+00 1.7047445723407364E+00 + 1.7047452114242958E+00 1.7047458616909450E+00 1.7047465233346322E+00 + 1.7047471965526517E+00 1.7047478815457080E+00 1.7047485785179668E+00 + 1.7047492876771200E+00 1.7047500092344416E+00 1.7047507434048530E+00 + 1.7047514904069858E+00 1.7047522504632429E+00 1.7047530237998654E+00 + 1.7047538106469982E+00 1.7047546112387579E+00 1.7047554258133004E+00 + 1.7047562546128880E+00 1.7047570978839677E+00 1.7047579558772326E+00 + 1.7047588288477036E+00 1.7047597170547988E+00 1.7047606207624126E+00 + 1.7047615402389884E+00 1.7047624757576032E+00 1.7047634275960406E+00 + 1.7047643960368752E+00 1.7047653813675550E+00 1.7047663838804847E+00 + 1.7047674038731107E+00 1.7047684416480076E+00 1.7047694975129692E+00 + 1.7047705717810913E+00 1.7047716647708702E+00 1.7047727768062928E+00 + 1.7047739082169302E+00 1.7047750593380353E+00 1.7047762305106371E+00 + 1.7047774220816452E+00 1.7047786344039464E+00 1.7047798678365091E+00 + 1.7047811227444891E+00 1.7047823994993316E+00 1.7047836984788869E+00 + 1.7047850200675099E+00 1.7047863646561829E+00 1.7047877326426206E+00 + 1.7047891244313933E+00 1.7047905404340373E+00 1.7047919810691776E+00 + 1.7047934467626535E+00 1.7047949379476364E+00 1.7047964550647581E+00 + 1.7047979985622415E+00 1.7047995688960267E+00 1.7048011665299045E+00 + 1.7048027919356543E+00 1.7048044455931783E+00 1.7048061279906395E+00 + 1.7048078396246082E+00 1.7048095810002026E+00 1.7048113526312367E+00 + 1.7048131550403682E+00 1.7048149887592523E+00 1.7048168543286968E+00 + 1.7048187522988132E+00 1.7048206832291846E+00 1.7048226476890225E+00 + 1.7048246462573331E+00 1.7048266795230864E+00 1.7048287480853861E+00 + 1.7048308525536437E+00 1.7048329935477553E+00 1.7048351716982806E+00 + 1.7048373876466263E+00 1.7048396420452323E+00 1.7048419355577609E+00 + 1.7048442688592893E+00 1.7048466426365021E+00 1.7048490575878936E+00 + 1.7048515144239722E+00 1.7048540138674582E+00 1.7048565566535021E+00 + 1.7048591435298908E+00 1.7048617752572686E+00 1.7048644526093539E+00 + 1.7048671763731644E+00 1.7048699473492452E+00 1.7048727663519010E+00 + 1.7048756342094298E+00 1.7048785517643608E+00 1.7048815198737051E+00 + 1.7048845394091934E+00 1.7048876112575391E+00 1.7048907363206831E+00 + 1.7048939155160616E+00 1.7048971497768697E+00 1.7049004400523309E+00 + 1.7049037873079678E+00 1.7049071925258867E+00 1.7049106567050560E+00 + 1.7049141808615973E+00 1.7049177660290762E+00 1.7049214132588013E+00 + 1.7049251236201304E+00 1.7049288982007711E+00 1.7049327381071047E+00 + 1.7049366444644938E+00 1.7049406184176150E+00 1.7049446611307850E+00 + 1.7049487737882962E+00 1.7049529575947566E+00 1.7049572137754387E+00 + 1.7049615435766308E+00 1.7049659482659940E+00 1.7049704291329284E+00 + 1.7049749874889435E+00 1.7049796246680364E+00 1.7049843420270714E+00 + 1.7049891409461724E+00 1.7049940228291200E+00 1.7049989891037500E+00 + 1.7050040412223704E+00 1.7050091806621708E+00 1.7050144089256500E+00 + 1.7050197275410448E+00 1.7050251380627712E+00 1.7050306420718662E+00 + 1.7050362411764408E+00 1.7050419370121443E+00 1.7050477312426280E+00 + 1.7050536255600233E+00 1.7050596216854246E+00 1.7050657213693849E+00 + 1.7050719263924101E+00 1.7050782385654744E+00 1.7050846597305325E+00 + 1.7050911917610456E+00 1.7050978365625200E+00 1.7051045960730500E+00 + 1.7051114722638643E+00 1.7051184671398969E+00 1.7051255827403524E+00 + 1.7051328211392884E+00 1.7051401844462075E+00 1.7051476748066536E+00 + 1.7051552944028281E+00 1.7051630454542053E+00 1.7051709302181648E+00 + 1.7051789509906341E+00 1.7051871101067397E+00 1.7051954099414679E+00 + 1.7052038529103406E+00 1.7052124414701022E+00 1.7052211781194095E+00 + 1.7052300653995454E+00 1.7052391058951359E+00 1.7052483022348826E+00 + 1.7052576570923021E+00 1.7052671731864883E+00 1.7052768532828744E+00 + 1.7052867001940175E+00 1.7052967167803901E+00 1.7053069059511874E+00 + 1.7053172706651494E+00 1.7053278139313877E+00 1.7053385388102409E+00 + 1.7053494484141305E+00 1.7053605459084369E+00 1.7053718345123885E+00 + 1.7053833174999646E+00 1.7053949982008181E+00 1.7054068800012043E+00 + 1.7054189663449322E+00 1.7054312607343269E+00 1.7054437667312112E+00 + 1.7054564879579024E+00 1.7054694280982221E+00 1.7054825908985241E+00 + 1.7054959801687419E+00 1.7055095997834504E+00 1.7055234536829411E+00 + 1.7055375458743232E+00 1.7055518804326371E+00 1.7055664615019821E+00 + 1.7055812932966750E+00 1.7055963801024092E+00 1.7056117262774506E+00 + 1.7056273362538368E+00 1.7056432145386098E+00 1.7056593657150569E+00 + 1.7056757944439753E+00 1.7056925054649623E+00 1.7057095035977157E+00 + 1.7057267937433644E+00 1.7057443808858135E+00 1.7057622700931137E+00 + 1.7057804665188507E+00 1.7057989754035623E+00 1.7058178020761667E+00 + 1.7058369519554244E+00 1.7058564305514159E+00 1.7058762434670436E+00 + 1.7058963963995639E+00 1.7059168951421320E+00 1.7059377455853819E+00 + 1.7059589537190178E+00 1.7059805256334484E+00 1.7060024675214265E+00 + 1.7060247856797297E+00 1.7060474865108581E+00 1.7060705765247626E+00 + 1.7060940623405962E+00 1.7061179506884940E+00 1.7061422484113840E+00 + 1.7061669624668132E+00 1.7061920999288225E+00 1.7062176679898251E+00 + 1.7062436739625355E+00 1.7062701252819095E+00 1.7062970295071309E+00 + 1.7063243943236091E+00 1.7063522275450251E+00 1.7063805371153935E+00 + 1.7064093311111634E+00 1.7064386177433479E+00 1.7064684053596844E+00 + 1.7064987024468277E+00 1.7065295176325743E+00 1.7065608596881248E+00 + 1.7065927375303671E+00 1.7066251602242053E+00 1.7066581369849165E+00 + 1.7066916771805416E+00 1.7067257903343116E+00 1.7067604861271093E+00 + 1.7067957743999629E+00 1.7068316651565796E+00 1.7068681685659122E+00 + 1.7069052949647610E+00 1.7069430548604145E+00 1.7069814589333292E+00 + 1.7070205180398348E+00 1.7070602432148951E+00 1.7071006456748925E+00 + 1.7071417368204553E+00 1.7071835282393220E+00 1.7072260317092540E+00 + 1.7072692592009666E+00 1.7073132228811263E+00 1.7073579351153598E+00 + 1.7074034084713274E+00 1.7074496557218239E+00 1.7074966898479176E+00 + 1.7075445240421405E+00 1.7075931717117088E+00 1.7076426464817975E+00 + 1.7076929621988395E+00 1.7077441329338829E+00 1.7077961729859783E+00 + 1.7078490968856159E+00 1.7079029193982007E+00 1.7079576555275713E+00 + 1.7080133205195613E+00 1.7080699298656035E+00 1.7081274993063769E+00 + 1.7081860448354962E+00 1.7082455827032432E+00 1.7083061294203461E+00 + 1.7083677017617922E+00 1.7084303167706925E+00 1.7084939917621871E+00 + 1.7085587443273931E+00 1.7086245923373866E+00 1.7086915539472476E+00 + 1.7087596476001243E+00 1.7088288920313568E+00 1.7088993062726339E+00 + 1.7089709096561947E+00 1.7090437218190697E+00 1.7091177627073697E+00 + 1.7091930525806056E+00 1.7092696120160538E+00 1.7093474619131670E+00 + 1.7094266234980091E+00 1.7095071183277493E+00 1.7095889682951746E+00 + 1.7096721956332561E+00 1.7097568229197408E+00 1.7098428730817856E+00 + 1.7099303694006267E+00 1.7100193355162785E+00 1.7101097954322724E+00 + 1.7102017735204225E+00 1.7102952945256236E+00 1.7103903835706868E+00 + 1.7104870661611935E+00 1.7105853681903793E+00 1.7106853159440525E+00 + 1.7107869361055230E+00 1.7108902557605705E+00 1.7109953024024218E+00 + 1.7111021039367487E+00 1.7112106886866896E+00 1.7113210853978886E+00 + 1.7114333232435341E+00 1.7115474318294246E+00 1.7116634411990350E+00 + 1.7117813818385927E+00 1.7119012846821533E+00 1.7120231811166866E+00 + 1.7121471029871498E+00 1.7122730826015657E+00 1.7124011527360870E+00 + 1.7125313466400516E+00 1.7126636980410268E+00 1.7127982411498288E+00 + 1.7129350106655243E+00 1.7130740417804076E+00 1.7132153701849417E+00 + 1.7133590320726753E+00 1.7135050641451064E+00 1.7136535036165159E+00 + 1.7138043882187457E+00 1.7139577562059252E+00 1.7141136463591276E+00 + 1.7142720979909860E+00 1.7144331509502100E+00 1.7145968456260454E+00 + 1.7147632229526422E+00 1.7149323244133292E+00 1.7151041920447980E+00 + 1.7152788684411808E+00 1.7154563967580136E+00 1.7156368207160786E+00 + 1.7158201846051244E+00 1.7160065332874381E+00 1.7161959122012858E+00 + 1.7163883673641842E+00 1.7165839453760185E+00 1.7167826934219750E+00 + 1.7169846592752978E+00 1.7171898912998427E+00 1.7173984384524286E+00 + 1.7176103502849651E+00 1.7178256769463516E+00 1.7180444691841272E+00 + 1.7182667783458754E+00 1.7184926563803442E+00 1.7187221558382870E+00 + 1.7189553298730071E+00 1.7191922322405802E+00 1.7194329172997531E+00 + 1.7196774400114865E+00 1.7199258559381456E+00 1.7201782212422962E+00 + 1.7204345926851075E+00 1.7206950276243362E+00 1.7209595840118705E+00 + 1.7212283203908096E+00 1.7215012958920739E+00 1.7217785702304986E+00 + 1.7220602037004196E+00 1.7223462571706969E+00 1.7226367920791696E+00 + 1.7229318704265146E+00 1.7232315547694859E+00 1.7235359082134916E+00 + 1.7238449944045020E+00 1.7241588775202488E+00 1.7244776222606848E+00 + 1.7248012938376769E+00 1.7251299579639008E+00 1.7254636808408965E+00 + 1.7258025291462704E+00 1.7261465700199783E+00 1.7264958710496858E+00 + 1.7268505002551406E+00 1.7272105260715398E+00 1.7275760173318335E+00 + 1.7279470432479369E+00 1.7283236733908105E+00 1.7287059776693372E+00 + 1.7290940263079932E+00 1.7294878898232287E+00 1.7298876389985289E+00 + 1.7302933448581048E+00 1.7307050786391480E+00 1.7311229117626183E+00 + 1.7315469158024859E+00 1.7319771624533959E+00 1.7324137234966692E+00 + 1.7328566707646076E+00 1.7333060761030192E+00 1.7337620113319137E+00 + 1.7342245482042931E+00 1.7346937583629805E+00 1.7351697132954051E+00 + 1.7356524842862802E+00 1.7361421423680969E+00 1.7366387582693590E+00 + 1.7371424023604802E+00 1.7376531445972658E+00 1.7381710544618878E+00 + 1.7386962009012774E+00 1.7392286522628495E+00 1.7397684762274570E+00 + 1.7403157397394922E+00 1.7408705089340408E+00 1.7414328490609876E+00 + 1.7420028244059746E+00 1.7425804982081072E+00 1.7431659325743134E+00 + 1.7437591883902299E+00 1.7443603252275259E+00 1.7449694012475288E+00 + 1.7455864731010564E+00 1.7462115958243207E+00 1.7468448227307856E+00 + 1.7474862052988676E+00 1.7481357930553159E+00 1.7487936334541887E+00 + 1.7494597717512479E+00 1.7501342508736664E+00 1.7508171112848834E+00 + 1.7515083908444862E+00 1.7522081246629575E+00 1.7529163449511478E+00 + 1.7536330808643055E+00 1.7543583583405287E+00 1.7550921999334730E+00 + 1.7558346246391379E+00 1.7565856477165964E+00 1.7573452805024663E+00 + 1.7581135302189861E+00 1.7588903997754937E+00 1.7596758875631424E+00 + 1.7604699872426817E+00 1.7612726875251048E+00 1.7620839719449866E+00 + 1.7629038186263286E+00 1.7637322000407083E+00 1.7645690827575460E+00 + 1.7654144271863017E+00 1.7662681873103852E+00 1.7671303104126026E+00 + 1.7680007367919175E+00 1.7688793994713359E+00 1.7697662238967085E+00 + 1.7706611276262390E+00 1.7715640200104958E+00 1.7724748018627112E+00 + 1.7733933651191771E+00 1.7743195924895054E+00 1.7752533570965572E+00 + 1.7761945221058286E+00 1.7771429403440926E+00 1.7780984539070648E+00 + 1.7790608937559211E+00 1.7800300793024368E+00 1.7810058179825572E+00 + 1.7819879048181992E+00 1.7829761219670808E+00 1.7839702382603984E+00 + 1.7849700087281595E+00 1.7859751741119740E+00 1.7869854603651607E+00 + 1.7880005781399551E+00 1.7890202222616991E+00 1.7900440711898187E+00 + 1.7910717864654748E+00 1.7921030121457264E+00 1.7931373742240906E+00 + 1.7941744800373951E+00 1.7952139176587891E+00 1.7962552552768642E+00 + 1.7972980405607828E+00 1.7983418000113627E+00 1.7993860382980909E+00 + 1.8004302375820256E+00 1.8014738568245965E+00 1.8025163310823180E+00 + 1.8035570707874682E+00 1.8045954610147792E+00 1.8056308607342573E+00 + 1.8066626020502383E+00 1.8076899894268297E+00 1.8087122988999327E+00 + 1.8097287772760475E+00 1.8107386413181243E+00 1.8117410769187432E+00 + 1.8127352382609567E+00 1.8137202469671583E+00 1.8146951912364122E+00 + 1.8156591249706859E+00 1.8166110668905169E+00 1.8175499996406639E+00 + 1.8184748688863850E+00 1.8193845824009969E+00 1.8202780091454758E+00 + 1.8211539783408899E+00 1.8220112785345446E+00 1.8228486566607758E+00 + 1.8236648170974055E+00 1.8244584207189596E+00 1.8252280839478037E+00 + 1.8259723778044716E+00 1.8266898269585157E+00 1.8273789087813188E+00 + 1.8280380524023940E+00 1.8286656377708130E+00 1.8292599947234631E+00 + 1.8298194020620102E+00 1.8303420866404778E+00 1.8308262224655296E+00 + 1.8312699298116186E+00 1.8316712743533163E+00 1.8320282663172449E+00 + 1.8323388596561743E+00 1.8326009512479691E+00 1.8328123801222385E+00 + 1.8329709267176302E+00 1.8330743121729245E+00 1.8331201976551696E+00 + 1.8331061837282960E+00 1.8330298097657896E+00 1.8328885534111519E+00 + 1.8326798300900644E+00 1.8324009925783173E+00 1.8320493306297396E+00 + 1.8316220706685455E+00 1.8311163755506650E+00 1.8305293443988300E+00 + 1.8298580125163306E+00 1.8290993513845570E+00 1.8282502687496145E+00 + 1.8273076088034534E+00 1.8262681524651747E+00 1.8251286177682935E+00 + 1.8238856603599591E+00 1.8225358741182747E+00 1.8210757918940237E+00 + 1.8195018863832917E+00 1.8178105711375916E+00 1.8159982017182850E+00 + 1.8140610770022099E+00 1.8119954406455483E+00 1.8097974827131242E+00 + 1.8074633414803858E+00 1.8049891054154532E+00 1.8023708153486873E+00 + 1.7996044668372848E+00 1.7966860127324853E+00 1.7936113659569632E+00 + 1.7903764025000173E+00 1.7869769646381366E+00 1.7834088643884769E+00 + 1.7796678872027343E+00 1.7757497959087643E+00 1.7716503349071935E+00 + 1.7673652346301054E+00 1.7628902162686404E+00 1.7582209967761564E+00 + 1.7533532941532750E+00 1.7482828330208133E+00 1.7430053504862413E+00 + 1.7375166023088426E+00 1.7318123693682961E+00 1.7258884644408570E+00 + 1.7197407392866935E+00 1.7133650920512993E+00 1.7067574749831549E+00 + 1.6999139024690155E+00 1.6928304593873658E+00 1.6855033097795848E+00 + 1.6779287058373948E+00 1.6701029972040564E+00 1.6620226405855700E+00 + 1.6536842096669340E+00 1.6450844053270772E+00 1.6362200661447421E+00 + 1.6270881791860010E+00 1.6176858910624963E+00 1.6080105192477723E+00 + 1.5980595636373223E+00 1.5878307183359792E+00 1.5773218836544356E+00 + 1.5665311782944775E+00 1.5554569517004426E+00 1.5440977965521907E+00 + 1.5324525613724345E+00 1.5205203632190620E+00 1.5083006004304547E+00 + 1.4957929653893491E+00 1.4829974572682492E+00 1.4699143947166387E+00 + 1.4565444284476876E+00 1.4428885536794094E+00 1.4289481223824632E+00 + 1.4147248552841936E+00 1.4002208535756857E+00 1.3854386102660203E+00 + 1.3703810211253238E+00 1.3550513951555703E+00 1.3394534645257508E+00 + 1.3235913939056729E+00 1.3074697891303946E+00 1.2910937051254430E+00 + 1.2744686530209721E+00 1.2576006063815706E+00 1.2404960064771111E+00 + 1.2231617665188792E+00 1.2056052747847361E+00 1.1878343965565834E+00 + 1.1698574747935520E+00 1.1516833294649580E+00 1.1333212554678944E+00 + 1.1147810190560554E+00 1.0960728527084371E+00 1.0772074483691734E+00 + 1.0581959489932906E+00 1.0390499383370031E+00 1.0197814289360132E+00 + 1.0004028482207379E+00 9.8092702272356580E-01 9.6136716034030922E-01 + 9.4173683061593716E-01 9.2204994303316123E-01 9.0232072329218616E-01 + 8.8256368758006121E-01 8.6279361483935846E-01 8.4302551705790996E-01 + 8.2327460761391591E-01 8.0355626772448785E-01 7.8388601105964995E-01 + 7.6427944659881009E-01 7.4475223982204630E-01 7.2532007234434304E-01 + 7.0599860011717597E-01 6.8680341033831560E-01 6.6774997722709706E-01 + 6.4885361683913179E-01 6.3012944111046287E-01 6.1159231133720671E-01 + 5.9325679131197651E-01 5.7513710035277188E-01 5.5724706647362787E-01 + 5.3960007995849912E-01 5.2220904761059994E-01 5.0508634795864538E-01 + 4.8824378770850857E-01 4.7169255973398139E-01 4.5544320290310192E-01 + 4.3950556403670143E-01 4.2388876229361000E-01 4.0860115627169485E-01 + 3.9365031410604789E-01 3.7904298683485305E-01 3.6478508540157817E-01 + 3.5088165978315605E-01 3.3733687295248221E-01 3.2415398212359448E-01 + 3.1133533651115336E-01 2.9888237998946265E-01 2.8679565753218395E-01 + 2.7507482555152013E-01 2.6371866623649132E-01 2.5272510597118453E-01 + 2.4209123789589498E-01 2.3181334865786934E-01 2.2188694955278868E-01 + 2.1230682748999768E-01 2.0306726295492425E-01 1.9416223918237904E-01 + 1.8558548069209702E-01 1.7733047351455042E-01 1.6939048363278428E-01 + 1.6175857352910852E-01 1.5442761671558000E-01 1.4739031012034240E-01 + 1.4063918419194765E-01 1.3416661057264245E-01 1.2796481227191722E-01 + 1.2202592452974563E-01 1.1634206428210554E-01 1.1090535343085642E-01 + 1.0570793630474369E-01 1.0074199607368985E-01 9.5999770123367703E-02 + 9.1473564400104512E-02 8.7155766739057255E-02 8.3038859191366665E-02 + 7.9115429368561738E-02 7.5378180824911767E-02 7.1819942500657111E-02 + 6.8433677251087802E-02 6.5212489488310543E-02 6.2149631964184909E-02 + 5.9238511724367483E-02 5.6472695264645760E-02 5.3845912921764855E-02 + 5.1352062531779000E-02 4.8985212389574227E-02 4.6739603543615477E-02 + 4.4609651460208524E-02 4.2589947091605761E-02 4.0675257382180557E-02 + 3.8860525246644552E-02 3.7140869053911028E-02 3.5511581649754383E-02 + 3.3968128950893621E-02 3.2506148142566110E-02 3.1121445511099632E-02 + 2.9809993942435963E-02 2.8567930117053639E-02 2.7391551431281972E-02 + 2.6277312674597098E-02 2.5221822492155807E-02 2.4221839661511559E-02 + 2.3274269212161088E-02 2.2376158416228618E-02 2.1524692678150117E-02 + 2.0717191350611338E-02 1.9951103503137869E-02 1.9224003668563389E-02 + 1.8533587591064452E-02 1.7877667997492689E-02 1.7254170411368959E-02 + 1.6661129026150325E-02 1.6096682651316509E-02 1.5559070741567121E-02 + 1.5046629516119016E-02 1.4557788171912538E-02 1.4091065191655311E-02 + 1.3645064745196845E-02 1.3218473180867283E-02 1.2810055602192659E-02 + 1.2418652524831205E-02 1.2043176608622445E-02 1.1682609460200662E-02 + 1.1335998502578748E-02 1.1002453909304105E-02 1.0681145602080697E-02 + 1.0371300312010152E-02 1.0072198705721984E-02 9.7831725785627061E-03 + 9.5036021176601905E-03 9.2329132380537544E-03 8.9705749952028509E-03 + 8.7160970770838470E-03 8.4690273787971764E-03 8.2289496621844559E-03 + 7.9954813024387516E-03 7.7682711231226555E-03 7.5469973204260873E-03 + 7.3313654769206621E-03 7.1211066645270145E-03 6.9159756359151604E-03 + 6.7157491031157130E-03 6.5202241017381290E-03 6.3292164388664973E-03 + 6.1425592224384025E-03 5.9601014696993642E-03 5.7817067921627436E-03 + 5.6072521543881837E-03 5.4366267038144147E-03 5.2697306688405058E-03 + 5.1064743223407935E-03 4.9467770078147752E-03 4.7905662254154923E-03 + 4.6377767751612066E-03 4.4883499547137785E-03 4.3422328092012899E-03 + 4.1993774306678111E-03 4.0597403048473080E-03 3.9232817030809804E-03 + 3.7899651173215016E-03 3.6597567362949908E-03 3.5326249610165531E-03 + 3.4085399579762035E-03 3.2874732484273641E-03 3.1693973323154434E-03 + 3.0542853454793672E-03 2.9421107488412173E-03 2.8328470483669254E-03 + 2.7264675446347451E-03 2.6229451108861746E-03 2.5222519984567540E-03 + 2.4243596684942761E-03 2.3292386488717497E-03 2.2368584151393743E-03 + 2.1471872945348323E-03 2.0601923916300567E-03 1.9758395346443289E-03 + 1.8940932410824022E-03 1.8149167014623669E-03 1.7382717798188130E-03 + 1.6641190296709139E-03 1.5924177240945745E-03 1.5231258986163989E-03 + 1.4562004054679380E-03 1.3915969779770454E-03 1.3292703036880719E-03 + 1.2691741049723404E-03 1.2112612258608807E-03 1.1554837238985118E-03 + 1.1017929658711627E-03 1.0501397263200428E-03 1.0004742878231803E-03 + 9.5274654209641710E-04 9.0690609104008776E-04 8.6290234693407112E-04 + 8.2068463106102865E-04 7.8020227011460334E-04 7.4140468982541194E-04 + 7.0424150531182774E-04 6.6866260773415173E-04 6.3461824689950658E-04 + 6.0205910952976357E-04 5.7093639296613324E-04 5.4120187414114103E-04 + 5.1280797370145215E-04 4.8570781521354211E-04 4.5985527942809780E-04 + 4.3520505361873833E-04 4.1171267604598173E-04 3.8933457562851206E-04 + 3.6802810693104242E-04 3.4775158060144527E-04 3.2846428940956640E-04 + 3.1012653005663414E-04 2.9269962093740360E-04 2.7614591604761877E-04 + 2.6042881523712915E-04 2.4551277101432148E-04 2.3136329211071759E-04 + 2.1794694401583057E-04 2.0523134669182445E-04 1.9318516967556222E-04 + 1.8177812477223430E-04 1.7098095654031535E-04 1.6076543076215527E-04 + 1.5110432108824952E-04 1.4197139403637697E-04 1.3334139251934972E-04 + 1.2519001806733575E-04 1.1749391190263121E-04 1.1023063501647298E-04 + 1.0337864738913789E-04 9.6917286486194394E-05 9.0826745155436447E-05 + 8.5088049040837359E-05 7.9683033621794316E-05 7.4594320978101084E-05 + 6.9805296373482491E-05 6.5300084743178486E-05 6.1063527164029099E-05 + 5.7081157378767046E-05 5.3339178439793471E-05 4.9824439531623035E-05 + 4.6524413025395539E-05 4.3427171813409897E-05 4.0521366966505191E-05 + 3.7796205752294111E-05 3.5241430047757235E-05 3.2847295175488224E-05 + 3.0604549188963729E-05 2.8504412628563730E-05 2.6538558766678891E-05 + 2.4699094357110164E-05 2.2978540901065528E-05 2.1369816439379443E-05 + 1.9866217878121367E-05 1.8461403852486861E-05 1.7149378131788652E-05 + 1.5924473566458328E-05 1.4781336576226980E-05 1.3714912177067416E-05 + 1.2720429543037288E-05 1.1793388097853092E-05 1.0929544129846825E-05 + 1.0124897922892400E-05 9.3756813949407435E-06 8.6783462349569314E-06 + 8.0295525283050851E-06 7.4261578599748543E-06 6.8652068844748712E-06 + 6.3439213507351646E-06 5.8596905699528544E-06 5.4100623139797724E-06 + 4.9927341315842053E-06 4.6055450697156693E-06 4.2464677867570752E-06 + 3.9136010446617734E-06 3.6051625668355973E-06 3.3194822486365340E-06 + 3.0549957074208570E-06 2.8102381591612359E-06 2.5838386087973464E-06 + 2.3745143416480248E-06 2.1810657034128857E-06 2.0023711565188272E-06 + 1.8373826008174931E-06 1.6851209469129047E-06 1.5446719306896083E-06 + 1.4151821579186275E-06 1.2958553681388241E-06 1.1859489073421355E-06 + 1.0847703993299440E-06 9.9167460595325984E-07 9.0606046679807989E-07 + 8.2736830922844916E-07 7.5507722005089454E-07 6.8870257041351468E-07 + 6.2779368589999835E-07 5.7193165412119933E-07 5.2072726244407814E-07 + 4.7381905882838527E-07 4.3087152906455559E-07 3.9157338402130087E-07 + 3.5563595081751676E-07 3.2279166212978995E-07 2.9279263813383539E-07 + 2.6540935585494178E-07 2.4042940096905713E-07 2.1765629735218478E-07 + 1.9690840992125549E-07 1.7801791654471091E-07 1.6082984502565550E-07 + 1.4520117137476993E-07 1.3099997579450797E-07 1.1810465299049557E-07 + 1.0640317361094218E-07 9.5792393790442595E-08 8.6177409941148134E-08 + 7.7470956092281413E-08 6.9592841228641217E-08 6.2469424220515106E-08 + 5.6033124071596005E-08 5.0221963338461484E-08 4.4979142695281463E-08 + 4.0252644731010241E-08 3.5994865173726364E-08 3.2162269838368697E-08 + 2.8715075690158346E-08 2.5616954506837912E-08 2.2834757708773798E-08 + 2.0338261007237473E-08 1.8099927598081775E-08 1.6094688700800110E-08 + 1.4299740311837493E-08 1.2694355106244077E-08 1.1259708483518227E-08 + 9.9787178119860743E-09 8.8358939814818379E-09 7.8172044265991560E-09 + 6.9099468325412976E-09 6.1026327827474217E-09 5.3848806521576377E-09 + 4.7473170923243500E-09 4.1814864947021381E-09 3.6797678564648910E-09 + 3.2352985092097885E-09 2.8419042050094508E-09 2.4940350865590400E-09 + 2.1867070987169623E-09 1.9154484276384154E-09 1.6762505810249907E-09 + 1.4655237488325536E-09 1.2800561081623997E-09 1.1169767590711126E-09 + 9.7372199973455820E-10 8.4800466985060455E-10 7.3778631041908795E-10 + 6.4125190615151755E-10 5.5678699378891148E-10 4.8295693559433883E-10 + 4.1848817228649729E-10 3.6225128373833915E-10 3.1324569892655537E-10 + 2.7058590892735418E-10 2.3348904825416965E-10 2.0126372056510740E-10 + 1.7329995477191554E-10 1.4906018689671783E-10 1.2807117168512712E-10 + 1.0991673603055993E-10 9.4231293729561174E-11 8.0694048005148158E-11 + 6.9023814636891812E-11 5.8974404453719126E-11 5.0330509407975726E-11 + 4.2904041485666090E-11 3.6530878345322546E-11 3.1067973842668712E-11 + 2.6390795515057094E-11 2.2391054692223857E-11 1.8974698190729084E-11 + 1.6060133559907054E-11 1.3576662597439704E-11 1.1463100361935175E-11 + 9.6665591961741474E-12 8.1413793549902387E-12 6.8481897220693778E-12 + 5.7530838152956618E-12 4.8268978347041133E-12 4.0445789137909392E-12 + 3.3846330061527867E-12 2.8286429866457555E-12 2.3608485801171137E-12 + 1.9677806611706027E-12 1.6379433045564520E-12 1.3615377161202512E-12 + 1.1302228466498333E-12 9.3690809266326098E-13 7.7557402584626140E-13 + 6.4111757259970090E-13 5.2921849261514584E-13 4.3622438570647118E-13 + 3.5905179399335306E-13 2.9510126625339079E-13 2.4218451675568447E-13 + 1.9846204569966419E-13 1.6238979568865047E-13 1.3267360169209456E-13 + 1.0823035464273347E-13 8.8154925489787124E-14 7.1692043478996947E-14 + 5.8212699139822691E-14 4.7192903071109153E-14 3.8198615389479512E-14 + 3.0868804720849173E-14 2.4905331499017583E-14 2.0061294505630655E-14 + 1.6132936872774225E-14 1.2952376433191606E-14 1.0381513166772363E-14 + 8.3069313390349991E-15 6.6356408427643214E-15 5.2915254102844919E-15 + 4.2123852552588985E-15 3.3474787616497881E-15 2.6554824426860969E-15 + 2.1028008763232739E-15 1.6621689758804018E-15 1.3114980284752260E-15 + 1.0329246500641162E-15 8.1202835607492929E-16 6.3718899722403751E-16 + 4.9906000532857227E-16 3.9013735846972058E-16 3.0440751638882330E-16 + 2.3706038827128876E-16 1.8425575588058527E-16 1.4293355383982470E-16 + 1.1066006441043958E-16 8.5503466577193361E-17 6.5933331456642987E-17 + 5.0739614497967627E-17 3.8967490669856847E-17 2.9865038154197590E-17 + 2.2841321293115105E-17 1.7432873503721949E-17 1.3276951477177548E-17 + 1.0090236591446904E-17 7.6519093253403878E-18 5.7902269816550506E-18 + 4.3719020855007512E-18 3.2937149935531903E-18 2.4759050054287500E-18 + 1.8569741588841731E-18 1.3896106883157178E-18 1.0374979520311671E-18 + 7.7282206440363871E-19 5.7432962637809578E-19 4.2581757581173727E-19 + 3.1496170765835453E-19 2.3241001272491919E-19 1.7108260722927339E-19 + 1.2563245090885964E-19 9.2030910305837624E-20 6.7250027679800435E-20 + 4.9019518344192937E-20 3.5641373598654982E-20 2.5848761130669124E-20 + 1.8698905081386042E-20 1.3491966249612233E-20 9.7097667409784233E-21 + 6.9696223481534128E-21 4.9896471669574983E-21 3.5627472222344754E-21 + 2.5371779612524221E-21 1.8020479244407115E-21 1.2765373785276333E-21 + 9.0190186498817640E-22 6.3556830432336486E-22 4.4675110219205517E-22 + 3.1324356646043022E-22 2.1916912801060108E-22 1.5294263582860055E-22 + 1.0641502433626817E-22 7.3822983944072243E-23 5.1060316092804494E-23 + + + 7.0981714811654486E+00 7.0981714811329049E+00 7.0981714810348731E+00 + 7.0981714808693841E+00 7.0981714806346519E+00 7.0981714803290652E+00 + 7.0981714799506976E+00 7.0981714794978226E+00 7.0981714789685402E+00 + 7.0981714783608902E+00 7.0981714776730795E+00 7.0981714769029898E+00 + 7.0981714760485852E+00 7.0981714751079092E+00 7.0981714740788640E+00 + 7.0981714729592253E+00 7.0981714717469071E+00 7.0981714704395955E+00 + 7.0981714690350932E+00 7.0981714675310474E+00 7.0981714659251063E+00 + 7.0981714642148592E+00 7.0981714623978931E+00 7.0981714604716784E+00 + 7.0981714584336624E+00 7.0981714562812304E+00 7.0981714540117915E+00 + 7.0981714516226138E+00 7.0981714491109669E+00 7.0981714464740273E+00 + 7.0981714437089218E+00 7.0981714408127674E+00 7.0981714377825798E+00 + 7.0981714346153373E+00 7.0981714313079403E+00 7.0981714278572765E+00 + 7.0981714242600953E+00 7.0981714205131476E+00 7.0981714166131180E+00 + 7.0981714125566064E+00 7.0981714083401748E+00 7.0981714039602783E+00 + 7.0981713994133040E+00 7.0981713946956351E+00 7.0981713898035208E+00 + 7.0981713847331482E+00 7.0981713794806867E+00 7.0981713740421775E+00 + 7.0981713684135528E+00 7.0981713625907785E+00 7.0981713565696776E+00 + 7.0981713503459538E+00 7.0981713439152800E+00 7.0981713372732402E+00 + 7.0981713304153722E+00 7.0981713233370778E+00 7.0981713160336826E+00 + 7.0981713085004179E+00 7.0981713007324254E+00 7.0981712927247997E+00 + 7.0981712844725022E+00 7.0981712759703983E+00 7.0981712672132611E+00 + 7.0981712581957890E+00 7.0981712489125703E+00 7.0981712393580327E+00 + 7.0981712295266357E+00 7.0981712194125697E+00 7.0981712090100677E+00 + 7.0981711983131417E+00 7.0981711873157609E+00 7.0981711760117427E+00 + 7.0981711643948202E+00 7.0981711524586046E+00 7.0981711401965741E+00 + 7.0981711276020816E+00 7.0981711146683706E+00 7.0981711013885622E+00 + 7.0981710877556345E+00 7.0981710737624510E+00 7.0981710594017580E+00 + 7.0981710446661017E+00 7.0981710295479665E+00 7.0981710140396874E+00 + 7.0981709981333774E+00 7.0981709818211156E+00 7.0981709650947700E+00 + 7.0981709479460786E+00 7.0981709303666127E+00 7.0981709123477970E+00 + 7.0981708938809032E+00 7.0981708749570824E+00 7.0981708555672132E+00 + 7.0981708357020876E+00 7.0981708153523355E+00 7.0981707945084231E+00 + 7.0981707731605725E+00 7.0981707512989010E+00 7.0981707289133009E+00 + 7.0981707059934589E+00 7.0981706825289619E+00 7.0981706585091189E+00 + 7.0981706339231128E+00 7.0981706087598502E+00 7.0981705830080752E+00 + 7.0981705566563651E+00 7.0981705296930375E+00 7.0981705021062096E+00 + 7.0981704738838340E+00 7.0981704450135386E+00 7.0981704154828265E+00 + 7.0981703852788840E+00 7.0981703543887731E+00 7.0981703227992439E+00 + 7.0981702904968174E+00 7.0981702574677641E+00 7.0981702236981468E+00 + 7.0981701891737154E+00 7.0981701538800195E+00 7.0981701178023773E+00 + 7.0981700809256996E+00 7.0981700432347257E+00 7.0981700047139711E+00 + 7.0981699653475196E+00 7.0981699251192962E+00 7.0981698840129361E+00 + 7.0981698420116786E+00 7.0981697990985300E+00 7.0981697552562109E+00 + 7.0981697104671042E+00 7.0981696647132342E+00 7.0981696179763629E+00 + 7.0981695702378849E+00 7.0981695214789138E+00 7.0981694716801371E+00 + 7.0981694208220265E+00 7.0981693688845464E+00 7.0981693158473389E+00 + 7.0981692616898231E+00 7.0981692063908897E+00 7.0981691499291477E+00 + 7.0981690922827818E+00 7.0981690334294685E+00 7.0981689733467332E+00 + 7.0981689120115803E+00 7.0981688494004844E+00 7.0981687854896567E+00 + 7.0981687202548516E+00 7.0981686536713111E+00 7.0981685857139656E+00 + 7.0981685163571777E+00 7.0981684455749239E+00 7.0981683733406813E+00 + 7.0981682996274333E+00 7.0981682244077744E+00 7.0981681476537331E+00 + 7.0981680693367926E+00 7.0981679894280818E+00 7.0981679078980635E+00 + 7.0981678247167279E+00 7.0981677398535972E+00 7.0981676532775202E+00 + 7.0981675649568396E+00 7.0981674748594941E+00 7.0981673829526200E+00 + 7.0981672892028005E+00 7.0981671935762503E+00 7.0981670960383259E+00 + 7.0981669965538563E+00 7.0981668950870898E+00 7.0981667916015958E+00 + 7.0981666860603001E+00 7.0981665784254506E+00 7.0981664686587065E+00 + 7.0981663567209834E+00 7.0981662425724670E+00 7.0981661261726723E+00 + 7.0981660074805131E+00 7.0981658864539847E+00 7.0981657630504227E+00 + 7.0981656372264466E+00 7.0981655089378526E+00 7.0981653781397016E+00 + 7.0981652447861556E+00 7.0981651088306927E+00 7.0981649702259064E+00 + 7.0981648289235721E+00 7.0981646848746074E+00 7.0981645380290139E+00 + 7.0981643883359808E+00 7.0981642357437602E+00 7.0981640801997461E+00 + 7.0981639216503529E+00 7.0981637600409790E+00 7.0981635953162048E+00 + 7.0981634274195633E+00 7.0981632562935637E+00 7.0981630818797576E+00 + 7.0981629041186443E+00 7.0981627229496587E+00 7.0981625383111693E+00 + 7.0981623501404432E+00 7.0981621583737065E+00 7.0981619629460200E+00 + 7.0981617637913006E+00 7.0981615608423079E+00 7.0981613540305686E+00 + 7.0981611432865348E+00 7.0981609285393237E+00 7.0981607097167734E+00 + 7.0981604867455612E+00 7.0981602595510163E+00 7.0981600280572383E+00 + 7.0981597921868040E+00 7.0981595518610998E+00 7.0981593070000812E+00 + 7.0981590575222686E+00 7.0981588033448073E+00 7.0981585443833604E+00 + 7.0981582805520995E+00 7.0981580117636227E+00 7.0981577379291823E+00 + 7.0981574589583056E+00 7.0981571747589420E+00 7.0981568852375405E+00 + 7.0981565902988280E+00 7.0981562898458419E+00 7.0981559837798933E+00 + 7.0981556720007513E+00 7.0981553544062255E+00 7.0981550308923635E+00 + 7.0981547013534829E+00 7.0981543656819861E+00 7.0981540237684371E+00 + 7.0981536755013819E+00 7.0981533207675476E+00 7.0981529594515829E+00 + 7.0981525914361612E+00 7.0981522166018722E+00 7.0981518348272612E+00 + 7.0981514459886830E+00 7.0981510499603688E+00 7.0981506466144335E+00 + 7.0981502358205333E+00 7.0981498174462256E+00 7.0981493913567961E+00 + 7.0981489574149643E+00 7.0981485154812418E+00 7.0981480654136480E+00 + 7.0981476070676157E+00 7.0981471402962049E+00 7.0981466649499074E+00 + 7.0981461808764230E+00 7.0981456879209235E+00 7.0981451859259916E+00 + 7.0981446747312118E+00 7.0981441541735206E+00 7.0981436240870215E+00 + 7.0981430843027677E+00 7.0981425346490754E+00 7.0981419749511385E+00 + 7.0981414050311153E+00 7.0981408247080964E+00 7.0981402337979311E+00 + 7.0981396321134129E+00 7.0981390194638969E+00 7.0981383956554875E+00 + 7.0981377604910030E+00 7.0981371137696296E+00 7.0981364552872472E+00 + 7.0981357848360496E+00 7.0981351022046688E+00 7.0981344071779251E+00 + 7.0981336995371649E+00 7.0981329790596961E+00 7.0981322455189941E+00 + 7.0981314986845785E+00 7.0981307383220367E+00 7.0981299641928226E+00 + 7.0981291760541723E+00 7.0981283736591649E+00 7.0981275567566229E+00 + 7.0981267250909799E+00 7.0981258784020840E+00 7.0981250164254073E+00 + 7.0981241388917811E+00 7.0981232455273089E+00 7.0981223360533745E+00 + 7.0981214101865584E+00 7.0981204676383918E+00 7.0981195081154986E+00 + 7.0981185313193551E+00 7.0981175369461171E+00 7.0981165246870193E+00 + 7.0981154942275486E+00 7.0981144452478002E+00 7.0981133774226111E+00 + 7.0981122904207483E+00 7.0981111839053916E+00 7.0981100575340568E+00 + 7.0981089109580395E+00 7.0981077438226148E+00 7.0981065557670036E+00 + 7.0981053464241706E+00 7.0981041154205728E+00 7.0981028623762441E+00 + 7.0981015869046935E+00 7.0981002886125646E+00 7.0980989670997889E+00 + 7.0980976219593659E+00 7.0980962527771121E+00 7.0980948591317166E+00 + 7.0980934405946066E+00 7.0980919967297478E+00 7.0980905270934311E+00 + 7.0980890312343714E+00 7.0980875086934692E+00 7.0980859590035257E+00 + 7.0980843816892465E+00 7.0980827762673764E+00 7.0980811422458805E+00 + 7.0980794791242650E+00 7.0980777863936497E+00 7.0980760635361300E+00 + 7.0980743100247334E+00 7.0980725253233823E+00 7.0980707088868282E+00 + 7.0980688601603168E+00 7.0980669785794186E+00 7.0980650635699769E+00 + 7.0980631145478128E+00 7.0980611309186354E+00 7.0980591120780163E+00 + 7.0980570574107906E+00 7.0980549662912651E+00 7.0980528380829409E+00 + 7.0980506721382399E+00 7.0980484677983657E+00 7.0980462243930740E+00 + 7.0980439412405332E+00 7.0980416176471337E+00 7.0980392529072347E+00 + 7.0980368463028958E+00 7.0980343971038327E+00 7.0980319045671685E+00 + 7.0980293679369391E+00 7.0980267864442723E+00 7.0980241593069611E+00 + 7.0980214857291788E+00 7.0980187649014059E+00 7.0980159960000178E+00 + 7.0980131781872267E+00 7.0980103106106318E+00 7.0980073924032165E+00 + 7.0980044226827870E+00 7.0980014005519640E+00 7.0979983250979055E+00 + 7.0979951953918246E+00 7.0979920104889871E+00 7.0979887694282766E+00 + 7.0979854712318406E+00 7.0979821149050562E+00 7.0979786994360357E+00 + 7.0979752237952942E+00 7.0979716869356961E+00 7.0979680877919371E+00 + 7.0979644252800673E+00 7.0979606982976948E+00 7.0979569057233531E+00 + 7.0979530464158991E+00 7.0979491192145563E+00 7.0979451229387021E+00 + 7.0979410563871257E+00 7.0979369183376280E+00 7.0979327075472547E+00 + 7.0979284227514299E+00 7.0979240626634947E+00 7.0979196259749253E+00 + 7.0979151113542152E+00 7.0979105174469437E+00 7.0979058428756243E+00 + 7.0979010862383589E+00 7.0978962461092809E+00 7.0978913210381682E+00 + 7.0978863095492910E+00 7.0978812101415869E+00 7.0978760212881795E+00 + 7.0978707414355560E+00 7.0978653690035385E+00 7.0978599023845650E+00 + 7.0978543399433125E+00 7.0978486800162175E+00 7.0978429209109395E+00 + 7.0978370609059329E+00 7.0978310982498227E+00 7.0978250311610998E+00 + 7.0978188578275221E+00 7.0978125764051576E+00 7.0978061850186833E+00 + 7.0977996817601978E+00 7.0977930646888403E+00 7.0977863318302310E+00 + 7.0977794811758130E+00 7.0977725106824474E+00 7.0977654182716687E+00 + 7.0977582018291852E+00 7.0977508592040897E+00 7.0977433882083103E+00 + 7.0977357866161412E+00 7.0977280521632933E+00 7.0977201825464515E+00 + 7.0977121754225916E+00 7.0977040284081250E+00 7.0976957390782971E+00 + 7.0976873049665379E+00 7.0976787235637966E+00 7.0976699923175914E+00 + 7.0976611086313337E+00 7.0976520698638188E+00 7.0976428733280130E+00 + 7.0976335162905091E+00 7.0976239959709995E+00 7.0976143095409947E+00 + 7.0976044541230507E+00 7.0975944267903675E+00 7.0975842245653755E+00 + 7.0975738444192462E+00 7.0975632832709774E+00 7.0975525379862612E+00 + 7.0975416053765850E+00 7.0975304821986676E+00 7.0975191651532272E+00 + 7.0975076508839772E+00 7.0974959359766796E+00 7.0974840169583207E+00 + 7.0974718902959664E+00 7.0974595523954758E+00 7.0974469996011154E+00 + 7.0974342281939098E+00 7.0974212343904686E+00 7.0974080143426344E+00 + 7.0973945641355511E+00 7.0973808797867823E+00 7.0973669572454057E+00 + 7.0973527923906472E+00 7.0973383810305135E+00 7.0973237189006966E+00 + 7.0973088016636270E+00 7.0972936249066096E+00 7.0972781841408983E+00 + 7.0972624748005790E+00 7.0972464922409140E+00 7.0972302317368348E+00 + 7.0972136884820749E+00 7.0971968575875035E+00 7.0971797340794458E+00 + 7.0971623128987646E+00 7.0971445888989981E+00 7.0971265568448612E+00 + 7.0971082114108448E+00 7.0970895471798512E+00 7.0970705586412093E+00 + 7.0970512401892032E+00 7.0970315861216386E+00 7.0970115906379441E+00 + 7.0969912478376855E+00 7.0969705517186306E+00 7.0969494961750508E+00 + 7.0969280749961019E+00 7.0969062818638982E+00 7.0968841103516134E+00 + 7.0968615539216717E+00 7.0968386059238897E+00 7.0968152595934573E+00 + 7.0967915080490247E+00 7.0967673442906491E+00 7.0967427611977509E+00 + 7.0967177515270903E+00 7.0966923079106587E+00 7.0966664228535041E+00 + 7.0966400887315242E+00 7.0966132977892240E+00 7.0965860421376288E+00 + 7.0965583137517907E+00 7.0965301044684193E+00 7.0965014059838687E+00 + 7.0964722098513056E+00 7.0964425074782556E+00 7.0964122901244959E+00 + 7.0963815488991600E+00 7.0963502747583442E+00 7.0963184585022425E+00 + 7.0962860907726313E+00 7.0962531620502300E+00 7.0962196626517944E+00 + 7.0961855827272844E+00 7.0961509122570536E+00 7.0961156410490283E+00 + 7.0960797587355042E+00 7.0960432547702670E+00 7.0960061184256942E+00 + 7.0959683387892678E+00 7.0959299047606290E+00 7.0958908050485912E+00 + 7.0958510281671412E+00 7.0958105624327574E+00 7.0957693959609136E+00 + 7.0957275166624321E+00 7.0956849122398316E+00 7.0956415701842745E+00 + 7.0955974777715154E+00 7.0955526220581007E+00 7.0955069898781664E+00 + 7.0954605678390212E+00 7.0954133423175492E+00 7.0953652994562093E+00 + 7.0953164251590817E+00 7.0952667050875098E+00 7.0952161246561554E+00 + 7.0951646690289181E+00 7.0951123231142015E+00 7.0950590715607778E+00 + 7.0950048987534675E+00 7.0949497888083171E+00 7.0948937255681308E+00 + 7.0948366925977862E+00 7.0947786731794960E+00 7.0947196503077929E+00 + 7.0946596066848358E+00 7.0945985247151011E+00 7.0945363865005984E+00 + 7.0944731738354783E+00 7.0944088682006923E+00 7.0943434507588359E+00 + 7.0942769023484971E+00 7.0942092034787718E+00 7.0941403343236091E+00 + 7.0940702747161861E+00 7.0939990041427645E+00 7.0939265017369291E+00 + 7.0938527462737291E+00 7.0937777161631308E+00 7.0937013894439174E+00 + 7.0936237437775755E+00 7.0935447564415126E+00 7.0934644043224591E+00 + 7.0933826639100843E+00 7.0932995112899491E+00 7.0932149221364540E+00 + 7.0931288717061625E+00 7.0930413348304038E+00 7.0929522859080469E+00 + 7.0928616988978677E+00 7.0927695473114598E+00 7.0926758042053315E+00 + 7.0925804421729763E+00 7.0924834333370832E+00 7.0923847493415035E+00 + 7.0922843613430757E+00 7.0921822400031660E+00 7.0920783554792237E+00 + 7.0919726774162637E+00 7.0918651749379080E+00 7.0917558166376446E+00 + 7.0916445705695947E+00 7.0915314042394781E+00 7.0914162845950610E+00 + 7.0912991780165733E+00 7.0911800503071971E+00 7.0910588666831664E+00 + 7.0909355917635297E+00 7.0908101895600719E+00 7.0906826234669182E+00 + 7.0905528562500324E+00 7.0904208500365771E+00 7.0902865663034458E+00 + 7.0901499658668534E+00 7.0900110088708281E+00 7.0898696547753790E+00 + 7.0897258623451451E+00 7.0895795896376477E+00 7.0894307939907506E+00 + 7.0892794320107084E+00 7.0891254595598063E+00 7.0889688317433084E+00 + 7.0888095028964919E+00 7.0886474265719706E+00 7.0884825555260642E+00 + 7.0883148417050865E+00 7.0881442362317495E+00 7.0879706893909047E+00 + 7.0877941506154967E+00 7.0876145684720173E+00 7.0874318906454379E+00 + 7.0872460639243329E+00 7.0870570341859169E+00 7.0868647463801562E+00 + 7.0866691445139249E+00 7.0864701716353480E+00 7.0862677698169323E+00 + 7.0860618801393924E+00 7.0858524426747200E+00 7.0856393964688120E+00 + 7.0854226795239263E+00 7.0852022287814336E+00 7.0849779801032815E+00 + 7.0847498682537999E+00 7.0845178268810942E+00 7.0842817884980427E+00 + 7.0840416844629353E+00 7.0837974449599876E+00 7.0835489989791682E+00 + 7.0832962742961758E+00 7.0830391974518578E+00 7.0827776937308231E+00 + 7.0825116871404612E+00 7.0822411003894512E+00 7.0819658548652793E+00 + 7.0816858706120245E+00 7.0814010663077864E+00 7.0811113592412829E+00 + 7.0808166652882782E+00 7.0805168988878533E+00 7.0802119730181383E+00 + 7.0799017991709832E+00 7.0795862873275830E+00 7.0792653459326429E+00 + 7.0789388818679857E+00 7.0786068004265790E+00 7.0782690052856978E+00 + 7.0779253984793096E+00 7.0775758803705493E+00 7.0772203496233148E+00 + 7.0768587031737882E+00 7.0764908362012342E+00 7.0761166420982047E+00 + 7.0757360124404132E+00 7.0753488369563255E+00 7.0749550034960169E+00 + 7.0745543979990293E+00 7.0741469044628511E+00 7.0737324049099426E+00 + 7.0733107793543928E+00 7.0728819057682708E+00 7.0724456600472312E+00 + 7.0720019159757017E+00 7.0715505451914753E+00 7.0710914171492449E+00 + 7.0706243990844051E+00 7.0701493559757509E+00 7.0696661505075022E+00 + 7.0691746430308005E+00 7.0686746915246861E+00 7.0681661515565279E+00 + 7.0676488762414031E+00 7.0671227162011947E+00 7.0665875195228720E+00 + 7.0660431317160501E+00 7.0654893956701805E+00 7.0649261516105302E+00 + 7.0643532370537105E+00 7.0637704867627358E+00 7.0631777327010052E+00 + 7.0625748039856058E+00 7.0619615268399043E+00 7.0613377245455524E+00 + 7.0607032173934563E+00 7.0600578226339028E+00 7.0594013544264689E+00 + 7.0587336237884033E+00 7.0580544385423787E+00 7.0573636032640614E+00 + 7.0566609192275944E+00 7.0559461843516269E+00 7.0552191931435031E+00 + 7.0544797366425414E+00 7.0537276023632272E+00 7.0529625742371209E+00 + 7.0521844325530614E+00 7.0513929538976612E+00 7.0505879110945040E+00 + 7.0497690731415394E+00 7.0489362051487143E+00 7.0480890682739785E+00 + 7.0472274196582267E+00 7.0463510123597306E+00 7.0454595952868413E+00 + 7.0445529131301994E+00 7.0436307062940697E+00 7.0426927108257500E+00 + 7.0417386583446273E+00 7.0407682759699526E+00 7.0397812862477265E+00 + 7.0387774070758500E+00 7.0377563516287456E+00 7.0367178282806204E+00 + 7.0356615405273804E+00 7.0345871869076930E+00 7.0334944609228955E+00 + 7.0323830509549561E+00 7.0312526401840589E+00 7.0301029065049079E+00 + 7.0289335224411458E+00 7.0277441550588486E+00 7.0265344658789886E+00 + 7.0253041107883263E+00 7.0240527399488419E+00 7.0227799977061416E+00 + 7.0214855224964943E+00 7.0201689467523272E+00 7.0188298968062997E+00 + 7.0174679927942130E+00 7.0160828485566649E+00 7.0146740715387539E+00 + 7.0132412626884788E+00 7.0117840163542153E+00 7.0103019201802743E+00 + 7.0087945550008408E+00 7.0072614947326635E+00 7.0057023062663522E+00 + 7.0041165493561266E+00 7.0025037765075719E+00 7.0008635328640691E+00 + 6.9991953560921916E+00 6.9974987762649183E+00 6.9957733157431763E+00 + 6.9940184890562573E+00 6.9922338027803965E+00 6.9904187554153294E+00 + 6.9885728372598850E+00 6.9866955302856484E+00 6.9847863080085393E+00 + 6.9828446353593803E+00 6.9808699685520184E+00 6.9788617549506338E+00 + 6.9768194329347661E+00 6.9747424317623263E+00 6.9726301714315655E+00 + 6.9704820625409463E+00 6.9682975061471648E+00 6.9660758936215528E+00 + 6.9638166065047988E+00 6.9615190163596470E+00 6.9591824846217243E+00 + 6.9568063624492487E+00 6.9543899905701396E+00 6.9519326991275525E+00 + 6.9494338075240618E+00 6.9468926242633735E+00 6.9443084467906289E+00 + 6.9416805613308155E+00 6.9390082427254320E+00 6.9362907542670165E+00 + 6.9335273475322152E+00 6.9307172622132116E+00 6.9278597259466732E+00 + 6.9249539541415315E+00 6.9219991498048294E+00 6.9189945033652673E+00 + 6.9159391924959808E+00 6.9128323819350070E+00 6.9096732233034119E+00 + 6.9064608549225674E+00 6.9031944016298707E+00 6.8998729745918812E+00 + 6.8964956711158463E+00 6.8930615744607531E+00 6.8895697536454978E+00 + 6.8860192632557427E+00 6.8824091432496459E+00 6.8787384187614524E+00 + 6.8750060999040485E+00 6.8712111815697128E+00 6.8673526432294469E+00 + 6.8634294487311367E+00 6.8594405460961525E+00 6.8553848673145739E+00 + 6.8512613281391737E+00 6.8470688278785978E+00 6.8428062491885475E+00 + 6.8384724578626912E+00 6.8340663026219808E+00 6.8295866149030937E+00 + 6.8250322086462702E+00 6.8204018800820068E+00 6.8156944075166894E+00 + 6.8109085511185476E+00 6.8060430527017708E+00 6.8010966355107474E+00 + 6.7960680040043506E+00 6.7909558436387991E+00 6.7857588206510338E+00 + 6.7804755818418210E+00 6.7751047543589893E+00 6.7696449454805991E+00 + 6.7640947423982611E+00 6.7584527120009499E+00 6.7527174006595700E+00 + 6.7468873340117383E+00 6.7409610167478196E+00 6.7349369323971775E+00 + 6.7288135431164298E+00 6.7225892894786092E+00 6.7162625902633790E+00 + 6.7098318422496108E+00 6.7032954200091357E+00 6.6966516757031629E+00 + 6.6898989388804102E+00 6.6830355162776023E+00 6.6760596916235446E+00 + 6.6689697254449873E+00 6.6617638548761127E+00 6.6544402934718416E+00 + 6.6469972310241667E+00 6.6394328333824104E+00 6.6317452422783045E+00 + 6.6239325751554157E+00 6.6159929250025398E+00 6.6079243601934392E+00 + 6.5997249243313849E+00 6.5913926360994521E+00 6.5829254891172511E+00 + 6.5743214518039368E+00 6.5655784672482511E+00 6.5566944530858615E+00 + 6.5476673013842417E+00 6.5384948785357055E+00 6.5291750251589304E+00 + 6.5197055560097379E+00 6.5100842599009798E+00 6.5003088996324889E+00 + 6.4903772119312366E+00 6.4802869074028573E+00 6.4700356704943154E+00 + 6.4596211594684059E+00 6.4490410063911989E+00 6.4382928171323313E+00 + 6.4273741713790873E+00 6.4162826226648493E+00 6.4050156984127691E+00 + 6.3935708999942582E+00 6.3819457028046065E+00 6.3701375563557114E+00 + 6.3581438843854450E+00 6.3459620849863176E+00 6.3335895307533381E+00 + 6.3210235689515795E+00 6.3082615217044307E+00 6.2953006862033805E+00 + 6.2821383349408491E+00 6.2687717159654914E+00 6.2551980531623137E+00 + 6.2414145465574018E+00 6.2274183726486996E+00 6.2132066847643399E+00 + 6.1987766134481976E+00 6.1841252668747826E+00 6.1692497312940597E+00 + 6.1541470715072606E+00 6.1388143313746957E+00 6.1232485343570593E+00 + 6.1074466840910713E+00 6.0914057649999753E+00 6.0751227429413435E+00 + 6.0585945658928244E+00 6.0418181646761786E+00 6.0247904537222796E+00 + 6.0075083318775988E+00 5.9899686832533465E+00 5.9721683781185098E+00 + 5.9541042738391825E+00 5.9357732158638710E+00 5.9171720387575020E+00 + 5.8982975672847067E+00 5.8791466175441522E+00 5.8597159981554086E+00 + 5.8400025114991658E+00 5.8200029550135399E+00 5.7997141225459643E+00 + 5.7791328057638660E+00 5.7582557956253222E+00 5.7370798839096873E+00 + 5.7156018648118723E+00 5.6938185365999097E+00 5.6717267033382646E+00 + 5.6493231766782355E+00 5.6266047777161203E+00 5.6035683389219546E+00 + 5.5802107061389243E+00 5.5565287406551835E+00 5.5325193213504331E+00 + 5.5081793469167675E+00 5.4835057381563290E+00 5.4584954403571562E+00 + 5.4331454257473029E+00 5.4074526960291527E+00 5.3814142849948539E+00 + 5.3550272612237366E+00 5.3282887308622859E+00 5.3011958404879582E+00 + 5.2737457800568306E+00 5.2459357859369842E+00 5.2177631440260921E+00 + 5.1892251929540025E+00 5.1603193273724806E+00 5.1310430013282673E+00 + 5.1013937317226752E+00 5.0713691018552272E+00 5.0409667650500030E+00 + 5.0101844483666511E+00 4.9790199563914328E+00 4.9474711751078502E+00 + 4.9155360758463340E+00 4.8832127193084283E+00 4.8504992596646224E+00 + 4.8173939487212216E+00 4.7838951401536862E+00 4.7500012938028515E+00 + 4.7157109800277031E+00 4.6810228841107762E+00 4.6459358107112845E+00 + 4.6104486883567599E+00 4.5745605739695279E+00 4.5382706574178728E+00 + 4.5015782660833530E+00 4.4644828694351189E+00 4.4269840836017540E+00 + 4.3890816759281686E+00 4.3507755695030488E+00 4.3120658476472595E+00 + 4.2729527583457418E+00 4.2334367186066162E+00 4.1935183187313809E+00 + 4.1531983264751693E+00 4.1124776910797012E+00 4.0713575471538395E+00 + 4.0298392183790241E+00 3.9879242210143606E+00 3.9456142671744781E+00 + 3.9029112678493307E+00 3.8598173356332954E+00 3.8163347871364972E+00 + 3.7724661450336350E+00 3.7282141397170574E+00 3.6835817105165378E+00 + 3.6385720064344391E+00 3.5931883863617968E+00 3.5474344187184466E+00 + 3.5013138804690089E+00 3.4548307554708835E+00 3.4079892320853387E+00 + 3.3607937000036130E+00 3.3132487462292048E+00 3.2653591501469550E+00 + 3.2171298776276789E+00 3.1685660740927353E+00 3.1196730564753143E+00 + 3.0704563040231183E+00 3.0209214478583846E+00 2.9710742592409254E+00 + 2.9209206364710445E+00 2.8704665903594204E+00 2.8197182282203310E+00 + 2.7686817363197145E+00 2.7173633607355598E+00 2.6657693865972982E+00 + 2.6139061156568024E+00 2.5617798421893911E+00 2.5093968272044997E+00 + 2.4567632709771239E+00 2.4038852839461247E+00 2.3507688560049411E+00 + 2.2974198242747894E+00 2.2438438394664431E+00 2.1900463309523084E+00 + 2.1360324707362617E+00 2.0818071365100428E+00 2.0273748740495843E+00 + 1.9727398592576573E+00 1.9179058601579955E+00 1.8628761992360197E+00 + 1.8076537165513744E+00 1.7522407340623012E+00 1.6966390216826666E+00 + 1.6408497655684289E+00 1.5848735391833957E+00 1.5287102776991828E+00 + 1.4723592562390284E+00 1.4158190725252053E+00 1.3590876344108143E+00 + 1.3021621528119052E+00 1.2450391406293302E+00 1.1877144183303834E+00 + 1.1301831272758391E+00 1.0724397525246758E+00 1.0144781580452442E+00 + 9.5629163942252926E-01 8.9787300256551850E-01 8.3921468251910869E-01 + 7.8030892522018391E-01 7.2114806831590705E-01 6.6172497730346624E-01 + 6.0203372292038682E-01 5.4207062890299951E-01 4.8186271441048883E-01 + 4.2112272433605236E-01 3.5957626028139084E-01 3.0388654536686571E-01 + 2.6103445145691206E-01 2.2495489497546001E-01 1.8917113161917939E-01 + 1.5394214753822252E-01 1.1957839470947877E-01 8.6073626302333547E-02 + 5.3449951581933303E-02 2.1730816643503386E-02 -9.0594591843438620E-03 + -3.8896082417043544E-02 -6.7754124163059662E-02 -9.5608804104389683E-02 + -1.2243572605495745E-01 -1.4821107182217588E-01 -1.7291176003529185E-01 + -1.9651557632271188E-01 -2.1900128077814793E-01 -2.4034869803251299E-01 + -2.6053879465523561E-01 -2.7955374792834126E-01 -2.9737700939722661E-01 + -3.1399336604151684E-01 -3.2938900132148652E-01 -3.4355155792202424E-01 + -3.5647020359183001E-01 -3.6813570113317601E-01 -3.7854048339373775E-01 + -3.8767873387866203E-01 -3.9554647351576644E-01 -4.0214165408753255E-01 + -4.0746425881911247E-01 -4.1151641074501150E-01 -4.1430248957494265E-01 + -4.1582925794107356E-01 -4.1610599816575972E-01 -4.1514466085515328E-01 + -4.1296002688088473E-01 -4.0956988455116972E-01 -4.0499522392773118E-01 + -3.9926045043871522E-01 -3.9239361999773847E-01 -3.8442669783975009E-01 + -3.7539584320716696E-01 -3.6534172203544552E-01 -3.5430984035201291E-01 + -3.4235096811921106E-01 -3.2952171956044202E-01 -3.1588347972452635E-01 + -3.0150118208399634E-01 -2.8644499931196754E-01 -2.7079124846920838E-01 + -2.5462009825504461E-01 -2.3801441610778401E-01 -2.2106059402909703E-01 + -2.0384910522051608E-01 -1.8647507393241317E-01 -1.6903891485783393E-01 + -1.5164679525519081E-01 -1.3440651681388871E-01 -1.1745340240404349E-01 + -1.0098519104088578E-01 -8.5206873286279142E-02 -7.0274635460782664E-02 + -5.6329502885600242E-02 -4.3522919937015632E-02 -3.2012510687853012E-02 + -2.1962293539145795E-02 -1.3543197669326504E-02 -6.9334587660583140E-03 + -2.3174713504108850E-03 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + -3.8868526898279711E+01 -3.8868526920275862E+01 -3.8868526924540674E+01 + -3.8868526924268110E+01 -3.8868526924995528E+01 -3.8868526924603572E+01 + -3.8868526924536141E+01 -3.8868526924478701E+01 -3.8868526923872004E+01 + -3.8868526923462404E+01 -3.8868526922737104E+01 -3.8868526921941942E+01 + -3.8868526921232771E+01 -3.8868526920231396E+01 -3.8868526919332254E+01 + -3.8868526918403454E+01 -3.8868526917151122E+01 -3.8868526915890754E+01 + -3.8868526914520778E+01 -3.8868526912958643E+01 -3.8868526911437499E+01 + -3.8868526909709580E+01 -3.8868526907979998E+01 -3.8868526906152539E+01 + -3.8868526904144709E+01 -3.8868526902003197E+01 -3.8868526899763197E+01 + -3.8868526897450828E+01 -3.8868526894980377E+01 -3.8868526892376053E+01 + -3.8868526889654973E+01 -3.8868526886828455E+01 -3.8868526883813345E+01 + -3.8868526880707336E+01 -3.8868526877424785E+01 -3.8868526874049302E+01 + -3.8868526870494300E+01 -3.8868526866831949E+01 -3.8868526862975571E+01 + -3.8868526858987821E+01 -3.8868526854851595E+01 -3.8868526850548491E+01 + -3.8868526846058735E+01 -3.8868526841361430E+01 -3.8868526836557749E+01 + -3.8868526831555016E+01 -3.8868526826383302E+01 -3.8868526821009546E+01 + -3.8868526815455930E+01 -3.8868526809684923E+01 -3.8868526803764674E+01 + -3.8868526797650460E+01 -3.8868526791298081E+01 -3.8868526784762231E+01 + -3.8868526777992940E+01 -3.8868526771035128E+01 -3.8868526763834247E+01 + -3.8868526756426725E+01 -3.8868526748754284E+01 -3.8868526740845887E+01 + -3.8868526732724185E+01 -3.8868526724324134E+01 -3.8868526715702821E+01 + -3.8868526706830181E+01 -3.8868526697674476E+01 -3.8868526688278571E+01 + -3.8868526678566333E+01 -3.8868526668573118E+01 -3.8868526658327248E+01 + -3.8868526647781060E+01 -3.8868526636920414E+01 -3.8868526625762129E+01 + -3.8868526614317304E+01 -3.8868526602559690E+01 -3.8868526590460476E+01 + -3.8868526578051451E+01 -3.8868526565295966E+01 -3.8868526552185998E+01 + -3.8868526538739054E+01 -3.8868526524937977E+01 -3.8868526510761889E+01 + -3.8868526496243419E+01 -3.8868526481324807E+01 -3.8868526466029401E+01 + -3.8868526450347233E+01 -3.8868526434264261E+01 -3.8868526417762197E+01 + -3.8868526400844750E+01 -3.8868526383510009E+01 -3.8868526365751386E+01 + -3.8868526347532914E+01 -3.8868526328863688E+01 -3.8868526309746784E+01 + -3.8868526290156694E+01 -3.8868526270086555E+01 -3.8868526249524670E+01 + -3.8868526228476341E+01 -3.8868526206897528E+01 -3.8868526184826663E+01 + -3.8868526162209825E+01 -3.8868526139073268E+01 -3.8868526115374586E+01 + -3.8868526091127976E+01 -3.8868526066321245E+01 -3.8868526040916542E+01 + -3.8868526014930303E+01 -3.8868525988333126E+01 -3.8868525961128761E+01 + -3.8868525933295153E+01 -3.8868525904823613E+01 -3.8868525875698630E+01 + -3.8868525845899164E+01 -3.8868525815432932E+01 -3.8868525784266076E+01 + -3.8868525752410115E+01 -3.8868525719835482E+01 -3.8868525686522922E+01 + -3.8868525652463610E+01 -3.8868525617657241E+01 -3.8868525582080352E+01 + -3.8868525545702468E+01 -3.8868525508518346E+01 -3.8868525470529626E+01 + -3.8868525431700199E+01 -3.8868525392016686E+01 -3.8868525351473295E+01 + -3.8868525310040965E+01 -3.8868525267712712E+01 -3.8868525224472492E+01 + -3.8868525180296764E+01 -3.8868525135167395E+01 -3.8868525089072151E+01 + -3.8868525041989500E+01 -3.8868524993890119E+01 -3.8868524944775331E+01 + -3.8868524894611262E+01 -3.8868524843380889E+01 -3.8868524791058640E+01 + -3.8868524737646638E+01 -3.8868524683100354E+01 -3.8868524627414878E+01 + -3.8868524570563586E+01 -3.8868524512509630E+01 -3.8868524453254516E+01 + -3.8868524392752946E+01 -3.8868524330997282E+01 -3.8868524267956396E+01 + -3.8868524203612225E+01 -3.8868524137934884E+01 -3.8868524070906446E+01 + -3.8868524002496812E+01 -3.8868523932687054E+01 -3.8868523861435008E+01 + -3.8868523788730386E+01 -3.8868523714538938E+01 -3.8868523638826019E+01 + -3.8868523561584496E+01 -3.8868523482774862E+01 -3.8868523402354469E+01 + -3.8868523320308491E+01 -3.8868523236607359E+01 -3.8868523151209466E+01 + -3.8868523064096848E+01 -3.8868522975228991E+01 -3.8868522884578667E+01 + -3.8868522792105502E+01 -3.8868522697789793E+01 -3.8868522601580359E+01 + -3.8868522503454813E+01 -3.8868522403367685E+01 -3.8868522301300644E+01 + -3.8868522197194849E+01 -3.8868522091034379E+01 -3.8868521982762736E+01 + -3.8868521872356148E+01 -3.8868521759758856E+01 -3.8868521644954050E+01 + -3.8868521527884347E+01 -3.8868521408513978E+01 -3.8868521286790731E+01 + -3.8868521162689795E+01 -3.8868521036153730E+01 -3.8868520907143470E+01 + -3.8868520775610136E+01 -3.8868520641513818E+01 -3.8868520504804017E+01 + -3.8868520365430790E+01 -3.8868520223354615E+01 -3.8868520078513718E+01 + -3.8868519930869844E+01 -3.8868519780361616E+01 -3.8868519626942813E+01 + -3.8868519470557139E+01 -3.8868519311155218E+01 -3.8868519148683056E+01 + -3.8868518983079056E+01 -3.8868518814289409E+01 -3.8868518642257882E+01 + -3.8868518466927910E+01 -3.8868518288233247E+01 -3.8868518106118621E+01 + -3.8868517920518016E+01 -3.8868517731374531E+01 -3.8868517538613517E+01 + -3.8868517342180056E+01 -3.8868517142006219E+01 -3.8868516938018196E+01 + -3.8868516730151882E+01 -3.8868516518341302E+01 -3.8868516302505725E+01 + -3.8868516082583810E+01 -3.8868515858492501E+01 -3.8868515630160616E+01 + -3.8868515397511004E+01 -3.8868515160470587E+01 -3.8868514918953466E+01 + -3.8868514672886931E+01 -3.8868514422178741E+01 -3.8868514166758239E+01 + -3.8868513906528719E+01 -3.8868513641412868E+01 -3.8868513371321278E+01 + -3.8868513096161323E+01 -3.8868512815842244E+01 -3.8868512530277528E+01 + -3.8868512239366012E+01 -3.8868511943018525E+01 -3.8868511641129693E+01 + -3.8868511333612915E+01 -3.8868511020354482E+01 -3.8868510701261819E+01 + -3.8868510376222744E+01 -3.8868510045138883E+01 -3.8868509707895228E+01 + -3.8868509364387904E+01 -3.8868509014499082E+01 -3.8868508658119268E+01 + -3.8868508295127626E+01 -3.8868507925417397E+01 -3.8868507548859753E+01 + -3.8868507165333078E+01 -3.8868506774712934E+01 -3.8868506376878699E+01 + -3.8868505971696614E+01 -3.8868505559037956E+01 -3.8868505138766551E+01 + -3.8868504710756348E+01 -3.8868504274859433E+01 -3.8868503830942650E+01 + -3.8868503378856815E+01 -3.8868502918463754E+01 -3.8868502449610574E+01 + -3.8868501972152252E+01 -3.8868501485930182E+01 -3.8868500990793500E+01 + -3.8868500486579187E+01 -3.8868499973135457E+01 -3.8868499450291708E+01 + -3.8868498917881674E+01 -3.8868498375735044E+01 -3.8868497823685281E+01 + -3.8868497261548583E+01 -3.8868496689154590E+01 -3.8868496106316158E+01 + -3.8868495512851865E+01 -3.8868494908570540E+01 -3.8868494293285849E+01 + -3.8868493666794912E+01 -3.8868493028911715E+01 -3.8868492379420672E+01 + -3.8868491718131054E+01 -3.8868491044822541E+01 -3.8868490359291570E+01 + -3.8868489661313923E+01 -3.8868488950680138E+01 -3.8868488227156689E+01 + -3.8868487490525546E+01 -3.8868486740546807E+01 -3.8868485976993725E+01 + -3.8868485199616913E+01 -3.8868484408186085E+01 -3.8868483602438474E+01 + -3.8868482782136191E+01 -3.8868481947007893E+01 -3.8868481096809248E+01 + -3.8868480231258218E+01 -3.8868479350099285E+01 -3.8868478453045775E+01 + -3.8868477539828241E+01 -3.8868476610152548E+01 -3.8868475663737847E+01 + -3.8868474700281581E+01 -3.8868473719493309E+01 -3.8868472721055525E+01 + -3.8868471704673986E+01 -3.8868470670017587E+01 -3.8868469616780594E+01 + -3.8868468544623163E+01 -3.8868467453223531E+01 -3.8868466342232118E+01 + -3.8868465211319680E+01 -3.8868464060121333E+01 -3.8868462888296150E+01 + -3.8868461695464191E+01 -3.8868460481277687E+01 -3.8868459245341604E+01 + -3.8868457987293468E+01 -3.8868456706728978E+01 -3.8868455403267490E+01 + -3.8868454076491282E+01 -3.8868452726012677E+01 -3.8868451351393787E+01 + -3.8868449952234464E+01 -3.8868448528082062E+01 -3.8868447078520425E+01 + -3.8868445603084446E+01 -3.8868444101339350E+01 -3.8868442572806885E+01 + -3.8868441017036858E+01 -3.8868439433533759E+01 -3.8868437821829950E+01 + -3.8868436181412832E+01 -3.8868434511801645E+01 -3.8868432812462892E+01 + -3.8868431082901246E+01 -3.8868429322563983E+01 -3.8868427530935868E+01 + -3.8868425707447109E+01 -3.8868423851562639E+01 -3.8868421962694981E+01 + -3.8868420040289628E+01 -3.8868418083737851E+01 -3.8868416092466767E+01 + -3.8868414065845343E+01 -3.8868412003282565E+01 -3.8868409904122707E+01 + -3.8868407767755279E+01 -3.8868405593501897E+01 -3.8868403380731841E+01 + -3.8868401128741183E+01 -3.8868398836876892E+01 -3.8868396504412026E+01 + -3.8868394130668193E+01 -3.8868391714894905E+01 -3.8868389256391680E+01 + -3.8868386754379543E+01 -3.8868384208133406E+01 -3.8868381616848559E+01 + -3.8868378979772778E+01 -3.8868376296074167E+01 -3.8868373564975386E+01 + -3.8868370785614225E+01 -3.8868367957185704E+01 -3.8868365078798668E+01 + -3.8868362149619394E+01 -3.8868359168724638E+01 -3.8868356135253336E+01 + -3.8868353048249602E+01 -3.8868349906822090E+01 -3.8868346709981289E+01 + -3.8868343456803714E+01 -3.8868340146267762E+01 -3.8868336777416580E+01 + -3.8868333349192092E+01 -3.8868329860605279E+01 -3.8868326310560391E+01 + -3.8868322698033047E+01 -3.8868319021890812E+01 -3.8868315281074374E+01 + -3.8868311474409992E+01 -3.8868307600800250E+01 -3.8868303659031426E+01 + -3.8868299647970737E+01 -3.8868295566359762E+01 -3.8868291413024750E+01 + -3.8868287186665512E+01 -3.8868282886066190E+01 -3.8868278509882273E+01 + -3.8868274056855029E+01 -3.8868269525593391E+01 -3.8868264914793571E+01 + -3.8868260223016378E+01 -3.8868255448914013E+01 -3.8868250590994201E+01 + -3.8868245647864768E+01 -3.8868240617982231E+01 -3.8868235499902234E+01 + -3.8868230292029253E+01 -3.8868224992869138E+01 -3.8868219600770495E+01 + -3.8868214114187211E+01 -3.8868208531409884E+01 -3.8868202850838401E+01 + -3.8868197070704319E+01 -3.8868191189351535E+01 -3.8868185204949278E+01 + -3.8868179115784073E+01 -3.8868172919961729E+01 -3.8868166615709967E+01 + -3.8868160201066651E+01 -3.8868153674198858E+01 -3.8868147033076376E+01 + -3.8868140275800769E+01 -3.8868133400272434E+01 -3.8868126404526613E+01 + -3.8868119286390062E+01 -3.8868112043830010E+01 -3.8868104674598257E+01 + -3.8868097176589863E+01 -3.8868089547477865E+01 -3.8868081785086311E+01 + -3.8868073887005970E+01 -3.8868065850983811E+01 -3.8868057674527989E+01 + -3.8868049355306745E+01 -3.8868040890741042E+01 -3.8868032278419335E+01 + -3.8868023515671986E+01 -3.8868014600002532E+01 -3.8868005528648830E+01 + -3.8867996299027538E+01 -3.8867986908281026E+01 -3.8867977353735419E+01 + -3.8867967632433647E+01 -3.8867957741608322E+01 -3.8867947678199897E+01 + -3.8867937439344907E+01 -3.8867927021876923E+01 -3.8867916422831712E+01 + -3.8867905638933536E+01 -3.8867894667116012E+01 -3.8867883503988487E+01 + -3.8867872146376904E+01 -3.8867860590773169E+01 -3.8867848833893724E+01 + -3.8867836872107191E+01 -3.8867824702015625E+01 -3.8867812319861670E+01 + -3.8867799722129959E+01 -3.8867786904931748E+01 -3.8867773864628283E+01 + -3.8867760597196458E+01 -3.8867747098870602E+01 -3.8867733365487638E+01 + -3.8867719393151049E+01 -3.8867705177552416E+01 -3.8867690714660341E+01 + -3.8867676000016004E+01 -3.8867661029447248E+01 -3.8867645798341030E+01 + -3.8867630302379276E+01 -3.8867614536788729E+01 -3.8867598497101547E+01 + -3.8867582178377724E+01 -3.8867565575993908E+01 -3.8867548684838710E+01 + -3.8867531500127249E+01 -3.8867514016570723E+01 -3.8867496229218062E+01 + -3.8867478132596588E+01 -3.8867459721582449E+01 -3.8867440990511753E+01 + -3.8867421934084234E+01 -3.8867402546438477E+01 -3.8867382822088665E+01 + -3.8867362754970408E+01 -3.8867342339407486E+01 -3.8867321569124591E+01 + -3.8867300438246346E+01 -3.8867278940280620E+01 -3.8867257069147819E+01 + -3.8867234818128992E+01 -3.8867212180934303E+01 -3.8867189150610493E+01 + -3.8867165720648806E+01 -3.8867141883854742E+01 -3.8867117633492626E+01 + -3.8867092962118249E+01 -3.8867067862761296E+01 -3.8867042327719020E+01 + -3.8867016349778311E+01 -3.8866989920968749E+01 -3.8866963033826607E+01 + -3.8866935680104262E+01 -3.8866907852078356E+01 -3.8866879541214537E+01 + -3.8866850739520736E+01 -3.8866821438166262E+01 -3.8866791628880826E+01 + -3.8866761302526712E+01 -3.8866730450546676E+01 -3.8866699063484631E+01 + -3.8866667132486249E+01 -3.8866634647766652E+01 -3.8866601600163435E+01 + -3.8866567979551647E+01 -3.8866533776450474E+01 -3.8866498980383597E+01 + -3.8866463581539094E+01 -3.8866427569077423E+01 -3.8866390932846087E+01 + -3.8866353661628331E+01 -3.8866315744918410E+01 -3.8866277171110085E+01 + -3.8866237929332399E+01 -3.8866198007575626E+01 -3.8866157394590942E+01 + -3.8866116077951460E+01 -3.8866074046017388E+01 -3.8866031285929580E+01 + -3.8865987785643824E+01 -3.8865943531854427E+01 -3.8865898512098383E+01 + -3.8865852712607463E+01 -3.8865806120485544E+01 -3.8865758721486173E+01 + -3.8865710502264953E+01 -3.8865661448080807E+01 -3.8865611545124914E+01 + -3.8865560778144044E+01 -3.8865509132850121E+01 -3.8865456593459513E+01 + -3.8865403145187706E+01 -3.8865348771702834E+01 -3.8865293457706301E+01 + -3.8865237186299353E+01 -3.8865179941651164E+01 -3.8865121706276106E+01 + -3.8865062463793734E+01 -3.8865002196111021E+01 -3.8864940886277523E+01 + -3.8864878515572052E+01 -3.8864815066455655E+01 -3.8864750519556509E+01 + -3.8864684856726406E+01 -3.8864618057920708E+01 -3.8864550104360113E+01 + -3.8864480975304183E+01 -3.8864410651321329E+01 -3.8864339110950731E+01 + -3.8864266334085301E+01 -3.8864192298518972E+01 -3.8864116983446813E+01 + -3.8864040365890929E+01 -3.8863962424323468E+01 -3.8863883134969122E+01 + -3.8863802475551694E+01 -3.8863720421470305E+01 -3.8863636949675254E+01 + -3.8863552034711169E+01 -3.8863465652727768E+01 -3.8863377777385367E+01 + -3.8863288384005820E+01 -3.8863197445334805E+01 -3.8863104935836361E+01 + -3.8863010827310411E+01 -3.8862915093333562E+01 -3.8862817704726858E+01 + -3.8862718634149537E+01 -3.8862617851409233E+01 -3.8862515328215437E+01 + -3.8862411033327859E+01 -3.8862304937473333E+01 -3.8862197008326753E+01 + -3.8862087215598670E+01 -3.8861975525841736E+01 -3.8861861907714456E+01 + -3.8861746326608667E+01 -3.8861628750094170E+01 -3.8861509142361371E+01 + -3.8861387469854108E+01 -3.8861263695519973E+01 -3.8861137784637151E+01 + -3.8861009698867441E+01 -3.8860879402283032E+01 -3.8860746855215524E+01 + -3.8860612020489320E+01 -3.8860474857058861E+01 -3.8860335326458213E+01 + -3.8860193386217382E+01 -3.8860048996534601E+01 -3.8859902113466006E+01 + -3.8859752695828043E+01 -3.8859600698151617E+01 -3.8859446077823478E+01 + -3.8859288787796700E+01 -3.8859128783978818E+01 -3.8858966017690129E+01 + -3.8858800443307352E+01 -3.8858632010461953E+01 -3.8858460671946595E+01 + -3.8858286375645051E+01 -3.8858109072711613E+01 -3.8857928709221440E+01 + -3.8857745234633597E+01 -3.8857558593152291E+01 -3.8857368732481859E+01 + -3.8857175594891203E+01 -3.8856979126269572E+01 -3.8856779266882810E+01 + -3.8856575960742369E+01 -3.8856369146041885E+01 -3.8856158764849134E+01 + -3.8855944753214303E+01 -3.8855727051194755E+01 -3.8855505592622066E+01 + -3.8855280315473642E+01 -3.8855051151285977E+01 -3.8854818035883874E+01 + -3.8854580898429518E+01 -3.8854339672520808E+01 -3.8854094284863258E+01 + -3.8853844666750589E+01 -3.8853590742346299E+01 -3.8853332440560294E+01 + -3.8853069682926460E+01 -3.8852802395887885E+01 -3.8852530498257416E+01 + -3.8852253913926681E+01 -3.8851972558893110E+01 -3.8851686354407661E+01 + -3.8851395213555648E+01 -3.8851099054856178E+01 -3.8850797788380802E+01 + -3.8850491329822468E+01 -3.8850179586135219E+01 -3.8849862470087146E+01 + -3.8849539885407040E+01 -3.8849211741837415E+01 -3.8848877939769856E+01 + -3.8848538385816290E+01 -3.8848192976915797E+01 -3.8847841616441599E+01 + -3.8847484197760842E+01 -3.8847120620895311E+01 -3.8846750775516732E+01 + -3.8846374558180351E+01 -3.8845991854734358E+01 -3.8845602558146368E+01 + -3.8845206550309683E+01 -3.8844803720480662E+01 -3.8844393946460031E+01 + -3.8843977113664607E+01 -3.8843553095661420E+01 -3.8843121773894836E+01 + -3.8842683017551693E+01 -3.8842236703966236E+01 -3.8841782697794002E+01 + -3.8841320872117265E+01 -3.8840851086903250E+01 -3.8840373210834898E+01 + -3.8839887099029674E+01 -3.8839392615618948E+01 -3.8838889610702765E+01 + -3.8838377943703371E+01 -3.8837857459530333E+01 -3.8837328012733984E+01 + -3.8836789442854041E+01 -3.8836241599400616E+01 -3.8835684316357934E+01 + -3.8835117438021932E+01 -3.8834540792629639E+01 -3.8833954219082145E+01 + -3.8833357539671155E+01 -3.8832750587716703E+01 -3.8832133179359893E+01 + -3.8831505142146760E+01 -3.8830866285855961E+01 -3.8830216432059657E+01 + -3.8829555383954592E+01 -3.8828882956933121E+01 -3.8828198947382830E+01 + -3.8827503164302932E+01 -3.8826795397037309E+01 -3.8826075447970759E+01 + -3.8825343099161095E+01 -3.8824598146150748E+01 -3.8823840363459666E+01 + -3.8823069539551767E+01 -3.8822285441150143E+01 -3.8821487849395538E+01 + -3.8820676522945590E+01 -3.8819851235365434E+01 -3.8819011736969394E+01 + -3.8818157793485810E+01 -3.8817289146598583E+01 -3.8816405553928803E+01 + -3.8815506748233318E+01 -3.8814592478746171E+01 -3.8813662468989925E+01 + -3.8812716459522861E+01 -3.8811754164315914E+01 -3.8810775314952167E+01 + -3.8809779615522615E+01 -3.8808766788326267E+01 -3.8807736527234603E+01 + -3.8806688544942517E+01 -3.8805622524751215E+01 -3.8804538169420681E+01 + -3.8803435151318801E+01 -3.8802313162929146E+01 -3.8801171865310749E+01 + -3.8800010940316518E+01 -3.8798830037309287E+01 -3.8797628827145743E+01 + -3.8796406947090965E+01 -3.8795164056627328E+01 -3.8793899780507850E+01 + -3.8792613766449179E+01 -3.8791305626263338E+01 -3.8789974995497211E+01 + -3.8788621472579038E+01 -3.8787244680467168E+01 -3.8785844203747793E+01 + -3.8784419652358942E+01 -3.8782970596571182E+01 -3.8781496632854910E+01 + -3.8779997316675562E+01 -3.8778472230573833E+01 -3.8776920914704270E+01 + -3.8775342937199660E+01 -3.8773737822380490E+01 -3.8772105123478148E+01 + -3.8770444348438694E+01 -3.8768755035080630E+01 -3.8767036674417277E+01 + -3.8765288788326593E+01 -3.8763510850311384E+01 -3.8761702365763298E+01 + -3.8759862790078351E+01 -3.8757991611597340E+01 -3.8756088266992940E+01 + -3.8754152226971748E+01 -3.8752182908846301E+01 -3.8750179765086372E+01 + -3.8748142192985412E+01 -3.8746069626153250E+01 -3.8743961441184766E+01 + -3.8741817052185390E+01 -3.8739635814348659E+01 -3.8737417121610036E+01 + -3.8735160307035777E+01 -3.8732864743703246E+01 -3.8730529741801725E+01 + -3.8728154652839621E+01 -3.8725738763354187E+01 -3.8723281402550278E+01 + -3.8720781832513197E+01 -3.8718239359384782E+01 -3.8715653219971998E+01 + -3.8713022696569332E+01 -3.8710346999851744E+01 -3.8707625387455749E+01 + -3.8704857043043219E+01 -3.8702041198754905E+01 -3.8699177010329237E+01 + -3.8696263683546476E+01 -3.8693300345281571E+01 -3.8690286174060532E+01 + -3.8687220266924797E+01 -3.8684101774222370E+01 -3.8680929762159352E+01 + -3.8677703351952893E+01 -3.8674421577939320E+01 -3.8671083531219260E+01 + -3.8667688213192591E+01 -3.8664234683826514E+01 -3.8660721910481996E+01 + -3.8657148920942603E+01 -3.8653514647393756E+01 -3.8649818084350478E+01 + -3.8646058127649432E+01 -3.8642233737417101E+01 -3.8638343771931005E+01 + -3.8634387155772828E+01 -3.8630362708411923E+01 -3.8626269317691602E+01 + -3.8622105762985072E+01 -3.8617870894164852E+01 -3.8613563449179189E+01 + -3.8609182238658370E+01 -3.8604725957755207E+01 -3.8600193376545384E+01 + -3.8595583145973428E+01 -3.8590893994205693E+01 -3.8586124526521822E+01 + -3.8581273427781667E+01 -3.8576339256097782E+01 -3.8571320651582262E+01 + -3.8566216123632636E+01 -3.8561024266125656E+01 -3.8555743538149130E+01 + -3.8550372485810797E+01 -3.8544909516244871E+01 -3.8539353126208177E+01 + -3.8533701669188062E+01 -3.8527953590959918E+01 -3.8522107189620137E+01 + -3.8516160858280905E+01 -3.8510112837851644E+01 -3.8503961467048235E+01 + -3.8497704927744259E+01 -3.8491341502472736E+01 -3.8484869312167724E+01 + -3.8478286581339077E+01 -3.8471591368022345E+01 -3.8464781836807894E+01 + -3.8457855980816866E+01 -3.8450811902767221E+01 -3.8443647528792489E+01 + -3.8436360897726288E+01 -3.8428949866582549E+01 -3.8421412408239753E+01 + -3.8413746308399432E+01 -3.8405949471853553E+01 -3.8398019610738437E+01 + -3.8389954559565062E+01 -3.8381751954589348E+01 -3.8373409557784811E+01 + -3.8364924927148465E+01 -3.8356295749794668E+01 -3.8347519503019797E+01 + -3.8338593796691939E+01 -3.8329516024900194E+01 -3.8320283717812494E+01 + -3.8310894183738462E+01 -3.8301344870624483E+01 -3.8291632998362743E+01 + -3.8281755930087634E+01 -3.8271710794568939E+01 -3.8261494867469168E+01 + -3.8251105183664087E+01 -3.8240538928613987E+01 -3.8229793040461097E+01 + -3.8218864611661893E+01 -3.8207750480718460E+01 -3.8196447644210139E+01 + -3.8184952838024373E+01 -3.8173262959917906E+01 -3.8161374640121494E+01 + -3.8149284674551183E+01 -3.8136989584672570E+01 -3.8124486061470044E+01 + -3.8111770514468098E+01 -3.8098839526556787E+01 -3.8085689392078407E+01 + -3.8072316582592606E+01 -3.8058717273953718E+01 -3.8044887823083982E+01 + -3.8030824283980941E+01 -3.8016522895550700E+01 -3.8001979586503587E+01 + -3.7987190474281299E+01 -3.7972151358817577E+01 -3.7956858232573012E+01 + -3.7941306763157847E+01 -3.7925492814468448E+01 -3.7909411918191324E+01 + -3.7893059806010655E+01 -3.7876431870038850E+01 -3.7859523706038637E+01 + -3.7842330562850933E+01 -3.7824847896549372E+01 -3.7807070808965314E+01 + -3.7788994612660666E+01 -3.7770614258682123E+01 -3.7751924912207976E+01 + -3.7732921369694992E+01 -3.7713598645020490E+01 -3.7693951376223204E+01 + -3.7673974421923738E+01 -3.7653662257898539E+01 -3.7633009583523915E+01 + -3.7612010708463437E+01 -3.7590660168837751E+01 -3.7568952104350231E+01 + -3.7546880883839670E+01 -3.7524440473216366E+01 -3.7501625070006362E+01 + -3.7478428462521663E+01 -3.7454844672952113E+01 -3.7430867308246484E+01 + -3.7406490211256141E+01 -3.7381706803859039E+01 -3.7356510745600865E+01 + -3.7330895269656040E+01 -3.7304853848350120E+01 -3.7278379522615936E+01 + -3.7251465573716018E+01 -3.7224104846920326E+01 -3.7196290428679262E+01 + -3.7168014965319671E+01 -3.7139271344848837E+01 -3.7110052011540240E+01 + -3.7080349651471586E+01 -3.7050156503953176E+01 -3.7019465049823729E+01 + -3.6988267320755568E+01 -3.6956555589249923E+01 -3.6924321676941268E+01 + -3.6891557645146044E+01 -3.6858255103378859E+01 -3.6824405899218235E+01 + -3.6790001428345043E+01 -3.6755033322393338E+01 -3.6719492761918019E+01 + -3.6683371160804185E+01 -3.6646659483673680E+01 -3.6609348925324120E+01 + -3.6571430234193130E+01 -3.6532894385190197E+01 -3.6493731910950920E+01 + -3.6453933566318589E+01 -3.6413489669231261E+01 -3.6372390755001085E+01 + -3.6330626928797173E+01 -3.6288188507755677E+01 -3.6245065387142787E+01 + -3.6201247668212098E+01 -3.6156725040259779E+01 -3.6111487392026348E+01 + -3.6065524211982463E+01 -3.6018825180955197E+01 -3.5971379593112175E+01 + -3.5923176927371017E+01 -3.5874206291686264E+01 -3.5824456970676131E+01 + -3.5773917895949097E+01 -3.5722578167264949E+01 -3.5670426551777460E+01 + -3.5617451975918577E+01 -3.5563643056572758E+01 -3.5508988560757452E+01 + -3.5453476971882012E+01 -3.5397096914177219E+01 -3.5339836757331028E+01 + -3.5281685002505228E+01 -3.5222629928781501E+01 -3.5162659937485692E+01 + -3.5101763244016269E+01 -3.5039928177091966E+01 -3.4977142919669902E+01 + -3.4913395759620215E+01 -3.4848674883585979E+01 -3.4782968575486088E+01 + -3.4716265067294465E+01 -3.4648552681682027E+01 -3.4579819743821332E+01 + -3.4510054664388306E+01 -3.4439245916625374E+01 -3.4367382055824692E+01 + -3.4294451766017808E+01 -3.4220443811977837E+01 -3.4145347160008363E+01 + -3.4069150858427143E+01 -3.3991844237034741E+01 -3.3913416711963521E+01 + -3.3833858068508825E+01 -3.3753158186126633E+01 -3.3671307409421289E+01 + -3.3588296188981595E+01 -3.3504115545387144E+01 -3.3418756621476554E+01 + -3.3332211244305135E+01 -3.3244471384313684E+01 -3.3155529820230264E+01 + -3.3065379500439477E+01 -3.2974014315876516E+01 -3.2881428358697647E+01 + -3.2787616808246149E+01 -3.2692575081874473E+01 -3.2596299839056712E+01 + -3.2498788018917352E+01 -3.2400037967568565E+01 -3.2300048356475848E+01 + -3.2198819438103435E+01 -3.2096351838752270E+01 -3.1992647947602936E+01 + -3.1887710577053689E+01 -3.1781544490258327E+01 -3.1674154921316426E+01 + -3.1565549246506105E+01 -3.1455735355847473E+01 -3.1344723473490308E+01 + -3.1232524371304930E+01 -3.1119151344353490E+01 -3.1004618256272241E+01 + -3.0888941676530038E+01 -3.0772138746490374E+01 -3.0654229486308960E+01 + -3.0535234469555647E+01 -3.0415177308951861E+01 -3.0294082125744172E+01 + -3.0171976224212258E+01 -3.0048887338108575E+01 -2.9924846501408926E+01 + -2.9799885043990841E+01 -2.9674037654398759E+01 -2.9547339070941174E+01 + -2.9419827297239607E+01 -2.9291539872242907E+01 -2.9162517111077932E+01 + -2.9032797695229302E+01 -2.8902421609538276E+01 -2.8771397655606904E+01 + -2.8640052747132192E+01 -2.8508700389422049E+01 -2.8370720617984741E+01 + -2.8219175207974168E+01 -2.8060176305554084E+01 -2.7900247036787185E+01 + -2.7739179033227888E+01 -2.7576711702198185E+01 -2.7412905092681505E+01 + -2.7247790075676853E+01 -2.7081399801972310E+01 -2.6913765669730086E+01 + -2.6744921860286198E+01 -2.6574901489182132E+01 -2.6403740683623067E+01 + -2.6231474980629915E+01 -2.6058142927461745E+01 -2.5883782797602869E+01 + -2.5708435694990481E+01 -2.5532142659399476E+01 -2.5354947250920898E+01 + -2.5176893113787120E+01 -2.4998026011716153E+01 -2.4818391915199069E+01 + -2.4638038452736371E+01 -2.4457013582210390E+01 -2.4275366418737903E+01 + -2.4093146546466656E+01 -2.3910404181287646E+01 -2.3727190175403518E+01 + -2.3543555472794928E+01 -2.3359551855174512E+01 -2.3175230649916049E+01 + -2.2990644262380147E+01 -2.2805844100086670E+01 -2.2620882932567785E+01 + -2.2435812001826758E+01 -2.2250684246510652E+01 -2.2065550577033303E+01 + -2.1880463995610036E+01 -2.1695475024484253E+01 -2.1510636746734800E+01 + -2.1325999387533678E+01 -2.1141616291960183E+01 -2.0957537671605053E+01 + -2.0773817524261922E+01 -2.0590506571156137E+01 -2.0407660100432732E+01 + -2.0225330183728854E+01 -2.0043574609449184E+01 -1.9862447026455328E+01 + -1.9682003826423326E+01 -1.9502301973937165E+01 -1.9323405501555673E+01 + -1.9145382267396755E+01 -1.8968302936132584E+01 -1.8792241861352046E+01 + -1.8617277582824798E+01 -1.8443493444440470E+01 -1.8270978182875147E+01 + -1.8099826430463587E+01 -1.7930134553852927E+01 -1.7762026575145025E+01 + -1.7595689030160219E+01 -1.7431315832746158E+01 -1.7269052187910358E+01 + -1.7109028259254199E+01 -1.6951384722783025E+01 -1.6796268547701271E+01 + -1.6643833188944019E+01 -1.6494239120334250E+01 -1.6347654211754122E+01 + -1.6204252595248057E+01 -1.6064328860697543E+01 -1.5927891887771178E+01 + -1.5792614215586516E+01 -1.5658485949904357E+01 -1.5525497280939454E+01 + -1.5393638490813260E+01 -1.5262899944529401E+01 -1.5133272095957926E+01 + -1.5004745480331746E+01 -1.4877310719008429E+01 -1.4750958513236206E+01 + -1.4625679647902791E+01 -1.4501464986357018E+01 -1.4378305473322149E+01 + -1.4256192130592092E+01 -1.4135116059258518E+01 -1.4015068436129081E+01 + -1.3896040515393709E+01 -1.3778023625636466E+01 -1.3661009171046341E+01 + -1.3544988628914869E+01 -1.3429953550479027E+01 -1.3315895558815328E+01 + -1.3202806349386915E+01 -1.3090677688260257E+01 -1.2979501412415868E+01 + -1.2869269428226543E+01 -1.2759973711580864E+01 -1.2651606306572358E+01 + -1.2544159325475922E+01 -1.2437624947606997E+01 -1.2331995419183079E+01 + -1.2227263052319788E+01 -1.2123420224803384E+01 -1.2020459379196906E+01 + -1.1918373022544756E+01 -1.1817153725566959E+01 -1.1716794122312866E+01 + -1.1617286909425873E+01 -1.1518624845759630E+01 -1.1420800751699577E+01 + -1.1323807508751766E+01 -1.1227638058910438E+01 -1.1132285404227760E+01 + -1.1037742606218528E+01 -1.0944002785417458E+01 -1.0851059120813998E+01 + -1.0758904849402175E+01 -1.0667533265640362E+01 -1.0576937720997178E+01 + -1.0487111623432195E+01 -1.0398048436940897E+01 -1.0309741681052879E+01 + -1.0222184930378223E+01 -1.0135371814120541E+01 -1.0049296015626451E+01 + -9.9639512719116397E+00 -9.8793313731522385E+00 -9.7954301623014306E+00 + -9.7122415346947122E+00 -9.6297594375345010E+00 -9.5479778694491877E+00 + -9.4668908800559493E+00 -9.3864925695274462E+00 -9.3067770881619598E+00 + -9.2277386359574329E+00 -9.1493714621889701E+00 -9.0716698649899179E+00 + -8.9946281909366981E+00 -8.9182408346369737E+00 -8.8425022383213552E+00 + -8.7674068914387320E+00 -8.6929493302547982E+00 -8.6191241374542500E+00 + -8.5459259417461748E+00 -8.4733494174728516E+00 -8.4013892842219811E+00 + -8.3300403064420099E+00 -8.2592972930609658E+00 -8.1891550971083422E+00 + -8.1196086153402636E+00 -8.0506527878679037E+00 -7.9822825977889815E+00 + -7.9144930708223722E+00 -7.8472792749459774E+00 -7.7806363200374413E+00 + -7.7145593575181755E+00 -7.6490435800002254E+00 -7.5840842209361670E+00 + -7.5196765542721042E+00 -7.4558158941034911E+00 -7.3924975943338715E+00 + -7.3297170483366747E+00 -7.2674696886196681E+00 -7.2057509864924736E+00 + -7.1445564517367872E+00 -7.0838816322793789E+00 -7.0237221138680255E+00 + -6.9640735197500003E+00 -6.9049315103534861E+00 -6.8462917829715675E+00 + -6.7881500714489187E+00 -6.7305021458712675E+00 -6.6733438122573761E+00 + -6.6166709122536576E+00 -6.5604793228315028E+00 -6.5047649559869969E+00 + -6.4495237584433776E+00 -6.3947517113558989E+00 -6.3404448300192016E+00 + -6.2865991635772867E+00 -6.2332107947358404E+00 -6.1802758394770159E+00 + -6.1277904467767392E+00 -6.0757507983242709E+00 -6.0241531082442927E+00 + -5.9729936228212734E+00 -5.9222686202261583E+00 -5.8719744102455058E+00 + -5.8221073340127507E+00 -5.7726637637419262E+00 -5.7236401024635359E+00 + -5.6750327837626733E+00 -5.6268382715194614E+00 -5.5790530596516099E+00 + -5.5316736718591519E+00 -5.4846966613714629E+00 -5.4381186106962751E+00 + -5.3919361313709695E+00 -5.3461458637158943E+00 -5.3007444765897720E+00 + -5.2557286671472792E+00 -5.2110951605985916E+00 -5.1668407099709883E+00 + -5.1229620958725599E+00 -5.0794561262577949E+00 -5.0363196361953024E+00 + -4.9935494876374023E+00 -4.9511425691916875E+00 -4.9090957958946166E+00 + -4.8674061089868861E+00 -4.8260704756908632E+00 -4.7850858889898049E+00 + -4.7444493674089658E+00 -4.7041579547986361E+00 -4.6642087201189559E+00 + -4.6245987572265497E+00 -4.5853251846630618E+00 -4.5463851454453703E+00 + -4.5077758068576967E+00 -4.4694943602454069E+00 -4.4315380208105690E+00 + -4.3939040274093122E+00 -4.3565896423508450E+00 -4.3195921511981732E+00 + -4.2829088625705971E+00 -4.2465371079477681E+00 -4.2104742414755245E+00 + -4.1747176397733092E+00 -4.1392647017432065E+00 -4.1041128483807023E+00 + -4.0692595225869175E+00 -4.0347021889825587E+00 -4.0004383337233840E+00 + -3.9664654643172170E+00 -3.9327811094426064E+00 -3.8993828187689368E+00 + -3.8662681627780899E+00 -3.8334347325876759E+00 -3.8008801397756771E+00 + -3.7686020162066671E+00 -3.7365980138594583E+00 -3.7048658046561997E+00 + -3.6734030802929936E+00 -3.6422075520718926E+00 -3.6112769507343199E+00 + -3.5806090262959755E+00 -3.5502015478830451E+00 -3.5200523035699001E+00 + -3.4901591002181092E+00 -3.4605197633168205E+00 -3.4311321368245635E+00 + -3.4019940830123030E+00 -3.3731034823079136E+00 -3.3444582331419199E+00 + -3.3160562517945484E+00 -3.2878954722441276E+00 -3.2599738460167300E+00 + -3.2322893420370837E+00 -3.2048399464808193E+00 -3.1776236626278744E+00 + -3.1506385107172381E+00 -3.1238825278028703E+00 -3.0973537676108438E+00 + -3.0710503003977547E+00 -3.0449702128102798E+00 -3.0191116077459350E+00 + -2.9934726042150648E+00 -2.9680513372039248E+00 -2.9428459575390149E+00 + -2.9178546317525007E+00 -2.8930755419487864E+00 -2.8685068856722720E+00 + -2.8441468757761554E+00 -2.8199937402924280E+00 -2.7960457223029218E+00 + -2.7723010798114536E+00 -2.7487580856171001E+00 -2.7254150271885074E+00 + -2.7022702065392643E+00 -2.6793219401043853E+00 -2.6565685586177739E+00 + -2.6340084069907914E+00 -2.6116398441918189E+00 -2.5894612431268329E+00 + -2.5674709905210480E+00 -2.5456674868015154E+00 -2.5240491459807215E+00 + -2.5026143955412246E+00 -2.4813616763211956E+00 -2.4602894424010104E+00 + -2.4393961609907464E+00 -2.4186803123186515E+00 -2.3981403895205862E+00 + -2.3777748985303733E+00 -2.3575823579710762E+00 -2.3375612990472452E+00 + -2.3177102654380177E+00 -2.2980278131911853E+00 -2.2785125106181181E+00 + -2.2591629381895917E+00 -2.2399776884325266E+00 -2.2209553658275567E+00 + -2.2020945867075179E+00 -2.1833939791567651E+00 -2.1648521829113458E+00 + -2.1464678492600493E+00 -2.1282396409462732E+00 -2.1101662320707137E+00 + -2.0922463079949232E+00 -2.0744785652456352E+00 -2.0568617114199523E+00 + -2.0393944650913074E+00 -2.0220755557162167E+00 -2.0049037235418683E+00 + -1.9878777195144537E+00 -1.9709963051882828E+00 -1.9542582526357073E+00 + -1.9376623443577503E+00 -1.9212073731955577E+00 -1.9048921422425580E+00 + -1.8887154647573732E+00 -1.8726761640775009E+00 -1.8567730735336823E+00 + -1.8410050363650461E+00 -1.8253709056349379E+00 -1.8098695441474693E+00 + -1.7944998243648003E+00 -1.7792606283251007E+00 -1.7641508475612022E+00 + -1.7491693830199804E+00 -1.7343151449823673E+00 -1.7195870529840955E+00 + -1.7049840357370811E+00 -1.6905050310514795E+00 -1.6761489857584226E+00 + -1.6619148556333931E+00 -1.6478016053202458E+00 -1.6338082082559049E+00 + -1.6199336465956560E+00 -1.6061769111391184E+00 -1.5925370012568143E+00 + -1.5790129248173657E+00 -1.5656036981153345E+00 -1.5523083457996363E+00 + -1.5391259008026013E+00 -1.5260554042696126E+00 -1.5130959054893411E+00 + -1.5002464618245979E+00 -1.4875061386437491E+00 -1.4748740092527133E+00 + -1.4623491548275644E+00 -1.4499306643476682E+00 -1.4376176345294205E+00 + -1.4254091697605300E+00 -1.4133043820348550E+00 -1.4013023908878162E+00 + -1.3894023233323374E+00 -1.3776033137953290E+00 -1.3659045040547373E+00 + -1.3543050431770891E+00 -1.3428040874556066E+00 -1.3314008003488202E+00 + -1.3200943524197075E+00 -1.3088839212753671E+00 -1.2977686915071753E+00 + -1.2867478546314817E+00 -1.2758206090307880E+00 -1.2649861598954260E+00 + -1.2542437191657498E+00 -1.2435925054748016E+00 -1.2330317440914622E+00 + -1.2225606668641069E+00 -1.2121785121647091E+00 -1.2018845248334469E+00 + -1.1916779561237649E+00 -1.1815580636478962E+00 -1.1715241113228714E+00 + -1.1615753693169644E+00 -1.1517111139965930E+00 -1.1419306278736925E+00 + -1.1322331995535071E+00 -1.1226181236828494E+00 -1.1130847008987867E+00 + -1.1036322377777572E+00 -1.0942600467851418E+00 -1.0849674462252323E+00 + -1.0757537601916569E+00 -1.0666183185182037E+00 -1.0575604567300649E+00 + -1.0485795159955111E+00 -1.0396748430779581E+00 -1.0308457902884427E+00 + -1.0220917154385205E+00 -1.0134119817935334E+00 -1.0048059580263065E+00 + -9.9627301817121439E-01 -9.8781254157864284E-01 -9.7942391286984909E-01 + -9.7110652189219260E-01 -9.6285976367474424E-01 -9.5468303838429203E-01 + -9.4657575128169047E-01 -9.3853731267861273E-01 -9.3056713789464640E-01 + -9.2266464721475860E-01 -9.1482926584713609E-01 -9.0706042388136188E-01 + -8.9935755624696723E-01 -8.9172010267232282E-01 -8.8414750764387917E-01 + -8.7663922036576414E-01 -8.6919469471971456E-01 -8.6181338922534301E-01 + -8.5449476700076210E-01 -8.4723829572351583E-01 -8.4004344759186989E-01 + -8.3290969928641168E-01 -8.2583653193198037E-01 -8.1882343105992994E-01 + -8.1186988657070169E-01 -8.0497539269671503E-01 -7.9813944796558667E-01 + -7.9136155516363949E-01 -7.8464122129974712E-01 -7.7797795756946619E-01 + -7.7137127931947735E-01 -7.6482070601233920E-01 -7.5832576119152351E-01 + -7.5188597244676558E-01 -7.4550087137969712E-01 -7.3916999356976965E-01 + -7.3289287854048091E-01 -7.2666906972587431E-01 -7.2049811443732448E-01 + -7.1437956383061707E-01 -7.0831297287328920E-01 -7.0229790031226669E-01 + -6.9633390864176203E-01 -6.9042056407144758E-01 -6.8455743649490730E-01 + -6.7874409945834879E-01 -6.7298013012957680E-01 -6.6726510926724658E-01 + -6.6159862119035762E-01 -6.5598025374802527E-01 -6.5040959828949729E-01 + -6.4488624963442487E-01 -6.3940980604339837E-01 -6.3397986918871463E-01 + -6.2859604412541137E-01 -6.2325793926253537E-01 -6.1796516633465381E-01 + -6.1271734037362069E-01 -6.0751407968056870E-01 -6.0235500579814261E-01 + -5.9723974348297759E-01 -5.9216792067839552E-01 -5.8713916848734971E-01 + -5.8215312114558693E-01 -5.7720941599504061E-01 -5.7230769345745647E-01 + -5.6744759700823355E-01 -5.6262877315048909E-01 -5.5785087138935130E-01 + -5.5311354420645709E-01 -5.4841644703468095E-01 -5.4375923823306849E-01 + -5.3914157906198235E-01 -5.3456313365847030E-01 -5.3002356901182601E-01 + -5.2552255493937450E-01 -5.2105976406245058E-01 -5.1663487178258405E-01 + -5.1224755625789387E-01 -5.0789749837967479E-01 -5.0358438174918385E-01 + -4.9930789265463199E-01 -4.9506772004835720E-01 -4.9086355552420669E-01 + -4.8669509329510080E-01 -4.8256203017078775E-01 -4.7846406553579546E-01 + -4.7440090132756274E-01 -4.7037224201475597E-01 -4.6637779457577883E-01 + -4.6241726847745174E-01 -4.5849037565388445E-01 -4.5459683048552074E-01 + -4.5073634977836025E-01 -4.4690865274336494E-01 -4.4311346097602961E-01 + + + -3.5217418369229193E+01 -3.3687813161734113E+01 -3.2776429583625401E+01 + -3.2251486155485971E+01 -3.1881845345969900E+01 -3.1437013571802449E+01 + -3.1196800033396340E+01 -3.1005815844538407E+01 -3.0834920558854012E+01 + -3.0685162877011248E+01 -3.0551047602864923E+01 -3.0429399658877948E+01 + -3.0318083040101541E+01 -3.0215401463007787E+01 -3.0120046916656829E+01 + -3.0030987216318390E+01 -2.9947391896752972E+01 -2.9868583422565255E+01 + -2.9794001852825133E+01 -2.9723179151434465E+01 -2.9655720155745804E+01 + -2.9591288220780360E+01 -2.9529594228618951E+01 -2.9470388059488737E+01 + -2.9413451891648887E+01 -2.9358594879221602E+01 -2.9305648881595268E+01 + -2.9254465004738023E+01 -2.9204910776120023E+01 -2.9156867818985756E+01 + -2.9110229923757704E+01 -2.9064901437944688E+01 -2.9020795913499043E+01 + -2.8977834963790983E+01 -2.8935947292418355E+01 -2.8895067863778873E+01 + -2.8855137191294002E+01 -2.8816100723824011E+01 -2.8777908314465162E+01 + -2.8740513758811538E+01 -2.8703874392064609E+01 -2.8667950736219392E+01 + -2.8632706190043546E+01 -2.8598106755771624E+01 -2.8564120797420646E+01 + -2.8530718826438171E+01 -2.8497873311058104E+01 -2.8465558506287461E+01 + -2.8433750301903622E+01 -2.8402426086221663E+01 -2.8371564623709784E+01 + -2.8341145944798921E+01 -2.8311151246458202E+01 -2.8281562802299739E+01 + -2.8252363881138582E+01 -2.8223538673072305E+01 -2.8195072222263498E+01 + -2.8166950365709766E+01 -2.8139159677373648E+01 -2.8111687417120073E+01 + -2.8084521483974250E+01 -2.8057650373269777E+01 -2.8031063137305452E+01 + -2.8004749349172521E+01 -2.7978699069451483E+01 -2.7952902815510086E+01 + -2.7927351533163414E+01 -2.7902036570481503E+01 -2.7876949653553254E+01 + -2.7852082864033754E+01 -2.7827428618320905E+01 -2.7802979648221417E+01 + -2.7778728982980962E+01 -2.7754669932564624E+01 -2.7730796072085148E+01 + -2.7707101227285953E+01 -2.7683579460994526E+01 -2.7660225060469674E+01 + -2.7637032525572877E+01 -2.7613996557700336E+01 -2.7591112049417863E+01 + -2.7568374074745932E+01 -2.7545777880046458E+01 -2.7523318875467350E+01 + -2.7500992626904342E+01 -2.7478794848443030E+01 -2.7456721395247211E+01 + -2.7434768256862128E+01 -2.7412931550903966E+01 -2.7391207517109304E+01 + -2.7369592511719741E+01 -2.7348083002179781E+01 -2.7326675562126734E+01 + -2.7305366866653792E+01 -2.7284153687828379E+01 -2.7263032890449576E+01 + -2.7242001428029138E+01 -2.7221056338982358E+01 -2.7200194743015469E+01 + -2.7179413837697634E+01 -2.7158710895206163E+01 -2.7138083259234449E+01 + -2.7117528342053085E+01 -2.7097043621714807E+01 -2.7076626639395158E+01 + -2.7056274996860559E+01 -2.7035986354056934E+01 -2.7015758426811576E+01 + -2.6995588984642140E+01 -2.6975475848666711E+01 -2.6955416889609211E+01 + -2.6935410025895060E+01 -2.6915453221832124E+01 -2.6895544485872325E+01 + -2.6875681868949570E+01 -2.6855863462890095E+01 -2.6836087398891237E+01 + -2.6816351846065203E+01 -2.6796655010044368E+01 -2.6776995131645098E+01 + -2.6757370485586943E+01 -2.6737779379264644E+01 -2.6718220151570041E+01 + -2.6698691171761666E+01 -2.6679190838379519E+01 -2.6659717578202908E+01 + -2.6640269845249243E+01 -2.6620846119811780E+01 -2.6601444907534610E+01 + -2.6582064738522924E+01 -2.6562704166487087E+01 -2.6543361767918906E+01 + -2.6524036141298502E+01 -2.6504725906330581E+01 -2.6485429703208556E+01 + -2.6466146191905462E+01 -2.6446874051490365E+01 -2.6427611979469113E+01 + -2.6408358691148425E+01 -2.6389112919022313E+01 -2.6369873412179729E+01 + -2.6350638935732722E+01 -2.6331408270264113E+01 -2.6312180211293818E+01 + -2.6292953568763146E+01 -2.6273727166536300E+01 -2.6254499841918232E+01 + -2.6235270445188409E+01 -2.6216037839149600E+01 -2.6196800898691293E+01 + -2.6177558510366936E+01 -2.6158309571984642E+01 -2.6139052992210686E+01 + -2.6119787690185380E+01 -2.6100512595150750E+01 -2.6081226646089640E+01 + -2.6061928791375752E+01 -2.6042617988434195E+01 -2.6023293203412198E+01 + -2.6003953410859516E+01 -2.5984597593418250E+01 -2.5965224741521624E+01 + -2.5945833853101526E+01 -2.5926423933304370E+01 -2.5906993994214965E+01 + -2.5887543054588271E+01 -2.5868070139588486E+01 -2.5848574280535463E+01 + -2.5829054514657969E+01 -2.5809509884853775E+01 -2.5789939439456084E+01 + -2.5770342232006293E+01 -2.5750717321032710E+01 -2.5731063769835124E+01 + -2.5711380646275000E+01 -2.5691667022571004E+01 -2.5671921975099909E+01 + -2.5652144584202418E+01 -2.5632333933993937E+01 -2.5612489112180114E+01 + -2.5592609209876898E+01 -2.5572693321434947E+01 -2.5552740544268524E+01 + -2.5532749978688255E+01 -2.5512720727738145E+01 -2.5492651897036257E+01 + -2.5472542594619302E+01 -2.5452391930790778E+01 -2.5432199017972639E+01 + -2.5411962970560378E+01 -2.5391682904781444E+01 -2.5371357938556859E+01 + -2.5350987191365849E+01 -2.5330569784113653E+01 -2.5310104839002065E+01 + -2.5289591479403033E+01 -2.5269028829734768E+01 -2.5248416015340773E+01 + -2.5227752162371225E+01 -2.5207036397667103E+01 -2.5186267848646573E+01 + -2.5165445643193912E+01 -2.5144568909550674E+01 -2.5123636776209075E+01 + -2.5102648371807629E+01 -2.5081602825028899E+01 -2.5060499264499320E+01 + -2.5039336818691055E+01 -2.5018114615825766E+01 -2.4996831783780362E+01 + -2.4975487449994617E+01 -2.4954080741380537E+01 -2.4932610784233614E+01 + -2.4911076704145678E+01 -2.4889477625919582E+01 -2.4867812673485439E+01 + -2.4846080969818498E+01 -2.4824281636858640E+01 -2.4802413795431296E+01 + -2.4780476565170041E+01 -2.4758469064440515E+01 -2.4736390410265830E+01 + -2.4714239718253452E+01 -2.4692016102523340E+01 -2.4669718675637572E+01 + -2.4647346548531178E+01 -2.4624898830444362E+01 -2.4602374628855962E+01 + -2.4579773049418190E+01 -2.4557093195892520E+01 -2.4534334170086932E+01 + -2.4511495071794183E+01 -2.4488574998731380E+01 -2.4465573046480593E+01 + -2.4442488308430704E+01 -2.4419319875720284E+01 -2.4396066837181625E+01 + -2.4372728279285770E+01 -2.4349303286088826E+01 -2.4325790939178969E+01 + -2.4302190317624909E+01 -2.4278500497925020E+01 -2.4254720553957757E+01 + -2.4230849556932849E+01 -2.4206886575343749E+01 -2.4182830674920787E+01 + -2.4158680918585542E+01 -2.4134436366406007E+01 -2.4110096075552871E+01 + -2.4085659100256553E+01 -2.4061124491765447E+01 -2.4036491298304835E+01 + -2.4011758565036942E+01 -2.3986925334021802E+01 -2.3961990644179139E+01 + -2.3936953531251046E+01 -2.3911813027765760E+01 -2.3886568163002188E+01 + -2.3861217962955390E+01 -2.3835761450303089E+01 -2.3810197644372895E+01 + -2.3784525561110659E+01 -2.3758744213049500E+01 -2.3732852609279966E+01 + -2.3706849755420926E+01 -2.3680734653591529E+01 -2.3654506302383915E+01 + -2.3628163696837021E+01 -2.3601705828411070E+01 -2.3575131684963296E+01 + -2.3548440250724230E+01 -2.3521630506275262E+01 -2.3494701428526813E+01 + -2.3467651990697750E+01 -2.3440481162295445E+01 -2.3413187909097065E+01 + -2.3385771193131504E+01 -2.3358229972662627E+01 -2.3330563202173142E+01 + -2.3302769832349625E+01 -2.3274848810068566E+01 -2.3246799078383187E+01 + -2.3218619576511529E+01 -2.3190309239825289E+01 -2.3161866999839841E+01 + -2.3133291784205166E+01 -2.3104582516697903E+01 -2.3075738117214353E+01 + -2.3046757501764628E+01 -2.3017639582467709E+01 -2.2988383267547785E+01 + -2.2958987461331446E+01 -2.2929451064246184E+01 -2.2899772972819783E+01 + -2.2869952079681067E+01 -2.2839987273561530E+01 -2.2809877439298322E+01 + -2.2779621457838235E+01 -2.2749218206243004E+01 -2.2718666557695602E+01 + -2.2687965381507961E+01 -2.2657113543129746E+01 -2.2626109904158362E+01 + -2.2594953322350349E+01 -2.2563642651633838E+01 -2.2532176742122495E+01 + -2.2500554440130529E+01 -2.2468774588189241E+01 -2.2436836025064711E+01 + -2.2404737585776989E+01 -2.2372478101620501E+01 -2.2340056400185990E+01 + -2.2307471305383707E+01 -2.2274721637468136E+01 -2.2241806213064116E+01 + -2.2208723845194420E+01 -2.2175473343308806E+01 -2.2142053513314625E+01 + -2.2108463157608838E+01 -2.2074701075111729E+01 -2.2040766061302016E+01 + -2.2006656908253671E+01 -2.1972372404674338E+01 -2.1937911335945252E+01 + -2.1903272484163043E+01 -2.1868454628182956E+01 -2.1833456543664003E+01 + -2.1798277003115626E+01 -2.1762914775946360E+01 -2.1727368628513986E+01 + -2.1691637324177737E+01 -2.1655719623352127E+01 -2.1619614283562797E+01 + -2.1583320059504086E+01 -2.1546835703098655E+01 -2.1510159963558866E+01 + -2.1473291587450323E+01 -2.1436229318757160E+01 -2.1398971898949583E+01 + -2.1361518067053257E+01 -2.1323866559720884E+01 -2.1286016111305788E+01 + -2.1247965453937699E+01 -2.1209713317600645E+01 -2.1171258430213069E+01 + -2.1132599517710105E+01 -2.1093735304128149E+01 -2.1054664511691701E+01 + -2.1015385860902455E+01 -2.0975898070630848E+01 -2.0936199858209804E+01 + -2.0896289939531112E+01 -2.0856167029143954E+01 -2.0815829840356230E+01 + -2.0775277085338029E+01 -2.0734507475227957E+01 -2.0693519720241792E+01 + -2.0652312529783892E+01 -2.0610884612561165E+01 -2.0569234676699708E+01 + -2.0527361429864197E+01 -2.0485263579379971E+01 -2.0442939832357904E+01 + -2.0400388895822122E+01 -2.0357609476840469E+01 -2.0314600282657992E+01 + -2.0271360020833253E+01 -2.0227887399377597E+01 -2.0184181126897435E+01 + -2.0140239912739585E+01 -2.0096062467139628E+01 -2.0051647501373385E+01 + -2.0006993727911553E+01 -1.9962099860577478E+01 -1.9916964614708228E+01 + -1.9871586707318826E+01 -1.9825964857269856E+01 -1.9780097785438343E+01 + -1.9733984214892057E+01 -1.9687622871067159E+01 -1.9641012481949431E+01 + -1.9594151778258823E+01 -1.9547039493637680E+01 -1.9499674364842416E+01 + -1.9452055131938923E+01 -1.9404180538501528E+01 -1.9356049331815665E+01 + -1.9307660263084340E+01 -1.9259012087638240E+01 -1.9210103565149794E+01 + -1.9160933459850966E+01 -1.9111500540755035E+01 -1.9061803581882184E+01 + -1.9011841362489225E+01 -1.8961612667303157E+01 -1.8911116286758926E+01 + -1.8860351017241154E+01 -1.8809315661330128E+01 -1.8758009028051781E+01 + -1.8706429933132128E+01 -1.8654577199255666E+01 -1.8602449656328350E+01 + -1.8550046141744652E+01 -1.8497365500659161E+01 -1.8444406586262506E+01 + -1.8391168260061757E+01 -1.8337649392165286E+01 -1.8283848861572171E+01 + -1.8229765556466180E+01 -1.8175398374514295E+01 -1.8120746223169959E+01 + -1.8065808019980878E+01 -1.8010582692901679E+01 -1.7955069180611162E+01 + -1.7899266432834491E+01 -1.7843173410670040E+01 -1.7786789086921260E+01 + -1.7730112446433267E+01 -1.7673142486434493E+01 -1.7615878216883186E+01 + -1.7558318660818991E+01 -1.7500462854719423E+01 -1.7442309848861566E+01 + -1.7383858707688660E+01 -1.7325108510181966E+01 -1.7266058350237632E+01 + -1.7206707337048872E+01 -1.7147054595493195E+01 -1.7087099266524923E+01 + -1.7026840507573045E+01 -1.6966277492944130E+01 -1.6905409414230792E+01 + -1.6844235480725228E+01 -1.6782754919838329E+01 -1.6720966977523954E+01 + -1.6658870918708732E+01 -1.6596466027727146E+01 -1.6533751608762163E+01 + -1.6470726986291172E+01 -1.6407391505537461E+01 -1.6343744532927076E+01 + -1.6279785456551242E+01 -1.6215513686634186E+01 -1.6150928656006503E+01 + -1.6086029820583967E+01 -1.6020816659851931E+01 -1.5955288677355135E+01 + -1.5889445401193111E+01 -1.5823286384521017E+01 -1.5756811206056065E+01 + -1.5690019470589379E+01 -1.5622910809503400E+01 -1.5555484881294777E+01 + -1.5487741372102693E+01 -1.5419679996242765E+01 -1.5351300496746290E+01 + -1.5282602645905019E+01 -1.5213586245821299E+01 -1.5144251128963658E+01 + -1.5074597158727741E+01 -1.5004624230002634E+01 -1.4934332269742459E+01 + -1.4863721237543386E+01 -1.4792791126225724E+01 -1.4721541962421432E+01 + -1.4649973807166683E+01 -1.4578086756499660E+01 -1.4505880942063381E+01 + -1.4433356531713649E+01 -1.4360513730131963E+01 -1.4287352779443408E+01 + -1.4213873959839395E+01 -1.4140077590205284E+01 -1.4065964028752735E+01 + -1.3991533673656821E+01 -1.3916786963697669E+01 -1.3841724378906754E+01 + -1.3766346441217605E+01 -1.3690653715120989E+01 -1.3614646808324256E+01 + -1.3538326372415066E+01 -1.3461693103529115E+01 -1.3384747743022007E+01 + -1.3307491078144896E+01 -1.3229923942724081E+01 -1.3152047217844212E+01 + -1.3073861832535185E+01 -1.2995368764462391E+01 -1.2916569040620368E+01 + -1.2837463738029671E+01 -1.2758053984436838E+01 -1.2678340959017211E+01 + -1.2598325893080643E+01 -1.2518010070779797E+01 -1.2437394829820954E+01 + -1.2356481562177187E+01 -1.2275271714803582E+01 -1.2193766790354585E+01 + -1.2111968347903076E+01 -1.2029878003661146E+01 -1.1947497431702223E+01 + -1.1864828364684541E+01 -1.1781872594575599E+01 -1.1698631973377525E+01 + -1.1615108413852978E+01 -1.1531303890251547E+01 -1.1447220439036299E+01 + -1.1362860159610321E+01 -1.1278225215042882E+01 -1.1193317832795213E+01 + -1.1108140305445366E+01 -1.1022694991412175E+01 -1.0936984315677774E+01 + -1.0851010770508649E+01 -1.0764776916174805E+01 -1.0678285381666761E+01 + -1.0591538865410199E+01 -1.0504540135977747E+01 -1.0417292032797853E+01 + -1.0329797466860221E+01 -1.0242059421417606E+01 -1.0154080952683556E+01 + -1.0065865190525843E+01 -9.9774153391551685E+00 -9.8887346778088556E+00 + -9.7998265614290538E+00 -9.7106944213352211E+00 -9.6213417658904081E+00 + -9.5317721811610436E+00 -9.4419893315696566E+00 -9.3519969605403706E+00 + -9.2617988911365501E+00 -9.1713990266903380E+00 -9.0808013514234620E+00 + -8.9900099310591237E+00 -8.8990289134242921E+00 -8.8078625290420884E+00 + -8.7165150917137613E+00 -8.6249909990897233E+00 -8.5332947332292743E+00 + -8.4414308611484330E+00 -8.3494040353554499E+00 -8.2572189943733800E+00 + -8.1648805632493655E+00 -8.0723936540499412E+00 -7.9797632663419700E+00 + -7.8869944876585238E+00 -7.7940924939492939E+00 -7.7010625500148748E+00 + -7.6079100099244474E+00 -7.5146403174161351E+00 -7.4212590062796373E+00 + -7.3277717007203815E+00 -7.2341841157047222E+00 -7.1405020572854623E+00 + -7.0467314229071576E+00 -6.9528782016905817E+00 -6.8589484746956346E+00 + -6.7649484151621797E+00 -6.6708842887280149E+00 -6.5767624536234468E+00 + -6.4825893608417413E+00 -6.3883715542848050E+00 -6.2941156708833619E+00 + -6.1998284406910251E+00 -6.1055166869515149E+00 -6.0111873261383657E+00 + -5.9168473679663389E+00 -5.8225039153739306E+00 -5.7281641644762038E+00 + -5.6338354044872485E+00 -5.5395250176114690E+00 -5.4452404789031013E+00 + -5.3509893560931028E+00 -5.2567793093827593E+00 -5.1626180912031732E+00 + -5.0685135459400010E+00 -4.9744736096225921E+00 -4.8805063095768135E+00 + -4.7866197640408448E+00 -4.6928221817430718E+00 -4.5991218614414526E+00 + -4.5055271914235027E+00 -4.4120466489661911E+00 -4.3186887997549084E+00 + -4.2254622972608553E+00 -4.1323758820759826E+00 -4.0394383812047963E+00 + -3.9466587073121855E+00 -3.8540458579266144E+00 -3.7616089145978182E+00 + -3.6693570420083290E+00 -3.5772994870379926E+00 -3.4854455777808098E+00 + -3.3938047225132926E+00 -3.3023864086136201E+00 -3.2112002014308283E+00 + -3.1202557431033249E+00 -3.0295627513259840E+00 -2.9391310180650811E+00 + -2.8489704082203842E+00 -2.7590908582336322E+00 -2.6695023746427595E+00 + -2.5802150325810995E+00 -2.4912389742209498E+00 -2.4025844071607279E+00 + -2.3142616027551308E+00 -2.2262808943875823E+00 -2.1386526756843409E+00 + -2.0513873986696103E+00 -1.9644955718610559E+00 -1.8779877583050968E+00 + -1.7918745735513975E+00 -1.7061666835659621E+00 -1.6208748025823101E+00 + -1.5360096908901812E+00 -1.4515821525612795E+00 -1.3676030331115634E+00 + -1.2840832170996552E+00 -1.2010336256609548E+00 -1.1184652139770732E+00 + -1.0363889686802772E+00 -9.5481590519263604E-01 -8.7375706499965999E-01 + -7.9322351285823844E-01 -7.1322633393876689E-01 -6.3377663090140191E-01 + -5.5488552090647436E-01 -4.7656413255914465E-01 -3.9882360278847895E-01 + -3.2167507366120129E-01 -2.4512968913047450E-01 -1.6919859172014790E-01 + -9.3892919145011938E-02 -1.9223800867691310E-02 5.4797645407084344E-02 + 1.2816031730000130E-01 2.0085313138554339E-01 2.7286502688020864E-01 + 3.4418496938944954E-01 4.1480195471214010E-01 4.8470501270130217E-01 + 5.5388321117976103E-01 6.2232565990934463E-01 6.9002151461221672E-01 + 7.5695998104289575E-01 8.2313031910952983E-01 8.8852184704298243E-01 + 9.5312394561234548E-01 1.0169260623855256E+00 1.0799177160336193E+00 + 1.1420885006778676E+00 1.2034280902780992E+00 1.2639262430616491E+00 + 1.3235728059918745E+00 1.3823577192754930E+00 1.4402710209081182E+00 + 1.4973028512574573E+00 1.5534434576837726E+00 1.6086831991972890E+00 + 1.6630125511523559E+00 1.7164221099781982E+00 1.7689025979461921E+00 + 1.8204448679735723E+00 1.8710399084635487E+00 1.9206788481817287E+00 + 1.9693529611687108E+00 2.0170536716886596E+00 2.0637725592135014E+00 + 2.1095013634423325E+00 2.1542319893553747E+00 2.1979565123017091E+00 + 2.2406671831197253E+00 2.2823564332890696E+00 2.3230168801125557E+00 + 2.3626413319262531E+00 2.4012227933356618E+00 2.4387544704756117E+00 + 2.4752297762911599E+00 2.5106423358364824E+00 2.5449859915883826E+00 + 2.5782548087707866E+00 2.6104430806862089E+00 2.6415453340499404E+00 + 2.6715563343223478E+00 2.7004710910345300E+00 2.7282848631022198E+00 + 2.7549931641227463E+00 2.7805917676496170E+00 2.8050767124392033E+00 + 2.8284443076639367E+00 2.8506911380863369E+00 2.8718140691882086E+00 + 2.8918102522493085E+00 2.9106771293699105E+00 2.9284124384316468E+00 + 2.9450142179911576E+00 2.9604808121011015E+00 2.9748108750532243E+00 + 2.9880033760382125E+00 3.0000576037171762E+00 3.0109731706996286E+00 + 3.0207500179229902E+00 3.0293884189285758E+00 3.0368889840291895E+00 + 3.0432526643633757E+00 3.0484807558315126E+00 3.0525749029088813E+00 + 3.0555371023308897E+00 3.0573697066456558E+00 3.0580754276291340E+00 + 3.0576573395580522E+00 3.0561188823358636E+00 3.0534638644670222E+00 + 3.0496964658748222E+00 3.0448212405581940E+00 3.0388431190827738E+00 + 3.0317674109016757E+00 3.0235998065014158E+00 3.0143463793685070E+00 + 3.0040135877722975E+00 2.9926082763596931E+00 2.9801376775574417E+00 + 2.9666094127778049E+00 2.9520314934234366E+00 2.9364123216874347E+00 + 2.9197606911445440E+00 2.9020857871296650E+00 2.8833971868998409E+00 + 2.8637048595760022E+00 2.8430191658608797E+00 2.8213508575295161E+00 + 2.7987110766890115E+00 2.7751113548041428E+00 2.7505636114856582E+00 + 2.7250801530381152E+00 2.6986736707643031E+00 2.6713572390233353E+00 + 2.6431443130396639E+00 2.6140487264603389E+00 2.5840846886580402E+00 + 2.5532667817774515E+00 2.5216099575227369E+00 2.4891295336839776E+00 + 2.4558411904006223E+00 2.4217609661600927E+00 2.3869052535298865E+00 + 2.3512907946216215E+00 2.3149346762857150E+00 2.2778543250354768E+00 + 2.2400675016995990E+00 2.2015922958022518E+00 2.1624471196700967E+00 + 2.1226507022658088E+00 2.0822220827478533E+00 2.0411806037564895E+00 + 1.9995459044261776E+00 1.9573379131248161E+00 1.9145768399204475E+00 + 1.8712831687763272E+00 1.8274776494754774E+00 1.7831812892761418E+00 + 1.7384153442997914E+00 1.6932013106536223E+00 1.6475609152897526E+00 + 1.6015161066036523E+00 1.5550890447745835E+00 1.5083020918511942E+00 + 1.4611778015856447E+00 1.4137389090200585E+00 1.3660083198293180E+00 + 1.3180090994246099E+00 1.2697644618224424E+00 1.2212977582841629E+00 + 1.1726324657313811E+00 1.1237921749429907E+00 1.0748005785398471E+00 + 1.0256814587634469E+00 9.7645867505532880E-01 9.2715615144417562E-01 + 8.7779786374795210E-01 8.2840782659867940E-01 7.7901008029777286E-01 + 7.2962867751013172E-01 6.8028766980546040E-01 6.3101109405557132E-01 + 5.8182295869669653E-01 5.3274722986609613E-01 4.8380781742254353E-01 + 4.3502856086053771E-01 3.8643321512842083E-01 3.3804543636089490E-01 + 2.8988876753681314E-01 2.4198662407353702E-01 1.9436227936962328E-01 + 1.4703885030816236E-01 1.0003928273371124E-01 5.3386336916490737E-02 + 7.1025730183379042E-03 -3.8789663424167425E-02 -8.4268255982955051E-02 + -1.2931133177052165E-01 -1.7389727580201142E-01 -2.1800474526727581E-01 + -2.6161268369158258E-01 -3.0470033496238891E-01 -3.4724725719841215E-01 + -3.8923333643622338E-01 -4.3063880010879174E-01 -4.7144423028995736E-01 + -5.1163057667874079E-01 -5.5117916929786659E-01 -5.9007173088189935E-01 + -6.2829038893208478E-01 -6.6581768741739722E-01 -7.0263659810442691E-01 + -7.3873053150263623E-01 -7.7408334741609452E-01 -8.0867936509804639E-01 + -8.4250337301040867E-01 -8.7554063819645156E-01 -9.0777691528119997E-01 + -9.3919845512033406E-01 -9.6979201312418684E-01 -9.9954485728853448E-01 + -1.0284447759677851E+00 -1.0564800854284910E+00 -1.0836396372213553E+00 + -1.1099128254077248E+00 -1.1352895936715655E+00 -1.1597604423400489E+00 + -1.1833164353251995E+00 -1.2059492069860107E+00 -1.2276509688956907E+00 + -1.2484145164833249E+00 -1.2682332355044363E+00 -1.2871011082819370E+00 + -1.3050127196490531E+00 -1.3219632625198214E+00 -1.3379485430112599E+00 + -1.3529649850443290E+00 -1.3670096343579170E+00 -1.3800801618803975E+00 + -1.3921748664158384E+00 -1.4032926766153395E+00 -1.4134331522173218E+00 + -1.4225964845526804E+00 -1.4307834963211135E+00 -1.4379956406530288E+00 + -1.4442349994773331E+00 -1.4495042812189458E+00 -1.4538068178515544E+00 + -1.4571465613311470E+00 -1.4595280794346637E+00 -1.4609565510260545E+00 + -1.4614377607694584E+00 -1.4609780933064838E+00 -1.4595845269117429E+00 + -1.4572646266382936E+00 -1.4540265369623298E+00 -1.4498789739346494E+00 + -1.4448312168449842E+00 -1.4388930994043980E+00 -1.4320750004504101E+00 + -1.4243878341795331E+00 -1.4158430399121917E+00 -1.4064525713957656E+00 + -1.3962288856524110E+00 -1.3851849313795892E+00 -1.3733341369125358E+00 + -1.3606903977594509E+00 -1.3472680637216394E+00 -1.3330819256123883E+00 + -1.3181472015897946E+00 -1.3024795231201707E+00 -1.2860949205898626E+00 + -1.2690098085844823E+00 -1.2512409708555163E+00 -1.2328055449950732E+00 + -1.2137210068402347E+00 -1.1940051546289498E+00 -1.1736760929297962E+00 + -1.1527522163681305E+00 -1.1312521931712842E+00 -1.1091949485554029E+00 + -1.0865996479764211E+00 -1.0634856802674342E+00 -1.0398726406844447E+00 + -1.0157803138820678E+00 -9.9122865684036210E-01 -9.6623778176344910E-01 + -9.4082793897008210E-01 -9.1501949979572550E-01 -8.8883293952513687E-01 + -8.6228882037380061E-01 -8.3540777453595194E-01 -8.0821048731624956E-01 + -7.8071768036152545E-01 -7.5295009500834775E-01 -7.2492847576150499E-01 + -6.9667355391783681E-01 -6.6820603134919887E-01 -6.3954656445771318E-01 + -6.1071574831582620E-01 -5.8173410100310929E-01 -5.5262204815113436E-01 + -5.2339990770722089E-01 -4.9408787492730444E-01 -4.6470600760769093E-01 + -4.3527421156498830E-01 -4.0581222637307551E-01 -3.7633961136557315E-01 + -3.4687573191192639E-01 -3.1743974597488883E-01 -2.8805059095691654E-01 + -2.5872697084273993E-01 -2.2948734364518866E-01 -2.0034990916116793E-01 + -1.7133259704456497E-01 -1.4245305520276291E-01 -1.1372863852337393E-01 + -8.5176397937756027E-02 -5.6813069827850157E-02 -2.8655065782859198E-02 + -7.1846271227308882E-04 2.6981006678274615E-02 5.4427963041872855E-02 + 8.1607389169541258E-02 1.0850463838750395E-01 1.3510544256641097E-01 + 1.6139591973660833E-01 1.8736258130385777E-01 2.1299233886028976E-01 + 2.3827251058586454E-01 2.6319082723620280E-01 2.8773543771336257E-01 + 3.1189491421695514E-01 3.3565825697394991E-01 3.5901489854653740E-01 + 3.8195470771861739E-01 4.0446799296262143E-01 4.2654550548971570E-01 + 4.4817844188768940E-01 4.6935844635194823E-01 4.9007761251632653E-01 + 5.1032848489117721E-01 5.3010405991694221E-01 5.4939778664170869E-01 + 5.6820356703097319E-01 5.8651575591713090E-01 6.0432916059463970E-01 + 6.2163904006450854E-01 6.3844110392849807E-01 6.5473151092911552E-01 + 6.7050686712622654E-01 6.8576422369469514E-01 7.0050107432023834E-01 + 7.1471535216264792E-01 7.2840542634709526E-01 7.4157009793587791E-01 + 7.5420859532526885E-01 7.6632056900584333E-01 7.7790608562085006E-01 + 7.8896562125667791E-01 7.9950005390352452E-01 8.0951065503391284E-01 + 8.1899908026249713E-01 8.2796735907337471E-01 8.3641788363060099E-01 + 8.4435339672346588E-01 8.5177697893882243E-01 8.5869203519620318E-01 + 8.6510228082489404E-01 8.7101172740184740E-01 8.7642466860150003E-01 + 8.8134566632943712E-01 8.8577953741770565E-01 8.8973134114814656E-01 + 8.9320636784001461E-01 8.9621012868993410E-01 8.9874834698840411E-01 + 9.0082695076185526E-01 9.0245206680838508E-01 9.0363001601581039E-01 + 9.0436730977913649E-01 9.0467064727753477E-01 9.0454691333290982E-01 + 9.0400317655569329E-01 9.0304668748894834E-01 9.0168487648670270E-01 + 8.9992535110292693E-01 8.9777589281829673E-01 8.9524445298725397E-01 + 8.9233914794281421E-01 8.8906825324659311E-01 8.8544019711367306E-01 + 8.8146355307465174E-01 8.7714703195981159E-01 8.7249947330370359E-01 + 8.6752983627355018E-01 8.6224719022344054E-01 8.5666070497010705E-01 + 8.5077964087670033E-01 8.4461333881980549E-01 8.3817121010332751E-01 + 8.3146272637137575E-01 8.2449740956181394E-01 8.1728482193285745E-01 + 8.0983455618721312E-01 8.0215622571197298E-01 7.9425945494743466E-01 + 7.8615386989440650E-01 7.7784908876701464E-01 7.6935471279637990E-01 + 7.6068031718974261E-01 7.5183544224934695E-01 7.4282958465552817E-01 + 7.3367218891897101E-01 7.2437263900766402E-01 7.1494025015480811E-01 + 7.0538426085462613E-01 6.9571382505359536E-01 6.8593800454517473E-01 + 6.7606576157646181E-01 6.6610595167539277E-01 6.5606731670722529E-01 + 6.4595847816888141E-01 6.3578793072953022E-01 6.2556403602541300E-01 + 6.1529501671638298E-01 6.0498895081110071E-01 5.9465376626708477E-01 + 5.8429723587112525E-01 5.7392697240476187E-01 5.6355042409869016E-01 + 5.5317487037913982E-01 5.4280741790841902E-01 5.3245499692095444E-01 + 5.2212435785536626E-01 5.1182206828227517E-01 5.0155451012678942E-01 + 4.9132787718388105E-01 4.8114817292414075E-01 4.7102120858676488E-01 + 4.6095260155602252E-01 4.5094777401686059E-01 4.4101195188483178E-01 + 4.3115016400503359E-01 4.2136724161434985E-01 4.1166781806093672E-01 + 4.0205632877454056E-01 3.9253701148102382E-01 3.8311390665421474E-01 + 3.7379085819800739E-01 3.6457151433477508E-01 3.5545932877735231E-01 + 3.4645756200752148E-01 3.3756928282399862E-01 3.2879737006726767E-01 + 3.2014451453107468E-01 3.1161322105343603E-01 3.0320581078009035E-01 + 2.9492442359344023E-01 2.8677102070014210E-01 2.7874738737068838E-01 + 2.7085513582424364E-01 2.6309570825285583E-01 2.5547037997783295E-01 + 2.4798026273274990E-01 2.4062630806744639E-01 2.3340931086550562E-01 + 2.2632991297091323E-01 2.1938860691696405E-01 2.1258573975132564E-01 + 2.0592151695216540E-01 1.9939600642848446E-01 1.9300914259875382E-01 + 1.8676073054150352E-01 1.8065045021138645E-01 1.7467786071405228E-01 + 1.6884240463297981E-01 1.6314341240119340E-01 1.5758010671058781E-01 + 1.5215160695137550E-01 1.4685693367396596E-01 1.4169501306541235E-01 + 1.3666468143240743E-01 1.3176468968267188E-01 1.2699370779650562E-01 + 1.2235032928020506E-01 1.1783307559305298E-01 1.1344040053962207E-01 + 1.0917069461920853E-01 1.0502228932435202E-01 1.0099346138055702E-01 + 9.7082436919549334E-02 9.3287395578655466E-02 8.9606474519172821E-02 + 8.6037772356927056E-02 8.2579352998569860E-02 7.9229249377550368E-02 + 7.5985467084126901E-02 7.2845987884236782E-02 6.9808773122549989E-02 + 6.6871767005587654E-02 6.4032899761393147E-02 6.1290090672931868E-02 + 5.8641250983155188E-02 5.6084286670509763E-02 5.3617101094620194E-02 + 5.1237597512902106E-02 4.8943681469985310E-02 4.6733263063015729E-02 + 4.4604259087129013E-02 4.2554595066621570E-02 4.0582207178510854E-02 + 3.8685044076229837E-02 3.6861068622051768E-02 3.5108259537413769E-02 + 3.3424612980528887E-02 3.1808144060473768E-02 3.0256888296265234E-02 + 2.8768903028288811E-02 2.7342268787820513E-02 2.5975090628371885E-02 + 2.4665499420284859E-02 2.3411653107559351E-02 2.2211737923489291E-02 + 2.1063969559496774E-02 1.9966594279764840E-02 1.8917889973032519E-02 + 1.7916167132322136E-02 1.6959769753467243E-02 1.6047076144070388E-02 + 1.5176499635857418E-02 1.4346489195180003E-02 1.3555529928478865E-02 + 1.2802143481689343E-02 1.2084888334680145E-02 1.1402359993728187E-02 + 1.0753191086647476E-02 1.0136051366446314E-02 9.5496476302632371E-03 + 8.9927235608436469E-03 8.4640594980006228E-03 7.9624721474127955E-03 + 7.4868142338089883E-03 7.0359741051362725E-03 6.6088752937629204E-03 + 6.2044760401782067E-03 5.8217687840554731E-03 5.4597796269738649E-03 + 5.1175677705641966E-03 4.7942249333696547E-03 4.4888747492958254E-03 + 4.2006721501674418E-03 3.9288027346095116E-03 3.6724821252210357E-03 + 3.4309553158062230E-03 3.2034960102631789E-03 2.9894059545971362E-03 + 2.7880142634191221E-03 2.5986767422053508E-03 2.4207752065230378E-03 + 2.2537167993714204E-03 2.0969333077380603E-03 1.9498804794284706E-03 + 1.8120373411888873E-03 1.6829055191059114E-03 1.5620085622319486E-03 + 1.4488912703504422E-03 1.3431190267590958E-03 1.2442771369126642E-03 + 1.1519701737283301E-03 1.0658213303167741E-03 9.8547178086027631E-04 + 9.1058005031573414E-04 8.4082139357572307E-04 7.7588718467451999E-04 + 7.1548431657904332E-04 6.5933461205699734E-04 6.0717424606670676E-04 + 5.5875318006570816E-04 5.1383460858696100E-04 4.7219441838861444E-04 + 4.3362066043435506E-04 3.9791303492081403E-04 3.6488238952941656E-04 + 3.3435023103578292E-04 3.0614825037904395E-04 2.8011786125685059E-04 + 2.5610975227637148E-04 2.3398345267172432E-04 2.1360691156050481E-04 + 1.9485609069240525E-04 1.7761457062383097E-04 1.6177317022072037E-04 + 1.4722957938340323E-04 1.3388800486335983E-04 1.2165882902402963E-04 + 1.1045828138671772E-04 1.0020812278484761E-04 9.0835341937201569E-05 + 8.2271864237859282E-05 7.4454272548500522E-05 6.7323539767403848E-05 + 6.0824772938857456E-05 5.4906968656760867E-05 4.9522779506973182E-05 + 4.4628291284457031E-05 4.0182810713500112E-05 3.6148663392303330E-05 + 3.2491001677025521E-05 2.9177622214991894E-05 2.6178792832241244E-05 + 2.3467088476904101E-05 2.1017235917096861E-05 1.8805966890079717E-05 + 1.6811879398356837E-05 1.5015306848191293E-05 1.3398194726637809E-05 + 1.1943984514649085E-05 1.0637504536050266E-05 9.4648674451674654E-06 + 8.4133740596019057E-06 7.4714232490150146E-06 6.6284275957846737E-06 + 5.8747345489613098E-06 5.2015527990396334E-06 4.6008836076180416E-06 + 4.0654568329879949E-06 3.5886714000272902E-06 3.1645399704123783E-06 + 2.7876375770634932E-06 2.4530539948425734E-06 2.1563496277904792E-06 + 1.8935147015696312E-06 1.6609315582286048E-06 1.4553398588845341E-06 + 1.2738045083893224E-06 1.1136861244714311E-06 9.7261388219310718E-07 + 8.4846057280413594E-07 7.3931972418025373E-07 6.4348463798320167E-07 + 5.5942920644887373E-07 4.8579037928132316E-07 4.2135215848752780E-07 + 3.6503100611740727E-07 3.1586255676421624E-07 2.7298953332340005E-07 + 2.3565077089633303E-07 2.0317125985421012E-07 1.7495312494371796E-07 + 1.5046746291852933E-07 1.2924696651928136E-07 1.1087926770107928E-07 + 9.5000937824396536E-08 8.1292087086461492E-08 6.9471509780632321E-08 + 5.9292326036581802E-08 5.0538074520799838E-08 4.3019214172007938E-08 + 3.6569996417183090E-08 3.1045672468993216E-08 2.6320003252896183E-08 + 2.2283042260533767E-08 1.8839164184103852E-08 1.5905314562964811E-08 + 1.3409457877700458E-08 1.1289203567095013E-08 9.4905913287221684E-09 + 7.9670188027890103E-09 6.6782963399894202E-09 5.5898150257100536E-09 + 4.6718154830638040E-09 3.8987462137207989E-09 3.2487013659151888E-09 + 2.7029288505853911E-09 2.2454006663190380E-09 1.8624381482710089E-09 + 1.5423856318399074E-09 1.2753267246426772E-09 1.0528380159157977E-09 + 8.6777562627593626E-10 7.1409051785902714E-10 5.8666894998264139E-10 + 4.8119488309890126E-10 3.9403150808709643E-10 3.2211941275590734E-10 + 2.6288919639044345E-10 2.1418660963173984E-10 1.7420853400766205E-10 + 1.4144832589638719E-10 1.1464923622171779E-10 9.2764782163475374E-11 + 7.4925092823424247E-11 6.0408379134543540E-11 4.8616791177610720E-11 + 3.9056025145971333E-11 3.1318128994094442E-11 2.5067031691121088E-11 + 2.0026387217058635E-11 1.5969382103626482E-11 1.2710205438036553E-11 + 1.0096923716495599E-11 8.0055405603613622E-12 6.3350538104945118E-12 + 5.0033505344896793E-12 3.9438045857221740E-12 3.1024620464163479E-12 + 2.4357176147612806E-12 1.9084001514615869E-12 1.4921985298515625E-12 + 1.1643699394310578E-12 9.0668214131541597E-13 7.0454909797156335E-13 + 5.4632610126149014E-13 4.2273617834332306E-13 3.2640431716288019E-13 + 2.5148005431473799E-13 1.9333232209922842E-13 1.4830325694623969E-13 + 1.1351001246504457E-13 8.6685569582767047E-14 6.6051155422132755E-14 + 5.0214224503210842E-14 3.8087065416227326E-14 2.8822011387733656E-14 + 2.1759986385919719E-14 1.6389736798541835E-14 1.2315605188614027E-14 + 9.2321164414505618E-15 6.9039838928763201E-15 5.1504172531802654E-15 + 3.8328365513937524E-15 2.8452762616344739E-15 2.1069089838541211E-15 + 1.5562349416710332E-15 1.1465774141658603E-15 8.4259938345358743E-16 + 6.1761672183651430E-16 4.5153107942852497E-16 3.2924364644938852E-16 + 2.3944109163055765E-16 1.7366879189135618E-16 1.2562524130003491E-16 + 9.0626286437363521E-17 6.5199407246321709E-17 4.6777310664699767E-17 + 3.3467159676581948E-17 2.3877246511127602E-17 1.6987172635820358E-17 + 1.2050887364177566E-17 8.5244728796162626E-18 6.0125131325874392E-18 + 4.2283786241851995E-18 2.9649014399955032E-18 2.0727854795751563E-18 + 1.4447583310180949E-18 1.0039723792561236E-18 6.9554124629555403E-19 + 4.8038268311474412E-19 3.3075300172397528E-19 2.2701827026823099E-19 + 1.5532696700297615E-19 1.0593764660015028E-19 7.2021051567237133E-20 + 4.8804789566220927E-20 3.2964565006610152E-20 2.2192291032360346E-20 + 1.4890685048829581E-20 9.9580138441103498E-21 6.6368795742556317E-21 + 4.4083479196733738E-21 2.9180716122853873E-21 1.9249148455946591E-21 + 1.2653475257506068E-21 8.2885385221058189E-22 5.4100708469114676E-22 + 3.5186145693991015E-22 2.2801897122605506E-22 1.4722700764196791E-22 + 9.4712602661940634E-23 6.0704137103816967E-23 3.8761928765549629E-23 + 2.4657853022220504E-23 1.5626223696912803E-23 9.8647867381786865E-24 + 6.2035762176843636E-24 3.8860023146972425E-24 2.4246895067175301E-24 + 1.5069084598599564E-24 9.3278308741495416E-25 5.7507274091336864E-25 + 3.5310053723646262E-25 2.1591980524415537E-25 1.3148917203920798E-25 + 7.9739900773740700E-26 4.8154206985563078E-26 2.8956772402373208E-26 + 1.7338353199035793E-26 1.0336930343278004E-26 6.1360025593885329E-27 + 3.6263831786343999E-27 2.1337324278332368E-27 1.2498793406606267E-27 + 7.2885597221054013E-28 4.2310127732823023E-28 2.4448899459584321E-28 + 1.4062737964001414E-28 8.0511727696946695E-29 4.5878590455785153E-29 + 2.6019891267548131E-29 1.4686830292263986E-29 8.2501230538204564E-30 + 4.6119538504201915E-30 2.5655704598305023E-30 1.4201674698673907E-30 + 7.8222881757551195E-31 4.2869515625758316E-31 2.3375752401281033E-31 + 1.2681378999918490E-31 6.8443572032327612E-32 3.6748998590892373E-32 + 1.9628460943387690E-32 1.0428826624373554E-32 5.5115622904359018E-33 + 2.8972318170904225E-33 1.5147577010455446E-33 7.8765306091344806E-34 + 4.0732303348362944E-34 2.0947653343857800E-34 1.0712830852506641E-34 + 5.4478544305506299E-35 2.7547290907559956E-35 1.3849818680283092E-35 + 6.9230994429786594E-36 3.4405486302965832E-36 1.6998269117561641E-36 + 8.3485422935607914E-37 4.0759091685371362E-37 1.9779943356081184E-37 + 9.5409354962190733E-38 4.5740486343431164E-38 2.1793796677157992E-38 + 1.0319664337167240E-38 4.8559805011922081E-39 2.2706227033182838E-39 + 1.0549880891666352E-39 4.8703750244269799E-40 2.2339174181966662E-40 + 1.0179797889952849E-40 4.6084604571981318E-41 2.0724995950094418E-41 + 9.2583161480549805E-42 4.1081423320997126E-42 1.8105549728070188E-42 + 7.9251487349278588E-43 3.4451583898581343E-43 1.4872826275842491E-43 + 6.3758297940825674E-44 2.7140326297216267E-44 1.1471089910490684E-44 + 4.8137284767232937E-45 2.0054954973941050E-45 8.2947020309690766E-46 + 3.4056074028305919E-46 1.3879654647523467E-46 5.6147253904627165E-47 + 2.2543407302980411E-47 8.9831173591628008E-48 3.5524361129481278E-48 + 1.3940947285020429E-48 5.4287536154373289E-49 2.0976100935008608E-49 + 8.0415737566884588E-50 3.0586076970619018E-50 1.1541112139373834E-50 + 4.3200357780156660E-51 1.6040481462628709E-51 5.9076170964640617E-52 + 2.1579759909832830E-52 7.8179807989472348E-53 2.8088635807810577E-53 + 1.0007579224468041E-53 3.5356071868538556E-54 1.2385391896747374E-54 + 4.3017028373321146E-55 1.4812561036347217E-55 5.0565403909365155E-56 + 1.7111297213139354E-56 5.7396504434599983E-57 1.9083999939138645E-57 + 6.2909119642083841E-58 2.0506619052500036E-58 6.5396003489162937E-59 + 2.0653278201995909E-59 6.4590892557493698E-60 2.0001457025645958E-60 + + + 1.6890703951039021E+00 1.6890703951010149E+00 1.6890703950922525E+00 + 1.6890703950774648E+00 1.6890703950564976E+00 1.6890703950291939E+00 + 1.6890703949953934E+00 1.6890703949549326E+00 1.6890703949076451E+00 + 1.6890703948533612E+00 1.6890703947919070E+00 1.6890703947231060E+00 + 1.6890703946467782E+00 1.6890703945627394E+00 1.6890703944708025E+00 + 1.6890703943707761E+00 1.6890703942624652E+00 1.6890703941456715E+00 + 1.6890703940201919E+00 1.6890703938858200E+00 1.6890703937423452E+00 + 1.6890703935895528E+00 1.6890703934272238E+00 1.6890703932551347E+00 + 1.6890703930730582E+00 1.6890703928807622E+00 1.6890703926780104E+00 + 1.6890703924645614E+00 1.6890703922401695E+00 1.6890703920045844E+00 + 1.6890703917575505E+00 1.6890703914988077E+00 1.6890703912280904E+00 + 1.6890703909451288E+00 1.6890703906496463E+00 1.6890703903413626E+00 + 1.6890703900199913E+00 1.6890703896852406E+00 1.6890703893368129E+00 + 1.6890703889744054E+00 1.6890703885977087E+00 1.6890703882064086E+00 + 1.6890703878001838E+00 1.6890703873787078E+00 1.6890703869416475E+00 + 1.6890703864886629E+00 1.6890703860194085E+00 1.6890703855335316E+00 + 1.6890703850306732E+00 1.6890703845104671E+00 1.6890703839725405E+00 + 1.6890703834165135E+00 1.6890703828419988E+00 1.6890703822486020E+00 + 1.6890703816359212E+00 1.6890703810035470E+00 1.6890703803510621E+00 + 1.6890703796780415E+00 1.6890703789840522E+00 1.6890703782686529E+00 + 1.6890703775313947E+00 1.6890703767718191E+00 1.6890703759894599E+00 + 1.6890703751838414E+00 1.6890703743544813E+00 1.6890703735008843E+00 + 1.6890703726225493E+00 1.6890703717189646E+00 1.6890703707896086E+00 + 1.6890703698339504E+00 1.6890703688514499E+00 1.6890703678415553E+00 + 1.6890703668037061E+00 1.6890703657373300E+00 1.6890703646418455E+00 + 1.6890703635166600E+00 1.6890703623611687E+00 1.6890703611747571E+00 + 1.6890703599567982E+00 1.6890703587066545E+00 1.6890703574236756E+00 + 1.6890703561071998E+00 1.6890703547565531E+00 1.6890703533710487E+00 + 1.6890703519499877E+00 1.6890703504926579E+00 1.6890703489983343E+00 + 1.6890703474662778E+00 1.6890703458957370E+00 1.6890703442859454E+00 + 1.6890703426361231E+00 1.6890703409454764E+00 1.6890703392131956E+00 + 1.6890703374384575E+00 1.6890703356204229E+00 1.6890703337582382E+00 + 1.6890703318510329E+00 1.6890703298979219E+00 1.6890703278980033E+00 + 1.6890703258503585E+00 1.6890703237540519E+00 1.6890703216081322E+00 + 1.6890703194116299E+00 1.6890703171635568E+00 1.6890703148629085E+00 + 1.6890703125086608E+00 1.6890703100997724E+00 1.6890703076351816E+00 + 1.6890703051138078E+00 1.6890703025345517E+00 1.6890702998962928E+00 + 1.6890702971978906E+00 1.6890702944381848E+00 1.6890702916159928E+00 + 1.6890702887301110E+00 1.6890702857793141E+00 1.6890702827623547E+00 + 1.6890702796779631E+00 1.6890702765248455E+00 1.6890702733016860E+00 + 1.6890702700071443E+00 1.6890702666398554E+00 1.6890702631984305E+00 + 1.6890702596814557E+00 1.6890702560874911E+00 1.6890702524150709E+00 + 1.6890702486627036E+00 1.6890702448288692E+00 1.6890702409120222E+00 + 1.6890702369105883E+00 1.6890702328229650E+00 1.6890702286475203E+00 + 1.6890702243825944E+00 1.6890702200264962E+00 1.6890702155775053E+00 + 1.6890702110338693E+00 1.6890702063938052E+00 1.6890702016554977E+00 + 1.6890701968170991E+00 1.6890701918767281E+00 1.6890701868324705E+00 + 1.6890701816823770E+00 1.6890701764244633E+00 1.6890701710567104E+00 + 1.6890701655770628E+00 1.6890701599834277E+00 1.6890701542736755E+00 + 1.6890701484456381E+00 1.6890701424971089E+00 1.6890701364258420E+00 + 1.6890701302295512E+00 1.6890701239059089E+00 1.6890701174525471E+00 + 1.6890701108670545E+00 1.6890701041469776E+00 1.6890700972898192E+00 + 1.6890700902930356E+00 1.6890700831540411E+00 1.6890700758702011E+00 + 1.6890700684388349E+00 1.6890700608572151E+00 1.6890700531225646E+00 + 1.6890700452320568E+00 1.6890700371828162E+00 1.6890700289719141E+00 + 1.6890700205963716E+00 1.6890700120531559E+00 1.6890700033391803E+00 + 1.6890699944513032E+00 1.6890699853863282E+00 1.6890699761410011E+00 + 1.6890699667120102E+00 1.6890699570959848E+00 1.6890699472894952E+00 + 1.6890699372890503E+00 1.6890699270910969E+00 1.6890699166920193E+00 + 1.6890699060881380E+00 1.6890698952757068E+00 1.6890698842509153E+00 + 1.6890698730098839E+00 1.6890698615486652E+00 1.6890698498632417E+00 + 1.6890698379495248E+00 1.6890698258033536E+00 1.6890698134204936E+00 + 1.6890698007966358E+00 1.6890697879273946E+00 1.6890697748083063E+00 + 1.6890697614348302E+00 1.6890697478023438E+00 1.6890697339061431E+00 + 1.6890697197414417E+00 1.6890697053033681E+00 1.6890696905869658E+00 + 1.6890696755871895E+00 1.6890696602989059E+00 1.6890696447168909E+00 + 1.6890696288358285E+00 1.6890696126503082E+00 1.6890695961548250E+00 + 1.6890695793437767E+00 1.6890695622114624E+00 1.6890695447520807E+00 + 1.6890695269597278E+00 1.6890695088283967E+00 1.6890694903519738E+00 + 1.6890694715242387E+00 1.6890694523388610E+00 1.6890694327893989E+00 + 1.6890694128692978E+00 1.6890693925718876E+00 1.6890693718903813E+00 + 1.6890693508178714E+00 1.6890693293473302E+00 1.6890693074716063E+00 + 1.6890692851834221E+00 1.6890692624753734E+00 1.6890692393399245E+00 + 1.6890692157694083E+00 1.6890691917560225E+00 1.6890691672918290E+00 + 1.6890691423687487E+00 1.6890691169785625E+00 1.6890690911129060E+00 + 1.6890690647632680E+00 1.6890690379209889E+00 1.6890690105772568E+00 + 1.6890689827231049E+00 1.6890689543494106E+00 1.6890689254468891E+00 + 1.6890688960060956E+00 1.6890688660174178E+00 1.6890688354710761E+00 + 1.6890688043571191E+00 1.6890687726654214E+00 1.6890687403856799E+00 + 1.6890687075074122E+00 1.6890686740199512E+00 1.6890686399124442E+00 + 1.6890686051738470E+00 1.6890685697929244E+00 1.6890685337582430E+00 + 1.6890684970581697E+00 1.6890684596808687E+00 1.6890684216142964E+00 + 1.6890683828461994E+00 1.6890683433641092E+00 1.6890683031553402E+00 + 1.6890682622069848E+00 1.6890682205059098E+00 1.6890681780387531E+00 + 1.6890681347919181E+00 1.6890680907515716E+00 1.6890680459036387E+00 + 1.6890680002337983E+00 1.6890679537274804E+00 1.6890679063698593E+00 + 1.6890678581458509E+00 1.6890678090401083E+00 1.6890677590370167E+00 + 1.6890677081206884E+00 1.6890676562749589E+00 1.6890676034833818E+00 + 1.6890675497292236E+00 1.6890674949954592E+00 1.6890674392647662E+00 + 1.6890673825195208E+00 1.6890673247417916E+00 1.6890672659133346E+00 + 1.6890672060155880E+00 1.6890671450296666E+00 1.6890670829363554E+00 + 1.6890670197161060E+00 1.6890669553490276E+00 1.6890668898148846E+00 + 1.6890668230930883E+00 1.6890667551626908E+00 1.6890666860023806E+00 + 1.6890666155904743E+00 1.6890665439049111E+00 1.6890664709232466E+00 + 1.6890663966226451E+00 1.6890663209798740E+00 1.6890662439712958E+00 + 1.6890661655728618E+00 1.6890660857601059E+00 1.6890660045081345E+00 + 1.6890659217916231E+00 1.6890658375848042E+00 1.6890657518614645E+00 + 1.6890656645949333E+00 1.6890655757580766E+00 1.6890654853232892E+00 + 1.6890653932624842E+00 1.6890652995470883E+00 1.6890652041480307E+00 + 1.6890651070357352E+00 1.6890650081801120E+00 1.6890649075505477E+00 + 1.6890648051158972E+00 1.6890647008444755E+00 1.6890645947040446E+00 + 1.6890644866618085E+00 1.6890643766844009E+00 1.6890642647378751E+00 + 1.6890641507876969E+00 1.6890640347987302E+00 1.6890639167352295E+00 + 1.6890637965608288E+00 1.6890636742385310E+00 1.6890635497306961E+00 + 1.6890634229990302E+00 1.6890632940045764E+00 1.6890631627076997E+00 + 1.6890630290680795E+00 1.6890628930446923E+00 1.6890627545958052E+00 + 1.6890626136789608E+00 1.6890624702509647E+00 1.6890623242678726E+00 + 1.6890621756849786E+00 1.6890620244568011E+00 1.6890618705370695E+00 + 1.6890617138787112E+00 1.6890615544338361E+00 1.6890613921537245E+00 + 1.6890612269888121E+00 1.6890610588886743E+00 1.6890608878020130E+00 + 1.6890607136766402E+00 1.6890605364594635E+00 1.6890603560964703E+00 + 1.6890601725327112E+00 1.6890599857122854E+00 1.6890597955783220E+00 + 1.6890596020729656E+00 1.6890594051373575E+00 1.6890592047116197E+00 + 1.6890590007348363E+00 1.6890587931450360E+00 1.6890585818791741E+00 + 1.6890583668731136E+00 1.6890581480616067E+00 1.6890579253782749E+00 + 1.6890576987555905E+00 1.6890574681248562E+00 1.6890572334161844E+00 + 1.6890569945584781E+00 1.6890567514794086E+00 1.6890565041053949E+00 + 1.6890562523615822E+00 1.6890559961718195E+00 1.6890557354586369E+00 + 1.6890554701432245E+00 1.6890552001454080E+00 1.6890549253836242E+00 + 1.6890546457748992E+00 1.6890543612348226E+00 1.6890540716775229E+00 + 1.6890537770156433E+00 1.6890534771603143E+00 1.6890531720211299E+00 + 1.6890528615061180E+00 1.6890525455217165E+00 1.6890522239727443E+00 + 1.6890518967623733E+00 1.6890515637921002E+00 1.6890512249617184E+00 + 1.6890508801692872E+00 1.6890505293111031E+00 1.6890501722816682E+00 + 1.6890498089736612E+00 1.6890494392779032E+00 1.6890490630833277E+00 + 1.6890486802769484E+00 1.6890482907438242E+00 1.6890478943670271E+00 + 1.6890474910276061E+00 1.6890470806045550E+00 1.6890466629747749E+00 + 1.6890462380130389E+00 1.6890458055919542E+00 1.6890453655819271E+00 + 1.6890449178511235E+00 1.6890444622654299E+00 1.6890439986884147E+00 + 1.6890435269812887E+00 1.6890430470028637E+00 1.6890425586095110E+00 + 1.6890420616551205E+00 1.6890415559910568E+00 1.6890410414661157E+00 + 1.6890405179264809E+00 1.6890399852156774E+00 1.6890394431745277E+00 + 1.6890388916411025E+00 1.6890383304506760E+00 1.6890377594356767E+00 + 1.6890371784256371E+00 1.6890365872471460E+00 1.6890359857237962E+00 + 1.6890353736761323E+00 1.6890347509216006E+00 1.6890341172744936E+00 + 1.6890334725458964E+00 1.6890328165436310E+00 1.6890321490722007E+00 + 1.6890314699327320E+00 1.6890307789229182E+00 1.6890300758369574E+00 + 1.6890293604654949E+00 1.6890286325955608E+00 1.6890278920105080E+00 + 1.6890271384899473E+00 1.6890263718096865E+00 1.6890255917416612E+00 + 1.6890247980538700E+00 1.6890239905103059E+00 1.6890231688708877E+00 + 1.6890223328913898E+00 1.6890214823233709E+00 1.6890206169141002E+00 + 1.6890197364064856E+00 1.6890188405389965E+00 1.6890179290455889E+00 + 1.6890170016556263E+00 1.6890160580938016E+00 1.6890150980800569E+00 + 1.6890141213294994E+00 1.6890131275523210E+00 1.6890121164537122E+00 + 1.6890110877337758E+00 1.6890100410874405E+00 1.6890089762043687E+00 + 1.6890078927688703E+00 1.6890067904598067E+00 1.6890056689504991E+00 + 1.6890045279086321E+00 1.6890033669961562E+00 1.6890021858691908E+00 + 1.6890009841779217E+00 1.6889997615665007E+00 1.6889985176729401E+00 + 1.6889972521290084E+00 1.6889959645601220E+00 1.6889946545852343E+00 + 1.6889933218167288E+00 1.6889919658603005E+00 1.6889905863148447E+00 + 1.6889891827723382E+00 1.6889877548177208E+00 1.6889863020287732E+00 + 1.6889848239759944E+00 1.6889833202224778E+00 1.6889817903237792E+00 + 1.6889802338277926E+00 1.6889786502746142E+00 1.6889770391964105E+00 + 1.6889754001172796E+00 1.6889737325531142E+00 1.6889720360114604E+00 + 1.6889703099913711E+00 1.6889685539832637E+00 1.6889667674687694E+00 + 1.6889649499205812E+00 1.6889631008023018E+00 1.6889612195682855E+00 + 1.6889593056634811E+00 1.6889573585232676E+00 1.6889553775732897E+00 + 1.6889533622292927E+00 1.6889513118969499E+00 1.6889492259716887E+00 + 1.6889471038385169E+00 1.6889449448718403E+00 1.6889427484352824E+00 + 1.6889405138814977E+00 1.6889382405519830E+00 1.6889359277768867E+00 + 1.6889335748748107E+00 1.6889311811526149E+00 1.6889287459052125E+00 + 1.6889262684153654E+00 1.6889237479534760E+00 1.6889211837773728E+00 + 1.6889185751320954E+00 1.6889159212496725E+00 1.6889132213489011E+00 + 1.6889104746351158E+00 1.6889076802999590E+00 1.6889048375211444E+00 + 1.6889019454622169E+00 1.6888990032723110E+00 1.6888960100858996E+00 + 1.6888929650225446E+00 1.6888898671866386E+00 1.6888867156671445E+00 + 1.6888835095373307E+00 1.6888802478544993E+00 1.6888769296597128E+00 + 1.6888735539775153E+00 1.6888701198156457E+00 1.6888666261647522E+00 + 1.6888630719980950E+00 1.6888594562712489E+00 1.6888557779217990E+00 + 1.6888520358690309E+00 1.6888482290136158E+00 1.6888443562372908E+00 + 1.6888404164025328E+00 1.6888364083522271E+00 1.6888323309093312E+00 + 1.6888281828765308E+00 1.6888239630358930E+00 1.6888196701485090E+00 + 1.6888153029541368E+00 1.6888108601708307E+00 1.6888063404945708E+00 + 1.6888017425988819E+00 1.6887970651344486E+00 1.6887923067287207E+00 + 1.6887874659855149E+00 1.6887825414846092E+00 1.6887775317813281E+00 + 1.6887724354061222E+00 1.6887672508641416E+00 1.6887619766348001E+00 + 1.6887566111713330E+00 1.6887511529003465E+00 1.6887456002213612E+00 + 1.6887399515063448E+00 1.6887342050992404E+00 1.6887283593154827E+00 + 1.6887224124415083E+00 1.6887163627342590E+00 1.6887102084206735E+00 + 1.6887039476971717E+00 1.6886975787291301E+00 1.6886910996503486E+00 + 1.6886845085625082E+00 1.6886778035346177E+00 1.6886709826024533E+00 + 1.6886640437679876E+00 1.6886569849988082E+00 1.6886498042275266E+00 + 1.6886424993511784E+00 1.6886350682306113E+00 1.6886275086898619E+00 + 1.6886198185155255E+00 1.6886119954561134E+00 1.6886040372213948E+00 + 1.6885959414817355E+00 1.6885877058674186E+00 1.6885793279679562E+00 + 1.6885708053313901E+00 1.6885621354635787E+00 1.6885533158274719E+00 + 1.6885443438423762E+00 1.6885352168832031E+00 1.6885259322797075E+00 + 1.6885164873157126E+00 1.6885068792283204E+00 1.6884971052071096E+00 + 1.6884871623933213E+00 1.6884770478790256E+00 1.6884667587062807E+00 + 1.6884562918662729E+00 1.6884456442984437E+00 1.6884348128896005E+00 + 1.6884237944730147E+00 1.6884125858275012E+00 1.6884011836764850E+00 + 1.6883895846870505E+00 1.6883777854689739E+00 1.6883657825737397E+00 + 1.6883535724935415E+00 1.6883411516602636E+00 1.6883285164444461E+00 + 1.6883156631542338E+00 1.6883025880343043E+00 1.6882892872647799E+00 + 1.6882757569601203E+00 1.6882619931679956E+00 1.6882479918681423E+00 + 1.6882337489711960E+00 1.6882192603175086E+00 1.6882045216759411E+00 + 1.6881895287426392E+00 1.6881742771397856E+00 1.6881587624143326E+00 + 1.6881429800367116E+00 1.6881269253995226E+00 1.6881105938161982E+00 + 1.6880939805196482E+00 1.6880770806608791E+00 1.6880598893075904E+00 + 1.6880424014427471E+00 1.6880246119631281E+00 1.6880065156778479E+00 + 1.6879881073068577E+00 1.6879693814794152E+00 1.6879503327325331E+00 + 1.6879309555093971E+00 1.6879112441577611E+00 1.6878911929283116E+00 + 1.6878707959730059E+00 1.6878500473433813E+00 1.6878289409888372E+00 + 1.6878074707548858E+00 1.6877856303813721E+00 1.6877634135006692E+00 + 1.6877408136358354E+00 1.6877178241987463E+00 1.6876944384881900E+00 + 1.6876706496879355E+00 1.6876464508647602E+00 1.6876218349664551E+00 + 1.6875967948197836E+00 1.6875713231284166E+00 1.6875454124708240E+00 + 1.6875190552981376E+00 1.6874922439319708E+00 1.6874649705622078E+00 + 1.6874372272447489E+00 1.6874090058992230E+00 1.6873802983066606E+00 + 1.6873510961071214E+00 1.6873213907972895E+00 1.6872911737280241E+00 + 1.6872604361018677E+00 1.6872291689705143E+00 1.6871973632322346E+00 + 1.6871650096292548E+00 1.6871320987450951E+00 1.6870986210018601E+00 + 1.6870645666574846E+00 1.6870299258029324E+00 1.6869946883593485E+00 + 1.6869588440751624E+00 1.6869223825231414E+00 1.6868852930973983E+00 + 1.6868475650103427E+00 1.6868091872895843E+00 1.6867701487747861E+00 + 1.6867304381144579E+00 1.6866900437627033E+00 1.6866489539759046E+00 + 1.6866071568093590E+00 1.6865646401138525E+00 1.6865213915321788E+00 + 1.6864773984955992E+00 1.6864326482202410E+00 1.6863871277034410E+00 + 1.6863408237200190E+00 1.6862937228184975E+00 1.6862458113172496E+00 + 1.6861970753005893E+00 1.6861475006147928E+00 1.6860970728640512E+00 + 1.6860457774063602E+00 1.6859935993493369E+00 1.6859405235459677E+00 + 1.6858865345902865E+00 1.6858316168129770E+00 1.6857757542769063E+00 + 1.6857189307725786E+00 1.6856611298135167E+00 1.6856023346315656E+00 + 1.6855425281721170E+00 1.6854816930892522E+00 1.6854198117408101E+00 + 1.6853568661833658E+00 1.6852928381671290E+00 1.6852277091307595E+00 + 1.6851614601960920E+00 1.6850940721627756E+00 1.6850255255028250E+00 + 1.6849558003550797E+00 1.6848848765195708E+00 1.6848127334517964E+00 + 1.6847393502569006E+00 1.6846647056837565E+00 1.6845887781189508E+00 + 1.6845115455806694E+00 1.6844329857124827E+00 1.6843530757770258E+00 + 1.6842717926495772E+00 1.6841891128115294E+00 1.6841050123437540E+00 + 1.6840194669198549E+00 1.6839324517993126E+00 1.6838439418205151E+00 + 1.6837539113936753E+00 1.6836623344936281E+00 1.6835691846525165E+00 + 1.6834744349523501E+00 1.6833780580174473E+00 1.6832800260067533E+00 + 1.6831803106060270E+00 1.6830788830199088E+00 1.6829757139638535E+00 + 1.6828707736559327E+00 1.6827640318085038E+00 1.6826554576197446E+00 + 1.6825450197650504E+00 1.6824326863882879E+00 1.6823184250929142E+00 + 1.6822022029329438E+00 1.6820839864037773E+00 1.6819637414328756E+00 + 1.6818414333702880E+00 1.6817170269790256E+00 1.6815904864252793E+00 + 1.6814617752684826E+00 1.6813308564512126E+00 1.6811976922889296E+00 + 1.6810622444595551E+00 1.6809244739928781E+00 1.6807843412597956E+00 + 1.6806418059613830E+00 1.6804968271177858E+00 1.6803493630569362E+00 + 1.6801993714030956E+00 1.6800468090652070E+00 1.6798916322250694E+00 + 1.6797337963253232E+00 1.6795732560572452E+00 1.6794099653483516E+00 + 1.6792438773498084E+00 1.6790749444236408E+00 1.6789031181297434E+00 + 1.6787283492126894E+00 1.6785505875883284E+00 1.6783697823301826E+00 + 1.6781858816556245E+00 1.6779988329118449E+00 1.6778085825615991E+00 + 1.6776150761687390E+00 1.6774182583835138E+00 1.6772180729276525E+00 + 1.6770144625792105E+00 1.6768073691571894E+00 1.6765967335059153E+00 + 1.6763824954791859E+00 1.6761645939241714E+00 1.6759429666650711E+00 + 1.6757175504865258E+00 1.6754882811167757E+00 1.6752550932105665E+00 + 1.6750179203317985E+00 1.6747766949359155E+00 1.6745313483520297E+00 + 1.6742818107647812E+00 1.6740280111959278E+00 1.6737698774856620E+00 + 1.6735073362736508E+00 1.6732403129797988E+00 1.6729687317847262E+00 + 1.6726925156099641E+00 1.6724115860978590E+00 1.6721258635911853E+00 + 1.6718352671124643E+00 1.6715397143429849E+00 1.6712391216015192E+00 + 1.6709334038227388E+00 1.6706224745353195E+00 1.6703062458397382E+00 + 1.6699846283857502E+00 1.6696575313495579E+00 1.6693248624106503E+00 + 1.6689865277283271E+00 1.6686424319178910E+00 1.6682924780265140E+00 + 1.6679365675087698E+00 1.6675746002018330E+00 1.6672064743003394E+00 + 1.6668320863309027E+00 1.6664513311262978E+00 1.6660641017992825E+00 + 1.6656702897160858E+00 1.6652697844695352E+00 1.6648624738518329E+00 + 1.6644482438269792E+00 1.6640269785028308E+00 1.6635985601028045E+00 + 1.6631628689372140E+00 1.6627197833742453E+00 1.6622691798105611E+00 + 1.6618109326415389E+00 1.6613449142311403E+00 1.6608709948814033E+00 + 1.6603890428015655E+00 1.6598989240768114E+00 1.6594005026366423E+00 + 1.6588936402228698E+00 1.6583781963572324E+00 1.6578540283086312E+00 + 1.6573209910599884E+00 1.6567789372747268E+00 1.6562277172628654E+00 + 1.6556671789467416E+00 1.6550971678263486E+00 1.6545175269442973E+00 + 1.6539280968503995E+00 1.6533287155658727E+00 1.6527192185471709E+00 + 1.6520994386494403E+00 1.6514692060896028E+00 1.6508283484090693E+00 + 1.6501766904360848E+00 1.6495140542477100E+00 1.6488402591314377E+00 + 1.6481551215464554E+00 1.6474584550845495E+00 1.6467500704306599E+00 + 1.6460297753230928E+00 1.6452973745133852E+00 1.6445526697258426E+00 + 1.6437954596167421E+00 1.6430255397332163E+00 1.6422427024718171E+00 + 1.6414467370367773E+00 1.6406374293979669E+00 1.6398145622485614E+00 + 1.6389779149624242E+00 1.6381272635512196E+00 1.6372623806212629E+00 + 1.6363830353301170E+00 1.6354889933429528E+00 1.6345800167886799E+00 + 1.6336558642158669E+00 1.6327162905484578E+00 1.6317610470413064E+00 + 1.6307898812355406E+00 1.6298025369137734E+00 1.6287987540551772E+00 + 1.6277782687904427E+00 1.6267408133566392E+00 1.6256861160519935E+00 + 1.6246139011906180E+00 1.6235238890571975E+00 1.6224157958616701E+00 + 1.6212893336939185E+00 1.6201442104785002E+00 1.6189801299294448E+00 + 1.6177967915051437E+00 1.6165938903633661E+00 1.6153711173164227E+00 + 1.6141281587865248E+00 1.6128646967613545E+00 1.6115804087498973E+00 + 1.6102749677385595E+00 1.6089480421476234E+00 1.6075992957880652E+00 + 1.6062283878187864E+00 1.6048349727043050E+00 1.6034187001729381E+00 + 1.6019792151755388E+00 1.6005161578448237E+00 1.5990291634553517E+00 + 1.5975178623841995E+00 1.5959818800723917E+00 1.5944208369871467E+00 + 1.5928343485849887E+00 1.5912220252757998E+00 1.5895834723878612E+00 + 1.5879182901339701E+00 1.5862260735786791E+00 1.5845064126067459E+00 + 1.5827588918928650E+00 1.5809830908727522E+00 1.5791785837156684E+00 + 1.5773449392984629E+00 1.5754817211812220E+00 1.5735884875846156E+00 + 1.5716647913690274E+00 1.5697101800155706E+00 1.5677241956090815E+00 + 1.5657063748232036E+00 1.5636562489076526E+00 1.5615733436777888E+00 + 1.5594571795065943E+00 1.5573072713191827E+00 1.5551231285899583E+00 + 1.5529042553425483E+00 1.5506501501526375E+00 1.5483603061538400E+00 + 1.5460342110467447E+00 1.5436713471112717E+00 1.5412711912224952E+00 + 1.5388332148700716E+00 1.5363568841814379E+00 1.5338416599489373E+00 + 1.5312869976610317E+00 1.5286923475377814E+00 1.5260571545707551E+00 + 1.5233808585675617E+00 1.5206628942011782E+00 1.5179026910642728E+00 + 1.5150996737287157E+00 1.5122532618104791E+00 1.5093628700401318E+00 + 1.5064279083391465E+00 1.5034477819022336E+00 1.5004218912859251E+00 + 1.4973496325036462E+00 1.4942303971275008E+00 1.4910635723970198E+00 + 1.4878485413351223E+00 1.4845846828715354E+00 1.4812713719739425E+00 + 1.4779079797871244E+00 1.4744938737803626E+00 1.4710284179033919E+00 + 1.4675109727511786E+00 1.4639408957378268E+00 1.4603175412799032E+00 + 1.4566402609894908E+00 1.4529084038772777E+00 1.4491213165660024E+00 + 1.4452783435145780E+00 1.4413788272532229E+00 1.4374221086299386E+00 + 1.4334075270686661E+00 1.4293344208394823E+00 1.4252021273411748E+00 + 1.4210099833965681E+00 1.4167573255609482E+00 1.4124434904439696E+00 + 1.4080678150454071E+00 1.4036296371051418E+00 1.3991282954677464E+00 + 1.3945631304620743E+00 1.3899334842962319E+00 1.3852387014683289E+00 + 1.3804781291933998E+00 1.3756511178469017E+00 1.3707570214251787E+00 + 1.3657951980233045E+00 1.3607650103306856E+00 1.3556658261448553E+00 + 1.3504970189038306E+00 1.3452579682374404E+00 1.3399480605380376E+00 + 1.3345666895509551E+00 1.3291132569851303E+00 1.3235871731442543E+00 + 1.3179878575788346E+00 1.3123147397595460E+00 1.3065672597722211E+00 + 1.3007448690348327E+00 1.2948470310368190E+00 1.2888732221010586E+00 + 1.2828229321688331E+00 1.2766956656080499E+00 1.2704909420450103E+00 + 1.2642082972199984E+00 1.2578472838669010E+00 1.2514074726170845E+00 + 1.2448884529277244E+00 1.2382898340347206E+00 1.2316112459303574E+00 + 1.2248523403657727E+00 1.2180127918783064E+00 1.2110922988437574E+00 + 1.2040905845534948E+00 1.1970073983163925E+00 1.1898425165854314E+00 + 1.1825957441088171E+00 1.1752669151053978E+00 1.1678558944640658E+00 + 1.1603625789668113E+00 1.1527868985350189E+00 1.1451288174984811E+00 + 1.1373883358866099E+00 1.1295654907411470E+00 1.1216603574496640E+00 + 1.1136730510990300E+00 1.1056037278478961E+00 1.0974525863171813E+00 + 1.0892198689974377E+00 1.0809058636718052E+00 1.0725109048532337E+00 + 1.0640353752344280E+00 1.0554797071489044E+00 1.0468443840414037E+00 + 1.0381299419456966E+00 1.0293369709677624E+00 1.0204661167720661E+00 + 1.0115180820685428E+00 1.0024936280977381E+00 9.9339357611130141E-01 + 9.8421880884490942E-01 9.7497027198047237E-01 9.6564897559423957E-01 + 9.5625599558727736E-01 9.4679247509448750E-01 9.3725962586816836E-01 + 9.2765872963187157E-01 9.1799113940003285E-01 9.0825828075863435E-01 + 8.9846165310191595E-01 8.8860283081981795E-01 8.7868346443067236E-01 + 8.6870528165327776E-01 8.5867008841228876E-01 8.4857976977056004E-01 + 8.3843629078173354E-01 8.2824169725617802E-01 8.1799811643298959E-01 + 8.0770775755054680E-01 7.9737291230782326E-01 7.8699595520831966E-01 + 7.7657934377826465E-01 7.6612561865045403E-01 7.5563740350477737E-01 + 7.4511740485634126E-01 7.3456841168175557E-01 7.2399329487401343E-01 + 7.1339500651619969E-01 7.0277657896405188E-01 6.9214112372731229E-01 + 6.8149183013973935E-01 6.7083196380749466E-01 6.6016486482576064E-01 + 6.4949394575336417E-01 6.3882268933537478E-01 6.2815464596383586E-01 + 6.1749343086696773E-01 6.0684272101766734E-01 5.9620625175244801E-01 + 5.8558781309262442E-01 5.7499124576021854E-01 5.6442043688184584E-01 + 5.5387931537487878E-01 5.4337184701133967E-01 5.3290202915624862E-01 + 5.2247388517881999E-01 5.1209145853656346E-01 5.0175880653446958E-01 + 4.9147999376376283E-01 4.8125908522728161E-01 4.7110013916157062E-01 + 4.6100719956909392E-01 4.5098428847767313E-01 4.4103539794852992E-01 + 4.3116448185891149E-01 4.2137544749053030E-01 4.1167214696087812E-01 + 4.0205836854082161E-01 3.9253782790914277E-01 3.8311415940247467E-01 + 3.7379090732786635E-01 3.6457151741486016E-01 3.5545932877735231E-01 + 3.4645756200752148E-01 3.3756928282399862E-01 3.2879737006726767E-01 + 3.2014451453107468E-01 3.1161322105343603E-01 3.0320581078009035E-01 + 2.9492442359344023E-01 2.8677102070014210E-01 2.7874738737068838E-01 + 2.7085513582424364E-01 2.6309570825285583E-01 2.5547037997783295E-01 + 2.4798026273274990E-01 2.4062630806744639E-01 2.3340931086550562E-01 + 2.2632991297091323E-01 2.1938860691696405E-01 2.1258573975132564E-01 + 2.0592151695216540E-01 1.9939600642848446E-01 1.9300914259875382E-01 + 1.8676073054150352E-01 1.8065045021138645E-01 1.7467786071405228E-01 + 1.6884240463297981E-01 1.6314341240119340E-01 1.5758010671058781E-01 + 1.5215160695137550E-01 1.4685693367396596E-01 1.4169501306541235E-01 + 1.3666468143240743E-01 1.3176468968267188E-01 1.2699370779650562E-01 + 1.2235032928020506E-01 1.1783307559305298E-01 1.1344040053962207E-01 + 1.0917069461920853E-01 1.0502228932435202E-01 1.0099346138055702E-01 + 9.7082436919549334E-02 9.3287395578655466E-02 8.9606474519172821E-02 + 8.6037772356927056E-02 8.2579352998569860E-02 7.9229249377550368E-02 + 7.5985467084126901E-02 7.2845987884236782E-02 6.9808773122549989E-02 + 6.6871767005587654E-02 6.4032899761393147E-02 6.1290090672931868E-02 + 5.8641250983155188E-02 5.6084286670509763E-02 5.3617101094620194E-02 + 5.1237597512902106E-02 4.8943681469985310E-02 4.6733263063015729E-02 + 4.4604259087129013E-02 4.2554595066621570E-02 4.0582207178510854E-02 + 3.8685044076229837E-02 3.6861068622051768E-02 3.5108259537413769E-02 + 3.3424612980528887E-02 3.1808144060473768E-02 3.0256888296265234E-02 + 2.8768903028288811E-02 2.7342268787820513E-02 2.5975090628371885E-02 + 2.4665499420284859E-02 2.3411653107559351E-02 2.2211737923489291E-02 + 2.1063969559496774E-02 1.9966594279764840E-02 1.8917889973032519E-02 + 1.7916167132322136E-02 1.6959769753467243E-02 1.6047076144070388E-02 + 1.5176499635857418E-02 1.4346489195180003E-02 1.3555529928478865E-02 + 1.2802143481689343E-02 1.2084888334680145E-02 1.1402359993728187E-02 + 1.0753191086647476E-02 1.0136051366446314E-02 9.5496476302632371E-03 + 8.9927235608436469E-03 8.4640594980006228E-03 7.9624721474127955E-03 + 7.4868142338089883E-03 7.0359741051362725E-03 6.6088752937629204E-03 + 6.2044760401782067E-03 5.8217687840554731E-03 5.4597796269738649E-03 + 5.1175677705641966E-03 4.7942249333696547E-03 4.4888747492958254E-03 + 4.2006721501674418E-03 3.9288027346095116E-03 3.6724821252210357E-03 + 3.4309553158062230E-03 3.2034960102631789E-03 2.9894059545971362E-03 + 2.7880142634191221E-03 2.5986767422053508E-03 2.4207752065230378E-03 + 2.2537167993714204E-03 2.0969333077380603E-03 1.9498804794284706E-03 + 1.8120373411888873E-03 1.6829055191059114E-03 1.5620085622319486E-03 + 1.4488912703504422E-03 1.3431190267590958E-03 1.2442771369126642E-03 + 1.1519701737283301E-03 1.0658213303167741E-03 9.8547178086027631E-04 + 9.1058005031573414E-04 8.4082139357572307E-04 7.7588718467451999E-04 + 7.1548431657904332E-04 6.5933461205699734E-04 6.0717424606670676E-04 + 5.5875318006570816E-04 5.1383460858696100E-04 4.7219441838861444E-04 + 4.3362066043435506E-04 3.9791303492081403E-04 3.6488238952941656E-04 + 3.3435023103578292E-04 3.0614825037904395E-04 2.8011786125685059E-04 + 2.5610975227637148E-04 2.3398345267172432E-04 2.1360691156050481E-04 + 1.9485609069240525E-04 1.7761457062383097E-04 1.6177317022072037E-04 + 1.4722957938340323E-04 1.3388800486335983E-04 1.2165882902402963E-04 + 1.1045828138671772E-04 1.0020812278484761E-04 9.0835341937201569E-05 + 8.2271864237859282E-05 7.4454272548500522E-05 6.7323539767403848E-05 + 6.0824772938857456E-05 5.4906968656760867E-05 4.9522779506973182E-05 + 4.4628291284457031E-05 4.0182810713500112E-05 3.6148663392303330E-05 + 3.2491001677025521E-05 2.9177622214991894E-05 2.6178792832241244E-05 + 2.3467088476904101E-05 2.1017235917096861E-05 1.8805966890079717E-05 + 1.6811879398356837E-05 1.5015306848191293E-05 1.3398194726637809E-05 + 1.1943984514649085E-05 1.0637504536050266E-05 9.4648674451674654E-06 + 8.4133740596019057E-06 7.4714232490150146E-06 6.6284275957846737E-06 + 5.8747345489613098E-06 5.2015527990396334E-06 4.6008836076180416E-06 + 4.0654568329879949E-06 3.5886714000272902E-06 3.1645399704123783E-06 + 2.7876375770634932E-06 2.4530539948425734E-06 2.1563496277904792E-06 + 1.8935147015696312E-06 1.6609315582286048E-06 1.4553398588845341E-06 + 1.2738045083893224E-06 1.1136861244714311E-06 9.7261388219310718E-07 + 8.4846057280413594E-07 7.3931972418025373E-07 6.4348463798320167E-07 + 5.5942920644887373E-07 4.8579037928132316E-07 4.2135215848752780E-07 + 3.6503100611740727E-07 3.1586255676421624E-07 2.7298953332340005E-07 + 2.3565077089633303E-07 2.0317125985421012E-07 1.7495312494371796E-07 + 1.5046746291852933E-07 1.2924696651928136E-07 1.1087926770107928E-07 + 9.5000937824396536E-08 8.1292087086461492E-08 6.9471509780632321E-08 + 5.9292326036581802E-08 5.0538074520799838E-08 4.3019214172007938E-08 + 3.6569996417183090E-08 3.1045672468993216E-08 2.6320003252896183E-08 + 2.2283042260533767E-08 1.8839164184103852E-08 1.5905314562964811E-08 + 1.3409457877700458E-08 1.1289203567095013E-08 9.4905913287221684E-09 + 7.9670188027890103E-09 6.6782963399894202E-09 5.5898150257100536E-09 + 4.6718154830638040E-09 3.8987462137207989E-09 3.2487013659151888E-09 + 2.7029288505853911E-09 2.2454006663190380E-09 1.8624381482710089E-09 + 1.5423856318399074E-09 1.2753267246426772E-09 1.0528380159157977E-09 + 8.6777562627593626E-10 7.1409051785902714E-10 5.8666894998264139E-10 + 4.8119488309890126E-10 3.9403150808709643E-10 3.2211941275590734E-10 + 2.6288919639044345E-10 2.1418660963173984E-10 1.7420853400766205E-10 + 1.4144832589638719E-10 1.1464923622171779E-10 9.2764782163475374E-11 + 7.4925092823424247E-11 6.0408379134543540E-11 4.8616791177610720E-11 + 3.9056025145971333E-11 3.1318128994094442E-11 2.5067031691121088E-11 + 2.0026387217058635E-11 1.5969382103626482E-11 1.2710205438036553E-11 + 1.0096923716495599E-11 8.0055405603613622E-12 6.3350538104945118E-12 + 5.0033505344896793E-12 3.9438045857221740E-12 3.1024620464163479E-12 + 2.4357176147612806E-12 1.9084001514615869E-12 1.4921985298515625E-12 + 1.1643699394310578E-12 9.0668214131541597E-13 7.0454909797156335E-13 + 5.4632610126149014E-13 4.2273617834332306E-13 3.2640431716288019E-13 + 2.5148005431473799E-13 1.9333232209922842E-13 1.4830325694623969E-13 + 1.1351001246504457E-13 8.6685569582767047E-14 6.6051155422132755E-14 + 5.0214224503210842E-14 3.8087065416227326E-14 2.8822011387733656E-14 + 2.1759986385919719E-14 1.6389736798541835E-14 1.2315605188614027E-14 + 9.2321164414505618E-15 6.9039838928763201E-15 5.1504172531802654E-15 + 3.8328365513937524E-15 2.8452762616344739E-15 2.1069089838541211E-15 + 1.5562349416710332E-15 1.1465774141658603E-15 8.4259938345358743E-16 + 6.1761672183651430E-16 4.5153107942852497E-16 3.2924364644938852E-16 + 2.3944109163055765E-16 1.7366879189135618E-16 1.2562524130003491E-16 + 9.0626286437363521E-17 6.5199407246321709E-17 4.6777310664699767E-17 + 3.3467159676581948E-17 2.3877246511127602E-17 1.6987172635820358E-17 + 1.2050887364177566E-17 8.5244728796162626E-18 6.0125131325874392E-18 + 4.2283786241851995E-18 2.9649014399955032E-18 2.0727854795751563E-18 + 1.4447583310180949E-18 1.0039723792561236E-18 6.9554124629555403E-19 + 4.8038268311474412E-19 3.3075300172397528E-19 2.2701827026823099E-19 + 1.5532696700297615E-19 1.0593764660015028E-19 7.2021051567237133E-20 + 4.8804789566220927E-20 3.2964565006610152E-20 2.2192291032360346E-20 + 1.4890685048829581E-20 9.9580138441103498E-21 6.6368795742556317E-21 + 4.4083479196733738E-21 2.9180716122853873E-21 1.9249148455946591E-21 + 1.2653475257506068E-21 8.2885385221058189E-22 5.4100708469114676E-22 + 3.5186145693991015E-22 2.2801897122605506E-22 1.4722700764196791E-22 + 9.4712602661940634E-23 6.0704137103816967E-23 3.8761928765549629E-23 + 2.4657853022220504E-23 1.5626223696912803E-23 9.8647867381786865E-24 + 6.2035762176843636E-24 3.8860023146972425E-24 2.4246895067175301E-24 + 1.5069084598599564E-24 9.3278308741495416E-25 5.7507274091336864E-25 + 3.5310053723646262E-25 2.1591980524415537E-25 1.3148917203920798E-25 + 7.9739900773740700E-26 4.8154206985563078E-26 2.8956772402373208E-26 + 1.7338353199035793E-26 1.0336930343278004E-26 6.1360025593885329E-27 + 3.6263831786343999E-27 2.1337324278332368E-27 1.2498793406606267E-27 + 7.2885597221054013E-28 4.2310127732823023E-28 2.4448899459584321E-28 + 1.4062737964001414E-28 8.0511727696946695E-29 4.5878590455785153E-29 + 2.6019891267548131E-29 1.4686830292263986E-29 8.2501230538204564E-30 + 4.6119538504201915E-30 2.5655704598305023E-30 1.4201674698673907E-30 + 7.8222881757551195E-31 4.2869515625758316E-31 2.3375752401281033E-31 + 1.2681378999918490E-31 6.8443572032327612E-32 3.6748998590892373E-32 + 1.9628460943387690E-32 1.0428826624373554E-32 5.5115622904359018E-33 + 2.8972318170904225E-33 1.5147577010455446E-33 7.8765306091344806E-34 + 4.0732303348362944E-34 2.0947653343857800E-34 1.0712830852506641E-34 + 5.4478544305506299E-35 2.7547290907559956E-35 1.3849818680283092E-35 + 6.9230994429786594E-36 3.4405486302965832E-36 1.6998269117561641E-36 + 8.3485422935607914E-37 4.0759091685371362E-37 1.9779943356081184E-37 + 9.5409354962190733E-38 4.5740486343431164E-38 2.1793796677157992E-38 + 1.0319664337167240E-38 4.8559805011922081E-39 2.2706227033182838E-39 + 1.0549880891666352E-39 4.8703750244269799E-40 2.2339174181966662E-40 + 1.0179797889952849E-40 4.6084604571981318E-41 2.0724995950094418E-41 + 9.2583161480549805E-42 4.1081423320997126E-42 1.8105549728070188E-42 + 7.9251487349278588E-43 3.4451583898581343E-43 1.4872826275842491E-43 + 6.3758297940825674E-44 2.7140326297216267E-44 1.1471089910490684E-44 + 4.8137284767232937E-45 2.0054954973941050E-45 8.2947020309690766E-46 + 3.4056074028305919E-46 1.3879654647523467E-46 5.6147253904627165E-47 + 2.2543407302980411E-47 8.9831173591628008E-48 3.5524361129481278E-48 + 1.3940947285020429E-48 5.4287536154373289E-49 2.0976100935008608E-49 + 8.0415737566884588E-50 3.0586076970619018E-50 1.1541112139373834E-50 + 4.3200357780156660E-51 1.6040481462628709E-51 5.9076170964640617E-52 + 2.1579759909832830E-52 7.8179807989472348E-53 2.8088635807810577E-53 + 1.0007579224468041E-53 3.5356071868538556E-54 1.2385391896747374E-54 + 4.3017028373321146E-55 1.4812561036347217E-55 5.0565403909365155E-56 + 1.7111297213139354E-56 5.7396504434599983E-57 1.9083999939138645E-57 + 6.2909119642083841E-58 2.0506619052500036E-58 6.5396003489162937E-59 + 2.0653278201995909E-59 6.4590892557493698E-60 2.0001457025645958E-60 + + + -3.7621195161325556E+00 -3.7621195161045247E+00 -3.7621195160191707E+00 + -3.7621195158750802E+00 -3.7621195156707885E+00 -3.7621195154047751E+00 + -3.7621195150754589E+00 -3.7621195146812485E+00 -3.7621195142205348E+00 + -3.7621195136916543E+00 -3.7621195130928897E+00 -3.7621195124225726E+00 + -3.7621195116788977E+00 -3.7621195108601246E+00 -3.7621195099643430E+00 + -3.7621195089897932E+00 -3.7621195079345333E+00 -3.7621195067965729E+00 + -3.7621195055740353E+00 -3.7621195042648692E+00 -3.7621195028669874E+00 + -3.7621195013783004E+00 -3.7621194997967540E+00 -3.7621194981200490E+00 + -3.7621194963461004E+00 -3.7621194944725502E+00 -3.7621194924971144E+00 + -3.7621194904175135E+00 -3.7621194882312521E+00 -3.7621194859359202E+00 + -3.7621194835290881E+00 -3.7621194810081340E+00 -3.7621194783705154E+00 + -3.7621194756136345E+00 -3.7621194727347236E+00 -3.7621194697311018E+00 + -3.7621194665999673E+00 -3.7621194633384665E+00 -3.7621194599437624E+00 + -3.7621194564127975E+00 -3.7621194527426134E+00 -3.7621194489302137E+00 + -3.7621194449723321E+00 -3.7621194408659084E+00 -3.7621194366075761E+00 + -3.7621194321941029E+00 -3.7621194276221974E+00 -3.7621194228882380E+00 + -3.7621194179889077E+00 -3.7621194129205175E+00 -3.7621194076795099E+00 + -3.7621194022621238E+00 -3.7621193966645743E+00 -3.7621193908831123E+00 + -3.7621193849137260E+00 -3.7621193787525056E+00 -3.7621193723953277E+00 + -3.7621193658380472E+00 -3.7621193590764870E+00 -3.7621193521063621E+00 + -3.7621193449232049E+00 -3.7621193375226345E+00 -3.7621193299000746E+00 + -3.7621193220509608E+00 -3.7621193139704552E+00 -3.7621193056538620E+00 + -3.7621192970962221E+00 -3.7621192882925056E+00 -3.7621192792377975E+00 + -3.7621192699268025E+00 -3.7621192603542659E+00 -3.7621192505148202E+00 + -3.7621192404030137E+00 -3.7621192300132633E+00 -3.7621192193399593E+00 + -3.7621192083772024E+00 -3.7621191971192642E+00 -3.7621191855599969E+00 + -3.7621191736933919E+00 -3.7621191615131950E+00 -3.7621191490131398E+00 + -3.7621191361866351E+00 -3.7621191230272646E+00 -3.7621191095282387E+00 + -3.7621190956828325E+00 -3.7621190814840326E+00 -3.7621190669247397E+00 + -3.7621190519979031E+00 -3.7621190366960482E+00 -3.7621190210118205E+00 + -3.7621190049375608E+00 -3.7621189884654966E+00 -3.7621189715878822E+00 + -3.7621189542965294E+00 -3.7621189365833749E+00 -3.7621189184400214E+00 + -3.7621188998581299E+00 -3.7621188808289014E+00 -3.7621188613436196E+00 + -3.7621188413933551E+00 -3.7621188209689862E+00 -3.7621188000612116E+00 + -3.7621187786606574E+00 -3.7621187567576095E+00 -3.7621187343423155E+00 + -3.7621187114048147E+00 -3.7621186879349082E+00 -3.7621186639223612E+00 + -3.7621186393565376E+00 -3.7621186142267704E+00 -3.7621185885221720E+00 + -3.7621185622315370E+00 -3.7621185353436464E+00 -3.7621185078469308E+00 + -3.7621184797297142E+00 -3.7621184509800067E+00 -3.7621184215857300E+00 + -3.7621183915343859E+00 -3.7621183608134046E+00 -3.7621183294100984E+00 + -3.7621182973112712E+00 -3.7621182645037101E+00 -3.7621182309738028E+00 + -3.7621181967078128E+00 -3.7621181616917516E+00 -3.7621181259112708E+00 + -3.7621180893517949E+00 -3.7621180519986046E+00 -3.7621180138367118E+00 + -3.7621179748506197E+00 -3.7621179350247527E+00 -3.7621178943432896E+00 + -3.7621178527900256E+00 -3.7621178103484056E+00 -3.7621177670017767E+00 + -3.7621177227329983E+00 -3.7621176775247545E+00 -3.7621176313592914E+00 + -3.7621175842186507E+00 -3.7621175360844252E+00 -3.7621174869381226E+00 + -3.7621174367605734E+00 -3.7621173855326302E+00 -3.7621173332344422E+00 + -3.7621172798460725E+00 -3.7621172253471289E+00 -3.7621171697168458E+00 + -3.7621171129341469E+00 -3.7621170549774097E+00 -3.7621169958249010E+00 + -3.7621169354542601E+00 -3.7621168738428312E+00 -3.7621168109675951E+00 + -3.7621167468049412E+00 -3.7621166813310780E+00 -3.7621166145215650E+00 + -3.7621165463517423E+00 -3.7621164767962836E+00 -3.7621164058296572E+00 + -3.7621163334256669E+00 -3.7621162595577213E+00 -3.7621161841988178E+00 + -3.7621161073213920E+00 -3.7621160288974234E+00 -3.7621159488984031E+00 + -3.7621158672952801E+00 -3.7621157840584938E+00 -3.7621156991579845E+00 + -3.7621156125631701E+00 -3.7621155242428936E+00 -3.7621154341654135E+00 + -3.7621153422984888E+00 -3.7621152486093248E+00 -3.7621151530644319E+00 + -3.7621150556298475E+00 -3.7621149562709331E+00 -3.7621148549524461E+00 + -3.7621147516385398E+00 -3.7621146462927939E+00 -3.7621145388779156E+00 + -3.7621144293562589E+00 -3.7621143176893361E+00 -3.7621142038379447E+00 + -3.7621140877623054E+00 -3.7621139694218346E+00 -3.7621138487753907E+00 + -3.7621137257808295E+00 -3.7621136003954443E+00 -3.7621134725758827E+00 + -3.7621133422777411E+00 -3.7621132094561429E+00 -3.7621130740650455E+00 + -3.7621129360580330E+00 -3.7621127953875777E+00 -3.7621126520052970E+00 + -3.7621125058621190E+00 -3.7621123569080464E+00 -3.7621122050920857E+00 + -3.7621120503624828E+00 -3.7621118926666273E+00 -3.7621117319507769E+00 + -3.7621115681603134E+00 -3.7621114012398262E+00 -3.7621112311326539E+00 + -3.7621110577813632E+00 -3.7621108811273603E+00 -3.7621107011111743E+00 + -3.7621105176721525E+00 -3.7621103307485835E+00 -3.7621101402777528E+00 + -3.7621099461958143E+00 -3.7621097484377493E+00 -3.7621095469373511E+00 + -3.7621093416274229E+00 -3.7621091324394915E+00 -3.7621089193038642E+00 + -3.7621087021496620E+00 -3.7621084809046774E+00 -3.7621082554955216E+00 + -3.7621080258475041E+00 -3.7621077918846089E+00 -3.7621075535295039E+00 + -3.7621073107034935E+00 -3.7621070633264062E+00 -3.7621068113167881E+00 + -3.7621065545918082E+00 -3.7621062930669904E+00 -3.7621060266564981E+00 + -3.7621057552730353E+00 -3.7621054788276211E+00 -3.7621051972298276E+00 + -3.7621049103876922E+00 -3.7621046182074998E+00 -3.7621043205939797E+00 + -3.7621040174501732E+00 -3.7621037086774898E+00 -3.7621033941754529E+00 + -3.7621030738419838E+00 -3.7621027475731275E+00 -3.7621024152631399E+00 + -3.7621020768045192E+00 -3.7621017320876637E+00 -3.7621013810012718E+00 + -3.7621010234319674E+00 -3.7621006592643682E+00 -3.7621002883812755E+00 + -3.7620999106632067E+00 -3.7620995259887366E+00 -3.7620991342341590E+00 + -3.7620987352738835E+00 -3.7620983289798429E+00 -3.7620979152218426E+00 + -3.7620974938674281E+00 -3.7620970647819085E+00 -3.7620966278280568E+00 + -3.7620961828663799E+00 -3.7620957297548623E+00 -3.7620952683491415E+00 + -3.7620947985022681E+00 -3.7620943200646151E+00 -3.7620938328840943E+00 + -3.7620933368059744E+00 -3.7620928316726743E+00 -3.7620923173240066E+00 + -3.7620917935969351E+00 -3.7620912603255823E+00 -3.7620907173411635E+00 + -3.7620901644720051E+00 -3.7620896015433725E+00 -3.7620890283774866E+00 + -3.7620884447935832E+00 -3.7620878506076161E+00 -3.7620872456323644E+00 + -3.7620866296773601E+00 -3.7620860025488820E+00 -3.7620853640497200E+00 + -3.7620847139792866E+00 -3.7620840521335039E+00 -3.7620833783046899E+00 + -3.7620826922816075E+00 -3.7620819938493666E+00 -3.7620812827892318E+00 + -3.7620805588787842E+00 -3.7620798218916205E+00 -3.7620790715974262E+00 + -3.7620783077619659E+00 -3.7620775301468030E+00 -3.7620767385094482E+00 + -3.7620759326031044E+00 -3.7620751121768294E+00 -3.7620742769751314E+00 + -3.7620734267381706E+00 -3.7620725612016686E+00 -3.7620716800965455E+00 + -3.7620707831492624E+00 -3.7620698700814312E+00 -3.7620689406097019E+00 + -3.7620679944461033E+00 -3.7620670312973021E+00 -3.7620660508650841E+00 + -3.7620650528461099E+00 -3.7620640369314979E+00 -3.7620630028073139E+00 + -3.7620619501539947E+00 -3.7620608786463761E+00 -3.7620597879538780E+00 + -3.7620586777398479E+00 -3.7620575476620974E+00 -3.7620563973723966E+00 + -3.7620552265163036E+00 -3.7620540347334428E+00 -3.7620528216570652E+00 + -3.7620515869141427E+00 -3.7620503301250237E+00 -3.7620490509036797E+00 + -3.7620477488571815E+00 -3.7620464235858577E+00 -3.7620450746831557E+00 + -3.7620437017354025E+00 -3.7620423043217439E+00 -3.7620408820140381E+00 + -3.7620394343767680E+00 -3.7620379609668095E+00 -3.7620364613333312E+00 + -3.7620349350177547E+00 -3.7620333815534823E+00 -3.7620318004658375E+00 + -3.7620301912719198E+00 -3.7620285534804792E+00 -3.7620268865918161E+00 + -3.7620251900972979E+00 -3.7620234634797862E+00 -3.7620217062130612E+00 + -3.7620199177617133E+00 -3.7620180975811017E+00 -3.7620162451172519E+00 + -3.7620143598063649E+00 -3.7620124410751661E+00 -3.7620104883401515E+00 + -3.7620085010078568E+00 -3.7620064784745351E+00 -3.7620044201260199E+00 + -3.7620023253373782E+00 -3.7620001934728942E+00 -3.7619980238859805E+00 + -3.7619958159186981E+00 -3.7619935689016750E+00 -3.7619912821541206E+00 + -3.7619889549833800E+00 -3.7619865866847131E+00 -3.7619841765413122E+00 + -3.7619817238238791E+00 -3.7619792277904649E+00 -3.7619766876864151E+00 + -3.7619741027437876E+00 -3.7619714721815982E+00 -3.7619687952051803E+00 + -3.7619660710062188E+00 -3.7619632987621920E+00 -3.7619604776366811E+00 + -3.7619576067784513E+00 -3.7619546853218266E+00 -3.7619517123859558E+00 + -3.7619486870748688E+00 -3.7619456084769674E+00 -3.7619424756650068E+00 + -3.7619392876956792E+00 -3.7619360436092113E+00 -3.7619327424294862E+00 + -3.7619293831632654E+00 -3.7619259648003061E+00 -3.7619224863127378E+00 + -3.7619189466550722E+00 -3.7619153447635902E+00 -3.7619116795562979E+00 + -3.7619079499324113E+00 -3.7619041547721976E+00 -3.7619002929364074E+00 + -3.7618963632663034E+00 -3.7618923645829594E+00 -3.7618882956870774E+00 + -3.7618841553587621E+00 -3.7618799423569969E+00 -3.7618756554190189E+00 + -3.7618712932605649E+00 -3.7618668545751563E+00 -3.7618623380336675E+00 + -3.7618577422839388E+00 -3.7618530659505320E+00 -3.7618483076341591E+00 + -3.7618434659114377E+00 -3.7618385393343101E+00 -3.7618335264298066E+00 + -3.7618284256994059E+00 -3.7618232356187669E+00 -3.7618179546371118E+00 + -3.7618125811770113E+00 -3.7618071136336861E+00 -3.7618015503746300E+00 + -3.7617958897392141E+00 -3.7617901300380518E+00 -3.7617842695526091E+00 + -3.7617783065347097E+00 -3.7617722392059063E+00 -3.7617660657570333E+00 + -3.7617597843478046E+00 -3.7617533931060270E+00 -3.7617468901271818E+00 + -3.7617402734740018E+00 -3.7617335411755528E+00 -3.7617266912271075E+00 + -3.7617197215890936E+00 -3.7617126301869388E+00 -3.7617054149100171E+00 + -3.7616980736115573E+00 -3.7616906041074807E+00 -3.7616830041761182E+00 + -3.7616752715574564E+00 -3.7616674039523450E+00 -3.7616593990221090E+00 + -3.7616512543877025E+00 -3.7616429676288803E+00 -3.7616345362837671E+00 + -3.7616259578478384E+00 -3.7616172297735937E+00 -3.7616083494693262E+00 + -3.7615993142987842E+00 -3.7615901215800358E+00 -3.7615807685850329E+00 + -3.7615712525386713E+00 -3.7615615706177818E+00 -3.7615517199507083E+00 + -3.7615416976161069E+00 -3.7615315006421799E+00 -3.7615211260061203E+00 + -3.7615105706326641E+00 -3.7614998313937247E+00 -3.7614889051071136E+00 + -3.7614777885358257E+00 -3.7614664783869900E+00 -3.7614549713109735E+00 + -3.7614432639003099E+00 -3.7614313526888847E+00 -3.7614192341506567E+00 + -3.7614069046987946E+00 -3.7613943606847040E+00 -3.7613815983968628E+00 + -3.7613686140595961E+00 -3.7613554038322641E+00 -3.7613419638080452E+00 + -3.7613282900125147E+00 -3.7613143784030481E+00 -3.7613002248670160E+00 + -3.7612858252210724E+00 -3.7612711752096644E+00 -3.7612562705038846E+00 + -3.7612411067002673E+00 -3.7612256793193066E+00 -3.7612099838043958E+00 + -3.7611940155202741E+00 -3.7611777697518662E+00 -3.7611612417028222E+00 + -3.7611444264941238E+00 -3.7611273191625267E+00 -3.7611099146593316E+00 + -3.7610922078489706E+00 -3.7610741935071461E+00 -3.7610558663196820E+00 + -3.7610372208806546E+00 -3.7610182516911581E+00 -3.7609989531573516E+00 + -3.7609793195893131E+00 -3.7609593451986489E+00 -3.7609390240975893E+00 + -3.7609183502967061E+00 -3.7608973177034932E+00 -3.7608759201204358E+00 + -3.7608541512431577E+00 -3.7608320046589028E+00 -3.7608094738441644E+00 + -3.7607865521632400E+00 -3.7607632328660889E+00 -3.7607395090863354E+00 + -3.7607153738393739E+00 -3.7606908200203124E+00 -3.7606658404019204E+00 + -3.7606404276322283E+00 -3.7606145742330046E+00 -3.7605882725970567E+00 + -3.7605615149861538E+00 -3.7605342935288939E+00 -3.7605066002181631E+00 + -3.7604784269091329E+00 -3.7604497653166993E+00 -3.7604206070130233E+00 + -3.7603909434251612E+00 -3.7603607658325990E+00 -3.7603300653647347E+00 + -3.7602988329981923E+00 -3.7602670595540637E+00 -3.7602347356957457E+00 + -3.7602018519256930E+00 -3.7601683985830006E+00 -3.7601343658402619E+00 + -3.7600997437011690E+00 -3.7600645219970881E+00 -3.7600286903846207E+00 + -3.7599922383421407E+00 -3.7599551551670642E+00 -3.7599174299724645E+00 + -3.7598790516842979E+00 -3.7598400090376574E+00 -3.7598002905741086E+00 + -3.7597598846376745E+00 -3.7597187793721805E+00 -3.7596769627172746E+00 + -3.7596344224049498E+00 -3.7595911459564078E+00 -3.7595471206780422E+00 + -3.7595023336578399E+00 -3.7594567717616600E+00 -3.7594104216294775E+00 + -3.7593632696714674E+00 -3.7593153020639472E+00 -3.7592665047454656E+00 + -3.7592168634129193E+00 -3.7591663635169539E+00 -3.7591149902581384E+00 + -3.7590627285824993E+00 -3.7590095631771412E+00 -3.7589554784659347E+00 + -3.7589004586048689E+00 -3.7588444874774676E+00 -3.7587875486900924E+00 + -3.7587296255675580E+00 -3.7586707011476270E+00 -3.7586107581766388E+00 + -3.7585497791042726E+00 -3.7584877460786315E+00 -3.7584246409408384E+00 + -3.7583604452199331E+00 -3.7582951401274456E+00 -3.7582287065521918E+00 + -3.7581611250542832E+00 -3.7580923758598614E+00 -3.7580224388554231E+00 + -3.7579512935816370E+00 -3.7578789192276787E+00 -3.7578052946252947E+00 + -3.7577303982424675E+00 -3.7576542081771889E+00 -3.7575767021514137E+00 + -3.7574978575041831E+00 -3.7574176511853912E+00 -3.7573360597491097E+00 + -3.7572530593465809E+00 -3.7571686257196233E+00 -3.7570827341934501E+00 + -3.7569953596694861E+00 -3.7569064766182039E+00 -3.7568160590717614E+00 + -3.7567240806165554E+00 -3.7566305143854688E+00 -3.7565353330501821E+00 + -3.7564385088132308E+00 -3.7563400134000591E+00 -3.7562398180508834E+00 + -3.7561378935122840E+00 -3.7560342100288846E+00 -3.7559287373345853E+00 + -3.7558214446442166E+00 -3.7557123006441349E+00 -3.7556012734836779E+00 + -3.7554883307657145E+00 -3.7553734395374723E+00 -3.7552565662808259E+00 + -3.7551376769029279E+00 -3.7550167367260805E+00 -3.7548937104781497E+00 + -3.7547685622821101E+00 -3.7546412556456530E+00 -3.7545117534510886E+00 + -3.7543800179441953E+00 -3.7542460107238416E+00 -3.7541096927304758E+00 + -3.7539710242353395E+00 -3.7538299648286633E+00 -3.7536864734083850E+00 + -3.7535405081681721E+00 -3.7533920265854617E+00 -3.7532409854092830E+00 + -3.7530873406476970E+00 -3.7529310475554603E+00 -3.7527720606210404E+00 + -3.7526103335534486E+00 -3.7524458192691794E+00 -3.7522784698787017E+00 + -3.7521082366724570E+00 -3.7519350701074039E+00 -3.7517589197924663E+00 + -3.7515797344741766E+00 -3.7513974620222270E+00 -3.7512120494140784E+00 + -3.7510234427204567E+00 -3.7508315870894009E+00 -3.7506364267309165E+00 + -3.7504379049009060E+00 -3.7502359638849501E+00 -3.7500305449820361E+00 + -3.7498215884872912E+00 -3.7496090336758128E+00 -3.7493928187845742E+00 + -3.7491728809952454E+00 -3.7489491564161108E+00 -3.7487215800640370E+00 + -3.7484900858458348E+00 -3.7482546065396036E+00 -3.7480150737754641E+00 + -3.7477714180161641E+00 -3.7475235685375208E+00 -3.7472714534080467E+00 + -3.7470149994686803E+00 -3.7467541323120486E+00 -3.7464887762612484E+00 + -3.7462188543486397E+00 -3.7459442882937304E+00 -3.7456649984812289E+00 + -3.7453809039383636E+00 -3.7450919223120684E+00 -3.7447979698459228E+00 + -3.7444989613558559E+00 -3.7441948102067508E+00 -3.7438854282875886E+00 + -3.7435707259867983E+00 -3.7432506121667863E+00 -3.7429249941385607E+00 + -3.7425937776352471E+00 -3.7422568667858713E+00 -3.7419141640881528E+00 + -3.7415655703813799E+00 -3.7412109848181534E+00 -3.7408503048364654E+00 + -3.7404834261306763E+00 -3.7401102426224284E+00 -3.7397306464305782E+00 + -3.7393445278416158E+00 -3.7389517752782147E+00 -3.7385522752686811E+00 + -3.7381459124148817E+00 -3.7377325693600256E+00 -3.7373121267560196E+00 + -3.7368844632302824E+00 -3.7364494553518042E+00 -3.7360069775965687E+00 + -3.7355569023132134E+00 -3.7350990996869569E+00 -3.7346334377039354E+00 + -3.7341597821144190E+00 -3.7336779963954632E+00 -3.7331879417136178E+00 + -3.7326894768857812E+00 -3.7321824583406462E+00 -3.7316667400789343E+00 + -3.7311421736331636E+00 -3.7306086080264351E+00 -3.7300658897312937E+00 + -3.7295138626271331E+00 -3.7289523679574494E+00 -3.7283812442860462E+00 + -3.7278003274530858E+00 -3.7272094505298936E+00 -3.7266084437732676E+00 + -3.7259971345790404E+00 -3.7253753474350790E+00 -3.7247429038732731E+00 + -3.7240996224210936E+00 -3.7234453185519092E+00 -3.7227798046351368E+00 + -3.7221028898850514E+00 -3.7214143803092514E+00 -3.7207140786561181E+00 + -3.7200017843612962E+00 -3.7192772934936893E+00 -3.7185403987003678E+00 + -3.7177908891508702E+00 -3.7170285504803515E+00 -3.7162531647320725E+00 + -3.7154645102989461E+00 -3.7146623618641788E+00 -3.7138464903410768E+00 + -3.7130166628119325E+00 -3.7121726424657751E+00 -3.7113141885355869E+00 + -3.7104410562340973E+00 -3.7095529966891680E+00 -3.7086497568775161E+00 + -3.7077310795582927E+00 -3.7067967032049172E+00 -3.7058463619360991E+00 + -3.7048797854464119E+00 -3.7038966989348072E+00 -3.7028968230331563E+00 + -3.7018798737329051E+00 -3.7008455623111156E+00 -3.6997935952552639E+00 + -3.6987236741871974E+00 -3.6976354957854953E+00 -3.6965287517070933E+00 + -3.6954031285079649E+00 -3.6942583075620017E+00 -3.6930939649794792E+00 + -3.6919097715238958E+00 -3.6907053925277218E+00 -3.6894804878072001E+00 + -3.6882347115755998E+00 -3.6869677123556497E+00 -3.6856791328904492E+00 + -3.6843686100531361E+00 -3.6830357747557287E+00 -3.6816802518562119E+00 + -3.6803016600645928E+00 -3.6788996118478616E+00 -3.6774737133335256E+00 + -3.6760235642113543E+00 -3.6745487576350722E+00 -3.6730488801212200E+00 + -3.6715235114481675E+00 -3.6699722245523509E+00 -3.6683945854246907E+00 + -3.6667901530043623E+00 -3.6651584790718599E+00 -3.6634991081409556E+00 + -3.6618115773484514E+00 -3.6600954163433674E+00 -3.6583501471744277E+00 + -3.6565752841761459E+00 -3.6547703338534911E+00 -3.6529347947654309E+00 + -3.6510681574067494E+00 -3.6491699040886867E+00 -3.6472395088180685E+00 + -3.6452764371751094E+00 -3.6432801461897566E+00 -3.6412500842167272E+00 + -3.6391856908089752E+00 -3.6370863965898321E+00 -3.6349516231239520E+00 + -3.6327807827865595E+00 -3.6305732786312634E+00 -3.6283285042569289E+00 + -3.6260458436727694E+00 -3.6237246711621305E+00 -3.6213643511449418E+00 + -3.6189642380388998E+00 -3.6165236761189039E+00 -3.6140419993761239E+00 + -3.6115185313743381E+00 -3.6089525851061373E+00 -3.6063434628473741E+00 + -3.6036904560101184E+00 -3.6009928449948783E+00 -3.5982498990410008E+00 + -3.5954608760765554E+00 -3.5926250225660041E+00 -3.5897415733581188E+00 + -3.5868097515310011E+00 -3.5838287682378391E+00 -3.5807978225499477E+00 + -3.5777161013000489E+00 -3.5745827789235163E+00 -3.5713970172996183E+00 + -3.5681579655907463E+00 -3.5648647600818086E+00 -3.5615165240179798E+00 + -3.5581123674423125E+00 -3.5546513870317389E+00 -3.5511326659334856E+00 + -3.5475552735999263E+00 -3.5439182656232231E+00 -3.5402206835695864E+00 + -3.5364615548128815E+00 -3.5326398923679334E+00 -3.5287546947234461E+00 + -3.5248049456749455E+00 -3.5207896141572608E+00 -3.5167076540773512E+00 + -3.5125580041466340E+00 -3.5083395877140640E+00 -3.5040513125987127E+00 + -3.4996920709236270E+00 -3.4952607389490691E+00 -3.4907561769072259E+00 + -3.4861772288370121E+00 -3.4815227224199905E+00 -3.4767914688169164E+00 + -3.4719822625056898E+00 -3.4670938811201664E+00 -3.4621250852909018E+00 + -3.4570746184864234E+00 -3.4519412068570405E+00 -3.4467235590801910E+00 + -3.4414203662077822E+00 -3.4360303015155882E+00 -3.4305520203552522E+00 + -3.4249841600085591E+00 -3.4193253395450105E+00 -3.4135741596817128E+00 + -3.4077292026467259E+00 -3.4017890320462634E+00 -3.3957521927348320E+00 + -3.3896172106899169E+00 -3.3833825928903121E+00 -3.3770468271993370E+00 + -3.3706083822523598E+00 -3.3640657073497842E+00 -3.3574172323547420E+00 + -3.3506613675968500E+00 -3.3437965037818702E+00 -3.3368210119072450E+00 + -3.3297332431844739E+00 -3.3225315289685082E+00 -3.3152141806944191E+00 + -3.3077794898214585E+00 -3.3002257277855898E+00 -3.2925511459602426E+00 + -3.2847539756262583E+00 -3.2768324279508398E+00 -3.2687846939764023E+00 + -3.2606089446198681E+00 -3.2523033306822438E+00 -3.2438659828704086E+00 + -3.2352950118289998E+00 -3.2265885081862864E+00 -3.2177445426118392E+00 + -3.2087611658876560E+00 -3.1996364089936065E+00 -3.1903682832075675E+00 + -3.1809547802195142E+00 -3.1713938722632293E+00 -3.1616835122631541E+00 + -3.1518216339986611E+00 -3.1418061522866556E+00 -3.1316349631820204E+00 + -3.1213059441979372E+00 -3.1108169545458551E+00 -3.1001658353965489E+00 + -3.0893504101627651E+00 -3.0783684848041619E+00 -3.0672178481556474E+00 + -3.0558962722802860E+00 -3.0444015128465618E+00 -3.0327313095323336E+00 + -3.0208833864553117E+00 -3.0088554526314626E+00 -2.9966452024628878E+00 + -2.9842503162549461E+00 -2.9716684607646333E+00 -2.9588972897813060E+00 + -2.9459344447401339E+00 -2.9327775553703348E+00 -2.9194242403782060E+00 + -2.9058721081676442E+00 -2.8921187575978391E+00 -2.8781617787801919E+00 + -2.8639987539161531E+00 -2.8496272581757287E+00 -2.8350448606200658E+00 + -2.8202491251673032E+00 -2.8052376116049977E+00 -2.7900078766493053E+00 + -2.7745574750525828E+00 -2.7588839607611426E+00 -2.7429848881246750E+00 + -2.7268578131585195E+00 -2.7105002948604544E+00 -2.6939098965834263E+00 + -2.6770841874668561E+00 -2.6600207439260961E+00 -2.6427171512039216E+00 + -2.6251710049838000E+00 -2.6073799130683666E+00 -2.5893414971232276E+00 + -2.5710533944888740E+00 -2.5525132600625695E+00 -2.5337187682503703E+00 + -2.5146676149936331E+00 -2.4953575198695259E+00 -2.4757862282685594E+00 + -2.4559515136506698E+00 -2.4358511798817637E+00 -2.4154830636522000E+00 + -2.3948450369798437E+00 -2.3739350097987151E+00 -2.3527509326354537E+00 + -2.3312907993757435E+00 -2.3095526501217707E+00 -2.2875345741435691E+00 + -2.2652347129251420E+00 -2.2426512633076632E+00 -2.2197824807317574E+00 + -2.1966266825795704E+00 -2.1731822516202040E+00 -2.1494476395583653E+00 + -2.1254213706887009E+00 -2.1011020456580018E+00 -2.0764883453356213E+00 + -2.0515790347948277E+00 -2.0263729674055173E+00 -2.0008690890407679E+00 + -1.9750664423973621E+00 -1.9489641714325288E+00 -1.9225615259178443E+00 + -1.8958578661102847E+00 -1.8688526675434887E+00 -1.8415455259378120E+00 + -1.8139361622314978E+00 -1.7860244277326842E+00 -1.7578103093932587E+00 + -1.7292939352041228E+00 -1.7004755797128994E+00 -1.6713556696632286E+00 + -1.6419347897558494E+00 -1.6122136885309823E+00 -1.5821932843711659E+00 + -1.5518746716239595E+00 -1.5212591268432016E+00 -1.4903481151472635E+00 + -1.4591432966934035E+00 -1.4276465332652712E+00 -1.3958598949721079E+00 + -1.3637856670569295E+00 -1.3314263568106250E+00 -1.2987847005887267E+00 + -1.2658636709278219E+00 -1.2326664837567229E+00 -1.1991966056989041E+00 + -1.1654577614605923E+00 -1.1314539412999129E+00 -1.0971894085709439E+00 + -1.0626687073366017E+00 -1.0278966700435286E+00 -9.9287842525187398E-01 + -9.5761940541208201E-01 -9.2212535467998569E-01 -8.8640233676186986E-01 + -8.5045674277887595E-01 -8.1429529914167398E-01 -7.7792507542308698E-01 + -7.4135349221817515E-01 -7.0458832897858770E-01 -6.6763773180829578E-01 + -6.3051022120684530E-01 -5.9321469974513497E-01 -5.5576045965841125E-01 + -5.1815719033967200E-01 -4.8041498571652530E-01 -4.4254435149282306E-01 + -4.0455621223643284E-01 -3.6646191829227459E-01 -3.2827325249997003E-01 + -2.9000243669406206E-01 -2.5166213796267506E-01 -2.1326547464152010E-01 + -1.7482602201698769E-01 -1.3635781771210645E-01 -9.7875366727678867E-02 + -5.9393646109872564E-02 -2.0928109214105907E-02 1.7505310466056183E-02 + 5.5890195937131001E-02 9.4209643845113197E-02 1.3244626215073788E-01 + 1.7058216837731496E-01 2.0859898846782379E-01 2.4647785629115895E-01 + 2.8419941383703229E-01 3.2174381214109854E-01 3.5909071298362316E-01 + 3.9621929140542361E-01 4.3310823908674917E-01 4.6973576863649680E-01 + 5.0607961883947161E-01 5.4211706091169265E-01 5.7782490581488932E-01 + 6.1317951268235504E-01 6.4815679840997997E-01 6.8273224846812519E-01 + 7.1688092898988520E-01 7.5057750019419023E-01 7.8379623120316588E-01 + 8.1651101631342371E-01 8.4869539278366857E-01 8.8032256020149857E-01 + 9.1136540149382905E-01 9.4179650564621942E-01 9.7158819219843384E-01 + 1.0007125375838255E+00 1.0291414033820021E+00 1.0568464665551542E+00 + 1.0837992517396158E+00 1.1099711656653009E+00 1.1353335337768296E+00 + 1.1598576391313313E+00 1.1835147636487409E+00 1.2062762317915758E+00 + 1.2281134567522616E+00 1.2489979892270060E+00 1.2689015688557237E+00 + 1.2877961784095509E+00 1.3056541008068583E+00 1.3224479790408399E+00 + 1.3381508791016834E+00 1.3527363559773888E+00 1.3661785228179426E+00 + 1.3784521233479032E+00 1.3895326076133097E+00 1.3993962111486717E+00 + 1.4080200376504401E+00 1.4153821452430295E+00 1.4214616364236063E+00 + 1.4262387517708959E+00 1.4296949675032715E+00 1.4318130969693783E+00 + 1.4325773961538240E+00 1.4319736732776269E+00 1.4299894025710513E+00 + 1.4266138422927281E+00 1.4218381570645375E+00 1.4156555445869099E+00 + 1.4080613667921127E+00 1.3990532854859343E+00 1.3886314025179163E+00 + 1.3767984045098618E+00 1.3635597121580940E+00 1.3489236341094271E+00 + 1.3329015253917862E+00 1.3155079503585216E+00 1.2967608500790744E+00 + 1.2766817140789848E+00 1.2552957562968909E+00 1.2326320950848679E+00 + 1.2087239370323011E+00 1.1836087643382063E+00 1.1573285253944414E+00 + 1.1299298281711114E+00 1.1014641359116941E+00 1.0719879645527413E+00 + 1.0415630811742111E+00 1.0102567026650142E+00 9.7814169364863757E-01 + 9.4529676255568018E-01 9.1180665455126986E-01 8.7776233982237850E-01 + 8.4326119550106415E-01 8.0840717924100747E-01 7.7330590512945863E-01 + 7.3716526251206016E-01 6.9930196620632268E-01 6.5993484084200138E-01 + 6.1931737794712893E-01 5.7770346362778924E-01 5.3535417487975367E-01 + 4.9253813959722209E-01 4.4953193107908368E-01 4.0662048210511748E-01 + 3.6409756361607526E-01 3.2226622887470896E-01 2.8143935475864251E-01 + 2.4194018810482182E-01 2.0410287378103678E-01 1.6827307877876149E-01 + 1.3480855090070551E-01 1.0407976599124785E-01 7.6470519119929151E-02 + 5.2378558148105638E-02 3.2216189565546699E-02 1.6410836112014732E-02 + 5.4056250667020751E-03 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 9.7777752452355031E+00 9.3530951268195004E+00 9.1000582599018358E+00 + 8.9543127596835124E+00 8.8516855281020348E+00 8.7281822538314202E+00 + 8.6614892514621538E+00 8.6084643010085937E+00 8.5610168399524316E+00 + 8.5194380297611936E+00 8.4822021824188525E+00 8.4484277683802951E+00 + 8.4175217465349981E+00 8.3890131601723166E+00 8.3625388527076066E+00 + 8.3378122480337105E+00 8.3146027755079732E+00 8.2927223239790528E+00 + 8.2720154312609182E+00 8.2523521516548310E+00 8.2336227720704986E+00 + 8.2157338262821185E+00 8.1986050434921314E+00 8.1821669803609840E+00 + 8.1663591607852215E+00 8.1511285982487607E+00 8.1364286101329917E+00 + 8.1222178574459729E+00 8.1084595604669101E+00 8.0951208530303784E+00 + 8.0821722470701989E+00 8.0695871855930701E+00 8.0573416671303768E+00 + 8.0454139283881698E+00 8.0337841746056018E+00 8.0224343492723111E+00 + 8.0113479365106919E+00 8.0005097907199456E+00 7.9899059890927768E+00 + 7.9795237034182458E+00 7.9693510882231360E+00 7.9593771828166027E+00 + 7.9495918252158644E+00 7.9399855762655136E+00 7.9305496525361683E+00 + 7.9212758668117278E+00 7.9121565751588596E+00 7.9031846297244623E+00 + 7.8943533365335758E+00 7.8856564176657091E+00 7.8770879772759228E+00 + 7.8686424710015510E+00 7.8603146783579341E+00 7.8520996777798739E+00 + 7.8439928240106083E+00 7.8359897275785038E+00 7.8280862361347738E+00 + 7.8202784174535616E+00 7.8125625439201389E+00 7.8049350783539042E+00 + 7.7973926610308730E+00 7.7899320977862638E+00 7.7825503490912382E+00 + 7.7752445200098990E+00 7.7680118509529681E+00 7.7608497091536748E+00 + 7.7537555807994458E+00 7.7467270637598560E+00 7.7397618608576950E+00 + 7.7328577736352049E+00 7.7260126965726794E+00 7.7192246117205485E+00 + 7.7124915837102410E+00 7.7058117551121450E+00 7.6991833421122529E+00 + 7.6926046304817000E+00 7.6860739718156337E+00 7.6795897800203292E+00 + 7.6731505280290611E+00 7.6667547447292037E+00 7.6604010120844617E+00 + 7.6540879624375808E+00 7.6478142759801786E+00 7.6415786783774005E+00 + 7.6353799385361789E+00 7.6292168665068658E+00 7.6230883115087229E+00 + 7.6169931600706473E+00 7.6109303342791161E+00 7.6048987901260583E+00 + 7.5988975159498322E+00 7.5929255309631092E+00 7.5869818838618812E+00 + 7.5810656515103068E+00 7.5751759376964110E+00 7.5693118719541772E+00 + 7.5634726084477100E+00 7.5576573249136780E+00 7.5518652216583027E+00 + 7.5460955206055882E+00 7.5403474643936850E+00 7.5346203155163884E+00 + 7.5289133555072034E+00 7.5232258841633053E+00 7.5175572188072062E+00 + 7.5119066935837902E+00 7.5062736587908114E+00 7.5006574802408439E+00 + 7.4950575386529676E+00 7.4894732290725097E+00 7.4839039603172752E+00 + 7.4783491544488188E+00 7.4728082462673999E+00 7.4672806828293323E+00 + 7.4617659229855313E+00 7.4562634369401550E+00 7.4507727058282489E+00 + 7.4452932213114353E+00 7.4398244851906901E+00 7.4343660090353563E+00 + 7.4289173138275553E+00 7.4234779296212148E+00 7.4180473952150185E+00 + 7.4126252578385357E+00 7.4072110728509104E+00 7.4018044034515373E+00 + 7.3964048204020640E+00 7.3910119017592413E+00 7.3856252326180938E+00 + 7.3802444048648930E+00 7.3748690169395230E+00 7.3694986736067634E+00 + 7.3641329857361004E+00 7.3587715700896617E+00 7.3534140491179274E+00 + 7.3480600507628440E+00 7.3427092082680261E+00 7.3373611599957353E+00 + 7.3320155492503174E+00 7.3266720241078334E+00 7.3213302372516109E+00 + 7.3159898458134789E+00 7.3106505112203992E+00 7.3053118990463108E+00 + 7.2999736788689473E+00 7.2946355241314125E+00 7.2892971120083407E+00 + 7.2839581232764319E+00 7.2786182421891867E+00 7.2732771563556664E+00 + 7.2679345566231497E+00 7.2625901369634720E+00 7.2572435943629383E+00 + 7.2518946287156787E+00 7.2465429427202697E+00 7.2411882417795397E+00 + 7.2358302339033846E+00 7.2304686296145473E+00 7.2251031418571676E+00 + 7.2197334859080611E+00 7.2143593792905847E+00 7.2089805416910222E+00 + 7.2035966948773629E+00 7.1982075626204267E+00 7.1928128706171801E+00 + 7.1874123464162700E+00 7.1820057193455771E+00 7.1765927204418052E+00 + 7.1711730823819764E+00 7.1657465394168200E+00 7.1603128273059147E+00 + 7.1548716832546004E+00 7.1494228458525315E+00 7.1439660550138742E+00 + 7.1385010519190351E+00 7.1330275789579032E+00 7.1275453796745563E+00 + 7.1220541987133581E+00 7.1165537817664140E+00 7.1110438755223448E+00 + 7.1055242276163346E+00 7.0999945865813716E+00 7.0944547018007427E+00 + 7.0889043234615876E+00 7.0833432025096537E+00 7.0777710906050499E+00 + 7.0721877400791087E+00 7.0665929038921957E+00 7.0609863355925437E+00 + 7.0553677892760094E+00 7.0497370195467504E+00 7.0440937814788125E+00 + 7.0384378305785269E+00 7.0327689227478238E+00 7.0270868142482703E+00 + 7.0213912616659737E+00 7.0156820218771871E+00 7.0099588520147069E+00 + 7.0042215094349460E+00 6.9984697516857501E+00 6.9927033364748556E+00 + 6.9869220216390451E+00 6.9811255651139117E+00 6.9753137249042716E+00 + 6.9694862590551772E+00 6.9636429256235211E+00 6.9577834826502212E+00 + 6.9519076881329545E+00 6.9460152999994573E+00 6.9401060760813325E+00 + 6.9341797740883964E+00 6.9282361515835280E+00 6.9222749659579952E+00 + 6.9162959744072872E+00 6.9102989339073799E+00 6.9042836011915174E+00 + 6.8982497327273782E+00 6.8921970846947174E+00 6.8861254129634242E+00 + 6.8800344730720049E+00 6.8739240202064611E+00 6.8677938091795792E+00 + 6.8616435944106096E+00 6.8554731299053184E+00 6.8492821692364450E+00 + 6.8430704655244812E+00 6.8368377714188586E+00 6.8305838390794618E+00 + 6.8243084201584914E+00 6.8180112657826841E+00 6.8116921265358519E+00 + 6.8053507524417585E+00 6.7989868929473189E+00 6.7926002969061239E+00 + 6.7861907125622620E+00 6.7797578875344708E+00 6.7733015688005871E+00 + 6.7668215026822747E+00 6.7603174348301058E+00 6.7537891102088503E+00 + 6.7472362730831552E+00 6.7406586670034043E+00 6.7340560347919567E+00 + 6.7274281185295823E+00 6.7207746595422497E+00 6.7140953983881158E+00 + 6.7073900748448390E+00 6.7006584278971353E+00 6.6939001957246242E+00 + 6.6871151156898909E+00 6.6803029243268863E+00 6.6734633573295028E+00 + 6.6665961495404948E+00 6.6597010349405812E+00 6.6527777466378648E+00 + 6.6458260168574519E+00 6.6388455769314056E+00 6.6318361572888502E+00 + 6.6247974874464166E+00 6.6177292959989193E+00 6.6106313106102403E+00 + 6.6035032580045243E+00 6.5963448639575999E+00 6.5891558532886609E+00 + 6.5819359498521761E+00 6.5746848765300960E+00 6.5674023552242691E+00 + 6.5600881068491503E+00 6.5527418513247202E+00 6.5453633075697182E+00 + 6.5379521934950553E+00 6.5305082259975755E+00 6.5230311209539797E+00 + 6.5155205932150961E+00 6.5079763566003415E+00 6.5003981238925022E+00 + 6.4927856068327152E+00 6.4851385161158008E+00 6.4774565613857700E+00 + 6.4697394512316633E+00 6.4619868931836422E+00 6.4541985937093518E+00 + 6.4463742582105628E+00 6.4385135910200875E+00 6.4306162953989787E+00 + 6.4226820735340082E+00 6.4147106265354461E+00 6.4067016544350937E+00 + 6.3986548561846597E+00 6.3905699296543688E+00 6.3824465716319256E+00 + 6.3742844778217354E+00 6.3660833428444521E+00 6.3578428602368255E+00 + 6.3495627224518589E+00 6.3412426208592727E+00 6.3328822457463172E+00 + 6.3244812863188518E+00 6.3160394307028058E+00 6.3075563659459224E+00 + 6.2990317780198710E+00 6.2904653518226814E+00 6.2818567711814977E+00 + 6.2732057188557322E+00 6.2645118765405066E+00 6.2557749248705017E+00 + 6.2469945434241190E+00 6.2381704107280571E+00 6.2293022042621962E+00 + 6.2203896004649248E+00 6.2114322747387769E+00 6.2024299014565107E+00 + 6.1933821539675309E+00 6.1842887046047510E+00 6.1751492246917978E+00 + 6.1659633845506825E+00 6.1567308535098340E+00 6.1474512999125812E+00 + 6.1381243911260270E+00 6.1287497935503952E+00 6.1193271726287550E+00 + 6.1098561928572241E+00 6.1003365177956272E+00 6.0907678100785612E+00 + 6.0811497314269660E+00 6.0714819426601299E+00 6.0617641037081977E+00 + 6.0519958736251089E+00 6.0421769106020848E+00 6.0323068719815431E+00 + 6.0223854142715734E+00 6.0124121931608627E+00 6.0023868635341824E+00 + 5.9923090794883516E+00 5.9821784943487764E+00 5.9719947606864761E+00 + 5.9617575303356940E+00 5.9514664544120253E+00 5.9411211833311324E+00 + 5.9307213668279966E+00 5.9202666539767792E+00 5.9097566932112304E+00 + 5.8991911323457096E+00 5.8885696185967928E+00 5.8778917986054955E+00 + 5.8671573184601113E+00 5.8563658237196474E+00 5.8455169594379495E+00 + 5.8346103701883960E+00 5.8236457000893020E+00 5.8126225928299382E+00 + 5.8015406916972561E+00 5.7903996396032458E+00 5.7791990791130141E+00 + 5.7679386524735445E+00 5.7566180016431607E+00 5.7452367683216927E+00 + 5.7337945939813899E+00 5.7222911198985376E+00 5.7107259871858389E+00 + 5.6990988368255344E+00 5.6874093097032858E+00 5.6756570466428231E+00 + 5.6638416884413934E+00 5.6519628759059710E+00 5.6400202498902905E+00 + 5.6280134513326896E+00 5.6159421212947462E+00 5.6038059010007863E+00 + 5.5916044318782028E+00 5.5793373555986419E+00 5.5670043141200365E+00 + 5.5546049497295424E+00 5.5421389050873060E+00 5.5296058232711909E+00 + 5.5170053478223533E+00 5.5043371227917648E+00 5.4916007927876436E+00 + 5.4787960030238434E+00 5.4659223993691599E+00 5.4529796283976317E+00 + 5.4399673374397723E+00 5.4268851746348270E+00 5.4137327889839746E+00 + 5.4005098304045651E+00 5.3872159497853662E+00 5.3738507990428133E+00 + 5.3604140311783341E+00 5.3469053003366724E+00 5.3333242618653234E+00 + 5.3196705723749815E+00 5.3059438898011271E+00 5.2921438734666566E+00 + 5.2782701841456481E+00 5.2643224841282201E+00 5.2503004372865352E+00 + 5.2362037091419165E+00 5.2220319669331428E+00 5.2077848796858657E+00 + 5.1934621182832403E+00 5.1790633555376893E+00 5.1645882662639044E+00 + 5.1500365273530084E+00 5.1354078178479776E+00 5.1207018190202422E+00 + 5.1059182144475583E+00 5.0910566900931089E+00 5.0761169343858628E+00 + 5.0610986383022087E+00 5.0460014954488637E+00 5.0308252021470699E+00 + 5.0155694575180831E+00 5.0002339635699942E+00 4.9848184252858347E+00 + 4.9693225507130538E+00 4.9537460510542841E+00 4.9380886407595135E+00 + 4.9223500376195624E+00 4.9065299628609713E+00 4.8906281412422317E+00 + 4.8746443011514362E+00 4.8585781747052925E+00 4.8424294978495626E+00 + 4.8261980104609057E+00 4.8098834564501587E+00 4.7934855838670041E+00 + 4.7770041450061340E+00 4.7604388965148106E+00 4.7437895995018913E+00 + 4.7270560196483462E+00 4.7102379273191817E+00 4.6933350976768944E+00 + 4.6763473107963707E+00 4.6592743517812822E+00 4.6421160108819750E+00 + 4.6248720836148607E+00 4.6075423708832854E+00 4.5901266790999404E+00 + 4.5726248203107529E+00 4.5550366123203236E+00 4.5373618788188441E+00 + 4.5196004495105822E+00 4.5017521602438508E+00 4.4838168531425371E+00 + 4.4657943767391375E+00 4.4476845861093466E+00 4.4294873430081552E+00 + 4.4112025160075081E+00 4.3928299806354669E+00 4.3743696195169379E+00 + 4.3558213225159017E+00 4.3371849868791923E+00 4.3184605173818094E+00 + 4.2996478264737394E+00 4.2807468344283190E+00 4.2617574694920988E+00 + 4.2426796680362466E+00 4.2235133747094471E+00 4.2042585425923038E+00 + 4.1849151333532468E+00 4.1654831174059366E+00 4.1459624740681393E+00 + 4.1263531917220932E+00 4.1066552679763291E+00 4.0868687098289582E+00 + 4.0669935338323953E+00 4.0470297662595316E+00 4.0269774432713143E+00 + 4.0068366110857534E+00 3.9866073261482993E+00 3.9662896553036333E+00 + 3.9458836759687923E+00 3.9253894763076618E+00 3.9048071554067869E+00 + 3.8841368234525167E+00 3.8633786019094054E+00 3.8425326236999151E+00 + 3.8215990333853593E+00 3.8005779873480772E+00 3.7794696539747976E+00 + 3.7582742138411986E+00 3.7369918598976049E+00 3.7156227976558367E+00 + 3.6941672453771153E+00 3.6726254342610702E+00 3.6509976086357665E+00 + 3.6292840261487562E+00 3.6074849579590600E+00 3.5856006889301302E+00 + 3.5636315178236924E+00 3.5415777574944620E+00 3.5194397350856623E+00 + 3.4972177922253573E+00 3.4749122852235095E+00 3.4525235852697400E+00 + 3.4300520786317632E+00 3.4074981668543955E+00 3.3848622669591633E+00 + 3.3621448116443982E+00 3.3393462494858239E+00 3.3164670451375211E+00 + 3.2935076795332732E+00 3.2704686500882056E+00 3.2473504709006757E+00 + 3.2241536729543401E+00 3.2008788043203502E+00 3.1775264303596162E+00 + 3.1540971339250703E+00 3.1305915155638493E+00 3.1070101937193586E+00 + 3.0833538049331204E+00 3.0596230040463643E+00 3.0358184644012356E+00 + 3.0119408780416101E+00 2.9879909559133915E+00 2.9639694280642273E+00 + 2.9398770438425790E+00 2.9157145720960083E+00 2.8914828013686722E+00 + 2.8671825400978670E+00 2.8428146168095934E+00 2.8183798803129845E+00 + 2.7938791998935653E+00 2.7693134655052130E+00 2.7446835879607301E+00 + 2.7199904991209087E+00 2.6952351520820303E+00 2.6704185213616416E+00 + 2.6455416030825476E+00 2.6206054151548583E+00 2.5956109974560357E+00 + 2.5705594120087825E+00 2.5454517431566837E+00 2.5202890977374466E+00 + 2.4950726052536698E+00 2.4698034180409696E+00 2.4444827114333578E+00 + 2.4191116839257556E+00 2.3936915573334709E+00 2.3682235769485565E+00 + 2.3427090116928757E+00 2.3171491542677600E+00 2.2915453213000885E+00 + 2.2658988534846904E+00 2.2402111157228783E+00 2.2144834972570031E+00 + 2.1887174118008459E+00 2.1629142976657190E+00 2.1370756178821115E+00 + 2.1112028603167299E+00 2.0852975377847383E+00 2.0593611881570961E+00 + 2.0333953744627742E+00 2.0074016849857172E+00 1.9813817333563501E+00 + 1.9553371586374895E+00 1.9292696254044714E+00 1.9031808238193140E+00 + 1.8770724696987473E+00 1.8509463045759160E+00 1.8248040957555884E+00 + 1.7986476363626767E+00 1.7724787453838873E+00 1.7462992677023006E+00 + 1.7201110741247052E+00 1.6939160614014865E+00 1.6677161522388773E+00 + 1.6415132953033631E+00 1.6153094652180668E+00 1.5891066625508903E+00 + 1.5629069137942377E+00 1.5367122713360766E+00 1.5105248134221876E+00 + 1.4843466441093511E+00 1.4581798932092960E+00 1.4320267162231730E+00 + 1.4058892942663825E+00 1.3797698339835105E+00 1.3536705674531848E+00 + 1.3275937520826413E+00 1.3015416704917651E+00 1.2755166303864274E+00 + 1.2495209644208827E+00 1.2235570300490237E+00 1.1976272093642684E+00 + 1.1717339089278871E+00 1.1458795595855380E+00 1.1200666162718058E+00 + 1.0942975578025256E+00 1.0685748866546874E+00 1.0429011287337016E+00 + 1.0172788331278209E+00 9.9171057184949163E-01 9.6619893956344960E-01 + 9.4074655330132695E-01 9.1535605216257665E-01 8.9003009700149716E-01 + 8.6477137010015981E-01 8.3958257482702803E-01 8.1446643528106499E-01 + 7.8942569592113498E-01 7.6446312118048443E-01 7.3958149506611981E-01 + 7.1478362074287505E-01 6.9007232010198172E-01 6.6545043331394216E-01 + 6.4092081836552595E-01 6.1648635058069590E-01 5.9214992212528950E-01 + 5.6791444149526249E-01 5.4378283298833385E-01 5.1975803615885230E-01 + 4.9584300525572023E-01 4.7204070864321013E-01 4.4835412820452364E-01 + 4.2478625872793713E-01 4.0134010727539826E-01 3.7801869253342951E-01 + 3.5482504414622063E-01 3.3176220203079027E-01 3.0883321567410849E-01 + 2.8604114341209064E-01 2.6338905169037391E-01 2.4088001430681516E-01 + 2.1851711163565471E-01 1.9630342983331084E-01 1.7424206002578593E-01 + 1.5233609747768925E-01 1.3058864074289647E-01 1.0900279079689260E-01 + 8.7581650150865831E-02 6.6328321947646984E-02 4.5245909039612953E-02 + 2.4337513048700691E-02 3.6062334087040501E-03 -1.6944833609945083E-02 + -3.7312595892683917E-02 -5.7493966490359219E-02 -7.7485864645519750E-02 + -9.7285216835155786E-02 -1.1688895782955731E-01 -1.3629403176694213E-01 + -1.5549739324348888E-01 -1.7449600841839394E-01 -1.9328685613356450E-01 + -2.1186692904755072E-01 -2.3023323478332275E-01 -2.4838279708949612E-01 + -2.6631265701462747E-01 -2.8401987409420443E-01 -3.0150152754998322E-01 + -3.1875471750133905E-01 -3.3577656618833179E-01 -3.5256421920621045E-01 + -3.6911484675111828E-01 -3.8542564487678621E-01 -4.0149383676204847E-01 + -4.1731667398903344E-01 -4.3289143783192707E-01 -4.4821544055622348E-01 + -4.6328602672841357E-01 -4.7810057453607346E-01 -4.9265649711833581E-01 + -5.0695124390672486E-01 -5.2098230197635265E-01 -5.3474719740745014E-01 + -5.4824349665720318E-01 -5.6146880794184029E-01 -5.7442078262887941E-01 + -5.8709711663941955E-01 -5.9949555186029901E-01 -6.1161387756590768E-01 + -6.2344993184935982E-01 -6.3500160306269438E-01 -6.4626683126567452E-01 + -6.5724360968269613E-01 -6.6792998616722221E-01 -6.7832406467309125E-01 + -6.8842400673194126E-01 -6.9822803293591618E-01 -7.0773442442471635E-01 + -7.1694152437598768E-01 -7.2584773949793013E-01 -7.3445154152294578E-01 + -7.4275146870104780E-01 -7.5074612729170387E-01 -7.5843419305270166E-01 + -7.6581441272458173E-01 -7.7288560550914043E-01 -7.7964666454045406E-01 + -7.8609655834688275E-01 -7.9223433230245988E-01 -7.9805911006610619E-01 + -8.0357009500707155E-01 -8.0876657161505872E-01 -8.1364790689346544E-01 + -8.1821355173421795E-01 -8.2246304227268319E-01 -8.2639600122118007E-01 + -8.3001213917962036E-01 -8.3331125592184341E-01 -8.3629324165621333E-01 + -8.3895807825908808E-01 -8.4130584047975920E-01 -8.4333669711549764E-01 + -8.4505091215532113E-01 -8.4644884589114400E-01 -8.4753095599494244E-01 + -8.4829779856058973E-01 -8.4875002910902264E-01 -8.4888840355538586E-01 + -8.4871377913683244E-01 -8.4822711529963513E-01 -8.4742947454429685E-01 + -8.4632202322731875E-01 -8.4490603231834283E-01 -8.4318287811134218E-01 + -8.4115404288858764E-01 -8.3882111553610028E-01 -8.3618579210933874E-01 + -8.3324987634786640E-01 -8.3001528013777648E-01 -8.2648402392065534E-01 + -8.2265823704790320E-01 -8.1854015807923575E-01 -8.1413213502422055E-01 + -8.0943662552571727E-01 -8.0445619698412729E-01 -7.9919352662136689E-01 + -7.9365140148351043E-01 -7.8783271838108015E-01 -7.8174048376596905E-01 + -7.7537781354403512E-01 -7.6874793282240506E-01 -7.6185417559057744E-01 + -7.5469998433442520E-01 -7.4728890958224581E-01 -7.3962460938202157E-01 + -7.3171084870909775E-01 -7.2355149880350389E-01 -7.1515053643619808E-01 + -7.0651204310352944E-01 -6.9764020414926553E-01 -6.8853930781354922E-01 + -6.7921374420821956E-01 -6.6966800421793682E-01 -6.5990667832662286E-01 + -6.4993445536874450E-01 -6.3975612120504177E-01 -6.2937655732232245E-01 + -6.1880073935700919E-01 -6.0803373554217166E-01 -5.9708070507782263E-01 + -5.8594689642432107E-01 -5.7463764551877250E-01 -5.6315837391437995E-01 + -5.5151458684275401E-01 -5.3971187119926056E-01 -5.2775589345154317E-01 + -5.1565239747142710E-01 -5.0340720229047498E-01 -4.9102619977955031E-01 + -4.7851535225280084E-01 -4.6588068999656512E-01 -4.5312830872377069E-01 + -4.4026436695448962E-01 -4.2729508332338201E-01 -4.1422673381485758E-01 + -4.0106564892686003E-01 -3.8781821076428119E-01 -3.7449085006308747E-01 + -3.6109004314634191E-01 -3.4762230881339506E-01 -3.3409420516360488E-01 + -3.2051232635604998E-01 -3.0688329930678199E-01 -2.9321378032526324E-01 + -2.7951045169172062E-01 -2.6578001817724478E-01 -2.5202920350854602E-01 + -2.3826474677936924E-01 -2.2449339881065061E-01 -2.1072191846158991E-01 + -1.9695706889388465E-01 -1.8320561379145764E-01 -1.6947431353808293E-01 + -1.5576992135539727E-01 -1.4209917940385805E-01 -1.2846881484928993E-01 + -1.1488553589774440E-01 -1.0135602780148606E-01 -8.7886948839014364E-02 + -7.4484926272135987E-02 -6.1156552283224828E-02 -4.7908379895940469E-02 + -3.4746918882836639E-02 -2.1678631663467691E-02 -8.7099291968089961E-03 + 4.1528331279605613E-03 1.6903359598001884E-02 2.9535418276082647E-02 + 4.2042845087647454E-02 5.4419547890430957E-02 6.6659510520999249E-02 + 7.8756796812245025E-02 9.0705554575511022E-02 1.0250001954068863E-01 + 1.1413451924735898E-01 1.2560347687982706E-01 1.3690141503877645E-01 + 1.4802295944226462E-01 1.5896284254891427E-01 1.6971590709645251E-01 + 1.8027710954923448E-01 1.9064152344906835E-01 2.0080434266454489E-01 + 2.1076088453517203E-01 2.2050659290789976E-01 2.3003704106509179E-01 + 2.3934793454460257E-01 2.4843511385433803E-01 2.5729455708542320E-01 + 2.6592238242983091E-01 2.7431485060993094E-01 2.8246836722881846E-01 + 2.9037948505133931E-01 2.9804490622634033E-01 3.0546148446069860E-01 + 3.1262622715502747E-01 3.1953629750951407E-01 3.2618901660609723E-01 + 3.3258186547017038E-01 3.3871248711131380E-01 3.4457868853842016E-01 + 3.5017844274026849E-01 3.5550989061847799E-01 3.6057134285615633E-01 + 3.6536128170283350E-01 3.6987836265463786E-01 3.7412141600831150E-01 + 3.7808944826855312E-01 3.8178164339022058E-01 3.8519736383984604E-01 + 3.8833615146444966E-01 3.9119772815940701E-01 3.9378199633085265E-01 + 3.9608903915148574E-01 3.9811912061152738E-01 3.9987268536882942E-01 + 4.0135035840374950E-01 4.0255294448537765E-01 4.0348142745614168E-01 + 4.0413696934179227E-01 4.0452090929342849E-01 4.0463476236762108E-01 + 4.0448021814996871E-01 4.0405913922664527E-01 4.0337355950770271E-01 + 4.0242568240519644E-01 4.0121787886855292E-01 3.9975268527909963E-01 + 3.9803280120527956E-01 3.9606108701983112E-01 3.9384056138007739E-01 + 3.9137439857247447E-01 3.8866592572266573E-01 3.8571861987250655E-01 + 3.8253610492579110E-01 3.7912214846476977E-01 3.7548065843992096E-01 + 3.7161567973587484E-01 3.6753139061679480E-01 3.6323209905496079E-01 + 3.5872223894669669E-01 3.5400636622017828E-01 3.4908915484000203E-01 + 3.4397539271370692E-01 3.3866997750572142E-01 3.3317791236442035E-01 + 3.2750430156817401E-01 3.2165434609640170E-01 3.1563333913174552E-01 + 3.0944666149953631E-01 3.0309977705075475E-01 2.9659822799467578E-01 + 2.8994763018735470E-01 2.8315366838204081E-01 2.7622209144753362E-01 + 2.6915870756037868E-01 2.6196937937668818E-01 2.5466001918922987E-01 + 2.4723658407528654E-01 2.3970507104062713E-01 2.3207151216476823E-01 + 2.2434196975253262E-01 2.1652253149673972E-01 2.0861930565668174E-01 + 2.0063841625686182E-01 1.9258599831028911E-01 1.8446819307045045E-01 + 1.7629114331589743E-01 1.6806098867121558E-01 1.5978386096797478E-01 + 1.5146587964909031E-01 1.4311314721987203E-01 1.3473174474888217E-01 + 1.2632772742158074E-01 1.1790712014960128E-01 1.0947591323837490E-01 + 1.0104005811570256E-01 9.2605463123771617E-02 8.4177989377015108E-02 + 7.5763446688132841E-02 6.7367589564516647E-02 5.8996113277265727E-02 + 5.0654650004924980E-02 4.2348765054045293E-02 3.4083953158633738E-02 + 2.5865634860546480E-02 1.7699152972866946E-02 9.5897691283119875E-03 + 1.5426604147125969E-03 -6.4370839003745767E-03 -1.4344465553857936E-02 + -2.2174580378025908E-02 -2.9922621296101119E-02 -3.7583881220347115E-02 + -4.5153755850649742E-02 -5.2627746371515426E-02 -6.0001462045467385E-02 + -6.7270622700877247E-02 -7.4431061112351482E-02 -8.1478725271898061E-02 + -8.8409680549238451E-02 -9.5220111739796026E-02 -1.0190632499909585E-01 + -1.0846474966254326E-01 -1.1489193994982043E-01 -1.2118457655342697E-01 + -1.2733946811122845E-01 -1.3335355256319070E-01 -1.3922389839284807E-01 + -1.4494770575439464E-01 -1.5052230748657389E-01 -1.5594517001488895E-01 + -1.6121389414381965E-01 -1.6632621574089990E-01 -1.7128000631454360E-01 + -1.7607327348735727E-01 -1.8070416136641709E-01 -1.8517095081146695E-01 + -1.8947205960127222E-01 -1.9360604249737320E-01 -1.9757159120320347E-01 + -2.0136753421501324E-01 -2.0499283655921025E-01 -2.0844659940871083E-01 + -2.1172805956870078E-01 -2.1483658881994877E-01 -2.1777169310566244E-01 + -2.2053301154598762E-01 -2.2312031526284182E-01 -2.2553350599715705E-01 + -2.2777261450098674E-01 -2.2983779868866777E-01 -2.3172934153453187E-01 + -2.3344764870972223E-01 -2.3499324595762436E-01 -2.3636677621613897E-01 + -2.3756899650533619E-01 -2.3860077461044943E-01 -2.3946308560202001E-01 + -2.4015700824648903E-01 -2.4068372137058966E-01 -2.4104450025047319E-01 + -2.4124071310061132E-01 -2.4127381773721740E-01 -2.4114535848572727E-01 + -2.4085696339156293E-01 -2.4041034177830559E-01 -2.3980728217840785E-01 + -2.3904965063999778E-01 -2.3813938939086632E-01 -2.3707851581935580E-01 + -2.3586912171336952E-01 -2.3451337268478784E-01 -2.3301350769827051E-01 + -2.3137183862123378E-01 -2.2959074971558335E-01 -2.2767269700066228E-01 + -2.2562020742965741E-01 -2.2343587783680161E-01 -2.2112237362855452E-01 + -2.1868242720716219E-01 -2.1611883612844829E-01 -2.1343446100665242E-01 + -2.1063222318730568E-01 -2.0771510221443723E-01 -2.0468613312116904E-01 + -2.0154840357333539E-01 -1.9830505089467090E-01 -1.9495925899985744E-01 + -1.9151425525875249E-01 -1.8797330731180775E-01 -1.8433971985338210E-01 + -1.8061683139649734E-01 -1.7680801102979396E-01 -1.7291665517504590E-01 + -1.6894618435162256E-01 -1.6490003995276953E-01 -1.6078168103742502E-01 + -1.5659458114050939E-01 -1.5234222510412951E-01 -1.4802810593186955E-01 + -1.4365572166827487E-01 -1.3922857230568558E-01 -1.3475015672071450E-01 + -1.3022396964286792E-01 -1.2565349865800832E-01 -1.2104222124957256E-01 + -1.1639360188064271E-01 -1.1171108912010765E-01 -1.0699811281626317E-01 + -1.0225808132125216E-01 -9.7494378769743900E-02 -9.2710362415220571E-02 + -8.7909360027138228E-02 -8.3094667352110685E-02 -7.8269545642099675E-02 + -7.3437219252399294E-02 -6.8600873311997254E-02 -6.3763651468656202E-02 + -5.8928653710823446E-02 -5.4098934268227587E-02 -4.9277499592770592E-02 + -4.4467306421080752E-02 -3.9671259919852223E-02 -3.4892211914865127E-02 + -3.0132959204366917E-02 -2.5396241957288485E-02 -2.0684742196584161E-02 + -1.6001082367813755E-02 -1.1347823992931704E-02 -6.7274664091157999E-03 + -2.1424455923524247E-03 2.4048669346020970E-03 6.9121651103420285E-03 + 1.1377209259534407E-02 1.5797826934806643E-02 2.0171913676392841E-02 + 2.4497433690146179E-02 2.8772420444528563E-02 3.2994977187179600E-02 + 3.7163277381648145E-02 4.1275565064858744E-02 4.5330155125842105E-02 + 4.9325433506238095E-02 5.3259857323077628E-02 5.7131954914287839E-02 + 6.0940325807401233E-02 6.4683640611930951E-02 6.8360640835881933E-02 + 7.1970138626938643E-02 7.5511016438900500E-02 7.8982226624039142E-02 + 8.2382790952161083E-02 8.5711800057298435E-02 8.8968412813131517E-02 + 9.2151855638460567E-02 9.5261421734165283E-02 9.8296470253748602E-02 + 1.0125642540925503E-01 1.0414077551498210E-01 1.0694907197219754E-01 + 1.0968092819730017E-01 1.1233601849748691E-01 1.1491407689766514E-01 + 1.1741489592250422E-01 1.1983832533862114E-01 1.2218427086155380E-01 + 1.2445269283281114E-01 1.2664360487244611E-01 1.2875707251283114E-01 + 1.3079321181947651E-01 1.3275218800482061E-01 1.3463421404095749E-01 + 1.3643954927721980E-01 1.3816849806840342E-01 1.3982140841922228E-01 + 1.4139867065027273E-01 1.4290071609040769E-01 1.4432801579993756E-01 + 1.4568107932848648E-01 1.4696045351066403E-01 1.4816672130190897E-01 + 1.4930050065597220E-01 1.5036244344448821E-01 1.5135323441794044E-01 + 1.5227359020606623E-01 1.5312425835435717E-01 1.5390601639177603E-01 + 1.5461967092318601E-01 1.5526605673822227E-01 1.5584603592651664E-01 + 1.5636049698731794E-01 1.5681035391969564E-01 1.5719654527777888E-01 + 1.5752003317394522E-01 1.5778180221166685E-01 1.5798285832903267E-01 + 1.5812422753390978E-01 1.5820695451253808E-01 1.5823210109520502E-01 + 1.5820074456570685E-01 1.5811397580572337E-01 1.5797289727102673E-01 + 1.5777862080364397E-01 1.5753226529251124E-01 1.5723495420451997E-01 + 1.5688781301774354E-01 1.5649196659844752E-01 1.5604853657251436E-01 + 1.5555863874941350E-01 1.5502338066195967E-01 1.5444385928717574E-01 + 1.5382115901201648E-01 1.5315634990223845E-01 1.5245048632338229E-01 + 1.5170460595006022E-01 1.5091972918428345E-01 1.5009685898653119E-01 + 1.4923698110586150E-01 1.4834106467897060E-01 1.4741006315389521E-01 + 1.4644491548300914E-01 1.4544654752275538E-01 1.4441587357437086E-01 + 1.4335379800061757E-01 1.4226121685771667E-01 1.4113901948858681E-01 + 1.3998809003227888E-01 1.3880930881429487E-01 1.3760355359246265E-01 + 1.3637170064258314E-01 1.3511462567661148E-01 1.3383320459341289E-01 + 1.3252831406795290E-01 1.3120083198912674E-01 1.2985163775941103E-01 + 1.2848161247126083E-01 1.2709163897588169E-01 1.2568260185990152E-01 + 1.2425538734471839E-01 1.2281088312212897E-01 1.2134997813837452E-01 + 1.1987356233711313E-01 1.1838252637015996E-01 1.1687776128315978E-01 + 1.1536015818177960E-01 1.1383060788252013E-01 1.1229000055089158E-01 + 1.1073922532849444E-01 1.0917916994948317E-01 1.0761072034597778E-01 + 1.0603476024123791E-01 1.0445217072878966E-01 1.0286382983524044E-01 + 1.0127061206419230E-01 9.9673387918481501E-02 9.8073023397937817E-02 + 9.6470379469956083E-02 9.4866311510398912E-02 9.3261668712722429E-02 + 9.1657293463686854E-02 9.0054020684616612E-02 8.8452677137859884E-02 + 8.6854080698862704E-02 8.5259039595106653E-02 8.3668351614012634E-02 + 8.2082803282790121E-02 8.0503169024065430E-02 7.8930210291926470E-02 + 7.7364674693766650E-02 7.5807295103952579E-02 7.4258788775860021E-02 + 7.2719856459235288E-02 7.1191181530142617E-02 6.9673429140532137E-02 + 6.8167245395058612E-02 6.6673256562023636E-02 6.5192068324920735E-02 + 6.3724265081376089E-02 6.2270409294562248E-02 6.0831040902336486E-02 + 5.9406676788876678E-02 5.7997810320665914E-02 5.6604910952827311E-02 + 5.5228423903517107E-02 5.3868769901008071E-02 5.2526345001706463E-02 + 5.1201520479730388E-02 4.9894642786697314E-02 4.8606033580114803E-02 + 4.7335989818183599E-02 4.6084783918349234E-02 4.4852663976531801E-02 + 4.3639854043635205E-02 4.2446554455667154E-02 4.1272942213604037E-02 + 4.0119171408994882E-02 3.8985373691213583E-02 3.7871658772238158E-02 + 3.6778114964848570E-02 3.5704809750186958E-02 3.4651790370715210E-02 + 3.3619084444720261E-02 3.2606700598663253E-02 3.1614629113832303E-02 + 3.0642842583937242E-02 2.9691296580480791E-02 2.8759930322939348E-02 + 2.7848667350996743E-02 2.6957416196285965E-02 2.6086071051304074E-02 + 2.5234512433379073E-02 2.4402607841774882E-02 2.3590212406223401E-02 + 2.2797169525372488E-02 2.2023311493827788E-02 2.1268460116650505E-02 + 2.0532427310348069E-02 1.9815015689558731E-02 1.9116019138787826E-02 + 1.8435223368699152E-02 1.7772406456598784E-02 1.7127339370875620E-02 + 1.6499786479275035E-02 1.5889506040987145E-02 1.5296250682624309E-02 + 1.4719767858244099E-02 1.4159800293648580E-02 1.3616086415251635E-02 + 1.3088360763860295E-02 1.2576354393759906E-02 1.2079795257527020E-02 + 1.1598408577021407E-02 1.1131917201026964E-02 1.0680041950021769E-02 + 1.0242501948562906E-02 9.8190149457686553E-03 9.4092976243734232E-03 + 9.0130658988181213E-03 8.6300352028207249E-03 8.2599207668512878E-03 + 7.9024378859113096E-03 7.5573021779898391E-03 7.2242298335408704E-03 + 6.9029378562953294E-03 6.5931442956905974E-03 6.2945684711690642E-03 + 6.0069311885656684E-03 5.7299549487746177E-03 5.4633641488554367E-03 + 5.2068852757109719E-03 4.9602470924437021E-03 4.7231808174723975E-03 + 4.4954202964693430E-03 4.2767021671590169E-03 4.0667660170016166E-03 + 3.8653545337711159E-03 3.6722136490251927E-03 3.4870926744556370E-03 + 3.3097444311012900E-03 3.1399253714013732E-03 2.9773956940657110E-03 + 2.8219194517389986E-03 2.6732646514389283E-03 2.5312033477530756E-03 + 2.3955117287857274E-03 2.2659701948541978E-03 2.1423634299437082E-03 + 2.0244804659405643E-03 1.9121147396753179E-03 1.8050641428199914E-03 + 1.7031310646967389E-03 1.6061224280689694E-03 1.5138497179997324E-03 + 1.4261290038762497E-03 1.3427809547134234E-03 1.2636308478627828E-03 + 1.1885085712669064E-03 1.1172486194122035E-03 1.0496900831454732E-03 + 9.8567663353148162E-04 9.2505649993984175E-04 8.6768244255990403E-04 + 8.1341171955186860E-04 7.6210604905092437E-04 7.1363156624906841E-04 + 6.6785877578597779E-04 6.2466249968625538E-04 5.8392182108527989E-04 + 5.4552002398984654E-04 5.0934452932284273E-04 4.7528682750331576E-04 + 4.4324240781442898E-04 4.1311068481216765E-04 3.8479492202703192E-04 + 3.5820215320958967E-04 3.3324310136856273E-04 3.0983209584713574E-04 + 2.8788698767953516E-04 2.6732906346552576E-04 2.4808295799549549E-04 + 2.3007656585320439E-04 2.1324095221711954E-04 1.9751026307462559E-04 + 1.8282163505630792E-04 1.6911510508998159E-04 1.5633352006629416E-04 + 1.4442244669952986E-04 1.3333008175880367E-04 1.2300716283615595E-04 + 1.1340687980920011E-04 1.0448478714698922E-04 9.6198717198684220E-05 + 8.8508694595457554E-05 8.1376851886924692E-05 7.4767346524250250E-05 + 6.8646279293007985E-05 6.2981614289887646E-05 5.7743100528473932E-05 + 5.2902195250618620E-05 4.8431989011387128E-05 4.4307132597236543E-05 + 4.0503765828978522E-05 3.6999448293224343E-05 3.3773092038422656E-05 + 3.0804896264294320E-05 2.8076284026456773E-05 2.5569840971333653E-05 + 2.3269256110059725E-05 2.1159264634038978E-05 1.9225592769091167E-05 + 1.7454904659736929E-05 1.5834751270127598E-05 1.4353521283421661E-05 + 1.3000393977043957E-05 1.1765294047237902E-05 1.0638848352625476E-05 + 9.6123445431250218E-06 8.6776915375331040E-06 7.8273818103469444E-06 + 7.0544554459819975E-06 6.3524659164122460E-06 5.7154475364218351E-06 + 5.1378845490930848E-06 4.6146817928564436E-06 4.1411369003816922E-06 + 3.7129139787832613E-06 3.3260187200333483E-06 2.9767748901128356E-06 + 2.6618021452671171E-06 2.3779951237602059E-06 2.1225037617221083E-06 + 1.8927147820482961E-06 1.6862343058239046E-06 1.5008715363957621E-06 + 1.3346234669901827E-06 1.1856605636618945E-06 1.0523133763469819E-06 + 9.3306003186955796E-07 8.2651456390657877E-07 7.3141603613722774E-07 + 6.4661841608275509E-07 5.7108115846949752E-07 5.0386045831324716E-07 + 4.4410113531831228E-07 3.9102911260143382E-07 3.4394445418166798E-07 + 3.0221492711524025E-07 2.6527005559267910E-07 2.3259563574827536E-07 + 2.0372868135344241E-07 1.7825277197092914E-07 1.5579377653148028E-07 + 1.3601592665434355E-07 1.1861821536443492E-07 1.0333109815876421E-07 + 8.9913474640140019E-08 7.8149930164899731E-08 6.7848218141415390E-08 + 5.8836964765843828E-08 5.0963579089718756E-08 4.4092352379563592E-08 + 3.8102731751093970E-08 3.2887754039357363E-08 2.8352626801212097E-08 + 2.4413444237952311E-08 2.0996026673944329E-08 1.8034873032344726E-08 + 1.5472216511974315E-08 1.3257174391030482E-08 1.1344983564480935E-08 + 9.6963140637309166E-09 8.2766534106603404E-09 7.0557552246035900E-09 + 6.0071460315971106E-09 5.1076847215986078E-09 4.3371695627726295E-09 + 3.6779881137613909E-09 3.1148057765510346E-09 2.6342891055418881E-09 + 2.2248603341777842E-09 1.8764799004125970E-09 1.5804540477995729E-09 + 1.3292648514730086E-09 1.1164202691154574E-09 9.3632204741735887E-10 + 7.8414952614432815E-10 6.5575757485918043E-10 5.4758707460181848E-10 + 4.5658652794452377E-10 3.8014346779653523E-10 3.1602461265985765E-10 + 2.6232407072363364E-10 2.1741617916694150E-10 1.7991969069157805E-10 + 1.4865882590852136E-10 1.2263784347918255E-10 1.0101231097943673E-10 + 8.3068094110726657E-11 6.8202204743127004E-11 5.5906313005884933E-11 + 4.5752575766247461E-11 3.7381475894831937E-11 3.0491404135919441E-11 + 2.4829748641763057E-11 2.0185286705115896E-11 1.6381699313205545E-11 + 1.3272052196444954E-11 1.0734107373135310E-11 8.6663470858638877E-12 + 6.9846077484719789E-12 5.6192353121599002E-12 4.5126855306622008E-12 + 3.6175031517012036E-12 2.8946232600897204E-12 2.3119460041790483E-12 + 1.8431428928959263E-12 1.4666588816187577E-12 1.1648796843314687E-12 + 9.2343825729754382E-13 7.3063828520618689E-13 5.7697584356057691E-13 + 4.5474328110837623E-13 3.5770182526624525E-13 2.8081151631521569E-13 + 2.2000887060388057E-13 1.7202420116349295E-13 1.3423182283660639E-13 + 1.0452747040477073E-13 8.1228190287775747E-14 6.2990753531596604E-14 + 4.8745301127095609E-14 3.7641490484062786E-14 2.9004879904187909E-14 + 2.2301679742232900E-14 1.7110326294876216E-14 1.3098607322424888E-14 + 1.0005295051694634E-14 7.6254308339537854E-15 5.7985615578736016E-15 + 4.3993567238502443E-15 3.3301412454425244E-15 2.5149663354968950E-15 + 1.8949124448329447E-15 1.4243768292841883E-15 1.0681461737809996E-15 + 7.9909368048726041E-16 5.9637170129547483E-16 4.4399666997557186E-16 + 3.2974385112006968E-16 2.4428617062121438E-16 1.8052486843276329E-16 + 1.3307053071467602E-16 9.7841718349106683E-17 7.1755324724847656E-17 + 5.2488303498623421E-17 3.8294784491315683E-17 2.7866066336257068E-17 + 2.0223705724170339E-17 1.4638095509886973E-17 1.0566641601626161E-17 + 7.6068896920501554E-18 5.4611088278018137E-18 3.9097498628249236E-18 + 2.7912954736714617E-18 1.9871972217612116E-18 1.4107302846902860E-18 + + + -5.8061803390775046E-01 -5.8061803390637179E-01 -5.8061803390218425E-01 + -5.8061803389511690E-01 -5.8061803388509636E-01 -5.8061803387204747E-01 + -5.8061803385589372E-01 -5.8061803383655708E-01 -5.8061803381395771E-01 + -5.8061803378801469E-01 -5.8061803375864485E-01 -5.8061803372576393E-01 + -5.8061803368928577E-01 -5.8061803364912257E-01 -5.8061803360518449E-01 + -5.8061803355738051E-01 -5.8061803350561725E-01 -5.8061803344979979E-01 + -5.8061803338983142E-01 -5.8061803332561324E-01 -5.8061803325704464E-01 + -5.8061803318402294E-01 -5.8061803310644355E-01 -5.8061803302419979E-01 + -5.8061803293718295E-01 -5.8061803284528202E-01 -5.8061803274838397E-01 + -5.8061803264637379E-01 -5.8061803253913380E-01 -5.8061803242654431E-01 + -5.8061803230848341E-01 -5.8061803218482655E-01 -5.8061803205544704E-01 + -5.8061803192021555E-01 -5.8061803177900040E-01 -5.8061803163166725E-01 + -5.8061803147807944E-01 -5.8061803131809731E-01 -5.8061803115157895E-01 + -5.8061803097837927E-01 -5.8061803079835073E-01 -5.8061803061134287E-01 + -5.8061803041720239E-01 -5.8061803021577318E-01 -5.8061803000689582E-01 + -5.8061802979040822E-01 -5.8061802956614494E-01 -5.8061802933393747E-01 + -5.8061802909361448E-01 -5.8061802884500080E-01 -5.8061802858791811E-01 + -5.8061802832218490E-01 -5.8061802804761631E-01 -5.8061802776402371E-01 + -5.8061802747121494E-01 -5.8061802716899447E-01 -5.8061802685716279E-01 + -5.8061802653551675E-01 -5.8061802620384961E-01 -5.8061802586195033E-01 + -5.8061802550960417E-01 -5.8061802514659233E-01 -5.8061802477269187E-01 + -5.8061802438767574E-01 -5.8061802399131268E-01 -5.8061802358336689E-01 + -5.8061802316359834E-01 -5.8061802273176244E-01 -5.8061802228761028E-01 + -5.8061802183088795E-01 -5.8061802136133700E-01 -5.8061802087869430E-01 + -5.8061802038269150E-01 -5.8061801987305550E-01 -5.8061801934950819E-01 + -5.8061801881176611E-01 -5.8061801825954074E-01 -5.8061801769253796E-01 + -5.8061801711045835E-01 -5.8061801651299716E-01 -5.8061801589984363E-01 + -5.8061801527068135E-01 -5.8061801462518836E-01 -5.8061801396303647E-01 + -5.8061801328389162E-01 -5.8061801258741319E-01 -5.8061801187325490E-01 + -5.8061801114106382E-01 -5.8061801039048022E-01 -5.8061800962113830E-01 + -5.8061800883266512E-01 -5.8061800802468122E-01 -5.8061800719680012E-01 + -5.8061800634862781E-01 -5.8061800547976372E-01 -5.8061800458979940E-01 + -5.8061800367831951E-01 -5.8061800274490039E-01 -5.8061800178911116E-01 + -5.8061800081051307E-01 -5.8061799980865891E-01 -5.8061799878309373E-01 + -5.8061799773335443E-01 -5.8061799665896885E-01 -5.8061799555945681E-01 + -5.8061799443432882E-01 -5.8061799328308716E-01 -5.8061799210522480E-01 + -5.8061799090022503E-01 -5.8061798966756240E-01 -5.8061798840670154E-01 + -5.8061798711709733E-01 -5.8061798579819524E-01 -5.8061798444943014E-01 + -5.8061798307022672E-01 -5.8061798165999967E-01 -5.8061798021815259E-01 + -5.8061797874407850E-01 -5.8061797723715936E-01 -5.8061797569676621E-01 + -5.8061797412225846E-01 -5.8061797251298408E-01 -5.8061797086827893E-01 + -5.8061796918746744E-01 -5.8061796746986150E-01 -5.8061796571476054E-01 + -5.8061796392145149E-01 -5.8061796208920835E-01 -5.8061796021729239E-01 + -5.8061795830495100E-01 -5.8061795635141844E-01 -5.8061795435591501E-01 + -5.8061795231764723E-01 -5.8061795023580687E-01 -5.8061794810957179E-01 + -5.8061794593810445E-01 -5.8061794372055286E-01 -5.8061794145604939E-01 + -5.8061793914371085E-01 -5.8061793678263840E-01 -5.8061793437191711E-01 + -5.8061793191061506E-01 -5.8061792939778467E-01 -5.8061792683246038E-01 + -5.8061792421365999E-01 -5.8061792154038339E-01 -5.8061791881161273E-01 + -5.8061791602631208E-01 -5.8061791318342670E-01 -5.8061791028188314E-01 + -5.8061790732058893E-01 -5.8061790429843174E-01 -5.8061790121427981E-01 + -5.8061789806698061E-01 -5.8061789485536186E-01 -5.8061789157822963E-01 + -5.8061788823436900E-01 -5.8061788482254328E-01 -5.8061788134149406E-01 + -5.8061787778994023E-01 -5.8061787416657795E-01 -5.8061787047008007E-01 + -5.8061786669909599E-01 -5.8061786285225103E-01 -5.8061785892814599E-01 + -5.8061785492535689E-01 -5.8061785084243445E-01 -5.8061784667790328E-01 + -5.8061784243026260E-01 -5.8061783809798395E-01 -5.8061783367951258E-01 + -5.8061782917326576E-01 -5.8061782457763256E-01 -5.8061781989097383E-01 + -5.8061781511162114E-01 -5.8061781023787640E-01 -5.8061780526801166E-01 + -5.8061780020026810E-01 -5.8061779503285593E-01 -5.8061778976395351E-01 + -5.8061778439170719E-01 -5.8061777891423028E-01 -5.8061777332960274E-01 + -5.8061776763587047E-01 -5.8061776183104519E-01 -5.8061775591310316E-01 + -5.8061774987998460E-01 -5.8061774372959385E-01 -5.8061773745979806E-01 + -5.8061773106842629E-01 -5.8061772455327021E-01 -5.8061771791208117E-01 + -5.8061771114257199E-01 -5.8061770424241455E-01 -5.8061769720923961E-01 + -5.8061769004063657E-01 -5.8061768273415171E-01 -5.8061767528728847E-01 + -5.8061766769750622E-01 -5.8061765996221959E-01 -5.8061765207879712E-01 + -5.8061764404456173E-01 -5.8061763585678883E-01 -5.8061762751270574E-01 + -5.8061761900949116E-01 -5.8061761034427406E-01 -5.8061760151413289E-01 + -5.8061759251609457E-01 -5.8061758334713387E-01 -5.8061757400417224E-01 + -5.8061756448407698E-01 -5.8061755478366051E-01 -5.8061754489967887E-01 + -5.8061753482883127E-01 -5.8061752456775906E-01 -5.8061751411304419E-01 + -5.8061750346120899E-01 -5.8061749260871454E-01 -5.8061748155195947E-01 + -5.8061747028727961E-01 -5.8061745881094640E-01 -5.8061744711916574E-01 + -5.8061743520807674E-01 -5.8061742307375119E-01 -5.8061741071219175E-01 + -5.8061739811933089E-01 -5.8061738529102991E-01 -5.8061737222307741E-01 + -5.8061735891118826E-01 -5.8061734535100240E-01 -5.8061733153808281E-01 + -5.8061731746791534E-01 -5.8061730313590643E-01 -5.8061728853738204E-01 + -5.8061727366758631E-01 -5.8061725852168034E-01 -5.8061724309473994E-01 + -5.8061722738175559E-01 -5.8061721137762912E-01 -5.8061719507717391E-01 + -5.8061717847511218E-01 -5.8061716156607390E-01 -5.8061714434459522E-01 + -5.8061712680511646E-01 -5.8061710894198093E-01 -5.8061709074943324E-01 + -5.8061707222161696E-01 -5.8061705335257341E-01 -5.8061703413623977E-01 + -5.8061701456644765E-01 -5.8061699463692029E-01 -5.8061697434127146E-01 + -5.8061695367300370E-01 -5.8061693262550573E-01 -5.8061691119205083E-01 + -5.8061688936579514E-01 -5.8061686713977478E-01 -5.8061684450690476E-01 + -5.8061682145997628E-01 -5.8061679799165467E-01 -5.8061677409447732E-01 + -5.8061674976085154E-01 -5.8061672498305184E-01 -5.8061669975321839E-01 + -5.8061667406335404E-01 -5.8061664790532197E-01 -5.8061662127084401E-01 + -5.8061659415149725E-01 -5.8061656653871196E-01 -5.8061653842376915E-01 + -5.8061650979779800E-01 -5.8061648065177285E-01 -5.8061645097651060E-01 + -5.8061642076266873E-01 -5.8061639000074150E-01 -5.8061635868105776E-01 + -5.8061632679377784E-01 -5.8061629432889061E-01 -5.8061626127621091E-01 + -5.8061622762537579E-01 -5.8061619336584247E-01 -5.8061615848688397E-01 + -5.8061612297758725E-01 -5.8061608682684873E-01 -5.8061605002337213E-01 + -5.8061601255566420E-01 -5.8061597441203172E-01 -5.8061593558057834E-01 + -5.8061589604920050E-01 -5.8061585580558428E-01 -5.8061581483720148E-01 + -5.8061577313130575E-01 -5.8061573067492978E-01 -5.8061568745488012E-01 + -5.8061564345773420E-01 -5.8061559866983625E-01 -5.8061555307729273E-01 + -5.8061550666596906E-01 -5.8061545942148463E-01 -5.8061541132920891E-01 + -5.8061536237425770E-01 -5.8061531254148735E-01 -5.8061526181549183E-01 + -5.8061521018059703E-01 -5.8061515762085658E-01 -5.8061510412004746E-01 + -5.8061504966166466E-01 -5.8061499422891627E-01 -5.8061493780471951E-01 + -5.8061488037169406E-01 -5.8061482191215863E-01 -5.8061476240812449E-01 + -5.8061470184129071E-01 -5.8061464019303888E-01 -5.8061457744442746E-01 + -5.8061451357618565E-01 -5.8061444856870870E-01 -5.8061438240205177E-01 + -5.8061431505592354E-01 -5.8061424650968074E-01 -5.8061417674232207E-01 + -5.8061410573248196E-01 -5.8061403345842399E-01 -5.8061395989803488E-01 + -5.8061388502881794E-01 -5.8061380882788582E-01 -5.8061373127195492E-01 + -5.8061365233733730E-01 -5.8061357199993469E-01 -5.8061349023523112E-01 + -5.8061340701828490E-01 -5.8061332232372276E-01 -5.8061323612573112E-01 + -5.8061314839804889E-01 -5.8061305911396033E-01 -5.8061296824628628E-01 + -5.8061287576737641E-01 -5.8061278164910191E-01 -5.8061268586284587E-01 + -5.8061258837949570E-01 -5.8061248916943464E-01 -5.8061238820253269E-01 + -5.8061228544813792E-01 -5.8061218087506739E-01 -5.8061207445159813E-01 + -5.8061196614545751E-01 -5.8061185592381415E-01 -5.8061174375326807E-01 + -5.8061162959984081E-01 -5.8061151342896555E-01 -5.8061139520547700E-01 + -5.8061127489360087E-01 -5.8061115245694350E-01 -5.8061102785848129E-01 + -5.8061090106054958E-01 -5.8061077202483202E-01 -5.8061064071234869E-01 + -5.8061050708344508E-01 -5.8061037109778002E-01 -5.8061023271431500E-01 + -5.8061009189130031E-01 -5.8060994858626458E-01 -5.8060980275600094E-01 + -5.8060965435655532E-01 -5.8060950334321271E-01 -5.8060934967048472E-01 + -5.8060919329209626E-01 -5.8060903416097098E-01 -5.8060887222921875E-01 + -5.8060870744812088E-01 -5.8060853976811599E-01 -5.8060836913878522E-01 + -5.8060819550883802E-01 -5.8060801882609669E-01 -5.8060783903748103E-01 + -5.8060765608899301E-01 -5.8060746992570111E-01 -5.8060728049172328E-01 + -5.8060708773021197E-01 -5.8060689158333634E-01 -5.8060669199226556E-01 + -5.8060648889715216E-01 -5.8060628223711375E-01 -5.8060607195021530E-01 + -5.8060585797345143E-01 -5.8060564024272776E-01 -5.8060541869284199E-01 + -5.8060519325746451E-01 -5.8060496386911975E-01 -5.8060473045916561E-01 + -5.8060449295777405E-01 -5.8060425129391036E-01 -5.8060400539531198E-01 + -5.8060375518846796E-01 -5.8060350059859689E-01 -5.8060324154962539E-01 + -5.8060297796416582E-01 -5.8060270976349337E-01 -5.8060243686752311E-01 + -5.8060215919478664E-01 -5.8060187666240837E-01 -5.8060158918608062E-01 + -5.8060129668003990E-01 -5.8060099905704099E-01 -5.8060069622833177E-01 + -5.8060038810362746E-01 -5.8060007459108376E-01 -5.8059975559726973E-01 + -5.8059943102714173E-01 -5.8059910078401411E-01 -5.8059876476953209E-01 + -5.8059842288364172E-01 -5.8059807502456229E-01 -5.8059772108875474E-01 + -5.8059736097089309E-01 -5.8059699456383240E-01 -5.8059662175857751E-01 + -5.8059624244425223E-01 -5.8059585650806567E-01 -5.8059546383527993E-01 + -5.8059506430917640E-01 -5.8059465781102160E-01 -5.8059424422003258E-01 + -5.8059382341334131E-01 -5.8059339526595921E-01 -5.8059295965074020E-01 + -5.8059251643834386E-01 -5.8059206549719711E-01 -5.8059160669345655E-01 + -5.8059113989096878E-01 -5.8059066495123046E-01 -5.8059018173334842E-01 + -5.8058969009399808E-01 -5.8058918988738140E-01 -5.8058868096518501E-01 + -5.8058816317653583E-01 -5.8058763636795818E-01 -5.8058710038332761E-01 + -5.8058655506382673E-01 -5.8058600024789742E-01 -5.8058543577119470E-01 + -5.8058486146653798E-01 -5.8058427716386307E-01 -5.8058368269017147E-01 + -5.8058307786948071E-01 -5.8058246252277224E-01 -5.8058183646794004E-01 + -5.8058119951973641E-01 -5.8058055148971865E-01 -5.8057989218619399E-01 + -5.8057922141416274E-01 -5.8057853897526268E-01 -5.8057784466771001E-01 + -5.8057713828624113E-01 -5.8057641962205264E-01 -5.8057568846273966E-01 + -5.8057494459223502E-01 -5.8057418779074543E-01 -5.8057341783468708E-01 + -5.8057263449662100E-01 -5.8057183754518660E-01 -5.8057102674503402E-01 + -5.8057020185675512E-01 -5.8056936263681391E-01 -5.8056850883747568E-01 + -5.8056764020673457E-01 -5.8056675648823985E-01 -5.8056585742122124E-01 + -5.8056494274041270E-01 -5.8056401217597553E-01 -5.8056306545341885E-01 + -5.8056210229352057E-01 -5.8056112241224467E-01 -5.8056012552065961E-01 + -5.8055911132485305E-01 -5.8055807952584659E-01 -5.8055702981950863E-01 + -5.8055596189646530E-01 -5.8055487544201101E-01 -5.8055377013601539E-01 + -5.8055264565283138E-01 -5.8055150166119907E-01 -5.8055033782414989E-01 + -5.8054915379890804E-01 -5.8054794923679054E-01 -5.8054672378310590E-01 + -5.8054547707704962E-01 -5.8054420875160040E-01 -5.8054291843341299E-01 + -5.8054160574270830E-01 -5.8054027029316346E-01 -5.8053891169179916E-01 + -5.8053752953886462E-01 -5.8053612342772254E-01 -5.8053469294472859E-01 + -5.8053323766911180E-01 -5.8053175717285277E-01 -5.8053025102055733E-01 + -5.8052871876933099E-01 -5.8052715996864890E-01 -5.8052557416022543E-01 + -5.8052396087788005E-01 -5.8052231964740220E-01 -5.8052064998641195E-01 + -5.8051895140422083E-01 -5.8051722340168777E-01 -5.8051546547107469E-01 + -5.8051367709589774E-01 -5.8051185775077763E-01 -5.8051000690128551E-01 + -5.8050812400378915E-01 -5.8050620850529244E-01 -5.8050425984327625E-01 + -5.8050227744553340E-01 -5.8050026073000249E-01 -5.8049820910459882E-01 + -5.8049612196704070E-01 -5.8049399870467611E-01 -5.8049183869430221E-01 + -5.8048964130198566E-01 -5.8048740588287695E-01 -5.8048513178102323E-01 + -5.8048281832917736E-01 -5.8048046484860338E-01 -5.8047807064887946E-01 + -5.8047563502769661E-01 -5.8047315727065418E-01 -5.8047063665105259E-01 + -5.8046807242968135E-01 -5.8046546385460374E-01 -5.8046281016093926E-01 + -5.8046011057063951E-01 -5.8045736429226291E-01 -5.8045457052074378E-01 + -5.8045172843715931E-01 -5.8044883720848994E-01 -5.8044589598737795E-01 + -5.8044290391188058E-01 -5.8043986010521997E-01 -5.8043676367552755E-01 + -5.8043361371558500E-01 -5.8043040930256029E-01 -5.8042714949773966E-01 + -5.8042383334625469E-01 -5.8042045987680402E-01 -5.8041702810137197E-01 + -5.8041353701494081E-01 -5.8040998559519874E-01 -5.8040637280224250E-01 + -5.8040269757827589E-01 -5.8039895884730153E-01 -5.8039515551480858E-01 + -5.8039128646745486E-01 -5.8038735057274282E-01 -5.8038334667869129E-01 + -5.8037927361350006E-01 -5.8037513018521025E-01 -5.8037091518135742E-01 + -5.8036662736861977E-01 -5.8036226549245951E-01 -5.8035782827675930E-01 + -5.8035331442345117E-01 -5.8034872261213954E-01 -5.8034405149971835E-01 + -5.8033929971998044E-01 -5.8033446588322124E-01 -5.8032954857583585E-01 + -5.8032454635990816E-01 -5.8031945777279359E-01 -5.8031428132669483E-01 + -5.8030901550823000E-01 -5.8030365877799361E-01 -5.8029820957010947E-01 + -5.8029266629177745E-01 -5.8028702732281046E-01 -5.8028129101516501E-01 + -5.8027545569246286E-01 -5.8026951964950513E-01 -5.8026348115177795E-01 + -5.8025733843494931E-01 -5.8025108970435724E-01 -5.8024473313449065E-01 + -5.8023826686845870E-01 -5.8023168901745392E-01 -5.8022499766020375E-01 + -5.8021819084241444E-01 -5.8021126657620492E-01 -5.8020422283952999E-01 + -5.8019705757559570E-01 -5.8018976869226291E-01 -5.8018235406144114E-01 + -5.8017481151847294E-01 -5.8016713886150673E-01 -5.8015933385085927E-01 + -5.8015139420836737E-01 -5.8014331761672833E-01 -5.8013510171882954E-01 + -5.8012674411706577E-01 -5.8011824237264642E-01 -5.8010959400488860E-01 + -5.8010079649050073E-01 -5.8009184726285212E-01 -5.8008274371123014E-01 + -5.8007348318008645E-01 -5.8006406296826840E-01 -5.8005448032823825E-01 + -5.8004473246527943E-01 -5.8003481653668798E-01 -5.8002472965095198E-01 + -5.8001446886691532E-01 -5.8000403119292887E-01 -5.7999341358598577E-01 + -5.7998261295084275E-01 -5.7997162613912612E-01 -5.7996044994842366E-01 + -5.7994908112135934E-01 -5.7993751634465307E-01 -5.7992575224816567E-01 + -5.7991378540392513E-01 -5.7990161232513915E-01 -5.7988922946518828E-01 + -5.7987663321660399E-01 -5.7986381991002778E-01 -5.7985078581315419E-01 + -5.7983752712965497E-01 -5.7982403999808463E-01 -5.7981032049076842E-01 + -5.7979636461267081E-01 -5.7978216830024454E-01 -5.7976772742026206E-01 + -5.7975303776862330E-01 -5.7973809506914786E-01 -5.7972289497234331E-01 + -5.7970743305415418E-01 -5.7969170481468912E-01 -5.7967570567692794E-01 + -5.7965943098540440E-01 -5.7964287600486852E-01 -5.7962603591892636E-01 + -5.7960890582865554E-01 -5.7959148075119760E-01 -5.7957375561832913E-01 + -5.7955572527500454E-01 -5.7953738447787739E-01 -5.7951872789379577E-01 + -5.7949975009827248E-01 -5.7948044557392886E-01 -5.7946080870891326E-01 + -5.7944083379529254E-01 -5.7942051502741554E-01 -5.7939984650025100E-01 + -5.7937882220769577E-01 -5.7935743604085499E-01 -5.7933568178629391E-01 + -5.7931355312426014E-01 -5.7929104362687522E-01 -5.7926814675629701E-01 + -5.7924485586285035E-01 -5.7922116418312686E-01 -5.7919706483805322E-01 + -5.7917255083092545E-01 -5.7914761504541212E-01 -5.7912225024352371E-01 + -5.7909644906354696E-01 -5.7907020401794551E-01 -5.7904350749122602E-01 + -5.7901635173776700E-01 -5.7898872887961239E-01 -5.7896063090422867E-01 + -5.7893204966222411E-01 -5.7890297686502956E-01 -5.7887340408254107E-01 + -5.7884332274072325E-01 -5.7881272411917262E-01 -5.7878159934864049E-01 + -5.7874993940851482E-01 -5.7871773512425917E-01 -5.7868497716481149E-01 + -5.7865165603993640E-01 -5.7861776209753679E-01 -5.7858328552091931E-01 + -5.7854821632601361E-01 -5.7851254435854815E-01 -5.7847625929117652E-01 + -5.7843935062055840E-01 -5.7840180766439131E-01 -5.7836361955839311E-01 + -5.7832477525323578E-01 -5.7828526351142728E-01 -5.7824507290414351E-01 + -5.7820419180800731E-01 -5.7816260840181388E-01 -5.7812031066320502E-01 + -5.7807728636528477E-01 -5.7803352307318334E-01 -5.7798900814056220E-01 + -5.7794372870606381E-01 -5.7789767168970185E-01 -5.7785082378919284E-01 + -5.7780317147622839E-01 -5.7775470099268611E-01 -5.7770539834677959E-01 + -5.7765524930914436E-01 -5.7760423940886152E-01 -5.7755235392941573E-01 + -5.7749957790458939E-01 -5.7744589611428754E-01 -5.7739129308029735E-01 + -5.7733575306197882E-01 -5.7727926005188446E-01 -5.7722179777131033E-01 + -5.7716334966577365E-01 -5.7710389890041847E-01 -5.7704342835534783E-01 + -5.7698192062087950E-01 -5.7691935799272753E-01 -5.7685572246710581E-01 + -5.7679099573575310E-01 -5.7672515918087830E-01 -5.7665819387002659E-01 + -5.7659008055086258E-01 -5.7652079964587089E-01 -5.7645033124697242E-01 + -5.7637865511005570E-01 -5.7630575064942113E-01 -5.7623159693213788E-01 + -5.7615617267231256E-01 -5.7607945622526469E-01 -5.7600142558161482E-01 + -5.7592205836127630E-01 -5.7584133180735431E-01 -5.7575922277995095E-01 + -5.7567570774987054E-01 -5.7559076279222865E-01 -5.7550436357996260E-01 + -5.7541648537723966E-01 -5.7532710303276302E-01 -5.7523619097297662E-01 + -5.7514372319516149E-01 -5.7504967326042966E-01 -5.7495401428660819E-01 + -5.7485671894101431E-01 -5.7475775943312080E-01 -5.7465710750710919E-01 + -5.7455473443430971E-01 -5.7445061100552652E-01 -5.7434470752324640E-01 + -5.7423699379373072E-01 -5.7412743911898667E-01 -5.7401601228861998E-01 + -5.7390268157156399E-01 -5.7378741470768568E-01 -5.7367017889926664E-01 + -5.7355094080235847E-01 -5.7342966651800731E-01 -5.7330632158335371E-01 + -5.7318087096259640E-01 -5.7305327903782710E-01 -5.7292350959972937E-01 + -5.7279152583814352E-01 -5.7265729033249335E-01 -5.7252076504207472E-01 + -5.7238191129620508E-01 -5.7224068978422993E-01 -5.7209706054538823E-01 + -5.7195098295853108E-01 -5.7180241573169799E-01 -5.7165131689154214E-01 + -5.7149764377260936E-01 -5.7134135300646616E-01 -5.7118240051067637E-01 + -5.7102074147762427E-01 -5.7085633036318428E-01 -5.7068912087523405E-01 + -5.7051906596201152E-01 -5.7034611780031130E-01 -5.7017022778352511E-01 + -5.6999134650951711E-01 -5.6980942376834076E-01 -5.6962440852978857E-01 + -5.6943624893078060E-01 -5.6924489226258501E-01 -5.6905028495787202E-01 + -5.6885237257760068E-01 -5.6865109979773587E-01 -5.6844641039579558E-01 + -5.6823824723722682E-01 -5.6802655226161036E-01 -5.6781126646869184E-01 + -5.6759232990424036E-01 -5.6736968164573198E-01 -5.6714325978785818E-01 + -5.6691300142786016E-01 -5.6667884265068535E-01 -5.6644071851396882E-01 + -5.6619856303283589E-01 -5.6595230916452999E-01 -5.6570188879286165E-01 + -5.6544723271247943E-01 -5.6518827061296395E-01 -5.6492493106274499E-01 + -5.6465714149283985E-01 -5.6438482818041558E-01 -5.6410791623217438E-01 + -5.6382632956756162E-01 -5.6353999090180018E-01 -5.6324882172874891E-01 + -5.6295274230358650E-01 -5.6265167162532370E-01 -5.6234552741914356E-01 + -5.6203422611857090E-01 -5.6171768284747303E-01 -5.6139581140189365E-01 + -5.6106852423172071E-01 -5.6073573242219232E-01 -5.6039734567524013E-01 + -5.6005327229067514E-01 -5.5970341914721744E-01 -5.5934769168337239E-01 + -5.5898599387815684E-01 -5.5861822823167961E-01 -5.5824429574557821E-01 + -5.5786409590331543E-01 -5.5747752665034289E-01 -5.5708448437413183E-01 + -5.5668486388407901E-01 -5.5627855839129103E-01 -5.5586545948825228E-01 + -5.5544545712838422E-01 -5.5501843960549802E-01 -5.5458429353315220E-01 + -5.5414290382391496E-01 -5.5369415366854635E-01 -5.5323792451510045E-01 + -5.5277409604795935E-01 -5.5230254616680685E-01 -5.5182315096555024E-01 + -5.5133578471119626E-01 -5.5084031982269777E-01 -5.5033662684977369E-01 + -5.4982457445171762E-01 -5.4930402937620493E-01 -5.4877485643810842E-01 + -5.4823691849833900E-01 -5.4769007644271683E-01 -5.4713418916089551E-01 + -5.4656911352534565E-01 -5.4599470437041642E-01 -5.4541081447148831E-01 + -5.4481729452423644E-01 -5.4421399312401586E-01 -5.4360075674539166E-01 + -5.4297742972182805E-01 -5.4234385422555709E-01 -5.4169987024764776E-01 + -5.4104531557829361E-01 -5.4038002578734234E-01 -5.3970383420508838E-01 + -5.3901657190335317E-01 -5.3831806767687618E-01 -5.3760814802504120E-01 + -5.3688663713396723E-01 -5.3615335685898657E-01 -5.3540812670754201E-01 + -5.3465076382253185E-01 -5.3388108296613124E-01 -5.3309889650412434E-01 + -5.3230401439077757E-01 -5.3149624415429109E-01 -5.3067539088285964E-01 + -5.2984125721138431E-01 -5.2899364330886967E-01 -5.2813234686654720E-01 + -5.2725716308676551E-01 -5.2636788467268991E-01 -5.2546430181885484E-01 + -5.2454620220261583E-01 -5.2361337097654503E-01 -5.2266559076182217E-01 + -5.2170264164266933E-01 -5.2072430116188195E-01 -5.1973034431751075E-01 + -5.1872054356074715E-01 -5.1769466879507564E-01 -5.1665248737674296E-01 + -5.1559376411661673E-01 -5.1451826128348699E-01 -5.1342573860888185E-01 + -5.1231595329346136E-01 -5.1118866001506191E-01 -5.1004361093846107E-01 + -5.0888055572693558E-01 -5.0769924155569290E-01 -5.0649941312724989E-01 + -5.0528081268884295E-01 -5.0404318005195159E-01 -5.0278625261402110E-01 + -5.0150976538247372E-01 -5.0021345100109693E-01 -4.9889703977890515E-01 + -4.9756025972156825E-01 -4.9620283656550790E-01 -4.9482449381476212E-01 + -4.9342495278072079E-01 -4.9200393262484338E-01 -4.9056115040446391E-01 + -4.8909632112180046E-01 -4.8760915777628050E-01 -4.8609937142030524E-01 + -4.8456667121857000E-01 -4.8301076451107011E-01 -4.8143135687991606E-01 + -4.7982815222008945E-01 -4.7820085281427555E-01 -4.7654915941190779E-01 + -4.7487277131256211E-01 -4.7317138645384832E-01 -4.7144470150394091E-01 + -4.6969241195890105E-01 -4.6791421224493868E-01 -4.6610979582577350E-01 + -4.6427885531525021E-01 -4.6242108259537046E-01 -4.6053616893990607E-01 + -4.5862380514375695E-01 -4.5668368165822898E-01 -4.5471548873239787E-01 + -4.5271891656074131E-01 -4.5069365543720818E-01 -4.4863939591591301E-01 + -4.4655582897863239E-01 -4.4444264620929230E-01 -4.4229953997562638E-01 + -4.4012620361820115E-01 -4.3792233164699329E-01 -4.3568761994571237E-01 + -4.3342176598405879E-01 -4.3112446903811746E-01 -4.2879543041907398E-01 + -4.2643435371045590E-01 -4.2404094501408518E-01 -4.2161491320494993E-01 + -4.1915597019517792E-01 -4.1666383120730999E-01 -4.1413821505707349E-01 + -4.1157884444583115E-01 -4.0898544626291256E-01 -4.0635775189799872E-01 + -4.0369549756375078E-01 -4.0099842462886348E-01 -3.9826627996171399E-01 + -3.9549881628477496E-01 -3.9269579253996517E-01 -3.8985697426508226E-01 + -3.8698213398148229E-01 -3.8407105159313687E-01 -3.8112351479720652E-01 + -3.7813931950625962E-01 -3.7511827028223871E-01 -3.7206018078228276E-01 + -3.6896487421649760E-01 -3.6583218381773386E-01 -3.6266195332345258E-01 + -3.5945403746970050E-01 -3.5620830249723034E-01 -3.5292462666977398E-01 + -3.4960290080443912E-01 -3.4624302881420926E-01 -3.4284492826246843E-01 + -3.3940853092946865E-01 -3.3593378339063218E-01 -3.3242064760652856E-01 + -3.2886910152435705E-01 -3.2527913969073202E-01 -3.2165077387550450E-01 + -3.1798403370636086E-01 -3.1427896731385424E-01 -3.1053564198650768E-01 + -3.0675414483558638E-01 -3.0293458346906338E-01 -2.9907708667427330E-01 + -2.9518180510870112E-01 -2.9124891199826153E-01 -2.8727860384241688E-01 + -2.8327110112536669E-01 -2.7922664903251360E-01 -2.7514551817133154E-01 + -2.7102800529567062E-01 -2.6687443403249739E-01 -2.6268515560994304E-01 + -2.5846054958548303E-01 -2.5420102457298338E-01 -2.4990701896722972E-01 + -2.4557900166449556E-01 -2.4121747277759639E-01 -2.3682296434375735E-01 + -2.3239604102355307E-01 -2.2793730078903082E-01 -2.2344737559904054E-01 + -2.1892693205967759E-01 -2.1437667206760636E-01 -2.0979733343392526E-01 + -2.0518969048611368E-01 -2.0055455464543789E-01 -1.9589277497711133E-01 + -1.9120523871031569E-01 -1.8649287172508713E-01 -1.8175663900293393E-01 + -1.7699754503786927E-01 -1.7221663420446495E-01 -1.6741499107932520E-01 + -1.6259374071227739E-01 -1.5775404884343472E-01 -1.5289712206211203E-01 + -1.4802420790347615E-01 -1.4313659487866862E-01 -1.3823561243398511E-01 + -1.3332263083461943E-01 -1.2839906096831824E-01 -1.2346635406421549E-01 + -1.1852600132202562E-01 -1.1357953344666212E-01 -1.0862852008331141E-01 + -1.0367456914794629E-01 -9.8719326048196415E-02 -9.3764472789548595E-02 + -8.8811726961814427E-02 -8.3862840600894079E-02 -7.8919598920948075E-02 + -7.3983818912186042E-02 -6.9057347799699867E-02 -6.4142061358939323E-02 + -5.9239862083730097E-02 -5.4352677203070521E-02 -4.9482456543319356E-02 + -4.4631170232886937E-02 -3.9800806247105275E-02 -3.4993367791573006E-02 + -3.0210870523074876E-02 -2.5455339607991963E-02 -2.0728806619145203E-02 + -1.6033306273139831E-02 -1.1370873011529385E-02 -6.7435374305941861E-03 + -2.1533225661469826E-03 2.3977599584227849E-03 6.9077139105673639E-03 + 1.1374562540926496E-02 1.5796352774494805E-02 2.0171159482677940E-02 + 2.4497089815191685E-02 2.8772287567231832E-02 3.2994937553539300E-02 + 3.7163269956694868E-02 4.1275564612280158E-02 4.5330155125842105E-02 + 4.9325433506238095E-02 5.3259857323077628E-02 5.7131954914287839E-02 + 6.0940325807401233E-02 6.4683640611930951E-02 6.8360640835881933E-02 + 7.1970138626938643E-02 7.5511016438900500E-02 7.8982226624039142E-02 + 8.2382790952161083E-02 8.5711800057298435E-02 8.8968412813131517E-02 + 9.2151855638460567E-02 9.5261421734165283E-02 9.8296470253748602E-02 + 1.0125642540925503E-01 1.0414077551498210E-01 1.0694907197219754E-01 + 1.0968092819730017E-01 1.1233601849748691E-01 1.1491407689766514E-01 + 1.1741489592250422E-01 1.1983832533862114E-01 1.2218427086155380E-01 + 1.2445269283281114E-01 1.2664360487244611E-01 1.2875707251283114E-01 + 1.3079321181947651E-01 1.3275218800482061E-01 1.3463421404095749E-01 + 1.3643954927721980E-01 1.3816849806840342E-01 1.3982140841922228E-01 + 1.4139867065027273E-01 1.4290071609040769E-01 1.4432801579993756E-01 + 1.4568107932848648E-01 1.4696045351066403E-01 1.4816672130190897E-01 + 1.4930050065597220E-01 1.5036244344448821E-01 1.5135323441794044E-01 + 1.5227359020606623E-01 1.5312425835435717E-01 1.5390601639177603E-01 + 1.5461967092318601E-01 1.5526605673822227E-01 1.5584603592651664E-01 + 1.5636049698731794E-01 1.5681035391969564E-01 1.5719654527777888E-01 + 1.5752003317394522E-01 1.5778180221166685E-01 1.5798285832903267E-01 + 1.5812422753390978E-01 1.5820695451253808E-01 1.5823210109520502E-01 + 1.5820074456570685E-01 1.5811397580572337E-01 1.5797289727102673E-01 + 1.5777862080364397E-01 1.5753226529251124E-01 1.5723495420451997E-01 + 1.5688781301774354E-01 1.5649196659844752E-01 1.5604853657251436E-01 + 1.5555863874941350E-01 1.5502338066195967E-01 1.5444385928717574E-01 + 1.5382115901201648E-01 1.5315634990223845E-01 1.5245048632338229E-01 + 1.5170460595006022E-01 1.5091972918428345E-01 1.5009685898653119E-01 + 1.4923698110586150E-01 1.4834106467897060E-01 1.4741006315389521E-01 + 1.4644491548300914E-01 1.4544654752275538E-01 1.4441587357437086E-01 + 1.4335379800061757E-01 1.4226121685771667E-01 1.4113901948858681E-01 + 1.3998809003227888E-01 1.3880930881429487E-01 1.3760355359246265E-01 + 1.3637170064258314E-01 1.3511462567661148E-01 1.3383320459341289E-01 + 1.3252831406795290E-01 1.3120083198912674E-01 1.2985163775941103E-01 + 1.2848161247126083E-01 1.2709163897588169E-01 1.2568260185990152E-01 + 1.2425538734471839E-01 1.2281088312212897E-01 1.2134997813837452E-01 + 1.1987356233711313E-01 1.1838252637015996E-01 1.1687776128315978E-01 + 1.1536015818177960E-01 1.1383060788252013E-01 1.1229000055089158E-01 + 1.1073922532849444E-01 1.0917916994948317E-01 1.0761072034597778E-01 + 1.0603476024123791E-01 1.0445217072878966E-01 1.0286382983524044E-01 + 1.0127061206419230E-01 9.9673387918481501E-02 9.8073023397937817E-02 + 9.6470379469956083E-02 9.4866311510398912E-02 9.3261668712722429E-02 + 9.1657293463686854E-02 9.0054020684616612E-02 8.8452677137859884E-02 + 8.6854080698862704E-02 8.5259039595106653E-02 8.3668351614012634E-02 + 8.2082803282790121E-02 8.0503169024065430E-02 7.8930210291926470E-02 + 7.7364674693766650E-02 7.5807295103952579E-02 7.4258788775860021E-02 + 7.2719856459235288E-02 7.1191181530142617E-02 6.9673429140532137E-02 + 6.8167245395058612E-02 6.6673256562023636E-02 6.5192068324920735E-02 + 6.3724265081376089E-02 6.2270409294562248E-02 6.0831040902336486E-02 + 5.9406676788876678E-02 5.7997810320665914E-02 5.6604910952827311E-02 + 5.5228423903517107E-02 5.3868769901008071E-02 5.2526345001706463E-02 + 5.1201520479730388E-02 4.9894642786697314E-02 4.8606033580114803E-02 + 4.7335989818183599E-02 4.6084783918349234E-02 4.4852663976531801E-02 + 4.3639854043635205E-02 4.2446554455667154E-02 4.1272942213604037E-02 + 4.0119171408994882E-02 3.8985373691213583E-02 3.7871658772238158E-02 + 3.6778114964848570E-02 3.5704809750186958E-02 3.4651790370715210E-02 + 3.3619084444720261E-02 3.2606700598663253E-02 3.1614629113832303E-02 + 3.0642842583937242E-02 2.9691296580480791E-02 2.8759930322939348E-02 + 2.7848667350996743E-02 2.6957416196285965E-02 2.6086071051304074E-02 + 2.5234512433379073E-02 2.4402607841774882E-02 2.3590212406223401E-02 + 2.2797169525372488E-02 2.2023311493827788E-02 2.1268460116650505E-02 + 2.0532427310348069E-02 1.9815015689558731E-02 1.9116019138787826E-02 + 1.8435223368699152E-02 1.7772406456598784E-02 1.7127339370875620E-02 + 1.6499786479275035E-02 1.5889506040987145E-02 1.5296250682624309E-02 + 1.4719767858244099E-02 1.4159800293648580E-02 1.3616086415251635E-02 + 1.3088360763860295E-02 1.2576354393759906E-02 1.2079795257527020E-02 + 1.1598408577021407E-02 1.1131917201026964E-02 1.0680041950021769E-02 + 1.0242501948562906E-02 9.8190149457686553E-03 9.4092976243734232E-03 + 9.0130658988181213E-03 8.6300352028207249E-03 8.2599207668512878E-03 + 7.9024378859113096E-03 7.5573021779898391E-03 7.2242298335408704E-03 + 6.9029378562953294E-03 6.5931442956905974E-03 6.2945684711690642E-03 + 6.0069311885656684E-03 5.7299549487746177E-03 5.4633641488554367E-03 + 5.2068852757109719E-03 4.9602470924437021E-03 4.7231808174723975E-03 + 4.4954202964693430E-03 4.2767021671590169E-03 4.0667660170016166E-03 + 3.8653545337711159E-03 3.6722136490251927E-03 3.4870926744556370E-03 + 3.3097444311012900E-03 3.1399253714013732E-03 2.9773956940657110E-03 + 2.8219194517389986E-03 2.6732646514389283E-03 2.5312033477530756E-03 + 2.3955117287857274E-03 2.2659701948541978E-03 2.1423634299437082E-03 + 2.0244804659405643E-03 1.9121147396753179E-03 1.8050641428199914E-03 + 1.7031310646967389E-03 1.6061224280689694E-03 1.5138497179997324E-03 + 1.4261290038762497E-03 1.3427809547134234E-03 1.2636308478627828E-03 + 1.1885085712669064E-03 1.1172486194122035E-03 1.0496900831454732E-03 + 9.8567663353148162E-04 9.2505649993984175E-04 8.6768244255990403E-04 + 8.1341171955186860E-04 7.6210604905092437E-04 7.1363156624906841E-04 + 6.6785877578597779E-04 6.2466249968625538E-04 5.8392182108527989E-04 + 5.4552002398984654E-04 5.0934452932284273E-04 4.7528682750331576E-04 + 4.4324240781442898E-04 4.1311068481216765E-04 3.8479492202703192E-04 + 3.5820215320958967E-04 3.3324310136856273E-04 3.0983209584713574E-04 + 2.8788698767953516E-04 2.6732906346552576E-04 2.4808295799549549E-04 + 2.3007656585320439E-04 2.1324095221711954E-04 1.9751026307462559E-04 + 1.8282163505630792E-04 1.6911510508998159E-04 1.5633352006629416E-04 + 1.4442244669952986E-04 1.3333008175880367E-04 1.2300716283615595E-04 + 1.1340687980920011E-04 1.0448478714698922E-04 9.6198717198684220E-05 + 8.8508694595457554E-05 8.1376851886924692E-05 7.4767346524250250E-05 + 6.8646279293007985E-05 6.2981614289887646E-05 5.7743100528473932E-05 + 5.2902195250618620E-05 4.8431989011387128E-05 4.4307132597236543E-05 + 4.0503765828978522E-05 3.6999448293224343E-05 3.3773092038422656E-05 + 3.0804896264294320E-05 2.8076284026456773E-05 2.5569840971333653E-05 + 2.3269256110059725E-05 2.1159264634038978E-05 1.9225592769091167E-05 + 1.7454904659736929E-05 1.5834751270127598E-05 1.4353521283421661E-05 + 1.3000393977043957E-05 1.1765294047237902E-05 1.0638848352625476E-05 + 9.6123445431250218E-06 8.6776915375331040E-06 7.8273818103469444E-06 + 7.0544554459819975E-06 6.3524659164122460E-06 5.7154475364218351E-06 + 5.1378845490930848E-06 4.6146817928564436E-06 4.1411369003816922E-06 + 3.7129139787832613E-06 3.3260187200333483E-06 2.9767748901128356E-06 + 2.6618021452671171E-06 2.3779951237602059E-06 2.1225037617221083E-06 + 1.8927147820482961E-06 1.6862343058239046E-06 1.5008715363957621E-06 + 1.3346234669901827E-06 1.1856605636618945E-06 1.0523133763469819E-06 + 9.3306003186955796E-07 8.2651456390657877E-07 7.3141603613722774E-07 + 6.4661841608275509E-07 5.7108115846949752E-07 5.0386045831324716E-07 + 4.4410113531831228E-07 3.9102911260143382E-07 3.4394445418166798E-07 + 3.0221492711524025E-07 2.6527005559267910E-07 2.3259563574827536E-07 + 2.0372868135344241E-07 1.7825277197092914E-07 1.5579377653148028E-07 + 1.3601592665434355E-07 1.1861821536443492E-07 1.0333109815876421E-07 + 8.9913474640140019E-08 7.8149930164899731E-08 6.7848218141415390E-08 + 5.8836964765843828E-08 5.0963579089718756E-08 4.4092352379563592E-08 + 3.8102731751093970E-08 3.2887754039357363E-08 2.8352626801212097E-08 + 2.4413444237952311E-08 2.0996026673944329E-08 1.8034873032344726E-08 + 1.5472216511974315E-08 1.3257174391030482E-08 1.1344983564480935E-08 + 9.6963140637309166E-09 8.2766534106603404E-09 7.0557552246035900E-09 + 6.0071460315971106E-09 5.1076847215986078E-09 4.3371695627726295E-09 + 3.6779881137613909E-09 3.1148057765510346E-09 2.6342891055418881E-09 + 2.2248603341777842E-09 1.8764799004125970E-09 1.5804540477995729E-09 + 1.3292648514730086E-09 1.1164202691154574E-09 9.3632204741735887E-10 + 7.8414952614432815E-10 6.5575757485918043E-10 5.4758707460181848E-10 + 4.5658652794452377E-10 3.8014346779653523E-10 3.1602461265985765E-10 + 2.6232407072363364E-10 2.1741617916694150E-10 1.7991969069157805E-10 + 1.4865882590852136E-10 1.2263784347918255E-10 1.0101231097943673E-10 + 8.3068094110726657E-11 6.8202204743127004E-11 5.5906313005884933E-11 + 4.5752575766247461E-11 3.7381475894831937E-11 3.0491404135919441E-11 + 2.4829748641763057E-11 2.0185286705115896E-11 1.6381699313205545E-11 + 1.3272052196444954E-11 1.0734107373135310E-11 8.6663470858638877E-12 + 6.9846077484719789E-12 5.6192353121599002E-12 4.5126855306622008E-12 + 3.6175031517012036E-12 2.8946232600897204E-12 2.3119460041790483E-12 + 1.8431428928959263E-12 1.4666588816187577E-12 1.1648796843314687E-12 + 9.2343825729754382E-13 7.3063828520618689E-13 5.7697584356057691E-13 + 4.5474328110837623E-13 3.5770182526624525E-13 2.8081151631521569E-13 + 2.2000887060388057E-13 1.7202420116349295E-13 1.3423182283660639E-13 + 1.0452747040477073E-13 8.1228190287775747E-14 6.2990753531596604E-14 + 4.8745301127095609E-14 3.7641490484062786E-14 2.9004879904187909E-14 + 2.2301679742232900E-14 1.7110326294876216E-14 1.3098607322424888E-14 + 1.0005295051694634E-14 7.6254308339537854E-15 5.7985615578736016E-15 + 4.3993567238502443E-15 3.3301412454425244E-15 2.5149663354968950E-15 + 1.8949124448329447E-15 1.4243768292841883E-15 1.0681461737809996E-15 + 7.9909368048726041E-16 5.9637170129547483E-16 4.4399666997557186E-16 + 3.2974385112006968E-16 2.4428617062121438E-16 1.8052486843276329E-16 + 1.3307053071467602E-16 9.7841718349106683E-17 7.1755324724847656E-17 + 5.2488303498623421E-17 3.8294784491315683E-17 2.7866066336257068E-17 + 2.0223705724170339E-17 1.4638095509886973E-17 1.0566641601626161E-17 + 7.6068896920501554E-18 5.4611088278018137E-18 3.9097498628249236E-18 + 2.7912954736714617E-18 1.9871972217612116E-18 1.4107302846902860E-18 + + + -2.5551722739996197E+01 -2.5551722739840375E+01 -2.5551722739367083E+01 + -2.5551722738568230E+01 -2.5551722737435558E+01 -2.5551722735960627E+01 + -2.5551722734134767E+01 -2.5551722731949145E+01 -2.5551722729394800E+01 + -2.5551722726462362E+01 -2.5551722723142667E+01 -2.5551722719426138E+01 + -2.5551722715302926E+01 -2.5551722710763244E+01 -2.5551722705796781E+01 + -2.5551722700393498E+01 -2.5551722694542651E+01 -2.5551722688233482E+01 + -2.5551722681455196E+01 -2.5551722674196636E+01 -2.5551722666446214E+01 + -2.5551722658192418E+01 -2.5551722649423645E+01 -2.5551722640127419E+01 + -2.5551722630291909E+01 -2.5551722619904226E+01 -2.5551722608951710E+01 + -2.5551722597421474E+01 -2.5551722585300006E+01 -2.5551722572573826E+01 + -2.5551722559229308E+01 -2.5551722545252254E+01 -2.5551722530628332E+01 + -2.5551722515342977E+01 -2.5551722499381206E+01 -2.5551722482728021E+01 + -2.5551722465367821E+01 -2.5551722447284778E+01 -2.5551722428463108E+01 + -2.5551722408886178E+01 -2.5551722388537250E+01 -2.5551722367399694E+01 + -2.5551722345455730E+01 -2.5551722322688025E+01 -2.5551722299078289E+01 + -2.5551722274608334E+01 -2.5551722249259768E+01 -2.5551722223012995E+01 + -2.5551722195849099E+01 -2.5551722167748064E+01 -2.5551722138689758E+01 + -2.5551722108653632E+01 -2.5551722077618738E+01 -2.5551722045564034E+01 + -2.5551722012467494E+01 -2.5551721978307221E+01 -2.5551721943060496E+01 + -2.5551721906704451E+01 -2.5551721869215744E+01 -2.5551721830570550E+01 + -2.5551721790744448E+01 -2.5551721749712804E+01 -2.5551721707450408E+01 + -2.5551721663931694E+01 -2.5551721619130316E+01 -2.5551721573019847E+01 + -2.5551721525572919E+01 -2.5551721476761845E+01 -2.5551721426558963E+01 + -2.5551721374935155E+01 -2.5551721321861269E+01 -2.5551721267307602E+01 + -2.5551721211243787E+01 -2.5551721153639026E+01 -2.5551721094462035E+01 + -2.5551721033680312E+01 -2.5551720971261755E+01 -2.5551720907172808E+01 + -2.5551720841379719E+01 -2.5551720773847997E+01 -2.5551720704542678E+01 + -2.5551720633427600E+01 -2.5551720560466901E+01 -2.5551720485623104E+01 + -2.5551720408858724E+01 -2.5551720330135012E+01 -2.5551720249412746E+01 + -2.5551720166652515E+01 -2.5551720081813162E+01 -2.5551719994853588E+01 + -2.5551719905731641E+01 -2.5551719814404166E+01 -2.5551719720828022E+01 + -2.5551719624958071E+01 -2.5551719526749441E+01 -2.5551719426155703E+01 + -2.5551719323130332E+01 -2.5551719217624889E+01 -2.5551719109590952E+01 + -2.5551718998978892E+01 -2.5551718885738278E+01 -2.5551718769817441E+01 + -2.5551718651164332E+01 -2.5551718529725346E+01 -2.5551718405446266E+01 + -2.5551718278271800E+01 -2.5551718148145621E+01 -2.5551718015010632E+01 + -2.5551717878808116E+01 -2.5551717739478914E+01 -2.5551717596962533E+01 + -2.5551717451197078E+01 -2.5551717302120174E+01 -2.5551717149667656E+01 + -2.5551716993774864E+01 -2.5551716834375316E+01 -2.5551716671401870E+01 + -2.5551716504785592E+01 -2.5551716334456628E+01 -2.5551716160344416E+01 + -2.5551715982376063E+01 -2.5551715800478107E+01 -2.5551715614575283E+01 + -2.5551715424591269E+01 -2.5551715230448522E+01 -2.5551715032067555E+01 + -2.5551714829367761E+01 -2.5551714622267166E+01 -2.5551714410682649E+01 + -2.5551714194528586E+01 -2.5551713973718520E+01 -2.5551713748164637E+01 + -2.5551713517777124E+01 -2.5551713282464270E+01 -2.5551713042133741E+01 + -2.5551712796690364E+01 -2.5551712546038196E+01 -2.5551712290078878E+01 + -2.5551712028712746E+01 -2.5551711761838085E+01 -2.5551711489351742E+01 + -2.5551711211147875E+01 -2.5551710927120151E+01 -2.5551710637158720E+01 + -2.5551710341152805E+01 -2.5551710038989423E+01 -2.5551709730553515E+01 + -2.5551709415728059E+01 -2.5551709094393452E+01 -2.5551708766428916E+01 + -2.5551708431710601E+01 -2.5551708090112811E+01 -2.5551707741507965E+01 + -2.5551707385765237E+01 -2.5551707022752588E+01 -2.5551706652334722E+01 + -2.5551706274374652E+01 -2.5551705888732162E+01 -2.5551705495265491E+01 + -2.5551705093829575E+01 -2.5551704684276960E+01 -2.5551704266457836E+01 + -2.5551703840219464E+01 -2.5551703405406457E+01 -2.5551702961860681E+01 + -2.5551702509421183E+01 -2.5551702047924088E+01 -2.5551701577202600E+01 + -2.5551701097087271E+01 -2.5551700607405213E+01 -2.5551700107980626E+01 + -2.5551699598634656E+01 -2.5551699079185429E+01 -2.5551698549447348E+01 + -2.5551698009232002E+01 -2.5551697458347526E+01 -2.5551696896598408E+01 + -2.5551696323785919E+01 -2.5551695739707998E+01 -2.5551695144158167E+01 + -2.5551694536927489E+01 -2.5551693917802542E+01 -2.5551693286566145E+01 + -2.5551692642997569E+01 -2.5551691986871965E+01 -2.5551691317961016E+01 + -2.5551690636031228E+01 -2.5551689940845954E+01 -2.5551689232164495E+01 + -2.5551688509740902E+01 -2.5551687773326123E+01 -2.5551687022665348E+01 + -2.5551686257500698E+01 -2.5551685477568892E+01 -2.5551684682601714E+01 + -2.5551683872327050E+01 -2.5551683046467531E+01 -2.5551682204740828E+01 + -2.5551681346859738E+01 -2.5551680472532428E+01 -2.5551679581461162E+01 + -2.5551678673343144E+01 -2.5551677747870876E+01 -2.5551676804730505E+01 + -2.5551675843603455E+01 -2.5551674864164958E+01 -2.5551673866085086E+01 + -2.5551672849027732E+01 -2.5551671812650682E+01 -2.5551670756606256E+01 + -2.5551669680540279E+01 -2.5551668584092546E+01 -2.5551667466895953E+01 + -2.5551666328577785E+01 -2.5551665168758479E+01 -2.5551663987051562E+01 + -2.5551662783064071E+01 -2.5551661556395690E+01 -2.5551660306639576E+01 + -2.5551659033381600E+01 -2.5551657736200266E+01 -2.5551656414666652E+01 + -2.5551655068344608E+01 -2.5551653696789799E+01 -2.5551652299550462E+01 + -2.5551650876167106E+01 -2.5551649426171693E+01 -2.5551647949088249E+01 + -2.5551646444432521E+01 -2.5551644911711495E+01 -2.5551643350423735E+01 + -2.5551641760059230E+01 -2.5551640140098471E+01 -2.5551638490013218E+01 + -2.5551636809265911E+01 -2.5551635097309820E+01 -2.5551633353588088E+01 + -2.5551631577534618E+01 -2.5551629768572997E+01 -2.5551627926117110E+01 + -2.5551626049570665E+01 -2.5551624138326179E+01 -2.5551622191766455E+01 + -2.5551620209262961E+01 -2.5551618190176104E+01 -2.5551616133855731E+01 + -2.5551614039639663E+01 -2.5551611906854571E+01 -2.5551609734814754E+01 + -2.5551607522823527E+01 -2.5551605270171120E+01 -2.5551602976135673E+01 + -2.5551600639982745E+01 -2.5551598260965427E+01 -2.5551595838323141E+01 + -2.5551593371282266E+01 -2.5551590859055622E+01 -2.5551588300842635E+01 + -2.5551585695828486E+01 -2.5551583043183800E+01 -2.5551580342065265E+01 + -2.5551577591614940E+01 -2.5551574790959176E+01 -2.5551571939209847E+01 + -2.5551569035462986E+01 -2.5551566078798903E+01 -2.5551563068281769E+01 + -2.5551560002959814E+01 -2.5551556881864187E+01 -2.5551553704009336E+01 + -2.5551550468392886E+01 -2.5551547173994411E+01 -2.5551543819775965E+01 + -2.5551540404681550E+01 -2.5551536927636970E+01 -2.5551533387548908E+01 + -2.5551529783305210E+01 -2.5551526113774315E+01 -2.5551522377804954E+01 + -2.5551518574225817E+01 -2.5551514701845406E+01 -2.5551510759451020E+01 + -2.5551506745809466E+01 -2.5551502659665530E+01 -2.5551498499742316E+01 + -2.5551494264740874E+01 -2.5551489953339509E+01 -2.5551485564193577E+01 + -2.5551481095934911E+01 -2.5551476547171958E+01 -2.5551471916488378E+01 + -2.5551467202443490E+01 -2.5551462403571826E+01 -2.5551457518381852E+01 + -2.5551452545356589E+01 -2.5551447482952810E+01 -2.5551442329599485E+01 + -2.5551437083699746E+01 -2.5551431743627546E+01 -2.5551426307729365E+01 + -2.5551420774323212E+01 -2.5551415141696879E+01 -2.5551409408109453E+01 + -2.5551403571789251E+01 -2.5551397630933554E+01 -2.5551391583709265E+01 + -2.5551385428250168E+01 -2.5551379162658801E+01 -2.5551372785004329E+01 + -2.5551366293321863E+01 -2.5551359685613320E+01 -2.5551352959845147E+01 + -2.5551346113949144E+01 -2.5551339145820531E+01 -2.5551332053318866E+01 + -2.5551324834265586E+01 -2.5551317486444923E+01 -2.5551310007602567E+01 + -2.5551302395445084E+01 -2.5551294647639097E+01 -2.5551286761810893E+01 + -2.5551278735545566E+01 -2.5551270566386446E+01 -2.5551262251833926E+01 + -2.5551253789345406E+01 -2.5551245176333868E+01 -2.5551236410167622E+01 + -2.5551227488169300E+01 -2.5551218407615121E+01 -2.5551209165734416E+01 + -2.5551199759707472E+01 -2.5551190186666911E+01 -2.5551180443695031E+01 + -2.5551170527823398E+01 -2.5551160436032543E+01 -2.5551150165250512E+01 + -2.5551139712351937E+01 -2.5551129074157942E+01 -2.5551118247433529E+01 + -2.5551107228888398E+01 -2.5551096015174920E+01 -2.5551084602887961E+01 + -2.5551072988562851E+01 -2.5551061168674781E+01 -2.5551049139638771E+01 + -2.5551036897806942E+01 -2.5551024439468236E+01 -2.5551011760847903E+01 + -2.5550998858105487E+01 -2.5550985727333988E+01 -2.5550972364558678E+01 + -2.5550958765736411E+01 -2.5550944926753424E+01 -2.5550930843425590E+01 + -2.5550916511495263E+01 -2.5550901926632118E+01 -2.5550887084430418E+01 + -2.5550871980408274E+01 -2.5550856610005749E+01 -2.5550840968584964E+01 + -2.5550825051426763E+01 -2.5550808853731080E+01 -2.5550792370614364E+01 + -2.5550775597108924E+01 -2.5550758528160586E+01 -2.5550741158628288E+01 + -2.5550723483281853E+01 -2.5550705496800184E+01 -2.5550687193771022E+01 + -2.5550668568687716E+01 -2.5550649615948853E+01 -2.5550630329855665E+01 + -2.5550610704611415E+01 -2.5550590734318639E+01 -2.5550570412978182E+01 + -2.5550549734486832E+01 -2.5550528692636377E+01 -2.5550507281110544E+01 + -2.5550485493484608E+01 -2.5550463323222253E+01 -2.5550440763674164E+01 + -2.5550417808076599E+01 -2.5550394449548612E+01 -2.5550370681089628E+01 + -2.5550346495578847E+01 -2.5550321885772622E+01 -2.5550296844301574E+01 + -2.5550271363669069E+01 -2.5550245436248975E+01 -2.5550219054283161E+01 + -2.5550192209879860E+01 -2.5550164895010514E+01 -2.5550137101508216E+01 + -2.5550108821064633E+01 -2.5550080045228235E+01 -2.5550050765401007E+01 + -2.5550020972836869E+01 -2.5549990658638364E+01 -2.5549959813754249E+01 + -2.5549928428977339E+01 -2.5549896494941027E+01 -2.5549864002117030E+01 + -2.5549830940812743E+01 -2.5549797301167775E+01 -2.5549763073151489E+01 + -2.5549728246560477E+01 -2.5549692811014527E+01 -2.5549656755954452E+01 + -2.5549620070638994E+01 -2.5549582744140736E+01 -2.5549544765344418E+01 + -2.5549506122942159E+01 -2.5549466805431422E+01 -2.5549426801110357E+01 + -2.5549386098076059E+01 -2.5549344684219371E+01 -2.5549302547222304E+01 + -2.5549259674554527E+01 -2.5549216053468701E+01 -2.5549171670998273E+01 + -2.5549126513952658E+01 -2.5549080568913269E+01 -2.5549033822230300E+01 + -2.5548986260017948E+01 -2.5548937868151544E+01 -2.5548888632261782E+01 + -2.5548838537732099E+01 -2.5548787569692987E+01 -2.5548735713018978E+01 + -2.5548682952323553E+01 -2.5548629271954379E+01 -2.5548574655989434E+01 + -2.5548519088231679E+01 -2.5548462552204622E+01 -2.5548405031148107E+01 + -2.5548346508011907E+01 -2.5548286965452675E+01 -2.5548226385826982E+01 + -2.5548164751187535E+01 -2.5548102043277460E+01 -2.5548038243524903E+01 + -2.5547973333037618E+01 -2.5547907292597845E+01 -2.5547840102655933E+01 + -2.5547771743325196E+01 -2.5547702194376086E+01 -2.5547631435230429E+01 + -2.5547559444954484E+01 -2.5547486202254184E+01 -2.5547411685468369E+01 + -2.5547335872561426E+01 -2.5547258741119176E+01 -2.5547180268339719E+01 + -2.5547100431028696E+01 -2.5547019205591731E+01 -2.5546936568027583E+01 + -2.5546852493921534E+01 -2.5546766958437455E+01 -2.5546679936311588E+01 + -2.5546591401844175E+01 -2.5546501328893033E+01 -2.5546409690864998E+01 + -2.5546316460708830E+01 -2.5546221610906393E+01 -2.5546125113465656E+01 + -2.5546026939912679E+01 -2.5545927061281962E+01 -2.5545825448109348E+01 + -2.5545722070422471E+01 -2.5545616897732799E+01 -2.5545509899026133E+01 + -2.5545401042754680E+01 -2.5545290296825645E+01 -2.5545177628594502E+01 + -2.5545063004853482E+01 -2.5544946391823210E+01 -2.5544827755141945E+01 + -2.5544707059855803E+01 -2.5544584270409484E+01 -2.5544459350634313E+01 + -2.5544332263738891E+01 -2.5544202972298258E+01 -2.5544071438242337E+01 + -2.5543937622845537E+01 -2.5543801486715349E+01 -2.5543662989780739E+01 + -2.5543522091279819E+01 -2.5543378749749575E+01 -2.5543232923012773E+01 + -2.5543084568165330E+01 -2.5542933641564687E+01 -2.5542780098816319E+01 + -2.5542623894761615E+01 -2.5542464983464388E+01 -2.5542303318197227E+01 + -2.5542138851428049E+01 -2.5541971534806606E+01 -2.5541801319150235E+01 + -2.5541628154429507E+01 -2.5541451989753046E+01 -2.5541272773354205E+01 + -2.5541090452574732E+01 -2.5540904973850225E+01 -2.5540716282693491E+01 + -2.5540524323680383E+01 -2.5540329040431882E+01 -2.5540130375599329E+01 + -2.5539928270846506E+01 -2.5539722666833399E+01 -2.5539513503198446E+01 + -2.5539300718541821E+01 -2.5539084250406319E+01 -2.5538864035260971E+01 + -2.5538640008480346E+01 -2.5538412104328042E+01 -2.5538180255936311E+01 + -2.5537944395286107E+01 -2.5537704453189193E+01 -2.5537460359266440E+01 + -2.5537212041928075E+01 -2.5536959428352450E+01 -2.5536702444465487E+01 + -2.5536441014919166E+01 -2.5536175063068672E+01 -2.5535904510951109E+01 + -2.5535629279263340E+01 -2.5535349287337262E+01 -2.5535064453118036E+01 + -2.5534774693139553E+01 -2.5534479922500132E+01 -2.5534180054838412E+01 + -2.5533875002307941E+01 -2.5533564675551617E+01 -2.5533248983675623E+01 + -2.5532927834224495E+01 -2.5532601133152063E+01 -2.5532268784795892E+01 + -2.5531930691848835E+01 -2.5531586755331332E+01 -2.5531236874562175E+01 + -2.5530880947129621E+01 -2.5530518868861552E+01 -2.5530150533796107E+01 + -2.5529775834149600E+01 -2.5529394660286272E+01 -2.5529006900686884E+01 + -2.5528612441915307E+01 -2.5528211168586235E+01 -2.5527802963332494E+01 + -2.5527387706769940E+01 -2.5526965277463528E+01 -2.5526535551892358E+01 + -2.5526098404413204E+01 -2.5525653707224908E+01 -2.5525201330331448E+01 + -2.5524741141503583E+01 -2.5524273006241724E+01 -2.5523796787736345E+01 + -2.5523312346828451E+01 -2.5522819541969376E+01 -2.5522318229180307E+01 + -2.5521808262010598E+01 -2.5521289491495207E+01 -2.5520761766111949E+01 + -2.5520224931737268E+01 -2.5519678831602473E+01 -2.5519123306248215E+01 + -2.5518558193478167E+01 -2.5517983328312980E+01 -2.5517398542941496E+01 + -2.5516803666674051E+01 -2.5516198525891578E+01 -2.5515582943996755E+01 + -2.5514956741362393E+01 -2.5514319735280473E+01 -2.5513671739908418E+01 + -2.5513012566216769E+01 -2.5512342021933691E+01 -2.5511659911490565E+01 + -2.5510966035965339E+01 -2.5510260193024568E+01 -2.5509542176866677E+01 + -2.5508811778161473E+01 -2.5508068783990893E+01 -2.5507312977786786E+01 + -2.5506544139269987E+01 -2.5505762044385811E+01 -2.5504966465240379E+01 + -2.5504157170035075E+01 -2.5503333922999975E+01 -2.5502496484326098E+01 + -2.5501644610096442E+01 -2.5500778052216393E+01 -2.5499896558342694E+01 + -2.5498999871810419E+01 -2.5498087731559970E+01 -2.5497159872062401E+01 + -2.5496216023242244E+01 -2.5495255910402147E+01 -2.5494279254142551E+01 + -2.5493285770282249E+01 -2.5492275169777525E+01 -2.5491247158638402E+01 + -2.5490201437846139E+01 -2.5489137703266309E+01 -2.5488055645562955E+01 + -2.5486954950109816E+01 -2.5485835296900273E+01 -2.5484696360456773E+01 + -2.5483537809736447E+01 -2.5482359308038912E+01 -2.5481160512908616E+01 + -2.5479941076037722E+01 -2.5478700643166793E+01 -2.5477438853984452E+01 + -2.5476155342024040E+01 -2.5474849734559974E+01 -2.5473521652501368E+01 + -2.5472170710284221E+01 -2.5470796515762611E+01 -2.5469398670096396E+01 + -2.5467976767638241E+01 -2.5466530395818825E+01 -2.5465059135029357E+01 + -2.5463562558503476E+01 -2.5462040232195005E+01 -2.5460491714656193E+01 + -2.5458916556911909E+01 -2.5457314302333035E+01 -2.5455684486508090E+01 + -2.5454026637109880E+01 -2.5452340273764218E+01 -2.5450624907913024E+01 + -2.5448880042677072E+01 -2.5447105172715293E+01 -2.5445299784083240E+01 + -2.5443463354087037E+01 -2.5441595351137398E+01 -2.5439695234599178E+01 + -2.5437762454640293E+01 -2.5435796452075781E+01 -2.5433796658212337E+01 + -2.5431762494687565E+01 -2.5429693373308581E+01 -2.5427588695885692E+01 + -2.5425447854067279E+01 -2.5423270229166732E+01 -2.5421055191991588E+01 + -2.5418802102666728E+01 -2.5416510310455241E+01 -2.5414179153577450E+01 + -2.5411807959026543E+01 -2.5409396042380401E+01 -2.5406942707610732E+01 + -2.5404447246890797E+01 -2.5401908940396993E+01 -2.5399327056110092E+01 + -2.5396700849611349E+01 -2.5394029563875986E+01 -2.5391312429064733E+01 + -2.5388548662308764E+01 -2.5385737467494231E+01 -2.5382878035042580E+01 + -2.5379969541686460E+01 -2.5377011150242360E+01 -2.5374002009381119E+01 + -2.5370941253392257E+01 -2.5367828001947000E+01 -2.5364661359855027E+01 + -2.5361440416820638E+01 -2.5358164247191912E+01 -2.5354831909707514E+01 + -2.5351442447239240E+01 -2.5347994886530682E+01 -2.5344488237931195E+01 + -2.5340921495126903E+01 -2.5337293634865507E+01 -2.5333603616679191E+01 + -2.5329850382601045E+01 -2.5326032856878761E+01 -2.5322149945683201E+01 + -2.5318200536811577E+01 -2.5314183499387763E+01 -2.5310097683556599E+01 + -2.5305941920174533E+01 -2.5301715020494544E+01 -2.5297415775846943E+01 + -2.5293042957314945E+01 -2.5288595315405022E+01 -2.5284071579713459E+01 + -2.5279470458586477E+01 -2.5274790638775567E+01 -2.5270030785088153E+01 + -2.5265189540032470E+01 -2.5260265523457505E+01 -2.5255257332186602E+01 + -2.5250163539647623E+01 -2.5244982695495107E+01 -2.5239713325228045E+01 + -2.5234353929803270E+01 -2.5228902985239820E+01 -2.5223358942221520E+01 + -2.5217720225690208E+01 -2.5211985234435147E+01 -2.5206152340675853E+01 + -2.5200219889639136E+01 -2.5194186199128922E+01 -2.5188049559091198E+01 + -2.5181808231172688E+01 -2.5175460448271579E+01 -2.5169004414084380E+01 + -2.5162438302643963E+01 -2.5155760257852346E+01 -2.5148968393007351E+01 + -2.5142060790320688E+01 -2.5135035500432050E+01 -2.5127890541914173E+01 + -2.5120623900771598E+01 -2.5113233529933900E+01 -2.5105717348740111E+01 + -2.5098073242416824E+01 -2.5090299061550411E+01 -2.5082392621550628E+01 + -2.5074351702106398E+01 -2.5066174046637695E+01 -2.5057857361735721E+01 + -2.5049399316600169E+01 -2.5040797542464524E+01 -2.5032049632018818E+01 + -2.5023153138820831E+01 -2.5014105576701450E+01 -2.5004904419163935E+01 + -2.4995547098772086E+01 -2.4986031006534080E+01 -2.4976353491276921E+01 + -2.4966511859013995E+01 -2.4956503372303501E+01 -2.4946325249601554E+01 + -2.4935974664604903E+01 -2.4925448745587886E+01 -2.4914744574730069E+01 + -2.4903859187437043E+01 -2.4892789571652969E+01 -2.4881532667165793E+01 + -2.4870085364903307E+01 -2.4858444506222703E+01 -2.4846606882192216E+01 + -2.4834569232863988E+01 -2.4822328246539527E+01 -2.4809880559028137E+01 + -2.4797222752896975E+01 -2.4784351356712659E+01 -2.4771262844276702E+01 + -2.4757953633852221E+01 -2.4744420087382711E+01 -2.4730658509705762E+01 + -2.4716665147755201E+01 -2.4702436189759911E+01 -2.4687967764432862E+01 + -2.4673255940153403E+01 -2.4658296724143113E+01 -2.4643086061633795E+01 + -2.4627619835029691E+01 -2.4611893863060807E+01 -2.4595903899933063E+01 + -2.4579645634467241E+01 -2.4563114689237047E+01 -2.4546306619695702E+01 + -2.4529216913300971E+01 -2.4511840988631103E+01 -2.4494174194497713E+01 + -2.4476211809050884E+01 -2.4457949038881580E+01 -2.4439381018116830E+01 + -2.4420502807513028E+01 -2.4401309393540878E+01 -2.4381795687471143E+01 + -2.4361956524452573E+01 -2.4341786662588248E+01 -2.4321280782008905E+01 + -2.4300433483943163E+01 -2.4279239289785277E+01 -2.4257692640160641E+01 + -2.4235787893991088E+01 -2.4213519327557538E+01 -2.4190881133563376E+01 + -2.4167867420195996E+01 -2.4144472210191243E+01 -2.4120689439895376E+01 + -2.4096512958332490E+01 -2.4071936526269912E+01 -2.4046953815289729E+01 + -2.4021558406861338E+01 -2.3995743791419315E+01 -2.3969503367444752E+01 + -2.3942830440553141E+01 -2.3915718222587635E+01 -2.3888159830720568E+01 + -2.3860148286560097E+01 -2.3831676515268217E+01 -2.3802737344687333E+01 + -2.3773323504477091E+01 -2.3743427625262829E+01 -2.3713042237796692E+01 + -2.3682159772131669E+01 -2.3650772556811866E+01 -2.3618872818076355E+01 + -2.3586452679081148E+01 -2.3553504159140186E+01 -2.3520019172984266E+01 + -2.3485989530041916E+01 -2.3451406933741552E+01 -2.3416262980838454E+01 + -2.3380549160765401E+01 -2.3344256855011871E+01 -2.3307377336529285E+01 + -2.3269901769168008E+01 -2.3231821207145764E+01 -2.3193126594548236E+01 + -2.3153808764866138E+01 -2.3113858440569359E+01 -2.3073266232720407E+01 + -2.3032022640627918E+01 -2.2990118051545146E+01 -2.2947542740412857E+01 + -2.2904286869650786E+01 -2.2860340488998968E+01 -2.2815693535411015E+01 + -2.2770335833003720E+01 -2.2724257093062736E+01 -2.2677446914111865E+01 + -2.2629894782039713E+01 -2.2581590070298748E+01 -2.2532522040168971E+01 + -2.2482679841094285E+01 -2.2432052511095197E+01 -2.2380628977260077E+01 + -2.2328398056313908E+01 -2.2275348455278067E+01 -2.2221468772214685E+01 + -2.2166747497063405E+01 -2.2111173012576483E+01 -2.2054733595350644E+01 + -2.1997417416965309E+01 -2.1939212545226304E+01 -2.1880106945523757E+01 + -2.1820088482305223E+01 -2.1759144920669176E+01 -2.1697263928084272E+01 + -2.1634433076240182E+01 -2.1570639843029916E+01 -2.1505871614675169E+01 + -2.1440115687994641E+01 -2.1373359272822245E+01 -2.1305589494582517E+01 + -2.1236793397024943E+01 -2.1166957945124985E+01 -2.1096070028158515E+01 + -2.1024116462952730E+01 -2.0951083997322655E+01 -2.0876959313695469E+01 + -2.0801729032934663E+01 -2.0725379718364358E+01 -2.0647897880003601E+01 + -2.0569269979019214E+01 -2.0489482432397768E+01 -2.0408521617851914E+01 + -2.0326373878960208E+01 -2.0243025530554196E+01 -2.0158462864356405E+01 + -2.0072672154877594E+01 -1.9985639665581541E+01 -1.9897351655325377E+01 + -1.9807794385082563E+01 -1.9716954124956558E+01 -1.9624817161494050E+01 + -1.9531369805307538E+01 -1.9436598399010855E+01 -1.9340489325483137E+01 + -1.9243029016462568E+01 -1.9144203961485683E+01 -1.9044000717175567E+01 + -1.8942405916890536E+01 -1.8839406280744193E+01 -1.8734988625999222E+01 + -1.8629139877853486E+01 -1.8521847080620127E+01 -1.8413097409314467E+01 + -1.8302878181655931E+01 -1.8191176870496061E+01 -1.8077981116678423E+01 + -1.7963278742344432E+01 -1.7847057764690582E+01 -1.7729306410187810E+01 + -1.7610013129273479E+01 -1.7489166611522421E+01 -1.7366755801309441E+01 + -1.7242769913969155E+01 -1.7117198452463953E+01 -1.6990031224569208E+01 + -1.6861258360580674E+01 -1.6730870331558776E+01 -1.6598857968111716E+01 + -1.6465212479727331E+01 -1.6329925474664002E+01 -1.6192988980402887E+01 + -1.6054395464672726E+01 -1.5914137857050624E+01 -1.5772209571147272E+01 + -1.5628604527379373E+01 -1.5483317176337271E+01 -1.5336342522751554E+01 + -1.5187676150058577E+01 -1.5037314245575899E+01 -1.4885253626282434E+01 + -1.4731491765209988E+01 -1.4576026818444829E+01 -1.4418857652741108E+01 + -1.4259983873743247E+01 -1.4099405854817499E+01 -1.3937124766488838E+01 + -1.3773142606479018E+01 -1.3607462230341556E+01 -1.3440087382686519E+01 + -1.3271022728987576E+01 -1.3100273887962539E+01 -1.2927847464515439E+01 + -1.2753751083231011E+01 -1.2577993422403425E+01 -1.2400584248587370E+01 + -1.2221534451652570E+01 -1.2040856080322166E+01 -1.1858562378173740E+01 + -1.1674667820080375E+01 -1.1489188149064644E+01 -1.1302140413538984E+01 + -1.1113543004900126E+01 -1.0923415695446584E+01 -1.0731779676582297E+01 + -1.0538657597268426E+01 -1.0344073602681354E+01 -1.0148053373034001E+01 + -9.9506241625119820E+00 -9.7518148382733951E+00 -9.5516559194607975E+00 + -9.3501796161638282E+00 -9.1474198682767884E+00 -8.9434123841805793E+00 + -8.7381946791852823E+00 -8.5318061136580923E+00 -8.3242879307607307E+00 + -8.1156832937156480E+00 -7.9060373225157710E+00 -7.6953971299881294E+00 + -7.4838118571171677E+00 -7.2713327075291119E+00 -7.0580129810333299E+00 + -6.8439081061136795E+00 -6.6290756712537258E+00 -6.4135754549797017E+00 + -6.1974694544976607E+00 -5.9808219127922291E+00 -5.7636993440582129E+00 + -5.5461705573207745E+00 -5.3283066781010255E+00 -5.1101811679765348E+00 + -4.8918698418797977E+00 -4.6734508829735955E+00 -4.4550048549349910E+00 + -4.2366147114760766E+00 -4.0183658029223412E+00 -3.8003458796648344E+00 + -3.5826450922952522E+00 -3.3653559882320465E+00 -3.1485735046330681E+00 + -2.9323949573919390E+00 -2.7169200260066275E+00 -2.5022507341031415E+00 + -2.2884914253950788E+00 -2.0757487348532799E+00 -1.8641315548539914E+00 + -1.6537509960741692E+00 -1.4447203428931181E+00 -1.2371550030602045E+00 + -1.0311724513827154E+00 -8.2689216718601177E-01 -6.2443556529341171E-01 + -4.2392592027514736E-01 -2.2548828370968588E-01 -2.9249394199617144E-02 + 1.6466242011246734E-01 3.5611734678772883E-01 5.4498420235200173E-01 + 7.3113055383047088E-01 9.1442284881072078E-01 1.0947265542895046E+00 + 1.2719063045518513E+00 1.4458260583309639E+00 1.6163492654915681E+00 + 1.7833390434747223E+00 1.9466583637362840E+00 2.1061702484046578E+00 + 2.2617379773760371E+00 2.4132253060566997E+00 2.5604966939522584E+00 + 2.7034175442945547E+00 2.8418544548846825E+00 2.9756754803169838E+00 + 3.1047504057397237E+00 3.2289510322874428E+00 3.3481514743102965E+00 + 3.4622284685045237E+00 3.5710616950323062E+00 3.6745341106994407E+00 + 3.7725322942378989E+00 3.8649468037195942E+00 3.9516725461025515E+00 + 4.0326091588867410E+00 4.1076614038292991E+00 4.1767395726410870E+00 + 4.2397599045542780E+00 4.2966450156209879E+00 4.3473243395647021E+00 + 4.3917345799717928E+00 4.4298201735679070E+00 4.4615337642824615E+00 + 4.4868366877572701E+00 4.5056994659038754E+00 4.5181023110611536E+00 + 4.5240356392429053E+00 4.5235005919020379E+00 4.5165095655639131E+00 + 4.5030867486057300E+00 4.4832686643693052E+00 4.4571047197006166E+00 + 4.4246577579021737E+00 4.3860046149671277E+00 4.3412366778307305E+00 + 4.2904604432297422E+00 4.2337980755955673E+00 4.1713879622210746E+00 + 4.1033852637383141E+00 4.0299624577099467E+00 3.9513098728775162E+00 + 3.8676362113201375E+00 3.7791690554436359E+00 3.6861553563556333E+00 + 3.5888618997617039E+00 3.4875757450529896E+00 3.3826046327275936E+00 + 3.2742773546960513E+00 3.1629440813562137E+00 3.0489766385738166E+00 + 2.9327687268642566E+00 2.8147360741260830E+00 2.6953004196477632E+00 + 2.5718459194355638E+00 2.4420932260651793E+00 2.3067973994556819E+00 + 2.1668351115781377E+00 2.0230890860753497E+00 1.8764709677199534E+00 + 1.7279225580360349E+00 1.5784171698698146E+00 1.4289610498462231E+00 + 1.2805950247174229E+00 1.1343960305162615E+00 9.9147897918542072E-01 + 8.5299864320514007E-01 7.2015148653897654E-01 5.9417782046136880E-01 + 4.7636374158845229E-01 3.6804338485106042E-01 2.7060096871768086E-01 + 1.8547300682758772E-01 1.1415041455511796E-01 5.8180446404500145E-02 + 1.9168747502211699E-02 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 6.6647107015194856E-04 3.1850112069562800E-03 5.2262561204470433E-03 + 6.9920250075159633E-03 8.6042805905860702E-03 1.0105129117611703E-02 + 1.1538053846551559E-02 1.2915474118382854E-02 1.4246751215343514E-02 + 1.5540801889763936E-02 1.6803746075382337E-02 1.8040283842455290E-02 + 1.9254204360173686E-02 2.0448559469456173E-02 2.1625863250512582E-02 + 2.2788221112493161E-02 2.3937417881680568E-02 2.5074984245905995E-02 + 2.6202246164212076E-02 2.7320362451016173E-02 2.8430353905091400E-02 + 2.9533126177913788E-02 3.0629487963999200E-02 3.1720165637925728E-02 + 3.2805815154819576E-02 3.3887031817807868E-02 3.4964358364109091E-02 + 3.6038291712230504E-02 3.7109288632993231E-02 3.8177770548091322E-02 + 3.9244127615702222E-02 4.0308722229205736E-02 4.1371892029473487E-02 + 4.2433952511424060E-02 4.3495199290136448E-02 4.4555910079716356E-02 + 4.5616346428528909E-02 4.6676755246773789E-02 4.7737370156243839E-02 + 4.8798412687153646E-02 4.9860093342895144E-02 5.0922612550283422E-02 + 5.1986161510149662E-02 5.3050922960900658E-02 5.4117071865809246E-02 + 5.5184776033250699E-02 5.6254196677805415E-02 5.7325488929056541E-02 + 5.8398802293992177E-02 5.9474281078141567E-02 6.0552064769910950E-02 + 6.1632288392020881E-02 6.2715082823460111E-02 6.3800575094956860E-02 + 6.4888888660610031E-02 6.5980143648012288E-02 6.7074457088930756E-02 + 6.8171943132376706E-02 6.9272713241693845E-02 7.0376876377117620E-02 + 7.1484539165102862E-02 7.2595806055581927E-02 7.3710779468195278E-02 + 7.4829559928431363E-02 7.5952246194520262E-02 7.7078935375842345E-02 + 7.8209723043541055E-02 7.9344703333962666E-02 8.0483969045490517E-02 + 8.1627611729285912E-02 8.2775721774405980E-02 8.3928388487723146E-02 + 8.5085700169037631E-02 8.6247744181737515E-02 8.7414607019333679E-02 + 8.8586374368167520E-02 8.9763131166566063E-02 9.0944961660696585E-02 + 9.2131949457352105E-02 9.3324177573881228E-02 9.4521728485459228E-02 + 9.5724684169881585E-02 9.6933126150047538E-02 9.8147135534288318E-02 + 9.9366793054683419E-02 1.0059217910349769E-01 1.0182337376786127E-01 + 1.0306045686280703E-01 1.0430350796277009E-01 1.0555260643164854E-01 + 1.0680783145151507E-01 1.0806926205006515E-01 1.0933697712687947E-01 + 1.1061105547857450E-01 1.1189157582290837E-01 1.1317861682190627E-01 + 1.1447225710406360E-01 1.1577257528568273E-01 1.1707964999139360E-01 + 1.1839355987390711E-01 1.1971438363304532E-01 1.2104220003408984E-01 + 1.2237708792548856E-01 1.2371912625595535E-01 1.2506839409099907E-01 + 1.2642497062891081E-01 1.2778893521624235E-01 1.2916036736280076E-01 + 1.3053934675618717E-01 1.3192595327590395E-01 1.3332026700705193E-01 + 1.3472236825364076E-01 1.3613233755153187E-01 1.3755025568103244E-01 + 1.3897620367915930E-01 1.4041026285158842E-01 1.4185251478430622E-01 + 1.4330304135497732E-01 1.4476192474404245E-01 1.4622924744555957E-01 + 1.4770509227780082E-01 1.4918954239361684E-01 1.5068268129057824E-01 + 1.5218459282090627E-01 1.5369536120120092E-01 1.5521507102197646E-01 + 1.5674380725701231E-01 1.5828165527252810E-01 1.5982870083618991E-01 + 1.6138503012595529E-01 1.6295072973876398E-01 1.6452588669908075E-01 + 1.6611058846729604E-01 1.6770492294799083E-01 1.6930897849807083E-01 + 1.7092284393477508E-01 1.7254660854356432E-01 1.7418036208589349E-01 + 1.7582419480687200E-01 1.7747819744281781E-01 1.7914246122870672E-01 + 1.8081707790552334E-01 1.8250213972751475E-01 1.8419773946935192E-01 + 1.8590397043320112E-01 1.8762092645570880E-01 1.8934870191490236E-01 + 1.9108739173701014E-01 1.9283709140320224E-01 1.9459789695625515E-01 + 1.9636990500714258E-01 1.9815321274155442E-01 1.9994791792634525E-01 + 2.0175411891591555E-01 2.0357191465852650E-01 2.0540140470255003E-01 + 2.0724268920265621E-01 2.0909586892593920E-01 2.1096104525798318E-01 + 2.1283832020886945E-01 2.1472779641912620E-01 2.1662957716562176E-01 + 2.1854376636740258E-01 2.2047046859147765E-01 2.2240978905854805E-01 + 2.2436183364868570E-01 2.2632670890695888E-01 2.2830452204900786E-01 + 2.3029538096656915E-01 2.3229939423295118E-01 2.3431667110845944E-01 + 2.3634732154577370E-01 2.3839145619527621E-01 2.4044918641033236E-01 + 2.4252062425252380E-01 2.4460588249683313E-01 2.4670507463678204E-01 + 2.4881831488952250E-01 2.5094571820088024E-01 2.5308740025035148E-01 + 2.5524347745605330E-01 2.5741406697962604E-01 2.5959928673108928E-01 + 2.6179925537364984E-01 2.6401409232846385E-01 2.6624391777934908E-01 + 2.6848885267745148E-01 2.7074901874586199E-01 2.7302453848418567E-01 + 2.7531553517306173E-01 2.7762213287863408E-01 2.7994445645697252E-01 + 2.8228263155844263E-01 2.8463678463202646E-01 2.8700704292959045E-01 + 2.8939353451010191E-01 2.9179638824379278E-01 2.9421573381627020E-01 + 2.9665170173257260E-01 2.9910442332117165E-01 3.0157403073791728E-01 + 3.0406065696992829E-01 3.0656443583942350E-01 3.0908550200749657E-01 + 3.1162399097782917E-01 3.1418003910034703E-01 3.1675378357481260E-01 + 3.1934536245435607E-01 3.2195491464894344E-01 3.2458257992877920E-01 + 3.2722849892764488E-01 3.2989281314616931E-01 3.3257566495503182E-01 + 3.3527719759809549E-01 3.3799755519546992E-01 3.4073688274650282E-01 + 3.4349532613269684E-01 3.4627303212055305E-01 3.4907014836433686E-01 + 3.5188682340876720E-01 3.5472320669162616E-01 3.5757944854628776E-01 + 3.6045570020416440E-01 3.6335211379706878E-01 3.6626884235949092E-01 + 3.6920603983078731E-01 3.7216386105728000E-01 3.7514246179426619E-01 + 3.7814199870793397E-01 3.8116262937718315E-01 3.8420451229535046E-01 + 3.8726780687183437E-01 3.9035267343362140E-01 3.9345927322670804E-01 + 3.9658776841741855E-01 3.9973832209361593E-01 4.0291109826580396E-01 + 4.0610626186811721E-01 4.0932397875919907E-01 4.1256441572296099E-01 + 4.1582774046922766E-01 4.1911412163425776E-01 4.2242372878114492E-01 + 4.2575673240008965E-01 4.2911330390854752E-01 4.3249361565124278E-01 + 4.3589784090005151E-01 4.3932615385374729E-01 4.4277872963761017E-01 + 4.4625574430289122E-01 4.4975737482613676E-01 4.5328379910836192E-01 + 4.5683519597407801E-01 4.6041174517016303E-01 4.6401362736458002E-01 + 4.6764102414493319E-01 4.7129411801686538E-01 4.7497309240228719E-01 + 4.7867813163743950E-01 4.8240942097078438E-01 4.8616714656071908E-01 + 4.8995149547311473E-01 4.9376265567866989E-01 4.9760081605008138E-01 + 5.0146616635902430E-01 5.0535889727294148E-01 5.0927920035163476E-01 + 5.1322726804365848E-01 5.1720329368250650E-01 5.2120747148259639E-01 + 5.2523999653503572E-01 5.2930106480318084E-01 5.3339087311796773E-01 + 5.3750961917302775E-01 5.4165750151956926E-01 5.4583471956103180E-01 + 5.5004147354750033E-01 5.5427796456988510E-01 5.5854439455384886E-01 + 5.6284096625349145E-01 5.6716788324477740E-01 5.7152534991870574E-01 + 5.7591357147421718E-01 5.8033275391083339E-01 5.8478310402102318E-01 + 5.8926482938229263E-01 5.9377813834899051E-01 5.9832324004382909E-01 + 6.0290034434911144E-01 6.0750966189765876E-01 6.1215140406344049E-01 + 6.1682578295188972E-01 6.2153301138991113E-01 6.2627330291556393E-01 + 6.3104687176742769E-01 6.3585393287363057E-01 6.4069470184054866E-01 + 6.4556939494115750E-01 6.5047822910304343E-01 6.5542142189605401E-01 + 6.6039919151959647E-01 6.6541175678956732E-01 6.7045933712490979E-01 + 6.7554215253379790E-01 6.8066042359943157E-01 6.8581437146544688E-01 + 6.9100421782092492E-01 6.9623018488500132E-01 7.0149249539106429E-01 + 7.0679137257053593E-01 7.1212704013623196E-01 7.1749972226528991E-01 + 7.2290964358166077E-01 7.2835702913815770E-01 7.3384210439805153E-01 + 7.3936509521621141E-01 7.4492622781977469E-01 7.5052572878835011E-01 + 7.5616382503373447E-01 7.6184074377914823E-01 7.6755671253796776E-01 + 7.7331195909196082E-01 7.7910671146900956E-01 7.8494119792031036E-01 + 7.9081564689705475E-01 7.9673028702656723E-01 8.0268534708790662E-01 + 8.0868105598691076E-01 8.1471764273068814E-01 8.2079533640153346E-01 + 8.2691436613027580E-01 8.3307496106903223E-01 8.3927735036337847E-01 + 8.4552176312390592E-01 8.5180842839717763E-01 8.5813757513605649E-01 + 8.6450943216941012E-01 8.7092422817117288E-01 8.7738219162876396E-01 + 8.8388355081084680E-01 8.9042853373442510E-01 8.9701736813125843E-01 + 9.0365028141359949E-01 9.1032750063923240E-01 9.1704925247580815E-01 + 9.2381576316446690E-01 9.3062725848273409E-01 9.3748396370668863E-01 + 9.4438610357237895E-01 9.5133390223649339E-01 9.5832758323626199E-01 + 9.6536736944858703E-01 9.7245348304838475E-01 9.7958614546614053E-01 + 9.8676557734464820E-01 9.9399199849494446E-01 1.0012656278514069E+00 + 1.0085866834260249E+00 1.0159553822618137E+00 1.0233719403853772E+00 + 1.0308365727585960E+00 1.0383494932294401E+00 1.0459109144818861E+00 + 1.0535210479849344E+00 1.0611801039407127E+00 1.0688882912316540E+00 + 1.0766458173667404E+00 1.0844528884267979E+00 1.0923097090088361E+00 + 1.1002164821694116E+00 1.1081734093670208E+00 1.1161806904034879E+00 + 1.1242385233643599E+00 1.1323471045582776E+00 1.1405066284553249E+00 + 1.1487172876243363E+00 1.1569792726691566E+00 1.1652927721638360E+00 + 1.1736579725867546E+00 1.1820750582536557E+00 1.1905442112495932E+00 + 1.1990656113597555E+00 1.2076394359991847E+00 1.2162658601413492E+00 + 1.2249450562455855E+00 1.2336771941833726E+00 1.2424624411634488E+00 + 1.2513009616557464E+00 1.2601929173141320E+00 1.2691384668979526E+00 + 1.2781377661923590E+00 1.2871909679274138E+00 1.2962982216959518E+00 + 1.3054596738702045E+00 1.3146754675171510E+00 1.3239457423126142E+00 + 1.3332706344540568E+00 1.3426502765721005E+00 1.3520847976407275E+00 + 1.3615743228861772E+00 1.3711189736945049E+00 1.3807188675178153E+00 + 1.3903741177791358E+00 1.4000848337759417E+00 1.4098511205823028E+00 + 1.4196730789496559E+00 1.4295508052061847E+00 1.4394843911548010E+00 + 1.4494739239697132E+00 1.4595194860915768E+00 1.4696211551212139E+00 + 1.4797790037118963E+00 1.4899930994601742E+00 1.5002635047952531E+00 + 1.5105902768669037E+00 1.5209734674318893E+00 1.5314131227389221E+00 + 1.5419092834121146E+00 1.5524619843329421E+00 1.5630712545206906E+00 + 1.5737371170113947E+00 1.5844595887352466E+00 1.5952386803924865E+00 + 1.6060743963277453E+00 1.6169667344028600E+00 1.6279156858681250E+00 + 1.6389212352320064E+00 1.6499833601292868E+00 1.6611020311876485E+00 + 1.6722772118927014E+00 1.6835088584514148E+00 1.6947969196540020E+00 + 1.7061413367342035E+00 1.7175420432280064E+00 1.7289989648307660E+00 + 1.7405120192527526E+00 1.7520811160731067E+00 1.7637061565922079E+00 + 1.7753870336824555E+00 1.7871236316374655E+00 1.7989158260196714E+00 + 1.8107634835063531E+00 1.8226664617340693E+00 1.8346246091415197E+00 + 1.8466377648108205E+00 1.8587057583072173E+00 1.8708284095172134E+00 + 1.8830055284851528E+00 1.8952369152482260E+00 1.9075223596699438E+00 + 1.9198616412720484E+00 1.9322545290649014E+00 1.9447007813763428E+00 + 1.9572001456790264E+00 1.9697523584162602E+00 1.9823571448263384E+00 + 1.9950142187654030E+00 2.0077232825288291E+00 2.0204840266711561E+00 + 2.0332961298245804E+00 2.0461592585160253E+00 2.0590730669827995E+00 + 2.0720371969868747E+00 2.0850512776277825E+00 2.0981149251541797E+00 + 2.1112277427740649E+00 2.1243893204637092E+00 2.1375992347752923E+00 + 2.1508570486432919E+00 2.1641623111896333E+00 2.1775145575276467E+00 + 2.1909133085648400E+00 2.2043580708045352E+00 2.2178483361463850E+00 + 2.2313835816858223E+00 2.2449632695124402E+00 2.2585868465073835E+00 + 2.2722537441397539E+00 2.2859633782620898E+00 2.2997151489049346E+00 + 2.3135084400705637E+00 2.3273426195258953E+00 2.3412170385946438E+00 + 2.3551310319487322E+00 2.3690839173990530E+00 2.3830749956855954E+00 + 2.3971035502670115E+00 2.4111688471096460E+00 2.4252701344761198E+00 + 2.4394066427135028E+00 2.4535775840411409E+00 2.4677821523381831E+00 + 2.4820195229309081E+00 2.4962888523798661E+00 2.5105892782669463E+00 + 2.5249199189824174E+00 2.5392798735119961E+00 2.5536682212240631E+00 + 2.5680840216570440E+00 2.5825263143070956E+00 2.5969941184161049E+00 + 2.6114864327601484E+00 2.6260022354384538E+00 2.6405404836629800E+00 + 2.6551001135486603E+00 2.6696800399044562E+00 2.6842791560252719E+00 + 2.6988963334848508E+00 2.7135304219297227E+00 2.7281802488743470E+00 + 2.7428446194975100E+00 2.7575223164401268E+00 2.7722120996044985E+00 + 2.7869127059552028E+00 2.8016228493216846E+00 2.8163412202026761E+00 + 2.8310664855725904E+00 2.8457972886899490E+00 2.8605322489080494E+00 + 2.8752699614879345E+00 2.8900089974138417E+00 2.9047479032112147E+00 + 2.9194852007674688E+00 2.9342193871556179E+00 2.9489489344609181E+00 + 2.9636722896106420E+00 2.9783878742071987E+00 2.9930940843646763E+00 + 3.0077892905490251E+00 3.0224718374219770E+00 3.0371400436889258E+00 + 3.0517922019508865E+00 3.0664265785607228E+00 3.0810414134837933E+00 + 3.0956349201632194E+00 3.1102052853899194E+00 3.1247506691776166E+00 + 3.1392692046429831E+00 3.1537589978911016E+00 3.1682181279064703E+00 + 3.1826446464496927E+00 3.1970365779600973E+00 3.2113919194644236E+00 + 3.2257086404918551E+00 3.2399846829955270E+00 3.2542179612807782E+00 + 3.2684063619403005E+00 3.2825477437964508E+00 3.2966399378509057E+00 + 3.3106807472419182E+00 3.3246679472093281E+00 3.3385992850676391E+00 + 3.3524724801873242E+00 3.3662852239846357E+00 3.3800351799200961E+00 + 3.3937199835059850E+00 3.4073372423229880E+00 3.4208845360463012E+00 + 3.4343594164814069E+00 3.4477594076097682E+00 3.4610820056447142E+00 + 3.4743246790977471E+00 3.4874848688555398E+00 3.5005599882678546E+00 + 3.5135474232466786E+00 3.5264445323768134E+00 3.5392486470381948E+00 + 3.5519570715401763E+00 3.5645670832680967E+00 3.5770759328423507E+00 + 3.5894808442902808E+00 3.6017790152310933E+00 3.6139676170741573E+00 + 3.6260437952308973E+00 3.6380046693405950E+00 3.6498473335103361E+00 + 3.6615688565694375E+00 3.6731662823385900E+00 3.6846366299140119E+00 + 3.6959768939669218E+00 3.7071840450585465E+00 3.7182550299710337E+00 + 3.7291867720544878E+00 3.7399761715904583E+00 3.7506201061721112E+00 + 3.7611154311014405E+00 3.7714589798037501E+00 3.7816475642597189E+00 + 3.7916779754553009E+00 3.8015469838498079E+00 3.8112513398623902E+00 + 3.8207877743772505E+00 3.8301529992678285E+00 3.8393437079402850E+00 + 3.8483565758965210E+00 3.8571882613170554E+00 3.8658354056639714E+00 + 3.8742946343042735E+00 3.8825625571538858E+00 3.8906357693425617E+00 + 3.8985108518999794E+00 3.9061843724632452E+00 3.9136528860061124E+00 + 3.9209129355901062E+00 3.9279610531378455E+00 3.9347937602287071E+00 + 3.9414075689171639E+00 3.9477989825739050E+00 3.9539644967500260E+00 + 3.9599006000643659E+00 3.9656037751142832E+00 3.9710704994099300E+00 + 3.9762972463322139E+00 3.9812804861145232E+00 3.9860166868483486E+00 + 3.9905023155128481E+00 3.9947338390284028E+00 3.9987077253341665E+00 + 4.0024204444896085E+00 4.0058684698000020E+00 4.0090482789657322E+00 + 4.0119563552553732E+00 4.0145891887022644E+00 4.0169432773244766E+00 + 4.0190151283678590E+00 4.0208012595718916E+00 4.0222982004579633E+00 + 4.0235024936397314E+00 4.0244106961550967E+00 4.0250193808193053E+00 + 4.0253251375986459E+00 4.0253245750041904E+00 4.0250143215049414E+00 + 4.0243910269597682E+00 4.0234513640674150E+00 4.0221920298339455E+00 + 4.0206097470568745E+00 4.0187012658253103E+00 4.0164633650353432E+00 + 4.0138928539200940E+00 4.0109865735936783E+00 4.0077413986085260E+00 + 4.0041542385254987E+00 4.0002220394962871E+00 3.9959417858577431E+00 + 3.9913105017377895E+00 3.9863252526727471E+00 3.9809831472359392E+00 + 3.9752813386776755E+00 3.9692170265767217E+00 3.9627874585035969E+00 + 3.9559899316960458E+00 3.9488217947473090E+00 3.9412804493078006E+00 + 3.9333633518009767E+00 3.9250680151542219E+00 3.9163920105457217E+00 + 3.9073329691682668E+00 3.8978885840110240E+00 3.8880566116602409E+00 + 3.8778348741199427E+00 3.8672212606535079E+00 3.8562137296470489E+00 + 3.8448103104953013E+00 3.8330091055107447E+00 3.8208082918564190E+00 + 3.8082061235027611E+00 3.7952009332086583E+00 3.7817911345265958E+00 + 3.7679752238317028E+00 3.7537517823741418E+00 3.7391194783541675E+00 + 3.7240770690188012E+00 3.7086234027789922E+00 3.6927574213457413E+00 + 3.6764781618834959E+00 3.6597847591788404E+00 3.6426764478223275E+00 + 3.6251525644010023E+00 3.6072125496990077E+00 3.5888559509034077E+00 + 3.5700824238122713E+00 3.5508917350418101E+00 3.5312837642293355E+00 + 3.5112585062285677E+00 3.4908160732939444E+00 3.4699566972503835E+00 + 3.4486807316450543E+00 3.4269886538777121E+00 3.4048810673062135E+00 + 3.3823587033239524E+00 3.3594224234060555E+00 3.3360732211213255E+00 + 3.3123122241070102E+00 3.2881406960037616E+00 3.2635600383481633E+00 + 3.2385717924204478E+00 3.2131776410451329E+00 3.1873794103424529E+00 + 3.1611790714285766E+00 3.1345787420627031E+00 3.1075806882391732E+00 + 3.0801873257228993E+00 3.0524012215263303E+00 3.0242250953263419E+00 + 2.9956618208193206E+00 2.9667144270128731E+00 2.9373860994524832E+00 + 2.9076801813814672E+00 2.8776001748326205E+00 2.8471497416498535E+00 + 2.8163327044382078E+00 2.7851530474405544E+00 2.7536149173393381E+00 + 2.7217226239816497E+00 2.6894806410260395E+00 2.6568936065093398E+00 + 2.6239663233319184E+00 2.5907037596596614E+00 2.5571110492411342E+00 + 2.5231934916382763E+00 2.4889565523690860E+00 2.4544058629606953E+00 + 2.4195472209113578E+00 2.3843865895598007E+00 2.3489300978604857E+00 + 2.3131840400632950E+00 2.2771548752962474E+00 2.2408492270498237E+00 + 2.2042738825615240E+00 2.1674357920993330E+00 2.1303420681427427E+00 + 2.0929999844600831E+00 2.0554169750808757E+00 2.0176006331620013E+00 + 1.9795587097464695E+00 1.9412991124136538E+00 1.9028299038198460E+00 + 1.8641593001280632E+00 1.8252956693260283E+00 1.7862475294313505E+00 + 1.7470235465829138E+00 1.7076325330175715E+00 1.6680834449312516E+00 + 1.6283853802236856E+00 1.5885475761259598E+00 1.5485794067102074E+00 + 1.5084903802807623E+00 1.4682901366462200E+00 1.4279884442718611E+00 + 1.3875951973120040E+00 1.3471204125219121E+00 1.3065742260489528E+00 + 1.2659668901028158E+00 1.2253087695046536E+00 1.1846103381151287E+00 + 1.1438821751414154E+00 1.1031349613233528E+00 1.0623794749990021E+00 + 1.0216265880500119E+00 9.8088726172728125E-01 9.4017254235755932E-01 + 8.9949355693172450E-01 8.5886150857562749E-01 8.1828767190450635E-01 + 7.7778338826214288E-01 7.3736006084604111E-01 6.9702914972008601E-01 + 6.5680216671625835E-01 6.1669067022716850E-01 5.7670625989129132E-01 + 5.3686057117296315E-01 4.9716526983934756E-01 4.5763204633672916E-01 + 4.1827261006866190E-01 3.7909868357863646E-01 3.4012199664009418E-01 + 3.0135428025675376E-01 2.6280726057637294E-01 2.2449265272119845E-01 + 1.8642215453850328E-01 1.4860744027473935E-01 1.1106015417697325E-01 + 7.3791904025397592E-02 3.6814254600846190E-02 1.3872109137446912E-04 + -3.6223237557890968E-02 -7.2260225347280063E-02 -1.0796091597296406E-01 + -1.4331405962048974E-01 -1.7830848979654312E-01 -2.1293313019377322E-01 + -2.4717700158321637E-01 -2.8102922872852304E-01 -3.1447904731578485E-01 + -3.4751581089230471E-01 -3.8012899780710602E-01 -4.1230821814537333E-01 + -4.4404322064832069E-01 -4.7532389960922461E-01 -5.0614030173552260E-01 + -5.3648263296599474E-01 -5.6634126523111905E-01 -5.9570674314377736E-01 + -6.2456979060658646E-01 -6.5292131732131797E-01 -6.8075242518517198E-01 + -7.0805441455820051E-01 -7.3481879038590847E-01 -7.6103726816116946E-01 + -7.8670177971005373E-01 -8.1180447878711171E-01 -8.3633774646707759E-01 + -8.6029419632194615E-01 -8.8366667937491983E-01 -9.0644828882581518E-01 + -9.2863236454618003E-01 -9.5021249734647206E-01 -9.7118253302218149E-01 + -9.9153657619055091E-01 -1.0112689939344999E+00 -1.0303744192751951E+00 + -1.0488477544993104E+00 -1.0666841743710318E+00 -1.0838791292620615E+00 + -1.1004283482348516E+00 -1.1163278421147342E+00 -1.1315739065851709E+00 + -1.1461631253367288E+00 -1.1600923732943911E+00 -1.1733588199394562E+00 + -1.1859599327317150E+00 -1.1978934806253927E+00 -1.2091575376590549E+00 + -1.2197504865864373E+00 -1.2296710225029273E+00 -1.2389181564123055E+00 + -1.2474912186713829E+00 -1.2553898622468629E+00 -1.2626140657195326E+00 + -1.2691641359755066E+00 -1.2750407105322334E+00 -1.2802447594573643E+00 + -1.2847775868504634E+00 -1.2886408318696896E+00 -1.2918364692971902E+00 + -1.2943668096470808E+00 -1.2962344988281882E+00 -1.2974425173798185E+00 + -1.2979941793028358E+00 -1.2978931305102825E+00 -1.2971433469221036E+00 + -1.2957491322274890E+00 -1.2937151153364095E+00 -1.2910462475392779E+00 + -1.2877477993907758E+00 -1.2838253573309182E+00 -1.2792848200535241E+00 + -1.2741323946297152E+00 -1.2683745923917453E+00 -1.2620182245806653E+00 + -1.2550703977598496E+00 -1.2475385089954714E+00 -1.2394302408043814E+00 + -1.2307535558696823E+00 -1.2215166915243851E+00 -1.2117281540040186E+00 + -1.2013967124696718E+00 -1.1905313928038475E+00 -1.1791414711824371E+00 + -1.1672364674272417E+00 -1.1548261381445044E+00 -1.1419204696560350E+00 + -1.1285296707305275E+00 -1.1146641651236617E+00 -1.1003345839364369E+00 + -1.0855517578019651E+00 -1.0703267089116186E+00 -1.0546706428919324E+00 + -1.0385949405441219E+00 -1.0221111494583452E+00 -1.0052309755150579E+00 + -9.8796627428588157E-01 -9.7032904234644257E-01 -9.5233140851352982E-01 + -9.3398562501879612E-01 -9.1530405863099584E-01 -8.9629918173851697E-01 + -8.7698356340362549E-01 -8.5736986039952745E-01 -8.3747080824094633E-01 + -8.1729921221854684E-01 -7.9686793844709669E-01 -7.7618990493683604E-01 + -7.5527807269707425E-01 -7.3414543688060718E-01 -7.1280501797707496E-01 + -6.9126985306295263E-01 -6.6955298711540179E-01 -6.4766746439680078E-01 + -6.2562631991631035E-01 -6.0344257097444165E-01 -5.8112920879616770E-01 + -5.5869919025774184E-01 -5.3616542971201553E-01 -5.1354079091668603E-01 + -4.9083807906958826E-01 -4.6807003295482152E-01 -4.4524931720323901E-01 + -4.2238851467055522E-01 -3.9950011893611448E-01 -3.7659652692515355E-01 + -3.5369003165723839E-01 -3.3079281512341069E-01 -3.0791694129448338E-01 + -2.8507434926284436E-01 -2.6227684652010724E-01 -2.3953610237292022E-01 + -2.1686364149928120E-01 -1.9427083764775055E-01 -1.7176890748203424E-01 + -1.4936890457350346E-01 -1.2708171354433767E-01 -1.0491804436410559E-01 + -8.2888426802736823E-02 -6.1003205042976301E-02 -3.9272532455545683E-02 + -1.7706366540353756E-02 3.6855359628078159E-03 2.4893623790583828E-02 + 4.5908555695873231E-02 6.6721204807661638E-02 8.7322662807480800E-02 + 1.0770424391927802E-01 1.2785748870972527E-01 1.4777416769633520E-01 + 1.6744628476117648E-01 1.8686608036850633E-01 2.0602603458523464E-01 + 2.2491886990385240E-01 2.4353755386818157E-01 2.6187530150315180E-01 + 2.7992557755064867E-01 2.9768209851423255E-01 3.1513883451640212E-01 + 3.3229001097262295E-01 3.4913011008685785E-01 3.6565387217357259E-01 + 3.8185629681099859E-01 3.9773264382993723E-01 4.1327843414124804E-01 + 4.2848945040346326E-01 4.4336173752952635E-01 4.5789160302837861E-01 + 4.7207561717306828E-01 4.8591061298205179E-01 4.9939368599462614E-01 + 5.1252219381496511E-01 5.2529375539228662E-01 5.3770624999762762E-01 + 5.4975781585096029E-01 5.6144684834650949E-01 5.7277199781998334E-01 + 5.8373216679962536E-01 5.9432650668461418E-01 6.0455441380012387E-01 + 6.1441552478905348E-01 6.2390971131671158E-01 6.3303707408656740E-01 + 6.4179793619244696E-01 6.5019283586428489E-01 6.5822251869917681E-01 + 6.6588792950500442E-01 6.7319020391747209E-01 6.8013065997994571E-01 + 6.8671078989596168E-01 6.9293225217347876E-01 6.9879686437579391E-01 + 7.0430659667502116E-01 7.0946356637015262E-01 7.1427003348454132E-01 + 7.1872839750012862E-01 7.2284119522219481E-01 7.2661109970431281E-01 + 7.3004092010379229E-01 7.3313360228875635E-01 7.3589222998294279E-01 + 7.3832002621599180E-01 7.4042035484605484E-01 7.4219672193657882E-01 + 7.4365277679744435E-01 7.4479231253821310E-01 7.4561926602368211E-01 + 7.4613771716518140E-01 7.4635188752134196E-01 7.4626613821683940E-01 + 7.4588496721538422E-01 7.4521300600319418E-01 7.4425501575182651E-01 + 7.4301588303521993E-01 7.4150061517632859E-01 7.3971433529518349E-01 + 7.3766227712384069E-01 7.3534977964554693E-01 7.3278228160673120E-01 + 7.2996531594156411E-01 7.2690450414061558E-01 7.2360555058776044E-01 + 7.2007423688310124E-01 7.1631641616457487E-01 7.1233800743674114E-01 + 7.0814498991227703E-01 7.0374339736957237E-01 6.9913931252847938E-01 + 6.9433886144563994E-01 6.8934820793066354E-01 6.8417354798464425E-01 + 6.7882110426308839E-01 6.7329712056595870E-01 6.6760785635837405E-01 + 6.6175958132631574E-01 6.5575856997243642E-01 6.4961109625781188E-01 + 6.4332342829607847E-01 6.3690182310685206E-01 6.3035252143573517E-01 + 6.2368174264839793E-01 6.1689567970633885E-01 6.1000049423192815E-01 + 6.0300231167014606E-01 5.9590721655427514E-01 5.8872124788241387E-01 + 5.8145039461134074E-01 5.7410059127379964E-01 5.6667771372476461E-01 + 5.5918757502173588E-01 5.5163592144357743E-01 5.4402842865180234E-01 + 5.3637069799770432E-01 5.2866825297811204E-01 5.2092653584202819E-01 + 5.1315090434986932E-01 5.0534662868648506E-01 4.9751888852866355E-01 + 4.8967277026736689E-01 4.8181326438447364E-01 4.7394526298345102E-01 + 4.6607355747296614E-01 4.5820283640214482E-01 4.5033768344588909E-01 + 4.4248257553838771E-01 4.3464188115277319E-01 4.2681985872467054E-01 + 4.1902065521721960E-01 4.1124830482521563E-01 4.0350672781566721E-01 + 3.9579972950224168E-01 3.8813099935118717E-01 3.8050411021595032E-01 + 3.7292251769830470E-01 3.6538955963356129E-01 3.5790845569757285E-01 + 3.5048230713362077E-01 3.4311409659719760E-01 3.3580668811701142E-01 + 3.2856282717068641E-01 3.2138514087379888E-01 3.1427613828109646E-01 + 3.0723821079893865E-01 3.0027363270773061E-01 2.9338456179454547E-01 + 2.8657304009421053E-01 2.7984099473904750E-01 2.7319023891559135E-01 + 2.6662247292909197E-01 2.6013928537399961E-01 2.5374215440989140E-01 + 2.4743244914169849E-01 2.4121143110288576E-01 2.3508025583992034E-01 + 2.2903997459603431E-01 2.2309153609187268E-01 2.1723578840020552E-01 + 2.1147348091142809E-01 2.0580526638608432E-01 2.0023170309017790E-01 + 1.9475325700854415E-01 1.8937030413106234E-01 1.8408313280604047E-01 + 1.7889194615463971E-01 1.7379686453980109E-01 1.6879792808275326E-01 + 1.6389509921982406E-01 1.5908826529198902E-01 1.5437724115931256E-01 + 1.4976177183222350E-01 1.4524153511139140E-01 1.4081614422782393E-01 + 1.3648515047472137E-01 1.3224804582257838E-01 1.2810426550901380E-01 + 1.2405319059488487E-01 1.2009415047835273E-01 1.1622642535878623E-01 + 1.1244924864270103E-01 1.0876180928436467E-01 1.0516325405429751E-01 + 1.0165268972967814E-01 9.8229185201648847E-02 9.4891773495763942E-02 + 9.1639453703314847E-02 8.8471192823043235E-02 8.5385927514792112E-02 + 8.2382565768906235E-02 7.9459988497651332E-02 7.6617051057441890E-02 + 7.3852584713173769E-02 7.1165398058269297E-02 6.8554278405992347E-02 + 6.6017993168997896E-02 6.3555291244749818E-02 6.1164904424203734E-02 + 5.8845548839908252E-02 5.6595926467346576E-02 5.4414726689979202E-02 + 5.2300627934172762E-02 5.0252299375238431E-02 4.8268402710482279E-02 + 4.6347593989857133E-02 4.4488525489903452E-02 4.2689847612570726E-02 + 4.0950210787521854E-02 3.9268267354876346E-02 3.7642673405123638E-02 + 3.6072090554090275E-02 3.4555187633216057E-02 3.3090642278702551E-02 + 3.1677142407031088E-02 3.0313387568553937E-02 2.8998090175017987E-02 + 2.7729976600718010E-02 2.6507788160290084E-02 2.5330281968819316E-02 + 2.4196231691908921E-02 2.3104428194643371E-02 2.2053680099048036E-02 + 2.1042814259791317E-02 2.0070676167599187E-02 1.9136130289272975E-02 + 1.8238060352417176E-02 1.7375369582085499E-02 1.6546980895617260E-02 + 1.5751837061011315E-02 1.4988900823317103E-02 1.4257155002733430E-02 + 1.3555602567408788E-02 1.2883266683341662E-02 1.2239190743277360E-02 + 1.1622438376089724E-02 1.1032093437809564E-02 1.0467259985207511E-02 + 9.9270622326488173E-03 9.4106444928000448E-03 8.9171711016728886E-03 + 8.4458263284333847E-03 7.9958142703736527E-03 7.5663587334361638E-03 + 7.1567030986892759E-03 6.7661101751730285E-03 6.3938620395635748E-03 + 6.0392598631384643E-03 5.7016237265602307E-03 5.3802924230321302E-03 + 5.0746232504124333E-03 4.7839917929034742E-03 4.5077916929558296E-03 + 4.2454344140454448E-03 3.9963489949928800E-03 3.7599817964966992E-03 + 3.5357962405489856E-03 3.3232725433891006E-03 3.1219074426329461E-03 + 2.9312139191910911E-03 2.7507209145518803E-03 2.5799730439877619E-03 + 2.4185303061823563E-03 2.2659677897480072E-03 2.1218753770764344E-03 + 1.9858574458942019E-03 1.8575325688903823E-03 1.7365332117380426E-03 + 1.6225054297757894E-03 1.5151085636506583E-03 1.4140149341361724E-03 + 1.3189095363536631E-03 1.2294897336447095E-03 1.1454649512625478E-03 + 1.0665563701223668E-03 9.9249662081440991E-04 9.2302947807803822E-04 + 8.5790955597406162E-04 7.9690200397772792E-04 7.3978220423108574E-04 + 6.8633547020190871E-04 6.3635674700537794E-04 5.8965031365279909E-04 + 5.4602948749857153E-04 5.0531633116179971E-04 4.6734136220234827E-04 + 4.3194326583244065E-04 3.9896861094403628E-04 3.6827156972919783E-04 + 3.3971364116545331E-04 3.1316337863083343E-04 2.8849612190403213E-04 + 2.6559373379400988E-04 2.4434434163065157E-04 2.2464208383390319E-04 + 2.0638686176336610E-04 1.8948409703389198E-04 1.7384449446540109E-04 + 1.5938381081725316E-04 1.4602262943915281E-04 1.3368614095198630E-04 + 1.2230393005335045E-04 1.1180976852398090E-04 1.0214141449297008E-04 + 9.3240418001740543E-05 8.5051932889274059E-05 7.7524535004242200E-05 + 7.0610046733492987E-05 6.4263367820900763E-05 5.8442312435952260E-05 + 5.3107452437653977E-05 4.8221966766441368E-05 4.3751496884785665E-05 + 3.9664008176123364E-05 3.5929657201600914E-05 3.2520664704921286E-05 + 2.9411194247287340E-05 2.6577236347057319E-05 2.3996497992221955E-05 + 2.1648297388170266E-05 1.9513463798394260E-05 1.7574242331759878E-05 + 1.5814203526711660E-05 1.4218157580239791E-05 1.2772073067583108E-05 + 1.1462999997433353E-05 1.0278997046798695E-05 9.2090628196428992E-06 + 8.2430709738967516E-06 7.3717090624004544E-06 6.5864209347419959E-06 + 5.8793525487662067E-06 5.2433010427050419E-06 4.6716669213867267E-06 + 4.1584092127816766E-06 3.6980034542058252E-06 3.2854023707927710E-06 + 2.9159991123350645E-06 2.5855929182534092E-06 2.2903570842519562E-06 + 2.0268091081334376E-06 1.7917828962548313E-06 1.5824029161799152E-06 + 1.3960601852087586E-06 1.2303899886160960E-06 1.0832512255924986E-06 + 9.5270728503822687E-07 8.3700835749366787E-07 7.3457509358921686E-07 + 6.4398352344826989E-07 5.6395115546852280E-07 4.9332417682890817E-07 + 4.3106568191309173E-07 3.7624485859754165E-07 3.2802706601591718E-07 + 2.8566474097571315E-07 2.4848907366279221E-07 2.1590239662028700E-07 + 1.8737123422690141E-07 1.6241996302325123E-07 1.4062503624143107E-07 + 1.2160972878124343E-07 1.0503936164565014E-07 9.0616967497857058E-08 + 7.8079361533373728E-08 6.7193584273197360E-08 5.7753685180219360E-08 + 4.9577818181713307E-08 4.2505622248319351E-08 3.6395862136651593E-08 + 3.1124306251121499E-08 2.6581820323659993E-08 2.2672657250818672E-08 + 1.9312924969490871E-08 1.6429215698628851E-08 1.3957381228384883E-08 + 1.1841440203687197E-08 1.0032604530082455E-08 8.4884131294635851E-09 + 7.1719622958158608E-09 6.0512228501103358E-09 5.0984351726854102E-09 + 4.2895740045797638E-09 3.6038756599559591E-09 3.0234209835522549E-09 + 2.5327680235130237E-09 2.1186289743705104E-09 1.7695864806773326E-09 + 1.4758448820039296E-09 1.2290124277837178E-09 1.0219108987557073E-09 + 8.4840944333670076E-10 7.0327977484121328E-10 5.8207018161438598E-10 + 4.8099607927675029E-10 3.9684508469407516E-10 3.2689481714473554E-10 + 2.6884183549632861E-10 2.2074030293234576E-10 1.8094913467500950E-10 + 1.4808653089917635E-10 1.2099092817636218E-10 9.8687519768182647E-11 + 8.0359599239125251E-11 6.5324074412213787E-11 5.3010580783582758E-11 + 4.2943696187435854E-11 3.4727822718765535E-11 2.8034358553476436E-11 + 2.2590832153544133E-11 1.8171715136274605E-11 1.4590668482600013E-11 + 1.1694010358542356E-11 9.3552231678810769E-12 7.4703430308988895E-12 + 5.9540971331033652E-12 4.7366737032943239E-12 3.7610261153257168E-12 + 2.9806270777990046E-12 2.3576013618434443E-12 1.8611762690495981E-12 + 1.4663982812715054E-12 1.1530722576485958E-12 9.0488632509607209E-13 + 7.0869139930439854E-13 5.5390920810663552E-13 4.3204688551110029E-13 + 3.3629976561014443E-13 2.6122702070989085E-13 2.0248733550440706E-13 + 1.5662395678520111E-13 1.2089026480916458E-13 9.3108528843549432E-14 + 7.1555779362620838E-14 5.4871790557637434E-14 4.1985051561589745E-14 + 3.2053340747849987E-14 2.4416128259139329E-14 1.8556537679524191E-14 + 1.4071015571882585E-14 1.0645201954619205E-14 8.0347779330757430E-15 + 6.0502989626473493E-15 4.5452122912888803E-15 3.4064122997621703E-15 + 2.5468138307076952E-15 1.8995262664814928E-15 1.4132943223324346E-15 + 1.0489387886817602E-15 7.7658470214338195E-16 5.7350806046489691E-16 + 4.2246720850160234E-16 3.1041304346750151E-16 2.2749455641375420E-16 + 1.6629403726922631E-16 1.2124041484979395E-16 8.8160406281107201E-17 + 6.3936000389721917E-17 4.6243772370843205E-17 3.3357005946616457E-17 + 2.3995892697462850E-17 1.7214433605253811E-17 1.2315282871472748E-17 + 8.7858064788438265E-18 6.2502031553201627E-18 4.4337528026756090E-18 + 3.1361956727995809E-18 2.2119665746601758E-18 1.5555608729780018E-18 + 1.0907311585924498E-18 7.6253504722134075E-19 5.3149882440391195E-19 + 3.6934663824230458E-19 2.5588461464810254E-19 1.7673441293173678E-19 + 1.2168964879741117E-19 8.3527651323324960E-20 5.7153057260875251E-20 + 3.8982490195912439E-20 2.6503843220305871E-20 1.7961617443298216E-20 + 1.2132977464012162E-20 8.1688824158838684E-21 5.4817477359623247E-21 + 3.6662690484831139E-21 2.4438026867340482E-21 1.6234241069577021E-21 + 1.0747546006965991E-21 7.0906397281328602E-22 4.6617343185777740E-22 + 3.0540961730802662E-22 1.9937834201512837E-22 1.2969409785699329E-22 + 8.4061314141239545E-23 5.4286585350191739E-23 3.4929776597760088E-23 + 2.2391977848574599E-23 1.4301078325203437E-23 9.0993631825933582E-24 + 5.7677335804323366E-24 3.6419778264854886E-24 2.2908316973394207E-24 + 1.4353529928531654E-24 8.9581578399095246E-25 5.5687756347849904E-25 + 3.4479842616846128E-25 2.1262896082464501E-25 1.3059190846780473E-25 + 7.9878855146057508E-26 4.8657969780756481E-26 2.9516678277645760E-26 + 1.7830230393154474E-26 1.0725237322543778E-26 6.4239437632914528E-27 + 3.8311192347319220E-27 2.2749028437883567E-27 1.3449225825903125E-27 + 7.9161285423011324E-28 4.6386675948632744E-28 2.7059648025161416E-28 + 1.5713864143218877E-28 9.0836241663443064E-29 5.2267755764863971E-29 + 2.9935751897652663E-29 1.7065187570421758E-29 9.6823184319099054E-30 + 5.4673609405551847E-30 3.0724779362220456E-30 1.7182836668595595E-30 + 9.5626507949195161E-31 5.2956737871272280E-31 2.9181368674733364E-31 + 1.5999760035737002E-31 8.7282343214428212E-32 4.7372471193116639E-32 + 2.5579606590043066E-32 1.3740773519667201E-32 7.3427575222541185E-33 + 3.9031830813974588E-33 2.0638175219152339E-33 1.0854181318181212E-33 + 5.6777580398069053E-34 2.9538688557211764E-34 1.5283415050885005E-34 + 7.8640213230550447E-35 4.0238715061007859E-35 2.0473806837017751E-35 + 1.0358287595836827E-35 5.2106493040885735E-36 2.6060920498461263E-36 + 1.2958688710174729E-36 6.4059714107125053E-37 3.1480430442608680E-37 + 1.5378253361632758E-37 7.4672873613042261E-38 3.6040175897580563E-38 + 1.7288514135273391E-38 8.2423978953378419E-39 3.9052864582133368E-39 + 1.8387969185059995E-39 8.6034808521548107E-40 3.9999269101362852E-40 + 1.8477579758306320E-40 8.4806842451204823E-41 3.8671138856817839E-41 + 1.7518246774789108E-41 7.8835005651011763E-42 3.5241119906755537E-42 + 1.5648025711007637E-42 6.9011470816841603E-43 3.0228590284092581E-43 + 1.3151497422056639E-43 5.6798616819921163E-44 2.4292910597665126E-44 + 1.0315585130330755E-44 4.3486446455822172E-45 1.8198378545958205E-45 + + + 1.2499395846154483E-14 2.3228682030263256E-06 4.6656313225977653E-06 + 7.0284597547970826E-06 9.4115253551153966E-06 1.1815001450951578E-05 + 1.4239062854219026E-05 1.6683885874059936E-05 1.9149648329668982E-05 + 2.1636529563226479E-05 2.4144710452942297E-05 2.6674373426211969E-05 + 2.9225702472884714E-05 3.1798883158645644E-05 3.4394102638512547E-05 + 3.7011549670448177E-05 3.9651414629088838E-05 4.2313889519591204E-05 + 4.4999167991596986E-05 4.7707445353317981E-05 5.0438918585740961E-05 + 5.3193786356954850E-05 5.5972249036600158E-05 5.8774508710442745E-05 + 6.1600769195071508E-05 6.4451236052723101E-05 6.7326116606232373E-05 + 7.0225619954111904E-05 7.3149956985760168E-05 7.6099340396800012E-05 + 7.9073984704548539E-05 8.2074106263619513E-05 8.5099923281659398E-05 + 8.8151655835217992E-05 9.1229525885755356E-05 9.4333757295785400E-05 + 9.7464575845158328E-05 1.0062220924748152E-04 1.0380688716668231E-04 + 1.0701884123371174E-04 1.1025830506339145E-04 1.1352551427140557E-04 + 1.1682070649143698E-04 1.2014412139245149E-04 1.2349600069612909E-04 + 1.2687658819444551E-04 1.3028612976740301E-04 1.3372487340091452E-04 + 1.3719306920483988E-04 1.4069096943117681E-04 1.4421882849240811E-04 + 1.4777690298000535E-04 1.5136545168309149E-04 1.5498473560726330E-04 + 1.5863501799357436E-04 1.6231656433768202E-04 1.6602964240915673E-04 + 1.6977452227095788E-04 1.7355147629907600E-04 1.7736077920234308E-04 + 1.8120270804241305E-04 1.8507754225391285E-04 1.8898556366476630E-04 + 1.9292705651669211E-04 1.9690230748587725E-04 2.0091160570382771E-04 + 2.0495524277839731E-04 2.0903351281499738E-04 2.1314671243798702E-04 + 2.1729514081224785E-04 2.2147909966494230E-04 2.2569889330745931E-04 + 2.2995482865754695E-04 2.3424721526163535E-04 2.3857636531735113E-04 + 2.4294259369622299E-04 2.4734621796658409E-04 2.5178755841666844E-04 + 2.5626693807790664E-04 2.6078468274842026E-04 2.6534112101671758E-04 + 2.6993658428559297E-04 2.7457140679622982E-04 2.7924592565251022E-04 + 2.8396048084553422E-04 2.8871541527834664E-04 2.9351107479087807E-04 + 2.9834780818509715E-04 3.0322596725038098E-04 3.0814590678909960E-04 + 3.1310798464242301E-04 3.1811256171634597E-04 3.2316000200793854E-04 + 3.2825067263181882E-04 3.3338494384685499E-04 3.3856318908309353E-04 + 3.4378578496892026E-04 3.4905311135845235E-04 3.5436555135916605E-04 + 3.5972349135976055E-04 3.6512732105825971E-04 3.7057743349035659E-04 + 3.7607422505799790E-04 3.8161809555821669E-04 3.8720944821220727E-04 + 3.9284868969465496E-04 3.9853623016331154E-04 4.0427248328882775E-04 + 4.1005786628483935E-04 4.1589279993831162E-04 4.2177770864014371E-04 + 4.2771302041603472E-04 4.3369916695761441E-04 4.3973658365384024E-04 + 4.4582570962266413E-04 4.5196698774296900E-04 4.5816086468678034E-04 + 4.6440779095175230E-04 4.7070822089393245E-04 4.7706261276080894E-04 + 4.8347142872463681E-04 4.8993513491605342E-04 4.9645420145797965E-04 + 5.0302910249981245E-04 5.0966031625190964E-04 5.1634832502037023E-04 + 5.2309361524211244E-04 5.2989667752025298E-04 5.3675800665978744E-04 + 5.4367810170357896E-04 5.5065746596865198E-04 5.5769660708279993E-04 + 5.6479603702150338E-04 5.7195627214516739E-04 5.7917783323667513E-04 + 5.8646124553926495E-04 5.9380703879473036E-04 6.0121574728194888E-04 + 6.0868790985573850E-04 6.1622406998604936E-04 6.2382477579749009E-04 + 6.3149058010919165E-04 6.3922204047501369E-04 6.4701971922409497E-04 + 6.5488418350175177E-04 6.6281600531072397E-04 6.7081576155277847E-04 + 6.7888403407066452E-04 6.8702140969043209E-04 6.9522848026410972E-04 + 7.0350584271274984E-04 7.1185409906984081E-04 7.2027385652509456E-04 + 7.2876572746860253E-04 7.3733032953537773E-04 7.4596828565027065E-04 + 7.5468022407327673E-04 7.6346677844522600E-04 7.7232858783386705E-04 + 7.8126629678034604E-04 7.9028055534608116E-04 7.9937201916004206E-04 + 8.0854134946643026E-04 8.1778921317276956E-04 8.2711628289841121E-04 + 8.3652323702344844E-04 8.4601075973805514E-04 8.5557954109224336E-04 + 8.6523027704605150E-04 8.7496366952015555E-04 8.8478042644691906E-04 + 8.9468126182188051E-04 9.0466689575567606E-04 9.1473805452641421E-04 + 9.2489547063249230E-04 9.3513988284587039E-04 9.4547203626579835E-04 + 9.5589268237300290E-04 9.6640257908434243E-04 9.7700249080792385E-04 + 9.8769318849869624E-04 9.9847544971451907E-04 1.0093500586727086E-03 + 1.0203178063070723E-03 1.0313794903254274E-03 1.0425359152676167E-03 + 1.0537878925640154E-03 1.0651362405945442E-03 1.0765817847481838E-03 + 1.0881253574830025E-03 1.0997677983866955E-03 1.1115099542376400E-03 + 1.1233526790664816E-03 1.1352968342182375E-03 1.1473432884149394E-03 + 1.1594929178188077E-03 1.1717466060959716E-03 1.1841052444807275E-03 + 1.1965697318403563E-03 1.2091409747404893E-03 1.2218198875110350E-03 + 1.2346073923126743E-03 1.2475044192039159E-03 1.2605119062087389E-03 + 1.2736307993848029E-03 1.2868620528922480E-03 1.3002066290630813E-03 + 1.3136654984711596E-03 1.3272396400027711E-03 1.3409300409278186E-03 + 1.3547376969716143E-03 1.3686636123872919E-03 1.3827088000288310E-03 + 1.3968742814247153E-03 1.4111610868522155E-03 1.4255702554123123E-03 + 1.4401028351052557E-03 1.4547598829067754E-03 1.4695424648449435E-03 + 1.4844516560776943E-03 1.4994885409710034E-03 1.5146542131777455E-03 + 1.5299497757172190E-03 1.5453763410553550E-03 1.5609350311856112E-03 + 1.5766269777105616E-03 1.5924533219241806E-03 1.6084152148948332E-03 + 1.6245138175489762E-03 1.6407503007555750E-03 1.6571258454112436E-03 + 1.6736416425261126E-03 1.6902988933104339E-03 1.7070988092619231E-03 + 1.7240426122538560E-03 1.7411315346239097E-03 1.7583668192637737E-03 + 1.7757497197095251E-03 1.7932815002327676E-03 1.8109634359325718E-03 + 1.8287968128281775E-03 1.8467829279525110E-03 1.8649230894464850E-03 + 1.8832186166541246E-03 1.9016708402184836E-03 1.9202811021784077E-03 + 1.9390507560661050E-03 1.9579811670055632E-03 1.9770737118118011E-03 + 1.9963297790909834E-03 2.0157507693413694E-03 2.0353380950551515E-03 + 2.0550931808211450E-03 2.0750174634283679E-03 2.0951123919704991E-03 + 2.1153794279512445E-03 2.1358200453905829E-03 2.1564357309319421E-03 + 2.1772279839502814E-03 2.1981983166610968E-03 2.2193482542303715E-03 + 2.2406793348854460E-03 2.2621931100268644E-03 2.2838911443411503E-03 + 2.3057750159145691E-03 2.3278463163478474E-03 2.3501066508718874E-03 + 2.3725576384644597E-03 2.3952009119679058E-03 2.4180381182078345E-03 + 2.4410709181128501E-03 2.4643009868352841E-03 2.4877300138729823E-03 + 2.5113597031921160E-03 2.5351917733510533E-03 2.5592279576252862E-03 + 2.5834700041334315E-03 2.6079196759642934E-03 2.6325787513050408E-03 + 2.6574490235704560E-03 2.6825323015332993E-03 2.7078304094557862E-03 + 2.7333451872221929E-03 2.7590784904725956E-03 2.7850321907377422E-03 + 2.8112081755750965E-03 2.8376083487060303E-03 2.8642346301541986E-03 + 2.8910889563850853E-03 2.9181732804467631E-03 2.9454895721118361E-03 + 2.9730398180206077E-03 3.0008260218254662E-03 3.0288502043365187E-03 + 3.0571144036684460E-03 3.0856206753886398E-03 3.1143710926665844E-03 + 3.1433677464245322E-03 3.1726127454894519E-03 3.2021082167462966E-03 + 3.2318563052925538E-03 3.2618591745941436E-03 3.2921190066426348E-03 + 3.3226380021138062E-03 3.3534183805275686E-03 3.3844623804092436E-03 + 3.4157722594522384E-03 3.4473502946820878E-03 3.4791987826219188E-03 + 3.5113200394593174E-03 3.5437164012146250E-03 3.5763902239106722E-03 + 3.6093438837439644E-03 3.6425797772573279E-03 3.6761003215140336E-03 + 3.7099079542734031E-03 3.7440051341679275E-03 3.7783943408818809E-03 + 3.8130780753314795E-03 3.8480588598465552E-03 3.8833392383538171E-03 + 3.9189217765616376E-03 3.9548090621464461E-03 3.9910037049407021E-03 + 4.0275083371224766E-03 4.0643256134066524E-03 4.1014582112377544E-03 + 4.1389088309844377E-03 4.1766801961356107E-03 4.2147750534982705E-03 + 4.2531961733969902E-03 4.2919463498751354E-03 4.3310284008977774E-03 + 4.3704451685563674E-03 4.4101995192751221E-03 4.4502943440192008E-03 + 4.4907325585046383E-03 4.5315171034100892E-03 4.5726509445903540E-03 + 4.6141370732917623E-03 4.6559785063693447E-03 4.6981782865059161E-03 + 4.7407394824329711E-03 4.7836651891535126E-03 4.8269585281667466E-03 + 4.8706226476947041E-03 4.9146607229108158E-03 4.9590759561703897E-03 + 5.0038715772431110E-03 5.0490508435474804E-03 5.0946170403872752E-03 + 5.1405734811900009E-03 5.1869235077474313E-03 5.2336704904581144E-03 + 5.2808178285720280E-03 5.3283689504372636E-03 5.3763273137488500E-03 + 5.4246964057996661E-03 5.4734797437335121E-03 5.5226808748003392E-03 + 5.5723033766136385E-03 5.6223508574100162E-03 5.6728269563110249E-03 + 5.7237353435871672E-03 5.7750797209241821E-03 5.8268638216915991E-03 + 5.8790914112135514E-03 5.9317662870419325E-03 5.9848922792318472E-03 + 6.0384732506194288E-03 6.0925130971019991E-03 6.1470157479206391E-03 + 6.2019851659451310E-03 6.2574253479613694E-03 6.3133403249611619E-03 + 6.3697341624345469E-03 6.4266109606645611E-03 6.4839748550245364E-03 + 6.5418300162779020E-03 6.6001806508805723E-03 6.6590310012858553E-03 + 6.7183853462520022E-03 6.7782480011523236E-03 6.8386233182879917E-03 + 6.8995156872034532E-03 6.9609295350045539E-03 7.0228693266793443E-03 + 7.0853395654216205E-03 7.1483447929572208E-03 7.2118895898730670E-03 + 7.2759785759490270E-03 7.3406164104925682E-03 7.4058077926762809E-03 + 7.4715574618782225E-03 7.5378701980252129E-03 7.6047508219389609E-03 + 7.6722041956852035E-03 7.7402352229257454E-03 7.8088488492735249E-03 + 7.8780500626506635E-03 7.9478438936495654E-03 8.0182354158970584E-03 + 8.0892297464216518E-03 8.1608320460238495E-03 8.2330475196496777E-03 + 8.3058814167672954E-03 8.3793390317468373E-03 8.4534257042434835E-03 + 8.5281468195837085E-03 8.6035078091548766E-03 8.6795141507980643E-03 + 8.7561713692042645E-03 8.8334850363138689E-03 8.9114607717196131E-03 + 8.9901042430728384E-03 9.0694211664932578E-03 9.1494173069821376E-03 + 9.2300984788389814E-03 9.3114705460817532E-03 9.3935394228705973E-03 + 9.4763110739351820E-03 9.5597915150056247E-03 9.6439868132470567E-03 + 9.7289030876978426E-03 9.8145465097115026E-03 9.9009233034023751E-03 + 9.9880397460949781E-03 1.0075902168777212E-02 1.0164516956557384E-02 + 1.0253890549124971E-02 1.0344029441215437E-02 1.0434940183078787E-02 + 1.0526629380952184E-02 1.0619103697536457E-02 1.0712369852476658E-02 + 1.0806434622846655E-02 1.0901304843637766E-02 1.0996987408251514E-02 + 1.1093489268996528E-02 1.1190817437589569E-02 1.1288978985660831E-02 + 1.1387981045263366E-02 1.1487830809386913E-02 1.1588535532475908E-02 + 1.1690102530951924E-02 1.1792539183740390E-02 1.1895852932801836E-02 + 1.2000051283667445E-02 1.2105141805979202E-02 1.2211132134034465E-02 + 1.2318029967335133E-02 1.2425843071141409E-02 1.2534579277030116E-02 + 1.2644246483457744E-02 1.2754852656328150E-02 1.2866405829565001E-02 + 1.2978914105688971E-02 1.3092385656399759E-02 1.3206828723162934E-02 + 1.3322251617801680E-02 1.3438662723093419E-02 1.3556070493371451E-02 + 1.3674483455131522E-02 1.3793910207643468E-02 1.3914359423567909E-02 + 1.4035839849578085E-02 1.4158360306986801E-02 1.4281929692378577E-02 + 1.4406556978247049E-02 1.4532251213637614E-02 1.4659021524795368E-02 + 1.4786877115818471E-02 1.4915827269316811E-02 1.5045881347076158E-02 + 1.5177048790727713E-02 1.5309339122423335E-02 1.5442761945516139E-02 + 1.5577326945246807E-02 1.5713043889435445E-02 1.5849922629179270E-02 + 1.5987973099555835E-02 1.6127205320332207E-02 1.6267629396679743E-02 + 1.6409255519894948E-02 1.6552093968126042E-02 1.6696155107105589E-02 + 1.6841449390888961E-02 1.6987987362599061E-02 1.7135779655176864E-02 + 1.7284836992138244E-02 1.7435170188336808E-02 1.7586790150733150E-02 + 1.7739707879170126E-02 1.7893934467154534E-02 1.8049481102645155E-02 + 1.8206359068847006E-02 1.8364579745012301E-02 1.8524154607247593E-02 + 1.8685095229327667E-02 1.8847413283515749E-02 1.9011120541390605E-02 + 1.9176228874680065E-02 1.9342750256101375E-02 1.9510696760208161E-02 + 1.9680080564244383E-02 1.9850913949004952E-02 2.0023209299703314E-02 + 2.0196979106845845E-02 2.0372235967113499E-02 2.0548992584250105E-02 + 2.0727261769958084E-02 2.0907056444800964E-02 2.1088389639113313E-02 + 2.1271274493917781E-02 2.1455724261849329E-02 2.1641752308086896E-02 + 2.1829372111292232E-02 2.2018597264556385E-02 2.2209441476353353E-02 + 2.2401918571501433E-02 2.2596042492131919E-02 2.2791827298665593E-02 + 2.2989287170796666E-02 2.3188436408484482E-02 2.3389289432952862E-02 + 2.3591860787697351E-02 2.3796165139500117E-02 2.4002217279452863E-02 + 2.4210032123987413E-02 2.4419624715914568E-02 2.4631010225470665E-02 + 2.4844203951372351E-02 2.5059221321879266E-02 2.5276077895865140E-02 + 2.5494789363896743E-02 2.5715371549321270E-02 2.5937840409361895E-02 + 2.6162212036221578E-02 2.6388502658195399E-02 2.6616728640791117E-02 + 2.6846906487858209E-02 2.7079052842725340E-02 2.7313184489346474E-02 + 2.7549318353455456E-02 2.7787471503729150E-02 2.8027661152959227E-02 + 2.8269904659232795E-02 2.8514219527121517E-02 2.8760623408879634E-02 + 2.9009134105650609E-02 2.9259769568682915E-02 2.9512547900554357E-02 + 2.9767487356405543E-02 3.0024606345181969E-02 3.0283923430885581E-02 + 3.0545457333834899E-02 3.0809226931934341E-02 3.1075251261952690E-02 + 3.1343549520810442E-02 3.1614141066876614E-02 3.1887045421274428E-02 + 3.2162282269196360E-02 3.2439871461228176E-02 3.2719833014682592E-02 + 3.3002187114941864E-02 3.3286954116809826E-02 3.3574154545873099E-02 + 3.3863809099871890E-02 3.4155938650079945E-02 3.4450564242693951E-02 + 3.4747707100232166E-02 3.5047388622942793E-02 3.5349630390221508E-02 + 3.5654454162038489E-02 3.5961881880374760E-02 3.6271935670668387E-02 + 3.6584637843269638E-02 3.6900010894905952E-02 3.7218077510156294E-02 + 3.7538860562934734E-02 3.7862383117983990E-02 3.8188668432378052E-02 + 3.8517739957034336E-02 3.8849621338235274E-02 3.9184336419159624E-02 + 3.9521909241422917E-02 3.9862364046627304E-02 4.0205725277920969E-02 + 4.0552017581566978E-02 4.0901265808521332E-02 4.1253495016020346E-02 + 4.1608730469177430E-02 4.1966997642589175E-02 4.2328322221950640E-02 + 4.2692730105679783E-02 4.3060247406551060E-02 4.3430900453338410E-02 + 4.3804715792466913E-02 4.4181720189673722E-02 4.4561940631677961E-02 + 4.4945404327859401E-02 4.5332138711946128E-02 4.5722171443710900E-02 + 4.6115530410676391E-02 4.6512243729828526E-02 4.6912339749339289E-02 + 4.7315847050297059E-02 4.7722794448446085E-02 4.8133210995933540E-02 + 4.8547125983065466E-02 4.8964568940070320E-02 4.9385569638870683E-02 + 4.9810158094862639E-02 5.0238364568703300E-02 5.0670219568105419E-02 + 5.1105753849640001E-02 5.1544998420545593E-02 5.1987984540545588E-02 + 5.2434743723671844E-02 5.2885307740095595E-02 5.3339708617964922E-02 + 5.3797978645248684E-02 5.4260150371587129E-02 5.4726256610148342E-02 + 5.5196330439490772E-02 5.5670405205431497E-02 5.6148514522920231E-02 + 5.6630692277918462E-02 5.7116972629283808E-02 5.7607390010658920E-02 + 5.8101979132365790E-02 5.8600774983303412E-02 5.9103812832850440E-02 + 5.9611128232770844E-02 6.0122757019123882E-02 6.0638735314176739E-02 + 6.1159099528320437E-02 6.1683886361987808E-02 6.2213132807574623E-02 + 6.2746876151361750E-02 6.3285153975439518E-02 6.3828004159632856E-02 + 6.4375464883427408E-02 6.4927574627896251E-02 6.5484372177626315E-02 + 6.6045896622644706E-02 6.6612187360343564E-02 6.7183284097404705E-02 + 6.7759226851721394E-02 6.8340055954318607E-02 6.8925812051269963E-02 + 6.9516536105612009E-02 7.0112269399254357E-02 7.0713053534885398E-02 + 7.1318930437873254E-02 7.1929942358161345E-02 7.2546131872157665E-02 + 7.3167541884617396E-02 7.3794215630517995E-02 7.4426196676926654E-02 + 7.5063528924858708E-02 7.5706256611126732E-02 7.6354424310179261E-02 + 7.7008076935929107E-02 7.7667259743569625E-02 7.8332018331378442E-02 + 7.9002398642508270E-02 7.9678446966762989E-02 8.0360209942359581E-02 + 8.1047734557673168E-02 8.1741068152966029E-02 8.2440258422098095E-02 + 8.3145353414219414E-02 8.3856401535442326E-02 8.4573451550492840E-02 + 8.5296552584340199E-02 8.6025754123803505E-02 8.6761106019134199E-02 + 8.7502658485573037E-02 8.8250462104880356E-02 8.9004567826839395E-02 + 8.9765026970729744E-02 9.0531891226770800E-02 9.1305212657533122E-02 + 9.2085043699317609E-02 9.2871437163499160E-02 9.3664446237834750E-02 + 9.4464124487734141E-02 9.5270525857491184E-02 9.6083704671474715E-02 + 9.6903715635277235E-02 9.7730613836819191E-02 9.8564454747407687E-02 + 9.9405294222748061E-02 1.0025318850390562E-01 1.0110819421821610E-01 + 1.0197036838014321E-01 1.0283976839208105E-01 1.0371645204509899E-01 + 1.0460047751962735E-01 1.0549190338608139E-01 1.0639078860542218E-01 + 1.0729719252965057E-01 1.0821117490223357E-01 1.0913279585845924E-01 + 1.1006211592571909E-01 1.1099919602371418E-01 1.1194409746458295E-01 + 1.1289688195294788E-01 1.1385761158587820E-01 1.1482634885276663E-01 + 1.1580315663511541E-01 1.1678809820623076E-01 1.1778123723082096E-01 + 1.1878263776449634E-01 1.1979236425316683E-01 1.2081048153233424E-01 + 1.2183705482627563E-01 1.2287214974711548E-01 1.2391583229378056E-01 + 1.2496816885083666E-01 1.2602922618720103E-01 1.2709907145472868E-01 + 1.2817777218666715E-01 1.2926539629597572E-01 1.3036201207350592E-01 + 1.3146768818603838E-01 1.3258249367417138E-01 1.3370649795005671E-01 + 1.3483977079497911E-01 1.3598238235677265E-01 1.3713440314707162E-01 + 1.3829590403838876E-01 1.3946695626101699E-01 1.4064763139974826E-01 + 1.4183800139040637E-01 1.4303813851618516E-01 1.4424811540378915E-01 + 1.4546800501936824E-01 1.4669788066424413E-01 1.4793781597041814E-01 + 1.4918788489585719E-01 1.5044816171954992E-01 1.5171872103632847E-01 + 1.5299963775144562E-01 1.5429098707490468E-01 1.5559284451553090E-01 + 1.5690528587478106E-01 1.5822838724028029E-01 1.5956222497908126E-01 + 1.6090687573063658E-01 1.6226241639947619E-01 1.6362892414758295E-01 + 1.6500647638645680E-01 1.6639515076885922E-01 1.6779502518022910E-01 + 1.6920617772976221E-01 1.7062868674114351E-01 1.7206263074292308E-01 + 1.7350808845852703E-01 1.7496513879589323E-01 1.7643386083672055E-01 + 1.7791433382532310E-01 1.7940663715707666E-01 1.8091085036644999E-01 + 1.8242705311460508E-01 1.8395532517655974E-01 1.8549574642789698E-01 + 1.8704839683101324E-01 1.8861335642088933E-01 1.9019070529037432E-01 + 1.9178052357496908E-01 1.9338289143709519E-01 1.9499788904983870E-01 + 1.9662559658015191E-01 1.9826609417150187E-01 1.9991946192594853E-01 + 2.0158577988564283E-01 2.0326512801372357E-01 2.0495758617460350E-01 + 2.0666323411362483E-01 2.0838215143607217E-01 2.1011441758552349E-01 + 2.1186011182152367E-01 2.1361931319656430E-01 2.1539210053235272E-01 + 2.1717855239535017E-01 2.1897874707156462E-01 2.2079276254057628E-01 + 2.2262067644878084E-01 2.2446256608182749E-01 2.2631850833623454E-01 + 2.2818857969016246E-01 2.3007285617332177E-01 2.3197141333599941E-01 + 2.3388432621717703E-01 2.3581166931172401E-01 2.3775351653663943E-01 + 2.3970994119632477E-01 2.4168101594685984E-01 2.4366681275926161E-01 + 2.4566740288170053E-01 2.4768285680065155E-01 2.4971324420095348E-01 + 2.5175863392475195E-01 2.5381909392930052E-01 2.5589469124359443E-01 + 2.5798549192380815E-01 2.6009156100751274E-01 2.6221296246664133E-01 + 2.6434975915917963E-01 2.6650201277954821E-01 2.6866978380765016E-01 + 2.7085313145655393E-01 2.7305211361878029E-01 2.7526678681116562E-01 + 2.7749720611826612E-01 2.7974342513427614E-01 2.8200549590342361E-01 + 2.8428346885881595E-01 2.8657739275969690E-01 2.8888731462708639E-01 + 2.9121327967776423E-01 2.9355533125656930E-01 2.9591351076697325E-01 + 2.9828785759989612E-01 3.0067840906072735E-01 3.0308520029451830E-01 + 3.0550826420930383E-01 3.0794763139752090E-01 3.1040333005548326E-01 + 3.1287538590087705E-01 3.1536382208823521E-01 3.1786865912235346E-01 + 3.2038991476961015E-01 3.2292760396714559E-01 3.2548173872986702E-01 + 3.2805232805523254E-01 3.3063937782577840E-01 3.3324289070934360E-01 + 3.3586286605695692E-01 3.3849929979833776E-01 3.4115218433497430E-01 + 3.4382150843073300E-01 3.4650725709996311E-01 3.4920941149304641E-01 + 3.5192794877935579E-01 3.5466284202757609E-01 3.5741406008335053E-01 + 3.6018156744420321E-01 3.6296532413170085E-01 3.6576528556080723E-01 + 3.6858140240639570E-01 3.7141362046686760E-01 3.7426188052484471E-01 + 3.7712611820488895E-01 3.8000626382821007E-01 3.8290224226432362E-01 + 3.8581397277961577E-01 3.8874136888277855E-01 3.9168433816707571E-01 + 3.9464278214940501E-01 3.9761659610611549E-01 4.0060566890554944E-01 + 4.0360988283726917E-01 4.0662911343794195E-01 4.0966322931384597E-01 + 4.1271209195996778E-01 4.1577555557566431E-01 4.1885346687686226E-01 + 4.2194566490476665E-01 4.2505198083105783E-01 4.2817223775955426E-01 + 4.3130625052432431E-01 4.3445382548422640E-01 4.3761476031386742E-01 + 4.4078884379096700E-01 4.4397585558011654E-01 4.4717556601293496E-01 + 4.5038773586461034E-01 4.5361211612683777E-01 4.5684844777715156E-01 + 4.6009646154466949E-01 4.6335587767225539E-01 4.6662640567512370E-01 + 4.6990774409590641E-01 4.7319958025621439E-01 4.7650159000472170E-01 + 4.7981343746181637E-01 4.8313477476086059E-01 4.8646524178611505E-01 + 4.8980446590738053E-01 4.9315206171142789E-01 4.9650763073028215E-01 + 4.9987076116644941E-01 5.0324102761516598E-01 5.0661799078377334E-01 + 5.1000119720831949E-01 5.1339017896750738E-01 5.1678445339410917E-01 + 5.2018352278398516E-01 5.2358687410285298E-01 5.2699397869096176E-01 + 5.3040429196584493E-01 5.3381725312332418E-01 5.3723228483697083E-01 + 5.4064879295621726E-01 5.4406616620335491E-01 5.4748377586964148E-01 + 5.5090097551077721E-01 5.5431710064201267E-01 5.5773146843317634E-01 + 5.6114337740391407E-01 5.6455210711947035E-01 5.6795691788733560E-01 + 5.7135705045513241E-01 5.7475172571009736E-01 5.7814014438057593E-01 + 5.8152148673993143E-01 5.8489491231332624E-01 5.8825955958782716E-01 + 5.9161454572633010E-01 5.9495896628581790E-01 5.9829189494048773E-01 + 6.0161238321032140E-01 6.0491946019568354E-01 6.0821213231857973E-01 + 6.1148938307121825E-01 6.1475017277256694E-01 6.1799343833361342E-01 + 6.2121809303207509E-01 6.2442302629734092E-01 6.2760710350646243E-01 + 6.3076916579203413E-01 6.3390802986285721E-01 6.3702248783830506E-01 + 6.4011130709735442E-01 6.4317323014327898E-01 6.4620697448504816E-01 + 6.4921123253650781E-01 6.5218467153447646E-01 6.5512593347690407E-01 + 6.5803363508232260E-01 6.6090636777182976E-01 6.6374269767490435E-01 + 6.6654116566040800E-01 6.6930028739414926E-01 6.7201855342446293E-01 + 6.7469442929728263E-01 6.7732635570224020E-01 6.7991274865137774E-01 + 6.8245199969210812E-01 6.8494247615608772E-01 6.8738252144575607E-01 + 6.8977045536029746E-01 6.9210457446286622E-01 6.9438315249095117E-01 + 6.9660444081179129E-01 6.9876666892482930E-01 7.0086804501321398E-01 + 7.0290675654640811E-01 7.0488097093602264E-01 7.0678883624701272E-01 + 7.0862848196643546E-01 7.1039801983199413E-01 7.1209554472263026E-01 + 7.1371913561346767E-01 7.1526685659743028E-01 7.1673675797589198E-01 + 7.1812687742073400E-01 7.1943524121020352E-01 7.2065986554098571E-01 + 7.2179875791890491E-01 7.2284991863066939E-01 7.2381134229908484E-01 + 7.2468101952412944E-01 7.2545693861228178E-01 7.2613708739646043E-01 + 7.2671945514888936E-01 7.2720203458917365E-01 7.2758282398979568E-01 + 7.2785982938118776E-01 7.2803106685844809E-01 7.2809456499167413E-01 + 7.2804836734178346E-01 7.2789053508356272E-01 7.2761914973754915E-01 + 7.2723231601218641E-01 7.2672816475752899E-01 7.2610485603155983E-01 + 7.2536058227997746E-01 7.2449357163006534E-01 7.2350209129898813E-01 + 7.2238445111656990E-01 7.2113900716229629E-01 7.1976416551592348E-01 + 7.1825838612071524E-01 7.1662018675790540E-01 7.1484814713054712E-01 + 7.1294091305443563E-01 7.1089720075325891E-01 7.0871580125459410E-01 + 7.0639558488276311E-01 7.0393550584390985E-01 7.0133460689800420E-01 + 6.9859202411171750E-01 6.9570699168535166E-01 6.9267884684618231E-01 + 6.8950703479966469E-01 6.8619111372905328E-01 6.8273075983296982E-01 + 6.7912577238940974E-01 6.7537607883359785E-01 6.7148173983589710E-01 + 6.6744295436478862E-01 6.6326006471864529E-01 6.5893356150865534E-01 + 6.5446408857388949E-01 6.4985244780799134E-01 6.4509960387547749E-01 + 6.4020668879404286E-01 6.3517500635761404E-01 6.3000603637321007E-01 + 6.2470143868294059E-01 6.1926305694064276E-01 6.1369292211088777E-01 + 6.0799325565616835E-01 6.0216647237623089E-01 5.9621518286161990E-01 + 5.9014219552154457E-01 5.8395051814435672E-01 5.7764335894697849E-01 + 5.7122412706783943E-01 5.6469643245609058E-01 5.5806408510815375E-01 + 5.5133109360110477E-01 5.4450166287095281E-01 5.3758019118254530E-01 + 5.3057126623684792E-01 5.2347966036043869E-01 5.1631032472159366E-01 + 5.0906838251715603E-01 5.0175912107457910E-01 4.9438798281428525E-01 + 4.8696055501871865E-01 4.7948255835633180E-01 4.7195983411139925E-01 + 4.6439833007392090E-01 4.5680408504828046E-01 4.4918321194473698E-01 + 4.4154187942441736E-01 4.3388629207650620E-01 4.2622266911575879E-01 + 4.1855722159970404E-01 4.1089612817803312E-01 4.0324550940187798E-01 + 3.9561140063840017E-01 3.8799972365642521E-01 3.8041625697214304E-01 + 3.7286660507058261E-01 3.6535616664881854E-01 3.5789010206132882E-01 + 3.5047330018685630E-01 3.4311034498008464E-01 3.3580548202102012E-01 + 3.2856258543066691E-01 3.2138512558408516E-01 3.1427613828109646E-01 + 3.0723821079893865E-01 3.0027363270773061E-01 2.9338456179454547E-01 + 2.8657304009421053E-01 2.7984099473904750E-01 2.7319023891559135E-01 + 2.6662247292909197E-01 2.6013928537399961E-01 2.5374215440989140E-01 + 2.4743244914169849E-01 2.4121143110288576E-01 2.3508025583992034E-01 + 2.2903997459603431E-01 2.2309153609187268E-01 2.1723578840020552E-01 + 2.1147348091142809E-01 2.0580526638608432E-01 2.0023170309017790E-01 + 1.9475325700854415E-01 1.8937030413106234E-01 1.8408313280604047E-01 + 1.7889194615463971E-01 1.7379686453980109E-01 1.6879792808275326E-01 + 1.6389509921982406E-01 1.5908826529198902E-01 1.5437724115931256E-01 + 1.4976177183222350E-01 1.4524153511139140E-01 1.4081614422782393E-01 + 1.3648515047472137E-01 1.3224804582257838E-01 1.2810426550901380E-01 + 1.2405319059488487E-01 1.2009415047835273E-01 1.1622642535878623E-01 + 1.1244924864270103E-01 1.0876180928436467E-01 1.0516325405429751E-01 + 1.0165268972967814E-01 9.8229185201648847E-02 9.4891773495763942E-02 + 9.1639453703314847E-02 8.8471192823043235E-02 8.5385927514792112E-02 + 8.2382565768906235E-02 7.9459988497651332E-02 7.6617051057441890E-02 + 7.3852584713173769E-02 7.1165398058269297E-02 6.8554278405992347E-02 + 6.6017993168997896E-02 6.3555291244749818E-02 6.1164904424203734E-02 + 5.8845548839908252E-02 5.6595926467346576E-02 5.4414726689979202E-02 + 5.2300627934172762E-02 5.0252299375238431E-02 4.8268402710482279E-02 + 4.6347593989857133E-02 4.4488525489903452E-02 4.2689847612570726E-02 + 4.0950210787521854E-02 3.9268267354876346E-02 3.7642673405123638E-02 + 3.6072090554090275E-02 3.4555187633216057E-02 3.3090642278702551E-02 + 3.1677142407031088E-02 3.0313387568553937E-02 2.8998090175017987E-02 + 2.7729976600718010E-02 2.6507788160290084E-02 2.5330281968819316E-02 + 2.4196231691908921E-02 2.3104428194643371E-02 2.2053680099048036E-02 + 2.1042814259791317E-02 2.0070676167599187E-02 1.9136130289272975E-02 + 1.8238060352417176E-02 1.7375369582085499E-02 1.6546980895617260E-02 + 1.5751837061011315E-02 1.4988900823317103E-02 1.4257155002733430E-02 + 1.3555602567408788E-02 1.2883266683341662E-02 1.2239190743277360E-02 + 1.1622438376089724E-02 1.1032093437809564E-02 1.0467259985207511E-02 + 9.9270622326488173E-03 9.4106444928000448E-03 8.9171711016728886E-03 + 8.4458263284333847E-03 7.9958142703736527E-03 7.5663587334361638E-03 + 7.1567030986892759E-03 6.7661101751730285E-03 6.3938620395635748E-03 + 6.0392598631384643E-03 5.7016237265602307E-03 5.3802924230321302E-03 + 5.0746232504124333E-03 4.7839917929034742E-03 4.5077916929558296E-03 + 4.2454344140454448E-03 3.9963489949928800E-03 3.7599817964966992E-03 + 3.5357962405489856E-03 3.3232725433891006E-03 3.1219074426329461E-03 + 2.9312139191910911E-03 2.7507209145518803E-03 2.5799730439877619E-03 + 2.4185303061823563E-03 2.2659677897480072E-03 2.1218753770764344E-03 + 1.9858574458942019E-03 1.8575325688903823E-03 1.7365332117380426E-03 + 1.6225054297757894E-03 1.5151085636506583E-03 1.4140149341361724E-03 + 1.3189095363536631E-03 1.2294897336447095E-03 1.1454649512625478E-03 + 1.0665563701223668E-03 9.9249662081440991E-04 9.2302947807803822E-04 + 8.5790955597406162E-04 7.9690200397772792E-04 7.3978220423108574E-04 + 6.8633547020190871E-04 6.3635674700537794E-04 5.8965031365279909E-04 + 5.4602948749857153E-04 5.0531633116179971E-04 4.6734136220234827E-04 + 4.3194326583244065E-04 3.9896861094403628E-04 3.6827156972919783E-04 + 3.3971364116545331E-04 3.1316337863083343E-04 2.8849612190403213E-04 + 2.6559373379400988E-04 2.4434434163065157E-04 2.2464208383390319E-04 + 2.0638686176336610E-04 1.8948409703389198E-04 1.7384449446540109E-04 + 1.5938381081725316E-04 1.4602262943915281E-04 1.3368614095198630E-04 + 1.2230393005335045E-04 1.1180976852398090E-04 1.0214141449297008E-04 + 9.3240418001740543E-05 8.5051932889274059E-05 7.7524535004242200E-05 + 7.0610046733492987E-05 6.4263367820900763E-05 5.8442312435952260E-05 + 5.3107452437653977E-05 4.8221966766441368E-05 4.3751496884785665E-05 + 3.9664008176123364E-05 3.5929657201600914E-05 3.2520664704921286E-05 + 2.9411194247287340E-05 2.6577236347057319E-05 2.3996497992221955E-05 + 2.1648297388170266E-05 1.9513463798394260E-05 1.7574242331759878E-05 + 1.5814203526711660E-05 1.4218157580239791E-05 1.2772073067583108E-05 + 1.1462999997433353E-05 1.0278997046798695E-05 9.2090628196428992E-06 + 8.2430709738967516E-06 7.3717090624004544E-06 6.5864209347419959E-06 + 5.8793525487662067E-06 5.2433010427050419E-06 4.6716669213867267E-06 + 4.1584092127816766E-06 3.6980034542058252E-06 3.2854023707927710E-06 + 2.9159991123350645E-06 2.5855929182534092E-06 2.2903570842519562E-06 + 2.0268091081334376E-06 1.7917828962548313E-06 1.5824029161799152E-06 + 1.3960601852087586E-06 1.2303899886160960E-06 1.0832512255924986E-06 + 9.5270728503822687E-07 8.3700835749366787E-07 7.3457509358921686E-07 + 6.4398352344826989E-07 5.6395115546852280E-07 4.9332417682890817E-07 + 4.3106568191309173E-07 3.7624485859754165E-07 3.2802706601591718E-07 + 2.8566474097571315E-07 2.4848907366279221E-07 2.1590239662028700E-07 + 1.8737123422690141E-07 1.6241996302325123E-07 1.4062503624143107E-07 + 1.2160972878124343E-07 1.0503936164565014E-07 9.0616967497857058E-08 + 7.8079361533373728E-08 6.7193584273197360E-08 5.7753685180219360E-08 + 4.9577818181713307E-08 4.2505622248319351E-08 3.6395862136651593E-08 + 3.1124306251121499E-08 2.6581820323659993E-08 2.2672657250818672E-08 + 1.9312924969490871E-08 1.6429215698628851E-08 1.3957381228384883E-08 + 1.1841440203687197E-08 1.0032604530082455E-08 8.4884131294635851E-09 + 7.1719622958158608E-09 6.0512228501103358E-09 5.0984351726854102E-09 + 4.2895740045797638E-09 3.6038756599559591E-09 3.0234209835522549E-09 + 2.5327680235130237E-09 2.1186289743705104E-09 1.7695864806773326E-09 + 1.4758448820039296E-09 1.2290124277837178E-09 1.0219108987557073E-09 + 8.4840944333670076E-10 7.0327977484121328E-10 5.8207018161438598E-10 + 4.8099607927675029E-10 3.9684508469407516E-10 3.2689481714473554E-10 + 2.6884183549632861E-10 2.2074030293234576E-10 1.8094913467500950E-10 + 1.4808653089917635E-10 1.2099092817636218E-10 9.8687519768182647E-11 + 8.0359599239125251E-11 6.5324074412213787E-11 5.3010580783582758E-11 + 4.2943696187435854E-11 3.4727822718765535E-11 2.8034358553476436E-11 + 2.2590832153544133E-11 1.8171715136274605E-11 1.4590668482600013E-11 + 1.1694010358542356E-11 9.3552231678810769E-12 7.4703430308988895E-12 + 5.9540971331033652E-12 4.7366737032943239E-12 3.7610261153257168E-12 + 2.9806270777990046E-12 2.3576013618434443E-12 1.8611762690495981E-12 + 1.4663982812715054E-12 1.1530722576485958E-12 9.0488632509607209E-13 + 7.0869139930439854E-13 5.5390920810663552E-13 4.3204688551110029E-13 + 3.3629976561014443E-13 2.6122702070989085E-13 2.0248733550440706E-13 + 1.5662395678520111E-13 1.2089026480916458E-13 9.3108528843549432E-14 + 7.1555779362620838E-14 5.4871790557637434E-14 4.1985051561589745E-14 + 3.2053340747849987E-14 2.4416128259139329E-14 1.8556537679524191E-14 + 1.4071015571882585E-14 1.0645201954619205E-14 8.0347779330757430E-15 + 6.0502989626473493E-15 4.5452122912888803E-15 3.4064122997621703E-15 + 2.5468138307076952E-15 1.8995262664814928E-15 1.4132943223324346E-15 + 1.0489387886817602E-15 7.7658470214338195E-16 5.7350806046489691E-16 + 4.2246720850160234E-16 3.1041304346750151E-16 2.2749455641375420E-16 + 1.6629403726922631E-16 1.2124041484979395E-16 8.8160406281107201E-17 + 6.3936000389721917E-17 4.6243772370843205E-17 3.3357005946616457E-17 + 2.3995892697462850E-17 1.7214433605253811E-17 1.2315282871472748E-17 + 8.7858064788438265E-18 6.2502031553201627E-18 4.4337528026756090E-18 + 3.1361956727995809E-18 2.2119665746601758E-18 1.5555608729780018E-18 + 1.0907311585924498E-18 7.6253504722134075E-19 5.3149882440391195E-19 + 3.6934663824230458E-19 2.5588461464810254E-19 1.7673441293173678E-19 + 1.2168964879741117E-19 8.3527651323324960E-20 5.7153057260875251E-20 + 3.8982490195912439E-20 2.6503843220305871E-20 1.7961617443298216E-20 + 1.2132977464012162E-20 8.1688824158838684E-21 5.4817477359623247E-21 + 3.6662690484831139E-21 2.4438026867340482E-21 1.6234241069577021E-21 + 1.0747546006965991E-21 7.0906397281328602E-22 4.6617343185777740E-22 + 3.0540961730802662E-22 1.9937834201512837E-22 1.2969409785699329E-22 + 8.4061314141239545E-23 5.4286585350191739E-23 3.4929776597760088E-23 + 2.2391977848574599E-23 1.4301078325203437E-23 9.0993631825933582E-24 + 5.7677335804323366E-24 3.6419778264854886E-24 2.2908316973394207E-24 + 1.4353529928531654E-24 8.9581578399095246E-25 5.5687756347849904E-25 + 3.4479842616846128E-25 2.1262896082464501E-25 1.3059190846780473E-25 + 7.9878855146057508E-26 4.8657969780756481E-26 2.9516678277645760E-26 + 1.7830230393154474E-26 1.0725237322543778E-26 6.4239437632914528E-27 + 3.8311192347319220E-27 2.2749028437883567E-27 1.3449225825903125E-27 + 7.9161285423011324E-28 4.6386675948632744E-28 2.7059648025161416E-28 + 1.5713864143218877E-28 9.0836241663443064E-29 5.2267755764863971E-29 + 2.9935751897652663E-29 1.7065187570421758E-29 9.6823184319099054E-30 + 5.4673609405551847E-30 3.0724779362220456E-30 1.7182836668595595E-30 + 9.5626507949195161E-31 5.2956737871272280E-31 2.9181368674733364E-31 + 1.5999760035737002E-31 8.7282343214428212E-32 4.7372471193116639E-32 + 2.5579606590043066E-32 1.3740773519667201E-32 7.3427575222541185E-33 + 3.9031830813974588E-33 2.0638175219152339E-33 1.0854181318181212E-33 + 5.6777580398069053E-34 2.9538688557211764E-34 1.5283415050885005E-34 + 7.8640213230550447E-35 4.0238715061007859E-35 2.0473806837017751E-35 + 1.0358287595836827E-35 5.2106493040885735E-36 2.6060920498461263E-36 + 1.2958688710174729E-36 6.4059714107125053E-37 3.1480430442608680E-37 + 1.5378253361632758E-37 7.4672873613042261E-38 3.6040175897580563E-38 + 1.7288514135273391E-38 8.2423978953378419E-39 3.9052864582133368E-39 + 1.8387969185059995E-39 8.6034808521548107E-40 3.9999269101362852E-40 + 1.8477579758306320E-40 8.4806842451204823E-41 3.8671138856817839E-41 + 1.7518246774789108E-41 7.8835005651011763E-42 3.5241119906755537E-42 + 1.5648025711007637E-42 6.9011470816841603E-43 3.0228590284092581E-43 + 1.3151497422056639E-43 5.6798616819921163E-44 2.4292910597665126E-44 + 1.0315585130330755E-44 4.3486446455822172E-45 1.8198378545958205E-45 + + + -7.4625120536145340E-14 -1.3868188916060323E-05 -2.7855156185448337E-05 + -4.1961919121179062E-05 -5.6189503749331271E-05 -7.0538944883672615E-05 + -8.5011286200923139E-05 -9.9607580316664145E-05 -1.1432888886189742E-04 + -1.2917628256025869E-04 -1.4415084130589326E-04 -1.5925365424200122E-04 + -1.7448581984004887E-04 -1.8984844597966439E-04 -2.0534265002921634E-04 + -2.2096955892708276E-04 -2.3673030926361116E-04 -2.5262604736378834E-04 + -2.6865792937061427E-04 -2.8482712132918891E-04 -3.0113479927151930E-04 + -3.1758214930206020E-04 -3.3417036768397187E-04 -3.5090066092613442E-04 + -3.6777424587089436E-04 -3.8479234978257097E-04 -4.0195621043670932E-04 + -4.1926707621011637E-04 -4.3672620617164905E-04 -4.5433487017378977E-04 + -4.7209434894500760E-04 -4.9000593418289842E-04 -5.0807092864814634E-04 + -5.2629064625925954E-04 -5.4466641218814274E-04 -5.6319956295647485E-04 + -5.8189144653292063E-04 -6.0074342243115586E-04 -6.1975686180876710E-04 + -6.3893314756695828E-04 -6.5827367445114003E-04 -6.7777984915236907E-04 + -6.9745309040965785E-04 -7.1729482911316001E-04 -7.3730650840824331E-04 + -7.5748958380043808E-04 -7.7784552326131990E-04 -7.9837580733525045E-04 + -8.1908192924708004E-04 -8.3996539501073671E-04 -8.6102772353875766E-04 + -8.8227044675278157E-04 -9.0369510969493579E-04 -9.2530327064023683E-04 + -9.4709650120989122E-04 -9.6907638648563378E-04 -9.9124452512498935E-04 + -1.0136025294775522E-03 -1.0361520257022479E-03 -1.0588946538855992E-03 + -1.0818320681610296E-03 -1.1049659368291358E-03 -1.1282979424790619E-03 + -1.1518297821108308E-03 -1.1755631672588059E-03 -1.1994998241161528E-03 + -1.2236414936603658E-03 -1.2479899317799237E-03 -1.2725469094019828E-03 + -1.2973142126211530E-03 -1.3222936428294299E-03 -1.3474870168471808E-03 + -1.3728961670553151E-03 -1.3985229415285165E-03 -1.4243692041696703E-03 + -1.4504368348454218E-03 -1.4767277295228874E-03 -1.5032438004075597E-03 + -1.5299869760823732E-03 -1.5569592016479528E-03 -1.5841624388641109E-03 + -1.6115986662924948E-03 -1.6392698794404808E-03 -1.6671780909063520E-03 + -1.6953253305255927E-03 -1.7237136455185902E-03 -1.7523451006394709E-03 + -1.7812217783262998E-03 -1.8103457788525104E-03 -1.8397192204796635E-03 + -1.8693442396114958E-03 -1.8992229909493043E-03 -1.9293576476486463E-03 + -1.9597504014773914E-03 -1.9904034629751061E-03 -2.0213190616138461E-03 + -2.0524994459602762E-03 -2.0839468838392272E-03 -2.1156636624985914E-03 + -2.1476520887756877E-03 -2.1799144892650415E-03 -2.2124532104875710E-03 + -2.2452706190612356E-03 -2.2783691018731641E-03 -2.3117510662532502E-03 + -2.3454189401492078E-03 -2.3793751723031561E-03 -2.4136222324297072E-03 + -2.4481626113955755E-03 -2.4829988214007145E-03 -2.5181333961610472E-03 + -2.5535688910926961E-03 -2.5893078834978408E-03 -2.6253529727521528E-03 + -2.6617067804938447E-03 -2.6983719508143086E-03 -2.7353511504503948E-03 + -2.7726470689783929E-03 -2.8102624190095853E-03 -2.8481999363875314E-03 + -2.8864623803870337E-03 -2.9250525339148013E-03 -2.9639732037118338E-03 + -3.0032272205575083E-03 -3.0428174394754957E-03 -3.0827467399413291E-03 + -3.1230180260918431E-03 -3.1636342269363558E-03 -3.2045982965696889E-03 + -3.2459132143869539E-03 -3.2875819853002445E-03 -3.3296076399572053E-03 + -3.3719932349613405E-03 -3.4147418530943198E-03 -3.4578566035402087E-03 + -3.5013406221115128E-03 -3.5451970714772468E-03 -3.5894291413929033E-03 + -3.6340400489324339E-03 -3.6790330387221799E-03 -3.7244113831767993E-03 + -3.7701783827373205E-03 -3.8163373661110060E-03 -3.8628916905135311E-03 + -3.9098447419130891E-03 -3.9571999352765695E-03 -4.0049607148179324E-03 + -4.0531305542486221E-03 -4.1017129570302324E-03 -4.1507114566291820E-03 + -4.2001296167737271E-03 -4.2499710317131009E-03 -4.3002393264787936E-03 + -4.3509381571482549E-03 -4.4020712111106841E-03 -4.4536422073351845E-03 + -4.5056548966411446E-03 -4.5581130619710471E-03 -4.6110205186655302E-03 + -4.6643811147407243E-03 -4.7181987311682005E-03 -4.7724772821570415E-03 + -4.8272207154385072E-03 -4.8824330125531489E-03 -4.9381181891401732E-03 + -4.9942802952295424E-03 -5.0509234155364340E-03 -5.1080516697581888E-03 + -5.1656692128739298E-03 -5.2237802354466378E-03 -5.2823889639278766E-03 + -5.3414996609650002E-03 -5.4011166257112121E-03 -5.4612441941380933E-03 + -5.5218867393508290E-03 -5.5830486719062504E-03 -5.6447344401333857E-03 + -5.7069485304570679E-03 -5.7696954677239525E-03 -5.8329798155315783E-03 + -5.8968061765601737E-03 -5.9611791929072722E-03 -6.0261035464251982E-03 + -6.0915839590615127E-03 -6.1576251932022813E-03 -6.2242320520182479E-03 + -6.2914093798141614E-03 -6.3591620623808633E-03 -6.4274950273505568E-03 + -6.4964132445549929E-03 -6.5659217263868549E-03 -6.6360255281640640E-03 + -6.7067297484973169E-03 -6.7780395296608261E-03 -6.8499600579660690E-03 + -6.9224965641388287E-03 -6.9956543236994653E-03 -7.0694386573464073E-03 + -7.1438549313429947E-03 -7.2189085579074715E-03 -7.2946049956065526E-03 + -7.3709497497520503E-03 -7.4479483728012918E-03 -7.5256064647604946E-03 + -7.6039296735920803E-03 -7.6829236956249347E-03 -7.7625942759688375E-03 + -7.8429472089316509E-03 -7.9239883384408724E-03 -8.0057235584681755E-03 + -8.0881588134579206E-03 -8.1713000987591305E-03 -8.2551534610613864E-03 + -8.3397249988342304E-03 -8.4250208627705790E-03 -8.5110472562334085E-03 + -8.5978104357070217E-03 -8.6853167112515492E-03 -8.7735724469616624E-03 + -8.8625840614289363E-03 -8.9523580282085714E-03 -9.0429008762896428E-03 + -9.1342191905697933E-03 -9.2263196123335885E-03 -9.3192088397353219E-03 + -9.4128936282857050E-03 -9.5073807913428742E-03 -9.6026772006073298E-03 + -9.6987897866214774E-03 -9.7957255392732371E-03 -9.8934915083038737E-03 + -9.9920948038204234E-03 -1.0091542596812093E-02 -1.0191842119671618E-02 + -1.0293000666720490E-02 -1.0395025594739317E-02 -1.0497924323501960E-02 + -1.0601704336314981E-02 -1.0706373180561096E-02 -1.0811938468247762E-02 + -1.0918407876559963E-02 -1.1025789148418281E-02 -1.1134090093041083E-02 + -1.1243318586512082E-02 -1.1353482572352660E-02 -1.1464590062098386E-02 + -1.1576649135881681E-02 -1.1689667943018341E-02 -1.1803654702599708E-02 + -1.1918617704089581E-02 -1.2034565307926555E-02 -1.2151505946131050E-02 + -1.2269448122917921E-02 -1.2388400415314240E-02 -1.2508371473781950E-02 + -1.2629370022846502E-02 -1.2751404861730251E-02 -1.2874484864991676E-02 + -1.2998618983169754E-02 -1.3123816243434056E-02 -1.3250085750240384E-02 + -1.3377436685991605E-02 -1.3505878311704954E-02 -1.3635419967684073E-02 + -1.3766071074197419E-02 -1.3897841132162326E-02 -1.4030739723834625E-02 + -1.4164776513504687E-02 -1.4299961248198986E-02 -1.4436303758387434E-02 + -1.4573813958697638E-02 -1.4712501848634145E-02 -1.4852377513304796E-02 + -1.4993451124152396E-02 -1.5135732939693388E-02 -1.5279233306262366E-02 + -1.5423962658762998E-02 -1.5569931521425622E-02 -1.5717150508570806E-02 + -1.5865630325379951E-02 -1.6015381768672021E-02 -1.6166415727687341E-02 + -1.6318743184877540E-02 -1.6472375216702476E-02 -1.6627322994434382E-02 + -1.6783597784967959E-02 -1.6941210951638135E-02 -1.7100173955044470E-02 + -1.7260498353882669E-02 -1.7422195805783063E-02 -1.7585278068156244E-02 + -1.7749756999046101E-02 -1.7915644557990003E-02 -1.8082952806886050E-02 + -1.8251693910867992E-02 -1.8421880139187823E-02 -1.8593523866105240E-02 + -1.8766637571785153E-02 -1.8941233843202648E-02 -1.9117325375055810E-02 + -1.9294924970686148E-02 -1.9474045543006788E-02 -1.9654700115438829E-02 + -1.9836901822855295E-02 -2.0020663912533595E-02 -2.0205999745115520E-02 + -2.0392922795576026E-02 -2.0581446654199195E-02 -2.0771585027564144E-02 + -2.0963351739537606E-02 -2.1156760732276056E-02 -2.1351826067235628E-02 + -2.1548561926191583E-02 -2.1746982612265164E-02 -2.1947102550960208E-02 + -2.2148936291207937E-02 -2.2352498506421077E-02 -2.2557803995556257E-02 + -2.2764867684186424E-02 -2.2973704625581369E-02 -2.3184330001797773E-02 + -2.3396759124779128E-02 -2.3611007437463326E-02 -2.3827090514901852E-02 + -2.4045024065386562E-02 -2.4264823931587184E-02 -2.4486506091697686E-02 + -2.4710086660592871E-02 -2.4935581890994759E-02 -2.5163008174648359E-02 + -2.5392382043507761E-02 -2.5623720170932389E-02 -2.5857039372893426E-02 + -2.6092356609189377E-02 -2.6329688984673694E-02 -2.6569053750491168E-02 + -2.6810468305325859E-02 -2.7053950196659078E-02 -2.7299517122037712E-02 + -2.7547186930354250E-02 -2.7796977623136446E-02 -2.8048907355848675E-02 + -2.8302994439204126E-02 -2.8559257340487545E-02 -2.8817714684890097E-02 + -2.9078385256854744E-02 -2.9341288001432663E-02 -2.9606442025652383E-02 + -2.9873866599899292E-02 -3.0143581159307126E-02 -3.0415605305161363E-02 + -3.0689958806314144E-02 -3.0966661600611064E-02 -3.1245733796330701E-02 + -3.1527195673635364E-02 -3.1811067686033812E-02 -3.2097370461857962E-02 + -3.2386124805749990E-02 -3.2677351700163421E-02 -3.2971072306875342E-02 + -3.3267307968513148E-02 -3.3566080210092906E-02 -3.3867410740570120E-02 + -3.4171321454405275E-02 -3.4477834433140696E-02 -3.4786971946992130E-02 + -3.5098756456451934E-02 -3.5413210613907765E-02 -3.5730357265272794E-02 + -3.6050219451631109E-02 -3.6372820410896067E-02 -3.6698183579482818E-02 + -3.7026332593994252E-02 -3.7357291292922326E-02 -3.7691083718361905E-02 + -3.8027734117740360E-02 -3.8367266945560370E-02 -3.8709706865158698E-02 + -3.9055078750477666E-02 -3.9403407687853775E-02 -3.9754718977819209E-02 + -4.0109038136918761E-02 -4.0466390899543188E-02 -4.0826803219776088E-02 + -4.1190301273256652E-02 -4.1556911459058751E-02 -4.1926660401584853E-02 + -4.2299574952474696E-02 -4.2675682192532212E-02 -4.3055009433666289E-02 + -4.3437584220848327E-02 -4.3823434334086045E-02 -4.4212587790413954E-02 + -4.4605072845899374E-02 -4.5000917997665958E-02 -4.5400151985933133E-02 + -4.5802803796072690E-02 -4.6208902660682998E-02 -4.6618478061679486E-02 + -4.7031559732401446E-02 -4.7448177659738806E-02 -4.7868362086273923E-02 + -4.8292143512442022E-02 -4.8719552698709465E-02 -4.9150620667769346E-02 + -4.9585378706755126E-02 -5.0023858369473838E-02 -5.0466091478654523E-02 + -5.0912110128218356E-02 -5.1361946685565353E-02 -5.1815633793880211E-02 + -5.2273204374457150E-02 -5.2734691629042915E-02 -5.3200129042200318E-02 + -5.3669550383689951E-02 -5.4142989710870427E-02 -5.4620481371120751E-02 + -5.5102060004279842E-02 -5.5587760545105440E-02 -5.6077618225757034E-02 + -5.6571668578293238E-02 -5.7069947437193687E-02 -5.7572490941898521E-02 + -5.8079335539370849E-02 -5.8590517986676867E-02 -5.9106075353589548E-02 + -5.9626045025211620E-02 -6.0150464704619530E-02 -6.0679372415529564E-02 + -6.1212806504985014E-02 -6.1750805646063493E-02 -6.2293408840608057E-02 + -6.2840655421977906E-02 -6.3392585057823553E-02 -6.3949237752880875E-02 + -6.4510653851790070E-02 -6.5076874041935615E-02 -6.5647939356308846E-02 + -6.6223891176393851E-02 -6.6804771235075125E-02 -6.7390621619567909E-02 + -6.7981484774374629E-02 -6.8577403504259615E-02 -6.9178420977251381E-02 + -6.9784580727666051E-02 -7.0395926659154992E-02 -7.1012503047778425E-02 + -7.1634354545097395E-02 -7.2261526181296692E-02 -7.2894063368326434E-02 + -7.3532011903071709E-02 -7.4175417970544680E-02 -7.4824328147100563E-02 + -7.5478789403683064E-02 -7.6138849109087636E-02 -7.6804555033255534E-02 + -7.7475955350591277E-02 -7.8153098643303776E-02 -7.8836033904776268E-02 + -7.9524810542958152E-02 -8.0219478383786638E-02 -8.0920087674629382E-02 + -8.1626689087756957E-02 -8.2339333723842376E-02 -8.3058073115481204E-02 + -8.3782959230744677E-02 -8.4514044476753925E-02 -8.5251381703285889E-02 + -8.5995024206401816E-02 -8.6745025732104186E-02 -8.7501440480022008E-02 + -8.8264323107121165E-02 -8.9033728731442094E-02 -8.9809712935868827E-02 + -9.0592331771918388E-02 -9.1381641763564822E-02 -9.2177699911086236E-02 + -9.2980563694942758E-02 -9.3790291079679275E-02 -9.4606940517859978E-02 + -9.5430570954027932E-02 -9.6261241828694569E-02 -9.7099013082355537E-02 + -9.7943945159539053E-02 -9.8796099012877989E-02 -9.9655536107213366E-02 + -1.0052231842372647E-01 -1.0139650846409770E-01 -1.0227816925469817E-01 + -1.0316736435080449E-01 -1.0406415784084921E-01 -1.0496861435069375E-01 + -1.0588079904793588E-01 -1.0680077764624279E-01 -1.0772861640971580E-01 + -1.0866438215728098E-01 -1.0960814226711406E-01 -1.1055996468108950E-01 + -1.1151991790926144E-01 -1.1248807103437605E-01 -1.1346449371640784E-01 + -1.1444925619713116E-01 -1.1544242930471675E-01 -1.1644408445836113E-01 + -1.1745429367294215E-01 -1.1847312956370691E-01 -1.1950066535098626E-01 + -1.2053697486494164E-01 -1.2158213255033934E-01 -1.2263621347135305E-01 + -1.2369929331639878E-01 -1.2477144840299467E-01 -1.2585275568265664E-01 + -1.2694329274581437E-01 -1.2804313782676302E-01 -1.2915236980864098E-01 + -1.3027106822843676E-01 -1.3139931328202456E-01 -1.3253718582922749E-01 + -1.3368476739891283E-01 -1.3484214019410937E-01 -1.3600938709715779E-01 + -1.3718659167488753E-01 -1.3837383818382248E-01 -1.3957121157540908E-01 + -1.4077879750127800E-01 -1.4199668231853324E-01 -1.4322495309506017E-01 + -1.4446369761486791E-01 -1.4571300438345844E-01 -1.4697296263321455E-01 + -1.4824366232881975E-01 -1.4952519417270346E-01 -1.5081764961050761E-01 + -1.5212112083658261E-01 -1.5343570079950442E-01 -1.5476148320761773E-01 + -1.5609856253460058E-01 -1.5744703402505769E-01 -1.5880699370012824E-01 + -1.6017853836312326E-01 -1.6156176560518171E-01 -1.6295677381095150E-01 + -1.6436366216428350E-01 -1.6578253065395707E-01 -1.6721348007941633E-01 + -1.6865661205652929E-01 -1.7011202902336814E-01 -1.7157983424600068E-01 + -1.7306013182430913E-01 -1.7455302669781597E-01 -1.7605862465152952E-01 + -1.7757703232180885E-01 -1.7910835720223842E-01 -1.8065270764951524E-01 + -1.8221019288935325E-01 -1.8378092302240023E-01 -1.8536500903015771E-01 + -1.8696256278092258E-01 -1.8857369703573118E-01 -1.9019852545430918E-01 + -1.9183716260103714E-01 -1.9348972395091571E-01 -1.9515632589553950E-01 + -1.9683708574906661E-01 -1.9853212175420895E-01 -2.0024155308820268E-01 + -2.0196549986879531E-01 -2.0370408316022184E-01 -2.0545742497918523E-01 + -2.0722564830082804E-01 -2.0900887706470131E-01 -2.1080723618072902E-01 + -2.1262085153515853E-01 -2.1444984999650679E-01 -2.1629435942149070E-01 + -2.1815450866094838E-01 -2.2003042756574223E-01 -2.2192224699264990E-01 + -2.2383009881022523E-01 -2.2575411590465708E-01 -2.2769443218558799E-01 + -2.2965118259191791E-01 -2.3162450309757954E-01 -2.3361453071728414E-01 + -2.3562140351223174E-01 -2.3764526059580252E-01 -2.3968624213919076E-01 + -2.4174448937701834E-01 -2.4382014461289733E-01 -2.4591335122495830E-01 + -2.4802425367131770E-01 -2.5015299749551434E-01 -2.5229972933187700E-01 + -2.5446459691085199E-01 -2.5664774906425669E-01 -2.5884933573048996E-01 + -2.6106950795966605E-01 -2.6330841791868070E-01 -2.6556621889621662E-01 + -2.6784306530765756E-01 -2.7013911269994534E-01 -2.7245451775633378E-01 + -2.7478943830107067E-01 -2.7714403330398885E-01 -2.7951846288498999E-01 + -2.8191288831845301E-01 -2.8432747203751957E-01 -2.8676237763828066E-01 + -2.8921776988385617E-01 -2.9169381470834943E-01 -2.9419067922068831E-01 + -2.9670853170833633E-01 -2.9924754164086576E-01 -3.0180787967341899E-01 + -3.0438971764999295E-01 -3.0699322860660683E-01 -3.0961858677429499E-01 + -3.1226596758195685E-01 -3.1493554765902992E-01 -3.1762750483799945E-01 + -3.2034201815672581E-01 -3.2307926786059027E-01 -3.2583943540444232E-01 + -3.2862270345436700E-01 -3.3142925588922151E-01 -3.3425927780198661E-01 + -3.3711295550087100E-01 -3.3999047651020903E-01 -3.4289202957111664E-01 + -3.4581780464189577E-01 -3.4876799289819505E-01 -3.5174278673290793E-01 + -3.5474237975579587E-01 -3.5776696679284442E-01 -3.6081674388531587E-01 + -3.6389190828850915E-01 -3.6699265847022444E-01 -3.7011919410888960E-01 + -3.7327171609137794E-01 -3.7645042651046445E-01 -3.7965552866195862E-01 + -3.8288722704145101E-01 -3.8614572734070918E-01 -3.8943123644366728E-01 + -3.9274396242204024E-01 -3.9608411453051423E-01 -3.9945190320151364E-01 + -4.0284754003954587E-01 -4.0627123781508745E-01 -4.0972321045800686E-01 + -4.1320367305051803E-01 -4.1671284181963347E-01 -4.2025093412911702E-01 + -4.2381816847090670E-01 -4.2741476445601861E-01 -4.3104094280486999E-01 + -4.3469692533705351E-01 -4.3838293496051489E-01 -4.4209919566012429E-01 + -4.4584593248563043E-01 -4.4962337153897047E-01 -4.5343173996091146E-01 + -4.5727126591703654E-01 -4.6114217858300016E-01 -4.6504470812907811E-01 + -4.6897908570399277E-01 -4.7294554341794670E-01 -4.7694431432489182E-01 + -4.8097563240398472E-01 -4.8503973254022165E-01 -4.8913685050420019E-01 + -4.9326722293102787E-01 -4.9743108729831786E-01 -5.0162868190324228E-01 + -5.0586024583866118E-01 -5.1012601896825494E-01 -5.1442624190063202E-01 + -5.1876115596243877E-01 -5.2313100317036487E-01 -5.2753602620209150E-01 + -5.3197646836607748E-01 -5.3645257357022136E-01 -5.4096458628931587E-01 + -5.4551275153129364E-01 -5.5009731480220969E-01 -5.5471852206994954E-01 + -5.5937661972660457E-01 -5.6407185454948372E-01 -5.6880447366075659E-01 + -5.7357472448563129E-01 -5.7838285470908846E-01 -5.8322911223107221E-01 + -5.8811374512017944E-01 -5.9303700156571126E-01 -5.9799912982810832E-01 + -6.0300037818771457E-01 -6.0804099489181340E-01 -6.1312122809988767E-01 + -6.1824132582707880E-01 -6.2340153588578795E-01 -6.2860210582535103E-01 + -6.3384328286976699E-01 -6.3912531385340499E-01 -6.4444844515467259E-01 + -6.4981292262753121E-01 -6.5521899153088037E-01 -6.6066689645567778E-01 + -6.6615688124980543E-01 -6.7168918894059493E-01 -6.7726406165490982E-01 + -6.8288174053682815E-01 -6.8854246566275135E-01 -6.9424647595393851E-01 + -6.9999400908640130E-01 -7.0578530139805273E-01 -7.1162058779309112E-01 + -7.1750010164350830E-01 -7.2342407468767844E-01 -7.2939273692594098E-01 + -7.3540631651310440E-01 -7.4146503964778909E-01 -7.4756913045856777E-01 + -7.5371881088676240E-01 -7.5991430056587717E-01 -7.6615581669752797E-01 + -7.7244357392385243E-01 -7.7877778419622867E-01 -7.8515865664031304E-01 + -7.9158639741721404E-01 -7.9806120958077331E-01 -8.0458329293081610E-01 + -8.1115284386234343E-01 -8.1777005521047019E-01 -8.2443511609109565E-01 + -8.3114821173716169E-01 -8.3790952333041002E-01 -8.4471922782851094E-01 + -8.5157749778750802E-01 -8.5848450117940223E-01 -8.6544040120480181E-01 + -8.7244535610052643E-01 -8.7949951894205058E-01 -8.8660303744061597E-01 + -8.9375605373500155E-01 -9.0095870417768764E-01 -9.0821111911541630E-01 + -9.1551342266394509E-01 -9.2286573247689807E-01 -9.3026815950856145E-01 + -9.3772080777048328E-01 -9.4522377408180813E-01 -9.5277714781311218E-01 + -9.6038101062362902E-01 -9.6803543619180688E-01 -9.7574048993889262E-01 + -9.8349622874554865E-01 -9.9130270066125270E-01 -9.9915994460636870E-01 + -1.0070679900667192E+00 -1.0150268567805290E+00 -1.0230365544175302E+00 + -1.0310970822501218E+00 -1.0392084288163708E+00 -1.0473705715747224E+00 + -1.0555834765502468E+00 -1.0638470979722126E+00 -1.0721613779028825E+00 + -1.0805262458572991E+00 -1.0889416184138712E+00 -1.0974073988156867E+00 + -1.1059234765622012E+00 -1.1144897269912797E+00 -1.1231060108513276E+00 + -1.1317721738633120E+00 -1.1404880462724905E+00 -1.1492534423897605E+00 + -1.1580681601222180E+00 -1.1669319804929899E+00 -1.1758446671499212E+00 + -1.1848059658630765E+00 -1.1938156040107577E+00 -1.2028732900539096E+00 + -1.2119787129987045E+00 -1.2211315418469868E+00 -1.2303314250346005E+00 + -1.2395779898571904E+00 -1.2488708418834009E+00 -1.2582095643551883E+00 + -1.2675937175751377E+00 -1.2770228382804774E+00 -1.2864964390036979E+00 + -1.2960140074194724E+00 -1.3055750056777669E+00 -1.3151788697228926E+00 + -1.3248250085983426E+00 -1.3345128037371488E+00 -1.3442416082376800E+00 + -1.3540107461245816E+00 -1.3638195115947467E+00 -1.3736671682481230E+00 + -1.3835529483031273E+00 -1.3934760517965743E+00 -1.4034356457678898E+00 + -1.4134308634274850E+00 -1.4234608033090790E+00 -1.4335245284059126E+00 + -1.4436210652906087E+00 -1.4537494032185985E+00 -1.4639084932149613E+00 + -1.4740972471446119E+00 -1.4843145367656014E+00 -1.4945591927656043E+00 + -1.5048300037813223E+00 -1.5151257154008733E+00 -1.5254450291489785E+00 + -1.5357866014550272E+00 -1.5461490426038431E+00 -1.5565309156691902E+00 + -1.5669307354300606E+00 -1.5773469672696543E+00 -1.5877780260571410E+00 + -1.5982222750122443E+00 -1.6086780245526739E+00 -1.6191435311245657E+00 + -1.6296169960159463E+00 -1.6400965641534504E+00 -1.6505803228823668E+00 + -1.6610663007302842E+00 -1.6715524661544643E+00 -1.6820367262732210E+00 + -1.6925169255816381E+00 -1.7029908446518198E+00 -1.7134561988181083E+00 + -1.7239106368476231E+00 -1.7343517395965120E+00 -1.7447770186523994E+00 + -1.7551839149635424E+00 -1.7655697974551541E+00 -1.7759319616336620E+00 + -1.7862676281793011E+00 -1.7965739415279538E+00 -1.8068479684428438E+00 + -1.8170866965768888E+00 -1.8272870330266784E+00 -1.8374458028787999E+00 + -1.8475597477497741E+00 -1.8576255243202826E+00 -1.8676397028651821E+00 + -1.8775987657801723E+00 -1.8874991061066313E+00 -1.8973370260557638E+00 + -1.9071087355336449E+00 -1.9168103506685332E+00 -1.9264378923421599E+00 + -1.9359872847266000E+00 -1.9454543538285760E+00 -1.9548348260430148E+00 + -1.9641243267178903E+00 -1.9733183787324824E+00 -1.9824124010911128E+00 + -1.9914017075348387E+00 -2.0002815051735063E+00 -2.0090468931406198E+00 + -2.0176928612738845E+00 -2.0262142888241343E+00 -2.0346059431956132E+00 + -2.0428624787208358E+00 -2.0509784354730938E+00 -2.0589482381201467E+00 + -2.0667661948226552E+00 -2.0744264961809797E+00 -2.0819232142343513E+00 + -2.0892503015164268E+00 -2.0964015901714528E+00 -2.1033707911354460E+00 + -2.1101514933871135E+00 -2.1167371632731440E+00 -2.1231211439130133E+00 + -2.1292966546884711E+00 -2.1352567908230045E+00 -2.1409945230571474E+00 + -2.1465026974252286E+00 -2.1517740351398342E+00 -2.1568011325901213E+00 + -2.1615764614606405E+00 -2.1660923689773881E+00 -2.1703410782881032E+00 + -2.1743146889841576E+00 -2.1780051777713529E+00 -2.1814043992977799E+00 + -2.1845040871463115E+00 -2.1872958550004484E+00 -2.1897711979919143E+00 + -2.1919214942388239E+00 -2.1937380065835823E+00 -2.1952118845400173E+00 + -2.1963341664592821E+00 -2.1970957819246233E+00 -2.1974875543850954E+00 + -2.1975002040389935E+00 -2.1971243509776031E+00 -2.1963505186004348E+00 + -2.1951691373134157E+00 -2.1935705485215289E+00 -2.1915450089278803E+00 + -2.1890826951515603E+00 -2.1861737086764812E+00 -2.1828080811441128E+00 + -2.1789757800030025E+00 -2.1746667145283674E+00 -2.1698707422251098E+00 + -2.1645776756280242E+00 -2.1587772895129236E+00 -2.1524593285329829E+00 + -2.1456135152943734E+00 -2.1382295588854920E+00 -2.1302971638747086E+00 + -2.1218060397908749E+00 -2.1127459111015732E+00 -2.1031065277039045E+00 + -2.0928776759425589E+00 -2.0820491901702050E+00 -2.0706109648648594E+00 + -2.0585529673190379E+00 -2.0458652509155311E+00 -2.0325379690039433E+00 + -2.0185613893926377E+00 -2.0039259094701731E+00 -1.9886220719694960E+00 + -1.9726405813890200E+00 -1.9559723210831121E+00 -1.9386083710345057E+00 + -1.9205400263208976E+00 -1.9017588162867032E+00 -1.8822565244308787E+00 + -1.8620252090204708E+00 -1.8410572244389802E+00 -1.8193452432773252E+00 + -1.7968822791747590E+00 -1.7736617104148555E+00 -1.7496773042817186E+00 + -1.7249232421789396E+00 -1.6993941455131520E+00 -1.6730851023421036E+00 + -1.6459916947850712E+00 -1.6181100271923505E+00 -1.5894367550673785E+00 + -1.5599691147338270E+00 -1.5297049537371465E+00 -1.4986427619673666E+00 + -1.4667817034875603E+00 -1.4341216490496118E+00 -1.4006632092750235E+00 + -1.3664077684762805E+00 -1.3313575190903069E+00 -1.2955154966913276E+00 + -1.2588856155480399E+00 -1.2214727046839979E+00 -1.1832825443973964E+00 + -1.1443219031909835E+00 -1.1045985750580716E+00 -1.0641214170661162E+00 + -1.0229003871732814E+00 -9.8094658220844855E-01 -9.3827227593917906E-01 + -8.9489095714571631E-01 -8.5081736761351201E-01 -8.0606753994935165E-01 + -7.6065883511998811E-01 -7.1460997960469930E-01 -6.6794110204594115E-01 + -6.2067376927459894E-01 -5.7283102157850152E-01 -5.2443740707457287E-01 + -4.7551901503680311E-01 -4.2610350802356600E-01 -3.7622015263852349E-01 + -3.2589984875117328E-01 -2.7517515699270367E-01 -2.2408032433425595E-01 + -1.7265130754461450E-01 -1.2092579431433247E-01 -6.8943221824130194E-02 + -1.6744792524317556E-02 3.5626513117330942E-02 8.8125927152288147E-02 + 1.4070688823589841E-01 1.9332103953334348E-01 2.4591823073027086E-01 + 2.9844652444198017E-01 3.5085220732416994E-01 4.0307980619860201E-01 + 4.5507210951580024E-01 5.0677019448659300E-01 5.5811346022223651E-01 + 6.0903966723182257E-01 6.5948498363258523E-01 7.0938403843642017E-01 + 7.5866998228163995E-01 8.0727455598498554E-01 8.5512816729306518E-01 + 9.0215997621646515E-01 9.4829798933156340E-01 9.9346916343685432E-01 + 1.0375995189501159E+00 1.0806142634307254E+00 1.1224379256086350E+00 + 1.1629945002956377E+00 1.2022076045473833E+00 1.2400006454356864E+00 + 1.2762969997778277E+00 1.3110202061559033E+00 1.3440941695417246E+00 + 1.3754433788223406E+00 1.4049931374978775E+00 1.4326698077960212E+00 + 1.4584010684165587E+00 1.4821161860843464E+00 1.5037463010488781E+00 + 1.5232247266248036E+00 1.5404872628174877E+00 1.5554725240224829E+00 + 1.5681222807259951E+00 1.5783818150659386E+00 1.5862002900369667E+00 + 1.5915311320410077E+00 1.5943324263923764E+00 1.5945673252876655E+00 + 1.5922044676387708E+00 1.5872184100486757E+00 1.5795900680758050E+00 + 1.5693071667895500E+00 1.5563646994606166E+00 1.5407653930573033E+00 + 1.5225201790301170E+00 1.5016486676613954E+00 1.4781796240305012E+00 + 1.4521514434004950E+00 1.4236126235638202E+00 1.3926222313910739E+00 + 1.3592503605092272E+00 1.3235785766849733E+00 1.2857003471106248E+00 + 1.2457214493738133E+00 1.2037603554392295E+00 1.1599485854773455E+00 + 1.1144310258345134E+00 1.0673662048515742E+00 1.0189265195949080E+00 + 9.6929840586354876E-01 9.1868244307177871E-01 8.6729338477191020E-01 + 8.1536010467272790E-01 7.6312544701665475E-01 7.1084596909588638E-01 + 6.5879156250842374E-01 6.0724493846702421E-01 5.5650096107236779E-01 + 5.0686581093005489E-01 4.5865595982599866E-01 4.1219693535331442E-01 + 3.6782185240392773E-01 3.2586968627259655E-01 2.8668325976420994E-01 + 2.5060691411589375E-01 2.1798383073482983E-01 1.8915339542580950E-01 + 1.6273345923745058E-01 1.3735576831445823E-01 1.1324431141385427E-01 + 9.0678991644819892E-02 6.9934120870960736E-02 5.1289073184568094E-02 + 3.5027535878706391E-02 2.1436652849441289E-02 1.0806038637752589E-02 + 3.4267082364690875E-03 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + -8.2546276219711695E-04 -3.9447017481601095E-03 -6.4728101564851806E-03 + -8.6597153076141027E-03 -1.0656464521366872E-02 -1.2515225116941711E-02 + -1.4289892179913293E-02 -1.5995819755440344E-02 -1.7644600483412220E-02 + -1.9247279232387414E-02 -2.0811433308309292E-02 -2.2342883595288569E-02 + -2.3846322839416817E-02 -2.5325530590485423E-02 -2.6783620471636783E-02 + -2.8223199985048221E-02 -2.9646479606117306E-02 -3.1055355070216152E-02 + -3.2451468562383776E-02 -3.3836255263316468E-02 -3.5210979424256855E-02 + -3.6576762688559146E-02 -3.7934606619838253E-02 -3.9285410829524366E-02 + -4.0629987715339128E-02 -4.1969074558091291E-02 -4.3303343536160131E-02 + -4.4633410081797720E-02 -4.5959839904618272E-02 -4.7283154934557335E-02 + -4.8603838381857653E-02 -4.9922339070199967E-02 -5.1239075167398229E-02 + -5.2554437413598283E-02 -5.3868791927843711E-02 -5.5182482658889288E-02 + -5.6495833534276660E-02 -5.7809150352228021E-02 -5.9122722453315339E-02 + -6.0436824202727397E-02 -6.1751716308964651E-02 -6.3067647000715196E-02 + -6.4384853080310708E-02 -6.5703560869392316E-02 -6.7023987060117390E-02 + -6.8346339483320417E-02 -6.9670817803436896E-02 -7.0997614148647734E-02 + -7.2326913683563074E-02 -7.3658895130798235E-02 -7.4993731246972867E-02 + -7.6331589257964891E-02 -7.7672631257649768E-02 -7.9017014573840888E-02 + -8.0364892104704100E-02 -8.1716412628534574E-02 -8.3071721089454473E-02 + -8.4430958861298908E-02 -8.5794263991709641E-02 -8.7161771428234142E-02 + -8.8533613228037517E-02 -8.9909918752666462E-02 -9.1290814849155258E-02 + -9.2676426018634850E-02 -9.4066874573490222E-02 -9.5462280784009215E-02 + -9.6862763015376080E-02 -9.8268437855781585E-02 -9.9679420236351596E-02 + -1.0109582354352978E-01 -1.0251775972449544E-01 -1.0394533938614380E-01 + -1.0537867188811238E-01 -1.0681786543029355E-01 -1.0826302713523733E-01 + -1.0971426312581523E-01 -1.1117167859848298E-01 -1.1263537789245691E-01 + -1.1410546455508801E-01 -1.1558204140370010E-01 -1.1706521058413479E-01 + -1.1855507362622794E-01 -1.2005173149642535E-01 -1.2155528464772915E-01 + -1.2306583306715216E-01 -1.2458347632084493E-01 -1.2610831359704683E-01 + -1.2764044374700234E-01 -1.2917996532397327E-01 -1.3072697662046867E-01 + -1.3228157570380364E-01 -1.3384386045009414E-01 -1.3541392857678228E-01 + -1.3699187767378534E-01 -1.3857780523335053E-01 -1.4017180867869561E-01 + -1.4177398539150698E-01 -1.4338443273836529E-01 -1.4500324809615975E-01 + -1.4663052887655251E-01 -1.4826637254954711E-01 -1.4991087666621272E-01 + -1.5156413888061379E-01 -1.5322625697098763E-01 -1.5489732886021498E-01 + -1.5657745263562042E-01 -1.5826672656814164E-01 -1.5996524913090010E-01 + -1.6167311901720713E-01 -1.6339043515803500E-01 -1.6511729673898065E-01 + -1.6685380321675056E-01 -1.6860005433518960E-01 -1.7035615014087885E-01 + -1.7212219099832357E-01 -1.7389827760475293E-01 -1.7568451100454885E-01 + -1.7748099260332525E-01 -1.7928782418167205E-01 -1.8110510790858153E-01 + -1.8293294635457241E-01 -1.8477144250452510E-01 -1.8662069977024198E-01 + -1.8848082200274580E-01 -1.9035191350432745E-01 -1.9223407904035525E-01 + -1.9412742385085566E-01 -1.9603205366187557E-01 -1.9794807469663664E-01 + -1.9987559368648883E-01 -2.0181471788167357E-01 -2.0376555506190341E-01 + -2.0572821354676554E-01 -2.0770280220595735E-01 -2.0968943046935992E-01 + -2.1168820833695623E-01 -2.1369924638860008E-01 -2.1572265579364167E-01 + -2.1775854832041433E-01 -2.1980703634558943E-01 -2.2186823286340182E-01 + -2.2394225149475286E-01 -2.2602920649619387E-01 -2.2812921276879458E-01 + -2.3024238586690007E-01 -2.3236884200678132E-01 -2.3450869807518043E-01 + -2.3666207163775665E-01 -2.3882908094743416E-01 -2.4100984495265501E-01 + -2.4320448330554145E-01 -2.4541311636996826E-01 -2.4763586522954881E-01 + -2.4987285169553680E-01 -2.5212419831464666E-01 -2.5439002837679264E-01 + -2.5667046592275161E-01 -2.5896563575174869E-01 -2.6127566342896846E-01 + -2.6360067529299447E-01 -2.6594079846317648E-01 -2.6829616084692798E-01 + -2.7066689114695602E-01 -2.7305311886842337E-01 -2.7545497432604360E-01 + -2.7787258865111314E-01 -2.8030609379847715E-01 -2.8275562255343373E-01 + -2.8522130853857447E-01 -2.8770328622056407E-01 -2.9020169091685921E-01 + -2.9271665880236575E-01 -2.9524832691603697E-01 -2.9779683316741190E-01 + -3.0036231634309518E-01 -3.0294491611317659E-01 -3.0554477303759342E-01 + -3.0816202857243397E-01 -3.1079682507618250E-01 -3.1344930581590613E-01 + -3.1611961497338370E-01 -3.1880789765117601E-01 -3.2151429987863855E-01 + -3.2423896861787332E-01 -3.2698205176962586E-01 -3.2974369817911914E-01 + -3.3252405764183124E-01 -3.3532328090921099E-01 -3.3814151969433531E-01 + -3.4097892667750473E-01 -3.4383565551177825E-01 -3.4671186082844679E-01 + -3.4960769824244337E-01 -3.5252332435769174E-01 -3.5545889677238962E-01 + -3.5841457408422905E-01 -3.6139051589555043E-01 -3.6438688281843112E-01 + -3.6740383647970598E-01 -3.7044153952592185E-01 -3.7350015562822086E-01 + -3.7657984948715501E-01 -3.7968078683743017E-01 -3.8280313445257663E-01 + -3.8594706014954633E-01 -3.8911273279323716E-01 -3.9230032230093925E-01 + -3.9550999964670625E-01 -3.9874193686564563E-01 -4.0199630705813172E-01 + -4.0527328439393534E-01 -4.0857304411627177E-01 -4.1189576254576427E-01 + -4.1524161708432050E-01 -4.1861078621892361E-01 -4.2200344952533159E-01 + -4.2541978767168798E-01 -4.2885998242203804E-01 -4.3232421663975162E-01 + -4.3581267429084941E-01 -4.3932554044723032E-01 -4.4286300128980022E-01 + -4.4642524411149587E-01 -4.5001245732020795E-01 -4.5362483044159480E-01 + -4.5726255412179018E-01 -4.6092582012999767E-01 -4.6461482136097543E-01 + -4.6832975183740300E-01 -4.7207080671213242E-01 -4.7583818227031921E-01 + -4.7963207593142937E-01 -4.8345268625112475E-01 -4.8730021292301823E-01 + -4.9117485678030026E-01 -4.9507681979723361E-01 -4.9900630509051125E-01 + -5.0296351692047725E-01 -5.0694866069220790E-01 -5.1096194295644592E-01 + -5.1500357141039310E-01 -5.1907375489834795E-01 -5.2317270341219735E-01 + -5.2730062809174416E-01 -5.3145774122488598E-01 -5.3564425624762346E-01 + -5.3986038774390832E-01 -5.4410635144532193E-01 -5.4838236423058218E-01 + -5.5268864412487306E-01 -5.5702541029900021E-01 -5.6139288306835866E-01 + -5.6579128389171851E-01 -5.7022083536982071E-01 -5.7468176124377801E-01 + -5.7917428639327928E-01 -5.8369863683459589E-01 -5.8825503971837767E-01 + -5.9284372332724533E-01 -5.9746491707316762E-01 -6.0211885149462085E-01 + -6.0680575825352945E-01 -6.1152587013197868E-01 -6.1627942102869993E-01 + -6.2106664595531902E-01 -6.2588778103236953E-01 -6.3074306348505904E-01 + -6.3563273163879164E-01 -6.4055702491443245E-01 -6.4551618382332265E-01 + -6.5051044996202334E-01 -6.5554006600680259E-01 -6.6060527570783900E-01 + -6.6570632388315987E-01 -6.7084345641228837E-01 -6.7601692022960824E-01 + -6.8122696331743249E-01 -6.8647383469877954E-01 -6.9175778442983882E-01 + -6.9707906359213101E-01 -7.0243792428435570E-01 -7.0783461961391414E-01 + -7.1326940368811009E-01 -7.1874253160501489E-01 -7.2425425944399824E-01 + -7.2980484425591174E-01 -7.3539454405292559E-01 -7.4102361779800507E-01 + -7.4669232539403019E-01 -7.5240092767253808E-01 -7.5814968638209945E-01 + -7.6393886417630452E-01 -7.6976872460136747E-01 -7.7563953208332859E-01 + -7.8155155191486103E-01 -7.8750505024166129E-01 -7.9350029404843192E-01 + -7.9953755114443104E-01 -8.0561709014860106E-01 -8.1173918047425098E-01 + -8.1790409231330119E-01 -8.2411209662006923E-01 -8.3036346509459735E-01 + -8.3665847016551509E-01 -8.4299738497242016E-01 -8.4938048334778116E-01 + -8.5580803979834397E-01 -8.6228032948604283E-01 -8.6879762820839845E-01 + -8.7536021237840411E-01 -8.8196835900388382E-01 -8.8862234566632037E-01 + -8.9532245049913783E-01 -9.0206895216543648E-01 -9.0886212983516657E-01 + -9.1570226316173597E-01 -9.2258963225803692E-01 -9.2952451767189093E-01 + -9.3650720036089163E-01 -9.4353796166665083E-01 -9.5061708328842254E-01 + -9.5774484725610576E-01 -9.6492153590261764E-01 -9.7214743183561414E-01 + -9.7942281790856722E-01 -9.8674797719116980E-01 -9.9412319293907581E-01 + -1.0015487485629480E+00 -1.0090249275968188E+00 -1.0165520136657433E+00 + -1.0241302904527390E+00 -1.0317600416649961E+00 -1.0394415509993598E+00 + -1.0471751021070532E+00 -1.0549609785576575E+00 -1.0627994638023077E+00 + -1.0706908411361196E+00 -1.0786353936598176E+00 -1.0866334042405659E+00 + -1.0946851554719783E+00 -1.1027909296333103E+00 -1.1109510086478036E+00 + -1.1191656740401925E+00 -1.1274352068933373E+00 -1.1357598878039923E+00 + -1.1441399968376862E+00 -1.1525758134827022E+00 -1.1610676166031542E+00 + -1.1696156843911312E+00 -1.1782202943179163E+00 -1.1868817230842512E+00 + -1.1956002465696458E+00 -1.2043761397807080E+00 -1.2132096767984966E+00 + -1.2221011307248657E+00 -1.2310507736278058E+00 -1.2400588764857512E+00 + -1.2491257091308594E+00 -1.2582515401912255E+00 -1.2674366370320471E+00 + -1.2766812656956934E+00 -1.2859856908407001E+00 -1.2953501756796428E+00 + -1.3047749819159005E+00 -1.3142603696792821E+00 -1.3238065974605064E+00 + -1.3334139220445205E+00 -1.3430825984426435E+00 -1.3528128798235222E+00 + -1.3626050174428803E+00 -1.3724592605720543E+00 -1.3823758564252921E+00 + -1.3923550500858135E+00 -1.4023970844306013E+00 -1.4125022000539258E+00 + -1.4226706351895739E+00 -1.4329026256317812E+00 -1.4431984046548370E+00 + -1.4535582029313687E+00 -1.4639822484492668E+00 -1.4744707664272609E+00 + -1.4850239792291062E+00 -1.4956421062763934E+00 -1.5063253639599381E+00 + -1.5170739655497698E+00 -1.5278881211036663E+00 -1.5387680373742525E+00 + -1.5497139177146335E+00 -1.5607259619825462E+00 -1.5718043664430246E+00 + -1.5829493236695491E+00 -1.5941610224436882E+00 -1.6054396476531905E+00 + -1.6167853801885395E+00 -1.6281983968379341E+00 -1.6396788701807008E+00 + -1.6512269684791059E+00 -1.6628428555685664E+00 -1.6745266907462364E+00 + -1.6862786286579703E+00 -1.6980988191836226E+00 -1.7099874073207035E+00 + -1.7219445330663452E+00 -1.7339703312975943E+00 -1.7460649316499910E+00 + -1.7582284583944476E+00 -1.7704610303123858E+00 -1.7827627605691476E+00 + -1.7951337565856484E+00 -1.8075741199082671E+00 -1.8200839460769618E+00 + -1.8326633244915931E+00 -1.8453123382764574E+00 -1.8580310641429973E+00 + -1.8708195722507024E+00 -1.8836779260661658E+00 -1.8966061822203102E+00 + -1.9096043903637470E+00 -1.9226725930202830E+00 -1.9358108254385471E+00 + -1.9490191154417413E+00 -1.9622974832754898E+00 -1.9756459414538032E+00 + -1.9890644946031164E+00 -2.0025531393044331E+00 -2.0161118639335198E+00 + -2.0297406484991956E+00 -2.0434394644796683E+00 -2.0572082746569302E+00 + -2.0710470329492181E+00 -2.0849556842414954E+00 -2.0989341642140018E+00 + -2.1129823991688217E+00 -2.1271003058544968E+00 -2.1412877912886654E+00 + -2.1555447525787330E+00 -2.1698710767405656E+00 -2.1842666405152165E+00 + -2.1987313101836685E+00 -2.2132649413796135E+00 -2.2278673789002417E+00 + -2.2425384565150801E+00 -2.2572779967728422E+00 -2.2720858108063200E+00 + -2.2869616981353125E+00 -2.3019054464675972E+00 -2.3169168314979411E+00 + -2.3319956167051767E+00 -2.3471415531473276E+00 -2.3623543792548158E+00 + -2.3776338206217291E+00 -2.3929795897951922E+00 -2.4083913860628341E+00 + -2.4238688952383547E+00 -2.4394117894452316E+00 -2.4550197268985503E+00 + -2.4706923516849990E+00 -2.4864292935410242E+00 -2.5022301676291772E+00 + -2.5180945743126668E+00 -2.5340220989281348E+00 -2.5500123115566748E+00 + -2.5660647667931338E+00 -2.5821790035136836E+00 -2.5983545446417327E+00 + -2.6145908969121634E+00 -2.6308875506339553E+00 -2.6472439794511931E+00 + -2.6636596401025288E+00 -2.6801339721790800E+00 -2.6966663978808514E+00 + -2.7132563217716705E+00 -2.7299031305327013E+00 -2.7466061927145629E+00 + -2.7633648584881114E+00 -2.7801784593938810E+00 -2.7970463080902919E+00 + -2.8139676981006163E+00 -2.8309419035587919E+00 -2.8479681789540865E+00 + -2.8650457588747114E+00 -2.8821738577504088E+00 -2.8993516695940800E+00 + -2.9165783677424910E+00 -2.9338531045961540E+00 -2.9511750113584041E+00 + -2.9685431977737737E+00 -2.9859567518656815E+00 -3.0034147396735609E+00 + -3.0209162049894567E+00 -3.0384601690941855E+00 -3.0560456304931098E+00 + -3.0736715646516344E+00 -3.0913369237304824E+00 -3.1090406363208412E+00 + -3.1267816071794790E+00 -3.1445587169638669E+00 -3.1623708219674667E+00 + -3.1802167538552286E+00 -3.1980953193994215E+00 -3.2160053002158606E+00 + -3.2339454525006750E+00 -3.2519145067676911E+00 -3.2699111675865535E+00 + -3.2879341133216733E+00 -3.3059819958721399E+00 -3.3240534404127025E+00 + -3.3421470451359494E+00 -3.3602613809957633E+00 -3.3783949914522560E+00 + -3.3965463922182288E+00 -3.4147140710073738E+00 -3.4328964872842462E+00 + -3.4510920720162592E+00 -3.4692992274277565E+00 -3.4875163267563556E+00 + -3.5057417140116951E+00 -3.5239737037367167E+00 -3.5422105807716862E+00 + -3.5604506000210621E+00 -3.5786919862234163E+00 -3.5969329337245326E+00 + -3.6151716062538783E+00 -3.6334061367046293E+00 -3.6516346269174056E+00 + -3.6698551474678882E+00 -3.6880657374585541E+00 -3.7062644043146467E+00 + -3.7244491235846477E+00 -3.7426178387453692E+00 -3.7607684610119283E+00 + -3.7788988691527834E+00 -3.7970069093100407E+00 -3.8150903948252255E+00 + -3.8331471060707765E+00 -3.8511747902874349E+00 -3.8691711614277824E+00 + -3.8871339000061522E+00 -3.9050606529551084E+00 -3.9229490334887918E+00 + -3.9407966209733094E+00 -3.9586009608044619E+00 -3.9763595642929968E+00 + -3.9940699085576994E+00 -4.0117294364265303E+00 -4.0293355563461164E+00 + -4.0468856422997614E+00 -4.0643770337343748E+00 -4.0818070354964719E+00 + -4.0991729177776026E+00 -4.1164719160694032E+00 -4.1337012311286410E+00 + -4.1508580289524639E+00 -4.1679394407641990E+00 -4.1849425630099155E+00 + -4.2018644573661472E+00 -4.2187021507589897E+00 -4.2354526353948971E+00 + -4.2521128688035263E+00 -4.2686797738928570E+00 -4.2851502390169642E+00 + -4.3015211180567325E+00 -4.3177892305138377E+00 -4.3339513616182863E+00 + -4.3500042624498763E+00 -4.3659446500738923E+00 -4.3817692076913568E+00 + -4.3974745848041401E+00 -4.4130573973953373E+00 -4.4285142281251675E+00 + -4.4438416265428007E+00 -4.4590361093143729E+00 -4.4740941604676276E+00 + -4.4890122316534482E+00 -4.5037867424246780E+00 -4.5184140805325237E+00 + -4.5328906022409621E+00 -4.5472126326594342E+00 -4.5613764660942007E+00 + -4.5753783664187679E+00 -4.5892145674636096E+00 -4.6028812734256732E+00 + -4.6163746592979615E+00 -4.6296908713195597E+00 -4.6428260274464321E+00 + -4.6557762178434112E+00 -4.6685375053976879E+00 -4.6811059262541876E+00 + -4.6934774903731373E+00 -4.7056481821102718E+00 -4.7176139608199437E+00 + -4.7293707614815697E+00 -4.7409144953496876E+00 -4.7522410506280561E+00 + -4.7633462931680963E+00 -4.7742260671920516E+00 -4.7848761960411776E+00 + -4.7952924829493453E+00 -4.8054707118423865E+00 -4.8154066481634761E+00 + -4.8250960397249596E+00 -4.8345346175868453E+00 -4.8437180969623856E+00 + -4.8526421781509699E+00 -4.8613025474987142E+00 -4.8696948783869081E+00 + -4.8778148322487676E+00 -4.8856580596146033E+00 -4.8932202011857875E+00 + -4.9004968889376119E+00 -4.9074837472514172E+00 -4.9141763940760441E+00 + -4.9205704421189029E+00 -4.9266615000666869E+00 -4.9324451738359860E+00 + -4.9379170678537818E+00 -4.9430727863679644E+00 -4.9479079347878292E+00 + -4.9524181210545981E+00 -4.9565989570418649E+00 -4.9604460599859026E+00 + -4.9639550539456589E+00 -4.9671215712922345E+00 -4.9699412542276251E+00 + -4.9724097563324126E+00 -4.9745227441420345E+00 -4.9762758987511928E+00 + -4.9776649174459831E+00 -4.9786855153631526E+00 -4.9793334271759386E+00 + -4.9796044088057752E+00 -4.9794942391592558E+00 -4.9789987218895329E+00 + -4.9781136871814207E+00 -4.9768349935593044E+00 -4.9751585297171053E+00 + -4.9730802163693584E+00 -4.9705960081225866E+00 -4.9677018953660532E+00 + -4.9643939061811340E+00 -4.9606681082684485E+00 -4.9565206108920394E+00 + -4.9519475668399204E+00 -4.9469451744003692E+00 -4.9415096793535618E+00 + -4.9356373769780895E+00 -4.9293246140722022E+00 -4.9225677909895786E+00 + -4.9153633636898171E+00 -4.9077078458037171E+00 -4.8995978107138534E+00 + -4.8910298936508267E+00 -4.8820007938060268E+00 -4.8725072764616177E+00 + -4.8625461751387631E+00 -4.8521143937650981E+00 -4.8412089088626775E+00 + -4.8298267717575580E+00 -4.8179651108123007E+00 -4.8056211336826307E+00 + -4.7927921295994995E+00 -4.7794754716777463E+00 -4.7656686192524091E+00 + -4.7513691202436297E+00 -4.7365746135510207E+00 -4.7212828314780753E+00 + -4.7054916021870072E+00 -4.6891988521842967E+00 -4.6724026088367427E+00 + -4.6551010029178261E+00 -4.6372922711836502E+00 -4.6189747589776555E+00 + -4.6001469228627787E+00 -4.5808073332796537E+00 -4.5609546772289828E+00 + -4.5405877609759573E+00 -4.5197055127742853E+00 -4.4983069856071616E+00 + -4.4763913599421130E+00 -4.4539579464965255E+00 -4.4310061890102652E+00 + -4.4075356670217349E+00 -4.3835460986434054E+00 -4.3590373433327807E+00 + -4.3340094046545321E+00 -4.3084624330296206E+00 -4.2823967284670106E+00 + -4.2558127432737169E+00 -4.2287110847389071E+00 -4.2010925177878411E+00 + -4.1729579676016479E+00 -4.1443085221989655E+00 -4.1151454349757426E+00 + -4.0854701271995451E+00 -4.0552841904551196E+00 -4.0245893890379207E+00 + -3.9933876622926685E+00 -3.9616811268940850E+00 -3.9294720790671867E+00 + -3.8967629967445929E+00 -3.8635565416584865E+00 -3.8298555613648975E+00 + -3.7956630911981590E+00 -3.7609823561533355E+00 -3.7258167726945497E+00 + -3.6901699504871037E+00 -3.6540456940513337E+00 -3.6174480043361568E+00 + -3.5803810802101941E+00 -3.5428493198684561E+00 -3.5048573221524286E+00 + -3.4664098877815421E+00 -3.4275120204938636E+00 -3.3881689280939460E+00 + -3.3483860234056686E+00 -3.3081689251280242E+00 -3.2675234585917035E+00 + -3.2264556564144211E+00 -3.1849717590528579E+00 -3.1430782152492225E+00 + -3.1007816823703398E+00 -3.0580890266372931E+00 -3.0150073232435810E+00 + -2.9715438563598875E+00 -2.9277061190234801E+00 -2.8835018129103629E+00 + -2.8389388479882820E+00 -2.7940253420487724E+00 -2.7487696201164118E+00 + -2.7031802137334968E+00 -2.6572658601184220E+00 -2.6110355011960102E+00 + -2.5644982824981377E+00 -2.5176635519330111E+00 -2.4705408584214723E+00 + -2.4231399503987654E+00 -2.3754707741802381E+00 -2.3275434721894892E+00 + -2.2793683810475098E+00 -2.2309560295214106E+00 -2.1823171363314011E+00 + -2.1334626078147054E+00 -2.0844035354451811E+00 -2.0351511932074220E+00 + -1.9857170348242614E+00 -1.9361126908365749E+00 -1.8863499655344138E+00 + -1.8364408337385272E+00 -1.7863974374314497E+00 -1.7362320822373800E+00 + -1.6859572337501822E+00 -1.6355855137089259E+00 -1.5851296960204757E+00 + -1.5346027026287570E+00 -1.4840175992304148E+00 -1.4333875908367180E+00 + -1.3827260171816436E+00 -1.3320463479762552E+00 -1.2813621780095756E+00 + -1.2306872220963143E+00 -1.1800353098719385E+00 -1.1294203804357568E+00 + -1.0788564768428006E+00 -1.0283577404454858E+00 -9.7793840508617091E-01 + -9.2761279114194428E-01 -8.7739529942309746E-01 -8.2730040492697887E-01 + -7.7734265044905215E-01 -7.2753664005322805E-01 -6.7789703240368671E-01 + -6.2843853396062244E-01 -5.7917589204253828E-01 -5.3012388775789343E-01 + -4.8129732880913079E-01 -4.3271104217227352E-01 -3.8437986665549195E-01 + -3.3631864534020967E-01 -2.8854221790852130E-01 -2.4106541286085267E-01 + -1.9390303962798452E-01 -1.4706988058172141E-01 -1.0058068294866422E-01 + -5.4450150631707855E-02 -8.6929359440561446E-03 3.6676368739280707E-02 + 8.1643239407357945E-02 1.2619322891119492E-01 1.7031197552814251E-01 + 2.1398521158691908E-01 2.5719877214723968E-01 2.9993860372764214E-01 + 3.4219077307473789E-01 3.8394147596668576E-01 4.2517704604316248E-01 + 4.6588396365352908E-01 5.0604886471419397E-01 5.4565854956540960E-01 + 5.8469999181685339E-01 6.2316034717039448E-01 6.6102696220738844E-01 + 6.9828738312673899E-01 7.3492936441880807E-01 7.7094087745911455E-01 + 8.0631011900464866E-01 8.4102551957462912E-01 8.7507575169668139E-01 + 9.0844973799885531E-01 9.4113665912760458E-01 9.7312596147202279E-01 + 1.0044073646752556E+00 1.0349708689152397E+00 1.0648067619387400E+00 + 1.0939056258351971E+00 1.1222583435401188E+00 1.1498561050616452E+00 + 1.1766904134285299E+00 1.2027530903629036E+00 1.2280362816868542E+00 + 1.2525324624777829E+00 1.2762344419936402E+00 1.2991353683951059E+00 + 1.3212287332974271E+00 1.3425083761894947E+00 1.3629684887615954E+00 + 1.3826036191855258E+00 1.4014086763911371E+00 1.4193789343813064E+00 + 1.4365100366226444E+00 1.4527980005414989E+00 1.4682392221442235E+00 + 1.4828304807673447E+00 1.4965689439479026E+00 1.5094521723876813E+00 + 1.5214781249685283E+00 1.5326451637608491E+00 1.5429520589549330E+00 + 1.5523979936363173E+00 1.5609825683225493E+00 1.5687058051800067E+00 + 1.5755681518454305E+00 1.5815704847870742E+00 1.5867141121534862E+00 + 1.5910007760728957E+00 1.5944326543813527E+00 1.5970123617722636E+00 + 1.5987429503724868E+00 1.5996279097604376E+00 1.5996711664490577E+00 + 1.5988770828614114E+00 1.5972504558289118E+00 1.5947965146424781E+00 + 1.5915209186854915E+00 1.5874297546749043E+00 1.5825295335334766E+00 + 1.5768271869124832E+00 1.5703300633804862E+00 1.5630459242901396E+00 + 1.5549829393318451E+00 1.5461496817801890E+00 1.5365551234368964E+00 + 1.5262086292722319E+00 1.5151199517656420E+00 1.5032992249457096E+00 + 1.4907569581293190E+00 1.4775040293600887E+00 1.4635516785467901E+00 + 1.4489115003032340E+00 1.4335954364922741E+00 1.4176157684777420E+00 + 1.4009851090895320E+00 1.3837163943083597E+00 1.3658228746780900E+00 + 1.3473181064548116E+00 1.3282159425030338E+00 1.3085305229504465E+00 + 1.2882762656136206E+00 1.2674678562078359E+00 1.2461202383548309E+00 + 1.2242486034028002E+00 1.2018683800732810E+00 1.1789952239498109E+00 + 1.1556450068232933E+00 1.1318338059090323E+00 1.1075778929502307E+00 + 1.0828937232225606E+00 1.0577979244541134E+00 1.0323072856747046E+00 + 1.0064387460080810E+00 9.8020938342014963E-01 9.5363640343583944E-01 + 9.2673712783673012E-01 8.9952898335100551E-01 8.7202949034678090E-01 + 8.4425625153926176E-01 8.1622694072166158E-01 7.8795929152921551E-01 + 7.5947108624509385E-01 7.3078014465643748E-01 7.0190431296823741E-01 + 6.7286145278221843E-01 6.4366943014740219E-01 6.1434610468852502E-01 + 5.8490931881802355E-01 5.5537688703687260E-01 5.2576658532912757E-01 + 4.9609614065466917E-01 4.6638322054427972E-01 4.3664542280088658E-01 + 4.0690026531052548E-01 3.7716517596634597E-01 3.4745748270878668E-01 + 3.1779440368489970E-01 2.8819303752969289E-01 2.5867035377229392E-01 + 2.2924318336971294E-01 1.9992820937101088E-01 1.7074195771472475E-01 + 1.4170078816251019E-01 1.1282088537208533E-01 8.4118250112727930E-02 + 5.5608690626762103E-02 2.7307814140679551E-02 -7.6898147023962639E-04 + -2.8606515859718146E-02 -5.6189834226376842E-02 -8.3504215163223594E-02 + -1.1053517833604884E-01 -1.3726849198590124E-01 -1.6369018025073384E-01 + -1.8978653030128442E-01 -2.1554409928631280E-01 -2.4094972108245419E-01 + -2.6599051284419861E-01 -2.9065388134984954E-01 -3.1492752913978606E-01 + -3.3879946044392850E-01 -3.6225798689602190E-01 -3.8529173303312492E-01 + -4.0788964157964802E-01 -4.3004097851617434E-01 -4.5173533793438891E-01 + -4.7296264668043764E-01 -4.9371316878989252E-01 -5.1397750971852429E-01 + -5.3374662037354681E-01 -5.5301180095044822E-01 -5.7176470458053419E-01 + -5.8999734079369215E-01 -6.0770207879987892E-01 -6.2487165059090899E-01 + -6.4149915386149181E-01 -6.5757805474486353E-01 -6.7310219035371488E-01 + -6.8806577111154998E-01 -7.0246338285292564E-01 -7.1628998866356686E-01 + -7.2954093042318879E-01 -7.4221193000536845E-01 -7.5429909008054441E-01 + -7.6579889446077576E-01 -7.7670820791901796E-01 -7.8702427541250020E-01 + -7.9674472064008206E-01 -8.0586754386853232E-01 -8.1439111897337446E-01 + -8.2231418965698599E-01 -8.2963586483067431E-01 -8.3635561317808016E-01 + -8.4247325695401232E-01 -8.4798896511405308E-01 -8.5290324591366684E-01 + -8.5721693915821617E-01 -8.6093120832351600E-01 -8.6404753279637192E-01 + -8.6656770050233878E-01 -8.6849380119006658E-01 -8.6982822062602350E-01 + -8.7057363591907844E-01 -8.7073301214224941E-01 -8.7030960035183602E-01 + -8.6930693702667317E-01 -8.6772884486843038E-01 -8.6557943482486055E-01 + -8.6286310912828068E-01 -8.5958456508771353E-01 -8.5574879933918835E-01 + -8.5136111224684219E-01 -8.4642711215754285E-01 -8.4095271924079473E-01 + -8.3494416868967458E-01 -8.2840801311172085E-01 -8.2135112399546784E-01 + -8.1378069219356841E-01 -8.0570422741289849E-01 -7.9712955674289176E-01 + -7.8806482228433250E-01 -7.7851847796148266E-01 -7.6849928561179093E-01 + -7.5801631045074802E-01 -7.4707891600647336E-01 -7.3569675861124184E-01 + -7.2387978152693211E-01 -7.1163820876973882E-01 -6.9898253868769056E-01 + -6.8592353733314759E-01 -6.7247223166232162E-01 -6.5863990258509075E-01 + -6.4443807788114638E-01 -6.2987852499292596E-01 -6.1497324370152029E-01 + -5.9973445868888697E-01 -5.8417461198789400E-01 -5.6830635532078078E-01 + -5.5214254232646620E-01 -5.3569622067743450E-01 -5.1898062408757228E-01 + -5.0200916421325681E-01 -4.8479542245091350E-01 -4.6735314163525482E-01 + -4.4969621764330153E-01 -4.3183869091001931E-01 -4.1379473786202947E-01 + -3.9557866227626010E-01 -3.7720488657060491E-01 -3.5868794303373602E-01 + -3.4004246500103608E-01 -3.2128317798334799E-01 -3.0242489075479262E-01 + -2.8348248640533197E-01 -2.6447091336313278E-01 -2.4540517639102205E-01 + -2.2630032756057342E-01 -2.0717145720654095E-01 -1.8803368486352923E-01 + -1.6890215018597418E-01 -1.4979200385171107E-01 -1.3071839844862568E-01 + -1.1169647934317543E-01 -9.2741375528881884E-02 -7.3868190452293189E-02 + -5.5091992813370155E-02 -3.6427807336771929E-02 -1.7890605510124658E-02 + 5.0470371496736755E-04 1.8743283263654688E-02 3.6810377324972852E-02 + 5.4691320790118729E-02 7.2371548746643671E-02 8.9836606033293520E-02 + 1.0707215686011561E-01 1.2406399449830038E-01 1.4079805104401519E-01 + 1.5726040726023308E-01 1.7343730250034006E-01 1.8931514471694408E-01 + 2.0488052055904440E-01 2.2012020556053363E-01 2.3502117442256162E-01 + 2.4957061139226808E-01 2.6375592074012505E-01 2.7756473733798576E-01 + 2.9098493734004166E-01 3.0400464896883189E-01 3.1661226340867332E-01 + 3.2879644580913298E-01 3.4054614640151315E-01 3.5185061173182497E-01 + 3.6269939601433632E-01 3.7308237260998633E-01 3.8298974563625260E-01 + 3.9241206171346643E-01 4.0134022185465434E-01 4.0976549350854946E-01 + 4.1767952276179032E-01 4.2507434671199623E-01 4.3194240602123357E-01 + 4.3827655765906670E-01 4.4407008784747709E-01 4.4931672521729149E-01 + 4.5401065418669301E-01 4.5814652857126509E-01 4.6171948543396407E-01 + 4.6472515918186125E-01 4.6715969591442275E-01 4.6901976802559103E-01 + 4.7030258905888150E-01 4.7100592881110176E-01 4.7112812867624915E-01 + 4.7066811721646895E-01 4.6962542594186002E-01 4.6800020527529829E-01 + 4.6579324067235084E-01 4.6300596885991496E-01 4.5964049415031416E-01 + 4.5569960478043819E-01 4.5118678921809957E-01 4.4610625237015644E-01 + 4.4046293161931432E-01 4.3426251260889159E-01 4.2751144468735131E-01 + 4.2021695591734298E-01 4.1238706754738447E-01 4.0403060783854411E-01 + 3.9515722513371770E-01 3.8577740005363970E-01 3.7590245670199057E-01 + 3.6554457276212399E-01 3.5471678837033577E-01 3.4343301365556028E-01 + 3.3170803484294170E-01 3.1955751882903233E-01 3.0699801614918432E-01 + 2.9404696227260468E-01 2.8072267717695365E-01 2.6704436317114810E-01 + 2.5303210095104961E-01 2.3870684388630375E-01 2.2409041054607701E-01 + 2.0920547547504320E-01 1.9407555822703151E-01 1.7872501065098576E-01 + 1.6317900240162320E-01 1.4746350461542979E-01 1.3160527165248945E-01 + 1.1563182075808311E-01 9.9571409447991033E-02 8.3453010371689409E-02 + 6.7306283362208993E-02 5.1161544344353653E-02 3.5049730747788270E-02 + 1.9002363060729867E-02 3.0515021649296014E-03 -1.2770297886831419E-02 + -2.8430041954877271E-02 -4.3894351016435358E-02 -5.9129524692898949E-02 + -7.4101609245654954E-02 -8.8776471125902895E-02 -1.0311987610620849E-01 + -1.1709757396805015E-01 -1.3067538867164352E-01 -1.4381931389231187E-01 + -1.5649561377135426E-01 -1.6867092869786038E-01 -1.8031238591007714E-01 + -1.9138771467936244E-01 -2.0186536581510853E-01 -2.1171463520408307E-01 + -2.2090579107136266E-01 -2.2941020462163414E-01 -2.3720048368861624E-01 + -2.4425060898632026E-01 -2.5053607251880494E-01 -2.5603401766498551E-01 + -2.6072338041215604E-01 -2.6458503116653115E-01 -2.6760191652162074E-01 + -2.6975920031619932E-01 -2.7104440326345014E-01 -2.7144754038216667E-01 + -2.7096125541029359E-01 -2.6958095133120957E-01 -2.6730491609465645E-01 + -2.6413444256787516E-01 -2.6007394170893089E-01 -2.5513104791427066E-01 + -2.4931671545691911E-01 -2.4264530490116809E-01 -2.3513465835494715E-01 + -2.2680616240294693E-01 -2.1768479755273468E-01 -2.0779917302324818E-01 + -1.9718154571070481E-01 -1.8586782218176207E-01 -1.7389754256812612E-01 + -1.6131384527115744E-01 -1.4816341142975326E-01 -1.3449638816012047E-01 + -1.2036628964230225E-01 -1.0582987520564839E-01 -9.0947003654026096E-02 + -7.5780463171661164E-02 -6.0395776262248853E-02 -4.4860979297609030E-02 + -2.9246376387965747E-02 -1.3624267434148836E-02 1.9313496171917527E-03 + 1.7345102119850825E-02 3.2540591293550997E-02 4.7440765424765351E-02 + 6.1968316904362310E-02 7.6046102074829508E-02 8.9597582616408170E-02 + 1.0254728694592743E-01 1.1482128983013640E-01 1.2634770813553586E-01 + 1.3705721034166440E-01 1.4688353713765592E-01 1.5576403011535031E-01 + 1.6364016524686895E-01 1.7045808751539610E-01 1.7616914274611503E-01 + 1.8073040236018792E-01 1.8410517646520883E-01 1.8626351039239181E-01 + 1.8718265950648624E-01 1.8684753685160055E-01 1.8525112796144763E-01 + 1.8239486696222315E-01 1.7828896793713833E-01 1.7295270541063010E-01 + 1.6641463775477330E-01 1.5871276732791637E-01 1.4989463123370403E-01 + 1.4001731674495721E-01 1.2914739567886993E-01 1.1736077234479302E-01 + 1.0474244012026218E-01 9.1386142251078509E-02 7.7393933122487990E-02 + 6.2875637015275959E-02 4.7948202246062027E-02 3.2734949597048812E-02 + 1.7364715067092654E-02 1.9708882214761084E-03 -1.3309651221684215E-02 + -2.8337694461073516E-02 -4.2972956661115939E-02 -5.7075414645594846E-02 + -7.0506720169581219E-02 -8.3131677915368615E-02 -9.4819775535016901E-02 + -1.0544675122818928E-01 -1.1489618252696365E-01 -1.2306107819032817E-01 + -1.2984545342445833E-01 -1.3516586707806283E-01 -1.3895289805527999E-01 + -1.4115253698441030E-01 -1.4172746822377819E-01 -1.4065821662204492E-01 + -1.3794413312588102E-01 -1.3360419338925003E-01 -1.2767758403068277E-01 + -1.2022405215054645E-01 -1.1132399519858156E-01 -1.0107827030717381E-01 + -8.9607704805957075E-02 -7.7052292828514946E-02 -6.3570066722948945E-02 + -4.9335636384617472E-02 -3.4538394628530665E-02 -1.9380392283633890E-02 + -4.0738927787632856E-03 1.1161377459342406E-02 2.6101259539815652E-02 + 4.0520443092998785E-02 5.4195959831156847E-02 6.6910844376513706E-02 + 7.8457909736067144E-02 8.8643577783091426E-02 9.7291698568923904E-02 + 1.0424728644032667E-01 1.0938009599356886E-01 1.1258795708008874E-01 + 1.1379978561673744E-01 1.1297818606998324E-01 1.1012156239276263E-01 + 1.0526565709328557E-01 9.8484443181077741E-02 8.9890301108189519E-02 + 7.9633422602262791E-02 6.7900395521463972E-02 5.4911938537365902E-02 + 4.0919771489702973E-02 2.6202626498171237E-02 1.1061426118182725E-02 + -4.1863223434742700E-03 -1.9212843207831374E-02 -3.3687021645272160E-02 + -4.7281823117238421E-02 -5.9682056287824956E-02 -7.0592309951384963E-02 + -7.9744874092011725E-02 -8.6907437930457687E-02 -9.1890344645413138E-02 + -9.4553174298403042E-02 -9.4810424229587284E-02 -9.2636060639211842E-02 + -8.8066726929127051E-02 -8.1203414199672877E-02 -7.2211427430465214E-02 + -6.1318517428191548E-02 -4.8811093425028929E-02 -3.5028483759585324E-02 + -2.0355271515439210E-02 -5.2117970997488244E-03 9.9570111038462111E-03 + 2.4694245683937278E-02 3.8544765572340489E-02 5.1069706837741251E-02 + 6.1861326084700602E-02 7.0557690978352253E-02 7.6856692140328919E-02 + 8.0528825958896613E-02 8.1428191715343615E-02 7.9501161478928134E-02 + 7.4792219557375611E-02 6.7446531283673325E-02 5.7708889049296032E-02 + 4.5918796170149691E-02 3.2501584596201796E-02 1.7955617532923900E-02 + 2.8357982379537635E-03 -1.2266214282510400E-02 -2.6744500403693951E-02 + -4.0003328254630072E-02 -5.1482637910647305E-02 -6.0683509416072902E-02 + -6.7192463285292964E-02 -7.0703387529425218E-02 -7.1035884005788308E-02 + -6.8148885976278648E-02 -6.2148522919000054E-02 -5.3289399697072755E-02 + -4.1968713502121224E-02 -2.8712947957346975E-02 -1.4157249519305826E-02 + 9.8200737795304041E-04 1.5940541586716522E-02 2.9944034763511703E-02 + 4.2248827955456029E-02 5.2183398321145331E-02 5.9188327982481567E-02 + 6.2852346644756987E-02 6.2942032671762502E-02 5.9422911028800443E-02 + 5.2470000656830607E-02 4.2466338714277789E-02 2.9988633981969590E-02 + 1.5779953742014550E-02 7.1019235625431186E-04 -1.4274041545652167E-02 + -2.8207606327796345E-02 -4.0169765777583931E-02 -4.9347921636618219E-02 + -5.5097739845150859E-02 -5.6995108614782415E-02 -5.4875529508839282E-02 + -4.8857060333997976E-02 -3.9343806448245054E-02 -2.7008171758455098E-02 + -1.2751577148811023E-02 2.3549549703107409E-03 1.7147183092778059E-02 + 3.0456125215244476E-02 4.1202280216416129E-02 4.8488137909597072E-02 + 5.1680954257870247E-02 5.0477852396917600E-02 4.4946126403037787E-02 + 3.5533193003875613E-02 2.3042905882620538E-02 8.5777897870959428E-03 + -6.5500378554815466E-03 -2.0933185438662461E-02 -3.3199399256271946E-02 + -4.2146428175816618E-02 -4.6868124647236449E-02 -4.6858199996298158E-02 + -4.2079095652038170E-02 -3.2985956666811027E-02 -2.0499612607862497E-02 + -5.9275216699885705E-03 9.1626182751426838E-03 2.3106027054143795E-02 + 3.4324915235382857E-02 4.1513623272377738E-02 4.3802936406768377E-02 + 4.0882115776397339E-02 3.3060361558475533E-02 2.1255296913666073E-02 + 6.9042170867799745E-03 -8.1965013951049298E-03 -2.2108403850715469E-02 + -3.2999865248022682E-02 -3.9395668043677619E-02 -4.0392913088908036E-02 + -3.5810379727152564E-02 -2.6244850661611006E-02 -1.3018962303593926E-02 + 1.9802303389915401E-03 1.6556358036596878E-02 2.8521009367191843E-02 + 3.6028931877608236E-02 3.7879819033570572E-02 3.3735785753959649E-02 + 2.4212560598360300E-02 1.0819434196900879E-02 -4.2537671579350664E-03 + -1.8478224170019965E-02 -2.9406860326823433E-02 -3.5106098592686950E-02 + -3.4521910029515220E-02 -2.7708132598952946E-02 -1.5863874302223958E-02 + -1.1580077443231460E-03 1.3642185758946391E-02 2.5681024076707266E-02 + 3.2572672959866725E-02 3.2898722655778798E-02 2.6538228779079191E-02 + 1.4748246346180915E-02 -4.1743955884481923E-05 -1.4699553637508102E-02 + -2.6041796712330211E-02 -3.1536140467249008E-02 -2.9899058057690303E-02 + -2.1443118481673320E-02 -8.0728131304535246E-03 7.0976132316551725E-03 + 2.0441357805577178E-02 2.8684248083229186E-02 2.9734434253931949E-02 + 2.3262560143907849E-02 1.0862652290612522E-02 -4.2815354337224490E-03 + -1.8174299269882985E-02 -2.7053323336403159E-02 -2.8434015073303797E-02 + -2.1860191784155488E-02 -9.1219101469752727E-03 6.1633780955255889E-03 + 1.9533950888493707E-02 2.6980049774676398E-02 2.6182047452117153E-02 + 1.7301919647173206E-02 3.0422380960335657E-03 -1.2103852771937732E-02 + -2.3231892527827876E-02 -2.6626853995949575E-02 -2.1063750337824812E-02 + -8.3380711427384017E-03 7.2202849970487834E-03 2.0159120023027253E-02 + 2.5808121414337908E-02 2.2017835874110277E-02 1.0073115228968610E-02 + -5.6314261696282161E-03 -1.9129726230552726E-02 -2.5134233437996173E-02 + -2.1161879812005239E-02 -8.6675398366221242E-03 7.3619920361423768E-03 + 2.0311350043538026E-02 2.4654511438735104E-02 1.8383859849950369E-02 + 4.0622691208718328E-03 -1.2085882148552328E-02 -2.2799191002806741E-02 + -2.3058058878679989E-02 -1.2541584244908203E-02 3.9747667677079834E-03 + 1.8650315012701656E-02 2.4253980038137782E-02 1.7795139432978637E-02 + 2.2682094116324809E-03 -1.4553595617932777E-02 -2.3907866521000035E-02 + -2.0635256837882168E-02 -6.1691514960964672E-03 1.1862272425723684E-02 + 2.3511383737440744E-02 2.1994014162442330E-02 7.7797837097208951E-03 + -1.1228719683887025E-02 -2.3906371587402459E-02 -2.2392621971740950E-02 + -7.1101872325756276E-03 1.2944018725226214E-02 2.5286839168112304E-02 + 2.1696831410436084E-02 3.8565793219162473E-03 -1.7047212571118738E-02 + -2.7121178686406365E-02 -1.9007749603586324E-02 2.5441034936110763E-03 + 2.3070239581479843E-02 2.7904071240792774E-02 1.2732443901998805E-02 + -1.2406979189313518E-02 -2.9381259319842399E-02 -2.4921444345659984E-02 + -1.1654872971014348E-03 2.4647897174821121E-02 3.2356924643736421E-02 + 1.4645974775657995E-02 -1.5874711927347383E-02 -3.5102209373183930E-02 + + + -1.7498335273162871E-14 -3.2518669658886287E-06 -6.5315855428941421E-06 + -9.8393942746215930E-06 -1.3175533747753596E-05 -1.6540246609548670E-05 + -1.9933777585489860E-05 -2.3356373497083906E-05 -2.6808283279813504E-05 + -3.0289758001242913E-05 -3.3801050879278537E-05 -3.7342417300586612E-05 + -4.0914114839167562E-05 -4.4516403275090180E-05 -4.8149544613386224E-05 + -5.1813803103106729E-05 -5.5509445256541110E-05 -5.9236739868601708E-05 + -6.2995958036373516E-05 -6.6787373178832206E-05 -7.0611261056730004E-05 + -7.4467899792652934E-05 -7.8357569891248811E-05 -8.2280554259629707E-05 + -8.6237138227947705E-05 -9.0227609570148402E-05 -9.4252258524900548E-05 + -9.8311377816706592E-05 -1.0240526267719263E-04 -1.0653421086658172E-04 + -1.1069852269535036E-04 -1.1489850104607079E-04 -1.1913445139544063E-04 + -1.2340668183650040E-04 -1.2771550310104230E-04 -1.3206122858221007E-04 + -1.3644417435729328E-04 -1.4086465921071546E-04 -1.4532300465722089E-04 + -1.4981953496525860E-04 -1.5435457718056701E-04 -1.5892846114996126E-04 + -1.6354151954532290E-04 -1.6819408788779647E-04 -1.7288650457219216E-04 + -1.7761911089159846E-04 -1.8239225106220455E-04 -1.8720627224833638E-04 + -1.9206152458770641E-04 -1.9695836121687955E-04 -2.0189713829695807E-04 + -2.0687821503948545E-04 -2.1190195373257275E-04 -2.1696871976724854E-04 + -2.2207888166403392E-04 -2.2723281109974681E-04 -2.3243088293453372E-04 + -2.3767347523913457E-04 -2.4296096932238036E-04 -2.4829374975892591E-04 + -2.5367220441722174E-04 -2.5909672448772345E-04 -2.6456770451134418E-04 + -2.7008554240815012E-04 -2.7565063950630176E-04 -2.8126340057124362E-04 + -2.8692423383514269E-04 -2.9263355102658091E-04 -2.9839176740049966E-04 + -3.0419930176840308E-04 -3.1005657652881776E-04 -3.1596401769801537E-04 + -3.2192205494099662E-04 -3.2793112160274209E-04 -3.3399165473972989E-04 + -3.4010409515172285E-04 -3.4626888741382932E-04 -3.5248647990883712E-04 + -3.5875732485982515E-04 -3.6508187836305418E-04 -3.7146060042113929E-04 + -3.7789395497650664E-04 -3.8438240994513600E-04 -3.9092643725059325E-04 + -3.9752651285835397E-04 -4.0418311681042046E-04 -4.1089673326023617E-04 + -4.1766785050789836E-04 -4.2449696103567293E-04 -4.3138456154381231E-04 + -4.3833115298668254E-04 -4.4533724060919595E-04 -4.5240333398356019E-04 + -4.5952994704633802E-04 -4.6671759813582739E-04 -4.7396681002976005E-04 + -4.8127810998332374E-04 -4.8865202976750954E-04 -4.9608910570778813E-04 + -5.0358987872311698E-04 -5.1115489436528115E-04 -5.1878470285857245E-04 + -5.2647985913980612E-04 -5.3424092289868343E-04 -5.4206845861849554E-04 + -5.4996303561718151E-04 -5.5792522808873184E-04 -5.6595561514495183E-04 + -5.7405478085757983E-04 -5.8222331430076606E-04 -5.9046180959391710E-04 + -5.9877086594490518E-04 -6.0715108769364911E-04 -6.1560308435606710E-04 + -6.2412747066840782E-04 -6.3272486663195878E-04 -6.4139589755813915E-04 + -6.5014119411397914E-04 -6.5896139236798598E-04 -6.6785713383640799E-04 + -6.7682906552988869E-04 -6.8587784000052508E-04 -6.9500411538932672E-04 + -7.0420855547408145E-04 -7.1349182971763229E-04 -7.2285461331656582E-04 + -7.3229758725031904E-04 -7.4182143833070597E-04 -7.5142685925186836E-04 + -7.6111454864065593E-04 -7.7088521110743418E-04 -7.8073955729733146E-04 + -7.9067830394192269E-04 -8.0070217391135540E-04 -8.1081189626692400E-04 + -8.2100820631409214E-04 -8.3129184565597077E-04 -8.4166356224725275E-04 + -8.5212411044861044E-04 -8.6267425108155877E-04 -8.7331475148378853E-04 + -8.8404638556497273E-04 -8.9486993386304989E-04 -9.0578618360099270E-04 + -9.1679592874405950E-04 -9.2789997005753716E-04 -9.3909911516497932E-04 + -9.5039417860694089E-04 -9.6178598190021895E-04 -9.7327535359759804E-04 + -9.8486312934810785E-04 -9.9655015195779825E-04 -1.0083372714510327E-03 + -1.0202253451323071E-03 -1.0322152376486002E-03 -1.0443078210522537E-03 + -1.0565039748643946E-03 -1.0688045861388994E-03 -1.0812105495269042E-03 + -1.0937227673418705E-03 -1.1063421496252050E-03 -1.1190696142124451E-03 + -1.1319060868000051E-03 -1.1448525010125000E-03 -1.1579097984706437E-03 + -1.1710789288597260E-03 -1.1843608499986804E-03 -1.1977565279097393E-03 + -1.2112669368886889E-03 -1.2248930595757234E-03 -1.2386358870269051E-03 + -1.2524964187862408E-03 -1.2664756629583703E-03 -1.2805746362818799E-03 + -1.2947943642032424E-03 -1.3091358809513931E-03 -1.3236002296129394E-03 + -1.3381884622080181E-03 -1.3529016397668021E-03 -1.3677408324066604E-03 + -1.3827071194099775E-03 -1.3978015893026463E-03 -1.4130253399332212E-03 + -1.4283794785527623E-03 -1.4438651218953503E-03 -1.4594833962593011E-03 + -1.4752354375890701E-03 -1.4911223915578585E-03 -1.5071454136509281E-03 + -1.5233056692496286E-03 -1.5396043337161461E-03 -1.5560425924789716E-03 + -1.5726216411191089E-03 -1.5893426854570144E-03 -1.6062069416402861E-03 + -1.6232156362320977E-03 -1.6403700063003950E-03 -1.6576712995078520E-03 + -1.6751207742026007E-03 -1.6927196995097349E-03 -1.7104693554235986E-03 + -1.7283710329008633E-03 -1.7464260339544026E-03 -1.7646356717479716E-03 + -1.7830012706916971E-03 -1.8015241665383806E-03 -1.8202057064806323E-03 + -1.8390472492488289E-03 -1.8580501652099219E-03 -1.8772158364670770E-03 + -1.8965456569601758E-03 -1.9160410325671771E-03 -1.9357033812063427E-03 + -1.9555341329393397E-03 -1.9755347300752283E-03 -1.9957066272753314E-03 + -2.0160512916590121E-03 -2.0365702029103488E-03 -2.0572648533857285E-03 + -2.0781367482223564E-03 -2.0991874054476990E-03 -2.1204183560898579E-03 + -2.1418311442888971E-03 -2.1634273274091123E-03 -2.1852084761522701E-03 + -2.2071761746718130E-03 -2.2293320206880408E-03 -2.2516776256042764E-03 + -2.2742146146240323E-03 -2.2969446268691729E-03 -2.3198693154990908E-03 + -2.3429903478309035E-03 -2.3663094054606781E-03 -2.3898281843856921E-03 + -2.4135483951277428E-03 -2.4374717628575112E-03 -2.4616000275199871E-03 + -2.4859349439609758E-03 -2.5104782820546704E-03 -2.5352318268323432E-03 + -2.5601973786121041E-03 -2.5853767531298028E-03 -2.6107717816710192E-03 + -2.6363843112042172E-03 -2.6622162045150059E-03 -2.6882693403415679E-03 + -2.7145456135112432E-03 -2.7410469350782800E-03 -2.7677752324627609E-03 + -2.7947324495907252E-03 -2.8219205470354828E-03 -2.8493415021601421E-03 + -2.8769973092613518E-03 -2.9048899797142823E-03 -2.9330215421188286E-03 + -2.9613940424470932E-03 -2.9900095441920938E-03 -3.0188701285177783E-03 + -3.0479778944102983E-03 -3.0773349588305867E-03 -3.1069434568682455E-03 + -3.1368055418967270E-03 -3.1669233857298824E-03 -3.1972991787798015E-03 + -3.2279351302160436E-03 -3.2588334681262019E-03 -3.2899964396778574E-03 + -3.3214263112819088E-03 -3.3531253687573122E-03 -3.3850959174971992E-03 + -3.4173402826364629E-03 -3.4498608092207251E-03 -3.4826598623767936E-03 + -3.5157398274845418E-03 -3.5491031103502815E-03 -3.5827521373816050E-03 + -3.6166893557637338E-03 -3.6509172336373482E-03 -3.6854382602779820E-03 + -3.7202549462769107E-03 -3.7553698237235977E-03 -3.7907854463897126E-03 + -3.8265043899147048E-03 -3.8625292519929764E-03 -3.8988626525626462E-03 + -3.9355072339959342E-03 -3.9724656612911639E-03 -4.0097406222664210E-03 + -4.0473348277548409E-03 -4.0852510118016046E-03 -4.1234919318625740E-03 + -4.1620603690046562E-03 -4.2009591281078635E-03 -4.2401910380691181E-03 + -4.2797589520077615E-03 -4.3196657474728730E-03 -4.3599143266523045E-03 + -4.4005076165835426E-03 -4.4414485693663481E-03 -4.4827401623772269E-03 + -4.5243853984857155E-03 -4.5663873062725324E-03 -4.6087489402495832E-03 + -4.6514733810818420E-03 -4.6945637358111365E-03 -4.7380231380818299E-03 + -4.7818547483684587E-03 -4.8260617542052672E-03 -4.8706473704177534E-03 + -4.9156148393561545E-03 -4.9609674311309453E-03 -5.0067084438503336E-03 + -5.0528412038597995E-03 -5.0993690659836633E-03 -5.1462954137687245E-03 + -5.1936236597299708E-03 -5.2413572455984108E-03 -5.2894996425709682E-03 + -5.3380543515625821E-03 -5.3870249034603801E-03 -5.4364148593800893E-03 + -5.4862278109245877E-03 -5.5364673804446721E-03 -5.5871372213020746E-03 + -5.6382410181346878E-03 -5.6897824871240755E-03 -5.7417653762652544E-03 + -5.7941934656387858E-03 -5.8470705676851691E-03 -5.9004005274816045E-03 + -5.9541872230210804E-03 -6.0084345654938739E-03 -6.0631464995714191E-03 + -6.1183270036926311E-03 -6.1739800903526281E-03 -6.2301098063939561E-03 + -6.2867202333002584E-03 -6.3438154874924822E-03 -6.4013997206275753E-03 + -6.4594771198997602E-03 -6.5180519083443385E-03 -6.5771283451441257E-03 + -6.6367107259384548E-03 -6.6968033831348367E-03 -6.7574106862232745E-03 + -6.8185370420932347E-03 -6.8801868953533409E-03 -6.9423647286537653E-03 + -7.0050750630113951E-03 -7.0683224581377284E-03 -7.1321115127696020E-03 + -7.1964468650026793E-03 -7.2613331926278555E-03 -7.3267752134704295E-03 + -7.3927776857322389E-03 -7.4593454083366614E-03 -7.5264832212765748E-03 + -7.5941960059652484E-03 -7.6624886855902550E-03 -7.7313662254703472E-03 + -7.8008336334154113E-03 -7.8708959600894413E-03 -7.9415582993766290E-03 + -8.0128257887505470E-03 -8.0847036096464604E-03 -8.1571969878368473E-03 + -8.2303111938100242E-03 -8.3040515431520752E-03 -8.3784233969319642E-03 + -8.4534321620899529E-03 -8.5290832918292793E-03 -8.6053822860112077E-03 + -8.6823346915533700E-03 -8.7599461028315534E-03 -8.8382221620848384E-03 + -8.9171685598242144E-03 -8.9967910352446185E-03 -9.0770953766405316E-03 + -9.1580874218250043E-03 -9.2397730585523450E-03 -9.3221582249442842E-03 + -9.4052489099198215E-03 -9.4890511536286758E-03 -9.5735710478884375E-03 + -9.6588147366253752E-03 -9.7447884163190356E-03 -9.8314983364505438E-03 + -9.9189507999547285E-03 -1.0007152163676097E-02 -1.0096108838828603E-02 + -1.0185827291459365E-02 -1.0276314042916254E-02 -1.0367575670319488E-02 + -1.0459618807037144E-02 -1.0552450143164777E-02 -1.0646076426008972E-02 + -1.0740504460575097E-02 -1.0835741110059097E-02 -1.0931793296343480E-02 + -1.1028668000497443E-02 -1.1126372263281281E-02 -1.1224913185654977E-02 + -1.1324297929291157E-02 -1.1424533717092284E-02 -1.1525627833712304E-02 + -1.1627587626082589E-02 -1.1730420503942390E-02 -1.1834133940373717E-02 + -1.1938735472340714E-02 -1.2044232701233597E-02 -1.2150633293417156E-02 + -1.2257944980783860E-02 -1.2366175561311626E-02 -1.2475332899626280E-02 + -1.2585424927568702E-02 -1.2696459644766792E-02 -1.2808445119212208E-02 + -1.2921389487841920E-02 -1.3035300957124693E-02 -1.3150187803652449E-02 + -1.3266058374736598E-02 -1.3382921089009389E-02 -1.3500784437030225E-02 + -1.3619656981897182E-02 -1.3739547359863481E-02 -1.3860464280959290E-02 + -1.3982416529618574E-02 -1.4105412965311283E-02 -1.4229462523180823E-02 + -1.4354574214686729E-02 -1.4480757128252898E-02 -1.4608020429921049E-02 + -1.4736373364009757E-02 -1.4865825253778905E-02 -1.4996385502099719E-02 + -1.5128063592130351E-02 -1.5260869087997137E-02 -1.5394811635481422E-02 + -1.5529900962712243E-02 -1.5666146880864602E-02 -1.5803559284863704E-02 + -1.5942148154094903E-02 -1.6081923553119635E-02 -1.6222895632397229E-02 + -1.6365074629012759E-02 -1.6508470867410818E-02 -1.6653094760135555E-02 + -1.6798956808576584E-02 -1.6946067603721315E-02 -1.7094437826913292E-02 + -1.7244078250616929E-02 -1.7394999739188535E-02 -1.7547213249653585E-02 + -1.7700729832490596E-02 -1.7855560632421264E-02 -1.8011716889207247E-02 + -1.8169209938453387E-02 -1.8328051212417644E-02 -1.8488252240827605E-02 + -1.8649824651703697E-02 -1.8812780172189195E-02 -1.8977130629386999E-02 + -1.9142887951203232E-02 -1.9310064167197841E-02 -1.9478671409442004E-02 + -1.9648721913382683E-02 -1.9820228018714119E-02 -1.9993202170256505E-02 + -2.0167656918841766E-02 -2.0343604922206614E-02 -2.0521058945892737E-02 + -2.0700031864154485E-02 -2.0880536660873729E-02 -2.1062586430482314E-02 + -2.1246194378891754E-02 -2.1431373824430760E-02 -2.1618138198790052E-02 + -2.1806501047975012E-02 -2.1996476033265776E-02 -2.2188076932185392E-02 + -2.2381317639475491E-02 -2.2576212168079934E-02 -2.2772774650136239E-02 + -2.2971019337975157E-02 -2.3170960605128063E-02 -2.3372612947342514E-02 + -2.3575990983605789E-02 -2.3781109457176840E-02 -2.3987983236626209E-02 + -2.4196627316884378E-02 -2.4407056820298319E-02 -2.4619286997696624E-02 + -2.4833333229462875E-02 -2.5049211026617633E-02 -2.5266936031908955E-02 + -2.5486524020911380E-02 -2.5707990903133856E-02 -2.5931352723136097E-02 + -2.6156625661653898E-02 -2.6383826036733084E-02 -2.6612970304872582E-02 + -2.6844075062176224E-02 -2.7077157045513625E-02 -2.7312233133689991E-02 + -2.7549320348625249E-02 -2.7788435856542084E-02 -2.8029596969163312E-02 + -2.8272821144918376E-02 -2.8518125990159418E-02 -2.8765529260386374E-02 + -2.9015048861481749E-02 -2.9266702850954628E-02 -2.9520509439194480E-02 + -2.9776486990734291E-02 -3.0034654025523438E-02 -3.0295029220210230E-02 + -3.0557631409434023E-02 -3.0822479587127468E-02 -3.1089592907828156E-02 + -3.1358990688000479E-02 -3.1630692407367128E-02 -3.1904717710250871E-02 + -3.2181086406926081E-02 -3.2459818474980549E-02 -3.2740934060687163E-02 + -3.3024453480386039E-02 -3.3310397221876682E-02 -3.3598785945820463E-02 + -3.3889640487153226E-02 -3.4182981856508615E-02 -3.4478831241651429E-02 + -3.4777210008921582E-02 -3.5078139704688364E-02 -3.5381642056815550E-02 + -3.5687738976136682E-02 -3.5996452557941164E-02 -3.6307805083470958E-02 + -3.6621819021427748E-02 -3.6938517029491198E-02 -3.7257921955847588E-02 + -3.7580056840729313E-02 -3.7904944917965193E-02 -3.8232609616541763E-02 + -3.8563074562175143E-02 -3.8896363578894033E-02 -3.9232500690633387E-02 + -3.9571510122839319E-02 -3.9913416304084751E-02 -4.0258243867696102E-02 + -4.0606017653390926E-02 -4.0956762708926772E-02 -4.1310504291760822E-02 + -4.1667267870720850E-02 -4.2027079127686821E-02 -4.2389963959284169E-02 + -4.2755948478587685E-02 -4.3125059016836678E-02 -4.3497322125161213E-02 + -4.3872764576319348E-02 -4.4251413366445801E-02 -4.4633295716811253E-02 + -4.5018439075593129E-02 -4.5406871119657140E-02 -4.5798619756350259E-02 + -4.6193713125304396E-02 -4.6592179600251415E-02 -4.6994047790848870E-02 + -4.7399346544517093E-02 -4.7808104948286995E-02 -4.8220352330658932E-02 + -4.8636118263472299E-02 -4.9055432563786402E-02 -4.9478325295771758E-02 + -4.9904826772612494E-02 -5.0334967558419007E-02 -5.0768778470152189E-02 + -5.1206290579557341E-02 -5.1647535215109341E-02 -5.2092543963968133E-02 + -5.2541348673944235E-02 -5.2993981455475549E-02 -5.3450474683613636E-02 + -5.3910861000020571E-02 -5.4375173314975732E-02 -5.4843444809393044E-02 + -5.5315708936847660E-02 -5.5791999425612762E-02 -5.6272350280705839E-02 + -5.6756795785945072E-02 -5.7245370506014553E-02 -5.7738109288539410E-02 + -5.8235047266169626E-02 -5.8736219858673548E-02 -5.9241662775039824E-02 + -5.9751412015588388E-02 -6.0265503874089722E-02 -6.0783974939893168E-02 + -6.1306862100062878E-02 -6.1834202541522144E-02 -6.2366033753205638E-02 + -6.2902393528219053E-02 -6.3443319966006689E-02 -6.3988851474525779E-02 + -6.4539026772428273E-02 -6.5093884891248843E-02 -6.5653465177600165E-02 + -6.6217807295373785E-02 -6.6786951227947519E-02 -6.7360937280397881E-02 + -6.7939806081718998E-02 -6.8523598587045514E-02 -6.9112356079881213E-02 + -6.9706120174331365E-02 -7.0304932817340030E-02 -7.0908836290930505E-02 + -7.1517873214449607E-02 -7.2132086546814619E-02 -7.2751519588763469E-02 + -7.3376215985106741E-02 -7.4006219726981667E-02 -7.4641575154107631E-02 + -7.5282326957042359E-02 -7.5928520179439102E-02 -7.6580200220303429E-02 + -7.7237412836249741E-02 -7.7900204143756618E-02 -7.8568620621421073E-02 + -7.9242709112210263E-02 -7.9922516825710971E-02 -8.0608091340375360E-02 + -8.1299480605763780E-02 -8.1996732944782103E-02 -8.2699897055914934E-02 + -8.3409022015452125E-02 -8.4124157279709830E-02 -8.4845352687243664E-02 + -8.5572658461054343E-02 -8.6306125210784387E-02 -8.7045803934905949E-02 + -8.7791746022897896E-02 -8.8544003257412046E-02 -8.9302627816427532E-02 + -9.0067672275392058E-02 -9.0839189609350224E-02 -9.1617233195056283E-02 + -9.2401856813072031E-02 -9.3193114649847281E-02 -9.3991061299783837E-02 + -9.4795751767279807E-02 -9.5607241468754503E-02 -9.6425586234652277E-02 + -9.7250842311424793E-02 -9.8083066363489402E-02 -9.8922315475163433E-02 + -9.9768647152572429E-02 -1.0062211932553178E-01 -1.0148279034939968E-01 + -1.0235071900690020E-01 -1.0322596450991536E-01 -1.0410858650124453E-01 + -1.0499864505632985E-01 -1.0589620068494551E-01 -1.0680131433284980E-01 + -1.0771404738339888E-01 -1.0863446165911925E-01 -1.0956261942323768E-01 + -1.1049858338116801E-01 -1.1144241668195051E-01 -1.1239418291964506E-01 + -1.1335394613467285E-01 -1.1432177081510761E-01 -1.1529772189791183E-01 + -1.1628186477011812E-01 -1.1727426526995163E-01 -1.1827498968789214E-01 + -1.1928410476767379E-01 -1.2030167770721981E-01 -1.2132777615950922E-01 + -1.2236246823337432E-01 -1.2340582249422459E-01 -1.2445790796469704E-01 + -1.2551879412522704E-01 -1.2658855091453969E-01 -1.2766724873005653E-01 + -1.2875495842821735E-01 -1.2985175132471119E-01 -1.3095769919461522E-01 + -1.3207287427243838E-01 -1.3319734925206478E-01 -1.3433119728659643E-01 + -1.3547449198808856E-01 -1.3662730742717680E-01 -1.3778971813258989E-01 + -1.3896179909054773E-01 -1.4014362574403696E-01 -1.4133527399196288E-01 + -1.4253682018817251E-01 -1.4374834114034565E-01 -1.4496991410874774E-01 + -1.4620161680484264E-01 -1.4744352738975827E-01 -1.4869572447260304E-01 + -1.4995828710862619E-01 -1.5123129479721845E-01 -1.5251482747974732E-01 + -1.5380896553722273E-01 -1.5511378978778692E-01 -1.5642938148402333E-01 + -1.5775582231007945E-01 -1.5909319437859742E-01 -1.6044158022744706E-01 + -1.6180106281625478E-01 -1.6317172552272288E-01 -1.6455365213873152E-01 + -1.6594692686622009E-01 -1.6735163431283689E-01 -1.6876785948735457E-01 + -1.7019568779484076E-01 -1.7163520503158056E-01 -1.7308649737973966E-01 + -1.7454965140176343E-01 -1.7602475403450210E-01 -1.7751189258305733E-01 + -1.7901115471433804E-01 -1.8052262845032022E-01 -1.8204640216100018E-01 + -1.8358256455703531E-01 -1.8513120468205954E-01 -1.8669241190466776E-01 + -1.8826627591005773E-01 -1.8985288669132044E-01 -1.9145233454037006E-01 + -1.9306471003850120E-01 -1.9469010404656531E-01 -1.9632860769475322E-01 + -1.9798031237197633E-01 -1.9964530971483146E-01 -2.0132369159614072E-01 + -2.0301555011305250E-01 -2.0472097757469482E-01 -2.0644006648936439E-01 + -2.0817290955124251E-01 -2.0991959962662218E-01 -2.1168022973963649E-01 + -2.1345489305747009E-01 -2.1524368287504478E-01 -2.1704669259916076E-01 + -2.1886401573208294E-01 -2.2069574585455362E-01 -2.2254197660821914E-01 + -2.2440280167745350E-01 -2.2627831477056329E-01 -2.2816860960035776E-01 + -2.3007377986406685E-01 -2.3199391922259097E-01 -2.3392912127906210E-01 + -2.3587947955670399E-01 -2.3784508747596675E-01 -2.3982603833092045E-01 + -2.4182242526488787E-01 -2.4383434124529790E-01 -2.4586187903773624E-01 + -2.4790513117917612E-01 -2.4996418995036568E-01 -2.5203914734735305E-01 + -2.5413009505212336E-01 -2.5623712440232893E-01 -2.5836032636008599E-01 + -2.6049979147981900E-01 -2.6265560987512282E-01 -2.6482787118462303E-01 + -2.6701666453680595E-01 -2.6922207851379359E-01 -2.7144420111403983E-01 + -2.7368311971391562E-01 -2.7593892102816031E-01 -2.7821169106916838E-01 + -2.8050151510508614E-01 -2.8280847761668398E-01 -2.8513266225297951E-01 + -2.8747415178557678E-01 -2.8983302806169453E-01 -2.9220937195584756E-01 + -2.9460326332015169E-01 -2.9701478093321620E-01 -2.9944400244759484E-01 + -3.0189100433575428E-01 -3.0435586183453017E-01 -3.0683864888803114E-01 + -3.0933943808895759E-01 -3.1185830061829395E-01 -3.1439530618333866E-01 + -3.1695052295403298E-01 -3.1952401749754616E-01 -3.2211585471108156E-01 + -3.2472609775285688E-01 -3.2735480797122057E-01 -3.3000204483185780E-01 + -3.3266786584304814E-01 -3.3535232647892321E-01 -3.3805548010068492E-01 + -3.4077737787573420E-01 -3.4351806869466728E-01 -3.4627759908608724E-01 + -3.4905601312918605E-01 -3.5185335236404369E-01 -3.5466965569960029E-01 + -3.5750495931924231E-01 -3.6035929658395693E-01 -3.6323269793299784E-01 + -3.6612519078201283E-01 -3.6903679941857309E-01 -3.7196754489505413E-01 + -3.7491744491880852E-01 -3.7788651373957360E-01 -3.8087476203406007E-01 + -3.8388219678765551E-01 -3.8690882117319064E-01 -3.8995463442670081E-01 + -3.9301963172012866E-01 -3.9610380403089884E-01 -3.9920713800830715E-01 + -4.0232961583665533E-01 -4.0547121509507378E-01 -4.0863190861395954E-01 + -4.1181166432796890E-01 -4.1501044512549318E-01 -4.1822820869455757E-01 + -4.2146490736506664E-01 -4.2472048794733203E-01 -4.2799489156681286E-01 + -4.3128805349499955E-01 -4.3459990297636791E-01 -4.3793036305133376E-01 + -4.4127935037513943E-01 -4.4464677503259414E-01 -4.4803254034860346E-01 + -4.5143654269440914E-01 -4.5485867128946877E-01 -4.5829880799890249E-01 + -4.6175682712643512E-01 -4.6523259520275601E-01 -4.6872597076922817E-01 + -4.7223680415686731E-01 -4.7576493726052865E-01 -4.7931020330821406E-01 + -4.8287242662544044E-01 -4.8645142239458677E-01 -4.9004699640915783E-01 + -4.9365894482288453E-01 -4.9728705389359801E-01 -5.0093109972180117E-01 + -5.0459084798387988E-01 -5.0826605365987332E-01 -5.1195646075574841E-01 + -5.1566180202010858E-01 -5.1938179865527467E-01 -5.2311616002267958E-01 + -5.2686458334251307E-01 -5.3062675338756415E-01 -5.3440234217120108E-01 + -5.3819100862944436E-01 -5.4199239829707424E-01 -5.4580614297773511E-01 + -5.4963186040798484E-01 -5.5346915391525742E-01 -5.5731761206969788E-01 + -5.6117680832983796E-01 -5.6504630068208428E-01 -5.6892563127400131E-01 + -5.7281432604136162E-01 -5.7671189432895809E-01 -5.8061782850516597E-01 + -5.8453160357025746E-01 -5.8845267675846957E-01 -5.9238048713383762E-01 + -5.9631445517981796E-01 -6.0025398238271654E-01 -6.0419845080896950E-01 + -6.0814722267630861E-01 -6.1209963991886884E-01 -6.1605502374629639E-01 + -6.2001267419693362E-01 -6.2397186968515594E-01 -6.2793186654295885E-01 + -6.3189189855589800E-01 -6.3585117649350176E-01 -6.3980888763428356E-01 + -6.4376419528550133E-01 -6.4771623829781888E-01 -6.5166413057505046E-01 + -6.5560696057916779E-01 -6.5954379083078662E-01 -6.6347365740534858E-01 + -6.6739556942524803E-01 -6.7130850854815938E-01 -6.7521142845185167E-01 + -6.7910325431579111E-01 -6.8298288229985982E-01 -6.8684917902053622E-01 + -6.9070098102491084E-01 -6.9453709426293808E-01 -6.9835629355834417E-01 + -7.0215732207865100E-01 -7.0593889080478611E-01 -7.0969967800080125E-01 + -7.1343832868423140E-01 -7.1715345409768205E-01 -7.2084363118223838E-01 + -7.2450740205335395E-01 -7.2814327347989316E-01 -7.3174971636705066E-01 + -7.3532516524390357E-01 -7.3886801775640054E-01 -7.4237663416662814E-01 + -7.4584933685925126E-01 -7.4928440985604694E-01 -7.5268009833953198E-01 + -7.5603460818670154E-01 -7.5934610551397641E-01 -7.6261271623448490E-01 + -7.6583252562887805E-01 -7.6900357793092999E-01 -7.7212387592922505E-01 + -7.7519138058631110E-01 -7.7820401067674549E-01 -7.8115964244553571E-01 + -7.8405610928853464E-01 -7.8689120145643887E-01 -7.8966266578407596E-01 + -7.9236820544677999E-01 -7.9500547974569524E-01 -7.9757210392395217E-01 + -8.0006564901572030E-01 -8.0248364173023501E-01 -8.0482356437297831E-01 + -8.0708285480627617E-01 -8.0925890645166410E-01 -8.1134906833646558E-01 + -8.1335064518711708E-01 -8.1526089757186915E-01 -8.1707704209558518E-01 + -8.1879625164946590E-01 -8.2041565571861652E-01 -8.2193234075047894E-01 + -8.2334335058725949E-01 -8.2464568696557505E-01 -8.2583631008665537E-01 + -8.2691213926054075E-01 -8.2787005362782240E-01 -8.2870689296258127E-01 + -8.2941945856028576E-01 -8.3000451421452415E-01 -8.3045878728654854E-01 + -8.3077896987171773E-01 -8.3096172006703828E-01 -8.3100366334409925E-01 + -8.3090139403181484E-01 -8.3065147691347474E-01 -8.3025044894272326E-01 + -8.2969482108316817E-01 -8.2898108027642470E-01 -8.2810569154349234E-01 + -8.2706510022443958E-01 -8.2585573436146353E-01 -8.2447400723046238E-01 + -8.2291632002632153E-01 -8.2117906470719149E-01 -8.1925862700306873E-01 + -8.1715138959405031E-01 -8.1485373546366469E-01 -8.1236205143269002E-01 + -8.0967273187889943E-01 -8.0678218264815993E-01 -8.0368682516228562E-01 + -8.0038310072902996E-01 -7.9686747505952671E-01 -7.9313644299842889E-01 + -7.8918653347190670E-01 -7.8501431465852978E-01 -7.8061639938793470E-01 + -7.7598945077201431E-01 -7.7113018807313571E-01 -7.6603539281372646E-01 + -7.6070191513123830E-01 -7.5512668038225172E-01 -7.4930669599914446E-01 + -7.4323905860233297E-01 -7.3692096137074525E-01 -7.3034970167264768E-01 + -7.2352268895847816E-01 -7.1643745291678018E-01 -7.0909165189365664E-01 + -7.0148308157553851E-01 -6.9360968393429945E-01 -6.8546955643290719E-01 + -6.7706096148898520E-01 -6.6838233619263576E-01 -6.5943230227388838E-01 + -6.5020967631402105E-01 -6.4071348019376806E-01 -6.3094295177016868E-01 + -6.2089755577243821E-01 -6.1057699490569084E-01 -5.9998122114986496E-01 + -5.8911044723938566E-01 -5.7796515830738648E-01 -5.6654612367636392E-01 + -5.5485440877503978E-01 -5.4289138715915319E-01 -5.3065875261148154E-01 + -5.1815853129404899E-01 -5.0539309392292386E-01 -4.9236516793322371E-01 + -4.7907784959919902E-01 -4.6553461607127139E-01 -4.5173933728870169E-01 + -4.3769628772343466E-01 -4.2341015790711511E-01 -4.0888606568982427E-01 + -3.9412956717537945E-01 -3.7914666727415969E-01 -3.6394382981053575E-01 + -3.4852798711792449E-01 -3.3290654905019429E-01 -3.1708741133403207E-01 + -3.0107896318234811E-01 -2.8489009408446420E-01 -2.6853019968433395E-01 + -2.5200918665343974E-01 -2.3533747646065117E-01 -2.1852600793669896E-01 + -2.0158623852660723E-01 -1.8453014411914084E-01 -1.6737021733812152E-01 + -1.5011946417661501E-01 -1.3279139885139299E-01 -1.1540003675167276E-01 + -9.7959885353494466E-02 -8.0485932968556093E-02 -6.2993635194827494E-02 + -4.5498898935247223E-02 -2.8018063850706789E-02 -1.0567881114515136E-02 + 6.8345106622899601E-03 2.4171612462072244E-02 4.1425594970236936E-02 + 5.8578331878757571E-02 7.5611436490069794E-02 9.2506301716571260E-02 + 1.0924414355737176E-01 1.2580604811700802E-01 1.4217302221098499E-01 + 1.5832604757914687E-01 1.7424613869987574E-01 1.8991440416562691E-01 + 2.0531211154224935E-01 2.2042075559083230E-01 2.3522212968065534E-01 + 2.4969840016401376E-01 2.6383218341831449E-01 2.7760662518601770E-01 + 2.9100548175840862E-01 3.0401320245364388E-01 3.1661501273149184E-01 + 3.2879699716571503E-01 3.4054618135877623E-01 3.5185061173182497E-01 + 3.6269939601433632E-01 3.7308237260998633E-01 3.8298974563625260E-01 + 3.9241206171346643E-01 4.0134022185465434E-01 4.0976549350854946E-01 + 4.1767952276179032E-01 4.2507434671199623E-01 4.3194240602123357E-01 + 4.3827655765906670E-01 4.4407008784747709E-01 4.4931672521729149E-01 + 4.5401065418669301E-01 4.5814652857126509E-01 4.6171948543396407E-01 + 4.6472515918186125E-01 4.6715969591442275E-01 4.6901976802559103E-01 + 4.7030258905888150E-01 4.7100592881110176E-01 4.7112812867624915E-01 + 4.7066811721646895E-01 4.6962542594186002E-01 4.6800020527529829E-01 + 4.6579324067235084E-01 4.6300596885991496E-01 4.5964049415031416E-01 + 4.5569960478043819E-01 4.5118678921809957E-01 4.4610625237015644E-01 + 4.4046293161931432E-01 4.3426251260889159E-01 4.2751144468735131E-01 + 4.2021695591734298E-01 4.1238706754738447E-01 4.0403060783854411E-01 + 3.9515722513371770E-01 3.8577740005363970E-01 3.7590245670199057E-01 + 3.6554457276212399E-01 3.5471678837033577E-01 3.4343301365556028E-01 + 3.3170803484294170E-01 3.1955751882903233E-01 3.0699801614918432E-01 + 2.9404696227260468E-01 2.8072267717695365E-01 2.6704436317114810E-01 + 2.5303210095104961E-01 2.3870684388630375E-01 2.2409041054607701E-01 + 2.0920547547504320E-01 1.9407555822703151E-01 1.7872501065098576E-01 + 1.6317900240162320E-01 1.4746350461542979E-01 1.3160527165248945E-01 + 1.1563182075808311E-01 9.9571409447991033E-02 8.3453010371689409E-02 + 6.7306283362208993E-02 5.1161544344353653E-02 3.5049730747788270E-02 + 1.9002363060729867E-02 3.0515021649296014E-03 -1.2770297886831419E-02 + -2.8430041954877271E-02 -4.3894351016435358E-02 -5.9129524692898949E-02 + -7.4101609245654954E-02 -8.8776471125902895E-02 -1.0311987610620849E-01 + -1.1709757396805015E-01 -1.3067538867164352E-01 -1.4381931389231187E-01 + -1.5649561377135426E-01 -1.6867092869786038E-01 -1.8031238591007714E-01 + -1.9138771467936244E-01 -2.0186536581510853E-01 -2.1171463520408307E-01 + -2.2090579107136266E-01 -2.2941020462163414E-01 -2.3720048368861624E-01 + -2.4425060898632026E-01 -2.5053607251880494E-01 -2.5603401766498551E-01 + -2.6072338041215604E-01 -2.6458503116653115E-01 -2.6760191652162074E-01 + -2.6975920031619932E-01 -2.7104440326345014E-01 -2.7144754038216667E-01 + -2.7096125541029359E-01 -2.6958095133120957E-01 -2.6730491609465645E-01 + -2.6413444256787516E-01 -2.6007394170893089E-01 -2.5513104791427066E-01 + -2.4931671545691911E-01 -2.4264530490116809E-01 -2.3513465835494715E-01 + -2.2680616240294693E-01 -2.1768479755273468E-01 -2.0779917302324818E-01 + -1.9718154571070481E-01 -1.8586782218176207E-01 -1.7389754256812612E-01 + -1.6131384527115744E-01 -1.4816341142975326E-01 -1.3449638816012047E-01 + -1.2036628964230225E-01 -1.0582987520564839E-01 -9.0947003654026096E-02 + -7.5780463171661164E-02 -6.0395776262248853E-02 -4.4860979297609030E-02 + -2.9246376387965747E-02 -1.3624267434148836E-02 1.9313496171917527E-03 + 1.7345102119850825E-02 3.2540591293550997E-02 4.7440765424765351E-02 + 6.1968316904362310E-02 7.6046102074829508E-02 8.9597582616408170E-02 + 1.0254728694592743E-01 1.1482128983013640E-01 1.2634770813553586E-01 + 1.3705721034166440E-01 1.4688353713765592E-01 1.5576403011535031E-01 + 1.6364016524686895E-01 1.7045808751539610E-01 1.7616914274611503E-01 + 1.8073040236018792E-01 1.8410517646520883E-01 1.8626351039239181E-01 + 1.8718265950648624E-01 1.8684753685160055E-01 1.8525112796144763E-01 + 1.8239486696222315E-01 1.7828896793713833E-01 1.7295270541063010E-01 + 1.6641463775477330E-01 1.5871276732791637E-01 1.4989463123370403E-01 + 1.4001731674495721E-01 1.2914739567886993E-01 1.1736077234479302E-01 + 1.0474244012026218E-01 9.1386142251078509E-02 7.7393933122487990E-02 + 6.2875637015275959E-02 4.7948202246062027E-02 3.2734949597048812E-02 + 1.7364715067092654E-02 1.9708882214761084E-03 -1.3309651221684215E-02 + -2.8337694461073516E-02 -4.2972956661115939E-02 -5.7075414645594846E-02 + -7.0506720169581219E-02 -8.3131677915368615E-02 -9.4819775535016901E-02 + -1.0544675122818928E-01 -1.1489618252696365E-01 -1.2306107819032817E-01 + -1.2984545342445833E-01 -1.3516586707806283E-01 -1.3895289805527999E-01 + -1.4115253698441030E-01 -1.4172746822377819E-01 -1.4065821662204492E-01 + -1.3794413312588102E-01 -1.3360419338925003E-01 -1.2767758403068277E-01 + -1.2022405215054645E-01 -1.1132399519858156E-01 -1.0107827030717381E-01 + -8.9607704805957075E-02 -7.7052292828514946E-02 -6.3570066722948945E-02 + -4.9335636384617472E-02 -3.4538394628530665E-02 -1.9380392283633890E-02 + -4.0738927787632856E-03 1.1161377459342406E-02 2.6101259539815652E-02 + 4.0520443092998785E-02 5.4195959831156847E-02 6.6910844376513706E-02 + 7.8457909736067144E-02 8.8643577783091426E-02 9.7291698568923904E-02 + 1.0424728644032667E-01 1.0938009599356886E-01 1.1258795708008874E-01 + 1.1379978561673744E-01 1.1297818606998324E-01 1.1012156239276263E-01 + 1.0526565709328557E-01 9.8484443181077741E-02 8.9890301108189519E-02 + 7.9633422602262791E-02 6.7900395521463972E-02 5.4911938537365902E-02 + 4.0919771489702973E-02 2.6202626498171237E-02 1.1061426118182725E-02 + -4.1863223434742700E-03 -1.9212843207831374E-02 -3.3687021645272160E-02 + -4.7281823117238421E-02 -5.9682056287824956E-02 -7.0592309951384963E-02 + -7.9744874092011725E-02 -8.6907437930457687E-02 -9.1890344645413138E-02 + -9.4553174298403042E-02 -9.4810424229587284E-02 -9.2636060639211842E-02 + -8.8066726929127051E-02 -8.1203414199672877E-02 -7.2211427430465214E-02 + -6.1318517428191548E-02 -4.8811093425028929E-02 -3.5028483759585324E-02 + -2.0355271515439210E-02 -5.2117970997488244E-03 9.9570111038462111E-03 + 2.4694245683937278E-02 3.8544765572340489E-02 5.1069706837741251E-02 + 6.1861326084700602E-02 7.0557690978352253E-02 7.6856692140328919E-02 + 8.0528825958896613E-02 8.1428191715343615E-02 7.9501161478928134E-02 + 7.4792219557375611E-02 6.7446531283673325E-02 5.7708889049296032E-02 + 4.5918796170149691E-02 3.2501584596201796E-02 1.7955617532923900E-02 + 2.8357982379537635E-03 -1.2266214282510400E-02 -2.6744500403693951E-02 + -4.0003328254630072E-02 -5.1482637910647305E-02 -6.0683509416072902E-02 + -6.7192463285292964E-02 -7.0703387529425218E-02 -7.1035884005788308E-02 + -6.8148885976278648E-02 -6.2148522919000054E-02 -5.3289399697072755E-02 + -4.1968713502121224E-02 -2.8712947957346975E-02 -1.4157249519305826E-02 + 9.8200737795304041E-04 1.5940541586716522E-02 2.9944034763511703E-02 + 4.2248827955456029E-02 5.2183398321145331E-02 5.9188327982481567E-02 + 6.2852346644756987E-02 6.2942032671762502E-02 5.9422911028800443E-02 + 5.2470000656830607E-02 4.2466338714277789E-02 2.9988633981969590E-02 + 1.5779953742014550E-02 7.1019235625431186E-04 -1.4274041545652167E-02 + -2.8207606327796345E-02 -4.0169765777583931E-02 -4.9347921636618219E-02 + -5.5097739845150859E-02 -5.6995108614782415E-02 -5.4875529508839282E-02 + -4.8857060333997976E-02 -3.9343806448245054E-02 -2.7008171758455098E-02 + -1.2751577148811023E-02 2.3549549703107409E-03 1.7147183092778059E-02 + 3.0456125215244476E-02 4.1202280216416129E-02 4.8488137909597072E-02 + 5.1680954257870247E-02 5.0477852396917600E-02 4.4946126403037787E-02 + 3.5533193003875613E-02 2.3042905882620538E-02 8.5777897870959428E-03 + -6.5500378554815466E-03 -2.0933185438662461E-02 -3.3199399256271946E-02 + -4.2146428175816618E-02 -4.6868124647236449E-02 -4.6858199996298158E-02 + -4.2079095652038170E-02 -3.2985956666811027E-02 -2.0499612607862497E-02 + -5.9275216699885705E-03 9.1626182751426838E-03 2.3106027054143795E-02 + 3.4324915235382857E-02 4.1513623272377738E-02 4.3802936406768377E-02 + 4.0882115776397339E-02 3.3060361558475533E-02 2.1255296913666073E-02 + 6.9042170867799745E-03 -8.1965013951049298E-03 -2.2108403850715469E-02 + -3.2999865248022682E-02 -3.9395668043677619E-02 -4.0392913088908036E-02 + -3.5810379727152564E-02 -2.6244850661611006E-02 -1.3018962303593926E-02 + 1.9802303389915401E-03 1.6556358036596878E-02 2.8521009367191843E-02 + 3.6028931877608236E-02 3.7879819033570572E-02 3.3735785753959649E-02 + 2.4212560598360300E-02 1.0819434196900879E-02 -4.2537671579350664E-03 + -1.8478224170019965E-02 -2.9406860326823433E-02 -3.5106098592686950E-02 + -3.4521910029515220E-02 -2.7708132598952946E-02 -1.5863874302223958E-02 + -1.1580077443231460E-03 1.3642185758946391E-02 2.5681024076707266E-02 + 3.2572672959866725E-02 3.2898722655778798E-02 2.6538228779079191E-02 + 1.4748246346180915E-02 -4.1743955884481923E-05 -1.4699553637508102E-02 + -2.6041796712330211E-02 -3.1536140467249008E-02 -2.9899058057690303E-02 + -2.1443118481673320E-02 -8.0728131304535246E-03 7.0976132316551725E-03 + 2.0441357805577178E-02 2.8684248083229186E-02 2.9734434253931949E-02 + 2.3262560143907849E-02 1.0862652290612522E-02 -4.2815354337224490E-03 + -1.8174299269882985E-02 -2.7053323336403159E-02 -2.8434015073303797E-02 + -2.1860191784155488E-02 -9.1219101469752727E-03 6.1633780955255889E-03 + 1.9533950888493707E-02 2.6980049774676398E-02 2.6182047452117153E-02 + 1.7301919647173206E-02 3.0422380960335657E-03 -1.2103852771937732E-02 + -2.3231892527827876E-02 -2.6626853995949575E-02 -2.1063750337824812E-02 + -8.3380711427384017E-03 7.2202849970487834E-03 2.0159120023027253E-02 + 2.5808121414337908E-02 2.2017835874110277E-02 1.0073115228968610E-02 + -5.6314261696282161E-03 -1.9129726230552726E-02 -2.5134233437996173E-02 + -2.1161879812005239E-02 -8.6675398366221242E-03 7.3619920361423768E-03 + 2.0311350043538026E-02 2.4654511438735104E-02 1.8383859849950369E-02 + 4.0622691208718328E-03 -1.2085882148552328E-02 -2.2799191002806741E-02 + -2.3058058878679989E-02 -1.2541584244908203E-02 3.9747667677079834E-03 + 1.8650315012701656E-02 2.4253980038137782E-02 1.7795139432978637E-02 + 2.2682094116324809E-03 -1.4553595617932777E-02 -2.3907866521000035E-02 + -2.0635256837882168E-02 -6.1691514960964672E-03 1.1862272425723684E-02 + 2.3511383737440744E-02 2.1994014162442330E-02 7.7797837097208951E-03 + -1.1228719683887025E-02 -2.3906371587402459E-02 -2.2392621971740950E-02 + -7.1101872325756276E-03 1.2944018725226214E-02 2.5286839168112304E-02 + 2.1696831410436084E-02 3.8565793219162473E-03 -1.7047212571118738E-02 + -2.7121178686406365E-02 -1.9007749603586324E-02 2.5441034936110763E-03 + 2.3070239581479843E-02 2.7904071240792774E-02 1.2732443901998805E-02 + -1.2406979189313518E-02 -2.9381259319842399E-02 -2.4921444345659984E-02 + -1.1654872971014348E-03 2.4647897174821121E-02 3.2356924643736421E-02 + 1.4645974775657995E-02 -1.5874711927347383E-02 -3.5102209373183930E-02 + + + -1.8198740040983874E-13 -3.3820405732114123E-05 -6.7930476692215711E-05 + -1.0233269380565551E-04 -1.3702955924637609E-04 -1.7202359661889918E-04 + -2.0731735114187425E-04 -2.4291338983319544E-04 -2.7881430169670739E-04 + -3.1502269791050947E-04 -3.5154121201686796E-04 -3.8837250011376583E-04 + -4.2551924104807876E-04 -4.6298413661041493E-04 -5.0076991173162355E-04 + -5.3887931468098453E-04 -5.7731511726608954E-04 -6.1608011503444711E-04 + -6.5517712747680456E-04 -6.9460899823221519E-04 -7.3437859529486087E-04 + -7.7448881122264910E-04 -8.1494256334758639E-04 -8.5574279398796971E-04 + -8.9689247066237902E-04 -9.3839458630551635E-04 -9.8025215948587723E-04 + -1.0224682346253054E-03 -1.0650458822204154E-03 -1.1079881990659110E-03 + -1.1512983084798259E-03 -1.1949793605306766E-03 -1.2390345322665869E-03 + -1.2834670279463422E-03 -1.3282800792724543E-03 -1.3734769456261963E-03 + -1.4190609143046719E-03 -1.4650353007598902E-03 -1.5114034488399189E-03 + -1.5581687310320779E-03 -1.6053345487082183E-03 -1.6529043323721233E-03 + -1.7008815419090021E-03 -1.7492696668371264E-03 -1.7980722265616414E-03 + -1.8472927706305214E-03 -1.8969348789927383E-03 -1.9470021622586355E-03 + -1.9974982619625288E-03 -2.0484268508275559E-03 -2.0997916330327934E-03 + -2.1515963444826841E-03 -2.2038447530787239E-03 -2.2565406589935247E-03 + -2.3096878949471836E-03 -2.3632903264860674E-03 -2.4173518522639247E-03 + -2.4718764043254603E-03 -2.5268679483923008E-03 -2.5823304841514189E-03 + -2.6382680455460583E-03 -2.6946847010690836E-03 -2.7515845540589216E-03 + -2.8089717429979674E-03 -2.8668504418135955E-03 -2.9252248601817263E-03 + -2.9840992438329773E-03 -3.0434778748614877E-03 -3.1033650720363264E-03 + -3.1637651911156071E-03 -3.2246826251632805E-03 -3.2861218048686356E-03 + -3.3480871988685501E-03 -3.4105833140724898E-03 -3.4736146959902865E-03 + -3.5371859290627421E-03 -3.6013016369950313E-03 -3.6659664830930162E-03 + -3.7311851706023644E-03 -3.7969624430506366E-03 -3.8633030845922744E-03 + -3.9302119203565465E-03 -3.9976938167984666E-03 -4.0657536820527451E-03 + -4.1343964662907216E-03 -4.2036271620804148E-03 -4.2734508047496088E-03 + -4.3438724727520601E-03 -4.4148972880368618E-03 -4.4865304164209401E-03 + -4.5587770679647683E-03 -4.6316424973512609E-03 -4.7051320042679722E-03 + -4.7792509337924987E-03 -4.8540046767812347E-03 -4.9293986702614303E-03 + -5.0054383978266059E-03 -5.0821293900353932E-03 -5.1594772248137102E-03 + -5.2374875278604670E-03 -5.3161659730566885E-03 -5.3955182828781829E-03 + -5.4755502288116780E-03 -5.5562676317746076E-03 -5.6376763625384232E-03 + -5.7197823421555683E-03 -5.8025915423900879E-03 -5.8861099861519349E-03 + -5.9703437479350051E-03 -6.0552989542588982E-03 -6.1409817841144776E-03 + -6.2273984694132655E-03 -6.3145552954406194E-03 -6.4024586013128821E-03 + -6.4911147804383781E-03 -6.5805302809823730E-03 -6.6707116063359963E-03 + -6.7616653155892735E-03 -6.8533980240080561E-03 -6.9459164035151535E-03 + -7.0392271831755514E-03 -7.1333371496857725E-03 -7.2282531478674332E-03 + -7.3239820811650189E-03 -7.4205309121479638E-03 -7.5179066630169577E-03 + -7.6161164161146541E-03 -7.7151673144406968E-03 -7.8150665621712304E-03 + -7.9158214251827674E-03 -8.0174392315805788E-03 -8.1199273722316716E-03 + -8.2232933013022414E-03 -8.3275445367997011E-03 -8.4326886611195244E-03 + -8.5387333215965634E-03 -8.6456862310612063E-03 -8.7535551684002726E-03 + -8.8623479791227044E-03 -8.9720725759300998E-03 -9.0827369392921173E-03 + -9.1943491180268844E-03 -9.3069172298862104E-03 -9.4204494621460116E-03 + -9.5349540722016509E-03 -9.6504393881683987E-03 -9.7669138094870905E-03 + -9.8843858075348835E-03 -1.0002863926241364E-02 -1.0122356782709750E-02 + -1.0242873067843612E-02 -1.0364421546978827E-02 -1.0487011060520950E-02 + -1.0610650524588126E-02 -1.0735348931659413E-02 -1.0861115351228696E-02 + -1.0987958930464205E-02 -1.1115888894873655E-02 -1.1244914548975141E-02 + -1.1375045276973646E-02 -1.1506290543443504E-02 -1.1638659894016580E-02 + -1.1772162956076380E-02 -1.1906809439458148E-02 -1.2042609137154860E-02 + -1.2179571926029375E-02 -1.2317707767532573E-02 -1.2457026708427707E-02 + -1.2597538881520948E-02 -1.2739254506398177E-02 -1.2882183890168068E-02 + -1.3026337428211512E-02 -1.3171725604937531E-02 -1.3318358994545631E-02 + -1.3466248261794593E-02 -1.3615404162778004E-02 -1.3765837545706254E-02 + -1.3917559351695388E-02 -1.4070580615562565E-02 -1.4224912466628433E-02 + -1.4380566129526323E-02 -1.4537552925018364E-02 -1.4695884270818567E-02 + -1.4855571682423066E-02 -1.5016626773947269E-02 -1.5179061258970334E-02 + -1.5342886951386855E-02 -1.5508115766265693E-02 -1.5674759720716365E-02 + -1.5842830934762700E-02 -1.6012341632224057E-02 -1.6183304141603946E-02 + -1.6355730896986404E-02 -1.6529634438940066E-02 -1.6705027415429730E-02 + -1.6881922582736027E-02 -1.7060332806382719E-02 -1.7240271062072047E-02 + -1.7421750436628129E-02 -1.7604784128948260E-02 -1.7789385450962564E-02 + -1.7975567828601588E-02 -1.8163344802772530E-02 -1.8352730030343427E-02 + -1.8543737285136128E-02 -1.8736380458927414E-02 -1.8930673562459074E-02 + -1.9126630726456099E-02 -1.9324266202654244E-02 -1.9523594364835761E-02 + -1.9724629709874392E-02 -1.9927386858789056E-02 -2.0131880557806785E-02 + -2.0338125679434535E-02 -2.0546137223540335E-02 -2.0755930318443465E-02 + -2.0967520222014202E-02 -2.1180922322782885E-02 -2.1396152141058371E-02 + -2.1613225330056132E-02 -2.1832157677036057E-02 -2.2052965104449807E-02 + -2.2275663671098272E-02 -2.2500269573298592E-02 -2.2726799146061325E-02 + -2.2955268864277817E-02 -2.3185695343917449E-02 -2.3418095343235197E-02 + -2.3652485763989692E-02 -2.3888883652671566E-02 -2.4127306201742190E-02 + -2.4367770750883259E-02 -2.4610294788256725E-02 -2.4854895951775938E-02 + -2.5101592030387098E-02 -2.5350400965362337E-02 -2.5601340851603101E-02 + -2.5854429938955401E-02 -2.6109686633535616E-02 -2.6367129499068349E-02 + -2.6626777258234913E-02 -2.6888648794034246E-02 -2.7152763151154453E-02 + -2.7419139537357005E-02 -2.7687797324872310E-02 -2.7958756051806800E-02 + -2.8232035423563163E-02 -2.8507655314271553E-02 -2.8785635768233661E-02 + -2.9065997001378976E-02 -2.9348759402733501E-02 -2.9633943535900955E-02 + -2.9921570140556630E-02 -3.0211660133954252E-02 -3.0504234612445141E-02 + -3.0799314853011128E-02 -3.1096922314809785E-02 -3.1397078640733454E-02 + -3.1699805658981256E-02 -3.2005125384644575E-02 -3.2313060021306302E-02 + -3.2623631962653117E-02 -3.2936863794102648E-02 -3.3252778294443223E-02 + -3.3571398437488541E-02 -3.3892747393746099E-02 -3.4216848532099907E-02 + -3.4543725421507646E-02 -3.4873401832712259E-02 -3.5205901739967925E-02 + -3.5541249322781396E-02 -3.5879468967667291E-02 -3.6220585269919281E-02 + -3.6564623035395559E-02 -3.6911607282320270E-02 -3.7261563243099816E-02 + -3.7614516366154788E-02 -3.7970492317767612E-02 -3.8329516983945849E-02 + -3.8691616472301529E-02 -3.9056817113946263E-02 -3.9425145465402753E-02 + -3.9796628310532468E-02 -4.0171292662479763E-02 -4.0549165765632798E-02 + -4.0930275097600707E-02 -4.1314648371207983E-02 -4.1702313536505872E-02 + -4.2093298782800673E-02 -4.2487632540699594E-02 -4.2885343484173728E-02 + -4.3286460532638835E-02 -4.3691012853053920E-02 -4.4099029862037412E-02 + -4.4510541228001452E-02 -4.4925576873304666E-02 -4.5344166976422899E-02 + -4.5766341974138341E-02 -4.6192132563747906E-02 -4.6621569705289724E-02 + -4.7054684623789020E-02 -4.7491508811522878E-02 -4.7932074030304375E-02 + -4.8376412313786171E-02 -4.8824555969783710E-02 -4.9276537582618046E-02 + -4.9732390015478883E-02 -5.0192146412807122E-02 -5.0655840202698685E-02 + -5.1123505099327553E-02 -5.1595175105390592E-02 -5.2070884514571945E-02 + -5.2550667914029799E-02 -5.3034560186902828E-02 -5.3522596514839024E-02 + -5.4014812380545417E-02 -5.4511243570359906E-02 -5.5011926176844035E-02 + -5.5516896601399482E-02 -5.6026191556904692E-02 -5.6539848070375431E-02 + -5.7057903485647689E-02 -5.7580395466082179E-02 -5.8107361997293765E-02 + -5.8638841389902149E-02 -5.9174872282307264E-02 -5.9715493643487369E-02 + -6.0260744775821252E-02 -6.0810665317934394E-02 -6.1365295247569049E-02 + -6.1924674884478663E-02 -6.2488844893347183E-02 -6.3057846286732874E-02 + -6.3631720428036498E-02 -6.4210509034495974E-02 -6.4794254180204972E-02 + -6.5382998299157932E-02 -6.5976784188320800E-02 -6.6575655010727319E-02 + -6.7179654298601899E-02 -6.7788825956508841E-02 -6.8403214264527973E-02 + -6.9022863881457522E-02 -6.9647819848043829E-02 -7.0278127590238298E-02 + -7.0913832922482101E-02 -7.1554982051018262E-02 -7.2201621577232103E-02 + -7.2853798501020028E-02 -7.3511560224185951E-02 -7.4174954553867203E-02 + -7.4844029705989162E-02 -7.5518834308748506E-02 -7.6199417406126818E-02 + -7.6885828461432951E-02 -7.7578117360875123E-02 -7.8276334417164570E-02 + -7.8980530373147728E-02 -7.9690756405470076E-02 -8.0407064128270381E-02 + -8.1129505596906487E-02 -8.1858133311712322E-02 -8.2593000221785604E-02 + -8.3334159728809143E-02 -8.4081665690902474E-02 -8.4835572426507508E-02 + -8.5595934718304900E-02 -8.6362807817165779E-02 -8.7136247446133630E-02 + -8.7916309804442774E-02 -8.8703051571568145E-02 -8.9496529911310185E-02 + -9.0296802475913290E-02 -9.1103927410220026E-02 -9.1917963355858445E-02 + -9.2738969455465947E-02 -9.3567005356947203E-02 -9.4402131217769109E-02 + -9.5244407709289894E-02 -9.6093896021127001E-02 -9.6950657865558218E-02 + -9.7814755481962085E-02 -9.8686251641294562E-02 -9.9565209650603087E-02 + -1.0045169335757749E-01 -1.0134576715514058E-01 -1.0224749598607551E-01 + -1.0315694534769172E-01 -1.0407418129653093E-01 -1.0499927045311140E-01 + -1.0593228000671109E-01 -1.0687327772019185E-01 -1.0782233193486328E-01 + -1.0877951157538608E-01 -1.0974488615471728E-01 -1.1071852577909611E-01 + -1.1170050115307043E-01 -1.1269088358456623E-01 -1.1368974498999830E-01 + -1.1469715789942199E-01 -1.1571319546173048E-01 -1.1673793144989217E-01 + -1.1777144026623308E-01 -1.1881379694776188E-01 -1.1986507717153944E-01 + -1.2092535726009197E-01 -1.2199471418686993E-01 -1.2307322558175013E-01 + -1.2416096973658504E-01 -1.2525802561079594E-01 -1.2636447283701344E-01 + -1.2748039172676320E-01 -1.2860586327619866E-01 -1.2974096917188138E-01 + -1.3088579179660800E-01 -1.3204041423528376E-01 -1.3320492028084754E-01 + -1.3437939444024130E-01 -1.3556392194042990E-01 -1.3675858873447164E-01 + -1.3796348150763471E-01 -1.3917868768356717E-01 -1.4040429543051336E-01 + -1.4164039366758496E-01 -1.4288707207107859E-01 -1.4414442108084846E-01 + -1.4541253190672807E-01 -1.4669149653500446E-01 -1.4798140773494631E-01 + -1.4928235906538209E-01 -1.5059444488133367E-01 -1.5191776034070187E-01 + -1.5325240141100627E-01 -1.5459846487618026E-01 -1.5595604834341772E-01 + -1.5732525025007862E-01 -1.5870616987064637E-01 -1.6009890732374285E-01 + -1.6150356357919934E-01 -1.6292024046518255E-01 -1.6434904067537870E-01 + -1.6579006777623548E-01 -1.6724342621425864E-01 -1.6870922132336985E-01 + -1.7018755933232096E-01 -1.7167854737216673E-01 -1.7318229348379902E-01 + -1.7469890662553619E-01 -1.7622849668077706E-01 -1.7777117446571106E-01 + -1.7932705173709218E-01 -1.8089624120007131E-01 -1.8247885651609061E-01 + -1.8407501231084167E-01 -1.8568482418228222E-01 -1.8730840870871743E-01 + -1.8894588345694446E-01 -1.9059736699045840E-01 -1.9226297887772337E-01 + -1.9394283970050658E-01 -1.9563707106227776E-01 -1.9734579559667115E-01 + -1.9906913697601492E-01 -2.0080721991992556E-01 -2.0256017020396583E-01 + -2.0432811466837231E-01 -2.0611118122684510E-01 -2.0790949887540960E-01 + -2.0972319770134126E-01 -2.1155240889215898E-01 -2.1339726474468707E-01 + -2.1525789867418607E-01 -2.1713444522354863E-01 -2.1902704007257082E-01 + -2.2093582004728365E-01 -2.2286092312936359E-01 -2.2480248846560616E-01 + -2.2676065637747317E-01 -2.2873556837070802E-01 -2.3072736714502565E-01 + -2.3273619660386943E-01 -2.3476220186424257E-01 -2.3680552926660794E-01 + -2.3886632638486613E-01 -2.4094474203639751E-01 -2.4304092629218413E-01 + -2.4515503048700032E-01 -2.4728720722967812E-01 -2.4943761041344623E-01 + -2.5160639522634115E-01 -2.5379371816169422E-01 -2.5599973702869105E-01 + -2.5822461096300725E-01 -2.6046850043751613E-01 -2.6273156727307539E-01 + -2.6501397464938248E-01 -2.6731588711591309E-01 -2.6963747060292714E-01 + -2.7197889243255674E-01 -2.7434032132996655E-01 -2.7672192743458973E-01 + -2.7912388231144269E-01 -2.8154635896251279E-01 -2.8398953183822462E-01 + -2.8645357684898137E-01 -2.8893867137678425E-01 -2.9144499428692522E-01 + -2.9397272593976043E-01 -2.9652204820255851E-01 -2.9909314446142304E-01 + -3.0168619963329685E-01 -3.0430140017803814E-01 -3.0693893411057721E-01 + -3.0959899101314681E-01 -3.1228176204759067E-01 -3.1498743996774919E-01 + -3.1771621913191767E-01 -3.2046829551538847E-01 -3.2324386672305905E-01 + -3.2604313200212803E-01 -3.2886629225485470E-01 -3.3171355005140424E-01 + -3.3458510964276245E-01 -3.3748117697373048E-01 -3.4040195969598752E-01 + -3.4334766718123344E-01 -3.4631851053440826E-01 -3.4931470260697772E-01 + -3.5233645801029595E-01 -3.5538399312904734E-01 -3.5845752613474946E-01 + -3.6155727699933887E-01 -3.6468346750882136E-01 -3.6783632127699767E-01 + -3.7101606375925961E-01 -3.7422292226645287E-01 -3.7745712597881392E-01 + -3.8071890595996910E-01 -3.8400849517101188E-01 -3.8732612848463599E-01 + -3.9067204269934280E-01 -3.9404647655370978E-01 -3.9744967074072940E-01 + -4.0088186792220387E-01 -4.0434331274320945E-01 -4.0783425184661909E-01 + -4.1135493388768629E-01 -4.1490560954869127E-01 -4.1848653155363874E-01 + -4.2209795468302241E-01 -4.2574013578863734E-01 -4.2941333380844837E-01 + -4.3311780978151904E-01 -4.3685382686297958E-01 -4.4062165033905681E-01 + -4.4442154764214442E-01 -4.4825378836592755E-01 -4.5211864428054321E-01 + -4.5601638934779426E-01 -4.5994729973639908E-01 -4.6391165383728011E-01 + -4.6790973227889515E-01 -4.7194181794259915E-01 -4.7600819597804439E-01 + -4.8010915381860270E-01 -4.8424498119683346E-01 -4.8841597015995553E-01 + -4.9262241508536497E-01 -4.9686461269615989E-01 -5.0114286207668945E-01 + -5.0545746468811570E-01 -5.0980872438399505E-01 -5.1419694742586186E-01 + -5.1862244249882572E-01 -5.2308552072716352E-01 -5.2758649568992599E-01 + -5.3212568343652578E-01 -5.3670340250233151E-01 -5.4131997392424747E-01 + -5.4597572125627047E-01 -5.5067097058504821E-01 -5.5540605054539827E-01 + -5.6018129233580882E-01 -5.6499702973390775E-01 -5.6985359911189915E-01 + -5.7475133945195545E-01 -5.7969059236157328E-01 -5.8467170208887020E-01 + -5.8969501553783787E-01 -5.9476088228352741E-01 -5.9986965458717845E-01 + -6.0502168741126872E-01 -6.1021733843449688E-01 -6.1545696806667771E-01 + -6.2074093946355335E-01 -6.2606961854150411E-01 -6.3144337399216854E-01 + -6.3686257729695039E-01 -6.4232760274140710E-01 -6.4783882742953058E-01 + -6.5339663129788317E-01 -6.5900139712961270E-01 -6.6465351056831479E-01 + -6.7035336013174418E-01 -6.7610133722537247E-01 -6.8189783615576793E-01 + -6.8774325414381021E-01 -6.9363799133770876E-01 -6.9958245082582837E-01 + -7.0557703864932009E-01 -7.1162216381451926E-01 -7.1771823830513926E-01 + -7.2386567709421401E-01 -7.3006489815580267E-01 -7.3631632247644352E-01 + -7.4262037406632653E-01 -7.4897747997019692E-01 -7.5538807027796528E-01 + -7.6185257813501295E-01 -7.6837143975218203E-01 -7.7494509441543602E-01 + -7.8157398449517890E-01 -7.8825855545521895E-01 -7.9499925586135545E-01 + -8.0179653738959522E-01 -8.0865085483394850E-01 -8.1556266611383377E-01 + -8.2253243228102924E-01 -8.2956061752619392E-01 -8.3664768918491417E-01 + -8.4379411774327995E-01 -8.5100037684294760E-01 -8.5826694328570496E-01 + -8.6559429703748081E-01 -8.7298292123182031E-01 -8.8043330217277360E-01 + -8.8794592933718852E-01 -8.9552129537640035E-01 -9.0315989611727654E-01 + -9.1086223056261117E-01 -9.1862880089082166E-01 -9.2646011245497051E-01 + -9.3435667378102949E-01 -9.4231899656541884E-01 -9.5034759567174965E-01 + -9.5844298912678183E-01 -9.6660569811553931E-01 -9.7483624697557503E-01 + -9.8313516319035921E-01 -9.9150297738174675E-01 -9.9994022330150856E-01 + -1.0084474378218942E+00 -1.0170251609251879E+00 -1.0256739356922366E+00 + -1.0343943082899025E+00 -1.0431868279574359E+00 -1.0520520469916936E+00 + -1.0609905207312016E+00 -1.0700028075390144E+00 -1.0790894687843215E+00 + -1.0882510688227893E+00 -1.0974881749755836E+00 -1.1068013575070139E+00 + -1.1161911896008139E+00 -1.1256582473349555E+00 -1.1352031096549753E+00 + -1.1448263583458063E+00 -1.1545285780019965E+00 -1.1643103559963390E+00 + -1.1741722824468157E+00 -1.1841149501818371E+00 -1.1941389547037029E+00 + -1.2042448941502675E+00 -1.2144333692547156E+00 -1.2247049833034138E+00 + -1.2350603420918014E+00 -1.2455000538782328E+00 -1.2560247293357159E+00 + -1.2666349815015261E+00 -1.2773314257245640E+00 -1.2881146796104910E+00 + -1.2989853629644645E+00 -1.3099440977315113E+00 -1.3209915079344006E+00 + -1.3321282196089872E+00 -1.3433548607369328E+00 -1.3546720611757470E+00 + -1.3660804525860626E+00 -1.3775806683560705E+00 -1.3891733435230542E+00 + -1.4008591146919167E+00 -1.4126386199506360E+00 -1.4245124987825470E+00 + -1.4364813919754149E+00 -1.4485459415271305E+00 -1.4607067905480067E+00 + -1.4729645831595606E+00 -1.4853199643896737E+00 -1.4977735800640581E+00 + -1.5103260766939044E+00 -1.5229781013596395E+00 -1.5357303015906663E+00 + -1.5485833252409842E+00 -1.5615378203605903E+00 -1.5745944350625523E+00 + -1.5877538173856161E+00 -1.6010166151522769E+00 -1.6143834758221298E+00 + -1.6278550463404446E+00 -1.6414319729818108E+00 -1.6551149011887025E+00 + -1.6689044754048847E+00 -1.6828013389034828E+00 -1.6968061336096005E+00 + -1.7109194999173480E+00 -1.7251420765011238E+00 -1.7394745001210257E+00 + -1.7539174054222162E+00 -1.7684714247281241E+00 -1.7831371878272868E+00 + -1.7979153217537143E+00 -1.8128064505605679E+00 -1.8278111950870493E+00 + -1.8429301727182674E+00 -1.8581639971379484E+00 -1.8735132780737933E+00 + -1.8889786210353252E+00 -1.9045606270440083E+00 -1.9202598923554943E+00 + -1.9360770081737531E+00 -1.9520125603569347E+00 -1.9680671291147291E+00 + -1.9842412886970684E+00 -2.0005356070738860E+00 -2.0169506456057960E+00 + -2.0334869587054274E+00 -2.0501450934892200E+00 -2.0669255894194318E+00 + -2.0838289779361361E+00 -2.1008557820790088E+00 -2.1180065160985837E+00 + -2.1352816850568201E+00 -2.1526817844166843E+00 -2.1702072996204964E+00 + -2.1878587056568044E+00 -2.2056364666154962E+00 -2.2235410352308920E+00 + -2.2415728524125562E+00 -2.2597323467635362E+00 -2.2780199340857497E+00 + -2.2964360168722142E+00 -2.3149809837858779E+00 -2.3336552091247023E+00 + -2.3524590522726827E+00 -2.3713928571365890E+00 -2.3904569515679728E+00 + -2.4096516467702696E+00 -2.4289772366905731E+00 -2.4484339973957501E+00 + -2.4680221864326528E+00 -2.4877420421719947E+00 -2.5075937831355821E+00 + -2.5275776073065646E+00 -2.5476936914223138E+00 -2.5679421902496222E+00 + -2.5883232358418042E+00 -2.6088369367773590E+00 -2.6294833773798212E+00 + -2.6502626169184200E+00 -2.6711746887891343E+00 -2.6922195996758091E+00 + -2.7133973286908719E+00 -2.7347078264953208E+00 -2.7561510143975445E+00 + -2.7777267834305666E+00 -2.7994349934072802E+00 -2.8212754719533661E+00 + -2.8432480135173201E+00 -2.8653523783573065E+00 -2.8875882915043110E+00 + -2.9099554417012410E+00 -2.9324534803174869E+00 -2.9550820202385601E+00 + -2.9778406347303465E+00 -3.0007288562774810E+00 -3.0237461753955603E+00 + -3.0468920394165675E+00 -3.0701658512472170E+00 -3.0935669680996689E+00 + -3.1170947001942531E+00 -3.1407483094337003E+00 -3.1645270080484913E+00 + -3.1884299572128287E+00 -3.2124562656308320E+00 -3.2366049880925303E+00 + -3.2608751239991793E+00 -3.2852656158574973E+00 -3.3097753477423915E+00 + -3.3344031437277657E+00 -3.3591477662849805E+00 -3.3840079146485635E+00 + -3.4089822231487616E+00 -3.4340692595105597E+00 -3.4592675231187813E+00 + -3.4845754432488669E+00 -3.5099913772630003E+00 -3.5355136087712582E+00 + -3.5611403457573667E+00 -3.5868697186688183E+00 -3.6126997784709896E+00 + -3.6386284946650567E+00 -3.6646537532692887E+00 -3.6907733547636470E+00 + -3.7169850119973051E+00 -3.7432863480589957E+00 -3.7696748941099205E+00 + -3.7961480871791573E+00 -3.8227032679213329E+00 -3.8493376783365365E+00 + -3.8760484594524072E+00 -3.9028326489683351E+00 -3.9296871788617858E+00 + -3.9566088729568154E+00 -3.9835944444548521E+00 -4.0106404934278457E+00 + -4.0377435042740011E+00 -4.0648998431362795E+00 -4.0921057552839963E+00 + -4.1193573624577766E+00 -4.1466506601783033E+00 -4.1739815150192552E+00 + -4.2013456618450240E+00 -4.2287387010137287E+00 -4.2561560955461220E+00 + -4.2835931682612767E+00 -4.3110450988796618E+00 -4.3385069210945995E+00 + -4.3659735196130898E+00 -4.3934396271669183E+00 -4.4208998214953876E+00 + -4.4483485223008081E+00 -4.4757799881780738E+00 -4.5031883135199262E+00 + -4.5305674253993011E+00 -4.5579110804306318E+00 -4.5852128616117733E+00 + -4.6124661751486595E+00 -4.6396642472645793E+00 -4.6668001209965118E+00 + -4.6938666529807156E+00 -4.7208565102302504E+00 -4.7477621669069556E+00 + -4.7745759010909623E+00 -4.8012897915505253E+00 -4.8278957145155683E+00 + -4.8543853404582791E+00 -4.8807501308843211E+00 -4.9069813351385152E+00 + -4.9330699872289889E+00 -4.9590069026739991E+00 -4.9847826753759001E+00 + -5.0103876745269762E+00 -5.0358120415520515E+00 -5.0610456870930651E+00 + -5.0860782880411071E+00 -5.1108992846216070E+00 -5.1354978775386853E+00 + -5.1598630251850395E+00 -5.1839834409238357E+00 -5.2078475904496386E+00 + -5.2314436892355953E+00 -5.2547597000743558E+00 -5.2777833307207418E+00 + -5.3005020316443527E+00 -5.3229029939007768E+00 -5.3449731471303332E+00 + -5.3666991576938088E+00 -5.3880674269548887E+00 -5.4090640897194833E+00 + -5.4296750128425755E+00 -5.4498857940134755E+00 -5.4696817607311514E+00 + -5.4890479694813026E+00 -5.5079692051277362E+00 -5.5264299805306765E+00 + -5.5444145364054789E+00 -5.5619068414354427E+00 -5.5788905926530061E+00 + -5.5953492161041947E+00 -5.6112658678114542E+00 -5.6266234350509663E+00 + -5.6414045379604802E+00 -5.6555915314948262E+00 -5.6691665077464144E+00 + -5.6821112986487092E+00 -5.6944074790812254E+00 -5.7060363703952275E+00 + -5.7169790443796353E+00 -5.7272163276875627E+00 -5.7367288067439954E+00 + -5.7454968331563219E+00 -5.7535005296493065E+00 -5.7607197965471162E+00 + -5.7671343188255424E+00 -5.7727235737576938E+00 -5.7774668391775945E+00 + -5.7813432023861289E+00 -5.7843315697246025E+00 -5.7864106768414407E+00 + -5.7875590996783099E+00 -5.7877552662022422E+00 -5.7869774689107167E+00 + -5.7852038781372572E+00 -5.7824125561852933E+00 -5.7785814723186046E+00 + -5.7736885186368276E+00 -5.7677115268645300E+00 -5.7606282860834472E+00 + -5.7524165614364673E+00 -5.7430541138330664E+00 -5.7325187206854906E+00 + -5.7207881977049428E+00 -5.7078404217873837E+00 -5.6936533550178821E+00 + -5.6782050698225639E+00 -5.6614737752969910E+00 -5.6434378447389424E+00 + -5.6240758444135848E+00 -5.6033665635782430E+00 -5.5812890457928424E+00 + -5.5578226215420781E+00 -5.5329469421936412E+00 -5.5066420153159790E+00 + -5.4788882413779874E+00 -5.4496664518512095E+00 -5.4189579487339632E+00 + -5.3867445455146115E+00 -5.3530086095896259E+00 -5.3177331061495412E+00 + -5.2809016435440492E+00 -5.2424985201341334E+00 -5.2025087726372812E+00 + -5.1609182259677313E+00 -5.1177135445712487E+00 -5.0728822852498725E+00 + -5.0264129514680693E+00 -4.9782950491282749E+00 -4.9285191437983098E+00 + -4.8770769193692134E+00 -4.8239612381166630E+00 -4.7691662021333459E+00 + -4.7126872160941513E+00 -4.6545210513101294E+00 -4.5946659110195585E+00 + -4.5331214968588061E+00 -4.4698890764472363E+00 -4.4049715520128681E+00 + -4.3383735299779040E+00 -4.2701013914131360E+00 -4.2001633632627255E+00 + -4.1285695902300192E+00 -4.0553322072053462E+00 -3.9804654121066387E+00 + -3.9039855389917073E+00 -3.8259111312903493E+00 -3.7462630149920852E+00 + -3.6650643716123832E+00 -3.5823408107481014E+00 -3.4981204420182817E+00 + -3.4124339461731301E+00 -3.3253146451394895E+00 -3.2367985707554912E+00 + -3.1469245319323265E+00 -3.0557341799649271E+00 -2.9632720716966610E+00 + -2.8695857302271359E+00 -2.7747257028343966E+00 -2.6787456157656013E+00 + -2.5817022255328976E+00 -2.4836554663322685E+00 -2.3846684931857012E+00 + -2.2848077203884594E+00 -2.1841428548238562E+00 -2.0827469236910114E+00 + -1.9806962961705827E+00 -1.8780706985364735E+00 -1.7749532222028510E+00 + -1.6714303241772932E+00 -1.5675918193743665E+00 -1.4635308642260181E+00 + -1.3593439310090076E+00 -1.2551307722945779E+00 -1.1509943749096969E+00 + -1.0470409027867649E+00 -9.4337962806551057E-01 -8.4012284980016305E-01 + -7.3738579961565609E-01 -6.3528653364898824E-01 -5.3394581010640008E-01 + -4.3348695176419771E-01 -3.3403569273973516E-01 -2.3572000886189068E-01 + -1.3866993097522007E-01 -4.3017340520593236E-02 5.1104253252326239E-02 + 1.4355995506957764E-01 2.3421374502194092E-01 3.2292876014098959E-01 + 4.0956759671428783E-01 4.9399263385496311E-01 5.7606637880004452E-01 + 6.5565183436237617E-01 7.3261288890604936E-01 8.0681472915285068E-01 + 8.7812427605604626E-01 9.4641064389904550E-01 1.0115456226885489E+00 + 1.0734041838137565E+00 1.1318650088358428E+00 1.1868110411525228E+00 + 1.2381300601527447E+00 1.2857152773337381E+00 1.3294659536970705E+00 + 1.3692880375706504E+00 1.4050948218203452E+00 1.4368076192141188E+00 + 1.4643564544869148E+00 1.4876807714198170E+00 1.5067301529965158E+00 + 1.5214650524275177E+00 1.5318575325418065E+00 1.5378920107310452E+00 + 1.5395660062951926E+00 1.5368908866768101E+00 1.5298926086840618E+00 + 1.5186124503880327E+00 1.5031077289364227E+00 1.4834524990505595E+00 + 1.4597382264661272E+00 1.4320744300361095E+00 1.4005892856352686E+00 + 1.3654301843889274E+00 1.3267642370882426E+00 1.2847787159524424E+00 + 1.2396814241476477E+00 1.1917009826718556E+00 1.1410870233637500E+00 + 1.0881102758826504E+00 1.0330625355385556E+00 9.7625649781756929E-01 + 9.1802544434645206E-01 8.5872276386675128E-01 7.9872129053671015E-01 + 7.3841244054567523E-01 6.7820512660329146E-01 6.1852442834870058E-01 + 5.5980999510784824E-01 5.0251415570039659E-01 4.4709970815647160E-01 + 3.9403736023472213E-01 3.4380278953270815E-01 2.9687328972971849E-01 + 2.5372396709660833E-01 2.1482344882369178E-01 1.8062906194788875E-01 + 1.5158143867495941E-01 1.2809850067837139E-01 1.1057392138277164E-01 + 9.6168237748808241E-02 8.2045539866495681E-02 6.8329272660669127E-02 + 5.5241811781196193E-02 4.2992638850107151E-02 3.1798581889783004E-02 + 2.1883097282772625E-02 1.3475444859334848E-02 6.8097589206195892E-03 + 2.1240499381903590E-03 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 8.6277202400992243E-10 -7.0316149083740053E-09 -2.1944328640199701E-08 + -4.2834900612825446E-08 -6.8998560906059709E-08 -1.0006623823816117E-07 + -1.3574650447094064E-07 -1.7586880463294995E-07 -2.2031922056168222E-07 + -2.6900804148027947E-07 -3.2187190158658008E-07 -3.7886720853094131E-07 + -4.3996480140289019E-07 -5.0514733470623544E-07 -5.7440721709591090E-07 + -6.4774498368580263E-07 -7.2516806575576498E-07 -8.0668986128649376E-07 + -8.9232899002652699E-07 -9.8210869878283853E-07 -1.0760563821973065E-06 + -1.1742031906419818E-06 -1.2765837072518287E-06 -1.3832356798349220E-06 + -1.4941997968407492E-06 -1.6095194991356618E-06 -1.7292408211378398E-06 + -1.8534122562422441E-06 -1.9820846425086823E-06 -2.1153110653843383E-06 + -2.2531467748511564E-06 -2.3956491148725088E-06 -2.5428774633956206E-06 + -2.6948931814701168E-06 -2.8517595702866229E-06 -3.0135418351360609E-06 + -3.1803070554499623E-06 -3.3521241602128086E-06 -3.5290639081446637E-06 + -3.7111988721412363E-06 -3.8986034275321392E-06 -4.0913537437796802E-06 + -4.2895277792921885E-06 -4.4932052790692574E-06 -4.7024677749331640E-06 + -4.9173985881319153E-06 -5.1380828341260582E-06 -5.3646074293941905E-06 + -5.5970611001118042E-06 -5.8355343925749978E-06 -6.0801196852552929E-06 + -6.3309112023846703E-06 -6.5880050289810135E-06 -6.8514991272340516E-06 + -7.1214933541804965E-06 -7.3980894806047615E-06 -7.6813912111084569E-06 + -7.9715042052978343E-06 -8.2685361000439108E-06 -8.5725965327748425E-06 + -8.8837971657643830E-06 -9.2022517113845536E-06 -9.5280759582939599E-06 + -9.8613877985366362E-06 -1.0202307255529321E-05 -1.0550956512917832E-05 + -1.0907459944285663E-05 -1.1271944143700256E-05 -1.1644537957084838E-05 + -1.2025372514405152E-05 -1.2414581262662887E-05 -1.2812299999688754E-05 + -1.3218666908730192E-05 -1.3633822593829795E-05 -1.4057910115992245E-05 + -1.4491075030138517E-05 -1.4933465422847493E-05 -1.5385231950886262E-05 + -1.5846527880531219E-05 -1.6317509127683178E-05 -1.6798334298780756E-05 + -1.7289164732516795E-05 -1.7790164542363645E-05 -1.8301500659913819E-05 + -1.8823342879043161E-05 -1.9355863900904494E-05 -1.9899239379760040E-05 + -2.0453647969661782E-05 -2.1019271371989411E-05 -2.1596294383855903E-05 + -2.2184904947391324E-05 -2.2785294199916232E-05 -2.3397656525015806E-05 + -2.4022189604527179E-05 -2.4659094471451931E-05 -2.5308575563806904E-05 + -2.5970840779426333E-05 -2.6646101531728959E-05 -2.7334572806463973E-05 + -2.8036473219450185E-05 -2.8752025075323096E-05 -2.9481454427304476E-05 + -3.0224991138010397E-05 -3.0982868941312739E-05 -3.1755325505270588E-05 + -3.2542602496147477E-05 -3.3344945643531421E-05 -3.4162604806574359E-05 + -3.4995834041368467E-05 -3.5844891669476893E-05 -3.6710040347636635E-05 + -3.7591547138652066E-05 -3.8489683583497394E-05 -3.9404725774647064E-05 + -4.0336954430653219E-05 -4.1286654971989836E-05 -4.2254117598183265E-05 + -4.3239637366249558E-05 -4.4243514270458849E-05 -4.5266053323447894E-05 + -4.6307564638702075E-05 -4.7368363514428056E-05 -4.8448770518839536E-05 + -4.9549111576877935E-05 -5.0669718058391039E-05 -5.1810926867792586E-05 + -5.2973080535225904E-05 -5.4156527309255899E-05 -5.5361621251113244E-05 + -5.6588722330515342E-05 -5.7838196523089344E-05 -5.9110415909422260E-05 + -6.0405758775764282E-05 -6.1724609716411264E-05 -6.3067359737793195E-05 + -6.4434406364295607E-05 -6.5826153745841528E-05 -6.7243012767261931E-05 + -6.8685401159482922E-05 -7.0153743612558713E-05 -7.1648471890579457E-05 + -7.3170024948484013E-05 -7.4718849050807809E-05 -7.6295397892396169E-05 + -7.7900132721114816E-05 -7.9533522462589196E-05 -8.1196043847004396E-05 + -8.2888181537998999E-05 -8.4610428263685519E-05 -8.6363284949831701E-05 + -8.8147260855236739E-05 -8.9962873709336993E-05 -9.1810649852077129E-05 + -9.3691124376082128E-05 -9.5604841271166961E-05 -9.7552353571220740E-05 + -9.9534223503503139E-05 -1.0155102264039133E-04 -1.0360333205361611E-04 + -1.0569174247102666E-04 -1.0781685443592417E-04 -1.0997927846900446E-04 + -1.1217963523295147E-04 -1.1441855569972329E-04 -1.1669668132057270E-04 + -1.1901466419884659E-04 -1.2137316726560705E-04 -1.2377286445811901E-04 + -1.2621444090124990E-04 -1.2869859309182674E-04 -1.3122602908599776E-04 + -1.3379746868964545E-04 -1.3641364365189895E-04 -1.3907529786179502E-04 + -1.4178318754813702E-04 -1.4453808148260123E-04 -1.4734076118614255E-04 + -1.5019202113875126E-04 -1.5309266899261206E-04 -1.5604352578872069E-04 + -1.5904542617701050E-04 -1.6209921864004478E-04 -1.6520576572033076E-04 + -1.6836594425131046E-04 -1.7158064559208799E-04 -1.7485077586594942E-04 + -1.7817725620273593E-04 -1.8156102298512875E-04 -1.8500302809890858E-04 + -1.8850423918724942E-04 -1.9206563990911051E-04 -1.9568823020179042E-04 + -1.9937302654770585E-04 -2.0312106224546359E-04 -2.0693338768528906E-04 + -2.1081107062888082E-04 -2.1475519649375905E-04 -2.1876686864217667E-04 + -2.2284720867466381E-04 -2.2699735672827831E-04 -2.3121847177963155E-04 + -2.3551173195276718E-04 -2.3987833483196392E-04 -2.4431949777953981E-04 + -2.4883645825873337E-04 -2.5343047416174098E-04 -2.5810282414298863E-04 + -2.6285480795771703E-04 -2.6768774680596300E-04 -2.7260298368201859E-04 + -2.7760188372945066E-04 -2.8268583460176809E-04 -2.8785624682881836E-04 + -2.9311455418900537E-04 -2.9846221408741223E-04 -3.0390070793992246E-04 + -3.0943154156342712E-04 -3.1505624557221222E-04 -3.2077637578061864E-04 + -3.2659351361206891E-04 -3.3250926651455786E-04 -3.3852526838270387E-04 + -3.4464317998645770E-04 -3.5086468940657251E-04 -3.5719151247693229E-04 + -3.6362539323384443E-04 -3.7016810437239851E-04 -3.7682144770999869E-04 + -3.8358725465717470E-04 -3.9046738669578122E-04 -3.9746373586469451E-04 + -4.0457822525311884E-04 -4.1181280950161440E-04 -4.1916947531096138E-04 + -4.2665024195897650E-04 -4.3425716182539809E-04 -4.4199232092496113E-04 + -4.4985783944877944E-04 -4.5785587231416118E-04 -4.6598860972297580E-04 + -4.7425827772870551E-04 -4.8266713881229916E-04 -4.9121749246696636E-04 + -4.9991167579203270E-04 -5.0875206409599816E-04 -5.1774107150892275E-04 + -5.2688115160428207E-04 -5.3617479803042521E-04 -5.4562454515177765E-04 + -5.5523296869992411E-04 -5.6500268643472362E-04 -5.7493635881558744E-04 + -5.8503668968307924E-04 -5.9530642695097575E-04 -6.0574836330894361E-04 + -6.1636533693597880E-04 -6.2716023222476750E-04 -6.3813598051711917E-04 + -6.4929556085063030E-04 -6.6064200071674082E-04 -6.7217837683033836E-04 + -6.8390781591107935E-04 -6.9583349547658823E-04 -7.0795864464770182E-04 + -7.2028654496592947E-04 -7.3282053122329888E-04 -7.4556399230475993E-04 + -7.5852037204332339E-04 -7.7169317008810522E-04 -7.8508594278546920E-04 + -7.9870230407342842E-04 -8.1254592638951276E-04 -8.2662054159226151E-04 + -8.4092994189655622E-04 -8.5547798082295573E-04 -8.7026857416124903E-04 + -8.8530570094839858E-04 -9.0059340446109080E-04 -9.1613579322307002E-04 + -9.3193704202747469E-04 -9.4800139297436558E-04 -9.6433315652365694E-04 + -9.8093671256365539E-04 -9.9781651149541298E-04 -1.0149770753331102E-03 + -1.0324229988206768E-03 -1.0501589505648703E-03 -1.0681896741850272E-03 + -1.0865199894797069E-03 -1.1051547936104500E-03 -1.1240990623028785E-03 + -1.1433578510653575E-03 -1.1629362964254569E-03 -1.1828396171844303E-03 + -1.2030731156899613E-03 -1.2236421791273950E-03 -1.2445522808297066E-03 + -1.2658089816064350E-03 -1.2874179310918359E-03 -1.3093848691124825E-03 + -1.3317156270745787E-03 -1.3544161293712182E-03 -1.3774923948098421E-03 + -1.4009505380601639E-03 -1.4247967711227859E-03 -1.4490374048188031E-03 + -1.4736788503006137E-03 -1.4987276205842347E-03 -1.5241903321033510E-03 + -1.5500737062853990E-03 -1.5763845711499176E-03 -1.6031298629294660E-03 + -1.6303166277133578E-03 -1.6579520231145006E-03 -1.6860433199596052E-03 + -1.7145979040030525E-03 -1.7436232776646843E-03 -1.7731270617918173E-03 + -1.8031169974457430E-03 -1.8336009477130197E-03 -1.8645868995418239E-03 + -1.8960829656036620E-03 -1.9280973861807327E-03 -1.9606385310792208E-03 + -1.9937149015688336E-03 -2.0273351323488557E-03 -2.0615079935410374E-03 + -2.0962423927095956E-03 -2.1315473769086533E-03 -2.1674321347573810E-03 + -2.2039059985431856E-03 -2.2409784463532137E-03 -2.2786591042345005E-03 + -2.3169577483830410E-03 -2.3558843073621374E-03 -2.3954488643502681E-03 + -2.4356616594188459E-03 -2.4765330918401379E-03 -2.5180737224256714E-03 + -2.5602942758954335E-03 -2.6032056432781863E-03 -2.6468188843431785E-03 + -2.6911452300636208E-03 -2.7361960851121736E-03 -2.7819830303888095E-03 + -2.8285178255813481E-03 -2.8758124117589548E-03 -2.9238789139989620E-03 + -2.9727296440472751E-03 -3.0223771030127170E-03 -3.0728339840955907E-03 + -3.1241131753508055E-03 -3.1762277624858247E-03 -3.2291910316938231E-03 + -3.2830164725222667E-03 -3.3377177807773144E-03 -3.3933088614642717E-03 + -3.4498038317644633E-03 -3.5072170240487682E-03 -3.5655629889281754E-03 + -3.6248564983416089E-03 -3.6851125486813585E-03 -3.7463463639563791E-03 + -3.8085733989937742E-03 -3.8718093426787377E-03 -3.9360701212332403E-03 + -4.0013719015337627E-03 -4.0677310944683227E-03 -4.1351643583330952E-03 + -4.2036886022688846E-03 -4.2733209897377437E-03 -4.3440789420399507E-03 + -4.4159801418716576E-03 -4.4890425369234280E-03 -4.5632843435199381E-03 + -4.6387240503010484E-03 -4.7153804219445400E-03 -4.7932725029306757E-03 + -4.8724196213488892E-03 -4.9528413927467461E-03 -5.0345577240214568E-03 + -5.1175888173540882E-03 -5.2019551741867148E-03 -5.2876775992426722E-03 + -5.3747772045901155E-03 -5.4632754137490273E-03 -5.5531939658418654E-03 + -5.6445549197880075E-03 -5.7373806585421004E-03 -5.8316938933764941E-03 + -5.9275176682078556E-03 -6.0248753639680934E-03 -6.1237907030196725E-03 + -6.2242877536154567E-03 -6.3263909344030761E-03 -6.4301250189739909E-03 + -6.5355151404571966E-03 -6.6425867961577099E-03 -6.7513658522397558E-03 + -6.8618785484547895E-03 -6.9741515029142073E-03 -7.0882117169068738E-03 + -7.2040865797612800E-03 -7.3218038737524315E-03 -7.4413917790532554E-03 + -7.5628788787305400E-03 -7.6862941637852447E-03 -7.8116670382370771E-03 + -7.9390273242531950E-03 -8.0684052673208467E-03 -8.1998315414637882E-03 + -8.3333372545022367E-03 -8.4689539533561956E-03 -8.6067136293917872E-03 + -8.7466487238104570E-03 -8.8887921330805999E-03 -9.0331772144114190E-03 + -9.1798377912685643E-03 -9.3288081589312233E-03 -9.4801230900902374E-03 + -9.6338178404868323E-03 -9.7899281545914679E-03 -9.9484902713223491E-03 + -1.0109540929803025E-02 -1.0273117375158607E-02 -1.0439257364349913E-02 + -1.0607999172044986E-02 -1.0779381596527344E-02 -1.0953443965640183E-02 + -1.1130226142765961E-02 -1.1309768532840384E-02 -1.1492112088400263E-02 + -1.1677298315664110E-02 -1.1865369280644879E-02 -1.2056367615293677E-02 + -1.2250336523673692E-02 -1.2447319788163169E-02 -1.2647361775686526E-02 + -1.2850507443972379E-02 -1.3056802347837472E-02 -1.3266292645495172E-02 + -1.3479025104887488E-02 -1.3695047110039079E-02 -1.3914406667432181E-02 + -1.4137152412400806E-02 -1.4363333615543025E-02 -1.4593000189149578E-02 + -1.4826202693647509E-02 -1.5062992344056962E-02 -1.5303421016459741E-02 + -1.5547541254477614E-02 -1.5795406275758841E-02 -1.6047069978470895E-02 + -1.6302586947797491E-02 -1.6562012462438026E-02 -1.6825402501107256E-02 + -1.7092813749033205E-02 -1.7364303604451028E-02 -1.7639930185090646E-02 + -1.7919752334655759E-02 -1.8203829629291884E-02 -1.8492222384040895E-02 + -1.8784991659279569E-02 -1.9082199267139381E-02 -1.9383907777905020E-02 + -1.9690180526388608E-02 -2.0001081618276979E-02 -2.0316675936448796E-02 + -2.0637029147258706E-02 -2.0962207706785162E-02 -2.1292278867038900E-02 + -2.1627310682128545E-02 -2.1967372014380079E-02 -2.2312532540406587E-02 + -2.2662862757124782E-02 -2.3018433987714314E-02 -2.3379318387516498E-02 + -2.3745588949868141E-02 -2.4117319511866832E-02 -2.4494584760063103E-02 + -2.4877460236075809E-02 -2.5266022342125910E-02 -2.5660348346484611E-02 + -2.6060516388830859E-02 -2.6466605485513977E-02 -2.6878695534716418E-02 + -2.7296867321511823E-02 -2.7721202522813151E-02 -2.8151783712206120E-02 + -2.8588694364662406E-02 -2.9032018861127367E-02 -2.9481842492976532E-02 + -2.9938251466335674E-02 -3.0401332906258200E-02 -3.0871174860754320E-02 + -3.1347866304665843E-02 -3.1831497143380245E-02 -3.2322158216378107E-02 + -3.2819941300607079E-02 -3.3324939113676198E-02 -3.3837245316863350E-02 + -3.4356954517929396E-02 -3.4884162273731971E-02 -3.5418965092631517E-02 + -3.5961460436682420E-02 -3.6511746723601905E-02 -3.7069923328508843E-02 + -3.7636090585425185E-02 -3.8210349788531293E-02 -3.8792803193168197E-02 + -3.9383554016577588E-02 -3.9982706438372019E-02 -4.0590365600725951E-02 + -4.1206637608279778E-02 -4.1831629527747466E-02 -4.2465449387219016E-02 + -4.3108206175148725E-02 -4.3760009839019405E-02 -4.4420971283673852E-02 + -4.5091202369303300E-02 -4.5770815909083516E-02 -4.6459925666448035E-02 + -4.7158646351988957E-02 -4.7867093619974793E-02 -4.8585384064474928E-02 + -4.9313635215079726E-02 -5.0051965532206331E-02 -5.0800494401978320E-02 + -5.1559342130668859E-02 -5.2328629938695241E-02 -5.3108479954154325E-02 + -5.3899015205886573E-02 -5.4700359616057362E-02 -5.5512637992243090E-02 + -5.6335976019010955E-02 -5.7170500248978927E-02 -5.8016338093344798E-02 + -5.8873617811870914E-02 -5.9742468502311928E-02 -6.0623020089273269E-02 + -6.1515403312486845E-02 -6.2419749714491164E-02 -6.3336191627701904E-02 + -6.4264862160860678E-02 -6.5205895184847151E-02 -6.6159425317842038E-02 + -6.7125587909825687E-02 -6.8104519026399704E-02 -6.9096355431916709E-02 + -7.0101234571904369E-02 -7.1119294554768661E-02 -7.2150674132763104E-02 + -7.3195512682208280E-02 -7.4253950182947892E-02 -7.5326127197025389E-02 + -7.6412184846567810E-02 -7.7512264790860735E-02 -7.8626509202599629E-02 + -7.9755060743302977E-02 -8.0898062537870935E-02 -8.2055658148275423E-02 + -8.3227991546365551E-02 -8.4415207085773700E-02 -8.5617449472905907E-02 + -8.6834863737002138E-02 -8.8067595199250379E-02 -8.9315789440939750E-02 + -9.0579592270635820E-02 -9.1859149690364378E-02 -9.3154607860786900E-02 + -9.4466113065353519E-02 -9.5793811673416232E-02 -9.7137850102289203E-02 + -9.8498374778239500E-02 -9.9875532096393882E-02 -1.0126946837954517E-01 + -1.0268032983584548E-01 -1.0410826251536909E-01 -1.0555341226553194E-01 + -1.0701592468535281E-01 -1.0849594507854035E-01 -1.0999361840539429E-01 + -1.1150908923350461E-01 -1.1304250168723658E-01 -1.1459399939598612E-01 + -1.1616372544119469E-01 -1.1775182230210893E-01 -1.1935843180027339E-01 + -1.2098369504274287E-01 -1.2262775236400431E-01 -1.2429074326659480E-01 + -1.2597280636040625E-01 -1.2767407930066405E-01 -1.2939469872457160E-01 + -1.3113480018660981E-01 -1.3289451809248257E-01 -1.3467398563169919E-01 + -1.3647333470878645E-01 -1.3829269587312265E-01 -1.4013219824738596E-01 + -1.4199196945461212E-01 -1.4387213554385428E-01 -1.4577282091444221E-01 + -1.4769414823883453E-01 -1.4963623838406268E-01 -1.5159921033176127E-01 + -1.5358318109678532E-01 -1.5558826564441128E-01 -1.5761457680612267E-01 + -1.5966222519397821E-01 -1.6173131911356528E-01 -1.6382196447553923E-01 + -1.6593426470575046E-01 -1.6806832065396041E-01 -1.7022423050115162E-01 + -1.7240208966543308E-01 -1.7460199070654531E-01 -1.7682402322896737E-01 + -1.7906827378363113E-01 -1.8133482576824458E-01 -1.8362375932622788E-01 + -1.8593515124426557E-01 -1.8826907484847391E-01 -1.9062559989918831E-01 + -1.9300479248436839E-01 -1.9540671491161998E-01 -1.9783142559883074E-01 + -2.0027897896341684E-01 -2.0274942531017287E-01 -2.0524281071771794E-01 + -2.0775917692352594E-01 -2.1029856120753110E-01 -2.1286099627429039E-01 + -2.1544651013368984E-01 -2.1805512598017143E-01 -2.2068686207046545E-01 + -2.2334173159980111E-01 -2.2601974257657634E-01 -2.2872089769545767E-01 + -2.3144519420889140E-01 -2.3419262379699890E-01 -2.3696317243583434E-01 + -2.3975682026398734E-01 -2.4257354144751056E-01 -2.4541330404316519E-01 + -2.4827606985997502E-01 -2.5116179431909397E-01 -2.5407042631199322E-01 + -2.5700190805699258E-01 -2.5995617495416318E-01 -2.6293315543864854E-01 + -2.6593277083245609E-01 -2.6895493519479580E-01 -2.7199955517104740E-01 + -2.7506652984046120E-01 -2.7815575056270675E-01 -2.8126710082340739E-01 + -2.8440045607880482E-01 -2.8755568359972350E-01 -2.9073264231500823E-01 + -2.9393118265463108E-01 -2.9715114639267076E-01 -3.0039236649038026E-01 + -3.0365466693956444E-01 -3.0693786260650358E-01 -3.1024175907665758E-01 + -3.1356615250039210E-01 -3.1691082943997184E-01 -3.2027556671806118E-01 + -3.2366013126797677E-01 -3.2706427998592835E-01 -3.3048775958548166E-01 + -3.3393030645446481E-01 -3.3739164651453984E-01 -3.4087149508364178E-01 + -3.4436955674148040E-01 -3.4788552519828203E-01 -3.5141908316694054E-01 + -3.5496990223872321E-01 -3.5853764276266548E-01 -3.6212195372876577E-01 + -3.6572247265508079E-01 -3.6933882547879693E-01 -3.7297062645134282E-01 + -3.7661747803758300E-01 -3.8027897081913337E-01 -3.8395468340181060E-01 + -3.8764418232723069E-01 -3.9134702198856020E-01 -3.9506274455041751E-01 + -3.9879087987293027E-01 -4.0253094543994633E-01 -4.0628244629141286E-01 + -4.1004487495993408E-01 -4.1381771141154128E-01 -4.1760042299071193E-01 + -4.2139246436969047E-01 -4.2519327750217700E-01 -4.2900229158146613E-01 + -4.3281892300312613E-01 -4.3664257533233020E-01 -4.4047263927594732E-01 + -4.4430849265953104E-01 -4.4814950040933366E-01 -4.5199501453949298E-01 + -4.5584437414453399E-01 -4.5969690539734426E-01 -4.6355192155277092E-01 + -4.6740872295699759E-01 -4.7126659706286084E-01 -4.7512481845125348E-01 + -4.7898264885878283E-01 -4.8283933721182931E-01 -4.8669411966716852E-01 + -4.9054621965930079E-01 -4.9439484795465177E-01 -4.9823920271278954E-01 + -5.0207846955481539E-01 -5.0591182163907433E-01 -5.0973841974434597E-01 + -5.1355741236066221E-01 -5.1736793578790807E-01 -5.2116911424235579E-01 + -5.2496005997129280E-01 -5.2873987337589112E-01 -5.3250764314247989E-01 + -5.3626244638236908E-01 -5.4000334878038858E-01 -5.4372940475229115E-01 + -5.4743965761117608E-01 -5.5113313974309186E-01 -5.5480887279196189E-01 + -5.5846586785399377E-01 -5.6210312568171517E-01 -5.6571963689779003E-01 + -5.6931438221874775E-01 -5.7288633268877964E-01 -5.7643444992372983E-01 + -5.7995768636541911E-01 -5.8345498554642206E-01 -5.8692528236542763E-01 + -5.9036750337329402E-01 -5.9378056706991245E-01 -5.9716338421197124E-01 + -6.0051485813173089E-01 -6.0383388506688129E-01 -6.0711935450157173E-01 + -6.1037014951866575E-01 -6.1358514716329648E-01 -6.1676321881775409E-01 + -6.1990323058774910E-01 -6.2300404370007190E-01 -6.2606451491165827E-01 + -6.2908349693005949E-01 -6.3205983884529915E-01 -6.3499238657309054E-01 + -6.3787998330935713E-01 -6.4072146999600643E-01 -6.4351568579787699E-01 + -6.4626146859076339E-01 -6.4895765546040796E-01 -6.5160308321234151E-01 + -6.5419658889242216E-01 -6.5673701031792298E-01 -6.5922318661898049E-01 + -6.6165395879023081E-01 -6.6402817025241312E-01 -6.6634466742373089E-01 + -6.6860230030072498E-01 -6.7079992304842440E-01 -6.7293639459950638E-01 + -6.7501057926219632E-01 -6.7702134733663244E-01 -6.7896757573939470E-01 + -6.8084814863591470E-01 -6.8266195808045160E-01 -6.8440790466333090E-01 + -6.8608489816512275E-01 -6.8769185821744683E-01 -6.8922771497006863E-01 + -6.9069140976395715E-01 -6.9208189580995039E-01 -6.9339813887267465E-01 + -6.9463911795933997E-01 -6.9580382601300239E-01 -6.9689127060985934E-01 + -6.9790047466009719E-01 -6.9883047711175594E-01 -6.9968033365700000E-01 + -7.0044911744009297E-01 -7.0113591976628598E-01 -7.0173985081066692E-01 + -7.0226004032588774E-01 -7.0269563834750248E-01 -7.0304581589542181E-01 + -7.0330976566979131E-01 -7.0348670273930625E-01 -7.0357586521972348E-01 + -7.0357651494000739E-01 -7.0348793809326904E-01 -7.0330944586932065E-01 + -7.0304037506539896E-01 -7.0268008867131504E-01 -7.0222797642510104E-01 + -7.0168345533503917E-01 -7.0104597016391124E-01 -7.0031499387133112E-01 + -6.9949002801023596E-01 -6.9857060307391294E-01 -6.9755627879048243E-01 + -6.9644664436244041E-01 -6.9524131864979388E-01 -6.9393995029640265E-01 + -6.9254221780046887E-01 -6.9104782953157406E-01 -6.8945652369829313E-01 + -6.8776806827217007E-01 -6.8598226087562264E-01 -6.8409892864317912E-01 + -6.8211792806718863E-01 -6.8003914484079675E-01 -6.7786249371237151E-01 + -6.7558791836667809E-01 -6.7321539134877451E-01 -6.7074491404676195E-01 + -6.6817651674901413E-01 -6.6551025879024828E-01 -6.6274622879865641E-01 + -6.5988454505329142E-01 -6.5692535595690926E-01 -6.5386884062469952E-01 + -6.5071520958388396E-01 -6.4746470557342872E-01 -6.4411760442736443E-01 + -6.4067421602002106E-01 -6.3713488524724626E-01 -6.3349999301480842E-01 + -6.2976995720406004E-01 -6.2594523358559073E-01 -6.2202631665406583E-01 + -6.1801374036143841E-01 -6.1390807873087994E-01 -6.0970994633955666E-01 + -6.0541999866434215E-01 -6.0103893229013605E-01 -5.9656748498538081E-01 + -5.9200643565323829E-01 -5.8735660416972879E-01 -5.8261885112179512E-01 + -5.7779407745897648E-01 -5.7288322407217274E-01 -5.6788727131215411E-01 + -5.6280723845915681E-01 -5.5764418315332354E-01 -5.5239920079400695E-01 + -5.4707342391424529E-01 -5.4166802153508320E-01 -5.3618419850292365E-01 + -5.3062319481183262E-01 -5.2498628491163557E-01 -5.1927477700181390E-01 + -5.1349001231055846E-01 -5.0763336435793305E-01 -5.0170623820182236E-01 + -4.9571006966527187E-01 -4.8964632454384488E-01 -4.8351649779179917E-01 + -4.7732211268609648E-01 -4.7106471996757177E-01 -4.6474589695890550E-01 + -4.5836724665941253E-01 -4.5193039681699793E-01 -4.4543699897798361E-01 + -4.3888872751581398E-01 -4.3228727863994931E-01 -4.2563436938648874E-01 + -4.1893173659227700E-01 -4.1218113585441696E-01 -4.0538434047722094E-01 + -3.9854314040873001E-01 -3.9165934116896800E-01 -3.8473476277211049E-01 + -3.7777123864473205E-01 -3.7077061454225818E-01 -3.6373474746567341E-01 + -3.5666550458046731E-01 -3.4956476213969145E-01 -3.4243440441290601E-01 + -3.3527632262266782E-01 -3.2809241389009880E-01 -3.2088458019093846E-01 + -3.1365472732336946E-01 -3.0640476388876431E-01 -2.9913660028638223E-01 + -2.9185214772291312E-01 -2.8455331723764887E-01 -2.7724201874393406E-01 + -2.6992016008743652E-01 -2.6258964612166180E-01 -2.5525237780103099E-01 + -2.4791025129173463E-01 -2.4056515710047804E-01 -2.3321897922114376E-01 + -2.2587359429930337E-01 -2.1853087081444111E-01 -2.1119266827966629E-01 + -2.0386083645863520E-01 -1.9653721459933465E-01 -1.8922363068433581E-01 + -1.8192190069707551E-01 -1.7463382790369292E-01 -1.6736120214991626E-01 + -1.6010579917248186E-01 -1.5286937992455363E-01 -1.4565368991461544E-01 + -1.3846045855831182E-01 -1.3129139854274005E-01 -1.2414820520271573E-01 + -1.1703255590857743E-01 -1.0994610946513728E-01 -1.0289050552144230E-01 + -9.5867363991070237E-02 -8.8878284482752881E-02 -8.1924845741194546E-02 + -7.5008605098029993E-02 -6.8131097932949206E-02 -6.1293837145096154E-02 + -5.4498312634930587E-02 -4.7745990796816552E-02 -4.1038314022674487E-02 + -3.4376700217091945E-02 -2.7762542324338346E-02 -2.1197207867761910E-02 + -1.4682038502062365E-02 -8.2183495789261117E-03 -1.8074297264800434E-03 + 4.5494595570366196E-03 1.0851084295068137E-02 1.7096238409805016E-02 + 2.3283744084454567E-02 2.9412452110828109E-02 3.5481242222542966E-02 + 4.1489023414348361E-02 4.7434734248290200E-02 5.3317343147651922E-02 + 5.9135848679793622E-02 6.4889279829171781E-02 7.0576696261927002E-02 + 7.6197188583437145E-02 8.1749878590149080E-02 8.7233919516760919E-02 + 9.2648496279420664E-02 9.7992825714989948E-02 1.0326615681555852E-01 + 1.0846777095627980E-01 1.1359698211318255E-01 1.1865313706592751E-01 + 1.2363561557851779E-01 1.2854383054878185E-01 1.3337722811512126E-01 + 1.3813528770665517E-01 1.4281752202065398E-01 1.4742347690927229E-01 + 1.5195273115626437E-01 1.5640489612391978E-01 1.6077961525115200E-01 + 1.6507656338578661E-01 1.6929544593789250E-01 1.7343599784656769E-01 + 1.7749798236000922E-01 1.8148118963777163E-01 1.8538543519450795E-01 + 1.8921055821566748E-01 1.9295641978679995E-01 1.9662290108839034E-01 + 2.0020990161653457E-01 2.0371733749521476E-01 2.0714513994762015E-01 + 2.1049325399121474E-01 2.1376163741380977E-01 2.1695026007596213E-01 + 2.2005910356924319E-01 2.2308816124142000E-01 2.2603743857992864E-01 + 2.2890695392579735E-01 2.3169673947319025E-01 2.3440684249637761E-01 + 2.3703732673725875E-01 2.3958827388309933E-01 2.4205978506572837E-01 + 2.4445198231952955E-01 2.4676500994507178E-01 2.4899903573691157E-01 + 2.5115425204671316E-01 2.5323087666515709E-01 2.5522915351723807E-01 + 2.5714935317488924E-01 2.5899177319802519E-01 2.6075673832007717E-01 + 2.6244460049701324E-01 2.6405573883996686E-01 2.6559055945133575E-01 + 2.6704949518290250E-01 2.6843300533249947E-01 2.6974157529337284E-01 + 2.7097571616783311E-01 2.7213596435430754E-01 2.7322288111459436E-01 + 2.7423705212605209E-01 2.7517908702174260E-01 2.7604961892010194E-01 + 2.7684930394462975E-01 2.7757882073328577E-01 2.7823886993672814E-01 + 2.7883017370423607E-01 2.7935347515603765E-01 2.7980953784078677E-01 + 2.8019914517710709E-01 2.8052309987833579E-01 2.8078222335990594E-01 + 2.8097735512913302E-01 2.8110935215748745E-01 2.8117908823577953E-01 + 2.8118745331298978E-01 2.8113535281973873E-01 2.8102370697766466E-01 + 2.8085345009615181E-01 2.8062552985803502E-01 2.8034090659602967E-01 + 2.8000055256169987E-01 2.7960545118885166E-01 2.7915659635322121E-01 + 2.7865499163032376E-01 2.7810164955327871E-01 2.7749759087234255E-01 + 2.7684384381779548E-01 2.7614144336772012E-01 2.7539143052206655E-01 + 2.7459485158428504E-01 2.7375275745163691E-01 2.7286620291515984E-01 + 2.7193624597010296E-01 2.7096394713748101E-01 2.6995036879724876E-01 + 2.6889657453344268E-01 2.6780362849146810E-01 2.6667259474758781E-01 + 2.6550453669050222E-01 2.6430051641479524E-01 2.6306159412589641E-01 + 2.6178882755608240E-01 2.6048327139096611E-01 2.5914597670581652E-01 + 2.5777799041096749E-01 2.5638035470561915E-01 2.5495410653913497E-01 + 2.5350027707903278E-01 2.5201989118495355E-01 2.5051396688766153E-01 + 2.4898351487250173E-01 2.4742953796661385E-01 2.4585303062930039E-01 + 2.4425497844522479E-01 2.4263635762011238E-01 2.4099813447888807E-01 + 2.3934126496636185E-01 2.3766669415077551E-01 2.3597535573078329E-01 + 2.3426817154670451E-01 2.3254605109683874E-01 2.3080989106093699E-01 + 2.2906057483152820E-01 2.2729897205508515E-01 2.2552593818609273E-01 + 2.2374231405469291E-01 2.2194892545191089E-01 2.2014658273472112E-01 + 2.1833608045313663E-01 2.1651819700318517E-01 2.1469369430819946E-01 + 2.1286331753160997E-01 2.1102779482414674E-01 2.0918783710830166E-01 + 2.0734413790274603E-01 2.0549737318917397E-01 2.0364820132378963E-01 + 2.0179726299533376E-01 1.9994518123116525E-01 1.9809256145250906E-01 + 1.9623999157949593E-01 1.9438804218611561E-01 1.9253726670464608E-01 + 1.9068820167850437E-01 1.8884136706183180E-01 1.8699726656341048E-01 + 1.8515638803176931E-01 1.8331920387753969E-01 1.8148617152824673E-01 + 1.7965773390981879E-01 1.7783431994811749E-01 1.7601634508274377E-01 + 1.7420421178431297E-01 1.7239831006525741E-01 1.7059901797310675E-01 + 1.6880670205410703E-01 1.6702171777402991E-01 1.6524440988218669E-01 + 1.6347511270405732E-01 1.6171415034768169E-01 1.5996183680918580E-01 + 1.5821847596360405E-01 1.5648436142869715E-01 1.5475977629183638E-01 + 1.5304499269332350E-01 1.5134027126383590E-01 1.4964586041895975E-01 + 1.4796199551997946E-01 1.4628889791700425E-01 1.4462677389785658E-01 + 1.4297581357354530E-01 1.4133618973808282E-01 1.3970805674632128E-01 + 1.3809154945781760E-01 1.3648678229687652E-01 1.3489384847846039E-01 + 1.3331281944625878E-01 1.3174374456282206E-01 1.3018665108250113E-01 + 1.2864154442646358E-01 1.2710840876601606E-01 1.2558720790680489E-01 + 1.2407788645317022E-01 1.2258037122004048E-01 1.2109457285010314E-01 + 1.1962038758720930E-01 1.1815769915342628E-01 1.1670638067681206E-01 + 1.1526629661962935E-01 1.1383730466179877E-01 1.1241925750127163E-01 + 1.1101200454097027E-01 1.0961539344029800E-01 1.0822927151734853E-01 + 1.0685348699540041E-01 1.0548789009369265E-01 1.0413233396770770E-01 + 1.0278667550814943E-01 1.0145077601055322E-01 1.0012450172912957E-01 + 9.8807724329169885E-02 9.7500321252309258E-02 9.6202176008349030E-02 + 9.4913178406315288E-02 9.3633224736156331E-02 9.2362217911046277E-02 + 9.1100067578767777E-02 8.9846690209179278E-02 8.8602009163344958E-02 + 8.7365954748591490E-02 8.6138464262543984E-02 8.4919482028103010E-02 + 8.3708959420367671E-02 8.2506854885669653E-02 8.1313133952161637E-02 + 8.0127769230806958E-02 7.8950740405116127E-02 7.7782034207595135E-02 + 7.6621644380584178E-02 7.5469571618977799E-02 7.4325823492235460E-02 + 7.3190414343100543E-02 7.2063365160545428E-02 7.0944703424664302E-02 + 6.9834462921509272E-02 6.8732683526236890E-02 6.7639410953369214E-02 + 6.6554696473472896E-02 6.5478596596120306E-02 6.4411172719581036E-02 + 6.3352490748308649E-02 6.2302620679902630E-02 6.1261636163821583E-02 + 6.0229614034695268E-02 5.9206633823599183E-02 5.8192777251099496E-02 + 5.7188127706262332E-02 5.6192769716146729E-02 5.5206788409363182E-02 + 5.4230268982835728E-02 5.3263296168629091E-02 5.2305953712909858E-02 + 5.1358323867425879E-02 5.0420486899443770E-02 4.9492520623116917E-02 + 4.8574499955532209E-02 4.7666496501726330E-02 4.6768578169653387E-02 + 4.5880808818231186E-02 4.5003247940013966E-02 4.4135950378897212E-02 + 4.3278966084208607E-02 4.2432339901162366E-02 4.1596111397545404E-02 + 4.0770314726102978E-02 3.9954978521763128E-02 3.9150125832547046E-02 + 3.8355774082767774E-02 3.7571935066905718E-02 3.6798614972381426E-02 + 3.6035814429310732E-02 3.5283528585226209E-02 3.4541747202681043E-02 + 3.3810454777611784E-02 3.3089630676319572E-02 3.2379249288940821E-02 + 3.1679280197303282E-02 3.0989688355110252E-02 3.0310434278455426E-02 + 2.9641474244740264E-02 2.8982760498150840E-02 2.8334241459937175E-02 + 2.7695861941836011E-02 2.7067563361078423E-02 2.6449283955525725E-02 + 2.5840958997584790E-02 2.5242521005660573E-02 2.4653899952009437E-02 + 2.4075023465966010E-02 2.3505817031619480E-02 2.2946204179120508E-02 + 2.2396106668901575E-02 2.1855444668191743E-02 2.1324136919303727E-02 + 2.0802100899264750E-02 2.0289252970450235E-02 1.9785508521967789E-02 + 1.9290782101618626E-02 1.8804987538342782E-02 1.8328038055128067E-02 + 1.7859846372430772E-02 1.7400324802222700E-02 1.6949385332837286E-02 + 1.6506939704843945E-02 1.6072899478230318E-02 1.5647176091216509E-02 + 1.5229680911066946E-02 1.4820325277300843E-02 1.4419020537731812E-02 + 1.4025678077794149E-02 1.3640209343632446E-02 1.3262525859447769E-02 + 1.2892539239604610E-02 1.2530161196008509E-02 1.2175303541267101E-02 + 1.1827878188144873E-02 1.1487797145815310E-02 1.1154972513405277E-02 + 1.0829316471312193E-02 1.0510741270758985E-02 1.0199159222032704E-02 + 9.8944826818304545E-03 9.5966240401137940E-03 9.3054957068462989E-03 + 9.0210100989629016E-03 8.7430796278917446E-03 8.4716166879200833E-03 + 8.2065336456674191E-03 7.9477428308996883E-03 7.6951565288887885E-03 + 7.4486869744940206E-03 7.2082463481130260E-03 6.9737467736233124E-03 + 6.7451003184091111E-03 6.5222189955431156E-03 6.3050147681692386E-03 + 6.0933995561102960E-03 5.8872852447033287E-03 5.6865836958467026E-03 + 5.4912067612248152E-03 5.3010662976606185E-03 5.1160741845316738E-03 + 4.9361423431721844E-03 4.7611827581727070E-03 4.5911075004787241E-03 + 4.4258287521812710E-03 4.2652588328855922E-03 4.1093102275378702E-03 + 3.9578956155856132E-03 3.8109279013439274E-03 3.6683202454371477E-03 + 3.5299860971842963E-03 3.3958392277958923E-03 3.2657937642500776E-03 + 3.1397642237170468E-03 3.0176655484021727E-03 2.8994131406806069E-03 + 2.7849228983989056E-03 2.6741112502221562E-03 2.5668951909090291E-03 + 2.4631923164007822E-03 2.3629208586147051E-03 2.2659997198369287E-03 + 2.1723485066141653E-03 2.0818875630488972E-03 1.9945380034076519E-03 + 1.9102217439569188E-03 1.8288615339467954E-03 1.7503809856675135E-03 + 1.6747046035094743E-03 1.6017578119627855E-03 1.5314669824975351E-03 + 1.4637594592715618E-03 1.3985635836176148E-03 1.3358087172671567E-03 + 1.2754252642732443E-03 1.2173446915999624E-03 1.1614995483509574E-03 + 1.1078234836145399E-03 1.0562512629075226E-03 1.0067187832047458E-03 + 9.5916308654564887E-04 9.1352237221368690E-04 8.6973600748861430E-04 + 8.2774453697564954E-04 7.8748969051947574E-04 7.4891438971473243E-04 + 7.1196275302811644E-04 6.7658009955064299E-04 6.4271295140166040E-04 + 6.1030903480923542E-04 5.7931727989426302E-04 5.4968781918817930E-04 + 5.2137198491658044E-04 4.9432230508315270E-04 4.6849249839033100E-04 + 4.4383746803487007E-04 4.2031329441808037E-04 3.9787722681189559E-04 + 3.7648767402315755E-04 3.5610419409950491E-04 3.3668748312115567E-04 + 3.1819936312351961E-04 3.0060276919612570E-04 2.8386173580371505E-04 + 2.6794138237554610E-04 2.5280789820904590E-04 2.3842852673386979E-04 + 2.2477154918221313E-04 2.1180626771092224E-04 1.9950298802048208E-04 + 1.8783300151542224E-04 1.7676856705002770E-04 1.6628289230247859E-04 + 1.5635011481972453E-04 1.4694528277446215E-04 1.3804433547460478E-04 + 1.2962408366457188E-04 1.2166218965660245E-04 1.1413714732912927E-04 + 1.0702826202803486E-04 1.0031563040534186E-04 9.3980120228608337E-05 + 8.8003350192967470E-05 8.2367669766411527E-05 7.7056139097557842E-05 + 7.2052509013755456E-05 6.7341201136013380E-05 6.2907288135845993E-05 + 5.8736474157743188E-05 5.4815075429601546E-05 5.1130001082078329E-05 + 4.7668734196477748E-05 4.4419313099441037E-05 4.1370312921387328E-05 + 3.8510827434361996E-05 3.5830451183670754E-05 3.3319261926436402E-05 + 3.0967803388999441E-05 2.8767068353897864E-05 2.6708482086012121E-05 + 2.4783886106345302E-05 2.2985522320825620E-05 2.1306017510478137E-05 + 1.9738368188304118E-05 1.8275925827241247E-05 1.6912382462650048E-05 + 1.5641756671882837E-05 1.4458379932644305E-05 1.3356883361044935E-05 + 1.2332184829479160E-05 1.1379476463733777E-05 1.0494212518042267E-05 + 9.6720976261524098E-06 8.9090754258645039E-06 8.2013175539249195E-06 + 7.5452130076268523E-06 6.9373578689720210E-06 6.3745453867872254E-06 + 5.8537564117641967E-06 5.3721501790004098E-06 4.9270554322619101E-06 + 4.5159618838650751E-06 4.1365120037810564E-06 3.7864931313060536E-06 + 3.4638299024069320E-06 3.1665769856491124E-06 2.8929121194369194E-06 + 2.6411294431464412E-06 2.4096331146066126E-06 2.1969312062832249E-06 + 2.0016298724427598E-06 1.8224277795172165E-06 1.6581107918555714E-06 + 1.5075469050320015E-06 1.3696814188837632E-06 1.2435323424719033E-06 + 1.1281860231943399E-06 1.0227929923311049E-06 9.2656401937892694E-07 + 8.3876636760628002E-07 7.5872024318204399E-07 6.8579543058678282E-07 + 6.1940811204851661E-07 5.5901782602370383E-07 5.0412456517780591E-07 + 4.5426707640995498E-07 4.0901642790699912E-07 3.6798170269945251E-07 + 3.3079758388052420E-07 2.9713142951728229E-07 2.6667475920645824E-07 + 2.3914381713274598E-07 2.1427779708414937E-07 1.9183717798129787E-07 + 1.7160216428956368E-07 1.5337122589518658E-07 1.3695973222637576E-07 + 1.2219867559775793E-07 1.0893347895103410E-07 9.7022883356153896E-08 + 8.6337910825465258E-08 7.6760898177970340E-08 6.8184597871852566E-08 + 6.0511341900655332E-08 5.3652265021741276E-08 4.7526583754825128E-08 + 4.2060927753305458E-08 3.7188720311738075E-08 3.2849604928991358E-08 + 2.8988914998323575E-08 2.5557183842767416E-08 2.2509692456741201E-08 + 1.9806052452690666E-08 1.7409821844786425E-08 1.5288151430235516E-08 + 1.3411459652624568E-08 1.1753133950903243E-08 1.0289256712165378E-08 + 8.9983540563316442E-09 7.8611657862208369E-09 6.8604349373782318E-09 + 5.9807154584706366E-09 5.2081966451316699E-09 4.5305430379299121E-09 + 3.9367485787232107E-09 3.4170038991491212E-09 2.9625756904854904E-09 + 2.5656971757000482E-09 2.2194687723048851E-09 1.9177680987535702E-09 + 1.6551685376824483E-09 1.4268656264231110E-09 1.2286105990214748E-09 + 1.0566504546132090E-09 9.0767397455004524E-10 7.7876315527035437E-10 + 6.6734956568549750E-10 5.7117517693420056E-10 4.8825724886374064E-10 + 4.1685689165078966E-10 3.5545095269620642E-10 3.0270690843485136E-10 + 2.5746046810788275E-10 2.1869562197438987E-10 1.8552688997245231E-10 + 1.5718354856875326E-10 1.3299563403156382E-10 1.1238153793083500E-10 + 9.4837027029036342E-11 7.9925550147502878E-11 6.7269660210168268E-11 + 5.6543424617491211E-11 4.7466103453123896E-11 3.9795620650431780E-11 + 3.3322958021284323E-11 2.7873541753497311E-11 2.3284491140758708E-11 + 1.9422446791226838E-11 1.6177010365145035E-11 1.3453776710436607E-11 + + + 1.6510385759716317E-17 8.5623401975202417E-13 3.4543328034471576E-12 + 7.8390541732233144E-12 1.4056052614170651E-11 2.2151895784717329E-11 + 3.2174081320337635E-11 4.4171053935705586E-11 5.8192222830511906E-11 + 7.4287979404246150E-11 9.2509715285341260E-11 1.1290984068017506E-10 + 1.3554180304750554E-10 1.6046010610403061E-10 1.8772032916685053E-10 + 2.1737914683871230E-10 2.4949434904201714E-10 2.8412486140768572E-10 + 3.2133076602506156E-10 3.6117332255916561E-10 4.0371498974169186E-10 + 4.4901944724228520E-10 4.9715161792671260E-10 5.4817769050869593E-10 + 6.0216514260224472E-10 6.5918276418150303E-10 7.1930068145517956E-10 + 7.8259038116282157E-10 8.4912473530025639E-10 9.1897802628170184E-10 + 9.9222597254613434E-10 1.0689457546156707E-09 1.1492160416138340E-09 + 1.2331170182517039E-09 1.3207304122901209E-09 1.4121395224862121E-09 + 1.5074292470326984E-09 1.6066861124985218E-09 1.7099983032795819E-09 + 1.8174556915683978E-09 1.9291498678517691E-09 2.0451741719456227E-09 + 2.1656237245763592E-09 2.2905954595182620E-09 2.4201881562965922E-09 + 2.5545024734662576E-09 2.6936409824760200E-09 2.8377082021284746E-09 + 2.9868106336461299E-09 3.1410567963541255E-09 3.3005572639903576E-09 + 3.4654247016538497E-09 3.6357739034025327E-09 3.8117218305116789E-09 + 3.9933876504044757E-09 4.1808927762664860E-09 4.3743609073557690E-09 + 4.5739180700208509E-09 4.7796926594387959E-09 4.9918154820858860E-09 + 5.2104197989536883E-09 5.4356413695233845E-09 5.6676184965115865E-09 + 5.9064920714010349E-09 6.1524056207697761E-09 6.4055053534327449E-09 + 6.6659402084097715E-09 6.9338619037344972E-09 7.2094249861186124E-09 + 7.4927868814864815E-09 7.7841079463950469E-09 8.0835515203545962E-09 + 8.3912839790658057E-09 8.7074747885891615E-09 9.0322965604628228E-09 + 9.3659251077853845E-09 9.7085395022803830E-09 1.0060322132359429E-08 + 1.0421458762201418E-08 1.0792138591865403E-08 1.1172554318455010E-08 + 1.1562902198352758E-08 1.1963382110542664E-08 1.2374197621040175E-08 + 1.2795556048448559E-08 1.3227668530661252E-08 1.3670750092730105E-08 + 1.4125019715919652E-08 1.4590700407968140E-08 1.5068019274575907E-08 + 1.5557207592142878E-08 1.6058500881776248E-08 1.6572138984590938E-08 + 1.7098366138324722E-08 1.7637431055291236E-08 1.8189587001693709E-08 + 1.8755091878323291E-08 1.9334208302665677E-08 1.9927203692440711E-08 + 2.0534350350599569E-08 2.1155925551804815E-08 2.1792211630419295E-08 + 2.2443496070029429E-08 2.3110071594530188E-08 2.3792236260798058E-08 + 2.4490293552980272E-08 2.5204552478427511E-08 2.5935327665299235E-08 + 2.6682939461870107E-08 2.7447714037567189E-08 2.8229983485767899E-08 + 2.9030085928389082E-08 2.9848365622298263E-08 3.0685173067578709E-08 + 3.1540865117680277E-08 3.2415805091488602E-08 3.3310362887346198E-08 + 3.4224915099058776E-08 3.5159845133921447E-08 3.6115543332799801E-08 + 3.7092407092301094E-08 3.8090840989072003E-08 3.9111256906259781E-08 + 4.0154074162173888E-08 4.1219719641186631E-08 4.2308627926911154E-08 + 4.3421241437696390E-08 4.4558010564479119E-08 4.5719393811033455E-08 + 4.6905857936660105E-08 4.8117878101356474E-08 4.9355938013511514E-08 + 5.0620530080168356E-08 5.1912155559899520E-08 5.3231324718339532E-08 + 5.4578556986421257E-08 5.5954381121362303E-08 5.7359335370449478E-08 + 5.8793967637669315E-08 6.0258835653234106E-08 6.1754507146053465E-08 + 6.3281560019202041E-08 6.4840582528435742E-08 6.6432173463808535E-08 + 6.8056942334444130E-08 6.9715509556516270E-08 7.1408506644493813E-08 + 7.3136576405706414E-08 7.4900373138288868E-08 7.6700562832561779E-08 + 7.8537823375908489E-08 8.0412844761208429E-08 8.2326329298888500E-08 + 8.4278991832654712E-08 8.6271559958967976E-08 8.8304774250328725E-08 + 9.0379388482435923E-08 9.2496169865287580E-08 9.4655899278290837E-08 + 9.6859371509451053E-08 9.9107395498709738E-08 1.0140079458550421E-07 + 1.0374040676062028E-07 1.0612708492241337E-07 1.0856169713747373E-07 + 1.1104512690581046E-07 1.1357827343063544E-07 1.1616205189282365E-07 + 1.1879739373013319E-07 1.2148524692126487E-07 1.2422657627484685E-07 + 1.2702236372342824E-07 1.2987360862256884E-07 1.3278132805511223E-07 + 1.3574655714073223E-07 1.3877034935084440E-07 1.4185377682897352E-07 + 1.4499793071667280E-07 1.4820392148509045E-07 1.5147287927227983E-07 + 1.5480595422635384E-07 1.5820431685458455E-07 1.6166915837854806E-07 + 1.6520169109542357E-07 1.6880314874554753E-07 1.7247478688633578E-07 + 1.7621788327267957E-07 1.8003373824393031E-07 1.8392367511758452E-07 + 1.8788904058978603E-07 1.9193120514276240E-07 1.9605156345931515E-07 + 2.0025153484448652E-07 2.0453256365452483E-07 2.0889611973327637E-07 + 2.1334369885613048E-07 2.1787682318164889E-07 2.2249704171101129E-07 + 2.2720593075541356E-07 2.3200509441155302E-07 2.3689616504534381E-07 + 2.4188080378400125E-07 2.4696070101664053E-07 2.5213757690353902E-07 + 2.5741318189420736E-07 2.6278929725442416E-07 2.6826773560238908E-07 + 2.7385034145414953E-07 2.7953899177846380E-07 2.8533559656126028E-07 + 2.9124209937986082E-07 2.9726047798713531E-07 3.0339274490575903E-07 + 3.0964094803274789E-07 3.1600717125444710E-07 3.2249353507215491E-07 + 3.2910219723856501E-07 3.3583535340521230E-07 3.4269523778111504E-07 + 3.4968412380280334E-07 3.5680432481593067E-07 3.6405819476867134E-07 + 3.7144812891710348E-07 3.7897656454278559E-07 3.8664598168273727E-07 + 3.9445890387203730E-07 4.0241789889925869E-07 4.1052557957495719E-07 + 4.1878460451344492E-07 4.2719767892807267E-07 4.3576755544025635E-07 + 4.4449703490248521E-07 4.5338896723554993E-07 4.6244625228023870E-07 + 4.7167184066375063E-07 4.8106873468107677E-07 4.9063998919161052E-07 + 5.0038871253125105E-07 5.1031806744025767E-07 5.2043127200714342E-07 + 5.3073160062886343E-07 5.4122238498760038E-07 5.5190701504441205E-07 + 5.6278894005005461E-07 5.7387166957325163E-07 5.8515877454673571E-07 + 5.9665388833134760E-07 6.0836070779851876E-07 6.2028299443144370E-07 + 6.3242457544527502E-07 6.4478934492665526E-07 6.5738126499293570E-07 + 6.7020436697140313E-07 6.8326275259887577E-07 6.9656059524200708E-07 + 7.1010214113866482E-07 7.2389171066073585E-07 7.3793369959874103E-07 + 7.5223258046862362E-07 7.6679290384109630E-07 7.8161929969394496E-07 + 7.9671647878766566E-07 8.1208923406486095E-07 8.2774244207378021E-07 + 8.4368106441644257E-07 8.5991014922174506E-07 8.7643483264400807E-07 + 8.9326034038737486E-07 9.1039198925653140E-07 9.2783518873417533E-07 + 9.4559544258572962E-07 9.6367835049172508E-07 9.8208960970837936E-07 + 1.0008350167568087E-06 1.0199204691414060E-06 1.0393519670978620E-06 + 1.0591356153713554E-06 1.0792776250254121E-06 1.0997843152819972E-06 + 1.1206621153933369E-06 1.1419175665460415E-06 1.1635573237980842E-06 + 1.1855881580491920E-06 1.2080169580452362E-06 1.2308507324171942E-06 + 1.2540966117552943E-06 1.2777618507189338E-06 1.3018538301830017E-06 + 1.3263800594212120E-06 1.3513481783271211E-06 1.3767659596734286E-06 + 1.4026413114102701E-06 1.4289822790031361E-06 1.4557970478111303E-06 + 1.4830939455062269E-06 1.5108814445342769E-06 1.5391681646184316E-06 + 1.5679628753057685E-06 1.5972744985578076E-06 1.6271121113857321E-06 + 1.6574849485310241E-06 1.6884024051923474E-06 1.7198740397994479E-06 + 1.7519095768348794E-06 1.7845189097043999E-06 1.8177121036568439E-06 + 1.8514993987543651E-06 1.8858912128938642E-06 1.9208981448805400E-06 + 1.9565309775544126E-06 1.9928006809707660E-06 2.0297184156354117E-06 + 2.0672955357957439E-06 2.1055435927885158E-06 2.1444743384453511E-06 + 2.1840997285569418E-06 2.2244319263969931E-06 2.2654833063068825E-06 + 2.3072664573421523E-06 2.3497941869818148E-06 2.3930795249016448E-06 + 2.4371357268124818E-06 2.4819762783646950E-06 2.5276148991199683E-06 + 2.5740655465915189E-06 2.6213424203539784E-06 2.6694599662240816E-06 + 2.7184328805134501E-06 2.7682761143546194E-06 2.8190048781016835E-06 + 2.8706346458067289E-06 2.9231811597734590E-06 2.9766604351892504E-06 + 3.0310887648370892E-06 3.0864827238886470E-06 3.1428591747800144E-06 + 3.2002352721714068E-06 3.2586284679923707E-06 3.3180565165739058E-06 + 3.3785374798690393E-06 3.4400897327633371E-06 3.5027319684769451E-06 + 3.5664832040596829E-06 3.6313627859808431E-06 3.6973903958152946E-06 + 3.7645860560275461E-06 3.8329701358554899E-06 3.9025633572954778E-06 + 3.9733868011905695E-06 4.0454619134236087E-06 4.1188105112170555E-06 + 4.1934547895412896E-06 4.2694173276333952E-06 4.3467210956281404E-06 + 4.4253894613033011E-06 4.5054461969410963E-06 4.5869154863078869E-06 + 4.6698219317540471E-06 4.7541905614362018E-06 4.8400468366638175E-06 + 4.9274166593723828E-06 5.0163263797252726E-06 5.1068028038465976E-06 + 5.1988732016872207E-06 5.2925653150262618E-06 5.3879073656104406E-06 + 5.4849280634335644E-06 5.5836566151586783E-06 5.6841227326852211E-06 + 5.7863566418637584E-06 5.8903890913607851E-06 5.9962513616762420E-06 + 6.1039752743162645E-06 6.2135932011239822E-06 6.3251380737709408E-06 + 6.4386433934120204E-06 6.5541432405065924E-06 6.6716722848088468E-06 + 6.7912657955300819E-06 6.9129596516760983E-06 7.0367903525624636E-06 + 7.1627950285110010E-06 7.2910114517303155E-06 7.4214780473837971E-06 + 7.5542339048481068E-06 7.6893187891655861E-06 7.8267731526938167E-06 + 7.9666381469557507E-06 8.1089556346939525E-06 8.2537682021322576E-06 + 8.4011191714486743E-06 8.5510526134629197E-06 8.7036133605424824E-06 + 8.8588470197307846E-06 9.0167999861014817E-06 9.1775194563425410E-06 + 9.3410534425742652E-06 9.5074507864051427E-06 9.6767611732297440E-06 + 9.8490351467726265E-06 1.0024324123882755E-05 1.0202680409582446E-05 + 1.0384157212375526E-05 1.0568808659818803E-05 1.0756689814361788E-05 + 1.0947856689458863E-05 1.1142366265958956E-05 1.1340276508777212E-05 + 1.1541646383853647E-05 1.1746535875403719E-05 1.1955006003465774E-05 + 1.2167118841750565E-05 1.2382937535797864E-05 1.2602526321445742E-05 + 1.2825950543617489E-05 1.3053276675432111E-05 1.3284572337643464E-05 + 1.3519906318414153E-05 1.3759348593429553E-05 1.4002970346358095E-05 + 1.4250843989663543E-05 1.4503043185775531E-05 1.4759642868624271E-05 + 1.5020719265545993E-05 1.5286349919565090E-05 1.5556613712059987E-05 + 1.5831590885818673E-05 1.6111363068491221E-05 1.6396013296445749E-05 + 1.6685626039034649E-05 1.6980287223278757E-05 1.7280084258975760E-05 + 1.7585106064240922E-05 1.7895443091487038E-05 1.8211187353851487E-05 + 1.8532432452077811E-05 1.8859273601859895E-05 1.9191807661656376E-05 + 1.9530133160983783E-05 1.9874350329196069E-05 2.0224561124759621E-05 + 2.0580869265031446E-05 2.0943380256549904E-05 2.1312201425846270E-05 + 2.1687441950786484E-05 2.2069212892451682E-05 2.2457627227567511E-05 + 2.2852799881490732E-05 2.3254847761763674E-05 2.3663889792245259E-05 + 2.4080046947829528E-05 2.4503442289761021E-05 2.4934201001557360E-05 + 2.5372450425550001E-05 2.5818320100052983E-05 2.6271941797171191E-05 + 2.6733449561258438E-05 2.7202979748037208E-05 2.7680671064390792E-05 + 2.8166664608839914E-05 2.8661103912715006E-05 2.9164134982036827E-05 + 2.9675906340116676E-05 3.0196569070889580E-05 3.0726276862991941E-05 + 3.1265186054597523E-05 3.1813455679023772E-05 3.2371247511122606E-05 + 3.2938726114468285E-05 3.3516058889356901E-05 3.4103416121630590E-05 + 3.4700971032341283E-05 3.5308899828268010E-05 3.5927381753302618E-05 + 3.6556599140718335E-05 3.7196737466337415E-05 3.7847985402611951E-05 + 3.8510534873634481E-05 3.9184581111093561E-05 3.9870322711191790E-05 + 4.0567961692541092E-05 4.1277703555053502E-05 4.1999757339843394E-05 + 4.2734335690159617E-05 4.3481654913364167E-05 4.4241935043975955E-05 + 4.5015399907797478E-05 4.5802277187143917E-05 4.6602798487192157E-05 + 4.7417199403470112E-05 4.8245719590504984E-05 4.9088602831651590E-05 + 4.9946097110119323E-05 5.0818454681219704E-05 5.1705932145854781E-05 + 5.2608790525267183E-05 5.3527295337075235E-05 5.4461716672612693E-05 + 5.5412329275597522E-05 5.6379412622150847E-05 5.7363251002191036E-05 + 5.8364133602224633E-05 5.9382354589559241E-05 6.0418213197961912E-05 + 6.1472013814789086E-05 6.2544066069611604E-05 6.3634684924361552E-05 + 6.4744190765026336E-05 6.5872909494917565E-05 6.7021172629539943E-05 + 6.8189317393089411E-05 6.9377686816606406E-05 7.0586629837815168E-05 + 7.1816501402675352E-05 7.3067662568676678E-05 7.4340480609906429E-05 + 7.5635329123918850E-05 7.6952588140439865E-05 7.8292644231935270E-05 + 7.9655890626076858E-05 8.1042727320136980E-05 8.2453561197346899E-05 + 8.3888806145249764E-05 8.5348883176084169E-05 8.6834220549231997E-05 + 8.8345253895767239E-05 8.9882426345139712E-05 9.1446188654031624E-05 + 9.3036999337422908E-05 9.4655324801905458E-05 9.6301639481281051E-05 + 9.7976425974485081E-05 9.9680175185873682E-05 1.0141338646791714E-04 + 1.0317656776633685E-04 1.0497023576773165E-04 1.0679491604973289E-04 + 1.0865114323373256E-04 1.1053946114022955E-04 1.1246042294683633E-04 + 1.1441459134899281E-04 1.1640253872343319E-04 1.1842484729445417E-04 + 1.2048210930302902E-04 1.2257492717881966E-04 1.2470391371513265E-04 + 1.2686969224687318E-04 1.2907289683154443E-04 1.3131417243334624E-04 + 1.3359417511042441E-04 1.3591357220532743E-04 1.3827304253872068E-04 + 1.4067327660641717E-04 1.4311497677977847E-04 1.4559885750954710E-04 + 1.4812564553316420E-04 1.5069608008563419E-04 1.5331091311399705E-04 + 1.5597090949546731E-04 1.5867684725930610E-04 1.6142951781248491E-04 + 1.6422972616920862E-04 1.6707829118436148E-04 1.6997604579094600E-04 + 1.7292383724157778E-04 1.7592252735410831E-04 1.7897299276144416E-04 + 1.8207612516563660E-04 1.8523283159630984E-04 1.8844403467350491E-04 + 1.9171067287501053E-04 1.9503370080826317E-04 1.9841408948688576E-04 + 2.0185282661194987E-04 2.0535091685803657E-04 2.0890938216418413E-04 + 2.1252926202979547E-04 2.1621161381559832E-04 2.1995751304973853E-04 + 2.2376805373909236E-04 2.2764434868589325E-04 2.3158752980975304E-04 + 2.3559874847517534E-04 2.3967917582465070E-04 2.4383000311743207E-04 + 2.4805244207407967E-04 2.5234772522687876E-04 2.5671710627622312E-04 + 2.6116186045307553E-04 2.6568328488759237E-04 2.7028269898403070E-04 + 2.7496144480203174E-04 2.7972088744440026E-04 2.8456241545147642E-04 + 2.8948744120222027E-04 2.9449740132211623E-04 2.9959375709801776E-04 + 3.0477799490004234E-04 3.1005162661063896E-04 3.1541619006094897E-04 + 3.2087324947457804E-04 3.2642439591891258E-04 3.3207124776409502E-04 + 3.3781545114979801E-04 3.4365868045991535E-04 3.4960263880531959E-04 + 3.5564905851480149E-04 3.6179970163434394E-04 3.6805636043485738E-04 + 3.7442085792853234E-04 3.8089504839393607E-04 3.8748081791001315E-04 + 3.9418008489912879E-04 4.0099480067931430E-04 4.0792695002586052E-04 + 4.1497855174241828E-04 4.2215165924176058E-04 4.2944836113637680E-04 + 4.3687078183904881E-04 4.4442108217358442E-04 4.5210145999587321E-04 + 4.5991415082543381E-04 4.6786142848763413E-04 4.7594560576675249E-04 + 4.8416903507006231E-04 4.9253410910312225E-04 5.0104326155646394E-04 + 5.0969896780385187E-04 5.1850374561231616E-04 5.2746015586414992E-04 + 5.3657080329107243E-04 5.4583833722074567E-04 5.5526545233586504E-04 + 5.6485488944601212E-04 5.7460943627250132E-04 5.8453192824640802E-04 + 5.9462524932001753E-04 6.0489233279189419E-04 6.1533616214581714E-04 + 6.2595977190378301E-04 6.3676624849332562E-04 6.4775873112937808E-04 + 6.5894041271090842E-04 6.7031454073259106E-04 6.8188441821172665E-04 + 6.9365340463068824E-04 7.0562491689511991E-04 7.1780243030817356E-04 + 7.3018947956100908E-04 7.4278965973984890E-04 7.5560662734983444E-04 + 7.6864410135597924E-04 7.8190586424146588E-04 7.9539576308358673E-04 + 8.0911771064760135E-04 8.2307568649881411E-04 8.3727373813313787E-04 + 8.5171598212646583E-04 8.6640660530313315E-04 8.8134986592379070E-04 + 8.9655009489298548E-04 9.1201169698677158E-04 9.2773915210065630E-04 + 9.4373701651823290E-04 9.6000992420079581E-04 9.7656258809828604E-04 + 9.9339980148190933E-04 1.0105264392987509E-03 1.0279474595487614E-03 + 1.0456679046844323E-03 1.0636929030335470E-03 1.0820276702453427E-03 + 1.1006775107604825E-03 1.1196478193051722E-03 1.1389440824098257E-03 + 1.1585718799526437E-03 1.1785368867285135E-03 1.1988448740435972E-03 + 1.2195017113360205E-03 1.2405133678230569E-03 1.2618859141752376E-03 + 1.2836255242177600E-03 1.3057384766596558E-03 1.3282311568511016E-03 + 1.3511100585693562E-03 1.3743817858336946E-03 1.3980530547498327E-03 + 1.4221306953842647E-03 1.4466216536689544E-03 1.4715329933368826E-03 + 1.4968718978888523E-03 1.5226456725920766E-03 1.5488617465109682E-03 + 1.5755276745706849E-03 1.6026511396538326E-03 1.6302399547308795E-03 + 1.6583020650247464E-03 1.6868455502101012E-03 1.7158786266478357E-03 + 1.7454096496552678E-03 1.7754471158125569E-03 1.8059996653059119E-03 + 1.8370760843080523E-03 1.8686853073965227E-03 1.9008364200103543E-03 + 1.9335386609456709E-03 1.9668014248907469E-03 2.0006342650011021E-03 + 2.0350468955151945E-03 2.0700491944112705E-03 2.1056512061059817E-03 + 2.1418631441952971E-03 2.1786953942383469E-03 2.2161585165847413E-03 + 2.2542632492460316E-03 2.2930205108118271E-03 2.3324414034112504E-03 + 2.3725372157202842E-03 2.4133194260156877E-03 2.4547997052760408E-03 + 2.4969899203305880E-03 2.5399021370564700E-03 2.5835486236250407E-03 + 2.6279418537978405E-03 2.6730945102728999E-03 2.7190194880820106E-03 + 2.7657298980396498E-03 2.8132390702441446E-03 2.8615605576317767E-03 + 2.9107081395844990E-03 2.9606958255918572E-03 3.0115378589678915E-03 + 3.0632487206235666E-03 3.1158431328954868E-03 3.1693360634314884E-03 + 3.2237427291338934E-03 3.2790786001609638E-03 3.3353594039873258E-03 + 3.3926011295239773E-03 3.4508200312986237E-03 3.5100326336969276E-03 + 3.5702557352654111E-03 3.6315064130766120E-03 3.6938020271572924E-03 + 3.7571602249801854E-03 3.8215989460201093E-03 3.8871364263749690E-03 + 3.9537912034524605E-03 4.0215821207229517E-03 4.0905283325393211E-03 + 4.1606493090243397E-03 4.2319648410262299E-03 4.3044950451430510E-03 + 4.3782603688165200E-03 4.4532815954958617E-03 4.5295798498722981E-03 + 4.6071766031848147E-03 4.6860936785977159E-03 4.7663532566505707E-03 + 4.8479778807810773E-03 4.9309904629214812E-03 5.0154142891689268E-03 + 5.1012730255303868E-03 5.1885907237425371E-03 5.2773918271672299E-03 + 5.3677011767628048E-03 5.4595440171318526E-03 5.5529460026457018E-03 + 5.6479332036461953E-03 5.7445321127249068E-03 5.8427696510803062E-03 + 5.9426731749531066E-03 6.0442704821400363E-03 6.1475898185864575E-03 + 6.2526598850578133E-03 6.3595098438902495E-03 6.4681693258204576E-03 + 6.5786684368950091E-03 6.6910377654589908E-03 6.8053083892242097E-03 + 6.9215118824167464E-03 7.0396803230040050E-03 7.1598463000009218E-03 + 7.2820429208552851E-03 7.4063038189119039E-03 7.5326631609554271E-03 + 7.6611556548312962E-03 7.7918165571446100E-03 7.9246816810362736E-03 + 8.0597874040360638E-03 8.1971706759918390E-03 8.3368690270742719E-03 + 8.4789205758564034E-03 8.6233640374669667E-03 8.7702387318169036E-03 + 8.9195845918976276E-03 9.0714421721502722E-03 9.2258526569044021E-03 + 9.3828578688852481E-03 9.5425002777876303E-03 9.7048230089153351E-03 + 9.8698698518840909E-03 1.0037685269386641E-02 1.0208314406017683E-02 + 1.0381803097156911E-02 1.0558197877907790E-02 1.0737545992090062E-02 + 1.0919895401283143E-02 1.1105294793918117E-02 1.1293793594415319E-02 + 1.1485441972364920E-02 1.1680290851746943E-02 1.1878391920187827E-02 + 1.2079797638249854E-02 1.2284561248749784E-02 1.2492736786103012E-02 + 1.2704379085688885E-02 1.2919543793233129E-02 1.3138287374202636E-02 + 1.3360667123208199E-02 1.3586741173409737E-02 1.3816568505919216E-02 + 1.4050208959195270E-02 1.4287723238424272E-02 1.4529172924881369E-02 + 1.4774620485265209E-02 1.5024129280999696E-02 1.5277763577496080E-02 + 1.5535588553367518E-02 1.5797670309588889E-02 1.6064075878593632E-02 + 1.6334873233299484E-02 1.6610131296054060E-02 1.6889919947491373E-02 + 1.7174310035289676E-02 1.7463373382820578E-02 1.7757182797679332E-02 + 1.8055812080085075E-02 1.8359336031139983E-02 1.8667830460935335E-02 + 1.8981372196492600E-02 1.9300039089526207E-02 1.9623910024015118E-02 + 1.9953064923568863E-02 2.0287584758574329E-02 2.0627551553107307E-02 + 2.0973048391593998E-02 2.1324159425205370E-02 2.1680969877968508E-02 + 2.2043566052576239E-02 2.2412035335877406E-02 2.2786466204028469E-02 + 2.3166948227287182E-02 2.3553572074426987E-02 2.3946429516751515E-02 + 2.4345613431686907E-02 2.4751217805928597E-02 2.5163337738119514E-02 + 2.5582069441034107E-02 2.6007510243243187E-02 2.6439758590232443E-02 + 2.6878914044947858E-02 2.7325077287738388E-02 2.7778350115667198E-02 + 2.8238835441159897E-02 2.8706637289959053E-02 2.9181860798350785E-02 + 2.9664612209630261E-02 3.0154998869770057E-02 3.0653129222255666E-02 + 3.1159112802049336E-02 3.1673060228643656E-02 3.2195083198164089E-02 + 3.2725294474478958E-02 3.3263807879272966E-02 3.3810738281039601E-02 + 3.4366201582946565E-02 3.4930314709525345E-02 3.5503195592136834E-02 + 3.6084963153160503E-02 3.6675737288855204E-02 3.7275638850836651E-02 + 3.7884789626115904E-02 3.8503312315639936E-02 3.9131330511274931E-02 + 3.9768968671170149E-02 4.0416352093439217E-02 4.1073606888091974E-02 + 4.1740859947150093E-02 4.2418238912875758E-02 4.3105872144042455E-02 + 4.3803888680172265E-02 4.4512418203664493E-02 4.5231590999735928E-02 + 4.5961537914092986E-02 4.6702390308250803E-02 4.7454280012414966E-02 + 4.8217339275836331E-02 4.8991700714550002E-02 4.9777497256403097E-02 + 5.0574862083277154E-02 5.1383928570406086E-02 5.2204830222688299E-02 + 5.3037700607890634E-02 5.3882673286635291E-02 5.4739881739062947E-02 + 5.5609459288058181E-02 5.6491539018923786E-02 5.7386253695385102E-02 + 5.8293735671804958E-02 5.9214116801484508E-02 6.0147528340925654E-02 + 6.1094100849923623E-02 6.2053964087359546E-02 6.3027246902556386E-02 + 6.4014077122062904E-02 6.5014581431721771E-02 6.6028885253881037E-02 + 6.7057112619600734E-02 6.8099386035707338E-02 6.9155826346542354E-02 + 7.0226552590251817E-02 7.1311681849459241E-02 7.2411329096161922E-02 + 7.3525607030689888E-02 7.4654625914561443E-02 7.5798493397070010E-02 + 7.6957314335432334E-02 7.8131190608329709E-02 7.9320220922667051E-02 + 8.0524500613378194E-02 8.1744121436100117E-02 8.2979171352542666E-02 + 8.4229734308372814E-02 8.5495890003438241E-02 8.6777713654150226E-02 + 8.8075275747849721E-02 8.9388641788976209E-02 9.0717872036863975E-02 + 9.2063021234988204E-02 9.3424138331490200E-02 9.4801266190802910E-02 + 9.6194441296214211E-02 9.7603693443198358E-02 9.9029045423349948E-02 + 1.0047051269877073E-01 1.0192810306674577E-01 1.0340181631457196E-01 + 1.0489164386439380E-01 1.0639756840791290E-01 1.0791956353085227E-01 + 1.0945759332705932E-01 1.1101161200214121E-01 1.1258156346654903E-01 + 1.1416738091802353E-01 1.1576898641334732E-01 1.1738629042935210E-01 + 1.1901919141314876E-01 1.2066757532157463E-01 1.2233131514986514E-01 + 1.2401027044957887E-01 1.2570428683584087E-01 1.2741319548397839E-01 + 1.2913681261566864E-01 1.3087493897473990E-01 1.3262735929279734E-01 + 1.3439384174489682E-01 1.3617413739550660E-01 1.3796797963505936E-01 + 1.3977508360743013E-01 1.4159514562872011E-01 1.4342784259779381E-01 + 1.4527283139905581E-01 1.4712974829801556E-01 1.4899820833026339E-01 + 1.5087780468452675E-01 1.5276810808056754E-01 1.5466866614274566E-01 + 1.5657900277015246E-01 1.5849861750431518E-01 1.6042698489555482E-01 + 1.6236355386917420E-01 1.6430774709277071E-01 1.6625896034605311E-01 + 1.6821656189468034E-01 1.7017989186974530E-01 1.7214826165465585E-01 + 1.7412095328131411E-01 1.7609721883761376E-01 1.7807627988844987E-01 + 1.8005732691257553E-01 1.8203951875780844E-01 1.8402198211727389E-01 + 1.8600381102954058E-01 1.8798406640569973E-01 1.8996177558664656E-01 + 1.9193593193401370E-01 1.9390549445844274E-01 1.9586938748909424E-01 + 1.9782650038853178E-01 1.9977568731737042E-01 2.0171576705332375E-01 + 2.0364552286954626E-01 2.0556370247744973E-01 2.0746901803943324E-01 + 2.0936014625727392E-01 2.1123572854220571E-01 2.1309437127301439E-01 + 2.1493464614879931E-01 2.1675509064334084E-01 2.1855420856834920E-01 + 2.2033047075317802E-01 2.2208231584889773E-01 2.2380815126496026E-01 + 2.2550635424698187E-01 2.2717527310448449E-01 2.2881322859774506E-01 + 2.3041851549316983E-01 2.3198940429690329E-01 2.3352414317661815E-01 + 2.3502096008166268E-01 2.3647806507194336E-01 2.3789365286607669E-01 + 2.3926590561945604E-01 2.4059299594295872E-01 2.4187309017300768E-01 + 2.4310435190365409E-01 2.4428494579119295E-01 2.4541304164159089E-01 + 2.4648681879066817E-01 2.4750447078650223E-01 2.4846421038293173E-01 + 2.4936427485227247E-01 2.5020293162442192E-01 2.5097848425839953E-01 + 2.5168927875099728E-01 2.5233371018560291E-01 2.5291022972235633E-01 + 2.5341735192856502E-01 2.5385366244573115E-01 2.5421782598654552E-01 + 2.5450859465177056E-01 2.5472481655299423E-01 2.5486544472273925E-01 + 2.5492954628828546E-01 2.5491631187975500E-01 2.5482506523641962E-01 + 2.5465527296775070E-01 2.5440655441734422E-01 2.5407869156840784E-01 + 2.5367163891889161E-01 2.5318553324244508E-01 2.5262070313805063E-01 + 2.5197767825627931E-01 2.5125719807346092E-01 2.5046022006646973E-01 + 2.4958792712011954E-01 2.4864173397609185E-01 2.4762329250666343E-01 + 2.4653449556798115E-01 2.4537747915596037E-01 2.4415462255274148E-01 + 2.4286854611267725E-01 2.4152210629363996E-01 2.4011838749163558E-01 + 2.3866069018381042E-01 2.3715251482641320E-01 2.3559754088962540E-01 + 2.3399960033970515E-01 2.3236264480002103E-01 2.3069070553548487E-01 + 2.2898784530884383E-01 2.2725810105141489E-01 2.2550541617410072E-01 + 2.2373356121595503E-01 2.2194604138593307E-01 2.2014598939754618E-01 + 2.1833604182455935E-01 2.1651819700318517E-01 2.1469369430819946E-01 + 2.1286331753160997E-01 2.1102779482414674E-01 2.0918783710830166E-01 + 2.0734413790274603E-01 2.0549737318917397E-01 2.0364820132378963E-01 + 2.0179726299533376E-01 1.9994518123116525E-01 1.9809256145250906E-01 + 1.9623999157949593E-01 1.9438804218611561E-01 1.9253726670464608E-01 + 1.9068820167850437E-01 1.8884136706183180E-01 1.8699726656341048E-01 + 1.8515638803176931E-01 1.8331920387753969E-01 1.8148617152824673E-01 + 1.7965773390981879E-01 1.7783431994811749E-01 1.7601634508274377E-01 + 1.7420421178431297E-01 1.7239831006525741E-01 1.7059901797310675E-01 + 1.6880670205410703E-01 1.6702171777402991E-01 1.6524440988218669E-01 + 1.6347511270405732E-01 1.6171415034768169E-01 1.5996183680918580E-01 + 1.5821847596360405E-01 1.5648436142869715E-01 1.5475977629183638E-01 + 1.5304499269332350E-01 1.5134027126383590E-01 1.4964586041895975E-01 + 1.4796199551997946E-01 1.4628889791700425E-01 1.4462677389785658E-01 + 1.4297581357354530E-01 1.4133618973808282E-01 1.3970805674632128E-01 + 1.3809154945781760E-01 1.3648678229687652E-01 1.3489384847846039E-01 + 1.3331281944625878E-01 1.3174374456282206E-01 1.3018665108250113E-01 + 1.2864154442646358E-01 1.2710840876601606E-01 1.2558720790680489E-01 + 1.2407788645317022E-01 1.2258037122004048E-01 1.2109457285010314E-01 + 1.1962038758720930E-01 1.1815769915342628E-01 1.1670638067681206E-01 + 1.1526629661962935E-01 1.1383730466179877E-01 1.1241925750127163E-01 + 1.1101200454097027E-01 1.0961539344029800E-01 1.0822927151734853E-01 + 1.0685348699540041E-01 1.0548789009369265E-01 1.0413233396770770E-01 + 1.0278667550814943E-01 1.0145077601055322E-01 1.0012450172912957E-01 + 9.8807724329169885E-02 9.7500321252309258E-02 9.6202176008349030E-02 + 9.4913178406315288E-02 9.3633224736156331E-02 9.2362217911046277E-02 + 9.1100067578767777E-02 8.9846690209179278E-02 8.8602009163344958E-02 + 8.7365954748591490E-02 8.6138464262543984E-02 8.4919482028103010E-02 + 8.3708959420367671E-02 8.2506854885669653E-02 8.1313133952161637E-02 + 8.0127769230806958E-02 7.8950740405116127E-02 7.7782034207595135E-02 + 7.6621644380584178E-02 7.5469571618977799E-02 7.4325823492235460E-02 + 7.3190414343100543E-02 7.2063365160545428E-02 7.0944703424664302E-02 + 6.9834462921509272E-02 6.8732683526236890E-02 6.7639410953369214E-02 + 6.6554696473472896E-02 6.5478596596120306E-02 6.4411172719581036E-02 + 6.3352490748308649E-02 6.2302620679902630E-02 6.1261636163821583E-02 + 6.0229614034695268E-02 5.9206633823599183E-02 5.8192777251099496E-02 + 5.7188127706262332E-02 5.6192769716146729E-02 5.5206788409363182E-02 + 5.4230268982835728E-02 5.3263296168629091E-02 5.2305953712909858E-02 + 5.1358323867425879E-02 5.0420486899443770E-02 4.9492520623116917E-02 + 4.8574499955532209E-02 4.7666496501726330E-02 4.6768578169653387E-02 + 4.5880808818231186E-02 4.5003247940013966E-02 4.4135950378897212E-02 + 4.3278966084208607E-02 4.2432339901162366E-02 4.1596111397545404E-02 + 4.0770314726102978E-02 3.9954978521763128E-02 3.9150125832547046E-02 + 3.8355774082767774E-02 3.7571935066905718E-02 3.6798614972381426E-02 + 3.6035814429310732E-02 3.5283528585226209E-02 3.4541747202681043E-02 + 3.3810454777611784E-02 3.3089630676319572E-02 3.2379249288940821E-02 + 3.1679280197303282E-02 3.0989688355110252E-02 3.0310434278455426E-02 + 2.9641474244740264E-02 2.8982760498150840E-02 2.8334241459937175E-02 + 2.7695861941836011E-02 2.7067563361078423E-02 2.6449283955525725E-02 + 2.5840958997584790E-02 2.5242521005660573E-02 2.4653899952009437E-02 + 2.4075023465966010E-02 2.3505817031619480E-02 2.2946204179120508E-02 + 2.2396106668901575E-02 2.1855444668191743E-02 2.1324136919303727E-02 + 2.0802100899264750E-02 2.0289252970450235E-02 1.9785508521967789E-02 + 1.9290782101618626E-02 1.8804987538342782E-02 1.8328038055128067E-02 + 1.7859846372430772E-02 1.7400324802222700E-02 1.6949385332837286E-02 + 1.6506939704843945E-02 1.6072899478230318E-02 1.5647176091216509E-02 + 1.5229680911066946E-02 1.4820325277300843E-02 1.4419020537731812E-02 + 1.4025678077794149E-02 1.3640209343632446E-02 1.3262525859447769E-02 + 1.2892539239604610E-02 1.2530161196008509E-02 1.2175303541267101E-02 + 1.1827878188144873E-02 1.1487797145815310E-02 1.1154972513405277E-02 + 1.0829316471312193E-02 1.0510741270758985E-02 1.0199159222032704E-02 + 9.8944826818304545E-03 9.5966240401137940E-03 9.3054957068462989E-03 + 9.0210100989629016E-03 8.7430796278917446E-03 8.4716166879200833E-03 + 8.2065336456674191E-03 7.9477428308996883E-03 7.6951565288887885E-03 + 7.4486869744940206E-03 7.2082463481130260E-03 6.9737467736233124E-03 + 6.7451003184091111E-03 6.5222189955431156E-03 6.3050147681692386E-03 + 6.0933995561102960E-03 5.8872852447033287E-03 5.6865836958467026E-03 + 5.4912067612248152E-03 5.3010662976606185E-03 5.1160741845316738E-03 + 4.9361423431721844E-03 4.7611827581727070E-03 4.5911075004787241E-03 + 4.4258287521812710E-03 4.2652588328855922E-03 4.1093102275378702E-03 + 3.9578956155856132E-03 3.8109279013439274E-03 3.6683202454371477E-03 + 3.5299860971842963E-03 3.3958392277958923E-03 3.2657937642500776E-03 + 3.1397642237170468E-03 3.0176655484021727E-03 2.8994131406806069E-03 + 2.7849228983989056E-03 2.6741112502221562E-03 2.5668951909090291E-03 + 2.4631923164007822E-03 2.3629208586147051E-03 2.2659997198369287E-03 + 2.1723485066141653E-03 2.0818875630488972E-03 1.9945380034076519E-03 + 1.9102217439569188E-03 1.8288615339467954E-03 1.7503809856675135E-03 + 1.6747046035094743E-03 1.6017578119627855E-03 1.5314669824975351E-03 + 1.4637594592715618E-03 1.3985635836176148E-03 1.3358087172671567E-03 + 1.2754252642732443E-03 1.2173446915999624E-03 1.1614995483509574E-03 + 1.1078234836145399E-03 1.0562512629075226E-03 1.0067187832047458E-03 + 9.5916308654564887E-04 9.1352237221368690E-04 8.6973600748861430E-04 + 8.2774453697564954E-04 7.8748969051947574E-04 7.4891438971473243E-04 + 7.1196275302811644E-04 6.7658009955064299E-04 6.4271295140166040E-04 + 6.1030903480923542E-04 5.7931727989426302E-04 5.4968781918817930E-04 + 5.2137198491658044E-04 4.9432230508315270E-04 4.6849249839033100E-04 + 4.4383746803487007E-04 4.2031329441808037E-04 3.9787722681189559E-04 + 3.7648767402315755E-04 3.5610419409950491E-04 3.3668748312115567E-04 + 3.1819936312351961E-04 3.0060276919612570E-04 2.8386173580371505E-04 + 2.6794138237554610E-04 2.5280789820904590E-04 2.3842852673386979E-04 + 2.2477154918221313E-04 2.1180626771092224E-04 1.9950298802048208E-04 + 1.8783300151542224E-04 1.7676856705002770E-04 1.6628289230247859E-04 + 1.5635011481972453E-04 1.4694528277446215E-04 1.3804433547460478E-04 + 1.2962408366457188E-04 1.2166218965660245E-04 1.1413714732912927E-04 + 1.0702826202803486E-04 1.0031563040534186E-04 9.3980120228608337E-05 + 8.8003350192967470E-05 8.2367669766411527E-05 7.7056139097557842E-05 + 7.2052509013755456E-05 6.7341201136013380E-05 6.2907288135845993E-05 + 5.8736474157743188E-05 5.4815075429601546E-05 5.1130001082078329E-05 + 4.7668734196477748E-05 4.4419313099441037E-05 4.1370312921387328E-05 + 3.8510827434361996E-05 3.5830451183670754E-05 3.3319261926436402E-05 + 3.0967803388999441E-05 2.8767068353897864E-05 2.6708482086012121E-05 + 2.4783886106345302E-05 2.2985522320825620E-05 2.1306017510478137E-05 + 1.9738368188304118E-05 1.8275925827241247E-05 1.6912382462650048E-05 + 1.5641756671882837E-05 1.4458379932644305E-05 1.3356883361044935E-05 + 1.2332184829479160E-05 1.1379476463733777E-05 1.0494212518042267E-05 + 9.6720976261524098E-06 8.9090754258645039E-06 8.2013175539249195E-06 + 7.5452130076268523E-06 6.9373578689720210E-06 6.3745453867872254E-06 + 5.8537564117641967E-06 5.3721501790004098E-06 4.9270554322619101E-06 + 4.5159618838650751E-06 4.1365120037810564E-06 3.7864931313060536E-06 + 3.4638299024069320E-06 3.1665769856491124E-06 2.8929121194369194E-06 + 2.6411294431464412E-06 2.4096331146066126E-06 2.1969312062832249E-06 + 2.0016298724427598E-06 1.8224277795172165E-06 1.6581107918555714E-06 + 1.5075469050320015E-06 1.3696814188837632E-06 1.2435323424719033E-06 + 1.1281860231943399E-06 1.0227929923311049E-06 9.2656401937892694E-07 + 8.3876636760628002E-07 7.5872024318204399E-07 6.8579543058678282E-07 + 6.1940811204851661E-07 5.5901782602370383E-07 5.0412456517780591E-07 + 4.5426707640995498E-07 4.0901642790699912E-07 3.6798170269945251E-07 + 3.3079758388052420E-07 2.9713142951728229E-07 2.6667475920645824E-07 + 2.3914381713274598E-07 2.1427779708414937E-07 1.9183717798129787E-07 + 1.7160216428956368E-07 1.5337122589518658E-07 1.3695973222637576E-07 + 1.2219867559775793E-07 1.0893347895103410E-07 9.7022883356153896E-08 + 8.6337910825465258E-08 7.6760898177970340E-08 6.8184597871852566E-08 + 6.0511341900655332E-08 5.3652265021741276E-08 4.7526583754825128E-08 + 4.2060927753305458E-08 3.7188720311738075E-08 3.2849604928991358E-08 + 2.8988914998323575E-08 2.5557183842767416E-08 2.2509692456741201E-08 + 1.9806052452690666E-08 1.7409821844786425E-08 1.5288151430235516E-08 + 1.3411459652624568E-08 1.1753133950903243E-08 1.0289256712165378E-08 + 8.9983540563316442E-09 7.8611657862208369E-09 6.8604349373782318E-09 + 5.9807154584706366E-09 5.2081966451316699E-09 4.5305430379299121E-09 + 3.9367485787232107E-09 3.4170038991491212E-09 2.9625756904854904E-09 + 2.5656971757000482E-09 2.2194687723048851E-09 1.9177680987535702E-09 + 1.6551685376824483E-09 1.4268656264231110E-09 1.2286105990214748E-09 + 1.0566504546132090E-09 9.0767397455004524E-10 7.7876315527035437E-10 + 6.6734956568549750E-10 5.7117517693420056E-10 4.8825724886374064E-10 + 4.1685689165078966E-10 3.5545095269620642E-10 3.0270690843485136E-10 + 2.5746046810788275E-10 2.1869562197438987E-10 1.8552688997245231E-10 + 1.5718354856875326E-10 1.3299563403156382E-10 1.1238153793083500E-10 + 9.4837027029036342E-11 7.9925550147502878E-11 6.7269660210168268E-11 + 5.6543424617491211E-11 4.7466103453123896E-11 3.9795620650431780E-11 + 3.3322958021284323E-11 2.7873541753497311E-11 2.3284491140758708E-11 + 1.9422446791226838E-11 1.6177010365145035E-11 1.3453776710436607E-11 + + + -2.7827043300906362E-15 -1.4431201002846393E-10 -5.8220264398354972E-10 + -1.3212155069013771E-09 -2.3690453298185458E-09 -3.7335407524764676E-09 + -5.4227071554630028E-09 -7.4447095426548553E-09 -9.8078754748401230E-09 + -1.2520698055414689E-08 -1.5591838969061953E-08 -1.9030131574342136E-08 + -2.2844584051130949E-08 -2.7044382603866861E-08 -3.1638894721580693E-08 + -3.6637672495698677E-08 -4.2050455996626786E-08 -4.7887176710143682E-08 + -5.4157961034644056E-08 -6.0873133840295910E-08 -6.8043222091189629E-08 + -7.5678958531580201E-08 -8.3791285437337498E-08 -9.2391358433745678E-08 + -1.0149055038080318E-07 -1.1110045532720649E-07 -1.2123289253420895E-07 + -1.3189991057057746E-07 -1.4311379147988308E-07 -1.5488705502138784E-07 + -1.6723246298580863E-07 -1.8016302358726375E-07 -1.9369199593273049E-07 + -2.0783289457035947E-07 -2.2259949411802669E-07 -2.3800583397351063E-07 + -2.5406622310772809E-07 -2.7079524494245991E-07 -2.8820776231405419E-07 + -3.0631892252458991E-07 -3.2514416248202847E-07 -3.4469921393090780E-07 + -3.6500010877514211E-07 -3.8606318449453988E-07 -4.0790508965666963E-07 + -4.3054278952572809E-07 -4.5399357177009889E-07 -4.7827505227032640E-07 + -5.0340518102923753E-07 -5.2940224818599802E-07 -5.5628489013591047E-07 + -5.8407209575778632E-07 -6.1278321275076698E-07 -6.4243795408249510E-07 + -6.7305640455057131E-07 -7.0465902745927199E-07 -7.3726667141351474E-07 + -7.7090057723212967E-07 -8.0558238498249417E-07 -8.4133414113864581E-07 + -8.7817830586502232E-07 -9.1613776042800318E-07 -9.5523581473747377E-07 + -9.9549621502068430E-07 -1.0369431516306754E-06 -1.0796012669916360E-06 + -1.1234956636835445E-06 -1.1686519126685396E-06 -1.2150960616614468E-06 + -1.2628546436470081E-06 -1.3119546855463068E-06 -1.3624237170350373E-06 + -1.4142897795161976E-06 -1.4675814352499311E-06 -1.5223277766432173E-06 + -1.5785584357021919E-06 -1.6363035936499243E-06 -1.6955939907125194E-06 + -1.7564609360764521E-06 -1.8189363180201345E-06 -1.8830526142227024E-06 + -1.9488429022531246E-06 -2.0163408702427379E-06 -2.0855808277444107E-06 + -2.1565977167815615E-06 -2.2294271230903213E-06 -2.3041052875581925E-06 + -2.3806691178626086E-06 -2.4591562003128741E-06 -2.5396048118989815E-06 + -2.6220539325509306E-06 -2.7065432576121494E-06 -2.7931132105307850E-06 + -2.8818049557725855E-06 -2.9726604119592576E-06 -3.0657222652361646E-06 + -3.1610339828733953E-06 -3.2586398271041742E-06 -3.3585848692048020E-06 + -3.4609150038202494E-06 -3.5656769635396709E-06 -3.6729183337262400E-06 + -3.7826875676055732E-06 -3.8950340016173676E-06 -4.0100078710346835E-06 + -4.1276603258556340E-06 -4.2480434469720619E-06 -4.3712102626201153E-06 + -4.4972147651175614E-06 -4.6261119278927611E-06 -4.7579577228104197E-06 + -4.8928091377992429E-06 -5.0307241947866550E-06 -5.1717619679459943E-06 + -5.3159826022615221E-06 -5.4634473324167650E-06 -5.6142185020118161E-06 + -5.7683595831152517E-06 -5.9259351961564424E-06 -6.0870111301642158E-06 + -6.2516543633578091E-06 -6.4199330840961860E-06 -6.5919167121920122E-06 + -6.7676759205964674E-06 -6.9472826574614589E-06 -7.1308101685856437E-06 + -7.3183330202509028E-06 -7.5099271224561685E-06 -7.7056697525552751E-06 + -7.9056395793059744E-06 -8.1099166873371252E-06 -8.3185826020413484E-06 + -8.5317203149005576E-06 -8.7494143092516625E-06 -8.9717505865002690E-06 + -9.1988166927900225E-06 -9.4307017461354469E-06 -9.6674964640263657E-06 + -9.9092931915119972E-06 -1.0156185929773050E-05 -1.0408270365190266E-05 + -1.0665643898917955E-05 -1.0928405676971248E-05 -1.1196656620836023E-05 + -1.1470499458610433E-05 -1.1750038756687336E-05 -1.2035380951986847E-05 + -1.2326634384748631E-05 -1.2623909331893600E-05 -1.2927318040964717E-05 + -1.3236974764657149E-05 -1.3552995795947728E-05 -1.3875499503834238E-05 + -1.4204606369694929E-05 -1.4540439024279121E-05 -1.4883122285339654E-05 + -1.5232783195918420E-05 -1.5589551063296102E-05 -1.5953557498617703E-05 + -1.6324936457205595E-05 -1.6703824279571728E-05 -1.7090359733141368E-05 + -1.7484684054700424E-05 -1.7886940993578987E-05 -1.8297276855583819E-05 + -1.8715840547692531E-05 -1.9142783623522910E-05 -1.9578260329590446E-05 + -2.0022427652368063E-05 -2.0475445366161417E-05 -2.0937476081814321E-05 + -2.1408685296258324E-05 -2.1889241442921198E-05 -2.2379315943008962E-05 + -2.2879083257676736E-05 -2.3388720941103684E-05 -2.3908409694487634E-05 + -2.4438333420975171E-05 -2.4978679281543717E-05 -2.5529637751851450E-05 + -2.6091402680072282E-05 -2.6664171345732729E-05 -2.7248144519567677E-05 + -2.7843526524413395E-05 -2.8450525297154540E-05 -2.9069352451744699E-05 + -2.9700223343317700E-05 -3.0343357133409550E-05 -3.0998976856309510E-05 + -3.1667309486560030E-05 -3.2348586007625620E-05 -3.3043041481750057E-05 + -3.3750915121023536E-05 -3.4472450359679641E-05 -3.5207894927643883E-05 + -3.5957500925355403E-05 -3.6721524899883551E-05 -3.7500227922361821E-05 + -3.8293875666762064E-05 -3.9102738490031570E-05 -3.9927091513617362E-05 + -4.0767214706400551E-05 -4.1623392969066194E-05 -4.2495916219932672E-05 + -4.3385079482265928E-05 -4.4291182973104394E-05 -4.5214532193620435E-05 + -4.6155438021044756E-05 -4.7114216802181334E-05 -4.8091190448539234E-05 + -4.9086686533110212E-05 -5.0101038388819948E-05 -5.1134585208681931E-05 + -5.2187672147683412E-05 -5.3260650426433018E-05 -5.4353877436600834E-05 + -5.5467716848181600E-05 -5.6602538718612354E-05 -5.7758719603776901E-05 + -5.8936642670929196E-05 -6.0136697813569028E-05 -6.1359281768303453E-05 + -6.2604798233728640E-05 -6.3873657991366352E-05 -6.5166279028690730E-05 + -6.6483086664281945E-05 -6.7824513675142535E-05 -6.9191000426214235E-05 + -7.0582995002132901E-05 -7.2000953341260944E-05 -7.3445339372035139E-05 + -7.4916625151670989E-05 -7.6415291007263770E-05 -7.7941825679327296E-05 + -7.9496726467812975E-05 -8.1080499380651715E-05 -8.2693659284861556E-05 + -8.4336730060266906E-05 -8.6010244755871655E-05 -8.7714745748935512E-05 + -8.9450784906796208E-05 -9.1218923751488720E-05 -9.3019733627206115E-05 + -9.4853795870654503E-05 -9.6721701984348591E-05 -9.8624053812901410E-05 + -1.0056146372235803E-04 -1.0253455478262600E-04 -1.0454396095305658E-04 + -1.0659032727123067E-04 -1.0867431004500385E-04 -1.1079657704786866E-04 + -1.1295780771768876E-04 -1.1515869335886530E-04 -1.1739993734799330E-04 + -1.1968225534306911E-04 -1.2200637549630840E-04 -1.2437303867063947E-04 + -1.2678299865993362E-04 -1.2923702241303577E-04 -1.3173589026166461E-04 + -1.3428039615224392E-04 -1.3687134788173833E-04 -1.3950956733755628E-04 + -1.4219589074159693E-04 -1.4493116889850605E-04 -1.4771626744821908E-04 + -1.5055206712285998E-04 -1.5343946400807603E-04 -1.5637936980887965E-04 + -1.5937271212008072E-04 -1.6242043470138167E-04 -1.6552349775722416E-04 + -1.6868287822145896E-04 -1.7189957004693231E-04 -1.7517458450006556E-04 + -1.7850895046051969E-04 -1.8190371472602616E-04 -1.8535994232248153E-04 + -1.8887871681938807E-04 -1.9246114065073715E-04 -1.9610833544142815E-04 + -1.9982144233931837E-04 -2.0360162235300052E-04 -2.0745005669540580E-04 + -2.1136794713333520E-04 -2.1535651634301743E-04 -2.1941700827180253E-04 + -2.2355068850608926E-04 -2.2775884464560340E-04 -2.3204278668412543E-04 + -2.3640384739678904E-04 -2.4084338273405444E-04 -2.4536277222248003E-04 + -2.4996341937240027E-04 -2.5464675209263858E-04 -2.5941422311236682E-04 + -2.6426731041024178E-04 -2.6920751765093973E-04 -2.7423637462921911E-04 + -2.7935543772163786E-04 -2.8456629034605936E-04 -2.8987054342908148E-04 + -2.9526983588152331E-04 -3.0076583508211011E-04 -3.0636023736949509E-04 + -3.1205476854276554E-04 -3.1785118437057405E-04 -3.2375127110904922E-04 + -3.2975684602863019E-04 -3.3586975794998780E-04 -3.4209188778917642E-04 + -3.4842514911218893E-04 -3.5487148869906379E-04 -3.6143288711772093E-04 + -3.6811135930768128E-04 -3.7490895517385323E-04 -3.8182776019054490E-04 + -3.8886989601589626E-04 -3.9603752111688452E-04 -4.0333283140511761E-04 + -4.1075806088357271E-04 -4.1831548230447982E-04 -4.2600740783854880E-04 + -4.3383618975571889E-04 -4.4180422111764661E-04 -4.4991393648211833E-04 + -4.5816781261960560E-04 -4.6656836924216012E-04 -4.7511816974487540E-04 + -4.8381982196011306E-04 -4.9267597892473287E-04 -5.0168933966052945E-04 + -5.1086264996812690E-04 -5.2019870323453770E-04 -5.2970034125464122E-04 + -5.3937045506680852E-04 -5.4921198580292407E-04 -5.5922792555304981E-04 + -5.6942131824497786E-04 -5.7979526053893984E-04 -5.9035290273772294E-04 + -6.0109744971246039E-04 -6.1203216184437198E-04 -6.2316035598271714E-04 + -6.3448540641925151E-04 -6.4601074587946543E-04 -6.5773986653088574E-04 + -6.6967632100875475E-04 -6.8182372345935798E-04 -6.9418575060132854E-04 + -7.0676614280521985E-04 -7.1956870519167694E-04 -7.3259730874850200E-04 + -7.4585589146697350E-04 -7.5934845949771090E-04 -7.7307908832645854E-04 + -7.8705192397009671E-04 -8.0127118419325580E-04 -8.1574115974587390E-04 + -8.3046621562205404E-04 -8.4545079234059795E-04 -8.6069940724758682E-04 + -8.7621665584137760E-04 -8.9200721312041433E-04 -9.0807583495423818E-04 + -9.2442735947809195E-04 -9.4106670851154203E-04 -9.5799888900149953E-04 + -9.7522899449009940E-04 -9.9276220660782146E-04 -1.0106037965923302E-03 + -1.0287591268334352E-03 -1.0472336524446589E-03 -1.0660329228618301E-03 + -1.0851625834692070E-03 -1.1046283772535651E-03 -1.1244361464867643E-03 + -1.1445918344372542E-03 -1.1651014871110459E-03 -1.1859712550226155E-03 + -1.2072073949963068E-03 -1.2288162719986994E-03 -1.2508043610025292E-03 + -1.2731782488826502E-03 -1.2959446363446348E-03 -1.3191103398865417E-03 + -1.3426822937944313E-03 -1.3666675521722188E-03 -1.3910732910064263E-03 + -1.4159068102664720E-03 -1.4411755360410642E-03 -1.4668870227113626E-03 + -1.4930489551614929E-03 -1.5196691510271051E-03 -1.5467555629825871E-03 + -1.5743162810676122E-03 -1.6023595350537047E-03 -1.6308936968515073E-03 + -1.6599272829594151E-03 -1.6894689569543597E-03 -1.7195275320253723E-03 + -1.7501119735507603E-03 -1.7812314017195440E-03 -1.8128950941980069E-03 + -1.8451124888420535E-03 -1.8778931864562285E-03 -1.9112469536001497E-03 + -1.9451837254431791E-03 -1.9797136086681768E-03 -2.0148468844251649E-03 + -2.0505940113357568E-03 -2.0869656285492227E-03 -2.1239725588510891E-03 + -2.1616258118251535E-03 -2.1999365870698463E-03 -2.2389162774698588E-03 + -2.2785764725240026E-03 -2.3189289617302354E-03 -2.3599857380288670E-03 + -2.4017590013049135E-03 -2.4442611619506379E-03 -2.4875048444892751E-03 + -2.5315028912610473E-03 -2.5762683661724418E-03 -2.6218145585099671E-03 + -2.6681549868193531E-03 -2.7153034028514155E-03 -2.7632737955756975E-03 + -2.8120803952629918E-03 -2.8617376776380642E-03 -2.9122603681036021E-03 + -2.9636634460367449E-03 -3.0159621491593837E-03 -3.0691719779834870E-03 + -3.1233087003327575E-03 -3.1783883559419273E-03 -3.2344272611349793E-03 + -3.2914420135837217E-03 -3.3494494971479890E-03 -3.4084668867989821E-03 + -3.4685116536270605E-03 -3.5296015699355057E-03 -3.5917547144216841E-03 + -3.6549894774471543E-03 -3.7193245663981363E-03 -3.7847790111380400E-03 + -3.8513721695534681E-03 -3.9191237331954315E-03 -3.9880537330172607E-03 + -4.0581825452110287E-03 -4.1295308971440172E-03 -4.2021198733970195E-03 + -4.2759709219062263E-03 -4.3511058602103856E-03 -4.4275468818051403E-03 + -4.5053165626062737E-03 -4.5844378675238117E-03 -4.6649341571487583E-03 + -4.7468291945545749E-03 -4.8301471522150989E-03 -4.9149126190411651E-03 + -5.0011506075377261E-03 -5.0888865610836925E-03 -5.1781463613364579E-03 + -5.2689563357633485E-03 -5.3613432653020583E-03 -5.4553343921523523E-03 + -5.5509574277012082E-03 -5.6482405605837293E-03 -5.7472124648820780E-03 + -5.8479023084648503E-03 -5.9503397614692269E-03 -6.0545550049283699E-03 + -6.1605787395464405E-03 -6.2684421946239939E-03 -6.3781771371359854E-03 + -6.4898158809652299E-03 -6.6033912962938004E-03 -6.7189368191552636E-03 + -6.8364864611501815E-03 -6.9560748193279480E-03 -7.0777370862375490E-03 + -7.2015090601503708E-03 -7.3274271554576902E-03 -7.4555284132460610E-03 + -7.5858505120534143E-03 -7.7184317788092033E-03 -7.8533111999613669E-03 + -7.9905284327936154E-03 -8.1301238169359975E-03 -8.2721383860722870E-03 + -8.4166138798472644E-03 -8.5635927559774647E-03 -8.7131182025688148E-03 + -8.8652341506444843E-03 -9.0199852868868696E-03 -9.1774170665969539E-03 + -9.3375757268749950E-03 -9.5005083000260435E-03 -9.6662626271944441E-03 + -9.8348873722308040E-03 -1.0006432035795624E-02 -1.0180946969703432E-02 + -1.0358483391511695E-02 -1.0539093399358357E-02 -1.0722829987052408E-02 + -1.0909747059421663E-02 -1.1099899447922260E-02 -1.1293342926513924E-02 + -1.1490134227805917E-02 -1.1690331059477867E-02 -1.1893992120980407E-02 + -1.2101177120520112E-02 -1.2311946792333609E-02 -1.2526362914255794E-02 + -1.2744488325586851E-02 -1.2966386945263595E-02 -1.3192123790339605E-02 + -1.3421764994779936E-02 -1.3655377828575139E-02 -1.3893030717180609E-02 + -1.4134793261285994E-02 -1.4380736256920842E-02 -1.4630931715901532E-02 + -1.4885452886625830E-02 -1.5144374275220385E-02 -1.5407771667047333E-02 + -1.5675722148575776E-02 -1.5948304129624773E-02 -1.6225597365983353E-02 + -1.6507682982414361E-02 -1.6794643496048166E-02 -1.7086562840173403E-02 + -1.7383526388430288E-02 -1.7685620979414434E-02 -1.7992934941696948E-02 + -1.8305558119268438E-02 -1.8623581897413876E-02 -1.8947099229025047E-02 + -1.9276204661358456E-02 -1.9610994363245485E-02 -1.9951566152763139E-02 + -2.0298019525372010E-02 -2.0650455682529982E-02 -2.1008977560789139E-02 + -2.1373689861384267E-02 -2.1744699080320611E-02 -2.2122113538969403E-02 + -2.2506043415179523E-02 -2.2896600774914053E-02 -2.3293899604419695E-02 + -2.3698055842938756E-02 -2.4109187415971609E-02 -2.4527414269099986E-02 + -2.4952858402378743E-02 -2.5385643905307030E-02 -2.5825896992387094E-02 + -2.6273746039281079E-02 -2.6729321619575541E-02 -2.7192756542163375E-02 + -2.7664185889253422E-02 -2.8143747055017848E-02 -2.8631579784888249E-02 + -2.9127826215510338E-02 -2.9632630915368264E-02 -3.0146140926089474E-02 + -3.0668505804441533E-02 -3.1199877665031382E-02 -3.1740411223719039E-02 + -3.2290263841756831E-02 -3.2849595570667037E-02 -3.3418569197867849E-02 + -3.3997350293062174E-02 -3.4586107255399061E-02 -3.5185011361423046E-02 + -3.5794236813821045E-02 -3.6413960790982226E-02 -3.7044363497382292E-02 + -3.7685628214805811E-02 -3.8337941354420702E-02 -3.9001492509717475E-02 + -3.9676474510327506E-02 -4.0363083476734354E-02 -4.1061518875892621E-02 + -4.1771983577768297E-02 -4.2494683912815343E-02 -4.3229829730403291E-02 + -4.3977634458211838E-02 -4.4738315162605971E-02 -4.5512092610008617E-02 + -4.6299191329285692E-02 -4.7099839675160127E-02 -4.7914269892670357E-02 + -4.8742718182689965E-02 -4.9585424768524726E-02 -5.0442633963604974E-02 + -5.1314594240288974E-02 -5.2201558299795059E-02 -5.3103783143280625E-02 + -5.4021530144084742E-02 -5.4955065121153571E-02 -5.5904658413665570E-02 + -5.6870584956875872E-02 -5.7853124359197636E-02 -5.8852560980541244E-02 + -5.9869184011927652E-02 -6.0903287556398081E-02 -6.1955170711237656E-02 + -6.3025137651535224E-02 -6.4113497715096515E-02 -6.5220565488734214E-02 + -6.6346660895953230E-02 -6.7492109286054106E-02 -6.8657241524673840E-02 + -6.9842394085787504E-02 -7.1047909145190019E-02 -7.2274134675483631E-02 + -7.3521424542589281E-02 -7.4790138603807177E-02 -7.6080642807448695E-02 + -7.7393309294061075E-02 -7.8728516499271831E-02 -8.0086649258271636E-02 + -8.1468098911963660E-02 -8.2873263414800211E-02 -8.4302547444334297E-02 + -8.5756362512507192E-02 -8.7235127078699209E-02 -8.8739266664567412E-02 + -9.0269213970697579E-02 -9.1825408995092547E-02 -9.3408299153526775E-02 + -9.5018339401789040E-02 -9.6655992359843887E-02 -9.8321728437934977E-02 + -1.0001602596465854E-01 -1.0173937131703276E-01 -1.0349225905259389E-01 + -1.0527519204354137E-01 -1.0708868161296267E-01 -1.0893324767316714E-01 + -1.1080941886615174E-01 -1.1271773270623445E-01 -1.1465873572487613E-01 + -1.1663298361772537E-01 -1.1864104139391143E-01 -1.2068348352761765E-01 + -1.2276089411196163E-01 -1.2487386701521230E-01 -1.2702300603937472E-01 + -1.2920892508117196E-01 -1.3143224829545178E-01 -1.3369361026105081E-01 + -1.3599365614914385E-01 -1.3833304189411211E-01 -1.4071243436695546E-01 + -1.4313251155128318E-01 -1.4559396272191202E-01 -1.4809748862610184E-01 + -1.5064380166745997E-01 -1.5323362609254471E-01 -1.5586769818019533E-01 + -1.5854676643362633E-01 -1.6127159177530878E-01 -1.6404294774467187E-01 + -1.6686162069865662E-01 -1.6972841001514952E-01 -1.7264412829932832E-01 + -1.7560960159294656E-01 -1.7862566958659079E-01 -1.8169318583493541E-01 + -1.8481301797503041E-01 -1.8798604794764376E-01 -1.9121317222169337E-01 + -1.9449530202179316E-01 -1.9783336355894390E-01 -2.0122829826439614E-01 + -2.0468106302670924E-01 -2.0819263043203742E-01 -2.1176398900766974E-01 + -2.1539614346884398E-01 -2.1909011496886679E-01 -2.2284694135255742E-01 + -2.2666767741304911E-01 -2.3055339515195888E-01 -2.3450518404295889E-01 + -2.3852415129876461E-01 -2.4261142214156245E-01 -2.4676814007689959E-01 + -2.5099546717104887E-01 -2.5529458433187313E-01 -2.5966669159319811E-01 + -2.6411300840272084E-01 -2.6863477391345375E-01 -2.7323324727872916E-01 + -2.7790970795076964E-01 -2.8266545598283654E-01 -2.8750181233496508E-01 + -2.9242011918329225E-01 -2.9742174023298118E-01 -3.0250806103475231E-01 + -3.0768048930501463E-01 -3.1294045524959990E-01 -3.1828941189109772E-01 + -3.2372883539978808E-01 -3.2926022542816280E-01 -3.3488510544902217E-01 + -3.4060502309714374E-01 -3.4642155051450046E-01 -3.5233628469901745E-01 + -3.5835084785684040E-01 -3.6446688775809799E-01 -3.7068607809612442E-01 + -3.7701011885012625E-01 -3.8344073665124023E-01 -3.8997968515196368E-01 + -3.9662874539890269E-01 -4.0338972620880448E-01 -4.1026446454781595E-01 + -4.1725482591392044E-01 -4.2436270472249249E-01 -4.3159002469490887E-01 + -4.3893873925015264E-01 -4.4641083189932590E-01 -4.5400831664300767E-01 + -4.6173323837136576E-01 -4.6958767326693412E-01 -4.7757372920995972E-01 + -4.8569354618622418E-01 -4.9394929669721932E-01 -5.0234318617258000E-01 + -5.1087745338463442E-01 -5.1955437086495582E-01 -5.2837624532276795E-01 + -5.3734541806507663E-01 -5.4646426541835513E-01 -5.5573519915163605E-01 + -5.6516066690082711E-01 -5.7474315259409314E-01 -5.8448517687808976E-01 + -5.9438929754486713E-01 -6.0445810995922156E-01 -6.1469424748629975E-01 + -6.2510038191918904E-01 -6.3567922390628517E-01 -6.4643352337815629E-01 + -6.5736606997366187E-01 -6.6847969346502500E-01 -6.7977726418157713E-01 + -6.9126169343186761E-01 -7.0293593392381393E-01 -7.1480298018256261E-01 + -7.2686586896570504E-01 -7.3912767967548143E-01 -7.5159153476759177E-01 + -7.6426060015622010E-01 -7.7713808561484121E-01 -7.9022724517238074E-01 + -8.0353137750427661E-01 -8.1705382631796797E-01 -8.3079798073230737E-01 + -8.4476727565039611E-01 -8.5896519212528477E-01 -8.7339525771801241E-01 + -8.8806104684736586E-01 -9.0296618113078020E-01 -9.1811432971572760E-01 + -9.3350920960097361E-01 -9.4915458594697089E-01 -9.6505427237472119E-01 + -9.8121213125234596E-01 -9.9763207396860798E-01 -1.0143180611925875E+00 + -1.0312741031186821E+00 -1.0485042596960690E+00 -1.0660126408417443E+00 + -1.0838034066362174E+00 -1.1018807675008819E+00 -1.1202489843560846E+00 + -1.1389123687588398E+00 -1.1578752830191477E+00 -1.1771421402937694E+00 + -1.1967174046563211E+00 -1.2166055911424958E+00 -1.2368112657691772E+00 + -1.2573390455261484E+00 -1.2781935983390789E+00 -1.2993796430024132E+00 + -1.3209019490807308E+00 -1.3427653367771151E+00 -1.3649746767669819E+00 + -1.3875348899958273E+00 -1.4104509474392071E+00 -1.4337278698233258E+00 + -1.4573707273044192E+00 -1.4813846391051886E+00 -1.5057747731063442E+00 + -1.5305463453914299E+00 -1.5557046197428304E+00 -1.5812549070869730E+00 + -1.6072025648865538E+00 -1.6335529964776410E+00 -1.6603116503493285E+00 + -1.6874840193636385E+00 -1.7150756399132339E+00 -1.7430920910144916E+00 + -1.7715389933332968E+00 -1.8004220081409605E+00 -1.8297468361975016E+00 + -1.8595192165594951E+00 -1.8897449253095453E+00 -1.9204297742044278E+00 + -1.9515796092387896E+00 -1.9832003091212351E+00 -2.0152977836595509E+00 + -2.0478779720516553E+00 -2.0809468410788470E+00 -2.1145103831977545E+00 + -2.1485746145273552E+00 -2.1831455727272289E+00 -2.2182293147632399E+00 + -2.2538319145565735E+00 -2.2899594605121019E+00 -2.3266180529218246E+00 + -2.3638138012390550E+00 -2.4015528212189063E+00 -2.4398412319205653E+00 + -2.4786851525665892E+00 -2.5180906992544823E+00 -2.5580639815155792E+00 + -2.5986110987162463E+00 -2.6397381362961614E+00 -2.6814511618383619E+00 + -2.7237562209657007E+00 -2.7666593330580271E+00 -2.8101664867845249E+00 + -2.8542836354452628E+00 -2.8990166921160530E+00 -2.9443715245905069E+00 + -2.9903539501130871E+00 -3.0369697298967027E+00 -3.0842245634184677E+00 + -3.1321240824868561E+00 -3.1806738450736232E+00 -3.2298793289034609E+00 + -3.2797459247944487E+00 -3.3302789297420423E+00 -3.3814835397394272E+00 + -3.4333648423266787E+00 -3.4859278088612697E+00 -3.5391772865021758E+00 + -3.5931179898999224E+00 -3.6477544925844714E+00 -3.7030912180430540E+00 + -3.7591324304798355E+00 -3.8158822252490179E+00 -3.8733445189532767E+00 + -3.9315230391989027E+00 -3.9904213139992337E+00 -4.0500426608177813E+00 + -4.1103901752424026E+00 -4.1714667192817423E+00 -4.2332749092752531E+00 + -4.2958171034078756E+00 -4.3590953888207054E+00 -4.4231115683085855E+00 + -4.4878671465959448E+00 -4.5533633161818603E+00 -4.6196009427457270E+00 + -4.6865805501045203E+00 -4.7543023047131276E+00 -4.8227659996989596E+00 + -4.8919710384224047E+00 -4.9619164175546624E+00 -5.0326007096646510E+00 + -5.1040220453069454E+00 -5.1761780946027915E+00 -5.2490660483065374E+00 + -5.3226825983500596E+00 -5.3970239178580108E+00 -5.4720856406270721E+00 + -5.5478628400628365E+00 -5.6243500075681139E+00 -5.7015410303771228E+00 + -5.7794291688303696E+00 -5.8580070330856735E+00 -5.9372665592611078E+00 + -6.0171989850066243E+00 -6.0977948245013698E+00 -6.1790438428749601E+00 + -6.2609350300511268E+00 -6.3434565740136426E+00 -6.4265958334948268E+00 + -6.5103393100883533E+00 -6.5946726197887156E+00 -6.6795804639612459E+00 + -6.7650465997473939E+00 -6.8510538099118286E+00 -6.9375838721384646E+00 + -7.0246175277849696E+00 -7.1121344501060744E+00 -7.2001132119580884E+00 + -7.2885312529989026E+00 -7.3773648463989963E+00 -7.4665890650819868E+00 + -7.5561777475142744E+00 -7.6461034630665727E+00 -7.7363374769716042E+00 + -7.8268497149054994E+00 -7.9176087272224658E+00 -8.0085816528755931E+00 + -8.0997341830591250E+00 -8.1910305246109942E+00 -8.2824333632174074E+00 + -8.3739038264650123E+00 -8.4654014467891869E+00 -8.5568841243715017E+00 + -8.6483080900427201E+00 -8.7396278682522563E+00 -8.8307962401691302E+00 + -8.9217642069840419E+00 -9.0124809534870032E+00 -9.1028938119998575E+00 + -9.1929482267481877E+00 -9.2825877187625743E+00 -9.3717538514046623E+00 + -9.4603861966194831E+00 -9.5484223020215886E+00 -9.6357976589287020E+00 + -9.7224456714633511E+00 -9.8082976268497486E+00 -9.8932826670402427E+00 + -9.9773277618129299E+00 -1.0060357683489711E+01 -1.0142294983431977E+01 + -1.0223059970479008E+01 -1.0302570691502703E+01 -1.0380742914260937E+01 + -1.0457490112740379E+01 -1.0532723455189366E+01 -1.0606351795049946E+01 + -1.0678281665008647E+01 -1.0748417274395020E+01 -1.0816660510166631E+01 + -1.0882910941730701E+01 -1.0947065829861451E+01 -1.1009020139984491E+01 + -1.1068666560109301E+01 -1.1125895523702292E+01 -1.1180595237804326E+01 + -1.1232651716707402E+01 -1.1281948821516659E+01 -1.1328368305935591E+01 + -1.1371789868623274E+01 -1.1412091212484281E+01 -1.1449148111262963E+01 + -1.1482834483825343E+01 -1.1513022476522568E+01 -1.1539582554041489E+01 + -1.1562383599157684E+01 -1.1581293021817556E+01 -1.1596176877985283E+01 + -1.1606899998700461E+01 -1.1613326129801168E+01 -1.1615318082775159E+01 + -1.1612737897210296E+01 -1.1605447015321237E+01 -1.1593306469036275E+01 + -1.1576177080132279E+01 -1.1553919673909970E+01 -1.1526395306904119E+01 + -1.1493465509123791E+01 -1.1454992541318104E+01 -1.1410839667759552E+01 + -1.1360871445033837E+01 -1.1304954027317661E+01 -1.1242955488618399E+01 + -1.1174746162437728E+01 -1.1100198999307539E+01 -1.1019189942629795E+01 + -1.0931598323232240E+01 -1.0837307273027189E+01 -1.0736204158135269E+01 + -1.0628181031802683E+01 -1.0513135107406262E+01 -1.0390969251799907E+01 + -1.0261592499209863E+01 -1.0124920585836714E+01 -9.9808765052643658E+00 + -9.8293910847133521E+00 -9.6704035821078911E+00 -9.5038623038468835E+00 + -9.3297252430874540E+00 -9.1479607382558452E+00 -8.9585481513999010E+00 + -8.7614785658877850E+00 -8.5567555028370474E+00 -8.3443956555283449E+00 + -8.1244296409172101E+00 -7.8969027672033159E+00 -7.6618758162519400E+00 + -7.4194258394843606E+00 -7.1696469656591191E+00 -6.9126512187617308E+00 + -6.6485693439942839E+00 -6.3775516396183205E+00 -6.0997687921472705E+00 + -5.8154127121064052E+00 -5.5246973672857731E+00 -5.2278596100917341E+00 + -4.9251599952659051E+00 -4.6168835838784590E+00 -4.3033407291139669E+00 + -3.9848678389570047E+00 -3.6618281104443073E+00 -3.3346122296782785E+00 + -3.0036390312995618E+00 -2.6693561105799875E+00 -2.3322403807310583E+00 + -1.9927985674197766E+00 -1.6515676318376009E+00 -1.3091151129875283E+00 + -9.6603937912613069E-01 -6.2296977752259519E-01 -2.8056667087839182E-01 + 6.0478652125156018E-02 3.9944420561004218E-01 7.3557768905882848E-01 + 1.0680970391392621E+00 1.3961911673967076E+00 1.7190209015999529E+00 + 2.0357201497765534E+00 2.3453973073062047E+00 2.6471369288549162E+00 + 2.9400016884335431E+00 3.2230346524566231E+00 3.4952618923735006E+00 + 3.7556954652368382E+00 4.0033367924859133E+00 4.2371804692472175E+00 + 4.4562185386072786E+00 4.6594452676018649E+00 4.8458624640928445E+00 + 5.0144853762861841E+00 5.1643492193891625E+00 5.2945163768191330E+00 + 5.4040843264806817E+00 5.4921943459246947E+00 5.5580410537176341E+00 + 5.6008828480890340E+00 5.6200533079137829E+00 5.6149736253402587E+00 + 5.5851661439214686E+00 5.5302690809671384E+00 5.4500525180450401E+00 + 5.3444357491503318E+00 5.2135060820791690E+00 5.0575391950295554E+00 + 4.8770211574738216E+00 4.6726722319631380E+00 4.4454725818243359E+00 + 4.1966900187854268E+00 3.9279099345356179E+00 3.6410675712311780E+00 + 3.3384827981651939E+00 3.0228975754249188E+00 2.6975163006166234E+00 + 2.3660492519188860E+00 2.0327593601899721E+00 1.7025125650098734E+00 + 1.3808320348738903E+00 1.0739565608700241E+00 7.8890346674727885E-01 + 5.3353641716132927E-01 3.1663855102999983E-01 1.4799141949813524E-01 + 3.8460269353747870E-02 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 1.2698896785993507E-07 -1.0354377198611805E-06 -3.2313903816681835E-06 + -6.3075727368719405E-06 -1.0160171515963051E-05 -1.4734856460611848E-05 + -1.9988796667329544E-05 -2.5896838538538953E-05 -3.2442192207425823E-05 + -3.9611660758616873E-05 -4.7395908228484352E-05 -5.5788514584105641E-05 + -6.4785186696086160E-05 -7.4383370060087441E-05 -8.4581946828346950E-05 + -9.5380995824064280E-05 -1.0678161130617423E-04 -1.1878576615500951E-04 + -1.3139620216378949E-04 -1.4461634246621722E-04 -1.5845022097048299E-04 + -1.7290242462067836E-04 -1.8797804583934225E-04 -2.0368264305082942E-04 + -2.2002220769233675E-04 -2.3700313649761376E-04 -2.5463220810391352E-04 + -2.7291656323568444E-04 -2.9186368787203441E-04 -3.1148139892254409E-04 + -3.3177783202715643E-04 -3.5276143116715135E-04 -3.7444093983046668E-04 + -3.9682539351937747E-04 -4.1992411342441272E-04 -4.4374670111735034E-04 + -4.6830303413964802E-04 -4.9360326238191037E-04 -5.1965780516578667E-04 + -5.4647734895277875E-04 -5.7407284561528137E-04 -6.0245551121424509E-04 + -6.3163682523545829E-04 -6.6162853024282864E-04 -6.9244263191248505E-04 + -7.2409139941610095E-04 -7.5658736612578092E-04 -7.8994333061620237E-04 + -8.2417235794260749E-04 -8.5928778117572841E-04 -8.9530320317689465E-04 + -9.3223249859846694E-04 -9.7008981609637184E-04 -1.0088895807429728E-03 + -1.0486464966297758E-03 -1.0893755496506016E-03 -1.1310920104568652E-03 + -1.1738114375774704E-03 -1.2175496806966632E-03 -1.2623228840838770E-03 + -1.3081474901702620E-03 -1.3550402432671879E-03 -1.4030181934225271E-03 + -1.4520987004110115E-03 -1.5022994378554133E-03 -1.5536383974756999E-03 + -1.6061338934636820E-03 -1.6598045669810099E-03 -1.7146693907787323E-03 + -1.7707476739368543E-03 -1.8280590667226792E-03 -1.8866235655669004E-03 + -1.9464615181567064E-03 -2.0075936286453144E-03 -2.0700409629776173E-03 + -2.1338249543317576E-03 -2.1989674086766446E-03 -2.2654905104456131E-03 + -2.3334168283265203E-03 -2.4027693211687712E-03 -2.4735713440078833E-03 + -2.5458466542082983E-03 -2.6196194177253137E-03 -2.6949142154870610E-03 + -2.7717560498976127E-03 -2.8501703514623718E-03 -2.9301829855369749E-03 + -3.0118202592010574E-03 -3.0951089282582923E-03 -3.1800762043641983E-03 + -3.2667497622832628E-03 -3.3551577472770546E-03 -3.4453287826249840E-03 + -3.5372919772795153E-03 -3.6310769336576252E-03 -3.7267137555704270E-03 + -3.8242330562928673E-03 -3.9236659667755318E-03 -4.0250441440005764E-03 + -4.1283997794839171E-03 -4.2337656079258273E-03 -4.3411749160121044E-03 + -4.4506615513681645E-03 -4.5622599316682312E-03 -4.6760050539020976E-03 + -4.7919325038017586E-03 -4.9100784654304511E-03 -5.0304797309365023E-03 + -5.1531737104746145E-03 -5.2781984422971048E-03 -5.4055926030177849E-03 + -5.5353955180511239E-03 -5.6676471722294629E-03 -5.8023882206010118E-03 + -5.9396599994115179E-03 -6.0795045372724135E-03 -6.2219645665184129E-03 + -6.3670835347575186E-03 -6.5149056166164633E-03 -6.6654757256846440E-03 + -6.8188395266597125E-03 -6.9750434476979631E-03 -7.1341346929727689E-03 + -7.2961612554443460E-03 -7.4611719298441868E-03 -7.6292163258775449E-03 + -7.8003448816474372E-03 -7.9746088773036492E-03 -8.1520604489203480E-03 + -8.3327526026058304E-03 -8.5167392288482222E-03 -8.7040751171007288E-03 + -8.8948159706103546E-03 -9.0890184214938372E-03 -9.2867400460648532E-03 + -9.4880393804163288E-03 -9.6929759362620604E-03 -9.9016102170416259E-03 + -1.0114003734292871E-02 -1.0330219024296147E-02 -1.0550319664994643E-02 + -1.0774370293195234E-02 -1.1002436622054223E-02 -1.1234585458852551E-02 + -1.1470884723065086E-02 -1.1711403464728607E-02 -1.1956211883113277E-02 + -1.2205381345702411E-02 -1.2458984407485397E-02 -1.2717094830568808E-02 + -1.2979787604110678E-02 -1.3247138964583146E-02 -1.3519226416368629E-02 + -1.3796128752694784E-02 -1.4077926076913768E-02 -1.4364699824131060E-02 + -1.4656532783189537E-02 -1.4953509119014368E-02 -1.5255714395324456E-02 + -1.5563235597716220E-02 -1.5876161157125604E-02 -1.6194580973674343E-02 + -1.6518586440906480E-02 -1.6848270470421430E-02 -1.7183727516909643E-02 + -1.7525053603597521E-02 -1.7872346348107741E-02 -1.8225704988741789E-02 + -1.8585230411191155E-02 -1.8951025175684151E-02 -1.9323193544575016E-02 + -1.9701841510382418E-02 -2.0087076824284344E-02 -2.0479009025076562E-02 + -2.0877749468602016E-02 -2.1283411357658395E-02 -2.1696109772391576E-02 + -2.2115961701182366E-02 -2.2543086072034438E-02 -2.2977603784471168E-02 + -2.3419637741949544E-02 -2.3869312884798918E-02 -2.4326756223693170E-02 + -2.4792096873664266E-02 -2.5265466088666002E-02 -2.5746997296696141E-02 + -2.6236826135486058E-02 -2.6735090488766298E-02 -2.7241930523117398E-02 + -2.7757488725414812E-02 -2.8281909940877193E-02 -2.8815341411727650E-02 + -2.9357932816477028E-02 -2.9909836309839302E-02 -3.0471206563288611E-02 + -3.1042200806267892E-02 -3.1622978868059280E-02 -3.2213703220326365E-02 + -3.2814539020338665E-02 -3.3425654154889121E-02 -3.4047219284914741E-02 + -3.4679407890831682E-02 -3.5322396318595600E-02 -3.5976363826498360E-02 + -3.6641492632712290E-02 -3.7317967963593726E-02 -3.8005978102757236E-02 + -3.8705714440932362E-02 -3.9417371526614786E-02 -4.0141147117524215E-02 + -4.0877242232880973E-02 -4.1625861206514139E-02 -4.2387211740813530E-02 + -4.3161504961538477E-02 -4.3948955473496538E-02 -4.4749781417105103E-02 + -4.5564204525849313E-02 -4.6392450184649991E-02 -4.7234747489155154E-02 + -4.8091329305968981E-02 -4.8962432333832712E-02 -4.9848297165771389E-02 + -5.0749168352221111E-02 -5.1665294465151619E-02 -5.2596928163198976E-02 + -5.3544326257823641E-02 -5.4507749780508784E-02 -5.5487464051015331E-02 + -5.6483738746708340E-02 -5.7496847972971471E-02 -5.8527070334725539E-02 + -5.9574689009067261E-02 -6.0639991819045190E-02 -6.1723271308589456E-02 + -6.2824824818612388E-02 -6.3944954564297371E-02 -6.5083967713593385E-02 + -6.6242176466932937E-02 -6.7419898138191714E-02 -6.8617455236907390E-02 + -6.9835175551777096E-02 -7.1073392235451102E-02 -7.2332443890642986E-02 + -7.3612674657573776E-02 -7.4914434302771393E-02 -7.6238078309243437E-02 + -7.7583967968044260E-02 -7.8952470471256156E-02 -8.0343959006405230E-02 + -8.1758812852332122E-02 -8.3197417476539831E-02 -8.4660164634038235E-02 + -8.6147452467707997E-02 -8.7659685610205346E-02 -8.9197275287429365E-02 + -9.0760639423574430E-02 -9.2350202747790738E-02 -9.3966396902474797E-02 + -9.5609660553214057E-02 -9.7280439500408600E-02 -9.8979186792593224E-02 + -1.0070636284148524E-01 -1.0246243553878022E-01 -1.0424788037472248E-01 + -1.0606318055847322E-01 -1.0790882714030314E-01 -1.0978531913563350E-01 + -1.1169316365095258E-01 -1.1363287601163247E-01 -1.1560497989167420E-01 + -1.1761000744540531E-01 -1.1964849944115991E-01 -1.2172100539696550E-01 + -1.2382808371826659E-01 -1.2597030183771132E-01 -1.2814823635703015E-01 + -1.3036247319103458E-01 -1.3261360771376568E-01 -1.3490224490682004E-01 + -1.3722899950988393E-01 -1.3959449617350514E-01 -1.4199936961413195E-01 + -1.4444426477145048E-01 -1.4692983696805062E-01 -1.4945675207145195E-01 + -1.5202568665852043E-01 -1.5463732818230852E-01 -1.5729237514134983E-01 + -1.5999153725144133E-01 -1.6273553561994492E-01 -1.6552510292264280E-01 + -1.6836098358317864E-01 -1.7124393395511872E-01 -1.7417472250666663E-01 + -1.7715413000806748E-01 -1.8018294972173290E-01 -1.8326198759512627E-01 + -1.8639206245643875E-01 -1.8957400621309614E-01 -1.9280866405312824E-01 + -1.9609689464944122E-01 -1.9943957036702611E-01 -2.0283757747314157E-01 + -2.0629181635050958E-01 -2.0980320171355846E-01 -2.1337266282775486E-01 + -2.1700114373205831E-01 -2.2068960346454233E-01 -2.2443901629121529E-01 + -2.2825037193808456E-01 -2.3212467582650023E-01 -2.3606294931182042E-01 + -2.4006622992543608E-01 -2.4413557162019769E-01 -2.4827204501928213E-01 + -2.5247673766854301E-01 -2.5675075429238303E-01 -2.6109521705319277E-01 + -2.6551126581439372E-01 -2.7000005840713248E-01 -2.7456277090066267E-01 + -2.7920059787646212E-01 -2.8391475270612559E-01 -2.8870646783307469E-01 + -2.9357699505813228E-01 -2.9852760582899979E-01 -3.0355959153368606E-01 + -3.0867426379792712E-01 -3.1387295478664451E-01 -3.1915701750948422E-01 + -3.2452782613048198E-01 -3.2998677628189832E-01 -3.3553528538227056E-01 + -3.4117479295872261E-01 -3.4690676097358386E-01 -3.5273267415535503E-01 + -3.5865404033407378E-01 -3.6467239078111963E-01 -3.7078928055350824E-01 + -3.7700628884271731E-01 -3.8332501932809332E-01 -3.8974710053488171E-01 + -3.9627418619692922E-01 -4.0290795562410342E-01 -4.0965011407447327E-01 + -4.1650239313130233E-01 -4.2346655108489317E-01 -4.3054437331933670E-01 + -4.3773767270420533E-01 -4.4504828999124285E-01 -4.5247809421608881E-01 + -4.6002898310509283E-01 -4.6770288348725381E-01 -4.7550175171134068E-01 + -4.8342757406822839E-01 -4.9148236721850613E-01 -4.9966817862539220E-01 + -5.0798708699300754E-01 -5.1644120271004967E-01 -5.2503266829891049E-01 + -5.3376365887028299E-01 -5.4263638258330205E-01 -5.5165308111125710E-01 + -5.6081603011292758E-01 -5.7012753970957564E-01 -5.7958995496764354E-01 + -5.8920565638719602E-01 -5.9897706039614540E-01 -6.0890661985030536E-01 + -6.1899682453930915E-01 -6.2925020169843326E-01 -6.3966931652636438E-01 + -6.5025677270894922E-01 -6.6101521294896137E-01 -6.7194731950192610E-01 + -6.8305581471803489E-01 -6.9434346159018656E-01 -7.0581306430818735E-01 + -7.1746746881914703E-01 -7.2930956339409647E-01 -7.4134227920086571E-01 + -7.5356859088324468E-01 -7.6599151714646219E-01 -7.7861412134900543E-01 + -7.9143951210081220E-01 -8.0447084386785495E-01 -8.1771131758314541E-01 + -8.3116418126418212E-01 -8.4483273063685627E-01 -8.5872030976584479E-01 + -8.7283031169149994E-01 -8.8716617907326034E-01 -9.0173140483958791E-01 + -9.1652953284445704E-01 -9.3156415853039165E-01 -9.4683892959807747E-01 + -9.6235754668253826E-01 -9.7812376403589940E-01 -9.9414139021672576E-01 + -1.0104142887859504E+00 -1.0269463790093794E+00 -1.0437416365667824E+00 + -1.0608040942675483E+00 -1.0781378427729180E+00 -1.0957470313247604E+00 + -1.1136358684808982E+00 -1.1318086228569553E+00 -1.1502696238747108E+00 + -1.1690232625169414E+00 -1.1880739920887211E+00 -1.2074263289851546E+00 + -1.2270848534655088E+00 -1.2470542104337194E+00 -1.2673391102252169E+00 + -1.2879443294000508E+00 -1.3088747115422472E+00 -1.3301351680653730E+00 + -1.3517306790242325E+00 -1.3736662939326554E+00 -1.3959471325873121E+00 + -1.4185783858974905E+00 -1.4415653167207623E+00 -1.4649132607044741E+00 + -1.4886276271329797E+00 -1.5127138997805329E+00 -1.5371776377697515E+00 + -1.5620244764355660E+00 -1.5872601281945522E+00 -1.6128903834195403E+00 + -1.6389211113194131E+00 -1.6653582608239457E+00 -1.6922078614736085E+00 + -1.7194760243141747E+00 -1.7471689427960282E+00 -1.7752928936780119E+00 + -1.8038542379356994E+00 -1.8328594216739154E+00 -1.8623149770433758E+00 + -1.8922275231612569E+00 -1.9226037670355571E+00 -1.9534505044930379E+00 + -1.9847746211106070E+00 -2.0165830931498983E+00 -2.0488829884949031E+00 + -2.0816814675924116E+00 -2.1149857843950741E+00 -2.1488032873068308E+00 + -2.1831414201305224E+00 -2.2180077230173985E+00 -2.2534098334183157E+00 + -2.2893554870363384E+00 -2.3258525187804970E+00 -2.3629088637204241E+00 + -2.4005325580415811E+00 -2.4387317400007875E+00 -2.4775146508817447E+00 + -2.5168896359502497E+00 -2.5568651454087581E+00 -2.5974497353499886E+00 + -2.6386520687091952E+00 -2.6804809162147771E+00 -2.7229451573368335E+00 + -2.7660537812333246E+00 -2.8098158876933912E+00 -2.8542406880774940E+00 + -2.8993375062539068E+00 -2.9451157795311755E+00 -2.9915850595860753E+00 + -3.0387550133866399E+00 -3.0866354241097724E+00 -3.1352361920529894E+00 + -3.1845673355397754E+00 -3.2346389918180671E+00 -3.2854614179513377E+00 + -3.3370449917017608E+00 -3.3894002124048681E+00 -3.4425377018351870E+00 + -3.4964682050622522E+00 -3.5512025912964171E+00 -3.6067518547238100E+00 + -3.6631271153298792E+00 -3.7203396197108316E+00 -3.7784007418723493E+00 + -3.8373219840148582E+00 -3.8971149773047169E+00 -3.9577914826305753E+00 + -4.0193633913442204E+00 -4.0818427259851005E+00 -4.1452416409878428E+00 + -4.2095724233719363E+00 -4.2748474934128158E+00 -4.3410794052934802E+00 + -4.4082808477358899E+00 -4.4764646446112089E+00 -4.5456437555280731E+00 + -4.6158312763979943E+00 -4.6870404399769185E+00 -4.7592846163821001E+00 + -4.8325773135832764E+00 -4.9069321778672110E+00 -4.9823629942745464E+00 + -5.0588836870080307E+00 -5.1365083198110355E+00 -5.2152510963153116E+00 + -5.2951263603569121E+00 -5.3761485962591626E+00 -5.4583324290815902E+00 + -5.5416926248336420E+00 -5.6262440906519968E+00 -5.7120018749403503E+00 + -5.7989811674703722E+00 -5.8871972994427058E+00 -5.9766657435066053E+00 + -6.0674021137370797E+00 -6.1594221655681300E+00 -6.2527417956807776E+00 + -6.3473770418445836E+00 -6.4433440827111506E+00 -6.5406592375583612E+00 + -6.6393389659838018E+00 -6.7393998675460205E+00 -6.8408586813520165E+00 + -6.9437322855896166E+00 -7.0480376970030880E+00 -7.1537920703105229E+00 + -7.2610126975613358E+00 -7.3697170074323894E+00 -7.4799225644610257E+00 + -7.5916470682134358E+00 -7.7049083523866102E+00 -7.8197243838422645E+00 + -7.9361132615709877E+00 -8.0540932155848708E+00 -8.1736826057367953E+00 + -8.2948999204647347E+00 -8.4177637754590826E+00 -8.5422929122513143E+00 + -8.6685061967220669E+00 -8.7964226175266731E+00 -8.9260612844364307E+00 + -9.0574414265935026E+00 -9.1905823906776298E+00 -9.3255036389825356E+00 + -9.4622247474002297E+00 -9.6007654033110086E+00 -9.7411454033772724E+00 + -9.8833846512389574E+00 -1.0027503155108652E+01 -1.0173521025264197E+01 + -1.0321458471436788E+01 -1.0471335800092229E+01 -1.0623173411603473E+01 + -1.0776991797312061E+01 -1.0932811536476432E+01 -1.1090653293104786E+01 + -1.1250537812670409E+01 -1.1412485918707153E+01 -1.1576518509282892E+01 + -1.1742656553348734E+01 -1.1910921086961583E+01 -1.2081333209377988E+01 + -1.2253914079016905E+01 -1.2428684909289078E+01 -1.2605666964290744E+01 + -1.2784881554359457E+01 -1.2966350031489641E+01 -1.3150093784605664E+01 + -1.3336134234689968E+01 -1.3524492829764187E+01 -1.3715191039720739E+01 + -1.3908250351002819E+01 -1.4103692261130210E+01 -1.4301538273068948E+01 + -1.4501809889442351E+01 -1.4704528606581286E+01 -1.4909715908411247E+01 + -1.5117393260174255E+01 -1.5327582101983156E+01 -1.5540303842206212E+01 + -1.5755579850679901E+01 -1.5973431451747476E+01 -1.6193879917121571E+01 + -1.6416946458568404E+01 -1.6642652220411854E+01 -1.6871018271854943E+01 + -1.7102065599117271E+01 -1.7335815097386046E+01 -1.7572287562579096E+01 + -1.7811503682917692E+01 -1.8053484030307850E+01 -1.8298249051527943E+01 + -1.8545819059221262E+01 -1.8796214222691642E+01 -1.9049454558500937E+01 + -1.9305559920866543E+01 -1.9564549991857909E+01 -1.9826444271390365E+01 + -2.0091262067015379E+01 -2.0359022483505878E+01 -2.0629744412235677E+01 + -2.0903446520352119E+01 -2.1180147239740826E+01 -2.1459864755782153E+01 + -2.1742616995898377E+01 -2.2028421617891375E+01 -2.2317295998069913E+01 + -2.2609257219166718E+01 -2.2904322058044677E+01 -2.3202506973192339E+01 + -2.3503828092008341E+01 -2.3808301197875199E+01 -2.4115941717022313E+01 + -2.4426764705178662E+01 -2.4740784834015155E+01 -2.5058016377377431E+01 + -2.5378473197309173E+01 -2.5702168729866671E+01 -2.6029115970724792E+01 + -2.6359327460575084E+01 -2.6692815270316483E+01 -2.7029590986038748E+01 + -2.7369665693799348E+01 -2.7713049964193573E+01 -2.8059753836718460E+01 + -2.8409786803930231E+01 -2.8763157795395031E+01 -2.9119875161432496E+01 + -2.9479946656651691E+01 -2.9843379423278204E+01 -3.0210179974271405E+01 + -3.0580354176229978E+01 -3.0953907232084426E+01 -3.1330843663573813E+01 + -3.1711167293504626E+01 -3.2094881227788726E+01 -3.2481987837257499E+01 + -3.2872488739248773E+01 -3.3266384778963264E+01 -3.3663676010586421E+01 + -3.4064361678172844E+01 -3.4468440196289116E+01 -3.4875909130412140E+01 + -3.5286765177080049E+01 -3.5701004143792950E+01 -3.6118620928662281E+01 + -3.6539609499807625E+01 -3.6963962874501412E+01 -3.7391673098062583E+01 + -3.7822731222502846E+01 -3.8257127284929410E+01 -3.8694850285711112E+01 + -3.9135888166415789E+01 -3.9580227787529850E+01 -4.0027854905972532E+01 + -4.0478754152419718E+01 -4.0932909008454722E+01 -4.1390301783565889E+01 + -4.1850913592012638E+01 -4.2314724329584692E+01 -4.2781712650280099E+01 + -4.3251855942931066E+01 -4.3725130307807433E+01 -4.4201510533229509E+01 + -4.4680970072223097E+01 -4.5163481019251414E+01 -4.5649014087058390E+01 + -4.6137538583659065E+01 -4.6629022389513182E+01 -4.7123431934917214E+01 + -4.7620732177651298E+01 -4.8120886580915268E+01 -4.8623857091588853E+01 + -4.9129604118848412E+01 -4.9638086513173050E+01 -5.0149261545769640E+01 + -5.0663084888446001E+01 -5.1179510593958184E+01 -5.1698491076856826E+01 + -5.2219977094854102E+01 -5.2743917730731347E+01 -5.3270260374803357E+01 + -5.3798950707954823E+01 -5.4329932685259685E+01 -5.4863148520193384E+01 + -5.5398538669443830E+01 -5.5936041818327517E+01 -5.6475594866812408E+01 + -5.7017132916150196E+01 -5.7560589256118782E+01 -5.8105895352874192E+01 + -5.8652980837413843E+01 -5.9201773494650375E+01 -5.9752199253098752E+01 + -6.0304182175178099E+01 -6.0857644448134003E+01 -6.1412506375586297E+01 + -6.1968686369710895E+01 -6.2526100944065469E+01 -6.3084664707071234E+01 + -6.3644290356164817E+01 -6.4204888672636415E+01 -6.4766368517171060E+01 + -6.5328636826113083E+01 -6.5891598608473146E+01 -6.6455156943700089E+01 + -6.7019212980238422E+01 -6.7583665934895549E+01 -6.8148413093040972E+01 + -6.8713349809661025E+01 -6.9278369511292752E+01 -6.9843363698859818E+01 + -7.0408221951434911E+01 -7.0972831930950903E+01 -7.1537079387885171E+01 + -7.2100848167938651E+01 -7.2664020219734326E+01 -7.3226475603557233E+01 + -7.3788092501159269E+01 -7.4348747226651142E+01 -7.4908314238505753E+01 + -7.5466666152694643E+01 -7.6023673756981978E+01 -7.6579206026397841E+01 + -7.7133130139915679E+01 -7.7685311498356228E+01 -7.8235613743542046E+01 + -7.8783898778725558E+01 -7.9330026790314989E+01 -7.9873856270921181E+01 + -8.0415244043748899E+01 -8.0954045288356468E+01 -8.1490113567805935E+01 + -8.2023300857228008E+01 -8.2553457573823948E+01 -8.3080432608326916E+01 + -8.3604073357944145E+01 -8.4124225760802744E+01 -8.4640734331918893E+01 + -8.5153442200711723E+01 -8.5662191150080019E+01 -8.6166821657062499E+01 + -8.6667172935097909E+01 -8.7163082977903329E+01 -8.7654388604984902E+01 + -8.8140925508797793E+01 -8.8622528303567037E+01 -8.9099030575783488E+01 + -8.9570264936383424E+01 -9.0036063074623556E+01 -9.0496255813657498E+01 + -9.0950673167820383E+01 -9.1399144401626302E+01 -9.1841498090480115E+01 + -9.2277562183105019E+01 -9.2707164065683727E+01 -9.3130130627710315E+01 + -9.3546288329545490E+01 -9.3955463271668762E+01 -9.4357481265616215E+01 + -9.4752167906591453E+01 -9.5139348647733541E+01 -9.5518848876026169E+01 + -9.5890493989826268E+01 -9.6254109477990923E+01 -9.6609521000576322E+01 + -9.6956554471083507E+01 -9.7295036140219551E+01 -9.7624792681144456E+01 + -9.7945651276167808E+01 -9.8257439704862165E+01 -9.8559986433553803E+01 + -9.8853120706152467E+01 -9.9136672636280167E+01 -9.9410473300655369E+01 + -9.9674354833691666E+01 -9.9928150523265259E+01 -1.0017169490760723E+02 + -1.0040482387327329E+02 -1.0062737475414588E+02 -1.0083918643141958E+02 + -1.0104009943452145E+02 -1.0122995604291476E+02 -1.0140860038873471E+02 + -1.0157587856019978E+02 -1.0173163870574007E+02 -1.0187573113877760E+02 + -1.0200800844308910E+02 -1.0212832557867115E+02 -1.0223653998801998E+02 + -1.0233251170272064E+02 -1.0241610345023052E+02 -1.0248718076071722E+02 + -1.0254561207379182E+02 -1.0259126884495110E+02 -1.0262402565151076E+02 + -1.0264376029778083E+02 -1.0265035391919307E+02 -1.0264369108505267E+02 + -1.0262365989954031E+02 -1.0259015210054923E+02 -1.0254306315589514E+02 + -1.0248229235639548E+02 -1.0240774290527554E+02 -1.0231932200332793E+02 + -1.0221694092923011E+02 -1.0210051511441601E+02 -1.0196996421190271E+02 + -1.0182521215850672E+02 -1.0166618722992710E+02 -1.0149282208825529E+02 + -1.0130505382157050E+02 -1.0110282397541594E+02 -1.0088607857611105E+02 + -1.0065476814604554E+02 -1.0040884771131681E+02 -1.0014827680230708E+02 + -9.9873019448052389E+01 -9.9583044165513385E+01 -9.9278323945122978E+01 + -9.8958836234236244E+01 -9.8624562920345284E+01 -9.8275490316119047E+01 + -9.7911609148487088E+01 -9.7532914554077720E+01 -9.7139406083339040E+01 + -9.6731087715591755E+01 -9.6307967887073275E+01 -9.5870059533715065E+01 + -9.5417380149951867E+01 -9.4949951864277324E+01 -9.4467801531565769E+01 + -9.3970960841389569E+01 -9.3459466440729173E+01 -9.2933360068645641E+01 + -9.2392688699737434E+01 -9.1837504692598486E+01 -9.1267865939089162E+01 + -9.0683836010078707E+01 -9.0085484293423704E+01 -8.9472886120314712E+01 + -8.8846122876709245E+01 -8.8205282097322694E+01 -8.7550457540490129E+01 + -8.6881749243075248E+01 -8.6199263555410752E+01 -8.5503113156962172E+01 + -8.4793417053964134E+01 -8.4070300560681986E+01 -8.3333895266187724E+01 + -8.2584338988636773E+01 -8.1821775718997884E+01 -8.1046355556064938E+01 + -8.0258234634385232E+01 -7.9457575046507344E+01 -7.8644544760699759E+01 + -7.7819317535041421E+01 -7.6982072828550614E+01 -7.6132995709802756E+01 + -7.5272276763307644E+01 -7.4400111993759893E+01 -7.3516702728159174E+01 + -7.2622255515704822E+01 -7.1716982025311509E+01 -7.0801098940556429E+01 + -6.9874827851858470E+01 -6.8938395145695821E+01 -6.7992031890694093E+01 + -6.7035973720449533E+01 -6.6070460712997289E+01 -6.5095737266882068E+01 + -6.4112051973840565E+01 -6.3119657488155561E+01 -6.2118810392790841E+01 + -6.1109771062460474E+01 -6.0092803523828309E+01 -5.9068175313066575E+01 + -5.8036157331031831E+01 -5.6997023696340264E+01 -5.5951051596638472E+01 + -5.4898521138379408E+01 -5.3839715195416552E+01 -5.2774919256731010E+01 + -5.1704421273601760E+01 -5.0628511506523253E+01 -4.9547482372162854E+01 + -4.8461628290638622E+01 -4.7371245533382080E+01 -4.6276632071835394E+01 + -4.5178087427213612E+01 -4.4075912521544495E+01 -4.2970409530179516E+01 + -4.1861881735950675E+01 -4.0750633385127855E+01 -3.9636969545313043E+01 + -3.8521195965387804E+01 -3.7403618937613601E+01 -3.6284545161964942E+01 + -3.5164281612759041E+01 -3.4043135407628291E+01 -3.2921413678866649E+01 + -3.1799423447165221E+01 -3.0677471497738107E+01 -2.9555864258826560E+01 + -2.8434907682556169E+01 -2.7314907128111468E+01 -2.6196167247180739E+01 + -2.5078991871615330E+01 -2.3963683903238959E+01 -2.2850545205736250E+01 + -2.1739876498543161E+01 -2.0631977252658363E+01 -1.9527145588290757E+01 + -1.8425678174257424E+01 -1.7327870129045294E+01 -1.6234014923451344E+01 + -1.5144404284718320E+01 -1.4059328102087456E+01 -1.2979074333694310E+01 + -1.1903928914741044E+01 -1.0834175666885944E+01 -9.7700962088004566E+00 + -8.7119698678538207E+00 -7.6600735928963886E+00 -6.6146818681245154E+00 + -5.5760666280217359E+00 -4.5444971733833874E+00 -3.5202400884437686E+00 + -2.5035591591365223E+00 -1.4947152925295450E+00 -4.9396643748515517E-01 + 4.9843249339632911E-01 1.4822297004860325E+00 2.4571765724228403E+00 + 3.4230277599309580E+00 4.3795412480971621E+00 5.3264784270542274E+00 + 6.2636041610290611E+00 7.1906868557308394E+00 8.1074985240746020E+00 + 9.0138148502615074E+00 9.9094152522639103E+00 1.0794082942795617E+01 + 1.1667604988880647E+01 1.2529772370163663E+01 1.3380380036140291E+01 + 1.4219226962507388E+01 1.5046116206854016E+01 1.5860854963921740E+01 + 1.6663254620652928E+01 1.7453130811220518E+01 1.8230303472178878E+01 + 1.8994596897794807E+01 1.9745839795501738E+01 2.0483865341264924E+01 + 2.1208511234450583E+01 2.1919619751550943E+01 2.2617037797837117E+01 + 2.3300616955692732E+01 2.3970213528034005E+01 2.4625688574862412E+01 + 2.5266907940643900E+01 2.5893742269889842E+01 2.6506067008069532E+01 + 2.7103762384843684E+01 2.7686713376625285E+01 2.8254809645687125E+01 + 2.8807945453484397E+01 2.9346019546582429E+01 2.9868935014579296E+01 + 3.0376599120692770E+01 3.0868923107199155E+01 3.1345821979601865E+01 + 3.1807214275174665E+01 3.2253021823235919E+01 3.2683169506016029E+01 + 3.3097585030126709E+01 3.3496198719267262E+01 3.3878943338791551E+01 + 3.4245753962024864E+01 3.4596567886741823E+01 3.4931324608056713E+01 + 3.5249965851262274E+01 3.5552435665084282E+01 3.5838680572656010E+01 + 3.6108649774522227E+01 3.6362295395430564E+01 3.6599572764768929E+01 + 3.6820440719400828E+01 3.7024861917396379E+01 3.7212803151696853E+01 + 3.7384235653976241E+01 3.7539135380680818E+01 3.7677483275230180E+01 + 3.7799265502448186E+01 3.7904473653271204E+01 3.7993104919519524E+01 + 3.8065162239933755E+01 3.8120654419722044E+01 3.8159596226552168E+01 + 3.8182008466280543E+01 3.8187918041792933E+01 3.8177357998204648E+01 + 3.8150367557390283E+01 3.8106992144438742E+01 3.8047283408215883E+01 + 3.7971299237788422E+01 3.7879103776059594E+01 3.7770767431600689E+01 + 3.7646366889342161E+01 3.7505985120528891E+01 3.7349711392131660E+01 + 3.7177641275752627E+01 3.6989876655953175E+01 3.6786525737861552E+01 + 3.6567703053886142E+01 3.6333529469353216E+01 3.6084132186901293E+01 + 3.5819644749497940E+01 3.5540207041982853E+01 3.5245965291089675E+01 + 3.4937072063948342E+01 3.4613686265115895E+01 3.4275973132230881E+01 + 3.3924104230425982E+01 3.3558257445666037E+01 3.3178616977208776E+01 + 3.2785373329402290E+01 3.2378723303049107E+01 3.1958869986571720E+01 + 3.1526022747213108E+01 3.1080397222501972E+01 3.0622215312197923E+01 + 3.0151705170917626E+01 2.9669101201622432E+01 2.9174644050123206E+01 + 2.8668580600733204E+01 2.8151163973171510E+01 2.7622653520788372E+01 + 2.7083314830155377E+01 2.6533419722029709E+01 2.5973246253672322E+01 + 2.5403078722468393E+01 2.4823207670767367E+01 2.4233929891831632E+01 + 2.3635548436754810E+01 2.3028372622182818E+01 2.2412718038648112E+01 + 2.1788906559302600E+01 2.1157266348815106E+01 2.0518131872180522E+01 + 1.9871843903170308E+01 1.9218749532141533E+01 1.8559202172908375E+01 + 1.7893561568369620E+01 1.7222193794585198E+01 1.6545471262977358E+01 + 1.5863772720337369E+01 1.5177483246321072E+01 1.4486994248098506E+01 + 1.3792703451845590E+01 1.3095014890751086E+01 1.2394338889213667E+01 + 1.1691092042912516E+01 1.0985697194423256E+01 1.0278583404052178E+01 + 9.5701859155529796E+00 8.8609461163786243E+00 8.1513114921061280E+00 + 7.4417355746512843E+00 6.7326778838524834E+00 6.0246038620043327E+00 + 5.3179848008193504E+00 4.6132977602950849E+00 3.9110254789118359E+00 + 3.2116562744548034E+00 2.5156839347755233E+00 1.8236075976546602E+00 + 1.1359316188554944E+00 4.5316542739225296E-01 -2.2417663309305888E-01 + -8.9557547803532578E-01 -1.5605074720299621E+00 -2.2184446366939254E+00 + -2.8688548778017640E+00 -3.5112022332886035E+00 -4.1449471437992331E+00 + -4.7695467475401703E+00 -5.3844552012570315E+00 -5.9891240292113261E+00 + -6.5830025020648710E+00 -7.1655380475958061E+00 -7.7361766951642297E+00 + -8.2943635558153197E+00 -8.8395433398528400E+00 -9.3711609136314724E+00 + -9.8886618972029421E+00 -1.0391493304304818E+01 -1.0879104226000353E+01 + -1.1350946559062592E+01 -1.1806475779943936E+01 -1.2245151764882609E+01 + -1.2666439656373313E+01 -1.3069810775868731E+01 -1.3454743582189682E+01 + -1.3820724674708250E+01 -1.4167249839940006E+01 -1.4493825139752875E+01 + -1.4799968038987126E+01 -1.5085208569903392E+01 -1.5349090530562409E+01 + -1.5591172714014725E+01 -1.5811030165076357E+01 -1.6008255461514814E+01 + -1.6182460016697270E+01 -1.6333275401183162E+01 -1.6460354681382885E+01 + -1.6563373774253485E+01 -1.6642032818033780E+01 -1.6696057560188439E+01 + -1.6725200764963564E+01 -1.6729243644157272E+01 -1.6707997315761201E+01 + -1.6661304295909570E+01 -1.6589040029945632E+01 -1.6491114468274080E+01 + -1.6367473691921191E+01 -1.6218101591332402E+01 -1.6043021599914805E+01 + -1.5842298481251699E+01 -1.5616040165909785E+01 -1.5364399630508760E+01 + -1.5087576808430285E+01 -1.4785820518426842E+01 -1.4459430394640622E+01 + -1.4108758799311152E+01 -1.3734212697836654E+01 -1.3336255474884936E+01 + -1.2915408669901330E+01 -1.2472253610548751E+01 -1.2007432923224314E+01 + -1.1521651900694199E+01 -1.1015679707939494E+01 -1.0490350408389498E+01 + -9.9465637937426425E+00 -9.3852860014674739E+00 -8.8075499048034480E+00 + -8.2144552606303165E+00 -7.6071686009571051E+00 -6.9869228540257939E+00 + -6.3550166811672710E+00 -5.7128135156311615E+00 -5.0617402896834154E+00 + -4.4032858363661633E+00 -3.7389989524861815E+00 -3.0704861096746074E+00 + -2.3994088007726120E+00 -1.7274805093721155E+00 -1.0564632910973843E+00 + -3.8816395617183219E-01 2.7557015601263274E-01 9.3285581820690677E-01 + 1.5817789787457504E+00 2.2204002514934169E+00 2.8467608345505746E+00 + 3.4588888576171128E+00 4.0548061553005113E+00 4.6325354608171248E+00 + 5.1901080114609313E+00 5.7255715539213643E+00 6.2369987340325945E+00 + 6.7224958518468538E+00 7.1802119590624542E+00 7.6083482718261308E+00 + 8.0051678677898490E+00 8.3690056320623132E+00 8.6982784123789898E+00 + 8.9914953394488286E+00 9.2472682640492536E+00 9.4643222580574005E+00 + 9.6415061222539329E+00 9.7778028394396586E+00 9.8723399071896853E+00 + 9.9243994804613180E+00 9.9334282502937743E+00 9.8990469810165074E+00 + 9.8210596247505766E+00 9.6994619285786410E+00 9.5344494465520953E+00 + 9.3264248659226734E+00 9.0760045543869570E+00 8.7840242329904523E+00 + 8.4515436777756339E+00 8.0798503519540272E+00 7.6704618699554237E+00 + 7.2251271948841955E+00 6.7458264716041958E+00 6.2347693998414453E+00 + 5.6943920541749451E+00 5.1273520616531147E+00 4.5365220531138206E+00 + 3.9249813101619351E+00 3.2960055378460162E+00 2.6530547022065352E+00 + 1.9997588825428916E+00 1.3399021008719099E+00 6.7740410516782745E-01 + 1.6300098991681451E-02 -6.3928157206910974E-01 -1.2851437470720795E+00 + -1.9170467379339453E+00 -2.5307365043357266E+00 -3.1219746154552421E+00 + -3.6865698720259772E+00 -4.2204114340959782E+00 -4.7195032704268165E+00 + -5.1799997149516459E+00 -5.5982418843718129E+00 -5.9707946791281934E+00 + -6.2944840580016299E+00 -6.5664342448941015E+00 -6.7841044953839171E+00 + -6.9453250209552451E+00 -7.0483316409415515E+00 -7.0917987068097119E+00 + -7.0748698211072725E+00 -6.9971858548967285E+00 -6.8589097535382395E+00 + -6.6607476120127904E+00 -6.4039654983683487E+00 -6.0904015080979708E+00 + -5.7224725440822368E+00 -5.3031753368871213E+00 -4.8360812493990339E+00 + -4.3253244486352305E+00 -3.7755830766437071E+00 -3.1920531121530731E+00 + -2.5804146853716010E+00 -1.9467906902389243E+00 -1.2976976314986892E+00 + -6.3998874797934535E-01 1.9210431989507826E-02 6.7257382272224198E-01 + 1.3126533873287123E+00 1.9319640634437820E+00 2.5230743071792499E+00 + 3.0787014028555393E+00 3.5918105330523349E+00 4.0557164511337955E+00 + 4.4641864495539432E+00 4.8115431751482136E+00 5.0927657107831363E+00 + 5.3035872249456615E+00 5.4405873911037377E+00 5.5012777011211877E+00 + 5.4841777459140593E+00 5.3888805161533648E+00 5.2161047903242110E+00 + 4.9677327308146744E+00 4.6468309045809937E+00 4.2576530865070179E+00 + 3.8056233934288390E+00 3.2972985367533831E+00 2.7403082725609917E+00 + 2.1432734698646874E+00 1.5157016088743205E+00 8.6785995885859157E-01 + 2.1062716515310420E-01 -4.4467550898593461E-01 -1.0864714953953443E+00 + -1.7031324351400148E+00 -2.2831949690766273E+00 -2.8155873148841071E+00 + -3.2898615958594375E+00 -3.6964273789435991E+00 -4.0267814261771901E+00 + -4.2737282837218151E+00 -4.4315860449240079E+00 -4.4963714479298797E+00 + -4.4659584228755129E+00 -4.3402043063348499E+00 -4.1210382072841387E+00 + -3.8125064524609469E+00 -3.4207706692817408E+00 -2.9540548867026035E+00 + -2.4225390486216156E+00 -1.8381975346524739E+00 -1.2145826565906990E+00 + -5.6655462547481394E-01 9.0038864246663436E-02 7.3872854651212450E-01 + 1.3628283196261735E+00 1.9458703576001144E+00 2.4720604382584601E+00 + 2.9267417526292752E+00 3.2968540864544704E+00 3.5713741672842154E+00 + 3.7417222230886096E+00 3.8021194717993745E+00 3.7498814213147891E+00 + 3.5856325628439598E+00 3.3134293308319696E+00 2.9407801072627975E+00 + 2.4785535736201534E+00 1.9407698429357856E+00 1.3442724927806049E+00 + 7.0828379378715067E-01 5.3849982255423375E-02 -5.9681177695381926E-01 + -1.2210482166310606E+00 -1.7965653054044506E+00 -2.3022583999188755E+00 + -2.7190476623347957E+00 -3.0306861566674250E+00 -3.2245060531488710E+00 + -3.2920676652410812E+00 -3.2296768176424542E+00 -3.0387384517439191E+00 + -2.7259185163842479E+00 -2.3030920935942514E+00 -1.7870633135944651E+00 + -1.1990517672065426E+00 -5.6395057053867559E-01 9.0627386178657843E-02 + 7.3548663212418319E-01 1.3411296318011001E+00 1.8791294890987653E+00 + 2.3235341136680443E+00 2.6522336667116018E+00 2.8482184751690971E+00 + 2.9006534361723744E+00 2.8056977481951728E+00 2.5670059598944888E+00 + 2.1958579688531858E+00 1.7108816206891355E+00 1.1373515531549692E+00 + 5.0607118533531081E-01 -1.4812976335893879E-01 -7.8822345851238296E-01 + -1.3770533875948776E+00 -1.8795373842172576E+00 -2.2648777160464855E+00 + -2.5086390579334017E+00 -2.5945504116150686E+00 -2.5158915420081436E+00 + -2.2763391803784367E+00 -1.8901733801293230E+00 -1.3817795405398803E+00 + -7.8442544356941124E-01 -1.3834301595478601E-01 5.1180156880419125E-01 + 1.1199121313308622E+00 1.6417545289989548E+00 2.0383097658763418E+00 + 2.2789347519025385E+00 2.3440681222937392E+00 2.2272299625498677E+00 + 1.9360980750363201E+00 1.4924995937884078E+00 9.3123330905785473E-01 + 2.9773083449394627E-01 -3.5533256929950591E-01 -9.7226230581406048E-01 + -1.4990921639315244E+00 -1.8884653602068640E+00 -2.1042086168223939E+00 + -2.1251456540877136E+00 -1.9477262319925077E+00 -1.5871224160630935E+00 + -1.0765633367601961E+00 -4.6483664342766146E-01 1.8793267117317322E-01 + 8.1592378186245629E-01 1.3541987276905649E+00 1.7455867341356455E+00 + 1.9471478365369983E+00 1.9354664510603403E+00 1.7100864895703973E+00 + 1.2945484385037609E+00 7.3471915830876611E-01 9.4399467867089040E-02 + -5.5147548407517388E-01 -1.1253997301631880E+00 -1.5566964918218589E+00 + -1.7906307203909908E+00 -1.7960389968748509E+00 -1.5703621077882974E+00 + -1.1412069046774718E+00 -5.6395374094826944E-01 8.4571861241781315E-02 + 7.1578730351437048E-01 1.2412870093689785E+00 1.5854735872121279E+00 + 1.6970842029795270E+00 1.5578029418564523E+00 1.1864219579461597E+00 + 6.3755945645091516E-01 -5.2908993733574257E-03 -6.4171340300517010E-01 + -1.1697774625295405E+00 -1.5026251053208506E+00 -1.5835463931980096E+00 + -1.3968507336364895E+00 -9.7231770057141120E-01 -3.8193881054102485E-01 + 2.7106906271628073E-01 8.6957958139784330E-01 1.3034857089621110E+00 + 1.4905767953227378E+00 1.3933561124908187E+00 1.0282015229912840E+00 + 4.6445330998451140E-01 -1.8717593930579668E-01 -7.9533024633786531E-01 + -1.2342739560922753E+00 -1.4105588344496440E+00 -1.2843810185439370E+00 + -8.8053356638505975E-01 -2.8569996735426889E-01 3.6836907348090608E-01 + 9.3302891843494118E-01 1.2765592479883821E+00 1.3160210585511274E+00 + 1.0392895259816120E+00 5.1107088342306728E-01 -1.3985916833634363E-01 + -7.5042465702292915E-01 -1.1636646548193739E+00 -1.2700062367197695E+00 + -1.0384303714866825E+00 -5.2827153086861878E-01 1.2316831624499182E-01 + 7.3553307908281429E-01 1.1347911327862374E+00 1.2037346715414630E+00 + 9.1890526908132864E-01 3.6172290069008645E-01 -3.0161201667022136E-01 + -8.6765561987237838E-01 -1.1579319250887514E+00 -1.0769832587842372E+00 + -6.4706165574015595E-01 -6.0542842239077015E-03 6.3355509695912748E-01 + 1.0537824818299140E+00 1.1064705702639317E+00 7.6869951399535352E-01 + 1.5673630293237489E-01 -5.0992513364033576E-01 -9.8509728751828651E-01 + -1.0873781181774154E+00 -7.7263865620565775E-01 -1.5766923009508976E-01 + 5.1840723308951320E-01 9.8448828014073675E-01 1.0468237049981768E+00 + 6.7331247143381623E-01 1.4968349272598984E-02 -6.4992927849960525E-01 + -1.0310261527115363E+00 -9.5416593209012113E-01 -4.4585222585466339E-01 + 2.6863821317104619E-01 8.5997884294818405E-01 1.0453683536255003E+00 + 7.2715150371158821E-01 5.0507167180927230E-02 -6.5560214921978988E-01 + -1.0346031039864274E+00 -8.8389805219890605E-01 -2.6925750754282252E-01 + 4.9474493926811663E-01 9.9982389748122769E-01 9.6198762939455651E-01 + 3.8689414694266733E-01 -4.1581688527047306E-01 -9.9157214236794056E-01 + -9.9686380202567004E-01 -4.0974666533522802E-01 4.3620282788083792E-01 + 1.0323467376398014E+00 9.9887576667981692E-01 3.3286431029817837E-01 + -5.6379370081809865E-01 -1.1169308651983378E+00 -9.4638543532548725E-01 + -1.3464931787569337E-01 7.9480009407330587E-01 1.2051292431919784E+00 + 7.8312681550271102E-01 -2.1295284520878269E-01 -1.0937775964267860E+00 + -1.2077797461450781E+00 -4.2746897724906274E-01 7.1042229625550413E-01 + 1.3572553248378580E+00 9.8164796751552197E-01 -1.8559498202771579E-01 + -1.2658593524417077E+00 -1.3811565710893725E+00 -3.7111596149128062E-01 + + + 2.3860186396047873E-15 1.2373971525891650E-10 4.9920716491894815E-10 + 1.1328705808391089E-09 2.0313277772293162E-09 3.2013085366690310E-09 + 4.6496770385157411E-09 6.3834343304436482E-09 8.4097208438666394E-09 + 1.0735818954011727E-08 1.3369155585422954E-08 1.6317304863689828E-08 + 1.9587990814206179E-08 2.3189090108781906E-08 2.7128634860942582E-08 + 3.1414815470766669E-08 3.6055983520124558E-08 4.1060654719200384E-08 + 4.6437511905189715E-08 5.2195408094085299E-08 5.8343369586474678E-08 + 6.4890599128294518E-08 7.1846479127497422E-08 7.9220574927609254E-08 + 8.7022638139165020E-08 9.5262610030037322E-08 1.0395062497567879E-07 + 1.1309701397032756E-07 1.2271230820023483E-07 1.3280724267999758E-07 + 1.4339275995309425E-07 1.5448001385774356E-07 1.6608037335922375E-07 + 1.7820542644980902E-07 1.9086698411750349E-07 2.0407708438476701E-07 + 2.1784799641845666E-07 2.3219222471221604E-07 2.4712251334258466E-07 + 2.6265185030010015E-07 2.7879347189670387E-07 2.9556086725078036E-07 + 3.1296778285117333E-07 3.3102822720156239E-07 3.4975647554659047E-07 + 3.6916707468117092E-07 3.8927484784441387E-07 4.1009489969965268E-07 + 4.3164262140206012E-07 4.5393369575537996E-07 4.7698410245932763E-07 + 5.0081012344922998E-07 5.2542834832951223E-07 5.5085567990266273E-07 + 5.7710933979533137E-07 6.0420687418326090E-07 6.3216615961675224E-07 + 6.6100540894842632E-07 6.9074317736505112E-07 7.2139836852524312E-07 + 7.5299024080488881E-07 7.8553841365214797E-07 8.1906287405394830E-07 + 8.5358398311590936E-07 8.8912248275765828E-07 9.2569950252555300E-07 + 9.6333656652483414E-07 1.0020556004733057E-06 1.0418789388786203E-06 + 1.0828293323413510E-06 1.1249299549860006E-06 1.1682044120221976E-06 + 1.2126767474383127E-06 1.2583714518298163E-06 1.3053134703647021E-06 + 1.3535282108883524E-06 1.4030415521702844E-06 1.4538798522952125E-06 + 1.5060699572009487E-06 1.5596392093656858E-06 1.6146154566472476E-06 + 1.6710270612769493E-06 1.7289029090107435E-06 1.7882724184403847E-06 + 1.8491655504673896E-06 1.9116128179426031E-06 1.9756452954742583E-06 + 2.0412946294074370E-06 2.1085930479779185E-06 2.1775733716434119E-06 + 2.2482690235952991E-06 2.3207140404539378E-06 2.3949430831507958E-06 + 2.4709914480005769E-06 2.5488950779666896E-06 2.6286905741233596E-06 + 2.7104152073178459E-06 2.7941069300361704E-06 2.8798043884759438E-06 + 2.9675469348298295E-06 3.0573746397833062E-06 3.1493283052304850E-06 + 3.2434494772116743E-06 3.3397804590766215E-06 3.4383643248772591E-06 + 3.5392449329940167E-06 3.6424669399996432E-06 3.7480758147647542E-06 + 3.8561178528092157E-06 3.9666401909036365E-06 4.0796908219253468E-06 + 4.1953186099731912E-06 4.3135733057456826E-06 4.4345055621870369E-06 + 4.5581669504057546E-06 4.6846099758704215E-06 4.8138880948875965E-06 + 4.9460557313665912E-06 5.0811682938761580E-06 5.2192821929981376E-06 + 5.3604548589831716E-06 5.5047447597137212E-06 5.6522114189797372E-06 + 5.8029154350723418E-06 5.9569184997010841E-06 6.1142834172402875E-06 + 6.2750741243102563E-06 6.4393557096991180E-06 6.6071944346311301E-06 + 6.7786577533875595E-06 6.9538143342861150E-06 7.1327340810252092E-06 + 7.3154881543993351E-06 7.5021489943919825E-06 7.6927903426525993E-06 + 7.8874872653642887E-06 8.0863161765089162E-06 8.2893548615366092E-06 + 8.4966825014465306E-06 8.7083796972861013E-06 8.9245284950759267E-06 + 9.1452124111676900E-06 9.3705164580425851E-06 9.6005271705578931E-06 + 9.8353326326494162E-06 1.0075022504497663E-05 1.0319688050165812E-05 + 1.0569422165717572E-05 1.0824319407823305E-05 1.1084476022862767E-05 + 1.1349989976533083E-05 1.1620960983970709E-05 1.1897490540396243E-05 + 1.2179681952291090E-05 1.2467640369115244E-05 1.2761472815575444E-05 + 1.3061288224453304E-05 1.3367197470003014E-05 1.3679313401928508E-05 + 1.3997750879950087E-05 1.4322626808970650E-05 1.4654060174851981E-05 + 1.4992172080811506E-05 1.5337085784450313E-05 1.5688926735423403E-05 + 1.6047822613763037E-05 1.6413903368866789E-05 1.6787301259161416E-05 + 1.7168150892454624E-05 1.7556589266986131E-05 1.7952755813190592E-05 + 1.8356792436184327E-05 1.8768843558988518E-05 1.9189056166501512E-05 + 1.9617579850233193E-05 2.0054566853814665E-05 2.0500172119296450E-05 + 2.0954553334248958E-05 2.1417870979679108E-05 2.1890288378776976E-05 + 2.2371971746507046E-05 2.2863090240058574E-05 2.3363816010169696E-05 + 2.3874324253340804E-05 2.4394793264951899E-05 2.4925404493300287E-05 + 2.5466342594573760E-05 2.6017795488776012E-05 2.6579954416620277E-05 + 2.7153013997408198E-05 2.7737172287910872E-05 2.8332630842269057E-05 + 2.8939594772930792E-05 2.9558272812643489E-05 3.0188877377519497E-05 + 3.0831624631193066E-05 3.1486734550087886E-05 3.2154430989814154E-05 + 3.2834941752714919E-05 3.3528498656581144E-05 3.4235337604556127E-05 + 3.4955698656249302E-05 3.5689826100080720E-05 3.6437968526877178E-05 + 3.7200378904741705E-05 3.7977314655218208E-05 3.8769037730773957E-05 + 3.9575814693622155E-05 4.0397916795908355E-05 4.1235620061283481E-05 + 4.2089205367888029E-05 4.2958958532771464E-05 4.3845170397771547E-05 + 4.4748136916879072E-05 4.5668159245113167E-05 4.6605543828933572E-05 + 4.7560602498216383E-05 4.8533652559819926E-05 4.9525016892768676E-05 + 5.0535024045082599E-05 5.1564008332280561E-05 5.2612309937586836E-05 + 5.3680275013869704E-05 5.4768255787342304E-05 5.5876610663055928E-05 + 5.7005704332216818E-05 5.8155907881357998E-05 5.9327598903397608E-05 + 6.0521161610616950E-05 6.1736986949591016E-05 6.2975472718104921E-05 + 6.4237023684091135E-05 6.5522051706621542E-05 6.6830975858990467E-05 + 6.8164222553924352E-05 6.9522225670954637E-05 7.0905426685991457E-05 + 7.2314274803136287E-05 7.3749227088770695E-05 7.5210748607963237E-05 + 7.6699312563230918E-05 7.8215400435699271E-05 7.9759502128699317E-05 + 8.1332116113846348E-05 8.2933749579640315E-05 8.4564918582634137E-05 + 8.6226148201211934E-05 8.7917972692023584E-05 8.9640935649120372E-05 + 9.1395590165839810E-05 9.3182498999484558E-05 9.5002234738846521E-05 + 9.6855379974622520E-05 9.8742527472773221E-05 1.0066428035087492E-04 + 1.0262125225751691E-04 1.0461406755479493E-04 1.0664336150395671E-04 + 1.0870978045425182E-04 1.1081398203504135E-04 1.1295663535122529E-04 + 1.1513842118204187E-04 1.1736003218330036E-04 1.1962217309310269E-04 + 1.2192556094111818E-04 1.2427092526146852E-04 1.2665900830928858E-04 + 1.2909056528102392E-04 1.3156636453853167E-04 1.3408718783704672E-04 + 1.3665383055708549E-04 1.3926710194034803E-04 1.4192782532969486E-04 + 1.4463683841326128E-04 1.4739499347278716E-04 1.5020315763622966E-04 + 1.5306221313473673E-04 1.5597305756405165E-04 1.5893660415043160E-04 + 1.6195378202115164E-04 1.6502553647967580E-04 1.6815282928557735E-04 + 1.7133663893928653E-04 1.7457796097175183E-04 1.7787780823909737E-04 + 1.8123721122236469E-04 1.8465721833242326E-04 1.8813889622014328E-04 + 1.9168333009191582E-04 1.9529162403061863E-04 1.9896490132211489E-04 + 2.0270430478738671E-04 2.0651099712039407E-04 2.1038616123176423E-04 + 2.1433100059840528E-04 2.1834673961915299E-04 2.2243462397654733E-04 + 2.2659592100485195E-04 2.3083192006441674E-04 2.3514393292249980E-04 + 2.3953329414065294E-04 2.4400136146878973E-04 2.4854951624604855E-04 + 2.5317916380856624E-04 2.5789173390428538E-04 2.6268868111491145E-04 + 2.6757148528514798E-04 2.7254165195932957E-04 2.7760071282558618E-04 + 2.8275022616766279E-04 2.8799177732453040E-04 2.9332697915791930E-04 + 2.9875747252791488E-04 3.0428492677674919E-04 3.0991104022093667E-04 + 3.1563754065188954E-04 3.2146618584516696E-04 3.2739876407849900E-04 + 3.3343709465874472E-04 3.3958302845792684E-04 3.4583844845851404E-04 + 3.5220527030809656E-04 3.5868544288362292E-04 3.6528094886536519E-04 + 3.7199380532077251E-04 3.7882606429839134E-04 3.8577981343201803E-04 + 3.9285717655526881E-04 4.0006031432673471E-04 4.0739142486591806E-04 + 4.1485274440012087E-04 4.2244654792248797E-04 4.3017514986138354E-04 + 4.3804090476131041E-04 4.4604620797555449E-04 4.5419349637077270E-04 + 4.6248524904371626E-04 4.7092398805030790E-04 4.7951227914727889E-04 + 4.8825273254658779E-04 4.9714800368283409E-04 5.0620079399390019E-04 + 5.1541385171503654E-04 5.2478997268663448E-04 5.3433200117591288E-04 + 5.4404283071276193E-04 5.5392540493998848E-04 5.6398271847820595E-04 + 5.7421781780563042E-04 5.8463380215302639E-04 5.9523382441407653E-04 + 6.0602109207142556E-04 6.1699886813869071E-04 6.2817047211868068E-04 + 6.3953928097813925E-04 6.5110873013926531E-04 6.6288231448832227E-04 + 6.7486358940161209E-04 6.8705617178912873E-04 6.9946374115618330E-04 + 7.1209004068331747E-04 7.2493887832481203E-04 7.3801412792612482E-04 + 7.5131973036056377E-04 7.6485969468554509E-04 7.7863809931876166E-04 + 7.9265909323460399E-04 8.0692689718119557E-04 8.2144580491837714E-04 + 8.3622018447701910E-04 8.5125447944001207E-04 8.6655321024532738E-04 + 8.8212097551150579E-04 8.9796245338598227E-04 9.1408240291661737E-04 + 9.3048566544685668E-04 9.4717716603490447E-04 9.6416191489734284E-04 + 9.8144500887759750E-04 9.9903163293970049E-04 1.0169270616877590E-03 + 1.0351366609116007E-03 1.0536658891590143E-03 1.0725202993350784E-03 + 1.0917055403290073E-03 1.1112273586690192E-03 1.1310916002056878E-03 + 1.1513042118242735E-03 1.1718712431865444E-03 1.1927988485025617E-03 + 1.2140932883329934E-03 1.2357609314224288E-03 1.2578082565642727E-03 + 1.2802418544977227E-03 1.3030684298374225E-03 1.3262948030363102E-03 + 1.3499279123822664E-03 1.3739748160291236E-03 1.3984426940626430E-03 + 1.4233388506020338E-03 1.4486707159376681E-03 1.4744458487055598E-03 + 1.5006719380993027E-03 1.5273568061200408E-03 1.5545084098651976E-03 + 1.5821348438565628E-03 1.6102443424084721E-03 1.6388452820367259E-03 + 1.6679461839089627E-03 1.6975557163372134E-03 1.7276826973133352E-03 + 1.7583360970880885E-03 1.7895250407945766E-03 1.8212588111168493E-03 + 1.8535468510044056E-03 1.8863987664334237E-03 1.9198243292154807E-03 + 1.9538334798546190E-03 1.9884363304535561E-03 2.0236431676699082E-03 + 2.0594644557232625E-03 2.0959108394540014E-03 2.1329931474347347E-03 + 2.1707223951352773E-03 2.2091097881420520E-03 2.2481667254329115E-03 + 2.2879048027082574E-03 2.3283358157794899E-03 2.3694717640157432E-03 + 2.4113248538498774E-03 2.4539075023448406E-03 2.4972323408213072E-03 + 2.5413122185477637E-03 2.5861602064940329E-03 2.6317896011493753E-03 + 2.6782139284062486E-03 2.7254469475108730E-03 2.7735026550817217E-03 + 2.8223952891971485E-03 2.8721393335532758E-03 2.9227495216934294E-03 + 2.9742408413102606E-03 3.0266285386218892E-03 3.0799281228232585E-03 + 3.1341553706140772E-03 3.1893263308045597E-03 3.2454573290004300E-03 + 3.3025649723684041E-03 3.3606661544836832E-03 3.4197780602607097E-03 + 3.4799181709687646E-03 3.5411042693337608E-03 3.6033544447277265E-03 + 3.6666870984475484E-03 3.7311209490844036E-03 3.7966750379855416E-03 + 3.8633687348099059E-03 3.9312217431792954E-03 4.0002541064266114E-03 + 4.0704862134429559E-03 4.1419388046251664E-03 4.2146329779256374E-03 + 4.2885901950060392E-03 4.3638322874968707E-03 4.4403814633644989E-03 + 4.5182603133876974E-03 4.5974918177453970E-03 4.6780993527176943E-03 + 4.7601066975019694E-03 4.8435380411461244E-03 4.9284179896009455E-03 + 5.0147715728936296E-03 5.1026242524245596E-03 5.1920019283894191E-03 + 5.2829309473287848E-03 5.3754381098075031E-03 5.4695506782258593E-03 + 5.5652963847649950E-03 5.6627034394687295E-03 5.7618005384642906E-03 + 5.8626168723241211E-03 5.9651821345713726E-03 6.0695265303313791E-03 + 6.1756807851318096E-03 6.2836761538538387E-03 6.3935444298370480E-03 + 6.5053179541406355E-03 6.6190296249637147E-03 6.7347129072272320E-03 + 6.8524018423204609E-03 6.9721310580147400E-03 7.0939357785475060E-03 + 7.2178518348792881E-03 7.3439156751268359E-03 7.4721643751753065E-03 + 7.6026356494724922E-03 7.7353678620084645E-03 7.8704000374834725E-03 + 8.0077718726675757E-03 8.1475237479550888E-03 8.2896967391174279E-03 + 8.4343326292574596E-03 8.5814739209689912E-03 8.7311638487048183E-03 + 8.8834463913570142E-03 9.0383662850528953E-03 9.1959690361705336E-03 + 9.3563009345773839E-03 9.5194090670961580E-03 9.6853413312013373E-03 + 9.8541464489507943E-03 1.0025873981156038E-02 1.0200574341795658E-02 + 1.0378298812675678E-02 1.0559099558341290E-02 1.0743029641244210E-02 + 1.0930143037169892E-02 1.1120494650929350E-02 1.1314140332319681E-02 + 1.1511136892358222E-02 1.1711542119794745E-02 1.1915414797906747E-02 + 1.2122814721582293E-02 1.2333802714695630E-02 1.2548440647780261E-02 + 1.2766791456004971E-02 1.2988919157457455E-02 1.3214888871741244E-02 + 1.3444766838890839E-02 1.3678620438611032E-02 1.3916518209845311E-02 + 1.4158529870679377E-02 1.4404726338585239E-02 1.4655179751012073E-02 + 1.4909963486329045E-02 1.5169152185126867E-02 1.5432821771883622E-02 + 1.5701049477001228E-02 1.5973913859219136E-02 1.6251494828411074E-02 + 1.6533873668771886E-02 1.6821133062400743E-02 1.7113357113287861E-02 + 1.7410631371710984E-02 1.7713042859049226E-02 1.8020680093020765E-02 + 1.8333633113352232E-02 1.8651993507886461E-02 1.8975854439136498E-02 + 1.9305310671293107E-02 1.9640458597693967E-02 1.9981396268761685E-02 + 2.0328223420419202E-02 2.0681041502990102E-02 2.1039953710592838E-02 + 2.1405065011036263E-02 2.1776482176225732E-02 2.2154313813087995E-02 + 2.2538670395023726E-02 2.2929664293896937E-02 2.3327409812569800E-02 + 2.3732023217992521E-02 2.4143622774857348E-02 2.4562328779826705E-02 + 2.4988263596344602E-02 2.5421551690041396E-02 2.5862319664741951E-02 + 2.6310696299087527E-02 2.6766812583781323E-02 2.7230801759468622E-02 + 2.7702799355261695E-02 2.8182943227921312E-02 2.8671373601704596E-02 + 2.9168233108891585E-02 2.9673666831000981E-02 3.0187822340707854E-02 + 3.0710849744473606E-02 3.1242901725901540E-02 3.1784133589829393E-02 + 3.2334703307171184E-02 3.2894771560521875E-02 3.3464501790536443E-02 + 3.4044060243097023E-02 3.4633616017281078E-02 3.5233341114144529E-02 + 3.5843410486332730E-02 3.6464002088533558E-02 3.7095296928786520E-02 + 3.7737479120662921E-02 3.8390735936330245E-02 3.9055257860516897E-02 + 3.9731238645391263E-02 4.0418875366371530E-02 4.1118368478880417E-02 + 4.1829921876061688E-02 4.2553742947473473E-02 4.3290042638775998E-02 + 4.4039035512428909E-02 4.4800939809415519E-02 4.5575977512011437E-02 + 4.6364374407613936E-02 4.7166360153651193E-02 4.7982168343587303E-02 + 4.8812036574043385E-02 4.9656206513050860E-02 5.0514923969458669E-02 + 5.1388438963510190E-02 5.2277005798611956E-02 5.3180883134311741E-02 + 5.4100334060508057E-02 5.5035626172909254E-02 5.5987031649764270E-02 + 5.6954827329885258E-02 5.7939294791984071E-02 5.8940720435343090E-02 + 5.9959395561843487E-02 6.0995616459371779E-02 6.2049684486629501E-02 + 6.3121906159366276E-02 6.4212593238061624E-02 6.5322062817078488E-02 + 6.6450637415311709E-02 6.7598645068358151E-02 6.8766419422230302E-02 + 6.9954299828640848E-02 7.1162631441882118E-02 7.2391765317328355E-02 + 7.3642058511584674E-02 7.4913874184311210E-02 7.6207581701748697E-02 + 7.7523556741974156E-02 7.8862181401912798E-02 8.0223844306136355E-02 + 8.1608940717474959E-02 8.3017872649473926E-02 8.4451048980722615E-02 + 8.5908885571087598E-02 8.7391805379878479E-02 8.8900238585980687E-02 + 9.0434622709982704E-02 9.1995402738332357E-02 9.3583031249554055E-02 + 9.5197968542558242E-02 9.6840682767079758E-02 9.8511650056274533E-02 + 1.0021135466151264E-01 1.0194028908939960E-01 1.0369895424106439E-01 + 1.0548785955374650E-01 1.0730752314472035E-01 1.0915847195759287E-01 + 1.1104124191101369E-01 1.1295637804983204E-01 1.1490443469874161E-01 + 1.1688597561845095E-01 1.1890157416442035E-01 1.2095181344820218E-01 + 1.2303728650142820E-01 1.2515859644248239E-01 1.2731635664590363E-01 + 1.2951119091455743E-01 1.3174373365462105E-01 1.3401463005342437E-01 + 1.3632453626019225E-01 1.3867411956973016E-01 1.4106405860909879E-01 + 1.4349504352732481E-01 1.4596777618819101E-01 1.4848297036615629E-01 + 1.5104135194544785E-01 1.5364365912237873E-01 1.5629064261093356E-01 + 1.5898306585167812E-01 1.6172170522403567E-01 1.6450735026198468E-01 + 1.6734080387322667E-01 1.7022288256187748E-01 1.7315441665473216E-01 + 1.7613625053115584E-01 1.7916924285665536E-01 1.8225426682018589E-01 + 1.8539221037524384E-01 1.8858397648480435E-01 1.9183048337015571E-01 + 1.9513266476369243E-01 1.9849147016571614E-01 2.0190786510530812E-01 + 2.0538283140532779E-01 2.0891736745159653E-01 2.1251248846632817E-01 + 2.1616922678586128E-01 2.1988863214275842E-01 2.2367177195232743E-01 + 2.2751973160363484E-01 2.3143361475506274E-01 2.3541454363447942E-01 + 2.3946365934408331E-01 2.4358212216998565E-01 2.4777111189659323E-01 + 2.5203182812585867E-01 2.5636549060145886E-01 2.6077333953797510E-01 + 2.6525663595513077E-01 2.6981666201716076E-01 2.7445472137737370E-01 + 2.7917213952798131E-01 2.8397026415525489E-01 2.8885046550008031E-01 + 2.9381413672398188E-01 2.9886269428067835E-01 3.0399757829324736E-01 + 3.0922025293696059E-01 3.1453220682786359E-01 3.1993495341716499E-01 + 3.2543003139151627E-01 3.3101900507923571E-01 3.3670346486256231E-01 + 3.4248502759599775E-01 3.4836533703081879E-01 3.5434606424581855E-01 + 3.6042890808435635E-01 3.6661559559777984E-01 3.7290788249529688E-01 + 3.7930755360036122E-01 3.8581642331364346E-01 3.9243633608265738E-01 + 3.9916916687811599E-01 4.0601682167707659E-01 4.1298123795295089E-01 + 4.2006438517244826E-01 4.2726826529951373E-01 4.3459491330633832E-01 + 4.4204639769149695E-01 4.4962482100528817E-01 4.5733232038233218E-01 + 4.6517106808150521E-01 4.7314327203325640E-01 4.8125117639438092E-01 + 4.8949706211030269E-01 4.9788324748493734E-01 5.0641208875817978E-01 + 5.1508598069108313E-01 5.2390735715877446E-01 5.3287869175118097E-01 + 5.4200249838158898E-01 5.5128133190311313E-01 5.6071778873310196E-01 + 5.7031450748554657E-01 5.8007416961151415E-01 5.8999950004766266E-01 + 6.0009326787286954E-01 6.1035828697300787E-01 6.2079741671390776E-01 + 6.3141356262253001E-01 6.4220967707637466E-01 6.5318876000114989E-01 + 6.6435385957672854E-01 6.7570807295139235E-01 6.8725454696438604E-01 + 6.9899647887678140E-01 7.1093711711066687E-01 7.2307976199664137E-01 + 7.3542776652962139E-01 7.4798453713293589E-01 7.6075353443071136E-01 + 7.7373827402849527E-01 7.8694232730211544E-01 8.0036932219471646E-01 + 8.1402294402195918E-01 8.2790693628529954E-01 8.4202510149331888E-01 + 8.5638130199102769E-01 8.7097946079706967E-01 8.8582356244876248E-01 + 9.0091765385486289E-01 9.1626584515597587E-01 9.3187231059248821E-01 + 9.4774128937992974E-01 9.6387708659160720E-01 9.8028407404839613E-01 + 9.9696669121552162E-01 1.0139294461061947E+00 1.0311769161919024E+00 + 1.0487137493191787E+00 1.0665446646326591E+00 1.0846744535042085E+00 + 1.1031079804678847E+00 1.1218501841605062E+00 1.1409060782675555E+00 + 1.1602807524741661E+00 1.1799793734208761E+00 1.2000071856638550E+00 + 1.2203695126392857E+00 1.2410717576315256E+00 1.2621194047447304E+00 + 1.2835180198775074E+00 1.3052732517002268E+00 1.3273908326345287E+00 + 1.3498765798346242E+00 1.3727363961698607E+00 1.3959762712080874E+00 + 1.4196022821992713E+00 1.4436205950588477E+00 1.4680374653501782E+00 + 1.4928592392655395E+00 1.5180923546049860E+00 1.5437433417524415E+00 + 1.5698188246482871E+00 1.5963255217577257E+00 1.6232702470341460E+00 + 1.6506599108767068E+00 1.6785015210812491E+00 1.7068021837836997E+00 + 1.7355691043950237E+00 1.7648095885267547E+00 1.7945310429061319E+00 + 1.8247409762797471E+00 1.8554470003046455E+00 1.8866568304256941E+00 + 1.9183782867380901E+00 1.9506192948336787E+00 1.9833878866298673E+00 + 2.0166922011797044E+00 2.0505404854617901E+00 2.0849410951485035E+00 + 2.1199024953510168E+00 2.1554332613395171E+00 2.1915420792370153E+00 + 2.2282377466849432E+00 2.2655291734788081E+00 2.3034253821719943E+00 + 2.3419355086458462E+00 2.3810688026439202E+00 2.4208346282683739E+00 + 2.4612424644363156E+00 2.5023019052938045E+00 2.5440226605852319E+00 + 2.5864145559755509E+00 2.6294875333228971E+00 2.6732516508989259E+00 + 2.7177170835541777E+00 2.7628941228255930E+00 2.8087931769832819E+00 + 2.8554247710134519E+00 2.9027995465344278E+00 2.9509282616423627E+00 + 2.9998217906833600E+00 3.0494911239483762E+00 3.0999473672874029E+00 + 3.1512017416389884E+00 3.2032655824713014E+00 3.2561503391306115E+00 + 3.3098675740930830E+00 3.3644289621153973E+00 3.4198462892798331E+00 + 3.4761314519290929E+00 3.5332964554860244E+00 3.5913534131533673E+00 + 3.6503145444882228E+00 3.7101921738460355E+00 3.7709987286884825E+00 + 3.8327467377496767E+00 3.8954488290546707E+00 3.9591177277842813E+00 + 4.0237662539798347E+00 4.0894073200814844E+00 4.1560539282932201E+00 + 4.2237191677677668E+00 4.2924162116041122E+00 4.3621583136504167E+00 + 4.4329588051044961E+00 4.5048310909041751E+00 4.5777886458992629E+00 + 4.6518450107969098E+00 4.7270137878715834E+00 4.8033086364308089E+00 + 4.8807432680275626E+00 4.9593314414096952E+00 5.0390869571968500E+00 + 5.1200236522746474E+00 5.2021553938959038E+00 5.2854960734781526E+00 + 5.3700596000866394E+00 5.4558598935913345E+00 5.5429108774864781E+00 + 5.6312264713606375E+00 5.7208205830050858E+00 5.8117071001477454E+00 + 5.9038998817998234E+00 5.9974127492016747E+00 6.0922594763543900E+00 + 6.1884537801227539E+00 6.2860093098953644E+00 6.3849396367868927E+00 + 6.4852582423674381E+00 6.5869785069031561E+00 6.6901136970923254E+00 + 6.7946769532802689E+00 6.9006812761365310E+00 7.0081395127768262E+00 + 7.1170643423122675E+00 7.2274682608078020E+00 7.3393635656312801E+00 + 7.4527623391744742E+00 7.5676764319264018E+00 7.6841174448795648E+00 + 7.8020967112486410E+00 7.9216252774813354E+00 8.0427138835401397E+00 + 8.1653729424337822E+00 8.2896125189764174E+00 8.4154423077525085E+00 + 8.5428716102645925E+00 8.6719093112410732E+00 8.8025638540805176E+00 + 8.9348432154090123E+00 9.0687548787260059E+00 9.2043058071146593E+00 + 9.3415024149915613E+00 9.4803505388710878E+00 9.6208554071187375E+00 + 9.7630216086679944E+00 9.9068530606748464E+00 1.0052352975083803E+01 + 1.0199523824079371E+01 1.0348367304396367E+01 1.0498884300462768E+01 + 1.0651074846348351E+01 1.0804938086492896E+01 1.0960472235186982E+01 + 1.1117674534779241E+01 1.1276541212583520E+01 1.1437067436460165E+01 + 1.1599247269045105E+01 1.1763073620601656E+01 1.1928538200469651E+01 + 1.2095631467087586E+01 1.2264342576563479E+01 1.2434659329771417E+01 + 1.2606568117950975E+01 1.2780053866788439E+01 1.2955099978958403E+01 + 1.3131688275107198E+01 1.3309798933259634E+01 1.3489410426631958E+01 + 1.3670499459836954E+01 1.3853040903466590E+01 1.4037007727041910E+01 + 1.4222370930320382E+01 1.4409099472953551E+01 1.4597160202491176E+01 + 1.4786517780730010E+01 1.4977134608408134E+01 1.5168970748250613E+01 + 1.5361983846373377E+01 1.5556129052058594E+01 1.5751358935917095E+01 + 1.5947623406458471E+01 1.6144869625094820E+01 1.6343041919608609E+01 + 1.6542081696120498E+01 1.6741927349600338E+01 1.6942514172968767E+01 + 1.7143774264845934E+01 1.7345636436009791E+01 1.7548026114634219E+01 + 1.7750865250387015E+01 1.7954072217474529E+01 1.8157561716731529E+01 + 1.8361244676863464E+01 1.8565028154959098E+01 1.8768815236404407E+01 + 1.8972504934339103E+01 1.9175992088810684E+01 1.9379167265795523E+01 + 1.9581916656269147E+01 1.9784121975525292E+01 1.9985660362958239E+01 + 2.0186404282540249E+01 2.0386221424244983E+01 2.0584974606686256E+01 + 2.0782521681261187E+01 2.0978715438110140E+01 2.1173403514225466E+01 + 2.1366428304067476E+01 2.1557626873069118E+01 2.1746830874437119E+01 + 2.1933866469686116E+01 2.2118554253368696E+01 2.2300709182496785E+01 + 2.2480140511179449E+01 2.2656651731035673E+01 2.2830040517975512E+01 + 2.3000098685978095E+01 2.3166612148532199E+01 2.3329360888444921E+01 + 2.3488118936762657E+01 2.3642654361592054E+01 2.3792729267650753E+01 + 2.3938099807422571E+01 2.4078516204838859E+01 2.4213722792454394E+01 + 2.4343458063135220E+01 2.4467454737326939E+01 2.4585439847021760E+01 + 2.4697134837596646E+01 2.4802255688747049E+01 2.4900513055794832E+01 + 2.4991612432704695E+01 2.5075254338196352E+01 2.5151134526396664E+01 + 2.5218944223529135E+01 2.5278370392192603E+01 2.5329096024834424E+01 + 2.5370800468074112E+01 2.5403159779583291E+01 2.5425847119274586E+01 + 2.5438533176595168E+01 2.5440886635760528E+01 2.5432574680797796E+01 + 2.5413263542296932E+01 2.5382619087788925E+01 2.5340307457683586E+01 + 2.5285995748702955E+01 2.5219352746738181E+01 2.5140049711037754E+01 + 2.5047761211598907E+01 2.4942166021581873E+01 2.4822948066495531E+01 + 2.4689797431808280E+01 2.4542411430521234E+01 2.4380495732092893E+01 + 2.4203765553927596E+01 2.4011946916426481E+01 2.3804777962345611E+01 + 2.3582010340908372E+01 2.3343410656771646E+01 2.3088761983539101E+01 + 2.2817865441051282E+01 2.2530541835142998E+01 2.2226633357946451E+01 + 2.1906005346118892E+01 2.1568548093575675E+01 2.1214178714409236E+01 + 2.0842843050654086E+01 2.0454517618404886E+01 2.0049211584502103E+01 + 1.9626968764539701E+01 1.9187869631318495E+01 1.8732033321039236E+01 + 1.8259619622481065E+01 1.7770830932129989E+01 1.7265914155670657E+01 + 1.6745162533416391E+01 1.6208917364095843E+01 1.5657569597897449E+01 + 1.5091561265776441E+01 1.4511386707699469E+01 1.3917593557699934E+01 + 1.3310783438305362E+01 1.2691612311006917E+01 1.2060790422932090E+01 + 1.1419081782684557E+01 1.0767303090355785E+01 1.0106322037935371E+01 + 9.4370548866534261E+00 8.7604632170918286E+00 8.0775497361228652E+00 + 7.3893530117353867E+00 6.6969409925080665E+00 6.0014031527365219E+00 + 5.3038410868813353E+00 4.6053573579397291E+00 3.9070423833644101E+00 + 3.2099591191007919E+00 2.5151252769776034E+00 1.8234927828458243E+00 + 1.1359241522954264E+00 4.5316542739225296E-01 -2.2417663309305888E-01 + -8.9557547803532578E-01 -1.5605074720299621E+00 -2.2184446366939254E+00 + -2.8688548778017640E+00 -3.5112022332886035E+00 -4.1449471437992331E+00 + -4.7695467475401703E+00 -5.3844552012570315E+00 -5.9891240292113261E+00 + -6.5830025020648710E+00 -7.1655380475958061E+00 -7.7361766951642297E+00 + -8.2943635558153197E+00 -8.8395433398528400E+00 -9.3711609136314724E+00 + -9.8886618972029421E+00 -1.0391493304304818E+01 -1.0879104226000353E+01 + -1.1350946559062592E+01 -1.1806475779943936E+01 -1.2245151764882609E+01 + -1.2666439656373313E+01 -1.3069810775868731E+01 -1.3454743582189682E+01 + -1.3820724674708250E+01 -1.4167249839940006E+01 -1.4493825139752875E+01 + -1.4799968038987126E+01 -1.5085208569903392E+01 -1.5349090530562409E+01 + -1.5591172714014725E+01 -1.5811030165076357E+01 -1.6008255461514814E+01 + -1.6182460016697270E+01 -1.6333275401183162E+01 -1.6460354681382885E+01 + -1.6563373774253485E+01 -1.6642032818033780E+01 -1.6696057560188439E+01 + -1.6725200764963564E+01 -1.6729243644157272E+01 -1.6707997315761201E+01 + -1.6661304295909570E+01 -1.6589040029945632E+01 -1.6491114468274080E+01 + -1.6367473691921191E+01 -1.6218101591332402E+01 -1.6043021599914805E+01 + -1.5842298481251699E+01 -1.5616040165909785E+01 -1.5364399630508760E+01 + -1.5087576808430285E+01 -1.4785820518426842E+01 -1.4459430394640622E+01 + -1.4108758799311152E+01 -1.3734212697836654E+01 -1.3336255474884936E+01 + -1.2915408669901330E+01 -1.2472253610548751E+01 -1.2007432923224314E+01 + -1.1521651900694199E+01 -1.1015679707939494E+01 -1.0490350408389498E+01 + -9.9465637937426425E+00 -9.3852860014674739E+00 -8.8075499048034480E+00 + -8.2144552606303165E+00 -7.6071686009571051E+00 -6.9869228540257939E+00 + -6.3550166811672710E+00 -5.7128135156311615E+00 -5.0617402896834154E+00 + -4.4032858363661633E+00 -3.7389989524861815E+00 -3.0704861096746074E+00 + -2.3994088007726120E+00 -1.7274805093721155E+00 -1.0564632910973843E+00 + -3.8816395617183219E-01 2.7557015601263274E-01 9.3285581820690677E-01 + 1.5817789787457504E+00 2.2204002514934169E+00 2.8467608345505746E+00 + 3.4588888576171128E+00 4.0548061553005113E+00 4.6325354608171248E+00 + 5.1901080114609313E+00 5.7255715539213643E+00 6.2369987340325945E+00 + 6.7224958518468538E+00 7.1802119590624542E+00 7.6083482718261308E+00 + 8.0051678677898490E+00 8.3690056320623132E+00 8.6982784123789898E+00 + 8.9914953394488286E+00 9.2472682640492536E+00 9.4643222580574005E+00 + 9.6415061222539329E+00 9.7778028394396586E+00 9.8723399071896853E+00 + 9.9243994804613180E+00 9.9334282502937743E+00 9.8990469810165074E+00 + 9.8210596247505766E+00 9.6994619285786410E+00 9.5344494465520953E+00 + 9.3264248659226734E+00 9.0760045543869570E+00 8.7840242329904523E+00 + 8.4515436777756339E+00 8.0798503519540272E+00 7.6704618699554237E+00 + 7.2251271948841955E+00 6.7458264716041958E+00 6.2347693998414453E+00 + 5.6943920541749451E+00 5.1273520616531147E+00 4.5365220531138206E+00 + 3.9249813101619351E+00 3.2960055378460162E+00 2.6530547022065352E+00 + 1.9997588825428916E+00 1.3399021008719099E+00 6.7740410516782745E-01 + 1.6300098991681451E-02 -6.3928157206910974E-01 -1.2851437470720795E+00 + -1.9170467379339453E+00 -2.5307365043357266E+00 -3.1219746154552421E+00 + -3.6865698720259772E+00 -4.2204114340959782E+00 -4.7195032704268165E+00 + -5.1799997149516459E+00 -5.5982418843718129E+00 -5.9707946791281934E+00 + -6.2944840580016299E+00 -6.5664342448941015E+00 -6.7841044953839171E+00 + -6.9453250209552451E+00 -7.0483316409415515E+00 -7.0917987068097119E+00 + -7.0748698211072725E+00 -6.9971858548967285E+00 -6.8589097535382395E+00 + -6.6607476120127904E+00 -6.4039654983683487E+00 -6.0904015080979708E+00 + -5.7224725440822368E+00 -5.3031753368871213E+00 -4.8360812493990339E+00 + -4.3253244486352305E+00 -3.7755830766437071E+00 -3.1920531121530731E+00 + -2.5804146853716010E+00 -1.9467906902389243E+00 -1.2976976314986892E+00 + -6.3998874797934535E-01 1.9210431989507826E-02 6.7257382272224198E-01 + 1.3126533873287123E+00 1.9319640634437820E+00 2.5230743071792499E+00 + 3.0787014028555393E+00 3.5918105330523349E+00 4.0557164511337955E+00 + 4.4641864495539432E+00 4.8115431751482136E+00 5.0927657107831363E+00 + 5.3035872249456615E+00 5.4405873911037377E+00 5.5012777011211877E+00 + 5.4841777459140593E+00 5.3888805161533648E+00 5.2161047903242110E+00 + 4.9677327308146744E+00 4.6468309045809937E+00 4.2576530865070179E+00 + 3.8056233934288390E+00 3.2972985367533831E+00 2.7403082725609917E+00 + 2.1432734698646874E+00 1.5157016088743205E+00 8.6785995885859157E-01 + 2.1062716515310420E-01 -4.4467550898593461E-01 -1.0864714953953443E+00 + -1.7031324351400148E+00 -2.2831949690766273E+00 -2.8155873148841071E+00 + -3.2898615958594375E+00 -3.6964273789435991E+00 -4.0267814261771901E+00 + -4.2737282837218151E+00 -4.4315860449240079E+00 -4.4963714479298797E+00 + -4.4659584228755129E+00 -4.3402043063348499E+00 -4.1210382072841387E+00 + -3.8125064524609469E+00 -3.4207706692817408E+00 -2.9540548867026035E+00 + -2.4225390486216156E+00 -1.8381975346524739E+00 -1.2145826565906990E+00 + -5.6655462547481394E-01 9.0038864246663436E-02 7.3872854651212450E-01 + 1.3628283196261735E+00 1.9458703576001144E+00 2.4720604382584601E+00 + 2.9267417526292752E+00 3.2968540864544704E+00 3.5713741672842154E+00 + 3.7417222230886096E+00 3.8021194717993745E+00 3.7498814213147891E+00 + 3.5856325628439598E+00 3.3134293308319696E+00 2.9407801072627975E+00 + 2.4785535736201534E+00 1.9407698429357856E+00 1.3442724927806049E+00 + 7.0828379378715067E-01 5.3849982255423375E-02 -5.9681177695381926E-01 + -1.2210482166310606E+00 -1.7965653054044506E+00 -2.3022583999188755E+00 + -2.7190476623347957E+00 -3.0306861566674250E+00 -3.2245060531488710E+00 + -3.2920676652410812E+00 -3.2296768176424542E+00 -3.0387384517439191E+00 + -2.7259185163842479E+00 -2.3030920935942514E+00 -1.7870633135944651E+00 + -1.1990517672065426E+00 -5.6395057053867559E-01 9.0627386178657843E-02 + 7.3548663212418319E-01 1.3411296318011001E+00 1.8791294890987653E+00 + 2.3235341136680443E+00 2.6522336667116018E+00 2.8482184751690971E+00 + 2.9006534361723744E+00 2.8056977481951728E+00 2.5670059598944888E+00 + 2.1958579688531858E+00 1.7108816206891355E+00 1.1373515531549692E+00 + 5.0607118533531081E-01 -1.4812976335893879E-01 -7.8822345851238296E-01 + -1.3770533875948776E+00 -1.8795373842172576E+00 -2.2648777160464855E+00 + -2.5086390579334017E+00 -2.5945504116150686E+00 -2.5158915420081436E+00 + -2.2763391803784367E+00 -1.8901733801293230E+00 -1.3817795405398803E+00 + -7.8442544356941124E-01 -1.3834301595478601E-01 5.1180156880419125E-01 + 1.1199121313308622E+00 1.6417545289989548E+00 2.0383097658763418E+00 + 2.2789347519025385E+00 2.3440681222937392E+00 2.2272299625498677E+00 + 1.9360980750363201E+00 1.4924995937884078E+00 9.3123330905785473E-01 + 2.9773083449394627E-01 -3.5533256929950591E-01 -9.7226230581406048E-01 + -1.4990921639315244E+00 -1.8884653602068640E+00 -2.1042086168223939E+00 + -2.1251456540877136E+00 -1.9477262319925077E+00 -1.5871224160630935E+00 + -1.0765633367601961E+00 -4.6483664342766146E-01 1.8793267117317322E-01 + 8.1592378186245629E-01 1.3541987276905649E+00 1.7455867341356455E+00 + 1.9471478365369983E+00 1.9354664510603403E+00 1.7100864895703973E+00 + 1.2945484385037609E+00 7.3471915830876611E-01 9.4399467867089040E-02 + -5.5147548407517388E-01 -1.1253997301631880E+00 -1.5566964918218589E+00 + -1.7906307203909908E+00 -1.7960389968748509E+00 -1.5703621077882974E+00 + -1.1412069046774718E+00 -5.6395374094826944E-01 8.4571861241781315E-02 + 7.1578730351437048E-01 1.2412870093689785E+00 1.5854735872121279E+00 + 1.6970842029795270E+00 1.5578029418564523E+00 1.1864219579461597E+00 + 6.3755945645091516E-01 -5.2908993733574257E-03 -6.4171340300517010E-01 + -1.1697774625295405E+00 -1.5026251053208506E+00 -1.5835463931980096E+00 + -1.3968507336364895E+00 -9.7231770057141120E-01 -3.8193881054102485E-01 + 2.7106906271628073E-01 8.6957958139784330E-01 1.3034857089621110E+00 + 1.4905767953227378E+00 1.3933561124908187E+00 1.0282015229912840E+00 + 4.6445330998451140E-01 -1.8717593930579668E-01 -7.9533024633786531E-01 + -1.2342739560922753E+00 -1.4105588344496440E+00 -1.2843810185439370E+00 + -8.8053356638505975E-01 -2.8569996735426889E-01 3.6836907348090608E-01 + 9.3302891843494118E-01 1.2765592479883821E+00 1.3160210585511274E+00 + 1.0392895259816120E+00 5.1107088342306728E-01 -1.3985916833634363E-01 + -7.5042465702292915E-01 -1.1636646548193739E+00 -1.2700062367197695E+00 + -1.0384303714866825E+00 -5.2827153086861878E-01 1.2316831624499182E-01 + 7.3553307908281429E-01 1.1347911327862374E+00 1.2037346715414630E+00 + 9.1890526908132864E-01 3.6172290069008645E-01 -3.0161201667022136E-01 + -8.6765561987237838E-01 -1.1579319250887514E+00 -1.0769832587842372E+00 + -6.4706165574015595E-01 -6.0542842239077015E-03 6.3355509695912748E-01 + 1.0537824818299140E+00 1.1064705702639317E+00 7.6869951399535352E-01 + 1.5673630293237489E-01 -5.0992513364033576E-01 -9.8509728751828651E-01 + -1.0873781181774154E+00 -7.7263865620565775E-01 -1.5766923009508976E-01 + 5.1840723308951320E-01 9.8448828014073675E-01 1.0468237049981768E+00 + 6.7331247143381623E-01 1.4968349272598984E-02 -6.4992927849960525E-01 + -1.0310261527115363E+00 -9.5416593209012113E-01 -4.4585222585466339E-01 + 2.6863821317104619E-01 8.5997884294818405E-01 1.0453683536255003E+00 + 7.2715150371158821E-01 5.0507167180927230E-02 -6.5560214921978988E-01 + -1.0346031039864274E+00 -8.8389805219890605E-01 -2.6925750754282252E-01 + 4.9474493926811663E-01 9.9982389748122769E-01 9.6198762939455651E-01 + 3.8689414694266733E-01 -4.1581688527047306E-01 -9.9157214236794056E-01 + -9.9686380202567004E-01 -4.0974666533522802E-01 4.3620282788083792E-01 + 1.0323467376398014E+00 9.9887576667981692E-01 3.3286431029817837E-01 + -5.6379370081809865E-01 -1.1169308651983378E+00 -9.4638543532548725E-01 + -1.3464931787569337E-01 7.9480009407330587E-01 1.2051292431919784E+00 + 7.8312681550271102E-01 -2.1295284520878269E-01 -1.0937775964267860E+00 + -1.2077797461450781E+00 -4.2746897724906274E-01 7.1042229625550413E-01 + 1.3572553248378580E+00 9.8164796751552197E-01 -1.8559498202771579E-01 + -1.2658593524417077E+00 -1.3811565710893725E+00 -3.7111596149128062E-01 + + + 3.3068950337555706E-17 1.7149671630043769E-12 6.9187479022006411E-12 + 1.5700988498083183E-11 2.8153131174046684E-11 4.4368447165336460E-11 + 6.4442070375498980E-11 8.8471031630594109E-11 1.1655429354161901E-10 + 1.4879278598576469E-10 1.8528944221731300E-10 2.2614923561918092E-10 + 2.7147921710628163E-10 3.2138855319209998E-10 3.7598856473005569E-10 + 4.3539276634143032E-10 4.9971690654183703E-10 5.6907900857844142E-10 + 6.4359941199031111E-10 7.2340081490453676E-10 8.0860831708092969E-10 + 8.9934946371838869E-10 9.9575429003618159E-10 1.0979553666437009E-09 + 1.2060878457123834E-09 1.3202895079638493E-09 1.4407008104884134E-09 + 1.5674649354085166E-09 1.7007278394017405E-09 1.8406383040984376E-09 + 1.9873479873691650E-09 2.1410114755174688E-09 2.3017863363937746E-09 + 2.4698331734464081E-09 2.6453156807261255E-09 2.8284006988606684E-09 + 3.0192582720163542E-09 3.2180617058637383E-09 3.4249876265649950E-09 + 3.6402160408006693E-09 3.8639303968539327E-09 4.0963176467708203E-09 + 4.3375683096150368E-09 4.5878765358364831E-09 4.8474401727728638E-09 + 5.1164608313040553E-09 5.3951439536792994E-09 5.6836988825376670E-09 + 5.9823389311424698E-09 6.2912814548507627E-09 6.6107479238394820E-09 + 6.9409639971099625E-09 7.2821595977930870E-09 7.6345689897777468E-09 + 7.9984308556855258E-09 8.3739883762151038E-09 8.7614893108800442E-09 + 9.1611860801643527E-09 9.5733358491202796E-09 9.9982006124335510E-09 + 1.0436047280981454E-08 1.0887147769909759E-08 1.1351779088254729E-08 + 1.1830223430137322E-08 1.2322768267556573E-08 1.2829706444810166E-08 + 1.3351336274570315E-08 1.3887961635643857E-08 1.4439892072445450E-08 + 1.5007442896214217E-08 1.5590935288003302E-08 1.6190696403474015E-08 + 1.6807059479524984E-08 1.7440363942788939E-08 1.8090955520029024E-08 + 1.8759186350467776E-08 1.9445415100082375E-08 2.0150007077900234E-08 + 2.0873334354329391E-08 2.1615775881559553E-08 2.2377717616069062E-08 + 2.3159552643274893E-08 2.3961681304362311E-08 2.4784511325332444E-08 + 2.5628457948306056E-08 2.6493944065122551E-08 2.7381400353274143E-08 + 2.8291265414215519E-08 2.9223985914090520E-08 3.0180016726917251E-08 + 3.1159821080274684E-08 3.2163870703533735E-08 3.3192645978677320E-08 + 3.4246636093753801E-08 3.5326339199009981E-08 3.6432262565749375E-08 + 3.7564922747963988E-08 3.8724845746786437E-08 3.9912567177812497E-08 + 4.1128632441342758E-08 4.2373596895594527E-08 4.3648026032935754E-08 + 4.4952495659192062E-08 4.6287592076081889E-08 4.7653912266832011E-08 + 4.9052064085030423E-08 5.0482666446770938E-08 5.1946349526147621E-08 + 5.3443754954156774E-08 5.4975536021065213E-08 5.6542357882305010E-08 + 5.8144897767956181E-08 5.9783845195878376E-08 6.1459902188556096E-08 + 6.3173783493720471E-08 6.4926216808813813E-08 6.6717943009363017E-08 + 6.8549716381329750E-08 7.0422304857505846E-08 7.2336490258024352E-08 + 7.4293068535057436E-08 7.6292850021772630E-08 7.8336659685623145E-08 + 8.0425337386044569E-08 8.2559738136636720E-08 8.4740732371906648E-08 + 8.6969206218651850E-08 8.9246061772064960E-08 9.1572217376640189E-08 + 9.3948607911966156E-08 9.6376185083487523E-08 9.8855917718323497E-08 + 1.0138879206622983E-07 1.0397581210579244E-07 1.0661799985594429E-07 + 1.0931639569289733E-07 1.1207205867258261E-07 1.1488606685869409E-07 + 1.1775951765643364E-07 1.2069352815205437E-07 1.2368923545830409E-07 + 1.2674779706587004E-07 1.2987039120092858E-07 1.3305821718890557E-07 + 1.3631249582455519E-07 1.3963446974846565E-07 1.4302540383010367E-07 + 1.4648658555750921E-07 1.5001932543375840E-07 1.5362495738030731E-07 + 1.5730483914734042E-07 1.6106035273123978E-07 1.6489290479930297E-07 + 1.6880392712182989E-07 1.7279487701171043E-07 1.7686723777163934E-07 + 1.8102251914909251E-07 1.8526225779919553E-07 1.8958801775562467E-07 + 1.9400139090967699E-07 1.9850399749764941E-07 2.0309748659667383E-07 + 2.0778353662915089E-07 2.1256385587593247E-07 2.1744018299840543E-07 + 2.2241428756962588E-07 2.2748797061466579E-07 2.3266306516032687E-07 + 2.3794143679438640E-07 2.4332498423453698E-07 2.4881563990718863E-07 + 2.5441537053630559E-07 2.6012617774244787E-07 2.6595009865219521E-07 + 2.7188920651813229E-07 2.7794561134958006E-07 2.8412146055425377E-07 + 2.9041893959104005E-07 2.9684027263408583E-07 3.0338772324838968E-07 + 3.1006359507709898E-07 3.1687023254071349E-07 3.2381002154839714E-07 + 3.3088539022161656E-07 3.3809880963030438E-07 3.4545279454178094E-07 + 3.5294990418263869E-07 3.6059274301382323E-07 3.6838396151913510E-07 + 3.7632625700738354E-07 3.8442237442843036E-07 3.9267510720335792E-07 + 4.0108729806901417E-07 4.0966183993717385E-07 4.1840167676857131E-07 + 4.2730980446206628E-07 4.3638927175919400E-07 4.4564318116437327E-07 + 4.5507468988104204E-07 4.6468701076398684E-07 4.7448341328815996E-07 + 4.8446722453425278E-07 4.9464183019132675E-07 5.0501067557679260E-07 + 5.1557726667403165E-07 5.2634517118797070E-07 5.3731801961891973E-07 + 5.4849950635497873E-07 5.5989339078334950E-07 5.7150349842086075E-07 + 5.8333372206405234E-07 5.9538802295914772E-07 6.0767043199225962E-07 + 6.2018505090018256E-07 6.3293605350211693E-07 6.4592768695269627E-07 + 6.5916427301668080E-07 6.7265020936568651E-07 6.8638997089733902E-07 + 7.0038811107723148E-07 7.1464926330408121E-07 7.2917814229848727E-07 + 7.4397954551569643E-07 7.5905835458278776E-07 7.7441953676069518E-07 + 7.9006814643150932E-07 8.0600932661147599E-07 8.2224831049014848E-07 + 8.3879042299613764E-07 8.5564108238992183E-07 8.7280580188417768E-07 + 8.9029019129211696E-07 9.0809995870429878E-07 9.2624091219441692E-07 + 9.4471896155456178E-07 9.6354012006046060E-07 9.8271050626721213E-07 + 1.0022363458360538E-06 1.0221239733926700E-06 1.0423798344176242E-06 + 1.0630104871694208E-06 1.0840226046408096E-06 1.1054229765488561E-06 + 1.1272185113594108E-06 1.1494162383465157E-06 1.1720233096874008E-06 + 1.1950470025936507E-06 1.2184947214791753E-06 1.2423740001656209E-06 + 1.2666925041258672E-06 1.2914580327662568E-06 1.3166785217482449E-06 + 1.3423620453501157E-06 1.3685168188694972E-06 1.3951512010673416E-06 + 1.4222736966541087E-06 1.4498929588188591E-06 1.4780177918020245E-06 + 1.5066571535125831E-06 1.5358201581904050E-06 1.5655160791145761E-06 + 1.5957543513584442E-06 1.6265445745922485E-06 1.6578965159340940E-06 + 1.6898201128501558E-06 1.7223254761049185E-06 1.7554228927623540E-06 + 1.7891228292388687E-06 1.8234359344089645E-06 1.8583730427644584E-06 + 1.8939451776282675E-06 1.9301635544235867E-06 1.9670395839995511E-06 + 2.0045848760142082E-06 2.0428112423759235E-06 2.0817307007441183E-06 + 2.1213554780904426E-06 2.1616980143213391E-06 2.2027709659631691E-06 + 2.2445872099108655E-06 2.2871598472412655E-06 2.3305022070922296E-06 + 2.3746278506086835E-06 2.4195505749567192E-06 2.4652844174069337E-06 + 2.5118436594882144E-06 2.5592428312131474E-06 2.6074967153763415E-06 + 2.6566203519268361E-06 2.7066290424159806E-06 2.7575383545219640E-06 + 2.8093641266524193E-06 2.8621224726263748E-06 2.9158297864369715E-06 + 2.9705027470962734E-06 3.0261583235636704E-06 3.0828137797592224E-06 + 3.1404866796634740E-06 3.1991948925051949E-06 3.2589565980385806E-06 + 3.3197902919114257E-06 3.3817147911258548E-06 3.4447492395932189E-06 + 3.5089131137847379E-06 3.5742262284795815E-06 3.6407087426120269E-06 + 3.7083811652194363E-06 3.7772643614927487E-06 3.8473795589312936E-06 + 3.9187483536036743E-06 3.9913927165166180E-06 4.0653350000935495E-06 + 4.1405979447648851E-06 4.2172046856718691E-06 4.2951787594860145E-06 + 4.3745441113460119E-06 4.4553251019142796E-06 4.5375465145550134E-06 + 4.6212335626361009E-06 4.7064118969566783E-06 4.7931076133028832E-06 + 4.8813472601337076E-06 4.9711578463992741E-06 5.0625668494939328E-06 + 5.1556022233463013E-06 5.2502924066487986E-06 5.3466663312288843E-06 + 5.4447534305646472E-06 5.5445836484469804E-06 5.6461874477911560E-06 + 5.7495958196000790E-06 5.8548402920820668E-06 5.9619529399256176E-06 + 6.0709663937340823E-06 6.1819138496227435E-06 6.2948290789813301E-06 + 6.4097464384046233E-06 6.5267008797941993E-06 6.6457279606341545E-06 + 6.7668638544437893E-06 6.8901453614104180E-06 7.0156099192052889E-06 + 7.1432956139857633E-06 7.2732411915870659E-06 7.4054860689067356E-06 + 7.5400703454851546E-06 7.6770348152855891E-06 7.8164209786769664E-06 + 7.9582710546232205E-06 8.1026279930823218E-06 8.2495354876190278E-06 + 8.3990379882346778E-06 8.5511807144180680E-06 8.7060096684208535E-06 + 8.8635716487617941E-06 9.0239142639632661E-06 9.1870859465245355E-06 + 9.3531359671353830E-06 9.5221144491346698E-06 9.6940723832176946E-06 + 9.8690616423967973E-06 1.0047134997219538E-05 1.0228346131248874E-05 + 1.0412749656809805E-05 1.0600401131007112E-05 1.0791357072018823E-05 + 1.0985674975670146E-05 1.1183413332292744E-05 1.1384631643874107E-05 + 1.1589390441502255E-05 1.1797751303110527E-05 1.2009776871527967E-05 + 1.2225530872840205E-05 1.2445078135066519E-05 1.2668484607158143E-05 + 1.2895817378323726E-05 1.3127144697687193E-05 1.3362535994284040E-05 + 1.3602061897401595E-05 1.3845794257269499E-05 1.4093806166105867E-05 + 1.4346171979526045E-05 1.4602967338319288E-05 1.4864269190600490E-05 + 1.5130155814342779E-05 1.5400706840297934E-05 1.5676003275311114E-05 + 1.5956127526036569E-05 1.6241163423061585E-05 1.6531196245445155E-05 + 1.6826312745678989E-05 1.7126601175077755E-05 1.7432151309606177E-05 + 1.7743054476150251E-05 1.8059403579240456E-05 1.8381293128234572E-05 + 1.8708819264967903E-05 1.9042079791879147E-05 1.9381174200620084E-05 + 1.9726203701156892E-05 2.0077271251372462E-05 2.0434481587177161E-05 + 2.0797941253138007E-05 2.1167758633633885E-05 2.1544043984546971E-05 + 2.1926909465498652E-05 2.2316469172640050E-05 2.2712839172006046E-05 + 2.3116137533442805E-05 2.3526484365118501E-05 2.3944001848627496E-05 + 2.4368814274697733E-05 2.4801048079512016E-05 2.5240831881653676E-05 + 2.5688296519687109E-05 2.6143575090384402E-05 2.6606802987608713E-05 + 2.7078117941866201E-05 2.7557660060537373E-05 2.8045571868800036E-05 + 2.8541998351255253E-05 2.9047086994268765E-05 2.9560987829039682E-05 + 3.0083853475409588E-05 3.0615839186423630E-05 3.1157102893658105E-05 + 3.1707805253325784E-05 3.2268109693173981E-05 3.2838182460187983E-05 + 3.3418192669113429E-05 3.4008312351813187E-05 3.4608716507470690E-05 + 3.5219583153656457E-05 3.5841093378271076E-05 3.6473431392380424E-05 + 3.7116784583957937E-05 3.7771343572550152E-05 3.8437302264880143E-05 + 3.9114857911406384E-05 3.9804211163851887E-05 4.0505566133721702E-05 + 4.1219130451824269E-05 4.1945115328814884E-05 4.2683735616778182E-05 + 4.3435209871867830E-05 4.4199760418020660E-05 4.4977613411765054E-05 + 4.5768998908140645E-05 4.6574150927749938E-05 4.7393307524959394E-05 + 4.8226710857271852E-05 4.9074607255888117E-05 4.9937247297479369E-05 + 5.0814885877190958E-05 5.1707782282897889E-05 5.2616200270734457E-05 + 5.3540408141918651E-05 5.4480678820894535E-05 5.5437289934814023E-05 + 5.6410523894382287E-05 5.7400667976088246E-05 5.8408014405845718E-05 + 5.9432860444067812E-05 6.0475508472199979E-05 6.1536266080735788E-05 + 6.2615446158741729E-05 6.3713366984915606E-05 6.4830352320205848E-05 + 6.5966731502017242E-05 6.7122839540031297E-05 6.8299017213667277E-05 + 6.9495611171213734E-05 7.0712974030657234E-05 7.1951464482238441E-05 + 7.3211447392763557E-05 7.4493293911703494E-05 7.5797381579108567E-05 + 7.7124094435370889E-05 7.8473823132865260E-05 7.9846965049502734E-05 + 8.1243924404225632E-05 8.2665112374480186E-05 8.4110947215698881E-05 + 8.5581854382827798E-05 8.7078266653932003E-05 8.8600624255916340E-05 + 9.0149374992395378E-05 9.1724974373751894E-05 9.3327885749417777E-05 + 9.4958580442417703E-05 9.6617537886212066E-05 9.8305245763880494E-05 + 1.0002220014968284E-04 1.0176890565304032E-04 1.0354587556497692E-04 + 1.0535363200706176E-04 1.0719270608289778E-04 1.0906363803219607E-04 + 1.1096697738748324E-04 1.1290328313348267E-04 1.1487312386921950E-04 + 1.1687707797289116E-04 1.1891573376955280E-04 1.2098968970166364E-04 + 1.2309955450254536E-04 1.2524594737279787E-04 1.2742949815972528E-04 + 1.2965084753982224E-04 1.3191064720437248E-04 1.3420956004821087E-04 + 1.3654826036170448E-04 1.3892743402600495E-04 1.4134777871162876E-04 + 1.4381000408042151E-04 1.4631483199096130E-04 1.4886299670746281E-04 + 1.5145524511223530E-04 1.5409233692176313E-04 1.5677504490645960E-04 + 1.5950415511416420E-04 1.6228046709744015E-04 1.6510479414474249E-04 + 1.6797796351551456E-04 1.7090081667928521E-04 1.7387420955882851E-04 + 1.7689901277745954E-04 1.7997611191053161E-04 1.8310640774120646E-04 + 1.8629081652056829E-04 1.8953027023215879E-04 1.9282571686099969E-04 + 1.9617812066718529E-04 1.9958846246411426E-04 2.0305773990144781E-04 + 2.0658696775286114E-04 2.1017717820868027E-04 2.1382942117347602E-04 + 2.1754476456870302E-04 2.2132429464046961E-04 2.2516911627251763E-04 + 2.2908035330450471E-04 2.3305914885567288E-04 2.3710666565400000E-04 + 2.4122408637091623E-04 2.4541261396168393E-04 2.4967347201153311E-04 + 2.5400790508764990E-04 2.5841717909711208E-04 2.6290258165087137E-04 + 2.6746542243388257E-04 2.7210703358148503E-04 2.7682877006213126E-04 + 2.8163201006657841E-04 2.8651815540363612E-04 2.9148863190259645E-04 + 2.9654488982243631E-04 3.0168840426792105E-04 3.0692067561271136E-04 + 3.1224322992959373E-04 3.1765761942795234E-04 3.2316542289859878E-04 + 3.2876824616607966E-04 3.3446772254858701E-04 3.4026551332559771E-04 + 3.4616330821336355E-04 3.5216282584838246E-04 3.5826581427898021E-04 + 3.6447405146514231E-04 3.7078934578671768E-04 3.7721353656014109E-04 + 3.8374849456380495E-04 3.9039612257223377E-04 3.9715835589918463E-04 + 4.0403716294983998E-04 4.1103454578221750E-04 4.1815254067797394E-04 + 4.2539321872272254E-04 4.3275868639604687E-04 4.4025108617134774E-04 + 4.4787259712568851E-04 4.5562543555980440E-04 4.6351185562843133E-04 + 4.7153414998112064E-04 4.7969465041371195E-04 4.8799572853063493E-04 + 4.9643979641820774E-04 5.0502930732911153E-04 5.1376675637821356E-04 + 5.2265468124993732E-04 5.3169566291733257E-04 5.4089232637306189E-04 + 5.5024734137246894E-04 5.5976342318893757E-04 5.6944333338172478E-04 + 5.7928988057646090E-04 5.8930592125852968E-04 5.9949436057952230E-04 + 6.0985815317696906E-04 6.2040030400755699E-04 6.3112386919405097E-04 + 6.4203195688611987E-04 6.5312772813530030E-04 6.6441439778429986E-04 + 6.7589523537087495E-04 6.8757356604649811E-04 6.9945277151006258E-04 + 7.1153629095682778E-04 7.2382762204286450E-04 7.3633032186521687E-04 + 7.4904800795805120E-04 7.6198435930499293E-04 7.7514311736794116E-04 + 7.8852808713257929E-04 8.0214313817085676E-04 8.1599220572068254E-04 + 8.3007929178310013E-04 8.4440846623719343E-04 8.5898386797301661E-04 + 8.7380970604278090E-04 8.8889026083059999E-04 9.0422988524105493E-04 + 9.1983300590685660E-04 9.3570412441590541E-04 9.5184781855800612E-04 + 9.6826874359155063E-04 9.8497163353043760E-04 1.0019613024515590E-03 + 1.0192426458231088E-03 1.0368206418540460E-03 1.0547003528650024E-03 + 1.0728869266809619E-03 1.0913855980459865E-03 1.1102016900603467E-03 + 1.1293406156403314E-03 1.1488078790011043E-03 1.1686090771628849E-03 + 1.1887499014808128E-03 1.2092361391987992E-03 1.2300736750277431E-03 + 1.2512684927483886E-03 1.2728266768392016E-03 1.2947544141296138E-03 + 1.3170579954789286E-03 1.3397438174813162E-03 1.3628183841971598E-03 + 1.3862883089111825E-03 1.4101603159176446E-03 1.4344412423330367E-03 + 1.4591380399365636E-03 1.4842577770388271E-03 1.5098076403790486E-03 + 1.5357949370512233E-03 1.5622270964595389E-03 1.5891116723034673E-03 + 1.6164563445928649E-03 1.6442689216935116E-03 1.6725573424033978E-03 + 1.7013296780601849E-03 1.7305941346802010E-03 1.7603590551293535E-03 + 1.7906329213263484E-03 1.8214243564785939E-03 1.8527421273511336E-03 + 1.8845951465690869E-03 1.9169924749538796E-03 1.9499433238936974E-03 + 1.9834570577485478E-03 2.0175431962902910E-03 2.0522114171780590E-03 + 2.0874715584693901E-03 2.1233336211675200E-03 2.1598077718051455E-03 + 2.1969043450651201E-03 2.2346338464383545E-03 2.2730069549193894E-03 + 2.3120345257399387E-03 2.3517275931408291E-03 2.3920973731826633E-03 + 2.4331552665955688E-03 2.4749128616683800E-03 2.5173819371776757E-03 + 2.5605744653568979E-03 2.6045026149060040E-03 2.6491787540418865E-03 + 2.6946154535900171E-03 2.7408254901174932E-03 2.7878218491078953E-03 + 2.8356177281782442E-03 2.8842265403382960E-03 2.9336619172925858E-03 + 2.9839377127853488E-03 3.0350680059887049E-03 3.0870671049342633E-03 + 3.1399495499885269E-03 3.1937301173721486E-03 3.2484238227234096E-03 + 3.3040459247060364E-03 3.3606119286615829E-03 3.4181375903065288E-03 + 3.4766389194742608E-03 3.5361321839020264E-03 3.5966339130630979E-03 + 3.6581609020440880E-03 3.7207302154676032E-03 3.7843591914602254E-03 + 3.8490654456659161E-03 3.9148668753047995E-03 3.9817816632772883E-03 + 4.0498282823135659E-03 4.1190254991682893E-03 4.1893923788604787E-03 + 4.2609482889583569E-03 4.3337129039090682E-03 4.4077062094129713E-03 + 4.4829485068424210E-03 4.5594604177045563E-03 4.6372628881479637E-03 + 4.7163771935127214E-03 4.7968249429235317E-03 4.8786280839254103E-03 + 4.9618089071614985E-03 5.0463900510923894E-03 5.1323945067564694E-03 + 5.2198456225705705E-03 5.3087671091701762E-03 5.3991830442885504E-03 + 5.4911178776738852E-03 5.5845964360435865E-03 5.6796439280747341E-03 + 5.7762859494298064E-03 5.8745484878163709E-03 5.9744579280798585E-03 + 6.0760410573279027E-03 6.1793250700851064E-03 6.2843375734767280E-03 + 6.3911065924399206E-03 6.4996605749607804E-03 6.6100283973356631E-03 + 6.7222393694548492E-03 6.8363232401069396E-03 6.9523102023016882E-03 + 7.0702308986094198E-03 7.1901164265145995E-03 7.3119983437816300E-03 + 7.4359086738298797E-03 7.5618799111159159E-03 7.6899450265197527E-03 + 7.8201374727327345E-03 7.9524911896436939E-03 8.0870406097204375E-03 + 8.2238206633832873E-03 8.3628667843671112E-03 8.5042149150684147E-03 + 8.6479015118735812E-03 8.7939635504642889E-03 8.9424385310960895E-03 + 9.0933644838457912E-03 9.2467799738230622E-03 9.4027241063415236E-03 + 9.5612365320444787E-03 9.7223574519801625E-03 9.8861276226209337E-03 + 1.0052588360821050E-02 1.0221781548706895E-02 1.0393749638493955E-02 + 1.0568535657223752E-02 1.0746183211414398E-02 1.0926736491617694E-02 + 1.1110240276875870E-02 1.1296739939070105E-02 1.1486281447153281E-02 + 1.1678911371258892E-02 1.1874676886677503E-02 1.2073625777692262E-02 + 1.2275806441264098E-02 1.2481267890557271E-02 1.2690059758295411E-02 + 1.2902232299937998E-02 1.3117836396666303E-02 1.3336923558168146E-02 + 1.3559545925209776E-02 1.3785756271983267E-02 1.4015608008216895E-02 + 1.4249155181035719E-02 1.4486452476559310E-02 1.4727555221222832E-02 + 1.4972519382807047E-02 1.5221401571162745E-02 1.5474259038614213E-02 + 1.5731149680025792E-02 1.5992132032515372E-02 1.6257265274797521E-02 + 1.6526609226138991E-02 1.6800224344907987E-02 1.7078171726698923E-02 + 1.7360513102012521E-02 1.7647310833471690E-02 1.7938627912551627E-02 + 1.8234527955803548E-02 1.8535075200548718E-02 1.8840334500020414E-02 + 1.9150371317929574E-02 1.9465251722430112E-02 1.9785042379457694E-02 + 2.0109810545416284E-02 2.0439624059185039E-02 2.0774551333418000E-02 + 2.1114661345107023E-02 2.1460023625378639E-02 2.1810708248493838E-02 + 2.2166785820019425E-02 2.2528327464137486E-02 2.2895404810060072E-02 + 2.3268089977513642E-02 2.3646455561257801E-02 2.4030574614601442E-02 + 2.4420520631877812E-02 2.4816367529839862E-02 2.5218189627935064E-02 + 2.5626061627418612E-02 2.6040058589261797E-02 2.6460255910812001E-02 + 2.6886729301158610E-02 2.7319554755158931E-02 2.7758808526075641E-02 + 2.8204567096777041E-02 2.8656907149449098E-02 2.9115905533768364E-02 + 2.9581639233481134E-02 3.0054185331335168E-02 3.0533620972307093E-02 + 3.1020023325068449E-02 3.1513469541630847E-02 3.2014036715109447E-02 + 3.2521801835543242E-02 3.3036841743707433E-02 3.3559233082853801E-02 + 3.4089052248311304E-02 3.4626375334878737E-02 3.5171278081939303E-02 + 3.5723835816226353E-02 3.6284123392165191E-02 3.6852215129718098E-02 + 3.7428184749654189E-02 3.8012105306167797E-02 3.8604049116763871E-02 + 3.9204087689330334E-02 3.9812291646313107E-02 4.0428730645910765E-02 + 4.1053473300201079E-02 4.1686587090112366E-02 4.2328138277150006E-02 + 4.2978191811788052E-02 4.3636811238432174E-02 4.4304058596860756E-02 + 4.4979994320049725E-02 4.5664677128282274E-02 4.6358163919448032E-02 + 4.7060509655430578E-02 4.7771767244483239E-02 4.8491987419491990E-02 + 4.9221218612022818E-02 4.9959506822049075E-02 5.0706895483255271E-02 + 5.1463425323811152E-02 5.2229134222511527E-02 5.3004057060173394E-02 + 5.3788225566185628E-02 5.4581668160101939E-02 5.5384409788172433E-02 + 5.6196471754704345E-02 5.7017871548146561E-02 5.7848622661790625E-02 + 5.8688734408983721E-02 5.9538211732747488E-02 6.0397055009699878E-02 + 6.1265259848177482E-02 6.2142816880457821E-02 6.3029711548983153E-02 + 6.3925923886489558E-02 6.4831428289946827E-02 6.5746193288219915E-02 + 6.6670181303363565E-02 6.7603348405467223E-02 6.8545644060970148E-02 + 6.9497010874373114E-02 7.0457384323277125E-02 7.1426692486683804E-02 + 7.2404855766502185E-02 7.3391786602208797E-02 7.4387389178619687E-02 + 7.5391559126736854E-02 7.6404183217643876E-02 7.7425139049431782E-02 + 7.8454294727150140E-02 7.9491508535784058E-02 8.0536628606274877E-02 + 8.1589492574610206E-02 8.2649927234028378E-02 8.3717748180387408E-02 + 8.4792759450775843E-02 8.5874753155448735E-02 8.6963509103195932E-02 + 8.8058794420268260E-02 8.9160363163000592E-02 9.0267955924303547E-02 + 9.1381299434205476E-02 9.2500106154660519E-02 9.3624073868855795E-02 + 9.4752885265284789E-02 9.5886207516874711E-02 9.7023691855493241E-02 + 9.8164973142184017E-02 9.9309669433520265E-02 1.0045738154449498E-01 + 1.0160769260840988E-01 1.0276016763425522E-01 1.0391435306212238E-01 + 1.0506977631722864E-01 1.0622594536317938E-01 1.0738234825514209E-01 + 1.0853845269365324E-01 1.0969370557983360E-01 1.1084753257283977E-01 + 1.1199933765043804E-01 1.1314850267364443E-01 1.1429438695643759E-01 + 1.1543632684161460E-01 1.1657363528393007E-01 1.1770560144172357E-01 + 1.1883149027831827E-01 1.1995054217454676E-01 1.2106197255383989E-01 + 1.2216497152139472E-01 1.2325870351902232E-01 1.2434230699736687E-01 + 1.2541489410727324E-01 1.2647555041217801E-01 1.2752333462349394E-01 + 1.2855727836105563E-01 1.2957638594080534E-01 1.3057963419198956E-01 + 1.3156597230626049E-01 1.3253432172118074E-01 1.3348357604074051E-01 + 1.3441260099562705E-01 1.3532023444608823E-01 1.3620528643037261E-01 + 1.3706653926183929E-01 1.3790274767796326E-01 1.3871263904459477E-01 + 1.3949491361895347E-01 1.4024824487497645E-01 1.4097127989477190E-01 + 1.4166263983006086E-01 1.4232092043762859E-01 1.4294469269294016E-01 + 1.4353250348620550E-01 1.4408287640531978E-01 1.4459431261023245E-01 + 1.4506529180342670E-01 1.4549427330132453E-01 1.4587969721155067E-01 + 1.4621998572111145E-01 1.4651354450066092E-01 1.4675876423012862E-01 + 1.4695402225109772E-01 1.4709768435140244E-01 1.4718810668750959E-01 + 1.4722363785031800E-01 1.4720262108007326E-01 1.4712339663614796E-01 + 1.4698430432746970E-01 1.4678368620939786E-01 1.4651988945285396E-01 + 1.4619126939148958E-01 1.4579619275263175E-01 1.4533304107768757E-01 + 1.4480021433759038E-01 1.4419613474875623E-01 1.4351925079485878E-01 + 1.4276804145956012E-01 1.4194102067508804E-01 1.4103674199131624E-01 + 1.4005380346966817E-01 1.3899085280583359E-01 1.3784659268487270E-01 + 1.3661978637182051E-01 1.3530926354039843E-01 1.3391392634184751E-01 + 1.3243275571525395E-01 1.3086481794002738E-01 1.2920927143037220E-01 + 1.2746537377073594E-01 1.2563248899023619E-01 1.2371009507300566E-01 + 1.2169779170023826E-01 1.1959530821843929E-01 1.1740251182700473E-01 + 1.1511941597675160E-01 1.1274618896937565E-01 1.1028316274605185E-01 + 1.0773084185148141E-01 1.0508991255759569E-01 1.0236125212893152E-01 + 9.9545938209249257E-02 9.6645258306401458E-02 9.3660719349677193E-02 + 9.0594057290836041E-02 8.7447246716886751E-02 8.4222510439185536E-02 + 8.0922329019792030E-02 7.7549450192083466E-02 7.4106898128416268E-02 + 7.0597982503154869E-02 6.7026307294614770E-02 6.3395779264332111E-02 + 5.9710616046681930E-02 5.5975353776040945E-02 5.2194854172547864E-02 + 4.8374311000970942E-02 4.4519255810188570E-02 4.0635562853415345E-02 + 3.6729453081424772E-02 3.2807497092640102E-02 2.8876616915133210E-02 + 2.4944086486106205E-02 2.1017530684466285E-02 1.7104922761506602E-02 + 1.3214580003429080E-02 9.3551574475760849E-03 5.5356394615533678E-03 + 1.7653289810657031E-03 -1.9461658119152101E-03 -5.5889476040761410E-03 + -9.1528491081419947E-03 -1.2627455528926969E-02 -1.6002130622201870E-02 + -1.9266046649414593E-02 -2.2408218551408798E-02 -2.5417542685517290E-02 + -2.8282840492916309E-02 -3.0992907487004336E-02 -3.3536567978811445E-02 + -3.5902735982225063E-02 -3.8080482770210831E-02 -4.0059111583254335E-02 + -4.1828240023183326E-02 -4.3377890699332407E-02 -4.4698590729953379E-02 + -4.5781480739912589E-02 -4.6618434036267434E-02 -4.7202186686471262E-02 + -4.7526479269931927E-02 -4.7586211122693220E-02 -4.7377607947456393E-02 + -4.6898403717303534E-02 -4.6148037861795846E-02 -4.5127868789021829E-02 + -4.3841404867309045E-02 -4.2294554066309047E-02 -4.0495893539894821E-02 + -3.8456960523752921E-02 -3.6192566019869511E-02 -3.3721132849798940E-02 + -3.1065059780336031E-02 -2.8251113561086415E-02 -2.5310850865997030E-02 + -2.2281072303090923E-02 -1.9204310852159318E-02 -1.6129357313278924E-02 + -1.3111825604919589E-02 -1.0214761045354471E-02 -7.5092950923189659E-03 + -5.0753504122785578E-03 -3.0024006125157696E-03 -1.3902895087775236E-03 + -3.5011543287068625E-04 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + + + 5.9415114490390204E+00 -1.5997042425562875E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + -1.5997042425562875E+00 4.2666233669543047E-01 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 4.0577581437932349E+00 + -5.0613398694268890E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 -5.0613398694268890E+00 + 6.4464192413968728E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 6.0848828541456446E-01 9.1697924868942664E+01 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 9.1697924868942664E+01 1.4068590257748772E+04 + + + -2.3738783227363908E-01 6.2894995411356278E-02 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 6.2894995411356278E-02 -1.6808841776716963E-02 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 -1.6906183152012053E-01 + 1.9555053344800960E-01 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 1.9555053344800960E-01 + -2.2984113832273334E-01 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 -2.7529822165158875E-02 -3.8096692169436537E+00 + 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 + 0.0000000000000000E+00 -3.8096692169436537E+00 -5.3262450240540056E+02 + + + + diff --git a/abipy/data/refs/LW_DDBs/README.md b/abipy/data/refs/LW_DDBs/README.md new file mode 100644 index 000000000..b3eed591c --- /dev/null +++ b/abipy/data/refs/LW_DDBs/README.md @@ -0,0 +1,8 @@ +These DDB files are produced by the following Abinit tutorials: + +- tutorespfn_tlw_1-tlw_2-tlw_3/ +- tutorespfn_tlw_4-tlw_5-tlw_6-tlw_7/tlw_5.abo + +The DDB files are used in the AbiPy tests to exercise the ddb methods +associated to the treatment of the dynamical quadrupoles. +The AbiPy interface for the postprocessing of the flexoelectric tensor is not yet implemented. diff --git a/abipy/data/refs/LW_DDBs/tlw_2.flexo_DDB b/abipy/data/refs/LW_DDBs/tlw_2.flexo_DDB new file mode 100644 index 000000000..fe3b74bc2 --- /dev/null +++ b/abipy/data/refs/LW_DDBs/tlw_2.flexo_DDB @@ -0,0 +1,764 @@ + + **** DERIVATIVE DATABASE **** ++DDB, Version number 100401 + + Total DDB for complete Silicon FxE tensor + + usepaw 0 + natom 2 + nkpt 128 + nsppol 1 + nsym 2 + ntypat 1 + occopt 1 + nband 4 + acell 0.10102000000000D+02 0.10600000000000D+02 0.94000000000000D+01 + amu 0.28085500000000D+02 + dilatmx 0.10000000000000D+01 + ecut 0.40000000000000D+01 + ecutsm 0.00000000000000D+00 + intxc 0 + iscf 7 + ixc 7 + kpt 0.00000000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.12500000000000D+00 0.25000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 0.37500000000000D+00 0.00000000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.00000000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.12500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.25000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.37500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 -0.25000000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.12500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 -0.25000000000000D+00 + kptnrm 0.10000000000000D+01 + ngfft 15 15 12 + nspden 1 + nspinor 1 + occ 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 + rprim 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + dfpt_sciss 0.00000000000000D+00 + spinat 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + symafm 1 1 + symrel 1 0 0 0 1 0 0 0 1 + -1 0 0 0 -1 0 0 0 -1 + tnons 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.20000000000000D+00 + tolwfr 0.10000000000000D+01 + tphysel 0.00000000000000D+00 + tsmear 0.10000000000000D-01 + typat 1 1 + wtk 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 0.78125000000000D-02 + 0.78125000000000D-02 0.78125000000000D-02 + xred 0.50000000000000D-01 -0.50000000000000D-01 -0.15178830414797D-17 + 0.20000000000000D+00 0.30000000000000D+00 0.20000000000000D+00 + znucl 0.14000000000000D+02 + zion 0.40000000000000D+01 + + Description of the potentials (KB energies) + vrsio8 (for pseudopotentials)=100401 + usepaw = 0 + dimekb = 3 lmnmax= 9 + Atom type= 1 pspso= 0 nekb= 2 + iln lpsang iproj ekb(:) + 1 0 1 3.2751939E+00 0.0000000E+00 + 2 1 1 0.0000000E+00 1.8262411E+00 + + **** Database of total energy derivatives **** + Number of data blocks= 4 + + Total energy - # elements : 1 + -0.78670666680131D+01 0.00000000000000D+00 + + 1st derivatives - # elements : 12 + 1 1 0.25797726210017D+00 0.00000000000000D+00 + 2 1 -0.23564074198274D+00 0.00000000000000D+00 + 3 1 0.16847957508258D+00 0.00000000000000D+00 + 1 2 -0.25797726210017D+00 0.00000000000000D+00 + 2 2 0.23564074198274D+00 0.00000000000000D+00 + 3 2 -0.16847957508258D+00 0.00000000000000D+00 + 1 5 -0.12107759183749D-03 0.00000000000000D+00 + 2 5 0.11277133435563D-03 0.00000000000000D+00 + 3 5 0.33535110073962D-04 0.00000000000000D+00 + 1 6 0.10059215036023D-03 0.00000000000000D+00 + 2 6 -0.22328544940747D-03 0.00000000000000D+00 + 3 6 -0.25068817418385D-03 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 171 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.38775558536669D+01 0.00000000000000D+00 + 2 1 1 1 0.62546573649280D+01 0.00000000000000D+00 + 3 1 1 1 0.40814397664226D+01 0.00000000000000D+00 + 1 2 1 1 -0.38775034740960D+01 0.55826548626738D-17 + 2 2 1 1 -0.62545931366264D+01 -0.15850759654474D-16 + 3 2 1 1 -0.40813953385253D+01 -0.99355402412863D-17 + 1 4 1 1 -0.25344721804167D+02 0.00000000000000D+00 + 2 4 1 1 0.20585728153695D+00 0.00000000000000D+00 + 3 4 1 1 -0.47143954847847D+00 0.00000000000000D+00 + 1 1 2 1 0.62546634954855D+01 0.00000000000000D+00 + 2 1 2 1 0.14449222772664D+02 0.00000000000000D+00 + 3 1 2 1 0.56096804002808D+01 0.00000000000000D+00 + 1 2 2 1 -0.62545985724440D+01 -0.15850759654474D-16 + 2 2 2 1 -0.14449147521320D+02 0.19618446609071D-16 + 3 2 2 1 -0.56096189044232D+01 -0.13242120611087D-16 + 1 4 2 1 -0.55687161955656D-01 0.00000000000000D+00 + 2 4 2 1 -0.25126826187499D+02 0.00000000000000D+00 + 3 4 2 1 -0.14288768344861D+00 0.00000000000000D+00 + 1 1 3 1 0.40814416683352D+01 0.00000000000000D+00 + 2 1 3 1 0.56096792986273D+01 0.00000000000000D+00 + 3 1 3 1 0.58779053753974D+01 0.00000000000000D+00 + 1 2 3 1 -0.40813968631684D+01 -0.99355402412863D-17 + 2 2 3 1 -0.56096197059167D+01 -0.13242120611087D-16 + 3 2 3 1 -0.58778916770232D+01 0.38547435230673D-17 + 1 4 3 1 -0.28813810363510D+00 0.00000000000000D+00 + 2 4 3 1 0.23008075969911D+00 0.00000000000000D+00 + 3 4 3 1 -0.25641797521051D+02 0.00000000000000D+00 + 1 1 1 2 -0.38775034740960D+01 -0.55826548626738D-17 + 2 1 1 2 -0.62545931366264D+01 0.15850759654474D-16 + 3 1 1 2 -0.40813953385253D+01 0.99355402412863D-17 + 1 2 1 2 0.38775558536669D+01 0.00000000000000D+00 + 2 2 1 2 0.62546573649280D+01 0.00000000000000D+00 + 3 2 1 2 0.40814397664226D+01 0.00000000000000D+00 + 1 4 1 2 -0.25344721804167D+02 0.00000000000000D+00 + 2 4 1 2 0.20585728153695D+00 0.00000000000000D+00 + 3 4 1 2 -0.47143954847847D+00 0.00000000000000D+00 + 1 1 2 2 -0.62545985724440D+01 0.15850759654474D-16 + 2 1 2 2 -0.14449147521320D+02 -0.19618446609071D-16 + 3 1 2 2 -0.56096189044232D+01 0.13242120611087D-16 + 1 2 2 2 0.62546634954855D+01 0.00000000000000D+00 + 2 2 2 2 0.14449222772664D+02 0.00000000000000D+00 + 3 2 2 2 0.56096804002808D+01 0.00000000000000D+00 + 1 4 2 2 -0.55687161955656D-01 0.00000000000000D+00 + 2 4 2 2 -0.25126826187499D+02 0.00000000000000D+00 + 3 4 2 2 -0.14288768344861D+00 0.00000000000000D+00 + 1 1 3 2 -0.40813968631684D+01 0.99355402412863D-17 + 2 1 3 2 -0.56096197059167D+01 0.13242120611087D-16 + 3 1 3 2 -0.58778916770232D+01 -0.38547435230673D-17 + 1 2 3 2 0.40814416683352D+01 0.00000000000000D+00 + 2 2 3 2 0.56096792986273D+01 0.00000000000000D+00 + 3 2 3 2 0.58779053753974D+01 0.00000000000000D+00 + 1 4 3 2 -0.28813810363510D+00 0.00000000000000D+00 + 2 4 3 2 0.23008075969911D+00 0.00000000000000D+00 + 3 4 3 2 -0.25641797521051D+02 0.00000000000000D+00 + 1 1 1 4 -0.25344740168411D+02 0.00000000000000D+00 + 2 1 1 4 -0.55692463361959D-01 0.00000000000000D+00 + 3 1 1 4 -0.28816153602162D+00 0.00000000000000D+00 + 1 2 1 4 -0.25344740168411D+02 0.00000000000000D+00 + 2 2 1 4 -0.55692463361959D-01 0.00000000000000D+00 + 3 2 1 4 -0.28816153602162D+00 0.00000000000000D+00 + 1 4 1 4 -0.80728149630061D+03 0.00000000000000D+00 + 2 4 1 4 0.30872548353652D+03 0.00000000000000D+00 + 3 4 1 4 0.15425843253084D+03 0.00000000000000D+00 + 1 1 2 4 0.20587067409448D+00 0.00000000000000D+00 + 2 1 2 4 -0.25126828857934D+02 0.00000000000000D+00 + 3 1 2 4 0.23009334054378D+00 0.00000000000000D+00 + 1 2 2 4 0.20587067409448D+00 0.00000000000000D+00 + 2 2 2 4 -0.25126828857934D+02 0.00000000000000D+00 + 3 2 2 4 0.23009334054378D+00 0.00000000000000D+00 + 1 4 2 4 0.30872544981637D+03 0.00000000000000D+00 + 2 4 2 4 -0.42619216822550D+03 0.00000000000000D+00 + 3 4 2 4 0.13523727884069D+03 0.00000000000000D+00 + 1 1 3 4 -0.47144594234864D+00 0.00000000000000D+00 + 2 1 3 4 -0.14288999403179D+00 0.00000000000000D+00 + 3 1 3 4 -0.25641799481158D+02 0.00000000000000D+00 + 1 2 3 4 -0.47144594234864D+00 0.00000000000000D+00 + 2 2 3 4 -0.14288999403179D+00 0.00000000000000D+00 + 3 2 3 4 -0.25641799481158D+02 0.00000000000000D+00 + 1 4 3 4 0.15425842216583D+03 0.00000000000000D+00 + 2 4 3 4 0.13523725052610D+03 0.00000000000000D+00 + 3 4 3 4 -0.44474971855707D+03 0.00000000000000D+00 + 1 1 1 5 -0.58155122580568D+00 0.00000000000000D+00 + 2 1 1 5 0.71914308689435D-01 0.00000000000000D+00 + 3 1 1 5 -0.61023265405702D+00 0.00000000000000D+00 + 1 2 1 5 0.58155328054236D+00 0.00000000000000D+00 + 2 2 1 5 -0.71915935042122D-01 0.00000000000000D+00 + 3 2 1 5 0.61023591571797D+00 0.00000000000000D+00 + 1 4 1 5 -0.50187487469021D-06 0.00000000000000D+00 + 2 4 1 5 -0.32091163613641D-05 0.00000000000000D+00 + 3 4 1 5 0.72847352718493D-05 0.00000000000000D+00 + 1 5 1 5 0.16824649759257D+01 0.00000000000000D+00 + 2 5 1 5 0.67735426271698D+00 0.00000000000000D+00 + 3 5 1 5 0.80892987889940D+00 0.00000000000000D+00 + 1 6 1 5 -0.18590092388673D+00 0.00000000000000D+00 + 2 6 1 5 0.47054561191456D+00 0.00000000000000D+00 + 3 6 1 5 0.13033812509167D+00 0.00000000000000D+00 + 1 1 2 5 0.30154021904751D+00 0.00000000000000D+00 + 2 1 2 5 0.16340804399414D+00 0.00000000000000D+00 + 3 1 2 5 0.82040479450752D+00 0.00000000000000D+00 + 1 2 2 5 -0.30154291138258D+00 0.00000000000000D+00 + 2 2 2 5 -0.16340784957525D+00 0.00000000000000D+00 + 3 2 2 5 -0.82039782993776D+00 0.00000000000000D+00 + 1 4 2 5 -0.46534377343841D-05 0.00000000000000D+00 + 2 4 2 5 -0.14262345640248D-06 0.00000000000000D+00 + 3 4 2 5 0.50695392312448D-05 0.00000000000000D+00 + 1 5 2 5 0.67735425476222D+00 0.00000000000000D+00 + 2 5 2 5 0.12726099228584D+01 0.00000000000000D+00 + 3 5 2 5 0.61332716480642D+00 0.00000000000000D+00 + 1 6 2 5 -0.22178981624021D+00 0.00000000000000D+00 + 2 6 2 5 0.36332841762062D+00 0.00000000000000D+00 + 3 6 2 5 0.25559345593654D+00 0.00000000000000D+00 + 1 1 3 5 -0.50678190688466D+00 0.00000000000000D+00 + 2 1 3 5 0.37266397729514D+00 0.00000000000000D+00 + 3 1 3 5 -0.18825050998436D+00 0.00000000000000D+00 + 1 2 3 5 0.50678598901766D+00 0.00000000000000D+00 + 2 2 3 5 -0.37266051524149D+00 0.00000000000000D+00 + 3 2 3 5 0.18825885189734D+00 0.00000000000000D+00 + 1 4 3 5 0.89239606934045D-06 0.00000000000000D+00 + 2 4 3 5 -0.17949134574143D-05 0.00000000000000D+00 + 3 4 3 5 0.22365567202694D-05 0.00000000000000D+00 + 1 5 3 5 0.80893007319530D+00 0.00000000000000D+00 + 2 5 3 5 0.61332699487688D+00 0.00000000000000D+00 + 3 5 3 5 0.19240052138386D+01 0.00000000000000D+00 + 1 6 3 5 -0.22613238526861D+00 0.00000000000000D+00 + 2 6 3 5 0.45272050281847D+00 0.00000000000000D+00 + 3 6 3 5 -0.10938280371248D+00 0.00000000000000D+00 + 1 1 1 6 -0.74343275682823D+00 0.00000000000000D+00 + 2 1 1 6 -0.13955627327372D+01 0.00000000000000D+00 + 3 1 1 6 -0.12206523062930D+01 0.00000000000000D+00 + 1 2 1 6 0.74343063628280D+00 0.00000000000000D+00 + 2 2 1 6 0.13955597041417D+01 0.00000000000000D+00 + 3 2 1 6 0.12206514338931D+01 0.00000000000000D+00 + 1 4 1 6 -0.78255654743673D-05 0.00000000000000D+00 + 2 4 1 6 -0.26727400089579D-05 0.00000000000000D+00 + 3 4 1 6 0.18824683367372D-04 0.00000000000000D+00 + 1 5 1 6 -0.18590059475592D+00 0.00000000000000D+00 + 2 5 1 6 -0.22178903603733D+00 0.00000000000000D+00 + 3 5 1 6 -0.22613175246681D+00 0.00000000000000D+00 + 1 6 1 6 0.92483004473199D+00 0.00000000000000D+00 + 2 6 1 6 -0.16920038849534D-01 0.00000000000000D+00 + 3 6 1 6 0.29749600841045D+00 0.00000000000000D+00 + 1 1 2 6 -0.69671528364840D+00 0.00000000000000D+00 + 2 1 2 6 0.24877687553652D+00 0.00000000000000D+00 + 3 1 2 6 -0.11247429322882D+01 0.00000000000000D+00 + 1 2 2 6 0.69671418013027D+00 0.00000000000000D+00 + 2 2 2 6 -0.24877704826440D+00 0.00000000000000D+00 + 3 2 2 6 0.11247482462537D+01 0.00000000000000D+00 + 1 4 2 6 -0.67925890848722D-05 0.00000000000000D+00 + 2 4 2 6 -0.81471824177344D-05 0.00000000000000D+00 + 3 4 2 6 0.20598519725257D-04 0.00000000000000D+00 + 1 5 2 6 0.47054607435225D+00 0.00000000000000D+00 + 2 5 2 6 0.36332724067911D+00 0.00000000000000D+00 + 3 5 2 6 0.45271995721190D+00 0.00000000000000D+00 + 1 6 2 6 -0.16919491109408D-01 0.00000000000000D+00 + 2 6 2 6 0.11942948584868D+01 0.00000000000000D+00 + 3 6 2 6 -0.20728738466443D+00 0.00000000000000D+00 + 1 1 3 6 -0.63919168288844D+00 0.00000000000000D+00 + 2 1 3 6 -0.14808564204553D+01 0.00000000000000D+00 + 3 1 3 6 -0.15404688720490D+00 0.00000000000000D+00 + 1 2 3 6 0.63919003450334D+00 0.00000000000000D+00 + 2 2 3 6 0.14808533342983D+01 0.00000000000000D+00 + 3 2 3 6 0.15404242441465D+00 0.00000000000000D+00 + 1 4 3 6 0.66706172825924D-05 0.00000000000000D+00 + 2 4 3 6 0.83588051006216D-05 0.00000000000000D+00 + 3 4 3 6 -0.16450334098891D-04 0.00000000000000D+00 + 1 5 3 6 0.13033707175941D+00 0.00000000000000D+00 + 2 5 3 6 0.25559336652520D+00 0.00000000000000D+00 + 3 5 3 6 -0.10938348711555D+00 0.00000000000000D+00 + 1 6 3 6 0.29749505787555D+00 0.00000000000000D+00 + 2 6 3 6 -0.20728693554916D+00 0.00000000000000D+00 + 3 6 3 6 0.93791603300466D+00 0.00000000000000D+00 + + 3rd derivatives (long wave) - # elements : 324 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 1 10 0.00000000000000D+00 -0.10208699970663D-14 + 2 1 1 1 1 10 0.00000000000000D+00 -0.87523894592012D-01 + 3 1 1 1 1 10 0.00000000000000D+00 0.25700935298652D+00 + 1 2 1 1 1 10 0.00000000000000D+00 0.15067926537879D+01 + 2 2 1 1 1 10 0.00000000000000D+00 0.12876555785394D+01 + 3 2 1 1 1 10 0.00000000000000D+00 0.12157740626639D+01 + 1 4 1 1 1 10 0.00000000000000D+00 0.47195642340558D+02 + 2 4 1 1 1 10 0.00000000000000D+00 -0.36307907268249D+02 + 3 4 1 1 1 10 0.00000000000000D+00 0.99975351930397D+01 + 1 1 2 1 1 10 0.00000000000000D+00 0.87523894592012D-01 + 2 1 2 1 1 10 0.00000000000000D+00 -0.37961450981492D-15 + 3 1 2 1 1 10 0.00000000000000D+00 -0.19941641226580D-01 + 1 2 2 1 1 10 0.00000000000000D+00 0.12876561001665D+01 + 2 2 2 1 1 10 0.00000000000000D+00 0.39919183171000D+01 + 3 2 2 1 1 10 0.00000000000000D+00 0.14500945846732D+01 + 1 4 2 1 1 10 0.00000000000000D+00 -0.43325705739808D+01 + 2 4 2 1 1 10 0.00000000000000D+00 -0.17665351207833D+02 + 3 4 2 1 1 10 0.00000000000000D+00 0.49182720224550D+00 + 1 1 3 1 1 10 0.00000000000000D+00 -0.25700935298652D+00 + 2 1 3 1 1 10 0.00000000000000D+00 0.19941641226580D-01 + 3 1 3 1 1 10 0.00000000000000D+00 0.18382316248507D-16 + 1 2 3 1 1 10 0.00000000000000D+00 0.12157698922588D+01 + 2 2 3 1 1 10 0.00000000000000D+00 0.14500916864787D+01 + 3 2 3 1 1 10 0.00000000000000D+00 0.12966505598589D+01 + 1 4 3 1 1 10 0.00000000000000D+00 0.18637500699075D+02 + 2 4 3 1 1 10 0.00000000000000D+00 -0.11823568327561D+02 + 3 4 3 1 1 10 0.00000000000000D+00 -0.74476076305464D+01 + 1 1 1 2 1 10 0.00000000000000D+00 -0.15067926537879D+01 + 2 1 1 2 1 10 0.00000000000000D+00 -0.12876561001665D+01 + 3 1 1 2 1 10 0.00000000000000D+00 -0.12157698922588D+01 + 1 2 1 2 1 10 0.00000000000000D+00 0.11341351539848D-14 + 2 2 1 2 1 10 0.00000000000000D+00 0.87526176615915D-01 + 3 2 1 2 1 10 0.00000000000000D+00 -0.25700348298128D+00 + 1 4 1 2 1 10 0.00000000000000D+00 -0.47195954168314D+02 + 2 4 1 2 1 10 0.00000000000000D+00 0.36307979358277D+02 + 3 4 1 2 1 10 0.00000000000000D+00 -0.99974269969220D+01 + 1 1 2 2 1 10 0.00000000000000D+00 -0.12876555785394D+01 + 2 1 2 2 1 10 0.00000000000000D+00 -0.39919183171000D+01 + 3 1 2 2 1 10 0.00000000000000D+00 -0.14500916864787D+01 + 1 2 2 2 1 10 0.00000000000000D+00 -0.87526176615915D-01 + 2 2 2 2 1 10 0.00000000000000D+00 -0.30429540688284D-15 + 3 2 2 2 1 10 0.00000000000000D+00 0.19940303803009D-01 + 1 4 2 2 1 10 0.00000000000000D+00 0.43325690200393D+01 + 2 4 2 2 1 10 0.00000000000000D+00 0.17665305060928D+02 + 3 4 2 2 1 10 0.00000000000000D+00 -0.49183082370948D+00 + 1 1 3 2 1 10 0.00000000000000D+00 -0.12157740626639D+01 + 2 1 3 2 1 10 0.00000000000000D+00 -0.14500945846732D+01 + 3 1 3 2 1 10 0.00000000000000D+00 -0.12966505598588D+01 + 1 2 3 2 1 10 0.00000000000000D+00 0.25700348298128D+00 + 2 2 3 2 1 10 0.00000000000000D+00 -0.19940303803009D-01 + 3 2 3 2 1 10 0.00000000000000D+00 0.44384437566561D-15 + 1 4 3 2 1 10 0.00000000000000D+00 -0.18637582069444D+02 + 2 4 3 2 1 10 0.00000000000000D+00 0.11823636204710D+02 + 3 4 3 2 1 10 0.00000000000000D+00 0.74475641491076D+01 + 1 1 1 5 1 10 -0.33994555570014D+00 -0.00000000000000D+00 + 2 1 1 5 1 10 0.10576897792562D+01 -0.00000000000000D+00 + 3 1 1 5 1 10 0.71029723851353D+00 -0.00000000000000D+00 + 1 2 1 5 1 10 -0.33992705476722D+00 -0.00000000000000D+00 + 2 2 1 5 1 10 0.10576937232542D+01 -0.00000000000000D+00 + 3 2 1 5 1 10 0.71032884149231D+00 -0.00000000000000D+00 + 1 4 1 5 1 10 0.00000000000000D+00 0.16233801383764D+03 + 2 4 1 5 1 10 0.00000000000000D+00 -0.69106572848222D+02 + 3 4 1 5 1 10 0.00000000000000D+00 -0.40410292687413D+02 + 1 1 2 5 1 10 -0.74344189769476D+00 -0.00000000000000D+00 + 2 1 2 5 1 10 -0.23028265576600D-01 -0.00000000000000D+00 + 3 1 2 5 1 10 -0.75980009777791D+00 -0.00000000000000D+00 + 1 2 2 5 1 10 -0.74343254894378D+00 -0.00000000000000D+00 + 2 2 2 5 1 10 -0.23027974968757D-01 -0.00000000000000D+00 + 3 2 2 5 1 10 -0.75979352648425D+00 -0.00000000000000D+00 + 1 4 2 5 1 10 0.00000000000000D+00 0.16696012307674D+03 + 2 4 2 5 1 10 0.00000000000000D+00 -0.67408417306483D+02 + 3 4 2 5 1 10 0.00000000000000D+00 -0.20006656541651D+02 + 1 1 3 5 1 10 -0.15121964609369D+01 -0.00000000000000D+00 + 2 1 3 5 1 10 -0.93093229652718D+00 -0.00000000000000D+00 + 3 1 3 5 1 10 -0.13662738513493D+00 -0.00000000000000D+00 + 1 2 3 5 1 10 -0.15121829692394D+01 -0.00000000000000D+00 + 2 2 3 5 1 10 -0.93093975050444D+00 -0.00000000000000D+00 + 3 2 3 5 1 10 -0.13659935613370D+00 -0.00000000000000D+00 + 1 4 3 5 1 10 0.00000000000000D+00 0.16318019320880D+03 + 2 4 3 5 1 10 0.00000000000000D+00 -0.49501263250321D+02 + 3 4 3 5 1 10 0.00000000000000D+00 -0.37882977334711D+02 + 1 1 1 6 1 10 -0.10114349238446D+01 -0.00000000000000D+00 + 2 1 1 6 1 10 -0.11661711020412D+01 -0.00000000000000D+00 + 3 1 1 6 1 10 -0.71783478649488D+00 -0.00000000000000D+00 + 1 2 1 6 1 10 -0.10114337958092D+01 -0.00000000000000D+00 + 2 2 1 6 1 10 -0.11661749198309D+01 -0.00000000000000D+00 + 3 2 1 6 1 10 -0.71782861040899D+00 -0.00000000000000D+00 + 1 4 1 6 1 10 0.00000000000000D+00 0.48707035898090D+02 + 2 4 1 6 1 10 0.00000000000000D+00 -0.87358039401535D+01 + 3 4 1 6 1 10 0.00000000000000D+00 -0.12178174854968D+02 + 1 1 2 6 1 10 0.15459361188479D-01 -0.00000000000000D+00 + 2 1 2 6 1 10 0.19978834952680D+00 -0.00000000000000D+00 + 3 1 2 6 1 10 -0.87984795157229D+00 -0.00000000000000D+00 + 1 2 2 6 1 10 0.15452963240165D-01 -0.00000000000000D+00 + 2 2 2 6 1 10 0.19979150547107D+00 -0.00000000000000D+00 + 3 2 2 6 1 10 -0.87986661048706D+00 -0.00000000000000D+00 + 1 4 2 6 1 10 0.00000000000000D+00 -0.21732442291377D+02 + 2 4 2 6 1 10 0.00000000000000D+00 0.12771418945227D+00 + 3 4 2 6 1 10 0.00000000000000D+00 0.19768666230004D+02 + 1 1 3 6 1 10 -0.10226837886807D+00 -0.00000000000000D+00 + 2 1 3 6 1 10 -0.96709013342024D+00 -0.00000000000000D+00 + 3 1 3 6 1 10 -0.25470816102430D+00 -0.00000000000000D+00 + 1 2 3 6 1 10 -0.10227197241817D+00 -0.00000000000000D+00 + 2 2 3 6 1 10 -0.96709398675388D+00 -0.00000000000000D+00 + 3 2 3 6 1 10 -0.25471432333352D+00 -0.00000000000000D+00 + 1 4 3 6 1 10 0.00000000000000D+00 -0.37363604950797D+02 + 2 4 3 6 1 10 0.00000000000000D+00 0.17706001149788D+02 + 3 4 3 6 1 10 0.00000000000000D+00 0.99767817022265D+01 + 1 1 1 1 2 10 0.00000000000000D+00 0.16343080536351D-15 + 2 1 1 1 2 10 0.00000000000000D+00 -0.24654024864356D+00 + 3 1 1 1 2 10 0.00000000000000D+00 -0.77770441518817D-01 + 1 2 1 1 2 10 0.00000000000000D+00 0.30558616619182D+01 + 2 2 1 1 2 10 0.00000000000000D+00 0.20938161072972D+01 + 3 2 1 1 2 10 0.00000000000000D+00 0.32921709648745D+01 + 1 4 1 1 2 10 0.00000000000000D+00 -0.39573718165072D+02 + 2 4 1 1 2 10 0.00000000000000D+00 0.16150060460696D+02 + 3 4 1 1 2 10 0.00000000000000D+00 -0.20613512554271D+01 + 1 1 2 1 2 10 0.00000000000000D+00 0.24654024864356D+00 + 2 1 2 1 2 10 0.00000000000000D+00 -0.42234601782867D-14 + 3 1 2 1 2 10 0.00000000000000D+00 -0.24430539834832D+00 + 1 2 2 1 2 10 0.00000000000000D+00 0.20938275207591D+01 + 2 2 2 1 2 10 0.00000000000000D+00 -0.66548631079567D+01 + 3 2 2 1 2 10 0.00000000000000D+00 0.25742463644621D+01 + 1 4 2 1 2 10 0.00000000000000D+00 -0.28264293400298D+02 + 2 4 2 1 2 10 0.00000000000000D+00 0.35118007734358D+02 + 3 4 2 1 2 10 0.00000000000000D+00 -0.91080044690440D+01 + 1 1 3 1 2 10 0.00000000000000D+00 0.77770441518817D-01 + 2 1 3 1 2 10 0.00000000000000D+00 0.24430539834833D+00 + 3 1 3 1 2 10 0.00000000000000D+00 0.66302442849819D-15 + 1 2 3 1 2 10 0.00000000000000D+00 0.32921720521374D+01 + 2 2 3 1 2 10 0.00000000000000D+00 0.25742313064642D+01 + 3 2 3 1 2 10 0.00000000000000D+00 0.52633132640599D+01 + 1 4 3 1 2 10 0.00000000000000D+00 -0.17175944449648D+02 + 2 4 3 1 2 10 0.00000000000000D+00 0.15648127448146D+02 + 3 4 3 1 2 10 0.00000000000000D+00 -0.17144921959667D+02 + 1 1 1 2 2 10 0.00000000000000D+00 -0.30558616619182D+01 + 2 1 1 2 2 10 0.00000000000000D+00 -0.20938275207591D+01 + 3 1 1 2 2 10 0.00000000000000D+00 -0.32921720521374D+01 + 1 2 1 2 2 10 0.00000000000000D+00 0.58862062220552D-15 + 2 2 1 2 2 10 0.00000000000000D+00 0.24654327437865D+00 + 3 2 1 2 2 10 0.00000000000000D+00 0.77773429615293D-01 + 1 4 1 2 2 10 0.00000000000000D+00 0.39573779611498D+02 + 2 4 1 2 2 10 0.00000000000000D+00 -0.16150116482564D+02 + 3 4 1 2 2 10 0.00000000000000D+00 0.20613355806839D+01 + 1 1 2 2 2 10 0.00000000000000D+00 -0.20938161072972D+01 + 2 1 2 2 2 10 0.00000000000000D+00 0.66548631079567D+01 + 3 1 2 2 2 10 0.00000000000000D+00 -0.25742313064642D+01 + 1 2 2 2 2 10 0.00000000000000D+00 -0.24654327437865D+00 + 2 2 2 2 2 10 0.00000000000000D+00 -0.15360496188125D-15 + 3 2 2 2 2 10 0.00000000000000D+00 0.24432306331490D+00 + 1 4 2 2 2 10 0.00000000000000D+00 0.28264186025776D+02 + 2 4 2 2 2 10 0.00000000000000D+00 -0.35117915754174D+02 + 3 4 2 2 2 10 0.00000000000000D+00 0.91080455624331D+01 + 1 1 3 2 2 10 0.00000000000000D+00 -0.32921709648745D+01 + 2 1 3 2 2 10 0.00000000000000D+00 -0.25742463644621D+01 + 3 1 3 2 2 10 0.00000000000000D+00 -0.52633132640599D+01 + 1 2 3 2 2 10 0.00000000000000D+00 -0.77773429615293D-01 + 2 2 3 2 2 10 0.00000000000000D+00 -0.24432306331491D+00 + 3 2 3 2 2 10 0.00000000000000D+00 0.17120988573266D-15 + 1 4 3 2 2 10 0.00000000000000D+00 0.17176018368101D+02 + 2 4 3 2 2 10 0.00000000000000D+00 -0.15648338299192D+02 + 3 4 3 2 2 10 0.00000000000000D+00 0.17144875258893D+02 + 1 1 1 5 2 10 -0.58979008561143D+00 -0.00000000000000D+00 + 2 1 1 5 2 10 -0.28878553638104D+01 -0.00000000000000D+00 + 3 1 1 5 2 10 -0.94960963349219D+00 -0.00000000000000D+00 + 1 2 1 5 2 10 -0.58980390036432D+00 -0.00000000000000D+00 + 2 2 1 5 2 10 -0.28878763248655D+01 -0.00000000000000D+00 + 3 2 1 5 2 10 -0.94961548619649D+00 -0.00000000000000D+00 + 1 4 1 5 2 10 0.00000000000000D+00 -0.77818508992108D+02 + 2 4 1 5 2 10 0.00000000000000D+00 0.90348955900322D+02 + 3 4 1 5 2 10 0.00000000000000D+00 -0.15551925508748D+02 + 1 1 2 5 2 10 0.10665224325335D+00 -0.00000000000000D+00 + 2 1 2 5 2 10 -0.14917115354706D+01 -0.00000000000000D+00 + 3 1 2 5 2 10 0.46048084860201D+00 -0.00000000000000D+00 + 1 2 2 5 2 10 0.10664280267680D+00 -0.00000000000000D+00 + 2 2 2 5 2 10 -0.14917358244754D+01 -0.00000000000000D+00 + 3 2 2 5 2 10 0.46049393493619D+00 -0.00000000000000D+00 + 1 4 2 5 2 10 0.00000000000000D+00 -0.68986549201271D+02 + 2 4 2 5 2 10 0.00000000000000D+00 0.89198393575302D+02 + 3 4 2 5 2 10 0.00000000000000D+00 -0.30612260318415D+02 + 1 1 3 5 2 10 -0.11520062406272D+01 -0.00000000000000D+00 + 2 1 3 5 2 10 -0.30665744189900D+01 -0.00000000000000D+00 + 3 1 3 5 2 10 -0.24232291541705D+00 -0.00000000000000D+00 + 1 2 3 5 2 10 -0.11520161122158D+01 -0.00000000000000D+00 + 2 2 3 5 2 10 -0.30665992526825D+01 -0.00000000000000D+00 + 3 2 3 5 2 10 -0.24230286954053D+00 -0.00000000000000D+00 + 1 4 3 5 2 10 0.00000000000000D+00 -0.40121294252672D+02 + 2 4 3 5 2 10 0.00000000000000D+00 0.78851150886164D+02 + 3 4 3 5 2 10 0.00000000000000D+00 -0.36557357390796D+02 + 1 1 1 6 2 10 -0.12191355621722D+00 -0.00000000000000D+00 + 2 1 1 6 2 10 0.14317331040988D+01 -0.00000000000000D+00 + 3 1 1 6 2 10 -0.65578200157371D+00 -0.00000000000000D+00 + 1 2 1 6 2 10 -0.12191636966483D+00 -0.00000000000000D+00 + 2 2 1 6 2 10 0.14317379642328D+01 -0.00000000000000D+00 + 3 2 1 6 2 10 -0.65579377903492D+00 -0.00000000000000D+00 + 1 4 1 6 2 10 0.00000000000000D+00 -0.86905966189851D+01 + 2 4 1 6 2 10 0.00000000000000D+00 -0.40541528987040D+01 + 3 4 1 6 2 10 0.00000000000000D+00 0.92216958508735D+01 + 1 1 2 6 2 10 -0.81757803028397D+00 -0.00000000000000D+00 + 2 1 2 6 2 10 -0.29206869445511D+01 -0.00000000000000D+00 + 3 1 2 6 2 10 -0.91930722022964D+00 -0.00000000000000D+00 + 1 2 2 6 2 10 -0.81757858550665D+00 -0.00000000000000D+00 + 2 2 2 6 2 10 -0.29206905223538D+01 -0.00000000000000D+00 + 3 2 2 6 2 10 -0.91930242829058D+00 -0.00000000000000D+00 + 1 4 2 6 2 10 0.00000000000000D+00 0.18162736419942D+01 + 2 4 2 6 2 10 0.00000000000000D+00 0.17269020567457D+01 + 3 4 2 6 2 10 0.00000000000000D+00 -0.10356838923638D+01 + 1 1 3 6 2 10 -0.20069534433923D+00 -0.00000000000000D+00 + 2 1 3 6 2 10 0.12956851220336D+01 -0.00000000000000D+00 + 3 1 3 6 2 10 0.95652046901056D-01 -0.00000000000000D+00 + 1 2 3 6 2 10 -0.20069399566728D+00 -0.00000000000000D+00 + 2 2 3 6 2 10 0.12956926016970D+01 -0.00000000000000D+00 + 3 2 3 6 2 10 0.95642142978996D-01 -0.00000000000000D+00 + 1 4 3 6 2 10 0.00000000000000D+00 0.22557600675363D+02 + 2 4 3 6 2 10 0.00000000000000D+00 -0.18708428261578D+02 + 3 4 3 6 2 10 0.00000000000000D+00 0.26188111436988D+01 + 1 1 1 1 3 10 0.00000000000000D+00 -0.10183900851237D-14 + 2 1 1 1 3 10 0.00000000000000D+00 0.71270306604182D-01 + 3 1 1 1 3 10 0.00000000000000D+00 -0.64085542559283D+00 + 1 2 1 1 3 10 0.00000000000000D+00 0.96792121495537D+00 + 2 2 1 1 3 10 0.00000000000000D+00 0.24624989683117D+01 + 3 2 1 1 3 10 0.00000000000000D+00 0.68762806781000D+00 + 1 4 1 1 3 10 0.00000000000000D+00 0.90565593725740D+01 + 2 4 1 1 3 10 0.00000000000000D+00 -0.20778990051694D+01 + 3 4 1 1 3 10 0.00000000000000D+00 -0.19078773324324D+02 + 1 1 2 1 3 10 0.00000000000000D+00 -0.71270306604181D-01 + 2 1 2 1 3 10 0.00000000000000D+00 -0.10749681790578D-14 + 3 1 2 1 3 10 0.00000000000000D+00 -0.38517091465154D-01 + 1 2 2 1 3 10 0.00000000000000D+00 0.24625003167888D+01 + 2 2 2 1 3 10 0.00000000000000D+00 0.55583099205250D+01 + 3 2 2 1 3 10 0.00000000000000D+00 0.23561285198328D+01 + 1 4 2 1 3 10 0.00000000000000D+00 -0.11487421456493D+01 + 2 4 2 1 3 10 0.00000000000000D+00 -0.11026061529189D+02 + 3 4 2 1 3 10 0.00000000000000D+00 -0.69836905602988D+01 + 1 1 3 1 3 10 0.00000000000000D+00 0.64085542559283D+00 + 2 1 3 1 3 10 0.00000000000000D+00 0.38517091465158D-01 + 3 1 3 1 3 10 0.00000000000000D+00 -0.43552210799122D-15 + 1 2 3 1 3 10 0.00000000000000D+00 0.68762476310722D+00 + 2 2 3 1 3 10 0.00000000000000D+00 0.23561290445520D+01 + 3 2 3 1 3 10 0.00000000000000D+00 -0.28328675732034D+01 + 1 4 3 1 3 10 0.00000000000000D+00 -0.41814681668202D+01 + 2 4 3 1 3 10 0.00000000000000D+00 -0.19895195284350D+02 + 3 4 3 1 3 10 0.00000000000000D+00 0.26504236449417D+02 + 1 1 1 2 3 10 0.00000000000000D+00 -0.96792121495537D+00 + 2 1 1 2 3 10 0.00000000000000D+00 -0.24625003167888D+01 + 3 1 1 2 3 10 0.00000000000000D+00 -0.68762476310722D+00 + 1 2 1 2 3 10 0.00000000000000D+00 -0.12093319207871D-14 + 2 2 1 2 3 10 0.00000000000000D+00 -0.71270204992289D-01 + 3 2 1 2 3 10 0.00000000000000D+00 0.64085910103047D+00 + 1 4 1 2 3 10 0.00000000000000D+00 -0.90564863323327D+01 + 2 4 1 2 3 10 0.00000000000000D+00 0.20778740302723D+01 + 3 4 1 2 3 10 0.00000000000000D+00 0.19078712586065D+02 + 1 1 2 2 3 10 0.00000000000000D+00 -0.24624989683117D+01 + 2 1 2 2 3 10 0.00000000000000D+00 -0.55583099205250D+01 + 3 1 2 2 3 10 0.00000000000000D+00 -0.23561290445520D+01 + 1 2 2 2 3 10 0.00000000000000D+00 0.71270204992287D-01 + 2 2 2 2 3 10 0.00000000000000D+00 0.41798866027508D-15 + 3 2 2 2 3 10 0.00000000000000D+00 0.38510776792408D-01 + 1 4 2 2 3 10 0.00000000000000D+00 0.11487464151019D+01 + 2 4 2 2 3 10 0.00000000000000D+00 0.11026039015292D+02 + 3 4 2 2 3 10 0.00000000000000D+00 0.69836790475999D+01 + 1 1 3 2 3 10 0.00000000000000D+00 -0.68762806781000D+00 + 2 1 3 2 3 10 0.00000000000000D+00 -0.23561285198328D+01 + 3 1 3 2 3 10 0.00000000000000D+00 0.28328675732034D+01 + 1 2 3 2 3 10 0.00000000000000D+00 -0.64085910103047D+00 + 2 2 3 2 3 10 0.00000000000000D+00 -0.38510776792406D-01 + 3 2 3 2 3 10 0.00000000000000D+00 0.10522655325482D-14 + 1 4 3 2 3 10 0.00000000000000D+00 0.41813874379739D+01 + 2 4 3 2 3 10 0.00000000000000D+00 0.19895125508368D+02 + 3 4 3 2 3 10 0.00000000000000D+00 -0.26504096075965D+02 + 1 1 1 5 3 10 -0.62565109313144D+00 -0.00000000000000D+00 + 2 1 1 5 3 10 -0.89779979006807D+00 -0.00000000000000D+00 + 3 1 1 5 3 10 -0.21321603043480D+01 -0.00000000000000D+00 + 1 2 1 5 3 10 -0.62566269134906D+00 -0.00000000000000D+00 + 2 2 1 5 3 10 -0.89779409964710D+00 -0.00000000000000D+00 + 3 2 1 5 3 10 -0.21322269588276D+01 -0.00000000000000D+00 + 1 4 1 5 3 10 0.00000000000000D+00 -0.39657344570187D+02 + 2 4 1 5 3 10 0.00000000000000D+00 -0.21236989979143D+02 + 3 4 1 5 3 10 0.00000000000000D+00 0.10058295353462D+03 + 1 1 2 5 3 10 -0.11355195644979D+01 -0.00000000000000D+00 + 2 1 2 5 3 10 -0.17534942032832D+00 -0.00000000000000D+00 + 3 1 2 5 3 10 -0.19340846636025D+01 -0.00000000000000D+00 + 1 2 2 5 3 10 -0.11355280333545D+01 -0.00000000000000D+00 + 2 2 2 5 3 10 -0.17533913300187D+00 -0.00000000000000D+00 + 3 2 2 5 3 10 -0.19341413247007D+01 -0.00000000000000D+00 + 1 4 2 5 3 10 0.00000000000000D+00 -0.16848990224423D+02 + 2 4 2 5 3 10 0.00000000000000D+00 -0.30334104850827D+02 + 3 4 2 5 3 10 0.00000000000000D+00 0.89727788982028D+02 + 1 1 3 5 3 10 0.80648636930699D+00 -0.00000000000000D+00 + 2 1 3 5 3 10 0.14337939531040D+01 -0.00000000000000D+00 + 3 1 3 5 3 10 -0.79038933150110D+00 -0.00000000000000D+00 + 1 2 3 5 3 10 0.80647628454667D+00 -0.00000000000000D+00 + 2 2 3 5 3 10 0.14338054617340D+01 -0.00000000000000D+00 + 3 2 3 5 3 10 -0.79044503361350D+00 -0.00000000000000D+00 + 1 4 3 5 3 10 0.00000000000000D+00 -0.40203408536238D+02 + 2 4 3 5 3 10 0.00000000000000D+00 -0.32412881568519D+02 + 3 4 3 5 3 10 0.00000000000000D+00 0.91026380067932D+02 + 1 1 1 6 3 10 -0.21365100334068D+00 -0.00000000000000D+00 + 2 1 1 6 3 10 -0.11407563689803D+01 -0.00000000000000D+00 + 3 1 1 6 3 10 0.59084701191093D+00 -0.00000000000000D+00 + 1 2 1 6 3 10 -0.21365122048388D+00 -0.00000000000000D+00 + 2 2 1 6 3 10 -0.11407607701579D+01 -0.00000000000000D+00 + 3 2 1 6 3 10 0.59084075572104D+00 -0.00000000000000D+00 + 1 4 1 6 3 10 0.00000000000000D+00 -0.64381231989550D+01 + 2 4 1 6 3 10 0.00000000000000D+00 0.34220838460823D+01 + 3 4 1 6 3 10 0.00000000000000D+00 0.80687882139086D+01 + 1 1 2 6 3 10 -0.69266473743779D+00 -0.00000000000000D+00 + 2 1 2 6 3 10 0.22810171100058D+00 -0.00000000000000D+00 + 3 1 2 6 3 10 0.57647756878727D+00 -0.00000000000000D+00 + 1 2 2 6 3 10 -0.69265874838504D+00 -0.00000000000000D+00 + 2 2 2 6 3 10 0.22810073710668D+00 -0.00000000000000D+00 + 3 2 2 6 3 10 0.57648924731526D+00 -0.00000000000000D+00 + 1 4 2 6 3 10 0.00000000000000D+00 0.14461510436760D+02 + 2 4 2 6 3 10 0.00000000000000D+00 -0.19229221086119D+00 + 3 4 2 6 3 10 0.00000000000000D+00 -0.18886403472429D+02 + 1 1 3 6 3 10 -0.10196319816598D+01 -0.00000000000000D+00 + 2 1 3 6 3 10 -0.14068312197488D+01 -0.00000000000000D+00 + 3 1 3 6 3 10 -0.19012578869027D+01 -0.00000000000000D+00 + 1 2 3 6 3 10 -0.10196341917893D+01 -0.00000000000000D+00 + 2 2 3 6 3 10 -0.14068329419340D+01 -0.00000000000000D+00 + 3 2 3 6 3 10 -0.19012638918631D+01 -0.00000000000000D+00 + 1 4 3 6 3 10 0.00000000000000D+00 0.41138926537885D+01 + 2 4 3 6 3 10 0.00000000000000D+00 0.49523817491534D+01 + 3 4 3 6 3 10 0.00000000000000D+00 0.23424865283788D+01 + + List of bloks and their characteristics + + Total energy - # elements : 1 + + 1st derivatives - # elements : 12 + + 2nd derivatives (non-stat.) - # elements : 171 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + + 3rd derivatives (long wave) - # elements : 324 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 diff --git a/abipy/data/refs/LW_DDBs/tlw_3.abo b/abipy/data/refs/LW_DDBs/tlw_3.abo new file mode 100644 index 000000000..835fcb041 --- /dev/null +++ b/abipy/data/refs/LW_DDBs/tlw_3.abo @@ -0,0 +1,233 @@ + +.Version 9.5.2 of ANADDB +.(MPI version, prepared for a x86_64_darwin20.3.0_gnu8.2 computer) + +.Copyright (C) 1998-2021 ABINIT group . + ANADDB comes with ABSOLUTELY NO WARRANTY. + It is free software, and you are welcome to redistribute it + under certain conditions (GNU General Public License, + see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). + + ABINIT is a project of the Universite Catholique de Louvain, + Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt . + Please read https://docs.abinit.org/theory/acknowledgments for suggested + acknowledgments of the ABINIT effort. + For more information, see https://www.abinit.org . + +.Starting date : Fri 16 Jul 2021. +- ( at 21h49 ) + + +================================================================================ + + -outvars_anaddb: echo values of input variables ---------------------- + + Flags : + flexoflag 1 + Miscellaneous information : + asr 1 + +================================================================================ + + read the DDB information and perform some checks + + Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1): + R(1)= 0.0000000 5.0510000 5.0510000 G(1)= -0.0989903 0.0989903 0.0989903 + R(2)= 5.3000000 0.0000000 5.3000000 G(2)= 0.0943396 -0.0943396 0.0943396 + R(3)= 4.7000000 4.7000000 0.0000000 G(3)= 0.1063830 0.1063830 -0.1063830 + Unit cell volume ucvol= 2.5164082E+02 bohr^3 + Angles (23,13,12)= 6.00000000E+01 6.00000000E+01 6.00000000E+01 degrees + Now the whole DDB is in central memory + +================================================================================ + + Dynamical Quadrupoles Tensor (units: e Bohr) + + atom dir Qxx Qyy Qzz Qyz Qxz Qxy + 1 x -4.975134 6.606463 -1.862628 18.564654 0.939550 1.493356 + 1 y 2.768376 -23.527077 -1.127885 -7.526212 10.873572 7.174009 + 1 z -1.346076 -1.246002 8.622867 0.244335 -3.102134 18.151716 + 2 x 4.975129 -6.606489 1.862628 -18.564648 -0.939464 -1.493338 + 2 y -2.768248 23.527146 1.127976 7.526273 -10.873509 -7.174072 + 2 z 1.346027 1.246034 -8.622837 -0.244306 3.102033 -18.151695 + +================================================================================ + + Dielectric Tensor and Effective Charges + + + anaddb : Zero the imaginary part of the Dynamical Matrix at Gamma, + and impose the ASR on the effective charges + + The violation of the charge neutrality conditions + by the effective charges is as follows : + atom electric field + displacement direction + 1 1 -0.023512 0.000000 + 1 2 -0.055361 0.000000 + 1 3 -0.016138 0.000000 + 2 1 -0.055936 0.000000 + 2 2 -0.205252 0.000000 + 2 3 0.000154 0.000000 + 3 1 -0.014941 0.000000 + 3 2 -0.001867 0.000000 + 3 3 0.001125 0.000000 + + Effective charge tensors after + imposition of the charge neutrality, + and eventual restriction to some part : + atom displacement + 1 1 0.000000E+00 0.000000E+00 0.000000E+00 + 1 2 0.000000E+00 0.000000E+00 0.000000E+00 + 1 3 0.000000E+00 0.000000E+00 0.000000E+00 + 2 1 0.000000E+00 0.000000E+00 0.000000E+00 + 2 2 0.000000E+00 0.000000E+00 0.000000E+00 + 2 3 0.000000E+00 0.000000E+00 0.000000E+00 + Now, the imaginary part of the dynamical matrix is zeroed + +================================================================================ + + Calculation of the tensors related to flexoelectric effect + + + Type-II electronic (clamped ion) flexoelectric tensor (units= nC/m) + + xx yy zz yz xz xy + xx -2.342666 -1.810011 -1.528501 -0.231206 0.243376 0.173825 + yy -2.720207 -3.271209 -2.633297 -0.596696 0.096939 0.345599 + zz -1.673989 -1.897991 -2.425251 -0.403666 0.276669 0.244359 + yz -0.433814 -0.716382 -0.779667 -0.579423 0.037990 0.028824 + xz 0.401579 0.326993 0.560899 0.248163 -0.301982 -0.152722 + xy 0.680526 0.641859 0.622412 0.158164 -0.030922 -0.540017 + zy -0.500546 -0.792048 -0.655960 -0.573687 0.129532 0.157395 + zx 0.619159 0.302829 0.378492 0.252424 -0.265545 -0.182483 + yx 0.725468 0.626141 0.565860 -0.013692 0.031126 -0.498914 + + First moment of Polarization induced by atomic displacement (1/ucvol factor not included) (units: e Bohr) + + atom dir Pxx Pyy Pzz Pyz Pxz Pxy Pzy Pzx Pyx + 1 x -2.487567 3.303231 -0.931314 10.001382 -0.501019 0.371392 8.563272 1.440569 1.121964 + 1 y 1.384188 -11.763539 -0.563943 -3.661284 5.684013 3.977175 -3.864928 5.189559 3.196834 + 1 z -0.673038 -0.623001 4.311433 0.344690 -2.350824 8.137292 -0.100354 -0.751310 10.014424 + 2 x 2.487565 -3.303245 0.931314 -10.001381 0.501055 -0.371380 -8.563267 -1.440519 -1.121957 + 2 y -1.384124 11.763573 0.563988 3.661307 -5.683981 -3.977210 3.864966 -5.189528 -3.196863 + 2 z 0.673013 0.623017 -4.311419 -0.344672 2.350766 -8.137283 0.100366 0.751267 -10.014412 + + Force-response internal strain tensor from long-wave magnitudes (units: Hartree/Bohr) + + atom dir xx yy zz yz xz xy + 1 x 0.005662 -0.076263 -0.063681 0.182414 0.026721 0.091926 + 1 y 0.134988 -0.083193 0.110602 0.075080 0.212126 -0.065799 + 1 z -0.019709 0.037867 -0.017313 0.077585 -0.072463 0.177970 + 2 x -0.005662 0.076263 0.063680 -0.182413 -0.026721 -0.091926 + 2 y -0.134989 0.083193 -0.110603 -0.075080 -0.212127 0.065800 + 2 z 0.019709 -0.037867 0.017313 -0.077584 0.072464 -0.177970 + + Displacement-response internal strain tensor from long-wave magnitudes (units: Bohr) + + atom dir xx yy zz yz xz xy + 1 x -1.000435 -0.915752 -1.889571 1.106063 -0.746568 -0.431861 + 1 y 1.485495 0.116906 1.901235 -0.087172 1.735885 0.210840 + 1 z 1.099092 0.825155 1.875636 -0.592594 0.820558 0.966656 + 2 x 1.000435 0.915752 1.889571 -1.106063 0.746568 0.431861 + 2 y -1.485495 -0.116906 -1.901235 0.087172 -1.735885 -0.210840 + 2 z -1.099092 -0.825155 -1.875636 0.592594 -0.820558 -0.966656 + + Type-II mixed contribution to flexoelectric tensor (units: nC/m) + + xx yy zz yz xz xy + xx -0.091564 -0.045347 -0.146058 0.052667 -0.084876 -0.018411 + yy 0.516501 0.118254 0.716502 -0.088691 0.542677 0.109541 + zz -0.116289 -0.104544 -0.211138 0.071881 -0.070658 -0.109331 + yz 0.362534 0.223848 0.606707 -0.238556 0.306877 0.120359 + xz -0.153069 0.019647 -0.176725 -0.014042 -0.196092 0.021800 + xy -0.348443 -0.164579 -0.532342 0.084844 -0.302731 -0.207882 + zy 0.346963 0.201567 0.570721 -0.208888 0.299528 0.116019 + zx -0.130957 0.032063 -0.138013 -0.042754 -0.173084 0.007885 + yx -0.352126 -0.183117 -0.547235 0.088093 -0.292775 -0.240076 + + Lagrange elastic tensor from long wave magnitudes (clamped ion) (units= 10^2 GPa) + + xx yy zz yz xz xy + 2.151712 0.821165 0.903194 -0.193025 0.623802 0.218053 + 0.895809 1.594364 0.785170 -0.272481 0.451917 0.393302 + 0.906380 0.720902 2.317872 -0.257509 0.591910 -0.158253 + -0.228347 -0.276855 -0.302464 1.095685 0.035120 0.383056 + 0.588595 0.438924 0.615123 0.019068 1.430415 -0.223495 + 0.234921 0.419808 -0.077707 0.406901 -0.272492 1.192400 + + Lagrange elastic tensor from long wave magnitudes (relaxed ion) (units= 10^2 GPa) + + xx yy zz yz xz xy + 1.676900 0.770510 0.282665 -0.156313 0.087961 0.172275 + 0.680878 1.362780 0.359935 -0.051216 0.332129 0.233060 + 0.455281 0.615912 1.684831 -0.141863 0.110496 -0.206559 + -0.430636 -0.183218 -0.458648 0.827382 -0.221360 0.213475 + 0.177202 0.635556 0.238843 -0.154888 0.817643 -0.062287 + 0.324801 0.299406 -0.026889 0.387727 -0.062204 0.928503 + + Flexoelectric force response tensor (units: eV) + + atom dir xx yy zz yz xz xy + 1 xx 19.099531 8.580296 3.174505 -2.163455 1.023616 2.004745 + 1 yy 8.337894 16.244754 4.073712 -0.595975 4.629456 2.712108 + 1 zz 5.712578 6.781208 19.721132 -1.650857 1.285857 -1.545412 + 1 yz -5.011245 -1.443223 -5.337129 9.743105 -2.576025 1.719706 + 1 xz 0.533174 7.396009 2.779450 -1.802453 9.629768 -0.380467 + 1 xy 2.063078 3.484120 -0.312970 4.511988 -0.379491 11.191147 + 2 xx 19.099830 8.580476 3.174659 -2.163394 1.023602 2.004803 + 2 yy 8.338049 16.245012 4.073835 -0.596023 4.629511 2.712168 + 2 zz 5.712780 6.781423 19.721528 -1.650897 1.285851 -1.545488 + 2 yz -5.011458 -1.443421 -5.337513 9.743145 -2.575936 1.719803 + 2 xz 0.533172 7.396028 2.779412 -1.802444 9.629825 -0.380402 + 2 xy 2.063225 3.484297 -0.312845 4.512025 -0.379454 11.191197 + + Displacement-response flexoelectric internal strain tensor (units: Bohr^2) + + atom dir xx yy zz yz xz xy + 1 xx -0.000051 -0.000024 -0.000003 -0.000022 0.000007 -0.000023 + 1 yy 0.000035 0.000027 0.000025 0.000011 0.000003 -0.000003 + 1 zz -0.000020 -0.000022 -0.000056 0.000007 -0.000001 0.000022 + 1 yz 0.000009 0.000007 0.000003 0.000000 -0.000009 0.000005 + 1 xz 0.000015 0.000015 0.000045 -0.000006 -0.000002 -0.000021 + 1 xy -0.000072 -0.000075 -0.000053 -0.000010 -0.000012 -0.000006 + 2 xx 0.000051 0.000024 0.000003 0.000022 -0.000007 0.000023 + 2 yy -0.000035 -0.000027 -0.000025 -0.000011 -0.000003 0.000003 + 2 zz 0.000020 0.000022 0.000056 -0.000007 0.000001 -0.000022 + 2 yz -0.000009 -0.000007 -0.000003 -0.000000 0.000009 -0.000005 + 2 xz -0.000015 -0.000015 -0.000045 0.000006 0.000002 0.000021 + 2 xy 0.000072 0.000075 0.000053 0.000010 0.000012 0.000006 + + Type-II lattice contribution to flexoelectric tensor (units= nC/m) + + xx yy zz yz xz xy + xx 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + yy 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + zz 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + yz 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + xz 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + xy 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + zy 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + zx 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + yx 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 + + TOTAL flexoelectric tensor (units= nC/m) + + xx yy zz yz xz xy + xx -2.434229 -1.855357 -1.674559 -0.178539 0.158499 0.155413 + yy -2.203706 -3.152955 -1.916795 -0.685387 0.639616 0.455140 + zz -1.790278 -2.002535 -2.636389 -0.331784 0.206011 0.135028 + yz -0.071280 -0.492534 -0.172959 -0.817979 0.344867 0.149183 + xz 0.248509 0.346640 0.384174 0.234121 -0.498074 -0.130923 + xy 0.332083 0.477280 0.090070 0.243007 -0.333653 -0.747899 + zy -0.153584 -0.590481 -0.085240 -0.782575 0.429060 0.273414 + zx 0.488202 0.334892 0.240478 0.209670 -0.438629 -0.174598 + yx 0.373342 0.443025 0.018624 0.074401 -0.261648 -0.738990 +- +- Proc. 0 individual time (sec): cpu= 0.0 wall= 0.1 + +================================================================================ + ++Total cpu time 0.048 and wall time 0.078 sec + + anaddb : the run completed succesfully. diff --git a/abipy/data/refs/LW_DDBs/tlw_5.quad_DDB b/abipy/data/refs/LW_DDBs/tlw_5.quad_DDB new file mode 100644 index 000000000..f91528de8 --- /dev/null +++ b/abipy/data/refs/LW_DDBs/tlw_5.quad_DDB @@ -0,0 +1,899 @@ + + **** DERIVATIVE DATABASE **** ++DDB, Version number 100401 + + Total DDB for GaP phonons including quadrupoles interactions + + usepaw 0 + natom 2 + nkpt 256 + nsppol 1 + nsym 24 + ntypat 2 + occopt 1 + nband 4 + acell 0.10000000000000D+01 0.10000000000000D+01 0.10000000000000D+01 + amu 0.69723000000000D+02 0.30973762000000D+02 + dilatmx 0.10000000000000D+01 + ecut 0.50000000000000D+01 + ecutsm 0.00000000000000D+00 + intxc 0 + iscf 7 + ixc 7 + kpt -0.12500000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.12500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.25000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.12500000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.12500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.25000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.37500000000000D+00 0.00000000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.12500000000000D+00 0.00000000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 0.12500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 0.12500000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.25000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.25000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.25000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.37500000000000D+00 0.00000000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 -0.25000000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.12500000000000D+00 0.00000000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 0.12500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 0.12500000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 0.12500000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.25000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.25000000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 0.37500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 -0.25000000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 -0.25000000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.12500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 0.12500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 -0.37500000000000D+00 + 0.50000000000000D+00 0.12500000000000D+00 -0.25000000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.25000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.37500000000000D+00 0.50000000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 0.37500000000000D+00 -0.25000000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 -0.25000000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.12500000000000D+00 0.50000000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 0.12500000000000D+00 -0.25000000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.37500000000000D+00 -0.25000000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.12500000000000D+00 -0.25000000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 -0.12500000000000D+00 + kptnrm 0.10000000000000D+01 + ngfft 16 16 16 + nspden 1 + nspinor 1 + occ 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 + rprim 0.00000000000000D+00 0.50230160830020D+01 0.50230160830020D+01 + 0.50230160830020D+01 0.00000000000000D+00 0.50230160830020D+01 + 0.50230160830020D+01 0.50230160830020D+01 0.00000000000000D+00 + dfpt_sciss 0.00000000000000D+00 + spinat 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + symafm 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + symrel 1 0 0 0 1 0 0 0 1 + 0 -1 1 0 -1 0 1 -1 0 + -1 0 0 -1 0 1 -1 1 0 + 0 1 -1 1 0 -1 0 0 -1 + -1 0 0 -1 1 0 -1 0 1 + 0 -1 1 1 -1 0 0 -1 0 + 1 0 0 0 0 1 0 1 0 + 0 1 -1 0 0 -1 1 0 -1 + -1 0 1 -1 1 0 -1 0 0 + 0 -1 0 1 -1 0 0 -1 1 + 1 0 -1 0 0 -1 0 1 -1 + 0 1 0 0 0 1 1 0 0 + 1 0 -1 0 1 -1 0 0 -1 + 0 -1 0 0 -1 1 1 -1 0 + -1 0 1 -1 0 0 -1 1 0 + 0 1 0 1 0 0 0 0 1 + 0 0 -1 0 1 -1 1 0 -1 + 1 -1 0 0 -1 1 0 -1 0 + 0 0 1 1 0 0 0 1 0 + -1 1 0 -1 0 0 -1 0 1 + 0 0 1 0 1 0 1 0 0 + 1 -1 0 0 -1 0 0 -1 1 + 0 0 -1 1 0 -1 0 1 -1 + -1 1 0 -1 0 1 -1 0 0 + tnons 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + tolwfr 0.10000000000000D+01 + tphysel 0.00000000000000D+00 + tsmear 0.10000000000000D-01 + typat 1 2 + wtk 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 0.39062500000000D-02 0.39062500000000D-02 + 0.39062500000000D-02 + xred 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + znucl 0.31000000000000D+02 0.15000000000000D+02 + zion 0.30000000000000D+01 0.50000000000000D+01 + + Description of the potentials (KB energies) + vrsio8 (for pseudopotentials)=100401 + usepaw = 0 + dimekb = 4 lmnmax= 16 + Atom type= 1 pspso= 0 nekb= 3 + iln lpsang iproj ekb(:) + 1 1 1 2.4780445E+00 0.0000000E+00 0.0000000E+00 + 2 2 1 0.0000000E+00 3.9361656E+01 0.0000000E+00 + 3 3 1 0.0000000E+00 0.0000000E+00 -1.9139454E+00 + Atom type= 2 pspso= 0 nekb= 3 + iln lpsang iproj ekb(:) + 1 0 1 4.2409504E+00 0.0000000E+00 0.0000000E+00 + 2 1 1 0.0000000E+00 2.3136944E+00 0.0000000E+00 + 3 3 1 0.0000000E+00 0.0000000E+00 -1.4356977E+00 + + **** Database of total energy derivatives **** + Number of data blocks= 9 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.73992659884571D+01 0.00000000000000D+00 + 2 1 1 1 0.36996329942286D+01 0.00000000000000D+00 + 3 1 1 1 0.36996329942286D+01 0.00000000000000D+00 + 1 2 1 1 -0.73992435986927D+01 -0.15871886033611D-18 + 2 2 1 1 -0.36996217993464D+01 -0.11626986506102D-16 + 3 2 1 1 -0.36996217993464D+01 -0.15914439808815D-16 + 1 4 1 1 -0.58378053111673D+01 0.00000000000000D+00 + 2 4 1 1 -0.12945875100637D-16 0.00000000000000D+00 + 3 4 1 1 -0.11564823173179D-17 0.00000000000000D+00 + 1 1 2 1 0.36996329942286D+01 0.00000000000000D+00 + 2 1 2 1 0.73992659884571D+01 0.00000000000000D+00 + 3 1 2 1 0.36996329942286D+01 0.00000000000000D+00 + 1 2 2 1 -0.36996217993464D+01 -0.11626986506102D-16 + 2 2 2 1 -0.73992435986927D+01 0.11402003568156D-17 + 3 2 2 1 -0.36996217993464D+01 0.53771888885612D-17 + 1 4 2 1 0.00000000000000D+00 0.00000000000000D+00 + 2 4 2 1 -0.58378053111673D+01 0.00000000000000D+00 + 3 4 2 1 -0.26478744033722D-16 0.00000000000000D+00 + 1 1 3 1 0.36996329942286D+01 0.00000000000000D+00 + 2 1 3 1 0.36996329942286D+01 0.00000000000000D+00 + 3 1 3 1 0.73992659884571D+01 0.00000000000000D+00 + 1 2 3 1 -0.36996217993464D+01 -0.15914439808815D-16 + 2 2 3 1 -0.36996217993464D+01 0.53771888885612D-17 + 3 2 3 1 -0.73992435986927D+01 -0.13980412988010D-17 + 1 4 3 1 0.00000000000000D+00 0.00000000000000D+00 + 2 4 3 1 0.70757250179283D-17 0.00000000000000D+00 + 3 4 3 1 -0.58378053111673D+01 0.00000000000000D+00 + 1 1 1 2 -0.73992570873805D+01 0.15871886033611D-18 + 2 1 1 2 -0.36996285436902D+01 0.11626986506102D-16 + 3 1 1 2 -0.36996285436902D+01 0.15914439808815D-16 + 1 2 1 2 0.74002045074544D+01 0.00000000000000D+00 + 2 2 1 2 0.37001022537272D+01 0.00000000000000D+00 + 3 2 1 2 0.37001022537272D+01 0.00000000000000D+00 + 1 4 1 2 -0.44592721640668D+02 0.00000000000000D+00 + 2 4 1 2 -0.83369923694294D-16 0.00000000000000D+00 + 3 4 1 2 0.34694469519536D-16 0.00000000000000D+00 + 1 1 2 2 -0.36996285436902D+01 0.11626986506102D-16 + 2 1 2 2 -0.73992570873805D+01 -0.11402003568156D-17 + 3 1 2 2 -0.36996285436902D+01 -0.53771888885612D-17 + 1 2 2 2 0.37001022537272D+01 0.00000000000000D+00 + 2 2 2 2 0.74002045074544D+01 0.00000000000000D+00 + 3 2 2 2 0.37001022537272D+01 0.00000000000000D+00 + 1 4 2 2 -0.29605947323338D-15 0.00000000000000D+00 + 2 4 2 2 -0.44592721640668D+02 0.00000000000000D+00 + 3 4 2 2 -0.32705142056830D-16 0.00000000000000D+00 + 1 1 3 2 -0.36996285436902D+01 0.15914439808815D-16 + 2 1 3 2 -0.36996285436902D+01 -0.53771888885612D-17 + 3 1 3 2 -0.73992570873805D+01 0.13980412988010D-17 + 1 2 3 2 0.37001022537272D+01 0.00000000000000D+00 + 2 2 3 2 0.37001022537272D+01 0.00000000000000D+00 + 3 2 3 2 0.74002045074544D+01 0.00000000000000D+00 + 1 4 3 2 -0.29605947323338D-15 0.00000000000000D+00 + 2 4 3 2 0.24160160747203D-15 0.00000000000000D+00 + 3 4 3 2 -0.44592721640668D+02 0.00000000000000D+00 + 1 1 1 4 -0.58378148490652D+01 0.00000000000000D+00 + 2 1 1 4 -0.37007434154172D-16 0.00000000000000D+00 + 3 1 1 4 0.37007434154172D-16 0.00000000000000D+00 + 1 2 1 4 -0.44592714162088D+02 0.00000000000000D+00 + 2 2 1 4 0.00000000000000D+00 0.00000000000000D+00 + 3 2 1 4 -0.29605947323338D-15 0.00000000000000D+00 + 1 4 1 4 -0.20908110693422D+03 0.00000000000000D+00 + 2 4 1 4 0.69693702311408D+02 0.00000000000000D+00 + 3 4 1 4 0.69693702311408D+02 0.00000000000000D+00 + 1 1 2 4 0.20826308922213D-16 0.00000000000000D+00 + 2 1 2 4 -0.58378148490653D+01 0.00000000000000D+00 + 3 1 2 4 0.25206911035325D-16 0.00000000000000D+00 + 1 2 2 4 -0.43699200019436D-15 0.00000000000000D+00 + 2 2 2 4 -0.44592714162088D+02 0.00000000000000D+00 + 3 2 2 4 0.27711266086902D-15 0.00000000000000D+00 + 1 4 2 4 0.69693702311408D+02 0.00000000000000D+00 + 2 4 2 4 -0.20908110693422D+03 0.00000000000000D+00 + 3 4 2 4 0.69693702311408D+02 0.00000000000000D+00 + 1 1 3 4 -0.23494665641041D-16 0.00000000000000D+00 + 2 1 3 4 -0.57463838384072D-16 0.00000000000000D+00 + 3 1 3 4 -0.58378148490652D+01 0.00000000000000D+00 + 1 2 3 4 0.40255069647019D-15 0.00000000000000D+00 + 2 2 3 4 -0.31912655384401D-15 0.00000000000000D+00 + 3 2 3 4 -0.44592714162088D+02 0.00000000000000D+00 + 1 4 3 4 0.69693702311408D+02 0.00000000000000D+00 + 2 4 3 4 0.69693702311408D+02 0.00000000000000D+00 + 3 4 3 4 -0.20908110693422D+03 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 2.50000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.90948192603823D+01 -0.21318352744620D-06 + 2 1 1 1 0.37447447277049D+01 -0.58887069816414D-16 + 3 1 1 1 0.37447447277049D+01 -0.64915326125887D-16 + 1 2 1 1 -0.42735412531591D+01 -0.37374472285501D+01 + 2 2 1 1 -0.36261686907061D+01 -0.59792762971592D-01 + 3 2 1 1 -0.36261686907061D+01 -0.59792762971590D-01 + 1 1 2 1 0.37447447277049D+01 -0.58887069816414D-16 + 2 1 2 1 0.74894894554098D+01 0.51826478413150D-17 + 3 1 2 1 0.37447447277049D+01 -0.14405210791313D-16 + 1 2 2 1 -0.36261686907061D+01 -0.59792762971591D-01 + 2 2 2 1 -0.72523373814121D+01 -0.11958552594319D+00 + 3 2 2 1 -0.36261686907061D+01 -0.59792762971591D-01 + 1 1 3 1 0.37447447277049D+01 -0.64915326125887D-16 + 2 1 3 1 0.37447447277049D+01 -0.14405210791313D-16 + 3 1 3 1 0.74894894554099D+01 0.94569956973219D-17 + 1 2 3 1 -0.36261686907061D+01 -0.59792762971590D-01 + 2 2 3 1 -0.36261686907061D+01 -0.59792762971592D-01 + 3 2 3 1 -0.72523373814121D+01 -0.11958552594318D+00 + 1 1 1 2 -0.42735475356514D+01 0.37374357826249D+01 + 2 1 1 2 -0.36261703439295D+01 0.59790536922439D-01 + 3 1 1 2 -0.36261703439295D+01 0.59790536922438D-01 + 1 2 1 2 0.92376918130799D+01 -0.14459177894141D-06 + 2 2 1 2 0.39589583120361D+01 -0.16357519393448D-15 + 3 2 1 2 0.39589583120361D+01 -0.18032035034969D-15 + 1 1 2 2 -0.36261703439295D+01 0.59790536922439D-01 + 2 1 2 2 -0.72523406878590D+01 0.11958107384488D+00 + 3 1 2 2 -0.36261703439295D+01 0.59790536922439D-01 + 1 2 2 2 0.39589583120361D+01 -0.16357519393448D-15 + 2 2 2 2 0.79179166240722D+01 0.14396244003653D-16 + 3 2 2 2 0.39589583120361D+01 -0.40014474420315D-16 + 1 1 3 2 -0.36261703439295D+01 0.59790536922438D-01 + 2 1 3 2 -0.36261703439295D+01 0.59790536922439D-01 + 3 1 3 2 -0.72523406878590D+01 0.11958107384488D+00 + 1 2 3 2 0.39589583120361D+01 -0.18032035034969D-15 + 2 2 3 2 0.39589583120361D+01 -0.40014474420315D-16 + 3 2 3 2 0.79179166240723D+01 0.26269432492561D-16 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.10064053032111D+02 -0.11108150842955D-12 + 2 1 1 1 0.38748928698380D+01 0.00000000000000D+00 + 3 1 1 1 0.38748928698380D+01 0.00000000000000D+00 + 1 2 1 1 -0.45790541970023D+00 -0.28298573926890D-11 + 2 2 1 1 -0.36819626501632D+01 0.29293580017356D-15 + 3 2 1 1 -0.36819626501632D+01 0.28684253670379D-15 + 1 1 2 1 0.38748928698380D+01 0.00000000000000D+00 + 2 1 2 1 0.77497857396760D+01 0.00000000000000D+00 + 3 1 2 1 0.38748928698380D+01 0.00000000000000D+00 + 1 2 2 1 -0.36819626501632D+01 0.29293580017359D-15 + 2 2 2 1 -0.73639253003265D+01 0.56860851487078D-15 + 3 2 2 1 -0.36819626501632D+01 0.28482001954751D-15 + 1 1 3 1 0.38748928698380D+01 0.00000000000000D+00 + 2 1 3 1 0.38748928698380D+01 0.00000000000000D+00 + 3 1 3 1 0.77497857396760D+01 0.00000000000000D+00 + 1 2 3 1 -0.36819626501632D+01 0.28684253670383D-15 + 2 2 3 1 -0.36819626501632D+01 0.28482001954751D-15 + 3 2 3 1 -0.73639253003265D+01 0.59356849865430D-15 + 1 1 1 2 -0.45791959419100D+00 0.31797281124041D-11 + 2 1 1 2 -0.36819769293771D+01 -0.31233011443780D-15 + 3 1 1 2 -0.36819769293771D+01 -0.30623685096799D-15 + 1 2 1 2 0.10241999179244D+02 -0.90355364344145D-12 + 2 2 1 2 0.41265583517634D+01 0.00000000000000D+00 + 3 2 1 2 0.41265583517634D+01 0.00000000000000D+00 + 1 1 2 2 -0.36819769293771D+01 -0.31233011443765D-15 + 2 1 2 2 -0.73639538587542D+01 -0.60739714339907D-15 + 3 1 2 2 -0.36819769293771D+01 -0.30421433381165D-15 + 1 2 2 2 0.41265583517634D+01 0.00000000000000D+00 + 2 2 2 2 0.82531167035268D+01 0.00000000000000D+00 + 3 2 2 2 0.41265583517634D+01 0.00000000000000D+00 + 1 1 3 2 -0.36819769293771D+01 -0.30623685096796D-15 + 2 1 3 2 -0.36819769293771D+01 -0.30421433381165D-15 + 3 1 3 2 -0.73639538587541D+01 -0.63235712718260D-15 + 1 2 3 2 0.41265583517634D+01 0.00000000000000D+00 + 2 2 3 2 0.41265583517634D+01 0.00000000000000D+00 + 3 2 3 2 0.82531167035268D+01 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.88411919025667D+01 -0.14350113745749D-16 + 2 1 1 1 0.51527833106611D+01 -0.10346531727729D-15 + 3 1 1 1 0.36884085919056D+01 0.55002245587167D-16 + 1 2 1 1 -0.39254660299590D+01 -0.39254660299298D+01 + 2 2 1 1 -0.38224258420977D+01 -0.39466017184253D+00 + 3 2 1 1 -0.35308058580873D+01 -0.10304018786133D+00 + 1 1 2 1 0.51527833106611D+01 -0.10346531727729D-15 + 2 1 2 1 0.88411919025667D+01 -0.65457118567008D-16 + 3 1 2 1 0.36884085919056D+01 0.36162286016414D-16 + 1 2 2 1 -0.38224258420977D+01 -0.39466017184253D+00 + 2 2 2 1 -0.39254660299590D+01 -0.39254660299298D+01 + 3 2 2 1 -0.35308058580873D+01 -0.10304018786133D+00 + 1 1 3 1 0.36884085919056D+01 0.55002245587167D-16 + 2 1 3 1 0.36884085919056D+01 0.36162286016414D-16 + 3 1 3 1 0.73768171838112D+01 -0.69341271404100D-17 + 1 2 3 1 -0.35308058580873D+01 -0.10304018786133D+00 + 2 2 3 1 -0.35308058580873D+01 -0.10304018786133D+00 + 3 2 3 1 -0.70616117161745D+01 -0.20608037572266D+00 + 1 1 1 2 -0.39254698740740D+01 0.39254698740448D+01 + 2 1 1 2 -0.38224271234693D+01 0.39466145321418D+00 + 3 1 1 2 -0.35308084208306D+01 0.10304275060465D+00 + 1 2 1 2 0.91414696101047D+01 -0.39861427071524D-16 + 2 2 1 2 0.49168590102265D+01 -0.28740365910359D-15 + 3 2 1 2 0.42246105998783D+01 0.15278401551991D-15 + 1 1 2 2 -0.38224271234693D+01 0.39466145321418D+00 + 2 1 2 2 -0.39254698740740D+01 0.39254698740448D+01 + 3 1 2 2 -0.35308084208306D+01 0.10304275060465D+00 + 1 2 2 2 0.49168590102266D+01 -0.28740365910359D-15 + 2 2 2 2 0.91414696101047D+01 -0.18182532935280D-15 + 3 2 2 2 0.42246105998783D+01 0.10045079449004D-15 + 1 1 3 2 -0.35308084208306D+01 0.10304275060465D+00 + 2 1 3 2 -0.35308084208306D+01 0.10304275060465D+00 + 3 1 3 2 -0.70616168416612D+01 0.20608550120929D+00 + 1 2 3 2 0.42246105998783D+01 0.15278401551991D-15 + 2 2 3 2 0.42246105998783D+01 0.10045079449004D-15 + 3 2 3 2 0.84492211997566D+01 -0.19261464278917D-16 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.95124078527065D+01 0.13836316488050D-05 + 2 1 1 1 0.48805532672683D+01 0.12321240254764D+00 + 3 1 1 1 0.38011420939734D+01 -0.29067807340154D-16 + 1 2 1 1 -0.19430808638666D+00 -0.25068882231387D+00 + 2 2 1 1 -0.35767760651593D+01 -0.19916730713829D+00 + 3 2 1 1 -0.35736844094801D+01 -0.68345182521663D-01 + 1 1 2 1 0.48805595999906D+01 -0.12320546222037D+00 + 2 1 2 1 0.85744794554382D+01 0.12070040990229D-05 + 3 1 2 1 0.38011420939734D+01 0.78537319343230D-16 + 1 2 2 1 -0.38854791883234D+01 -0.71496815029801D-01 + 2 2 2 1 -0.37740077488168D+01 -0.35678238866259D+01 + 3 2 2 1 -0.35736844094801D+01 -0.68345182521663D-01 + 1 1 3 1 0.38011420939734D+01 -0.29067807340154D-16 + 2 1 3 1 0.38011420939734D+01 0.78537319343230D-16 + 3 1 3 1 0.76022841879468D+01 0.66809783895513D-17 + 1 2 3 1 -0.35736844094801D+01 -0.68345182521663D-01 + 2 2 3 1 -0.35736844094801D+01 -0.68345182521663D-01 + 3 2 3 1 -0.71473688189602D+01 -0.13669036504332D+00 + 1 1 1 2 -0.19430712657063D+00 0.25069794493254D+00 + 2 1 1 2 -0.38854846914993D+01 0.71505364947497D-01 + 3 1 1 2 -0.35736936017106D+01 0.68343497000519D-01 + 1 2 1 2 0.10187886380517D+02 -0.29071998818117D-07 + 2 2 1 2 0.48677269889349D+01 0.45217010973209D+00 + 3 2 1 2 0.43794283761021D+01 -0.80743909278206D-16 + 1 1 2 2 -0.35767773963362D+01 0.19917424090247D+00 + 2 1 2 2 -0.37740132791978D+01 0.35678300554004D+01 + 3 1 2 2 -0.35736936017106D+01 0.68343497000519D-01 + 1 2 2 2 0.48677272166804D+01 -0.45216109948810D+00 + 2 2 2 2 0.94274278701920D+01 -0.12065912660908D-06 + 3 2 2 2 0.43794283761021D+01 0.21815922039786D-15 + 1 1 3 2 -0.35736936017106D+01 0.68343497000519D-01 + 2 1 3 2 -0.35736936017106D+01 0.68343497000519D-01 + 3 1 3 2 -0.71473872034213D+01 0.13668699400104D+00 + 1 2 3 2 0.43794283761021D+01 -0.80743909278206D-16 + 2 2 3 2 0.43794283761021D+01 0.21815922039786D-15 + 3 2 3 2 0.87588567522042D+01 0.18558273304309D-16 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt -2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.85109452769287D+01 0.55320176683858D-06 + 2 1 1 1 0.38838339757711D+01 0.22986735514709D+00 + 3 1 1 1 0.37586627692491D+01 0.39101303765993D-16 + 1 2 1 1 -0.38249548647484D+01 0.35369368871567D+01 + 2 2 1 1 -0.35907873779424D+01 -0.24153196828245D+00 + 3 2 1 1 -0.35112373865555D+01 -0.22752213011563D-11 + 1 1 2 1 0.38838359051786D+01 -0.22986680194533D+00 + 2 1 2 1 0.85109433474133D+01 -0.11064035336675D-05 + 3 1 2 1 0.37586627692491D+01 -0.15975890725670D-16 + 1 2 2 1 -0.35907829611223D+01 0.24153186845412D+00 + 2 2 2 1 -0.38249458946778D+01 -0.35369371132476D+01 + 3 2 2 1 -0.35112373865555D+01 -0.22746501906913D-11 + 1 1 3 1 0.37586627692491D+01 0.39101303765993D-16 + 2 1 3 1 0.37586627692491D+01 -0.15975890725670D-16 + 3 1 3 1 0.75173255384982D+01 -0.23766768809779D-17 + 1 2 3 1 -0.35112373865555D+01 -0.22752213010606D-11 + 2 2 3 1 -0.35112373865555D+01 -0.22746501905957D-11 + 3 2 3 1 -0.70224747731109D+01 -0.45502369014725D-11 + 1 1 1 2 -0.38249631910090D+01 -0.35369400256419D+01 + 2 1 1 2 -0.35907887725820D+01 -0.24153085935444D+00 + 3 1 1 2 -0.35112475738214D+01 0.22756891130051D-11 + 1 2 1 2 0.94658316846073D+01 0.19511913779206D-06 + 2 2 1 2 0.43123297405469D+01 0.46785885549591D+00 + 3 2 1 2 0.41950346543368D+01 0.10861473268331D-15 + 1 1 2 2 -0.35907963479848D+01 0.24153219438751D+00 + 2 1 2 2 -0.38249690024404D+01 0.35369390165281D+01 + 3 1 2 2 -0.35112475738214D+01 0.22751180025401D-11 + 1 2 2 2 0.43123283286689D+01 -0.46785866037678D+00 + 2 2 2 2 0.94658330961015D+01 -0.39023827555725D-06 + 3 2 2 2 0.41950346543368D+01 -0.44377474237972D-16 + 1 1 3 2 -0.35112475738214D+01 0.22756891130163D-11 + 2 1 3 2 -0.35112475738214D+01 0.22751180025514D-11 + 3 1 3 2 -0.70224951476427D+01 0.45511725251702D-11 + 1 2 3 2 0.41950346543368D+01 0.10861473268331D-15 + 2 2 3 2 0.41950346543368D+01 -0.44377474237972D-16 + 3 2 3 2 0.83900693086737D+01 -0.66018802249386D-17 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 5.00000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.98478264872609D+01 0.00000000000000D+00 + 2 1 1 1 0.60320740758098D+01 0.00000000000000D+00 + 3 1 1 1 0.38157524114511D+01 0.00000000000000D+00 + 1 2 1 1 0.95178648619244D-15 -0.85788993533937D-15 + 2 2 1 1 -0.36473037038914D+01 0.13238500643595D-14 + 3 2 1 1 -0.36473037038914D+01 0.10171600804817D-14 + 1 1 2 1 0.60320740758098D+01 0.00000000000000D+00 + 2 1 2 1 0.98478264872609D+01 0.00000000000000D+00 + 3 1 2 1 0.38157524114511D+01 0.00000000000000D+00 + 1 2 2 1 -0.36473037038914D+01 0.13238500643595D-14 + 2 2 2 1 -0.29659016336658D-14 -0.32862139660253D-15 + 3 2 2 1 -0.36473037038914D+01 0.10232501778552D-14 + 1 1 3 1 0.38157524114511D+01 0.00000000000000D+00 + 2 1 3 1 0.38157524114511D+01 0.00000000000000D+00 + 3 1 3 1 0.76315048229021D+01 0.00000000000000D+00 + 1 2 3 1 -0.36473037038914D+01 0.10171600804817D-14 + 2 2 3 1 -0.36473037038914D+01 0.10232501778552D-14 + 3 2 3 1 -0.72946074077829D+01 0.20367007524841D-14 + 1 1 1 2 0.95178648619244D-15 0.85788993533937D-15 + 2 1 1 2 -0.36473037038913D+01 -0.28585322350348D-14 + 3 1 1 2 -0.36473037038913D+01 -0.25518422511570D-14 + 1 2 1 2 0.10086793655773D+02 0.00000000000000D+00 + 2 2 1 2 0.55297108965102D+01 0.00000000000000D+00 + 3 2 1 2 0.45570827592628D+01 0.00000000000000D+00 + 1 1 2 2 -0.36473037038913D+01 -0.28585322350348D-14 + 2 1 2 2 -0.29365424086253D-14 0.32862139660253D-15 + 3 1 2 2 -0.36473037038913D+01 -0.25579323485304D-14 + 1 2 2 2 0.55297108965102D+01 0.00000000000000D+00 + 2 2 2 2 0.10086793655773D+02 0.00000000000000D+00 + 3 2 2 2 0.45570827592628D+01 0.00000000000000D+00 + 1 1 3 2 -0.36473037038913D+01 -0.25518422511570D-14 + 2 1 3 2 -0.36473037038913D+01 -0.25579323485304D-14 + 3 1 3 2 -0.72946074077827D+01 -0.51060650938347D-14 + 1 2 3 2 0.45570827592628D+01 0.00000000000000D+00 + 2 2 3 2 0.45570827592628D+01 0.00000000000000D+00 + 3 2 3 2 0.91141655185257D+01 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt -2.50000000E-01 5.00000000E-01 2.50000000E-01 1.0 + 1 1 1 1 0.83922200296970D+01 -0.37923617161373D-05 + 2 1 1 1 0.45892175255740D+01 0.27209264137877D-01 + 3 1 1 1 0.38030016901079D+01 0.27208000017305D-01 + 1 2 1 1 -0.34907570667234D+01 0.34907683057835D+01 + 2 2 1 1 -0.36016523445909D+01 0.29191610046522D-05 + 3 2 1 1 -0.34907599858844D+01 -0.11088403880744D+00 + 1 1 2 1 0.45892183395891D+01 -0.27211792379022D-01 + 2 1 2 1 0.91784358651631D+01 -0.25282411441046D-05 + 3 1 2 1 0.45892175255740D+01 0.27209264137878D-01 + 1 2 2 1 -0.33798730279160D+01 0.83198990412444D-05 + 2 2 2 1 0.42091841421732D-14 -0.16560383784651D-15 + 3 2 2 1 -0.33798730279160D+01 0.83198990428411D-05 + 1 1 3 1 0.38030025041230D+01 -0.27213056499594D-01 + 2 1 3 1 0.45892183395891D+01 -0.27211792379022D-01 + 3 1 3 1 0.83922200296970D+01 -0.37923617160825D-05 + 1 2 3 1 -0.34907653866225D+01 0.11089527786749D+00 + 2 2 3 1 -0.36016523445909D+01 0.29191610055863D-05 + 3 2 3 1 -0.34907683057835D+01 -0.34907570667234D+01 + 1 1 1 2 -0.34907672062415D+01 -0.34907655619906D+01 + 2 1 1 2 -0.33798772112592D+01 -0.14504805502960D-05 + 3 1 1 2 -0.34907686567220D+01 -0.11088835073137D+00 + 1 2 1 2 0.98338588243888D+01 -0.37517274033534D-05 + 2 2 1 2 0.50804007444051D+01 0.43866226624554D+00 + 3 2 1 2 0.47534592745571D+01 0.43866101566973D+00 + 1 1 2 2 -0.36016555569729D+01 0.30947314755484D-05 + 2 1 2 2 0.42091841421732D-14 0.16560426136299D-15 + 3 1 2 2 -0.36016555569729D+01 0.30947314739517D-05 + 1 2 2 2 0.50803995498317D+01 -0.43866476739714D+00 + 2 2 2 2 0.10160800294237D+02 -0.25011516022719D-05 + 3 2 2 2 0.50804007444052D+01 0.43866226624554D+00 + 1 1 3 2 -0.34907641115100D+01 0.11088999498229D+00 + 2 1 3 2 -0.33798772112592D+01 -0.14504805512301D-05 + 3 1 3 2 -0.34907655619906D+01 0.34907672062415D+01 + 1 2 3 2 0.47534580799836D+01 -0.43866601797294D+00 + 2 2 3 2 0.50803995498317D+01 -0.43866476739714D+00 + 3 2 3 2 0.98338588243888D+01 -0.37517274032011D-05 + + 3rd derivatives (long wave) - # elements : 54 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 4 1 1 1 10 0.00000000000000D+00 0.23577723560036D+02 + 2 4 1 1 1 10 0.00000000000000D+00 -0.11788862271774D+02 + 3 4 1 1 1 10 0.00000000000000D+00 -0.11788862038656D+02 + 1 4 2 1 1 10 0.00000000000000D+00 0.43271601340175D-06 + 2 4 2 1 1 10 0.00000000000000D+00 -0.11788862010135D+02 + 3 4 2 1 1 10 0.00000000000000D+00 0.63329588183098D-07 + 1 4 3 1 1 10 0.00000000000000D+00 0.35680249036767D-06 + 2 4 3 1 1 10 0.00000000000000D+00 0.20840933243394D-06 + 3 4 3 1 1 10 0.00000000000000D+00 -0.11788862303364D+02 + 1 4 1 2 1 10 0.00000000000000D+00 -0.10187751932247D+02 + 2 4 1 2 1 10 0.00000000000000D+00 0.50938665323309D+01 + 3 4 1 2 1 10 0.00000000000000D+00 0.50938672190061D+01 + 1 4 2 2 1 10 0.00000000000000D+00 0.10166416435212D-05 + 2 4 2 2 1 10 0.00000000000000D+00 0.50938723437985D+01 + 3 4 2 2 1 10 0.00000000000000D+00 0.34540583168576D-07 + 1 4 3 2 1 10 0.00000000000000D+00 0.60262253398567D-06 + 2 4 3 2 1 10 0.00000000000000D+00 -0.49984427832246D-07 + 3 4 3 2 1 10 0.00000000000000D+00 0.50938728569226D+01 + 1 4 1 1 2 10 0.00000000000000D+00 -0.11788861735123D+02 + 2 4 1 1 2 10 0.00000000000000D+00 0.22338944287341D-06 + 3 4 1 1 2 10 0.00000000000000D+00 -0.96754261432370D-08 + 1 4 2 1 2 10 0.00000000000000D+00 -0.11788862349123D+02 + 2 4 2 1 2 10 0.00000000000000D+00 0.23577723703272D+02 + 3 4 2 1 2 10 0.00000000000000D+00 -0.11788861980229D+02 + 1 4 3 1 2 10 0.00000000000000D+00 -0.20846301349088D-06 + 2 4 3 1 2 10 0.00000000000000D+00 -0.35629700388509D-06 + 3 4 3 1 2 10 0.00000000000000D+00 -0.11788862341503D+02 + 1 4 1 2 2 10 0.00000000000000D+00 0.50938726174964D+01 + 2 4 1 2 2 10 0.00000000000000D+00 0.60918431370341D-06 + 3 4 1 2 2 10 0.00000000000000D+00 -0.77582983574858D-07 + 1 4 2 2 2 10 0.00000000000000D+00 0.50938664530638D+01 + 2 4 2 2 2 10 0.00000000000000D+00 -0.10187751987016D+02 + 3 4 2 2 2 10 0.00000000000000D+00 0.50938674356527D+01 + 1 4 3 2 2 10 0.00000000000000D+00 0.50164109172539D-07 + 2 4 3 2 2 10 0.00000000000000D+00 -0.60311542276496D-06 + 3 4 3 2 2 10 0.00000000000000D+00 0.50938739836218D+01 + 1 4 1 1 3 10 0.00000000000000D+00 -0.11788861645326D+02 + 2 4 1 1 3 10 0.00000000000000D+00 0.97301428624290D-08 + 3 4 1 1 3 10 0.00000000000000D+00 -0.22389434395668D-06 + 1 4 2 1 3 10 0.00000000000000D+00 -0.63328869319348D-07 + 2 4 2 1 3 10 0.00000000000000D+00 -0.11788862241357D+02 + 3 4 2 1 3 10 0.00000000000000D+00 -0.43271570152245D-06 + 1 4 3 1 3 10 0.00000000000000D+00 -0.11788862210548D+02 + 2 4 3 1 3 10 0.00000000000000D+00 -0.11788862062701D+02 + 3 4 3 1 3 10 0.00000000000000D+00 0.23577723809934D+02 + 1 4 1 2 3 10 0.00000000000000D+00 0.50938731868776D+01 + 2 4 1 2 3 10 0.00000000000000D+00 0.77403291855435D-07 + 3 4 1 2 3 10 0.00000000000000D+00 -0.60869253463396D-06 + 1 4 2 2 3 10 0.00000000000000D+00 -0.34540994821475D-07 + 2 4 2 2 3 10 0.00000000000000D+00 0.50938740068230D+01 + 3 4 2 2 3 10 0.00000000000000D+00 -0.10166424013827D-05 + 1 4 3 2 3 10 0.00000000000000D+00 0.50938666943429D+01 + 2 4 3 2 3 10 0.00000000000000D+00 0.50938673475316D+01 + 3 4 3 2 3 10 0.00000000000000D+00 -0.10187752289528D+02 + + List of bloks and their characteristics + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 2.50000000E-01 0.00000000E+00 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 0.00000000E+00 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 2.50000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt -2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 5.00000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt -2.50000000E-01 5.00000000E-01 2.50000000E-01 1.0 + + 3rd derivatives (long wave) - # elements : 54 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 diff --git a/abipy/data/refs/LW_DDBs/tlw_6.abo b/abipy/data/refs/LW_DDBs/tlw_6.abo new file mode 100644 index 000000000..576d0a9da --- /dev/null +++ b/abipy/data/refs/LW_DDBs/tlw_6.abo @@ -0,0 +1,980 @@ + +.Version 9.5.2 of ANADDB +.(MPI version, prepared for a x86_64_darwin20.3.0_gnu8.2 computer) + +.Copyright (C) 1998-2021 ABINIT group . + ANADDB comes with ABSOLUTELY NO WARRANTY. + It is free software, and you are welcome to redistribute it + under certain conditions (GNU General Public License, + see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). + + ABINIT is a project of the Universite Catholique de Louvain, + Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt . + Please read https://docs.abinit.org/theory/acknowledgments for suggested + acknowledgments of the ABINIT effort. + For more information, see https://www.abinit.org . + +.Starting date : Fri 16 Jul 2021. +- ( at 21h54 ) + + +================================================================================ + + -outvars_anaddb: echo values of input variables ---------------------- + + Flags : + ifcflag 1 + Miscellaneous information : + eivec 4 + asr 1 + Interatomic Force Constants Inputs : + dipdip -1 + dipqua 1 + quadqu 1 + ifcana 0 + ifcout 0 + Description of grid 1 : + brav 2 + ngqpt 4 4 4 + nqshft 1 + q1shft + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + First list of wavevector (reduced coord.) : + nph1l 71 + qph1l + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.000E+00 + 3.75000000E-02 3.75000000E-02 7.50000000E-02 1.000E+00 + 7.50000000E-02 7.50000000E-02 1.50000000E-01 1.000E+00 + 1.12500000E-01 1.12500000E-01 2.25000000E-01 1.000E+00 + 1.50000000E-01 1.50000000E-01 3.00000000E-01 1.000E+00 + 1.87500000E-01 1.87500000E-01 3.75000000E-01 1.000E+00 + 2.25000000E-01 2.25000000E-01 4.50000000E-01 1.000E+00 + 2.62500000E-01 2.62500000E-01 5.25000000E-01 1.000E+00 + 3.00000000E-01 3.00000000E-01 6.00000000E-01 1.000E+00 + 3.37500000E-01 3.37500000E-01 6.75000000E-01 1.000E+00 + 3.75000000E-01 3.75000000E-01 7.50000000E-01 1.000E+00 + 3.87500000E-01 3.87500000E-01 7.75000000E-01 1.000E+00 + 4.00000000E-01 4.00000000E-01 8.00000000E-01 1.000E+00 + 4.12500000E-01 4.12500000E-01 8.25000000E-01 1.000E+00 + 4.25000000E-01 4.25000000E-01 8.50000000E-01 1.000E+00 + 4.37500000E-01 4.37500000E-01 8.75000000E-01 1.000E+00 + 4.50000000E-01 4.50000000E-01 9.00000000E-01 1.000E+00 + 4.62500000E-01 4.62500000E-01 9.25000000E-01 1.000E+00 + 4.75000000E-01 4.75000000E-01 9.50000000E-01 1.000E+00 + 4.87500000E-01 4.87500000E-01 9.75000000E-01 1.000E+00 + 5.00000000E-01 5.00000000E-01 1.00000000E+00 1.000E+00 + 5.50000000E-01 5.50000000E-01 1.00000000E+00 1.000E+00 + 6.00000000E-01 6.00000000E-01 1.00000000E+00 1.000E+00 + 6.50000000E-01 6.50000000E-01 1.00000000E+00 1.000E+00 + 7.00000000E-01 7.00000000E-01 1.00000000E+00 1.000E+00 + 7.50000000E-01 7.50000000E-01 1.00000000E+00 1.000E+00 + 8.00000000E-01 8.00000000E-01 1.00000000E+00 1.000E+00 + 8.50000000E-01 8.50000000E-01 1.00000000E+00 1.000E+00 + 9.00000000E-01 9.00000000E-01 1.00000000E+00 1.000E+00 + 9.50000000E-01 9.50000000E-01 1.00000000E+00 1.000E+00 + 1.00000000E+00 1.00000000E+00 1.00000000E+00 1.000E+00 + 9.50000000E-01 9.50000000E-01 9.50000000E-01 1.000E+00 + 9.00000000E-01 9.00000000E-01 9.00000000E-01 1.000E+00 + 8.50000000E-01 8.50000000E-01 8.50000000E-01 1.000E+00 + 8.00000000E-01 8.00000000E-01 8.00000000E-01 1.000E+00 + 7.50000000E-01 7.50000000E-01 7.50000000E-01 1.000E+00 + 7.00000000E-01 7.00000000E-01 7.00000000E-01 1.000E+00 + 6.50000000E-01 6.50000000E-01 6.50000000E-01 1.000E+00 + 6.00000000E-01 6.00000000E-01 6.00000000E-01 1.000E+00 + 5.50000000E-01 5.50000000E-01 5.50000000E-01 1.000E+00 + 5.00000000E-01 5.00000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 4.50000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 4.00000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 3.50000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 3.00000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 2.50000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 2.00000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 1.50000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 1.00000000E-01 5.00000000E-01 1.000E+00 + 5.00000000E-01 5.00000000E-02 5.00000000E-01 1.000E+00 + 5.00000000E-01 0.00000000E+00 5.00000000E-01 1.000E+00 + 5.00000000E-01 2.50000000E-02 5.25000000E-01 1.000E+00 + 5.00000000E-01 5.00000000E-02 5.50000000E-01 1.000E+00 + 5.00000000E-01 7.50000000E-02 5.75000000E-01 1.000E+00 + 5.00000000E-01 1.00000000E-01 6.00000000E-01 1.000E+00 + 5.00000000E-01 1.25000000E-01 6.25000000E-01 1.000E+00 + 5.00000000E-01 1.50000000E-01 6.50000000E-01 1.000E+00 + 5.00000000E-01 1.75000000E-01 6.75000000E-01 1.000E+00 + 5.00000000E-01 2.00000000E-01 7.00000000E-01 1.000E+00 + 5.00000000E-01 2.25000000E-01 7.25000000E-01 1.000E+00 + 5.00000000E-01 2.50000000E-01 7.50000000E-01 1.000E+00 + 5.00000000E-01 2.75000000E-01 7.25000000E-01 1.000E+00 + 5.00000000E-01 3.00000000E-01 7.00000000E-01 1.000E+00 + 5.00000000E-01 3.25000000E-01 6.75000000E-01 1.000E+00 + 5.00000000E-01 3.50000000E-01 6.50000000E-01 1.000E+00 + 5.00000000E-01 3.75000000E-01 6.25000000E-01 1.000E+00 + 5.00000000E-01 4.00000000E-01 6.00000000E-01 1.000E+00 + 5.00000000E-01 4.25000000E-01 5.75000000E-01 1.000E+00 + 5.00000000E-01 4.50000000E-01 5.50000000E-01 1.000E+00 + 5.00000000E-01 4.75000000E-01 5.25000000E-01 1.000E+00 + 5.00000000E-01 5.00000000E-01 5.00000000E-01 1.000E+00 + Second list of wavevector (cart. coord.) : + nph2l 1 + qph2l + 1.00000000E+00 0.00000000E+00 0.00000000E+00 0.000E+00 + +================================================================================ + + read the DDB information and perform some checks + + Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1): + R(1)= 0.0000000 5.0230161 5.0230161 G(1)= -0.0995418 0.0995418 0.0995418 + R(2)= 5.0230161 0.0000000 5.0230161 G(2)= 0.0995418 -0.0995418 0.0995418 + R(3)= 5.0230161 5.0230161 0.0000000 G(3)= 0.0995418 0.0995418 -0.0995418 + Unit cell volume ucvol= 2.5346833E+02 bohr^3 + Angles (23,13,12)= 6.00000000E+01 6.00000000E+01 6.00000000E+01 degrees + Now the whole DDB is in central memory + +================================================================================ + + Dynamical Quadrupoles Tensor (units: e Bohr) + + atom dir Qxx Qyy Qzz Qyz Qxz Qxy + 1 x 0.000000 -0.000000 -0.000000 11.999598 0.000000 0.000000 + 1 y -0.000000 0.000000 -0.000000 0.000000 11.999598 -0.000000 + 1 z 0.000000 0.000000 0.000000 0.000000 -0.000000 11.999598 + 2 x 0.000006 0.000000 0.000000 -5.184931 0.000003 0.000003 + 2 y -0.000000 0.000006 0.000000 0.000003 -5.184930 0.000003 + 2 z -0.000000 -0.000000 0.000006 0.000003 0.000003 -5.184930 + +================================================================================ + + Dielectric Tensor and Effective Charges + + + anaddb : Zero the imaginary part of the Dynamical Matrix at Gamma, + and impose the ASR on the effective charges + + The violation of the charge neutrality conditions + by the effective charges is as follows : + atom electric field + displacement direction + 1 1 -0.026268 0.000000 + 1 2 0.000000 0.000000 + 1 3 -0.000000 0.000000 + 2 1 0.000000 0.000000 + 2 2 -0.026268 0.000000 + 2 3 -0.000000 0.000000 + 3 1 0.000000 0.000000 + 3 2 0.000000 0.000000 + 3 3 -0.026268 0.000000 + + Effective charge tensors after + imposition of the charge neutrality, + and eventual restriction to some part : + atom displacement + 1 1 2.084017E+00 0.000000E+00 9.279234E-20 + 1 2 0.000000E+00 2.084017E+00 9.279234E-20 + 1 3 0.000000E+00 0.000000E+00 2.084017E+00 + 2 1 -2.084017E+00 0.000000E+00 -9.279234E-20 + 2 2 0.000000E+00 -2.084017E+00 -9.279234E-20 + 2 3 0.000000E+00 0.000000E+00 -2.084017E+00 + Now, the imaginary part of the dynamical matrix is zeroed + +================================================================================ + + Calculation of the interatomic forces + +-begin at tcpu 0.052 and twall 0.073 sec + + Warning : due to the use of quadrupolar fields, the width of the reciprocal space gaussians + in ewald9 has been set to eta= 1.0453 1/bohr and the real-space sums have been neglected. + One should check whether this choice leads to correct results for the specific system under study and q-point grid. + It is recommended to check that calculations with dipdip=1 and -1 (both with dipquad=0 and quadquad=0) + lead to identical results. Otherwise increase the resolution of the q-point grid and repeat this test. + + Homogeneous q point set in the B.Z. + Grid q points : 32 + 1) 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2) 0.00000000E+00 2.50000000E-01 2.50000000E-01 + 3) 0.00000000E+00 5.00000000E-01 5.00000000E-01 + 4) 0.00000000E+00 -2.50000000E-01 -2.50000000E-01 + 5) 2.50000000E-01 0.00000000E+00 2.50000000E-01 + 6) 2.50000000E-01 2.50000000E-01 5.00000000E-01 + 7) 2.50000000E-01 -2.50000000E-01 -1.11022302E-16 + 8) 5.00000000E-01 0.00000000E+00 5.00000000E-01 + 9) -2.50000000E-01 0.00000000E+00 -2.50000000E-01 + 10) -2.50000000E-01 2.50000000E-01 -1.11022302E-16 + 11) -2.50000000E-01 -2.50000000E-01 -5.00000000E-01 + 12) 2.50000000E-01 2.50000000E-01 0.00000000E+00 + 13) 2.50000000E-01 5.00000000E-01 2.50000000E-01 + 14) 2.50000000E-01 7.50000000E-01 5.00000000E-01 + 15) 2.50000000E-01 -1.11022302E-16 -2.50000000E-01 + 16) 5.00000000E-01 2.50000000E-01 2.50000000E-01 + 17) 5.00000000E-01 5.00000000E-01 5.00000000E-01 + 18) 5.00000000E-01 -1.11022302E-16 -1.11022302E-16 + 19) 7.50000000E-01 2.50000000E-01 5.00000000E-01 + 20) -1.11022302E-16 2.50000000E-01 -2.50000000E-01 + 21) -1.11022302E-16 5.00000000E-01 -1.11022302E-16 + 22) -1.11022302E-16 -1.11022302E-16 -5.00000000E-01 + 23) 5.00000000E-01 5.00000000E-01 0.00000000E+00 + 24) 5.00000000E-01 7.50000000E-01 2.50000000E-01 + 25) 5.00000000E-01 2.50000000E-01 -2.50000000E-01 + 26) 7.50000000E-01 5.00000000E-01 2.50000000E-01 + 27) 2.50000000E-01 5.00000000E-01 -2.50000000E-01 + 28) -2.50000000E-01 -2.50000000E-01 0.00000000E+00 + 29) -2.50000000E-01 -1.11022302E-16 2.50000000E-01 + 30) -2.50000000E-01 -5.00000000E-01 -2.50000000E-01 + 31) -1.11022302E-16 -2.50000000E-01 2.50000000E-01 + 32) -5.00000000E-01 -2.50000000E-01 -2.50000000E-01 + + The interatomic forces have been obtained + +================================================================================ + + Treat the first list of vectors + + + Phonon wavevector (reduced coordinates) : 0.00000 0.00000 0.00000 + Phonon energies in Hartree : + 0.000000E+00 0.000000E+00 0.000000E+00 1.936676E-03 1.936676E-03 + 1.936676E-03 + Phonon frequencies in cm-1 : +- 0.000000E+00 0.000000E+00 0.000000E+00 4.250512E+02 4.250512E+02 +- 4.250512E+02 + + Analysis of degeneracies and characters (maximum tolerance=1.00E-06 a.u.) + For each vibration mode, or group of modes if degenerate, + the characters are given for each symmetry operation (see the list in the log file). + Symmetry characters of vibration mode # 1 + degenerate with vibration modes # 2 to 3 + 3.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 0.0 0.0 0.0 -0.0 1.0 -1.0 -1.0 1.0 + -0.0 -0.0 0.0 0.0 1.0 1.0 -1.0 -1.0 + Symmetry characters of vibration mode # 4 + degenerate with vibration modes # 5 to 6 + 3.0 -1.0 -1.0 -1.0 1.0 -1.0 1.0 -1.0 -0.0 -0.0 -0.0 0.0 1.0 -1.0 -1.0 1.0 + 0.0 -0.0 0.0 -0.0 1.0 1.0 -1.0 -1.0 + + Phonon wavevector (reduced coordinates) : 0.03750 0.03750 0.07500 + Phonon energies in Hartree : + 9.698365E-05 1.161214E-04 2.200025E-04 1.939065E-03 1.939251E-03 + 2.077358E-03 + Phonon frequencies in cm-1 : +- 2.128545E+01 2.548571E+01 4.828498E+01 4.255756E+02 4.256164E+02 +- 4.559273E+02 + Speed of sound for this q and mode: + in atomic units: 0.1461964967E-02 + in units km/s: 3.19833 + Partial Debye temperature for this q and mode: + in atomic units: 0.9004219300E-03 + in SI units K : 284.33042 + + Speed of sound for this q and mode: + in atomic units: 0.1750454635E-02 + in units km/s: 3.82945 + Partial Debye temperature for this q and mode: + in atomic units: 0.1078102264E-02 + in SI units K : 340.43737 + + Speed of sound for this q and mode: + in atomic units: 0.3316394029E-02 + in units km/s: 7.25525 + Partial Debye temperature for this q and mode: + in atomic units: 0.2042561881E-02 + in SI units K : 644.98926 + + + Phonon wavevector (reduced coordinates) : 0.07500 0.07500 0.15000 + Phonon energies in Hartree : + 1.870533E-04 2.296314E-04 4.280941E-04 1.945842E-03 1.945884E-03 + 2.079989E-03 + Phonon frequencies in cm-1 : +- 4.105344E+01 5.039826E+01 9.395578E+01 4.270630E+02 4.270723E+02 +- 4.565049E+02 + Speed of sound for this q and mode: + in atomic units: 0.1409852579E-02 + in units km/s: 3.08432 + Partial Debye temperature for this q and mode: + in atomic units: 0.8683259920E-03 + in SI units K : 274.19534 + + Speed of sound for this q and mode: + in atomic units: 0.1730771165E-02 + in units km/s: 3.78639 + Partial Debye temperature for this q and mode: + in atomic units: 0.1065979246E-02 + in SI units K : 336.60922 + + Speed of sound for this q and mode: + in atomic units: 0.3226618613E-02 + in units km/s: 7.05885 + Partial Debye temperature for this q and mode: + in atomic units: 0.1987269343E-02 + in SI units K : 627.52928 + + + Phonon wavevector (reduced coordinates) : 0.11250 0.11250 0.22500 + Phonon energies in Hartree : + 2.651369E-04 3.380614E-04 6.146253E-04 1.953887E-03 1.954798E-03 + 2.083563E-03 + Phonon frequencies in cm-1 : +- 5.819082E+01 7.419591E+01 1.348947E+02 4.288287E+02 4.290286E+02 +- 4.572893E+02 + + Phonon wavevector (reduced coordinates) : 0.15000 0.15000 0.30000 + Phonon energies in Hartree : + 3.290489E-04 4.394906E-04 7.736652E-04 1.959006E-03 1.961265E-03 + 2.090570E-03 + Phonon frequencies in cm-1 : +- 7.221789E+01 9.645703E+01 1.697999E+02 4.299521E+02 4.304479E+02 +- 4.588271E+02 + + Phonon wavevector (reduced coordinates) : 0.18750 0.18750 0.37500 + Phonon energies in Hartree : + 3.792977E-04 5.328597E-04 9.031617E-04 1.949428E-03 1.967745E-03 + 2.105540E-03 + Phonon frequencies in cm-1 : +- 8.324622E+01 1.169492E+02 1.982211E+02 4.278499E+02 4.318700E+02 +- 4.621125E+02 + + Phonon wavevector (reduced coordinates) : 0.22500 0.22500 0.45000 + Phonon energies in Hartree : + 4.177952E-04 6.173101E-04 1.004080E-03 1.924190E-03 1.974933E-03 + 2.127345E-03 + Phonon frequencies in cm-1 : +- 9.169544E+01 1.354839E+02 2.203700E+02 4.223110E+02 4.334477E+02 +- 4.668982E+02 + + Phonon wavevector (reduced coordinates) : 0.26250 0.26250 0.52500 + Phonon energies in Hartree : + 4.462893E-04 6.897623E-04 1.079760E-03 1.890481E-03 1.984771E-03 + 2.149174E-03 + Phonon frequencies in cm-1 : +- 9.794919E+01 1.513853E+02 2.369800E+02 4.149126E+02 4.356068E+02 +- 4.716891E+02 + + Phonon wavevector (reduced coordinates) : 0.30000 0.30000 0.60000 + Phonon energies in Hartree : + 4.656029E-04 7.408988E-04 1.137085E-03 1.859590E-03 1.997725E-03 + 2.164236E-03 + Phonon frequencies in cm-1 : +- 1.021880E+02 1.626085E+02 2.495614E+02 4.081328E+02 4.384500E+02 +- 4.749950E+02 + + Phonon wavevector (reduced coordinates) : 0.33750 0.33750 0.67500 + Phonon energies in Hartree : + 4.760155E-04 7.535890E-04 1.188069E-03 1.843431E-03 2.012142E-03 + 2.167459E-03 + Phonon frequencies in cm-1 : +- 1.044733E+02 1.653937E+02 2.607510E+02 4.045864E+02 4.416141E+02 +- 4.757022E+02 + + Phonon wavevector (reduced coordinates) : 0.37500 0.37500 0.75000 + Phonon energies in Hartree : + 4.781962E-04 7.140698E-04 1.243206E-03 1.849819E-03 2.025261E-03 + 2.155649E-03 + Phonon frequencies in cm-1 : +- 1.049519E+02 1.567202E+02 2.728523E+02 4.059884E+02 4.444933E+02 +- 4.731103E+02 + + Phonon wavevector (reduced coordinates) : 0.38750 0.38750 0.77500 + Phonon energies in Hartree : + 4.773827E-04 6.898581E-04 1.262457E-03 1.857170E-03 2.028933E-03 + 2.148163E-03 + Phonon frequencies in cm-1 : +- 1.047734E+02 1.514063E+02 2.770773E+02 4.076017E+02 4.452992E+02 +- 4.714673E+02 + + Phonon wavevector (reduced coordinates) : 0.40000 0.40000 0.80000 + Phonon energies in Hartree : + 4.759745E-04 6.613859E-04 1.281537E-03 1.866870E-03 2.032168E-03 + 2.138953E-03 + Phonon frequencies in cm-1 : +- 1.044643E+02 1.451574E+02 2.812648E+02 4.097306E+02 4.460094E+02 +- 4.694459E+02 + + Phonon wavevector (reduced coordinates) : 0.41250 0.41250 0.82500 + Phonon energies in Hartree : + 4.741132E-04 6.298093E-04 1.299947E-03 1.878643E-03 2.034950E-03 + 2.128119E-03 + Phonon frequencies in cm-1 : +- 1.040558E+02 1.382272E+02 2.853055E+02 4.123146E+02 4.466198E+02 +- 4.670682E+02 + + Phonon wavevector (reduced coordinates) : 0.42500 0.42500 0.85000 + Phonon energies in Hartree : + 4.719618E-04 5.965185E-04 1.317172E-03 1.892153E-03 2.037278E-03 + 2.115819E-03 + Phonon frequencies in cm-1 : +- 1.035836E+02 1.309207E+02 2.890859E+02 4.152797E+02 4.471308E+02 +- 4.643687E+02 + + Phonon wavevector (reduced coordinates) : 0.43750 0.43750 0.87500 + Phonon energies in Hartree : + 4.696998E-04 5.631351E-04 1.332713E-03 1.907000E-03 2.039170E-03 + 2.102286E-03 + Phonon frequencies in cm-1 : +- 1.030872E+02 1.235939E+02 2.924966E+02 4.185381E+02 4.475460E+02 +- 4.613984E+02 + + Phonon wavevector (reduced coordinates) : 0.45000 0.45000 0.90000 + Phonon energies in Hartree : + 4.675134E-04 5.315087E-04 1.346111E-03 1.922690E-03 2.040653E-03 + 2.087865E-03 + Phonon frequencies in cm-1 : +- 1.026073E+02 1.166527E+02 2.954373E+02 4.219816E+02 4.478716E+02 +- 4.582333E+02 + + Phonon wavevector (reduced coordinates) : 0.46250 0.46250 0.92500 + Phonon energies in Hartree : + 4.655839E-04 5.036776E-04 1.356971E-03 1.938547E-03 2.041761E-03 + 2.073112E-03 + Phonon frequencies in cm-1 : +- 1.021839E+02 1.105445E+02 2.978208E+02 4.254619E+02 4.481147E+02 +- 4.549956E+02 + + Phonon wavevector (reduced coordinates) : 0.47500 0.47500 0.95000 + Phonon energies in Hartree : + 4.640738E-04 4.817490E-04 1.364969E-03 1.953464E-03 2.042524E-03 + 2.059047E-03 + Phonon frequencies in cm-1 : +- 1.018524E+02 1.057317E+02 2.995761E+02 4.287358E+02 4.482823E+02 +- 4.519087E+02 + + Phonon wavevector (reduced coordinates) : 0.48750 0.48750 0.97500 + Phonon energies in Hartree : + 4.631121E-04 4.676522E-04 1.369866E-03 1.965275E-03 2.042971E-03 + 2.047771E-03 + Phonon frequencies in cm-1 : +- 1.016414E+02 1.026378E+02 3.006509E+02 4.313281E+02 4.483802E+02 +- 4.494338E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.50000 1.00000 + Phonon energies in Hartree : + 4.627820E-04 4.627820E-04 1.371515E-03 1.970111E-03 2.043117E-03 + 2.043117E-03 + Phonon frequencies in cm-1 : +- 1.015689E+02 1.015689E+02 3.010127E+02 4.323894E+02 4.484124E+02 +- 4.484124E+02 + + Phonon wavevector (reduced coordinates) : 0.55000 0.55000 1.00000 + Phonon energies in Hartree : + 4.636418E-04 4.636418E-04 1.349753E-03 1.976630E-03 2.040179E-03 + 2.040179E-03 + Phonon frequencies in cm-1 : +- 1.017576E+02 1.017576E+02 2.962365E+02 4.338202E+02 4.477674E+02 +- 4.477674E+02 + + Phonon wavevector (reduced coordinates) : 0.60000 0.60000 1.00000 + Phonon energies in Hartree : + 4.643825E-04 4.643825E-04 1.287707E-03 1.993224E-03 2.031713E-03 + 2.031713E-03 + Phonon frequencies in cm-1 : +- 1.019202E+02 1.019202E+02 2.826189E+02 4.374621E+02 4.459095E+02 +- 4.459095E+02 + + Phonon wavevector (reduced coordinates) : 0.65000 0.65000 1.00000 + Phonon energies in Hartree : + 4.602854E-04 4.602854E-04 1.192260E-03 2.013871E-03 2.018733E-03 + 2.018733E-03 + Phonon frequencies in cm-1 : +- 1.010210E+02 1.010210E+02 2.616708E+02 4.419935E+02 4.430607E+02 +- 4.430607E+02 + + Phonon wavevector (reduced coordinates) : 0.70000 0.70000 1.00000 + Phonon energies in Hartree : + 4.455509E-04 4.455509E-04 1.069901E-03 2.002785E-03 2.002785E-03 + 2.033594E-03 + Phonon frequencies in cm-1 : +- 9.778712E+01 9.778712E+01 2.348162E+02 4.395605E+02 4.395605E+02 +- 4.463222E+02 + + Phonon wavevector (reduced coordinates) : 0.75000 0.75000 1.00000 + Phonon energies in Hartree : + 4.150512E-04 4.150512E-04 9.255420E-04 1.985732E-03 1.985732E-03 + 2.049722E-03 + Phonon frequencies in cm-1 : +- 9.109322E+01 9.109322E+01 2.031330E+02 4.358179E+02 4.358179E+02 +- 4.498620E+02 + + Phonon wavevector (reduced coordinates) : 0.80000 0.80000 1.00000 + Phonon energies in Hartree : + 3.655163E-04 3.655163E-04 7.630023E-04 1.969464E-03 1.969464E-03 + 2.061439E-03 + Phonon frequencies in cm-1 : +- 8.022155E+01 8.022155E+01 1.674596E+02 4.322475E+02 4.322475E+02 +- 4.524336E+02 + + Phonon wavevector (reduced coordinates) : 0.85000 0.85000 1.00000 + Phonon energies in Hartree : + 2.961654E-04 2.961654E-04 5.856763E-04 1.955582E-03 1.955582E-03 + 2.069066E-03 + Phonon frequencies in cm-1 : +- 6.500078E+01 6.500078E+01 1.285411E+02 4.292005E+02 4.292005E+02 +- 4.541075E+02 + Speed of sound for this q and mode: + in atomic units: 0.1578438664E-02 + in units km/s: 3.45314 + Partial Debye temperature for this q and mode: + in atomic units: 0.9721578972E-03 + in SI units K : 306.98282 + + Speed of sound for this q and mode: + in atomic units: 0.1578438664E-02 + in units km/s: 3.45314 + Partial Debye temperature for this q and mode: + in atomic units: 0.9721578972E-03 + in SI units K : 306.98282 + + Speed of sound for this q and mode: + in atomic units: 0.3121412213E-02 + in units km/s: 6.82869 + Partial Debye temperature for this q and mode: + in atomic units: 0.1922472885E-02 + in SI units K : 607.06820 + + + Phonon wavevector (reduced coordinates) : 0.90000 0.90000 1.00000 + Phonon energies in Hartree : + 2.088989E-04 2.088989E-04 3.969636E-04 1.945176E-03 1.945176E-03 + 2.073473E-03 + Phonon frequencies in cm-1 : +- 4.584800E+01 4.584800E+01 8.712345E+01 4.269167E+02 4.269167E+02 +- 4.550746E+02 + Speed of sound for this q and mode: + in atomic units: 0.1670016461E-02 + in units km/s: 3.65348 + Partial Debye temperature for this q and mode: + in atomic units: 0.1028560519E-02 + in SI units K : 324.79334 + + Speed of sound for this q and mode: + in atomic units: 0.1670016461E-02 + in units km/s: 3.65348 + Partial Debye temperature for this q and mode: + in atomic units: 0.1028560519E-02 + in SI units K : 324.79334 + + Speed of sound for this q and mode: + in atomic units: 0.3173477564E-02 + in units km/s: 6.94259 + Partial Debye temperature for this q and mode: + in atomic units: 0.1954539853E-02 + in SI units K : 617.19414 + + + Phonon wavevector (reduced coordinates) : 0.95000 0.95000 1.00000 + Phonon energies in Hartree : + 1.080897E-04 1.080897E-04 2.004635E-04 1.938809E-03 1.938809E-03 + 2.075627E-03 + Phonon frequencies in cm-1 : +- 2.372296E+01 2.372296E+01 4.399666E+01 4.255194E+02 4.255194E+02 +- 4.555476E+02 + Speed of sound for this q and mode: + in atomic units: 0.1728220534E-02 + in units km/s: 3.78081 + Partial Debye temperature for this q and mode: + in atomic units: 0.1064408316E-02 + in SI units K : 336.11316 + + Speed of sound for this q and mode: + in atomic units: 0.1728220534E-02 + in units km/s: 3.78081 + Partial Debye temperature for this q and mode: + in atomic units: 0.1064408316E-02 + in SI units K : 336.11316 + + Speed of sound for this q and mode: + in atomic units: 0.3205162620E-02 + in units km/s: 7.01191 + Partial Debye temperature for this q and mode: + in atomic units: 0.1974054630E-02 + in SI units K : 623.35641 + + + Phonon wavevector (reduced coordinates) : 1.00000 1.00000 1.00000 + Phonon energies in Hartree : + 0.000000E+00 0.000000E+00 0.000000E+00 1.936676E-03 1.936676E-03 + 1.936676E-03 + Phonon frequencies in cm-1 : +- 0.000000E+00 0.000000E+00 0.000000E+00 4.250512E+02 4.250512E+02 +- 4.250512E+02 + + Phonon wavevector (reduced coordinates) : 0.95000 0.95000 0.95000 + Phonon energies in Hartree : + 8.422675E-05 8.422675E-05 1.833628E-04 1.938375E-03 1.938375E-03 + 2.077393E-03 + Phonon frequencies in cm-1 : +- 1.848564E+01 1.848564E+01 4.024348E+01 4.254242E+02 4.254242E+02 +- 4.559350E+02 + Speed of sound for this q and mode: + in atomic units: 0.1555013322E-02 + in units km/s: 3.40189 + Partial Debye temperature for this q and mode: + in atomic units: 0.9577302655E-03 + in SI units K : 302.42694 + + Speed of sound for this q and mode: + in atomic units: 0.1555013322E-02 + in units km/s: 3.40189 + Partial Debye temperature for this q and mode: + in atomic units: 0.9577302655E-03 + in SI units K : 302.42694 + + Speed of sound for this q and mode: + in atomic units: 0.3385285616E-02 + in units km/s: 7.40596 + Partial Debye temperature for this q and mode: + in atomic units: 0.2084992101E-02 + in SI units K : 658.38765 + + + Phonon wavevector (reduced coordinates) : 0.90000 0.90000 0.90000 + Phonon energies in Hartree : + 1.622767E-04 1.622767E-04 3.631283E-04 1.943184E-03 1.943184E-03 + 2.080128E-03 + Phonon frequencies in cm-1 : +- 3.561561E+01 3.561561E+01 7.969746E+01 4.264795E+02 4.264795E+02 +- 4.565354E+02 + Speed of sound for this q and mode: + in atomic units: 0.1497994147E-02 + in units km/s: 3.27715 + Partial Debye temperature for this q and mode: + in atomic units: 0.9226122454E-03 + in SI units K : 291.33756 + + Speed of sound for this q and mode: + in atomic units: 0.1497994147E-02 + in units km/s: 3.27715 + Partial Debye temperature for this q and mode: + in atomic units: 0.9226122454E-03 + in SI units K : 291.33756 + + Speed of sound for this q and mode: + in atomic units: 0.3352078619E-02 + in units km/s: 7.33331 + Partial Debye temperature for this q and mode: + in atomic units: 0.2064539963E-02 + in SI units K : 651.92938 + + + Phonon wavevector (reduced coordinates) : 0.85000 0.85000 0.85000 + Phonon energies in Hartree : + 2.290454E-04 2.290454E-04 5.357994E-04 1.950331E-03 1.950331E-03 + 2.082736E-03 + Phonon frequencies in cm-1 : +- 5.026966E+01 5.026966E+01 1.175944E+02 4.280482E+02 4.280482E+02 +- 4.571078E+02 + + Phonon wavevector (reduced coordinates) : 0.80000 0.80000 0.80000 + Phonon energies in Hartree : + 2.813931E-04 2.813931E-04 6.980087E-04 1.958810E-03 1.958810E-03 + 2.083154E-03 + Phonon frequencies in cm-1 : +- 6.175866E+01 6.175866E+01 1.531952E+02 4.299090E+02 4.299090E+02 +- 4.571995E+02 + + Phonon wavevector (reduced coordinates) : 0.75000 0.75000 0.75000 + Phonon energies in Hartree : + 3.186305E-04 3.186305E-04 8.464270E-04 1.967609E-03 1.967609E-03 + 2.079802E-03 + Phonon frequencies in cm-1 : +- 6.993131E+01 6.993131E+01 1.857693E+02 4.318402E+02 4.318402E+02 +- 4.564637E+02 + + Phonon wavevector (reduced coordinates) : 0.70000 0.70000 0.70000 + Phonon energies in Hartree : + 3.423880E-04 3.423880E-04 9.775449E-04 1.975860E-03 1.975860E-03 + 2.072206E-03 + Phonon frequencies in cm-1 : +- 7.514549E+01 7.514549E+01 2.145463E+02 4.336512E+02 4.336512E+02 +- 4.547967E+02 + + Phonon wavevector (reduced coordinates) : 0.65000 0.65000 0.65000 + Phonon energies in Hartree : + 3.558327E-04 3.558327E-04 1.087398E-03 1.982890E-03 1.982890E-03 + 2.061322E-03 + Phonon frequencies in cm-1 : +- 7.809626E+01 7.809626E+01 2.386562E+02 4.351942E+02 4.351942E+02 +- 4.524080E+02 + + Phonon wavevector (reduced coordinates) : 0.60000 0.60000 0.60000 + Phonon energies in Hartree : + 3.625149E-04 3.625149E-04 1.171405E-03 1.988220E-03 1.988220E-03 + 2.049540E-03 + Phonon frequencies in cm-1 : +- 7.956282E+01 7.956282E+01 2.570937E+02 4.363639E+02 4.363639E+02 +- 4.498221E+02 + + Phonon wavevector (reduced coordinates) : 0.55000 0.55000 0.55000 + Phonon energies in Hartree : + 3.653484E-04 3.653484E-04 1.224645E-03 1.991536E-03 1.991536E-03 + 2.040254E-03 + Phonon frequencies in cm-1 : +- 8.018470E+01 8.018470E+01 2.687786E+02 4.370916E+02 4.370916E+02 +- 4.477841E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.50000 0.50000 + Phonon energies in Hartree : + 3.661019E-04 3.661019E-04 1.242956E-03 1.992660E-03 1.992660E-03 + 2.036700E-03 + Phonon frequencies in cm-1 : +- 8.035008E+01 8.035008E+01 2.727974E+02 4.373383E+02 4.373383E+02 +- 4.470039E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.45000 0.50000 + Phonon energies in Hartree : + 3.724573E-04 3.976433E-04 1.235185E-03 1.971793E-03 1.993607E-03 + 2.056757E-03 + Phonon frequencies in cm-1 : +- 8.174494E+01 8.727262E+01 2.710917E+02 4.327586E+02 4.375462E+02 +- 4.514060E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.40000 0.50000 + Phonon energies in Hartree : + 3.893902E-04 4.746235E-04 1.214165E-03 1.940700E-03 1.996520E-03 + 2.085717E-03 + Phonon frequencies in cm-1 : +- 8.546128E+01 1.041678E+02 2.664784E+02 4.259344E+02 4.381855E+02 +- 4.577619E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.35000 0.50000 + Phonon energies in Hartree : + 4.118390E-04 5.644117E-04 1.187482E-03 1.914220E-03 2.001468E-03 + 2.109445E-03 + Phonon frequencies in cm-1 : +- 9.038820E+01 1.238741E+02 2.606222E+02 4.201227E+02 4.392715E+02 +- 4.629696E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.30000 0.50000 + Phonon energies in Hartree : + 4.343067E-04 6.368829E-04 1.169640E-03 1.896383E-03 2.008240E-03 + 2.124610E-03 + Phonon frequencies in cm-1 : +- 9.531930E+01 1.397796E+02 2.567064E+02 4.162080E+02 4.407578E+02 +- 4.662981E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.25000 0.50000 + Phonon energies in Hartree : + 4.524887E-04 6.665583E-04 1.178824E-03 1.889052E-03 2.016210E-03 + 2.129703E-03 + Phonon frequencies in cm-1 : +- 9.930980E+01 1.462926E+02 2.587220E+02 4.145989E+02 4.425070E+02 +- 4.674158E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.20000 0.50000 + Phonon energies in Hartree : + 4.639039E-04 6.463921E-04 1.219329E-03 1.892670E-03 2.024451E-03 + 2.124258E-03 + Phonon frequencies in cm-1 : +- 1.018151E+02 1.418667E+02 2.676118E+02 4.153930E+02 4.443157E+02 +- 4.662207E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.15000 0.50000 + Phonon energies in Hartree : + 4.681894E-04 5.935328E-04 1.274503E-03 1.906573E-03 2.031983E-03 + 2.108819E-03 + Phonon frequencies in cm-1 : +- 1.027557E+02 1.302654E+02 2.797210E+02 4.184445E+02 4.459687E+02 +- 4.628323E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.10000 0.50000 + Phonon energies in Hartree : + 4.671681E-04 5.315559E-04 1.325225E-03 1.928904E-03 2.037968E-03 + 2.085288E-03 + Phonon frequencies in cm-1 : +- 1.025315E+02 1.166630E+02 2.908532E+02 4.233455E+02 4.472823E+02 +- 4.576678E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.05000 0.50000 + Phonon energies in Hartree : + 4.642367E-04 4.819444E-04 1.359516E-03 1.955027E-03 2.041800E-03 + 2.058434E-03 + Phonon frequencies in cm-1 : +- 1.018882E+02 1.057746E+02 2.983793E+02 4.290789E+02 4.481234E+02 +- 4.517741E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.00000 0.50000 + Phonon energies in Hartree : + 4.627820E-04 4.627820E-04 1.371515E-03 1.970111E-03 2.043117E-03 + 2.043117E-03 + Phonon frequencies in cm-1 : +- 1.015689E+02 1.015689E+02 3.010127E+02 4.323894E+02 4.484124E+02 +- 4.484124E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.02500 0.52500 + Phonon energies in Hartree : + 4.667856E-04 4.691598E-04 1.368223E-03 1.960888E-03 2.043451E-03 + 2.051352E-03 + Phonon frequencies in cm-1 : +- 1.024476E+02 1.029687E+02 3.002902E+02 4.303651E+02 4.484856E+02 +- 4.502198E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.05000 0.55000 + Phonon energies in Hartree : + 4.782676E-04 4.875185E-04 1.358512E-03 1.940426E-03 2.044413E-03 + 2.068924E-03 + Phonon frequencies in cm-1 : +- 1.049676E+02 1.069979E+02 2.981590E+02 4.258742E+02 4.486967E+02 +- 4.540763E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.07500 0.57500 + Phonon energies in Hartree : + 4.957772E-04 5.157892E-04 1.342884E-03 1.916340E-03 2.045899E-03 + 2.088446E-03 + Phonon frequencies in cm-1 : +- 1.088105E+02 1.132026E+02 2.947289E+02 4.205881E+02 4.490229E+02 +- 4.583610E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.10000 0.60000 + Phonon energies in Hartree : + 5.172659E-04 5.511623E-04 1.322191E-03 1.891775E-03 2.047751E-03 + 2.107152E-03 + Phonon frequencies in cm-1 : +- 1.135267E+02 1.209661E+02 2.901873E+02 4.151967E+02 4.494293E+02 +- 4.624664E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.12500 0.62500 + Phonon energies in Hartree : + 5.404419E-04 5.905542E-04 1.297680E-03 1.868357E-03 2.049778E-03 + 2.123923E-03 + Phonon frequencies in cm-1 : +- 1.186133E+02 1.296117E+02 2.848079E+02 4.100571E+02 4.498742E+02 +- 4.661471E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.15000 0.65000 + Phonon energies in Hartree : + 5.630434E-04 6.307859E-04 1.271083E-03 1.847285E-03 2.051780E-03 + 2.138179E-03 + Phonon frequencies in cm-1 : +- 1.235737E+02 1.384415E+02 2.789704E+02 4.054323E+02 4.503136E+02 +- 4.692761E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.17500 0.67500 + Phonon energies in Hartree : + 5.830151E-04 6.685008E-04 1.244741E-03 1.829597E-03 2.053566E-03 + 2.149565E-03 + Phonon frequencies in cm-1 : +- 1.279570E+02 1.467190E+02 2.731890E+02 4.015500E+02 4.507056E+02 +- 4.717751E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.20000 0.70000 + Phonon energies in Hartree : + 5.986235E-04 6.999906E-04 1.221722E-03 1.816202E-03 2.054971E-03 + 2.157848E-03 + Phonon frequencies in cm-1 : +- 1.313827E+02 1.536302E+02 2.681370E+02 3.986104E+02 4.510140E+02 +- 4.735929E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.22500 0.72500 + Phonon energies in Hartree : + 6.085457E-04 7.212619E-04 1.205653E-03 1.807840E-03 2.055868E-03 + 2.162875E-03 + Phonon frequencies in cm-1 : +- 1.335603E+02 1.582987E+02 2.646103E+02 3.967750E+02 4.512108E+02 +- 4.746961E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.25000 0.75000 + Phonon energies in Hartree : + 6.119482E-04 7.288357E-04 1.199831E-03 1.804996E-03 2.056175E-03 + 2.164560E-03 + Phonon frequencies in cm-1 : +- 1.343071E+02 1.599609E+02 2.633325E+02 3.961508E+02 4.512784E+02 +- 4.750659E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.27500 0.72500 + Phonon energies in Hartree : + 6.037852E-04 7.304513E-04 1.196572E-03 1.808142E-03 2.052759E-03 + 2.164769E-03 + Phonon frequencies in cm-1 : +- 1.325155E+02 1.603155E+02 2.626171E+02 3.968413E+02 4.505286E+02 +- 4.751118E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.30000 0.70000 + Phonon energies in Hartree : + 5.819524E-04 7.317007E-04 1.188280E-03 1.817197E-03 2.043770E-03 + 2.164462E-03 + Phonon frequencies in cm-1 : +- 1.277238E+02 1.605897E+02 2.607973E+02 3.988286E+02 4.485556E+02 +- 4.750444E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.32500 0.67500 + Phonon energies in Hartree : + 5.512062E-04 7.251124E-04 1.179153E-03 1.831215E-03 2.031978E-03 + 2.161717E-03 + Phonon frequencies in cm-1 : +- 1.209758E+02 1.591438E+02 2.587942E+02 4.019053E+02 4.459676E+02 +- 4.744420E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.35000 0.65000 + Phonon energies in Hartree : + 5.155278E-04 7.032414E-04 1.174767E-03 1.849153E-03 2.020078E-03 + 2.154900E-03 + Phonon frequencies in cm-1 : +- 1.131453E+02 1.543436E+02 2.578316E+02 4.058422E+02 4.433558E+02 +- 4.729458E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.37500 0.62500 + Phonon energies in Hartree : + 4.782609E-04 6.613727E-04 1.179128E-03 1.870240E-03 2.009905E-03 + 2.143114E-03 + Phonon frequencies in cm-1 : +- 1.049661E+02 1.451545E+02 2.587886E+02 4.104702E+02 4.411232E+02 +- 4.703591E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.40000 0.60000 + Phonon energies in Hartree : + 4.425196E-04 6.000996E-04 1.192025E-03 1.894050E-03 2.002304E-03 + 2.126174E-03 + Phonon frequencies in cm-1 : +- 9.712182E+01 1.317066E+02 2.616191E+02 4.156958E+02 4.394548E+02 +- 4.666412E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.42500 0.57500 + Phonon energies in Hartree : + 4.112064E-04 5.257681E-04 1.209534E-03 1.920271E-03 1.997301E-03 + 2.104519E-03 + Phonon frequencies in cm-1 : +- 9.024936E+01 1.153928E+02 2.654620E+02 4.214507E+02 4.383568E+02 +- 4.618885E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.45000 0.55000 + Phonon energies in Hartree : + 3.868450E-04 4.499145E-04 1.226528E-03 1.948270E-03 1.994428E-03 + 2.079255E-03 + Phonon frequencies in cm-1 : +- 8.490267E+01 9.874482E+01 2.691919E+02 4.275959E+02 4.377264E+02 +- 4.563438E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.47500 0.52500 + Phonon energies in Hartree : + 3.713949E-04 3.897691E-04 1.238609E-03 1.976045E-03 1.993053E-03 + 2.052887E-03 + Phonon frequencies in cm-1 : +- 8.151176E+01 8.554442E+01 2.718433E+02 4.336918E+02 4.374245E+02 +- 4.505567E+02 + + Phonon wavevector (reduced coordinates) : 0.50000 0.50000 0.50000 + Phonon energies in Hartree : + 3.661019E-04 3.661019E-04 1.242956E-03 1.992660E-03 1.992660E-03 + 2.036700E-03 + Phonon frequencies in cm-1 : +- 8.035008E+01 8.035008E+01 2.727974E+02 4.373383E+02 4.373383E+02 +- 4.470039E+02 + +================================================================================ + + Treat the second list of vectors + + + Phonon at Gamma, with non-analyticity in the + direction (cartesian coordinates) 1.00000 0.00000 0.00000 + Phonon energies in Hartree : + 0.000000E+00 0.000000E+00 0.000000E+00 1.936676E-03 1.936676E-03 + 2.076257E-03 + Phonon frequencies in cm-1 : +- 0.000000E+00 0.000000E+00 0.000000E+00 4.250512E+02 4.250512E+02 +- 4.556856E+02 +- +- Proc. 0 individual time (sec): cpu= 0.1 wall= 0.1 + +================================================================================ + ++Total cpu time 0.114 and wall time 0.144 sec + + anaddb : the run completed succesfully. diff --git a/abipy/data/refs/SrCl2_lineshape/A_e_out_GSR.nc b/abipy/data/refs/SrCl2_lineshape/A_e_out_GSR.nc new file mode 100644 index 000000000..77b1b4d93 Binary files /dev/null and b/abipy/data/refs/SrCl2_lineshape/A_e_out_GSR.nc differ diff --git a/abipy/data/refs/SrCl2_lineshape/A_e_starout_GSR.nc b/abipy/data/refs/SrCl2_lineshape/A_e_starout_GSR.nc new file mode 100644 index 000000000..2ac8ea129 Binary files /dev/null and b/abipy/data/refs/SrCl2_lineshape/A_e_starout_GSR.nc differ diff --git a/abipy/data/refs/SrCl2_lineshape/A_g_out_GSR.nc b/abipy/data/refs/SrCl2_lineshape/A_g_out_GSR.nc new file mode 100644 index 000000000..9c3b75e3f Binary files /dev/null and b/abipy/data/refs/SrCl2_lineshape/A_g_out_GSR.nc differ diff --git a/abipy/data/refs/SrCl2_lineshape/A_g_starout_GSR.nc b/abipy/data/refs/SrCl2_lineshape/A_g_starout_GSR.nc new file mode 100644 index 000000000..ddd493c57 Binary files /dev/null and b/abipy/data/refs/SrCl2_lineshape/A_g_starout_GSR.nc differ diff --git a/abipy/data/refs/alas_phonons/trf2_3.ddb.out b/abipy/data/refs/alas_phonons/trf2_3_DDB similarity index 100% rename from abipy/data/refs/alas_phonons/trf2_3.ddb.out rename to abipy/data/refs/alas_phonons/trf2_3_DDB diff --git a/abipy/data/refs/embedding_ifc/C_conv_DDB b/abipy/data/refs/embedding_ifc/C_conv_DDB new file mode 100644 index 000000000..ae72ce6d9 --- /dev/null +++ b/abipy/data/refs/embedding_ifc/C_conv_DDB @@ -0,0 +1,6405 @@ + + **** DERIVATIVE DATABASE **** ++DDB, Version number 20230401 + + DDB file merged by PhononWork on Thu Nov 9 14:57:59 2023 + + usepaw 0 + natom 8 + nkpt 4 + nsppol 1 + nsym 192 + ntypat 1 + occopt 1 + nband 17 + acell 0.10000000000000D+01 0.10000000000000D+01 0.10000000000000D+01 + amu 0.12011000000000D+02 + dilatmx 0.10000000000000D+01 + ecut 0.10000000000000D+02 + ecutsm 0.00000000000000D+00 + intxc 0 + iscf 7 + ixc 1 + kpt 0.12500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + kptnrm 0.10000000000000D+01 + ngfft 20 20 20 + nspden 1 + nspinor 1 + occ 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.00000000000000D+00 + rprim 0.67533331488000D+01 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.67533331488000D+01 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.67533331488000D+01 + dfpt_sciss 0.00000000000000D+00 + spinat 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + symafm 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + symrel 1 0 0 0 1 0 0 0 1 + 1 0 0 0 1 0 0 0 1 + 1 0 0 0 1 0 0 0 1 + 1 0 0 0 1 0 0 0 1 + -1 0 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 -1 + -1 0 0 0 1 0 0 0 -1 + -1 0 0 0 1 0 0 0 -1 + -1 0 0 0 1 0 0 0 -1 + -1 0 0 0 1 0 0 0 -1 + 1 0 0 0 -1 0 0 0 1 + 1 0 0 0 -1 0 0 0 1 + 1 0 0 0 -1 0 0 0 1 + 1 0 0 0 -1 0 0 0 1 + -1 0 0 0 -1 0 0 0 1 + -1 0 0 0 -1 0 0 0 1 + -1 0 0 0 -1 0 0 0 1 + -1 0 0 0 -1 0 0 0 1 + 1 0 0 0 1 0 0 0 -1 + 1 0 0 0 1 0 0 0 -1 + 1 0 0 0 1 0 0 0 -1 + 1 0 0 0 1 0 0 0 -1 + 1 0 0 0 -1 0 0 0 -1 + 1 0 0 0 -1 0 0 0 -1 + 1 0 0 0 -1 0 0 0 -1 + 1 0 0 0 -1 0 0 0 -1 + -1 0 0 0 1 0 0 0 1 + -1 0 0 0 1 0 0 0 1 + -1 0 0 0 1 0 0 0 1 + -1 0 0 0 1 0 0 0 1 + 0 1 0 1 0 0 0 0 1 + 0 1 0 1 0 0 0 0 1 + 0 1 0 1 0 0 0 0 1 + 0 1 0 1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 -1 + 0 -1 0 1 0 0 0 0 -1 + 0 -1 0 1 0 0 0 0 -1 + 0 -1 0 1 0 0 0 0 -1 + 0 -1 0 1 0 0 0 0 -1 + 0 1 0 -1 0 0 0 0 1 + 0 1 0 -1 0 0 0 0 1 + 0 1 0 -1 0 0 0 0 1 + 0 1 0 -1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 1 + 0 1 0 1 0 0 0 0 -1 + 0 1 0 1 0 0 0 0 -1 + 0 1 0 1 0 0 0 0 -1 + 0 1 0 1 0 0 0 0 -1 + 0 1 0 -1 0 0 0 0 -1 + 0 1 0 -1 0 0 0 0 -1 + 0 1 0 -1 0 0 0 0 -1 + 0 1 0 -1 0 0 0 0 -1 + 0 -1 0 1 0 0 0 0 1 + 0 -1 0 1 0 0 0 0 1 + 0 -1 0 1 0 0 0 0 1 + 0 -1 0 1 0 0 0 0 1 + 0 0 1 1 0 0 0 1 0 + 0 0 1 1 0 0 0 1 0 + 0 0 1 1 0 0 0 1 0 + 0 0 1 1 0 0 0 1 0 + 0 0 -1 -1 0 0 0 -1 0 + 0 0 -1 -1 0 0 0 -1 0 + 0 0 -1 -1 0 0 0 -1 0 + 0 0 -1 -1 0 0 0 -1 0 + 0 0 -1 1 0 0 0 -1 0 + 0 0 -1 1 0 0 0 -1 0 + 0 0 -1 1 0 0 0 -1 0 + 0 0 -1 1 0 0 0 -1 0 + 0 0 1 -1 0 0 0 1 0 + 0 0 1 -1 0 0 0 1 0 + 0 0 1 -1 0 0 0 1 0 + 0 0 1 -1 0 0 0 1 0 + 0 0 -1 -1 0 0 0 1 0 + 0 0 -1 -1 0 0 0 1 0 + 0 0 -1 -1 0 0 0 1 0 + 0 0 -1 -1 0 0 0 1 0 + 0 0 1 1 0 0 0 -1 0 + 0 0 1 1 0 0 0 -1 0 + 0 0 1 1 0 0 0 -1 0 + 0 0 1 1 0 0 0 -1 0 + 0 0 1 -1 0 0 0 -1 0 + 0 0 1 -1 0 0 0 -1 0 + 0 0 1 -1 0 0 0 -1 0 + 0 0 1 -1 0 0 0 -1 0 + 0 0 -1 1 0 0 0 1 0 + 0 0 -1 1 0 0 0 1 0 + 0 0 -1 1 0 0 0 1 0 + 0 0 -1 1 0 0 0 1 0 + 1 0 0 0 0 1 0 1 0 + 1 0 0 0 0 1 0 1 0 + 1 0 0 0 0 1 0 1 0 + 1 0 0 0 0 1 0 1 0 + -1 0 0 0 0 -1 0 -1 0 + -1 0 0 0 0 -1 0 -1 0 + -1 0 0 0 0 -1 0 -1 0 + -1 0 0 0 0 -1 0 -1 0 + -1 0 0 0 0 1 0 -1 0 + -1 0 0 0 0 1 0 -1 0 + -1 0 0 0 0 1 0 -1 0 + -1 0 0 0 0 1 0 -1 0 + 1 0 0 0 0 -1 0 1 0 + 1 0 0 0 0 -1 0 1 0 + 1 0 0 0 0 -1 0 1 0 + 1 0 0 0 0 -1 0 1 0 + -1 0 0 0 0 -1 0 1 0 + -1 0 0 0 0 -1 0 1 0 + -1 0 0 0 0 -1 0 1 0 + -1 0 0 0 0 -1 0 1 0 + 1 0 0 0 0 1 0 -1 0 + 1 0 0 0 0 1 0 -1 0 + 1 0 0 0 0 1 0 -1 0 + 1 0 0 0 0 1 0 -1 0 + 1 0 0 0 0 -1 0 -1 0 + 1 0 0 0 0 -1 0 -1 0 + 1 0 0 0 0 -1 0 -1 0 + 1 0 0 0 0 -1 0 -1 0 + -1 0 0 0 0 1 0 1 0 + -1 0 0 0 0 1 0 1 0 + -1 0 0 0 0 1 0 1 0 + -1 0 0 0 0 1 0 1 0 + 0 1 0 0 0 1 1 0 0 + 0 1 0 0 0 1 1 0 0 + 0 1 0 0 0 1 1 0 0 + 0 1 0 0 0 1 1 0 0 + 0 -1 0 0 0 -1 -1 0 0 + 0 -1 0 0 0 -1 -1 0 0 + 0 -1 0 0 0 -1 -1 0 0 + 0 -1 0 0 0 -1 -1 0 0 + 0 -1 0 0 0 1 -1 0 0 + 0 -1 0 0 0 1 -1 0 0 + 0 -1 0 0 0 1 -1 0 0 + 0 -1 0 0 0 1 -1 0 0 + 0 1 0 0 0 -1 1 0 0 + 0 1 0 0 0 -1 1 0 0 + 0 1 0 0 0 -1 1 0 0 + 0 1 0 0 0 -1 1 0 0 + 0 -1 0 0 0 -1 1 0 0 + 0 -1 0 0 0 -1 1 0 0 + 0 -1 0 0 0 -1 1 0 0 + 0 -1 0 0 0 -1 1 0 0 + 0 1 0 0 0 1 -1 0 0 + 0 1 0 0 0 1 -1 0 0 + 0 1 0 0 0 1 -1 0 0 + 0 1 0 0 0 1 -1 0 0 + 0 1 0 0 0 -1 -1 0 0 + 0 1 0 0 0 -1 -1 0 0 + 0 1 0 0 0 -1 -1 0 0 + 0 1 0 0 0 -1 -1 0 0 + 0 -1 0 0 0 1 1 0 0 + 0 -1 0 0 0 1 1 0 0 + 0 -1 0 0 0 1 1 0 0 + 0 -1 0 0 0 1 1 0 0 + 0 0 1 0 1 0 1 0 0 + 0 0 1 0 1 0 1 0 0 + 0 0 1 0 1 0 1 0 0 + 0 0 1 0 1 0 1 0 0 + 0 0 -1 0 -1 0 -1 0 0 + 0 0 -1 0 -1 0 -1 0 0 + 0 0 -1 0 -1 0 -1 0 0 + 0 0 -1 0 -1 0 -1 0 0 + 0 0 -1 0 1 0 -1 0 0 + 0 0 -1 0 1 0 -1 0 0 + 0 0 -1 0 1 0 -1 0 0 + 0 0 -1 0 1 0 -1 0 0 + 0 0 1 0 -1 0 1 0 0 + 0 0 1 0 -1 0 1 0 0 + 0 0 1 0 -1 0 1 0 0 + 0 0 1 0 -1 0 1 0 0 + 0 0 -1 0 -1 0 1 0 0 + 0 0 -1 0 -1 0 1 0 0 + 0 0 -1 0 -1 0 1 0 0 + 0 0 -1 0 -1 0 1 0 0 + 0 0 1 0 1 0 -1 0 0 + 0 0 1 0 1 0 -1 0 0 + 0 0 1 0 1 0 -1 0 0 + 0 0 1 0 1 0 -1 0 0 + 0 0 1 0 -1 0 -1 0 0 + 0 0 1 0 -1 0 -1 0 0 + 0 0 1 0 -1 0 -1 0 0 + 0 0 1 0 -1 0 -1 0 0 + 0 0 -1 0 1 0 1 0 0 + 0 0 -1 0 1 0 1 0 0 + 0 0 -1 0 1 0 1 0 0 + 0 0 -1 0 1 0 1 0 0 + tnons 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + tolwfr 0.10000000000000D+01 + tphysel 0.00000000000000D+00 + tsmear 0.10000000000000D-01 + typat 1 1 1 1 1 1 1 1 + wtk 0.12500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 + xred 0.25000000000000D+00 0.75000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.75000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.75000000000000D+00 0.75000000000000D+00 0.75000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.75000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + znucl 0.60000000000000D+01 + zion 0.40000000000000D+01 + + Description of the potentials (KB energies) + vrsio8 (for pseudopotentials)=100401 + usepaw = 0 + dimekb = 4 lmnmax= 4 + Atom type= 1 pspso= 0 nekb= 4 + iln lpsang iproj ekb(:) + 1 0 1 6.4815482E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 2 0 2 0.0000000E+00 3.8550364E-01 0.0000000E+00 0.0000000E+00 + 3 1 1 0.0000000E+00 0.0000000E+00 -4.1999614E+00 0.0000000E+00 + 4 1 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 -8.7751666E-01 + + **** Database of total energy derivatives **** + Number of data blocks= 12 + + 1st derivatives - # elements : 30 + 1 1 0.00000000000000D+00 0.00000000000000D+00 + 2 1 0.00000000000000D+00 0.00000000000000D+00 + 3 1 0.00000000000000D+00 0.00000000000000D+00 + 1 2 0.00000000000000D+00 0.00000000000000D+00 + 2 2 0.00000000000000D+00 0.00000000000000D+00 + 3 2 0.00000000000000D+00 0.00000000000000D+00 + 1 3 0.00000000000000D+00 0.00000000000000D+00 + 2 3 0.00000000000000D+00 0.00000000000000D+00 + 3 3 0.00000000000000D+00 0.00000000000000D+00 + 1 4 0.00000000000000D+00 0.00000000000000D+00 + 2 4 0.00000000000000D+00 0.00000000000000D+00 + 3 4 0.00000000000000D+00 0.00000000000000D+00 + 1 5 0.00000000000000D+00 0.00000000000000D+00 + 2 5 0.00000000000000D+00 0.00000000000000D+00 + 3 5 0.00000000000000D+00 0.00000000000000D+00 + 1 6 0.00000000000000D+00 0.00000000000000D+00 + 2 6 0.00000000000000D+00 0.00000000000000D+00 + 3 6 0.00000000000000D+00 0.00000000000000D+00 + 1 7 0.00000000000000D+00 0.00000000000000D+00 + 2 7 0.00000000000000D+00 0.00000000000000D+00 + 3 7 0.00000000000000D+00 0.00000000000000D+00 + 1 8 0.00000000000000D+00 0.00000000000000D+00 + 2 8 0.00000000000000D+00 0.00000000000000D+00 + 3 8 0.00000000000000D+00 0.00000000000000D+00 + 1 11 0.43063502031107D-02 0.00000000000000D+00 + 2 11 0.43063502031107D-02 0.00000000000000D+00 + 3 11 0.43063502031107D-02 0.00000000000000D+00 + 1 12 0.00000000000000D+00 0.00000000000000D+00 + 2 12 0.00000000000000D+00 0.00000000000000D+00 + 3 12 0.00000000000000D+00 0.00000000000000D+00 + + Total energy - # elements : 1 + -0.46813244645231D+02 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 678 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.29966360174232D+02 0.00000000000000D+00 + 2 1 1 1 0.35439126539974D-13 0.00000000000000D+00 + 3 1 1 1 -0.99581787722601D-13 0.00000000000000D+00 + 1 2 1 1 -0.67035233688691D+01 0.35971277069515D-15 + 2 2 1 1 0.41606874521476D+01 0.44431240796057D-16 + 3 2 1 1 0.41606874521476D+01 0.60267666441135D-18 + 1 3 1 1 0.30438985059452D+01 0.00000000000000D+00 + 2 3 1 1 0.11139441033496D-15 0.00000000000000D+00 + 3 3 1 1 0.93847134800984D-16 0.00000000000000D+00 + 1 4 1 1 -0.67035233688691D+01 -0.37734423850824D-16 + 2 4 1 1 -0.41606874521476D+01 0.42374307341034D-16 + 3 4 1 1 -0.41606874521476D+01 -0.30776861215028D-17 + 1 5 1 1 -0.31063173304380D+01 0.00000000000000D+00 + 2 5 1 1 0.53510928053072D-17 0.00000000000000D+00 + 3 5 1 1 -0.32216086583078D-14 0.00000000000000D+00 + 1 6 1 1 -0.67035233688691D+01 0.21212570448918D-15 + 2 6 1 1 -0.41606874521476D+01 0.44889632713756D-16 + 3 6 1 1 0.41606874521476D+01 0.13800117017639D-16 + 1 7 1 1 -0.31063173304380D+01 0.00000000000000D+00 + 2 7 1 1 0.31680037884777D-14 0.00000000000000D+00 + 3 7 1 1 -0.33057258728080D-17 0.00000000000000D+00 + 1 8 1 1 -0.67035233688691D+01 -0.39934472439644D-15 + 2 8 1 1 0.41606874521476D+01 0.40302458076220D-16 + 3 8 1 1 -0.41606874521476D+01 0.15215616604896D-16 + 2 10 1 1 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 1 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 1 0.35439126539974D-13 0.00000000000000D+00 + 2 1 2 1 0.29966360174232D+02 0.00000000000000D+00 + 3 1 2 1 0.35749095111880D-14 0.00000000000000D+00 + 1 2 2 1 0.41606874521476D+01 0.44431240796057D-16 + 2 2 2 1 -0.67035233688691D+01 0.19092856510845D-15 + 3 2 2 1 -0.41606874521476D+01 -0.12352390118368D-16 + 1 3 2 1 0.11139441033496D-15 0.00000000000000D+00 + 2 3 2 1 -0.31063173304380D+01 0.00000000000000D+00 + 3 3 2 1 0.35072933347074D-14 0.00000000000000D+00 + 1 4 2 1 -0.41606874521476D+01 0.42374307341034D-16 + 2 4 2 1 -0.67035233688691D+01 -0.14093039862591D-15 + 3 4 2 1 -0.41606874521476D+01 -0.96267971488814D-18 + 1 5 2 1 0.53510928053072D-17 0.00000000000000D+00 + 2 5 2 1 0.30438985059452D+01 0.00000000000000D+00 + 3 5 2 1 -0.11163241682580D-15 0.00000000000000D+00 + 1 6 2 1 -0.41606874521476D+01 0.44889632713756D-16 + 2 6 2 1 -0.67035233688691D+01 -0.42424036972211D-15 + 3 6 2 1 0.41606874521476D+01 0.75367164180373D-17 + 1 7 2 1 0.31680037884777D-14 0.00000000000000D+00 + 2 7 2 1 -0.31063173304380D+01 0.00000000000000D+00 + 3 7 2 1 0.10451339742437D-15 0.00000000000000D+00 + 1 8 2 1 0.41606874521476D+01 0.40302458076220D-16 + 2 8 2 1 -0.67035233688691D+01 -0.52321790384959D-15 + 3 8 2 1 0.41606874521476D+01 0.55892410757376D-17 + 1 10 2 1 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 1 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 1 -0.99581787722601D-13 0.00000000000000D+00 + 2 1 3 1 0.35749095111880D-14 0.00000000000000D+00 + 3 1 3 1 0.29966360174232D+02 0.00000000000000D+00 + 1 2 3 1 0.41606874521476D+01 0.60267666441135D-18 + 2 2 3 1 -0.41606874521476D+01 -0.12352390118368D-16 + 3 2 3 1 -0.67035233688691D+01 0.86552900715050D-16 + 1 3 3 1 0.93847134800984D-16 0.00000000000000D+00 + 2 3 3 1 0.35072933347074D-14 0.00000000000000D+00 + 3 3 3 1 -0.31063173304380D+01 0.00000000000000D+00 + 1 4 3 1 -0.41606874521476D+01 -0.30776861215028D-17 + 2 4 3 1 -0.41606874521476D+01 -0.96267971488814D-18 + 3 4 3 1 -0.67035233688691D+01 -0.40088708160504D-15 + 1 5 3 1 -0.32216086583078D-14 0.00000000000000D+00 + 2 5 3 1 -0.11163241682580D-15 0.00000000000000D+00 + 3 5 3 1 -0.31063173304380D+01 0.00000000000000D+00 + 1 6 3 1 0.41606874521476D+01 0.13800117017639D-16 + 2 6 3 1 0.41606874521476D+01 0.75367164180373D-17 + 3 6 3 1 -0.67035233688691D+01 -0.47585894042228D-17 + 1 7 3 1 -0.33057258728080D-17 0.00000000000000D+00 + 2 7 3 1 0.10451339742437D-15 0.00000000000000D+00 + 3 7 3 1 0.30438985059452D+01 0.00000000000000D+00 + 1 8 3 1 -0.41606874521476D+01 0.15215616604896D-16 + 2 8 3 1 0.41606874521476D+01 0.55892410757376D-17 + 3 8 3 1 -0.67035233688691D+01 0.30727316982777D-15 + 1 10 3 1 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 1 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 2 -0.67035233688691D+01 -0.35971277069515D-15 + 2 1 1 2 0.41606874521476D+01 -0.44431240796057D-16 + 3 1 1 2 0.41606874521476D+01 -0.60267666441135D-18 + 1 2 1 2 0.29966360174232D+02 0.00000000000000D+00 + 2 2 1 2 -0.74749389492375D-13 0.00000000000000D+00 + 3 2 1 2 -0.56945901051593D-13 0.00000000000000D+00 + 1 3 1 2 -0.67035233688691D+01 0.16422880024632D-15 + 2 3 1 2 -0.41606874521475D+01 -0.39437175533867D-16 + 3 3 1 2 -0.41606874521476D+01 -0.74794678872910D-18 + 1 4 1 2 0.30438985059452D+01 0.00000000000000D+00 + 2 4 1 2 0.11139441033496D-15 0.00000000000000D+00 + 3 4 1 2 0.93830335176333D-16 0.00000000000000D+00 + 1 5 1 2 -0.67035233688691D+01 0.83209706883665D-16 + 2 5 1 2 -0.41606874521476D+01 0.23266043037614D-16 + 3 5 1 2 0.41606874521476D+01 -0.18187439206040D-16 + 1 6 1 2 -0.31063173304380D+01 0.00000000000000D+00 + 2 6 1 2 -0.39730467052491D-17 0.00000000000000D+00 + 3 6 1 2 0.54392045782068D-16 0.00000000000000D+00 + 1 7 1 2 -0.67035233688691D+01 -0.14178103392371D-15 + 2 7 1 2 0.41606874521476D+01 -0.43160033745609D-16 + 3 7 1 2 -0.41606874521476D+01 -0.13817792791671D-16 + 1 8 1 2 -0.31063173304380D+01 0.00000000000000D+00 + 2 8 1 2 0.54391989533800D-16 0.00000000000000D+00 + 3 8 1 2 -0.33225254017508D-17 0.00000000000000D+00 + 2 10 1 2 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 2 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 2 0.41606874521476D+01 -0.44431240796057D-16 + 2 1 2 2 -0.67035233688691D+01 -0.19092856510845D-15 + 3 1 2 2 -0.41606874521476D+01 0.12352390118368D-16 + 1 2 2 2 -0.74749389492375D-13 0.00000000000000D+00 + 2 2 2 2 0.29966360174232D+02 0.00000000000000D+00 + 3 2 2 2 -0.67583443781377D-13 0.00000000000000D+00 + 1 3 2 2 -0.41606874521475D+01 -0.39437175533867D-16 + 2 3 2 2 -0.67035233688691D+01 0.39798725853069D-15 + 3 3 2 2 -0.41606874521476D+01 -0.13369080421955D-18 + 1 4 2 2 0.11139441033496D-15 0.00000000000000D+00 + 2 4 2 2 -0.31063173304380D+01 0.00000000000000D+00 + 3 4 2 2 -0.45420735317185D-16 0.00000000000000D+00 + 1 5 2 2 -0.41606874521476D+01 0.23266043037614D-16 + 2 5 2 2 -0.67035233688691D+01 -0.15064046925905D-15 + 3 5 2 2 0.41606874521476D+01 -0.61368399780780D-17 + 1 6 2 2 -0.39730467052491D-17 0.00000000000000D+00 + 2 6 2 2 0.30438985059452D+01 0.00000000000000D+00 + 3 6 2 2 -0.10165775801562D-15 0.00000000000000D+00 + 1 7 2 2 0.41606874521476D+01 -0.43160033745609D-16 + 2 7 2 2 -0.67035233688691D+01 -0.28568755417992D-15 + 3 7 2 2 0.41606874521476D+01 -0.29213330026321D-17 + 1 8 2 2 0.54391989533800D-16 0.00000000000000D+00 + 2 8 2 2 -0.31063173304380D+01 0.00000000000000D+00 + 3 8 2 2 0.10407971655497D-15 0.00000000000000D+00 + 1 10 2 2 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 2 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 2 0.41606874521476D+01 -0.60267666441135D-18 + 2 1 3 2 -0.41606874521476D+01 0.12352390118368D-16 + 3 1 3 2 -0.67035233688691D+01 -0.86552900715050D-16 + 1 2 3 2 -0.56945901051593D-13 0.00000000000000D+00 + 2 2 3 2 -0.67583443781377D-13 0.00000000000000D+00 + 3 2 3 2 0.29966360174232D+02 0.00000000000000D+00 + 1 3 3 2 -0.41606874521476D+01 -0.74794678872910D-18 + 2 3 3 2 -0.41606874521476D+01 -0.13369080421955D-18 + 3 3 3 2 -0.67035233688691D+01 0.23780928663500D-15 + 1 4 3 2 0.93830335176333D-16 0.00000000000000D+00 + 2 4 3 2 -0.45420735317185D-16 0.00000000000000D+00 + 3 4 3 2 -0.31063173304380D+01 0.00000000000000D+00 + 1 5 3 2 0.41606874521476D+01 -0.18187439206040D-16 + 2 5 3 2 0.41606874521476D+01 -0.61368399780780D-17 + 3 5 3 2 -0.67035233688691D+01 0.22225774767116D-15 + 1 6 3 2 0.54392045782068D-16 0.00000000000000D+00 + 2 6 3 2 -0.10165775801562D-15 0.00000000000000D+00 + 3 6 3 2 -0.31063173304380D+01 0.00000000000000D+00 + 1 7 3 2 -0.41606874521476D+01 -0.13817792791671D-16 + 2 7 3 2 0.41606874521476D+01 -0.29213330026321D-17 + 3 7 3 2 -0.67035233688691D+01 -0.89038911652829D-16 + 1 8 3 2 -0.33225254017508D-17 0.00000000000000D+00 + 2 8 3 2 0.10407971655497D-15 0.00000000000000D+00 + 3 8 3 2 0.30438985059452D+01 0.00000000000000D+00 + 1 10 3 2 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 2 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 3 0.30438985059452D+01 0.00000000000000D+00 + 2 1 1 3 0.11139441033496D-15 0.00000000000000D+00 + 3 1 1 3 0.93847134800984D-16 0.00000000000000D+00 + 1 2 1 3 -0.67035233688691D+01 -0.16422880024632D-15 + 2 2 1 3 -0.41606874521475D+01 0.39437175533867D-16 + 3 2 1 3 -0.41606874521476D+01 0.74794678872910D-18 + 1 3 1 3 0.29966360174232D+02 0.00000000000000D+00 + 2 3 1 3 -0.85353138539243D-13 0.00000000000000D+00 + 3 3 1 3 -0.10580471618694D-15 0.00000000000000D+00 + 1 4 1 3 -0.67035233688691D+01 0.37699983186527D-15 + 2 4 1 3 0.41606874521476D+01 -0.26649935479903D-16 + 3 4 1 3 0.41606874521476D+01 -0.39723285984366D-17 + 1 5 1 3 -0.31063173304380D+01 0.00000000000000D+00 + 2 5 1 3 -0.32313659151706D-14 0.00000000000000D+00 + 3 5 1 3 -0.37562056507478D-17 0.00000000000000D+00 + 1 6 1 3 -0.67035233688691D+01 0.44800225171658D-15 + 2 6 1 3 0.41606874521476D+01 -0.26045536376565D-16 + 3 6 1 3 -0.41606874521476D+01 0.12049499578121D-16 + 1 7 1 3 -0.31063173304380D+01 0.00000000000000D+00 + 2 7 1 3 -0.39562470725880D-17 0.00000000000000D+00 + 3 7 1 3 0.31677863851468D-14 0.00000000000000D+00 + 1 8 1 3 -0.67035233688691D+01 0.50539036945106D-15 + 2 8 1 3 -0.41606874521476D+01 0.39572529398033D-16 + 3 8 1 3 0.41606874521476D+01 0.17601436825182D-16 + 2 10 1 3 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 3 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 3 0.11139441033496D-15 0.00000000000000D+00 + 2 1 2 3 -0.31063173304380D+01 0.00000000000000D+00 + 3 1 2 3 0.35072933347074D-14 0.00000000000000D+00 + 1 2 2 3 -0.41606874521475D+01 0.39437175533867D-16 + 2 2 2 3 -0.67035233688691D+01 -0.39798725853069D-15 + 3 2 2 3 -0.41606874521476D+01 0.13369080421955D-18 + 1 3 2 3 -0.85353138539243D-13 0.00000000000000D+00 + 2 3 2 3 0.29966360174232D+02 0.00000000000000D+00 + 3 3 2 3 -0.10635945204014D-13 0.00000000000000D+00 + 1 4 2 3 0.41606874521476D+01 -0.26649935479903D-16 + 2 4 2 3 -0.67035233688691D+01 -0.23302119829337D-16 + 3 4 2 3 -0.41606874521476D+01 -0.93829411081393D-17 + 1 5 2 3 -0.32313659151706D-14 0.00000000000000D+00 + 2 5 2 3 -0.31063173304380D+01 0.00000000000000D+00 + 3 5 2 3 0.10364603727573D-15 0.00000000000000D+00 + 1 6 2 3 0.41606874521476D+01 -0.26045536376565D-16 + 2 6 2 3 -0.67035233688691D+01 -0.33274809314949D-15 + 3 6 2 3 0.41606874521476D+01 -0.79113000627882D-18 + 1 7 2 3 -0.39562470725880D-17 0.00000000000000D+00 + 2 7 2 3 0.30438985059452D+01 0.00000000000000D+00 + 3 7 2 3 -0.10122407714662D-15 0.00000000000000D+00 + 1 8 2 3 -0.41606874521476D+01 0.39572529398033D-16 + 2 8 2 3 -0.67035233688691D+01 -0.41658344486869D-15 + 3 8 2 3 0.41606874521476D+01 -0.87632035959732D-17 + 1 10 2 3 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 3 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 3 0.93847134800984D-16 0.00000000000000D+00 + 2 1 3 3 0.35072933347074D-14 0.00000000000000D+00 + 3 1 3 3 -0.31063173304380D+01 0.00000000000000D+00 + 1 2 3 3 -0.41606874521476D+01 0.74794678872910D-18 + 2 2 3 3 -0.41606874521476D+01 0.13369080421955D-18 + 3 2 3 3 -0.67035233688691D+01 -0.23780928663500D-15 + 1 3 3 3 -0.10580471618694D-15 0.00000000000000D+00 + 2 3 3 3 -0.10635945204014D-13 0.00000000000000D+00 + 3 3 3 3 0.29966360174232D+02 0.00000000000000D+00 + 1 4 3 3 0.41606874521476D+01 -0.39723285984366D-17 + 2 4 3 3 -0.41606874521476D+01 -0.93829411081393D-17 + 3 4 3 3 -0.67035233688691D+01 0.39373489129314D-15 + 1 5 3 3 -0.37562056507478D-17 0.00000000000000D+00 + 2 5 3 3 0.10364603727573D-15 0.00000000000000D+00 + 3 5 3 3 0.30438985059452D+01 0.00000000000000D+00 + 1 6 3 3 -0.41606874521476D+01 0.12049499578121D-16 + 2 6 3 3 0.41606874521476D+01 -0.79113000627882D-18 + 3 6 3 3 -0.67035233688691D+01 0.39401782457149D-15 + 1 7 3 3 0.31677863851468D-14 0.00000000000000D+00 + 2 7 3 3 -0.10122407714662D-15 0.00000000000000D+00 + 3 7 3 3 -0.31063173304380D+01 0.00000000000000D+00 + 1 8 3 3 0.41606874521476D+01 0.17601436825182D-16 + 2 8 3 3 0.41606874521476D+01 -0.87632035959732D-17 + 3 8 3 3 -0.67035233688691D+01 -0.75857539075331D-16 + 1 10 3 3 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 3 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 4 -0.67035233688691D+01 0.37734423850824D-16 + 2 1 1 4 -0.41606874521476D+01 -0.42374307341034D-16 + 3 1 1 4 -0.41606874521476D+01 0.30776861215028D-17 + 1 2 1 4 0.30438985059452D+01 0.00000000000000D+00 + 2 2 1 4 0.11139441033496D-15 0.00000000000000D+00 + 3 2 1 4 0.93830335176333D-16 0.00000000000000D+00 + 1 3 1 4 -0.67035233688691D+01 -0.37699983186527D-15 + 2 3 1 4 0.41606874521476D+01 0.26649935479903D-16 + 3 3 1 4 0.41606874521476D+01 0.39723285984366D-17 + 1 4 1 4 0.29966360174232D+02 0.00000000000000D+00 + 2 4 1 4 -0.53374742383333D-13 0.00000000000000D+00 + 3 4 1 4 -0.49898188265176D-13 0.00000000000000D+00 + 1 5 1 4 -0.67035233688691D+01 -0.13247855559291D-15 + 2 5 1 4 0.41606874521476D+01 -0.44157003087168D-16 + 3 5 1 4 -0.41606874521476D+01 -0.19778427242941D-16 + 1 6 1 4 -0.31063173304380D+01 0.00000000000000D+00 + 2 6 1 4 0.54391989533800D-16 0.00000000000000D+00 + 3 6 1 4 -0.33225254017508D-17 0.00000000000000D+00 + 1 7 1 4 -0.67035233688691D+01 0.11313469602419D-15 + 2 7 1 4 -0.41606874521476D+01 -0.41695869779505D-16 + 3 7 1 4 0.41606874521476D+01 -0.16778515864242D-16 + 1 8 1 4 -0.31063173304380D+01 0.00000000000000D+00 + 2 8 1 4 -0.39730467052491D-17 0.00000000000000D+00 + 3 8 1 4 0.54392045782068D-16 0.00000000000000D+00 + 2 10 1 4 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 4 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 4 -0.41606874521476D+01 -0.42374307341034D-16 + 2 1 2 4 -0.67035233688691D+01 0.14093039862591D-15 + 3 1 2 4 -0.41606874521476D+01 0.96267971488814D-18 + 1 2 2 4 0.11139441033496D-15 0.00000000000000D+00 + 2 2 2 4 -0.31063173304380D+01 0.00000000000000D+00 + 3 2 2 4 -0.45420735317185D-16 0.00000000000000D+00 + 1 3 2 4 0.41606874521476D+01 0.26649935479903D-16 + 2 3 2 4 -0.67035233688691D+01 0.23302119829337D-16 + 3 3 2 4 -0.41606874521476D+01 0.93829411081393D-17 + 1 4 2 4 -0.53374742383333D-13 0.00000000000000D+00 + 2 4 2 4 0.29966360174232D+02 0.00000000000000D+00 + 3 4 2 4 -0.56719565270405D-13 0.00000000000000D+00 + 1 5 2 4 0.41606874521476D+01 -0.44157003087168D-16 + 2 5 2 4 -0.67035233688691D+01 0.17025523674551D-15 + 3 5 2 4 0.41606874521476D+01 -0.64529439998160D-17 + 1 6 2 4 0.54391989533800D-16 0.00000000000000D+00 + 2 6 2 4 -0.31063173304380D+01 0.00000000000000D+00 + 3 6 2 4 0.10407971655497D-15 0.00000000000000D+00 + 1 7 2 4 -0.41606874521476D+01 -0.41695869779505D-16 + 2 7 2 4 -0.67035233688691D+01 0.19952264181056D-15 + 3 7 2 4 0.41606874521476D+01 0.83802698854647D-17 + 1 8 2 4 -0.39730467052491D-17 0.00000000000000D+00 + 2 8 2 4 0.30438985059452D+01 0.00000000000000D+00 + 3 8 2 4 -0.10165775801562D-15 0.00000000000000D+00 + 1 10 2 4 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 4 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 4 -0.41606874521476D+01 0.30776861215028D-17 + 2 1 3 4 -0.41606874521476D+01 0.96267971488814D-18 + 3 1 3 4 -0.67035233688691D+01 0.40088708160504D-15 + 1 2 3 4 0.93830335176333D-16 0.00000000000000D+00 + 2 2 3 4 -0.45420735317185D-16 0.00000000000000D+00 + 3 2 3 4 -0.31063173304380D+01 0.00000000000000D+00 + 1 3 3 4 0.41606874521476D+01 0.39723285984366D-17 + 2 3 3 4 -0.41606874521476D+01 0.93829411081393D-17 + 3 3 3 4 -0.67035233688691D+01 -0.39373489129314D-15 + 1 4 3 4 -0.49898188265176D-13 0.00000000000000D+00 + 2 4 3 4 -0.56719565270405D-13 0.00000000000000D+00 + 3 4 3 4 0.29966360174232D+02 0.00000000000000D+00 + 1 5 3 4 -0.41606874521476D+01 -0.19778427242941D-16 + 2 5 3 4 0.41606874521476D+01 -0.64529439998160D-17 + 3 5 3 4 -0.67035233688691D+01 -0.22105362150695D-15 + 1 6 3 4 -0.33225254017508D-17 0.00000000000000D+00 + 2 6 3 4 0.10407971655497D-15 0.00000000000000D+00 + 3 6 3 4 0.30438985059452D+01 0.00000000000000D+00 + 1 7 3 4 0.41606874521476D+01 -0.16778515864242D-16 + 2 7 3 4 0.41606874521476D+01 0.83802698854647D-17 + 3 7 3 4 -0.67035233688691D+01 0.48293550061784D-17 + 1 8 3 4 0.54392045782068D-16 0.00000000000000D+00 + 2 8 3 4 -0.10165775801562D-15 0.00000000000000D+00 + 3 8 3 4 -0.31063173304380D+01 0.00000000000000D+00 + 1 10 3 4 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 4 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 5 -0.31063173304380D+01 0.00000000000000D+00 + 2 1 1 5 0.53510928053072D-17 0.00000000000000D+00 + 3 1 1 5 -0.32216086583078D-14 0.00000000000000D+00 + 1 2 1 5 -0.67035233688691D+01 -0.83209706883665D-16 + 2 2 1 5 -0.41606874521476D+01 -0.23266043037614D-16 + 3 2 1 5 0.41606874521476D+01 0.18187439206040D-16 + 1 3 1 5 -0.31063173304380D+01 0.00000000000000D+00 + 2 3 1 5 -0.32313659151706D-14 0.00000000000000D+00 + 3 3 1 5 -0.37562056507478D-17 0.00000000000000D+00 + 1 4 1 5 -0.67035233688691D+01 0.13247855559291D-15 + 2 4 1 5 0.41606874521476D+01 0.44157003087168D-16 + 3 4 1 5 -0.41606874521476D+01 0.19778427242941D-16 + 1 5 1 5 0.29966360174232D+02 0.00000000000000D+00 + 2 5 1 5 -0.74695472608403D-13 0.00000000000000D+00 + 3 5 1 5 -0.67607839718958D-13 0.00000000000000D+00 + 1 6 1 5 -0.67035233688691D+01 0.33246417727665D-15 + 2 6 1 5 0.41606874521476D+01 -0.23458931492135D-16 + 3 6 1 5 0.41606874521476D+01 0.59967002438081D-18 + 1 7 1 5 0.30438985059452D+01 0.00000000000000D+00 + 2 7 1 5 0.10200929023445D-15 0.00000000000000D+00 + 3 7 1 5 0.10417769541821D-15 0.00000000000000D+00 + 1 8 1 5 -0.67035233688691D+01 0.51285312389453D-15 + 2 8 1 5 -0.41606874521476D+01 0.28432917741085D-16 + 3 8 1 5 -0.41606874521476D+01 0.23907202162473D-16 + 2 10 1 5 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 5 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 5 0.53510928053072D-17 0.00000000000000D+00 + 2 1 2 5 0.30438985059452D+01 0.00000000000000D+00 + 3 1 2 5 -0.11163241682580D-15 0.00000000000000D+00 + 1 2 2 5 -0.41606874521476D+01 -0.23266043037614D-16 + 2 2 2 5 -0.67035233688691D+01 0.15064046925905D-15 + 3 2 2 5 0.41606874521476D+01 0.61368399780780D-17 + 1 3 2 5 -0.32313659151706D-14 0.00000000000000D+00 + 2 3 2 5 -0.31063173304380D+01 0.00000000000000D+00 + 3 3 2 5 0.10364603727573D-15 0.00000000000000D+00 + 1 4 2 5 0.41606874521476D+01 0.44157003087168D-16 + 2 4 2 5 -0.67035233688691D+01 -0.17025523674551D-15 + 3 4 2 5 0.41606874521476D+01 0.64529439998160D-17 + 1 5 2 5 -0.74695472608403D-13 0.00000000000000D+00 + 2 5 2 5 0.29966360174232D+02 0.00000000000000D+00 + 3 5 2 5 -0.74585266527984D-13 0.00000000000000D+00 + 1 6 2 5 0.41606874521476D+01 -0.23458931492135D-16 + 2 6 2 5 -0.67035233688691D+01 -0.50849342848269D-15 + 3 6 2 5 -0.41606874521476D+01 -0.20612686233892D-17 + 1 7 2 5 0.10200929023445D-15 0.00000000000000D+00 + 2 7 2 5 -0.31063173304380D+01 0.00000000000000D+00 + 3 7 2 5 -0.31557011861625D-14 0.00000000000000D+00 + 1 8 2 5 -0.41606874521476D+01 0.28432917741085D-16 + 2 8 2 5 -0.67035233688691D+01 0.30097328434663D-15 + 3 8 2 5 -0.41606874521476D+01 0.67004396849302D-17 + 1 10 2 5 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 5 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 5 -0.32216086583078D-14 0.00000000000000D+00 + 2 1 3 5 -0.11163241682580D-15 0.00000000000000D+00 + 3 1 3 5 -0.31063173304380D+01 0.00000000000000D+00 + 1 2 3 5 0.41606874521476D+01 0.18187439206040D-16 + 2 2 3 5 0.41606874521476D+01 0.61368399780780D-17 + 3 2 3 5 -0.67035233688691D+01 -0.22225774767116D-15 + 1 3 3 5 -0.37562056507478D-17 0.00000000000000D+00 + 2 3 3 5 0.10364603727573D-15 0.00000000000000D+00 + 3 3 3 5 0.30438985059452D+01 0.00000000000000D+00 + 1 4 3 5 -0.41606874521476D+01 0.19778427242941D-16 + 2 4 3 5 0.41606874521476D+01 0.64529439998160D-17 + 3 4 3 5 -0.67035233688691D+01 0.22105362150695D-15 + 1 5 3 5 -0.67607839718958D-13 0.00000000000000D+00 + 2 5 3 5 -0.74585266527984D-13 0.00000000000000D+00 + 3 5 3 5 0.29966360174232D+02 0.00000000000000D+00 + 1 6 3 5 0.41606874521476D+01 0.59967002438081D-18 + 2 6 3 5 -0.41606874521476D+01 -0.20612686233892D-17 + 3 6 3 5 -0.67035233688691D+01 0.21855894460513D-15 + 1 7 3 5 0.10417769541821D-15 0.00000000000000D+00 + 2 7 3 5 -0.31557011861625D-14 0.00000000000000D+00 + 3 7 3 5 -0.31063173304380D+01 0.00000000000000D+00 + 1 8 3 5 -0.41606874521476D+01 0.23907202162473D-16 + 2 8 3 5 -0.41606874521476D+01 0.67004396849302D-17 + 3 8 3 5 -0.67035233688691D+01 -0.41008882278420D-15 + 1 10 3 5 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 5 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 6 -0.67035233688691D+01 -0.21212570448918D-15 + 2 1 1 6 -0.41606874521476D+01 -0.44889632713756D-16 + 3 1 1 6 0.41606874521476D+01 -0.13800117017639D-16 + 1 2 1 6 -0.31063173304380D+01 0.00000000000000D+00 + 2 2 1 6 -0.39730467052491D-17 0.00000000000000D+00 + 3 2 1 6 0.54392045782068D-16 0.00000000000000D+00 + 1 3 1 6 -0.67035233688691D+01 -0.44800225171658D-15 + 2 3 1 6 0.41606874521476D+01 0.26045536376565D-16 + 3 3 1 6 -0.41606874521476D+01 -0.12049499578121D-16 + 1 4 1 6 -0.31063173304380D+01 0.00000000000000D+00 + 2 4 1 6 0.54391989533800D-16 0.00000000000000D+00 + 3 4 1 6 -0.33225254017508D-17 0.00000000000000D+00 + 1 5 1 6 -0.67035233688691D+01 -0.33246417727665D-15 + 2 5 1 6 0.41606874521476D+01 0.23458931492135D-16 + 3 5 1 6 0.41606874521476D+01 -0.59967002438081D-18 + 1 6 1 6 0.29966360174232D+02 0.00000000000000D+00 + 2 6 1 6 -0.39279255125171D-13 0.00000000000000D+00 + 3 6 1 6 -0.53490340233371D-13 0.00000000000000D+00 + 1 7 1 6 -0.67035233688691D+01 0.14831545582671D-15 + 2 7 1 6 -0.41606874521476D+01 0.26428751250880D-16 + 3 7 1 6 -0.41606874521476D+01 -0.65960614543970D-18 + 1 8 1 6 0.30438985059452D+01 0.00000000000000D+00 + 2 8 1 6 0.11139441033496D-15 0.00000000000000D+00 + 3 8 1 6 0.93830335176333D-16 0.00000000000000D+00 + 2 10 1 6 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 6 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 6 -0.41606874521476D+01 -0.44889632713756D-16 + 2 1 2 6 -0.67035233688691D+01 0.42424036972211D-15 + 3 1 2 6 0.41606874521476D+01 -0.75367164180373D-17 + 1 2 2 6 -0.39730467052491D-17 0.00000000000000D+00 + 2 2 2 6 0.30438985059452D+01 0.00000000000000D+00 + 3 2 2 6 -0.10165775801562D-15 0.00000000000000D+00 + 1 3 2 6 0.41606874521476D+01 0.26045536376565D-16 + 2 3 2 6 -0.67035233688691D+01 0.33274809314949D-15 + 3 3 2 6 0.41606874521476D+01 0.79113000627882D-18 + 1 4 2 6 0.54391989533800D-16 0.00000000000000D+00 + 2 4 2 6 -0.31063173304380D+01 0.00000000000000D+00 + 3 4 2 6 0.10407971655497D-15 0.00000000000000D+00 + 1 5 2 6 0.41606874521476D+01 0.23458931492135D-16 + 2 5 2 6 -0.67035233688691D+01 0.50849342848269D-15 + 3 5 2 6 -0.41606874521476D+01 0.20612686233892D-17 + 1 6 2 6 -0.39279255125171D-13 0.00000000000000D+00 + 2 6 2 6 0.29966360174232D+02 0.00000000000000D+00 + 3 6 2 6 -0.60328515971904D-13 0.00000000000000D+00 + 1 7 2 6 -0.41606874521476D+01 0.26428751250880D-16 + 2 7 2 6 -0.67035233688691D+01 -0.32336104505751D-15 + 3 7 2 6 -0.41606874521476D+01 0.32316394530375D-17 + 1 8 2 6 0.11139441033496D-15 0.00000000000000D+00 + 2 8 2 6 -0.31063173304380D+01 0.00000000000000D+00 + 3 8 2 6 -0.45420735317185D-16 0.00000000000000D+00 + 1 10 2 6 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 6 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 6 0.41606874521476D+01 -0.13800117017639D-16 + 2 1 3 6 0.41606874521476D+01 -0.75367164180373D-17 + 3 1 3 6 -0.67035233688691D+01 0.47585894042228D-17 + 1 2 3 6 0.54392045782068D-16 0.00000000000000D+00 + 2 2 3 6 -0.10165775801562D-15 0.00000000000000D+00 + 3 2 3 6 -0.31063173304380D+01 0.00000000000000D+00 + 1 3 3 6 -0.41606874521476D+01 -0.12049499578121D-16 + 2 3 3 6 0.41606874521476D+01 0.79113000627882D-18 + 3 3 3 6 -0.67035233688691D+01 -0.39401782457149D-15 + 1 4 3 6 -0.33225254017508D-17 0.00000000000000D+00 + 2 4 3 6 0.10407971655497D-15 0.00000000000000D+00 + 3 4 3 6 0.30438985059452D+01 0.00000000000000D+00 + 1 5 3 6 0.41606874521476D+01 -0.59967002438081D-18 + 2 5 3 6 -0.41606874521476D+01 0.20612686233892D-17 + 3 5 3 6 -0.67035233688691D+01 -0.21855894460513D-15 + 1 6 3 6 -0.53490340233371D-13 0.00000000000000D+00 + 2 6 3 6 -0.60328515971904D-13 0.00000000000000D+00 + 3 6 3 6 0.29966360174232D+02 0.00000000000000D+00 + 1 7 3 6 -0.41606874521476D+01 -0.65960614543970D-18 + 2 7 3 6 -0.41606874521476D+01 0.32316394530375D-17 + 3 7 3 6 -0.67035233688691D+01 0.40315187700303D-15 + 1 8 3 6 0.93830335176333D-16 0.00000000000000D+00 + 2 8 3 6 -0.45420735317185D-16 0.00000000000000D+00 + 3 8 3 6 -0.31063173304380D+01 0.00000000000000D+00 + 1 10 3 6 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 6 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 7 -0.31063173304380D+01 0.00000000000000D+00 + 2 1 1 7 0.31680037884777D-14 0.00000000000000D+00 + 3 1 1 7 -0.33057258728080D-17 0.00000000000000D+00 + 1 2 1 7 -0.67035233688691D+01 0.14178103392371D-15 + 2 2 1 7 0.41606874521476D+01 0.43160033745609D-16 + 3 2 1 7 -0.41606874521476D+01 0.13817792791671D-16 + 1 3 1 7 -0.31063173304380D+01 0.00000000000000D+00 + 2 3 1 7 -0.39562470725880D-17 0.00000000000000D+00 + 3 3 1 7 0.31677863851468D-14 0.00000000000000D+00 + 1 4 1 7 -0.67035233688691D+01 -0.11313469602419D-15 + 2 4 1 7 -0.41606874521476D+01 0.41695869779505D-16 + 3 4 1 7 0.41606874521476D+01 0.16778515864242D-16 + 1 5 1 7 0.30438985059452D+01 0.00000000000000D+00 + 2 5 1 7 0.10200929023445D-15 0.00000000000000D+00 + 3 5 1 7 0.10417769541821D-15 0.00000000000000D+00 + 1 6 1 7 -0.67035233688691D+01 -0.14831545582671D-15 + 2 6 1 7 -0.41606874521476D+01 -0.26428751250880D-16 + 3 6 1 7 -0.41606874521476D+01 0.65960614543970D-18 + 1 7 1 7 0.29966360174232D+02 0.00000000000000D+00 + 2 7 1 7 -0.21404292320834D-13 0.00000000000000D+00 + 3 7 1 7 -0.36585183949874D-14 0.00000000000000D+00 + 1 8 1 7 -0.67035233688691D+01 -0.52679966283560D-15 + 2 8 1 7 0.41606874521476D+01 0.41241895605521D-16 + 3 8 1 7 0.41606874521476D+01 -0.23251293217990D-17 + 2 10 1 7 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 7 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 7 0.31680037884777D-14 0.00000000000000D+00 + 2 1 2 7 -0.31063173304380D+01 0.00000000000000D+00 + 3 1 2 7 0.10451339742437D-15 0.00000000000000D+00 + 1 2 2 7 0.41606874521476D+01 0.43160033745609D-16 + 2 2 2 7 -0.67035233688691D+01 0.28568755417992D-15 + 3 2 2 7 0.41606874521476D+01 0.29213330026321D-17 + 1 3 2 7 -0.39562470725880D-17 0.00000000000000D+00 + 2 3 2 7 0.30438985059452D+01 0.00000000000000D+00 + 3 3 2 7 -0.10122407714662D-15 0.00000000000000D+00 + 1 4 2 7 -0.41606874521476D+01 0.41695869779505D-16 + 2 4 2 7 -0.67035233688691D+01 -0.19952264181056D-15 + 3 4 2 7 0.41606874521476D+01 -0.83802698854647D-17 + 1 5 2 7 0.10200929023445D-15 0.00000000000000D+00 + 2 5 2 7 -0.31063173304380D+01 0.00000000000000D+00 + 3 5 2 7 -0.31557011861625D-14 0.00000000000000D+00 + 1 6 2 7 -0.41606874521476D+01 -0.26428751250880D-16 + 2 6 2 7 -0.67035233688691D+01 0.32336104505751D-15 + 3 6 2 7 -0.41606874521476D+01 -0.32316394530375D-17 + 1 7 2 7 -0.21404292320834D-13 0.00000000000000D+00 + 2 7 2 7 0.29966360174232D+02 0.00000000000000D+00 + 3 7 2 7 -0.12432278292563D-12 0.00000000000000D+00 + 1 8 2 7 0.41606874521476D+01 0.41241895605521D-16 + 2 8 2 7 -0.67035233688691D+01 -0.41704622620418D-15 + 3 8 2 7 -0.41606874521476D+01 -0.52217246689731D-17 + 1 10 2 7 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 7 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 7 -0.33057258728080D-17 0.00000000000000D+00 + 2 1 3 7 0.10451339742437D-15 0.00000000000000D+00 + 3 1 3 7 0.30438985059452D+01 0.00000000000000D+00 + 1 2 3 7 -0.41606874521476D+01 0.13817792791671D-16 + 2 2 3 7 0.41606874521476D+01 0.29213330026321D-17 + 3 2 3 7 -0.67035233688691D+01 0.89038911652829D-16 + 1 3 3 7 0.31677863851468D-14 0.00000000000000D+00 + 2 3 3 7 -0.10122407714662D-15 0.00000000000000D+00 + 3 3 3 7 -0.31063173304380D+01 0.00000000000000D+00 + 1 4 3 7 0.41606874521476D+01 0.16778515864242D-16 + 2 4 3 7 0.41606874521476D+01 -0.83802698854647D-17 + 3 4 3 7 -0.67035233688691D+01 -0.48293550061784D-17 + 1 5 3 7 0.10417769541821D-15 0.00000000000000D+00 + 2 5 3 7 -0.31557011861625D-14 0.00000000000000D+00 + 3 5 3 7 -0.31063173304380D+01 0.00000000000000D+00 + 1 6 3 7 -0.41606874521476D+01 0.65960614543970D-18 + 2 6 3 7 -0.41606874521476D+01 -0.32316394530375D-17 + 3 6 3 7 -0.67035233688691D+01 -0.40315187700303D-15 + 1 7 3 7 -0.36585183949874D-14 0.00000000000000D+00 + 2 7 3 7 -0.12432278292563D-12 0.00000000000000D+00 + 3 7 3 7 0.29966360174232D+02 0.00000000000000D+00 + 1 8 3 7 0.41606874521476D+01 -0.23251293217990D-17 + 2 8 3 7 -0.41606874521476D+01 -0.52217246689731D-17 + 3 8 3 7 -0.67035233688691D+01 0.30698122587724D-15 + 1 10 3 7 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 7 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 8 -0.67035233688691D+01 0.39934472439644D-15 + 2 1 1 8 0.41606874521476D+01 -0.40302458076220D-16 + 3 1 1 8 -0.41606874521476D+01 -0.15215616604896D-16 + 1 2 1 8 -0.31063173304380D+01 0.00000000000000D+00 + 2 2 1 8 0.54391989533800D-16 0.00000000000000D+00 + 3 2 1 8 -0.33225254017508D-17 0.00000000000000D+00 + 1 3 1 8 -0.67035233688691D+01 -0.50539036945106D-15 + 2 3 1 8 -0.41606874521476D+01 -0.39572529398033D-16 + 3 3 1 8 0.41606874521476D+01 -0.17601436825182D-16 + 1 4 1 8 -0.31063173304380D+01 0.00000000000000D+00 + 2 4 1 8 -0.39730467052491D-17 0.00000000000000D+00 + 3 4 1 8 0.54392045782068D-16 0.00000000000000D+00 + 1 5 1 8 -0.67035233688691D+01 -0.51285312389453D-15 + 2 5 1 8 -0.41606874521476D+01 -0.28432917741085D-16 + 3 5 1 8 -0.41606874521476D+01 -0.23907202162473D-16 + 1 6 1 8 0.30438985059452D+01 0.00000000000000D+00 + 2 6 1 8 0.11139441033496D-15 0.00000000000000D+00 + 3 6 1 8 0.93830335176333D-16 0.00000000000000D+00 + 1 7 1 8 -0.67035233688691D+01 0.52679966283560D-15 + 2 7 1 8 0.41606874521476D+01 -0.41241895605521D-16 + 3 7 1 8 0.41606874521476D+01 0.23251293217990D-17 + 1 8 1 8 0.29966360174232D+02 0.00000000000000D+00 + 2 8 1 8 0.21316282072803D-13 0.00000000000000D+00 + 3 8 1 8 -0.10658141036402D-13 0.00000000000000D+00 + 2 10 1 8 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 8 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 8 0.41606874521476D+01 -0.40302458076220D-16 + 2 1 2 8 -0.67035233688691D+01 0.52321790384959D-15 + 3 1 2 8 0.41606874521476D+01 -0.55892410757376D-17 + 1 2 2 8 0.54391989533800D-16 0.00000000000000D+00 + 2 2 2 8 -0.31063173304380D+01 0.00000000000000D+00 + 3 2 2 8 0.10407971655497D-15 0.00000000000000D+00 + 1 3 2 8 -0.41606874521476D+01 -0.39572529398033D-16 + 2 3 2 8 -0.67035233688691D+01 0.41658344486869D-15 + 3 3 2 8 0.41606874521476D+01 0.87632035959732D-17 + 1 4 2 8 -0.39730467052491D-17 0.00000000000000D+00 + 2 4 2 8 0.30438985059452D+01 0.00000000000000D+00 + 3 4 2 8 -0.10165775801562D-15 0.00000000000000D+00 + 1 5 2 8 -0.41606874521476D+01 -0.28432917741085D-16 + 2 5 2 8 -0.67035233688691D+01 -0.30097328434663D-15 + 3 5 2 8 -0.41606874521476D+01 -0.67004396849302D-17 + 1 6 2 8 0.11139441033496D-15 0.00000000000000D+00 + 2 6 2 8 -0.31063173304380D+01 0.00000000000000D+00 + 3 6 2 8 -0.45420735317185D-16 0.00000000000000D+00 + 1 7 2 8 0.41606874521476D+01 -0.41241895605521D-16 + 2 7 2 8 -0.67035233688691D+01 0.41704622620418D-15 + 3 7 2 8 -0.41606874521476D+01 0.52217246689731D-17 + 1 8 2 8 0.21316282072803D-13 0.00000000000000D+00 + 2 8 2 8 0.29966360174232D+02 0.00000000000000D+00 + 3 8 2 8 -0.14210854715202D-13 0.00000000000000D+00 + 1 10 2 8 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 8 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 8 -0.41606874521476D+01 -0.15215616604896D-16 + 2 1 3 8 0.41606874521476D+01 -0.55892410757376D-17 + 3 1 3 8 -0.67035233688691D+01 -0.30727316982777D-15 + 1 2 3 8 -0.33225254017508D-17 0.00000000000000D+00 + 2 2 3 8 0.10407971655497D-15 0.00000000000000D+00 + 3 2 3 8 0.30438985059452D+01 0.00000000000000D+00 + 1 3 3 8 0.41606874521476D+01 -0.17601436825182D-16 + 2 3 3 8 0.41606874521476D+01 0.87632035959732D-17 + 3 3 3 8 -0.67035233688691D+01 0.75857539075331D-16 + 1 4 3 8 0.54392045782068D-16 0.00000000000000D+00 + 2 4 3 8 -0.10165775801562D-15 0.00000000000000D+00 + 3 4 3 8 -0.31063173304380D+01 0.00000000000000D+00 + 1 5 3 8 -0.41606874521476D+01 -0.23907202162473D-16 + 2 5 3 8 -0.41606874521476D+01 -0.67004396849302D-17 + 3 5 3 8 -0.67035233688691D+01 0.41008882278420D-15 + 1 6 3 8 0.93830335176333D-16 0.00000000000000D+00 + 2 6 3 8 -0.45420735317185D-16 0.00000000000000D+00 + 3 6 3 8 -0.31063173304380D+01 0.00000000000000D+00 + 1 7 3 8 0.41606874521476D+01 0.23251293217990D-17 + 2 7 3 8 -0.41606874521476D+01 0.52217246689731D-17 + 3 7 3 8 -0.67035233688691D+01 -0.30698122587724D-15 + 1 8 3 8 -0.10658141036402D-13 0.00000000000000D+00 + 2 8 3 8 -0.14210854715202D-13 0.00000000000000D+00 + 3 8 3 8 0.29966360174232D+02 0.00000000000000D+00 + 1 10 3 8 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 8 0.00000000000000D+00 0.00000000000000D+00 + 2 1 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 1 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 2 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 2 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 3 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 3 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 4 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 4 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 5 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 5 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 6 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 6 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 7 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 7 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 8 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 8 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 10 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 10 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 1 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 2 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 2 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 3 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 3 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 4 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 4 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 5 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 5 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 6 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 6 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 7 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 7 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 8 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 8 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 10 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 1 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 2 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 2 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 3 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 3 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 4 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 4 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 5 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 5 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 6 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 6 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 7 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 7 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 8 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 8 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 10 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 10 0.00000000000000D+00 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 2.50000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.30153433290558D+02 -0.87231897191511D-15 + 2 1 1 1 0.30448434863601D-13 0.10066867700326D-14 + 3 1 1 1 -0.99496844011941D-13 -0.62614864804411D-16 + 1 2 1 1 -0.67047122384925D+01 0.83534293151601D-01 + 2 2 1 1 0.38716693612508D+01 -0.31552325297277D+00 + 3 2 1 1 0.38716693612508D+01 -0.31552325297277D+00 + 1 3 1 1 0.29016431760353D+01 0.16819265176961D-05 + 2 3 1 1 0.38721580294534D-14 0.65078597073068D-14 + 3 3 1 1 0.15877336597639D-15 0.60405029073314D-15 + 1 4 1 1 -0.67047122384927D+01 0.83534293151599D-01 + 2 4 1 1 -0.38716693612508D+01 0.31552325297277D+00 + 3 4 1 1 -0.38716693612508D+01 0.31552325297277D+00 + 1 5 1 1 -0.15532572632330D+01 -0.15532472887958D+01 + 2 5 1 1 0.13100809725266D-13 0.46015655048101D-14 + 3 5 1 1 0.67030249612829D-14 -0.88930689015343D-14 + 1 6 1 1 -0.67047137909332D+01 -0.83523794889827D-01 + 2 6 1 1 -0.38716648139253D+01 -0.31551987362058D+00 + 3 6 1 1 0.38716693612509D+01 0.31552325297277D+00 + 1 7 1 1 -0.15532572632329D+01 -0.15532472887957D+01 + 2 7 1 1 -0.14245951874390D-13 0.19317796717248D-13 + 3 7 1 1 0.78127159165062D-15 -0.66737401022194D-15 + 1 8 1 1 -0.67047137909332D+01 -0.83523794889825D-01 + 2 8 1 1 0.38716648139254D+01 0.31551987362057D+00 + 3 8 1 1 -0.38716693612508D+01 -0.31552325297277D+00 + 1 1 2 1 0.30448434863601D-13 -0.86735886142644D-15 + 2 1 2 1 0.29748148531856D+02 -0.17905445894252D-14 + 3 1 2 1 -0.57176776192393D-05 0.77904677832760D-06 + 1 2 2 1 0.38716693612508D+01 -0.31552325297277D+00 + 2 2 2 1 -0.65474652452080D+01 0.13709621260802D+00 + 3 2 2 1 -0.39444844116832D+01 0.25133273416689D+00 + 1 3 2 1 0.38721580294534D-14 -0.59621249932920D-14 + 2 3 2 1 -0.29057838607958D+01 0.12174582963269D-04 + 3 3 2 1 -0.26766235729414D-05 -0.25009362428714D-05 + 1 4 2 1 -0.38716693612508D+01 0.31552325297277D+00 + 2 4 2 1 -0.65474652452079D+01 0.13709621260803D+00 + 3 4 2 1 -0.39444844116832D+01 0.25133273416689D+00 + 1 5 2 1 0.37044165915291D-14 0.13997958638547D-13 + 2 5 2 1 0.14597079068815D+01 0.14597118725144D+01 + 3 5 2 1 -0.88753041924817D+00 0.88752500897119D+00 + 1 6 2 1 -0.38716648139253D+01 -0.31551987362058D+00 + 2 6 2 1 -0.65474646301737D+01 -0.13708488829871D+00 + 3 6 2 1 0.39444842409820D+01 0.25131904127393D+00 + 1 7 2 1 0.36018714929665D-14 0.14699733498920D-14 + 2 7 2 1 -0.15081373417216D+01 -0.15081346133458D+01 + 3 7 2 1 0.88754141448376D+00 -0.88753547737993D+00 + 1 8 2 1 0.38716648139254D+01 0.31551987362057D+00 + 2 8 2 1 -0.65474646301737D+01 -0.13708488829870D+00 + 3 8 2 1 0.39444842409819D+01 0.25131904127394D+00 + 1 1 3 1 -0.99496844011941D-13 -0.62614864804411D-16 + 2 1 3 1 -0.57176776192393D-05 -0.77904677937189D-06 + 3 1 3 1 0.29748148531855D+02 -0.73930091787830D-15 + 1 2 3 1 0.38716693612508D+01 -0.31552325297277D+00 + 2 2 3 1 -0.39444844116832D+01 0.25133273416689D+00 + 3 2 3 1 -0.65474652452080D+01 0.13709621260802D+00 + 1 3 3 1 0.15877336597639D-15 0.60405029073314D-15 + 2 3 3 1 -0.26766235729414D-05 0.25009362435495D-05 + 3 3 3 1 -0.29057838607958D+01 -0.12174582962679D-04 + 1 4 3 1 -0.38716693612508D+01 0.31552325297277D+00 + 2 4 3 1 -0.39444844116832D+01 0.25133273416689D+00 + 3 4 3 1 -0.65474652452080D+01 0.13709621260802D+00 + 1 5 3 1 0.67030249612829D-14 -0.88930689015343D-14 + 2 5 3 1 0.88752500897119D+00 -0.88753041924817D+00 + 3 5 3 1 -0.15081346133458D+01 -0.15081373417217D+01 + 1 6 3 1 0.38716693612509D+01 0.31552325297277D+00 + 2 6 3 1 0.39444842409820D+01 0.25131904127393D+00 + 3 6 3 1 -0.65474652452080D+01 -0.13709621260802D+00 + 1 7 3 1 0.78127159165062D-15 -0.66737401022194D-15 + 2 7 3 1 -0.88753547737993D+00 0.88754141448376D+00 + 3 7 3 1 0.14597118725144D+01 0.14597079068815D+01 + 1 8 3 1 -0.38716693612508D+01 -0.31552325297277D+00 + 2 8 3 1 0.39444842409819D+01 0.25131904127394D+00 + 3 8 3 1 -0.65474652452080D+01 -0.13709621260802D+00 + 1 1 1 2 -0.67047122384925D+01 -0.83534293151601D-01 + 2 1 1 2 0.38716693612508D+01 0.31552325297277D+00 + 3 1 1 2 0.38716693612508D+01 0.31552325297277D+00 + 1 2 1 2 0.30153433290558D+02 0.19816599772046D-17 + 2 2 1 2 -0.79740081168748D-13 -0.93701885100864D-15 + 3 2 1 2 -0.56860957340933D-13 0.00000000000000D+00 + 1 3 1 2 -0.67047122384927D+01 -0.83534293151599D-01 + 2 3 1 2 -0.38716693612508D+01 -0.31552325297277D+00 + 3 3 1 2 -0.38716693612508D+01 -0.31552325297277D+00 + 1 4 1 2 0.29016431760353D+01 0.16819265181840D-05 + 2 4 1 2 0.38721580294532D-14 -0.61637865971675D-14 + 3 4 1 2 0.15877336597664D-15 -0.71174022252588D-16 + 1 5 1 2 -0.83523794889825D-01 -0.67047137909332D+01 + 2 5 1 2 -0.31551987362058D+00 -0.38716648139253D+01 + 3 5 1 2 0.31552325297277D+00 0.38716693612509D+01 + 1 6 1 2 -0.15532572632330D+01 -0.15532472887958D+01 + 2 6 1 2 0.44898126451742D-14 0.13970358922879D-13 + 3 6 1 2 0.11022283746417D-14 -0.46037461762837D-15 + 1 7 1 2 -0.83523794889828D-01 -0.67047137909332D+01 + 2 7 1 2 0.31551987362057D+00 0.38716648139254D+01 + 3 7 1 2 -0.31552325297277D+00 -0.38716693612508D+01 + 1 8 1 2 -0.15532572632329D+01 -0.15532472887957D+01 + 2 8 1 2 0.80425467510325D-14 -0.78575568501274D-14 + 3 8 1 2 -0.92072577824607D-15 -0.23892469381548D-15 + 1 1 2 2 0.38716693612508D+01 0.31552325297277D+00 + 2 1 2 2 -0.65474652452080D+01 -0.13709621260802D+00 + 3 1 2 2 -0.39444844116832D+01 -0.25133273416689D+00 + 1 2 2 2 -0.79740081168748D-13 0.93702678045036D-15 + 2 2 2 2 0.29748148531856D+02 -0.30911415886804D-18 + 3 2 2 2 -0.57176776903976D-05 -0.77904677884974D-06 + 1 3 2 2 -0.38716693612508D+01 -0.31552325297277D+00 + 2 3 2 2 -0.65474652452079D+01 -0.13709621260803D+00 + 3 3 2 2 -0.39444844116832D+01 -0.25133273416689D+00 + 1 4 2 2 0.38721580294532D-14 0.63061981034313D-14 + 2 4 2 2 -0.29057838607958D+01 0.12174582962693D-04 + 3 4 2 2 -0.26766235760501D-05 0.25009362432105D-05 + 1 5 2 2 -0.31551987362058D+00 -0.38716648139253D+01 + 2 5 2 2 -0.13708488829871D+00 -0.65474646301737D+01 + 3 5 2 2 0.25131904127393D+00 0.39444842409820D+01 + 1 6 2 2 0.13886205778911D-13 0.45739657891425D-14 + 2 6 2 2 0.14597079068815D+01 0.14597118725144D+01 + 3 6 2 2 0.88752500897119D+00 -0.88753041924817D+00 + 1 7 2 2 0.31551987362057D+00 0.38716648139254D+01 + 2 7 2 2 -0.13708488829870D+00 -0.65474646301737D+01 + 3 7 2 2 0.25131904127394D+00 0.39444842409820D+01 + 1 8 2 2 -0.98052766163236D-14 0.99902665172288D-14 + 2 8 2 2 -0.15081373417217D+01 -0.15081346133458D+01 + 3 8 2 2 -0.88753547737993D+00 0.88754141448376D+00 + 1 1 3 2 0.38716693612508D+01 0.31552325297277D+00 + 2 1 3 2 -0.39444844116832D+01 -0.25133273416689D+00 + 3 1 3 2 -0.65474652452080D+01 -0.13709621260802D+00 + 1 2 3 2 -0.56860957340933D-13 0.00000000000000D+00 + 2 2 3 2 -0.57176776903976D-05 0.77904677884974D-06 + 3 2 3 2 0.29748148531855D+02 -0.30871711218358D-18 + 1 3 3 2 -0.38716693612508D+01 -0.31552325297277D+00 + 2 3 3 2 -0.39444844116832D+01 -0.25133273416689D+00 + 3 3 3 2 -0.65474652452080D+01 -0.13709621260802D+00 + 1 4 3 2 0.15877336597664D-15 -0.71174022252588D-16 + 2 4 3 2 -0.26766235760501D-05 -0.25009362432104D-05 + 3 4 3 2 -0.29057838607958D+01 0.12174582962693D-04 + 1 5 3 2 0.31552325297277D+00 0.38716693612509D+01 + 2 5 3 2 0.25131904127393D+00 0.39444842409820D+01 + 3 5 3 2 -0.13709621260802D+00 -0.65474652452080D+01 + 1 6 3 2 0.11022283746417D-14 -0.46037461762837D-15 + 2 6 3 2 -0.88753041924817D+00 0.88752500897119D+00 + 3 6 3 2 -0.15081373417216D+01 -0.15081346133458D+01 + 1 7 3 2 -0.31552325297277D+00 -0.38716693612508D+01 + 2 7 3 2 0.25131904127394D+00 0.39444842409820D+01 + 3 7 3 2 -0.13709621260802D+00 -0.65474652452080D+01 + 1 8 3 2 -0.92072577824607D-15 -0.23892469381548D-15 + 2 8 3 2 0.88754141448376D+00 -0.88753547737993D+00 + 3 8 3 2 0.14597079068815D+01 0.14597118725144D+01 + 1 1 1 3 0.29016431760353D+01 -0.16819265176961D-05 + 2 1 1 3 0.38721580294534D-14 0.59621249932920D-14 + 3 1 1 3 0.15877336597639D-15 -0.60405029073314D-15 + 1 2 1 3 -0.67047122384927D+01 0.83534293151599D-01 + 2 2 1 3 -0.38716693612508D+01 0.31552325297277D+00 + 3 2 1 3 -0.38716693612508D+01 0.31552325297277D+00 + 1 3 1 3 0.30153433290558D+02 -0.81680782068385D-15 + 2 3 1 3 -0.90343830215616D-13 0.83166943433908D-15 + 3 3 1 3 -0.20861005526796D-16 0.11245668099769D-15 + 1 4 1 3 -0.67047122384925D+01 0.83534293151601D-01 + 2 4 1 3 0.38716693612509D+01 -0.31552325297277D+00 + 3 4 1 3 0.38716693612508D+01 -0.31552325297277D+00 + 1 5 1 3 -0.15532572632329D+01 -0.15532472887957D+01 + 2 5 1 3 -0.24281229948609D-14 -0.67264500911312D-15 + 3 5 1 3 -0.61541444647454D-15 -0.73503880923503D-15 + 1 6 1 3 -0.67047137909332D+01 -0.83523794889826D-01 + 2 6 1 3 0.38716648139254D+01 0.31551987362057D+00 + 3 6 1 3 -0.38716693612508D+01 -0.31552325297277D+00 + 1 7 1 3 -0.15532572632330D+01 -0.15532472887958D+01 + 2 7 1 3 0.14829912149372D-13 0.34672395936291D-14 + 3 7 1 3 -0.51150207584738D-14 0.97553336141435D-14 + 1 8 1 3 -0.67047137909332D+01 -0.83523794889824D-01 + 2 8 1 3 -0.38716648139253D+01 -0.31551987362058D+00 + 3 8 1 3 0.38716693612508D+01 0.31552325297277D+00 + 1 1 2 3 0.38721580294534D-14 -0.65078597073068D-14 + 2 1 2 3 -0.29057838607958D+01 -0.12174582963269D-04 + 3 1 2 3 -0.26766235729414D-05 -0.25009362435495D-05 + 1 2 2 3 -0.38716693612508D+01 0.31552325297277D+00 + 2 2 2 3 -0.65474652452079D+01 0.13709621260803D+00 + 3 2 2 3 -0.39444844116832D+01 0.25133273416689D+00 + 1 3 2 3 -0.90343830215616D-13 -0.10423761971199D-14 + 2 3 2 3 0.29748148531856D+02 -0.70634156888143D-15 + 3 3 2 3 -0.57176776334501D-05 0.77904677829369D-06 + 1 4 2 3 0.38716693612509D+01 -0.31552325297277D+00 + 2 4 2 3 -0.65474652452080D+01 0.13709621260802D+00 + 3 4 2 3 -0.39444844116832D+01 0.25133273416689D+00 + 1 5 2 3 0.15419700372495D-13 -0.18520468376469D-13 + 2 5 2 3 -0.15081373417216D+01 -0.15081346133458D+01 + 3 5 2 3 0.88754141448376D+00 -0.88753547737993D+00 + 1 6 2 3 0.38716648139254D+01 0.31551987362057D+00 + 2 6 2 3 -0.65474646301737D+01 -0.13708488829870D+00 + 3 6 2 3 0.39444842409820D+01 0.25131904127394D+00 + 1 7 2 3 0.54335190156348D-14 0.12863632727366D-13 + 2 7 2 3 0.14597079068815D+01 0.14597118725144D+01 + 3 7 2 3 -0.88753041924817D+00 0.88752500897119D+00 + 1 8 2 3 -0.38716648139253D+01 -0.31551987362058D+00 + 2 8 2 3 -0.65474646301737D+01 -0.13708488829871D+00 + 3 8 2 3 0.39444842409819D+01 0.25131904127393D+00 + 1 1 3 3 0.15877336597639D-15 -0.60405029073314D-15 + 2 1 3 3 -0.26766235729414D-05 0.25009362428714D-05 + 3 1 3 3 -0.29057838607958D+01 -0.12174582962706D-04 + 1 2 3 3 -0.38716693612508D+01 0.31552325297277D+00 + 2 2 3 3 -0.39444844116832D+01 0.25133273416689D+00 + 3 2 3 3 -0.65474652452080D+01 0.13709621260802D+00 + 1 3 3 3 -0.20861005526796D-16 0.11245668099769D-15 + 2 3 3 3 -0.57176776334501D-05 -0.77904677940579D-06 + 3 3 3 3 0.29748148531855D+02 -0.17558499213824D-14 + 1 4 3 3 0.38716693612508D+01 -0.31552325297277D+00 + 2 4 3 3 -0.39444844116832D+01 0.25133273416689D+00 + 3 4 3 3 -0.65474652452080D+01 0.13709621260802D+00 + 1 5 3 3 -0.61541444647454D-15 -0.73503880923503D-15 + 2 5 3 3 -0.88753547737993D+00 0.88754141448376D+00 + 3 5 3 3 0.14597118725144D+01 0.14597079068815D+01 + 1 6 3 3 -0.38716693612508D+01 -0.31552325297277D+00 + 2 6 3 3 0.39444842409820D+01 0.25131904127394D+00 + 3 6 3 3 -0.65474652452080D+01 -0.13709621260803D+00 + 1 7 3 3 -0.51150207584738D-14 0.97553336141435D-14 + 2 7 3 3 0.88752500897119D+00 -0.88753041924817D+00 + 3 7 3 3 -0.15081346133458D+01 -0.15081373417217D+01 + 1 8 3 3 0.38716693612508D+01 0.31552325297277D+00 + 2 8 3 3 0.39444842409819D+01 0.25131904127393D+00 + 3 8 3 3 -0.65474652452080D+01 -0.13709621260803D+00 + 1 1 1 4 -0.67047122384927D+01 -0.83534293151599D-01 + 2 1 1 4 -0.38716693612508D+01 -0.31552325297277D+00 + 3 1 1 4 -0.38716693612508D+01 -0.31552325297277D+00 + 1 2 1 4 0.29016431760353D+01 0.16819265181837D-05 + 2 2 1 4 0.38721580294532D-14 -0.63061981034313D-14 + 3 2 1 4 0.15877336597664D-15 0.71174022252588D-16 + 1 3 1 4 -0.67047122384925D+01 -0.83534293151601D-01 + 2 3 1 4 0.38716693612509D+01 0.31552325297277D+00 + 3 3 1 4 0.38716693612508D+01 0.31552325297277D+00 + 1 4 1 4 0.30153433290558D+02 0.19816599772046D-17 + 2 4 1 4 -0.58365434059706D-13 -0.93701885100864D-15 + 3 4 1 4 -0.49813244554516D-13 0.00000000000000D+00 + 1 5 1 4 -0.83523794889826D-01 -0.67047137909332D+01 + 2 5 1 4 0.31551987362057D+00 0.38716648139254D+01 + 3 5 1 4 -0.31552325297277D+00 -0.38716693612508D+01 + 1 6 1 4 -0.15532572632329D+01 -0.15532472887957D+01 + 2 6 1 4 0.10262992800283D-13 -0.91898244796776D-14 + 3 6 1 4 -0.26066349563689D-15 -0.33390080412521D-15 + 1 7 1 4 -0.83523794889825D-01 -0.67047137909332D+01 + 2 7 1 4 -0.31551987362058D+00 -0.38716648139253D+01 + 3 7 1 4 0.31552325297277D+00 0.38716693612508D+01 + 1 8 1 4 -0.15532572632330D+01 -0.15532472887958D+01 + 2 8 1 4 0.38874299181412D-14 0.14053191968857D-13 + 3 8 1 4 -0.67412846475854D-15 0.87189301192182D-15 + 1 1 2 4 -0.38716693612508D+01 -0.31552325297277D+00 + 2 1 2 4 -0.65474652452079D+01 -0.13709621260803D+00 + 3 1 2 4 -0.39444844116832D+01 -0.25133273416689D+00 + 1 2 2 4 0.38721580294532D-14 0.61637865971675D-14 + 2 2 2 4 -0.29057838607958D+01 0.12174582962693D-04 + 3 2 2 4 -0.26766235760501D-05 0.25009362432104D-05 + 1 3 2 4 0.38716693612509D+01 0.31552325297277D+00 + 2 3 2 4 -0.65474652452080D+01 -0.13709621260802D+00 + 3 3 2 4 -0.39444844116832D+01 -0.25133273416689D+00 + 1 4 2 4 -0.58365434059706D-13 0.93702678045036D-15 + 2 4 2 4 0.29748148531856D+02 -0.30911415886804D-18 + 3 4 2 4 -0.57176776795338D-05 -0.77904677884974D-06 + 1 5 2 4 0.31551987362057D+00 0.38716648139254D+01 + 2 5 2 4 -0.13708488829870D+00 -0.65474646301737D+01 + 3 5 2 4 0.25131904127394D+00 0.39444842409820D+01 + 1 6 2 4 -0.75848305670733D-14 0.86579988876786D-14 + 2 6 2 4 -0.15081373417217D+01 -0.15081346133458D+01 + 3 6 2 4 -0.88753547737993D+00 0.88754141448376D+00 + 1 7 2 4 -0.31551987362058D+00 -0.38716648139253D+01 + 2 7 2 4 -0.13708488829871D+00 -0.65474646301737D+01 + 3 7 2 4 0.25131904127393D+00 0.39444842409820D+01 + 1 8 2 4 0.13283823051878D-13 0.46567988351204D-14 + 2 8 2 4 0.14597079068815D+01 0.14597118725144D+01 + 3 8 2 4 0.88752500897119D+00 -0.88753041924817D+00 + 1 1 3 4 -0.38716693612508D+01 -0.31552325297277D+00 + 2 1 3 4 -0.39444844116832D+01 -0.25133273416689D+00 + 3 1 3 4 -0.65474652452080D+01 -0.13709621260802D+00 + 1 2 3 4 0.15877336597664D-15 0.71174022252588D-16 + 2 2 3 4 -0.26766235760501D-05 -0.25009362432105D-05 + 3 2 3 4 -0.29057838607958D+01 0.12174582962693D-04 + 1 3 3 4 0.38716693612508D+01 0.31552325297277D+00 + 2 3 3 4 -0.39444844116832D+01 -0.25133273416689D+00 + 3 3 3 4 -0.65474652452080D+01 -0.13709621260802D+00 + 1 4 3 4 -0.49813244554516D-13 0.00000000000000D+00 + 2 4 3 4 -0.57176776795338D-05 0.77904677884974D-06 + 3 4 3 4 0.29748148531855D+02 -0.30871711218358D-18 + 1 5 3 4 -0.31552325297277D+00 -0.38716693612508D+01 + 2 5 3 4 0.25131904127394D+00 0.39444842409820D+01 + 3 5 3 4 -0.13709621260803D+00 -0.65474652452080D+01 + 1 6 3 4 -0.26066349563689D-15 -0.33390080412521D-15 + 2 6 3 4 0.88754141448376D+00 -0.88753547737993D+00 + 3 6 3 4 0.14597079068815D+01 0.14597118725144D+01 + 1 7 3 4 0.31552325297277D+00 0.38716693612508D+01 + 2 7 3 4 0.25131904127393D+00 0.39444842409820D+01 + 3 7 3 4 -0.13709621260803D+00 -0.65474652452080D+01 + 1 8 3 4 -0.67412846475854D-15 0.87189301192182D-15 + 2 8 3 4 -0.88753041924817D+00 0.88752500897119D+00 + 3 8 3 4 -0.15081373417216D+01 -0.15081346133458D+01 + 1 1 1 5 -0.15532572632330D+01 0.15532472887958D+01 + 2 1 1 5 0.37044165915291D-14 -0.13997958638547D-13 + 3 1 1 5 0.67030249612829D-14 0.88930689015343D-14 + 1 2 1 5 -0.83523794889825D-01 0.67047137909332D+01 + 2 2 1 5 -0.31551987362058D+00 0.38716648139253D+01 + 3 2 1 5 0.31552325297277D+00 -0.38716693612509D+01 + 1 3 1 5 -0.15532572632329D+01 0.15532472887957D+01 + 2 3 1 5 0.15419700372495D-13 0.18520468376469D-13 + 3 3 1 5 -0.61541444647454D-15 0.73503880923503D-15 + 1 4 1 5 -0.83523794889826D-01 0.67047137909332D+01 + 2 4 1 5 0.31551987362057D+00 -0.38716648139254D+01 + 3 4 1 5 -0.31552325297277D+00 0.38716693612508D+01 + 1 5 1 5 0.30153433290558D+02 0.41251579600656D-14 + 2 5 1 5 -0.79685689179215D-13 0.19725881592444D-14 + 3 5 1 5 -0.67522420902736D-13 0.97283810700725D-15 + 1 6 1 5 -0.67047122384926D+01 0.83534293151600D-01 + 2 6 1 5 0.38716693612509D+01 -0.31552325297277D+00 + 3 6 1 5 0.38716693612508D+01 -0.31552325297277D+00 + 1 7 1 5 0.29016431760353D+01 -0.16819265199472D-05 + 2 7 1 5 0.38721580294532D-14 0.64797314319291D-14 + 3 7 1 5 0.15877336597664D-15 0.81966746286189D-15 + 1 8 1 5 -0.67047122384928D+01 0.83534293151597D-01 + 2 8 1 5 -0.38716693612508D+01 0.31552325297276D+00 + 3 8 1 5 -0.38716693612508D+01 0.31552325297277D+00 + 1 1 2 5 0.13100809725266D-13 -0.46015655048101D-14 + 2 1 2 5 0.14597079068815D+01 -0.14597118725144D+01 + 3 1 2 5 0.88752500897119D+00 0.88753041924817D+00 + 1 2 2 5 -0.31551987362058D+00 0.38716648139253D+01 + 2 2 2 5 -0.13708488829871D+00 0.65474646301737D+01 + 3 2 2 5 0.25131904127393D+00 -0.39444842409820D+01 + 1 3 2 5 -0.24281229948609D-14 0.67264500911312D-15 + 2 3 2 5 -0.15081373417216D+01 0.15081346133458D+01 + 3 3 2 5 -0.88753547737993D+00 -0.88754141448376D+00 + 1 4 2 5 0.31551987362057D+00 -0.38716648139254D+01 + 2 4 2 5 -0.13708488829870D+00 0.65474646301737D+01 + 3 4 2 5 0.25131904127394D+00 -0.39444842409820D+01 + 1 5 2 5 -0.79685689179215D-13 0.98542527785367D-16 + 2 5 2 5 0.29748148531856D+02 0.49739126870737D-14 + 3 5 2 5 -0.57176776973995D-05 0.77904677925853D-06 + 1 6 2 5 0.38716693612509D+01 -0.31552325297277D+00 + 2 6 2 5 -0.65474652452080D+01 0.13709621260802D+00 + 3 6 2 5 -0.39444844116832D+01 0.25133273416689D+00 + 1 7 2 5 0.38721580294532D-14 -0.59902532686697D-14 + 2 7 2 5 -0.29057838607958D+01 -0.12174582962443D-04 + 3 7 2 5 -0.26766235791555D-05 -0.25009362430350D-05 + 1 8 2 5 -0.38716693612508D+01 0.31552325297276D+00 + 2 8 2 5 -0.65474652452079D+01 0.13709621260803D+00 + 3 8 2 5 -0.39444844116832D+01 0.25133273416689D+00 + 1 1 3 5 0.67030249612829D-14 0.88930689015343D-14 + 2 1 3 5 -0.88753041924817D+00 -0.88752500897119D+00 + 3 1 3 5 -0.15081373417216D+01 0.15081346133458D+01 + 1 2 3 5 0.31552325297277D+00 -0.38716693612509D+01 + 2 2 3 5 0.25131904127393D+00 -0.39444842409820D+01 + 3 2 3 5 -0.13709621260802D+00 0.65474652452080D+01 + 1 3 3 5 -0.61541444647454D-15 0.73503880923503D-15 + 2 3 3 5 0.88754141448376D+00 0.88753547737993D+00 + 3 3 3 5 0.14597079068815D+01 -0.14597118725144D+01 + 1 4 3 5 -0.31552325297277D+00 0.38716693612508D+01 + 2 4 3 5 0.25131904127394D+00 -0.39444842409820D+01 + 3 4 3 5 -0.13709621260803D+00 0.65474652452080D+01 + 1 5 3 5 -0.67522420902736D-13 0.97283810700725D-15 + 2 5 3 5 -0.57176776973995D-05 -0.77904677844095D-06 + 3 5 3 5 0.29748148531855D+02 0.50901385379243D-14 + 1 6 3 5 0.38716693612508D+01 -0.31552325297277D+00 + 2 6 3 5 -0.39444844116832D+01 0.25133273416689D+00 + 3 6 3 5 -0.65474652452080D+01 0.13709621260802D+00 + 1 7 3 5 0.15877336597664D-15 0.81966746286189D-15 + 2 7 3 5 -0.26766235791555D-05 0.25009362433859D-05 + 3 7 3 5 -0.29057838607958D+01 -0.12174582961977D-04 + 1 8 3 5 -0.38716693612508D+01 0.31552325297277D+00 + 2 8 3 5 -0.39444844116832D+01 0.25133273416689D+00 + 3 8 3 5 -0.65474652452080D+01 0.13709621260802D+00 + 1 1 1 6 -0.67047137909332D+01 0.83523794889827D-01 + 2 1 1 6 -0.38716648139253D+01 0.31551987362058D+00 + 3 1 1 6 0.38716693612509D+01 -0.31552325297277D+00 + 1 2 1 6 -0.15532472887958D+01 0.15532572632330D+01 + 2 2 1 6 0.13886205778911D-13 -0.45739657891425D-14 + 3 2 1 6 0.11022283746417D-14 0.46037461762837D-15 + 1 3 1 6 -0.67047137909332D+01 0.83523794889826D-01 + 2 3 1 6 0.38716648139254D+01 -0.31551987362057D+00 + 3 3 1 6 -0.38716693612508D+01 0.31552325297277D+00 + 1 4 1 6 -0.15532472887957D+01 0.15532572632329D+01 + 2 4 1 6 -0.75848305670733D-14 -0.86579988876786D-14 + 3 4 1 6 -0.26066349563689D-15 0.33390080412521D-15 + 1 5 1 6 -0.67047122384926D+01 -0.83534293151600D-01 + 2 5 1 6 0.38716693612509D+01 0.31552325297277D+00 + 3 5 1 6 0.38716693612508D+01 0.31552325297277D+00 + 1 6 1 6 0.30153433290558D+02 0.19816599772046D-17 + 2 6 1 6 -0.44269946801545D-13 -0.93701885100864D-15 + 3 6 1 6 -0.53405396522711D-13 0.00000000000000D+00 + 1 7 1 6 -0.67047122384928D+01 -0.83534293151597D-01 + 2 7 1 6 -0.38716693612508D+01 -0.31552325297277D+00 + 3 7 1 6 -0.38716693612508D+01 -0.31552325297277D+00 + 1 8 1 6 0.29016431760353D+01 0.16819265182998D-05 + 2 8 1 6 0.38721580294532D-14 -0.59330683748626D-14 + 3 8 1 6 0.15877336597664D-15 0.30179152508243D-15 + 1 1 2 6 -0.38716648139253D+01 0.31551987362058D+00 + 2 1 2 6 -0.65474646301737D+01 0.13708488829871D+00 + 3 1 2 6 0.39444842409820D+01 -0.25131904127393D+00 + 1 2 2 6 0.44898126451742D-14 -0.13970358922879D-13 + 2 2 2 6 0.14597118725144D+01 -0.14597079068815D+01 + 3 2 2 6 -0.88753041924817D+00 -0.88752500897119D+00 + 1 3 2 6 0.38716648139254D+01 -0.31551987362057D+00 + 2 3 2 6 -0.65474646301737D+01 0.13708488829870D+00 + 3 3 2 6 0.39444842409820D+01 -0.25131904127394D+00 + 1 4 2 6 0.10262992800283D-13 0.91898244796776D-14 + 2 4 2 6 -0.15081346133458D+01 0.15081373417217D+01 + 3 4 2 6 0.88754141448376D+00 0.88753547737993D+00 + 1 5 2 6 0.38716693612509D+01 0.31552325297277D+00 + 2 5 2 6 -0.65474652452080D+01 -0.13709621260802D+00 + 3 5 2 6 -0.39444844116832D+01 -0.25133273416689D+00 + 1 6 2 6 -0.44269946801545D-13 0.93702678045036D-15 + 2 6 2 6 0.29748148531856D+02 -0.30911415886804D-18 + 3 6 2 6 -0.57176776831427D-05 -0.77904677884974D-06 + 1 7 2 6 -0.38716693612508D+01 -0.31552325297277D+00 + 2 7 2 6 -0.65474652452079D+01 -0.13709621260803D+00 + 3 7 2 6 -0.39444844116832D+01 -0.25133273416689D+00 + 1 8 2 6 0.38721580294532D-14 0.65369163257362D-14 + 2 8 2 6 -0.29057838607958D+01 0.12174582963009D-04 + 3 8 2 6 -0.26766235760501D-05 0.25009362435077D-05 + 1 1 3 6 0.38716693612509D+01 -0.31552325297277D+00 + 2 1 3 6 0.39444842409820D+01 -0.25131904127393D+00 + 3 1 3 6 -0.65474652452080D+01 0.13709621260802D+00 + 1 2 3 6 0.11022283746417D-14 0.46037461762837D-15 + 2 2 3 6 0.88752500897119D+00 0.88753041924817D+00 + 3 2 3 6 -0.15081346133458D+01 0.15081373417216D+01 + 1 3 3 6 -0.38716693612508D+01 0.31552325297277D+00 + 2 3 3 6 0.39444842409820D+01 -0.25131904127394D+00 + 3 3 3 6 -0.65474652452080D+01 0.13709621260803D+00 + 1 4 3 6 -0.26066349563689D-15 0.33390080412521D-15 + 2 4 3 6 -0.88753547737993D+00 -0.88754141448376D+00 + 3 4 3 6 0.14597118725144D+01 -0.14597079068815D+01 + 1 5 3 6 0.38716693612508D+01 0.31552325297277D+00 + 2 5 3 6 -0.39444844116832D+01 -0.25133273416689D+00 + 3 5 3 6 -0.65474652452080D+01 -0.13709621260802D+00 + 1 6 3 6 -0.53405396522711D-13 0.00000000000000D+00 + 2 6 3 6 -0.57176776831427D-05 0.77904677884974D-06 + 3 6 3 6 0.29748148531855D+02 -0.30871711218358D-18 + 1 7 3 6 -0.38716693612508D+01 -0.31552325297277D+00 + 2 7 3 6 -0.39444844116832D+01 -0.25133273416689D+00 + 3 7 3 6 -0.65474652452080D+01 -0.13709621260802D+00 + 1 8 3 6 0.15877336597664D-15 0.30179152508243D-15 + 2 8 3 6 -0.26766235760501D-05 -0.25009362429133D-05 + 3 8 3 6 -0.29057838607958D+01 0.12174582963009D-04 + 1 1 1 7 -0.15532572632329D+01 0.15532472887957D+01 + 2 1 1 7 0.36018714929665D-14 -0.14699733498920D-14 + 3 1 1 7 0.78127159165062D-15 0.66737401022194D-15 + 1 2 1 7 -0.83523794889828D-01 0.67047137909332D+01 + 2 2 1 7 0.31551987362057D+00 -0.38716648139254D+01 + 3 2 1 7 -0.31552325297277D+00 0.38716693612508D+01 + 1 3 1 7 -0.15532572632330D+01 0.15532472887958D+01 + 2 3 1 7 0.54335190156348D-14 -0.12863632727366D-13 + 3 3 1 7 -0.51150207584738D-14 -0.97553336141435D-14 + 1 4 1 7 -0.83523794889825D-01 0.67047137909332D+01 + 2 4 1 7 -0.31551987362058D+00 0.38716648139253D+01 + 3 4 1 7 0.31552325297277D+00 -0.38716693612508D+01 + 1 5 1 7 0.29016431760353D+01 -0.16819265164205D-05 + 2 5 1 7 0.38721580294532D-14 0.59902532686697D-14 + 3 5 1 7 0.15877336597664D-15 -0.81966746286189D-15 + 1 6 1 7 -0.67047122384928D+01 0.83534293151597D-01 + 2 6 1 7 -0.38716693612508D+01 0.31552325297277D+00 + 3 6 1 7 -0.38716693612508D+01 0.31552325297277D+00 + 1 7 1 7 0.30153433290558D+02 0.20443939028951D-14 + 2 7 1 7 -0.26394983997207D-13 0.76477416029672D-15 + 3 7 1 7 -0.35735746843273D-14 -0.32934830332620D-16 + 1 8 1 7 -0.67047122384926D+01 0.83534293151599D-01 + 2 8 1 7 0.38716693612508D+01 -0.31552325297277D+00 + 3 8 1 7 0.38716693612508D+01 -0.31552325297276D+00 + 1 1 2 7 -0.14245951874390D-13 -0.19317796717248D-13 + 2 1 2 7 -0.15081373417216D+01 0.15081346133458D+01 + 3 1 2 7 -0.88753547737993D+00 -0.88754141448376D+00 + 1 2 2 7 0.31551987362057D+00 -0.38716648139254D+01 + 2 2 2 7 -0.13708488829870D+00 0.65474646301737D+01 + 3 2 2 7 0.25131904127394D+00 -0.39444842409820D+01 + 1 3 2 7 0.14829912149372D-13 -0.34672395936291D-14 + 2 3 2 7 0.14597079068815D+01 -0.14597118725144D+01 + 3 3 2 7 0.88752500897119D+00 0.88753041924817D+00 + 1 4 2 7 -0.31551987362058D+00 0.38716648139253D+01 + 2 4 2 7 -0.13708488829871D+00 0.65474646301737D+01 + 3 4 2 7 0.25131904127393D+00 -0.39444842409820D+01 + 1 5 2 7 0.38721580294532D-14 -0.64797314319291D-14 + 2 5 2 7 -0.29057838607958D+01 -0.12174582962943D-04 + 3 5 2 7 -0.26766235791555D-05 -0.25009362433859D-05 + 1 6 2 7 -0.38716693612508D+01 0.31552325297277D+00 + 2 6 2 7 -0.65474652452079D+01 0.13709621260803D+00 + 3 6 2 7 -0.39444844116832D+01 0.25133273416689D+00 + 1 7 2 7 -0.26394983997207D-13 -0.11092714711623D-14 + 2 7 2 7 0.29748148531856D+02 0.22812550732025D-15 + 3 7 2 7 -0.57176777471370D-05 0.77904677921520D-06 + 1 8 2 7 0.38716693612508D+01 -0.31552325297277D+00 + 2 8 2 7 -0.65474652452080D+01 0.13709621260802D+00 + 3 8 2 7 -0.39444844116831D+01 0.25133273416689D+00 + 1 1 3 7 0.78127159165062D-15 0.66737401022194D-15 + 2 1 3 7 0.88754141448376D+00 0.88753547737993D+00 + 3 1 3 7 0.14597079068815D+01 -0.14597118725144D+01 + 1 2 3 7 -0.31552325297277D+00 0.38716693612508D+01 + 2 2 3 7 0.25131904127394D+00 -0.39444842409820D+01 + 3 2 3 7 -0.13709621260802D+00 0.65474652452080D+01 + 1 3 3 7 -0.51150207584738D-14 -0.97553336141435D-14 + 2 3 3 7 -0.88753041924817D+00 -0.88752500897119D+00 + 3 3 3 7 -0.15081373417216D+01 0.15081346133458D+01 + 1 4 3 7 0.31552325297277D+00 -0.38716693612508D+01 + 2 4 3 7 0.25131904127393D+00 -0.39444842409820D+01 + 3 4 3 7 -0.13709621260803D+00 0.65474652452080D+01 + 1 5 3 7 0.15877336597664D-15 -0.81966746286189D-15 + 2 5 3 7 -0.26766235791555D-05 0.25009362430350D-05 + 3 5 3 7 -0.29057838607958D+01 -0.12174582963408D-04 + 1 6 3 7 -0.38716693612508D+01 0.31552325297277D+00 + 2 6 3 7 -0.39444844116832D+01 0.25133273416689D+00 + 3 6 3 7 -0.65474652452080D+01 0.13709621260802D+00 + 1 7 3 7 -0.35735746843273D-14 -0.32934830332620D-16 + 2 7 3 7 -0.57176777471370D-05 -0.77904677848429D-06 + 3 7 3 7 0.29748148531855D+02 0.33567875987750D-15 + 1 8 3 7 0.38716693612508D+01 -0.31552325297276D+00 + 2 8 3 7 -0.39444844116831D+01 0.25133273416689D+00 + 3 8 3 7 -0.65474652452080D+01 0.13709621260802D+00 + 1 1 1 8 -0.67047137909332D+01 0.83523794889825D-01 + 2 1 1 8 0.38716648139254D+01 -0.31551987362057D+00 + 3 1 1 8 -0.38716693612508D+01 0.31552325297277D+00 + 1 2 1 8 -0.15532472887957D+01 0.15532572632329D+01 + 2 2 1 8 -0.98052766163236D-14 -0.99902665172288D-14 + 3 2 1 8 -0.92072577824607D-15 0.23892469381548D-15 + 1 3 1 8 -0.67047137909332D+01 0.83523794889824D-01 + 2 3 1 8 -0.38716648139253D+01 0.31551987362058D+00 + 3 3 1 8 0.38716693612508D+01 -0.31552325297277D+00 + 1 4 1 8 -0.15532472887958D+01 0.15532572632330D+01 + 2 4 1 8 0.13283823051878D-13 -0.46567988351204D-14 + 3 4 1 8 -0.67412846475854D-15 -0.87189301192182D-15 + 1 5 1 8 -0.67047122384928D+01 -0.83534293151597D-01 + 2 5 1 8 -0.38716693612508D+01 -0.31552325297276D+00 + 3 5 1 8 -0.38716693612508D+01 -0.31552325297277D+00 + 1 6 1 8 0.29016431760353D+01 0.16819265180679D-05 + 2 6 1 8 0.38721580294532D-14 -0.65369163257362D-14 + 3 6 1 8 0.15877336597664D-15 -0.30179152508243D-15 + 1 7 1 8 -0.67047122384926D+01 -0.83534293151599D-01 + 2 7 1 8 0.38716693612508D+01 0.31552325297277D+00 + 3 7 1 8 0.38716693612508D+01 0.31552325297276D+00 + 1 8 1 8 0.30153433290558D+02 -0.35884082302597D-15 + 2 8 1 8 0.16325590396430D-13 -0.12382373195794D-14 + 3 8 1 8 -0.10573197325741D-13 -0.30119355285985D-15 + 1 1 2 8 0.38716648139254D+01 -0.31551987362057D+00 + 2 1 2 8 -0.65474646301737D+01 0.13708488829870D+00 + 3 1 2 8 0.39444842409819D+01 -0.25131904127394D+00 + 1 2 2 8 0.80425467510325D-14 0.78575568501274D-14 + 2 2 2 8 -0.15081346133458D+01 0.15081373417217D+01 + 3 2 2 8 0.88754141448376D+00 0.88753547737993D+00 + 1 3 2 8 -0.38716648139253D+01 0.31551987362058D+00 + 2 3 2 8 -0.65474646301737D+01 0.13708488829871D+00 + 3 3 2 8 0.39444842409819D+01 -0.25131904127393D+00 + 1 4 2 8 0.38874299181412D-14 -0.14053191968857D-13 + 2 4 2 8 0.14597118725144D+01 -0.14597079068815D+01 + 3 4 2 8 -0.88753041924817D+00 -0.88752500897119D+00 + 1 5 2 8 -0.38716693612508D+01 -0.31552325297276D+00 + 2 5 2 8 -0.65474652452079D+01 -0.13709621260803D+00 + 3 5 2 8 -0.39444844116832D+01 -0.25133273416689D+00 + 1 6 2 8 0.38721580294532D-14 0.59330683748626D-14 + 2 6 2 8 -0.29057838607958D+01 0.12174582962377D-04 + 3 6 2 8 -0.26766235760501D-05 0.25009362429133D-05 + 1 7 2 8 0.38716693612508D+01 0.31552325297277D+00 + 2 7 2 8 -0.65474652452080D+01 -0.13709621260802D+00 + 3 7 2 8 -0.39444844116831D+01 -0.25133273416689D+00 + 1 8 2 8 0.16325590396430D-13 0.63580831187957D-15 + 2 8 2 8 0.29748148531856D+02 -0.39756079015756D-15 + 3 8 2 8 -0.57176776370250D-05 -0.77904677918147D-06 + 1 1 3 8 -0.38716693612508D+01 0.31552325297277D+00 + 2 1 3 8 0.39444842409819D+01 -0.25131904127394D+00 + 3 1 3 8 -0.65474652452080D+01 0.13709621260802D+00 + 1 2 3 8 -0.92072577824607D-15 0.23892469381548D-15 + 2 2 3 8 -0.88753547737993D+00 -0.88754141448376D+00 + 3 2 3 8 0.14597118725144D+01 -0.14597079068815D+01 + 1 3 3 8 0.38716693612508D+01 -0.31552325297277D+00 + 2 3 3 8 0.39444842409819D+01 -0.25131904127393D+00 + 3 3 3 8 -0.65474652452080D+01 0.13709621260803D+00 + 1 4 3 8 -0.67412846475854D-15 -0.87189301192182D-15 + 2 4 3 8 0.88752500897119D+00 0.88753041924817D+00 + 3 4 3 8 -0.15081346133458D+01 0.15081373417216D+01 + 1 5 3 8 -0.38716693612508D+01 -0.31552325297277D+00 + 2 5 3 8 -0.39444844116832D+01 -0.25133273416689D+00 + 3 5 3 8 -0.65474652452080D+01 -0.13709621260802D+00 + 1 6 3 8 0.15877336597664D-15 -0.30179152508243D-15 + 2 6 3 8 -0.26766235760501D-05 -0.25009362435077D-05 + 3 6 3 8 -0.29057838607958D+01 0.12174582962377D-04 + 1 7 3 8 0.38716693612508D+01 0.31552325297276D+00 + 2 7 3 8 -0.39444844116831D+01 -0.25133273416689D+00 + 3 7 3 8 -0.65474652452080D+01 -0.13709621260802D+00 + 1 8 3 8 -0.10573197325741D-13 -0.30119355285985D-15 + 2 8 3 8 -0.57176776370250D-05 0.77904677851801D-06 + 3 8 3 8 0.29748148531855D+02 -0.39756039311087D-15 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 5.00000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.30311912155681D+02 0.00000000000000D+00 + 2 1 1 1 0.44203949071634D-13 0.47236778638853D-14 + 3 1 1 1 -0.99522486953368D-13 0.00000000000000D+00 + 1 2 1 1 -0.66932952215676D+01 0.57481261955374D-05 + 2 2 1 1 0.36067364469057D+01 0.29977594645471D-05 + 3 2 1 1 0.36067364469057D+01 0.29977594645165D-05 + 1 3 1 1 0.27672363014163D+01 -0.24666718147707D-05 + 2 3 1 1 -0.11169742361512D-16 0.31232818851965D-15 + 3 3 1 1 0.26057973248566D-16 0.00000000000000D+00 + 1 4 1 1 -0.66932952215676D+01 0.57481261990104D-05 + 2 4 1 1 -0.36067364469056D+01 -0.29977594713088D-05 + 3 4 1 1 -0.36067364469057D+01 -0.29977594646378D-05 + 1 5 1 1 -0.89825741942580D-14 -0.12261955049431D-14 + 2 5 1 1 -0.19476134331170D-14 0.81857713085218D-16 + 3 5 1 1 0.16478061769386D-13 -0.37666512201088D-15 + 1 6 1 1 -0.66932952212922D+01 0.57367564156419D-05 + 2 6 1 1 -0.36067364469059D+01 -0.29977594716247D-05 + 3 6 1 1 0.36067364469057D+01 0.29977594705043D-05 + 1 7 1 1 -0.94597312971929D-14 -0.12624244191252D-14 + 2 7 1 1 -0.13190455610890D-13 -0.63236620936191D-16 + 3 7 1 1 0.18657691865040D-14 0.23118362379842D-15 + 1 8 1 1 -0.66932952212923D+01 0.57367564163859D-05 + 2 8 1 1 0.36067364469059D+01 0.29977594723504D-05 + 3 8 1 1 -0.36067364469057D+01 -0.29977594706742D-05 + 1 1 2 1 0.44203949071634D-13 -0.47236778638853D-14 + 2 1 2 1 0.29543687482892D+02 0.00000000000000D+00 + 3 1 2 1 -0.17766329530424D-13 -0.51607719262941D-15 + 1 2 2 1 0.36067364469057D+01 -0.29977594646582D-05 + 2 2 2 1 -0.64009935773831D+01 0.62430374314867D-05 + 3 2 2 1 -0.37387391217442D+01 0.41896540968374D-05 + 1 3 2 1 -0.11169742361512D-16 -0.31232818851965D-15 + 2 3 2 1 -0.27213726351038D+01 0.11587739971291D-04 + 3 3 2 1 0.28723930344282D-14 0.20455039458989D-14 + 1 4 2 1 -0.36067364469056D+01 0.29977594713197D-05 + 2 4 2 1 -0.64009935773831D+01 0.62430374318613D-05 + 3 4 2 1 -0.37387391217441D+01 0.41896540984935D-05 + 1 5 2 1 -0.19476134331170D-14 0.81857713085218D-16 + 2 5 2 1 -0.86490224129411D-14 0.46267684099311D-16 + 3 5 2 1 -0.16974302115615D+01 0.86324090846821D-06 + 1 6 2 1 -0.36067364469059D+01 0.29977594655919D-05 + 2 6 2 1 -0.64009935773831D+01 0.62430374335037D-05 + 3 6 2 1 0.37387391217442D+01 -0.41896540969674D-05 + 1 7 2 1 -0.13190455610890D-13 -0.63236620936191D-16 + 2 7 2 1 0.79444908740584D-14 -0.38835749113898D-15 + 3 7 2 1 0.16974302115615D+01 0.86324090826175D-06 + 1 8 2 1 0.36067364469059D+01 -0.29977594662825D-05 + 2 8 2 1 -0.64009935773830D+01 0.62430374302686D-05 + 3 8 2 1 0.37387391217442D+01 -0.41896540972231D-05 + 1 1 3 1 -0.99522486953368D-13 0.00000000000000D+00 + 2 1 3 1 -0.17766329530424D-13 0.51607719262941D-15 + 3 1 3 1 0.29543687482892D+02 0.00000000000000D+00 + 1 2 3 1 0.36067364469057D+01 -0.29977594646888D-05 + 2 2 3 1 -0.37387391217442D+01 -0.41896540968381D-05 + 3 2 3 1 -0.64009935773831D+01 -0.62430374304400D-05 + 1 3 3 1 0.26057973248566D-16 0.00000000000000D+00 + 2 3 3 1 0.28723930344282D-14 -0.20455039458989D-14 + 3 3 3 1 -0.27213726351038D+01 -0.11587739971291D-04 + 1 4 3 1 -0.36067364469057D+01 0.29977594645675D-05 + 2 4 3 1 -0.37387391217441D+01 -0.41896540984193D-05 + 3 4 3 1 -0.64009935773831D+01 -0.62430374321304D-05 + 1 5 3 1 0.16478061769386D-13 -0.37666512201088D-15 + 2 5 3 1 0.16974302115615D+01 0.86324090826034D-06 + 3 5 3 1 0.18106968440231D-13 -0.38587617105824D-15 + 1 6 3 1 0.36067364469057D+01 -0.29977594587010D-05 + 2 6 3 1 0.37387391217442D+01 0.41896541021502D-05 + 3 6 3 1 -0.64009935773831D+01 -0.62430374321219D-05 + 1 7 3 1 0.18657691865040D-14 0.23118362379842D-15 + 2 7 3 1 -0.16974302115615D+01 0.86324090846963D-06 + 3 7 3 1 -0.32604704115899D-14 0.48315500963315D-16 + 1 8 3 1 -0.36067364469057D+01 0.29977594585312D-05 + 2 8 3 1 0.37387391217442D+01 0.41896541022992D-05 + 3 8 3 1 -0.64009935773831D+01 -0.62430374305698D-05 + 1 1 1 2 -0.66932952215676D+01 -0.57481261955374D-05 + 2 1 1 2 0.36067364469057D+01 0.29977594646582D-05 + 3 1 1 2 0.36067364469057D+01 0.29977594646888D-05 + 1 2 1 2 0.30311912155681D+02 0.00000000000000D+00 + 2 2 1 2 -0.65984566960715D-13 0.47236778638853D-14 + 3 2 1 2 -0.56886600282361D-13 0.00000000000000D+00 + 1 3 1 2 -0.66932952215676D+01 -0.57481261984579D-05 + 2 3 1 2 -0.36067364469055D+01 -0.29977594711934D-05 + 3 3 1 2 -0.36067364469057D+01 -0.29977594645992D-05 + 1 4 1 2 0.27672363014163D+01 0.24666718147707D-05 + 2 4 1 2 -0.11169742361512D-16 0.31232818851965D-15 + 3 4 1 2 0.26291613307713D-16 0.00000000000000D+00 + 1 5 1 2 0.66932952212921D+01 0.57367564097593D-05 + 2 5 1 2 0.36067364469059D+01 0.29977594660038D-05 + 3 5 1 2 -0.36067364469057D+01 -0.29977594648480D-05 + 1 6 1 2 0.19977667770284D-14 -0.12261955049431D-14 + 2 6 1 2 0.26419048739738D-18 0.81857713085218D-16 + 3 6 1 2 0.11121812642682D-14 -0.37666512201088D-15 + 1 7 1 2 0.66932952212922D+01 0.57367564135100D-05 + 2 7 1 2 -0.36067364469060D+01 -0.29977594666141D-05 + 3 7 1 2 0.36067364469057D+01 0.29977594650873D-05 + 1 8 1 2 0.19977668018954D-14 -0.12624244191252D-14 + 2 8 1 2 -0.75129566574684D-15 -0.63236620936192D-16 + 3 8 1 2 -0.15955187274049D-18 0.23118362379842D-15 + 1 1 2 2 0.36067364469057D+01 -0.29977594645471D-05 + 2 1 2 2 -0.64009935773831D+01 -0.62430374314867D-05 + 3 1 2 2 -0.37387391217442D+01 0.41896540968381D-05 + 1 2 2 2 -0.65984566960715D-13 -0.47236778638853D-14 + 2 2 2 2 0.29543687482892D+02 0.00000000000000D+00 + 3 2 2 2 -0.88924682822989D-13 -0.51607719262941D-15 + 1 3 2 2 -0.36067364469055D+01 0.29977594714351D-05 + 2 3 2 2 -0.64009935773830D+01 -0.62430374318828D-05 + 3 3 2 2 -0.37387391217441D+01 0.41896540984692D-05 + 1 4 2 2 -0.11169742361512D-16 -0.31232818851965D-15 + 2 4 2 2 -0.27213726351038D+01 -0.11587739971291D-04 + 3 4 2 2 -0.23623182498381D-15 0.20455039458989D-14 + 1 5 2 2 0.36067364469059D+01 -0.29977594651507D-05 + 2 5 2 2 0.64009935773831D+01 0.62430374337362D-05 + 3 5 2 2 -0.37387391217442D+01 0.41896540971440D-05 + 1 6 2 2 0.26419048739718D-18 0.81857713085218D-16 + 2 6 2 2 0.71768420217530D-15 0.46267684099311D-16 + 3 6 2 2 0.16974302115615D+01 -0.86324090848663D-06 + 1 7 2 2 -0.36067364469060D+01 0.29977594659568D-05 + 2 7 2 2 0.64009935773830D+01 0.62430374299431D-05 + 3 7 2 2 -0.37387391217442D+01 0.41896540973382D-05 + 1 8 2 2 -0.75129566574684D-15 -0.63236620936192D-16 + 2 8 2 2 -0.11112993716076D-14 -0.38835749113898D-15 + 3 8 2 2 -0.16974302115615D+01 -0.86324090827734D-06 + 1 1 3 2 0.36067364469057D+01 -0.29977594645165D-05 + 2 1 3 2 -0.37387391217442D+01 -0.41896540968374D-05 + 3 1 3 2 -0.64009935773831D+01 -0.62430374325938D-05 + 1 2 3 2 -0.56886600282361D-13 0.00000000000000D+00 + 2 2 3 2 -0.88924682822989D-13 0.51607719262941D-15 + 3 2 3 2 0.29543687482892D+02 0.00000000000000D+00 + 1 3 3 2 -0.36067364469057D+01 0.29977594646061D-05 + 2 3 3 2 -0.37387391217441D+01 -0.41896540984436D-05 + 3 3 3 2 -0.64009935773831D+01 -0.62430374321330D-05 + 1 4 3 2 0.26291613307713D-16 0.00000000000000D+00 + 2 4 3 2 -0.23623182498381D-15 -0.20455039458989D-14 + 3 4 3 2 -0.27213726351038D+01 -0.11587739971291D-04 + 1 5 3 2 -0.36067364469057D+01 0.29977594643573D-05 + 2 5 3 2 -0.37387391217442D+01 -0.41896540968936D-05 + 3 5 3 2 0.64009935773832D+01 0.62430374308537D-05 + 1 6 3 2 0.11121812642682D-14 -0.37666512201088D-15 + 2 6 3 2 -0.16974302115615D+01 -0.86324090827876D-06 + 3 6 3 2 -0.11112994199977D-14 -0.38587617105824D-15 + 1 7 3 2 0.36067364469057D+01 -0.29977594641181D-05 + 2 7 3 2 -0.37387391217442D+01 -0.41896540971041D-05 + 3 7 3 2 0.64009935773831D+01 0.62430374312497D-05 + 1 8 3 2 -0.15955187274068D-18 0.23118362379842D-15 + 2 8 3 2 0.16974302115615D+01 -0.86324090848522D-06 + 3 8 3 2 0.71768419969387D-15 0.48315500963315D-16 + 1 1 1 3 0.27672363014163D+01 0.24666718147707D-05 + 2 1 1 3 -0.11169742361512D-16 0.31232818851965D-15 + 3 1 1 3 0.26057973248566D-16 0.00000000000000D+00 + 1 2 1 3 -0.66932952215676D+01 0.57481261984579D-05 + 2 2 1 3 -0.36067364469055D+01 -0.29977594714351D-05 + 3 2 1 3 -0.36067364469057D+01 -0.29977594646061D-05 + 1 3 1 3 0.30311912155681D+02 0.00000000000000D+00 + 2 3 1 3 -0.76588316007583D-13 0.47236778638853D-14 + 3 3 1 3 -0.46503946954267D-16 0.00000000000000D+00 + 1 4 1 3 -0.66932952215676D+01 0.57481261952845D-05 + 2 4 1 3 0.36067364469057D+01 0.29977594646921D-05 + 3 4 1 3 0.36067364469057D+01 0.29977594648015D-05 + 1 5 1 3 -0.69846061576257D-14 -0.12624244191252D-14 + 2 5 1 3 0.17288877902100D-13 -0.63236620936192D-16 + 3 5 1 3 -0.25378431574129D-14 0.23118362379842D-15 + 1 6 1 3 -0.66932952212923D+01 0.57367564166882D-05 + 2 6 1 3 0.36067364469060D+01 0.29977594722144D-05 + 3 6 1 3 -0.36067364469057D+01 -0.29977594706062D-05 + 1 7 1 3 -0.92374701250611D-14 -0.12261955049431D-14 + 2 7 1 3 0.16085864926817D-14 0.81857713085218D-16 + 3 7 1 3 -0.12215373712708D-13 -0.37666512201088D-15 + 1 8 1 3 -0.66932952212922D+01 0.57367564159231D-05 + 2 8 1 3 -0.36067364469059D+01 -0.29977594717762D-05 + 3 8 1 3 0.36067364469057D+01 0.29977594707212D-05 + 1 1 2 3 -0.11169742361512D-16 -0.31232818851965D-15 + 2 1 2 3 -0.27213726351038D+01 -0.11587739971291D-04 + 3 1 2 3 0.28723930344282D-14 0.20455039458989D-14 + 1 2 2 3 -0.36067364469055D+01 0.29977594711934D-05 + 2 2 2 3 -0.64009935773830D+01 0.62430374318828D-05 + 3 2 2 3 -0.37387391217441D+01 0.41896540984436D-05 + 1 3 2 3 -0.76588316007583D-13 -0.47236778638853D-14 + 2 3 2 3 0.29543687482892D+02 0.00000000000000D+00 + 3 3 2 3 -0.31977184245626D-13 -0.51607719262941D-15 + 1 4 2 3 0.36067364469057D+01 -0.29977594645132D-05 + 2 4 2 3 -0.64009935773831D+01 0.62430374312045D-05 + 3 4 2 3 -0.37387391217442D+01 0.41896540968358D-05 + 1 5 2 3 0.17288877902100D-13 -0.63236620936192D-16 + 2 5 2 3 0.18995038275932D-13 -0.38835749113898D-15 + 3 5 2 3 0.16974302115615D+01 0.86324090826175D-06 + 1 6 2 3 0.36067364469060D+01 -0.29977594664185D-05 + 2 6 2 3 -0.64009935773830D+01 0.62430374301866D-05 + 3 6 2 3 0.37387391217442D+01 -0.41896540972231D-05 + 1 7 2 3 0.16085864926817D-14 0.81857713085218D-16 + 2 7 2 3 -0.27053588967959D-14 0.46267684099311D-16 + 3 7 2 3 -0.16974302115615D+01 0.86324090846821D-06 + 1 8 2 3 -0.36067364469059D+01 0.29977594654404D-05 + 2 8 2 3 -0.64009935773831D+01 0.62430374337221D-05 + 3 8 2 3 0.37387391217442D+01 -0.41896540970355D-05 + 1 1 3 3 0.26057973248566D-16 0.00000000000000D+00 + 2 1 3 3 0.28723930344282D-14 -0.20455039458989D-14 + 3 1 3 3 -0.27213726351038D+01 -0.11587739971291D-04 + 1 2 3 3 -0.36067364469057D+01 0.29977594645992D-05 + 2 2 3 3 -0.37387391217441D+01 -0.41896540984692D-05 + 3 2 3 3 -0.64009935773831D+01 -0.62430374309009D-05 + 1 3 3 3 -0.46503946954268D-16 0.00000000000000D+00 + 2 3 3 3 -0.31977184245626D-13 0.51607719262941D-15 + 3 3 3 3 0.29543687482892D+02 0.00000000000000D+00 + 1 4 3 3 0.36067364469057D+01 -0.29977594644038D-05 + 2 4 3 3 -0.37387391217442D+01 -0.41896540968397D-05 + 3 4 3 3 -0.64009935773831D+01 -0.62430374309913D-05 + 1 5 3 3 -0.25378431574129D-14 0.23118362379842D-15 + 2 5 3 3 -0.16974302115615D+01 0.86324090846963D-06 + 3 5 3 3 -0.75387993827325D-14 0.48315500963315D-16 + 1 6 3 3 -0.36067364469057D+01 0.29977594585991D-05 + 2 6 3 3 0.37387391217442D+01 0.41896541022992D-05 + 3 6 3 3 -0.64009935773831D+01 -0.62430374309822D-05 + 1 7 3 3 -0.12215373712708D-13 -0.37666512201088D-15 + 2 7 3 3 0.16974302115615D+01 0.86324090826034D-06 + 3 7 3 3 0.83884715449908D-14 -0.38587617105824D-15 + 1 8 3 3 0.36067364469057D+01 -0.29977594584842D-05 + 2 8 3 3 0.37387391217442D+01 0.41896541020821D-05 + 3 8 3 3 -0.64009935773831D+01 -0.62430374321629D-05 + 1 1 1 4 -0.66932952215676D+01 -0.57481261990104D-05 + 2 1 1 4 -0.36067364469056D+01 -0.29977594713197D-05 + 3 1 1 4 -0.36067364469057D+01 -0.29977594645675D-05 + 1 2 1 4 0.27672363014163D+01 0.24666718147707D-05 + 2 2 1 4 -0.11169742361512D-16 0.31232818851965D-15 + 3 2 1 4 0.26291613307713D-16 0.00000000000000D+00 + 1 3 1 4 -0.66932952215676D+01 -0.57481261952845D-05 + 2 3 1 4 0.36067364469057D+01 0.29977594645132D-05 + 3 3 1 4 0.36067364469057D+01 0.29977594644038D-05 + 1 4 1 4 0.30311912155681D+02 0.00000000000000D+00 + 2 4 1 4 -0.44609919851673D-13 0.47236778638853D-14 + 3 4 1 4 -0.49838887495943D-13 0.00000000000000D+00 + 1 5 1 4 0.66932952212922D+01 0.57367564134125D-05 + 2 5 1 4 -0.36067364469060D+01 -0.29977594666413D-05 + 3 5 1 4 0.36067364469057D+01 0.29977594648404D-05 + 1 6 1 4 0.19977668018954D-14 -0.12624244191252D-14 + 2 6 1 4 0.10250611736534D-14 -0.63236620936192D-16 + 3 6 1 4 -0.15955187274049D-18 0.23118362379842D-15 + 1 7 1 4 0.66932952212921D+01 0.57367564105610D-05 + 2 7 1 4 0.36067364469059D+01 0.29977594655815D-05 + 3 7 1 4 -0.36067364469057D+01 -0.29977594649573D-05 + 1 8 1 4 0.19977667770284D-14 -0.12261955049431D-14 + 2 8 1 4 0.26419048739738D-18 0.81857713085218D-16 + 3 8 1 4 -0.66417557513207D-15 -0.37666512201088D-15 + 1 1 2 4 -0.36067364469056D+01 0.29977594713088D-05 + 2 1 2 4 -0.64009935773831D+01 -0.62430374318613D-05 + 3 1 2 4 -0.37387391217441D+01 0.41896540984193D-05 + 1 2 2 4 -0.11169742361512D-16 -0.31232818851965D-15 + 2 2 2 4 -0.27213726351038D+01 -0.11587739971291D-04 + 3 2 2 4 -0.23623182498381D-15 0.20455039458989D-14 + 1 3 2 4 0.36067364469057D+01 -0.29977594646921D-05 + 2 3 2 4 -0.64009935773831D+01 -0.62430374312045D-05 + 3 3 2 4 -0.37387391217442D+01 0.41896540968397D-05 + 1 4 2 4 -0.44609919851673D-13 -0.47236778638853D-14 + 2 4 2 4 0.29543687482892D+02 0.00000000000000D+00 + 3 4 2 4 -0.78060804312017D-13 -0.51607719262941D-15 + 1 5 2 4 -0.36067364469060D+01 0.29977594659295D-05 + 2 5 2 4 0.64009935773830D+01 0.62430374299739D-05 + 3 5 2 4 -0.37387391217442D+01 0.41896540973153D-05 + 1 6 2 4 0.10250611736534D-14 -0.63236620936192D-16 + 2 6 2 4 -0.11112993716076D-14 -0.38835749113898D-15 + 3 6 2 4 -0.16974302115615D+01 -0.86324090827734D-06 + 1 7 2 4 0.36067364469059D+01 -0.29977594655730D-05 + 2 7 2 4 0.64009935773831D+01 0.62430374337617D-05 + 3 7 2 4 -0.37387391217442D+01 0.41896540971242D-05 + 1 8 2 4 0.26419048739718D-18 0.81857713085218D-16 + 2 8 2 4 0.71768420217530D-15 0.46267684099311D-16 + 3 8 2 4 0.16974302115615D+01 -0.86324090848663D-06 + 1 1 3 4 -0.36067364469057D+01 0.29977594646378D-05 + 2 1 3 4 -0.37387391217441D+01 -0.41896540984935D-05 + 3 1 3 4 -0.64009935773831D+01 -0.62430374309034D-05 + 1 2 3 4 0.26291613307713D-16 0.00000000000000D+00 + 2 2 3 4 -0.23623182498381D-15 -0.20455039458989D-14 + 3 2 3 4 -0.27213726351038D+01 -0.11587739971291D-04 + 1 3 3 4 0.36067364469057D+01 -0.29977594648015D-05 + 2 3 3 4 -0.37387391217442D+01 -0.41896540968358D-05 + 3 3 3 4 -0.64009935773831D+01 -0.62430374320425D-05 + 1 4 3 4 -0.49838887495943D-13 0.00000000000000D+00 + 2 4 3 4 -0.78060804312017D-13 0.51607719262941D-15 + 3 4 3 4 0.29543687482892D+02 0.00000000000000D+00 + 1 5 3 4 0.36067364469057D+01 -0.29977594643649D-05 + 2 5 3 4 -0.37387391217442D+01 -0.41896540971269D-05 + 3 5 3 4 0.64009935773831D+01 0.62430374304298D-05 + 1 6 3 4 -0.15955187274068D-18 0.23118362379842D-15 + 2 6 3 4 0.16974302115615D+01 -0.86324090848522D-06 + 3 6 3 4 0.71768419969387D-15 0.48315500963315D-16 + 1 7 3 4 -0.36067364469057D+01 0.29977594642480D-05 + 2 7 3 4 -0.37387391217442D+01 -0.41896540969133D-05 + 3 7 3 4 0.64009935773831D+01 0.62430374307026D-05 + 1 8 3 4 -0.66417557513207D-15 -0.37666512201088D-15 + 2 8 3 4 -0.16974302115615D+01 -0.86324090827876D-06 + 3 8 3 4 -0.11112994199977D-14 -0.38587617105824D-15 + 1 1 1 5 -0.89825741942580D-14 0.12261955049431D-14 + 2 1 1 5 -0.19476134331170D-14 -0.81857713085218D-16 + 3 1 1 5 0.16478061769386D-13 0.37666512201088D-15 + 1 2 1 5 0.66932952212921D+01 -0.57367564097593D-05 + 2 2 1 5 0.36067364469059D+01 0.29977594712128D-05 + 3 2 1 5 -0.36067364469057D+01 -0.29977594704194D-05 + 1 3 1 5 -0.69846061576257D-14 0.12624244191252D-14 + 2 3 1 5 0.17288877902100D-13 0.63236620936192D-16 + 3 3 1 5 -0.25378431574129D-14 -0.23118362379842D-15 + 1 4 1 5 0.66932952212922D+01 -0.57367564134125D-05 + 2 4 1 5 -0.36067364469060D+01 -0.29977594719916D-05 + 3 4 1 5 0.36067364469057D+01 0.29977594704270D-05 + 1 5 1 5 0.30311912155681D+02 0.00000000000000D+00 + 2 5 1 5 -0.65929699872237D-13 0.47236778638853D-14 + 3 5 1 5 -0.67547588738602D-13 0.00000000000000D+00 + 1 6 1 5 -0.66932952215676D+01 0.57481261960992D-05 + 2 6 1 5 0.36067364469057D+01 0.29977594645199D-05 + 3 6 1 5 0.36067364469057D+01 0.29977594646918D-05 + 1 7 1 5 0.27672363014163D+01 0.24666718147707D-05 + 2 7 1 5 -0.17846222610082D-17 0.31232818851965D-15 + 3 7 1 5 0.15727412217745D-16 0.00000000000000D+00 + 1 8 1 5 -0.66932952215676D+01 0.57481261992424D-05 + 2 8 1 5 -0.36067364469055D+01 -0.29977594714343D-05 + 3 8 1 5 -0.36067364469057D+01 -0.29977594646855D-05 + 1 1 2 5 -0.19476134331170D-14 -0.81857713085218D-16 + 2 1 2 5 -0.86490224129411D-14 -0.46267684099311D-16 + 3 1 2 5 0.16974302115615D+01 -0.86324090846821D-06 + 1 2 2 5 0.36067364469059D+01 -0.29977594660038D-05 + 2 2 2 5 0.64009935773831D+01 -0.62430374337362D-05 + 3 2 2 5 -0.37387391217442D+01 0.41896540968936D-05 + 1 3 2 5 0.17288877902100D-13 0.63236620936192D-16 + 2 3 2 5 0.18995038275932D-13 0.38835749113898D-15 + 3 3 2 5 -0.16974302115615D+01 -0.86324090826175D-06 + 1 4 2 5 -0.36067364469060D+01 0.29977594666413D-05 + 2 4 2 5 0.64009935773830D+01 -0.62430374299739D-05 + 3 4 2 5 -0.37387391217442D+01 0.41896540971269D-05 + 1 5 2 5 -0.65929699872237D-13 -0.47236778638853D-14 + 2 5 2 5 0.29543687482892D+02 0.00000000000000D+00 + 3 5 2 5 -0.95926505557387D-13 -0.51607719262941D-15 + 1 6 2 5 0.36067364469057D+01 -0.29977594646854D-05 + 2 6 2 5 -0.64009935773831D+01 0.62430374311807D-05 + 3 6 2 5 -0.37387391217442D+01 0.41896540968304D-05 + 1 7 2 5 -0.17846222610082D-17 -0.31232818851965D-15 + 2 7 2 5 -0.27213726351038D+01 -0.11587739971291D-04 + 3 7 2 5 -0.33369100989621D-14 0.20455039458989D-14 + 1 8 2 5 -0.36067364469055D+01 0.29977594711942D-05 + 2 8 2 5 -0.64009935773831D+01 0.62430374314031D-05 + 3 8 2 5 -0.37387391217441D+01 0.41896540984584D-05 + 1 1 3 5 0.16478061769386D-13 0.37666512201088D-15 + 2 1 3 5 -0.16974302115615D+01 -0.86324090826034D-06 + 3 1 3 5 0.18106968440231D-13 0.38587617105824D-15 + 1 2 3 5 -0.36067364469057D+01 0.29977594587859D-05 + 2 2 3 5 -0.37387391217442D+01 -0.41896541022240D-05 + 3 2 3 5 0.64009935773832D+01 0.62430374330287D-05 + 1 3 3 5 -0.25378431574129D-14 -0.23118362379842D-15 + 2 3 3 5 0.16974302115615D+01 -0.86324090846963D-06 + 3 3 3 5 -0.75387993827325D-14 -0.48315500963315D-16 + 1 4 3 5 0.36067364469057D+01 -0.29977594587783D-05 + 2 4 3 5 -0.37387391217442D+01 -0.41896541023954D-05 + 3 4 3 5 0.64009935773831D+01 0.62430374334525D-05 + 1 5 3 5 -0.67547588738602D-13 0.00000000000000D+00 + 2 5 3 5 -0.95926505557387D-13 0.51607719262941D-15 + 3 5 3 5 0.29543687482892D+02 0.00000000000000D+00 + 1 6 3 5 0.36067364469057D+01 -0.29977594645135D-05 + 2 6 3 5 -0.37387391217442D+01 -0.41896540968452D-05 + 3 6 3 5 -0.64009935773831D+01 -0.62430374310110D-05 + 1 7 3 5 0.15727412217745D-16 0.00000000000000D+00 + 2 7 3 5 -0.33369100989621D-14 -0.20455039458989D-14 + 3 7 3 5 -0.27213726351038D+01 -0.11587739971291D-04 + 1 8 3 5 -0.36067364469057D+01 0.29977594645198D-05 + 2 8 3 5 -0.37387391217441D+01 -0.41896540984545D-05 + 3 8 3 5 -0.64009935773831D+01 -0.62430374308961D-05 + 1 1 1 6 -0.66932952212922D+01 -0.57367564156419D-05 + 2 1 1 6 -0.36067364469059D+01 -0.29977594655919D-05 + 3 1 1 6 0.36067364469057D+01 0.29977594647631D-05 + 1 2 1 6 0.19977667770284D-14 0.12261955049431D-14 + 2 2 1 6 0.26419048739718D-18 -0.81857713085218D-16 + 3 2 1 6 0.11121812642682D-14 0.37666512201088D-15 + 1 3 1 6 -0.66932952212923D+01 -0.57367564166882D-05 + 2 3 1 6 0.36067364469060D+01 0.29977594664185D-05 + 3 3 1 6 -0.36067364469057D+01 -0.29977594646612D-05 + 1 4 1 6 0.19977668018954D-14 0.12624244191252D-14 + 2 4 1 6 0.10250611736534D-14 0.63236620936192D-16 + 3 4 1 6 -0.15955187274068D-18 -0.23118362379842D-15 + 1 5 1 6 -0.66932952215676D+01 -0.57481261960992D-05 + 2 5 1 6 0.36067364469057D+01 0.29977594646854D-05 + 3 5 1 6 0.36067364469057D+01 0.29977594645135D-05 + 1 6 1 6 0.30311912155681D+02 0.00000000000000D+00 + 2 6 1 6 -0.30514432593511D-13 0.47236778638853D-14 + 3 6 1 6 -0.53431039464138D-13 0.00000000000000D+00 + 1 7 1 6 -0.66932952215676D+01 -0.57481261990246D-05 + 2 7 1 6 -0.36067364469056D+01 -0.29977594710227D-05 + 3 7 1 6 -0.36067364469057D+01 -0.29977594645676D-05 + 1 8 1 6 0.27672363014163D+01 0.24666718147707D-05 + 2 8 1 6 -0.11169742361512D-16 0.31232818851965D-15 + 3 8 1 6 0.26291613307713D-16 0.00000000000000D+00 + 1 1 2 6 -0.36067364469059D+01 0.29977594655626D-05 + 2 1 2 6 -0.64009935773831D+01 -0.62430374335037D-05 + 3 1 2 6 0.37387391217442D+01 -0.41896540970701D-05 + 1 2 2 6 0.26419048739738D-18 -0.81857713085218D-16 + 2 2 2 6 0.71768420217530D-15 -0.46267684099311D-16 + 3 2 2 6 -0.16974302115615D+01 0.86324090848663D-06 + 1 3 2 6 0.36067364469060D+01 -0.29977594661523D-05 + 2 3 2 6 -0.64009935773830D+01 -0.62430374301866D-05 + 3 3 2 6 0.37387391217442D+01 -0.41896540972191D-05 + 1 4 2 6 0.10250611736534D-14 0.63236620936192D-16 + 2 4 2 6 -0.11112993716076D-14 0.38835749113898D-15 + 3 4 2 6 0.16974302115615D+01 0.86324090827734D-06 + 1 5 2 6 0.36067364469057D+01 -0.29977594645199D-05 + 2 5 2 6 -0.64009935773831D+01 -0.62430374311807D-05 + 3 5 2 6 -0.37387391217442D+01 0.41896540968452D-05 + 1 6 2 6 -0.30514432593511D-13 -0.47236778638853D-14 + 2 6 2 6 0.29543687482892D+02 0.00000000000000D+00 + 3 6 2 6 -0.81669755013516D-13 -0.51607719262941D-15 + 1 7 2 6 -0.36067364469056D+01 0.29977594716058D-05 + 2 7 2 6 -0.64009935773830D+01 -0.62430374325049D-05 + 3 7 2 6 -0.37387391217441D+01 0.41896540984288D-05 + 1 8 2 6 -0.11169742361512D-16 -0.31232818851965D-15 + 2 8 2 6 -0.27213726351038D+01 -0.11587739971291D-04 + 3 8 2 6 -0.23623182498381D-15 0.20455039458989D-14 + 1 1 3 6 0.36067364469057D+01 -0.29977594644422D-05 + 2 1 3 6 0.37387391217442D+01 0.41896540969674D-05 + 3 1 3 6 -0.64009935773831D+01 -0.62430374317605D-05 + 1 2 3 6 0.11121812642682D-14 0.37666512201088D-15 + 2 2 3 6 0.16974302115615D+01 0.86324090827876D-06 + 3 2 3 6 -0.11112994199977D-14 0.38587617105824D-15 + 1 3 3 6 -0.36067364469057D+01 0.29977594645441D-05 + 2 3 3 6 0.37387391217442D+01 0.41896540972231D-05 + 3 3 3 6 -0.64009935773831D+01 -0.62430374329002D-05 + 1 4 3 6 -0.15955187274049D-18 -0.23118362379842D-15 + 2 4 3 6 -0.16974302115615D+01 0.86324090848522D-06 + 3 4 3 6 0.71768419969387D-15 -0.48315500963315D-16 + 1 5 3 6 0.36067364469057D+01 -0.29977594646918D-05 + 2 5 3 6 -0.37387391217442D+01 -0.41896540968304D-05 + 3 5 3 6 -0.64009935773831D+01 -0.62430374320229D-05 + 1 6 3 6 -0.53431039464138D-13 0.00000000000000D+00 + 2 6 3 6 -0.81669755013516D-13 0.51607719262941D-15 + 3 6 3 6 0.29543687482892D+02 0.00000000000000D+00 + 1 7 3 6 -0.36067364469057D+01 0.29977594646377D-05 + 2 7 3 6 -0.37387391217441D+01 -0.41896540984840D-05 + 3 7 3 6 -0.64009935773831D+01 -0.62430374310970D-05 + 1 8 3 6 0.26291613307713D-16 0.00000000000000D+00 + 2 8 3 6 -0.23623182498381D-15 -0.20455039458989D-14 + 3 8 3 6 -0.27213726351038D+01 -0.11587739971291D-04 + 1 1 1 7 -0.94597312971929D-14 0.12624244191252D-14 + 2 1 1 7 -0.13190455610890D-13 0.63236620936191D-16 + 3 1 1 7 0.18657691865040D-14 -0.23118362379842D-15 + 1 2 1 7 0.66932952212922D+01 -0.57367564135100D-05 + 2 2 1 7 -0.36067364469060D+01 -0.29977594720189D-05 + 3 2 1 7 0.36067364469057D+01 0.29977594701802D-05 + 1 3 1 7 -0.92374701250611D-14 0.12261955049431D-14 + 2 3 1 7 0.16085864926817D-14 -0.81857713085218D-16 + 3 3 1 7 -0.12215373712708D-13 0.37666512201088D-15 + 1 4 1 7 0.66932952212921D+01 -0.57367564105610D-05 + 2 4 1 7 0.36067364469059D+01 0.29977594716351D-05 + 3 4 1 7 -0.36067364469057D+01 -0.29977594703101D-05 + 1 5 1 7 0.27672363014163D+01 0.24666718147707D-05 + 2 5 1 7 -0.17846222610082D-17 0.31232818851965D-15 + 3 5 1 7 0.15727412217745D-16 0.00000000000000D+00 + 1 6 1 7 -0.66932952215676D+01 0.57481261990246D-05 + 2 6 1 7 -0.36067364469056D+01 -0.29977594716058D-05 + 3 6 1 7 -0.36067364469057D+01 -0.29977594646377D-05 + 1 7 1 7 0.30311912155681D+02 0.00000000000000D+00 + 2 7 1 7 -0.12639469789174D-13 0.47236778638853D-14 + 3 7 1 7 -0.35992176257548D-14 0.00000000000000D+00 + 1 8 1 7 -0.66932952215676D+01 0.57481261942838D-05 + 2 8 1 7 0.36067364469057D+01 0.29977594643725D-05 + 3 8 1 7 0.36067364469057D+01 0.29977594645540D-05 + 1 1 2 7 -0.13190455610890D-13 0.63236620936191D-16 + 2 1 2 7 0.79444908740584D-14 0.38835749113898D-15 + 3 1 2 7 -0.16974302115615D+01 -0.86324090826175D-06 + 1 2 2 7 -0.36067364469060D+01 0.29977594666141D-05 + 2 2 2 7 0.64009935773830D+01 -0.62430374299431D-05 + 3 2 2 7 -0.37387391217442D+01 0.41896540971041D-05 + 1 3 2 7 0.16085864926817D-14 -0.81857713085218D-16 + 2 3 2 7 -0.27053588967959D-14 -0.46267684099311D-16 + 3 3 2 7 0.16974302115615D+01 -0.86324090846821D-06 + 1 4 2 7 0.36067364469059D+01 -0.29977594655815D-05 + 2 4 2 7 0.64009935773831D+01 -0.62430374337617D-05 + 3 4 2 7 -0.37387391217442D+01 0.41896540969133D-05 + 1 5 2 7 -0.17846222610082D-17 -0.31232818851965D-15 + 2 5 2 7 -0.27213726351038D+01 -0.11587739971291D-04 + 3 5 2 7 -0.33369100989621D-14 0.20455039458989D-14 + 1 6 2 7 -0.36067364469056D+01 0.29977594710227D-05 + 2 6 2 7 -0.64009935773830D+01 0.62430374325049D-05 + 3 6 2 7 -0.37387391217441D+01 0.41896540984840D-05 + 1 7 2 7 -0.12639469789174D-13 -0.47236778638853D-14 + 2 7 2 7 0.29543687482892D+02 0.00000000000000D+00 + 3 7 2 7 -0.14566402196724D-12 -0.51607719262941D-15 + 1 8 2 7 0.36067364469057D+01 -0.29977594648328D-05 + 2 8 2 7 -0.64009935773831D+01 0.62430374322023D-05 + 3 8 2 7 -0.37387391217442D+01 0.41896540968224D-05 + 1 1 3 7 0.18657691865040D-14 -0.23118362379842D-15 + 2 1 3 7 0.16974302115615D+01 -0.86324090846963D-06 + 3 1 3 7 -0.32604704115899D-14 -0.48315500963315D-16 + 1 2 3 7 0.36067364469057D+01 -0.29977594590251D-05 + 2 2 3 7 -0.37387391217442D+01 -0.41896541024182D-05 + 3 2 3 7 0.64009935773831D+01 0.62430374326326D-05 + 1 3 3 7 -0.12215373712708D-13 0.37666512201088D-15 + 2 3 3 7 -0.16974302115615D+01 -0.86324090826034D-06 + 3 3 3 7 0.83884715449908D-14 0.38587617105824D-15 + 1 4 3 7 -0.36067364469057D+01 0.29977594588952D-05 + 2 4 3 7 -0.37387391217442D+01 -0.41896541022043D-05 + 3 4 3 7 0.64009935773831D+01 0.62430374331797D-05 + 1 5 3 7 0.15727412217745D-16 0.00000000000000D+00 + 2 5 3 7 -0.33369100989621D-14 -0.20455039458989D-14 + 3 5 3 7 -0.27213726351038D+01 -0.11587739971291D-04 + 1 6 3 7 -0.36067364469057D+01 0.29977594645676D-05 + 2 6 3 7 -0.37387391217441D+01 -0.41896540984288D-05 + 3 6 3 7 -0.64009935773831D+01 -0.62430374319369D-05 + 1 7 3 7 -0.35992176257548D-14 0.00000000000000D+00 + 2 7 3 7 -0.14566402196724D-12 0.51607719262941D-15 + 3 7 3 7 0.29543687482892D+02 0.00000000000000D+00 + 1 8 3 7 0.36067364469057D+01 -0.29977594646513D-05 + 2 8 3 7 -0.37387391217442D+01 -0.41896540968531D-05 + 3 8 3 7 -0.64009935773831D+01 -0.62430374319875D-05 + 1 1 1 8 -0.66932952212923D+01 -0.57367564163859D-05 + 2 1 1 8 0.36067364469059D+01 0.29977594662825D-05 + 3 1 1 8 -0.36067364469057D+01 -0.29977594645933D-05 + 1 2 1 8 0.19977668018954D-14 0.12624244191252D-14 + 2 2 1 8 -0.75129566574684D-15 0.63236620936192D-16 + 3 2 1 8 -0.15955187274068D-18 -0.23118362379842D-15 + 1 3 1 8 -0.66932952212922D+01 -0.57367564159231D-05 + 2 3 1 8 -0.36067364469059D+01 -0.29977594654404D-05 + 3 3 1 8 0.36067364469057D+01 0.29977594645463D-05 + 1 4 1 8 0.19977667770284D-14 0.12261955049431D-14 + 2 4 1 8 0.26419048739718D-18 -0.81857713085218D-16 + 3 4 1 8 -0.66417557513207D-15 0.37666512201088D-15 + 1 5 1 8 -0.66932952215676D+01 -0.57481261992424D-05 + 2 5 1 8 -0.36067364469055D+01 -0.29977594711942D-05 + 3 5 1 8 -0.36067364469057D+01 -0.29977594645198D-05 + 1 6 1 8 0.27672363014163D+01 0.24666718147707D-05 + 2 6 1 8 -0.11169742361512D-16 0.31232818851965D-15 + 3 6 1 8 0.26291613307713D-16 0.00000000000000D+00 + 1 7 1 8 -0.66932952215676D+01 -0.57481261942838D-05 + 2 7 1 8 0.36067364469057D+01 0.29977594648328D-05 + 3 7 1 8 0.36067364469057D+01 0.29977594646513D-05 + 1 8 1 8 0.30311912155681D+02 0.00000000000000D+00 + 2 8 1 8 0.30081104604463D-13 0.47236778638853D-14 + 3 8 1 8 -0.10598840267169D-13 0.00000000000000D+00 + 1 1 2 8 0.36067364469059D+01 -0.29977594662883D-05 + 2 1 2 8 -0.64009935773830D+01 -0.62430374302686D-05 + 3 1 2 8 0.37387391217442D+01 -0.41896540972191D-05 + 1 2 2 8 -0.75129566574684D-15 0.63236620936192D-16 + 2 2 2 8 -0.11112993716076D-14 0.38835749113898D-15 + 3 2 2 8 0.16974302115615D+01 0.86324090827734D-06 + 1 3 2 8 -0.36067364469059D+01 0.29977594657141D-05 + 2 3 2 8 -0.64009935773831D+01 -0.62430374337221D-05 + 3 3 2 8 0.37387391217442D+01 -0.41896540970020D-05 + 1 4 2 8 0.26419048739738D-18 -0.81857713085218D-16 + 2 4 2 8 0.71768420217530D-15 -0.46267684099311D-16 + 3 4 2 8 -0.16974302115615D+01 0.86324090848663D-06 + 1 5 2 8 -0.36067364469055D+01 0.29977594714343D-05 + 2 5 2 8 -0.64009935773831D+01 -0.62430374314031D-05 + 3 5 2 8 -0.37387391217441D+01 0.41896540984545D-05 + 1 6 2 8 -0.11169742361512D-16 -0.31232818851965D-15 + 2 6 2 8 -0.27213726351038D+01 -0.11587739971291D-04 + 3 6 2 8 -0.23623182498381D-15 0.20455039458989D-14 + 1 7 2 8 0.36067364469057D+01 -0.29977594643725D-05 + 2 7 2 8 -0.64009935773831D+01 -0.62430374322023D-05 + 3 7 2 8 -0.37387391217442D+01 0.41896540968531D-05 + 1 8 2 8 0.30081104604463D-13 -0.47236778638853D-14 + 2 8 2 8 0.29543687482892D+02 0.00000000000000D+00 + 3 8 2 8 -0.35552093756814D-13 -0.51607719262941D-15 + 1 1 3 8 -0.36067364469057D+01 0.29977594646121D-05 + 2 1 3 8 0.37387391217442D+01 0.41896540972231D-05 + 3 1 3 8 -0.64009935773831D+01 -0.62430374333126D-05 + 1 2 3 8 -0.15955187274049D-18 -0.23118362379842D-15 + 2 2 3 8 -0.16974302115615D+01 0.86324090848522D-06 + 3 2 3 8 0.71768419969387D-15 -0.48315500963315D-16 + 1 3 3 8 0.36067364469057D+01 -0.29977594646591D-05 + 2 3 3 8 0.37387391217442D+01 0.41896540970355D-05 + 3 3 3 8 -0.64009935773831D+01 -0.62430374317195D-05 + 1 4 3 8 -0.66417557513207D-15 0.37666512201088D-15 + 2 4 3 8 0.16974302115615D+01 0.86324090827876D-06 + 3 4 3 8 -0.11112994199977D-14 0.38587617105824D-15 + 1 5 3 8 -0.36067364469057D+01 0.29977594646855D-05 + 2 5 3 8 -0.37387391217441D+01 -0.41896540984584D-05 + 3 5 3 8 -0.64009935773831D+01 -0.62430374321378D-05 + 1 6 3 8 0.26291613307713D-16 0.00000000000000D+00 + 2 6 3 8 -0.23623182498381D-15 -0.20455039458989D-14 + 3 6 3 8 -0.27213726351038D+01 -0.11587739971291D-04 + 1 7 3 8 0.36067364469057D+01 -0.29977594645540D-05 + 2 7 3 8 -0.37387391217442D+01 -0.41896540968224D-05 + 3 7 3 8 -0.64009935773831D+01 -0.62430374310464D-05 + 1 8 3 8 -0.10598840267169D-13 0.00000000000000D+00 + 2 8 3 8 -0.35552093756814D-13 0.51607719262941D-15 + 3 8 3 8 0.29543687482892D+02 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.29844501315182D+02 0.77374398346088D-15 + 2 1 1 1 0.97799015718759D-01 -0.11373803425093D-05 + 3 1 1 1 -0.50828451736868D-06 0.14294730383856D+00 + 1 2 1 1 -0.88266543732178D-01 0.66779739468768D+01 + 2 2 1 1 -0.49659199380282D-05 -0.37979464939789D+01 + 3 2 1 1 -0.22843826002319D-01 -0.39195035523859D+01 + 1 3 1 1 0.14022024350491D+01 -0.14022001884463D+01 + 2 3 1 1 -0.59912121942345D-02 0.59901353449492D-02 + 3 3 1 1 0.82389532125830D+00 0.82389026336391D+00 + 1 4 1 1 -0.65197654107313D+01 0.88008018729772D-01 + 2 4 1 1 -0.36072797130414D+01 0.43758995035383D+00 + 3 4 1 1 -0.36651400297845D+01 0.25164959953390D+00 + 1 5 1 1 -0.14444969908010D+01 -0.14444863643351D+01 + 2 5 1 1 -0.59909904597495D-02 -0.59937190467352D-02 + 3 5 1 1 0.17927516236723D-01 -0.17928747195308D-01 + 1 6 1 1 -0.87998823805333D-01 0.65197664061030D+01 + 2 6 1 1 -0.43758409363804D+00 0.36072784932719D+01 + 3 6 1 1 0.25164282208382D+00 -0.36651384511980D+01 + 1 7 1 1 -0.15121697154740D+01 0.57513982385813D-05 + 2 7 1 1 0.14630807184819D+01 -0.22954924676681D-05 + 3 7 1 1 -0.29921091155494D-05 -0.86704138703495D+00 + 1 8 1 1 -0.66779784182594D+01 0.88281159640773D-01 + 2 8 1 1 0.37979514221842D+01 -0.65175928976253D-05 + 3 8 1 1 -0.39195014931957D+01 -0.22843759496839D-01 + 1 1 2 1 0.97799015718759D-01 0.11373803425856D-05 + 2 1 2 1 0.29844501315182D+02 0.24814839580152D-14 + 3 1 2 1 -0.50828443085652D-06 0.14294730383855D+00 + 1 2 2 1 -0.49659199380282D-05 -0.37979464939789D+01 + 2 2 2 1 0.88281159640780D-01 0.66779784182594D+01 + 3 2 2 1 -0.22843759496852D-01 0.39195014931956D+01 + 1 3 2 1 -0.59901353449474D-02 0.59912121942363D-02 + 2 3 2 1 -0.14444969908010D+01 0.14444863643351D+01 + 3 3 2 1 -0.17928747195277D-01 -0.17927516236718D-01 + 1 4 2 1 -0.36072797130414D+01 0.43758995035383D+00 + 2 4 2 1 -0.65197654107313D+01 0.88008018729776D-01 + 3 4 2 1 -0.36651400297844D+01 0.25164959953383D+00 + 1 5 2 1 -0.59937190467476D-02 -0.59909904597371D-02 + 2 5 2 1 0.14022024350491D+01 0.14022001884463D+01 + 3 5 2 1 -0.82389026336391D+00 0.82389532125833D+00 + 1 6 2 1 -0.43758409363804D+00 0.36072784932719D+01 + 2 6 2 1 -0.88008018729770D-01 0.65197654107313D+01 + 3 6 2 1 0.25164282208382D+00 -0.36651384511981D+01 + 1 7 2 1 0.14630807184819D+01 0.22954924649053D-05 + 2 7 2 1 -0.15121697154740D+01 -0.57513982455932D-05 + 3 7 2 1 -0.29921091179760D-05 -0.86704138703490D+00 + 1 8 2 1 0.37979514221842D+01 -0.65175928976253D-05 + 2 8 2 1 -0.66779784182594D+01 -0.88281159640771D-01 + 3 8 2 1 0.39195035523858D+01 -0.22843826002335D-01 + 1 1 3 1 -0.50828451736868D-06 -0.14294730383856D+00 + 2 1 3 1 -0.50828443085652D-06 -0.14294730383855D+00 + 3 1 3 1 0.29878146475669D+02 0.36422790050523D-15 + 1 2 3 1 -0.22843826002319D-01 -0.39195035523859D+01 + 2 2 3 1 -0.22843759496852D-01 0.39195014931956D+01 + 3 2 3 1 0.19077414230023D-05 0.68262111004954D+01 + 1 3 3 1 -0.82389026336391D+00 -0.82389532125830D+00 + 2 3 3 1 0.17927516236704D-01 0.17928747195262D-01 + 3 3 3 1 -0.14353554910258D+01 0.14353571236787D+01 + 1 4 3 1 -0.36651400297845D+01 0.25164959953390D+00 + 2 4 3 1 -0.36651400297844D+01 0.25164959953383D+00 + 3 4 3 1 -0.63428763759112D+01 -0.20263545963384D-01 + 1 5 3 1 -0.17928747195293D-01 0.17927516236708D-01 + 2 5 3 1 0.82389532125833D+00 -0.82389026336392D+00 + 3 5 3 1 -0.14353571236787D+01 -0.14353554910258D+01 + 1 6 3 1 0.25164282208382D+00 -0.36651384511980D+01 + 2 6 3 1 0.25164282208382D+00 -0.36651384511981D+01 + 3 6 3 1 0.20265611826118D-01 0.63428820002656D+01 + 1 7 3 1 -0.29921091155494D-05 0.86704138703495D+00 + 2 7 3 1 -0.29921091179760D-05 0.86704138703490D+00 + 3 7 3 1 0.15256608564217D+01 0.24950352227562D-06 + 1 8 3 1 -0.39195014931957D+01 -0.22843759496839D-01 + 2 8 3 1 0.39195035523858D+01 -0.22843826002335D-01 + 3 8 3 1 -0.68262111004954D+01 0.19077414242157D-05 + 1 1 1 2 -0.88266543732178D-01 -0.66779739468768D+01 + 2 1 1 2 -0.49659199380282D-05 0.37979464939789D+01 + 3 1 1 2 -0.22843826002319D-01 0.39195035523859D+01 + 1 2 1 2 0.29844501315182D+02 -0.28632564269120D-17 + 2 2 1 2 0.97799015718649D-01 0.11373803425475D-05 + 3 2 1 2 -0.50828447473279D-06 -0.14294730383856D+00 + 1 3 1 2 -0.65197654107313D+01 -0.88008018729774D-01 + 2 3 1 2 -0.36072797130414D+01 -0.43758995035383D+00 + 3 3 1 2 -0.36651400297845D+01 -0.25164959953390D+00 + 1 4 1 2 0.14022001884463D+01 0.14022024350491D+01 + 2 4 1 2 -0.59912121942363D-02 -0.59901353449492D-02 + 3 4 1 2 0.82389532125830D+00 -0.82389026336391D+00 + 1 5 1 2 0.65197664061030D+01 -0.87998823805334D-01 + 2 5 1 2 0.36072784932719D+01 -0.43758409363805D+00 + 3 5 1 2 -0.36651384511980D+01 0.25164282208382D+00 + 1 6 1 2 -0.14444969908010D+01 -0.14444863643351D+01 + 2 6 1 2 -0.59937190467405D-02 -0.59909904597424D-02 + 3 6 1 2 -0.17928747195299D-01 0.17927516236717D-01 + 1 7 1 2 0.88281159640777D-01 -0.66779784182594D+01 + 2 7 1 2 -0.65175928974134D-05 0.37979514221842D+01 + 3 7 1 2 -0.22843759496840D-01 -0.39195014931957D+01 + 1 8 1 2 -0.57513982332697D-05 -0.15121697154740D+01 + 2 8 1 2 -0.22954924682439D-05 0.14630807184819D+01 + 3 8 1 2 -0.86704138703495D+00 -0.29921091154965D-05 + 1 1 2 2 -0.49659199380282D-05 0.37979464939789D+01 + 2 1 2 2 0.88281159640780D-01 -0.66779784182594D+01 + 3 1 2 2 -0.22843759496852D-01 -0.39195014931956D+01 + 1 2 2 2 0.97799015718649D-01 -0.11373803425475D-05 + 2 2 2 2 0.29844501315182D+02 -0.49971493346912D-17 + 3 2 2 2 -0.50828450201488D-06 -0.14294730383855D+00 + 1 3 2 2 -0.36072797130414D+01 -0.43758995035383D+00 + 2 3 2 2 -0.65197654107313D+01 -0.88008018729773D-01 + 3 3 2 2 -0.36651400297844D+01 -0.25164959953383D+00 + 1 4 2 2 -0.59901353449492D-02 -0.59912121942363D-02 + 2 4 2 2 -0.14444969908010D+01 -0.14444863643351D+01 + 3 4 2 2 -0.17928747195271D-01 0.17927516236709D-01 + 1 5 2 2 0.36072784932719D+01 -0.43758409363805D+00 + 2 5 2 2 0.65197654107313D+01 -0.88008018729774D-01 + 3 5 2 2 -0.36651384511981D+01 0.25164282208382D+00 + 1 6 2 2 -0.59909904597424D-02 -0.59937190467405D-02 + 2 6 2 2 0.14022001884463D+01 0.14022024350491D+01 + 3 6 2 2 0.82389532125833D+00 -0.82389026336391D+00 + 1 7 2 2 -0.65175928974134D-05 0.37979514221842D+01 + 2 7 2 2 -0.88281159640772D-01 -0.66779784182594D+01 + 3 7 2 2 -0.22843826002336D-01 0.39195035523859D+01 + 1 8 2 2 0.22954924643295D-05 0.14630807184819D+01 + 2 8 2 2 -0.57513982332757D-05 -0.15121697154740D+01 + 3 8 2 2 -0.86704138703490D+00 -0.29921091179228D-05 + 1 1 3 2 -0.22843826002319D-01 0.39195035523859D+01 + 2 1 3 2 -0.22843759496852D-01 -0.39195014931956D+01 + 3 1 3 2 0.19077414230023D-05 -0.68262111004954D+01 + 1 2 3 2 -0.50828447473279D-06 0.14294730383856D+00 + 2 2 3 2 -0.50828450201488D-06 0.14294730383855D+00 + 3 2 3 2 0.29878146475669D+02 0.49162416350320D-18 + 1 3 3 2 -0.36651400297845D+01 -0.25164959953390D+00 + 2 3 3 2 -0.36651400297844D+01 -0.25164959953383D+00 + 3 3 3 2 -0.63428763759113D+01 0.20263545963381D-01 + 1 4 3 2 -0.82389026336391D+00 0.82389532125830D+00 + 2 4 3 2 0.17927516236710D-01 -0.17928747195272D-01 + 3 4 3 2 -0.14353571236787D+01 -0.14353554910258D+01 + 1 5 3 2 -0.36651384511980D+01 0.25164282208382D+00 + 2 5 3 2 -0.36651384511981D+01 0.25164282208382D+00 + 3 5 3 2 0.63428820002656D+01 0.20265611826114D-01 + 1 6 3 2 0.17927516236718D-01 -0.17928747195299D-01 + 2 6 3 2 -0.82389026336391D+00 0.82389532125833D+00 + 3 6 3 2 -0.14353571236787D+01 -0.14353554910258D+01 + 1 7 3 2 -0.22843759496840D-01 -0.39195014931957D+01 + 2 7 3 2 -0.22843826002336D-01 0.39195035523859D+01 + 3 7 3 2 0.19077414241655D-05 -0.68262111004954D+01 + 1 8 3 2 0.86704138703495D+00 -0.29921091156027D-05 + 2 8 3 2 0.86704138703490D+00 -0.29921091180290D-05 + 3 8 3 2 -0.24950352283665D-06 0.15256608564217D+01 + 1 1 1 3 0.14022024350491D+01 0.14022001884463D+01 + 2 1 1 3 -0.59901353449474D-02 -0.59912121942363D-02 + 3 1 1 3 -0.82389026336391D+00 0.82389532125830D+00 + 1 2 1 3 -0.65197654107313D+01 0.88008018729774D-01 + 2 2 1 3 -0.36072797130414D+01 0.43758995035383D+00 + 3 2 1 3 -0.36651400297845D+01 0.25164959953390D+00 + 1 3 1 3 0.29844501315182D+02 -0.28632564269120D-17 + 2 3 1 3 0.97799015718638D-01 -0.11373803425769D-05 + 3 3 1 3 -0.50828441789269D-06 0.14294730383856D+00 + 1 4 1 3 -0.66779739468768D+01 -0.88266543732178D-01 + 2 4 1 3 0.37979464939789D+01 -0.49659199409213D-05 + 3 4 1 3 0.39195035523858D+01 -0.22843826002319D-01 + 1 5 1 3 -0.57513982273747D-05 -0.15121697154740D+01 + 2 5 1 3 0.22954924801492D-05 0.14630807184819D+01 + 3 5 1 3 0.86704138703495D+00 -0.29921091156027D-05 + 1 6 1 3 -0.66779784182594D+01 0.88281159640769D-01 + 2 6 1 3 0.37979514221843D+01 -0.65175928994103D-05 + 3 6 1 3 -0.39195014931957D+01 -0.22843759496838D-01 + 1 7 1 3 -0.14444969908010D+01 -0.14444863643351D+01 + 2 7 1 3 -0.59909904597415D-02 -0.59937190467405D-02 + 3 7 1 3 0.17927516236712D-01 -0.17928747195291D-01 + 1 8 1 3 -0.65197664061030D+01 -0.87998823805332D-01 + 2 8 1 3 -0.36072784932719D+01 -0.43758409363804D+00 + 3 8 1 3 0.36651384511980D+01 0.25164282208382D+00 + 1 1 2 3 -0.59912121942345D-02 -0.59901353449492D-02 + 2 1 2 3 -0.14444863643351D+01 -0.14444969908010D+01 + 3 1 2 3 0.17927516236704D-01 -0.17928747195262D-01 + 1 2 2 3 -0.36072797130414D+01 0.43758995035383D+00 + 2 2 2 3 -0.65197654107313D+01 0.88008018729773D-01 + 3 2 2 3 -0.36651400297844D+01 0.25164959953383D+00 + 1 3 2 3 0.97799015718638D-01 0.11373803425180D-05 + 2 3 2 3 0.29844501315182D+02 -0.49971493346912D-17 + 3 3 2 3 -0.50828444506738D-06 0.14294730383855D+00 + 1 4 2 3 0.37979464939789D+01 -0.49659199409213D-05 + 2 4 2 3 -0.66779784182594D+01 0.88281159640773D-01 + 3 4 2 3 -0.39195014931956D+01 -0.22843759496850D-01 + 1 5 2 3 -0.22954924524242D-05 0.14630807184819D+01 + 2 5 2 3 0.57513982349542D-05 -0.15121697154740D+01 + 3 5 2 3 0.86704138703490D+00 -0.29921091180290D-05 + 1 6 2 3 0.37979514221843D+01 -0.65175928994103D-05 + 2 6 2 3 -0.66779784182594D+01 -0.88281159640770D-01 + 3 6 2 3 0.39195035523859D+01 -0.22843826002337D-01 + 1 7 2 3 -0.59937190467396D-02 -0.59909904597424D-02 + 2 7 2 3 0.14022024350491D+01 0.14022001884463D+01 + 3 7 2 3 -0.82389026336392D+00 0.82389532125833D+00 + 1 8 2 3 -0.36072784932719D+01 -0.43758409363804D+00 + 2 8 2 3 -0.65197654107313D+01 -0.88008018729774D-01 + 3 8 2 3 0.36651384511980D+01 0.25164282208381D+00 + 1 1 3 3 0.82389532125830D+00 -0.82389026336391D+00 + 2 1 3 3 -0.17928747195277D-01 0.17927516236718D-01 + 3 1 3 3 -0.14353554910258D+01 -0.14353571236787D+01 + 1 2 3 3 -0.36651400297845D+01 0.25164959953390D+00 + 2 2 3 3 -0.36651400297844D+01 0.25164959953383D+00 + 3 2 3 3 -0.63428763759113D+01 -0.20263545963381D-01 + 1 3 3 3 -0.50828441789269D-06 -0.14294730383856D+00 + 2 3 3 3 -0.50828444506738D-06 -0.14294730383855D+00 + 3 3 3 3 0.29878146475669D+02 -0.30734448378146D-16 + 1 4 3 3 0.39195035523858D+01 -0.22843826002319D-01 + 2 4 3 3 -0.39195014931956D+01 -0.22843759496850D-01 + 3 4 3 3 -0.68262111004954D+01 0.19077414235188D-05 + 1 5 3 3 -0.86704138703495D+00 -0.29921091154965D-05 + 2 5 3 3 -0.86704138703490D+00 -0.29921091179228D-05 + 3 5 3 3 -0.24950353153766D-06 0.15256608564217D+01 + 1 6 3 3 -0.39195014931957D+01 -0.22843759496838D-01 + 2 6 3 3 0.39195035523859D+01 -0.22843826002337D-01 + 3 6 3 3 -0.68262111004954D+01 0.19077414242419D-05 + 1 7 3 3 -0.17928747195304D-01 0.17927516236726D-01 + 2 7 3 3 0.82389532125833D+00 -0.82389026336391D+00 + 3 7 3 3 -0.14353571236787D+01 -0.14353554910258D+01 + 1 8 3 3 0.36651384511980D+01 0.25164282208382D+00 + 2 8 3 3 0.36651384511980D+01 0.25164282208381D+00 + 3 8 3 3 -0.63428820002656D+01 0.20265611826115D-01 + 1 1 1 4 -0.65197654107313D+01 -0.88008018729772D-01 + 2 1 1 4 -0.36072797130414D+01 -0.43758995035383D+00 + 3 1 1 4 -0.36651400297845D+01 -0.25164959953390D+00 + 1 2 1 4 0.14022024350491D+01 -0.14022001884463D+01 + 2 2 1 4 -0.59901353449492D-02 0.59912121942363D-02 + 3 2 1 4 -0.82389026336391D+00 -0.82389532125830D+00 + 1 3 1 4 -0.66779739468768D+01 0.88266543732178D-01 + 2 3 1 4 0.37979464939789D+01 0.49659199409213D-05 + 3 3 1 4 0.39195035523858D+01 0.22843826002319D-01 + 1 4 1 4 0.29844501315182D+02 -0.28632564269120D-17 + 2 4 1 4 0.97799015718670D-01 0.11373803425475D-05 + 3 4 1 4 -0.50828446768508D-06 -0.14294730383856D+00 + 1 5 1 4 0.88281159640770D-01 -0.66779784182594D+01 + 2 5 1 4 -0.65175929001976D-05 0.37979514221843D+01 + 3 5 1 4 -0.22843759496840D-01 -0.39195014931957D+01 + 1 6 1 4 -0.15121697154740D+01 0.57513982324497D-05 + 2 6 1 4 0.14630807184819D+01 0.22954924662376D-05 + 3 6 1 4 -0.29921091155495D-05 0.86704138703495D+00 + 1 7 1 4 -0.87998823805326D-01 -0.65197664061030D+01 + 2 7 1 4 -0.43758409363804D+00 -0.36072784932719D+01 + 3 7 1 4 0.25164282208382D+00 0.36651384511980D+01 + 1 8 1 4 -0.14444969908010D+01 -0.14444863643351D+01 + 2 8 1 4 -0.59937190467405D-02 -0.59909904597424D-02 + 3 8 1 4 -0.17928747195299D-01 0.17927516236718D-01 + 1 1 2 4 -0.36072797130414D+01 -0.43758995035383D+00 + 2 1 2 4 -0.65197654107313D+01 -0.88008018729776D-01 + 3 1 2 4 -0.36651400297844D+01 -0.25164959953383D+00 + 1 2 2 4 -0.59912121942363D-02 0.59901353449492D-02 + 2 2 2 4 -0.14444863643351D+01 0.14444969908010D+01 + 3 2 2 4 0.17927516236710D-01 0.17928747195272D-01 + 1 3 2 4 0.37979464939789D+01 0.49659199409213D-05 + 2 3 2 4 -0.66779784182594D+01 -0.88281159640773D-01 + 3 3 2 4 -0.39195014931956D+01 0.22843759496850D-01 + 1 4 2 4 0.97799015718670D-01 -0.11373803425475D-05 + 2 4 2 4 0.29844501315182D+02 -0.49971493346912D-17 + 3 4 2 4 -0.50828449115100D-06 -0.14294730383855D+00 + 1 5 2 4 -0.65175929001976D-05 0.37979514221843D+01 + 2 5 2 4 -0.88281159640773D-01 -0.66779784182594D+01 + 3 5 2 4 -0.22843826002335D-01 0.39195035523859D+01 + 1 6 2 4 0.14630807184819D+01 -0.22954924663359D-05 + 2 6 2 4 -0.15121697154740D+01 0.57513982346761D-05 + 3 6 2 4 -0.29921091179760D-05 0.86704138703490D+00 + 1 7 2 4 -0.43758409363804D+00 -0.36072784932719D+01 + 2 7 2 4 -0.88008018729776D-01 -0.65197654107313D+01 + 3 7 2 4 0.25164282208381D+00 0.36651384511981D+01 + 1 8 2 4 -0.59909904597424D-02 -0.59937190467405D-02 + 2 8 2 4 0.14022001884463D+01 0.14022024350491D+01 + 3 8 2 4 0.82389532125833D+00 -0.82389026336391D+00 + 1 1 3 4 -0.36651400297845D+01 -0.25164959953390D+00 + 2 1 3 4 -0.36651400297844D+01 -0.25164959953383D+00 + 3 1 3 4 -0.63428763759112D+01 0.20263545963384D-01 + 1 2 3 4 0.82389532125830D+00 0.82389026336391D+00 + 2 2 3 4 -0.17928747195271D-01 -0.17927516236709D-01 + 3 2 3 4 -0.14353554910258D+01 0.14353571236787D+01 + 1 3 3 4 0.39195035523858D+01 0.22843826002319D-01 + 2 3 3 4 -0.39195014931956D+01 0.22843759496850D-01 + 3 3 3 4 -0.68262111004954D+01 -0.19077414235188D-05 + 1 4 3 4 -0.50828446768508D-06 0.14294730383856D+00 + 2 4 3 4 -0.50828449115100D-06 0.14294730383855D+00 + 3 4 3 4 0.29878146475669D+02 0.49162416350320D-18 + 1 5 3 4 -0.22843759496840D-01 -0.39195014931957D+01 + 2 5 3 4 -0.22843826002335D-01 0.39195035523859D+01 + 3 5 3 4 0.19077414224088D-05 -0.68262111004954D+01 + 1 6 3 4 -0.29921091155495D-05 -0.86704138703495D+00 + 2 6 3 4 -0.29921091179760D-05 -0.86704138703490D+00 + 3 6 3 4 0.15256608564217D+01 0.24950352327482D-06 + 1 7 3 4 0.25164282208382D+00 0.36651384511980D+01 + 2 7 3 4 0.25164282208381D+00 0.36651384511981D+01 + 3 7 3 4 0.20265611826118D-01 -0.63428820002656D+01 + 1 8 3 4 0.17927516236717D-01 -0.17928747195299D-01 + 2 8 3 4 -0.82389026336391D+00 0.82389532125833D+00 + 3 8 3 4 -0.14353571236787D+01 -0.14353554910258D+01 + 1 1 1 5 -0.14444969908010D+01 0.14444863643351D+01 + 2 1 1 5 -0.59937190467476D-02 0.59909904597371D-02 + 3 1 1 5 -0.17928747195293D-01 -0.17927516236708D-01 + 1 2 1 5 0.65197664061030D+01 0.87998823805334D-01 + 2 2 1 5 0.36072784932719D+01 0.43758409363805D+00 + 3 2 1 5 -0.36651384511980D+01 -0.25164282208382D+00 + 1 3 1 5 -0.57513982273747D-05 0.15121697154740D+01 + 2 3 1 5 -0.22954924524242D-05 -0.14630807184819D+01 + 3 3 1 5 -0.86704138703495D+00 0.29921091154965D-05 + 1 4 1 5 0.88281159640770D-01 0.66779784182594D+01 + 2 4 1 5 -0.65175929001976D-05 -0.37979514221843D+01 + 3 4 1 5 -0.22843759496840D-01 0.39195014931957D+01 + 1 5 1 5 0.29844501315182D+02 0.17833029718811D-15 + 2 5 1 5 0.97799015718649D-01 -0.11373803444258D-05 + 3 5 1 5 -0.50828448539425D-06 0.14294730383856D+00 + 1 6 1 5 -0.88266543732180D-01 0.66779739468769D+01 + 2 6 1 5 -0.49659199415853D-05 -0.37979464939789D+01 + 3 6 1 5 -0.22843826002317D-01 -0.39195035523859D+01 + 1 7 1 5 0.14022001884463D+01 -0.14022024350491D+01 + 2 7 1 5 -0.59912121942363D-02 0.59901353449501D-02 + 3 7 1 5 0.82389532125830D+00 0.82389026336391D+00 + 1 8 1 5 -0.65197654107313D+01 0.88008018729773D-01 + 2 8 1 5 -0.36072797130414D+01 0.43758995035382D+00 + 3 8 1 5 -0.36651400297845D+01 0.25164959953390D+00 + 1 1 2 5 -0.59909904597495D-02 0.59937190467352D-02 + 2 1 2 5 0.14022001884463D+01 -0.14022024350491D+01 + 3 1 2 5 0.82389532125833D+00 0.82389026336392D+00 + 1 2 2 5 0.36072784932719D+01 0.43758409363805D+00 + 2 2 2 5 0.65197654107313D+01 0.88008018729774D-01 + 3 2 2 5 -0.36651384511981D+01 -0.25164282208382D+00 + 1 3 2 5 0.22954924801492D-05 -0.14630807184819D+01 + 2 3 2 5 -0.57513982320436D-05 0.15121697154740D+01 + 3 3 2 5 -0.86704138703490D+00 0.29921091179228D-05 + 1 4 2 5 -0.65175929001976D-05 -0.37979514221843D+01 + 2 4 2 5 -0.88281159640773D-01 0.66779784182594D+01 + 3 4 2 5 -0.22843826002335D-01 -0.39195035523859D+01 + 1 5 2 5 0.97799015718649D-01 0.11373803406691D-05 + 2 5 2 5 0.29844501315182D+02 0.11904334812950D-14 + 3 5 2 5 -0.50828450901622D-06 0.14294730383855D+00 + 1 6 2 5 -0.49659199415853D-05 -0.37979464939789D+01 + 2 6 2 5 0.88281159640775D-01 0.66779784182594D+01 + 3 6 2 5 -0.22843759496852D-01 0.39195014931956D+01 + 1 7 2 5 -0.59901353449492D-02 0.59912121942371D-02 + 2 7 2 5 -0.14444969908010D+01 0.14444863643351D+01 + 3 7 2 5 -0.17928747195266D-01 -0.17927516236700D-01 + 1 8 2 5 -0.36072797130414D+01 0.43758995035382D+00 + 2 8 2 5 -0.65197654107313D+01 0.88008018729775D-01 + 3 8 2 5 -0.36651400297844D+01 0.25164959953383D+00 + 1 1 3 5 0.17927516236723D-01 0.17928747195308D-01 + 2 1 3 5 -0.82389026336391D+00 -0.82389532125833D+00 + 3 1 3 5 -0.14353571236787D+01 0.14353554910258D+01 + 1 2 3 5 -0.36651384511980D+01 -0.25164282208382D+00 + 2 2 3 5 -0.36651384511981D+01 -0.25164282208382D+00 + 3 2 3 5 0.63428820002656D+01 -0.20265611826114D-01 + 1 3 3 5 0.86704138703495D+00 0.29921091156027D-05 + 2 3 3 5 0.86704138703490D+00 0.29921091180290D-05 + 3 3 3 5 -0.24950353153766D-06 -0.15256608564217D+01 + 1 4 3 5 -0.22843759496840D-01 0.39195014931957D+01 + 2 4 3 5 -0.22843826002335D-01 -0.39195035523859D+01 + 3 4 3 5 0.19077414224088D-05 0.68262111004954D+01 + 1 5 3 5 -0.50828448539425D-06 -0.14294730383856D+00 + 2 5 3 5 -0.50828450901622D-06 -0.14294730383855D+00 + 3 5 3 5 0.29878146475669D+02 -0.18137364623296D-15 + 1 6 3 5 -0.22843826002317D-01 -0.39195035523859D+01 + 2 6 3 5 -0.22843759496852D-01 0.39195014931956D+01 + 3 6 3 5 0.19077414227088D-05 0.68262111004954D+01 + 1 7 3 5 -0.82389026336390D+00 -0.82389532125830D+00 + 2 7 3 5 0.17927516236715D-01 0.17928747195281D-01 + 3 7 3 5 -0.14353571236787D+01 0.14353554910259D+01 + 1 8 3 5 -0.36651400297845D+01 0.25164959953390D+00 + 2 8 3 5 -0.36651400297844D+01 0.25164959953383D+00 + 3 8 3 5 -0.63428763759113D+01 -0.20263545963382D-01 + 1 1 1 6 -0.87998823805333D-01 -0.65197664061030D+01 + 2 1 1 6 -0.43758409363804D+00 -0.36072784932719D+01 + 3 1 1 6 0.25164282208382D+00 0.36651384511980D+01 + 1 2 1 6 -0.14444863643351D+01 0.14444969908010D+01 + 2 2 1 6 -0.59909904597424D-02 0.59937190467405D-02 + 3 2 1 6 0.17927516236718D-01 0.17928747195299D-01 + 1 3 1 6 -0.66779784182594D+01 -0.88281159640769D-01 + 2 3 1 6 0.37979514221843D+01 0.65175928994103D-05 + 3 3 1 6 -0.39195014931957D+01 0.22843759496838D-01 + 1 4 1 6 -0.15121697154740D+01 0.57513982345482D-05 + 2 4 1 6 0.14630807184819D+01 0.22954924663359D-05 + 3 4 1 6 -0.29921091155495D-05 0.86704138703495D+00 + 1 5 1 6 -0.88266543732180D-01 -0.66779739468769D+01 + 2 5 1 6 -0.49659199415853D-05 0.37979464939789D+01 + 3 5 1 6 -0.22843826002317D-01 0.39195035523859D+01 + 1 6 1 6 0.29844501315182D+02 -0.28632564269120D-17 + 2 6 1 6 0.97799015718685D-01 0.11373803425475D-05 + 3 6 1 6 -0.50828447127723D-06 -0.14294730383856D+00 + 1 7 1 6 -0.65197654107313D+01 -0.88008018729781D-01 + 2 7 1 6 -0.36072797130414D+01 -0.43758995035382D+00 + 3 7 1 6 -0.36651400297845D+01 -0.25164959953390D+00 + 1 8 1 6 0.14022001884463D+01 0.14022024350491D+01 + 2 8 1 6 -0.59912121942363D-02 -0.59901353449492D-02 + 3 8 1 6 0.82389532125830D+00 -0.82389026336391D+00 + 1 1 2 6 -0.43758409363804D+00 -0.36072784932719D+01 + 2 1 2 6 -0.88008018729770D-01 -0.65197654107313D+01 + 3 1 2 6 0.25164282208382D+00 0.36651384511981D+01 + 1 2 2 6 -0.59937190467405D-02 0.59909904597424D-02 + 2 2 2 6 0.14022024350491D+01 -0.14022001884463D+01 + 3 2 2 6 -0.82389026336391D+00 -0.82389532125833D+00 + 1 3 2 6 0.37979514221843D+01 0.65175928994103D-05 + 2 3 2 6 -0.66779784182594D+01 0.88281159640770D-01 + 3 3 2 6 0.39195035523859D+01 0.22843826002337D-01 + 1 4 2 6 0.14630807184819D+01 -0.22954924662376D-05 + 2 4 2 6 -0.15121697154740D+01 0.57513982323217D-05 + 3 4 2 6 -0.29921091179760D-05 0.86704138703490D+00 + 1 5 2 6 -0.49659199415853D-05 0.37979464939789D+01 + 2 5 2 6 0.88281159640775D-01 -0.66779784182594D+01 + 3 5 2 6 -0.22843759496852D-01 -0.39195014931956D+01 + 1 6 2 6 0.97799015718685D-01 -0.11373803425475D-05 + 2 6 2 6 0.29844501315182D+02 -0.49971493346912D-17 + 3 6 2 6 -0.50828449475995D-06 -0.14294730383855D+00 + 1 7 2 6 -0.36072797130414D+01 -0.43758995035382D+00 + 2 7 2 6 -0.65197654107313D+01 -0.88008018729772D-01 + 3 7 2 6 -0.36651400297844D+01 -0.25164959953383D+00 + 1 8 2 6 -0.59901353449492D-02 -0.59912121942363D-02 + 2 8 2 6 -0.14444969908010D+01 -0.14444863643351D+01 + 3 8 2 6 -0.17928747195272D-01 0.17927516236710D-01 + 1 1 3 6 0.25164282208382D+00 0.36651384511980D+01 + 2 1 3 6 0.25164282208382D+00 0.36651384511981D+01 + 3 1 3 6 0.20265611826118D-01 -0.63428820002656D+01 + 1 2 3 6 -0.17928747195299D-01 -0.17927516236717D-01 + 2 2 3 6 0.82389532125833D+00 0.82389026336391D+00 + 3 2 3 6 -0.14353554910258D+01 0.14353571236787D+01 + 1 3 3 6 -0.39195014931957D+01 0.22843759496838D-01 + 2 3 3 6 0.39195035523859D+01 0.22843826002337D-01 + 3 3 3 6 -0.68262111004954D+01 -0.19077414242419D-05 + 1 4 3 6 -0.29921091155495D-05 -0.86704138703495D+00 + 2 4 3 6 -0.29921091179760D-05 -0.86704138703490D+00 + 3 4 3 6 0.15256608564217D+01 0.24950352327543D-06 + 1 5 3 6 -0.22843826002317D-01 0.39195035523859D+01 + 2 5 3 6 -0.22843759496852D-01 -0.39195014931956D+01 + 3 5 3 6 0.19077414227088D-05 -0.68262111004954D+01 + 1 6 3 6 -0.50828447127723D-06 0.14294730383856D+00 + 2 6 3 6 -0.50828449475995D-06 0.14294730383855D+00 + 3 6 3 6 0.29878146475669D+02 0.49162416350320D-18 + 1 7 3 6 -0.36651400297845D+01 -0.25164959953390D+00 + 2 7 3 6 -0.36651400297844D+01 -0.25164959953383D+00 + 3 7 3 6 -0.63428763759112D+01 0.20263545963384D-01 + 1 8 3 6 -0.82389026336391D+00 0.82389532125830D+00 + 2 8 3 6 0.17927516236709D-01 -0.17928747195270D-01 + 3 8 3 6 -0.14353571236787D+01 -0.14353554910258D+01 + 1 1 1 7 -0.15121697154740D+01 -0.57513982385813D-05 + 2 1 1 7 0.14630807184819D+01 -0.22954924649053D-05 + 3 1 1 7 -0.29921091155494D-05 -0.86704138703495D+00 + 1 2 1 7 0.88281159640777D-01 0.66779784182594D+01 + 2 2 1 7 -0.65175928974134D-05 -0.37979514221842D+01 + 3 2 1 7 -0.22843759496840D-01 0.39195014931957D+01 + 1 3 1 7 -0.14444969908010D+01 0.14444863643351D+01 + 2 3 1 7 -0.59937190467396D-02 0.59909904597424D-02 + 3 3 1 7 -0.17928747195304D-01 -0.17927516236726D-01 + 1 4 1 7 -0.87998823805326D-01 0.65197664061030D+01 + 2 4 1 7 -0.43758409363804D+00 0.36072784932719D+01 + 3 4 1 7 0.25164282208382D+00 -0.36651384511980D+01 + 1 5 1 7 0.14022024350491D+01 0.14022001884463D+01 + 2 5 1 7 -0.59901353449492D-02 -0.59912121942371D-02 + 3 5 1 7 -0.82389026336390D+00 0.82389532125830D+00 + 1 6 1 7 -0.65197654107313D+01 0.88008018729781D-01 + 2 6 1 7 -0.36072797130414D+01 0.43758995035382D+00 + 3 6 1 7 -0.36651400297845D+01 0.25164959953390D+00 + 1 7 1 7 0.29844501315182D+02 0.10674729867120D-14 + 2 7 1 7 0.97799015718702D-01 -0.11373803428607D-05 + 3 7 1 7 -0.50828442144541D-06 0.14294730383856D+00 + 1 8 1 7 -0.66779739468768D+01 -0.88266543732176D-01 + 2 8 1 7 0.37979464939789D+01 -0.49659199389144D-05 + 3 8 1 7 0.39195035523858D+01 -0.22843826002318D-01 + 1 1 2 7 0.14630807184819D+01 0.22954924676681D-05 + 2 1 2 7 -0.15121697154740D+01 -0.57513982214046D-05 + 3 1 2 7 -0.29921091179760D-05 -0.86704138703490D+00 + 1 2 2 7 -0.65175928974134D-05 -0.37979514221842D+01 + 2 2 2 7 -0.88281159640772D-01 0.66779784182594D+01 + 3 2 2 7 -0.22843826002336D-01 -0.39195035523859D+01 + 1 3 2 7 -0.59909904597415D-02 0.59937190467405D-02 + 2 3 2 7 0.14022001884463D+01 -0.14022024350491D+01 + 3 3 2 7 0.82389532125833D+00 0.82389026336391D+00 + 1 4 2 7 -0.43758409363804D+00 0.36072784932719D+01 + 2 4 2 7 -0.88008018729776D-01 0.65197654107313D+01 + 3 4 2 7 0.25164282208381D+00 -0.36651384511981D+01 + 1 5 2 7 -0.59912121942363D-02 -0.59901353449501D-02 + 2 5 2 7 -0.14444863643351D+01 -0.14444969908010D+01 + 3 5 2 7 0.17927516236715D-01 -0.17928747195281D-01 + 1 6 2 7 -0.36072797130414D+01 0.43758995035382D+00 + 2 6 2 7 -0.65197654107313D+01 0.88008018729772D-01 + 3 6 2 7 -0.36651400297844D+01 0.25164959953383D+00 + 1 7 2 7 0.97799015718702D-01 0.11373803422342D-05 + 2 7 2 7 0.29844501315182D+02 0.63338108982477D-15 + 3 7 2 7 -0.50828455875421D-06 0.14294730383855D+00 + 1 8 2 7 0.37979464939789D+01 -0.49659199389144D-05 + 2 8 2 7 -0.66779784182594D+01 0.88281159640776D-01 + 3 8 2 7 -0.39195014931956D+01 -0.22843759496851D-01 + 1 1 3 7 -0.29921091155494D-05 0.86704138703495D+00 + 2 1 3 7 -0.29921091179760D-05 0.86704138703490D+00 + 3 1 3 7 0.15256608564217D+01 -0.24950352227562D-06 + 1 2 3 7 -0.22843759496840D-01 0.39195014931957D+01 + 2 2 3 7 -0.22843826002336D-01 -0.39195035523859D+01 + 3 2 3 7 0.19077414241655D-05 0.68262111004954D+01 + 1 3 3 7 0.17927516236712D-01 0.17928747195291D-01 + 2 3 3 7 -0.82389026336392D+00 -0.82389532125833D+00 + 3 3 3 7 -0.14353571236787D+01 0.14353554910258D+01 + 1 4 3 7 0.25164282208382D+00 -0.36651384511980D+01 + 2 4 3 7 0.25164282208381D+00 -0.36651384511981D+01 + 3 4 3 7 0.20265611826118D-01 0.63428820002656D+01 + 1 5 3 7 0.82389532125830D+00 -0.82389026336391D+00 + 2 5 3 7 -0.17928747195266D-01 0.17927516236700D-01 + 3 5 3 7 -0.14353554910258D+01 -0.14353571236787D+01 + 1 6 3 7 -0.36651400297845D+01 0.25164959953390D+00 + 2 6 3 7 -0.36651400297844D+01 0.25164959953383D+00 + 3 6 3 7 -0.63428763759112D+01 -0.20263545963384D-01 + 1 7 3 7 -0.50828442144541D-06 -0.14294730383856D+00 + 2 7 3 7 -0.50828455875421D-06 -0.14294730383855D+00 + 3 7 3 7 0.29878146475669D+02 0.15661673700142D-15 + 1 8 3 7 0.39195035523858D+01 -0.22843826002318D-01 + 2 8 3 7 -0.39195014931956D+01 -0.22843759496851D-01 + 3 8 3 7 -0.68262111004954D+01 0.19077414231527D-05 + 1 1 1 8 -0.66779784182594D+01 -0.88281159640773D-01 + 2 1 1 8 0.37979514221842D+01 0.65175928976253D-05 + 3 1 1 8 -0.39195014931957D+01 0.22843759496839D-01 + 1 2 1 8 0.57513982337281D-05 0.15121697154740D+01 + 2 2 1 8 0.22954924643295D-05 -0.14630807184819D+01 + 3 2 1 8 0.86704138703495D+00 0.29921091156027D-05 + 1 3 1 8 -0.65197664061030D+01 0.87998823805332D-01 + 2 3 1 8 -0.36072784932719D+01 0.43758409363804D+00 + 3 3 1 8 0.36651384511980D+01 -0.25164282208382D+00 + 1 4 1 8 -0.14444863643351D+01 0.14444969908010D+01 + 2 4 1 8 -0.59909904597424D-02 0.59937190467405D-02 + 3 4 1 8 0.17927516236717D-01 0.17928747195299D-01 + 1 5 1 8 -0.65197654107313D+01 -0.88008018729773D-01 + 2 5 1 8 -0.36072797130414D+01 -0.43758995035382D+00 + 3 5 1 8 -0.36651400297845D+01 -0.25164959953390D+00 + 1 6 1 8 0.14022024350491D+01 -0.14022001884463D+01 + 2 6 1 8 -0.59901353449492D-02 0.59912121942363D-02 + 3 6 1 8 -0.82389026336391D+00 -0.82389532125830D+00 + 1 7 1 8 -0.66779739468768D+01 0.88266543732176D-01 + 2 7 1 8 0.37979464939789D+01 0.49659199389144D-05 + 3 7 1 8 0.39195035523858D+01 0.22843826002318D-01 + 1 8 1 8 0.29844501315182D+02 -0.28632564269120D-17 + 2 8 1 8 0.97799015718745D-01 0.11373803425475D-05 + 3 8 1 8 -0.50828442844503D-06 -0.14294730383856D+00 + 1 1 2 8 0.37979514221842D+01 0.65175928976253D-05 + 2 1 2 8 -0.66779784182594D+01 0.88281159640771D-01 + 3 1 2 8 0.39195035523858D+01 0.22843826002335D-01 + 1 2 2 8 -0.22954924682439D-05 -0.14630807184819D+01 + 2 2 2 8 0.57513982337221D-05 0.15121697154740D+01 + 3 2 2 8 0.86704138703490D+00 0.29921091180290D-05 + 1 3 2 8 -0.36072784932719D+01 0.43758409363804D+00 + 2 3 2 8 -0.65197654107313D+01 0.88008018729774D-01 + 3 3 2 8 0.36651384511980D+01 -0.25164282208381D+00 + 1 4 2 8 -0.59937190467405D-02 0.59909904597424D-02 + 2 4 2 8 0.14022024350491D+01 -0.14022001884463D+01 + 3 4 2 8 -0.82389026336391D+00 -0.82389532125833D+00 + 1 5 2 8 -0.36072797130414D+01 -0.43758995035382D+00 + 2 5 2 8 -0.65197654107313D+01 -0.88008018729775D-01 + 3 5 2 8 -0.36651400297844D+01 -0.25164959953383D+00 + 1 6 2 8 -0.59912121942363D-02 0.59901353449492D-02 + 2 6 2 8 -0.14444863643351D+01 0.14444969908010D+01 + 3 6 2 8 0.17927516236709D-01 0.17928747195270D-01 + 1 7 2 8 0.37979464939789D+01 0.49659199389144D-05 + 2 7 2 8 -0.66779784182594D+01 -0.88281159640776D-01 + 3 7 2 8 -0.39195014931956D+01 0.22843759496851D-01 + 1 8 2 8 0.97799015718745D-01 -0.11373803425475D-05 + 2 8 2 8 0.29844501315182D+02 -0.49971493346912D-17 + 3 8 2 8 -0.50828444864229D-06 -0.14294730383855D+00 + 1 1 3 8 -0.39195014931957D+01 0.22843759496839D-01 + 2 1 3 8 0.39195035523858D+01 0.22843826002335D-01 + 3 1 3 8 -0.68262111004954D+01 -0.19077414242157D-05 + 1 2 3 8 -0.86704138703495D+00 0.29921091154965D-05 + 2 2 3 8 -0.86704138703490D+00 0.29921091179228D-05 + 3 2 3 8 0.24950352371360D-06 -0.15256608564217D+01 + 1 3 3 8 0.36651384511980D+01 -0.25164282208382D+00 + 2 3 3 8 0.36651384511980D+01 -0.25164282208381D+00 + 3 3 3 8 -0.63428820002656D+01 -0.20265611826115D-01 + 1 4 3 8 -0.17928747195299D-01 -0.17927516236718D-01 + 2 4 3 8 0.82389532125833D+00 0.82389026336391D+00 + 3 4 3 8 -0.14353554910258D+01 0.14353571236787D+01 + 1 5 3 8 -0.36651400297845D+01 -0.25164959953390D+00 + 2 5 3 8 -0.36651400297844D+01 -0.25164959953383D+00 + 3 5 3 8 -0.63428763759113D+01 0.20263545963382D-01 + 1 6 3 8 0.82389532125830D+00 0.82389026336391D+00 + 2 6 3 8 -0.17928747195272D-01 -0.17927516236710D-01 + 3 6 3 8 -0.14353554910258D+01 0.14353571236787D+01 + 1 7 3 8 0.39195035523858D+01 0.22843826002318D-01 + 2 7 3 8 -0.39195014931956D+01 0.22843759496851D-01 + 3 7 3 8 -0.68262111004954D+01 -0.19077414231527D-05 + 1 8 3 8 -0.50828442844503D-06 0.14294730383856D+00 + 2 8 3 8 -0.50828444864229D-06 0.14294730383855D+00 + 3 8 3 8 0.29878146475669D+02 0.49162416350320D-18 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 5.00000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.29943067308133D+02 -0.63457603090533D-15 + 2 1 1 1 0.35814144869143D-13 -0.24748593153058D-14 + 3 1 1 1 0.34535375065272D-05 0.28958677588686D+00 + 1 2 1 1 -0.39036619947228D-01 0.66410375176180D+01 + 2 2 1 1 0.12298260781843D+00 -0.35354885955485D+01 + 3 2 1 1 -0.28924560171673D-01 -0.36362130926685D+01 + 1 3 1 1 0.13347881923300D+01 -0.13347889288425D+01 + 2 3 1 1 -0.66997860571072D-15 0.14215519670492D-14 + 3 3 1 1 0.76993203627133D+00 0.76992481129075D+00 + 1 4 1 1 -0.66410389047586D+01 0.39047615350639D-01 + 2 4 1 1 -0.35354886427710D+01 0.12298762562914D+00 + 3 4 1 1 -0.36362084377101D+01 -0.28923204878099D-01 + 1 5 1 1 -0.13204566244586D-13 -0.12919764242278D-14 + 2 5 1 1 -0.43264157222984D-14 0.11606143297458D-02 + 3 5 1 1 0.49067587239272D-13 -0.32622608644701D-14 + 1 6 1 1 -0.39036619938580D-01 0.66410375176131D+01 + 2 6 1 1 -0.12298260781838D+00 0.35354885955486D+01 + 3 6 1 1 -0.28924560171664D-01 -0.36362130926683D+01 + 1 7 1 1 -0.56588040598933D-14 0.34642017034257D-14 + 2 7 1 1 0.14538904595971D+01 0.14538904595971D+01 + 3 7 1 1 -0.88638788869786D-14 0.55062871063716D-13 + 1 8 1 1 -0.66410389047640D+01 0.39047615359802D-01 + 2 8 1 1 0.35354886427710D+01 -0.12298762562915D+00 + 3 8 1 1 -0.36362084377102D+01 -0.28923204878118D-01 + 1 1 2 1 0.35814144869143D-13 -0.24748593153058D-14 + 2 1 2 1 0.29587531143947D+02 -0.18964967736354D-14 + 3 1 2 1 0.11212202046420D-13 0.11579160677577D-13 + 1 2 2 1 0.12298260781843D+00 -0.35354885955485D+01 + 2 2 2 1 0.76255826563144D-01 0.64917564067755D+01 + 3 2 2 1 0.31677245160475D-01 0.37099118328026D+01 + 1 3 2 1 -0.66997860571072D-15 0.14215519670492D-14 + 2 3 2 1 -0.13497255923894D+01 0.13497356791564D+01 + 3 3 2 1 -0.38247595402533D-13 0.38948832494076D-14 + 1 4 2 1 -0.35354886427710D+01 0.12298762562914D+00 + 2 4 2 1 -0.64917525569171D+01 -0.76248475625700D-01 + 3 4 2 1 -0.37099066565538D+01 -0.31673674601104D-01 + 1 5 2 1 -0.43264157752379D-14 0.11606143297458D-02 + 2 5 2 1 -0.13108730845840D-13 -0.41837718751107D-15 + 3 5 2 1 -0.16083994862683D+01 0.56074078452296D-05 + 1 6 2 1 -0.12298260781838D+00 0.35354885955486D+01 + 2 6 2 1 0.76255826563209D-01 0.64917564067754D+01 + 3 6 2 1 -0.31677245160481D-01 -0.37099118328025D+01 + 1 7 2 1 0.14538904595971D+01 0.14538904595971D+01 + 2 7 2 1 0.36669529016852D-14 -0.70563124540021D-14 + 3 7 2 1 0.87099242070653D+00 -0.87100119848176D+00 + 1 8 2 1 0.35354886427710D+01 -0.12298762562915D+00 + 2 8 2 1 -0.64917525569172D+01 -0.76248475625605D-01 + 3 8 2 1 0.37099066565541D+01 0.31673674601048D-01 + 1 1 3 1 0.34535375065272D-05 -0.28958677588686D+00 + 2 1 3 1 0.11212202046420D-13 -0.12834427157702D-13 + 3 1 3 1 0.29928500665763D+02 -0.92238072147280D-15 + 1 2 3 1 -0.28924560171673D-01 -0.36362130926685D+01 + 2 2 3 1 0.31677245160475D-01 0.37099118328026D+01 + 3 2 3 1 0.16055636888827D+00 0.65819927457672D+01 + 1 3 3 1 -0.76992481129075D+00 -0.76993203627133D+00 + 2 3 3 1 -0.14616772407726D-13 0.27525706244215D-13 + 3 3 3 1 -0.13703906417896D+01 0.13703919434168D+01 + 1 4 3 1 -0.36362084377101D+01 -0.28923204878099D-01 + 2 4 3 1 -0.37099066565538D+01 -0.31673674601104D-01 + 3 4 3 1 -0.65819924396849D+01 -0.16055553680495D+00 + 1 5 3 1 -0.19609258438796D-13 -0.32622608644701D-14 + 2 5 3 1 0.16083994862683D+01 0.56074078450326D-05 + 3 5 3 1 0.32056849113967D-14 0.59155733967814D-15 + 1 6 3 1 -0.28924560171664D-01 -0.36362130926683D+01 + 2 6 3 1 -0.31677245160481D-01 -0.37099118328025D+01 + 3 6 3 1 0.16055636888827D+00 0.65819927457671D+01 + 1 7 3 1 0.58927166488404D-13 -0.12728174311667D-13 + 2 7 3 1 -0.87100119848176D+00 0.87099242070653D+00 + 3 7 3 1 0.26944268947356D-14 -0.11423222603512D-13 + 1 8 3 1 -0.36362084377102D+01 -0.28923204878118D-01 + 2 8 3 1 0.37099066565541D+01 0.31673674601048D-01 + 3 8 3 1 -0.65819924396848D+01 -0.16055553680494D+00 + 1 1 1 2 -0.39036619947228D-01 -0.66410375176180D+01 + 2 1 1 2 0.12298260781843D+00 0.35354885955485D+01 + 3 1 1 2 -0.28924560171673D-01 0.36362130926685D+01 + 1 2 1 2 0.29943067308133D+02 -0.85308482397700D-18 + 2 2 1 2 -0.74374371163206D-13 0.00000000000000D+00 + 3 2 1 2 0.34535375491631D-05 -0.28958677588686D+00 + 1 3 1 2 -0.66410389047586D+01 -0.39047615350642D-01 + 2 3 1 2 -0.35354886427710D+01 -0.12298762562915D+00 + 3 3 1 2 -0.36362084377101D+01 0.28923204878099D-01 + 1 4 1 2 0.13347889288425D+01 0.13347881923300D+01 + 2 4 1 2 0.78176368787584D-15 -0.46332967153959D-15 + 3 4 1 2 0.76993203627133D+00 -0.76992481129075D+00 + 1 5 1 2 0.39036619938582D-01 0.66410375176131D+01 + 2 5 1 2 0.12298260781839D+00 0.35354885955486D+01 + 3 5 1 2 0.28924560171667D-01 -0.36362130926683D+01 + 1 6 1 2 0.15535944520344D-14 -0.12885901986128D-14 + 2 6 1 2 0.65819573243507D-18 0.11606143297458D-02 + 3 6 1 2 -0.33203996439406D-13 -0.32671145748093D-14 + 1 7 1 2 0.66410389047639D+01 0.39047615359799D-01 + 2 7 1 2 -0.35354886427710D+01 -0.12298762562917D+00 + 3 7 1 2 0.36362084377102D+01 -0.28923204878118D-01 + 1 8 1 2 -0.66676845720860D-15 -0.67029824388951D-15 + 2 8 1 2 -0.14538904595971D+01 0.14538904595971D+01 + 3 8 1 2 0.10788953506414D-13 0.56382491698022D-13 + 1 1 2 2 0.12298260781843D+00 0.35354885955485D+01 + 2 1 2 2 0.76255826563144D-01 -0.64917564067755D+01 + 3 1 2 2 0.31677245160475D-01 -0.37099118328026D+01 + 1 2 2 2 -0.74374371163206D-13 0.00000000000000D+00 + 2 2 2 2 0.29587531143947D+02 0.24098503394338D-17 + 3 2 2 2 -0.59946151246145D-13 -0.12206782520050D-13 + 1 3 2 2 -0.35354886427710D+01 -0.12298762562915D+00 + 2 3 2 2 -0.64917525569171D+01 0.76248475625699D-01 + 3 3 2 2 -0.37099066565538D+01 0.31673674601103D-01 + 1 4 2 2 0.78176368787584D-15 -0.46332967153959D-15 + 2 4 2 2 -0.13497356791564D+01 -0.13497255923894D+01 + 3 4 2 2 -0.34187044570668D-13 -0.11535200383188D-13 + 1 5 2 2 0.12298260781839D+00 0.35354885955486D+01 + 2 5 2 2 -0.76255826563211D-01 0.64917564067754D+01 + 3 5 2 2 0.31677245160481D-01 -0.37099118328025D+01 + 1 6 2 2 0.65824867199428D-18 0.11606143297458D-02 + 2 6 2 2 0.11615378440115D-14 -0.40022978952794D-15 + 3 6 2 2 0.16083994862683D+01 0.56074078450230D-05 + 1 7 2 2 -0.35354886427710D+01 -0.12298762562917D+00 + 2 7 2 2 0.64917525569172D+01 -0.76248475625611D-01 + 3 7 2 2 -0.37099066565542D+01 0.31673674601046D-01 + 1 8 2 2 -0.14538904595971D+01 0.14538904595971D+01 + 2 8 2 2 -0.22312095242279D-15 -0.67073994961951D-15 + 3 8 2 2 -0.87099242070653D+00 -0.87100119848176D+00 + 1 1 3 2 -0.28924560171673D-01 0.36362130926685D+01 + 2 1 3 2 0.31677245160475D-01 -0.37099118328026D+01 + 3 1 3 2 0.16055636888827D+00 -0.65819927457672D+01 + 1 2 3 2 0.34535375491631D-05 0.28958677588686D+00 + 2 2 3 2 -0.59946151246145D-13 0.12206805315229D-13 + 3 2 3 2 0.29928500665763D+02 -0.69367837929241D-18 + 1 3 3 2 -0.36362084377101D+01 0.28923204878099D-01 + 2 3 3 2 -0.37099066565538D+01 0.31673674601103D-01 + 3 3 3 2 -0.65819924396849D+01 0.16055553680495D+00 + 1 4 3 2 -0.76992481129075D+00 0.76993203627133D+00 + 2 4 3 2 -0.10556221575861D-13 -0.35166023377995D-13 + 3 4 3 2 -0.13703919434168D+01 -0.13703906417896D+01 + 1 5 3 2 0.28924560171667D-01 -0.36362130926683D+01 + 2 5 3 2 0.31677245160481D-01 -0.37099118328025D+01 + 3 5 3 2 -0.16055636888827D+00 0.65819927457671D+01 + 1 6 3 2 0.35472849238662D-13 -0.32671145748093D-14 + 2 6 3 2 -0.16083994862683D+01 0.56074078452200D-05 + 3 6 3 2 -0.13122399382719D-13 0.59505198668745D-15 + 1 7 3 2 0.36362084377102D+01 -0.28923204878118D-01 + 2 7 3 2 -0.37099066565542D+01 0.31673674601046D-01 + 3 7 3 2 0.65819924396849D+01 -0.16055553680494D+00 + 1 8 3 2 -0.57002091868969D-13 -0.11408553677360D-13 + 2 8 3 2 0.87100119848176D+00 0.87099242070653D+00 + 3 8 3 2 0.12626253334102D-13 0.27534410919613D-14 + 1 1 1 3 0.13347881923300D+01 0.13347889288425D+01 + 2 1 1 3 -0.66997860571072D-15 -0.14215519670492D-14 + 3 1 1 3 -0.76992481129075D+00 0.76993203627133D+00 + 1 2 1 3 -0.66410389047586D+01 0.39047615350642D-01 + 2 2 1 3 -0.35354886427710D+01 0.12298762562915D+00 + 3 2 1 3 -0.36362084377101D+01 -0.28923204878099D-01 + 1 3 1 3 0.29943067308133D+02 0.72079188118237D-15 + 2 3 1 3 -0.84978120210074D-13 0.34039359829718D-15 + 3 3 1 3 0.34535376060032D-05 0.28958677588686D+00 + 1 4 1 3 -0.66410375176180D+01 -0.39036619947226D-01 + 2 4 1 3 0.35354885955485D+01 0.12298260781842D+00 + 3 4 1 3 0.36362130926685D+01 -0.28924560171673D-01 + 1 5 1 3 -0.49892404792438D-14 -0.21354638603617D-14 + 2 5 1 3 -0.14538904595971D+01 0.14538904595971D+01 + 3 5 1 3 -0.56580337224635D-13 -0.10963813947241D-13 + 1 6 1 3 -0.66410389047640D+01 0.39047615359804D-01 + 2 6 1 3 0.35354886427710D+01 -0.12298762562916D+00 + 3 6 1 3 -0.36362084377102D+01 -0.28923204878118D-01 + 1 7 1 3 -0.52437745236618D-14 -0.12886153978033D-14 + 2 7 1 3 0.26017377268097D-14 0.11606143297458D-02 + 3 7 1 3 0.21261994328107D-13 -0.32672229950265D-14 + 1 8 1 3 -0.66410375176131D+01 -0.39036619938576D-01 + 2 8 1 3 -0.35354885955486D+01 -0.12298260781838D+00 + 3 8 1 3 0.36362130926683D+01 -0.28924560171665D-01 + 1 1 2 3 -0.66997860571072D-15 -0.14215519670492D-14 + 2 1 2 3 -0.13497255923894D+01 -0.13497356791564D+01 + 3 1 2 3 -0.14616772407726D-13 -0.27525706244215D-13 + 1 2 2 3 -0.35354886427710D+01 0.12298762562915D+00 + 2 2 2 3 -0.64917525569171D+01 -0.76248475625699D-01 + 3 2 2 3 -0.37099066565538D+01 -0.31673674601103D-01 + 1 3 2 3 -0.84978120210074D-13 0.34039359829718D-15 + 2 3 2 3 0.29587531143947D+02 0.59915472607546D-15 + 3 3 2 3 -0.29986526687822D-14 0.12962141863745D-13 + 1 4 2 3 0.35354885955485D+01 0.12298260781842D+00 + 2 4 2 3 -0.64917564067755D+01 0.76255826563146D-01 + 3 4 2 3 -0.37099118328026D+01 0.31677245160476D-01 + 1 5 2 3 -0.14538904595971D+01 0.14538904595971D+01 + 2 5 2 3 0.89995616071363D-14 0.11715610949705D-13 + 3 5 2 3 0.87100119848176D+00 0.87099242070653D+00 + 1 6 2 3 0.35354886427710D+01 -0.12298762562916D+00 + 2 6 2 3 -0.64917525569172D+01 -0.76248475625608D-01 + 3 6 2 3 0.37099066565542D+01 0.31673674601046D-01 + 1 7 2 3 0.26017376738702D-14 0.11606143297458D-02 + 2 7 2 3 -0.49446887914269D-14 -0.40022978952794D-15 + 3 7 2 3 -0.16083994862683D+01 0.56074078452005D-05 + 1 8 2 3 -0.35354885955486D+01 -0.12298260781838D+00 + 2 8 2 3 -0.64917564067754D+01 0.76255826563207D-01 + 3 8 2 3 0.37099118328025D+01 -0.31677245160484D-01 + 1 1 3 3 0.76993203627133D+00 -0.76992481129075D+00 + 2 1 3 3 -0.38247595402533D-13 -0.38948832494076D-14 + 3 1 3 3 -0.13703906417896D+01 -0.13703919434168D+01 + 1 2 3 3 -0.36362084377101D+01 -0.28923204878099D-01 + 2 2 3 3 -0.37099066565538D+01 -0.31673674601103D-01 + 3 2 3 3 -0.65819924396849D+01 -0.16055553680495D+00 + 1 3 3 3 0.34535376060032D-05 -0.28958677588686D+00 + 2 3 3 3 -0.29986526687822D-14 -0.11451445971534D-13 + 3 3 3 3 0.29928500665763D+02 0.21902677902772D-14 + 1 4 3 3 0.36362130926685D+01 -0.28924560171673D-01 + 2 4 3 3 -0.37099118328026D+01 0.31677245160476D-01 + 3 4 3 3 -0.65819927457672D+01 0.16055636888827D+00 + 1 5 3 3 0.11210708150747D-13 0.56827231428142D-13 + 2 5 3 3 -0.87099242070652D+00 -0.87100119848176D+00 + 3 5 3 3 0.10790415017166D-13 0.55157612159534D-15 + 1 6 3 3 -0.36362084377102D+01 -0.28923204878118D-01 + 2 6 3 3 0.37099066565542D+01 0.31673674601046D-01 + 3 6 3 3 -0.65819924396848D+01 -0.16055553680494D+00 + 1 7 3 3 -0.47414851349961D-13 -0.32672229950265D-14 + 2 7 3 3 0.16083994862683D+01 0.56074078450035D-05 + 3 7 3 3 -0.42922236326440D-14 0.59516880692382D-15 + 1 8 3 3 0.36362130926683D+01 -0.28924560171665D-01 + 2 8 3 3 0.37099118328025D+01 -0.31677245160484D-01 + 3 8 3 3 -0.65819927457671D+01 0.16055636888827D+00 + 1 1 1 4 -0.66410389047586D+01 -0.39047615350639D-01 + 2 1 1 4 -0.35354886427710D+01 -0.12298762562914D+00 + 3 1 1 4 -0.36362084377101D+01 0.28923204878099D-01 + 1 2 1 4 0.13347881923300D+01 -0.13347889288425D+01 + 2 2 1 4 0.78176368787584D-15 0.46332967153959D-15 + 3 2 1 4 -0.76992481129075D+00 -0.76993203627133D+00 + 1 3 1 4 -0.66410375176180D+01 0.39036619947226D-01 + 2 3 1 4 0.35354885955485D+01 -0.12298260781842D+00 + 3 3 1 4 0.36362130926685D+01 0.28924560171673D-01 + 1 4 1 4 0.29943067308133D+02 -0.85308482397700D-18 + 2 4 1 4 -0.52999724054164D-13 0.00000000000000D+00 + 3 4 1 4 0.34535375562108D-05 -0.28958677588686D+00 + 1 5 1 4 0.66410389047639D+01 0.39047615359793D-01 + 2 5 1 4 -0.35354886427710D+01 -0.12298762562916D+00 + 3 5 1 4 0.36362084377102D+01 -0.28923204878115D-01 + 1 6 1 4 -0.44825363896448D-15 -0.66549917234159D-15 + 2 6 1 4 0.14538904595971D+01 0.14538904595971D+01 + 3 6 1 4 0.56835957338019D-13 -0.11236078482268D-13 + 1 7 1 4 0.66410375176131D+01 -0.39036619938579D-01 + 2 7 1 4 0.35354885955486D+01 -0.12298260781839D+00 + 3 7 1 4 -0.36362130926683D+01 -0.28924560171665D-01 + 1 8 1 4 0.15535944520344D-14 -0.12885901986128D-14 + 2 8 1 4 -0.13025416621326D-15 0.11606143297458D-02 + 3 8 1 4 -0.34980353278807D-13 -0.32671145748093D-14 + 1 1 2 4 -0.35354886427710D+01 -0.12298762562914D+00 + 2 1 2 4 -0.64917525569171D+01 0.76248475625700D-01 + 3 1 2 4 -0.37099066565538D+01 0.31673674601104D-01 + 1 2 2 4 0.78176368787584D-15 0.46332967153959D-15 + 2 2 2 4 -0.13497255923894D+01 0.13497356791564D+01 + 3 2 2 4 -0.10556221575861D-13 0.35166023377995D-13 + 1 3 2 4 0.35354885955485D+01 -0.12298260781842D+00 + 2 3 2 4 -0.64917564067755D+01 -0.76255826563146D-01 + 3 3 2 4 -0.37099118328026D+01 -0.31677245160476D-01 + 1 4 2 4 -0.52999724054164D-13 0.00000000000000D+00 + 2 4 2 4 0.29587531143947D+02 0.24098503394338D-17 + 3 4 2 4 -0.49082272735173D-13 -0.12206782520050D-13 + 1 5 2 4 -0.35354886427710D+01 -0.12298762562916D+00 + 2 5 2 4 0.64917525569172D+01 -0.76248475625609D-01 + 3 5 2 4 -0.37099066565542D+01 0.31673674601049D-01 + 1 6 2 4 0.14538904595971D+01 0.14538904595971D+01 + 2 6 2 4 -0.89278455454454D-15 -0.44301286235230D-15 + 3 6 2 4 -0.87100119848176D+00 0.87099242070653D+00 + 1 7 2 4 0.35354885955486D+01 -0.12298260781839D+00 + 2 7 2 4 0.64917564067755D+01 0.76255826563206D-01 + 3 7 2 4 -0.37099118328025D+01 -0.31677245160482D-01 + 1 8 2 4 -0.13025411327370D-15 0.11606143297458D-02 + 2 8 2 4 0.93949323908646D-15 -0.40022978952794D-15 + 3 8 2 4 0.16083994862683D+01 0.56074078450230D-05 + 1 1 3 4 -0.36362084377101D+01 0.28923204878099D-01 + 2 1 3 4 -0.37099066565538D+01 0.31673674601104D-01 + 3 1 3 4 -0.65819924396849D+01 0.16055553680495D+00 + 1 2 3 4 0.76993203627133D+00 0.76992481129075D+00 + 2 2 3 4 -0.34187044570668D-13 0.11535200383188D-13 + 3 2 3 4 -0.13703906417896D+01 0.13703919434168D+01 + 1 3 3 4 0.36362130926685D+01 0.28924560171673D-01 + 2 3 3 4 -0.37099118328026D+01 -0.31677245160476D-01 + 3 3 3 4 -0.65819927457672D+01 -0.16055636888827D+00 + 1 4 3 4 0.34535375562108D-05 0.28958677588686D+00 + 2 4 3 4 -0.49082272735173D-13 0.12206805315229D-13 + 3 4 3 4 0.29928500665763D+02 -0.69367837929241D-18 + 1 5 3 4 0.36362084377102D+01 -0.28923204878115D-01 + 2 5 3 4 -0.37099066565542D+01 0.31673674601049D-01 + 3 5 3 4 0.65819924396848D+01 -0.16055553680494D+00 + 1 6 3 4 -0.10955088037364D-13 0.56554966893115D-13 + 2 6 3 4 0.87099242070653D+00 -0.87100119848176D+00 + 3 6 3 4 0.28644633944239D-14 -0.12848297939027D-13 + 1 7 3 4 -0.36362130926683D+01 -0.28924560171665D-01 + 2 7 3 4 -0.37099118328025D+01 -0.31677245160482D-01 + 3 7 3 4 0.65819927457671D+01 0.16055636888827D+00 + 1 8 3 4 0.33696492399261D-13 -0.32671145748093D-14 + 2 8 3 4 -0.16083994862683D+01 0.56074078452200D-05 + 3 8 3 4 -0.13122399382719D-13 0.59505198668745D-15 + 1 1 1 5 -0.13204566244586D-13 0.12919764242278D-14 + 2 1 1 5 -0.43264157752379D-14 -0.11606143297458D-02 + 3 1 1 5 -0.19609258438796D-13 0.32622608644701D-14 + 1 2 1 5 0.39036619938582D-01 -0.66410375176131D+01 + 2 2 1 5 0.12298260781839D+00 -0.35354885955486D+01 + 3 2 1 5 0.28924560171667D-01 0.36362130926683D+01 + 1 3 1 5 -0.49892404792438D-14 0.21354638603617D-14 + 2 3 1 5 -0.14538904595971D+01 -0.14538904595971D+01 + 3 3 1 5 0.11210708150747D-13 -0.56827231428142D-13 + 1 4 1 5 0.66410389047639D+01 -0.39047615359793D-01 + 2 4 1 5 -0.35354886427710D+01 0.12298762562916D+00 + 3 4 1 5 0.36362084377102D+01 0.28923204878115D-01 + 1 5 1 5 0.29943067308133D+02 -0.43602897570261D-14 + 2 5 1 5 -0.74319979173672D-13 -0.30430618017402D-14 + 3 5 1 5 0.34535375385021D-05 0.28958677588686D+00 + 1 6 1 5 -0.39036619947232D-01 0.66410375176180D+01 + 2 6 1 5 0.12298260781842D+00 -0.35354885955486D+01 + 3 6 1 5 -0.28924560171674D-01 -0.36362130926685D+01 + 1 7 1 5 0.13347889288425D+01 -0.13347881923300D+01 + 2 7 1 5 0.43243816378152D-15 0.57781492976410D-16 + 3 7 1 5 0.76993203627133D+00 0.76992481129075D+00 + 1 8 1 5 -0.66410389047586D+01 0.39047615350641D-01 + 2 8 1 5 -0.35354886427710D+01 0.12298762562914D+00 + 3 8 1 5 -0.36362084377101D+01 -0.28923204878098D-01 + 1 1 2 5 -0.43264157222984D-14 -0.11606143297458D-02 + 2 1 2 5 -0.13108730845840D-13 0.41837718751107D-15 + 3 1 2 5 0.16083994862683D+01 -0.56074078450326D-05 + 1 2 2 5 0.12298260781839D+00 -0.35354885955486D+01 + 2 2 2 5 -0.76255826563211D-01 -0.64917564067754D+01 + 3 2 2 5 0.31677245160481D-01 0.37099118328025D+01 + 1 3 2 5 -0.14538904595971D+01 -0.14538904595971D+01 + 2 3 2 5 0.89995616071363D-14 -0.11715610949705D-13 + 3 3 2 5 -0.87099242070652D+00 0.87100119848176D+00 + 1 4 2 5 -0.35354886427710D+01 0.12298762562916D+00 + 2 4 2 5 0.64917525569172D+01 0.76248475625609D-01 + 3 4 2 5 -0.37099066565542D+01 -0.31673674601049D-01 + 1 5 2 5 -0.74319979173672D-13 -0.30430618017402D-14 + 2 5 2 5 0.29587531143947D+02 -0.24099777690512D-14 + 3 5 2 5 -0.66947498887191D-13 0.11945904860046D-13 + 1 6 2 5 0.12298260781842D+00 -0.35354885955486D+01 + 2 6 2 5 0.76255826563149D-01 0.64917564067755D+01 + 3 6 2 5 0.31677245160473D-01 0.37099118328025D+01 + 1 7 2 5 0.43243816378152D-15 0.57781492976410D-16 + 2 7 2 5 -0.13497356791564D+01 0.13497255923894D+01 + 3 7 2 5 -0.29537674402288D-13 0.19430060424924D-13 + 1 8 2 5 -0.35354886427710D+01 0.12298762562914D+00 + 2 8 2 5 -0.64917525569171D+01 -0.76248475625702D-01 + 3 8 2 5 -0.37099066565538D+01 -0.31673674601105D-01 + 1 1 3 5 0.49067587239272D-13 0.32622608644701D-14 + 2 1 3 5 -0.16083994862683D+01 -0.56074078452296D-05 + 3 1 3 5 0.32056849113967D-14 -0.59155733967814D-15 + 1 2 3 5 0.28924560171667D-01 0.36362130926683D+01 + 2 2 3 5 0.31677245160481D-01 0.37099118328025D+01 + 3 2 3 5 -0.16055636888827D+00 -0.65819927457671D+01 + 1 3 3 5 -0.56580337224635D-13 0.10963813947241D-13 + 2 3 3 5 0.87100119848176D+00 -0.87099242070653D+00 + 3 3 3 5 0.10790415017166D-13 -0.55157612159534D-15 + 1 4 3 5 0.36362084377102D+01 0.28923204878115D-01 + 2 4 3 5 -0.37099066565542D+01 -0.31673674601049D-01 + 3 4 3 5 0.65819924396848D+01 0.16055553680494D+00 + 1 5 3 5 0.34535375385021D-05 -0.28958677588686D+00 + 2 5 3 5 -0.66947498887191D-13 -0.12467682975233D-13 + 3 5 3 5 0.29928500665763D+02 -0.40609805085214D-14 + 1 6 3 5 -0.28924560171674D-01 -0.36362130926685D+01 + 2 6 3 5 0.31677245160473D-01 0.37099118328025D+01 + 3 6 3 5 0.16055636888827D+00 0.65819927457672D+01 + 1 7 3 5 -0.76992481129075D+00 -0.76993203627133D+00 + 2 7 3 5 -0.59068514074806D-14 0.43060883419731D-13 + 3 7 3 5 -0.13703919434168D+01 0.13703906417896D+01 + 1 8 3 5 -0.36362084377101D+01 -0.28923204878098D-01 + 2 8 3 5 -0.37099066565538D+01 -0.31673674601105D-01 + 3 8 3 5 -0.65819924396849D+01 -0.16055553680495D+00 + 1 1 1 6 -0.39036619938580D-01 -0.66410375176131D+01 + 2 1 1 6 -0.12298260781838D+00 -0.35354885955486D+01 + 3 1 1 6 -0.28924560171664D-01 0.36362130926683D+01 + 1 2 1 6 0.15535944520344D-14 0.12885901986128D-14 + 2 2 1 6 0.65824867199428D-18 -0.11606143297458D-02 + 3 2 1 6 0.35472849238662D-13 0.32671145748093D-14 + 1 3 1 6 -0.66410389047640D+01 -0.39047615359804D-01 + 2 3 1 6 0.35354886427710D+01 0.12298762562916D+00 + 3 3 1 6 -0.36362084377102D+01 0.28923204878118D-01 + 1 4 1 6 -0.44825363896448D-15 0.66549917234159D-15 + 2 4 1 6 0.14538904595971D+01 -0.14538904595971D+01 + 3 4 1 6 -0.10955088037364D-13 -0.56554966893115D-13 + 1 5 1 6 -0.39036619947232D-01 -0.66410375176180D+01 + 2 5 1 6 0.12298260781842D+00 0.35354885955486D+01 + 3 5 1 6 -0.28924560171674D-01 0.36362130926685D+01 + 1 6 1 6 0.29943067308133D+02 -0.85308482397700D-18 + 2 6 1 6 -0.38904236796002D-13 0.00000000000000D+00 + 3 6 1 6 0.34535375526187D-05 -0.28958677588686D+00 + 1 7 1 6 -0.66410389047586D+01 -0.39047615350641D-01 + 2 7 1 6 -0.35354886427710D+01 -0.12298762562914D+00 + 3 7 1 6 -0.36362084377101D+01 0.28923204878100D-01 + 1 8 1 6 0.13347889288425D+01 0.13347881923300D+01 + 2 8 1 6 0.80865190175348D-15 -0.45508973502870D-15 + 3 8 1 6 0.76993203627133D+00 -0.76992481129075D+00 + 1 1 2 6 -0.12298260781838D+00 -0.35354885955486D+01 + 2 1 2 6 0.76255826563209D-01 -0.64917564067754D+01 + 3 1 2 6 -0.31677245160481D-01 0.37099118328025D+01 + 1 2 2 6 0.65819573243507D-18 -0.11606143297458D-02 + 2 2 2 6 0.11615378440115D-14 0.40022978952794D-15 + 3 2 2 6 -0.16083994862683D+01 -0.56074078452200D-05 + 1 3 2 6 0.35354886427710D+01 0.12298762562916D+00 + 2 3 2 6 -0.64917525569172D+01 0.76248475625608D-01 + 3 3 2 6 0.37099066565542D+01 -0.31673674601046D-01 + 1 4 2 6 0.14538904595971D+01 -0.14538904595971D+01 + 2 4 2 6 -0.89278455454454D-15 0.44301286235230D-15 + 3 4 2 6 0.87099242070653D+00 0.87100119848176D+00 + 1 5 2 6 0.12298260781842D+00 0.35354885955486D+01 + 2 5 2 6 0.76255826563149D-01 -0.64917564067755D+01 + 3 5 2 6 0.31677245160473D-01 -0.37099118328025D+01 + 1 6 2 6 -0.38904236796002D-13 0.00000000000000D+00 + 2 6 2 6 0.29587531143947D+02 0.24098503394338D-17 + 3 6 2 6 -0.52691223436672D-13 -0.12206782520050D-13 + 1 7 2 6 -0.35354886427710D+01 -0.12298762562914D+00 + 2 7 2 6 -0.64917525569171D+01 0.76248475625705D-01 + 3 7 2 6 -0.37099066565538D+01 0.31673674601102D-01 + 1 8 2 6 0.80865190175348D-15 -0.45508973502870D-15 + 2 8 2 6 -0.13497356791564D+01 -0.13497255923894D+01 + 3 8 2 6 -0.35519312200219D-13 -0.10647021963488D-13 + 1 1 3 6 -0.28924560171664D-01 0.36362130926683D+01 + 2 1 3 6 -0.31677245160481D-01 0.37099118328025D+01 + 3 1 3 6 0.16055636888827D+00 -0.65819927457671D+01 + 1 2 3 6 -0.33203996439406D-13 0.32671145748093D-14 + 2 2 3 6 0.16083994862683D+01 -0.56074078450230D-05 + 3 2 3 6 0.10899611653977D-13 -0.59505198668745D-15 + 1 3 3 6 -0.36362084377102D+01 0.28923204878118D-01 + 2 3 3 6 0.37099066565542D+01 -0.31673674601046D-01 + 3 3 3 6 -0.65819924396848D+01 0.16055553680494D+00 + 1 4 3 6 0.56835957338019D-13 0.11236078482268D-13 + 2 4 3 6 -0.87100119848176D+00 -0.87099242070653D+00 + 3 4 3 6 -0.10571462137027D-13 -0.58762759242374D-15 + 1 5 3 6 -0.28924560171674D-01 0.36362130926685D+01 + 2 5 3 6 0.31677245160473D-01 -0.37099118328025D+01 + 3 5 3 6 0.16055636888827D+00 -0.65819927457672D+01 + 1 6 3 6 0.34535375526187D-05 0.28958677588686D+00 + 2 6 3 6 -0.52691223436672D-13 0.12206805315229D-13 + 3 6 3 6 0.29928500665763D+02 -0.69367837929241D-18 + 1 7 3 6 -0.36362084377101D+01 0.28923204878100D-01 + 2 7 3 6 -0.37099066565538D+01 0.31673674601102D-01 + 3 7 3 6 -0.65819924396848D+01 0.16055553680495D+00 + 1 8 3 6 -0.76992481129075D+00 0.76993203627133D+00 + 2 8 3 6 -0.11888489205412D-13 -0.34277844958295D-13 + 3 8 3 6 -0.13703919434168D+01 -0.13703906417896D+01 + 1 1 1 7 -0.56588040598933D-14 -0.34642017034257D-14 + 2 1 1 7 0.14538904595971D+01 -0.14538904595971D+01 + 3 1 1 7 0.58927166488404D-13 0.12728174311667D-13 + 1 2 1 7 0.66410389047639D+01 -0.39047615359799D-01 + 2 2 1 7 -0.35354886427710D+01 0.12298762562917D+00 + 3 2 1 7 0.36362084377102D+01 0.28923204878118D-01 + 1 3 1 7 -0.52437745236618D-14 0.12886153978033D-14 + 2 3 1 7 0.26017376738702D-14 -0.11606143297458D-02 + 3 3 1 7 -0.47414851349961D-13 0.32672229950265D-14 + 1 4 1 7 0.66410375176131D+01 0.39036619938579D-01 + 2 4 1 7 0.35354885955486D+01 0.12298260781839D+00 + 3 4 1 7 -0.36362130926683D+01 0.28924560171665D-01 + 1 5 1 7 0.13347881923300D+01 0.13347889288425D+01 + 2 5 1 7 0.43243816378152D-15 -0.57781492976410D-16 + 3 5 1 7 -0.76992481129075D+00 0.76993203627133D+00 + 1 6 1 7 -0.66410389047586D+01 0.39047615350641D-01 + 2 6 1 7 -0.35354886427710D+01 0.12298762562914D+00 + 3 6 1 7 -0.36362084377101D+01 -0.28923204878100D-01 + 1 7 1 7 0.29943067308133D+02 0.86996622944559D-15 + 2 7 1 7 -0.21029273991665D-13 -0.50501942465310D-16 + 3 7 1 7 0.34535376024505D-05 0.28958677588686D+00 + 1 8 1 7 -0.66410375176180D+01 -0.39036619947226D-01 + 2 8 1 7 0.35354885955485D+01 0.12298260781841D+00 + 3 8 1 7 0.36362130926684D+01 -0.28924560171672D-01 + 1 1 2 7 0.14538904595971D+01 -0.14538904595971D+01 + 2 1 2 7 0.36669529016852D-14 0.70563124540021D-14 + 3 1 2 7 -0.87100119848176D+00 -0.87099242070653D+00 + 1 2 2 7 -0.35354886427710D+01 0.12298762562917D+00 + 2 2 2 7 0.64917525569172D+01 0.76248475625611D-01 + 3 2 2 7 -0.37099066565542D+01 -0.31673674601046D-01 + 1 3 2 7 0.26017377268097D-14 -0.11606143297458D-02 + 2 3 2 7 -0.49446887914269D-14 0.40022978952794D-15 + 3 3 2 7 0.16083994862683D+01 -0.56074078450035D-05 + 1 4 2 7 0.35354885955486D+01 0.12298260781839D+00 + 2 4 2 7 0.64917564067755D+01 -0.76255826563206D-01 + 3 4 2 7 -0.37099118328025D+01 0.31677245160482D-01 + 1 5 2 7 0.43243816378152D-15 -0.57781492976410D-16 + 2 5 2 7 -0.13497255923894D+01 -0.13497356791564D+01 + 3 5 2 7 -0.59068514074806D-14 -0.43060883419731D-13 + 1 6 2 7 -0.35354886427710D+01 0.12298762562914D+00 + 2 6 2 7 -0.64917525569171D+01 -0.76248475625705D-01 + 3 6 2 7 -0.37099066565538D+01 -0.31673674601102D-01 + 1 7 2 7 -0.21029273991665D-13 -0.50501942465310D-16 + 2 7 2 7 0.29587531143947D+02 0.93222163346300D-15 + 3 7 2 7 -0.11668549039040D-12 0.13259213259006D-13 + 1 8 2 7 0.35354885955485D+01 0.12298260781841D+00 + 2 8 2 7 -0.64917564067755D+01 0.76255826563147D-01 + 3 8 2 7 -0.37099118328025D+01 0.31677245160476D-01 + 1 1 3 7 -0.88638788869786D-14 -0.55062871063716D-13 + 2 1 3 7 0.87099242070653D+00 0.87100119848176D+00 + 3 1 3 7 0.26944268947356D-14 0.11423222603512D-13 + 1 2 3 7 0.36362084377102D+01 0.28923204878118D-01 + 2 2 3 7 -0.37099066565542D+01 -0.31673674601046D-01 + 3 2 3 7 0.65819924396849D+01 0.16055553680494D+00 + 1 3 3 7 0.21261994328107D-13 0.32672229950265D-14 + 2 3 3 7 -0.16083994862683D+01 -0.56074078452005D-05 + 3 3 3 7 -0.42922236326440D-14 -0.59516880692382D-15 + 1 4 3 7 -0.36362130926683D+01 0.28924560171665D-01 + 2 4 3 7 -0.37099118328025D+01 0.31677245160482D-01 + 3 4 3 7 0.65819927457671D+01 -0.16055636888827D+00 + 1 5 3 7 0.76993203627133D+00 -0.76992481129075D+00 + 2 5 3 7 -0.29537674402288D-13 -0.19430060424924D-13 + 3 5 3 7 -0.13703906417896D+01 -0.13703919434168D+01 + 1 6 3 7 -0.36362084377101D+01 -0.28923204878100D-01 + 2 6 3 7 -0.37099066565538D+01 -0.31673674601102D-01 + 3 6 3 7 -0.65819924396848D+01 -0.16055553680495D+00 + 1 7 3 7 0.34535376024505D-05 -0.28958677588686D+00 + 2 7 3 7 -0.11668549039040D-12 -0.11154374576273D-13 + 3 7 3 7 0.29928500665763D+02 0.18467868235360D-14 + 1 8 3 7 0.36362130926684D+01 -0.28924560171672D-01 + 2 8 3 7 -0.37099118328025D+01 0.31677245160476D-01 + 3 8 3 7 -0.65819927457672D+01 0.16055636888827D+00 + 1 1 1 8 -0.66410389047640D+01 -0.39047615359802D-01 + 2 1 1 8 0.35354886427710D+01 0.12298762562915D+00 + 3 1 1 8 -0.36362084377102D+01 0.28923204878118D-01 + 1 2 1 8 -0.66676845720860D-15 0.67029824388951D-15 + 2 2 1 8 -0.14538904595971D+01 -0.14538904595971D+01 + 3 2 1 8 -0.57002091868969D-13 0.11408553677360D-13 + 1 3 1 8 -0.66410375176131D+01 0.39036619938576D-01 + 2 3 1 8 -0.35354885955486D+01 0.12298260781838D+00 + 3 3 1 8 0.36362130926683D+01 0.28924560171665D-01 + 1 4 1 8 0.15535944520344D-14 0.12885901986128D-14 + 2 4 1 8 -0.13025411327370D-15 -0.11606143297458D-02 + 3 4 1 8 0.33696492399261D-13 0.32671145748093D-14 + 1 5 1 8 -0.66410389047586D+01 -0.39047615350641D-01 + 2 5 1 8 -0.35354886427710D+01 -0.12298762562914D+00 + 3 5 1 8 -0.36362084377101D+01 0.28923204878098D-01 + 1 6 1 8 0.13347881923300D+01 -0.13347889288425D+01 + 2 6 1 8 0.80865190175348D-15 0.45508973502870D-15 + 3 6 1 8 -0.76992481129075D+00 -0.76993203627133D+00 + 1 7 1 8 -0.66410375176180D+01 0.39036619947226D-01 + 2 7 1 8 0.35354885955485D+01 -0.12298260781841D+00 + 3 7 1 8 0.36362130926684D+01 0.28924560171672D-01 + 1 8 1 8 0.29943067308133D+02 0.34609161037138D-15 + 2 8 1 8 0.21691300401972D-13 0.24114844193329D-15 + 3 8 1 8 0.34535375954509D-05 -0.28958677588686D+00 + 1 1 2 8 0.35354886427710D+01 0.12298762562915D+00 + 2 1 2 8 -0.64917525569172D+01 0.76248475625605D-01 + 3 1 2 8 0.37099066565541D+01 -0.31673674601048D-01 + 1 2 2 8 -0.14538904595971D+01 -0.14538904595971D+01 + 2 2 2 8 -0.22312095242279D-15 0.67073994961951D-15 + 3 2 2 8 0.87100119848176D+00 -0.87099242070653D+00 + 1 3 2 8 -0.35354885955486D+01 0.12298260781838D+00 + 2 3 2 8 -0.64917564067754D+01 -0.76255826563207D-01 + 3 3 2 8 0.37099118328025D+01 0.31677245160484D-01 + 1 4 2 8 -0.13025416621326D-15 -0.11606143297458D-02 + 2 4 2 8 0.93949323908646D-15 0.40022978952794D-15 + 3 4 2 8 -0.16083994862683D+01 -0.56074078452200D-05 + 1 5 2 8 -0.35354886427710D+01 -0.12298762562914D+00 + 2 5 2 8 -0.64917525569171D+01 0.76248475625702D-01 + 3 5 2 8 -0.37099066565538D+01 0.31673674601105D-01 + 1 6 2 8 0.80865190175348D-15 0.45508973502870D-15 + 2 6 2 8 -0.13497255923894D+01 0.13497356791564D+01 + 3 6 2 8 -0.11888489205412D-13 0.34277844958295D-13 + 1 7 2 8 0.35354885955485D+01 -0.12298260781841D+00 + 2 7 2 8 -0.64917564067755D+01 -0.76255826563147D-01 + 3 7 2 8 -0.37099118328025D+01 -0.31677245160476D-01 + 1 8 2 8 0.21691300401972D-13 0.24114844193329D-15 + 2 8 2 8 0.29587531143947D+02 0.39098790895824D-15 + 3 8 2 8 -0.65735621799701D-14 -0.11921420508252D-13 + 1 1 3 8 -0.36362084377102D+01 0.28923204878118D-01 + 2 1 3 8 0.37099066565541D+01 -0.31673674601048D-01 + 3 1 3 8 -0.65819924396848D+01 0.16055553680494D+00 + 1 2 3 8 0.10788953506414D-13 -0.56382491698022D-13 + 2 2 3 8 -0.87099242070653D+00 0.87100119848176D+00 + 3 2 3 8 -0.80967219734877D-15 0.10682484439489D-13 + 1 3 3 8 0.36362130926683D+01 0.28924560171665D-01 + 2 3 3 8 0.37099118328025D+01 0.31677245160484D-01 + 3 3 3 8 -0.65819927457671D+01 -0.16055636888827D+00 + 1 4 3 8 -0.34980353278807D-13 0.32671145748093D-14 + 2 4 3 8 0.16083994862683D+01 -0.56074078450230D-05 + 3 4 3 8 0.10899611653977D-13 -0.59505198668745D-15 + 1 5 3 8 -0.36362084377101D+01 0.28923204878098D-01 + 2 5 3 8 -0.37099066565538D+01 0.31673674601105D-01 + 3 5 3 8 -0.65819924396849D+01 0.16055553680495D+00 + 1 6 3 8 0.76993203627133D+00 0.76992481129075D+00 + 2 6 3 8 -0.35519312200219D-13 0.10647021963488D-13 + 3 6 3 8 -0.13703906417896D+01 0.13703919434168D+01 + 1 7 3 8 0.36362130926684D+01 0.28924560171672D-01 + 2 7 3 8 -0.37099118328025D+01 -0.31677245160476D-01 + 3 7 3 8 -0.65819927457672D+01 -0.16055636888827D+00 + 1 8 3 8 0.34535375954509D-05 0.28958677588686D+00 + 2 8 3 8 -0.65735621799701D-14 0.12492167327027D-13 + 3 8 3 8 0.29928500665763D+02 0.35318991071998D-15 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 5.00000000E-01 5.00000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.29600339782250D+02 0.00000000000000D+00 + 2 1 1 1 0.35799236095382D-13 0.00000000000000D+00 + 3 1 1 1 -0.99923196834297D-06 -0.16866840936999D-05 + 1 2 1 1 0.65938598272378D+01 -0.61761146925463D-05 + 2 2 1 1 -0.34791558279165D+01 0.69057629631164D-05 + 3 2 1 1 -0.36811034023805D+01 -0.12156651401293D-06 + 1 3 1 1 -0.58228077443829D-14 0.17521994284884D-14 + 2 3 1 1 0.77955765397119D-14 -0.23717952219043D-15 + 3 3 1 1 0.15116233512607D+01 -0.62034924357467D-05 + 1 4 1 1 -0.65938598272386D+01 0.61760765233524D-05 + 2 4 1 1 -0.34791558279172D+01 0.69057261077548D-05 + 3 4 1 1 -0.36811027754655D+01 -0.50809557889714D-06 + 1 5 1 1 -0.10098950912968D-13 -0.92982202429369D-15 + 2 5 1 1 -0.43548759945830D-14 0.51356660474761D-15 + 3 5 1 1 0.14318657089368D-13 -0.33805760019725D-15 + 1 6 1 1 0.65938598272414D+01 -0.61755608050486D-05 + 2 6 1 1 0.34791558279196D+01 -0.69051882371672D-05 + 3 6 1 1 -0.36811055825221D+01 0.15840367268102D-05 + 1 7 1 1 -0.18650856554510D-14 0.00000000000000D+00 + 2 7 1 1 0.29227352572501D+01 0.45918491192232D-14 + 3 7 1 1 -0.68066616261606D-06 -0.14363037427138D-06 + 1 8 1 1 -0.65938598272421D+01 0.61755226302196D-05 + 2 8 1 1 0.34791558279208D+01 -0.69051513848930D-05 + 3 8 1 1 -0.36811049626835D+01 0.12014099212826D-05 + 1 1 2 1 0.35799236095382D-13 0.00000000000000D+00 + 2 1 2 1 0.29600339782250D+02 0.00000000000000D+00 + 3 1 2 1 -0.99923185630362D-06 -0.16866840941026D-05 + 1 2 2 1 -0.34791558279165D+01 -0.69057629692344D-05 + 2 2 2 1 0.65938598272421D+01 0.61755226299404D-05 + 3 2 2 1 0.36811049626836D+01 -0.12014099377823D-05 + 1 3 2 1 0.77955765397119D-14 -0.23717952219043D-15 + 2 3 2 1 0.28480747998246D-14 0.21506787839256D-15 + 3 3 2 1 -0.12088645112130D-13 0.41906009730091D-15 + 1 4 2 1 -0.34791558279172D+01 -0.69057261091810D-05 + 2 4 2 1 -0.65938598272421D+01 -0.61755226303500D-05 + 3 4 2 1 -0.36811027754654D+01 -0.50809558494539D-06 + 1 5 2 1 -0.43548759945830D-14 0.51356660474761D-15 + 2 5 2 1 -0.17234786581621D-13 0.32265362106077D-16 + 3 5 2 1 -0.15116233512607D+01 0.62034924356705D-05 + 1 6 2 1 0.34791558279196D+01 0.69051882514408D-05 + 2 6 2 1 0.65938598272421D+01 0.61755226271709D-05 + 3 6 2 1 -0.36811055825221D+01 0.15840367193102D-05 + 1 7 2 1 0.29227352572501D+01 0.45918499662561D-14 + 2 7 2 1 -0.26152035152709D-14 0.00000000000000D+00 + 3 7 2 1 -0.68066615576322D-06 -0.14363037322307D-06 + 1 8 2 1 0.34791558279208D+01 0.69051513925022D-05 + 2 8 2 1 -0.65938598272421D+01 -0.61755226271127D-05 + 3 8 2 1 0.36811034023805D+01 0.12156650553978D-06 + 1 1 3 1 -0.99923196834297D-06 0.16866840936999D-05 + 2 1 3 1 -0.99923185630362D-06 0.16866840941026D-05 + 3 1 3 1 0.30332400916174D+02 0.00000000000000D+00 + 1 2 3 1 -0.36811034023805D+01 0.12156650830727D-06 + 2 2 3 1 0.36811049626836D+01 0.12014099432142D-05 + 3 2 3 1 0.67977588036162D+01 0.61655716867296D-06 + 1 3 3 1 -0.15116233512607D+01 -0.62034924355616D-05 + 2 3 3 1 -0.12088645111923D-13 0.41906009730414D-15 + 3 3 3 1 0.92055464393325D-14 0.32948168124607D-15 + 1 4 3 1 -0.36811027754655D+01 0.50809557886276D-06 + 2 4 3 1 -0.36811027754654D+01 0.50809558486681D-06 + 3 4 3 1 -0.67977590177929D+01 -0.13541502831923D-05 + 1 5 3 1 0.14318657088954D-13 -0.33805760019240D-15 + 2 5 3 1 0.15116233512607D+01 0.62034924354854D-05 + 3 5 3 1 0.12992720723481D-13 -0.54265778057814D-15 + 1 6 3 1 -0.36811055825221D+01 -0.15840367379722D-05 + 2 6 3 1 -0.36811055825221D+01 -0.15840367304189D-05 + 3 6 3 1 0.67977585726225D+01 -0.12262036916374D-06 + 1 7 3 1 -0.68066616261606D-06 0.14363037427138D-06 + 2 7 3 1 -0.68066615576322D-06 0.14363037322307D-06 + 3 7 3 1 -0.10567500235137D-07 -0.97157321547292D-09 + 1 8 3 1 -0.36811049626835D+01 -0.12014099267902D-05 + 2 8 3 1 0.36811034023805D+01 -0.12156649980263D-06 + 3 8 3 1 -0.67977588036162D+01 -0.61655716784144D-06 + 1 1 1 2 0.65938598272378D+01 0.61761146925463D-05 + 2 1 1 2 -0.34791558279165D+01 0.69057629692344D-05 + 3 1 1 2 -0.36811034023805D+01 -0.12156650830727D-06 + 1 2 1 2 0.29600339782250D+02 0.00000000000000D+00 + 2 2 1 2 -0.74389279936968D-13 0.00000000000000D+00 + 3 2 1 2 -0.99923192570709D-06 -0.16866840936999D-05 + 1 3 1 2 -0.65938598272385D+01 -0.61760765228425D-05 + 2 3 1 2 -0.34791558279171D+01 0.69057261086950D-05 + 3 3 1 2 -0.36811027754655D+01 -0.50809557890301D-06 + 1 4 1 2 0.16039602508073D-14 -0.17521994284884D-14 + 2 4 1 2 0.53920893403269D-19 0.23717952219043D-15 + 3 4 1 2 0.15116233512607D+01 -0.62034924356808D-05 + 1 5 1 2 -0.65938598272414D+01 -0.61755608024377D-05 + 2 5 1 2 -0.34791558279196D+01 0.69051882408685D-05 + 3 5 1 2 0.36811055825221D+01 -0.15840367377695D-05 + 1 6 1 2 0.11095566465234D-14 -0.92982202429369D-15 + 2 6 1 2 -0.69549094736416D-19 0.51356660474761D-15 + 3 6 1 2 0.16067366370040D-14 -0.33805760019078D-15 + 1 7 1 2 0.65938598272421D+01 0.61755226281594D-05 + 2 7 1 2 -0.34791558279208D+01 0.69051513835120D-05 + 3 7 1 2 0.36811049626836D+01 -0.12014099266614D-05 + 1 8 1 2 -0.66676845716208D-15 0.00000000000000D+00 + 2 8 1 2 -0.29227352572501D+01 -0.34320530665953D-14 + 3 8 1 2 0.68066616261582D-06 0.14363037427138D-06 + 1 1 2 2 -0.34791558279165D+01 -0.69057629631164D-05 + 2 1 2 2 0.65938598272421D+01 0.61755226280538D-05 + 3 1 2 2 0.36811049626836D+01 -0.12014099432142D-05 + 1 2 2 2 -0.74389279936968D-13 0.00000000000000D+00 + 2 2 2 2 0.29600339782250D+02 0.00000000000000D+00 + 3 2 2 2 -0.99923192746198D-06 -0.16866840941026D-05 + 1 3 2 2 -0.34791558279171D+01 -0.69057261082408D-05 + 2 3 2 2 -0.65938598272421D+01 -0.61755226308935D-05 + 3 3 2 2 -0.36811027754654D+01 -0.50809558490512D-06 + 1 4 2 2 0.53920893403269D-19 0.23717952219043D-15 + 2 4 2 2 0.12004357527028D-14 -0.21506787839255D-15 + 3 4 2 2 0.14305038968180D-14 -0.41906009730253D-15 + 1 5 2 2 -0.34791558279196D+01 -0.69051882391337D-05 + 2 5 2 2 -0.65938598272421D+01 -0.61755226256192D-05 + 3 5 2 2 0.36811055825221D+01 -0.15840367303036D-05 + 1 6 2 2 -0.69549094736416D-19 0.51356660474761D-15 + 2 6 2 2 0.16059778976179D-14 0.32265362106077D-16 + 3 6 2 2 0.15116233512607D+01 -0.62034924357571D-05 + 1 7 2 2 -0.34791558279208D+01 -0.69051513852775D-05 + 2 7 2 2 0.65938598272421D+01 0.61755226278291D-05 + 3 7 2 2 -0.36811034023806D+01 -0.12156649990977D-06 + 1 8 2 2 -0.29227352572501D+01 -0.34320530665953D-14 + 2 8 2 2 -0.10763471347054D-17 0.00000000000000D+00 + 3 8 2 2 0.68066615576344D-06 0.14363037322307D-06 + 1 1 3 2 -0.36811034023805D+01 0.12156651401293D-06 + 2 1 3 2 0.36811049626836D+01 0.12014099377823D-05 + 3 1 3 2 0.67977588036162D+01 -0.61655716867296D-06 + 1 2 3 2 -0.99923192570709D-06 0.16866840936999D-05 + 2 2 3 2 -0.99923192746198D-06 0.16866840941026D-05 + 3 2 3 2 0.30332400916174D+02 0.00000000000000D+00 + 1 3 3 2 -0.36811027754655D+01 0.50809557885689D-06 + 2 3 3 2 -0.36811027754654D+01 0.50809558490708D-06 + 3 3 3 2 -0.67977590177929D+01 0.13541502831127D-05 + 1 4 3 2 -0.15116233512607D+01 -0.62034924354957D-05 + 2 4 3 2 0.14305038970248D-14 -0.41906009730414D-15 + 3 4 3 2 -0.10761735625642D-14 -0.32948167959171D-15 + 1 5 3 2 0.36811055825221D+01 0.15840367327276D-05 + 2 5 3 2 0.36811055825221D+01 0.15840367251403D-05 + 3 5 3 2 -0.67977585726225D+01 -0.12262036871760D-06 + 1 6 3 2 0.16067366374175D-14 -0.33805760019078D-15 + 2 6 3 2 -0.15116233512607D+01 -0.62034924355719D-05 + 3 6 3 2 -0.11113150898459D-14 -0.54265778057814D-15 + 1 7 3 2 0.36811049626836D+01 0.12014099271262D-05 + 2 7 3 2 -0.36811034023806D+01 0.12156649971785D-06 + 3 7 3 2 0.67977588036163D+01 -0.61655716850461D-06 + 1 8 3 2 0.68066616261582D-06 -0.14363037427138D-06 + 2 8 3 2 0.68066615576344D-06 -0.14363037322307D-06 + 3 8 3 2 0.10567500772034D-07 -0.97157321547293D-09 + 1 1 1 3 -0.58228077443829D-14 -0.17521994284884D-14 + 2 1 1 3 0.77955765397119D-14 0.23717952219043D-15 + 3 1 1 3 -0.15116233512607D+01 0.62034924357467D-05 + 1 2 1 3 -0.65938598272385D+01 0.61760765228425D-05 + 2 2 1 3 -0.34791558279171D+01 0.69057261082408D-05 + 3 2 1 3 -0.36811027754655D+01 -0.50809557885689D-06 + 1 3 1 3 0.29600339782250D+02 0.00000000000000D+00 + 2 3 1 3 -0.84993028983835D-13 0.00000000000000D+00 + 3 3 1 3 -0.99923186886699D-06 -0.16866840936999D-05 + 1 4 1 3 -0.65938598272378D+01 0.61761146951443D-05 + 2 4 1 3 0.34791558279166D+01 -0.69057629621587D-05 + 3 4 1 3 0.36811034023805D+01 0.12156651410309D-06 + 1 5 1 3 -0.32159194056850D-14 0.00000000000000D+00 + 2 5 1 3 -0.29227352572501D+01 -0.34320518225157D-14 + 3 5 1 3 0.68066616261517D-06 0.14363037427138D-06 + 1 6 1 3 -0.65938598272421D+01 0.61755226302106D-05 + 2 6 1 3 0.34791558279208D+01 -0.69051513847568D-05 + 3 6 1 3 -0.36811049626836D+01 0.12014099211683D-05 + 1 7 1 3 0.27467848469095D-14 -0.92982202429369D-15 + 2 7 1 3 0.74407931611440D-14 0.51356660474761D-15 + 3 7 1 3 -0.11711060520833D-13 -0.33805760019725D-15 + 1 8 1 3 -0.65938598272414D+01 0.61755608066524D-05 + 2 8 1 3 -0.34791558279196D+01 0.69051882355662D-05 + 3 8 1 3 0.36811055825221D+01 -0.15840367267290D-05 + 1 1 2 3 0.77955765397119D-14 0.23717952219043D-15 + 2 1 2 3 0.28480747998246D-14 -0.21506787839256D-15 + 3 1 2 3 -0.12088645111923D-13 -0.41906009730737D-15 + 1 2 2 3 -0.34791558279171D+01 -0.69057261086950D-05 + 2 2 2 3 -0.65938598272421D+01 -0.61755226299170D-05 + 3 2 2 3 -0.36811027754654D+01 -0.50809558490708D-06 + 1 3 2 3 -0.84993028983835D-13 0.00000000000000D+00 + 2 3 2 3 0.29600339782250D+02 0.00000000000000D+00 + 3 3 2 3 -0.99923187051448D-06 -0.16866840941026D-05 + 1 4 2 3 0.34791558279166D+01 0.69057629701921D-05 + 2 4 2 3 -0.65938598272421D+01 -0.61755226278968D-05 + 3 4 2 3 -0.36811049626836D+01 0.12014099376740D-05 + 1 5 2 3 -0.29227352572501D+01 -0.34320526695486D-14 + 2 5 2 3 -0.23282911107311D-14 0.00000000000000D+00 + 3 5 2 3 0.68066615576300D-06 0.14363037322307D-06 + 1 6 2 3 0.34791558279208D+01 0.69051513926383D-05 + 2 6 2 3 -0.65938598272421D+01 -0.61755226273474D-05 + 3 6 2 3 0.36811034023805D+01 0.12156650553441D-06 + 1 7 2 3 0.74407931611440D-14 0.51356660474761D-15 + 2 7 2 3 -0.55180977373498D-14 0.32265362106077D-16 + 3 7 2 3 -0.15116233512607D+01 0.62034924356705D-05 + 1 8 2 3 -0.34791558279196D+01 -0.69051882530418D-05 + 2 8 2 3 -0.65938598272421D+01 -0.61755226249871D-05 + 3 8 2 3 0.36811055825221D+01 -0.15840367192233D-05 + 1 1 3 3 0.15116233512607D+01 0.62034924355616D-05 + 2 1 3 3 -0.12088645112130D-13 -0.41906009729606D-15 + 3 1 3 3 0.92055464393325D-14 -0.32948168124607D-15 + 1 2 3 3 -0.36811027754655D+01 0.50809557890301D-06 + 2 2 3 3 -0.36811027754654D+01 0.50809558490512D-06 + 3 2 3 3 -0.67977590177929D+01 -0.13541502831127D-05 + 1 3 3 3 -0.99923186886699D-06 0.16866840936999D-05 + 2 3 3 3 -0.99923187051448D-06 0.16866840941026D-05 + 3 3 3 3 0.30332400916174D+02 0.00000000000000D+00 + 1 4 3 3 0.36811034023805D+01 -0.12156650821711D-06 + 2 4 3 3 -0.36811049626836D+01 -0.12014099433225D-05 + 3 4 3 3 -0.67977588036162D+01 -0.61655716785383D-06 + 1 5 3 3 0.68066616261517D-06 -0.14363037427138D-06 + 2 5 3 3 0.68066615576300D-06 -0.14363037322307D-06 + 3 5 3 3 0.10567501360471D-07 0.97157321547292D-09 + 1 6 3 3 -0.36811049626836D+01 -0.12014099269045D-05 + 2 6 3 3 0.36811034023805D+01 -0.12156649980800D-06 + 3 6 3 3 -0.67977588036162D+01 -0.61655716767387D-06 + 1 7 3 3 -0.11711060521247D-13 -0.33805760019240D-15 + 2 7 3 3 0.15116233512607D+01 0.62034924354854D-05 + 3 7 3 3 0.10157782341081D-13 -0.54265778057814D-15 + 1 8 3 3 0.36811055825221D+01 0.15840367380534D-05 + 2 8 3 3 0.36811055825221D+01 0.15840367305059D-05 + 3 8 3 3 -0.67977585726225D+01 0.12262036988533D-06 + 1 1 1 4 -0.65938598272386D+01 -0.61760765233524D-05 + 2 1 1 4 -0.34791558279172D+01 0.69057261091810D-05 + 3 1 1 4 -0.36811027754655D+01 -0.50809557886276D-06 + 1 2 1 4 0.16039602508073D-14 0.17521994284884D-14 + 2 2 1 4 0.53920893403269D-19 -0.23717952219043D-15 + 3 2 1 4 -0.15116233512607D+01 0.62034924356808D-05 + 1 3 1 4 -0.65938598272378D+01 -0.61761146951443D-05 + 2 3 1 4 0.34791558279166D+01 -0.69057629701921D-05 + 3 3 1 4 0.36811034023805D+01 0.12156650821711D-06 + 1 4 1 4 0.29600339782250D+02 0.00000000000000D+00 + 2 4 1 4 -0.53014632827926D-13 0.00000000000000D+00 + 3 4 1 4 -0.99923191865937D-06 -0.16866840936999D-05 + 1 5 1 4 0.65938598272421D+01 0.61755226275939D-05 + 2 5 1 4 -0.34791558279208D+01 0.69051513824839D-05 + 3 5 1 4 0.36811049626836D+01 -0.12014099267501D-05 + 1 6 1 4 0.66676845716208D-15 0.00000000000000D+00 + 2 6 1 4 0.29227352572501D+01 0.45918497015583D-14 + 3 6 1 4 -0.68066616261582D-06 -0.14363037427138D-06 + 1 7 1 4 0.65938598272414D+01 0.61755608044936D-05 + 2 7 1 4 0.34791558279196D+01 -0.69051882427577D-05 + 3 7 1 4 -0.36811055825221D+01 0.15840367379281D-05 + 1 8 1 4 0.11095566465234D-14 -0.92982202429369D-15 + 2 8 1 4 -0.69549094736416D-19 0.51356660474761D-15 + 3 8 1 4 -0.10577986220964D-14 -0.33805760019078D-15 + 1 1 2 4 -0.34791558279172D+01 -0.69057261077548D-05 + 2 1 2 4 -0.65938598272421D+01 -0.61755226304606D-05 + 3 1 2 4 -0.36811027754654D+01 -0.50809558486681D-06 + 1 2 2 4 0.53920893403269D-19 -0.23717952219043D-15 + 2 2 2 4 0.12004357527028D-14 0.21506787839255D-15 + 3 2 2 4 0.14305038970248D-14 0.41906009730414D-15 + 1 3 2 4 0.34791558279166D+01 0.69057629621587D-05 + 2 3 2 4 -0.65938598272421D+01 -0.61755226300974D-05 + 3 3 2 4 -0.36811049626836D+01 0.12014099433225D-05 + 1 4 2 4 -0.53014632827926D-13 0.00000000000000D+00 + 2 4 2 4 0.29600339782250D+02 0.00000000000000D+00 + 3 4 2 4 -0.99923191659810D-06 -0.16866840941026D-05 + 1 5 2 4 -0.34791558279208D+01 -0.69051513863056D-05 + 2 5 2 4 0.65938598272421D+01 0.61755226280387D-05 + 3 5 2 4 -0.36811034023806D+01 -0.12156649995163D-06 + 1 6 2 4 0.29227352572501D+01 0.45918505485913D-14 + 2 6 2 4 0.10763471347054D-17 0.00000000000000D+00 + 3 6 2 4 -0.68066615576344D-06 -0.14363037322307D-06 + 1 7 2 4 0.34791558279196D+01 0.69051882372446D-05 + 2 7 2 4 0.65938598272421D+01 0.61755226273365D-05 + 3 7 2 4 -0.36811055825221D+01 0.15840367304086D-05 + 1 8 2 4 -0.69549094736416D-19 0.51356660474761D-15 + 2 8 2 4 0.16059778976179D-14 0.32265362106077D-16 + 3 8 2 4 0.15116233512607D+01 -0.62034924357571D-05 + 1 1 3 4 -0.36811027754655D+01 0.50809557889714D-06 + 2 1 3 4 -0.36811027754654D+01 0.50809558494539D-06 + 3 1 3 4 -0.67977590177929D+01 0.13541502831923D-05 + 1 2 3 4 0.15116233512607D+01 0.62034924354957D-05 + 2 2 3 4 0.14305038968180D-14 0.41906009730899D-15 + 3 2 3 4 -0.10761735625642D-14 0.32948167959171D-15 + 1 3 3 4 0.36811034023805D+01 -0.12156651410309D-06 + 2 3 3 4 -0.36811049626836D+01 -0.12014099376740D-05 + 3 3 3 4 -0.67977588036162D+01 0.61655716785383D-06 + 1 4 3 4 -0.99923191865937D-06 0.16866840936999D-05 + 2 4 3 4 -0.99923191659810D-06 0.16866840941026D-05 + 3 4 3 4 0.30332400916174D+02 0.00000000000000D+00 + 1 5 3 4 0.36811049626836D+01 0.12014099270375D-05 + 2 5 3 4 -0.36811034023806D+01 0.12156649967599D-06 + 3 5 3 4 0.67977588036162D+01 -0.61655716846769D-06 + 1 6 3 4 -0.68066616261582D-06 0.14363037427138D-06 + 2 6 3 4 -0.68066615576344D-06 0.14363037322307D-06 + 3 6 3 4 -0.10567500772034D-07 0.97157321547293D-09 + 1 7 3 4 -0.36811055825221D+01 -0.15840367325690D-05 + 2 7 3 4 -0.36811055825221D+01 -0.15840367250354D-05 + 3 7 3 4 0.67977585726225D+01 0.12262036924980D-06 + 1 8 3 4 -0.10577986216828D-14 -0.33805760019078D-15 + 2 8 3 4 -0.15116233512607D+01 -0.62034924355719D-05 + 3 8 3 4 -0.11113150898459D-14 -0.54265778057814D-15 + 1 1 1 5 -0.10098950912968D-13 0.92982202429369D-15 + 2 1 1 5 -0.43548759945830D-14 -0.51356660474761D-15 + 3 1 1 5 0.14318657088954D-13 0.33805760019402D-15 + 1 2 1 5 -0.65938598272414D+01 0.61755608024377D-05 + 2 2 1 5 -0.34791558279196D+01 0.69051882391337D-05 + 3 2 1 5 0.36811055825221D+01 -0.15840367270129D-05 + 1 3 1 5 -0.32159194056850D-14 0.00000000000000D+00 + 2 3 1 5 -0.29227352572501D+01 -0.57516468394472D-14 + 3 3 1 5 0.68066616261517D-06 0.14363037427138D-06 + 1 4 1 5 0.65938598272421D+01 -0.61755226275939D-05 + 2 4 1 5 -0.34791558279208D+01 0.69051513863056D-05 + 3 4 1 5 0.36811049626836D+01 -0.12014099213227D-05 + 1 5 1 5 0.29600339782250D+02 0.00000000000000D+00 + 2 5 1 5 -0.74335363046378D-13 0.00000000000000D+00 + 3 5 1 5 -0.99923193636808D-06 -0.16866840936999D-05 + 1 6 1 5 0.65938598272378D+01 -0.61761146923921D-05 + 2 6 1 5 -0.34791558279166D+01 0.69057629635428D-05 + 3 6 1 5 -0.36811034023805D+01 -0.12156651395303D-06 + 1 7 1 5 -0.14174890279289D-13 0.17521994284884D-14 + 2 7 1 5 -0.83213165009629D-15 -0.23717952219043D-15 + 3 7 1 5 0.15116233512607D+01 -0.62034924357467D-05 + 1 8 1 5 -0.65938598272386D+01 0.61760765231180D-05 + 2 8 1 5 -0.34791558279172D+01 0.69057261086705D-05 + 3 8 1 5 -0.36811027754655D+01 -0.50809557886988D-06 + 1 1 2 5 -0.43548759945830D-14 -0.51356660474761D-15 + 2 1 2 5 -0.17234786581621D-13 -0.32265362106077D-16 + 3 1 2 5 0.15116233512607D+01 -0.62034924356705D-05 + 1 2 2 5 -0.34791558279196D+01 -0.69051882494742D-05 + 2 2 2 5 -0.65938598272421D+01 -0.61755226295586D-05 + 3 2 2 5 0.36811055825221D+01 -0.15840367194255D-05 + 1 3 2 5 -0.29227352572501D+01 -0.57516468394472D-14 + 2 3 2 5 -0.23282911107311D-14 0.00000000000000D+00 + 3 3 2 5 0.68066615576300D-06 0.14363037322307D-06 + 1 4 2 5 -0.34791558279208D+01 -0.69051513910896D-05 + 2 4 2 5 0.65938598272421D+01 0.61755226299555D-05 + 3 4 2 5 -0.36811034023806D+01 -0.12156650539078D-06 + 1 5 2 5 -0.74335363046378D-13 0.00000000000000D+00 + 2 5 2 5 0.29600339782250D+02 0.00000000000000D+00 + 3 5 2 5 -0.99923193446285D-06 -0.16866840941026D-05 + 1 6 2 5 -0.34791558279166D+01 -0.69057629688080D-05 + 2 6 2 5 0.65938598272421D+01 0.61755226306596D-05 + 3 6 2 5 0.36811049626835D+01 -0.12014099378398D-05 + 1 7 2 5 -0.83213165009629D-15 -0.23717952219043D-15 + 2 7 2 5 -0.57667017423602D-14 0.21506787839256D-15 + 3 7 2 5 0.12772405893754D-13 0.41906009730091D-15 + 1 8 2 5 -0.34791558279172D+01 -0.69057261082653D-05 + 2 8 2 5 -0.65938598272421D+01 -0.61755226305848D-05 + 3 8 2 5 -0.36811027754654D+01 -0.50809558493380D-06 + 1 1 3 5 0.14318657089368D-13 0.33805760018755D-15 + 2 1 3 5 -0.15116233512607D+01 -0.62034924354854D-05 + 3 1 3 5 0.12992720723481D-13 0.54265778057814D-15 + 1 2 3 5 0.36811055825221D+01 0.15840367377695D-05 + 2 2 3 5 0.36811055825221D+01 0.15840367303036D-05 + 3 2 3 5 -0.67977585726225D+01 0.12262036871760D-06 + 1 3 3 5 0.68066616261517D-06 -0.14363037427138D-06 + 2 3 3 5 0.68066615576300D-06 -0.14363037322307D-06 + 3 3 3 5 0.10567501360471D-07 -0.97157321547292D-09 + 1 4 3 5 0.36811049626836D+01 0.12014099267501D-05 + 2 4 3 5 -0.36811034023806D+01 0.12156649995163D-06 + 3 4 3 5 0.67977588036162D+01 0.61655716846769D-06 + 1 5 3 5 -0.99923193636808D-06 0.16866840936999D-05 + 2 5 3 5 -0.99923193446285D-06 0.16866840941026D-05 + 3 5 3 5 0.30332400916174D+02 0.00000000000000D+00 + 1 6 3 5 -0.36811034023805D+01 0.12156650836717D-06 + 2 6 3 5 0.36811049626835D+01 0.12014099431567D-05 + 3 6 3 5 0.67977588036162D+01 0.61655716865133D-06 + 1 7 3 5 -0.15116233512607D+01 -0.62034924355616D-05 + 2 7 3 5 0.12772405893961D-13 0.41906009730414D-15 + 3 7 3 5 0.14051432094588D-13 0.32948168124607D-15 + 1 8 3 5 -0.36811027754655D+01 0.50809557889001D-06 + 2 8 3 5 -0.36811027754654D+01 0.50809558487840D-06 + 3 8 3 5 -0.67977590177929D+01 -0.13541502834830D-05 + 1 1 1 6 0.65938598272414D+01 0.61755608050486D-05 + 2 1 1 6 0.34791558279196D+01 -0.69051882428351D-05 + 3 1 1 6 -0.36811055825221D+01 0.15840367379722D-05 + 1 2 1 6 0.11095566465234D-14 0.92982202429369D-15 + 2 2 1 6 -0.69549094736416D-19 -0.51356660474761D-15 + 3 2 1 6 0.16067366374175D-14 0.33805760019401D-15 + 1 3 1 6 -0.65938598272421D+01 -0.61755226302106D-05 + 2 3 1 6 0.34791558279208D+01 -0.69051513840326D-05 + 3 3 1 6 -0.36811049626836D+01 0.12014099269045D-05 + 1 4 1 6 0.66676845716208D-15 0.00000000000000D+00 + 2 4 1 6 0.29227352572501D+01 0.45918488545254D-14 + 3 4 1 6 -0.68066616261582D-06 -0.14363037427138D-06 + 1 5 1 6 0.65938598272378D+01 0.61761146923921D-05 + 2 5 1 6 -0.34791558279166D+01 0.69057629688080D-05 + 3 5 1 6 -0.36811034023805D+01 -0.12156650836717D-06 + 1 6 1 6 0.29600339782250D+02 0.00000000000000D+00 + 2 6 1 6 -0.38919145569764D-13 0.00000000000000D+00 + 3 6 1 6 -0.99923192225153D-06 -0.16866840936999D-05 + 1 7 1 6 -0.65938598272386D+01 -0.61760765227500D-05 + 2 7 1 6 -0.34791558279171D+01 0.69057261092534D-05 + 3 7 1 6 -0.36811027754655D+01 -0.50809557892272D-06 + 1 8 1 6 0.16039602508073D-14 -0.17521994284884D-14 + 2 8 1 6 0.53920893403269D-19 0.23717952219043D-15 + 3 8 1 6 0.15116233512607D+01 -0.62034924356808D-05 + 1 1 2 6 0.34791558279196D+01 0.69051882371672D-05 + 2 1 2 6 0.65938598272421D+01 0.61755226280069D-05 + 3 1 2 6 -0.36811055825221D+01 0.15840367304189D-05 + 1 2 2 6 -0.69549094736416D-19 -0.51356660474761D-15 + 2 2 2 6 0.16059778976179D-14 -0.32265362106077D-16 + 3 2 2 6 -0.15116233512607D+01 0.62034924357571D-05 + 1 3 2 6 0.34791558279208D+01 0.69051513847568D-05 + 2 3 2 6 -0.65938598272421D+01 -0.61755226306468D-05 + 3 3 2 6 0.36811034023805D+01 0.12156649980800D-06 + 1 4 2 6 0.29227352572501D+01 0.45918497015583D-14 + 2 4 2 6 0.10763471347054D-17 0.00000000000000D+00 + 3 4 2 6 -0.68066615576344D-06 -0.14363037322307D-06 + 1 5 2 6 -0.34791558279166D+01 -0.69057629635428D-05 + 2 5 2 6 0.65938598272421D+01 0.61755226273346D-05 + 3 5 2 6 0.36811049626835D+01 -0.12014099431567D-05 + 1 6 2 6 -0.38919145569764D-13 0.00000000000000D+00 + 2 6 2 6 0.29600339782250D+02 0.00000000000000D+00 + 3 6 2 6 -0.99923192020705D-06 -0.16866840941026D-05 + 1 7 2 6 -0.34791558279171D+01 -0.69057261076824D-05 + 2 7 2 6 -0.65938598272421D+01 -0.61755226302440D-05 + 3 7 2 6 -0.36811027754654D+01 -0.50809558487940D-06 + 1 8 2 6 0.53920893403269D-19 0.23717952219043D-15 + 2 8 2 6 0.12004357527028D-14 -0.21506787839255D-15 + 3 8 2 6 -0.12340313622824D-14 -0.41906009730253D-15 + 1 1 3 6 -0.36811055825221D+01 -0.15840367325250D-05 + 2 1 3 6 -0.36811055825221D+01 -0.15840367250250D-05 + 3 1 3 6 0.67977585726225D+01 0.12262036916374D-06 + 1 2 3 6 0.16067366370040D-14 0.33805760020371D-15 + 2 2 3 6 0.15116233512607D+01 0.62034924355719D-05 + 3 2 3 6 -0.11113150898459D-14 0.54265778057814D-15 + 1 3 3 6 -0.36811049626836D+01 -0.12014099268831D-05 + 2 3 3 6 0.36811034023805D+01 -0.12156649981962D-06 + 3 3 3 6 -0.67977588036162D+01 0.61655716767387D-06 + 1 4 3 6 -0.68066616261582D-06 0.14363037427138D-06 + 2 4 3 6 -0.68066615576344D-06 0.14363037322307D-06 + 3 4 3 6 -0.10567500772034D-07 0.97157321547293D-09 + 1 5 3 6 -0.36811034023805D+01 0.12156651395303D-06 + 2 5 3 6 0.36811049626835D+01 0.12014099378398D-05 + 3 5 3 6 0.67977588036162D+01 -0.61655716865133D-06 + 1 6 3 6 -0.99923192225153D-06 0.16866840936999D-05 + 2 6 3 6 -0.99923192020705D-06 0.16866840941026D-05 + 3 6 3 6 0.30332400916174D+02 0.00000000000000D+00 + 1 7 3 6 -0.36811027754655D+01 0.50809557883717D-06 + 2 7 3 6 -0.36811027754654D+01 0.50809558493280D-06 + 3 7 3 6 -0.67977590177929D+01 0.13541502832828D-05 + 1 8 3 6 -0.15116233512607D+01 -0.62034924354957D-05 + 2 8 3 6 -0.12340313620756D-14 -0.41906009730414D-15 + 3 8 3 6 -0.10761735625642D-14 -0.32948167959171D-15 + 1 1 1 7 -0.18650856554510D-14 0.00000000000000D+00 + 2 1 1 7 0.29227352572501D+01 0.45918493839210D-14 + 3 1 1 7 -0.68066616261606D-06 -0.14363037427138D-06 + 1 2 1 7 0.65938598272421D+01 -0.61755226281594D-05 + 2 2 1 7 -0.34791558279208D+01 0.69051513852775D-05 + 3 2 1 7 0.36811049626836D+01 -0.12014099214114D-05 + 1 3 1 7 0.27467848469095D-14 0.92982202429369D-15 + 2 3 1 7 0.74407931611440D-14 -0.51356660474761D-15 + 3 3 1 7 -0.11711060521247D-13 0.33805760019401D-15 + 1 4 1 7 0.65938598272414D+01 -0.61755608044936D-05 + 2 4 1 7 0.34791558279196D+01 -0.69051882372446D-05 + 3 4 1 7 -0.36811055825221D+01 0.15840367268542D-05 + 1 5 1 7 -0.14174890279289D-13 -0.17521994284884D-14 + 2 5 1 7 -0.83213165009629D-15 0.23717952219043D-15 + 3 5 1 7 -0.15116233512607D+01 0.62034924357467D-05 + 1 6 1 7 -0.65938598272386D+01 0.61760765227500D-05 + 2 6 1 7 -0.34791558279171D+01 0.69057261076824D-05 + 3 6 1 7 -0.36811027754655D+01 -0.50809557883717D-06 + 1 7 1 7 0.29600339782250D+02 0.00000000000000D+00 + 2 7 1 7 -0.21044182765426D-13 0.00000000000000D+00 + 3 7 1 7 -0.99923187241970D-06 -0.16866840936999D-05 + 1 8 1 7 -0.65938598272378D+01 0.61761146955376D-05 + 2 8 1 7 0.34791558279165D+01 -0.69057629620113D-05 + 3 8 1 7 0.36811034023805D+01 0.12156651412622D-06 + 1 1 2 7 0.29227352572501D+01 0.45918502309539D-14 + 2 1 2 7 -0.26152035152709D-14 0.00000000000000D+00 + 3 1 2 7 -0.68066615576322D-06 -0.14363037322307D-06 + 1 2 2 7 -0.34791558279208D+01 -0.69051513921177D-05 + 2 2 2 7 0.65938598272421D+01 0.61755226301651D-05 + 3 2 2 7 -0.36811034023806D+01 -0.12156650543265D-06 + 1 3 2 7 0.74407931611440D-14 -0.51356660474761D-15 + 2 3 2 7 -0.55180977373498D-14 -0.32265362106077D-16 + 3 3 2 7 0.15116233512607D+01 -0.62034924356705D-05 + 1 4 2 7 0.34791558279196D+01 0.69051882513634D-05 + 2 4 2 7 0.65938598272421D+01 0.61755226278413D-05 + 3 4 2 7 -0.36811055825221D+01 0.15840367193206D-05 + 1 5 2 7 -0.83213165009629D-15 0.23717952219043D-15 + 2 5 2 7 -0.57667017423602D-14 -0.21506787839256D-15 + 3 5 2 7 0.12772405893961D-13 -0.41906009730737D-15 + 1 6 2 7 -0.34791558279171D+01 -0.69057261092534D-05 + 2 6 2 7 -0.65938598272421D+01 -0.61755226305666D-05 + 3 6 2 7 -0.36811027754654D+01 -0.50809558493280D-06 + 1 7 2 7 -0.21044182765426D-13 0.00000000000000D+00 + 2 7 2 7 0.29600339782250D+02 0.00000000000000D+00 + 3 7 2 7 -0.99923198420132D-06 -0.16866840941026D-05 + 1 8 2 7 0.34791558279165D+01 0.69057629703395D-05 + 2 8 2 7 -0.65938598272421D+01 -0.61755226271649D-05 + 3 8 2 7 -0.36811049626835D+01 0.12014099376538D-05 + 1 1 3 7 -0.68066616261606D-06 0.14363037427138D-06 + 2 1 3 7 -0.68066615576322D-06 0.14363037322307D-06 + 3 1 3 7 -0.10567500235137D-07 0.97157321547292D-09 + 1 2 3 7 0.36811049626836D+01 0.12014099266614D-05 + 2 2 3 7 -0.36811034023806D+01 0.12156649990977D-06 + 3 2 3 7 0.67977588036163D+01 0.61655716850461D-06 + 1 3 3 7 -0.11711060520833D-13 0.33805760018755D-15 + 2 3 3 7 -0.15116233512607D+01 -0.62034924354854D-05 + 3 3 3 7 0.10157782341081D-13 0.54265778057814D-15 + 1 4 3 7 -0.36811055825221D+01 -0.15840367379281D-05 + 2 4 3 7 -0.36811055825221D+01 -0.15840367304086D-05 + 3 4 3 7 0.67977585726225D+01 -0.12262036924980D-06 + 1 5 3 7 0.15116233512607D+01 0.62034924355616D-05 + 2 5 3 7 0.12772405893754D-13 -0.41906009729606D-15 + 3 5 3 7 0.14051432094588D-13 -0.32948168124607D-15 + 1 6 3 7 -0.36811027754655D+01 0.50809557892272D-06 + 2 6 3 7 -0.36811027754654D+01 0.50809558487940D-06 + 3 6 3 7 -0.67977590177929D+01 -0.13541502832828D-05 + 1 7 3 7 -0.99923187241970D-06 0.16866840936999D-05 + 2 7 3 7 -0.99923198420132D-06 0.16866840941026D-05 + 3 7 3 7 0.30332400916174D+02 0.00000000000000D+00 + 1 8 3 7 0.36811034023805D+01 -0.12156650819398D-06 + 2 8 3 7 -0.36811049626835D+01 -0.12014099433427D-05 + 3 8 3 7 -0.67977588036162D+01 -0.61655716801941D-06 + 1 1 1 8 -0.65938598272421D+01 -0.61755226302196D-05 + 2 1 1 8 0.34791558279208D+01 -0.69051513838965D-05 + 3 1 1 8 -0.36811049626835D+01 0.12014099267902D-05 + 1 2 1 8 -0.66676845716208D-15 0.00000000000000D+00 + 2 2 1 8 -0.29227352572501D+01 -0.57516467070983D-14 + 3 2 1 8 0.68066616261582D-06 0.14363037427138D-06 + 1 3 1 8 -0.65938598272414D+01 -0.61755608066524D-05 + 2 3 1 8 -0.34791558279196D+01 0.69051882444361D-05 + 3 3 1 8 0.36811055825221D+01 -0.15840367380534D-05 + 1 4 1 8 0.11095566465234D-14 0.92982202429369D-15 + 2 4 1 8 -0.69549094736416D-19 -0.51356660474761D-15 + 3 4 1 8 -0.10577986216828D-14 0.33805760019401D-15 + 1 5 1 8 -0.65938598272386D+01 -0.61760765231180D-05 + 2 5 1 8 -0.34791558279172D+01 0.69057261082653D-05 + 3 5 1 8 -0.36811027754655D+01 -0.50809557889001D-06 + 1 6 1 8 0.16039602508073D-14 0.17521994284884D-14 + 2 6 1 8 0.53920893403269D-19 -0.23717952219043D-15 + 3 6 1 8 -0.15116233512607D+01 0.62034924356808D-05 + 1 7 1 8 -0.65938598272378D+01 -0.61761146955376D-05 + 2 7 1 8 0.34791558279165D+01 -0.69057629703395D-05 + 3 7 1 8 0.36811034023805D+01 0.12156650819398D-06 + 1 8 1 8 0.29600339782250D+02 0.00000000000000D+00 + 2 8 1 8 0.21676391628211D-13 0.00000000000000D+00 + 3 8 1 8 -0.99923187941933D-06 -0.16866840936999D-05 + 1 1 2 8 0.34791558279208D+01 0.69051513848930D-05 + 2 1 2 8 -0.65938598272421D+01 -0.61755226308815D-05 + 3 1 2 8 0.36811034023805D+01 0.12156649980263D-06 + 1 2 2 8 -0.29227352572501D+01 -0.57516458600653D-14 + 2 2 2 8 -0.10763471347054D-17 0.00000000000000D+00 + 3 2 2 8 0.68066615576344D-06 0.14363037322307D-06 + 1 3 2 8 -0.34791558279196D+01 -0.69051882355662D-05 + 2 3 2 8 -0.65938598272421D+01 -0.61755226301907D-05 + 3 3 2 8 0.36811055825221D+01 -0.15840367305059D-05 + 1 4 2 8 -0.69549094736416D-19 -0.51356660474761D-15 + 2 4 2 8 0.16059778976179D-14 -0.32265362106077D-16 + 3 4 2 8 -0.15116233512607D+01 0.62034924357571D-05 + 1 5 2 8 -0.34791558279172D+01 -0.69057261086705D-05 + 2 5 2 8 -0.65938598272421D+01 -0.61755226302257D-05 + 3 5 2 8 -0.36811027754654D+01 -0.50809558487840D-06 + 1 6 2 8 0.53920893403269D-19 -0.23717952219043D-15 + 2 6 2 8 0.12004357527028D-14 0.21506787839255D-15 + 3 6 2 8 -0.12340313620756D-14 0.41906009730414D-15 + 1 7 2 8 0.34791558279165D+01 0.69057629620113D-05 + 2 7 2 8 -0.65938598272421D+01 -0.61755226308293D-05 + 3 7 2 8 -0.36811049626835D+01 0.12014099433427D-05 + 1 8 2 8 0.21676391628211D-13 0.00000000000000D+00 + 2 8 2 8 0.29600339782250D+02 0.00000000000000D+00 + 3 8 2 8 -0.99923187408939D-06 -0.16866840941026D-05 + 1 1 3 8 -0.36811049626835D+01 -0.12014099269974D-05 + 2 1 3 8 0.36811034023805D+01 -0.12156649982499D-06 + 3 1 3 8 -0.67977588036162D+01 0.61655716784144D-06 + 1 2 3 8 0.68066616261582D-06 -0.14363037427138D-06 + 2 2 3 8 0.68066615576344D-06 -0.14363037322307D-06 + 3 2 3 8 0.10567500772034D-07 -0.97157321547292D-09 + 1 3 3 8 0.36811055825221D+01 0.15840367324438D-05 + 2 3 3 8 0.36811055825221D+01 0.15840367249381D-05 + 3 3 3 8 -0.67977585726225D+01 -0.12262036988533D-06 + 1 4 3 8 -0.10577986220964D-14 0.33805760020371D-15 + 2 4 3 8 0.15116233512607D+01 0.62034924355719D-05 + 3 4 3 8 -0.11113150898459D-14 0.54265778057814D-15 + 1 5 3 8 -0.36811027754655D+01 0.50809557886988D-06 + 2 5 3 8 -0.36811027754654D+01 0.50809558493380D-06 + 3 5 3 8 -0.67977590177929D+01 0.13541502834830D-05 + 1 6 3 8 0.15116233512607D+01 0.62034924354957D-05 + 2 6 3 8 -0.12340313622824D-14 0.41906009730899D-15 + 3 6 3 8 -0.10761735625642D-14 0.32948167959171D-15 + 1 7 3 8 0.36811034023805D+01 -0.12156651412622D-06 + 2 7 3 8 -0.36811049626835D+01 -0.12014099376538D-05 + 3 7 3 8 -0.67977588036162D+01 0.61655716801941D-06 + 1 8 3 8 -0.99923187941933D-06 0.16866840936999D-05 + 2 8 3 8 -0.99923187408939D-06 0.16866840941026D-05 + 3 8 3 8 0.30332400916174D+02 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 2.50000000E-01 2.50000000E-01 2.50000000E-01 1.0 + 1 1 1 1 0.29918317758212D+02 -0.97697813200566D-15 + 2 1 1 1 0.11895022191451D+00 -0.17190758893199D-14 + 3 1 1 1 0.11895022191437D+00 0.53360856913074D-16 + 1 2 1 1 0.47561261518199D-01 0.66147676248961D+01 + 2 2 1 1 -0.19042386535514D-01 -0.38035912221998D+01 + 3 2 1 1 -0.19042386535513D-01 -0.38035912221998D+01 + 1 3 1 1 0.14854306405781D+01 0.28670478888606D-06 + 2 3 1 1 0.26460725191149D-01 0.81384591650361D+00 + 3 3 1 1 0.26460725191143D-01 0.81384591650361D+00 + 1 4 1 1 -0.63035730624572D+01 -0.21347145460408D+00 + 2 4 1 1 -0.33954195750070D+01 0.11315420620563D+00 + 3 4 1 1 -0.33954195750070D+01 0.11315420620564D+00 + 1 5 1 1 0.35463546897462D-05 -0.14231641591470D+01 + 2 5 1 1 0.81384591650360D+00 0.26460725191148D-01 + 3 5 1 1 0.65984897427381D-14 0.15243660301944D+01 + 1 6 1 1 0.82889555954395D-01 0.69445132320312D+01 + 2 6 1 1 -0.11972707991156D+00 0.39319310224615D+01 + 3 6 1 1 -0.19042386535515D-01 -0.38035912221998D+01 + 1 7 1 1 -0.14231641591470D+01 -0.35463546853204D-05 + 2 7 1 1 0.15243660301944D+01 0.11760013334835D-14 + 3 7 1 1 0.26460725191144D-01 -0.81384591650361D+00 + 1 8 1 1 -0.69445132320312D+01 0.82889555954396D-01 + 2 8 1 1 0.38035912221998D+01 -0.19042386535510D-01 + 3 8 1 1 -0.39319310224614D+01 -0.11972707991156D+00 + 1 1 2 1 0.11895022191451D+00 -0.17190758893199D-14 + 2 1 2 1 0.29918317758211D+02 -0.17003578184656D-14 + 3 1 2 1 0.11895022191448D+00 -0.11818977228058D-14 + 1 2 2 1 -0.19042386535514D-01 -0.38035912221998D+01 + 2 2 2 1 0.82889555954393D-01 0.69445132320312D+01 + 3 2 2 1 -0.11972707991156D+00 0.39319310224615D+01 + 1 3 2 1 0.26460725191149D-01 -0.81384591650361D+00 + 2 3 2 1 -0.14231641591470D+01 -0.35463546986956D-05 + 3 3 2 1 0.15243660301944D+01 0.34235152290847D-15 + 1 4 2 1 -0.33954195750070D+01 0.11315420620563D+00 + 2 4 2 1 -0.63035730624572D+01 -0.21347145460408D+00 + 3 4 2 1 -0.33954195750070D+01 0.11315420620564D+00 + 1 5 2 1 -0.81384591650362D+00 0.26460725191148D-01 + 2 5 2 1 -0.28670480710328D-06 0.14854306405781D+01 + 3 5 2 1 -0.81384591650362D+00 0.26460725191142D-01 + 1 6 2 1 -0.11972707991156D+00 0.39319310224615D+01 + 2 6 2 1 0.82889555954395D-01 0.69445132320312D+01 + 3 6 2 1 -0.19042386535512D-01 -0.38035912221998D+01 + 1 7 2 1 0.15243660301944D+01 0.11760013334835D-14 + 2 7 2 1 -0.14231641591470D+01 -0.35463547011641D-05 + 3 7 2 1 0.26460725191146D-01 -0.81384591650361D+00 + 1 8 2 1 0.38035912221998D+01 -0.19042386535510D-01 + 2 8 2 1 -0.66147676248961D+01 0.47561261518203D-01 + 3 8 2 1 0.38035912221998D+01 -0.19042386535511D-01 + 1 1 3 1 0.11895022191437D+00 0.53360856913074D-16 + 2 1 3 1 0.11895022191448D+00 -0.11818977228058D-14 + 3 1 3 1 0.29918317758211D+02 -0.12054750393017D-14 + 1 2 3 1 -0.19042386535513D-01 -0.38035912221998D+01 + 2 2 3 1 -0.11972707991156D+00 0.39319310224615D+01 + 3 2 3 1 0.82889555954385D-01 0.69445132320312D+01 + 1 3 3 1 0.26460725191143D-01 -0.81384591650361D+00 + 2 3 3 1 0.15243660301944D+01 0.34235152290847D-15 + 3 3 3 1 -0.14231641591470D+01 -0.35463546841760D-05 + 1 4 3 1 -0.33954195750070D+01 0.11315420620564D+00 + 2 4 3 1 -0.33954195750070D+01 0.11315420620564D+00 + 3 4 3 1 -0.63035730624572D+01 -0.21347145460408D+00 + 1 5 3 1 0.65984897427381D-14 0.15243660301944D+01 + 2 5 3 1 0.81384591650360D+00 0.26460725191142D-01 + 3 5 3 1 0.35463546913257D-05 -0.14231641591470D+01 + 1 6 3 1 -0.19042386535515D-01 -0.38035912221998D+01 + 2 6 3 1 -0.19042386535512D-01 -0.38035912221998D+01 + 3 6 3 1 0.47561261518204D-01 0.66147676248961D+01 + 1 7 3 1 0.26460725191144D-01 0.81384591650361D+00 + 2 7 3 1 0.26460725191146D-01 0.81384591650361D+00 + 3 7 3 1 0.14854306405781D+01 0.28670478847075D-06 + 1 8 3 1 -0.39319310224614D+01 -0.11972707991156D+00 + 2 8 3 1 0.38035912221998D+01 -0.19042386535511D-01 + 3 8 3 1 -0.69445132320312D+01 0.82889555954394D-01 + 1 1 1 2 0.47561261518199D-01 -0.66147676248961D+01 + 2 1 1 2 -0.19042386535514D-01 0.38035912221998D+01 + 3 1 1 2 -0.19042386535513D-01 0.38035912221998D+01 + 1 2 1 2 0.29918317758211D+02 0.83448023491651D-17 + 2 2 1 2 0.11895022191440D+00 0.00000000000000D+00 + 3 2 1 2 0.11895022191441D+00 0.00000000000000D+00 + 1 3 1 2 -0.63035730624572D+01 0.21347145460408D+00 + 2 3 1 2 -0.33954195750070D+01 -0.11315420620564D+00 + 3 3 1 2 -0.33954195750070D+01 -0.11315420620564D+00 + 1 4 1 2 0.14854306405781D+01 -0.34404574846295D-06 + 2 4 1 2 0.26460725191149D-01 -0.81384591650361D+00 + 3 4 1 2 0.26460725191143D-01 -0.81384591650361D+00 + 1 5 1 2 0.69445132320312D+01 0.82889555954387D-01 + 2 5 1 2 0.39319310224614D+01 -0.11972707991157D+00 + 3 5 1 2 -0.38035912221998D+01 -0.19042386535522D-01 + 1 6 1 2 -0.14231641591470D+01 0.53195320334694D-05 + 2 6 1 2 0.26460725191148D-01 0.81384591650361D+00 + 3 6 1 2 0.15243660301944D+01 -0.17842808143614D-16 + 1 7 1 2 0.82889555954398D-01 -0.69445132320311D+01 + 2 7 1 2 -0.19042386535514D-01 0.38035912221998D+01 + 3 7 1 2 -0.11972707991156D+00 -0.39319310224615D+01 + 1 8 1 2 -0.53195320344066D-05 -0.14231641591470D+01 + 2 8 1 2 -0.19828268383453D-14 0.15243660301944D+01 + 3 8 1 2 -0.81384591650361D+00 0.26460725191144D-01 + 1 1 2 2 -0.19042386535514D-01 0.38035912221998D+01 + 2 1 2 2 0.82889555954393D-01 -0.69445132320312D+01 + 3 1 2 2 -0.11972707991156D+00 -0.39319310224615D+01 + 1 2 2 2 0.11895022191440D+00 0.00000000000000D+00 + 2 2 2 2 0.29918317758211D+02 0.48753573941948D-17 + 3 2 2 2 0.11895022191441D+00 0.00000000000000D+00 + 1 3 2 2 -0.33954195750070D+01 -0.11315420620564D+00 + 2 3 2 2 -0.63035730624572D+01 0.21347145460408D+00 + 3 3 2 2 -0.33954195750070D+01 -0.11315420620564D+00 + 1 4 2 2 0.26460725191149D-01 0.81384591650361D+00 + 2 4 2 2 -0.14231641591470D+01 0.53195320333944D-05 + 3 4 2 2 0.15243660301944D+01 -0.10173749148786D-15 + 1 5 2 2 0.39319310224614D+01 -0.11972707991157D+00 + 2 5 2 2 0.69445132320312D+01 0.82889555954391D-01 + 3 5 2 2 -0.38035912221998D+01 -0.19042386535518D-01 + 1 6 2 2 0.26460725191148D-01 -0.81384591650361D+00 + 2 6 2 2 0.14854306405781D+01 -0.34404574840532D-06 + 3 6 2 2 0.26460725191142D-01 -0.81384591650361D+00 + 1 7 2 2 -0.19042386535514D-01 0.38035912221998D+01 + 2 7 2 2 0.47561261518201D-01 -0.66147676248961D+01 + 3 7 2 2 -0.19042386535513D-01 0.38035912221998D+01 + 1 8 2 2 -0.19828268383453D-14 0.15243660301944D+01 + 2 8 2 2 -0.53195320344126D-05 -0.14231641591470D+01 + 3 8 2 2 -0.81384591650361D+00 0.26460725191146D-01 + 1 1 3 2 -0.19042386535513D-01 0.38035912221998D+01 + 2 1 3 2 -0.11972707991156D+00 -0.39319310224615D+01 + 3 1 3 2 0.82889555954385D-01 -0.69445132320312D+01 + 1 2 3 2 0.11895022191441D+00 0.00000000000000D+00 + 2 2 3 2 0.11895022191441D+00 0.00000000000000D+00 + 3 2 3 2 0.29918317758211D+02 0.18924999781451D-17 + 1 3 3 2 -0.33954195750070D+01 -0.11315420620564D+00 + 2 3 3 2 -0.33954195750070D+01 -0.11315420620564D+00 + 3 3 3 2 -0.63035730624573D+01 0.21347145460407D+00 + 1 4 3 2 0.26460725191143D-01 0.81384591650361D+00 + 2 4 3 2 0.15243660301944D+01 -0.10173749148786D-15 + 3 4 3 2 -0.14231641591470D+01 0.53195320353951D-05 + 1 5 3 2 -0.38035912221998D+01 -0.19042386535522D-01 + 2 5 3 2 -0.38035912221998D+01 -0.19042386535518D-01 + 3 5 3 2 0.66147676248961D+01 0.47561261518197D-01 + 1 6 3 2 0.15243660301944D+01 -0.17842808143614D-16 + 2 6 3 2 0.26460725191142D-01 0.81384591650361D+00 + 3 6 3 2 -0.14231641591470D+01 0.53195320354421D-05 + 1 7 3 2 -0.11972707991156D+00 -0.39319310224615D+01 + 2 7 3 2 -0.19042386535513D-01 0.38035912221998D+01 + 3 7 3 2 0.82889555954394D-01 -0.69445132320312D+01 + 1 8 3 2 0.81384591650361D+00 0.26460725191144D-01 + 2 8 3 2 0.81384591650361D+00 0.26460725191146D-01 + 3 8 3 2 0.34404574891030D-06 0.14854306405781D+01 + 1 1 1 3 0.14854306405781D+01 0.28670479183421D-06 + 2 1 1 3 0.26460725191149D-01 0.81384591650361D+00 + 3 1 1 3 0.26460725191143D-01 0.81384591650361D+00 + 1 2 1 3 -0.63035730624572D+01 -0.21347145460408D+00 + 2 2 1 3 -0.33954195750070D+01 0.11315420620564D+00 + 3 2 1 3 -0.33954195750070D+01 0.11315420620564D+00 + 1 3 1 3 0.29918317758211D+02 -0.94977257194038D-15 + 2 3 1 3 0.11895022191439D+00 -0.81765702139871D-16 + 3 3 1 3 0.11895022191447D+00 -0.13592581576633D-14 + 1 4 1 3 0.47561261518199D-01 0.66147676248961D+01 + 2 4 1 3 -0.19042386535514D-01 -0.38035912221998D+01 + 3 4 1 3 -0.19042386535512D-01 -0.38035912221998D+01 + 1 5 1 3 0.35463546958553D-05 -0.14231641591470D+01 + 2 5 1 3 0.89474489433502D-14 0.15243660301944D+01 + 3 5 1 3 0.81384591650360D+00 0.26460725191144D-01 + 1 6 1 3 0.82889555954394D-01 0.69445132320312D+01 + 2 6 1 3 -0.19042386535515D-01 -0.38035912221998D+01 + 3 6 1 3 -0.11972707991156D+00 0.39319310224615D+01 + 1 7 1 3 -0.14231641591470D+01 -0.35463546838778D-05 + 2 7 1 3 0.26460725191148D-01 -0.81384591650361D+00 + 3 7 1 3 0.15243660301944D+01 0.13096242295044D-14 + 1 8 1 3 -0.69445132320312D+01 0.82889555954400D-01 + 2 8 1 3 -0.39319310224614D+01 -0.11972707991156D+00 + 3 8 1 3 0.38035912221998D+01 -0.19042386535513D-01 + 1 1 2 3 0.26460725191149D-01 -0.81384591650361D+00 + 2 1 2 3 -0.14231641591470D+01 -0.35463546829529D-05 + 3 1 2 3 0.15243660301944D+01 -0.34235152290847D-15 + 1 2 2 3 -0.33954195750070D+01 0.11315420620564D+00 + 2 2 2 3 -0.63035730624572D+01 -0.21347145460408D+00 + 3 2 2 3 -0.33954195750070D+01 0.11315420620564D+00 + 1 3 2 3 0.11895022191439D+00 -0.81765702139871D-16 + 2 3 2 3 0.29918317758211D+02 -0.95324202351279D-15 + 3 3 2 3 0.11895022191446D+00 -0.13592581501547D-14 + 1 4 2 3 -0.19042386535514D-01 -0.38035912221998D+01 + 2 4 2 3 0.82889555954390D-01 0.69445132320312D+01 + 3 4 2 3 -0.11972707991156D+00 0.39319310224614D+01 + 1 5 2 3 0.89474489433502D-14 0.15243660301944D+01 + 2 5 2 3 0.35463546918524D-05 -0.14231641591470D+01 + 3 5 2 3 0.81384591650360D+00 0.26460725191146D-01 + 1 6 2 3 -0.19042386535515D-01 -0.38035912221998D+01 + 2 6 2 3 0.47561261518201D-01 0.66147676248961D+01 + 3 6 2 3 -0.19042386535513D-01 -0.38035912221998D+01 + 1 7 2 3 0.26460725191148D-01 0.81384591650361D+00 + 2 7 2 3 0.14854306405781D+01 0.28670478962823D-06 + 3 7 2 3 0.26460725191142D-01 0.81384591650361D+00 + 1 8 2 3 -0.39319310224614D+01 -0.11972707991156D+00 + 2 8 2 3 -0.69445132320312D+01 0.82889555954398D-01 + 3 8 2 3 0.38035912221998D+01 -0.19042386535511D-01 + 1 1 3 3 0.26460725191143D-01 -0.81384591650361D+00 + 2 1 3 3 0.15243660301944D+01 -0.34235152290847D-15 + 3 1 3 3 -0.14231641591470D+01 -0.35463546974725D-05 + 1 2 3 3 -0.33954195750070D+01 0.11315420620564D+00 + 2 2 3 3 -0.33954195750070D+01 0.11315420620564D+00 + 3 2 3 3 -0.63035730624573D+01 -0.21347145460407D+00 + 1 3 3 3 0.11895022191447D+00 -0.13592581576633D-14 + 2 3 3 3 0.11895022191446D+00 -0.13592581501547D-14 + 3 3 3 3 0.29918317758211D+02 0.59752931201180D-16 + 1 4 3 3 -0.19042386535512D-01 -0.38035912221998D+01 + 2 4 3 3 -0.11972707991156D+00 0.39319310224614D+01 + 3 4 3 3 0.82889555954389D-01 0.69445132320312D+01 + 1 5 3 3 -0.81384591650361D+00 0.26460725191144D-01 + 2 5 3 3 -0.81384591650362D+00 0.26460725191146D-01 + 3 5 3 3 -0.28670480404045D-06 0.14854306405781D+01 + 1 6 3 3 -0.11972707991156D+00 0.39319310224615D+01 + 2 6 3 3 -0.19042386535513D-01 -0.38035912221998D+01 + 3 6 3 3 0.82889555954395D-01 0.69445132320312D+01 + 1 7 3 3 0.15243660301944D+01 0.13096242295044D-14 + 2 7 3 3 0.26460725191142D-01 -0.81384591650361D+00 + 3 7 3 3 -0.14231641591470D+01 -0.35463546968665D-05 + 1 8 3 3 0.38035912221998D+01 -0.19042386535513D-01 + 2 8 3 3 0.38035912221998D+01 -0.19042386535511D-01 + 3 8 3 3 -0.66147676248961D+01 0.47561261518206D-01 + 1 1 1 4 -0.63035730624572D+01 0.21347145460408D+00 + 2 1 1 4 -0.33954195750070D+01 -0.11315420620563D+00 + 3 1 1 4 -0.33954195750070D+01 -0.11315420620564D+00 + 1 2 1 4 0.14854306405781D+01 -0.34404574840138D-06 + 2 2 1 4 0.26460725191149D-01 -0.81384591650361D+00 + 3 2 1 4 0.26460725191143D-01 -0.81384591650361D+00 + 1 3 1 4 0.47561261518199D-01 -0.66147676248961D+01 + 2 3 1 4 -0.19042386535514D-01 0.38035912221998D+01 + 3 3 1 4 -0.19042386535512D-01 0.38035912221998D+01 + 1 4 1 4 0.29918317758211D+02 0.83448023491651D-17 + 2 4 1 4 0.11895022191442D+00 0.00000000000000D+00 + 3 4 1 4 0.11895022191442D+00 0.00000000000000D+00 + 1 5 1 4 0.69445132320312D+01 0.82889555954388D-01 + 2 5 1 4 -0.38035912221998D+01 -0.19042386535518D-01 + 3 5 1 4 0.39319310224614D+01 -0.11972707991157D+00 + 1 6 1 4 -0.14231641591470D+01 0.53195320333588D-05 + 2 6 1 4 0.15243660301944D+01 -0.15124847578231D-15 + 3 6 1 4 0.26460725191144D-01 0.81384591650361D+00 + 1 7 1 4 0.82889555954398D-01 -0.69445132320312D+01 + 2 7 1 4 -0.11972707991156D+00 -0.39319310224615D+01 + 3 7 1 4 -0.19042386535515D-01 0.38035912221998D+01 + 1 8 1 4 -0.53195320345172D-05 -0.14231641591470D+01 + 2 8 1 4 -0.81384591650361D+00 0.26460725191148D-01 + 3 8 1 4 -0.21162322729257D-14 0.15243660301944D+01 + 1 1 2 4 -0.33954195750070D+01 -0.11315420620563D+00 + 2 1 2 4 -0.63035730624572D+01 0.21347145460408D+00 + 3 1 2 4 -0.33954195750070D+01 -0.11315420620564D+00 + 1 2 2 4 0.26460725191149D-01 0.81384591650361D+00 + 2 2 2 4 -0.14231641591470D+01 0.53195320354736D-05 + 3 2 2 4 0.15243660301944D+01 0.10173749148786D-15 + 1 3 2 4 -0.19042386535514D-01 0.38035912221998D+01 + 2 3 2 4 0.82889555954390D-01 -0.69445132320312D+01 + 3 3 2 4 -0.11972707991156D+00 -0.39319310224614D+01 + 1 4 2 4 0.11895022191442D+00 0.00000000000000D+00 + 2 4 2 4 0.29918317758211D+02 0.48753573941948D-17 + 3 4 2 4 0.11895022191442D+00 0.00000000000000D+00 + 1 5 2 4 -0.38035912221998D+01 -0.19042386535518D-01 + 2 5 2 4 0.66147676248961D+01 0.47561261518197D-01 + 3 5 2 4 -0.38035912221998D+01 -0.19042386535517D-01 + 1 6 2 4 0.15243660301944D+01 -0.15124847578231D-15 + 2 6 2 4 -0.14231641591470D+01 0.53195320353632D-05 + 3 6 2 4 0.26460725191146D-01 0.81384591650361D+00 + 1 7 2 4 -0.11972707991156D+00 -0.39319310224615D+01 + 2 7 2 4 0.82889555954392D-01 -0.69445132320312D+01 + 3 7 2 4 -0.19042386535515D-01 0.38035912221998D+01 + 1 8 2 4 0.81384591650361D+00 0.26460725191148D-01 + 2 8 2 4 0.34404574886348D-06 0.14854306405781D+01 + 3 8 2 4 0.81384591650361D+00 0.26460725191142D-01 + 1 1 3 4 -0.33954195750070D+01 -0.11315420620564D+00 + 2 1 3 4 -0.33954195750070D+01 -0.11315420620564D+00 + 3 1 3 4 -0.63035730624572D+01 0.21347145460408D+00 + 1 2 3 4 0.26460725191143D-01 0.81384591650361D+00 + 2 2 3 4 0.15243660301944D+01 0.10173749148786D-15 + 3 2 3 4 -0.14231641591470D+01 0.53195320334729D-05 + 1 3 3 4 -0.19042386535512D-01 0.38035912221998D+01 + 2 3 3 4 -0.11972707991156D+00 -0.39319310224614D+01 + 3 3 3 4 0.82889555954389D-01 -0.69445132320312D+01 + 1 4 3 4 0.11895022191442D+00 0.00000000000000D+00 + 2 4 3 4 0.11895022191442D+00 0.00000000000000D+00 + 3 4 3 4 0.29918317758211D+02 0.18924999781451D-17 + 1 5 3 4 0.39319310224614D+01 -0.11972707991157D+00 + 2 5 3 4 -0.38035912221998D+01 -0.19042386535517D-01 + 3 5 3 4 0.69445132320312D+01 0.82889555954390D-01 + 1 6 3 4 0.26460725191144D-01 -0.81384591650361D+00 + 2 6 3 4 0.26460725191146D-01 -0.81384591650361D+00 + 3 6 3 4 0.14854306405781D+01 -0.34404574845214D-06 + 1 7 3 4 -0.19042386535515D-01 0.38035912221998D+01 + 2 7 3 4 -0.19042386535515D-01 0.38035912221998D+01 + 3 7 3 4 0.47561261518204D-01 -0.66147676248961D+01 + 1 8 3 4 -0.21162322729257D-14 0.15243660301944D+01 + 2 8 3 4 -0.81384591650361D+00 0.26460725191142D-01 + 3 8 3 4 -0.53195320344915D-05 -0.14231641591470D+01 + 1 1 1 5 -0.35463546919022D-05 0.14231641591470D+01 + 2 1 1 5 -0.81384591650362D+00 -0.26460725191148D-01 + 3 1 1 5 0.65984897427381D-14 -0.15243660301944D+01 + 1 2 1 5 0.69445132320312D+01 -0.82889555954386D-01 + 2 2 1 5 0.39319310224614D+01 0.11972707991157D+00 + 3 2 1 5 -0.38035912221998D+01 0.19042386535522D-01 + 1 3 1 5 -0.35463546857932D-05 0.14231641591470D+01 + 2 3 1 5 0.89474489433502D-14 -0.15243660301944D+01 + 3 3 1 5 -0.81384591650361D+00 -0.26460725191144D-01 + 1 4 1 5 0.69445132320312D+01 -0.82889555954387D-01 + 2 4 1 5 -0.38035912221998D+01 0.19042386535518D-01 + 3 4 1 5 0.39319310224614D+01 0.11972707991157D+00 + 1 5 1 5 0.29918317758211D+02 -0.46273863410112D-14 + 2 5 1 5 0.11895022191440D+00 -0.20030392053894D-14 + 3 5 1 5 0.11895022191440D+00 -0.28669046542869D-14 + 1 6 1 5 0.66147676248961D+01 -0.47561261518196D-01 + 2 6 1 5 -0.38035912221998D+01 0.19042386535516D-01 + 3 6 1 5 -0.38035912221998D+01 0.19042386535515D-01 + 1 7 1 5 0.28670477667987D-06 -0.14854306405781D+01 + 2 7 1 5 0.81384591650361D+00 -0.26460725191149D-01 + 3 7 1 5 0.81384591650361D+00 -0.26460725191143D-01 + 1 8 1 5 -0.63035730624572D+01 -0.21347145460408D+00 + 2 8 1 5 -0.33954195750070D+01 0.11315420620563D+00 + 3 8 1 5 -0.33954195750070D+01 0.11315420620564D+00 + 1 1 2 5 0.81384591650360D+00 -0.26460725191148D-01 + 2 1 2 5 0.28670477361700D-06 -0.14854306405781D+01 + 3 1 2 5 0.81384591650360D+00 -0.26460725191142D-01 + 1 2 2 5 0.39319310224614D+01 0.11972707991157D+00 + 2 2 2 5 0.69445132320312D+01 -0.82889555954390D-01 + 3 2 2 5 -0.38035912221998D+01 0.19042386535518D-01 + 1 3 2 5 0.89474489433502D-14 -0.15243660301944D+01 + 2 3 2 5 -0.35463546897961D-05 0.14231641591470D+01 + 3 3 2 5 -0.81384591650362D+00 -0.26460725191146D-01 + 1 4 2 5 -0.38035912221998D+01 0.19042386535518D-01 + 2 4 2 5 0.66147676248961D+01 -0.47561261518197D-01 + 3 4 2 5 -0.38035912221998D+01 0.19042386535517D-01 + 1 5 2 5 0.11895022191440D+00 -0.20030392053894D-14 + 2 5 2 5 0.29918317758211D+02 -0.51564769925697D-14 + 3 5 2 5 0.11895022191440D+00 -0.18559085276040D-14 + 1 6 2 5 -0.38035912221998D+01 0.19042386535516D-01 + 2 6 2 5 0.69445132320312D+01 -0.82889555954388D-01 + 3 6 2 5 0.39319310224614D+01 0.11972707991157D+00 + 1 7 2 5 -0.81384591650361D+00 -0.26460725191149D-01 + 2 7 2 5 -0.35463546901471D-05 0.14231641591470D+01 + 3 7 2 5 0.10639591167634D-13 -0.15243660301944D+01 + 1 8 2 5 -0.33954195750070D+01 0.11315420620563D+00 + 2 8 2 5 -0.63035730624572D+01 -0.21347145460408D+00 + 3 8 2 5 -0.33954195750070D+01 0.11315420620564D+00 + 1 1 3 5 0.65984897427381D-14 -0.15243660301944D+01 + 2 1 3 5 -0.81384591650362D+00 -0.26460725191142D-01 + 3 1 3 5 -0.35463546903228D-05 0.14231641591470D+01 + 1 2 3 5 -0.38035912221998D+01 0.19042386535522D-01 + 2 2 3 5 -0.38035912221998D+01 0.19042386535518D-01 + 3 2 3 5 0.66147676248961D+01 -0.47561261518197D-01 + 1 3 3 5 0.81384591650360D+00 -0.26460725191144D-01 + 2 3 3 5 0.81384591650360D+00 -0.26460725191146D-01 + 3 3 3 5 0.28670477667983D-06 -0.14854306405781D+01 + 1 4 3 5 0.39319310224614D+01 0.11972707991157D+00 + 2 4 3 5 -0.38035912221998D+01 0.19042386535517D-01 + 3 4 3 5 0.69445132320312D+01 -0.82889555954389D-01 + 1 5 3 5 0.11895022191440D+00 -0.28669046542869D-14 + 2 5 3 5 0.11895022191440D+00 -0.18559085276040D-14 + 3 5 3 5 0.29918317758211D+02 -0.47280838502853D-14 + 1 6 3 5 -0.38035912221998D+01 0.19042386535515D-01 + 2 6 3 5 0.39319310224614D+01 0.11972707991157D+00 + 3 6 3 5 0.69445132320312D+01 -0.82889555954381D-01 + 1 7 3 5 -0.81384591650361D+00 -0.26460725191143D-01 + 2 7 3 5 0.10639591167634D-13 -0.15243660301944D+01 + 3 7 3 5 -0.35463546843716D-05 0.14231641591470D+01 + 1 8 3 5 -0.33954195750070D+01 0.11315420620564D+00 + 2 8 3 5 -0.33954195750070D+01 0.11315420620564D+00 + 3 8 3 5 -0.63035730624572D+01 -0.21347145460408D+00 + 1 1 1 6 0.82889555954395D-01 -0.69445132320312D+01 + 2 1 1 6 -0.11972707991156D+00 -0.39319310224615D+01 + 3 1 1 6 -0.19042386535515D-01 0.38035912221998D+01 + 1 2 1 6 -0.14231641591470D+01 0.53195320353986D-05 + 2 2 1 6 0.26460725191148D-01 0.81384591650361D+00 + 3 2 1 6 0.15243660301944D+01 0.17842808143614D-16 + 1 3 1 6 0.82889555954394D-01 -0.69445132320312D+01 + 2 3 1 6 -0.19042386535515D-01 0.38035912221998D+01 + 3 3 1 6 -0.11972707991156D+00 -0.39319310224615D+01 + 1 4 1 6 -0.14231641591470D+01 0.53195320355092D-05 + 2 4 1 6 0.15243660301944D+01 0.15124847578231D-15 + 3 4 1 6 0.26460725191144D-01 0.81384591650361D+00 + 1 5 1 6 0.66147676248961D+01 0.47561261518196D-01 + 2 5 1 6 -0.38035912221998D+01 -0.19042386535516D-01 + 3 5 1 6 -0.38035912221998D+01 -0.19042386535515D-01 + 1 6 1 6 0.29918317758212D+02 0.83448023491651D-17 + 2 6 1 6 0.11895022191443D+00 0.00000000000000D+00 + 3 6 1 6 0.11895022191442D+00 0.00000000000000D+00 + 1 7 1 6 -0.63035730624573D+01 0.21347145460407D+00 + 2 7 1 6 -0.33954195750070D+01 -0.11315420620563D+00 + 3 7 1 6 -0.33954195750070D+01 -0.11315420620564D+00 + 1 8 1 6 0.34404574881009D-06 0.14854306405781D+01 + 2 8 1 6 0.81384591650361D+00 0.26460725191149D-01 + 3 8 1 6 0.81384591650361D+00 0.26460725191143D-01 + 1 1 2 6 -0.11972707991156D+00 -0.39319310224615D+01 + 2 1 2 6 0.82889555954395D-01 -0.69445132320312D+01 + 3 1 2 6 -0.19042386535512D-01 0.38035912221998D+01 + 1 2 2 6 0.26460725191148D-01 -0.81384591650361D+00 + 2 2 2 6 0.14854306405781D+01 -0.34404574845901D-06 + 3 2 2 6 0.26460725191142D-01 -0.81384591650361D+00 + 1 3 2 6 -0.19042386535515D-01 0.38035912221998D+01 + 2 3 2 6 0.47561261518201D-01 -0.66147676248961D+01 + 3 3 2 6 -0.19042386535513D-01 0.38035912221998D+01 + 1 4 2 6 0.15243660301944D+01 0.15124847578231D-15 + 2 4 2 6 -0.14231641591470D+01 0.53195320335047D-05 + 3 4 2 6 0.26460725191146D-01 0.81384591650361D+00 + 1 5 2 6 -0.38035912221998D+01 -0.19042386535516D-01 + 2 5 2 6 0.69445132320312D+01 0.82889555954388D-01 + 3 5 2 6 0.39319310224614D+01 -0.11972707991157D+00 + 1 6 2 6 0.11895022191443D+00 0.00000000000000D+00 + 2 6 2 6 0.29918317758211D+02 0.48753573941948D-17 + 3 6 2 6 0.11895022191441D+00 0.00000000000000D+00 + 1 7 2 6 -0.33954195750070D+01 -0.11315420620563D+00 + 2 7 2 6 -0.63035730624572D+01 0.21347145460408D+00 + 3 7 2 6 -0.33954195750070D+01 -0.11315420620565D+00 + 1 8 2 6 -0.81384591650361D+00 0.26460725191149D-01 + 2 8 2 6 -0.53195320344422D-05 -0.14231641591470D+01 + 3 8 2 6 -0.20323373776164D-14 0.15243660301944D+01 + 1 1 3 6 -0.19042386535515D-01 0.38035912221998D+01 + 2 1 3 6 -0.19042386535512D-01 0.38035912221998D+01 + 3 1 3 6 0.47561261518204D-01 -0.66147676248961D+01 + 1 2 3 6 0.15243660301944D+01 0.17842808143614D-16 + 2 2 3 6 0.26460725191142D-01 0.81384591650361D+00 + 3 2 3 6 -0.14231641591470D+01 0.53195320334258D-05 + 1 3 3 6 -0.11972707991156D+00 -0.39319310224615D+01 + 2 3 3 6 -0.19042386535513D-01 0.38035912221998D+01 + 3 3 3 6 0.82889555954395D-01 -0.69445132320312D+01 + 1 4 3 6 0.26460725191144D-01 -0.81384591650361D+00 + 2 4 3 6 0.26460725191146D-01 -0.81384591650361D+00 + 3 4 3 6 0.14854306405781D+01 -0.34404574841219D-06 + 1 5 3 6 -0.38035912221998D+01 -0.19042386535515D-01 + 2 5 3 6 0.39319310224614D+01 -0.11972707991157D+00 + 3 5 3 6 0.69445132320312D+01 0.82889555954381D-01 + 1 6 3 6 0.11895022191442D+00 0.00000000000000D+00 + 2 6 3 6 0.11895022191441D+00 0.00000000000000D+00 + 3 6 3 6 0.29918317758211D+02 0.18924999781451D-17 + 1 7 3 6 -0.33954195750070D+01 -0.11315420620564D+00 + 2 7 3 6 -0.33954195750070D+01 -0.11315420620565D+00 + 3 7 3 6 -0.63035730624572D+01 0.21347145460408D+00 + 1 8 3 6 -0.81384591650361D+00 0.26460725191143D-01 + 2 8 3 6 -0.20323373776164D-14 0.15243660301944D+01 + 3 8 3 6 -0.53195320344445D-05 -0.14231641591470D+01 + 1 1 1 7 -0.14231641591470D+01 -0.35463546963281D-05 + 2 1 1 7 0.15243660301944D+01 -0.11760013334835D-14 + 3 1 1 7 0.26460725191144D-01 -0.81384591650361D+00 + 1 2 1 7 0.82889555954398D-01 0.69445132320311D+01 + 2 2 1 7 -0.19042386535514D-01 -0.38035912221998D+01 + 3 2 1 7 -0.11972707991156D+00 0.39319310224615D+01 + 1 3 1 7 -0.14231641591470D+01 -0.35463546977707D-05 + 2 3 1 7 0.26460725191148D-01 -0.81384591650361D+00 + 3 3 1 7 0.15243660301944D+01 -0.13096242295044D-14 + 1 4 1 7 0.82889555954398D-01 0.69445132320312D+01 + 2 4 1 7 -0.11972707991156D+00 0.39319310224615D+01 + 3 4 1 7 -0.19042386535515D-01 -0.38035912221998D+01 + 1 5 1 7 -0.28670480404040D-06 0.14854306405781D+01 + 2 5 1 7 -0.81384591650361D+00 0.26460725191149D-01 + 3 5 1 7 -0.81384591650361D+00 0.26460725191143D-01 + 1 6 1 7 -0.63035730624573D+01 -0.21347145460407D+00 + 2 6 1 7 -0.33954195750070D+01 0.11315420620563D+00 + 3 6 1 7 -0.33954195750070D+01 0.11315420620564D+00 + 1 7 1 7 0.29918317758211D+02 -0.11655530013070D-15 + 2 7 1 7 0.11895022191445D+00 -0.14246079292316D-14 + 3 7 1 7 0.11895022191447D+00 -0.13012974136184D-14 + 1 8 1 7 -0.66147676248961D+01 0.47561261518199D-01 + 2 8 1 7 0.38035912221998D+01 -0.19042386535510D-01 + 3 8 1 7 0.38035912221998D+01 -0.19042386535509D-01 + 1 1 2 7 0.15243660301944D+01 -0.11760013334835D-14 + 2 1 2 7 -0.14231641591470D+01 -0.35463546804844D-05 + 3 1 2 7 0.26460725191146D-01 -0.81384591650361D+00 + 1 2 2 7 -0.19042386535514D-01 -0.38035912221998D+01 + 2 2 2 7 0.47561261518201D-01 0.66147676248961D+01 + 3 2 2 7 -0.19042386535513D-01 -0.38035912221998D+01 + 1 3 2 7 0.26460725191148D-01 0.81384591650361D+00 + 2 3 2 7 0.14854306405781D+01 0.28670479109204D-06 + 3 3 2 7 0.26460725191142D-01 0.81384591650361D+00 + 1 4 2 7 -0.11972707991156D+00 0.39319310224615D+01 + 2 4 2 7 0.82889555954392D-01 0.69445132320312D+01 + 3 4 2 7 -0.19042386535515D-01 -0.38035912221998D+01 + 1 5 2 7 0.81384591650361D+00 0.26460725191149D-01 + 2 5 2 7 0.35463546915014D-05 -0.14231641591470D+01 + 3 5 2 7 0.10639591167634D-13 0.15243660301944D+01 + 1 6 2 7 -0.33954195750070D+01 0.11315420620563D+00 + 2 6 2 7 -0.63035730624572D+01 -0.21347145460408D+00 + 3 6 2 7 -0.33954195750070D+01 0.11315420620565D+00 + 1 7 2 7 0.11895022191445D+00 -0.14246079292316D-14 + 2 7 2 7 0.29918317758211D+02 -0.95269200134500D-15 + 3 7 2 7 0.11895022191435D+00 0.21615410259061D-17 + 1 8 2 7 0.38035912221998D+01 -0.19042386535510D-01 + 2 8 2 7 -0.69445132320312D+01 0.82889555954394D-01 + 3 8 2 7 -0.39319310224614D+01 -0.11972707991156D+00 + 1 1 3 7 0.26460725191144D-01 0.81384591650361D+00 + 2 1 3 7 0.26460725191146D-01 0.81384591650361D+00 + 3 1 3 7 0.14854306405781D+01 0.28670479224953D-06 + 1 2 3 7 -0.11972707991156D+00 0.39319310224615D+01 + 2 2 3 7 -0.19042386535513D-01 -0.38035912221998D+01 + 3 2 3 7 0.82889555954394D-01 0.69445132320312D+01 + 1 3 3 7 0.15243660301944D+01 -0.13096242295044D-14 + 2 3 3 7 0.26460725191142D-01 -0.81384591650361D+00 + 3 3 3 7 -0.14231641591470D+01 -0.35463546847820D-05 + 1 4 3 7 -0.19042386535515D-01 -0.38035912221998D+01 + 2 4 3 7 -0.19042386535515D-01 -0.38035912221998D+01 + 3 4 3 7 0.47561261518204D-01 0.66147676248961D+01 + 1 5 3 7 0.81384591650361D+00 0.26460725191143D-01 + 2 5 3 7 0.10639591167634D-13 0.15243660301944D+01 + 3 5 3 7 0.35463546972769D-05 -0.14231641591470D+01 + 1 6 3 7 -0.33954195750070D+01 0.11315420620564D+00 + 2 6 3 7 -0.33954195750070D+01 0.11315420620565D+00 + 3 6 3 7 -0.63035730624572D+01 -0.21347145460408D+00 + 1 7 3 7 0.11895022191447D+00 -0.13012974136184D-14 + 2 7 3 7 0.11895022191435D+00 0.21615410259061D-17 + 3 7 3 7 0.29918317758210D+02 -0.10389415856079D-14 + 1 8 3 7 0.38035912221998D+01 -0.19042386535509D-01 + 2 8 3 7 -0.39319310224614D+01 -0.11972707991156D+00 + 3 8 3 7 -0.69445132320312D+01 0.82889555954390D-01 + 1 1 1 8 -0.69445132320312D+01 -0.82889555954396D-01 + 2 1 1 8 0.38035912221998D+01 0.19042386535510D-01 + 3 1 1 8 -0.39319310224614D+01 0.11972707991156D+00 + 1 2 1 8 0.53195320344614D-05 0.14231641591470D+01 + 2 2 1 8 -0.19828268383453D-14 -0.15243660301944D+01 + 3 2 1 8 0.81384591650361D+00 -0.26460725191144D-01 + 1 3 1 8 -0.69445132320312D+01 -0.82889555954400D-01 + 2 3 1 8 -0.39319310224614D+01 0.11972707991156D+00 + 3 3 1 8 0.38035912221998D+01 0.19042386535513D-01 + 1 4 1 8 0.53195320343508D-05 0.14231641591470D+01 + 2 4 1 8 0.81384591650361D+00 -0.26460725191148D-01 + 3 4 1 8 -0.21162322729257D-14 -0.15243660301944D+01 + 1 5 1 8 -0.63035730624572D+01 0.21347145460408D+00 + 2 5 1 8 -0.33954195750070D+01 -0.11315420620563D+00 + 3 5 1 8 -0.33954195750070D+01 -0.11315420620564D+00 + 1 6 1 8 -0.34404574805424D-06 -0.14854306405781D+01 + 2 6 1 8 -0.81384591650361D+00 -0.26460725191149D-01 + 3 6 1 8 -0.81384591650361D+00 -0.26460725191143D-01 + 1 7 1 8 -0.66147676248961D+01 -0.47561261518199D-01 + 2 7 1 8 0.38035912221998D+01 0.19042386535510D-01 + 3 7 1 8 0.38035912221998D+01 0.19042386535509D-01 + 1 8 1 8 0.29918317758211D+02 0.35528949754453D-15 + 2 8 1 8 0.11895022191449D+00 0.24274810477432D-15 + 3 8 1 8 0.11895022191446D+00 0.24274811979161D-15 + 1 1 2 8 0.38035912221998D+01 0.19042386535510D-01 + 2 1 2 8 -0.66147676248961D+01 -0.47561261518203D-01 + 3 1 2 8 0.38035912221998D+01 0.19042386535511D-01 + 1 2 2 8 -0.19828268383453D-14 -0.15243660301944D+01 + 2 2 2 8 0.53195320344554D-05 0.14231641591470D+01 + 3 2 2 8 0.81384591650361D+00 -0.26460725191146D-01 + 1 3 2 8 -0.39319310224614D+01 0.11972707991156D+00 + 2 3 2 8 -0.69445132320312D+01 -0.82889555954398D-01 + 3 3 2 8 0.38035912221998D+01 0.19042386535511D-01 + 1 4 2 8 -0.81384591650361D+00 -0.26460725191148D-01 + 2 4 2 8 -0.34404574800085D-06 -0.14854306405781D+01 + 3 4 2 8 -0.81384591650361D+00 -0.26460725191142D-01 + 1 5 2 8 -0.33954195750070D+01 -0.11315420620563D+00 + 2 5 2 8 -0.63035730624572D+01 0.21347145460408D+00 + 3 5 2 8 -0.33954195750070D+01 -0.11315420620564D+00 + 1 6 2 8 0.81384591650361D+00 -0.26460725191149D-01 + 2 6 2 8 0.53195320344258D-05 0.14231641591470D+01 + 3 6 2 8 -0.20323373776164D-14 -0.15243660301944D+01 + 1 7 2 8 0.38035912221998D+01 0.19042386535510D-01 + 2 7 2 8 -0.69445132320312D+01 -0.82889555954394D-01 + 3 7 2 8 -0.39319310224614D+01 0.11972707991156D+00 + 1 8 2 8 0.11895022191449D+00 0.24274810477432D-15 + 2 8 2 8 0.29918317758211D+02 0.35182005258956D-15 + 3 8 2 8 0.11895022191446D+00 0.24274812068281D-15 + 1 1 3 8 -0.39319310224614D+01 0.11972707991156D+00 + 2 1 3 8 0.38035912221998D+01 0.19042386535511D-01 + 3 1 3 8 -0.69445132320312D+01 -0.82889555954394D-01 + 1 2 3 8 -0.81384591650361D+00 -0.26460725191144D-01 + 2 2 3 8 -0.81384591650361D+00 -0.26460725191146D-01 + 3 2 3 8 -0.34404574795403D-06 -0.14854306405781D+01 + 1 3 3 8 0.38035912221998D+01 0.19042386535513D-01 + 2 3 3 8 0.38035912221998D+01 0.19042386535511D-01 + 3 3 3 8 -0.66147676248961D+01 -0.47561261518206D-01 + 1 4 3 8 -0.21162322729257D-14 -0.15243660301944D+01 + 2 4 3 8 0.81384591650361D+00 -0.26460725191142D-01 + 3 4 3 8 0.53195320343764D-05 0.14231641591470D+01 + 1 5 3 8 -0.33954195750070D+01 -0.11315420620564D+00 + 2 5 3 8 -0.33954195750070D+01 -0.11315420620564D+00 + 3 5 3 8 -0.63035730624572D+01 0.21347145460408D+00 + 1 6 3 8 0.81384591650361D+00 -0.26460725191143D-01 + 2 6 3 8 -0.20323373776164D-14 -0.15243660301944D+01 + 3 6 3 8 0.53195320344235D-05 0.14231641591470D+01 + 1 7 3 8 0.38035912221998D+01 0.19042386535509D-01 + 2 7 3 8 -0.39319310224614D+01 0.11972707991156D+00 + 3 7 3 8 -0.69445132320312D+01 -0.82889555954390D-01 + 1 8 3 8 0.11895022191446D+00 0.24274811979161D-15 + 2 8 3 8 0.11895022191446D+00 0.24274812068281D-15 + 3 8 3 8 0.29918317758211D+02 0.34883719517351D-15 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 5.00000000E-01 2.50000000E-01 2.50000000E-01 1.0 + 1 1 1 1 0.29974880748664D+02 0.58594099326271D-15 + 2 1 1 1 0.38630165003519D-05 0.15325889275496D+00 + 3 1 1 1 0.38630163654304D-05 0.15325889275496D+00 + 1 2 1 1 0.24080659531494D+00 0.65727391489626D+01 + 2 2 1 1 -0.17817582386161D+00 -0.35274631047639D+01 + 3 2 1 1 -0.17817582386162D+00 -0.35274631047639D+01 + 1 3 1 1 0.14215208769211D+01 -0.72535952150851D-06 + 2 3 1 1 0.28659887530045D-05 0.77992522613617D+00 + 3 3 1 1 0.28659887530680D-05 0.77992522613617D+00 + 1 4 1 1 -0.65727430483001D+01 -0.24079420749358D+00 + 2 4 1 1 -0.35274606160048D+01 -0.17817583524649D+00 + 3 4 1 1 -0.35274631047638D+01 -0.17817582386162D+00 + 1 5 1 1 -0.60991386320609D-14 -0.45844812710466D-14 + 2 5 1 1 -0.23977482573030D-01 0.23977482573021D-01 + 3 5 1 1 -0.15164644283620D+01 0.15164644283620D+01 + 1 6 1 1 0.74760232469015D-05 0.70618812365045D+01 + 2 6 1 1 -0.12962051202463D+00 0.37984181395360D+01 + 3 6 1 1 -0.12962337690225D+00 -0.37984240208213D+01 + 1 7 1 1 -0.11052127947620D-15 -0.34156428631590D-14 + 2 7 1 1 0.15164644283620D+01 0.15164644283620D+01 + 3 7 1 1 0.23977482573030D-01 0.23977482573023D-01 + 1 8 1 1 -0.70618812365045D+01 0.74760232510774D-05 + 2 8 1 1 0.37984240208212D+01 -0.12962337690224D+00 + 3 8 1 1 -0.37984240208212D+01 -0.12962337690225D+00 + 1 1 2 1 0.38630165003519D-05 -0.15325889275496D+00 + 2 1 2 1 0.29947268356713D+02 0.18160609566309D-14 + 3 1 2 1 0.10978126426493D+00 -0.12676431448310D-05 + 1 2 2 1 -0.17817582386161D+00 -0.35274631047639D+01 + 2 2 2 1 0.38808650708388D+00 0.66760113327781D+01 + 3 2 2 1 0.21369676025452D+00 0.36705883123856D+01 + 1 3 2 1 0.28659887530045D-05 -0.77992522613617D+00 + 2 3 2 1 -0.13502680226641D+01 0.62866387771651D-05 + 3 3 2 1 0.15490107140189D+01 -0.25568111233962D-05 + 1 4 2 1 -0.35274606160048D+01 -0.17817583524649D+00 + 2 4 2 1 -0.66760114219998D+01 -0.38808221582665D+00 + 3 4 2 1 -0.36705848299783D+01 -0.21369215467655D+00 + 1 5 2 1 -0.23977482573030D-01 0.23977482573021D-01 + 2 5 2 1 0.40758212945894D-06 0.40758212945328D-06 + 3 5 2 1 -0.83917338499989D+00 -0.83917338499989D+00 + 1 6 2 1 -0.12962051202463D+00 0.37984181395360D+01 + 2 6 2 1 -0.48199237607243D-01 0.68393894120049D+01 + 3 6 2 1 -0.41749134432622D-05 -0.38273251855611D+01 + 1 7 2 1 0.15164644283620D+01 0.15164644283620D+01 + 2 7 2 1 -0.36609583547694D-06 0.36609583275379D-06 + 3 7 2 1 0.83917338499989D+00 -0.83917338499989D+00 + 1 8 2 1 0.37984240208212D+01 -0.12962337690224D+00 + 2 8 2 1 -0.68393865839251D+01 0.48211238086118D-01 + 3 8 2 1 0.38273287411790D+01 -0.57362156345389D-05 + 1 1 3 1 0.38630163654304D-05 -0.15325889275496D+00 + 2 1 3 1 0.10978126426493D+00 0.12676431446416D-05 + 3 1 3 1 0.29947268356713D+02 0.63346036497878D-15 + 1 2 3 1 -0.17817582386162D+00 -0.35274631047639D+01 + 2 2 3 1 0.21369676025452D+00 0.36705883123856D+01 + 3 2 3 1 0.38808650708388D+00 0.66760113327781D+01 + 1 3 3 1 0.28659887530680D-05 -0.77992522613617D+00 + 2 3 3 1 0.15490107140189D+01 0.25568111208214D-05 + 3 3 3 1 -0.13502680226641D+01 -0.62866387797373D-05 + 1 4 3 1 -0.35274631047638D+01 -0.17817582386162D+00 + 2 4 3 1 -0.36705848299783D+01 -0.21369215467655D+00 + 3 4 3 1 -0.66760113327781D+01 -0.38808650708388D+00 + 1 5 3 1 -0.15164644283620D+01 0.15164644283620D+01 + 2 5 3 1 0.83917338499989D+00 0.83917338499989D+00 + 3 5 3 1 -0.36609583413771D-06 -0.36609583209470D-06 + 1 6 3 1 -0.12962337690225D+00 -0.37984240208213D+01 + 2 6 3 1 -0.41749134432622D-05 -0.38273251855611D+01 + 3 6 3 1 0.48211238086114D-01 0.68393865839251D+01 + 1 7 3 1 0.23977482573031D-01 0.23977482573023D-01 + 2 7 3 1 -0.83917338499989D+00 0.83917338499989D+00 + 3 7 3 1 0.40758213572207D-06 -0.40758213451468D-06 + 1 8 3 1 -0.37984240208212D+01 -0.12962337690225D+00 + 2 8 3 1 0.38273287411790D+01 -0.57362156345389D-05 + 3 8 3 1 -0.68393865839251D+01 -0.48211238086112D-01 + 1 1 1 2 0.24080659531494D+00 -0.65727391489626D+01 + 2 1 1 2 -0.17817582386161D+00 0.35274631047639D+01 + 3 1 1 2 -0.17817582386162D+00 0.35274631047639D+01 + 1 2 1 2 0.29974880748664D+02 -0.39554161744682D-18 + 2 2 1 2 0.38630163901634D-05 -0.15325889275496D+00 + 3 2 1 2 0.38630164080663D-05 -0.15325889275496D+00 + 1 3 1 2 -0.65727430483001D+01 0.24079420749358D+00 + 2 3 1 2 -0.35274606160048D+01 0.17817583524649D+00 + 3 3 1 2 -0.35274631047638D+01 0.17817582386162D+00 + 1 4 1 2 0.14215208769211D+01 -0.72535952128647D-06 + 2 4 1 2 0.28659887530043D-05 -0.77992522613617D+00 + 3 4 1 2 0.28659887530680D-05 -0.77992522613617D+00 + 1 5 1 2 -0.74760232357928D-05 0.70618812365045D+01 + 2 5 1 2 0.12962051202463D+00 0.37984181395360D+01 + 3 5 1 2 0.12962337690225D+00 -0.37984240208213D+01 + 1 6 1 2 0.43984496740678D-15 -0.17756390106644D-14 + 2 6 1 2 0.23977482573026D-01 0.23977482573025D-01 + 3 6 1 2 0.15164644283620D+01 0.15164644283620D+01 + 1 7 1 2 0.70618812365045D+01 0.74760232538279D-05 + 2 7 1 2 -0.37984240208213D+01 -0.12962337690225D+00 + 3 7 1 2 0.37984240208213D+01 -0.12962337690225D+00 + 1 8 1 2 0.17756618572378D-14 0.15501763873498D-14 + 2 8 1 2 -0.15164644283620D+01 0.15164644283620D+01 + 3 8 1 2 -0.23977482573026D-01 0.23977482573027D-01 + 1 1 2 2 -0.17817582386161D+00 0.35274631047639D+01 + 2 1 2 2 0.38808650708388D+00 -0.66760113327781D+01 + 3 1 2 2 0.21369676025452D+00 -0.36705883123856D+01 + 1 2 2 2 0.38630163901634D-05 0.15325889275496D+00 + 2 2 2 2 0.29947268356713D+02 -0.36639696687151D-17 + 3 2 2 2 0.10978126426485D+00 0.12676431447363D-05 + 1 3 2 2 -0.35274606160048D+01 0.17817583524649D+00 + 2 3 2 2 -0.66760114219998D+01 0.38808221582665D+00 + 3 3 2 2 -0.36705848299783D+01 0.21369215467655D+00 + 1 4 2 2 0.28659887530043D-05 0.77992522613617D+00 + 2 4 2 2 -0.13502680226641D+01 0.62866387848850D-05 + 3 4 2 2 0.15490107140189D+01 0.25568111221537D-05 + 1 5 2 2 0.12962051202463D+00 0.37984181395360D+01 + 2 5 2 2 0.48199237607244D-01 0.68393894120049D+01 + 3 5 2 2 0.41749134440938D-05 -0.38273251855612D+01 + 1 6 2 2 0.23977482573026D-01 0.23977482573025D-01 + 2 6 2 2 -0.40758213701216D-06 0.40758213707626D-06 + 3 6 2 2 0.83917338499989D+00 -0.83917338499989D+00 + 1 7 2 2 -0.37984240208213D+01 -0.12962337690225D+00 + 2 7 2 2 0.68393865839251D+01 0.48211238086116D-01 + 3 7 2 2 -0.38273287411791D+01 -0.57362156367685D-05 + 1 8 2 2 -0.15164644283620D+01 0.15164644283620D+01 + 2 8 2 2 0.36609583958330D-06 0.36609583957977D-06 + 3 8 2 2 -0.83917338499989D+00 -0.83917338499989D+00 + 1 1 3 2 -0.17817582386162D+00 0.35274631047639D+01 + 2 1 3 2 0.21369676025452D+00 -0.36705883123856D+01 + 3 1 3 2 0.38808650708388D+00 -0.66760113327781D+01 + 1 2 3 2 0.38630164080663D-05 0.15325889275496D+00 + 2 2 3 2 0.10978126426485D+00 -0.12676431447363D-05 + 3 2 3 2 0.29947268356713D+02 -0.49178741806860D-17 + 1 3 3 2 -0.35274631047638D+01 0.17817582386162D+00 + 2 3 3 2 -0.36705848299783D+01 0.21369215467655D+00 + 3 3 3 2 -0.66760113327781D+01 0.38808650708388D+00 + 1 4 3 2 0.28659887530680D-05 0.77992522613617D+00 + 2 4 3 2 0.15490107140189D+01 -0.25568111220639D-05 + 3 4 3 2 -0.13502680226641D+01 0.62866387867230D-05 + 1 5 3 2 0.12962337690225D+00 -0.37984240208213D+01 + 2 5 3 2 0.41749134440938D-05 -0.38273251855612D+01 + 3 5 3 2 -0.48211238086114D-01 0.68393865839252D+01 + 1 6 3 2 0.15164644283620D+01 0.15164644283620D+01 + 2 6 3 2 -0.83917338499989D+00 0.83917338499989D+00 + 3 6 3 2 0.36609583935773D-06 -0.36609584047145D-06 + 1 7 3 2 0.37984240208213D+01 -0.12962337690225D+00 + 2 7 3 2 -0.38273287411791D+01 -0.57362156367685D-05 + 3 7 3 2 0.68393865839251D+01 -0.48211238086116D-01 + 1 8 3 2 -0.23977482573027D-01 0.23977482573026D-01 + 2 8 3 2 0.83917338499989D+00 0.83917338499989D+00 + 3 8 3 2 -0.40758213696531D-06 -0.40758213645705D-06 + 1 1 1 3 0.14215208769211D+01 0.72535952150851D-06 + 2 1 1 3 0.28659887530045D-05 0.77992522613617D+00 + 3 1 1 3 0.28659887530680D-05 0.77992522613617D+00 + 1 2 1 3 -0.65727430483001D+01 -0.24079420749358D+00 + 2 2 1 3 -0.35274606160048D+01 -0.17817583524649D+00 + 3 2 1 3 -0.35274631047638D+01 -0.17817582386162D+00 + 1 3 1 3 0.29974880748664D+02 0.34600027622809D-15 + 2 3 1 3 0.38630163795597D-05 0.15325889275496D+00 + 3 3 1 3 0.38630164649064D-05 0.15325889275496D+00 + 1 4 1 3 0.24080659531494D+00 0.65727391489626D+01 + 2 4 1 3 -0.17817582386162D+00 -0.35274631047639D+01 + 3 4 1 3 -0.17817582386161D+00 -0.35274631047638D+01 + 1 5 1 3 -0.34315191373505D-14 -0.30263746021587D-14 + 2 5 1 3 -0.15164644283620D+01 0.15164644283620D+01 + 3 5 1 3 -0.23977482573029D-01 0.23977482573025D-01 + 1 6 1 3 0.74760232544664D-05 0.70618812365045D+01 + 2 6 1 3 -0.12962337690224D+00 -0.37984240208213D+01 + 3 6 1 3 -0.12962337690225D+00 0.37984240208213D+01 + 1 7 1 3 0.10028462046402D-14 -0.31939207184655D-14 + 2 7 1 3 0.23977482573028D-01 0.23977482573021D-01 + 3 7 1 3 0.15164644283620D+01 0.15164644283620D+01 + 1 8 1 3 -0.70618812365045D+01 0.74760232438585D-05 + 2 8 1 3 -0.37984181395360D+01 -0.12962051202462D+00 + 3 8 1 3 0.37984240208212D+01 -0.12962337690224D+00 + 1 1 2 3 0.28659887530045D-05 -0.77992522613617D+00 + 2 1 2 3 -0.13502680226641D+01 -0.62866387771651D-05 + 3 1 2 3 0.15490107140189D+01 -0.25568111208214D-05 + 1 2 2 3 -0.35274606160048D+01 -0.17817583524649D+00 + 2 2 2 3 -0.66760114219998D+01 -0.38808221582665D+00 + 3 2 2 3 -0.36705848299783D+01 -0.21369215467655D+00 + 1 3 2 3 0.38630163795597D-05 -0.15325889275496D+00 + 2 3 2 3 0.29947268356713D+02 0.25946342726404D-15 + 3 3 2 3 0.10978126426491D+00 -0.12676431448932D-05 + 1 4 2 3 -0.17817582386162D+00 -0.35274631047639D+01 + 2 4 2 3 0.38808650708388D+00 0.66760113327781D+01 + 3 4 2 3 0.21369676025452D+00 0.36705883123856D+01 + 1 5 2 3 -0.15164644283620D+01 0.15164644283620D+01 + 2 5 2 3 -0.36609583124764D-06 -0.36609583009272D-06 + 3 5 2 3 0.83917338499989D+00 0.83917338499989D+00 + 1 6 2 3 -0.12962337690224D+00 -0.37984240208213D+01 + 2 6 2 3 0.48211238086117D-01 0.68393865839251D+01 + 3 6 2 3 -0.57362156346288D-05 -0.38273287411791D+01 + 1 7 2 3 0.23977482573028D-01 0.23977482573021D-01 + 2 7 2 3 0.40758213740562D-06 -0.40758213529151D-06 + 3 7 2 3 -0.83917338499989D+00 0.83917338499989D+00 + 1 8 2 3 -0.37984181395360D+01 -0.12962051202462D+00 + 2 8 2 3 -0.68393894120049D+01 -0.48199237607245D-01 + 3 8 2 3 0.38273251855611D+01 -0.41749134446710D-05 + 1 1 3 3 0.28659887530680D-05 -0.77992522613617D+00 + 2 1 3 3 0.15490107140189D+01 0.25568111233962D-05 + 3 1 3 3 -0.13502680226641D+01 -0.62866387917438D-05 + 1 2 3 3 -0.35274631047638D+01 -0.17817582386162D+00 + 2 2 3 3 -0.36705848299783D+01 -0.21369215467655D+00 + 3 2 3 3 -0.66760113327781D+01 -0.38808650708388D+00 + 1 3 3 3 0.38630164649064D-05 -0.15325889275496D+00 + 2 3 3 3 0.10978126426491D+00 0.12676431445794D-05 + 3 3 3 3 0.29947268356713D+02 0.96886613327481D-15 + 1 4 3 3 -0.17817582386161D+00 -0.35274631047638D+01 + 2 4 3 3 0.21369676025452D+00 0.36705883123856D+01 + 3 4 3 3 0.38808650708388D+00 0.66760113327781D+01 + 1 5 3 3 -0.23977482573029D-01 0.23977482573025D-01 + 2 5 3 3 -0.83917338499989D+00 -0.83917338499989D+00 + 3 5 3 3 0.40758213402936D-06 0.40758213224706D-06 + 1 6 3 3 -0.12962337690225D+00 0.37984240208213D+01 + 2 6 3 3 -0.57362156346288D-05 -0.38273287411791D+01 + 3 6 3 3 -0.48211238086113D-01 0.68393865839251D+01 + 1 7 3 3 0.15164644283620D+01 0.15164644283620D+01 + 2 7 3 3 0.83917338499989D+00 -0.83917338499989D+00 + 3 7 3 3 -0.36609583613960D-06 0.36609583475224D-06 + 1 8 3 3 0.37984240208212D+01 -0.12962337690224D+00 + 2 8 3 3 0.38273251855611D+01 -0.41749134446710D-05 + 3 8 3 3 -0.68393865839251D+01 0.48211238086114D-01 + 1 1 1 4 -0.65727430483001D+01 0.24079420749358D+00 + 2 1 1 4 -0.35274606160048D+01 0.17817583524649D+00 + 3 1 1 4 -0.35274631047638D+01 0.17817582386162D+00 + 1 2 1 4 0.14215208769211D+01 -0.72535952134471D-06 + 2 2 1 4 0.28659887530043D-05 -0.77992522613617D+00 + 3 2 1 4 0.28659887530680D-05 -0.77992522613617D+00 + 1 3 1 4 0.24080659531494D+00 -0.65727391489626D+01 + 2 3 1 4 -0.17817582386162D+00 0.35274631047639D+01 + 3 3 1 4 -0.17817582386161D+00 0.35274631047638D+01 + 1 4 1 4 0.29974880748664D+02 -0.39554161744682D-18 + 2 4 1 4 0.38630164115381D-05 -0.15325889275496D+00 + 3 4 1 4 0.38630164151140D-05 -0.15325889275496D+00 + 1 5 1 4 -0.74760232460881D-05 0.70618812365045D+01 + 2 5 1 4 0.12962337690224D+00 -0.37984240208213D+01 + 3 5 1 4 0.12962337690225D+00 0.37984240208212D+01 + 1 6 1 4 0.43995336272468D-15 -0.17756618572378D-14 + 2 6 1 4 0.15164644283620D+01 0.15164644283620D+01 + 3 6 1 4 0.23977482573027D-01 0.23977482573026D-01 + 1 7 1 4 0.70618812365045D+01 0.74760232467936D-05 + 2 7 1 4 0.37984181395360D+01 -0.12962051202462D+00 + 3 7 1 4 -0.37984240208213D+01 -0.12962337690225D+00 + 1 8 1 4 0.17756390106644D-14 0.17721125969570D-14 + 2 8 1 4 -0.23977482573025D-01 0.23977482573026D-01 + 3 8 1 4 -0.15164644283620D+01 0.15164644283620D+01 + 1 1 2 4 -0.35274606160048D+01 0.17817583524649D+00 + 2 1 2 4 -0.66760114219998D+01 0.38808221582665D+00 + 3 1 2 4 -0.36705848299783D+01 0.21369215467655D+00 + 1 2 2 4 0.28659887530043D-05 0.77992522613617D+00 + 2 2 2 4 -0.13502680226641D+01 0.62866387865960D-05 + 3 2 2 4 0.15490107140189D+01 0.25568111220639D-05 + 1 3 2 4 -0.17817582386162D+00 0.35274631047639D+01 + 2 3 2 4 0.38808650708388D+00 -0.66760113327781D+01 + 3 3 2 4 0.21369676025452D+00 -0.36705883123856D+01 + 1 4 2 4 0.38630164115381D-05 0.15325889275496D+00 + 2 4 2 4 0.29947268356713D+02 -0.36639696687151D-17 + 3 4 2 4 0.10978126426487D+00 0.12676431447363D-05 + 1 5 2 4 0.12962337690224D+00 -0.37984240208213D+01 + 2 5 2 4 -0.48211238086117D-01 0.68393865839252D+01 + 3 5 2 4 0.57362156372368D-05 -0.38273287411791D+01 + 1 6 2 4 0.15164644283620D+01 0.15164644283620D+01 + 2 6 2 4 0.36609583891364D-06 -0.36609584024944D-06 + 3 6 2 4 -0.83917338499989D+00 0.83917338499989D+00 + 1 7 2 4 0.37984181395360D+01 -0.12962051202462D+00 + 2 7 2 4 0.68393894120049D+01 -0.48199237607244D-01 + 3 7 2 4 -0.38273251855611D+01 -0.41749134455120D-05 + 1 8 2 4 -0.23977482573025D-01 0.23977482573026D-01 + 2 8 2 4 -0.40758213707626D-06 -0.40758213645705D-06 + 3 8 2 4 0.83917338499989D+00 0.83917338499989D+00 + 1 1 3 4 -0.35274631047638D+01 0.17817582386162D+00 + 2 1 3 4 -0.36705848299783D+01 0.21369215467655D+00 + 3 1 3 4 -0.66760113327781D+01 0.38808650708388D+00 + 1 2 3 4 0.28659887530680D-05 0.77992522613617D+00 + 2 2 3 4 0.15490107140189D+01 -0.25568111221537D-05 + 3 2 3 4 -0.13502680226641D+01 0.62866387847580D-05 + 1 3 3 4 -0.17817582386161D+00 0.35274631047638D+01 + 2 3 3 4 0.21369676025452D+00 -0.36705883123856D+01 + 3 3 3 4 0.38808650708388D+00 -0.66760113327781D+01 + 1 4 3 4 0.38630164151140D-05 0.15325889275496D+00 + 2 4 3 4 0.10978126426487D+00 -0.12676431447363D-05 + 3 4 3 4 0.29947268356713D+02 -0.49178741806860D-17 + 1 5 3 4 0.12962337690225D+00 0.37984240208212D+01 + 2 5 3 4 0.57362156372368D-05 -0.38273287411791D+01 + 3 5 3 4 0.48211238086116D-01 0.68393865839251D+01 + 1 6 3 4 0.23977482573026D-01 0.23977482573027D-01 + 2 6 3 4 0.83917338499989D+00 -0.83917338499989D+00 + 3 6 3 4 -0.40758213679012D-06 0.40758213674327D-06 + 1 7 3 4 -0.37984240208213D+01 -0.12962337690225D+00 + 2 7 3 4 -0.38273251855611D+01 -0.41749134455120D-05 + 3 7 3 4 0.68393865839251D+01 0.48211238086116D-01 + 1 8 3 4 -0.15164644283620D+01 0.15164644283620D+01 + 2 8 3 4 -0.83917338499989D+00 -0.83917338499989D+00 + 3 8 3 4 0.36609584002736D-06 0.36609583980182D-06 + 1 1 1 5 -0.60991386320609D-14 0.45844812710466D-14 + 2 1 1 5 -0.23977482573030D-01 -0.23977482573021D-01 + 3 1 1 5 -0.15164644283620D+01 -0.15164644283620D+01 + 1 2 1 5 -0.74760232357928D-05 -0.70618812365045D+01 + 2 2 1 5 0.12962051202463D+00 -0.37984181395360D+01 + 3 2 1 5 0.12962337690225D+00 0.37984240208213D+01 + 1 3 1 5 -0.34315191373505D-14 0.30263746021587D-14 + 2 3 1 5 -0.15164644283620D+01 -0.15164644283620D+01 + 3 3 1 5 -0.23977482573029D-01 -0.23977482573025D-01 + 1 4 1 5 -0.74760232460881D-05 -0.70618812365045D+01 + 2 4 1 5 0.12962337690224D+00 0.37984240208213D+01 + 3 4 1 5 0.12962337690225D+00 -0.37984240208212D+01 + 1 5 1 5 0.29974880748664D+02 -0.58337391753725D-15 + 2 5 1 5 0.38630163902178D-05 0.15325889275496D+00 + 3 5 1 5 0.38630163974048D-05 0.15325889275496D+00 + 1 6 1 5 0.65727391489626D+01 -0.24080659531494D+00 + 2 6 1 5 -0.35274631047639D+01 0.17817582386162D+00 + 3 6 1 5 -0.35274631047639D+01 0.17817582386162D+00 + 1 7 1 5 0.72535950299799D-06 -0.14215208769211D+01 + 2 7 1 5 0.77992522613617D+00 -0.28659887529665D-05 + 3 7 1 5 0.77992522613617D+00 -0.28659887530100D-05 + 1 8 1 5 -0.65727430483002D+01 -0.24079420749358D+00 + 2 8 1 5 -0.35274606160048D+01 -0.17817583524649D+00 + 3 8 1 5 -0.35274631047638D+01 -0.17817582386162D+00 + 1 1 2 5 -0.23977482573030D-01 -0.23977482573021D-01 + 2 1 2 5 -0.40758214612848D-06 0.40758214613414D-06 + 3 1 2 5 0.83917338499989D+00 -0.83917338499989D+00 + 1 2 2 5 0.12962051202463D+00 -0.37984181395360D+01 + 2 2 2 5 0.48199237607244D-01 -0.68393894120049D+01 + 3 2 2 5 0.41749134440938D-05 0.38273251855612D+01 + 1 3 2 5 -0.15164644283620D+01 -0.15164644283620D+01 + 2 3 2 5 0.36609584836533D-06 -0.36609584952025D-06 + 3 3 2 5 -0.83917338499989D+00 0.83917338499989D+00 + 1 4 2 5 0.12962337690224D+00 0.37984240208213D+01 + 2 4 2 5 -0.48211238086118D-01 -0.68393865839252D+01 + 3 4 2 5 0.57362156372368D-05 0.38273287411791D+01 + 1 5 2 5 0.38630163902178D-05 -0.15325889275496D+00 + 2 5 2 5 0.29947268356713D+02 0.15656758226536D-14 + 3 5 2 5 0.10978126426485D+00 -0.12676431456118D-05 + 1 6 2 5 -0.35274631047639D+01 0.17817582386162D+00 + 2 6 2 5 0.66760113327781D+01 -0.38808650708388D+00 + 3 6 2 5 0.36705883123856D+01 -0.21369676025451D+00 + 1 7 2 5 -0.77992522613617D+00 -0.28659887530620D-05 + 2 7 2 5 -0.62866387880915D-05 0.13502680226641D+01 + 3 7 2 5 -0.25568111093333D-05 -0.15490107140189D+01 + 1 8 2 5 -0.35274606160048D+01 -0.17817583524649D+00 + 2 8 2 5 -0.66760114219998D+01 -0.38808221582665D+00 + 3 8 2 5 -0.36705848299782D+01 -0.21369215467655D+00 + 1 1 3 5 -0.15164644283620D+01 -0.15164644283620D+01 + 2 1 3 5 -0.83917338499989D+00 0.83917338499989D+00 + 3 1 3 5 0.36609584547526D-06 -0.36609584751827D-06 + 1 2 3 5 0.12962337690225D+00 0.37984240208213D+01 + 2 2 3 5 0.41749134440938D-05 0.38273251855612D+01 + 3 2 3 5 -0.48211238086114D-01 -0.68393865839252D+01 + 1 3 3 5 -0.23977482573029D-01 -0.23977482573025D-01 + 2 3 3 5 0.83917338499989D+00 -0.83917338499989D+00 + 3 3 3 5 -0.40758214155806D-06 0.40758214334036D-06 + 1 4 3 5 0.12962337690225D+00 -0.37984240208212D+01 + 2 4 3 5 0.57362156372368D-05 0.38273287411791D+01 + 3 4 3 5 0.48211238086115D-01 -0.68393865839251D+01 + 1 5 3 5 0.38630163974048D-05 -0.15325889275496D+00 + 2 5 3 5 0.10978126426485D+00 0.12676431438608D-05 + 3 5 3 5 0.29947268356713D+02 0.31706019821882D-15 + 1 6 3 5 -0.35274631047639D+01 0.17817582386162D+00 + 2 6 3 5 0.36705883123856D+01 -0.21369676025451D+00 + 3 6 3 5 0.66760113327781D+01 -0.38808650708388D+00 + 1 7 3 5 -0.77992522613617D+00 -0.28659887531055D-05 + 2 7 3 5 0.25568111348843D-05 -0.15490107140189D+01 + 3 7 3 5 -0.62866387813685D-05 0.13502680226641D+01 + 1 8 3 5 -0.35274631047638D+01 -0.17817582386162D+00 + 2 8 3 5 -0.36705848299782D+01 -0.21369215467655D+00 + 3 8 3 5 -0.66760113327781D+01 -0.38808650708388D+00 + 1 1 1 6 0.74760232469015D-05 -0.70618812365045D+01 + 2 1 1 6 -0.12962051202463D+00 -0.37984181395360D+01 + 3 1 1 6 -0.12962337690225D+00 0.37984240208213D+01 + 1 2 1 6 0.43984496740678D-15 0.17756390106644D-14 + 2 2 1 6 0.23977482573026D-01 -0.23977482573025D-01 + 3 2 1 6 0.15164644283620D+01 -0.15164644283620D+01 + 1 3 1 6 0.74760232544664D-05 -0.70618812365045D+01 + 2 3 1 6 -0.12962337690224D+00 0.37984240208213D+01 + 3 3 1 6 -0.12962337690225D+00 -0.37984240208213D+01 + 1 4 1 6 0.43995336272468D-15 0.17756618572378D-14 + 2 4 1 6 0.15164644283620D+01 -0.15164644283620D+01 + 3 4 1 6 0.23977482573026D-01 -0.23977482573027D-01 + 1 5 1 6 0.65727391489626D+01 0.24080659531494D+00 + 2 5 1 6 -0.35274631047639D+01 -0.17817582386162D+00 + 3 5 1 6 -0.35274631047639D+01 -0.17817582386162D+00 + 1 6 1 6 0.29974880748664D+02 -0.39554161744682D-18 + 2 6 1 6 0.38630164256336D-05 -0.15325889275496D+00 + 3 6 1 6 0.38630164115219D-05 -0.15325889275496D+00 + 1 7 1 6 -0.65727430483002D+01 0.24079420749358D+00 + 2 7 1 6 -0.35274606160048D+01 0.17817583524649D+00 + 3 7 1 6 -0.35274631047638D+01 0.17817582386162D+00 + 1 8 1 6 0.72535952206100D-06 0.14215208769211D+01 + 2 8 1 6 0.77992522613617D+00 0.28659887529566D-05 + 3 8 1 6 0.77992522613617D+00 0.28659887530202D-05 + 1 1 2 6 -0.12962051202463D+00 -0.37984181395360D+01 + 2 1 2 6 -0.48199237607243D-01 -0.68393894120049D+01 + 3 1 2 6 -0.41749134432622D-05 0.38273251855611D+01 + 1 2 2 6 0.23977482573026D-01 -0.23977482573025D-01 + 2 2 2 6 0.40758213857526D-06 0.40758213851116D-06 + 3 2 2 6 -0.83917338499989D+00 -0.83917338499989D+00 + 1 3 2 6 -0.12962337690224D+00 0.37984240208213D+01 + 2 3 2 6 0.48211238086117D-01 -0.68393865839251D+01 + 3 3 2 6 -0.57362156346288D-05 0.38273287411791D+01 + 1 4 2 6 0.15164644283620D+01 -0.15164644283620D+01 + 2 4 2 6 -0.36609584069933D-06 -0.36609583936353D-06 + 3 4 2 6 0.83917338499989D+00 0.83917338499989D+00 + 1 5 2 6 -0.35274631047639D+01 -0.17817582386162D+00 + 2 5 2 6 0.66760113327781D+01 0.38808650708388D+00 + 3 5 2 6 0.36705883123856D+01 0.21369676025451D+00 + 1 6 2 6 0.38630164256336D-05 0.15325889275496D+00 + 2 6 2 6 0.29947268356713D+02 -0.36639696687151D-17 + 3 6 2 6 0.10978126426486D+00 0.12676431447363D-05 + 1 7 2 6 -0.35274606160048D+01 0.17817583524649D+00 + 2 7 2 6 -0.66760114219998D+01 0.38808221582665D+00 + 3 7 2 6 -0.36705848299782D+01 0.21369215467654D+00 + 1 8 2 6 -0.77992522613617D+00 0.28659887530521D-05 + 2 8 2 6 -0.62866387858110D-05 -0.13502680226641D+01 + 3 8 2 6 -0.25568111240701D-05 0.15490107140189D+01 + 1 1 3 6 -0.12962337690225D+00 0.37984240208213D+01 + 2 1 3 6 -0.41749134432622D-05 0.38273251855611D+01 + 3 1 3 6 0.48211238086114D-01 -0.68393865839251D+01 + 1 2 3 6 0.15164644283620D+01 -0.15164644283620D+01 + 2 2 3 6 0.83917338499989D+00 0.83917338499989D+00 + 3 2 3 6 -0.36609584025524D-06 -0.36609583914152D-06 + 1 3 3 6 -0.12962337690225D+00 -0.37984240208213D+01 + 2 3 3 6 -0.57362156346288D-05 0.38273287411791D+01 + 3 3 3 6 -0.48211238086113D-01 -0.68393865839251D+01 + 1 4 3 6 0.23977482573027D-01 -0.23977482573026D-01 + 2 4 3 6 -0.83917338499989D+00 -0.83917338499989D+00 + 3 4 3 6 0.40758213879731D-06 0.40758213884415D-06 + 1 5 3 6 -0.35274631047639D+01 -0.17817582386162D+00 + 2 5 3 6 0.36705883123856D+01 0.21369676025451D+00 + 3 5 3 6 0.66760113327781D+01 0.38808650708388D+00 + 1 6 3 6 0.38630164115219D-05 0.15325889275496D+00 + 2 6 3 6 0.10978126426486D+00 -0.12676431447363D-05 + 3 6 3 6 0.29947268356713D+02 -0.49178741806860D-17 + 1 7 3 6 -0.35274631047638D+01 0.17817582386162D+00 + 2 7 3 6 -0.36705848299782D+01 0.21369215467654D+00 + 3 7 3 6 -0.66760113327781D+01 0.38808650708388D+00 + 1 8 3 6 -0.77992522613617D+00 0.28659887531157D-05 + 2 8 3 6 0.25568111201475D-05 0.15490107140189D+01 + 3 8 3 6 -0.62866387858727D-05 -0.13502680226641D+01 + 1 1 1 7 -0.11052127947620D-15 0.34156428631590D-14 + 2 1 1 7 0.15164644283620D+01 -0.15164644283620D+01 + 3 1 1 7 0.23977482573031D-01 -0.23977482573023D-01 + 1 2 1 7 0.70618812365045D+01 -0.74760232538279D-05 + 2 2 1 7 -0.37984240208213D+01 0.12962337690225D+00 + 3 2 1 7 0.37984240208213D+01 0.12962337690225D+00 + 1 3 1 7 0.10028462046402D-14 0.31939207184655D-14 + 2 3 1 7 0.23977482573028D-01 -0.23977482573021D-01 + 3 3 1 7 0.15164644283620D+01 -0.15164644283620D+01 + 1 4 1 7 0.70618812365045D+01 -0.74760232467936D-05 + 2 4 1 7 0.37984181395360D+01 0.12962051202462D+00 + 3 4 1 7 -0.37984240208213D+01 0.12962337690225D+00 + 1 5 1 7 -0.72535953963318D-06 0.14215208769211D+01 + 2 5 1 7 -0.77992522613617D+00 0.28659887530620D-05 + 3 5 1 7 -0.77992522613617D+00 0.28659887531055D-05 + 1 6 1 7 -0.65727430483002D+01 -0.24079420749358D+00 + 2 6 1 7 -0.35274606160048D+01 -0.17817583524649D+00 + 3 6 1 7 -0.35274631047638D+01 -0.17817582386162D+00 + 1 7 1 7 0.29974880748664D+02 0.65531742974870D-15 + 2 7 1 7 0.38630164435085D-05 0.15325889275496D+00 + 3 7 1 7 0.38630164613537D-05 0.15325889275496D+00 + 1 8 1 7 -0.65727391489626D+01 0.24080659531494D+00 + 2 8 1 7 0.35274631047638D+01 -0.17817582386162D+00 + 3 8 1 7 0.35274631047638D+01 -0.17817582386162D+00 + 1 1 2 7 0.15164644283620D+01 -0.15164644283620D+01 + 2 1 2 7 0.36609584413603D-06 0.36609584685918D-06 + 3 1 2 7 -0.83917338499989D+00 -0.83917338499989D+00 + 1 2 2 7 -0.37984240208213D+01 0.12962337690225D+00 + 2 2 2 7 0.68393865839251D+01 -0.48211238086117D-01 + 3 2 2 7 -0.38273287411791D+01 0.57362156367685D-05 + 1 3 2 7 0.23977482573028D-01 -0.23977482573021D-01 + 2 3 2 7 -0.40758213818180D-06 -0.40758214029591D-06 + 3 3 2 7 0.83917338499989D+00 0.83917338499989D+00 + 1 4 2 7 0.37984181395360D+01 0.12962051202462D+00 + 2 4 2 7 0.68393894120049D+01 0.48199237607244D-01 + 3 4 2 7 -0.38273251855611D+01 0.41749134455120D-05 + 1 5 2 7 0.77992522613617D+00 0.28659887529665D-05 + 2 5 2 7 0.62866387833895D-05 -0.13502680226641D+01 + 3 5 2 7 0.25568111348843D-05 0.15490107140189D+01 + 1 6 2 7 -0.35274606160048D+01 -0.17817583524649D+00 + 2 6 2 7 -0.66760114219998D+01 -0.38808221582665D+00 + 3 6 2 7 -0.36705848299782D+01 -0.21369215467654D+00 + 1 7 2 7 0.38630164435085D-05 -0.15325889275496D+00 + 2 7 2 7 0.29947268356713D+02 -0.23958636240156D-15 + 3 7 2 7 0.10978126426480D+00 -0.12676431441519D-05 + 1 8 2 7 0.35274631047638D+01 -0.17817582386162D+00 + 2 8 2 7 -0.66760113327781D+01 0.38808650708388D+00 + 3 8 2 7 -0.36705883123856D+01 0.21369676025452D+00 + 1 1 3 7 0.23977482573030D-01 -0.23977482573023D-01 + 2 1 3 7 0.83917338499989D+00 0.83917338499989D+00 + 3 1 3 7 -0.40758213986535D-06 -0.40758214107274D-06 + 1 2 3 7 0.37984240208213D+01 0.12962337690225D+00 + 2 2 3 7 -0.38273287411791D+01 0.57362156367685D-05 + 3 2 3 7 0.68393865839251D+01 0.48211238086115D-01 + 1 3 3 7 0.15164644283620D+01 -0.15164644283620D+01 + 2 3 3 7 -0.83917338499989D+00 -0.83917338499989D+00 + 3 3 3 7 0.36609584347337D-06 0.36609584486073D-06 + 1 4 3 7 -0.37984240208213D+01 0.12962337690225D+00 + 2 4 3 7 -0.38273251855611D+01 0.41749134455120D-05 + 3 4 3 7 0.68393865839251D+01 -0.48211238086116D-01 + 1 5 3 7 0.77992522613617D+00 0.28659887530100D-05 + 2 5 3 7 -0.25568111093333D-05 0.15490107140189D+01 + 3 5 3 7 0.62866387901125D-05 -0.13502680226641D+01 + 1 6 3 7 -0.35274631047638D+01 -0.17817582386162D+00 + 2 6 3 7 -0.36705848299782D+01 -0.21369215467654D+00 + 3 6 3 7 -0.66760113327781D+01 -0.38808650708388D+00 + 1 7 3 7 0.38630164613537D-05 -0.15325889275496D+00 + 2 7 3 7 0.10978126426480D+00 0.12676431453207D-05 + 3 7 3 7 0.29947268356713D+02 -0.26859584252916D-15 + 1 8 3 7 0.35274631047638D+01 -0.17817582386162D+00 + 2 8 3 7 -0.36705883123856D+01 0.21369676025452D+00 + 3 8 3 7 -0.66760113327781D+01 0.38808650708388D+00 + 1 1 1 8 -0.70618812365045D+01 -0.74760232510774D-05 + 2 1 1 8 0.37984240208212D+01 0.12962337690224D+00 + 3 1 1 8 -0.37984240208212D+01 0.12962337690225D+00 + 1 2 1 8 0.17756618572378D-14 -0.15501763873498D-14 + 2 2 1 8 -0.15164644283620D+01 -0.15164644283620D+01 + 3 2 1 8 -0.23977482573027D-01 -0.23977482573026D-01 + 1 3 1 8 -0.70618812365045D+01 -0.74760232438585D-05 + 2 3 1 8 -0.37984181395360D+01 0.12962051202462D+00 + 3 3 1 8 0.37984240208212D+01 0.12962337690224D+00 + 1 4 1 8 0.17756390106644D-14 -0.17721125969570D-14 + 2 4 1 8 -0.23977482573025D-01 -0.23977482573026D-01 + 3 4 1 8 -0.15164644283620D+01 -0.15164644283620D+01 + 1 5 1 8 -0.65727430483002D+01 0.24079420749358D+00 + 2 5 1 8 -0.35274606160048D+01 0.17817583524649D+00 + 3 5 1 8 -0.35274631047638D+01 0.17817582386162D+00 + 1 6 1 8 -0.72535952057018D-06 -0.14215208769211D+01 + 2 6 1 8 -0.77992522613617D+00 -0.28659887530521D-05 + 3 6 1 8 -0.77992522613617D+00 -0.28659887531157D-05 + 1 7 1 8 -0.65727391489626D+01 -0.24080659531494D+00 + 2 7 1 8 0.35274631047638D+01 0.17817582386162D+00 + 3 7 1 8 0.35274631047638D+01 0.17817582386162D+00 + 1 8 1 8 0.29974880748664D+02 -0.39554161744682D-18 + 2 8 1 8 0.38630164862291D-05 -0.15325889275496D+00 + 3 8 1 8 0.38630164543541D-05 -0.15325889275496D+00 + 1 1 2 8 0.37984240208212D+01 0.12962337690224D+00 + 2 1 2 8 -0.68393865839251D+01 -0.48211238086118D-01 + 3 1 2 8 0.38273287411790D+01 0.57362156345389D-05 + 1 2 2 8 -0.15164644283620D+01 -0.15164644283620D+01 + 2 2 2 8 -0.36609584002967D-06 0.36609584003320D-06 + 3 2 2 8 0.83917338499989D+00 -0.83917338499989D+00 + 1 3 2 8 -0.37984181395360D+01 0.12962051202462D+00 + 2 3 2 8 -0.68393894120049D+01 0.48199237607245D-01 + 3 3 2 8 0.38273251855611D+01 0.41749134446710D-05 + 1 4 2 8 -0.23977482573025D-01 -0.23977482573026D-01 + 2 4 2 8 0.40758213851116D-06 -0.40758213913037D-06 + 3 4 2 8 -0.83917338499989D+00 0.83917338499989D+00 + 1 5 2 8 -0.35274606160048D+01 0.17817583524649D+00 + 2 5 2 8 -0.66760114219998D+01 0.38808221582665D+00 + 3 5 2 8 -0.36705848299782D+01 0.21369215467655D+00 + 1 6 2 8 0.77992522613617D+00 -0.28659887529566D-05 + 2 6 2 8 0.62866387856700D-05 0.13502680226641D+01 + 3 6 2 8 0.25568111201475D-05 -0.15490107140189D+01 + 1 7 2 8 0.35274631047638D+01 0.17817582386162D+00 + 2 7 2 8 -0.66760113327781D+01 -0.38808650708388D+00 + 3 7 2 8 -0.36705883123856D+01 -0.21369676025452D+00 + 1 8 2 8 0.38630164862291D-05 0.15325889275496D+00 + 2 8 2 8 0.29947268356713D+02 -0.36639696687151D-17 + 3 8 2 8 0.10978126426491D+00 0.12676431447363D-05 + 1 1 3 8 -0.37984240208212D+01 0.12962337690225D+00 + 2 1 3 8 0.38273287411790D+01 0.57362156345389D-05 + 3 1 3 8 -0.68393865839251D+01 0.48211238086112D-01 + 1 2 3 8 -0.23977482573026D-01 -0.23977482573027D-01 + 2 2 3 8 -0.83917338499989D+00 0.83917338499989D+00 + 3 2 3 8 0.40758213862211D-06 -0.40758213913037D-06 + 1 3 3 8 0.37984240208212D+01 0.12962337690224D+00 + 2 3 3 8 0.38273251855611D+01 0.41749134446710D-05 + 3 3 3 8 -0.68393865839251D+01 -0.48211238086114D-01 + 1 4 3 8 -0.15164644283620D+01 -0.15164644283620D+01 + 2 4 3 8 0.83917338499989D+00 -0.83917338499989D+00 + 3 4 3 8 -0.36609583958561D-06 0.36609583981115D-06 + 1 5 3 8 -0.35274631047638D+01 0.17817582386162D+00 + 2 5 3 8 -0.36705848299782D+01 0.21369215467655D+00 + 3 5 3 8 -0.66760113327781D+01 0.38808650708388D+00 + 1 6 3 8 0.77992522613617D+00 -0.28659887530202D-05 + 2 6 3 8 -0.25568111240701D-05 -0.15490107140189D+01 + 3 6 3 8 0.62866387856083D-05 0.13502680226641D+01 + 1 7 3 8 0.35274631047638D+01 0.17817582386162D+00 + 2 7 3 8 -0.36705883123856D+01 -0.21369676025452D+00 + 3 7 3 8 -0.66760113327781D+01 -0.38808650708388D+00 + 1 8 3 8 0.38630164543541D-05 0.15325889275496D+00 + 2 8 3 8 0.10978126426491D+00 -0.12676431447363D-05 + 3 8 3 8 0.29947268356713D+02 -0.49178741806860D-17 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 5.00000000E-01 5.00000000E-01 2.50000000E-01 1.0 + 1 1 1 1 0.29943813563629D+02 -0.13989350977150D-14 + 2 1 1 1 0.35457346498897D-13 -0.13592794720331D-14 + 3 1 1 1 -0.76122891783085D-06 -0.22113926762456D-05 + 1 2 1 1 0.69556984036387D+01 -0.28420592319822D+00 + 2 2 1 1 -0.36932977401125D+01 0.29990707200965D+00 + 3 2 1 1 -0.37835350423785D+01 0.17855827829975D+00 + 1 3 1 1 -0.12708933759340D-14 -0.18060784572038D-14 + 2 3 1 1 0.18021069299161D-14 0.25783606290491D-14 + 3 3 1 1 0.81464869324364D+00 0.81464869324364D+00 + 1 4 1 1 -0.69557042076536D+01 -0.28419095739084D+00 + 2 4 1 1 -0.36932995792233D+01 -0.29989584469137D+00 + 3 4 1 1 -0.37835336202853D+01 -0.17855654640557D+00 + 1 5 1 1 -0.12171664742203D-14 -0.80927506586339D-15 + 2 5 1 1 -0.91318461759656D-15 -0.16129210260810D-14 + 3 5 1 1 -0.15739552524648D+01 0.15739552524648D+01 + 1 6 1 1 0.69557042076599D+01 0.28419095738948D+00 + 2 6 1 1 0.36932995792336D+01 0.29989584469937D+00 + 3 6 1 1 -0.37835354448377D+01 -0.17855787148837D+00 + 1 7 1 1 -0.23058029472364D-14 0.12504958882904D-15 + 2 7 1 1 0.30639035023554D+01 0.33393196201820D-15 + 3 7 1 1 -0.30177060665857D-06 -0.26500984992178D-06 + 1 8 1 1 -0.69556984036303D+01 0.28420592319387D+00 + 2 8 1 1 0.36932977401006D+01 -0.29990707199723D+00 + 3 8 1 1 -0.37835357443154D+01 0.17855803520075D+00 + 1 1 2 1 0.35457346498897D-13 -0.13592794720331D-14 + 2 1 2 1 0.29943813563629D+02 -0.13521135094962D-14 + 3 1 2 1 -0.76122881847327D-06 -0.22113926752090D-05 + 1 2 2 1 -0.36932977401125D+01 0.29990707200965D+00 + 2 2 2 1 0.69556984036303D+01 -0.28420592319388D+00 + 3 2 2 1 0.37835357443154D+01 -0.17855803520075D+00 + 1 3 2 1 0.18021069299161D-14 0.25783606290491D-14 + 2 3 2 1 0.21819413229054D-14 0.46727421208516D-14 + 3 3 2 1 0.15739552524648D+01 -0.15739552524648D+01 + 1 4 2 1 -0.36932995792233D+01 -0.29989584469137D+00 + 2 4 2 1 -0.69556984036303D+01 -0.28420592319387D+00 + 3 4 2 1 -0.37835336202853D+01 -0.17855654640555D+00 + 1 5 2 1 -0.91318461759656D-15 -0.16129210260810D-14 + 2 5 2 1 -0.41341548725385D-14 -0.61192784750749D-14 + 3 5 2 1 -0.81464869324364D+00 -0.81464869324364D+00 + 1 6 2 1 0.36932995792336D+01 0.29989584469937D+00 + 2 6 2 1 0.69556984036303D+01 0.28420592319387D+00 + 3 6 2 1 -0.37835354448377D+01 -0.17855787148836D+00 + 1 7 2 1 0.30639035023554D+01 0.33393196201820D-15 + 2 7 2 1 -0.23897715634039D-14 0.85646521812961D-17 + 3 7 2 1 -0.30177059901440D-06 -0.26500984428525D-06 + 1 8 2 1 0.36932977401006D+01 -0.29990707199723D+00 + 2 8 2 1 -0.69556984036303D+01 0.28420592319388D+00 + 3 8 2 1 0.37835350423784D+01 -0.17855827829973D+00 + 1 1 3 1 -0.76122891783085D-06 0.22113926743198D-05 + 2 1 3 1 -0.76122881847327D-06 0.22113926716378D-05 + 3 1 3 1 0.30360038210496D+02 -0.19396561776192D-14 + 1 2 3 1 -0.37835350423785D+01 0.17855827829975D+00 + 2 2 3 1 0.37835357443154D+01 -0.17855803520075D+00 + 3 2 3 1 0.70451541666163D+01 -0.28136959790750D+00 + 1 3 3 1 -0.81464869324364D+00 -0.81464869324364D+00 + 2 3 3 1 0.15739552524648D+01 -0.15739552524648D+01 + 3 3 3 1 0.36544317705145D-14 0.60611742589510D-14 + 1 4 3 1 -0.37835336202853D+01 -0.17855654640557D+00 + 2 4 3 1 -0.37835336202853D+01 -0.17855654640555D+00 + 3 4 3 1 -0.70451569102957D+01 -0.28136714901319D+00 + 1 5 3 1 -0.15739552524648D+01 0.15739552524648D+01 + 2 5 3 1 0.81464869324364D+00 0.81464869324364D+00 + 3 5 3 1 0.81077387883889D-14 0.99323895234281D-14 + 1 6 3 1 -0.37835354448377D+01 -0.17855787148837D+00 + 2 6 3 1 -0.37835354448377D+01 -0.17855787148836D+00 + 3 6 3 1 0.70451551401610D+01 0.28136517797416D+00 + 1 7 3 1 -0.30177060665857D-06 0.26500984949645D-06 + 2 7 3 1 -0.30177059901440D-06 0.26500984909552D-06 + 3 7 3 1 -0.45720943969068D-06 -0.11127334295781D-05 + 1 8 3 1 -0.37835357443154D+01 0.17855803520075D+00 + 2 8 3 1 0.37835350423784D+01 -0.17855827829973D+00 + 3 8 3 1 -0.70451541666163D+01 0.28136959790749D+00 + 1 1 1 2 0.69556984036387D+01 0.28420592319822D+00 + 2 1 1 2 -0.36932977401125D+01 -0.29990707200965D+00 + 3 1 1 2 -0.37835350423785D+01 -0.17855827829975D+00 + 1 2 1 2 0.29943813563629D+02 -0.74797607767324D-18 + 2 2 1 2 -0.74731169533453D-13 0.00000000000000D+00 + 3 2 1 2 -0.76122887519496D-06 0.22113926752827D-05 + 1 3 1 2 -0.69557042076536D+01 0.28419095739085D+00 + 2 3 1 2 -0.36932995792233D+01 0.29989584469137D+00 + 3 3 1 2 -0.37835336202853D+01 0.17855654640557D+00 + 1 4 1 2 0.11137346372441D-14 -0.12708933757432D-14 + 2 4 1 2 0.21863675295562D-15 0.16235956424906D-15 + 3 4 1 2 0.81464869324364D+00 -0.81464869324364D+00 + 1 5 1 2 -0.69557042076599D+01 0.28419095738948D+00 + 2 5 1 2 -0.36932995792335D+01 0.29989584469936D+00 + 3 5 1 2 0.37835354448377D+01 -0.17855787148837D+00 + 1 6 1 2 0.88416520546614D-15 -0.13316011917075D-14 + 2 6 1 2 -0.64463483854191D-16 -0.15109281698896D-16 + 3 6 1 2 0.15739552524648D+01 0.15739552524648D+01 + 1 7 1 2 0.69556984036303D+01 0.28420592319387D+00 + 2 7 1 2 -0.36932977401006D+01 -0.29990707199723D+00 + 3 7 1 2 0.37835357443154D+01 0.17855803520075D+00 + 1 8 1 2 -0.65742851714346D-18 0.28957452135437D-15 + 2 8 1 2 -0.30639035023554D+01 0.13319447545878D-14 + 3 8 1 2 0.30177060665857D-06 -0.26500984928588D-06 + 1 1 2 2 -0.36932977401125D+01 -0.29990707200965D+00 + 2 1 2 2 0.69556984036303D+01 0.28420592319388D+00 + 3 1 2 2 0.37835357443154D+01 0.17855803520075D+00 + 1 2 2 2 -0.74731169533453D-13 0.00000000000000D+00 + 2 2 2 2 0.29943813563628D+02 -0.75142694894292D-18 + 3 2 2 2 -0.76122888963162D-06 0.22113926734234D-05 + 1 3 2 2 -0.36932995792233D+01 0.29989584469137D+00 + 2 3 2 2 -0.69556984036303D+01 0.28420592319388D+00 + 3 3 2 2 -0.37835336202853D+01 0.17855654640555D+00 + 1 4 2 2 0.21863675295562D-15 0.16235956424906D-15 + 2 4 2 2 -0.13517868969251D-15 -0.12004357238866D-14 + 3 4 2 2 0.15739552524648D+01 0.15739552524648D+01 + 1 5 2 2 -0.36932995792335D+01 0.29989584469936D+00 + 2 5 2 2 -0.69556984036303D+01 0.28420592319388D+00 + 3 5 2 2 0.37835354448377D+01 -0.17855787148836D+00 + 1 6 2 2 -0.64463483854191D-16 -0.15109281698896D-16 + 2 6 2 2 0.78268534800661D-15 -0.10508663984829D-14 + 3 6 2 2 0.81464869324364D+00 -0.81464869324364D+00 + 1 7 2 2 -0.36932977401006D+01 -0.29990707199723D+00 + 2 7 2 2 0.69556984036303D+01 0.28420592319388D+00 + 3 7 2 2 -0.37835350423784D+01 -0.17855827829974D+00 + 1 8 2 2 -0.30639035023554D+01 0.13319447545878D-14 + 2 8 2 2 -0.11106438446551D-17 0.28958254523310D-15 + 3 8 2 2 0.30177059901440D-06 -0.26500984626684D-06 + 1 1 3 2 -0.37835350423785D+01 -0.17855827829975D+00 + 2 1 3 2 0.37835357443154D+01 0.17855803520075D+00 + 3 1 3 2 0.70451541666163D+01 0.28136959790750D+00 + 1 2 3 2 -0.76122887519496D-06 -0.22113926752827D-05 + 2 2 3 2 -0.76122888963162D-06 -0.22113926734234D-05 + 3 2 3 2 0.30360038210496D+02 0.32341154748409D-17 + 1 3 3 2 -0.37835336202853D+01 0.17855654640557D+00 + 2 3 3 2 -0.37835336202853D+01 0.17855654640555D+00 + 3 3 3 2 -0.70451569102957D+01 0.28136714901319D+00 + 1 4 3 2 -0.81464869324364D+00 0.81464869324364D+00 + 2 4 3 2 0.15739552524648D+01 0.15739552524648D+01 + 3 4 3 2 -0.63543223361240D-15 -0.70018283989106D-15 + 1 5 3 2 0.37835354448377D+01 -0.17855787148837D+00 + 2 5 3 2 0.37835354448377D+01 -0.17855787148836D+00 + 3 5 3 2 -0.70451551401611D+01 0.28136517797415D+00 + 1 6 3 2 0.15739552524648D+01 0.15739552524648D+01 + 2 6 3 2 -0.81464869324364D+00 0.81464869324364D+00 + 3 6 3 2 -0.44852906386829D-15 -0.22095212455824D-15 + 1 7 3 2 0.37835357443154D+01 0.17855803520075D+00 + 2 7 3 2 -0.37835350423784D+01 -0.17855827829974D+00 + 3 7 3 2 0.70451541666164D+01 0.28136959790749D+00 + 1 8 3 2 0.30177060665857D-06 0.26500985013235D-06 + 2 8 3 2 0.30177059901440D-06 0.26500984711393D-06 + 3 8 3 2 0.45720944024579D-06 0.11127334315414D-05 + 1 1 1 3 -0.12708933759340D-14 0.18060784572038D-14 + 2 1 1 3 0.18021069299161D-14 -0.25783606290491D-14 + 3 1 1 3 -0.81464869324364D+00 0.81464869324364D+00 + 1 2 1 3 -0.69557042076536D+01 -0.28419095739085D+00 + 2 2 1 3 -0.36932995792233D+01 -0.29989584469137D+00 + 3 2 1 3 -0.37835336202853D+01 -0.17855654640557D+00 + 1 3 1 3 0.29943813563629D+02 0.22942136887742D-15 + 2 3 1 3 -0.85334918580320D-13 -0.13867491875261D-15 + 3 3 1 3 -0.76122881835487D-06 -0.22113926757113D-05 + 1 4 1 3 0.28420592319822D+00 0.69556984036387D+01 + 2 4 1 3 -0.29990707200965D+00 -0.36932977401125D+01 + 3 4 1 3 -0.17855827829974D+00 -0.37835350423785D+01 + 1 5 1 3 -0.25463643047377D-14 0.33366995276999D-14 + 2 5 1 3 -0.30639035023554D+01 0.43515310259470D-14 + 3 5 1 3 0.30177060665857D-06 0.26500985123585D-06 + 1 6 1 3 0.28420592319387D+00 0.69556984036303D+01 + 2 6 1 3 -0.29990707199723D+00 -0.36932977401006D+01 + 3 6 1 3 0.17855803520075D+00 0.37835357443154D+01 + 1 7 1 3 0.10033024904965D-14 -0.27467850882245D-14 + 2 7 1 3 0.19872807072620D-14 -0.26421143460182D-14 + 3 7 1 3 0.15739552524648D+01 0.15739552524648D+01 + 1 8 1 3 -0.69557042076599D+01 -0.28419095738948D+00 + 2 8 1 3 -0.36932995792335D+01 -0.29989584469936D+00 + 3 8 1 3 0.37835354448376D+01 0.17855787148837D+00 + 1 1 2 3 0.18021069299161D-14 -0.25783606290491D-14 + 2 1 2 3 0.21819413229054D-14 -0.46727421208516D-14 + 3 1 2 3 0.15739552524648D+01 0.15739552524648D+01 + 1 2 2 3 -0.36932995792233D+01 -0.29989584469137D+00 + 2 2 2 3 -0.69556984036303D+01 -0.28420592319388D+00 + 3 2 2 3 -0.37835336202853D+01 -0.17855654640555D+00 + 1 3 2 3 -0.85334918580320D-13 -0.13867491875261D-15 + 2 3 2 3 0.29943813563629D+02 0.22941791800615D-15 + 3 3 2 3 -0.76122883268412D-06 -0.22113926738520D-05 + 1 4 2 3 -0.29990707200965D+00 -0.36932977401125D+01 + 2 4 2 3 0.28420592319388D+00 0.69556984036303D+01 + 3 4 2 3 0.17855803520075D+00 0.37835357443154D+01 + 1 5 2 3 -0.30639035023554D+01 0.43515310259470D-14 + 2 5 2 3 -0.25468177683571D-14 0.28430703022272D-14 + 3 5 2 3 0.30177059901440D-06 0.26500984805090D-06 + 1 6 2 3 -0.29990707199723D+00 -0.36932977401006D+01 + 2 6 2 3 0.28420592319388D+00 0.69556984036303D+01 + 3 6 2 3 -0.17855827829973D+00 -0.37835350423784D+01 + 1 7 2 3 0.19872807072620D-14 -0.26421143460182D-14 + 2 7 2 3 -0.12755304528547D-14 0.34086739773383D-14 + 3 7 2 3 -0.81464869324364D+00 0.81464869324364D+00 + 1 8 2 3 -0.36932995792335D+01 -0.29989584469936D+00 + 2 8 2 3 -0.69556984036303D+01 -0.28420592319387D+00 + 3 8 2 3 0.37835354448376D+01 0.17855787148836D+00 + 1 1 3 3 0.81464869324364D+00 -0.81464869324364D+00 + 2 1 3 3 0.15739552524648D+01 0.15739552524648D+01 + 3 1 3 3 0.36544318573684D-14 -0.60611743110634D-14 + 1 2 3 3 -0.37835336202853D+01 -0.17855654640557D+00 + 2 2 3 3 -0.37835336202853D+01 -0.17855654640555D+00 + 3 2 3 3 -0.70451569102957D+01 -0.28136714901319D+00 + 1 3 3 3 -0.76122881835487D-06 0.22113926748541D-05 + 2 3 3 3 -0.76122883268412D-06 0.22113926729948D-05 + 3 3 3 3 0.30360038210496D+02 0.11851781715757D-14 + 1 4 3 3 -0.17855827829974D+00 -0.37835350423785D+01 + 2 4 3 3 0.17855803520075D+00 0.37835357443154D+01 + 3 4 3 3 0.28136959790751D+00 0.70451541666163D+01 + 1 5 3 3 0.30177060665857D-06 -0.26500984818238D-06 + 2 5 3 3 0.30177059901440D-06 -0.26500984532987D-06 + 3 5 3 3 0.45720944085251D-06 0.11127334321391D-05 + 1 6 3 3 0.17855803520075D+00 0.37835357443154D+01 + 2 6 3 3 -0.17855827829973D+00 -0.37835350423784D+01 + 3 6 3 3 0.28136959790750D+00 0.70451541666163D+01 + 1 7 3 3 0.15739552524648D+01 0.15739552524648D+01 + 2 7 3 3 0.81464869324364D+00 -0.81464869324364D+00 + 3 7 3 3 0.21126648007702D-14 -0.41625775224914D-14 + 1 8 3 3 0.37835354448376D+01 0.17855787148837D+00 + 2 8 3 3 0.37835354448376D+01 0.17855787148836D+00 + 3 8 3 3 -0.70451551401610D+01 -0.28136517797416D+00 + 1 1 1 4 -0.69557042076536D+01 0.28419095739084D+00 + 2 1 1 4 -0.36932995792233D+01 0.29989584469137D+00 + 3 1 1 4 -0.37835336202853D+01 0.17855654640557D+00 + 1 2 1 4 0.11137346372441D-14 0.12708933757432D-14 + 2 2 1 4 0.21863675295562D-15 -0.16235956424906D-15 + 3 2 1 4 -0.81464869324364D+00 -0.81464869324364D+00 + 1 3 1 4 0.28420592319822D+00 -0.69556984036387D+01 + 2 3 1 4 -0.29990707200965D+00 0.36932977401125D+01 + 3 3 1 4 -0.17855827829974D+00 0.37835350423785D+01 + 1 4 1 4 0.29943813563629D+02 -0.74797607767324D-18 + 2 4 1 4 -0.53356522424411D-13 0.00000000000000D+00 + 3 4 1 4 -0.76122886814725D-06 0.22113926752827D-05 + 1 5 1 4 -0.28420592319388D+00 0.69556984036303D+01 + 2 5 1 4 0.29990707199723D+00 -0.36932977401006D+01 + 3 5 1 4 -0.17855803520075D+00 0.37835357443154D+01 + 1 6 1 4 0.65742851714346D-18 0.15878916505392D-19 + 2 6 1 4 0.30639035023554D+01 -0.11085884630609D-18 + 3 6 1 4 -0.30177060665857D-06 0.26500984997066D-06 + 1 7 1 4 0.69557042076599D+01 -0.28419095738948D+00 + 2 7 1 4 0.36932995792335D+01 -0.29989584469936D+00 + 3 7 1 4 -0.37835354448376D+01 0.17855787148836D+00 + 1 8 1 4 0.13316011917075D-14 0.88416520546614D-15 + 2 8 1 4 0.64982581633230D-16 -0.83979122958930D-16 + 3 8 1 4 -0.15739552524648D+01 0.15739552524648D+01 + 1 1 2 4 -0.36932995792233D+01 0.29989584469137D+00 + 2 1 2 4 -0.69556984036303D+01 0.28420592319387D+00 + 3 1 2 4 -0.37835336202853D+01 0.17855654640555D+00 + 1 2 2 4 0.21863675295562D-15 -0.16235956424906D-15 + 2 2 2 4 -0.13517868969251D-15 0.12004357238866D-14 + 3 2 2 4 0.15739552524648D+01 -0.15739552524648D+01 + 1 3 2 4 -0.29990707200965D+00 0.36932977401125D+01 + 2 3 2 4 0.28420592319388D+00 -0.69556984036303D+01 + 3 3 2 4 0.17855803520075D+00 -0.37835357443154D+01 + 1 4 2 4 -0.53356522424411D-13 0.00000000000000D+00 + 2 4 2 4 0.29943813563629D+02 -0.75142694894292D-18 + 3 4 2 4 -0.76122887876774D-06 0.22113926734234D-05 + 1 5 2 4 0.29990707199723D+00 -0.36932977401006D+01 + 2 5 2 4 -0.28420592319388D+00 0.69556984036303D+01 + 3 5 2 4 0.17855827829973D+00 -0.37835350423784D+01 + 1 6 2 4 0.30639035023554D+01 -0.11085884630609D-18 + 2 6 2 4 0.11106438446551D-17 0.00000000000000D+00 + 3 6 2 4 -0.30177059901440D-06 0.26500984642882D-06 + 1 7 2 4 0.36932995792335D+01 -0.29989584469936D+00 + 2 7 2 4 0.69556984036303D+01 -0.28420592319388D+00 + 3 7 2 4 -0.37835354448377D+01 0.17855787148836D+00 + 1 8 2 4 0.64982581633230D-16 -0.83979122958930D-16 + 2 8 2 4 0.10508663984829D-14 0.13377968603192D-14 + 3 8 2 4 0.81464869324364D+00 0.81464869324364D+00 + 1 1 3 4 -0.37835336202853D+01 0.17855654640557D+00 + 2 1 3 4 -0.37835336202853D+01 0.17855654640555D+00 + 3 1 3 4 -0.70451569102957D+01 0.28136714901319D+00 + 1 2 3 4 0.81464869324364D+00 0.81464869324364D+00 + 2 2 3 4 0.15739552524648D+01 -0.15739552524648D+01 + 3 2 3 4 -0.63543216743795D-15 0.70018283989106D-15 + 1 3 3 4 -0.17855827829974D+00 0.37835350423785D+01 + 2 3 3 4 0.17855803520075D+00 -0.37835357443154D+01 + 3 3 3 4 0.28136959790751D+00 -0.70451541666163D+01 + 1 4 3 4 -0.76122886814725D-06 -0.22113926752827D-05 + 2 4 3 4 -0.76122887876774D-06 -0.22113926734234D-05 + 3 4 3 4 0.30360038210496D+02 0.32341154748409D-17 + 1 5 3 4 -0.17855803520075D+00 0.37835357443154D+01 + 2 5 3 4 0.17855827829973D+00 -0.37835350423784D+01 + 3 5 3 4 -0.28136959790750D+00 0.70451541666163D+01 + 1 6 3 4 -0.30177060665857D-06 -0.26500984944757D-06 + 2 6 3 4 -0.30177059901440D-06 -0.26500984695195D-06 + 3 6 3 4 -0.45720944024579D-06 -0.11127334315076D-05 + 1 7 3 4 -0.37835354448376D+01 0.17855787148836D+00 + 2 7 3 4 -0.37835354448377D+01 0.17855787148836D+00 + 3 7 3 4 0.70451551401610D+01 -0.28136517797416D+00 + 1 8 3 4 -0.15739552524648D+01 0.15739552524648D+01 + 2 8 3 4 -0.81464869324364D+00 -0.81464869324364D+00 + 3 8 3 4 -0.22313707867438D-15 -0.22648448541303D-15 + 1 1 1 5 -0.12171664742203D-14 0.80927506586339D-15 + 2 1 1 5 -0.91318461759656D-15 0.16129210260810D-14 + 3 1 1 5 -0.15739552524648D+01 -0.15739552524648D+01 + 1 2 1 5 -0.69557042076599D+01 -0.28419095738948D+00 + 2 2 1 5 -0.36932995792335D+01 -0.29989584469936D+00 + 3 2 1 5 0.37835354448377D+01 0.17855787148837D+00 + 1 3 1 5 -0.25463643047377D-14 -0.33366995276999D-14 + 2 3 1 5 -0.30639035023554D+01 -0.43515310259470D-14 + 3 3 1 5 0.30177060665857D-06 0.26500984818238D-06 + 1 4 1 5 -0.28420592319388D+00 -0.69556984036303D+01 + 2 4 1 5 0.29990707199723D+00 0.36932977401006D+01 + 3 4 1 5 -0.17855803520075D+00 -0.37835357443154D+01 + 1 5 1 5 0.29943813563629D+02 0.49534769257523D-14 + 2 5 1 5 -0.74677252640936D-13 0.37217149289119D-14 + 3 5 1 5 -0.76122888585643D-06 -0.22113926732951D-05 + 1 6 1 5 -0.28420592319822D+00 -0.69556984036387D+01 + 2 6 1 5 0.29990707200965D+00 0.36932977401125D+01 + 3 6 1 5 0.17855827829975D+00 0.37835350423785D+01 + 1 7 1 5 -0.37958734909197D-14 0.64033291394268D-14 + 2 7 1 5 -0.29719207325106D-14 0.91214577088833D-15 + 3 7 1 5 0.81464869324364D+00 -0.81464869324364D+00 + 1 8 1 5 -0.69557042076537D+01 -0.28419095739084D+00 + 2 8 1 5 -0.36932995792233D+01 -0.29989584469137D+00 + 3 8 1 5 -0.37835336202853D+01 -0.17855654640557D+00 + 1 1 2 5 -0.91318461759656D-15 0.16129210260810D-14 + 2 1 2 5 -0.41341548725385D-14 0.61192784750749D-14 + 3 1 2 5 0.81464869324364D+00 -0.81464869324364D+00 + 1 2 2 5 -0.36932995792335D+01 -0.29989584469936D+00 + 2 2 2 5 -0.69556984036303D+01 -0.28420592319388D+00 + 3 2 2 5 0.37835354448377D+01 0.17855787148836D+00 + 1 3 2 5 -0.30639035023554D+01 -0.43515310259470D-14 + 2 3 2 5 -0.25468177683571D-14 -0.28430703022272D-14 + 3 3 2 5 0.30177059901440D-06 0.26500984532987D-06 + 1 4 2 5 0.29990707199723D+00 0.36932977401006D+01 + 2 4 2 5 -0.28420592319388D+00 -0.69556984036303D+01 + 3 4 2 5 0.17855827829973D+00 0.37835350423784D+01 + 1 5 2 5 -0.74677252640936D-13 0.37217149289119D-14 + 2 5 2 5 0.29943813563629D+02 0.46932651255381D-14 + 3 5 2 5 -0.76122889663297D-06 -0.22113926714476D-05 + 1 6 2 5 0.29990707200965D+00 0.36932977401125D+01 + 2 6 2 5 -0.28420592319388D+00 -0.69556984036303D+01 + 3 6 2 5 -0.17855803520075D+00 -0.37835357443154D+01 + 1 7 2 5 -0.29719207325106D-14 0.91214577088833D-15 + 2 7 2 5 -0.24811490738118D-14 0.17698985154245D-14 + 3 7 2 5 -0.15739552524648D+01 -0.15739552524648D+01 + 1 8 2 5 -0.36932995792233D+01 -0.29989584469137D+00 + 2 8 2 5 -0.69556984036303D+01 -0.28420592319388D+00 + 3 8 2 5 -0.37835336202852D+01 -0.17855654640555D+00 + 1 1 3 5 -0.15739552524648D+01 -0.15739552524648D+01 + 2 1 3 5 -0.81464869324364D+00 0.81464869324364D+00 + 3 1 3 5 0.81077387784627D-14 -0.99323894713157D-14 + 1 2 3 5 0.37835354448377D+01 0.17855787148837D+00 + 2 2 3 5 0.37835354448377D+01 0.17855787148836D+00 + 3 2 3 5 -0.70451551401611D+01 -0.28136517797415D+00 + 1 3 3 5 0.30177060665857D-06 -0.26500985123585D-06 + 2 3 3 5 0.30177059901440D-06 -0.26500984805090D-06 + 3 3 3 5 0.45720944085251D-06 -0.11127334321391D-05 + 1 4 3 5 -0.17855803520075D+00 -0.37835357443154D+01 + 2 4 3 5 0.17855827829973D+00 0.37835350423784D+01 + 3 4 3 5 -0.28136959790750D+00 -0.70451541666163D+01 + 1 5 3 5 -0.76122888585643D-06 0.22113926772703D-05 + 2 5 3 5 -0.76122889663297D-06 0.22113926753991D-05 + 3 5 3 5 0.30360038210496D+02 0.49330781930046D-14 + 1 6 3 5 0.17855827829975D+00 0.37835350423785D+01 + 2 6 3 5 -0.17855803520075D+00 -0.37835357443154D+01 + 3 6 3 5 -0.28136959790751D+00 -0.70451541666163D+01 + 1 7 3 5 -0.81464869324364D+00 0.81464869324364D+00 + 2 7 3 5 -0.15739552524648D+01 -0.15739552524648D+01 + 3 7 3 5 0.65407588224160D-14 -0.71680497189102D-14 + 1 8 3 5 -0.37835336202853D+01 -0.17855654640557D+00 + 2 8 3 5 -0.37835336202852D+01 -0.17855654640555D+00 + 3 8 3 5 -0.70451569102957D+01 -0.28136714901319D+00 + 1 1 1 6 0.69557042076599D+01 -0.28419095738948D+00 + 2 1 1 6 0.36932995792336D+01 -0.29989584469937D+00 + 3 1 1 6 -0.37835354448377D+01 0.17855787148837D+00 + 1 2 1 6 0.88416520546614D-15 0.13316011917075D-14 + 2 2 1 6 -0.64463483854191D-16 0.15109281698896D-16 + 3 2 1 6 0.15739552524648D+01 -0.15739552524648D+01 + 1 3 1 6 0.28420592319387D+00 -0.69556984036303D+01 + 2 3 1 6 -0.29990707199723D+00 0.36932977401006D+01 + 3 3 1 6 0.17855803520075D+00 -0.37835357443154D+01 + 1 4 1 6 0.65742851714346D-18 -0.15878916505392D-19 + 2 4 1 6 0.30639035023554D+01 0.11085884630609D-18 + 3 4 1 6 -0.30177060665857D-06 0.26500984944757D-06 + 1 5 1 6 -0.28420592319822D+00 0.69556984036387D+01 + 2 5 1 6 0.29990707200965D+00 -0.36932977401125D+01 + 3 5 1 6 0.17855827829975D+00 -0.37835350423785D+01 + 1 6 1 6 0.29943813563629D+02 -0.74797607767324D-18 + 2 6 1 6 -0.39261035166249D-13 0.00000000000000D+00 + 3 6 1 6 -0.76122887173940D-06 0.22113926752827D-05 + 1 7 1 6 -0.69557042076537D+01 0.28419095739084D+00 + 2 7 1 6 -0.36932995792233D+01 0.29989584469137D+00 + 3 7 1 6 -0.37835336202853D+01 0.17855654640557D+00 + 1 8 1 6 0.12708933757432D-14 0.11137346372441D-14 + 2 8 1 6 -0.17710471379487D-15 0.22167251903857D-15 + 3 8 1 6 0.81464869324364D+00 0.81464869324364D+00 + 1 1 2 6 0.36932995792336D+01 -0.29989584469937D+00 + 2 1 2 6 0.69556984036303D+01 -0.28420592319387D+00 + 3 1 2 6 -0.37835354448377D+01 0.17855787148836D+00 + 1 2 2 6 -0.64463483854191D-16 0.15109281698896D-16 + 2 2 2 6 0.78268534800661D-15 0.10508663984829D-14 + 3 2 2 6 -0.81464869324364D+00 -0.81464869324364D+00 + 1 3 2 6 -0.29990707199723D+00 0.36932977401006D+01 + 2 3 2 6 0.28420592319388D+00 -0.69556984036303D+01 + 3 3 2 6 -0.17855827829973D+00 0.37835350423784D+01 + 1 4 2 6 0.30639035023554D+01 0.11085884630609D-18 + 2 4 2 6 0.11106438446551D-17 0.00000000000000D+00 + 3 4 2 6 -0.30177059901440D-06 0.26500984695195D-06 + 1 5 2 6 0.29990707200965D+00 -0.36932977401125D+01 + 2 5 2 6 -0.28420592319388D+00 0.69556984036303D+01 + 3 5 2 6 -0.17855803520075D+00 0.37835357443154D+01 + 1 6 2 6 -0.39261035166249D-13 0.00000000000000D+00 + 2 6 2 6 0.29943813563628D+02 -0.75142694894292D-18 + 3 6 2 6 -0.76122888237670D-06 0.22113926734234D-05 + 1 7 2 6 -0.36932995792233D+01 0.29989584469137D+00 + 2 7 2 6 -0.69556984036303D+01 0.28420592319387D+00 + 3 7 2 6 -0.37835336202852D+01 0.17855654640555D+00 + 1 8 2 6 -0.17710471379487D-15 0.22167251903857D-15 + 2 8 2 6 0.12004357238866D-14 0.97504433493265D-15 + 3 8 2 6 -0.15739552524648D+01 0.15739552524648D+01 + 1 1 3 6 -0.37835354448377D+01 0.17855787148837D+00 + 2 1 3 6 -0.37835354448377D+01 0.17855787148836D+00 + 3 1 3 6 0.70451551401610D+01 -0.28136517797416D+00 + 1 2 3 6 0.15739552524648D+01 -0.15739552524648D+01 + 2 2 3 6 0.81464869324364D+00 0.81464869324364D+00 + 3 2 3 6 -0.44852911432630D-15 0.22095212455824D-15 + 1 3 3 6 0.17855803520075D+00 -0.37835357443154D+01 + 2 3 3 6 -0.17855827829973D+00 0.37835350423784D+01 + 3 3 3 6 0.28136959790750D+00 -0.70451541666163D+01 + 1 4 3 6 -0.30177060665857D-06 -0.26500984997066D-06 + 2 4 3 6 -0.30177059901440D-06 -0.26500984642882D-06 + 3 4 3 6 -0.45720944024579D-06 -0.11127334315075D-05 + 1 5 3 6 0.17855827829975D+00 -0.37835350423785D+01 + 2 5 3 6 -0.17855803520075D+00 0.37835357443154D+01 + 3 5 3 6 -0.28136959790751D+00 0.70451541666163D+01 + 1 6 3 6 -0.76122887173940D-06 -0.22113926752827D-05 + 2 6 3 6 -0.76122888237670D-06 -0.22113926734234D-05 + 3 6 3 6 0.30360038210496D+02 0.32341154748409D-17 + 1 7 3 6 -0.37835336202853D+01 0.17855654640557D+00 + 2 7 3 6 -0.37835336202852D+01 0.17855654640555D+00 + 3 7 3 6 -0.70451569102957D+01 0.28136714901319D+00 + 1 8 3 6 -0.81464869324364D+00 -0.81464869324364D+00 + 2 8 3 6 -0.15739552524648D+01 0.15739552524648D+01 + 3 8 3 6 0.47813823165730D-15 -0.19134302376234D-15 + 1 1 1 7 -0.23058029472364D-14 -0.12504958882904D-15 + 2 1 1 7 0.30639035023554D+01 -0.33393196201820D-15 + 3 1 1 7 -0.30177060665857D-06 -0.26500984949645D-06 + 1 2 1 7 0.69556984036303D+01 -0.28420592319387D+00 + 2 2 1 7 -0.36932977401006D+01 0.29990707199723D+00 + 3 2 1 7 0.37835357443154D+01 -0.17855803520075D+00 + 1 3 1 7 0.10033024904965D-14 0.27467850882245D-14 + 2 3 1 7 0.19872807072620D-14 0.26421143460182D-14 + 3 3 1 7 0.15739552524648D+01 -0.15739552524648D+01 + 1 4 1 7 0.69557042076599D+01 0.28419095738948D+00 + 2 4 1 7 0.36932995792335D+01 0.29989584469936D+00 + 3 4 1 7 -0.37835354448376D+01 -0.17855787148836D+00 + 1 5 1 7 -0.37958734909197D-14 -0.64033291394268D-14 + 2 5 1 7 -0.29719207325106D-14 -0.91214577088833D-15 + 3 5 1 7 -0.81464869324364D+00 -0.81464869324364D+00 + 1 6 1 7 -0.69557042076537D+01 -0.28419095739084D+00 + 2 6 1 7 -0.36932995792233D+01 -0.29989584469137D+00 + 3 6 1 7 -0.37835336202853D+01 -0.17855654640557D+00 + 1 7 1 7 0.29943813563629D+02 -0.13469052396874D-14 + 2 7 1 7 -0.21386072361911D-13 -0.13579895864383D-14 + 3 7 1 7 -0.76122882190758D-06 -0.22113926770683D-05 + 1 8 1 7 -0.69556984036387D+01 0.28420592319822D+00 + 2 8 1 7 0.36932977401125D+01 -0.29990707200965D+00 + 3 8 1 7 0.37835350423784D+01 -0.17855827829975D+00 + 1 1 2 7 0.30639035023554D+01 -0.33393196201820D-15 + 2 1 2 7 -0.23897715634039D-14 -0.85646521812961D-17 + 3 1 2 7 -0.30177059901440D-06 -0.26500984909552D-06 + 1 2 2 7 -0.36932977401006D+01 0.29990707199723D+00 + 2 2 2 7 0.69556984036303D+01 -0.28420592319388D+00 + 3 2 2 7 -0.37835350423784D+01 0.17855827829974D+00 + 1 3 2 7 0.19872807072620D-14 0.26421143460182D-14 + 2 3 2 7 -0.12755304528547D-14 -0.34086739773383D-14 + 3 3 2 7 0.81464869324364D+00 0.81464869324364D+00 + 1 4 2 7 0.36932995792335D+01 0.29989584469936D+00 + 2 4 2 7 0.69556984036303D+01 0.28420592319388D+00 + 3 4 2 7 -0.37835354448377D+01 -0.17855787148836D+00 + 1 5 2 7 -0.29719207325106D-14 -0.91214577088833D-15 + 2 5 2 7 -0.24811490738118D-14 -0.17698985154245D-14 + 3 5 2 7 -0.15739552524648D+01 0.15739552524648D+01 + 1 6 2 7 -0.36932995792233D+01 -0.29989584469137D+00 + 2 6 2 7 -0.69556984036303D+01 -0.28420592319387D+00 + 3 6 2 7 -0.37835336202852D+01 -0.17855654640555D+00 + 1 7 2 7 -0.21386072361911D-13 -0.13579895864383D-14 + 2 7 2 7 0.29943813563629D+02 -0.13989385485862D-14 + 3 7 2 7 -0.76122894637096D-06 -0.22113926743863D-05 + 1 8 2 7 0.36932977401125D+01 -0.29990707200965D+00 + 2 8 2 7 -0.69556984036303D+01 0.28420592319387D+00 + 3 8 2 7 -0.37835357443154D+01 0.17855803520075D+00 + 1 1 3 7 -0.30177060665857D-06 0.26500984992178D-06 + 2 1 3 7 -0.30177059901440D-06 0.26500984428525D-06 + 3 1 3 7 -0.45720943969068D-06 0.11127334295781D-05 + 1 2 3 7 0.37835357443154D+01 -0.17855803520075D+00 + 2 2 3 7 -0.37835350423784D+01 0.17855827829974D+00 + 3 2 3 7 0.70451541666164D+01 -0.28136959790749D+00 + 1 3 3 7 0.15739552524648D+01 -0.15739552524648D+01 + 2 3 3 7 -0.81464869324364D+00 -0.81464869324364D+00 + 3 3 3 7 0.21126647345957D-14 0.41625775034662D-14 + 1 4 3 7 -0.37835354448376D+01 -0.17855787148836D+00 + 2 4 3 7 -0.37835354448377D+01 -0.17855787148836D+00 + 3 4 3 7 0.70451551401610D+01 0.28136517797416D+00 + 1 5 3 7 0.81464869324364D+00 0.81464869324364D+00 + 2 5 3 7 -0.15739552524648D+01 0.15739552524648D+01 + 3 5 3 7 0.65407588604663D-14 0.71680496974035D-14 + 1 6 3 7 -0.37835336202853D+01 -0.17855654640557D+00 + 2 6 3 7 -0.37835336202852D+01 -0.17855654640555D+00 + 3 6 3 7 -0.70451569102957D+01 -0.28136714901319D+00 + 1 7 3 7 -0.76122882190758D-06 0.22113926734971D-05 + 2 7 3 7 -0.76122894637096D-06 0.22113926724605D-05 + 3 7 3 7 0.30360038210496D+02 -0.19396561776192D-14 + 1 8 3 7 0.37835350423784D+01 -0.17855827829975D+00 + 2 8 3 7 -0.37835357443154D+01 0.17855803520075D+00 + 3 8 3 7 -0.70451541666163D+01 0.28136959790751D+00 + 1 1 1 8 -0.69556984036303D+01 -0.28420592319387D+00 + 2 1 1 8 0.36932977401006D+01 0.29990707199723D+00 + 3 1 1 8 -0.37835357443154D+01 -0.17855803520075D+00 + 1 2 1 8 -0.65742851714346D-18 -0.28957452135437D-15 + 2 2 1 8 -0.30639035023554D+01 -0.13319447545878D-14 + 3 2 1 8 0.30177060665857D-06 -0.26500985013235D-06 + 1 3 1 8 -0.69557042076599D+01 0.28419095738948D+00 + 2 3 1 8 -0.36932995792335D+01 0.29989584469936D+00 + 3 3 1 8 0.37835354448376D+01 -0.17855787148837D+00 + 1 4 1 8 0.13316011917075D-14 -0.88416520546614D-15 + 2 4 1 8 0.64982581633230D-16 0.83979122958930D-16 + 3 4 1 8 -0.15739552524648D+01 -0.15739552524648D+01 + 1 5 1 8 -0.69557042076537D+01 0.28419095739084D+00 + 2 5 1 8 -0.36932995792233D+01 0.29989584469137D+00 + 3 5 1 8 -0.37835336202853D+01 0.17855654640557D+00 + 1 6 1 8 0.12708933757432D-14 -0.11137346372441D-14 + 2 6 1 8 -0.17710471379487D-15 -0.22167251903857D-15 + 3 6 1 8 -0.81464869324364D+00 0.81464869324364D+00 + 1 7 1 8 -0.69556984036387D+01 -0.28420592319822D+00 + 2 7 1 8 0.36932977401125D+01 0.29990707200965D+00 + 3 7 1 8 0.37835350423784D+01 0.17855827829975D+00 + 1 8 1 8 0.29943813563629D+02 -0.36850935298476D-15 + 2 8 1 8 0.21334502031726D-13 -0.23663560920900D-15 + 3 8 1 8 -0.76122882890720D-06 0.22113926750320D-05 + 1 1 2 8 0.36932977401006D+01 0.29990707199723D+00 + 2 1 2 8 -0.69556984036303D+01 -0.28420592319388D+00 + 3 1 2 8 0.37835350423784D+01 0.17855827829973D+00 + 1 2 2 8 -0.30639035023554D+01 -0.13319447545878D-14 + 2 2 2 8 -0.11106438446551D-17 -0.28958254523310D-15 + 3 2 2 8 0.30177059901440D-06 -0.26500984711393D-06 + 1 3 2 8 -0.36932995792335D+01 0.29989584469936D+00 + 2 3 2 8 -0.69556984036303D+01 0.28420592319387D+00 + 3 3 2 8 0.37835354448376D+01 -0.17855787148836D+00 + 1 4 2 8 0.64982581633230D-16 0.83979122958930D-16 + 2 4 2 8 0.10508663984829D-14 -0.13377968603192D-14 + 3 4 2 8 -0.81464869324364D+00 0.81464869324364D+00 + 1 5 2 8 -0.36932995792233D+01 0.29989584469137D+00 + 2 5 2 8 -0.69556984036303D+01 0.28420592319388D+00 + 3 5 2 8 -0.37835336202852D+01 0.17855654640555D+00 + 1 6 2 8 -0.17710471379487D-15 -0.22167251903857D-15 + 2 6 2 8 0.12004357238866D-14 -0.97504433493265D-15 + 3 6 2 8 -0.15739552524648D+01 -0.15739552524648D+01 + 1 7 2 8 0.36932977401125D+01 0.29990707200965D+00 + 2 7 2 8 -0.69556984036303D+01 -0.28420592319387D+00 + 3 7 2 8 -0.37835357443154D+01 -0.17855803520075D+00 + 1 8 2 8 0.21334502031726D-13 -0.23663560920900D-15 + 2 8 2 8 0.29943813563629D+02 -0.36851280385603D-15 + 3 8 2 8 -0.76122883625903D-06 0.22113926731727D-05 + 1 1 3 8 -0.37835357443154D+01 -0.17855803520075D+00 + 2 1 3 8 0.37835350423784D+01 0.17855827829973D+00 + 3 1 3 8 -0.70451541666163D+01 -0.28136959790749D+00 + 1 2 3 8 0.30177060665857D-06 0.26500984928588D-06 + 2 2 3 8 0.30177059901440D-06 0.26500984626684D-06 + 3 2 3 8 0.45720944024579D-06 0.11127334314736D-05 + 1 3 3 8 0.37835354448376D+01 -0.17855787148837D+00 + 2 3 3 8 0.37835354448376D+01 -0.17855787148836D+00 + 3 3 3 8 -0.70451551401610D+01 0.28136517797416D+00 + 1 4 3 8 -0.15739552524648D+01 -0.15739552524648D+01 + 2 4 3 8 0.81464869324364D+00 -0.81464869324364D+00 + 3 4 3 8 -0.22313702904354D-15 0.22648452511770D-15 + 1 5 3 8 -0.37835336202853D+01 0.17855654640557D+00 + 2 5 3 8 -0.37835336202852D+01 0.17855654640555D+00 + 3 5 3 8 -0.70451569102957D+01 0.28136714901319D+00 + 1 6 3 8 0.81464869324364D+00 -0.81464869324364D+00 + 2 6 3 8 -0.15739552524648D+01 -0.15739552524648D+01 + 3 6 3 8 0.47813828459686D-15 0.19134297082278D-15 + 1 7 3 8 0.37835350423784D+01 0.17855827829975D+00 + 2 7 3 8 -0.37835357443154D+01 -0.17855803520075D+00 + 3 7 3 8 -0.70451541666163D+01 -0.28136959790751D+00 + 1 8 3 8 -0.76122882890720D-06 -0.22113926755334D-05 + 2 8 3 8 -0.76122883625903D-06 -0.22113926736741D-05 + 3 8 3 8 0.30360038210496D+02 -0.32983279191271D-15 + + 2nd derivatives (non-stat.) - # elements : 576 + qpt 5.00000000E-01 5.00000000E-01 5.00000000E-01 1.0 + 1 1 1 1 0.30326938845022D+02 0.00000000000000D+00 + 2 1 1 1 0.35130052973819D-13 0.00000000000000D+00 + 3 1 1 1 -0.99870803555182D-13 0.00000000000000D+00 + 1 2 1 1 0.73488451500406D+01 0.60435845991984D-05 + 2 2 1 1 -0.38978319248851D+01 -0.30557001491294D-14 + 3 2 1 1 -0.38978319248852D+01 -0.36481632740137D-14 + 1 3 1 1 -0.82680415864696D-15 0.00000000000000D+00 + 2 3 1 1 -0.39925716063740D-15 0.00000000000000D+00 + 3 3 1 1 -0.40292664852458D-15 0.00000000000000D+00 + 1 4 1 1 -0.73488451500406D+01 -0.60435845989889D-05 + 2 4 1 1 -0.38978319248851D+01 -0.12684232658374D-14 + 3 4 1 1 -0.38978319248851D+01 -0.51695161390857D-15 + 1 5 1 1 -0.18832999737059D-14 0.00000000000000D+00 + 2 5 1 1 -0.44177351311670D-15 0.00000000000000D+00 + 3 5 1 1 -0.32380260136706D+01 -0.10788824667773D-15 + 1 6 1 1 0.73488451500406D+01 0.60435845996105D-05 + 2 6 1 1 0.38978319248851D+01 0.33963614786978D-14 + 3 6 1 1 -0.38978319248852D+01 -0.35744275651633D-14 + 1 7 1 1 -0.29685044721297D-14 0.00000000000000D+00 + 2 7 1 1 0.32380260136706D+01 0.12663665957237D-14 + 3 7 1 1 0.52242336839267D-15 0.00000000000000D+00 + 1 8 1 1 -0.73488451500406D+01 -0.60435845986875D-05 + 2 8 1 1 0.38978319248851D+01 -0.91192498394713D-15 + 3 8 1 1 -0.38978319248851D+01 -0.83306556510593D-15 + 1 1 2 1 0.35130052973819D-13 0.00000000000000D+00 + 2 1 2 1 0.30326938845022D+02 0.00000000000000D+00 + 3 1 2 1 0.35622682605586D-14 0.00000000000000D+00 + 1 2 2 1 -0.38978319248851D+01 -0.30557003432412D-14 + 2 2 2 1 0.73488451500406D+01 0.60435845993086D-05 + 3 2 2 1 0.38978319248851D+01 0.32873441177235D-14 + 1 3 2 1 -0.39925716070633D-15 0.00000000000000D+00 + 2 3 2 1 -0.27030397288920D-14 0.00000000000000D+00 + 3 3 2 1 0.32380260136706D+01 0.12663667721889D-14 + 1 4 2 1 -0.38978319248851D+01 -0.12684222688090D-14 + 2 4 2 1 -0.73488451500406D+01 -0.60435845986622D-05 + 3 4 2 1 -0.38978319248851D+01 -0.13570735195382D-14 + 1 5 2 1 -0.44177351311670D-15 0.00000000000000D+00 + 2 5 2 1 0.52878182244872D-15 0.00000000000000D+00 + 3 5 2 1 -0.69767757593348D-16 0.00000000000000D+00 + 1 6 2 1 0.38978319248851D+01 0.33963580376265D-14 + 2 6 2 1 0.73488451500406D+01 0.60435845995398D-05 + 3 6 2 1 -0.38978319248851D+01 -0.35341209179300D-14 + 1 7 2 1 0.32380260136706D+01 0.12663663839655D-14 + 2 7 2 1 -0.23863295244161D-14 0.00000000000000D+00 + 3 7 2 1 0.84946588443876D-16 0.00000000000000D+00 + 1 8 2 1 0.38978319248851D+01 -0.91192559275206D-15 + 2 8 2 1 -0.73488451500406D+01 -0.60435845990855D-05 + 3 8 2 1 0.38978319248851D+01 0.47888557903612D-15 + 1 1 3 1 -0.99870803555182D-13 0.00000000000000D+00 + 2 1 3 1 0.35622682605586D-14 0.00000000000000D+00 + 3 1 3 1 0.30326938845022D+02 0.00000000000000D+00 + 1 2 3 1 -0.38978319248852D+01 -0.36481633798928D-14 + 2 2 3 1 0.38978319248851D+01 0.32873430589324D-14 + 3 2 3 1 0.73488451500406D+01 0.60435845984679D-05 + 1 3 3 1 -0.40292664847288D-15 0.00000000000000D+00 + 2 3 3 1 0.32380260136706D+01 0.12663666310167D-14 + 3 3 3 1 -0.21187283977885D-14 0.00000000000000D+00 + 1 4 3 1 -0.38978319248851D+01 -0.51695373149094D-15 + 2 4 3 1 -0.38978319248851D+01 -0.13570722489887D-14 + 3 4 3 1 -0.73488451500406D+01 -0.60435845987013D-05 + 1 5 3 1 -0.32380260136706D+01 -0.10788690554223D-15 + 2 5 3 1 -0.69767757713979D-16 0.00000000000000D+00 + 3 5 3 1 -0.25504019857679D-14 0.00000000000000D+00 + 1 6 3 1 -0.38978319248852D+01 -0.35744280592658D-14 + 2 6 3 1 -0.38978319248851D+01 -0.35341228237541D-14 + 3 6 3 1 0.73488451500406D+01 0.60435845995678D-05 + 1 7 3 1 0.52242336839267D-15 0.00000000000000D+00 + 2 7 3 1 0.84946588443876D-16 0.00000000000000D+00 + 3 7 3 1 0.63268274936962D-15 0.00000000000000D+00 + 1 8 3 1 -0.38978319248851D+01 -0.83306242402542D-15 + 2 8 3 1 0.38978319248851D+01 0.47888469671013D-15 + 3 8 3 1 -0.73488451500406D+01 -0.60435845989244D-05 + 1 1 1 2 0.73488451500406D+01 0.60435845983590D-05 + 2 1 1 2 -0.38978319248851D+01 0.18613836811820D-14 + 3 1 1 2 -0.38978319248852D+01 0.24538498765607D-14 + 1 2 1 2 0.30326938845022D+02 0.00000000000000D+00 + 2 2 1 2 -0.75058463058530D-13 0.00000000000000D+00 + 3 2 1 2 -0.57234916884174D-13 0.00000000000000D+00 + 1 3 1 2 -0.73488451500406D+01 -0.60435846003269D-05 + 2 3 1 2 -0.38978319248851D+01 -0.63041148183375D-15 + 3 3 1 2 -0.38978319248851D+01 0.78922398106974D-16 + 1 4 1 2 -0.14929379735427D-14 0.00000000000000D+00 + 2 4 1 2 -0.39947400130454D-15 0.00000000000000D+00 + 3 4 1 2 -0.40294344815784D-15 0.00000000000000D+00 + 1 5 1 2 -0.73488451500406D+01 -0.60435845966588D-05 + 2 5 1 2 -0.38978319248851D+01 0.50488288292824D-14 + 3 5 1 2 0.38978319248852D+01 -0.50609146755763D-14 + 1 6 1 2 -0.44342283565182D-15 0.00000000000000D+00 + 2 6 1 2 0.45196501446864D-15 0.00000000000000D+00 + 3 6 1 2 0.32380260136706D+01 0.12663679721522D-14 + 1 7 1 2 0.73488451500406D+01 0.60435845977929D-05 + 2 7 1 2 -0.38978319248851D+01 0.28340869777894D-14 + 3 7 1 2 0.38978319248851D+01 -0.29296805936059D-14 + 1 8 1 2 0.44342281624750D-15 0.00000000000000D+00 + 2 8 1 2 -0.32380260136706D+01 -0.10788595263017D-15 + 3 8 1 2 -0.52218972823801D-15 0.00000000000000D+00 + 1 1 2 2 -0.38978319248851D+01 0.18613843341032D-14 + 2 1 2 2 0.73488451500406D+01 0.60435845982488D-05 + 3 1 2 2 0.38978319248851D+01 -0.20930267321571D-14 + 1 2 2 2 -0.75058463058530D-13 0.00000000000000D+00 + 2 2 2 2 0.30326938845022D+02 0.00000000000000D+00 + 3 2 2 2 -0.67596085032006D-13 0.00000000000000D+00 + 1 3 2 2 -0.38978319248851D+01 -0.63041129654530D-15 + 2 3 2 2 -0.73488451500406D+01 -0.60435845999305D-05 + 3 3 2 2 -0.38978319248851D+01 -0.44936598086325D-15 + 1 4 2 2 -0.39947400118391D-15 0.00000000000000D+00 + 2 4 2 2 -0.31225736212339D-15 0.00000000000000D+00 + 3 4 2 2 0.32380260136706D+01 0.12663666310167D-14 + 1 5 2 2 -0.38978319248851D+01 0.50488272499189D-14 + 2 5 2 2 -0.73488451500406D+01 -0.60435845965014D-05 + 3 5 2 2 0.38978319248851D+01 -0.50358338517067D-14 + 1 6 2 2 0.45196501446864D-15 0.00000000000000D+00 + 2 6 2 2 0.59356643058165D-16 0.00000000000000D+00 + 3 6 2 2 0.60226778876679D-16 0.00000000000000D+00 + 1 7 2 2 -0.38978319248851D+01 0.28340844896301D-14 + 2 7 2 2 0.73488451500406D+01 0.60435845978175D-05 + 3 7 2 2 -0.38978319248851D+01 0.26630765292597D-14 + 1 8 2 2 -0.32380260136706D+01 -0.10788581145801D-15 + 2 8 2 2 -0.10920505928258D-17 0.00000000000000D+00 + 3 8 2 2 -0.85163428878374D-16 0.00000000000000D+00 + 1 1 3 2 -0.38978319248852D+01 0.24538478119179D-14 + 2 1 3 2 0.38978319248851D+01 -0.20930282321113D-14 + 3 1 3 2 0.73488451500406D+01 0.60435845990895D-05 + 1 2 3 2 -0.57234916884174D-13 0.00000000000000D+00 + 2 2 3 2 -0.67596085032006D-13 0.00000000000000D+00 + 3 2 3 2 0.30326938845022D+02 0.00000000000000D+00 + 1 3 3 2 -0.38978319248851D+01 0.78920456989803D-16 + 2 3 3 2 -0.38978319248851D+01 -0.44936587498413D-15 + 3 3 3 2 -0.73488451500406D+01 -0.60435845996045D-05 + 1 4 3 2 -0.40294344814061D-15 0.00000000000000D+00 + 2 4 3 2 0.32380260136706D+01 0.12663666310167D-14 + 3 4 3 2 0.18799515609255D-15 0.00000000000000D+00 + 1 5 3 2 0.38978319248852D+01 -0.50609125579939D-14 + 2 5 3 2 0.38978319248851D+01 -0.50358330752598D-14 + 3 5 3 2 -0.73488451500406D+01 -0.60435845970054D-05 + 1 6 3 2 0.32380260136706D+01 0.12663692427017D-14 + 2 6 3 2 0.60226778962844D-16 0.00000000000000D+00 + 3 6 3 2 0.10920067522187D-17 0.00000000000000D+00 + 1 7 3 2 0.38978319248851D+01 -0.29296785024933D-14 + 2 7 3 2 -0.38978319248851D+01 0.26630771204181D-14 + 3 7 3 2 0.73488451500406D+01 0.60435845971803D-05 + 1 8 3 2 -0.52218972823801D-15 0.00000000000000D+00 + 2 8 3 2 -0.85163428878374D-16 0.00000000000000D+00 + 3 8 3 2 -0.59356640430034D-16 0.00000000000000D+00 + 1 1 1 3 -0.82680415864696D-15 0.00000000000000D+00 + 2 1 1 3 -0.39925716070633D-15 0.00000000000000D+00 + 3 1 1 3 -0.40292664847288D-15 0.00000000000000D+00 + 1 2 1 3 -0.73488451500406D+01 -0.60435845972305D-05 + 2 2 1 3 -0.38978319248851D+01 -0.56390487141129D-15 + 3 2 1 3 -0.38978319248851D+01 -0.12732426247631D-14 + 1 3 1 3 0.30326938845022D+02 0.00000000000000D+00 + 2 3 1 3 -0.85662212105398D-13 0.00000000000000D+00 + 3 3 1 3 -0.39482054876823D-15 0.00000000000000D+00 + 1 4 1 3 0.73488451500406D+01 0.60435845991734D-05 + 2 4 1 3 -0.38978319248852D+01 -0.43536295769583D-14 + 3 4 1 3 -0.38978319248851D+01 -0.34019214132361D-14 + 1 5 1 3 -0.18767950367081D-14 0.00000000000000D+00 + 2 5 1 3 -0.32380260136706D+01 -0.10788623497449D-15 + 3 5 1 3 -0.52197288676932D-15 0.00000000000000D+00 + 1 6 1 3 0.73488451500406D+01 0.60435845992614D-05 + 2 6 1 3 -0.38978319248852D+01 -0.37606583635604D-14 + 3 6 1 3 0.38978319248851D+01 0.29944124701719D-14 + 1 7 1 3 -0.29688300054581D-14 0.00000000000000D+00 + 2 7 1 3 0.45176497354739D-15 0.00000000000000D+00 + 3 7 1 3 0.32380260136706D+01 0.12663676898079D-14 + 1 8 1 3 -0.73488451500406D+01 -0.60435845988494D-05 + 2 8 1 3 -0.38978319248851D+01 -0.67426825474200D-15 + 3 8 1 3 0.38978319248851D+01 0.12482880282117D-14 + 1 1 2 3 -0.39925716063740D-15 0.00000000000000D+00 + 2 1 2 3 -0.27030397322007D-14 0.00000000000000D+00 + 3 1 2 3 0.32380260136706D+01 0.12663666310167D-14 + 1 2 2 3 -0.38978319248851D+01 -0.56390387438292D-15 + 2 2 2 3 -0.73488451500406D+01 -0.60435845976269D-05 + 3 2 2 3 -0.38978319248851D+01 -0.74495057531677D-15 + 1 3 2 3 -0.85662212105398D-13 0.00000000000000D+00 + 2 3 2 3 0.30326938845022D+02 0.00000000000000D+00 + 3 3 2 3 -0.10648586454643D-13 0.00000000000000D+00 + 1 4 2 3 -0.38978319248852D+01 -0.43536292769674D-14 + 2 4 2 3 0.73488451500406D+01 0.60435846001829D-05 + 3 4 2 3 0.38978319248851D+01 0.33141778717896D-14 + 1 5 2 3 -0.32380260136706D+01 -0.10788552911370D-15 + 2 5 2 3 -0.25433545086922D-14 0.00000000000000D+00 + 3 5 2 3 -0.84729748073381D-16 0.00000000000000D+00 + 1 6 2 3 -0.38978319248852D+01 -0.37606584517930D-14 + 2 6 2 3 0.73488451500406D+01 0.60435845996121D-05 + 3 6 2 3 -0.38978319248851D+01 -0.33697952180394D-14 + 1 7 2 3 0.45176497354739D-15 0.00000000000000D+00 + 2 7 2 3 0.74413873497598D-15 0.00000000000000D+00 + 3 7 2 3 0.60009938528347D-16 0.00000000000000D+00 + 1 8 2 3 -0.38978319248851D+01 -0.67426986939856D-15 + 2 8 2 3 -0.73488451500406D+01 -0.60435845985262D-05 + 3 8 2 3 0.38978319248850D+01 0.58708577752707D-15 + 1 1 3 3 -0.40292664852458D-15 0.00000000000000D+00 + 2 1 3 3 0.32380260136706D+01 0.12663663486724D-14 + 3 1 3 3 -0.21187283944798D-14 0.00000000000000D+00 + 1 2 3 3 -0.38978319248851D+01 -0.12732447423455D-14 + 2 2 3 3 -0.38978319248851D+01 -0.74494930476735D-15 + 3 2 3 3 -0.73488451500406D+01 -0.60435845979529D-05 + 1 3 3 3 -0.39482054876824D-15 0.00000000000000D+00 + 2 3 3 3 -0.10648586454643D-13 0.00000000000000D+00 + 3 3 3 3 0.30326938845022D+02 0.00000000000000D+00 + 1 4 3 3 -0.38978319248851D+01 -0.34019181662765D-14 + 2 4 3 3 0.38978319248851D+01 0.33141740954344D-14 + 3 4 3 3 0.73488451500406D+01 0.60435845997523D-05 + 1 5 3 3 -0.52197288676932D-15 0.00000000000000D+00 + 2 5 3 3 -0.84729748073381D-16 0.00000000000000D+00 + 3 5 3 3 0.67666699255463D-15 0.00000000000000D+00 + 1 6 3 3 0.38978319248851D+01 0.29944134230840D-14 + 2 6 3 3 -0.38978319248851D+01 -0.33697955709698D-14 + 3 6 3 3 0.73488451500406D+01 0.60435845997762D-05 + 1 7 3 3 0.32380260136706D+01 0.12663689603574D-14 + 2 7 3 3 0.60009938304318D-16 0.00000000000000D+00 + 3 7 3 3 -0.23862212224857D-14 0.00000000000000D+00 + 1 8 3 3 0.38978319248851D+01 0.12482897222776D-14 + 2 8 3 3 0.38978319248850D+01 0.58708510695932D-15 + 3 8 3 3 -0.73488451500406D+01 -0.60435845990674D-05 + 1 1 1 4 -0.73488451500406D+01 -0.60435845985685D-05 + 2 1 1 4 -0.38978319248851D+01 0.74106912592324D-16 + 3 1 1 4 -0.38978319248851D+01 -0.67736861274756D-15 + 1 2 1 4 -0.14929379736116D-14 0.00000000000000D+00 + 2 2 1 4 -0.39947400118391D-15 0.00000000000000D+00 + 3 2 1 4 -0.40294344814061D-15 0.00000000000000D+00 + 1 3 1 4 0.73488451500406D+01 0.60435845983840D-05 + 2 3 1 4 -0.38978319248852D+01 0.31593143089742D-14 + 3 3 1 4 -0.38978319248851D+01 0.22076046982374D-14 + 1 4 1 4 0.30326938845022D+02 0.00000000000000D+00 + 2 4 1 4 -0.53683815949488D-13 0.00000000000000D+00 + 3 4 1 4 -0.50187204097757D-13 0.00000000000000D+00 + 1 5 1 4 -0.73488451500406D+01 -0.60435845974747D-05 + 2 5 1 4 0.38978319248852D+01 -0.44338394732643D-14 + 3 5 1 4 -0.38978319248851D+01 0.50330126215013D-14 + 1 6 1 4 -0.44342280742424D-15 0.00000000000000D+00 + 2 6 1 4 0.32380260136706D+01 0.12663665957237D-14 + 3 6 1 4 0.52218972823801D-15 0.00000000000000D+00 + 1 7 1 4 0.73488451500406D+01 0.60435845981318D-05 + 2 7 1 4 0.38978319248851D+01 -0.15344247376499D-14 + 3 7 1 4 -0.38978319248852D+01 0.19923307459946D-14 + 1 8 1 4 0.44342284392363D-15 0.00000000000000D+00 + 2 8 1 4 -0.45196501446864D-15 0.00000000000000D+00 + 3 8 1 4 -0.32380260136706D+01 -0.10788824667774D-15 + 1 1 2 4 -0.38978319248851D+01 0.74107097880781D-16 + 2 1 2 4 -0.73488451500406D+01 -0.60435845988952D-05 + 3 1 2 4 -0.38978319248851D+01 0.16275696335814D-15 + 1 2 2 4 -0.39947400130454D-15 0.00000000000000D+00 + 2 2 2 4 -0.31225736212339D-15 0.00000000000000D+00 + 3 2 2 4 0.32380260136706D+01 0.12663666310167D-14 + 1 3 2 4 -0.38978319248852D+01 0.31593151736536D-14 + 2 3 2 4 0.73488451500406D+01 0.60435845973746D-05 + 3 3 2 4 0.38978319248851D+01 -0.21198582274687D-14 + 1 4 2 4 -0.53683815949488D-13 0.00000000000000D+00 + 2 4 2 4 0.30326938845022D+02 0.00000000000000D+00 + 3 4 2 4 -0.56732206521034D-13 0.00000000000000D+00 + 1 5 2 4 0.38978319248852D+01 -0.44338384056499D-14 + 2 5 2 4 -0.73488451500406D+01 -0.60435845969095D-05 + 3 5 2 4 0.38978319248851D+01 -0.54666597935450D-14 + 1 6 2 4 0.32380260136706D+01 0.12663666663098D-14 + 2 6 2 4 0.10920547287289D-17 0.00000000000000D+00 + 3 6 2 4 0.85163428878374D-16 0.00000000000000D+00 + 1 7 2 4 0.38978319248851D+01 -0.15344262023111D-14 + 2 7 2 4 0.73488451500406D+01 0.60435845983587D-05 + 3 7 2 4 -0.38978319248851D+01 0.22800130767326D-14 + 1 8 2 4 -0.45196501446864D-15 0.00000000000000D+00 + 2 8 2 4 -0.59356642773822D-16 0.00000000000000D+00 + 3 8 2 4 -0.60226778954227D-16 0.00000000000000D+00 + 1 1 3 4 -0.38978319248851D+01 -0.67737055386473D-15 + 2 1 3 4 -0.38978319248851D+01 0.16275706923726D-15 + 3 1 3 4 -0.73488451500406D+01 -0.60435845988561D-05 + 1 2 3 4 -0.40294344815784D-15 0.00000000000000D+00 + 2 2 3 4 0.32380260136706D+01 0.12663664898446D-14 + 3 2 3 4 0.18799515609255D-15 0.00000000000000D+00 + 1 3 3 4 -0.38978319248851D+01 0.22076057040891D-14 + 2 3 3 4 0.38978319248851D+01 -0.21198615273679D-14 + 3 3 3 4 0.73488451500406D+01 0.60435845978051D-05 + 1 4 3 4 -0.50187204097757D-13 0.00000000000000D+00 + 2 4 3 4 -0.56732206521034D-13 0.00000000000000D+00 + 3 4 3 4 0.30326938845022D+02 0.00000000000000D+00 + 1 5 3 4 -0.38978319248851D+01 0.50330145096789D-14 + 2 5 3 4 0.38978319248851D+01 -0.54666580112465D-14 + 3 5 3 4 -0.73488451500406D+01 -0.60435845959406D-05 + 1 6 3 4 0.52218972823801D-15 0.00000000000000D+00 + 2 6 3 4 0.85163428878374D-16 0.00000000000000D+00 + 3 6 3 4 0.59356640714377D-16 0.00000000000000D+00 + 1 7 3 4 -0.38978319248852D+01 0.19923307459946D-14 + 2 7 3 4 -0.38978319248851D+01 0.22800132884909D-14 + 3 7 3 4 0.73488451500406D+01 0.60435845987249D-05 + 1 8 3 4 -0.32380260136706D+01 -0.10788718788655D-15 + 2 8 3 4 -0.60226778816364D-16 0.00000000000000D+00 + 3 8 3 4 -0.10920026163156D-17 0.00000000000000D+00 + 1 1 1 5 -0.18832999737059D-14 0.00000000000000D+00 + 2 1 1 5 -0.44177351311670D-15 0.00000000000000D+00 + 3 1 1 5 -0.32380260136706D+01 -0.24248497446230D-14 + 1 2 1 5 -0.73488451500406D+01 -0.60435846008986D-05 + 2 2 1 5 -0.38978319248851D+01 -0.62431434090522D-14 + 3 2 1 5 0.38978319248852D+01 0.62552264319029D-14 + 1 3 1 5 -0.18767950367081D-14 0.00000000000000D+00 + 2 3 1 5 -0.32380260136706D+01 -0.24248474505755D-14 + 3 3 1 5 -0.52197288676932D-15 0.00000000000000D+00 + 1 4 1 5 -0.73488451500406D+01 -0.60435846000827D-05 + 2 4 1 5 0.38978319248852D+01 0.56281542294993D-14 + 3 4 1 5 -0.38978319248851D+01 -0.62273309599798D-14 + 1 5 1 5 0.30326938845022D+02 0.00000000000000D+00 + 2 5 1 5 -0.75004546162348D-13 0.00000000000000D+00 + 3 5 1 5 -0.67896855532712D-13 0.00000000000000D+00 + 1 6 1 5 -0.73488451500406D+01 -0.60435846002492D-05 + 2 6 1 5 0.38978319248852D+01 0.55216838186306D-14 + 3 6 1 5 0.38978319248852D+01 0.60390235616348D-14 + 1 7 1 5 0.20734593358742D-14 0.00000000000000D+00 + 2 7 1 5 0.38912664278899D-15 0.00000000000000D+00 + 3 7 1 5 0.41254540864417D-15 0.00000000000000D+00 + 1 8 1 5 -0.73488451500406D+01 -0.60435845996409D-05 + 2 8 1 5 -0.38978319248851D+01 -0.18507346823324D-14 + 3 8 1 5 -0.38978319248851D+01 -0.79649361397363D-15 + 1 1 2 5 -0.44177351311670D-15 0.00000000000000D+00 + 2 1 2 5 0.52878182233670D-15 0.00000000000000D+00 + 3 1 2 5 -0.69767757731211D-16 0.00000000000000D+00 + 1 2 2 5 -0.38978319248851D+01 -0.62431453236996D-14 + 2 2 2 5 -0.73488451500406D+01 -0.60435846010560D-05 + 3 2 2 5 0.38978319248851D+01 0.62301487844069D-14 + 1 3 2 5 -0.32380260136706D+01 -0.24248473094033D-14 + 2 3 2 5 -0.25433545086922D-14 0.00000000000000D+00 + 3 3 2 5 -0.84729748073381D-16 0.00000000000000D+00 + 1 4 2 5 0.38978319248852D+01 0.56281549618299D-14 + 2 4 2 5 -0.73488451500406D+01 -0.60435846006479D-05 + 3 4 2 5 0.38978319248851D+01 0.66609726263093D-14 + 1 5 2 5 -0.75004546162348D-13 0.00000000000000D+00 + 2 5 2 5 0.30326938845022D+02 0.00000000000000D+00 + 3 5 2 5 -0.74597907766404D-13 0.00000000000000D+00 + 1 6 2 5 0.38978319248852D+01 0.55216847627194D-14 + 2 6 2 5 -0.73488451500406D+01 -0.60435846004909D-05 + 3 6 2 5 -0.38978319248851D+01 -0.60472672472264D-14 + 1 7 2 5 0.38912664272005D-15 0.00000000000000D+00 + 2 7 2 5 -0.22269046228280D-14 0.00000000000000D+00 + 3 7 2 5 -0.32380260136706D+01 -0.24248475564546D-14 + 1 8 2 5 -0.38978319248851D+01 -0.18507336853040D-14 + 2 8 2 5 -0.73488451500406D+01 -0.60435845996386D-05 + 3 8 2 5 -0.38978319248851D+01 -0.57352197964582D-15 + 1 1 3 5 -0.32380260136706D+01 -0.24248484034875D-14 + 2 1 3 5 -0.69767757713979D-16 0.00000000000000D+00 + 3 1 3 5 -0.25504019857679D-14 0.00000000000000D+00 + 1 2 3 5 0.38978319248852D+01 0.62552286906575D-14 + 2 2 3 5 0.38978319248851D+01 0.62301493490955D-14 + 3 2 3 5 -0.73488451500406D+01 -0.60435846005521D-05 + 1 3 3 5 -0.52197288676932D-15 0.00000000000000D+00 + 2 3 3 5 -0.84729748073381D-16 0.00000000000000D+00 + 3 3 3 5 0.67666699245985D-15 0.00000000000000D+00 + 1 4 3 5 -0.38978319248851D+01 -0.62273293717930D-14 + 2 4 3 5 0.38978319248851D+01 0.66609734380492D-14 + 3 4 3 5 -0.73488451500406D+01 -0.60435846016168D-05 + 1 5 3 5 -0.67896855532712D-13 0.00000000000000D+00 + 2 5 3 5 -0.74597907766404D-13 0.00000000000000D+00 + 3 5 3 5 0.30326938845022D+02 0.00000000000000D+00 + 1 6 3 5 0.38978319248852D+01 0.60390222204993D-14 + 2 6 3 5 -0.38978319248851D+01 -0.60472692589297D-14 + 3 6 3 5 -0.73488451500406D+01 -0.60435846005718D-05 + 1 7 3 5 0.41254540864417D-15 0.00000000000000D+00 + 2 7 3 5 -0.32380260136706D+01 -0.24248472035242D-14 + 3 7 3 5 -0.27271572576790D-14 0.00000000000000D+00 + 1 8 3 5 -0.38978319248851D+01 -0.79649573155599D-15 + 2 8 3 5 -0.38978319248851D+01 -0.57352070909640D-15 + 3 8 3 5 -0.73488451500406D+01 -0.60435845991834D-05 + 1 1 1 6 0.73488451500406D+01 0.60435845979469D-05 + 2 1 1 6 0.38978319248851D+01 -0.22020418167303D-14 + 3 1 1 6 -0.38978319248852D+01 0.23801132677378D-14 + 1 2 1 6 -0.44342283565182D-15 0.00000000000000D+00 + 2 2 1 6 0.45196501446864D-15 0.00000000000000D+00 + 3 2 1 6 0.32380260136706D+01 0.12663676898079D-14 + 1 3 1 6 0.73488451500406D+01 0.60435845982960D-05 + 2 3 1 6 -0.38978319248852D+01 0.25663442426001D-14 + 3 3 1 6 0.38978319248851D+01 -0.18000975286484D-14 + 1 4 1 6 -0.44342280742424D-15 0.00000000000000D+00 + 2 4 1 6 0.32380260136706D+01 0.12663665957237D-14 + 3 4 1 6 0.52218972823801D-15 0.00000000000000D+00 + 1 5 1 6 -0.73488451500406D+01 -0.60435845973082D-05 + 2 5 1 6 0.38978319248852D+01 -0.43273712417407D-14 + 3 5 1 6 0.38978319248852D+01 -0.48447070319246D-14 + 1 6 1 6 0.30326938845022D+02 0.00000000000000D+00 + 2 6 1 6 -0.39588328691326D-13 0.00000000000000D+00 + 3 6 1 6 -0.53779356065952D-13 0.00000000000000D+00 + 1 7 1 6 -0.73488451500406D+01 -0.60435845990659D-05 + 2 7 1 6 -0.38978319248851D+01 -0.27226302112818D-16 + 3 7 1 6 -0.38978319248851D+01 0.27758373837627D-15 + 1 8 1 6 0.14929379734134D-14 0.00000000000000D+00 + 2 8 1 6 0.39947400124423D-15 0.00000000000000D+00 + 3 8 1 6 0.40294344814923D-15 0.00000000000000D+00 + 1 1 2 6 0.38978319248851D+01 -0.22020455401460D-14 + 2 1 2 6 0.73488451500406D+01 0.60435845980176D-05 + 3 1 2 6 -0.38978319248851D+01 0.23398067616767D-14 + 1 2 2 6 0.45196501446864D-15 0.00000000000000D+00 + 2 2 2 6 0.59356642997850D-16 0.00000000000000D+00 + 3 2 2 6 0.60226778962844D-16 0.00000000000000D+00 + 1 3 2 6 -0.38978319248852D+01 0.25663442955397D-14 + 2 3 2 6 0.73488451500406D+01 0.60435845979453D-05 + 3 3 2 6 -0.38978319248851D+01 0.21754791118457D-14 + 1 4 2 6 0.32380260136706D+01 0.12663663839655D-14 + 2 4 2 6 0.10920547287289D-17 0.00000000000000D+00 + 3 4 2 6 0.85163428878374D-16 0.00000000000000D+00 + 1 5 2 6 0.38978319248852D+01 -0.43273691329816D-14 + 2 5 2 6 -0.73488451500406D+01 -0.60435845970665D-05 + 3 5 2 6 -0.38978319248851D+01 0.48529526762799D-14 + 1 6 2 6 -0.39588328691326D-13 0.00000000000000D+00 + 2 6 2 6 0.30326938845022D+02 0.00000000000000D+00 + 3 6 2 6 -0.60341157222533D-13 0.00000000000000D+00 + 1 7 2 6 -0.38978319248851D+01 -0.27226116824360D-16 + 2 7 2 6 -0.73488451500406D+01 -0.60435845988582D-05 + 3 7 2 6 -0.38978319248851D+01 -0.37755730813381D-15 + 1 8 2 6 0.39947400124423D-15 0.00000000000000D+00 + 2 8 2 6 0.31225736625929D-15 0.00000000000000D+00 + 3 8 2 6 -0.32380260136706D+01 -0.10788598792321D-15 + 1 1 3 6 -0.38978319248852D+01 0.23801127030491D-14 + 2 1 3 6 -0.38978319248851D+01 0.23398041499917D-14 + 3 1 3 6 0.73488451500406D+01 0.60435845979896D-05 + 1 2 3 6 0.32380260136706D+01 0.12663689603574D-14 + 2 2 3 6 0.60226778876679D-16 0.00000000000000D+00 + 3 2 3 6 0.10920067522187D-17 0.00000000000000D+00 + 1 3 3 6 0.38978319248851D+01 -0.18000965139736D-14 + 2 3 3 6 -0.38978319248851D+01 0.21754794383063D-14 + 3 3 3 6 0.73488451500406D+01 0.60435845977812D-05 + 1 4 3 6 0.52218972823801D-15 0.00000000000000D+00 + 2 4 3 6 0.85163428878374D-16 0.00000000000000D+00 + 3 4 3 6 0.59356640705761D-16 0.00000000000000D+00 + 1 5 3 6 0.38978319248852D+01 -0.48447077819017D-14 + 2 5 3 6 -0.38978319248851D+01 0.48529509733907D-14 + 3 5 3 6 -0.73488451500406D+01 -0.60435845969856D-05 + 1 6 3 6 -0.53779356065952D-13 0.00000000000000D+00 + 2 6 3 6 -0.60341157222533D-13 0.00000000000000D+00 + 3 6 3 6 0.30326938845022D+02 0.00000000000000D+00 + 1 7 3 6 -0.38978319248851D+01 0.27758179725910D-15 + 2 7 3 6 -0.38978319248851D+01 -0.37755720225470D-15 + 3 7 3 6 -0.73488451500406D+01 -0.60435845982687D-05 + 1 8 3 6 0.40294344821816D-15 0.00000000000000D+00 + 2 8 3 6 -0.32380260136706D+01 -0.10788563499282D-15 + 3 8 3 6 -0.18799515195664D-15 0.00000000000000D+00 + 1 1 1 7 -0.29685044677180D-14 0.00000000000000D+00 + 2 1 1 7 0.32380260136706D+01 0.12663665957237D-14 + 3 1 1 7 0.52242336839267D-15 0.00000000000000D+00 + 1 2 1 7 0.73488451500406D+01 0.60435845997645D-05 + 2 2 1 7 -0.38978319248851D+01 -0.40284011693357D-14 + 3 2 1 7 0.38978319248851D+01 0.41239932234353D-14 + 1 3 1 7 -0.29688300021494D-14 0.00000000000000D+00 + 2 3 1 7 0.45176497354739D-15 0.00000000000000D+00 + 3 3 1 7 0.32380260136706D+01 0.12663676898079D-14 + 1 4 1 7 0.73488451500406D+01 0.60435845994256D-05 + 2 4 1 7 0.38978319248851D+01 0.27287423526212D-14 + 3 4 1 7 -0.38978319248852D+01 -0.31866473021746D-14 + 1 5 1 7 0.20734593359948D-14 0.00000000000000D+00 + 2 5 1 7 0.38912664272005D-15 0.00000000000000D+00 + 3 5 1 7 0.41254540864417D-15 0.00000000000000D+00 + 1 6 1 7 -0.73488451500406D+01 -0.60435845984915D-05 + 2 6 1 7 -0.38978319248851D+01 -0.11670900511322D-14 + 3 6 1 7 -0.38978319248851D+01 -0.14719039650324D-14 + 1 7 1 7 0.30326938845022D+02 0.00000000000000D+00 + 2 7 1 7 -0.21713365886989D-13 0.00000000000000D+00 + 3 7 1 7 -0.39475342275687D-14 0.00000000000000D+00 + 1 8 1 7 -0.73488451500406D+01 -0.60435845982499D-05 + 2 8 1 7 0.38978319248851D+01 0.42645199220157D-15 + 3 8 1 7 0.38978319248851D+01 0.12577140176074D-14 + 1 1 2 7 0.32380260136706D+01 0.12663666663098D-14 + 2 1 2 7 -0.23863295288277D-14 0.00000000000000D+00 + 3 1 2 7 0.84946588443876D-16 0.00000000000000D+00 + 1 2 2 7 -0.38978319248851D+01 -0.40284031633925D-14 + 2 2 2 7 0.73488451500406D+01 0.60435845997399D-05 + 3 2 2 7 -0.38978319248851D+01 -0.38573919825323D-14 + 1 3 2 7 0.45176497354739D-15 0.00000000000000D+00 + 2 3 2 7 0.74413873496737D-15 0.00000000000000D+00 + 3 3 2 7 0.60009938476648D-16 0.00000000000000D+00 + 1 4 2 7 0.38978319248851D+01 0.27287411703043D-14 + 2 4 2 7 0.73488451500406D+01 0.60435845991987D-05 + 3 4 2 7 -0.38978319248851D+01 -0.34743271623999D-14 + 1 5 2 7 0.38912664278899D-15 0.00000000000000D+00 + 2 5 2 7 -0.22269046228280D-14 0.00000000000000D+00 + 3 5 2 7 -0.32380260136706D+01 -0.10788619968144D-15 + 1 6 2 7 -0.38978319248851D+01 -0.11670890541039D-14 + 2 6 2 7 -0.73488451500406D+01 -0.60435845986992D-05 + 3 6 2 7 -0.38978319248851D+01 -0.81675924804621D-15 + 1 7 2 7 -0.21713365886989D-13 0.00000000000000D+00 + 2 7 2 7 0.30326938845022D+02 0.00000000000000D+00 + 3 7 2 7 -0.12433542417626D-12 0.00000000000000D+00 + 1 8 2 7 0.38978319248851D+01 0.42645134810360D-15 + 2 8 2 7 -0.73488451500406D+01 -0.60435845989153D-05 + 3 8 2 7 -0.38978319248851D+01 0.32740700703065D-15 + 1 1 3 7 0.52242336839267D-15 0.00000000000000D+00 + 2 1 3 7 0.84946588443876D-16 0.00000000000000D+00 + 3 1 3 7 0.63268274934377D-15 0.00000000000000D+00 + 1 2 3 7 0.38978319248851D+01 0.41239964703949D-14 + 2 2 3 7 -0.38978319248851D+01 -0.38573915590158D-14 + 3 2 3 7 0.73488451500406D+01 0.60435846003771D-05 + 1 3 3 7 0.32380260136706D+01 0.12663689603574D-14 + 2 3 3 7 0.60009938373250D-16 0.00000000000000D+00 + 3 3 3 7 -0.23862212268974D-14 0.00000000000000D+00 + 1 4 3 7 -0.38978319248852D+01 -0.31866477256911D-14 + 2 4 3 7 -0.38978319248851D+01 -0.34743273741581D-14 + 3 4 3 7 0.73488451500406D+01 0.60435845988325D-05 + 1 5 3 7 0.41254540864417D-15 0.00000000000000D+00 + 2 5 3 7 -0.32380260136706D+01 -0.10788556440673D-15 + 3 5 3 7 -0.27271572576790D-14 0.00000000000000D+00 + 1 6 3 7 -0.38978319248851D+01 -0.14719060826148D-14 + 2 6 3 7 -0.38978319248851D+01 -0.81675797749679D-15 + 3 6 3 7 -0.73488451500406D+01 -0.60435845992887D-05 + 1 7 3 7 -0.39475342275687D-14 0.00000000000000D+00 + 2 7 3 7 -0.12433542417626D-12 0.00000000000000D+00 + 3 7 3 7 0.30326938845022D+02 0.00000000000000D+00 + 1 8 3 7 0.38978319248851D+01 0.12577135587979D-14 + 2 8 3 7 -0.38978319248851D+01 0.32740545413691D-15 + 3 8 3 7 -0.73488451500406D+01 -0.60435845988820D-05 + 1 1 1 8 -0.73488451500406D+01 -0.60435845988699D-05 + 2 1 1 8 0.38978319248851D+01 0.21062409401455D-14 + 3 1 1 8 -0.38978319248851D+01 -0.36125799674243D-15 + 1 2 1 8 0.44342281183587D-15 0.00000000000000D+00 + 2 2 1 8 -0.32380260136706D+01 -0.24248477329198D-14 + 3 2 1 8 -0.52218972823801D-15 0.00000000000000D+00 + 1 3 1 8 -0.73488451500406D+01 -0.60435845987080D-05 + 2 3 1 8 -0.38978319248851D+01 -0.52004568975310D-15 + 3 3 1 8 0.38978319248851D+01 -0.53970060310087D-16 + 1 4 1 8 0.44342283951200D-15 0.00000000000000D+00 + 2 4 1 8 -0.45196501446864D-15 0.00000000000000D+00 + 3 4 1 8 -0.32380260136706D+01 -0.24248497446230D-14 + 1 5 1 8 -0.73488451500406D+01 -0.60435845979165D-05 + 2 5 1 8 -0.38978319248851D+01 0.65641832908731D-15 + 3 5 1 8 -0.38978319248851D+01 -0.39782661268250D-15 + 1 6 1 8 0.14929379732583D-14 0.00000000000000D+00 + 2 6 1 8 0.39947400124423D-15 0.00000000000000D+00 + 3 6 1 8 0.40294344821816D-15 0.00000000000000D+00 + 1 7 1 8 -0.73488451500406D+01 -0.60435845993075D-05 + 2 7 1 8 0.38978319248851D+01 0.76786379635484D-15 + 3 7 1 8 0.38978319248851D+01 -0.63391735131768D-16 + 1 8 1 8 0.30326938845022D+02 0.00000000000000D+00 + 2 8 1 8 0.21007208506648D-13 0.00000000000000D+00 + 3 8 1 8 -0.10947156868983D-13 0.00000000000000D+00 + 1 1 2 8 0.38978319248851D+01 0.21062403136940D-14 + 2 1 2 8 -0.73488451500406D+01 -0.60435845984719D-05 + 3 1 2 8 0.38978319248851D+01 0.71543021834355D-15 + 1 2 2 8 -0.32380260136706D+01 -0.24248470270590D-14 + 2 2 2 8 -0.10920550044557D-17 0.00000000000000D+00 + 3 2 2 8 -0.85163428878374D-16 0.00000000000000D+00 + 1 3 2 8 -0.38978319248851D+01 -0.52004723382357D-15 + 2 3 2 8 -0.73488451500406D+01 -0.60435845990312D-05 + 3 3 2 8 0.38978319248850D+01 0.60723024925736D-15 + 1 4 2 8 -0.45196501446864D-15 0.00000000000000D+00 + 2 4 2 8 -0.59356642885836D-16 0.00000000000000D+00 + 3 4 2 8 -0.60226779023159D-16 0.00000000000000D+00 + 1 5 2 8 -0.38978319248851D+01 0.65641851437577D-15 + 2 5 2 8 -0.73488451500406D+01 -0.60435845979188D-05 + 3 5 2 8 -0.38978319248851D+01 -0.62079457653420D-15 + 1 6 2 8 0.39947400124423D-15 0.00000000000000D+00 + 2 6 2 8 0.31225736184766D-15 0.00000000000000D+00 + 3 6 2 8 -0.32380260136706D+01 -0.24248476270407D-14 + 1 7 2 8 0.38978319248851D+01 0.76786399928982D-15 + 2 7 2 8 -0.73488451500406D+01 -0.60435845986422D-05 + 3 7 2 8 -0.38978319248851D+01 -0.15217213309259D-14 + 1 8 2 8 0.21007208506648D-13 0.00000000000000D+00 + 2 8 2 8 0.30326938845022D+02 0.00000000000000D+00 + 3 8 2 8 -0.14223495965831D-13 0.00000000000000D+00 + 1 1 3 8 -0.38978319248851D+01 -0.36125483801539D-15 + 2 1 3 8 0.38978319248851D+01 0.71543030657615D-15 + 3 1 3 8 -0.73488451500406D+01 -0.60435845986331D-05 + 1 2 3 8 -0.52218972823801D-15 0.00000000000000D+00 + 2 2 3 8 -0.85163428878374D-16 0.00000000000000D+00 + 3 2 3 8 -0.59356640593747D-16 0.00000000000000D+00 + 1 3 3 8 0.38978319248851D+01 -0.53968507416350D-16 + 2 3 3 8 0.38978319248850D+01 0.60722964927568D-15 + 3 3 3 8 -0.73488451500406D+01 -0.60435845984901D-05 + 1 4 3 8 -0.32380260136706D+01 -0.24248486858319D-14 + 2 4 3 8 -0.60226778954227D-16 0.00000000000000D+00 + 3 4 3 8 -0.10920070279456D-17 0.00000000000000D+00 + 1 5 3 8 -0.38978319248851D+01 -0.39782855379967D-15 + 2 5 3 8 -0.38978319248851D+01 -0.62079447065509D-15 + 3 5 3 8 -0.73488451500406D+01 -0.60435845983740D-05 + 1 6 3 8 0.40294344814923D-15 0.00000000000000D+00 + 2 6 3 8 -0.32380260136706D+01 -0.24248469917660D-14 + 3 6 3 8 -0.18799515636827D-15 0.00000000000000D+00 + 1 7 3 8 0.38978319248851D+01 -0.63391849834146D-16 + 2 7 3 8 -0.38978319248851D+01 -0.15217228573499D-14 + 3 7 3 8 -0.73488451500406D+01 -0.60435845986754D-05 + 1 8 3 8 -0.10947156868983D-13 0.00000000000000D+00 + 2 8 3 8 -0.14223495965831D-13 0.00000000000000D+00 + 3 8 3 8 0.30326938845022D+02 0.00000000000000D+00 diff --git a/abipy/data/refs/embedding_ifc/C_interstitial_DDB b/abipy/data/refs/embedding_ifc/C_interstitial_DDB new file mode 100644 index 000000000..52b5e736b --- /dev/null +++ b/abipy/data/refs/embedding_ifc/C_interstitial_DDB @@ -0,0 +1,38599 @@ + + **** DERIVATIVE DATABASE **** ++DDB, Version number 20230401 + + DDB file merged by PhononWork on Fri Nov 10 13:06:18 2023 + + usepaw 0 + natom 65 + nkpt 1 + nsppol 1 + nsym 8 + ntypat 1 + occopt 7 + nband 163 + acell 0.10000000000000D+01 0.10000000000000D+01 0.10000000000000D+01 + amu 0.12011000000000D+02 + dilatmx 0.10000000000000D+01 + ecut 0.10000000000000D+02 + ecutsm 0.00000000000000D+00 + intxc 0 + iscf 7 + ixc 11 + kpt 0.50000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + kptnrm 0.10000000000000D+01 + ngfft 40 40 40 + nspden 1 + nspinor 1 + occ 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.10000000001569D+01 0.99999999984550D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 + rprim 0.13506666297700D+02 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.13506666297700D+02 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.13506666297700D+02 + dfpt_sciss 0.00000000000000D+00 + spinat 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + symafm 1 1 1 1 1 1 1 1 + symrel 1 0 0 0 1 0 0 0 1 + -1 0 0 0 1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 + 1 0 0 0 -1 0 0 0 -1 + 1 0 0 0 0 1 0 1 0 + -1 0 0 0 0 1 0 -1 0 + -1 0 0 0 0 -1 0 1 0 + 1 0 0 0 0 -1 0 -1 0 + tnons 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + tolwfr 0.10000000000000D+01 + tphysel 0.00000000000000D+00 + tsmear 0.10000000000000D-01 + typat 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 + wtk 0.10000000000000D+01 + xred 0.12049617000000D+00 0.37284782000000D+00 0.12284782000000D+00 + 0.12176467000000D+00 0.37369655000000D+00 0.63001645000000D+00 + 0.12176467000000D+00 0.88001645000000D+00 0.12369655000000D+00 + 0.12615653000000D+00 0.87555479000000D+00 0.62555479000000D+00 + 0.65186562000000D+00 0.36388721000000D+00 0.11388721000000D+00 + 0.62477780000000D+00 0.37657635000000D+00 0.62356158000000D+00 + 0.62477780000000D+00 0.87356158000000D+00 0.12657635000000D+00 + 0.62415861000000D+00 0.87455381000000D+00 0.62455381000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.75000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.75000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.75000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.75000000000000D+00 + 0.12176467000000D+00 0.11998355000000D+00 0.37630345000000D+00 + 0.12615653000000D+00 0.12444521000000D+00 0.87444521000000D+00 + 0.12049617000000D+00 0.62715218000000D+00 0.37715218000000D+00 + 0.12176467000000D+00 0.62630345000000D+00 0.86998355000000D+00 + 0.62477780000000D+00 0.12643842000000D+00 0.37342365000000D+00 + 0.62415861000000D+00 0.12544619000000D+00 0.87544619000000D+00 + 0.65186562000000D+00 0.63611279000000D+00 0.38611279000000D+00 + 0.62477780000000D+00 0.62342365000000D+00 0.87643842000000D+00 + 0.99879738000000D+00 0.24766161000000D+00 0.99766161000000D+00 + 0.12026200000000D-02 0.24766161000000D+00 0.50233839000000D+00 + 0.12026200000000D-02 0.75233839000000D+00 0.99766161000000D+00 + 0.99879738000000D+00 0.75233839000000D+00 0.50233839000000D+00 + 0.50160102000000D+00 0.25273339000000D+00 0.27333900000000D-02 + 0.49839898000000D+00 0.25273339000000D+00 0.49726661000000D+00 + 0.49839898000000D+00 0.74726661000000D+00 0.27333900000000D-02 + 0.50160102000000D+00 0.74726661000000D+00 0.49726661000000D+00 + 0.34813438000000D+00 0.36388721000000D+00 0.38611279000000D+00 + 0.37522220000000D+00 0.37657635000000D+00 0.87643842000000D+00 + 0.37522220000000D+00 0.87356158000000D+00 0.37342365000000D+00 + 0.37584139000000D+00 0.87455381000000D+00 0.87544619000000D+00 + 0.87950383000000D+00 0.37284782000000D+00 0.37715218000000D+00 + 0.87823533000000D+00 0.37369655000000D+00 0.86998355000000D+00 + 0.87823533000000D+00 0.88001645000000D+00 0.37630345000000D+00 + 0.87384347000000D+00 0.87555479000000D+00 0.87444521000000D+00 + 0.25125541000000D+00 0.11161400000000D-02 0.21920000000000D-04 + 0.25125541000000D+00 0.99888386000000D+00 0.49997808000000D+00 + 0.23978056000000D+00 0.49952709000000D+00 0.99262847000000D+00 + 0.23978056000000D+00 0.50047291000000D+00 0.50737153000000D+00 + 0.74874459000000D+00 0.99888386000000D+00 0.21920000000000D-04 + 0.74874459000000D+00 0.11161400000000D-02 0.49997808000000D+00 + 0.76021944000000D+00 0.50047291000000D+00 0.99262847000000D+00 + 0.76021944000000D+00 0.49952709000000D+00 0.50737153000000D+00 + 0.37522220000000D+00 0.12643842000000D+00 0.12657635000000D+00 + 0.37584139000000D+00 0.12544619000000D+00 0.62455381000000D+00 + 0.34813438000000D+00 0.63611279000000D+00 0.11388721000000D+00 + 0.37522220000000D+00 0.62342365000000D+00 0.62356158000000D+00 + 0.87823533000000D+00 0.11998355000000D+00 0.12369655000000D+00 + 0.87384347000000D+00 0.12444521000000D+00 0.62555479000000D+00 + 0.87950383000000D+00 0.62715218000000D+00 0.12284782000000D+00 + 0.87823533000000D+00 0.62630345000000D+00 0.63001645000000D+00 + 0.23978056000000D+00 0.24262847000000D+00 0.24952709000000D+00 + 0.25125541000000D+00 0.25002192000000D+00 0.75111614000000D+00 + 0.23978056000000D+00 0.75737153000000D+00 0.25047291000000D+00 + 0.25125541000000D+00 0.74997808000000D+00 0.74888386000000D+00 + 0.76021944000000D+00 0.24262847000000D+00 0.25047291000000D+00 + 0.74874459000000D+00 0.25002192000000D+00 0.74888386000000D+00 + 0.76021944000000D+00 0.75737153000000D+00 0.24952709000000D+00 + 0.74874459000000D+00 0.74997808000000D+00 0.75111614000000D+00 + 0.59384663000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.40615337000000D+00 0.50000000000000D+00 0.25000000000000D+00 + znucl 0.60000000000000D+01 + zion 0.40000000000000D+01 + + Description of the potentials (KB energies) + vrsio8 (for pseudopotentials)=100401 + usepaw = 0 + dimekb = 4 lmnmax= 4 + Atom type= 1 pspso= 0 nekb= 4 + iln lpsang iproj ekb(:) + 1 0 1 6.4815482E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 2 0 2 0.0000000E+00 3.8550364E-01 0.0000000E+00 0.0000000E+00 + 3 1 1 0.0000000E+00 0.0000000E+00 -4.1999614E+00 0.0000000E+00 + 4 1 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 -8.7751666E-01 + + **** Database of total energy derivatives **** + Number of data blocks= 3 + + 1st derivatives - # elements : 201 + 1 1 0.10836129981637D-02 0.00000000000000D+00 + 2 1 0.90524208916633D-03 0.00000000000000D+00 + 3 1 0.90524208916633D-03 0.00000000000000D+00 + 1 2 -0.58753949098647D-03 0.00000000000000D+00 + 2 2 -0.95936892918703D-02 0.00000000000000D+00 + 3 2 -0.37544688835680D-02 0.00000000000000D+00 + 1 3 -0.58753949098647D-03 0.00000000000000D+00 + 2 3 -0.37544688835680D-02 0.00000000000000D+00 + 3 3 -0.95936892918703D-02 0.00000000000000D+00 + 1 4 -0.72098884237587D-02 0.00000000000000D+00 + 2 4 0.49096120374045D-03 0.00000000000000D+00 + 3 4 0.49096120374045D-03 0.00000000000000D+00 + 1 5 -0.61795242044857D-01 0.00000000000000D+00 + 2 5 0.73107006690985D-02 0.00000000000000D+00 + 3 5 0.73107006690985D-02 0.00000000000000D+00 + 1 6 0.76405724635267D-02 0.00000000000000D+00 + 2 6 -0.32378045311780D-02 0.00000000000000D+00 + 3 6 0.60416324473234D-02 0.00000000000000D+00 + 1 7 0.76405724635267D-02 0.00000000000000D+00 + 2 7 0.60416324473234D-02 0.00000000000000D+00 + 3 7 -0.32378045311780D-02 0.00000000000000D+00 + 1 8 0.34683133775931D-02 0.00000000000000D+00 + 2 8 -0.42531954775092D-02 0.00000000000000D+00 + 3 8 -0.42531954775092D-02 0.00000000000000D+00 + 1 9 0.00000000000000D+00 0.00000000000000D+00 + 2 9 0.00000000000000D+00 0.00000000000000D+00 + 3 9 0.00000000000000D+00 0.00000000000000D+00 + 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 11 0.00000000000000D+00 0.00000000000000D+00 + 2 11 0.00000000000000D+00 0.00000000000000D+00 + 3 11 0.00000000000000D+00 0.00000000000000D+00 + 1 12 0.00000000000000D+00 0.00000000000000D+00 + 2 12 0.00000000000000D+00 0.00000000000000D+00 + 3 12 0.00000000000000D+00 0.00000000000000D+00 + 1 13 0.00000000000000D+00 0.00000000000000D+00 + 2 13 0.00000000000000D+00 0.00000000000000D+00 + 3 13 0.00000000000000D+00 0.00000000000000D+00 + 1 14 0.00000000000000D+00 0.00000000000000D+00 + 2 14 0.00000000000000D+00 0.00000000000000D+00 + 3 14 0.00000000000000D+00 0.00000000000000D+00 + 1 15 0.00000000000000D+00 0.00000000000000D+00 + 2 15 0.00000000000000D+00 0.00000000000000D+00 + 3 15 0.00000000000000D+00 0.00000000000000D+00 + 1 16 -0.58753949098647D-03 0.00000000000000D+00 + 2 16 0.37544688835680D-02 0.00000000000000D+00 + 3 16 0.95936892918703D-02 0.00000000000000D+00 + 1 17 -0.72098884237587D-02 0.00000000000000D+00 + 2 17 -0.49096120374045D-03 0.00000000000000D+00 + 3 17 -0.49096120374045D-03 0.00000000000000D+00 + 1 18 0.10836129981637D-02 0.00000000000000D+00 + 2 18 -0.90524208916633D-03 0.00000000000000D+00 + 3 18 -0.90524208916633D-03 0.00000000000000D+00 + 1 19 -0.58753949098647D-03 0.00000000000000D+00 + 2 19 0.95936892918703D-02 0.00000000000000D+00 + 3 19 0.37544688835680D-02 0.00000000000000D+00 + 1 20 0.76405724635267D-02 0.00000000000000D+00 + 2 20 -0.60416324473234D-02 0.00000000000000D+00 + 3 20 0.32378045311780D-02 0.00000000000000D+00 + 1 21 0.34683133775931D-02 0.00000000000000D+00 + 2 21 0.42531954775092D-02 0.00000000000000D+00 + 3 21 0.42531954775092D-02 0.00000000000000D+00 + 1 22 -0.61795242044857D-01 0.00000000000000D+00 + 2 22 -0.73107006690985D-02 0.00000000000000D+00 + 3 22 -0.73107006690985D-02 0.00000000000000D+00 + 1 23 0.76405724635267D-02 0.00000000000000D+00 + 2 23 0.32378045311780D-02 0.00000000000000D+00 + 3 23 -0.60416324473234D-02 0.00000000000000D+00 + 1 24 0.39412168098603D-02 0.00000000000000D+00 + 2 24 -0.54313656003273D-02 0.00000000000000D+00 + 3 24 -0.54313656003273D-02 0.00000000000000D+00 + 1 25 -0.39412168098603D-02 0.00000000000000D+00 + 2 25 -0.54313656003273D-02 0.00000000000000D+00 + 3 25 0.54313656003273D-02 0.00000000000000D+00 + 1 26 -0.39412168098603D-02 0.00000000000000D+00 + 2 26 0.54313656003273D-02 0.00000000000000D+00 + 3 26 -0.54313656003273D-02 0.00000000000000D+00 + 1 27 0.39412168098603D-02 0.00000000000000D+00 + 2 27 0.54313656003273D-02 0.00000000000000D+00 + 3 27 0.54313656003273D-02 0.00000000000000D+00 + 1 28 0.58319115526894D-02 0.00000000000000D+00 + 2 28 -0.11371363320871D-01 0.00000000000000D+00 + 3 28 -0.11371363320871D-01 0.00000000000000D+00 + 1 29 -0.58319115526894D-02 0.00000000000000D+00 + 2 29 -0.11371363320871D-01 0.00000000000000D+00 + 3 29 0.11371363320871D-01 0.00000000000000D+00 + 1 30 -0.58319115526894D-02 0.00000000000000D+00 + 2 30 0.11371363320871D-01 0.00000000000000D+00 + 3 30 -0.11371363320871D-01 0.00000000000000D+00 + 1 31 0.58319115526894D-02 0.00000000000000D+00 + 2 31 0.11371363320871D-01 0.00000000000000D+00 + 3 31 0.11371363320871D-01 0.00000000000000D+00 + 1 32 0.61795242044857D-01 0.00000000000000D+00 + 2 32 0.73107006690985D-02 0.00000000000000D+00 + 3 32 -0.73107006690985D-02 0.00000000000000D+00 + 1 33 -0.76405724635267D-02 0.00000000000000D+00 + 2 33 -0.32378045311780D-02 0.00000000000000D+00 + 3 33 -0.60416324473234D-02 0.00000000000000D+00 + 1 34 -0.76405724635267D-02 0.00000000000000D+00 + 2 34 0.60416324473234D-02 0.00000000000000D+00 + 3 34 0.32378045311780D-02 0.00000000000000D+00 + 1 35 -0.34683133775931D-02 0.00000000000000D+00 + 2 35 -0.42531954775092D-02 0.00000000000000D+00 + 3 35 0.42531954775092D-02 0.00000000000000D+00 + 1 36 -0.10836129981637D-02 0.00000000000000D+00 + 2 36 0.90524208916633D-03 0.00000000000000D+00 + 3 36 -0.90524208916633D-03 0.00000000000000D+00 + 1 37 0.58753949098647D-03 0.00000000000000D+00 + 2 37 -0.95936892918703D-02 0.00000000000000D+00 + 3 37 0.37544688835680D-02 0.00000000000000D+00 + 1 38 0.58753949098647D-03 0.00000000000000D+00 + 2 38 -0.37544688835680D-02 0.00000000000000D+00 + 3 38 0.95936892918703D-02 0.00000000000000D+00 + 1 39 0.72098884237587D-02 0.00000000000000D+00 + 2 39 0.49096120374045D-03 0.00000000000000D+00 + 3 39 -0.49096120374045D-03 0.00000000000000D+00 + 1 40 -0.74996992401940D-02 0.00000000000000D+00 + 2 40 0.15686336110035D-02 0.00000000000000D+00 + 3 40 0.10688694431806D-02 0.00000000000000D+00 + 1 41 -0.74996992401940D-02 0.00000000000000D+00 + 2 41 -0.15686336110035D-02 0.00000000000000D+00 + 3 41 -0.10688694431806D-02 0.00000000000000D+00 + 1 42 0.16057902992149D-02 0.00000000000000D+00 + 2 42 -0.49797428449669D-02 0.00000000000000D+00 + 3 42 0.60394766938870D-02 0.00000000000000D+00 + 1 43 0.16057902992149D-02 0.00000000000000D+00 + 2 43 0.49797428449669D-02 0.00000000000000D+00 + 3 43 -0.60394766938870D-02 0.00000000000000D+00 + 1 44 0.74996992401940D-02 0.00000000000000D+00 + 2 44 -0.15686336110035D-02 0.00000000000000D+00 + 3 44 0.10688694431806D-02 0.00000000000000D+00 + 1 45 0.74996992401940D-02 0.00000000000000D+00 + 2 45 0.15686336110035D-02 0.00000000000000D+00 + 3 45 -0.10688694431806D-02 0.00000000000000D+00 + 1 46 -0.16057902992149D-02 0.00000000000000D+00 + 2 46 0.49797428449669D-02 0.00000000000000D+00 + 3 46 0.60394766938870D-02 0.00000000000000D+00 + 1 47 -0.16057902992149D-02 0.00000000000000D+00 + 2 47 -0.49797428449669D-02 0.00000000000000D+00 + 3 47 -0.60394766938870D-02 0.00000000000000D+00 + 1 48 -0.76405724635267D-02 0.00000000000000D+00 + 2 48 -0.60416324473234D-02 0.00000000000000D+00 + 3 48 -0.32378045311780D-02 0.00000000000000D+00 + 1 49 -0.34683133775931D-02 0.00000000000000D+00 + 2 49 0.42531954775092D-02 0.00000000000000D+00 + 3 49 -0.42531954775092D-02 0.00000000000000D+00 + 1 50 0.61795242044857D-01 0.00000000000000D+00 + 2 50 -0.73107006690985D-02 0.00000000000000D+00 + 3 50 0.73107006690985D-02 0.00000000000000D+00 + 1 51 -0.76405724635267D-02 0.00000000000000D+00 + 2 51 0.32378045311780D-02 0.00000000000000D+00 + 3 51 0.60416324473234D-02 0.00000000000000D+00 + 1 52 0.58753949098647D-03 0.00000000000000D+00 + 2 52 0.37544688835680D-02 0.00000000000000D+00 + 3 52 -0.95936892918703D-02 0.00000000000000D+00 + 1 53 0.72098884237587D-02 0.00000000000000D+00 + 2 53 -0.49096120374045D-03 0.00000000000000D+00 + 3 53 0.49096120374045D-03 0.00000000000000D+00 + 1 54 -0.10836129981637D-02 0.00000000000000D+00 + 2 54 -0.90524208916633D-03 0.00000000000000D+00 + 3 54 0.90524208916633D-03 0.00000000000000D+00 + 1 55 0.58753949098647D-03 0.00000000000000D+00 + 2 55 0.95936892918703D-02 0.00000000000000D+00 + 3 55 -0.37544688835680D-02 0.00000000000000D+00 + 1 56 0.16057902992149D-02 0.00000000000000D+00 + 2 56 0.60394766938870D-02 0.00000000000000D+00 + 3 56 -0.49797428449669D-02 0.00000000000000D+00 + 1 57 -0.74996992401940D-02 0.00000000000000D+00 + 2 57 0.10688694431806D-02 0.00000000000000D+00 + 3 57 0.15686336110035D-02 0.00000000000000D+00 + 1 58 0.16057902992149D-02 0.00000000000000D+00 + 2 58 -0.60394766938870D-02 0.00000000000000D+00 + 3 58 0.49797428449669D-02 0.00000000000000D+00 + 1 59 -0.74996992401940D-02 0.00000000000000D+00 + 2 59 -0.10688694431806D-02 0.00000000000000D+00 + 3 59 -0.15686336110035D-02 0.00000000000000D+00 + 1 60 -0.16057902992149D-02 0.00000000000000D+00 + 2 60 0.60394766938870D-02 0.00000000000000D+00 + 3 60 0.49797428449669D-02 0.00000000000000D+00 + 1 61 0.74996992401940D-02 0.00000000000000D+00 + 2 61 0.10688694431806D-02 0.00000000000000D+00 + 3 61 -0.15686336110035D-02 0.00000000000000D+00 + 1 62 -0.16057902992149D-02 0.00000000000000D+00 + 2 62 -0.60394766938870D-02 0.00000000000000D+00 + 3 62 -0.49797428449669D-02 0.00000000000000D+00 + 1 63 0.74996992401940D-02 0.00000000000000D+00 + 2 63 -0.10688694431806D-02 0.00000000000000D+00 + 3 63 0.15686336110035D-02 0.00000000000000D+00 + 1 64 0.70693271493969D-01 0.00000000000000D+00 + 2 64 0.00000000000000D+00 0.00000000000000D+00 + 3 64 0.00000000000000D+00 0.00000000000000D+00 + 1 65 -0.70693271493969D-01 0.00000000000000D+00 + 2 65 0.00000000000000D+00 0.00000000000000D+00 + 3 65 0.00000000000000D+00 0.00000000000000D+00 + 1 68 0.34424605853278D-02 0.00000000000000D+00 + 2 68 0.39767041772515D-02 0.00000000000000D+00 + 3 68 0.39767041772515D-02 0.00000000000000D+00 + 1 69 0.00000000000000D+00 0.00000000000000D+00 + 2 69 0.00000000000000D+00 0.00000000000000D+00 + 3 69 0.00000000000000D+00 0.00000000000000D+00 + + Total energy - # elements : 1 + -0.38027583000400D+03 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 38131 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.11883582222689D+03 0.00000000000000D+00 + 2 1 1 1 0.11926800466264D+01 0.00000000000000D+00 + 3 1 1 1 0.11926800466266D+01 0.00000000000000D+00 + 1 2 1 1 -0.22583673303680D+00 0.39325360357296D-17 + 2 2 1 1 -0.20095775691119D-01 -0.60825999501554D-18 + 3 2 1 1 -0.80488204615413D-03 0.15501917780284D-17 + 1 3 1 1 -0.22583673303681D+00 -0.50699118418401D-18 + 2 3 1 1 -0.80488204615416D-03 0.11530948462801D-17 + 3 3 1 1 -0.20095775691119D-01 -0.53737922943046D-18 + 1 4 1 1 0.15680213486448D+01 -0.13617962352661D-17 + 2 4 1 1 0.34565694143064D-01 -0.16741826306766D-17 + 3 4 1 1 0.34565694143064D-01 -0.68476365931136D-19 + 1 5 1 1 -0.40109275971455D+00 0.39497017890337D-16 + 2 5 1 1 -0.68047619236457D-01 0.52087688811097D-17 + 3 5 1 1 -0.68047619236457D-01 0.12935148901968D-17 + 1 6 1 1 -0.10369009279272D+00 -0.54960853938657D-17 + 2 6 1 1 -0.24861959050637D-01 -0.18615732894699D-18 + 3 6 1 1 0.13312149805397D-01 0.19512908395596D-17 + 1 7 1 1 -0.10369009279272D+00 0.51142338918633D-17 + 2 7 1 1 0.13312149805395D-01 0.26754007861549D-18 + 3 7 1 1 -0.24861959050637D-01 -0.53969810257658D-17 + 1 8 1 1 -0.10055294059491D+00 0.67599390275980D-19 + 2 8 1 1 0.14934656076212D-01 -0.34410277163153D-18 + 3 8 1 1 0.14934656076213D-01 0.29629720113935D-18 + 1 9 1 1 0.27072631859939D+00 0.16038718594790D-15 + 2 9 1 1 0.31256916911060D+00 0.12129823202692D-17 + 3 9 1 1 -0.30357372278450D+00 0.18835285200913D-16 + 1 10 1 1 -0.79488159831361D+00 0.10735688003511D-15 + 2 10 1 1 0.44289771937658D+00 -0.45583633219965D-17 + 3 10 1 1 0.44289771937658D+00 -0.91089448905381D-17 + 1 11 1 1 -0.26004761419979D+02 -0.23107331094725D-15 + 2 11 1 1 0.13680820868450D+02 0.19638010610351D-16 + 3 11 1 1 0.13680820868450D+02 -0.38240674517582D-16 + 1 12 1 1 0.27072631859939D+00 -0.76931069829943D-16 + 2 12 1 1 -0.30357372278450D+00 0.31293189434743D-16 + 3 12 1 1 0.31256916911060D+00 -0.32996547443857D-16 + 1 13 1 1 -0.36415063882437D+00 0.13678153256148D-15 + 2 13 1 1 0.38417593010425D+00 0.30548764258599D-16 + 3 13 1 1 0.50513314278052D+00 -0.12903551922430D-17 + 1 14 1 1 0.28943709331825D+00 0.24644124398707D-15 + 2 14 1 1 0.14630111665334D-01 -0.93983546448697D-17 + 3 14 1 1 0.14630111665334D-01 0.16632431961330D-16 + 1 15 1 1 -0.36415063882438D+00 0.71291120297174D-16 + 2 15 1 1 0.50513314278052D+00 -0.27549815569560D-16 + 3 15 1 1 0.38417593010425D+00 0.10654798641164D-16 + 1 16 1 1 0.30385091776968D+01 -0.17286526475774D-16 + 2 16 1 1 -0.12138580036775D+01 0.20248125158831D-16 + 3 16 1 1 0.12828034165548D+01 -0.22428186855840D-17 + 1 17 1 1 0.30824006681923D+01 -0.25248548117808D-15 + 2 17 1 1 0.14676609476163D+01 0.88829876061579D-17 + 3 17 1 1 0.14676609476163D+01 -0.17179846894520D-16 + 1 18 1 1 0.33172086175472D+01 0.12344673587388D-15 + 2 18 1 1 -0.12700720656505D+01 -0.13685536231863D-16 + 3 18 1 1 -0.12700720656505D+01 -0.98254435774798D-17 + 1 19 1 1 0.30385091776969D+01 0.83599138858096D-16 + 2 19 1 1 0.12828034165548D+01 -0.25397960872248D-16 + 3 19 1 1 -0.12138580036775D+01 -0.13741384494681D-16 + 1 20 1 1 -0.19885450472417D-01 -0.40863068396414D-16 + 2 20 1 1 -0.54960985429206D-01 -0.94426678049469D-17 + 3 20 1 1 0.11018956029346D+00 -0.13320222854751D-16 + 1 21 1 1 0.49215479792284D-01 0.12411176707531D-15 + 2 21 1 1 0.11676445661641D+00 -0.17364304202238D-16 + 3 21 1 1 0.11676445661642D+00 0.88915283451293D-17 + 1 22 1 1 -0.59361263754473D-01 0.29532009244176D-16 + 2 22 1 1 -0.13441851649688D+00 0.21116632321046D-16 + 3 22 1 1 -0.13441851649688D+00 -0.33592386646116D-16 + 1 23 1 1 -0.19885450472414D-01 0.45044058624157D-16 + 2 23 1 1 0.11018956029346D+00 0.11474923999897D-16 + 3 23 1 1 -0.54960985429205D-01 0.25978222667257D-16 + 1 24 1 1 -0.26831784449549D+02 0.57741370052612D-17 + 2 24 1 1 -0.15395242367030D+02 -0.25102776582195D-16 + 3 24 1 1 -0.15395242367030D+02 -0.85617301602257D-16 + 1 25 1 1 0.21624829368057D+00 -0.12649252034762D-15 + 2 25 1 1 0.28191177394063D+00 0.12930699287490D-17 + 3 25 1 1 -0.35721281861582D+00 0.69046283835604D-17 + 1 26 1 1 0.21624829368053D+00 0.35850753382571D-16 + 2 26 1 1 -0.35721281861582D+00 -0.13088438477990D-17 + 3 26 1 1 0.28191177394063D+00 -0.65606240598478D-17 + 1 27 1 1 -0.92453050901542D+00 -0.72096332633595D-16 + 2 27 1 1 -0.48877102561256D+00 -0.58024257743626D-17 + 3 27 1 1 -0.48877102561255D+00 -0.52819002418359D-17 + 1 28 1 1 0.45964836441718D+00 0.26806964567474D-15 + 2 28 1 1 -0.43748335270102D+00 0.30959639868009D-16 + 3 28 1 1 -0.43748335270101D+00 0.15041804098888D-16 + 1 29 1 1 -0.23492183623365D+00 -0.14352577678056D-15 + 2 29 1 1 -0.36290693780692D+00 0.20238450969789D-16 + 3 29 1 1 -0.52606372110213D+00 -0.16211248138246D-16 + 1 30 1 1 -0.23492183623367D+00 0.22358277990460D-16 + 2 30 1 1 -0.52606372110213D+00 -0.32754265045294D-18 + 3 30 1 1 -0.36290693780693D+00 0.90531534542670D-17 + 1 31 1 1 0.19865530001746D+00 0.95734826039877D-17 + 2 31 1 1 -0.61658131533780D-01 0.34872919307562D-16 + 3 31 1 1 -0.61658131533781D-01 0.87936554523343D-17 + 1 32 1 1 -0.30801803345459D+01 -0.65550326785309D-16 + 2 32 1 1 0.97182246126536D+00 0.17093233358620D-16 + 3 32 1 1 -0.27304288889754D+01 -0.73459705284080D-17 + 1 33 1 1 -0.30031823137819D+01 0.17390031419068D-15 + 2 33 1 1 -0.14068234245039D+01 -0.31081081508020D-16 + 3 33 1 1 0.33550916598139D+01 -0.17242050270501D-17 + 1 34 1 1 -0.23467698998718D+00 -0.20536124712369D-15 + 2 34 1 1 0.11471479398950D+00 -0.17480763269037D-16 + 3 34 1 1 0.90300250886181D-01 0.34408652084875D-18 + 1 35 1 1 -0.21730179390958D+00 -0.75995121999597D-16 + 2 35 1 1 -0.13479536424725D+00 0.59419649007565D-16 + 3 35 1 1 -0.68866005259074D-01 0.86087185488308D-18 + 1 36 1 1 -0.30386599704316D+01 -0.29714617418703D-15 + 2 36 1 1 0.13681488651771D+01 0.20252971965448D-16 + 3 36 1 1 0.31989593194819D+01 0.82326007816060D-19 + 1 37 1 1 -0.29694333512828D+01 0.21967680326791D-15 + 2 37 1 1 -0.13078588463868D+01 0.73189878736030D-16 + 3 37 1 1 -0.31565116753994D+01 -0.17280449327810D-17 + 1 38 1 1 -0.21100302837231D+00 -0.22043248980788D-15 + 2 38 1 1 0.16758652877981D+00 0.48404725827569D-16 + 3 38 1 1 -0.69182942504181D-01 -0.54739330522562D-17 + 1 39 1 1 -0.22648967574073D+00 -0.22863651025410D-15 + 2 39 1 1 -0.87793578338516D-01 0.16788497159317D-17 + 3 39 1 1 0.99937356912092D-01 -0.86109562301430D-18 + 1 40 1 1 0.20291562690677D+00 -0.58295217235415D-16 + 2 40 1 1 -0.26767530867153D+00 -0.18872318230049D-16 + 3 40 1 1 -0.32023862973356D+00 0.37932445039024D-16 + 1 41 1 1 -0.78592107040989D+00 -0.12014157252260D-15 + 2 41 1 1 -0.44525731202279D+00 0.12804254155932D-16 + 3 41 1 1 0.47064181745670D+00 0.20035848490058D-16 + 1 42 1 1 -0.24223590393392D+02 -0.10938037507841D-15 + 2 42 1 1 -0.12618695132517D+02 -0.10835115320066D-16 + 3 42 1 1 0.13901670395536D+02 0.68797183834911D-16 + 1 43 1 1 0.21582940437262D+00 -0.31862238275162D-16 + 2 43 1 1 0.28753091410638D+00 -0.39009155923886D-16 + 3 43 1 1 0.29934916374172D+00 -0.10651148271533D-16 + 1 44 1 1 -0.46736184534095D+00 0.39344629813503D-16 + 2 44 1 1 -0.48216063573330D+00 0.36969772565356D-16 + 3 44 1 1 0.45135257442484D+00 0.22047863782980D-16 + 1 45 1 1 0.24369046204170D+00 -0.64149780072786D-16 + 2 45 1 1 -0.14456368115461D-01 0.30840822077214D-16 + 3 45 1 1 0.22552624962985D-01 0.83538796819533D-18 + 1 46 1 1 0.12148402283882D+00 0.98660910422507D-16 + 2 46 1 1 -0.20189496355114D+00 -0.23454994293345D-16 + 3 46 1 1 0.16615110843063D+00 -0.81502613334355D-17 + 1 47 1 1 -0.58364062511925D+00 0.12455571185738D-15 + 2 47 1 1 -0.45615503776575D+00 0.12571563433422D-16 + 3 47 1 1 0.58941207799972D+00 0.59593719632586D-17 + 1 48 1 1 -0.30031823137819D+01 0.16023751088433D-15 + 2 48 1 1 0.33550916598139D+01 0.52450920066488D-19 + 3 48 1 1 -0.14068234245039D+01 -0.17885510136430D-15 + 1 49 1 1 -0.21730179390960D+00 0.25465874725180D-17 + 2 49 1 1 -0.68866005259073D-01 0.46520567250840D-18 + 3 49 1 1 -0.13479536424726D+00 0.20810530433719D-16 + 1 50 1 1 -0.30801803345459D+01 -0.28700761492274D-15 + 2 50 1 1 -0.27304288889754D+01 0.19936682461673D-17 + 3 50 1 1 0.97182246126537D+00 -0.63951562603661D-16 + 1 51 1 1 -0.23467698998718D+00 -0.16915883942545D-15 + 2 51 1 1 0.90300250886179D-01 -0.33398970175345D-17 + 3 51 1 1 0.11471479398950D+00 -0.56388501385689D-16 + 1 52 1 1 -0.29694333512828D+01 0.62647913264136D-16 + 2 52 1 1 -0.31565116753994D+01 -0.62573175730381D-18 + 3 52 1 1 -0.13078588463868D+01 -0.30143103042179D-16 + 1 53 1 1 -0.22648967574074D+00 0.32254193572586D-16 + 2 53 1 1 0.99937356912092D-01 -0.43129459601657D-19 + 3 53 1 1 -0.87793578338516D-01 0.63350368113067D-16 + 1 54 1 1 -0.30386599704316D+01 0.30138747318910D-15 + 2 54 1 1 0.31989593194819D+01 0.31072469932402D-17 + 3 54 1 1 0.13681488651771D+01 0.98093982040070D-16 + 1 55 1 1 -0.21100302837231D+00 0.85394907613222D-16 + 2 55 1 1 -0.69182942504181D-01 -0.12956250911450D-18 + 3 55 1 1 0.16758652877981D+00 -0.21008745629605D-16 + 1 56 1 1 -0.24223590393392D+02 -0.86475861420594D-16 + 2 56 1 1 0.13901670395536D+02 0.29125773668581D-16 + 3 56 1 1 -0.12618695132517D+02 -0.33426616755618D-17 + 1 57 1 1 0.20291562690677D+00 -0.85586201591802D-16 + 2 57 1 1 -0.32023862973356D+00 -0.34617174078570D-16 + 3 57 1 1 -0.26767530867153D+00 0.81591896457434D-16 + 1 58 1 1 0.21582940437262D+00 -0.90193879732376D-16 + 2 58 1 1 0.29934916374172D+00 0.16070207718124D-16 + 3 58 1 1 0.28753091410638D+00 -0.29503921569605D-16 + 1 59 1 1 -0.78592107040989D+00 -0.11113051500187D-15 + 2 59 1 1 0.47064181745670D+00 -0.25537045664542D-16 + 3 59 1 1 -0.44525731202280D+00 0.19558163040290D-16 + 1 60 1 1 0.12148402283879D+00 -0.17188849380929D-15 + 2 60 1 1 0.16615110843062D+00 0.10259090469974D-16 + 3 60 1 1 -0.20189496355113D+00 -0.20659687021384D-16 + 1 61 1 1 -0.46736184534094D+00 0.16758804548627D-15 + 2 61 1 1 0.45135257442485D+00 -0.20791389250569D-16 + 3 61 1 1 -0.48216063573330D+00 -0.13990400400215D-16 + 1 62 1 1 -0.58364062511924D+00 0.39413400606345D-15 + 2 62 1 1 0.58941207799972D+00 -0.21346815357312D-16 + 3 62 1 1 -0.45615503776575D+00 -0.17726760522334D-16 + 1 63 1 1 0.24369046204170D+00 -0.18282453567904D-15 + 2 63 1 1 0.22552624962986D-01 0.31707814252356D-16 + 3 63 1 1 -0.14456368115460D-01 -0.38786157930761D-17 + 1 64 1 1 0.47472562476177D-01 0.21313499984770D-16 + 2 64 1 1 -0.91031511570016D-01 0.15965106116683D-16 + 3 64 1 1 -0.91031511570016D-01 -0.68062167553156D-17 + 1 65 1 1 -0.11978192478382D+01 0.45988028036388D-16 + 2 65 1 1 -0.86094463755101D+00 -0.11332383053033D-16 + 3 65 1 1 -0.86015233282600D+00 -0.20928246066015D-16 + 1 1 2 1 0.11926800466264D+01 0.00000000000000D+00 + 2 1 2 1 0.12019081945031D+03 0.00000000000000D+00 + 3 1 2 1 0.24093552634999D+01 0.00000000000000D+00 + 1 2 2 1 0.68881838386677D-01 -0.60825999501554D-18 + 2 2 2 1 -0.29997582769305D+00 0.19140454748379D-18 + 3 2 2 1 -0.75794711745998D-01 0.58156965891878D-19 + 1 3 2 1 -0.71182342370793D-01 0.11530948462801D-17 + 2 3 2 1 -0.36966588801673D+00 -0.14642482578855D-16 + 3 3 2 1 0.63860397410480D-01 0.43552568841801D-17 + 1 4 2 1 -0.52521091841466D-02 -0.16741826306766D-17 + 2 4 2 1 -0.14562371684377D+00 -0.12851469760364D-17 + 3 4 2 1 0.29389480393451D-01 -0.21572416657148D-18 + 1 5 2 1 0.32585525274067D-01 0.52087688811097D-17 + 2 5 2 1 -0.74394943703652D+00 -0.48849330976391D-16 + 3 5 2 1 0.57995663584141D+00 -0.14379787539110D-17 + 1 6 2 1 0.25660247315378D-01 -0.18615732894699D-18 + 2 6 2 1 0.14768947477597D+01 -0.16913642271272D-17 + 3 6 2 1 0.70096081780647D-02 0.21799814429809D-18 + 1 7 2 1 0.36928784194138D-01 0.26754007861549D-18 + 2 7 2 1 -0.10442409181147D+00 0.19440432518176D-17 + 3 7 2 1 -0.44845856798312D-01 0.16671848087162D-17 + 1 8 2 1 0.75447065688487D-03 -0.34410277163153D-18 + 2 8 2 1 -0.79969290519244D-01 -0.12219532856799D-17 + 3 8 2 1 -0.20794212377672D-01 -0.20997033259275D-18 + 1 9 2 1 0.30498051558179D+00 0.12129823202692D-17 + 2 9 2 1 0.39805385148678D+00 -0.30980552133874D-15 + 3 9 2 1 -0.21427852513037D+00 0.80891592184750D-17 + 1 10 2 1 0.49562522807863D+00 -0.45583633219965D-17 + 2 10 2 1 -0.47974736798092D+00 -0.14139824450247D-15 + 3 10 2 1 -0.57577714895615D+00 -0.99226667122391D-16 + 1 11 2 1 0.13966428906661D+02 0.19638010610351D-16 + 2 11 2 1 -0.26380403735131D+02 -0.34209907683995D-15 + 3 11 2 1 -0.14567610441024D+02 0.83678160474515D-17 + 1 12 2 1 -0.26751169750601D+00 0.31293189434743D-16 + 2 12 2 1 0.10545375499441D+00 0.29205754888540D-16 + 3 12 2 1 -0.24199224370542D+00 -0.16563117027066D-16 + 1 13 2 1 0.40590122418774D+00 0.30548764258599D-16 + 2 13 2 1 -0.34998761247846D+00 -0.23729642964474D-15 + 3 13 2 1 -0.44345517655243D+00 -0.27677784398673D-16 + 1 14 2 1 0.35415753449325D-01 -0.93983546448697D-17 + 2 14 2 1 0.26118524991480D+00 -0.49640844090872D-16 + 3 14 2 1 -0.32048390194775D-01 -0.37255204517031D-16 + 1 15 2 1 0.47464923475426D+00 -0.27549815569560D-16 + 2 15 2 1 -0.76994936718329D+00 -0.99319057085662D-16 + 3 15 2 1 -0.45168307234366D+00 0.20043174956583D-16 + 1 16 2 1 0.13146956625237D+01 0.20248125158831D-16 + 2 16 2 1 -0.27516318762314D+01 0.22308685524667D-15 + 3 16 2 1 0.28992922123548D+01 0.24759589230238D-17 + 1 17 2 1 -0.12970359638530D+01 0.88829876061579D-17 + 2 17 2 1 -0.31020751299927D+01 -0.20100360678313D-15 + 3 17 2 1 -0.31423875954876D+01 -0.19832915159909D-18 + 1 18 2 1 0.12700720656505D+01 -0.13685536231863D-16 + 2 18 2 1 -0.29567085927981D+01 0.14494458997973D-16 + 3 18 2 1 -0.30735382688858D+01 -0.49230296645100D-17 + 1 19 2 1 -0.11550108999979D+01 -0.25397960872248D-16 + 2 19 2 1 -0.28512247146025D+01 0.75103987655009D-15 + 3 19 2 1 0.29073230193539D+01 -0.30164809711837D-17 + 1 20 2 1 0.12899902445748D+00 -0.94426678049469D-17 + 2 20 2 1 -0.22758195861379D+00 -0.21538868830163D-16 + 3 20 2 1 -0.90810637626316D-01 -0.79307308430429D-18 + 1 21 2 1 -0.67004752710940D-01 -0.17364304202238D-16 + 2 21 2 1 -0.24047697504348D+00 0.11686308738386D-16 + 3 21 2 1 0.10862185381205D+00 0.11628233193632D-17 + 1 22 2 1 -0.25927238246937D-01 0.21116632321046D-16 + 2 22 2 1 0.54392391872485D+00 0.23161492189694D-15 + 3 22 2 1 -0.62347852797931D+00 -0.78305389439000D-17 + 1 23 2 1 -0.13569498302180D+00 0.11474923999897D-16 + 2 23 2 1 -0.20873637486903D+00 0.27322597494292D-15 + 3 23 2 1 -0.86008039398325D-01 -0.59080098991704D-18 + 1 24 2 1 -0.15024282579784D+02 -0.25102776582195D-16 + 2 24 2 1 -0.27141502431793D+02 0.12306042257201D-15 + 3 24 2 1 -0.15567569530740D+02 -0.77296306779582D-16 + 1 25 2 1 0.31009401544720D+00 0.12930699287490D-17 + 2 25 2 1 0.12151128452325D+00 0.93578724960466D-16 + 3 25 2 1 -0.31355453777296D+00 -0.39776234512009D-16 + 1 26 2 1 -0.34091133366503D+00 -0.13088438477990D-17 + 2 26 2 1 0.56741504705853D+00 -0.20949057187112D-15 + 3 26 2 1 -0.29319084621844D+00 0.29697261252443D-17 + 1 27 2 1 -0.52527277599874D+00 -0.58024257743626D-17 + 2 27 2 1 -0.27661666299410D+00 -0.63071226897274D-16 + 3 27 2 1 -0.40003112545840D+00 -0.65912857045931D-16 + 1 28 2 1 -0.30940070739702D+00 0.30959639868009D-16 + 2 28 2 1 0.16566364622927D+00 -0.39315366782131D-16 + 3 28 2 1 0.30593004354810D+00 0.29065662757005D-16 + 1 29 2 1 -0.17379260137787D+00 0.20238450969789D-16 + 2 29 2 1 -0.62389862780351D+00 0.14172800480248D-15 + 3 29 2 1 -0.52852461919546D+00 -0.13802613320442D-16 + 1 30 2 1 -0.42797690548081D+00 -0.32754265045294D-18 + 2 30 2 1 -0.41444205618786D+00 0.13538633754465D-15 + 3 30 2 1 -0.47410951315899D+00 -0.11147224577864D-16 + 1 31 2 1 -0.36826551461468D-01 0.34872919307562D-16 + 2 31 2 1 0.14046373274300D+00 -0.78340401974542D-16 + 3 31 2 1 -0.19180688496901D-02 0.25074965395339D-17 + 1 32 2 1 -0.21253208600549D+01 0.17093233358620D-16 + 2 32 2 1 0.18056327608835D+01 -0.46154599605008D-16 + 3 32 2 1 -0.20752894122620D+01 0.15659650309857D-16 + 1 33 2 1 0.11823768965084D+01 -0.31081081508020D-16 + 2 33 2 1 0.30155345649138D+01 -0.32925407368915D-16 + 3 33 2 1 -0.12333277166283D+01 -0.52583688074447D-17 + 1 34 2 1 -0.12180751841965D+00 -0.17480763269037D-16 + 2 34 2 1 -0.37214517100027D-02 -0.67042043508305D-16 + 3 34 2 1 -0.13225854204798D+00 -0.10321503213760D-17 + 1 35 2 1 0.90350894191815D-01 0.59419649007565D-16 + 2 35 2 1 -0.15398128284671D-01 0.42009360369187D-17 + 3 35 2 1 -0.44248198131509D-01 -0.58644481317536D-17 + 1 36 2 1 -0.13681488651771D+01 0.20252971965448D-16 + 2 36 2 1 0.29609340178484D+01 0.30087292431458D-16 + 3 36 2 1 0.12700085353062D+01 -0.30143977264384D-16 + 1 37 2 1 0.13216691511330D+01 0.73189878736030D-16 + 2 37 2 1 0.30062117777568D+01 -0.14751979322005D-17 + 3 37 2 1 0.14939482683633D+01 0.30429613831540D-16 + 1 38 2 1 0.25560236999468D-01 0.48404725827569D-16 + 2 38 2 1 0.92045836170674D-01 -0.33312652500823D-16 + 3 38 2 1 0.10708464478094D-01 -0.15599319135033D-16 + 1 39 2 1 0.10378919577470D+00 0.16788497159317D-17 + 2 39 2 1 -0.13044625834252D-02 0.14038958476638D-16 + 3 39 2 1 0.12016519405870D+00 -0.21229566458159D-16 + 1 40 2 1 -0.26756134160942D+00 -0.18872318230049D-16 + 2 40 2 1 0.42850323800122D+00 -0.70114193328676D-16 + 3 40 2 1 0.26183416531372D+00 -0.17667779634364D-16 + 1 41 2 1 -0.47089004501018D+00 0.12804254155932D-16 + 2 41 2 1 -0.32341740368545D+00 0.14478885570285D-16 + 3 41 2 1 0.42846589831313D+00 -0.11038881090477D-16 + 1 42 2 1 -0.11927098542457D+02 -0.10835115320066D-16 + 2 42 2 1 -0.25485998875877D+02 -0.46866551016554D-16 + 3 42 2 1 0.14345599579921D+02 -0.25010471374651D-16 + 1 43 2 1 0.43846442122255D+00 -0.39009155923886D-16 + 2 43 2 1 0.19033349414045D+00 0.28902329429299D-16 + 3 43 2 1 0.24748365031444D+00 0.32032672069167D-16 + 1 44 2 1 -0.55398192425772D+00 0.36969772565356D-16 + 2 44 2 1 -0.45552851098672D+00 0.16012439021786D-15 + 3 44 2 1 0.46496587470431D+00 0.28145996163634D-16 + 1 45 2 1 -0.45448141448589D-01 0.30840822077214D-16 + 2 45 2 1 0.26354632444337D+00 -0.15263084321113D-15 + 3 45 2 1 0.28309789651069D-02 0.16175551890713D-16 + 1 46 2 1 -0.29451899344543D+00 -0.23454994293345D-16 + 2 46 2 1 0.33670670103111D+00 -0.91579327104414D-16 + 3 46 2 1 -0.64823888964957D-01 0.31512006897297D-16 + 1 47 2 1 -0.65896889737925D+00 0.12571563433422D-16 + 2 47 2 1 -0.93113972708093D+00 0.10199892887316D-15 + 3 47 2 1 0.34781997433926D+00 0.16580995226424D-16 + 1 48 2 1 0.30962339742664D+01 0.52450920066488D-19 + 2 48 2 1 -0.29958810583551D+01 -0.17919185815567D-15 + 3 48 2 1 0.11353333223013D+01 -0.60440726704272D-16 + 1 49 2 1 -0.11754640956584D+00 0.46520567250840D-18 + 2 49 2 1 -0.26140025060353D+00 -0.21343658610572D-15 + 3 49 2 1 0.93465445648182D-01 0.30901129281548D-16 + 1 50 2 1 -0.32340459656324D+01 0.19936682461673D-17 + 2 50 2 1 -0.18994089981028D+01 -0.34041364696237D-15 + 3 50 2 1 0.17882170017425D+01 0.64083355308429D-16 + 1 51 2 1 0.96415435917293D-01 -0.33398970175345D-17 + 2 51 2 1 -0.21086672653500D+00 0.21787891674968D-15 + 3 51 2 1 0.86755436131937D-01 0.10702586020703D-15 + 1 52 2 1 -0.31188104911044D+01 -0.62573175730381D-18 + 2 52 2 1 -0.31160979668871D+01 0.23871115373106D-15 + 3 52 2 1 -0.12509767681806D+01 0.48489466496899D-16 + 1 53 2 1 0.98827236061179D-01 -0.43129459601657D-19 + 2 53 2 1 -0.24812961285717D+00 -0.26529979254983D-15 + 3 53 2 1 -0.10609528741851D+00 0.58049471924909D-16 + 1 54 2 1 0.31989593194819D+01 0.31072469932402D-17 + 2 54 2 1 -0.31697061943492D+01 0.16433840204739D-15 + 3 54 2 1 -0.12696454300567D+01 -0.23035486810116D-17 + 1 55 2 1 -0.18875194431668D+00 -0.12956250911450D-18 + 2 55 2 1 -0.15174463442924D+00 -0.22017721482210D-15 + 3 55 2 1 -0.19848275994538D+00 0.28439161691186D-16 + 1 56 2 1 0.13529215902066D+02 0.29125773668581D-16 + 2 56 2 1 -0.26367025656392D+02 -0.53193998032604D-16 + 3 56 2 1 0.14949212088362D+02 0.36573644140472D-16 + 1 57 2 1 -0.34208337300894D+00 -0.34617174078570D-16 + 2 57 2 1 0.23777045636008D+00 0.63868472251086D-16 + 3 57 2 1 0.29554103937407D+00 -0.20100822180259D-16 + 1 58 2 1 0.32434742287267D+00 0.16070207718124D-16 + 2 58 2 1 0.62661665556898D+00 0.10948507171628D-15 + 3 58 2 1 0.15949537106223D+00 0.22158366961324D-17 + 1 59 2 1 0.46029301411802D+00 -0.25537045664542D-16 + 2 59 2 1 -0.34766337276457D+00 -0.16025854320026D-15 + 3 59 2 1 0.43899228290186D+00 0.15812781384093D-16 + 1 60 2 1 0.21488924759002D+00 0.10259090469974D-16 + 2 60 2 1 0.15446028503366D+00 0.25841416511832D-16 + 3 60 2 1 -0.33929061429275D+00 0.20531652734266D-17 + 1 61 2 1 0.42315601101540D+00 -0.20791389250569D-16 + 2 61 2 1 -0.76046130464859D+00 -0.23034314669872D-15 + 3 61 2 1 0.55199541123175D+00 0.87909060604421D-17 + 1 62 2 1 0.74948867391113D+00 -0.21346815357312D-16 + 2 62 2 1 -0.34062346733944D+00 0.84589319800305D-16 + 3 62 2 1 0.61830381521060D+00 -0.11313129656544D-16 + 1 63 2 1 0.67656636498690D-02 0.31707814252356D-16 + 2 63 2 1 0.29116309027544D+00 0.23864050338735D-15 + 3 63 2 1 0.18546293613141D-01 0.94729463888647D-17 + 1 64 2 1 -0.68961132555413D-02 0.15965106116683D-16 + 2 64 2 1 -0.18636859159152D+00 0.17595869781214D-16 + 3 64 2 1 -0.21099244266206D-01 0.20444566865850D-16 + 1 65 2 1 -0.73602774428351D+00 -0.11332383053033D-16 + 2 65 2 1 0.12590272598061D+00 0.66487061700035D-16 + 3 65 2 1 -0.44273459903538D+00 -0.33143236872833D-16 + 1 1 3 1 0.11926800466266D+01 0.00000000000000D+00 + 2 1 3 1 0.24093552634999D+01 0.00000000000000D+00 + 3 1 3 1 0.12019081945031D+03 0.00000000000000D+00 + 1 2 3 1 -0.71182342370793D-01 0.15501917780284D-17 + 2 2 3 1 0.63860397410480D-01 0.58156965891878D-19 + 3 2 3 1 -0.36966588801676D+00 0.15621044268759D-16 + 1 3 3 1 0.68881838386677D-01 -0.53737922943046D-18 + 2 3 3 1 -0.75794711745998D-01 0.43552568841801D-17 + 3 3 3 1 -0.29997582769305D+00 -0.31124313830954D-18 + 1 4 3 1 -0.52521091841386D-02 -0.68476365931136D-19 + 2 4 3 1 0.29389480393451D-01 -0.21572416657148D-18 + 3 4 3 1 -0.14562371684376D+00 0.32674253752848D-17 + 1 5 3 1 0.32585525274078D-01 0.12935148901968D-17 + 2 5 3 1 0.57995663584141D+00 -0.14379787539110D-17 + 3 5 3 1 -0.74394943703653D+00 0.19216906363570D-16 + 1 6 3 1 0.36928784194139D-01 0.19512908395596D-17 + 2 6 3 1 -0.44845856798312D-01 0.21799814429809D-18 + 3 6 3 1 -0.10442409181147D+00 -0.22617696958572D-17 + 1 7 3 1 0.25660247315378D-01 -0.53969810257658D-17 + 2 7 3 1 0.70096081780646D-02 0.16671848087162D-17 + 3 7 3 1 0.14768947477597D+01 -0.28111547694826D-18 + 1 8 3 1 0.75447065688438D-03 0.29629720113935D-18 + 2 8 3 1 -0.20794212377672D-01 -0.20997033259275D-18 + 3 8 3 1 -0.79969290519242D-01 0.53488518799127D-18 + 1 9 3 1 -0.26751169750601D+00 0.18835285200913D-16 + 2 9 3 1 -0.24199224370542D+00 0.80891592184750D-17 + 3 9 3 1 0.10545375499441D+00 0.87322810112211D-16 + 1 10 3 1 0.49562522807862D+00 -0.91089448905381D-17 + 2 10 3 1 -0.57577714895615D+00 -0.99226667122391D-16 + 3 10 3 1 -0.47974736798092D+00 -0.33187491715902D-15 + 1 11 3 1 0.13966428906663D+02 -0.38240674517582D-16 + 2 11 3 1 -0.14567610441024D+02 0.83678160474515D-17 + 3 11 3 1 -0.26380403735131D+02 0.92030102924814D-16 + 1 12 3 1 0.30498051558179D+00 -0.32996547443857D-16 + 2 12 3 1 -0.21427852513037D+00 -0.16563117027066D-16 + 3 12 3 1 0.39805385148678D+00 -0.82061031864936D-16 + 1 13 3 1 0.47464923475426D+00 -0.12903551922430D-17 + 2 13 3 1 -0.45168307234366D+00 -0.27677784398673D-16 + 3 13 3 1 -0.76994936718329D+00 0.50560854877105D-16 + 1 14 3 1 0.35415753449357D-01 0.16632431961330D-16 + 2 14 3 1 -0.32048390194775D-01 -0.37255204517031D-16 + 3 14 3 1 0.26118524991480D+00 0.29886636961154D-15 + 1 15 3 1 0.40590122418774D+00 0.10654798641164D-16 + 2 15 3 1 -0.44345517655243D+00 0.20043174956583D-16 + 3 15 3 1 -0.34998761247846D+00 -0.92228241920178D-16 + 1 16 3 1 -0.11550108999979D+01 -0.22428186855840D-17 + 2 16 3 1 0.29073230193539D+01 0.24759589230238D-17 + 3 16 3 1 -0.28512247146025D+01 0.25477741221781D-15 + 1 17 3 1 -0.12970359638530D+01 -0.17179846894520D-16 + 2 17 3 1 -0.31423875954876D+01 -0.19832915159909D-18 + 3 17 3 1 -0.31020751299927D+01 -0.23674918384544D-16 + 1 18 3 1 0.12700720656505D+01 -0.98254435774798D-17 + 2 18 3 1 -0.30735382688858D+01 -0.49230296645100D-17 + 3 18 3 1 -0.29567085927981D+01 0.10310811916658D-15 + 1 19 3 1 0.13146956625237D+01 -0.13741384494681D-16 + 2 19 3 1 0.28992922123548D+01 -0.30164809711837D-17 + 3 19 3 1 -0.27516318762314D+01 0.21489752620518D-15 + 1 20 3 1 -0.13569498302180D+00 -0.13320222854751D-16 + 2 20 3 1 -0.86008039398326D-01 -0.79307308430429D-18 + 3 20 3 1 -0.20873637486903D+00 0.71527089305311D-16 + 1 21 3 1 -0.67004752710939D-01 0.88915283451293D-17 + 2 21 3 1 0.10862185381205D+00 0.11628233193632D-17 + 3 21 3 1 -0.24047697504348D+00 -0.21407398706154D-16 + 1 22 3 1 -0.25927238246931D-01 -0.33592386646116D-16 + 2 22 3 1 -0.62347852797931D+00 -0.78305389439000D-17 + 3 22 3 1 0.54392391872485D+00 -0.32912964960464D-15 + 1 23 3 1 0.12899902445748D+00 0.25978222667257D-16 + 2 23 3 1 -0.90810637626315D-01 -0.59080098991704D-18 + 3 23 3 1 -0.22758195861379D+00 -0.46232912009599D-16 + 1 24 3 1 -0.15024282579784D+02 -0.85617301602257D-16 + 2 24 3 1 -0.15567569530740D+02 -0.77296306779582D-16 + 3 24 3 1 -0.27141502431793D+02 -0.14090002718833D-16 + 1 25 3 1 -0.34091133366505D+00 0.69046283835604D-17 + 2 25 3 1 -0.29319084621845D+00 -0.39776234512009D-16 + 3 25 3 1 0.56741504705853D+00 0.32170914637295D-15 + 1 26 3 1 0.31009401544719D+00 -0.65606240598478D-17 + 2 26 3 1 -0.31355453777295D+00 0.29697261252443D-17 + 3 26 3 1 0.12151128452324D+00 -0.37624891890626D-16 + 1 27 3 1 -0.52527277599873D+00 -0.52819002418359D-17 + 2 27 3 1 -0.40003112545840D+00 -0.65912857045931D-16 + 3 27 3 1 -0.27661666299410D+00 -0.16485630139429D-15 + 1 28 3 1 -0.30940070739702D+00 0.15041804098888D-16 + 2 28 3 1 0.30593004354810D+00 0.29065662757005D-16 + 3 28 3 1 0.16566364622927D+00 -0.95487785222350D-16 + 1 29 3 1 -0.42797690548089D+00 -0.16211248138246D-16 + 2 29 3 1 -0.47410951315899D+00 -0.13802613320442D-16 + 3 29 3 1 -0.41444205618786D+00 -0.22525656148982D-15 + 1 30 3 1 -0.17379260137787D+00 0.90531534542670D-17 + 2 30 3 1 -0.52852461919546D+00 -0.11147224577864D-16 + 3 30 3 1 -0.62389862780352D+00 -0.15713415701839D-16 + 1 31 3 1 -0.36826551461464D-01 0.87936554523343D-17 + 2 31 3 1 -0.19180688496901D-02 0.25074965395339D-17 + 3 31 3 1 0.14046373274300D+00 0.19494494559045D-17 + 1 32 3 1 -0.32340459656325D+01 -0.73459705284080D-17 + 2 32 3 1 0.17882170017425D+01 0.15659650309857D-16 + 3 32 3 1 -0.18994089981028D+01 -0.11483180226832D-15 + 1 33 3 1 0.30962339742664D+01 -0.17242050270501D-17 + 2 33 3 1 0.11353333223013D+01 -0.52583688074447D-17 + 3 33 3 1 -0.29958810583551D+01 -0.29573957074501D-15 + 1 34 3 1 0.96415435917295D-01 0.34408652084875D-18 + 2 34 3 1 0.86755436131941D-01 -0.10321503213760D-17 + 3 34 3 1 -0.21086672653499D+00 -0.23009580887820D-15 + 1 35 3 1 -0.11754640956586D+00 0.86087185488308D-18 + 2 35 3 1 0.93465445648178D-01 -0.58644481317536D-17 + 3 35 3 1 -0.26140025060353D+00 -0.15191111218566D-15 + 1 36 3 1 0.31989593194819D+01 0.82326007816060D-19 + 2 36 3 1 -0.12700085353062D+01 -0.30143977264384D-16 + 3 36 3 1 -0.31697061943491D+01 0.20504840784507D-15 + 1 37 3 1 -0.31188104911044D+01 -0.17280449327810D-17 + 2 37 3 1 -0.12509767681806D+01 0.30429613831540D-16 + 3 37 3 1 -0.31160979668871D+01 -0.34873704446721D-16 + 1 38 3 1 -0.18875194431667D+00 -0.54739330522562D-17 + 2 38 3 1 -0.19848275994538D+00 -0.15599319135033D-16 + 3 38 3 1 -0.15174463442924D+00 0.16560404461818D-15 + 1 39 3 1 0.98827236061189D-01 -0.86109562301430D-18 + 2 39 3 1 -0.10609528741851D+00 -0.21229566458159D-16 + 3 39 3 1 -0.24812961285718D+00 -0.18128593296543D-15 + 1 40 3 1 -0.34208337300894D+00 0.37932445039024D-16 + 2 40 3 1 0.29554103937407D+00 -0.17667779634364D-16 + 3 40 3 1 0.23777045636008D+00 0.23988509317530D-15 + 1 41 3 1 0.46029301411802D+00 0.20035848490058D-16 + 2 41 3 1 0.43899228290186D+00 -0.11038881090477D-16 + 3 41 3 1 -0.34766337276457D+00 -0.18236380922433D-15 + 1 42 3 1 0.13529215902066D+02 0.68797183834911D-16 + 2 42 3 1 0.14949212088362D+02 -0.25010471374651D-16 + 3 42 3 1 -0.26367025656392D+02 -0.22638258474351D-15 + 1 43 3 1 0.32434742287267D+00 -0.10651148271533D-16 + 2 43 3 1 0.15949537106223D+00 0.32032672069167D-16 + 3 43 3 1 0.62661665556899D+00 -0.94271835209023D-16 + 1 44 3 1 0.42315601101540D+00 0.22047863782980D-16 + 2 44 3 1 0.55199541123175D+00 0.28145996163634D-16 + 3 44 3 1 -0.76046130464859D+00 -0.14150283627997D-15 + 1 45 3 1 0.67656636498683D-02 0.83538796819533D-18 + 2 45 3 1 0.18546293613142D-01 0.16175551890713D-16 + 3 45 3 1 0.29116309027544D+00 -0.66249326815911D-16 + 1 46 3 1 0.21488924759003D+00 -0.81502613334355D-17 + 2 46 3 1 -0.33929061429275D+00 0.31512006897297D-16 + 3 46 3 1 0.15446028503366D+00 0.80489715690478D-16 + 1 47 3 1 0.74948867391113D+00 0.59593719632586D-17 + 2 47 3 1 0.61830381521060D+00 0.16580995226424D-16 + 3 47 3 1 -0.34062346733943D+00 -0.11387982756050D-15 + 1 48 3 1 0.11823768965084D+01 -0.17885510136430D-15 + 2 48 3 1 -0.12333277166283D+01 -0.60440726704272D-16 + 3 48 3 1 0.30155345649138D+01 0.24499393868728D-16 + 1 49 3 1 0.90350894191815D-01 0.20810530433719D-16 + 2 49 3 1 -0.44248198131505D-01 0.30901129281548D-16 + 3 49 3 1 -0.15398128284675D-01 0.25888042858692D-16 + 1 50 3 1 -0.21253208600549D+01 -0.63951562603661D-16 + 2 50 3 1 -0.20752894122620D+01 0.64083355308429D-16 + 3 50 3 1 0.18056327608835D+01 0.50403382443351D-16 + 1 51 3 1 -0.12180751841965D+00 -0.56388501385689D-16 + 2 51 3 1 -0.13225854204798D+00 0.10702586020703D-15 + 3 51 3 1 -0.37214517100009D-02 0.74967267618426D-16 + 1 52 3 1 0.13216691511330D+01 -0.30143103042179D-16 + 2 52 3 1 0.14939482683633D+01 0.48489466496899D-16 + 3 52 3 1 0.30062117777567D+01 0.24037688495606D-16 + 1 53 3 1 0.10378919577471D+00 0.63350368113067D-16 + 2 53 3 1 0.12016519405870D+00 0.58049471924909D-16 + 3 53 3 1 -0.13044625834323D-02 -0.15566835984869D-16 + 1 54 3 1 -0.13681488651771D+01 0.98093982040070D-16 + 2 54 3 1 0.12696454300567D+01 -0.23035486810116D-17 + 3 54 3 1 0.29609340178484D+01 -0.17793513344978D-16 + 1 55 3 1 0.25560236999467D-01 -0.21008745629605D-16 + 2 55 3 1 0.10708464478093D-01 0.28439161691186D-16 + 3 55 3 1 0.92045836170683D-01 0.19817702829277D-16 + 1 56 3 1 -0.11927098542457D+02 -0.33426616755618D-17 + 2 56 3 1 0.14345599579921D+02 0.36573644140472D-16 + 3 56 3 1 -0.25485998875877D+02 0.26754611559484D-15 + 1 57 3 1 -0.26756134160942D+00 0.81591896457434D-16 + 2 57 3 1 0.26183416531372D+00 -0.20100822180259D-16 + 3 57 3 1 0.42850323800122D+00 0.20668137120028D-15 + 1 58 3 1 0.43846442122255D+00 -0.29503921569605D-16 + 2 58 3 1 0.24748365031445D+00 0.22158366961324D-17 + 3 58 3 1 0.19033349414046D+00 -0.14703846656235D-15 + 1 59 3 1 -0.47089004501018D+00 0.19558163040290D-16 + 2 59 3 1 0.42846589831313D+00 0.15812781384093D-16 + 3 59 3 1 -0.32341740368545D+00 -0.19336039257923D-15 + 1 60 3 1 -0.29451899344543D+00 -0.20659687021384D-16 + 2 60 3 1 -0.64823888964955D-01 0.20531652734266D-17 + 3 60 3 1 0.33670670103111D+00 -0.25120740691764D-16 + 1 61 3 1 -0.55398192425771D+00 -0.13990400400215D-16 + 2 61 3 1 0.46496587470431D+00 0.87909060604421D-17 + 3 61 3 1 -0.45552851098672D+00 0.91575580955854D-16 + 1 62 3 1 -0.65896889737925D+00 -0.17726760522334D-16 + 2 62 3 1 0.34781997433926D+00 -0.11313129656544D-16 + 3 62 3 1 -0.93113972708092D+00 -0.13064488034688D-15 + 1 63 3 1 -0.45448141448588D-01 -0.38786157930761D-17 + 2 63 3 1 0.28309789651060D-02 0.94729463888647D-17 + 3 63 3 1 0.26354632444338D+00 -0.75411966944664D-16 + 1 64 3 1 -0.68961132555668D-02 -0.68062167553156D-17 + 2 64 3 1 -0.21099244266206D-01 0.20444566865850D-16 + 3 64 3 1 -0.18636859159152D+00 -0.13521912038202D-15 + 1 65 3 1 -0.73602774428358D+00 -0.20928246066015D-16 + 2 65 3 1 -0.44352528474124D+00 -0.33143236872833D-16 + 3 65 3 1 0.12384261309468D+00 -0.22413536451179D-15 + 1 1 1 2 -0.22583673303680D+00 -0.39325360357296D-17 + 2 1 1 2 0.68881838386677D-01 0.60825999501554D-18 + 3 1 1 2 -0.71182342370793D-01 -0.15501917780284D-17 + 1 2 1 2 0.12287990253502D+03 0.00000000000000D+00 + 2 2 1 2 -0.10712478210702D+01 0.00000000000000D+00 + 3 2 1 2 -0.34256587073391D+01 0.00000000000000D+00 + 1 3 1 2 0.17064624383969D+01 0.66614138722376D-19 + 2 3 1 2 -0.19049686090145D+00 0.23063350410956D-18 + 3 3 1 2 -0.19346501631644D-01 -0.29705108039140D-18 + 1 4 1 2 -0.23816838007246D+00 0.79863699425754D-17 + 2 4 1 2 -0.18366634266787D-02 -0.67973880801964D-18 + 3 4 1 2 -0.13933129234016D-02 -0.23400226469928D-18 + 1 5 1 2 -0.12969776100859D+00 0.31160571227993D-16 + 2 5 1 2 0.85317621194837D+00 0.15813634348529D-16 + 3 5 1 2 -0.74074581612352D+00 0.17736173046275D-16 + 1 6 1 2 -0.35562475976302D+00 0.54872418519843D-17 + 2 6 1 2 0.19184240360457D-02 0.76143120815949D-19 + 3 6 1 2 0.73118224368082D-01 0.12096055105104D-17 + 1 7 1 2 -0.16720242091942D+00 0.17828138284765D-17 + 2 7 1 2 -0.22811652599746D-01 -0.13047747066240D-17 + 3 7 1 2 -0.38930185792206D-01 0.14389199580950D-18 + 1 8 1 2 -0.12290306718743D+00 -0.85057757980303D-17 + 2 8 1 2 -0.22596539548496D-01 0.13309169785749D-17 + 3 8 1 2 -0.12182195732168D-01 -0.59457152117106D-18 + 1 9 1 2 -0.83310310466002D+00 -0.15434387528059D-15 + 2 9 1 2 0.49860176723086D+00 0.11165099638320D-16 + 3 9 1 2 0.62977614684491D+00 -0.16914873938980D-16 + 1 10 1 2 0.16014908008607D+00 -0.14864891094983D-15 + 2 10 1 2 0.27827078820673D+00 0.21515145743939D-16 + 3 10 1 2 -0.29407440653510D+00 0.18487809500458D-16 + 1 11 1 2 0.21120081637539D+00 -0.14161609301450D-15 + 2 11 1 2 -0.31360025830506D+00 0.29714868757654D-16 + 3 11 1 2 0.42014911564423D+00 0.20107969104273D-16 + 1 12 1 2 -0.27426623157198D+02 0.55324541872707D-16 + 2 12 1 2 0.17262113001736D+02 0.29014510879018D-18 + 3 12 1 2 0.15029971305917D+02 -0.19222718933729D-16 + 1 13 1 2 0.25512738324407D+00 -0.17592341227167D-15 + 2 13 1 2 0.35339012791915D-01 0.32658184741982D-16 + 3 13 1 2 0.25033869836144D-01 -0.57714566286110D-17 + 1 14 1 2 -0.40543449355560D+00 -0.14862116121140D-15 + 2 14 1 2 0.46794458107699D+00 -0.16514854172663D-17 + 3 14 1 2 0.45282468874006D+00 -0.28898938974466D-16 + 1 15 1 2 0.50241961411295D+00 -0.89578946720869D-16 + 2 15 1 2 0.32850170110725D+00 0.25761694933782D-17 + 3 15 1 2 0.29075513625965D+00 -0.28440307973920D-16 + 1 16 1 2 0.30681912205083D+01 0.48220838138070D-16 + 2 16 1 2 0.12892733219551D+01 0.24997409211748D-16 + 3 16 1 2 0.12999869291335D+01 0.17289841236528D-16 + 1 17 1 2 0.31579413995749D+01 0.92386095782948D-16 + 2 17 1 2 -0.11838219701199D+01 -0.26624970520941D-19 + 3 17 1 2 0.11608650034962D+01 0.30881508307447D-16 + 1 18 1 2 0.30385091776969D+01 -0.66257754107975D-17 + 2 18 1 2 0.11550108999979D+01 0.21185647131389D-16 + 3 18 1 2 -0.13146956625237D+01 0.33347073805570D-16 + 1 19 1 2 0.29709267831613D+01 -0.88419474482405D-16 + 2 19 1 2 -0.14257686930433D+01 0.14364206840927D-16 + 3 19 1 2 -0.16200999420939D+01 0.14856732218367D-16 + 1 20 1 2 -0.40115266392874D-01 -0.34637332659327D-16 + 2 20 1 2 0.15890958213719D+00 -0.21839726658352D-16 + 3 20 1 2 0.14432681694242D+00 0.11834155769899D-17 + 1 21 1 2 0.17628049017343D-01 -0.24644550314305D-16 + 2 21 1 2 -0.67088866551376D-01 -0.17635606738275D-16 + 3 21 1 2 0.72483235593100D-01 -0.16066094378413D-17 + 1 22 1 2 0.87836048719722D-01 -0.17379073353417D-15 + 2 22 1 2 -0.71809348402237D+00 0.25016380707642D-16 + 3 22 1 2 0.68445111688901D+00 -0.43291483714568D-18 + 1 23 1 2 0.28208267547122D-01 0.15125001908443D-15 + 2 23 1 2 -0.10915285207292D+00 -0.79981168569410D-17 + 3 23 1 2 -0.18188827530424D+00 -0.18281537460457D-16 + 1 24 1 2 0.20558033360876D+00 0.67407330908137D-16 + 2 24 1 2 0.34287793151198D+00 0.31991121756247D-16 + 3 24 1 2 -0.25207267195375D+00 -0.27301297622534D-16 + 1 25 1 2 -0.25470941862986D+02 0.73242065761478D-16 + 2 25 1 2 -0.13516280332068D+02 0.85432148890528D-17 + 3 25 1 2 -0.13940477087648D+02 -0.62619663337575D-17 + 1 26 1 2 -0.84916661268427D+00 0.14739877094900D-15 + 2 26 1 2 -0.47131622603680D+00 0.36399121074999D-16 + 3 26 1 2 -0.37718079151061D+00 -0.17968875117336D-16 + 1 27 1 2 0.27295797963212D+00 -0.82861138135522D-16 + 2 27 1 2 -0.40294145954662D+00 0.67440366387998D-16 + 3 27 1 2 0.39028506538330D+00 0.15543498410149D-16 + 1 28 1 2 -0.37941196594313D+00 -0.59045511801485D-16 + 2 28 1 2 -0.44374494864420D+00 -0.34491658711394D-16 + 3 28 1 2 -0.32676665815979D+00 0.17593942524959D-16 + 1 29 1 2 0.44208024797637D+00 0.32000504683903D-15 + 2 29 1 2 -0.38566323318886D+00 0.18076065367521D-16 + 3 29 1 2 -0.41383561013823D+00 -0.25047732444079D-16 + 1 30 1 2 0.25051017034733D+00 0.16210540448891D-16 + 2 30 1 2 0.11479705400310D+00 0.35888337407725D-16 + 3 30 1 2 0.23561371178644D-01 0.35123942318896D-16 + 1 31 1 2 -0.64234105542516D+00 -0.24628847017983D-16 + 2 31 1 2 -0.42614734542216D+00 -0.35448121278028D-17 + 3 31 1 2 -0.38978028340426D+00 0.29994698372317D-16 + 1 32 1 2 -0.30338589403062D+01 -0.11753046206427D-15 + 2 32 1 2 -0.17512457825153D+00 0.28401689591502D-16 + 3 32 1 2 0.46171555433879D+01 0.40338424441377D-18 + 1 33 1 2 -0.29949756481198D+01 0.26797377063001D-15 + 2 33 1 2 0.11971059792642D+01 0.34602446942906D-16 + 3 33 1 2 -0.30971891017045D+01 0.21327262827963D-18 + 1 34 1 2 -0.20352226633815D+00 0.11569421075256D-15 + 2 34 1 2 -0.14350644613521D+00 -0.70800902252566D-16 + 3 34 1 2 -0.36582342768198D-01 0.35656903542221D-17 + 1 35 1 2 -0.23994603525543D+00 0.10558126097113D-15 + 2 35 1 2 0.89465979828498D-01 -0.49967995388199D-16 + 3 35 1 2 0.65890303523437D-01 -0.18645403308974D-17 + 1 36 1 2 -0.29694333512828D+01 -0.86547899637166D-17 + 2 36 1 2 -0.13216691511330D+01 -0.87899303157578D-16 + 3 36 1 2 -0.31188104911044D+01 0.14656619418005D-17 + 1 37 1 2 -0.32291832719729D+01 -0.88780743547773D-18 + 2 37 1 2 0.12574855522480D+01 -0.33937757333768D-16 + 3 37 1 2 0.35866822654581D+01 0.12605390327668D-16 + 1 38 1 2 -0.35729967959954D+00 -0.38837713942680D-16 + 2 38 1 2 -0.21515632650469D+00 0.79624483144897D-16 + 3 38 1 2 0.19847109189108D+00 -0.55458028481964D-18 + 1 39 1 2 -0.23629068496631D+00 0.17486541136705D-15 + 2 39 1 2 0.10296464443796D+00 -0.13126457085189D-16 + 3 39 1 2 -0.11720523352892D+00 -0.28868851371274D-17 + 1 40 1 2 -0.77717561802623D+00 0.12896948923861D-15 + 2 40 1 2 -0.48194379625109D+00 -0.26134302234915D-16 + 3 40 1 2 0.44805328709032D+00 0.28620840097153D-16 + 1 41 1 2 0.22931480882146D+00 -0.64639909426910D-16 + 2 41 1 2 -0.32406161278393D+00 -0.12256332445013D-17 + 3 41 1 2 -0.35660563057979D+00 -0.16821664075525D-16 + 1 42 1 2 0.62025028896633D-02 0.38501014043204D-15 + 2 42 1 2 0.26522545003791D+00 0.38899848346692D-17 + 3 42 1 2 -0.53763771560468D-01 0.99493672468050D-17 + 1 43 1 2 -0.27022189572521D+02 -0.12817627647406D-15 + 2 43 1 2 -0.17380976115390D+02 0.44714535041290D-18 + 3 43 1 2 0.14558835678490D+02 -0.27862473789282D-16 + 1 44 1 2 0.27664613061127D+00 -0.15956306159112D-15 + 2 44 1 2 -0.11650839707684D-02 0.24226870363346D-16 + 3 44 1 2 0.26176467133676D-02 -0.86664832493615D-17 + 1 45 1 2 -0.45333922621259D+00 -0.21031644924583D-16 + 2 45 1 2 -0.52535734949560D+00 0.17180530340285D-16 + 3 45 1 2 0.51501859925011D+00 0.35793919956083D-16 + 1 46 1 2 -0.39640379417134D+00 0.24459351693902D-15 + 2 46 1 2 -0.59823138478369D+00 0.67573072676326D-17 + 3 46 1 2 0.63674313804244D+00 -0.82996374203255D-17 + 1 47 1 2 0.31422049400924D+00 0.15941582641646D-15 + 2 47 1 2 0.29825601567371D-02 0.39851614256628D-16 + 3 47 1 2 0.21516708156434D+00 0.68989016866481D-16 + 1 48 1 2 -0.20285354699657D+00 -0.64835145279903D-16 + 2 48 1 2 -0.21870410963723D-01 -0.67818788932191D-18 + 3 48 1 2 -0.14764773017077D+00 0.64251834901339D-16 + 1 49 1 2 -0.29596538007428D+01 0.19699668236994D-15 + 2 49 1 2 0.32008726391262D+01 -0.81264124582029D-18 + 3 49 1 2 -0.12343771874599D+01 -0.50833053807220D-16 + 1 50 1 2 -0.14227691375251D+00 0.16173005126553D-15 + 2 50 1 2 -0.63788193896406D+00 0.70300394150664D-17 + 3 50 1 2 -0.55458505988008D+00 0.24896958861607D-16 + 1 51 1 2 -0.29233488661134D+01 -0.40897937746790D-16 + 2 51 1 2 -0.28846658458855D+01 0.13330051267565D-18 + 3 51 1 2 0.17402778573232D+01 0.95929606986654D-16 + 1 52 1 2 -0.35757345629169D+00 -0.20836745713868D-15 + 2 52 1 2 0.21810506358726D+00 -0.97785602276468D-18 + 3 52 1 2 -0.25898368449814D+00 0.12711937222677D-16 + 1 53 1 2 -0.30112724456127D+01 -0.91414647297909D-16 + 2 53 1 2 -0.32825700744194D+01 -0.15188174565753D-17 + 3 53 1 2 -0.14136220409059D+01 0.22084551533403D-16 + 1 54 1 2 -0.21100302837231D+00 -0.19067829866248D-15 + 2 54 1 2 -0.18875194431667D+00 0.42150740219250D-17 + 3 54 1 2 -0.25560236999470D-01 -0.34217323074723D-17 + 1 55 1 2 -0.29895125632169D+01 0.38607123918278D-16 + 2 55 1 2 0.29337777170518D+01 0.64252961483643D-18 + 3 55 1 2 0.16276630588903D+01 0.15575280468237D-16 + 1 56 1 2 0.62632122828492D+00 0.19360485746493D-15 + 2 56 1 2 -0.21034855301275D+00 -0.21898402523374D-16 + 3 56 1 2 -0.61070928979986D+00 -0.43228079591903D-16 + 1 57 1 2 -0.27140407075915D+02 0.16976274393288D-15 + 2 57 1 2 0.14840802524424D+02 -0.24323474701182D-16 + 3 57 1 2 -0.14248162262728D+02 -0.45478801895845D-16 + 1 58 1 2 -0.80985736801165D+00 -0.11621653175609D-15 + 2 58 1 2 0.35556774802707D+00 -0.34438563763518D-17 + 3 58 1 2 -0.33968534256652D+00 0.11995548953103D-16 + 1 59 1 2 0.18966302382550D+00 -0.75279327132105D-17 + 2 59 1 2 0.23380228617191D+00 -0.27321438599191D-16 + 3 59 1 2 0.33632806315325D+00 -0.36654759395191D-17 + 1 60 1 2 -0.50259411538244D+00 -0.16165223691165D-15 + 2 60 1 2 0.59033759901086D+00 -0.11422319975205D-16 + 3 60 1 2 -0.27401375196434D+00 0.11837416808431D-17 + 1 61 1 2 0.36923994026917D+00 0.52211150127492D-16 + 2 61 1 2 0.26653682768796D+00 0.93679043322555D-17 + 3 61 1 2 -0.33003961467011D+00 -0.11637556253375D-16 + 1 62 1 2 0.81947051681333D-01 -0.20585705883554D-16 + 2 62 1 2 -0.10295060887454D+00 -0.20242538221432D-16 + 3 62 1 2 -0.24610974420285D+00 -0.39312225020148D-16 + 1 63 1 2 -0.49304833638928D+00 0.10626883937287D-15 + 2 63 1 2 0.43710435220490D+00 0.12690372538527D-16 + 3 63 1 2 -0.35014435252327D+00 0.90231149069744D-18 + 1 64 1 2 -0.14478320412961D+00 -0.17937686441200D-15 + 2 64 1 2 -0.66647925942099D-01 0.41817367788787D-17 + 3 64 1 2 -0.73174246076913D-01 0.20178265458303D-17 + 1 65 1 2 -0.50053457424163D+00 -0.46015556415801D-16 + 2 65 1 2 0.46103043870693D+00 0.69645250280894D-16 + 3 65 1 2 0.10998115269211D+01 0.51808980447738D-18 + 1 1 2 2 -0.20095775691119D-01 0.60825999501554D-18 + 2 1 2 2 -0.29997582769305D+00 -0.19140454748379D-18 + 3 1 2 2 0.63860397410480D-01 -0.58156965891878D-19 + 1 2 2 2 -0.10712478210702D+01 0.00000000000000D+00 + 2 2 2 2 0.12361603940764D+03 0.00000000000000D+00 + 3 2 2 2 0.62995371830208D+00 0.00000000000000D+00 + 1 3 2 2 -0.19346501631644D-01 0.23063350410956D-18 + 2 3 2 2 0.14254411493811D+00 0.12709075550008D-16 + 3 3 2 2 0.31054074968618D-02 -0.10409554944175D-17 + 1 4 2 2 0.31754131344404D-01 -0.67973880801964D-18 + 2 4 2 2 -0.38525272769521D+00 0.11910965801996D-17 + 3 4 2 2 -0.17871430495605D-01 0.11861094370140D-17 + 1 5 2 2 -0.94007595960362D-02 0.15813634348529D-16 + 2 5 2 2 0.62991047216481D-01 -0.13688568659698D-16 + 3 5 2 2 0.12637881894937D+01 -0.41171812786207D-17 + 1 6 2 2 -0.24461857082302D-02 0.76143120815949D-19 + 2 6 2 2 -0.20671006593298D+00 -0.73043784617676D-18 + 3 6 2 2 -0.34358997781744D-01 -0.15921513586390D-17 + 1 7 2 2 0.50822928074397D-01 -0.13047747066240D-17 + 2 7 2 2 -0.84272004536128D-01 -0.15266404559078D-17 + 3 7 2 2 0.12262395208868D-01 0.11845503032392D-18 + 1 8 2 2 0.50187471622119D-01 0.13309169785749D-17 + 2 8 2 2 -0.67269915365609D-01 0.75665292298957D-19 + 3 8 2 2 -0.50182227588190D-01 -0.14431247932751D-18 + 1 9 2 2 0.36425031176629D+00 0.11165099638320D-16 + 2 9 2 2 -0.44110165423260D+00 -0.13953190038935D-15 + 3 9 2 2 -0.38152268192090D+00 -0.25721257747057D-17 + 1 10 2 2 0.25324393959613D+00 0.21515145743939D-16 + 2 10 2 2 0.41290445257316D+00 -0.19479592630604D-15 + 3 10 2 2 -0.30572683686540D+00 -0.10498761791144D-17 + 1 11 2 2 -0.34648445227573D+00 0.29714868757654D-16 + 2 11 2 2 0.14062091422055D+00 -0.13931334283916D-15 + 3 11 2 2 -0.32100479112210D+00 -0.26744688405094D-16 + 1 12 2 2 0.17278320948682D+02 0.29014510879018D-18 + 2 12 2 2 -0.28264265805571D+02 -0.32303322141061D-15 + 3 12 2 2 -0.17165288984837D+02 0.88579876287015D-17 + 1 13 2 2 0.24465386896979D-01 0.32658184741982D-16 + 2 13 2 2 0.24725792597649D+00 0.10369824835182D-15 + 3 13 2 2 -0.33216969269469D-01 0.31640078153955D-16 + 1 14 2 2 0.45850944608785D+00 -0.16514854172663D-17 + 2 14 2 2 -0.36210767937223D+00 0.29802781532831D-15 + 3 14 2 2 -0.49654295837348D+00 -0.53780751848631D-17 + 1 15 2 2 0.33570155248116D+00 0.25761694933782D-17 + 2 15 2 2 0.15825920575420D+00 -0.12550861015440D-15 + 3 15 2 2 0.34900987509091D+00 -0.32691964679632D-16 + 1 16 2 2 -0.12999869291335D+01 0.24997409211748D-16 + 2 16 2 2 -0.31939237968509D+01 0.12247521611211D-15 + 3 16 2 2 -0.34661093519879D+01 0.51567938358961D-17 + 1 17 2 2 0.14258506103839D+01 -0.26624970520941D-19 + 2 17 2 2 -0.32389323475908D+01 0.30883594745630D-15 + 3 17 2 2 0.32724273548708D+01 -0.19121040569014D-17 + 1 18 2 2 -0.12828034165548D+01 0.21185647131389D-16 + 2 18 2 2 -0.28512247146025D+01 -0.10363715966387D-15 + 3 18 2 2 0.28992922123548D+01 -0.22737268766373D-17 + 1 19 2 2 0.14257686930433D+01 0.14364206840927D-16 + 2 19 2 2 -0.31083248747393D+01 0.10045402352073D-15 + 3 19 2 2 -0.28968247934279D+01 -0.13587737419367D-17 + 1 20 2 2 -0.34258093331186D-01 -0.21839726658352D-16 + 2 20 2 2 -0.23088084729193D+00 0.20254274018655D-15 + 3 20 2 2 0.49290147573133D-01 0.29263103626649D-17 + 1 21 2 2 0.10356308707008D+00 -0.17635606738275D-16 + 2 21 2 2 -0.28160457200432D+00 0.26329761005702D-15 + 3 21 2 2 -0.59446261974188D-01 0.23180154867321D-17 + 1 22 2 2 0.62056743571392D-02 0.25016380707642D-16 + 2 22 2 2 0.81365140915615D+00 -0.27855173314476D-15 + 3 22 2 2 -0.87950895163831D+00 0.12821936026249D-17 + 1 23 2 2 0.46389530140499D-01 -0.79981168569410D-17 + 2 23 2 2 -0.19250859648881D+00 0.11336228134952D-15 + 3 23 2 2 0.16359920195150D+00 0.10866961592687D-17 + 1 24 2 2 0.27657730932820D+00 0.31991121756247D-16 + 2 24 2 2 0.16887509052892D+00 -0.15209028507831D-15 + 3 24 2 2 -0.13763729246429D+00 0.22426861471803D-16 + 1 25 2 2 -0.13752406199399D+02 0.85432148890528D-17 + 2 25 2 2 -0.25987538274335D+02 -0.34396628505951D-15 + 3 25 2 2 -0.14890393670092D+02 -0.28543179238409D-16 + 1 26 2 2 -0.47848284343539D+00 0.36399121074999D-16 + 2 26 2 2 -0.42400915340020D+00 0.16510382508146D-15 + 3 26 2 2 -0.48351314694592D+00 0.29547430499256D-16 + 1 27 2 2 -0.38269152990935D+00 0.67440366387998D-16 + 2 27 2 2 0.66408895613077D+00 0.90739492399453D-16 + 3 27 2 2 -0.32807006299279D+00 0.26914242337540D-16 + 1 28 2 2 -0.47241760155955D+00 -0.34491658711394D-16 + 2 28 2 2 -0.71530023363884D+00 -0.14376828548531D-15 + 3 28 2 2 -0.44706759951065D+00 -0.88989834851143D-17 + 1 29 2 2 -0.30252389954016D+00 0.18076065367521D-16 + 2 29 2 2 0.18304592510121D+00 -0.13493618226780D-15 + 3 29 2 2 0.28358065322038D+00 0.71022324757906D-17 + 1 30 2 2 0.53470638894169D-01 0.35888337407725D-16 + 2 30 2 2 0.20857800944944D+00 -0.17457213292556D-15 + 3 30 2 2 -0.38181601510457D-01 0.11294607152023D-16 + 1 31 2 2 -0.29992653005328D+00 -0.35448121278028D-17 + 2 31 2 2 -0.38401237108067D+00 0.15063960022901D-15 + 3 31 2 2 -0.34588094598482D+00 0.12895813316036D-16 + 1 32 2 2 0.14435244257966D+01 0.28401689591502D-16 + 2 32 2 2 0.96910325492601D+00 0.16180749117726D-15 + 3 32 2 2 -0.29658009543567D+01 -0.37124674525857D-16 + 1 33 2 2 -0.13678659944496D+01 0.34602446942906D-16 + 2 33 2 2 0.29632774936015D+01 0.77686397489729D-16 + 3 33 2 2 -0.13483055546319D+01 -0.29978941913398D-16 + 1 34 2 2 0.10774984940746D-01 -0.70800902252566D-16 + 2 34 2 2 0.67229337897276D-01 -0.85000698357548D-16 + 3 34 2 2 -0.15189491883038D+00 0.24127308870608D-16 + 1 35 2 2 -0.70206638076884D-01 -0.49967995388199D-16 + 2 35 2 2 -0.19811576467605D-01 -0.22108342814298D-15 + 3 35 2 2 -0.47616311444369D-01 0.23788554711398D-16 + 1 36 2 2 0.13078588463868D+01 -0.87899303157578D-16 + 2 36 2 2 0.30062117777568D+01 0.10671290279336D-16 + 3 36 2 2 0.12509767681806D+01 0.21328378204205D-17 + 1 37 2 2 -0.12574855522480D+01 -0.33937757333768D-16 + 2 37 2 2 0.30927109131092D+01 -0.28213838977577D-16 + 3 37 2 2 0.12650830491787D+01 0.34807001160816D-17 + 1 38 2 2 0.25898368449814D+00 0.79624483144897D-16 + 2 38 2 2 0.10115026623173D+00 -0.43443742752733D-16 + 3 38 2 2 -0.27830676858508D-01 0.35980103089578D-16 + 1 39 2 2 -0.10752394562335D+00 -0.13126457085189D-16 + 2 39 2 2 -0.11931947826562D-01 0.61826055540717D-16 + 3 39 2 2 0.12617294084810D+00 0.29316850743373D-16 + 1 40 2 2 -0.59936482346722D+00 -0.26134302234915D-16 + 2 40 2 2 -0.50047434236650D+00 0.81880121505534D-16 + 3 40 2 2 0.61055482526110D+00 0.11072650488929D-16 + 1 41 2 2 -0.29022933731612D+00 -0.12256332445013D-17 + 2 41 2 2 0.53072023251009D+00 -0.32228163184437D-16 + 3 41 2 2 0.21799906534147D+00 -0.32790356422316D-16 + 1 42 2 2 0.37197994347043D+00 0.38899848346692D-17 + 2 42 2 2 0.12834338893619D+00 -0.31600725504137D-15 + 3 42 2 2 0.26868741007230D+00 -0.17490614425393D-16 + 1 43 2 2 -0.16629379756977D+02 0.44714535041290D-18 + 2 43 2 2 -0.27760819090572D+02 -0.11514008474563D-15 + 3 43 2 2 0.17524480964126D+02 -0.39048429138066D-16 + 1 44 2 2 0.20626483504748D-02 0.24226870363346D-16 + 2 44 2 2 0.29691473446176D+00 0.10008501070693D-15 + 3 44 2 2 0.54559282343331D-01 0.26846669873244D-16 + 1 45 2 2 -0.50891363746347D+00 0.17180530340285D-16 + 2 45 2 2 -0.44735271654360D+00 0.70682443010355D-16 + 3 45 2 2 0.48027594224421D+00 -0.93346392264819D-17 + 1 46 2 2 -0.80045650826027D+00 0.67573072676326D-17 + 2 46 2 2 -0.60193948425331D+00 -0.72582331512428D-16 + 3 46 2 2 0.68264261748262D+00 -0.19346901096777D-16 + 1 47 2 2 -0.35986694257035D+00 0.39851614256628D-16 + 2 47 2 2 0.10626880733348D+00 -0.10225880477301D-15 + 3 47 2 2 -0.30197170554672D+00 0.35963936540600D-16 + 1 48 2 2 -0.89658032623901D-01 -0.67818788932191D-18 + 2 48 2 2 -0.21577894633812D+00 -0.99920367955133D-16 + 3 48 2 2 0.10356682372425D+00 -0.52706001531935D-16 + 1 49 2 2 0.31254481327735D+01 -0.81264124582029D-18 + 2 49 2 2 -0.30979715045097D+01 0.24697908798853D-15 + 3 49 2 2 0.12144881578439D+01 -0.78467094011376D-17 + 1 50 2 2 -0.82013102129496D-01 0.70300394150664D-17 + 2 50 2 2 0.62293770665093D+00 -0.72225294615573D-16 + 3 50 2 2 0.93257181798682D+00 0.77177996324989D-17 + 1 51 2 2 -0.28728526686264D+01 0.13330051267565D-18 + 2 51 2 2 -0.28762227844451D+01 0.28675906322932D-15 + 3 51 2 2 0.13163110477181D+01 -0.89372037210863D-16 + 1 52 2 2 0.19847109189108D+00 -0.97785602276468D-18 + 2 52 2 2 -0.42455260074796D+00 0.83055648804412D-17 + 3 52 2 2 0.27412291065955D-01 0.10399305554503D-15 + 1 53 2 2 -0.31446947372533D+01 -0.15188174565753D-17 + 2 53 2 2 -0.31976530388552D+01 0.23114276679822D-16 + 3 53 2 2 -0.12966080702833D+01 -0.33663374228823D-16 + 1 54 2 2 -0.69182942504178D-01 0.42150740219250D-17 + 2 54 2 2 -0.15174463442923D+00 0.56451854003592D-16 + 3 54 2 2 -0.10708464478090D-01 -0.11872823802040D-16 + 1 55 2 2 0.29337777170518D+01 0.64252961483643D-18 + 2 55 2 2 -0.29999172970670D+01 -0.15068454619596D-15 + 3 55 2 2 -0.14062279707536D+01 -0.27783190381846D-17 + 1 56 2 2 -0.78293220003702D+00 -0.21898402523374D-16 + 2 56 2 2 -0.18536809697927D+00 0.19691429504027D-15 + 3 56 2 2 0.71273818903614D+00 0.22945762956702D-16 + 1 57 2 2 0.14657072719820D+02 -0.24323474701182D-16 + 2 57 2 2 -0.25763641485448D+02 0.16100440680465D-15 + 3 57 2 2 0.13670665622604D+02 -0.29116399827176D-16 + 1 58 2 2 0.28684620462767D+00 -0.34438563763518D-17 + 2 58 2 2 -0.85893846018716D-01 -0.16436588107332D-15 + 3 58 2 2 0.14952538593818D+00 -0.24138716283250D-16 + 1 59 2 2 0.27707858760759D+00 -0.27321438599191D-16 + 2 59 2 2 0.58598536914087D+00 0.14725448057843D-15 + 3 59 2 2 0.34701699078133D+00 0.32884023583560D-16 + 1 60 2 2 0.49922300162289D+00 -0.11422319975205D-16 + 2 60 2 2 -0.87879839587781D+00 -0.77438373541367D-16 + 3 60 2 2 0.76511502303098D-01 -0.23299599951460D-16 + 1 61 2 2 0.20300347704440D+00 0.93679043322555D-17 + 2 61 2 2 0.15727104241103D+00 -0.62114875084716D-16 + 3 61 2 2 -0.27594970481658D+00 0.86110166070769D-17 + 1 62 2 2 0.10458857416864D+00 -0.20242538221432D-16 + 2 62 2 2 0.37092861818659D+00 0.31488587792651D-15 + 3 62 2 2 0.24018265599631D+00 0.25188885562003D-16 + 1 63 2 2 0.50130163375714D+00 0.12690372538527D-16 + 2 63 2 2 -0.37587517196716D+00 0.71319541096244D-16 + 3 63 2 2 0.44375316277966D+00 0.26128004402296D-16 + 1 64 2 2 -0.22032006338683D+00 0.41817367788787D-17 + 2 64 2 2 0.12730033657658D+00 0.17420479714948D-15 + 3 64 2 2 0.17334651597392D+00 0.25548789103675D-16 + 1 65 2 2 0.62533824397710D+00 0.69645250280894D-16 + 2 65 2 2 0.11911326321254D+00 -0.91483534388293D-16 + 3 65 2 2 -0.25725218217314D+00 -0.10710927595612D-15 + 1 1 3 2 -0.80488204615413D-03 -0.15501917780284D-17 + 2 1 3 2 -0.75794711745998D-01 -0.58156965891878D-19 + 3 1 3 2 -0.36966588801676D+00 -0.15621044268759D-16 + 1 2 3 2 -0.34256587073391D+01 0.00000000000000D+00 + 2 2 3 2 0.62995371830208D+00 0.00000000000000D+00 + 3 2 3 2 0.12277108058833D+03 0.00000000000000D+00 + 1 3 3 2 -0.19049686090145D+00 -0.29705108039140D-18 + 2 3 3 2 -0.52128788298786D-01 -0.10409554944175D-17 + 3 3 3 2 0.14254411493812D+00 0.20124378849109D-18 + 1 4 3 2 -0.36501365675269D-02 -0.23400226469928D-18 + 2 4 3 2 -0.27708198192499D-02 0.11861094370140D-17 + 3 4 3 2 -0.25609173438377D+00 -0.77033363344773D-17 + 1 5 3 2 -0.37629163850712D-01 0.17736173046275D-16 + 2 5 3 2 -0.10028054761513D+01 -0.41171812786207D-17 + 3 5 3 2 0.10020919058717D+01 0.11211238928832D-16 + 1 6 3 2 -0.46994349775083D-01 0.12096055105104D-17 + 2 6 3 2 -0.40416366528409D-01 -0.15921513586390D-17 + 3 6 3 2 -0.31749180709190D+00 -0.20385504865557D-17 + 1 7 3 2 0.53321962162253D-01 0.14389199580950D-18 + 2 7 3 2 0.25872687761076D-01 0.11845503032392D-18 + 3 7 3 2 -0.95554353237722D-01 -0.30334558534316D-17 + 1 8 3 2 0.36046341819235D-01 -0.59457152117106D-18 + 2 8 3 2 0.11411960095221D+00 -0.14431247932751D-18 + 3 8 3 2 0.15513921470717D+01 0.71572581449717D-17 + 1 9 3 2 0.50563856021151D+00 -0.16914873938980D-16 + 2 9 3 2 -0.33310674753374D+00 -0.25721257747057D-17 + 3 9 3 2 -0.29904993474147D+00 -0.17783642627654D-16 + 1 10 3 2 -0.30357963965605D+00 0.18487809500458D-16 + 2 10 3 2 -0.29456117170822D+00 -0.10498761791144D-17 + 3 10 3 2 0.17730212355830D+00 0.92498936475032D-16 + 1 11 3 2 0.33996042404432D+00 0.20107969104273D-16 + 2 11 3 2 -0.36794478809993D+00 -0.26744688405094D-16 + 3 11 3 2 0.54540329466193D+00 0.19477721766326D-16 + 1 12 3 2 0.15049561448618D+02 -0.19222718933729D-16 + 2 12 3 2 -0.17191015790917D+02 0.88579876287015D-17 + 3 12 3 2 -0.26971487657406D+02 0.13554953787076D-15 + 1 13 3 2 0.33953700215029D-01 -0.57714566286110D-17 + 2 13 3 2 -0.22788356494302D-01 0.31640078153955D-16 + 3 13 3 2 0.26036168030253D+00 0.10321344043881D-15 + 1 14 3 2 0.47912631614101D+00 -0.28898938974466D-16 + 2 14 3 2 -0.51072631933868D+00 -0.53780751848631D-17 + 3 14 3 2 -0.79391920416358D+00 -0.34183138299373D-16 + 1 15 3 2 0.33741997843478D+00 -0.28440307973920D-16 + 2 15 3 2 0.28740111017937D+00 -0.32691964679632D-16 + 3 15 3 2 0.15499804625747D+00 -0.15096939610605D-15 + 1 16 3 2 -0.12892733219551D+01 0.17289841236528D-16 + 2 16 3 2 -0.30631974865687D+01 0.51567938358961D-17 + 3 16 3 2 -0.31939237968509D+01 -0.57273300667145D-17 + 1 17 3 2 -0.14131179231745D+01 0.30881508307447D-16 + 2 17 3 2 0.32598618654775D+01 -0.19121040569014D-17 + 3 17 3 2 -0.29903000869573D+01 0.21686867813955D-15 + 1 18 3 2 0.12138580036775D+01 0.33347073805570D-16 + 2 18 3 2 0.29073230193539D+01 -0.22737268766373D-17 + 3 18 3 2 -0.27516318762314D+01 0.11692391049468D-15 + 1 19 3 2 0.16200999420939D+01 0.14856732218367D-16 + 2 19 3 2 -0.28968247934279D+01 -0.13587737419367D-17 + 3 19 3 2 -0.28486160486720D+01 -0.19577445629326D-15 + 1 20 3 2 -0.42487475494266D-01 0.11834155769899D-17 + 2 20 3 2 -0.21360777461589D-02 0.29263103626649D-17 + 3 20 3 2 -0.26792518326819D+00 -0.20667967537246D-15 + 1 21 3 2 -0.13471322032932D+00 -0.16066094378413D-17 + 2 21 3 2 -0.11291188076494D+00 0.23180154867321D-17 + 3 21 3 2 -0.17065132479147D+00 0.23421024857271D-15 + 1 22 3 2 0.25019036966429D+00 -0.43291483714568D-18 + 2 22 3 2 0.99491676041998D+00 0.12821936026249D-17 + 3 22 3 2 -0.11649945096036D+01 -0.46737409689875D-15 + 1 23 3 2 0.43402375418695D-01 -0.18281537460457D-16 + 2 23 3 2 0.15173137220633D+00 0.10866961592687D-17 + 3 23 3 2 -0.14082776768839D+00 -0.91956195270281D-17 + 1 24 3 2 -0.26928149076513D+00 -0.27301297622534D-16 + 2 24 3 2 -0.23445931572647D+00 0.22426861471803D-16 + 3 24 3 2 0.34107393969035D+00 -0.48063796336721D-16 + 1 25 3 2 -0.14083423636586D+02 -0.62619663337575D-17 + 2 25 3 2 -0.14783799473417D+02 -0.28543179238409D-16 + 3 25 3 2 -0.26651846455054D+02 0.28589860907098D-15 + 1 26 3 2 -0.41780254090830D+00 -0.17968875117336D-16 + 2 26 3 2 -0.48020796007542D+00 0.29547430499256D-16 + 3 26 3 2 -0.51011838563335D+00 0.14418456355854D-16 + 1 27 3 2 0.36011376274162D+00 0.15543498410149D-16 + 2 27 3 2 -0.29133872444977D+00 0.26914242337540D-16 + 3 27 3 2 0.14604195947365D+00 -0.10720415308274D-15 + 1 28 3 2 -0.39126828577219D+00 0.17593942524959D-16 + 2 28 3 2 -0.44826197649394D+00 -0.88989834851143D-17 + 3 28 3 2 -0.55512387936140D+00 0.12330938141979D-15 + 1 29 3 2 -0.30221072566817D+00 -0.25047732444079D-16 + 2 29 3 2 0.44990739332757D+00 0.71022324757906D-17 + 3 29 3 2 0.40863253993533D+00 0.17660142403999D-15 + 1 30 3 2 -0.19633221284502D-01 0.35123942318896D-16 + 2 30 3 2 -0.13890585649112D+00 0.11294607152023D-16 + 3 30 3 2 0.22596097662279D+00 0.74367187314223D-16 + 1 31 3 2 -0.31903292504865D+00 0.29994698372317D-16 + 2 31 3 2 -0.57215740886046D+00 0.12895813316036D-16 + 3 31 3 2 -0.87452191548157D+00 0.71030810203756D-16 + 1 32 3 2 0.39313346883589D+01 0.40338424441377D-18 + 2 32 3 2 -0.26312833464487D+00 -0.37124674525857D-16 + 3 32 3 2 -0.50448506524643D+01 0.47771730488271D-16 + 1 33 3 2 -0.30926262122503D+01 0.21327262827963D-18 + 2 33 3 2 0.12001748544478D+01 -0.29978941913398D-16 + 3 33 3 2 -0.29700809879205D+01 0.21787576080125D-15 + 1 34 3 2 -0.12521758778297D+00 0.35656903542221D-17 + 2 34 3 2 0.16403408343850D+00 0.24127308870608D-16 + 3 34 3 2 -0.26027564892998D+00 -0.21870235485132D-15 + 1 35 3 2 0.10929782699040D+00 -0.18645403308974D-17 + 2 35 3 2 0.14001481061544D+00 0.23788554711398D-16 + 3 35 3 2 -0.21619915347569D+00 -0.96340047615565D-16 + 1 36 3 2 -0.31565116753994D+01 0.14656619418005D-17 + 2 36 3 2 -0.14939482683633D+01 0.21328378204205D-17 + 3 36 3 2 -0.31160979668871D+01 0.29696006885032D-15 + 1 37 3 2 0.35866822654581D+01 0.12605390327668D-16 + 2 37 3 2 -0.12650830491787D+01 0.34807001160816D-17 + 3 37 3 2 -0.32056288879744D+01 -0.31071383938949D-15 + 1 38 3 2 0.21810506358726D+00 -0.55458028481964D-18 + 2 38 3 2 0.56988572847706D-01 0.35980103089578D-16 + 3 38 3 2 -0.42455260074795D+00 -0.29151881167739D-15 + 1 39 3 2 -0.99376337698371D-01 -0.28868851371274D-17 + 2 39 3 2 -0.10250397564470D+00 0.29316850743373D-16 + 3 39 3 2 -0.20308108836415D+00 0.16916079002186D-15 + 1 40 3 2 0.51547249503314D+00 0.28620840097153D-16 + 2 40 3 2 0.59930329214814D+00 0.11072650488929D-16 + 3 40 3 2 -0.51190641997774D+00 -0.19064060889799D-15 + 1 41 3 2 -0.35239402038777D+00 -0.16821664075525D-16 + 2 41 3 2 0.29567997302833D+00 -0.32790356422316D-16 + 3 41 3 2 0.19045136784064D+00 -0.21694366459962D-15 + 1 42 3 2 0.23104945061833D+00 0.99493672468050D-17 + 2 42 3 2 -0.16842214387475D+00 -0.17490614425393D-16 + 3 42 3 2 0.27420601099828D+00 0.76965990358134D-15 + 1 43 3 2 0.14835666597383D+02 -0.27862473789282D-16 + 2 43 3 2 0.18445644366106D+02 -0.39048429138066D-16 + 3 43 3 2 -0.26885952984624D+02 0.14387393271676D-15 + 1 44 3 2 0.84150502029040D-02 -0.86664832493615D-17 + 2 44 3 2 -0.18427734937984D-01 0.26846669873244D-16 + 3 44 3 2 0.29520040261450D+00 0.31661750727420D-16 + 1 45 3 2 0.45618244863945D+00 0.35793919956083D-16 + 2 45 3 2 0.47710773077175D+00 -0.93346392264819D-17 + 3 45 3 2 -0.80735361833169D+00 -0.26394885519889D-15 + 1 46 3 2 0.51417559201220D+00 -0.82996374203255D-17 + 2 46 3 2 0.69117859893013D+00 -0.19346901096777D-16 + 3 46 3 2 -0.37756417728968D+00 -0.23565995696305D-15 + 1 47 3 2 -0.17548457128180D+00 0.68989016866481D-16 + 2 47 3 2 -0.18019124741021D+00 0.35963936540600D-16 + 3 47 3 2 0.31305621381462D-01 0.20880252271403D-16 + 1 48 3 2 0.93528066163434D-01 0.64251834901339D-16 + 2 48 3 2 -0.15415690230455D+00 -0.52706001531935D-16 + 3 48 3 2 0.54598954673190D-01 -0.31568451213298D-16 + 1 49 3 2 0.14160356266369D+01 -0.50833053807220D-16 + 2 49 3 2 -0.14307103494987D+01 -0.78467094011376D-17 + 3 49 3 2 0.30102194717558D+01 -0.72187102687760D-17 + 1 50 3 2 0.27447155986461D-01 0.24896958861607D-16 + 2 50 3 2 0.10691912141849D+01 0.77177996324989D-17 + 3 50 3 2 0.12432638468928D+01 0.68040576866998D-16 + 1 51 3 2 -0.12748485259548D+01 0.95929606986654D-16 + 2 51 3 2 -0.10021922192644D+01 -0.89372037210863D-16 + 3 51 3 2 0.28933820724064D+01 -0.17503365515322D-16 + 1 52 3 2 0.21515632650469D+00 0.12711937222677D-16 + 2 52 3 2 -0.57395443418605D-01 0.10399305554503D-15 + 3 52 3 2 0.10115026623172D+00 -0.45578748108279D-16 + 1 53 3 2 0.12509741864495D+01 0.22084551533403D-16 + 2 53 3 2 0.11229219114031D+01 -0.33663374228823D-16 + 3 53 3 2 0.31297097965360D+01 0.85228503444504D-16 + 1 54 3 2 -0.16758652877981D+00 -0.34217323074723D-17 + 2 54 3 2 0.19848275994538D+00 -0.11872823802040D-16 + 3 54 3 2 0.92045836170667D-01 -0.14213363856586D-16 + 1 55 3 2 -0.16276630588903D+01 0.15575280468237D-16 + 2 55 3 2 0.14062279707536D+01 -0.27783190381846D-17 + 3 55 3 2 0.28299399254470D+01 -0.20532304955949D-16 + 1 56 3 2 -0.83325922317387D+00 -0.43228079591903D-16 + 2 56 3 2 0.37174795431042D-01 0.22945762956702D-16 + 3 56 3 2 0.10055228481422D+01 -0.13864927569399D-15 + 1 57 3 2 -0.14117436603271D+02 -0.45478801895845D-16 + 2 57 3 2 0.13709035226119D+02 -0.29116399827176D-16 + 3 57 3 2 -0.25536535365739D+02 0.33142632874476D-15 + 1 58 3 2 -0.52165191449956D+00 0.11995548953103D-16 + 2 58 3 2 0.43526276143988D+00 -0.24138716283250D-16 + 3 58 3 2 -0.60975442156202D+00 0.18857341468887D-15 + 1 59 3 2 0.35138773653670D+00 -0.36654759395191D-17 + 2 59 3 2 0.37492435584406D+00 0.32884023583560D-16 + 3 59 3 2 0.20982897868919D+00 -0.99068438263370D-16 + 1 60 3 2 -0.35059274663601D+00 0.11837416808431D-17 + 2 60 3 2 0.23675050006732D+00 -0.23299599951460D-16 + 3 60 3 2 -0.62129055617945D+00 -0.42064571227149D-16 + 1 61 3 2 -0.29686620036028D+00 -0.11637556253375D-16 + 2 61 3 2 -0.32225879136919D+00 0.86110166070769D-17 + 3 61 3 2 0.22912581400825D+00 0.16582218468294D-15 + 1 62 3 2 0.17540967717463D+00 -0.39312225020148D-16 + 2 62 3 2 0.20826631690892D+00 0.25188885562003D-16 + 3 62 3 2 0.53148809985973D+00 0.35663249430407D-17 + 1 63 3 2 -0.36482159917444D+00 0.90231149069744D-18 + 2 63 3 2 0.46614700581314D+00 0.26128004402296D-16 + 3 63 3 2 -0.91736458850017D+00 0.17100544458267D-15 + 1 64 3 2 0.93420599972228D-01 0.20178265458303D-17 + 2 64 3 2 0.62265338893122D-01 0.25548789103675D-16 + 3 64 3 2 -0.31062896647659D+00 0.61960361541113D-16 + 1 65 3 2 0.93202794916056D+00 0.51808980447738D-18 + 2 65 3 2 -0.82337808285109D+00 -0.10710927595612D-15 + 3 65 3 2 -0.84622544378206D+00 -0.28691031635933D-15 + 1 1 1 3 -0.22583673303681D+00 0.50699118418401D-18 + 2 1 1 3 -0.71182342370793D-01 -0.11530948462801D-17 + 3 1 1 3 0.68881838386677D-01 0.53737922943046D-18 + 1 2 1 3 0.17064624383969D+01 -0.66614138722376D-19 + 2 2 1 3 -0.19346501631644D-01 -0.23063350410956D-18 + 3 2 1 3 -0.19049686090145D+00 0.29705108039140D-18 + 1 3 1 3 0.12287990253502D+03 0.00000000000000D+00 + 2 3 1 3 -0.34256587073393D+01 0.00000000000000D+00 + 3 3 1 3 -0.10712478210702D+01 0.00000000000000D+00 + 1 4 1 3 -0.23816838007237D+00 -0.23675576208394D-17 + 2 4 1 3 -0.13933129234016D-02 -0.17251854834648D-17 + 3 4 1 3 -0.18366634266786D-02 -0.13118021896706D-18 + 1 5 1 3 -0.12969776100869D+00 0.45341567230980D-16 + 2 5 1 3 -0.74074581612352D+00 -0.56390347963489D-17 + 3 5 1 3 0.85317621194837D+00 0.72382523455172D-17 + 1 6 1 3 -0.16720242091942D+00 0.70094992048919D-17 + 2 6 1 3 -0.38930185792206D-01 0.13243111011184D-18 + 3 6 1 3 -0.22811652599746D-01 -0.57357732875849D-19 + 1 7 1 3 -0.35562475976301D+00 0.74921853965621D-17 + 2 7 1 3 0.73118224368082D-01 0.49564847775645D-18 + 3 7 1 3 0.19184240360457D-02 -0.94732624432903D-18 + 1 8 1 3 -0.12290306718725D+00 -0.38671341960999D-17 + 2 8 1 3 -0.12182195732168D-01 -0.29893835709346D-18 + 3 8 1 3 -0.22596539548495D-01 -0.22080091262109D-18 + 1 9 1 3 -0.27426623157198D+02 -0.14776681583596D-15 + 2 9 1 3 0.15029971305917D+02 -0.46163716683775D-16 + 3 9 1 3 0.17262113001736D+02 0.26939328326799D-16 + 1 10 1 3 0.16014908008612D+00 0.10057555902072D-15 + 2 10 1 3 -0.29407440653510D+00 -0.17664833718382D-16 + 3 10 1 3 0.27827078820673D+00 -0.25474888265794D-16 + 1 11 1 3 0.21120081637538D+00 0.80798298227727D-16 + 2 11 1 3 0.42014911564423D+00 0.15658426248992D-16 + 3 11 1 3 -0.31360025830505D+00 0.11432483402891D-16 + 1 12 1 3 -0.83310310466002D+00 -0.73900170628096D-16 + 2 12 1 3 0.62977614684491D+00 0.14445719441699D-16 + 3 12 1 3 0.49860176723086D+00 0.33155446258415D-16 + 1 13 1 3 0.50241961411297D+00 0.21928684777315D-15 + 2 13 1 3 0.29075513625965D+00 0.21281250809182D-17 + 3 13 1 3 0.32850170110727D+00 0.21130982788144D-16 + 1 14 1 3 -0.40543449355577D+00 0.35762047759401D-16 + 2 14 1 3 0.45282468874007D+00 0.13066983972077D-16 + 3 14 1 3 0.46794458107698D+00 -0.58050151757177D-17 + 1 15 1 3 0.25512738324407D+00 -0.97753952673212D-17 + 2 15 1 3 0.25033869836143D-01 0.18884835323046D-16 + 3 15 1 3 0.35339012791915D-01 -0.29127758780736D-16 + 1 16 1 3 0.29709267831613D+01 0.55189789782569D-16 + 2 16 1 3 -0.16200999420939D+01 0.15077050450558D-16 + 3 16 1 3 -0.14257686930433D+01 0.55174420958538D-17 + 1 17 1 3 0.31579413995747D+01 0.92620354792396D-16 + 2 17 1 3 0.11608650034962D+01 0.58859851088113D-17 + 3 17 1 3 -0.11838219701199D+01 -0.17253850513538D-16 + 1 18 1 3 0.30385091776968D+01 -0.22796723831343D-16 + 2 18 1 3 -0.13146956625237D+01 0.77129977551548D-17 + 3 18 1 3 0.11550108999979D+01 0.31831124898189D-16 + 1 19 1 3 0.30681912205083D+01 0.26912333188374D-16 + 2 19 1 3 0.12999869291335D+01 0.28035861560782D-16 + 3 19 1 3 0.12892733219551D+01 0.32715695899086D-16 + 1 20 1 3 0.28208267547113D-01 0.45198508755981D-16 + 2 20 1 3 -0.18188827530424D+00 0.28672188716737D-16 + 3 20 1 3 -0.10915285207293D+00 0.25402820037059D-16 + 1 21 1 3 0.17628049017320D-01 0.22170832142166D-16 + 2 21 1 3 0.72483235593101D-01 -0.99364687682072D-18 + 3 21 1 3 -0.67088866551376D-01 0.17799377187369D-16 + 1 22 1 3 0.87836048719617D-01 0.59031924897530D-16 + 2 22 1 3 0.68445111688901D+00 -0.22752130592917D-16 + 3 22 1 3 -0.71809348402237D+00 -0.22596764538565D-16 + 1 23 1 3 -0.40115266392881D-01 -0.83389925705423D-16 + 2 23 1 3 0.14432681694243D+00 0.12881499503583D-16 + 3 23 1 3 0.15890958213720D+00 -0.22218050731181D-16 + 1 24 1 3 0.20558033360883D+00 -0.19419493464408D-16 + 2 24 1 3 -0.25207267195375D+00 0.29964513117050D-17 + 3 24 1 3 0.34287793151198D+00 -0.15943959896441D-18 + 1 25 1 3 -0.84916661268428D+00 -0.16951317669304D-15 + 2 25 1 3 -0.37718079151060D+00 0.13209916376200D-16 + 3 25 1 3 -0.47131622603680D+00 -0.39728544348152D-16 + 1 26 1 3 -0.25470941862985D+02 -0.11535230949694D-15 + 2 26 1 3 -0.13940477087648D+02 0.31841729040030D-17 + 3 26 1 3 -0.13516280332068D+02 -0.31507625597184D-16 + 1 27 1 3 0.27295797963199D+00 0.70884320462192D-16 + 2 27 1 3 0.39028506538331D+00 0.74906838283987D-17 + 3 27 1 3 -0.40294145954662D+00 0.31686823881150D-16 + 1 28 1 3 -0.37941196594301D+00 0.13809545208639D-15 + 2 28 1 3 -0.32676665815979D+00 -0.11263061071076D-16 + 3 28 1 3 -0.44374494864420D+00 -0.24038281352439D-16 + 1 29 1 3 0.25051017034733D+00 0.15811069700647D-15 + 2 29 1 3 0.23561371178645D-01 0.32381437204564D-16 + 3 29 1 3 0.11479705400310D+00 0.38731063282436D-16 + 1 30 1 3 0.44208024797583D+00 0.11707917022061D-16 + 2 30 1 3 -0.41383561013824D+00 -0.36283383446003D-17 + 3 30 1 3 -0.38566323318886D+00 -0.24283780355523D-16 + 1 31 1 3 -0.64234105542511D+00 0.21864932971096D-16 + 2 31 1 3 -0.38978028340426D+00 -0.20328088698983D-16 + 3 31 1 3 -0.42614734542216D+00 0.66389699130504D-16 + 1 32 1 3 -0.14227691375252D+00 -0.20083676947035D-15 + 2 32 1 3 -0.55458505988007D+00 -0.21862525251836D-16 + 3 32 1 3 -0.63788193896405D+00 0.47532717010467D-18 + 1 33 1 3 -0.20285354699657D+00 -0.19898043147249D-15 + 2 33 1 3 -0.14764773017077D+00 -0.86588825861243D-16 + 3 33 1 3 -0.21870410963722D-01 0.59574498224857D-18 + 1 34 1 3 -0.29233488661134D+01 -0.26224986284266D-16 + 2 34 1 3 0.17402778573232D+01 0.46066588530011D-16 + 3 34 1 3 -0.28846658458855D+01 -0.48243005177505D-17 + 1 35 1 3 -0.29596538007428D+01 0.11715791508787D-15 + 2 35 1 3 -0.12343771874599D+01 -0.51055166998064D-16 + 3 35 1 3 0.32008726391262D+01 0.44044920785612D-18 + 1 36 1 3 -0.21100302837231D+00 0.12757554575184D-15 + 2 36 1 3 -0.25560236999471D-01 0.58275858611285D-17 + 3 36 1 3 -0.18875194431668D+00 0.51662334831512D-17 + 1 37 1 3 -0.35729967959954D+00 -0.10812119316578D-15 + 2 37 1 3 -0.25898368449814D+00 -0.27050722920634D-16 + 3 37 1 3 0.21810506358726D+00 -0.14117359367726D-17 + 1 38 1 3 -0.29895125632169D+01 -0.19049835291300D-15 + 2 38 1 3 0.16276630588903D+01 0.87577259002665D-16 + 3 38 1 3 0.29337777170518D+01 -0.11583305899942D-17 + 1 39 1 3 -0.30112724456128D+01 0.14723051289690D-15 + 2 39 1 3 -0.14136220409059D+01 -0.64700486140337D-17 + 3 39 1 3 -0.32825700744194D+01 0.44163247945592D-17 + 1 40 1 3 -0.27140407075915D+02 0.73055365879637D-16 + 2 40 1 3 -0.14248162262728D+02 -0.39754424964825D-16 + 3 40 1 3 0.14840802524424D+02 0.36650382540198D-16 + 1 41 1 3 0.18966302382550D+00 -0.31328116502245D-16 + 2 41 1 3 0.33632806315325D+00 -0.15153599287039D-17 + 3 41 1 3 0.23380228617191D+00 -0.15443182079473D-16 + 1 42 1 3 0.62632122828491D+00 -0.89409868384153D-16 + 2 42 1 3 -0.61070928979987D+00 0.34238497990146D-17 + 3 42 1 3 -0.21034855301276D+00 -0.30790950705566D-16 + 1 43 1 3 -0.80985736801164D+00 0.10578899035064D-15 + 2 43 1 3 -0.33968534256652D+00 -0.48533694262656D-16 + 3 43 1 3 0.35556774802707D+00 0.10035648921138D-16 + 1 44 1 3 0.36923994026917D+00 0.13953546634162D-15 + 2 44 1 3 -0.33003961467011D+00 0.23656019032345D-16 + 3 44 1 3 0.26653682768796D+00 -0.12280891314261D-16 + 1 45 1 3 -0.49304833638927D+00 -0.88929549416762D-17 + 2 45 1 3 -0.35014435252327D+00 0.33867782324363D-16 + 3 45 1 3 0.43710435220490D+00 -0.20846399734880D-16 + 1 46 1 3 -0.50259411538244D+00 -0.59949544111140D-16 + 2 46 1 3 -0.27401375196434D+00 0.18149039463061D-16 + 3 46 1 3 0.59033759901085D+00 -0.30453767518061D-19 + 1 47 1 3 0.81947051681331D-01 0.17303518830666D-15 + 2 47 1 3 -0.24610974420285D+00 0.22523755931384D-18 + 3 47 1 3 -0.10295060887454D+00 -0.20837705326395D-16 + 1 48 1 3 -0.29949756481198D+01 -0.11211874829843D-16 + 2 48 1 3 -0.30971891017044D+01 -0.13082818017692D-17 + 3 48 1 3 0.11971059792642D+01 0.77129242351754D-17 + 1 49 1 3 -0.23994603525543D+00 0.95036548744306D-16 + 2 49 1 3 0.65890303523437D-01 -0.20202692942906D-18 + 3 49 1 3 0.89465979828499D-01 0.23627665604388D-16 + 1 50 1 3 -0.30338589403061D+01 -0.62337594482178D-16 + 2 50 1 3 0.46171555433879D+01 0.47650900030076D-17 + 3 50 1 3 -0.17512457825152D+00 -0.73569570858596D-16 + 1 51 1 3 -0.20352226633815D+00 0.16507563797155D-15 + 2 51 1 3 -0.36582342768194D-01 -0.94204093400461D-19 + 3 51 1 3 -0.14350644613521D+00 -0.54091321130640D-17 + 1 52 1 3 -0.32291832719729D+01 0.28860806576447D-16 + 2 52 1 3 0.35866822654581D+01 -0.10677221901659D-17 + 3 52 1 3 0.12574855522480D+01 0.83920503095785D-16 + 1 53 1 3 -0.23629068496630D+00 0.21805331445615D-15 + 2 53 1 3 -0.11720523352892D+00 -0.16305777895985D-17 + 3 53 1 3 0.10296464443796D+00 -0.15135575875343D-16 + 1 54 1 3 -0.29694333512828D+01 -0.20682200246157D-15 + 2 54 1 3 -0.31188104911044D+01 -0.91107409106523D-19 + 3 54 1 3 -0.13216691511330D+01 -0.96425015544439D-16 + 1 55 1 3 -0.35757345629169D+00 -0.16454882454500D-15 + 2 55 1 3 0.19847109189109D+00 -0.38022692030977D-17 + 3 55 1 3 -0.21515632650469D+00 -0.37013537348727D-16 + 1 56 1 3 0.62025028896527D-02 -0.77128313555503D-16 + 2 56 1 3 -0.53763771560447D-01 0.15260413329048D-16 + 3 56 1 3 0.26522545003792D+00 -0.22891435091296D-16 + 1 57 1 3 -0.77717561802624D+00 0.30595774323783D-15 + 2 57 1 3 0.44805328709032D+00 -0.19394841065550D-17 + 3 57 1 3 -0.48194379625108D+00 0.83665850989725D-17 + 1 58 1 3 -0.27022189572521D+02 0.32000770938058D-16 + 2 58 1 3 0.14558835678490D+02 0.21008942647585D-16 + 3 58 1 3 -0.17380976115390D+02 0.20043360474938D-16 + 1 59 1 3 0.22931480882146D+00 0.37601530647444D-16 + 2 59 1 3 -0.35660563057979D+00 -0.28595571385209D-16 + 3 59 1 3 -0.32406161278393D+00 -0.25841680724071D-16 + 1 60 1 3 -0.39640379417134D+00 -0.79783291499312D-16 + 2 60 1 3 0.63674313804243D+00 -0.10582791062492D-16 + 3 60 1 3 -0.59823138478369D+00 -0.24342069182138D-16 + 1 61 1 3 0.27664613061127D+00 0.63198882745764D-16 + 2 61 1 3 0.26176467133674D-02 0.19071730559930D-16 + 3 61 1 3 -0.11650839707697D-02 -0.86983032869364D-18 + 1 62 1 3 0.31422049400924D+00 0.38257369189640D-16 + 2 62 1 3 0.21516708156434D+00 0.60490339297036D-16 + 3 62 1 3 0.29825601567353D-02 0.10028088703464D-15 + 1 63 1 3 -0.45333922621259D+00 -0.16375584303322D-15 + 2 63 1 3 0.51501859925011D+00 0.31148738689624D-16 + 3 63 1 3 -0.52535734949561D+00 0.31407920199373D-17 + 1 64 1 3 -0.14478320412950D+00 0.58878230460547D-16 + 2 64 1 3 -0.73174246076914D-01 -0.90292480757408D-17 + 3 64 1 3 -0.66647925942098D-01 -0.14284632512459D-16 + 1 65 1 3 -0.50053457424164D+00 0.21235627546980D-15 + 2 65 1 3 0.11023823220038D+01 0.40655380595991D-17 + 3 65 1 3 0.46103480457848D+00 0.18537507666250D-16 + 1 1 2 3 -0.80488204615416D-03 -0.11530948462801D-17 + 2 1 2 3 -0.36966588801673D+00 0.14642482578855D-16 + 3 1 2 3 -0.75794711745998D-01 -0.43552568841801D-17 + 1 2 2 3 -0.19049686090145D+00 -0.23063350410956D-18 + 2 2 2 3 0.14254411493811D+00 -0.12709075550008D-16 + 3 2 2 3 -0.52128788298786D-01 0.10409554944175D-17 + 1 3 2 3 -0.34256587073393D+01 0.00000000000000D+00 + 2 3 2 3 0.12277108058833D+03 0.00000000000000D+00 + 3 3 2 3 0.62995371830209D+00 0.00000000000000D+00 + 1 4 2 3 -0.36501365675336D-02 -0.17251854834648D-17 + 2 4 2 3 -0.25609173438378D+00 0.54741527887949D-17 + 3 4 2 3 -0.27708198192499D-02 -0.12352540419461D-17 + 1 5 2 3 -0.37629163850713D-01 -0.56390347963489D-17 + 2 5 2 3 0.10020919058717D+01 -0.21294676980103D-17 + 3 5 2 3 -0.10028054761513D+01 0.39608852002048D-17 + 1 6 2 3 0.53321962162253D-01 0.13243111011184D-18 + 2 6 2 3 -0.95554353237722D-01 0.40183752422115D-17 + 3 6 2 3 0.25872687761077D-01 -0.15698371150561D-18 + 1 7 2 3 -0.46994349775083D-01 0.49564847775645D-18 + 2 7 2 3 -0.31749180709190D+00 -0.32696372849164D-17 + 3 7 2 3 -0.40416366528409D-01 -0.14138701148191D-17 + 1 8 2 3 0.36046341819233D-01 -0.29893835709346D-18 + 2 8 2 3 0.15513921470717D+01 0.13997111976611D-17 + 3 8 2 3 0.11411960095221D+00 0.23429639213927D-17 + 1 9 2 3 0.15049561448618D+02 -0.46163716683775D-16 + 2 9 2 3 -0.26971487657406D+02 -0.50367791507813D-16 + 3 9 2 3 -0.17191015790917D+02 -0.35500373906946D-16 + 1 10 2 3 -0.30357963965606D+00 -0.17664833718382D-16 + 2 10 2 3 0.17730212355830D+00 0.86020994517928D-16 + 3 10 2 3 -0.29456117170822D+00 0.10298191614592D-16 + 1 11 2 3 0.33996042404435D+00 0.15658426248992D-16 + 2 11 2 3 0.54540329466193D+00 0.28122893573071D-15 + 3 11 2 3 -0.36794478809992D+00 0.98160695203356D-17 + 1 12 2 3 0.50563856021151D+00 0.14445719441699D-16 + 2 12 2 3 -0.29904993474147D+00 0.96188865858618D-16 + 3 12 2 3 -0.33310674753374D+00 0.19109939396655D-16 + 1 13 2 3 0.33741997843479D+00 0.21281250809182D-17 + 2 13 2 3 0.15499804625747D+00 -0.34360503844225D-15 + 3 13 2 3 0.28740111017937D+00 -0.21943034333072D-16 + 1 14 2 3 0.47912631614103D+00 0.13066983972077D-16 + 2 14 2 3 -0.79391920416359D+00 -0.61185711044571D-16 + 3 14 2 3 -0.51072631933869D+00 -0.66827277512457D-17 + 1 15 2 3 0.33953700215028D-01 0.18884835323046D-16 + 2 15 2 3 0.26036168030253D+00 -0.12797764815747D-15 + 3 15 2 3 -0.22788356494302D-01 -0.36593900647354D-16 + 1 16 2 3 0.16200999420939D+01 0.15077050450558D-16 + 2 16 2 3 -0.28486160486720D+01 -0.12150357080378D-15 + 3 16 2 3 -0.28968247934280D+01 0.15308425643924D-17 + 1 17 2 3 -0.14131179231746D+01 0.58859851088113D-17 + 2 17 2 3 -0.29903000869573D+01 -0.76945664179432D-15 + 3 17 2 3 0.32598618654775D+01 -0.48682608798154D-18 + 1 18 2 3 0.12138580036775D+01 0.77129977551548D-17 + 2 18 2 3 -0.27516318762314D+01 0.22075539632882D-15 + 3 18 2 3 0.29073230193539D+01 0.34598950333505D-17 + 1 19 2 3 -0.12892733219551D+01 0.28035861560782D-16 + 2 19 2 3 -0.31939237968509D+01 0.24290541698917D-15 + 3 19 2 3 -0.30631974865687D+01 0.80246996695270D-17 + 1 20 2 3 0.43402375418692D-01 0.28672188716737D-16 + 2 20 2 3 -0.14082776768839D+00 0.37053011872614D-16 + 3 20 2 3 0.15173137220633D+00 0.18745344824219D-18 + 1 21 2 3 -0.13471322032933D+00 -0.99364687682072D-18 + 2 21 2 3 -0.17065132479147D+00 -0.77888889316175D-16 + 3 21 2 3 -0.11291188076494D+00 0.16530625913728D-17 + 1 22 2 3 0.25019036966428D+00 -0.22752130592917D-16 + 2 22 2 3 -0.11649945096036D+01 0.71799531751445D-16 + 3 22 2 3 0.99491676041998D+00 0.30327818623950D-17 + 1 23 2 3 -0.42487475494263D-01 0.12881499503583D-16 + 2 23 2 3 -0.26792518326818D+00 -0.52927200717885D-16 + 3 23 2 3 -0.21360777461616D-02 -0.20431876424987D-18 + 1 24 2 3 -0.26928149076511D+00 0.29964513117050D-17 + 2 24 2 3 0.34107393969036D+00 0.13269261829621D-15 + 3 24 2 3 -0.23445931572647D+00 -0.13350715055129D-16 + 1 25 2 3 -0.41780254090831D+00 0.13209916376200D-16 + 2 25 2 3 -0.51011838563335D+00 0.17178173000260D-15 + 3 25 2 3 -0.48020796007542D+00 -0.10871907177793D-16 + 1 26 2 3 -0.14083423636587D+02 0.31841729040030D-17 + 2 26 2 3 -0.26651846455054D+02 -0.34575956764932D-15 + 3 26 2 3 -0.14783799473417D+02 0.16715597897249D-16 + 1 27 2 3 0.36011376274168D+00 0.74906838283987D-17 + 2 27 2 3 0.14604195947365D+00 -0.88571123919259D-17 + 3 27 2 3 -0.29133872444978D+00 0.20682422409000D-16 + 1 28 2 3 -0.39126828577215D+00 -0.11263061071076D-16 + 2 28 2 3 -0.55512387936140D+00 -0.49266491812473D-16 + 3 28 2 3 -0.44826197649394D+00 0.62353167263043D-17 + 1 29 2 3 -0.19633221284498D-01 0.32381437204564D-16 + 2 29 2 3 0.22596097662279D+00 -0.65282472459265D-16 + 3 29 2 3 -0.13890585649112D+00 -0.31296038913099D-16 + 1 30 2 3 -0.30221072566820D+00 -0.36283383446003D-17 + 2 30 2 3 0.40863253993533D+00 -0.18260257188775D-15 + 3 30 2 3 0.44990739332757D+00 -0.19018347767748D-16 + 1 31 2 3 -0.31903292504870D+00 -0.20328088698983D-16 + 2 31 2 3 -0.87452191548157D+00 0.85116325769978D-17 + 3 31 2 3 -0.57215740886046D+00 0.61265672318980D-16 + 1 32 2 3 0.27447155986469D-01 -0.21862525251836D-16 + 2 32 2 3 0.12432638468928D+01 -0.58212580762205D-16 + 3 32 2 3 0.10691912141850D+01 0.26785659226168D-17 + 1 33 2 3 0.93528066163435D-01 -0.86588825861243D-16 + 2 33 2 3 0.54598954673188D-01 0.15378608633766D-15 + 3 33 2 3 -0.15415690230455D+00 0.11253567094111D-16 + 1 34 2 3 -0.12748485259548D+01 0.46066588530011D-16 + 2 34 2 3 0.28933820724064D+01 0.13667796662999D-16 + 3 34 2 3 -0.10021922192644D+01 0.16917277000809D-16 + 1 35 2 3 0.14160356266369D+01 -0.51055166998064D-16 + 2 35 2 3 0.30102194717558D+01 0.10676039783473D-15 + 3 35 2 3 -0.14307103494987D+01 0.17517566095644D-16 + 1 36 2 3 -0.16758652877981D+00 0.58275858611285D-17 + 2 36 2 3 0.92045836170679D-01 -0.15371784705428D-16 + 3 36 2 3 0.19848275994538D+00 0.16092565622111D-16 + 1 37 2 3 0.21515632650469D+00 -0.27050722920634D-16 + 2 37 2 3 0.10115026623173D+00 -0.15689805471716D-15 + 3 37 2 3 -0.56988572847707D-01 -0.65009433174819D-17 + 1 38 2 3 -0.16276630588903D+01 0.87577259002665D-16 + 2 38 2 3 0.28299399254470D+01 -0.15711852031947D-16 + 3 38 2 3 0.14062279707536D+01 0.17812791355892D-16 + 1 39 2 3 0.12509741864495D+01 -0.64700486140337D-17 + 2 39 2 3 0.31297097965360D+01 0.10739464912464D-15 + 3 39 2 3 0.11229219114031D+01 0.99584618140087D-17 + 1 40 2 3 -0.14117436603271D+02 -0.39754424964825D-16 + 2 40 2 3 -0.25536535365739D+02 0.11980696723858D-15 + 3 40 2 3 0.13709035226119D+02 0.27695879323574D-16 + 1 41 2 3 0.35138773653670D+00 -0.15153599287039D-17 + 2 41 2 3 0.20982897868919D+00 0.39112659298960D-16 + 3 41 2 3 0.37492435584406D+00 -0.38057033482322D-16 + 1 42 2 3 -0.83325922317388D+00 0.34238497990146D-17 + 2 42 2 3 0.10055228481423D+01 -0.17521099672862D-15 + 3 42 2 3 0.37174795431051D-01 0.36327838111604D-16 + 1 43 2 3 -0.52165191449955D+00 -0.48533694262656D-16 + 2 43 2 3 -0.60975442156202D+00 0.19710975144707D-15 + 3 43 2 3 0.43526276143988D+00 -0.31846667436173D-16 + 1 44 2 3 -0.29686620036028D+00 0.23656019032345D-16 + 2 44 2 3 0.22912581400825D+00 -0.78437050133221D-16 + 3 44 2 3 -0.32225879136919D+00 -0.16801201656030D-16 + 1 45 2 3 -0.36482159917444D+00 0.33867782324363D-16 + 2 45 2 3 -0.91736458850017D+00 -0.17203159013261D-15 + 3 45 2 3 0.46614700581314D+00 0.16970365660986D-16 + 1 46 2 3 -0.35059274663601D+00 0.18149039463061D-16 + 2 46 2 3 -0.62129055617945D+00 0.10487057265627D-16 + 3 46 2 3 0.23675050006731D+00 -0.22817640621798D-16 + 1 47 2 3 0.17540967717463D+00 0.22523755931384D-18 + 2 47 2 3 0.53148809985974D+00 -0.79395501614043D-16 + 3 47 2 3 0.20826631690892D+00 0.89444126319821D-17 + 1 48 2 3 -0.30926262122503D+01 -0.13082818017692D-17 + 2 48 2 3 -0.29700809879204D+01 0.31328472151232D-15 + 3 48 2 3 0.12001748544478D+01 0.10307766203455D-15 + 1 49 2 3 0.10929782699042D+00 -0.20202692942906D-18 + 2 49 2 3 -0.21619915347569D+00 0.15195230819135D-15 + 3 49 2 3 0.14001481061544D+00 0.83990388590714D-16 + 1 50 2 3 0.39313346883593D+01 0.47650900030076D-17 + 2 50 2 3 -0.50448506524643D+01 -0.47245377780989D-17 + 3 50 2 3 -0.26312833464488D+00 -0.83992812189032D-16 + 1 51 2 3 -0.12521758778296D+00 -0.94204093400461D-19 + 2 51 2 3 -0.26027564892998D+00 -0.27035038108642D-15 + 3 51 2 3 0.16403408343850D+00 -0.36517200401794D-16 + 1 52 2 3 0.35866822654581D+01 -0.10677221901659D-17 + 2 52 2 3 -0.32056288879744D+01 0.30900143041320D-15 + 3 52 2 3 -0.12650830491787D+01 0.95853804233186D-16 + 1 53 2 3 -0.99376337698372D-01 -0.16305777895985D-17 + 2 53 2 3 -0.20308108836415D+00 -0.26974133494841D-15 + 3 53 2 3 -0.10250397564470D+00 -0.93626004767716D-16 + 1 54 2 3 -0.31565116753994D+01 -0.91107409106523D-19 + 2 54 2 3 -0.31160979668871D+01 0.48460112222524D-16 + 3 54 2 3 -0.14939482683633D+01 0.34449009983927D-16 + 1 55 2 3 0.21810506358726D+00 -0.38022692030977D-17 + 2 55 2 3 -0.42455260074795D+00 0.28756483938493D-15 + 3 55 2 3 0.57395443418602D-01 -0.38265510405008D-16 + 1 56 2 3 0.23104945061835D+00 0.15260413329048D-16 + 2 56 2 3 0.27420601099831D+00 0.16290597184754D-15 + 3 56 2 3 -0.16842214387473D+00 -0.13979141001132D-16 + 1 57 2 3 0.51547249503314D+00 -0.19394841065550D-17 + 2 57 2 3 -0.51190641997774D+00 -0.80890186378846D-16 + 3 57 2 3 0.59930329214814D+00 0.36658816433661D-16 + 1 58 2 3 0.14835666597383D+02 0.21008942647585D-16 + 2 58 2 3 -0.26885952984624D+02 -0.14975377965896D-15 + 3 58 2 3 0.18445644366106D+02 -0.47347350217292D-17 + 1 59 2 3 -0.35239402038777D+00 -0.28595571385209D-16 + 2 59 2 3 0.19045136784064D+00 -0.37559922656246D-16 + 3 59 2 3 0.29567997302833D+00 0.25393623519924D-16 + 1 60 2 3 0.51417559201220D+00 -0.10582791062492D-16 + 2 60 2 3 -0.37756417728968D+00 -0.18458379676810D-15 + 3 60 2 3 0.69117859893014D+00 -0.44244872716404D-16 + 1 61 2 3 0.84150502029037D-02 0.19071730559930D-16 + 2 61 2 3 0.29520040261450D+00 0.19585421615323D-16 + 3 61 2 3 -0.18427734937984D-01 0.44487079605746D-19 + 1 62 2 3 -0.17548457128180D+00 0.60490339297036D-16 + 2 62 2 3 0.31305621381464D-01 0.52134670845643D-16 + 3 62 2 3 -0.18019124741021D+00 -0.16401504145992D-16 + 1 63 2 3 0.45618244863945D+00 0.31148738689624D-16 + 2 63 2 3 -0.80735361833170D+00 -0.22589979605002D-15 + 3 63 2 3 0.47710773077175D+00 -0.25573965986079D-16 + 1 64 2 3 0.93420599972255D-01 -0.90292480757408D-17 + 2 64 2 3 -0.31062896647660D+00 -0.95569850612915D-17 + 3 64 2 3 0.62265338893122D-01 0.18568340738840D-16 + 1 65 2 3 0.93202794916053D+00 0.40655380595991D-17 + 2 65 2 3 -0.84752663054832D+00 0.37259987002601D-16 + 3 65 2 3 -0.82400616371946D+00 -0.22958329987249D-16 + 1 1 3 3 -0.20095775691119D-01 0.53737922943046D-18 + 2 1 3 3 0.63860397410480D-01 -0.43552568841801D-17 + 3 1 3 3 -0.29997582769305D+00 0.31124313830954D-18 + 1 2 3 3 -0.19346501631644D-01 0.29705108039140D-18 + 2 2 3 3 0.31054074968618D-02 0.10409554944175D-17 + 3 2 3 3 0.14254411493812D+00 -0.20124378849109D-18 + 1 3 3 3 -0.10712478210702D+01 0.00000000000000D+00 + 2 3 3 3 0.62995371830208D+00 0.00000000000000D+00 + 3 3 3 3 0.12361603940764D+03 0.00000000000000D+00 + 1 4 3 3 0.31754131344396D-01 -0.13118021896706D-18 + 2 4 3 3 -0.17871430495605D-01 -0.12352540419461D-17 + 3 4 3 3 -0.38525272769518D+00 0.72633852921171D-17 + 1 5 3 3 -0.94007595960453D-02 0.72382523455172D-17 + 2 5 3 3 0.12637881894937D+01 0.39608852002048D-17 + 3 5 3 3 0.62991047216480D-01 0.16500587967512D-16 + 1 6 3 3 0.50822928074397D-01 -0.57357732875849D-19 + 2 6 3 3 0.12262395208868D-01 -0.15698371150561D-18 + 3 6 3 3 -0.84272004536127D-01 -0.10238752362364D-17 + 1 7 3 3 -0.24461857082302D-02 -0.94732624432903D-18 + 2 7 3 3 -0.34358997781744D-01 -0.14138701148191D-17 + 3 7 3 3 -0.20671006593298D+00 -0.10319456844810D-17 + 1 8 3 3 0.50187471622124D-01 -0.22080091262109D-18 + 2 8 3 3 -0.50182227588191D-01 0.23429639213927D-17 + 3 8 3 3 -0.67269915365607D-01 0.19494440966954D-17 + 1 9 3 3 0.17278320948682D+02 0.26939328326799D-16 + 2 9 3 3 -0.17165288984837D+02 -0.35500373906946D-16 + 3 9 3 3 -0.28264265805571D+02 -0.23841995694175D-15 + 1 10 3 3 0.25324393959627D+00 -0.25474888265794D-16 + 2 10 3 3 -0.30572683686539D+00 0.10298191614592D-16 + 3 10 3 3 0.41290445257318D+00 -0.30030409035023D-15 + 1 11 3 3 -0.34648445227572D+00 0.11432483402891D-16 + 2 11 3 3 -0.32100479112210D+00 0.98160695203356D-17 + 3 11 3 3 0.14062091422055D+00 0.10191911109202D-15 + 1 12 3 3 0.36425031176629D+00 0.33155446258415D-16 + 2 12 3 3 -0.38152268192090D+00 0.19109939396655D-16 + 3 12 3 3 -0.44110165423261D+00 -0.79407062786763D-16 + 1 13 3 3 0.33570155248117D+00 0.21130982788144D-16 + 2 13 3 3 0.34900987509091D+00 -0.21943034333072D-16 + 3 13 3 3 0.15825920575420D+00 0.27300915263980D-15 + 1 14 3 3 0.45850944608779D+00 -0.58050151757177D-17 + 2 14 3 3 -0.49654295837348D+00 -0.66827277512457D-17 + 3 14 3 3 -0.36210767937222D+00 0.15036910769254D-15 + 1 15 3 3 0.24465386896980D-01 -0.29127758780736D-16 + 2 15 3 3 -0.33216969269469D-01 -0.36593900647354D-16 + 3 15 3 3 0.24725792597649D+00 -0.25634001951343D-16 + 1 16 3 3 0.14257686930433D+01 0.55174420958538D-17 + 2 16 3 3 -0.28968247934280D+01 0.15308425643924D-17 + 3 16 3 3 -0.31083248747394D+01 -0.15772333734084D-15 + 1 17 3 3 0.14258506103839D+01 -0.17253850513538D-16 + 2 17 3 3 0.32724273548708D+01 -0.48682608798154D-18 + 3 17 3 3 -0.32389323475908D+01 0.26014228289816D-15 + 1 18 3 3 -0.12828034165548D+01 0.31831124898189D-16 + 2 18 3 3 0.28992922123548D+01 0.34598950333505D-17 + 3 18 3 3 -0.28512247146025D+01 0.26805104184382D-15 + 1 19 3 3 -0.12999869291335D+01 0.32715695899086D-16 + 2 19 3 3 -0.34661093519879D+01 0.80246996695270D-17 + 3 19 3 3 -0.31939237968509D+01 0.20233590883295D-16 + 1 20 3 3 0.46389530140496D-01 0.25402820037059D-16 + 2 20 3 3 0.16359920195150D+00 0.18745344824219D-18 + 3 20 3 3 -0.19250859648881D+00 -0.90554561563633D-16 + 1 21 3 3 0.10356308707007D+00 0.17799377187369D-16 + 2 21 3 3 -0.59446261974187D-01 0.16530625913728D-17 + 3 21 3 3 -0.28160457200432D+00 -0.24776624770784D-15 + 1 22 3 3 0.62056743571378D-02 -0.22596764538565D-16 + 2 22 3 3 -0.87950895163831D+00 0.30327818623950D-17 + 3 22 3 3 0.81365140915615D+00 -0.14249233329687D-15 + 1 23 3 3 -0.34258093331182D-01 -0.22218050731181D-16 + 2 23 3 3 0.49290147573131D-01 -0.20431876424987D-18 + 3 23 3 3 -0.23088084729193D+00 0.63739819386691D-16 + 1 24 3 3 0.27657730932818D+00 -0.15943959896441D-18 + 2 24 3 3 -0.13763729246429D+00 -0.13350715055129D-16 + 3 24 3 3 0.16887509052891D+00 0.89654365359469D-16 + 1 25 3 3 -0.47848284343538D+00 -0.39728544348152D-16 + 2 25 3 3 -0.48351314694592D+00 -0.10871907177793D-16 + 3 25 3 3 -0.42400915340020D+00 0.25086718296288D-15 + 1 26 3 3 -0.13752406199400D+02 -0.31507625597184D-16 + 2 26 3 3 -0.14890393670092D+02 0.16715597897249D-16 + 3 26 3 3 -0.25987538274335D+02 -0.87314552537707D-16 + 1 27 3 3 -0.38269152990934D+00 0.31686823881150D-16 + 2 27 3 3 -0.32807006299279D+00 0.20682422409000D-16 + 3 27 3 3 0.66408895613078D+00 0.28963839616819D-15 + 1 28 3 3 -0.47241760155952D+00 -0.24038281352439D-16 + 2 28 3 3 -0.44706759951066D+00 0.62353167263043D-17 + 3 28 3 3 -0.71530023363884D+00 0.10419922446654D-15 + 1 29 3 3 0.53470638894187D-01 0.38731063282436D-16 + 2 29 3 3 -0.38181601510457D-01 -0.31296038913099D-16 + 3 29 3 3 0.20857800944944D+00 -0.14057807767477D-15 + 1 30 3 3 -0.30252389954020D+00 -0.24283780355523D-16 + 2 30 3 3 0.28358065322038D+00 -0.19018347767748D-16 + 3 30 3 3 0.18304592510121D+00 0.64155882427353D-16 + 1 31 3 3 -0.29992653005333D+00 0.66389699130504D-16 + 2 31 3 3 -0.34588094598482D+00 0.61265672318980D-16 + 3 31 3 3 -0.38401237108067D+00 0.19321755978907D-17 + 1 32 3 3 -0.82013102129521D-01 0.47532717010467D-18 + 2 32 3 3 0.93257181798683D+00 0.26785659226168D-17 + 3 32 3 3 0.62293770665093D+00 0.45885990802793D-16 + 1 33 3 3 -0.89658032623899D-01 0.59574498224857D-18 + 2 33 3 3 0.10356682372425D+00 0.11253567094111D-16 + 3 33 3 3 -0.21577894633812D+00 0.72876125571715D-16 + 1 34 3 3 -0.28728526686264D+01 -0.48243005177505D-17 + 2 34 3 3 0.13163110477181D+01 0.16917277000809D-16 + 3 34 3 3 -0.28762227844451D+01 0.91899892248127D-16 + 1 35 3 3 0.31254481327735D+01 0.44044920785612D-18 + 2 35 3 3 0.12144881578439D+01 0.17517566095644D-16 + 3 35 3 3 -0.30979715045097D+01 -0.20698616427538D-15 + 1 36 3 3 -0.69182942504182D-01 0.51662334831512D-17 + 2 36 3 3 -0.10708464478090D-01 0.16092565622111D-16 + 3 36 3 3 -0.15174463442924D+00 0.24475301889103D-15 + 1 37 3 3 0.19847109189108D+00 -0.14117359367726D-17 + 2 37 3 3 0.27830676858506D-01 -0.65009433174819D-17 + 3 37 3 3 -0.42455260074796D+00 0.19730600469641D-15 + 1 38 3 3 0.29337777170518D+01 -0.11583305899942D-17 + 2 38 3 3 -0.14062279707536D+01 0.17812791355892D-16 + 3 38 3 3 -0.29999172970670D+01 -0.19862964055616D-15 + 1 39 3 3 -0.31446947372535D+01 0.44163247945592D-17 + 2 39 3 3 -0.12966080702833D+01 0.99584618140087D-17 + 3 39 3 3 -0.31976530388552D+01 -0.14046145417518D-15 + 1 40 3 3 0.14657072719821D+02 0.36650382540198D-16 + 2 40 3 3 0.13670665622604D+02 0.27695879323574D-16 + 3 40 3 3 -0.25763641485448D+02 0.49840313492945D-16 + 1 41 3 3 0.27707858760759D+00 -0.15443182079473D-16 + 2 41 3 3 0.34701699078134D+00 -0.38057033482322D-16 + 3 41 3 3 0.58598536914088D+00 -0.11810972022531D-15 + 1 42 3 3 -0.78293220003702D+00 -0.30790950705566D-16 + 2 42 3 3 0.71273818903615D+00 0.36327838111604D-16 + 3 42 3 3 -0.18536809697928D+00 -0.42581598653312D-15 + 1 43 3 3 0.28684620462766D+00 0.10035648921138D-16 + 2 43 3 3 0.14952538593819D+00 -0.31846667436173D-16 + 3 43 3 3 -0.85893846018723D-01 -0.30548723209928D-15 + 1 44 3 3 0.20300347704440D+00 -0.12280891314261D-16 + 2 44 3 3 -0.27594970481658D+00 -0.16801201656030D-16 + 3 44 3 3 0.15727104241103D+00 -0.21306299575277D-16 + 1 45 3 3 0.50130163375714D+00 -0.20846399734880D-16 + 2 45 3 3 0.44375316277967D+00 0.16970365660986D-16 + 3 45 3 3 -0.37587517196716D+00 -0.10111435310784D-15 + 1 46 3 3 0.49922300162289D+00 -0.30453767518061D-19 + 2 46 3 3 0.76511502303097D-01 -0.22817640621798D-16 + 3 46 3 3 -0.87879839587781D+00 -0.70375876710547D-16 + 1 47 3 3 0.10458857416864D+00 -0.20837705326395D-16 + 2 47 3 3 0.24018265599631D+00 0.89444126319821D-17 + 3 47 3 3 0.37092861818659D+00 0.68348033923355D-16 + 1 48 3 3 -0.13678659944496D+01 0.77129242351754D-17 + 2 48 3 3 -0.13483055546319D+01 0.10307766203455D-15 + 3 48 3 3 0.29632774936015D+01 -0.75371770722980D-16 + 1 49 3 3 -0.70206638076878D-01 0.23627665604388D-16 + 2 49 3 3 -0.47616311444368D-01 0.83990388590714D-16 + 3 49 3 3 -0.19811576467605D-01 0.60070760758706D-17 + 1 50 3 3 0.14435244257965D+01 -0.73569570858596D-16 + 2 50 3 3 -0.29658009543567D+01 -0.83992812189032D-16 + 3 50 3 3 0.96910325492601D+00 -0.77456029080879D-16 + 1 51 3 3 0.10774984940748D-01 -0.54091321130640D-17 + 2 51 3 3 -0.15189491883038D+00 -0.36517200401794D-16 + 3 51 3 3 0.67229337897264D-01 0.35232723863990D-17 + 1 52 3 3 -0.12574855522480D+01 0.83920503095785D-16 + 2 52 3 3 0.12650830491787D+01 0.95853804233186D-16 + 3 52 3 3 0.30927109131092D+01 -0.18454045832485D-16 + 1 53 3 3 -0.10752394562336D+00 -0.15135575875343D-16 + 2 53 3 3 0.12617294084810D+00 -0.93626004767716D-16 + 3 53 3 3 -0.11931947826555D-01 -0.18389794723580D-16 + 1 54 3 3 0.13078588463868D+01 -0.96425015544439D-16 + 2 54 3 3 0.12509767681806D+01 0.34449009983927D-16 + 3 54 3 3 0.30062117777568D+01 -0.32083786647984D-16 + 1 55 3 3 0.25898368449814D+00 -0.37013537348727D-16 + 2 55 3 3 -0.27412291065958D-01 -0.38265510405008D-16 + 3 55 3 3 0.10115026623173D+00 -0.28971644183210D-16 + 1 56 3 3 0.37197994347044D+00 -0.22891435091296D-16 + 2 56 3 3 0.26868741007232D+00 -0.13979141001132D-16 + 3 56 3 3 0.12834338893618D+00 0.12134866815142D-15 + 1 57 3 3 -0.59936482346721D+00 0.83665850989725D-17 + 2 57 3 3 0.61055482526110D+00 0.36658816433661D-16 + 3 57 3 3 -0.50047434236650D+00 0.17636906868948D-15 + 1 58 3 3 -0.16629379756977D+02 0.20043360474938D-16 + 2 58 3 3 0.17524480964126D+02 -0.47347350217292D-17 + 3 58 3 3 -0.27760819090572D+02 -0.25918989070065D-15 + 1 59 3 3 -0.29022933731612D+00 -0.25841680724071D-16 + 2 59 3 3 0.21799906534147D+00 0.25393623519924D-16 + 3 59 3 3 0.53072023251007D+00 -0.31271593887793D-15 + 1 60 3 3 -0.80045650826028D+00 -0.24342069182138D-16 + 2 60 3 3 0.68264261748262D+00 -0.44244872716404D-16 + 3 60 3 3 -0.60193948425332D+00 0.50795085415797D-16 + 1 61 3 3 0.20626483504735D-02 -0.86983032869364D-18 + 2 61 3 3 0.54559282343331D-01 0.44487079605746D-19 + 3 61 3 3 0.29691473446176D+00 0.34928656069874D-15 + 1 62 3 3 -0.35986694257036D+00 0.10028088703464D-15 + 2 62 3 3 -0.30197170554672D+00 -0.16401504145992D-16 + 3 62 3 3 0.10626880733348D+00 -0.62217869196438D-16 + 1 63 3 3 -0.50891363746347D+00 0.31407920199373D-17 + 2 63 3 3 0.48027594224421D+00 -0.25573965986079D-16 + 3 63 3 3 -0.44735271654360D+00 0.66710903525904D-17 + 1 64 3 3 -0.22032006338685D+00 -0.14284632512459D-16 + 2 64 3 3 0.17334651597392D+00 0.18568340738840D-16 + 3 64 3 3 0.12730033657659D+00 0.71740422668149D-16 + 1 65 3 3 0.62533824397711D+00 0.18537507666250D-16 + 2 65 3 3 -0.25556271126518D+00 -0.22958329987249D-16 + 3 65 3 3 0.12127492901125D+00 0.10170082462744D-15 + 1 1 1 4 0.15680213486448D+01 0.13617962352661D-17 + 2 1 1 4 -0.52521091841466D-02 0.16741826306766D-17 + 3 1 1 4 -0.52521091841386D-02 0.68476365931136D-19 + 1 2 1 4 -0.23816838007246D+00 -0.79863699425754D-17 + 2 2 1 4 0.31754131344404D-01 0.67973880801964D-18 + 3 2 1 4 -0.36501365675269D-02 0.23400226469928D-18 + 1 3 1 4 -0.23816838007237D+00 0.23675576208394D-17 + 2 3 1 4 -0.36501365675336D-02 0.17251854834648D-17 + 3 3 1 4 0.31754131344396D-01 0.13118021896706D-18 + 1 4 1 4 0.12143117983312D+03 0.00000000000000D+00 + 2 4 1 4 0.44054760316654D+00 0.00000000000000D+00 + 3 4 1 4 0.44054760316655D+00 0.00000000000000D+00 + 1 5 1 4 -0.79888593078683D-01 -0.12123507045994D-16 + 2 5 1 4 0.24064116261816D-01 0.49020197881444D-17 + 3 5 1 4 0.24064116261817D-01 -0.66768036940764D-17 + 1 6 1 4 -0.14651597359657D+00 0.20700392547347D-17 + 2 6 1 4 -0.23926507485511D-01 0.25573581942423D-19 + 3 6 1 4 0.12570281290532D-01 0.10095939671221D-18 + 1 7 1 4 -0.14651597359657D+00 -0.19737855349336D-17 + 2 7 1 4 0.12570281290532D-01 0.25803596911942D-18 + 3 7 1 4 -0.23926507485513D-01 -0.35930102075491D-18 + 1 8 1 4 -0.40592725268389D+00 0.40349805266540D-18 + 2 8 1 4 -0.44494871188016D-02 -0.77059785817967D-18 + 3 8 1 4 -0.44494871188016D-02 -0.45453852969611D-18 + 1 9 1 4 0.18496338576642D+00 -0.54085996879446D-16 + 2 9 1 4 -0.36863095759641D+00 0.40248325704994D-16 + 3 9 1 4 0.31950747315450D+00 0.23436662424187D-16 + 1 10 1 4 -0.26113137815758D+02 -0.15801636046900D-15 + 2 10 1 4 0.14086024959133D+02 0.16004848028291D-17 + 3 10 1 4 0.14086024959133D+02 -0.23179641912172D-16 + 1 11 1 4 -0.85722144824220D+00 -0.13859595170943D-17 + 2 11 1 4 0.47386017200006D+00 -0.33056675834860D-16 + 3 11 1 4 0.47386017200006D+00 -0.47360791159728D-16 + 1 12 1 4 0.18496338576642D+00 -0.18217816516369D-15 + 2 12 1 4 0.31950747315451D+00 0.13791328123252D-16 + 3 12 1 4 -0.36863095759641D+00 0.85503891031072D-16 + 1 13 1 4 -0.37889230900943D+00 -0.57827344418315D-16 + 2 13 1 4 0.46333199486231D+00 0.12336825699017D-17 + 3 13 1 4 0.47950150971599D+00 0.11318360129661D-16 + 1 14 1 4 0.41824065550525D+00 0.18136539353938D-16 + 2 14 1 4 0.27141212136987D+00 -0.19606076120253D-16 + 3 14 1 4 0.27141212136988D+00 -0.10479276920396D-16 + 1 15 1 4 -0.37889230900943D+00 0.75521524955158D-17 + 2 15 1 4 0.47950150971599D+00 0.24726952057943D-16 + 3 15 1 4 0.46333199486231D+00 -0.27608385765172D-18 + 1 16 1 4 0.31579413995747D+01 -0.24204209034667D-16 + 2 16 1 4 0.14131179231746D+01 -0.13136920074705D-16 + 3 16 1 4 -0.14258506103839D+01 0.22016257074588D-16 + 1 17 1 4 0.31306774163660D+01 -0.22493152485353D-15 + 2 17 1 4 -0.12905059699577D+01 -0.28143896795993D-17 + 3 17 1 4 -0.12905059699577D+01 0.18311959427112D-16 + 1 18 1 4 0.30824006681923D+01 -0.65058808705220D-16 + 2 18 1 4 0.12970359638530D+01 0.15264775827987D-16 + 3 18 1 4 0.12970359638530D+01 0.27810181665832D-17 + 1 19 1 4 0.31579413995749D+01 -0.58127983133836D-16 + 2 19 1 4 -0.14258506103839D+01 0.17702214298125D-17 + 3 19 1 4 0.14131179231745D+01 0.47572512533634D-17 + 1 20 1 4 -0.21972711183071D-01 -0.41115013451165D-16 + 2 20 1 4 0.11346762956114D+00 -0.29292117070040D-16 + 3 20 1 4 -0.10979845495590D+00 0.70621260084228D-17 + 1 21 1 4 -0.34911139746885D-01 0.25159556590768D-16 + 2 21 1 4 -0.93652105749600D-01 0.75152477943718D-17 + 3 21 1 4 -0.93652105749600D-01 -0.25819243296003D-16 + 1 22 1 4 -0.36115044457181D-01 -0.16863816909780D-16 + 2 22 1 4 0.18965285104181D+00 -0.55641050711249D-17 + 3 22 1 4 0.18965285104181D+00 0.90879196633058D-17 + 1 23 1 4 -0.21972711183071D-01 -0.51882190015735D-17 + 2 23 1 4 -0.10979845495590D+00 -0.28278555933235D-16 + 3 23 1 4 0.11346762956114D+00 0.32873169149334D-16 + 1 24 1 4 -0.77575023094951D+00 0.12496535216541D-15 + 2 24 1 4 -0.50967449466852D+00 -0.34590623464288D-16 + 3 24 1 4 -0.50967449466852D+00 -0.90340784864374D-17 + 1 25 1 4 0.16889592751831D+00 -0.14560330742027D-16 + 2 25 1 4 -0.25374530201724D+00 -0.67415687588572D-17 + 3 25 1 4 0.32422969088818D+00 0.24400065651684D-16 + 1 26 1 4 0.16889592751830D+00 0.96406436499128D-16 + 2 26 1 4 0.32422969088818D+00 -0.59448092968366D-17 + 3 26 1 4 -0.25374530201724D+00 0.49936240145925D-17 + 1 27 1 4 -0.27014966454727D+02 -0.16449348490313D-15 + 2 27 1 4 -0.14732387636065D+02 0.62501847885722D-16 + 3 27 1 4 -0.14732387636065D+02 0.21819914695868D-16 + 1 28 1 4 0.27094753380645D+00 0.90169996236870D-16 + 2 28 1 4 -0.26937884890203D-01 0.29307286467811D-16 + 3 28 1 4 -0.26937884890204D-01 -0.63688598255629D-17 + 1 29 1 4 -0.33895793998524D+00 0.97104565678798D-16 + 2 29 1 4 -0.44099543805919D+00 0.33846354777234D-16 + 3 29 1 4 -0.46860018244849D+00 0.32867561332225D-17 + 1 30 1 4 -0.33895793998502D+00 0.45412055144454D-16 + 2 30 1 4 -0.46860018244848D+00 0.19460833870351D-16 + 3 30 1 4 -0.44099543805920D+00 0.49423088515316D-16 + 1 31 1 4 0.57016707799583D+00 -0.28374652421621D-15 + 2 31 1 4 -0.28159265728973D+00 0.54778560200113D-17 + 3 31 1 4 -0.28159265728972D+00 -0.13044401887589D-16 + 1 32 1 4 -0.19682298503715D+00 -0.12014543471931D-15 + 2 32 1 4 -0.46363386037038D-01 -0.78850246494760D-16 + 3 32 1 4 -0.92961861660143D-01 0.18623026567542D-17 + 1 33 1 4 -0.23862176796400D+00 -0.74518828764614D-16 + 2 33 1 4 0.99565345105373D-01 -0.97317736478607D-17 + 3 33 1 4 0.82702315888197D-01 0.12464844476349D-17 + 1 34 1 4 -0.30470853174333D+01 0.26924837601360D-15 + 2 34 1 4 -0.12789009470737D+01 -0.72142361203025D-16 + 3 34 1 4 0.32224719826006D+01 -0.12448239607880D-17 + 1 35 1 4 -0.30954916382760D+01 0.19805687111390D-16 + 2 35 1 4 0.12922970665964D+01 0.18732352635591D-16 + 3 35 1 4 -0.32179128749850D+01 -0.16682010209919D-17 + 1 36 1 4 -0.22648967574072D+00 0.23197961120098D-15 + 2 36 1 4 -0.10378919577470D+00 0.98218848974890D-16 + 3 36 1 4 0.98827236061190D-01 -0.97172541755899D-18 + 1 37 1 4 -0.23629068496630D+00 -0.17509997130348D-15 + 2 37 1 4 0.10752394562335D+00 0.67742533743976D-17 + 3 37 1 4 -0.99376337698370D-01 0.74061554985619D-17 + 1 38 1 4 -0.30112724456128D+01 0.40347041033520D-16 + 2 38 1 4 -0.12509741864495D+01 -0.69040497368769D-16 + 3 38 1 4 -0.31446947372535D+01 -0.71067943023706D-18 + 1 39 1 4 -0.30686193417766D+01 0.12750924033657D-15 + 2 39 1 4 0.12808301121852D+01 -0.43520334941048D-16 + 3 39 1 4 0.31586765985263D+01 0.20142242720064D-17 + 1 40 1 4 0.19346724068186D+00 -0.30734209481826D-15 + 2 40 1 4 0.32903125202354D+00 -0.10640071878872D-17 + 3 40 1 4 0.26040622557040D+00 -0.16084580004622D-16 + 1 41 1 4 -0.26326713723825D+02 -0.14161043086736D-16 + 2 41 1 4 -0.14353000606928D+02 -0.16709472231038D-16 + 3 41 1 4 0.14705333028176D+02 0.10129818065871D-16 + 1 42 1 4 -0.81083552164948D+00 -0.17687020909508D-15 + 2 42 1 4 -0.57259088947737D+00 0.52144891228215D-17 + 3 42 1 4 0.45818229504203D+00 -0.39179301758811D-16 + 1 43 1 4 0.11542738827357D+00 -0.51573294582390D-17 + 2 43 1 4 -0.23882867257476D+00 0.18625213998886D-16 + 3 43 1 4 -0.23038762429388D+00 -0.62301330392286D-16 + 1 44 1 4 -0.37009599433220D+00 0.31991718578969D-15 + 2 44 1 4 -0.48491587255602D+00 -0.28534941323174D-17 + 3 44 1 4 0.47002277043586D+00 0.18304543145337D-16 + 1 45 1 4 0.52464302253743D+00 -0.17763279241582D-15 + 2 45 1 4 -0.33179221431110D+00 -0.20719704781902D-16 + 3 45 1 4 0.32051276862330D+00 0.40452314537835D-16 + 1 46 1 4 0.23662232486672D+00 -0.11651159580780D-15 + 2 46 1 4 -0.11555303207963D-01 -0.14851320786818D-16 + 3 46 1 4 0.31560473711005D-02 0.22791409370768D-17 + 1 47 1 4 -0.63312078461237D+00 0.18188550374212D-15 + 2 47 1 4 -0.63253059845948D+00 -0.11987232269269D-16 + 3 47 1 4 0.28525463577358D+00 -0.31479936019323D-16 + 1 48 1 4 -0.23862176796400D+00 -0.18278830549379D-15 + 2 48 1 4 0.82702315888197D-01 -0.36954017806839D-17 + 3 48 1 4 0.99565345105374D-01 -0.96444944941386D-16 + 1 49 1 4 -0.30954916382760D+01 -0.12292846517292D-15 + 2 49 1 4 -0.32179128749850D+01 0.48752378704740D-18 + 3 49 1 4 0.12922970665964D+01 0.95654890500483D-17 + 1 50 1 4 -0.19682298503713D+00 -0.20205019028545D-15 + 2 50 1 4 -0.92961861660142D-01 -0.96492428370856D-17 + 3 50 1 4 -0.46363386037042D-01 0.32789650457004D-16 + 1 51 1 4 -0.30470853174333D+01 -0.23456901634374D-15 + 2 51 1 4 0.32224719826006D+01 0.33225932388244D-17 + 3 51 1 4 -0.12789009470737D+01 0.26818064947170D-16 + 1 52 1 4 -0.23629068496629D+00 -0.22345514284470D-15 + 2 52 1 4 -0.99376337698371D-01 -0.36329558198169D-17 + 3 52 1 4 0.10752394562336D+00 -0.34361591148935D-16 + 1 53 1 4 -0.30686193417767D+01 -0.38754094674971D-16 + 2 53 1 4 0.31586765985263D+01 0.24718290079746D-18 + 3 53 1 4 0.12808301121852D+01 0.15067809082068D-16 + 1 54 1 4 -0.22648967574073D+00 0.48009149094019D-16 + 2 54 1 4 0.98827236061180D-01 0.25548312022876D-18 + 3 54 1 4 -0.10378919577471D+00 -0.10222963130638D-16 + 1 55 1 4 -0.30112724456127D+01 0.20095361059249D-15 + 2 55 1 4 -0.31446947372534D+01 -0.87389383662826D-18 + 3 55 1 4 -0.12509741864495D+01 -0.29691952001282D-16 + 1 56 1 4 -0.81083552164948D+00 -0.16354784846130D-15 + 2 56 1 4 0.45818229504203D+00 -0.19314526211951D-16 + 3 56 1 4 -0.57259088947737D+00 -0.41973444559091D-16 + 1 57 1 4 0.19346724068186D+00 0.10457378492731D-15 + 2 57 1 4 0.26040622557040D+00 -0.98422044401917D-17 + 3 57 1 4 0.32903125202354D+00 0.24005133223077D-18 + 1 58 1 4 0.11542738827357D+00 0.20672850494794D-15 + 2 58 1 4 -0.23038762429389D+00 -0.20156929680533D-16 + 3 58 1 4 -0.23882867257478D+00 -0.11427781278636D-16 + 1 59 1 4 -0.26326713723825D+02 -0.92566526728139D-17 + 2 59 1 4 0.14705333028176D+02 0.46893053293846D-16 + 3 59 1 4 -0.14353000606928D+02 -0.17087080860023D-16 + 1 60 1 4 0.23662232486672D+00 -0.37853093137162D-16 + 2 60 1 4 0.31560473710992D-02 -0.15628697959091D-16 + 3 60 1 4 -0.11555303207960D-01 -0.39647102294173D-16 + 1 61 1 4 -0.37009599433221D+00 -0.11683854261868D-15 + 2 61 1 4 0.47002277043587D+00 0.24547367856468D-18 + 3 61 1 4 -0.48491587255601D+00 -0.15659976499652D-18 + 1 62 1 4 -0.63312078461237D+00 0.19691678525988D-15 + 2 62 1 4 0.28525463577358D+00 -0.21299721034067D-16 + 3 62 1 4 -0.63253059845948D+00 -0.21091272768333D-16 + 1 63 1 4 0.52464302253745D+00 0.15729229792046D-15 + 2 63 1 4 0.32051276862330D+00 -0.12543911420069D-16 + 3 63 1 4 -0.33179221431110D+00 -0.31566655752763D-16 + 1 64 1 4 0.88500697922278D-01 -0.29614178470748D-16 + 2 64 1 4 0.18923029479716D-01 0.18194771105977D-16 + 3 64 1 4 0.18923029479716D-01 0.10630509732341D-16 + 1 65 1 4 0.12032606938286D+00 0.18917773947420D-15 + 2 65 1 4 -0.16502171297717D-01 -0.90836287981031D-16 + 3 65 1 4 -0.14446331097554D-01 -0.38791863200639D-16 + 1 1 2 4 0.34565694143064D-01 0.16741826306766D-17 + 2 1 2 4 -0.14562371684377D+00 0.12851469760364D-17 + 3 1 2 4 0.29389480393451D-01 0.21572416657148D-18 + 1 2 2 4 -0.18366634266787D-02 0.67973880801964D-18 + 2 2 2 4 -0.38525272769521D+00 -0.11910965801996D-17 + 3 2 2 4 -0.27708198192499D-02 -0.11861094370140D-17 + 1 3 2 4 -0.13933129234016D-02 0.17251854834648D-17 + 2 3 2 4 -0.25609173438378D+00 -0.54741527887949D-17 + 3 3 2 4 -0.17871430495605D-01 0.12352540419461D-17 + 1 4 2 4 0.44054760316654D+00 0.00000000000000D+00 + 2 4 2 4 0.12122798321440D+03 0.00000000000000D+00 + 3 4 2 4 -0.76649767139098D+00 0.00000000000000D+00 + 1 5 2 4 -0.21521344319739D-01 0.49020197881444D-17 + 2 5 2 4 0.40195590498098D-01 0.49182725292183D-17 + 3 5 2 4 -0.14872177932805D+00 0.33970332832681D-17 + 1 6 2 4 -0.41467919487292D-01 0.25573581942423D-19 + 2 6 2 4 -0.19111969908325D+00 -0.16656424739146D-17 + 3 6 2 4 -0.11097588776132D-01 -0.11932032076516D-18 + 1 7 2 4 -0.78310784482452D-02 0.25803596911942D-18 + 2 7 2 4 0.15339790868766D+01 0.24280785580988D-17 + 3 7 2 4 -0.41533968157781D-01 -0.87371219293333D-19 + 1 8 2 4 0.24069014812013D-02 -0.77059785817967D-18 + 2 8 2 4 -0.22329293722581D+00 0.10681434469396D-17 + 3 8 2 4 0.31725157218816D-02 0.00000000000000D+00 + 1 9 2 4 -0.37109140564483D+00 0.40248325704994D-16 + 2 9 2 4 0.18886149498240D+00 -0.33149114748295D-16 + 3 9 2 4 -0.31080049433589D+00 -0.30518762387786D-16 + 1 10 2 4 0.14125392133289D+02 0.16004848028291D-17 + 2 10 2 4 -0.26113781530201D+02 -0.23637333046855D-16 + 3 10 2 4 -0.13781556160135D+02 0.14586976108830D-16 + 1 11 2 4 0.46753659802675D+00 -0.33056675834860D-16 + 2 11 2 4 -0.36753651542806D+00 -0.87405155333662D-16 + 3 11 2 4 -0.44471794370565D+00 0.48382405472111D-17 + 1 12 2 4 0.30833421115943D+00 0.13791328123252D-16 + 2 12 2 4 0.61690564411060D+00 -0.14456806439184D-15 + 3 12 2 4 -0.32853382357376D+00 -0.43298134200289D-16 + 1 13 2 4 0.46116872534589D+00 0.12336825699017D-17 + 2 13 2 4 -0.83861054278827D+00 0.10686992181519D-16 + 3 13 2 4 -0.48737886495422D+00 -0.15021313852943D-16 + 1 14 2 4 0.25161118007228D+00 -0.19606076120253D-16 + 2 14 2 4 0.18931625870340D+00 -0.11254351494430D-16 + 3 14 2 4 0.30051062649133D+00 0.44795934166902D-17 + 1 15 2 4 0.47158531944064D+00 0.24726952057943D-16 + 2 15 2 4 -0.43255486659625D+00 -0.57162741866270D-16 + 3 15 2 4 -0.44647630976623D+00 0.11322177606898D-16 + 1 16 2 4 -0.11608650034962D+01 -0.13136920074705D-16 + 2 16 2 4 -0.29903000869573D+01 -0.31848972734747D-15 + 3 16 2 4 0.32724273548708D+01 0.22353405996429D-18 + 1 17 2 4 0.12905059699577D+01 -0.28143896795993D-17 + 2 17 2 4 -0.31236535704691D+01 0.10344763644839D-15 + 3 17 2 4 -0.32768449906018D+01 -0.14484099629121D-17 + 1 18 2 4 -0.14676609476163D+01 0.15264775827987D-16 + 2 18 2 4 -0.31020751299927D+01 0.16950402327093D-15 + 3 18 2 4 -0.31423875954876D+01 -0.18839539309141D-17 + 1 19 2 4 0.11838219701199D+01 0.17702214298125D-17 + 2 19 2 4 -0.32389323475908D+01 -0.22910478790657D-15 + 3 19 2 4 0.32598618654775D+01 -0.86488378773093D-18 + 1 20 2 4 -0.98113074926448D-01 -0.29292117070040D-16 + 2 20 2 4 -0.22877355990031D+00 -0.16700840353997D-15 + 3 20 2 4 -0.88531530517865D-01 0.13379666142138D-18 + 1 21 2 4 0.99917988628224D-01 0.75152477943718D-17 + 2 21 2 4 -0.23199836150855D+00 -0.81779196052171D-17 + 3 21 2 4 0.98841998568626D-01 -0.10271823373729D-17 + 1 22 2 4 -0.14342087980576D-01 -0.55641050711249D-17 + 2 22 2 4 -0.28136420191463D+00 0.27699557884795D-15 + 3 22 2 4 0.20782504841662D+00 0.27482033829037D-17 + 1 23 2 4 0.11243027226998D+00 -0.28278555933235D-16 + 2 23 2 4 -0.24801182769948D+00 -0.19990107432829D-16 + 3 23 2 4 -0.94812845415090D-01 -0.68658924885074D-18 + 1 24 2 4 -0.47477936449435D+00 -0.34590623464288D-16 + 2 24 2 4 -0.48229205645406D+00 -0.13498206097811D-15 + 3 24 2 4 -0.57503662633799D+00 0.29474577480927D-16 + 1 25 2 4 -0.21574548602397D+00 -0.67415687588572D-17 + 2 25 2 4 0.37222044862080D+00 -0.61207803444729D-16 + 3 25 2 4 -0.26120958661627D+00 -0.26501783120409D-16 + 1 26 2 4 0.29580210237062D+00 -0.59448092968366D-17 + 2 26 2 4 0.21055711069935D+00 0.93460795589780D-17 + 3 26 2 4 -0.29697315648479D+00 0.27546854219611D-16 + 1 27 2 4 -0.14702714068196D+02 0.62501847885722D-16 + 2 27 2 4 -0.26136043103733D+02 -0.21895512246516D-15 + 3 27 2 4 -0.14332308246567D+02 -0.84168467020312D-17 + 1 28 2 4 -0.71745259578824D-02 0.29307286467811D-16 + 2 28 2 4 0.24073277920517D+00 -0.94475295418743D-16 + 3 28 2 4 -0.26434993805051D-01 0.38533190849278D-16 + 1 29 2 4 -0.46633448469613D+00 0.33846354777234D-16 + 2 29 2 4 -0.39782518419851D+00 -0.80111465628342D-16 + 3 29 2 4 -0.43357222992647D+00 -0.21579035172223D-16 + 1 30 2 4 -0.47850355038478D+00 0.19460833870351D-16 + 2 30 2 4 -0.73242711028473D+00 0.20852922458142D-16 + 3 30 2 4 -0.47539775607859D+00 0.18066333989189D-16 + 1 31 2 4 -0.31466521596142D+00 0.54778560200113D-17 + 2 31 2 4 0.27473289303675D+00 -0.36486245855698D-16 + 3 31 2 4 0.32049253750883D+00 -0.54764622214686D-16 + 1 32 2 4 0.12700528632820D+00 -0.78850246494760D-16 + 2 32 2 4 0.17901783548744D+00 0.10425235702429D-15 + 3 32 2 4 -0.20914673817795D-01 -0.34108683789860D-16 + 1 33 2 4 -0.86016099995363D-01 -0.97317736478607D-17 + 2 33 2 4 -0.18016648722799D-01 -0.50136430483854D-17 + 3 33 2 4 -0.11218963836733D+00 0.34242414520517D-16 + 1 34 2 4 0.13286275214552D+01 -0.72142361203025D-16 + 2 34 2 4 0.30490719621776D+01 -0.15951417704701D-16 + 3 34 2 4 -0.13623457728179D+01 0.31226672721711D-16 + 1 35 2 4 -0.12247732147474D+01 0.18732352635591D-16 + 2 35 2 4 0.31665669045344D+01 -0.21503774826881D-15 + 3 35 2 4 -0.12430520967716D+01 -0.62638780047157D-17 + 1 36 2 4 0.87793578338515D-01 0.98218848974890D-16 + 2 36 2 4 -0.13044625834323D-02 0.23712820199867D-16 + 3 36 2 4 0.10609528741851D+00 0.75738370117823D-17 + 1 37 2 4 -0.10296464443796D+00 0.67742533743976D-17 + 2 37 2 4 -0.11931947826563D-01 0.29566505436276D-16 + 3 37 2 4 0.10250397564470D+00 -0.32609136767645D-17 + 1 38 2 4 0.14136220409059D+01 -0.69040497368769D-16 + 2 38 2 4 0.31297097965361D+01 0.30308359910805D-16 + 3 38 2 4 0.12966080702833D+01 0.10210001357576D-16 + 1 39 2 4 -0.12808301121852D+01 -0.43520334941048D-16 + 2 39 2 4 0.31445569949215D+01 0.57009842629691D-16 + 3 39 2 4 0.13148458615180D+01 -0.36093036110495D-16 + 1 40 2 4 0.33125308076840D+00 -0.10640071878872D-17 + 2 40 2 4 0.17902564882348D+00 -0.20847083275291D-15 + 3 40 2 4 0.27558435795447D+00 0.22421236281324D-16 + 1 41 2 4 -0.14477059088582D+02 -0.16709472231038D-16 + 2 41 2 4 -0.26293428596271D+02 -0.94586308139726D-16 + 3 41 2 4 0.14444249625280D+02 -0.13225241993210D-16 + 1 42 2 4 -0.54032163431437D+00 0.52144891228215D-17 + 2 42 2 4 -0.48945075687645D+00 0.68767959060826D-16 + 3 42 2 4 0.48522302031412D+00 -0.33881462608709D-16 + 1 43 2 4 -0.26119564154638D+00 0.18625213998886D-16 + 2 43 2 4 0.29163708009969D+00 -0.30414180799429D-16 + 3 43 2 4 0.27476276805790D+00 -0.26850376189381D-16 + 1 44 2 4 -0.46559347373896D+00 -0.28534941323174D-17 + 2 44 2 4 -0.78547982018116D+00 -0.13604936823852D-15 + 3 44 2 4 0.46924060623007D+00 0.74156800993036D-17 + 1 45 2 4 -0.34486761325059D+00 -0.20719704781902D-16 + 2 45 2 4 0.19316941103680D+00 0.16547971825114D-15 + 3 45 2 4 -0.32860218100949D+00 0.32166224959800D-16 + 1 46 2 4 0.11423776684104D-01 -0.14851320786818D-16 + 2 46 2 4 0.27493805249823D+00 -0.72497829772792D-16 + 3 46 2 4 -0.19573453759545D-01 0.37612809876825D-16 + 1 47 2 4 -0.51528742791333D+00 -0.11987232269269D-16 + 2 47 2 4 -0.50206812739809D+00 0.84276753650931D-16 + 3 47 2 4 0.49069469237906D+00 0.14929783949897D-16 + 1 48 2 4 0.11390436163443D+00 -0.36954017806839D-17 + 2 48 2 4 -0.22618681439698D+00 -0.28973144307740D-15 + 3 48 2 4 0.80612052259496D-01 0.38179512143330D-17 + 1 49 2 4 -0.31872566408716D+01 0.48752378704740D-18 + 2 49 2 4 -0.31266544890534D+01 -0.73984531477530D-16 + 3 49 2 4 0.13605572144011D+01 -0.19264410040761D-16 + 1 50 2 4 -0.13436069301927D+00 -0.96492428370856D-17 + 2 50 2 4 -0.36216127554279D+00 0.20156583969993D-15 + 3 50 2 4 -0.25060787165516D-01 -0.89198567899931D-16 + 1 51 2 4 0.31172863636170D+01 0.33225932388244D-17 + 2 51 2 4 -0.31198683632758D+01 0.25153391639659D-15 + 3 51 2 4 0.13535554609168D+01 -0.51811398411832D-17 + 1 52 2 4 -0.11720523352892D+00 -0.36329558198169D-17 + 2 52 2 4 -0.20308108836415D+00 0.88174703265710D-16 + 3 52 2 4 -0.12617294084810D+00 -0.10058719973395D-15 + 1 53 2 4 0.31586765985263D+01 0.24718290079746D-18 + 2 53 2 4 -0.30740777943507D+01 0.14502254038518D-15 + 3 53 2 4 -0.13150463898993D+01 0.24935028924936D-16 + 1 54 2 4 0.99937356912093D-01 0.25548312022876D-18 + 2 54 2 4 -0.24812961285717D+00 -0.15227028591814D-15 + 3 54 2 4 -0.12016519405870D+00 -0.37490270978311D-17 + 1 55 2 4 -0.32825700744194D+01 -0.87389383662826D-18 + 2 55 2 4 -0.31976530388552D+01 0.11804150165846D-15 + 3 55 2 4 -0.11229219114031D+01 0.32444896438552D-16 + 1 56 2 4 0.44096668991251D+00 -0.19314526211951D-16 + 2 56 2 4 -0.50913110257274D+00 0.11945994339047D-15 + 3 56 2 4 0.56817747023680D+00 -0.46001352176920D-17 + 1 57 2 4 0.29583507294684D+00 -0.98422044401917D-17 + 2 57 2 4 0.45098802112200D+00 -0.17460320901289D-16 + 3 57 2 4 0.29820000814504D+00 0.14526108865171D-16 + 1 58 2 4 -0.17250536151424D+00 -0.20156929680533D-16 + 2 58 2 4 0.15731667061840D+00 -0.14239147375008D-15 + 3 58 2 4 0.33313519872921D+00 0.50762429997296D-17 + 1 59 2 4 0.14678196712314D+02 0.46893053293846D-16 + 2 59 2 4 -0.26673406555051D+02 0.36380949385621D-16 + 3 59 2 4 0.14299918188595D+02 -0.11508917199977D-16 + 1 60 2 4 -0.94824085324164D-02 -0.15628697959091D-16 + 2 60 2 4 0.29525495854004D+00 0.10928115649976D-15 + 3 60 2 4 0.51697840507663D-01 0.34946994156782D-16 + 1 61 2 4 0.45192755122546D+00 0.24547367856468D-18 + 2 61 2 4 -0.37052391080199D+00 -0.23566569174647D-16 + 3 61 2 4 0.46488166323621D+00 0.26423277894741D-16 + 1 62 2 4 0.44260789793588D+00 -0.21299721034067D-16 + 2 62 2 4 -0.79567018427530D+00 0.17186526240308D-15 + 3 62 2 4 0.46177411275870D+00 0.38013663145613D-16 + 1 63 2 4 0.32135967168936D+00 -0.12543911420069D-16 + 2 63 2 4 0.17794304813893D+00 0.64254358739519D-16 + 3 63 2 4 -0.34435770576832D+00 0.18993889931090D-16 + 1 64 2 4 0.19333452705318D-01 0.18194771105977D-16 + 2 64 2 4 0.33286274453575D-01 -0.22972580475507D-15 + 3 64 2 4 -0.14162581672600D-01 0.63210284555508D-16 + 1 65 2 4 0.64979964818769D-01 -0.90836287981031D-16 + 2 65 2 4 0.27172907731193D+00 0.80917703549846D-16 + 3 65 2 4 -0.77365666925799D-01 0.12631134716772D-16 + 1 1 3 4 0.34565694143064D-01 0.68476365931136D-19 + 2 1 3 4 0.29389480393451D-01 0.21572416657148D-18 + 3 1 3 4 -0.14562371684376D+00 -0.32674253752848D-17 + 1 2 3 4 -0.13933129234016D-02 0.23400226469928D-18 + 2 2 3 4 -0.17871430495605D-01 -0.11861094370140D-17 + 3 2 3 4 -0.25609173438377D+00 0.77033363344773D-17 + 1 3 3 4 -0.18366634266786D-02 0.13118021896706D-18 + 2 3 3 4 -0.27708198192499D-02 0.12352540419461D-17 + 3 3 3 4 -0.38525272769518D+00 -0.72633852921171D-17 + 1 4 3 4 0.44054760316655D+00 0.00000000000000D+00 + 2 4 3 4 -0.76649767139098D+00 0.00000000000000D+00 + 3 4 3 4 0.12122798321440D+03 0.00000000000000D+00 + 1 5 3 4 -0.21521344319736D-01 -0.66768036940764D-17 + 2 5 3 4 -0.14872177932805D+00 0.33970332832681D-17 + 3 5 3 4 0.40195590498098D-01 0.30023832902800D-17 + 1 6 3 4 -0.78310784482451D-02 0.10095939671221D-18 + 2 6 3 4 -0.41533968157781D-01 -0.11932032076516D-18 + 3 6 3 4 0.15339790868766D+01 -0.34848073525251D-18 + 1 7 3 4 -0.41467919487295D-01 -0.35930102075491D-18 + 2 7 3 4 -0.11097588776132D-01 -0.87371219293333D-19 + 3 7 3 4 -0.19111969908325D+00 -0.52203482935988D-18 + 1 8 3 4 0.24069014811968D-02 -0.45453852969611D-18 + 2 8 3 4 0.31725157218816D-02 0.00000000000000D+00 + 3 8 3 4 -0.22329293722581D+00 -0.91934832783378D-18 + 1 9 3 4 0.30833421115942D+00 0.23436662424187D-16 + 2 9 3 4 -0.32853382357376D+00 -0.30518762387786D-16 + 3 9 3 4 0.61690564411058D+00 -0.28216088482957D-15 + 1 10 3 4 0.14125392133289D+02 -0.23179641912172D-16 + 2 10 3 4 -0.13781556160135D+02 0.14586976108830D-16 + 3 10 3 4 -0.26113781530201D+02 -0.35740322478991D-16 + 1 11 3 4 0.46753659802677D+00 -0.47360791159728D-16 + 2 11 3 4 -0.44471794370565D+00 0.48382405472111D-17 + 3 11 3 4 -0.36753651542806D+00 -0.15797876688481D-15 + 1 12 3 4 -0.37109140564483D+00 0.85503891031072D-16 + 2 12 3 4 -0.31080049433589D+00 -0.43298134200289D-16 + 3 12 3 4 0.18886149498240D+00 0.20105751424907D-15 + 1 13 3 4 0.47158531944064D+00 0.11318360129661D-16 + 2 13 3 4 -0.44647630976623D+00 -0.15021313852943D-16 + 3 13 3 4 -0.43255486659625D+00 0.17086583406930D-15 + 1 14 3 4 0.25161118007220D+00 -0.10479276920396D-16 + 2 14 3 4 0.30051062649133D+00 0.44795934166902D-17 + 3 14 3 4 0.18931625870340D+00 0.29153443640200D-15 + 1 15 3 4 0.46116872534589D+00 -0.27608385765172D-18 + 2 15 3 4 -0.48737886495422D+00 0.11322177606898D-16 + 3 15 3 4 -0.83861054278828D+00 -0.33595634054383D-15 + 1 16 3 4 0.11838219701199D+01 0.22016257074588D-16 + 2 16 3 4 0.32598618654776D+01 0.22353405996429D-18 + 3 16 3 4 -0.32389323475908D+01 0.25271159013781D-15 + 1 17 3 4 0.12905059699577D+01 0.18311959427112D-16 + 2 17 3 4 -0.32768449906018D+01 -0.14484099629121D-17 + 3 17 3 4 -0.31236535704691D+01 -0.57668097253563D-16 + 1 18 3 4 -0.14676609476163D+01 0.27810181665832D-17 + 2 18 3 4 -0.31423875954876D+01 -0.18839539309141D-17 + 3 18 3 4 -0.31020751299927D+01 -0.21944219604066D-15 + 1 19 3 4 -0.11608650034962D+01 0.47572512533634D-17 + 2 19 3 4 0.32724273548708D+01 -0.86488378773093D-18 + 3 19 3 4 -0.29903000869573D+01 -0.80011789026602D-16 + 1 20 3 4 0.11243027226998D+00 0.70621260084228D-17 + 2 20 3 4 -0.94812845415089D-01 0.13379666142138D-18 + 3 20 3 4 -0.24801182769949D+00 0.17621665470154D-15 + 1 21 3 4 0.99917988628229D-01 -0.25819243296003D-16 + 2 21 3 4 0.98841998568626D-01 -0.10271823373729D-17 + 3 21 3 4 -0.23199836150855D+00 0.10637577531771D-15 + 1 22 3 4 -0.14342087980577D-01 0.90879196633058D-17 + 2 22 3 4 0.20782504841662D+00 0.27482033829037D-17 + 3 22 3 4 -0.28136420191463D+00 0.19486069233959D-16 + 1 23 3 4 -0.98113074926449D-01 0.32873169149334D-16 + 2 23 3 4 -0.88531530517866D-01 -0.68658924885074D-18 + 3 23 3 4 -0.22877355990031D+00 -0.76885376861867D-16 + 1 24 3 4 -0.47477936449436D+00 -0.90340784864374D-17 + 2 24 3 4 -0.57503662633799D+00 0.29474577480927D-16 + 3 24 3 4 -0.48229205645405D+00 -0.59255960091857D-17 + 1 25 3 4 0.29580210237062D+00 0.24400065651684D-16 + 2 25 3 4 -0.29697315648479D+00 -0.26501783120409D-16 + 3 25 3 4 0.21055711069935D+00 -0.95637799032639D-16 + 1 26 3 4 -0.21574548602409D+00 0.49936240145925D-17 + 2 26 3 4 -0.26120958661627D+00 0.27546854219611D-16 + 3 26 3 4 0.37222044862081D+00 -0.11199936158210D-15 + 1 27 3 4 -0.14702714068196D+02 0.21819914695868D-16 + 2 27 3 4 -0.14332308246567D+02 -0.84168467020312D-17 + 3 27 3 4 -0.26136043103733D+02 0.93326712096614D-16 + 1 28 3 4 -0.71745259578770D-02 -0.63688598255629D-17 + 2 28 3 4 -0.26434993805051D-01 0.38533190849278D-16 + 3 28 3 4 0.24073277920517D+00 0.84205619984262D-16 + 1 29 3 4 -0.47850355038475D+00 0.32867561332225D-17 + 2 29 3 4 -0.47539775607859D+00 -0.21579035172223D-16 + 3 29 3 4 -0.73242711028474D+00 -0.46119962976990D-15 + 1 30 3 4 -0.46633448469617D+00 0.49423088515316D-16 + 2 30 3 4 -0.43357222992647D+00 0.18066333989189D-16 + 3 30 3 4 -0.39782518419851D+00 0.47366270947360D-16 + 1 31 3 4 -0.31466521596143D+00 -0.13044401887589D-16 + 2 31 3 4 0.32049253750883D+00 -0.54764622214686D-16 + 3 31 3 4 0.27473289303675D+00 0.54234729362946D-16 + 1 32 3 4 -0.13436069301924D+00 0.18623026567542D-17 + 2 32 3 4 -0.25060787165520D-01 -0.34108683789860D-16 + 3 32 3 4 -0.36216127554279D+00 0.11252056375010D-15 + 1 33 3 4 0.11390436163443D+00 0.12464844476349D-17 + 2 33 3 4 0.80612052259496D-01 0.34242414520517D-16 + 3 33 3 4 -0.22618681439698D+00 0.18302389212407D-15 + 1 34 3 4 0.31172863636170D+01 -0.12448239607880D-17 + 2 34 3 4 0.13535554609168D+01 0.31226672721711D-16 + 3 34 3 4 -0.31198683632758D+01 -0.11900829851683D-15 + 1 35 3 4 -0.31872566408720D+01 -0.16682010209919D-17 + 2 35 3 4 0.13605572144011D+01 -0.62638780047157D-17 + 3 35 3 4 -0.31266544890534D+01 -0.27901621713429D-16 + 1 36 3 4 0.99937356912093D-01 -0.97172541755899D-18 + 2 36 3 4 -0.12016519405870D+00 0.75738370117823D-17 + 3 36 3 4 -0.24812961285717D+00 -0.52586266552677D-16 + 1 37 3 4 -0.11720523352892D+00 0.74061554985619D-17 + 2 37 3 4 -0.12617294084810D+00 -0.32609136767645D-17 + 3 37 3 4 -0.20308108836415D+00 0.17269295587972D-15 + 1 38 3 4 -0.32825700744195D+01 -0.71067943023706D-18 + 2 38 3 4 -0.11229219114031D+01 0.10210001357576D-16 + 3 38 3 4 -0.31976530388552D+01 -0.26840348835839D-15 + 1 39 3 4 0.31586765985263D+01 0.20142242720064D-17 + 2 39 3 4 -0.13148458615180D+01 -0.36093036110495D-16 + 3 39 3 4 -0.30740777943507D+01 0.99213699034281D-16 + 1 40 3 4 0.29583507294683D+00 -0.16084580004622D-16 + 2 40 3 4 0.29820000814505D+00 0.22421236281324D-16 + 3 40 3 4 0.45098802112199D+00 -0.23090470707265D-15 + 1 41 3 4 0.14678196712314D+02 0.10129818065871D-16 + 2 41 3 4 0.14299918188595D+02 -0.13225241993210D-16 + 3 41 3 4 -0.26673406555051D+02 -0.65484691255865D-17 + 1 42 3 4 0.44096668991251D+00 -0.39179301758811D-16 + 2 42 3 4 0.56817747023680D+00 -0.33881462608709D-16 + 3 42 3 4 -0.50913110257273D+00 -0.16440163687119D-15 + 1 43 3 4 -0.17250536151423D+00 -0.62301330392286D-16 + 2 43 3 4 0.33313519872919D+00 -0.26850376189381D-16 + 3 43 3 4 0.15731667061841D+00 0.14389050069989D-15 + 1 44 3 4 0.45192755122545D+00 0.18304543145337D-16 + 2 44 3 4 0.46488166323621D+00 0.74156800993036D-17 + 3 44 3 4 -0.37052391080199D+00 -0.16370555398042D-16 + 1 45 3 4 0.32135967168935D+00 0.40452314537835D-16 + 2 45 3 4 -0.34435770576832D+00 0.32166224959800D-16 + 3 45 3 4 0.17794304813893D+00 -0.40312688044908D-15 + 1 46 3 4 -0.94824085324151D-02 0.22791409370768D-17 + 2 46 3 4 0.51697840507665D-01 0.37612809876825D-16 + 3 46 3 4 0.29525495854004D+00 0.46966031821947D-17 + 1 47 3 4 0.44260789793588D+00 -0.31479936019323D-16 + 2 47 3 4 0.46177411275870D+00 0.14929783949897D-16 + 3 47 3 4 -0.79567018427530D+00 -0.80331791332866D-16 + 1 48 3 4 -0.86016099995362D-01 -0.96444944941386D-16 + 2 48 3 4 -0.11218963836733D+00 0.38179512143330D-17 + 3 48 3 4 -0.18016648722801D-01 0.10248771305983D-15 + 1 49 3 4 -0.12247732147474D+01 0.95654890500483D-17 + 2 49 3 4 -0.12430520967716D+01 -0.19264410040761D-16 + 3 49 3 4 0.31665669045345D+01 0.67834532604030D-16 + 1 50 3 4 0.12700528632817D+00 0.32789650457004D-16 + 2 50 3 4 -0.20914673817791D-01 -0.89198567899931D-16 + 3 50 3 4 0.17901783548744D+00 0.14047783004326D-16 + 1 51 3 4 0.13286275214552D+01 0.26818064947170D-16 + 2 51 3 4 -0.13623457728179D+01 -0.51811398411832D-17 + 3 51 3 4 0.30490719621776D+01 0.27127806835021D-16 + 1 52 3 4 -0.10296464443796D+00 -0.34361591148935D-16 + 2 52 3 4 0.10250397564470D+00 -0.10058719973395D-15 + 3 52 3 4 -0.11931947826569D-01 0.17647346355687D-17 + 1 53 3 4 -0.12808301121852D+01 0.15067809082068D-16 + 2 53 3 4 0.13150463898993D+01 0.24935028924936D-16 + 3 53 3 4 0.31445569949214D+01 -0.30426436178136D-16 + 1 54 3 4 0.87793578338514D-01 -0.10222963130638D-16 + 2 54 3 4 0.10609528741850D+00 -0.37490270978311D-17 + 3 54 3 4 -0.13044625834270D-02 -0.84140656747469D-16 + 1 55 3 4 0.14136220409059D+01 -0.29691952001282D-16 + 2 55 3 4 0.12966080702833D+01 0.32444896438552D-16 + 3 55 3 4 0.31297097965360D+01 -0.31658911918421D-16 + 1 56 3 4 -0.54032163431437D+00 -0.41973444559091D-16 + 2 56 3 4 0.48522302031412D+00 -0.46001352176920D-17 + 3 56 3 4 -0.48945075687645D+00 -0.68803989474511D-17 + 1 57 3 4 0.33125308076839D+00 0.24005133223077D-18 + 2 57 3 4 0.27558435795446D+00 0.14526108865171D-16 + 3 57 3 4 0.17902564882348D+00 0.33630269866405D-16 + 1 58 3 4 -0.26119564154640D+00 -0.11427781278636D-16 + 2 58 3 4 0.27476276805792D+00 0.50762429997296D-17 + 3 58 3 4 0.29163708009970D+00 -0.98011661536867D-16 + 1 59 3 4 -0.14477059088582D+02 -0.17087080860023D-16 + 2 59 3 4 0.14444249625280D+02 -0.11508917199977D-16 + 3 59 3 4 -0.26293428596271D+02 0.55507107903048D-16 + 1 60 3 4 0.11423776684107D-01 -0.39647102294173D-16 + 2 60 3 4 -0.19573453759548D-01 0.34946994156782D-16 + 3 60 3 4 0.27493805249823D+00 -0.28873750818598D-17 + 1 61 3 4 -0.46559347373896D+00 -0.15659976499652D-18 + 2 61 3 4 0.46924060623007D+00 0.26423277894741D-16 + 3 61 3 4 -0.78547982018116D+00 0.10947876716159D-15 + 1 62 3 4 -0.51528742791333D+00 -0.21091272768333D-16 + 2 62 3 4 0.49069469237906D+00 0.38013663145613D-16 + 3 62 3 4 -0.50206812739809D+00 0.17654416971495D-15 + 1 63 3 4 -0.34486761325058D+00 -0.31566655752763D-16 + 2 63 3 4 -0.32860218100948D+00 0.18993889931090D-16 + 3 63 3 4 0.19316941103680D+00 0.37766572157694D-16 + 1 64 3 4 0.19333452705321D-01 0.10630509732341D-16 + 2 64 3 4 -0.14162581672600D-01 0.63210284555508D-16 + 3 64 3 4 0.33286274453578D-01 -0.28626039706891D-16 + 1 65 3 4 0.64979964818765D-01 -0.38791863200639D-16 + 2 65 3 4 -0.76993652916089D-01 0.12631134716772D-16 + 3 65 3 4 0.27114731353366D+00 -0.14270699558150D-15 + 1 1 1 5 -0.40109275971455D+00 -0.39497017890337D-16 + 2 1 1 5 0.32585525274067D-01 -0.52087688811097D-17 + 3 1 1 5 0.32585525274078D-01 -0.12935148901968D-17 + 1 2 1 5 -0.12969776100859D+00 -0.31160571227993D-16 + 2 2 1 5 -0.94007595960362D-02 -0.15813634348529D-16 + 3 2 1 5 -0.37629163850712D-01 -0.17736173046275D-16 + 1 3 1 5 -0.12969776100869D+00 -0.45341567230980D-16 + 2 3 1 5 -0.37629163850713D-01 0.56390347963489D-17 + 3 3 1 5 -0.94007595960453D-02 -0.72382523455172D-17 + 1 4 1 5 -0.79888593078683D-01 0.12123507045994D-16 + 2 4 1 5 -0.21521344319739D-01 -0.49020197881444D-17 + 3 4 1 5 -0.21521344319736D-01 0.66768036940764D-17 + 1 5 1 5 0.10869506154593D+03 0.00000000000000D+00 + 2 5 1 5 0.38075754141958D+01 0.00000000000000D+00 + 3 5 1 5 0.38075754141959D+01 0.00000000000000D+00 + 1 6 1 5 -0.83718992029358D-01 0.51022434701107D-16 + 2 6 1 5 0.24475038061528D-01 -0.40192126681216D-17 + 3 6 1 5 -0.11599296174228D+00 0.12890133749853D-16 + 1 7 1 5 -0.83718992029356D-01 0.22495852775539D-16 + 2 7 1 5 -0.11599296174228D+00 0.10091863180272D-17 + 3 7 1 5 0.24475038061528D-01 0.26094709459611D-17 + 1 8 1 5 0.13557269446422D+01 0.14531328720961D-16 + 2 8 1 5 0.12214257078257D+00 -0.13699899368234D-16 + 3 8 1 5 0.12214257078257D+00 -0.19371156020452D-16 + 1 9 1 5 -0.56228343072503D+00 -0.89520410123772D-16 + 2 9 1 5 0.84689654062457D+00 0.16739839446256D-16 + 3 9 1 5 0.60849755258757D+00 0.17649776130858D-16 + 1 10 1 5 0.17362233280700D+00 0.70959359397980D-16 + 2 10 1 5 0.37195381045484D-01 0.21196073452897D-16 + 3 10 1 5 0.37195381045484D-01 -0.24903454107544D-16 + 1 11 1 5 0.81936572652625D-01 0.17268913421283D-15 + 2 11 1 5 -0.62253763049863D-01 0.25544469080570D-17 + 3 11 1 5 -0.62253763049859D-01 -0.25220717970043D-16 + 1 12 1 5 -0.56228343072503D+00 0.25964280825987D-15 + 2 12 1 5 0.60849755258757D+00 -0.35128157135662D-16 + 3 12 1 5 0.84689654062457D+00 -0.10341598241492D-16 + 1 13 1 5 0.31531816585509D+00 0.86536945574150D-16 + 2 13 1 5 0.13251019054803D+00 0.50534419553923D-17 + 3 13 1 5 -0.27876761996521D+00 0.32846065125504D-16 + 1 14 1 5 -0.67417847429045D+00 -0.19522994353945D-15 + 2 14 1 5 0.39052847202263D+00 -0.82036491169508D-17 + 3 14 1 5 0.39052847202263D+00 -0.44408200190469D-18 + 1 15 1 5 0.31531816585509D+00 0.72760994767794D-16 + 2 15 1 5 -0.27876761996521D+00 0.50159187907360D-17 + 3 15 1 5 0.13251019054803D+00 -0.42616869528070D-17 + 1 16 1 5 0.87836048719614D-01 0.46686135215707D-16 + 2 16 1 5 -0.25019036966428D+00 -0.30848183541655D-16 + 3 16 1 5 -0.62056743571407D-02 0.33338819199972D-16 + 1 17 1 5 -0.36115044457183D-01 0.41411346626304D-16 + 2 17 1 5 0.14342087980576D-01 0.15516219417033D-16 + 3 17 1 5 0.14342087980574D-01 -0.16781269707316D-16 + 1 18 1 5 -0.59361263754474D-01 0.44837447928474D-16 + 2 18 1 5 0.25927238246939D-01 0.30894839197478D-16 + 3 18 1 5 0.25927238246934D-01 -0.17891381699679D-17 + 1 19 1 5 0.87836048719717D-01 0.16905089191039D-16 + 2 19 1 5 -0.62056743571447D-02 -0.22061647093648D-16 + 3 19 1 5 -0.25019036966429D+00 0.41125223764498D-17 + 1 20 1 5 0.28295565651853D+01 -0.15254713937961D-15 + 2 20 1 5 -0.15565761819559D+01 -0.26622610538364D-16 + 3 20 1 5 0.15177320252663D+01 0.31955456491556D-16 + 1 21 1 5 0.28298793736917D+01 -0.42753144299224D-16 + 2 21 1 5 0.76751713481800D+00 0.18420830435179D-16 + 3 21 1 5 0.76751713481800D+00 0.78350584979400D-17 + 1 22 1 5 0.24096778295632D+01 -0.15760263103802D-15 + 2 22 1 5 -0.62152515350495D+00 -0.24631006602233D-16 + 3 22 1 5 -0.62152515350495D+00 0.32372058086126D-17 + 1 23 1 5 0.28295565651853D+01 0.30767413227028D-17 + 2 23 1 5 0.15177320252663D+01 -0.27832480757646D-16 + 3 23 1 5 -0.15565761819559D+01 -0.10893537247803D-16 + 1 24 1 5 -0.68667561303240D+00 0.17606108136926D-15 + 2 24 1 5 0.18211420457952D+00 -0.40724862286117D-16 + 3 24 1 5 0.18211420457952D+00 0.28175690080721D-18 + 1 25 1 5 -0.65231166976828D+00 0.18870031342836D-15 + 2 25 1 5 -0.69849934038531D+00 0.38863012164429D-16 + 3 25 1 5 -0.65185720354860D+00 -0.24077876126818D-16 + 1 26 1 5 -0.65231166976826D+00 -0.31701823538761D-15 + 2 26 1 5 -0.65185720354860D+00 -0.15560010167119D-16 + 3 26 1 5 -0.69849934038531D+00 0.66182641937298D-17 + 1 27 1 5 0.66616917000313D-01 -0.17349049016587D-15 + 2 27 1 5 -0.39364144236512D-01 0.20988687931294D-16 + 3 27 1 5 -0.39364144236512D-01 0.30559518341133D-16 + 1 28 1 5 -0.30811084949261D+02 0.11870935218546D-15 + 2 28 1 5 -0.14985549786739D+02 -0.60784377874913D-16 + 3 28 1 5 -0.14985549786739D+02 0.33580709796928D-16 + 1 29 1 5 0.39765551661820D+00 0.26384082905038D-15 + 2 29 1 5 0.15147754531560D+00 -0.17597525113713D-16 + 3 29 1 5 -0.17009621215183D+00 -0.17605321734327D-16 + 1 30 1 5 0.39765551661822D+00 -0.22587472209654D-15 + 2 30 1 5 -0.17009621215182D+00 0.15833932133801D-16 + 3 30 1 5 0.15147754531560D+00 0.14892264617821D-16 + 1 31 1 5 -0.72781243184309D+00 -0.76014010345876D-16 + 2 31 1 5 -0.43370263089718D+00 -0.14644880188910D-16 + 3 31 1 5 -0.43370263089718D+00 0.21543361988892D-16 + 1 32 1 5 -0.74255974099445D-01 0.15424018529744D-15 + 2 32 1 5 -0.76962261638420D-01 0.42852540818123D-17 + 3 32 1 5 -0.71824896247095D+00 0.25270291369320D-16 + 1 33 1 5 -0.31805611728353D+01 -0.47740254261429D-16 + 2 33 1 5 -0.81602640442448D+00 0.80658426818208D-16 + 3 33 1 5 -0.29031814937507D+01 -0.37525734643277D-17 + 1 34 1 5 -0.21143668169989D+00 0.18863862685641D-15 + 2 34 1 5 0.42131995820271D-01 -0.44793885874531D-16 + 3 34 1 5 -0.22701782239698D-01 0.18655817355277D-17 + 1 35 1 5 -0.17607364125101D+00 0.28058228523083D-15 + 2 35 1 5 -0.19179167582305D+00 -0.77648443300457D-16 + 3 35 1 5 0.62185490678855D-01 0.57013731403655D-19 + 1 36 1 5 -0.30801803345459D+01 -0.10353745690467D-15 + 2 36 1 5 0.21253208600549D+01 0.31416690379863D-16 + 3 36 1 5 -0.32340459656326D+01 0.88552820895347D-17 + 1 37 1 5 -0.30338589403062D+01 0.17929207844985D-15 + 2 37 1 5 -0.14435244257966D+01 -0.11093824667950D-15 + 3 37 1 5 0.39313346883589D+01 0.45786186905192D-17 + 1 38 1 5 -0.14227691375252D+00 -0.49921666019919D-16 + 2 38 1 5 -0.27447155986466D-01 0.66448029635110D-16 + 3 38 1 5 -0.82013102129524D-01 -0.10173113401916D-16 + 1 39 1 5 -0.19682298503714D+00 0.32853733316220D-15 + 2 39 1 5 -0.12700528632820D+00 0.81335309234593D-16 + 3 39 1 5 -0.13436069301923D+00 0.29434055984420D-17 + 1 40 1 5 -0.69224099805286D-01 -0.52115709843544D-16 + 2 40 1 5 -0.25116868051170D+00 0.57139762090207D-17 + 3 40 1 5 0.34082333285975D+00 -0.94818520984679D-17 + 1 41 1 5 0.19309537375821D+00 0.14836789038485D-16 + 2 41 1 5 -0.29764610515245D-01 -0.29303263992839D-16 + 3 41 1 5 0.29121581310744D-01 0.35071662020872D-17 + 1 42 1 5 0.43428936181701D-01 -0.94545205695237D-16 + 2 42 1 5 -0.12590578526662D+00 -0.19114060298387D-16 + 3 42 1 5 -0.35757827279188D-01 0.69040648911232D-16 + 1 43 1 5 0.33793601791265D+00 0.73750055933048D-17 + 2 43 1 5 0.28590715431927D+00 0.18409284853219D-16 + 3 43 1 5 -0.26317444518415D+00 -0.13225254756045D-16 + 1 44 1 5 0.57174427519677D-01 0.33971143458801D-16 + 2 44 1 5 0.37616317979341D-02 -0.23086216489431D-16 + 3 44 1 5 -0.55427107238881D-02 -0.13470534747224D-16 + 1 45 1 5 -0.77015767769167D+00 0.13753194743071D-15 + 2 45 1 5 -0.30544660227199D+00 -0.49775732211771D-17 + 3 45 1 5 0.42673169159092D+00 0.32790700056870D-16 + 1 46 1 5 -0.24353371012175D+02 -0.34386152464245D-16 + 2 46 1 5 -0.17151064833579D+02 0.17163418904683D-16 + 3 46 1 5 0.13111602562201D+02 0.25079257159110D-16 + 1 47 1 5 0.24026317668267D+00 0.24196618158577D-15 + 2 47 1 5 0.69344548756159D+00 -0.35366767404639D-16 + 3 47 1 5 0.69836127851069D+00 0.27310576612605D-16 + 1 48 1 5 -0.31805611728353D+01 0.53519835321054D-16 + 2 48 1 5 -0.29031814937507D+01 -0.22848539050610D-17 + 3 48 1 5 -0.81602640442448D+00 -0.43732466355427D-16 + 1 49 1 5 -0.17607364125106D+00 -0.43733671235934D-16 + 2 49 1 5 0.62185490678856D-01 0.10060562668775D-16 + 3 49 1 5 -0.19179167582305D+00 -0.78805443756646D-16 + 1 50 1 5 -0.74255974099530D-01 0.23852461021352D-15 + 2 50 1 5 -0.71824896247095D+00 0.22755510167223D-17 + 3 50 1 5 -0.76962261638420D-01 -0.95866672655538D-16 + 1 51 1 5 -0.21143668169988D+00 0.27764447945474D-15 + 2 51 1 5 -0.22701782239698D-01 -0.52635663646893D-17 + 3 51 1 5 0.42131995820272D-01 -0.64099891119907D-17 + 1 52 1 5 -0.30338589403061D+01 0.24377154265394D-15 + 2 52 1 5 0.39313346883592D+01 0.24437470697398D-17 + 3 52 1 5 -0.14435244257965D+01 0.19363910622338D-17 + 1 53 1 5 -0.19682298503712D+00 0.21689367650048D-15 + 2 53 1 5 -0.13436069301927D+00 0.59119261217112D-17 + 3 53 1 5 -0.12700528632818D+00 0.55286341693316D-16 + 1 54 1 5 -0.30801803345459D+01 -0.27195677423749D-15 + 2 54 1 5 -0.32340459656324D+01 0.70555125381834D-19 + 3 54 1 5 0.21253208600549D+01 -0.31970720673896D-16 + 1 55 1 5 -0.14227691375251D+00 -0.22955013892007D-15 + 2 55 1 5 -0.82013102129496D-01 0.75572481582982D-17 + 3 55 1 5 -0.27447155986463D-01 -0.11158217256579D-15 + 1 56 1 5 0.43428936181693D-01 0.53469084463289D-16 + 2 56 1 5 -0.35757827279188D-01 0.10066414860156D-16 + 3 56 1 5 -0.12590578526662D+00 -0.28490136247356D-16 + 1 57 1 5 -0.69224099805293D-01 0.48725316469824D-16 + 2 57 1 5 0.34082333285975D+00 0.51505278261900D-17 + 3 57 1 5 -0.25116868051170D+00 0.30497531491390D-18 + 1 58 1 5 0.33793601791265D+00 0.24229811264552D-15 + 2 58 1 5 -0.26317444518415D+00 0.38527061007960D-16 + 3 58 1 5 0.28590715431927D+00 0.15776644333158D-16 + 1 59 1 5 0.19309537375821D+00 0.48933677586841D-16 + 2 59 1 5 0.29121581310744D-01 0.16785887413789D-16 + 3 59 1 5 -0.29764610515245D-01 0.20075529068524D-16 + 1 60 1 5 -0.24353371012175D+02 0.11266780519031D-15 + 2 60 1 5 0.13111602562201D+02 -0.45382400648265D-17 + 3 60 1 5 -0.17151064833579D+02 -0.15782430080076D-16 + 1 61 1 5 0.57174427519676D-01 0.35804706897092D-17 + 2 61 1 5 -0.55427107238890D-02 0.13639873027087D-17 + 3 61 1 5 0.37616317979341D-02 -0.62537673263608D-16 + 1 62 1 5 0.24026317668267D+00 -0.32814807736846D-15 + 2 62 1 5 0.69836127851069D+00 0.80595925811412D-17 + 3 62 1 5 0.69344548756159D+00 0.17016973692782D-16 + 1 63 1 5 -0.77015767769167D+00 0.11191916198167D-15 + 2 63 1 5 0.42673169159092D+00 -0.97397527795766D-17 + 3 63 1 5 -0.30544660227199D+00 -0.90114929253984D-17 + 1 64 1 5 -0.88973794530559D+01 -0.47783450320256D-16 + 2 64 1 5 0.12819194379086D+02 -0.10915565415488D-16 + 3 64 1 5 0.12819194379086D+02 0.15938141222299D-16 + 1 65 1 5 -0.87492346166494D+01 0.68850396272993D-16 + 2 65 1 5 0.46101094744401D+01 0.21755918334290D-16 + 3 65 1 5 0.46055311281216D+01 0.24410649286998D-17 + 1 1 2 5 -0.68047619236457D-01 -0.52087688811097D-17 + 2 1 2 5 -0.74394943703652D+00 0.48849330976391D-16 + 3 1 2 5 0.57995663584141D+00 0.14379787539110D-17 + 1 2 2 5 0.85317621194837D+00 -0.15813634348529D-16 + 2 2 2 5 0.62991047216481D-01 0.13688568659698D-16 + 3 2 2 5 -0.10028054761513D+01 0.41171812786207D-17 + 1 3 2 5 -0.74074581612352D+00 0.56390347963489D-17 + 2 3 2 5 0.10020919058717D+01 0.21294676980103D-17 + 3 3 2 5 0.12637881894937D+01 -0.39608852002048D-17 + 1 4 2 5 0.24064116261816D-01 -0.49020197881444D-17 + 2 4 2 5 0.40195590498098D-01 -0.49182725292183D-17 + 3 4 2 5 -0.14872177932805D+00 -0.33970332832681D-17 + 1 5 2 5 0.38075754141958D+01 0.00000000000000D+00 + 2 5 2 5 0.11504972351550D+03 0.00000000000000D+00 + 3 5 2 5 0.11489553790424D+02 0.00000000000000D+00 + 1 6 2 5 -0.32925776099028D+00 -0.40192126681216D-17 + 2 6 2 5 -0.44422357773511D+00 -0.39832905395115D-17 + 3 6 2 5 -0.39305705776450D+00 -0.12302863593831D-16 + 1 7 2 5 0.39005282841352D+00 0.10091863180272D-17 + 2 7 2 5 0.12797076026956D+00 -0.15584749581098D-16 + 3 7 2 5 0.28504399934005D+00 0.67196995822698D-17 + 1 8 2 5 -0.21546854528395D+00 -0.13699899368234D-16 + 2 8 2 5 0.20929947359173D+00 0.22134836265352D-16 + 3 8 2 5 -0.21334612465260D+00 0.96101946170399D-17 + 1 9 2 5 0.94699525274431D+00 0.16739839446256D-16 + 2 9 2 5 -0.80139593358100D+00 0.46709872466551D-16 + 3 9 2 5 -0.95887137638926D+00 -0.85174793550376D-16 + 1 10 2 5 0.13273811450749D-01 0.21196073452897D-16 + 2 10 2 5 0.23190305886134D+00 0.14354147781882D-15 + 3 10 2 5 0.25240149066073D-02 0.26377222731068D-16 + 1 11 2 5 -0.50761007616610D-01 0.25544469080570D-17 + 2 11 2 5 0.16837728753467D+00 -0.28654157634227D-15 + 3 11 2 5 0.13309048952210D+00 -0.13540797846438D-16 + 1 12 2 5 0.44537504933503D+00 -0.35128157135662D-16 + 2 12 2 5 -0.31366955960620D+00 0.33102402420611D-15 + 3 12 2 5 -0.34902446133750D+00 -0.50554433026108D-16 + 1 13 2 5 0.17291822842402D+00 0.50534419553923D-17 + 2 13 2 5 0.51643676632401D+00 -0.26098738100475D-15 + 3 13 2 5 -0.20346636314717D+00 -0.12658994034564D-16 + 1 14 2 5 0.45772260833662D+00 -0.82036491169508D-17 + 2 14 2 5 -0.44967827290000D+00 0.19993667704795D-15 + 3 14 2 5 -0.60753170009590D+00 -0.27543171394545D-16 + 1 15 2 5 -0.29561622081644D+00 0.50159187907360D-17 + 2 15 2 5 0.25241496941609D+00 -0.21797766646820D-17 + 3 15 2 5 -0.27006261064948D+00 0.98661287401434D-17 + 1 16 2 5 -0.68445111688901D+00 -0.30848183541655D-16 + 2 16 2 5 -0.11649945096036D+01 -0.22900109504452D-15 + 3 16 2 5 -0.87950895163831D+00 0.61855720150373D-18 + 1 17 2 5 -0.18965285104181D+00 0.15516219417033D-16 + 2 17 2 5 -0.28136420191462D+00 0.11749912538867D-15 + 3 17 2 5 0.20782504841662D+00 0.25739880200053D-17 + 1 18 2 5 0.13441851649688D+00 0.30894839197478D-16 + 2 18 2 5 0.54392391872486D+00 -0.75088772857265D-16 + 3 18 2 5 -0.62347852797931D+00 0.11016119099597D-17 + 1 19 2 5 0.71809348402236D+00 -0.22061647093648D-16 + 2 19 2 5 0.81365140915614D+00 0.62081209792055D-17 + 3 19 2 5 0.99491676041998D+00 0.56231736229522D-17 + 1 20 2 5 0.18739913392291D+01 -0.26622610538364D-16 + 2 20 2 5 -0.34528163015957D+01 -0.19548370160732D-15 + 3 20 2 5 0.31092013568370D+01 0.17240908136765D-18 + 1 21 2 5 -0.15363366088824D+01 0.18420830435179D-16 + 2 21 2 5 -0.30757828154629D+01 0.46740951795279D-16 + 3 21 2 5 -0.25795643293890D+01 0.54811443437220D-17 + 1 22 2 5 0.62152515350495D+00 -0.24631006602233D-16 + 2 22 2 5 0.54718011965240D+01 -0.22050956933513D-15 + 3 22 2 5 -0.73226250017448D+01 0.56267625870709D-17 + 1 23 2 5 -0.13275629014228D+01 -0.27832480757646D-16 + 2 23 2 5 -0.25386322377401D+01 -0.67195106780083D-15 + 3 23 2 5 0.30549193890543D+01 -0.13986088971307D-17 + 1 24 2 5 0.37666733718618D+00 -0.40724862286117D-16 + 2 24 2 5 -0.79049413507100D-01 0.11251252118529D-15 + 3 24 2 5 0.18446449841465D+00 -0.23911832636994D-18 + 1 25 2 5 -0.18627745527626D+00 0.38863012164429D-16 + 2 25 2 5 -0.73467466067885D+00 0.42648191703700D-16 + 3 25 2 5 -0.50995383855731D+00 -0.60995137028427D-17 + 1 26 2 5 -0.45000684445276D+00 -0.15560010167119D-16 + 2 26 2 5 -0.42401759444368D+00 -0.51857400973928D-17 + 3 26 2 5 -0.33361931413377D+00 0.39622116319201D-16 + 1 27 2 5 -0.63234747208156D-01 0.20988687931294D-16 + 2 27 2 5 0.29670575418888D+00 0.19901294823854D-15 + 3 27 2 5 -0.15228710567634D+00 0.37835995323033D-16 + 1 28 2 5 -0.14289485317980D+02 -0.60784377874913D-16 + 2 28 2 5 -0.21376754587858D+02 0.32625837510180D-15 + 3 28 2 5 -0.10252583096720D+02 -0.32240561538873D-16 + 1 29 2 5 0.29725170472751D+00 -0.17597525113713D-16 + 2 29 2 5 0.74085425446377D+00 -0.92066822662031D-16 + 3 29 2 5 0.17634066358115D+00 -0.22512867258563D-16 + 1 30 2 5 -0.51165184777610D+00 0.15833932133801D-16 + 2 30 2 5 -0.34388639654921D+00 -0.33323316703307D-15 + 3 30 2 5 -0.54811388730226D+00 -0.81221770660953D-16 + 1 31 2 5 -0.38621584503807D-04 -0.14644880188910D-16 + 2 31 2 5 -0.53328893963903D+00 -0.61343319915117D-16 + 3 31 2 5 0.74230068669528D+00 0.56929444293883D-17 + 1 32 2 5 0.76962261638419D-01 0.42852540818123D-17 + 2 32 2 5 -0.70576265098416D+01 -0.56669181369486D-16 + 3 32 2 5 -0.72403265890006D+01 0.20811720832650D-16 + 1 33 2 5 0.17990004975472D+01 0.80658426818208D-16 + 2 33 2 5 0.26553207591071D+01 0.23145718593370D-16 + 3 33 2 5 0.15092623549221D+01 -0.30596868036844D-16 + 1 34 2 5 -0.46714702670666D+00 -0.44793885874531D-16 + 2 34 2 5 0.33819761922103D+00 -0.24989987618701D-15 + 3 34 2 5 -0.15857612882839D+00 -0.33973150865979D-16 + 1 35 2 5 0.98978215545324D-01 -0.77648443300457D-16 + 2 35 2 5 0.32936438032626D+00 0.83614943884631D-17 + 3 35 2 5 0.38755451493193D+00 -0.16100060661420D-16 + 1 36 2 5 -0.97182246126537D+00 0.31416690379863D-16 + 2 36 2 5 0.18056327608835D+01 0.11568178623688D-15 + 3 36 2 5 -0.17882170017425D+01 -0.27744413626806D-16 + 1 37 2 5 0.17512457825153D+00 -0.11093824667950D-15 + 2 37 2 5 0.96910325492603D+00 0.69077052482040D-16 + 3 37 2 5 0.26312833464488D+00 -0.20550596590304D-16 + 1 38 2 5 0.55458505988008D+00 0.66448029635110D-16 + 2 38 2 5 0.12432638468928D+01 -0.53055379820470D-16 + 3 38 2 5 -0.93257181798682D+00 -0.27493358472444D-16 + 1 39 2 5 0.46363386037039D-01 0.81335309234593D-16 + 2 39 2 5 0.17901783548743D+00 -0.18689557546707D-16 + 3 39 2 5 0.25060787165518D-01 0.10257253480452D-16 + 1 40 2 5 -0.28641075667356D+00 0.57139762090207D-17 + 2 40 2 5 -0.27726425993110D+00 -0.18080247940597D-15 + 3 40 2 5 0.60352768827599D+00 0.17794543246334D-16 + 1 41 2 5 -0.28826890102680D-01 -0.29303263992839D-16 + 2 41 2 5 0.79503731643846D-01 0.60998526855011D-16 + 3 41 2 5 -0.50694550586705D-01 -0.77591131328420D-16 + 1 42 2 5 0.16931048991710D+01 -0.19114060298387D-16 + 2 42 2 5 -0.11150142372855D+01 0.24216578567058D-15 + 3 42 2 5 0.13549678598456D+01 0.22308693083424D-16 + 1 43 2 5 0.17793550258318D+01 0.18409284853219D-16 + 2 43 2 5 0.12265406544990D+01 -0.35006147021102D-16 + 3 43 2 5 -0.15198829841141D+01 0.13313767784440D-16 + 1 44 2 5 0.33794676895601D-01 -0.23086216489431D-16 + 2 44 2 5 -0.37611087067124D+00 -0.51425664806240D-16 + 3 44 2 5 0.28225134787876D+00 -0.33330768400364D-16 + 1 45 2 5 -0.52080259707712D+00 -0.49775732211771D-17 + 2 45 2 5 -0.52469610687681D+00 0.49560698817904D-16 + 3 45 2 5 0.41374287618090D+00 -0.12620567658838D-16 + 1 46 2 5 -0.22245450246926D+02 0.17163418904683D-16 + 2 46 2 5 -0.25943254441571D+02 0.81275498107801D-16 + 3 46 2 5 0.23403793604855D+02 -0.34022153757996D-16 + 1 47 2 5 -0.12568042557563D+01 -0.35366767404639D-16 + 2 47 2 5 -0.11782400519076D+01 -0.14595810837372D-15 + 3 47 2 5 -0.87578480095378D+00 0.10188190501419D-16 + 1 48 2 5 -0.32919452336551D+01 -0.22848539050610D-17 + 2 48 2 5 -0.31495638884331D+01 -0.49901145515696D-16 + 3 48 2 5 -0.10224519877059D+01 -0.25558645151550D-17 + 1 49 2 5 -0.67118144898918D-02 0.10060562668775D-16 + 2 49 2 5 -0.52402244393142D+00 0.19766381835019D-15 + 3 49 2 5 -0.28673425970043D+00 -0.54733846298307D-16 + 1 50 2 5 -0.71824896247095D+00 0.22755510167223D-17 + 2 50 2 5 0.81483082564649D+01 0.17678243207806D-15 + 3 50 2 5 0.72382928212444D+01 -0.13845989879332D-17 + 1 51 2 5 0.37172800955782D+00 -0.52635663646893D-17 + 2 51 2 5 0.18707498056840D+00 0.12756293939356D-15 + 3 51 2 5 -0.51652952950282D+00 0.64584954984762D-16 + 1 52 2 5 0.46171555433878D+01 0.24437470697398D-17 + 2 52 2 5 -0.50448506524644D+01 0.19999167295758D-15 + 3 52 2 5 0.29658009543567D+01 0.10212736131773D-15 + 1 53 2 5 -0.92961861660143D-01 0.59119261217112D-17 + 2 53 2 5 -0.36216127554279D+00 0.28932248222558D-15 + 3 53 2 5 0.20914673817793D-01 -0.27326916711642D-16 + 1 54 2 5 -0.27304288889754D+01 0.70555125381834D-19 + 2 54 2 5 -0.18994089981028D+01 -0.12164998582938D-15 + 3 54 2 5 0.20752894122620D+01 -0.84399260454751D-16 + 1 55 2 5 -0.63788193896406D+00 0.75572481582982D-17 + 2 55 2 5 0.62293770665093D+00 -0.11076210451038D-15 + 3 55 2 5 -0.10691912141849D+01 -0.73422175179384D-17 + 1 56 2 5 -0.13093678493619D+01 0.10066414860156D-16 + 2 56 2 5 -0.11313505286587D+01 -0.15402992638063D-15 + 3 56 2 5 0.12676911053746D+01 -0.61531102379531D-17 + 1 57 2 5 0.49185051631149D+00 0.51505278261900D-17 + 2 57 2 5 -0.81185336706516D+00 0.91174398895759D-16 + 3 57 2 5 0.39151104755289D+00 -0.82185298755917D-17 + 1 58 2 5 -0.16233365719528D+01 0.38527061007960D-16 + 2 58 2 5 0.11871324957381D+01 -0.13174187955187D-15 + 3 58 2 5 -0.17065758913518D+01 -0.12883732620566D-16 + 1 59 2 5 0.79971555683554D-02 0.16785887413789D-16 + 2 59 2 5 0.24478245845664D+00 -0.82341188905156D-17 + 3 59 2 5 0.94808506004455D-01 -0.75251806958873D-17 + 1 60 2 5 0.14751333435336D+02 -0.45382400648265D-17 + 2 60 2 5 -0.26966858017480D+02 -0.33366641527357D-16 + 3 60 2 5 0.16509815584852D+02 0.44697108153508D-16 + 1 61 2 5 -0.41327057253000D-01 0.13639873027087D-17 + 2 61 2 5 0.17804663887289D+00 -0.13480520916006D-15 + 3 61 2 5 0.20196117384861D-01 0.37723462852170D-16 + 1 62 2 5 0.19589691143570D+01 0.80595925811412D-17 + 2 62 2 5 0.19692102717770D+01 0.42007413948015D-16 + 3 62 2 5 0.15289918852252D+01 0.38056958546538D-16 + 1 63 2 5 0.45010459969444D+00 -0.97397527795766D-17 + 2 63 2 5 -0.45982337843816D+00 -0.18649786101904D-15 + 3 63 2 5 0.46664333485390D+00 0.13782103196784D-16 + 1 64 2 5 0.12933343460640D+02 -0.10915565415488D-16 + 2 64 2 5 -0.34087583801540D+02 0.28957099157507D-15 + 3 64 2 5 -0.35742517670047D+02 -0.57532758685996D-19 + 1 65 2 5 0.41769986453751D+01 0.21755918334290D-16 + 2 65 2 5 0.84982651392890D+00 -0.27072015157581D-15 + 3 65 2 5 -0.28091029343294D+01 0.58368172806956D-16 + 1 1 3 5 -0.68047619236457D-01 -0.12935148901968D-17 + 2 1 3 5 0.57995663584141D+00 0.14379787539110D-17 + 3 1 3 5 -0.74394943703653D+00 -0.19216906363570D-16 + 1 2 3 5 -0.74074581612352D+00 -0.17736173046275D-16 + 2 2 3 5 0.12637881894937D+01 0.41171812786207D-17 + 3 2 3 5 0.10020919058717D+01 -0.11211238928832D-16 + 1 3 3 5 0.85317621194837D+00 -0.72382523455172D-17 + 2 3 3 5 -0.10028054761513D+01 -0.39608852002048D-17 + 3 3 3 5 0.62991047216480D-01 -0.16500587967512D-16 + 1 4 3 5 0.24064116261817D-01 0.66768036940764D-17 + 2 4 3 5 -0.14872177932805D+00 -0.33970332832681D-17 + 3 4 3 5 0.40195590498098D-01 -0.30023832902800D-17 + 1 5 3 5 0.38075754141959D+01 0.00000000000000D+00 + 2 5 3 5 0.11489553790424D+02 0.00000000000000D+00 + 3 5 3 5 0.11504972351550D+03 0.00000000000000D+00 + 1 6 3 5 0.39005282841352D+00 0.12890133749853D-16 + 2 6 3 5 0.28504399934005D+00 -0.12302863593831D-16 + 3 6 3 5 0.12797076026957D+00 -0.17152038152117D-16 + 1 7 3 5 -0.32925776099028D+00 0.26094709459611D-17 + 2 7 3 5 -0.39305705776451D+00 0.67196995822698D-17 + 3 7 3 5 -0.44422357773511D+00 -0.17078126577724D-16 + 1 8 3 5 -0.21546854528394D+00 -0.19371156020452D-16 + 2 8 3 5 -0.21334612465260D+00 0.96101946170399D-17 + 3 8 3 5 0.20929947359173D+00 -0.70543607509548D-17 + 1 9 3 5 0.44537504933503D+00 0.17649776130858D-16 + 2 9 3 5 -0.34902446133750D+00 -0.85174793550376D-16 + 3 9 3 5 -0.31366955960619D+00 0.22721968901055D-15 + 1 10 3 5 0.13273811450748D-01 -0.24903454107544D-16 + 2 10 3 5 0.25240149066073D-02 0.26377222731068D-16 + 3 10 3 5 0.23190305886133D+00 -0.16420180096272D-16 + 1 11 3 5 -0.50761007616417D-01 -0.25220717970043D-16 + 2 11 3 5 0.13309048952210D+00 -0.13540797846438D-16 + 3 11 3 5 0.16837728753467D+00 -0.95537712679465D-16 + 1 12 3 5 0.94699525274431D+00 -0.10341598241492D-16 + 2 12 3 5 -0.95887137638926D+00 -0.50554433026108D-16 + 3 12 3 5 -0.80139593358100D+00 -0.57922719585247D-15 + 1 13 3 5 -0.29561622081644D+00 0.32846065125504D-16 + 2 13 3 5 -0.27006261064949D+00 -0.12658994034564D-16 + 3 13 3 5 0.25241496941609D+00 -0.21191527045885D-15 + 1 14 3 5 0.45772260833659D+00 -0.44408200190469D-18 + 2 14 3 5 -0.60753170009590D+00 -0.27543171394545D-16 + 3 14 3 5 -0.44967827290000D+00 0.19633030654717D-15 + 1 15 3 5 0.17291822842402D+00 -0.42616869528070D-17 + 2 15 3 5 -0.20346636314717D+00 0.98661287401434D-17 + 3 15 3 5 0.51643676632401D+00 -0.31420068640592D-16 + 1 16 3 5 0.71809348402236D+00 0.33338819199972D-16 + 2 16 3 5 0.99491676041998D+00 0.61855720150373D-18 + 3 16 3 5 0.81365140915615D+00 -0.12228635790339D-15 + 1 17 3 5 -0.18965285104181D+00 -0.16781269707316D-16 + 2 17 3 5 0.20782504841662D+00 0.25739880200053D-17 + 3 17 3 5 -0.28136420191463D+00 -0.32895077346600D-16 + 1 18 3 5 0.13441851649688D+00 -0.17891381699679D-17 + 2 18 3 5 -0.62347852797931D+00 0.11016119099597D-17 + 3 18 3 5 0.54392391872485D+00 0.13609659638296D-15 + 1 19 3 5 -0.68445111688901D+00 0.41125223764498D-17 + 2 19 3 5 -0.87950895163831D+00 0.56231736229522D-17 + 3 19 3 5 -0.11649945096036D+01 0.13405859480270D-16 + 1 20 3 5 -0.13275629014228D+01 0.31955456491556D-16 + 2 20 3 5 0.30549193890543D+01 0.17240908136765D-18 + 3 20 3 5 -0.25386322377401D+01 0.21019757999934D-15 + 1 21 3 5 -0.15363366088824D+01 0.78350584979400D-17 + 2 21 3 5 -0.25795643293890D+01 0.54811443437220D-17 + 3 21 3 5 -0.30757828154629D+01 -0.29514975484929D-15 + 1 22 3 5 0.62152515350495D+00 0.32372058086126D-17 + 2 22 3 5 -0.73226250017448D+01 0.56267625870709D-17 + 3 22 3 5 0.54718011965240D+01 0.78032421693008D-16 + 1 23 3 5 0.18739913392291D+01 -0.10893537247803D-16 + 2 23 3 5 0.31092013568370D+01 -0.13986088971307D-17 + 3 23 3 5 -0.34528163015957D+01 -0.16321128878242D-15 + 1 24 3 5 0.37666733718619D+00 0.28175690080721D-18 + 2 24 3 5 0.18446449841465D+00 -0.23911832636994D-18 + 3 24 3 5 -0.79049413507098D-01 -0.95798449968127D-16 + 1 25 3 5 -0.45000684445281D+00 -0.24077876126818D-16 + 2 25 3 5 -0.33361931413377D+00 -0.60995137028427D-17 + 3 25 3 5 -0.42401759444368D+00 0.90031058759632D-16 + 1 26 3 5 -0.18627745527627D+00 0.66182641937298D-17 + 2 26 3 5 -0.50995383855731D+00 0.39622116319201D-16 + 3 26 3 5 -0.73467466067885D+00 0.96549738001534D-16 + 1 27 3 5 -0.63234747208147D-01 0.30559518341133D-16 + 2 27 3 5 -0.15228710567634D+00 0.37835995323033D-16 + 3 27 3 5 0.29670575418887D+00 -0.18331466764365D-15 + 1 28 3 5 -0.14289485317980D+02 0.33580709796928D-16 + 2 28 3 5 -0.10252583096720D+02 -0.32240561538873D-16 + 3 28 3 5 -0.21376754587858D+02 0.95901879723101D-16 + 1 29 3 5 -0.51165184777623D+00 -0.17605321734327D-16 + 2 29 3 5 -0.54811388730227D+00 -0.22512867258563D-16 + 3 29 3 5 -0.34388639654920D+00 0.32324644143850D-15 + 1 30 3 5 0.29725170472749D+00 0.14892264617821D-16 + 2 30 3 5 0.17634066358115D+00 -0.81221770660953D-16 + 3 30 3 5 0.74085425446377D+00 -0.18186340486655D-15 + 1 31 3 5 -0.38621584511818D-04 0.21543361988892D-16 + 2 31 3 5 0.74230068669528D+00 0.56929444293883D-17 + 3 31 3 5 -0.53328893963903D+00 0.88396046660688D-16 + 1 32 3 5 -0.71824896247095D+00 0.25270291369320D-16 + 2 32 3 5 0.72403265890006D+01 0.20811720832650D-16 + 3 32 3 5 0.81483082564649D+01 0.11402597448684D-15 + 1 33 3 5 -0.32919452336551D+01 -0.37525734643277D-17 + 2 33 3 5 -0.10224519877059D+01 -0.30596868036844D-16 + 3 33 3 5 -0.31495638884331D+01 -0.80114612220412D-16 + 1 34 3 5 0.37172800955782D+00 0.18655817355277D-17 + 2 34 3 5 -0.51652952950282D+00 -0.33973150865979D-16 + 3 34 3 5 0.18707498056840D+00 0.10595243941310D-15 + 1 35 3 5 -0.67118144898829D-02 0.57013731403655D-19 + 2 35 3 5 -0.28673425970043D+00 -0.16100060661420D-16 + 3 35 3 5 -0.52402244393142D+00 0.20548911310938D-16 + 1 36 3 5 -0.27304288889754D+01 0.88552820895347D-17 + 2 36 3 5 0.20752894122620D+01 -0.27744413626806D-16 + 3 36 3 5 -0.18994089981029D+01 -0.24535913918417D-15 + 1 37 3 5 0.46171555433879D+01 0.45786186905192D-17 + 2 37 3 5 0.29658009543567D+01 -0.20550596590304D-16 + 3 37 3 5 -0.50448506524644D+01 -0.10356123879810D-15 + 1 38 3 5 -0.63788193896406D+00 -0.10173113401916D-16 + 2 38 3 5 -0.10691912141849D+01 -0.27493358472444D-16 + 3 38 3 5 0.62293770665093D+00 -0.95656641386918D-16 + 1 39 3 5 -0.92961861660141D-01 0.29434055984420D-17 + 2 39 3 5 0.20914673817793D-01 0.10257253480452D-16 + 3 39 3 5 -0.36216127554279D+00 -0.11397378009658D-15 + 1 40 3 5 0.49185051631150D+00 -0.94818520984679D-17 + 2 40 3 5 0.39151104755289D+00 0.17794543246334D-16 + 3 40 3 5 -0.81185336706516D+00 0.36073240300725D-15 + 1 41 3 5 0.79971555683554D-02 0.35071662020872D-17 + 2 41 3 5 0.94808506004455D-01 -0.77591131328420D-16 + 3 41 3 5 0.24478245845664D+00 -0.36144864947936D-16 + 1 42 3 5 -0.13093678493619D+01 0.69040648911232D-16 + 2 42 3 5 0.12676911053746D+01 0.22308693083424D-16 + 3 42 3 5 -0.11313505286587D+01 0.40695143122332D-15 + 1 43 3 5 -0.16233365719528D+01 -0.13225254756045D-16 + 2 43 3 5 -0.17065758913518D+01 0.13313767784440D-16 + 3 43 3 5 0.11871324957381D+01 -0.71471074620662D-15 + 1 44 3 5 -0.41327057252999D-01 -0.13470534747224D-16 + 2 44 3 5 0.20196117384861D-01 -0.33330768400364D-16 + 3 44 3 5 0.17804663887289D+00 0.43875252886621D-16 + 1 45 3 5 0.45010459969444D+00 0.32790700056870D-16 + 2 45 3 5 0.46664333485390D+00 -0.12620567658838D-16 + 3 45 3 5 -0.45982337843816D+00 -0.21527027137736D-16 + 1 46 3 5 0.14751333435336D+02 0.25079257159110D-16 + 2 46 3 5 0.16509815584852D+02 -0.34022153757996D-16 + 3 46 3 5 -0.26966858017480D+02 -0.51628446905187D-15 + 1 47 3 5 0.19589691143570D+01 0.27310576612605D-16 + 2 47 3 5 0.15289918852252D+01 0.10188190501419D-16 + 3 47 3 5 0.19692102717770D+01 0.12230142860108D-15 + 1 48 3 5 0.17990004975472D+01 -0.43732466355427D-16 + 2 48 3 5 0.15092623549221D+01 -0.25558645151550D-17 + 3 48 3 5 0.26553207591071D+01 -0.48516691490047D-16 + 1 49 3 5 0.98978215545313D-01 -0.78805443756646D-16 + 2 49 3 5 0.38755451493193D+00 -0.54733846298307D-16 + 3 49 3 5 0.32936438032626D+00 -0.80561249511741D-16 + 1 50 3 5 0.76962261638419D-01 -0.95866672655538D-16 + 2 50 3 5 -0.72382928212444D+01 -0.13845989879332D-17 + 3 50 3 5 -0.70576265098416D+01 0.32314468671722D-16 + 1 51 3 5 -0.46714702670665D+00 -0.64099891119907D-17 + 2 51 3 5 -0.15857612882839D+00 0.64584954984762D-16 + 3 51 3 5 0.33819761922103D+00 -0.17309733782614D-16 + 1 52 3 5 0.17512457825153D+00 0.19363910622338D-17 + 2 52 3 5 0.26312833464488D+00 0.10212736131773D-15 + 3 52 3 5 0.96910325492602D+00 -0.12915475091191D-16 + 1 53 3 5 0.46363386037038D-01 0.55286341693316D-16 + 2 53 3 5 0.25060787165518D-01 -0.27326916711642D-16 + 3 53 3 5 0.17901783548742D+00 0.13089405164461D-16 + 1 54 3 5 -0.97182246126537D+00 -0.31970720673896D-16 + 2 54 3 5 -0.17882170017425D+01 -0.84399260454751D-16 + 3 54 3 5 0.18056327608835D+01 0.22926636767547D-16 + 1 55 3 5 0.55458505988008D+00 -0.11158217256579D-15 + 2 55 3 5 -0.93257181798683D+00 -0.73422175179384D-17 + 3 55 3 5 0.12432638468928D+01 -0.35408556516482D-16 + 1 56 3 5 0.16931048991710D+01 -0.28490136247356D-16 + 2 56 3 5 0.13549678598456D+01 -0.61531102379531D-17 + 3 56 3 5 -0.11150142372855D+01 0.49126016960131D-16 + 1 57 3 5 -0.28641075667356D+00 0.30497531491390D-18 + 2 57 3 5 0.60352768827599D+00 -0.82185298755917D-17 + 3 57 3 5 -0.27726425993111D+00 -0.21118825283754D-15 + 1 58 3 5 0.17793550258318D+01 0.15776644333158D-16 + 2 58 3 5 -0.15198829841141D+01 -0.12883732620566D-16 + 3 58 3 5 0.12265406544990D+01 0.87919495952059D-17 + 1 59 3 5 -0.28826890102680D-01 0.20075529068524D-16 + 2 59 3 5 -0.50694550586705D-01 -0.75251806958873D-17 + 3 59 3 5 0.79503731643843D-01 0.27948638304785D-15 + 1 60 3 5 -0.22245450246926D+02 -0.15782430080076D-16 + 2 60 3 5 0.23403793604855D+02 0.44697108153508D-16 + 3 60 3 5 -0.25943254441571D+02 0.17741598488110D-15 + 1 61 3 5 0.33794676895601D-01 -0.62537673263608D-16 + 2 61 3 5 0.28225134787876D+00 0.37723462852170D-16 + 3 61 3 5 -0.37611087067125D+00 -0.23403686892079D-15 + 1 62 3 5 -0.12568042557563D+01 0.17016973692782D-16 + 2 62 3 5 -0.87578480095378D+00 0.38056958546538D-16 + 3 62 3 5 -0.11782400519076D+01 -0.16076032762797D-15 + 1 63 3 5 -0.52080259707713D+00 -0.90114929253984D-17 + 2 63 3 5 0.41374287618090D+00 0.13782103196784D-16 + 3 63 3 5 -0.52469610687682D+00 0.53242611952003D-16 + 1 64 3 5 0.12933343460640D+02 0.15938141222299D-16 + 2 64 3 5 -0.35742517670047D+02 -0.57532758685996D-19 + 3 64 3 5 -0.34087583801540D+02 -0.60845740953570D-15 + 1 65 3 5 0.41769986453753D+01 0.24410649286998D-17 + 2 65 3 5 -0.28110118400061D+01 0.58368172806956D-16 + 3 65 3 5 0.85208276128702D+00 -0.19138826640990D-15 + 1 1 1 6 -0.10369009279272D+00 0.54960853938657D-17 + 2 1 1 6 0.25660247315378D-01 0.18615732894699D-18 + 3 1 1 6 0.36928784194139D-01 -0.19512908395596D-17 + 1 2 1 6 -0.35562475976302D+00 -0.54872418519843D-17 + 2 2 1 6 -0.24461857082302D-02 -0.76143120815949D-19 + 3 2 1 6 -0.46994349775083D-01 -0.12096055105104D-17 + 1 3 1 6 -0.16720242091942D+00 -0.70094992048919D-17 + 2 3 1 6 0.53321962162253D-01 -0.13243111011184D-18 + 3 3 1 6 0.50822928074397D-01 0.57357732875849D-19 + 1 4 1 6 -0.14651597359657D+00 -0.20700392547347D-17 + 2 4 1 6 -0.41467919487292D-01 -0.25573581942423D-19 + 3 4 1 6 -0.78310784482451D-02 -0.10095939671221D-18 + 1 5 1 6 -0.83718992029358D-01 -0.51022434701107D-16 + 2 5 1 6 -0.32925776099028D+00 0.40192126681216D-17 + 3 5 1 6 0.39005282841352D+00 -0.12890133749853D-16 + 1 6 1 6 0.12009846314917D+03 0.00000000000000D+00 + 2 6 1 6 0.59488669410529D-01 0.00000000000000D+00 + 3 6 1 6 -0.17989040590745D+01 0.00000000000000D+00 + 1 7 1 6 0.14728015480932D+01 0.42685026778547D-18 + 2 7 1 6 0.27724378819635D-01 -0.39952369704606D-18 + 3 7 1 6 0.63626998041331D-01 -0.34292710245974D-18 + 1 8 1 6 -0.23565771303355D+00 -0.13632157095834D-17 + 2 8 1 6 0.76325334859225D-02 -0.70596425274395D-18 + 3 8 1 6 -0.25941992352620D-01 0.19168923025744D-18 + 1 9 1 6 0.24400776122668D+00 -0.52993971693695D-16 + 2 9 1 6 -0.37230511438906D-01 -0.40157795031953D-16 + 3 9 1 6 -0.13187086874675D-02 0.16318985334691D-16 + 1 10 1 6 -0.34863044532200D+00 -0.44239773155377D-16 + 2 10 1 6 0.43777978912026D+00 0.11385009756023D-16 + 3 10 1 6 0.47661236736015D+00 0.36100359081020D-16 + 1 11 1 6 -0.37485941932140D+00 -0.44217775440800D-16 + 2 11 1 6 0.41799765230709D+00 0.55971636453783D-17 + 3 11 1 6 0.49376388172361D+00 -0.82936600802870D-17 + 1 12 1 6 0.48013010771485D+00 0.29499683456157D-16 + 2 12 1 6 0.26610454512720D+00 0.57454864001203D-18 + 3 12 1 6 0.32762621479199D+00 0.31127476357015D-16 + 1 13 1 6 -0.77719381706603D+00 -0.13309076351848D-15 + 2 13 1 6 0.48063399579718D+00 -0.12780502347251D-17 + 3 13 1 6 0.42176664241324D+00 0.21016232890215D-16 + 1 14 1 6 0.20209056579018D+00 0.91656307276439D-16 + 2 14 1 6 0.33052259598516D+00 -0.39732826701180D-16 + 3 14 1 6 -0.34325330614271D+00 0.17285126281595D-16 + 1 15 1 6 -0.26419464735399D+02 0.65110213699617D-16 + 2 15 1 6 0.14029655666361D+02 -0.31794425732122D-18 + 3 15 1 6 0.14605661763507D+02 0.19003423981030D-16 + 1 16 1 6 -0.40115266392881D-01 0.30416120045826D-17 + 2 16 1 6 0.42487475494270D-01 0.46816753443280D-17 + 3 16 1 6 0.34258093331190D-01 0.23810138357992D-16 + 1 17 1 6 -0.21972711183055D-01 0.71649351511171D-16 + 2 17 1 6 -0.11243027226998D+00 0.30484056008021D-16 + 3 17 1 6 0.98113074926451D-01 -0.10355404759999D-16 + 1 18 1 6 -0.19885450472417D-01 0.12373629789144D-16 + 2 18 1 6 0.13569498302180D+00 -0.37274969310263D-16 + 3 18 1 6 -0.12899902445748D+00 0.00000000000000D+00 + 1 19 1 6 0.28208267547115D-01 -0.11184060271003D-15 + 2 19 1 6 -0.46389530140498D-01 0.34616770059454D-16 + 3 19 1 6 -0.43402375418694D-01 0.36419937354068D-16 + 1 20 1 6 0.32152539957641D+01 -0.55784047677691D-16 + 2 20 1 6 0.12172360738130D+01 0.28582476346542D-16 + 3 20 1 6 0.12454641439855D+01 -0.79615587877984D-17 + 1 21 1 6 0.29685174375501D+01 0.89607685939064D-16 + 2 21 1 6 -0.12951198397229D+01 0.15779716185920D-16 + 3 21 1 6 0.14116852895950D+01 0.31097259123268D-16 + 1 22 1 6 0.28295565651853D+01 -0.90175483997616D-16 + 2 22 1 6 0.13275629014228D+01 0.40113014226102D-16 + 3 22 1 6 -0.18739913392291D+01 -0.24024551201297D-16 + 1 23 1 6 0.30841850336172D+01 -0.11857494776028D-15 + 2 23 1 6 -0.13256739918059D+01 0.16510359780427D-16 + 3 23 1 6 -0.12743152760817D+01 -0.26996829716464D-16 + 1 24 1 6 -0.39730649977235D+00 -0.11651742129534D-15 + 2 24 1 6 -0.50064688040607D+00 0.32627696943859D-16 + 3 24 1 6 -0.46150686927486D+00 -0.20904257004875D-17 + 1 25 1 6 0.48538142032137D+00 0.22113056935598D-15 + 2 25 1 6 -0.26829885043048D+00 0.18873999484069D-17 + 3 25 1 6 -0.33034754534779D+00 -0.91122405875395D-16 + 1 26 1 6 0.28559695976668D+00 -0.11431425468583D-15 + 2 26 1 6 0.31288499790063D-02 -0.14926382789836D-17 + 3 26 1 6 -0.37134587379390D-01 0.40259794141582D-17 + 1 27 1 6 -0.39161458132892D+00 0.14202778494881D-15 + 2 27 1 6 -0.47745269960845D+00 -0.17765934753612D-16 + 3 27 1 6 -0.39173006312076D+00 0.32885923160933D-16 + 1 28 1 6 0.25002441018993D+00 0.80032179301475D-16 + 2 28 1 6 0.29589742680319D+00 -0.14932906439133D-17 + 3 28 1 6 -0.35525035041941D+00 -0.24988513672454D-16 + 1 29 1 6 -0.25328120975725D+02 -0.42577200501039D-16 + 2 29 1 6 -0.13149198839102D+02 -0.97382893213315D-17 + 3 29 1 6 -0.13400572938525D+02 -0.58304460200261D-17 + 1 30 1 6 -0.79080780410649D+00 0.11111153211895D-15 + 2 30 1 6 -0.53886715642619D+00 0.44291810214205D-16 + 3 30 1 6 -0.53313172251161D+00 -0.26005487056182D-16 + 1 31 1 6 0.16030304388458D+00 0.54342580679947D-16 + 2 31 1 6 -0.20850740465840D+00 -0.10418895826810D-16 + 3 31 1 6 0.30651034623013D+00 -0.32588542342182D-16 + 1 32 1 6 -0.31805611728353D+01 0.29167598314720D-15 + 2 32 1 6 -0.17990004975472D+01 -0.20183938188824D-17 + 3 32 1 6 -0.32919452336552D+01 0.81011328294352D-17 + 1 33 1 6 -0.31818805466033D+01 -0.10311327295858D-16 + 2 33 1 6 0.13625469848010D+01 0.36771480310470D-16 + 3 33 1 6 0.30751735322857D+01 -0.12987193288708D-17 + 1 34 1 6 -0.24757479388526D+00 -0.31593288573989D-16 + 2 34 1 6 -0.14352455831500D+00 0.33498102638344D-17 + 3 34 1 6 0.73906612608212D-01 -0.14730749097679D-17 + 1 35 1 6 -0.22820373706450D+00 0.24048544864984D-15 + 2 35 1 6 0.11060314530730D+00 -0.18633500849882D-16 + 3 35 1 6 -0.78657874930478D-01 0.37182115527619D-19 + 1 36 1 6 -0.30031823137819D+01 0.18363800803527D-15 + 2 36 1 6 -0.11823768965084D+01 0.41542520070078D-16 + 3 36 1 6 0.30962339742665D+01 0.84246472815502D-18 + 1 37 1 6 -0.29949756481198D+01 -0.10517525722668D-15 + 2 37 1 6 0.13678659944496D+01 0.33883821503109D-16 + 3 37 1 6 -0.30926262122503D+01 0.17932589390841D-17 + 1 38 1 6 -0.20285354699657D+00 0.55804761201668D-16 + 2 38 1 6 -0.93528066163433D-01 -0.54774260452254D-16 + 3 38 1 6 -0.89658032623899D-01 0.53102309133507D-19 + 1 39 1 6 -0.23862176796399D+00 0.24880227207429D-15 + 2 39 1 6 0.86016099995365D-01 0.82780098907378D-17 + 3 39 1 6 0.11390436163443D+00 0.24803798799627D-17 + 1 40 1 6 0.25748660815604D+00 -0.11924867385342D-15 + 2 40 1 6 -0.13334431757596D-01 -0.16694700636815D-16 + 3 40 1 6 0.22643509870744D-01 -0.28757644965637D-16 + 1 41 1 6 -0.31512814179122D+00 0.18810525319063D-16 + 2 41 1 6 -0.41510684461685D+00 0.34817955188240D-16 + 3 41 1 6 0.48369823738221D+00 0.44662330011167D-16 + 1 42 1 6 -0.17175783798410D+00 0.30065562947533D-15 + 2 42 1 6 -0.53061614381882D+00 -0.52200790863636D-18 + 3 42 1 6 0.52011348209476D+00 -0.18063486178880D-16 + 1 43 1 6 0.57599511951002D+00 0.36710812508430D-17 + 2 43 1 6 -0.35996202666302D+00 0.20041977521202D-16 + 3 43 1 6 0.26938321812239D+00 0.62044299416521D-17 + 1 44 1 6 -0.75060432465814D+00 -0.11286586232988D-15 + 2 44 1 6 -0.41642775373069D+00 0.11027998936457D-16 + 3 44 1 6 0.43144431608079D+00 -0.56101250333609D-16 + 1 45 1 6 0.15328911515379D+00 0.54824425191649D-16 + 2 45 1 6 -0.29601155427098D+00 -0.14849442125955D-16 + 3 45 1 6 -0.31389755507366D+00 0.35464791737579D-17 + 1 46 1 6 0.19042103809358D+00 0.20880369899024D-15 + 2 46 1 6 0.42205070125685D+00 0.28746965909955D-16 + 3 46 1 6 0.30050836975059D+00 -0.26277184658647D-16 + 1 47 1 6 -0.28281032658509D+02 0.39974603598512D-16 + 2 47 1 6 -0.14992323709904D+02 0.15926926243757D-17 + 3 47 1 6 0.13867197110953D+02 0.17487560451294D-16 + 1 48 1 6 -0.24776983014886D+00 -0.14766426378621D-15 + 2 48 1 6 0.94115504274795D-01 -0.36746238347229D-17 + 3 48 1 6 -0.43841709977772D-01 -0.13911841117172D-16 + 1 49 1 6 -0.31052957392001D+01 0.27438844537262D-16 + 2 49 1 6 -0.32289744110740D+01 0.72323814192933D-18 + 3 49 1 6 -0.11850558323564D+01 -0.40730494336349D-17 + 1 50 1 6 -0.21143668169989D+00 -0.24504791922272D-15 + 2 50 1 6 0.37172800955781D+00 0.27762584980695D-17 + 3 50 1 6 0.46714702670666D+00 0.98014606144506D-16 + 1 51 1 6 -0.30238806664966D+01 0.22287376936011D-15 + 2 51 1 6 0.32845967229456D+01 0.30606111802573D-18 + 3 51 1 6 0.12921767328817D+01 -0.27556480942444D-16 + 1 52 1 6 -0.20352226633814D+00 0.26145714254351D-15 + 2 52 1 6 -0.12521758778297D+00 0.29164664505017D-17 + 3 52 1 6 -0.10774984940747D-01 -0.36640297026016D-16 + 1 53 1 6 -0.30470853174333D+01 -0.60432383463829D-16 + 2 53 1 6 0.31172863636170D+01 0.10298897951586D-17 + 3 53 1 6 -0.13286275214552D+01 -0.79323093897739D-17 + 1 54 1 6 -0.23467698998718D+00 0.21366710784972D-15 + 2 54 1 6 0.96415435917295D-01 -0.55566342904513D-18 + 3 54 1 6 0.12180751841965D+00 -0.22525909732289D-16 + 1 55 1 6 -0.29233488661134D+01 0.11345763646862D-15 + 2 55 1 6 -0.28728526686265D+01 0.44175482475118D-17 + 3 55 1 6 0.12748485259548D+01 -0.22623533994481D-16 + 1 56 1 6 -0.49336914517857D+00 -0.52325323487698D-16 + 2 56 1 6 0.25450899472504D+00 0.12553503128050D-16 + 3 56 1 6 -0.64346728371820D-01 0.29130762265202D-16 + 1 57 1 6 0.47011509603787D+00 0.79585100383904D-16 + 2 57 1 6 0.32358218209426D+00 0.30168070328774D-17 + 3 57 1 6 -0.24424858336585D+00 -0.54894793964882D-17 + 1 58 1 6 0.20033384962360D+00 -0.32670726113186D-16 + 2 58 1 6 0.10281033293596D+00 0.21558174801891D-16 + 3 58 1 6 -0.17379472240560D+00 0.28198695187595D-17 + 1 59 1 6 -0.44551561571322D+00 -0.43370304595176D-16 + 2 59 1 6 0.52437964590650D+00 0.40140022176859D-16 + 3 59 1 6 -0.48848716900826D+00 0.36528114523960D-17 + 1 60 1 6 0.27912912720102D+00 0.79572294535442D-16 + 2 60 1 6 -0.42098272698905D+00 -0.13716310285044D-16 + 3 60 1 6 -0.35569019419801D+00 0.96185223199081D-17 + 1 61 1 6 -0.25336542636213D+02 -0.58458630296950D-16 + 2 61 1 6 0.13816776238180D+02 -0.40069950478465D-16 + 3 61 1 6 -0.13733332541572D+02 0.21708681183140D-16 + 1 62 1 6 -0.78153175645180D+00 -0.27316850567505D-16 + 2 62 1 6 0.31197724830339D+00 0.46040232206738D-18 + 3 62 1 6 -0.37756050303363D+00 -0.12840022699100D-15 + 1 63 1 6 0.17633524868553D+00 -0.16097698480127D-15 + 2 63 1 6 0.29923597616247D+00 -0.10531857866399D-16 + 3 63 1 6 0.27566745941855D+00 -0.37313848163522D-17 + 1 64 1 6 0.33464851426705D+00 -0.38854271843257D-16 + 2 64 1 6 0.30892971086146D+00 0.66908606682021D-17 + 3 64 1 6 -0.16656805207937D-01 0.21385059742021D-16 + 1 65 1 6 0.14545606074375D+00 0.13163206330921D-15 + 2 65 1 6 -0.18397158875336D+00 -0.10828214768702D-17 + 3 65 1 6 0.32150795395446D+00 -0.11443427448200D-16 + 1 1 2 6 -0.24861959050637D-01 0.18615732894699D-18 + 2 1 2 6 0.14768947477597D+01 0.16913642271272D-17 + 3 1 2 6 -0.44845856798312D-01 -0.21799814429809D-18 + 1 2 2 6 0.19184240360457D-02 -0.76143120815949D-19 + 2 2 2 6 -0.20671006593298D+00 0.73043784617676D-18 + 3 2 2 6 -0.40416366528409D-01 0.15921513586390D-17 + 1 3 2 6 -0.38930185792206D-01 -0.13243111011184D-18 + 2 3 2 6 -0.95554353237722D-01 -0.40183752422115D-17 + 3 3 2 6 0.12262395208868D-01 0.15698371150561D-18 + 1 4 2 6 -0.23926507485511D-01 -0.25573581942423D-19 + 2 4 2 6 -0.19111969908325D+00 0.16656424739146D-17 + 3 4 2 6 -0.41533968157781D-01 0.11932032076516D-18 + 1 5 2 6 0.24475038061528D-01 0.40192126681216D-17 + 2 5 2 6 -0.44422357773511D+00 0.39832905395115D-17 + 3 5 2 6 0.28504399934005D+00 0.12302863593831D-16 + 1 6 2 6 0.59488669410529D-01 0.00000000000000D+00 + 2 6 2 6 0.11865662793326D+03 0.00000000000000D+00 + 3 6 2 6 0.13236166824960D+01 0.00000000000000D+00 + 1 7 2 6 0.63626998041331D-01 -0.39952369704606D-18 + 2 7 2 6 -0.12727626599595D+00 -0.56433515162939D-18 + 3 7 2 6 0.86493072065202D-02 0.10776108596035D-17 + 1 8 2 6 -0.22284876094380D-01 -0.70596425274395D-18 + 2 8 2 6 -0.39179030205287D+00 0.23524434117915D-17 + 3 8 2 6 -0.67018209271095D-01 0.12234864465022D-17 + 1 9 2 6 -0.11266806978942D-01 -0.40157795031953D-16 + 2 9 2 6 0.26346517888124D+00 -0.16664126342138D-15 + 3 9 2 6 -0.12652840085354D-01 0.25495132850317D-16 + 1 10 2 6 0.44863106048822D+00 0.11385009756023D-16 + 2 10 2 6 -0.35985695528310D+00 -0.15125114138373D-15 + 3 10 2 6 -0.46636153091889D+00 0.14749401893747D-16 + 1 11 2 6 0.46522743564038D+00 0.55971636453783D-17 + 2 11 2 6 -0.76085550268744D+00 0.55470181318249D-16 + 3 11 2 6 -0.45441403519213D+00 -0.93937287698771D-17 + 1 12 2 6 0.27429826993853D+00 0.57454864001203D-18 + 2 12 2 6 0.12684713898619D+00 0.21725623012711D-15 + 3 12 2 6 0.28470708887522D+00 -0.13150562241483D-16 + 1 13 2 6 0.45605122386224D+00 -0.12780502347251D-17 + 2 13 2 6 -0.38733449979394D+00 0.13788649249929D-15 + 3 13 2 6 -0.42696613261043D+00 -0.17318060135639D-16 + 1 14 2 6 0.32570656986024D+00 -0.39732826701180D-16 + 2 14 2 6 0.49508247045830D+00 0.48906089050163D-15 + 3 14 2 6 -0.26654576811641D+00 -0.97872671813843D-16 + 1 15 2 6 0.13897086490666D+02 -0.31794425732122D-18 + 2 15 2 6 -0.26292168970119D+02 -0.53725129280646D-16 + 3 15 2 6 -0.14423236904407D+02 -0.29816184924162D-16 + 1 16 2 6 -0.14432681694242D+00 0.46816753443280D-17 + 2 16 2 6 -0.26792518326819D+00 -0.21260491131524D-15 + 3 16 2 6 0.49290147573130D-01 -0.16422807791146D-17 + 1 17 2 6 0.10979845495590D+00 0.30484056008021D-16 + 2 17 2 6 -0.24801182769948D+00 0.12280211671615D-15 + 3 17 2 6 -0.88531530517870D-01 0.23453724395733D-18 + 1 18 2 6 -0.11018956029346D+00 -0.37274969310263D-16 + 2 18 2 6 -0.20873637486903D+00 -0.51865806860163D-16 + 3 18 2 6 -0.90810637626317D-01 0.10920400990685D-17 + 1 19 2 6 0.10915285207293D+00 0.34616770059454D-16 + 2 19 2 6 -0.19250859648881D+00 0.17008695513115D-15 + 3 19 2 6 0.15173137220633D+00 0.75887882384207D-18 + 1 20 2 6 -0.12454641439855D+01 0.28582476346542D-16 + 2 20 2 6 -0.30589887005169D+01 0.59556271054967D-16 + 3 20 2 6 -0.31293913227631D+01 -0.45215346691055D-17 + 1 21 2 6 0.12360040210204D+01 0.15779716185920D-16 + 2 21 2 6 -0.30626394163209D+01 0.12552410442673D-16 + 3 21 2 6 0.31905729764210D+01 -0.22686292273670D-18 + 1 22 2 6 -0.15177320252663D+01 0.40113014226102D-16 + 2 22 2 6 -0.25386322377401D+01 0.39524079501502D-15 + 3 22 2 6 0.31092013568370D+01 -0.83627699172927D-17 + 1 23 2 6 0.13256739918059D+01 0.16510359780427D-16 + 2 23 2 6 -0.29795532850691D+01 0.10185599546461D-15 + 3 23 2 6 -0.31608079795356D+01 -0.21787787965233D-17 + 1 24 2 6 -0.43605273089234D+00 0.32627696943859D-16 + 2 24 2 6 -0.73479300855675D+00 0.92398533848499D-16 + 3 24 2 6 -0.41193502972180D+00 -0.75192008675613D-17 + 1 25 2 6 -0.33966503486383D+00 0.18873999484069D-17 + 2 25 2 6 0.22540838907913D+00 0.89058875507725D-16 + 3 25 2 6 0.28979766667511D+00 -0.29434018562306D-16 + 1 26 2 6 -0.22841937824875D-01 -0.14926382789836D-17 + 2 26 2 6 0.28901435639828D+00 -0.80341629141288D-16 + 3 26 2 6 -0.37917362697485D-01 0.19531114122758D-16 + 1 27 2 6 -0.48845849095463D+00 -0.17765934753612D-16 + 2 27 2 6 -0.39849614674370D+00 -0.16673554294548D-15 + 3 27 2 6 -0.46804370187614D+00 0.39169802939774D-16 + 1 28 2 6 0.32656081583012D+00 -0.14932906439133D-17 + 2 28 2 6 0.18674912064643D+00 -0.63181446436468D-16 + 3 28 2 6 -0.32723300791451D+00 -0.12660532763938D-16 + 1 29 2 6 -0.13217865722022D+02 -0.97382893213315D-17 + 2 29 2 6 -0.25515961030837D+02 -0.27287775515707D-15 + 3 29 2 6 -0.13522654321831D+02 0.21331149766835D-16 + 1 30 2 6 -0.50890489309559D+00 0.44291810214205D-16 + 2 30 2 6 -0.40136127322327D+00 0.12187769066254D-16 + 3 30 2 6 -0.55121297710036D+00 -0.78779122122774D-17 + 1 31 2 6 -0.27943292278076D+00 -0.10418895826810D-16 + 2 31 2 6 0.37272648315905D+00 0.10640244630724D-15 + 3 31 2 6 -0.21879589379041D+00 -0.27570106187750D-16 + 1 32 2 6 0.81602640442448D+00 -0.20183938188824D-17 + 2 32 2 6 0.26553207591071D+01 0.10142943513508D-16 + 3 32 2 6 0.10224519877059D+01 0.28868535058383D-16 + 1 33 2 6 -0.13625469848010D+01 0.36771480310470D-16 + 2 33 2 6 0.31258167392203D+01 -0.66729292380081D-16 + 3 33 2 6 0.12816300215294D+01 0.88402409289883D-17 + 1 34 2 6 0.43841709977776D-01 0.33498102638344D-17 + 2 34 2 6 -0.14974612365160D-01 0.95009467911111D-16 + 3 34 2 6 0.63014662905336D-01 -0.31853545289007D-16 + 1 35 2 6 -0.12635356812615D+00 -0.18633500849882D-16 + 2 35 2 6 0.52373562508023D-02 0.39153404934694D-16 + 3 35 2 6 0.99568015791877D-01 0.32769620594958D-16 + 1 36 2 6 0.14068234245039D+01 0.41542520070078D-16 + 2 36 2 6 0.30155345649138D+01 -0.50695953424824D-16 + 3 36 2 6 -0.11353333223013D+01 -0.18858686654811D-16 + 1 37 2 6 -0.11971059792642D+01 0.33883821503109D-16 + 2 37 2 6 0.29632774936015D+01 -0.21836846237513D-15 + 3 37 2 6 -0.12001748544478D+01 -0.30032473979687D-16 + 1 38 2 6 0.14764773017077D+00 -0.54774260452254D-16 + 2 38 2 6 0.54598954673188D-01 -0.13870801591243D-16 + 3 38 2 6 -0.10356682372426D+00 -0.36669275240261D-16 + 1 39 2 6 -0.99565345105371D-01 0.82780098907378D-17 + 2 39 2 6 -0.18016648722808D-01 -0.13305570368970D-15 + 3 39 2 6 -0.80612052259492D-01 -0.23750633914057D-16 + 1 40 2 6 -0.16149580206858D-01 -0.16694700636815D-16 + 2 40 2 6 0.26462086478740D+00 -0.56324135114653D-16 + 3 40 2 6 0.27822975149857D-01 -0.39502364617205D-16 + 1 41 2 6 -0.44224998145374D+00 0.34817955188240D-16 + 2 41 2 6 -0.37168114771698D+00 -0.64109673888409D-16 + 3 41 2 6 0.45833681568794D+00 -0.15071325530872D-16 + 1 42 2 6 -0.33826748421716D+00 -0.52200790863636D-18 + 2 42 2 6 -0.86409040711022D+00 0.65997852382325D-16 + 3 42 2 6 0.59323179457402D+00 -0.74681012139203D-17 + 1 43 2 6 -0.38139056523928D+00 0.20041977521202D-16 + 2 43 2 6 0.18898539371496D+00 -0.19038956947439D-16 + 3 43 2 6 -0.34011013696974D+00 0.10855240831311D-16 + 1 44 2 6 -0.48409400010692D+00 0.11027998936457D-16 + 2 44 2 6 -0.32229451800095D+00 -0.78112381519590D-16 + 3 44 2 6 0.41751349235391D+00 0.82304750380685D-17 + 1 45 2 6 -0.22564467784923D+00 -0.14849442125955D-16 + 2 45 2 6 0.43222364377867D+00 0.15095424944301D-15 + 3 45 2 6 0.30191942014922D+00 -0.16558394110581D-16 + 1 46 2 6 0.28361053495241D+00 0.28746965909955D-16 + 2 46 2 6 0.23490982432093D+00 -0.17142390363729D-15 + 3 46 2 6 0.31592974345077D+00 0.20084415803832D-16 + 1 47 2 6 -0.14657929762345D+02 0.15926926243757D-17 + 2 47 2 6 -0.25101178599709D+02 -0.12418167130149D-15 + 3 47 2 6 0.12371596783117D+02 -0.11291395387099D-16 + 1 48 2 6 0.73906612608216D-01 -0.36746238347229D-17 + 2 48 2 6 -0.21706843664551D+00 0.56507963234526D-16 + 3 48 2 6 -0.62766396932400D-01 0.76962062267206D-17 + 1 49 2 6 -0.31941085754672D+01 0.72323814192933D-18 + 2 49 2 6 -0.31161797414798D+01 -0.16149076004486D-15 + 3 49 2 6 -0.14073185650725D+01 0.24248438430405D-16 + 1 50 2 6 -0.22701782239700D-01 0.27762584980695D-17 + 2 50 2 6 0.18707498056840D+00 0.12390976584301D-15 + 3 50 2 6 0.15857612882839D+00 -0.56327958320667D-17 + 1 51 2 6 0.32845967229456D+01 0.30606111802573D-18 + 2 51 2 6 -0.31435481711389D+01 0.29657658637691D-15 + 3 51 2 6 -0.13578084798523D+01 -0.12604191443615D-16 + 1 52 2 6 -0.36582342768199D-01 0.29164664505017D-17 + 2 52 2 6 -0.26027564892998D+00 0.15015872783747D-15 + 3 52 2 6 0.15189491883038D+00 -0.11640561283073D-17 + 1 53 2 6 0.32224719826006D+01 0.10298897951586D-17 + 2 53 2 6 -0.31198683632758D+01 0.23873852491410D-15 + 3 53 2 6 0.13623457728179D+01 -0.81080513179254D-16 + 1 54 2 6 0.90300250886181D-01 -0.55566342904513D-18 + 2 54 2 6 -0.21086672653499D+00 0.31982886401058D-15 + 3 54 2 6 0.13225854204798D+00 0.74331671778756D-16 + 1 55 2 6 -0.28846658458855D+01 0.44175482475118D-17 + 2 55 2 6 -0.28762227844451D+01 -0.12758116439575D-15 + 3 55 2 6 0.10021922192644D+01 0.84921184190306D-16 + 1 56 2 6 0.50939446161318D+00 0.12553503128050D-16 + 2 56 2 6 -0.87719096127325D+00 -0.16982172254479D-15 + 3 56 2 6 0.50016541024873D+00 -0.13641157832884D-16 + 1 57 2 6 0.31572160078402D+00 0.30168070328774D-17 + 2 57 2 6 0.24708348230195D+00 0.18162656146672D-15 + 3 57 2 6 -0.30265282018593D+00 -0.12743985353734D-16 + 1 58 2 6 -0.24696374662188D-02 0.21558174801891D-16 + 2 58 2 6 0.26864894443221D+00 -0.97566555147052D-16 + 3 58 2 6 0.12118996449943D-01 0.24893995425727D-16 + 1 59 2 6 0.52775938851813D+00 0.40140022176859D-16 + 2 59 2 6 -0.44967235785732D+00 0.46101306575457D-16 + 3 59 2 6 0.49790547501619D+00 0.16351237642621D-16 + 1 60 2 6 -0.29916503793231D+00 -0.13716310285044D-16 + 2 60 2 6 0.12123201124200D+00 -0.67390909347366D-16 + 3 60 2 6 0.16366981488135D+00 -0.78942637368900D-16 + 1 61 2 6 0.13879011340542D+02 -0.40069950478465D-16 + 2 61 2 6 -0.26062789866101D+02 -0.13072137733570D-16 + 3 61 2 6 0.14107929617707D+02 0.31800712796971D-17 + 1 62 2 6 0.53730740550124D+00 0.46040232206738D-18 + 2 62 2 6 -0.25326590528757D+00 0.11668456255238D-16 + 3 62 2 6 0.40158016642122D+00 0.27696887392484D-16 + 1 63 2 6 0.19985889980303D+00 -0.10531857866399D-16 + 2 63 2 6 0.42551965214466D+00 -0.16818727351302D-15 + 3 63 2 6 0.23274844943710D+00 0.16204684723114D-16 + 1 64 2 6 -0.26880943972697D+00 0.66908606682021D-17 + 2 64 2 6 -0.52499789938128D+00 -0.79284288131679D-16 + 3 64 2 6 -0.18288178967438D+00 0.12496452428393D-16 + 1 65 2 6 0.39928517272470D-01 -0.10828214768702D-17 + 2 65 2 6 0.73523117819534D-01 0.78721685456458D-16 + 3 65 2 6 0.65815729498103D-01 0.10427522554534D-16 + 1 1 3 6 0.13312149805397D-01 -0.19512908395596D-17 + 2 1 3 6 0.70096081780647D-02 -0.21799814429809D-18 + 3 1 3 6 -0.10442409181147D+00 0.22617696958572D-17 + 1 2 3 6 0.73118224368082D-01 -0.12096055105104D-17 + 2 2 3 6 -0.34358997781744D-01 0.15921513586390D-17 + 3 2 3 6 -0.31749180709190D+00 0.20385504865557D-17 + 1 3 3 6 -0.22811652599746D-01 0.57357732875849D-19 + 2 3 3 6 0.25872687761077D-01 0.15698371150561D-18 + 3 3 3 6 -0.84272004536127D-01 0.10238752362364D-17 + 1 4 3 6 0.12570281290532D-01 -0.10095939671221D-18 + 2 4 3 6 -0.11097588776132D-01 0.11932032076516D-18 + 3 4 3 6 0.15339790868766D+01 0.34848073525251D-18 + 1 5 3 6 -0.11599296174228D+00 -0.12890133749853D-16 + 2 5 3 6 -0.39305705776450D+00 0.12302863593831D-16 + 3 5 3 6 0.12797076026957D+00 0.17152038152117D-16 + 1 6 3 6 -0.17989040590745D+01 0.00000000000000D+00 + 2 6 3 6 0.13236166824960D+01 0.00000000000000D+00 + 3 6 3 6 0.11772786846936D+03 0.00000000000000D+00 + 1 7 3 6 0.27724378819635D-01 -0.34292710245974D-18 + 2 7 3 6 0.79348798505182D-01 0.10776108596035D-17 + 3 7 3 6 -0.12727626599595D+00 0.28741404759339D-17 + 1 8 3 6 -0.15542216925406D-01 0.19168923025744D-18 + 2 8 3 6 0.74889325537824D-02 0.12234864465022D-17 + 3 8 3 6 -0.23998152292439D+00 -0.19022603849959D-17 + 1 9 3 6 0.24072133695193D-01 0.16318985334691D-16 + 2 9 3 6 -0.46328043538558D-01 0.25495132850317D-16 + 3 9 3 6 0.26293960391364D+00 -0.30019129141926D-15 + 1 10 3 6 0.48649535332305D+00 0.36100359081020D-16 + 2 10 3 6 -0.46398375705643D+00 0.14749401893747D-16 + 3 10 3 6 -0.77484903294973D+00 0.26412851090047D-15 + 1 11 3 6 0.45485711635118D+00 -0.82936600802870D-17 + 2 11 3 6 -0.50796404958534D+00 -0.93937287698771D-17 + 3 11 3 6 -0.38471724455042D+00 -0.64381042165267D-16 + 1 12 3 6 0.35256230231845D+00 0.31127476357015D-16 + 2 12 3 6 0.25496134102405D+00 -0.13150562241483D-16 + 3 12 3 6 0.25970597428466D+00 -0.21643224221496D-15 + 1 13 3 6 0.48505645736949D+00 0.21016232890215D-16 + 2 13 3 6 -0.46398081912002D+00 -0.17318060135639D-16 + 3 13 3 6 -0.39950504984974D+00 -0.30525567527358D-16 + 1 14 3 6 -0.31337407013402D+00 0.17285126281595D-16 + 2 14 3 6 -0.30326750866985D+00 -0.97872671813843D-16 + 3 14 3 6 0.13399195151201D+00 0.17460056678128D-15 + 1 15 3 6 0.14501181111328D+02 0.19003423981030D-16 + 2 15 3 6 -0.14382862120111D+02 -0.29816184924162D-16 + 3 15 3 6 -0.26557973056397D+02 0.29773084013969D-15 + 1 16 3 6 -0.15890958213719D+00 0.23810138357992D-16 + 2 16 3 6 -0.21360777461625D-02 -0.16422807791146D-17 + 3 16 3 6 -0.23088084729193D+00 0.50898753829922D-16 + 1 17 3 6 -0.11346762956114D+00 -0.10355404759999D-16 + 2 17 3 6 -0.94812845415095D-01 0.23453724395733D-18 + 3 17 3 6 -0.22877355990030D+00 0.18443123907508D-15 + 1 18 3 6 0.54960985429206D-01 0.00000000000000D+00 + 2 18 3 6 -0.86008039398327D-01 0.10920400990685D-17 + 3 18 3 6 -0.22758195861379D+00 -0.23403817329294D-15 + 1 19 3 6 0.18188827530424D+00 0.36419937354068D-16 + 2 19 3 6 0.16359920195150D+00 0.75887882384207D-18 + 3 19 3 6 -0.14082776768839D+00 -0.22840427649152D-15 + 1 20 3 6 -0.12172360738130D+01 -0.79615587877984D-17 + 2 20 3 6 -0.33428811390469D+01 -0.45215346691055D-17 + 3 20 3 6 -0.30589887005169D+01 -0.15804394901253D-15 + 1 21 3 6 -0.13774526215980D+01 0.31097259123268D-16 + 2 21 3 6 0.32361500471502D+01 -0.22686292273670D-18 + 3 21 3 6 -0.30064990613072D+01 -0.25828063053851D-16 + 1 22 3 6 0.15565761819559D+01 -0.24024551201297D-16 + 2 22 3 6 0.30549193890543D+01 -0.83627699172927D-17 + 3 22 3 6 -0.34528163015957D+01 -0.61567037500753D-16 + 1 23 3 6 0.12743152760817D+01 -0.26996829716464D-16 + 2 23 3 6 -0.31608079795356D+01 -0.21787787965233D-17 + 3 23 3 6 -0.30528471590872D+01 -0.15950794386776D-15 + 1 24 3 6 -0.47565222349134D+00 -0.20904257004875D-17 + 2 24 3 6 -0.49763141720444D+00 -0.75192008675613D-17 + 3 24 3 6 -0.36260602341347D+00 0.71772897214818D-16 + 1 25 3 6 -0.31415557033798D+00 -0.91122405875395D-16 + 2 25 3 6 0.32390006586087D+00 -0.29434018562306D-16 + 3 25 3 6 0.15344209870446D+00 0.12818487290633D-15 + 1 26 3 6 -0.28476319214315D-02 0.40259794141582D-17 + 2 26 3 6 -0.66675456039033D-02 0.19531114122758D-16 + 3 26 3 6 0.25776364732935D+00 -0.68924189090347D-16 + 1 27 3 6 -0.45721072852454D+00 0.32885923160933D-16 + 2 27 3 6 -0.39877880383948D+00 0.39169802939774D-16 + 3 27 3 6 -0.78452529044150D+00 0.18038029071747D-16 + 1 28 3 6 -0.27016392427600D+00 -0.24988513672454D-16 + 2 28 3 6 -0.32161347997773D+00 -0.12660532763938D-16 + 3 28 3 6 0.42103726169303D+00 -0.88834126737756D-16 + 1 29 3 6 -0.13571489657003D+02 -0.58304460200261D-17 + 2 29 3 6 -0.13622835122802D+02 0.21331149766835D-16 + 3 29 3 6 -0.25398477425812D+02 0.14462536168500D-15 + 1 30 3 6 -0.49802215951677D+00 -0.26005487056182D-16 + 2 30 3 6 -0.49454898553087D+00 -0.78779122122774D-17 + 3 30 3 6 -0.45776171415235D+00 0.13022872451404D-15 + 1 31 3 6 0.29804618665440D+00 -0.32588542342182D-16 + 2 31 3 6 -0.15134694933494D+00 -0.27570106187750D-16 + 3 31 3 6 0.27170792927837D+00 -0.12603195478595D-16 + 1 32 3 6 -0.29031814937507D+01 0.81011328294352D-17 + 2 32 3 6 -0.15092623549221D+01 0.28868535058383D-16 + 3 32 3 6 -0.31495638884331D+01 -0.26661349166848D-15 + 1 33 3 6 0.30751735322857D+01 -0.12987193288708D-17 + 2 33 3 6 -0.12816300215294D+01 0.88402409289883D-17 + 3 33 3 6 -0.29297901679364D+01 -0.75448702072453D-16 + 1 34 3 6 0.94115504274792D-01 -0.14730749097679D-17 + 2 34 3 6 -0.97843402870791D-01 -0.31853545289007D-16 + 3 34 3 6 -0.21706843664551D+00 0.21270150367747D-15 + 1 35 3 6 -0.10067823622293D+00 0.37182115527619D-19 + 2 35 3 6 -0.74387259052581D-01 0.32769620594958D-16 + 3 35 3 6 -0.20851766763871D+00 -0.93558487566979D-16 + 1 36 3 6 0.33550916598139D+01 0.84246472815502D-18 + 2 36 3 6 0.12333277166283D+01 -0.18858686654811D-16 + 3 36 3 6 -0.29958810583551D+01 0.23120209302722D-15 + 1 37 3 6 -0.30971891017045D+01 0.17932589390841D-17 + 2 37 3 6 0.13483055546319D+01 -0.30032473979687D-16 + 3 37 3 6 -0.29700809879205D+01 0.24322918253317D-15 + 1 38 3 6 -0.21870410963721D-01 0.53102309133507D-19 + 2 38 3 6 0.15415690230455D+00 -0.36669275240261D-16 + 3 38 3 6 -0.21577894633812D+00 0.11435376734541D-15 + 1 39 3 6 0.82702315888197D-01 0.24803798799627D-17 + 2 39 3 6 0.11218963836733D+00 -0.23750633914057D-16 + 3 39 3 6 -0.22618681439698D+00 -0.35580949085718D-15 + 1 40 3 6 0.44235881324089D-02 -0.28757644965637D-16 + 2 40 3 6 0.30515804448363D-01 -0.39502364617205D-16 + 3 40 3 6 0.26805640929540D+00 -0.29272826364072D-15 + 1 41 3 6 0.45552372354200D+00 0.44662330011167D-16 + 2 41 3 6 0.46766185471483D+00 -0.15071325530872D-16 + 3 41 3 6 -0.78338733454981D+00 0.12400177226426D-15 + 1 42 3 6 0.46034884881433D+00 -0.18063486178880D-16 + 2 42 3 6 0.27618358262648D+00 -0.74681012139203D-17 + 3 42 3 6 -0.39910233886037D+00 -0.79187483693135D-16 + 1 43 3 6 0.29550212064914D+00 0.62044299416521D-17 + 2 43 3 6 -0.25867275679240D+00 0.10855240831311D-16 + 3 43 3 6 0.93208777468688D-01 0.59829879769674D-16 + 1 44 3 6 0.49830994239345D+00 -0.56101250333609D-16 + 2 44 3 6 0.42944402667853D+00 0.82304750380685D-17 + 3 44 3 6 -0.36088245076100D+00 -0.39642000850425D-15 + 1 45 3 6 -0.26505761927302D+00 0.35464791737579D-17 + 2 45 3 6 0.27340328278778D+00 -0.16558394110581D-16 + 3 45 3 6 0.17637186941306D+00 -0.50643591551759D-16 + 1 46 3 6 0.13762305616936D+00 -0.26277184658647D-16 + 2 46 3 6 0.40212139172871D+00 0.20084415803832D-16 + 3 46 3 6 0.55573036713752D+00 -0.11385996696889D-15 + 1 47 3 6 0.14256821798390D+02 0.17487560451294D-16 + 2 47 3 6 0.12776995690579D+02 -0.11291395387099D-16 + 3 47 3 6 -0.24532491806041D+02 0.39650641456754D-15 + 1 48 3 6 0.14352455831500D+00 -0.13911841117172D-16 + 2 48 3 6 0.97785945508697D-01 0.76962062267206D-17 + 3 48 3 6 -0.14974612365160D-01 -0.18181519523811D-16 + 1 49 3 6 0.11880694090847D+01 -0.40730494336349D-17 + 2 49 3 6 0.13006788073403D+01 0.24248438430405D-16 + 3 49 3 6 0.30525156815770D+01 -0.72918615084948D-17 + 1 50 3 6 -0.42131995820270D-01 0.98014606144506D-16 + 2 50 3 6 0.51652952950282D+00 -0.56327958320667D-17 + 3 50 3 6 0.33819761922102D+00 -0.32493490654900D-16 + 1 51 3 6 -0.12921767328817D+01 -0.27556480942444D-16 + 2 51 3 6 0.13578084798523D+01 -0.12604191443615D-16 + 3 51 3 6 0.31589468614603D+01 0.33353720662529D-16 + 1 52 3 6 0.14350644613521D+00 -0.36640297026016D-16 + 2 52 3 6 -0.16403408343850D+00 -0.11640561283073D-17 + 3 52 3 6 0.67229337897273D-01 0.12017832101017D-18 + 1 53 3 6 0.12789009470737D+01 -0.79323093897739D-17 + 2 53 3 6 -0.13535554609168D+01 -0.81080513179254D-16 + 3 53 3 6 0.30490719621776D+01 -0.32954906650363D-16 + 1 54 3 6 -0.11471479398950D+00 -0.22525909732289D-16 + 2 54 3 6 -0.86755436131938D-01 0.74331671778756D-16 + 3 54 3 6 -0.37214517100027D-02 0.25558427030637D-16 + 1 55 3 6 -0.17402778573232D+01 -0.22623533994481D-16 + 2 55 3 6 -0.13163110477181D+01 0.84921184190306D-16 + 3 55 3 6 0.28933820724064D+01 0.10509967257460D-15 + 1 56 3 6 -0.43441998613115D+00 0.29130762265202D-16 + 2 56 3 6 0.33525327094947D+00 -0.13641157832884D-16 + 3 56 3 6 -0.13525500815597D+00 -0.31251336480371D-16 + 1 57 3 6 -0.24689778800013D+00 -0.54894793964882D-17 + 2 57 3 6 -0.30091129439677D+00 -0.12743985353734D-16 + 3 57 3 6 0.18184668037693D+00 -0.30220915864731D-18 + 1 58 3 6 -0.15681017887169D+00 0.28198695187595D-17 + 2 58 3 6 0.98401233411654D-01 0.24893995425727D-16 + 3 58 3 6 0.16229330172929D+00 0.14007646346792D-15 + 1 59 3 6 -0.46486050728527D+00 0.36528114523960D-17 + 2 59 3 6 0.43513197182491D+00 0.16351237642621D-16 + 3 59 3 6 -0.84989106608483D+00 -0.16194504345999D-15 + 1 60 3 6 -0.33872008325704D+00 0.96185223199081D-17 + 2 60 3 6 0.25348016079986D+00 -0.78942637368900D-16 + 3 60 3 6 0.44715972523501D+00 -0.35088264154254D-16 + 1 61 3 6 -0.13677385535158D+02 0.21708681183140D-16 + 2 61 3 6 0.13994635157626D+02 0.31800712796971D-17 + 3 61 3 6 -0.25999938377806D+02 0.88876352029256D-15 + 1 62 3 6 -0.46840841101348D+00 -0.12840022699100D-15 + 2 62 3 6 0.29558449714713D+00 0.27696887392484D-16 + 3 62 3 6 -0.21332075910505D+00 0.52072419361608D-16 + 1 63 3 6 0.31821622388506D+00 -0.37313848163522D-17 + 2 63 3 6 0.28016256143627D+00 0.16204684723114D-16 + 3 63 3 6 0.21967419079835D+00 0.98147245480483D-16 + 1 64 3 6 0.36513389322848D+00 0.21385059742021D-16 + 2 64 3 6 0.56471974226054D+00 0.12496452428393D-16 + 3 64 3 6 -0.39045088703818D+00 -0.19595114689124D-15 + 1 65 3 6 0.14080624751409D+00 -0.11443427448200D-16 + 2 65 3 6 -0.28581775711046D+00 0.10427522554534D-16 + 3 65 3 6 0.18749234272780D+00 -0.19211496435753D-15 + 1 1 1 7 -0.10369009279272D+00 -0.51142338918633D-17 + 2 1 1 7 0.36928784194138D-01 -0.26754007861549D-18 + 3 1 1 7 0.25660247315378D-01 0.53969810257658D-17 + 1 2 1 7 -0.16720242091942D+00 -0.17828138284765D-17 + 2 2 1 7 0.50822928074397D-01 0.13047747066240D-17 + 3 2 1 7 0.53321962162253D-01 -0.14389199580950D-18 + 1 3 1 7 -0.35562475976301D+00 -0.74921853965621D-17 + 2 3 1 7 -0.46994349775083D-01 -0.49564847775645D-18 + 3 3 1 7 -0.24461857082302D-02 0.94732624432903D-18 + 1 4 1 7 -0.14651597359657D+00 0.19737855349336D-17 + 2 4 1 7 -0.78310784482452D-02 -0.25803596911942D-18 + 3 4 1 7 -0.41467919487295D-01 0.35930102075491D-18 + 1 5 1 7 -0.83718992029356D-01 -0.22495852775539D-16 + 2 5 1 7 0.39005282841352D+00 -0.10091863180272D-17 + 3 5 1 7 -0.32925776099028D+00 -0.26094709459611D-17 + 1 6 1 7 0.14728015480932D+01 -0.42685026778547D-18 + 2 6 1 7 0.63626998041331D-01 0.39952369704606D-18 + 3 6 1 7 0.27724378819635D-01 0.34292710245974D-18 + 1 7 1 7 0.12009846314917D+03 0.00000000000000D+00 + 2 7 1 7 -0.17989040590743D+01 0.00000000000000D+00 + 3 7 1 7 0.59488669410657D-01 0.00000000000000D+00 + 1 8 1 7 -0.23565771303352D+00 -0.15055782006468D-17 + 2 8 1 7 -0.25941992352619D-01 -0.18020716169394D-18 + 3 8 1 7 0.76325334859225D-02 0.32491590289997D-19 + 1 9 1 7 0.48013010771486D+00 -0.32566389197972D-17 + 2 9 1 7 0.32762621479200D+00 -0.92709653031821D-17 + 3 9 1 7 0.26610454512720D+00 -0.10184961108432D-16 + 1 10 1 7 -0.34863044532199D+00 0.39290986820487D-16 + 2 10 1 7 0.47661236736015D+00 -0.39312694632430D-17 + 3 10 1 7 0.43777978912026D+00 0.17716452471228D-16 + 1 11 1 7 -0.37485941932147D+00 -0.20477353388750D-16 + 2 11 1 7 0.49376388172361D+00 -0.88735944869915D-17 + 3 11 1 7 0.41799765230709D+00 -0.88347899670935D-17 + 1 12 1 7 0.24400776122668D+00 -0.31441650353268D-16 + 2 12 1 7 -0.13187086874691D-02 -0.19005617064471D-16 + 3 12 1 7 -0.37230511438905D-01 0.39901987029804D-16 + 1 13 1 7 -0.26419464735399D+02 0.67409373112274D-16 + 2 13 1 7 0.14605661763507D+02 -0.20502623924980D-17 + 3 13 1 7 0.14029655666361D+02 -0.19984827844079D-16 + 1 14 1 7 0.20209056579021D+00 0.17065552816068D-15 + 2 14 1 7 -0.34325330614271D+00 0.16031574207310D-16 + 3 14 1 7 0.33052259598515D+00 -0.88144279504976D-17 + 1 15 1 7 -0.77719381706603D+00 0.15541751463795D-15 + 2 15 1 7 0.42176664241324D+00 -0.18144234401453D-16 + 3 15 1 7 0.48063399579718D+00 -0.15021852982859D-16 + 1 16 1 7 0.28208267547110D-01 -0.47589207628137D-16 + 2 16 1 7 -0.43402375418694D-01 0.64916992117114D-17 + 3 16 1 7 -0.46389530140498D-01 0.23560062099397D-16 + 1 17 1 7 -0.21972711183059D-01 -0.32818775312994D-16 + 2 17 1 7 0.98113074926450D-01 0.19802628717325D-16 + 3 17 1 7 -0.11243027226998D+00 -0.21093244145714D-16 + 1 18 1 7 -0.19885450472417D-01 0.64899704426422D-17 + 2 18 1 7 -0.12899902445748D+00 -0.59933401758668D-17 + 3 18 1 7 0.13569498302180D+00 0.33129573022736D-16 + 1 19 1 7 -0.40115266392881D-01 0.23209959760902D-15 + 2 19 1 7 0.34258093331190D-01 -0.14473622617702D-16 + 3 19 1 7 0.42487475494270D-01 -0.24717491132991D-17 + 1 20 1 7 0.30841850336173D+01 -0.25344405409726D-16 + 2 20 1 7 -0.12743152760817D+01 0.12644092349004D-16 + 3 20 1 7 -0.13256739918059D+01 -0.75522850715321D-17 + 1 21 1 7 0.29685174375502D+01 0.14403656415316D-15 + 2 21 1 7 0.14116852895950D+01 0.24691634143442D-16 + 3 21 1 7 -0.12951198397229D+01 -0.32172375824103D-16 + 1 22 1 7 0.28295565651853D+01 -0.16706469086918D-16 + 2 22 1 7 -0.18739913392291D+01 -0.17334783749093D-16 + 3 22 1 7 0.13275629014228D+01 -0.13307084319831D-16 + 1 23 1 7 0.32152539957642D+01 -0.81961081606034D-16 + 2 23 1 7 0.12454641439855D+01 0.23704469847008D-17 + 3 23 1 7 0.12172360738130D+01 -0.26245452450362D-16 + 1 24 1 7 -0.39730649977229D+00 -0.13298846062334D-15 + 2 24 1 7 -0.46150686927486D+00 -0.40757793250183D-17 + 3 24 1 7 -0.50064688040607D+00 -0.23003429212126D-16 + 1 25 1 7 0.28559695976660D+00 -0.23628619809729D-15 + 2 25 1 7 -0.37134587379390D-01 -0.15401543484637D-17 + 3 25 1 7 0.31288499790056D-02 -0.97646829999964D-17 + 1 26 1 7 0.48538142032129D+00 0.23170310020488D-15 + 2 26 1 7 -0.33034754534779D+00 0.38945898753082D-16 + 3 26 1 7 -0.26829885043048D+00 -0.21204507833817D-16 + 1 27 1 7 -0.39161458132898D+00 -0.81982603047297D-16 + 2 27 1 7 -0.39173006312076D+00 -0.13535614324804D-16 + 3 27 1 7 -0.47745269960845D+00 -0.85305455936010D-17 + 1 28 1 7 0.25002441018996D+00 0.15605359477000D-15 + 2 28 1 7 -0.35525035041940D+00 0.97507659886740D-17 + 3 28 1 7 0.29589742680319D+00 -0.26114726746888D-16 + 1 29 1 7 -0.79080780410654D+00 0.82547170856928D-17 + 2 29 1 7 -0.53313172251161D+00 -0.56730227967697D-16 + 3 29 1 7 -0.53886715642619D+00 -0.81477496921564D-17 + 1 30 1 7 -0.25328120975725D+02 -0.24277066223940D-15 + 2 30 1 7 -0.13400572938525D+02 0.21837214425678D-17 + 3 30 1 7 -0.13149198839102D+02 0.21565656269683D-16 + 1 31 1 7 0.16030304388451D+00 -0.27519595884985D-16 + 2 31 1 7 0.30651034623012D+00 0.12901652076840D-16 + 3 31 1 7 -0.20850740465839D+00 -0.25284261114593D-16 + 1 32 1 7 -0.21143668169989D+00 -0.91591899809299D-17 + 2 32 1 7 0.46714702670666D+00 -0.93623247820931D-16 + 3 32 1 7 0.37172800955781D+00 -0.26135038742979D-17 + 1 33 1 7 -0.24757479388526D+00 0.12909355573201D-15 + 2 33 1 7 -0.43841709977775D-01 -0.38634813600257D-16 + 3 33 1 7 0.94115504274793D-01 0.64101957759358D-18 + 1 34 1 7 -0.30238806664967D+01 -0.18420417594254D-15 + 2 34 1 7 0.12921767328817D+01 0.11945058168011D-16 + 3 34 1 7 0.32845967229457D+01 -0.91740715694116D-18 + 1 35 1 7 -0.31052957392000D+01 0.23924327955219D-15 + 2 35 1 7 -0.11850558323564D+01 -0.24294608499296D-16 + 3 35 1 7 -0.32289744110740D+01 0.76798346157225D-17 + 1 36 1 7 -0.23467698998717D+00 0.42059217308581D-16 + 2 36 1 7 0.12180751841965D+00 -0.12988661294736D-16 + 3 36 1 7 0.96415435917294D-01 0.11510228955378D-17 + 1 37 1 7 -0.20352226633814D+00 0.25931991862864D-15 + 2 37 1 7 -0.10774984940752D-01 -0.27707467357978D-16 + 3 37 1 7 -0.12521758778296D+00 0.54636004048646D-18 + 1 38 1 7 -0.29233488661134D+01 -0.14316932490556D-15 + 2 38 1 7 0.12748485259548D+01 0.33428977393353D-16 + 3 38 1 7 -0.28728526686265D+01 0.16185289119086D-18 + 1 39 1 7 -0.30470853174333D+01 -0.92403355985534D-16 + 2 39 1 7 -0.13286275214552D+01 0.13874124079035D-16 + 3 39 1 7 0.31172863636170D+01 0.18739584571035D-17 + 1 40 1 7 0.47011509603786D+00 -0.43989812147778D-16 + 2 40 1 7 -0.24424858336585D+00 -0.36326423832488D-16 + 3 40 1 7 0.32358218209424D+00 -0.44160200670663D-16 + 1 41 1 7 -0.44551561571322D+00 0.10337610203413D-15 + 2 41 1 7 -0.48848716900826D+00 0.25800025526993D-16 + 3 41 1 7 0.52437964590650D+00 -0.10143282103304D-16 + 1 42 1 7 -0.49336914517858D+00 -0.33059183908585D-17 + 2 42 1 7 -0.64346728371823D-01 0.10911224788215D-16 + 3 42 1 7 0.25450899472504D+00 -0.28456049669201D-16 + 1 43 1 7 0.20033384962360D+00 0.49589580603204D-17 + 2 43 1 7 -0.17379472240560D+00 0.26652256415827D-16 + 3 43 1 7 0.10281033293596D+00 -0.36817187483169D-17 + 1 44 1 7 -0.25336542636213D+02 0.48070409412781D-16 + 2 44 1 7 -0.13733332541572D+02 0.18282353923219D-16 + 3 44 1 7 0.13816776238180D+02 -0.14509743507987D-17 + 1 45 1 7 0.17633524868552D+00 0.29366092539445D-15 + 2 45 1 7 0.27566745941855D+00 -0.26392044010679D-17 + 3 45 1 7 0.29923597616247D+00 -0.15981946903655D-16 + 1 46 1 7 0.27912912720102D+00 -0.56073471646020D-16 + 2 46 1 7 -0.35569019419801D+00 0.10893092648632D-17 + 3 46 1 7 -0.42098272698905D+00 0.13667921793297D-16 + 1 47 1 7 -0.78153175645181D+00 0.12825648333104D-15 + 2 47 1 7 -0.37756050303363D+00 0.18701326883482D-18 + 3 47 1 7 0.31197724830339D+00 -0.11183120087910D-16 + 1 48 1 7 -0.31818805466033D+01 -0.15503260779721D-16 + 2 48 1 7 0.30751735322857D+01 0.31100680316009D-17 + 3 48 1 7 0.13625469848010D+01 0.00000000000000D+00 + 1 49 1 7 -0.22820373706450D+00 -0.17694233208340D-15 + 2 49 1 7 -0.78657874930479D-01 0.14428117758736D-19 + 3 49 1 7 0.11060314530730D+00 -0.35873316122867D-16 + 1 50 1 7 -0.31805611728353D+01 -0.28414873257867D-15 + 2 50 1 7 -0.32919452336552D+01 0.74884494645691D-17 + 3 50 1 7 -0.17990004975472D+01 -0.78032377344758D-16 + 1 51 1 7 -0.24776983014886D+00 -0.11098744364812D-15 + 2 51 1 7 0.73906612608213D-01 -0.28619178656792D-18 + 3 51 1 7 -0.14352455831500D+00 -0.20732828392396D-16 + 1 52 1 7 -0.29949756481198D+01 0.25038701885315D-15 + 2 52 1 7 -0.30926262122504D+01 -0.50440738867242D-19 + 3 52 1 7 0.13678659944496D+01 0.28911685577726D-16 + 1 53 1 7 -0.23862176796399D+00 -0.12379794594489D-15 + 2 53 1 7 0.11390436163443D+00 -0.41368145600427D-18 + 3 53 1 7 0.86016099995365D-01 0.98490125757813D-16 + 1 54 1 7 -0.30031823137819D+01 -0.51073034987855D-16 + 2 54 1 7 0.30962339742665D+01 0.56996159813526D-18 + 3 54 1 7 -0.11823768965084D+01 -0.43922955097363D-16 + 1 55 1 7 -0.20285354699657D+00 0.29892421600881D-15 + 2 55 1 7 -0.89658032623900D-01 0.25673280669378D-18 + 3 55 1 7 -0.93528066163432D-01 0.10411100225334D-15 + 1 56 1 7 -0.17175783798410D+00 -0.80637884671864D-16 + 2 56 1 7 0.52011348209476D+00 0.18111327353950D-16 + 3 56 1 7 -0.53061614381882D+00 0.23567733437265D-16 + 1 57 1 7 0.25748660815604D+00 0.44179317228048D-16 + 2 57 1 7 0.22643509870744D-01 0.12972363438215D-16 + 3 57 1 7 -0.13334431757599D-01 0.24590042640425D-17 + 1 58 1 7 0.57599511951002D+00 -0.16858197582462D-15 + 2 58 1 7 0.26938321812239D+00 -0.22301528469843D-16 + 3 58 1 7 -0.35996202666303D+00 -0.16323182514568D-16 + 1 59 1 7 -0.31512814179122D+00 0.87087257258324D-16 + 2 59 1 7 0.48369823738221D+00 0.11790728541400D-16 + 3 59 1 7 -0.41510684461685D+00 0.10640020519847D-16 + 1 60 1 7 0.19042103809357D+00 0.24923311616294D-15 + 2 60 1 7 0.30050836975060D+00 0.56029462230011D-16 + 3 60 1 7 0.42205070125686D+00 0.14633839259875D-16 + 1 61 1 7 -0.75060432465814D+00 0.12297930901191D-15 + 2 61 1 7 0.43144431608079D+00 -0.14639916790397D-16 + 3 61 1 7 -0.41642775373069D+00 0.22318638648446D-17 + 1 62 1 7 -0.28281032658509D+02 -0.13368647152833D-15 + 2 62 1 7 0.13867197110953D+02 -0.30377656371326D-16 + 3 62 1 7 -0.14992323709904D+02 -0.56586461956403D-17 + 1 63 1 7 0.15328911515378D+00 -0.21048117564674D-15 + 2 63 1 7 -0.31389755507366D+00 0.20931079623316D-16 + 3 63 1 7 -0.29601155427098D+00 0.10087219204109D-17 + 1 64 1 7 0.33464851426695D+00 -0.13332747865509D-16 + 2 64 1 7 -0.16656805207941D-01 -0.20665115228032D-16 + 3 64 1 7 0.30892971086146D+00 -0.39494386165195D-17 + 1 65 1 7 0.14545606074374D+00 0.73166892380364D-16 + 2 65 1 7 0.32099583302758D+00 0.66726563447499D-17 + 3 65 1 7 -0.18222667758373D+00 -0.65178005300350D-17 + 1 1 2 7 0.13312149805395D-01 -0.26754007861549D-18 + 2 1 2 7 -0.10442409181147D+00 -0.19440432518176D-17 + 3 1 2 7 0.70096081780646D-02 -0.16671848087162D-17 + 1 2 2 7 -0.22811652599746D-01 0.13047747066240D-17 + 2 2 2 7 -0.84272004536128D-01 0.15266404559078D-17 + 3 2 2 7 0.25872687761076D-01 -0.11845503032392D-18 + 1 3 2 7 0.73118224368082D-01 -0.49564847775645D-18 + 2 3 2 7 -0.31749180709190D+00 0.32696372849164D-17 + 3 3 2 7 -0.34358997781744D-01 0.14138701148191D-17 + 1 4 2 7 0.12570281290532D-01 -0.25803596911942D-18 + 2 4 2 7 0.15339790868766D+01 -0.24280785580988D-17 + 3 4 2 7 -0.11097588776132D-01 0.87371219293333D-19 + 1 5 2 7 -0.11599296174228D+00 -0.10091863180272D-17 + 2 5 2 7 0.12797076026956D+00 0.15584749581098D-16 + 3 5 2 7 -0.39305705776451D+00 -0.67196995822698D-17 + 1 6 2 7 0.27724378819635D-01 0.39952369704606D-18 + 2 6 2 7 -0.12727626599595D+00 0.56433515162939D-18 + 3 6 2 7 0.79348798505182D-01 -0.10776108596035D-17 + 1 7 2 7 -0.17989040590743D+01 0.00000000000000D+00 + 2 7 2 7 0.11772786846936D+03 0.00000000000000D+00 + 3 7 2 7 0.13236166824960D+01 0.00000000000000D+00 + 1 8 2 7 -0.15542216925407D-01 -0.18020716169394D-18 + 2 8 2 7 -0.23998152292440D+00 0.30721598713960D-17 + 3 8 2 7 0.74889325537827D-02 -0.20969735980610D-18 + 1 9 2 7 0.35256230231846D+00 -0.92709653031821D-17 + 2 9 2 7 0.25970597428466D+00 -0.66651967256610D-16 + 3 9 2 7 0.25496134102405D+00 0.13404599624566D-16 + 1 10 2 7 0.48649535332304D+00 -0.39312694632430D-17 + 2 10 2 7 -0.77484903294973D+00 0.74866315701707D-16 + 3 10 2 7 -0.46398375705643D+00 -0.38679768667420D-16 + 1 11 2 7 0.45485711635119D+00 -0.88735944869915D-17 + 2 11 2 7 -0.38471724455042D+00 0.24012865635110D-16 + 3 11 2 7 -0.50796404958534D+00 -0.65022346635958D-17 + 1 12 2 7 0.24072133695192D-01 -0.19005617064471D-16 + 2 12 2 7 0.26293960391364D+00 -0.79452582226869D-16 + 3 12 2 7 -0.46328043538557D-01 0.29238711554089D-16 + 1 13 2 7 0.14501181111328D+02 -0.20502623924980D-17 + 2 13 2 7 -0.26557973056397D+02 -0.13779494288985D-15 + 3 13 2 7 -0.14382862120111D+02 0.96007139389849D-17 + 1 14 2 7 -0.31337407013403D+00 0.16031574207310D-16 + 2 14 2 7 0.13399195151201D+00 0.91970386393807D-16 + 3 14 2 7 -0.30326750866985D+00 0.19572259661718D-16 + 1 15 2 7 0.48505645736948D+00 -0.18144234401453D-16 + 2 15 2 7 -0.39950504984975D+00 0.83035213054558D-17 + 3 15 2 7 -0.46398081912002D+00 0.15767825172389D-16 + 1 16 2 7 0.18188827530424D+00 0.64916992117114D-17 + 2 16 2 7 -0.14082776768839D+00 0.12486136767056D-15 + 3 16 2 7 0.16359920195150D+00 0.43165252367237D-18 + 1 17 2 7 -0.11346762956114D+00 0.19802628717325D-16 + 2 17 2 7 -0.22877355990031D+00 -0.16079422656883D-15 + 3 17 2 7 -0.94812845415093D-01 0.81238273408146D-19 + 1 18 2 7 0.54960985429206D-01 -0.59933401758668D-17 + 2 18 2 7 -0.22758195861379D+00 0.62167584915123D-16 + 3 18 2 7 -0.86008039398326D-01 0.19438290283858D-17 + 1 19 2 7 -0.15890958213719D+00 -0.14473622617702D-16 + 2 19 2 7 -0.23088084729193D+00 -0.28166553391631D-15 + 3 19 2 7 -0.21360777461611D-02 0.54657486313374D-17 + 1 20 2 7 0.12743152760817D+01 0.12644092349004D-16 + 2 20 2 7 -0.30528471590872D+01 0.31945981137235D-15 + 3 20 2 7 -0.31608079795357D+01 -0.75382141226207D-18 + 1 21 2 7 -0.13774526215980D+01 0.24691634143442D-16 + 2 21 2 7 -0.30064990613072D+01 -0.19387432409754D-16 + 3 21 2 7 0.32361500471502D+01 -0.72997576862634D-18 + 1 22 2 7 0.15565761819559D+01 -0.17334783749093D-16 + 2 22 2 7 -0.34528163015957D+01 -0.98982461100288D-16 + 3 22 2 7 0.30549193890543D+01 -0.51115284164696D-17 + 1 23 2 7 -0.12172360738130D+01 0.23704469847008D-17 + 2 23 2 7 -0.30589887005169D+01 -0.19165222084517D-15 + 3 23 2 7 -0.33428811390470D+01 0.18609278020621D-18 + 1 24 2 7 -0.47565222349129D+00 -0.40757793250183D-17 + 2 24 2 7 -0.36260602341347D+00 0.22636366956025D-15 + 3 24 2 7 -0.49763141720444D+00 0.55564318787061D-17 + 1 25 2 7 -0.28476319214319D-02 -0.15401543484637D-17 + 2 25 2 7 0.25776364732935D+00 -0.13143779704904D-15 + 3 25 2 7 -0.66675456039033D-02 0.96559868954618D-16 + 1 26 2 7 -0.31415557033785D+00 0.38945898753082D-16 + 2 26 2 7 0.15344209870446D+00 0.24363166638275D-15 + 3 26 2 7 0.32390006586087D+00 0.20442432871047D-16 + 1 27 2 7 -0.45721072852454D+00 -0.13535614324804D-16 + 2 27 2 7 -0.78452529044150D+00 -0.20887209764699D-15 + 3 27 2 7 -0.39877880383947D+00 -0.40399774487585D-16 + 1 28 2 7 -0.27016392427597D+00 0.97507659886740D-17 + 2 28 2 7 0.42103726169302D+00 -0.40381427595192D-15 + 3 28 2 7 -0.32161347997774D+00 0.86976250666006D-17 + 1 29 2 7 -0.49802215951677D+00 -0.56730227967697D-16 + 2 29 2 7 -0.45776171415236D+00 0.16064580207198D-15 + 3 29 2 7 -0.49454898553087D+00 0.15402396369093D-15 + 1 30 2 7 -0.13571489657005D+02 0.21837214425678D-17 + 2 30 2 7 -0.25398477425812D+02 -0.64531344667019D-16 + 3 30 2 7 -0.13622835122802D+02 0.22529597626993D-16 + 1 31 2 7 0.29804618665443D+00 0.12901652076840D-16 + 2 31 2 7 0.27170792927838D+00 -0.44145157396696D-16 + 3 31 2 7 -0.15134694933494D+00 -0.65030679977495D-16 + 1 32 2 7 -0.42131995820271D-01 -0.93623247820931D-16 + 2 32 2 7 0.33819761922103D+00 -0.40951039085053D-16 + 3 32 2 7 0.51652952950282D+00 -0.17757942325154D-16 + 1 33 2 7 0.14352455831500D+00 -0.38634813600257D-16 + 2 33 2 7 -0.14974612365160D-01 -0.10098263186886D-15 + 3 33 2 7 0.97843402870790D-01 -0.18258292223444D-16 + 1 34 2 7 -0.12921767328817D+01 0.11945058168011D-16 + 2 34 2 7 0.31589468614603D+01 -0.16777815892176D-15 + 3 34 2 7 0.13578084798523D+01 -0.38974523760681D-17 + 1 35 2 7 0.11880694090846D+01 -0.24294608499296D-16 + 2 35 2 7 0.30525156815770D+01 0.61118983516113D-16 + 3 35 2 7 0.13006788073403D+01 0.67150834443362D-17 + 1 36 2 7 -0.11471479398950D+00 -0.12988661294736D-16 + 2 36 2 7 -0.37214517100062D-02 0.12981622296294D-15 + 3 36 2 7 -0.86755436131939D-01 0.30701558993124D-16 + 1 37 2 7 0.14350644613521D+00 -0.27707467357978D-16 + 2 37 2 7 0.67229337897271D-01 0.89428735437892D-16 + 3 37 2 7 -0.16403408343850D+00 0.23863547458210D-17 + 1 38 2 7 -0.17402778573232D+01 0.33428977393353D-16 + 2 38 2 7 0.28933820724064D+01 0.58499424881784D-16 + 3 38 2 7 -0.13163110477181D+01 0.23600313867343D-16 + 1 39 2 7 0.12789009470737D+01 0.13874124079035D-16 + 2 39 2 7 0.30490719621776D+01 -0.20710736392465D-16 + 3 39 2 7 -0.13535554609168D+01 0.22577503098594D-16 + 1 40 2 7 -0.24689778800013D+00 -0.36326423832488D-16 + 2 40 2 7 0.18184668037693D+00 -0.14707609227395D-16 + 3 40 2 7 -0.30091129439677D+00 -0.47844784248424D-16 + 1 41 2 7 -0.46486050728527D+00 0.25800025526993D-16 + 2 41 2 7 -0.84989106608483D+00 0.65309347625669D-16 + 3 41 2 7 0.43513197182491D+00 -0.15570426584155D-16 + 1 42 2 7 -0.43441998613115D+00 0.10911224788215D-16 + 2 42 2 7 -0.13525500815597D+00 -0.37210852052508D-16 + 3 42 2 7 0.33525327094947D+00 0.53318699193885D-17 + 1 43 2 7 -0.15681017887169D+00 0.26652256415827D-16 + 2 43 2 7 0.16229330172929D+00 -0.16975184506027D-15 + 3 43 2 7 0.98401233411654D-01 0.20698982818585D-17 + 1 44 2 7 -0.13677385535158D+02 0.18282353923219D-16 + 2 44 2 7 -0.25999938377806D+02 -0.12606819579512D-15 + 3 44 2 7 0.13994635157626D+02 -0.23805228229780D-16 + 1 45 2 7 0.31821622388506D+00 -0.26392044010679D-17 + 2 45 2 7 0.21967419079835D+00 -0.59807363299975D-16 + 3 45 2 7 0.28016256143628D+00 -0.94625327209556D-17 + 1 46 2 7 -0.33872008325704D+00 0.10893092648632D-17 + 2 46 2 7 0.44715972523503D+00 0.14042872218137D-15 + 3 46 2 7 0.25348016079986D+00 0.25400992209243D-16 + 1 47 2 7 -0.46840841101349D+00 0.18701326883482D-18 + 2 47 2 7 -0.21332075910505D+00 0.21914666427207D-16 + 3 47 2 7 0.29558449714713D+00 0.57312208082543D-17 + 1 48 2 7 0.30751735322857D+01 0.31100680316009D-17 + 2 48 2 7 -0.29297901679364D+01 0.16297634277794D-15 + 3 48 2 7 -0.12816300215294D+01 0.24513718743886D-16 + 1 49 2 7 -0.10067823622293D+00 0.14428117758736D-19 + 2 49 2 7 -0.20851766763871D+00 -0.30848145033422D-15 + 3 49 2 7 -0.74387259052580D-01 0.17042484038891D-16 + 1 50 2 7 -0.29031814937507D+01 0.74884494645691D-17 + 2 50 2 7 -0.31495638884331D+01 0.10476788724749D-15 + 3 50 2 7 -0.15092623549221D+01 0.11683227889522D-16 + 1 51 2 7 0.94115504274793D-01 -0.28619178656792D-18 + 2 51 2 7 -0.21706843664550D+00 0.17370617019389D-15 + 3 51 2 7 -0.97785945508694D-01 0.12851254684836D-16 + 1 52 2 7 -0.30971891017045D+01 -0.50440738867242D-19 + 2 52 2 7 -0.29700809879205D+01 -0.97674942603436D-16 + 3 52 2 7 0.13483055546319D+01 0.13041366580143D-16 + 1 53 2 7 0.82702315888195D-01 -0.41368145600427D-18 + 2 53 2 7 -0.22618681439698D+00 -0.21631756727818D-15 + 3 53 2 7 0.11218963836733D+00 0.97646568824012D-16 + 1 54 2 7 0.33550916598139D+01 0.56996159813526D-18 + 2 54 2 7 -0.29958810583551D+01 0.23763981369142D-17 + 3 54 2 7 0.12333277166283D+01 0.30172454990006D-16 + 1 55 2 7 -0.21870410963722D-01 0.25673280669378D-18 + 2 55 2 7 -0.21577894633812D+00 -0.17059581300644D-15 + 3 55 2 7 0.15415690230455D+00 -0.22158856762928D-16 + 1 56 2 7 0.46034884881433D+00 0.18111327353950D-16 + 2 56 2 7 -0.39910233886037D+00 -0.83348439178571D-16 + 3 56 2 7 0.27618358262648D+00 -0.31502310010125D-16 + 1 57 2 7 0.44235881324086D-02 0.12972363438215D-16 + 2 57 2 7 0.26805640929540D+00 0.15962089410600D-15 + 3 57 2 7 0.30515804448365D-01 0.28525779711080D-16 + 1 58 2 7 0.29550212064914D+00 -0.22301528469843D-16 + 2 58 2 7 0.93208777468689D-01 0.15650204368141D-15 + 3 58 2 7 -0.25867275679240D+00 -0.13817636605902D-16 + 1 59 2 7 0.45552372354200D+00 0.11790728541400D-16 + 2 59 2 7 -0.78338733454981D+00 -0.64858810651130D-16 + 3 59 2 7 0.46766185471483D+00 -0.19367772448273D-16 + 1 60 2 7 0.13762305616936D+00 0.56029462230011D-16 + 2 60 2 7 0.55573036713751D+00 -0.60946147538479D-17 + 3 60 2 7 0.40212139172872D+00 0.28696429613566D-16 + 1 61 2 7 0.49830994239345D+00 -0.14639916790397D-16 + 2 61 2 7 -0.36088245076100D+00 0.73369635095612D-15 + 3 61 2 7 0.42944402667853D+00 0.14328369320659D-17 + 1 62 2 7 0.14256821798390D+02 -0.30377656371326D-16 + 2 62 2 7 -0.24532491806041D+02 -0.48473003781442D-16 + 3 62 2 7 0.12776995690579D+02 -0.19579956786041D-16 + 1 63 2 7 -0.26505761927302D+00 0.20931079623316D-16 + 2 63 2 7 0.17637186941306D+00 0.56871211468410D-16 + 3 63 2 7 0.27340328278778D+00 0.26750983032275D-16 + 1 64 2 7 0.36513389322850D+00 -0.20665115228032D-16 + 2 64 2 7 -0.39045088703820D+00 -0.10844138933054D-15 + 3 64 2 7 0.56471974226056D+00 0.13800832229370D-16 + 1 65 2 7 0.14080624751412D+00 0.66726563447499D-17 + 2 65 2 7 0.18586369695548D+00 -0.10885853663075D-15 + 3 65 2 7 -0.28518279672124D+00 0.28314292212605D-16 + 1 1 3 7 -0.24861959050637D-01 0.53969810257658D-17 + 2 1 3 7 -0.44845856798312D-01 -0.16671848087162D-17 + 3 1 3 7 0.14768947477597D+01 0.28111547694826D-18 + 1 2 3 7 -0.38930185792206D-01 -0.14389199580950D-18 + 2 2 3 7 0.12262395208868D-01 -0.11845503032392D-18 + 3 2 3 7 -0.95554353237722D-01 0.30334558534316D-17 + 1 3 3 7 0.19184240360457D-02 0.94732624432903D-18 + 2 3 3 7 -0.40416366528409D-01 0.14138701148191D-17 + 3 3 3 7 -0.20671006593298D+00 0.10319456844810D-17 + 1 4 3 7 -0.23926507485513D-01 0.35930102075491D-18 + 2 4 3 7 -0.41533968157781D-01 0.87371219293333D-19 + 3 4 3 7 -0.19111969908325D+00 0.52203482935988D-18 + 1 5 3 7 0.24475038061528D-01 -0.26094709459611D-17 + 2 5 3 7 0.28504399934005D+00 -0.67196995822698D-17 + 3 5 3 7 -0.44422357773511D+00 0.17078126577724D-16 + 1 6 3 7 0.63626998041331D-01 0.34292710245974D-18 + 2 6 3 7 0.86493072065202D-02 -0.10776108596035D-17 + 3 6 3 7 -0.12727626599595D+00 -0.28741404759339D-17 + 1 7 3 7 0.59488669410657D-01 0.00000000000000D+00 + 2 7 3 7 0.13236166824960D+01 0.00000000000000D+00 + 3 7 3 7 0.11865662793326D+03 0.00000000000000D+00 + 1 8 3 7 -0.22284876094396D-01 0.32491590289997D-19 + 2 8 3 7 -0.67018209271095D-01 -0.20969735980610D-18 + 3 8 3 7 -0.39179030205287D+00 0.95415663372340D-19 + 1 9 3 7 0.27429826993853D+00 -0.10184961108432D-16 + 2 9 3 7 0.28470708887522D+00 0.13404599624566D-16 + 3 9 3 7 0.12684713898619D+00 -0.29260712712233D-15 + 1 10 3 7 0.44863106048815D+00 0.17716452471228D-16 + 2 10 3 7 -0.46636153091889D+00 -0.38679768667420D-16 + 3 10 3 7 -0.35985695528310D+00 0.22674179017707D-15 + 1 11 3 7 0.46522743564036D+00 -0.88347899670935D-17 + 2 11 3 7 -0.45441403519213D+00 -0.65022346635958D-17 + 3 11 3 7 -0.76085550268744D+00 -0.72625643848304D-16 + 1 12 3 7 -0.11266806978941D-01 0.39901987029804D-16 + 2 12 3 7 -0.12652840085354D-01 0.29238711554089D-16 + 3 12 3 7 0.26346517888124D+00 0.27922797635177D-15 + 1 13 3 7 0.13897086490666D+02 -0.19984827844079D-16 + 2 13 3 7 -0.14423236904407D+02 0.96007139389849D-17 + 3 13 3 7 -0.26292168970119D+02 -0.30199429819665D-15 + 1 14 3 7 0.32570656986030D+00 -0.88144279504976D-17 + 2 14 3 7 -0.26654576811641D+00 0.19572259661718D-16 + 3 14 3 7 0.49508247045830D+00 0.52042903863005D-15 + 1 15 3 7 0.45605122386224D+00 -0.15021852982859D-16 + 2 15 3 7 -0.42696613261043D+00 0.15767825172389D-16 + 3 15 3 7 -0.38733449979394D+00 -0.20964531806729D-15 + 1 16 3 7 0.10915285207293D+00 0.23560062099397D-16 + 2 16 3 7 0.15173137220633D+00 0.43165252367237D-18 + 3 16 3 7 -0.19250859648881D+00 -0.26496890644569D-16 + 1 17 3 7 0.10979845495590D+00 -0.21093244145714D-16 + 2 17 3 7 -0.88531530517869D-01 0.81238273408146D-19 + 3 17 3 7 -0.24801182769949D+00 -0.24406330710338D-15 + 1 18 3 7 -0.11018956029346D+00 0.33129573022736D-16 + 2 18 3 7 -0.90810637626316D-01 0.19438290283858D-17 + 3 18 3 7 -0.20873637486903D+00 0.30358454205886D-15 + 1 19 3 7 -0.14432681694242D+00 -0.24717491132991D-17 + 2 19 3 7 0.49290147573131D-01 0.54657486313374D-17 + 3 19 3 7 -0.26792518326819D+00 0.22638553850273D-15 + 1 20 3 7 0.13256739918059D+01 -0.75522850715321D-17 + 2 20 3 7 -0.31608079795357D+01 -0.75382141226207D-18 + 3 20 3 7 -0.29795532850691D+01 0.23900002709019D-15 + 1 21 3 7 0.12360040210205D+01 -0.32172375824103D-16 + 2 21 3 7 0.31905729764210D+01 -0.72997576862634D-18 + 3 21 3 7 -0.30626394163209D+01 0.30640292609822D-15 + 1 22 3 7 -0.15177320252663D+01 -0.13307084319831D-16 + 2 22 3 7 0.31092013568370D+01 -0.51115284164696D-17 + 3 22 3 7 -0.25386322377401D+01 0.81556638687196D-15 + 1 23 3 7 -0.12454641439855D+01 -0.26245452450362D-16 + 2 23 3 7 -0.31293913227632D+01 0.18609278020621D-18 + 3 23 3 7 -0.30589887005169D+01 -0.26497359540728D-16 + 1 24 3 7 -0.43605273089237D+00 -0.23003429212126D-16 + 2 24 3 7 -0.41193502972180D+00 0.55564318787061D-17 + 3 24 3 7 -0.73479300855674D+00 0.15276117094171D-15 + 1 25 3 7 -0.22841937824872D-01 -0.97646829999964D-17 + 2 25 3 7 -0.37917362697485D-01 0.96559868954618D-16 + 3 25 3 7 0.28901435639828D+00 0.20064049787022D-16 + 1 26 3 7 -0.33966503486387D+00 -0.21204507833817D-16 + 2 26 3 7 0.28979766667511D+00 0.20442432871047D-16 + 3 26 3 7 0.22540838907912D+00 -0.14303894851776D-15 + 1 27 3 7 -0.48845849095460D+00 -0.85305455936010D-17 + 2 27 3 7 -0.46804370187614D+00 -0.40399774487585D-16 + 3 27 3 7 -0.39849614674370D+00 -0.27720529968447D-15 + 1 28 3 7 0.32656081583014D+00 -0.26114726746888D-16 + 2 28 3 7 -0.32723300791452D+00 0.86976250666006D-17 + 3 28 3 7 0.18674912064643D+00 0.11325868556784D-15 + 1 29 3 7 -0.50890489309557D+00 -0.81477496921564D-17 + 2 29 3 7 -0.55121297710036D+00 0.15402396369093D-15 + 3 29 3 7 -0.40136127322327D+00 -0.58402879582363D-16 + 1 30 3 7 -0.13217865722021D+02 0.21565656269683D-16 + 2 30 3 7 -0.13522654321831D+02 0.22529597626993D-16 + 3 30 3 7 -0.25515961030837D+02 -0.18423264734390D-15 + 1 31 3 7 -0.27943292278048D+00 -0.25284261114593D-16 + 2 31 3 7 -0.21879589379041D+00 -0.65030679977495D-16 + 3 31 3 7 0.37272648315903D+00 0.12244653915203D-16 + 1 32 3 7 -0.22701782239699D-01 -0.26135038742979D-17 + 2 32 3 7 0.15857612882839D+00 -0.17757942325154D-16 + 3 32 3 7 0.18707498056840D+00 -0.47902947426263D-16 + 1 33 3 7 0.73906612608213D-01 0.64101957759358D-18 + 2 33 3 7 -0.63014662905338D-01 -0.18258292223444D-16 + 3 33 3 7 -0.21706843664551D+00 0.22614388566807D-16 + 1 34 3 7 0.32845967229457D+01 -0.91740715694116D-18 + 2 34 3 7 -0.13578084798523D+01 -0.38974523760681D-17 + 3 34 3 7 -0.31435481711389D+01 -0.24392040105879D-15 + 1 35 3 7 -0.31941085754673D+01 0.76798346157225D-17 + 2 35 3 7 -0.14073185650725D+01 0.67150834443362D-17 + 3 35 3 7 -0.31161797414797D+01 -0.14187942415854D-16 + 1 36 3 7 0.90300250886179D-01 0.11510228955378D-17 + 2 36 3 7 0.13225854204798D+00 0.30701558993124D-16 + 3 36 3 7 -0.21086672653499D+00 0.27516221674998D-15 + 1 37 3 7 -0.36582342768195D-01 0.54636004048646D-18 + 2 37 3 7 0.15189491883038D+00 0.23863547458210D-17 + 3 37 3 7 -0.26027564892998D+00 0.77965032136020D-16 + 1 38 3 7 -0.28846658458855D+01 0.16185289119086D-18 + 2 38 3 7 0.10021922192644D+01 0.23600313867343D-16 + 3 38 3 7 -0.28762227844451D+01 -0.24256389740843D-15 + 1 39 3 7 0.32224719826006D+01 0.18739584571035D-17 + 2 39 3 7 0.13623457728179D+01 0.22577503098594D-16 + 3 39 3 7 -0.31198683632758D+01 -0.13706246309629D-15 + 1 40 3 7 0.31572160078401D+00 -0.44160200670663D-16 + 2 40 3 7 -0.30265282018592D+00 -0.47844784248424D-16 + 3 40 3 7 0.24708348230196D+00 0.11729741283442D-15 + 1 41 3 7 0.52775938851813D+00 -0.10143282103304D-16 + 2 41 3 7 0.49790547501619D+00 -0.15570426584155D-16 + 3 41 3 7 -0.44967235785733D+00 0.36328537261174D-16 + 1 42 3 7 0.50939446161318D+00 -0.28456049669201D-16 + 2 42 3 7 0.50016541024873D+00 0.53318699193885D-17 + 3 42 3 7 -0.87719096127325D+00 0.80355891489624D-16 + 1 43 3 7 -0.24696374662201D-02 -0.36817187483169D-17 + 2 43 3 7 0.12118996449943D-01 0.20698982818585D-17 + 3 43 3 7 0.26864894443220D+00 0.75028889584628D-16 + 1 44 3 7 0.13879011340542D+02 -0.14509743507987D-17 + 2 44 3 7 0.14107929617707D+02 -0.23805228229780D-16 + 3 44 3 7 -0.26062789866101D+02 -0.32007781525572D-15 + 1 45 3 7 0.19985889980304D+00 -0.15981946903655D-16 + 2 45 3 7 0.23274844943711D+00 -0.94625327209556D-17 + 3 45 3 7 0.42551965214467D+00 -0.76456832960513D-16 + 1 46 3 7 -0.29916503793231D+00 0.13667921793297D-16 + 2 46 3 7 0.16366981488135D+00 0.25400992209243D-16 + 3 46 3 7 0.12123201124200D+00 -0.39640972426679D-16 + 1 47 3 7 0.53730740550124D+00 -0.11183120087910D-16 + 2 47 3 7 0.40158016642122D+00 0.57312208082543D-17 + 3 47 3 7 -0.25326590528758D+00 -0.65795644108772D-16 + 1 48 3 7 -0.13625469848010D+01 0.00000000000000D+00 + 2 48 3 7 0.12816300215294D+01 0.24513718743886D-16 + 3 48 3 7 0.31258167392204D+01 -0.20530605046308D-16 + 1 49 3 7 -0.12635356812617D+00 -0.35873316122867D-16 + 2 49 3 7 0.99568015791879D-01 0.17042484038891D-16 + 3 49 3 7 0.52373562507987D-02 0.46967718883031D-17 + 1 50 3 7 0.81602640442448D+00 -0.78032377344758D-16 + 2 50 3 7 0.10224519877059D+01 0.11683227889522D-16 + 3 50 3 7 0.26553207591071D+01 -0.38155861305958D-16 + 1 51 3 7 0.43841709977776D-01 -0.20732828392396D-16 + 2 51 3 7 0.62766396932403D-01 0.12851254684836D-16 + 3 51 3 7 -0.14974612365163D-01 -0.67362503274932D-16 + 1 52 3 7 -0.11971059792642D+01 0.28911685577726D-16 + 2 52 3 7 -0.12001748544478D+01 0.13041366580143D-16 + 3 52 3 7 0.29632774936016D+01 -0.81104719842262D-17 + 1 53 3 7 -0.99565345105372D-01 0.98490125757813D-16 + 2 53 3 7 -0.80612052259493D-01 0.97646568824012D-16 + 3 53 3 7 -0.18016648722806D-01 0.79587214804556D-16 + 1 54 3 7 0.14068234245039D+01 -0.43922955097363D-16 + 2 54 3 7 -0.11353333223013D+01 0.30172454990006D-16 + 3 54 3 7 0.30155345649138D+01 -0.16824430345402D-16 + 1 55 3 7 0.14764773017077D+00 0.10411100225334D-15 + 2 55 3 7 -0.10356682372426D+00 -0.22158856762928D-16 + 3 55 3 7 0.54598954673187D-01 0.25913265483189D-16 + 1 56 3 7 -0.33826748421716D+00 0.23567733437265D-16 + 2 56 3 7 0.59323179457402D+00 -0.31502310010125D-16 + 3 56 3 7 -0.86409040711022D+00 0.13612909377335D-15 + 1 57 3 7 -0.16149580206861D-01 0.24590042640425D-17 + 2 57 3 7 0.27822975149859D-01 0.28525779711080D-16 + 3 57 3 7 0.26462086478739D+00 -0.20720730841454D-16 + 1 58 3 7 -0.38139056523929D+00 -0.16323182514568D-16 + 2 58 3 7 -0.34011013696974D+00 -0.13817636605902D-16 + 3 58 3 7 0.18898539371496D+00 -0.20341113188149D-16 + 1 59 3 7 -0.44224998145374D+00 0.10640020519847D-16 + 2 59 3 7 0.45833681568794D+00 -0.19367772448273D-16 + 3 59 3 7 -0.37168114771698D+00 0.10501767601416D-15 + 1 60 3 7 0.28361053495242D+00 0.14633839259875D-16 + 2 60 3 7 0.31592974345078D+00 0.28696429613566D-16 + 3 60 3 7 0.23490982432094D+00 -0.21392502766197D-15 + 1 61 3 7 -0.48409400010692D+00 0.22318638648446D-17 + 2 61 3 7 0.41751349235391D+00 0.14328369320659D-17 + 3 61 3 7 -0.32229451800095D+00 -0.16458717312507D-15 + 1 62 3 7 -0.14657929762345D+02 -0.56586461956403D-17 + 2 62 3 7 0.12371596783117D+02 -0.19579956786041D-16 + 3 62 3 7 -0.25101178599709D+02 0.25190576185138D-15 + 1 63 3 7 -0.22564467784923D+00 0.10087219204109D-17 + 2 63 3 7 0.30191942014922D+00 0.26750983032275D-16 + 3 63 3 7 0.43222364377867D+00 -0.61661352117094D-15 + 1 64 3 7 -0.26880943972696D+00 -0.39494386165195D-17 + 2 64 3 7 -0.18288178967436D+00 0.13800832229370D-16 + 3 64 3 7 -0.52499789938127D+00 0.23786229979789D-16 + 1 65 3 7 0.39928517272516D-01 -0.65178005300350D-17 + 2 65 3 7 0.67187656821287D-01 0.28314292212605D-16 + 3 65 3 7 0.75805720364935D-01 -0.10629294536164D-15 + 1 1 1 8 -0.10055294059491D+00 -0.67599390275980D-19 + 2 1 1 8 0.75447065688487D-03 0.34410277163153D-18 + 3 1 1 8 0.75447065688438D-03 -0.29629720113935D-18 + 1 2 1 8 -0.12290306718743D+00 0.85057757980303D-17 + 2 2 1 8 0.50187471622119D-01 -0.13309169785749D-17 + 3 2 1 8 0.36046341819235D-01 0.59457152117106D-18 + 1 3 1 8 -0.12290306718725D+00 0.38671341960999D-17 + 2 3 1 8 0.36046341819233D-01 0.29893835709346D-18 + 3 3 1 8 0.50187471622124D-01 0.22080091262109D-18 + 1 4 1 8 -0.40592725268389D+00 -0.40349805266540D-18 + 2 4 1 8 0.24069014812013D-02 0.77059785817967D-18 + 3 4 1 8 0.24069014811968D-02 0.45453852969611D-18 + 1 5 1 8 0.13557269446422D+01 -0.14531328720961D-16 + 2 5 1 8 -0.21546854528395D+00 0.13699899368234D-16 + 3 5 1 8 -0.21546854528394D+00 0.19371156020452D-16 + 1 6 1 8 -0.23565771303355D+00 0.13632157095834D-17 + 2 6 1 8 -0.22284876094380D-01 0.70596425274395D-18 + 3 6 1 8 -0.15542216925406D-01 -0.19168923025744D-18 + 1 7 1 8 -0.23565771303352D+00 0.15055782006468D-17 + 2 7 1 8 -0.15542216925407D-01 0.18020716169394D-18 + 3 7 1 8 -0.22284876094396D-01 -0.32491590289997D-19 + 1 8 1 8 0.11764144224654D+03 0.00000000000000D+00 + 2 8 1 8 -0.95835602795601D+00 0.00000000000000D+00 + 3 8 1 8 -0.95835602795618D+00 0.00000000000000D+00 + 1 9 1 8 -0.43614168367628D+00 0.14613528686863D-16 + 2 9 1 8 0.41949172230350D+00 0.13542230528769D-16 + 3 9 1 8 0.44407962521095D+00 0.39577772940068D-17 + 1 10 1 8 0.49329150386017D+00 0.91598582751237D-16 + 2 10 1 8 0.29889594006094D+00 0.12586574826806D-16 + 3 10 1 8 0.29889594006094D+00 0.25795180567027D-16 + 1 11 1 8 0.26942964081948D+00 0.36654692533082D-15 + 2 11 1 8 0.17330317339690D-01 0.15248060533612D-16 + 3 11 1 8 0.17330317339690D-01 -0.36830446290352D-16 + 1 12 1 8 -0.43614168367627D+00 -0.11507148305472D-15 + 2 12 1 8 0.44407962521094D+00 -0.41556426623119D-17 + 3 12 1 8 0.41949172230350D+00 0.26280412964027D-16 + 1 13 1 8 0.17245337070866D+00 -0.16850533131775D-16 + 2 13 1 8 -0.28498843691365D+00 -0.17437162224276D-16 + 3 13 1 8 0.25712532149784D+00 -0.12496158743968D-16 + 1 14 1 8 -0.26113621198295D+02 0.75736847014409D-16 + 2 14 1 8 0.13981816650897D+02 -0.22809033273159D-16 + 3 14 1 8 0.13981816650897D+02 0.37110287326362D-16 + 1 15 1 8 0.17245337070866D+00 -0.18947729507511D-15 + 2 15 1 8 0.25712532149784D+00 -0.14694331700843D-16 + 3 15 1 8 -0.28498843691365D+00 -0.81634614754230D-17 + 1 16 1 8 0.17628049017321D-01 0.29718993379549D-18 + 2 16 1 8 0.13471322032933D+00 0.13251220946632D-17 + 3 16 1 8 -0.10356308707007D+00 -0.23083769464471D-16 + 1 17 1 8 -0.34911139746882D-01 -0.25278911994582D-15 + 2 17 1 8 -0.99917988628222D-01 0.34018268057629D-16 + 3 17 1 8 -0.99917988628226D-01 -0.17827318981224D-16 + 1 18 1 8 0.49215479792286D-01 -0.11625732361727D-16 + 2 18 1 8 0.67004752710940D-01 0.34171290669337D-16 + 3 18 1 8 0.67004752710939D-01 -0.26663846768951D-16 + 1 19 1 8 0.17628049017344D-01 -0.17384752976262D-16 + 2 19 1 8 -0.10356308707008D+00 0.11521160170605D-16 + 3 19 1 8 0.13471322032932D+00 -0.11059883065234D-16 + 1 20 1 8 0.29685174375502D+01 -0.13335874592546D-16 + 2 20 1 8 0.13774526215980D+01 -0.10978216163984D-16 + 3 20 1 8 -0.12360040210205D+01 -0.28156822611992D-17 + 1 21 1 8 0.31699779795925D+01 -0.12864550603498D-15 + 2 21 1 8 -0.12255833182082D+01 0.14971530301045D-16 + 3 21 1 8 -0.12255833182082D+01 0.18057583501828D-16 + 1 22 1 8 0.28298793736917D+01 -0.93639309605890D-16 + 2 22 1 8 0.15363366088824D+01 0.33617108923665D-16 + 3 22 1 8 0.15363366088824D+01 -0.25361372634850D-16 + 1 23 1 8 0.29685174375501D+01 -0.70037354003842D-16 + 2 23 1 8 -0.12360040210204D+01 0.22471361215835D-16 + 3 23 1 8 0.13774526215980D+01 -0.15173751903989D-16 + 1 24 1 8 0.26343432207317D+00 -0.55308435077268D-16 + 2 24 1 8 -0.26920621507094D-01 -0.68153423404528D-17 + 3 24 1 8 -0.26920621507096D-01 -0.12383883708813D-16 + 1 25 1 8 -0.42580530827139D+00 -0.79065890757919D-17 + 2 25 1 8 -0.51494688043211D+00 0.66481816145441D-17 + 3 25 1 8 -0.48044606924574D+00 0.33135423472016D-16 + 1 26 1 8 -0.42580530827146D+00 0.33017031690741D-16 + 2 26 1 8 -0.48044606924574D+00 0.62571216178560D-17 + 3 26 1 8 -0.51494688043211D+00 0.25314711548867D-16 + 1 27 1 8 0.33407282794413D+00 -0.16425132936976D-15 + 2 27 1 8 -0.22874393479573D+00 -0.23371914305554D-16 + 3 27 1 8 -0.22874393479574D+00 0.33513710188130D-16 + 1 28 1 8 -0.68544091796875D+00 -0.16768730064714D-15 + 2 28 1 8 -0.48684142294518D+00 -0.11697366411677D-16 + 3 28 1 8 -0.48684142294518D+00 -0.93636513654682D-16 + 1 29 1 8 0.25011915021961D+00 -0.38740081135943D-17 + 2 29 1 8 -0.34701892963439D+00 0.35541043194761D-16 + 3 29 1 8 0.29670673634117D+00 -0.26809313453252D-16 + 1 30 1 8 0.25011915021963D+00 0.11542342610586D-15 + 2 30 1 8 0.29670673634117D+00 -0.20113769044083D-16 + 3 30 1 8 -0.34701892963439D+00 -0.33368818166059D-16 + 1 31 1 8 -0.24102957627296D+02 0.88054869493541D-16 + 2 31 1 8 -0.13010403468366D+02 -0.26090605300299D-17 + 3 31 1 8 -0.13010403468366D+02 -0.14715174441195D-16 + 1 32 1 8 -0.17607364125100D+00 0.86796371758206D-16 + 2 32 1 8 -0.98978215545329D-01 0.51578174768960D-16 + 3 32 1 8 -0.67118144898803D-02 0.19151270682116D-17 + 1 33 1 8 -0.22820373706449D+00 0.70067054802674D-16 + 2 33 1 8 0.12635356812615D+00 0.88680402311854D-16 + 3 33 1 8 -0.10067823622293D+00 -0.22212708167831D-18 + 1 34 1 8 -0.31052957392000D+01 0.22466302465031D-15 + 2 34 1 8 -0.11880694090846D+01 0.96574274061106D-16 + 3 34 1 8 -0.31941085754673D+01 -0.67729358453852D-18 + 1 35 1 8 -0.31246827126462D+01 0.11660257227661D-15 + 2 35 1 8 0.13218851373702D+01 -0.10102355478572D-15 + 3 35 1 8 0.32372407928346D+01 -0.83149472273196D-18 + 1 36 1 8 -0.21730179390958D+00 -0.10046241981232D-15 + 2 36 1 8 -0.90350894191814D-01 -0.89550312366778D-16 + 3 36 1 8 -0.11754640956586D+00 -0.88176811168524D-18 + 1 37 1 8 -0.23994603525543D+00 0.14282227746111D-15 + 2 37 1 8 0.70206638076883D-01 0.10549421029786D-15 + 3 37 1 8 0.10929782699040D+00 0.18356313073114D-17 + 1 38 1 8 -0.29596538007428D+01 0.96933984571774D-16 + 2 38 1 8 -0.14160356266369D+01 0.30256012256975D-16 + 3 38 1 8 0.31254481327735D+01 -0.49916635852516D-18 + 1 39 1 8 -0.30954916382760D+01 0.24764153296703D-15 + 2 39 1 8 0.12247732147474D+01 0.27368868851207D-16 + 3 39 1 8 -0.31872566408720D+01 -0.51767358723304D-18 + 1 40 1 8 -0.42574411112178D+00 -0.18957639332866D-15 + 2 40 1 8 -0.45567704351572D+00 0.65850749588667D-17 + 3 40 1 8 0.46661777973952D+00 0.35790316179782D-16 + 1 41 1 8 0.39734956014697D+00 0.44782945243275D-16 + 2 41 1 8 -0.23802945606287D+00 -0.23134724361960D-16 + 3 41 1 8 0.24735014074085D+00 -0.89117958275257D-17 + 1 42 1 8 0.26686550422134D+00 -0.92769139161413D-16 + 2 42 1 8 0.42196927431097D-02 0.32230286112203D-16 + 3 42 1 8 -0.94617811102808D-02 0.42861683955072D-17 + 1 43 1 8 -0.29770639034202D+00 -0.14563784150715D-16 + 2 43 1 8 -0.32150151371740D+00 -0.43211382287314D-16 + 3 43 1 8 0.47577268331974D+00 -0.30102076366755D-16 + 1 44 1 8 0.18950469390943D+00 -0.48420982913150D-16 + 2 44 1 8 0.34179935926502D+00 0.29628728941335D-16 + 3 44 1 8 0.31472751484528D+00 -0.42268747475756D-16 + 1 45 1 8 -0.25794221122147D+02 0.91830682612617D-16 + 2 45 1 8 -0.13749665086973D+02 -0.47266525938442D-16 + 3 45 1 8 0.13654215728241D+02 0.12294641533067D-16 + 1 46 1 8 -0.79645524878653D+00 0.60571842725355D-16 + 2 46 1 8 -0.49952396734700D+00 0.71641585103317D-16 + 3 46 1 8 0.49338013526382D+00 -0.37472401385304D-17 + 1 47 1 8 0.24071006525500D+00 -0.36009983084105D-16 + 2 47 1 8 -0.24324448070264D+00 -0.43398935212962D-16 + 3 47 1 8 -0.39930320110790D+00 -0.17823392926841D-16 + 1 48 1 8 -0.22820373706449D+00 0.21328643669224D-15 + 2 48 1 8 -0.10067823622293D+00 0.26025604175033D-17 + 3 48 1 8 0.12635356812616D+00 -0.72411972828999D-16 + 1 49 1 8 -0.31246827126461D+01 -0.13162457501140D-16 + 2 49 1 8 0.32372407928347D+01 -0.15464888163942D-17 + 3 49 1 8 0.13218851373702D+01 0.10093008478173D-16 + 1 50 1 8 -0.17607364125105D+00 0.16780496640442D-15 + 2 50 1 8 -0.67118144898918D-02 0.21080755190225D-17 + 3 50 1 8 -0.98978215545311D-01 0.10202006509255D-15 + 1 51 1 8 -0.31052957392001D+01 0.19529689369183D-15 + 2 51 1 8 -0.31941085754673D+01 0.20630758526032D-17 + 3 51 1 8 -0.11880694090847D+01 0.23348377713612D-16 + 1 52 1 8 -0.23994603525543D+00 -0.24153079373177D-15 + 2 52 1 8 0.10929782699043D+00 0.42033298877402D-18 + 3 52 1 8 0.70206638076877D-01 -0.99967795862068D-16 + 1 53 1 8 -0.30954916382759D+01 -0.61729010020667D-16 + 2 53 1 8 -0.31872566408716D+01 0.14954925039380D-17 + 3 53 1 8 0.12247732147474D+01 -0.83058397240835D-16 + 1 54 1 8 -0.21730179390960D+00 -0.15008627185896D-15 + 2 54 1 8 -0.11754640956584D+00 -0.16926373676324D-17 + 3 54 1 8 -0.90350894191817D-01 -0.46419009679654D-16 + 1 55 1 8 -0.29596538007428D+01 -0.23776181706076D-15 + 2 55 1 8 0.31254481327734D+01 0.45168113319211D-18 + 3 55 1 8 -0.14160356266369D+01 -0.53071608277337D-16 + 1 56 1 8 0.26686550422134D+00 0.26074189456179D-16 + 2 56 1 8 -0.94617811102812D-02 -0.22388148655982D-17 + 3 56 1 8 0.42196927431106D-02 -0.11748446485641D-16 + 1 57 1 8 -0.42574411112177D+00 -0.39692847459308D-15 + 2 57 1 8 0.46661777973952D+00 -0.42147101286246D-16 + 3 57 1 8 -0.45567704351572D+00 -0.13274865890778D-16 + 1 58 1 8 -0.29770639034202D+00 -0.44889994397395D-16 + 2 58 1 8 0.47577268331975D+00 -0.42140656897591D-17 + 3 58 1 8 -0.32150151371739D+00 0.42548513024074D-16 + 1 59 1 8 0.39734956014696D+00 -0.82962391450924D-16 + 2 59 1 8 0.24735014074084D+00 0.23826323703902D-17 + 3 59 1 8 -0.23802945606287D+00 -0.31001728645529D-16 + 1 60 1 8 -0.79645524878653D+00 -0.25458602889581D-15 + 2 60 1 8 0.49338013526382D+00 0.22013539309464D-16 + 3 60 1 8 -0.49952396734700D+00 0.13034123927505D-16 + 1 61 1 8 0.18950469390943D+00 0.24691140107861D-15 + 2 61 1 8 0.31472751484528D+00 0.15727352712437D-16 + 3 61 1 8 0.34179935926502D+00 0.76351782655406D-18 + 1 62 1 8 0.24071006525500D+00 -0.21588720707691D-16 + 2 62 1 8 -0.39930320110790D+00 -0.65120010816607D-16 + 3 62 1 8 -0.24324448070264D+00 -0.26980896611879D-16 + 1 63 1 8 -0.25794221122147D+02 0.49132206215134D-16 + 2 63 1 8 0.13654215728241D+02 -0.11757737034464D-16 + 3 63 1 8 -0.13749665086973D+02 0.12917477965159D-16 + 1 64 1 8 -0.75943447184915D+00 -0.33613954352388D-16 + 2 64 1 8 0.58922497966896D+00 0.14672308936002D-17 + 3 64 1 8 0.58922497966896D+00 -0.15887621554839D-16 + 1 65 1 8 -0.15924778845918D+00 0.21568389119965D-15 + 2 65 1 8 -0.15050325854584D+00 0.66853965250260D-16 + 3 65 1 8 -0.15177704355265D+00 -0.48315120477935D-16 + 1 1 2 8 0.14934656076212D-01 0.34410277163153D-18 + 2 1 2 8 -0.79969290519244D-01 0.12219532856799D-17 + 3 1 2 8 -0.20794212377672D-01 0.20997033259275D-18 + 1 2 2 8 -0.22596539548496D-01 -0.13309169785749D-17 + 2 2 2 8 -0.67269915365609D-01 -0.75665292298957D-19 + 3 2 2 8 0.11411960095221D+00 0.14431247932751D-18 + 1 3 2 8 -0.12182195732168D-01 0.29893835709346D-18 + 2 3 2 8 0.15513921470717D+01 -0.13997111976611D-17 + 3 3 2 8 -0.50182227588191D-01 -0.23429639213927D-17 + 1 4 2 8 -0.44494871188016D-02 0.77059785817967D-18 + 2 4 2 8 -0.22329293722581D+00 -0.10681434469396D-17 + 3 4 2 8 0.31725157218816D-02 0.00000000000000D+00 + 1 5 2 8 0.12214257078257D+00 0.13699899368234D-16 + 2 5 2 8 0.20929947359173D+00 -0.22134836265352D-16 + 3 5 2 8 -0.21334612465260D+00 -0.96101946170399D-17 + 1 6 2 8 0.76325334859225D-02 0.70596425274395D-18 + 2 6 2 8 -0.39179030205287D+00 -0.23524434117915D-17 + 3 6 2 8 0.74889325537824D-02 -0.12234864465022D-17 + 1 7 2 8 -0.25941992352619D-01 0.18020716169394D-18 + 2 7 2 8 -0.23998152292440D+00 -0.30721598713960D-17 + 3 7 2 8 -0.67018209271095D-01 0.20969735980610D-18 + 1 8 2 8 -0.95835602795601D+00 0.00000000000000D+00 + 2 8 2 8 0.11902791374500D+03 0.00000000000000D+00 + 3 8 2 8 -0.55259285124261D+00 0.00000000000000D+00 + 1 9 2 8 0.43679527610675D+00 0.13542230528769D-16 + 2 9 2 8 -0.85536555934429D+00 0.12766960281779D-16 + 3 9 2 8 -0.51189089304038D+00 -0.96305435434526D-17 + 1 10 2 8 0.30346406128317D+00 0.12586574826806D-16 + 2 10 2 8 0.19492375400720D+00 -0.30398024724389D-15 + 3 10 2 8 0.33295290077051D+00 -0.12680809097249D-16 + 1 11 2 8 0.21573688483290D-01 0.15248060533612D-16 + 2 11 2 8 0.25547462007207D+00 -0.50324690407667D-16 + 3 11 2 8 -0.13715963087912D-01 -0.27878530999135D-16 + 1 12 2 8 0.41968061769710D+00 -0.41556426623119D-17 + 2 12 2 8 -0.36794449471739D+00 0.23664931046857D-15 + 3 12 2 8 -0.50897213131086D+00 -0.46347126734774D-16 + 1 13 2 8 -0.29424501838483D+00 -0.17437162224276D-16 + 2 13 2 8 0.17338507247209D+00 -0.94152481197461D-16 + 3 13 2 8 -0.28303719140876D+00 -0.13568527559553D-16 + 1 14 2 8 0.14061047771994D+02 -0.22809033273159D-16 + 2 14 2 8 -0.26051304634116D+02 -0.75857852178042D-16 + 3 14 2 8 -0.14052048986228D+02 -0.10628914184473D-16 + 1 15 2 8 0.28951291420751D+00 -0.14694331700843D-16 + 2 15 2 8 0.41507581536834D+00 -0.13961669164723D-15 + 3 15 2 8 -0.24621087117146D+00 0.28862595154955D-16 + 1 16 2 8 -0.72483235593101D-01 0.13251220946632D-17 + 2 16 2 8 -0.17065132479147D+00 -0.11242587260293D-15 + 3 16 2 8 -0.59446261974187D-01 0.11674622958693D-18 + 1 17 2 8 0.93652105749602D-01 0.34018268057629D-16 + 2 17 2 8 -0.23199836150855D+00 0.12392223564298D-15 + 3 17 2 8 0.98841998568627D-01 0.45130220945402D-18 + 1 18 2 8 -0.11676445661642D+00 0.34171290669337D-16 + 2 18 2 8 -0.24047697504348D+00 0.16686010424269D-15 + 3 18 2 8 0.10862185381205D+00 0.13232331226370D-18 + 1 19 2 8 0.67088866551377D-01 0.11521160170605D-16 + 2 19 2 8 -0.28160457200432D+00 0.70051380892226D-16 + 3 19 2 8 -0.11291188076494D+00 0.29833258260938D-17 + 1 20 2 8 -0.14116852895950D+01 -0.10978216163984D-16 + 2 20 2 8 -0.30064990613072D+01 0.24734818861056D-15 + 3 20 2 8 0.31905729764210D+01 0.27490469975869D-17 + 1 21 2 8 0.12255833182082D+01 0.14971530301045D-16 + 2 21 2 8 -0.31085143714600D+01 -0.10018511103737D-15 + 3 21 2 8 -0.31715093594047D+01 0.29180914561613D-17 + 1 22 2 8 -0.76751713481800D+00 0.33617108923665D-16 + 2 22 2 8 -0.30757828154629D+01 -0.20725357580990D-15 + 3 22 2 8 -0.25795643293890D+01 -0.32257805547018D-17 + 1 23 2 8 0.12951198397229D+01 0.22471361215835D-16 + 2 23 2 8 -0.30626394163209D+01 0.13688953315859D-17 + 3 23 2 8 0.32361500471502D+01 0.10196439306101D-17 + 1 24 2 8 -0.18633581868246D-01 -0.68153423404528D-17 + 2 24 2 8 0.27252466740490D+00 0.41923517329350D-16 + 3 24 2 8 -0.16403028717807D-01 -0.45935551279084D-16 + 1 25 2 8 -0.49364879915014D+00 0.66481816145441D-17 + 2 25 2 8 -0.43998710153765D+00 -0.43695989929883D-16 + 3 25 2 8 -0.50232794404432D+00 -0.28098295319990D-16 + 1 26 2 8 -0.45051381424607D+00 0.62571216178560D-17 + 2 26 2 8 -0.79183951901711D+00 0.12824094259243D-16 + 3 26 2 8 -0.48482976678670D+00 0.73644001502658D-16 + 1 27 2 8 -0.27609018658730D+00 -0.23371914305554D-16 + 2 27 2 8 0.18438341282726D+00 -0.37758594597374D-17 + 3 27 2 8 0.31268606285268D+00 0.52953085279392D-17 + 1 28 2 8 -0.55083122718630D+00 -0.11697366411677D-16 + 2 28 2 8 -0.28805146597436D+00 0.15934694651438D-15 + 3 28 2 8 -0.33277610511116D+00 0.72497668857190D-17 + 1 29 2 8 -0.30473593415086D+00 0.35541043194761D-16 + 2 29 2 8 0.46633976140987D+00 -0.42127678617690D-16 + 3 29 2 8 -0.32560982930179D+00 0.26007191659128D-16 + 1 30 2 8 0.34036146741601D+00 -0.20113769044083D-16 + 2 30 2 8 0.19148274089983D+00 0.41987804920235D-16 + 3 30 2 8 -0.27197998488542D+00 0.90341151066632D-17 + 1 31 2 8 -0.13096970677307D+02 -0.26090605300299D-17 + 2 31 2 8 -0.25611518728893D+02 -0.55786530812581D-16 + 3 31 2 8 -0.13619025127797D+02 -0.26678994379632D-16 + 1 32 2 8 0.19179167582304D+00 0.51578174768960D-16 + 2 32 2 8 0.32936438032625D+00 0.21403455436023D-15 + 3 32 2 8 0.28673425970042D+00 -0.24948888120962D-17 + 1 33 2 8 -0.11060314530730D+00 0.88680402311854D-16 + 2 33 2 8 0.52373562508023D-02 0.23750550746318D-16 + 3 33 2 8 0.74387259052580D-01 0.26826007641262D-16 + 1 34 2 8 0.11850558323564D+01 0.96574274061106D-16 + 2 34 2 8 0.30525156815770D+01 -0.20918650359365D-15 + 3 34 2 8 0.14073185650725D+01 -0.34228920507378D-16 + 1 35 2 8 -0.13218851373702D+01 -0.10102355478572D-15 + 2 35 2 8 0.30759193700457D+01 0.40054137721080D-16 + 3 35 2 8 0.13043774859262D+01 -0.13573272609355D-16 + 1 36 2 8 0.13479536424726D+00 -0.89550312366778D-16 + 2 36 2 8 -0.15398128284675D-01 0.39090740279305D-16 + 3 36 2 8 -0.93465445648177D-01 0.10539306683069D-16 + 1 37 2 8 -0.89465979828499D-01 0.10549421029786D-15 + 2 37 2 8 -0.19811576467606D-01 0.15686997567895D-15 + 3 37 2 8 -0.14001481061544D+00 -0.21695336395744D-16 + 1 38 2 8 0.12343771874599D+01 0.30256012256975D-16 + 2 38 2 8 0.30102194717558D+01 0.10735184234917D-16 + 3 38 2 8 -0.12144881578439D+01 0.18532925697774D-16 + 1 39 2 8 -0.12922970665964D+01 0.27368868851207D-16 + 2 39 2 8 0.31665669045344D+01 0.18395801548989D-15 + 3 39 2 8 -0.13605572144011D+01 -0.26210346568659D-16 + 1 40 2 8 -0.49371812521040D+00 0.65850749588667D-17 + 2 40 2 8 -0.81832269216946D+00 -0.23476101860293D-15 + 3 40 2 8 0.46213141658107D+00 0.18705595090953D-16 + 1 41 2 8 -0.22867874047309D+00 -0.23134724361960D-16 + 2 41 2 8 0.19144027554771D+00 -0.11974955373883D-15 + 3 41 2 8 -0.30778667023404D+00 -0.10522156074609D-17 + 1 42 2 8 -0.10707045324182D+00 0.32230286112203D-16 + 2 42 2 8 0.32802942366760D+00 -0.30580007038993D-16 + 3 42 2 8 -0.49505833736299D-01 0.24820454389211D-16 + 1 43 2 8 -0.43245298590620D+00 -0.43211382287314D-16 + 2 43 2 8 -0.31887366055224D+00 -0.10693330961007D-16 + 3 43 2 8 0.59167202259456D+00 -0.90709531004570D-17 + 1 44 2 8 0.32566797249811D+00 0.29628728941335D-16 + 2 44 2 8 0.16835463342987D+00 -0.31381518311777D-15 + 3 44 2 8 0.30305418033183D+00 0.29519291534258D-16 + 1 45 2 8 -0.13679113574287D+02 -0.47266525938442D-16 + 2 45 2 8 -0.26190006915435D+02 0.17299843959435D-15 + 3 45 2 8 0.13932091528740D+02 0.23424055147716D-16 + 1 46 2 8 -0.38632799622838D+00 0.71641585103317D-16 + 2 46 2 8 -0.55330131078288D+00 0.12022574309693D-15 + 3 46 2 8 0.49852977540939D+00 0.13621526214818D-16 + 1 47 2 8 -0.29803704164043D+00 -0.43398935212962D-16 + 2 47 2 8 0.62299032448475D+00 0.34051789374963D-16 + 3 47 2 8 0.43699935314725D+00 -0.30964468325803D-16 + 1 48 2 8 -0.78657874930479D-01 0.26025604175033D-17 + 2 48 2 8 -0.20851766763871D+00 -0.20810867251824D-15 + 3 48 2 8 -0.99568015791875D-01 0.28243887879975D-16 + 1 49 2 8 0.32372407928347D+01 -0.15464888163942D-17 + 2 49 2 8 -0.31125065002563D+01 -0.99970063023699D-16 + 3 49 2 8 -0.13035185751495D+01 -0.61304638539379D-16 + 1 50 2 8 0.62185490678856D-01 0.21080755190225D-17 + 2 50 2 8 -0.52402244393142D+00 -0.28958544742361D-15 + 3 50 2 8 -0.38755451493192D+00 -0.30117474038350D-16 + 1 51 2 8 -0.32289744110740D+01 0.20630758526032D-17 + 2 51 2 8 -0.31161797414798D+01 -0.52368917914656D-17 + 3 51 2 8 -0.13006788073403D+01 -0.73047267982267D-16 + 1 52 2 8 0.65890303523437D-01 0.42033298877402D-18 + 2 52 2 8 -0.21619915347569D+00 0.16937372615979D-15 + 3 52 2 8 0.47616311444369D-01 -0.99011668109572D-16 + 1 53 2 8 -0.32179128749850D+01 0.14954925039380D-17 + 2 53 2 8 -0.31266544890534D+01 -0.77058326809512D-16 + 3 53 2 8 0.12430520967716D+01 0.70299199294817D-16 + 1 54 2 8 -0.68866005259074D-01 -0.16926373676324D-17 + 2 54 2 8 -0.26140025060353D+00 -0.31040068029488D-15 + 3 54 2 8 0.44248198131510D-01 0.31337191445886D-16 + 1 55 2 8 0.32008726391262D+01 0.45168113319211D-18 + 2 55 2 8 -0.30979715045097D+01 0.13403037027082D-15 + 3 55 2 8 0.14307103494987D+01 0.20665816290960D-16 + 1 56 2 8 0.20825616100103D-01 -0.22388148655982D-17 + 2 56 2 8 0.24492796035844D+00 0.32532056970436D-15 + 3 56 2 8 -0.48541681642134D-01 -0.11190860165999D-16 + 1 57 2 8 0.48878863251807D+00 -0.42147101286246D-16 + 2 57 2 8 -0.37201695309456D+00 0.21002020816498D-15 + 3 57 2 8 0.47111525755596D+00 -0.28391093561541D-16 + 1 58 2 8 0.53882773265772D+00 -0.42140656897591D-17 + 2 58 2 8 -0.83525506489340D+00 -0.15747561008312D-15 + 3 58 2 8 0.55610764499212D+00 -0.19883981698615D-16 + 1 59 2 8 0.27710318582960D+00 0.23826323703902D-17 + 2 59 2 8 0.18807102073722D+00 -0.38832781762366D-16 + 3 59 2 8 -0.28569280361857D+00 0.17142636989006D-16 + 1 60 2 8 0.36639941053524D+00 0.22013539309464D-16 + 2 60 2 8 -0.32116000110639D+00 -0.12185749730250D-15 + 3 60 2 8 0.49151781919568D+00 0.26275754029064D-17 + 1 61 2 8 0.28250092722396D+00 0.15727352712437D-16 + 2 61 2 8 0.49246290484206D+00 -0.37543448781691D-16 + 3 61 2 8 0.30437217106272D+00 -0.31154341072680D-16 + 1 62 2 8 -0.44122789176326D+00 -0.65120010816607D-16 + 2 62 2 8 0.18654111657419D+00 0.72506603523300D-16 + 3 62 2 8 0.26491264012522D+00 0.27439130997070D-16 + 1 63 2 8 0.13738598552669D+02 -0.11757737034464D-16 + 2 63 2 8 -0.25755365692805D+02 -0.57414261914163D-16 + 3 63 2 8 0.13838939719674D+02 -0.26988436563018D-16 + 1 64 2 8 0.88642642302341D-01 0.14672308936002D-17 + 2 64 2 8 -0.54441867132873D+00 -0.33490754017528D-15 + 3 64 2 8 -0.45238333347917D+00 -0.40121666741700D-16 + 1 65 2 8 0.20997989540762D+00 0.66853965250260D-16 + 2 65 2 8 -0.28443611771166D+00 0.15014746621728D-15 + 3 65 2 8 -0.35715189385479D+00 0.63941545288443D-16 + 1 1 3 8 0.14934656076213D-01 -0.29629720113935D-18 + 2 1 3 8 -0.20794212377672D-01 0.20997033259275D-18 + 3 1 3 8 -0.79969290519242D-01 -0.53488518799127D-18 + 1 2 3 8 -0.12182195732168D-01 0.59457152117106D-18 + 2 2 3 8 -0.50182227588190D-01 0.14431247932751D-18 + 3 2 3 8 0.15513921470717D+01 -0.71572581449717D-17 + 1 3 3 8 -0.22596539548495D-01 0.22080091262109D-18 + 2 3 3 8 0.11411960095221D+00 -0.23429639213927D-17 + 3 3 3 8 -0.67269915365607D-01 -0.19494440966954D-17 + 1 4 3 8 -0.44494871188016D-02 0.45453852969611D-18 + 2 4 3 8 0.31725157218816D-02 0.00000000000000D+00 + 3 4 3 8 -0.22329293722581D+00 0.91934832783378D-18 + 1 5 3 8 0.12214257078257D+00 0.19371156020452D-16 + 2 5 3 8 -0.21334612465260D+00 -0.96101946170399D-17 + 3 5 3 8 0.20929947359173D+00 0.70543607509548D-17 + 1 6 3 8 -0.25941992352620D-01 -0.19168923025744D-18 + 2 6 3 8 -0.67018209271095D-01 -0.12234864465022D-17 + 3 6 3 8 -0.23998152292439D+00 0.19022603849959D-17 + 1 7 3 8 0.76325334859225D-02 -0.32491590289997D-19 + 2 7 3 8 0.74889325537827D-02 0.20969735980610D-18 + 3 7 3 8 -0.39179030205287D+00 -0.95415663372340D-19 + 1 8 3 8 -0.95835602795618D+00 0.00000000000000D+00 + 2 8 3 8 -0.55259285124261D+00 0.00000000000000D+00 + 3 8 3 8 0.11902791374500D+03 0.00000000000000D+00 + 1 9 3 8 0.41968061769710D+00 0.39577772940068D-17 + 2 9 3 8 -0.50897213131086D+00 -0.96305435434526D-17 + 3 9 3 8 -0.36794449471740D+00 -0.25064264592086D-15 + 1 10 3 8 0.30346406128308D+00 0.25795180567027D-16 + 2 10 3 8 0.33295290077051D+00 -0.12680809097249D-16 + 3 10 3 8 0.19492375400720D+00 -0.57538755749285D-16 + 1 11 3 8 0.21573688483280D-01 -0.36830446290352D-16 + 2 11 3 8 -0.13715963087912D-01 -0.27878530999135D-16 + 3 11 3 8 0.25547462007208D+00 -0.90055228609068D-16 + 1 12 3 8 0.43679527610675D+00 0.26280412964027D-16 + 2 12 3 8 -0.51189089304038D+00 -0.46347126734774D-16 + 3 12 3 8 -0.85536555934429D+00 -0.85065013460804D-16 + 1 13 3 8 0.28951291420751D+00 -0.12496158743968D-16 + 2 13 3 8 -0.24621087117146D+00 -0.13568527559553D-16 + 3 13 3 8 0.41507581536834D+00 0.31196586752718D-15 + 1 14 3 8 0.14061047771996D+02 0.37110287326362D-16 + 2 14 3 8 -0.14052048986228D+02 -0.10628914184473D-16 + 3 14 3 8 -0.26051304634116D+02 -0.10726834852736D-15 + 1 15 3 8 -0.29424501838483D+00 -0.81634614754230D-17 + 2 15 3 8 -0.28303719140876D+00 0.28862595154955D-16 + 3 15 3 8 0.17338507247210D+00 -0.49402273845017D-16 + 1 16 3 8 0.67088866551376D-01 -0.23083769464471D-16 + 2 16 3 8 -0.11291188076494D+00 0.11674622958693D-18 + 3 16 3 8 -0.28160457200432D+00 -0.46787898714116D-16 + 1 17 3 8 0.93652105749603D-01 -0.17827318981224D-16 + 2 17 3 8 0.98841998568627D-01 0.45130220945402D-18 + 3 17 3 8 -0.23199836150855D+00 0.19422350937757D-15 + 1 18 3 8 -0.11676445661642D+00 -0.26663846768951D-16 + 2 18 3 8 0.10862185381205D+00 0.13232331226370D-18 + 3 18 3 8 -0.24047697504348D+00 -0.10388127286514D-15 + 1 19 3 8 -0.72483235593101D-01 -0.11059883065234D-16 + 2 19 3 8 -0.59446261974186D-01 0.29833258260938D-17 + 3 19 3 8 -0.17065132479147D+00 -0.42005609537175D-16 + 1 20 3 8 0.12951198397229D+01 -0.28156822611992D-17 + 2 20 3 8 0.32361500471502D+01 0.27490469975869D-17 + 3 20 3 8 -0.30626394163209D+01 -0.25512102986972D-15 + 1 21 3 8 0.12255833182082D+01 0.18057583501828D-16 + 2 21 3 8 -0.31715093594047D+01 0.29180914561613D-17 + 3 21 3 8 -0.31085143714600D+01 0.29730683429643D-15 + 1 22 3 8 -0.76751713481800D+00 -0.25361372634850D-16 + 2 22 3 8 -0.25795643293890D+01 -0.32257805547018D-17 + 3 22 3 8 -0.30757828154629D+01 -0.99809590101663D-16 + 1 23 3 8 -0.14116852895950D+01 -0.15173751903989D-16 + 2 23 3 8 0.31905729764210D+01 0.10196439306101D-17 + 3 23 3 8 -0.30064990613072D+01 0.14976998828626D-16 + 1 24 3 8 -0.18633581868220D-01 -0.12383883708813D-16 + 2 24 3 8 -0.16403028717807D-01 -0.45935551279084D-16 + 3 24 3 8 0.27252466740490D+00 0.14284242400975D-16 + 1 25 3 8 -0.45051381424610D+00 0.33135423472016D-16 + 2 25 3 8 -0.48482976678670D+00 -0.28098295319990D-16 + 3 25 3 8 -0.79183951901711D+00 0.98477536451470D-17 + 1 26 3 8 -0.49364879915014D+00 0.25314711548867D-16 + 2 26 3 8 -0.50232794404432D+00 0.73644001502658D-16 + 3 26 3 8 -0.43998710153764D+00 0.13035320134510D-15 + 1 27 3 8 -0.27609018658726D+00 0.33513710188130D-16 + 2 27 3 8 0.31268606285268D+00 0.52953085279392D-17 + 3 27 3 8 0.18438341282726D+00 0.16816435184132D-15 + 1 28 3 8 -0.55083122718628D+00 -0.93636513654682D-16 + 2 28 3 8 -0.33277610511116D+00 0.72497668857190D-17 + 3 28 3 8 -0.28805146597436D+00 0.84097180212331D-17 + 1 29 3 8 0.34036146741610D+00 -0.26809313453252D-16 + 2 29 3 8 -0.27197998488542D+00 0.26007191659128D-16 + 3 29 3 8 0.19148274089983D+00 0.24676787235703D-16 + 1 30 3 8 -0.30473593415091D+00 -0.33368818166059D-16 + 2 30 3 8 -0.32560982930179D+00 0.90341151066632D-17 + 3 30 3 8 0.46633976140986D+00 -0.17079285289415D-15 + 1 31 3 8 -0.13096970677307D+02 -0.14715174441195D-16 + 2 31 3 8 -0.13619025127797D+02 -0.26678994379632D-16 + 3 31 3 8 -0.25611518728893D+02 0.40427515935534D-15 + 1 32 3 8 0.62185490678857D-01 0.19151270682116D-17 + 2 32 3 8 -0.38755451493193D+00 -0.24948888120962D-17 + 3 32 3 8 -0.52402244393142D+00 0.19075636272071D-15 + 1 33 3 8 -0.78657874930478D-01 -0.22212708167831D-18 + 2 33 3 8 -0.99568015791878D-01 0.26826007641262D-16 + 3 33 3 8 -0.20851766763871D+00 -0.10324656110084D-15 + 1 34 3 8 -0.32289744110740D+01 -0.67729358453852D-18 + 2 34 3 8 -0.13006788073403D+01 -0.34228920507378D-16 + 3 34 3 8 -0.31161797414798D+01 -0.15751741900932D-15 + 1 35 3 8 0.32372407928346D+01 -0.83149472273196D-18 + 2 35 3 8 -0.13043774859262D+01 -0.13573272609355D-16 + 3 35 3 8 -0.31125065002563D+01 0.16793184975453D-15 + 1 36 3 8 -0.68866005259074D-01 -0.88176811168524D-18 + 2 36 3 8 0.44248198131510D-01 0.10539306683069D-16 + 3 36 3 8 -0.26140025060353D+00 -0.31474079081720D-16 + 1 37 3 8 0.65890303523436D-01 0.18356313073114D-17 + 2 37 3 8 0.47616311444370D-01 -0.21695336395744D-16 + 3 37 3 8 -0.21619915347569D+00 -0.21872785317836D-15 + 1 38 3 8 0.32008726391262D+01 -0.49916635852516D-18 + 2 38 3 8 0.14307103494987D+01 0.18532925697774D-16 + 3 38 3 8 -0.30979715045097D+01 -0.24147317471228D-15 + 1 39 3 8 -0.32179128749850D+01 -0.51767358723304D-18 + 2 39 3 8 0.12430520967716D+01 -0.26210346568659D-16 + 3 39 3 8 -0.31266544890534D+01 -0.20030750145738D-15 + 1 40 3 8 0.48878863251808D+00 0.35790316179782D-16 + 2 40 3 8 0.47111525755596D+00 0.18705595090953D-16 + 3 40 3 8 -0.37201695309457D+00 -0.12882151999073D-15 + 1 41 3 8 0.27710318582960D+00 -0.89117958275257D-17 + 2 41 3 8 -0.28569280361857D+00 -0.10522156074609D-17 + 3 41 3 8 0.18807102073722D+00 0.24404270063690D-15 + 1 42 3 8 0.20825616100104D-01 0.42861683955072D-17 + 2 42 3 8 -0.48541681642134D-01 0.24820454389211D-16 + 3 42 3 8 0.24492796035845D+00 -0.85096320002020D-16 + 1 43 3 8 0.53882773265771D+00 -0.30102076366755D-16 + 2 43 3 8 0.55610764499212D+00 -0.90709531004570D-17 + 3 43 3 8 -0.83525506489339D+00 -0.14823371123934D-15 + 1 44 3 8 0.28250092722396D+00 -0.42268747475756D-16 + 2 44 3 8 0.30437217106272D+00 0.29519291534258D-16 + 3 44 3 8 0.49246290484205D+00 0.15216084954222D-15 + 1 45 3 8 0.13738598552669D+02 0.12294641533067D-16 + 2 45 3 8 0.13838939719674D+02 0.23424055147716D-16 + 3 45 3 8 -0.25755365692805D+02 -0.20145918335380D-17 + 1 46 3 8 0.36639941053524D+00 -0.37472401385304D-17 + 2 46 3 8 0.49151781919568D+00 0.13621526214818D-16 + 3 46 3 8 -0.32116000110639D+00 0.58843437949189D-16 + 1 47 3 8 -0.44122789176326D+00 -0.17823392926841D-16 + 2 47 3 8 0.26491264012522D+00 -0.30964468325803D-16 + 3 47 3 8 0.18654111657419D+00 0.37371930745300D-15 + 1 48 3 8 -0.11060314530731D+00 -0.72411972828999D-16 + 2 48 3 8 0.74387259052583D-01 0.28243887879975D-16 + 3 48 3 8 0.52373562507969D-02 -0.36018735812825D-17 + 1 49 3 8 -0.13218851373702D+01 0.10093008478173D-16 + 2 49 3 8 0.13035185751495D+01 -0.61304638539379D-16 + 3 49 3 8 0.30759193700457D+01 -0.12843438851477D-16 + 1 50 3 8 0.19179167582305D+00 0.10202006509255D-15 + 2 50 3 8 0.28673425970043D+00 -0.30117474038350D-16 + 3 50 3 8 0.32936438032625D+00 -0.47367504219124D-16 + 1 51 3 8 0.11850558323564D+01 0.23348377713612D-16 + 2 51 3 8 0.14073185650725D+01 -0.73047267982267D-16 + 3 51 3 8 0.30525156815770D+01 -0.64289127341869D-16 + 1 52 3 8 -0.89465979828499D-01 -0.99967795862068D-16 + 2 52 3 8 -0.14001481061544D+00 -0.99011668109572D-16 + 3 52 3 8 -0.19811576467606D-01 -0.91015186523416D-16 + 1 53 3 8 -0.12922970665964D+01 -0.83058397240835D-16 + 2 53 3 8 -0.13605572144011D+01 0.70299199294817D-16 + 3 53 3 8 0.31665669045344D+01 -0.73623577954374D-16 + 1 54 3 8 0.13479536424726D+00 -0.46419009679654D-16 + 2 54 3 8 -0.93465445648177D-01 0.31337191445886D-16 + 3 54 3 8 -0.15398128284667D-01 0.28607794534442D-16 + 1 55 3 8 0.12343771874599D+01 -0.53071608277337D-16 + 2 55 3 8 -0.12144881578439D+01 0.20665816290960D-16 + 3 55 3 8 0.30102194717558D+01 0.66591626471364D-17 + 1 56 3 8 -0.10707045324182D+00 -0.11748446485641D-16 + 2 56 3 8 -0.49505833736299D-01 -0.11190860165999D-16 + 3 56 3 8 0.32802942366761D+00 -0.28835509457081D-16 + 1 57 3 8 -0.49371812521040D+00 -0.13274865890778D-16 + 2 57 3 8 0.46213141658107D+00 -0.28391093561541D-16 + 3 57 3 8 -0.81832269216946D+00 -0.20612259847104D-15 + 1 58 3 8 -0.43245298590619D+00 0.42548513024074D-16 + 2 58 3 8 0.59167202259456D+00 -0.19883981698615D-16 + 3 58 3 8 -0.31887366055224D+00 0.72052770000817D-16 + 1 59 3 8 -0.22867874047309D+00 -0.31001728645529D-16 + 2 59 3 8 -0.30778667023404D+00 0.17142636989006D-16 + 3 59 3 8 0.19144027554771D+00 0.13271037731905D-15 + 1 60 3 8 -0.38632799622838D+00 0.13034123927505D-16 + 2 60 3 8 0.49852977540938D+00 0.26275754029064D-17 + 3 60 3 8 -0.55330131078286D+00 -0.31593987476348D-16 + 1 61 3 8 0.32566797249811D+00 0.76351782655406D-18 + 2 61 3 8 0.30305418033183D+00 -0.31154341072680D-16 + 3 61 3 8 0.16835463342987D+00 0.12473529847363D-15 + 1 62 3 8 -0.29803704164043D+00 -0.26980896611879D-16 + 2 62 3 8 0.43699935314725D+00 0.27439130997070D-16 + 3 62 3 8 0.62299032448476D+00 -0.56967472015338D-15 + 1 63 3 8 -0.13679113574287D+02 0.12917477965159D-16 + 2 63 3 8 0.13932091528740D+02 -0.26988436563018D-16 + 3 63 3 8 -0.26190006915435D+02 0.69730331292833D-16 + 1 64 3 8 0.88642642302329D-01 -0.15887621554839D-16 + 2 64 3 8 -0.45238333347917D+00 -0.40121666741700D-16 + 3 64 3 8 -0.54441867132872D+00 -0.35349829322248D-15 + 1 65 3 8 0.20997989540765D+00 -0.48315120477935D-16 + 2 65 3 8 -0.35713716539394D+00 0.63941545288443D-16 + 3 65 3 8 -0.28583909973776D+00 0.24604680856394D-16 + 1 1 1 9 0.27072631859939D+00 -0.16038718594790D-15 + 2 1 1 9 0.30498051558179D+00 -0.12129823202692D-17 + 3 1 1 9 -0.26751169750601D+00 -0.18835285200913D-16 + 1 2 1 9 -0.83310310466002D+00 0.15434387528059D-15 + 2 2 1 9 0.36425031176629D+00 -0.11165099638320D-16 + 3 2 1 9 0.50563856021151D+00 0.16914873938980D-16 + 1 3 1 9 -0.27426623157198D+02 0.14776681583596D-15 + 2 3 1 9 0.15049561448618D+02 0.46163716683775D-16 + 3 3 1 9 0.17278320948682D+02 -0.26939328326799D-16 + 1 4 1 9 0.18496338576642D+00 0.54085996879446D-16 + 2 4 1 9 -0.37109140564483D+00 -0.40248325704994D-16 + 3 4 1 9 0.30833421115942D+00 -0.23436662424187D-16 + 1 5 1 9 -0.56228343072503D+00 0.89520410123772D-16 + 2 5 1 9 0.94699525274431D+00 -0.16739839446256D-16 + 3 5 1 9 0.44537504933503D+00 -0.17649776130858D-16 + 1 6 1 9 0.24400776122668D+00 0.52993971693695D-16 + 2 6 1 9 -0.11266806978942D-01 0.40157795031953D-16 + 3 6 1 9 0.24072133695193D-01 -0.16318985334691D-16 + 1 7 1 9 0.48013010771486D+00 0.32566389197972D-17 + 2 7 1 9 0.35256230231846D+00 0.92709653031821D-17 + 3 7 1 9 0.27429826993853D+00 0.10184961108432D-16 + 1 8 1 9 -0.43614168367628D+00 -0.14613528686863D-16 + 2 8 1 9 0.43679527610675D+00 -0.13542230528769D-16 + 3 8 1 9 0.41968061769710D+00 -0.39577772940068D-17 + 1 9 1 9 0.12655789216331D+03 0.00000000000000D+00 + 2 9 1 9 -0.18039498052963D-12 0.00000000000000D+00 + 3 9 1 9 0.37151838294315D-12 0.00000000000000D+00 + 1 10 1 9 -0.22435256830634D+00 0.00000000000000D+00 + 2 10 1 9 -0.41041342037585D-17 0.00000000000000D+00 + 3 10 1 9 0.47699364890307D-17 0.00000000000000D+00 + 1 11 1 9 -0.23862115665347D+00 0.00000000000000D+00 + 2 11 1 9 0.47699690665374D-17 0.00000000000000D+00 + 3 11 1 9 -0.41057626465234D-17 0.00000000000000D+00 + 1 12 1 9 0.15183549128864D+01 0.00000000000000D+00 + 2 12 1 9 0.41303763886505D-17 0.00000000000000D+00 + 3 12 1 9 0.44556372469830D-17 0.00000000000000D+00 + 1 13 1 9 -0.38504165258669D+00 0.00000000000000D+00 + 2 13 1 9 0.53659962891878D-16 0.00000000000000D+00 + 3 13 1 9 0.53659962892007D-16 0.00000000000000D+00 + 1 14 1 9 -0.23868872678234D+00 0.00000000000000D+00 + 2 14 1 9 0.54657247008828D-16 0.00000000000000D+00 + 3 14 1 9 -0.11177451661457D-15 0.00000000000000D+00 + 1 15 1 9 -0.11425496786290D+00 0.00000000000000D+00 + 2 15 1 9 -0.50255445187448D-16 0.00000000000000D+00 + 3 15 1 9 -0.50255441172727D-16 0.00000000000000D+00 + 1 16 1 9 -0.27426623157198D+02 0.17406336951140D-15 + 2 16 1 9 -0.15049561448618D+02 -0.29627000344193D-16 + 3 16 1 9 -0.17278320948681D+02 -0.23375406122163D-16 + 1 17 1 9 0.18496338576641D+00 -0.17897289062909D-15 + 2 17 1 9 0.37109140564484D+00 -0.34383705980767D-16 + 3 17 1 9 -0.30833421115931D+00 0.21818991433418D-16 + 1 18 1 9 0.27072631859927D+00 -0.33424072467704D-16 + 2 18 1 9 -0.30498051558183D+00 -0.18906324469563D-16 + 3 18 1 9 0.26751169750600D+00 0.35661933813663D-16 + 1 19 1 9 -0.83310310465999D+00 -0.11161801454283D-16 + 2 19 1 9 -0.36425031176632D+00 -0.31714283483454D-18 + 3 19 1 9 -0.50563856021149D+00 -0.30603940598727D-16 + 1 20 1 9 0.48013010771479D+00 0.42235148405680D-17 + 2 20 1 9 -0.35256230231852D+00 -0.56043915809613D-17 + 3 20 1 9 -0.27429826993855D+00 -0.73916356672437D-16 + 1 21 1 9 -0.43614168367620D+00 -0.15518488811616D-15 + 2 21 1 9 -0.43679527610675D+00 -0.31976154109453D-16 + 3 21 1 9 -0.41968061769722D+00 -0.65557161777954D-17 + 1 22 1 9 -0.56228343072509D+00 0.19268549695937D-16 + 2 22 1 9 -0.94699525274430D+00 -0.22458902185882D-17 + 3 22 1 9 -0.44537504933503D+00 0.12742663957263D-16 + 1 23 1 9 0.24400776122658D+00 -0.30144427501821D-16 + 2 23 1 9 0.11266806978933D-01 -0.30490758526851D-16 + 3 23 1 9 -0.24072133695184D-01 -0.37577974308375D-16 + 1 24 1 9 0.31603882225366D+01 0.23399633121385D-16 + 2 24 1 9 -0.12736658618096D+01 -0.11011025466184D-16 + 3 24 1 9 0.12141960128470D+01 0.79153903102099D-17 + 1 25 1 9 0.31603882225366D+01 -0.15191270269636D-16 + 2 25 1 9 0.12736658618096D+01 -0.12849363724429D-16 + 3 25 1 9 0.12141960128470D+01 0.23409833058789D-16 + 1 26 1 9 0.31603882225367D+01 -0.10213519616948D-15 + 2 26 1 9 -0.12736658618096D+01 -0.32216090999107D-16 + 3 26 1 9 -0.12141960128470D+01 -0.16738815421027D-16 + 1 27 1 9 0.31603882225367D+01 -0.10752449281624D-15 + 2 27 1 9 0.12736658618096D+01 -0.55150752162063D-17 + 3 27 1 9 -0.12141960128470D+01 0.21015999207935D-16 + 1 28 1 9 -0.10863527376635D-01 -0.34859089791367D-16 + 2 28 1 9 -0.91806944844040D-01 -0.14559193377434D-16 + 3 28 1 9 0.12009469417863D+00 0.47401403639176D-18 + 1 29 1 9 -0.10863527376638D-01 -0.16624182388863D-15 + 2 29 1 9 0.91806944844036D-01 -0.20574873137753D-16 + 3 29 1 9 0.12009469417863D+00 -0.86921867300014D-17 + 1 30 1 9 -0.10863527376644D-01 -0.35768813994733D-15 + 2 30 1 9 -0.91806944844036D-01 0.56764969524326D-18 + 3 30 1 9 -0.12009469417863D+00 -0.28984488688723D-16 + 1 31 1 9 -0.10863527376642D-01 0.10393025178849D-15 + 2 31 1 9 0.91806944844045D-01 -0.24643572717846D-16 + 3 31 1 9 -0.12009469417863D+00 0.49369519913294D-17 + 1 32 1 9 -0.56232000950253D+00 0.27402323278100D-16 + 2 32 1 9 -0.94688371612197D+00 -0.21214575040957D-16 + 3 32 1 9 0.44560814829238D+00 0.92206355999421D-16 + 1 33 1 9 0.24418805971230D+00 -0.33092714244147D-16 + 2 33 1 9 0.11047342883850D-01 -0.14880717471129D-16 + 3 33 1 9 0.24056900733651D-01 0.33076345073557D-16 + 1 34 1 9 0.47997529044066D+00 -0.85645168849645D-16 + 2 34 1 9 -0.35229755184921D+00 -0.33421074567124D-16 + 3 34 1 9 0.27417204537268D+00 0.25355105717409D-16 + 1 35 1 9 -0.43635665931269D+00 -0.21020170521127D-15 + 2 35 1 9 -0.43661313731031D+00 -0.49648537606008D-17 + 3 35 1 9 0.41988319625710D+00 -0.22988367902172D-16 + 1 36 1 9 0.27079361319602D+00 0.11268913442163D-15 + 2 36 1 9 -0.30507985202560D+00 0.32429068438163D-16 + 3 36 1 9 -0.26752309199540D+00 0.18217404152592D-16 + 1 37 1 9 -0.83349558433374D+00 -0.62801605276868D-16 + 2 37 1 9 -0.36362300977472D+00 -0.69286150607845D-17 + 3 37 1 9 0.50546147913438D+00 0.32561148805598D-17 + 1 38 1 9 -0.27427711397607D+02 0.10644665508403D-15 + 2 38 1 9 -0.15051561226099D+02 0.10734080061764D-17 + 3 38 1 9 0.17278865142432D+02 0.34452124441730D-16 + 1 39 1 9 0.18528448134062D+00 -0.12205409023412D-15 + 2 39 1 9 0.37105522615205D+00 -0.29658180572591D-16 + 3 39 1 9 0.30833402292315D+00 -0.15508478862139D-16 + 1 40 1 9 -0.30647115086679D+01 -0.18150126105403D-17 + 2 40 1 9 0.15562468678296D+01 0.10592501904292D-18 + 3 40 1 9 0.31071750059116D+01 -0.98355234512635D-18 + 1 41 1 9 -0.30647115086679D+01 -0.75453547203483D-16 + 2 41 1 9 -0.15562468678296D+01 -0.86607074969480D-16 + 3 41 1 9 -0.31071750059116D+01 -0.17158800735280D-17 + 1 42 1 9 -0.11874443038822D+00 0.29971951652724D-15 + 2 42 1 9 0.56111524358577D-01 -0.48520626610027D-16 + 3 42 1 9 -0.82043198351641D-01 -0.11475581028818D-17 + 1 43 1 9 -0.11874443038822D+00 -0.28363901688803D-15 + 2 43 1 9 -0.56111524358573D-01 0.86437062020934D-16 + 3 43 1 9 0.82043198351641D-01 -0.21512740629923D-17 + 1 44 1 9 -0.30647115086679D+01 0.16564852167222D-15 + 2 44 1 9 0.15562468678296D+01 0.60677549031314D-16 + 3 44 1 9 -0.31071750059116D+01 0.75972518946481D-18 + 1 45 1 9 -0.30647115086679D+01 0.89915916373200D-16 + 2 45 1 9 -0.15562468678296D+01 -0.12250362154077D-16 + 3 45 1 9 0.31071750059116D+01 0.12639911444779D-17 + 1 46 1 9 -0.11874443038823D+00 -0.22942942391787D-15 + 2 46 1 9 0.56111524358578D-01 0.34319548703003D-16 + 3 46 1 9 0.82043198351639D-01 0.28138287857655D-17 + 1 47 1 9 -0.11874443038823D+00 -0.20971230957243D-15 + 2 47 1 9 -0.56111524358577D-01 0.76960897261796D-16 + 3 47 1 9 -0.82043198351642D-01 0.28787443710269D-17 + 1 48 1 9 0.47997529044098D+00 -0.88661866954190D-17 + 2 48 1 9 0.35229755184922D+00 -0.22653573527659D-17 + 3 48 1 9 -0.27417204537270D+00 0.23834477390368D-16 + 1 49 1 9 -0.43635665931277D+00 -0.32007491774637D-16 + 2 49 1 9 0.43661313731034D+00 -0.67703169327687D-17 + 3 49 1 9 -0.41988319625712D+00 -0.76286806420698D-17 + 1 50 1 9 -0.56232000950251D+00 -0.67391493750199D-17 + 2 50 1 9 0.94688371612199D+00 -0.31047691536221D-17 + 3 50 1 9 -0.44560814829235D+00 0.17307513716032D-16 + 1 51 1 9 0.24418805971223D+00 0.17787207567716D-15 + 2 51 1 9 -0.11047342883856D-01 -0.17042206556400D-16 + 3 51 1 9 -0.24056900733661D-01 0.22536656263372D-16 + 1 52 1 9 -0.27427711397607D+02 -0.15892376926494D-15 + 2 52 1 9 0.15051561226099D+02 -0.20400171449889D-16 + 3 52 1 9 -0.17278865142432D+02 -0.17545039566570D-16 + 1 53 1 9 0.18528448134060D+00 -0.12192005905119D-15 + 2 53 1 9 -0.37105522615204D+00 0.33758255969698D-16 + 3 53 1 9 -0.30833402292337D+00 0.21590991876485D-16 + 1 54 1 9 0.27079361319600D+00 0.16060309709221D-15 + 2 54 1 9 0.30507985202541D+00 -0.14572803111691D-16 + 3 54 1 9 0.26752309199543D+00 0.24002616973012D-16 + 1 55 1 9 -0.83349558433375D+00 -0.16505996384568D-15 + 2 55 1 9 0.36362300977471D+00 -0.13415938555063D-16 + 3 55 1 9 -0.50546147913437D+00 -0.26120879159792D-16 + 1 56 1 9 -0.32157297915032D+01 0.28862264544491D-15 + 2 56 1 9 -0.35469120189638D+01 -0.34748395214895D-17 + 3 56 1 9 -0.12482638357656D+01 0.78875362730569D-17 + 1 57 1 9 -0.26513434349829D+00 0.12004585210381D-15 + 2 57 1 9 0.65195109669494D-01 -0.40365919162987D-17 + 3 57 1 9 -0.12442806753827D+00 -0.48386833505338D-16 + 1 58 1 9 -0.32157297915033D+01 -0.29258993411946D-15 + 2 58 1 9 0.35469120189638D+01 -0.36688449197284D-17 + 3 58 1 9 0.12482638357656D+01 -0.37706699677732D-16 + 1 59 1 9 -0.26513434349829D+00 0.13300354781411D-15 + 2 59 1 9 -0.65195109669495D-01 -0.74174375154343D-18 + 3 59 1 9 0.12442806753827D+00 -0.52091463064516D-16 + 1 60 1 9 -0.32157297915033D+01 0.15665293911439D-16 + 2 60 1 9 0.35469120189638D+01 -0.97219697898871D-18 + 3 60 1 9 -0.12482638357656D+01 0.89893251582708D-17 + 1 61 1 9 -0.26513434349829D+00 0.22559888723100D-15 + 2 61 1 9 -0.65195109669496D-01 0.13895768817786D-17 + 3 61 1 9 -0.12442806753827D+00 0.78498016200157D-16 + 1 62 1 9 -0.32157297915033D+01 0.33249973732329D-16 + 2 62 1 9 -0.35469120189637D+01 -0.92573431282642D-18 + 3 62 1 9 0.12482638357656D+01 0.67725558056853D-16 + 1 63 1 9 -0.26513434349829D+00 0.12832985468894D-15 + 2 63 1 9 0.65195109669495D-01 -0.24342238412722D-17 + 3 63 1 9 0.12442806753827D+00 -0.87287414036825D-16 + 1 64 1 9 -0.36356106870793D+00 -0.69442641050670D-16 + 2 64 1 9 0.42999713967374D-02 0.30583606325883D-16 + 3 64 1 9 -0.18694212995449D-16 -0.19020576312322D-16 + 1 65 1 9 -0.36356106870793D+00 -0.58511120797655D-17 + 2 65 1 9 -0.42999713967373D-02 -0.57322510123835D-16 + 3 65 1 9 0.33709003900440D-15 0.29227716158023D-16 + 2 67 1 9 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 9 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 9 0.31256916911060D+00 -0.12129823202692D-17 + 2 1 2 9 0.39805385148678D+00 0.30980552133874D-15 + 3 1 2 9 -0.24199224370542D+00 -0.80891592184750D-17 + 1 2 2 9 0.49860176723086D+00 -0.11165099638320D-16 + 2 2 2 9 -0.44110165423260D+00 0.13953190038935D-15 + 3 2 2 9 -0.33310674753374D+00 0.25721257747057D-17 + 1 3 2 9 0.15029971305917D+02 0.46163716683775D-16 + 2 3 2 9 -0.26971487657406D+02 0.50367791507813D-16 + 3 3 2 9 -0.17165288984837D+02 0.35500373906946D-16 + 1 4 2 9 -0.36863095759641D+00 -0.40248325704994D-16 + 2 4 2 9 0.18886149498240D+00 0.33149114748295D-16 + 3 4 2 9 -0.32853382357376D+00 0.30518762387786D-16 + 1 5 2 9 0.84689654062457D+00 -0.16739839446256D-16 + 2 5 2 9 -0.80139593358100D+00 -0.46709872466551D-16 + 3 5 2 9 -0.34902446133750D+00 0.85174793550376D-16 + 1 6 2 9 -0.37230511438906D-01 0.40157795031953D-16 + 2 6 2 9 0.26346517888124D+00 0.16664126342138D-15 + 3 6 2 9 -0.46328043538558D-01 -0.25495132850317D-16 + 1 7 2 9 0.32762621479200D+00 0.92709653031821D-17 + 2 7 2 9 0.25970597428466D+00 0.66651967256610D-16 + 3 7 2 9 0.28470708887522D+00 -0.13404599624566D-16 + 1 8 2 9 0.41949172230350D+00 -0.13542230528769D-16 + 2 8 2 9 -0.85536555934429D+00 -0.12766960281779D-16 + 3 8 2 9 -0.50897213131086D+00 0.96305435434526D-17 + 1 9 2 9 -0.18039498052963D-12 0.00000000000000D+00 + 2 9 2 9 0.12592164562478D+03 0.00000000000000D+00 + 3 9 2 9 0.11462601957671D-12 0.00000000000000D+00 + 1 10 2 9 -0.41041342037585D-17 0.00000000000000D+00 + 2 10 2 9 -0.22331830613038D+00 0.00000000000000D+00 + 3 10 2 9 -0.39823390513337D-16 0.00000000000000D+00 + 1 11 2 9 0.47699690665374D-17 0.00000000000000D+00 + 2 11 2 9 -0.39753486030274D+00 0.00000000000000D+00 + 3 11 2 9 0.42104183724603D-16 0.00000000000000D+00 + 1 12 2 9 0.41303763886505D-17 0.00000000000000D+00 + 2 12 2 9 0.16927268388423D-01 0.00000000000000D+00 + 3 12 2 9 -0.11715141888139D-15 0.00000000000000D+00 + 1 13 2 9 0.53659962891878D-16 0.00000000000000D+00 + 2 13 2 9 -0.25311509865131D+00 0.00000000000000D+00 + 3 13 2 9 -0.44739857569419D-16 0.00000000000000D+00 + 1 14 2 9 0.54657247008828D-16 0.00000000000000D+00 + 2 14 2 9 0.16683078642020D+01 0.00000000000000D+00 + 3 14 2 9 0.44624519882528D-16 0.00000000000000D+00 + 1 15 2 9 -0.50255445187448D-16 0.00000000000000D+00 + 2 15 2 9 -0.11499319188834D+00 0.00000000000000D+00 + 3 15 2 9 -0.49055300179113D-16 0.00000000000000D+00 + 1 16 2 9 -0.15032249132810D+02 -0.29627000344193D-16 + 2 16 2 9 -0.26974964152212D+02 0.71751027179534D-16 + 3 16 2 9 -0.17169565845266D+02 0.47185929694469D-17 + 1 17 2 9 0.36852065360139D+00 -0.34383705980767D-16 + 2 17 2 9 0.18898296290152D+00 0.38112237532900D-16 + 3 17 2 9 -0.32822659856300D+00 -0.95282557747149D-16 + 1 18 2 9 -0.31256048530873D+00 -0.18906324469563D-16 + 2 18 2 9 0.39811475328338D+00 0.10913818823619D-15 + 3 18 2 9 -0.24159438333840D+00 -0.86456464550246D-17 + 1 19 2 9 -0.49913858175078D+00 -0.31714283483454D-18 + 2 19 2 9 -0.44041456558748D+00 0.25653730182641D-16 + 3 19 2 9 -0.33284657748139D+00 0.18651602004643D-16 + 1 20 2 9 -0.32736140817266D+00 -0.56043915809613D-17 + 2 20 2 9 0.25949803950828D+00 0.10466817814450D-15 + 3 20 2 9 0.28486509201647D+00 0.33818284778258D-16 + 1 21 2 9 -0.41934053875374D+00 -0.31976154109453D-16 + 2 21 2 9 -0.85626137921023D+00 0.12364026528466D-15 + 3 21 2 9 -0.50875028205128D+00 0.31462514489628D-16 + 1 22 2 9 -0.84721126622973D+00 -0.22458902185882D-17 + 2 22 2 9 -0.80157981776842D+00 -0.60652138471661D-16 + 3 22 2 9 -0.34830850014408D+00 0.31302308348218D-16 + 1 23 2 9 0.37257383673286D-01 -0.30490758526851D-16 + 2 23 2 9 0.26366575977793D+00 -0.17546275416807D-15 + 3 23 2 9 -0.46569947723825D-01 -0.57184456132522D-16 + 1 24 2 9 0.14802558918028D+01 -0.11011025466184D-16 + 2 24 2 9 -0.30276658115095D+01 0.30215739514955D-15 + 3 24 2 9 0.30445700307219D+01 0.53273806537956D-17 + 1 25 2 9 -0.14802558918028D+01 -0.12849363724429D-16 + 2 25 2 9 -0.30276658115095D+01 -0.15098295002518D-15 + 3 25 2 9 -0.30445700307219D+01 0.12016031868777D-17 + 1 26 2 9 0.14802558918028D+01 -0.32216090999107D-16 + 2 26 2 9 -0.30276658115095D+01 0.34592847976135D-16 + 3 26 2 9 -0.30445700307219D+01 -0.28742989020754D-17 + 1 27 2 9 -0.14802558918028D+01 -0.55150752162063D-17 + 2 27 2 9 -0.30276658115095D+01 0.72846128637060D-16 + 3 27 2 9 0.30445700307219D+01 -0.49186108450196D-17 + 1 28 2 9 0.90909879638169D-01 -0.14559193377434D-16 + 2 28 2 9 -0.23173472146340D+00 -0.13843041248134D-15 + 3 28 2 9 -0.89360005662856D-01 -0.10744295802394D-17 + 1 29 2 9 -0.90909879638172D-01 -0.20574873137753D-16 + 2 29 2 9 -0.23173472146340D+00 -0.77909026326548D-16 + 3 29 2 9 0.89360005662855D-01 -0.18501324130575D-17 + 1 30 2 9 0.90909879638172D-01 0.56764969524326D-18 + 2 30 2 9 -0.23173472146340D+00 -0.11239459493054D-15 + 3 30 2 9 0.89360005662854D-01 -0.50889169811470D-18 + 1 31 2 9 -0.90909879638164D-01 -0.24643572717846D-16 + 2 31 2 9 -0.23173472146340D+00 -0.20941337634736D-16 + 3 31 2 9 -0.89360005662854D-01 -0.12596113875444D-17 + 1 32 2 9 -0.84689654062463D+00 -0.21214575040957D-16 + 2 32 2 9 -0.80139593358095D+00 0.84488653600363D-16 + 3 32 2 9 0.34902446133751D+00 -0.49864308216514D-17 + 1 33 2 9 0.37230511438893D-01 -0.14880717471129D-16 + 2 33 2 9 0.26346517888120D+00 0.39374811472842D-16 + 3 33 2 9 0.46328043538546D-01 -0.22680354752852D-17 + 1 34 2 9 -0.32762621479200D+00 -0.33421074567124D-16 + 2 34 2 9 0.25970597428464D+00 -0.25117852933722D-16 + 3 34 2 9 -0.28470708887521D+00 0.75888933869483D-16 + 1 35 2 9 -0.41949172230349D+00 -0.49648537606008D-17 + 2 35 2 9 -0.85536555934433D+00 -0.22863209464478D-16 + 3 35 2 9 0.50897213131086D+00 -0.20933861175805D-16 + 1 36 2 9 -0.31256916911063D+00 0.32429068438163D-16 + 2 36 2 9 0.39805385148685D+00 0.35453381903885D-16 + 3 36 2 9 0.24199224370535D+00 -0.33193414310384D-16 + 1 37 2 9 -0.49860176723088D+00 -0.69286150607845D-17 + 2 37 2 9 -0.44110165423258D+00 0.23497868986895D-15 + 3 37 2 9 0.33310674753368D+00 -0.18546427947075D-16 + 1 38 2 9 -0.15029971305918D+02 0.10734080061764D-17 + 2 38 2 9 -0.26971487657406D+02 -0.93111136681436D-16 + 3 38 2 9 0.17165288984837D+02 -0.27389371437950D-16 + 1 39 2 9 0.36863095759641D+00 -0.29658180572591D-16 + 2 39 2 9 0.18886149498240D+00 0.16049018031884D-15 + 3 39 2 9 0.32853382357380D+00 0.32364449945671D-16 + 1 40 2 9 -0.13761677586902D+01 0.10592501904292D-18 + 2 40 2 9 0.31319582770427D+01 -0.40002441811356D-16 + 3 40 2 9 0.12023475815095D+01 -0.21568352831625D-16 + 1 41 2 9 0.13761677586902D+01 -0.86607074969480D-16 + 2 41 2 9 0.31319582770427D+01 0.12055363026128D-16 + 3 41 2 9 0.12023475815095D+01 0.11870513696608D-18 + 1 42 2 9 -0.12365796421604D+00 -0.48520626610027D-16 + 2 42 2 9 0.28004815274248D-01 0.64520447814304D-16 + 3 42 2 9 0.71194922581207D-01 -0.33034459700613D-16 + 1 43 2 9 0.12365796421604D+00 0.86437062020934D-16 + 2 43 2 9 0.28004815274237D-01 0.34862216455817D-15 + 3 43 2 9 0.71194922581209D-01 0.10369103753478D-16 + 1 44 2 9 -0.13761677586902D+01 0.60677549031314D-16 + 2 44 2 9 0.31319582770427D+01 -0.45215952440901D-17 + 3 44 2 9 -0.12023475815095D+01 -0.18105397992336D-16 + 1 45 2 9 0.13761677586902D+01 -0.12250362154077D-16 + 2 45 2 9 0.31319582770427D+01 -0.17400240454488D-15 + 3 45 2 9 -0.12023475815095D+01 -0.10150272777360D-16 + 1 46 2 9 -0.12365796421604D+00 0.34319548703003D-16 + 2 46 2 9 0.28004815274252D-01 0.14069494289348D-15 + 3 46 2 9 -0.71194922581208D-01 -0.11196069705050D-17 + 1 47 2 9 0.12365796421604D+00 0.76960897261796D-16 + 2 47 2 9 0.28004815274248D-01 -0.17545667213096D-15 + 3 47 2 9 -0.71194922581207D-01 -0.32400901135083D-16 + 1 48 2 9 0.32736140817283D+00 -0.22653573527659D-17 + 2 48 2 9 0.25949803950822D+00 0.17867790429620D-15 + 3 48 2 9 -0.28486509201649D+00 -0.21854478682646D-16 + 1 49 2 9 0.41934053875375D+00 -0.67703169327687D-17 + 2 49 2 9 -0.85626137921028D+00 0.16389395497926D-16 + 3 49 2 9 0.50875028205127D+00 -0.14049695688300D-16 + 1 50 2 9 0.84721126622977D+00 -0.31047691536221D-17 + 2 50 2 9 -0.80157981776837D+00 0.56563523074967D-16 + 3 50 2 9 0.34830850014410D+00 -0.15221818973714D-16 + 1 51 2 9 -0.37257383673283D-01 -0.17042206556400D-16 + 2 51 2 9 0.26366575977786D+00 0.49732111925897D-16 + 3 51 2 9 0.46569947723850D-01 -0.96609208783182D-17 + 1 52 2 9 0.15032249132809D+02 -0.20400171449889D-16 + 2 52 2 9 -0.26974964152212D+02 -0.79621188924878D-17 + 3 52 2 9 0.17169565845266D+02 0.44092020321532D-17 + 1 53 2 9 -0.36852065360136D+00 0.33758255969698D-16 + 2 53 2 9 0.18898296290150D+00 -0.11862556469000D-16 + 3 53 2 9 0.32822659856280D+00 0.38947262876927D-17 + 1 54 2 9 0.31256048530872D+00 -0.14572803111691D-16 + 2 54 2 9 0.39811475328337D+00 -0.38503677084251D-15 + 3 54 2 9 0.24159438333840D+00 -0.12130549778556D-17 + 1 55 2 9 0.49913858175077D+00 -0.13415938555063D-16 + 2 55 2 9 -0.44041456558728D+00 -0.23677621403943D-15 + 3 55 2 9 0.33284657748148D+00 0.82775319161531D-17 + 1 56 2 9 -0.37358331173980D+01 -0.34748395214895D-17 + 2 56 2 9 -0.33903977200178D+01 -0.25583508137665D-15 + 3 56 2 9 -0.12067952504781D+01 0.24487561280582D-16 + 1 57 2 9 0.88364808457841D-01 -0.40365919162987D-17 + 2 57 2 9 -0.25204749713280D+00 -0.94873864558969D-16 + 3 57 2 9 -0.11706295729564D+00 0.17179644584599D-16 + 1 58 2 9 0.37358331173981D+01 -0.36688449197284D-17 + 2 58 2 9 -0.33903977200179D+01 0.58595462122006D-16 + 3 58 2 9 -0.12067952504781D+01 -0.67428187412242D-17 + 1 59 2 9 -0.88364808457841D-01 -0.74174375154343D-18 + 2 59 2 9 -0.25204749713281D+00 -0.68956463646503D-16 + 3 59 2 9 -0.11706295729564D+00 -0.27140105810237D-16 + 1 60 2 9 0.37358331173980D+01 -0.97219697898871D-18 + 2 60 2 9 -0.33903977200178D+01 0.24979812108219D-15 + 3 60 2 9 0.12067952504781D+01 -0.36302515733699D-16 + 1 61 2 9 -0.88364808457842D-01 0.13895768817786D-17 + 2 61 2 9 -0.25204749713281D+00 -0.11917650429107D-15 + 3 61 2 9 0.11706295729564D+00 0.85854818526788D-16 + 1 62 2 9 -0.37358331173980D+01 -0.92573431282642D-18 + 2 62 2 9 -0.33903977200178D+01 -0.49391588302002D-17 + 3 62 2 9 0.12067952504781D+01 -0.15755432603638D-16 + 1 63 2 9 0.88364808457842D-01 -0.24342238412722D-17 + 2 63 2 9 -0.25204749713281D+00 -0.14715718229784D-15 + 3 63 2 9 0.11706295729564D+00 0.83232233804305D-17 + 1 64 2 9 0.44350387553471D-15 0.30583606325883D-16 + 2 64 2 9 -0.27948941140906D-01 -0.12935545702592D-16 + 3 64 2 9 0.14300404567818D+00 -0.15233575881923D-17 + 1 65 2 9 -0.35369490152139D-15 -0.57322510123835D-16 + 2 65 2 9 -0.27948941140906D-01 0.12211121781260D-17 + 3 65 2 9 -0.14300404567818D+00 0.13118918459181D-17 + 1 67 2 9 0.00000000000000D+00 0.00000000000000D+00 + 3 67 2 9 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 9 -0.30357372278450D+00 -0.18835285200913D-16 + 2 1 3 9 -0.21427852513037D+00 -0.80891592184750D-17 + 3 1 3 9 0.10545375499441D+00 -0.87322810112211D-16 + 1 2 3 9 0.62977614684491D+00 0.16914873938980D-16 + 2 2 3 9 -0.38152268192090D+00 0.25721257747057D-17 + 3 2 3 9 -0.29904993474147D+00 0.17783642627654D-16 + 1 3 3 9 0.17262113001736D+02 -0.26939328326799D-16 + 2 3 3 9 -0.17191015790917D+02 0.35500373906946D-16 + 3 3 3 9 -0.28264265805571D+02 0.23841995694175D-15 + 1 4 3 9 0.31950747315450D+00 -0.23436662424187D-16 + 2 4 3 9 -0.31080049433589D+00 0.30518762387786D-16 + 3 4 3 9 0.61690564411058D+00 0.28216088482957D-15 + 1 5 3 9 0.60849755258757D+00 -0.17649776130858D-16 + 2 5 3 9 -0.95887137638926D+00 0.85174793550376D-16 + 3 5 3 9 -0.31366955960619D+00 -0.22721968901055D-15 + 1 6 3 9 -0.13187086874675D-02 -0.16318985334691D-16 + 2 6 3 9 -0.12652840085354D-01 -0.25495132850317D-16 + 3 6 3 9 0.26293960391364D+00 0.30019129141926D-15 + 1 7 3 9 0.26610454512720D+00 0.10184961108432D-16 + 2 7 3 9 0.25496134102405D+00 -0.13404599624566D-16 + 3 7 3 9 0.12684713898619D+00 0.29260712712233D-15 + 1 8 3 9 0.44407962521095D+00 -0.39577772940068D-17 + 2 8 3 9 -0.51189089304038D+00 0.96305435434526D-17 + 3 8 3 9 -0.36794449471740D+00 0.25064264592086D-15 + 1 9 3 9 0.37151838294315D-12 0.00000000000000D+00 + 2 9 3 9 0.11462601957671D-12 0.00000000000000D+00 + 3 9 3 9 0.12797417671690D+03 0.00000000000000D+00 + 1 10 3 9 0.47699364890307D-17 0.00000000000000D+00 + 2 10 3 9 -0.39823390513337D-16 0.00000000000000D+00 + 3 10 3 9 -0.40232168778518D+00 0.00000000000000D+00 + 1 11 3 9 -0.41057626465234D-17 0.00000000000000D+00 + 2 11 3 9 0.42104183724603D-16 0.00000000000000D+00 + 3 11 3 9 -0.19408220979434D+00 0.00000000000000D+00 + 1 12 3 9 0.44556372469830D-17 0.00000000000000D+00 + 2 12 3 9 -0.11715141888139D-15 0.00000000000000D+00 + 3 12 3 9 0.16927268388423D-01 0.00000000000000D+00 + 1 13 3 9 0.53659962892007D-16 0.00000000000000D+00 + 2 13 3 9 -0.44739857569419D-16 0.00000000000000D+00 + 3 13 3 9 -0.16236930026856D+00 0.00000000000000D+00 + 1 14 3 9 -0.11177451661457D-15 0.00000000000000D+00 + 2 14 3 9 0.44624519882528D-16 0.00000000000000D+00 + 3 14 3 9 -0.12812857450091D+00 0.00000000000000D+00 + 1 15 3 9 -0.50255441172727D-16 0.00000000000000D+00 + 2 15 3 9 -0.49055300179113D-16 0.00000000000000D+00 + 3 15 3 9 -0.12442641598040D+00 0.00000000000000D+00 + 1 16 3 9 -0.17262832939096D+02 -0.23375406122163D-16 + 2 16 3 9 -0.17190403093691D+02 0.47185929694469D-17 + 3 16 3 9 -0.28264641631261D+02 0.42270193716413D-16 + 1 17 3 9 -0.31925795325274D+00 0.21818991433418D-16 + 2 17 3 9 -0.31104234728638D+00 -0.95282557747149D-16 + 3 17 3 9 0.61772233205188D+00 0.92100912090057D-16 + 1 18 3 9 0.30352078099334D+00 0.35661933813663D-16 + 2 18 3 9 -0.21433759979020D+00 -0.86456464550246D-17 + 3 18 3 9 0.10527633078766D+00 -0.18860569529777D-16 + 1 19 3 9 -0.63008529094649D+00 -0.30603940598727D-16 + 2 19 3 9 -0.38138797260350D+00 0.18651602004643D-16 + 3 19 3 9 -0.29938558297940D+00 0.82424477377828D-16 + 1 20 3 9 -0.26615944633488D+00 -0.73916356672437D-16 + 2 20 3 9 0.25535070192153D+00 0.33818284778258D-16 + 3 20 3 9 0.12690873433396D+00 -0.11028656374174D-15 + 1 21 3 9 -0.44350778402487D+00 -0.65557161777954D-17 + 2 21 3 9 -0.51178873765866D+00 0.31462514489628D-16 + 3 21 3 9 -0.36743877496784D+00 -0.70572249777347D-16 + 1 22 3 9 -0.60779202275348D+00 0.12742663957263D-16 + 2 22 3 9 -0.95946071343017D+00 0.31302308348218D-16 + 3 22 3 9 -0.31369810913834D+00 -0.11059587376715D-15 + 1 23 3 9 0.11820483903233D-02 -0.37577974308375D-16 + 2 23 3 9 -0.12569101045152D-01 -0.57184456132522D-16 + 3 23 3 9 0.26287090764838D+00 0.78830908128623D-17 + 1 24 3 9 -0.13869504330320D+01 0.79153903102099D-17 + 2 24 3 9 0.31659104506731D+01 0.53273806537956D-17 + 3 24 3 9 -0.31247164711463D+01 -0.21804089487914D-15 + 1 25 3 9 -0.13869504330320D+01 0.23409833058789D-16 + 2 25 3 9 -0.31659104506731D+01 0.12016031868777D-17 + 3 25 3 9 -0.31247164711463D+01 0.68663804467432D-16 + 1 26 3 9 0.13869504330320D+01 -0.16738815421027D-16 + 2 26 3 9 -0.31659104506731D+01 -0.28742989020754D-17 + 3 26 3 9 -0.31247164711463D+01 -0.13984782013686D-15 + 1 27 3 9 0.13869504330320D+01 0.21015999207935D-16 + 2 27 3 9 0.31659104506731D+01 -0.49186108450196D-17 + 3 27 3 9 -0.31247164711463D+01 0.13289948653058D-15 + 1 28 3 9 -0.62933397444488D-01 0.47401403639176D-18 + 2 28 3 9 -0.10486334114901D-01 -0.10744295802394D-17 + 3 28 3 9 -0.17372529719519D+00 0.16536512386979D-15 + 1 29 3 9 -0.62933397444493D-01 -0.86921867300014D-17 + 2 29 3 9 0.10486334114900D-01 -0.18501324130575D-17 + 3 29 3 9 -0.17372529719519D+00 0.27868179645066D-16 + 1 30 3 9 0.62933397444493D-01 -0.28984488688723D-16 + 2 30 3 9 0.10486334114900D-01 -0.50889169811470D-18 + 3 30 3 9 -0.17372529719519D+00 0.27440634083373D-16 + 1 31 3 9 0.62933397444485D-01 0.49369519913294D-17 + 2 31 3 9 -0.10486334114899D-01 -0.12596113875444D-17 + 3 31 3 9 -0.17372529719519D+00 0.20356197859474D-15 + 1 32 3 9 0.60779202275352D+00 0.92206355999421D-16 + 2 32 3 9 0.95946071343017D+00 -0.49864308216514D-17 + 3 32 3 9 -0.31369810913833D+00 0.25886014154773D-15 + 1 33 3 9 -0.11820483903258D-02 0.33076345073557D-16 + 2 33 3 9 0.12569101045166D-01 -0.22680354752852D-17 + 3 33 3 9 0.26287090764835D+00 0.38232907234859D-16 + 1 34 3 9 0.26615944633486D+00 0.25355105717409D-16 + 2 34 3 9 -0.25535070192155D+00 0.75888933869483D-16 + 3 34 3 9 0.12690873433395D+00 -0.13612709790614D-16 + 1 35 3 9 0.44350778402486D+00 -0.22988367902172D-16 + 2 35 3 9 0.51178873765864D+00 -0.20933861175805D-16 + 3 35 3 9 -0.36743877496782D+00 -0.11766496005681D-15 + 1 36 3 9 -0.30352078099336D+00 0.18217404152592D-16 + 2 36 3 9 0.21433759979022D+00 -0.33193414310384D-16 + 3 36 3 9 0.10527633078764D+00 -0.61212377498826D-17 + 1 37 3 9 0.63008529094648D+00 0.32561148805598D-17 + 2 37 3 9 0.38138797260346D+00 -0.18546427947075D-16 + 3 37 3 9 -0.29938558297942D+00 0.13675622157276D-15 + 1 38 3 9 0.17262832939096D+02 0.34452124441730D-16 + 2 38 3 9 0.17190403093691D+02 -0.27389371437950D-16 + 3 38 3 9 -0.28264641631261D+02 0.51579612098855D-16 + 1 39 3 9 0.31925795325274D+00 -0.15508478862139D-16 + 2 39 3 9 0.31104234728639D+00 0.32364449945671D-16 + 3 39 3 9 0.61772233205186D+00 -0.43480744529304D-15 + 1 40 3 9 0.30596651663490D+01 -0.98355234512635D-18 + 2 40 3 9 -0.13228488051543D+01 -0.21568352831625D-16 + 3 40 3 9 -0.30652285689547D+01 -0.52768858823046D-16 + 1 41 3 9 -0.30596651663490D+01 -0.17158800735280D-17 + 2 41 3 9 -0.13228488051543D+01 0.11870513696608D-18 + 3 41 3 9 -0.30652285689548D+01 0.10318784383395D-15 + 1 42 3 9 0.80597005297447D-01 -0.11475581028818D-17 + 2 42 3 9 -0.23773955807572D+00 -0.33034459700613D-16 + 3 42 3 9 -0.16993298888397D+00 0.80652245548283D-17 + 1 43 3 9 -0.80597005297447D-01 -0.21512740629923D-17 + 2 43 3 9 -0.23773955807572D+00 0.10369103753478D-16 + 3 43 3 9 -0.16993298888397D+00 -0.11947129736785D-15 + 1 44 3 9 -0.30596651663489D+01 0.75972518946481D-18 + 2 44 3 9 0.13228488051543D+01 -0.18105397992336D-16 + 3 44 3 9 -0.30652285689548D+01 -0.33364457037644D-16 + 1 45 3 9 0.30596651663489D+01 0.12639911444779D-17 + 2 45 3 9 0.13228488051543D+01 -0.10150272777360D-16 + 3 45 3 9 -0.30652285689548D+01 -0.28389870252722D-15 + 1 46 3 9 -0.80597005297448D-01 0.28138287857655D-17 + 2 46 3 9 0.23773955807572D+00 -0.11196069705050D-17 + 3 46 3 9 -0.16993298888397D+00 0.87370435711185D-15 + 1 47 3 9 0.80597005297445D-01 0.28787443710269D-17 + 2 47 3 9 0.23773955807573D+00 -0.32400901135083D-16 + 3 47 3 9 -0.16993298888397D+00 -0.40845300101640D-15 + 1 48 3 9 -0.26610454512719D+00 0.23834477390368D-16 + 2 48 3 9 -0.25496134102411D+00 -0.21854478682646D-16 + 3 48 3 9 0.12684713898616D+00 -0.10819962679896D-15 + 1 49 3 9 -0.44407962521093D+00 -0.76286806420698D-17 + 2 49 3 9 0.51189089304039D+00 -0.14049695688300D-16 + 3 49 3 9 -0.36794449471739D+00 -0.27580380621793D-16 + 1 50 3 9 -0.60849755258757D+00 0.17307513716032D-16 + 2 50 3 9 0.95887137638927D+00 -0.15221818973714D-16 + 3 50 3 9 -0.31366955960617D+00 0.69913616306126D-16 + 1 51 3 9 0.13187086874673D-02 0.22536656263372D-16 + 2 51 3 9 0.12652840085365D-01 -0.96609208783182D-17 + 3 51 3 9 0.26293960391367D+00 0.11973468135823D-15 + 1 52 3 9 -0.17262113001736D+02 -0.17545039566570D-16 + 2 52 3 9 0.17191015790917D+02 0.44092020321532D-17 + 3 52 3 9 -0.28264265805571D+02 0.26509494545408D-15 + 1 53 3 9 -0.31950747315449D+00 0.21590991876485D-16 + 2 53 3 9 0.31080049433586D+00 0.38947262876927D-17 + 3 53 3 9 0.61690564411060D+00 -0.53261732901808D-16 + 1 54 3 9 0.30357372278435D+00 0.24002616973012D-16 + 2 54 3 9 0.21427852513045D+00 -0.12130549778556D-17 + 3 54 3 9 0.10545375499442D+00 -0.34353679030986D-16 + 1 55 3 9 -0.62977614684491D+00 -0.26120879159792D-16 + 2 55 3 9 0.38152268192094D+00 0.82775319161531D-17 + 3 55 3 9 -0.29904993474145D+00 -0.65317775527679D-17 + 1 56 3 9 0.12612871728019D+01 0.78875362730569D-17 + 2 56 3 9 0.10925016594282D+01 0.24487561280582D-16 + 3 56 3 9 0.28423411136097D+01 -0.36939678830516D-16 + 1 57 3 9 0.10882249164783D+00 -0.48386833505338D-16 + 2 57 3 9 0.13376023552567D+00 0.17179644584599D-16 + 3 57 3 9 -0.39034711006481D-01 -0.94170283462718D-16 + 1 58 3 9 -0.12612871728019D+01 -0.37706699677732D-16 + 2 58 3 9 0.10925016594282D+01 -0.67428187412242D-17 + 3 58 3 9 0.28423411136097D+01 -0.19276067536871D-16 + 1 59 3 9 -0.10882249164783D+00 -0.52091463064516D-16 + 2 59 3 9 0.13376023552567D+00 -0.27140105810237D-16 + 3 59 3 9 -0.39034711006479D-01 -0.94720994898206D-17 + 1 60 3 9 0.12612871728019D+01 0.89893251582708D-17 + 2 60 3 9 -0.10925016594282D+01 -0.36302515733699D-16 + 3 60 3 9 0.28423411136097D+01 -0.19517396038111D-16 + 1 61 3 9 0.10882249164783D+00 0.78498016200157D-16 + 2 61 3 9 -0.13376023552567D+00 0.85854818526788D-16 + 3 61 3 9 -0.39034711006488D-01 -0.22015176280533D-16 + 1 62 3 9 -0.12612871728019D+01 0.67725558056853D-16 + 2 62 3 9 -0.10925016594282D+01 -0.15755432603638D-16 + 3 62 3 9 0.28423411136097D+01 -0.32429250302610D-16 + 1 63 3 9 -0.10882249164782D+00 -0.87287414036825D-16 + 2 63 3 9 -0.13376023552567D+00 0.83232233804305D-17 + 3 63 3 9 -0.39034711006492D-01 0.23601433538597D-16 + 1 64 3 9 -0.18694212995449D-16 -0.19020576312322D-16 + 2 64 3 9 -0.39667899493333D+00 -0.15233575881923D-17 + 3 64 3 9 0.15432402611209D+00 -0.14659480333505D-16 + 1 65 3 9 0.33709003900440D-15 0.29227716158023D-16 + 2 65 3 9 0.39667899493333D+00 0.13118918459181D-17 + 3 65 3 9 0.15432402611209D+00 0.81460802177613D-17 + 1 67 3 9 0.00000000000000D+00 0.00000000000000D+00 + 2 67 3 9 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 10 -0.79488159831361D+00 -0.10735688003511D-15 + 2 1 1 10 0.49562522807863D+00 0.45583633219965D-17 + 3 1 1 10 0.49562522807862D+00 0.91089448905381D-17 + 1 2 1 10 0.16014908008607D+00 0.14864891094983D-15 + 2 2 1 10 0.25324393959613D+00 -0.21515145743939D-16 + 3 2 1 10 -0.30357963965605D+00 -0.18487809500458D-16 + 1 3 1 10 0.16014908008612D+00 -0.10057555902072D-15 + 2 3 1 10 -0.30357963965606D+00 0.17664833718382D-16 + 3 3 1 10 0.25324393959627D+00 0.25474888265794D-16 + 1 4 1 10 -0.26113137815758D+02 0.15801636046900D-15 + 2 4 1 10 0.14125392133289D+02 -0.16004848028291D-17 + 3 4 1 10 0.14125392133289D+02 0.23179641912172D-16 + 1 5 1 10 0.17362233280700D+00 -0.70959359397980D-16 + 2 5 1 10 0.13273811450749D-01 -0.21196073452897D-16 + 3 5 1 10 0.13273811450748D-01 0.24903454107544D-16 + 1 6 1 10 -0.34863044532200D+00 0.44239773155377D-16 + 2 6 1 10 0.44863106048822D+00 -0.11385009756023D-16 + 3 6 1 10 0.48649535332305D+00 -0.36100359081020D-16 + 1 7 1 10 -0.34863044532199D+00 -0.39290986820487D-16 + 2 7 1 10 0.48649535332304D+00 0.39312694632430D-17 + 3 7 1 10 0.44863106048815D+00 -0.17716452471228D-16 + 1 8 1 10 0.49329150386017D+00 -0.91598582751237D-16 + 2 8 1 10 0.30346406128317D+00 -0.12586574826806D-16 + 3 8 1 10 0.30346406128308D+00 -0.25795180567027D-16 + 1 9 1 10 -0.22435256830634D+00 0.00000000000000D+00 + 2 9 1 10 -0.41041342037585D-17 0.00000000000000D+00 + 3 9 1 10 0.47699364890307D-17 0.00000000000000D+00 + 1 10 1 10 0.12012013097766D+03 0.00000000000000D+00 + 2 10 1 10 -0.22720289837374D-12 0.00000000000000D+00 + 3 10 1 10 -0.26683757582840D-12 0.00000000000000D+00 + 1 11 1 10 0.16354079435051D+01 0.00000000000000D+00 + 2 11 1 10 0.41303763886505D-17 0.00000000000000D+00 + 3 11 1 10 0.44556372469830D-17 0.00000000000000D+00 + 1 12 1 10 -0.22435256830630D+00 0.00000000000000D+00 + 2 12 1 10 0.47699690665374D-17 0.00000000000000D+00 + 3 12 1 10 -0.41057626465234D-17 0.00000000000000D+00 + 1 13 1 10 -0.15398185028691D+00 0.00000000000000D+00 + 2 13 1 10 0.54657247008828D-16 0.00000000000000D+00 + 3 13 1 10 -0.11177451661457D-15 0.00000000000000D+00 + 1 14 1 10 -0.39542031101207D+00 0.00000000000000D+00 + 2 14 1 10 0.53659962891878D-16 0.00000000000000D+00 + 3 14 1 10 0.53659962892007D-16 0.00000000000000D+00 + 1 15 1 10 -0.15398185028691D+00 0.00000000000000D+00 + 2 15 1 10 -0.11172030516177D-15 0.00000000000000D+00 + 3 15 1 10 0.54874087443351D-16 0.00000000000000D+00 + 1 16 1 10 0.16014908008607D+00 -0.20898759617666D-16 + 2 16 1 10 0.30357963965609D+00 -0.50069072454312D-17 + 3 16 1 10 -0.25324393959624D+00 -0.99566123235060D-17 + 1 17 1 10 -0.26113137815758D+02 -0.29157876915947D-15 + 2 17 1 10 -0.14125392133289D+02 0.37776350217029D-16 + 3 17 1 10 -0.14125392133289D+02 -0.11596671134516D-16 + 1 18 1 10 -0.79488159831362D+00 -0.60736778763927D-16 + 2 18 1 10 -0.49562522807859D+00 0.19080994487414D-17 + 3 18 1 10 -0.49562522807859D+00 -0.20395594176642D-16 + 1 19 1 10 0.16014908008614D+00 0.10858786850827D-15 + 2 19 1 10 -0.25324393959616D+00 -0.31308037411290D-16 + 3 19 1 10 0.30357963965608D+00 0.34394487100603D-16 + 1 20 1 10 -0.34863044532183D+00 0.12424013911714D-15 + 2 20 1 10 -0.48649535332304D+00 -0.65822291134060D-18 + 3 20 1 10 -0.44863106048822D+00 0.15425641967472D-16 + 1 21 1 10 0.49329150386026D+00 -0.25763855414601D-15 + 2 21 1 10 -0.30346406128323D+00 -0.29017178657777D-16 + 3 21 1 10 -0.30346406128320D+00 -0.28758287258444D-17 + 1 22 1 10 0.17362233280699D+00 -0.58215311828803D-16 + 2 22 1 10 -0.13273811450764D-01 0.26083841252160D-16 + 3 22 1 10 -0.13273811450752D-01 -0.22376847588081D-16 + 1 23 1 10 -0.34863044532207D+00 -0.10684270229112D-15 + 2 23 1 10 -0.44863106048815D+00 -0.26646655584954D-16 + 3 23 1 10 -0.48649535332308D+00 -0.11698635619854D-16 + 1 24 1 10 0.31015312269972D+01 0.27544415206429D-16 + 2 24 1 10 0.13669521855039D+01 -0.17240509848228D-16 + 3 24 1 10 0.13669521855039D+01 -0.15716759749717D-16 + 1 25 1 10 0.31015312269972D+01 -0.51323369197803D-16 + 2 25 1 10 -0.13669521855039D+01 0.25013276038434D-16 + 3 25 1 10 0.13669521855039D+01 0.10380486870513D-16 + 1 26 1 10 0.31015312269972D+01 0.60121926445318D-16 + 2 26 1 10 0.13669521855039D+01 0.21785730795784D-17 + 3 26 1 10 -0.13669521855039D+01 -0.22832050113456D-16 + 1 27 1 10 0.31015312269972D+01 -0.83328715137461D-17 + 2 27 1 10 -0.13669521855039D+01 -0.77840287849046D-17 + 3 27 1 10 -0.13669521855039D+01 -0.35739669974805D-16 + 1 28 1 10 -0.51506713558861D-01 0.26119067279552D-15 + 2 28 1 10 0.90506975035535D-01 -0.21507981680338D-16 + 3 28 1 10 0.90506975035534D-01 -0.21744041721160D-16 + 1 29 1 10 -0.51506713558859D-01 0.76875488281820D-16 + 2 29 1 10 -0.90506975035535D-01 -0.27666163411402D-16 + 3 29 1 10 0.90506975035535D-01 -0.31202278504576D-16 + 1 30 1 10 -0.51506713558861D-01 -0.33468671145340D-16 + 2 30 1 10 0.90506975035538D-01 0.16904001320092D-16 + 3 30 1 10 -0.90506975035538D-01 -0.31112234075497D-16 + 1 31 1 10 -0.51506713558858D-01 0.13868294926884D-15 + 2 31 1 10 -0.90506975035533D-01 -0.25788714712691D-16 + 3 31 1 10 -0.90506975035533D-01 -0.26061004278958D-16 + 1 32 1 10 0.17320912229090D+00 -0.23907569003271D-15 + 2 32 1 10 -0.13264716423584D-01 0.22416721848657D-16 + 3 32 1 10 0.13264716423594D-01 -0.52006933147005D-17 + 1 33 1 10 -0.34841030513611D+00 -0.56022751845048D-16 + 2 33 1 10 -0.44859374967650D+00 -0.30233774897216D-16 + 3 33 1 10 0.48648896442330D+00 0.45700040700485D-16 + 1 34 1 10 -0.34841030513635D+00 -0.88481372471689D-16 + 2 34 1 10 -0.48648896442327D+00 0.20418158503408D-18 + 3 34 1 10 0.44859374967649D+00 -0.56830374270468D-17 + 1 35 1 10 0.49321229505338D+00 0.10756137401514D-15 + 2 35 1 10 -0.30357007831931D+00 0.85496583771986D-17 + 3 35 1 10 0.30357007831945D+00 0.11258315973028D-16 + 1 36 1 10 -0.79514737317396D+00 0.37962391419104D-16 + 2 36 1 10 -0.49563033264047D+00 0.34209971027461D-16 + 3 36 1 10 0.49563033264048D+00 0.23663563765393D-17 + 1 37 1 10 0.15998648080421D+00 0.15328800867581D-15 + 2 37 1 10 -0.25310517724680D+00 0.19464089550991D-17 + 3 37 1 10 -0.30327908922070D+00 0.15300925472571D-17 + 1 38 1 10 0.15998648080420D+00 -0.50934117616373D-16 + 2 38 1 10 0.30327908922069D+00 -0.34831061520749D-16 + 3 38 1 10 0.25310517724669D+00 0.37434912468667D-16 + 1 39 1 10 -0.26111241917414D+02 0.13217229128277D-15 + 2 39 1 10 -0.14122753774738D+02 -0.17369332141276D-17 + 3 39 1 10 0.14122753774739D+02 -0.30293156283568D-17 + 1 40 1 10 -0.30750329147910D+01 -0.24391570517670D-15 + 2 40 1 10 -0.12876955666758D+01 -0.10471285574154D-15 + 3 40 1 10 -0.31880379749958D+01 -0.14499705319463D-17 + 1 41 1 10 -0.30750329147910D+01 0.25058941522698D-15 + 2 41 1 10 0.12876955666759D+01 0.15101944511725D-16 + 3 41 1 10 0.31880379749958D+01 -0.21811996084789D-17 + 1 42 1 10 -0.24785948145176D+00 -0.91123914626047D-17 + 2 42 1 10 -0.11771011529336D+00 0.57214473753962D-16 + 3 42 1 10 0.12050740714423D+00 -0.24330429219626D-17 + 1 43 1 10 -0.24785948145176D+00 -0.77150023849641D-16 + 2 43 1 10 0.11771011529336D+00 -0.10741828338278D-15 + 3 43 1 10 -0.12050740714423D+00 -0.35815312688668D-17 + 1 44 1 10 -0.30750329147910D+01 -0.16902107225637D-15 + 2 44 1 10 -0.12876955666759D+01 -0.44421846474934D-16 + 3 44 1 10 0.31880379749958D+01 -0.33058238947577D-17 + 1 45 1 10 -0.30750329147910D+01 0.10249322484601D-15 + 2 45 1 10 0.12876955666758D+01 -0.19820995228504D-16 + 3 45 1 10 -0.31880379749958D+01 -0.27875025572351D-17 + 1 46 1 10 -0.24785948145177D+00 -0.10278108932999D-15 + 2 46 1 10 -0.11771011529336D+00 -0.27044333207569D-16 + 3 46 1 10 -0.12050740714423D+00 -0.57620964528917D-18 + 1 47 1 10 -0.24785948145177D+00 -0.23115673484702D-16 + 2 47 1 10 0.11771011529336D+00 0.60678560942836D-16 + 3 47 1 10 0.12050740714423D+00 0.24608186202203D-17 + 1 48 1 10 -0.34841030513627D+00 -0.43859719775493D-16 + 2 48 1 10 0.48648896442331D+00 -0.22545110814483D-16 + 3 48 1 10 -0.44859374967648D+00 -0.97311508241862D-16 + 1 49 1 10 0.49321229505344D+00 -0.22745182205427D-16 + 2 49 1 10 0.30357007831939D+00 -0.17715956877977D-16 + 3 49 1 10 -0.30357007831937D+00 -0.31224807794196D-16 + 1 50 1 10 0.17320912229094D+00 0.49355538324752D-16 + 2 50 1 10 0.13264716423591D-01 0.21101014497519D-16 + 3 50 1 10 -0.13264716423588D-01 0.46945896683179D-16 + 1 51 1 10 -0.34841030513611D+00 -0.11009058605415D-15 + 2 51 1 10 0.44859374967652D+00 -0.45582273577041D-16 + 3 51 1 10 -0.48648896442330D+00 0.75041970420472D-17 + 1 52 1 10 0.15998648080427D+00 -0.76465813895801D-16 + 2 52 1 10 -0.30327908922067D+00 0.21237173638565D-16 + 3 52 1 10 -0.25310517724682D+00 0.21900745924933D-16 + 1 53 1 10 -0.26111241917415D+02 -0.36177189011267D-16 + 2 53 1 10 0.14122753774739D+02 -0.30086135133793D-16 + 3 53 1 10 -0.14122753774738D+02 0.10251008957642D-15 + 1 54 1 10 -0.79514737317400D+00 -0.79508942313537D-16 + 2 54 1 10 0.49563033264049D+00 -0.10810608554101D-17 + 3 54 1 10 -0.49563033264048D+00 -0.25402824089259D-17 + 1 55 1 10 0.15998648080425D+00 0.36013693949342D-15 + 2 55 1 10 0.25310517724679D+00 0.17641117585506D-16 + 3 55 1 10 0.30327908922068D+00 -0.23540863597046D-16 + 1 56 1 10 -0.24785948145176D+00 0.14458494090685D-15 + 2 56 1 10 0.12050740714423D+00 0.62535684146291D-18 + 3 56 1 10 -0.11771011529336D+00 0.35860227864383D-16 + 1 57 1 10 -0.30750329147910D+01 0.21728178436236D-15 + 2 57 1 10 -0.31880379749958D+01 -0.15573134084326D-17 + 3 57 1 10 -0.12876955666759D+01 -0.66078882331889D-16 + 1 58 1 10 -0.24785948145176D+00 -0.15499523163417D-15 + 2 58 1 10 -0.12050740714423D+00 -0.16869182270408D-18 + 3 58 1 10 0.11771011529336D+00 0.31477640760778D-16 + 1 59 1 10 -0.30750329147910D+01 0.10735743480024D-15 + 2 59 1 10 0.31880379749958D+01 0.17116590909934D-17 + 3 59 1 10 0.12876955666759D+01 -0.30475168216120D-16 + 1 60 1 10 -0.24785948145177D+00 0.46726338558499D-16 + 2 60 1 10 -0.12050740714423D+00 -0.13999639327444D-17 + 3 60 1 10 -0.11771011529336D+00 -0.30349175080291D-16 + 1 61 1 10 -0.30750329147910D+01 0.15919024903994D-15 + 2 61 1 10 0.31880379749958D+01 0.00000000000000D+00 + 3 61 1 10 -0.12876955666759D+01 0.31603000618373D-16 + 1 62 1 10 -0.24785948145177D+00 -0.24045232980786D-15 + 2 62 1 10 0.12050740714423D+00 0.17120277428156D-17 + 3 62 1 10 0.11771011529336D+00 0.84949862207606D-16 + 1 63 1 10 -0.30750329147910D+01 -0.22569824248315D-15 + 2 63 1 10 -0.31880379749958D+01 -0.21124254220365D-18 + 3 63 1 10 0.12876955666759D+01 0.24678933000236D-16 + 1 64 1 10 -0.22902125392395D-01 0.90968669125914D-16 + 2 64 1 10 0.10290570711603D-03 0.47320703661560D-16 + 3 64 1 10 0.15124178928407D-15 -0.64108709209468D-16 + 1 65 1 10 -0.22902125392393D-01 0.25395051262453D-16 + 2 65 1 10 -0.10290570711621D-03 -0.73886358146182D-17 + 3 65 1 10 0.61606921964034D-16 -0.47700715611645D-16 + 2 67 1 10 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 10 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 10 0.44289771937658D+00 0.45583633219965D-17 + 2 1 2 10 -0.47974736798092D+00 0.14139824450247D-15 + 3 1 2 10 -0.57577714895615D+00 0.99226667122391D-16 + 1 2 2 10 0.27827078820673D+00 -0.21515145743939D-16 + 2 2 2 10 0.41290445257316D+00 0.19479592630604D-15 + 3 2 2 10 -0.29456117170822D+00 0.10498761791144D-17 + 1 3 2 10 -0.29407440653510D+00 0.17664833718382D-16 + 2 3 2 10 0.17730212355830D+00 -0.86020994517928D-16 + 3 3 2 10 -0.30572683686539D+00 -0.10298191614592D-16 + 1 4 2 10 0.14086024959133D+02 -0.16004848028291D-17 + 2 4 2 10 -0.26113781530201D+02 0.23637333046855D-16 + 3 4 2 10 -0.13781556160135D+02 -0.14586976108830D-16 + 1 5 2 10 0.37195381045484D-01 -0.21196073452897D-16 + 2 5 2 10 0.23190305886134D+00 -0.14354147781882D-15 + 3 5 2 10 0.25240149066073D-02 -0.26377222731068D-16 + 1 6 2 10 0.43777978912026D+00 -0.11385009756023D-16 + 2 6 2 10 -0.35985695528310D+00 0.15125114138373D-15 + 3 6 2 10 -0.46398375705643D+00 -0.14749401893747D-16 + 1 7 2 10 0.47661236736015D+00 0.39312694632430D-17 + 2 7 2 10 -0.77484903294973D+00 -0.74866315701707D-16 + 3 7 2 10 -0.46636153091889D+00 0.38679768667420D-16 + 1 8 2 10 0.29889594006094D+00 -0.12586574826806D-16 + 2 8 2 10 0.19492375400720D+00 0.30398024724389D-15 + 3 8 2 10 0.33295290077051D+00 0.12680809097249D-16 + 1 9 2 10 -0.41041342037585D-17 0.00000000000000D+00 + 2 9 2 10 -0.22331830613038D+00 0.00000000000000D+00 + 3 9 2 10 -0.39823390513337D-16 0.00000000000000D+00 + 1 10 2 10 -0.22720289837374D-12 0.00000000000000D+00 + 2 10 2 10 0.12037009123930D+03 0.00000000000000D+00 + 3 10 2 10 0.16167421641101D-12 0.00000000000000D+00 + 1 11 2 10 0.41303763886505D-17 0.00000000000000D+00 + 2 11 2 10 -0.15087966293888D+00 0.00000000000000D+00 + 3 11 2 10 -0.11715141888139D-15 0.00000000000000D+00 + 1 12 2 10 0.47699690665374D-17 0.00000000000000D+00 + 2 12 2 10 -0.40232168778518D+00 0.00000000000000D+00 + 3 12 2 10 0.42104183724603D-16 0.00000000000000D+00 + 1 13 2 10 0.54657247008828D-16 0.00000000000000D+00 + 2 13 2 10 0.15539734922401D+01 0.00000000000000D+00 + 3 13 2 10 0.44624519882528D-16 0.00000000000000D+00 + 1 14 2 10 0.53659962891878D-16 0.00000000000000D+00 + 2 14 2 10 -0.21689652649502D+00 0.00000000000000D+00 + 3 14 2 10 -0.44739857569419D-16 0.00000000000000D+00 + 1 15 2 10 -0.11172030516177D-15 0.00000000000000D+00 + 2 15 2 10 -0.19008203218907D+00 0.00000000000000D+00 + 3 15 2 10 0.33883313719073D-16 0.00000000000000D+00 + 1 16 2 10 0.29396969816599D+00 -0.50069072454312D-17 + 2 16 2 10 0.17709448086407D+00 -0.41938370850902D-16 + 3 16 2 10 -0.30571700086028D+00 0.23698984780420D-16 + 1 17 2 10 -0.14088523839396D+02 0.37776350217029D-16 + 2 17 2 10 -0.26113917060901D+02 -0.48757796741148D-16 + 3 17 2 10 -0.13783328285082D+02 -0.10769205955163D-16 + 1 18 2 10 -0.44288349858365D+00 0.19080994487414D-17 + 2 18 2 10 -0.47976154247884D+00 -0.18329109527270D-15 + 3 18 2 10 -0.57549039836814D+00 0.13856761126486D-16 + 1 19 2 10 -0.27801070241038D+00 -0.31308037411290D-16 + 2 19 2 10 0.41323889039754D+00 -0.24404007753807D-16 + 3 19 2 10 -0.29487047880420D+00 0.20951281773363D-16 + 1 20 2 10 -0.47660882281160D+00 -0.65822291134060D-18 + 2 20 2 10 -0.77455766109876D+00 -0.24378147664577D-16 + 3 20 2 10 -0.46600777207555D+00 0.82987895481107D-16 + 1 21 2 10 -0.29852518106690D+00 -0.29017178657777D-16 + 2 21 2 10 0.19516178206944D+00 -0.51748558073467D-16 + 3 21 2 10 0.33254998961706D+00 0.29739930655352D-16 + 1 22 2 10 -0.37271483882102D-01 0.26083841252160D-16 + 2 22 2 10 0.23206325517197D+00 0.68868187039382D-16 + 3 22 2 10 0.26278439828263D-02 0.24245220908151D-16 + 1 23 2 10 -0.43784508225184D+00 -0.26646655584954D-16 + 2 23 2 10 -0.35954568451204D+00 -0.15354078933044D-15 + 3 23 2 10 -0.46410460231330D+00 0.34697414339783D-17 + 1 24 2 10 -0.12337237972033D+01 -0.17240509848228D-16 + 2 24 2 10 -0.31005673840385D+01 -0.31901736541284D-15 + 3 24 2 10 -0.32520035759161D+01 -0.95739615070000D-18 + 1 25 2 10 0.12337237972033D+01 0.25013276038434D-16 + 2 25 2 10 -0.31005673840385D+01 0.18406008987184D-16 + 3 25 2 10 0.32520035759161D+01 -0.28356297184662D-17 + 1 26 2 10 -0.12337237972033D+01 0.21785730795784D-17 + 2 26 2 10 -0.31005673840385D+01 0.15118141561743D-15 + 3 26 2 10 0.32520035759161D+01 -0.10671368038273D-17 + 1 27 2 10 0.12337237972033D+01 -0.77840287849046D-17 + 2 27 2 10 -0.31005673840385D+01 -0.14278630201676D-15 + 3 27 2 10 -0.32520035759161D+01 -0.83228699410156D-18 + 1 28 2 10 -0.14926596797347D+00 -0.21507981680338D-16 + 2 28 2 10 -0.24767196385392D+00 0.28384111431338D-15 + 3 28 2 10 0.95754861717257D-01 0.77313048711357D-18 + 1 29 2 10 0.14926596797347D+00 -0.27666163411402D-16 + 2 29 2 10 -0.24767196385392D+00 0.16060235368791D-15 + 3 29 2 10 -0.95754861717256D-01 0.00000000000000D+00 + 1 30 2 10 -0.14926596797347D+00 0.16904001320092D-16 + 2 30 2 10 -0.24767196385392D+00 -0.17762596926596D-15 + 3 30 2 10 -0.95754861717255D-01 0.10630320908659D-17 + 1 31 2 10 0.14926596797348D+00 -0.25788714712691D-16 + 2 31 2 10 -0.24767196385392D+00 0.10319942046983D-15 + 3 31 2 10 0.95754861717255D-01 0.14454292512846D-17 + 1 32 2 10 -0.37195381045453D-01 0.22416721848657D-16 + 2 32 2 10 0.23190305886141D+00 -0.45480281726420D-16 + 3 32 2 10 -0.25240149066001D-02 0.25524991111956D-16 + 1 33 2 10 -0.43777978912037D+00 -0.30233774897216D-16 + 2 33 2 10 -0.35985695528310D+00 0.11813783436212D-15 + 3 33 2 10 0.46398375705641D+00 -0.12131489410675D-17 + 1 34 2 10 -0.47661236736013D+00 0.20418158503408D-18 + 2 34 2 10 -0.77484903294974D+00 -0.92340264445385D-16 + 3 34 2 10 0.46636153091888D+00 -0.11767074564568D-15 + 1 35 2 10 -0.29889594006103D+00 0.85496583771986D-17 + 2 35 2 10 0.19492375400722D+00 -0.90848631051131D-16 + 3 35 2 10 -0.33295290077052D+00 0.15326058313859D-16 + 1 36 2 10 -0.44289771937657D+00 0.34209971027461D-16 + 2 36 2 10 -0.47974736798100D+00 0.20869445776451D-16 + 3 36 2 10 0.57577714895611D+00 0.48960199743616D-17 + 1 37 2 10 -0.27827078820674D+00 0.19464089550991D-17 + 2 37 2 10 0.41290445257304D+00 -0.17307812977846D-15 + 3 37 2 10 0.29456117170829D+00 -0.83824028327434D-17 + 1 38 2 10 0.29407440653503D+00 -0.34831061520749D-16 + 2 38 2 10 0.17730212355825D+00 0.33219491787686D-15 + 3 38 2 10 0.30572683686531D+00 0.17025439684471D-16 + 1 39 2 10 -0.14086024959131D+02 -0.17369332141276D-17 + 2 39 2 10 -0.26113781530201D+02 0.33377657860271D-16 + 3 39 2 10 0.13781556160135D+02 0.27772935316353D-17 + 1 40 2 10 0.12418553858657D+01 -0.10471285574154D-15 + 2 40 2 10 0.31461925409856D+01 0.95942341476789D-16 + 3 40 2 10 0.12833129941631D+01 0.18774809019787D-18 + 1 41 2 10 -0.12418553858657D+01 0.15101944511725D-16 + 2 41 2 10 0.31461925409856D+01 0.80469203159531D-16 + 3 41 2 10 0.12833129941631D+01 -0.30664921039925D-16 + 1 42 2 10 0.14675843406442D+00 0.57214473753962D-16 + 2 42 2 10 0.17176138476524D-01 -0.56451620499877D-16 + 3 42 2 10 0.15168666551705D+00 -0.56751080673080D-17 + 1 43 2 10 -0.14675843406442D+00 -0.10741828338278D-15 + 2 43 2 10 0.17176138476523D-01 0.14759554664948D-15 + 3 43 2 10 0.15168666551705D+00 0.20328559025055D-16 + 1 44 2 10 0.12418553858657D+01 -0.44421846474934D-16 + 2 44 2 10 0.31461925409856D+01 0.77646452892646D-16 + 3 44 2 10 -0.12833129941631D+01 -0.29498074412660D-16 + 1 45 2 10 -0.12418553858657D+01 -0.19820995228504D-16 + 2 45 2 10 0.31461925409856D+01 -0.41326220879922D-16 + 3 45 2 10 -0.12833129941631D+01 -0.24669053765553D-17 + 1 46 2 10 0.14675843406442D+00 -0.27044333207569D-16 + 2 46 2 10 0.17176138476533D-01 -0.67046269879247D-16 + 3 46 2 10 -0.15168666551704D+00 -0.23709545821966D-16 + 1 47 2 10 -0.14675843406443D+00 0.60678560942836D-16 + 2 47 2 10 0.17176138476533D-01 0.34513110640015D-16 + 3 47 2 10 -0.15168666551705D+00 -0.65930364109383D-17 + 1 48 2 10 0.47660882281160D+00 -0.22545110814483D-16 + 2 48 2 10 -0.77455766109877D+00 -0.25722388627838D-15 + 3 48 2 10 0.46600777207556D+00 0.29995841831428D-16 + 1 49 2 10 0.29852518106694D+00 -0.17715956877977D-16 + 2 49 2 10 0.19516178206943D+00 -0.18535867155501D-15 + 3 49 2 10 -0.33254998961700D+00 0.22839792080982D-16 + 1 50 2 10 0.37271483882127D-01 0.21101014497519D-16 + 2 50 2 10 0.23206325517201D+00 -0.63384626059777D-16 + 3 50 2 10 -0.26278439828404D-02 0.15515944440539D-16 + 1 51 2 10 0.43784508225185D+00 -0.45582273577041D-16 + 2 51 2 10 -0.35954568451196D+00 0.67486694164597D-16 + 3 51 2 10 0.46410460231328D+00 0.17522718249273D-16 + 1 52 2 10 -0.29396969816598D+00 0.21237173638565D-16 + 2 52 2 10 0.17709448086395D+00 -0.17351795551170D-15 + 3 52 2 10 0.30571700086024D+00 -0.14047685893280D-18 + 1 53 2 10 0.14088523839396D+02 -0.30086135133793D-16 + 2 53 2 10 -0.26113917060901D+02 0.30648825275575D-15 + 3 53 2 10 0.13783328285082D+02 0.24099573988329D-16 + 1 54 2 10 0.44288349858362D+00 -0.10810608554101D-17 + 2 54 2 10 -0.47976154247879D+00 0.59240342732095D-16 + 3 54 2 10 0.57549039836810D+00 -0.14541604198443D-16 + 1 55 2 10 0.27801070241036D+00 0.17641117585506D-16 + 2 55 2 10 0.41323889039751D+00 0.99603487232630D-16 + 3 55 2 10 0.29487047880415D+00 0.34770897118829D-16 + 1 56 2 10 0.11878586879503D+00 0.62535684146291D-18 + 2 56 2 10 -0.24793168041875D+00 -0.29652937847186D-15 + 3 56 2 10 -0.11438150796612D+00 0.42659063939492D-16 + 1 57 2 10 -0.31522845379931D+01 -0.15573134084326D-17 + 2 57 2 10 -0.31010690740300D+01 0.15364256338448D-15 + 3 57 2 10 -0.13404540323597D+01 -0.51238953010642D-16 + 1 58 2 10 -0.11878586879503D+00 -0.16869182270408D-18 + 2 58 2 10 -0.24793168041875D+00 0.20400557943948D-15 + 3 58 2 10 -0.11438150796612D+00 0.82638254196407D-16 + 1 59 2 10 0.31522845379931D+01 0.17116590909934D-17 + 2 59 2 10 -0.31010690740300D+01 -0.20964349368614D-15 + 3 59 2 10 -0.13404540323597D+01 0.61633514955095D-16 + 1 60 2 10 -0.11878586879504D+00 -0.13999639327444D-17 + 2 60 2 10 -0.24793168041875D+00 0.88326368139924D-16 + 3 60 2 10 0.11438150796612D+00 -0.17270647397307D-18 + 1 61 2 10 0.31522845379931D+01 0.00000000000000D+00 + 2 61 2 10 -0.31010690740300D+01 -0.30430875031438D-15 + 3 61 2 10 0.13404540323597D+01 -0.26323109331423D-16 + 1 62 2 10 0.11878586879503D+00 0.17120277428156D-17 + 2 62 2 10 -0.24793168041875D+00 0.17348797408027D-15 + 3 62 2 10 0.11438150796613D+00 0.49437249228884D-16 + 1 63 2 10 -0.31522845379931D+01 -0.21124254220365D-18 + 2 63 2 10 -0.31010690740300D+01 0.13278411525362D-15 + 3 63 2 10 0.13404540323597D+01 0.49644006672754D-17 + 1 64 2 10 0.11103451140192D-15 0.47320703661560D-16 + 2 64 2 10 -0.32912655861567D-01 -0.58137423328688D-17 + 3 64 2 10 -0.68652891362036D-01 -0.13748194041893D-17 + 1 65 2 10 -0.28676393737946D-15 -0.73886358146182D-17 + 2 65 2 10 -0.32912655861566D-01 0.10540989446884D-16 + 3 65 2 10 0.68652891362037D-01 -0.17188640015757D-17 + 1 67 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 67 2 10 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 10 0.44289771937658D+00 0.91089448905381D-17 + 2 1 3 10 -0.57577714895615D+00 0.99226667122391D-16 + 3 1 3 10 -0.47974736798092D+00 0.33187491715902D-15 + 1 2 3 10 -0.29407440653510D+00 -0.18487809500458D-16 + 2 2 3 10 -0.30572683686540D+00 0.10498761791144D-17 + 3 2 3 10 0.17730212355830D+00 -0.92498936475032D-16 + 1 3 3 10 0.27827078820673D+00 0.25474888265794D-16 + 2 3 3 10 -0.29456117170822D+00 -0.10298191614592D-16 + 3 3 3 10 0.41290445257318D+00 0.30030409035023D-15 + 1 4 3 10 0.14086024959133D+02 0.23179641912172D-16 + 2 4 3 10 -0.13781556160135D+02 -0.14586976108830D-16 + 3 4 3 10 -0.26113781530201D+02 0.35740322478991D-16 + 1 5 3 10 0.37195381045484D-01 0.24903454107544D-16 + 2 5 3 10 0.25240149066073D-02 -0.26377222731068D-16 + 3 5 3 10 0.23190305886133D+00 0.16420180096272D-16 + 1 6 3 10 0.47661236736015D+00 -0.36100359081020D-16 + 2 6 3 10 -0.46636153091889D+00 -0.14749401893747D-16 + 3 6 3 10 -0.77484903294973D+00 -0.26412851090047D-15 + 1 7 3 10 0.43777978912026D+00 -0.17716452471228D-16 + 2 7 3 10 -0.46398375705643D+00 0.38679768667420D-16 + 3 7 3 10 -0.35985695528310D+00 -0.22674179017707D-15 + 1 8 3 10 0.29889594006094D+00 -0.25795180567027D-16 + 2 8 3 10 0.33295290077051D+00 0.12680809097249D-16 + 3 8 3 10 0.19492375400720D+00 0.57538755749285D-16 + 1 9 3 10 0.47699364890307D-17 0.00000000000000D+00 + 2 9 3 10 -0.39823390513337D-16 0.00000000000000D+00 + 3 9 3 10 -0.40232168778518D+00 0.00000000000000D+00 + 1 10 3 10 -0.26683757582840D-12 0.00000000000000D+00 + 2 10 3 10 0.16167421641101D-12 0.00000000000000D+00 + 3 10 3 10 0.12037009123930D+03 0.00000000000000D+00 + 1 11 3 10 0.44556372469830D-17 0.00000000000000D+00 + 2 11 3 10 -0.11715141888139D-15 0.00000000000000D+00 + 3 11 3 10 -0.15087966293888D+00 0.00000000000000D+00 + 1 12 3 10 -0.41057626465234D-17 0.00000000000000D+00 + 2 12 3 10 0.42104183724603D-16 0.00000000000000D+00 + 3 12 3 10 -0.22331830613038D+00 0.00000000000000D+00 + 1 13 3 10 -0.11177451661457D-15 0.00000000000000D+00 + 2 13 3 10 0.44624519882528D-16 0.00000000000000D+00 + 3 13 3 10 -0.19008203218907D+00 0.00000000000000D+00 + 1 14 3 10 0.53659962892007D-16 0.00000000000000D+00 + 2 14 3 10 -0.44739857569419D-16 0.00000000000000D+00 + 3 14 3 10 -0.21689652649503D+00 0.00000000000000D+00 + 1 15 3 10 0.54874087443351D-16 0.00000000000000D+00 + 2 15 3 10 0.33883313719073D-16 0.00000000000000D+00 + 3 15 3 10 0.15539734922401D+01 0.00000000000000D+00 + 1 16 3 10 -0.27827078820673D+00 -0.99566123235060D-17 + 2 16 3 10 -0.29456117170823D+00 0.23698984780420D-16 + 3 16 3 10 0.41290445257319D+00 0.26168385427665D-17 + 1 17 3 10 -0.14086024959132D+02 -0.11596671134516D-16 + 2 17 3 10 -0.13781556160135D+02 -0.10769205955163D-16 + 3 17 3 10 -0.26113781530201D+02 0.15819949585313D-15 + 1 18 3 10 -0.44289771937658D+00 -0.20395594176642D-16 + 2 18 3 10 -0.57577714895615D+00 0.13856761126486D-16 + 3 18 3 10 -0.47974736798092D+00 -0.15228570675625D-15 + 1 19 3 10 0.29407440653510D+00 0.34394487100603D-16 + 2 19 3 10 -0.30572683686540D+00 0.20951281773363D-16 + 3 19 3 10 0.17730212355830D+00 0.20960987892129D-16 + 1 20 3 10 -0.43777978912026D+00 0.15425641967472D-16 + 2 20 3 10 -0.46398375705643D+00 0.82987895481107D-16 + 3 20 3 10 -0.35985695528310D+00 0.32432216288890D-16 + 1 21 3 10 -0.29889594006095D+00 -0.28758287258444D-17 + 2 21 3 10 0.33295290077051D+00 0.29739930655352D-16 + 3 21 3 10 0.19492375400720D+00 -0.85361623030433D-16 + 1 22 3 10 -0.37195381045484D-01 -0.22376847588081D-16 + 2 22 3 10 0.25240149066086D-02 0.24245220908151D-16 + 3 22 3 10 0.23190305886133D+00 -0.29712795838214D-16 + 1 23 3 10 -0.47661236736015D+00 -0.11698635619854D-16 + 2 23 3 10 -0.46636153091889D+00 0.34697414339783D-17 + 3 23 3 10 -0.77484903294973D+00 0.11707269006004D-15 + 1 24 3 10 -0.12337237972033D+01 -0.15716759749717D-16 + 2 24 3 10 -0.32520035759161D+01 -0.95739615070000D-18 + 3 24 3 10 -0.31005673840385D+01 0.24458195103477D-15 + 1 25 3 10 -0.12337237972033D+01 0.10380486870513D-16 + 2 25 3 10 0.32520035759161D+01 -0.28356297184662D-17 + 3 25 3 10 -0.31005673840385D+01 -0.90422568481160D-16 + 1 26 3 10 0.12337237972033D+01 -0.22832050113456D-16 + 2 26 3 10 0.32520035759161D+01 -0.10671368038273D-17 + 3 26 3 10 -0.31005673840385D+01 -0.25027283051698D-15 + 1 27 3 10 0.12337237972033D+01 -0.35739669974805D-16 + 2 27 3 10 -0.32520035759161D+01 -0.83228699410156D-18 + 3 27 3 10 -0.31005673840385D+01 -0.32065596143077D-15 + 1 28 3 10 -0.14926596797347D+00 -0.21744041721160D-16 + 2 28 3 10 0.95754861717257D-01 0.77313048711357D-18 + 3 28 3 10 -0.24767196385392D+00 0.92776051562343D-16 + 1 29 3 10 -0.14926596797347D+00 -0.31202278504576D-16 + 2 29 3 10 -0.95754861717256D-01 0.00000000000000D+00 + 3 29 3 10 -0.24767196385392D+00 -0.30154036790716D-15 + 1 30 3 10 0.14926596797347D+00 -0.31112234075497D-16 + 2 30 3 10 -0.95754861717255D-01 0.10630320908659D-17 + 3 30 3 10 -0.24767196385392D+00 -0.30105375684370D-15 + 1 31 3 10 0.14926596797347D+00 -0.26061004278958D-16 + 2 31 3 10 0.95754861717255D-01 0.14454292512846D-17 + 3 31 3 10 -0.24767196385392D+00 0.62950512202707D-15 + 1 32 3 10 0.37195381045482D-01 -0.52006933147005D-17 + 2 32 3 10 -0.25240149066077D-02 0.25524991111956D-16 + 3 32 3 10 0.23190305886134D+00 0.14421124076291D-15 + 1 33 3 10 0.47661236736015D+00 0.45700040700485D-16 + 2 33 3 10 0.46636153091889D+00 -0.12131489410675D-17 + 3 33 3 10 -0.77484903294973D+00 0.33508755984166D-15 + 1 34 3 10 0.43777978912025D+00 -0.56830374270468D-17 + 2 34 3 10 0.46398375705643D+00 -0.11767074564568D-15 + 3 34 3 10 -0.35985695528310D+00 -0.14113492563805D-15 + 1 35 3 10 0.29889594006093D+00 0.11258315973028D-16 + 2 35 3 10 -0.33295290077051D+00 0.15326058313859D-16 + 3 35 3 10 0.19492375400720D+00 -0.51711978357322D-16 + 1 36 3 10 0.44289771937658D+00 0.23663563765393D-17 + 2 36 3 10 0.57577714895615D+00 0.48960199743616D-17 + 3 36 3 10 -0.47974736798092D+00 0.10658330146847D-15 + 1 37 3 10 -0.29407440653510D+00 0.15300925472571D-17 + 2 37 3 10 0.30572683686540D+00 -0.83824028327434D-17 + 3 37 3 10 0.17730212355830D+00 -0.86250357281698D-16 + 1 38 3 10 0.27827078820674D+00 0.37434912468667D-16 + 2 38 3 10 0.29456117170822D+00 0.17025439684471D-16 + 3 38 3 10 0.41290445257319D+00 0.38873790728960D-15 + 1 39 3 10 0.14086024959133D+02 -0.30293156283568D-17 + 2 39 3 10 0.13781556160135D+02 0.27772935316353D-17 + 3 39 3 10 -0.26113781530201D+02 0.14622232921932D-15 + 1 40 3 10 -0.31522845379931D+01 -0.14499705319463D-17 + 2 40 3 10 -0.13404540323597D+01 0.18774809019787D-18 + 3 40 3 10 -0.31010690740300D+01 -0.13225246886689D-15 + 1 41 3 10 0.31522845379931D+01 -0.21811996084789D-17 + 2 41 3 10 -0.13404540323597D+01 -0.30664921039925D-16 + 3 41 3 10 -0.31010690740300D+01 0.44296156329578D-16 + 1 42 3 10 0.11878586879503D+00 -0.24330429219626D-17 + 2 42 3 10 -0.11438150796612D+00 -0.56751080673080D-17 + 3 42 3 10 -0.24793168041875D+00 0.48037376219404D-16 + 1 43 3 10 -0.11878586879503D+00 -0.35815312688668D-17 + 2 43 3 10 -0.11438150796612D+00 0.20328559025055D-16 + 3 43 3 10 -0.24793168041875D+00 -0.14781961262379D-15 + 1 44 3 10 0.31522845379931D+01 -0.33058238947577D-17 + 2 44 3 10 0.13404540323597D+01 -0.29498074412660D-16 + 3 44 3 10 -0.31010690740300D+01 0.80508773524965D-16 + 1 45 3 10 -0.31522845379931D+01 -0.27875025572351D-17 + 2 45 3 10 0.13404540323597D+01 -0.24669053765553D-17 + 3 45 3 10 -0.31010690740300D+01 -0.24663970752825D-15 + 1 46 3 10 -0.11878586879503D+00 -0.57620964528917D-18 + 2 46 3 10 0.11438150796613D+00 -0.23709545821966D-16 + 3 46 3 10 -0.24793168041875D+00 -0.65587980658243D-15 + 1 47 3 10 0.11878586879504D+00 0.24608186202203D-17 + 2 47 3 10 0.11438150796612D+00 -0.65930364109383D-17 + 3 47 3 10 -0.24793168041875D+00 0.89448187929617D-16 + 1 48 3 10 -0.43777978912025D+00 -0.97311508241862D-16 + 2 48 3 10 0.46398375705643D+00 0.29995841831428D-16 + 3 48 3 10 -0.35985695528310D+00 0.11808125038477D-15 + 1 49 3 10 -0.29889594006093D+00 -0.31224807794196D-16 + 2 49 3 10 -0.33295290077051D+00 0.22839792080982D-16 + 3 49 3 10 0.19492375400721D+00 -0.62194048547772D-16 + 1 50 3 10 -0.37195381045484D-01 0.46945896683179D-16 + 2 50 3 10 -0.25240149066064D-02 0.15515944440539D-16 + 3 50 3 10 0.23190305886134D+00 -0.54948638001106D-17 + 1 51 3 10 -0.47661236736015D+00 0.75041970420472D-17 + 2 51 3 10 0.46636153091889D+00 0.17522718249273D-16 + 3 51 3 10 -0.77484903294973D+00 -0.11343933780459D-16 + 1 52 3 10 -0.27827078820673D+00 0.21900745924933D-16 + 2 52 3 10 0.29456117170823D+00 -0.14047685893280D-18 + 3 52 3 10 0.41290445257317D+00 0.27491939707367D-15 + 1 53 3 10 -0.14086024959132D+02 0.10251008957642D-15 + 2 53 3 10 0.13781556160135D+02 0.24099573988329D-16 + 3 53 3 10 -0.26113781530201D+02 -0.32426759466115D-16 + 1 54 3 10 -0.44289771937658D+00 -0.25402824089259D-17 + 2 54 3 10 0.57577714895614D+00 -0.14541604198443D-16 + 3 54 3 10 -0.47974736798092D+00 -0.28450406370981D-16 + 1 55 3 10 0.29407440653510D+00 -0.23540863597046D-16 + 2 55 3 10 0.30572683686539D+00 0.34770897118829D-16 + 3 55 3 10 0.17730212355830D+00 -0.19272141635736D-15 + 1 56 3 10 0.14675843406442D+00 0.35860227864383D-16 + 2 56 3 10 0.15168666551705D+00 0.42659063939492D-16 + 3 56 3 10 0.17176138476523D-01 0.88530895193167D-17 + 1 57 3 10 0.12418553858657D+01 -0.66078882331889D-16 + 2 57 3 10 0.12833129941631D+01 -0.51238953010642D-16 + 3 57 3 10 0.31461925409856D+01 -0.39712285595486D-17 + 1 58 3 10 -0.14675843406443D+00 0.31477640760778D-16 + 2 58 3 10 0.15168666551705D+00 0.82638254196407D-16 + 3 58 3 10 0.17176138476524D-01 -0.73548349810118D-17 + 1 59 3 10 -0.12418553858657D+01 -0.30475168216120D-16 + 2 59 3 10 0.12833129941631D+01 0.61633514955095D-16 + 3 59 3 10 0.31461925409856D+01 0.10116517660256D-16 + 1 60 3 10 0.14675843406443D+00 -0.30349175080291D-16 + 2 60 3 10 -0.15168666551705D+00 -0.17270647397307D-18 + 3 60 3 10 0.17176138476539D-01 -0.65338875129404D-16 + 1 61 3 10 0.12418553858657D+01 0.31603000618373D-16 + 2 61 3 10 -0.12833129941631D+01 -0.26323109331423D-16 + 3 61 3 10 0.31461925409856D+01 0.24748467257501D-16 + 1 62 3 10 -0.14675843406442D+00 0.84949862207606D-16 + 2 62 3 10 -0.15168666551704D+00 0.49437249228884D-16 + 3 62 3 10 0.17176138476530D-01 -0.79503596774800D-16 + 1 63 3 10 -0.12418553858657D+01 0.24678933000236D-16 + 2 63 3 10 -0.12833129941631D+01 0.49644006672754D-17 + 3 63 3 10 0.31461925409856D+01 0.96818430301688D-16 + 1 64 3 10 0.15124178928407D-15 -0.64108709209468D-16 + 2 64 3 10 -0.68652891362036D-01 -0.13748194041893D-17 + 3 64 3 10 -0.32912655861570D-01 -0.19880762957177D-16 + 1 65 3 10 0.61606921964034D-16 -0.47700715611645D-16 + 2 65 3 10 0.68652891362037D-01 -0.17188640015757D-17 + 3 65 3 10 -0.32912655861570D-01 -0.13347748207071D-17 + 1 67 3 10 0.00000000000000D+00 0.00000000000000D+00 + 2 67 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 11 -0.26004761419979D+02 0.23107331094725D-15 + 2 1 1 11 0.13966428906661D+02 -0.19638010610351D-16 + 3 1 1 11 0.13966428906663D+02 0.38240674517582D-16 + 1 2 1 11 0.21120081637539D+00 0.14161609301450D-15 + 2 2 1 11 -0.34648445227573D+00 -0.29714868757654D-16 + 3 2 1 11 0.33996042404432D+00 -0.20107969104273D-16 + 1 3 1 11 0.21120081637538D+00 -0.80798298227727D-16 + 2 3 1 11 0.33996042404435D+00 -0.15658426248992D-16 + 3 3 1 11 -0.34648445227572D+00 -0.11432483402891D-16 + 1 4 1 11 -0.85722144824220D+00 0.13859595170943D-17 + 2 4 1 11 0.46753659802675D+00 0.33056675834860D-16 + 3 4 1 11 0.46753659802677D+00 0.47360791159728D-16 + 1 5 1 11 0.81936572652625D-01 -0.17268913421283D-15 + 2 5 1 11 -0.50761007616610D-01 -0.25544469080570D-17 + 3 5 1 11 -0.50761007616417D-01 0.25220717970043D-16 + 1 6 1 11 -0.37485941932140D+00 0.44217775440800D-16 + 2 6 1 11 0.46522743564038D+00 -0.55971636453783D-17 + 3 6 1 11 0.45485711635118D+00 0.82936600802870D-17 + 1 7 1 11 -0.37485941932147D+00 0.20477353388750D-16 + 2 7 1 11 0.45485711635119D+00 0.88735944869915D-17 + 3 7 1 11 0.46522743564036D+00 0.88347899670935D-17 + 1 8 1 11 0.26942964081948D+00 -0.36654692533082D-15 + 2 8 1 11 0.21573688483290D-01 -0.15248060533612D-16 + 3 8 1 11 0.21573688483280D-01 0.36830446290352D-16 + 1 9 1 11 -0.23862115665347D+00 0.00000000000000D+00 + 2 9 1 11 0.47699690665374D-17 0.00000000000000D+00 + 3 9 1 11 -0.41057626465234D-17 0.00000000000000D+00 + 1 10 1 11 0.16354079435051D+01 0.00000000000000D+00 + 2 10 1 11 0.41303763886505D-17 0.00000000000000D+00 + 3 10 1 11 0.44556372469830D-17 0.00000000000000D+00 + 1 11 1 11 0.11921006493080D+03 0.00000000000000D+00 + 2 11 1 11 0.64749534148268D-13 0.00000000000000D+00 + 3 11 1 11 0.20631366146135D-12 0.00000000000000D+00 + 1 12 1 11 -0.23862115665335D+00 0.00000000000000D+00 + 2 12 1 11 -0.41041342037585D-17 0.00000000000000D+00 + 3 12 1 11 0.47699364890307D-17 0.00000000000000D+00 + 1 13 1 11 -0.25076952485740D+00 0.00000000000000D+00 + 2 13 1 11 -0.11172030516177D-15 0.00000000000000D+00 + 3 13 1 11 0.54874087443351D-16 0.00000000000000D+00 + 1 14 1 11 -0.13504907097576D+00 0.00000000000000D+00 + 2 14 1 11 -0.50255445187448D-16 0.00000000000000D+00 + 3 14 1 11 -0.50255441172727D-16 0.00000000000000D+00 + 1 15 1 11 -0.25076952485740D+00 0.00000000000000D+00 + 2 15 1 11 0.54657247008828D-16 0.00000000000000D+00 + 3 15 1 11 -0.11177451661457D-15 0.00000000000000D+00 + 1 16 1 11 0.21120081637544D+00 -0.79529324992517D-16 + 2 16 1 11 -0.33996042404436D+00 -0.21034565389788D-17 + 3 16 1 11 0.34648445227572D+00 0.37335692771115D-16 + 1 17 1 11 -0.85722144824224D+00 -0.81489699133731D-16 + 2 17 1 11 -0.46753659802674D+00 -0.27650683984802D-16 + 3 17 1 11 -0.46753659802675D+00 0.32662975463885D-16 + 1 18 1 11 -0.26004761419978D+02 0.11047873288916D-15 + 2 18 1 11 -0.13966428906662D+02 0.48109944452722D-19 + 3 18 1 11 -0.13966428906661D+02 0.19580864522661D-16 + 1 19 1 11 0.21120081637545D+00 0.56926594390052D-17 + 2 19 1 11 0.34648445227575D+00 -0.84744826647336D-17 + 3 19 1 11 -0.33996042404438D+00 0.87752879239900D-17 + 1 20 1 11 -0.37485941932136D+00 -0.18924944580333D-15 + 2 20 1 11 -0.45485711635127D+00 -0.44004452227622D-17 + 3 20 1 11 -0.46522743564035D+00 -0.19546752539155D-16 + 1 21 1 11 0.26942964081940D+00 0.17199133551869D-16 + 2 21 1 11 -0.21573688483275D-01 -0.32965767533504D-16 + 3 21 1 11 -0.21573688483268D-01 0.90409297440164D-17 + 1 22 1 11 0.81936572652454D-01 -0.12549897089379D-16 + 2 22 1 11 0.50761007616532D-01 0.23596968065370D-16 + 3 22 1 11 0.50761007616451D-01 0.13250380718221D-16 + 1 23 1 11 -0.37485941932151D+00 0.16738622928045D-15 + 2 23 1 11 -0.46522743564034D+00 0.36434953552196D-16 + 3 23 1 11 -0.45485711635117D+00 -0.20527358637214D-17 + 1 24 1 11 0.32405780076108D+01 -0.19087297376150D-15 + 2 24 1 11 -0.13578167313624D+01 -0.32999581594798D-16 + 3 24 1 11 -0.13578167313624D+01 -0.30758981782314D-16 + 1 25 1 11 0.32405780076108D+01 -0.20935669880612D-16 + 2 25 1 11 0.13578167313624D+01 -0.30004735793739D-16 + 3 25 1 11 -0.13578167313624D+01 -0.57483252265884D-17 + 1 26 1 11 0.32405780076108D+01 0.65211270203977D-16 + 2 26 1 11 -0.13578167313624D+01 -0.17207288573993D-17 + 3 26 1 11 0.13578167313624D+01 -0.17549523932911D-16 + 1 27 1 11 0.32405780076108D+01 0.34216617531775D-16 + 2 27 1 11 0.13578167313624D+01 0.21051490128534D-16 + 3 27 1 11 0.13578167313624D+01 0.89474183997959D-18 + 1 28 1 11 -0.29533772217705D-01 -0.17968624922751D-15 + 2 28 1 11 -0.65345278829125D-01 0.35796514341997D-16 + 3 28 1 11 -0.65345278829125D-01 -0.33542670752344D-16 + 1 29 1 11 -0.29533772217694D-01 0.14951970966746D-16 + 2 29 1 11 0.65345278829130D-01 -0.27562636789981D-16 + 3 29 1 11 -0.65345278829130D-01 -0.20174336193874D-16 + 1 30 1 11 -0.29533772217698D-01 0.91545457047134D-16 + 2 30 1 11 -0.65345278829130D-01 0.50933748510765D-18 + 3 30 1 11 0.65345278829130D-01 -0.28875067343007D-16 + 1 31 1 11 -0.29533772217701D-01 -0.21127002224944D-15 + 2 31 1 11 0.65345278829125D-01 0.17874276808087D-17 + 3 31 1 11 0.65345278829125D-01 -0.26964210811624D-16 + 1 32 1 11 0.81947426797592D-01 -0.23908042168544D-16 + 2 32 1 11 0.50835817538221D-01 0.95993118649888D-17 + 3 32 1 11 -0.50835817538255D-01 0.75402568083822D-17 + 1 33 1 11 -0.37498050423353D+00 -0.56695716109038D-16 + 2 33 1 11 -0.46462462382008D+00 -0.11431469060584D-16 + 3 33 1 11 0.45501407968520D+00 0.19020267317186D-16 + 1 34 1 11 -0.37498050423366D+00 -0.51770969719986D-16 + 2 34 1 11 -0.45501407968523D+00 0.38819190198257D-16 + 3 34 1 11 0.46462462382006D+00 -0.19752310425743D-16 + 1 35 1 11 0.26939096072921D+00 0.15718415625869D-16 + 2 35 1 11 -0.21549861734920D-01 -0.11312470167731D-18 + 3 35 1 11 0.21549861734913D-01 0.50455831759627D-17 + 1 36 1 11 -0.26002968654618D+02 -0.16300818263746D-15 + 2 36 1 11 -0.13960430390390D+02 0.23386674473282D-16 + 3 36 1 11 0.13960430390390D+02 0.22636083890377D-16 + 1 37 1 11 0.21075421480057D+00 0.82647091281832D-16 + 2 37 1 11 0.34690374812178D+00 0.74697940838385D-17 + 3 37 1 11 0.34033249671594D+00 0.26286176603764D-16 + 1 38 1 11 0.21075421480058D+00 -0.27180876740924D-16 + 2 38 1 11 -0.34033249671602D+00 -0.25377468617069D-16 + 3 38 1 11 -0.34690374812173D+00 -0.65030733317830D-16 + 1 39 1 11 -0.85715481780125D+00 -0.13617654401691D-15 + 2 39 1 11 -0.46829113774879D+00 0.13862365290865D-16 + 3 39 1 11 0.46829113774879D+00 -0.33163480542073D-16 + 1 40 1 11 -0.21575864670251D+00 -0.26064266570128D-15 + 2 40 1 11 0.93845201709299D-01 -0.96784131219874D-16 + 3 40 1 11 -0.11601899127567D+00 0.48370893407910D-19 + 1 41 1 11 -0.21575864670251D+00 0.12402079812921D-15 + 2 41 1 11 -0.93845201709304D-01 0.28716976078591D-16 + 3 41 1 11 0.11601899127567D+00 0.30524623789333D-17 + 1 42 1 11 -0.30638988320256D+01 -0.13573745959604D-15 + 2 42 1 11 0.13211942367618D+01 0.22313725225140D-17 + 3 42 1 11 0.33050853082272D+01 0.34902320696981D-17 + 1 43 1 11 -0.30638988320256D+01 -0.94404963089457D-17 + 2 43 1 11 -0.13211942367619D+01 -0.55724193607751D-16 + 3 43 1 11 -0.33050853082271D+01 -0.45647023023462D-17 + 1 44 1 11 -0.21575864670251D+00 -0.27423446797904D-16 + 2 44 1 11 0.93845201709301D-01 0.28785077034635D-16 + 3 44 1 11 0.11601899127567D+00 0.19087818094869D-19 + 1 45 1 11 -0.21575864670251D+00 -0.55029320863087D-16 + 2 45 1 11 -0.93845201709300D-01 0.12823057341297D-16 + 3 45 1 11 -0.11601899127567D+00 0.64366890201402D-18 + 1 46 1 11 -0.30638988320256D+01 0.20895543235622D-15 + 2 46 1 11 0.13211942367619D+01 0.74018585333741D-16 + 3 46 1 11 -0.33050853082271D+01 0.18485776205460D-17 + 1 47 1 11 -0.30638988320256D+01 0.23394433997214D-15 + 2 47 1 11 -0.13211942367618D+01 0.10611804155071D-15 + 3 47 1 11 0.33050853082271D+01 0.36804021881952D-18 + 1 48 1 11 -0.37498050423372D+00 0.16397652718667D-15 + 2 48 1 11 0.45501407968525D+00 -0.13309678501810D-17 + 3 48 1 11 -0.46462462382011D+00 -0.34979965021202D-17 + 1 49 1 11 0.26939096072922D+00 -0.63842624436311D-16 + 2 49 1 11 0.21549861734933D-01 -0.10250598699425D-16 + 3 49 1 11 -0.21549861734922D-01 0.32761352693827D-16 + 1 50 1 11 0.81947426797948D-01 -0.14013299269287D-16 + 2 50 1 11 -0.50835817538452D-01 0.29620214427380D-16 + 3 50 1 11 0.50835817538322D-01 0.44467817572633D-16 + 1 51 1 11 -0.37498050423350D+00 -0.79628819240495D-17 + 2 51 1 11 0.46462462382001D+00 -0.54143245628619D-17 + 3 51 1 11 -0.45501407968529D+00 -0.30559075174384D-17 + 1 52 1 11 0.21075421480058D+00 -0.18418544690545D-15 + 2 52 1 11 0.34033249671622D+00 0.11350243938408D-16 + 3 52 1 11 0.34690374812170D+00 -0.21572390235579D-16 + 1 53 1 11 -0.85715481780120D+00 -0.11226301145283D-15 + 2 53 1 11 0.46829113774877D+00 -0.30061581433355D-16 + 3 53 1 11 -0.46829113774878D+00 -0.13994385940748D-16 + 1 54 1 11 -0.26002968654618D+02 0.32257858628896D-17 + 2 54 1 11 0.13960430390390D+02 -0.13666798289824D-16 + 3 54 1 11 -0.13960430390391D+02 -0.15944451760166D-16 + 1 55 1 11 0.21075421480057D+00 -0.87901190215941D-16 + 2 55 1 11 -0.34690374812169D+00 -0.28530001789184D-16 + 3 55 1 11 -0.34033249671599D+00 -0.12993455393726D-16 + 1 56 1 11 -0.30638988320256D+01 0.63233316397042D-17 + 2 56 1 11 0.33050853082272D+01 -0.43620711549662D-17 + 3 56 1 11 0.13211942367619D+01 -0.12648590910018D-16 + 1 57 1 11 -0.21575864670251D+00 -0.70162910967977D-16 + 2 57 1 11 -0.11601899127568D+00 -0.26875970941961D-18 + 3 57 1 11 0.93845201709304D-01 0.50729294359574D-16 + 1 58 1 11 -0.30638988320256D+01 -0.57009494253447D-16 + 2 58 1 11 -0.33050853082272D+01 0.18045523363238D-17 + 3 58 1 11 -0.13211942367619D+01 0.53530913208285D-16 + 1 59 1 11 -0.21575864670251D+00 -0.18495775761721D-15 + 2 59 1 11 0.11601899127567D+00 -0.15851864957376D-17 + 3 59 1 11 -0.93845201709303D-01 0.17344732211489D-16 + 1 60 1 11 -0.30638988320256D+01 -0.28977142588452D-16 + 2 60 1 11 -0.33050853082271D+01 0.46627183681081D-17 + 3 60 1 11 0.13211942367618D+01 -0.39822426169534D-16 + 1 61 1 11 -0.21575864670251D+00 -0.33873399190270D-16 + 2 61 1 11 0.11601899127567D+00 -0.10989986656477D-17 + 3 61 1 11 0.93845201709301D-01 0.10551484392872D-17 + 1 62 1 11 -0.30638988320256D+01 -0.17841570641475D-15 + 2 62 1 11 0.33050853082271D+01 0.86705411234153D-18 + 3 62 1 11 -0.13211942367618D+01 0.29394201902669D-16 + 1 63 1 11 -0.21575864670251D+00 -0.11045017968273D-15 + 2 63 1 11 -0.11601899127567D+00 -0.22605306264653D-18 + 3 63 1 11 -0.93845201709300D-01 -0.75033682158213D-16 + 1 64 1 11 0.34812513604297D+00 -0.11669297693414D-15 + 2 64 1 11 -0.58550197136597D-03 0.22623242764393D-16 + 3 64 1 11 0.10977868710131D-15 -0.80580072681891D-17 + 1 65 1 11 0.34812513604301D+00 0.12652612541242D-16 + 2 65 1 11 0.58550197136649D-03 -0.45048082907789D-16 + 3 65 1 11 0.24684702600593D-15 -0.28553305788845D-18 + 2 67 1 11 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 11 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 11 0.13680820868450D+02 -0.19638010610351D-16 + 2 1 2 11 -0.26380403735131D+02 0.34209907683995D-15 + 3 1 2 11 -0.14567610441024D+02 -0.83678160474515D-17 + 1 2 2 11 -0.31360025830506D+00 -0.29714868757654D-16 + 2 2 2 11 0.14062091422055D+00 0.13931334283916D-15 + 3 2 2 11 -0.36794478809993D+00 0.26744688405094D-16 + 1 3 2 11 0.42014911564423D+00 -0.15658426248992D-16 + 2 3 2 11 0.54540329466193D+00 -0.28122893573071D-15 + 3 3 2 11 -0.32100479112210D+00 -0.98160695203356D-17 + 1 4 2 11 0.47386017200006D+00 0.33056675834860D-16 + 2 4 2 11 -0.36753651542806D+00 0.87405155333662D-16 + 3 4 2 11 -0.44471794370565D+00 -0.48382405472111D-17 + 1 5 2 11 -0.62253763049863D-01 -0.25544469080570D-17 + 2 5 2 11 0.16837728753467D+00 0.28654157634227D-15 + 3 5 2 11 0.13309048952210D+00 0.13540797846438D-16 + 1 6 2 11 0.41799765230709D+00 -0.55971636453783D-17 + 2 6 2 11 -0.76085550268744D+00 -0.55470181318249D-16 + 3 6 2 11 -0.50796404958534D+00 0.93937287698771D-17 + 1 7 2 11 0.49376388172361D+00 0.88735944869915D-17 + 2 7 2 11 -0.38471724455042D+00 -0.24012865635110D-16 + 3 7 2 11 -0.45441403519213D+00 0.65022346635958D-17 + 1 8 2 11 0.17330317339690D-01 -0.15248060533612D-16 + 2 8 2 11 0.25547462007207D+00 0.50324690407667D-16 + 3 8 2 11 -0.13715963087912D-01 0.27878530999135D-16 + 1 9 2 11 0.47699690665374D-17 0.00000000000000D+00 + 2 9 2 11 -0.39753486030274D+00 0.00000000000000D+00 + 3 9 2 11 0.42104183724603D-16 0.00000000000000D+00 + 1 10 2 11 0.41303763886505D-17 0.00000000000000D+00 + 2 10 2 11 -0.15087966293888D+00 0.00000000000000D+00 + 3 10 2 11 -0.11715141888139D-15 0.00000000000000D+00 + 1 11 2 11 0.64749534148268D-13 0.00000000000000D+00 + 2 11 2 11 0.12024650858602D+03 0.00000000000000D+00 + 3 11 2 11 0.83579431555782D-13 0.00000000000000D+00 + 1 12 2 11 -0.41041342037585D-17 0.00000000000000D+00 + 2 12 2 11 -0.19408220979434D+00 0.00000000000000D+00 + 3 12 2 11 -0.39823390513337D-16 0.00000000000000D+00 + 1 13 2 11 -0.11172030516177D-15 0.00000000000000D+00 + 2 13 2 11 -0.13124231199622D+00 0.00000000000000D+00 + 3 13 2 11 0.33883313719073D-16 0.00000000000000D+00 + 1 14 2 11 -0.50255445187448D-16 0.00000000000000D+00 + 2 14 2 11 -0.10038484629390D+00 0.00000000000000D+00 + 3 14 2 11 -0.49055300179113D-16 0.00000000000000D+00 + 1 15 2 11 0.54657247008828D-16 0.00000000000000D+00 + 2 15 2 11 0.14916193948218D+01 0.00000000000000D+00 + 3 15 2 11 0.44624519882528D-16 0.00000000000000D+00 + 1 16 2 11 -0.42015639042688D+00 -0.21034565389788D-17 + 2 16 2 11 0.54545784522195D+00 0.13742897546914D-16 + 3 16 2 11 -0.32110494697043D+00 0.28402644840893D-16 + 1 17 2 11 -0.47494090843271D+00 -0.27650683984802D-16 + 2 17 2 11 -0.36710398362790D+00 -0.30005718184852D-16 + 3 17 2 11 -0.44415925481134D+00 -0.23076938634820D-16 + 1 18 2 11 -0.13679662289396D+02 0.48109944452722D-19 + 2 18 2 11 -0.26379725580492D+02 0.28423324818460D-15 + 3 18 2 11 -0.14567238163059D+02 -0.23299765667729D-16 + 1 19 2 11 0.31345089042393D+00 -0.84744826647336D-17 + 2 19 2 11 0.14057722780308D+00 -0.55984846916227D-16 + 3 19 2 11 -0.36758802602356D+00 -0.78759931832282D-17 + 1 20 2 11 -0.49380935933888D+00 -0.44004452227622D-17 + 2 20 2 11 -0.38497280717366D+00 -0.63473040492006D-16 + 3 20 2 11 -0.45427667066534D+00 -0.24666821211235D-16 + 1 21 2 11 -0.17132008708430D-01 -0.32965767533504D-16 + 2 21 2 11 0.25558392939323D+00 0.56782842186175D-16 + 3 21 2 11 -0.13863894612279D-01 0.23083935975406D-17 + 1 22 2 11 0.61839945774373D-01 0.23596968065370D-16 + 2 22 2 11 0.16849926571057D+00 -0.16012655773916D-15 + 3 22 2 11 0.13318937730154D+00 -0.31911357300805D-16 + 1 23 2 11 -0.41800475205424D+00 0.36434953552196D-16 + 2 23 2 11 -0.76098098408769D+00 -0.35903446089044D-16 + 3 23 2 11 -0.50801145035334D+00 0.55386104929040D-16 + 1 24 2 11 0.13531698361670D+01 -0.32999581594798D-16 + 2 24 2 11 -0.30651066230475D+01 0.10557017853554D-15 + 3 24 2 11 -0.30780436947604D+01 0.29946850281685D-17 + 1 25 2 11 -0.13531698361670D+01 -0.30004735793739D-16 + 2 25 2 11 -0.30651066230475D+01 0.12320859569314D-15 + 3 25 2 11 0.30780436947604D+01 -0.21123026005771D-17 + 1 26 2 11 0.13531698361670D+01 -0.17207288573993D-17 + 2 26 2 11 -0.30651066230475D+01 0.22801702921450D-15 + 3 26 2 11 0.30780436947604D+01 0.13840144872194D-17 + 1 27 2 11 -0.13531698361670D+01 0.21051490128534D-16 + 2 27 2 11 -0.30651066230475D+01 -0.23550213206254D-15 + 3 27 2 11 -0.30780436947604D+01 -0.12394637664719D-17 + 1 28 2 11 0.89353214729586D-01 0.35796514341997D-16 + 2 28 2 11 -0.20631945270958D+00 0.36453486328459D-16 + 3 28 2 11 0.13154524935705D+00 -0.12439141685129D-18 + 1 29 2 11 -0.89353214729582D-01 -0.27562636789981D-16 + 2 29 2 11 -0.20631945270958D+00 -0.27552057039474D-15 + 3 29 2 11 -0.13154524935705D+00 0.11214063313542D-17 + 1 30 2 11 0.89353214729582D-01 0.50933748510765D-18 + 2 30 2 11 -0.20631945270958D+00 0.62097673771075D-16 + 3 30 2 11 -0.13154524935705D+00 0.87472879132861D-19 + 1 31 2 11 -0.89353214729586D-01 0.17874276808087D-17 + 2 31 2 11 -0.20631945270958D+00 -0.87868155173227D-17 + 3 31 2 11 0.13154524935704D+00 -0.18509496825223D-17 + 1 32 2 11 0.62253763050021D-01 0.95993118649888D-17 + 2 32 2 11 0.16837728753460D+00 0.95328552954347D-16 + 3 32 2 11 -0.13309048952208D+00 0.19401186041117D-16 + 1 33 2 11 -0.41799765230715D+00 -0.11431469060584D-16 + 2 33 2 11 -0.76085550268758D+00 0.24173056239919D-15 + 3 33 2 11 0.50796404958536D+00 -0.37219909974757D-16 + 1 34 2 11 -0.49376388172361D+00 0.38819190198257D-16 + 2 34 2 11 -0.38471724455037D+00 -0.64695417465948D-16 + 3 34 2 11 0.45441403519211D+00 -0.20798720416404D-16 + 1 35 2 11 -0.17330317339696D-01 -0.11312470167731D-18 + 2 35 2 11 0.25547462007194D+00 -0.10111079249635D-15 + 3 35 2 11 0.13715963087906D-01 0.24293092877026D-16 + 1 36 2 11 -0.13680820868452D+02 0.23386674473282D-16 + 2 36 2 11 -0.26380403735131D+02 -0.15126598281757D-17 + 3 36 2 11 0.14567610441022D+02 -0.21465910412154D-16 + 1 37 2 11 0.31360025830503D+00 0.74697940838385D-17 + 2 37 2 11 0.14062091422061D+00 -0.15908064673570D-15 + 3 37 2 11 0.36794478809992D+00 -0.33116346276008D-16 + 1 38 2 11 -0.42014911564415D+00 -0.25377468617069D-16 + 2 38 2 11 0.54540329466180D+00 -0.90575291190026D-16 + 3 38 2 11 0.32100479112209D+00 0.39056131612605D-16 + 1 39 2 11 -0.47386017200010D+00 0.13862365290865D-16 + 2 39 2 11 -0.36753651542798D+00 0.32744541674651D-15 + 3 39 2 11 0.44471794370561D+00 -0.62113772733002D-16 + 1 40 2 11 -0.10667108461057D+00 -0.96784131219874D-16 + 2 40 2 11 -0.31187185983448D-01 -0.54306259880804D-16 + 3 40 2 11 0.99859390646115D-01 0.25514677686661D-16 + 1 41 2 11 0.10667108461057D+00 0.28716976078591D-16 + 2 41 2 11 -0.31187185983451D-01 -0.20368288358563D-15 + 3 41 2 11 0.99859390646110D-01 0.16642759601902D-17 + 1 42 2 11 -0.13515021593717D+01 0.22313725225140D-17 + 2 42 2 11 0.31311444326211D+01 -0.29745502595047D-16 + 3 42 2 11 0.12841378769088D+01 -0.16415372388904D-16 + 1 43 2 11 0.13515021593716D+01 -0.55724193607751D-16 + 2 43 2 11 0.31311444326211D+01 -0.10740744040380D-15 + 3 43 2 11 0.12841378769088D+01 0.29563177542954D-16 + 1 44 2 11 -0.10667108461057D+00 0.28785077034635D-16 + 2 44 2 11 -0.31187185983458D-01 -0.53543577473551D-16 + 3 44 2 11 -0.99859390646112D-01 0.34018887438849D-16 + 1 45 2 11 0.10667108461057D+00 0.12823057341297D-16 + 2 45 2 11 -0.31187185983451D-01 0.11705328255218D-16 + 3 45 2 11 -0.99859390646114D-01 -0.50250541122779D-17 + 1 46 2 11 -0.13515021593716D+01 0.74018585333741D-16 + 2 46 2 11 0.31311444326210D+01 -0.19330309260187D-15 + 3 46 2 11 -0.12841378769088D+01 0.56990819129039D-17 + 1 47 2 11 0.13515021593717D+01 0.10611804155071D-15 + 2 47 2 11 0.31311444326210D+01 -0.57226538446789D-16 + 3 47 2 11 -0.12841378769088D+01 0.28252417747638D-16 + 1 48 2 11 0.49380935933888D+00 -0.13309678501810D-17 + 2 48 2 11 -0.38497280717375D+00 0.16388798622613D-15 + 3 48 2 11 0.45427667066531D+00 0.11909283526370D-16 + 1 49 2 11 0.17132008708459D-01 -0.10250598699425D-16 + 2 49 2 11 0.25558392939322D+00 -0.12797566133684D-15 + 3 49 2 11 0.13863894612279D-01 -0.51340317928196D-17 + 1 50 2 11 -0.61839945774206D-01 0.29620214427380D-16 + 2 50 2 11 0.16849926571053D+00 -0.57425319889277D-16 + 3 50 2 11 -0.13318937730154D+00 0.82902428088187D-17 + 1 51 2 11 0.41800475205423D+00 -0.54143245628619D-17 + 2 51 2 11 -0.76098098408767D+00 0.62732999863350D-16 + 3 51 2 11 0.50801145035334D+00 0.23958011176789D-16 + 1 52 2 11 0.42015639042686D+00 0.11350243938408D-16 + 2 52 2 11 0.54545784522198D+00 0.79329924814182D-16 + 3 52 2 11 0.32110494697048D+00 0.38297990961445D-16 + 1 53 2 11 0.47494090843275D+00 -0.30061581433355D-16 + 2 53 2 11 -0.36710398362791D+00 -0.28824928774925D-16 + 3 53 2 11 0.44415925481134D+00 -0.37103040477346D-16 + 1 54 2 11 0.13679662289396D+02 -0.13666798289824D-16 + 2 54 2 11 -0.26379725580492D+02 0.30808940797704D-15 + 3 54 2 11 0.14567238163060D+02 0.72553410628076D-17 + 1 55 2 11 -0.31345089042388D+00 -0.28530001789184D-16 + 2 55 2 11 0.14057722780300D+00 -0.11276070665674D-15 + 3 55 2 11 0.36758802602363D+00 -0.88154560392315D-17 + 1 56 2 11 0.31640814690755D+01 -0.43620711549662D-17 + 2 56 2 11 -0.29877680086004D+01 0.14089802583803D-15 + 3 56 2 11 -0.13319450553958D+01 0.52682515705028D-16 + 1 57 2 11 -0.85136664112453D-01 -0.26875970941961D-18 + 2 57 2 11 -0.25453576973771D+00 -0.11501191605976D-15 + 3 57 2 11 -0.11196569201530D+00 -0.30033273522395D-16 + 1 58 2 11 -0.31640814690755D+01 0.18045523363238D-17 + 2 58 2 11 -0.29877680086003D+01 -0.83885476111897D-16 + 3 58 2 11 -0.13319450553958D+01 0.42177860920431D-17 + 1 59 2 11 0.85136664112451D-01 -0.15851864957376D-17 + 2 59 2 11 -0.25453576973771D+00 -0.10689032007881D-15 + 3 59 2 11 -0.11196569201530D+00 0.99866296481878D-16 + 1 60 2 11 -0.31640814690755D+01 0.46627183681081D-17 + 2 60 2 11 -0.29877680086003D+01 -0.19975897883650D-17 + 3 60 2 11 0.13319450553958D+01 0.12122266422736D-16 + 1 61 2 11 0.85136664112451D-01 -0.10989986656477D-17 + 2 61 2 11 -0.25453576973771D+00 -0.24535988295165D-15 + 3 61 2 11 0.11196569201530D+00 0.10616301781688D-15 + 1 62 2 11 0.31640814690755D+01 0.86705411234153D-18 + 2 62 2 11 -0.29877680086003D+01 -0.80572421680992D-16 + 3 62 2 11 0.13319450553958D+01 -0.21997384704405D-16 + 1 63 2 11 -0.85136664112451D-01 -0.22605306264653D-18 + 2 63 2 11 -0.25453576973771D+00 0.22845159715719D-15 + 3 63 2 11 0.11196569201530D+00 0.93380410414414D-16 + 1 64 2 11 0.10916397703737D-15 0.22623242764393D-16 + 2 64 2 11 -0.12345302357591D+00 -0.13667837239119D-16 + 3 64 2 11 0.99644983610389D-01 0.18741620680904D-18 + 1 65 2 11 0.41746336616655D-15 -0.45048082907789D-16 + 2 65 2 11 -0.12345302357592D+00 -0.18540021471341D-18 + 3 65 2 11 -0.99644983610389D-01 -0.28112316554953D-19 + 1 67 2 11 0.00000000000000D+00 0.00000000000000D+00 + 3 67 2 11 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 11 0.13680820868450D+02 0.38240674517582D-16 + 2 1 3 11 -0.14567610441024D+02 -0.83678160474515D-17 + 3 1 3 11 -0.26380403735131D+02 -0.92030102924814D-16 + 1 2 3 11 0.42014911564423D+00 -0.20107969104273D-16 + 2 2 3 11 -0.32100479112210D+00 0.26744688405094D-16 + 3 2 3 11 0.54540329466193D+00 -0.19477721766326D-16 + 1 3 3 11 -0.31360025830505D+00 -0.11432483402891D-16 + 2 3 3 11 -0.36794478809992D+00 -0.98160695203356D-17 + 3 3 3 11 0.14062091422055D+00 -0.10191911109202D-15 + 1 4 3 11 0.47386017200006D+00 0.47360791159728D-16 + 2 4 3 11 -0.44471794370565D+00 -0.48382405472111D-17 + 3 4 3 11 -0.36753651542806D+00 0.15797876688481D-15 + 1 5 3 11 -0.62253763049859D-01 0.25220717970043D-16 + 2 5 3 11 0.13309048952210D+00 0.13540797846438D-16 + 3 5 3 11 0.16837728753467D+00 0.95537712679465D-16 + 1 6 3 11 0.49376388172361D+00 0.82936600802870D-17 + 2 6 3 11 -0.45441403519213D+00 0.93937287698771D-17 + 3 6 3 11 -0.38471724455042D+00 0.64381042165267D-16 + 1 7 3 11 0.41799765230709D+00 0.88347899670935D-17 + 2 7 3 11 -0.50796404958534D+00 0.65022346635958D-17 + 3 7 3 11 -0.76085550268744D+00 0.72625643848304D-16 + 1 8 3 11 0.17330317339690D-01 0.36830446290352D-16 + 2 8 3 11 -0.13715963087912D-01 0.27878530999135D-16 + 3 8 3 11 0.25547462007208D+00 0.90055228609068D-16 + 1 9 3 11 -0.41057626465234D-17 0.00000000000000D+00 + 2 9 3 11 0.42104183724603D-16 0.00000000000000D+00 + 3 9 3 11 -0.19408220979434D+00 0.00000000000000D+00 + 1 10 3 11 0.44556372469830D-17 0.00000000000000D+00 + 2 10 3 11 -0.11715141888139D-15 0.00000000000000D+00 + 3 10 3 11 -0.15087966293888D+00 0.00000000000000D+00 + 1 11 3 11 0.20631366146135D-12 0.00000000000000D+00 + 2 11 3 11 0.83579431555782D-13 0.00000000000000D+00 + 3 11 3 11 0.12024650858602D+03 0.00000000000000D+00 + 1 12 3 11 0.47699364890307D-17 0.00000000000000D+00 + 2 12 3 11 -0.39823390513337D-16 0.00000000000000D+00 + 3 12 3 11 -0.39753486030273D+00 0.00000000000000D+00 + 1 13 3 11 0.54874087443351D-16 0.00000000000000D+00 + 2 13 3 11 0.33883313719073D-16 0.00000000000000D+00 + 3 13 3 11 0.14916193948218D+01 0.00000000000000D+00 + 1 14 3 11 -0.50255441172727D-16 0.00000000000000D+00 + 2 14 3 11 -0.49055300179113D-16 0.00000000000000D+00 + 3 14 3 11 -0.10038484629390D+00 0.00000000000000D+00 + 1 15 3 11 -0.11177451661457D-15 0.00000000000000D+00 + 2 15 3 11 0.44624519882528D-16 0.00000000000000D+00 + 3 15 3 11 -0.13124231199622D+00 0.00000000000000D+00 + 1 16 3 11 0.31360025830505D+00 0.37335692771115D-16 + 2 16 3 11 -0.36794478809993D+00 0.28402644840893D-16 + 3 16 3 11 0.14062091422055D+00 -0.53594816814896D-16 + 1 17 3 11 -0.47386017200006D+00 0.32662975463885D-16 + 2 17 3 11 -0.44471794370565D+00 -0.23076938634820D-16 + 3 17 3 11 -0.36753651542806D+00 0.55595465591989D-16 + 1 18 3 11 -0.13680820868451D+02 0.19580864522661D-16 + 2 18 3 11 -0.14567610441024D+02 -0.23299765667729D-16 + 3 18 3 11 -0.26380403735131D+02 -0.15155078553357D-15 + 1 19 3 11 -0.42014911564423D+00 0.87752879239900D-17 + 2 19 3 11 -0.32100479112210D+00 -0.78759931832282D-17 + 3 19 3 11 0.54540329466194D+00 0.26651752741260D-16 + 1 20 3 11 -0.41799765230709D+00 -0.19546752539155D-16 + 2 20 3 11 -0.50796404958534D+00 -0.24666821211235D-16 + 3 20 3 11 -0.76085550268744D+00 -0.93703585207525D-16 + 1 21 3 11 -0.17330317339690D-01 0.90409297440164D-17 + 2 21 3 11 -0.13715963087911D-01 0.23083935975406D-17 + 3 21 3 11 0.25547462007208D+00 0.10729599656993D-15 + 1 22 3 11 0.62253763049859D-01 0.13250380718221D-16 + 2 22 3 11 0.13309048952210D+00 -0.31911357300805D-16 + 3 22 3 11 0.16837728753467D+00 -0.21269558628896D-15 + 1 23 3 11 -0.49376388172361D+00 -0.20527358637214D-17 + 2 23 3 11 -0.45441403519213D+00 0.55386104929040D-16 + 3 23 3 11 -0.38471724455043D+00 0.24511781808074D-16 + 1 24 3 11 0.13531698361670D+01 -0.30758981782314D-16 + 2 24 3 11 -0.30780436947604D+01 0.29946850281685D-17 + 3 24 3 11 -0.30651066230475D+01 -0.21680381930842D-15 + 1 25 3 11 0.13531698361670D+01 -0.57483252265884D-17 + 2 25 3 11 0.30780436947604D+01 -0.21123026005771D-17 + 3 25 3 11 -0.30651066230475D+01 -0.29823819239321D-15 + 1 26 3 11 -0.13531698361670D+01 -0.17549523932911D-16 + 2 26 3 11 0.30780436947604D+01 0.13840144872194D-17 + 3 26 3 11 -0.30651066230475D+01 -0.58765231422228D-16 + 1 27 3 11 -0.13531698361670D+01 0.89474183997959D-18 + 2 27 3 11 -0.30780436947604D+01 -0.12394637664719D-17 + 3 27 3 11 -0.30651066230475D+01 0.21126616539323D-15 + 1 28 3 11 0.89353214729589D-01 -0.33542670752344D-16 + 2 28 3 11 0.13154524935705D+00 -0.12439141685129D-18 + 3 28 3 11 -0.20631945270958D+00 0.85765798468561D-17 + 1 29 3 11 0.89353214729584D-01 -0.20174336193874D-16 + 2 29 3 11 -0.13154524935705D+00 0.11214063313542D-17 + 3 29 3 11 -0.20631945270958D+00 -0.22391734973555D-15 + 1 30 3 11 -0.89353214729584D-01 -0.28875067343007D-16 + 2 30 3 11 -0.13154524935705D+00 0.87472879132861D-19 + 3 30 3 11 -0.20631945270958D+00 0.22293118395087D-15 + 1 31 3 11 -0.89353214729588D-01 -0.26964210811624D-16 + 2 31 3 11 0.13154524935704D+00 -0.18509496825223D-17 + 3 31 3 11 -0.20631945270958D+00 0.27726432382397D-15 + 1 32 3 11 -0.62253763049847D-01 0.75402568083822D-17 + 2 32 3 11 -0.13309048952211D+00 0.19401186041117D-16 + 3 32 3 11 0.16837728753467D+00 0.20889869024792D-15 + 1 33 3 11 0.49376388172361D+00 0.19020267317186D-16 + 2 33 3 11 0.45441403519213D+00 -0.37219909974757D-16 + 3 33 3 11 -0.38471724455043D+00 -0.36887196812670D-15 + 1 34 3 11 0.41799765230709D+00 -0.19752310425743D-16 + 2 34 3 11 0.50796404958534D+00 -0.20798720416404D-16 + 3 34 3 11 -0.76085550268744D+00 0.51059807012289D-16 + 1 35 3 11 0.17330317339693D-01 0.50455831759627D-17 + 2 35 3 11 0.13715963087913D-01 0.24293092877026D-16 + 3 35 3 11 0.25547462007207D+00 0.14706638484142D-15 + 1 36 3 11 0.13680820868450D+02 0.22636083890377D-16 + 2 36 3 11 0.14567610441024D+02 -0.21465910412154D-16 + 3 36 3 11 -0.26380403735131D+02 0.37983888277828D-15 + 1 37 3 11 0.42014911564423D+00 0.26286176603764D-16 + 2 37 3 11 0.32100479112210D+00 -0.33116346276008D-16 + 3 37 3 11 0.54540329466192D+00 0.13485946540474D-15 + 1 38 3 11 -0.31360025830505D+00 -0.65030733317830D-16 + 2 38 3 11 0.36794478809993D+00 0.39056131612605D-16 + 3 38 3 11 0.14062091422055D+00 -0.28472729474588D-15 + 1 39 3 11 0.47386017200006D+00 -0.33163480542073D-16 + 2 39 3 11 0.44471794370565D+00 -0.62113772733002D-16 + 3 39 3 11 -0.36753651542807D+00 -0.29924943905037D-15 + 1 40 3 11 -0.85136664112452D-01 0.48370893407910D-19 + 2 40 3 11 -0.11196569201530D+00 0.25514677686661D-16 + 3 40 3 11 -0.25453576973771D+00 0.13153596823522D-15 + 1 41 3 11 0.85136664112450D-01 0.30524623789333D-17 + 2 41 3 11 -0.11196569201530D+00 0.16642759601902D-17 + 3 41 3 11 -0.25453576973771D+00 -0.18290113529462D-15 + 1 42 3 11 0.31640814690755D+01 0.34902320696981D-17 + 2 42 3 11 -0.13319450553958D+01 -0.16415372388904D-16 + 3 42 3 11 -0.29877680086003D+01 0.19521071782573D-15 + 1 43 3 11 -0.31640814690755D+01 -0.45647023023462D-17 + 2 43 3 11 -0.13319450553958D+01 0.29563177542954D-16 + 3 43 3 11 -0.29877680086003D+01 0.96282923880711D-16 + 1 44 3 11 0.85136664112450D-01 0.19087818094869D-19 + 2 44 3 11 0.11196569201530D+00 0.34018887438849D-16 + 3 44 3 11 -0.25453576973771D+00 -0.26982116803489D-15 + 1 45 3 11 -0.85136664112451D-01 0.64366890201402D-18 + 2 45 3 11 0.11196569201530D+00 -0.50250541122779D-17 + 3 45 3 11 -0.25453576973771D+00 0.15085905326856D-15 + 1 46 3 11 -0.31640814690755D+01 0.18485776205460D-17 + 2 46 3 11 0.13319450553958D+01 0.56990819129039D-17 + 3 46 3 11 -0.29877680086003D+01 -0.89624360890456D-15 + 1 47 3 11 0.31640814690755D+01 0.36804021881952D-18 + 2 47 3 11 0.13319450553958D+01 0.28252417747638D-16 + 3 47 3 11 -0.29877680086003D+01 0.11011943793884D-15 + 1 48 3 11 -0.41799765230709D+00 -0.34979965021202D-17 + 2 48 3 11 0.50796404958534D+00 0.11909283526370D-16 + 3 48 3 11 -0.76085550268744D+00 0.16607421382441D-15 + 1 49 3 11 -0.17330317339693D-01 0.32761352693827D-16 + 2 49 3 11 0.13715963087914D-01 -0.51340317928196D-17 + 3 49 3 11 0.25547462007207D+00 0.60567244871835D-16 + 1 50 3 11 0.62253763049849D-01 0.44467817572633D-16 + 2 50 3 11 -0.13309048952211D+00 0.82902428088187D-17 + 3 50 3 11 0.16837728753467D+00 0.34475712583909D-15 + 1 51 3 11 -0.49376388172361D+00 -0.30559075174384D-17 + 2 51 3 11 0.45441403519213D+00 0.23958011176789D-16 + 3 51 3 11 -0.38471724455043D+00 -0.28448579803539D-16 + 1 52 3 11 0.31360025830505D+00 -0.21572390235579D-16 + 2 52 3 11 0.36794478809993D+00 0.38297990961445D-16 + 3 52 3 11 0.14062091422055D+00 0.35375824456827D-16 + 1 53 3 11 -0.47386017200006D+00 -0.13994385940748D-16 + 2 53 3 11 0.44471794370565D+00 -0.37103040477346D-16 + 3 53 3 11 -0.36753651542807D+00 0.10161894564323D-16 + 1 54 3 11 -0.13680820868451D+02 -0.15944451760166D-16 + 2 54 3 11 0.14567610441024D+02 0.72553410628076D-17 + 3 54 3 11 -0.26380403735131D+02 0.13413785033129D-15 + 1 55 3 11 -0.42014911564423D+00 -0.12993455393726D-16 + 2 55 3 11 0.32100479112211D+00 -0.88154560392315D-17 + 3 55 3 11 0.54540329466194D+00 -0.28393208033764D-16 + 1 56 3 11 -0.13515021593717D+01 -0.12648590910018D-16 + 2 56 3 11 0.12841378769088D+01 0.52682515705028D-16 + 3 56 3 11 0.31311444326211D+01 0.24249675830658D-16 + 1 57 3 11 -0.10667108461057D+00 0.50729294359574D-16 + 2 57 3 11 0.99859390646110D-01 -0.30033273522395D-16 + 3 57 3 11 -0.31187185983446D-01 0.74880412413134D-17 + 1 58 3 11 0.13515021593717D+01 0.53530913208285D-16 + 2 58 3 11 0.12841378769088D+01 0.42177860920431D-17 + 3 58 3 11 0.31311444326211D+01 0.35253744688835D-16 + 1 59 3 11 0.10667108461057D+00 0.17344732211489D-16 + 2 59 3 11 0.99859390646111D-01 0.99866296481878D-16 + 3 59 3 11 -0.31187185983453D-01 -0.96459049510884D-16 + 1 60 3 11 -0.13515021593717D+01 -0.39822426169534D-16 + 2 60 3 11 -0.12841378769088D+01 0.12122266422736D-16 + 3 60 3 11 0.31311444326211D+01 -0.79552592296763D-16 + 1 61 3 11 -0.10667108461057D+00 0.10551484392872D-17 + 2 61 3 11 -0.99859390646112D-01 0.10616301781688D-15 + 3 61 3 11 -0.31187185983451D-01 0.71368096912068D-16 + 1 62 3 11 0.13515021593717D+01 0.29394201902669D-16 + 2 62 3 11 -0.12841378769088D+01 -0.21997384704405D-16 + 3 62 3 11 0.31311444326210D+01 -0.91535328222072D-17 + 1 63 3 11 0.10667108461057D+00 -0.75033682158213D-16 + 2 63 3 11 -0.99859390646112D-01 0.93380410414414D-16 + 3 63 3 11 -0.31187185983444D-01 0.31132353327549D-16 + 1 64 3 11 0.10977868710131D-15 -0.80580072681891D-17 + 2 64 3 11 0.99644983610389D-01 0.18741620680904D-18 + 3 64 3 11 -0.12345302357592D+00 -0.92661107431186D-17 + 1 65 3 11 0.24684702600593D-15 -0.28553305788845D-18 + 2 65 3 11 -0.99644983610389D-01 -0.28112316554953D-19 + 3 65 3 11 -0.12345302357593D+00 0.16072781206211D-16 + 1 67 3 11 0.00000000000000D+00 0.00000000000000D+00 + 2 67 3 11 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 12 0.27072631859939D+00 0.76931069829943D-16 + 2 1 1 12 -0.26751169750601D+00 -0.31293189434743D-16 + 3 1 1 12 0.30498051558179D+00 0.32996547443857D-16 + 1 2 1 12 -0.27426623157198D+02 -0.55324541872707D-16 + 2 2 1 12 0.17278320948682D+02 -0.29014510879018D-18 + 3 2 1 12 0.15049561448618D+02 0.19222718933729D-16 + 1 3 1 12 -0.83310310466002D+00 0.73900170628096D-16 + 2 3 1 12 0.50563856021151D+00 -0.14445719441699D-16 + 3 3 1 12 0.36425031176629D+00 -0.33155446258415D-16 + 1 4 1 12 0.18496338576642D+00 0.18217816516369D-15 + 2 4 1 12 0.30833421115943D+00 -0.13791328123252D-16 + 3 4 1 12 -0.37109140564483D+00 -0.85503891031072D-16 + 1 5 1 12 -0.56228343072503D+00 -0.25964280825987D-15 + 2 5 1 12 0.44537504933503D+00 0.35128157135662D-16 + 3 5 1 12 0.94699525274431D+00 0.10341598241492D-16 + 1 6 1 12 0.48013010771485D+00 -0.29499683456157D-16 + 2 6 1 12 0.27429826993853D+00 -0.57454864001203D-18 + 3 6 1 12 0.35256230231845D+00 -0.31127476357015D-16 + 1 7 1 12 0.24400776122668D+00 0.31441650353268D-16 + 2 7 1 12 0.24072133695192D-01 0.19005617064471D-16 + 3 7 1 12 -0.11266806978941D-01 -0.39901987029804D-16 + 1 8 1 12 -0.43614168367627D+00 0.11507148305472D-15 + 2 8 1 12 0.41968061769710D+00 0.41556426623119D-17 + 3 8 1 12 0.43679527610675D+00 -0.26280412964027D-16 + 1 9 1 12 0.15183549128864D+01 0.00000000000000D+00 + 2 9 1 12 0.41303763886505D-17 0.00000000000000D+00 + 3 9 1 12 0.44556372469830D-17 0.00000000000000D+00 + 1 10 1 12 -0.22435256830630D+00 0.00000000000000D+00 + 2 10 1 12 0.47699690665374D-17 0.00000000000000D+00 + 3 10 1 12 -0.41057626465234D-17 0.00000000000000D+00 + 1 11 1 12 -0.23862115665335D+00 0.00000000000000D+00 + 2 11 1 12 -0.41041342037585D-17 0.00000000000000D+00 + 3 11 1 12 0.47699364890307D-17 0.00000000000000D+00 + 1 12 1 12 0.12655789216331D+03 0.00000000000000D+00 + 2 12 1 12 -0.14351840092364D-13 0.00000000000000D+00 + 3 12 1 12 0.32084909406644D-14 0.00000000000000D+00 + 1 13 1 12 -0.11425496786290D+00 0.00000000000000D+00 + 2 13 1 12 -0.50255445187448D-16 0.00000000000000D+00 + 3 13 1 12 -0.50255441172727D-16 0.00000000000000D+00 + 1 14 1 12 -0.23868872678244D+00 0.00000000000000D+00 + 2 14 1 12 -0.11172030516177D-15 0.00000000000000D+00 + 3 14 1 12 0.54874087443351D-16 0.00000000000000D+00 + 1 15 1 12 -0.38504165258669D+00 0.00000000000000D+00 + 2 15 1 12 0.53659962891878D-16 0.00000000000000D+00 + 3 15 1 12 0.53659962892007D-16 0.00000000000000D+00 + 1 16 1 12 -0.83310310466002D+00 -0.60888049072264D-17 + 2 16 1 12 -0.50563856021151D+00 -0.12765181455080D-17 + 3 16 1 12 -0.36425031176629D+00 -0.31452378421413D-16 + 1 17 1 12 0.18496338576642D+00 0.10594949246492D-16 + 2 17 1 12 -0.30833421115943D+00 0.16167021875699D-17 + 3 17 1 12 0.37109140564483D+00 -0.10722378660260D-15 + 1 18 1 12 0.27072631859939D+00 -0.12530665321988D-15 + 2 18 1 12 0.26751169750600D+00 0.23891708774307D-16 + 3 18 1 12 -0.30498051558179D+00 -0.14888863609799D-16 + 1 19 1 12 -0.27426623157198D+02 0.80729852101990D-16 + 2 19 1 12 -0.17278320948682D+02 0.30616000379276D-16 + 3 19 1 12 -0.15049561448618D+02 0.25114578786890D-16 + 1 20 1 12 0.24400776122668D+00 0.28702733595063D-17 + 2 20 1 12 -0.24072133695193D-01 -0.22105499811987D-16 + 3 20 1 12 0.11266806978940D-01 -0.89570752794313D-16 + 1 21 1 12 -0.43614168367627D+00 -0.43334129920802D-16 + 2 21 1 12 -0.41968061769710D+00 -0.23500845014421D-16 + 3 21 1 12 -0.43679527610675D+00 -0.15339485305303D-16 + 1 22 1 12 -0.56228343072504D+00 -0.10622850138914D-15 + 2 22 1 12 -0.44537504933503D+00 0.25123942886068D-16 + 3 22 1 12 -0.94699525274431D+00 0.10433901261070D-16 + 1 23 1 12 0.48013010771486D+00 0.48909460957197D-16 + 2 23 1 12 -0.27429826993853D+00 -0.23879633573017D-17 + 3 23 1 12 -0.35256230231845D+00 0.23980934059162D-16 + 1 24 1 12 0.31603882225366D+01 0.27418663864435D-16 + 2 24 1 12 0.12141960128470D+01 0.13775094180640D-16 + 3 24 1 12 -0.12736658618096D+01 -0.52259882124638D-17 + 1 25 1 12 0.31603882225366D+01 0.40343382548616D-16 + 2 25 1 12 -0.12141960128470D+01 -0.96999801945433D-17 + 3 25 1 12 -0.12736658618096D+01 -0.17267477129100D-16 + 1 26 1 12 0.31603882225366D+01 0.31115116159627D-16 + 2 26 1 12 0.12141960128470D+01 0.21415033399757D-16 + 3 26 1 12 0.12736658618096D+01 -0.59957166563967D-17 + 1 27 1 12 0.31603882225367D+01 0.15377344622175D-16 + 2 27 1 12 -0.12141960128470D+01 -0.32311629539048D-17 + 3 27 1 12 0.12736658618096D+01 0.29117400783030D-16 + 1 28 1 12 -0.10863527376658D-01 0.24263790747107D-17 + 2 28 1 12 0.12009469417863D+00 -0.26262402269699D-16 + 3 28 1 12 -0.91806944844045D-01 -0.34400907537333D-16 + 1 29 1 12 -0.10863527376656D-01 0.16619312080002D-15 + 2 29 1 12 -0.12009469417863D+00 -0.18633924103007D-17 + 3 29 1 12 -0.91806944844036D-01 0.11814545751362D-16 + 1 30 1 12 -0.10863527376654D-01 0.33679326682864D-15 + 2 30 1 12 0.12009469417863D+00 -0.26166491073762D-16 + 3 30 1 12 0.91806944844036D-01 0.15005981770896D-16 + 1 31 1 12 -0.10863527376649D-01 -0.74613205894974D-16 + 2 31 1 12 -0.12009469417863D+00 -0.24245331706953D-16 + 3 31 1 12 0.91806944844041D-01 0.30927047093613D-16 + 1 32 1 12 -0.56228343072504D+00 -0.82068570284314D-16 + 2 32 1 12 -0.44537504933503D+00 0.10437941074980D-16 + 3 32 1 12 0.94699525274430D+00 -0.37522437284893D-16 + 1 33 1 12 0.48013010771485D+00 -0.91194881694595D-17 + 2 33 1 12 -0.27429826993853D+00 -0.21016323138082D-16 + 3 33 1 12 0.35256230231845D+00 0.68611616632664D-17 + 1 34 1 12 0.24400776122668D+00 0.84135439635824D-17 + 2 34 1 12 -0.24072133695194D-01 0.74415437424832D-17 + 3 34 1 12 -0.11266806978942D-01 0.47436946268814D-16 + 1 35 1 12 -0.43614168367627D+00 -0.81705930150926D-16 + 2 35 1 12 -0.41968061769711D+00 -0.21590456792042D-16 + 3 35 1 12 0.43679527610675D+00 0.57737247465717D-16 + 1 36 1 12 0.27072631859939D+00 0.18842873104058D-15 + 2 36 1 12 0.26751169750600D+00 -0.19230060419617D-16 + 3 36 1 12 0.30498051558179D+00 -0.88542938094184D-17 + 1 37 1 12 -0.27426623157198D+02 -0.90394505174171D-16 + 2 37 1 12 -0.17278320948682D+02 -0.11631320026635D-16 + 3 37 1 12 0.15049561448618D+02 0.66964899172877D-17 + 1 38 1 12 -0.83310310466002D+00 0.27936167834033D-16 + 2 38 1 12 -0.50563856021151D+00 -0.23624331475471D-16 + 3 38 1 12 0.36425031176629D+00 -0.35303095351051D-16 + 1 39 1 12 0.18496338576642D+00 -0.15159247243214D-15 + 2 39 1 12 -0.30833421115942D+00 -0.54149341383299D-17 + 3 39 1 12 -0.37109140564482D+00 -0.14450802099825D-16 + 1 40 1 12 -0.26513434349829D+00 -0.47673554784686D-16 + 2 40 1 12 -0.12442806753828D+00 0.10498797244304D-15 + 3 40 1 12 0.65195109669496D-01 -0.78706753342513D-18 + 1 41 1 12 -0.26513434349829D+00 -0.11322340339829D-15 + 2 41 1 12 0.12442806753827D+00 -0.67339568816492D-16 + 3 41 1 12 -0.65195109669497D-01 -0.65871070115352D-19 + 1 42 1 12 -0.32157297915032D+01 0.20754656563471D-16 + 2 42 1 12 -0.12482638357656D+01 -0.22671987094492D-16 + 3 42 1 12 -0.35469120189638D+01 -0.15111085623691D-17 + 1 43 1 12 -0.32157297915032D+01 -0.53523914664865D-16 + 2 43 1 12 0.12482638357656D+01 0.10119611573144D-15 + 3 43 1 12 0.35469120189638D+01 0.18968877054338D-17 + 1 44 1 12 -0.26513434349829D+00 0.72228644813653D-16 + 2 44 1 12 -0.12442806753827D+00 -0.88468313414440D-18 + 3 44 1 12 -0.65195109669495D-01 -0.27305120943167D-18 + 1 45 1 12 -0.26513434349829D+00 0.13379767603936D-15 + 2 45 1 12 0.12442806753827D+00 0.38641627489381D-16 + 3 45 1 12 0.65195109669496D-01 0.36059260386566D-18 + 1 46 1 12 -0.32157297915033D+01 -0.15560766162943D-15 + 2 46 1 12 -0.12482638357656D+01 0.72114094200541D-16 + 3 46 1 12 0.35469120189638D+01 -0.20571802036045D-17 + 1 47 1 12 -0.32157297915033D+01 0.17980297058310D-15 + 2 47 1 12 0.12482638357656D+01 -0.20986797105815D-16 + 3 47 1 12 -0.35469120189637D+01 0.45321667035435D-17 + 1 48 1 12 0.24400776122668D+00 -0.12959746342856D-15 + 2 48 1 12 0.24072133695191D-01 0.20838957791735D-16 + 3 48 1 12 0.11266806978942D-01 0.25975968416566D-16 + 1 49 1 12 -0.43614168367627D+00 0.16956809587381D-15 + 2 49 1 12 0.41968061769711D+00 -0.48031940971689D-16 + 3 49 1 12 -0.43679527610675D+00 -0.13715332947941D-17 + 1 50 1 12 -0.56228343072505D+00 -0.33385144836038D-16 + 2 50 1 12 0.44537504933503D+00 0.28790554609769D-16 + 3 50 1 12 -0.94699525274430D+00 0.19846788027806D-16 + 1 51 1 12 0.48013010771485D+00 -0.74186534344705D-16 + 2 51 1 12 0.27429826993853D+00 0.18219360489409D-16 + 3 51 1 12 -0.35256230231846D+00 0.48072849204347D-17 + 1 52 1 12 -0.83310310466002D+00 0.47750802400937D-17 + 2 52 1 12 0.50563856021151D+00 0.31180104932819D-16 + 3 52 1 12 -0.36425031176629D+00 0.50910856558273D-17 + 1 53 1 12 0.18496338576641D+00 0.24886220974571D-15 + 2 53 1 12 0.30833421115942D+00 0.40728945278392D-16 + 3 53 1 12 0.37109140564482D+00 0.21215289351124D-16 + 1 54 1 12 0.27072631859939D+00 -0.70103646967483D-16 + 2 54 1 12 -0.26751169750601D+00 0.80140363338297D-17 + 3 54 1 12 -0.30498051558180D+00 0.93980722709429D-17 + 1 55 1 12 -0.27426623157198D+02 -0.43592552723916D-17 + 2 55 1 12 0.17278320948682D+02 0.66939907949441D-17 + 3 55 1 12 -0.15049561448618D+02 -0.16647490895997D-16 + 1 56 1 12 -0.11874443038822D+00 -0.23680408560452D-15 + 2 56 1 12 -0.82043198351640D-01 -0.33451247700751D-17 + 3 56 1 12 0.56111524358575D-01 0.36336951159530D-16 + 1 57 1 12 -0.30647115086679D+01 0.20456335776554D-15 + 2 57 1 12 0.31071750059116D+01 0.10700903690437D-17 + 3 57 1 12 0.15562468678296D+01 0.95266399055376D-16 + 1 58 1 12 -0.11874443038822D+00 0.14664934572018D-15 + 2 58 1 12 0.82043198351642D-01 0.92349093584874D-18 + 3 58 1 12 -0.56111524358577D-01 -0.98296056270116D-18 + 1 59 1 12 -0.30647115086679D+01 0.48453917027218D-16 + 2 59 1 12 -0.31071750059116D+01 -0.18947549887845D-17 + 3 59 1 12 -0.15562468678296D+01 0.99565773643362D-16 + 1 60 1 12 -0.11874443038823D+00 0.99854873734649D-16 + 2 60 1 12 0.82043198351641D-01 -0.18165371953661D-17 + 3 60 1 12 0.56111524358578D-01 -0.29587843721736D-16 + 1 61 1 12 -0.30647115086679D+01 0.25870479891710D-15 + 2 61 1 12 -0.31071750059116D+01 0.74425639868258D-19 + 3 61 1 12 0.15562468678296D+01 -0.84122127439782D-17 + 1 62 1 12 -0.11874443038823D+00 -0.50400152728498D-16 + 2 62 1 12 -0.82043198351641D-01 -0.45850301067147D-17 + 3 62 1 12 -0.56111524358578D-01 0.68784058569001D-16 + 1 63 1 12 -0.30647115086679D+01 0.10115524942727D-15 + 2 63 1 12 0.31071750059116D+01 -0.11144415234850D-17 + 3 63 1 12 -0.15562468678296D+01 -0.47451648829306D-16 + 1 64 1 12 -0.36356106870786D+00 0.12934821198619D-16 + 2 64 1 12 -0.38441720948090D-03 -0.14208755452978D-16 + 3 64 1 12 -0.15085689281313D-15 0.31066949086971D-16 + 1 65 1 12 -0.36356106870786D+00 -0.28536383954879D-16 + 2 65 1 12 0.38441720948104D-03 0.66854944867185D-18 + 3 65 1 12 0.24061169699112D-15 0.48710594233059D-16 + 2 67 1 12 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 12 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 12 -0.30357372278450D+00 -0.31293189434743D-16 + 2 1 2 12 0.10545375499441D+00 -0.29205754888540D-16 + 3 1 2 12 -0.21427852513037D+00 0.16563117027066D-16 + 1 2 2 12 0.17262113001736D+02 -0.29014510879018D-18 + 2 2 2 12 -0.28264265805571D+02 0.32303322141061D-15 + 3 2 2 12 -0.17191015790917D+02 -0.88579876287015D-17 + 1 3 2 12 0.62977614684491D+00 -0.14445719441699D-16 + 2 3 2 12 -0.29904993474147D+00 -0.96188865858618D-16 + 3 3 2 12 -0.38152268192090D+00 -0.19109939396655D-16 + 1 4 2 12 0.31950747315451D+00 -0.13791328123252D-16 + 2 4 2 12 0.61690564411060D+00 0.14456806439184D-15 + 3 4 2 12 -0.31080049433589D+00 0.43298134200289D-16 + 1 5 2 12 0.60849755258757D+00 0.35128157135662D-16 + 2 5 2 12 -0.31366955960620D+00 -0.33102402420611D-15 + 3 5 2 12 -0.95887137638926D+00 0.50554433026108D-16 + 1 6 2 12 0.26610454512720D+00 -0.57454864001203D-18 + 2 6 2 12 0.12684713898619D+00 -0.21725623012711D-15 + 3 6 2 12 0.25496134102405D+00 0.13150562241483D-16 + 1 7 2 12 -0.13187086874691D-02 0.19005617064471D-16 + 2 7 2 12 0.26293960391364D+00 0.79452582226869D-16 + 3 7 2 12 -0.12652840085354D-01 -0.29238711554089D-16 + 1 8 2 12 0.44407962521094D+00 0.41556426623119D-17 + 2 8 2 12 -0.36794449471739D+00 -0.23664931046857D-15 + 3 8 2 12 -0.51189089304038D+00 0.46347126734774D-16 + 1 9 2 12 0.41303763886505D-17 0.00000000000000D+00 + 2 9 2 12 0.16927268388423D-01 0.00000000000000D+00 + 3 9 2 12 -0.11715141888139D-15 0.00000000000000D+00 + 1 10 2 12 0.47699690665374D-17 0.00000000000000D+00 + 2 10 2 12 -0.40232168778518D+00 0.00000000000000D+00 + 3 10 2 12 0.42104183724603D-16 0.00000000000000D+00 + 1 11 2 12 -0.41041342037585D-17 0.00000000000000D+00 + 2 11 2 12 -0.19408220979434D+00 0.00000000000000D+00 + 3 11 2 12 -0.39823390513337D-16 0.00000000000000D+00 + 1 12 2 12 -0.14351840092364D-13 0.00000000000000D+00 + 2 12 2 12 0.12797417671690D+03 0.00000000000000D+00 + 3 12 2 12 -0.60222765018935D-16 0.00000000000000D+00 + 1 13 2 12 -0.50255445187448D-16 0.00000000000000D+00 + 2 13 2 12 -0.12442641598040D+00 0.00000000000000D+00 + 3 13 2 12 -0.49055300179113D-16 0.00000000000000D+00 + 1 14 2 12 -0.11172030516177D-15 0.00000000000000D+00 + 2 14 2 12 -0.12812857450091D+00 0.00000000000000D+00 + 3 14 2 12 0.33883313719073D-16 0.00000000000000D+00 + 1 15 2 12 0.53659962891878D-16 0.00000000000000D+00 + 2 15 2 12 -0.16236930026856D+00 0.00000000000000D+00 + 3 15 2 12 -0.44739857569419D-16 0.00000000000000D+00 + 1 16 2 12 -0.62977614684491D+00 -0.12765181455080D-17 + 2 16 2 12 -0.29904993474147D+00 0.14642318031608D-17 + 3 16 2 12 -0.38152268192089D+00 -0.70551881040777D-19 + 1 17 2 12 -0.31950747315451D+00 0.16167021875699D-17 + 2 17 2 12 0.61690564411060D+00 0.22882460223395D-15 + 3 17 2 12 -0.31080049433589D+00 -0.10332908442578D-15 + 1 18 2 12 0.30357372278450D+00 0.23891708774307D-16 + 2 18 2 12 0.10545375499441D+00 -0.71632911379494D-16 + 3 18 2 12 -0.21427852513038D+00 0.21721077780617D-16 + 1 19 2 12 -0.17262113001736D+02 0.30616000379276D-16 + 2 19 2 12 -0.28264265805571D+02 -0.49319935940715D-16 + 3 19 2 12 -0.17191015790917D+02 0.63151663158423D-16 + 1 20 2 12 0.13187086874682D-02 -0.22105499811987D-16 + 2 20 2 12 0.26293960391363D+00 -0.16291336134509D-15 + 3 20 2 12 -0.12652840085353D-01 -0.47718039654249D-16 + 1 21 2 12 -0.44407962521094D+00 -0.23500845014421D-16 + 2 21 2 12 -0.36794449471739D+00 0.89292683360681D-16 + 3 21 2 12 -0.51189089304039D+00 0.21574673002249D-16 + 1 22 2 12 -0.60849755258757D+00 0.25123942886068D-16 + 2 22 2 12 -0.31366955960620D+00 0.46806257695889D-17 + 3 22 2 12 -0.95887137638926D+00 -0.19506354607615D-16 + 1 23 2 12 -0.26610454512719D+00 -0.23879633573017D-17 + 2 23 2 12 0.12684713898618D+00 -0.82406486206581D-16 + 3 23 2 12 0.25496134102405D+00 -0.92581803727419D-16 + 1 24 2 12 -0.13869504330320D+01 0.13775094180640D-16 + 2 24 2 12 -0.31247164711463D+01 0.33395222354826D-16 + 3 24 2 12 0.31659104506731D+01 -0.99710346198219D-19 + 1 25 2 12 0.13869504330320D+01 -0.96999801945433D-17 + 2 25 2 12 -0.31247164711463D+01 0.67468782295199D-16 + 3 25 2 12 -0.31659104506731D+01 -0.66488159678524D-18 + 1 26 2 12 -0.13869504330320D+01 0.21415033399757D-16 + 2 26 2 12 -0.31247164711463D+01 0.52795437872776D-16 + 3 26 2 12 -0.31659104506731D+01 0.00000000000000D+00 + 1 27 2 12 0.13869504330320D+01 -0.32311629539048D-17 + 2 27 2 12 -0.31247164711463D+01 0.55844214103064D-16 + 3 27 2 12 0.31659104506731D+01 0.18907622772998D-17 + 1 28 2 12 -0.62933397444485D-01 -0.26262402269699D-16 + 2 28 2 12 -0.17372529719519D+00 0.96598902906833D-17 + 3 28 2 12 -0.10486334114901D-01 0.21883511903121D-17 + 1 29 2 12 0.62933397444492D-01 -0.18633924103007D-17 + 2 29 2 12 -0.17372529719519D+00 0.17199714371409D-15 + 3 29 2 12 0.10486334114901D-01 0.17552648821898D-17 + 1 30 2 12 -0.62933397444493D-01 -0.26166491073762D-16 + 2 30 2 12 -0.17372529719519D+00 0.99015714857066D-16 + 3 30 2 12 0.10486334114899D-01 0.63258554211593D-18 + 1 31 2 12 0.62933397444488D-01 -0.24245331706953D-16 + 2 31 2 12 -0.17372529719519D+00 -0.50204977100404D-16 + 3 31 2 12 -0.10486334114901D-01 -0.18680820394103D-18 + 1 32 2 12 -0.60849755258757D+00 0.10437941074980D-16 + 2 32 2 12 -0.31366955960620D+00 -0.36130155634119D-15 + 3 32 2 12 0.95887137638926D+00 -0.34075018959275D-16 + 1 33 2 12 -0.26610454512720D+00 -0.21016323138082D-16 + 2 33 2 12 0.12684713898619D+00 0.10021080493525D-15 + 3 33 2 12 -0.25496134102405D+00 -0.20045448768796D-16 + 1 34 2 12 0.13187086874673D-02 0.74415437424832D-17 + 2 34 2 12 0.26293960391363D+00 0.16654867134809D-16 + 3 34 2 12 0.12652840085353D-01 0.28924457743818D-16 + 1 35 2 12 -0.44407962521095D+00 -0.21590456792042D-16 + 2 35 2 12 -0.36794449471740D+00 0.24756394253465D-15 + 3 35 2 12 0.51189089304038D+00 -0.32344966886666D-16 + 1 36 2 12 0.30357372278450D+00 -0.19230060419617D-16 + 2 36 2 12 0.10545375499441D+00 0.37780239377260D-15 + 3 36 2 12 0.21427852513038D+00 -0.36502002918944D-17 + 1 37 2 12 -0.17262113001736D+02 -0.11631320026635D-16 + 2 37 2 12 -0.28264265805571D+02 0.58748683234496D-16 + 3 37 2 12 0.17191015790917D+02 0.26648655706672D-16 + 1 38 2 12 -0.62977614684491D+00 -0.23624331475471D-16 + 2 38 2 12 -0.29904993474147D+00 -0.19333740078313D-15 + 3 38 2 12 0.38152268192090D+00 -0.27567951871857D-16 + 1 39 2 12 -0.31950747315450D+00 -0.54149341383299D-17 + 2 39 2 12 0.61690564411062D+00 0.15410773728818D-15 + 3 39 2 12 0.31080049433589D+00 -0.21499795868918D-16 + 1 40 2 12 0.10882249164782D+00 0.10498797244304D-15 + 2 40 2 12 -0.39034711006481D-01 0.15566603913640D-15 + 3 40 2 12 0.13376023552567D+00 -0.18371510656401D-16 + 1 41 2 12 -0.10882249164782D+00 -0.67339568816492D-16 + 2 41 2 12 -0.39034711006479D-01 0.52938231617044D-16 + 3 41 2 12 0.13376023552567D+00 0.44691267042621D-17 + 1 42 2 12 0.12612871728019D+01 -0.22671987094492D-16 + 2 42 2 12 0.28423411136097D+01 -0.24698191513951D-15 + 3 42 2 12 0.10925016594282D+01 0.33017887682110D-17 + 1 43 2 12 -0.12612871728019D+01 0.10119611573144D-15 + 2 43 2 12 0.28423411136097D+01 0.16592629272865D-15 + 3 43 2 12 0.10925016594282D+01 -0.13669053109944D-16 + 1 44 2 12 0.10882249164783D+00 -0.88468313414440D-18 + 2 44 2 12 -0.39034711006485D-01 -0.34743402824567D-16 + 3 44 2 12 -0.13376023552567D+00 -0.11305125504280D-16 + 1 45 2 12 -0.10882249164782D+00 0.38641627489381D-16 + 2 45 2 12 -0.39034711006485D-01 0.74826349224653D-16 + 3 45 2 12 -0.13376023552567D+00 -0.25135386247974D-16 + 1 46 2 12 0.12612871728019D+01 0.72114094200541D-16 + 2 46 2 12 0.28423411136097D+01 -0.30153608103936D-17 + 3 46 2 12 -0.10925016594282D+01 -0.83754324955252D-17 + 1 47 2 12 -0.12612871728019D+01 -0.20986797105815D-16 + 2 47 2 12 0.28423411136097D+01 0.24604205468975D-15 + 3 47 2 12 -0.10925016594282D+01 0.35786563745897D-16 + 1 48 2 12 -0.13187086874698D-02 0.20838957791735D-16 + 2 48 2 12 0.26293960391364D+00 0.53683924606581D-17 + 3 48 2 12 0.12652840085352D-01 -0.32492142481690D-16 + 1 49 2 12 0.44407962521095D+00 -0.48031940971689D-16 + 2 49 2 12 -0.36794449471740D+00 -0.16256482461308D-15 + 3 49 2 12 0.51189089304038D+00 0.77285316493602D-18 + 1 50 2 12 0.60849755258757D+00 0.28790554609769D-16 + 2 50 2 12 -0.31366955960620D+00 -0.45405285198471D-16 + 3 50 2 12 0.95887137638926D+00 -0.23196825258001D-16 + 1 51 2 12 0.26610454512720D+00 0.18219360489409D-16 + 2 51 2 12 0.12684713898618D+00 -0.18820659427405D-15 + 3 51 2 12 -0.25496134102405D+00 0.40586046298686D-16 + 1 52 2 12 0.62977614684491D+00 0.31180104932819D-16 + 2 52 2 12 -0.29904993474147D+00 0.65172909798059D-16 + 3 52 2 12 0.38152268192089D+00 0.31796364282582D-16 + 1 53 2 12 0.31950747315450D+00 0.40728945278392D-16 + 2 53 2 12 0.61690564411060D+00 -0.33711399176394D-15 + 3 53 2 12 0.31080049433589D+00 0.39889876031894D-16 + 1 54 2 12 -0.30357372278451D+00 0.80140363338297D-17 + 2 54 2 12 0.10545375499441D+00 0.67650971428438D-17 + 3 54 2 12 0.21427852513039D+00 -0.46636915043118D-17 + 1 55 2 12 0.17262113001736D+02 0.66939907949441D-17 + 2 55 2 12 -0.28264265805571D+02 -0.10707512440567D-15 + 3 55 2 12 0.17191015790917D+02 -0.20210915503375D-16 + 1 56 2 12 0.80597005297447D-01 -0.33451247700751D-17 + 2 56 2 12 -0.16993298888397D+00 -0.19341541847787D-15 + 3 56 2 12 -0.23773955807572D+00 0.26723007170470D-16 + 1 57 2 12 0.30596651663490D+01 0.10700903690437D-17 + 2 57 2 12 -0.30652285689547D+01 0.26316835784095D-15 + 3 57 2 12 -0.13228488051543D+01 -0.11211563082096D-16 + 1 58 2 12 -0.80597005297446D-01 0.92349093584874D-18 + 2 58 2 12 -0.16993298888397D+00 -0.22260735695998D-15 + 3 58 2 12 -0.23773955807573D+00 -0.78506293081610D-16 + 1 59 2 12 -0.30596651663490D+01 -0.18947549887845D-17 + 2 59 2 12 -0.30652285689547D+01 0.10120442643649D-15 + 3 59 2 12 -0.13228488051543D+01 0.91022277452977D-17 + 1 60 2 12 -0.80597005297446D-01 -0.18165371953661D-17 + 2 60 2 12 -0.16993298888397D+00 0.55187763038309D-16 + 3 60 2 12 0.23773955807572D+00 0.17391174005837D-16 + 1 61 2 12 -0.30596651663489D+01 0.74425639868258D-19 + 2 61 2 12 -0.30652285689548D+01 0.21901146755556D-16 + 3 61 2 12 0.13228488051543D+01 -0.79157551658081D-17 + 1 62 2 12 0.80597005297446D-01 -0.45850301067147D-17 + 2 62 2 12 -0.16993298888397D+00 0.24723429268171D-15 + 3 62 2 12 0.23773955807572D+00 0.67828271003705D-16 + 1 63 2 12 0.30596651663489D+01 -0.11144415234850D-17 + 2 63 2 12 -0.30652285689548D+01 0.28304428796004D-15 + 3 63 2 12 0.13228488051543D+01 0.98711202342135D-16 + 1 64 2 12 -0.36412202855935D-16 -0.14208755452978D-16 + 2 64 2 12 0.15432402611209D+00 0.34280288322526D-17 + 3 64 2 12 -0.39667899493333D+00 -0.18599539032476D-17 + 1 65 2 12 0.17244522353032D-15 0.66854944867185D-18 + 2 65 2 12 0.15432402611209D+00 -0.33147167115745D-17 + 3 65 2 12 0.39667899493333D+00 0.15504560650517D-17 + 1 67 2 12 0.00000000000000D+00 0.00000000000000D+00 + 3 67 2 12 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 12 0.31256916911060D+00 0.32996547443857D-16 + 2 1 3 12 -0.24199224370542D+00 0.16563117027066D-16 + 3 1 3 12 0.39805385148678D+00 0.82061031864936D-16 + 1 2 3 12 0.15029971305917D+02 0.19222718933729D-16 + 2 2 3 12 -0.17165288984837D+02 -0.88579876287015D-17 + 3 2 3 12 -0.26971487657406D+02 -0.13554953787076D-15 + 1 3 3 12 0.49860176723086D+00 -0.33155446258415D-16 + 2 3 3 12 -0.33310674753374D+00 -0.19109939396655D-16 + 3 3 3 12 -0.44110165423261D+00 0.79407062786763D-16 + 1 4 3 12 -0.36863095759641D+00 -0.85503891031072D-16 + 2 4 3 12 -0.32853382357376D+00 0.43298134200289D-16 + 3 4 3 12 0.18886149498240D+00 -0.20105751424907D-15 + 1 5 3 12 0.84689654062457D+00 0.10341598241492D-16 + 2 5 3 12 -0.34902446133750D+00 0.50554433026108D-16 + 3 5 3 12 -0.80139593358100D+00 0.57922719585247D-15 + 1 6 3 12 0.32762621479199D+00 -0.31127476357015D-16 + 2 6 3 12 0.28470708887522D+00 0.13150562241483D-16 + 3 6 3 12 0.25970597428466D+00 0.21643224221496D-15 + 1 7 3 12 -0.37230511438905D-01 -0.39901987029804D-16 + 2 7 3 12 -0.46328043538557D-01 -0.29238711554089D-16 + 3 7 3 12 0.26346517888124D+00 -0.27922797635177D-15 + 1 8 3 12 0.41949172230350D+00 -0.26280412964027D-16 + 2 8 3 12 -0.50897213131086D+00 0.46347126734774D-16 + 3 8 3 12 -0.85536555934429D+00 0.85065013460804D-16 + 1 9 3 12 0.44556372469830D-17 0.00000000000000D+00 + 2 9 3 12 -0.11715141888139D-15 0.00000000000000D+00 + 3 9 3 12 0.16927268388423D-01 0.00000000000000D+00 + 1 10 3 12 -0.41057626465234D-17 0.00000000000000D+00 + 2 10 3 12 0.42104183724603D-16 0.00000000000000D+00 + 3 10 3 12 -0.22331830613038D+00 0.00000000000000D+00 + 1 11 3 12 0.47699364890307D-17 0.00000000000000D+00 + 2 11 3 12 -0.39823390513337D-16 0.00000000000000D+00 + 3 11 3 12 -0.39753486030273D+00 0.00000000000000D+00 + 1 12 3 12 0.32084909406644D-14 0.00000000000000D+00 + 2 12 3 12 -0.60222765018935D-16 0.00000000000000D+00 + 3 12 3 12 0.12592164562478D+03 0.00000000000000D+00 + 1 13 3 12 -0.50255441172727D-16 0.00000000000000D+00 + 2 13 3 12 -0.49055300179113D-16 0.00000000000000D+00 + 3 13 3 12 -0.11499319188834D+00 0.00000000000000D+00 + 1 14 3 12 0.54874087443351D-16 0.00000000000000D+00 + 2 14 3 12 0.33883313719073D-16 0.00000000000000D+00 + 3 14 3 12 0.16683078642020D+01 0.00000000000000D+00 + 1 15 3 12 0.53659962892007D-16 0.00000000000000D+00 + 2 15 3 12 -0.44739857569419D-16 0.00000000000000D+00 + 3 15 3 12 -0.25311509865131D+00 0.00000000000000D+00 + 1 16 3 12 -0.49860176723086D+00 -0.31452378421413D-16 + 2 16 3 12 -0.33310674753373D+00 -0.70551881040777D-19 + 3 16 3 12 -0.44110165423260D+00 0.29269815979304D-16 + 1 17 3 12 0.36863095759641D+00 -0.10722378660260D-15 + 2 17 3 12 -0.32853382357376D+00 -0.10332908442578D-15 + 3 17 3 12 0.18886149498240D+00 0.17658551092386D-16 + 1 18 3 12 -0.31256916911060D+00 -0.14888863609799D-16 + 2 18 3 12 -0.24199224370543D+00 0.21721077780617D-16 + 3 18 3 12 0.39805385148679D+00 0.34077200683758D-16 + 1 19 3 12 -0.15029971305917D+02 0.25114578786890D-16 + 2 19 3 12 -0.17165288984837D+02 0.63151663158423D-16 + 3 19 3 12 -0.26971487657406D+02 -0.91070915901608D-16 + 1 20 3 12 0.37230511438905D-01 -0.89570752794313D-16 + 2 20 3 12 -0.46328043538556D-01 -0.47718039654249D-16 + 3 20 3 12 0.26346517888124D+00 0.63014669066811D-16 + 1 21 3 12 -0.41949172230350D+00 -0.15339485305303D-16 + 2 21 3 12 -0.50897213131086D+00 0.21574673002249D-16 + 3 21 3 12 -0.85536555934429D+00 -0.14322065367234D-16 + 1 22 3 12 -0.84689654062457D+00 0.10433901261070D-16 + 2 22 3 12 -0.34902446133750D+00 -0.19506354607615D-16 + 3 22 3 12 -0.80139593358100D+00 -0.11441823566211D-16 + 1 23 3 12 -0.32762621479199D+00 0.23980934059162D-16 + 2 23 3 12 0.28470708887522D+00 -0.92581803727419D-16 + 3 23 3 12 0.25970597428466D+00 -0.16228680980969D-16 + 1 24 3 12 0.14802558918028D+01 -0.52259882124638D-17 + 2 24 3 12 0.30445700307219D+01 -0.99710346198219D-19 + 3 24 3 12 -0.30276658115095D+01 -0.28111542849635D-16 + 1 25 3 12 0.14802558918028D+01 -0.17267477129100D-16 + 2 25 3 12 -0.30445700307220D+01 -0.66488159678524D-18 + 3 25 3 12 -0.30276658115095D+01 -0.11300049596874D-16 + 1 26 3 12 -0.14802558918028D+01 -0.59957166563967D-17 + 2 26 3 12 -0.30445700307219D+01 0.00000000000000D+00 + 3 26 3 12 -0.30276658115095D+01 0.26588005432007D-15 + 1 27 3 12 -0.14802558918028D+01 0.29117400783030D-16 + 2 27 3 12 0.30445700307220D+01 0.18907622772998D-17 + 3 27 3 12 -0.30276658115095D+01 0.17436737296188D-15 + 1 28 3 12 0.90909879638161D-01 -0.34400907537333D-16 + 2 28 3 12 -0.89360005662856D-01 0.21883511903121D-17 + 3 28 3 12 -0.23173472146341D+00 0.28669143734430D-15 + 1 29 3 12 0.90909879638170D-01 0.11814545751362D-16 + 2 29 3 12 0.89360005662856D-01 0.17552648821898D-17 + 3 29 3 12 -0.23173472146340D+00 -0.77331182529044D-16 + 1 30 3 12 -0.90909879638169D-01 0.15005981770896D-16 + 2 30 3 12 0.89360005662854D-01 0.63258554211593D-18 + 3 30 3 12 -0.23173472146340D+00 -0.19856081646435D-16 + 1 31 3 12 -0.90909879638165D-01 0.30927047093613D-16 + 2 31 3 12 -0.89360005662856D-01 -0.18680820394103D-18 + 3 31 3 12 -0.23173472146340D+00 0.63782166979295D-15 + 1 32 3 12 0.84689654062456D+00 -0.37522437284893D-16 + 2 32 3 12 0.34902446133751D+00 -0.34075018959275D-16 + 3 32 3 12 -0.80139593358100D+00 -0.43014238613567D-16 + 1 33 3 12 0.32762621479199D+00 0.68611616632664D-17 + 2 33 3 12 -0.28470708887522D+00 -0.20045448768796D-16 + 3 33 3 12 0.25970597428466D+00 -0.46890505596743D-16 + 1 34 3 12 -0.37230511438906D-01 0.47436946268814D-16 + 2 34 3 12 0.46328043538556D-01 0.28924457743818D-16 + 3 34 3 12 0.26346517888124D+00 0.31918147450675D-16 + 1 35 3 12 0.41949172230350D+00 0.57737247465717D-16 + 2 35 3 12 0.50897213131086D+00 -0.32344966886666D-16 + 3 35 3 12 -0.85536555934428D+00 -0.48460063461307D-16 + 1 36 3 12 0.31256916911060D+00 -0.88542938094184D-17 + 2 36 3 12 0.24199224370543D+00 -0.36502002918944D-17 + 3 36 3 12 0.39805385148680D+00 -0.10632343893643D-15 + 1 37 3 12 0.15029971305917D+02 0.66964899172877D-17 + 2 37 3 12 0.17165288984837D+02 0.26648655706672D-16 + 3 37 3 12 -0.26971487657406D+02 -0.92986941196741D-16 + 1 38 3 12 0.49860176723086D+00 -0.35303095351051D-16 + 2 38 3 12 0.33310674753374D+00 -0.27567951871857D-16 + 3 38 3 12 -0.44110165423260D+00 0.20388275286317D-15 + 1 39 3 12 -0.36863095759641D+00 -0.14450802099825D-16 + 2 39 3 12 0.32853382357376D+00 -0.21499795868918D-16 + 3 39 3 12 0.18886149498240D+00 0.34264338905696D-15 + 1 40 3 12 0.88364808457842D-01 -0.78706753342513D-18 + 2 40 3 12 -0.11706295729565D+00 -0.18371510656401D-16 + 3 40 3 12 -0.25204749713280D+00 0.44980162729489D-16 + 1 41 3 12 -0.88364808457843D-01 -0.65871070115352D-19 + 2 41 3 12 -0.11706295729564D+00 0.44691267042621D-17 + 3 41 3 12 -0.25204749713281D+00 -0.11363217774002D-15 + 1 42 3 12 -0.37358331173981D+01 -0.15111085623691D-17 + 2 42 3 12 -0.12067952504781D+01 0.33017887682110D-17 + 3 42 3 12 -0.33903977200178D+01 -0.82492837818579D-16 + 1 43 3 12 0.37358331173980D+01 0.18968877054338D-17 + 2 43 3 12 -0.12067952504781D+01 -0.13669053109944D-16 + 3 43 3 12 -0.33903977200178D+01 0.24380901132620D-15 + 1 44 3 12 -0.88364808457841D-01 -0.27305120943167D-18 + 2 44 3 12 0.11706295729564D+00 -0.11305125504280D-16 + 3 44 3 12 -0.25204749713280D+00 0.18490309942260D-15 + 1 45 3 12 0.88364808457842D-01 0.36059260386566D-18 + 2 45 3 12 0.11706295729565D+00 -0.25135386247974D-16 + 3 45 3 12 -0.25204749713281D+00 0.89632234782220D-16 + 1 46 3 12 0.37358331173980D+01 -0.20571802036045D-17 + 2 46 3 12 0.12067952504781D+01 -0.83754324955252D-17 + 3 46 3 12 -0.33903977200178D+01 -0.92842359176473D-16 + 1 47 3 12 -0.37358331173980D+01 0.45321667035435D-17 + 2 47 3 12 0.12067952504781D+01 0.35786563745897D-16 + 3 47 3 12 -0.33903977200178D+01 -0.43851842130816D-15 + 1 48 3 12 0.37230511438906D-01 0.25975968416566D-16 + 2 48 3 12 0.46328043538556D-01 -0.32492142481690D-16 + 3 48 3 12 0.26346517888124D+00 -0.71953421292922D-16 + 1 49 3 12 -0.41949172230350D+00 -0.13715332947941D-17 + 2 49 3 12 0.50897213131086D+00 0.77285316493602D-18 + 3 49 3 12 -0.85536555934428D+00 -0.15819036768759D-16 + 1 50 3 12 -0.84689654062457D+00 0.19846788027806D-16 + 2 50 3 12 0.34902446133750D+00 -0.23196825258001D-16 + 3 50 3 12 -0.80139593358101D+00 0.84181403362176D-16 + 1 51 3 12 -0.32762621479200D+00 0.48072849204347D-17 + 2 51 3 12 -0.28470708887522D+00 0.40586046298686D-16 + 3 51 3 12 0.25970597428466D+00 -0.76183622847997D-16 + 1 52 3 12 -0.49860176723086D+00 0.50910856558273D-17 + 2 52 3 12 0.33310674753373D+00 0.31796364282582D-16 + 3 52 3 12 -0.44110165423261D+00 -0.33575629602033D-15 + 1 53 3 12 0.36863095759641D+00 0.21215289351124D-16 + 2 53 3 12 0.32853382357376D+00 0.39889876031894D-16 + 3 53 3 12 0.18886149498240D+00 -0.11789091341596D-15 + 1 54 3 12 -0.31256916911061D+00 0.93980722709429D-17 + 2 54 3 12 0.24199224370544D+00 -0.46636915043118D-17 + 3 54 3 12 0.39805385148682D+00 -0.11073835416217D-15 + 1 55 3 12 -0.15029971305917D+02 -0.16647490895997D-16 + 2 55 3 12 0.17165288984837D+02 -0.20210915503375D-16 + 3 55 3 12 -0.26971487657406D+02 0.14890736519820D-15 + 1 56 3 12 -0.12365796421604D+00 0.36336951159530D-16 + 2 56 3 12 0.71194922581209D-01 0.26723007170470D-16 + 3 56 3 12 0.28004815274241D-01 0.69329029961840D-16 + 1 57 3 12 -0.13761677586902D+01 0.95266399055376D-16 + 2 57 3 12 0.12023475815095D+01 -0.11211563082096D-16 + 3 57 3 12 0.31319582770427D+01 -0.54399660220646D-17 + 1 58 3 12 0.12365796421604D+00 -0.98296056270116D-18 + 2 58 3 12 0.71194922581206D-01 -0.78506293081610D-16 + 3 58 3 12 0.28004815274243D-01 -0.30182804964753D-16 + 1 59 3 12 0.13761677586902D+01 0.99565773643362D-16 + 2 59 3 12 0.12023475815095D+01 0.91022277452977D-17 + 3 59 3 12 0.31319582770427D+01 0.24763052274790D-17 + 1 60 3 12 -0.12365796421604D+00 -0.29587843721736D-16 + 2 60 3 12 -0.71194922581208D-01 0.17391174005837D-16 + 3 60 3 12 0.28004815274248D-01 0.78091126103693D-16 + 1 61 3 12 -0.13761677586902D+01 -0.84122127439782D-17 + 2 61 3 12 -0.12023475815095D+01 -0.79157551658081D-17 + 3 61 3 12 0.31319582770427D+01 0.50269141598466D-16 + 1 62 3 12 0.12365796421604D+00 0.68784058569001D-16 + 2 62 3 12 -0.71194922581207D-01 0.67828271003705D-16 + 3 62 3 12 0.28004815274250D-01 -0.37741512412378D-16 + 1 63 3 12 0.13761677586902D+01 -0.47451648829306D-16 + 2 63 3 12 -0.12023475815095D+01 0.98711202342135D-16 + 3 63 3 12 0.31319582770427D+01 -0.27091487377885D-16 + 1 64 3 12 -0.15085689281313D-15 0.31066949086971D-16 + 2 64 3 12 0.14300404567818D+00 -0.18599539032476D-17 + 3 64 3 12 -0.27948941140901D-01 0.34873883201484D-17 + 1 65 3 12 0.24061169699112D-15 0.48710594233059D-16 + 2 65 3 12 -0.14300404567818D+00 0.15504560650517D-17 + 3 65 3 12 -0.27948941140901D-01 0.11967928425485D-16 + 1 67 3 12 0.00000000000000D+00 0.00000000000000D+00 + 2 67 3 12 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 13 -0.36415063882437D+00 -0.13678153256148D-15 + 2 1 1 13 0.40590122418774D+00 -0.30548764258599D-16 + 3 1 1 13 0.47464923475426D+00 0.12903551922430D-17 + 1 2 1 13 0.25512738324407D+00 0.17592341227167D-15 + 2 2 1 13 0.24465386896979D-01 -0.32658184741982D-16 + 3 2 1 13 0.33953700215029D-01 0.57714566286110D-17 + 1 3 1 13 0.50241961411297D+00 -0.21928684777315D-15 + 2 3 1 13 0.33741997843479D+00 -0.21281250809182D-17 + 3 3 1 13 0.33570155248117D+00 -0.21130982788144D-16 + 1 4 1 13 -0.37889230900943D+00 0.57827344418315D-16 + 2 4 1 13 0.46116872534589D+00 -0.12336825699017D-17 + 3 4 1 13 0.47158531944064D+00 -0.11318360129661D-16 + 1 5 1 13 0.31531816585509D+00 -0.86536945574150D-16 + 2 5 1 13 0.17291822842402D+00 -0.50534419553923D-17 + 3 5 1 13 -0.29561622081644D+00 -0.32846065125504D-16 + 1 6 1 13 -0.77719381706603D+00 0.13309076351848D-15 + 2 6 1 13 0.45605122386224D+00 0.12780502347251D-17 + 3 6 1 13 0.48505645736949D+00 -0.21016232890215D-16 + 1 7 1 13 -0.26419464735399D+02 -0.67409373112274D-16 + 2 7 1 13 0.14501181111328D+02 0.20502623924980D-17 + 3 7 1 13 0.13897086490666D+02 0.19984827844079D-16 + 1 8 1 13 0.17245337070866D+00 0.16850533131775D-16 + 2 8 1 13 -0.29424501838483D+00 0.17437162224276D-16 + 3 8 1 13 0.28951291420751D+00 0.12496158743968D-16 + 1 9 1 13 -0.38504165258669D+00 0.00000000000000D+00 + 2 9 1 13 0.53659962891878D-16 0.00000000000000D+00 + 3 9 1 13 0.53659962892007D-16 0.00000000000000D+00 + 1 10 1 13 -0.15398185028691D+00 0.00000000000000D+00 + 2 10 1 13 0.54657247008828D-16 0.00000000000000D+00 + 3 10 1 13 -0.11177451661457D-15 0.00000000000000D+00 + 1 11 1 13 -0.25076952485740D+00 0.00000000000000D+00 + 2 11 1 13 -0.11172030516177D-15 0.00000000000000D+00 + 3 11 1 13 0.54874087443351D-16 0.00000000000000D+00 + 1 12 1 13 -0.11425496786290D+00 0.00000000000000D+00 + 2 12 1 13 -0.50255445187448D-16 0.00000000000000D+00 + 3 12 1 13 -0.50255441172727D-16 0.00000000000000D+00 + 1 13 1 13 0.11990938823258D+03 0.00000000000000D+00 + 2 13 1 13 0.26047203948820D-12 0.00000000000000D+00 + 3 13 1 13 0.18791016412336D-12 0.00000000000000D+00 + 1 14 1 13 -0.18661947792590D+00 0.00000000000000D+00 + 2 14 1 13 -0.41041342037585D-17 0.00000000000000D+00 + 3 14 1 13 0.47699364890307D-17 0.00000000000000D+00 + 1 15 1 13 0.15281109506741D+01 0.00000000000000D+00 + 2 15 1 13 0.41303763886505D-17 0.00000000000000D+00 + 3 15 1 13 0.44556372469830D-17 0.00000000000000D+00 + 1 16 1 13 0.50241961411292D+00 0.70326008842756D-16 + 2 16 1 13 -0.33741997843469D+00 -0.21635843082092D-16 + 3 16 1 13 -0.33570155248114D+00 0.14873834627159D-16 + 1 17 1 13 -0.37889230900920D+00 -0.10720490983008D-15 + 2 17 1 13 -0.46116872534589D+00 0.23747597770684D-16 + 3 17 1 13 -0.47158531944065D+00 0.18419036573577D-16 + 1 18 1 13 -0.36415063882429D+00 -0.20338571318674D-15 + 2 18 1 13 -0.40590122418783D+00 -0.72017505831201D-17 + 3 18 1 13 -0.47464923475425D+00 -0.93463473422231D-17 + 1 19 1 13 0.25512738324409D+00 -0.58668387149527D-17 + 2 19 1 13 -0.24465386897002D-01 0.12941431336789D-16 + 3 19 1 13 -0.33953700215022D-01 -0.16687181337471D-16 + 1 20 1 13 -0.26419464735399D+02 -0.27017589416552D-15 + 2 20 1 13 -0.14501181111330D+02 0.20901237723021D-16 + 3 20 1 13 -0.13897086490667D+02 0.81456554464450D-17 + 1 21 1 13 0.17245337070873D+00 0.32048370759746D-16 + 2 21 1 13 0.29424501838485D+00 -0.76045645034531D-17 + 3 21 1 13 -0.28951291420759D+00 -0.12117767928531D-16 + 1 22 1 13 0.31531816585511D+00 -0.20875807047114D-16 + 2 22 1 13 -0.17291822842416D+00 0.17337108185043D-16 + 3 22 1 13 0.29561622081642D+00 0.12944970309020D-16 + 1 23 1 13 -0.77719381706600D+00 0.75757461547825D-16 + 2 23 1 13 -0.45605122386223D+00 0.12788481586222D-16 + 3 23 1 13 -0.48505645736947D+00 0.25924532809163D-16 + 1 24 1 13 -0.21299436255671D-01 -0.17551470896493D-16 + 2 24 1 13 -0.96467426406943D-01 -0.14031653338169D-16 + 3 24 1 13 0.96086421419243D-01 0.31796909074064D-16 + 1 25 1 13 -0.21299436255682D-01 0.44145974433360D-16 + 2 25 1 13 0.96467426406935D-01 -0.15793245196959D-16 + 3 25 1 13 0.96086421419234D-01 -0.14979991409933D-16 + 1 26 1 13 -0.21299436255673D-01 0.23129024614131D-15 + 2 26 1 13 -0.96467426406935D-01 0.27679731416921D-16 + 3 26 1 13 -0.96086421419234D-01 -0.25563221240657D-16 + 1 27 1 13 -0.21299436255682D-01 0.56163260659703D-16 + 2 27 1 13 0.96467426406945D-01 0.21988909913071D-18 + 3 27 1 13 -0.96086421419243D-01 -0.15421611799623D-17 + 1 28 1 13 0.31199813867581D+01 0.31530844842640D-16 + 2 28 1 13 -0.12387195275551D+01 -0.20597822858564D-16 + 3 28 1 13 0.13075677232505D+01 0.20445491207660D-16 + 1 29 1 13 0.31199813867580D+01 0.18183282373173D-15 + 2 29 1 13 0.12387195275551D+01 -0.23751271632084D-16 + 3 29 1 13 0.13075677232505D+01 0.12236676637251D-16 + 1 30 1 13 0.31199813867581D+01 0.25250850256590D-15 + 2 30 1 13 -0.12387195275551D+01 0.26575610057959D-16 + 3 30 1 13 -0.13075677232505D+01 0.31367331677064D-16 + 1 31 1 13 0.31199813867581D+01 0.22555145396169D-16 + 2 31 1 13 0.12387195275551D+01 0.76645375802922D-17 + 3 31 1 13 -0.13075677232505D+01 -0.90932652625256D-17 + 1 32 1 13 0.31536293489752D+00 0.14205010179364D-15 + 2 32 1 13 -0.17284784351051D+00 0.65443251862075D-17 + 3 32 1 13 -0.29514364931121D+00 -0.14255155527635D-16 + 1 33 1 13 -0.77613523706562D+00 -0.67186276986042D-16 + 2 33 1 13 -0.45662906075671D+00 0.84728015022751D-17 + 3 33 1 13 0.48530167859136D+00 -0.11919323571129D-17 + 1 34 1 13 -0.26420339423972D+02 -0.12331832864194D-15 + 2 34 1 13 -0.14499435259298D+02 -0.11687965199113D-16 + 3 34 1 13 0.13895113734309D+02 0.46693663478396D-16 + 1 35 1 13 0.17242731460602D+00 0.57191870724833D-16 + 2 35 1 13 0.29415513634770D+00 0.22355515921754D-16 + 3 35 1 13 0.28946461609934D+00 -0.29259682719269D-16 + 1 36 1 13 -0.36444635920968D+00 0.38441107524561D-16 + 2 36 1 13 -0.40614895031310D+00 -0.34633260830839D-16 + 3 36 1 13 0.47458666872602D+00 -0.34283657085089D-16 + 1 37 1 13 0.25476396318106D+00 0.92281477557378D-16 + 2 37 1 13 -0.24383583027038D-01 -0.45810930454133D-17 + 3 37 1 13 0.34099467511327D-01 -0.33470845191569D-16 + 1 38 1 13 0.50220923755585D+00 -0.62975482864348D-16 + 2 38 1 13 -0.33703870689487D+00 -0.17700920043454D-16 + 3 38 1 13 0.33579699030053D+00 -0.63086174499346D-17 + 1 39 1 13 -0.37906592757706D+00 -0.28704362785715D-15 + 2 39 1 13 -0.46121895615501D+00 0.31099899756145D-16 + 3 39 1 13 0.47191400210512D+00 0.19408933318175D-16 + 1 40 1 13 -0.30574761769625D+01 0.12789700033467D-15 + 2 40 1 13 0.13086307270575D+01 -0.24374945075457D-16 + 3 40 1 13 -0.31534604980328D+01 0.72334022446928D-18 + 1 41 1 13 -0.30574761769625D+01 -0.28816878566845D-16 + 2 41 1 13 -0.13086307270575D+01 -0.20255146962398D-16 + 3 41 1 13 0.31534604980328D+01 0.21618980383937D-17 + 1 42 1 13 -0.21132000918250D+00 -0.32504649390960D-15 + 2 42 1 13 0.80742365490619D-01 -0.32413230900477D-16 + 3 42 1 13 0.10038897771306D+00 -0.39301724004814D-17 + 1 43 1 13 -0.21132000918250D+00 0.21163958607566D-15 + 2 43 1 13 -0.80742365490620D-01 0.75669486817942D-16 + 3 43 1 13 -0.10038897771306D+00 -0.40605418911297D-17 + 1 44 1 13 -0.30574761769625D+01 -0.11720722158818D-15 + 2 44 1 13 0.13086307270575D+01 -0.15222582749040D-16 + 3 44 1 13 0.31534604980328D+01 0.29576896036197D-17 + 1 45 1 13 -0.30574761769625D+01 0.77393680566776D-16 + 2 45 1 13 -0.13086307270575D+01 -0.14905303103200D-16 + 3 45 1 13 -0.31534604980328D+01 0.76322437435948D-18 + 1 46 1 13 -0.21132000918250D+00 0.87087526017555D-16 + 2 46 1 13 0.80742365490621D-01 -0.20068386686070D-16 + 3 46 1 13 -0.10038897771306D+00 -0.18437479399855D-17 + 1 47 1 13 -0.21132000918250D+00 0.15033644477915D-15 + 2 47 1 13 -0.80742365490619D-01 0.16765714181794D-16 + 3 47 1 13 0.10038897771306D+00 -0.64992693757589D-18 + 1 48 1 13 -0.26420339423972D+02 0.30244967186470D-16 + 2 48 1 13 0.14499435259299D+02 0.33944849825349D-18 + 3 48 1 13 -0.13895113734308D+02 0.20206908482788D-16 + 1 49 1 13 0.17242731460597D+00 -0.87473696652844D-16 + 2 49 1 13 -0.29415513634772D+00 -0.21379444613805D-16 + 3 49 1 13 -0.28946461609932D+00 0.19158748725510D-16 + 1 50 1 13 0.31536293489752D+00 0.69263713813317D-17 + 2 50 1 13 0.17284784351064D+00 0.60349659709097D-16 + 3 50 1 13 0.29514364931119D+00 0.58764520154695D-17 + 1 51 1 13 -0.77613523706566D+00 0.38289657757944D-16 + 2 51 1 13 0.45662906075670D+00 0.58415574145599D-16 + 3 51 1 13 -0.48530167859137D+00 -0.15834190442734D-16 + 1 52 1 13 0.50220923755618D+00 -0.27366575173120D-16 + 2 52 1 13 0.33703870689494D+00 0.47734952433033D-16 + 3 52 1 13 -0.33579699030057D+00 0.18531688168371D-16 + 1 53 1 13 -0.37906592757700D+00 -0.91004294909805D-16 + 2 53 1 13 0.46121895615498D+00 -0.49424128467057D-17 + 3 53 1 13 -0.47191400210512D+00 -0.88072362115585D-17 + 1 54 1 13 -0.36444635920968D+00 -0.26853417828171D-15 + 2 54 1 13 0.40614895031319D+00 -0.33198344732930D-16 + 3 54 1 13 -0.47458666872600D+00 -0.14138934237419D-16 + 1 55 1 13 0.25476396318100D+00 -0.10289343916971D-15 + 2 55 1 13 0.24383583027058D-01 -0.32734225960618D-16 + 3 55 1 13 -0.34099467511314D-01 -0.31621772344919D-17 + 1 56 1 13 -0.30001519778860D+01 0.29457901950627D-15 + 2 56 1 13 0.31773514429869D+01 -0.28104084115149D-19 + 3 56 1 13 -0.14264458797104D+01 -0.16353857347362D-16 + 1 57 1 13 -0.23316055675786D+00 0.49189040004323D-16 + 2 57 1 13 -0.10856887234079D+00 0.87937034848835D-19 + 3 57 1 13 -0.10813448889692D+00 0.69621209460457D-16 + 1 58 1 13 -0.30001519778861D+01 0.43843365901611D-16 + 2 58 1 13 -0.31773514429869D+01 0.26350871830093D-17 + 3 58 1 13 0.14264458797104D+01 -0.72097247140549D-16 + 1 59 1 13 -0.23316055675786D+00 -0.15753106185928D-15 + 2 59 1 13 0.10856887234079D+00 -0.14964860440594D-19 + 3 59 1 13 0.10813448889692D+00 0.24891673398390D-16 + 1 60 1 13 -0.30001519778860D+01 0.85199334049218D-16 + 2 60 1 13 -0.31773514429869D+01 -0.49297865038840D-18 + 3 60 1 13 -0.14264458797104D+01 0.50569549855363D-17 + 1 61 1 13 -0.23316055675786D+00 0.15818729621924D-15 + 2 61 1 13 0.10856887234079D+00 0.10321427401514D-17 + 3 61 1 13 -0.10813448889692D+00 0.87543672272163D-17 + 1 62 1 13 -0.30001519778861D+01 0.10566036360538D-15 + 2 62 1 13 0.31773514429869D+01 0.24820697722578D-18 + 3 62 1 13 0.14264458797104D+01 -0.90515061738932D-16 + 1 63 1 13 -0.23316055675786D+00 0.28501245621448D-15 + 2 63 1 13 -0.10856887234079D+00 -0.12012723848331D-17 + 3 63 1 13 0.10813448889692D+00 -0.53740797048327D-16 + 1 64 1 13 -0.11809158130798D+00 0.62488097160124D-16 + 2 64 1 13 -0.67712315227409D-03 -0.19734390971355D-16 + 3 64 1 13 0.10672668704722D-15 0.46532134018362D-16 + 1 65 1 13 -0.11809158130798D+00 0.12258612755304D-15 + 2 65 1 13 0.67712315227473D-03 0.38126800828180D-16 + 3 65 1 13 -0.24815063019100D-15 -0.46820836237270D-16 + 2 67 1 13 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 13 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 13 0.38417593010425D+00 -0.30548764258599D-16 + 2 1 2 13 -0.34998761247846D+00 0.23729642964474D-15 + 3 1 2 13 -0.45168307234366D+00 0.27677784398673D-16 + 1 2 2 13 0.35339012791915D-01 -0.32658184741982D-16 + 2 2 2 13 0.24725792597649D+00 -0.10369824835182D-15 + 3 2 2 13 -0.22788356494302D-01 -0.31640078153955D-16 + 1 3 2 13 0.29075513625965D+00 -0.21281250809182D-17 + 2 3 2 13 0.15499804625747D+00 0.34360503844225D-15 + 3 3 2 13 0.34900987509091D+00 0.21943034333072D-16 + 1 4 2 13 0.46333199486231D+00 -0.12336825699017D-17 + 2 4 2 13 -0.83861054278827D+00 -0.10686992181519D-16 + 3 4 2 13 -0.44647630976623D+00 0.15021313852943D-16 + 1 5 2 13 0.13251019054803D+00 -0.50534419553923D-17 + 2 5 2 13 0.51643676632401D+00 0.26098738100475D-15 + 3 5 2 13 -0.27006261064949D+00 0.12658994034564D-16 + 1 6 2 13 0.48063399579718D+00 0.12780502347251D-17 + 2 6 2 13 -0.38733449979394D+00 -0.13788649249929D-15 + 3 6 2 13 -0.46398081912002D+00 0.17318060135639D-16 + 1 7 2 13 0.14605661763507D+02 0.20502623924980D-17 + 2 7 2 13 -0.26557973056397D+02 0.13779494288985D-15 + 3 7 2 13 -0.14423236904407D+02 -0.96007139389849D-17 + 1 8 2 13 -0.28498843691365D+00 0.17437162224276D-16 + 2 8 2 13 0.17338507247209D+00 0.94152481197461D-16 + 3 8 2 13 -0.24621087117146D+00 0.13568527559553D-16 + 1 9 2 13 0.53659962891878D-16 0.00000000000000D+00 + 2 9 2 13 -0.25311509865131D+00 0.00000000000000D+00 + 3 9 2 13 -0.44739857569419D-16 0.00000000000000D+00 + 1 10 2 13 0.54657247008828D-16 0.00000000000000D+00 + 2 10 2 13 0.15539734922401D+01 0.00000000000000D+00 + 3 10 2 13 0.44624519882528D-16 0.00000000000000D+00 + 1 11 2 13 -0.11172030516177D-15 0.00000000000000D+00 + 2 11 2 13 -0.13124231199622D+00 0.00000000000000D+00 + 3 11 2 13 0.33883313719073D-16 0.00000000000000D+00 + 1 12 2 13 -0.50255445187448D-16 0.00000000000000D+00 + 2 12 2 13 -0.12442641598040D+00 0.00000000000000D+00 + 3 12 2 13 -0.49055300179113D-16 0.00000000000000D+00 + 1 13 2 13 0.26047203948820D-12 0.00000000000000D+00 + 2 13 2 13 0.12097442745118D+03 0.00000000000000D+00 + 3 13 2 13 -0.22164388889789D-12 0.00000000000000D+00 + 1 14 2 13 -0.41041342037585D-17 0.00000000000000D+00 + 2 14 2 13 -0.22724183318676D+00 0.00000000000000D+00 + 3 14 2 13 -0.39823390513337D-16 0.00000000000000D+00 + 1 15 2 13 0.41303763886505D-17 0.00000000000000D+00 + 2 15 2 13 -0.18674926210325D+00 0.00000000000000D+00 + 3 15 2 13 -0.11715141888139D-15 0.00000000000000D+00 + 1 16 2 13 -0.29079744594829D+00 -0.21635843082092D-16 + 2 16 2 13 0.15481190776723D+00 0.13683507725900D-15 + 3 16 2 13 0.34888369564761D+00 0.22118964120787D-16 + 1 17 2 13 -0.46323176661819D+00 0.23747597770684D-16 + 2 17 2 13 -0.83788531463359D+00 0.14996571437462D-15 + 3 17 2 13 -0.44676438578566D+00 -0.16221220304537D-16 + 1 18 2 13 -0.38442718384615D+00 -0.72017505831201D-17 + 2 18 2 13 -0.34993299908328D+00 -0.17282375969724D-15 + 3 18 2 13 -0.45194897166762D+00 0.37707682556507D-16 + 1 19 2 13 -0.35524175743278D-01 0.12941431336789D-16 + 2 19 2 13 0.24720094615653D+00 -0.14585652404283D-15 + 3 19 2 13 -0.22880423412219D-01 -0.70452694636441D-16 + 1 20 2 13 -0.14605098310297D+02 0.20901237723021D-16 + 2 20 2 13 -0.26558150007281D+02 -0.61025122145265D-16 + 3 20 2 13 -0.14421520332334D+02 0.82600325334601D-16 + 1 21 2 13 0.28488978243750D+00 -0.76045645034531D-17 + 2 21 2 13 0.17336912281447D+00 0.31271201613290D-16 + 3 21 2 13 -0.24606927179017D+00 -0.27813940405086D-16 + 1 22 2 13 -0.13240972760758D+00 0.17337108185043D-16 + 2 22 2 13 0.51572736923973D+00 0.13759065063826D-15 + 3 22 2 13 -0.26995021922509D+00 0.29149550933035D-16 + 1 23 2 13 -0.47953374969924D+00 0.12788481586222D-16 + 2 23 2 13 -0.38779513090309D+00 -0.89124890728250D-16 + 3 23 2 13 -0.46464881611197D+00 -0.30802865544586D-16 + 1 24 2 13 0.11647921859219D+00 -0.14031653338169D-16 + 2 24 2 13 -0.20497380330675D+00 -0.18290421568207D-15 + 3 24 2 13 -0.84283472302181D-01 -0.14476877977995D-18 + 1 25 2 13 -0.11647921859220D+00 -0.15793245196959D-16 + 2 25 2 13 -0.20497380330675D+00 -0.23747232871474D-15 + 3 25 2 13 0.84283472302180D-01 -0.58728276201592D-18 + 1 26 2 13 0.11647921859220D+00 0.27679731416921D-16 + 2 26 2 13 -0.20497380330675D+00 0.11310960982516D-15 + 3 26 2 13 0.84283472302182D-01 -0.66555259889554D-18 + 1 27 2 13 -0.11647921859219D+00 0.21988909913071D-18 + 2 27 2 13 -0.20497380330674D+00 0.15109856383683D-16 + 3 27 2 13 -0.84283472302183D-01 -0.18811930754449D-18 + 1 28 2 13 0.13607069780245D+01 -0.20597822858564D-16 + 2 28 2 13 -0.30867247988156D+01 -0.11213821931162D-15 + 3 28 2 13 0.32608007377771D+01 -0.17412601538428D-17 + 1 29 2 13 -0.13607069780245D+01 -0.23751271632084D-16 + 2 29 2 13 -0.30867247988156D+01 0.82722921457868D-16 + 3 29 2 13 -0.32608007377771D+01 -0.19812292333714D-17 + 1 30 2 13 0.13607069780245D+01 0.26575610057959D-16 + 2 30 2 13 -0.30867247988156D+01 -0.21753826976133D-15 + 3 30 2 13 -0.32608007377772D+01 -0.14843147989096D-17 + 1 31 2 13 -0.13607069780245D+01 0.76645375802922D-17 + 2 31 2 13 -0.30867247988156D+01 -0.18473864068293D-15 + 3 31 2 13 0.32608007377771D+01 0.24323781254544D-17 + 1 32 2 13 -0.13251019054806D+00 0.65443251862075D-17 + 2 32 2 13 0.51643676632403D+00 0.17398553977229D-15 + 3 32 2 13 0.27006261064937D+00 0.11373077041093D-16 + 1 33 2 13 -0.48063399579714D+00 0.84728015022751D-17 + 2 33 2 13 -0.38733449979385D+00 -0.24940228680486D-16 + 3 33 2 13 0.46398081912004D+00 0.14015467513562D-16 + 1 34 2 13 -0.14605661763507D+02 -0.11687965199113D-16 + 2 34 2 13 -0.26557973056397D+02 -0.34206774119298D-16 + 3 34 2 13 0.14423236904409D+02 0.76478185534605D-17 + 1 35 2 13 0.28498843691369D+00 0.22355515921754D-16 + 2 35 2 13 0.17338507247210D+00 -0.99349149948783D-16 + 3 35 2 13 0.24621087117145D+00 0.21744995789747D-16 + 1 36 2 13 -0.38417593010418D+00 -0.34633260830839D-16 + 2 36 2 13 -0.34998761247839D+00 -0.55105867204616D-16 + 3 36 2 13 0.45168307234362D+00 -0.28785508913391D-16 + 1 37 2 13 -0.35339012791923D-01 -0.45810930454133D-17 + 2 37 2 13 0.24725792597651D+00 0.11671068228629D-15 + 3 37 2 13 0.22788356494316D-01 -0.10689927267139D-16 + 1 38 2 13 -0.29075513625974D+00 -0.17700920043454D-16 + 2 38 2 13 0.15499804625739D+00 0.10600175854546D-15 + 3 38 2 13 -0.34900987509092D+00 0.17856170083119D-16 + 1 39 2 13 -0.46333199486230D+00 0.31099899756145D-16 + 2 39 2 13 -0.83861054278829D+00 -0.56437541910196D-16 + 3 39 2 13 0.44647630976622D+00 0.28622507288539D-16 + 1 40 2 13 -0.13103510648214D+01 -0.24374945075457D-16 + 2 40 2 13 0.31612187369587D+01 0.18970987686868D-15 + 3 40 2 13 -0.13775885799320D+01 -0.28252678193740D-16 + 1 41 2 13 0.13103510648214D+01 -0.20255146962398D-16 + 2 41 2 13 0.31612187369587D+01 0.52156842189781D-16 + 3 41 2 13 -0.13775885799320D+01 -0.10998652834260D-16 + 1 42 2 13 -0.71961574256988D-01 -0.32413230900477D-16 + 2 42 2 13 -0.42718762411062D-01 0.69393440136940D-16 + 3 42 2 13 -0.11750953390600D+00 0.34069073347238D-17 + 1 43 2 13 0.71961574256987D-01 0.75669486817942D-16 + 2 43 2 13 -0.42718762411060D-01 0.79322257765117D-16 + 3 43 2 13 -0.11750953390600D+00 -0.50002211085376D-17 + 1 44 2 13 -0.13103510648214D+01 -0.15222582749040D-16 + 2 44 2 13 0.31612187369587D+01 0.54113316719197D-17 + 3 44 2 13 0.13775885799320D+01 0.33487557207119D-16 + 1 45 2 13 0.13103510648214D+01 -0.14905303103200D-16 + 2 45 2 13 0.31612187369587D+01 0.17798120787265D-15 + 3 45 2 13 0.13775885799320D+01 0.84070232605547D-17 + 1 46 2 13 -0.71961574256985D-01 -0.20068386686070D-16 + 2 46 2 13 -0.42718762411065D-01 -0.16577421454725D-15 + 3 46 2 13 0.11750953390600D+00 0.13797202596768D-16 + 1 47 2 13 0.71961574256988D-01 0.16765714181794D-16 + 2 47 2 13 -0.42718762411065D-01 0.12688197062469D-16 + 3 47 2 13 0.11750953390600D+00 -0.24208844706171D-16 + 1 48 2 13 0.14605098310296D+02 0.33944849825349D-18 + 2 48 2 13 -0.26558150007281D+02 -0.16184236440645D-15 + 3 48 2 13 0.14421520332335D+02 -0.11773296383017D-16 + 1 49 2 13 -0.28488978243755D+00 -0.21379444613805D-16 + 2 49 2 13 0.17336912281449D+00 -0.42567811691160D-16 + 3 49 2 13 0.24606927179024D+00 -0.22956769219588D-16 + 1 50 2 13 0.13240972760752D+00 0.60349659709097D-16 + 2 50 2 13 0.51572736924008D+00 0.96866515628018D-16 + 3 50 2 13 0.26995021922523D+00 -0.30127632180721D-17 + 1 51 2 13 0.47953374969924D+00 0.58415574145599D-16 + 2 51 2 13 -0.38779513090301D+00 -0.23464514331864D-15 + 3 51 2 13 0.46464881611196D+00 -0.42814459800272D-16 + 1 52 2 13 0.29079744594824D+00 0.47734952433033D-16 + 2 52 2 13 0.15481190776718D+00 -0.12172226284349D-15 + 3 52 2 13 -0.34888369564760D+00 0.19684088810904D-16 + 1 53 2 13 0.46323176661816D+00 -0.49424128467057D-17 + 2 53 2 13 -0.83788531463352D+00 0.42965089979049D-16 + 3 53 2 13 0.44676438578567D+00 0.23242696131993D-16 + 1 54 2 13 0.38442718384614D+00 -0.33198344732930D-16 + 2 54 2 13 -0.34993299908329D+00 0.36977174045640D-15 + 3 54 2 13 0.45194897166767D+00 0.17771973435203D-16 + 1 55 2 13 0.35524175743271D-01 -0.32734225960618D-16 + 2 55 2 13 0.24720094615663D+00 -0.12852263625867D-15 + 3 55 2 13 0.22880423412226D-01 -0.61340617417144D-16 + 1 56 2 13 0.30660005531584D+01 -0.28104084115149D-19 + 2 56 2 13 -0.29954888535487D+01 0.78338257193211D-16 + 3 56 2 13 0.12061807511854D+01 -0.92039965425685D-16 + 1 57 2 13 -0.95524459798810D-01 0.87937034848835D-19 + 2 57 2 13 -0.22820182169767D+00 0.11605257931781D-15 + 3 57 2 13 0.88500513317366D-01 0.20326879745591D-16 + 1 58 2 13 -0.30660005531584D+01 0.26350871830093D-17 + 2 58 2 13 -0.29954888535487D+01 0.40186433674500D-16 + 3 58 2 13 0.12061807511854D+01 -0.38034123546964D-17 + 1 59 2 13 0.95524459798810D-01 -0.14964860440594D-19 + 2 59 2 13 -0.22820182169768D+00 -0.20799184396671D-15 + 3 59 2 13 0.88500513317365D-01 0.39324229861036D-16 + 1 60 2 13 -0.30660005531584D+01 -0.49297865038840D-18 + 2 60 2 13 -0.29954888535487D+01 0.24450836531220D-15 + 3 60 2 13 -0.12061807511854D+01 -0.71190730131074D-17 + 1 61 2 13 0.95524459798810D-01 0.10321427401514D-17 + 2 61 2 13 -0.22820182169768D+00 -0.13222023349281D-15 + 3 61 2 13 -0.88500513317367D-01 0.75754803004029D-16 + 1 62 2 13 0.30660005531584D+01 0.24820697722578D-18 + 2 62 2 13 -0.29954888535487D+01 -0.22986434377742D-15 + 3 62 2 13 -0.12061807511854D+01 -0.56927934676257D-16 + 1 63 2 13 -0.95524459798810D-01 -0.12012723848331D-17 + 2 63 2 13 -0.22820182169768D+00 0.39454001264743D-16 + 3 63 2 13 -0.88500513317367D-01 -0.21158096642140D-16 + 1 64 2 13 -0.66110482824600D-16 -0.19734390971355D-16 + 2 64 2 13 0.70989436342781D-01 -0.80740781105899D-17 + 3 64 2 13 -0.17530610677971D+00 -0.16783486082550D-17 + 1 65 2 13 0.71357402997519D-15 0.38126800828180D-16 + 2 65 2 13 0.70989436342781D-01 0.70568145060871D-17 + 3 65 2 13 0.17530610677971D+00 0.21842298545214D-17 + 1 67 2 13 0.00000000000000D+00 0.00000000000000D+00 + 3 67 2 13 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 13 0.50513314278052D+00 0.12903551922430D-17 + 2 1 3 13 -0.44345517655243D+00 0.27677784398673D-16 + 3 1 3 13 -0.76994936718329D+00 -0.50560854877105D-16 + 1 2 3 13 0.25033869836144D-01 0.57714566286110D-17 + 2 2 3 13 -0.33216969269469D-01 -0.31640078153955D-16 + 3 2 3 13 0.26036168030253D+00 -0.10321344043881D-15 + 1 3 3 13 0.32850170110727D+00 -0.21130982788144D-16 + 2 3 3 13 0.28740111017937D+00 0.21943034333072D-16 + 3 3 3 13 0.15825920575420D+00 -0.27300915263980D-15 + 1 4 3 13 0.47950150971599D+00 -0.11318360129661D-16 + 2 4 3 13 -0.48737886495422D+00 0.15021313852943D-16 + 3 4 3 13 -0.43255486659625D+00 -0.17086583406930D-15 + 1 5 3 13 -0.27876761996521D+00 -0.32846065125504D-16 + 2 5 3 13 -0.20346636314717D+00 0.12658994034564D-16 + 3 5 3 13 0.25241496941609D+00 0.21191527045885D-15 + 1 6 3 13 0.42176664241324D+00 -0.21016232890215D-16 + 2 6 3 13 -0.42696613261043D+00 0.17318060135639D-16 + 3 6 3 13 -0.39950504984974D+00 0.30525567527358D-16 + 1 7 3 13 0.14029655666361D+02 0.19984827844079D-16 + 2 7 3 13 -0.14382862120111D+02 -0.96007139389849D-17 + 3 7 3 13 -0.26292168970119D+02 0.30199429819665D-15 + 1 8 3 13 0.25712532149784D+00 0.12496158743968D-16 + 2 8 3 13 -0.28303719140876D+00 0.13568527559553D-16 + 3 8 3 13 0.41507581536834D+00 -0.31196586752718D-15 + 1 9 3 13 0.53659962892007D-16 0.00000000000000D+00 + 2 9 3 13 -0.44739857569419D-16 0.00000000000000D+00 + 3 9 3 13 -0.16236930026856D+00 0.00000000000000D+00 + 1 10 3 13 -0.11177451661457D-15 0.00000000000000D+00 + 2 10 3 13 0.44624519882528D-16 0.00000000000000D+00 + 3 10 3 13 -0.19008203218907D+00 0.00000000000000D+00 + 1 11 3 13 0.54874087443351D-16 0.00000000000000D+00 + 2 11 3 13 0.33883313719073D-16 0.00000000000000D+00 + 3 11 3 13 0.14916193948218D+01 0.00000000000000D+00 + 1 12 3 13 -0.50255441172727D-16 0.00000000000000D+00 + 2 12 3 13 -0.49055300179113D-16 0.00000000000000D+00 + 3 12 3 13 -0.11499319188834D+00 0.00000000000000D+00 + 1 13 3 13 0.18791016412336D-12 0.00000000000000D+00 + 2 13 3 13 -0.22164388889789D-12 0.00000000000000D+00 + 3 13 3 13 0.12041385048373D+03 0.00000000000000D+00 + 1 14 3 13 0.47699364890307D-17 0.00000000000000D+00 + 2 14 3 13 -0.39823390513337D-16 0.00000000000000D+00 + 3 14 3 13 -0.37007247821559D+00 0.00000000000000D+00 + 1 15 3 13 0.44556372469830D-17 0.00000000000000D+00 + 2 15 3 13 -0.11715141888139D-15 0.00000000000000D+00 + 3 15 3 13 -0.18674926210325D+00 0.00000000000000D+00 + 1 16 3 13 -0.32830750008265D+00 0.14873834627159D-16 + 2 16 3 13 0.28725792961402D+00 0.22118964120787D-16 + 3 16 3 13 0.15800405882501D+00 0.55248712470409D-16 + 1 17 3 13 -0.47928982803675D+00 0.18419036573577D-16 + 2 17 3 13 -0.48754355508730D+00 -0.16221220304537D-16 + 3 17 3 13 -0.43295774645818D+00 -0.89272586390985D-16 + 1 18 3 13 -0.50396362191663D+00 -0.93463473422231D-17 + 2 18 3 13 -0.44304227120455D+00 0.37707682556507D-16 + 3 18 3 13 -0.77115215878722D+00 0.38488698356601D-16 + 1 19 3 13 -0.25402314664384D-01 -0.16687181337471D-16 + 2 19 3 13 -0.33719155066207D-01 -0.70452694636441D-16 + 3 19 3 13 0.26068217900466D+00 0.14034552292254D-15 + 1 20 3 13 -0.14023698877720D+02 0.81456554464450D-17 + 2 20 3 13 -0.14386353091133D+02 0.82600325334601D-16 + 3 20 3 13 -0.26286632465736D+02 -0.14030352647738D-15 + 1 21 3 13 -0.25653774893595D+00 -0.12117767928531D-16 + 2 21 3 13 -0.28237580530000D+00 -0.27813940405086D-16 + 3 21 3 13 0.41427020038981D+00 0.12367285301521D-15 + 1 22 3 13 0.27980784023499D+00 0.12944970309020D-16 + 2 22 3 13 -0.20398932206616D+00 0.29149550933035D-16 + 3 22 3 13 0.25290236492055D+00 -0.10004466299170D-15 + 1 23 3 13 -0.42047438751370D+00 0.25924532809163D-16 + 2 23 3 13 -0.42640903342131D+00 -0.30802865544586D-16 + 3 23 3 13 -0.39930949999089D+00 0.12144639589529D-15 + 1 24 3 13 -0.96122160593481D-01 0.31796909074064D-16 + 2 24 3 13 -0.88506819764607D-01 -0.14476877977995D-18 + 3 24 3 13 -0.24152013706304D+00 0.21524765246292D-16 + 1 25 3 13 -0.96122160593490D-01 -0.14979991409933D-16 + 2 25 3 13 0.88506819764607D-01 -0.58728276201592D-18 + 3 25 3 13 -0.24152013706304D+00 -0.10809685355391D-15 + 1 26 3 13 0.96122160593489D-01 -0.25563221240657D-16 + 2 26 3 13 0.88506819764608D-01 -0.66555259889554D-18 + 3 26 3 13 -0.24152013706305D+00 0.11696865134394D-15 + 1 27 3 13 0.96122160593481D-01 -0.15421611799623D-17 + 2 27 3 13 -0.88506819764609D-01 -0.18811930754449D-18 + 3 27 3 13 -0.24152013706305D+00 0.18058905187492D-15 + 1 28 3 13 -0.13222195601823D+01 0.20445491207660D-16 + 2 28 3 13 0.31474940004415D+01 -0.17412601538428D-17 + 3 28 3 13 -0.30373776208385D+01 0.17723893392215D-15 + 1 29 3 13 -0.13222195601823D+01 0.12236676637251D-16 + 2 29 3 13 -0.31474940004414D+01 -0.19812292333714D-17 + 3 29 3 13 -0.30373776208385D+01 0.26032105037736D-16 + 1 30 3 13 0.13222195601823D+01 0.31367331677064D-16 + 2 30 3 13 -0.31474940004415D+01 -0.14843147989096D-17 + 3 30 3 13 -0.30373776208386D+01 0.93907901755242D-16 + 1 31 3 13 0.13222195601823D+01 -0.90932652625256D-17 + 2 31 3 13 0.31474940004415D+01 0.24323781254544D-17 + 3 31 3 13 -0.30373776208385D+01 -0.21929607971901D-16 + 1 32 3 13 -0.27980784023501D+00 -0.14255155527635D-16 + 2 32 3 13 0.20398932206613D+00 0.11373077041093D-16 + 3 32 3 13 0.25290236492053D+00 -0.10453565948080D-16 + 1 33 3 13 0.42047438751370D+00 -0.11919323571129D-17 + 2 33 3 13 0.42640903342137D+00 0.14015467513562D-16 + 3 33 3 13 -0.39930949999087D+00 -0.35703565601443D-18 + 1 34 3 13 0.14023698877720D+02 0.46693663478396D-16 + 2 34 3 13 0.14386353091133D+02 0.76478185534605D-17 + 3 34 3 13 -0.26286632465736D+02 -0.42505427077106D-15 + 1 35 3 13 0.25653774893590D+00 -0.29259682719269D-16 + 2 35 3 13 0.28237580530002D+00 0.21744995789747D-16 + 3 35 3 13 0.41427020038976D+00 0.10522360243692D-15 + 1 36 3 13 0.50396362191662D+00 -0.34283657085089D-16 + 2 36 3 13 0.44304227120451D+00 -0.28785508913391D-16 + 3 36 3 13 -0.77115215878723D+00 -0.10415767086118D-15 + 1 37 3 13 0.25402314664380D-01 -0.33470845191569D-16 + 2 37 3 13 0.33719155066212D-01 -0.10689927267139D-16 + 3 37 3 13 0.26068217900466D+00 -0.13189576673822D-15 + 1 38 3 13 0.32830750008271D+00 -0.63086174499346D-17 + 2 38 3 13 -0.28725792961402D+00 0.17856170083119D-16 + 3 38 3 13 0.15800405882501D+00 0.16077344010195D-16 + 1 39 3 13 0.47928982803673D+00 0.19408933318175D-16 + 2 39 3 13 0.48754355508730D+00 0.28622507288539D-16 + 3 39 3 13 -0.43295774645818D+00 0.27005048246644D-15 + 1 40 3 13 -0.32811025291623D+01 0.72334022446928D-18 + 2 40 3 13 0.14207456754165D+01 -0.28252678193740D-16 + 3 40 3 13 -0.31111385464382D+01 -0.30952317585763D-15 + 1 41 3 13 0.32811025291623D+01 0.21618980383937D-17 + 2 41 3 13 0.14207456754165D+01 -0.10998652834260D-16 + 3 41 3 13 -0.31111385464382D+01 -0.30922826836000D-15 + 1 42 3 13 0.13055966252282D+00 -0.39301724004814D-17 + 2 42 3 13 0.11189461027629D+00 0.34069073347238D-17 + 3 42 3 13 -0.18948265496565D+00 0.18163315650226D-16 + 1 43 3 13 -0.13055966252282D+00 -0.40605418911297D-17 + 2 43 3 13 0.11189461027629D+00 -0.50002211085376D-17 + 3 43 3 13 -0.18948265496565D+00 0.10714570985003D-15 + 1 44 3 13 0.32811025291623D+01 0.29576896036197D-17 + 2 44 3 13 -0.14207456754165D+01 0.33487557207119D-16 + 3 44 3 13 -0.31111385464382D+01 0.23982729633073D-15 + 1 45 3 13 -0.32811025291623D+01 0.76322437435948D-18 + 2 45 3 13 -0.14207456754165D+01 0.84070232605547D-17 + 3 45 3 13 -0.31111385464382D+01 0.16582191399903D-15 + 1 46 3 13 -0.13055966252282D+00 -0.18437479399855D-17 + 2 46 3 13 -0.11189461027629D+00 0.13797202596768D-16 + 3 46 3 13 -0.18948265496565D+00 0.78432799339238D-15 + 1 47 3 13 0.13055966252282D+00 -0.64992693757589D-18 + 2 47 3 13 -0.11189461027629D+00 -0.24208844706171D-16 + 3 47 3 13 -0.18948265496565D+00 -0.15282015441375D-15 + 1 48 3 13 -0.14029655666361D+02 0.20206908482788D-16 + 2 48 3 13 0.14382862120111D+02 -0.11773296383017D-16 + 3 48 3 13 -0.26292168970119D+02 0.13832222864911D-15 + 1 49 3 13 -0.25712532149783D+00 0.19158748725510D-16 + 2 49 3 13 0.28303719140874D+00 -0.22956769219588D-16 + 3 49 3 13 0.41507581536839D+00 -0.31255711912697D-15 + 1 50 3 13 0.27876761996520D+00 0.58764520154695D-17 + 2 50 3 13 0.20346636314716D+00 -0.30127632180721D-17 + 3 50 3 13 0.25241496941607D+00 -0.26383020617239D-15 + 1 51 3 13 -0.42176664241323D+00 -0.15834190442734D-16 + 2 51 3 13 0.42696613261040D+00 -0.42814459800272D-16 + 3 51 3 13 -0.39950504984975D+00 0.19869161126982D-15 + 1 52 3 13 -0.32850170110729D+00 0.18531688168371D-16 + 2 52 3 13 -0.28740111017937D+00 0.19684088810904D-16 + 3 52 3 13 0.15825920575422D+00 0.19959418216989D-15 + 1 53 3 13 -0.47950150971597D+00 -0.88072362115585D-17 + 2 53 3 13 0.48737886495423D+00 0.23242696131993D-16 + 3 53 3 13 -0.43255486659626D+00 0.20063046410732D-15 + 1 54 3 13 -0.50513314278050D+00 -0.14138934237419D-16 + 2 54 3 13 0.44345517655243D+00 0.17771973435203D-16 + 3 54 3 13 -0.76994936718330D+00 -0.37891416555175D-16 + 1 55 3 13 -0.25033869836134D-01 -0.31621772344919D-17 + 2 55 3 13 0.33216969269469D-01 -0.61340617417144D-16 + 3 55 3 13 0.26036168030257D+00 0.32928530321046D-15 + 1 56 3 13 0.12254845032310D+01 -0.16353857347362D-16 + 2 56 3 13 -0.13470329229198D+01 -0.92039965425685D-16 + 3 56 3 13 0.31732604423890D+01 -0.11604681544872D-16 + 1 57 3 13 0.12734062973724D+00 0.69621209460457D-16 + 2 57 3 13 -0.69079466598022D-01 0.20326879745591D-16 + 3 57 3 13 -0.49105577665175D-02 0.29606576130970D-16 + 1 58 3 13 -0.12254845032310D+01 -0.72097247140549D-16 + 2 58 3 13 -0.13470329229198D+01 -0.38034123546964D-17 + 3 58 3 13 0.31732604423890D+01 -0.89464301540534D-16 + 1 59 3 13 -0.12734062973724D+00 0.24891673398390D-16 + 2 59 3 13 -0.69079466598023D-01 0.39324229861036D-16 + 3 59 3 13 -0.49105577665157D-02 0.85239478054195D-16 + 1 60 3 13 0.12254845032310D+01 0.50569549855363D-17 + 2 60 3 13 0.13470329229198D+01 -0.71190730131074D-17 + 3 60 3 13 0.31732604423891D+01 -0.39016871619782D-16 + 1 61 3 13 0.12734062973724D+00 0.87543672272163D-17 + 2 61 3 13 0.69079466598021D-01 0.75754803004029D-16 + 3 61 3 13 -0.49105577665157D-02 0.53795467926313D-16 + 1 62 3 13 -0.12254845032310D+01 -0.90515061738932D-16 + 2 62 3 13 0.13470329229198D+01 -0.56927934676257D-16 + 3 62 3 13 0.31732604423891D+01 -0.30103446060179D-16 + 1 63 3 13 -0.12734062973724D+00 -0.53740797048327D-16 + 2 63 3 13 0.69079466598021D-01 -0.21158096642140D-16 + 3 63 3 13 -0.49105577665193D-02 -0.21524770401140D-16 + 1 64 3 13 0.10672668704722D-15 0.46532134018362D-16 + 2 64 3 13 0.19438991150893D-02 -0.16783486082550D-17 + 3 64 3 13 -0.15330702032595D+00 0.10674775705730D-17 + 1 65 3 13 -0.24815063019100D-15 -0.46820836237270D-16 + 2 65 3 13 -0.19438991150892D-02 0.21842298545214D-17 + 3 65 3 13 -0.15330702032595D+00 -0.14147611312755D-16 + 1 67 3 13 0.00000000000000D+00 0.00000000000000D+00 + 2 67 3 13 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 14 0.28943709331825D+00 -0.24644124398707D-15 + 2 1 1 14 0.35415753449325D-01 0.93983546448697D-17 + 3 1 1 14 0.35415753449357D-01 -0.16632431961330D-16 + 1 2 1 14 -0.40543449355560D+00 0.14862116121140D-15 + 2 2 1 14 0.45850944608785D+00 0.16514854172663D-17 + 3 2 1 14 0.47912631614101D+00 0.28898938974466D-16 + 1 3 1 14 -0.40543449355577D+00 -0.35762047759401D-16 + 2 3 1 14 0.47912631614103D+00 -0.13066983972077D-16 + 3 3 1 14 0.45850944608779D+00 0.58050151757177D-17 + 1 4 1 14 0.41824065550525D+00 -0.18136539353938D-16 + 2 4 1 14 0.25161118007228D+00 0.19606076120253D-16 + 3 4 1 14 0.25161118007220D+00 0.10479276920396D-16 + 1 5 1 14 -0.67417847429045D+00 0.19522994353945D-15 + 2 5 1 14 0.45772260833662D+00 0.82036491169508D-17 + 3 5 1 14 0.45772260833659D+00 0.44408200190469D-18 + 1 6 1 14 0.20209056579018D+00 -0.91656307276439D-16 + 2 6 1 14 0.32570656986024D+00 0.39732826701180D-16 + 3 6 1 14 -0.31337407013402D+00 -0.17285126281595D-16 + 1 7 1 14 0.20209056579021D+00 -0.17065552816068D-15 + 2 7 1 14 -0.31337407013403D+00 -0.16031574207310D-16 + 3 7 1 14 0.32570656986030D+00 0.88144279504976D-17 + 1 8 1 14 -0.26113621198295D+02 -0.75736847014409D-16 + 2 8 1 14 0.14061047771994D+02 0.22809033273159D-16 + 3 8 1 14 0.14061047771996D+02 -0.37110287326362D-16 + 1 9 1 14 -0.23868872678234D+00 0.00000000000000D+00 + 2 9 1 14 0.54657247008828D-16 0.00000000000000D+00 + 3 9 1 14 -0.11177451661457D-15 0.00000000000000D+00 + 1 10 1 14 -0.39542031101207D+00 0.00000000000000D+00 + 2 10 1 14 0.53659962891878D-16 0.00000000000000D+00 + 3 10 1 14 0.53659962892007D-16 0.00000000000000D+00 + 1 11 1 14 -0.13504907097576D+00 0.00000000000000D+00 + 2 11 1 14 -0.50255445187448D-16 0.00000000000000D+00 + 3 11 1 14 -0.50255441172727D-16 0.00000000000000D+00 + 1 12 1 14 -0.23868872678244D+00 0.00000000000000D+00 + 2 12 1 14 -0.11172030516177D-15 0.00000000000000D+00 + 3 12 1 14 0.54874087443351D-16 0.00000000000000D+00 + 1 13 1 14 -0.18661947792590D+00 0.00000000000000D+00 + 2 13 1 14 -0.41041342037585D-17 0.00000000000000D+00 + 3 13 1 14 0.47699364890307D-17 0.00000000000000D+00 + 1 14 1 14 0.12065373033132D+03 0.00000000000000D+00 + 2 14 1 14 0.56959044787466D-13 0.00000000000000D+00 + 3 14 1 14 0.87074129089721D-13 0.00000000000000D+00 + 1 15 1 14 -0.18661947792585D+00 0.00000000000000D+00 + 2 15 1 14 0.47699690665374D-17 0.00000000000000D+00 + 3 15 1 14 -0.41057626465234D-17 0.00000000000000D+00 + 1 16 1 14 -0.40543449355566D+00 0.96119088577134D-16 + 2 16 1 14 -0.47912631614102D+00 0.15233475278871D-16 + 3 16 1 14 -0.45850944608783D+00 -0.95074563557414D-17 + 1 17 1 14 0.41824065550512D+00 -0.16525086071319D-15 + 2 17 1 14 -0.25161118007225D+00 0.29943187088003D-17 + 3 17 1 14 -0.25161118007232D+00 -0.76936815199090D-16 + 1 18 1 14 0.28943709331820D+00 -0.10783597407635D-15 + 2 18 1 14 -0.35415753449340D-01 0.40497965703553D-16 + 3 18 1 14 -0.35415753449318D-01 0.72032521648689D-16 + 1 19 1 14 -0.40543449355557D+00 0.41018619135334D-16 + 2 19 1 14 -0.45850944608788D+00 0.99347414574323D-17 + 3 19 1 14 -0.47912631614102D+00 -0.98831209823881D-17 + 1 20 1 14 0.20209056579024D+00 -0.84511829906992D-16 + 2 20 1 14 0.31337407013406D+00 0.17217499972403D-17 + 3 20 1 14 -0.32570656986038D+00 0.28479652605726D-16 + 1 21 1 14 -0.26113621198295D+02 0.16303255226238D-15 + 2 21 1 14 -0.14061047771995D+02 -0.69377344178981D-17 + 3 21 1 14 -0.14061047771995D+02 0.18893554429102D-16 + 1 22 1 14 -0.67417847429040D+00 0.43257246959660D-16 + 2 22 1 14 -0.45772260833661D+00 0.20070455364658D-16 + 3 22 1 14 -0.45772260833659D+00 -0.27895064811502D-16 + 1 23 1 14 0.20209056579022D+00 0.82550598518513D-16 + 2 23 1 14 -0.32570656986030D+00 0.13121172320440D-16 + 3 23 1 14 0.31337407013409D+00 -0.18690179469241D-16 + 1 24 1 14 0.76462640204295D-02 0.25376960368166D-16 + 2 24 1 14 0.91846499200614D-01 -0.27409081703914D-16 + 3 24 1 14 0.91846499200612D-01 0.17926893699111D-16 + 1 25 1 14 0.76462640204259D-02 0.79210603326197D-16 + 2 25 1 14 -0.91846499200623D-01 0.20424142222036D-17 + 3 25 1 14 0.91846499200622D-01 -0.27012970136482D-16 + 1 26 1 14 0.76462640204259D-02 0.46886294134256D-16 + 2 26 1 14 0.91846499200621D-01 -0.29789892505774D-16 + 3 26 1 14 -0.91846499200621D-01 -0.16928804802174D-16 + 1 27 1 14 0.76462640204242D-02 0.23391243183761D-15 + 2 27 1 14 -0.91846499200612D-01 -0.10607620830761D-16 + 3 27 1 14 -0.91846499200612D-01 -0.19942592818211D-16 + 1 28 1 14 0.29502604004244D+01 -0.17694264302732D-15 + 2 28 1 14 0.12494926559190D+01 -0.81825007449849D-17 + 3 28 1 14 0.12494926559190D+01 0.15517310793268D-16 + 1 29 1 14 0.29502604004244D+01 -0.69589780630669D-16 + 2 29 1 14 -0.12494926559190D+01 -0.10910479429947D-16 + 3 29 1 14 0.12494926559190D+01 -0.18223952628547D-16 + 1 30 1 14 0.29502604004244D+01 0.88337891480603D-16 + 2 30 1 14 0.12494926559190D+01 -0.22584332599325D-16 + 3 30 1 14 -0.12494926559190D+01 0.30493115980894D-16 + 1 31 1 14 0.29502604004244D+01 0.14822756832923D-15 + 2 31 1 14 -0.12494926559190D+01 -0.24933688175919D-16 + 3 31 1 14 -0.12494926559190D+01 0.29153637013940D-16 + 1 32 1 14 -0.67495503113383D+00 0.41290113708321D-16 + 2 32 1 14 -0.45734933338906D+00 -0.15262331674674D-16 + 3 32 1 14 0.45734933338906D+00 0.45949617033566D-16 + 1 33 1 14 0.20201221094884D+00 -0.99385683487815D-16 + 2 33 1 14 -0.32592916479672D+00 0.35042973128615D-17 + 3 33 1 14 -0.31346412582913D+00 0.26436051467484D-16 + 1 34 1 14 0.20201221094887D+00 0.37198643540816D-15 + 2 34 1 14 0.31346412582914D+00 -0.47082216628109D-16 + 3 34 1 14 0.32592916479673D+00 0.22116717759706D-16 + 1 35 1 14 -0.26110101691917D+02 -0.98892000157291D-16 + 2 35 1 14 -0.14059231269912D+02 0.80807690500281D-17 + 3 35 1 14 0.14059231269913D+02 -0.20896598994992D-17 + 1 36 1 14 0.28964246251224D+00 -0.28524033135041D-16 + 2 36 1 14 -0.35530456845666D-01 0.18930864014482D-16 + 3 36 1 14 0.35530456845669D-01 -0.69467939415454D-17 + 1 37 1 14 -0.40570463124979D+00 -0.25238875929644D-15 + 2 37 1 14 -0.45844438789842D+00 0.98074303265651D-17 + 3 37 1 14 0.47955481610335D+00 -0.18895604617661D-16 + 1 38 1 14 -0.40570463124968D+00 -0.14000454058867D-15 + 2 38 1 14 -0.47955481610334D+00 0.14216979862258D-17 + 3 38 1 14 0.45844438789844D+00 -0.21682730009652D-16 + 1 39 1 14 0.41799354973550D+00 0.34210436778386D-16 + 2 39 1 14 -0.25160913496097D+00 0.13339980285491D-16 + 3 39 1 14 0.25160913496104D+00 0.38601241053175D-16 + 1 40 1 14 -0.30813310039781D+01 -0.54699020642963D-16 + 2 40 1 14 -0.13194687112185D+01 -0.56133167366235D-16 + 3 40 1 14 0.32039522267035D+01 -0.13646518709873D-17 + 1 41 1 14 -0.30813310039781D+01 -0.20041279076104D-16 + 2 41 1 14 0.13194687112185D+01 0.27537150416554D-16 + 3 41 1 14 -0.32039522267035D+01 0.23457238538332D-17 + 1 42 1 14 -0.23633934167008D+00 -0.15066539774597D-15 + 2 42 1 14 -0.88968340529827D-01 0.39645941650611D-16 + 3 42 1 14 -0.10097204574324D+00 -0.85660035992517D-18 + 1 43 1 14 -0.23633934167008D+00 0.12981970658530D-15 + 2 43 1 14 0.88968340529825D-01 -0.81162746827511D-16 + 3 43 1 14 0.10097204574324D+00 0.21304685647815D-17 + 1 44 1 14 -0.30813310039781D+01 -0.11012144967672D-15 + 2 44 1 14 -0.13194687112185D+01 0.38938640565492D-16 + 3 44 1 14 -0.32039522267035D+01 0.52135276009126D-18 + 1 45 1 14 -0.30813310039782D+01 -0.28491037380043D-15 + 2 45 1 14 0.13194687112185D+01 -0.21467573123999D-16 + 3 45 1 14 0.32039522267036D+01 0.58231879069882D-18 + 1 46 1 14 -0.23633934167008D+00 0.12445015106759D-15 + 2 46 1 14 -0.88968340529829D-01 0.85818085177511D-16 + 3 46 1 14 0.10097204574324D+00 0.12943791697362D-17 + 1 47 1 14 -0.23633934167008D+00 -0.31910852956229D-16 + 2 47 1 14 0.88968340529829D-01 -0.26610955802896D-16 + 3 47 1 14 -0.10097204574324D+00 0.68819799278594D-17 + 1 48 1 14 0.20201221094890D+00 0.22624400617627D-15 + 2 48 1 14 -0.31346412582914D+00 -0.46562393904868D-17 + 3 48 1 14 -0.32592916479668D+00 0.24724639558443D-16 + 1 49 1 14 -0.26110101691917D+02 -0.22868895388999D-16 + 2 49 1 14 0.14059231269913D+02 -0.19958183063657D-17 + 3 49 1 14 -0.14059231269913D+02 0.22768096244383D-16 + 1 50 1 14 -0.67495503113389D+00 0.69788152739313D-16 + 2 50 1 14 0.45734933338904D+00 0.41481947548295D-16 + 3 50 1 14 -0.45734933338905D+00 0.15055902153475D-16 + 1 51 1 14 0.20201221094890D+00 -0.13719664464128D-15 + 2 51 1 14 0.32592916479675D+00 -0.92954367990100D-17 + 3 51 1 14 0.31346412582920D+00 0.18092497048312D-16 + 1 52 1 14 -0.40570463124976D+00 -0.20572273361018D-15 + 2 52 1 14 0.47955481610337D+00 -0.25622707423630D-16 + 3 52 1 14 -0.45844438789842D+00 -0.12648680152169D-16 + 1 53 1 14 0.41799354973523D+00 -0.91110610880243D-16 + 2 53 1 14 0.25160913496119D+00 0.14338645821756D-16 + 3 53 1 14 -0.25160913496103D+00 0.14545659850409D-16 + 1 54 1 14 0.28964246251229D+00 0.13839628773188D-15 + 2 54 1 14 0.35530456845660D-01 -0.25951562583882D-16 + 3 54 1 14 -0.35530456845655D-01 -0.27771086590181D-16 + 1 55 1 14 -0.40570463124984D+00 -0.73929933346980D-16 + 2 55 1 14 0.45844438789835D+00 0.47161967772299D-16 + 3 55 1 14 -0.47955481610331D+00 -0.49658163834851D-16 + 1 56 1 14 -0.23633934167008D+00 -0.22287587047378D-15 + 2 56 1 14 -0.10097204574324D+00 0.28065331803899D-17 + 3 56 1 14 -0.88968340529825D-01 -0.47477192952072D-16 + 1 57 1 14 -0.30813310039781D+01 0.22751156886700D-15 + 2 57 1 14 0.32039522267035D+01 0.93577870770120D-18 + 3 57 1 14 -0.13194687112185D+01 0.24091106978377D-16 + 1 58 1 14 -0.23633934167008D+00 -0.53297428348781D-16 + 2 58 1 14 0.10097204574324D+00 0.22698381142934D-17 + 3 58 1 14 0.88968340529826D-01 0.29500946143890D-16 + 1 59 1 14 -0.30813310039781D+01 0.96134410691636D-16 + 2 59 1 14 -0.32039522267035D+01 -0.42846906044412D-18 + 3 59 1 14 0.13194687112185D+01 0.41987560006196D-16 + 1 60 1 14 -0.23633934167008D+00 0.19035482510401D-15 + 2 60 1 14 0.10097204574324D+00 -0.13172660531806D-17 + 3 60 1 14 -0.88968340529828D-01 0.72161008307362D-16 + 1 61 1 14 -0.30813310039781D+01 -0.75376051878224D-16 + 2 61 1 14 -0.32039522267036D+01 -0.96162875432705D-18 + 3 61 1 14 -0.13194687112185D+01 -0.96371272745943D-16 + 1 62 1 14 -0.23633934167008D+00 -0.23716235845544D-15 + 2 62 1 14 -0.10097204574324D+00 0.17869339164512D-17 + 3 62 1 14 0.88968340529829D-01 -0.77794800462736D-16 + 1 63 1 14 -0.30813310039782D+01 -0.22460682991834D-15 + 2 63 1 14 0.32039522267035D+01 0.12456782940288D-17 + 3 63 1 14 0.13194687112185D+01 -0.40426549291841D-17 + 1 64 1 14 0.56338999034074D+00 0.13195210145720D-15 + 2 64 1 14 -0.20900121119707D-02 0.48955679388089D-17 + 3 64 1 14 0.48409859136495D-16 -0.11868009491507D-16 + 1 65 1 14 0.56338999034074D+00 -0.31353081759411D-16 + 2 65 1 14 0.20900121119705D-02 -0.49070718926096D-17 + 3 65 1 14 0.13632303326266D-15 0.48089171695250D-16 + 2 67 1 14 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 14 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 14 0.14630111665334D-01 0.93983546448697D-17 + 2 1 2 14 0.26118524991480D+00 0.49640844090872D-16 + 3 1 2 14 -0.32048390194775D-01 0.37255204517031D-16 + 1 2 2 14 0.46794458107699D+00 0.16514854172663D-17 + 2 2 2 14 -0.36210767937223D+00 -0.29802781532831D-15 + 3 2 2 14 -0.51072631933868D+00 0.53780751848631D-17 + 1 3 2 14 0.45282468874007D+00 -0.13066983972077D-16 + 2 3 2 14 -0.79391920416359D+00 0.61185711044571D-16 + 3 3 2 14 -0.49654295837348D+00 0.66827277512457D-17 + 1 4 2 14 0.27141212136987D+00 0.19606076120253D-16 + 2 4 2 14 0.18931625870340D+00 0.11254351494430D-16 + 3 4 2 14 0.30051062649133D+00 -0.44795934166902D-17 + 1 5 2 14 0.39052847202263D+00 0.82036491169508D-17 + 2 5 2 14 -0.44967827290000D+00 -0.19993667704795D-15 + 3 5 2 14 -0.60753170009590D+00 0.27543171394545D-16 + 1 6 2 14 0.33052259598516D+00 0.39732826701180D-16 + 2 6 2 14 0.49508247045830D+00 -0.48906089050163D-15 + 3 6 2 14 -0.30326750866985D+00 0.97872671813843D-16 + 1 7 2 14 -0.34325330614271D+00 -0.16031574207310D-16 + 2 7 2 14 0.13399195151201D+00 -0.91970386393807D-16 + 3 7 2 14 -0.26654576811641D+00 -0.19572259661718D-16 + 1 8 2 14 0.13981816650897D+02 0.22809033273159D-16 + 2 8 2 14 -0.26051304634116D+02 0.75857852178042D-16 + 3 8 2 14 -0.14052048986228D+02 0.10628914184473D-16 + 1 9 2 14 0.54657247008828D-16 0.00000000000000D+00 + 2 9 2 14 0.16683078642020D+01 0.00000000000000D+00 + 3 9 2 14 0.44624519882528D-16 0.00000000000000D+00 + 1 10 2 14 0.53659962891878D-16 0.00000000000000D+00 + 2 10 2 14 -0.21689652649502D+00 0.00000000000000D+00 + 3 10 2 14 -0.44739857569419D-16 0.00000000000000D+00 + 1 11 2 14 -0.50255445187448D-16 0.00000000000000D+00 + 2 11 2 14 -0.10038484629390D+00 0.00000000000000D+00 + 3 11 2 14 -0.49055300179113D-16 0.00000000000000D+00 + 1 12 2 14 -0.11172030516177D-15 0.00000000000000D+00 + 2 12 2 14 -0.12812857450091D+00 0.00000000000000D+00 + 3 12 2 14 0.33883313719073D-16 0.00000000000000D+00 + 1 13 2 14 -0.41041342037585D-17 0.00000000000000D+00 + 2 13 2 14 -0.22724183318676D+00 0.00000000000000D+00 + 3 13 2 14 -0.39823390513337D-16 0.00000000000000D+00 + 1 14 2 14 0.56959044787466D-13 0.00000000000000D+00 + 2 14 2 14 0.12026440695150D+03 0.00000000000000D+00 + 3 14 2 14 0.10045889490283D-12 0.00000000000000D+00 + 1 15 2 14 0.47699690665374D-17 0.00000000000000D+00 + 2 15 2 14 -0.37007247821559D+00 0.00000000000000D+00 + 3 15 2 14 0.42104183724603D-16 0.00000000000000D+00 + 1 16 2 14 -0.45243150437115D+00 0.15233475278871D-16 + 2 16 2 14 -0.79384822690190D+00 -0.10349308814029D-15 + 3 16 2 14 -0.49702776924908D+00 0.21201020386522D-16 + 1 17 2 14 -0.27156071668577D+00 0.29943187088003D-17 + 2 17 2 14 0.18885545875531D+00 -0.89008331312444D-16 + 3 17 2 14 0.30025138851926D+00 0.29341974037618D-17 + 1 18 2 14 -0.14634507613355D-01 0.40497965703553D-16 + 2 18 2 14 0.26146773064490D+00 -0.17540230306476D-15 + 3 18 2 14 -0.32261774788170D-01 -0.16270086265003D-16 + 1 19 2 14 -0.46746793428944D+00 0.99347414574323D-17 + 2 19 2 14 -0.36231427929652D+00 0.36535049884850D-16 + 3 19 2 14 -0.50994080734402D+00 0.26291736031783D-16 + 1 20 2 14 0.34304785153450D+00 0.17217499972403D-17 + 2 20 2 14 0.13351320252147D+00 -0.14027485302501D-15 + 3 20 2 14 -0.26596700141830D+00 0.96582937530856D-17 + 1 21 2 14 -0.13982758016404D+02 -0.69377344178981D-17 + 2 21 2 14 -0.26055260449517D+02 0.54231876780345D-16 + 3 21 2 14 -0.14052238801214D+02 -0.22851219632321D-16 + 1 22 2 14 -0.38994974041024D+00 0.20070455364658D-16 + 2 22 2 14 -0.44958654399269D+00 -0.10678203147460D-15 + 3 22 2 14 -0.60764078805149D+00 0.31108951441638D-16 + 1 23 2 14 -0.33048480633065D+00 0.13121172320440D-16 + 2 23 2 14 0.49476657126485D+00 0.33062011673479D-15 + 3 23 2 14 -0.30287302421644D+00 0.24130688209461D-16 + 1 24 2 14 -0.10124343654080D+00 -0.27409081703914D-16 + 2 24 2 14 -0.23337155674606D+00 0.28031479312182D-15 + 3 24 2 14 0.11807996634124D+00 -0.59762211594981D-18 + 1 25 2 14 0.10124343654079D+00 0.20424142222036D-17 + 2 25 2 14 -0.23337155674606D+00 -0.23100191061589D-15 + 3 25 2 14 -0.11807996634124D+00 -0.10521512115182D-17 + 1 26 2 14 -0.10124343654079D+00 -0.29789892505774D-16 + 2 26 2 14 -0.23337155674606D+00 0.21027205090617D-15 + 3 26 2 14 -0.11807996634125D+00 -0.18871176685015D-18 + 1 27 2 14 0.10124343654080D+00 -0.10607620830761D-16 + 2 27 2 14 -0.23337155674606D+00 0.46211573570217D-16 + 3 27 2 14 0.11807996634125D+00 0.29717315969534D-18 + 1 28 2 14 -0.12981116995013D+01 -0.81825007449849D-17 + 2 28 2 14 -0.30962069657937D+01 -0.82840819573117D-16 + 3 28 2 14 -0.32218343870408D+01 0.14677488624393D-18 + 1 29 2 14 0.12981116995013D+01 -0.10910479429947D-16 + 2 29 2 14 -0.30962069657936D+01 -0.10845811221228D-15 + 3 29 2 14 0.32218343870408D+01 -0.23631262285009D-17 + 1 30 2 14 -0.12981116995013D+01 -0.22584332599325D-16 + 2 30 2 14 -0.30962069657937D+01 0.89197384305648D-16 + 3 30 2 14 0.32218343870409D+01 -0.33234214413955D-17 + 1 31 2 14 0.12981116995013D+01 -0.24933688175919D-16 + 2 31 2 14 -0.30962069657936D+01 -0.27857946086068D-17 + 3 31 2 14 -0.32218343870408D+01 -0.39277110864107D-17 + 1 32 2 14 -0.39052847202263D+00 -0.15262331674674D-16 + 2 32 2 14 -0.44967827290000D+00 0.10257595246956D-15 + 3 32 2 14 0.60753170009574D+00 -0.16956496984072D-16 + 1 33 2 14 -0.33052259598514D+00 0.35042973128615D-17 + 2 33 2 14 0.49508247045814D+00 -0.23787252023070D-16 + 3 33 2 14 0.30326750867001D+00 0.77735778757132D-17 + 1 34 2 14 0.34325330614272D+00 -0.47082216628109D-16 + 2 34 2 14 0.13399195151198D+00 0.22681576512872D-16 + 3 34 2 14 0.26654576811627D+00 0.22265200205430D-16 + 1 35 2 14 -0.13981816650897D+02 0.80807690500281D-17 + 2 35 2 14 -0.26051304634116D+02 -0.15342655724982D-15 + 3 35 2 14 0.14052048986227D+02 -0.18314342881705D-16 + 1 36 2 14 -0.14630111665347D-01 0.18930864014482D-16 + 2 36 2 14 0.26118524991483D+00 0.17128781888608D-15 + 3 36 2 14 0.32048390194765D-01 -0.85701170231934D-18 + 1 37 2 14 -0.46794458107697D+00 0.98074303265651D-17 + 2 37 2 14 -0.36210767937227D+00 0.16777721632472D-16 + 3 37 2 14 0.51072631933867D+00 0.86533243834063D-17 + 1 38 2 14 -0.45282468874007D+00 0.14216979862258D-17 + 2 38 2 14 -0.79391920416363D+00 -0.18712745998596D-16 + 3 38 2 14 0.49654295837350D+00 0.51942150955744D-17 + 1 39 2 14 -0.27141212136979D+00 0.13339980285491D-16 + 2 39 2 14 0.18931625870340D+00 -0.19905358791399D-15 + 3 39 2 14 -0.30051062649135D+00 -0.10339573198499D-16 + 1 40 2 14 0.13673988736778D+01 -0.56133167366235D-16 + 2 40 2 14 0.31633305596009D+01 0.63653778561690D-16 + 3 40 2 14 -0.12511127867583D+01 -0.24756100372425D-16 + 1 41 2 14 -0.13673988736778D+01 0.27537150416554D-16 + 2 41 2 14 0.31633305596009D+01 -0.57297943215927D-16 + 3 41 2 14 -0.12511127867583D+01 -0.32015278705987D-16 + 1 42 2 14 0.14168161790001D+00 0.39645941650611D-16 + 2 42 2 14 -0.74228177386467D-01 0.90170073083223D-16 + 3 42 2 14 -0.83074439382482D-01 0.14871467408105D-17 + 1 43 2 14 -0.14168161790001D+00 -0.81162746827511D-16 + 2 43 2 14 -0.74228177386465D-01 -0.31178470259811D-15 + 3 43 2 14 -0.83074439382483D-01 -0.60791449737748D-17 + 1 44 2 14 0.13673988736778D+01 0.38938640565492D-16 + 2 44 2 14 0.31633305596009D+01 -0.83472180653610D-16 + 3 44 2 14 0.12511127867583D+01 -0.20367083604614D-16 + 1 45 2 14 -0.13673988736778D+01 -0.21467573123999D-16 + 2 45 2 14 0.31633305596009D+01 -0.97305239075630D-16 + 3 45 2 14 0.12511127867583D+01 -0.92509054581009D-17 + 1 46 2 14 0.14168161790001D+00 0.85818085177511D-16 + 2 46 2 14 -0.74228177386470D-01 -0.15646453707243D-15 + 3 46 2 14 0.83074439382480D-01 -0.80936134149560D-17 + 1 47 2 14 -0.14168161790001D+00 -0.26610955802896D-16 + 2 47 2 14 -0.74228177386479D-01 0.28188054341172D-16 + 3 47 2 14 0.83074439382479D-01 0.27800321050336D-16 + 1 48 2 14 -0.34304785153449D+00 -0.46562393904868D-17 + 2 48 2 14 0.13351320252149D+00 0.13985731261077D-15 + 3 48 2 14 0.26596700141823D+00 0.67178100096922D-17 + 1 49 2 14 0.13982758016405D+02 -0.19958183063657D-17 + 2 49 2 14 -0.26055260449517D+02 0.79734887663410D-17 + 3 49 2 14 0.14052238801212D+02 0.34903688214943D-16 + 1 50 2 14 0.38994974041022D+00 0.41481947548295D-16 + 2 50 2 14 -0.44958654399267D+00 0.17309015559462D-15 + 3 50 2 14 0.60764078805151D+00 0.27552990198476D-16 + 1 51 2 14 0.33048480633070D+00 -0.92954367990100D-17 + 2 51 2 14 0.49476657126497D+00 0.21485193644872D-16 + 3 51 2 14 0.30287302421660D+00 -0.25410999635279D-16 + 1 52 2 14 0.45243150437113D+00 -0.25622707423630D-16 + 2 52 2 14 -0.79384822690197D+00 0.33211516880002D-16 + 3 52 2 14 0.49702776924909D+00 0.69732566415015D-17 + 1 53 2 14 0.27156071668570D+00 0.14338645821756D-16 + 2 53 2 14 0.18885545875544D+00 0.79339514949911D-16 + 3 53 2 14 -0.30025138851925D+00 -0.70478542442783D-17 + 1 54 2 14 0.14634507613371D-01 -0.25951562583882D-16 + 2 54 2 14 0.26146773064500D+00 -0.20513837375130D-15 + 3 54 2 14 0.32261774788175D-01 0.35653736865231D-16 + 1 55 2 14 0.46746793428934D+00 0.47161967772299D-16 + 2 55 2 14 -0.36231427929658D+00 0.17593109171571D-15 + 3 55 2 14 0.50994080734399D+00 0.58256291191814D-16 + 1 56 2 14 -0.90666799791500D-01 0.28065331803899D-17 + 2 56 2 14 -0.24639150368970D+00 -0.18705998334323D-15 + 3 56 2 14 0.53660734478787D-01 0.34322600939060D-16 + 1 57 2 14 0.31991757639689D+01 0.93577870770120D-18 + 2 57 2 14 -0.31136975303414D+01 0.27833958208423D-15 + 3 57 2 14 0.12654763266823D+01 0.83814397456715D-17 + 1 58 2 14 0.90666799791501D-01 0.22698381142934D-17 + 2 58 2 14 -0.24639150368970D+00 0.28970664759911D-15 + 3 58 2 14 0.53660734478788D-01 -0.10927978337898D-17 + 1 59 2 14 -0.31991757639689D+01 -0.42846906044412D-18 + 2 59 2 14 -0.31136975303414D+01 0.28300301505642D-16 + 3 59 2 14 0.12654763266823D+01 0.27733402855143D-18 + 1 60 2 14 0.90666799791499D-01 -0.13172660531806D-17 + 2 60 2 14 -0.24639150368970D+00 -0.13531371609567D-15 + 3 60 2 14 -0.53660734478790D-01 -0.30660560534948D-16 + 1 61 2 14 -0.31991757639689D+01 -0.96162875432705D-18 + 2 61 2 14 -0.31136975303414D+01 0.97277442080772D-16 + 3 61 2 14 -0.12654763266823D+01 0.84353381899568D-16 + 1 62 2 14 -0.90666799791500D-01 0.17869339164512D-17 + 2 62 2 14 -0.24639150368970D+00 -0.31237545304182D-15 + 3 62 2 14 -0.53660734478791D-01 0.20382081508213D-16 + 1 63 2 14 0.31991757639689D+01 0.12456782940288D-17 + 2 63 2 14 -0.31136975303414D+01 0.13804288239757D-15 + 3 63 2 14 -0.12654763266823D+01 0.10410952918343D-16 + 1 64 2 14 -0.30344745184922D-15 0.48955679388089D-17 + 2 64 2 14 -0.21766339074115D+00 -0.89014302578070D-17 + 3 64 2 14 -0.34163986353791D+00 -0.21535609598982D-17 + 1 65 2 14 0.18286916870382D-15 -0.49070718926096D-17 + 2 65 2 14 -0.21766339074114D+00 -0.44957800258908D-17 + 3 65 2 14 0.34163986353791D+00 0.15638162126478D-17 + 1 67 2 14 0.00000000000000D+00 0.00000000000000D+00 + 3 67 2 14 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 14 0.14630111665334D-01 -0.16632431961330D-16 + 2 1 3 14 -0.32048390194775D-01 0.37255204517031D-16 + 3 1 3 14 0.26118524991480D+00 -0.29886636961154D-15 + 1 2 3 14 0.45282468874006D+00 0.28898938974466D-16 + 2 2 3 14 -0.49654295837348D+00 0.53780751848631D-17 + 3 2 3 14 -0.79391920416358D+00 0.34183138299373D-16 + 1 3 3 14 0.46794458107698D+00 0.58050151757177D-17 + 2 3 3 14 -0.51072631933869D+00 0.66827277512457D-17 + 3 3 3 14 -0.36210767937222D+00 -0.15036910769254D-15 + 1 4 3 14 0.27141212136988D+00 0.10479276920396D-16 + 2 4 3 14 0.30051062649133D+00 -0.44795934166902D-17 + 3 4 3 14 0.18931625870340D+00 -0.29153443640200D-15 + 1 5 3 14 0.39052847202263D+00 0.44408200190469D-18 + 2 5 3 14 -0.60753170009590D+00 0.27543171394545D-16 + 3 5 3 14 -0.44967827290000D+00 -0.19633030654717D-15 + 1 6 3 14 -0.34325330614271D+00 -0.17285126281595D-16 + 2 6 3 14 -0.26654576811641D+00 0.97872671813843D-16 + 3 6 3 14 0.13399195151201D+00 -0.17460056678128D-15 + 1 7 3 14 0.33052259598515D+00 0.88144279504976D-17 + 2 7 3 14 -0.30326750866985D+00 -0.19572259661718D-16 + 3 7 3 14 0.49508247045830D+00 -0.52042903863005D-15 + 1 8 3 14 0.13981816650897D+02 -0.37110287326362D-16 + 2 8 3 14 -0.14052048986228D+02 0.10628914184473D-16 + 3 8 3 14 -0.26051304634116D+02 0.10726834852736D-15 + 1 9 3 14 -0.11177451661457D-15 0.00000000000000D+00 + 2 9 3 14 0.44624519882528D-16 0.00000000000000D+00 + 3 9 3 14 -0.12812857450091D+00 0.00000000000000D+00 + 1 10 3 14 0.53659962892007D-16 0.00000000000000D+00 + 2 10 3 14 -0.44739857569419D-16 0.00000000000000D+00 + 3 10 3 14 -0.21689652649503D+00 0.00000000000000D+00 + 1 11 3 14 -0.50255441172727D-16 0.00000000000000D+00 + 2 11 3 14 -0.49055300179113D-16 0.00000000000000D+00 + 3 11 3 14 -0.10038484629390D+00 0.00000000000000D+00 + 1 12 3 14 0.54874087443351D-16 0.00000000000000D+00 + 2 12 3 14 0.33883313719073D-16 0.00000000000000D+00 + 3 12 3 14 0.16683078642020D+01 0.00000000000000D+00 + 1 13 3 14 0.47699364890307D-17 0.00000000000000D+00 + 2 13 3 14 -0.39823390513337D-16 0.00000000000000D+00 + 3 13 3 14 -0.37007247821559D+00 0.00000000000000D+00 + 1 14 3 14 0.87074129089721D-13 0.00000000000000D+00 + 2 14 3 14 0.10045889490283D-12 0.00000000000000D+00 + 3 14 3 14 0.12026440695150D+03 0.00000000000000D+00 + 1 15 3 14 -0.41057626465234D-17 0.00000000000000D+00 + 2 15 3 14 0.42104183724603D-16 0.00000000000000D+00 + 3 15 3 14 -0.22724183318677D+00 0.00000000000000D+00 + 1 16 3 14 -0.46794458107699D+00 -0.95074563557414D-17 + 2 16 3 14 -0.51072631933868D+00 0.21201020386522D-16 + 3 16 3 14 -0.36210767937223D+00 0.79730607576463D-16 + 1 17 3 14 -0.27141212136988D+00 -0.76936815199090D-16 + 2 17 3 14 0.30051062649133D+00 0.29341974037618D-17 + 3 17 3 14 0.18931625870339D+00 0.11860298397975D-15 + 1 18 3 14 -0.14630111665334D-01 0.72032521648689D-16 + 2 18 3 14 -0.32048390194774D-01 -0.16270086265003D-16 + 3 18 3 14 0.26118524991481D+00 0.14621636900655D-16 + 1 19 3 14 -0.45282468874006D+00 -0.98831209823881D-17 + 2 19 3 14 -0.49654295837348D+00 0.26291736031783D-16 + 3 19 3 14 -0.79391920416358D+00 -0.66502946087718D-16 + 1 20 3 14 -0.33052259598516D+00 0.28479652605726D-16 + 2 20 3 14 -0.30326750866985D+00 0.96582937530856D-17 + 3 20 3 14 0.49508247045830D+00 0.70248710543231D-16 + 1 21 3 14 -0.13981816650897D+02 0.18893554429102D-16 + 2 21 3 14 -0.14052048986228D+02 -0.22851219632321D-16 + 3 21 3 14 -0.26051304634116D+02 -0.58155774273040D-16 + 1 22 3 14 -0.39052847202263D+00 -0.27895064811502D-16 + 2 22 3 14 -0.60753170009590D+00 0.31108951441638D-16 + 3 22 3 14 -0.44967827289999D+00 0.41858509480469D-16 + 1 23 3 14 0.34325330614271D+00 -0.18690179469241D-16 + 2 23 3 14 -0.26654576811641D+00 0.24130688209461D-16 + 3 23 3 14 0.13399195151202D+00 0.24577457569049D-16 + 1 24 3 14 -0.10124343654080D+00 0.17926893699111D-16 + 2 24 3 14 0.11807996634124D+00 -0.59762211594981D-18 + 3 24 3 14 -0.23337155674606D+00 0.29835267589578D-15 + 1 25 3 14 -0.10124343654079D+00 -0.27012970136482D-16 + 2 25 3 14 -0.11807996634124D+00 -0.10521512115182D-17 + 3 25 3 14 -0.23337155674605D+00 -0.19919391372971D-15 + 1 26 3 14 0.10124343654079D+00 -0.16928804802174D-16 + 2 26 3 14 -0.11807996634125D+00 -0.18871176685015D-18 + 3 26 3 14 -0.23337155674606D+00 0.27260198691436D-15 + 1 27 3 14 0.10124343654080D+00 -0.19942592818211D-16 + 2 27 3 14 0.11807996634125D+00 0.29717315969534D-18 + 3 27 3 14 -0.23337155674605D+00 0.20418069784850D-16 + 1 28 3 14 -0.12981116995013D+01 0.15517310793268D-16 + 2 28 3 14 -0.32218343870408D+01 0.14677488624393D-18 + 3 28 3 14 -0.30962069657936D+01 0.24411724884680D-15 + 1 29 3 14 -0.12981116995013D+01 -0.18223952628547D-16 + 2 29 3 14 0.32218343870408D+01 -0.23631262285009D-17 + 3 29 3 14 -0.30962069657936D+01 0.61021695245707D-16 + 1 30 3 14 0.12981116995013D+01 0.30493115980894D-16 + 2 30 3 14 0.32218343870409D+01 -0.33234214413955D-17 + 3 30 3 14 -0.30962069657937D+01 -0.83706274149649D-16 + 1 31 3 14 0.12981116995013D+01 0.29153637013940D-16 + 2 31 3 14 -0.32218343870408D+01 -0.39277110864107D-17 + 3 31 3 14 -0.30962069657937D+01 0.64007102857570D-17 + 1 32 3 14 0.39052847202263D+00 0.45949617033566D-16 + 2 32 3 14 0.60753170009590D+00 -0.16956496984072D-16 + 3 32 3 14 -0.44967827290000D+00 -0.35792965172098D-15 + 1 33 3 14 -0.34325330614272D+00 0.26436051467484D-16 + 2 33 3 14 0.26654576811642D+00 0.77735778757132D-17 + 3 33 3 14 0.13399195151202D+00 -0.23390294599364D-15 + 1 34 3 14 0.33052259598516D+00 0.22116717759706D-16 + 2 34 3 14 0.30326750866985D+00 0.22265200205430D-16 + 3 34 3 14 0.49508247045829D+00 0.20086702905531D-15 + 1 35 3 14 0.13981816650897D+02 -0.20896598994992D-17 + 2 35 3 14 0.14052048986228D+02 -0.18314342881705D-16 + 3 35 3 14 -0.26051304634116D+02 0.12013988285221D-15 + 1 36 3 14 0.14630111665334D-01 -0.69467939415454D-17 + 2 36 3 14 0.32048390194774D-01 -0.85701170231934D-18 + 3 36 3 14 0.26118524991481D+00 -0.15094609739427D-15 + 1 37 3 14 0.45282468874006D+00 -0.18895604617661D-16 + 2 37 3 14 0.49654295837348D+00 0.86533243834063D-17 + 3 37 3 14 -0.79391920416359D+00 0.14104449273286D-15 + 1 38 3 14 0.46794458107698D+00 -0.21682730009652D-16 + 2 38 3 14 0.51072631933869D+00 0.51942150955744D-17 + 3 38 3 14 -0.36210767937222D+00 0.16661218062389D-15 + 1 39 3 14 0.27141212136986D+00 0.38601241053175D-16 + 2 39 3 14 -0.30051062649132D+00 -0.10339573198499D-16 + 3 39 3 14 0.18931625870341D+00 0.50206379539087D-16 + 1 40 3 14 0.31991757639689D+01 -0.13646518709873D-17 + 2 40 3 14 0.12654763266823D+01 -0.24756100372425D-16 + 3 40 3 14 -0.31136975303414D+01 0.20983942083296D-15 + 1 41 3 14 -0.31991757639689D+01 0.23457238538332D-17 + 2 41 3 14 0.12654763266823D+01 -0.32015278705987D-16 + 3 41 3 14 -0.31136975303414D+01 -0.18025000376114D-15 + 1 42 3 14 -0.90666799791500D-01 -0.85660035992517D-18 + 2 42 3 14 0.53660734478788D-01 0.14871467408105D-17 + 3 42 3 14 -0.24639150368970D+00 0.96825656230117D-16 + 1 43 3 14 0.90666799791499D-01 0.21304685647815D-17 + 2 43 3 14 0.53660734478787D-01 -0.60791449737748D-17 + 3 43 3 14 -0.24639150368970D+00 0.22401475828783D-15 + 1 44 3 14 -0.31991757639689D+01 0.52135276009126D-18 + 2 44 3 14 -0.12654763266823D+01 -0.20367083604614D-16 + 3 44 3 14 -0.31136975303414D+01 0.12465625082451D-15 + 1 45 3 14 0.31991757639689D+01 0.58231879069882D-18 + 2 45 3 14 -0.12654763266823D+01 -0.92509054581009D-17 + 3 45 3 14 -0.31136975303414D+01 0.73975022863030D-16 + 1 46 3 14 0.90666799791497D-01 0.12943791697362D-17 + 2 46 3 14 -0.53660734478790D-01 -0.80936134149560D-17 + 3 46 3 14 -0.24639150368970D+00 -0.11453816002788D-15 + 1 47 3 14 -0.90666799791500D-01 0.68819799278594D-17 + 2 47 3 14 -0.53660734478791D-01 0.27800321050336D-16 + 3 47 3 14 -0.24639150368970D+00 0.61040406838119D-15 + 1 48 3 14 -0.33052259598518D+00 0.24724639558443D-16 + 2 48 3 14 0.30326750866987D+00 0.67178100096922D-17 + 3 48 3 14 0.49508247045833D+00 0.61064330905559D-16 + 1 49 3 14 -0.13981816650897D+02 0.22768096244383D-16 + 2 49 3 14 0.14052048986228D+02 0.34903688214943D-16 + 3 49 3 14 -0.26051304634116D+02 -0.34833915289439D-16 + 1 50 3 14 -0.39052847202262D+00 0.15055902153475D-16 + 2 50 3 14 0.60753170009591D+00 0.27552990198476D-16 + 3 50 3 14 -0.44967827290001D+00 -0.86310936432356D-16 + 1 51 3 14 0.34325330614271D+00 0.18092497048312D-16 + 2 51 3 14 0.26654576811641D+00 -0.25410999635279D-16 + 3 51 3 14 0.13399195151202D+00 0.22920463403757D-15 + 1 52 3 14 -0.46794458107699D+00 -0.12648680152169D-16 + 2 52 3 14 0.51072631933869D+00 0.69732566415015D-17 + 3 52 3 14 -0.36210767937223D+00 0.10821891300677D-15 + 1 53 3 14 -0.27141212136987D+00 0.14545659850409D-16 + 2 53 3 14 -0.30051062649132D+00 -0.70478542442783D-17 + 3 53 3 14 0.18931625870340D+00 0.94633529860486D-16 + 1 54 3 14 -0.14630111665330D-01 -0.27771086590181D-16 + 2 54 3 14 0.32048390194770D-01 0.35653736865231D-16 + 3 54 3 14 0.26118524991481D+00 -0.10216455392652D-15 + 1 55 3 14 -0.45282468874006D+00 -0.49658163834851D-16 + 2 55 3 14 0.49654295837348D+00 0.58256291191814D-16 + 3 55 3 14 -0.79391920416359D+00 -0.19977964222613D-15 + 1 56 3 14 0.14168161790001D+00 -0.47477192952072D-16 + 2 56 3 14 -0.83074439382483D-01 0.34322600939060D-16 + 3 56 3 14 -0.74228177386461D-01 0.73985080447590D-16 + 1 57 3 14 0.13673988736778D+01 0.24091106978377D-16 + 2 57 3 14 -0.12511127867583D+01 0.83814397456715D-17 + 3 57 3 14 0.31633305596009D+01 -0.17427874525245D-16 + 1 58 3 14 -0.14168161790001D+00 0.29500946143890D-16 + 2 58 3 14 -0.83074439382482D-01 -0.10927978337898D-17 + 3 58 3 14 -0.74228177386460D-01 -0.91289738518472D-16 + 1 59 3 14 -0.13673988736778D+01 0.41987560006196D-16 + 2 59 3 14 -0.12511127867583D+01 0.27733402855143D-18 + 3 59 3 14 0.31633305596009D+01 -0.48962024889499D-16 + 1 60 3 14 0.14168161790001D+00 0.72161008307362D-16 + 2 60 3 14 0.83074439382480D-01 -0.30660560534948D-16 + 3 60 3 14 -0.74228177386467D-01 -0.46110142692657D-17 + 1 61 3 14 0.13673988736778D+01 -0.96371272745943D-16 + 2 61 3 14 0.12511127867583D+01 0.84353381899568D-16 + 3 61 3 14 0.31633305596009D+01 -0.14732441486618D-16 + 1 62 3 14 -0.14168161790001D+00 -0.77794800462736D-16 + 2 62 3 14 0.83074439382479D-01 0.20382081508213D-16 + 3 62 3 14 -0.74228177386476D-01 0.21521944346652D-16 + 1 63 3 14 -0.13673988736778D+01 -0.40426549291841D-17 + 2 63 3 14 0.12511127867583D+01 0.10410952918343D-16 + 3 63 3 14 0.31633305596009D+01 -0.35719861896073D-16 + 1 64 3 14 0.48409859136495D-16 -0.11868009491507D-16 + 2 64 3 14 -0.34163986353791D+00 -0.21535609598982D-17 + 3 64 3 14 -0.21766339074116D+00 -0.51634914197814D-17 + 1 65 3 14 0.13632303326266D-15 0.48089171695250D-16 + 2 65 3 14 0.34163986353791D+00 0.15638162126478D-17 + 3 65 3 14 -0.21766339074115D+00 0.13039964858438D-16 + 1 67 3 14 0.00000000000000D+00 0.00000000000000D+00 + 2 67 3 14 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 15 -0.36415063882438D+00 -0.71291120297174D-16 + 2 1 1 15 0.47464923475426D+00 0.27549815569560D-16 + 3 1 1 15 0.40590122418774D+00 -0.10654798641164D-16 + 1 2 1 15 0.50241961411295D+00 0.89578946720869D-16 + 2 2 1 15 0.33570155248116D+00 -0.25761694933782D-17 + 3 2 1 15 0.33741997843478D+00 0.28440307973920D-16 + 1 3 1 15 0.25512738324407D+00 0.97753952673212D-17 + 2 3 1 15 0.33953700215028D-01 -0.18884835323046D-16 + 3 3 1 15 0.24465386896980D-01 0.29127758780736D-16 + 1 4 1 15 -0.37889230900943D+00 -0.75521524955158D-17 + 2 4 1 15 0.47158531944064D+00 -0.24726952057943D-16 + 3 4 1 15 0.46116872534589D+00 0.27608385765172D-18 + 1 5 1 15 0.31531816585509D+00 -0.72760994767794D-16 + 2 5 1 15 -0.29561622081644D+00 -0.50159187907360D-17 + 3 5 1 15 0.17291822842402D+00 0.42616869528070D-17 + 1 6 1 15 -0.26419464735399D+02 -0.65110213699617D-16 + 2 6 1 15 0.13897086490666D+02 0.31794425732122D-18 + 3 6 1 15 0.14501181111328D+02 -0.19003423981030D-16 + 1 7 1 15 -0.77719381706603D+00 -0.15541751463795D-15 + 2 7 1 15 0.48505645736948D+00 0.18144234401453D-16 + 3 7 1 15 0.45605122386224D+00 0.15021852982859D-16 + 1 8 1 15 0.17245337070866D+00 0.18947729507511D-15 + 2 8 1 15 0.28951291420751D+00 0.14694331700843D-16 + 3 8 1 15 -0.29424501838483D+00 0.81634614754230D-17 + 1 9 1 15 -0.11425496786290D+00 0.00000000000000D+00 + 2 9 1 15 -0.50255445187448D-16 0.00000000000000D+00 + 3 9 1 15 -0.50255441172727D-16 0.00000000000000D+00 + 1 10 1 15 -0.15398185028691D+00 0.00000000000000D+00 + 2 10 1 15 -0.11172030516177D-15 0.00000000000000D+00 + 3 10 1 15 0.54874087443351D-16 0.00000000000000D+00 + 1 11 1 15 -0.25076952485740D+00 0.00000000000000D+00 + 2 11 1 15 0.54657247008828D-16 0.00000000000000D+00 + 3 11 1 15 -0.11177451661457D-15 0.00000000000000D+00 + 1 12 1 15 -0.38504165258669D+00 0.00000000000000D+00 + 2 12 1 15 0.53659962891878D-16 0.00000000000000D+00 + 3 12 1 15 0.53659962892007D-16 0.00000000000000D+00 + 1 13 1 15 0.15281109506741D+01 0.00000000000000D+00 + 2 13 1 15 0.41303763886505D-17 0.00000000000000D+00 + 3 13 1 15 0.44556372469830D-17 0.00000000000000D+00 + 1 14 1 15 -0.18661947792585D+00 0.00000000000000D+00 + 2 14 1 15 0.47699690665374D-17 0.00000000000000D+00 + 3 14 1 15 -0.41057626465234D-17 0.00000000000000D+00 + 1 15 1 15 0.11990938823258D+03 0.00000000000000D+00 + 2 15 1 15 0.11385865410362D-12 0.00000000000000D+00 + 3 15 1 15 -0.32777901973091D-12 0.00000000000000D+00 + 1 16 1 15 0.25512738324407D+00 0.25006810492181D-16 + 2 16 1 15 -0.33953700215029D-01 -0.12296612488318D-17 + 3 16 1 15 -0.24465386896980D-01 -0.15529559720163D-16 + 1 17 1 15 -0.37889230900943D+00 0.15812844988789D-15 + 2 17 1 15 -0.47158531944064D+00 -0.17963806489165D-16 + 3 17 1 15 -0.46116872534589D+00 -0.99720246958467D-17 + 1 18 1 15 -0.36415063882438D+00 -0.16181013118796D-16 + 2 18 1 15 -0.47464923475426D+00 -0.21488985223504D-17 + 3 18 1 15 -0.40590122418774D+00 0.10626860589969D-16 + 1 19 1 15 0.50241961411294D+00 0.81208533163038D-16 + 2 19 1 15 -0.33570155248116D+00 0.46871470419120D-17 + 3 19 1 15 -0.33741997843478D+00 -0.31768686543340D-16 + 1 20 1 15 -0.77719381706603D+00 -0.46424143380565D-16 + 2 20 1 15 -0.48505645736949D+00 -0.89815583546453D-17 + 3 20 1 15 -0.45605122386224D+00 0.67809242368819D-17 + 1 21 1 15 0.17245337070866D+00 -0.79881187664440D-16 + 2 21 1 15 -0.28951291420751D+00 -0.10755045262583D-17 + 3 21 1 15 0.29424501838483D+00 0.34512388748477D-16 + 1 22 1 15 0.31531816585508D+00 -0.98099796029014D-16 + 2 22 1 15 0.29561622081644D+00 0.27500196351034D-16 + 3 22 1 15 -0.17291822842402D+00 -0.28919266916087D-16 + 1 23 1 15 -0.26419464735399D+02 0.26930686384024D-15 + 2 23 1 15 -0.13897086490666D+02 0.23828286539851D-16 + 3 23 1 15 -0.14501181111328D+02 0.31029374368240D-17 + 1 24 1 15 -0.21299436255651D-01 -0.13444452282601D-16 + 2 24 1 15 0.96086421419237D-01 0.33972262188912D-17 + 3 24 1 15 -0.96467426406940D-01 0.31679991020561D-16 + 1 25 1 15 -0.21299436255646D-01 0.53426340146868D-16 + 2 25 1 15 -0.96086421419232D-01 -0.65990178426758D-17 + 3 25 1 15 -0.96467426406935D-01 -0.12206843024206D-16 + 1 26 1 15 -0.21299436255642D-01 0.12425145801684D-16 + 2 26 1 15 0.96086421419234D-01 0.17022797939619D-16 + 3 26 1 15 0.96467426406935D-01 0.30931854307395D-16 + 1 27 1 15 -0.21299436255651D-01 -0.23052703186079D-16 + 2 27 1 15 -0.96086421419238D-01 -0.26026909872698D-17 + 3 27 1 15 0.96467426406939D-01 0.16298959635211D-16 + 1 28 1 15 0.31199813867579D+01 0.29437152292622D-17 + 2 28 1 15 0.13075677232505D+01 0.16583680633311D-16 + 3 28 1 15 -0.12387195275551D+01 0.30748768822642D-16 + 1 29 1 15 0.31199813867579D+01 -0.15521179789032D-15 + 2 29 1 15 -0.13075677232505D+01 0.15101351891124D-16 + 3 29 1 15 -0.12387195275551D+01 0.19257792743742D-16 + 1 30 1 15 0.31199813867579D+01 -0.28394170270456D-15 + 2 30 1 15 0.13075677232505D+01 -0.34046653062870D-16 + 3 30 1 15 0.12387195275551D+01 0.12273322776299D-16 + 1 31 1 15 0.31199813867579D+01 -0.33856126885987D-17 + 2 31 1 15 -0.13075677232505D+01 0.33122460771493D-16 + 3 31 1 15 0.12387195275551D+01 -0.30165838013755D-16 + 1 32 1 15 0.31531816585510D+00 0.38074083211940D-16 + 2 32 1 15 0.29561622081644D+00 -0.17929206262735D-16 + 3 32 1 15 0.17291822842403D+00 -0.26618788462575D-16 + 1 33 1 15 -0.26419464735399D+02 -0.99274909329982D-16 + 2 33 1 15 -0.13897086490667D+02 -0.15160866755568D-16 + 3 33 1 15 0.14501181111328D+02 -0.28097042022775D-17 + 1 34 1 15 -0.77719381706603D+00 -0.93958536226354D-16 + 2 34 1 15 -0.48505645736949D+00 0.31989478308926D-17 + 3 34 1 15 0.45605122386224D+00 -0.32776995561591D-16 + 1 35 1 15 0.17245337070865D+00 0.16443275035337D-15 + 2 35 1 15 -0.28951291420751D+00 0.23575265042696D-16 + 3 35 1 15 -0.29424501838483D+00 -0.21902927017394D-16 + 1 36 1 15 -0.36415063882437D+00 0.83510709507413D-16 + 2 36 1 15 -0.47464923475426D+00 -0.22586232535199D-16 + 3 36 1 15 0.40590122418774D+00 -0.20094266078744D-16 + 1 37 1 15 0.50241961411297D+00 0.20952494619025D-16 + 2 37 1 15 -0.33570155248116D+00 -0.68710668982777D-19 + 3 37 1 15 0.33741997843478D+00 -0.21215124520652D-18 + 1 38 1 15 0.25512738324407D+00 0.18246240603058D-15 + 2 38 1 15 -0.33953700215029D-01 0.88746119880092D-18 + 3 38 1 15 0.24465386896980D-01 0.37470103503837D-16 + 1 39 1 15 -0.37889230900943D+00 0.39960113979011D-16 + 2 39 1 15 -0.47158531944063D+00 -0.27523785046060D-16 + 3 39 1 15 0.46116872534589D+00 0.81729345596860D-17 + 1 40 1 15 -0.23316055675786D+00 0.24106264370333D-15 + 2 40 1 15 -0.10813448889692D+00 0.12200692161048D-16 + 3 40 1 15 -0.10856887234079D+00 0.84999244117111D-18 + 1 41 1 15 -0.23316055675786D+00 0.18054524549380D-15 + 2 41 1 15 0.10813448889692D+00 0.51393913344621D-16 + 3 41 1 15 0.10856887234079D+00 0.16794341715786D-17 + 1 42 1 15 -0.30001519778860D+01 0.19558765470944D-15 + 2 42 1 15 -0.14264458797104D+01 -0.91127269839366D-16 + 3 42 1 15 0.31773514429869D+01 0.26023024474786D-17 + 1 43 1 15 -0.30001519778860D+01 -0.27199231526541D-15 + 2 43 1 15 0.14264458797104D+01 -0.87872703353463D-16 + 3 43 1 15 -0.31773514429869D+01 0.11829975204755D-17 + 1 44 1 15 -0.23316055675786D+00 -0.14931289534146D-15 + 2 44 1 15 -0.10813448889692D+00 -0.94025599777758D-16 + 3 44 1 15 0.10856887234079D+00 -0.36546435918342D-18 + 1 45 1 15 -0.23316055675786D+00 0.71908987109724D-16 + 2 45 1 15 0.10813448889692D+00 0.60585453865151D-16 + 3 45 1 15 -0.10856887234079D+00 -0.28447573057223D-17 + 1 46 1 15 -0.30001519778860D+01 0.14186745905276D-15 + 2 46 1 15 -0.14264458797104D+01 -0.37543759532774D-16 + 3 46 1 15 -0.31773514429869D+01 0.13977833844141D-19 + 1 47 1 15 -0.30001519778860D+01 0.17397444944364D-15 + 2 47 1 15 0.14264458797104D+01 0.54601616219075D-17 + 3 47 1 15 0.31773514429869D+01 0.10853409835578D-17 + 1 48 1 15 -0.77719381706603D+00 0.65620972451380D-16 + 2 48 1 15 0.48505645736949D+00 0.15911429157142D-16 + 3 48 1 15 -0.45605122386224D+00 -0.41051652814516D-16 + 1 49 1 15 0.17245337070865D+00 0.76324107753594D-16 + 2 49 1 15 0.28951291420750D+00 0.67956173164938D-16 + 3 49 1 15 0.29424501838483D+00 -0.17073562061969D-16 + 1 50 1 15 0.31531816585510D+00 -0.30042126037356D-16 + 2 50 1 15 -0.29561622081643D+00 -0.19452776498755D-16 + 3 50 1 15 -0.17291822842402D+00 -0.27541019172291D-16 + 1 51 1 15 -0.26419464735399D+02 0.21525663783299D-15 + 2 51 1 15 0.13897086490666D+02 0.10488966503891D-16 + 3 51 1 15 -0.14501181111328D+02 -0.45083988585303D-16 + 1 52 1 15 0.25512738324407D+00 -0.15120567050570D-15 + 2 52 1 15 0.33953700215028D-01 -0.16103088822854D-17 + 3 52 1 15 -0.24465386896979D-01 -0.22598929413949D-16 + 1 53 1 15 -0.37889230900943D+00 -0.20746437407401D-15 + 2 53 1 15 0.47158531944063D+00 0.16744225474010D-16 + 3 53 1 15 -0.46116872534589D+00 -0.28291609548205D-16 + 1 54 1 15 -0.36415063882438D+00 0.21152965686212D-16 + 2 54 1 15 0.47464923475426D+00 -0.49797994923666D-17 + 3 54 1 15 -0.40590122418774D+00 0.22902411462853D-16 + 1 55 1 15 0.50241961411297D+00 -0.20422193126888D-17 + 2 55 1 15 0.33570155248117D+00 -0.34436475424115D-16 + 3 55 1 15 -0.33741997843478D+00 -0.29476279193486D-16 + 1 56 1 15 -0.21132000918250D+00 -0.12917641949903D-15 + 2 56 1 15 0.10038897771306D+00 -0.24544155378527D-17 + 3 56 1 15 0.80742365490620D-01 -0.22416375686468D-16 + 1 57 1 15 -0.30574761769625D+01 0.25576070882195D-15 + 2 57 1 15 -0.31534604980328D+01 0.13664579346900D-17 + 3 57 1 15 0.13086307270575D+01 -0.37998080367419D-16 + 1 58 1 15 -0.21132000918250D+00 0.16914318143997D-15 + 2 58 1 15 -0.10038897771306D+00 -0.45376758043744D-18 + 3 58 1 15 -0.80742365490619D-01 0.10407806284669D-15 + 1 59 1 15 -0.30574761769625D+01 -0.45902373691126D-17 + 2 59 1 15 0.31534604980328D+01 0.28641868780195D-18 + 3 59 1 15 -0.13086307270575D+01 0.11183368033542D-16 + 1 60 1 15 -0.21132000918250D+00 0.11664521648831D-15 + 2 60 1 15 -0.10038897771306D+00 0.50804937759035D-17 + 3 60 1 15 0.80742365490618D-01 0.68642976932406D-16 + 1 61 1 15 -0.30574761769625D+01 -0.29601657392696D-15 + 2 61 1 15 0.31534604980328D+01 0.20165469349213D-17 + 3 61 1 15 0.13086307270575D+01 -0.82002026069143D-17 + 1 62 1 15 -0.21132000918250D+00 0.30177804081872D-15 + 2 62 1 15 0.10038897771306D+00 0.24504694940679D-17 + 3 62 1 15 -0.80742365490621D-01 -0.16828020226409D-16 + 1 63 1 15 -0.30574761769625D+01 0.15032191289581D-15 + 2 63 1 15 -0.31534604980328D+01 0.70277405916148D-18 + 3 63 1 15 -0.13086307270575D+01 -0.26450439152431D-16 + 1 64 1 15 -0.11809158130797D+00 -0.12696962084800D-15 + 2 64 1 15 0.27989429851196D-03 0.44143160265271D-16 + 3 64 1 15 0.90214248076138D-16 0.18503771832942D-16 + 1 65 1 15 -0.11809158130797D+00 -0.79555384111443D-16 + 2 65 1 15 -0.27989429851214D-03 -0.12868333418652D-16 + 3 65 1 15 0.11283431376204D-15 0.23103165112448D-16 + 2 67 1 15 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 15 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 15 0.50513314278052D+00 0.27549815569560D-16 + 2 1 2 15 -0.76994936718329D+00 0.99319057085662D-16 + 3 1 2 15 -0.44345517655243D+00 -0.20043174956583D-16 + 1 2 2 15 0.32850170110725D+00 -0.25761694933782D-17 + 2 2 2 15 0.15825920575420D+00 0.12550861015440D-15 + 3 2 2 15 0.28740111017937D+00 0.32691964679632D-16 + 1 3 2 15 0.25033869836143D-01 -0.18884835323046D-16 + 2 3 2 15 0.26036168030253D+00 0.12797764815747D-15 + 3 3 2 15 -0.33216969269469D-01 0.36593900647354D-16 + 1 4 2 15 0.47950150971599D+00 -0.24726952057943D-16 + 2 4 2 15 -0.43255486659625D+00 0.57162741866270D-16 + 3 4 2 15 -0.48737886495422D+00 -0.11322177606898D-16 + 1 5 2 15 -0.27876761996521D+00 -0.50159187907360D-17 + 2 5 2 15 0.25241496941609D+00 0.21797766646820D-17 + 3 5 2 15 -0.20346636314717D+00 -0.98661287401434D-17 + 1 6 2 15 0.14029655666361D+02 0.31794425732122D-18 + 2 6 2 15 -0.26292168970119D+02 0.53725129280646D-16 + 3 6 2 15 -0.14382862120111D+02 0.29816184924162D-16 + 1 7 2 15 0.42176664241324D+00 0.18144234401453D-16 + 2 7 2 15 -0.39950504984975D+00 -0.83035213054558D-17 + 3 7 2 15 -0.42696613261043D+00 -0.15767825172389D-16 + 1 8 2 15 0.25712532149784D+00 0.14694331700843D-16 + 2 8 2 15 0.41507581536834D+00 0.13961669164723D-15 + 3 8 2 15 -0.28303719140876D+00 -0.28862595154955D-16 + 1 9 2 15 -0.50255445187448D-16 0.00000000000000D+00 + 2 9 2 15 -0.11499319188834D+00 0.00000000000000D+00 + 3 9 2 15 -0.49055300179113D-16 0.00000000000000D+00 + 1 10 2 15 -0.11172030516177D-15 0.00000000000000D+00 + 2 10 2 15 -0.19008203218907D+00 0.00000000000000D+00 + 3 10 2 15 0.33883313719073D-16 0.00000000000000D+00 + 1 11 2 15 0.54657247008828D-16 0.00000000000000D+00 + 2 11 2 15 0.14916193948218D+01 0.00000000000000D+00 + 3 11 2 15 0.44624519882528D-16 0.00000000000000D+00 + 1 12 2 15 0.53659962891878D-16 0.00000000000000D+00 + 2 12 2 15 -0.16236930026856D+00 0.00000000000000D+00 + 3 12 2 15 -0.44739857569419D-16 0.00000000000000D+00 + 1 13 2 15 0.41303763886505D-17 0.00000000000000D+00 + 2 13 2 15 -0.18674926210325D+00 0.00000000000000D+00 + 3 13 2 15 -0.11715141888139D-15 0.00000000000000D+00 + 1 14 2 15 0.47699690665374D-17 0.00000000000000D+00 + 2 14 2 15 -0.37007247821559D+00 0.00000000000000D+00 + 3 14 2 15 0.42104183724603D-16 0.00000000000000D+00 + 1 15 2 15 0.11385865410362D-12 0.00000000000000D+00 + 2 15 2 15 0.12041385048373D+03 0.00000000000000D+00 + 3 15 2 15 -0.22706680197402D-12 0.00000000000000D+00 + 1 16 2 15 -0.25033869836143D-01 -0.12296612488318D-17 + 2 16 2 15 0.26036168030253D+00 0.70858863798588D-16 + 3 16 2 15 -0.33216969269469D-01 0.22071623213753D-16 + 1 17 2 15 -0.47950150971599D+00 -0.17963806489165D-16 + 2 17 2 15 -0.43255486659625D+00 0.26369107417542D-17 + 3 17 2 15 -0.48737886495422D+00 -0.46584389481629D-18 + 1 18 2 15 -0.50513314278052D+00 -0.21488985223504D-17 + 2 18 2 15 -0.76994936718329D+00 -0.10822069129972D-15 + 3 18 2 15 -0.44345517655243D+00 0.75550894368651D-17 + 1 19 2 15 -0.32850170110726D+00 0.46871470419120D-17 + 2 19 2 15 0.15825920575420D+00 0.66249722272392D-16 + 3 19 2 15 0.28740111017937D+00 0.15425999947359D-16 + 1 20 2 15 -0.42176664241324D+00 -0.89815583546453D-17 + 2 20 2 15 -0.39950504984975D+00 0.68671151383725D-16 + 3 20 2 15 -0.42696613261043D+00 0.67244493111106D-17 + 1 21 2 15 -0.25712532149784D+00 -0.10755045262583D-17 + 2 21 2 15 0.41507581536834D+00 0.91972391905180D-16 + 3 21 2 15 -0.28303719140876D+00 0.40732211173682D-16 + 1 22 2 15 0.27876761996521D+00 0.27500196351034D-16 + 2 22 2 15 0.25241496941609D+00 -0.17312077452796D-15 + 3 22 2 15 -0.20346636314717D+00 -0.26792788704196D-16 + 1 23 2 15 -0.14029655666361D+02 0.23828286539851D-16 + 2 23 2 15 -0.26292168970119D+02 -0.35946223360067D-16 + 3 23 2 15 -0.14382862120111D+02 -0.99929718810693D-17 + 1 24 2 15 -0.96122160593483D-01 0.33972262188912D-17 + 2 24 2 15 -0.24152013706304D+00 -0.29982760185938D-15 + 3 24 2 15 -0.88506819764605D-01 -0.36466864472386D-18 + 1 25 2 15 0.96122160593487D-01 -0.65990178426758D-17 + 2 25 2 15 -0.24152013706304D+00 0.24573865592591D-15 + 3 25 2 15 0.88506819764607D-01 -0.12276359794539D-18 + 1 26 2 15 -0.96122160593486D-01 0.17022797939619D-16 + 2 26 2 15 -0.24152013706304D+00 0.23331732599339D-15 + 3 26 2 15 0.88506819764607D-01 0.21199916288465D-18 + 1 27 2 15 0.96122160593482D-01 -0.26026909872698D-17 + 2 27 2 15 -0.24152013706305D+00 0.91567242834967D-16 + 3 27 2 15 -0.88506819764607D-01 -0.16702311856597D-17 + 1 28 2 15 -0.13222195601823D+01 0.16583680633311D-16 + 2 28 2 15 -0.30373776208386D+01 0.20521846756163D-15 + 3 28 2 15 0.31474940004414D+01 -0.42828661081312D-17 + 1 29 2 15 0.13222195601823D+01 0.15101351891124D-16 + 2 29 2 15 -0.30373776208385D+01 0.82418088374398D-16 + 3 29 2 15 -0.31474940004415D+01 -0.12187303731691D-18 + 1 30 2 15 -0.13222195601823D+01 -0.34046653062870D-16 + 2 30 2 15 -0.30373776208386D+01 0.73346572808006D-16 + 3 30 2 15 -0.31474940004414D+01 0.13261466497825D-17 + 1 31 2 15 0.13222195601823D+01 0.33122460771493D-16 + 2 31 2 15 -0.30373776208385D+01 -0.22716499381697D-15 + 3 31 2 15 0.31474940004414D+01 -0.14180707507960D-18 + 1 32 2 15 0.27876761996522D+00 -0.17929206262735D-16 + 2 32 2 15 0.25241496941609D+00 0.65342718722364D-16 + 3 32 2 15 0.20346636314716D+00 -0.19446027518331D-16 + 1 33 2 15 -0.14029655666361D+02 -0.15160866755568D-16 + 2 33 2 15 -0.26292168970119D+02 0.44610069910704D-16 + 3 33 2 15 0.14382862120111D+02 0.10338580303221D-16 + 1 34 2 15 -0.42176664241324D+00 0.31989478308926D-17 + 2 34 2 15 -0.39950504984975D+00 0.30292350406292D-15 + 3 34 2 15 0.42696613261043D+00 -0.82446151388919D-17 + 1 35 2 15 -0.25712532149784D+00 0.23575265042696D-16 + 2 35 2 15 0.41507581536834D+00 -0.16529239897555D-15 + 3 35 2 15 0.28303719140876D+00 0.37652101928334D-16 + 1 36 2 15 -0.50513314278052D+00 -0.22586232535199D-16 + 2 36 2 15 -0.76994936718329D+00 0.90216716808841D-16 + 3 36 2 15 0.44345517655243D+00 0.25076771532951D-16 + 1 37 2 15 -0.32850170110725D+00 -0.68710668982777D-19 + 2 37 2 15 0.15825920575420D+00 0.10513691878244D-15 + 3 37 2 15 -0.28740111017937D+00 -0.81837370293943D-17 + 1 38 2 15 -0.25033869836144D-01 0.88746119880092D-18 + 2 38 2 15 0.26036168030253D+00 0.89382121166742D-16 + 3 38 2 15 0.33216969269468D-01 0.39489770188068D-18 + 1 39 2 15 -0.47950150971598D+00 -0.27523785046060D-16 + 2 39 2 15 -0.43255486659625D+00 -0.96601869661029D-16 + 3 39 2 15 0.48737886495422D+00 -0.19703391426064D-16 + 1 40 2 15 0.12734062973724D+00 0.12200692161048D-16 + 2 40 2 15 -0.49105577665193D-02 0.31567572635312D-16 + 3 40 2 15 -0.69079466598025D-01 0.30345953344117D-16 + 1 41 2 15 -0.12734062973723D+00 0.51393913344621D-16 + 2 41 2 15 -0.49105577665193D-02 0.18098461226146D-15 + 3 41 2 15 -0.69079466598022D-01 0.29887933576126D-16 + 1 42 2 15 0.12254845032310D+01 -0.91127269839366D-16 + 2 42 2 15 0.31732604423891D+01 0.88115820526662D-16 + 3 42 2 15 -0.13470329229198D+01 -0.45662127423746D-16 + 1 43 2 15 -0.12254845032310D+01 -0.87872703353463D-16 + 2 43 2 15 0.31732604423890D+01 -0.20970047415236D-16 + 3 43 2 15 -0.13470329229198D+01 -0.26433631948154D-16 + 1 44 2 15 0.12734062973723D+00 -0.94025599777758D-16 + 2 44 2 15 -0.49105577665175D-02 0.77668847588426D-16 + 3 44 2 15 0.69079466598022D-01 0.28756635176149D-16 + 1 45 2 15 -0.12734062973723D+00 0.60585453865151D-16 + 2 45 2 15 -0.49105577665157D-02 0.10095057994516D-15 + 3 45 2 15 0.69079466598023D-01 0.18187423556051D-17 + 1 46 2 15 0.12254845032310D+01 -0.37543759532774D-16 + 2 46 2 15 0.31732604423891D+01 -0.24105785639484D-16 + 3 46 2 15 0.13470329229198D+01 0.19360795879117D-16 + 1 47 2 15 -0.12254845032310D+01 0.54601616219075D-17 + 2 47 2 15 0.31732604423891D+01 0.15457869304923D-15 + 3 47 2 15 0.13470329229198D+01 0.33908185425316D-16 + 1 48 2 15 0.42176664241325D+00 0.15911429157142D-16 + 2 48 2 15 -0.39950504984974D+00 0.18162629186752D-15 + 3 48 2 15 0.42696613261043D+00 0.31214603925122D-16 + 1 49 2 15 0.25712532149783D+00 0.67956173164938D-16 + 2 49 2 15 0.41507581536835D+00 -0.11938225667759D-15 + 3 49 2 15 0.28303719140876D+00 0.30547405660049D-16 + 1 50 2 15 -0.27876761996521D+00 -0.19452776498755D-16 + 2 50 2 15 0.25241496941609D+00 0.56807531605397D-16 + 3 50 2 15 0.20346636314716D+00 -0.29611626684610D-16 + 1 51 2 15 0.14029655666361D+02 0.10488966503891D-16 + 2 51 2 15 -0.26292168970119D+02 -0.15714116506544D-15 + 3 51 2 15 0.14382862120111D+02 -0.57092403365582D-16 + 1 52 2 15 0.25033869836143D-01 -0.16103088822854D-17 + 2 52 2 15 0.26036168030253D+00 0.22007571280978D-15 + 3 52 2 15 0.33216969269467D-01 -0.14406870322479D-16 + 1 53 2 15 0.47950150971598D+00 0.16744225474010D-16 + 2 53 2 15 -0.43255486659625D+00 0.32565310963101D-15 + 3 53 2 15 0.48737886495422D+00 0.28852765290823D-16 + 1 54 2 15 0.50513314278052D+00 -0.49797994923666D-17 + 2 54 2 15 -0.76994936718329D+00 0.10751681037137D-15 + 3 54 2 15 0.44345517655243D+00 -0.39007929398644D-17 + 1 55 2 15 0.32850170110726D+00 -0.34436475424115D-16 + 2 55 2 15 0.15825920575420D+00 -0.97545235151206D-16 + 3 55 2 15 -0.28740111017937D+00 0.30407228596655D-16 + 1 56 2 15 0.13055966252282D+00 -0.24544155378527D-17 + 2 56 2 15 -0.18948265496565D+00 0.12165399722494D-15 + 3 56 2 15 0.11189461027629D+00 -0.33880414394196D-16 + 1 57 2 15 -0.32811025291623D+01 0.13664579346900D-17 + 2 57 2 15 -0.31111385464382D+01 -0.85167217737291D-16 + 3 57 2 15 0.14207456754165D+01 0.89445982454398D-17 + 1 58 2 15 -0.13055966252282D+00 -0.45376758043744D-18 + 2 58 2 15 -0.18948265496565D+00 -0.22346152889159D-15 + 3 58 2 15 0.11189461027629D+00 -0.71740096981291D-16 + 1 59 2 15 0.32811025291624D+01 0.28641868780195D-18 + 2 59 2 15 -0.31111385464382D+01 0.14425602217186D-16 + 3 59 2 15 0.14207456754165D+01 0.63151988148130D-16 + 1 60 2 15 -0.13055966252282D+00 0.50804937759035D-17 + 2 60 2 15 -0.18948265496565D+00 0.17288118432210D-16 + 3 60 2 15 -0.11189461027629D+00 -0.10614673163843D-16 + 1 61 2 15 0.32811025291623D+01 0.20165469349213D-17 + 2 61 2 15 -0.31111385464382D+01 0.31397124014878D-16 + 3 61 2 15 -0.14207456754165D+01 -0.43421323692116D-16 + 1 62 2 15 0.13055966252282D+00 0.24504694940679D-17 + 2 62 2 15 -0.18948265496565D+00 -0.92480999406676D-16 + 3 62 2 15 -0.11189461027629D+00 -0.58082236827671D-16 + 1 63 2 15 -0.32811025291623D+01 0.70277405916148D-18 + 2 63 2 15 -0.31111385464382D+01 -0.13302087021778D-15 + 3 63 2 15 -0.14207456754165D+01 0.16953020867973D-16 + 1 64 2 15 0.52280215756247D-16 0.44143160265271D-16 + 2 64 2 15 -0.15330702032596D+00 -0.27767515073035D-17 + 3 64 2 15 0.19438991150893D-02 0.20108986559778D-17 + 1 65 2 15 -0.22904895424619D-15 -0.12868333418652D-16 + 2 65 2 15 -0.15330702032596D+00 -0.19780057256322D-16 + 3 65 2 15 -0.19438991150892D-02 0.34809639725989D-18 + 1 67 2 15 0.00000000000000D+00 0.00000000000000D+00 + 3 67 2 15 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 15 0.38417593010425D+00 -0.10654798641164D-16 + 2 1 3 15 -0.45168307234366D+00 -0.20043174956583D-16 + 3 1 3 15 -0.34998761247846D+00 0.92228241920178D-16 + 1 2 3 15 0.29075513625965D+00 0.28440307973920D-16 + 2 2 3 15 0.34900987509091D+00 0.32691964679632D-16 + 3 2 3 15 0.15499804625747D+00 0.15096939610605D-15 + 1 3 3 15 0.35339012791915D-01 0.29127758780736D-16 + 2 3 3 15 -0.22788356494302D-01 0.36593900647354D-16 + 3 3 3 15 0.24725792597649D+00 0.25634001951343D-16 + 1 4 3 15 0.46333199486231D+00 0.27608385765172D-18 + 2 4 3 15 -0.44647630976623D+00 -0.11322177606898D-16 + 3 4 3 15 -0.83861054278828D+00 0.33595634054383D-15 + 1 5 3 15 0.13251019054803D+00 0.42616869528070D-17 + 2 5 3 15 -0.27006261064948D+00 -0.98661287401434D-17 + 3 5 3 15 0.51643676632401D+00 0.31420068640592D-16 + 1 6 3 15 0.14605661763507D+02 -0.19003423981030D-16 + 2 6 3 15 -0.14423236904407D+02 0.29816184924162D-16 + 3 6 3 15 -0.26557973056397D+02 -0.29773084013969D-15 + 1 7 3 15 0.48063399579718D+00 0.15021852982859D-16 + 2 7 3 15 -0.46398081912002D+00 -0.15767825172389D-16 + 3 7 3 15 -0.38733449979394D+00 0.20964531806729D-15 + 1 8 3 15 -0.28498843691365D+00 0.81634614754230D-17 + 2 8 3 15 -0.24621087117146D+00 -0.28862595154955D-16 + 3 8 3 15 0.17338507247210D+00 0.49402273845017D-16 + 1 9 3 15 -0.50255441172727D-16 0.00000000000000D+00 + 2 9 3 15 -0.49055300179113D-16 0.00000000000000D+00 + 3 9 3 15 -0.12442641598040D+00 0.00000000000000D+00 + 1 10 3 15 0.54874087443351D-16 0.00000000000000D+00 + 2 10 3 15 0.33883313719073D-16 0.00000000000000D+00 + 3 10 3 15 0.15539734922401D+01 0.00000000000000D+00 + 1 11 3 15 -0.11177451661457D-15 0.00000000000000D+00 + 2 11 3 15 0.44624519882528D-16 0.00000000000000D+00 + 3 11 3 15 -0.13124231199622D+00 0.00000000000000D+00 + 1 12 3 15 0.53659962892007D-16 0.00000000000000D+00 + 2 12 3 15 -0.44739857569419D-16 0.00000000000000D+00 + 3 12 3 15 -0.25311509865131D+00 0.00000000000000D+00 + 1 13 3 15 0.44556372469830D-17 0.00000000000000D+00 + 2 13 3 15 -0.11715141888139D-15 0.00000000000000D+00 + 3 13 3 15 -0.18674926210325D+00 0.00000000000000D+00 + 1 14 3 15 -0.41057626465234D-17 0.00000000000000D+00 + 2 14 3 15 0.42104183724603D-16 0.00000000000000D+00 + 3 14 3 15 -0.22724183318677D+00 0.00000000000000D+00 + 1 15 3 15 -0.32777901973091D-12 0.00000000000000D+00 + 2 15 3 15 -0.22706680197402D-12 0.00000000000000D+00 + 3 15 3 15 0.12097442745118D+03 0.00000000000000D+00 + 1 16 3 15 -0.35339012791915D-01 -0.15529559720163D-16 + 2 16 3 15 -0.22788356494301D-01 0.22071623213753D-16 + 3 16 3 15 0.24725792597649D+00 0.96082286304811D-16 + 1 17 3 15 -0.46333199486231D+00 -0.99720246958467D-17 + 2 17 3 15 -0.44647630976623D+00 -0.46584389481629D-18 + 3 17 3 15 -0.83861054278828D+00 -0.53159154981040D-16 + 1 18 3 15 -0.38417593010425D+00 0.10626860589969D-16 + 2 18 3 15 -0.45168307234366D+00 0.75550894368651D-17 + 3 18 3 15 -0.34998761247846D+00 -0.11724393950514D-15 + 1 19 3 15 -0.29075513625965D+00 -0.31768686543340D-16 + 2 19 3 15 0.34900987509091D+00 0.15425999947359D-16 + 3 19 3 15 0.15499804625747D+00 -0.34882099398396D-16 + 1 20 3 15 -0.48063399579718D+00 0.67809242368819D-17 + 2 20 3 15 -0.46398081912002D+00 0.67244493111106D-17 + 3 20 3 15 -0.38733449979395D+00 -0.87369273139260D-16 + 1 21 3 15 0.28498843691365D+00 0.34512388748477D-16 + 2 21 3 15 -0.24621087117146D+00 0.40732211173682D-16 + 3 21 3 15 0.17338507247209D+00 0.22990716168428D-16 + 1 22 3 15 -0.13251019054803D+00 -0.28919266916087D-16 + 2 22 3 15 -0.27006261064949D+00 -0.26792788704196D-16 + 3 22 3 15 0.51643676632400D+00 0.93500966133509D-16 + 1 23 3 15 -0.14605661763507D+02 0.31029374368240D-17 + 2 23 3 15 -0.14423236904407D+02 -0.99929718810693D-17 + 3 23 3 15 -0.26557973056397D+02 0.14836458713545D-15 + 1 24 3 15 0.11647921859219D+00 0.31679991020561D-16 + 2 24 3 15 -0.84283472302179D-01 -0.36466864472386D-18 + 3 24 3 15 -0.20497380330675D+00 0.16201053084573D-15 + 1 25 3 15 0.11647921859220D+00 -0.12206843024206D-16 + 2 25 3 15 0.84283472302181D-01 -0.12276359794539D-18 + 3 25 3 15 -0.20497380330674D+00 -0.32458615129187D-15 + 1 26 3 15 -0.11647921859220D+00 0.30931854307395D-16 + 2 26 3 15 0.84283472302180D-01 0.21199916288465D-18 + 3 26 3 15 -0.20497380330674D+00 0.42851155708903D-17 + 1 27 3 15 -0.11647921859220D+00 0.16298959635211D-16 + 2 27 3 15 -0.84283472302180D-01 -0.16702311856597D-17 + 3 27 3 15 -0.20497380330674D+00 -0.23286211084288D-15 + 1 28 3 15 0.13607069780244D+01 0.30748768822642D-16 + 2 28 3 15 0.32608007377771D+01 -0.42828661081312D-17 + 3 28 3 15 -0.30867247988156D+01 -0.32651661660063D-15 + 1 29 3 15 0.13607069780244D+01 0.19257792743742D-16 + 2 29 3 15 -0.32608007377771D+01 -0.12187303731691D-18 + 3 29 3 15 -0.30867247988156D+01 0.19834260814183D-15 + 1 30 3 15 -0.13607069780244D+01 0.12273322776299D-16 + 2 30 3 15 -0.32608007377771D+01 0.13261466497825D-17 + 3 30 3 15 -0.30867247988156D+01 0.24113384229625D-15 + 1 31 3 15 -0.13607069780244D+01 -0.30165838013755D-16 + 2 31 3 15 0.32608007377771D+01 -0.14180707507960D-18 + 3 31 3 15 -0.30867247988156D+01 -0.30535225311310D-15 + 1 32 3 15 0.13251019054803D+00 -0.26618788462575D-16 + 2 32 3 15 0.27006261064948D+00 -0.19446027518331D-16 + 3 32 3 15 0.51643676632399D+00 -0.84440900454614D-16 + 1 33 3 15 0.14605661763507D+02 -0.28097042022775D-17 + 2 33 3 15 0.14423236904407D+02 0.10338580303221D-16 + 3 33 3 15 -0.26557973056398D+02 -0.19235263393558D-15 + 1 34 3 15 0.48063399579718D+00 -0.32776995561591D-16 + 2 34 3 15 0.46398081912002D+00 -0.82446151388919D-17 + 3 34 3 15 -0.38733449979395D+00 0.29724921435510D-15 + 1 35 3 15 -0.28498843691365D+00 -0.21902927017394D-16 + 2 35 3 15 0.24621087117147D+00 0.37652101928334D-16 + 3 35 3 15 0.17338507247210D+00 -0.29151124727928D-15 + 1 36 3 15 0.38417593010425D+00 -0.20094266078744D-16 + 2 36 3 15 0.45168307234366D+00 0.25076771532951D-16 + 3 36 3 15 -0.34998761247846D+00 -0.99273994977156D-16 + 1 37 3 15 0.29075513625965D+00 -0.21215124520652D-18 + 2 37 3 15 -0.34900987509091D+00 -0.81837370293943D-17 + 3 37 3 15 0.15499804625748D+00 -0.33853778358269D-15 + 1 38 3 15 0.35339012791915D-01 0.37470103503837D-16 + 2 38 3 15 0.22788356494301D-01 0.39489770188068D-18 + 3 38 3 15 0.24725792597648D+00 0.12496388164643D-15 + 1 39 3 15 0.46333199486231D+00 0.81729345596860D-17 + 2 39 3 15 0.44647630976623D+00 -0.19703391426064D-16 + 3 39 3 15 -0.83861054278827D+00 -0.12808705642215D-15 + 1 40 3 15 -0.95524459798811D-01 0.84999244117111D-18 + 2 40 3 15 0.88500513317363D-01 0.30345953344117D-16 + 3 40 3 15 -0.22820182169767D+00 0.30531408579445D-15 + 1 41 3 15 0.95524459798810D-01 0.16794341715786D-17 + 2 41 3 15 0.88500513317366D-01 0.29887933576126D-16 + 3 41 3 15 -0.22820182169768D+00 0.27906887810296D-15 + 1 42 3 15 0.30660005531584D+01 0.26023024474786D-17 + 2 42 3 15 0.12061807511854D+01 -0.45662127423746D-16 + 3 42 3 15 -0.29954888535487D+01 0.45848642052227D-16 + 1 43 3 15 -0.30660005531584D+01 0.11829975204755D-17 + 2 43 3 15 0.12061807511854D+01 -0.26433631948154D-16 + 3 43 3 15 -0.29954888535487D+01 0.53959868483921D-16 + 1 44 3 15 0.95524459798810D-01 -0.36546435918342D-18 + 2 44 3 15 -0.88500513317366D-01 0.28756635176149D-16 + 3 44 3 15 -0.22820182169767D+00 -0.31339349231211D-15 + 1 45 3 15 -0.95524459798810D-01 -0.28447573057223D-17 + 2 45 3 15 -0.88500513317365D-01 0.18187423556051D-17 + 3 45 3 15 -0.22820182169768D+00 0.14920684367900D-15 + 1 46 3 15 -0.30660005531584D+01 0.13977833844141D-19 + 2 46 3 15 -0.12061807511854D+01 0.19360795879117D-16 + 3 46 3 15 -0.29954888535487D+01 0.70294850589957D-15 + 1 47 3 15 0.30660005531584D+01 0.10853409835578D-17 + 2 47 3 15 -0.12061807511854D+01 0.33908185425316D-16 + 3 47 3 15 -0.29954888535487D+01 0.21175639913705D-16 + 1 48 3 15 -0.48063399579718D+00 -0.41051652814516D-16 + 2 48 3 15 0.46398081912002D+00 0.31214603925122D-16 + 3 48 3 15 -0.38733449979395D+00 -0.25975489231930D-16 + 1 49 3 15 0.28498843691364D+00 -0.17073562061969D-16 + 2 49 3 15 0.24621087117147D+00 0.30547405660049D-16 + 3 49 3 15 0.17338507247210D+00 -0.31495136743746D-15 + 1 50 3 15 -0.13251019054802D+00 -0.27541019172291D-16 + 2 50 3 15 0.27006261064948D+00 -0.29611626684610D-16 + 3 50 3 15 0.51643676632399D+00 0.65561451508518D-16 + 1 51 3 15 -0.14605661763507D+02 -0.45083988585303D-16 + 2 51 3 15 0.14423236904407D+02 -0.57092403365582D-16 + 3 51 3 15 -0.26557973056397D+02 0.16786899950334D-15 + 1 52 3 15 -0.35339012791915D-01 -0.22598929413949D-16 + 2 52 3 15 0.22788356494299D-01 -0.14406870322479D-16 + 3 52 3 15 0.24725792597649D+00 0.45238050406487D-15 + 1 53 3 15 -0.46333199486231D+00 -0.28291609548205D-16 + 2 53 3 15 0.44647630976623D+00 0.28852765290823D-16 + 3 53 3 15 -0.83861054278827D+00 0.31407728784481D-15 + 1 54 3 15 -0.38417593010425D+00 0.22902411462853D-16 + 2 54 3 15 0.45168307234366D+00 -0.39007929398644D-17 + 3 54 3 15 -0.34998761247846D+00 0.11728919900635D-15 + 1 55 3 15 -0.29075513625964D+00 -0.29476279193486D-16 + 2 55 3 15 -0.34900987509091D+00 0.30407228596655D-16 + 3 55 3 15 0.15499804625747D+00 0.38800997377583D-15 + 1 56 3 15 -0.71961574256987D-01 -0.22416375686468D-16 + 2 56 3 15 -0.11750953390600D+00 -0.33880414394196D-16 + 3 56 3 15 -0.42718762411060D-01 -0.98580346332150D-16 + 1 57 3 15 -0.13103510648214D+01 -0.37998080367419D-16 + 2 57 3 15 -0.13775885799320D+01 0.89445982454398D-17 + 3 57 3 15 0.31612187369587D+01 0.95943142568211D-16 + 1 58 3 15 0.71961574256987D-01 0.10407806284669D-15 + 2 58 3 15 -0.11750953390600D+00 -0.71740096981291D-16 + 3 58 3 15 -0.42718762411055D-01 0.16433881892594D-16 + 1 59 3 15 0.13103510648214D+01 0.11183368033542D-16 + 2 59 3 15 -0.13775885799320D+01 0.63151988148130D-16 + 3 59 3 15 0.31612187369587D+01 -0.27498497890752D-16 + 1 60 3 15 -0.71961574256988D-01 0.68642976932406D-16 + 2 60 3 15 0.11750953390600D+00 -0.10614673163843D-16 + 3 60 3 15 -0.42718762411062D-01 -0.88614347596490D-17 + 1 61 3 15 -0.13103510648214D+01 -0.82002026069143D-17 + 2 61 3 15 0.13775885799320D+01 -0.43421323692116D-16 + 3 61 3 15 0.31612187369587D+01 0.12690351846391D-16 + 1 62 3 15 0.71961574256986D-01 -0.16828020226409D-16 + 2 62 3 15 0.11750953390600D+00 -0.58082236827671D-16 + 3 62 3 15 -0.42718762411067D-01 -0.41213482075338D-16 + 1 63 3 15 0.13103510648214D+01 -0.26450439152431D-16 + 2 63 3 15 0.13775885799320D+01 0.16953020867973D-16 + 3 63 3 15 0.31612187369587D+01 0.35280401857023D-16 + 1 64 3 15 0.90214248076138D-16 0.18503771832942D-16 + 2 64 3 15 -0.17530610677971D+00 0.20108986559778D-17 + 3 64 3 15 0.70989436342788D-01 -0.94682371205407D-17 + 1 65 3 15 0.11283431376204D-15 0.23103165112448D-16 + 2 65 3 15 0.17530610677971D+00 0.34809639725989D-18 + 3 65 3 15 0.70989436342788D-01 -0.16015997246454D-17 + 1 67 3 15 0.00000000000000D+00 0.00000000000000D+00 + 2 67 3 15 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 16 0.30385091776968D+01 0.17286526475774D-16 + 2 1 1 16 0.13146956625237D+01 -0.20248125158831D-16 + 3 1 1 16 -0.11550108999979D+01 0.22428186855840D-17 + 1 2 1 16 0.30681912205083D+01 -0.48220838138070D-16 + 2 2 1 16 -0.12999869291335D+01 -0.24997409211748D-16 + 3 2 1 16 -0.12892733219551D+01 -0.17289841236528D-16 + 1 3 1 16 0.29709267831613D+01 -0.55189789782569D-16 + 2 3 1 16 0.16200999420939D+01 -0.15077050450558D-16 + 3 3 1 16 0.14257686930433D+01 -0.55174420958538D-17 + 1 4 1 16 0.31579413995747D+01 0.24204209034667D-16 + 2 4 1 16 -0.11608650034962D+01 0.13136920074705D-16 + 3 4 1 16 0.11838219701199D+01 -0.22016257074588D-16 + 1 5 1 16 0.87836048719614D-01 -0.46686135215707D-16 + 2 5 1 16 -0.68445111688901D+00 0.30848183541655D-16 + 3 5 1 16 0.71809348402236D+00 -0.33338819199972D-16 + 1 6 1 16 -0.40115266392881D-01 -0.30416120045826D-17 + 2 6 1 16 -0.14432681694242D+00 -0.46816753443280D-17 + 3 6 1 16 -0.15890958213719D+00 -0.23810138357992D-16 + 1 7 1 16 0.28208267547110D-01 0.47589207628137D-16 + 2 7 1 16 0.18188827530424D+00 -0.64916992117114D-17 + 3 7 1 16 0.10915285207293D+00 -0.23560062099397D-16 + 1 8 1 16 0.17628049017321D-01 -0.29718993379549D-18 + 2 8 1 16 -0.72483235593101D-01 -0.13251220946632D-17 + 3 8 1 16 0.67088866551376D-01 0.23083769464471D-16 + 1 9 1 16 -0.27426623157198D+02 -0.17406336951140D-15 + 2 9 1 16 -0.15032249132810D+02 0.29627000344193D-16 + 3 9 1 16 -0.17262832939096D+02 0.23375406122163D-16 + 1 10 1 16 0.16014908008607D+00 0.20898759617666D-16 + 2 10 1 16 0.29396969816599D+00 0.50069072454312D-17 + 3 10 1 16 -0.27827078820673D+00 0.99566123235060D-17 + 1 11 1 16 0.21120081637544D+00 0.79529324992517D-16 + 2 11 1 16 -0.42015639042688D+00 0.21034565389788D-17 + 3 11 1 16 0.31360025830505D+00 -0.37335692771115D-16 + 1 12 1 16 -0.83310310466002D+00 0.60888049072264D-17 + 2 12 1 16 -0.62977614684491D+00 0.12765181455080D-17 + 3 12 1 16 -0.49860176723086D+00 0.31452378421413D-16 + 1 13 1 16 0.50241961411292D+00 -0.70326008842756D-16 + 2 13 1 16 -0.29079744594829D+00 0.21635843082092D-16 + 3 13 1 16 -0.32830750008265D+00 -0.14873834627159D-16 + 1 14 1 16 -0.40543449355566D+00 -0.96119088577134D-16 + 2 14 1 16 -0.45243150437115D+00 -0.15233475278871D-16 + 3 14 1 16 -0.46794458107699D+00 0.95074563557414D-17 + 1 15 1 16 0.25512738324407D+00 -0.25006810492181D-16 + 2 15 1 16 -0.25033869836143D-01 0.12296612488318D-17 + 3 15 1 16 -0.35339012791915D-01 0.15529559720163D-16 + 1 16 1 16 0.12287990253502D+03 0.00000000000000D+00 + 2 16 1 16 0.34256587073391D+01 0.00000000000000D+00 + 3 16 1 16 0.10712478210705D+01 0.00000000000000D+00 + 1 17 1 16 -0.23816838007237D+00 -0.70353054979538D-17 + 2 17 1 16 0.13933129234016D-02 0.24050451166908D-17 + 3 17 1 16 0.18366634266787D-02 -0.35025508617902D-17 + 1 18 1 16 -0.22583673303681D+00 0.63927475401072D-17 + 2 18 1 16 0.71182342370792D-01 -0.12845100142146D-18 + 3 18 1 16 -0.68881838386677D-01 0.00000000000000D+00 + 1 19 1 16 0.17064624383969D+01 -0.93518482993768D-18 + 2 19 1 16 0.19346501631644D-01 -0.11552125050553D-17 + 3 19 1 16 0.19049686090145D+00 -0.21421028745025D-18 + 1 20 1 16 -0.35562475976301D+00 0.39361101573374D-17 + 2 20 1 16 -0.73118224368082D-01 -0.14071988065567D-17 + 3 20 1 16 -0.19184240360456D-02 -0.12723090354911D-17 + 1 21 1 16 -0.12290306718725D+00 -0.15567351650359D-16 + 2 21 1 16 0.12182195732168D-01 -0.75844834589511D-18 + 3 21 1 16 0.22596539548495D-01 0.41268393302723D-19 + 1 22 1 16 -0.12969776100868D+00 -0.16349481639181D-16 + 2 22 1 16 0.74074581612352D+00 -0.41047177323944D-17 + 3 22 1 16 -0.85317621194837D+00 -0.30569295055625D-17 + 1 23 1 16 -0.16720242091942D+00 0.10638008519927D-17 + 2 23 1 16 0.38930185792206D-01 -0.45649384069117D-18 + 3 23 1 16 0.22811652599747D-01 -0.20971609025591D-18 + 1 24 1 16 0.27295797963199D+00 0.12846223310759D-16 + 2 24 1 16 -0.39028506538331D+00 -0.13682478769451D-16 + 3 24 1 16 0.40294145954662D+00 0.13101798756721D-16 + 1 25 1 16 -0.25470941862985D+02 -0.11810192278531D-15 + 2 25 1 16 0.13940477087648D+02 -0.51978512089825D-17 + 3 25 1 16 0.13516280332068D+02 -0.53802050109042D-16 + 1 26 1 16 -0.84916661268428D+00 -0.91667776381651D-16 + 2 26 1 16 0.37718079151061D+00 0.17879498010090D-16 + 3 26 1 16 0.47131622603680D+00 0.17590359588508D-16 + 1 27 1 16 0.20558033360883D+00 -0.16908494259988D-15 + 2 27 1 16 0.25207267195374D+00 -0.20308431238610D-16 + 3 27 1 16 -0.34287793151198D+00 -0.75509100127083D-16 + 1 28 1 16 -0.64234105542511D+00 0.10296234829611D-15 + 2 28 1 16 0.38978028340426D+00 0.14293608933942D-16 + 3 28 1 16 0.42614734542216D+00 -0.36346510789832D-16 + 1 29 1 16 0.44208024797585D+00 -0.12611730665062D-16 + 2 29 1 16 0.41383561013823D+00 -0.12359829368238D-17 + 3 29 1 16 0.38566323318886D+00 0.25650212566940D-16 + 1 30 1 16 0.25051017034733D+00 -0.15405661493890D-15 + 2 30 1 16 -0.23561371178644D-01 -0.15502902378093D-16 + 3 30 1 16 -0.11479705400310D+00 -0.29425255571822D-16 + 1 31 1 16 -0.37941196594301D+00 -0.97142454510114D-16 + 2 31 1 16 0.32676665815979D+00 -0.20591365832333D-18 + 3 31 1 16 0.44374494864420D+00 0.14920147616448D-16 + 1 32 1 16 -0.30338589403061D+01 -0.11942293907374D-15 + 2 32 1 16 -0.46171555433878D+01 0.22807301064844D-17 + 3 32 1 16 0.17512457825153D+00 0.20117910988296D-16 + 1 33 1 16 -0.20352226633815D+00 0.24010635063238D-15 + 2 33 1 16 0.36582342768198D-01 0.19556121680110D-17 + 3 33 1 16 0.14350644613521D+00 0.26028218288544D-16 + 1 34 1 16 -0.29949756481198D+01 -0.91003649267783D-16 + 2 34 1 16 0.30971891017045D+01 0.18606160432600D-17 + 3 34 1 16 -0.11971059792642D+01 -0.49910026559646D-17 + 1 35 1 16 -0.23994603525543D+00 0.13498003852172D-15 + 2 35 1 16 -0.65890303523437D-01 0.24271173814233D-17 + 3 35 1 16 -0.89465979828499D-01 0.92084451944098D-16 + 1 36 1 16 -0.29694333512828D+01 0.26575399776674D-15 + 2 36 1 16 0.31188104911044D+01 0.14461187965953D-17 + 3 36 1 16 0.13216691511330D+01 -0.98910205531358D-16 + 1 37 1 16 -0.35757345629169D+00 -0.74997247339842D-16 + 2 37 1 16 -0.19847109189108D+00 -0.41818278484334D-18 + 3 37 1 16 0.21515632650469D+00 0.39042713900760D-17 + 1 38 1 16 -0.32291832719729D+01 0.23597415024548D-15 + 2 38 1 16 -0.35866822654581D+01 -0.28436224991202D-17 + 3 38 1 16 -0.12574855522480D+01 0.67646016570565D-16 + 1 39 1 16 -0.23629068496630D+00 -0.12418683395733D-15 + 2 39 1 16 0.11720523352892D+00 -0.17105222409083D-17 + 3 39 1 16 -0.10296464443796D+00 -0.17301579425838D-16 + 1 40 1 16 0.18966302382550D+00 -0.21769958707360D-15 + 2 40 1 16 -0.33632806315325D+00 0.40257233287053D-17 + 3 40 1 16 -0.23380228617191D+00 0.26358334607642D-16 + 1 41 1 16 -0.27140407075915D+02 0.96708532294487D-16 + 2 41 1 16 0.14248162262728D+02 -0.18682554214180D-16 + 3 41 1 16 -0.14840802524424D+02 0.20199945636797D-16 + 1 42 1 16 -0.80985736801164D+00 0.78428925884405D-17 + 2 42 1 16 0.33968534256653D+00 -0.32368668279362D-16 + 3 42 1 16 -0.35556774802707D+00 -0.53182445321013D-17 + 1 43 1 16 0.62632122828491D+00 0.37439767021031D-15 + 2 43 1 16 0.61070928979988D+00 0.31075588307645D-16 + 3 43 1 16 0.21034855301276D+00 -0.96161326705836D-18 + 1 44 1 16 -0.49304833638927D+00 -0.18183627391201D-15 + 2 44 1 16 0.35014435252327D+00 -0.24916194481071D-17 + 3 44 1 16 -0.43710435220490D+00 0.97851727264576D-18 + 1 45 1 16 0.36923994026917D+00 0.12765362079622D-15 + 2 45 1 16 0.33003961467011D+00 0.57601977411267D-16 + 3 45 1 16 -0.26653682768796D+00 0.23195725892545D-16 + 1 46 1 16 0.81947051681335D-01 -0.84127003527531D-16 + 2 46 1 16 0.24610974420285D+00 0.20789910904305D-16 + 3 46 1 16 0.10295060887454D+00 -0.14391076739981D-16 + 1 47 1 16 -0.50259411538244D+00 -0.61424399362172D-16 + 2 47 1 16 0.27401375196434D+00 0.56050464064586D-16 + 3 47 1 16 -0.59033759901085D+00 -0.12435942654596D-16 + 1 48 1 16 -0.29233488661134D+01 -0.22946626959464D-15 + 2 48 1 16 -0.17402778573232D+01 0.99315884859904D-16 + 3 48 1 16 0.28846658458855D+01 0.40173273708578D-19 + 1 49 1 16 -0.29596538007428D+01 -0.18932815777287D-16 + 2 49 1 16 0.12343771874599D+01 0.13623771937533D-16 + 3 49 1 16 -0.32008726391262D+01 0.35328771802565D-17 + 1 50 1 16 -0.14227691375252D+00 -0.15741452850833D-15 + 2 50 1 16 0.55458505988008D+00 -0.37373768599338D-16 + 3 50 1 16 0.63788193896406D+00 -0.76196131612857D-17 + 1 51 1 16 -0.20285354699657D+00 0.32076310658713D-15 + 2 51 1 16 0.14764773017078D+00 -0.58001342301727D-16 + 3 51 1 16 0.21870410963721D-01 0.34223553092264D-17 + 1 52 1 16 -0.29895125632169D+01 -0.19148740681506D-15 + 2 52 1 16 -0.16276630588903D+01 -0.39974924896928D-16 + 3 52 1 16 -0.29337777170518D+01 -0.23173806824028D-17 + 1 53 1 16 -0.30112724456128D+01 -0.51947944628275D-16 + 2 53 1 16 0.14136220409059D+01 0.15836008989447D-16 + 3 53 1 16 0.32825700744194D+01 -0.53253725242100D-17 + 1 54 1 16 -0.21100302837231D+00 0.18486507946501D-15 + 2 54 1 16 0.25560236999467D-01 -0.68447323456406D-16 + 3 54 1 16 0.18875194431667D+00 -0.15585265933736D-17 + 1 55 1 16 -0.35729967959954D+00 -0.19711591077419D-15 + 2 55 1 16 0.25898368449814D+00 -0.16587852023587D-16 + 3 55 1 16 -0.21810506358726D+00 0.83332543693596D-18 + 1 56 1 16 -0.27022189572521D+02 -0.16475211026705D-15 + 2 56 1 16 -0.14558835678490D+02 0.26559480846677D-16 + 3 56 1 16 0.17380976115390D+02 -0.13153877715662D-16 + 1 57 1 16 0.22931480882146D+00 -0.11852337998800D-15 + 2 57 1 16 0.35660563057979D+00 0.53581132677846D-17 + 3 57 1 16 0.32406161278394D+00 0.86599308904574D-17 + 1 58 1 16 0.62025028896615D-02 0.29387970916519D-16 + 2 58 1 16 0.53763771560473D-01 -0.37770620733040D-16 + 3 58 1 16 -0.26522545003790D+00 -0.24494854886090D-16 + 1 59 1 16 -0.77717561802623D+00 0.62240256266117D-16 + 2 59 1 16 -0.44805328709032D+00 0.20095773630532D-16 + 3 59 1 16 0.48194379625108D+00 -0.54464290520418D-17 + 1 60 1 16 0.31422049400925D+00 0.31104116070840D-16 + 2 60 1 16 -0.21516708156434D+00 -0.15812968330300D-16 + 3 60 1 16 -0.29825601567282D-02 -0.13817624306938D-16 + 1 61 1 16 -0.45333922621259D+00 -0.66698075520143D-16 + 2 61 1 16 -0.51501859925011D+00 -0.71217046396129D-17 + 3 61 1 16 0.52535734949560D+00 0.76845749964907D-17 + 1 62 1 16 -0.39640379417135D+00 0.13328226948058D-15 + 2 62 1 16 -0.63674313804244D+00 -0.68235604676184D-17 + 3 62 1 16 0.59823138478369D+00 -0.39632937652959D-16 + 1 63 1 16 0.27664613061127D+00 -0.67180739504024D-16 + 2 63 1 16 -0.26176467133660D-02 -0.34284826677775D-17 + 3 63 1 16 0.11650839707700D-02 -0.16427020739988D-16 + 1 64 1 16 -0.14478320412947D+00 -0.25623035548615D-16 + 2 64 1 16 0.74878039637237D-01 -0.32042226357167D-17 + 3 64 1 16 0.66647925942099D-01 0.36588167955922D-16 + 1 65 1 16 -0.50053457424159D+00 -0.32569516411016D-15 + 2 65 1 16 -0.10998115269211D+01 0.47112126748711D-16 + 3 65 1 16 -0.46103480457848D+00 -0.91411409740554D-16 + 1 1 2 16 -0.12138580036775D+01 -0.20248125158831D-16 + 2 1 2 16 -0.27516318762314D+01 -0.22308685524667D-15 + 3 1 2 16 0.29073230193539D+01 -0.24759589230238D-17 + 1 2 2 16 0.12892733219551D+01 -0.24997409211748D-16 + 2 2 2 16 -0.31939237968509D+01 -0.12247521611211D-15 + 3 2 2 16 -0.30631974865687D+01 -0.51567938358961D-17 + 1 3 2 16 -0.16200999420939D+01 -0.15077050450558D-16 + 2 3 2 16 -0.28486160486720D+01 0.12150357080378D-15 + 3 3 2 16 -0.28968247934280D+01 -0.15308425643924D-17 + 1 4 2 16 0.14131179231746D+01 0.13136920074705D-16 + 2 4 2 16 -0.29903000869573D+01 0.31848972734747D-15 + 3 4 2 16 0.32598618654776D+01 -0.22353405996429D-18 + 1 5 2 16 -0.25019036966428D+00 0.30848183541655D-16 + 2 5 2 16 -0.11649945096036D+01 0.22900109504452D-15 + 3 5 2 16 0.99491676041998D+00 -0.61855720150373D-18 + 1 6 2 16 0.42487475494270D-01 -0.46816753443280D-17 + 2 6 2 16 -0.26792518326819D+00 0.21260491131524D-15 + 3 6 2 16 -0.21360777461625D-02 0.16422807791146D-17 + 1 7 2 16 -0.43402375418694D-01 -0.64916992117114D-17 + 2 7 2 16 -0.14082776768839D+00 -0.12486136767056D-15 + 3 7 2 16 0.15173137220633D+00 -0.43165252367237D-18 + 1 8 2 16 0.13471322032933D+00 -0.13251220946632D-17 + 2 8 2 16 -0.17065132479147D+00 0.11242587260293D-15 + 3 8 2 16 -0.11291188076494D+00 -0.11674622958693D-18 + 1 9 2 16 -0.15049561448618D+02 0.29627000344193D-16 + 2 9 2 16 -0.26974964152212D+02 -0.71751027179534D-16 + 3 9 2 16 -0.17190403093691D+02 -0.47185929694469D-17 + 1 10 2 16 0.30357963965609D+00 0.50069072454312D-17 + 2 10 2 16 0.17709448086407D+00 0.41938370850902D-16 + 3 10 2 16 -0.29456117170823D+00 -0.23698984780420D-16 + 1 11 2 16 -0.33996042404436D+00 0.21034565389788D-17 + 2 11 2 16 0.54545784522195D+00 -0.13742897546914D-16 + 3 11 2 16 -0.36794478809993D+00 -0.28402644840893D-16 + 1 12 2 16 -0.50563856021151D+00 0.12765181455080D-17 + 2 12 2 16 -0.29904993474147D+00 -0.14642318031608D-17 + 3 12 2 16 -0.33310674753373D+00 0.70551881040777D-19 + 1 13 2 16 -0.33741997843469D+00 0.21635843082092D-16 + 2 13 2 16 0.15481190776723D+00 -0.13683507725900D-15 + 3 13 2 16 0.28725792961402D+00 -0.22118964120787D-16 + 1 14 2 16 -0.47912631614102D+00 -0.15233475278871D-16 + 2 14 2 16 -0.79384822690190D+00 0.10349308814029D-15 + 3 14 2 16 -0.51072631933868D+00 -0.21201020386522D-16 + 1 15 2 16 -0.33953700215029D-01 0.12296612488318D-17 + 2 15 2 16 0.26036168030253D+00 -0.70858863798588D-16 + 3 15 2 16 -0.22788356494301D-01 -0.22071623213753D-16 + 1 16 2 16 0.34256587073391D+01 0.00000000000000D+00 + 2 16 2 16 0.12277108058833D+03 0.00000000000000D+00 + 3 16 2 16 0.62995371830230D+00 0.00000000000000D+00 + 1 17 2 16 0.36501365675336D-02 0.24050451166908D-17 + 2 17 2 16 -0.25609173438377D+00 0.97923191854943D-17 + 3 17 2 16 -0.27708198192499D-02 0.21568043879369D-17 + 1 18 2 16 0.80488204615406D-03 -0.12845100142146D-18 + 2 18 2 16 -0.36966588801672D+00 -0.76629244267577D-17 + 3 18 2 16 -0.75794711745998D-01 0.65706931365155D-17 + 1 19 2 16 0.19049686090145D+00 -0.11552125050553D-17 + 2 19 2 16 0.14254411493811D+00 0.18887906138263D-16 + 3 19 2 16 -0.52128788298783D-01 0.23387473848692D-17 + 1 20 2 16 0.46994349775083D-01 -0.14071988065567D-17 + 2 20 2 16 -0.31749180709190D+00 0.55626601877335D-17 + 3 20 2 16 -0.40416366528409D-01 -0.14587789752561D-17 + 1 21 2 16 -0.36046341819233D-01 -0.75844834589511D-18 + 2 21 2 16 0.15513921470717D+01 0.91305190133995D-18 + 3 21 2 16 0.11411960095221D+00 0.30429580089441D-18 + 1 22 2 16 0.37629163850714D-01 -0.41047177323944D-17 + 2 22 2 16 0.10020919058717D+01 0.61697293497890D-17 + 3 22 2 16 -0.10028054761513D+01 0.15284895588253D-16 + 1 23 2 16 -0.53321962162254D-01 -0.45649384069117D-18 + 2 23 2 16 -0.95554353237724D-01 0.92091702411332D-18 + 3 23 2 16 0.25872687761076D-01 0.61881402054007D-18 + 1 24 2 16 -0.36011376274168D+00 -0.13682478769451D-16 + 2 24 2 16 0.14604195947364D+00 0.63340581849843D-16 + 3 24 2 16 -0.29133872444977D+00 -0.35539252053731D-16 + 1 25 2 16 0.14083423636587D+02 -0.51978512089825D-17 + 2 25 2 16 -0.26651846455054D+02 -0.28980766913018D-15 + 3 25 2 16 -0.14783799473417D+02 0.18460417601012D-16 + 1 26 2 16 0.41780254090832D+00 0.17879498010090D-16 + 2 26 2 16 -0.51011838563334D+00 0.56279936609809D-16 + 3 26 2 16 -0.48020796007542D+00 0.62461150402008D-17 + 1 27 2 16 0.26928149076510D+00 -0.20308431238610D-16 + 2 27 2 16 0.34107393969033D+00 0.11849575133275D-15 + 3 27 2 16 -0.23445931572646D+00 0.11331293410167D-15 + 1 28 2 16 0.31903292504870D+00 0.14293608933942D-16 + 2 28 2 16 -0.87452191548158D+00 -0.36580024461088D-17 + 3 28 2 16 -0.57215740886046D+00 0.14673355846230D-16 + 1 29 2 16 0.30221072566818D+00 -0.12359829368238D-17 + 2 29 2 16 0.40863253993532D+00 -0.32723590371075D-15 + 3 29 2 16 0.44990739332756D+00 -0.51840646008027D-16 + 1 30 2 16 0.19633221284499D-01 -0.15502902378093D-16 + 2 30 2 16 0.22596097662279D+00 -0.65985254940477D-16 + 3 30 2 16 -0.13890585649113D+00 -0.25000117793958D-16 + 1 31 2 16 0.39126828577215D+00 -0.20591365832333D-18 + 2 31 2 16 -0.55512387936140D+00 -0.12377951358526D-15 + 3 31 2 16 -0.44826197649394D+00 -0.30771380859472D-16 + 1 32 2 16 -0.39313346883592D+01 0.22807301064844D-17 + 2 32 2 16 -0.50448506524643D+01 0.17639600616756D-15 + 3 32 2 16 -0.26312833464487D+00 -0.10247650543341D-15 + 1 33 2 16 0.12521758778297D+00 0.19556121680110D-17 + 2 33 2 16 -0.26027564892998D+00 -0.16857839889560D-15 + 3 33 2 16 0.16403408343850D+00 0.17169724051663D-16 + 1 34 2 16 0.30926262122503D+01 0.18606160432600D-17 + 2 34 2 16 -0.29700809879205D+01 -0.76712333427733D-16 + 3 34 2 16 0.12001748544478D+01 -0.29366538289386D-17 + 1 35 2 16 -0.10929782699042D+00 0.24271173814233D-17 + 2 35 2 16 -0.21619915347569D+00 -0.55392019881127D-16 + 3 35 2 16 0.14001481061544D+00 -0.39627046990174D-17 + 1 36 2 16 0.31565116753994D+01 0.14461187965953D-17 + 2 36 2 16 -0.31160979668871D+01 -0.67373655191476D-16 + 3 36 2 16 -0.14939482683633D+01 0.98304195902638D-16 + 1 37 2 16 -0.21810506358726D+00 -0.41818278484334D-18 + 2 37 2 16 -0.42455260074796D+00 0.91161742472876D-16 + 3 37 2 16 0.57395443418605D-01 0.49609501015790D-16 + 1 38 2 16 -0.35866822654581D+01 -0.28436224991202D-17 + 2 38 2 16 -0.32056288879745D+01 0.25389310797019D-15 + 3 38 2 16 -0.12650830491787D+01 0.95133408410035D-16 + 1 39 2 16 0.99376337698372D-01 -0.17105222409083D-17 + 2 39 2 16 -0.20308108836415D+00 0.23853266298363D-15 + 3 39 2 16 -0.10250397564470D+00 -0.71688466454425D-16 + 1 40 2 16 -0.35138773653670D+00 0.40257233287053D-17 + 2 40 2 16 0.20982897868919D+00 0.96649194205895D-16 + 3 40 2 16 0.37492435584405D+00 -0.52855700929720D-17 + 1 41 2 16 0.14117436603271D+02 -0.18682554214180D-16 + 2 41 2 16 -0.25536535365739D+02 0.11749504693919D-15 + 3 41 2 16 0.13709035226119D+02 0.23279470546055D-17 + 1 42 2 16 0.52165191449956D+00 -0.32368668279362D-16 + 2 42 2 16 -0.60975442156202D+00 -0.10974025173015D-15 + 3 42 2 16 0.43526276143987D+00 0.14554093194177D-17 + 1 43 2 16 0.83325922317389D+00 0.31075588307645D-16 + 2 43 2 16 0.10055228481423D+01 0.81520013036318D-16 + 3 43 2 16 0.37174795431058D-01 -0.64517856899547D-17 + 1 44 2 16 0.36482159917444D+00 -0.24916194481071D-17 + 2 44 2 16 -0.91736458850017D+00 0.19898559433379D-15 + 3 44 2 16 0.46614700581314D+00 0.32239663162310D-16 + 1 45 2 16 0.29686620036028D+00 0.57601977411267D-16 + 2 45 2 16 0.22912581400825D+00 0.65767225311808D-16 + 3 45 2 16 -0.32225879136919D+00 -0.42068862283259D-16 + 1 46 2 16 -0.17540967717463D+00 0.20789910904305D-16 + 2 46 2 16 0.53148809985973D+00 -0.24243276217688D-15 + 3 46 2 16 0.20826631690892D+00 0.10154688728154D-16 + 1 47 2 16 0.35059274663601D+00 0.56050464064586D-16 + 2 47 2 16 -0.62129055617945D+00 0.19503427609993D-16 + 3 47 2 16 0.23675050006732D+00 -0.15422748032414D-17 + 1 48 2 16 0.12748485259548D+01 0.99315884859904D-16 + 2 48 2 16 0.28933820724064D+01 -0.95700080283750D-16 + 3 48 2 16 -0.10021922192644D+01 -0.28980831299793D-16 + 1 49 2 16 -0.14160356266369D+01 0.13623771937533D-16 + 2 49 2 16 0.30102194717558D+01 -0.10832402728533D-15 + 3 49 2 16 -0.14307103494987D+01 -0.35738018511633D-16 + 1 50 2 16 -0.27447155986465D-01 -0.37373768599338D-16 + 2 50 2 16 0.12432638468928D+01 0.24551113511462D-16 + 3 50 2 16 0.10691912141849D+01 -0.32476357968744D-16 + 1 51 2 16 -0.93528066163421D-01 -0.58001342301727D-16 + 2 51 2 16 0.54598954673187D-01 0.32114272012153D-16 + 3 51 2 16 -0.15415690230454D+00 -0.32678318938986D-16 + 1 52 2 16 0.16276630588903D+01 -0.39974924896928D-16 + 2 52 2 16 0.28299399254470D+01 -0.31678226080664D-16 + 3 52 2 16 0.14062279707536D+01 0.19619872658361D-18 + 1 53 2 16 -0.12509741864495D+01 0.15836008989447D-16 + 2 53 2 16 0.31297097965360D+01 -0.42900634611758D-16 + 3 53 2 16 0.11229219114031D+01 -0.26990506235819D-16 + 1 54 2 16 0.16758652877981D+00 -0.68447323456406D-16 + 2 54 2 16 0.92045836170672D-01 -0.12944928671135D-15 + 3 54 2 16 0.19848275994538D+00 -0.11861670435450D-16 + 1 55 2 16 -0.21515632650469D+00 -0.16587852023587D-16 + 2 55 2 16 0.10115026623173D+00 -0.17928283683441D-15 + 3 55 2 16 -0.56988572847704D-01 -0.18689132926979D-16 + 1 56 2 16 -0.14835666597383D+02 0.26559480846677D-16 + 2 56 2 16 -0.26885952984624D+02 -0.93763562564373D-16 + 3 56 2 16 0.18445644366106D+02 0.55347428226493D-17 + 1 57 2 16 0.35239402038778D+00 0.53581132677846D-17 + 2 57 2 16 0.19045136784063D+00 0.11806395032183D-15 + 3 57 2 16 0.29567997302834D+00 0.13056417643669D-16 + 1 58 2 16 -0.23104945061832D+00 -0.37770620733040D-16 + 2 58 2 16 0.27420601099827D+00 -0.11163369938560D-15 + 3 58 2 16 -0.16842214387476D+00 0.47045790940733D-17 + 1 59 2 16 -0.51547249503314D+00 0.20095773630532D-16 + 2 59 2 16 -0.51190641997774D+00 -0.64792548601053D-16 + 3 59 2 16 0.59930329214815D+00 0.13136036863711D-16 + 1 60 2 16 0.17548457128179D+00 -0.15812968330300D-16 + 2 60 2 16 0.31305621381453D-01 -0.12016007583188D-15 + 3 60 2 16 -0.18019124741021D+00 0.11748691071220D-16 + 1 61 2 16 -0.45618244863945D+00 -0.71217046396129D-17 + 2 61 2 16 -0.80735361833169D+00 -0.11364329931700D-15 + 3 61 2 16 0.47710773077174D+00 0.30248519913364D-16 + 1 62 2 16 -0.51417559201220D+00 -0.68235604676184D-17 + 2 62 2 16 -0.37756417728969D+00 0.60495294500130D-17 + 3 62 2 16 0.69117859893013D+00 0.47013308570457D-16 + 1 63 2 16 -0.84150502029024D-02 -0.34284826677775D-17 + 2 63 2 16 0.29520040261450D+00 0.10780112054554D-15 + 3 63 2 16 -0.18427734937985D-01 0.12744676981289D-16 + 1 64 2 16 -0.93420599972251D-01 -0.32042226357167D-17 + 2 64 2 16 -0.31385696791190D+00 -0.39983451050586D-16 + 3 64 2 16 0.62265338893122D-01 0.48103934720420D-17 + 1 65 2 16 -0.93202794916049D+00 0.47112126748711D-16 + 2 65 2 16 -0.84622544378206D+00 -0.26571760987317D-15 + 3 65 2 16 -0.82400616371947D+00 0.16896155075324D-16 + 1 1 3 16 0.12828034165548D+01 0.22428186855840D-17 + 2 1 3 16 0.28992922123548D+01 -0.24759589230238D-17 + 3 1 3 16 -0.28512247146025D+01 -0.25477741221781D-15 + 1 2 3 16 0.12999869291335D+01 -0.17289841236528D-16 + 2 2 3 16 -0.34661093519879D+01 -0.51567938358961D-17 + 3 2 3 16 -0.31939237968509D+01 0.57273300667145D-17 + 1 3 3 16 -0.14257686930433D+01 -0.55174420958538D-17 + 2 3 3 16 -0.28968247934280D+01 -0.15308425643924D-17 + 3 3 3 16 -0.31083248747394D+01 0.15772333734084D-15 + 1 4 3 16 -0.14258506103839D+01 -0.22016257074588D-16 + 2 4 3 16 0.32724273548708D+01 -0.22353405996429D-18 + 3 4 3 16 -0.32389323475908D+01 -0.25271159013781D-15 + 1 5 3 16 -0.62056743571407D-02 -0.33338819199972D-16 + 2 5 3 16 -0.87950895163831D+00 -0.61855720150373D-18 + 3 5 3 16 0.81365140915615D+00 0.12228635790339D-15 + 1 6 3 16 0.34258093331190D-01 -0.23810138357992D-16 + 2 6 3 16 0.49290147573130D-01 0.16422807791146D-17 + 3 6 3 16 -0.23088084729193D+00 -0.50898753829922D-16 + 1 7 3 16 -0.46389530140498D-01 -0.23560062099397D-16 + 2 7 3 16 0.16359920195150D+00 -0.43165252367237D-18 + 3 7 3 16 -0.19250859648881D+00 0.26496890644569D-16 + 1 8 3 16 -0.10356308707007D+00 0.23083769464471D-16 + 2 8 3 16 -0.59446261974187D-01 -0.11674622958693D-18 + 3 8 3 16 -0.28160457200432D+00 0.46787898714116D-16 + 1 9 3 16 -0.17278320948681D+02 0.23375406122163D-16 + 2 9 3 16 -0.17169565845266D+02 -0.47185929694469D-17 + 3 9 3 16 -0.28264641631261D+02 -0.42270193716413D-16 + 1 10 3 16 -0.25324393959624D+00 0.99566123235060D-17 + 2 10 3 16 -0.30571700086028D+00 -0.23698984780420D-16 + 3 10 3 16 0.41290445257319D+00 -0.26168385427665D-17 + 1 11 3 16 0.34648445227572D+00 -0.37335692771115D-16 + 2 11 3 16 -0.32110494697043D+00 -0.28402644840893D-16 + 3 11 3 16 0.14062091422055D+00 0.53594816814896D-16 + 1 12 3 16 -0.36425031176629D+00 0.31452378421413D-16 + 2 12 3 16 -0.38152268192089D+00 0.70551881040777D-19 + 3 12 3 16 -0.44110165423260D+00 -0.29269815979304D-16 + 1 13 3 16 -0.33570155248114D+00 -0.14873834627159D-16 + 2 13 3 16 0.34888369564761D+00 -0.22118964120787D-16 + 3 13 3 16 0.15800405882501D+00 -0.55248712470409D-16 + 1 14 3 16 -0.45850944608783D+00 0.95074563557414D-17 + 2 14 3 16 -0.49702776924908D+00 -0.21201020386522D-16 + 3 14 3 16 -0.36210767937223D+00 -0.79730607576463D-16 + 1 15 3 16 -0.24465386896980D-01 0.15529559720163D-16 + 2 15 3 16 -0.33216969269469D-01 -0.22071623213753D-16 + 3 15 3 16 0.24725792597649D+00 -0.96082286304811D-16 + 1 16 3 16 0.10712478210705D+01 0.00000000000000D+00 + 2 16 3 16 0.62995371830229D+00 0.00000000000000D+00 + 3 16 3 16 0.12361603940764D+03 0.00000000000000D+00 + 1 17 3 16 -0.31754131344396D-01 -0.35025508617902D-17 + 2 17 3 16 -0.17871430495605D-01 0.21568043879369D-17 + 3 17 3 16 -0.38525272769520D+00 0.23775522523032D-17 + 1 18 3 16 0.20095775691119D-01 0.00000000000000D+00 + 2 18 3 16 0.63860397410480D-01 0.65706931365155D-17 + 3 18 3 16 -0.29997582769305D+00 -0.40048280270357D-18 + 1 19 3 16 0.19346501631644D-01 -0.21421028745025D-18 + 2 19 3 16 0.31054074968654D-02 0.23387473848692D-17 + 3 19 3 16 0.14254411493812D+00 0.15697754834492D-16 + 1 20 3 16 0.24461857082303D-02 -0.12723090354911D-17 + 2 20 3 16 -0.34358997781744D-01 -0.14587789752561D-17 + 3 20 3 16 -0.20671006593297D+00 -0.23297768631185D-17 + 1 21 3 16 -0.50187471622124D-01 0.41268393302723D-19 + 2 21 3 16 -0.50182227588190D-01 0.30429580089441D-18 + 3 21 3 16 -0.67269915365607D-01 0.39958319367071D-17 + 1 22 3 16 0.94007595960456D-02 -0.30569295055625D-17 + 2 22 3 16 0.12637881894937D+01 0.15284895588253D-16 + 3 22 3 16 0.62991047216480D-01 0.38771585253807D-17 + 1 23 3 16 -0.50822928074397D-01 -0.20971609025591D-18 + 2 23 3 16 0.12262395208868D-01 0.61881402054007D-18 + 3 23 3 16 -0.84272004536127D-01 0.10018810917093D-17 + 1 24 3 16 0.38269152990933D+00 0.13101798756721D-16 + 2 24 3 16 -0.32807006299278D+00 -0.35539252053731D-16 + 3 24 3 16 0.66408895613076D+00 0.10545488984993D-15 + 1 25 3 16 0.13752406199400D+02 -0.53802050109042D-16 + 2 25 3 16 -0.14890393670092D+02 0.18460417601012D-16 + 3 25 3 16 -0.25987538274335D+02 0.99926126848181D-16 + 1 26 3 16 0.47848284343538D+00 0.17590359588508D-16 + 2 26 3 16 -0.48351314694592D+00 0.62461150402008D-17 + 3 26 3 16 -0.42400915340020D+00 0.10802763926588D-15 + 1 27 3 16 -0.27657730932818D+00 -0.75509100127083D-16 + 2 27 3 16 -0.13763729246427D+00 0.11331293410167D-15 + 3 27 3 16 0.16887509052892D+00 0.43594271699926D-16 + 1 28 3 16 0.29992653005333D+00 -0.36346510789832D-16 + 2 28 3 16 -0.34588094598481D+00 0.14673355846230D-16 + 3 28 3 16 -0.38401237108067D+00 -0.17311098498070D-15 + 1 29 3 16 0.30252389954020D+00 0.25650212566940D-16 + 2 29 3 16 0.28358065322037D+00 -0.51840646008027D-16 + 3 29 3 16 0.18304592510121D+00 0.21098375773469D-15 + 1 30 3 16 -0.53470638894187D-01 -0.29425255571822D-16 + 2 30 3 16 -0.38181601510458D-01 -0.25000117793958D-16 + 3 30 3 16 0.20857800944944D+00 -0.51164082378054D-16 + 1 31 3 16 0.47241760155952D+00 0.14920147616448D-16 + 2 31 3 16 -0.44706759951065D+00 -0.30771380859472D-16 + 3 31 3 16 -0.71530023363884D+00 -0.49401056247433D-16 + 1 32 3 16 -0.14435244257965D+01 0.20117910988296D-16 + 2 32 3 16 -0.29658009543567D+01 -0.10247650543341D-15 + 3 32 3 16 0.96910325492598D+00 0.26293701807703D-16 + 1 33 3 16 -0.10774984940747D-01 0.26028218288544D-16 + 2 33 3 16 -0.15189491883038D+00 0.17169724051663D-16 + 3 33 3 16 0.67229337897273D-01 0.88171706875995D-16 + 1 34 3 16 0.13678659944496D+01 -0.49910026559646D-17 + 2 34 3 16 -0.13483055546319D+01 -0.29366538289386D-17 + 3 34 3 16 0.29632774936015D+01 0.32325121720879D-16 + 1 35 3 16 0.70206638076878D-01 0.92084451944098D-16 + 2 35 3 16 -0.47616311444369D-01 -0.39627046990174D-17 + 3 35 3 16 -0.19811576467608D-01 0.14930006004550D-16 + 1 36 3 16 -0.13078588463868D+01 -0.98910205531358D-16 + 2 36 3 16 0.12509767681806D+01 0.98304195902638D-16 + 3 36 3 16 0.30062117777568D+01 0.21446138530940D-16 + 1 37 3 16 -0.25898368449814D+00 0.39042713900760D-17 + 2 37 3 16 -0.27412291065955D-01 0.49609501015790D-16 + 3 37 3 16 0.10115026623173D+00 -0.13918625669894D-16 + 1 38 3 16 0.12574855522480D+01 0.67646016570565D-16 + 2 38 3 16 0.12650830491787D+01 0.95133408410035D-16 + 3 38 3 16 0.30927109131092D+01 -0.49951199452171D-17 + 1 39 3 16 0.10752394562336D+00 -0.17301579425838D-16 + 2 39 3 16 0.12617294084810D+00 -0.71688466454425D-16 + 3 39 3 16 -0.11931947826558D-01 0.46971522264694D-16 + 1 40 3 16 -0.27707858760759D+00 0.26358334607642D-16 + 2 40 3 16 0.34701699078133D+00 -0.52855700929720D-17 + 3 40 3 16 0.58598536914088D+00 0.12761401353692D-15 + 1 41 3 16 -0.14657072719821D+02 0.20199945636797D-16 + 2 41 3 16 0.13670665622604D+02 0.23279470546055D-17 + 3 41 3 16 -0.25763641485448D+02 0.14645567754873D-16 + 1 42 3 16 -0.28684620462767D+00 -0.53182445321013D-17 + 2 42 3 16 0.14952538593818D+00 0.14554093194177D-17 + 3 42 3 16 -0.85893846018721D-01 0.24230698512738D-15 + 1 43 3 16 0.78293220003703D+00 -0.96161326705836D-18 + 2 43 3 16 0.71273818903616D+00 -0.64517856899547D-17 + 3 43 3 16 -0.18536809697929D+00 0.11622578890867D-15 + 1 44 3 16 -0.50130163375714D+00 0.97851727264576D-18 + 2 44 3 16 0.44375316277967D+00 0.32239663162310D-16 + 3 44 3 16 -0.37587517196716D+00 -0.12226540936497D-15 + 1 45 3 16 -0.20300347704440D+00 0.23195725892545D-16 + 2 45 3 16 -0.27594970481658D+00 -0.42068862283259D-16 + 3 45 3 16 0.15727104241102D+00 -0.26980508144651D-15 + 1 46 3 16 -0.10458857416864D+00 -0.14391076739981D-16 + 2 46 3 16 0.24018265599630D+00 0.10154688728154D-16 + 3 46 3 16 0.37092861818659D+00 0.40384309002540D-16 + 1 47 3 16 -0.49922300162289D+00 -0.12435942654596D-16 + 2 47 3 16 0.76511502303098D-01 -0.15422748032414D-17 + 3 47 3 16 -0.87879839587781D+00 0.98361069822428D-16 + 1 48 3 16 0.28728526686265D+01 0.40173273708578D-19 + 2 48 3 16 0.13163110477181D+01 -0.28980831299793D-16 + 3 48 3 16 -0.28762227844451D+01 -0.24588410999526D-15 + 1 49 3 16 -0.31254481327735D+01 0.35328771802565D-17 + 2 49 3 16 0.12144881578438D+01 -0.35738018511633D-16 + 3 49 3 16 -0.30979715045097D+01 -0.29197360596289D-17 + 1 50 3 16 0.82013102129526D-01 -0.76196131612857D-17 + 2 50 3 16 0.93257181798683D+00 -0.32476357968744D-16 + 3 50 3 16 0.62293770665093D+00 -0.20809017425588D-15 + 1 51 3 16 0.89658032623899D-01 0.34223553092264D-17 + 2 51 3 16 0.10356682372427D+00 -0.32678318938986D-16 + 3 51 3 16 -0.21577894633812D+00 0.30374288458950D-17 + 1 52 3 16 -0.29337777170518D+01 -0.23173806824028D-17 + 2 52 3 16 -0.14062279707536D+01 0.19619872658361D-18 + 3 52 3 16 -0.29999172970670D+01 -0.14359643625869D-15 + 1 53 3 16 0.31446947372534D+01 -0.53253725242100D-17 + 2 53 3 16 -0.12966080702833D+01 -0.26990506235819D-16 + 3 53 3 16 -0.31976530388552D+01 -0.56584431140629D-16 + 1 54 3 16 0.69182942504180D-01 -0.15585265933736D-17 + 2 54 3 16 -0.10708464478094D-01 -0.11861670435450D-16 + 3 54 3 16 -0.15174463442924D+00 -0.10448253077717D-15 + 1 55 3 16 -0.19847109189108D+00 0.83332543693596D-18 + 2 55 3 16 0.27830676858509D-01 -0.18689132926979D-16 + 3 55 3 16 -0.42455260074796D+00 0.59913273557281D-16 + 1 56 3 16 0.16629379756977D+02 -0.13153877715662D-16 + 2 56 3 16 0.17524480964126D+02 0.55347428226493D-17 + 3 56 3 16 -0.27760819090572D+02 -0.27051146628202D-15 + 1 57 3 16 0.29022933731613D+00 0.86599308904574D-17 + 2 57 3 16 0.21799906534148D+00 0.13056417643669D-16 + 3 57 3 16 0.53072023251011D+00 -0.20749115994855D-15 + 1 58 3 16 -0.37197994347042D+00 -0.24494854886090D-16 + 2 58 3 16 0.26868741007230D+00 0.47045790940733D-17 + 3 58 3 16 0.12834338893619D+00 0.22334656865892D-15 + 1 59 3 16 0.59936482346721D+00 -0.54464290520418D-17 + 2 59 3 16 0.61055482526110D+00 0.13136036863711D-16 + 3 59 3 16 -0.50047434236650D+00 -0.20044405786310D-15 + 1 60 3 16 0.35986694257036D+00 -0.13817624306938D-16 + 2 60 3 16 -0.30197170554672D+00 0.11748691071220D-16 + 3 60 3 16 0.10626880733348D+00 0.13589649286166D-15 + 1 61 3 16 0.50891363746347D+00 0.76845749964907D-17 + 2 61 3 16 0.48027594224421D+00 0.30248519913364D-16 + 3 61 3 16 -0.44735271654359D+00 0.52819684902825D-17 + 1 62 3 16 0.80045650826027D+00 -0.39632937652959D-16 + 2 62 3 16 0.68264261748262D+00 0.47013308570457D-16 + 3 62 3 16 -0.60193948425331D+00 -0.11236373432425D-15 + 1 63 3 16 -0.20626483504732D-02 -0.16427020739988D-16 + 2 63 3 16 0.54559282343330D-01 0.12744676981289D-16 + 3 63 3 16 0.29691473446176D+00 0.12683070653186D-15 + 1 64 3 16 0.22032006338685D+00 0.36588167955922D-16 + 2 64 3 16 0.17148999232231D+00 0.48103934720420D-17 + 3 64 3 16 0.12730033657658D+00 -0.19071201126856D-15 + 1 65 3 16 -0.62533824397712D+00 -0.91411409740554D-16 + 2 65 3 16 -0.25725218217314D+00 0.16896155075324D-16 + 3 65 3 16 0.12127492901125D+00 -0.34397304632016D-16 + 1 1 1 17 0.30824006681923D+01 0.25248548117808D-15 + 2 1 1 17 -0.12970359638530D+01 -0.88829876061579D-17 + 3 1 1 17 -0.12970359638530D+01 0.17179846894520D-16 + 1 2 1 17 0.31579413995749D+01 -0.92386095782948D-16 + 2 2 1 17 0.14258506103839D+01 0.26624970520941D-19 + 3 2 1 17 -0.14131179231745D+01 -0.30881508307447D-16 + 1 3 1 17 0.31579413995747D+01 -0.92620354792396D-16 + 2 3 1 17 -0.14131179231746D+01 -0.58859851088113D-17 + 3 3 1 17 0.14258506103839D+01 0.17253850513538D-16 + 1 4 1 17 0.31306774163660D+01 0.22493152485353D-15 + 2 4 1 17 0.12905059699577D+01 0.28143896795993D-17 + 3 4 1 17 0.12905059699577D+01 -0.18311959427112D-16 + 1 5 1 17 -0.36115044457183D-01 -0.41411346626304D-16 + 2 5 1 17 -0.18965285104181D+00 -0.15516219417033D-16 + 3 5 1 17 -0.18965285104181D+00 0.16781269707316D-16 + 1 6 1 17 -0.21972711183055D-01 -0.71649351511171D-16 + 2 6 1 17 0.10979845495590D+00 -0.30484056008021D-16 + 3 6 1 17 -0.11346762956114D+00 0.10355404759999D-16 + 1 7 1 17 -0.21972711183059D-01 0.32818775312994D-16 + 2 7 1 17 -0.11346762956114D+00 -0.19802628717325D-16 + 3 7 1 17 0.10979845495590D+00 0.21093244145714D-16 + 1 8 1 17 -0.34911139746882D-01 0.25278911994582D-15 + 2 8 1 17 0.93652105749602D-01 -0.34018268057629D-16 + 3 8 1 17 0.93652105749603D-01 0.17827318981224D-16 + 1 9 1 17 0.18496338576641D+00 0.17897289062909D-15 + 2 9 1 17 0.36852065360139D+00 0.34383705980767D-16 + 3 9 1 17 -0.31925795325274D+00 -0.21818991433418D-16 + 1 10 1 17 -0.26113137815758D+02 0.29157876915947D-15 + 2 10 1 17 -0.14088523839396D+02 -0.37776350217029D-16 + 3 10 1 17 -0.14086024959132D+02 0.11596671134516D-16 + 1 11 1 17 -0.85722144824224D+00 0.81489699133731D-16 + 2 11 1 17 -0.47494090843271D+00 0.27650683984802D-16 + 3 11 1 17 -0.47386017200006D+00 -0.32662975463885D-16 + 1 12 1 17 0.18496338576642D+00 -0.10594949246492D-16 + 2 12 1 17 -0.31950747315451D+00 -0.16167021875699D-17 + 3 12 1 17 0.36863095759641D+00 0.10722378660260D-15 + 1 13 1 17 -0.37889230900920D+00 0.10720490983008D-15 + 2 13 1 17 -0.46323176661819D+00 -0.23747597770684D-16 + 3 13 1 17 -0.47928982803675D+00 -0.18419036573577D-16 + 1 14 1 17 0.41824065550512D+00 0.16525086071319D-15 + 2 14 1 17 -0.27156071668577D+00 -0.29943187088003D-17 + 3 14 1 17 -0.27141212136988D+00 0.76936815199090D-16 + 1 15 1 17 -0.37889230900943D+00 -0.15812844988789D-15 + 2 15 1 17 -0.47950150971599D+00 0.17963806489165D-16 + 3 15 1 17 -0.46333199486231D+00 0.99720246958467D-17 + 1 16 1 17 -0.23816838007237D+00 0.70353054979538D-17 + 2 16 1 17 0.36501365675336D-02 -0.24050451166908D-17 + 3 16 1 17 -0.31754131344396D-01 0.35025508617902D-17 + 1 17 1 17 0.12143117983312D+03 0.00000000000000D+00 + 2 17 1 17 -0.44054760316661D+00 0.00000000000000D+00 + 3 17 1 17 -0.44054760316697D+00 0.00000000000000D+00 + 1 18 1 17 0.15680213486448D+01 -0.36725541528392D-17 + 2 18 1 17 0.52521091841467D-02 0.14072701079202D-17 + 3 18 1 17 0.52521091841385D-02 0.19648097557456D-18 + 1 19 1 17 -0.23816838007246D+00 -0.82516457372666D-17 + 2 19 1 17 -0.31754131344404D-01 -0.23237886913883D-17 + 3 19 1 17 0.36501365675269D-02 0.16966539629718D-18 + 1 20 1 17 -0.14651597359657D+00 -0.85757593890708D-18 + 2 20 1 17 -0.12570281290532D-01 0.45425307206972D-18 + 3 20 1 17 0.23926507485510D-01 -0.15702533151149D-17 + 1 21 1 17 -0.40592725268392D+00 0.36559656650444D-17 + 2 21 1 17 0.44494871188017D-02 -0.44683519636370D-18 + 3 21 1 17 0.44494871188016D-02 -0.90850693221685D-18 + 1 22 1 17 -0.79888593078686D-01 0.20468512670574D-16 + 2 22 1 17 -0.24064116261817D-01 -0.19387275478614D-16 + 3 22 1 17 -0.24064116261816D-01 0.36970496364028D-17 + 1 23 1 17 -0.14651597359657D+00 -0.32784254422149D-17 + 2 23 1 17 0.23926507485511D-01 0.45856844497170D-18 + 3 23 1 17 -0.12570281290532D-01 -0.14727016537185D-17 + 1 24 1 17 -0.27014966454727D+02 0.10367089583978D-15 + 2 24 1 17 0.14732387636065D+02 -0.13419881087972D-16 + 3 24 1 17 0.14732387636065D+02 -0.12245472029995D-16 + 1 25 1 17 0.16889592751831D+00 0.24543315703719D-15 + 2 25 1 17 -0.32422969088818D+00 -0.22398786876450D-16 + 3 25 1 17 0.25374530201724D+00 -0.11471805151210D-16 + 1 26 1 17 0.16889592751831D+00 -0.17505436539614D-15 + 2 26 1 17 0.25374530201724D+00 -0.10711757053332D-17 + 3 26 1 17 -0.32422969088818D+00 0.26409894540263D-16 + 1 27 1 17 -0.77575023094951D+00 -0.13912071606846D-15 + 2 27 1 17 0.50967449466852D+00 -0.54531240705735D-17 + 3 27 1 17 0.50967449466852D+00 -0.33260850242623D-16 + 1 28 1 17 0.57016707799584D+00 -0.53119305232881D-16 + 2 28 1 17 0.28159265728973D+00 -0.16069897839639D-16 + 3 28 1 17 0.28159265728973D+00 -0.26852075403957D-16 + 1 29 1 17 -0.33895793998500D+00 0.10541826120705D-15 + 2 29 1 17 0.46860018244849D+00 0.40253441674348D-16 + 3 29 1 17 0.44099543805919D+00 -0.13625548118201D-16 + 1 30 1 17 -0.33895793998525D+00 -0.11667650792733D-15 + 2 30 1 17 0.44099543805920D+00 0.18878193963737D-16 + 3 30 1 17 0.46860018244848D+00 0.11984218709761D-16 + 1 31 1 17 0.27094753380644D+00 -0.16760266278867D-15 + 2 31 1 17 0.26937884890204D-01 -0.12866797564001D-16 + 3 31 1 17 0.26937884890204D-01 0.22087978026742D-16 + 1 32 1 17 -0.19682298503713D+00 -0.52266710532679D-17 + 2 32 1 17 0.92961861660142D-01 0.76764352614552D-17 + 3 32 1 17 0.46363386037037D-01 0.65852872989884D-16 + 1 33 1 17 -0.30470853174333D+01 0.30603042492767D-15 + 2 33 1 17 -0.32224719826005D+01 -0.20588781393393D-17 + 3 33 1 17 0.12789009470737D+01 -0.10580119043757D-15 + 1 34 1 17 -0.23862176796400D+00 -0.16963634699161D-15 + 2 34 1 17 -0.82702315888194D-01 -0.11738224700927D-17 + 3 34 1 17 -0.99565345105371D-01 0.87801256021913D-16 + 1 35 1 17 -0.30954916382759D+01 0.13274359476846D-15 + 2 35 1 17 0.32179128749850D+01 0.74618656092771D-18 + 3 35 1 17 -0.12922970665964D+01 0.97286243089096D-16 + 1 36 1 17 -0.22648967574073D+00 -0.21738171572256D-15 + 2 36 1 17 -0.98827236061180D-01 0.21682908664649D-17 + 3 36 1 17 0.10378919577471D+00 0.59100094532781D-16 + 1 37 1 17 -0.30112724456127D+01 -0.21003502121407D-15 + 2 37 1 17 0.31446947372534D+01 -0.62657895708167D-18 + 3 37 1 17 0.12509741864495D+01 -0.10120480883549D-15 + 1 38 1 17 -0.23629068496629D+00 0.10650577596015D-15 + 2 38 1 17 0.99376337698373D-01 0.00000000000000D+00 + 3 38 1 17 -0.10752394562336D+00 0.27807601231463D-16 + 1 39 1 17 -0.30686193417767D+01 -0.22892231140498D-15 + 2 39 1 17 -0.31586765985263D+01 -0.16044713505836D-18 + 3 39 1 17 -0.12808301121852D+01 0.18133065407501D-16 + 1 40 1 17 -0.26326713723825D+02 -0.15578023228572D-15 + 2 40 1 17 0.14353000606928D+02 0.18286074966498D-16 + 3 40 1 17 -0.14705333028176D+02 0.56527746681868D-17 + 1 41 1 17 0.19346724068186D+00 -0.60281866042585D-16 + 2 41 1 17 -0.32903125202355D+00 -0.10223384156560D-16 + 3 41 1 17 -0.26040622557041D+00 0.40945062432313D-17 + 1 42 1 17 0.11542738827357D+00 0.27423489562879D-15 + 2 42 1 17 0.23882867257476D+00 0.22266132831510D-17 + 3 42 1 17 0.23038762429388D+00 -0.22214224448731D-16 + 1 43 1 17 -0.81083552164948D+00 -0.97819428870185D-16 + 2 43 1 17 0.57259088947737D+00 0.90873316491663D-17 + 3 43 1 17 -0.45818229504203D+00 -0.13061826707012D-16 + 1 44 1 17 0.52464302253744D+00 -0.16642591385097D-15 + 2 44 1 17 0.33179221431109D+00 -0.51997047154996D-17 + 3 44 1 17 -0.32051276862330D+00 0.43775918282554D-16 + 1 45 1 17 -0.37009599433221D+00 -0.22840024263847D-15 + 2 45 1 17 0.48491587255602D+00 -0.30687890322927D-18 + 3 45 1 17 -0.47002277043586D+00 -0.24578598488307D-16 + 1 46 1 17 -0.63312078461237D+00 0.19083819738433D-15 + 2 46 1 17 0.63253059845948D+00 0.11506547773850D-17 + 3 46 1 17 -0.28525463577358D+00 0.52915847133387D-17 + 1 47 1 17 0.23662232486672D+00 -0.16409553311108D-15 + 2 47 1 17 0.11555303207962D-01 0.68354380671636D-18 + 3 47 1 17 -0.31560473711001D-02 0.49157325358602D-17 + 1 48 1 17 -0.30470853174333D+01 -0.35078035067009D-17 + 2 48 1 17 0.12789009470737D+01 -0.77902896201043D-16 + 3 48 1 17 -0.32224719826005D+01 -0.36927071045522D-17 + 1 49 1 17 -0.30954916382760D+01 0.27227278197014D-15 + 2 49 1 17 -0.12922970665964D+01 0.36566270101386D-16 + 3 49 1 17 0.32179128749850D+01 -0.10999787677527D-17 + 1 50 1 17 -0.19682298503715D+00 0.11056759830387D-15 + 2 50 1 17 0.46363386037039D-01 -0.11970304807384D-17 + 3 50 1 17 0.92961861660142D-01 -0.24941193665810D-17 + 1 51 1 17 -0.23862176796400D+00 0.11223265665780D-15 + 2 51 1 17 -0.99565345105366D-01 -0.65290223941979D-16 + 3 51 1 17 -0.82702315888196D-01 -0.24881183362837D-19 + 1 52 1 17 -0.30112724456128D+01 0.17754462877474D-15 + 2 52 1 17 0.12509741864495D+01 0.66359669442224D-17 + 3 52 1 17 0.31446947372535D+01 0.59379674552568D-18 + 1 53 1 17 -0.30686193417766D+01 -0.22895160230266D-15 + 2 53 1 17 -0.12808301121852D+01 -0.19560490627481D-16 + 3 53 1 17 -0.31586765985263D+01 -0.18736437306914D-17 + 1 54 1 17 -0.22648967574072D+00 -0.24181426181495D-15 + 2 54 1 17 0.10378919577471D+00 0.18597505590120D-16 + 3 54 1 17 -0.98827236061190D-01 -0.16883746284398D-17 + 1 55 1 17 -0.23629068496630D+00 -0.19833458518847D-15 + 2 55 1 17 -0.10752394562335D+00 -0.28404345221500D-16 + 3 55 1 17 0.99376337698371D-01 0.21593873669971D-17 + 1 56 1 17 0.11542738827358D+00 -0.79796676121167D-16 + 2 56 1 17 0.23038762429388D+00 0.97951431238282D-17 + 3 56 1 17 0.23882867257476D+00 0.55690298093549D-16 + 1 57 1 17 -0.26326713723825D+02 -0.71239839239798D-16 + 2 57 1 17 -0.14705333028176D+02 -0.92536057389586D-17 + 3 57 1 17 0.14353000606928D+02 -0.35115463169657D-16 + 1 58 1 17 -0.81083552164948D+00 0.21225313484522D-17 + 2 58 1 17 -0.45818229504203D+00 -0.83957579069819D-17 + 3 58 1 17 0.57259088947737D+00 0.47551760447202D-17 + 1 59 1 17 0.19346724068185D+00 -0.17273617606866D-15 + 2 59 1 17 -0.26040622557041D+00 0.72222504312354D-17 + 3 59 1 17 -0.32903125202355D+00 0.95125405495001D-18 + 1 60 1 17 -0.63312078461237D+00 -0.23526093605214D-15 + 2 60 1 17 -0.28525463577358D+00 -0.17870098355405D-16 + 3 60 1 17 0.63253059845948D+00 0.35050578855593D-16 + 1 61 1 17 0.52464302253742D+00 0.17002363895541D-15 + 2 61 1 17 -0.32051276862330D+00 -0.22539912626973D-16 + 3 61 1 17 0.33179221431109D+00 -0.20968412602008D-16 + 1 62 1 17 0.23662232486672D+00 0.75307197245467D-16 + 2 62 1 17 -0.31560473711005D-02 0.16766736356734D-16 + 3 62 1 17 0.11555303207962D-01 -0.62889034186988D-16 + 1 63 1 17 -0.37009599433221D+00 0.39059687414087D-16 + 2 63 1 17 -0.47002277043587D+00 0.20023606479691D-16 + 3 63 1 17 0.48491587255602D+00 -0.13102959367503D-16 + 1 64 1 17 0.88500697922162D-01 -0.23567170806219D-15 + 2 64 1 17 -0.17348015532402D-01 0.38542502676561D-16 + 3 64 1 17 -0.18923029479717D-01 0.14778290430056D-16 + 1 65 1 17 0.12032606938284D+00 -0.13494897105940D-15 + 2 65 1 17 0.14446331097551D-01 -0.60034463112101D-16 + 3 65 1 17 0.14446331097553D-01 0.77168541594429D-16 + 1 1 2 17 0.14676609476163D+01 -0.88829876061579D-17 + 2 1 2 17 -0.31020751299927D+01 0.20100360678313D-15 + 3 1 2 17 -0.31423875954876D+01 0.19832915159909D-18 + 1 2 2 17 -0.11838219701199D+01 0.26624970520941D-19 + 2 2 2 17 -0.32389323475908D+01 -0.30883594745630D-15 + 3 2 2 17 0.32598618654775D+01 0.19121040569014D-17 + 1 3 2 17 0.11608650034962D+01 -0.58859851088113D-17 + 2 3 2 17 -0.29903000869573D+01 0.76945664179432D-15 + 3 3 2 17 0.32724273548708D+01 0.48682608798154D-18 + 1 4 2 17 -0.12905059699577D+01 0.28143896795993D-17 + 2 4 2 17 -0.31236535704691D+01 -0.10344763644839D-15 + 3 4 2 17 -0.32768449906018D+01 0.14484099629121D-17 + 1 5 2 17 0.14342087980576D-01 -0.15516219417033D-16 + 2 5 2 17 -0.28136420191462D+00 -0.11749912538867D-15 + 3 5 2 17 0.20782504841662D+00 -0.25739880200053D-17 + 1 6 2 17 -0.11243027226998D+00 -0.30484056008021D-16 + 2 6 2 17 -0.24801182769948D+00 -0.12280211671615D-15 + 3 6 2 17 -0.94812845415095D-01 -0.23453724395733D-18 + 1 7 2 17 0.98113074926450D-01 -0.19802628717325D-16 + 2 7 2 17 -0.22877355990031D+00 0.16079422656883D-15 + 3 7 2 17 -0.88531530517869D-01 -0.81238273408146D-19 + 1 8 2 17 -0.99917988628222D-01 -0.34018268057629D-16 + 2 8 2 17 -0.23199836150855D+00 -0.12392223564298D-15 + 3 8 2 17 0.98841998568627D-01 -0.45130220945402D-18 + 1 9 2 17 0.37109140564484D+00 0.34383705980767D-16 + 2 9 2 17 0.18898296290152D+00 -0.38112237532900D-16 + 3 9 2 17 -0.31104234728638D+00 0.95282557747149D-16 + 1 10 2 17 -0.14125392133289D+02 -0.37776350217029D-16 + 2 10 2 17 -0.26113917060901D+02 0.48757796741148D-16 + 3 10 2 17 -0.13781556160135D+02 0.10769205955163D-16 + 1 11 2 17 -0.46753659802674D+00 0.27650683984802D-16 + 2 11 2 17 -0.36710398362790D+00 0.30005718184852D-16 + 3 11 2 17 -0.44471794370565D+00 0.23076938634820D-16 + 1 12 2 17 -0.30833421115943D+00 -0.16167021875699D-17 + 2 12 2 17 0.61690564411060D+00 -0.22882460223395D-15 + 3 12 2 17 -0.32853382357376D+00 0.10332908442578D-15 + 1 13 2 17 -0.46116872534589D+00 -0.23747597770684D-16 + 2 13 2 17 -0.83788531463359D+00 -0.14996571437462D-15 + 3 13 2 17 -0.48754355508730D+00 0.16221220304537D-16 + 1 14 2 17 -0.25161118007225D+00 -0.29943187088003D-17 + 2 14 2 17 0.18885545875531D+00 0.89008331312444D-16 + 3 14 2 17 0.30051062649133D+00 -0.29341974037618D-17 + 1 15 2 17 -0.47158531944064D+00 0.17963806489165D-16 + 2 15 2 17 -0.43255486659625D+00 -0.26369107417542D-17 + 3 15 2 17 -0.44647630976623D+00 0.46584389481629D-18 + 1 16 2 17 0.13933129234016D-02 -0.24050451166908D-17 + 2 16 2 17 -0.25609173438377D+00 -0.97923191854943D-17 + 3 16 2 17 -0.17871430495605D-01 -0.21568043879369D-17 + 1 17 2 17 -0.44054760316660D+00 0.00000000000000D+00 + 2 17 2 17 0.12122798321440D+03 0.00000000000000D+00 + 3 17 2 17 -0.76649767139076D+00 0.00000000000000D+00 + 1 18 2 17 -0.34565694143064D-01 0.14072701079202D-17 + 2 18 2 17 -0.14562371684377D+00 -0.14222326708110D-17 + 3 18 2 17 0.29389480393449D-01 0.23399775115876D-17 + 1 19 2 17 0.18366634266787D-02 -0.23237886913883D-17 + 2 19 2 17 -0.38525272769522D+00 0.24606371119573D-17 + 3 19 2 17 -0.27708198192499D-02 0.11800868917182D-17 + 1 20 2 17 0.78310784482451D-02 0.45425307206972D-18 + 2 20 2 17 0.15339790868766D+01 0.20566724058246D-17 + 3 20 2 17 -0.41533968157781D-01 -0.59950263126130D-18 + 1 21 2 17 -0.24069014812012D-02 -0.44683519636370D-18 + 2 21 2 17 -0.22329293722580D+00 -0.22388735538895D-17 + 3 21 2 17 0.31725157218817D-02 -0.26143330850400D-18 + 1 22 2 17 0.21521344319738D-01 -0.19387275478614D-16 + 2 22 2 17 0.40195590498099D-01 0.10144843744066D-16 + 3 22 2 17 -0.14872177932805D+00 0.17527171110340D-17 + 1 23 2 17 0.41467919487293D-01 0.45856844497170D-18 + 2 23 2 17 -0.19111969908325D+00 -0.72176203393532D-18 + 3 23 2 17 -0.11097588776132D-01 0.46875258077872D-18 + 1 24 2 17 0.14702714068196D+02 -0.13419881087972D-16 + 2 24 2 17 -0.26136043103733D+02 -0.70182840360616D-16 + 3 24 2 17 -0.14332308246567D+02 -0.36648630681870D-17 + 1 25 2 17 -0.29580210237062D+00 -0.22398786876450D-16 + 2 25 2 17 0.21055711069936D+00 0.15740199097795D-15 + 3 25 2 17 -0.29697315648480D+00 0.65853896672723D-16 + 1 26 2 17 0.21574548602397D+00 -0.10711757053332D-17 + 2 26 2 17 0.37222044862080D+00 0.22940241568003D-15 + 3 26 2 17 -0.26120958661627D+00 -0.14218779886019D-16 + 1 27 2 17 0.47477936449435D+00 -0.54531240705735D-17 + 2 27 2 17 -0.48229205645406D+00 0.87768171043956D-16 + 3 27 2 17 -0.57503662633799D+00 0.40596429683422D-17 + 1 28 2 17 0.31466521596142D+00 -0.16069897839639D-16 + 2 28 2 17 0.27473289303675D+00 0.33247788473153D-15 + 3 28 2 17 0.32049253750884D+00 -0.16120353544089D-16 + 1 29 2 17 0.47850355038478D+00 0.40253441674348D-16 + 2 29 2 17 -0.73242711028473D+00 0.15516469834511D-15 + 3 29 2 17 -0.47539775607859D+00 0.10709417195930D-16 + 1 30 2 17 0.46633448469613D+00 0.18878193963737D-16 + 2 30 2 17 -0.39782518419851D+00 -0.17593298997180D-15 + 3 30 2 17 -0.43357222992647D+00 -0.20791592084323D-16 + 1 31 2 17 0.71745259578828D-02 -0.12866797564001D-16 + 2 31 2 17 0.24073277920517D+00 -0.22839433960621D-15 + 3 31 2 17 -0.26434993805053D-01 0.10052656452732D-16 + 1 32 2 17 0.13436069301927D+00 0.76764352614552D-17 + 2 32 2 17 -0.36216127554279D+00 0.14054654200842D-15 + 3 32 2 17 -0.25060787165522D-01 -0.67927677920513D-16 + 1 33 2 17 -0.31172863636170D+01 -0.20588781393393D-17 + 2 33 2 17 -0.31198683632758D+01 0.14439223956224D-17 + 3 33 2 17 0.13535554609168D+01 -0.17132752685657D-16 + 1 34 2 17 -0.11390436163442D+00 -0.11738224700927D-17 + 2 34 2 17 -0.22618681439698D+00 -0.35955514195442D-16 + 3 34 2 17 0.80612052259492D-01 -0.40256815951311D-16 + 1 35 2 17 0.31872566408716D+01 0.74618656092771D-18 + 2 35 2 17 -0.31266544890534D+01 0.17204734045505D-15 + 3 35 2 17 0.13605572144011D+01 0.49492400080743D-16 + 1 36 2 17 -0.99937356912093D-01 0.21682908664649D-17 + 2 36 2 17 -0.24812961285717D+00 0.21010579264838D-15 + 3 36 2 17 -0.12016519405870D+00 -0.84951345846619D-16 + 1 37 2 17 0.32825700744195D+01 -0.62657895708167D-18 + 2 37 2 17 -0.31976530388552D+01 0.11330563877552D-16 + 3 37 2 17 -0.11229219114031D+01 0.20191584264840D-16 + 1 38 2 17 0.11720523352892D+00 0.00000000000000D+00 + 2 38 2 17 -0.20308108836415D+00 0.16259091362805D-15 + 3 38 2 17 -0.12617294084810D+00 0.68465896928899D-17 + 1 39 2 17 -0.31586765985263D+01 -0.16044713505836D-18 + 2 39 2 17 -0.30740777943507D+01 -0.18933833120272D-15 + 3 39 2 17 -0.13150463898993D+01 0.56289736950875D-16 + 1 40 2 17 0.14477059088582D+02 0.18286074966498D-16 + 2 40 2 17 -0.26293428596271D+02 0.64889333847315D-16 + 3 40 2 17 0.14444249625280D+02 -0.42330705324095D-17 + 1 41 2 17 -0.33125308076840D+00 -0.10223384156560D-16 + 2 41 2 17 0.17902564882348D+00 -0.31239294445685D-15 + 3 41 2 17 0.27558435795446D+00 0.29782286019881D-16 + 1 42 2 17 0.26119564154638D+00 0.22266132831510D-17 + 2 42 2 17 0.29163708009968D+00 0.52579740653369D-16 + 3 42 2 17 0.27476276805790D+00 -0.22789453757266D-16 + 1 43 2 17 0.54032163431438D+00 0.90873316491663D-17 + 2 43 2 17 -0.48945075687644D+00 0.26192949438979D-15 + 3 43 2 17 0.48522302031411D+00 -0.20950589669188D-16 + 1 44 2 17 0.34486761325058D+00 -0.51997047154996D-17 + 2 44 2 17 0.19316941103678D+00 0.13191729659713D-15 + 3 44 2 17 -0.32860218100948D+00 -0.58779395930579D-17 + 1 45 2 17 0.46559347373896D+00 -0.30687890322927D-18 + 2 45 2 17 -0.78547982018116D+00 0.26421846451006D-16 + 3 45 2 17 0.46924060623007D+00 0.65626365565846D-17 + 1 46 2 17 0.51528742791333D+00 0.11506547773850D-17 + 2 46 2 17 -0.50206812739809D+00 0.68171131849980D-16 + 3 46 2 17 0.49069469237906D+00 -0.28373732041953D-16 + 1 47 2 17 -0.11423776684105D-01 0.68354380671636D-18 + 2 47 2 17 0.27493805249823D+00 0.27984834398974D-16 + 3 47 2 17 -0.19573453759546D-01 0.24939405010735D-16 + 1 48 2 17 -0.13286275214552D+01 -0.77902896201043D-16 + 2 48 2 17 0.30490719621775D+01 0.13558244603400D-15 + 3 48 2 17 -0.13623457728179D+01 0.29985189263321D-16 + 1 49 2 17 0.12247732147474D+01 0.36566270101386D-16 + 2 49 2 17 0.31665669045345D+01 -0.17475120156134D-16 + 3 49 2 17 -0.12430520967716D+01 -0.11312358948174D-16 + 1 50 2 17 -0.12700528632820D+00 -0.11970304807384D-17 + 2 50 2 17 0.17901783548743D+00 0.27811479721443D-16 + 3 50 2 17 -0.20914673817793D-01 0.13898143913597D-16 + 1 51 2 17 0.86016099995370D-01 -0.65290223941979D-16 + 2 51 2 17 -0.18016648722801D-01 0.91998807604239D-16 + 3 51 2 17 -0.11218963836733D+00 -0.21927891915915D-16 + 1 52 2 17 -0.14136220409059D+01 0.66359669442224D-17 + 2 52 2 17 0.31297097965360D+01 -0.78047827394587D-16 + 3 52 2 17 0.12966080702833D+01 0.19926028734752D-16 + 1 53 2 17 0.12808301121852D+01 -0.19560490627481D-16 + 2 53 2 17 0.31445569949215D+01 0.64578380980976D-16 + 3 53 2 17 0.13148458615180D+01 0.12299401115227D-16 + 1 54 2 17 -0.87793578338512D-01 0.18597505590120D-16 + 2 54 2 17 -0.13044625834306D-02 0.33077358569386D-16 + 3 54 2 17 0.10609528741850D+00 -0.28433770721354D-16 + 1 55 2 17 0.10296464443796D+00 -0.28404345221500D-16 + 2 55 2 17 -0.11931947826560D-01 -0.50032992559914D-18 + 3 55 2 17 0.10250397564470D+00 -0.35713429995189D-16 + 1 56 2 17 0.17250536151423D+00 0.97951431238282D-17 + 2 56 2 17 0.15731667061841D+00 -0.30283573660145D-15 + 3 56 2 17 0.33313519872919D+00 -0.42352228355363D-16 + 1 57 2 17 -0.14678196712313D+02 -0.92536057389586D-17 + 2 57 2 17 -0.26673406555051D+02 0.57778640507804D-16 + 3 57 2 17 0.14299918188595D+02 -0.32407974273671D-16 + 1 58 2 17 -0.44096668991251D+00 -0.83957579069819D-17 + 2 58 2 17 -0.50913110257273D+00 0.15168265662200D-15 + 3 58 2 17 0.56817747023680D+00 0.15807998918174D-17 + 1 59 2 17 -0.29583507294684D+00 0.72222504312354D-17 + 2 59 2 17 0.45098802112202D+00 -0.50849391047163D-16 + 3 59 2 17 0.29820000814504D+00 0.10792324224532D-17 + 1 60 2 17 -0.44260789793588D+00 -0.17870098355405D-16 + 2 60 2 17 -0.79567018427530D+00 0.80350239196349D-17 + 3 60 2 17 0.46177411275870D+00 0.11922320177194D-16 + 1 61 2 17 -0.32135967168936D+00 -0.22539912626973D-16 + 2 61 2 17 0.17794304813893D+00 -0.15472639848015D-16 + 3 61 2 17 -0.34435770576832D+00 0.22966299525505D-16 + 1 62 2 17 0.94824085324151D-02 0.16766736356734D-16 + 2 62 2 17 0.29525495854003D+00 -0.63473654516243D-16 + 3 62 2 17 0.51697840507664D-01 0.28764045561128D-16 + 1 63 2 17 -0.45192755122546D+00 0.20023606479691D-16 + 2 63 2 17 -0.37052391080199D+00 0.95021440507908D-17 + 3 63 2 17 0.46488166323621D+00 -0.12483827245167D-16 + 1 64 2 17 -0.19333452705320D-01 0.38542502676561D-16 + 2 64 2 17 0.33772563371241D-01 -0.19702248118557D-15 + 3 64 2 17 -0.14162581672600D-01 0.24412907709299D-16 + 1 65 2 17 -0.64979964818782D-01 -0.60034463112101D-16 + 2 65 2 17 0.27114731353366D+00 0.63142753373235D-16 + 3 65 2 17 -0.77365666925798D-01 -0.74949389186219D-16 + 1 1 3 17 0.14676609476163D+01 0.17179846894520D-16 + 2 1 3 17 -0.31423875954876D+01 0.19832915159909D-18 + 3 1 3 17 -0.31020751299927D+01 0.23674918384544D-16 + 1 2 3 17 0.11608650034962D+01 -0.30881508307447D-16 + 2 2 3 17 0.32724273548708D+01 0.19121040569014D-17 + 3 2 3 17 -0.29903000869573D+01 -0.21686867813955D-15 + 1 3 3 17 -0.11838219701199D+01 0.17253850513538D-16 + 2 3 3 17 0.32598618654775D+01 0.48682608798154D-18 + 3 3 3 17 -0.32389323475908D+01 -0.26014228289816D-15 + 1 4 3 17 -0.12905059699577D+01 -0.18311959427112D-16 + 2 4 3 17 -0.32768449906018D+01 0.14484099629121D-17 + 3 4 3 17 -0.31236535704691D+01 0.57668097253563D-16 + 1 5 3 17 0.14342087980574D-01 0.16781269707316D-16 + 2 5 3 17 0.20782504841662D+00 -0.25739880200053D-17 + 3 5 3 17 -0.28136420191463D+00 0.32895077346600D-16 + 1 6 3 17 0.98113074926451D-01 0.10355404759999D-16 + 2 6 3 17 -0.88531530517870D-01 -0.23453724395733D-18 + 3 6 3 17 -0.22877355990030D+00 -0.18443123907508D-15 + 1 7 3 17 -0.11243027226998D+00 0.21093244145714D-16 + 2 7 3 17 -0.94812845415093D-01 -0.81238273408146D-19 + 3 7 3 17 -0.24801182769949D+00 0.24406330710338D-15 + 1 8 3 17 -0.99917988628226D-01 0.17827318981224D-16 + 2 8 3 17 0.98841998568627D-01 -0.45130220945402D-18 + 3 8 3 17 -0.23199836150855D+00 -0.19422350937757D-15 + 1 9 3 17 -0.30833421115931D+00 -0.21818991433418D-16 + 2 9 3 17 -0.32822659856300D+00 0.95282557747149D-16 + 3 9 3 17 0.61772233205188D+00 -0.92100912090057D-16 + 1 10 3 17 -0.14125392133289D+02 0.11596671134516D-16 + 2 10 3 17 -0.13783328285082D+02 0.10769205955163D-16 + 3 10 3 17 -0.26113781530201D+02 -0.15819949585313D-15 + 1 11 3 17 -0.46753659802675D+00 -0.32662975463885D-16 + 2 11 3 17 -0.44415925481134D+00 0.23076938634820D-16 + 3 11 3 17 -0.36753651542806D+00 -0.55595465591989D-16 + 1 12 3 17 0.37109140564483D+00 0.10722378660260D-15 + 2 12 3 17 -0.31080049433589D+00 0.10332908442578D-15 + 3 12 3 17 0.18886149498240D+00 -0.17658551092386D-16 + 1 13 3 17 -0.47158531944065D+00 -0.18419036573577D-16 + 2 13 3 17 -0.44676438578566D+00 0.16221220304537D-16 + 3 13 3 17 -0.43295774645818D+00 0.89272586390985D-16 + 1 14 3 17 -0.25161118007232D+00 0.76936815199090D-16 + 2 14 3 17 0.30025138851926D+00 -0.29341974037618D-17 + 3 14 3 17 0.18931625870339D+00 -0.11860298397975D-15 + 1 15 3 17 -0.46116872534589D+00 0.99720246958467D-17 + 2 15 3 17 -0.48737886495422D+00 0.46584389481629D-18 + 3 15 3 17 -0.83861054278828D+00 0.53159154981040D-16 + 1 16 3 17 0.18366634266787D-02 0.35025508617902D-17 + 2 16 3 17 -0.27708198192499D-02 -0.21568043879369D-17 + 3 16 3 17 -0.38525272769520D+00 -0.23775522523032D-17 + 1 17 3 17 -0.44054760316697D+00 0.00000000000000D+00 + 2 17 3 17 -0.76649767139076D+00 0.00000000000000D+00 + 3 17 3 17 0.12122798321440D+03 0.00000000000000D+00 + 1 18 3 17 -0.34565694143064D-01 0.19648097557456D-18 + 2 18 3 17 0.29389480393449D-01 0.23399775115876D-17 + 3 18 3 17 -0.14562371684376D+00 0.20864210026305D-17 + 1 19 3 17 0.13933129234015D-02 0.16966539629718D-18 + 2 19 3 17 -0.17871430495605D-01 0.11800868917182D-17 + 3 19 3 17 -0.25609173438377D+00 0.21775581975736D-18 + 1 20 3 17 0.41467919487292D-01 -0.15702533151149D-17 + 2 20 3 17 -0.11097588776132D-01 -0.59950263126130D-18 + 3 20 3 17 -0.19111969908325D+00 -0.26301612883718D-17 + 1 21 3 17 -0.24069014811969D-02 -0.90850693221685D-18 + 2 21 3 17 0.31725157218817D-02 -0.26143330850400D-18 + 3 21 3 17 -0.22329293722580D+00 0.30833669616775D-17 + 1 22 3 17 0.21521344319737D-01 0.36970496364028D-17 + 2 22 3 17 -0.14872177932805D+00 0.17527171110340D-17 + 3 22 3 17 0.40195590498098D-01 -0.82615691007869D-17 + 1 23 3 17 0.78310784482451D-02 -0.14727016537185D-17 + 2 23 3 17 -0.41533968157781D-01 0.46875258077872D-18 + 3 23 3 17 0.15339790868766D+01 -0.36253056606334D-17 + 1 24 3 17 0.14702714068196D+02 -0.12245472029995D-16 + 2 24 3 17 -0.14332308246567D+02 -0.36648630681870D-17 + 3 24 3 17 -0.26136043103733D+02 0.22666595310225D-15 + 1 25 3 17 0.21574548602409D+00 -0.11471805151210D-16 + 2 25 3 17 -0.26120958661627D+00 0.65853896672723D-16 + 3 25 3 17 0.37222044862080D+00 -0.17561578160424D-15 + 1 26 3 17 -0.29580210237061D+00 0.26409894540263D-16 + 2 26 3 17 -0.29697315648480D+00 -0.14218779886019D-16 + 3 26 3 17 0.21055711069936D+00 -0.25507316680870D-16 + 1 27 3 17 0.47477936449437D+00 -0.33260850242623D-16 + 2 27 3 17 -0.57503662633799D+00 0.40596429683422D-17 + 3 27 3 17 -0.48229205645406D+00 -0.27739231329586D-16 + 1 28 3 17 0.31466521596143D+00 -0.26852075403957D-16 + 2 28 3 17 0.32049253750884D+00 -0.16120353544089D-16 + 3 28 3 17 0.27473289303675D+00 0.28487228973296D-15 + 1 29 3 17 0.46633448469616D+00 -0.13625548118201D-16 + 2 29 3 17 -0.43357222992647D+00 0.10709417195930D-16 + 3 29 3 17 -0.39782518419851D+00 -0.27169311186161D-15 + 1 30 3 17 0.47850355038475D+00 0.11984218709761D-16 + 2 30 3 17 -0.47539775607859D+00 -0.20791592084323D-16 + 3 30 3 17 -0.73242711028473D+00 -0.88916393021571D-16 + 1 31 3 17 0.71745259578770D-02 0.22087978026742D-16 + 2 31 3 17 -0.26434993805053D-01 0.10052656452732D-16 + 3 31 3 17 0.24073277920517D+00 0.10940147990203D-15 + 1 32 3 17 -0.12700528632818D+00 0.65852872989884D-16 + 2 32 3 17 -0.20914673817797D-01 -0.67927677920513D-16 + 3 32 3 17 0.17901783548744D+00 0.72512652142212D-16 + 1 33 3 17 -0.13286275214552D+01 -0.10580119043757D-15 + 2 33 3 17 -0.13623457728179D+01 -0.17132752685657D-16 + 3 33 3 17 0.30490719621776D+01 -0.47920533888279D-16 + 1 34 3 17 0.86016099995365D-01 0.87801256021913D-16 + 2 34 3 17 -0.11218963836733D+00 -0.40256815951311D-16 + 3 34 3 17 -0.18016648722810D-01 0.35217323701762D-16 + 1 35 3 17 0.12247732147474D+01 0.97286243089096D-16 + 2 35 3 17 -0.12430520967716D+01 0.49492400080743D-16 + 3 35 3 17 0.31665669045344D+01 0.62471105902519D-17 + 1 36 3 17 -0.87793578338515D-01 0.59100094532781D-16 + 2 36 3 17 0.10609528741850D+00 -0.84951345846619D-16 + 3 36 3 17 -0.13044625834288D-02 0.22205380462101D-16 + 1 37 3 17 -0.14136220409059D+01 -0.10120480883549D-15 + 2 37 3 17 0.12966080702833D+01 0.20191584264840D-16 + 3 37 3 17 0.31297097965360D+01 -0.26043613816439D-16 + 1 38 3 17 0.10296464443796D+00 0.27807601231463D-16 + 2 38 3 17 0.10250397564470D+00 0.68465896928899D-17 + 3 38 3 17 -0.11931947826560D-01 -0.68360675618167D-16 + 1 39 3 17 0.12808301121852D+01 0.18133065407501D-16 + 2 39 3 17 0.13150463898993D+01 0.56289736950875D-16 + 3 39 3 17 0.31445569949214D+01 -0.38139767301656D-16 + 1 40 3 17 -0.14678196712313D+02 0.56527746681868D-17 + 2 40 3 17 0.14299918188594D+02 -0.42330705324095D-17 + 3 40 3 17 -0.26673406555051D+02 -0.18241849878655D-15 + 1 41 3 17 -0.29583507294684D+00 0.40945062432313D-17 + 2 41 3 17 0.29820000814503D+00 0.29782286019881D-16 + 3 41 3 17 0.45098802112201D+00 0.68870664778187D-15 + 1 42 3 17 0.17250536151423D+00 -0.22214224448731D-16 + 2 42 3 17 0.33313519872919D+00 -0.22789453757266D-16 + 3 42 3 17 0.15731667061841D+00 0.20862756379569D-15 + 1 43 3 17 -0.44096668991251D+00 -0.13061826707012D-16 + 2 43 3 17 0.56817747023680D+00 -0.20950589669188D-16 + 3 43 3 17 -0.50913110257273D+00 -0.14564526744565D-15 + 1 44 3 17 -0.32135967168936D+00 0.43775918282554D-16 + 2 44 3 17 -0.34435770576832D+00 -0.58779395930579D-17 + 3 44 3 17 0.17794304813893D+00 0.12606568202727D-15 + 1 45 3 17 -0.45192755122545D+00 -0.24578598488307D-16 + 2 45 3 17 0.46488166323621D+00 0.65626365565846D-17 + 3 45 3 17 -0.37052391080199D+00 0.34124212294168D-16 + 1 46 3 17 -0.44260789793588D+00 0.52915847133387D-17 + 2 46 3 17 0.46177411275870D+00 -0.28373732041953D-16 + 3 46 3 17 -0.79567018427530D+00 -0.11038285734704D-15 + 1 47 3 17 0.94824085324155D-02 0.49157325358602D-17 + 2 47 3 17 0.51697840507665D-01 0.24939405010735D-16 + 3 47 3 17 0.29525495854004D+00 -0.45583486992445D-16 + 1 48 3 17 -0.31172863636170D+01 -0.36927071045522D-17 + 2 48 3 17 0.13535554609168D+01 0.29985189263321D-16 + 3 48 3 17 -0.31198683632758D+01 0.15087013157301D-15 + 1 49 3 17 0.31872566408720D+01 -0.10999787677527D-17 + 2 49 3 17 0.13605572144011D+01 -0.11312358948174D-16 + 3 49 3 17 -0.31266544890534D+01 -0.15844339195636D-15 + 1 50 3 17 0.13436069301924D+00 -0.24941193665810D-17 + 2 50 3 17 -0.25060787165518D-01 0.13898143913597D-16 + 3 50 3 17 -0.36216127554279D+00 0.59672795976597D-16 + 1 51 3 17 -0.11390436163443D+00 -0.24881183362837D-19 + 2 51 3 17 0.80612052259489D-01 -0.21927891915915D-16 + 3 51 3 17 -0.22618681439698D+00 0.42355065753034D-16 + 1 52 3 17 0.32825700744194D+01 0.59379674552568D-18 + 2 52 3 17 -0.11229219114031D+01 0.19926028734752D-16 + 3 52 3 17 -0.31976530388552D+01 0.92469788422986D-16 + 1 53 3 17 -0.31586765985263D+01 -0.18736437306914D-17 + 2 53 3 17 -0.13148458615180D+01 0.12299401115227D-16 + 3 53 3 17 -0.30740777943507D+01 -0.52515117015110D-16 + 1 54 3 17 -0.99937356912094D-01 -0.16883746284398D-17 + 2 54 3 17 -0.12016519405870D+00 -0.28433770721354D-16 + 3 54 3 17 -0.24812961285717D+00 -0.32702112960599D-16 + 1 55 3 17 0.11720523352892D+00 0.21593873669971D-17 + 2 55 3 17 -0.12617294084810D+00 -0.35713429995189D-16 + 3 55 3 17 -0.20308108836415D+00 -0.37772829282998D-16 + 1 56 3 17 0.26119564154638D+00 0.55690298093549D-16 + 2 56 3 17 0.27476276805790D+00 -0.42352228355363D-16 + 3 56 3 17 0.29163708009968D+00 0.24199121068976D-15 + 1 57 3 17 0.14477059088582D+02 -0.35115463169657D-16 + 2 57 3 17 0.14444249625280D+02 -0.32407974273671D-16 + 3 57 3 17 -0.26293428596271D+02 0.10679635473241D-15 + 1 58 3 17 0.54032163431438D+00 0.47551760447202D-17 + 2 58 3 17 0.48522302031411D+00 0.15807998918174D-17 + 3 58 3 17 -0.48945075687645D+00 -0.31989594976585D-16 + 1 59 3 17 -0.33125308076840D+00 0.95125405495001D-18 + 2 59 3 17 0.27558435795446D+00 0.10792324224532D-17 + 3 59 3 17 0.17902564882348D+00 -0.26864008248233D-15 + 1 60 3 17 0.51528742791333D+00 0.35050578855593D-16 + 2 60 3 17 0.49069469237906D+00 0.11922320177194D-16 + 3 60 3 17 -0.50206812739809D+00 0.13955736339942D-15 + 1 61 3 17 0.34486761325057D+00 -0.20968412602008D-16 + 2 61 3 17 -0.32860218100949D+00 0.22966299525505D-16 + 3 61 3 17 0.19316941103679D+00 0.38345064311729D-15 + 1 62 3 17 -0.11423776684105D-01 -0.62889034186988D-16 + 2 62 3 17 -0.19573453759546D-01 0.28764045561128D-16 + 3 62 3 17 0.27493805249823D+00 0.92835826410878D-16 + 1 63 3 17 0.46559347373896D+00 -0.13102959367503D-16 + 2 63 3 17 0.46924060623007D+00 -0.12483827245167D-16 + 3 63 3 17 -0.78547982018116D+00 0.20734321399496D-16 + 1 64 3 17 -0.19333452705324D-01 0.14778290430056D-16 + 2 64 3 17 -0.14717410392584D-01 0.24412907709299D-16 + 3 64 3 17 0.33286274453570D-01 0.39196594244791D-15 + 1 65 3 17 -0.64979964818738D-01 0.77168541594429D-16 + 2 65 3 17 -0.77365666925798D-01 -0.74949389186219D-16 + 3 65 3 17 0.27114731353366D+00 -0.84912235250297D-16 + 1 1 1 18 0.33172086175472D+01 -0.12344673587388D-15 + 2 1 1 18 0.12700720656505D+01 0.13685536231863D-16 + 3 1 1 18 0.12700720656505D+01 0.98254435774798D-17 + 1 2 1 18 0.30385091776969D+01 0.66257754107975D-17 + 2 2 1 18 -0.12828034165548D+01 -0.21185647131389D-16 + 3 2 1 18 0.12138580036775D+01 -0.33347073805570D-16 + 1 3 1 18 0.30385091776968D+01 0.22796723831343D-16 + 2 3 1 18 0.12138580036775D+01 -0.77129977551548D-17 + 3 3 1 18 -0.12828034165548D+01 -0.31831124898189D-16 + 1 4 1 18 0.30824006681923D+01 0.65058808705220D-16 + 2 4 1 18 -0.14676609476163D+01 -0.15264775827987D-16 + 3 4 1 18 -0.14676609476163D+01 -0.27810181665832D-17 + 1 5 1 18 -0.59361263754474D-01 -0.44837447928474D-16 + 2 5 1 18 0.13441851649688D+00 -0.30894839197478D-16 + 3 5 1 18 0.13441851649688D+00 0.17891381699679D-17 + 1 6 1 18 -0.19885450472417D-01 -0.12373629789144D-16 + 2 6 1 18 -0.11018956029346D+00 0.37274969310263D-16 + 3 6 1 18 0.54960985429206D-01 0.00000000000000D+00 + 1 7 1 18 -0.19885450472417D-01 -0.64899704426422D-17 + 2 7 1 18 0.54960985429206D-01 0.59933401758668D-17 + 3 7 1 18 -0.11018956029346D+00 -0.33129573022736D-16 + 1 8 1 18 0.49215479792286D-01 0.11625732361727D-16 + 2 8 1 18 -0.11676445661642D+00 -0.34171290669337D-16 + 3 8 1 18 -0.11676445661642D+00 0.26663846768951D-16 + 1 9 1 18 0.27072631859927D+00 0.33424072467704D-16 + 2 9 1 18 -0.31256048530873D+00 0.18906324469563D-16 + 3 9 1 18 0.30352078099334D+00 -0.35661933813663D-16 + 1 10 1 18 -0.79488159831362D+00 0.60736778763927D-16 + 2 10 1 18 -0.44288349858365D+00 -0.19080994487414D-17 + 3 10 1 18 -0.44289771937658D+00 0.20395594176642D-16 + 1 11 1 18 -0.26004761419978D+02 -0.11047873288916D-15 + 2 11 1 18 -0.13679662289396D+02 -0.48109944452722D-19 + 3 11 1 18 -0.13680820868451D+02 -0.19580864522661D-16 + 1 12 1 18 0.27072631859939D+00 0.12530665321988D-15 + 2 12 1 18 0.30357372278450D+00 -0.23891708774307D-16 + 3 12 1 18 -0.31256916911060D+00 0.14888863609799D-16 + 1 13 1 18 -0.36415063882429D+00 0.20338571318674D-15 + 2 13 1 18 -0.38442718384615D+00 0.72017505831201D-17 + 3 13 1 18 -0.50396362191663D+00 0.93463473422231D-17 + 1 14 1 18 0.28943709331820D+00 0.10783597407635D-15 + 2 14 1 18 -0.14634507613355D-01 -0.40497965703553D-16 + 3 14 1 18 -0.14630111665334D-01 -0.72032521648689D-16 + 1 15 1 18 -0.36415063882438D+00 0.16181013118796D-16 + 2 15 1 18 -0.50513314278052D+00 0.21488985223504D-17 + 3 15 1 18 -0.38417593010425D+00 -0.10626860589969D-16 + 1 16 1 18 -0.22583673303681D+00 -0.63927475401072D-17 + 2 16 1 18 0.80488204615406D-03 0.12845100142146D-18 + 3 16 1 18 0.20095775691119D-01 0.00000000000000D+00 + 1 17 1 18 0.15680213486448D+01 0.36725541528392D-17 + 2 17 1 18 -0.34565694143064D-01 -0.14072701079202D-17 + 3 17 1 18 -0.34565694143064D-01 -0.19648097557456D-18 + 1 18 1 18 0.11883582222689D+03 0.00000000000000D+00 + 2 18 1 18 -0.11926800466264D+01 0.00000000000000D+00 + 3 18 1 18 -0.11926800466260D+01 0.00000000000000D+00 + 1 19 1 18 -0.22583673303681D+00 0.67693685335863D-18 + 2 19 1 18 0.20095775691119D-01 -0.14148655979914D-18 + 3 19 1 18 0.80488204615412D-03 0.33994998676055D-18 + 1 20 1 18 -0.10369009279273D+00 0.26692435890942D-17 + 2 20 1 18 -0.13312149805395D-01 -0.73875501055057D-18 + 3 20 1 18 0.24861959050637D-01 -0.35039849697259D-17 + 1 21 1 18 -0.10055294059491D+00 -0.18251061872739D-18 + 2 21 1 18 -0.14934656076212D-01 0.47046092524052D-18 + 3 21 1 18 -0.14934656076212D-01 -0.50476313027329D-18 + 1 22 1 18 -0.40109275971453D+00 0.39398249861701D-16 + 2 22 1 18 0.68047619236458D-01 -0.15561157606334D-16 + 3 22 1 18 0.68047619236457D-01 -0.18240176268215D-16 + 1 23 1 18 -0.10369009279272D+00 0.63097089448557D-18 + 2 23 1 18 0.24861959050637D-01 0.10474065557851D-17 + 3 23 1 18 -0.13312149805398D-01 0.16480604745348D-17 + 1 24 1 18 -0.92453050901542D+00 0.71003115529893D-16 + 2 24 1 18 0.48877102561255D+00 -0.12686024535507D-16 + 3 24 1 18 0.48877102561255D+00 0.93194148823636D-16 + 1 25 1 18 0.21624829368054D+00 -0.19849615403985D-16 + 2 25 1 18 0.35721281861582D+00 0.19146730191041D-16 + 3 25 1 18 -0.28191177394063D+00 0.84530100251934D-17 + 1 26 1 18 0.21624829368056D+00 0.84714105269064D-16 + 2 26 1 18 -0.28191177394063D+00 -0.27324231998970D-16 + 3 26 1 18 0.35721281861582D+00 0.39982430348976D-16 + 1 27 1 18 -0.26831784449549D+02 0.13530367927393D-15 + 2 27 1 18 0.15395242367030D+02 -0.10643509027471D-16 + 3 27 1 18 0.15395242367030D+02 -0.15222527100516D-16 + 1 28 1 18 0.19865530001746D+00 -0.21419053623704D-15 + 2 28 1 18 0.61658131533779D-01 0.82215007641468D-17 + 3 28 1 18 0.61658131533780D-01 -0.36151199097115D-16 + 1 29 1 18 -0.23492183623369D+00 0.81158056585869D-16 + 2 29 1 18 0.52606372110214D+00 -0.12362204738622D-16 + 3 29 1 18 0.36290693780692D+00 0.40181928691106D-16 + 1 30 1 18 -0.23492183623364D+00 0.75492956425398D-16 + 2 30 1 18 0.36290693780692D+00 -0.19133995082048D-16 + 3 30 1 18 0.52606372110212D+00 -0.34505181165753D-16 + 1 31 1 18 0.45964836441715D+00 0.18069074638987D-15 + 2 31 1 18 0.43748335270101D+00 -0.24319912597352D-17 + 3 31 1 18 0.43748335270102D+00 0.33296117970556D-17 + 1 32 1 18 -0.30801803345459D+01 -0.87267099795356D-16 + 2 32 1 18 0.27304288889754D+01 -0.62480258633850D-18 + 3 32 1 18 -0.97182246126536D+00 -0.93179478968242D-16 + 1 33 1 18 -0.23467698998718D+00 -0.30539666185175D-15 + 2 33 1 18 -0.90300250886181D-01 -0.24902643019204D-17 + 3 33 1 18 -0.11471479398950D+00 -0.27399003877081D-16 + 1 34 1 18 -0.30031823137819D+01 0.21413585469980D-15 + 2 34 1 18 -0.33550916598139D+01 -0.50297206454085D-18 + 3 34 1 18 0.14068234245039D+01 -0.22405628450624D-15 + 1 35 1 18 -0.21730179390960D+00 0.84976303764744D-16 + 2 35 1 18 0.68866005259076D-01 -0.89249382799995D-19 + 3 35 1 18 0.13479536424726D+00 -0.98082948003903D-16 + 1 36 1 18 -0.30386599704316D+01 0.13620525057235D-15 + 2 36 1 18 -0.31989593194819D+01 -0.23962072611183D-17 + 3 36 1 18 -0.13681488651771D+01 -0.10255113482364D-15 + 1 37 1 18 -0.21100302837231D+00 -0.14118790673692D-15 + 2 37 1 18 0.69182942504180D-01 0.70101293422822D-18 + 3 37 1 18 -0.16758652877981D+00 -0.15339759779779D-16 + 1 38 1 18 -0.29694333512828D+01 0.22744373124045D-15 + 2 38 1 18 0.31565116753994D+01 0.86463281786974D-19 + 3 38 1 18 0.13078588463868D+01 -0.49633586872005D-16 + 1 39 1 18 -0.22648967574074D+00 -0.99645455611378D-17 + 2 39 1 18 -0.99937356912092D-01 -0.92961969235007D-18 + 3 39 1 18 0.87793578338517D-01 0.28845452688113D-17 + 1 40 1 18 -0.78592107040989D+00 0.10200749403928D-15 + 2 40 1 18 0.44525731202279D+00 0.96630249370229D-17 + 3 40 1 18 -0.47064181745670D+00 0.35962607962792D-16 + 1 41 1 18 0.20291562690678D+00 0.70774371711747D-17 + 2 41 1 18 0.26767530867152D+00 -0.38136400019131D-16 + 3 41 1 18 0.32023862973356D+00 0.12921447756048D-15 + 1 42 1 18 0.21582940437262D+00 0.70890541797322D-16 + 2 42 1 18 -0.28753091410638D+00 0.24836488828117D-16 + 3 42 1 18 -0.29934916374172D+00 0.11464421814436D-15 + 1 43 1 18 -0.24223590393392D+02 0.70010343580868D-16 + 2 43 1 18 0.12618695132517D+02 0.27707027571688D-16 + 3 43 1 18 -0.13901670395537D+02 0.40554702202307D-16 + 1 44 1 18 0.24369046204171D+00 0.15658655712009D-15 + 2 44 1 18 0.14456368115461D-01 -0.21319420924421D-17 + 3 44 1 18 -0.22552624962985D-01 -0.52085397902590D-16 + 1 45 1 18 -0.46736184534095D+00 0.49601038042293D-17 + 2 45 1 18 0.48216063573330D+00 0.12168265926161D-18 + 3 45 1 18 -0.45135257442485D+00 0.24076033000283D-16 + 1 46 1 18 -0.58364062511924D+00 -0.10135459231263D-15 + 2 46 1 18 0.45615503776575D+00 0.62278189455371D-17 + 3 46 1 18 -0.58941207799971D+00 0.16340600388501D-16 + 1 47 1 18 0.12148402283879D+00 -0.20655858948930D-15 + 2 47 1 18 0.20189496355114D+00 -0.42049922974501D-16 + 3 47 1 18 -0.16615110843061D+00 0.46398563570487D-16 + 1 48 1 18 -0.23467698998718D+00 -0.12167381567482D-15 + 2 48 1 18 -0.11471479398950D+00 0.43244502727802D-16 + 3 48 1 18 -0.90300250886181D-01 -0.16391087939291D-17 + 1 49 1 18 -0.21730179390958D+00 -0.15039353080804D-16 + 2 49 1 18 0.13479536424726D+00 -0.64686251685374D-16 + 3 49 1 18 0.68866005259069D-01 -0.10531185618820D-17 + 1 50 1 18 -0.30801803345459D+01 -0.19272751417749D-15 + 2 50 1 18 -0.97182246126537D+00 0.45125042331858D-17 + 3 50 1 18 0.27304288889754D+01 0.91115116742681D-17 + 1 51 1 18 -0.30031823137819D+01 0.20144249612988D-15 + 2 51 1 18 0.14068234245039D+01 -0.10062370655407D-15 + 3 51 1 18 -0.33550916598139D+01 0.21607203435668D-17 + 1 52 1 18 -0.21100302837231D+00 0.14464833637733D-15 + 2 52 1 18 -0.16758652877981D+00 0.23151465488304D-16 + 3 52 1 18 0.69182942504179D-01 0.26229650588344D-17 + 1 53 1 18 -0.22648967574073D+00 -0.23716059001902D-15 + 2 53 1 18 0.87793578338515D-01 0.11390046150035D-16 + 3 53 1 18 -0.99937356912092D-01 -0.12552906198002D-17 + 1 54 1 18 -0.30386599704316D+01 0.19471640100227D-15 + 2 54 1 18 -0.13681488651771D+01 0.25972097900086D-16 + 3 54 1 18 -0.31989593194819D+01 -0.43434267198003D-17 + 1 55 1 18 -0.29694333512828D+01 0.23644769715239D-15 + 2 55 1 18 0.13078588463868D+01 0.29010076913605D-16 + 3 55 1 18 0.31565116753994D+01 0.19280596579072D-17 + 1 56 1 18 0.21582940437262D+00 -0.16411488890035D-15 + 2 56 1 18 -0.29934916374171D+00 -0.21563039560158D-16 + 3 56 1 18 -0.28753091410638D+00 0.58017225116704D-16 + 1 57 1 18 -0.78592107040989D+00 0.38171481806412D-16 + 2 57 1 18 -0.47064181745670D+00 -0.10087554455212D-16 + 3 57 1 18 0.44525731202279D+00 0.88958754989260D-16 + 1 58 1 18 -0.24223590393392D+02 -0.67108793799220D-16 + 2 58 1 18 -0.13901670395536D+02 0.19321607717555D-16 + 3 58 1 18 0.12618695132517D+02 0.18802119835386D-16 + 1 59 1 18 0.20291562690677D+00 -0.28197454744894D-15 + 2 59 1 18 0.32023862973356D+00 -0.16879802742921D-16 + 3 59 1 18 0.26767530867153D+00 0.49746238024485D-17 + 1 60 1 18 -0.58364062511924D+00 0.23711968791041D-15 + 2 60 1 18 -0.58941207799971D+00 0.94981313203921D-17 + 3 60 1 18 0.45615503776575D+00 0.32644239873603D-16 + 1 61 1 18 0.24369046204170D+00 -0.19891025913836D-16 + 2 61 1 18 -0.22552624962985D-01 -0.49148344966799D-16 + 3 61 1 18 0.14456368115462D-01 -0.22472756351050D-16 + 1 62 1 18 0.12148402283881D+00 -0.13377532942942D-15 + 2 62 1 18 -0.16615110843062D+00 0.10908804477404D-16 + 3 62 1 18 0.20189496355115D+00 -0.20069976653446D-16 + 1 63 1 18 -0.46736184534094D+00 0.33827793528799D-15 + 2 63 1 18 -0.45135257442485D+00 -0.12819519593378D-16 + 3 63 1 18 0.48216063573330D+00 0.21329970021224D-16 + 1 64 1 18 0.47472562475950D-01 -0.38268345484719D-15 + 2 64 1 18 0.89009744711472D-01 0.66158226836310D-18 + 3 64 1 18 0.91031511570016D-01 0.14324989691420D-16 + 1 65 1 18 -0.11978192478389D+01 -0.16957446699479D-15 + 2 65 1 18 0.86015233282598D+00 -0.64687101602000D-17 + 3 65 1 18 0.86015233282600D+00 -0.75612192085712D-16 + 1 1 2 18 -0.12700720656505D+01 0.13685536231863D-16 + 2 1 2 18 -0.29567085927981D+01 -0.14494458997973D-16 + 3 1 2 18 -0.30735382688858D+01 0.49230296645100D-17 + 1 2 2 18 0.11550108999979D+01 -0.21185647131389D-16 + 2 2 2 18 -0.28512247146025D+01 0.10363715966387D-15 + 3 2 2 18 0.29073230193539D+01 0.22737268766373D-17 + 1 3 2 18 -0.13146956625237D+01 -0.77129977551548D-17 + 2 3 2 18 -0.27516318762314D+01 -0.22075539632882D-15 + 3 3 2 18 0.28992922123548D+01 -0.34598950333505D-17 + 1 4 2 18 0.12970359638530D+01 -0.15264775827987D-16 + 2 4 2 18 -0.31020751299927D+01 -0.16950402327093D-15 + 3 4 2 18 -0.31423875954876D+01 0.18839539309141D-17 + 1 5 2 18 0.25927238246939D-01 -0.30894839197478D-16 + 2 5 2 18 0.54392391872486D+00 0.75088772857265D-16 + 3 5 2 18 -0.62347852797931D+00 -0.11016119099597D-17 + 1 6 2 18 0.13569498302180D+00 0.37274969310263D-16 + 2 6 2 18 -0.20873637486903D+00 0.51865806860163D-16 + 3 6 2 18 -0.86008039398327D-01 -0.10920400990685D-17 + 1 7 2 18 -0.12899902445748D+00 0.59933401758668D-17 + 2 7 2 18 -0.22758195861379D+00 -0.62167584915123D-16 + 3 7 2 18 -0.90810637626316D-01 -0.19438290283858D-17 + 1 8 2 18 0.67004752710940D-01 -0.34171290669337D-16 + 2 8 2 18 -0.24047697504348D+00 -0.16686010424269D-15 + 3 8 2 18 0.10862185381205D+00 -0.13232331226370D-18 + 1 9 2 18 -0.30498051558183D+00 0.18906324469563D-16 + 2 9 2 18 0.39811475328338D+00 -0.10913818823619D-15 + 3 9 2 18 -0.21433759979020D+00 0.86456464550246D-17 + 1 10 2 18 -0.49562522807859D+00 -0.19080994487414D-17 + 2 10 2 18 -0.47976154247884D+00 0.18329109527270D-15 + 3 10 2 18 -0.57577714895615D+00 -0.13856761126486D-16 + 1 11 2 18 -0.13966428906662D+02 -0.48109944452722D-19 + 2 11 2 18 -0.26379725580492D+02 -0.28423324818460D-15 + 3 11 2 18 -0.14567610441024D+02 0.23299765667729D-16 + 1 12 2 18 0.26751169750600D+00 -0.23891708774307D-16 + 2 12 2 18 0.10545375499441D+00 0.71632911379494D-16 + 3 12 2 18 -0.24199224370543D+00 -0.21721077780617D-16 + 1 13 2 18 -0.40590122418783D+00 0.72017505831201D-17 + 2 13 2 18 -0.34993299908328D+00 0.17282375969724D-15 + 3 13 2 18 -0.44304227120455D+00 -0.37707682556507D-16 + 1 14 2 18 -0.35415753449340D-01 -0.40497965703553D-16 + 2 14 2 18 0.26146773064490D+00 0.17540230306476D-15 + 3 14 2 18 -0.32048390194774D-01 0.16270086265003D-16 + 1 15 2 18 -0.47464923475426D+00 0.21488985223504D-17 + 2 15 2 18 -0.76994936718329D+00 0.10822069129972D-15 + 3 15 2 18 -0.45168307234366D+00 -0.75550894368651D-17 + 1 16 2 18 0.71182342370792D-01 0.12845100142146D-18 + 2 16 2 18 -0.36966588801672D+00 0.76629244267577D-17 + 3 16 2 18 0.63860397410480D-01 -0.65706931365155D-17 + 1 17 2 18 0.52521091841467D-02 -0.14072701079202D-17 + 2 17 2 18 -0.14562371684377D+00 0.14222326708110D-17 + 3 17 2 18 0.29389480393449D-01 -0.23399775115876D-17 + 1 18 2 18 -0.11926800466264D+01 0.00000000000000D+00 + 2 18 2 18 0.12019081945031D+03 0.00000000000000D+00 + 3 18 2 18 0.24093552634997D+01 0.00000000000000D+00 + 1 19 2 18 -0.68881838386677D-01 -0.14148655979914D-18 + 2 19 2 18 -0.29997582769306D+00 0.29664393360189D-17 + 3 19 2 18 -0.75794711745999D-01 -0.13774940632000D-17 + 1 20 2 18 -0.36928784194138D-01 -0.73875501055057D-18 + 2 20 2 18 -0.10442409181147D+00 -0.50856489051574D-17 + 3 20 2 18 -0.44845856798312D-01 0.99420162354768D-18 + 1 21 2 18 -0.75447065688506D-03 0.47046092524052D-18 + 2 21 2 18 -0.79969290519244D-01 0.64584492541751D-17 + 3 21 2 18 -0.20794212377672D-01 -0.14464484935274D-18 + 1 22 2 18 -0.32585525274065D-01 -0.15561157606334D-16 + 2 22 2 18 -0.74394943703652D+00 -0.14273218461568D-16 + 3 22 2 18 0.57995663584141D+00 -0.71425264135674D-18 + 1 23 2 18 -0.25660247315378D-01 0.10474065557851D-17 + 2 23 2 18 0.14768947477597D+01 0.23273542400240D-17 + 3 23 2 18 0.70096081780644D-02 0.80836174748675D-18 + 1 24 2 18 0.52527277599874D+00 -0.12686024535507D-16 + 2 24 2 18 -0.27661666299410D+00 -0.14917229194272D-15 + 3 24 2 18 -0.40003112545841D+00 0.10296923610600D-17 + 1 25 2 18 0.34091133366502D+00 0.19146730191041D-16 + 2 25 2 18 0.56741504705852D+00 0.11271295620528D-15 + 3 25 2 18 -0.29319084621843D+00 -0.25475115915965D-16 + 1 26 2 18 -0.31009401544720D+00 -0.27324231998970D-16 + 2 26 2 18 0.12151128452325D+00 0.17154217697838D-15 + 3 26 2 18 -0.31355453777295D+00 0.87170230662664D-16 + 1 27 2 18 0.15024282579784D+02 -0.10643509027471D-16 + 2 27 2 18 -0.27141502431793D+02 0.40229603660208D-15 + 3 27 2 18 -0.15567569530740D+02 0.23965724188227D-16 + 1 28 2 18 0.36826551461467D-01 0.82215007641468D-17 + 2 28 2 18 0.14046373274300D+00 -0.90008878992855D-16 + 3 28 2 18 -0.19180688496912D-02 -0.29557792011667D-16 + 1 29 2 18 0.42797690548082D+00 -0.12362204738622D-16 + 2 29 2 18 -0.41444205618786D+00 -0.20329813730965D-15 + 3 29 2 18 -0.47410951315899D+00 0.21463881479682D-16 + 1 30 2 18 0.17379260137787D+00 -0.19133995082048D-16 + 2 30 2 18 -0.62389862780352D+00 0.20529019960378D-16 + 3 30 2 18 -0.52852461919546D+00 0.10283297816392D-15 + 1 31 2 18 0.30940070739701D+00 -0.24319912597352D-17 + 2 31 2 18 0.16566364622926D+00 -0.64884322174729D-16 + 3 31 2 18 0.30593004354809D+00 0.13834816539364D-16 + 1 32 2 18 0.32340459656324D+01 -0.62480258633850D-18 + 2 32 2 18 -0.18994089981028D+01 -0.11255467306831D-15 + 3 32 2 18 0.17882170017425D+01 -0.45428553254325D-17 + 1 33 2 18 -0.96415435917295D-01 -0.24902643019204D-17 + 2 33 2 18 -0.21086672653499D+00 -0.25319749422496D-15 + 3 33 2 18 0.86755436131939D-01 -0.90436017934887D-16 + 1 34 2 18 -0.30962339742664D+01 -0.50297206454085D-18 + 2 34 2 18 -0.29958810583551D+01 -0.13086843010107D-15 + 3 34 2 18 0.11353333223013D+01 -0.24558564811350D-16 + 1 35 2 18 0.11754640956584D+00 -0.89249382799995D-19 + 2 35 2 18 -0.26140025060353D+00 0.23092633116727D-15 + 3 35 2 18 0.93465445648178D-01 -0.26378266551145D-16 + 1 36 2 18 -0.31989593194819D+01 -0.23962072611183D-17 + 2 36 2 18 -0.31697061943491D+01 -0.24293261995414D-15 + 3 36 2 18 -0.12696454300567D+01 0.82720460248781D-17 + 1 37 2 18 0.18875194431667D+00 0.70101293422822D-18 + 2 37 2 18 -0.15174463442924D+00 -0.17563463042453D-15 + 3 37 2 18 -0.19848275994538D+00 0.13405862922591D-16 + 1 38 2 18 0.31188104911044D+01 0.86463281786974D-19 + 2 38 2 18 -0.31160979668871D+01 -0.63970199769117D-16 + 3 38 2 18 -0.12509767681806D+01 -0.99412361781335D-16 + 1 39 2 18 -0.98827236061179D-01 -0.92961969235007D-18 + 2 39 2 18 -0.24812961285717D+00 -0.63547716751987D-16 + 3 39 2 18 -0.10609528741851D+00 -0.11833536676788D-16 + 1 40 2 18 0.47089004501017D+00 0.96630249370229D-17 + 2 40 2 18 -0.32341740368544D+00 -0.28866749654795D-15 + 3 40 2 18 0.42846589831313D+00 0.78973169670338D-17 + 1 41 2 18 0.26756134160941D+00 -0.38136400019131D-16 + 2 41 2 18 0.42850323800120D+00 0.13830597453032D-15 + 3 41 2 18 0.26183416531372D+00 0.17585919312637D-16 + 1 42 2 18 -0.43846442122255D+00 0.24836488828117D-16 + 2 42 2 18 0.19033349414047D+00 0.28407427996725D-15 + 3 42 2 18 0.24748365031445D+00 -0.12532485239397D-16 + 1 43 2 18 0.11927098542457D+02 0.27707027571688D-16 + 2 43 2 18 -0.25485998875877D+02 -0.12207480842694D-15 + 3 43 2 18 0.14345599579922D+02 -0.21343260921831D-17 + 1 44 2 18 0.45448141448590D-01 -0.21319420924421D-17 + 2 44 2 18 0.26354632444337D+00 0.82519940571688D-17 + 3 44 2 18 0.28309789651071D-02 -0.20733741276542D-17 + 1 45 2 18 0.55398192425772D+00 0.12168265926161D-18 + 2 45 2 18 -0.45552851098672D+00 -0.81478951483718D-16 + 3 45 2 18 0.46496587470431D+00 -0.39895359343171D-16 + 1 46 2 18 0.65896889737925D+00 0.62278189455371D-17 + 2 46 2 18 -0.93113972708093D+00 -0.14247826834197D-15 + 3 46 2 18 0.34781997433926D+00 0.65115547638805D-17 + 1 47 2 18 0.29451899344543D+00 -0.42049922974501D-16 + 2 47 2 18 0.33670670103112D+00 0.34431742203189D-17 + 3 47 2 18 -0.64823888964956D-01 0.75708884001304D-16 + 1 48 2 18 0.12180751841965D+00 0.43244502727802D-16 + 2 48 2 18 -0.37214517100027D-02 0.68755467227883D-16 + 3 48 2 18 -0.13225854204798D+00 0.49708698713572D-18 + 1 49 2 18 -0.90350894191813D-01 -0.64686251685374D-16 + 2 49 2 18 -0.15398128284685D-01 -0.11600054753772D-16 + 3 49 2 18 -0.44248198131509D-01 0.11904172551588D-16 + 1 50 2 18 0.21253208600549D+01 0.45125042331858D-17 + 2 50 2 18 0.18056327608835D+01 -0.10893140389954D-15 + 3 50 2 18 -0.20752894122620D+01 -0.28472427733180D-16 + 1 51 2 18 -0.11823768965085D+01 -0.10062370655407D-15 + 2 51 2 18 0.30155345649138D+01 -0.28393229038229D-15 + 3 51 2 18 -0.12333277166283D+01 -0.26552687534467D-16 + 1 52 2 18 -0.25560236999467D-01 0.23151465488304D-16 + 2 52 2 18 0.92045836170670D-01 -0.48899639346938D-16 + 3 52 2 18 0.10708464478094D-01 0.12485413307332D-17 + 1 53 2 18 -0.10378919577470D+00 0.11390046150035D-16 + 2 53 2 18 -0.13044625834395D-02 0.11677292827510D-16 + 3 53 2 18 0.12016519405870D+00 -0.11387328512251D-16 + 1 54 2 18 0.13681488651771D+01 0.25972097900086D-16 + 2 54 2 18 0.29609340178484D+01 -0.16317227675092D-15 + 3 54 2 18 0.12700085353062D+01 -0.33510695953246D-16 + 1 55 2 18 -0.13216691511330D+01 0.29010076913605D-16 + 2 55 2 18 0.30062117777568D+01 -0.14102800561798D-15 + 3 55 2 18 0.14939482683633D+01 0.32381926146528D-16 + 1 56 2 18 -0.32434742287266D+00 -0.21563039560158D-16 + 2 56 2 18 0.62661665556899D+00 -0.12100630857192D-15 + 3 56 2 18 0.15949537106223D+00 -0.17483919016217D-16 + 1 57 2 18 -0.46029301411802D+00 -0.10087554455212D-16 + 2 57 2 18 -0.34766337276457D+00 0.58518750117145D-16 + 3 57 2 18 0.43899228290186D+00 0.30284700499177D-17 + 1 58 2 18 -0.13529215902066D+02 0.19321607717555D-16 + 2 58 2 18 -0.26367025656392D+02 0.11456350115816D-15 + 3 58 2 18 0.14949212088362D+02 0.28200853647446D-16 + 1 59 2 18 0.34208337300893D+00 -0.16879802742921D-16 + 2 59 2 18 0.23777045636008D+00 0.11229485250946D-15 + 3 59 2 18 0.29554103937407D+00 -0.28030243579709D-16 + 1 60 2 18 -0.74948867391113D+00 0.94981313203921D-17 + 2 60 2 18 -0.34062346733943D+00 0.52339098460882D-16 + 3 60 2 18 0.61830381521060D+00 -0.79841832583819D-17 + 1 61 2 18 -0.67656636498685D-02 -0.49148344966799D-16 + 2 61 2 18 0.29116309027544D+00 -0.99442989795566D-16 + 3 61 2 18 0.18546293613141D-01 0.15420543698420D-16 + 1 62 2 18 -0.21488924759003D+00 0.10908804477404D-16 + 2 62 2 18 0.15446028503365D+00 -0.53532757266467D-16 + 3 62 2 18 -0.33929061429275D+00 0.26461260105553D-16 + 1 63 2 18 -0.42315601101540D+00 -0.12819519593378D-16 + 2 63 2 18 -0.76046130464859D+00 0.24111077611289D-16 + 3 63 2 18 0.55199541123175D+00 -0.37169791529424D-16 + 1 64 2 18 0.68961132555541D-02 0.66158226836310D-18 + 2 64 2 18 -0.18511474855805D+00 -0.52338632512994D-16 + 3 64 2 18 -0.21099244266206D-01 0.18286945124835D-16 + 1 65 2 18 0.73602774428339D+00 -0.64687101602000D-17 + 2 65 2 18 0.12384261309470D+00 -0.19652927700348D-16 + 3 65 2 18 -0.44273459903537D+00 0.10827220104925D-16 + 1 1 3 18 -0.12700720656505D+01 0.98254435774798D-17 + 2 1 3 18 -0.30735382688858D+01 0.49230296645100D-17 + 3 1 3 18 -0.29567085927981D+01 -0.10310811916658D-15 + 1 2 3 18 -0.13146956625237D+01 -0.33347073805570D-16 + 2 2 3 18 0.28992922123548D+01 0.22737268766373D-17 + 3 2 3 18 -0.27516318762314D+01 -0.11692391049468D-15 + 1 3 3 18 0.11550108999979D+01 -0.31831124898189D-16 + 2 3 3 18 0.29073230193539D+01 -0.34598950333505D-17 + 3 3 3 18 -0.28512247146025D+01 -0.26805104184382D-15 + 1 4 3 18 0.12970359638530D+01 -0.27810181665832D-17 + 2 4 3 18 -0.31423875954876D+01 0.18839539309141D-17 + 3 4 3 18 -0.31020751299927D+01 0.21944219604066D-15 + 1 5 3 18 0.25927238246934D-01 0.17891381699679D-17 + 2 5 3 18 -0.62347852797931D+00 -0.11016119099597D-17 + 3 5 3 18 0.54392391872485D+00 -0.13609659638296D-15 + 1 6 3 18 -0.12899902445748D+00 0.00000000000000D+00 + 2 6 3 18 -0.90810637626317D-01 -0.10920400990685D-17 + 3 6 3 18 -0.22758195861379D+00 0.23403817329294D-15 + 1 7 3 18 0.13569498302180D+00 -0.33129573022736D-16 + 2 7 3 18 -0.86008039398326D-01 -0.19438290283858D-17 + 3 7 3 18 -0.20873637486903D+00 -0.30358454205886D-15 + 1 8 3 18 0.67004752710939D-01 0.26663846768951D-16 + 2 8 3 18 0.10862185381205D+00 -0.13232331226370D-18 + 3 8 3 18 -0.24047697504348D+00 0.10388127286514D-15 + 1 9 3 18 0.26751169750600D+00 -0.35661933813663D-16 + 2 9 3 18 -0.24159438333840D+00 0.86456464550246D-17 + 3 9 3 18 0.10527633078766D+00 0.18860569529777D-16 + 1 10 3 18 -0.49562522807859D+00 0.20395594176642D-16 + 2 10 3 18 -0.57549039836814D+00 -0.13856761126486D-16 + 3 10 3 18 -0.47974736798092D+00 0.15228570675625D-15 + 1 11 3 18 -0.13966428906661D+02 -0.19580864522661D-16 + 2 11 3 18 -0.14567238163059D+02 0.23299765667729D-16 + 3 11 3 18 -0.26380403735131D+02 0.15155078553357D-15 + 1 12 3 18 -0.30498051558179D+00 0.14888863609799D-16 + 2 12 3 18 -0.21427852513038D+00 -0.21721077780617D-16 + 3 12 3 18 0.39805385148679D+00 -0.34077200683758D-16 + 1 13 3 18 -0.47464923475425D+00 0.93463473422231D-17 + 2 13 3 18 -0.45194897166762D+00 -0.37707682556507D-16 + 3 13 3 18 -0.77115215878722D+00 -0.38488698356601D-16 + 1 14 3 18 -0.35415753449318D-01 -0.72032521648689D-16 + 2 14 3 18 -0.32261774788170D-01 0.16270086265003D-16 + 3 14 3 18 0.26118524991481D+00 -0.14621636900655D-16 + 1 15 3 18 -0.40590122418774D+00 -0.10626860589969D-16 + 2 15 3 18 -0.44345517655243D+00 -0.75550894368651D-17 + 3 15 3 18 -0.34998761247846D+00 0.11724393950514D-15 + 1 16 3 18 -0.68881838386677D-01 0.00000000000000D+00 + 2 16 3 18 -0.75794711745998D-01 -0.65706931365155D-17 + 3 16 3 18 -0.29997582769305D+00 0.40048280270357D-18 + 1 17 3 18 0.52521091841385D-02 -0.19648097557456D-18 + 2 17 3 18 0.29389480393449D-01 -0.23399775115876D-17 + 3 17 3 18 -0.14562371684376D+00 -0.20864210026305D-17 + 1 18 3 18 -0.11926800466260D+01 0.00000000000000D+00 + 2 18 3 18 0.24093552634997D+01 0.00000000000000D+00 + 3 18 3 18 0.12019081945031D+03 0.00000000000000D+00 + 1 19 3 18 0.71182342370793D-01 0.33994998676055D-18 + 2 19 3 18 0.63860397410480D-01 -0.13774940632000D-17 + 3 19 3 18 -0.36966588801673D+00 0.34814411893888D-17 + 1 20 3 18 -0.25660247315378D-01 -0.35039849697259D-17 + 2 20 3 18 0.70096081780645D-02 0.99420162354768D-18 + 3 20 3 18 0.14768947477597D+01 -0.45792834403331D-17 + 1 21 3 18 -0.75447065688410D-03 -0.50476313027329D-18 + 2 21 3 18 -0.20794212377672D-01 -0.14464484935274D-18 + 3 21 3 18 -0.79969290519243D-01 0.45260143865225D-17 + 1 22 3 18 -0.32585525274078D-01 -0.18240176268215D-16 + 2 22 3 18 0.57995663584141D+00 -0.71425264135674D-18 + 3 22 3 18 -0.74394943703651D+00 0.48361658594247D-18 + 1 23 3 18 -0.36928784194140D-01 0.16480604745348D-17 + 2 23 3 18 -0.44845856798312D-01 0.80836174748675D-18 + 3 23 3 18 -0.10442409181147D+00 -0.52035604232077D-18 + 1 24 3 18 0.52527277599873D+00 0.93194148823636D-16 + 2 24 3 18 -0.40003112545841D+00 0.10296923610600D-17 + 3 24 3 18 -0.27661666299411D+00 -0.63377903180480D-16 + 1 25 3 18 -0.31009401544719D+00 0.84530100251934D-17 + 2 25 3 18 -0.31355453777295D+00 -0.25475115915965D-16 + 3 25 3 18 0.12151128452325D+00 -0.12510637801891D-15 + 1 26 3 18 0.34091133366505D+00 0.39982430348976D-16 + 2 26 3 18 -0.29319084621843D+00 0.87170230662664D-16 + 3 26 3 18 0.56741504705854D+00 -0.19589849900587D-16 + 1 27 3 18 0.15024282579784D+02 -0.15222527100516D-16 + 2 27 3 18 -0.15567569530740D+02 0.23965724188227D-16 + 3 27 3 18 -0.27141502431793D+02 0.29364295281633D-15 + 1 28 3 18 0.36826551461464D-01 -0.36151199097115D-16 + 2 28 3 18 -0.19180688496912D-02 -0.29557792011667D-16 + 3 28 3 18 0.14046373274300D+00 0.53958960440964D-16 + 1 29 3 18 0.17379260137786D+00 0.40181928691106D-16 + 2 29 3 18 -0.52852461919546D+00 0.21463881479682D-16 + 3 29 3 18 -0.62389862780351D+00 -0.11417593962575D-15 + 1 30 3 18 0.42797690548088D+00 -0.34505181165753D-16 + 2 30 3 18 -0.47410951315899D+00 0.10283297816392D-15 + 3 30 3 18 -0.41444205618785D+00 -0.38328745079848D-16 + 1 31 3 18 0.30940070739702D+00 0.33296117970556D-17 + 2 31 3 18 0.30593004354809D+00 0.13834816539364D-16 + 3 31 3 18 0.16566364622927D+00 0.25907839303257D-15 + 1 32 3 18 0.21253208600549D+01 -0.93179478968242D-16 + 2 32 3 18 -0.20752894122620D+01 -0.45428553254325D-17 + 3 32 3 18 0.18056327608835D+01 -0.37085216690898D-17 + 1 33 3 18 0.12180751841965D+00 -0.27399003877081D-16 + 2 33 3 18 -0.13225854204798D+00 -0.90436017934887D-16 + 3 33 3 18 -0.37214517100062D-02 -0.99829167994872D-17 + 1 34 3 18 -0.11823768965084D+01 -0.22405628450624D-15 + 2 34 3 18 -0.12333277166283D+01 -0.24558564811350D-16 + 3 34 3 18 0.30155345649138D+01 0.27518220713077D-16 + 1 35 3 18 -0.90350894191818D-01 -0.98082948003903D-16 + 2 35 3 18 -0.44248198131509D-01 -0.26378266551145D-16 + 3 35 3 18 -0.15398128284673D-01 0.69408552717832D-16 + 1 36 3 18 0.13681488651771D+01 -0.10255113482364D-15 + 2 36 3 18 0.12696454300567D+01 0.82720460248781D-17 + 3 36 3 18 0.29609340178484D+01 0.19625493411367D-16 + 1 37 3 18 -0.25560236999467D-01 -0.15339759779779D-16 + 2 37 3 18 0.10708464478094D-01 0.13405862922591D-16 + 3 37 3 18 0.92045836170674D-01 0.29946672008093D-16 + 1 38 3 18 -0.13216691511330D+01 -0.49633586872005D-16 + 2 38 3 18 0.14939482683633D+01 -0.99412361781335D-16 + 3 38 3 18 0.30062117777568D+01 0.42411114010323D-17 + 1 39 3 18 -0.10378919577471D+00 0.28845452688113D-17 + 2 39 3 18 0.12016519405870D+00 -0.11833536676788D-16 + 3 39 3 18 -0.13044625834341D-02 -0.28758862881848D-16 + 1 40 3 18 -0.46029301411802D+00 0.35962607962792D-16 + 2 40 3 18 0.43899228290186D+00 0.78973169670338D-17 + 3 40 3 18 -0.34766337276457D+00 -0.26902441061295D-15 + 1 41 3 18 0.34208337300894D+00 0.12921447756048D-15 + 2 41 3 18 0.29554103937407D+00 0.17585919312637D-16 + 3 41 3 18 0.23777045636008D+00 -0.86023921841131D-16 + 1 42 3 18 -0.32434742287266D+00 0.11464421814436D-15 + 2 42 3 18 0.15949537106224D+00 -0.12532485239397D-16 + 3 42 3 18 0.62661665556896D+00 0.10826448819490D-15 + 1 43 3 18 -0.13529215902066D+02 0.40554702202307D-16 + 2 43 3 18 0.14949212088362D+02 -0.21343260921831D-17 + 3 43 3 18 -0.26367025656392D+02 -0.25707684196212D-15 + 1 44 3 18 -0.67656636498685D-02 -0.52085397902590D-16 + 2 44 3 18 0.18546293613142D-01 -0.20733741276542D-17 + 3 44 3 18 0.29116309027544D+00 0.17701666126556D-15 + 1 45 3 18 -0.42315601101540D+00 0.24076033000283D-16 + 2 45 3 18 0.55199541123175D+00 -0.39895359343171D-16 + 3 45 3 18 -0.76046130464859D+00 -0.21856428306459D-16 + 1 46 3 18 -0.74948867391113D+00 0.16340600388501D-16 + 2 46 3 18 0.61830381521061D+00 0.65115547638805D-17 + 3 46 3 18 -0.34062346733944D+00 0.94185829052918D-16 + 1 47 3 18 -0.21488924759002D+00 0.46398563570487D-16 + 2 47 3 18 -0.33929061429275D+00 0.75708884001304D-16 + 3 47 3 18 0.15446028503366D+00 0.71004152607014D-16 + 1 48 3 18 -0.96415435917295D-01 -0.16391087939291D-17 + 2 48 3 18 0.86755436131941D-01 0.49708698713572D-18 + 3 48 3 18 -0.21086672653499D+00 -0.27465957100001D-18 + 1 49 3 18 0.11754640956585D+00 -0.10531185618820D-17 + 2 49 3 18 0.93465445648178D-01 0.11904172551588D-16 + 3 49 3 18 -0.26140025060353D+00 0.29622204500379D-15 + 1 50 3 18 0.32340459656325D+01 0.91115116742681D-17 + 2 50 3 18 0.17882170017425D+01 -0.28472427733180D-16 + 3 50 3 18 -0.18994089981028D+01 0.20111276957575D-15 + 1 51 3 18 -0.30962339742665D+01 0.21607203435668D-17 + 2 51 3 18 0.11353333223012D+01 -0.26552687534467D-16 + 3 51 3 18 -0.29958810583551D+01 -0.24739201439994D-15 + 1 52 3 18 0.18875194431667D+00 0.26229650588344D-17 + 2 52 3 18 -0.19848275994538D+00 0.12485413307332D-17 + 3 52 3 18 -0.15174463442924D+00 -0.11204603123079D-15 + 1 53 3 18 -0.98827236061188D-01 -0.12552906198002D-17 + 2 53 3 18 -0.10609528741851D+00 -0.11387328512251D-16 + 3 53 3 18 -0.24812961285717D+00 0.56638752205488D-16 + 1 54 3 18 -0.31989593194819D+01 -0.43434267198003D-17 + 2 54 3 18 -0.12700085353062D+01 -0.33510695953246D-16 + 3 54 3 18 -0.31697061943491D+01 -0.12075880753399D-15 + 1 55 3 18 0.31188104911044D+01 0.19280596579072D-17 + 2 55 3 18 -0.12509767681806D+01 0.32381926146528D-16 + 3 55 3 18 -0.31160979668871D+01 -0.22538264917320D-15 + 1 56 3 18 -0.43846442122255D+00 0.58017225116704D-16 + 2 56 3 18 0.24748365031445D+00 -0.17483919016217D-16 + 3 56 3 18 0.19033349414046D+00 -0.64843844272784D-16 + 1 57 3 18 0.47089004501017D+00 0.88958754989260D-16 + 2 57 3 18 0.42846589831313D+00 0.30284700499177D-17 + 3 57 3 18 -0.32341740368545D+00 -0.39800090641108D-16 + 1 58 3 18 0.11927098542457D+02 0.18802119835386D-16 + 2 58 3 18 0.14345599579921D+02 0.28200853647446D-16 + 3 58 3 18 -0.25485998875877D+02 -0.49851780938048D-16 + 1 59 3 18 0.26756134160941D+00 0.49746238024485D-17 + 2 59 3 18 0.26183416531372D+00 -0.28030243579709D-16 + 3 59 3 18 0.42850323800123D+00 -0.29639127907137D-15 + 1 60 3 18 0.65896889737925D+00 0.32644239873603D-16 + 2 60 3 18 0.34781997433926D+00 -0.79841832583819D-17 + 3 60 3 18 -0.93113972708093D+00 0.90757914253127D-16 + 1 61 3 18 0.45448141448590D-01 -0.22472756351050D-16 + 2 61 3 18 0.28309789651057D-02 0.15420543698420D-16 + 3 61 3 18 0.26354632444337D+00 -0.12065502510540D-15 + 1 62 3 18 0.29451899344544D+00 -0.20069976653446D-16 + 2 62 3 18 -0.64823888964955D-01 0.26461260105553D-16 + 3 62 3 18 0.33670670103111D+00 0.21416065246340D-16 + 1 63 3 18 0.55398192425771D+00 0.21329970021224D-16 + 2 63 3 18 0.46496587470431D+00 -0.37169791529424D-16 + 3 63 3 18 -0.45552851098671D+00 0.44210523025484D-17 + 1 64 3 18 0.68961132555366D-02 0.14324989691420D-16 + 2 64 3 18 -0.20603334481147D-01 0.18286945124835D-16 + 3 64 3 18 -0.18636859159152D+00 0.20829737904177D-16 + 1 65 3 18 0.73602774428370D+00 -0.75612192085712D-16 + 2 65 3 18 -0.44273459903537D+00 0.10827220104925D-16 + 3 65 3 18 0.12384261309468D+00 0.12298725375141D-15 + 1 1 1 19 0.30385091776969D+01 -0.83599138858096D-16 + 2 1 1 19 -0.11550108999979D+01 0.25397960872248D-16 + 3 1 1 19 0.13146956625237D+01 0.13741384494681D-16 + 1 2 1 19 0.29709267831613D+01 0.88419474482405D-16 + 2 2 1 19 0.14257686930433D+01 -0.14364206840927D-16 + 3 2 1 19 0.16200999420939D+01 -0.14856732218367D-16 + 1 3 1 19 0.30681912205083D+01 -0.26912333188374D-16 + 2 3 1 19 -0.12892733219551D+01 -0.28035861560782D-16 + 3 3 1 19 -0.12999869291335D+01 -0.32715695899086D-16 + 1 4 1 19 0.31579413995749D+01 0.58127983133836D-16 + 2 4 1 19 0.11838219701199D+01 -0.17702214298125D-17 + 3 4 1 19 -0.11608650034962D+01 -0.47572512533634D-17 + 1 5 1 19 0.87836048719717D-01 -0.16905089191039D-16 + 2 5 1 19 0.71809348402236D+00 0.22061647093648D-16 + 3 5 1 19 -0.68445111688901D+00 -0.41125223764498D-17 + 1 6 1 19 0.28208267547115D-01 0.11184060271003D-15 + 2 6 1 19 0.10915285207293D+00 -0.34616770059454D-16 + 3 6 1 19 0.18188827530424D+00 -0.36419937354068D-16 + 1 7 1 19 -0.40115266392881D-01 -0.23209959760902D-15 + 2 7 1 19 -0.15890958213719D+00 0.14473622617702D-16 + 3 7 1 19 -0.14432681694242D+00 0.24717491132991D-17 + 1 8 1 19 0.17628049017344D-01 0.17384752976262D-16 + 2 8 1 19 0.67088866551377D-01 -0.11521160170605D-16 + 3 8 1 19 -0.72483235593101D-01 0.11059883065234D-16 + 1 9 1 19 -0.83310310465999D+00 0.11161801454283D-16 + 2 9 1 19 -0.49913858175078D+00 0.31714283483454D-18 + 3 9 1 19 -0.63008529094649D+00 0.30603940598727D-16 + 1 10 1 19 0.16014908008614D+00 -0.10858786850827D-15 + 2 10 1 19 -0.27801070241038D+00 0.31308037411290D-16 + 3 10 1 19 0.29407440653510D+00 -0.34394487100603D-16 + 1 11 1 19 0.21120081637545D+00 -0.56926594390052D-17 + 2 11 1 19 0.31345089042393D+00 0.84744826647336D-17 + 3 11 1 19 -0.42014911564423D+00 -0.87752879239900D-17 + 1 12 1 19 -0.27426623157198D+02 -0.80729852101990D-16 + 2 12 1 19 -0.17262113001736D+02 -0.30616000379276D-16 + 3 12 1 19 -0.15029971305917D+02 -0.25114578786890D-16 + 1 13 1 19 0.25512738324409D+00 0.58668387149527D-17 + 2 13 1 19 -0.35524175743278D-01 -0.12941431336789D-16 + 3 13 1 19 -0.25402314664384D-01 0.16687181337471D-16 + 1 14 1 19 -0.40543449355557D+00 -0.41018619135334D-16 + 2 14 1 19 -0.46746793428944D+00 -0.99347414574323D-17 + 3 14 1 19 -0.45282468874006D+00 0.98831209823881D-17 + 1 15 1 19 0.50241961411294D+00 -0.81208533163038D-16 + 2 15 1 19 -0.32850170110726D+00 -0.46871470419120D-17 + 3 15 1 19 -0.29075513625965D+00 0.31768686543340D-16 + 1 16 1 19 0.17064624383969D+01 0.93518482993768D-18 + 2 16 1 19 0.19049686090145D+00 0.11552125050553D-17 + 3 16 1 19 0.19346501631644D-01 0.21421028745025D-18 + 1 17 1 19 -0.23816838007246D+00 0.82516457372666D-17 + 2 17 1 19 0.18366634266787D-02 0.23237886913883D-17 + 3 17 1 19 0.13933129234015D-02 -0.16966539629718D-18 + 1 18 1 19 -0.22583673303681D+00 -0.67693685335863D-18 + 2 18 1 19 -0.68881838386677D-01 0.14148655979914D-18 + 3 18 1 19 0.71182342370793D-01 -0.33994998676055D-18 + 1 19 1 19 0.12287990253502D+03 0.00000000000000D+00 + 2 19 1 19 0.10712478210701D+01 0.00000000000000D+00 + 3 19 1 19 0.34256587073392D+01 0.00000000000000D+00 + 1 20 1 19 -0.16720242091942D+00 -0.27676091089674D-17 + 2 20 1 19 0.22811652599747D-01 0.68912404707173D-19 + 3 20 1 19 0.38930185792205D-01 -0.82383978031820D-18 + 1 21 1 19 -0.12290306718744D+00 -0.16440985542141D-17 + 2 21 1 19 0.22596539548495D-01 -0.29051131300235D-18 + 3 21 1 19 0.12182195732168D-01 0.74098008451985D-18 + 1 22 1 19 -0.12969776100858D+00 -0.33528377994575D-16 + 2 22 1 19 -0.85317621194837D+00 0.84740073883085D-18 + 3 22 1 19 0.74074581612352D+00 -0.79208124560165D-17 + 1 23 1 19 -0.35562475976301D+00 0.11872706752493D-16 + 2 23 1 19 -0.19184240360454D-02 -0.42442915233756D-18 + 3 23 1 19 -0.73118224368082D-01 -0.48415618946926D-18 + 1 24 1 19 0.27295797963212D+00 -0.90785888528221D-16 + 2 24 1 19 0.40294145954662D+00 -0.33903753204843D-16 + 3 24 1 19 -0.39028506538331D+00 0.22344814157636D-16 + 1 25 1 19 -0.84916661268427D+00 -0.37476583677137D-15 + 2 25 1 19 0.47131622603680D+00 0.14572518829849D-16 + 3 25 1 19 0.37718079151061D+00 -0.21570316427225D-16 + 1 26 1 19 -0.25470941862986D+02 0.13688260487008D-15 + 2 26 1 19 0.13516280332068D+02 -0.11312645244470D-16 + 3 26 1 19 0.13940477087648D+02 0.27097238097715D-17 + 1 27 1 19 0.20558033360876D+00 0.14294416219441D-15 + 2 27 1 19 -0.34287793151198D+00 0.53802073046008D-17 + 3 27 1 19 0.25207267195375D+00 -0.23897968853746D-16 + 1 28 1 19 -0.64234105542516D+00 -0.69538002949982D-16 + 2 28 1 19 0.42614734542216D+00 -0.24651184896070D-16 + 3 28 1 19 0.38978028340426D+00 -0.99502342233388D-17 + 1 29 1 19 0.25051017034734D+00 -0.24273949556156D-15 + 2 29 1 19 -0.11479705400310D+00 0.31342542506855D-16 + 3 29 1 19 -0.23561371178643D-01 -0.19413253573816D-16 + 1 30 1 19 0.44208024797636D+00 0.14080293036881D-15 + 2 30 1 19 0.38566323318886D+00 0.28831796295733D-16 + 3 30 1 19 0.41383561013825D+00 0.38792688663992D-16 + 1 31 1 19 -0.37941196594312D+00 0.71590550407830D-17 + 2 31 1 19 0.44374494864420D+00 0.71647323302301D-17 + 3 31 1 19 0.32676665815979D+00 0.25880222447687D-16 + 1 32 1 19 -0.14227691375251D+00 0.10697188601214D-15 + 2 32 1 19 0.63788193896406D+00 -0.38018420514820D-17 + 3 32 1 19 0.55458505988007D+00 -0.35160675500294D-16 + 1 33 1 19 -0.29233488661134D+01 -0.12468327663436D-15 + 2 33 1 19 0.28846658458855D+01 0.11873098790896D-17 + 3 33 1 19 -0.17402778573232D+01 0.44691400109622D-16 + 1 34 1 19 -0.20285354699657D+00 -0.14115956325132D-15 + 2 34 1 19 0.21870410963720D-01 0.16280925708724D-18 + 3 34 1 19 0.14764773017077D+00 0.22362936984160D-15 + 1 35 1 19 -0.29596538007428D+01 0.20151046080386D-15 + 2 35 1 19 -0.32008726391262D+01 0.67772186803771D-17 + 3 35 1 19 0.12343771874599D+01 -0.34449245606120D-16 + 1 36 1 19 -0.21100302837231D+00 -0.88941640396021D-16 + 2 36 1 19 0.18875194431667D+00 0.49192294636917D-17 + 3 36 1 19 0.25560236999467D-01 0.82364067354397D-16 + 1 37 1 19 -0.29895125632169D+01 -0.29710363629886D-16 + 2 37 1 19 -0.29337777170518D+01 0.11985221587353D-17 + 3 37 1 19 -0.16276630588903D+01 0.61850619892563D-16 + 1 38 1 19 -0.35757345629169D+00 -0.52711006358231D-17 + 2 38 1 19 -0.21810506358726D+00 0.29821285336977D-17 + 3 38 1 19 0.25898368449814D+00 -0.86832516831254D-16 + 1 39 1 19 -0.30112724456127D+01 0.17559822463078D-15 + 2 39 1 19 0.32825700744194D+01 -0.22391851948261D-17 + 3 39 1 19 0.14136220409059D+01 0.24540085082101D-16 + 1 40 1 19 0.22931480882147D+00 -0.21899565315578D-15 + 2 40 1 19 0.32406161278392D+00 0.33531551152652D-16 + 3 40 1 19 0.35660563057978D+00 -0.53901991765217D-16 + 1 41 1 19 -0.77717561802623D+00 -0.19326004178894D-15 + 2 41 1 19 0.48194379625108D+00 -0.12724175181837D-16 + 3 41 1 19 -0.44805328709032D+00 0.17213760079339D-16 + 1 42 1 19 -0.27022189572521D+02 -0.93611185641633D-16 + 2 42 1 19 0.17380976115390D+02 -0.45779744246185D-16 + 3 42 1 19 -0.14558835678490D+02 0.55488322367526D-16 + 1 43 1 19 0.62025028896633D-02 -0.17510768170637D-15 + 2 43 1 19 -0.26522545003791D+00 -0.20624545800071D-17 + 3 43 1 19 0.53763771560470D-01 0.62299699897276D-16 + 1 44 1 19 -0.45333922621259D+00 0.20895901580982D-16 + 2 44 1 19 0.52535734949561D+00 -0.11225708107363D-16 + 3 44 1 19 -0.51501859925011D+00 0.88549399794990D-17 + 1 45 1 19 0.27664613061127D+00 0.93740858705921D-16 + 2 45 1 19 0.11650839707715D-02 -0.30289205726071D-16 + 3 45 1 19 -0.26176467133692D-02 0.10969011853597D-16 + 1 46 1 19 0.31422049400922D+00 0.59953209940441D-16 + 2 46 1 19 -0.29825601567282D-02 0.14575561316694D-16 + 3 46 1 19 -0.21516708156434D+00 -0.33633014306338D-17 + 1 47 1 19 -0.39640379417135D+00 0.15416452005424D-15 + 2 47 1 19 0.59823138478369D+00 0.26803068205507D-16 + 3 47 1 19 -0.63674313804244D+00 -0.20154386863327D-16 + 1 48 1 19 -0.20352226633815D+00 -0.10531309037379D-15 + 2 48 1 19 0.14350644613520D+00 -0.36791577993198D-17 + 3 48 1 19 0.36582342768195D-01 0.56090120005904D-17 + 1 49 1 19 -0.23994603525543D+00 0.78712646522285D-16 + 2 49 1 19 -0.89465979828499D-01 0.29290945787111D-16 + 3 49 1 19 -0.65890303523436D-01 0.29359459586108D-17 + 1 50 1 19 -0.30338589403063D+01 0.20141910370680D-15 + 2 50 1 19 0.17512457825153D+00 -0.69797937144839D-16 + 3 50 1 19 -0.46171555433879D+01 0.33092428549420D-17 + 1 51 1 19 -0.29949756481198D+01 -0.19558853730924D-15 + 2 51 1 19 -0.11971059792642D+01 -0.39126306653673D-16 + 3 51 1 19 0.30971891017044D+01 0.53451159360169D-18 + 1 52 1 19 -0.35729967959954D+00 0.20625223425347D-15 + 2 52 1 19 0.21515632650470D+00 0.74240272450799D-16 + 3 52 1 19 -0.19847109189108D+00 -0.11349321475576D-17 + 1 53 1 19 -0.23629068496631D+00 -0.14600678680372D-15 + 2 53 1 19 -0.10296464443796D+00 -0.48663252028013D-16 + 3 53 1 19 0.11720523352892D+00 0.24785633136621D-17 + 1 54 1 19 -0.29694333512828D+01 0.19245955544787D-15 + 2 54 1 19 0.13216691511330D+01 -0.15177077031071D-16 + 3 54 1 19 0.31188104911044D+01 -0.45492685571152D-17 + 1 55 1 19 -0.32291832719729D+01 -0.34775778981972D-16 + 2 55 1 19 -0.12574855522480D+01 0.24049021057090D-16 + 3 55 1 19 -0.35866822654581D+01 0.40107262304795D-17 + 1 56 1 19 -0.80985736801164D+00 0.11057616097542D-15 + 2 56 1 19 -0.35556774802706D+00 0.13690991440914D-16 + 3 56 1 19 0.33968534256652D+00 -0.66555972337269D-16 + 1 57 1 19 0.18966302382550D+00 -0.25176141760017D-16 + 2 57 1 19 -0.23380228617191D+00 0.15350896883978D-16 + 3 57 1 19 -0.33632806315325D+00 0.22364778190726D-16 + 1 58 1 19 0.62632122828492D+00 0.77168966328821D-17 + 2 58 1 19 0.21034855301276D+00 0.16320592750317D-16 + 3 58 1 19 0.61070928979987D+00 0.99306705338507D-16 + 1 59 1 19 -0.27140407075915D+02 -0.80085083528086D-16 + 2 59 1 19 -0.14840802524424D+02 0.42957390725187D-16 + 3 59 1 19 0.14248162262728D+02 0.62768305833522D-17 + 1 60 1 19 0.81947051681333D-01 -0.12581252869997D-15 + 2 60 1 19 0.10295060887454D+00 -0.52753276047453D-16 + 3 60 1 19 0.24610974420285D+00 0.31073276884841D-17 + 1 61 1 19 -0.49304833638927D+00 0.85105397605975D-16 + 2 61 1 19 -0.43710435220490D+00 0.22387328620976D-16 + 3 61 1 19 0.35014435252326D+00 0.31901069980733D-16 + 1 62 1 19 -0.50259411538244D+00 -0.46801085097660D-16 + 2 62 1 19 -0.59033759901085D+00 -0.38176649020080D-16 + 3 62 1 19 0.27401375196434D+00 0.20997715088645D-16 + 1 63 1 19 0.36923994026917D+00 0.69374317741160D-16 + 2 63 1 19 -0.26653682768796D+00 0.70432439914043D-17 + 3 63 1 19 0.33003961467011D+00 -0.13595645433099D-16 + 1 64 1 19 -0.14478320412953D+00 0.83571140526770D-16 + 2 64 1 19 0.67338461172716D-01 -0.18073639190611D-16 + 3 64 1 19 0.73174246076913D-01 0.17525584388844D-16 + 1 65 1 19 -0.50053457424157D+00 0.22874961257146D-15 + 2 65 1 19 -0.46103480457848D+00 -0.69807616016958D-17 + 3 65 1 19 -0.10998115269211D+01 -0.59591577315243D-16 + 1 1 2 19 0.12828034165548D+01 0.25397960872248D-16 + 2 1 2 19 -0.28512247146025D+01 -0.75103987655009D-15 + 3 1 2 19 0.28992922123548D+01 0.30164809711837D-17 + 1 2 2 19 -0.14257686930433D+01 -0.14364206840927D-16 + 2 2 2 19 -0.31083248747393D+01 -0.10045402352073D-15 + 3 2 2 19 -0.28968247934279D+01 0.13587737419367D-17 + 1 3 2 19 0.12999869291335D+01 -0.28035861560782D-16 + 2 3 2 19 -0.31939237968509D+01 -0.24290541698917D-15 + 3 3 2 19 -0.34661093519879D+01 -0.80246996695270D-17 + 1 4 2 19 -0.14258506103839D+01 -0.17702214298125D-17 + 2 4 2 19 -0.32389323475908D+01 0.22910478790657D-15 + 3 4 2 19 0.32724273548708D+01 0.86488378773093D-18 + 1 5 2 19 -0.62056743571447D-02 0.22061647093648D-16 + 2 5 2 19 0.81365140915614D+00 -0.62081209792055D-17 + 3 5 2 19 -0.87950895163831D+00 -0.56231736229522D-17 + 1 6 2 19 -0.46389530140498D-01 -0.34616770059454D-16 + 2 6 2 19 -0.19250859648881D+00 -0.17008695513115D-15 + 3 6 2 19 0.16359920195150D+00 -0.75887882384207D-18 + 1 7 2 19 0.34258093331190D-01 0.14473622617702D-16 + 2 7 2 19 -0.23088084729193D+00 0.28166553391631D-15 + 3 7 2 19 0.49290147573131D-01 -0.54657486313374D-17 + 1 8 2 19 -0.10356308707008D+00 -0.11521160170605D-16 + 2 8 2 19 -0.28160457200432D+00 -0.70051380892226D-16 + 3 8 2 19 -0.59446261974186D-01 -0.29833258260938D-17 + 1 9 2 19 -0.36425031176632D+00 0.31714283483454D-18 + 2 9 2 19 -0.44041456558748D+00 -0.25653730182641D-16 + 3 9 2 19 -0.38138797260350D+00 -0.18651602004643D-16 + 1 10 2 19 -0.25324393959616D+00 0.31308037411290D-16 + 2 10 2 19 0.41323889039754D+00 0.24404007753807D-16 + 3 10 2 19 -0.30572683686540D+00 -0.20951281773363D-16 + 1 11 2 19 0.34648445227575D+00 0.84744826647336D-17 + 2 11 2 19 0.14057722780308D+00 0.55984846916227D-16 + 3 11 2 19 -0.32100479112210D+00 0.78759931832282D-17 + 1 12 2 19 -0.17278320948682D+02 -0.30616000379276D-16 + 2 12 2 19 -0.28264265805571D+02 0.49319935940715D-16 + 3 12 2 19 -0.17165288984837D+02 -0.63151663158423D-16 + 1 13 2 19 -0.24465386897002D-01 -0.12941431336789D-16 + 2 13 2 19 0.24720094615653D+00 0.14585652404283D-15 + 3 13 2 19 -0.33719155066207D-01 0.70452694636441D-16 + 1 14 2 19 -0.45850944608788D+00 -0.99347414574323D-17 + 2 14 2 19 -0.36231427929652D+00 -0.36535049884850D-16 + 3 14 2 19 -0.49654295837348D+00 -0.26291736031783D-16 + 1 15 2 19 -0.33570155248116D+00 -0.46871470419120D-17 + 2 15 2 19 0.15825920575420D+00 -0.66249722272392D-16 + 3 15 2 19 0.34900987509091D+00 -0.15425999947359D-16 + 1 16 2 19 0.19346501631644D-01 0.11552125050553D-17 + 2 16 2 19 0.14254411493811D+00 -0.18887906138263D-16 + 3 16 2 19 0.31054074968654D-02 -0.23387473848692D-17 + 1 17 2 19 -0.31754131344404D-01 0.23237886913883D-17 + 2 17 2 19 -0.38525272769522D+00 -0.24606371119573D-17 + 3 17 2 19 -0.17871430495605D-01 -0.11800868917182D-17 + 1 18 2 19 0.20095775691119D-01 0.14148655979914D-18 + 2 18 2 19 -0.29997582769306D+00 -0.29664393360189D-17 + 3 18 2 19 0.63860397410480D-01 0.13774940632000D-17 + 1 19 2 19 0.10712478210701D+01 0.00000000000000D+00 + 2 19 2 19 0.12361603940764D+03 0.00000000000000D+00 + 3 19 2 19 0.62995371830205D+00 0.00000000000000D+00 + 1 20 2 19 -0.50822928074397D-01 0.68912404707173D-19 + 2 20 2 19 -0.84272004536131D-01 0.32823333502959D-18 + 3 20 2 19 0.12262395208868D-01 0.45928936810531D-18 + 1 21 2 19 -0.50187471622119D-01 -0.29051131300235D-18 + 2 21 2 19 -0.67269915365603D-01 -0.25395399658778D-17 + 3 21 2 19 -0.50182227588191D-01 -0.55224679662300D-18 + 1 22 2 19 0.94007595960363D-02 0.84740073883085D-18 + 2 22 2 19 0.62991047216481D-01 -0.80958426545407D-17 + 3 22 2 19 0.12637881894937D+01 0.69613785423811D-17 + 1 23 2 19 0.24461857082305D-02 -0.42442915233756D-18 + 2 23 2 19 -0.20671006593298D+00 -0.49258472319547D-17 + 3 23 2 19 -0.34358997781744D-01 0.13095559797380D-17 + 1 24 2 19 0.38269152990934D+00 -0.33903753204843D-16 + 2 24 2 19 0.66408895613077D+00 0.28900155781395D-16 + 3 24 2 19 -0.32807006299279D+00 0.19304218285508D-16 + 1 25 2 19 0.47848284343538D+00 0.14572518829849D-16 + 2 25 2 19 -0.42400915340019D+00 0.36232854841950D-16 + 3 25 2 19 -0.48351314694592D+00 0.19811023097068D-16 + 1 26 2 19 0.13752406199399D+02 -0.11312645244470D-16 + 2 26 2 19 -0.25987538274335D+02 -0.30331367553668D-15 + 3 26 2 19 -0.14890393670092D+02 -0.33948793399899D-16 + 1 27 2 19 -0.27657730932820D+00 0.53802073046008D-17 + 2 27 2 19 0.16887509052892D+00 -0.77335794077026D-16 + 3 27 2 19 -0.13763729246429D+00 -0.30556979870286D-16 + 1 28 2 19 0.29992653005327D+00 -0.24651184896070D-16 + 2 28 2 19 -0.38401237108067D+00 -0.72179201029813D-16 + 3 28 2 19 -0.34588094598482D+00 -0.12327839376105D-16 + 1 29 2 19 -0.53470638894168D-01 0.31342542506855D-16 + 2 29 2 19 0.20857800944944D+00 -0.18709607345663D-15 + 3 29 2 19 -0.38181601510458D-01 -0.41397105450678D-17 + 1 30 2 19 0.30252389954016D+00 0.28831796295733D-16 + 2 30 2 19 0.18304592510120D+00 -0.22601075392793D-15 + 3 30 2 19 0.28358065322038D+00 -0.19007289392038D-17 + 1 31 2 19 0.47241760155955D+00 0.71647323302301D-17 + 2 31 2 19 -0.71530023363884D+00 -0.10066893456915D-16 + 3 31 2 19 -0.44706759951065D+00 0.36643202420704D-17 + 1 32 2 19 0.82013102129497D-01 -0.38018420514820D-17 + 2 32 2 19 0.62293770665093D+00 -0.12332550283081D-15 + 3 32 2 19 0.93257181798683D+00 0.92175713418735D-16 + 1 33 2 19 0.28728526686265D+01 0.11873098790896D-17 + 2 33 2 19 -0.28762227844451D+01 0.46373354752612D-16 + 3 33 2 19 0.13163110477181D+01 0.73354182546661D-16 + 1 34 2 19 0.89658032623897D-01 0.16280925708724D-18 + 2 34 2 19 -0.21577894633812D+00 0.24806935107682D-15 + 3 34 2 19 0.10356682372425D+00 0.56251109748752D-16 + 1 35 2 19 -0.31254481327734D+01 0.67772186803771D-17 + 2 35 2 19 -0.30979715045097D+01 -0.24480040351768D-15 + 3 35 2 19 0.12144881578439D+01 0.23529090531261D-16 + 1 36 2 19 0.69182942504180D-01 0.49192294636917D-17 + 2 36 2 19 -0.15174463442924D+00 0.20337781201321D-15 + 3 36 2 19 -0.10708464478095D-01 -0.19295819584128D-16 + 1 37 2 19 -0.29337777170518D+01 0.11985221587353D-17 + 2 37 2 19 -0.29999172970670D+01 -0.30250996974912D-16 + 3 37 2 19 -0.14062279707536D+01 -0.34660927493901D-16 + 1 38 2 19 -0.19847109189108D+00 0.29821285336977D-17 + 2 38 2 19 -0.42455260074796D+00 0.18959084833396D-15 + 3 38 2 19 0.27412291065957D-01 -0.37300082255632D-16 + 1 39 2 19 0.31446947372533D+01 -0.22391851948261D-17 + 2 39 2 19 -0.31976530388552D+01 0.14754101010273D-15 + 3 39 2 19 -0.12966080702833D+01 -0.21930268276661D-16 + 1 40 2 19 0.29022933731611D+00 0.33531551152652D-16 + 2 40 2 19 0.53072023251006D+00 -0.71000775619536D-17 + 3 40 2 19 0.21799906534146D+00 -0.19758928336572D-16 + 1 41 2 19 0.59936482346721D+00 -0.12724175181837D-16 + 2 41 2 19 -0.50047434236650D+00 0.38487715018198D-16 + 3 41 2 19 0.61055482526110D+00 -0.41446051613458D-17 + 1 42 2 19 0.16629379756977D+02 -0.45779744246185D-16 + 2 42 2 19 -0.27760819090572D+02 -0.22864566623829D-15 + 3 42 2 19 0.17524480964126D+02 -0.13826681903673D-16 + 1 43 2 19 -0.37197994347043D+00 -0.20624545800071D-17 + 2 43 2 19 0.12834338893620D+00 -0.22824910278556D-15 + 3 43 2 19 0.26868741007231D+00 -0.12234731191409D-16 + 1 44 2 19 0.50891363746347D+00 -0.11225708107363D-16 + 2 44 2 19 -0.44735271654360D+00 0.77561885892341D-16 + 3 44 2 19 0.48027594224421D+00 -0.10714530929057D-16 + 1 45 2 19 -0.20626483504717D-02 -0.30289205726071D-16 + 2 45 2 19 0.29691473446176D+00 -0.12902481221533D-15 + 3 45 2 19 0.54559282343332D-01 0.26888684818022D-17 + 1 46 2 19 0.35986694257036D+00 0.14575561316694D-16 + 2 46 2 19 0.10626880733349D+00 0.44050781424425D-15 + 3 46 2 19 -0.30197170554672D+00 -0.13003098576296D-16 + 1 47 2 19 0.80045650826027D+00 0.26803068205507D-16 + 2 47 2 19 -0.60193948425331D+00 -0.27401707355895D-15 + 3 47 2 19 0.68264261748262D+00 -0.13207636505344D-16 + 1 48 2 19 -0.10774984940754D-01 -0.36791577993198D-17 + 2 48 2 19 0.67229337897269D-01 -0.62309133520831D-16 + 3 48 2 19 -0.15189491883039D+00 -0.29580683015739D-16 + 1 49 2 19 0.70206638076884D-01 0.29290945787111D-16 + 2 49 2 19 -0.19811576467610D-01 0.20429777761991D-15 + 3 49 2 19 -0.47616311444369D-01 0.33094870224142D-16 + 1 50 2 19 -0.14435244257966D+01 -0.69797937144839D-16 + 2 50 2 19 0.96910325492603D+00 0.81784350141554D-16 + 3 50 2 19 -0.29658009543567D+01 -0.62677192738234D-17 + 1 51 2 19 0.13678659944496D+01 -0.39126306653673D-16 + 2 51 2 19 0.29632774936015D+01 0.21845646314047D-15 + 3 51 2 19 -0.13483055546319D+01 -0.33685921240443D-16 + 1 52 2 19 -0.25898368449814D+00 0.74240272450799D-16 + 2 52 2 19 0.10115026623173D+00 0.48669715219652D-16 + 3 52 2 19 -0.27830676858511D-01 0.32361618544529D-16 + 1 53 2 19 0.10752394562335D+00 -0.48663252028013D-16 + 2 53 2 19 -0.11931947826560D-01 0.52337386959246D-16 + 3 53 2 19 0.12617294084810D+00 0.12867323420640D-16 + 1 54 2 19 -0.13078588463868D+01 -0.15177077031071D-16 + 2 54 2 19 0.30062117777567D+01 -0.48396935328522D-16 + 3 54 2 19 0.12509767681806D+01 -0.28799465240624D-16 + 1 55 2 19 0.12574855522480D+01 0.24049021057090D-16 + 2 55 2 19 0.30927109131092D+01 0.10653569518698D-16 + 3 55 2 19 0.12650830491787D+01 -0.27282309284495D-16 + 1 56 2 19 -0.28684620462766D+00 0.13690991440914D-16 + 2 56 2 19 -0.85893846018719D-01 0.13668125976318D-15 + 3 56 2 19 0.14952538593819D+00 -0.30171442959956D-17 + 1 57 2 19 -0.27707858760759D+00 0.15350896883978D-16 + 2 57 2 19 0.58598536914088D+00 0.69348865292912D-16 + 3 57 2 19 0.34701699078133D+00 -0.19356780105825D-16 + 1 58 2 19 0.78293220003703D+00 0.16320592750317D-16 + 2 58 2 19 -0.18536809697928D+00 -0.21702208780511D-15 + 3 58 2 19 0.71273818903614D+00 0.16529861679176D-16 + 1 59 2 19 -0.14657072719820D+02 0.42957390725187D-16 + 2 59 2 19 -0.25763641485448D+02 0.35614195980697D-16 + 3 59 2 19 0.13670665622604D+02 -0.72510962659043D-18 + 1 60 2 19 -0.10458857416864D+00 -0.52753276047453D-16 + 2 60 2 19 0.37092861818659D+00 -0.99076038038431D-16 + 3 60 2 19 0.24018265599631D+00 -0.15015221351173D-16 + 1 61 2 19 -0.50130163375714D+00 0.22387328620976D-16 + 2 61 2 19 -0.37587517196716D+00 -0.82270328501824D-16 + 3 61 2 19 0.44375316277967D+00 -0.84869138843943D-17 + 1 62 2 19 -0.49922300162289D+00 -0.38176649020080D-16 + 2 62 2 19 -0.87879839587781D+00 0.15082900380477D-16 + 3 62 2 19 0.76511502303099D-01 -0.47252587829578D-17 + 1 63 2 19 -0.20300347704440D+00 0.70432439914043D-17 + 2 63 2 19 0.15727104241103D+00 0.17935024155999D-16 + 3 63 2 19 -0.27594970481658D+00 -0.21750750330247D-16 + 1 64 2 19 0.22032006338684D+00 -0.18073639190611D-16 + 2 64 2 19 0.12714067519291D+00 -0.88592999157682D-16 + 3 64 2 19 0.17334651597392D+00 -0.10496102966009D-16 + 1 65 2 19 -0.62533824397713D+00 -0.69807616016958D-17 + 2 65 2 19 0.12127492901125D+00 0.14416320435397D-15 + 3 65 2 19 -0.25725218217314D+00 0.14948491666061D-16 + 1 1 3 19 -0.12138580036775D+01 0.13741384494681D-16 + 2 1 3 19 0.29073230193539D+01 0.30164809711837D-17 + 3 1 3 19 -0.27516318762314D+01 -0.21489752620518D-15 + 1 2 3 19 -0.16200999420939D+01 -0.14856732218367D-16 + 2 2 3 19 -0.28968247934279D+01 0.13587737419367D-17 + 3 2 3 19 -0.28486160486720D+01 0.19577445629326D-15 + 1 3 3 19 0.12892733219551D+01 -0.32715695899086D-16 + 2 3 3 19 -0.30631974865687D+01 -0.80246996695270D-17 + 3 3 3 19 -0.31939237968509D+01 -0.20233590883295D-16 + 1 4 3 19 0.14131179231745D+01 -0.47572512533634D-17 + 2 4 3 19 0.32598618654775D+01 0.86488378773093D-18 + 3 4 3 19 -0.29903000869573D+01 0.80011789026602D-16 + 1 5 3 19 -0.25019036966429D+00 -0.41125223764498D-17 + 2 5 3 19 0.99491676041998D+00 -0.56231736229522D-17 + 3 5 3 19 -0.11649945096036D+01 -0.13405859480270D-16 + 1 6 3 19 -0.43402375418694D-01 -0.36419937354068D-16 + 2 6 3 19 0.15173137220633D+00 -0.75887882384207D-18 + 3 6 3 19 -0.14082776768839D+00 0.22840427649152D-15 + 1 7 3 19 0.42487475494270D-01 0.24717491132991D-17 + 2 7 3 19 -0.21360777461611D-02 -0.54657486313374D-17 + 3 7 3 19 -0.26792518326819D+00 -0.22638553850273D-15 + 1 8 3 19 0.13471322032932D+00 0.11059883065234D-16 + 2 8 3 19 -0.11291188076494D+00 -0.29833258260938D-17 + 3 8 3 19 -0.17065132479147D+00 0.42005609537175D-16 + 1 9 3 19 -0.50563856021149D+00 0.30603940598727D-16 + 2 9 3 19 -0.33284657748139D+00 -0.18651602004643D-16 + 3 9 3 19 -0.29938558297940D+00 -0.82424477377828D-16 + 1 10 3 19 0.30357963965608D+00 -0.34394487100603D-16 + 2 10 3 19 -0.29487047880420D+00 -0.20951281773363D-16 + 3 10 3 19 0.17730212355830D+00 -0.20960987892129D-16 + 1 11 3 19 -0.33996042404438D+00 -0.87752879239900D-17 + 2 11 3 19 -0.36758802602356D+00 0.78759931832282D-17 + 3 11 3 19 0.54540329466194D+00 -0.26651752741260D-16 + 1 12 3 19 -0.15049561448618D+02 -0.25114578786890D-16 + 2 12 3 19 -0.17191015790917D+02 -0.63151663158423D-16 + 3 12 3 19 -0.26971487657406D+02 0.91070915901608D-16 + 1 13 3 19 -0.33953700215022D-01 0.16687181337471D-16 + 2 13 3 19 -0.22880423412219D-01 0.70452694636441D-16 + 3 13 3 19 0.26068217900466D+00 -0.14034552292254D-15 + 1 14 3 19 -0.47912631614102D+00 0.98831209823881D-17 + 2 14 3 19 -0.50994080734402D+00 -0.26291736031783D-16 + 3 14 3 19 -0.79391920416358D+00 0.66502946087718D-16 + 1 15 3 19 -0.33741997843478D+00 0.31768686543340D-16 + 2 15 3 19 0.28740111017937D+00 -0.15425999947359D-16 + 3 15 3 19 0.15499804625747D+00 0.34882099398396D-16 + 1 16 3 19 0.19049686090145D+00 0.21421028745025D-18 + 2 16 3 19 -0.52128788298783D-01 -0.23387473848692D-17 + 3 16 3 19 0.14254411493812D+00 -0.15697754834492D-16 + 1 17 3 19 0.36501365675269D-02 -0.16966539629718D-18 + 2 17 3 19 -0.27708198192499D-02 -0.11800868917182D-17 + 3 17 3 19 -0.25609173438377D+00 -0.21775581975736D-18 + 1 18 3 19 0.80488204615412D-03 -0.33994998676055D-18 + 2 18 3 19 -0.75794711745999D-01 0.13774940632000D-17 + 3 18 3 19 -0.36966588801673D+00 -0.34814411893888D-17 + 1 19 3 19 0.34256587073392D+01 0.00000000000000D+00 + 2 19 3 19 0.62995371830205D+00 0.00000000000000D+00 + 3 19 3 19 0.12277108058833D+03 0.00000000000000D+00 + 1 20 3 19 -0.53321962162254D-01 -0.82383978031820D-18 + 2 20 3 19 0.25872687761076D-01 0.45928936810531D-18 + 3 20 3 19 -0.95554353237722D-01 -0.57403448359371D-18 + 1 21 3 19 -0.36046341819235D-01 0.74098008451985D-18 + 2 21 3 19 0.11411960095221D+00 -0.55224679662300D-18 + 3 21 3 19 0.15513921470717D+01 -0.66053002245006D-18 + 1 22 3 19 0.37629163850711D-01 -0.79208124560165D-17 + 2 22 3 19 -0.10028054761513D+01 0.69613785423811D-17 + 3 22 3 19 0.10020919058717D+01 -0.52992133072571D-17 + 1 23 3 19 0.46994349775083D-01 -0.48415618946926D-18 + 2 23 3 19 -0.40416366528409D-01 0.13095559797380D-17 + 3 23 3 19 -0.31749180709190D+00 0.18336966568627D-17 + 1 24 3 19 -0.36011376274162D+00 0.22344814157636D-16 + 2 24 3 19 -0.29133872444978D+00 0.19304218285508D-16 + 3 24 3 19 0.14604195947365D+00 0.25715611946443D-17 + 1 25 3 19 0.41780254090830D+00 -0.21570316427225D-16 + 2 25 3 19 -0.48020796007542D+00 0.19811023097068D-16 + 3 25 3 19 -0.51011838563335D+00 0.93394427581177D-16 + 1 26 3 19 0.14083423636586D+02 0.27097238097715D-17 + 2 26 3 19 -0.14783799473417D+02 -0.33948793399899D-16 + 3 26 3 19 -0.26651846455054D+02 -0.26145613476017D-15 + 1 27 3 19 0.26928149076513D+00 -0.23897968853746D-16 + 2 27 3 19 -0.23445931572647D+00 -0.30556979870286D-16 + 3 27 3 19 0.34107393969034D+00 0.25043886619214D-15 + 1 28 3 19 0.31903292504865D+00 -0.99502342233388D-17 + 2 28 3 19 -0.57215740886046D+00 -0.12327839376105D-16 + 3 28 3 19 -0.87452191548157D+00 0.14607965827810D-15 + 1 29 3 19 0.19633221284503D-01 -0.19413253573816D-16 + 2 29 3 19 -0.13890585649113D+00 -0.41397105450678D-17 + 3 29 3 19 0.22596097662279D+00 0.45915013693789D-16 + 1 30 3 19 0.30221072566819D+00 0.38792688663992D-16 + 2 30 3 19 0.44990739332757D+00 -0.19007289392038D-17 + 3 30 3 19 0.40863253993532D+00 0.10228138619209D-15 + 1 31 3 19 0.39126828577219D+00 0.25880222447687D-16 + 2 31 3 19 -0.44826197649394D+00 0.36643202420704D-17 + 3 31 3 19 -0.55512387936140D+00 -0.29901061534883D-15 + 1 32 3 19 -0.27447155986465D-01 -0.35160675500294D-16 + 2 32 3 19 0.10691912141850D+01 0.92175713418735D-16 + 3 32 3 19 0.12432638468928D+01 0.11786439371834D-16 + 1 33 3 19 0.12748485259548D+01 0.44691400109622D-16 + 2 33 3 19 -0.10021922192644D+01 0.73354182546661D-16 + 3 33 3 19 0.28933820724064D+01 0.12629467890415D-16 + 1 34 3 19 -0.93528066163435D-01 0.22362936984160D-15 + 2 34 3 19 -0.15415690230455D+00 0.56251109748752D-16 + 3 34 3 19 0.54598954673188D-01 -0.91685473963737D-16 + 1 35 3 19 -0.14160356266369D+01 -0.34449245606120D-16 + 2 35 3 19 -0.14307103494987D+01 0.23529090531261D-16 + 3 35 3 19 0.30102194717558D+01 -0.21849874737423D-17 + 1 36 3 19 0.16758652877981D+00 0.82364067354397D-16 + 2 36 3 19 0.19848275994538D+00 -0.19295819584128D-16 + 3 36 3 19 0.92045836170672D-01 -0.74095351217670D-16 + 1 37 3 19 0.16276630588903D+01 0.61850619892563D-16 + 2 37 3 19 0.14062279707536D+01 -0.34660927493901D-16 + 3 37 3 19 0.28299399254470D+01 -0.56554227968818D-16 + 1 38 3 19 -0.21515632650469D+00 -0.86832516831254D-16 + 2 38 3 19 -0.57395443418603D-01 -0.37300082255632D-16 + 3 38 3 19 0.10115026623172D+00 -0.79406680511875D-16 + 1 39 3 19 -0.12509741864495D+01 0.24540085082101D-16 + 2 39 3 19 0.11229219114031D+01 -0.21930268276661D-16 + 3 39 3 19 0.31297097965360D+01 -0.28262103218206D-17 + 1 40 3 19 0.35239402038777D+00 -0.53901991765217D-16 + 2 40 3 19 0.29567997302833D+00 -0.19758928336572D-16 + 3 40 3 19 0.19045136784063D+00 0.14814394160147D-15 + 1 41 3 19 -0.51547249503314D+00 0.17213760079339D-16 + 2 41 3 19 0.59930329214815D+00 -0.41446051613458D-17 + 3 41 3 19 -0.51190641997774D+00 0.23737690592354D-15 + 1 42 3 19 -0.14835666597383D+02 0.55488322367526D-16 + 2 42 3 19 0.18445644366106D+02 -0.13826681903673D-16 + 3 42 3 19 -0.26885952984624D+02 0.32899020344615D-15 + 1 43 3 19 -0.23104945061832D+00 0.62299699897276D-16 + 2 43 3 19 -0.16842214387475D+00 -0.12234731191409D-16 + 3 43 3 19 0.27420601099825D+00 -0.10326546938978D-15 + 1 44 3 19 -0.45618244863945D+00 0.88549399794990D-17 + 2 44 3 19 0.47710773077174D+00 -0.10714530929057D-16 + 3 44 3 19 -0.80735361833169D+00 0.35685919615386D-15 + 1 45 3 19 -0.84150502029055D-02 0.10969011853597D-16 + 2 45 3 19 -0.18427734937983D-01 0.26888684818022D-17 + 3 45 3 19 0.29520040261450D+00 -0.83635099776490D-16 + 1 46 3 19 0.17548457128179D+00 -0.33633014306338D-17 + 2 46 3 19 -0.18019124741022D+00 -0.13003098576296D-16 + 3 46 3 19 0.31305621381469D-01 -0.17493368613575D-15 + 1 47 3 19 -0.51417559201220D+00 -0.20154386863327D-16 + 2 47 3 19 0.69117859893013D+00 -0.13207636505344D-16 + 3 47 3 19 -0.37756417728968D+00 0.12624556554669D-15 + 1 48 3 19 0.12521758778296D+00 0.56090120005904D-17 + 2 48 3 19 0.16403408343849D+00 -0.29580683015739D-16 + 3 48 3 19 -0.26027564892998D+00 0.31592670887913D-15 + 1 49 3 19 -0.10929782699040D+00 0.29359459586108D-17 + 2 49 3 19 0.14001481061544D+00 0.33094870224142D-16 + 3 49 3 19 -0.21619915347569D+00 0.16848744234877D-15 + 1 50 3 19 -0.39313346883589D+01 0.33092428549420D-17 + 2 50 3 19 -0.26312833464488D+00 -0.62677192738234D-17 + 3 50 3 19 -0.50448506524643D+01 0.94539205300297D-16 + 1 51 3 19 0.30926262122503D+01 0.53451159360169D-18 + 2 51 3 19 0.12001748544478D+01 -0.33685921240443D-16 + 3 51 3 19 -0.29700809879205D+01 0.22947496287275D-15 + 1 52 3 19 -0.21810506358726D+00 -0.11349321475576D-17 + 2 52 3 19 0.56988572847703D-01 0.32361618544529D-16 + 3 52 3 19 -0.42455260074795D+00 -0.15285919040249D-15 + 1 53 3 19 0.99376337698371D-01 0.24785633136621D-17 + 2 53 3 19 -0.10250397564470D+00 0.12867323420640D-16 + 3 53 3 19 -0.20308108836415D+00 -0.49421771668621D-16 + 1 54 3 19 0.31565116753994D+01 -0.45492685571152D-17 + 2 54 3 19 -0.14939482683633D+01 -0.28799465240624D-16 + 3 54 3 19 -0.31160979668871D+01 -0.12201558130494D-15 + 1 55 3 19 -0.35866822654581D+01 0.40107262304795D-17 + 2 55 3 19 -0.12650830491787D+01 -0.27282309284495D-16 + 3 55 3 19 -0.32056288879744D+01 0.11646157181484D-15 + 1 56 3 19 0.52165191449956D+00 -0.66555972337269D-16 + 2 56 3 19 0.43526276143988D+00 -0.30171442959956D-17 + 3 56 3 19 -0.60975442156202D+00 -0.88977845945593D-16 + 1 57 3 19 -0.35138773653670D+00 0.22364778190726D-16 + 2 57 3 19 0.37492435584405D+00 -0.19356780105825D-16 + 3 57 3 19 0.20982897868919D+00 -0.13219468283424D-15 + 1 58 3 19 0.83325922317388D+00 0.99306705338507D-16 + 2 58 3 19 0.37174795431042D-01 0.16529861679176D-16 + 3 58 3 19 0.10055228481423D+01 0.17789075995516D-15 + 1 59 3 19 0.14117436603271D+02 0.62768305833522D-17 + 2 59 3 19 0.13709035226119D+02 -0.72510962659043D-18 + 3 59 3 19 -0.25536535365739D+02 0.28711644035674D-15 + 1 60 3 19 -0.17540967717463D+00 0.31073276884841D-17 + 2 60 3 19 0.20826631690892D+00 -0.15015221351173D-16 + 3 60 3 19 0.53148809985973D+00 0.10929397325789D-16 + 1 61 3 19 0.36482159917444D+00 0.31901069980733D-16 + 2 61 3 19 0.46614700581314D+00 -0.84869138843943D-17 + 3 61 3 19 -0.91736458850017D+00 -0.27666479237562D-16 + 1 62 3 19 0.35059274663601D+00 0.20997715088645D-16 + 2 62 3 19 0.23675050006732D+00 -0.47252587829578D-17 + 3 62 3 19 -0.62129055617945D+00 -0.10810334676229D-15 + 1 63 3 19 0.29686620036028D+00 -0.13595645433099D-16 + 2 63 3 19 -0.32225879136919D+00 -0.21750750330247D-16 + 3 63 3 19 0.22912581400825D+00 0.36042893690696D-15 + 1 64 3 19 -0.93420599972246D-01 0.17525584388844D-16 + 2 64 3 19 0.61281025647687D-01 -0.10496102966009D-16 + 3 64 3 19 -0.31062896647660D+00 0.24877573900658D-16 + 1 65 3 19 -0.93202794916058D+00 -0.59591577315243D-16 + 2 65 3 19 -0.82400616371946D+00 0.14948491666061D-16 + 3 65 3 19 -0.84622544378206D+00 -0.24946689235100D-15 + 1 1 1 20 -0.19885450472417D-01 0.40863068396414D-16 + 2 1 1 20 0.12899902445748D+00 0.94426678049469D-17 + 3 1 1 20 -0.13569498302180D+00 0.13320222854751D-16 + 1 2 1 20 -0.40115266392874D-01 0.34637332659327D-16 + 2 2 1 20 -0.34258093331186D-01 0.21839726658352D-16 + 3 2 1 20 -0.42487475494266D-01 -0.11834155769899D-17 + 1 3 1 20 0.28208267547113D-01 -0.45198508755981D-16 + 2 3 1 20 0.43402375418692D-01 -0.28672188716737D-16 + 3 3 1 20 0.46389530140496D-01 -0.25402820037059D-16 + 1 4 1 20 -0.21972711183071D-01 0.41115013451165D-16 + 2 4 1 20 -0.98113074926448D-01 0.29292117070040D-16 + 3 4 1 20 0.11243027226998D+00 -0.70621260084228D-17 + 1 5 1 20 0.28295565651853D+01 0.15254713937961D-15 + 2 5 1 20 0.18739913392291D+01 0.26622610538364D-16 + 3 5 1 20 -0.13275629014228D+01 -0.31955456491556D-16 + 1 6 1 20 0.32152539957641D+01 0.55784047677691D-16 + 2 6 1 20 -0.12454641439855D+01 -0.28582476346542D-16 + 3 6 1 20 -0.12172360738130D+01 0.79615587877984D-17 + 1 7 1 20 0.30841850336173D+01 0.25344405409726D-16 + 2 7 1 20 0.12743152760817D+01 -0.12644092349004D-16 + 3 7 1 20 0.13256739918059D+01 0.75522850715321D-17 + 1 8 1 20 0.29685174375502D+01 0.13335874592546D-16 + 2 8 1 20 -0.14116852895950D+01 0.10978216163984D-16 + 3 8 1 20 0.12951198397229D+01 0.28156822611992D-17 + 1 9 1 20 0.48013010771479D+00 -0.42235148405680D-17 + 2 9 1 20 -0.32736140817266D+00 0.56043915809613D-17 + 3 9 1 20 -0.26615944633488D+00 0.73916356672437D-16 + 1 10 1 20 -0.34863044532183D+00 -0.12424013911714D-15 + 2 10 1 20 -0.47660882281160D+00 0.65822291134060D-18 + 3 10 1 20 -0.43777978912026D+00 -0.15425641967472D-16 + 1 11 1 20 -0.37485941932136D+00 0.18924944580333D-15 + 2 11 1 20 -0.49380935933888D+00 0.44004452227622D-17 + 3 11 1 20 -0.41799765230709D+00 0.19546752539155D-16 + 1 12 1 20 0.24400776122668D+00 -0.28702733595063D-17 + 2 12 1 20 0.13187086874682D-02 0.22105499811987D-16 + 3 12 1 20 0.37230511438905D-01 0.89570752794313D-16 + 1 13 1 20 -0.26419464735399D+02 0.27017589416552D-15 + 2 13 1 20 -0.14605098310297D+02 -0.20901237723021D-16 + 3 13 1 20 -0.14023698877720D+02 -0.81456554464450D-17 + 1 14 1 20 0.20209056579024D+00 0.84511829906992D-16 + 2 14 1 20 0.34304785153450D+00 -0.17217499972403D-17 + 3 14 1 20 -0.33052259598516D+00 -0.28479652605726D-16 + 1 15 1 20 -0.77719381706603D+00 0.46424143380565D-16 + 2 15 1 20 -0.42176664241324D+00 0.89815583546453D-17 + 3 15 1 20 -0.48063399579718D+00 -0.67809242368819D-17 + 1 16 1 20 -0.35562475976301D+00 -0.39361101573374D-17 + 2 16 1 20 0.46994349775083D-01 0.14071988065567D-17 + 3 16 1 20 0.24461857082303D-02 0.12723090354911D-17 + 1 17 1 20 -0.14651597359657D+00 0.85757593890708D-18 + 2 17 1 20 0.78310784482451D-02 -0.45425307206972D-18 + 3 17 1 20 0.41467919487292D-01 0.15702533151149D-17 + 1 18 1 20 -0.10369009279273D+00 -0.26692435890942D-17 + 2 18 1 20 -0.36928784194138D-01 0.73875501055057D-18 + 3 18 1 20 -0.25660247315378D-01 0.35039849697259D-17 + 1 19 1 20 -0.16720242091942D+00 0.27676091089674D-17 + 2 19 1 20 -0.50822928074397D-01 -0.68912404707173D-19 + 3 19 1 20 -0.53321962162254D-01 0.82383978031820D-18 + 1 20 1 20 0.12009846314917D+03 0.00000000000000D+00 + 2 20 1 20 0.17989040590746D+01 0.00000000000000D+00 + 3 20 1 20 -0.59488669410110D-01 0.00000000000000D+00 + 1 21 1 20 -0.23565771303351D+00 0.14368502602853D-17 + 2 21 1 20 0.25941992352620D-01 -0.45396187795706D-19 + 3 21 1 20 -0.76325334859225D-02 -0.40797001171944D-18 + 1 22 1 20 -0.83718992029360D-01 -0.15776484776609D-16 + 2 22 1 20 -0.39005282841352D+00 0.78456407650399D-17 + 3 22 1 20 0.32925776099028D+00 -0.63694747157558D-17 + 1 23 1 20 0.14728015480932D+01 -0.62333699652000D-18 + 2 23 1 20 -0.63626998041331D-01 0.61229585731203D-18 + 3 23 1 20 -0.27724378819635D-01 0.35552200796200D-18 + 1 24 1 20 -0.39161458132897D+00 0.61512267467246D-16 + 2 24 1 20 0.39173006312075D+00 -0.80721187313783D-17 + 3 24 1 20 0.47745269960845D+00 0.60805681425105D-17 + 1 25 1 20 0.48538142032128D+00 -0.64372142554145D-16 + 2 25 1 20 0.33034754534778D+00 -0.11922531302376D-16 + 3 25 1 20 0.26829885043047D+00 -0.55854201132877D-16 + 1 26 1 20 0.28559695976660D+00 -0.38155920567023D-15 + 2 26 1 20 0.37134587379392D-01 0.23567301226786D-17 + 3 26 1 20 -0.31288499790043D-02 0.31704384546728D-16 + 1 27 1 20 -0.39730649977230D+00 0.11562101472003D-16 + 2 27 1 20 0.46150686927487D+00 -0.30626478554956D-16 + 3 27 1 20 0.50064688040607D+00 -0.17651426523433D-16 + 1 28 1 20 0.16030304388451D+00 0.82818389047787D-16 + 2 28 1 20 -0.30651034623013D+00 -0.74902030141556D-17 + 3 28 1 20 0.20850740465840D+00 0.66836894345733D-17 + 1 29 1 20 -0.25328120975725D+02 0.35151140146296D-16 + 2 29 1 20 0.13400572938525D+02 0.56120237374339D-17 + 3 29 1 20 0.13149198839102D+02 0.23868616034641D-17 + 1 30 1 20 -0.79080780410654D+00 -0.26782557309205D-15 + 2 30 1 20 0.53313172251161D+00 -0.78278640172888D-18 + 3 30 1 20 0.53886715642619D+00 0.28141181320215D-16 + 1 31 1 20 0.25002441018998D+00 -0.11146966522940D-15 + 2 31 1 20 0.35525035041938D+00 0.39446027602214D-16 + 3 31 1 20 -0.29589742680318D+00 -0.25182043805573D-16 + 1 32 1 20 -0.31805611728353D+01 0.19731639887360D-15 + 2 32 1 20 0.32919452336551D+01 -0.28231852370825D-17 + 3 32 1 20 0.17990004975472D+01 -0.10338263572847D-15 + 1 33 1 20 -0.24776983014886D+00 -0.30915754306250D-15 + 2 33 1 20 -0.73906612608213D-01 -0.53702784361112D-18 + 3 33 1 20 0.14352455831500D+00 0.88615286009805D-16 + 1 34 1 20 -0.31818805466033D+01 0.12800624107545D-15 + 2 34 1 20 -0.30751735322857D+01 -0.81503524000265D-18 + 3 34 1 20 -0.13625469848010D+01 0.38543236644370D-16 + 1 35 1 20 -0.22820373706450D+00 -0.53940169382821D-16 + 2 35 1 20 0.78657874930479D-01 0.15289067096436D-17 + 3 35 1 20 -0.11060314530730D+00 -0.68101975948079D-16 + 1 36 1 20 -0.30031823137819D+01 -0.16197216011424D-15 + 2 36 1 20 -0.30962339742665D+01 0.20632684808422D-17 + 3 36 1 20 0.11823768965084D+01 -0.25405871447151D-16 + 1 37 1 20 -0.20285354699657D+00 -0.79446217725823D-16 + 2 37 1 20 0.89658032623899D-01 -0.17898716554151D-17 + 3 37 1 20 0.93528066163432D-01 0.86291044858657D-16 + 1 38 1 20 -0.29949756481198D+01 0.81784950809619D-17 + 2 38 1 20 0.30926262122503D+01 -0.34783036968134D-18 + 3 38 1 20 -0.13678659944496D+01 0.66312412741065D-17 + 1 39 1 20 -0.23862176796399D+00 -0.27120040618501D-15 + 2 39 1 20 -0.11390436163443D+00 0.84632729461301D-18 + 3 39 1 20 -0.86016099995367D-01 0.23488436918389D-16 + 1 40 1 20 -0.44551561571322D+00 -0.54593443427204D-16 + 2 40 1 20 0.48848716900826D+00 -0.81708828134234D-17 + 3 40 1 20 -0.52437964590650D+00 -0.81600668258265D-17 + 1 41 1 20 0.47011509603786D+00 -0.22799136698421D-17 + 2 41 1 20 0.24424858336586D+00 0.32946601695342D-16 + 3 41 1 20 -0.32358218209426D+00 0.71791831483968D-17 + 1 42 1 20 0.20033384962360D+00 0.90599889973678D-16 + 2 42 1 20 0.17379472240560D+00 -0.14355961634205D-16 + 3 42 1 20 -0.10281033293596D+00 0.17569445221960D-17 + 1 43 1 20 -0.49336914517857D+00 0.46591332966349D-16 + 2 43 1 20 0.64346728371812D-01 0.91695138993658D-17 + 3 43 1 20 -0.25450899472504D+00 -0.17218805183224D-16 + 1 44 1 20 0.17633524868552D+00 -0.10327403089871D-15 + 2 44 1 20 -0.27566745941855D+00 0.23702433369460D-16 + 3 44 1 20 -0.29923597616247D+00 0.99433516575533D-17 + 1 45 1 20 -0.25336542636213D+02 -0.41419960076828D-16 + 2 45 1 20 0.13733332541572D+02 0.18770671258755D-16 + 3 45 1 20 -0.13816776238180D+02 0.79924202983789D-18 + 1 46 1 20 -0.78153175645181D+00 -0.17974558678629D-15 + 2 46 1 20 0.37756050303363D+00 -0.18962835933713D-16 + 3 46 1 20 -0.31197724830339D+00 0.26385195184157D-16 + 1 47 1 20 0.27912912720102D+00 -0.17559730273506D-15 + 2 47 1 20 0.35569019419802D+00 0.19728211492267D-17 + 3 47 1 20 0.42098272698905D+00 -0.42346816052148D-17 + 1 48 1 20 -0.30238806664967D+01 -0.22079206717871D-15 + 2 48 1 20 -0.12921767328817D+01 0.21219740703654D-16 + 3 48 1 20 -0.32845967229457D+01 -0.58629928458017D-17 + 1 49 1 20 -0.31052957392000D+01 -0.12472418136209D-15 + 2 49 1 20 0.11850558323564D+01 -0.40452714697435D-17 + 3 49 1 20 0.32289744110740D+01 0.61694850901565D-18 + 1 50 1 20 -0.21143668169989D+00 -0.13145602569620D-15 + 2 50 1 20 -0.46714702670666D+00 0.11579390015129D-16 + 3 50 1 20 -0.37172800955782D+00 -0.45379430344381D-17 + 1 51 1 20 -0.24757479388526D+00 -0.11094990667921D-15 + 2 51 1 20 0.43841709977766D-01 0.29781310070681D-16 + 3 51 1 20 -0.94115504274791D-01 -0.68802348215832D-18 + 1 52 1 20 -0.29233488661134D+01 0.21641966391232D-15 + 2 52 1 20 -0.12748485259548D+01 -0.39648319443467D-16 + 3 52 1 20 0.28728526686265D+01 0.37651195176758D-18 + 1 53 1 20 -0.30470853174333D+01 0.66417204598159D-16 + 2 53 1 20 0.13286275214552D+01 0.14084053505806D-16 + 3 53 1 20 -0.31172863636170D+01 0.25812682328593D-17 + 1 54 1 20 -0.23467698998718D+00 -0.15838217028898D-15 + 2 54 1 20 -0.12180751841965D+00 -0.71838872464106D-17 + 3 54 1 20 -0.96415435917294D-01 -0.26421813835061D-18 + 1 55 1 20 -0.20352226633814D+00 -0.23920291452705D-15 + 2 55 1 20 0.10774984940750D-01 -0.64390128453362D-16 + 3 55 1 20 0.12521758778296D+00 0.64507054104318D-17 + 1 56 1 20 0.57599511951001D+00 -0.32774061053566D-16 + 2 56 1 20 -0.26938321812239D+00 -0.51361462487319D-17 + 3 56 1 20 0.35996202666302D+00 -0.29706163359109D-16 + 1 57 1 20 -0.31512814179122D+00 -0.15830644353592D-15 + 2 57 1 20 -0.48369823738220D+00 -0.12811031742339D-16 + 3 57 1 20 0.41510684461685D+00 -0.88470279795713D-17 + 1 58 1 20 -0.17175783798410D+00 -0.16258491874971D-15 + 2 58 1 20 -0.52011348209475D+00 0.72534985695762D-17 + 3 58 1 20 0.53061614381882D+00 0.37386886284951D-16 + 1 59 1 20 0.25748660815604D+00 -0.17850854161482D-16 + 2 59 1 20 -0.22643509870745D-01 -0.48982011844094D-18 + 3 59 1 20 0.13334431757601D-01 0.83595761962810D-17 + 1 60 1 20 -0.28281032658509D+02 -0.80374962244031D-16 + 2 60 1 20 -0.13867197110953D+02 0.32202961084144D-16 + 3 60 1 20 0.14992323709904D+02 0.36254086603718D-16 + 1 61 1 20 0.15328911515379D+00 0.30830191078068D-15 + 2 61 1 20 0.31389755507366D+00 0.19930216831347D-16 + 3 61 1 20 0.29601155427098D+00 0.15430948913538D-16 + 1 62 1 20 0.19042103809356D+00 -0.14382483090267D-15 + 2 62 1 20 -0.30050836975059D+00 -0.68209860087920D-17 + 3 62 1 20 -0.42205070125685D+00 -0.14374361041685D-16 + 1 63 1 20 -0.75060432465814D+00 -0.28546666021329D-16 + 2 63 1 20 -0.43144431608079D+00 0.22099223422096D-16 + 3 63 1 20 0.41642775373069D+00 -0.55638129456639D-16 + 1 64 1 20 0.33464851426696D+00 0.12245239902546D-16 + 2 64 1 20 0.15341231451758D-01 0.22365781583262D-16 + 3 64 1 20 -0.30892971086146D+00 -0.23417670895224D-16 + 1 65 1 20 0.14545606074375D+00 -0.24564807444424D-15 + 2 65 1 20 -0.32150795395447D+00 0.12973836312013D-16 + 3 65 1 20 0.18222667758373D+00 0.50677705920911D-16 + 1 1 2 20 -0.54960985429206D-01 0.94426678049469D-17 + 2 1 2 20 -0.22758195861379D+00 0.21538868830163D-16 + 3 1 2 20 -0.86008039398326D-01 0.79307308430429D-18 + 1 2 2 20 0.15890958213719D+00 0.21839726658352D-16 + 2 2 2 20 -0.23088084729193D+00 -0.20254274018655D-15 + 3 2 2 20 -0.21360777461589D-02 -0.29263103626649D-17 + 1 3 2 20 -0.18188827530424D+00 -0.28672188716737D-16 + 2 3 2 20 -0.14082776768839D+00 -0.37053011872614D-16 + 3 3 2 20 0.16359920195150D+00 -0.18745344824219D-18 + 1 4 2 20 0.11346762956114D+00 0.29292117070040D-16 + 2 4 2 20 -0.22877355990031D+00 0.16700840353997D-15 + 3 4 2 20 -0.94812845415089D-01 -0.13379666142138D-18 + 1 5 2 20 -0.15565761819559D+01 0.26622610538364D-16 + 2 5 2 20 -0.34528163015957D+01 0.19548370160732D-15 + 3 5 2 20 0.30549193890543D+01 -0.17240908136765D-18 + 1 6 2 20 0.12172360738130D+01 -0.28582476346542D-16 + 2 6 2 20 -0.30589887005169D+01 -0.59556271054967D-16 + 3 6 2 20 -0.33428811390469D+01 0.45215346691055D-17 + 1 7 2 20 -0.12743152760817D+01 -0.12644092349004D-16 + 2 7 2 20 -0.30528471590872D+01 -0.31945981137235D-15 + 3 7 2 20 -0.31608079795357D+01 0.75382141226207D-18 + 1 8 2 20 0.13774526215980D+01 0.10978216163984D-16 + 2 8 2 20 -0.30064990613072D+01 -0.24734818861056D-15 + 3 8 2 20 0.32361500471502D+01 -0.27490469975869D-17 + 1 9 2 20 -0.35256230231852D+00 0.56043915809613D-17 + 2 9 2 20 0.25949803950828D+00 -0.10466817814450D-15 + 3 9 2 20 0.25535070192153D+00 -0.33818284778258D-16 + 1 10 2 20 -0.48649535332304D+00 0.65822291134060D-18 + 2 10 2 20 -0.77455766109876D+00 0.24378147664577D-16 + 3 10 2 20 -0.46398375705643D+00 -0.82987895481107D-16 + 1 11 2 20 -0.45485711635127D+00 0.44004452227622D-17 + 2 11 2 20 -0.38497280717366D+00 0.63473040492006D-16 + 3 11 2 20 -0.50796404958534D+00 0.24666821211235D-16 + 1 12 2 20 -0.24072133695193D-01 0.22105499811987D-16 + 2 12 2 20 0.26293960391363D+00 0.16291336134509D-15 + 3 12 2 20 -0.46328043538556D-01 0.47718039654249D-16 + 1 13 2 20 -0.14501181111330D+02 -0.20901237723021D-16 + 2 13 2 20 -0.26558150007281D+02 0.61025122145265D-16 + 3 13 2 20 -0.14386353091133D+02 -0.82600325334601D-16 + 1 14 2 20 0.31337407013406D+00 -0.17217499972403D-17 + 2 14 2 20 0.13351320252147D+00 0.14027485302501D-15 + 3 14 2 20 -0.30326750866985D+00 -0.96582937530856D-17 + 1 15 2 20 -0.48505645736949D+00 0.89815583546453D-17 + 2 15 2 20 -0.39950504984975D+00 -0.68671151383725D-16 + 3 15 2 20 -0.46398081912002D+00 -0.67244493111106D-17 + 1 16 2 20 -0.73118224368082D-01 0.14071988065567D-17 + 2 16 2 20 -0.31749180709190D+00 -0.55626601877335D-17 + 3 16 2 20 -0.34358997781744D-01 0.14587789752561D-17 + 1 17 2 20 -0.12570281290532D-01 -0.45425307206972D-18 + 2 17 2 20 0.15339790868766D+01 -0.20566724058246D-17 + 3 17 2 20 -0.11097588776132D-01 0.59950263126130D-18 + 1 18 2 20 -0.13312149805395D-01 0.73875501055057D-18 + 2 18 2 20 -0.10442409181147D+00 0.50856489051574D-17 + 3 18 2 20 0.70096081780645D-02 -0.99420162354768D-18 + 1 19 2 20 0.22811652599747D-01 -0.68912404707173D-19 + 2 19 2 20 -0.84272004536131D-01 -0.32823333502959D-18 + 3 19 2 20 0.25872687761076D-01 -0.45928936810531D-18 + 1 20 2 20 0.17989040590746D+01 0.00000000000000D+00 + 2 20 2 20 0.11772786846936D+03 0.00000000000000D+00 + 3 20 2 20 0.13236166824962D+01 0.00000000000000D+00 + 1 21 2 20 0.15542216925408D-01 -0.45396187795706D-19 + 2 21 2 20 -0.23998152292439D+00 -0.55814842765762D-17 + 3 21 2 20 0.74889325537827D-02 0.66354263506717D-18 + 1 22 2 20 0.11599296174228D+00 0.78456407650399D-17 + 2 22 2 20 0.12797076026957D+00 -0.10777046814287D-16 + 3 22 2 20 -0.39305705776451D+00 -0.33064374887151D-17 + 1 23 2 20 -0.27724378819635D-01 0.61229585731203D-18 + 2 23 2 20 -0.12727626599595D+00 -0.51134008513887D-17 + 3 23 2 20 0.79348798505183D-01 -0.10503602707100D-17 + 1 24 2 20 0.45721072852454D+00 -0.80721187313783D-17 + 2 24 2 20 -0.78452529044151D+00 0.14506776956477D-15 + 3 24 2 20 -0.39877880383947D+00 -0.20457612496548D-16 + 1 25 2 20 0.31415557033784D+00 -0.11922531302376D-16 + 2 25 2 20 0.15344209870445D+00 -0.17044527235151D-15 + 3 25 2 20 0.32390006586087D+00 -0.91300959016789D-17 + 1 26 2 20 0.28476319214343D-02 0.23567301226786D-17 + 2 26 2 20 0.25776364732935D+00 0.36689938583638D-15 + 3 26 2 20 -0.66675456039065D-02 -0.21452236915008D-16 + 1 27 2 20 0.47565222349130D+00 -0.30626478554956D-16 + 2 27 2 20 -0.36260602341347D+00 -0.23234791470543D-15 + 3 27 2 20 -0.49763141720443D+00 -0.96564040696890D-17 + 1 28 2 20 -0.29804618665443D+00 -0.74902030141556D-17 + 2 28 2 20 0.27170792927837D+00 0.85132144243396D-16 + 3 28 2 20 -0.15134694933494D+00 0.27712183935749D-16 + 1 29 2 20 0.13571489657005D+02 0.56120237374339D-17 + 2 29 2 20 -0.25398477425812D+02 0.22164898080262D-15 + 3 29 2 20 -0.13622835122802D+02 -0.37928740398923D-17 + 1 30 2 20 0.49802215951676D+00 -0.78278640172888D-18 + 2 30 2 20 -0.45776171415234D+00 0.10843660176842D-15 + 3 30 2 20 -0.49454898553087D+00 -0.47247079069708D-16 + 1 31 2 20 0.27016392427595D+00 0.39446027602214D-16 + 2 31 2 20 0.42103726169297D+00 -0.22653907777844D-15 + 3 31 2 20 -0.32161347997771D+00 0.15480234472172D-16 + 1 32 2 20 0.29031814937507D+01 -0.28231852370825D-17 + 2 32 2 20 -0.31495638884331D+01 -0.12859065356327D-15 + 3 32 2 20 -0.15092623549221D+01 0.44874447647660D-16 + 1 33 2 20 -0.94115504274793D-01 -0.53702784361112D-18 + 2 33 2 20 -0.21706843664551D+00 0.38156389994464D-16 + 3 33 2 20 -0.97785945508698D-01 0.24688538423966D-16 + 1 34 2 20 -0.30751735322857D+01 -0.81503524000265D-18 + 2 34 2 20 -0.29297901679364D+01 -0.13271233948623D-15 + 3 34 2 20 -0.12816300215294D+01 -0.59103011242216D-16 + 1 35 2 20 0.10067823622293D+00 0.15289067096436D-17 + 2 35 2 20 -0.20851766763871D+00 -0.11984878072636D-17 + 3 35 2 20 -0.74387259052580D-01 0.90578825073098D-16 + 1 36 2 20 -0.33550916598139D+01 0.20632684808422D-17 + 2 36 2 20 -0.29958810583551D+01 -0.88486866935937D-17 + 3 36 2 20 0.12333277166283D+01 -0.27800423563111D-16 + 1 37 2 20 0.21870410963721D-01 -0.17898716554151D-17 + 2 37 2 20 -0.21577894633812D+00 -0.28732434608854D-15 + 3 37 2 20 0.15415690230455D+00 0.60914879253826D-16 + 1 38 2 20 0.30971891017044D+01 -0.34783036968134D-18 + 2 38 2 20 -0.29700809879205D+01 -0.23006132581855D-15 + 3 38 2 20 0.13483055546319D+01 0.97440046159176D-16 + 1 39 2 20 -0.82702315888195D-01 0.84632729461301D-18 + 2 39 2 20 -0.22618681439698D+00 -0.12143398351919D-15 + 3 39 2 20 0.11218963836733D+00 -0.68254242384427D-16 + 1 40 2 20 0.46486050728527D+00 -0.81708828134234D-17 + 2 40 2 20 -0.84989106608483D+00 -0.27895616684862D-15 + 3 40 2 20 0.43513197182491D+00 -0.14790196915499D-16 + 1 41 2 20 0.24689778800014D+00 0.32946601695342D-16 + 2 41 2 20 0.18184668037693D+00 0.59541488765687D-16 + 3 41 2 20 -0.30091129439677D+00 0.32218093148700D-16 + 1 42 2 20 0.15681017887169D+00 -0.14355961634205D-16 + 2 42 2 20 0.16229330172928D+00 -0.20997717909416D-15 + 3 42 2 20 0.98401233411654D-01 -0.12085057412356D-16 + 1 43 2 20 0.43441998613114D+00 0.91695138993658D-17 + 2 43 2 20 -0.13525500815597D+00 -0.10389228541687D-15 + 3 43 2 20 0.33525327094947D+00 0.27864572489313D-16 + 1 44 2 20 -0.31821622388506D+00 0.23702433369460D-16 + 2 44 2 20 0.21967419079835D+00 0.29946785700976D-15 + 3 44 2 20 0.28016256143627D+00 0.17625072387384D-17 + 1 45 2 20 0.13677385535158D+02 0.18770671258755D-16 + 2 45 2 20 -0.25999938377806D+02 -0.10804760760768D-15 + 3 45 2 20 0.13994635157626D+02 0.30547911894961D-16 + 1 46 2 20 0.46840841101349D+00 -0.18962835933713D-16 + 2 46 2 20 -0.21332075910505D+00 -0.11918113666685D-16 + 3 46 2 20 0.29558449714712D+00 0.63970474697449D-16 + 1 47 2 20 0.33872008325705D+00 0.19728211492267D-17 + 2 47 2 20 0.44715972523503D+00 -0.30765117717360D-15 + 3 47 2 20 0.25348016079986D+00 -0.15167476557090D-16 + 1 48 2 20 0.12921767328817D+01 0.21219740703654D-16 + 2 48 2 20 0.31589468614604D+01 -0.33879085733132D-16 + 3 48 2 20 0.13578084798523D+01 0.23118009159770D-16 + 1 49 2 20 -0.11880694090846D+01 -0.40452714697435D-17 + 2 49 2 20 0.30525156815770D+01 -0.77995160868152D-16 + 3 49 2 20 0.13006788073403D+01 0.35545457311037D-16 + 1 50 2 20 0.42131995820271D-01 0.11579390015129D-16 + 2 50 2 20 0.33819761922103D+00 -0.44453079498417D-16 + 3 50 2 20 0.51652952950282D+00 0.10323272464614D-16 + 1 51 2 20 -0.14352455831501D+00 0.29781310070681D-16 + 2 51 2 20 -0.14974612365163D-01 0.82762667778709D-16 + 3 51 2 20 0.97843402870799D-01 0.69733994954786D-17 + 1 52 2 20 0.17402778573232D+01 -0.39648319443467D-16 + 2 52 2 20 0.28933820724064D+01 -0.16223186232103D-16 + 3 52 2 20 -0.13163110477181D+01 0.17487391061456D-16 + 1 53 2 20 -0.12789009470737D+01 0.14084053505806D-16 + 2 53 2 20 0.30490719621776D+01 -0.80807644557985D-16 + 3 53 2 20 -0.13535554609168D+01 0.17169162236542D-17 + 1 54 2 20 0.11471479398950D+00 -0.71838872464106D-17 + 2 54 2 20 -0.37214517100080D-02 0.99202330273667D-16 + 3 54 2 20 -0.86755436131939D-01 -0.18382523845150D-16 + 1 55 2 20 -0.14350644613521D+00 -0.64390128453362D-16 + 2 55 2 20 0.67229337897262D-01 -0.94635811803625D-16 + 3 55 2 20 -0.16403408343850D+00 0.96849871839592D-17 + 1 56 2 20 -0.29550212064913D+00 -0.51361462487319D-17 + 2 56 2 20 0.93208777468673D-01 -0.16791722012160D-15 + 3 56 2 20 -0.25867275679240D+00 -0.22093183465831D-16 + 1 57 2 20 -0.45552372354200D+00 -0.12811031742339D-16 + 2 57 2 20 -0.78338733454981D+00 0.11224482812011D-15 + 3 57 2 20 0.46766185471483D+00 0.16347841504846D-17 + 1 58 2 20 -0.46034884881433D+00 0.72534985695762D-17 + 2 58 2 20 -0.39910233886037D+00 0.16247430637834D-15 + 3 58 2 20 0.27618358262648D+00 0.25582579921043D-17 + 1 59 2 20 -0.44235881324100D-02 -0.48982011844094D-18 + 2 59 2 20 0.26805640929539D+00 -0.11576465629728D-15 + 3 59 2 20 0.30515804448368D-01 -0.62849037170071D-17 + 1 60 2 20 -0.14256821798390D+02 0.32202961084144D-16 + 2 60 2 20 -0.24532491806041D+02 0.23808772187513D-16 + 3 60 2 20 0.12776995690579D+02 -0.84476300288467D-17 + 1 61 2 20 0.26505761927302D+00 0.19930216831347D-16 + 2 61 2 20 0.17637186941305D+00 0.16869885346897D-15 + 3 61 2 20 0.27340328278778D+00 -0.66896645716021D-17 + 1 62 2 20 -0.13762305616936D+00 -0.68209860087920D-17 + 2 62 2 20 0.55573036713750D+00 0.11253634495856D-15 + 3 62 2 20 0.40212139172871D+00 -0.17598337291940D-16 + 1 63 2 20 -0.49830994239345D+00 0.22099223422096D-16 + 2 63 2 20 -0.36088245076100D+00 0.22857808655123D-16 + 3 63 2 20 0.42944402667853D+00 0.21824269190625D-16 + 1 64 2 20 -0.36513389322850D+00 0.22365781583262D-16 + 2 64 2 20 -0.38732122518085D+00 -0.14755317420227D-15 + 3 64 2 20 0.56471974226054D+00 0.27446405073417D-16 + 1 65 2 20 -0.14080624751411D+00 0.12973836312013D-16 + 2 65 2 20 0.18749234272782D+00 -0.13630448184824D-16 + 3 65 2 20 -0.28518279672125D+00 -0.35143633087466D-18 + 1 1 3 20 0.11018956029346D+00 0.13320222854751D-16 + 2 1 3 20 -0.90810637626316D-01 0.79307308430429D-18 + 3 1 3 20 -0.20873637486903D+00 -0.71527089305311D-16 + 1 2 3 20 0.14432681694242D+00 -0.11834155769899D-17 + 2 2 3 20 0.49290147573133D-01 -0.29263103626649D-17 + 3 2 3 20 -0.26792518326819D+00 0.20667967537246D-15 + 1 3 3 20 -0.10915285207293D+00 -0.25402820037059D-16 + 2 3 3 20 0.15173137220633D+00 -0.18745344824219D-18 + 3 3 3 20 -0.19250859648881D+00 0.90554561563633D-16 + 1 4 3 20 -0.10979845495590D+00 -0.70621260084228D-17 + 2 4 3 20 -0.88531530517865D-01 -0.13379666142138D-18 + 3 4 3 20 -0.24801182769949D+00 -0.17621665470154D-15 + 1 5 3 20 0.15177320252663D+01 -0.31955456491556D-16 + 2 5 3 20 0.31092013568370D+01 -0.17240908136765D-18 + 3 5 3 20 -0.25386322377401D+01 -0.21019757999934D-15 + 1 6 3 20 0.12454641439855D+01 0.79615587877984D-17 + 2 6 3 20 -0.31293913227631D+01 0.45215346691055D-17 + 3 6 3 20 -0.30589887005169D+01 0.15804394901253D-15 + 1 7 3 20 -0.13256739918059D+01 0.75522850715321D-17 + 2 7 3 20 -0.31608079795357D+01 0.75382141226207D-18 + 3 7 3 20 -0.29795532850691D+01 -0.23900002709019D-15 + 1 8 3 20 -0.12360040210205D+01 0.28156822611992D-17 + 2 8 3 20 0.31905729764210D+01 -0.27490469975869D-17 + 3 8 3 20 -0.30626394163209D+01 0.25512102986972D-15 + 1 9 3 20 -0.27429826993855D+00 0.73916356672437D-16 + 2 9 3 20 0.28486509201647D+00 -0.33818284778258D-16 + 3 9 3 20 0.12690873433396D+00 0.11028656374174D-15 + 1 10 3 20 -0.44863106048822D+00 -0.15425641967472D-16 + 2 10 3 20 -0.46600777207555D+00 -0.82987895481107D-16 + 3 10 3 20 -0.35985695528310D+00 -0.32432216288890D-16 + 1 11 3 20 -0.46522743564035D+00 0.19546752539155D-16 + 2 11 3 20 -0.45427667066534D+00 0.24666821211235D-16 + 3 11 3 20 -0.76085550268744D+00 0.93703585207525D-16 + 1 12 3 20 0.11266806978940D-01 0.89570752794313D-16 + 2 12 3 20 -0.12652840085353D-01 0.47718039654249D-16 + 3 12 3 20 0.26346517888124D+00 -0.63014669066811D-16 + 1 13 3 20 -0.13897086490667D+02 -0.81456554464450D-17 + 2 13 3 20 -0.14421520332334D+02 -0.82600325334601D-16 + 3 13 3 20 -0.26286632465736D+02 0.14030352647738D-15 + 1 14 3 20 -0.32570656986038D+00 -0.28479652605726D-16 + 2 14 3 20 -0.26596700141830D+00 -0.96582937530856D-17 + 3 14 3 20 0.49508247045830D+00 -0.70248710543231D-16 + 1 15 3 20 -0.45605122386224D+00 -0.67809242368819D-17 + 2 15 3 20 -0.42696613261043D+00 -0.67244493111106D-17 + 3 15 3 20 -0.38733449979395D+00 0.87369273139260D-16 + 1 16 3 20 -0.19184240360456D-02 0.12723090354911D-17 + 2 16 3 20 -0.40416366528409D-01 0.14587789752561D-17 + 3 16 3 20 -0.20671006593297D+00 0.23297768631185D-17 + 1 17 3 20 0.23926507485510D-01 0.15702533151149D-17 + 2 17 3 20 -0.41533968157781D-01 0.59950263126130D-18 + 3 17 3 20 -0.19111969908325D+00 0.26301612883718D-17 + 1 18 3 20 0.24861959050637D-01 0.35039849697259D-17 + 2 18 3 20 -0.44845856798312D-01 -0.99420162354768D-18 + 3 18 3 20 0.14768947477597D+01 0.45792834403331D-17 + 1 19 3 20 0.38930185792205D-01 0.82383978031820D-18 + 2 19 3 20 0.12262395208868D-01 -0.45928936810531D-18 + 3 19 3 20 -0.95554353237722D-01 0.57403448359371D-18 + 1 20 3 20 -0.59488669410110D-01 0.00000000000000D+00 + 2 20 3 20 0.13236166824962D+01 0.00000000000000D+00 + 3 20 3 20 0.11865662793326D+03 0.00000000000000D+00 + 1 21 3 20 0.22284876094396D-01 -0.40797001171944D-18 + 2 21 3 20 -0.67018209271095D-01 0.66354263506717D-18 + 3 21 3 20 -0.39179030205287D+00 0.25643027212245D-17 + 1 22 3 20 -0.24475038061528D-01 -0.63694747157558D-17 + 2 22 3 20 0.28504399934005D+00 -0.33064374887151D-17 + 3 22 3 20 -0.44422357773511D+00 -0.14027441129963D-16 + 1 23 3 20 -0.63626998041331D-01 0.35552200796200D-18 + 2 23 3 20 0.86493072065218D-02 -0.10503602707100D-17 + 3 23 3 20 -0.12727626599595D+00 0.67047239223908D-17 + 1 24 3 20 0.48845849095460D+00 0.60805681425105D-17 + 2 24 3 20 -0.46804370187614D+00 -0.20457612496548D-16 + 3 24 3 20 -0.39849614674370D+00 0.23698614627662D-15 + 1 25 3 20 0.33966503486387D+00 -0.55854201132877D-16 + 2 25 3 20 0.28979766667511D+00 -0.91300959016789D-17 + 3 25 3 20 0.22540838907913D+00 0.25569336079540D-15 + 1 26 3 20 0.22841937824874D-01 0.31704384546728D-16 + 2 26 3 20 -0.37917362697488D-01 -0.21452236915008D-16 + 3 26 3 20 0.28901435639828D+00 -0.81617927392851D-16 + 1 27 3 20 0.43605273089237D+00 -0.17651426523433D-16 + 2 27 3 20 -0.41193502972180D+00 -0.96564040696890D-17 + 3 27 3 20 -0.73479300855675D+00 -0.84018310840221D-16 + 1 28 3 20 0.27943292278049D+00 0.66836894345733D-17 + 2 28 3 20 -0.21879589379041D+00 0.27712183935749D-16 + 3 28 3 20 0.37272648315906D+00 -0.28150631362047D-15 + 1 29 3 20 0.13217865722021D+02 0.23868616034641D-17 + 2 29 3 20 -0.13522654321831D+02 -0.37928740398923D-17 + 3 29 3 20 -0.25515961030837D+02 0.20593888242823D-15 + 1 30 3 20 0.50890489309557D+00 0.28141181320215D-16 + 2 30 3 20 -0.55121297710036D+00 -0.47247079069708D-16 + 3 30 3 20 -0.40136127322327D+00 0.82865846836842D-16 + 1 31 3 20 -0.32656081583013D+00 -0.25182043805573D-16 + 2 31 3 20 -0.32723300791449D+00 0.15480234472172D-16 + 3 31 3 20 0.18674912064643D+00 0.71162388917673D-16 + 1 32 3 20 -0.81602640442448D+00 -0.10338263572847D-15 + 2 32 3 20 0.10224519877059D+01 0.44874447647660D-16 + 3 32 3 20 0.26553207591071D+01 0.13128602769707D-16 + 1 33 3 20 -0.43841709977770D-01 0.88615286009805D-16 + 2 33 3 20 0.62766396932399D-01 0.24688538423966D-16 + 3 33 3 20 -0.14974612365160D-01 0.77265783058497D-17 + 1 34 3 20 0.13625469848010D+01 0.38543236644370D-16 + 2 34 3 20 0.12816300215294D+01 -0.59103011242216D-16 + 3 34 3 20 0.31258167392204D+01 -0.10134979573004D-16 + 1 35 3 20 0.12635356812617D+00 -0.68101975948079D-16 + 2 35 3 20 0.99568015791878D-01 0.90578825073098D-16 + 3 35 3 20 0.52373562508040D-02 -0.26085437416799D-16 + 1 36 3 20 -0.14068234245039D+01 -0.25405871447151D-16 + 2 36 3 20 -0.11353333223013D+01 -0.27800423563111D-16 + 3 36 3 20 0.30155345649138D+01 0.31781162506811D-16 + 1 37 3 20 -0.14764773017077D+00 0.86291044858657D-16 + 2 37 3 20 -0.10356682372426D+00 0.60914879253826D-16 + 3 37 3 20 0.54598954673176D-01 0.21027603967184D-16 + 1 38 3 20 0.11971059792642D+01 0.66312412741065D-17 + 2 38 3 20 -0.12001748544478D+01 0.97440046159176D-16 + 3 38 3 20 0.29632774936015D+01 0.56805725998143D-16 + 1 39 3 20 0.99565345105370D-01 0.23488436918389D-16 + 2 39 3 20 -0.80612052259491D-01 -0.68254242384427D-16 + 3 39 3 20 -0.18016648722801D-01 0.53548781000446D-17 + 1 40 3 20 -0.52775938851813D+00 -0.81600668258265D-17 + 2 40 3 20 0.49790547501619D+00 -0.14790196915499D-16 + 3 40 3 20 -0.44967235785732D+00 0.94907582507044D-16 + 1 41 3 20 -0.31572160078403D+00 0.71791831483968D-17 + 2 41 3 20 -0.30265282018593D+00 0.32218093148700D-16 + 3 41 3 20 0.24708348230195D+00 -0.60175580749053D-16 + 1 42 3 20 0.24696374662181D-02 0.17569445221960D-17 + 2 42 3 20 0.12118996449943D-01 -0.12085057412356D-16 + 3 42 3 20 0.26864894443220D+00 0.92946155708627D-16 + 1 43 3 20 -0.50939446161318D+00 -0.17218805183224D-16 + 2 43 3 20 0.50016541024873D+00 0.27864572489313D-16 + 3 43 3 20 -0.87719096127326D+00 -0.10675408392023D-15 + 1 44 3 20 -0.19985889980304D+00 0.99433516575533D-17 + 2 44 3 20 0.23274844943710D+00 0.17625072387384D-17 + 3 44 3 20 0.42551965214466D+00 0.19682566270163D-15 + 1 45 3 20 -0.13879011340542D+02 0.79924202983789D-18 + 2 45 3 20 0.14107929617707D+02 0.30547911894961D-16 + 3 45 3 20 -0.26062789866101D+02 0.30024702574273D-16 + 1 46 3 20 -0.53730740550125D+00 0.26385195184157D-16 + 2 46 3 20 0.40158016642121D+00 0.63970474697449D-16 + 3 46 3 20 -0.25326590528758D+00 0.28096420593227D-15 + 1 47 3 20 0.29916503793232D+00 -0.42346816052148D-17 + 2 47 3 20 0.16366981488135D+00 -0.15167476557090D-16 + 3 47 3 20 0.12123201124200D+00 0.15058821359745D-15 + 1 48 3 20 -0.32845967229457D+01 -0.58629928458017D-17 + 2 48 3 20 -0.13578084798523D+01 0.23118009159770D-16 + 3 48 3 20 -0.31435481711389D+01 -0.24537985826016D-16 + 1 49 3 20 0.31941085754673D+01 0.61694850901565D-18 + 2 49 3 20 -0.14073185650725D+01 0.35545457311037D-16 + 3 49 3 20 -0.31161797414797D+01 -0.86461068994468D-16 + 1 50 3 20 0.22701782239698D-01 -0.45379430344381D-17 + 2 50 3 20 0.15857612882839D+00 0.10323272464614D-16 + 3 50 3 20 0.18707498056840D+00 -0.11018001264026D-15 + 1 51 3 20 -0.73906612608212D-01 -0.68802348215832D-18 + 2 51 3 20 -0.63014662905328D-01 0.69733994954786D-17 + 3 51 3 20 -0.21706843664551D+00 -0.23686990275344D-15 + 1 52 3 20 0.28846658458855D+01 0.37651195176758D-18 + 2 52 3 20 0.10021922192644D+01 0.17487391061456D-16 + 3 52 3 20 -0.28762227844451D+01 0.18356982358603D-15 + 1 53 3 20 -0.32224719826006D+01 0.25812682328593D-17 + 2 53 3 20 0.13623457728179D+01 0.17169162236542D-17 + 3 53 3 20 -0.31198683632758D+01 -0.16740998354037D-15 + 1 54 3 20 -0.90300250886180D-01 -0.26421813835061D-18 + 2 54 3 20 0.13225854204798D+00 -0.18382523845150D-16 + 3 54 3 20 -0.21086672653499D+00 0.31911059509961D-15 + 1 55 3 20 0.36582342768195D-01 0.64507054104318D-17 + 2 55 3 20 0.15189491883038D+00 0.96849871839592D-17 + 3 55 3 20 -0.26027564892998D+00 0.13302983682219D-15 + 1 56 3 20 0.38139056523928D+00 -0.29706163359109D-16 + 2 56 3 20 -0.34011013696974D+00 -0.22093183465831D-16 + 3 56 3 20 0.18898539371496D+00 -0.75322926701926D-16 + 1 57 3 20 0.44224998145374D+00 -0.88470279795713D-17 + 2 57 3 20 0.45833681568794D+00 0.16347841504846D-17 + 3 57 3 20 -0.37168114771698D+00 -0.15709505817200D-15 + 1 58 3 20 0.33826748421716D+00 0.37386886284951D-16 + 2 58 3 20 0.59323179457402D+00 0.25582579921043D-17 + 3 58 3 20 -0.86409040711021D+00 0.35174680085933D-15 + 1 59 3 20 0.16149580206863D-01 0.83595761962810D-17 + 2 59 3 20 0.27822975149862D-01 -0.62849037170071D-17 + 3 59 3 20 0.26462086478739D+00 0.37349994260327D-16 + 1 60 3 20 0.14657929762345D+02 0.36254086603718D-16 + 2 60 3 20 0.12371596783117D+02 -0.84476300288467D-17 + 3 60 3 20 -0.25101178599709D+02 0.16520175656501D-15 + 1 61 3 20 0.22564467784923D+00 0.15430948913538D-16 + 2 61 3 20 0.30191942014921D+00 -0.66896645716021D-17 + 3 61 3 20 0.43222364377869D+00 0.41749932337192D-15 + 1 62 3 20 -0.28361053495241D+00 -0.14374361041685D-16 + 2 62 3 20 0.31592974345077D+00 -0.17598337291940D-16 + 3 62 3 20 0.23490982432094D+00 0.90989680197449D-16 + 1 63 3 20 0.48409400010692D+00 -0.55638129456639D-16 + 2 63 3 20 0.41751349235391D+00 0.21824269190625D-16 + 3 63 3 20 -0.32229451800094D+00 -0.39946648855601D-15 + 1 64 3 20 0.26880943972696D+00 -0.23417670895224D-16 + 2 64 3 20 -0.18048280306736D+00 0.27446405073417D-16 + 3 64 3 20 -0.52499789938128D+00 0.99515924077435D-16 + 1 65 3 20 -0.39928517272554D-01 0.50677705920911D-16 + 2 65 3 20 0.65815729498097D-01 -0.35143633087466D-18 + 3 65 3 20 0.75805720364930D-01 -0.68750831627843D-16 + 1 1 1 21 0.49215479792284D-01 -0.12411176707531D-15 + 2 1 1 21 -0.67004752710940D-01 0.17364304202238D-16 + 3 1 1 21 -0.67004752710939D-01 -0.88915283451293D-17 + 1 2 1 21 0.17628049017343D-01 0.24644550314305D-16 + 2 2 1 21 0.10356308707008D+00 0.17635606738275D-16 + 3 2 1 21 -0.13471322032932D+00 0.16066094378413D-17 + 1 3 1 21 0.17628049017320D-01 -0.22170832142166D-16 + 2 3 1 21 -0.13471322032933D+00 0.99364687682072D-18 + 3 3 1 21 0.10356308707007D+00 -0.17799377187369D-16 + 1 4 1 21 -0.34911139746885D-01 -0.25159556590768D-16 + 2 4 1 21 0.99917988628224D-01 -0.75152477943718D-17 + 3 4 1 21 0.99917988628229D-01 0.25819243296003D-16 + 1 5 1 21 0.28298793736917D+01 0.42753144299224D-16 + 2 5 1 21 -0.15363366088824D+01 -0.18420830435179D-16 + 3 5 1 21 -0.15363366088824D+01 -0.78350584979400D-17 + 1 6 1 21 0.29685174375501D+01 -0.89607685939064D-16 + 2 6 1 21 0.12360040210204D+01 -0.15779716185920D-16 + 3 6 1 21 -0.13774526215980D+01 -0.31097259123268D-16 + 1 7 1 21 0.29685174375502D+01 -0.14403656415316D-15 + 2 7 1 21 -0.13774526215980D+01 -0.24691634143442D-16 + 3 7 1 21 0.12360040210205D+01 0.32172375824103D-16 + 1 8 1 21 0.31699779795925D+01 0.12864550603498D-15 + 2 8 1 21 0.12255833182082D+01 -0.14971530301045D-16 + 3 8 1 21 0.12255833182082D+01 -0.18057583501828D-16 + 1 9 1 21 -0.43614168367620D+00 0.15518488811616D-15 + 2 9 1 21 -0.41934053875374D+00 0.31976154109453D-16 + 3 9 1 21 -0.44350778402487D+00 0.65557161777954D-17 + 1 10 1 21 0.49329150386026D+00 0.25763855414601D-15 + 2 10 1 21 -0.29852518106690D+00 0.29017178657777D-16 + 3 10 1 21 -0.29889594006095D+00 0.28758287258444D-17 + 1 11 1 21 0.26942964081940D+00 -0.17199133551869D-16 + 2 11 1 21 -0.17132008708430D-01 0.32965767533504D-16 + 3 11 1 21 -0.17330317339690D-01 -0.90409297440164D-17 + 1 12 1 21 -0.43614168367627D+00 0.43334129920802D-16 + 2 12 1 21 -0.44407962521094D+00 0.23500845014421D-16 + 3 12 1 21 -0.41949172230350D+00 0.15339485305303D-16 + 1 13 1 21 0.17245337070873D+00 -0.32048370759746D-16 + 2 13 1 21 0.28488978243750D+00 0.76045645034531D-17 + 3 13 1 21 -0.25653774893595D+00 0.12117767928531D-16 + 1 14 1 21 -0.26113621198295D+02 -0.16303255226238D-15 + 2 14 1 21 -0.13982758016404D+02 0.69377344178981D-17 + 3 14 1 21 -0.13981816650897D+02 -0.18893554429102D-16 + 1 15 1 21 0.17245337070866D+00 0.79881187664440D-16 + 2 15 1 21 -0.25712532149784D+00 0.10755045262583D-17 + 3 15 1 21 0.28498843691365D+00 -0.34512388748477D-16 + 1 16 1 21 -0.12290306718725D+00 0.15567351650359D-16 + 2 16 1 21 -0.36046341819233D-01 0.75844834589511D-18 + 3 16 1 21 -0.50187471622124D-01 -0.41268393302723D-19 + 1 17 1 21 -0.40592725268392D+00 -0.36559656650444D-17 + 2 17 1 21 -0.24069014812012D-02 0.44683519636370D-18 + 3 17 1 21 -0.24069014811969D-02 0.90850693221685D-18 + 1 18 1 21 -0.10055294059491D+00 0.18251061872739D-18 + 2 18 1 21 -0.75447065688506D-03 -0.47046092524052D-18 + 3 18 1 21 -0.75447065688410D-03 0.50476313027329D-18 + 1 19 1 21 -0.12290306718744D+00 0.16440985542141D-17 + 2 19 1 21 -0.50187471622119D-01 0.29051131300235D-18 + 3 19 1 21 -0.36046341819235D-01 -0.74098008451985D-18 + 1 20 1 21 -0.23565771303351D+00 -0.14368502602853D-17 + 2 20 1 21 0.15542216925408D-01 0.45396187795706D-19 + 3 20 1 21 0.22284876094396D-01 0.40797001171944D-18 + 1 21 1 21 0.11764144224654D+03 0.00000000000000D+00 + 2 21 1 21 0.95835602795613D+00 0.00000000000000D+00 + 3 21 1 21 0.95835602795616D+00 0.00000000000000D+00 + 1 22 1 21 0.13557269446422D+01 0.17441307392985D-16 + 2 22 1 21 0.21546854528395D+00 -0.64711379598636D-17 + 3 22 1 21 0.21546854528394D+00 0.10145212310246D-16 + 1 23 1 21 -0.23565771303355D+00 0.10482449432574D-17 + 2 23 1 21 0.22284876094380D-01 -0.85176024445588D-19 + 3 23 1 21 0.15542216925406D-01 -0.14890314105842D-18 + 1 24 1 21 0.33407282794415D+00 -0.20673182812096D-16 + 2 24 1 21 0.22874393479573D+00 -0.47240672654709D-17 + 3 24 1 21 0.22874393479573D+00 0.21720271912284D-17 + 1 25 1 21 -0.42580530827146D+00 0.19002978493137D-15 + 2 25 1 21 0.48044606924574D+00 0.88498688639786D-17 + 3 25 1 21 0.51494688043211D+00 -0.11108714863508D-16 + 1 26 1 21 -0.42580530827139D+00 -0.19393455995834D-15 + 2 26 1 21 0.51494688043211D+00 -0.19034074947267D-16 + 3 26 1 21 0.48044606924574D+00 0.29337878250260D-16 + 1 27 1 21 0.26343432207317D+00 0.25541538075258D-15 + 2 27 1 21 0.26920621507094D-01 0.24839821670523D-16 + 3 27 1 21 0.26920621507093D-01 -0.14630949185211D-16 + 1 28 1 21 -0.24102957627296D+02 0.10222967993673D-15 + 2 28 1 21 0.13010403468366D+02 0.13365855280395D-16 + 3 28 1 21 0.13010403468366D+02 -0.14570704880380D-17 + 1 29 1 21 0.25011915021962D+00 0.15269922015683D-15 + 2 29 1 21 -0.29670673634117D+00 0.18845757030241D-16 + 3 29 1 21 0.34701892963440D+00 0.15209706451972D-17 + 1 30 1 21 0.25011915021961D+00 0.13539328969242D-15 + 2 30 1 21 0.34701892963439D+00 -0.47690592712120D-16 + 3 30 1 21 -0.29670673634117D+00 -0.14221529463404D-16 + 1 31 1 21 -0.68544091796875D+00 -0.17557896246034D-16 + 2 31 1 21 0.48684142294518D+00 -0.24636388240891D-17 + 3 31 1 21 0.48684142294518D+00 -0.29020815517279D-16 + 1 32 1 21 -0.17607364125105D+00 -0.29058149758285D-15 + 2 32 1 21 0.67118144898909D-02 -0.53189439401701D-17 + 3 32 1 21 0.98978215545313D-01 -0.48970953626802D-16 + 1 33 1 21 -0.31052957392001D+01 -0.25485022386137D-15 + 2 33 1 21 0.31941085754673D+01 -0.25302171891230D-17 + 3 33 1 21 0.11880694090847D+01 0.11754343176397D-16 + 1 34 1 21 -0.22820373706449D+00 0.27799300742091D-15 + 2 34 1 21 0.10067823622292D+00 0.15212791994634D-17 + 3 34 1 21 -0.12635356812616D+00 0.65092805770529D-16 + 1 35 1 21 -0.31246827126460D+01 -0.21786180051446D-15 + 2 35 1 21 -0.32372407928346D+01 -0.13004685087648D-18 + 3 35 1 21 -0.13218851373702D+01 -0.46833016979358D-16 + 1 36 1 21 -0.21730179390960D+00 0.13223587198292D-15 + 2 36 1 21 0.11754640956584D+00 0.38294107330066D-18 + 3 36 1 21 0.90350894191818D-01 -0.89613767503112D-16 + 1 37 1 21 -0.29596538007428D+01 -0.87943754325840D-16 + 2 37 1 21 -0.31254481327735D+01 -0.33322693108764D-19 + 3 37 1 21 0.14160356266369D+01 -0.19284197463406D-16 + 1 38 1 21 -0.23994603525543D+00 -0.57813201798381D-16 + 2 38 1 21 -0.10929782699043D+00 -0.26638483125060D-17 + 3 38 1 21 -0.70206638076877D-01 -0.38397134048614D-16 + 1 39 1 21 -0.30954916382759D+01 -0.18759993573153D-15 + 2 39 1 21 0.31872566408716D+01 -0.25499604838869D-17 + 3 39 1 21 -0.12247732147474D+01 -0.53635473647509D-16 + 1 40 1 21 0.39734956014696D+00 0.11451077588820D-16 + 2 40 1 21 0.23802945606287D+00 -0.16425690219106D-16 + 3 40 1 21 -0.24735014074084D+00 0.72467462462240D-16 + 1 41 1 21 -0.42574411112178D+00 0.29547481255485D-16 + 2 41 1 21 0.45567704351572D+00 -0.11533288597449D-17 + 3 41 1 21 -0.46661777973952D+00 0.11679586400222D-16 + 1 42 1 21 -0.29770639034201D+00 0.87487286975828D-16 + 2 42 1 21 0.32150151371739D+00 -0.28284703160405D-17 + 3 42 1 21 -0.47577268331975D+00 0.67899520575019D-17 + 1 43 1 21 0.26686550422134D+00 -0.65062582037718D-16 + 2 43 1 21 -0.42196927431095D-02 -0.40510042956741D-17 + 3 43 1 21 0.94617811102819D-02 0.15535359826721D-16 + 1 44 1 21 -0.25794221122147D+02 0.75061846931355D-16 + 2 44 1 21 0.13749665086973D+02 -0.45887512554770D-17 + 3 44 1 21 -0.13654215728241D+02 0.29001407147266D-16 + 1 45 1 21 0.18950469390943D+00 -0.67629379516468D-16 + 2 45 1 21 -0.34179935926502D+00 -0.65391209919079D-17 + 3 45 1 21 -0.31472751484528D+00 -0.44804292198693D-16 + 1 46 1 21 0.24071006525500D+00 -0.31669353136709D-16 + 2 46 1 21 0.24324448070264D+00 -0.19197623631402D-18 + 3 46 1 21 0.39930320110790D+00 0.20893885155526D-16 + 1 47 1 21 -0.79645524878653D+00 0.26339882308590D-15 + 2 47 1 21 0.49952396734700D+00 -0.23861010679558D-17 + 3 47 1 21 -0.49338013526382D+00 0.26980354449643D-16 + 1 48 1 21 -0.31052957392000D+01 0.79937245702088D-16 + 2 48 1 21 0.11880694090846D+01 -0.30769889897713D-16 + 3 48 1 21 0.31941085754673D+01 -0.14291426806999D-17 + 1 49 1 21 -0.31246827126462D+01 -0.23307979338967D-15 + 2 49 1 21 -0.13218851373702D+01 0.80340319369096D-16 + 3 49 1 21 -0.32372407928346D+01 0.94005052155717D-18 + 1 50 1 21 -0.17607364125100D+00 -0.23364853025839D-15 + 2 50 1 21 0.98978215545325D-01 -0.54993968375397D-16 + 3 50 1 21 0.67118144898811D-02 0.54025473232044D-18 + 1 51 1 21 -0.22820373706449D+00 -0.10571388997835D-15 + 2 51 1 21 -0.12635356812616D+00 0.53754658006841D-16 + 3 51 1 21 0.10067823622293D+00 0.23982201897759D-17 + 1 52 1 21 -0.29596538007428D+01 0.20893096747671D-15 + 2 52 1 21 0.14160356266369D+01 -0.16585333870233D-16 + 3 52 1 21 -0.31254481327735D+01 -0.38755575588718D-17 + 1 53 1 21 -0.30954916382760D+01 -0.18160742041683D-15 + 2 53 1 21 -0.12247732147474D+01 -0.19593000921706D-17 + 3 53 1 21 0.31872566408720D+01 0.27117430306952D-18 + 1 54 1 21 -0.21730179390958D+00 -0.13655570763399D-16 + 2 54 1 21 0.90350894191814D-01 0.85163976981625D-16 + 3 54 1 21 0.11754640956586D+00 0.25868478441484D-17 + 1 55 1 21 -0.23994603525543D+00 -0.12176634391137D-15 + 2 55 1 21 -0.70206638076884D-01 -0.49365335301540D-16 + 3 55 1 21 -0.10929782699040D+00 -0.70233042272250D-18 + 1 56 1 21 -0.29770639034202D+00 0.24824815900554D-15 + 2 56 1 21 -0.47577268331974D+00 0.89814848641410D-17 + 3 56 1 21 0.32150151371740D+00 0.24342067472785D-16 + 1 57 1 21 0.39734956014696D+00 -0.40709336572931D-16 + 2 57 1 21 -0.24735014074084D+00 0.76893542124305D-17 + 3 57 1 21 0.23802945606287D+00 0.48409287161152D-16 + 1 58 1 21 0.26686550422134D+00 -0.82836990010797D-17 + 2 58 1 21 0.94617811102814D-02 0.17539335816438D-17 + 3 58 1 21 -0.42196927431095D-02 0.30074668240818D-16 + 1 59 1 21 -0.42574411112178D+00 0.30754546603327D-16 + 2 59 1 21 -0.46661777973952D+00 0.20975100719001D-16 + 3 59 1 21 0.45567704351572D+00 -0.21082089363668D-16 + 1 60 1 21 0.24071006525500D+00 0.17915972850710D-16 + 2 60 1 21 0.39930320110791D+00 0.31248406107101D-16 + 3 60 1 21 0.24324448070264D+00 0.15992699203050D-16 + 1 61 1 21 -0.25794221122147D+02 0.73352671582956D-17 + 2 61 1 21 -0.13654215728241D+02 0.32865775310288D-17 + 3 61 1 21 0.13749665086973D+02 -0.13752564102657D-16 + 1 62 1 21 -0.79645524878653D+00 -0.94664016172036D-16 + 2 62 1 21 -0.49338013526382D+00 0.10682741767536D-16 + 3 62 1 21 0.49952396734700D+00 -0.20236144243445D-16 + 1 63 1 21 0.18950469390943D+00 0.18385991341149D-15 + 2 63 1 21 -0.31472751484528D+00 -0.26297640245543D-16 + 3 63 1 21 -0.34179935926502D+00 0.60799522405362D-16 + 1 64 1 21 -0.75943447184913D+00 0.53472755328363D-16 + 2 64 1 21 -0.58852918836420D+00 0.29459249696444D-16 + 3 64 1 21 -0.58922497966896D+00 0.20841840528158D-16 + 1 65 1 21 -0.15924778845921D+00 -0.19596648669031D-17 + 2 65 1 21 0.15177704355265D+00 -0.44034461579860D-16 + 3 65 1 21 0.15177704355265D+00 -0.74040333775170D-16 + 1 1 2 21 0.11676445661641D+00 0.17364304202238D-16 + 2 1 2 21 -0.24047697504348D+00 -0.11686308738386D-16 + 3 1 2 21 0.10862185381205D+00 -0.11628233193632D-17 + 1 2 2 21 -0.67088866551376D-01 0.17635606738275D-16 + 2 2 2 21 -0.28160457200432D+00 -0.26329761005702D-15 + 3 2 2 21 -0.11291188076494D+00 -0.23180154867321D-17 + 1 3 2 21 0.72483235593101D-01 0.99364687682072D-18 + 2 3 2 21 -0.17065132479147D+00 0.77888889316175D-16 + 3 3 2 21 -0.59446261974187D-01 -0.16530625913728D-17 + 1 4 2 21 -0.93652105749600D-01 -0.75152477943718D-17 + 2 4 2 21 -0.23199836150855D+00 0.81779196052171D-17 + 3 4 2 21 0.98841998568626D-01 0.10271823373729D-17 + 1 5 2 21 0.76751713481800D+00 -0.18420830435179D-16 + 2 5 2 21 -0.30757828154629D+01 -0.46740951795279D-16 + 3 5 2 21 -0.25795643293890D+01 -0.54811443437220D-17 + 1 6 2 21 -0.12951198397229D+01 -0.15779716185920D-16 + 2 6 2 21 -0.30626394163209D+01 -0.12552410442673D-16 + 3 6 2 21 0.32361500471502D+01 0.22686292273670D-18 + 1 7 2 21 0.14116852895950D+01 -0.24691634143442D-16 + 2 7 2 21 -0.30064990613072D+01 0.19387432409754D-16 + 3 7 2 21 0.31905729764210D+01 0.72997576862634D-18 + 1 8 2 21 -0.12255833182082D+01 -0.14971530301045D-16 + 2 8 2 21 -0.31085143714600D+01 0.10018511103737D-15 + 3 8 2 21 -0.31715093594047D+01 -0.29180914561613D-17 + 1 9 2 21 -0.43679527610675D+00 0.31976154109453D-16 + 2 9 2 21 -0.85626137921023D+00 -0.12364026528466D-15 + 3 9 2 21 -0.51178873765866D+00 -0.31462514489628D-16 + 1 10 2 21 -0.30346406128323D+00 0.29017178657777D-16 + 2 10 2 21 0.19516178206944D+00 0.51748558073467D-16 + 3 10 2 21 0.33295290077051D+00 -0.29739930655352D-16 + 1 11 2 21 -0.21573688483275D-01 0.32965767533504D-16 + 2 11 2 21 0.25558392939323D+00 -0.56782842186175D-16 + 3 11 2 21 -0.13715963087911D-01 -0.23083935975406D-17 + 1 12 2 21 -0.41968061769710D+00 0.23500845014421D-16 + 2 12 2 21 -0.36794449471739D+00 -0.89292683360681D-16 + 3 12 2 21 -0.50897213131086D+00 -0.21574673002249D-16 + 1 13 2 21 0.29424501838485D+00 0.76045645034531D-17 + 2 13 2 21 0.17336912281447D+00 -0.31271201613290D-16 + 3 13 2 21 -0.28237580530000D+00 0.27813940405086D-16 + 1 14 2 21 -0.14061047771995D+02 0.69377344178981D-17 + 2 14 2 21 -0.26055260449517D+02 -0.54231876780345D-16 + 3 14 2 21 -0.14052048986228D+02 0.22851219632321D-16 + 1 15 2 21 -0.28951291420751D+00 0.10755045262583D-17 + 2 15 2 21 0.41507581536834D+00 -0.91972391905180D-16 + 3 15 2 21 -0.24621087117146D+00 -0.40732211173682D-16 + 1 16 2 21 0.12182195732168D-01 0.75844834589511D-18 + 2 16 2 21 0.15513921470717D+01 -0.91305190133995D-18 + 3 16 2 21 -0.50182227588190D-01 -0.30429580089441D-18 + 1 17 2 21 0.44494871188017D-02 0.44683519636370D-18 + 2 17 2 21 -0.22329293722580D+00 0.22388735538895D-17 + 3 17 2 21 0.31725157218817D-02 0.26143330850400D-18 + 1 18 2 21 -0.14934656076212D-01 -0.47046092524052D-18 + 2 18 2 21 -0.79969290519244D-01 -0.64584492541751D-17 + 3 18 2 21 -0.20794212377672D-01 0.14464484935274D-18 + 1 19 2 21 0.22596539548495D-01 0.29051131300235D-18 + 2 19 2 21 -0.67269915365603D-01 0.25395399658778D-17 + 3 19 2 21 0.11411960095221D+00 0.55224679662300D-18 + 1 20 2 21 0.25941992352620D-01 0.45396187795706D-19 + 2 20 2 21 -0.23998152292439D+00 0.55814842765762D-17 + 3 20 2 21 -0.67018209271095D-01 -0.66354263506717D-18 + 1 21 2 21 0.95835602795613D+00 0.00000000000000D+00 + 2 21 2 21 0.11902791374500D+03 0.00000000000000D+00 + 3 21 2 21 -0.55259285124247D+00 0.00000000000000D+00 + 1 22 2 21 -0.12214257078257D+00 -0.64711379598636D-17 + 2 22 2 21 0.20929947359173D+00 -0.45163477959776D-16 + 3 22 2 21 -0.21334612465260D+00 -0.53598009538636D-17 + 1 23 2 21 -0.76325334859224D-02 -0.85176024445588D-19 + 2 23 2 21 -0.39179030205285D+00 -0.12241161406516D-18 + 3 23 2 21 0.74889325537829D-02 -0.48485147529020D-18 + 1 24 2 21 0.27609018658730D+00 -0.47240672654709D-17 + 2 24 2 21 0.18438341282726D+00 0.10912827996219D-15 + 3 24 2 21 0.31268606285268D+00 0.15707926855491D-16 + 1 25 2 21 0.45051381424607D+00 0.88498688639786D-17 + 2 25 2 21 -0.79183951901711D+00 0.65751973300434D-16 + 3 25 2 21 -0.48482976678670D+00 -0.59514988781297D-17 + 1 26 2 21 0.49364879915014D+00 -0.19034074947267D-16 + 2 26 2 21 -0.43998710153765D+00 0.21882862616190D-15 + 3 26 2 21 -0.50232794404432D+00 -0.66560335663181D-17 + 1 27 2 21 0.18633581868246D-01 0.24839821670523D-16 + 2 27 2 21 0.27252466740490D+00 0.26209797225856D-15 + 3 27 2 21 -0.16403028717808D-01 0.16831571565437D-17 + 1 28 2 21 0.13096970677307D+02 0.13365855280395D-16 + 2 28 2 21 -0.25611518728893D+02 -0.65192041697025D-16 + 3 28 2 21 -0.13619025127797D+02 -0.31068640864478D-16 + 1 29 2 21 -0.34036146741602D+00 0.18845757030241D-16 + 2 29 2 21 0.19148274089982D+00 -0.51785145745101D-16 + 3 29 2 21 -0.27197998488543D+00 -0.25221738476862D-16 + 1 30 2 21 0.30473593415086D+00 -0.47690592712120D-16 + 2 30 2 21 0.46633976140985D+00 -0.46392883233359D-16 + 3 30 2 21 -0.32560982930179D+00 -0.33743881342119D-16 + 1 31 2 21 0.55083122718630D+00 -0.24636388240891D-17 + 2 31 2 21 -0.28805146597436D+00 0.10655577187973D-15 + 3 31 2 21 -0.33277610511117D+00 0.37749279367362D-16 + 1 32 2 21 -0.62185490678856D-01 -0.53189439401701D-17 + 2 32 2 21 -0.52402244393142D+00 0.80070751188020D-17 + 3 32 2 21 -0.38755451493193D+00 0.10393848318423D-15 + 1 33 2 21 0.32289744110740D+01 -0.25302171891230D-17 + 2 33 2 21 -0.31161797414798D+01 0.27051946182480D-15 + 3 33 2 21 -0.13006788073403D+01 -0.15257451950498D-16 + 1 34 2 21 0.78657874930476D-01 0.15212791994634D-17 + 2 34 2 21 -0.20851766763871D+00 0.14598153524624D-15 + 3 34 2 21 -0.99568015791876D-01 -0.25097595981718D-16 + 1 35 2 21 -0.32372407928346D+01 -0.13004685087648D-18 + 2 35 2 21 -0.31125065002563D+01 -0.27909831640035D-15 + 3 35 2 21 -0.13035185751495D+01 -0.80231954070728D-16 + 1 36 2 21 0.68866005259074D-01 0.38294107330066D-18 + 2 36 2 21 -0.26140025060353D+00 0.14064039345132D-15 + 3 36 2 21 0.44248198131509D-01 -0.59447454189450D-16 + 1 37 2 21 -0.32008726391262D+01 -0.33322693108764D-19 + 2 37 2 21 -0.30979715045097D+01 0.78620730170834D-16 + 3 37 2 21 0.14307103494987D+01 -0.25112742744552D-16 + 1 38 2 21 -0.65890303523438D-01 -0.26638483125060D-17 + 2 38 2 21 -0.21619915347569D+00 0.21446496918284D-15 + 3 38 2 21 0.47616311444369D-01 -0.11613338160374D-16 + 1 39 2 21 0.32179128749850D+01 -0.25499604838869D-17 + 2 39 2 21 -0.31266544890534D+01 0.23532037696894D-16 + 3 39 2 21 0.12430520967716D+01 0.12897071352671D-16 + 1 40 2 21 0.22867874047309D+00 -0.16425690219106D-16 + 2 40 2 21 0.19144027554771D+00 0.72627867335935D-16 + 3 40 2 21 -0.30778667023404D+00 0.14077631975707D-17 + 1 41 2 21 0.49371812521040D+00 -0.11533288597449D-17 + 2 41 2 21 -0.81832269216946D+00 -0.12526732262620D-15 + 3 41 2 21 0.46213141658107D+00 -0.24071922998418D-16 + 1 42 2 21 0.43245298590619D+00 -0.28284703160405D-17 + 2 42 2 21 -0.31887366055224D+00 0.52302385811261D-17 + 3 42 2 21 0.59167202259456D+00 0.99224279753623D-16 + 1 43 2 21 0.10707045324182D+00 -0.40510042956741D-17 + 2 43 2 21 0.32802942366760D+00 0.11769100958998D-16 + 3 43 2 21 -0.49505833736298D-01 -0.18821194974969D-16 + 1 44 2 21 0.13679113574287D+02 -0.45887512554770D-17 + 2 44 2 21 -0.26190006915435D+02 0.14078368511397D-15 + 3 44 2 21 0.13932091528740D+02 -0.51049061321134D-17 + 1 45 2 21 -0.32566797249811D+00 -0.65391209919079D-17 + 2 45 2 21 0.16835463342987D+00 0.71210793293727D-16 + 3 45 2 21 0.30305418033182D+00 0.33308265841721D-16 + 1 46 2 21 0.29803704164043D+00 -0.19197623631402D-18 + 2 46 2 21 0.62299032448475D+00 0.11841793544688D-15 + 3 46 2 21 0.43699935314724D+00 -0.50645402688864D-17 + 1 47 2 21 0.38632799622838D+00 -0.23861010679558D-17 + 2 47 2 21 -0.55330131078287D+00 -0.19530363393198D-15 + 3 47 2 21 0.49852977540938D+00 -0.24599713848199D-16 + 1 48 2 21 -0.11850558323564D+01 -0.30769889897713D-16 + 2 48 2 21 0.30525156815770D+01 -0.64849830443749D-16 + 3 48 2 21 0.14073185650725D+01 -0.18893320621895D-16 + 1 49 2 21 0.13218851373702D+01 0.80340319369096D-16 + 2 49 2 21 0.30759193700457D+01 -0.12501727759453D-16 + 3 49 2 21 0.13043774859262D+01 -0.31963568740102D-16 + 1 50 2 21 -0.19179167582305D+00 -0.54993968375397D-16 + 2 50 2 21 0.32936438032625D+00 -0.13362264751931D-15 + 3 50 2 21 0.28673425970043D+00 -0.37142285978669D-17 + 1 51 2 21 0.11060314530730D+00 0.53754658006841D-16 + 2 51 2 21 0.52373562508023D-02 0.73224374264539D-17 + 3 51 2 21 0.74387259052577D-01 0.92117237150168D-18 + 1 52 2 21 -0.12343771874599D+01 -0.16585333870233D-16 + 2 52 2 21 0.30102194717558D+01 0.22550316629809D-16 + 3 52 2 21 -0.12144881578438D+01 0.27343671218002D-16 + 1 53 2 21 0.12922970665964D+01 -0.19593000921706D-17 + 2 53 2 21 0.31665669045345D+01 0.10113800470843D-15 + 3 53 2 21 -0.13605572144011D+01 0.19857548106098D-16 + 1 54 2 21 -0.13479536424726D+00 0.85163976981625D-16 + 2 54 2 21 -0.15398128284673D-01 -0.22474583138759D-17 + 3 54 2 21 -0.93465445648178D-01 0.14027612115935D-16 + 1 55 2 21 0.89465979828498D-01 -0.49365335301540D-16 + 2 55 2 21 -0.19811576467606D-01 -0.59865850201319D-16 + 3 55 2 21 -0.14001481061544D+00 -0.24649322007103D-16 + 1 56 2 21 -0.53882773265771D+00 0.89814848641410D-17 + 2 56 2 21 -0.83525506489340D+00 -0.18208582946530D-15 + 3 56 2 21 0.55610764499212D+00 0.11070321106556D-16 + 1 57 2 21 -0.27710318582960D+00 0.76893542124305D-17 + 2 57 2 21 0.18807102073723D+00 -0.78998418741368D-17 + 3 57 2 21 -0.28569280361857D+00 -0.59756518477078D-17 + 1 58 2 21 -0.20825616100103D-01 0.17539335816438D-17 + 2 58 2 21 0.24492796035844D+00 -0.32093638496574D-16 + 3 58 2 21 -0.48541681642133D-01 -0.17051380996477D-16 + 1 59 2 21 -0.48878863251807D+00 0.20975100719001D-16 + 2 59 2 21 -0.37201695309457D+00 -0.17051323976322D-15 + 3 59 2 21 0.47111525755596D+00 0.26883721394533D-16 + 1 60 2 21 0.44122789176326D+00 0.31248406107101D-16 + 2 60 2 21 0.18654111657419D+00 0.25609778811348D-15 + 3 60 2 21 0.26491264012521D+00 -0.18727873682932D-16 + 1 61 2 21 -0.13738598552669D+02 0.32865775310288D-17 + 2 61 2 21 -0.25755365692805D+02 0.21209231417689D-16 + 3 61 2 21 0.13838939719674D+02 0.28599358898333D-16 + 1 62 2 21 -0.36639941053523D+00 0.10682741767536D-16 + 2 62 2 21 -0.32116000110640D+00 0.14589001059073D-15 + 3 62 2 21 0.49151781919568D+00 -0.50932626492190D-17 + 1 63 2 21 -0.28250092722396D+00 -0.26297640245543D-16 + 2 63 2 21 0.49246290484206D+00 -0.10508692809452D-15 + 3 63 2 21 0.30437217106272D+00 0.44900063829266D-17 + 1 64 2 21 -0.88642642302326D-01 0.29459249696444D-16 + 2 64 2 21 -0.54380392083712D+00 0.94715922815122D-16 + 3 64 2 21 -0.45238333347917D+00 0.20616143287410D-16 + 1 65 2 21 -0.20997989540767D+00 -0.44034461579860D-16 + 2 65 2 21 -0.28583909973776D+00 -0.17293192454384D-15 + 3 65 2 21 -0.35715189385479D+00 -0.85725049095138D-16 + 1 1 3 21 0.11676445661642D+00 -0.88915283451293D-17 + 2 1 3 21 0.10862185381205D+00 -0.11628233193632D-17 + 3 1 3 21 -0.24047697504348D+00 0.21407398706154D-16 + 1 2 3 21 0.72483235593100D-01 0.16066094378413D-17 + 2 2 3 21 -0.59446261974188D-01 -0.23180154867321D-17 + 3 2 3 21 -0.17065132479147D+00 -0.23421024857271D-15 + 1 3 3 21 -0.67088866551376D-01 -0.17799377187369D-16 + 2 3 3 21 -0.11291188076494D+00 -0.16530625913728D-17 + 3 3 3 21 -0.28160457200432D+00 0.24776624770784D-15 + 1 4 3 21 -0.93652105749600D-01 0.25819243296003D-16 + 2 4 3 21 0.98841998568626D-01 0.10271823373729D-17 + 3 4 3 21 -0.23199836150855D+00 -0.10637577531771D-15 + 1 5 3 21 0.76751713481800D+00 -0.78350584979400D-17 + 2 5 3 21 -0.25795643293890D+01 -0.54811443437220D-17 + 3 5 3 21 -0.30757828154629D+01 0.29514975484929D-15 + 1 6 3 21 0.14116852895950D+01 -0.31097259123268D-16 + 2 6 3 21 0.31905729764210D+01 0.22686292273670D-18 + 3 6 3 21 -0.30064990613072D+01 0.25828063053851D-16 + 1 7 3 21 -0.12951198397229D+01 0.32172375824103D-16 + 2 7 3 21 0.32361500471502D+01 0.72997576862634D-18 + 3 7 3 21 -0.30626394163209D+01 -0.30640292609822D-15 + 1 8 3 21 -0.12255833182082D+01 -0.18057583501828D-16 + 2 8 3 21 -0.31715093594047D+01 -0.29180914561613D-17 + 3 8 3 21 -0.31085143714600D+01 -0.29730683429643D-15 + 1 9 3 21 -0.41968061769722D+00 0.65557161777954D-17 + 2 9 3 21 -0.50875028205128D+00 -0.31462514489628D-16 + 3 9 3 21 -0.36743877496784D+00 0.70572249777347D-16 + 1 10 3 21 -0.30346406128320D+00 0.28758287258444D-17 + 2 10 3 21 0.33254998961706D+00 -0.29739930655352D-16 + 3 10 3 21 0.19492375400720D+00 0.85361623030433D-16 + 1 11 3 21 -0.21573688483268D-01 -0.90409297440164D-17 + 2 11 3 21 -0.13863894612279D-01 -0.23083935975406D-17 + 3 11 3 21 0.25547462007208D+00 -0.10729599656993D-15 + 1 12 3 21 -0.43679527610675D+00 0.15339485305303D-16 + 2 12 3 21 -0.51189089304039D+00 -0.21574673002249D-16 + 3 12 3 21 -0.85536555934429D+00 0.14322065367234D-16 + 1 13 3 21 -0.28951291420759D+00 0.12117767928531D-16 + 2 13 3 21 -0.24606927179017D+00 0.27813940405086D-16 + 3 13 3 21 0.41427020038981D+00 -0.12367285301521D-15 + 1 14 3 21 -0.14061047771995D+02 -0.18893554429102D-16 + 2 14 3 21 -0.14052238801214D+02 0.22851219632321D-16 + 3 14 3 21 -0.26051304634116D+02 0.58155774273040D-16 + 1 15 3 21 0.29424501838483D+00 -0.34512388748477D-16 + 2 15 3 21 -0.28303719140876D+00 -0.40732211173682D-16 + 3 15 3 21 0.17338507247209D+00 -0.22990716168428D-16 + 1 16 3 21 0.22596539548495D-01 -0.41268393302723D-19 + 2 16 3 21 0.11411960095221D+00 -0.30429580089441D-18 + 3 16 3 21 -0.67269915365607D-01 -0.39958319367071D-17 + 1 17 3 21 0.44494871188016D-02 0.90850693221685D-18 + 2 17 3 21 0.31725157218817D-02 0.26143330850400D-18 + 3 17 3 21 -0.22329293722580D+00 -0.30833669616775D-17 + 1 18 3 21 -0.14934656076212D-01 0.50476313027329D-18 + 2 18 3 21 -0.20794212377672D-01 0.14464484935274D-18 + 3 18 3 21 -0.79969290519243D-01 -0.45260143865225D-17 + 1 19 3 21 0.12182195732168D-01 -0.74098008451985D-18 + 2 19 3 21 -0.50182227588191D-01 0.55224679662300D-18 + 3 19 3 21 0.15513921470717D+01 0.66053002245006D-18 + 1 20 3 21 -0.76325334859225D-02 0.40797001171944D-18 + 2 20 3 21 0.74889325537827D-02 -0.66354263506717D-18 + 3 20 3 21 -0.39179030205287D+00 -0.25643027212245D-17 + 1 21 3 21 0.95835602795616D+00 0.00000000000000D+00 + 2 21 3 21 -0.55259285124247D+00 0.00000000000000D+00 + 3 21 3 21 0.11902791374500D+03 0.00000000000000D+00 + 1 22 3 21 -0.12214257078257D+00 0.10145212310246D-16 + 2 22 3 21 -0.21334612465260D+00 -0.53598009538636D-17 + 3 22 3 21 0.20929947359173D+00 0.21192460995647D-16 + 1 23 3 21 0.25941992352620D-01 -0.14890314105842D-18 + 2 23 3 21 -0.67018209271095D-01 -0.48485147529020D-18 + 3 23 3 21 -0.23998152292439D+00 0.36282255177747D-17 + 1 24 3 21 0.27609018658725D+00 0.21720271912284D-17 + 2 24 3 21 0.31268606285268D+00 0.15707926855491D-16 + 3 24 3 21 0.18438341282725D+00 0.64011295894571D-16 + 1 25 3 21 0.49364879915014D+00 -0.11108714863508D-16 + 2 25 3 21 -0.50232794404431D+00 -0.59514988781297D-17 + 3 25 3 21 -0.43998710153765D+00 -0.11326793097255D-15 + 1 26 3 21 0.45051381424610D+00 0.29337878250260D-16 + 2 26 3 21 -0.48482976678670D+00 -0.66560335663181D-17 + 3 26 3 21 -0.79183951901711D+00 -0.46565783009842D-16 + 1 27 3 21 0.18633581868217D-01 -0.14630949185211D-16 + 2 27 3 21 -0.16403028717808D-01 0.16831571565437D-17 + 3 27 3 21 0.27252466740490D+00 0.31115155792836D-15 + 1 28 3 21 0.13096970677307D+02 -0.14570704880380D-17 + 2 28 3 21 -0.13619025127797D+02 -0.31068640864478D-16 + 3 28 3 21 -0.25611518728893D+02 -0.22491427982791D-16 + 1 29 3 21 0.30473593415092D+00 0.15209706451972D-17 + 2 29 3 21 -0.32560982930180D+00 -0.25221738476862D-16 + 3 29 3 21 0.46633976140990D+00 -0.27604203827387D-15 + 1 30 3 21 -0.34036146741609D+00 -0.14221529463404D-16 + 2 30 3 21 -0.27197998488542D+00 -0.33743881342119D-16 + 3 30 3 21 0.19148274089983D+00 -0.99048375436004D-16 + 1 31 3 21 0.55083122718628D+00 -0.29020815517279D-16 + 2 31 3 21 -0.33277610511117D+00 0.37749279367362D-16 + 3 31 3 21 -0.28805146597436D+00 -0.38317976534861D-16 + 1 32 3 21 -0.19179167582305D+00 -0.48970953626802D-16 + 2 32 3 21 0.28673425970043D+00 0.10393848318423D-15 + 3 32 3 21 0.32936438032624D+00 0.74893012356799D-16 + 1 33 3 21 -0.11850558323564D+01 0.11754343176397D-16 + 2 33 3 21 0.14073185650725D+01 -0.15257451950498D-16 + 3 33 3 21 0.30525156815770D+01 -0.92668186188218D-17 + 1 34 3 21 0.11060314530731D+00 0.65092805770529D-16 + 2 34 3 21 0.74387259052583D-01 -0.25097595981718D-16 + 3 34 3 21 0.52373562507969D-02 0.31336865812631D-16 + 1 35 3 21 0.13218851373702D+01 -0.46833016979358D-16 + 2 35 3 21 0.13035185751495D+01 -0.80231954070728D-16 + 3 35 3 21 0.30759193700457D+01 -0.97793481118394D-17 + 1 36 3 21 -0.13479536424726D+00 -0.89613767503112D-16 + 2 36 3 21 -0.93465445648178D-01 -0.59447454189450D-16 + 3 36 3 21 -0.15398128284671D-01 0.10767029425438D-15 + 1 37 3 21 -0.12343771874599D+01 -0.19284197463406D-16 + 2 37 3 21 -0.12144881578439D+01 -0.25112742744552D-16 + 3 37 3 21 0.30102194717558D+01 0.18477568852978D-16 + 1 38 3 21 0.89465979828500D-01 -0.38397134048614D-16 + 2 38 3 21 -0.14001481061544D+00 -0.11613338160374D-16 + 3 38 3 21 -0.19811576467603D-01 -0.29598689902113D-16 + 1 39 3 21 0.12922970665964D+01 -0.53635473647509D-16 + 2 39 3 21 -0.13605572144011D+01 0.12897071352671D-16 + 3 39 3 21 0.31665669045345D+01 0.12343453822833D-16 + 1 40 3 21 -0.27710318582960D+00 0.72467462462240D-16 + 2 40 3 21 -0.28569280361857D+00 0.14077631975707D-17 + 3 40 3 21 0.18807102073723D+00 0.75582665814014D-17 + 1 41 3 21 -0.48878863251807D+00 0.11679586400222D-16 + 2 41 3 21 0.47111525755596D+00 -0.24071922998418D-16 + 3 41 3 21 -0.37201695309457D+00 -0.36018314280433D-15 + 1 42 3 21 -0.53882773265772D+00 0.67899520575019D-17 + 2 42 3 21 0.55610764499212D+00 0.99224279753623D-16 + 3 42 3 21 -0.83525506489340D+00 -0.14473911788625D-15 + 1 43 3 21 -0.20825616100103D-01 0.15535359826721D-16 + 2 43 3 21 -0.48541681642133D-01 -0.18821194974969D-16 + 3 43 3 21 0.24492796035845D+00 0.98224963417683D-16 + 1 44 3 21 -0.13738598552669D+02 0.29001407147266D-16 + 2 44 3 21 0.13838939719674D+02 -0.51049061321134D-17 + 3 44 3 21 -0.25755365692805D+02 0.20848340669188D-15 + 1 45 3 21 -0.28250092722396D+00 -0.44804292198693D-16 + 2 45 3 21 0.30437217106272D+00 0.33308265841721D-16 + 3 45 3 21 0.49246290484208D+00 -0.33454848481234D-15 + 1 46 3 21 0.44122789176326D+00 0.20893885155526D-16 + 2 46 3 21 0.26491264012522D+00 -0.50645402688864D-17 + 3 46 3 21 0.18654111657419D+00 0.30489522235644D-15 + 1 47 3 21 -0.36639941053524D+00 0.26980354449643D-16 + 2 47 3 21 0.49151781919568D+00 -0.24599713848199D-16 + 3 47 3 21 -0.32116000110639D+00 -0.94495104211865D-16 + 1 48 3 21 0.32289744110740D+01 -0.14291426806999D-17 + 2 48 3 21 -0.13006788073403D+01 -0.18893320621895D-16 + 3 48 3 21 -0.31161797414798D+01 0.16447917667435D-15 + 1 49 3 21 -0.32372407928346D+01 0.94005052155717D-18 + 2 49 3 21 -0.13043774859262D+01 -0.31963568740102D-16 + 3 49 3 21 -0.31125065002563D+01 -0.17547759186822D-15 + 1 50 3 21 -0.62185490678856D-01 0.54025473232044D-18 + 2 50 3 21 -0.38755451493193D+00 -0.37142285978669D-17 + 3 50 3 21 -0.52402244393142D+00 -0.39653297070067D-15 + 1 51 3 21 0.78657874930479D-01 0.23982201897759D-17 + 2 51 3 21 -0.99568015791882D-01 0.92117237150168D-18 + 3 51 3 21 -0.20851766763871D+00 0.14259013868594D-15 + 1 52 3 21 -0.32008726391262D+01 -0.38755575588718D-17 + 2 52 3 21 0.14307103494987D+01 0.27343671218002D-16 + 3 52 3 21 -0.30979715045097D+01 0.78816713655262D-16 + 1 53 3 21 0.32179128749850D+01 0.27117430306952D-18 + 2 53 3 21 0.12430520967716D+01 0.19857548106098D-16 + 3 53 3 21 -0.31266544890534D+01 0.36168954371574D-16 + 1 54 3 21 0.68866005259073D-01 0.25868478441484D-17 + 2 54 3 21 0.44248198131509D-01 0.14027612115935D-16 + 3 54 3 21 -0.26140025060353D+00 -0.17841687252260D-15 + 1 55 3 21 -0.65890303523436D-01 -0.70233042272250D-18 + 2 55 3 21 0.47616311444370D-01 -0.24649322007103D-16 + 3 55 3 21 -0.21619915347569D+00 -0.66764717223295D-16 + 1 56 3 21 0.43245298590620D+00 0.24342067472785D-16 + 2 56 3 21 0.59167202259456D+00 0.11070321106556D-16 + 3 56 3 21 -0.31887366055224D+00 -0.41586746464315D-15 + 1 57 3 21 0.22867874047309D+00 0.48409287161152D-16 + 2 57 3 21 -0.30778667023404D+00 -0.59756518477078D-17 + 3 57 3 21 0.19144027554771D+00 -0.71999608486834D-16 + 1 58 3 21 0.10707045324182D+00 0.30074668240818D-16 + 2 58 3 21 -0.49505833736297D-01 -0.17051380996477D-16 + 3 58 3 21 0.32802942366760D+00 0.14834134289647D-15 + 1 59 3 21 0.49371812521040D+00 -0.21082089363668D-16 + 2 59 3 21 0.46213141658107D+00 0.26883721394533D-16 + 3 59 3 21 -0.81832269216946D+00 -0.35472040312327D-15 + 1 60 3 21 0.29803704164043D+00 0.15992699203050D-16 + 2 60 3 21 0.43699935314724D+00 -0.18727873682932D-16 + 3 60 3 21 0.62299032448475D+00 0.67755920933716D-15 + 1 61 3 21 0.13679113574287D+02 -0.13752564102657D-16 + 2 61 3 21 0.13932091528740D+02 0.28599358898333D-16 + 3 61 3 21 -0.26190006915435D+02 -0.23637441158563D-16 + 1 62 3 21 0.38632799622838D+00 -0.20236144243445D-16 + 2 62 3 21 0.49852977540939D+00 -0.50932626492190D-17 + 3 62 3 21 -0.55330131078288D+00 -0.32677258813847D-15 + 1 63 3 21 -0.32566797249811D+00 0.60799522405362D-16 + 2 63 3 21 0.30305418033182D+00 0.44900063829266D-17 + 3 63 3 21 0.16835463342987D+00 -0.30389319005652D-15 + 1 64 3 21 -0.88642642302335D-01 0.20841840528158D-16 + 2 64 3 21 -0.45089988636511D+00 0.20616143287410D-16 + 3 64 3 21 -0.54441867132872D+00 -0.56927273887936D-16 + 1 65 3 21 -0.20997989540765D+00 -0.74040333775170D-16 + 2 65 3 21 -0.35715189385479D+00 -0.85725049095138D-16 + 3 65 3 21 -0.28583909973776D+00 0.87011694361685D-16 + 1 1 1 22 -0.59361263754473D-01 -0.29532009244176D-16 + 2 1 1 22 -0.25927238246937D-01 -0.21116632321046D-16 + 3 1 1 22 -0.25927238246931D-01 0.33592386646116D-16 + 1 2 1 22 0.87836048719722D-01 0.17379073353417D-15 + 2 2 1 22 0.62056743571392D-02 -0.25016380707642D-16 + 3 2 1 22 0.25019036966429D+00 0.43291483714568D-18 + 1 3 1 22 0.87836048719617D-01 -0.59031924897530D-16 + 2 3 1 22 0.25019036966428D+00 0.22752130592917D-16 + 3 3 1 22 0.62056743571378D-02 0.22596764538565D-16 + 1 4 1 22 -0.36115044457181D-01 0.16863816909780D-16 + 2 4 1 22 -0.14342087980576D-01 0.55641050711249D-17 + 3 4 1 22 -0.14342087980577D-01 -0.90879196633058D-17 + 1 5 1 22 0.24096778295632D+01 0.15760263103802D-15 + 2 5 1 22 0.62152515350495D+00 0.24631006602233D-16 + 3 5 1 22 0.62152515350495D+00 -0.32372058086126D-17 + 1 6 1 22 0.28295565651853D+01 0.90175483997616D-16 + 2 6 1 22 -0.15177320252663D+01 -0.40113014226102D-16 + 3 6 1 22 0.15565761819559D+01 0.24024551201297D-16 + 1 7 1 22 0.28295565651853D+01 0.16706469086918D-16 + 2 7 1 22 0.15565761819559D+01 0.17334783749093D-16 + 3 7 1 22 -0.15177320252663D+01 0.13307084319831D-16 + 1 8 1 22 0.28298793736917D+01 0.93639309605890D-16 + 2 8 1 22 -0.76751713481800D+00 -0.33617108923665D-16 + 3 8 1 22 -0.76751713481800D+00 0.25361372634850D-16 + 1 9 1 22 -0.56228343072509D+00 -0.19268549695937D-16 + 2 9 1 22 -0.84721126622973D+00 0.22458902185882D-17 + 3 9 1 22 -0.60779202275348D+00 -0.12742663957263D-16 + 1 10 1 22 0.17362233280699D+00 0.58215311828803D-16 + 2 10 1 22 -0.37271483882102D-01 -0.26083841252160D-16 + 3 10 1 22 -0.37195381045484D-01 0.22376847588081D-16 + 1 11 1 22 0.81936572652454D-01 0.12549897089379D-16 + 2 11 1 22 0.61839945774373D-01 -0.23596968065370D-16 + 3 11 1 22 0.62253763049859D-01 -0.13250380718221D-16 + 1 12 1 22 -0.56228343072504D+00 0.10622850138914D-15 + 2 12 1 22 -0.60849755258757D+00 -0.25123942886068D-16 + 3 12 1 22 -0.84689654062457D+00 -0.10433901261070D-16 + 1 13 1 22 0.31531816585511D+00 0.20875807047114D-16 + 2 13 1 22 -0.13240972760758D+00 -0.17337108185043D-16 + 3 13 1 22 0.27980784023499D+00 -0.12944970309020D-16 + 1 14 1 22 -0.67417847429040D+00 -0.43257246959660D-16 + 2 14 1 22 -0.38994974041024D+00 -0.20070455364658D-16 + 3 14 1 22 -0.39052847202263D+00 0.27895064811502D-16 + 1 15 1 22 0.31531816585508D+00 0.98099796029014D-16 + 2 15 1 22 0.27876761996521D+00 -0.27500196351034D-16 + 3 15 1 22 -0.13251019054803D+00 0.28919266916087D-16 + 1 16 1 22 -0.12969776100868D+00 0.16349481639181D-16 + 2 16 1 22 0.37629163850714D-01 0.41047177323944D-17 + 3 16 1 22 0.94007595960456D-02 0.30569295055625D-17 + 1 17 1 22 -0.79888593078686D-01 -0.20468512670574D-16 + 2 17 1 22 0.21521344319738D-01 0.19387275478614D-16 + 3 17 1 22 0.21521344319737D-01 -0.36970496364028D-17 + 1 18 1 22 -0.40109275971453D+00 -0.39398249861701D-16 + 2 18 1 22 -0.32585525274065D-01 0.15561157606334D-16 + 3 18 1 22 -0.32585525274078D-01 0.18240176268215D-16 + 1 19 1 22 -0.12969776100858D+00 0.33528377994575D-16 + 2 19 1 22 0.94007595960363D-02 -0.84740073883085D-18 + 3 19 1 22 0.37629163850711D-01 0.79208124560165D-17 + 1 20 1 22 -0.83718992029360D-01 0.15776484776609D-16 + 2 20 1 22 0.11599296174228D+00 -0.78456407650399D-17 + 3 20 1 22 -0.24475038061528D-01 0.63694747157558D-17 + 1 21 1 22 0.13557269446422D+01 -0.17441307392985D-16 + 2 21 1 22 -0.12214257078257D+00 0.64711379598636D-17 + 3 21 1 22 -0.12214257078257D+00 -0.10145212310246D-16 + 1 22 1 22 0.10869506154593D+03 0.00000000000000D+00 + 2 22 1 22 -0.38075754141959D+01 0.00000000000000D+00 + 3 22 1 22 -0.38075754141958D+01 0.00000000000000D+00 + 1 23 1 22 -0.83718992029360D-01 -0.14046394220107D-16 + 2 23 1 22 -0.24475038061527D-01 -0.17141094437249D-17 + 3 23 1 22 0.11599296174228D+00 -0.47181316350152D-17 + 1 24 1 22 0.66616917000315D-01 0.29553187216818D-15 + 2 24 1 22 0.39364144236511D-01 0.55952422219042D-16 + 3 24 1 22 0.39364144236510D-01 0.44736743831300D-16 + 1 25 1 22 -0.65231166976827D+00 0.32516463591352D-15 + 2 25 1 22 0.65185720354860D+00 0.15721922309984D-16 + 3 25 1 22 0.69849934038531D+00 -0.20077576083350D-17 + 1 26 1 22 -0.65231166976828D+00 -0.32603997608966D-15 + 2 26 1 22 0.69849934038531D+00 -0.32190805298539D-16 + 3 26 1 22 0.65185720354860D+00 -0.44881388559643D-16 + 1 27 1 22 -0.68667561303236D+00 -0.47031712705996D-17 + 2 27 1 22 -0.18211420457951D+00 -0.38979187079502D-16 + 3 27 1 22 -0.18211420457951D+00 -0.18006937303910D-16 + 1 28 1 22 -0.72781243184309D+00 -0.46923952083306D-16 + 2 28 1 22 0.43370263089718D+00 0.22429879171613D-17 + 3 28 1 22 0.43370263089718D+00 -0.21131611772751D-16 + 1 29 1 22 0.39765551661822D+00 -0.25837000217326D-15 + 2 29 1 22 0.17009621215183D+00 0.24995147596468D-16 + 3 29 1 22 -0.15147754531560D+00 0.99948066847305D-17 + 1 30 1 22 0.39765551661820D+00 0.56109379258916D-16 + 2 30 1 22 -0.15147754531560D+00 -0.20852262173709D-16 + 3 30 1 22 0.17009621215183D+00 -0.91650358942373D-16 + 1 31 1 22 -0.30811084949260D+02 -0.61606546626587D-16 + 2 31 1 22 0.14985549786739D+02 0.49097390793069D-17 + 3 31 1 22 0.14985549786739D+02 -0.11691855020358D-16 + 1 32 1 22 -0.74255974099534D-01 -0.16678540200379D-15 + 2 32 1 22 0.71824896247095D+00 0.46136302411463D-17 + 3 32 1 22 0.76962261638419D-01 -0.13557589506575D-16 + 1 33 1 22 -0.21143668169989D+00 -0.22801957088274D-15 + 2 33 1 22 0.22701782239699D-01 0.11803172982689D-17 + 3 33 1 22 -0.42131995820270D-01 0.43304210663782D-16 + 1 34 1 22 -0.31805611728353D+01 -0.81319104520131D-16 + 2 34 1 22 0.29031814937507D+01 -0.10796787645378D-16 + 3 34 1 22 0.81602640442448D+00 0.88876243945214D-16 + 1 35 1 22 -0.17607364125106D+00 0.16310868973522D-15 + 2 35 1 22 -0.62185490678857D-01 -0.28212202429645D-17 + 3 35 1 22 0.19179167582305D+00 -0.90460125028003D-16 + 1 36 1 22 -0.30801803345459D+01 0.13989832337721D-15 + 2 36 1 22 0.32340459656324D+01 -0.23103925200894D-17 + 3 36 1 22 -0.21253208600549D+01 -0.10768704265416D-15 + 1 37 1 22 -0.14227691375251D+00 -0.24069840096619D-15 + 2 37 1 22 0.82013102129496D-01 0.91840249439910D-18 + 3 37 1 22 0.27447155986461D-01 0.20999772320377D-17 + 1 38 1 22 -0.30338589403061D+01 -0.16182226212259D-15 + 2 38 1 22 -0.39313346883593D+01 0.24018571042388D-17 + 3 38 1 22 0.14435244257965D+01 -0.82300522151208D-16 + 1 39 1 22 -0.19682298503712D+00 0.47759775854701D-16 + 2 39 1 22 0.13436069301927D+00 0.24023497640828D-17 + 3 39 1 22 0.12700528632818D+00 0.36006566659183D-16 + 1 40 1 22 0.19309537375821D+00 0.16367177869123D-15 + 2 40 1 22 0.29764610515245D-01 0.50486633271499D-17 + 3 40 1 22 -0.29121581310743D-01 -0.60874792835162D-17 + 1 41 1 22 -0.69224099805295D-01 -0.14556128446438D-15 + 2 41 1 22 0.25116868051170D+00 -0.29957640688519D-16 + 3 41 1 22 -0.34082333285975D+00 0.12569946018234D-17 + 1 42 1 22 0.33793601791265D+00 0.10223733280564D-15 + 2 42 1 22 -0.28590715431927D+00 0.14042689093737D-16 + 3 42 1 22 0.26317444518415D+00 -0.13622961380360D-16 + 1 43 1 22 0.43428936181690D-01 -0.12211494650180D-15 + 2 43 1 22 0.12590578526662D+00 -0.33671926343888D-16 + 3 43 1 22 0.35757827279190D-01 0.36661033737761D-16 + 1 44 1 22 -0.77015767769167D+00 0.99340803057394D-16 + 2 44 1 22 0.30544660227199D+00 0.51086287411109D-18 + 3 44 1 22 -0.42673169159092D+00 -0.18084502181650D-16 + 1 45 1 22 0.57174427519679D-01 0.26276441907568D-16 + 2 45 1 22 -0.37616317979394D-02 0.17428067297655D-16 + 3 45 1 22 0.55427107238836D-02 -0.39872791288368D-16 + 1 46 1 22 0.24026317668267D+00 0.90749749728832D-16 + 2 46 1 22 -0.69344548756159D+00 -0.48168961612105D-18 + 3 46 1 22 -0.69836127851069D+00 -0.36929907276374D-17 + 1 47 1 22 -0.24353371012175D+02 0.14864991709175D-15 + 2 47 1 22 0.17151064833579D+02 0.27521422020071D-16 + 3 47 1 22 -0.13111602562201D+02 0.16225401012463D-16 + 1 48 1 22 -0.21143668169989D+00 -0.14931818293586D-15 + 2 48 1 22 -0.42131995820270D-01 0.79419079359245D-16 + 3 48 1 22 0.22701782239698D-01 -0.30823908274952D-17 + 1 49 1 22 -0.17607364125101D+00 0.29411667678927D-15 + 2 49 1 22 0.19179167582305D+00 0.98405853849524D-16 + 3 49 1 22 -0.62185490678856D-01 -0.28686593025061D-18 + 1 50 1 22 -0.74255974099445D-01 -0.11984495257542D-15 + 2 50 1 22 0.76962261638419D-01 -0.28363429434782D-16 + 3 50 1 22 0.71824896247095D+00 0.89516717679435D-17 + 1 51 1 22 -0.31805611728353D+01 0.18584728404875D-15 + 2 51 1 22 0.81602640442450D+00 -0.37574951036342D-16 + 3 51 1 22 0.29031814937507D+01 -0.22248621824352D-16 + 1 52 1 22 -0.14227691375251D+00 -0.16549382784587D-16 + 2 52 1 22 0.27447155986460D-01 -0.21077928029593D-17 + 3 52 1 22 0.82013102129528D-01 0.10597521100106D-17 + 1 53 1 22 -0.19682298503714D+00 -0.20090374075330D-15 + 2 53 1 22 0.12700528632820D+00 0.65785041239030D-17 + 3 53 1 22 0.13436069301924D+00 -0.19321577399952D-18 + 1 54 1 22 -0.30801803345459D+01 -0.19570595650764D-15 + 2 54 1 22 -0.21253208600549D+01 0.37135781228127D-16 + 3 54 1 22 0.32340459656326D+01 0.35919922177667D-17 + 1 55 1 22 -0.30338589403062D+01 -0.29436879178804D-16 + 2 55 1 22 0.14435244257966D+01 -0.29704329182450D-16 + 3 55 1 22 -0.39313346883589D+01 -0.39681254635676D-17 + 1 56 1 22 0.33793601791265D+00 0.56780469905630D-16 + 2 56 1 22 0.26317444518415D+00 -0.26287010204245D-16 + 3 56 1 22 -0.28590715431927D+00 0.41417228303077D-16 + 1 57 1 22 0.19309537375821D+00 0.28274153132706D-16 + 2 57 1 22 -0.29121581310743D-01 0.37157486724470D-17 + 3 57 1 22 0.29764610515245D-01 -0.67439190948356D-16 + 1 58 1 22 0.43428936181697D-01 -0.14281634926125D-16 + 2 58 1 22 0.35757827279186D-01 0.39654774901076D-17 + 3 58 1 22 0.12590578526662D+00 -0.42109336894328D-16 + 1 59 1 22 -0.69224099805295D-01 -0.92670350600231D-16 + 2 59 1 22 -0.34082333285975D+00 -0.22826114265757D-16 + 3 59 1 22 0.25116868051170D+00 -0.76033521611859D-17 + 1 60 1 22 0.24026317668267D+00 0.14574068532838D-15 + 2 60 1 22 -0.69836127851069D+00 0.64782612421729D-17 + 3 60 1 22 -0.69344548756159D+00 -0.21472371990114D-17 + 1 61 1 22 -0.77015767769167D+00 -0.73324098893349D-16 + 2 61 1 22 -0.42673169159092D+00 -0.95269739320552D-17 + 3 61 1 22 0.30544660227199D+00 -0.24293539920095D-16 + 1 62 1 22 -0.24353371012175D+02 0.57093274121587D-16 + 2 62 1 22 -0.13111602562201D+02 0.22344607136969D-16 + 3 62 1 22 0.17151064833579D+02 -0.23509940001971D-16 + 1 63 1 22 0.57174427519676D-01 0.30716106605566D-15 + 2 63 1 22 0.55427107238890D-02 0.30674101529892D-17 + 3 63 1 22 -0.37616317979305D-02 0.26934850267331D-16 + 1 64 1 22 -0.88973794530552D+01 -0.60911598447777D-16 + 2 64 1 22 -0.12816834899248D+02 0.50237764883458D-18 + 3 64 1 22 -0.12819194379086D+02 0.76882720144207D-17 + 1 65 1 22 -0.87492346166496D+01 0.23133047940782D-15 + 2 65 1 22 -0.46055311281216D+01 0.18502483694995D-17 + 3 65 1 22 -0.46055311281216D+01 -0.15579373616962D-16 + 1 1 2 22 -0.13441851649688D+00 -0.21116632321046D-16 + 2 1 2 22 0.54392391872485D+00 -0.23161492189694D-15 + 3 1 2 22 -0.62347852797931D+00 0.78305389439000D-17 + 1 2 2 22 -0.71809348402237D+00 -0.25016380707642D-16 + 2 2 2 22 0.81365140915615D+00 0.27855173314476D-15 + 3 2 2 22 0.99491676041998D+00 -0.12821936026249D-17 + 1 3 2 22 0.68445111688901D+00 0.22752130592917D-16 + 2 3 2 22 -0.11649945096036D+01 -0.71799531751445D-16 + 3 3 2 22 -0.87950895163831D+00 -0.30327818623950D-17 + 1 4 2 22 0.18965285104181D+00 0.55641050711249D-17 + 2 4 2 22 -0.28136420191463D+00 -0.27699557884795D-15 + 3 4 2 22 0.20782504841662D+00 -0.27482033829037D-17 + 1 5 2 22 -0.62152515350495D+00 0.24631006602233D-16 + 2 5 2 22 0.54718011965240D+01 0.22050956933513D-15 + 3 5 2 22 -0.73226250017448D+01 -0.56267625870709D-17 + 1 6 2 22 0.13275629014228D+01 -0.40113014226102D-16 + 2 6 2 22 -0.25386322377401D+01 -0.39524079501502D-15 + 3 6 2 22 0.30549193890543D+01 0.83627699172927D-17 + 1 7 2 22 -0.18739913392291D+01 0.17334783749093D-16 + 2 7 2 22 -0.34528163015957D+01 0.98982461100288D-16 + 3 7 2 22 0.31092013568370D+01 0.51115284164696D-17 + 1 8 2 22 0.15363366088824D+01 -0.33617108923665D-16 + 2 8 2 22 -0.30757828154629D+01 0.20725357580990D-15 + 3 8 2 22 -0.25795643293890D+01 0.32257805547018D-17 + 1 9 2 22 -0.94699525274430D+00 0.22458902185882D-17 + 2 9 2 22 -0.80157981776842D+00 0.60652138471661D-16 + 3 9 2 22 -0.95946071343017D+00 -0.31302308348218D-16 + 1 10 2 22 -0.13273811450764D-01 -0.26083841252160D-16 + 2 10 2 22 0.23206325517197D+00 -0.68868187039382D-16 + 3 10 2 22 0.25240149066086D-02 -0.24245220908151D-16 + 1 11 2 22 0.50761007616532D-01 -0.23596968065370D-16 + 2 11 2 22 0.16849926571057D+00 0.16012655773916D-15 + 3 11 2 22 0.13309048952210D+00 0.31911357300805D-16 + 1 12 2 22 -0.44537504933503D+00 -0.25123942886068D-16 + 2 12 2 22 -0.31366955960620D+00 -0.46806257695889D-17 + 3 12 2 22 -0.34902446133750D+00 0.19506354607615D-16 + 1 13 2 22 -0.17291822842416D+00 -0.17337108185043D-16 + 2 13 2 22 0.51572736923973D+00 -0.13759065063826D-15 + 3 13 2 22 -0.20398932206616D+00 -0.29149550933035D-16 + 1 14 2 22 -0.45772260833661D+00 -0.20070455364658D-16 + 2 14 2 22 -0.44958654399269D+00 0.10678203147460D-15 + 3 14 2 22 -0.60753170009590D+00 -0.31108951441638D-16 + 1 15 2 22 0.29561622081644D+00 -0.27500196351034D-16 + 2 15 2 22 0.25241496941609D+00 0.17312077452796D-15 + 3 15 2 22 -0.27006261064949D+00 0.26792788704196D-16 + 1 16 2 22 0.74074581612352D+00 0.41047177323944D-17 + 2 16 2 22 0.10020919058717D+01 -0.61697293497890D-17 + 3 16 2 22 0.12637881894937D+01 -0.15284895588253D-16 + 1 17 2 22 -0.24064116261817D-01 0.19387275478614D-16 + 2 17 2 22 0.40195590498099D-01 -0.10144843744066D-16 + 3 17 2 22 -0.14872177932805D+00 -0.17527171110340D-17 + 1 18 2 22 0.68047619236458D-01 0.15561157606334D-16 + 2 18 2 22 -0.74394943703652D+00 0.14273218461568D-16 + 3 18 2 22 0.57995663584141D+00 0.71425264135674D-18 + 1 19 2 22 -0.85317621194837D+00 -0.84740073883085D-18 + 2 19 2 22 0.62991047216481D-01 0.80958426545407D-17 + 3 19 2 22 -0.10028054761513D+01 -0.69613785423811D-17 + 1 20 2 22 -0.39005282841352D+00 -0.78456407650399D-17 + 2 20 2 22 0.12797076026957D+00 0.10777046814287D-16 + 3 20 2 22 0.28504399934005D+00 0.33064374887151D-17 + 1 21 2 22 0.21546854528395D+00 0.64711379598636D-17 + 2 21 2 22 0.20929947359173D+00 0.45163477959776D-16 + 3 21 2 22 -0.21334612465260D+00 0.53598009538636D-17 + 1 22 2 22 -0.38075754141959D+01 0.00000000000000D+00 + 2 22 2 22 0.11504972351550D+03 0.00000000000000D+00 + 3 22 2 22 0.11489553790423D+02 0.00000000000000D+00 + 1 23 2 22 0.32925776099028D+00 -0.17141094437249D-17 + 2 23 2 22 -0.44422357773510D+00 0.83262672795964D-17 + 3 23 2 22 -0.39305705776451D+00 0.19394894093723D-17 + 1 24 2 22 0.63234747208155D-01 0.55952422219042D-16 + 2 24 2 22 0.29670575418888D+00 0.71475641061790D-16 + 3 24 2 22 -0.15228710567634D+00 0.13291548945815D-16 + 1 25 2 22 0.45000684445275D+00 0.15721922309984D-16 + 2 25 2 22 -0.42401759444368D+00 0.31457292591146D-15 + 3 25 2 22 -0.33361931413377D+00 -0.14825926141973D-16 + 1 26 2 22 0.18627745527626D+00 -0.32190805298539D-16 + 2 26 2 22 -0.73467466067885D+00 0.23422455339768D-16 + 3 26 2 22 -0.50995383855731D+00 0.34547328396157D-17 + 1 27 2 22 -0.37666733718617D+00 -0.38979187079502D-16 + 2 27 2 22 -0.79049413507111D-01 0.29616283439243D-15 + 3 27 2 22 0.18446449841465D+00 -0.41400168143884D-16 + 1 28 2 22 0.38621584504252D-04 0.22429879171613D-17 + 2 28 2 22 -0.53328893963902D+00 -0.11472872121830D-15 + 3 28 2 22 0.74230068669528D+00 0.31849695176414D-16 + 1 29 2 22 0.51165184777611D+00 0.24995147596468D-16 + 2 29 2 22 -0.34388639654919D+00 -0.27480984049462D-16 + 3 29 2 22 -0.54811388730227D+00 0.64284454230696D-17 + 1 30 2 22 -0.29725170472751D+00 -0.20852262173709D-16 + 2 30 2 22 0.74085425446376D+00 0.17386003606698D-15 + 3 30 2 22 0.17634066358114D+00 -0.40930639563457D-16 + 1 31 2 22 0.14289485317980D+02 0.49097390793069D-17 + 2 31 2 22 -0.21376754587858D+02 -0.90536315408467D-16 + 3 31 2 22 -0.10252583096720D+02 -0.13130235158191D-16 + 1 32 2 22 0.71824896247095D+00 0.46136302411463D-17 + 2 32 2 22 0.81483082564649D+01 -0.13391380630115D-15 + 3 32 2 22 0.72382928212444D+01 -0.32363179250251D-16 + 1 33 2 22 -0.37172800955781D+00 0.11803172982689D-17 + 2 33 2 22 0.18707498056841D+00 0.22960115281428D-15 + 3 33 2 22 -0.51652952950282D+00 -0.78429481528845D-16 + 1 34 2 22 0.32919452336551D+01 -0.10796787645378D-16 + 2 34 2 22 -0.31495638884331D+01 0.23170944987941D-15 + 3 34 2 22 -0.10224519877059D+01 -0.35269425107104D-16 + 1 35 2 22 0.67118144898900D-02 -0.28212202429645D-17 + 2 35 2 22 -0.52402244393142D+00 -0.18701475586994D-15 + 3 35 2 22 -0.28673425970043D+00 0.55618560212601D-16 + 1 36 2 22 0.27304288889754D+01 -0.23103925200894D-17 + 2 36 2 22 -0.18994089981028D+01 -0.24670843157852D-16 + 3 36 2 22 0.20752894122620D+01 0.13131611392732D-16 + 1 37 2 22 0.63788193896406D+00 0.91840249439910D-18 + 2 37 2 22 0.62293770665092D+00 -0.82741012345723D-16 + 3 37 2 22 -0.10691912141849D+01 -0.30348806014460D-16 + 1 38 2 22 -0.46171555433879D+01 0.24018571042388D-17 + 2 38 2 22 -0.50448506524644D+01 0.25801019851469D-15 + 3 38 2 22 0.29658009543567D+01 0.54412028484697D-16 + 1 39 2 22 0.92961861660143D-01 0.24023497640828D-17 + 2 39 2 22 -0.36216127554279D+00 -0.56778649380092D-16 + 3 39 2 22 0.20914673817794D-01 -0.15485079266663D-16 + 1 40 2 22 0.28826890102680D-01 0.50486633271499D-17 + 2 40 2 22 0.79503731643843D-01 -0.26101842837896D-15 + 3 40 2 22 -0.50694550586706D-01 -0.18847298557252D-16 + 1 41 2 22 0.28641075667356D+00 -0.29957640688519D-16 + 2 41 2 22 -0.27726425993111D+00 -0.27212095391570D-16 + 3 41 2 22 0.60352768827599D+00 0.42955603229720D-16 + 1 42 2 22 -0.17793550258318D+01 0.14042689093737D-16 + 2 42 2 22 0.12265406544990D+01 0.11468193677901D-15 + 3 42 2 22 -0.15198829841141D+01 -0.18408287272937D-16 + 1 43 2 22 -0.16931048991710D+01 -0.33671926343888D-16 + 2 43 2 22 -0.11150142372855D+01 -0.88714729551608D-16 + 3 43 2 22 0.13549678598456D+01 -0.39502842253420D-16 + 1 44 2 22 0.52080259707712D+00 0.51086287411109D-18 + 2 44 2 22 -0.52469610687682D+00 -0.20029519080242D-15 + 3 44 2 22 0.41374287618090D+00 -0.10854609409468D-16 + 1 45 2 22 -0.33794676895607D-01 0.17428067297655D-16 + 2 45 2 22 -0.37611087067127D+00 -0.19615083008847D-15 + 3 45 2 22 0.28225134787875D+00 -0.83132871703684D-17 + 1 46 2 22 0.12568042557563D+01 -0.48168961612105D-18 + 2 46 2 22 -0.11782400519076D+01 -0.16691117999491D-15 + 3 46 2 22 -0.87578480095377D+00 -0.39757403513853D-16 + 1 47 2 22 0.22245450246926D+02 0.27521422020071D-16 + 2 47 2 22 -0.25943254441570D+02 0.13279473789753D-15 + 3 47 2 22 0.23403793604855D+02 0.36291264188888D-16 + 1 48 2 22 0.46714702670666D+00 0.79419079359245D-16 + 2 48 2 22 0.33819761922103D+00 0.16295028894490D-15 + 3 48 2 22 -0.15857612882839D+00 0.13954584316771D-16 + 1 49 2 22 -0.98978215545325D-01 0.98405853849524D-16 + 2 49 2 22 0.32936438032625D+00 -0.88831215982962D-16 + 3 49 2 22 0.38755451493193D+00 0.12826585948958D-16 + 1 50 2 22 -0.76962261638420D-01 -0.28363429434782D-16 + 2 50 2 22 -0.70576265098416D+01 0.16698129483754D-15 + 3 50 2 22 -0.72403265890006D+01 0.21590504018136D-16 + 1 51 2 22 -0.17990004975472D+01 -0.37574951036342D-16 + 2 51 2 22 0.26553207591071D+01 0.90081487735160D-16 + 3 51 2 22 0.15092623549221D+01 0.22066148426019D-17 + 1 52 2 22 -0.55458505988008D+00 -0.21077928029593D-17 + 2 52 2 22 0.12432638468928D+01 -0.16334826267207D-16 + 3 52 2 22 -0.93257181798682D+00 0.23800047773652D-16 + 1 53 2 22 -0.46363386037039D-01 0.65785041239030D-17 + 2 53 2 22 0.17901783548743D+00 0.22534436534297D-15 + 3 53 2 22 0.25060787165518D-01 -0.12146710641020D-16 + 1 54 2 22 0.97182246126537D+00 0.37135781228127D-16 + 2 54 2 22 0.18056327608835D+01 -0.11656455606542D-15 + 3 54 2 22 -0.17882170017425D+01 -0.37574618177154D-16 + 1 55 2 22 -0.17512457825153D+00 -0.29704329182450D-16 + 2 55 2 22 0.96910325492603D+00 0.23144655887892D-16 + 3 55 2 22 0.26312833464488D+00 0.33656401135372D-16 + 1 56 2 22 0.16233365719528D+01 -0.26287010204245D-16 + 2 56 2 22 0.11871324957381D+01 -0.16707279851420D-15 + 3 56 2 22 -0.17065758913518D+01 -0.44101153485473D-17 + 1 57 2 22 -0.79971555683543D-02 0.37157486724470D-17 + 2 57 2 22 0.24478245845664D+00 -0.16766207147288D-15 + 3 57 2 22 0.94808506004455D-01 -0.27267097562836D-16 + 1 58 2 22 0.13093678493619D+01 0.39654774901076D-17 + 2 58 2 22 -0.11313505286587D+01 -0.68525573116941D-16 + 3 58 2 22 0.12676911053746D+01 -0.40369182172275D-16 + 1 59 2 22 -0.49185051631149D+00 -0.22826114265757D-16 + 2 59 2 22 -0.81185336706516D+00 -0.32077893508970D-16 + 3 59 2 22 0.39151104755289D+00 0.68490481060042D-17 + 1 60 2 22 -0.19589691143570D+01 0.64782612421729D-17 + 2 60 2 22 0.19692102717770D+01 0.33716042727117D-16 + 3 60 2 22 0.15289918852252D+01 0.11664284410259D-15 + 1 61 2 22 -0.45010459969444D+00 -0.95269739320552D-17 + 2 61 2 22 -0.45982337843817D+00 0.17503589345381D-16 + 3 61 2 22 0.46664333485390D+00 -0.31994368269157D-16 + 1 62 2 22 -0.14751333435336D+02 0.22344607136969D-16 + 2 62 2 22 -0.26966858017481D+02 -0.13812613396474D-15 + 3 62 2 22 0.16509815584852D+02 0.39927655190316D-17 + 1 63 2 22 0.41327057253000D-01 0.30674101529892D-17 + 2 63 2 22 0.17804663887289D+00 -0.30925031826169D-15 + 3 63 2 22 0.20196117384863D-01 -0.38725810012939D-16 + 1 64 2 22 -0.12933343460640D+02 0.50237764883458D-18 + 2 64 2 22 -0.34088804580793D+02 -0.87971082983414D-16 + 3 64 2 22 -0.35742517670047D+02 -0.16310632643781D-16 + 1 65 2 22 -0.41769986453755D+01 0.18502483694995D-17 + 2 65 2 22 0.85208276128703D+00 0.55049253562441D-16 + 3 65 2 22 -0.28091029343294D+01 0.14494542169025D-16 + 1 1 3 22 -0.13441851649688D+00 0.33592386646116D-16 + 2 1 3 22 -0.62347852797931D+00 0.78305389439000D-17 + 3 1 3 22 0.54392391872485D+00 0.32912964960464D-15 + 1 2 3 22 0.68445111688901D+00 0.43291483714568D-18 + 2 2 3 22 -0.87950895163831D+00 -0.12821936026249D-17 + 3 2 3 22 -0.11649945096036D+01 0.46737409689875D-15 + 1 3 3 22 -0.71809348402237D+00 0.22596764538565D-16 + 2 3 3 22 0.99491676041998D+00 -0.30327818623950D-17 + 3 3 3 22 0.81365140915615D+00 0.14249233329687D-15 + 1 4 3 22 0.18965285104181D+00 -0.90879196633058D-17 + 2 4 3 22 0.20782504841662D+00 -0.27482033829037D-17 + 3 4 3 22 -0.28136420191463D+00 -0.19486069233959D-16 + 1 5 3 22 -0.62152515350495D+00 -0.32372058086126D-17 + 2 5 3 22 -0.73226250017448D+01 -0.56267625870709D-17 + 3 5 3 22 0.54718011965240D+01 -0.78032421693008D-16 + 1 6 3 22 -0.18739913392291D+01 0.24024551201297D-16 + 2 6 3 22 0.31092013568370D+01 0.83627699172927D-17 + 3 6 3 22 -0.34528163015957D+01 0.61567037500753D-16 + 1 7 3 22 0.13275629014228D+01 0.13307084319831D-16 + 2 7 3 22 0.30549193890543D+01 0.51115284164696D-17 + 3 7 3 22 -0.25386322377401D+01 -0.81556638687196D-15 + 1 8 3 22 0.15363366088824D+01 0.25361372634850D-16 + 2 8 3 22 -0.25795643293890D+01 0.32257805547018D-17 + 3 8 3 22 -0.30757828154629D+01 0.99809590101663D-16 + 1 9 3 22 -0.44537504933503D+00 -0.12742663957263D-16 + 2 9 3 22 -0.34830850014408D+00 -0.31302308348218D-16 + 3 9 3 22 -0.31369810913834D+00 0.11059587376715D-15 + 1 10 3 22 -0.13273811450752D-01 0.22376847588081D-16 + 2 10 3 22 0.26278439828263D-02 -0.24245220908151D-16 + 3 10 3 22 0.23190305886133D+00 0.29712795838214D-16 + 1 11 3 22 0.50761007616451D-01 -0.13250380718221D-16 + 2 11 3 22 0.13318937730154D+00 0.31911357300805D-16 + 3 11 3 22 0.16837728753467D+00 0.21269558628896D-15 + 1 12 3 22 -0.94699525274431D+00 -0.10433901261070D-16 + 2 12 3 22 -0.95887137638926D+00 0.19506354607615D-16 + 3 12 3 22 -0.80139593358100D+00 0.11441823566211D-16 + 1 13 3 22 0.29561622081642D+00 -0.12944970309020D-16 + 2 13 3 22 -0.26995021922509D+00 -0.29149550933035D-16 + 3 13 3 22 0.25290236492055D+00 0.10004466299170D-15 + 1 14 3 22 -0.45772260833659D+00 0.27895064811502D-16 + 2 14 3 22 -0.60764078805149D+00 -0.31108951441638D-16 + 3 14 3 22 -0.44967827289999D+00 -0.41858509480469D-16 + 1 15 3 22 -0.17291822842402D+00 0.28919266916087D-16 + 2 15 3 22 -0.20346636314717D+00 0.26792788704196D-16 + 3 15 3 22 0.51643676632400D+00 -0.93500966133509D-16 + 1 16 3 22 -0.85317621194837D+00 0.30569295055625D-17 + 2 16 3 22 -0.10028054761513D+01 -0.15284895588253D-16 + 3 16 3 22 0.62991047216480D-01 -0.38771585253807D-17 + 1 17 3 22 -0.24064116261816D-01 -0.36970496364028D-17 + 2 17 3 22 -0.14872177932805D+00 -0.17527171110340D-17 + 3 17 3 22 0.40195590498098D-01 0.82615691007869D-17 + 1 18 3 22 0.68047619236457D-01 0.18240176268215D-16 + 2 18 3 22 0.57995663584141D+00 0.71425264135674D-18 + 3 18 3 22 -0.74394943703651D+00 -0.48361658594247D-18 + 1 19 3 22 0.74074581612352D+00 0.79208124560165D-17 + 2 19 3 22 0.12637881894937D+01 -0.69613785423811D-17 + 3 19 3 22 0.10020919058717D+01 0.52992133072571D-17 + 1 20 3 22 0.32925776099028D+00 0.63694747157558D-17 + 2 20 3 22 -0.39305705776451D+00 0.33064374887151D-17 + 3 20 3 22 -0.44422357773511D+00 0.14027441129963D-16 + 1 21 3 22 0.21546854528394D+00 -0.10145212310246D-16 + 2 21 3 22 -0.21334612465260D+00 0.53598009538636D-17 + 3 21 3 22 0.20929947359173D+00 -0.21192460995647D-16 + 1 22 3 22 -0.38075754141958D+01 0.00000000000000D+00 + 2 22 3 22 0.11489553790423D+02 0.00000000000000D+00 + 3 22 3 22 0.11504972351550D+03 0.00000000000000D+00 + 1 23 3 22 -0.39005282841352D+00 -0.47181316350152D-17 + 2 23 3 22 0.28504399934005D+00 0.19394894093723D-17 + 3 23 3 22 0.12797076026959D+00 0.12523890382140D-16 + 1 24 3 22 0.63234747208144D-01 0.44736743831300D-16 + 2 24 3 22 -0.15228710567634D+00 0.13291548945815D-16 + 3 24 3 22 0.29670575418887D+00 0.16205782392844D-15 + 1 25 3 22 0.18627745527627D+00 -0.20077576083350D-17 + 2 25 3 22 -0.50995383855731D+00 -0.14825926141973D-16 + 3 25 3 22 -0.73467466067885D+00 -0.15118460239281D-15 + 1 26 3 22 0.45000684445280D+00 -0.44881388559643D-16 + 2 26 3 22 -0.33361931413377D+00 0.34547328396157D-17 + 3 26 3 22 -0.42401759444368D+00 -0.24874269087356D-17 + 1 27 3 22 -0.37666733718617D+00 -0.18006937303910D-16 + 2 27 3 22 0.18446449841465D+00 -0.41400168143884D-16 + 3 27 3 22 -0.79049413507109D-01 -0.12005127721702D-15 + 1 28 3 22 0.38621584510486D-04 -0.21131611772751D-16 + 2 28 3 22 0.74230068669528D+00 0.31849695176414D-16 + 3 28 3 22 -0.53328893963902D+00 -0.61890594398257D-16 + 1 29 3 22 -0.29725170472748D+00 0.99948066847305D-17 + 2 29 3 22 0.17634066358114D+00 0.64284454230696D-17 + 3 29 3 22 0.74085425446377D+00 -0.83203646484131D-16 + 1 30 3 22 0.51165184777623D+00 -0.91650358942373D-16 + 2 30 3 22 -0.54811388730227D+00 -0.40930639563457D-16 + 3 30 3 22 -0.34388639654919D+00 -0.46988106551359D-16 + 1 31 3 22 0.14289485317980D+02 -0.11691855020358D-16 + 2 31 3 22 -0.10252583096720D+02 -0.13130235158191D-16 + 3 31 3 22 -0.21376754587858D+02 -0.21704930457059D-15 + 1 32 3 22 -0.76962261638420D-01 -0.13557589506575D-16 + 2 32 3 22 -0.72382928212444D+01 -0.32363179250251D-16 + 3 32 3 22 -0.70576265098416D+01 -0.73761290736204D-16 + 1 33 3 22 0.46714702670666D+00 0.43304210663782D-16 + 2 33 3 22 -0.15857612882839D+00 -0.78429481528845D-16 + 3 33 3 22 0.33819761922103D+00 -0.94192563190993D-16 + 1 34 3 22 -0.17990004975472D+01 0.88876243945214D-16 + 2 34 3 22 0.15092623549221D+01 -0.35269425107104D-16 + 3 34 3 22 0.26553207591071D+01 0.15915876428956D-16 + 1 35 3 22 -0.98978215545314D-01 -0.90460125028003D-16 + 2 35 3 22 0.38755451493193D+00 0.55618560212601D-16 + 3 35 3 22 0.32936438032626D+00 0.22301652590719D-16 + 1 36 3 22 0.97182246126536D+00 -0.10768704265416D-15 + 2 36 3 22 -0.17882170017425D+01 0.13131611392732D-16 + 3 36 3 22 0.18056327608835D+01 -0.11467688744714D-16 + 1 37 3 22 -0.55458505988008D+00 0.20999772320377D-17 + 2 37 3 22 -0.93257181798682D+00 -0.30348806014460D-16 + 3 37 3 22 0.12432638468928D+01 0.87950301502093D-16 + 1 38 3 22 -0.17512457825153D+00 -0.82300522151208D-16 + 2 38 3 22 0.26312833464488D+00 0.54412028484697D-16 + 3 38 3 22 0.96910325492603D+00 -0.42221342599740D-16 + 1 39 3 22 -0.46363386037039D-01 0.36006566659183D-16 + 2 39 3 22 0.25060787165518D-01 -0.15485079266663D-16 + 3 39 3 22 0.17901783548742D+00 -0.64681845504623D-16 + 1 40 3 22 -0.79971555683552D-02 -0.60874792835162D-17 + 2 40 3 22 0.94808506004454D-01 -0.18847298557252D-16 + 3 40 3 22 0.24478245845664D+00 -0.90982453876685D-16 + 1 41 3 22 -0.49185051631149D+00 0.12569946018234D-17 + 2 41 3 22 0.39151104755289D+00 0.42955603229720D-16 + 3 41 3 22 -0.81185336706516D+00 0.14414922093453D-15 + 1 42 3 22 0.16233365719528D+01 -0.13622961380360D-16 + 2 42 3 22 -0.17065758913518D+01 -0.18408287272937D-16 + 3 42 3 22 0.11871324957381D+01 0.30475857177439D-15 + 1 43 3 22 0.13093678493619D+01 0.36661033737761D-16 + 2 43 3 22 0.12676911053746D+01 -0.39502842253420D-16 + 3 43 3 22 -0.11313505286587D+01 -0.22668198302340D-15 + 1 44 3 22 -0.45010459969444D+00 -0.18084502181650D-16 + 2 44 3 22 0.46664333485389D+00 -0.10854609409468D-16 + 3 44 3 22 -0.45982337843817D+00 -0.14208772899209D-15 + 1 45 3 22 0.41327057252995D-01 -0.39872791288368D-16 + 2 45 3 22 0.20196117384856D-01 -0.83132871703684D-17 + 3 45 3 22 0.17804663887290D+00 -0.19736894235662D-15 + 1 46 3 22 -0.19589691143570D+01 -0.36929907276374D-17 + 2 46 3 22 0.15289918852252D+01 -0.39757403513853D-16 + 3 46 3 22 0.19692102717769D+01 0.99245189350074D-16 + 1 47 3 22 -0.14751333435336D+02 0.16225401012463D-16 + 2 47 3 22 0.16509815584852D+02 0.36291264188888D-16 + 3 47 3 22 -0.26966858017481D+02 -0.60148429207365D-16 + 1 48 3 22 -0.37172800955782D+00 -0.30823908274952D-17 + 2 48 3 22 -0.51652952950282D+00 0.13954584316771D-16 + 3 48 3 22 0.18707498056840D+00 0.24016003970537D-15 + 1 49 3 22 0.67118144898820D-02 -0.28686593025061D-18 + 2 49 3 22 -0.28673425970043D+00 0.12826585948958D-16 + 3 49 3 22 -0.52402244393143D+00 -0.20377198286273D-15 + 1 50 3 22 0.71824896247095D+00 0.89516717679435D-17 + 2 50 3 22 0.72403265890006D+01 0.21590504018136D-16 + 3 50 3 22 0.81483082564649D+01 0.33613102678549D-16 + 1 51 3 22 0.32919452336551D+01 -0.22248621824352D-16 + 2 51 3 22 -0.10224519877059D+01 0.22066148426019D-17 + 3 51 3 22 -0.31495638884331D+01 -0.14089781606439D-15 + 1 52 3 22 0.63788193896406D+00 0.10597521100106D-17 + 2 52 3 22 -0.10691912141849D+01 0.23800047773652D-16 + 3 52 3 22 0.62293770665093D+00 -0.51258102126454D-16 + 1 53 3 22 0.92961861660142D-01 -0.19321577399952D-18 + 2 53 3 22 0.20914673817793D-01 -0.12146710641020D-16 + 3 53 3 22 -0.36216127554279D+00 0.20103528228073D-15 + 1 54 3 22 0.27304288889754D+01 0.35919922177667D-17 + 2 54 3 22 0.20752894122620D+01 -0.37574618177154D-16 + 3 54 3 22 -0.18994089981029D+01 0.10963235809197D-15 + 1 55 3 22 -0.46171555433879D+01 -0.39681254635676D-17 + 2 55 3 22 0.29658009543567D+01 0.33656401135372D-16 + 3 55 3 22 -0.50448506524644D+01 0.17501929214410D-15 + 1 56 3 22 -0.17793550258318D+01 0.41417228303077D-16 + 2 56 3 22 -0.15198829841141D+01 -0.44101153485473D-17 + 3 56 3 22 0.12265406544990D+01 -0.46803551455032D-16 + 1 57 3 22 0.28826890102680D-01 -0.67439190948356D-16 + 2 57 3 22 -0.50694550586705D-01 -0.27267097562836D-16 + 3 57 3 22 0.79503731643845D-01 -0.15323101029230D-15 + 1 58 3 22 -0.16931048991710D+01 -0.42109336894328D-16 + 2 58 3 22 0.13549678598456D+01 -0.40369182172275D-16 + 3 58 3 22 -0.11150142372855D+01 0.15448114319300D-15 + 1 59 3 22 0.28641075667356D+00 -0.76033521611859D-17 + 2 59 3 22 0.60352768827599D+00 0.68490481060042D-17 + 3 59 3 22 -0.27726425993110D+00 -0.62317555829015D-16 + 1 60 3 22 0.12568042557563D+01 -0.21472371990114D-17 + 2 60 3 22 -0.87578480095378D+00 0.11664284410259D-15 + 3 60 3 22 -0.11782400519076D+01 -0.13128105311527D-15 + 1 61 3 22 0.52080259707712D+00 -0.24293539920095D-16 + 2 61 3 22 0.41374287618090D+00 -0.31994368269157D-16 + 3 61 3 22 -0.52469610687681D+00 0.28162898721807D-15 + 1 62 3 22 0.22245450246926D+02 -0.23509940001971D-16 + 2 62 3 22 0.23403793604855D+02 0.39927655190316D-17 + 3 62 3 22 -0.25943254441570D+02 0.32413309007323D-15 + 1 63 3 22 -0.33794676895598D-01 0.26934850267331D-16 + 2 63 3 22 0.28225134787876D+00 -0.38725810012939D-16 + 3 63 3 22 -0.37611087067125D+00 -0.17355364599619D-15 + 1 64 3 22 -0.12933343460640D+02 0.76882720144207D-17 + 2 64 3 22 -0.35743857755746D+02 -0.16310632643781D-16 + 3 64 3 22 -0.34087583801540D+02 -0.35399942080971D-15 + 1 65 3 22 -0.41769986453754D+01 -0.15579373616962D-16 + 2 65 3 22 -0.28091029343294D+01 0.14494542169025D-16 + 3 65 3 22 0.85208276128703D+00 0.56301546652584D-16 + 1 1 1 23 -0.19885450472414D-01 -0.45044058624157D-16 + 2 1 1 23 -0.13569498302180D+00 -0.11474923999897D-16 + 3 1 1 23 0.12899902445748D+00 -0.25978222667257D-16 + 1 2 1 23 0.28208267547122D-01 -0.15125001908443D-15 + 2 2 1 23 0.46389530140499D-01 0.79981168569410D-17 + 3 2 1 23 0.43402375418695D-01 0.18281537460457D-16 + 1 3 1 23 -0.40115266392881D-01 0.83389925705423D-16 + 2 3 1 23 -0.42487475494263D-01 -0.12881499503583D-16 + 3 3 1 23 -0.34258093331182D-01 0.22218050731181D-16 + 1 4 1 23 -0.21972711183071D-01 0.51882190015735D-17 + 2 4 1 23 0.11243027226998D+00 0.28278555933235D-16 + 3 4 1 23 -0.98113074926449D-01 -0.32873169149334D-16 + 1 5 1 23 0.28295565651853D+01 -0.30767413227028D-17 + 2 5 1 23 -0.13275629014228D+01 0.27832480757646D-16 + 3 5 1 23 0.18739913392291D+01 0.10893537247803D-16 + 1 6 1 23 0.30841850336172D+01 0.11857494776028D-15 + 2 6 1 23 0.13256739918059D+01 -0.16510359780427D-16 + 3 6 1 23 0.12743152760817D+01 0.26996829716464D-16 + 1 7 1 23 0.32152539957642D+01 0.81961081606034D-16 + 2 7 1 23 -0.12172360738130D+01 -0.23704469847008D-17 + 3 7 1 23 -0.12454641439855D+01 0.26245452450362D-16 + 1 8 1 23 0.29685174375501D+01 0.70037354003842D-16 + 2 8 1 23 0.12951198397229D+01 -0.22471361215835D-16 + 3 8 1 23 -0.14116852895950D+01 0.15173751903989D-16 + 1 9 1 23 0.24400776122658D+00 0.30144427501821D-16 + 2 9 1 23 0.37257383673286D-01 0.30490758526851D-16 + 3 9 1 23 0.11820483903233D-02 0.37577974308375D-16 + 1 10 1 23 -0.34863044532207D+00 0.10684270229112D-15 + 2 10 1 23 -0.43784508225184D+00 0.26646655584954D-16 + 3 10 1 23 -0.47661236736015D+00 0.11698635619854D-16 + 1 11 1 23 -0.37485941932151D+00 -0.16738622928045D-15 + 2 11 1 23 -0.41800475205424D+00 -0.36434953552196D-16 + 3 11 1 23 -0.49376388172361D+00 0.20527358637214D-17 + 1 12 1 23 0.48013010771486D+00 -0.48909460957197D-16 + 2 12 1 23 -0.26610454512719D+00 0.23879633573017D-17 + 3 12 1 23 -0.32762621479199D+00 -0.23980934059162D-16 + 1 13 1 23 -0.77719381706600D+00 -0.75757461547825D-16 + 2 13 1 23 -0.47953374969924D+00 -0.12788481586222D-16 + 3 13 1 23 -0.42047438751370D+00 -0.25924532809163D-16 + 1 14 1 23 0.20209056579022D+00 -0.82550598518513D-16 + 2 14 1 23 -0.33048480633065D+00 -0.13121172320440D-16 + 3 14 1 23 0.34325330614271D+00 0.18690179469241D-16 + 1 15 1 23 -0.26419464735399D+02 -0.26930686384024D-15 + 2 15 1 23 -0.14029655666361D+02 -0.23828286539851D-16 + 3 15 1 23 -0.14605661763507D+02 -0.31029374368240D-17 + 1 16 1 23 -0.16720242091942D+00 -0.10638008519927D-17 + 2 16 1 23 -0.53321962162254D-01 0.45649384069117D-18 + 3 16 1 23 -0.50822928074397D-01 0.20971609025591D-18 + 1 17 1 23 -0.14651597359657D+00 0.32784254422149D-17 + 2 17 1 23 0.41467919487293D-01 -0.45856844497170D-18 + 3 17 1 23 0.78310784482451D-02 0.14727016537185D-17 + 1 18 1 23 -0.10369009279272D+00 -0.63097089448557D-18 + 2 18 1 23 -0.25660247315378D-01 -0.10474065557851D-17 + 3 18 1 23 -0.36928784194140D-01 -0.16480604745348D-17 + 1 19 1 23 -0.35562475976301D+00 -0.11872706752493D-16 + 2 19 1 23 0.24461857082305D-02 0.42442915233756D-18 + 3 19 1 23 0.46994349775083D-01 0.48415618946926D-18 + 1 20 1 23 0.14728015480932D+01 0.62333699652000D-18 + 2 20 1 23 -0.27724378819635D-01 -0.61229585731203D-18 + 3 20 1 23 -0.63626998041331D-01 -0.35552200796200D-18 + 1 21 1 23 -0.23565771303355D+00 -0.10482449432574D-17 + 2 21 1 23 -0.76325334859224D-02 0.85176024445588D-19 + 3 21 1 23 0.25941992352620D-01 0.14890314105842D-18 + 1 22 1 23 -0.83718992029360D-01 0.14046394220107D-16 + 2 22 1 23 0.32925776099028D+00 0.17141094437249D-17 + 3 22 1 23 -0.39005282841352D+00 0.47181316350152D-17 + 1 23 1 23 0.12009846314917D+03 0.00000000000000D+00 + 2 23 1 23 -0.59488669410594D-01 0.00000000000000D+00 + 3 23 1 23 0.17989040590738D+01 0.00000000000000D+00 + 1 24 1 23 -0.39161458132891D+00 -0.47492515094835D-16 + 2 24 1 23 0.47745269960844D+00 -0.28214206201998D-16 + 3 24 1 23 0.39173006312076D+00 -0.33721680850318D-16 + 1 25 1 23 0.28559695976668D+00 0.16387228104610D-15 + 2 25 1 23 -0.31288499790054D-02 -0.18502729428852D-16 + 3 25 1 23 0.37134587379390D-01 -0.76269967869182D-17 + 1 26 1 23 0.48538142032135D+00 -0.24424072867794D-16 + 2 26 1 23 0.26829885043047D+00 0.68906332580160D-17 + 3 26 1 23 0.33034754534777D+00 0.23207633512061D-16 + 1 27 1 23 -0.39730649977236D+00 -0.85963916879812D-16 + 2 27 1 23 0.50064688040607D+00 -0.11542714868051D-16 + 3 27 1 23 0.46150686927486D+00 0.23077588102700D-16 + 1 28 1 23 0.16030304388459D+00 -0.24617168856324D-16 + 2 28 1 23 0.20850740465840D+00 0.40107715118400D-17 + 3 28 1 23 -0.30651034623013D+00 -0.35436057208894D-16 + 1 29 1 23 -0.79080780410649D+00 0.24218740903732D-15 + 2 29 1 23 0.53886715642619D+00 -0.31704780794225D-16 + 3 29 1 23 0.53313172251161D+00 0.24428169436187D-16 + 1 30 1 23 -0.25328120975725D+02 0.23825777607050D-15 + 2 30 1 23 0.13149198839103D+02 0.88274173124317D-17 + 3 30 1 23 0.13400572938525D+02 0.96348079333071D-17 + 1 31 1 23 0.25002441018994D+00 0.17268470070287D-16 + 2 31 1 23 -0.29589742680319D+00 0.17925528146375D-17 + 3 31 1 23 0.35525035041940D+00 -0.29458929847898D-16 + 1 32 1 23 -0.21143668169989D+00 -0.10830787613535D-15 + 2 32 1 23 -0.37172800955781D+00 -0.82884138899082D-17 + 3 32 1 23 -0.46714702670666D+00 -0.26006197316223D-16 + 1 33 1 23 -0.30238806664966D+01 -0.15636092139222D-16 + 2 33 1 23 -0.32845967229456D+01 -0.70168484891649D-19 + 3 33 1 23 -0.12921767328817D+01 0.71758645750786D-16 + 1 34 1 23 -0.24776983014886D+00 -0.75023581593389D-16 + 2 34 1 23 -0.94115504274791D-01 -0.11708606161493D-17 + 3 34 1 23 0.43841709977778D-01 -0.30617633138546D-16 + 1 35 1 23 -0.31052957392001D+01 0.13446584556023D-15 + 2 35 1 23 0.32289744110740D+01 -0.20906690116031D-18 + 3 35 1 23 0.11850558323564D+01 0.12048260156887D-16 + 1 36 1 23 -0.23467698998718D+00 -0.50635915654763D-16 + 2 36 1 23 -0.96415435917294D-01 -0.27687027575966D-17 + 3 36 1 23 -0.12180751841965D+00 -0.37437323221193D-17 + 1 37 1 23 -0.29233488661134D+01 0.12302738326380D-15 + 2 37 1 23 0.28728526686265D+01 0.19080180097598D-17 + 3 37 1 23 -0.12748485259548D+01 -0.97467295401939D-17 + 1 38 1 23 -0.20352226633814D+00 0.22517994436169D-15 + 2 38 1 23 0.12521758778296D+00 0.44182240443128D-17 + 3 38 1 23 0.10774984940750D-01 -0.10354983198359D-15 + 1 39 1 23 -0.30470853174333D+01 -0.11171722486895D-15 + 2 39 1 23 -0.31172863636171D+01 -0.17603477025344D-17 + 3 39 1 23 0.13286275214552D+01 -0.28013290194270D-17 + 1 40 1 23 -0.31512814179122D+00 0.36711638429099D-16 + 2 40 1 23 0.41510684461686D+00 -0.79055459396946D-17 + 3 40 1 23 -0.48369823738220D+00 0.28085808649080D-17 + 1 41 1 23 0.25748660815604D+00 -0.67126766811192D-16 + 2 41 1 23 0.13334431757601D-01 0.24628120427737D-16 + 3 41 1 23 -0.22643509870746D-01 0.12687881823076D-16 + 1 42 1 23 0.57599511951002D+00 -0.52541833693461D-16 + 2 42 1 23 0.35996202666302D+00 -0.36356046666793D-16 + 3 42 1 23 -0.26938321812239D+00 -0.35113179031066D-16 + 1 43 1 23 -0.17175783798410D+00 0.33043628320617D-16 + 2 43 1 23 0.53061614381882D+00 -0.25440341322374D-16 + 3 43 1 23 -0.52011348209475D+00 0.23840961109739D-16 + 1 44 1 23 0.15328911515380D+00 -0.14536938747612D-15 + 2 44 1 23 0.29601155427096D+00 0.23495983602126D-17 + 3 44 1 23 0.31389755507366D+00 -0.25480365451853D-17 + 1 45 1 23 -0.75060432465813D+00 0.11120628037745D-15 + 2 45 1 23 0.41642775373069D+00 0.12814866743914D-15 + 3 45 1 23 -0.43144431608078D+00 0.33270329262566D-17 + 1 46 1 23 -0.28281032658509D+02 0.28610060425544D-15 + 2 46 1 23 0.14992323709904D+02 0.47214364591026D-16 + 3 46 1 23 -0.13867197110953D+02 -0.14989270285630D-16 + 1 47 1 23 0.19042103809357D+00 0.17428367242086D-16 + 2 47 1 23 -0.42205070125685D+00 0.39532028040039D-16 + 3 47 1 23 -0.30050836975060D+00 0.36053408985328D-16 + 1 48 1 23 -0.24757479388526D+00 -0.31428704114924D-16 + 2 48 1 23 0.14352455831501D+00 -0.34152247197363D-16 + 3 48 1 23 -0.73906612608212D-01 -0.33053279034643D-18 + 1 49 1 23 -0.22820373706450D+00 0.19885960905741D-16 + 2 49 1 23 -0.11060314530729D+00 -0.67650971492376D-16 + 3 49 1 23 0.78657874930476D-01 0.19353016877900D-17 + 1 50 1 23 -0.31805611728354D+01 0.27884395503368D-15 + 2 50 1 23 0.17990004975472D+01 -0.60399188864171D-16 + 3 50 1 23 0.32919452336552D+01 0.42892504912993D-17 + 1 51 1 23 -0.31818805466033D+01 -0.10553578275188D-15 + 2 51 1 23 -0.13625469848010D+01 -0.95620660972842D-16 + 3 51 1 23 -0.30751735322857D+01 0.20176578380233D-17 + 1 52 1 23 -0.20285354699657D+00 0.25856207178643D-16 + 2 52 1 23 0.93528066163418D-01 0.31000466909529D-16 + 3 52 1 23 0.89658032623898D-01 -0.36347810945625D-17 + 1 53 1 23 -0.23862176796399D+00 -0.26577629873947D-15 + 2 53 1 23 -0.86016099995373D-01 -0.10105820998468D-15 + 3 53 1 23 -0.11390436163443D+00 -0.30223770166287D-17 + 1 54 1 23 -0.30031823137818D+01 -0.22100118707457D-15 + 2 54 1 23 0.11823768965085D+01 0.31656607002084D-16 + 3 54 1 23 -0.30962339742665D+01 0.11717424386079D-17 + 1 55 1 23 -0.29949756481198D+01 -0.90858195884864D-16 + 2 55 1 23 -0.13678659944496D+01 0.14126105883968D-16 + 3 55 1 23 0.30926262122503D+01 0.27684111153747D-17 + 1 56 1 23 0.20033384962361D+00 0.98910309598499D-16 + 2 56 1 23 -0.10281033293596D+00 -0.33147236581446D-16 + 3 56 1 23 0.17379472240560D+00 0.43440496894442D-16 + 1 57 1 23 -0.44551561571321D+00 -0.14329134698551D-15 + 2 57 1 23 -0.52437964590649D+00 -0.53264087508027D-16 + 3 57 1 23 0.48848716900826D+00 -0.16545250813840D-16 + 1 58 1 23 -0.49336914517858D+00 -0.23798315079183D-15 + 2 58 1 23 -0.25450899472504D+00 -0.10056639443612D-16 + 3 58 1 23 0.64346728371821D-01 -0.12251625980872D-16 + 1 59 1 23 0.47011509603784D+00 0.91077142821966D-16 + 2 59 1 23 -0.32358218209426D+00 0.15324278091855D-16 + 3 59 1 23 0.24424858336584D+00 0.25215096168324D-16 + 1 60 1 23 -0.78153175645181D+00 -0.31475994959936D-16 + 2 60 1 23 -0.31197724830340D+00 -0.10002223069737D-15 + 3 60 1 23 0.37756050303363D+00 -0.14133822434875D-16 + 1 61 1 23 0.17633524868552D+00 -0.24729618882401D-15 + 2 61 1 23 -0.29923597616248D+00 -0.17582317932141D-16 + 3 61 1 23 -0.27566745941856D+00 0.19115282857268D-16 + 1 62 1 23 0.27912912720102D+00 0.15771401095174D-15 + 2 62 1 23 0.42098272698905D+00 0.20352404182157D-16 + 3 62 1 23 0.35569019419801D+00 0.66571818925949D-16 + 1 63 1 23 -0.25336542636213D+02 0.33119642402186D-16 + 2 63 1 23 -0.13816776238180D+02 0.25087635352914D-16 + 3 63 1 23 0.13733332541572D+02 -0.85062465646554D-17 + 1 64 1 23 0.33464851426689D+00 -0.34553445268653D-16 + 2 64 1 23 -0.30666810203722D+00 -0.11911851555290D-16 + 3 64 1 23 0.16656805207936D-01 -0.26855582090792D-16 + 1 65 1 23 0.14545606074375D+00 -0.77462129001183D-16 + 2 65 1 23 0.18222667758372D+00 0.24396050414477D-17 + 3 65 1 23 -0.32150795395446D+00 -0.66813359023470D-16 + 1 1 2 23 0.11018956029346D+00 -0.11474923999897D-16 + 2 1 2 23 -0.20873637486903D+00 -0.27322597494292D-15 + 3 1 2 23 -0.90810637626315D-01 0.59080098991704D-18 + 1 2 2 23 -0.10915285207292D+00 0.79981168569410D-17 + 2 2 2 23 -0.19250859648881D+00 -0.11336228134952D-15 + 3 2 2 23 0.15173137220633D+00 -0.10866961592687D-17 + 1 3 2 23 0.14432681694243D+00 -0.12881499503583D-16 + 2 3 2 23 -0.26792518326818D+00 0.52927200717885D-16 + 3 3 2 23 0.49290147573131D-01 0.20431876424987D-18 + 1 4 2 23 -0.10979845495590D+00 0.28278555933235D-16 + 2 4 2 23 -0.24801182769948D+00 0.19990107432829D-16 + 3 4 2 23 -0.88531530517866D-01 0.68658924885074D-18 + 1 5 2 23 0.15177320252663D+01 0.27832480757646D-16 + 2 5 2 23 -0.25386322377401D+01 0.67195106780083D-15 + 3 5 2 23 0.31092013568370D+01 0.13986088971307D-17 + 1 6 2 23 -0.13256739918059D+01 -0.16510359780427D-16 + 2 6 2 23 -0.29795532850691D+01 -0.10185599546461D-15 + 3 6 2 23 -0.31608079795356D+01 0.21787787965233D-17 + 1 7 2 23 0.12454641439855D+01 -0.23704469847008D-17 + 2 7 2 23 -0.30589887005169D+01 0.19165222084517D-15 + 3 7 2 23 -0.31293913227632D+01 -0.18609278020621D-18 + 1 8 2 23 -0.12360040210204D+01 -0.22471361215835D-16 + 2 8 2 23 -0.30626394163209D+01 -0.13688953315859D-17 + 3 8 2 23 0.31905729764210D+01 -0.10196439306101D-17 + 1 9 2 23 0.11266806978933D-01 0.30490758526851D-16 + 2 9 2 23 0.26366575977793D+00 0.17546275416807D-15 + 3 9 2 23 -0.12569101045152D-01 0.57184456132522D-16 + 1 10 2 23 -0.44863106048815D+00 0.26646655584954D-16 + 2 10 2 23 -0.35954568451204D+00 0.15354078933044D-15 + 3 10 2 23 -0.46636153091889D+00 -0.34697414339783D-17 + 1 11 2 23 -0.46522743564034D+00 -0.36434953552196D-16 + 2 11 2 23 -0.76098098408769D+00 0.35903446089044D-16 + 3 11 2 23 -0.45441403519213D+00 -0.55386104929040D-16 + 1 12 2 23 -0.27429826993853D+00 0.23879633573017D-17 + 2 12 2 23 0.12684713898618D+00 0.82406486206581D-16 + 3 12 2 23 0.28470708887522D+00 0.92581803727419D-16 + 1 13 2 23 -0.45605122386223D+00 -0.12788481586222D-16 + 2 13 2 23 -0.38779513090309D+00 0.89124890728250D-16 + 3 13 2 23 -0.42640903342131D+00 0.30802865544586D-16 + 1 14 2 23 -0.32570656986030D+00 -0.13121172320440D-16 + 2 14 2 23 0.49476657126485D+00 -0.33062011673479D-15 + 3 14 2 23 -0.26654576811641D+00 -0.24130688209461D-16 + 1 15 2 23 -0.13897086490666D+02 -0.23828286539851D-16 + 2 15 2 23 -0.26292168970119D+02 0.35946223360067D-16 + 3 15 2 23 -0.14423236904407D+02 0.99929718810693D-17 + 1 16 2 23 0.38930185792206D-01 0.45649384069117D-18 + 2 16 2 23 -0.95554353237724D-01 -0.92091702411332D-18 + 3 16 2 23 0.12262395208868D-01 -0.61881402054007D-18 + 1 17 2 23 0.23926507485511D-01 -0.45856844497170D-18 + 2 17 2 23 -0.19111969908325D+00 0.72176203393532D-18 + 3 17 2 23 -0.41533968157781D-01 -0.46875258077872D-18 + 1 18 2 23 0.24861959050637D-01 -0.10474065557851D-17 + 2 18 2 23 0.14768947477597D+01 -0.23273542400240D-17 + 3 18 2 23 -0.44845856798312D-01 -0.80836174748675D-18 + 1 19 2 23 -0.19184240360454D-02 0.42442915233756D-18 + 2 19 2 23 -0.20671006593298D+00 0.49258472319547D-17 + 3 19 2 23 -0.40416366528409D-01 -0.13095559797380D-17 + 1 20 2 23 -0.63626998041331D-01 -0.61229585731203D-18 + 2 20 2 23 -0.12727626599595D+00 0.51134008513887D-17 + 3 20 2 23 0.86493072065218D-02 0.10503602707100D-17 + 1 21 2 23 0.22284876094380D-01 0.85176024445588D-19 + 2 21 2 23 -0.39179030205285D+00 0.12241161406516D-18 + 3 21 2 23 -0.67018209271095D-01 0.48485147529020D-18 + 1 22 2 23 -0.24475038061527D-01 0.17141094437249D-17 + 2 22 2 23 -0.44422357773510D+00 -0.83262672795964D-17 + 3 22 2 23 0.28504399934005D+00 -0.19394894093723D-17 + 1 23 2 23 -0.59488669410594D-01 0.00000000000000D+00 + 2 23 2 23 0.11865662793326D+03 0.00000000000000D+00 + 3 23 2 23 0.13236166824961D+01 0.00000000000000D+00 + 1 24 2 23 0.48845849095463D+00 -0.28214206201998D-16 + 2 24 2 23 -0.39849614674370D+00 -0.11059325895968D-15 + 3 24 2 23 -0.46804370187614D+00 -0.26971135065468D-16 + 1 25 2 23 0.22841937824876D-01 -0.18502729428852D-16 + 2 25 2 23 0.28901435639828D+00 0.45483825865471D-16 + 3 25 2 23 -0.37917362697484D-01 0.15258154765771D-16 + 1 26 2 23 0.33966503486382D+00 0.68906332580160D-17 + 2 26 2 23 0.22540838907915D+00 -0.11783289401590D-15 + 3 26 2 23 0.28979766667511D+00 0.22783852259656D-17 + 1 27 2 23 0.43605273089234D+00 -0.11542714868051D-16 + 2 27 2 23 -0.73479300855674D+00 0.90491594401876D-16 + 3 27 2 23 -0.41193502972180D+00 -0.31166855268243D-16 + 1 28 2 23 0.27943292278076D+00 0.40107715118400D-17 + 2 28 2 23 0.37272648315902D+00 -0.39480216191926D-16 + 3 28 2 23 -0.21879589379042D+00 0.31111396907439D-16 + 1 29 2 23 0.50890489309559D+00 -0.31704780794225D-16 + 2 29 2 23 -0.40136127322327D+00 0.43024445958612D-16 + 3 29 2 23 -0.55121297710036D+00 0.65443663823940D-16 + 1 30 2 23 0.13217865722022D+02 0.88274173124317D-17 + 2 30 2 23 -0.25515961030837D+02 0.24788050169979D-15 + 3 30 2 23 -0.13522654321832D+02 -0.52271093708736D-16 + 1 31 2 23 -0.32656081583012D+00 0.17925528146375D-17 + 2 31 2 23 0.18674912064643D+00 -0.12790575436418D-15 + 3 31 2 23 -0.32723300791452D+00 0.36440713756779D-16 + 1 32 2 23 0.22701782239699D-01 -0.82884138899082D-17 + 2 32 2 23 0.18707498056840D+00 0.12437789570085D-15 + 3 32 2 23 0.15857612882839D+00 0.33178413821259D-16 + 1 33 2 23 -0.32845967229456D+01 -0.70168484891649D-19 + 2 33 2 23 -0.31435481711389D+01 0.44477176643853D-16 + 3 33 2 23 -0.13578084798523D+01 0.88520673001152D-17 + 1 34 2 23 -0.73906612608212D-01 -0.11708606161493D-17 + 2 34 2 23 -0.21706843664550D+00 -0.16848979760751D-15 + 3 34 2 23 -0.62766396932404D-01 0.95454828341695D-16 + 1 35 2 23 0.31941085754673D+01 -0.20906690116031D-18 + 2 35 2 23 -0.31161797414797D+01 0.68553145475192D-16 + 3 35 2 23 -0.14073185650725D+01 -0.34787796995232D-16 + 1 36 2 23 -0.90300250886180D-01 -0.27687027575966D-17 + 2 36 2 23 -0.21086672653500D+00 -0.17095000470060D-15 + 3 36 2 23 0.13225854204798D+00 -0.32622403662947D-17 + 1 37 2 23 0.28846658458855D+01 0.19080180097598D-17 + 2 37 2 23 -0.28762227844451D+01 -0.60828366083051D-16 + 3 37 2 23 0.10021922192644D+01 0.89573184200528D-16 + 1 38 2 23 0.36582342768196D-01 0.44182240443128D-17 + 2 38 2 23 -0.26027564892998D+00 -0.14694271110363D-15 + 3 38 2 23 0.15189491883038D+00 -0.58349277139220D-16 + 1 39 2 23 -0.32224719826006D+01 -0.17603477025344D-17 + 2 39 2 23 -0.31198683632758D+01 -0.24281508266168D-15 + 3 39 2 23 0.13623457728179D+01 -0.48257598694851D-17 + 1 40 2 23 0.44224998145375D+00 -0.79055459396946D-17 + 2 40 2 23 -0.37168114771698D+00 0.16824319466408D-15 + 3 40 2 23 0.45833681568794D+00 -0.26022976559389D-16 + 1 41 2 23 0.16149580206863D-01 0.24628120427737D-16 + 2 41 2 23 0.26462086478739D+00 -0.13312263798914D-15 + 3 41 2 23 0.27822975149863D-01 -0.64187801535443D-18 + 1 42 2 23 0.38139056523928D+00 -0.36356046666793D-16 + 2 42 2 23 0.18898539371495D+00 -0.95329605141587D-16 + 3 42 2 23 -0.34011013696974D+00 0.16550393740536D-16 + 1 43 2 23 0.33826748421716D+00 -0.25440341322374D-16 + 2 43 2 23 -0.86409040711022D+00 0.12880781961846D-15 + 3 43 2 23 0.59323179457402D+00 0.12537387824751D-16 + 1 44 2 23 0.22564467784921D+00 0.23495983602126D-17 + 2 44 2 23 0.43222364377866D+00 -0.17033298038135D-15 + 3 44 2 23 0.30191942014920D+00 -0.90501291415863D-17 + 1 45 2 23 0.48409400010692D+00 0.12814866743914D-15 + 2 45 2 23 -0.32229451800094D+00 -0.17214244021482D-15 + 3 45 2 23 0.41751349235392D+00 0.89729283304683D-17 + 1 46 2 23 0.14657929762345D+02 0.47214364591026D-16 + 2 46 2 23 -0.25101178599709D+02 0.27634100301021D-17 + 3 46 2 23 0.12371596783117D+02 0.22761550997538D-16 + 1 47 2 23 -0.28361053495241D+00 0.39532028040039D-16 + 2 47 2 23 0.23490982432093D+00 0.21053456238874D-15 + 3 47 2 23 0.31592974345076D+00 0.12341963686708D-16 + 1 48 2 23 -0.43841709977764D-01 -0.34152247197363D-16 + 2 48 2 23 -0.14974612365160D-01 -0.15180282401278D-15 + 3 48 2 23 0.63014662905325D-01 0.31870018004489D-16 + 1 49 2 23 0.12635356812616D+00 -0.67650971492376D-16 + 2 49 2 23 0.52373562507987D-02 -0.22217754664388D-16 + 3 49 2 23 0.99568015791888D-01 -0.13010909910843D-16 + 1 50 2 23 -0.81602640442449D+00 -0.60399188864171D-16 + 2 50 2 23 0.26553207591071D+01 -0.19463099892794D-15 + 3 50 2 23 0.10224519877059D+01 0.77270191992190D-16 + 1 51 2 23 0.13625469848010D+01 -0.95620660972842D-16 + 2 51 2 23 0.31258167392203D+01 0.96346565392294D-16 + 3 51 2 23 0.12816300215294D+01 0.27557896586611D-16 + 1 52 2 23 -0.14764773017079D+00 0.31000466909529D-16 + 2 52 2 23 0.54598954673179D-01 -0.33632258575499D-15 + 3 52 2 23 -0.10356682372427D+00 -0.27920767228037D-16 + 1 53 2 23 0.99565345105363D-01 -0.10105820998468D-15 + 2 53 2 23 -0.18016648722803D-01 0.16880282807548D-15 + 3 53 2 23 -0.80612052259485D-01 -0.17534240717842D-16 + 1 54 2 23 -0.14068234245039D+01 0.31656607002084D-16 + 2 54 2 23 0.30155345649138D+01 0.36623106956204D-16 + 3 54 2 23 -0.11353333223012D+01 0.24482310055179D-16 + 1 55 2 23 0.11971059792642D+01 0.14126105883968D-16 + 2 55 2 23 0.29632774936015D+01 0.20366210397075D-15 + 3 55 2 23 -0.12001748544479D+01 0.65375575202974D-17 + 1 56 2 23 0.24696374662192D-02 -0.33147236581446D-16 + 2 56 2 23 0.26864894443220D+00 0.11346248552217D-15 + 3 56 2 23 0.12118996449943D-01 0.34768707706339D-16 + 1 57 2 23 -0.52775938851812D+00 -0.53264087508027D-16 + 2 57 2 23 -0.44967235785732D+00 0.61667581136488D-16 + 3 57 2 23 0.49790547501619D+00 0.24850674031483D-16 + 1 58 2 23 -0.50939446161319D+00 -0.10056639443612D-16 + 2 58 2 23 -0.87719096127325D+00 -0.52009155009369D-16 + 3 58 2 23 0.50016541024873D+00 0.10711901283903D-15 + 1 59 2 23 -0.31572160078403D+00 0.15324278091855D-16 + 2 59 2 23 0.24708348230197D+00 -0.77616612976229D-16 + 3 59 2 23 -0.30265282018592D+00 -0.70586463774988D-17 + 1 60 2 23 -0.53730740550125D+00 -0.10002223069737D-15 + 2 60 2 23 -0.25326590528757D+00 -0.63787794714543D-16 + 3 60 2 23 0.40158016642122D+00 0.23846277679051D-16 + 1 61 2 23 -0.19985889980305D+00 -0.17582317932141D-16 + 2 61 2 23 0.42551965214467D+00 -0.67420286608693D-17 + 3 61 2 23 0.23274844943711D+00 -0.65038227315633D-17 + 1 62 2 23 0.29916503793232D+00 0.20352404182157D-16 + 2 62 2 23 0.12123201124201D+00 0.28007685549526D-15 + 3 62 2 23 0.16366981488136D+00 0.68328510887208D-16 + 1 63 2 23 -0.13879011340542D+02 0.25087635352914D-16 + 2 63 2 23 -0.26062789866101D+02 0.12562455351038D-15 + 3 63 2 23 0.14107929617707D+02 -0.90479667592091D-17 + 1 64 2 23 0.26880943972697D+00 -0.11911851555290D-16 + 2 64 2 23 -0.52428663441624D+00 -0.10318391555385D-16 + 3 64 2 23 -0.18288178967437D+00 0.31723811248514D-16 + 1 65 2 23 -0.39928517272484D-01 0.24396050414477D-17 + 2 65 2 23 0.75805720364928D-01 -0.65725050754416D-17 + 3 65 2 23 0.65815729498109D-01 -0.89423170302571D-16 + 1 1 3 23 -0.54960985429205D-01 -0.25978222667257D-16 + 2 1 3 23 -0.86008039398325D-01 0.59080098991704D-18 + 3 1 3 23 -0.22758195861379D+00 0.46232912009599D-16 + 1 2 3 23 -0.18188827530424D+00 0.18281537460457D-16 + 2 2 3 23 0.16359920195150D+00 -0.10866961592687D-17 + 3 2 3 23 -0.14082776768839D+00 0.91956195270281D-17 + 1 3 3 23 0.15890958213720D+00 0.22218050731181D-16 + 2 3 3 23 -0.21360777461616D-02 0.20431876424987D-18 + 3 3 3 23 -0.23088084729193D+00 -0.63739819386691D-16 + 1 4 3 23 0.11346762956114D+00 -0.32873169149334D-16 + 2 4 3 23 -0.94812845415090D-01 0.68658924885074D-18 + 3 4 3 23 -0.22877355990031D+00 0.76885376861867D-16 + 1 5 3 23 -0.15565761819559D+01 0.10893537247803D-16 + 2 5 3 23 0.30549193890543D+01 0.13986088971307D-17 + 3 5 3 23 -0.34528163015957D+01 0.16321128878242D-15 + 1 6 3 23 -0.12743152760817D+01 0.26996829716464D-16 + 2 6 3 23 -0.31608079795356D+01 0.21787787965233D-17 + 3 6 3 23 -0.30528471590872D+01 0.15950794386776D-15 + 1 7 3 23 0.12172360738130D+01 0.26245452450362D-16 + 2 7 3 23 -0.33428811390470D+01 -0.18609278020621D-18 + 3 7 3 23 -0.30589887005169D+01 0.26497359540728D-16 + 1 8 3 23 0.13774526215980D+01 0.15173751903989D-16 + 2 8 3 23 0.32361500471502D+01 -0.10196439306101D-17 + 3 8 3 23 -0.30064990613072D+01 -0.14976998828626D-16 + 1 9 3 23 -0.24072133695184D-01 0.37577974308375D-16 + 2 9 3 23 -0.46569947723825D-01 0.57184456132522D-16 + 3 9 3 23 0.26287090764838D+00 -0.78830908128623D-17 + 1 10 3 23 -0.48649535332308D+00 0.11698635619854D-16 + 2 10 3 23 -0.46410460231330D+00 -0.34697414339783D-17 + 3 10 3 23 -0.77484903294973D+00 -0.11707269006004D-15 + 1 11 3 23 -0.45485711635117D+00 0.20527358637214D-17 + 2 11 3 23 -0.50801145035334D+00 -0.55386104929040D-16 + 3 11 3 23 -0.38471724455043D+00 -0.24511781808074D-16 + 1 12 3 23 -0.35256230231845D+00 -0.23980934059162D-16 + 2 12 3 23 0.25496134102405D+00 0.92581803727419D-16 + 3 12 3 23 0.25970597428466D+00 0.16228680980969D-16 + 1 13 3 23 -0.48505645736947D+00 -0.25924532809163D-16 + 2 13 3 23 -0.46464881611197D+00 0.30802865544586D-16 + 3 13 3 23 -0.39930949999089D+00 -0.12144639589529D-15 + 1 14 3 23 0.31337407013409D+00 0.18690179469241D-16 + 2 14 3 23 -0.30287302421644D+00 -0.24130688209461D-16 + 3 14 3 23 0.13399195151202D+00 -0.24577457569049D-16 + 1 15 3 23 -0.14501181111328D+02 -0.31029374368240D-17 + 2 15 3 23 -0.14382862120111D+02 0.99929718810693D-17 + 3 15 3 23 -0.26557973056397D+02 -0.14836458713545D-15 + 1 16 3 23 0.22811652599747D-01 0.20971609025591D-18 + 2 16 3 23 0.25872687761076D-01 -0.61881402054007D-18 + 3 16 3 23 -0.84272004536127D-01 -0.10018810917093D-17 + 1 17 3 23 -0.12570281290532D-01 0.14727016537185D-17 + 2 17 3 23 -0.11097588776132D-01 -0.46875258077872D-18 + 3 17 3 23 0.15339790868766D+01 0.36253056606334D-17 + 1 18 3 23 -0.13312149805398D-01 -0.16480604745348D-17 + 2 18 3 23 0.70096081780644D-02 -0.80836174748675D-18 + 3 18 3 23 -0.10442409181147D+00 0.52035604232077D-18 + 1 19 3 23 -0.73118224368082D-01 0.48415618946926D-18 + 2 19 3 23 -0.34358997781744D-01 -0.13095559797380D-17 + 3 19 3 23 -0.31749180709190D+00 -0.18336966568627D-17 + 1 20 3 23 -0.27724378819635D-01 -0.35552200796200D-18 + 2 20 3 23 0.79348798505183D-01 0.10503602707100D-17 + 3 20 3 23 -0.12727626599595D+00 -0.67047239223908D-17 + 1 21 3 23 0.15542216925406D-01 0.14890314105842D-18 + 2 21 3 23 0.74889325537829D-02 0.48485147529020D-18 + 3 21 3 23 -0.23998152292439D+00 -0.36282255177747D-17 + 1 22 3 23 0.11599296174228D+00 0.47181316350152D-17 + 2 22 3 23 -0.39305705776451D+00 -0.19394894093723D-17 + 3 22 3 23 0.12797076026959D+00 -0.12523890382140D-16 + 1 23 3 23 0.17989040590738D+01 0.00000000000000D+00 + 2 23 3 23 0.13236166824961D+01 0.00000000000000D+00 + 3 23 3 23 0.11772786846936D+03 0.00000000000000D+00 + 1 24 3 23 0.45721072852454D+00 -0.33721680850318D-16 + 2 24 3 23 -0.39877880383948D+00 -0.26971135065468D-16 + 3 24 3 23 -0.78452529044150D+00 0.15935768526078D-17 + 1 25 3 23 0.28476319214319D-02 -0.76269967869182D-17 + 2 25 3 23 -0.66675456039025D-02 0.15258154765771D-16 + 3 25 3 23 0.25776364732936D+00 0.25549303466271D-15 + 1 26 3 23 0.31415557033797D+00 0.23207633512061D-16 + 2 26 3 23 0.32390006586087D+00 0.22783852259656D-17 + 3 26 3 23 0.15344209870447D+00 -0.20253637579987D-15 + 1 27 3 23 0.47565222349134D+00 0.23077588102700D-16 + 2 27 3 23 -0.49763141720444D+00 -0.31166855268243D-16 + 3 27 3 23 -0.36260602341347D+00 0.22844234416266D-16 + 1 28 3 23 -0.29804618665441D+00 -0.35436057208894D-16 + 2 28 3 23 -0.15134694933495D+00 0.31111396907439D-16 + 3 28 3 23 0.27170792927838D+00 0.72837671977346D-16 + 1 29 3 23 0.49802215951676D+00 0.24428169436187D-16 + 2 29 3 23 -0.49454898553087D+00 0.65443663823940D-16 + 3 29 3 23 -0.45776171415234D+00 0.21232496377360D-15 + 1 30 3 23 0.13571489657003D+02 0.96348079333071D-17 + 2 30 3 23 -0.13622835122802D+02 -0.52271093708736D-16 + 3 30 3 23 -0.25398477425812D+02 -0.26219202219409D-15 + 1 31 3 23 0.27016392427599D+00 -0.29458929847898D-16 + 2 31 3 23 -0.32161347997774D+00 0.36440713756779D-16 + 3 31 3 23 0.42103726169300D+00 -0.31205223908102D-16 + 1 32 3 23 0.42131995820272D-01 -0.26006197316223D-16 + 2 32 3 23 0.51652952950282D+00 0.33178413821259D-16 + 3 32 3 23 0.33819761922103D+00 0.77154604565937D-16 + 1 33 3 23 0.12921767328817D+01 0.71758645750786D-16 + 2 33 3 23 0.13578084798523D+01 0.88520673001152D-17 + 3 33 3 23 0.31589468614603D+01 -0.33112498535611D-16 + 1 34 3 23 -0.14352455831499D+00 -0.30617633138546D-16 + 2 34 3 23 0.97785945508693D-01 0.95454828341695D-16 + 3 34 3 23 -0.14974612365170D-01 -0.10294761150762D-17 + 1 35 3 23 -0.11880694090847D+01 0.12048260156887D-16 + 2 35 3 23 0.13006788073403D+01 -0.34787796995232D-16 + 3 35 3 23 0.30525156815770D+01 -0.32079788828896D-16 + 1 36 3 23 0.11471479398950D+00 -0.37437323221193D-17 + 2 36 3 23 -0.86755436131937D-01 -0.32622403662947D-17 + 3 36 3 23 -0.37214517099974D-02 -0.59498256642431D-17 + 1 37 3 23 0.17402778573232D+01 -0.97467295401939D-17 + 2 37 3 23 -0.13163110477181D+01 0.89573184200528D-16 + 3 37 3 23 0.28933820724064D+01 -0.32538770187177D-16 + 1 38 3 23 -0.14350644613521D+00 -0.10354983198359D-15 + 2 38 3 23 -0.16403408343850D+00 -0.58349277139220D-16 + 3 38 3 23 0.67229337897257D-01 0.40231064158493D-16 + 1 39 3 23 -0.12789009470737D+01 -0.28013290194270D-17 + 2 39 3 23 -0.13535554609168D+01 -0.48257598694851D-17 + 3 39 3 23 0.30490719621776D+01 0.81725795916207D-16 + 1 40 3 23 -0.45552372354199D+00 0.28085808649080D-17 + 2 40 3 23 0.46766185471483D+00 -0.26022976559389D-16 + 3 40 3 23 -0.78338733454980D+00 -0.15618559779675D-16 + 1 41 3 23 -0.44235881324102D-02 0.12687881823076D-16 + 2 41 3 23 0.30515804448368D-01 -0.64187801535443D-18 + 3 41 3 23 0.26805640929539D+00 -0.94894963012676D-16 + 1 42 3 23 -0.29550212064914D+00 -0.35113179031066D-16 + 2 42 3 23 -0.25867275679240D+00 0.16550393740536D-16 + 3 42 3 23 0.93208777468681D-01 -0.19222568023716D-15 + 1 43 3 23 -0.46034884881433D+00 0.23840961109739D-16 + 2 43 3 23 0.27618358262648D+00 0.12537387824751D-16 + 3 43 3 23 -0.39910233886036D+00 -0.30792795653984D-15 + 1 44 3 23 0.26505761927301D+00 -0.25480365451853D-17 + 2 44 3 23 0.27340328278776D+00 -0.90501291415863D-17 + 3 44 3 23 0.17637186941307D+00 0.35805718769322D-16 + 1 45 3 23 -0.49830994239345D+00 0.33270329262566D-17 + 2 45 3 23 0.42944402667854D+00 0.89729283304683D-17 + 3 45 3 23 -0.36088245076101D+00 -0.55922718640004D-16 + 1 46 3 23 -0.14256821798390D+02 -0.14989270285630D-16 + 2 46 3 23 0.12776995690579D+02 0.22761550997538D-16 + 3 46 3 23 -0.24532491806041D+02 -0.11753226584338D-15 + 1 47 3 23 -0.13762305616936D+00 0.36053408985328D-16 + 2 47 3 23 0.40212139172870D+00 0.12341963686708D-16 + 3 47 3 23 0.55573036713751D+00 -0.25383008039033D-15 + 1 48 3 23 -0.94115504274792D-01 -0.33053279034643D-18 + 2 48 3 23 -0.97843402870802D-01 0.31870018004489D-16 + 3 48 3 23 -0.21706843664551D+00 0.63716965825415D-16 + 1 49 3 23 0.10067823622293D+00 0.19353016877900D-17 + 2 49 3 23 -0.74387259052571D-01 -0.13010909910843D-16 + 3 49 3 23 -0.20851766763871D+00 0.21748250346964D-15 + 1 50 3 23 0.29031814937507D+01 0.42892504912993D-17 + 2 50 3 23 -0.15092623549221D+01 0.77270191992190D-16 + 3 50 3 23 -0.31495638884331D+01 0.12480757905773D-15 + 1 51 3 23 -0.30751735322857D+01 0.20176578380233D-17 + 2 51 3 23 -0.12816300215294D+01 0.27557896586611D-16 + 3 51 3 23 -0.29297901679364D+01 0.31908338066865D-15 + 1 52 3 23 0.21870410963720D-01 -0.36347810945625D-17 + 2 52 3 23 0.15415690230453D+00 -0.27920767228037D-16 + 3 52 3 23 -0.21577894633813D+00 0.21644765338731D-15 + 1 53 3 23 -0.82702315888196D-01 -0.30223770166287D-17 + 2 53 3 23 0.11218963836734D+00 -0.17534240717842D-16 + 3 53 3 23 -0.22618681439698D+00 0.18780312225270D-15 + 1 54 3 23 -0.33550916598139D+01 0.11717424386079D-17 + 2 54 3 23 0.12333277166283D+01 0.24482310055179D-16 + 3 54 3 23 -0.29958810583551D+01 0.12297908756053D-15 + 1 55 3 23 0.30971891017045D+01 0.27684111153747D-17 + 2 55 3 23 0.13483055546319D+01 0.65375575202974D-17 + 3 55 3 23 -0.29700809879205D+01 -0.16187054929034D-15 + 1 56 3 23 0.15681017887169D+00 0.43440496894442D-16 + 2 56 3 23 0.98401233411654D-01 0.34768707706339D-16 + 3 56 3 23 0.16229330172929D+00 -0.83827538134770D-18 + 1 57 3 23 0.46486050728527D+00 -0.16545250813840D-16 + 2 57 3 23 0.43513197182491D+00 0.24850674031483D-16 + 3 57 3 23 -0.84989106608483D+00 -0.98094954597821D-17 + 1 58 3 23 0.43441998613115D+00 -0.12251625980872D-16 + 2 58 3 23 0.33525327094947D+00 0.10711901283903D-15 + 3 58 3 23 -0.13525500815597D+00 -0.67012041132563D-16 + 1 59 3 23 0.24689778800012D+00 0.25215096168324D-16 + 2 59 3 23 -0.30091129439677D+00 -0.70586463774988D-17 + 3 59 3 23 0.18184668037693D+00 -0.96434625601125D-16 + 1 60 3 23 0.46840841101349D+00 -0.14133822434875D-16 + 2 60 3 23 0.29558449714712D+00 0.23846277679051D-16 + 3 60 3 23 -0.21332075910504D+00 -0.34868667308785D-15 + 1 61 3 23 -0.31821622388506D+00 0.19115282857268D-16 + 2 61 3 23 0.28016256143628D+00 -0.65038227315633D-17 + 3 61 3 23 0.21967419079834D+00 0.99085417366953D-16 + 1 62 3 23 0.33872008325704D+00 0.66571818925949D-16 + 2 62 3 23 0.25348016079986D+00 0.68328510887208D-16 + 3 62 3 23 0.44715972523503D+00 -0.44994600525995D-16 + 1 63 3 23 0.13677385535158D+02 -0.85062465646554D-17 + 2 63 3 23 0.13994635157626D+02 -0.90479667592091D-17 + 3 63 3 23 -0.25999938377807D+02 -0.40786727778642D-15 + 1 64 3 23 -0.36513389322849D+00 -0.26855582090792D-16 + 2 64 3 23 0.56505974254687D+00 0.31723811248514D-16 + 3 64 3 23 -0.39045088703818D+00 0.20150510792606D-15 + 1 65 3 23 -0.14080624751403D+00 -0.66813359023470D-16 + 2 65 3 23 -0.28518279672124D+00 -0.89423170302571D-16 + 3 65 3 23 0.18749234272781D+00 -0.11388599898126D-16 + 1 1 1 24 -0.26831784449549D+02 -0.57741370052612D-17 + 2 1 1 24 -0.15024282579784D+02 0.25102776582195D-16 + 3 1 1 24 -0.15024282579784D+02 0.85617301602257D-16 + 1 2 1 24 0.20558033360876D+00 -0.67407330908137D-16 + 2 2 1 24 0.27657730932820D+00 -0.31991121756247D-16 + 3 2 1 24 -0.26928149076513D+00 0.27301297622534D-16 + 1 3 1 24 0.20558033360883D+00 0.19419493464408D-16 + 2 3 1 24 -0.26928149076511D+00 -0.29964513117050D-17 + 3 3 1 24 0.27657730932818D+00 0.15943959896441D-18 + 1 4 1 24 -0.77575023094951D+00 -0.12496535216541D-15 + 2 4 1 24 -0.47477936449435D+00 0.34590623464288D-16 + 3 4 1 24 -0.47477936449436D+00 0.90340784864374D-17 + 1 5 1 24 -0.68667561303240D+00 -0.17606108136926D-15 + 2 5 1 24 0.37666733718618D+00 0.40724862286117D-16 + 3 5 1 24 0.37666733718619D+00 -0.28175690080721D-18 + 1 6 1 24 -0.39730649977235D+00 0.11651742129534D-15 + 2 6 1 24 -0.43605273089234D+00 -0.32627696943859D-16 + 3 6 1 24 -0.47565222349134D+00 0.20904257004875D-17 + 1 7 1 24 -0.39730649977229D+00 0.13298846062334D-15 + 2 7 1 24 -0.47565222349129D+00 0.40757793250183D-17 + 3 7 1 24 -0.43605273089237D+00 0.23003429212126D-16 + 1 8 1 24 0.26343432207317D+00 0.55308435077268D-16 + 2 8 1 24 -0.18633581868246D-01 0.68153423404528D-17 + 3 8 1 24 -0.18633581868220D-01 0.12383883708813D-16 + 1 9 1 24 0.31603882225366D+01 -0.23399633121385D-16 + 2 9 1 24 0.14802558918028D+01 0.11011025466184D-16 + 3 9 1 24 -0.13869504330320D+01 -0.79153903102099D-17 + 1 10 1 24 0.31015312269972D+01 -0.27544415206429D-16 + 2 10 1 24 -0.12337237972033D+01 0.17240509848228D-16 + 3 10 1 24 -0.12337237972033D+01 0.15716759749717D-16 + 1 11 1 24 0.32405780076108D+01 0.19087297376150D-15 + 2 11 1 24 0.13531698361670D+01 0.32999581594798D-16 + 3 11 1 24 0.13531698361670D+01 0.30758981782314D-16 + 1 12 1 24 0.31603882225366D+01 -0.27418663864435D-16 + 2 12 1 24 -0.13869504330320D+01 -0.13775094180640D-16 + 3 12 1 24 0.14802558918028D+01 0.52259882124638D-17 + 1 13 1 24 -0.21299436255671D-01 0.17551470896493D-16 + 2 13 1 24 0.11647921859219D+00 0.14031653338169D-16 + 3 13 1 24 -0.96122160593481D-01 -0.31796909074064D-16 + 1 14 1 24 0.76462640204295D-02 -0.25376960368166D-16 + 2 14 1 24 -0.10124343654080D+00 0.27409081703914D-16 + 3 14 1 24 -0.10124343654080D+00 -0.17926893699111D-16 + 1 15 1 24 -0.21299436255651D-01 0.13444452282601D-16 + 2 15 1 24 -0.96122160593483D-01 -0.33972262188912D-17 + 3 15 1 24 0.11647921859219D+00 -0.31679991020561D-16 + 1 16 1 24 0.27295797963199D+00 -0.12846223310759D-16 + 2 16 1 24 -0.36011376274168D+00 0.13682478769451D-16 + 3 16 1 24 0.38269152990933D+00 -0.13101798756721D-16 + 1 17 1 24 -0.27014966454727D+02 -0.10367089583978D-15 + 2 17 1 24 0.14702714068196D+02 0.13419881087972D-16 + 3 17 1 24 0.14702714068196D+02 0.12245472029995D-16 + 1 18 1 24 -0.92453050901542D+00 -0.71003115529893D-16 + 2 18 1 24 0.52527277599874D+00 0.12686024535507D-16 + 3 18 1 24 0.52527277599873D+00 -0.93194148823636D-16 + 1 19 1 24 0.27295797963212D+00 0.90785888528221D-16 + 2 19 1 24 0.38269152990934D+00 0.33903753204843D-16 + 3 19 1 24 -0.36011376274162D+00 -0.22344814157636D-16 + 1 20 1 24 -0.39161458132897D+00 -0.61512267467246D-16 + 2 20 1 24 0.45721072852454D+00 0.80721187313783D-17 + 3 20 1 24 0.48845849095460D+00 -0.60805681425105D-17 + 1 21 1 24 0.33407282794415D+00 0.20673182812096D-16 + 2 21 1 24 0.27609018658730D+00 0.47240672654709D-17 + 3 21 1 24 0.27609018658725D+00 -0.21720271912284D-17 + 1 22 1 24 0.66616917000315D-01 -0.29553187216818D-15 + 2 22 1 24 0.63234747208155D-01 -0.55952422219042D-16 + 3 22 1 24 0.63234747208144D-01 -0.44736743831300D-16 + 1 23 1 24 -0.39161458132891D+00 0.47492515094835D-16 + 2 23 1 24 0.48845849095463D+00 0.28214206201998D-16 + 3 23 1 24 0.45721072852454D+00 0.33721680850318D-16 + 1 24 1 24 0.12189117977284D+03 0.00000000000000D+00 + 2 24 1 24 0.47844129387417D+00 0.00000000000000D+00 + 3 24 1 24 0.47844129387443D+00 0.00000000000000D+00 + 1 25 1 24 -0.23713116216799D+00 0.29632523601438D-17 + 2 25 1 24 0.32804988329550D-02 0.14233965271189D-17 + 3 25 1 24 0.50080235005404D-02 0.15904917554412D-17 + 1 26 1 24 -0.23713116216796D+00 -0.10559225934712D-17 + 2 26 1 24 0.50080235005403D-02 0.71085109055030D-18 + 3 26 1 24 0.32804988329551D-02 -0.67335156771393D-19 + 1 27 1 24 0.16001184391320D+01 -0.79116611581889D-17 + 2 27 1 24 -0.59452989815941D-01 0.23364903674666D-18 + 3 27 1 24 -0.59452989815941D-01 -0.53769277220747D-18 + 1 28 1 24 -0.33051870416498D+00 -0.13879139347634D-16 + 2 28 1 24 -0.33123829684837D-01 0.15826797504966D-17 + 3 28 1 24 -0.33123829684837D-01 0.19968914444975D-18 + 1 29 1 24 -0.11363055334639D+00 -0.63845898890303D-18 + 2 29 1 24 0.43730085584252D-01 0.15003500858855D-17 + 3 29 1 24 -0.39146425986255D-01 -0.36602097429697D-18 + 1 30 1 24 -0.11363055334646D+00 0.61058865128967D-17 + 2 30 1 24 -0.39146425986252D-01 0.42039877501869D-18 + 3 30 1 24 0.43730085584253D-01 -0.37545633411521D-18 + 1 31 1 24 -0.81366906740252D-01 0.20173257347590D-17 + 2 31 1 24 0.11505165038771D-01 -0.57983878544504D-18 + 3 31 1 24 0.11505165038771D-01 -0.28664976273684D-18 + 1 32 1 24 -0.65231166976829D+00 0.45535878259471D-16 + 2 32 1 24 0.18627745527626D+00 0.30545070773052D-16 + 3 32 1 24 -0.45000684445280D+00 0.32186374828524D-16 + 1 33 1 24 0.48538142032140D+00 0.39502151584700D-16 + 2 33 1 24 0.33966503486386D+00 0.18770808120739D-16 + 3 33 1 24 -0.31415557033801D+00 -0.25470640300767D-16 + 1 34 1 24 0.28559695976660D+00 -0.40042050549608D-16 + 2 34 1 24 0.28476319214308D-02 0.17362731260326D-17 + 3 34 1 24 -0.22841937824872D-01 -0.14243240394159D-16 + 1 35 1 24 -0.42580530827139D+00 -0.36799850591066D-15 + 2 35 1 24 0.49364879915014D+00 -0.31375357225915D-16 + 3 35 1 24 -0.45051381424611D+00 0.50410183028392D-17 + 1 36 1 24 0.21624829368057D+00 0.13711893395510D-15 + 2 36 1 24 -0.31009401544720D+00 0.47507384872319D-17 + 3 36 1 24 -0.34091133366504D+00 0.43766875996217D-16 + 1 37 1 24 -0.25470941862986D+02 -0.58646681849256D-16 + 2 37 1 24 0.13752406199399D+02 0.37000592626845D-16 + 3 37 1 24 -0.14083423636586D+02 0.43232857695855D-16 + 1 38 1 24 -0.84916661268428D+00 0.13351947274721D-15 + 2 38 1 24 0.41780254090831D+00 -0.79668472548438D-17 + 3 38 1 24 -0.47848284343538D+00 0.18872530675426D-16 + 1 39 1 24 0.16889592751831D+00 -0.10096094186260D-15 + 2 39 1 24 0.21574548602397D+00 0.43210847298337D-17 + 3 39 1 24 0.29580210237062D+00 -0.12111070486429D-16 + 1 40 1 24 -0.30469835809634D+01 -0.23611151856782D-15 + 2 40 1 24 0.31491568175680D+01 0.11643243428806D-18 + 3 40 1 24 0.12503487019539D+01 0.10098601252909D-15 + 1 41 1 24 -0.25031735777227D+00 -0.18580235768051D-15 + 2 41 1 24 -0.85695375456052D-01 0.97123970619944D-18 + 3 41 1 24 0.98105471988990D-01 0.28298136406570D-16 + 1 42 1 24 -0.29148046783835D+01 -0.15872453666045D-15 + 2 42 1 24 -0.30637658912080D+01 -0.97828324817449D-18 + 3 42 1 24 -0.14205596556584D+01 0.49118588151808D-16 + 1 43 1 24 -0.27692148443529D+00 -0.19499672992659D-15 + 2 43 1 24 0.10585392237338D+00 0.33819970572740D-17 + 3 43 1 24 -0.11757710023595D+00 0.70188734773299D-17 + 1 44 1 24 -0.30434692768448D+01 0.23315838438088D-15 + 2 44 1 24 -0.33078081980729D+01 0.14656190306174D-17 + 3 44 1 24 0.13270267936535D+01 -0.51257378512008D-16 + 1 45 1 24 -0.22263137836702D+00 -0.22194912043103D-15 + 2 45 1 24 0.90063254104480D-01 -0.37793100899154D-18 + 3 45 1 24 0.12077597060909D+00 0.81631939863262D-16 + 1 46 1 24 -0.32206381252867D+01 -0.16800263236049D-15 + 2 46 1 24 0.30400799938289D+01 0.21099397104628D-17 + 3 46 1 24 -0.11397146903825D+01 0.52533248648223D-16 + 1 47 1 24 -0.22877488748024D+00 0.21027036057724D-15 + 2 47 1 24 -0.96293916460598D-01 0.41898895747687D-18 + 3 47 1 24 -0.10790549971587D+00 0.88405924111125D-16 + 1 48 1 24 0.48538142032131D+00 0.35063137849813D-16 + 2 48 1 24 -0.31415557033787D+00 -0.32013499258452D-16 + 3 48 1 24 0.33966503486388D+00 -0.20713831173489D-16 + 1 49 1 24 -0.42580530827145D+00 0.36375864003506D-15 + 2 49 1 24 -0.45051381424607D+00 -0.12410819627741D-16 + 3 49 1 24 0.49364879915014D+00 0.15131422945616D-16 + 1 50 1 24 -0.65231166976827D+00 -0.69269814298648D-16 + 2 50 1 24 -0.45000684445274D+00 0.22255794633165D-16 + 3 50 1 24 0.18627745527628D+00 -0.79156996423685D-17 + 1 51 1 24 0.28559695976668D+00 0.16736279148959D-15 + 2 51 1 24 -0.22841937824874D-01 0.87540970786535D-17 + 3 51 1 24 0.28476319214292D-02 -0.43561351039599D-16 + 1 52 1 24 -0.25470941862985D+02 0.50172629188751D-16 + 2 52 1 24 -0.14083423636587D+02 -0.30869023272885D-16 + 3 52 1 24 0.13752406199400D+02 0.20035109272319D-16 + 1 53 1 24 0.16889592751831D+00 -0.25673635022176D-15 + 2 53 1 24 0.29580210237062D+00 0.84776816251101D-17 + 3 53 1 24 0.21574548602409D+00 -0.13785718357011D-16 + 1 54 1 24 0.21624829368054D+00 -0.70375641363221D-16 + 2 54 1 24 -0.34091133366502D+00 -0.68253715872164D-17 + 3 54 1 24 -0.31009401544719D+00 0.15209534449036D-17 + 1 55 1 24 -0.84916661268427D+00 0.71390787615372D-16 + 2 55 1 24 -0.47848284343538D+00 -0.15773990459371D-17 + 3 55 1 24 0.41780254090830D+00 0.10087735430652D-16 + 1 56 1 24 -0.29148046783835D+01 0.20199896152123D-15 + 2 56 1 24 -0.14205596556584D+01 0.46712431000427D-16 + 3 56 1 24 -0.30637658912080D+01 -0.28236490487263D-18 + 1 57 1 24 -0.30469835809634D+01 0.18110326537818D-15 + 2 57 1 24 0.12503487019539D+01 -0.54536727241231D-17 + 3 57 1 24 0.31491568175680D+01 -0.12437094781652D-17 + 1 58 1 24 -0.27692148443529D+00 -0.74266220594524D-16 + 2 58 1 24 -0.11757710023595D+00 -0.12747171838570D-16 + 3 58 1 24 0.10585392237338D+00 0.23040989833341D-17 + 1 59 1 24 -0.25031735777227D+00 -0.10867020193327D-15 + 2 59 1 24 0.98105471988989D-01 -0.33671933626312D-16 + 3 59 1 24 -0.85695375456051D-01 0.23270203133876D-17 + 1 60 1 24 -0.32206381252867D+01 0.17027402228656D-15 + 2 60 1 24 -0.11397146903825D+01 -0.25959267728916D-16 + 3 60 1 24 0.30400799938289D+01 0.74534625759063D-17 + 1 61 1 24 -0.30434692768448D+01 0.14350150559959D-15 + 2 61 1 24 0.13270267936535D+01 0.30783045375708D-16 + 3 61 1 24 -0.33078081980729D+01 -0.24088038570816D-17 + 1 62 1 24 -0.22877488748024D+00 -0.21857839896070D-15 + 2 62 1 24 -0.10790549971587D+00 0.60936877305181D-16 + 3 62 1 24 -0.96293916460599D-01 0.14131836596030D-17 + 1 63 1 24 -0.22263137836702D+00 0.17475155558047D-15 + 2 63 1 24 0.12077597060909D+00 0.12169900897210D-16 + 3 63 1 24 0.90063254104479D-01 0.54946445383755D-18 + 1 64 1 24 0.10347994185208D+00 -0.34796303042629D-15 + 2 64 1 24 -0.16062445681233D+00 -0.22255208424466D-16 + 3 64 1 24 -0.16062445681233D+00 0.38121277642338D-17 + 1 65 1 24 -0.29582678910612D+00 0.26385881454320D-15 + 2 65 1 24 0.22599590859615D-01 0.25149160207073D-16 + 3 65 1 24 0.20632698170947D-01 -0.46516541407214D-18 + 1 1 2 24 -0.15395242367030D+02 0.25102776582195D-16 + 2 1 2 24 -0.27141502431793D+02 -0.12306042257201D-15 + 3 1 2 24 -0.15567569530740D+02 0.77296306779582D-16 + 1 2 2 24 0.34287793151198D+00 -0.31991121756247D-16 + 2 2 2 24 0.16887509052892D+00 0.15209028507831D-15 + 3 2 2 24 -0.23445931572647D+00 -0.22426861471803D-16 + 1 3 2 24 -0.25207267195375D+00 -0.29964513117050D-17 + 2 3 2 24 0.34107393969036D+00 -0.13269261829621D-15 + 3 3 2 24 -0.13763729246429D+00 0.13350715055129D-16 + 1 4 2 24 -0.50967449466852D+00 0.34590623464288D-16 + 2 4 2 24 -0.48229205645406D+00 0.13498206097811D-15 + 3 4 2 24 -0.57503662633799D+00 -0.29474577480927D-16 + 1 5 2 24 0.18211420457952D+00 0.40724862286117D-16 + 2 5 2 24 -0.79049413507100D-01 -0.11251252118529D-15 + 3 5 2 24 0.18446449841465D+00 0.23911832636994D-18 + 1 6 2 24 -0.50064688040607D+00 -0.32627696943859D-16 + 2 6 2 24 -0.73479300855675D+00 -0.92398533848499D-16 + 3 6 2 24 -0.49763141720444D+00 0.75192008675613D-17 + 1 7 2 24 -0.46150686927486D+00 0.40757793250183D-17 + 2 7 2 24 -0.36260602341347D+00 -0.22636366956025D-15 + 3 7 2 24 -0.41193502972180D+00 -0.55564318787061D-17 + 1 8 2 24 -0.26920621507094D-01 0.68153423404528D-17 + 2 8 2 24 0.27252466740490D+00 -0.41923517329350D-16 + 3 8 2 24 -0.16403028717807D-01 0.45935551279084D-16 + 1 9 2 24 -0.12736658618096D+01 0.11011025466184D-16 + 2 9 2 24 -0.30276658115095D+01 -0.30215739514955D-15 + 3 9 2 24 0.31659104506731D+01 -0.53273806537956D-17 + 1 10 2 24 0.13669521855039D+01 0.17240509848228D-16 + 2 10 2 24 -0.31005673840385D+01 0.31901736541284D-15 + 3 10 2 24 -0.32520035759161D+01 0.95739615070000D-18 + 1 11 2 24 -0.13578167313624D+01 0.32999581594798D-16 + 2 11 2 24 -0.30651066230475D+01 -0.10557017853554D-15 + 3 11 2 24 -0.30780436947604D+01 -0.29946850281685D-17 + 1 12 2 24 0.12141960128470D+01 -0.13775094180640D-16 + 2 12 2 24 -0.31247164711463D+01 -0.33395222354826D-16 + 3 12 2 24 0.30445700307219D+01 0.99710346198219D-19 + 1 13 2 24 -0.96467426406943D-01 0.14031653338169D-16 + 2 13 2 24 -0.20497380330675D+00 0.18290421568207D-15 + 3 13 2 24 -0.88506819764607D-01 0.14476877977995D-18 + 1 14 2 24 0.91846499200614D-01 0.27409081703914D-16 + 2 14 2 24 -0.23337155674606D+00 -0.28031479312182D-15 + 3 14 2 24 0.11807996634124D+00 0.59762211594981D-18 + 1 15 2 24 0.96086421419237D-01 -0.33972262188912D-17 + 2 15 2 24 -0.24152013706304D+00 0.29982760185938D-15 + 3 15 2 24 -0.84283472302179D-01 0.36466864472386D-18 + 1 16 2 24 -0.39028506538331D+00 0.13682478769451D-16 + 2 16 2 24 0.14604195947364D+00 -0.63340581849843D-16 + 3 16 2 24 -0.32807006299278D+00 0.35539252053731D-16 + 1 17 2 24 0.14732387636065D+02 0.13419881087972D-16 + 2 17 2 24 -0.26136043103733D+02 0.70182840360616D-16 + 3 17 2 24 -0.14332308246567D+02 0.36648630681870D-17 + 1 18 2 24 0.48877102561255D+00 0.12686024535507D-16 + 2 18 2 24 -0.27661666299410D+00 0.14917229194272D-15 + 3 18 2 24 -0.40003112545841D+00 -0.10296923610600D-17 + 1 19 2 24 0.40294145954662D+00 0.33903753204843D-16 + 2 19 2 24 0.66408895613077D+00 -0.28900155781395D-16 + 3 19 2 24 -0.29133872444978D+00 -0.19304218285508D-16 + 1 20 2 24 0.39173006312075D+00 0.80721187313783D-17 + 2 20 2 24 -0.78452529044151D+00 -0.14506776956477D-15 + 3 20 2 24 -0.46804370187614D+00 0.20457612496548D-16 + 1 21 2 24 0.22874393479573D+00 0.47240672654709D-17 + 2 21 2 24 0.18438341282726D+00 -0.10912827996219D-15 + 3 21 2 24 0.31268606285268D+00 -0.15707926855491D-16 + 1 22 2 24 0.39364144236511D-01 -0.55952422219042D-16 + 2 22 2 24 0.29670575418888D+00 -0.71475641061790D-16 + 3 22 2 24 -0.15228710567634D+00 -0.13291548945815D-16 + 1 23 2 24 0.47745269960844D+00 0.28214206201998D-16 + 2 23 2 24 -0.39849614674370D+00 0.11059325895968D-15 + 3 23 2 24 -0.39877880383948D+00 0.26971135065468D-16 + 1 24 2 24 0.47844129387417D+00 0.00000000000000D+00 + 2 24 2 24 0.12182595323214D+03 0.00000000000000D+00 + 3 24 2 24 0.75126116582923D+00 0.00000000000000D+00 + 1 25 2 24 -0.32804988329550D-02 0.14233965271189D-17 + 2 25 2 24 -0.22641301187904D+00 0.27977763509490D-18 + 3 25 2 24 0.55128313585672D-02 0.14954307644458D-17 + 1 26 2 24 0.50080235005403D-02 0.71085109055030D-18 + 2 26 2 24 -0.43633020339835D+00 0.56477126506455D-17 + 3 26 2 24 -0.52563644713498D-02 -0.75645092599056D-18 + 1 27 2 24 0.59452989815941D-01 0.23364903674666D-18 + 2 27 2 24 -0.14677112045594D+00 -0.12454139222572D-16 + 3 27 2 24 0.80047590684559D-01 0.15429048137177D-18 + 1 28 2 24 0.39177330521729D-01 0.15826797504966D-17 + 2 28 2 24 -0.20614097171013D+00 0.63463197974905D-17 + 3 28 2 24 -0.18011905544853D-01 0.11526764152464D-17 + 1 29 2 24 -0.97176491307949D-01 0.15003500858855D-17 + 2 29 2 24 0.14807017428239D+01 0.28678117115700D-18 + 3 29 2 24 0.47888314173912D-01 0.32968864610933D-19 + 1 30 2 24 -0.61648165921744D-01 0.42039877501869D-18 + 2 30 2 24 -0.13489545726294D+00 -0.25609678614265D-17 + 3 30 2 24 -0.78781441904662D-01 -0.85340506978603D-18 + 1 31 2 24 0.28304415116112D-02 -0.57983878544504D-18 + 2 31 2 24 -0.10202224431551D+00 -0.47795381634958D-18 + 3 31 2 24 0.13248484477354D-01 -0.77526150071255D-19 + 1 32 2 24 0.69849934038531D+00 0.30545070773052D-16 + 2 32 2 24 -0.73467466067885D+00 0.31856767103554D-16 + 3 32 2 24 0.33361931413377D+00 0.13091075897772D-16 + 1 33 2 24 0.26829885043050D+00 0.18770808120739D-16 + 2 33 2 24 0.22540838907912D+00 -0.27487399881146D-16 + 3 33 2 24 -0.32390006586088D+00 -0.32106338155999D-16 + 1 34 2 24 0.37134587379389D-01 0.17362731260326D-17 + 2 34 2 24 0.25776364732936D+00 -0.16829585297686D-15 + 3 34 2 24 0.37917362697485D-01 -0.70443720625014D-17 + 1 35 2 24 0.51494688043211D+00 -0.31375357225915D-16 + 2 35 2 24 -0.43998710153765D+00 0.18211537855746D-16 + 3 35 2 24 0.48482976678670D+00 -0.22734471297259D-16 + 1 36 2 24 -0.28191177394063D+00 0.47507384872319D-17 + 2 36 2 24 0.12151128452325D+00 -0.86328329312926D-16 + 3 36 2 24 0.29319084621844D+00 -0.17101510405593D-16 + 1 37 2 24 0.13516280332069D+02 0.37000592626845D-16 + 2 37 2 24 -0.25987538274335D+02 0.11636878251485D-15 + 3 37 2 24 0.14783799473417D+02 -0.96479868741061D-18 + 1 38 2 24 0.37718079151061D+00 -0.79668472548438D-17 + 2 38 2 24 -0.51011838563335D+00 0.52295387207018D-16 + 3 38 2 24 0.48351314694592D+00 -0.32360606882528D-16 + 1 39 2 24 0.25374530201724D+00 0.43210847298337D-17 + 2 39 2 24 0.37222044862080D+00 0.23360368505440D-15 + 3 39 2 24 0.29697315648479D+00 0.22778370280260D-16 + 1 40 2 24 0.31599033686936D+01 0.11643243428806D-18 + 2 40 2 24 -0.30437881571425D+01 -0.69865760944350D-17 + 3 40 2 24 -0.12746428311669D+01 0.54481492003242D-16 + 1 41 2 24 -0.88994994054173D-01 0.97123970619944D-18 + 2 41 2 24 -0.24768484707755D+00 0.26317836489360D-15 + 3 41 2 24 -0.99268420215567D-01 -0.72431025797954D-16 + 1 42 2 24 -0.31270947786230D+01 -0.97828324817449D-18 + 2 42 2 24 -0.31543092489251D+01 0.12377334792486D-15 + 3 42 2 24 -0.12396011896155D+01 0.17243986906284D-16 + 1 43 2 24 0.14976597231751D+00 0.33819970572740D-17 + 2 43 2 24 -0.21107489075072D+00 -0.19595860752230D-15 + 3 43 2 24 -0.10726450908200D+00 0.80405036551460D-17 + 1 44 2 24 -0.31716179054068D+01 0.14656190306174D-17 + 2 44 2 24 -0.31777519768981D+01 -0.42198475603395D-17 + 3 44 2 24 0.12419318315307D+01 -0.48318381131389D-16 + 1 45 2 24 0.10249546607287D+00 -0.37793100899154D-18 + 2 45 2 24 -0.23295520329197D+00 -0.21341656435785D-15 + 3 45 2 24 0.12548940319258D+00 -0.20945542923432D-16 + 1 46 2 24 0.32345058521663D+01 0.21099397104628D-17 + 2 46 2 24 -0.29219202594767D+01 0.13828927261466D-15 + 3 46 2 24 0.10540879121051D+01 -0.98768264110613D-17 + 1 47 2 24 -0.15007314540031D+00 0.41898895747687D-18 + 2 47 2 24 -0.23563032171867D+00 0.61993043454735D-16 + 3 47 2 24 0.44033202187165D-01 0.67762941189077D-16 + 1 48 2 24 -0.33034754534780D+00 -0.32013499258452D-16 + 2 48 2 24 0.15344209870445D+00 0.56464723255763D-16 + 3 48 2 24 -0.28979766667512D+00 -0.22688846875195D-16 + 1 49 2 24 -0.48044606924574D+00 -0.12410819627741D-16 + 2 49 2 24 -0.79183951901711D+00 -0.33114049806496D-16 + 3 49 2 24 0.50232794404431D+00 -0.38883254657971D-16 + 1 50 2 24 -0.65185720354859D+00 0.22255794633165D-16 + 2 50 2 24 -0.42401759444367D+00 0.11533800684809D-15 + 3 50 2 24 0.50995383855732D+00 -0.10222008923361D-16 + 1 51 2 24 0.31288499790072D-02 0.87540970786535D-17 + 2 51 2 24 0.28901435639828D+00 0.76783738184612D-16 + 3 51 2 24 0.66675456039009D-02 0.24136931937022D-18 + 1 52 2 24 -0.13940477087648D+02 -0.30869023272885D-16 + 2 52 2 24 -0.26651846455054D+02 0.63458931694673D-16 + 3 52 2 24 0.14890393670092D+02 0.24432180994730D-16 + 1 53 2 24 0.32422969088818D+00 0.84776816251101D-17 + 2 53 2 24 0.21055711069935D+00 0.15562935507030D-15 + 3 53 2 24 0.26120958661627D+00 -0.22540499597521D-16 + 1 54 2 24 -0.35721281861581D+00 -0.68253715872164D-17 + 2 54 2 24 0.56741504705852D+00 -0.11422672318145D-15 + 3 54 2 24 0.31355453777294D+00 -0.16631535912778D-16 + 1 55 2 24 -0.47131622603680D+00 -0.15773990459371D-17 + 2 55 2 24 -0.42400915340020D+00 -0.69507014183729D-16 + 3 55 2 24 0.48020796007542D+00 -0.21204137099125D-16 + 1 56 2 24 0.11584240695734D+01 0.46712431000427D-16 + 2 56 2 24 0.30306915079876D+01 -0.19307130150907D-15 + 3 56 2 24 0.11316458786832D+01 0.60999568335783D-17 + 1 57 2 24 -0.13679500992356D+01 -0.54536727241231D-17 + 2 57 2 24 0.30996653802460D+01 0.19036279670115D-16 + 3 57 2 24 0.13599716217812D+01 0.19531504191293D-16 + 1 58 2 24 0.19607991922541D-01 -0.12747171838570D-16 + 2 58 2 24 0.37900726108938D-02 -0.10417546552286D-15 + 3 58 2 24 0.45686340930222D-01 0.36103913227737D-16 + 1 59 2 24 -0.11878037928652D+00 -0.33671933626312D-16 + 2 59 2 24 -0.40209081495176D-01 0.16996857857263D-15 + 3 59 2 24 0.98733218058407D-01 -0.65376215507329D-18 + 1 60 2 24 0.16017402743485D+01 -0.25959267728916D-16 + 2 60 2 24 0.30580094079255D+01 -0.65005141595976D-16 + 3 60 2 24 -0.14454054486640D+01 0.33829895933737D-16 + 1 61 2 24 -0.12394348388543D+01 0.30783045375708D-16 + 2 61 2 24 0.30332084301199D+01 0.94069412340925D-16 + 3 61 2 24 -0.12600447229703D+01 -0.37128674931611D-16 + 1 62 2 24 0.15578959509998D+00 0.60936877305181D-16 + 2 62 2 24 -0.18463012523087D-01 -0.79993699614565D-16 + 3 62 2 24 -0.10511726601206D+00 0.16459359616785D-16 + 1 63 2 24 -0.85795956644175D-01 0.12169900897210D-16 + 2 63 2 24 -0.18398839271206D-01 0.11890240054988D-15 + 3 63 2 24 -0.92029099056185D-01 0.19047190257809D-16 + 1 64 2 24 0.63373877723477D-02 -0.22255208424466D-16 + 2 64 2 24 -0.14662854392059D+00 0.17927970897802D-15 + 3 64 2 24 0.15063058829759D+00 0.15361801296244D-17 + 1 65 2 24 0.40494821230962D-01 0.25149160207073D-16 + 2 65 2 24 -0.14272890849055D-01 0.16236110183990D-15 + 3 65 2 24 -0.17330650968787D-01 0.29042380908261D-18 + 1 1 3 24 -0.15395242367030D+02 0.85617301602257D-16 + 2 1 3 24 -0.15567569530740D+02 0.77296306779582D-16 + 3 1 3 24 -0.27141502431793D+02 0.14090002718833D-16 + 1 2 3 24 -0.25207267195375D+00 0.27301297622534D-16 + 2 2 3 24 -0.13763729246429D+00 -0.22426861471803D-16 + 3 2 3 24 0.34107393969035D+00 0.48063796336721D-16 + 1 3 3 24 0.34287793151198D+00 0.15943959896441D-18 + 2 3 3 24 -0.23445931572647D+00 0.13350715055129D-16 + 3 3 3 24 0.16887509052891D+00 -0.89654365359469D-16 + 1 4 3 24 -0.50967449466852D+00 0.90340784864374D-17 + 2 4 3 24 -0.57503662633799D+00 -0.29474577480927D-16 + 3 4 3 24 -0.48229205645405D+00 0.59255960091857D-17 + 1 5 3 24 0.18211420457952D+00 -0.28175690080721D-18 + 2 5 3 24 0.18446449841465D+00 0.23911832636994D-18 + 3 5 3 24 -0.79049413507098D-01 0.95798449968127D-16 + 1 6 3 24 -0.46150686927486D+00 0.20904257004875D-17 + 2 6 3 24 -0.41193502972180D+00 0.75192008675613D-17 + 3 6 3 24 -0.36260602341347D+00 -0.71772897214818D-16 + 1 7 3 24 -0.50064688040607D+00 0.23003429212126D-16 + 2 7 3 24 -0.49763141720444D+00 -0.55564318787061D-17 + 3 7 3 24 -0.73479300855674D+00 -0.15276117094171D-15 + 1 8 3 24 -0.26920621507096D-01 0.12383883708813D-16 + 2 8 3 24 -0.16403028717807D-01 0.45935551279084D-16 + 3 8 3 24 0.27252466740490D+00 -0.14284242400975D-16 + 1 9 3 24 0.12141960128470D+01 -0.79153903102099D-17 + 2 9 3 24 0.30445700307219D+01 -0.53273806537956D-17 + 3 9 3 24 -0.31247164711463D+01 0.21804089487914D-15 + 1 10 3 24 0.13669521855039D+01 0.15716759749717D-16 + 2 10 3 24 -0.32520035759161D+01 0.95739615070000D-18 + 3 10 3 24 -0.31005673840385D+01 -0.24458195103477D-15 + 1 11 3 24 -0.13578167313624D+01 0.30758981782314D-16 + 2 11 3 24 -0.30780436947604D+01 -0.29946850281685D-17 + 3 11 3 24 -0.30651066230475D+01 0.21680381930842D-15 + 1 12 3 24 -0.12736658618096D+01 0.52259882124638D-17 + 2 12 3 24 0.31659104506731D+01 0.99710346198219D-19 + 3 12 3 24 -0.30276658115095D+01 0.28111542849635D-16 + 1 13 3 24 0.96086421419243D-01 -0.31796909074064D-16 + 2 13 3 24 -0.84283472302181D-01 0.14476877977995D-18 + 3 13 3 24 -0.24152013706304D+00 -0.21524765246292D-16 + 1 14 3 24 0.91846499200612D-01 -0.17926893699111D-16 + 2 14 3 24 0.11807996634124D+00 0.59762211594981D-18 + 3 14 3 24 -0.23337155674606D+00 -0.29835267589578D-15 + 1 15 3 24 -0.96467426406940D-01 -0.31679991020561D-16 + 2 15 3 24 -0.88506819764605D-01 0.36466864472386D-18 + 3 15 3 24 -0.20497380330675D+00 -0.16201053084573D-15 + 1 16 3 24 0.40294145954662D+00 -0.13101798756721D-16 + 2 16 3 24 -0.29133872444977D+00 0.35539252053731D-16 + 3 16 3 24 0.66408895613076D+00 -0.10545488984993D-15 + 1 17 3 24 0.14732387636065D+02 0.12245472029995D-16 + 2 17 3 24 -0.14332308246567D+02 0.36648630681870D-17 + 3 17 3 24 -0.26136043103733D+02 -0.22666595310225D-15 + 1 18 3 24 0.48877102561255D+00 -0.93194148823636D-16 + 2 18 3 24 -0.40003112545841D+00 -0.10296923610600D-17 + 3 18 3 24 -0.27661666299411D+00 0.63377903180480D-16 + 1 19 3 24 -0.39028506538331D+00 -0.22344814157636D-16 + 2 19 3 24 -0.32807006299279D+00 -0.19304218285508D-16 + 3 19 3 24 0.14604195947365D+00 -0.25715611946443D-17 + 1 20 3 24 0.47745269960845D+00 -0.60805681425105D-17 + 2 20 3 24 -0.39877880383947D+00 0.20457612496548D-16 + 3 20 3 24 -0.39849614674370D+00 -0.23698614627662D-15 + 1 21 3 24 0.22874393479573D+00 -0.21720271912284D-17 + 2 21 3 24 0.31268606285268D+00 -0.15707926855491D-16 + 3 21 3 24 0.18438341282725D+00 -0.64011295894571D-16 + 1 22 3 24 0.39364144236510D-01 -0.44736743831300D-16 + 2 22 3 24 -0.15228710567634D+00 -0.13291548945815D-16 + 3 22 3 24 0.29670575418887D+00 -0.16205782392844D-15 + 1 23 3 24 0.39173006312076D+00 0.33721680850318D-16 + 2 23 3 24 -0.46804370187614D+00 0.26971135065468D-16 + 3 23 3 24 -0.78452529044150D+00 -0.15935768526078D-17 + 1 24 3 24 0.47844129387443D+00 0.00000000000000D+00 + 2 24 3 24 0.75126116582923D+00 0.00000000000000D+00 + 3 24 3 24 0.12182595323214D+03 0.00000000000000D+00 + 1 25 3 24 0.50080235005404D-02 0.15904917554412D-17 + 2 25 3 24 -0.55128313585670D-02 0.14954307644458D-17 + 3 25 3 24 -0.43633020339834D+00 0.11692020646064D-17 + 1 26 3 24 -0.32804988329549D-02 -0.67335156771393D-19 + 2 26 3 24 0.52563644713498D-02 -0.75645092599056D-18 + 3 26 3 24 -0.22641301187904D+00 -0.10424750556051D-17 + 1 27 3 24 0.59452989815941D-01 -0.53769277220747D-18 + 2 27 3 24 0.80047590684559D-01 0.15429048137177D-18 + 3 27 3 24 -0.14677112045595D+00 -0.26228639844606D-18 + 1 28 3 24 0.39177330521712D-01 0.19968914444975D-18 + 2 28 3 24 -0.18011905544853D-01 0.11526764152464D-17 + 3 28 3 24 -0.20614097171014D+00 0.81574393366718D-17 + 1 29 3 24 -0.61648165921750D-01 -0.36602097429697D-18 + 2 29 3 24 -0.78781441904662D-01 0.32968864610933D-19 + 3 29 3 24 -0.13489545726293D+00 -0.44180793126628D-18 + 1 30 3 24 -0.97176491307935D-01 -0.37545633411521D-18 + 2 30 3 24 0.47888314173912D-01 -0.85340506978603D-18 + 3 30 3 24 0.14807017428239D+01 -0.53763916352047D-17 + 1 31 3 24 0.28304415116052D-02 -0.28664976273684D-18 + 2 31 3 24 0.13248484477354D-01 -0.77526150071255D-19 + 3 31 3 24 -0.10202224431551D+00 0.25429727549246D-17 + 1 32 3 24 -0.65185720354860D+00 0.32186374828524D-16 + 2 32 3 24 0.50995383855731D+00 0.13091075897772D-16 + 3 32 3 24 -0.42401759444368D+00 -0.76750290997512D-16 + 1 33 3 24 -0.33034754534781D+00 -0.25470640300767D-16 + 2 33 3 24 -0.28979766667512D+00 -0.32106338155999D-16 + 3 33 3 24 0.15344209870445D+00 -0.95528269891153D-16 + 1 34 3 24 0.31288499790063D-02 -0.14243240394159D-16 + 2 34 3 24 0.66675456039033D-02 -0.70443720625014D-17 + 3 34 3 24 0.28901435639828D+00 0.62176742371072D-16 + 1 35 3 24 -0.48044606924574D+00 0.50410183028392D-17 + 2 35 3 24 0.50232794404432D+00 -0.22734471297259D-16 + 3 35 3 24 -0.79183951901711D+00 -0.20165838998752D-16 + 1 36 3 24 -0.35721281861581D+00 0.43766875996217D-16 + 2 36 3 24 0.31355453777295D+00 -0.17101510405593D-16 + 3 36 3 24 0.56741504705852D+00 -0.22340969029247D-15 + 1 37 3 24 -0.13940477087648D+02 0.43232857695855D-16 + 2 37 3 24 0.14890393670092D+02 -0.96479868741061D-18 + 3 37 3 24 -0.26651846455054D+02 -0.35936702654880D-15 + 1 38 3 24 -0.47131622603680D+00 0.18872530675426D-16 + 2 38 3 24 0.48020796007542D+00 -0.32360606882528D-16 + 3 38 3 24 -0.42400915340020D+00 -0.79129978997531D-16 + 1 39 3 24 0.32422969088818D+00 -0.12111070486429D-16 + 2 39 3 24 0.26120958661627D+00 0.22778370280260D-16 + 3 39 3 24 0.21055711069935D+00 0.27082896573885D-15 + 1 40 3 24 -0.13679500992356D+01 0.10098601252909D-15 + 2 40 3 24 0.13599716217812D+01 0.54481492003242D-16 + 3 40 3 24 0.30996653802460D+01 -0.19495724110677D-16 + 1 41 3 24 -0.11878037928652D+00 0.28298136406570D-16 + 2 41 3 24 0.98733218058408D-01 -0.72431025797954D-16 + 3 41 3 24 -0.40209081495162D-01 0.28812547072966D-16 + 1 42 3 24 0.11584240695734D+01 0.49118588151808D-16 + 2 42 3 24 0.11316458786832D+01 0.17243986906284D-16 + 3 42 3 24 0.30306915079876D+01 0.33085893853065D-16 + 1 43 3 24 0.19607991922537D-01 0.70188734773299D-17 + 2 43 3 24 0.45686340930218D-01 0.80405036551460D-17 + 3 43 3 24 0.37900726108903D-02 0.79712634894655D-16 + 1 44 3 24 -0.12394348388543D+01 -0.51257378512008D-16 + 2 44 3 24 -0.12600447229703D+01 -0.48318381131389D-16 + 3 44 3 24 0.30332084301199D+01 0.10758866438709D-16 + 1 45 3 24 -0.85795956644177D-01 0.81631939863262D-16 + 2 45 3 24 -0.92029099056186D-01 -0.20945542923432D-16 + 3 45 3 24 -0.18398839271199D-01 0.96406474143182D-16 + 1 46 3 24 0.16017402743485D+01 0.52533248648223D-16 + 2 46 3 24 -0.14454054486640D+01 -0.98768264110613D-17 + 3 46 3 24 0.30580094079255D+01 -0.73574411614682D-17 + 1 47 3 24 0.15578959509998D+00 0.88405924111125D-16 + 2 47 3 24 -0.10511726601206D+00 0.67762941189077D-16 + 3 47 3 24 -0.18463012523090D-01 -0.47565895369549D-16 + 1 48 3 24 0.26829885043049D+00 -0.20713831173489D-16 + 2 48 3 24 -0.32390006586088D+00 -0.22688846875195D-16 + 3 48 3 24 0.22540838907912D+00 -0.20820835031356D-16 + 1 49 3 24 0.51494688043211D+00 0.15131422945616D-16 + 2 49 3 24 0.48482976678670D+00 -0.38883254657971D-16 + 3 49 3 24 -0.43998710153765D+00 -0.80077249569691D-16 + 1 50 3 24 0.69849934038531D+00 -0.79156996423685D-17 + 2 50 3 24 0.33361931413377D+00 -0.10222008923361D-16 + 3 50 3 24 -0.73467466067886D+00 0.92439434754421D-16 + 1 51 3 24 0.37134587379388D-01 -0.43561351039599D-16 + 2 51 3 24 0.37917362697482D-01 0.24136931937022D-18 + 3 51 3 24 0.25776364732936D+00 0.31224058371121D-15 + 1 52 3 24 0.13516280332068D+02 0.20035109272319D-16 + 2 52 3 24 0.14783799473417D+02 0.24432180994730D-16 + 3 52 3 24 -0.25987538274335D+02 0.10624131586417D-15 + 1 53 3 24 0.25374530201724D+00 -0.13785718357011D-16 + 2 53 3 24 0.29697315648479D+00 -0.22540499597521D-16 + 3 53 3 24 0.37222044862081D+00 -0.10771271769877D-15 + 1 54 3 24 -0.28191177394063D+00 0.15209534449036D-17 + 2 54 3 24 0.29319084621843D+00 -0.16631535912778D-16 + 3 54 3 24 0.12151128452325D+00 0.70889642453183D-16 + 1 55 3 24 0.37718079151061D+00 0.10087735430652D-16 + 2 55 3 24 0.48351314694592D+00 -0.21204137099125D-16 + 3 55 3 24 -0.51011838563335D+00 0.12954291136476D-15 + 1 56 3 24 -0.31270947786230D+01 -0.28236490487263D-18 + 2 56 3 24 -0.12396011896155D+01 0.60999568335783D-17 + 3 56 3 24 -0.31543092489251D+01 -0.10244304067416D-15 + 1 57 3 24 0.31599033686937D+01 -0.12437094781652D-17 + 2 57 3 24 -0.12746428311669D+01 0.19531504191293D-16 + 3 57 3 24 -0.30437881571425D+01 0.21964248155074D-15 + 1 58 3 24 0.14976597231751D+00 0.23040989833341D-17 + 2 58 3 24 -0.10726450908200D+00 0.36103913227737D-16 + 3 58 3 24 -0.21107489075072D+00 -0.31478121517345D-16 + 1 59 3 24 -0.88994994054172D-01 0.23270203133876D-17 + 2 59 3 24 -0.99268420215568D-01 -0.65376215507329D-18 + 3 59 3 24 -0.24768484707755D+00 0.17617522805215D-15 + 1 60 3 24 0.32345058521663D+01 0.74534625759063D-17 + 2 60 3 24 0.10540879121051D+01 0.33829895933737D-16 + 3 60 3 24 -0.29219202594767D+01 -0.25298059605383D-16 + 1 61 3 24 -0.31716179054068D+01 -0.24088038570816D-17 + 2 61 3 24 0.12419318315307D+01 -0.37128674931611D-16 + 3 61 3 24 -0.31777519768981D+01 0.66328579346783D-16 + 1 62 3 24 -0.15007314540031D+00 0.14131836596030D-17 + 2 62 3 24 0.44033202187169D-01 0.16459359616785D-16 + 3 62 3 24 -0.23563032171867D+00 0.80763804065058D-16 + 1 63 3 24 0.10249546607287D+00 0.54946445383755D-18 + 2 63 3 24 0.12548940319258D+00 0.19047190257809D-16 + 3 63 3 24 -0.23295520329197D+00 -0.29754085749908D-15 + 1 64 3 24 0.63373877723885D-02 0.38121277642338D-17 + 2 64 3 24 0.15063058829759D+00 0.15361801296244D-17 + 3 64 3 24 -0.14662854392060D+00 -0.46935556476816D-16 + 1 65 3 24 0.40494821230959D-01 -0.46516541407214D-18 + 2 65 3 24 -0.17766025281728D-01 0.29042380908261D-18 + 3 65 3 24 -0.14888633621140D-01 0.34745402722685D-16 + 1 1 1 25 0.21624829368057D+00 0.12649252034762D-15 + 2 1 1 25 0.31009401544720D+00 -0.12930699287490D-17 + 3 1 1 25 -0.34091133366505D+00 -0.69046283835604D-17 + 1 2 1 25 -0.25470941862986D+02 -0.73242065761478D-16 + 2 2 1 25 -0.13752406199399D+02 -0.85432148890528D-17 + 3 2 1 25 -0.14083423636586D+02 0.62619663337575D-17 + 1 3 1 25 -0.84916661268428D+00 0.16951317669304D-15 + 2 3 1 25 -0.41780254090831D+00 -0.13209916376200D-16 + 3 3 1 25 -0.47848284343538D+00 0.39728544348152D-16 + 1 4 1 25 0.16889592751831D+00 0.14560330742027D-16 + 2 4 1 25 -0.21574548602397D+00 0.67415687588572D-17 + 3 4 1 25 0.29580210237062D+00 -0.24400065651684D-16 + 1 5 1 25 -0.65231166976828D+00 -0.18870031342836D-15 + 2 5 1 25 -0.18627745527626D+00 -0.38863012164429D-16 + 3 5 1 25 -0.45000684445281D+00 0.24077876126818D-16 + 1 6 1 25 0.48538142032137D+00 -0.22113056935598D-15 + 2 6 1 25 -0.33966503486383D+00 -0.18873999484069D-17 + 3 6 1 25 -0.31415557033798D+00 0.91122405875395D-16 + 1 7 1 25 0.28559695976660D+00 0.23628619809729D-15 + 2 7 1 25 -0.28476319214319D-02 0.15401543484637D-17 + 3 7 1 25 -0.22841937824872D-01 0.97646829999964D-17 + 1 8 1 25 -0.42580530827139D+00 0.79065890757919D-17 + 2 8 1 25 -0.49364879915014D+00 -0.66481816145441D-17 + 3 8 1 25 -0.45051381424610D+00 -0.33135423472016D-16 + 1 9 1 25 0.31603882225366D+01 0.15191270269636D-16 + 2 9 1 25 -0.14802558918028D+01 0.12849363724429D-16 + 3 9 1 25 -0.13869504330320D+01 -0.23409833058789D-16 + 1 10 1 25 0.31015312269972D+01 0.51323369197803D-16 + 2 10 1 25 0.12337237972033D+01 -0.25013276038434D-16 + 3 10 1 25 -0.12337237972033D+01 -0.10380486870513D-16 + 1 11 1 25 0.32405780076108D+01 0.20935669880612D-16 + 2 11 1 25 -0.13531698361670D+01 0.30004735793739D-16 + 3 11 1 25 0.13531698361670D+01 0.57483252265884D-17 + 1 12 1 25 0.31603882225366D+01 -0.40343382548616D-16 + 2 12 1 25 0.13869504330320D+01 0.96999801945433D-17 + 3 12 1 25 0.14802558918028D+01 0.17267477129100D-16 + 1 13 1 25 -0.21299436255682D-01 -0.44145974433360D-16 + 2 13 1 25 -0.11647921859220D+00 0.15793245196959D-16 + 3 13 1 25 -0.96122160593490D-01 0.14979991409933D-16 + 1 14 1 25 0.76462640204259D-02 -0.79210603326197D-16 + 2 14 1 25 0.10124343654079D+00 -0.20424142222036D-17 + 3 14 1 25 -0.10124343654079D+00 0.27012970136482D-16 + 1 15 1 25 -0.21299436255646D-01 -0.53426340146868D-16 + 2 15 1 25 0.96122160593487D-01 0.65990178426758D-17 + 3 15 1 25 0.11647921859220D+00 0.12206843024206D-16 + 1 16 1 25 -0.25470941862985D+02 0.11810192278531D-15 + 2 16 1 25 0.14083423636587D+02 0.51978512089825D-17 + 3 16 1 25 0.13752406199400D+02 0.53802050109042D-16 + 1 17 1 25 0.16889592751831D+00 -0.24543315703719D-15 + 2 17 1 25 -0.29580210237062D+00 0.22398786876450D-16 + 3 17 1 25 0.21574548602409D+00 0.11471805151210D-16 + 1 18 1 25 0.21624829368054D+00 0.19849615403985D-16 + 2 18 1 25 0.34091133366502D+00 -0.19146730191041D-16 + 3 18 1 25 -0.31009401544719D+00 -0.84530100251934D-17 + 1 19 1 25 -0.84916661268427D+00 0.37476583677137D-15 + 2 19 1 25 0.47848284343538D+00 -0.14572518829849D-16 + 3 19 1 25 0.41780254090830D+00 0.21570316427225D-16 + 1 20 1 25 0.48538142032128D+00 0.64372142554145D-16 + 2 20 1 25 0.31415557033784D+00 0.11922531302376D-16 + 3 20 1 25 0.33966503486387D+00 0.55854201132877D-16 + 1 21 1 25 -0.42580530827146D+00 -0.19002978493137D-15 + 2 21 1 25 0.45051381424607D+00 -0.88498688639786D-17 + 3 21 1 25 0.49364879915014D+00 0.11108714863508D-16 + 1 22 1 25 -0.65231166976827D+00 -0.32516463591352D-15 + 2 22 1 25 0.45000684445275D+00 -0.15721922309984D-16 + 3 22 1 25 0.18627745527627D+00 0.20077576083350D-17 + 1 23 1 25 0.28559695976668D+00 -0.16387228104610D-15 + 2 23 1 25 0.22841937824876D-01 0.18502729428852D-16 + 3 23 1 25 0.28476319214319D-02 0.76269967869182D-17 + 1 24 1 25 -0.23713116216799D+00 -0.29632523601438D-17 + 2 24 1 25 -0.32804988329550D-02 -0.14233965271189D-17 + 3 24 1 25 0.50080235005404D-02 -0.15904917554412D-17 + 1 25 1 25 0.12189117977284D+03 0.00000000000000D+00 + 2 25 1 25 -0.47844129387426D+00 0.00000000000000D+00 + 3 25 1 25 0.47844129387420D+00 0.00000000000000D+00 + 1 26 1 25 0.16001184391320D+01 -0.19771757457682D-18 + 2 26 1 25 0.59452989815941D-01 0.39057657506893D-18 + 3 26 1 25 -0.59452989815941D-01 0.70259491944077D-18 + 1 27 1 25 -0.23713116216797D+00 -0.50325586417684D-17 + 2 27 1 25 -0.50080235005405D-02 -0.39912760429979D-18 + 3 27 1 25 0.32804988329550D-02 0.37619301891299D-18 + 1 28 1 25 -0.11363055334640D+00 -0.65700017557623D-17 + 2 28 1 25 -0.43730085584252D-01 -0.14703822460299D-18 + 3 28 1 25 -0.39146425986253D-01 -0.11394334653332D-18 + 1 29 1 25 -0.33051870416496D+00 0.28610737540816D-17 + 2 29 1 25 0.33123829684837D-01 -0.12519635126305D-17 + 3 29 1 25 -0.33123829684836D-01 0.41273734669526D-17 + 1 30 1 25 -0.81366906740252D-01 0.29663924518736D-17 + 2 30 1 25 -0.11505165038771D-01 0.72821244500745D-18 + 3 30 1 25 0.11505165038771D-01 0.12010348581410D-17 + 1 31 1 25 -0.11363055334646D+00 0.89860146671637D-19 + 2 31 1 25 0.39146425986253D-01 0.98378558128048D-19 + 3 31 1 25 0.43730085584252D-01 0.95590947141598D-19 + 1 32 1 25 -0.68667561303234D+00 0.23807779181037D-15 + 2 32 1 25 -0.37666733718614D+00 0.16073994897801D-16 + 3 32 1 25 0.37666733718615D+00 0.81273823116261D-16 + 1 33 1 25 -0.39730649977236D+00 0.24352049972667D-15 + 2 33 1 25 0.43605273089234D+00 0.38363504834391D-17 + 3 33 1 25 -0.47565222349133D+00 0.26634603340347D-16 + 1 34 1 25 -0.39730649977229D+00 0.51072557212222D-15 + 2 34 1 25 0.47565222349129D+00 -0.92830917202293D-17 + 3 34 1 25 -0.43605273089238D+00 0.15351487345310D-16 + 1 35 1 25 0.26343432207317D+00 -0.43800938114170D-16 + 2 35 1 25 0.18633581868246D-01 -0.12349858162480D-16 + 3 35 1 25 -0.18633581868220D-01 -0.11495040091175D-16 + 1 36 1 25 -0.26831784449549D+02 -0.18630180219420D-15 + 2 36 1 25 0.15024282579784D+02 0.51818948142430D-17 + 3 36 1 25 -0.15024282579784D+02 -0.60058445639596D-18 + 1 37 1 25 0.20558033360877D+00 -0.14843046309865D-15 + 2 37 1 25 -0.27657730932820D+00 -0.31324999359598D-17 + 3 37 1 25 -0.26928149076514D+00 -0.63335912202647D-16 + 1 38 1 25 0.20558033360883D+00 -0.60403325058504D-16 + 2 38 1 25 0.26928149076511D+00 0.17925682478513D-16 + 3 38 1 25 0.27657730932818D+00 0.47057489015815D-16 + 1 39 1 25 -0.77575023094951D+00 0.11843042814431D-16 + 2 39 1 25 0.47477936449435D+00 -0.84980156833362D-17 + 3 39 1 25 -0.47477936449436D+00 0.13303499554365D-16 + 1 40 1 25 -0.22263137836702D+00 0.12467013863497D-15 + 2 40 1 25 -0.90063254104477D-01 -0.15194225400846D-17 + 3 40 1 25 0.12077597060909D+00 0.64222788334470D-16 + 1 41 1 25 -0.30434692768448D+01 0.15876897312630D-15 + 2 41 1 25 0.33078081980729D+01 0.34106452567997D-17 + 3 41 1 25 0.13270267936535D+01 -0.30743310572930D-16 + 1 42 1 25 -0.22877488748024D+00 0.66852004447351D-16 + 2 42 1 25 0.96293916460598D-01 -0.35645950684254D-17 + 3 42 1 25 -0.10790549971587D+00 0.18920706401751D-16 + 1 43 1 25 -0.32206381252867D+01 -0.18705675492657D-15 + 2 43 1 25 -0.30400799938289D+01 -0.52570783289616D-18 + 3 43 1 25 -0.11397146903825D+01 -0.47184517188330D-16 + 1 44 1 25 -0.25031735777226D+00 0.41889208190148D-16 + 2 44 1 25 0.85695375456052D-01 -0.32784636318099D-18 + 3 44 1 25 0.98105471988989D-01 -0.18522126015300D-16 + 1 45 1 25 -0.30469835809634D+01 0.30584381657190D-16 + 2 45 1 25 -0.31491568175680D+01 -0.12331124164213D-17 + 3 45 1 25 0.12503487019539D+01 0.72634462085518D-17 + 1 46 1 25 -0.27692148443529D+00 0.52735085643252D-16 + 2 46 1 25 -0.10585392237338D+00 -0.56796097508703D-17 + 3 46 1 25 -0.11757710023595D+00 -0.62277055252931D-16 + 1 47 1 25 -0.29148046783835D+01 0.68800104079041D-16 + 2 47 1 25 0.30637658912080D+01 0.26064308231913D-17 + 3 47 1 25 -0.14205596556584D+01 0.44281578758806D-17 + 1 48 1 25 -0.39161458132897D+00 0.34447298778008D-16 + 2 48 1 25 -0.45721072852454D+00 -0.19466043764750D-16 + 3 48 1 25 0.48845849095459D+00 0.46289598828617D-17 + 1 49 1 25 0.33407282794414D+00 -0.29032131011133D-16 + 2 49 1 25 -0.27609018658730D+00 -0.53832589148569D-16 + 3 49 1 25 0.27609018658725D+00 0.10429088455293D-16 + 1 50 1 25 0.66616917000311D-01 -0.62632539889681D-16 + 2 50 1 25 -0.63234747208154D-01 -0.18383861028134D-16 + 3 50 1 25 0.63234747208143D-01 -0.14458166646877D-16 + 1 51 1 25 -0.39161458132892D+00 0.11740794231242D-15 + 2 51 1 25 -0.48845849095463D+00 0.52530495014503D-16 + 3 51 1 25 0.45721072852454D+00 0.12140186197650D-16 + 1 52 1 25 0.27295797963200D+00 0.61613279559584D-16 + 2 52 1 25 0.36011376274168D+00 0.20420846078685D-16 + 3 52 1 25 0.38269152990934D+00 0.31225519774656D-17 + 1 53 1 25 -0.27014966454727D+02 0.11074552867916D-15 + 2 53 1 25 -0.14702714068196D+02 0.80178629523914D-17 + 3 53 1 25 0.14702714068196D+02 -0.15886720239469D-16 + 1 54 1 25 -0.92453050901542D+00 -0.10154279755173D-15 + 2 54 1 25 -0.52527277599874D+00 0.75635200337419D-17 + 3 54 1 25 0.52527277599873D+00 -0.16881807664659D-16 + 1 55 1 25 0.27295797963213D+00 -0.75069704931310D-16 + 2 55 1 25 -0.38269152990934D+00 0.21871131483132D-16 + 3 55 1 25 -0.36011376274162D+00 0.23824213853521D-16 + 1 56 1 25 -0.32206381252867D+01 0.14356607375706D-15 + 2 56 1 25 0.11397146903825D+01 0.79867547720728D-16 + 3 56 1 25 0.30400799938289D+01 0.87399574662053D-18 + 1 57 1 25 -0.30434692768448D+01 -0.24349686204432D-15 + 2 57 1 25 -0.13270267936535D+01 -0.16547819093787D-16 + 3 57 1 25 -0.33078081980729D+01 0.96629811348787D-18 + 1 58 1 25 -0.22877488748024D+00 0.21414803222345D-15 + 2 58 1 25 0.10790549971587D+00 0.36561991664888D-17 + 3 58 1 25 -0.96293916460599D-01 -0.45219817291651D-17 + 1 59 1 25 -0.22263137836702D+00 0.23306036907524D-16 + 2 59 1 25 -0.12077597060909D+00 -0.84381729142356D-16 + 3 59 1 25 0.90063254104477D-01 -0.12555363606064D-17 + 1 60 1 25 -0.29148046783835D+01 -0.59387570720871D-16 + 2 60 1 25 0.14205596556584D+01 0.34526250527438D-16 + 3 60 1 25 -0.30637658912080D+01 -0.32809551951353D-17 + 1 61 1 25 -0.30469835809634D+01 -0.18766584657019D-15 + 2 61 1 25 -0.12503487019539D+01 -0.54476556333047D-16 + 3 61 1 25 0.31491568175680D+01 -0.22903668507417D-17 + 1 62 1 25 -0.27692148443529D+00 -0.12132532103132D-15 + 2 62 1 25 0.11757710023595D+00 0.10262338522582D-15 + 3 62 1 25 0.10585392237338D+00 -0.40037481580775D-18 + 1 63 1 25 -0.25031735777226D+00 -0.70669039490129D-16 + 2 63 1 25 -0.98105471988989D-01 0.83742410077013D-16 + 3 63 1 25 -0.85695375456052D-01 -0.61513140678171D-18 + 1 64 1 25 -0.29582678910612D+00 -0.17903145549297D-17 + 2 64 1 25 -0.22599590859614D-01 0.44520229022371D-16 + 3 64 1 25 0.20632698170945D-01 0.13677431997923D-16 + 1 65 1 25 0.10347994185208D+00 -0.15541158183287D-15 + 2 65 1 25 0.16062445681234D+00 0.65046205995437D-17 + 3 65 1 25 -0.16062445681233D+00 0.12158067653326D-16 + 1 1 2 25 0.28191177394063D+00 -0.12930699287490D-17 + 2 1 2 25 0.12151128452325D+00 -0.93578724960466D-16 + 3 1 2 25 -0.29319084621845D+00 0.39776234512009D-16 + 1 2 2 25 -0.13516280332068D+02 -0.85432148890528D-17 + 2 2 2 25 -0.25987538274335D+02 0.34396628505951D-15 + 3 2 2 25 -0.14783799473417D+02 0.28543179238409D-16 + 1 3 2 25 -0.37718079151060D+00 -0.13209916376200D-16 + 2 3 2 25 -0.51011838563335D+00 -0.17178173000260D-15 + 3 3 2 25 -0.48351314694592D+00 0.10871907177793D-16 + 1 4 2 25 -0.25374530201724D+00 0.67415687588572D-17 + 2 4 2 25 0.37222044862080D+00 0.61207803444729D-16 + 3 4 2 25 -0.29697315648479D+00 0.26501783120409D-16 + 1 5 2 25 -0.69849934038531D+00 -0.38863012164429D-16 + 2 5 2 25 -0.73467466067885D+00 -0.42648191703700D-16 + 3 5 2 25 -0.33361931413377D+00 0.60995137028427D-17 + 1 6 2 25 -0.26829885043048D+00 -0.18873999484069D-17 + 2 6 2 25 0.22540838907913D+00 -0.89058875507725D-16 + 3 6 2 25 0.32390006586087D+00 0.29434018562306D-16 + 1 7 2 25 -0.37134587379390D-01 0.15401543484637D-17 + 2 7 2 25 0.25776364732935D+00 0.13143779704904D-15 + 3 7 2 25 -0.37917362697485D-01 -0.96559868954618D-16 + 1 8 2 25 -0.51494688043211D+00 -0.66481816145441D-17 + 2 8 2 25 -0.43998710153765D+00 0.43695989929883D-16 + 3 8 2 25 -0.48482976678670D+00 0.28098295319990D-16 + 1 9 2 25 0.12736658618096D+01 0.12849363724429D-16 + 2 9 2 25 -0.30276658115095D+01 0.15098295002518D-15 + 3 9 2 25 -0.31659104506731D+01 -0.12016031868777D-17 + 1 10 2 25 -0.13669521855039D+01 -0.25013276038434D-16 + 2 10 2 25 -0.31005673840385D+01 -0.18406008987184D-16 + 3 10 2 25 0.32520035759161D+01 0.28356297184662D-17 + 1 11 2 25 0.13578167313624D+01 0.30004735793739D-16 + 2 11 2 25 -0.30651066230475D+01 -0.12320859569314D-15 + 3 11 2 25 0.30780436947604D+01 0.21123026005771D-17 + 1 12 2 25 -0.12141960128470D+01 0.96999801945433D-17 + 2 12 2 25 -0.31247164711463D+01 -0.67468782295199D-16 + 3 12 2 25 -0.30445700307220D+01 0.66488159678524D-18 + 1 13 2 25 0.96467426406935D-01 0.15793245196959D-16 + 2 13 2 25 -0.20497380330675D+00 0.23747232871474D-15 + 3 13 2 25 0.88506819764607D-01 0.58728276201592D-18 + 1 14 2 25 -0.91846499200623D-01 -0.20424142222036D-17 + 2 14 2 25 -0.23337155674606D+00 0.23100191061589D-15 + 3 14 2 25 -0.11807996634124D+00 0.10521512115182D-17 + 1 15 2 25 -0.96086421419232D-01 0.65990178426758D-17 + 2 15 2 25 -0.24152013706304D+00 -0.24573865592591D-15 + 3 15 2 25 0.84283472302181D-01 0.12276359794539D-18 + 1 16 2 25 0.13940477087648D+02 0.51978512089825D-17 + 2 16 2 25 -0.26651846455054D+02 0.28980766913018D-15 + 3 16 2 25 -0.14890393670092D+02 -0.18460417601012D-16 + 1 17 2 25 -0.32422969088818D+00 0.22398786876450D-16 + 2 17 2 25 0.21055711069936D+00 -0.15740199097795D-15 + 3 17 2 25 -0.26120958661627D+00 -0.65853896672723D-16 + 1 18 2 25 0.35721281861582D+00 -0.19146730191041D-16 + 2 18 2 25 0.56741504705852D+00 -0.11271295620528D-15 + 3 18 2 25 -0.31355453777295D+00 0.25475115915965D-16 + 1 19 2 25 0.47131622603680D+00 -0.14572518829849D-16 + 2 19 2 25 -0.42400915340019D+00 -0.36232854841950D-16 + 3 19 2 25 -0.48020796007542D+00 -0.19811023097068D-16 + 1 20 2 25 0.33034754534778D+00 0.11922531302376D-16 + 2 20 2 25 0.15344209870445D+00 0.17044527235151D-15 + 3 20 2 25 0.28979766667511D+00 0.91300959016789D-17 + 1 21 2 25 0.48044606924574D+00 -0.88498688639786D-17 + 2 21 2 25 -0.79183951901711D+00 -0.65751973300434D-16 + 3 21 2 25 -0.50232794404431D+00 0.59514988781297D-17 + 1 22 2 25 0.65185720354860D+00 -0.15721922309984D-16 + 2 22 2 25 -0.42401759444368D+00 -0.31457292591146D-15 + 3 22 2 25 -0.50995383855731D+00 0.14825926141973D-16 + 1 23 2 25 -0.31288499790054D-02 0.18502729428852D-16 + 2 23 2 25 0.28901435639828D+00 -0.45483825865471D-16 + 3 23 2 25 -0.66675456039025D-02 -0.15258154765771D-16 + 1 24 2 25 0.32804988329550D-02 -0.14233965271189D-17 + 2 24 2 25 -0.22641301187904D+00 -0.27977763509490D-18 + 3 24 2 25 -0.55128313585670D-02 -0.14954307644458D-17 + 1 25 2 25 -0.47844129387426D+00 0.00000000000000D+00 + 2 25 2 25 0.12182595323214D+03 0.00000000000000D+00 + 3 25 2 25 -0.75126116582925D+00 0.00000000000000D+00 + 1 26 2 25 -0.59452989815941D-01 0.39057657506893D-18 + 2 26 2 25 -0.14677112045594D+00 0.69741585959853D-17 + 3 26 2 25 -0.80047590684559D-01 0.18626499579862D-17 + 1 27 2 25 -0.50080235005405D-02 -0.39912760429979D-18 + 2 27 2 25 -0.43633020339834D+00 -0.38940198658922D-17 + 3 27 2 25 0.52563644713498D-02 -0.78493034926700D-19 + 1 28 2 25 0.97176491307949D-01 -0.14703822460299D-18 + 2 28 2 25 0.14807017428239D+01 0.23516684021604D-17 + 3 28 2 25 -0.47888314173912D-01 0.74217266058859D-18 + 1 29 2 25 -0.39177330521730D-01 -0.12519635126305D-17 + 2 29 2 25 -0.20614097171015D+00 0.15399666608690D-17 + 3 29 2 25 0.18011905544853D-01 0.77822225837651D-18 + 1 30 2 25 -0.28304415116110D-02 0.72821244500745D-18 + 2 30 2 25 -0.10202224431551D+00 -0.14760510966688D-18 + 3 30 2 25 -0.13248484477354D-01 -0.14397150254981D-18 + 1 31 2 25 0.61648165921745D-01 0.98378558128048D-19 + 2 31 2 25 -0.13489545726293D+00 -0.41156497026933D-17 + 3 31 2 25 0.78781441904662D-01 -0.82376259601914D-18 + 1 32 2 25 -0.18211420457949D+00 0.16073994897801D-16 + 2 32 2 25 -0.79049413507121D-01 -0.13741337733114D-15 + 3 32 2 25 -0.18446449841467D+00 -0.99677914543327D-17 + 1 33 2 25 0.50064688040607D+00 0.38363504834391D-17 + 2 33 2 25 -0.73479300855675D+00 0.18813462623966D-15 + 3 33 2 25 0.49763141720444D+00 0.38651940937975D-16 + 1 34 2 25 0.46150686927486D+00 -0.92830917202293D-17 + 2 34 2 25 -0.36260602341346D+00 -0.36268302172199D-15 + 3 34 2 25 0.41193502972180D+00 -0.62732863119187D-17 + 1 35 2 25 0.26920621507094D-01 -0.12349858162480D-16 + 2 35 2 25 0.27252466740490D+00 -0.72971951009054D-16 + 3 35 2 25 0.16403028717806D-01 -0.26985589247309D-16 + 1 36 2 25 0.15395242367030D+02 0.51818948142430D-17 + 2 36 2 25 -0.27141502431793D+02 0.31849691256380D-15 + 3 36 2 25 0.15567569530740D+02 0.54079856122400D-17 + 1 37 2 25 -0.34287793151199D+00 -0.31324999359598D-17 + 2 37 2 25 0.16887509052891D+00 0.20971738284302D-15 + 3 37 2 25 0.23445931572647D+00 -0.27893231510498D-16 + 1 38 2 25 0.25207267195375D+00 0.17925682478513D-16 + 2 38 2 25 0.34107393969036D+00 0.28563589989294D-16 + 3 38 2 25 0.13763729246429D+00 -0.15307848437812D-16 + 1 39 2 25 0.50967449466852D+00 -0.84980156833362D-17 + 2 39 2 25 -0.48229205645406D+00 0.21622723934193D-15 + 3 39 2 25 0.57503662633799D+00 -0.26435033362079D-16 + 1 40 2 25 -0.10249546607287D+00 -0.15194225400846D-17 + 2 40 2 25 -0.23295520329197D+00 0.13002844659721D-15 + 3 40 2 25 -0.12548940319258D+00 0.55588988352159D-16 + 1 41 2 25 0.31716179054068D+01 0.34106452567997D-17 + 2 41 2 25 -0.31777519768981D+01 -0.14019793000312D-15 + 3 41 2 25 -0.12419318315307D+01 0.71513314251375D-16 + 1 42 2 25 0.15007314540031D+00 -0.35645950684254D-17 + 2 42 2 25 -0.23563032171867D+00 0.41921891675131D-16 + 3 42 2 25 -0.44033202187169D-01 -0.39862219392758D-16 + 1 43 2 25 -0.32345058521663D+01 -0.52570783289616D-18 + 2 43 2 25 -0.29219202594768D+01 -0.13869527827653D-15 + 3 43 2 25 -0.10540879121051D+01 0.66780173130576D-16 + 1 44 2 25 0.88994994054173D-01 -0.32784636318099D-18 + 2 44 2 25 -0.24768484707755D+00 0.26961952912775D-15 + 3 44 2 25 0.99268420215568D-01 0.15278761092148D-16 + 1 45 2 25 -0.31599033686937D+01 -0.12331124164213D-17 + 2 45 2 25 -0.30437881571425D+01 -0.15439928348266D-15 + 3 45 2 25 0.12746428311669D+01 0.30073518208344D-16 + 1 46 2 25 -0.14976597231751D+00 -0.56796097508703D-17 + 2 46 2 25 -0.21107489075072D+00 0.67936163316379D-16 + 3 46 2 25 0.10726450908200D+00 -0.21711488494128D-16 + 1 47 2 25 0.31270947786230D+01 0.26064308231913D-17 + 2 47 2 25 -0.31543092489251D+01 0.42547483478076D-16 + 3 47 2 25 0.12396011896155D+01 0.76610947231384D-16 + 1 48 2 25 -0.39173006312076D+00 -0.19466043764750D-16 + 2 48 2 25 -0.78452529044151D+00 -0.16319404250180D-15 + 3 48 2 25 0.46804370187614D+00 -0.15850518813696D-16 + 1 49 2 25 -0.22874393479573D+00 -0.53832589148569D-16 + 2 49 2 25 0.18438341282725D+00 0.12751805138309D-15 + 3 49 2 25 -0.31268606285268D+00 0.20511882392542D-16 + 1 50 2 25 -0.39364144236510D-01 -0.18383861028134D-16 + 2 50 2 25 0.29670575418888D+00 0.10918620057744D-15 + 3 50 2 25 0.15228710567634D+00 -0.10967842925400D-16 + 1 51 2 25 -0.47745269960844D+00 0.52530495014503D-16 + 2 51 2 25 -0.39849614674370D+00 -0.22684995910468D-15 + 3 51 2 25 0.39877880383948D+00 -0.20190050073570D-17 + 1 52 2 25 0.39028506538331D+00 0.20420846078685D-16 + 2 52 2 25 0.14604195947364D+00 -0.29921904931017D-15 + 3 52 2 25 0.32807006299278D+00 0.22398066954624D-17 + 1 53 2 25 -0.14732387636065D+02 0.80178629523914D-17 + 2 53 2 25 -0.26136043103733D+02 -0.11936046454247D-15 + 3 53 2 25 0.14332308246567D+02 -0.13755125308198D-16 + 1 54 2 25 -0.48877102561255D+00 0.75635200337419D-17 + 2 54 2 25 -0.27661666299410D+00 -0.17545898018313D-15 + 3 54 2 25 0.40003112545841D+00 -0.16794194899286D-16 + 1 55 2 25 -0.40294145954662D+00 0.21871131483132D-16 + 2 55 2 25 0.66408895613078D+00 -0.10752232665994D-15 + 3 55 2 25 0.29133872444977D+00 -0.66657454151945D-17 + 1 56 2 25 -0.16017402743485D+01 0.79867547720728D-16 + 2 56 2 25 0.30580094079255D+01 -0.13536651106053D-15 + 3 56 2 25 0.14454054486640D+01 0.16976471231496D-16 + 1 57 2 25 0.12394348388543D+01 -0.16547819093787D-16 + 2 57 2 25 0.30332084301199D+01 -0.76730824114447D-16 + 3 57 2 25 0.12600447229703D+01 0.68116695367911D-17 + 1 58 2 25 -0.15578959509998D+00 0.36561991664888D-17 + 2 58 2 25 -0.18463012523094D-01 -0.14116421291708D-16 + 3 58 2 25 0.10511726601206D+00 0.13742681173828D-16 + 1 59 2 25 0.85795956644175D-01 -0.84381729142356D-16 + 2 59 2 25 -0.18398839271199D-01 0.78180846307868D-17 + 3 59 2 25 0.92029099056184D-01 0.14412645203877D-16 + 1 60 2 25 -0.11584240695734D+01 0.34526250527438D-16 + 2 60 2 25 0.30306915079876D+01 -0.60514555788098D-16 + 3 60 2 25 -0.11316458786832D+01 -0.88936036058582D-17 + 1 61 2 25 0.13679500992356D+01 -0.54476556333047D-16 + 2 61 2 25 0.30996653802460D+01 0.26413261683518D-16 + 3 61 2 25 -0.13599716217812D+01 -0.12671380853999D-16 + 1 62 2 25 -0.19607991922540D-01 0.10262338522582D-15 + 2 62 2 25 0.37900726108921D-02 -0.12963843224581D-15 + 3 62 2 25 -0.45686340930221D-01 -0.91012610562319D-17 + 1 63 2 25 0.11878037928652D+00 0.83742410077013D-16 + 2 63 2 25 -0.40209081495169D-01 0.22431811581164D-15 + 3 63 2 25 -0.98733218058405D-01 -0.44632253671112D-17 + 1 64 2 25 -0.40494821230960D-01 0.44520229022371D-16 + 2 64 2 25 -0.14272890849054D-01 0.27499399757139D-15 + 3 64 2 25 0.17330650968788D-01 0.12093064981449D-18 + 1 65 2 25 -0.63373877723424D-02 0.65046205995437D-17 + 2 65 2 25 -0.14662854392059D+00 -0.21021984243529D-15 + 3 65 2 25 -0.15063058829759D+00 -0.16149300709564D-17 + 1 1 3 25 -0.35721281861582D+00 -0.69046283835604D-17 + 2 1 3 25 -0.31355453777296D+00 0.39776234512009D-16 + 3 1 3 25 0.56741504705853D+00 -0.32170914637295D-15 + 1 2 3 25 -0.13940477087648D+02 0.62619663337575D-17 + 2 2 3 25 -0.14890393670092D+02 0.28543179238409D-16 + 3 2 3 25 -0.26651846455054D+02 -0.28589860907098D-15 + 1 3 3 25 -0.47131622603680D+00 0.39728544348152D-16 + 2 3 3 25 -0.48020796007542D+00 0.10871907177793D-16 + 3 3 3 25 -0.42400915340020D+00 -0.25086718296288D-15 + 1 4 3 25 0.32422969088818D+00 -0.24400065651684D-16 + 2 4 3 25 -0.26120958661627D+00 0.26501783120409D-16 + 3 4 3 25 0.21055711069935D+00 0.95637799032639D-16 + 1 5 3 25 -0.65185720354860D+00 0.24077876126818D-16 + 2 5 3 25 -0.50995383855731D+00 0.60995137028427D-17 + 3 5 3 25 -0.42401759444368D+00 -0.90031058759632D-16 + 1 6 3 25 -0.33034754534779D+00 0.91122405875395D-16 + 2 6 3 25 0.28979766667511D+00 0.29434018562306D-16 + 3 6 3 25 0.15344209870446D+00 -0.12818487290633D-15 + 1 7 3 25 0.31288499790056D-02 0.97646829999964D-17 + 2 7 3 25 -0.66675456039033D-02 -0.96559868954618D-16 + 3 7 3 25 0.28901435639828D+00 -0.20064049787022D-16 + 1 8 3 25 -0.48044606924574D+00 -0.33135423472016D-16 + 2 8 3 25 -0.50232794404432D+00 0.28098295319990D-16 + 3 8 3 25 -0.79183951901711D+00 -0.98477536451470D-17 + 1 9 3 25 0.12141960128470D+01 -0.23409833058789D-16 + 2 9 3 25 -0.30445700307219D+01 -0.12016031868777D-17 + 3 9 3 25 -0.31247164711463D+01 -0.68663804467432D-16 + 1 10 3 25 0.13669521855039D+01 -0.10380486870513D-16 + 2 10 3 25 0.32520035759161D+01 0.28356297184662D-17 + 3 10 3 25 -0.31005673840385D+01 0.90422568481160D-16 + 1 11 3 25 -0.13578167313624D+01 0.57483252265884D-17 + 2 11 3 25 0.30780436947604D+01 0.21123026005771D-17 + 3 11 3 25 -0.30651066230475D+01 0.29823819239321D-15 + 1 12 3 25 -0.12736658618096D+01 0.17267477129100D-16 + 2 12 3 25 -0.31659104506731D+01 0.66488159678524D-18 + 3 12 3 25 -0.30276658115095D+01 0.11300049596874D-16 + 1 13 3 25 0.96086421419234D-01 0.14979991409933D-16 + 2 13 3 25 0.84283472302180D-01 0.58728276201592D-18 + 3 13 3 25 -0.24152013706304D+00 0.10809685355391D-15 + 1 14 3 25 0.91846499200622D-01 0.27012970136482D-16 + 2 14 3 25 -0.11807996634124D+00 0.10521512115182D-17 + 3 14 3 25 -0.23337155674605D+00 0.19919391372971D-15 + 1 15 3 25 -0.96467426406935D-01 0.12206843024206D-16 + 2 15 3 25 0.88506819764607D-01 0.12276359794539D-18 + 3 15 3 25 -0.20497380330674D+00 0.32458615129187D-15 + 1 16 3 25 0.13516280332068D+02 0.53802050109042D-16 + 2 16 3 25 -0.14783799473417D+02 -0.18460417601012D-16 + 3 16 3 25 -0.25987538274335D+02 -0.99926126848181D-16 + 1 17 3 25 0.25374530201724D+00 0.11471805151210D-16 + 2 17 3 25 -0.29697315648480D+00 -0.65853896672723D-16 + 3 17 3 25 0.37222044862080D+00 0.17561578160424D-15 + 1 18 3 25 -0.28191177394063D+00 -0.84530100251934D-17 + 2 18 3 25 -0.29319084621843D+00 0.25475115915965D-16 + 3 18 3 25 0.12151128452325D+00 0.12510637801891D-15 + 1 19 3 25 0.37718079151061D+00 0.21570316427225D-16 + 2 19 3 25 -0.48351314694592D+00 -0.19811023097068D-16 + 3 19 3 25 -0.51011838563335D+00 -0.93394427581177D-16 + 1 20 3 25 0.26829885043047D+00 0.55854201132877D-16 + 2 20 3 25 0.32390006586087D+00 0.91300959016789D-17 + 3 20 3 25 0.22540838907913D+00 -0.25569336079540D-15 + 1 21 3 25 0.51494688043211D+00 0.11108714863508D-16 + 2 21 3 25 -0.48482976678670D+00 0.59514988781297D-17 + 3 21 3 25 -0.43998710153765D+00 0.11326793097255D-15 + 1 22 3 25 0.69849934038531D+00 0.20077576083350D-17 + 2 22 3 25 -0.33361931413377D+00 0.14825926141973D-16 + 3 22 3 25 -0.73467466067885D+00 0.15118460239281D-15 + 1 23 3 25 0.37134587379390D-01 0.76269967869182D-17 + 2 23 3 25 -0.37917362697484D-01 -0.15258154765771D-16 + 3 23 3 25 0.25776364732936D+00 -0.25549303466271D-15 + 1 24 3 25 0.50080235005404D-02 -0.15904917554412D-17 + 2 24 3 25 0.55128313585672D-02 -0.14954307644458D-17 + 3 24 3 25 -0.43633020339834D+00 -0.11692020646064D-17 + 1 25 3 25 0.47844129387420D+00 0.00000000000000D+00 + 2 25 3 25 -0.75126116582925D+00 0.00000000000000D+00 + 3 25 3 25 0.12182595323214D+03 0.00000000000000D+00 + 1 26 3 25 0.59452989815941D-01 0.70259491944077D-18 + 2 26 3 25 -0.80047590684559D-01 0.18626499579862D-17 + 3 26 3 25 -0.14677112045595D+00 -0.22476734474144D-16 + 1 27 3 25 -0.32804988329550D-02 0.37619301891299D-18 + 2 27 3 25 -0.52563644713497D-02 -0.78493034926700D-19 + 3 27 3 25 -0.22641301187904D+00 -0.18383621615400D-17 + 1 28 3 25 -0.61648165921748D-01 -0.11394334653332D-18 + 2 28 3 25 0.78781441904662D-01 0.74217266058859D-18 + 3 28 3 25 -0.13489545726293D+00 0.53922411737896D-18 + 1 29 3 25 0.39177330521712D-01 0.41273734669526D-17 + 2 29 3 25 0.18011905544853D-01 0.77822225837651D-18 + 3 29 3 25 -0.20614097171015D+00 0.15859959913714D-16 + 1 30 3 25 0.28304415116058D-02 0.12010348581410D-17 + 2 30 3 25 -0.13248484477354D-01 -0.14397150254981D-18 + 3 30 3 25 -0.10202224431551D+00 -0.17321699074856D-17 + 1 31 3 25 -0.97176491307935D-01 0.95590947141598D-19 + 2 31 3 25 -0.47888314173912D-01 -0.82376259601914D-18 + 3 31 3 25 0.14807017428239D+01 -0.25878525339102D-17 + 1 32 3 25 0.18211420457948D+00 0.81273823116261D-16 + 2 32 3 25 -0.18446449841467D+00 -0.99677914543327D-17 + 3 32 3 25 -0.79049413507123D-01 -0.79892522050166D-16 + 1 33 3 25 -0.46150686927486D+00 0.26634603340347D-16 + 2 33 3 25 0.41193502972180D+00 0.38651940937975D-16 + 3 33 3 25 -0.36260602341346D+00 0.31237081916749D-15 + 1 34 3 25 -0.50064688040607D+00 0.15351487345310D-16 + 2 34 3 25 0.49763141720444D+00 -0.62732863119187D-17 + 3 34 3 25 -0.73479300855675D+00 0.49576448321240D-16 + 1 35 3 25 -0.26920621507096D-01 -0.11495040091175D-16 + 2 35 3 25 0.16403028717806D-01 -0.26985589247309D-16 + 3 35 3 25 0.27252466740490D+00 -0.28920813259096D-15 + 1 36 3 25 -0.15395242367030D+02 -0.60058445639596D-18 + 2 36 3 25 0.15567569530740D+02 0.54079856122400D-17 + 3 36 3 25 -0.27141502431793D+02 -0.25123416870801D-15 + 1 37 3 25 -0.25207267195375D+00 -0.63335912202647D-16 + 2 37 3 25 0.13763729246429D+00 -0.27893231510498D-16 + 3 37 3 25 0.34107393969036D+00 -0.19228858670288D-16 + 1 38 3 25 0.34287793151198D+00 0.47057489015815D-16 + 2 38 3 25 0.23445931572647D+00 -0.15307848437812D-16 + 3 38 3 25 0.16887509052891D+00 0.46807707839740D-17 + 1 39 3 25 -0.50967449466852D+00 0.13303499554365D-16 + 2 39 3 25 0.57503662633799D+00 -0.26435033362079D-16 + 3 39 3 25 -0.48229205645406D+00 0.16395427471960D-15 + 1 40 3 25 -0.85795956644176D-01 0.64222788334470D-16 + 2 40 3 25 0.92029099056184D-01 0.55588988352159D-16 + 3 40 3 25 -0.18398839271205D-01 -0.20570456377098D-16 + 1 41 3 25 -0.12394348388543D+01 -0.30743310572930D-16 + 2 41 3 25 0.12600447229703D+01 0.71513314251375D-16 + 3 41 3 25 0.30332084301199D+01 -0.10267626701612D-15 + 1 42 3 25 0.15578959509998D+00 0.18920706401751D-16 + 2 42 3 25 0.10511726601206D+00 -0.39862219392758D-16 + 3 42 3 25 -0.18463012523089D-01 -0.71409015123666D-16 + 1 43 3 25 0.16017402743485D+01 -0.47184517188330D-16 + 2 43 3 25 0.14454054486640D+01 0.66780173130576D-16 + 3 43 3 25 0.30580094079255D+01 -0.38171750226140D-16 + 1 44 3 25 -0.11878037928652D+00 -0.18522126015300D-16 + 2 44 3 25 -0.98733218058407D-01 0.15278761092148D-16 + 3 44 3 25 -0.40209081495178D-01 0.11911846337152D-16 + 1 45 3 25 -0.13679500992356D+01 0.72634462085518D-17 + 2 45 3 25 -0.13599716217812D+01 0.30073518208344D-16 + 3 45 3 25 0.30996653802460D+01 0.95700436467746D-16 + 1 46 3 25 0.19607991922538D-01 -0.62277055252931D-16 + 2 46 3 25 -0.45686340930218D-01 -0.21711488494128D-16 + 3 46 3 25 0.37900726109027D-02 -0.22278621911427D-16 + 1 47 3 25 0.11584240695734D+01 0.44281578758806D-17 + 2 47 3 25 -0.11316458786832D+01 0.76610947231384D-16 + 3 47 3 25 0.30306915079876D+01 0.20963173487737D-17 + 1 48 3 25 0.47745269960844D+00 0.46289598828617D-17 + 2 48 3 25 0.39877880383948D+00 -0.15850518813696D-16 + 3 48 3 25 -0.39849614674369D+00 -0.40074519686661D-15 + 1 49 3 25 0.22874393479573D+00 0.10429088455293D-16 + 2 49 3 25 -0.31268606285268D+00 0.20511882392542D-16 + 3 49 3 25 0.18438341282726D+00 0.84970483807028D-16 + 1 50 3 25 0.39364144236508D-01 -0.14458166646877D-16 + 2 50 3 25 0.15228710567634D+00 -0.10967842925400D-16 + 3 50 3 25 0.29670575418888D+00 0.69501858741656D-16 + 1 51 3 25 0.39173006312076D+00 0.12140186197650D-16 + 2 51 3 25 0.46804370187614D+00 -0.20190050073570D-17 + 3 51 3 25 -0.78452529044151D+00 -0.15283061319884D-15 + 1 52 3 25 0.40294145954662D+00 0.31225519774656D-17 + 2 52 3 25 0.29133872444977D+00 0.22398066954624D-17 + 3 52 3 25 0.66408895613075D+00 0.34114418740545D-16 + 1 53 3 25 0.14732387636065D+02 -0.15886720239469D-16 + 2 53 3 25 0.14332308246567D+02 -0.13755125308198D-16 + 3 53 3 25 -0.26136043103733D+02 0.19242420429512D-16 + 1 54 3 25 0.48877102561255D+00 -0.16881807664659D-16 + 2 54 3 25 0.40003112545841D+00 -0.16794194899286D-16 + 3 54 3 25 -0.27661666299411D+00 -0.14468464766192D-15 + 1 55 3 25 -0.39028506538331D+00 0.23824213853521D-16 + 2 55 3 25 0.32807006299279D+00 -0.66657454151945D-17 + 3 55 3 25 0.14604195947365D+00 -0.30285794548735D-15 + 1 56 3 25 0.32345058521664D+01 0.87399574662053D-18 + 2 56 3 25 -0.10540879121051D+01 0.16976471231496D-16 + 3 56 3 25 -0.29219202594768D+01 0.15580338640048D-15 + 1 57 3 25 -0.31716179054068D+01 0.96629811348787D-18 + 2 57 3 25 -0.12419318315307D+01 0.68116695367911D-17 + 3 57 3 25 -0.31777519768981D+01 -0.31295577629609D-15 + 1 58 3 25 -0.15007314540031D+00 -0.45219817291651D-17 + 2 58 3 25 -0.44033202187168D-01 0.13742681173828D-16 + 3 58 3 25 -0.23563032171867D+00 0.25539228954013D-15 + 1 59 3 25 0.10249546607287D+00 -0.12555363606064D-17 + 2 59 3 25 -0.12548940319258D+00 0.14412645203877D-16 + 3 59 3 25 -0.23295520329197D+00 0.17530907038564D-15 + 1 60 3 25 -0.31270947786230D+01 -0.32809551951353D-17 + 2 60 3 25 0.12396011896155D+01 -0.88936036058582D-17 + 3 60 3 25 -0.31543092489251D+01 -0.62037346396508D-16 + 1 61 3 25 0.31599033686937D+01 -0.22903668507417D-17 + 2 61 3 25 0.12746428311669D+01 -0.12671380853999D-16 + 3 61 3 25 -0.30437881571425D+01 0.13901937083777D-15 + 1 62 3 25 0.14976597231751D+00 -0.40037481580775D-18 + 2 62 3 25 0.10726450908200D+00 -0.91012610562319D-17 + 3 62 3 25 -0.21107489075072D+00 -0.17965268680189D-15 + 1 63 3 25 -0.88994994054173D-01 -0.61513140678171D-18 + 2 63 3 25 0.99268420215570D-01 -0.44632253671112D-17 + 3 63 3 25 -0.24768484707755D+00 -0.29950912157007D-15 + 1 64 3 25 0.40494821230957D-01 0.13677431997923D-16 + 2 64 3 25 0.17766025281729D-01 0.12093064981449D-18 + 3 64 3 25 -0.14888633621138D-01 0.26601957308333D-15 + 1 65 3 25 0.63373877723831D-02 0.12158067653326D-16 + 2 65 3 25 -0.15063058829759D+00 -0.16149300709564D-17 + 3 65 3 25 -0.14662854392059D+00 -0.20052685076286D-15 + 1 1 1 26 0.21624829368053D+00 -0.35850753382571D-16 + 2 1 1 26 -0.34091133366503D+00 0.13088438477990D-17 + 3 1 1 26 0.31009401544719D+00 0.65606240598478D-17 + 1 2 1 26 -0.84916661268427D+00 -0.14739877094900D-15 + 2 2 1 26 -0.47848284343539D+00 -0.36399121074999D-16 + 3 2 1 26 -0.41780254090830D+00 0.17968875117336D-16 + 1 3 1 26 -0.25470941862985D+02 0.11535230949694D-15 + 2 3 1 26 -0.14083423636587D+02 -0.31841729040030D-17 + 3 3 1 26 -0.13752406199400D+02 0.31507625597184D-16 + 1 4 1 26 0.16889592751830D+00 -0.96406436499128D-16 + 2 4 1 26 0.29580210237062D+00 0.59448092968366D-17 + 3 4 1 26 -0.21574548602409D+00 -0.49936240145925D-17 + 1 5 1 26 -0.65231166976826D+00 0.31701823538761D-15 + 2 5 1 26 -0.45000684445276D+00 0.15560010167119D-16 + 3 5 1 26 -0.18627745527627D+00 -0.66182641937298D-17 + 1 6 1 26 0.28559695976668D+00 0.11431425468583D-15 + 2 6 1 26 -0.22841937824875D-01 0.14926382789836D-17 + 3 6 1 26 -0.28476319214315D-02 -0.40259794141582D-17 + 1 7 1 26 0.48538142032129D+00 -0.23170310020488D-15 + 2 7 1 26 -0.31415557033785D+00 -0.38945898753082D-16 + 3 7 1 26 -0.33966503486387D+00 0.21204507833817D-16 + 1 8 1 26 -0.42580530827146D+00 -0.33017031690741D-16 + 2 8 1 26 -0.45051381424607D+00 -0.62571216178560D-17 + 3 8 1 26 -0.49364879915014D+00 -0.25314711548867D-16 + 1 9 1 26 0.31603882225367D+01 0.10213519616948D-15 + 2 9 1 26 0.14802558918028D+01 0.32216090999107D-16 + 3 9 1 26 0.13869504330320D+01 0.16738815421027D-16 + 1 10 1 26 0.31015312269972D+01 -0.60121926445318D-16 + 2 10 1 26 -0.12337237972033D+01 -0.21785730795784D-17 + 3 10 1 26 0.12337237972033D+01 0.22832050113456D-16 + 1 11 1 26 0.32405780076108D+01 -0.65211270203977D-16 + 2 11 1 26 0.13531698361670D+01 0.17207288573993D-17 + 3 11 1 26 -0.13531698361670D+01 0.17549523932911D-16 + 1 12 1 26 0.31603882225366D+01 -0.31115116159627D-16 + 2 12 1 26 -0.13869504330320D+01 -0.21415033399757D-16 + 3 12 1 26 -0.14802558918028D+01 0.59957166563967D-17 + 1 13 1 26 -0.21299436255673D-01 -0.23129024614131D-15 + 2 13 1 26 0.11647921859220D+00 -0.27679731416921D-16 + 3 13 1 26 0.96122160593489D-01 0.25563221240657D-16 + 1 14 1 26 0.76462640204259D-02 -0.46886294134256D-16 + 2 14 1 26 -0.10124343654079D+00 0.29789892505774D-16 + 3 14 1 26 0.10124343654079D+00 0.16928804802174D-16 + 1 15 1 26 -0.21299436255642D-01 -0.12425145801684D-16 + 2 15 1 26 -0.96122160593486D-01 -0.17022797939619D-16 + 3 15 1 26 -0.11647921859220D+00 -0.30931854307395D-16 + 1 16 1 26 -0.84916661268428D+00 0.91667776381651D-16 + 2 16 1 26 0.41780254090832D+00 -0.17879498010090D-16 + 3 16 1 26 0.47848284343538D+00 -0.17590359588508D-16 + 1 17 1 26 0.16889592751831D+00 0.17505436539614D-15 + 2 17 1 26 0.21574548602397D+00 0.10711757053332D-17 + 3 17 1 26 -0.29580210237061D+00 -0.26409894540263D-16 + 1 18 1 26 0.21624829368056D+00 -0.84714105269064D-16 + 2 18 1 26 -0.31009401544720D+00 0.27324231998970D-16 + 3 18 1 26 0.34091133366505D+00 -0.39982430348976D-16 + 1 19 1 26 -0.25470941862986D+02 -0.13688260487008D-15 + 2 19 1 26 0.13752406199399D+02 0.11312645244470D-16 + 3 19 1 26 0.14083423636586D+02 -0.27097238097715D-17 + 1 20 1 26 0.28559695976660D+00 0.38155920567023D-15 + 2 20 1 26 0.28476319214343D-02 -0.23567301226786D-17 + 3 20 1 26 0.22841937824874D-01 -0.31704384546728D-16 + 1 21 1 26 -0.42580530827139D+00 0.19393455995834D-15 + 2 21 1 26 0.49364879915014D+00 0.19034074947267D-16 + 3 21 1 26 0.45051381424610D+00 -0.29337878250260D-16 + 1 22 1 26 -0.65231166976828D+00 0.32603997608966D-15 + 2 22 1 26 0.18627745527626D+00 0.32190805298539D-16 + 3 22 1 26 0.45000684445280D+00 0.44881388559643D-16 + 1 23 1 26 0.48538142032135D+00 0.24424072867794D-16 + 2 23 1 26 0.33966503486382D+00 -0.68906332580160D-17 + 3 23 1 26 0.31415557033797D+00 -0.23207633512061D-16 + 1 24 1 26 -0.23713116216796D+00 0.10559225934712D-17 + 2 24 1 26 0.50080235005403D-02 -0.71085109055030D-18 + 3 24 1 26 -0.32804988329549D-02 0.67335156771393D-19 + 1 25 1 26 0.16001184391320D+01 0.19771757457682D-18 + 2 25 1 26 -0.59452989815941D-01 -0.39057657506893D-18 + 3 25 1 26 0.59452989815941D-01 -0.70259491944077D-18 + 1 26 1 26 0.12189117977284D+03 0.00000000000000D+00 + 2 26 1 26 0.47844129387399D+00 0.00000000000000D+00 + 3 26 1 26 -0.47844129387398D+00 0.00000000000000D+00 + 1 27 1 26 -0.23713116216799D+00 0.71853235852889D-17 + 2 27 1 26 0.32804988329550D-02 0.27212094977733D-18 + 3 27 1 26 -0.50080235005409D-02 -0.81888691980386D-18 + 1 28 1 26 -0.11363055334646D+00 0.12337790897025D-17 + 2 28 1 26 -0.39146425986253D-01 0.13373177324402D-18 + 3 28 1 26 -0.43730085584253D-01 -0.18572694521886D-18 + 1 29 1 26 -0.81366906740252D-01 0.70822352770420D-18 + 2 29 1 26 0.11505165038771D-01 0.15018605723889D-17 + 3 29 1 26 -0.11505165038771D-01 0.15847229252047D-17 + 1 30 1 26 -0.33051870416495D+00 -0.39868136256817D-17 + 2 30 1 26 -0.33123829684837D-01 -0.14428758213358D-17 + 3 30 1 26 0.33123829684837D-01 -0.11373429809254D-17 + 1 31 1 26 -0.11363055334639D+00 -0.98493615939596D-18 + 2 31 1 26 0.43730085584252D-01 0.34261726435926D-18 + 3 31 1 26 0.39146425986254D-01 0.40809812975324D-18 + 1 32 1 26 0.66616917000309D-01 0.14643382445762D-16 + 2 32 1 26 0.63234747208155D-01 -0.20923790516263D-16 + 3 32 1 26 -0.63234747208145D-01 0.16946804113041D-17 + 1 33 1 26 -0.39161458132892D+00 0.84977414548565D-16 + 2 33 1 26 0.48845849095463D+00 -0.58762415637742D-17 + 3 33 1 26 -0.45721072852454D+00 -0.47782887456433D-16 + 1 34 1 26 -0.39161458132898D+00 -0.94032969869024D-16 + 2 34 1 26 0.45721072852454D+00 -0.30905891589176D-16 + 3 34 1 26 -0.48845849095460D+00 0.18549652561934D-16 + 1 35 1 26 0.33407282794413D+00 -0.34527443765874D-16 + 2 35 1 26 0.27609018658730D+00 -0.49933257253539D-16 + 3 35 1 26 -0.27609018658726D+00 0.15957638059665D-16 + 1 36 1 26 -0.92453050901542D+00 -0.34144783750524D-16 + 2 36 1 26 0.52527277599874D+00 -0.43922855309009D-16 + 3 36 1 26 -0.52527277599873D+00 -0.38184654992123D-16 + 1 37 1 26 0.27295797963213D+00 0.23821226728618D-16 + 2 37 1 26 0.38269152990935D+00 -0.17426833386838D-16 + 3 37 1 26 0.36011376274162D+00 0.13581738890443D-16 + 1 38 1 26 0.27295797963201D+00 -0.12771274594085D-15 + 2 38 1 26 -0.36011376274168D+00 -0.45587002505144D-17 + 3 38 1 26 -0.38269152990934D+00 -0.20378602311528D-16 + 1 39 1 26 -0.27014966454727D+02 -0.92051035082623D-16 + 2 39 1 26 0.14702714068196D+02 -0.28210570808653D-16 + 3 39 1 26 -0.14702714068196D+02 0.45834288778884D-16 + 1 40 1 26 -0.30434692768449D+01 0.13099253621722D-15 + 2 40 1 26 -0.33078081980729D+01 -0.33184694448292D-17 + 3 40 1 26 -0.13270267936535D+01 0.22384204865964D-17 + 1 41 1 26 -0.22263137836702D+00 0.28542512474116D-15 + 2 41 1 26 0.90063254104477D-01 0.36033671494239D-18 + 3 41 1 26 -0.12077597060909D+00 0.10198632332482D-15 + 1 42 1 26 -0.32206381252867D+01 0.12678186792358D-15 + 2 42 1 26 0.30400799938289D+01 0.42848600421670D-18 + 3 42 1 26 0.11397146903825D+01 -0.10030564881116D-15 + 1 43 1 26 -0.22877488748024D+00 -0.47482305814184D-16 + 2 43 1 26 -0.96293916460597D-01 0.34526577236860D-18 + 3 43 1 26 0.10790549971587D+00 0.76991883728440D-16 + 1 44 1 26 -0.30469835809634D+01 0.13216452526175D-15 + 2 44 1 26 0.31491568175680D+01 -0.11625661844419D-17 + 3 44 1 26 -0.12503487019539D+01 0.41259047530842D-17 + 1 45 1 26 -0.25031735777226D+00 0.54091763128430D-16 + 2 45 1 26 -0.85695375456052D-01 -0.41452709072832D-18 + 3 45 1 26 -0.98105471988990D-01 0.11618670149491D-16 + 1 46 1 26 -0.29148046783835D+01 0.24481637555333D-16 + 2 46 1 26 -0.30637658912080D+01 0.68476941337401D-18 + 3 46 1 26 0.14205596556584D+01 -0.11264921873172D-16 + 1 47 1 26 -0.27692148443529D+00 0.43380243381975D-16 + 2 47 1 26 0.10585392237338D+00 -0.82696629714492D-18 + 3 47 1 26 0.11757710023595D+00 0.14136876617440D-16 + 1 48 1 26 -0.39730649977230D+00 0.11759542466655D-15 + 2 48 1 26 -0.47565222349128D+00 -0.45438861125351D-17 + 3 48 1 26 0.43605273089238D+00 -0.34890577663760D-16 + 1 49 1 26 0.26343432207317D+00 -0.84026182055208D-16 + 2 49 1 26 -0.18633581868248D-01 -0.10248706771543D-16 + 3 49 1 26 0.18633581868220D-01 0.24277244802255D-16 + 1 50 1 26 -0.68667561303235D+00 0.12227525445815D-15 + 2 50 1 26 0.37666733718614D+00 0.52840362154219D-16 + 3 50 1 26 -0.37666733718614D+00 -0.98573969476469D-16 + 1 51 1 26 -0.39730649977236D+00 -0.22331883466600D-15 + 2 51 1 26 -0.43605273089234D+00 -0.66070193194646D-17 + 3 51 1 26 0.47565222349134D+00 -0.13771549434468D-16 + 1 52 1 26 0.20558033360884D+00 0.11513345292329D-16 + 2 52 1 26 -0.26928149076510D+00 0.65403719174637D-16 + 3 52 1 26 -0.27657730932818D+00 -0.15121581797107D-17 + 1 53 1 26 -0.77575023094951D+00 -0.10113597537981D-15 + 2 53 1 26 -0.47477936449435D+00 0.19175795754419D-16 + 3 53 1 26 0.47477936449436D+00 0.12736864171810D-16 + 1 54 1 26 -0.26831784449549D+02 -0.12907460101948D-15 + 2 54 1 26 -0.15024282579784D+02 -0.20444047398973D-16 + 3 54 1 26 0.15024282579784D+02 -0.43783988508949D-16 + 1 55 1 26 0.20558033360877D+00 -0.32855538870901D-15 + 2 55 1 26 0.27657730932820D+00 0.29725853112137D-16 + 3 55 1 26 0.26928149076513D+00 -0.69428727624071D-17 + 1 56 1 26 -0.22877488748024D+00 0.44551483565420D-16 + 2 56 1 26 -0.10790549971587D+00 0.12631193853287D-16 + 3 56 1 26 0.96293916460601D-01 0.40824429299785D-17 + 1 57 1 26 -0.22263137836702D+00 0.37840259190579D-16 + 2 57 1 26 0.12077597060909D+00 0.47326297826985D-16 + 3 57 1 26 -0.90063254104477D-01 -0.84091811008861D-18 + 1 58 1 26 -0.32206381252867D+01 -0.14635701203034D-15 + 2 58 1 26 -0.11397146903825D+01 0.25118813115449D-16 + 3 58 1 26 -0.30400799938289D+01 0.66305588629342D-18 + 1 59 1 26 -0.30434692768448D+01 -0.48491602494298D-16 + 2 59 1 26 0.13270267936535D+01 0.55234340892629D-16 + 3 59 1 26 0.33078081980729D+01 0.21265724871398D-17 + 1 60 1 26 -0.27692148443529D+00 0.50554558872982D-16 + 2 60 1 26 -0.11757710023595D+00 -0.54461763092902D-17 + 3 60 1 26 -0.10585392237338D+00 0.11611357416763D-17 + 1 61 1 26 -0.25031735777226D+00 0.21098461333807D-15 + 2 61 1 26 0.98105471988990D-01 -0.80436236346391D-17 + 3 61 1 26 0.85695375456052D-01 -0.74282353363009D-18 + 1 62 1 26 -0.29148046783835D+01 0.20265326498408D-15 + 2 62 1 26 -0.14205596556584D+01 -0.49559531139290D-16 + 3 62 1 26 0.30637658912080D+01 -0.58419084534085D-17 + 1 63 1 26 -0.30469835809634D+01 0.20372340955356D-15 + 2 63 1 26 0.12503487019539D+01 -0.21842210634776D-16 + 3 63 1 26 -0.31491568175680D+01 0.15437803613180D-17 + 1 64 1 26 -0.29582678910605D+00 -0.17290622207732D-15 + 2 64 1 26 0.20632698170945D-01 0.93533144425713D-17 + 3 64 1 26 -0.20632698170946D-01 -0.36278077265725D-16 + 1 65 1 26 0.10347994185202D+00 0.13847957279979D-15 + 2 65 1 26 -0.16076264914701D+00 0.18317344179924D-16 + 3 65 1 26 0.16062445681234D+00 0.12290465950959D-16 + 1 1 2 26 -0.35721281861582D+00 0.13088438477990D-17 + 2 1 2 26 0.56741504705853D+00 0.20949057187112D-15 + 3 1 2 26 -0.31355453777295D+00 -0.29697261252443D-17 + 1 2 2 26 -0.47131622603680D+00 -0.36399121074999D-16 + 2 2 2 26 -0.42400915340020D+00 -0.16510382508146D-15 + 3 2 2 26 -0.48020796007542D+00 -0.29547430499256D-16 + 1 3 2 26 -0.13940477087648D+02 -0.31841729040030D-17 + 2 3 2 26 -0.26651846455054D+02 0.34575956764932D-15 + 3 3 2 26 -0.14890393670092D+02 -0.16715597897249D-16 + 1 4 2 26 0.32422969088818D+00 0.59448092968366D-17 + 2 4 2 26 0.21055711069935D+00 -0.93460795589780D-17 + 3 4 2 26 -0.26120958661627D+00 -0.27546854219611D-16 + 1 5 2 26 -0.65185720354860D+00 0.15560010167119D-16 + 2 5 2 26 -0.42401759444368D+00 0.51857400973928D-17 + 3 5 2 26 -0.50995383855731D+00 -0.39622116319201D-16 + 1 6 2 26 0.31288499790063D-02 0.14926382789836D-17 + 2 6 2 26 0.28901435639828D+00 0.80341629141288D-16 + 3 6 2 26 -0.66675456039033D-02 -0.19531114122758D-16 + 1 7 2 26 -0.33034754534779D+00 -0.38945898753082D-16 + 2 7 2 26 0.15344209870446D+00 -0.24363166638275D-15 + 3 7 2 26 0.28979766667511D+00 -0.20442432871047D-16 + 1 8 2 26 -0.48044606924574D+00 -0.62571216178560D-17 + 2 8 2 26 -0.79183951901711D+00 -0.12824094259243D-16 + 3 8 2 26 -0.50232794404432D+00 -0.73644001502658D-16 + 1 9 2 26 -0.12736658618096D+01 0.32216090999107D-16 + 2 9 2 26 -0.30276658115095D+01 -0.34592847976135D-16 + 3 9 2 26 -0.31659104506731D+01 0.28742989020754D-17 + 1 10 2 26 0.13669521855039D+01 -0.21785730795784D-17 + 2 10 2 26 -0.31005673840385D+01 -0.15118141561743D-15 + 3 10 2 26 0.32520035759161D+01 0.10671368038273D-17 + 1 11 2 26 -0.13578167313624D+01 0.17207288573993D-17 + 2 11 2 26 -0.30651066230475D+01 -0.22801702921450D-15 + 3 11 2 26 0.30780436947604D+01 -0.13840144872194D-17 + 1 12 2 26 0.12141960128470D+01 -0.21415033399757D-16 + 2 12 2 26 -0.31247164711463D+01 -0.52795437872776D-16 + 3 12 2 26 -0.30445700307219D+01 0.00000000000000D+00 + 1 13 2 26 -0.96467426406935D-01 -0.27679731416921D-16 + 2 13 2 26 -0.20497380330675D+00 -0.11310960982516D-15 + 3 13 2 26 0.88506819764608D-01 0.66555259889554D-18 + 1 14 2 26 0.91846499200621D-01 0.29789892505774D-16 + 2 14 2 26 -0.23337155674606D+00 -0.21027205090617D-15 + 3 14 2 26 -0.11807996634125D+00 0.18871176685015D-18 + 1 15 2 26 0.96086421419234D-01 -0.17022797939619D-16 + 2 15 2 26 -0.24152013706304D+00 -0.23331732599339D-15 + 3 15 2 26 0.84283472302180D-01 -0.21199916288465D-18 + 1 16 2 26 0.37718079151061D+00 -0.17879498010090D-16 + 2 16 2 26 -0.51011838563334D+00 -0.56279936609809D-16 + 3 16 2 26 -0.48351314694592D+00 -0.62461150402008D-17 + 1 17 2 26 0.25374530201724D+00 0.10711757053332D-17 + 2 17 2 26 0.37222044862080D+00 -0.22940241568003D-15 + 3 17 2 26 -0.29697315648480D+00 0.14218779886019D-16 + 1 18 2 26 -0.28191177394063D+00 0.27324231998970D-16 + 2 18 2 26 0.12151128452325D+00 -0.17154217697838D-15 + 3 18 2 26 -0.29319084621843D+00 -0.87170230662664D-16 + 1 19 2 26 0.13516280332068D+02 0.11312645244470D-16 + 2 19 2 26 -0.25987538274335D+02 0.30331367553668D-15 + 3 19 2 26 -0.14783799473417D+02 0.33948793399899D-16 + 1 20 2 26 0.37134587379392D-01 -0.23567301226786D-17 + 2 20 2 26 0.25776364732935D+00 -0.36689938583638D-15 + 3 20 2 26 -0.37917362697488D-01 0.21452236915008D-16 + 1 21 2 26 0.51494688043211D+00 0.19034074947267D-16 + 2 21 2 26 -0.43998710153765D+00 -0.21882862616190D-15 + 3 21 2 26 -0.48482976678670D+00 0.66560335663181D-17 + 1 22 2 26 0.69849934038531D+00 0.32190805298539D-16 + 2 22 2 26 -0.73467466067885D+00 -0.23422455339768D-16 + 3 22 2 26 -0.33361931413377D+00 -0.34547328396157D-17 + 1 23 2 26 0.26829885043047D+00 -0.68906332580160D-17 + 2 23 2 26 0.22540838907915D+00 0.11783289401590D-15 + 3 23 2 26 0.32390006586087D+00 -0.22783852259656D-17 + 1 24 2 26 0.50080235005403D-02 -0.71085109055030D-18 + 2 24 2 26 -0.43633020339835D+00 -0.56477126506455D-17 + 3 24 2 26 0.52563644713498D-02 0.75645092599056D-18 + 1 25 2 26 0.59452989815941D-01 -0.39057657506893D-18 + 2 25 2 26 -0.14677112045594D+00 -0.69741585959853D-17 + 3 25 2 26 -0.80047590684559D-01 -0.18626499579862D-17 + 1 26 2 26 0.47844129387399D+00 0.00000000000000D+00 + 2 26 2 26 0.12182595323214D+03 0.00000000000000D+00 + 3 26 2 26 -0.75126116582897D+00 0.00000000000000D+00 + 1 27 2 26 -0.32804988329550D-02 0.27212094977733D-18 + 2 27 2 26 -0.22641301187905D+00 0.66124215317645D-17 + 3 27 2 26 -0.55128313585672D-02 0.87304654561209D-18 + 1 28 2 26 -0.61648165921745D-01 0.13373177324402D-18 + 2 28 2 26 -0.13489545726293D+00 -0.39071938753509D-17 + 3 28 2 26 0.78781441904663D-01 -0.24103155010248D-17 + 1 29 2 26 0.28304415116112D-02 0.15018605723889D-17 + 2 29 2 26 -0.10202224431551D+00 0.34749827588638D-18 + 3 29 2 26 -0.13248484477354D-01 -0.42780904520923D-19 + 1 30 2 26 0.39177330521730D-01 -0.14428758213358D-17 + 2 30 2 26 -0.20614097171014D+00 -0.13863529929840D-17 + 3 30 2 26 0.18011905544853D-01 -0.10737629103171D-17 + 1 31 2 26 -0.97176491307949D-01 0.34261726435926D-18 + 2 31 2 26 0.14807017428239D+01 -0.36163392736891D-17 + 3 31 2 26 -0.47888314173912D-01 0.31093770566378D-17 + 1 32 2 26 0.39364144236511D-01 -0.20923790516263D-16 + 2 32 2 26 0.29670575418888D+00 0.27962852351926D-15 + 3 32 2 26 0.15228710567634D+00 0.18256769166968D-16 + 1 33 2 26 0.47745269960844D+00 -0.58762415637742D-17 + 2 33 2 26 -0.39849614674369D+00 0.27788359233340D-16 + 3 33 2 26 0.39877880383948D+00 0.31244313867396D-17 + 1 34 2 26 0.39173006312076D+00 -0.30905891589176D-16 + 2 34 2 26 -0.78452529044150D+00 0.23407529388636D-15 + 3 34 2 26 0.46804370187614D+00 0.27891327398928D-16 + 1 35 2 26 0.22874393479573D+00 -0.49933257253539D-16 + 2 35 2 26 0.18438341282726D+00 -0.89984687829112D-16 + 3 35 2 26 -0.31268606285268D+00 -0.94233498926648D-17 + 1 36 2 26 0.48877102561255D+00 -0.43922855309009D-16 + 2 36 2 26 -0.27661666299411D+00 0.30120534919927D-15 + 3 36 2 26 0.40003112545841D+00 -0.22783010404578D-16 + 1 37 2 26 0.40294145954663D+00 -0.17426833386838D-16 + 2 37 2 26 0.66408895613076D+00 0.21145075698537D-16 + 3 37 2 26 0.29133872444977D+00 0.19666639877447D-16 + 1 38 2 26 -0.39028506538331D+00 -0.45587002505144D-17 + 2 38 2 26 0.14604195947365D+00 -0.39968595547736D-16 + 3 38 2 26 0.32807006299279D+00 -0.23669036163787D-16 + 1 39 2 26 0.14732387636065D+02 -0.28210570808653D-16 + 2 39 2 26 -0.26136043103733D+02 0.52606875208811D-16 + 3 39 2 26 0.14332308246567D+02 -0.37440556140378D-17 + 1 40 2 26 -0.31716179054068D+01 -0.33184694448292D-17 + 2 40 2 26 -0.31777519768981D+01 -0.11361055102257D-15 + 3 40 2 26 -0.12419318315307D+01 0.28447358171208D-16 + 1 41 2 26 0.10249546607287D+00 0.36033671494239D-18 + 2 41 2 26 -0.23295520329197D+00 0.14562735972811D-15 + 3 41 2 26 -0.12548940319258D+00 -0.53584478560378D-16 + 1 42 2 26 0.32345058521664D+01 0.42848600421670D-18 + 2 42 2 26 -0.29219202594768D+01 -0.26153391004082D-15 + 3 42 2 26 -0.10540879121051D+01 0.28489057615559D-16 + 1 43 2 26 -0.15007314540031D+00 0.34526577236860D-18 + 2 43 2 26 -0.23563032171867D+00 -0.29679970670251D-15 + 3 43 2 26 -0.44033202187164D-01 -0.13696604305830D-15 + 1 44 2 26 0.31599033686937D+01 -0.11625661844419D-17 + 2 44 2 26 -0.30437881571425D+01 -0.94349597687099D-16 + 3 44 2 26 0.12746428311669D+01 0.77740666599805D-16 + 1 45 2 26 -0.88994994054173D-01 -0.41452709072832D-18 + 2 45 2 26 -0.24768484707755D+00 0.13275433832550D-15 + 3 45 2 26 0.99268420215569D-01 0.97035552321186D-16 + 1 46 2 26 -0.31270947786230D+01 0.68476941337401D-18 + 2 46 2 26 -0.31543092489251D+01 -0.18327300605439D-15 + 3 46 2 26 0.12396011896155D+01 0.27384760058260D-17 + 1 47 2 26 0.14976597231751D+00 -0.82696629714492D-18 + 2 47 2 26 -0.21107489075072D+00 0.14641248028577D-15 + 3 47 2 26 0.10726450908200D+00 0.29835521972054D-16 + 1 48 2 26 -0.46150686927485D+00 -0.45438861125351D-17 + 2 48 2 26 -0.36260602341346D+00 -0.24800891880915D-15 + 3 48 2 26 0.41193502972180D+00 0.12484856143568D-16 + 1 49 2 26 -0.26920621507096D-01 -0.10248706771543D-16 + 2 49 2 26 0.27252466740490D+00 -0.58378670159598D-16 + 3 49 2 26 0.16403028717808D-01 0.14830987448772D-16 + 1 50 2 26 0.18211420457948D+00 0.52840362154219D-16 + 2 50 2 26 -0.79049413507128D-01 0.52732164130803D-16 + 3 50 2 26 -0.18446449841467D+00 0.33099787335771D-16 + 1 51 2 26 -0.50064688040607D+00 -0.66070193194646D-17 + 2 51 2 26 -0.73479300855675D+00 0.94391479319730D-17 + 3 51 2 26 0.49763141720444D+00 -0.18849622257028D-16 + 1 52 2 26 -0.25207267195374D+00 0.65403719174637D-16 + 2 52 2 26 0.34107393969033D+00 0.15325634050412D-15 + 3 52 2 26 0.13763729246427D+00 -0.19575545606959D-16 + 1 53 2 26 -0.50967449466852D+00 0.19175795754419D-16 + 2 53 2 26 -0.48229205645406D+00 0.25369702417362D-15 + 3 53 2 26 0.57503662633799D+00 0.21233942273658D-16 + 1 54 2 26 -0.15395242367030D+02 -0.20444047398973D-16 + 2 54 2 26 -0.27141502431793D+02 0.76707103444357D-16 + 3 54 2 26 0.15567569530740D+02 -0.76250103320001D-16 + 1 55 2 26 0.34287793151198D+00 0.29725853112137D-16 + 2 55 2 26 0.16887509052892D+00 -0.96660643398204D-16 + 3 55 2 26 0.23445931572647D+00 -0.29625682430371D-16 + 1 56 2 26 0.15578959509998D+00 0.12631193853287D-16 + 2 56 2 26 -0.18463012523089D-01 0.10839151061427D-16 + 3 56 2 26 0.10511726601206D+00 -0.14604495732232D-16 + 1 57 2 26 -0.85795956644177D-01 0.47326297826985D-16 + 2 57 2 26 -0.18398839271208D-01 0.58473541473031D-17 + 3 57 2 26 0.92029099056184D-01 0.22882058062882D-17 + 1 58 2 26 0.16017402743485D+01 0.25118813115449D-16 + 2 58 2 26 0.30580094079255D+01 -0.60675179404712D-16 + 3 58 2 26 0.14454054486640D+01 0.10734898848727D-16 + 1 59 2 26 -0.12394348388543D+01 0.55234340892629D-16 + 2 59 2 26 0.30332084301199D+01 -0.86109164438379D-16 + 3 59 2 26 0.12600447229703D+01 -0.29165694908743D-16 + 1 60 2 26 0.19607991922537D-01 -0.54461763092902D-17 + 2 60 2 26 0.37900726109009D-02 0.71063118044210D-16 + 3 60 2 26 -0.45686340930217D-01 0.22194785073883D-16 + 1 61 2 26 -0.11878037928652D+00 -0.80436236346391D-17 + 2 61 2 26 -0.40209081495182D-01 0.91147233474544D-16 + 3 61 2 26 -0.98733218058407D-01 -0.37000447529803D-16 + 1 62 2 26 0.11584240695734D+01 -0.49559531139290D-16 + 2 62 2 26 0.30306915079876D+01 0.41114556892400D-16 + 3 62 2 26 -0.11316458786832D+01 -0.11772914107561D-16 + 1 63 2 26 -0.13679500992356D+01 -0.21842210634776D-16 + 2 63 2 26 0.30996653802460D+01 -0.18317287956845D-15 + 3 63 2 26 -0.13599716217812D+01 -0.50284323493631D-17 + 1 64 2 26 0.40494821230959D-01 0.93533144425713D-17 + 2 64 2 26 -0.14888633621139D-01 0.21629814265843D-16 + 3 64 2 26 0.17330650968789D-01 0.19734939594078D-17 + 1 65 2 26 0.63373877723805D-02 0.18317344179924D-16 + 2 65 2 26 -0.14929348982220D+00 0.20318892307606D-16 + 3 65 2 26 -0.15063058829759D+00 -0.17151002466562D-17 + 1 1 3 26 0.28191177394063D+00 0.65606240598478D-17 + 2 1 3 26 -0.29319084621844D+00 -0.29697261252443D-17 + 3 1 3 26 0.12151128452324D+00 0.37624891890626D-16 + 1 2 3 26 -0.37718079151061D+00 0.17968875117336D-16 + 2 2 3 26 -0.48351314694592D+00 -0.29547430499256D-16 + 3 2 3 26 -0.51011838563335D+00 -0.14418456355854D-16 + 1 3 3 26 -0.13516280332068D+02 0.31507625597184D-16 + 2 3 3 26 -0.14783799473417D+02 -0.16715597897249D-16 + 3 3 3 26 -0.25987538274335D+02 0.87314552537707D-16 + 1 4 3 26 -0.25374530201724D+00 -0.49936240145925D-17 + 2 4 3 26 -0.29697315648479D+00 -0.27546854219611D-16 + 3 4 3 26 0.37222044862081D+00 0.11199936158210D-15 + 1 5 3 26 -0.69849934038531D+00 -0.66182641937298D-17 + 2 5 3 26 -0.33361931413377D+00 -0.39622116319201D-16 + 3 5 3 26 -0.73467466067885D+00 -0.96549738001534D-16 + 1 6 3 26 -0.37134587379390D-01 -0.40259794141582D-17 + 2 6 3 26 -0.37917362697485D-01 -0.19531114122758D-16 + 3 6 3 26 0.25776364732935D+00 0.68924189090347D-16 + 1 7 3 26 -0.26829885043048D+00 0.21204507833817D-16 + 2 7 3 26 0.32390006586087D+00 -0.20442432871047D-16 + 3 7 3 26 0.22540838907912D+00 0.14303894851776D-15 + 1 8 3 26 -0.51494688043211D+00 -0.25314711548867D-16 + 2 8 3 26 -0.48482976678670D+00 -0.73644001502658D-16 + 3 8 3 26 -0.43998710153764D+00 -0.13035320134510D-15 + 1 9 3 26 -0.12141960128470D+01 0.16738815421027D-16 + 2 9 3 26 -0.30445700307219D+01 0.28742989020754D-17 + 3 9 3 26 -0.31247164711463D+01 0.13984782013686D-15 + 1 10 3 26 -0.13669521855039D+01 0.22832050113456D-16 + 2 10 3 26 0.32520035759161D+01 0.10671368038273D-17 + 3 10 3 26 -0.31005673840385D+01 0.25027283051698D-15 + 1 11 3 26 0.13578167313624D+01 0.17549523932911D-16 + 2 11 3 26 0.30780436947604D+01 -0.13840144872194D-17 + 3 11 3 26 -0.30651066230475D+01 0.58765231422228D-16 + 1 12 3 26 0.12736658618096D+01 0.59957166563967D-17 + 2 12 3 26 -0.31659104506731D+01 0.00000000000000D+00 + 3 12 3 26 -0.30276658115095D+01 -0.26588005432007D-15 + 1 13 3 26 -0.96086421419234D-01 0.25563221240657D-16 + 2 13 3 26 0.84283472302182D-01 0.66555259889554D-18 + 3 13 3 26 -0.24152013706305D+00 -0.11696865134394D-15 + 1 14 3 26 -0.91846499200621D-01 0.16928804802174D-16 + 2 14 3 26 -0.11807996634125D+00 0.18871176685015D-18 + 3 14 3 26 -0.23337155674606D+00 -0.27260198691436D-15 + 1 15 3 26 0.96467426406935D-01 -0.30931854307395D-16 + 2 15 3 26 0.88506819764607D-01 -0.21199916288465D-18 + 3 15 3 26 -0.20497380330674D+00 -0.42851155708903D-17 + 1 16 3 26 0.47131622603680D+00 -0.17590359588508D-16 + 2 16 3 26 -0.48020796007542D+00 -0.62461150402008D-17 + 3 16 3 26 -0.42400915340020D+00 -0.10802763926588D-15 + 1 17 3 26 -0.32422969088818D+00 -0.26409894540263D-16 + 2 17 3 26 -0.26120958661627D+00 0.14218779886019D-16 + 3 17 3 26 0.21055711069936D+00 0.25507316680870D-16 + 1 18 3 26 0.35721281861582D+00 -0.39982430348976D-16 + 2 18 3 26 -0.31355453777295D+00 -0.87170230662664D-16 + 3 18 3 26 0.56741504705854D+00 0.19589849900587D-16 + 1 19 3 26 0.13940477087648D+02 -0.27097238097715D-17 + 2 19 3 26 -0.14890393670092D+02 0.33948793399899D-16 + 3 19 3 26 -0.26651846455054D+02 0.26145613476017D-15 + 1 20 3 26 -0.31288499790043D-02 -0.31704384546728D-16 + 2 20 3 26 -0.66675456039065D-02 0.21452236915008D-16 + 3 20 3 26 0.28901435639828D+00 0.81617927392851D-16 + 1 21 3 26 0.48044606924574D+00 -0.29337878250260D-16 + 2 21 3 26 -0.50232794404432D+00 0.66560335663181D-17 + 3 21 3 26 -0.79183951901711D+00 0.46565783009842D-16 + 1 22 3 26 0.65185720354860D+00 0.44881388559643D-16 + 2 22 3 26 -0.50995383855731D+00 -0.34547328396157D-17 + 3 22 3 26 -0.42401759444368D+00 0.24874269087356D-17 + 1 23 3 26 0.33034754534777D+00 -0.23207633512061D-16 + 2 23 3 26 0.28979766667511D+00 -0.22783852259656D-17 + 3 23 3 26 0.15344209870447D+00 0.20253637579987D-15 + 1 24 3 26 0.32804988329551D-02 0.67335156771393D-19 + 2 24 3 26 -0.52563644713498D-02 0.75645092599056D-18 + 3 24 3 26 -0.22641301187904D+00 0.10424750556051D-17 + 1 25 3 26 -0.59452989815941D-01 -0.70259491944077D-18 + 2 25 3 26 -0.80047590684559D-01 -0.18626499579862D-17 + 3 25 3 26 -0.14677112045595D+00 0.22476734474144D-16 + 1 26 3 26 -0.47844129387398D+00 0.00000000000000D+00 + 2 26 3 26 -0.75126116582897D+00 0.00000000000000D+00 + 3 26 3 26 0.12182595323214D+03 0.00000000000000D+00 + 1 27 3 26 -0.50080235005409D-02 -0.81888691980386D-18 + 2 27 3 26 0.55128313585670D-02 0.87304654561209D-18 + 3 27 3 26 -0.43633020339834D+00 0.64275843060071D-17 + 1 28 3 26 0.97176491307935D-01 -0.18572694521886D-18 + 2 28 3 26 -0.47888314173912D-01 -0.24103155010248D-17 + 3 28 3 26 0.14807017428239D+01 -0.54118910351161D-18 + 1 29 3 26 -0.28304415116056D-02 0.15847229252047D-17 + 2 29 3 26 -0.13248484477354D-01 -0.42780904520923D-19 + 3 29 3 26 -0.10202224431551D+00 -0.33472560138492D-18 + 1 30 3 26 -0.39177330521712D-01 -0.11373429809254D-17 + 2 30 3 26 0.18011905544853D-01 -0.10737629103171D-17 + 3 30 3 26 -0.20614097171014D+00 0.84037325720503D-17 + 1 31 3 26 0.61648165921750D-01 0.40809812975324D-18 + 2 31 3 26 0.78781441904662D-01 0.31093770566378D-17 + 3 31 3 26 -0.13489545726292D+00 -0.11990903062887D-17 + 1 32 3 26 -0.39364144236510D-01 0.16946804113041D-17 + 2 32 3 26 0.15228710567634D+00 0.18256769166968D-16 + 3 32 3 26 0.29670575418888D+00 0.10304218140409D-15 + 1 33 3 26 -0.39173006312076D+00 -0.47782887456433D-16 + 2 33 3 26 0.46804370187614D+00 0.31244313867396D-17 + 3 33 3 26 -0.78452529044151D+00 0.13529373063289D-15 + 1 34 3 26 -0.47745269960845D+00 0.18549652561934D-16 + 2 34 3 26 0.39877880383948D+00 0.27891327398928D-16 + 3 34 3 26 -0.39849614674370D+00 0.41684628280384D-15 + 1 35 3 26 -0.22874393479573D+00 0.15957638059665D-16 + 2 35 3 26 -0.31268606285268D+00 -0.94233498926648D-17 + 3 35 3 26 0.18438341282725D+00 0.13257194486966D-15 + 1 36 3 26 -0.48877102561255D+00 -0.38184654992123D-16 + 2 36 3 26 0.40003112545841D+00 -0.22783010404578D-16 + 3 36 3 26 -0.27661666299410D+00 -0.21197240366975D-15 + 1 37 3 26 0.39028506538331D+00 0.13581738890443D-16 + 2 37 3 26 0.32807006299279D+00 0.19666639877447D-16 + 3 37 3 26 0.14604195947365D+00 0.27001750255682D-15 + 1 38 3 26 -0.40294145954662D+00 -0.20378602311528D-16 + 2 38 3 26 0.29133872444978D+00 -0.23669036163787D-16 + 3 38 3 26 0.66408895613077D+00 0.56808255129628D-16 + 1 39 3 26 -0.14732387636065D+02 0.45834288778884D-16 + 2 39 3 26 0.14332308246567D+02 -0.37440556140378D-17 + 3 39 3 26 -0.26136043103733D+02 0.29681945347348D-15 + 1 40 3 26 0.12394348388543D+01 0.22384204865964D-17 + 2 40 3 26 0.12600447229703D+01 0.28447358171208D-16 + 3 40 3 26 0.30332084301199D+01 -0.39443448724137D-16 + 1 41 3 26 0.85795956644176D-01 0.10198632332482D-15 + 2 41 3 26 0.92029099056184D-01 -0.53584478560378D-16 + 3 41 3 26 -0.18398839271199D-01 -0.97776845020196D-16 + 1 42 3 26 -0.16017402743485D+01 -0.10030564881116D-15 + 2 42 3 26 0.14454054486640D+01 0.28489057615559D-16 + 3 42 3 26 0.30580094079255D+01 0.33902071843977D-16 + 1 43 3 26 -0.15578959509998D+00 0.76991883728440D-16 + 2 43 3 26 0.10511726601206D+00 -0.13696604305830D-15 + 3 43 3 26 -0.18463012523099D-01 0.83577943437091D-16 + 1 44 3 26 0.13679500992356D+01 0.41259047530842D-17 + 2 44 3 26 -0.13599716217812D+01 0.77740666599805D-16 + 3 44 3 26 0.30996653802460D+01 -0.58280555748131D-17 + 1 45 3 26 0.11878037928651D+00 0.11618670149491D-16 + 2 45 3 26 -0.98733218058406D-01 0.97035552321186D-16 + 3 45 3 26 -0.40209081495167D-01 -0.13704687591593D-16 + 1 46 3 26 -0.11584240695734D+01 -0.11264921873172D-16 + 2 46 3 26 -0.11316458786832D+01 0.27384760058260D-17 + 3 46 3 26 0.30306915079876D+01 0.35507051584458D-16 + 1 47 3 26 -0.19607991922539D-01 0.14136876617440D-16 + 2 47 3 26 -0.45686340930219D-01 0.29835521972054D-16 + 3 47 3 26 0.37900726108885D-02 0.73810426236467D-16 + 1 48 3 26 0.50064688040607D+00 -0.34890577663760D-16 + 2 48 3 26 0.49763141720444D+00 0.12484856143568D-16 + 3 48 3 26 -0.73479300855675D+00 -0.12937643806826D-15 + 1 49 3 26 0.26920621507096D-01 0.24277244802255D-16 + 2 49 3 26 0.16403028717808D-01 0.14830987448772D-16 + 3 49 3 26 0.27252466740491D+00 -0.10998707938727D-15 + 1 50 3 26 -0.18211420457947D+00 -0.98573969476469D-16 + 2 50 3 26 -0.18446449841467D+00 0.33099787335771D-16 + 3 50 3 26 -0.79049413507114D-01 -0.11503236892767D-15 + 1 51 3 26 0.46150686927486D+00 -0.13771549434468D-16 + 2 51 3 26 0.41193502972180D+00 -0.18849622257028D-16 + 3 51 3 26 -0.36260602341346D+00 0.27898807049714D-16 + 1 52 3 26 -0.34287793151198D+00 -0.15121581797107D-17 + 2 52 3 26 0.23445931572646D+00 -0.19575545606959D-16 + 3 52 3 26 0.16887509052892D+00 0.14006738744777D-16 + 1 53 3 26 0.50967449466852D+00 0.12736864171810D-16 + 2 53 3 26 0.57503662633799D+00 0.21233942273658D-16 + 3 53 3 26 -0.48229205645406D+00 0.17772617510422D-15 + 1 54 3 26 0.15395242367030D+02 -0.43783988508949D-16 + 2 54 3 26 0.15567569530740D+02 -0.76250103320001D-16 + 3 54 3 26 -0.27141502431793D+02 0.17760895273211D-16 + 1 55 3 26 0.25207267195375D+00 -0.69428727624071D-17 + 2 55 3 26 0.13763729246428D+00 -0.29625682430371D-16 + 3 55 3 26 0.34107393969033D+00 -0.34621157130024D-16 + 1 56 3 26 0.15007314540031D+00 0.40824429299785D-17 + 2 56 3 26 -0.44033202187166D-01 -0.14604495732232D-16 + 3 56 3 26 -0.23563032171867D+00 -0.31315425670661D-15 + 1 57 3 26 -0.10249546607287D+00 -0.84091811008861D-18 + 2 57 3 26 -0.12548940319258D+00 0.22882058062882D-17 + 3 57 3 26 -0.23295520329197D+00 0.28374617715995D-15 + 1 58 3 26 -0.32345058521663D+01 0.66305588629342D-18 + 2 58 3 26 -0.10540879121051D+01 0.10734898848727D-16 + 3 58 3 26 -0.29219202594768D+01 -0.19854670963804D-15 + 1 59 3 26 0.31716179054068D+01 0.21265724871398D-17 + 2 59 3 26 -0.12419318315307D+01 -0.29165694908743D-16 + 3 59 3 26 -0.31777519768981D+01 0.67082480300127D-16 + 1 60 3 26 -0.14976597231751D+00 0.11611357416763D-17 + 2 60 3 26 0.10726450908200D+00 0.22194785073883D-16 + 3 60 3 26 -0.21107489075072D+00 -0.19854244764810D-15 + 1 61 3 26 0.88994994054173D-01 -0.74282353363009D-18 + 2 61 3 26 0.99268420215568D-01 -0.37000447529803D-16 + 3 61 3 26 -0.24768484707755D+00 -0.23629743728106D-15 + 1 62 3 26 0.31270947786230D+01 -0.58419084534085D-17 + 2 62 3 26 0.12396011896155D+01 -0.11772914107561D-16 + 3 62 3 26 -0.31543092489251D+01 0.29115026605032D-16 + 1 63 3 26 -0.31599033686937D+01 0.15437803613180D-17 + 2 63 3 26 0.12746428311669D+01 -0.50284323493631D-17 + 3 63 3 26 -0.30437881571425D+01 -0.94169959909828D-16 + 1 64 3 26 -0.40494821230925D-01 -0.36278077265725D-16 + 2 64 3 26 0.17330650968789D-01 0.19734939594078D-17 + 3 64 3 26 -0.14888633621138D-01 0.12429086774894D-15 + 1 65 3 26 -0.63373877723831D-02 0.12290465950959D-16 + 2 65 3 26 -0.14978099351122D+00 -0.17151002466562D-17 + 3 65 3 26 -0.14662854392060D+00 -0.25874030167756D-16 + 1 1 1 27 -0.92453050901542D+00 0.72096332633595D-16 + 2 1 1 27 -0.52527277599874D+00 0.58024257743626D-17 + 3 1 1 27 -0.52527277599873D+00 0.52819002418359D-17 + 1 2 1 27 0.27295797963212D+00 0.82861138135522D-16 + 2 2 1 27 -0.38269152990935D+00 -0.67440366387998D-16 + 3 2 1 27 0.36011376274162D+00 -0.15543498410149D-16 + 1 3 1 27 0.27295797963199D+00 -0.70884320462192D-16 + 2 3 1 27 0.36011376274168D+00 -0.74906838283987D-17 + 3 3 1 27 -0.38269152990934D+00 -0.31686823881150D-16 + 1 4 1 27 -0.27014966454727D+02 0.16449348490313D-15 + 2 4 1 27 -0.14702714068196D+02 -0.62501847885722D-16 + 3 4 1 27 -0.14702714068196D+02 -0.21819914695868D-16 + 1 5 1 27 0.66616917000313D-01 0.17349049016587D-15 + 2 5 1 27 -0.63234747208156D-01 -0.20988687931294D-16 + 3 5 1 27 -0.63234747208147D-01 -0.30559518341133D-16 + 1 6 1 27 -0.39161458132892D+00 -0.14202778494881D-15 + 2 6 1 27 -0.48845849095463D+00 0.17765934753612D-16 + 3 6 1 27 -0.45721072852454D+00 -0.32885923160933D-16 + 1 7 1 27 -0.39161458132898D+00 0.81982603047297D-16 + 2 7 1 27 -0.45721072852454D+00 0.13535614324804D-16 + 3 7 1 27 -0.48845849095460D+00 0.85305455936010D-17 + 1 8 1 27 0.33407282794413D+00 0.16425132936976D-15 + 2 8 1 27 -0.27609018658730D+00 0.23371914305554D-16 + 3 8 1 27 -0.27609018658726D+00 -0.33513710188130D-16 + 1 9 1 27 0.31603882225367D+01 0.10752449281624D-15 + 2 9 1 27 -0.14802558918028D+01 0.55150752162063D-17 + 3 9 1 27 0.13869504330320D+01 -0.21015999207935D-16 + 1 10 1 27 0.31015312269972D+01 0.83328715137461D-17 + 2 10 1 27 0.12337237972033D+01 0.77840287849046D-17 + 3 10 1 27 0.12337237972033D+01 0.35739669974805D-16 + 1 11 1 27 0.32405780076108D+01 -0.34216617531775D-16 + 2 11 1 27 -0.13531698361670D+01 -0.21051490128534D-16 + 3 11 1 27 -0.13531698361670D+01 -0.89474183997959D-18 + 1 12 1 27 0.31603882225367D+01 -0.15377344622175D-16 + 2 12 1 27 0.13869504330320D+01 0.32311629539048D-17 + 3 12 1 27 -0.14802558918028D+01 -0.29117400783030D-16 + 1 13 1 27 -0.21299436255682D-01 -0.56163260659703D-16 + 2 13 1 27 -0.11647921859219D+00 -0.21988909913071D-18 + 3 13 1 27 0.96122160593481D-01 0.15421611799623D-17 + 1 14 1 27 0.76462640204242D-02 -0.23391243183761D-15 + 2 14 1 27 0.10124343654080D+00 0.10607620830761D-16 + 3 14 1 27 0.10124343654080D+00 0.19942592818211D-16 + 1 15 1 27 -0.21299436255651D-01 0.23052703186079D-16 + 2 15 1 27 0.96122160593482D-01 0.26026909872698D-17 + 3 15 1 27 -0.11647921859220D+00 -0.16298959635211D-16 + 1 16 1 27 0.20558033360883D+00 0.16908494259988D-15 + 2 16 1 27 0.26928149076510D+00 0.20308431238610D-16 + 3 16 1 27 -0.27657730932818D+00 0.75509100127083D-16 + 1 17 1 27 -0.77575023094951D+00 0.13912071606846D-15 + 2 17 1 27 0.47477936449435D+00 0.54531240705735D-17 + 3 17 1 27 0.47477936449437D+00 0.33260850242623D-16 + 1 18 1 27 -0.26831784449549D+02 -0.13530367927393D-15 + 2 18 1 27 0.15024282579784D+02 0.10643509027471D-16 + 3 18 1 27 0.15024282579784D+02 0.15222527100516D-16 + 1 19 1 27 0.20558033360876D+00 -0.14294416219441D-15 + 2 19 1 27 -0.27657730932820D+00 -0.53802073046008D-17 + 3 19 1 27 0.26928149076513D+00 0.23897968853746D-16 + 1 20 1 27 -0.39730649977230D+00 -0.11562101472003D-16 + 2 20 1 27 0.47565222349130D+00 0.30626478554956D-16 + 3 20 1 27 0.43605273089237D+00 0.17651426523433D-16 + 1 21 1 27 0.26343432207317D+00 -0.25541538075258D-15 + 2 21 1 27 0.18633581868246D-01 -0.24839821670523D-16 + 3 21 1 27 0.18633581868217D-01 0.14630949185211D-16 + 1 22 1 27 -0.68667561303236D+00 0.47031712705996D-17 + 2 22 1 27 -0.37666733718617D+00 0.38979187079502D-16 + 3 22 1 27 -0.37666733718617D+00 0.18006937303910D-16 + 1 23 1 27 -0.39730649977236D+00 0.85963916879812D-16 + 2 23 1 27 0.43605273089234D+00 0.11542714868051D-16 + 3 23 1 27 0.47565222349134D+00 -0.23077588102700D-16 + 1 24 1 27 0.16001184391320D+01 0.79116611581889D-17 + 2 24 1 27 0.59452989815941D-01 -0.23364903674666D-18 + 3 24 1 27 0.59452989815941D-01 0.53769277220747D-18 + 1 25 1 27 -0.23713116216797D+00 0.50325586417684D-17 + 2 25 1 27 -0.50080235005405D-02 0.39912760429979D-18 + 3 25 1 27 -0.32804988329550D-02 -0.37619301891299D-18 + 1 26 1 27 -0.23713116216799D+00 -0.71853235852889D-17 + 2 26 1 27 -0.32804988329550D-02 -0.27212094977733D-18 + 3 26 1 27 -0.50080235005409D-02 0.81888691980386D-18 + 1 27 1 27 0.12189117977284D+03 0.00000000000000D+00 + 2 27 1 27 -0.47844129387443D+00 0.00000000000000D+00 + 3 27 1 27 -0.47844129387411D+00 0.00000000000000D+00 + 1 28 1 27 -0.81366906740252D-01 0.39031180981441D-17 + 2 28 1 27 -0.11505165038771D-01 0.14414944045262D-17 + 3 28 1 27 -0.11505165038770D-01 -0.14283992028209D-17 + 1 29 1 27 -0.11363055334646D+00 0.37590615994659D-17 + 2 29 1 27 0.39146425986253D-01 -0.13823454526231D-19 + 3 29 1 27 -0.43730085584252D-01 0.49086710119007D-18 + 1 30 1 27 -0.11363055334640D+00 -0.29574309697714D-17 + 2 30 1 27 -0.43730085584252D-01 -0.19773556256379D-18 + 3 30 1 27 0.39146425986253D-01 -0.97526928226922D-19 + 1 31 1 27 -0.33051870416498D+00 -0.44575978695242D-17 + 2 31 1 27 0.33123829684837D-01 -0.16666690891584D-17 + 3 31 1 27 0.33123829684837D-01 0.22891068926742D-18 + 1 32 1 27 -0.65231166976827D+00 -0.21846171309730D-15 + 2 32 1 27 0.45000684445274D+00 0.18900383647406D-16 + 3 32 1 27 -0.18627745527628D+00 0.12169148429011D-17 + 1 33 1 27 0.28559695976668D+00 -0.47053743660685D-16 + 2 33 1 27 0.22841937824876D-01 -0.48370494290863D-16 + 3 33 1 27 -0.28476319214321D-02 0.17273743681440D-16 + 1 34 1 27 0.48538142032132D+00 0.57057297865353D-16 + 2 34 1 27 0.31415557033788D+00 0.25152827102426D-16 + 3 34 1 27 -0.33966503486389D+00 0.38252009586682D-16 + 1 35 1 27 -0.42580530827145D+00 0.64612004722520D-16 + 2 35 1 27 0.45051381424607D+00 -0.50868562322377D-17 + 3 35 1 27 -0.49364879915014D+00 -0.29254759584006D-16 + 1 36 1 27 0.21624829368053D+00 -0.13141706476361D-15 + 2 36 1 27 0.34091133366503D+00 -0.16545009948463D-16 + 3 36 1 27 0.31009401544719D+00 -0.45995955592915D-17 + 1 37 1 27 -0.84916661268427D+00 0.16222061026567D-16 + 2 37 1 27 0.47848284343539D+00 0.24792426797897D-17 + 3 37 1 27 -0.41780254090830D+00 -0.47475051188481D-17 + 1 38 1 27 -0.25470941862985D+02 0.11970001038311D-15 + 2 38 1 27 0.14083423636587D+02 0.14055493041316D-17 + 3 38 1 27 -0.13752406199400D+02 0.90517669285720D-16 + 1 39 1 27 0.16889592751830D+00 0.13939586951431D-15 + 2 39 1 27 -0.29580210237062D+00 0.30419594990219D-16 + 3 39 1 27 -0.21574548602409D+00 0.20198801599555D-16 + 1 40 1 27 -0.25031735777227D+00 -0.19345832762715D-15 + 2 40 1 27 0.85695375456052D-01 -0.27363892314956D-17 + 3 40 1 27 -0.98105471988989D-01 0.85960794864160D-16 + 1 41 1 27 -0.30469835809634D+01 -0.92839043371813D-16 + 2 41 1 27 -0.31491568175680D+01 -0.48497850691395D-18 + 3 41 1 27 -0.12503487019539D+01 0.84830809399127D-16 + 1 42 1 27 -0.27692148443529D+00 0.15789175597836D-15 + 2 42 1 27 -0.10585392237338D+00 0.46594284952052D-18 + 3 42 1 27 0.11757710023595D+00 -0.88702337683758D-16 + 1 43 1 27 -0.29148046783835D+01 -0.28742064061341D-15 + 2 43 1 27 0.30637658912080D+01 0.23069921206367D-17 + 3 43 1 27 0.14205596556584D+01 0.44835885544143D-16 + 1 44 1 27 -0.22263137836702D+00 -0.25555866557189D-15 + 2 44 1 27 -0.90063254104477D-01 0.27039739539307D-18 + 3 44 1 27 -0.12077597060909D+00 0.27841010666188D-16 + 1 45 1 27 -0.30434692768449D+01 -0.25073433229093D-15 + 2 45 1 27 0.33078081980730D+01 -0.90936954994942D-19 + 3 45 1 27 -0.13270267936535D+01 -0.98673951191243D-16 + 1 46 1 27 -0.22877488748024D+00 -0.20406306802577D-15 + 2 46 1 27 0.96293916460598D-01 -0.20191405306751D-17 + 3 46 1 27 0.10790549971587D+00 0.10562702216888D-16 + 1 47 1 27 -0.32206381252867D+01 -0.13373454221290D-15 + 2 47 1 27 -0.30400799938289D+01 0.40105118989294D-18 + 3 47 1 27 0.11397146903825D+01 -0.93090522941407D-16 + 1 48 1 27 0.28559695976660D+00 -0.38765551989301D-16 + 2 48 1 27 -0.28476319214325D-02 -0.18218786298622D-16 + 3 48 1 27 0.22841937824873D-01 0.19891545483858D-16 + 1 49 1 27 -0.42580530827139D+00 0.18752518302023D-15 + 2 49 1 27 -0.49364879915014D+00 -0.25529794737444D-16 + 3 49 1 27 0.45051381424610D+00 -0.37916173022849D-16 + 1 50 1 27 -0.65231166976828D+00 -0.47463350670804D-16 + 2 50 1 27 -0.18627745527626D+00 -0.43826969905525D-16 + 3 50 1 27 0.45000684445280D+00 0.30083899159319D-16 + 1 51 1 27 0.48538142032138D+00 0.13492007746901D-15 + 2 51 1 27 -0.33966503486385D+00 -0.17003262732856D-16 + 3 51 1 27 0.31415557033799D+00 0.23866406398995D-16 + 1 52 1 27 -0.84916661268428D+00 -0.11564402623842D-15 + 2 52 1 27 -0.41780254090832D+00 0.54968300924005D-16 + 3 52 1 27 0.47848284343538D+00 -0.66584762967479D-16 + 1 53 1 27 0.16889592751831D+00 0.14441718980963D-16 + 2 53 1 27 -0.21574548602397D+00 -0.92168534489703D-17 + 3 53 1 27 -0.29580210237061D+00 0.53277099456202D-16 + 1 54 1 27 0.21624829368057D+00 -0.28220772465301D-15 + 2 54 1 27 0.31009401544720D+00 0.20556430393624D-16 + 3 54 1 27 0.34091133366506D+00 0.78589269688128D-17 + 1 55 1 27 -0.25470941862985D+02 -0.54797594483226D-16 + 2 55 1 27 -0.13752406199399D+02 0.72853009281587D-17 + 3 55 1 27 0.14083423636586D+02 0.12986913496255D-16 + 1 56 1 27 -0.27692148443529D+00 -0.22067105447765D-15 + 2 56 1 27 0.11757710023595D+00 -0.22587595356827D-16 + 3 56 1 27 -0.10585392237338D+00 -0.43633766601037D-17 + 1 57 1 27 -0.25031735777227D+00 -0.12412666226300D-15 + 2 57 1 27 -0.98105471988989D-01 -0.79156018960005D-16 + 3 57 1 27 0.85695375456051D-01 -0.14378541894994D-17 + 1 58 1 27 -0.29148046783835D+01 0.22956005141278D-15 + 2 58 1 27 0.14205596556584D+01 0.45145176355193D-17 + 3 58 1 27 0.30637658912080D+01 -0.31104520283516D-18 + 1 59 1 27 -0.30469835809634D+01 0.25826191211234D-15 + 2 59 1 27 -0.12503487019539D+01 -0.43059370967019D-16 + 3 59 1 27 -0.31491568175680D+01 0.54208708494543D-18 + 1 60 1 27 -0.22877488748024D+00 -0.31786780428073D-15 + 2 60 1 27 0.10790549971587D+00 -0.92265150289120D-16 + 3 60 1 27 0.96293916460599D-01 0.21847210082212D-17 + 1 61 1 27 -0.22263137836702D+00 -0.14914918395742D-15 + 2 61 1 27 -0.12077597060909D+00 -0.60266027117189D-16 + 3 61 1 27 -0.90063254104477D-01 -0.16318487613556D-17 + 1 62 1 27 -0.32206381252867D+01 0.28057340248817D-15 + 2 62 1 27 0.11397146903825D+01 -0.91332781371092D-16 + 3 62 1 27 -0.30400799938289D+01 -0.86292344352615D-17 + 1 63 1 27 -0.30434692768448D+01 0.16874193919577D-15 + 2 63 1 27 -0.13270267936535D+01 -0.87806620227629D-17 + 3 63 1 27 0.33078081980729D+01 0.14132761645565D-17 + 1 64 1 27 0.10347994185202D+00 0.20510342161849D-16 + 2 64 1 27 0.16076264914700D+00 0.17191754233009D-16 + 3 64 1 27 0.16062445681233D+00 0.30126838828605D-17 + 1 65 1 27 -0.29582678910605D+00 0.12495417840424D-15 + 2 65 1 27 -0.20632698170947D-01 0.87563955898909D-17 + 3 65 1 27 -0.20632698170947D-01 0.15574016532964D-16 + 1 1 2 27 -0.48877102561256D+00 0.58024257743626D-17 + 2 1 2 27 -0.27661666299410D+00 0.63071226897274D-16 + 3 1 2 27 -0.40003112545840D+00 0.65912857045931D-16 + 1 2 2 27 -0.40294145954662D+00 -0.67440366387998D-16 + 2 2 2 27 0.66408895613077D+00 -0.90739492399453D-16 + 3 2 2 27 -0.29133872444977D+00 -0.26914242337540D-16 + 1 3 2 27 0.39028506538331D+00 -0.74906838283987D-17 + 2 3 2 27 0.14604195947365D+00 0.88571123919259D-17 + 3 3 2 27 -0.32807006299279D+00 -0.20682422409000D-16 + 1 4 2 27 -0.14732387636065D+02 -0.62501847885722D-16 + 2 4 2 27 -0.26136043103733D+02 0.21895512246516D-15 + 3 4 2 27 -0.14332308246567D+02 0.84168467020312D-17 + 1 5 2 27 -0.39364144236512D-01 -0.20988687931294D-16 + 2 5 2 27 0.29670575418888D+00 -0.19901294823854D-15 + 3 5 2 27 -0.15228710567634D+00 -0.37835995323033D-16 + 1 6 2 27 -0.47745269960845D+00 0.17765934753612D-16 + 2 6 2 27 -0.39849614674370D+00 0.16673554294548D-15 + 3 6 2 27 -0.39877880383948D+00 -0.39169802939774D-16 + 1 7 2 27 -0.39173006312076D+00 0.13535614324804D-16 + 2 7 2 27 -0.78452529044150D+00 0.20887209764699D-15 + 3 7 2 27 -0.46804370187614D+00 0.40399774487585D-16 + 1 8 2 27 -0.22874393479573D+00 0.23371914305554D-16 + 2 8 2 27 0.18438341282726D+00 0.37758594597374D-17 + 3 8 2 27 0.31268606285268D+00 -0.52953085279392D-17 + 1 9 2 27 0.12736658618096D+01 0.55150752162063D-17 + 2 9 2 27 -0.30276658115095D+01 -0.72846128637060D-16 + 3 9 2 27 0.31659104506731D+01 0.49186108450196D-17 + 1 10 2 27 -0.13669521855039D+01 0.77840287849046D-17 + 2 10 2 27 -0.31005673840385D+01 0.14278630201676D-15 + 3 10 2 27 -0.32520035759161D+01 0.83228699410156D-18 + 1 11 2 27 0.13578167313624D+01 -0.21051490128534D-16 + 2 11 2 27 -0.30651066230475D+01 0.23550213206254D-15 + 3 11 2 27 -0.30780436947604D+01 0.12394637664719D-17 + 1 12 2 27 -0.12141960128470D+01 0.32311629539048D-17 + 2 12 2 27 -0.31247164711463D+01 -0.55844214103064D-16 + 3 12 2 27 0.30445700307220D+01 -0.18907622772998D-17 + 1 13 2 27 0.96467426406945D-01 -0.21988909913071D-18 + 2 13 2 27 -0.20497380330674D+00 -0.15109856383683D-16 + 3 13 2 27 -0.88506819764609D-01 0.18811930754449D-18 + 1 14 2 27 -0.91846499200612D-01 0.10607620830761D-16 + 2 14 2 27 -0.23337155674606D+00 -0.46211573570217D-16 + 3 14 2 27 0.11807996634125D+00 -0.29717315969534D-18 + 1 15 2 27 -0.96086421419238D-01 0.26026909872698D-17 + 2 15 2 27 -0.24152013706305D+00 -0.91567242834967D-16 + 3 15 2 27 -0.84283472302180D-01 0.16702311856597D-17 + 1 16 2 27 0.25207267195374D+00 0.20308431238610D-16 + 2 16 2 27 0.34107393969033D+00 -0.11849575133275D-15 + 3 16 2 27 -0.13763729246427D+00 -0.11331293410167D-15 + 1 17 2 27 0.50967449466852D+00 0.54531240705735D-17 + 2 17 2 27 -0.48229205645406D+00 -0.87768171043956D-16 + 3 17 2 27 -0.57503662633799D+00 -0.40596429683422D-17 + 1 18 2 27 0.15395242367030D+02 0.10643509027471D-16 + 2 18 2 27 -0.27141502431793D+02 -0.40229603660208D-15 + 3 18 2 27 -0.15567569530740D+02 -0.23965724188227D-16 + 1 19 2 27 -0.34287793151198D+00 -0.53802073046008D-17 + 2 19 2 27 0.16887509052892D+00 0.77335794077026D-16 + 3 19 2 27 -0.23445931572647D+00 0.30556979870286D-16 + 1 20 2 27 0.46150686927487D+00 0.30626478554956D-16 + 2 20 2 27 -0.36260602341347D+00 0.23234791470543D-15 + 3 20 2 27 -0.41193502972180D+00 0.96564040696890D-17 + 1 21 2 27 0.26920621507094D-01 -0.24839821670523D-16 + 2 21 2 27 0.27252466740490D+00 -0.26209797225856D-15 + 3 21 2 27 -0.16403028717808D-01 -0.16831571565437D-17 + 1 22 2 27 -0.18211420457951D+00 0.38979187079502D-16 + 2 22 2 27 -0.79049413507111D-01 -0.29616283439243D-15 + 3 22 2 27 0.18446449841465D+00 0.41400168143884D-16 + 1 23 2 27 0.50064688040607D+00 0.11542714868051D-16 + 2 23 2 27 -0.73479300855674D+00 -0.90491594401876D-16 + 3 23 2 27 -0.49763141720444D+00 0.31166855268243D-16 + 1 24 2 27 -0.59452989815941D-01 -0.23364903674666D-18 + 2 24 2 27 -0.14677112045594D+00 0.12454139222572D-16 + 3 24 2 27 0.80047590684559D-01 -0.15429048137177D-18 + 1 25 2 27 -0.50080235005405D-02 0.39912760429979D-18 + 2 25 2 27 -0.43633020339834D+00 0.38940198658922D-17 + 3 25 2 27 -0.52563644713497D-02 0.78493034926700D-19 + 1 26 2 27 0.32804988329550D-02 -0.27212094977733D-18 + 2 26 2 27 -0.22641301187905D+00 -0.66124215317645D-17 + 3 26 2 27 0.55128313585670D-02 -0.87304654561209D-18 + 1 27 2 27 -0.47844129387443D+00 0.00000000000000D+00 + 2 27 2 27 0.12182595323214D+03 0.00000000000000D+00 + 3 27 2 27 0.75126116582904D+00 0.00000000000000D+00 + 1 28 2 27 -0.28304415116108D-02 0.14414944045262D-17 + 2 28 2 27 -0.10202224431551D+00 0.55625487006598D-18 + 3 28 2 27 0.13248484477354D-01 -0.34223475077388D-18 + 1 29 2 27 0.61648165921745D-01 -0.13823454526231D-19 + 2 29 2 27 -0.13489545726293D+00 -0.40111696059574D-17 + 3 29 2 27 -0.78781441904662D-01 0.58867685192186D-18 + 1 30 2 27 0.97176491307949D-01 -0.19773556256379D-18 + 2 30 2 27 0.14807017428239D+01 -0.11233192531467D-16 + 3 30 2 27 0.47888314173912D-01 0.14638138884076D-17 + 1 31 2 27 -0.39177330521729D-01 -0.16666690891584D-17 + 2 31 2 27 -0.20614097171014D+00 0.42941507356441D-17 + 3 31 2 27 -0.18011905544853D-01 -0.21119482417949D-18 + 1 32 2 27 0.65185720354859D+00 0.18900383647406D-16 + 2 32 2 27 -0.42401759444366D+00 -0.43814278255051D-16 + 3 32 2 27 0.50995383855732D+00 -0.20576883842987D-16 + 1 33 2 27 -0.31288499790045D-02 -0.48370494290863D-16 + 2 33 2 27 0.28901435639828D+00 0.25558553015877D-15 + 3 33 2 27 0.66675456039042D-02 -0.83939465440063D-17 + 1 34 2 27 0.33034754534782D+00 0.25152827102426D-16 + 2 34 2 27 0.15344209870445D+00 -0.12821076883680D-16 + 3 34 2 27 -0.28979766667512D+00 -0.10801482056543D-17 + 1 35 2 27 0.48044606924574D+00 -0.50868562322377D-17 + 2 35 2 27 -0.79183951901711D+00 -0.64750821904857D-16 + 3 35 2 27 0.50232794404432D+00 -0.68167525834771D-17 + 1 36 2 27 0.35721281861583D+00 -0.16545009948463D-16 + 2 36 2 27 0.56741504705852D+00 -0.84033182420510D-16 + 3 36 2 27 0.31355453777295D+00 -0.26625480979316D-16 + 1 37 2 27 0.47131622603680D+00 0.24792426797897D-17 + 2 37 2 27 -0.42400915340020D+00 -0.21254071889649D-15 + 3 37 2 27 0.48020796007542D+00 0.27901171704351D-16 + 1 38 2 27 0.13940477087648D+02 0.14055493041316D-17 + 2 38 2 27 -0.26651846455054D+02 -0.57250019760988D-16 + 3 38 2 27 0.14890393670092D+02 0.54453249765207D-16 + 1 39 2 27 -0.32422969088818D+00 0.30419594990219D-16 + 2 39 2 27 0.21055711069935D+00 0.73580933561065D-16 + 3 39 2 27 0.26120958661627D+00 -0.91993175589748D-18 + 1 40 2 27 0.88994994054174D-01 -0.27363892314956D-17 + 2 40 2 27 -0.24768484707755D+00 -0.10852763237212D-16 + 3 40 2 27 -0.99268420215567D-01 0.30727684983238D-16 + 1 41 2 27 -0.31599033686937D+01 -0.48497850691395D-18 + 2 41 2 27 -0.30437881571425D+01 0.25357775682247D-15 + 3 41 2 27 -0.12746428311669D+01 -0.27938550074350D-16 + 1 42 2 27 -0.14976597231751D+00 0.46594284952052D-18 + 2 42 2 27 -0.21107489075072D+00 -0.26563069277602D-16 + 3 42 2 27 -0.10726450908200D+00 -0.90153667688775D-16 + 1 43 2 27 0.31270947786230D+01 0.23069921206367D-17 + 2 43 2 27 -0.31543092489251D+01 -0.16770782884723D-16 + 3 43 2 27 -0.12396011896155D+01 0.25204427079691D-16 + 1 44 2 27 -0.10249546607287D+00 0.27039739539307D-18 + 2 44 2 27 -0.23295520329197D+00 -0.67454430958755D-17 + 3 44 2 27 0.12548940319258D+00 0.85141973484140D-16 + 1 45 2 27 0.31716179054069D+01 -0.90936954994942D-19 + 2 45 2 27 -0.31777519768982D+01 0.17523500484738D-17 + 3 45 2 27 0.12419318315307D+01 -0.13199485826177D-16 + 1 46 2 27 0.15007314540031D+00 -0.20191405306751D-17 + 2 46 2 27 -0.23563032171867D+00 0.24911262828948D-15 + 3 46 2 27 0.44033202187168D-01 0.20632775741773D-16 + 1 47 2 27 -0.32345058521663D+01 0.40105118989294D-18 + 2 47 2 27 -0.29219202594767D+01 0.26647647196848D-15 + 3 47 2 27 0.10540879121051D+01 -0.18463309532554D-16 + 1 48 2 27 -0.37134587379390D-01 -0.18218786298622D-16 + 2 48 2 27 0.25776364732935D+00 0.10734991744797D-15 + 3 48 2 27 0.37917362697485D-01 0.22960131740440D-16 + 1 49 2 27 -0.51494688043211D+00 -0.25529794737444D-16 + 2 49 2 27 -0.43998710153765D+00 0.97798439370089D-16 + 3 49 2 27 0.48482976678670D+00 0.14659558609970D-16 + 1 50 2 27 -0.69849934038531D+00 -0.43826969905525D-16 + 2 50 2 27 -0.73467466067886D+00 0.10661289264870D-15 + 3 50 2 27 0.33361931413377D+00 0.36207696421537D-16 + 1 51 2 27 -0.26829885043050D+00 -0.17003262732856D-16 + 2 51 2 27 0.22540838907914D+00 -0.27466113511253D-16 + 3 51 2 27 -0.32390006586088D+00 -0.13193500299625D-17 + 1 52 2 27 -0.37718079151061D+00 0.54968300924005D-16 + 2 52 2 27 -0.51011838563335D+00 -0.25835949002188D-15 + 3 52 2 27 0.48351314694592D+00 0.65116271392950D-17 + 1 53 2 27 -0.25374530201724D+00 -0.92168534489703D-17 + 2 53 2 27 0.37222044862082D+00 -0.23995922719699D-15 + 3 53 2 27 0.29697315648480D+00 -0.66574794136924D-17 + 1 54 2 27 0.28191177394063D+00 0.20556430393624D-16 + 2 54 2 27 0.12151128452324D+00 -0.44293186777040D-16 + 3 54 2 27 0.29319084621843D+00 -0.22793491001963D-16 + 1 55 2 27 -0.13516280332068D+02 0.72853009281587D-17 + 2 55 2 27 -0.25987538274335D+02 0.11365791259435D-16 + 3 55 2 27 0.14783799473417D+02 -0.34077124920195D-17 + 1 56 2 27 -0.19607991922537D-01 -0.22587595356827D-16 + 2 56 2 27 0.37900726108992D-02 -0.98218660677666D-16 + 3 56 2 27 0.45686340930217D-01 -0.32093048799856D-16 + 1 57 2 27 0.11878037928652D+00 -0.79156018960005D-16 + 2 57 2 27 -0.40209081495173D-01 -0.15855496119026D-15 + 3 57 2 27 0.98733218058407D-01 0.10295821892331D-16 + 1 58 2 27 -0.11584240695734D+01 0.45145176355193D-17 + 2 58 2 27 0.30306915079876D+01 -0.95732609534214D-16 + 3 58 2 27 0.11316458786832D+01 -0.51489541306141D-17 + 1 59 2 27 0.13679500992356D+01 -0.43059370967019D-16 + 2 59 2 27 0.30996653802460D+01 -0.13976694329223D-15 + 3 59 2 27 0.13599716217812D+01 0.12039671785860D-16 + 1 60 2 27 -0.15578959509998D+00 -0.92265150289120D-16 + 2 60 2 27 -0.18463012523090D-01 0.12576760787764D-15 + 3 60 2 27 -0.10511726601206D+00 0.27826335132170D-16 + 1 61 2 27 0.85795956644176D-01 -0.60266027117189D-16 + 2 61 2 27 -0.18398839271206D-01 -0.77206006119620D-17 + 3 61 2 27 -0.92029099056184D-01 0.21544269915373D-16 + 1 62 2 27 -0.16017402743485D+01 -0.91332781371092D-16 + 2 62 2 27 0.30580094079255D+01 0.10770742331887D-15 + 3 62 2 27 -0.14454054486640D+01 0.16905512684146D-16 + 1 63 2 27 0.12394348388543D+01 -0.87806620227629D-17 + 2 63 2 27 0.30332084301199D+01 -0.76279469695867D-16 + 3 63 2 27 -0.12600447229703D+01 -0.22993476165703D-16 + 1 64 2 27 -0.63373877723876D-02 0.17191754233009D-16 + 2 64 2 27 -0.14929348982221D+00 0.94516771575037D-16 + 3 64 2 27 0.15063058829759D+00 0.74403202484957D-18 + 1 65 2 27 -0.40494821230961D-01 0.87563955898909D-17 + 2 65 2 27 -0.14888633621138D-01 -0.87504488321058D-16 + 3 65 2 27 -0.17330650968787D-01 0.45460414939444D-18 + 1 1 3 27 -0.48877102561255D+00 0.52819002418359D-17 + 2 1 3 27 -0.40003112545840D+00 0.65912857045931D-16 + 3 1 3 27 -0.27661666299410D+00 0.16485630139429D-15 + 1 2 3 27 0.39028506538330D+00 -0.15543498410149D-16 + 2 2 3 27 -0.32807006299279D+00 -0.26914242337540D-16 + 3 2 3 27 0.14604195947365D+00 0.10720415308274D-15 + 1 3 3 27 -0.40294145954662D+00 -0.31686823881150D-16 + 2 3 3 27 -0.29133872444978D+00 -0.20682422409000D-16 + 3 3 3 27 0.66408895613078D+00 -0.28963839616819D-15 + 1 4 3 27 -0.14732387636065D+02 -0.21819914695868D-16 + 2 4 3 27 -0.14332308246567D+02 0.84168467020312D-17 + 3 4 3 27 -0.26136043103733D+02 -0.93326712096614D-16 + 1 5 3 27 -0.39364144236512D-01 -0.30559518341133D-16 + 2 5 3 27 -0.15228710567634D+00 -0.37835995323033D-16 + 3 5 3 27 0.29670575418887D+00 0.18331466764365D-15 + 1 6 3 27 -0.39173006312076D+00 -0.32885923160933D-16 + 2 6 3 27 -0.46804370187614D+00 -0.39169802939774D-16 + 3 6 3 27 -0.78452529044150D+00 -0.18038029071747D-16 + 1 7 3 27 -0.47745269960845D+00 0.85305455936010D-17 + 2 7 3 27 -0.39877880383947D+00 0.40399774487585D-16 + 3 7 3 27 -0.39849614674370D+00 0.27720529968447D-15 + 1 8 3 27 -0.22874393479574D+00 -0.33513710188130D-16 + 2 8 3 27 0.31268606285268D+00 -0.52953085279392D-17 + 3 8 3 27 0.18438341282726D+00 -0.16816435184132D-15 + 1 9 3 27 -0.12141960128470D+01 -0.21015999207935D-16 + 2 9 3 27 0.30445700307219D+01 0.49186108450196D-17 + 3 9 3 27 -0.31247164711463D+01 -0.13289948653058D-15 + 1 10 3 27 -0.13669521855039D+01 0.35739669974805D-16 + 2 10 3 27 -0.32520035759161D+01 0.83228699410156D-18 + 3 10 3 27 -0.31005673840385D+01 0.32065596143077D-15 + 1 11 3 27 0.13578167313624D+01 -0.89474183997959D-18 + 2 11 3 27 -0.30780436947604D+01 0.12394637664719D-17 + 3 11 3 27 -0.30651066230475D+01 -0.21126616539323D-15 + 1 12 3 27 0.12736658618096D+01 -0.29117400783030D-16 + 2 12 3 27 0.31659104506731D+01 -0.18907622772998D-17 + 3 12 3 27 -0.30276658115095D+01 -0.17436737296188D-15 + 1 13 3 27 -0.96086421419243D-01 0.15421611799623D-17 + 2 13 3 27 -0.84283472302183D-01 0.18811930754449D-18 + 3 13 3 27 -0.24152013706305D+00 -0.18058905187492D-15 + 1 14 3 27 -0.91846499200612D-01 0.19942592818211D-16 + 2 14 3 27 0.11807996634125D+00 -0.29717315969534D-18 + 3 14 3 27 -0.23337155674605D+00 -0.20418069784850D-16 + 1 15 3 27 0.96467426406939D-01 -0.16298959635211D-16 + 2 15 3 27 -0.88506819764607D-01 0.16702311856597D-17 + 3 15 3 27 -0.20497380330674D+00 0.23286211084288D-15 + 1 16 3 27 -0.34287793151198D+00 0.75509100127083D-16 + 2 16 3 27 -0.23445931572646D+00 -0.11331293410167D-15 + 3 16 3 27 0.16887509052892D+00 -0.43594271699926D-16 + 1 17 3 27 0.50967449466852D+00 0.33260850242623D-16 + 2 17 3 27 -0.57503662633799D+00 -0.40596429683422D-17 + 3 17 3 27 -0.48229205645406D+00 0.27739231329586D-16 + 1 18 3 27 0.15395242367030D+02 0.15222527100516D-16 + 2 18 3 27 -0.15567569530740D+02 -0.23965724188227D-16 + 3 18 3 27 -0.27141502431793D+02 -0.29364295281633D-15 + 1 19 3 27 0.25207267195375D+00 0.23897968853746D-16 + 2 19 3 27 -0.13763729246429D+00 0.30556979870286D-16 + 3 19 3 27 0.34107393969034D+00 -0.25043886619214D-15 + 1 20 3 27 0.50064688040607D+00 0.17651426523433D-16 + 2 20 3 27 -0.49763141720443D+00 0.96564040696890D-17 + 3 20 3 27 -0.73479300855675D+00 0.84018310840221D-16 + 1 21 3 27 0.26920621507093D-01 0.14630949185211D-16 + 2 21 3 27 -0.16403028717808D-01 -0.16831571565437D-17 + 3 21 3 27 0.27252466740490D+00 -0.31115155792836D-15 + 1 22 3 27 -0.18211420457951D+00 0.18006937303910D-16 + 2 22 3 27 0.18446449841465D+00 0.41400168143884D-16 + 3 22 3 27 -0.79049413507109D-01 0.12005127721702D-15 + 1 23 3 27 0.46150686927486D+00 -0.23077588102700D-16 + 2 23 3 27 -0.41193502972180D+00 0.31166855268243D-16 + 3 23 3 27 -0.36260602341347D+00 -0.22844234416266D-16 + 1 24 3 27 -0.59452989815941D-01 0.53769277220747D-18 + 2 24 3 27 0.80047590684559D-01 -0.15429048137177D-18 + 3 24 3 27 -0.14677112045595D+00 0.26228639844606D-18 + 1 25 3 27 0.32804988329550D-02 -0.37619301891299D-18 + 2 25 3 27 0.52563644713498D-02 0.78493034926700D-19 + 3 25 3 27 -0.22641301187904D+00 0.18383621615400D-17 + 1 26 3 27 -0.50080235005409D-02 0.81888691980386D-18 + 2 26 3 27 -0.55128313585672D-02 -0.87304654561209D-18 + 3 26 3 27 -0.43633020339834D+00 -0.64275843060071D-17 + 1 27 3 27 -0.47844129387411D+00 0.00000000000000D+00 + 2 27 3 27 0.75126116582904D+00 0.00000000000000D+00 + 3 27 3 27 0.12182595323214D+03 0.00000000000000D+00 + 1 28 3 27 -0.28304415116050D-02 -0.14283992028209D-17 + 2 28 3 27 0.13248484477354D-01 -0.34223475077388D-18 + 3 28 3 27 -0.10202224431551D+00 0.15731055964093D-17 + 1 29 3 27 0.97176491307935D-01 0.49086710119007D-18 + 2 29 3 27 0.47888314173912D-01 0.58867685192186D-18 + 3 29 3 27 0.14807017428239D+01 0.73103939080489D-18 + 1 30 3 27 0.61648165921748D-01 -0.97526928226922D-19 + 2 30 3 27 -0.78781441904662D-01 0.14638138884076D-17 + 3 30 3 27 -0.13489545726293D+00 -0.77254233040875D-18 + 1 31 3 27 -0.39177330521712D-01 0.22891068926742D-18 + 2 31 3 27 -0.18011905544853D-01 -0.21119482417949D-18 + 3 31 3 27 -0.20614097171014D+00 -0.87987035393339D-17 + 1 32 3 27 -0.69849934038531D+00 0.12169148429011D-17 + 2 32 3 27 0.33361931413377D+00 -0.20576883842987D-16 + 3 32 3 27 -0.73467466067886D+00 -0.97967579980980D-16 + 1 33 3 27 -0.37134587379390D-01 0.17273743681440D-16 + 2 33 3 27 0.37917362697486D-01 -0.83939465440063D-17 + 3 33 3 27 0.25776364732935D+00 0.12441420878665D-15 + 1 34 3 27 -0.26829885043050D+00 0.38252009586682D-16 + 2 34 3 27 -0.32390006586088D+00 -0.10801482056543D-17 + 3 34 3 27 0.22540838907912D+00 -0.22859408275760D-16 + 1 35 3 27 -0.51494688043211D+00 -0.29254759584006D-16 + 2 35 3 27 0.48482976678670D+00 -0.68167525834771D-17 + 3 35 3 27 -0.43998710153765D+00 0.16362515144303D-16 + 1 36 3 27 0.28191177394063D+00 -0.45995955592915D-17 + 2 36 3 27 0.29319084621844D+00 -0.26625480979316D-16 + 3 36 3 27 0.12151128452325D+00 -0.11210447398282D-15 + 1 37 3 27 -0.37718079151061D+00 -0.47475051188481D-17 + 2 37 3 27 0.48351314694592D+00 0.27901171704351D-16 + 3 37 3 27 -0.51011838563335D+00 -0.72646376324067D-15 + 1 38 3 27 -0.13516280332069D+02 0.90517669285720D-16 + 2 38 3 27 0.14783799473417D+02 0.54453249765207D-16 + 3 38 3 27 -0.25987538274335D+02 0.68774371368050D-16 + 1 39 3 27 -0.25374530201724D+00 0.20198801599555D-16 + 2 39 3 27 0.29697315648479D+00 -0.91993175589748D-18 + 3 39 3 27 0.37222044862082D+00 0.12181962993168D-15 + 1 40 3 27 0.11878037928652D+00 0.85960794864160D-16 + 2 40 3 27 0.98733218058408D-01 0.30727684983238D-16 + 3 40 3 27 -0.40209081495169D-01 -0.51006443664463D-16 + 1 41 3 27 0.13679500992356D+01 0.84830809399127D-16 + 2 41 3 27 0.13599716217812D+01 -0.27938550074350D-16 + 3 41 3 27 0.30996653802460D+01 0.31638704776469D-16 + 1 42 3 27 -0.19607991922541D-01 -0.88702337683758D-16 + 2 42 3 27 0.45686340930222D-01 -0.90153667688775D-16 + 3 42 3 27 0.37900726108938D-02 0.21103456282032D-16 + 1 43 3 27 -0.11584240695734D+01 0.44835885544143D-16 + 2 43 3 27 0.11316458786832D+01 0.25204427079691D-16 + 3 43 3 27 0.30306915079876D+01 -0.27521087900889D-16 + 1 44 3 27 0.85795956644176D-01 0.27841010666188D-16 + 2 44 3 27 -0.92029099056184D-01 0.85141973484140D-16 + 3 44 3 27 -0.18398839271199D-01 -0.75748534353882D-17 + 1 45 3 27 0.12394348388543D+01 -0.98673951191243D-16 + 2 45 3 27 -0.12600447229703D+01 -0.13199485826177D-16 + 3 45 3 27 0.30332084301199D+01 -0.16085325189313D-16 + 1 46 3 27 -0.15578959509998D+00 0.10562702216888D-16 + 2 46 3 27 -0.10511726601206D+00 0.20632775741773D-16 + 3 46 3 27 -0.18463012523092D-01 0.28605549106483D-16 + 1 47 3 27 -0.16017402743485D+01 -0.93090522941407D-16 + 2 47 3 27 -0.14454054486640D+01 -0.18463309532554D-16 + 3 47 3 27 0.30580094079255D+01 -0.51502892653833D-16 + 1 48 3 27 -0.31288499790049D-02 0.19891545483858D-16 + 2 48 3 27 0.66675456039040D-02 0.22960131740440D-16 + 3 48 3 27 0.28901435639828D+00 -0.75140079433215D-16 + 1 49 3 27 0.48044606924574D+00 -0.37916173022849D-16 + 2 49 3 27 0.50232794404432D+00 0.14659558609970D-16 + 3 49 3 27 -0.79183951901711D+00 0.78210271090078D-16 + 1 50 3 27 0.65185720354859D+00 0.30083899159319D-16 + 2 50 3 27 0.50995383855732D+00 0.36207696421537D-16 + 3 50 3 27 -0.42401759444367D+00 0.63209258827594D-16 + 1 51 3 27 0.33034754534780D+00 0.23866406398995D-16 + 2 51 3 27 -0.28979766667512D+00 -0.13193500299625D-17 + 3 51 3 27 0.15344209870445D+00 -0.14624278053346D-15 + 1 52 3 27 0.47131622603680D+00 -0.66584762967479D-16 + 2 52 3 27 0.48020796007542D+00 0.65116271392950D-17 + 3 52 3 27 -0.42400915340019D+00 -0.16156079255445D-15 + 1 53 3 27 -0.32422969088818D+00 0.53277099456202D-16 + 2 53 3 27 0.26120958661627D+00 -0.66574794136924D-17 + 3 53 3 27 0.21055711069935D+00 0.76222504319236D-16 + 1 54 3 27 0.35721281861583D+00 0.78589269688128D-17 + 2 54 3 27 0.31355453777295D+00 -0.22793491001963D-16 + 3 54 3 27 0.56741504705852D+00 -0.43204109219374D-16 + 1 55 3 27 0.13940477087648D+02 0.12986913496255D-16 + 2 55 3 27 0.14890393670092D+02 -0.34077124920195D-17 + 3 55 3 27 -0.26651846455054D+02 -0.83037875715311D-16 + 1 56 3 27 -0.14976597231751D+00 -0.43633766601037D-17 + 2 56 3 27 -0.10726450908200D+00 -0.32093048799856D-16 + 3 56 3 27 -0.21107489075072D+00 -0.67905548491201D-16 + 1 57 3 27 0.88994994054172D-01 -0.14378541894994D-17 + 2 57 3 27 -0.99268420215568D-01 0.10295821892331D-16 + 3 57 3 27 -0.24768484707755D+00 0.45937493877419D-16 + 1 58 3 27 0.31270947786230D+01 -0.31104520283516D-18 + 2 58 3 27 -0.12396011896155D+01 -0.51489541306141D-17 + 3 58 3 27 -0.31543092489251D+01 -0.11358577170490D-15 + 1 59 3 27 -0.31599033686936D+01 0.54208708494543D-18 + 2 59 3 27 -0.12746428311669D+01 0.12039671785860D-16 + 3 59 3 27 -0.30437881571425D+01 0.33875389262332D-16 + 1 60 3 27 0.15007314540031D+00 0.21847210082212D-17 + 2 60 3 27 0.44033202187166D-01 0.27826335132170D-16 + 3 60 3 27 -0.23563032171867D+00 0.39919149944641D-15 + 1 61 3 27 -0.10249546607287D+00 -0.16318487613556D-17 + 2 61 3 27 0.12548940319258D+00 0.21544269915373D-16 + 3 61 3 27 -0.23295520329197D+00 -0.97320624253744D-16 + 1 62 3 27 -0.32345058521663D+01 -0.86292344352615D-17 + 2 62 3 27 0.10540879121051D+01 0.16905512684146D-16 + 3 62 3 27 -0.29219202594767D+01 0.24213661975179D-15 + 1 63 3 27 0.31716179054068D+01 0.14132761645565D-17 + 2 63 3 27 0.12419318315307D+01 -0.22993476165703D-16 + 3 63 3 27 -0.31777519768981D+01 -0.20347722205777D-15 + 1 64 3 27 -0.63373877723911D-02 0.30126838828605D-17 + 2 64 3 27 0.14978099351122D+00 0.74403202484957D-18 + 3 64 3 27 -0.14662854392060D+00 -0.19771671220952D-15 + 1 65 3 27 -0.40494821230926D-01 0.15574016532964D-16 + 2 65 3 27 -0.17330650968787D-01 0.45460414939444D-18 + 3 65 3 27 -0.14888633621139D-01 0.24413707859256D-15 + 1 1 1 28 0.45964836441718D+00 -0.26806964567474D-15 + 2 1 1 28 -0.30940070739702D+00 -0.30959639868009D-16 + 3 1 1 28 -0.30940070739702D+00 -0.15041804098888D-16 + 1 2 1 28 -0.37941196594313D+00 0.59045511801485D-16 + 2 2 1 28 -0.47241760155955D+00 0.34491658711394D-16 + 3 2 1 28 -0.39126828577219D+00 -0.17593942524959D-16 + 1 3 1 28 -0.37941196594301D+00 -0.13809545208639D-15 + 2 3 1 28 -0.39126828577215D+00 0.11263061071076D-16 + 3 3 1 28 -0.47241760155952D+00 0.24038281352439D-16 + 1 4 1 28 0.27094753380645D+00 -0.90169996236870D-16 + 2 4 1 28 -0.71745259578824D-02 -0.29307286467811D-16 + 3 4 1 28 -0.71745259578770D-02 0.63688598255629D-17 + 1 5 1 28 -0.30811084949261D+02 -0.11870935218546D-15 + 2 5 1 28 -0.14289485317980D+02 0.60784377874913D-16 + 3 5 1 28 -0.14289485317980D+02 -0.33580709796928D-16 + 1 6 1 28 0.25002441018993D+00 -0.80032179301475D-16 + 2 6 1 28 0.32656081583012D+00 0.14932906439133D-17 + 3 6 1 28 -0.27016392427600D+00 0.24988513672454D-16 + 1 7 1 28 0.25002441018996D+00 -0.15605359477000D-15 + 2 7 1 28 -0.27016392427597D+00 -0.97507659886740D-17 + 3 7 1 28 0.32656081583014D+00 0.26114726746888D-16 + 1 8 1 28 -0.68544091796875D+00 0.16768730064714D-15 + 2 8 1 28 -0.55083122718630D+00 0.11697366411677D-16 + 3 8 1 28 -0.55083122718628D+00 0.93636513654682D-16 + 1 9 1 28 -0.10863527376635D-01 0.34859089791367D-16 + 2 9 1 28 0.90909879638169D-01 0.14559193377434D-16 + 3 9 1 28 -0.62933397444488D-01 -0.47401403639176D-18 + 1 10 1 28 -0.51506713558861D-01 -0.26119067279552D-15 + 2 10 1 28 -0.14926596797347D+00 0.21507981680338D-16 + 3 10 1 28 -0.14926596797347D+00 0.21744041721160D-16 + 1 11 1 28 -0.29533772217705D-01 0.17968624922751D-15 + 2 11 1 28 0.89353214729586D-01 -0.35796514341997D-16 + 3 11 1 28 0.89353214729589D-01 0.33542670752344D-16 + 1 12 1 28 -0.10863527376658D-01 -0.24263790747107D-17 + 2 12 1 28 -0.62933397444485D-01 0.26262402269699D-16 + 3 12 1 28 0.90909879638161D-01 0.34400907537333D-16 + 1 13 1 28 0.31199813867581D+01 -0.31530844842640D-16 + 2 13 1 28 0.13607069780245D+01 0.20597822858564D-16 + 3 13 1 28 -0.13222195601823D+01 -0.20445491207660D-16 + 1 14 1 28 0.29502604004244D+01 0.17694264302732D-15 + 2 14 1 28 -0.12981116995013D+01 0.81825007449849D-17 + 3 14 1 28 -0.12981116995013D+01 -0.15517310793268D-16 + 1 15 1 28 0.31199813867579D+01 -0.29437152292622D-17 + 2 15 1 28 -0.13222195601823D+01 -0.16583680633311D-16 + 3 15 1 28 0.13607069780244D+01 -0.30748768822642D-16 + 1 16 1 28 -0.64234105542511D+00 -0.10296234829611D-15 + 2 16 1 28 0.31903292504870D+00 -0.14293608933942D-16 + 3 16 1 28 0.29992653005333D+00 0.36346510789832D-16 + 1 17 1 28 0.57016707799584D+00 0.53119305232881D-16 + 2 17 1 28 0.31466521596142D+00 0.16069897839639D-16 + 3 17 1 28 0.31466521596143D+00 0.26852075403957D-16 + 1 18 1 28 0.19865530001746D+00 0.21419053623704D-15 + 2 18 1 28 0.36826551461467D-01 -0.82215007641468D-17 + 3 18 1 28 0.36826551461464D-01 0.36151199097115D-16 + 1 19 1 28 -0.64234105542516D+00 0.69538002949982D-16 + 2 19 1 28 0.29992653005327D+00 0.24651184896070D-16 + 3 19 1 28 0.31903292504865D+00 0.99502342233388D-17 + 1 20 1 28 0.16030304388451D+00 -0.82818389047787D-16 + 2 20 1 28 -0.29804618665443D+00 0.74902030141556D-17 + 3 20 1 28 0.27943292278049D+00 -0.66836894345733D-17 + 1 21 1 28 -0.24102957627296D+02 -0.10222967993673D-15 + 2 21 1 28 0.13096970677307D+02 -0.13365855280395D-16 + 3 21 1 28 0.13096970677307D+02 0.14570704880380D-17 + 1 22 1 28 -0.72781243184309D+00 0.46923952083306D-16 + 2 22 1 28 0.38621584504252D-04 -0.22429879171613D-17 + 3 22 1 28 0.38621584510486D-04 0.21131611772751D-16 + 1 23 1 28 0.16030304388459D+00 0.24617168856324D-16 + 2 23 1 28 0.27943292278076D+00 -0.40107715118400D-17 + 3 23 1 28 -0.29804618665441D+00 0.35436057208894D-16 + 1 24 1 28 -0.33051870416498D+00 0.13879139347634D-16 + 2 24 1 28 0.39177330521729D-01 -0.15826797504966D-17 + 3 24 1 28 0.39177330521712D-01 -0.19968914444975D-18 + 1 25 1 28 -0.11363055334640D+00 0.65700017557623D-17 + 2 25 1 28 0.97176491307949D-01 0.14703822460299D-18 + 3 25 1 28 -0.61648165921748D-01 0.11394334653332D-18 + 1 26 1 28 -0.11363055334646D+00 -0.12337790897025D-17 + 2 26 1 28 -0.61648165921745D-01 -0.13373177324402D-18 + 3 26 1 28 0.97176491307935D-01 0.18572694521886D-18 + 1 27 1 28 -0.81366906740252D-01 -0.39031180981441D-17 + 2 27 1 28 -0.28304415116108D-02 -0.14414944045262D-17 + 3 27 1 28 -0.28304415116050D-02 0.14283992028209D-17 + 1 28 1 28 0.12009064483836D+03 0.00000000000000D+00 + 2 28 1 28 0.23741259052649D+01 0.00000000000000D+00 + 3 28 1 28 0.23741259052654D+01 0.00000000000000D+00 + 1 29 1 28 -0.19295300699171D+00 0.11753549555787D-18 + 2 29 1 28 -0.33085999166557D-01 0.14678271295316D-17 + 3 29 1 28 0.41585062465267D-01 0.15201953159703D-17 + 1 30 1 28 -0.19295300699173D+00 -0.76799755154972D-18 + 2 30 1 28 0.41585062465267D-01 0.15746782885418D-17 + 3 30 1 28 -0.33085999166557D-01 -0.33429813755630D-18 + 1 31 1 28 0.13892195032365D+01 -0.21691572411780D-17 + 2 31 1 28 -0.69185119581400D-01 0.11358369724469D-18 + 3 31 1 28 -0.69185119581400D-01 -0.50244748681782D-18 + 1 32 1 28 0.39765551661822D+00 0.86269362376912D-17 + 2 32 1 28 -0.29725170472751D+00 -0.71887530114040D-17 + 3 32 1 28 -0.51165184777622D+00 -0.58589124855121D-16 + 1 33 1 28 -0.25328120975725D+02 -0.10167193681776D-15 + 2 33 1 28 0.13217865722022D+02 0.40805909654314D-17 + 3 33 1 28 -0.13571489657003D+02 -0.67888486687569D-17 + 1 34 1 28 -0.79080780410653D+00 -0.50259817014924D-17 + 2 34 1 28 0.49802215951677D+00 0.17717690142193D-16 + 3 34 1 28 -0.50890489309557D+00 0.27968368039463D-17 + 1 35 1 28 0.25011915021960D+00 0.35150965643857D-15 + 2 35 1 28 0.30473593415088D+00 0.37460065217312D-16 + 3 35 1 28 0.34036146741610D+00 -0.24639761389039D-16 + 1 36 1 28 -0.23492183623366D+00 -0.45193190594164D-16 + 2 36 1 28 0.17379260137787D+00 0.13207043751859D-17 + 3 36 1 28 -0.42797690548088D+00 -0.74665037125370D-16 + 1 37 1 28 0.44208024797639D+00 0.89631535282405D-16 + 2 37 1 28 0.30252389954018D+00 -0.30525840880740D-16 + 3 37 1 28 -0.30221072566819D+00 0.21236888730713D-16 + 1 38 1 28 0.25051017034733D+00 0.94459010974361D-17 + 2 38 1 28 0.19633221284497D-01 0.31472648748765D-16 + 3 38 1 28 0.53470638894186D-01 0.16013963639424D-16 + 1 39 1 28 -0.33895793998524D+00 0.18278190987909D-15 + 2 39 1 28 0.46633448469613D+00 0.28007941457444D-16 + 3 39 1 28 -0.47850355038475D+00 -0.33447777108118D-16 + 1 40 1 28 -0.31707252962002D+01 0.23797015564976D-15 + 2 40 1 28 -0.31091888531854D+01 -0.13350783115882D-17 + 3 40 1 28 0.12344925828659D+01 -0.96863285532250D-16 + 1 41 1 28 -0.23944541779591D+00 0.22463840914782D-15 + 2 41 1 28 0.11482546015925D+00 -0.13459925999463D-17 + 3 41 1 28 0.80210145194051D-01 0.79946637950779D-16 + 1 42 1 28 -0.31127751678940D+01 0.17207357537903D-15 + 2 42 1 28 0.32191059477274D+01 0.48516161247586D-17 + 3 42 1 28 -0.14529028836111D+01 -0.19555602528706D-16 + 1 43 1 28 -0.11821621565578D+00 0.50955625207215D-16 + 2 43 1 28 -0.13987575062728D+00 0.14184758615783D-17 + 3 43 1 28 -0.72227401361730D-01 -0.19137080604000D-16 + 1 44 1 28 -0.30043583412530D+01 0.31474455204509D-16 + 2 44 1 28 0.31738889652452D+01 -0.12336990395832D-17 + 3 44 1 28 0.13652157069082D+01 0.57361107499814D-16 + 1 45 1 28 -0.22652366868191D+00 0.18132591988206D-15 + 2 45 1 28 -0.11753736046785D+00 -0.80825112223692D-18 + 3 45 1 28 0.10238686586998D+00 0.26209477550308D-16 + 1 46 1 28 -0.28051599479846D+01 0.28553479541148D-15 + 2 46 1 28 -0.26899078430667D+01 0.17004918813828D-17 + 3 46 1 28 -0.11176717924403D+01 -0.31808127013858D-16 + 1 47 1 28 -0.22012489406827D+00 0.32054018625484D-15 + 2 47 1 28 -0.41272559615122D-01 -0.12084791492948D-17 + 3 47 1 28 -0.14109272489711D+00 -0.58798719801549D-16 + 1 48 1 28 -0.25328120975725D+02 -0.99806648856498D-16 + 2 48 1 28 -0.13571489657005D+02 -0.16680099668811D-16 + 3 48 1 28 0.13217865722021D+02 -0.19757778323404D-16 + 1 49 1 28 0.25011915021962D+00 -0.16947485645547D-15 + 2 49 1 28 0.34036146741602D+00 0.24861114161249D-16 + 3 49 1 28 0.30473593415093D+00 -0.36474261736706D-16 + 1 50 1 28 0.39765551661824D+00 -0.12661853011689D-15 + 2 50 1 28 -0.51165184777610D+00 -0.41571883039937D-16 + 3 50 1 28 -0.29725170472748D+00 -0.26684894409029D-16 + 1 51 1 28 -0.79080780410649D+00 0.13337514943781D-15 + 2 51 1 28 -0.50890489309559D+00 -0.19515750622805D-17 + 3 51 1 28 0.49802215951677D+00 -0.49062604215320D-16 + 1 52 1 28 0.44208024797586D+00 -0.10091626075040D-16 + 2 52 1 28 -0.30221072566820D+00 0.22599533799145D-16 + 3 52 1 28 0.30252389954022D+00 0.43046210525278D-16 + 1 53 1 28 -0.33895793998500D+00 -0.23605113477511D-15 + 2 53 1 28 -0.47850355038478D+00 -0.20539357103273D-16 + 3 53 1 28 0.46633448469616D+00 0.17031252915255D-16 + 1 54 1 28 -0.23492183623368D+00 -0.54827225858126D-16 + 2 54 1 28 -0.42797690548081D+00 -0.27557933453534D-16 + 3 54 1 28 0.17379260137787D+00 -0.10400491607438D-17 + 1 55 1 28 0.25051017034733D+00 -0.10229862375205D-15 + 2 55 1 28 0.53470638894167D-01 0.40028520618365D-16 + 3 55 1 28 0.19633221284503D-01 0.19515684713856D-18 + 1 56 1 28 -0.31127751678940D+01 -0.32933423322285D-16 + 2 56 1 28 -0.14529028836111D+01 -0.97896184568060D-16 + 3 56 1 28 0.32191059477274D+01 -0.13053621514024D-18 + 1 57 1 28 -0.31707252962002D+01 0.85946607026461D-16 + 2 57 1 28 0.12344925828659D+01 -0.26601433289908D-16 + 3 57 1 28 -0.31091888531854D+01 0.21165779133078D-17 + 1 58 1 28 -0.11821621565578D+00 -0.29864062532746D-15 + 2 58 1 28 -0.72227401361727D-01 0.32597848579615D-16 + 3 58 1 28 -0.13987575062728D+00 0.31418940194315D-17 + 1 59 1 28 -0.23944541779591D+00 -0.46678348448505D-17 + 2 59 1 28 0.80210145194051D-01 -0.39541749205640D-17 + 3 59 1 28 0.11482546015925D+00 -0.99141593717471D-18 + 1 60 1 28 -0.28051599479846D+01 -0.98750057459159D-16 + 2 60 1 28 -0.11176717924403D+01 0.15263414035013D-16 + 3 60 1 28 -0.26899078430667D+01 0.46727910546042D-17 + 1 61 1 28 -0.30043583412530D+01 -0.17626616299138D-15 + 2 61 1 28 0.13652157069082D+01 -0.44573937188578D-16 + 3 61 1 28 0.31738889652452D+01 0.73315337511293D-18 + 1 62 1 28 -0.22012489406827D+00 -0.17680389172674D-15 + 2 62 1 28 -0.14109272489711D+00 0.57780528130339D-16 + 3 62 1 28 -0.41272559615122D-01 0.28858942733094D-19 + 1 63 1 28 -0.22652366868191D+00 0.12601522931315D-16 + 2 63 1 28 0.10238686586998D+00 0.66662288028512D-19 + 3 63 1 28 -0.11753736046785D+00 -0.20980557739714D-17 + 1 64 1 28 0.25051001250167D+01 -0.11934414168462D-15 + 2 64 1 28 0.15052401949793D+01 -0.61165524850453D-17 + 3 64 1 28 0.15052401949793D+01 -0.68888360215850D-18 + 1 65 1 28 0.21907249102925D+00 0.12095221934863D-16 + 2 65 1 28 -0.39691749310802D+00 0.36911621032074D-17 + 3 65 1 28 -0.39668473956291D+00 -0.29359951299568D-16 + 1 1 2 28 -0.43748335270102D+00 -0.30959639868009D-16 + 2 1 2 28 0.16566364622927D+00 0.39315366782131D-16 + 3 1 2 28 0.30593004354810D+00 -0.29065662757005D-16 + 1 2 2 28 -0.44374494864420D+00 0.34491658711394D-16 + 2 2 2 28 -0.71530023363884D+00 0.14376828548531D-15 + 3 2 2 28 -0.44826197649394D+00 0.88989834851143D-17 + 1 3 2 28 -0.32676665815979D+00 0.11263061071076D-16 + 2 3 2 28 -0.55512387936140D+00 0.49266491812473D-16 + 3 3 2 28 -0.44706759951066D+00 -0.62353167263043D-17 + 1 4 2 28 -0.26937884890203D-01 -0.29307286467811D-16 + 2 4 2 28 0.24073277920517D+00 0.94475295418743D-16 + 3 4 2 28 -0.26434993805051D-01 -0.38533190849278D-16 + 1 5 2 28 -0.14985549786739D+02 0.60784377874913D-16 + 2 5 2 28 -0.21376754587858D+02 -0.32625837510180D-15 + 3 5 2 28 -0.10252583096720D+02 0.32240561538873D-16 + 1 6 2 28 0.29589742680319D+00 0.14932906439133D-17 + 2 6 2 28 0.18674912064643D+00 0.63181446436468D-16 + 3 6 2 28 -0.32161347997773D+00 0.12660532763938D-16 + 1 7 2 28 -0.35525035041940D+00 -0.97507659886740D-17 + 2 7 2 28 0.42103726169302D+00 0.40381427595192D-15 + 3 7 2 28 -0.32723300791452D+00 -0.86976250666006D-17 + 1 8 2 28 -0.48684142294518D+00 0.11697366411677D-16 + 2 8 2 28 -0.28805146597436D+00 -0.15934694651438D-15 + 3 8 2 28 -0.33277610511116D+00 -0.72497668857190D-17 + 1 9 2 28 -0.91806944844040D-01 0.14559193377434D-16 + 2 9 2 28 -0.23173472146340D+00 0.13843041248134D-15 + 3 9 2 28 -0.10486334114901D-01 0.10744295802394D-17 + 1 10 2 28 0.90506975035535D-01 0.21507981680338D-16 + 2 10 2 28 -0.24767196385392D+00 -0.28384111431338D-15 + 3 10 2 28 0.95754861717257D-01 -0.77313048711357D-18 + 1 11 2 28 -0.65345278829125D-01 -0.35796514341997D-16 + 2 11 2 28 -0.20631945270958D+00 -0.36453486328459D-16 + 3 11 2 28 0.13154524935705D+00 0.12439141685129D-18 + 1 12 2 28 0.12009469417863D+00 0.26262402269699D-16 + 2 12 2 28 -0.17372529719519D+00 -0.96598902906833D-17 + 3 12 2 28 -0.89360005662856D-01 -0.21883511903121D-17 + 1 13 2 28 -0.12387195275551D+01 0.20597822858564D-16 + 2 13 2 28 -0.30867247988156D+01 0.11213821931162D-15 + 3 13 2 28 0.31474940004415D+01 0.17412601538428D-17 + 1 14 2 28 0.12494926559190D+01 0.81825007449849D-17 + 2 14 2 28 -0.30962069657937D+01 0.82840819573117D-16 + 3 14 2 28 -0.32218343870408D+01 -0.14677488624393D-18 + 1 15 2 28 0.13075677232505D+01 -0.16583680633311D-16 + 2 15 2 28 -0.30373776208386D+01 -0.20521846756163D-15 + 3 15 2 28 0.32608007377771D+01 0.42828661081312D-17 + 1 16 2 28 0.38978028340426D+00 -0.14293608933942D-16 + 2 16 2 28 -0.87452191548158D+00 0.36580024461088D-17 + 3 16 2 28 -0.34588094598481D+00 -0.14673355846230D-16 + 1 17 2 28 0.28159265728973D+00 0.16069897839639D-16 + 2 17 2 28 0.27473289303675D+00 -0.33247788473153D-15 + 3 17 2 28 0.32049253750884D+00 0.16120353544089D-16 + 1 18 2 28 0.61658131533779D-01 -0.82215007641468D-17 + 2 18 2 28 0.14046373274300D+00 0.90008878992855D-16 + 3 18 2 28 -0.19180688496912D-02 0.29557792011667D-16 + 1 19 2 28 0.42614734542216D+00 0.24651184896070D-16 + 2 19 2 28 -0.38401237108067D+00 0.72179201029813D-16 + 3 19 2 28 -0.57215740886046D+00 0.12327839376105D-16 + 1 20 2 28 -0.30651034623013D+00 0.74902030141556D-17 + 2 20 2 28 0.27170792927837D+00 -0.85132144243396D-16 + 3 20 2 28 -0.21879589379041D+00 -0.27712183935749D-16 + 1 21 2 28 0.13010403468366D+02 -0.13365855280395D-16 + 2 21 2 28 -0.25611518728893D+02 0.65192041697025D-16 + 3 21 2 28 -0.13619025127797D+02 0.31068640864478D-16 + 1 22 2 28 0.43370263089718D+00 -0.22429879171613D-17 + 2 22 2 28 -0.53328893963902D+00 0.11472872121830D-15 + 3 22 2 28 0.74230068669528D+00 -0.31849695176414D-16 + 1 23 2 28 0.20850740465840D+00 -0.40107715118400D-17 + 2 23 2 28 0.37272648315902D+00 0.39480216191926D-16 + 3 23 2 28 -0.15134694933495D+00 -0.31111396907439D-16 + 1 24 2 28 -0.33123829684837D-01 -0.15826797504966D-17 + 2 24 2 28 -0.20614097171013D+00 -0.63463197974905D-17 + 3 24 2 28 -0.18011905544853D-01 -0.11526764152464D-17 + 1 25 2 28 -0.43730085584252D-01 0.14703822460299D-18 + 2 25 2 28 0.14807017428239D+01 -0.23516684021604D-17 + 3 25 2 28 0.78781441904662D-01 -0.74217266058859D-18 + 1 26 2 28 -0.39146425986253D-01 -0.13373177324402D-18 + 2 26 2 28 -0.13489545726293D+00 0.39071938753509D-17 + 3 26 2 28 -0.47888314173912D-01 0.24103155010248D-17 + 1 27 2 28 -0.11505165038771D-01 -0.14414944045262D-17 + 2 27 2 28 -0.10202224431551D+00 -0.55625487006598D-18 + 3 27 2 28 0.13248484477354D-01 0.34223475077388D-18 + 1 28 2 28 0.23741259052649D+01 0.00000000000000D+00 + 2 28 2 28 0.11372291001901D+03 0.00000000000000D+00 + 3 28 2 28 -0.52803207923287D+01 0.00000000000000D+00 + 1 29 2 28 0.33085999166557D-01 0.14678271295316D-17 + 2 29 2 28 -0.19741155862825D+00 0.15004614915118D-17 + 3 29 2 28 -0.57289620687334D-01 0.15491962660178D-18 + 1 30 2 28 0.41585062465267D-01 0.15746782885418D-17 + 2 30 2 28 -0.35836015653875D+00 -0.82963373778058D-17 + 3 30 2 28 0.57655064743414D-01 0.99041231122655D-18 + 1 31 2 28 0.69185119581400D-01 0.11358369724469D-18 + 2 31 2 28 -0.41330471023633D-01 0.30111389125181D-17 + 3 31 2 28 -0.65998366997623D-01 0.11673914814081D-17 + 1 32 2 28 -0.15147754531560D+00 -0.71887530114040D-17 + 2 32 2 28 0.74085425446378D+00 0.99620237763851D-17 + 3 32 2 28 0.54811388730226D+00 0.34137657053535D-16 + 1 33 2 28 0.13149198839103D+02 0.40805909654314D-17 + 2 33 2 28 -0.25515961030837D+02 0.33549655611396D-15 + 3 33 2 28 0.13622835122802D+02 0.29935803696412D-16 + 1 34 2 28 0.53313172251161D+00 0.17717690142193D-16 + 2 34 2 28 -0.45776171415236D+00 -0.15377693829334D-15 + 3 34 2 28 0.55121297710036D+00 -0.28199071245731D-17 + 1 35 2 28 0.34701892963441D+00 0.37460065217312D-16 + 2 35 2 28 0.46633976140989D+00 0.11402592682377D-15 + 3 35 2 28 0.27197998488544D+00 0.48992112623570D-17 + 1 36 2 28 0.36290693780693D+00 0.13207043751859D-17 + 2 36 2 28 -0.62389862780351D+00 -0.36712575243832D-16 + 3 36 2 28 0.47410951315899D+00 -0.92952677130089D-18 + 1 37 2 28 0.38566323318888D+00 -0.30525840880740D-16 + 2 37 2 28 0.18304592510120D+00 0.89739356247927D-16 + 3 37 2 28 -0.44990739332757D+00 0.71650574125356D-17 + 1 38 2 28 -0.23561371178645D-01 0.31472648748765D-16 + 2 38 2 28 0.22596097662279D+00 0.94817446137441D-17 + 3 38 2 28 0.38181601510457D-01 0.37116734141792D-17 + 1 39 2 28 0.44099543805919D+00 0.28007941457444D-16 + 2 39 2 28 -0.39782518419851D+00 -0.11044110862388D-15 + 3 39 2 28 0.47539775607859D+00 -0.33385752604344D-16 + 1 40 2 28 -0.31016132636269D+01 -0.13350783115882D-17 + 2 40 2 28 -0.30139916482755D+01 -0.22447200439600D-16 + 3 40 2 28 0.11343705741542D+01 0.11466996894814D-16 + 1 41 2 28 0.81668301919142D-01 -0.13459925999463D-17 + 2 41 2 28 -0.21310322738958D+00 -0.35806271326637D-16 + 3 41 2 28 0.73875759257911D-01 -0.44017459249709D-16 + 1 42 2 28 0.31321845540438D+01 0.48516161247586D-17 + 2 42 2 28 -0.30730874511020D+01 -0.81989998749827D-16 + 3 42 2 28 0.12261362992760D+01 0.10816982101688D-15 + 1 43 2 28 -0.24928118504911D+00 0.14184758615783D-17 + 2 43 2 28 -0.26127655378421D+00 -0.28875449557620D-15 + 3 43 2 28 0.20147194587619D+00 -0.91126715982640D-17 + 1 44 2 28 0.31155961361121D+01 -0.12336990395832D-17 + 2 44 2 28 -0.30423786554362D+01 0.19176818706286D-15 + 3 44 2 28 -0.14276448489624D+01 0.54111095955384D-16 + 1 45 2 28 -0.93447115162302D-01 -0.80825112223692D-18 + 2 45 2 28 -0.23208147027117D+00 0.11297985562661D-15 + 3 45 2 28 -0.12466780722943D+00 -0.71662629746019D-16 + 1 46 2 28 -0.32779236897385D+01 0.17004918813828D-17 + 2 46 2 28 -0.30775016116620D+01 -0.63008235020990D-16 + 3 46 2 28 -0.95452131471841D+00 -0.74308166872916D-16 + 1 47 2 28 0.82223371077731D-01 -0.12084791492948D-17 + 2 47 2 28 0.81916361108248D-01 -0.19572457842834D-15 + 3 47 2 28 -0.12818383142601D+00 -0.39318553497902D-17 + 1 48 2 28 -0.13400572938525D+02 -0.16680099668811D-16 + 2 48 2 28 -0.25398477425812D+02 -0.15898271143123D-16 + 3 48 2 28 0.13522654321831D+02 0.32079045545493D-16 + 1 49 2 28 0.29670673634117D+00 0.24861114161249D-16 + 2 49 2 28 0.19148274089982D+00 0.17433849861046D-15 + 3 49 2 28 0.32560982930180D+00 0.77239945764358D-17 + 1 50 2 28 -0.17009621215182D+00 -0.41571883039937D-16 + 2 50 2 28 -0.34388639654923D+00 -0.18627738259195D-16 + 3 50 2 28 -0.17634066358116D+00 -0.35850730095370D-17 + 1 51 2 28 -0.53886715642620D+00 -0.19515750622805D-17 + 2 51 2 28 -0.40136127322327D+00 -0.17796594893380D-15 + 3 51 2 28 0.49454898553087D+00 -0.70934110725607D-18 + 1 52 2 28 -0.41383561013825D+00 0.22599533799145D-16 + 2 52 2 28 0.40863253993531D+00 -0.89370586263972D-16 + 3 52 2 28 -0.28358065322038D+00 0.65379667072249D-17 + 1 53 2 28 -0.46860018244849D+00 -0.20539357103273D-16 + 2 53 2 28 -0.73242711028473D+00 0.58813749224963D-16 + 3 53 2 28 0.43357222992647D+00 0.79809976868492D-17 + 1 54 2 28 -0.52606372110212D+00 -0.27557933453534D-16 + 2 54 2 28 -0.41444205618785D+00 -0.70017010194492D-16 + 3 54 2 28 0.52852461919547D+00 0.10762032211538D-16 + 1 55 2 28 0.11479705400310D+00 0.40028520618365D-16 + 2 55 2 28 0.20857800944944D+00 0.63146746343021D-16 + 3 55 2 28 0.13890585649113D+00 0.39526019585249D-16 + 1 56 2 28 0.12076686035773D+01 -0.97896184568060D-16 + 2 56 2 28 0.32532103886273D+01 -0.80811079469540D-16 + 3 56 2 28 -0.13634437152049D+01 -0.77554122108512D-17 + 1 57 2 28 -0.12864439244776D+01 -0.26601433289908D-16 + 2 57 2 28 0.30446783493883D+01 -0.83916466628603D-16 + 3 57 2 28 -0.13756832393009D+01 0.25147136661995D-16 + 1 58 2 28 0.11779011964277D+00 0.32597848579615D-16 + 2 58 2 28 -0.19873251756067D+00 0.53466212222501D-16 + 3 58 2 28 0.46826809137950D-01 -0.13950626175530D-16 + 1 59 2 28 -0.12681713296579D+00 -0.39541749205640D-17 + 2 59 2 28 -0.17411223374568D-01 0.22650906456216D-15 + 3 59 2 28 -0.11344991498160D+00 0.34406138052595D-16 + 1 60 2 28 0.20031063282269D+01 0.15263414035013D-16 + 2 60 2 28 0.26328894094708D+01 0.16548982333159D-16 + 3 60 2 28 0.11485207674171D+01 0.30264669940509D-17 + 1 61 2 28 -0.12210961823145D+01 -0.44573937188578D-16 + 2 61 2 28 0.30610124002741D+01 0.20782844311867D-16 + 3 61 2 28 0.12571940962572D+01 -0.64806315314907D-17 + 1 62 2 28 -0.10226835393024D+00 0.57780528130339D-16 + 2 62 2 28 -0.10484951280542D+00 -0.49267408927395D-16 + 3 62 2 28 0.15534832070322D+00 0.10184422972746D-16 + 1 63 2 28 -0.73751630300905D-01 0.66662288028512D-19 + 2 63 2 28 -0.52495826598255D-01 0.72285870915726D-16 + 3 63 2 28 0.85666039169639D-01 -0.19310852394243D-16 + 1 64 2 28 -0.15113141234999D+01 -0.61165524850453D-17 + 2 64 2 28 -0.31351541603740D+01 0.34711138873284D-15 + 3 64 2 28 -0.26673731561748D+01 -0.33759071718113D-17 + 1 65 2 28 -0.14072182679562D+00 0.36911621032074D-17 + 2 65 2 28 0.44240434384644D-01 -0.19948483842419D-16 + 3 65 2 28 -0.35137503702205D-01 0.58463367875041D-18 + 1 1 3 28 -0.43748335270101D+00 -0.15041804098888D-16 + 2 1 3 28 0.30593004354810D+00 -0.29065662757005D-16 + 3 1 3 28 0.16566364622927D+00 0.95487785222350D-16 + 1 2 3 28 -0.32676665815979D+00 -0.17593942524959D-16 + 2 2 3 28 -0.44706759951065D+00 0.88989834851143D-17 + 3 2 3 28 -0.55512387936140D+00 -0.12330938141979D-15 + 1 3 3 28 -0.44374494864420D+00 0.24038281352439D-16 + 2 3 3 28 -0.44826197649394D+00 -0.62353167263043D-17 + 3 3 3 28 -0.71530023363884D+00 -0.10419922446654D-15 + 1 4 3 28 -0.26937884890204D-01 0.63688598255629D-17 + 2 4 3 28 -0.26434993805051D-01 -0.38533190849278D-16 + 3 4 3 28 0.24073277920517D+00 -0.84205619984262D-16 + 1 5 3 28 -0.14985549786739D+02 -0.33580709796928D-16 + 2 5 3 28 -0.10252583096720D+02 0.32240561538873D-16 + 3 5 3 28 -0.21376754587858D+02 -0.95901879723101D-16 + 1 6 3 28 -0.35525035041941D+00 0.24988513672454D-16 + 2 6 3 28 -0.32723300791451D+00 0.12660532763938D-16 + 3 6 3 28 0.42103726169303D+00 0.88834126737756D-16 + 1 7 3 28 0.29589742680319D+00 0.26114726746888D-16 + 2 7 3 28 -0.32161347997774D+00 -0.86976250666006D-17 + 3 7 3 28 0.18674912064643D+00 -0.11325868556784D-15 + 1 8 3 28 -0.48684142294518D+00 0.93636513654682D-16 + 2 8 3 28 -0.33277610511116D+00 -0.72497668857190D-17 + 3 8 3 28 -0.28805146597436D+00 -0.84097180212331D-17 + 1 9 3 28 0.12009469417863D+00 -0.47401403639176D-18 + 2 9 3 28 -0.89360005662856D-01 0.10744295802394D-17 + 3 9 3 28 -0.17372529719519D+00 -0.16536512386979D-15 + 1 10 3 28 0.90506975035534D-01 0.21744041721160D-16 + 2 10 3 28 0.95754861717257D-01 -0.77313048711357D-18 + 3 10 3 28 -0.24767196385392D+00 -0.92776051562343D-16 + 1 11 3 28 -0.65345278829125D-01 0.33542670752344D-16 + 2 11 3 28 0.13154524935705D+00 0.12439141685129D-18 + 3 11 3 28 -0.20631945270958D+00 -0.85765798468561D-17 + 1 12 3 28 -0.91806944844045D-01 0.34400907537333D-16 + 2 12 3 28 -0.10486334114901D-01 -0.21883511903121D-17 + 3 12 3 28 -0.23173472146341D+00 -0.28669143734430D-15 + 1 13 3 28 0.13075677232505D+01 -0.20445491207660D-16 + 2 13 3 28 0.32608007377771D+01 0.17412601538428D-17 + 3 13 3 28 -0.30373776208385D+01 -0.17723893392215D-15 + 1 14 3 28 0.12494926559190D+01 -0.15517310793268D-16 + 2 14 3 28 -0.32218343870408D+01 -0.14677488624393D-18 + 3 14 3 28 -0.30962069657936D+01 -0.24411724884680D-15 + 1 15 3 28 -0.12387195275551D+01 -0.30748768822642D-16 + 2 15 3 28 0.31474940004414D+01 0.42828661081312D-17 + 3 15 3 28 -0.30867247988156D+01 0.32651661660063D-15 + 1 16 3 28 0.42614734542216D+00 0.36346510789832D-16 + 2 16 3 28 -0.57215740886046D+00 -0.14673355846230D-16 + 3 16 3 28 -0.38401237108067D+00 0.17311098498070D-15 + 1 17 3 28 0.28159265728973D+00 0.26852075403957D-16 + 2 17 3 28 0.32049253750884D+00 0.16120353544089D-16 + 3 17 3 28 0.27473289303675D+00 -0.28487228973296D-15 + 1 18 3 28 0.61658131533780D-01 0.36151199097115D-16 + 2 18 3 28 -0.19180688496912D-02 0.29557792011667D-16 + 3 18 3 28 0.14046373274300D+00 -0.53958960440964D-16 + 1 19 3 28 0.38978028340426D+00 0.99502342233388D-17 + 2 19 3 28 -0.34588094598482D+00 0.12327839376105D-16 + 3 19 3 28 -0.87452191548157D+00 -0.14607965827810D-15 + 1 20 3 28 0.20850740465840D+00 -0.66836894345733D-17 + 2 20 3 28 -0.15134694933494D+00 -0.27712183935749D-16 + 3 20 3 28 0.37272648315906D+00 0.28150631362047D-15 + 1 21 3 28 0.13010403468366D+02 0.14570704880380D-17 + 2 21 3 28 -0.13619025127797D+02 0.31068640864478D-16 + 3 21 3 28 -0.25611518728893D+02 0.22491427982791D-16 + 1 22 3 28 0.43370263089718D+00 0.21131611772751D-16 + 2 22 3 28 0.74230068669528D+00 -0.31849695176414D-16 + 3 22 3 28 -0.53328893963902D+00 0.61890594398257D-16 + 1 23 3 28 -0.30651034623013D+00 0.35436057208894D-16 + 2 23 3 28 -0.21879589379042D+00 -0.31111396907439D-16 + 3 23 3 28 0.27170792927838D+00 -0.72837671977346D-16 + 1 24 3 28 -0.33123829684837D-01 -0.19968914444975D-18 + 2 24 3 28 -0.18011905544853D-01 -0.11526764152464D-17 + 3 24 3 28 -0.20614097171014D+00 -0.81574393366718D-17 + 1 25 3 28 -0.39146425986253D-01 0.11394334653332D-18 + 2 25 3 28 -0.47888314173912D-01 -0.74217266058859D-18 + 3 25 3 28 -0.13489545726293D+00 -0.53922411737896D-18 + 1 26 3 28 -0.43730085584253D-01 0.18572694521886D-18 + 2 26 3 28 0.78781441904663D-01 0.24103155010248D-17 + 3 26 3 28 0.14807017428239D+01 0.54118910351161D-18 + 1 27 3 28 -0.11505165038770D-01 0.14283992028209D-17 + 2 27 3 28 0.13248484477354D-01 0.34223475077388D-18 + 3 27 3 28 -0.10202224431551D+00 -0.15731055964093D-17 + 1 28 3 28 0.23741259052654D+01 0.00000000000000D+00 + 2 28 3 28 -0.52803207923287D+01 0.00000000000000D+00 + 3 28 3 28 0.11372291001901D+03 0.00000000000000D+00 + 1 29 3 28 0.41585062465267D-01 0.15201953159703D-17 + 2 29 3 28 0.57289620687334D-01 0.15491962660178D-18 + 3 29 3 28 -0.35836015653877D+00 -0.47250146674167D-17 + 1 30 3 28 0.33085999166557D-01 -0.33429813755630D-18 + 2 30 3 28 -0.57655064743414D-01 0.99041231122655D-18 + 3 30 3 28 -0.19741155862826D+00 -0.12108354306535D-17 + 1 31 3 28 0.69185119581400D-01 -0.50244748681782D-18 + 2 31 3 28 -0.65998366997623D-01 0.11673914814081D-17 + 3 31 3 28 -0.41330471023640D-01 0.41735591680443D-17 + 1 32 3 28 -0.17009621215182D+00 -0.58589124855121D-16 + 2 32 3 28 -0.17634066358116D+00 0.34137657053535D-16 + 3 32 3 28 -0.34388639654923D+00 0.47166586074674D-15 + 1 33 3 28 -0.13400572938525D+02 -0.67888486687569D-17 + 2 33 3 28 0.13522654321832D+02 0.29935803696412D-16 + 3 33 3 28 -0.25398477425812D+02 -0.37587106433701D-16 + 1 34 3 28 -0.53886715642619D+00 0.27968368039463D-17 + 2 34 3 28 0.49454898553087D+00 -0.28199071245731D-17 + 3 34 3 28 -0.40136127322327D+00 0.71755820437897D-16 + 1 35 3 28 0.29670673634117D+00 -0.24639761389039D-16 + 2 35 3 28 0.32560982930181D+00 0.48992112623570D-17 + 3 35 3 28 0.19148274089982D+00 -0.21001799822226D-15 + 1 36 3 28 -0.52606372110212D+00 -0.74665037125370D-16 + 2 36 3 28 0.52852461919547D+00 -0.92952677130089D-18 + 3 36 3 28 -0.41444205618786D+00 -0.63404092293808D-16 + 1 37 3 28 -0.41383561013825D+00 0.21236888730713D-16 + 2 37 3 28 -0.28358065322038D+00 0.71650574125356D-17 + 3 37 3 28 0.40863253993531D+00 -0.40365392485384D-16 + 1 38 3 28 0.11479705400310D+00 0.16013963639424D-16 + 2 38 3 28 0.13890585649113D+00 0.37116734141792D-17 + 3 38 3 28 0.20857800944944D+00 0.12842717982223D-16 + 1 39 3 28 -0.46860018244849D+00 -0.33447777108118D-16 + 2 39 3 28 0.43357222992647D+00 -0.33385752604344D-16 + 3 39 3 28 -0.73242711028474D+00 0.42644541630795D-16 + 1 40 3 28 -0.12864439244776D+01 -0.96863285532250D-16 + 2 40 3 28 -0.13756832393009D+01 0.11466996894814D-16 + 3 40 3 28 0.30446783493883D+01 -0.99863783461210D-16 + 1 41 3 28 -0.12681713296579D+00 0.79946637950779D-16 + 2 41 3 28 -0.11344991498160D+00 -0.44017459249709D-16 + 3 41 3 28 -0.17411223374566D-01 0.24936594775184D-16 + 1 42 3 28 0.12076686035773D+01 -0.19555602528706D-16 + 2 42 3 28 -0.13634437152049D+01 0.10816982101688D-15 + 3 42 3 28 0.32532103886273D+01 -0.20414048602936D-16 + 1 43 3 28 0.11779011964277D+00 -0.19137080604000D-16 + 2 43 3 28 0.46826809137953D-01 -0.91126715982640D-17 + 3 43 3 28 -0.19873251756066D+00 0.26984063413856D-16 + 1 44 3 28 -0.12210961823145D+01 0.57361107499814D-16 + 2 44 3 28 0.12571940962572D+01 0.54111095955384D-16 + 3 44 3 28 0.30610124002741D+01 0.14017490386369D-16 + 1 45 3 28 -0.73751630300905D-01 0.26209477550308D-16 + 2 45 3 28 0.85666039169641D-01 -0.71662629746019D-16 + 3 45 3 28 -0.52495826598255D-01 -0.74865504867036D-17 + 1 46 3 28 0.20031063282269D+01 -0.31808127013858D-16 + 2 46 3 28 0.11485207674171D+01 -0.74308166872916D-16 + 3 46 3 28 0.26328894094708D+01 0.17684627142870D-16 + 1 47 3 28 -0.10226835393024D+00 -0.58798719801549D-16 + 2 47 3 28 0.15534832070322D+00 -0.39318553497902D-17 + 3 47 3 28 -0.10484951280541D+00 0.87914571038402D-16 + 1 48 3 28 0.13149198839102D+02 -0.19757778323404D-16 + 2 48 3 28 0.13622835122802D+02 0.32079045545493D-16 + 3 48 3 28 -0.25515961030837D+02 0.20913947461715D-15 + 1 49 3 28 0.34701892963441D+00 -0.36474261736706D-16 + 2 49 3 28 0.27197998488543D+00 0.77239945764358D-17 + 3 49 3 28 0.46633976140989D+00 0.22393090023076D-15 + 1 50 3 28 -0.15147754531560D+00 -0.26684894409029D-16 + 2 50 3 28 0.54811388730226D+00 -0.35850730095370D-17 + 3 50 3 28 0.74085425446378D+00 -0.20461891947191D-15 + 1 51 3 28 0.53313172251161D+00 -0.49062604215320D-16 + 2 51 3 28 0.55121297710036D+00 -0.70934110725607D-18 + 3 51 3 28 -0.45776171415235D+00 0.63535686021262D-16 + 1 52 3 28 0.38566323318888D+00 0.43046210525278D-16 + 2 52 3 28 -0.44990739332757D+00 0.65379667072249D-17 + 3 52 3 28 0.18304592510120D+00 0.62298336382657D-16 + 1 53 3 28 0.44099543805919D+00 0.17031252915255D-16 + 2 53 3 28 0.47539775607859D+00 0.79809976868492D-17 + 3 53 3 28 -0.39782518419851D+00 -0.94944031018178D-16 + 1 54 3 28 0.36290693780693D+00 -0.10400491607438D-17 + 2 54 3 28 0.47410951315899D+00 0.10762032211538D-16 + 3 54 3 28 -0.62389862780351D+00 0.41848252874608D-15 + 1 55 3 28 -0.23561371178643D-01 0.19515684713856D-18 + 2 55 3 28 0.38181601510458D-01 0.39526019585249D-16 + 3 55 3 28 0.22596097662279D+00 -0.17793981106635D-15 + 1 56 3 28 0.31321845540438D+01 -0.13053621514024D-18 + 2 56 3 28 0.12261362992760D+01 -0.77554122108512D-17 + 3 56 3 28 -0.30730874511020D+01 -0.15166379401135D-15 + 1 57 3 28 -0.31016132636269D+01 0.21165779133078D-17 + 2 57 3 28 0.11343705741543D+01 0.25147136661995D-16 + 3 57 3 28 -0.30139916482755D+01 -0.12178303822726D-15 + 1 58 3 28 -0.24928118504911D+00 0.31418940194315D-17 + 2 58 3 28 0.20147194587619D+00 -0.13950626175530D-16 + 3 58 3 28 -0.26127655378421D+00 -0.23163114574264D-15 + 1 59 3 28 0.81668301919142D-01 -0.99141593717471D-18 + 2 59 3 28 0.73875759257911D-01 0.34406138052595D-16 + 3 59 3 28 -0.21310322738957D+00 0.25116199707156D-17 + 1 60 3 28 -0.32779236897385D+01 0.46727910546042D-17 + 2 60 3 28 -0.95452131471842D+00 0.30264669940509D-17 + 3 60 3 28 -0.30775016116620D+01 0.67978201313465D-15 + 1 61 3 28 0.31155961361121D+01 0.73315337511293D-18 + 2 61 3 28 -0.14276448489624D+01 -0.64806315314907D-17 + 3 61 3 28 -0.30423786554362D+01 -0.24094583789493D-15 + 1 62 3 28 0.82223371077731D-01 0.28858942733094D-19 + 2 62 3 28 -0.12818383142601D+00 0.10184422972746D-16 + 3 62 3 28 0.81916361108249D-01 0.54209350767677D-16 + 1 63 3 28 -0.93447115162302D-01 -0.20980557739714D-17 + 2 63 3 28 -0.12466780722944D+00 -0.19310852394243D-16 + 3 63 3 28 -0.23208147027117D+00 -0.18542577023657D-15 + 1 64 3 28 -0.15113141234997D+01 -0.68888360215850D-18 + 2 64 3 28 -0.26673731561748D+01 -0.33759071718113D-17 + 3 64 3 28 -0.31351541603740D+01 -0.26168266111967D-15 + 1 65 3 28 -0.14072182679562D+00 -0.29359951299568D-16 + 2 65 3 28 -0.30829465429500D-01 0.58463367875041D-18 + 3 65 3 28 0.42578396056118D-01 -0.10890571036314D-15 + 1 1 1 29 -0.23492183623365D+00 0.14352577678056D-15 + 2 1 1 29 -0.17379260137787D+00 -0.20238450969789D-16 + 3 1 1 29 -0.42797690548089D+00 0.16211248138246D-16 + 1 2 1 29 0.44208024797637D+00 -0.32000504683903D-15 + 2 2 1 29 -0.30252389954016D+00 -0.18076065367521D-16 + 3 2 1 29 -0.30221072566817D+00 0.25047732444079D-16 + 1 3 1 29 0.25051017034733D+00 -0.15811069700647D-15 + 2 3 1 29 -0.19633221284498D-01 -0.32381437204564D-16 + 3 3 1 29 0.53470638894187D-01 -0.38731063282436D-16 + 1 4 1 29 -0.33895793998524D+00 -0.97104565678798D-16 + 2 4 1 29 -0.46633448469613D+00 -0.33846354777234D-16 + 3 4 1 29 -0.47850355038475D+00 -0.32867561332225D-17 + 1 5 1 29 0.39765551661820D+00 -0.26384082905038D-15 + 2 5 1 29 0.29725170472751D+00 0.17597525113713D-16 + 3 5 1 29 -0.51165184777623D+00 0.17605321734327D-16 + 1 6 1 29 -0.25328120975725D+02 0.42577200501039D-16 + 2 6 1 29 -0.13217865722022D+02 0.97382893213315D-17 + 3 6 1 29 -0.13571489657003D+02 0.58304460200261D-17 + 1 7 1 29 -0.79080780410654D+00 -0.82547170856928D-17 + 2 7 1 29 -0.49802215951677D+00 0.56730227967697D-16 + 3 7 1 29 -0.50890489309557D+00 0.81477496921564D-17 + 1 8 1 29 0.25011915021961D+00 0.38740081135943D-17 + 2 8 1 29 -0.30473593415086D+00 -0.35541043194761D-16 + 3 8 1 29 0.34036146741610D+00 0.26809313453252D-16 + 1 9 1 29 -0.10863527376638D-01 0.16624182388863D-15 + 2 9 1 29 -0.90909879638172D-01 0.20574873137753D-16 + 3 9 1 29 -0.62933397444493D-01 0.86921867300014D-17 + 1 10 1 29 -0.51506713558859D-01 -0.76875488281820D-16 + 2 10 1 29 0.14926596797347D+00 0.27666163411402D-16 + 3 10 1 29 -0.14926596797347D+00 0.31202278504576D-16 + 1 11 1 29 -0.29533772217694D-01 -0.14951970966746D-16 + 2 11 1 29 -0.89353214729582D-01 0.27562636789981D-16 + 3 11 1 29 0.89353214729584D-01 0.20174336193874D-16 + 1 12 1 29 -0.10863527376656D-01 -0.16619312080002D-15 + 2 12 1 29 0.62933397444492D-01 0.18633924103007D-17 + 3 12 1 29 0.90909879638170D-01 -0.11814545751362D-16 + 1 13 1 29 0.31199813867580D+01 -0.18183282373173D-15 + 2 13 1 29 -0.13607069780245D+01 0.23751271632084D-16 + 3 13 1 29 -0.13222195601823D+01 -0.12236676637251D-16 + 1 14 1 29 0.29502604004244D+01 0.69589780630669D-16 + 2 14 1 29 0.12981116995013D+01 0.10910479429947D-16 + 3 14 1 29 -0.12981116995013D+01 0.18223952628547D-16 + 1 15 1 29 0.31199813867579D+01 0.15521179789032D-15 + 2 15 1 29 0.13222195601823D+01 -0.15101351891124D-16 + 3 15 1 29 0.13607069780244D+01 -0.19257792743742D-16 + 1 16 1 29 0.44208024797585D+00 0.12611730665062D-16 + 2 16 1 29 0.30221072566818D+00 0.12359829368238D-17 + 3 16 1 29 0.30252389954020D+00 -0.25650212566940D-16 + 1 17 1 29 -0.33895793998500D+00 -0.10541826120705D-15 + 2 17 1 29 0.47850355038478D+00 -0.40253441674348D-16 + 3 17 1 29 0.46633448469616D+00 0.13625548118201D-16 + 1 18 1 29 -0.23492183623369D+00 -0.81158056585869D-16 + 2 18 1 29 0.42797690548082D+00 0.12362204738622D-16 + 3 18 1 29 0.17379260137786D+00 -0.40181928691106D-16 + 1 19 1 29 0.25051017034734D+00 0.24273949556156D-15 + 2 19 1 29 -0.53470638894168D-01 -0.31342542506855D-16 + 3 19 1 29 0.19633221284503D-01 0.19413253573816D-16 + 1 20 1 29 -0.25328120975725D+02 -0.35151140146296D-16 + 2 20 1 29 0.13571489657005D+02 -0.56120237374339D-17 + 3 20 1 29 0.13217865722021D+02 -0.23868616034641D-17 + 1 21 1 29 0.25011915021962D+00 -0.15269922015683D-15 + 2 21 1 29 -0.34036146741602D+00 -0.18845757030241D-16 + 3 21 1 29 0.30473593415092D+00 -0.15209706451972D-17 + 1 22 1 29 0.39765551661822D+00 0.25837000217326D-15 + 2 22 1 29 0.51165184777611D+00 -0.24995147596468D-16 + 3 22 1 29 -0.29725170472748D+00 -0.99948066847305D-17 + 1 23 1 29 -0.79080780410649D+00 -0.24218740903732D-15 + 2 23 1 29 0.50890489309559D+00 0.31704780794225D-16 + 3 23 1 29 0.49802215951676D+00 -0.24428169436187D-16 + 1 24 1 29 -0.11363055334639D+00 0.63845898890303D-18 + 2 24 1 29 -0.97176491307949D-01 -0.15003500858855D-17 + 3 24 1 29 -0.61648165921750D-01 0.36602097429697D-18 + 1 25 1 29 -0.33051870416496D+00 -0.28610737540816D-17 + 2 25 1 29 -0.39177330521730D-01 0.12519635126305D-17 + 3 25 1 29 0.39177330521712D-01 -0.41273734669526D-17 + 1 26 1 29 -0.81366906740252D-01 -0.70822352770420D-18 + 2 26 1 29 0.28304415116112D-02 -0.15018605723889D-17 + 3 26 1 29 -0.28304415116056D-02 -0.15847229252047D-17 + 1 27 1 29 -0.11363055334646D+00 -0.37590615994659D-17 + 2 27 1 29 0.61648165921745D-01 0.13823454526231D-19 + 3 27 1 29 0.97176491307935D-01 -0.49086710119007D-18 + 1 28 1 29 -0.19295300699171D+00 -0.11753549555787D-18 + 2 28 1 29 0.33085999166557D-01 -0.14678271295316D-17 + 3 28 1 29 0.41585062465267D-01 -0.15201953159703D-17 + 1 29 1 29 0.12009064483836D+03 0.00000000000000D+00 + 2 29 1 29 -0.23741259052654D+01 0.00000000000000D+00 + 3 29 1 29 0.23741259052654D+01 0.00000000000000D+00 + 1 30 1 29 0.13892195032365D+01 -0.29426473599541D-17 + 2 30 1 29 0.69185119581400D-01 0.11766928169373D-17 + 3 30 1 29 -0.69185119581400D-01 0.74217221527515D-18 + 1 31 1 29 -0.19295300699173D+00 0.15666620230078D-17 + 2 31 1 29 -0.41585062465267D-01 0.57246360427092D-18 + 3 31 1 29 -0.33085999166557D-01 -0.58487452491225D-18 + 1 32 1 29 -0.30811084949260D+02 -0.69665843886906D-16 + 2 32 1 29 0.14289485317980D+02 0.18988666638310D-16 + 3 32 1 29 -0.14289485317981D+02 0.10521706526006D-15 + 1 33 1 29 0.25002441018995D+00 -0.84314268290672D-16 + 2 33 1 29 -0.32656081583012D+00 -0.83398983445921D-18 + 3 33 1 29 -0.27016392427600D+00 0.64974152766397D-17 + 1 34 1 29 0.25002441018997D+00 -0.42327131312863D-15 + 2 34 1 29 0.27016392427598D+00 -0.55804615424218D-16 + 3 34 1 29 0.32656081583015D+00 -0.24764693695315D-16 + 1 35 1 29 -0.68544091796875D+00 -0.49122889774019D-16 + 2 35 1 29 0.55083122718630D+00 0.16763679209296D-16 + 3 35 1 29 -0.55083122718628D+00 -0.42725370915032D-17 + 1 36 1 29 0.45964836441715D+00 -0.24800114207573D-15 + 2 36 1 29 0.30940070739702D+00 0.14416726917056D-16 + 3 36 1 29 -0.30940070739702D+00 0.92448407194288D-16 + 1 37 1 29 -0.37941196594313D+00 0.10097245826700D-15 + 2 37 1 29 0.47241760155955D+00 0.22296969339089D-16 + 3 37 1 29 -0.39126828577219D+00 0.85837930174632D-16 + 1 38 1 29 -0.37941196594301D+00 0.20771324039352D-15 + 2 38 1 29 0.39126828577214D+00 -0.33018295983540D-16 + 3 38 1 29 -0.47241760155952D+00 0.20925555587806D-16 + 1 39 1 29 0.27094753380645D+00 0.46307260153723D-16 + 2 39 1 29 0.71745259578824D-02 0.50848153622522D-16 + 3 39 1 29 -0.71745259578774D-02 0.39828810796641D-16 + 1 40 1 29 -0.22652366868190D+00 -0.22094670929913D-15 + 2 40 1 29 0.11753736046785D+00 0.13087403657538D-17 + 3 40 1 29 0.10238686586998D+00 0.13852302748751D-16 + 1 41 1 29 -0.30043583412530D+01 -0.19816664642463D-15 + 2 41 1 29 -0.31738889652452D+01 -0.43260207859762D-17 + 3 41 1 29 0.13652157069082D+01 -0.53714863767262D-16 + 1 42 1 29 -0.22012489406828D+00 -0.23459739940569D-15 + 2 42 1 29 0.41272559615121D-01 0.30509402428974D-17 + 3 42 1 29 -0.14109272489711D+00 0.84858340830525D-16 + 1 43 1 29 -0.28051599479846D+01 0.16101080365278D-15 + 2 43 1 29 0.26899078430667D+01 -0.46247311356890D-18 + 3 43 1 29 -0.11176717924403D+01 -0.77439532337211D-16 + 1 44 1 29 -0.23944541779591D+00 -0.19595868064602D-15 + 2 44 1 29 -0.11482546015925D+00 -0.84393406533260D-18 + 3 44 1 29 0.80210145194050D-01 -0.96760755092663D-16 + 1 45 1 29 -0.31707252962001D+01 -0.14082720012864D-15 + 2 45 1 29 0.31091888531853D+01 0.87610844014688D-18 + 3 45 1 29 0.12344925828659D+01 -0.67590907005870D-16 + 1 46 1 29 -0.11821621565578D+00 -0.19572381148416D-15 + 2 46 1 29 0.13987575062728D+00 -0.93412045763608D-18 + 3 46 1 29 -0.72227401361731D-01 -0.38776336291901D-16 + 1 47 1 29 -0.31127751678940D+01 0.52370489413301D-16 + 2 47 1 29 -0.32191059477274D+01 -0.14267095396730D-18 + 3 47 1 29 -0.14529028836111D+01 0.63841327754704D-16 + 1 48 1 29 0.16030304388453D+00 -0.96972262724255D-16 + 2 48 1 29 0.29804618665443D+00 0.15958501980413D-16 + 3 48 1 29 0.27943292278049D+00 0.39028595431228D-16 + 1 49 1 29 -0.24102957627296D+02 0.58660397433518D-16 + 2 49 1 29 -0.13096970677307D+02 0.43691115982541D-16 + 3 49 1 29 0.13096970677307D+02 -0.33622389950119D-17 + 1 50 1 29 -0.72781243184308D+00 0.95347961248826D-16 + 2 50 1 29 -0.38621584505584D-04 -0.37779730184386D-16 + 3 50 1 29 0.38621584514039D-04 -0.38508145414933D-16 + 1 51 1 29 0.16030304388460D+00 -0.46047556069240D-16 + 2 51 1 29 -0.27943292278076D+00 -0.43145441428571D-17 + 3 51 1 29 -0.29804618665441D+00 -0.85047728165221D-17 + 1 52 1 29 -0.64234105542511D+00 0.96987286238471D-16 + 2 52 1 29 -0.31903292504870D+00 -0.78258279322076D-17 + 3 52 1 29 0.29992653005333D+00 0.20050773615385D-16 + 1 53 1 29 0.57016707799583D+00 0.21724920096683D-16 + 2 53 1 29 -0.31466521596142D+00 -0.20036078559447D-16 + 3 53 1 29 0.31466521596143D+00 -0.38428369217574D-17 + 1 54 1 29 0.19865530001746D+00 0.21430343031349D-16 + 2 54 1 29 -0.36826551461468D-01 0.67137917254546D-17 + 3 54 1 29 0.36826551461464D-01 -0.41543108283656D-16 + 1 55 1 29 -0.64234105542516D+00 0.37085763623346D-16 + 2 55 1 29 -0.29992653005327D+00 -0.26465825079687D-17 + 3 55 1 29 0.31903292504865D+00 0.41815435145104D-16 + 1 56 1 29 -0.28051599479846D+01 0.23296128117298D-15 + 2 56 1 29 0.11176717924403D+01 0.18701541491460D-16 + 3 56 1 29 -0.26899078430667D+01 -0.93038514141599D-18 + 1 57 1 29 -0.30043583412530D+01 -0.21092009463291D-15 + 2 57 1 29 -0.13652157069082D+01 0.25881326960369D-16 + 3 57 1 29 0.31738889652452D+01 -0.81249320272547D-18 + 1 58 1 29 -0.22012489406827D+00 -0.27120131339742D-15 + 2 58 1 29 0.14109272489711D+00 0.10324404401107D-15 + 3 58 1 29 -0.41272559615121D-01 0.14521280176898D-17 + 1 59 1 29 -0.22652366868190D+00 0.31497809978696D-15 + 2 59 1 29 -0.10238686586998D+00 0.97663210617975D-16 + 3 59 1 29 -0.11753736046785D+00 0.20506648748720D-17 + 1 60 1 29 -0.31127751678940D+01 0.11111956657279D-15 + 2 60 1 29 0.14529028836111D+01 -0.45281960650227D-17 + 3 60 1 29 0.32191059477274D+01 0.19300317428917D-17 + 1 61 1 29 -0.31707252962002D+01 -0.19241293812698D-15 + 2 61 1 29 -0.12344925828659D+01 0.50228569116068D-17 + 3 61 1 29 -0.31091888531854D+01 0.47079967792228D-17 + 1 62 1 29 -0.11821621565578D+00 -0.80324335232482D-16 + 2 62 1 29 0.72227401361731D-01 -0.38217639850137D-17 + 3 62 1 29 -0.13987575062728D+00 0.42538172174712D-18 + 1 63 1 29 -0.23944541779591D+00 0.64654543399452D-16 + 2 63 1 29 -0.80210145194050D-01 -0.22041128083946D-16 + 3 63 1 29 0.11482546015925D+00 0.28949633382158D-17 + 1 64 1 29 0.21907249102924D+00 0.14497431346987D-15 + 2 64 1 29 0.39691749310802D+00 0.79030453135636D-17 + 3 64 1 29 -0.39668473956291D+00 -0.77629213529041D-17 + 1 65 1 29 0.25051001250167D+01 -0.17469198154908D-15 + 2 65 1 29 -0.15052401949793D+01 0.39731344977891D-17 + 3 65 1 29 0.15052401949793D+01 0.33866895541790D-16 + 1 1 2 29 -0.36290693780692D+00 -0.20238450969789D-16 + 2 1 2 29 -0.62389862780351D+00 -0.14172800480248D-15 + 3 1 2 29 -0.47410951315899D+00 0.13802613320442D-16 + 1 2 2 29 -0.38566323318886D+00 -0.18076065367521D-16 + 2 2 2 29 0.18304592510121D+00 0.13493618226780D-15 + 3 2 2 29 0.44990739332757D+00 -0.71022324757906D-17 + 1 3 2 29 0.23561371178645D-01 -0.32381437204564D-16 + 2 3 2 29 0.22596097662279D+00 0.65282472459265D-16 + 3 3 2 29 -0.38181601510457D-01 0.31296038913099D-16 + 1 4 2 29 -0.44099543805919D+00 -0.33846354777234D-16 + 2 4 2 29 -0.39782518419851D+00 0.80111465628342D-16 + 3 4 2 29 -0.47539775607859D+00 0.21579035172223D-16 + 1 5 2 29 0.15147754531560D+00 0.17597525113713D-16 + 2 5 2 29 0.74085425446377D+00 0.92066822662031D-16 + 3 5 2 29 -0.54811388730227D+00 0.22512867258563D-16 + 1 6 2 29 -0.13149198839102D+02 0.97382893213315D-17 + 2 6 2 29 -0.25515961030837D+02 0.27287775515707D-15 + 3 6 2 29 -0.13622835122802D+02 -0.21331149766835D-16 + 1 7 2 29 -0.53313172251161D+00 0.56730227967697D-16 + 2 7 2 29 -0.45776171415236D+00 -0.16064580207198D-15 + 3 7 2 29 -0.55121297710036D+00 -0.15402396369093D-15 + 1 8 2 29 -0.34701892963439D+00 -0.35541043194761D-16 + 2 8 2 29 0.46633976140987D+00 0.42127678617690D-16 + 3 8 2 29 -0.27197998488542D+00 -0.26007191659128D-16 + 1 9 2 29 0.91806944844036D-01 0.20574873137753D-16 + 2 9 2 29 -0.23173472146340D+00 0.77909026326548D-16 + 3 9 2 29 0.10486334114900D-01 0.18501324130575D-17 + 1 10 2 29 -0.90506975035535D-01 0.27666163411402D-16 + 2 10 2 29 -0.24767196385392D+00 -0.16060235368791D-15 + 3 10 2 29 -0.95754861717256D-01 0.00000000000000D+00 + 1 11 2 29 0.65345278829130D-01 0.27562636789981D-16 + 2 11 2 29 -0.20631945270958D+00 0.27552057039474D-15 + 3 11 2 29 -0.13154524935705D+00 -0.11214063313542D-17 + 1 12 2 29 -0.12009469417863D+00 0.18633924103007D-17 + 2 12 2 29 -0.17372529719519D+00 -0.17199714371409D-15 + 3 12 2 29 0.89360005662856D-01 -0.17552648821898D-17 + 1 13 2 29 0.12387195275551D+01 0.23751271632084D-16 + 2 13 2 29 -0.30867247988156D+01 -0.82722921457868D-16 + 3 13 2 29 -0.31474940004414D+01 0.19812292333714D-17 + 1 14 2 29 -0.12494926559190D+01 0.10910479429947D-16 + 2 14 2 29 -0.30962069657936D+01 0.10845811221228D-15 + 3 14 2 29 0.32218343870408D+01 0.23631262285009D-17 + 1 15 2 29 -0.13075677232505D+01 -0.15101351891124D-16 + 2 15 2 29 -0.30373776208385D+01 -0.82418088374398D-16 + 3 15 2 29 -0.32608007377771D+01 0.12187303731691D-18 + 1 16 2 29 0.41383561013823D+00 0.12359829368238D-17 + 2 16 2 29 0.40863253993532D+00 0.32723590371075D-15 + 3 16 2 29 0.28358065322037D+00 0.51840646008027D-16 + 1 17 2 29 0.46860018244849D+00 -0.40253441674348D-16 + 2 17 2 29 -0.73242711028473D+00 -0.15516469834511D-15 + 3 17 2 29 -0.43357222992647D+00 -0.10709417195930D-16 + 1 18 2 29 0.52606372110214D+00 0.12362204738622D-16 + 2 18 2 29 -0.41444205618786D+00 0.20329813730965D-15 + 3 18 2 29 -0.52852461919546D+00 -0.21463881479682D-16 + 1 19 2 29 -0.11479705400310D+00 -0.31342542506855D-16 + 2 19 2 29 0.20857800944944D+00 0.18709607345663D-15 + 3 19 2 29 -0.13890585649113D+00 0.41397105450678D-17 + 1 20 2 29 0.13400572938525D+02 -0.56120237374339D-17 + 2 20 2 29 -0.25398477425812D+02 -0.22164898080262D-15 + 3 20 2 29 -0.13522654321831D+02 0.37928740398923D-17 + 1 21 2 29 -0.29670673634117D+00 -0.18845757030241D-16 + 2 21 2 29 0.19148274089982D+00 0.51785145745101D-16 + 3 21 2 29 -0.32560982930180D+00 0.25221738476862D-16 + 1 22 2 29 0.17009621215183D+00 -0.24995147596468D-16 + 2 22 2 29 -0.34388639654919D+00 0.27480984049462D-16 + 3 22 2 29 0.17634066358114D+00 -0.64284454230696D-17 + 1 23 2 29 0.53886715642619D+00 0.31704780794225D-16 + 2 23 2 29 -0.40136127322327D+00 -0.43024445958612D-16 + 3 23 2 29 -0.49454898553087D+00 -0.65443663823940D-16 + 1 24 2 29 0.43730085584252D-01 -0.15003500858855D-17 + 2 24 2 29 0.14807017428239D+01 -0.28678117115700D-18 + 3 24 2 29 -0.78781441904662D-01 -0.32968864610933D-19 + 1 25 2 29 0.33123829684837D-01 0.12519635126305D-17 + 2 25 2 29 -0.20614097171015D+00 -0.15399666608690D-17 + 3 25 2 29 0.18011905544853D-01 -0.77822225837651D-18 + 1 26 2 29 0.11505165038771D-01 -0.15018605723889D-17 + 2 26 2 29 -0.10202224431551D+00 -0.34749827588638D-18 + 3 26 2 29 -0.13248484477354D-01 0.42780904520923D-19 + 1 27 2 29 0.39146425986253D-01 0.13823454526231D-19 + 2 27 2 29 -0.13489545726293D+00 0.40111696059574D-17 + 3 27 2 29 0.47888314173912D-01 -0.58867685192186D-18 + 1 28 2 29 -0.33085999166557D-01 -0.14678271295316D-17 + 2 28 2 29 -0.19741155862825D+00 -0.15004614915118D-17 + 3 28 2 29 0.57289620687334D-01 -0.15491962660178D-18 + 1 29 2 29 -0.23741259052654D+01 0.00000000000000D+00 + 2 29 2 29 0.11372291001901D+03 0.00000000000000D+00 + 3 29 2 29 0.52803207923281D+01 0.00000000000000D+00 + 1 30 2 29 -0.69185119581400D-01 0.11766928169373D-17 + 2 30 2 29 -0.41330471023631D-01 -0.15655956839701D-17 + 3 30 2 29 0.65998366997623D-01 -0.36111413417843D-18 + 1 31 2 29 -0.41585062465267D-01 0.57246360427092D-18 + 2 31 2 29 -0.35836015653875D+00 0.23665093561075D-17 + 3 31 2 29 -0.57655064743414D-01 0.19660918416225D-17 + 1 32 2 29 0.14985549786739D+02 0.18988666638310D-16 + 2 32 2 29 -0.21376754587858D+02 0.97715866515805D-16 + 3 32 2 29 0.10252583096720D+02 -0.81851371648252D-17 + 1 33 2 29 -0.29589742680319D+00 -0.83398983445921D-18 + 2 33 2 29 0.18674912064642D+00 -0.19025191758610D-15 + 3 33 2 29 0.32161347997773D+00 -0.22493594163349D-16 + 1 34 2 29 0.35525035041941D+00 -0.55804615424218D-16 + 2 34 2 29 0.42103726169300D+00 0.28787160266361D-15 + 3 34 2 29 0.32723300791452D+00 0.67411485247238D-16 + 1 35 2 29 0.48684142294518D+00 0.16763679209296D-16 + 2 35 2 29 -0.28805146597436D+00 -0.80882621266039D-16 + 3 35 2 29 0.33277610511116D+00 -0.36164310856408D-16 + 1 36 2 29 0.43748335270101D+00 0.14416726917056D-16 + 2 36 2 29 0.16566364622927D+00 -0.27442420934276D-17 + 3 36 2 29 -0.30593004354810D+00 0.22883943292870D-16 + 1 37 2 29 0.44374494864420D+00 0.22296969339089D-16 + 2 37 2 29 -0.71530023363884D+00 0.18171579991057D-15 + 3 37 2 29 0.44826197649394D+00 -0.16871562416681D-16 + 1 38 2 29 0.32676665815978D+00 -0.33018295983540D-16 + 2 38 2 29 -0.55512387936140D+00 0.23850859686900D-16 + 3 38 2 29 0.44706759951066D+00 0.15465809840271D-16 + 1 39 2 29 0.26937884890203D-01 0.50848153622522D-16 + 2 39 2 29 0.24073277920517D+00 -0.14891080051633D-16 + 3 39 2 29 0.26434993805051D-01 -0.24018703919934D-16 + 1 40 2 29 0.93447115162303D-01 0.13087403657538D-17 + 2 40 2 29 -0.23208147027117D+00 -0.31770644226482D-15 + 3 40 2 29 0.12466780722943D+00 0.21132818400789D-16 + 1 41 2 29 -0.31155961361122D+01 -0.43260207859762D-17 + 2 41 2 29 -0.30423786554363D+01 0.19897683214653D-15 + 3 41 2 29 0.14276448489624D+01 0.49329544785704D-18 + 1 42 2 29 -0.82223371077732D-01 0.30509402428974D-17 + 2 42 2 29 0.81916361108247D-01 -0.19658449950692D-16 + 3 42 2 29 0.12818383142602D+00 0.73783149580649D-16 + 1 43 2 29 0.32779236897385D+01 -0.46247311356890D-18 + 2 43 2 29 -0.30775016116620D+01 -0.14707952086993D-15 + 3 43 2 29 0.95452131471841D+00 -0.88378860650947D-16 + 1 44 2 29 -0.81668301919142D-01 -0.84393406533260D-18 + 2 44 2 29 -0.21310322738957D+00 0.35071045065081D-17 + 3 44 2 29 -0.73875759257911D-01 0.26357442071142D-16 + 1 45 2 29 0.31016132636269D+01 0.87610844014688D-18 + 2 45 2 29 -0.30139916482755D+01 0.21137677110841D-15 + 3 45 2 29 -0.11343705741543D+01 -0.35831837370851D-16 + 1 46 2 29 0.24928118504911D+00 -0.93412045763608D-18 + 2 46 2 29 -0.26127655378421D+00 0.56229592582754D-17 + 3 46 2 29 -0.20147194587619D+00 0.45429465488645D-16 + 1 47 2 29 -0.31321845540439D+01 -0.14267095396730D-18 + 2 47 2 29 -0.30730874511020D+01 -0.30687731526302D-16 + 3 47 2 29 -0.12261362992760D+01 0.50634243059220D-18 + 1 48 2 29 0.30651034623013D+00 0.15958501980413D-16 + 2 48 2 29 0.27170792927838D+00 0.21674232777301D-15 + 3 48 2 29 0.21879589379039D+00 -0.15079908708076D-16 + 1 49 2 29 -0.13010403468365D+02 0.43691115982541D-16 + 2 49 2 29 -0.25611518728893D+02 0.27155345539709D-18 + 3 49 2 29 0.13619025127797D+02 -0.76757621063004D-17 + 1 50 2 29 -0.43370263089718D+00 -0.37779730184386D-16 + 2 50 2 29 -0.53328893963903D+00 0.14469257736962D-16 + 3 50 2 29 -0.74230068669528D+00 -0.27923986365141D-16 + 1 51 2 29 -0.20850740465841D+00 -0.43145441428571D-17 + 2 51 2 29 0.37272648315901D+00 -0.11097310376980D-16 + 3 51 2 29 0.15134694933494D+00 0.35202728323342D-16 + 1 52 2 29 -0.38978028340426D+00 -0.78258279322076D-17 + 2 52 2 29 -0.87452191548158D+00 0.15878036500404D-15 + 3 52 2 29 0.34588094598481D+00 -0.70117286325785D-17 + 1 53 2 29 -0.28159265728973D+00 -0.20036078559447D-16 + 2 53 2 29 0.27473289303675D+00 0.18866581177099D-15 + 3 53 2 29 -0.32049253750884D+00 -0.15913090764344D-16 + 1 54 2 29 -0.61658131533781D-01 0.67137917254546D-17 + 2 54 2 29 0.14046373274300D+00 0.83135230875093D-16 + 3 54 2 29 0.19180688496919D-02 0.66250533316988D-17 + 1 55 2 29 -0.42614734542216D+00 -0.26465825079687D-17 + 2 55 2 29 -0.38401237108067D+00 -0.18606321257501D-15 + 3 55 2 29 0.57215740886046D+00 0.28226499578833D-16 + 1 56 2 29 -0.20031063282269D+01 0.18701541491460D-16 + 2 56 2 29 0.26328894094707D+01 -0.31322602111035D-16 + 3 56 2 29 -0.11485207674171D+01 -0.20155635770682D-16 + 1 57 2 29 0.12210961823145D+01 0.25881326960369D-16 + 2 57 2 29 0.30610124002741D+01 -0.32092524048873D-16 + 3 57 2 29 -0.12571940962572D+01 0.31829218960576D-16 + 1 58 2 29 0.10226835393024D+00 0.10324404401107D-15 + 2 58 2 29 -0.10484951280539D+00 0.62026572549541D-16 + 3 58 2 29 -0.15534832070321D+00 0.13490620352684D-16 + 1 59 2 29 0.73751630300908D-01 0.97663210617975D-16 + 2 59 2 29 -0.52495826598260D-01 -0.17939059733785D-15 + 3 59 2 29 -0.85666039169643D-01 -0.20360572030868D-16 + 1 60 2 29 -0.12076686035773D+01 -0.45281960650227D-17 + 2 60 2 29 0.32532103886273D+01 0.14508065533076D-15 + 3 60 2 29 0.13634437152049D+01 0.94309196320046D-17 + 1 61 2 29 0.12864439244776D+01 0.50228569116068D-17 + 2 61 2 29 0.30446783493883D+01 0.10952341603372D-15 + 3 61 2 29 0.13756832393009D+01 0.28991841526625D-16 + 1 62 2 29 -0.11779011964277D+00 -0.38217639850137D-17 + 2 62 2 29 -0.19873251756067D+00 -0.30871390020423D-16 + 3 62 2 29 -0.46826809137952D-01 0.52733014271297D-17 + 1 63 2 29 0.12681713296579D+00 -0.22041128083946D-16 + 2 63 2 29 -0.17411223374561D-01 0.48050180750636D-16 + 3 63 2 29 0.11344991498160D+00 -0.28394747356879D-17 + 1 64 2 29 0.14072182679562D+00 0.79030453135636D-17 + 2 64 2 29 0.44240434384660D-01 0.42823079423495D-16 + 3 64 2 29 0.35137503702183D-01 0.26897840474343D-17 + 1 65 2 29 0.15113141234999D+01 0.39731344977891D-17 + 2 65 2 29 -0.31351541603740D+01 -0.26083046501390D-15 + 3 65 2 29 0.26673731561748D+01 0.21008894787785D-17 + 1 1 3 29 -0.52606372110213D+00 0.16211248138246D-16 + 2 1 3 29 -0.52852461919546D+00 0.13802613320442D-16 + 3 1 3 29 -0.41444205618786D+00 0.22525656148982D-15 + 1 2 3 29 -0.41383561013823D+00 0.25047732444079D-16 + 2 2 3 29 0.28358065322038D+00 -0.71022324757906D-17 + 3 2 3 29 0.40863253993533D+00 -0.17660142403999D-15 + 1 3 3 29 0.11479705400310D+00 -0.38731063282436D-16 + 2 3 3 29 -0.13890585649112D+00 0.31296038913099D-16 + 3 3 3 29 0.20857800944944D+00 0.14057807767477D-15 + 1 4 3 29 -0.46860018244849D+00 -0.32867561332225D-17 + 2 4 3 29 -0.43357222992647D+00 0.21579035172223D-16 + 3 4 3 29 -0.73242711028474D+00 0.46119962976990D-15 + 1 5 3 29 -0.17009621215183D+00 0.17605321734327D-16 + 2 5 3 29 0.17634066358115D+00 0.22512867258563D-16 + 3 5 3 29 -0.34388639654920D+00 -0.32324644143850D-15 + 1 6 3 29 -0.13400572938525D+02 0.58304460200261D-17 + 2 6 3 29 -0.13522654321831D+02 -0.21331149766835D-16 + 3 6 3 29 -0.25398477425812D+02 -0.14462536168500D-15 + 1 7 3 29 -0.53886715642619D+00 0.81477496921564D-17 + 2 7 3 29 -0.49454898553087D+00 -0.15402396369093D-15 + 3 7 3 29 -0.40136127322327D+00 0.58402879582363D-16 + 1 8 3 29 0.29670673634117D+00 0.26809313453252D-16 + 2 8 3 29 -0.32560982930179D+00 -0.26007191659128D-16 + 3 8 3 29 0.19148274089983D+00 -0.24676787235703D-16 + 1 9 3 29 0.12009469417863D+00 0.86921867300014D-17 + 2 9 3 29 0.89360005662855D-01 0.18501324130575D-17 + 3 9 3 29 -0.17372529719519D+00 -0.27868179645066D-16 + 1 10 3 29 0.90506975035535D-01 0.31202278504576D-16 + 2 10 3 29 -0.95754861717256D-01 0.00000000000000D+00 + 3 10 3 29 -0.24767196385392D+00 0.30154036790716D-15 + 1 11 3 29 -0.65345278829130D-01 0.20174336193874D-16 + 2 11 3 29 -0.13154524935705D+00 -0.11214063313542D-17 + 3 11 3 29 -0.20631945270958D+00 0.22391734973555D-15 + 1 12 3 29 -0.91806944844036D-01 -0.11814545751362D-16 + 2 12 3 29 0.10486334114901D-01 -0.17552648821898D-17 + 3 12 3 29 -0.23173472146340D+00 0.77331182529044D-16 + 1 13 3 29 0.13075677232505D+01 -0.12236676637251D-16 + 2 13 3 29 -0.32608007377771D+01 0.19812292333714D-17 + 3 13 3 29 -0.30373776208385D+01 -0.26032105037736D-16 + 1 14 3 29 0.12494926559190D+01 0.18223952628547D-16 + 2 14 3 29 0.32218343870408D+01 0.23631262285009D-17 + 3 14 3 29 -0.30962069657936D+01 -0.61021695245707D-16 + 1 15 3 29 -0.12387195275551D+01 -0.19257792743742D-16 + 2 15 3 29 -0.31474940004415D+01 0.12187303731691D-18 + 3 15 3 29 -0.30867247988156D+01 -0.19834260814183D-15 + 1 16 3 29 0.38566323318886D+00 -0.25650212566940D-16 + 2 16 3 29 0.44990739332756D+00 0.51840646008027D-16 + 3 16 3 29 0.18304592510121D+00 -0.21098375773469D-15 + 1 17 3 29 0.44099543805919D+00 0.13625548118201D-16 + 2 17 3 29 -0.47539775607859D+00 -0.10709417195930D-16 + 3 17 3 29 -0.39782518419851D+00 0.27169311186161D-15 + 1 18 3 29 0.36290693780692D+00 -0.40181928691106D-16 + 2 18 3 29 -0.47410951315899D+00 -0.21463881479682D-16 + 3 18 3 29 -0.62389862780351D+00 0.11417593962575D-15 + 1 19 3 29 -0.23561371178643D-01 0.19413253573816D-16 + 2 19 3 29 -0.38181601510458D-01 0.41397105450678D-17 + 3 19 3 29 0.22596097662279D+00 -0.45915013693789D-16 + 1 20 3 29 0.13149198839102D+02 -0.23868616034641D-17 + 2 20 3 29 -0.13622835122802D+02 0.37928740398923D-17 + 3 20 3 29 -0.25515961030837D+02 -0.20593888242823D-15 + 1 21 3 29 0.34701892963440D+00 -0.15209706451972D-17 + 2 21 3 29 -0.27197998488543D+00 0.25221738476862D-16 + 3 21 3 29 0.46633976140990D+00 0.27604203827387D-15 + 1 22 3 29 -0.15147754531560D+00 -0.99948066847305D-17 + 2 22 3 29 -0.54811388730227D+00 -0.64284454230696D-17 + 3 22 3 29 0.74085425446377D+00 0.83203646484131D-16 + 1 23 3 29 0.53313172251161D+00 -0.24428169436187D-16 + 2 23 3 29 -0.55121297710036D+00 -0.65443663823940D-16 + 3 23 3 29 -0.45776171415234D+00 -0.21232496377360D-15 + 1 24 3 29 -0.39146425986255D-01 0.36602097429697D-18 + 2 24 3 29 0.47888314173912D-01 -0.32968864610933D-19 + 3 24 3 29 -0.13489545726293D+00 0.44180793126628D-18 + 1 25 3 29 -0.33123829684836D-01 -0.41273734669526D-17 + 2 25 3 29 0.18011905544853D-01 -0.77822225837651D-18 + 3 25 3 29 -0.20614097171015D+00 -0.15859959913714D-16 + 1 26 3 29 -0.11505165038771D-01 -0.15847229252047D-17 + 2 26 3 29 -0.13248484477354D-01 0.42780904520923D-19 + 3 26 3 29 -0.10202224431551D+00 0.33472560138492D-18 + 1 27 3 29 -0.43730085584252D-01 -0.49086710119007D-18 + 2 27 3 29 -0.78781441904662D-01 -0.58867685192186D-18 + 3 27 3 29 0.14807017428239D+01 -0.73103939080489D-18 + 1 28 3 29 0.41585062465267D-01 -0.15201953159703D-17 + 2 28 3 29 -0.57289620687334D-01 -0.15491962660178D-18 + 3 28 3 29 -0.35836015653877D+00 0.47250146674167D-17 + 1 29 3 29 0.23741259052654D+01 0.00000000000000D+00 + 2 29 3 29 0.52803207923281D+01 0.00000000000000D+00 + 3 29 3 29 0.11372291001901D+03 0.00000000000000D+00 + 1 30 3 29 0.69185119581400D-01 0.74217221527515D-18 + 2 30 3 29 0.65998366997623D-01 -0.36111413417843D-18 + 3 30 3 29 -0.41330471023633D-01 0.98878842393590D-18 + 1 31 3 29 0.33085999166557D-01 -0.58487452491225D-18 + 2 31 3 29 0.57655064743414D-01 0.19660918416225D-17 + 3 31 3 29 -0.19741155862826D+00 -0.36918725854808D-17 + 1 32 3 29 -0.14985549786739D+02 0.10521706526006D-15 + 2 32 3 29 0.10252583096720D+02 -0.81851371648252D-17 + 3 32 3 29 -0.21376754587858D+02 -0.30405062599366D-15 + 1 33 3 29 -0.35525035041941D+00 0.64974152766397D-17 + 2 33 3 29 0.32723300791451D+00 -0.22493594163349D-16 + 3 33 3 29 0.42103726169298D+00 -0.13259311609532D-15 + 1 34 3 29 0.29589742680319D+00 -0.24764693695315D-16 + 2 34 3 29 0.32161347997774D+00 0.67411485247238D-16 + 3 34 3 29 0.18674912064643D+00 0.19341136096873D-15 + 1 35 3 29 -0.48684142294518D+00 -0.42725370915032D-17 + 2 35 3 29 0.33277610511116D+00 -0.36164310856408D-16 + 3 35 3 29 -0.28805146597436D+00 0.11985096180296D-15 + 1 36 3 29 -0.43748335270102D+00 0.92448407194288D-16 + 2 36 3 29 -0.30593004354810D+00 0.22883943292870D-16 + 3 36 3 29 0.16566364622927D+00 0.12726329449820D-16 + 1 37 3 29 -0.32676665815979D+00 0.85837930174632D-16 + 2 37 3 29 0.44706759951065D+00 -0.16871562416681D-16 + 3 37 3 29 -0.55512387936140D+00 0.48841283409629D-16 + 1 38 3 29 -0.44374494864420D+00 0.20925555587806D-16 + 2 38 3 29 0.44826197649394D+00 0.15465809840271D-16 + 3 38 3 29 -0.71530023363884D+00 -0.87428252363478D-16 + 1 39 3 29 -0.26937884890204D-01 0.39828810796641D-16 + 2 39 3 29 0.26434993805051D-01 -0.24018703919934D-16 + 3 39 3 29 0.24073277920517D+00 -0.15554072616093D-16 + 1 40 3 29 -0.73751630300908D-01 0.13852302748751D-16 + 2 40 3 29 -0.85666039169643D-01 0.21132818400789D-16 + 3 40 3 29 -0.52495826598260D-01 0.45256340291505D-16 + 1 41 3 29 -0.12210961823145D+01 -0.53714863767262D-16 + 2 41 3 29 -0.12571940962572D+01 0.49329544785704D-18 + 3 41 3 29 0.30610124002741D+01 -0.88990801639938D-16 + 1 42 3 29 -0.10226835393024D+00 0.84858340830525D-16 + 2 42 3 29 -0.15534832070321D+00 0.73783149580649D-16 + 3 42 3 29 -0.10484951280540D+00 0.18243502600339D-16 + 1 43 3 29 0.20031063282269D+01 -0.77439532337211D-16 + 2 43 3 29 -0.11485207674171D+01 -0.88378860650947D-16 + 3 43 3 29 0.26328894094708D+01 -0.27263033832627D-17 + 1 44 3 29 -0.12681713296579D+00 -0.96760755092663D-16 + 2 44 3 29 0.11344991498160D+00 0.26357442071142D-16 + 3 44 3 29 -0.17411223374568D-01 0.24440736908631D-16 + 1 45 3 29 -0.12864439244776D+01 -0.67590907005870D-16 + 2 45 3 29 0.13756832393009D+01 -0.35831837370851D-16 + 3 45 3 29 0.30446783493882D+01 0.12475469896517D-16 + 1 46 3 29 0.11779011964277D+00 -0.38776336291901D-16 + 2 46 3 29 -0.46826809137954D-01 0.45429465488645D-16 + 3 46 3 29 -0.19873251756067D+00 0.33216266103532D-16 + 1 47 3 29 0.12076686035773D+01 0.63841327754704D-16 + 2 47 3 29 0.13634437152049D+01 0.50634243059220D-18 + 3 47 3 29 0.32532103886273D+01 0.89947144290348D-16 + 1 48 3 29 0.20850740465840D+00 0.39028595431228D-16 + 2 48 3 29 0.15134694933492D+00 -0.15079908708076D-16 + 3 48 3 29 0.37272648315905D+00 0.86458869287637D-16 + 1 49 3 29 0.13010403468365D+02 -0.33622389950119D-17 + 2 49 3 29 0.13619025127797D+02 -0.76757621063004D-17 + 3 49 3 29 -0.25611518728893D+02 0.79365514557571D-16 + 1 50 3 29 0.43370263089718D+00 -0.38508145414933D-16 + 2 50 3 29 -0.74230068669528D+00 -0.27923986365141D-16 + 3 50 3 29 -0.53328893963903D+00 -0.32150448354374D-16 + 1 51 3 29 -0.30651034623013D+00 -0.85047728165221D-17 + 2 51 3 29 0.21879589379042D+00 0.35202728323342D-16 + 3 51 3 29 0.27170792927838D+00 -0.39702480647113D-15 + 1 52 3 29 0.42614734542216D+00 0.20050773615385D-16 + 2 52 3 29 0.57215740886046D+00 -0.70117286325785D-17 + 3 52 3 29 -0.38401237108067D+00 -0.96557816880529D-16 + 1 53 3 29 0.28159265728972D+00 -0.38428369217574D-17 + 2 53 3 29 -0.32049253750884D+00 -0.15913090764344D-16 + 3 53 3 29 0.27473289303675D+00 -0.95903138688252D-16 + 1 54 3 29 0.61658131533780D-01 -0.41543108283656D-16 + 2 54 3 29 0.19180688496919D-02 0.66250533316988D-17 + 3 54 3 29 0.14046373274300D+00 -0.85056962680676D-16 + 1 55 3 29 0.38978028340426D+00 0.41815435145104D-16 + 2 55 3 29 0.34588094598482D+00 0.28226499578833D-16 + 3 55 3 29 -0.87452191548157D+00 -0.21012383156862D-15 + 1 56 3 29 -0.32779236897385D+01 -0.93038514141599D-18 + 2 56 3 29 0.95452131471842D+00 -0.20155635770682D-16 + 3 56 3 29 -0.30775016116619D+01 0.15782355336788D-17 + 1 57 3 29 0.31155961361121D+01 -0.81249320272547D-18 + 2 57 3 29 0.14276448489624D+01 0.31829218960576D-16 + 3 57 3 29 -0.30423786554363D+01 -0.74009767135669D-16 + 1 58 3 29 0.82223371077732D-01 0.14521280176898D-17 + 2 58 3 29 0.12818383142601D+00 0.13490620352684D-16 + 3 58 3 29 0.81916361108249D-01 0.11206189215597D-15 + 1 59 3 29 -0.93447115162301D-01 0.20506648748720D-17 + 2 59 3 29 0.12466780722943D+00 -0.20360572030868D-16 + 3 59 3 29 -0.23208147027117D+00 -0.29311972279079D-16 + 1 60 3 29 0.31321845540439D+01 0.19300317428917D-17 + 2 60 3 29 -0.12261362992760D+01 0.94309196320046D-17 + 3 60 3 29 -0.30730874511020D+01 -0.16482839875926D-15 + 1 61 3 29 -0.31016132636269D+01 0.47079967792228D-17 + 2 61 3 29 -0.11343705741543D+01 0.28991841526625D-16 + 3 61 3 29 -0.30139916482755D+01 0.11778291088394D-15 + 1 62 3 29 -0.24928118504911D+00 0.42538172174712D-18 + 2 62 3 29 -0.20147194587619D+00 0.52733014271297D-17 + 3 62 3 29 -0.26127655378421D+00 -0.24804383768734D-15 + 1 63 3 29 0.81668301919142D-01 0.28949633382158D-17 + 2 63 3 29 -0.73875759257911D-01 -0.28394747356879D-17 + 3 63 3 29 -0.21310322738957D+00 -0.11246148001373D-15 + 1 64 3 29 -0.14072182679562D+00 -0.77629213529041D-17 + 2 64 3 29 0.30829465429479D-01 0.26897840474343D-17 + 3 64 3 29 0.42578396056134D-01 -0.47518995898969D-17 + 1 65 3 29 -0.15113141234997D+01 0.33866895541790D-16 + 2 65 3 29 0.26673731561748D+01 0.21008894787785D-17 + 3 65 3 29 -0.31351541603741D+01 0.23471543812049D-15 + 1 1 1 30 -0.23492183623367D+00 -0.22358277990460D-16 + 2 1 1 30 -0.42797690548081D+00 0.32754265045294D-18 + 3 1 1 30 -0.17379260137787D+00 -0.90531534542670D-17 + 1 2 1 30 0.25051017034733D+00 -0.16210540448891D-16 + 2 2 1 30 0.53470638894169D-01 -0.35888337407725D-16 + 3 2 1 30 -0.19633221284502D-01 -0.35123942318896D-16 + 1 3 1 30 0.44208024797583D+00 -0.11707917022061D-16 + 2 3 1 30 -0.30221072566820D+00 0.36283383446003D-17 + 3 3 1 30 -0.30252389954020D+00 0.24283780355523D-16 + 1 4 1 30 -0.33895793998502D+00 -0.45412055144454D-16 + 2 4 1 30 -0.47850355038478D+00 -0.19460833870351D-16 + 3 4 1 30 -0.46633448469617D+00 -0.49423088515316D-16 + 1 5 1 30 0.39765551661822D+00 0.22587472209654D-15 + 2 5 1 30 -0.51165184777610D+00 -0.15833932133801D-16 + 3 5 1 30 0.29725170472749D+00 -0.14892264617821D-16 + 1 6 1 30 -0.79080780410649D+00 -0.11111153211895D-15 + 2 6 1 30 -0.50890489309559D+00 -0.44291810214205D-16 + 3 6 1 30 -0.49802215951677D+00 0.26005487056182D-16 + 1 7 1 30 -0.25328120975725D+02 0.24277066223940D-15 + 2 7 1 30 -0.13571489657005D+02 -0.21837214425678D-17 + 3 7 1 30 -0.13217865722021D+02 -0.21565656269683D-16 + 1 8 1 30 0.25011915021963D+00 -0.11542342610586D-15 + 2 8 1 30 0.34036146741601D+00 0.20113769044083D-16 + 3 8 1 30 -0.30473593415091D+00 0.33368818166059D-16 + 1 9 1 30 -0.10863527376644D-01 0.35768813994733D-15 + 2 9 1 30 0.90909879638172D-01 -0.56764969524326D-18 + 3 9 1 30 0.62933397444493D-01 0.28984488688723D-16 + 1 10 1 30 -0.51506713558861D-01 0.33468671145340D-16 + 2 10 1 30 -0.14926596797347D+00 -0.16904001320092D-16 + 3 10 1 30 0.14926596797347D+00 0.31112234075497D-16 + 1 11 1 30 -0.29533772217698D-01 -0.91545457047134D-16 + 2 11 1 30 0.89353214729582D-01 -0.50933748510765D-18 + 3 11 1 30 -0.89353214729584D-01 0.28875067343007D-16 + 1 12 1 30 -0.10863527376654D-01 -0.33679326682864D-15 + 2 12 1 30 -0.62933397444493D-01 0.26166491073762D-16 + 3 12 1 30 -0.90909879638169D-01 -0.15005981770896D-16 + 1 13 1 30 0.31199813867581D+01 -0.25250850256590D-15 + 2 13 1 30 0.13607069780245D+01 -0.26575610057959D-16 + 3 13 1 30 0.13222195601823D+01 -0.31367331677064D-16 + 1 14 1 30 0.29502604004244D+01 -0.88337891480603D-16 + 2 14 1 30 -0.12981116995013D+01 0.22584332599325D-16 + 3 14 1 30 0.12981116995013D+01 -0.30493115980894D-16 + 1 15 1 30 0.31199813867579D+01 0.28394170270456D-15 + 2 15 1 30 -0.13222195601823D+01 0.34046653062870D-16 + 3 15 1 30 -0.13607069780244D+01 -0.12273322776299D-16 + 1 16 1 30 0.25051017034733D+00 0.15405661493890D-15 + 2 16 1 30 0.19633221284499D-01 0.15502902378093D-16 + 3 16 1 30 -0.53470638894187D-01 0.29425255571822D-16 + 1 17 1 30 -0.33895793998525D+00 0.11667650792733D-15 + 2 17 1 30 0.46633448469613D+00 -0.18878193963737D-16 + 3 17 1 30 0.47850355038475D+00 -0.11984218709761D-16 + 1 18 1 30 -0.23492183623364D+00 -0.75492956425398D-16 + 2 18 1 30 0.17379260137787D+00 0.19133995082048D-16 + 3 18 1 30 0.42797690548088D+00 0.34505181165753D-16 + 1 19 1 30 0.44208024797636D+00 -0.14080293036881D-15 + 2 19 1 30 0.30252389954016D+00 -0.28831796295733D-16 + 3 19 1 30 0.30221072566819D+00 -0.38792688663992D-16 + 1 20 1 30 -0.79080780410654D+00 0.26782557309205D-15 + 2 20 1 30 0.49802215951676D+00 0.78278640172888D-18 + 3 20 1 30 0.50890489309557D+00 -0.28141181320215D-16 + 1 21 1 30 0.25011915021961D+00 -0.13539328969242D-15 + 2 21 1 30 0.30473593415086D+00 0.47690592712120D-16 + 3 21 1 30 -0.34036146741609D+00 0.14221529463404D-16 + 1 22 1 30 0.39765551661820D+00 -0.56109379258916D-16 + 2 22 1 30 -0.29725170472751D+00 0.20852262173709D-16 + 3 22 1 30 0.51165184777623D+00 0.91650358942373D-16 + 1 23 1 30 -0.25328120975725D+02 -0.23825777607050D-15 + 2 23 1 30 0.13217865722022D+02 -0.88274173124317D-17 + 3 23 1 30 0.13571489657003D+02 -0.96348079333071D-17 + 1 24 1 30 -0.11363055334646D+00 -0.61058865128967D-17 + 2 24 1 30 -0.61648165921744D-01 -0.42039877501869D-18 + 3 24 1 30 -0.97176491307935D-01 0.37545633411521D-18 + 1 25 1 30 -0.81366906740252D-01 -0.29663924518736D-17 + 2 25 1 30 -0.28304415116110D-02 -0.72821244500745D-18 + 3 25 1 30 0.28304415116058D-02 -0.12010348581410D-17 + 1 26 1 30 -0.33051870416495D+00 0.39868136256817D-17 + 2 26 1 30 0.39177330521730D-01 0.14428758213358D-17 + 3 26 1 30 -0.39177330521712D-01 0.11373429809254D-17 + 1 27 1 30 -0.11363055334640D+00 0.29574309697714D-17 + 2 27 1 30 0.97176491307949D-01 0.19773556256379D-18 + 3 27 1 30 0.61648165921748D-01 0.97526928226922D-19 + 1 28 1 30 -0.19295300699173D+00 0.76799755154972D-18 + 2 28 1 30 0.41585062465267D-01 -0.15746782885418D-17 + 3 28 1 30 0.33085999166557D-01 0.33429813755630D-18 + 1 29 1 30 0.13892195032365D+01 0.29426473599541D-17 + 2 29 1 30 -0.69185119581400D-01 -0.11766928169373D-17 + 3 29 1 30 0.69185119581400D-01 -0.74217221527515D-18 + 1 30 1 30 0.12009064483836D+03 0.00000000000000D+00 + 2 30 1 30 0.23741259052649D+01 0.00000000000000D+00 + 3 30 1 30 -0.23741259052653D+01 0.00000000000000D+00 + 1 31 1 30 -0.19295300699171D+00 0.10191973588382D-16 + 2 31 1 30 -0.33085999166557D-01 -0.59880321249414D-18 + 3 31 1 30 -0.41585062465267D-01 -0.27508626656698D-17 + 1 32 1 30 -0.72781243184308D+00 -0.10446463798601D-15 + 2 32 1 30 0.38621584507360D-04 0.25614181147044D-16 + 3 32 1 30 -0.38621584513151D-04 0.27968690823561D-16 + 1 33 1 30 0.16030304388460D+00 0.24358683781419D-15 + 2 33 1 30 0.27943292278077D+00 0.27150671905286D-16 + 3 33 1 30 0.29804618665441D+00 0.10125002073459D-16 + 1 34 1 30 0.16030304388453D+00 -0.10893223898460D-15 + 2 34 1 30 -0.29804618665443D+00 -0.94228923128009D-17 + 3 34 1 30 -0.27943292278048D+00 0.28051428229198D-16 + 1 35 1 30 -0.24102957627296D+02 0.12710599345256D-16 + 2 35 1 30 0.13096970677307D+02 -0.30549531547814D-16 + 3 35 1 30 -0.13096970677307D+02 -0.20780620058521D-16 + 1 36 1 30 0.19865530001746D+00 0.85277073775416D-16 + 2 36 1 30 0.36826551461468D-01 0.24162543238702D-16 + 3 36 1 30 -0.36826551461463D-01 0.14593306893842D-16 + 1 37 1 30 -0.64234105542516D+00 0.22007083316848D-16 + 2 37 1 30 0.29992653005327D+00 -0.97080307009276D-16 + 3 37 1 30 -0.31903292504865D+00 -0.13410209192340D-16 + 1 38 1 30 -0.64234105542511D+00 0.18695325192900D-15 + 2 38 1 30 0.31903292504870D+00 0.24484240224539D-16 + 3 38 1 30 -0.29992653005333D+00 -0.43133659750663D-16 + 1 39 1 30 0.57016707799584D+00 0.65625306223478D-16 + 2 39 1 30 0.31466521596142D+00 -0.21297014312682D-16 + 3 39 1 30 -0.31466521596143D+00 0.36134012063584D-16 + 1 40 1 30 -0.30043583412530D+01 0.28796343165530D-15 + 2 40 1 30 0.31738889652453D+01 0.25052202186239D-19 + 3 40 1 30 -0.13652157069082D+01 0.10132075825745D-15 + 1 41 1 30 -0.22652366868190D+00 -0.20072793449005D-15 + 2 41 1 30 -0.11753736046785D+00 -0.15469916589180D-17 + 3 41 1 30 -0.10238686586998D+00 0.74052643478326D-16 + 1 42 1 30 -0.28051599479846D+01 -0.16991262331794D-16 + 2 42 1 30 -0.26899078430667D+01 -0.60214210282312D-17 + 3 42 1 30 0.11176717924403D+01 -0.33767567768964D-17 + 1 43 1 30 -0.22012489406827D+00 0.94692230831628D-16 + 2 43 1 30 -0.41272559615119D-01 -0.61925902478926D-18 + 3 43 1 30 0.14109272489711D+00 0.91354561625509D-16 + 1 44 1 30 -0.31707252962002D+01 0.10483879567269D-15 + 2 44 1 30 -0.31091888531854D+01 -0.79383619624139D-18 + 3 44 1 30 -0.12344925828659D+01 0.84721450232654D-16 + 1 45 1 30 -0.23944541779591D+00 0.68778627552304D-16 + 2 45 1 30 0.11482546015925D+00 -0.38814051050447D-19 + 3 45 1 30 -0.80210145194050D-01 -0.24672171521792D-16 + 1 46 1 30 -0.31127751678940D+01 -0.10206171482437D-15 + 2 46 1 30 0.32191059477274D+01 0.28687799606351D-17 + 3 46 1 30 0.14529028836111D+01 -0.21832964363934D-17 + 1 47 1 30 -0.11821621565578D+00 0.11413554080385D-15 + 2 47 1 30 -0.13987575062728D+00 0.86314369179764D-18 + 3 47 1 30 0.72227401361731D-01 0.81639142315412D-16 + 1 48 1 30 0.25002441018998D+00 0.15326130991900D-18 + 2 48 1 30 -0.27016392427596D+00 0.48310851706744D-16 + 3 48 1 30 -0.32656081583014D+00 0.41330276425697D-16 + 1 49 1 30 -0.68544091796875D+00 -0.59078231975441D-16 + 2 49 1 30 -0.55083122718630D+00 -0.23021070284102D-16 + 3 49 1 30 0.55083122718628D+00 0.83049304193846D-17 + 1 50 1 30 -0.30811084949260D+02 0.42875633434494D-16 + 2 50 1 30 -0.14289485317980D+02 -0.68785720353961D-17 + 3 50 1 30 0.14289485317981D+02 0.44137292319900D-16 + 1 51 1 30 0.25002441018995D+00 -0.44478662916728D-15 + 2 51 1 30 0.32656081583013D+00 0.46471641700581D-16 + 3 51 1 30 0.27016392427599D+00 -0.83236224045099D-17 + 1 52 1 30 -0.37941196594301D+00 -0.78863452710268D-16 + 2 52 1 30 -0.39126828577215D+00 0.30242676372136D-16 + 3 52 1 30 0.47241760155952D+00 0.51592112350031D-18 + 1 53 1 30 0.27094753380645D+00 -0.66621226728015D-16 + 2 53 1 30 -0.71745259578824D-02 0.86703759834769D-16 + 3 53 1 30 0.71745259578761D-02 0.12572573105440D-17 + 1 54 1 30 0.45964836441715D+00 -0.99401694646584D-16 + 2 54 1 30 -0.30940070739701D+00 -0.23634354943992D-16 + 3 54 1 30 0.30940070739702D+00 0.69158722974972D-16 + 1 55 1 30 -0.37941196594313D+00 0.12397587756522D-15 + 2 55 1 30 -0.47241760155955D+00 0.50845438423464D-16 + 3 55 1 30 0.39126828577219D+00 0.22741639940391D-16 + 1 56 1 30 -0.22012489406827D+00 0.20116207865400D-16 + 2 56 1 30 -0.14109272489711D+00 0.23494035594752D-16 + 3 56 1 30 0.41272559615119D-01 0.33223798040747D-17 + 1 57 1 30 -0.22652366868190D+00 0.24598296361061D-15 + 2 57 1 30 0.10238686586998D+00 -0.67109600120123D-16 + 3 57 1 30 0.11753736046785D+00 -0.36238257676112D-17 + 1 58 1 30 -0.28051599479846D+01 -0.13673604821871D-15 + 2 58 1 30 -0.11176717924403D+01 -0.10460587085805D-15 + 3 58 1 30 0.26899078430667D+01 -0.11467677789599D-18 + 1 59 1 30 -0.30043583412530D+01 0.12998379151326D-16 + 2 59 1 30 0.13652157069082D+01 0.89594921074337D-16 + 3 59 1 30 -0.31738889652452D+01 0.88428159162653D-17 + 1 60 1 30 -0.11821621565578D+00 0.57402140274477D-16 + 2 60 1 30 -0.72227401361729D-01 -0.88925662051950D-16 + 3 60 1 30 0.13987575062728D+00 0.23458934145664D-17 + 1 61 1 30 -0.23944541779591D+00 0.48412677195176D-16 + 2 61 1 30 0.80210145194048D-01 0.62428007105996D-16 + 3 61 1 30 -0.11482546015925D+00 -0.19897948705994D-17 + 1 62 1 30 -0.31127751678940D+01 -0.41885261108004D-16 + 2 62 1 30 -0.14529028836111D+01 0.58577596587412D-16 + 3 62 1 30 -0.32191059477274D+01 0.27221505545981D-17 + 1 63 1 30 -0.31707252962002D+01 0.11728232508986D-15 + 2 63 1 30 0.12344925828660D+01 0.95089085601032D-16 + 3 63 1 30 0.31091888531854D+01 -0.30196261705027D-18 + 1 64 1 30 0.21907249102937D+00 -0.17083452659713D-15 + 2 64 1 30 -0.39668473956291D+00 0.11905790023906D-16 + 3 64 1 30 0.39668473956291D+00 -0.32601987993750D-16 + 1 65 1 30 0.25051001250170D+01 -0.58315424276941D-17 + 2 65 1 30 0.15120404693318D+01 -0.30151803010749D-16 + 3 65 1 30 -0.15052401949793D+01 -0.42411612290372D-17 + 1 1 2 30 -0.52606372110213D+00 0.32754265045294D-18 + 2 1 2 30 -0.41444205618786D+00 -0.13538633754465D-15 + 3 1 2 30 -0.52852461919546D+00 0.11147224577864D-16 + 1 2 2 30 0.11479705400310D+00 -0.35888337407725D-16 + 2 2 2 30 0.20857800944944D+00 0.17457213292556D-15 + 3 2 2 30 -0.13890585649112D+00 -0.11294607152023D-16 + 1 3 2 30 -0.41383561013824D+00 0.36283383446003D-17 + 2 3 2 30 0.40863253993533D+00 0.18260257188775D-15 + 3 3 2 30 0.28358065322038D+00 0.19018347767748D-16 + 1 4 2 30 -0.46860018244848D+00 -0.19460833870351D-16 + 2 4 2 30 -0.73242711028473D+00 -0.20852922458142D-16 + 3 4 2 30 -0.43357222992647D+00 -0.18066333989189D-16 + 1 5 2 30 -0.17009621215182D+00 -0.15833932133801D-16 + 2 5 2 30 -0.34388639654921D+00 0.33323316703307D-15 + 3 5 2 30 0.17634066358115D+00 0.81221770660953D-16 + 1 6 2 30 -0.53886715642619D+00 -0.44291810214205D-16 + 2 6 2 30 -0.40136127322327D+00 -0.12187769066254D-16 + 3 6 2 30 -0.49454898553087D+00 0.78779122122774D-17 + 1 7 2 30 -0.13400572938525D+02 -0.21837214425678D-17 + 2 7 2 30 -0.25398477425812D+02 0.64531344667019D-16 + 3 7 2 30 -0.13522654321831D+02 -0.22529597626993D-16 + 1 8 2 30 0.29670673634117D+00 0.20113769044083D-16 + 2 8 2 30 0.19148274089983D+00 -0.41987804920235D-16 + 3 8 2 30 -0.32560982930179D+00 -0.90341151066632D-17 + 1 9 2 30 -0.91806944844036D-01 -0.56764969524326D-18 + 2 9 2 30 -0.23173472146340D+00 0.11239459493054D-15 + 3 9 2 30 0.10486334114900D-01 0.50889169811470D-18 + 1 10 2 30 0.90506975035538D-01 -0.16904001320092D-16 + 2 10 2 30 -0.24767196385392D+00 0.17762596926596D-15 + 3 10 2 30 -0.95754861717255D-01 -0.10630320908659D-17 + 1 11 2 30 -0.65345278829130D-01 -0.50933748510765D-18 + 2 11 2 30 -0.20631945270958D+00 -0.62097673771075D-16 + 3 11 2 30 -0.13154524935705D+00 -0.87472879132861D-19 + 1 12 2 30 0.12009469417863D+00 0.26166491073762D-16 + 2 12 2 30 -0.17372529719519D+00 -0.99015714857066D-16 + 3 12 2 30 0.89360005662854D-01 -0.63258554211593D-18 + 1 13 2 30 -0.12387195275551D+01 -0.26575610057959D-16 + 2 13 2 30 -0.30867247988156D+01 0.21753826976133D-15 + 3 13 2 30 -0.31474940004415D+01 0.14843147989096D-17 + 1 14 2 30 0.12494926559190D+01 0.22584332599325D-16 + 2 14 2 30 -0.30962069657937D+01 -0.89197384305648D-16 + 3 14 2 30 0.32218343870409D+01 0.33234214413955D-17 + 1 15 2 30 0.13075677232505D+01 0.34046653062870D-16 + 2 15 2 30 -0.30373776208386D+01 -0.73346572808006D-16 + 3 15 2 30 -0.32608007377771D+01 -0.13261466497825D-17 + 1 16 2 30 -0.23561371178644D-01 0.15502902378093D-16 + 2 16 2 30 0.22596097662279D+00 0.65985254940477D-16 + 3 16 2 30 -0.38181601510458D-01 0.25000117793958D-16 + 1 17 2 30 0.44099543805920D+00 -0.18878193963737D-16 + 2 17 2 30 -0.39782518419851D+00 0.17593298997180D-15 + 3 17 2 30 -0.47539775607859D+00 0.20791592084323D-16 + 1 18 2 30 0.36290693780692D+00 0.19133995082048D-16 + 2 18 2 30 -0.62389862780352D+00 -0.20529019960378D-16 + 3 18 2 30 -0.47410951315899D+00 -0.10283297816392D-15 + 1 19 2 30 0.38566323318886D+00 -0.28831796295733D-16 + 2 19 2 30 0.18304592510120D+00 0.22601075392793D-15 + 3 19 2 30 0.44990739332757D+00 0.19007289392038D-17 + 1 20 2 30 0.53313172251161D+00 0.78278640172888D-18 + 2 20 2 30 -0.45776171415234D+00 -0.10843660176842D-15 + 3 20 2 30 -0.55121297710036D+00 0.47247079069708D-16 + 1 21 2 30 0.34701892963439D+00 0.47690592712120D-16 + 2 21 2 30 0.46633976140985D+00 0.46392883233359D-16 + 3 21 2 30 -0.27197998488542D+00 0.33743881342119D-16 + 1 22 2 30 -0.15147754531560D+00 0.20852262173709D-16 + 2 22 2 30 0.74085425446376D+00 -0.17386003606698D-15 + 3 22 2 30 -0.54811388730227D+00 0.40930639563457D-16 + 1 23 2 30 0.13149198839103D+02 -0.88274173124317D-17 + 2 23 2 30 -0.25515961030837D+02 -0.24788050169979D-15 + 3 23 2 30 -0.13622835122802D+02 0.52271093708736D-16 + 1 24 2 30 -0.39146425986252D-01 -0.42039877501869D-18 + 2 24 2 30 -0.13489545726294D+00 0.25609678614265D-17 + 3 24 2 30 0.47888314173912D-01 0.85340506978603D-18 + 1 25 2 30 -0.11505165038771D-01 -0.72821244500745D-18 + 2 25 2 30 -0.10202224431551D+00 0.14760510966688D-18 + 3 25 2 30 -0.13248484477354D-01 0.14397150254981D-18 + 1 26 2 30 -0.33123829684837D-01 0.14428758213358D-17 + 2 26 2 30 -0.20614097171014D+00 0.13863529929840D-17 + 3 26 2 30 0.18011905544853D-01 0.10737629103171D-17 + 1 27 2 30 -0.43730085584252D-01 0.19773556256379D-18 + 2 27 2 30 0.14807017428239D+01 0.11233192531467D-16 + 3 27 2 30 -0.78781441904662D-01 -0.14638138884076D-17 + 1 28 2 30 0.41585062465267D-01 -0.15746782885418D-17 + 2 28 2 30 -0.35836015653875D+00 0.82963373778058D-17 + 3 28 2 30 -0.57655064743414D-01 -0.99041231122655D-18 + 1 29 2 30 0.69185119581400D-01 -0.11766928169373D-17 + 2 29 2 30 -0.41330471023631D-01 0.15655956839701D-17 + 3 29 2 30 0.65998366997623D-01 0.36111413417843D-18 + 1 30 2 30 0.23741259052649D+01 0.00000000000000D+00 + 2 30 2 30 0.11372291001901D+03 0.00000000000000D+00 + 3 30 2 30 0.52803207923283D+01 0.00000000000000D+00 + 1 31 2 30 0.33085999166557D-01 -0.59880321249414D-18 + 2 31 2 30 -0.19741155862825D+00 -0.11273489150513D-17 + 3 31 2 30 0.57289620687334D-01 -0.48781485943095D-19 + 1 32 2 30 0.43370263089718D+00 0.25614181147044D-16 + 2 32 2 30 -0.53328893963903D+00 -0.16304600768432D-16 + 3 32 2 30 -0.74230068669528D+00 -0.68892164801591D-17 + 1 33 2 30 0.20850740465841D+00 0.27150671905286D-16 + 2 33 2 30 0.37272648315907D+00 0.11516867656133D-15 + 3 33 2 30 0.15134694933493D+00 0.25162909374991D-16 + 1 34 2 30 -0.30651034623013D+00 -0.94228923128009D-17 + 2 34 2 30 0.27170792927839D+00 0.10029110778855D-15 + 3 34 2 30 0.21879589379040D+00 0.19579104270928D-16 + 1 35 2 30 0.13010403468366D+02 -0.30549531547814D-16 + 2 35 2 30 -0.25611518728893D+02 -0.55245924982848D-16 + 3 35 2 30 0.13619025127797D+02 -0.31379700610099D-17 + 1 36 2 30 0.61658131533781D-01 0.24162543238702D-16 + 2 36 2 30 0.14046373274299D+00 0.19802278889048D-15 + 3 36 2 30 0.19180688496901D-02 -0.31474180890630D-16 + 1 37 2 30 0.42614734542216D+00 -0.97080307009276D-16 + 2 37 2 30 -0.38401237108067D+00 -0.18055644375367D-15 + 3 37 2 30 0.57215740886046D+00 -0.14654875211282D-16 + 1 38 2 30 0.38978028340426D+00 0.24484240224539D-16 + 2 38 2 30 -0.87452191548157D+00 -0.25502913951479D-15 + 3 38 2 30 0.34588094598482D+00 -0.14344162083369D-16 + 1 39 2 30 0.28159265728973D+00 -0.21297014312682D-16 + 2 39 2 30 0.27473289303675D+00 0.46099441400341D-16 + 3 39 2 30 -0.32049253750883D+00 -0.30864000534471D-16 + 1 40 2 30 0.31155961361122D+01 0.25052202186239D-19 + 2 40 2 30 -0.30423786554363D+01 0.62090675270553D-16 + 3 40 2 30 0.14276448489624D+01 0.39110663806748D-16 + 1 41 2 30 -0.93447115162301D-01 -0.15469916589180D-17 + 2 41 2 30 -0.23208147027117D+00 0.20878202247162D-15 + 3 41 2 30 0.12466780722943D+00 0.15685724585537D-16 + 1 42 2 30 -0.32779236897385D+01 -0.60214210282312D-17 + 2 42 2 30 -0.30775016116619D+01 -0.12932760203383D-15 + 3 42 2 30 0.95452131471841D+00 -0.41506860963234D-16 + 1 43 2 30 0.82223371077733D-01 -0.61925902478926D-18 + 2 43 2 30 0.81916361108250D-01 0.97884219920812D-16 + 3 43 2 30 0.12818383142601D+00 -0.64572973193193D-16 + 1 44 2 30 -0.31016132636269D+01 -0.79383619624139D-18 + 2 44 2 30 -0.30139916482755D+01 0.58511776650342D-16 + 3 44 2 30 -0.11343705741542D+01 0.13934964704242D-16 + 1 45 2 30 0.81668301919145D-01 -0.38814051050447D-19 + 2 45 2 30 -0.21310322738957D+00 -0.32408237923821D-15 + 3 45 2 30 -0.73875759257911D-01 0.18173331239854D-16 + 1 46 2 30 0.31321845540439D+01 0.28687799606351D-17 + 2 46 2 30 -0.30730874511020D+01 0.27086320053363D-15 + 3 46 2 30 -0.12261362992760D+01 0.18483967244806D-16 + 1 47 2 30 -0.24928118504911D+00 0.86314369179764D-18 + 2 47 2 30 -0.26127655378421D+00 0.81490177631915D-16 + 3 47 2 30 -0.20147194587619D+00 -0.97033055248807D-16 + 1 48 2 30 -0.35525035041939D+00 0.48310851706744D-16 + 2 48 2 30 0.42103726169297D+00 0.76910533559604D-17 + 3 48 2 30 0.32723300791449D+00 -0.22410859808394D-17 + 1 49 2 30 -0.48684142294518D+00 -0.23021070284102D-16 + 2 49 2 30 -0.28805146597436D+00 -0.80035348138652D-16 + 3 49 2 30 0.33277610511117D+00 -0.53448955612818D-17 + 1 50 2 30 -0.14985549786739D+02 -0.68785720353961D-17 + 2 50 2 30 -0.21376754587858D+02 -0.40644167031838D-16 + 3 50 2 30 0.10252583096720D+02 -0.38470758757516D-16 + 1 51 2 30 0.29589742680319D+00 0.46471641700581D-16 + 2 51 2 30 0.18674912064644D+00 0.20687824717989D-16 + 3 51 2 30 0.32161347997773D+00 -0.35156043296350D-17 + 1 52 2 30 -0.32676665815979D+00 0.30242676372136D-16 + 2 52 2 30 -0.55512387936140D+00 0.35340419993324D-16 + 3 52 2 30 0.44706759951065D+00 0.20958135321372D-16 + 1 53 2 30 -0.26937884890203D-01 0.86703759834769D-16 + 2 53 2 30 0.24073277920517D+00 -0.13004470906182D-15 + 3 53 2 30 0.26434993805051D-01 0.21564375439526D-16 + 1 54 2 30 -0.43748335270101D+00 -0.23634354943992D-16 + 2 54 2 30 0.16566364622926D+00 0.10101606859526D-16 + 3 54 2 30 -0.30593004354809D+00 -0.52386793027085D-18 + 1 55 2 30 -0.44374494864420D+00 0.50845438423464D-16 + 2 55 2 30 -0.71530023363884D+00 0.10257884024463D-15 + 3 55 2 30 0.44826197649394D+00 -0.26054298451090D-16 + 1 56 2 30 -0.10226835393024D+00 0.23494035594752D-16 + 2 56 2 30 -0.10484951280540D+00 0.53558968577757D-16 + 3 56 2 30 -0.15534832070321D+00 0.23675764399677D-16 + 1 57 2 30 -0.73751630300904D-01 -0.67109600120123D-16 + 2 57 2 30 -0.52495826598262D-01 0.14866799100037D-15 + 3 57 2 30 -0.85666039169640D-01 -0.14390589625938D-16 + 1 58 2 30 0.20031063282268D+01 -0.10460587085805D-15 + 2 58 2 30 0.26328894094707D+01 -0.13868318142103D-15 + 3 58 2 30 -0.11485207674171D+01 -0.12999525674012D-17 + 1 59 2 30 -0.12210961823145D+01 0.89594921074337D-16 + 2 59 2 30 0.30610124002741D+01 0.75520585399535D-16 + 3 59 2 30 -0.12571940962572D+01 0.23113293868418D-16 + 1 60 2 30 0.11779011964277D+00 -0.88925662051950D-16 + 2 60 2 30 -0.19873251756067D+00 0.10693706811431D-15 + 3 60 2 30 -0.46826809137950D-01 -0.77400291133260D-17 + 1 61 2 30 -0.12681713296579D+00 0.62428007105996D-16 + 2 61 2 30 -0.17411223374568D-01 -0.13039089239765D-16 + 3 61 2 30 0.11344991498160D+00 -0.31230994270210D-16 + 1 62 2 30 0.12076686035773D+01 0.58577596587412D-16 + 2 62 2 30 0.32532103886273D+01 0.14958710487022D-15 + 3 62 2 30 0.13634437152049D+01 0.65144890314653D-18 + 1 63 2 30 -0.12864439244776D+01 0.95089085601032D-16 + 2 63 2 30 0.30446783493883D+01 0.13358576463857D-17 + 3 63 2 30 0.13756832393009D+01 0.68142538970092D-17 + 1 64 2 30 -0.14072182679539D+00 0.11905790023906D-16 + 2 64 2 30 0.42578396056123D-01 0.27325904234515D-15 + 3 64 2 30 0.35137503702176D-01 0.44139019344759D-17 + 1 65 2 30 -0.15113141234999D+01 -0.30151803010749D-16 + 2 65 2 30 -0.31346312834977D+01 -0.92937008668287D-16 + 3 65 2 30 0.26673731561748D+01 0.15526828060084D-17 + 1 1 3 30 -0.36290693780693D+00 -0.90531534542670D-17 + 2 1 3 30 -0.47410951315899D+00 0.11147224577864D-16 + 3 1 3 30 -0.62389862780352D+00 0.15713415701839D-16 + 1 2 3 30 0.23561371178644D-01 -0.35123942318896D-16 + 2 2 3 30 -0.38181601510457D-01 -0.11294607152023D-16 + 3 2 3 30 0.22596097662279D+00 -0.74367187314223D-16 + 1 3 3 30 -0.38566323318886D+00 0.24283780355523D-16 + 2 3 3 30 0.44990739332757D+00 0.19018347767748D-16 + 3 3 3 30 0.18304592510121D+00 -0.64155882427353D-16 + 1 4 3 30 -0.44099543805920D+00 -0.49423088515316D-16 + 2 4 3 30 -0.47539775607859D+00 -0.18066333989189D-16 + 3 4 3 30 -0.39782518419851D+00 -0.47366270947360D-16 + 1 5 3 30 0.15147754531560D+00 -0.14892264617821D-16 + 2 5 3 30 -0.54811388730226D+00 0.81221770660953D-16 + 3 5 3 30 0.74085425446377D+00 0.18186340486655D-15 + 1 6 3 30 -0.53313172251161D+00 0.26005487056182D-16 + 2 6 3 30 -0.55121297710036D+00 0.78779122122774D-17 + 3 6 3 30 -0.45776171415235D+00 -0.13022872451404D-15 + 1 7 3 30 -0.13149198839102D+02 -0.21565656269683D-16 + 2 7 3 30 -0.13622835122802D+02 -0.22529597626993D-16 + 3 7 3 30 -0.25515961030837D+02 0.18423264734390D-15 + 1 8 3 30 -0.34701892963439D+00 0.33368818166059D-16 + 2 8 3 30 -0.27197998488542D+00 -0.90341151066632D-17 + 3 8 3 30 0.46633976140986D+00 0.17079285289415D-15 + 1 9 3 30 -0.12009469417863D+00 0.28984488688723D-16 + 2 9 3 30 0.89360005662854D-01 0.50889169811470D-18 + 3 9 3 30 -0.17372529719519D+00 -0.27440634083373D-16 + 1 10 3 30 -0.90506975035538D-01 0.31112234075497D-16 + 2 10 3 30 -0.95754861717255D-01 -0.10630320908659D-17 + 3 10 3 30 -0.24767196385392D+00 0.30105375684370D-15 + 1 11 3 30 0.65345278829130D-01 0.28875067343007D-16 + 2 11 3 30 -0.13154524935705D+00 -0.87472879132861D-19 + 3 11 3 30 -0.20631945270958D+00 -0.22293118395087D-15 + 1 12 3 30 0.91806944844036D-01 -0.15005981770896D-16 + 2 12 3 30 0.10486334114899D-01 -0.63258554211593D-18 + 3 12 3 30 -0.23173472146340D+00 0.19856081646435D-16 + 1 13 3 30 -0.13075677232505D+01 -0.31367331677064D-16 + 2 13 3 30 -0.32608007377772D+01 0.14843147989096D-17 + 3 13 3 30 -0.30373776208386D+01 -0.93907901755242D-16 + 1 14 3 30 -0.12494926559190D+01 -0.30493115980894D-16 + 2 14 3 30 0.32218343870409D+01 0.33234214413955D-17 + 3 14 3 30 -0.30962069657937D+01 0.83706274149649D-16 + 1 15 3 30 0.12387195275551D+01 -0.12273322776299D-16 + 2 15 3 30 -0.31474940004414D+01 -0.13261466497825D-17 + 3 15 3 30 -0.30867247988156D+01 -0.24113384229625D-15 + 1 16 3 30 -0.11479705400310D+00 0.29425255571822D-16 + 2 16 3 30 -0.13890585649113D+00 0.25000117793958D-16 + 3 16 3 30 0.20857800944944D+00 0.51164082378054D-16 + 1 17 3 30 0.46860018244848D+00 -0.11984218709761D-16 + 2 17 3 30 -0.43357222992647D+00 0.20791592084323D-16 + 3 17 3 30 -0.73242711028473D+00 0.88916393021571D-16 + 1 18 3 30 0.52606372110212D+00 0.34505181165753D-16 + 2 18 3 30 -0.52852461919546D+00 -0.10283297816392D-15 + 3 18 3 30 -0.41444205618785D+00 0.38328745079848D-16 + 1 19 3 30 0.41383561013825D+00 -0.38792688663992D-16 + 2 19 3 30 0.28358065322038D+00 0.19007289392038D-17 + 3 19 3 30 0.40863253993532D+00 -0.10228138619209D-15 + 1 20 3 30 0.53886715642619D+00 -0.28141181320215D-16 + 2 20 3 30 -0.49454898553087D+00 0.47247079069708D-16 + 3 20 3 30 -0.40136127322327D+00 -0.82865846836842D-16 + 1 21 3 30 -0.29670673634117D+00 0.14221529463404D-16 + 2 21 3 30 -0.32560982930179D+00 0.33743881342119D-16 + 3 21 3 30 0.19148274089983D+00 0.99048375436004D-16 + 1 22 3 30 0.17009621215183D+00 0.91650358942373D-16 + 2 22 3 30 0.17634066358114D+00 0.40930639563457D-16 + 3 22 3 30 -0.34388639654919D+00 0.46988106551359D-16 + 1 23 3 30 0.13400572938525D+02 -0.96348079333071D-17 + 2 23 3 30 -0.13522654321832D+02 0.52271093708736D-16 + 3 23 3 30 -0.25398477425812D+02 0.26219202219409D-15 + 1 24 3 30 0.43730085584253D-01 0.37545633411521D-18 + 2 24 3 30 -0.78781441904662D-01 0.85340506978603D-18 + 3 24 3 30 0.14807017428239D+01 0.53763916352047D-17 + 1 25 3 30 0.11505165038771D-01 -0.12010348581410D-17 + 2 25 3 30 -0.13248484477354D-01 0.14397150254981D-18 + 3 25 3 30 -0.10202224431551D+00 0.17321699074856D-17 + 1 26 3 30 0.33123829684837D-01 0.11373429809254D-17 + 2 26 3 30 0.18011905544853D-01 0.10737629103171D-17 + 3 26 3 30 -0.20614097171014D+00 -0.84037325720503D-17 + 1 27 3 30 0.39146425986253D-01 0.97526928226922D-19 + 2 27 3 30 0.47888314173912D-01 -0.14638138884076D-17 + 3 27 3 30 -0.13489545726293D+00 0.77254233040875D-18 + 1 28 3 30 -0.33085999166557D-01 0.33429813755630D-18 + 2 28 3 30 0.57655064743414D-01 -0.99041231122655D-18 + 3 28 3 30 -0.19741155862826D+00 0.12108354306535D-17 + 1 29 3 30 -0.69185119581400D-01 -0.74217221527515D-18 + 2 29 3 30 0.65998366997623D-01 0.36111413417843D-18 + 3 29 3 30 -0.41330471023633D-01 -0.98878842393590D-18 + 1 30 3 30 -0.23741259052653D+01 0.00000000000000D+00 + 2 30 3 30 0.52803207923283D+01 0.00000000000000D+00 + 3 30 3 30 0.11372291001901D+03 0.00000000000000D+00 + 1 31 3 30 -0.41585062465267D-01 -0.27508626656698D-17 + 2 31 3 30 -0.57289620687334D-01 -0.48781485943095D-19 + 3 31 3 30 -0.35836015653877D+00 -0.19820912811452D-16 + 1 32 3 30 -0.43370263089718D+00 0.27968690823561D-16 + 2 32 3 30 -0.74230068669528D+00 -0.68892164801591D-17 + 3 32 3 30 -0.53328893963903D+00 0.27055066095377D-15 + 1 33 3 30 0.30651034623013D+00 0.10125002073459D-16 + 2 33 3 30 0.21879589379041D+00 0.25162909374991D-16 + 3 33 3 30 0.27170792927837D+00 -0.71037764071111D-16 + 1 34 3 30 -0.20850740465839D+00 0.28051428229198D-16 + 2 34 3 30 0.15134694933493D+00 0.19579104270928D-16 + 3 34 3 30 0.37272648315900D+00 0.15139943081072D-15 + 1 35 3 30 -0.13010403468366D+02 -0.20780620058521D-16 + 2 35 3 30 0.13619025127797D+02 -0.31379700610099D-17 + 3 35 3 30 -0.25611518728893D+02 0.18334361574597D-15 + 1 36 3 30 -0.61658131533779D-01 0.14593306893842D-16 + 2 36 3 30 0.19180688496901D-02 -0.31474180890630D-16 + 3 36 3 30 0.14046373274300D+00 -0.65059647751586D-17 + 1 37 3 30 -0.38978028340426D+00 -0.13410209192340D-16 + 2 37 3 30 0.34588094598482D+00 -0.14654875211282D-16 + 3 37 3 30 -0.87452191548158D+00 0.21682648493011D-15 + 1 38 3 30 -0.42614734542216D+00 -0.43133659750663D-16 + 2 38 3 30 0.57215740886046D+00 -0.14344162083369D-16 + 3 38 3 30 -0.38401237108067D+00 -0.39991151947373D-16 + 1 39 3 30 -0.28159265728972D+00 0.36134012063584D-16 + 2 39 3 30 -0.32049253750883D+00 -0.30864000534471D-16 + 3 39 3 30 0.27473289303674D+00 -0.17756961470837D-15 + 1 40 3 30 0.12210961823145D+01 0.10132075825745D-15 + 2 40 3 30 -0.12571940962572D+01 0.39110663806748D-16 + 3 40 3 30 0.30610124002741D+01 -0.13114835812615D-16 + 1 41 3 30 0.73751630300904D-01 0.74052643478326D-16 + 2 41 3 30 -0.85666039169640D-01 0.15685724585537D-16 + 3 41 3 30 -0.52495826598269D-01 -0.22539260598753D-17 + 1 42 3 30 -0.20031063282269D+01 -0.33767567768964D-17 + 2 42 3 30 -0.11485207674171D+01 -0.41506860963234D-16 + 3 42 3 30 0.26328894094707D+01 0.30512916708859D-16 + 1 43 3 30 0.10226835393024D+00 0.91354561625509D-16 + 2 43 3 30 -0.15534832070322D+00 -0.64572973193193D-16 + 3 43 3 30 -0.10484951280540D+00 -0.63253812140186D-16 + 1 44 3 30 0.12864439244776D+01 0.84721450232654D-16 + 2 44 3 30 0.13756832393009D+01 0.13934964704242D-16 + 3 44 3 30 0.30446783493883D+01 0.30915572808744D-16 + 1 45 3 30 0.12681713296579D+00 -0.24672171521792D-16 + 2 45 3 30 0.11344991498160D+00 0.18173331239854D-16 + 3 45 3 30 -0.17411223374570D-01 0.21641665587912D-16 + 1 46 3 30 -0.12076686035773D+01 -0.21832964363934D-17 + 2 46 3 30 0.13634437152049D+01 0.18483967244806D-16 + 3 46 3 30 0.32532103886273D+01 -0.41722960340804D-16 + 1 47 3 30 -0.11779011964277D+00 0.81639142315412D-16 + 2 47 3 30 -0.46826809137956D-01 -0.97033055248807D-16 + 3 47 3 30 -0.19873251756067D+00 0.41054651330344D-17 + 1 48 3 30 -0.29589742680319D+00 0.41330276425697D-16 + 2 48 3 30 0.32161347997771D+00 -0.22410859808394D-17 + 3 48 3 30 0.18674912064643D+00 0.26083686564731D-15 + 1 49 3 30 0.48684142294518D+00 0.83049304193846D-17 + 2 49 3 30 0.33277610511117D+00 -0.53448955612818D-17 + 3 49 3 30 -0.28805146597436D+00 0.73480849304276D-16 + 1 50 3 30 0.14985549786739D+02 0.44137292319900D-16 + 2 50 3 30 0.10252583096720D+02 -0.38470758757516D-16 + 3 50 3 30 -0.21376754587858D+02 0.10294167472674D-16 + 1 51 3 30 0.35525035041940D+00 -0.83236224045099D-17 + 2 51 3 30 0.32723300791451D+00 -0.35156043296350D-17 + 3 51 3 30 0.42103726169296D+00 0.20058334928645D-15 + 1 52 3 30 0.44374494864420D+00 0.51592112350031D-18 + 2 52 3 30 0.44826197649394D+00 0.20958135321372D-16 + 3 52 3 30 -0.71530023363884D+00 -0.29252965414449D-16 + 1 53 3 30 0.26937884890203D-01 0.12572573105440D-17 + 2 53 3 30 0.26434993805051D-01 0.21564375439526D-16 + 3 53 3 30 0.24073277920517D+00 0.13293260687904D-15 + 1 54 3 30 0.43748335270102D+00 0.69158722974972D-16 + 2 54 3 30 -0.30593004354809D+00 -0.52386793027085D-18 + 3 54 3 30 0.16566364622927D+00 -0.95446364774028D-16 + 1 55 3 30 0.32676665815979D+00 0.22741639940391D-16 + 2 55 3 30 0.44706759951065D+00 -0.26054298451090D-16 + 3 55 3 30 -0.55512387936140D+00 0.77633636922276D-16 + 1 56 3 30 -0.82223371077734D-01 0.33223798040747D-17 + 2 56 3 30 0.12818383142601D+00 0.23675764399677D-16 + 3 56 3 30 0.81916361108250D-01 -0.68815243711249D-16 + 1 57 3 30 0.93447115162303D-01 -0.36238257676112D-17 + 2 57 3 30 0.12466780722943D+00 -0.14390589625938D-16 + 3 57 3 30 -0.23208147027117D+00 0.24158634771742D-15 + 1 58 3 30 0.32779236897385D+01 -0.11467677789599D-18 + 2 58 3 30 0.95452131471842D+00 -0.12999525674012D-17 + 3 58 3 30 -0.30775016116619D+01 0.46734198620490D-16 + 1 59 3 30 -0.31155961361121D+01 0.88428159162653D-17 + 2 59 3 30 0.14276448489624D+01 0.23113293868418D-16 + 3 59 3 30 -0.30423786554363D+01 -0.69691894530997D-16 + 1 60 3 30 0.24928118504911D+00 0.23458934145664D-17 + 2 60 3 30 -0.20147194587619D+00 -0.77400291133260D-17 + 3 60 3 30 -0.26127655378421D+00 0.36294110221788D-16 + 1 61 3 30 -0.81668301919142D-01 -0.19897948705994D-17 + 2 61 3 30 -0.73875759257909D-01 -0.31230994270210D-16 + 3 61 3 30 -0.21310322738957D+00 -0.41082350073096D-16 + 1 62 3 30 -0.31321845540439D+01 0.27221505545981D-17 + 2 62 3 30 -0.12261362992760D+01 0.65144890314653D-18 + 3 62 3 30 -0.30730874511020D+01 -0.11809725212397D-15 + 1 63 3 30 0.31016132636269D+01 -0.30196261705027D-18 + 2 63 3 30 -0.11343705741543D+01 0.68142538970092D-17 + 3 63 3 30 -0.30139916482755D+01 0.11943369547736D-16 + 1 64 3 30 0.14072182679556D+00 -0.32601987993750D-16 + 2 64 3 30 0.35137503702176D-01 0.44139019344759D-17 + 3 64 3 30 0.42578396056148D-01 -0.82917615313910D-16 + 1 65 3 30 0.15113141234996D+01 -0.42411612290372D-17 + 2 65 3 30 0.26677893856777D+01 0.15526828060084D-17 + 3 65 3 30 -0.31351541603740D+01 0.18484270664628D-15 + 1 1 1 31 0.19865530001746D+00 -0.95734826039877D-17 + 2 1 1 31 -0.36826551461468D-01 -0.34872919307562D-16 + 3 1 1 31 -0.36826551461464D-01 -0.87936554523343D-17 + 1 2 1 31 -0.64234105542516D+00 0.24628847017983D-16 + 2 2 1 31 -0.29992653005328D+00 0.35448121278028D-17 + 3 2 1 31 -0.31903292504865D+00 -0.29994698372317D-16 + 1 3 1 31 -0.64234105542511D+00 -0.21864932971096D-16 + 2 3 1 31 -0.31903292504870D+00 0.20328088698983D-16 + 3 3 1 31 -0.29992653005333D+00 -0.66389699130504D-16 + 1 4 1 31 0.57016707799583D+00 0.28374652421621D-15 + 2 4 1 31 -0.31466521596142D+00 -0.54778560200113D-17 + 3 4 1 31 -0.31466521596143D+00 0.13044401887589D-16 + 1 5 1 31 -0.72781243184309D+00 0.76014010345876D-16 + 2 5 1 31 -0.38621584503807D-04 0.14644880188910D-16 + 3 5 1 31 -0.38621584511818D-04 -0.21543361988892D-16 + 1 6 1 31 0.16030304388458D+00 -0.54342580679947D-16 + 2 6 1 31 -0.27943292278076D+00 0.10418895826810D-16 + 3 6 1 31 0.29804618665440D+00 0.32588542342182D-16 + 1 7 1 31 0.16030304388451D+00 0.27519595884985D-16 + 2 7 1 31 0.29804618665443D+00 -0.12901652076840D-16 + 3 7 1 31 -0.27943292278048D+00 0.25284261114593D-16 + 1 8 1 31 -0.24102957627296D+02 -0.88054869493541D-16 + 2 8 1 31 -0.13096970677307D+02 0.26090605300299D-17 + 3 8 1 31 -0.13096970677307D+02 0.14715174441195D-16 + 1 9 1 31 -0.10863527376642D-01 -0.10393025178849D-15 + 2 9 1 31 -0.90909879638164D-01 0.24643572717846D-16 + 3 9 1 31 0.62933397444485D-01 -0.49369519913294D-17 + 1 10 1 31 -0.51506713558858D-01 -0.13868294926884D-15 + 2 10 1 31 0.14926596797348D+00 0.25788714712691D-16 + 3 10 1 31 0.14926596797347D+00 0.26061004278958D-16 + 1 11 1 31 -0.29533772217701D-01 0.21127002224944D-15 + 2 11 1 31 -0.89353214729586D-01 -0.17874276808087D-17 + 3 11 1 31 -0.89353214729588D-01 0.26964210811624D-16 + 1 12 1 31 -0.10863527376649D-01 0.74613205894974D-16 + 2 12 1 31 0.62933397444488D-01 0.24245331706953D-16 + 3 12 1 31 -0.90909879638165D-01 -0.30927047093613D-16 + 1 13 1 31 0.31199813867581D+01 -0.22555145396169D-16 + 2 13 1 31 -0.13607069780245D+01 -0.76645375802922D-17 + 3 13 1 31 0.13222195601823D+01 0.90932652625256D-17 + 1 14 1 31 0.29502604004244D+01 -0.14822756832923D-15 + 2 14 1 31 0.12981116995013D+01 0.24933688175919D-16 + 3 14 1 31 0.12981116995013D+01 -0.29153637013940D-16 + 1 15 1 31 0.31199813867579D+01 0.33856126885987D-17 + 2 15 1 31 0.13222195601823D+01 -0.33122460771493D-16 + 3 15 1 31 -0.13607069780244D+01 0.30165838013755D-16 + 1 16 1 31 -0.37941196594301D+00 0.97142454510114D-16 + 2 16 1 31 0.39126828577215D+00 0.20591365832333D-18 + 3 16 1 31 0.47241760155952D+00 -0.14920147616448D-16 + 1 17 1 31 0.27094753380644D+00 0.16760266278867D-15 + 2 17 1 31 0.71745259578828D-02 0.12866797564001D-16 + 3 17 1 31 0.71745259578770D-02 -0.22087978026742D-16 + 1 18 1 31 0.45964836441715D+00 -0.18069074638987D-15 + 2 18 1 31 0.30940070739701D+00 0.24319912597352D-17 + 3 18 1 31 0.30940070739702D+00 -0.33296117970556D-17 + 1 19 1 31 -0.37941196594312D+00 -0.71590550407830D-17 + 2 19 1 31 0.47241760155955D+00 -0.71647323302301D-17 + 3 19 1 31 0.39126828577219D+00 -0.25880222447687D-16 + 1 20 1 31 0.25002441018998D+00 0.11146966522940D-15 + 2 20 1 31 0.27016392427595D+00 -0.39446027602214D-16 + 3 20 1 31 -0.32656081583013D+00 0.25182043805573D-16 + 1 21 1 31 -0.68544091796875D+00 0.17557896246034D-16 + 2 21 1 31 0.55083122718630D+00 0.24636388240891D-17 + 3 21 1 31 0.55083122718628D+00 0.29020815517279D-16 + 1 22 1 31 -0.30811084949260D+02 0.61606546626587D-16 + 2 22 1 31 0.14289485317980D+02 -0.49097390793069D-17 + 3 22 1 31 0.14289485317980D+02 0.11691855020358D-16 + 1 23 1 31 0.25002441018994D+00 -0.17268470070287D-16 + 2 23 1 31 -0.32656081583012D+00 -0.17925528146375D-17 + 3 23 1 31 0.27016392427599D+00 0.29458929847898D-16 + 1 24 1 31 -0.81366906740252D-01 -0.20173257347590D-17 + 2 24 1 31 0.28304415116112D-02 0.57983878544504D-18 + 3 24 1 31 0.28304415116052D-02 0.28664976273684D-18 + 1 25 1 31 -0.11363055334646D+00 -0.89860146671637D-19 + 2 25 1 31 0.61648165921745D-01 -0.98378558128048D-19 + 3 25 1 31 -0.97176491307935D-01 -0.95590947141598D-19 + 1 26 1 31 -0.11363055334639D+00 0.98493615939596D-18 + 2 26 1 31 -0.97176491307949D-01 -0.34261726435926D-18 + 3 26 1 31 0.61648165921750D-01 -0.40809812975324D-18 + 1 27 1 31 -0.33051870416498D+00 0.44575978695242D-17 + 2 27 1 31 -0.39177330521729D-01 0.16666690891584D-17 + 3 27 1 31 -0.39177330521712D-01 -0.22891068926742D-18 + 1 28 1 31 0.13892195032365D+01 0.21691572411780D-17 + 2 28 1 31 0.69185119581400D-01 -0.11358369724469D-18 + 3 28 1 31 0.69185119581400D-01 0.50244748681782D-18 + 1 29 1 31 -0.19295300699173D+00 -0.15666620230078D-17 + 2 29 1 31 -0.41585062465267D-01 -0.57246360427092D-18 + 3 29 1 31 0.33085999166557D-01 0.58487452491225D-18 + 1 30 1 31 -0.19295300699171D+00 -0.10191973588382D-16 + 2 30 1 31 0.33085999166557D-01 0.59880321249414D-18 + 3 30 1 31 -0.41585062465267D-01 0.27508626656698D-17 + 1 31 1 31 0.12009064483836D+03 0.00000000000000D+00 + 2 31 1 31 -0.23741259052651D+01 0.00000000000000D+00 + 3 31 1 31 -0.23741259052651D+01 0.00000000000000D+00 + 1 32 1 31 0.39765551661824D+00 -0.47455742510027D-16 + 2 32 1 31 0.51165184777610D+00 0.55630405712177D-16 + 3 32 1 31 0.29725170472749D+00 0.12552049959713D-18 + 1 33 1 31 -0.79080780410649D+00 0.16888478060301D-15 + 2 33 1 31 0.50890489309559D+00 -0.12668905934406D-16 + 3 33 1 31 -0.49802215951676D+00 0.75591297087727D-16 + 1 34 1 31 -0.25328120975725D+02 -0.24402538469962D-15 + 2 34 1 31 0.13571489657005D+02 -0.18956231111718D-17 + 3 34 1 31 -0.13217865722021D+02 0.10110972308886D-16 + 1 35 1 31 0.25011915021962D+00 -0.17569903852944D-16 + 2 35 1 31 -0.34036146741602D+00 0.39214734029609D-16 + 3 35 1 31 -0.30473593415092D+00 0.48428168640550D-16 + 1 36 1 31 -0.23492183623367D+00 0.10656681927066D-16 + 2 36 1 31 0.42797690548081D+00 0.16589534148608D-16 + 3 36 1 31 -0.17379260137787D+00 0.81155304615788D-17 + 1 37 1 31 0.25051017034733D+00 0.57216920681328D-17 + 2 37 1 31 -0.53470638894170D-01 0.29801982434101D-17 + 3 37 1 31 -0.19633221284502D-01 -0.30851320073156D-16 + 1 38 1 31 0.44208024797584D+00 -0.13312520066655D-15 + 2 38 1 31 0.30221072566820D+00 -0.19573360908760D-16 + 3 38 1 31 -0.30252389954020D+00 0.50424680817368D-16 + 1 39 1 31 -0.33895793998501D+00 0.96615837845019D-16 + 2 39 1 31 0.47850355038478D+00 0.18039097199449D-16 + 3 39 1 31 -0.46633448469616D+00 0.10120253532085D-16 + 1 40 1 31 -0.23944541779591D+00 0.20104019573457D-16 + 2 40 1 31 -0.11482546015925D+00 0.88991521287457D-18 + 3 40 1 31 -0.80210145194051D-01 -0.29182090589108D-17 + 1 41 1 31 -0.31707252962002D+01 -0.21404471287752D-15 + 2 41 1 31 0.31091888531854D+01 -0.34185312449900D-18 + 3 41 1 31 -0.12344925828659D+01 -0.31434195062221D-16 + 1 42 1 31 -0.11821621565578D+00 0.77626233077795D-16 + 2 42 1 31 0.13987575062728D+00 -0.45975116271835D-17 + 3 42 1 31 0.72227401361728D-01 0.15569740300679D-16 + 1 43 1 31 -0.31127751678940D+01 0.12177832291357D-15 + 2 43 1 31 -0.32191059477274D+01 -0.18708852698395D-17 + 3 43 1 31 0.14529028836111D+01 0.18910039476572D-16 + 1 44 1 31 -0.22652366868191D+00 0.16654183304890D-15 + 2 44 1 31 0.11753736046785D+00 -0.87484870704695D-18 + 3 44 1 31 -0.10238686586998D+00 -0.38912646449701D-16 + 1 45 1 31 -0.30043583412530D+01 0.24147930646924D-15 + 2 45 1 31 -0.31738889652453D+01 0.14383840067677D-17 + 3 45 1 31 -0.13652157069082D+01 -0.24527375754136D-17 + 1 46 1 31 -0.22012489406827D+00 -0.14550995665723D-15 + 2 46 1 31 0.41272559615122D-01 -0.13360594646457D-18 + 3 46 1 31 0.14109272489711D+00 0.17786769370754D-16 + 1 47 1 31 -0.28051599479846D+01 0.23705327314646D-15 + 2 47 1 31 0.26899078430667D+01 0.74504047641386D-17 + 3 47 1 31 0.11176717924403D+01 -0.84205256127583D-16 + 1 48 1 31 -0.79080780410653D+00 0.72496311950335D-16 + 2 48 1 31 -0.49802215951676D+00 -0.54115394926393D-18 + 3 48 1 31 0.50890489309556D+00 0.36500804524619D-17 + 1 49 1 31 0.25011915021961D+00 0.14554968582612D-15 + 2 49 1 31 -0.30473593415085D+00 -0.12949006868269D-16 + 3 49 1 31 -0.34036146741609D+00 -0.55958200001327D-16 + 1 50 1 31 0.39765551661822D+00 0.66043992821943D-17 + 2 50 1 31 0.29725170472751D+00 0.17410624869876D-16 + 3 50 1 31 0.51165184777623D+00 -0.32774074142526D-18 + 1 51 1 31 -0.25328120975725D+02 0.19811508541619D-16 + 2 51 1 31 -0.13217865722022D+02 -0.69441021604672D-17 + 3 51 1 31 0.13571489657003D+02 0.27202664561492D-16 + 1 52 1 31 0.25051017034733D+00 0.67492371125829D-16 + 2 52 1 31 -0.19633221284498D-01 -0.25861550199066D-16 + 3 52 1 31 -0.53470638894188D-01 -0.22509054918732D-16 + 1 53 1 31 -0.33895793998524D+00 -0.41578259404020D-16 + 2 53 1 31 -0.46633448469613D+00 -0.13314420557351D-16 + 3 53 1 31 0.47850355038475D+00 0.56303721445033D-16 + 1 54 1 31 -0.23492183623365D+00 0.34996550190871D-15 + 2 54 1 31 -0.17379260137787D+00 0.12321995419654D-19 + 3 54 1 31 0.42797690548088D+00 -0.24342639220439D-16 + 1 55 1 31 0.44208024797639D+00 -0.15307416669349D-15 + 2 55 1 31 -0.30252389954018D+00 0.45437810483558D-16 + 3 55 1 31 0.30221072566820D+00 0.95716165175606D-16 + 1 56 1 31 -0.11821621565578D+00 0.17703477633902D-15 + 2 56 1 31 0.72227401361730D-01 -0.10196782434774D-16 + 3 56 1 31 0.13987575062728D+00 -0.35016468443973D-18 + 1 57 1 31 -0.23944541779591D+00 0.29755566052620D-15 + 2 57 1 31 -0.80210145194049D-01 0.34819153434898D-16 + 3 57 1 31 -0.11482546015925D+00 -0.10201856093559D-17 + 1 58 1 31 -0.31127751678940D+01 0.23519469177665D-15 + 2 58 1 31 0.14529028836110D+01 0.59640290025621D-17 + 3 58 1 31 -0.32191059477274D+01 0.72758059590196D-19 + 1 59 1 31 -0.31707252962002D+01 -0.58096989457227D-16 + 2 59 1 31 -0.12344925828660D+01 -0.19031821731409D-16 + 3 59 1 31 0.31091888531854D+01 0.83951886712524D-18 + 1 60 1 31 -0.22012489406827D+00 -0.61941559846392D-16 + 2 60 1 31 0.14109272489711D+00 0.79621376383749D-16 + 3 60 1 31 0.41272559615119D-01 -0.12967388577483D-17 + 1 61 1 31 -0.22652366868191D+00 0.18813668035895D-15 + 2 61 1 31 -0.10238686586998D+00 -0.78592005188053D-16 + 3 61 1 31 0.11753736046785D+00 -0.31516574723230D-17 + 1 62 1 31 -0.28051599479846D+01 0.17804230331417D-15 + 2 62 1 31 0.11176717924403D+01 0.30134091942722D-16 + 3 62 1 31 0.26899078430667D+01 -0.18213703306491D-17 + 1 63 1 31 -0.30043583412530D+01 -0.59643877767808D-16 + 2 63 1 31 -0.13652157069082D+01 0.10091171189617D-15 + 3 63 1 31 -0.31738889652452D+01 -0.27251209889293D-17 + 1 64 1 31 0.25051001250170D+01 -0.18784509886545D-15 + 2 64 1 31 -0.15120404693318D+01 -0.10565992615400D-16 + 3 64 1 31 -0.15052401949793D+01 0.23823799320850D-16 + 1 65 1 31 0.21907249102938D+00 0.46339871619189D-15 + 2 65 1 31 0.39668473956292D+00 -0.12052347678235D-16 + 3 65 1 31 0.39668473956292D+00 0.17151733328758D-16 + 1 1 2 31 -0.61658131533780D-01 -0.34872919307562D-16 + 2 1 2 31 0.14046373274300D+00 0.78340401974542D-16 + 3 1 2 31 -0.19180688496901D-02 -0.25074965395339D-17 + 1 2 2 31 -0.42614734542216D+00 0.35448121278028D-17 + 2 2 2 31 -0.38401237108067D+00 -0.15063960022901D-15 + 3 2 2 31 -0.57215740886046D+00 -0.12895813316036D-16 + 1 3 2 31 -0.38978028340426D+00 0.20328088698983D-16 + 2 3 2 31 -0.87452191548157D+00 -0.85116325769978D-17 + 3 3 2 31 -0.34588094598482D+00 -0.61265672318980D-16 + 1 4 2 31 -0.28159265728973D+00 -0.54778560200113D-17 + 2 4 2 31 0.27473289303675D+00 0.36486245855698D-16 + 3 4 2 31 0.32049253750883D+00 0.54764622214686D-16 + 1 5 2 31 -0.43370263089718D+00 0.14644880188910D-16 + 2 5 2 31 -0.53328893963903D+00 0.61343319915117D-16 + 3 5 2 31 0.74230068669528D+00 -0.56929444293883D-17 + 1 6 2 31 -0.20850740465840D+00 0.10418895826810D-16 + 2 6 2 31 0.37272648315905D+00 -0.10640244630724D-15 + 3 6 2 31 -0.15134694933494D+00 0.27570106187750D-16 + 1 7 2 31 0.30651034623012D+00 -0.12901652076840D-16 + 2 7 2 31 0.27170792927838D+00 0.44145157396696D-16 + 3 7 2 31 -0.21879589379041D+00 0.65030679977495D-16 + 1 8 2 31 -0.13010403468366D+02 0.26090605300299D-17 + 2 8 2 31 -0.25611518728893D+02 0.55786530812581D-16 + 3 8 2 31 -0.13619025127797D+02 0.26678994379632D-16 + 1 9 2 31 0.91806944844045D-01 0.24643572717846D-16 + 2 9 2 31 -0.23173472146340D+00 0.20941337634736D-16 + 3 9 2 31 -0.10486334114899D-01 0.12596113875444D-17 + 1 10 2 31 -0.90506975035533D-01 0.25788714712691D-16 + 2 10 2 31 -0.24767196385392D+00 -0.10319942046983D-15 + 3 10 2 31 0.95754861717255D-01 -0.14454292512846D-17 + 1 11 2 31 0.65345278829125D-01 -0.17874276808087D-17 + 2 11 2 31 -0.20631945270958D+00 0.87868155173227D-17 + 3 11 2 31 0.13154524935704D+00 0.18509496825223D-17 + 1 12 2 31 -0.12009469417863D+00 0.24245331706953D-16 + 2 12 2 31 -0.17372529719519D+00 0.50204977100404D-16 + 3 12 2 31 -0.89360005662856D-01 0.18680820394103D-18 + 1 13 2 31 0.12387195275551D+01 -0.76645375802922D-17 + 2 13 2 31 -0.30867247988156D+01 0.18473864068293D-15 + 3 13 2 31 0.31474940004415D+01 -0.24323781254544D-17 + 1 14 2 31 -0.12494926559190D+01 0.24933688175919D-16 + 2 14 2 31 -0.30962069657936D+01 0.27857946086068D-17 + 3 14 2 31 -0.32218343870408D+01 0.39277110864107D-17 + 1 15 2 31 -0.13075677232505D+01 -0.33122460771493D-16 + 2 15 2 31 -0.30373776208385D+01 0.22716499381697D-15 + 3 15 2 31 0.32608007377771D+01 0.14180707507960D-18 + 1 16 2 31 0.32676665815979D+00 0.20591365832333D-18 + 2 16 2 31 -0.55512387936140D+00 0.12377951358526D-15 + 3 16 2 31 -0.44706759951065D+00 0.30771380859472D-16 + 1 17 2 31 0.26937884890204D-01 0.12866797564001D-16 + 2 17 2 31 0.24073277920517D+00 0.22839433960621D-15 + 3 17 2 31 -0.26434993805053D-01 -0.10052656452732D-16 + 1 18 2 31 0.43748335270101D+00 0.24319912597352D-17 + 2 18 2 31 0.16566364622926D+00 0.64884322174729D-16 + 3 18 2 31 0.30593004354809D+00 -0.13834816539364D-16 + 1 19 2 31 0.44374494864420D+00 -0.71647323302301D-17 + 2 19 2 31 -0.71530023363884D+00 0.10066893456915D-16 + 3 19 2 31 -0.44826197649394D+00 -0.36643202420704D-17 + 1 20 2 31 0.35525035041938D+00 -0.39446027602214D-16 + 2 20 2 31 0.42103726169297D+00 0.22653907777844D-15 + 3 20 2 31 -0.32723300791449D+00 -0.15480234472172D-16 + 1 21 2 31 0.48684142294518D+00 0.24636388240891D-17 + 2 21 2 31 -0.28805146597436D+00 -0.10655577187973D-15 + 3 21 2 31 -0.33277610511117D+00 -0.37749279367362D-16 + 1 22 2 31 0.14985549786739D+02 -0.49097390793069D-17 + 2 22 2 31 -0.21376754587858D+02 0.90536315408467D-16 + 3 22 2 31 -0.10252583096720D+02 0.13130235158191D-16 + 1 23 2 31 -0.29589742680319D+00 -0.17925528146375D-17 + 2 23 2 31 0.18674912064643D+00 0.12790575436418D-15 + 3 23 2 31 -0.32161347997774D+00 -0.36440713756779D-16 + 1 24 2 31 0.11505165038771D-01 0.57983878544504D-18 + 2 24 2 31 -0.10202224431551D+00 0.47795381634958D-18 + 3 24 2 31 0.13248484477354D-01 0.77526150071255D-19 + 1 25 2 31 0.39146425986253D-01 -0.98378558128048D-19 + 2 25 2 31 -0.13489545726293D+00 0.41156497026933D-17 + 3 25 2 31 -0.47888314173912D-01 0.82376259601914D-18 + 1 26 2 31 0.43730085584252D-01 -0.34261726435926D-18 + 2 26 2 31 0.14807017428239D+01 0.36163392736891D-17 + 3 26 2 31 0.78781441904662D-01 -0.31093770566378D-17 + 1 27 2 31 0.33123829684837D-01 0.16666690891584D-17 + 2 27 2 31 -0.20614097171014D+00 -0.42941507356441D-17 + 3 27 2 31 -0.18011905544853D-01 0.21119482417949D-18 + 1 28 2 31 -0.69185119581400D-01 -0.11358369724469D-18 + 2 28 2 31 -0.41330471023633D-01 -0.30111389125181D-17 + 3 28 2 31 -0.65998366997623D-01 -0.11673914814081D-17 + 1 29 2 31 -0.41585062465267D-01 -0.57246360427092D-18 + 2 29 2 31 -0.35836015653875D+00 -0.23665093561075D-17 + 3 29 2 31 0.57655064743414D-01 -0.19660918416225D-17 + 1 30 2 31 -0.33085999166557D-01 0.59880321249414D-18 + 2 30 2 31 -0.19741155862825D+00 0.11273489150513D-17 + 3 30 2 31 -0.57289620687334D-01 0.48781485943095D-19 + 1 31 2 31 -0.23741259052651D+01 0.00000000000000D+00 + 2 31 2 31 0.11372291001901D+03 0.00000000000000D+00 + 3 31 2 31 -0.52803207923289D+01 0.00000000000000D+00 + 1 32 2 31 0.17009621215182D+00 0.55630405712177D-16 + 2 32 2 31 -0.34388639654923D+00 0.49947321118716D-16 + 3 32 2 31 -0.17634066358115D+00 0.40796418433707D-16 + 1 33 2 31 0.53886715642619D+00 -0.12668905934406D-16 + 2 33 2 31 -0.40136127322328D+00 -0.20132558901586D-15 + 3 33 2 31 0.49454898553087D+00 -0.32472609816382D-16 + 1 34 2 31 0.13400572938525D+02 -0.18956231111718D-17 + 2 34 2 31 -0.25398477425812D+02 0.22212540994993D-16 + 3 34 2 31 0.13522654321832D+02 0.84803591785090D-17 + 1 35 2 31 -0.29670673634117D+00 0.39214734029609D-16 + 2 35 2 31 0.19148274089982D+00 0.11185898746367D-15 + 3 35 2 31 0.32560982930181D+00 0.11598219995080D-16 + 1 36 2 31 0.52606372110213D+00 0.16589534148608D-16 + 2 36 2 31 -0.41444205618786D+00 0.14791643826765D-15 + 3 36 2 31 0.52852461919547D+00 -0.66526600514351D-17 + 1 37 2 31 -0.11479705400310D+00 0.29801982434101D-17 + 2 37 2 31 0.20857800944944D+00 0.62707818084214D-16 + 3 37 2 31 0.13890585649113D+00 0.50056212069575D-17 + 1 38 2 31 0.41383561013825D+00 -0.19573360908760D-16 + 2 38 2 31 0.40863253993533D+00 0.12942756570059D-15 + 3 38 2 31 -0.28358065322038D+00 0.22303690026387D-16 + 1 39 2 31 0.46860018244849D+00 0.18039097199449D-16 + 2 39 2 31 -0.73242711028473D+00 -0.78131242003874D-16 + 3 39 2 31 0.43357222992647D+00 -0.12784378963131D-16 + 1 40 2 31 -0.81668301919140D-01 0.88991521287457D-18 + 2 40 2 31 -0.21310322738957D+00 0.23266542953864D-15 + 3 40 2 31 0.73875759257911D-01 0.35045653333011D-16 + 1 41 2 31 0.31016132636269D+01 -0.34185312449900D-18 + 2 41 2 31 -0.30139916482755D+01 -0.98836395442429D-16 + 3 41 2 31 0.11343705741543D+01 0.80448699464083D-16 + 1 42 2 31 0.24928118504911D+00 -0.45975116271835D-17 + 2 42 2 31 -0.26127655378421D+00 -0.10288795500768D-15 + 3 42 2 31 0.20147194587619D+00 -0.88623586826507D-16 + 1 43 2 31 -0.31321845540438D+01 -0.18708852698395D-17 + 2 43 2 31 -0.30730874511020D+01 0.29043512135827D-15 + 3 43 2 31 0.12261362992760D+01 -0.48681469008818D-16 + 1 44 2 31 0.93447115162302D-01 -0.87484870704695D-18 + 2 44 2 31 -0.23208147027117D+00 -0.52837667672617D-16 + 3 44 2 31 -0.12466780722943D+00 -0.11405788797888D-16 + 1 45 2 31 -0.31155961361122D+01 0.14383840067677D-17 + 2 45 2 31 -0.30423786554362D+01 0.17012889259227D-15 + 3 45 2 31 -0.14276448489624D+01 0.88630888516238D-16 + 1 46 2 31 -0.82223371077731D-01 -0.13360594646457D-18 + 2 46 2 31 0.81916361108249D-01 0.12826568823554D-15 + 3 46 2 31 -0.12818383142601D+00 0.85870190740727D-16 + 1 47 2 31 0.32779236897385D+01 0.74504047641386D-17 + 2 47 2 31 -0.30775016116620D+01 0.14875052935521D-15 + 3 47 2 31 -0.95452131471841D+00 0.18744069692354D-16 + 1 48 2 31 -0.53313172251160D+00 -0.54115394926393D-18 + 2 48 2 31 -0.45776171415235D+00 -0.14391443047421D-15 + 3 48 2 31 0.55121297710037D+00 0.13451277457718D-16 + 1 49 2 31 -0.34701892963438D+00 -0.12949006868269D-16 + 2 49 2 31 0.46633976140985D+00 0.13550676951021D-15 + 3 49 2 31 0.27197998488541D+00 0.33946428566650D-16 + 1 50 2 31 0.15147754531560D+00 0.17410624869876D-16 + 2 50 2 31 0.74085425446377D+00 0.29089323948801D-15 + 3 50 2 31 0.54811388730226D+00 -0.29714475186858D-16 + 1 51 2 31 -0.13149198839103D+02 -0.69441021604672D-17 + 2 51 2 31 -0.25515961030837D+02 0.55812313330885D-17 + 3 51 2 31 0.13622835122802D+02 -0.10153458471779D-16 + 1 52 2 31 0.23561371178644D-01 -0.25861550199066D-16 + 2 52 2 31 0.22596097662280D+00 0.29525293665407D-16 + 3 52 2 31 0.38181601510458D-01 -0.22854778210398D-16 + 1 53 2 31 -0.44099543805919D+00 -0.13314420557351D-16 + 2 53 2 31 -0.39782518419851D+00 -0.95256059402914D-16 + 3 53 2 31 0.47539775607859D+00 0.14493589508698D-16 + 1 54 2 31 -0.36290693780692D+00 0.12321995419654D-19 + 2 54 2 31 -0.62389862780352D+00 0.25505960877415D-15 + 3 54 2 31 0.47410951315899D+00 -0.32555473515196D-16 + 1 55 2 31 -0.38566323318888D+00 0.45437810483558D-16 + 2 55 2 31 0.18304592510120D+00 0.10826129337833D-15 + 3 55 2 31 -0.44990739332757D+00 0.24260318152814D-16 + 1 56 2 31 -0.11779011964277D+00 -0.10196782434774D-16 + 2 56 2 31 -0.19873251756066D+00 -0.94703027096404D-16 + 3 56 2 31 0.46826809137953D-01 -0.31298205668733D-16 + 1 57 2 31 0.12681713296579D+00 0.34819153434898D-16 + 2 57 2 31 -0.17411223374563D-01 -0.20707167774846D-16 + 3 57 2 31 -0.11344991498160D+00 0.24307756806079D-16 + 1 58 2 31 -0.12076686035773D+01 0.59640290025621D-17 + 2 58 2 31 0.32532103886273D+01 0.23898438311276D-15 + 3 58 2 31 -0.13634437152049D+01 0.24693697472227D-16 + 1 59 2 31 0.12864439244776D+01 -0.19031821731409D-16 + 2 59 2 31 0.30446783493883D+01 0.71316105470734D-16 + 3 59 2 31 -0.13756832393009D+01 0.32887249739870D-16 + 1 60 2 31 0.10226835393024D+00 0.79621376383749D-16 + 2 60 2 31 -0.10484951280540D+00 0.76842220080545D-16 + 3 60 2 31 0.15534832070321D+00 0.14389584059790D-16 + 1 61 2 31 0.73751630300905D-01 -0.78592005188053D-16 + 2 61 2 31 -0.52495826598257D-01 0.20194305765071D-15 + 3 61 2 31 0.85666039169640D-01 0.36869062751777D-17 + 1 62 2 31 -0.20031063282268D+01 0.30134091942722D-16 + 2 62 2 31 0.26328894094708D+01 -0.33656163008989D-16 + 3 62 2 31 0.11485207674171D+01 -0.17960658194133D-16 + 1 63 2 31 0.12210961823145D+01 0.10091171189617D-15 + 2 63 2 31 0.30610124002741D+01 -0.80834750287641D-16 + 3 63 2 31 0.12571940962572D+01 0.20707268658192D-16 + 1 64 2 31 0.15113141234999D+01 -0.10565992615400D-16 + 2 64 2 31 -0.31346312834977D+01 0.18533673043743D-15 + 3 64 2 31 -0.26673731561748D+01 -0.40307764362525D-17 + 1 65 2 31 0.14072182679541D+00 -0.12052347678235D-16 + 2 65 2 31 0.42578396056109D-01 0.20233495583250D-16 + 3 65 2 31 -0.35137503702205D-01 -0.44456324326884D-17 + 1 1 3 31 -0.61658131533781D-01 -0.87936554523343D-17 + 2 1 3 31 -0.19180688496901D-02 -0.25074965395339D-17 + 3 1 3 31 0.14046373274300D+00 -0.19494494559045D-17 + 1 2 3 31 -0.38978028340426D+00 -0.29994698372317D-16 + 2 2 3 31 -0.34588094598482D+00 -0.12895813316036D-16 + 3 2 3 31 -0.87452191548157D+00 -0.71030810203756D-16 + 1 3 3 31 -0.42614734542216D+00 -0.66389699130504D-16 + 2 3 3 31 -0.57215740886046D+00 -0.61265672318980D-16 + 3 3 3 31 -0.38401237108067D+00 -0.19321755978907D-17 + 1 4 3 31 -0.28159265728972D+00 0.13044401887589D-16 + 2 4 3 31 0.32049253750883D+00 0.54764622214686D-16 + 3 4 3 31 0.27473289303675D+00 -0.54234729362946D-16 + 1 5 3 31 -0.43370263089718D+00 -0.21543361988892D-16 + 2 5 3 31 0.74230068669528D+00 -0.56929444293883D-17 + 3 5 3 31 -0.53328893963903D+00 -0.88396046660688D-16 + 1 6 3 31 0.30651034623013D+00 0.32588542342182D-16 + 2 6 3 31 -0.21879589379041D+00 0.27570106187750D-16 + 3 6 3 31 0.27170792927837D+00 0.12603195478595D-16 + 1 7 3 31 -0.20850740465839D+00 0.25284261114593D-16 + 2 7 3 31 -0.15134694933494D+00 0.65030679977495D-16 + 3 7 3 31 0.37272648315903D+00 -0.12244653915203D-16 + 1 8 3 31 -0.13010403468366D+02 0.14715174441195D-16 + 2 8 3 31 -0.13619025127797D+02 0.26678994379632D-16 + 3 8 3 31 -0.25611518728893D+02 -0.40427515935534D-15 + 1 9 3 31 -0.12009469417863D+00 -0.49369519913294D-17 + 2 9 3 31 -0.89360005662854D-01 0.12596113875444D-17 + 3 9 3 31 -0.17372529719519D+00 -0.20356197859474D-15 + 1 10 3 31 -0.90506975035533D-01 0.26061004278958D-16 + 2 10 3 31 0.95754861717255D-01 -0.14454292512846D-17 + 3 10 3 31 -0.24767196385392D+00 -0.62950512202707D-15 + 1 11 3 31 0.65345278829125D-01 0.26964210811624D-16 + 2 11 3 31 0.13154524935704D+00 0.18509496825223D-17 + 3 11 3 31 -0.20631945270958D+00 -0.27726432382397D-15 + 1 12 3 31 0.91806944844041D-01 -0.30927047093613D-16 + 2 12 3 31 -0.10486334114901D-01 0.18680820394103D-18 + 3 12 3 31 -0.23173472146340D+00 -0.63782166979295D-15 + 1 13 3 31 -0.13075677232505D+01 0.90932652625256D-17 + 2 13 3 31 0.32608007377771D+01 -0.24323781254544D-17 + 3 13 3 31 -0.30373776208385D+01 0.21929607971901D-16 + 1 14 3 31 -0.12494926559190D+01 -0.29153637013940D-16 + 2 14 3 31 -0.32218343870408D+01 0.39277110864107D-17 + 3 14 3 31 -0.30962069657937D+01 -0.64007102857570D-17 + 1 15 3 31 0.12387195275551D+01 0.30165838013755D-16 + 2 15 3 31 0.31474940004414D+01 0.14180707507960D-18 + 3 15 3 31 -0.30867247988156D+01 0.30535225311310D-15 + 1 16 3 31 0.44374494864420D+00 -0.14920147616448D-16 + 2 16 3 31 -0.44826197649394D+00 0.30771380859472D-16 + 3 16 3 31 -0.71530023363884D+00 0.49401056247433D-16 + 1 17 3 31 0.26937884890204D-01 -0.22087978026742D-16 + 2 17 3 31 -0.26434993805053D-01 -0.10052656452732D-16 + 3 17 3 31 0.24073277920517D+00 -0.10940147990203D-15 + 1 18 3 31 0.43748335270102D+00 -0.33296117970556D-17 + 2 18 3 31 0.30593004354809D+00 -0.13834816539364D-16 + 3 18 3 31 0.16566364622927D+00 -0.25907839303257D-15 + 1 19 3 31 0.32676665815979D+00 -0.25880222447687D-16 + 2 19 3 31 -0.44706759951065D+00 -0.36643202420704D-17 + 3 19 3 31 -0.55512387936140D+00 0.29901061534883D-15 + 1 20 3 31 -0.29589742680318D+00 0.25182043805573D-16 + 2 20 3 31 -0.32161347997771D+00 -0.15480234472172D-16 + 3 20 3 31 0.18674912064643D+00 -0.71162388917673D-16 + 1 21 3 31 0.48684142294518D+00 0.29020815517279D-16 + 2 21 3 31 -0.33277610511117D+00 -0.37749279367362D-16 + 3 21 3 31 -0.28805146597436D+00 0.38317976534861D-16 + 1 22 3 31 0.14985549786739D+02 0.11691855020358D-16 + 2 22 3 31 -0.10252583096720D+02 0.13130235158191D-16 + 3 22 3 31 -0.21376754587858D+02 0.21704930457059D-15 + 1 23 3 31 0.35525035041940D+00 0.29458929847898D-16 + 2 23 3 31 -0.32723300791452D+00 -0.36440713756779D-16 + 3 23 3 31 0.42103726169300D+00 0.31205223908102D-16 + 1 24 3 31 0.11505165038771D-01 0.28664976273684D-18 + 2 24 3 31 0.13248484477354D-01 0.77526150071255D-19 + 3 24 3 31 -0.10202224431551D+00 -0.25429727549246D-17 + 1 25 3 31 0.43730085584252D-01 -0.95590947141598D-19 + 2 25 3 31 0.78781441904662D-01 0.82376259601914D-18 + 3 25 3 31 0.14807017428239D+01 0.25878525339102D-17 + 1 26 3 31 0.39146425986254D-01 -0.40809812975324D-18 + 2 26 3 31 -0.47888314173912D-01 -0.31093770566378D-17 + 3 26 3 31 -0.13489545726292D+00 0.11990903062887D-17 + 1 27 3 31 0.33123829684837D-01 -0.22891068926742D-18 + 2 27 3 31 -0.18011905544853D-01 0.21119482417949D-18 + 3 27 3 31 -0.20614097171014D+00 0.87987035393339D-17 + 1 28 3 31 -0.69185119581400D-01 0.50244748681782D-18 + 2 28 3 31 -0.65998366997623D-01 -0.11673914814081D-17 + 3 28 3 31 -0.41330471023640D-01 -0.41735591680443D-17 + 1 29 3 31 -0.33085999166557D-01 0.58487452491225D-18 + 2 29 3 31 -0.57655064743414D-01 -0.19660918416225D-17 + 3 29 3 31 -0.19741155862826D+00 0.36918725854808D-17 + 1 30 3 31 -0.41585062465267D-01 0.27508626656698D-17 + 2 30 3 31 0.57289620687334D-01 0.48781485943095D-19 + 3 30 3 31 -0.35836015653877D+00 0.19820912811452D-16 + 1 31 3 31 -0.23741259052651D+01 0.00000000000000D+00 + 2 31 3 31 -0.52803207923289D+01 0.00000000000000D+00 + 3 31 3 31 0.11372291001901D+03 0.00000000000000D+00 + 1 32 3 31 0.15147754531560D+00 0.12552049959713D-18 + 2 32 3 31 0.54811388730226D+00 0.40796418433707D-16 + 3 32 3 31 0.74085425446377D+00 -0.29276878262096D-15 + 1 33 3 31 -0.53313172251161D+00 0.75591297087727D-16 + 2 33 3 31 0.55121297710036D+00 -0.32472609816382D-16 + 3 33 3 31 -0.45776171415234D+00 -0.52612693317463D-17 + 1 34 3 31 -0.13149198839103D+02 0.10110972308886D-16 + 2 34 3 31 0.13622835122802D+02 0.84803591785090D-17 + 3 34 3 31 -0.25515961030837D+02 -0.30227702229897D-15 + 1 35 3 31 -0.34701892963440D+00 0.48428168640550D-16 + 2 35 3 31 0.27197998488544D+00 0.11598219995080D-16 + 3 35 3 31 0.46633976140989D+00 -0.15577377383637D-15 + 1 36 3 31 -0.36290693780692D+00 0.81155304615788D-17 + 2 36 3 31 0.47410951315899D+00 -0.66526600514351D-17 + 3 36 3 31 -0.62389862780352D+00 0.81953660778481D-17 + 1 37 3 31 0.23561371178644D-01 -0.30851320073156D-16 + 2 37 3 31 0.38181601510457D-01 0.50056212069575D-17 + 3 37 3 31 0.22596097662279D+00 0.53069770957883D-16 + 1 38 3 31 -0.38566323318886D+00 0.50424680817368D-16 + 2 38 3 31 -0.44990739332757D+00 0.22303690026387D-16 + 3 38 3 31 0.18304592510121D+00 0.12042058796877D-16 + 1 39 3 31 -0.44099543805919D+00 0.10120253532085D-16 + 2 39 3 31 0.47539775607859D+00 -0.12784378963131D-16 + 3 39 3 31 -0.39782518419851D+00 -0.53321777514821D-16 + 1 40 3 31 0.12681713296579D+00 -0.29182090589108D-17 + 2 40 3 31 -0.11344991498160D+00 0.35045653333011D-16 + 3 40 3 31 -0.17411223374580D-01 -0.30482663150166D-16 + 1 41 3 31 0.12864439244776D+01 -0.31434195062221D-16 + 2 41 3 31 -0.13756832393009D+01 0.80448699464083D-16 + 3 41 3 31 0.30446783493883D+01 0.35539007837499D-16 + 1 42 3 31 -0.11779011964277D+00 0.15569740300679D-16 + 2 42 3 31 0.46826809137951D-01 -0.88623586826507D-16 + 3 42 3 31 -0.19873251756066D+00 0.44704472074100D-16 + 1 43 3 31 -0.12076686035773D+01 0.18910039476572D-16 + 2 43 3 31 -0.13634437152049D+01 -0.48681469008818D-16 + 3 43 3 31 0.32532103886273D+01 0.10413767355377D-15 + 1 44 3 31 0.73751630300907D-01 -0.38912646449701D-16 + 2 44 3 31 0.85666039169642D-01 -0.11405788797888D-16 + 3 44 3 31 -0.52495826598257D-01 0.76848588618294D-16 + 1 45 3 31 0.12210961823145D+01 -0.24527375754136D-17 + 2 45 3 31 0.12571940962572D+01 0.88630888516238D-16 + 3 45 3 31 0.30610124002741D+01 -0.86497804594023D-16 + 1 46 3 31 0.10226835393024D+00 0.17786769370754D-16 + 2 46 3 31 0.15534832070322D+00 0.85870190740727D-16 + 3 46 3 31 -0.10484951280541D+00 0.13704253547308D-16 + 1 47 3 31 -0.20031063282269D+01 -0.84205256127583D-16 + 2 47 3 31 0.11485207674171D+01 0.18744069692354D-16 + 3 47 3 31 0.26328894094708D+01 0.18374737813093D-16 + 1 48 3 31 0.53886715642619D+00 0.36500804524619D-17 + 2 48 3 31 0.49454898553088D+00 0.13451277457718D-16 + 3 48 3 31 -0.40136127322328D+00 -0.11940350581002D-15 + 1 49 3 31 -0.29670673634116D+00 -0.55958200001327D-16 + 2 49 3 31 0.32560982930178D+00 0.33946428566650D-16 + 3 49 3 31 0.19148274089983D+00 0.11530828007773D-16 + 1 50 3 31 0.17009621215183D+00 -0.32774074142526D-18 + 2 50 3 31 -0.17634066358115D+00 -0.29714475186858D-16 + 3 50 3 31 -0.34388639654922D+00 0.21105209158395D-15 + 1 51 3 31 0.13400572938525D+02 0.27202664561492D-16 + 2 51 3 31 0.13522654321832D+02 -0.10153458471779D-16 + 3 51 3 31 -0.25398477425812D+02 0.13617558834379D-15 + 1 52 3 31 -0.11479705400310D+00 -0.22509054918732D-16 + 2 52 3 31 0.13890585649113D+00 -0.22854778210398D-16 + 3 52 3 31 0.20857800944944D+00 -0.14716689603451D-15 + 1 53 3 31 0.46860018244849D+00 0.56303721445033D-16 + 2 53 3 31 0.43357222992647D+00 0.14493589508698D-16 + 3 53 3 31 -0.73242711028474D+00 -0.11702784238853D-15 + 1 54 3 31 0.52606372110213D+00 -0.24342639220439D-16 + 2 54 3 31 0.52852461919546D+00 -0.32555473515196D-16 + 3 54 3 31 -0.41444205618786D+00 -0.16427006675790D-15 + 1 55 3 31 0.41383561013826D+00 0.95716165175606D-16 + 2 55 3 31 -0.28358065322038D+00 0.24260318152814D-16 + 3 55 3 31 0.40863253993532D+00 -0.79646337843999D-15 + 1 56 3 31 0.24928118504911D+00 -0.35016468443973D-18 + 2 56 3 31 0.20147194587619D+00 -0.31298205668733D-16 + 3 56 3 31 -0.26127655378421D+00 0.18668766674046D-15 + 1 57 3 31 -0.81668301919144D-01 -0.10201856093559D-17 + 2 57 3 31 0.73875759257912D-01 0.24307756806079D-16 + 3 57 3 31 -0.21310322738957D+00 0.20578633606580D-15 + 1 58 3 31 -0.31321845540438D+01 0.72758059590196D-19 + 2 58 3 31 0.12261362992760D+01 0.24693697472227D-16 + 3 58 3 31 -0.30730874511020D+01 0.31402538486101D-15 + 1 59 3 31 0.31016132636269D+01 0.83951886712524D-18 + 2 59 3 31 0.11343705741543D+01 0.32887249739870D-16 + 3 59 3 31 -0.30139916482755D+01 0.29647145026878D-15 + 1 60 3 31 -0.82223371077734D-01 -0.12967388577483D-17 + 2 60 3 31 -0.12818383142602D+00 0.14389584059790D-16 + 3 60 3 31 0.81916361108249D-01 0.76837173037608D-15 + 1 61 3 31 0.93447115162302D-01 -0.31516574723230D-17 + 2 61 3 31 -0.12466780722943D+00 0.36869062751777D-17 + 3 61 3 31 -0.23208147027117D+00 -0.32427250511738D-15 + 1 62 3 31 0.32779236897385D+01 -0.18213703306491D-17 + 2 62 3 31 -0.95452131471842D+00 -0.17960658194133D-16 + 3 62 3 31 -0.30775016116620D+01 -0.61757724769532D-15 + 1 63 3 31 -0.31155961361121D+01 -0.27251209889293D-17 + 2 63 3 31 -0.14276448489624D+01 0.20707268658192D-16 + 3 63 3 31 -0.30423786554362D+01 -0.81934434497246D-16 + 1 64 3 31 0.15113141234996D+01 0.23823799320850D-16 + 2 64 3 31 -0.26677893856777D+01 -0.40307764362525D-17 + 3 64 3 31 -0.31351541603740D+01 0.55042305555012D-15 + 1 65 3 31 0.14072182679558D+00 0.17151733328758D-16 + 2 65 3 31 -0.35137503702205D-01 -0.44456324326884D-17 + 3 65 3 31 0.42578396056134D-01 0.19741449075603D-16 + 1 1 1 32 -0.30801803345459D+01 0.65550326785309D-16 + 2 1 1 32 -0.21253208600549D+01 -0.17093233358620D-16 + 3 1 1 32 -0.32340459656325D+01 0.73459705284080D-17 + 1 2 1 32 -0.30338589403062D+01 0.11753046206427D-15 + 2 2 1 32 0.14435244257966D+01 -0.28401689591502D-16 + 3 2 1 32 0.39313346883589D+01 -0.40338424441377D-18 + 1 3 1 32 -0.14227691375252D+00 0.20083676947035D-15 + 2 3 1 32 0.27447155986469D-01 0.21862525251836D-16 + 3 3 1 32 -0.82013102129521D-01 -0.47532717010467D-18 + 1 4 1 32 -0.19682298503715D+00 0.12014543471931D-15 + 2 4 1 32 0.12700528632820D+00 0.78850246494760D-16 + 3 4 1 32 -0.13436069301924D+00 -0.18623026567542D-17 + 1 5 1 32 -0.74255974099445D-01 -0.15424018529744D-15 + 2 5 1 32 0.76962261638419D-01 -0.42852540818123D-17 + 3 5 1 32 -0.71824896247095D+00 -0.25270291369320D-16 + 1 6 1 32 -0.31805611728353D+01 -0.29167598314720D-15 + 2 6 1 32 0.81602640442448D+00 0.20183938188824D-17 + 3 6 1 32 -0.29031814937507D+01 -0.81011328294352D-17 + 1 7 1 32 -0.21143668169989D+00 0.91591899809299D-17 + 2 7 1 32 -0.42131995820271D-01 0.93623247820931D-16 + 3 7 1 32 -0.22701782239699D-01 0.26135038742979D-17 + 1 8 1 32 -0.17607364125100D+00 -0.86796371758206D-16 + 2 8 1 32 0.19179167582304D+00 -0.51578174768960D-16 + 3 8 1 32 0.62185490678857D-01 -0.19151270682116D-17 + 1 9 1 32 -0.56232000950253D+00 -0.27402323278100D-16 + 2 9 1 32 -0.84689654062463D+00 0.21214575040957D-16 + 3 9 1 32 0.60779202275352D+00 -0.92206355999421D-16 + 1 10 1 32 0.17320912229090D+00 0.23907569003271D-15 + 2 10 1 32 -0.37195381045453D-01 -0.22416721848657D-16 + 3 10 1 32 0.37195381045482D-01 0.52006933147005D-17 + 1 11 1 32 0.81947426797592D-01 0.23908042168544D-16 + 2 11 1 32 0.62253763050021D-01 -0.95993118649888D-17 + 3 11 1 32 -0.62253763049847D-01 -0.75402568083822D-17 + 1 12 1 32 -0.56228343072504D+00 0.82068570284314D-16 + 2 12 1 32 -0.60849755258757D+00 -0.10437941074980D-16 + 3 12 1 32 0.84689654062456D+00 0.37522437284893D-16 + 1 13 1 32 0.31536293489752D+00 -0.14205010179364D-15 + 2 13 1 32 -0.13251019054806D+00 -0.65443251862075D-17 + 3 13 1 32 -0.27980784023501D+00 0.14255155527635D-16 + 1 14 1 32 -0.67495503113383D+00 -0.41290113708321D-16 + 2 14 1 32 -0.39052847202263D+00 0.15262331674674D-16 + 3 14 1 32 0.39052847202263D+00 -0.45949617033566D-16 + 1 15 1 32 0.31531816585510D+00 -0.38074083211940D-16 + 2 15 1 32 0.27876761996522D+00 0.17929206262735D-16 + 3 15 1 32 0.13251019054803D+00 0.26618788462575D-16 + 1 16 1 32 -0.30338589403061D+01 0.11942293907374D-15 + 2 16 1 32 -0.39313346883592D+01 -0.22807301064844D-17 + 3 16 1 32 -0.14435244257965D+01 -0.20117910988296D-16 + 1 17 1 32 -0.19682298503713D+00 0.52266710532679D-17 + 2 17 1 32 0.13436069301927D+00 -0.76764352614552D-17 + 3 17 1 32 -0.12700528632818D+00 -0.65852872989884D-16 + 1 18 1 32 -0.30801803345459D+01 0.87267099795356D-16 + 2 18 1 32 0.32340459656324D+01 0.62480258633850D-18 + 3 18 1 32 0.21253208600549D+01 0.93179478968242D-16 + 1 19 1 32 -0.14227691375251D+00 -0.10697188601214D-15 + 2 19 1 32 0.82013102129497D-01 0.38018420514820D-17 + 3 19 1 32 -0.27447155986465D-01 0.35160675500294D-16 + 1 20 1 32 -0.31805611728353D+01 -0.19731639887360D-15 + 2 20 1 32 0.29031814937507D+01 0.28231852370825D-17 + 3 20 1 32 -0.81602640442448D+00 0.10338263572847D-15 + 1 21 1 32 -0.17607364125105D+00 0.29058149758285D-15 + 2 21 1 32 -0.62185490678856D-01 0.53189439401701D-17 + 3 21 1 32 -0.19179167582305D+00 0.48970953626802D-16 + 1 22 1 32 -0.74255974099534D-01 0.16678540200379D-15 + 2 22 1 32 0.71824896247095D+00 -0.46136302411463D-17 + 3 22 1 32 -0.76962261638420D-01 0.13557589506575D-16 + 1 23 1 32 -0.21143668169989D+00 0.10830787613535D-15 + 2 23 1 32 0.22701782239699D-01 0.82884138899082D-17 + 3 23 1 32 0.42131995820272D-01 0.26006197316223D-16 + 1 24 1 32 -0.65231166976829D+00 -0.45535878259471D-16 + 2 24 1 32 0.69849934038531D+00 -0.30545070773052D-16 + 3 24 1 32 -0.65185720354860D+00 -0.32186374828524D-16 + 1 25 1 32 -0.68667561303234D+00 -0.23807779181037D-15 + 2 25 1 32 -0.18211420457949D+00 -0.16073994897801D-16 + 3 25 1 32 0.18211420457948D+00 -0.81273823116261D-16 + 1 26 1 32 0.66616917000309D-01 -0.14643382445762D-16 + 2 26 1 32 0.39364144236511D-01 0.20923790516263D-16 + 3 26 1 32 -0.39364144236510D-01 -0.16946804113041D-17 + 1 27 1 32 -0.65231166976827D+00 0.21846171309730D-15 + 2 27 1 32 0.65185720354859D+00 -0.18900383647406D-16 + 3 27 1 32 -0.69849934038531D+00 -0.12169148429011D-17 + 1 28 1 32 0.39765551661822D+00 -0.86269362376912D-17 + 2 28 1 32 -0.15147754531560D+00 0.71887530114040D-17 + 3 28 1 32 -0.17009621215182D+00 0.58589124855121D-16 + 1 29 1 32 -0.30811084949260D+02 0.69665843886906D-16 + 2 29 1 32 0.14985549786739D+02 -0.18988666638310D-16 + 3 29 1 32 -0.14985549786739D+02 -0.10521706526006D-15 + 1 30 1 32 -0.72781243184308D+00 0.10446463798601D-15 + 2 30 1 32 0.43370263089718D+00 -0.25614181147044D-16 + 3 30 1 32 -0.43370263089718D+00 -0.27968690823561D-16 + 1 31 1 32 0.39765551661824D+00 0.47455742510027D-16 + 2 31 1 32 0.17009621215182D+00 -0.55630405712177D-16 + 3 31 1 32 0.15147754531560D+00 -0.12552049959713D-18 + 1 32 1 32 0.10869506154593D+03 0.00000000000000D+00 + 2 32 1 32 -0.38075754141960D+01 0.00000000000000D+00 + 3 32 1 32 0.38075754141964D+01 0.00000000000000D+00 + 1 33 1 32 -0.83718992029362D-01 -0.93251506036919D-16 + 2 33 1 32 -0.24475038061527D-01 -0.11582007897891D-16 + 3 33 1 32 -0.11599296174228D+00 -0.86006861121270D-17 + 1 34 1 32 -0.83718992029360D-01 -0.38276642933824D-16 + 2 34 1 32 0.11599296174228D+00 -0.15794012579433D-16 + 3 34 1 32 0.24475038061528D-01 0.20492721441180D-16 + 1 35 1 32 0.13557269446422D+01 -0.41759097786977D-17 + 2 35 1 32 -0.12214257078257D+00 -0.40250824512097D-17 + 3 35 1 32 0.12214257078257D+00 -0.15021198670472D-17 + 1 36 1 32 -0.40109275971455D+00 0.27378873839318D-16 + 2 36 1 32 -0.32585525274067D-01 -0.22743732757227D-16 + 3 36 1 32 0.32585525274079D-01 0.36593346641612D-17 + 1 37 1 32 -0.12969776100858D+00 0.77861116716955D-17 + 2 37 1 32 0.94007595960361D-02 -0.23504274399333D-17 + 3 37 1 32 -0.37629163850709D-01 -0.13849651016577D-16 + 1 38 1 32 -0.12969776100869D+00 -0.14995594501007D-16 + 2 38 1 32 0.37629163850712D-01 -0.71745936728042D-17 + 3 38 1 32 -0.94007595960453D-02 0.14852563161228D-16 + 1 39 1 32 -0.79888593078689D-01 -0.11123574124250D-16 + 2 39 1 32 0.21521344319738D-01 -0.72153574224526D-18 + 3 39 1 32 -0.21521344319737D-01 -0.85464204696647D-18 + 1 40 1 32 -0.77015767769167D+00 0.61466880698189D-18 + 2 40 1 32 0.30544660227199D+00 0.21717775358224D-16 + 3 40 1 32 0.42673169159091D+00 -0.25390421349930D-16 + 1 41 1 32 0.57174427519656D-01 -0.71409517476271D-16 + 2 41 1 32 -0.37616317979234D-02 0.22360327118669D-16 + 3 41 1 32 -0.55427107238872D-02 -0.28464401808445D-16 + 1 42 1 32 0.24026317668265D+00 -0.10348280162275D-15 + 2 42 1 32 -0.69344548756158D+00 -0.30717009714749D-16 + 3 42 1 32 0.69836127851068D+00 0.10202856592746D-16 + 1 43 1 32 -0.24353371012176D+02 -0.22078404724398D-16 + 2 43 1 32 0.17151064833579D+02 0.42715772361904D-17 + 3 43 1 32 0.13111602562201D+02 0.35527418801425D-16 + 1 44 1 32 0.19309537375821D+00 -0.13149375693260D-15 + 2 44 1 32 0.29764610515245D-01 0.31315626586053D-16 + 3 44 1 32 0.29121581310743D-01 -0.26381500955250D-17 + 1 45 1 32 -0.69224099805297D-01 -0.16659901912142D-16 + 2 45 1 32 0.25116868051170D+00 -0.10781423145058D-16 + 3 45 1 32 0.34082333285974D+00 -0.11220005205821D-16 + 1 46 1 32 0.33793601791265D+00 0.48355581084695D-16 + 2 46 1 32 -0.28590715431927D+00 -0.48808690438368D-17 + 3 46 1 32 -0.26317444518414D+00 0.39471330850334D-16 + 1 47 1 32 0.43428936181686D-01 0.33183503389285D-16 + 2 47 1 32 0.12590578526660D+00 -0.22355499543283D-18 + 3 47 1 32 -0.35757827279211D-01 -0.50453794759115D-16 + 1 48 1 32 0.28295565651853D+01 -0.20374238506436D-15 + 2 48 1 32 0.15565761819559D+01 -0.37297601795202D-16 + 3 48 1 32 0.15177320252663D+01 -0.14206451137930D-16 + 1 49 1 32 0.28298793736917D+01 0.41150996110731D-16 + 2 49 1 32 -0.76751713481803D+00 -0.23103049636318D-17 + 3 49 1 32 0.76751713481803D+00 -0.75266172854227D-17 + 1 50 1 32 0.24096778295632D+01 0.67475745158907D-16 + 2 50 1 32 0.62152515350495D+00 0.10849108803968D-16 + 3 50 1 32 -0.62152515350495D+00 0.13118911130004D-17 + 1 51 1 32 0.28295565651853D+01 -0.12295903836991D-16 + 2 51 1 32 -0.15177320252663D+01 0.59577746964374D-17 + 3 51 1 32 -0.15565761819559D+01 -0.13210076479294D-17 + 1 52 1 32 0.87836048719612D-01 0.19764998897918D-15 + 2 52 1 32 0.25019036966429D+00 -0.76202483442529D-17 + 3 52 1 32 -0.62056743571316D-02 -0.31948231512088D-17 + 1 53 1 32 -0.36115044457191D-01 0.69945403254899D-16 + 2 53 1 32 -0.14342087980567D-01 0.18447448716103D-16 + 3 53 1 32 0.14342087980569D-01 0.18178741757219D-16 + 1 54 1 32 -0.59361263754469D-01 -0.24164208286160D-15 + 2 54 1 32 -0.25927238246945D-01 -0.27842197217308D-16 + 3 54 1 32 0.25927238246940D-01 -0.17186670487973D-16 + 1 55 1 32 0.87836048719722D-01 -0.30735441022383D-15 + 2 55 1 32 0.62056743571347D-02 -0.23540887520572D-16 + 3 55 1 32 -0.25019036966429D+00 0.26623959835525D-16 + 1 56 1 32 -0.24353371012176D+02 -0.14318615341991D-15 + 2 56 1 32 -0.13111602562201D+02 -0.96959273668196D-17 + 3 56 1 32 -0.17151064833579D+02 0.18858899732710D-16 + 1 57 1 32 0.57174427519667D-01 0.20239641125552D-16 + 2 57 1 32 0.55427107238890D-02 -0.37950160918347D-16 + 3 57 1 32 0.37616317979234D-02 0.29916050437182D-16 + 1 58 1 32 0.24026317668264D+00 -0.12928927372482D-15 + 2 58 1 32 -0.69836127851068D+00 -0.10550044220869D-16 + 3 58 1 32 0.69344548756158D+00 -0.39190803932722D-16 + 1 59 1 32 -0.77015767769167D+00 -0.96883269669723D-16 + 2 59 1 32 -0.42673169159092D+00 -0.10041383444261D-16 + 3 59 1 32 -0.30544660227199D+00 -0.25618996091802D-16 + 1 60 1 32 0.43428936181697D-01 -0.53235494618196D-16 + 2 60 1 32 0.35757827279206D-01 -0.55038252254111D-16 + 3 60 1 32 -0.12590578526660D+00 -0.64976411728224D-17 + 1 61 1 32 -0.69224099805291D-01 0.17778199132973D-15 + 2 61 1 32 -0.34082333285974D+00 -0.26156267939681D-16 + 3 61 1 32 -0.25116868051170D+00 -0.76625601855355D-16 + 1 62 1 32 0.33793601791265D+00 0.10659325706941D-15 + 2 62 1 32 0.26317444518414D+00 0.14257749720395D-16 + 3 62 1 32 0.28590715431927D+00 -0.29119989155327D-16 + 1 63 1 32 0.19309537375821D+00 0.32276238834335D-16 + 2 63 1 32 -0.29121581310743D-01 -0.24050068794147D-16 + 3 63 1 32 -0.29764610515246D-01 -0.26782218672662D-16 + 1 64 1 32 -0.87492346166494D+01 0.25091276072565D-15 + 2 64 1 32 -0.46101094744401D+01 -0.13181370816776D-16 + 3 64 1 32 0.46055311281217D+01 -0.54823244658134D-16 + 1 65 1 32 -0.88973794530558D+01 0.48137006141015D-16 + 2 65 1 32 -0.12819194379086D+02 0.37801046188598D-17 + 3 65 1 32 0.12819194379086D+02 0.77709294450304D-19 + 1 1 2 32 0.97182246126536D+00 -0.17093233358620D-16 + 2 1 2 32 0.18056327608835D+01 0.46154599605008D-16 + 3 1 2 32 0.17882170017425D+01 -0.15659650309857D-16 + 1 2 2 32 -0.17512457825153D+00 -0.28401689591502D-16 + 2 2 2 32 0.96910325492601D+00 -0.16180749117726D-15 + 3 2 2 32 -0.26312833464487D+00 0.37124674525857D-16 + 1 3 2 32 -0.55458505988007D+00 0.21862525251836D-16 + 2 3 2 32 0.12432638468928D+01 0.58212580762205D-16 + 3 3 2 32 0.93257181798683D+00 -0.26785659226168D-17 + 1 4 2 32 -0.46363386037038D-01 0.78850246494760D-16 + 2 4 2 32 0.17901783548744D+00 -0.10425235702429D-15 + 3 4 2 32 -0.25060787165520D-01 0.34108683789860D-16 + 1 5 2 32 -0.76962261638420D-01 -0.42852540818123D-17 + 2 5 2 32 -0.70576265098416D+01 0.56669181369486D-16 + 3 5 2 32 0.72403265890006D+01 -0.20811720832650D-16 + 1 6 2 32 -0.17990004975472D+01 0.20183938188824D-17 + 2 6 2 32 0.26553207591071D+01 -0.10142943513508D-16 + 3 6 2 32 -0.15092623549221D+01 -0.28868535058383D-16 + 1 7 2 32 0.46714702670666D+00 0.93623247820931D-16 + 2 7 2 32 0.33819761922103D+00 0.40951039085053D-16 + 3 7 2 32 0.15857612882839D+00 0.17757942325154D-16 + 1 8 2 32 -0.98978215545329D-01 -0.51578174768960D-16 + 2 8 2 32 0.32936438032625D+00 -0.21403455436023D-15 + 3 8 2 32 -0.38755451493193D+00 0.24948888120962D-17 + 1 9 2 32 -0.94688371612197D+00 0.21214575040957D-16 + 2 9 2 32 -0.80139593358095D+00 -0.84488653600363D-16 + 3 9 2 32 0.95946071343017D+00 0.49864308216514D-17 + 1 10 2 32 -0.13264716423584D-01 -0.22416721848657D-16 + 2 10 2 32 0.23190305886141D+00 0.45480281726420D-16 + 3 10 2 32 -0.25240149066077D-02 -0.25524991111956D-16 + 1 11 2 32 0.50835817538221D-01 -0.95993118649888D-17 + 2 11 2 32 0.16837728753460D+00 -0.95328552954347D-16 + 3 11 2 32 -0.13309048952211D+00 -0.19401186041117D-16 + 1 12 2 32 -0.44537504933503D+00 -0.10437941074980D-16 + 2 12 2 32 -0.31366955960620D+00 0.36130155634119D-15 + 3 12 2 32 0.34902446133751D+00 0.34075018959275D-16 + 1 13 2 32 -0.17284784351051D+00 -0.65443251862075D-17 + 2 13 2 32 0.51643676632403D+00 -0.17398553977229D-15 + 3 13 2 32 0.20398932206613D+00 -0.11373077041093D-16 + 1 14 2 32 -0.45734933338906D+00 0.15262331674674D-16 + 2 14 2 32 -0.44967827290000D+00 -0.10257595246956D-15 + 3 14 2 32 0.60753170009590D+00 0.16956496984072D-16 + 1 15 2 32 0.29561622081644D+00 0.17929206262735D-16 + 2 15 2 32 0.25241496941609D+00 -0.65342718722364D-16 + 3 15 2 32 0.27006261064948D+00 0.19446027518331D-16 + 1 16 2 32 -0.46171555433878D+01 -0.22807301064844D-17 + 2 16 2 32 -0.50448506524643D+01 -0.17639600616756D-15 + 3 16 2 32 -0.29658009543567D+01 0.10247650543341D-15 + 1 17 2 32 0.92961861660142D-01 -0.76764352614552D-17 + 2 17 2 32 -0.36216127554279D+00 -0.14054654200842D-15 + 3 17 2 32 -0.20914673817797D-01 0.67927677920513D-16 + 1 18 2 32 0.27304288889754D+01 0.62480258633850D-18 + 2 18 2 32 -0.18994089981028D+01 0.11255467306831D-15 + 3 18 2 32 -0.20752894122620D+01 0.45428553254325D-17 + 1 19 2 32 0.63788193896406D+00 0.38018420514820D-17 + 2 19 2 32 0.62293770665093D+00 0.12332550283081D-15 + 3 19 2 32 0.10691912141850D+01 -0.92175713418735D-16 + 1 20 2 32 0.32919452336551D+01 0.28231852370825D-17 + 2 20 2 32 -0.31495638884331D+01 0.12859065356327D-15 + 3 20 2 32 0.10224519877059D+01 -0.44874447647660D-16 + 1 21 2 32 0.67118144898909D-02 0.53189439401701D-17 + 2 21 2 32 -0.52402244393142D+00 -0.80070751188020D-17 + 3 21 2 32 0.28673425970043D+00 -0.10393848318423D-15 + 1 22 2 32 0.71824896247095D+00 -0.46136302411463D-17 + 2 22 2 32 0.81483082564649D+01 0.13391380630115D-15 + 3 22 2 32 -0.72382928212444D+01 0.32363179250251D-16 + 1 23 2 32 -0.37172800955781D+00 0.82884138899082D-17 + 2 23 2 32 0.18707498056840D+00 -0.12437789570085D-15 + 3 23 2 32 0.51652952950282D+00 -0.33178413821259D-16 + 1 24 2 32 0.18627745527626D+00 -0.30545070773052D-16 + 2 24 2 32 -0.73467466067885D+00 -0.31856767103554D-16 + 3 24 2 32 0.50995383855731D+00 -0.13091075897772D-16 + 1 25 2 32 -0.37666733718614D+00 -0.16073994897801D-16 + 2 25 2 32 -0.79049413507121D-01 0.13741337733114D-15 + 3 25 2 32 -0.18446449841467D+00 0.99677914543327D-17 + 1 26 2 32 0.63234747208155D-01 0.20923790516263D-16 + 2 26 2 32 0.29670575418888D+00 -0.27962852351926D-15 + 3 26 2 32 0.15228710567634D+00 -0.18256769166968D-16 + 1 27 2 32 0.45000684445274D+00 -0.18900383647406D-16 + 2 27 2 32 -0.42401759444366D+00 0.43814278255051D-16 + 3 27 2 32 0.33361931413377D+00 0.20576883842987D-16 + 1 28 2 32 -0.29725170472751D+00 0.71887530114040D-17 + 2 28 2 32 0.74085425446378D+00 -0.99620237763851D-17 + 3 28 2 32 -0.17634066358116D+00 -0.34137657053535D-16 + 1 29 2 32 0.14289485317980D+02 -0.18988666638310D-16 + 2 29 2 32 -0.21376754587858D+02 -0.97715866515805D-16 + 3 29 2 32 0.10252583096720D+02 0.81851371648252D-17 + 1 30 2 32 0.38621584507360D-04 -0.25614181147044D-16 + 2 30 2 32 -0.53328893963903D+00 0.16304600768432D-16 + 3 30 2 32 -0.74230068669528D+00 0.68892164801591D-17 + 1 31 2 32 0.51165184777610D+00 -0.55630405712177D-16 + 2 31 2 32 -0.34388639654923D+00 -0.49947321118716D-16 + 3 31 2 32 0.54811388730226D+00 -0.40796418433707D-16 + 1 32 2 32 -0.38075754141960D+01 0.00000000000000D+00 + 2 32 2 32 0.11504972351550D+03 0.00000000000000D+00 + 3 32 2 32 -0.11489553790425D+02 0.00000000000000D+00 + 1 33 2 32 0.32925776099028D+00 -0.11582007897891D-16 + 2 33 2 32 -0.44422357773510D+00 -0.56695797940646D-17 + 3 33 2 32 0.39305705776450D+00 -0.39790444162902D-18 + 1 34 2 32 -0.39005282841352D+00 -0.15794012579433D-16 + 2 34 2 32 0.12797076026959D+00 0.80839309697993D-18 + 3 34 2 32 -0.28504399934005D+00 -0.16079991894836D-17 + 1 35 2 32 0.21546854528395D+00 -0.40250824512097D-17 + 2 35 2 32 0.20929947359173D+00 0.11694324013560D-16 + 3 35 2 32 0.21334612465260D+00 -0.13345056190543D-16 + 1 36 2 32 0.68047619236456D-01 -0.22743732757227D-16 + 2 36 2 32 -0.74394943703652D+00 0.92581187300226D-17 + 3 36 2 32 -0.57995663584141D+00 0.88692747388882D-18 + 1 37 2 32 -0.85317621194837D+00 -0.23504274399333D-17 + 2 37 2 32 0.62991047216482D-01 -0.23692308507948D-16 + 3 37 2 32 0.10028054761513D+01 0.43487729964666D-17 + 1 38 2 32 0.74074581612352D+00 -0.71745936728042D-17 + 2 38 2 32 0.10020919058717D+01 0.90254499829618D-17 + 3 38 2 32 -0.12637881894937D+01 0.17154845493521D-17 + 1 39 2 32 -0.24064116261817D-01 -0.72153574224526D-18 + 2 39 2 32 0.40195590498098D-01 0.19845698199259D-17 + 3 39 2 32 0.14872177932805D+00 0.55394485238206D-17 + 1 40 2 32 0.52080259707712D+00 0.21717775358224D-16 + 2 40 2 32 -0.52469610687681D+00 -0.74919593316451D-16 + 3 40 2 32 -0.41374287618090D+00 -0.15530532729712D-16 + 1 41 2 32 -0.33794676895591D-01 0.22360327118669D-16 + 2 41 2 32 -0.37611087067122D+00 -0.11539427420282D-16 + 3 41 2 32 -0.28225134787878D+00 0.13967888308639D-15 + 1 42 2 32 0.12568042557563D+01 -0.30717009714749D-16 + 2 42 2 32 -0.11782400519076D+01 -0.59819297917822D-16 + 3 42 2 32 0.87578480095377D+00 0.19287372491551D-16 + 1 43 2 32 0.22245450246926D+02 0.42715772361904D-17 + 2 43 2 32 -0.25943254441570D+02 0.35124398089465D-16 + 3 43 2 32 -0.23403793604854D+02 0.95532641695735D-17 + 1 44 2 32 0.28826890102680D-01 0.31315626586053D-16 + 2 44 2 32 0.79503731643841D-01 0.16091622967739D-15 + 3 44 2 32 0.50694550586705D-01 -0.53916733680600D-16 + 1 45 2 32 0.28641075667356D+00 -0.10781423145058D-16 + 2 45 2 32 -0.27726425993111D+00 0.12570525428421D-15 + 3 45 2 32 -0.60352768827599D+00 -0.36439317229185D-16 + 1 46 2 32 -0.17793550258318D+01 -0.48808690438368D-17 + 2 46 2 32 0.12265406544990D+01 -0.13746080831285D-15 + 3 46 2 32 0.15198829841141D+01 0.27963774897822D-16 + 1 47 2 32 -0.16931048991710D+01 -0.22355499543283D-18 + 2 47 2 32 -0.11150142372855D+01 0.16303156737237D-15 + 3 47 2 32 -0.13549678598456D+01 -0.66414979646776D-17 + 1 48 2 32 -0.18739913392292D+01 -0.37297601795202D-16 + 2 48 2 32 -0.34528163015957D+01 0.20678126414118D-17 + 3 48 2 32 -0.31092013568370D+01 0.44536624211305D-17 + 1 49 2 32 0.15363366088823D+01 -0.23103049636318D-17 + 2 49 2 32 -0.30757828154629D+01 -0.95512670039833D-16 + 3 49 2 32 0.25795643293890D+01 0.39622596916277D-17 + 1 50 2 32 -0.62152515350495D+00 0.10849108803968D-16 + 2 50 2 32 0.54718011965241D+01 -0.30969065403882D-16 + 3 50 2 32 0.73226250017448D+01 -0.16740167873160D-17 + 1 51 2 32 0.13275629014228D+01 0.59577746964374D-17 + 2 51 2 32 -0.25386322377401D+01 0.77193331495618D-16 + 3 51 2 32 -0.30549193890543D+01 0.46883318822678D-17 + 1 52 2 32 0.68445111688902D+00 -0.76202483442529D-17 + 2 52 2 32 -0.11649945096036D+01 0.29784913332488D-15 + 3 52 2 32 0.87950895163831D+00 0.49988687733641D-17 + 1 53 2 32 0.18965285104182D+00 0.18447448716103D-16 + 2 53 2 32 -0.28136420191462D+00 0.25635860580708D-16 + 3 53 2 32 -0.20782504841661D+00 0.24510293967682D-17 + 1 54 2 32 -0.13441851649689D+00 -0.27842197217308D-16 + 2 54 2 32 0.54392391872486D+00 -0.88274190708595D-16 + 3 54 2 32 0.62347852797931D+00 0.82218474718523D-18 + 1 55 2 32 -0.71809348402237D+00 -0.23540887520572D-16 + 2 55 2 32 0.81365140915614D+00 0.30925691852394D-15 + 3 55 2 32 -0.99491676041998D+00 0.33874168626735D-17 + 1 56 2 32 -0.14751333435336D+02 -0.96959273668196D-17 + 2 56 2 32 -0.26966858017480D+02 0.16756170775910D-15 + 3 56 2 32 -0.16509815584852D+02 -0.47714433123222D-16 + 1 57 2 32 0.41327057253000D-01 -0.37950160918347D-16 + 2 57 2 32 0.17804663887289D+00 0.56719251709999D-16 + 3 57 2 32 -0.20196117384879D-01 0.14303620307443D-16 + 1 58 2 32 -0.19589691143570D+01 -0.10550044220869D-16 + 2 58 2 32 0.19692102717770D+01 -0.21608883970240D-15 + 3 58 2 32 -0.15289918852252D+01 -0.18429763699264D-16 + 1 59 2 32 -0.45010459969444D+00 -0.10041383444261D-16 + 2 59 2 32 -0.45982337843817D+00 -0.71097825239411D-16 + 3 59 2 32 -0.46664333485390D+00 0.23859983264610D-16 + 1 60 2 32 0.13093678493619D+01 -0.55038252254111D-16 + 2 60 2 32 -0.11313505286587D+01 0.11047872353125D-15 + 3 60 2 32 -0.12676911053746D+01 -0.24645064549875D-16 + 1 61 2 32 -0.49185051631149D+00 -0.26156267939681D-16 + 2 61 2 32 -0.81185336706516D+00 -0.19162199632951D-15 + 3 61 2 32 -0.39151104755289D+00 -0.72178917226574D-16 + 1 62 2 32 0.16233365719528D+01 0.14257749720395D-16 + 2 62 2 32 0.11871324957381D+01 0.15055565895458D-15 + 3 62 2 32 0.17065758913518D+01 -0.63440770617417D-16 + 1 63 2 32 -0.79971555683547D-02 -0.24050068794147D-16 + 2 63 2 32 0.24478245845664D+00 0.10400264671774D-15 + 3 63 2 32 -0.94808506004454D-01 -0.15436572296851D-16 + 1 64 2 32 -0.41769986453752D+01 -0.13181370816776D-16 + 2 64 2 32 0.84982651392890D+00 -0.90821599868312D-16 + 3 64 2 32 0.28091029343295D+01 0.89324326357590D-19 + 1 65 2 32 -0.12933343460640D+02 0.37801046188598D-17 + 2 65 2 32 -0.34087583801540D+02 0.27230806063149D-15 + 3 65 2 32 0.35742517670047D+02 0.73266677754324D-18 + 1 1 3 32 -0.27304288889754D+01 0.73459705284080D-17 + 2 1 3 32 -0.20752894122620D+01 -0.15659650309857D-16 + 3 1 3 32 -0.18994089981028D+01 0.11483180226832D-15 + 1 2 3 32 0.46171555433879D+01 -0.40338424441377D-18 + 2 2 3 32 -0.29658009543567D+01 0.37124674525857D-16 + 3 2 3 32 -0.50448506524643D+01 -0.47771730488271D-16 + 1 3 3 32 -0.63788193896405D+00 -0.47532717010467D-18 + 2 3 3 32 0.10691912141850D+01 -0.26785659226168D-17 + 3 3 3 32 0.62293770665093D+00 -0.45885990802793D-16 + 1 4 3 32 -0.92961861660143D-01 -0.18623026567542D-17 + 2 4 3 32 -0.20914673817795D-01 0.34108683789860D-16 + 3 4 3 32 -0.36216127554279D+00 -0.11252056375010D-15 + 1 5 3 32 -0.71824896247095D+00 -0.25270291369320D-16 + 2 5 3 32 -0.72403265890006D+01 -0.20811720832650D-16 + 3 5 3 32 0.81483082564649D+01 -0.11402597448684D-15 + 1 6 3 32 -0.32919452336552D+01 -0.81011328294352D-17 + 2 6 3 32 0.10224519877059D+01 -0.28868535058383D-16 + 3 6 3 32 -0.31495638884331D+01 0.26661349166848D-15 + 1 7 3 32 0.37172800955781D+00 0.26135038742979D-17 + 2 7 3 32 0.51652952950282D+00 0.17757942325154D-16 + 3 7 3 32 0.18707498056840D+00 0.47902947426263D-16 + 1 8 3 32 -0.67118144898803D-02 -0.19151270682116D-17 + 2 8 3 32 0.28673425970042D+00 0.24948888120962D-17 + 3 8 3 32 -0.52402244393142D+00 -0.19075636272071D-15 + 1 9 3 32 0.44560814829238D+00 -0.92206355999421D-16 + 2 9 3 32 0.34902446133751D+00 0.49864308216514D-17 + 3 9 3 32 -0.31369810913833D+00 -0.25886014154773D-15 + 1 10 3 32 0.13264716423594D-01 0.52006933147005D-17 + 2 10 3 32 -0.25240149066001D-02 -0.25524991111956D-16 + 3 10 3 32 0.23190305886134D+00 -0.14421124076291D-15 + 1 11 3 32 -0.50835817538255D-01 -0.75402568083822D-17 + 2 11 3 32 -0.13309048952208D+00 -0.19401186041117D-16 + 3 11 3 32 0.16837728753467D+00 -0.20889869024792D-15 + 1 12 3 32 0.94699525274430D+00 0.37522437284893D-16 + 2 12 3 32 0.95887137638926D+00 0.34075018959275D-16 + 3 12 3 32 -0.80139593358100D+00 0.43014238613567D-16 + 1 13 3 32 -0.29514364931121D+00 0.14255155527635D-16 + 2 13 3 32 0.27006261064937D+00 -0.11373077041093D-16 + 3 13 3 32 0.25290236492053D+00 0.10453565948080D-16 + 1 14 3 32 0.45734933338906D+00 -0.45949617033566D-16 + 2 14 3 32 0.60753170009574D+00 0.16956496984072D-16 + 3 14 3 32 -0.44967827290000D+00 0.35792965172098D-15 + 1 15 3 32 0.17291822842403D+00 0.26618788462575D-16 + 2 15 3 32 0.20346636314716D+00 0.19446027518331D-16 + 3 15 3 32 0.51643676632399D+00 0.84440900454614D-16 + 1 16 3 32 0.17512457825153D+00 -0.20117910988296D-16 + 2 16 3 32 -0.26312833464487D+00 0.10247650543341D-15 + 3 16 3 32 0.96910325492598D+00 -0.26293701807703D-16 + 1 17 3 32 0.46363386037037D-01 -0.65852872989884D-16 + 2 17 3 32 -0.25060787165522D-01 0.67927677920513D-16 + 3 17 3 32 0.17901783548744D+00 -0.72512652142212D-16 + 1 18 3 32 -0.97182246126536D+00 0.93179478968242D-16 + 2 18 3 32 0.17882170017425D+01 0.45428553254325D-17 + 3 18 3 32 0.18056327608835D+01 0.37085216690898D-17 + 1 19 3 32 0.55458505988007D+00 0.35160675500294D-16 + 2 19 3 32 0.93257181798683D+00 -0.92175713418735D-16 + 3 19 3 32 0.12432638468928D+01 -0.11786439371834D-16 + 1 20 3 32 0.17990004975472D+01 0.10338263572847D-15 + 2 20 3 32 -0.15092623549221D+01 -0.44874447647660D-16 + 3 20 3 32 0.26553207591071D+01 -0.13128602769707D-16 + 1 21 3 32 0.98978215545313D-01 0.48970953626802D-16 + 2 21 3 32 -0.38755451493193D+00 -0.10393848318423D-15 + 3 21 3 32 0.32936438032624D+00 -0.74893012356799D-16 + 1 22 3 32 0.76962261638419D-01 0.13557589506575D-16 + 2 22 3 32 0.72382928212444D+01 0.32363179250251D-16 + 3 22 3 32 -0.70576265098416D+01 0.73761290736204D-16 + 1 23 3 32 -0.46714702670666D+00 0.26006197316223D-16 + 2 23 3 32 0.15857612882839D+00 -0.33178413821259D-16 + 3 23 3 32 0.33819761922103D+00 -0.77154604565937D-16 + 1 24 3 32 -0.45000684445280D+00 -0.32186374828524D-16 + 2 24 3 32 0.33361931413377D+00 -0.13091075897772D-16 + 3 24 3 32 -0.42401759444368D+00 0.76750290997512D-16 + 1 25 3 32 0.37666733718615D+00 -0.81273823116261D-16 + 2 25 3 32 -0.18446449841467D+00 0.99677914543327D-17 + 3 25 3 32 -0.79049413507123D-01 0.79892522050166D-16 + 1 26 3 32 -0.63234747208145D-01 -0.16946804113041D-17 + 2 26 3 32 0.15228710567634D+00 -0.18256769166968D-16 + 3 26 3 32 0.29670575418888D+00 -0.10304218140409D-15 + 1 27 3 32 -0.18627745527628D+00 -0.12169148429011D-17 + 2 27 3 32 0.50995383855732D+00 0.20576883842987D-16 + 3 27 3 32 -0.73467466067886D+00 0.97967579980980D-16 + 1 28 3 32 -0.51165184777622D+00 0.58589124855121D-16 + 2 28 3 32 0.54811388730226D+00 -0.34137657053535D-16 + 3 28 3 32 -0.34388639654923D+00 -0.47166586074674D-15 + 1 29 3 32 -0.14289485317981D+02 -0.10521706526006D-15 + 2 29 3 32 0.10252583096720D+02 0.81851371648252D-17 + 3 29 3 32 -0.21376754587858D+02 0.30405062599366D-15 + 1 30 3 32 -0.38621584513151D-04 -0.27968690823561D-16 + 2 30 3 32 -0.74230068669528D+00 0.68892164801591D-17 + 3 30 3 32 -0.53328893963903D+00 -0.27055066095377D-15 + 1 31 3 32 0.29725170472749D+00 -0.12552049959713D-18 + 2 31 3 32 -0.17634066358115D+00 -0.40796418433707D-16 + 3 31 3 32 0.74085425446377D+00 0.29276878262096D-15 + 1 32 3 32 0.38075754141964D+01 0.00000000000000D+00 + 2 32 3 32 -0.11489553790425D+02 0.00000000000000D+00 + 3 32 3 32 0.11504972351550D+03 0.00000000000000D+00 + 1 33 3 32 0.39005282841352D+00 -0.86006861121270D-17 + 2 33 3 32 -0.28504399934005D+00 -0.39790444162902D-18 + 3 33 3 32 0.12797076026958D+00 0.44921723570706D-17 + 1 34 3 32 -0.32925776099028D+00 0.20492721441180D-16 + 2 34 3 32 0.39305705776450D+00 -0.16079991894836D-17 + 3 34 3 32 -0.44422357773511D+00 -0.96972041260704D-17 + 1 35 3 32 -0.21546854528394D+00 -0.15021198670472D-17 + 2 35 3 32 0.21334612465260D+00 -0.13345056190543D-16 + 3 35 3 32 0.20929947359173D+00 -0.35307865449405D-16 + 1 36 3 32 -0.68047619236456D-01 0.36593346641612D-17 + 2 36 3 32 -0.57995663584141D+00 0.88692747388882D-18 + 3 36 3 32 -0.74394943703653D+00 0.79980546345869D-17 + 1 37 3 32 -0.74074581612352D+00 -0.13849651016577D-16 + 2 37 3 32 -0.12637881894937D+01 0.43487729964666D-17 + 3 37 3 32 0.10020919058717D+01 -0.99893313087649D-18 + 1 38 3 32 0.85317621194837D+00 0.14852563161228D-16 + 2 38 3 32 0.10028054761513D+01 0.17154845493521D-17 + 3 38 3 32 0.62991047216481D-01 -0.80501258408847D-17 + 1 39 3 32 0.24064116261817D-01 -0.85464204696647D-18 + 2 39 3 32 0.14872177932805D+00 0.55394485238206D-17 + 3 39 3 32 0.40195590498098D-01 0.30596481450161D-16 + 1 40 3 32 0.45010459969444D+00 -0.25390421349930D-16 + 2 40 3 32 -0.46664333485390D+00 -0.15530532729712D-16 + 3 40 3 32 -0.45982337843816D+00 -0.11800112273344D-15 + 1 41 3 32 -0.41327057252999D-01 -0.28464401808445D-16 + 2 41 3 32 -0.20196117384881D-01 0.13967888308639D-15 + 3 41 3 32 0.17804663887289D+00 -0.47559089753192D-16 + 1 42 3 32 0.19589691143570D+01 0.10202856592746D-16 + 2 42 3 32 -0.15289918852252D+01 0.19287372491551D-16 + 3 42 3 32 0.19692102717770D+01 -0.44555592653429D-15 + 1 43 3 32 0.14751333435335D+02 0.35527418801425D-16 + 2 43 3 32 -0.16509815584851D+02 0.95532641695735D-17 + 3 43 3 32 -0.26966858017480D+02 -0.28318135095804D-15 + 1 44 3 32 0.79971555683547D-02 -0.26381500955250D-17 + 2 44 3 32 -0.94808506004455D-01 -0.53916733680600D-16 + 3 44 3 32 0.24478245845664D+00 0.38226020634831D-15 + 1 45 3 32 0.49185051631149D+00 -0.11220005205821D-16 + 2 45 3 32 -0.39151104755289D+00 -0.36439317229185D-16 + 3 45 3 32 -0.81185336706516D+00 -0.16531080792140D-15 + 1 46 3 32 -0.16233365719528D+01 0.39471330850334D-16 + 2 46 3 32 0.17065758913518D+01 0.27963774897822D-16 + 3 46 3 32 0.11871324957381D+01 0.25185519722132D-15 + 1 47 3 32 -0.13093678493619D+01 -0.50453794759115D-16 + 2 47 3 32 -0.12676911053746D+01 -0.66414979646776D-17 + 3 47 3 32 -0.11313505286587D+01 0.26048879947501D-15 + 1 48 3 32 -0.13275629014228D+01 -0.14206451137930D-16 + 2 48 3 32 -0.30549193890543D+01 0.44536624211305D-17 + 3 48 3 32 -0.25386322377401D+01 -0.22609661238307D-15 + 1 49 3 32 -0.15363366088824D+01 -0.75266172854227D-17 + 2 49 3 32 0.25795643293890D+01 0.39622596916277D-17 + 3 49 3 32 -0.30757828154629D+01 -0.22974188094931D-15 + 1 50 3 32 0.62152515350495D+00 0.13118911130004D-17 + 2 50 3 32 0.73226250017448D+01 -0.16740167873160D-17 + 3 50 3 32 0.54718011965240D+01 0.22943568043503D-15 + 1 51 3 32 0.18739913392292D+01 -0.13210076479294D-17 + 2 51 3 32 -0.31092013568370D+01 0.46883318822678D-17 + 3 51 3 32 -0.34528163015957D+01 0.15870371367266D-15 + 1 52 3 32 0.71809348402237D+00 -0.31948231512088D-17 + 2 52 3 32 -0.99491676041998D+00 0.49988687733641D-17 + 3 52 3 32 0.81365140915615D+00 -0.28518022758370D-15 + 1 53 3 32 -0.18965285104182D+00 0.18178741757219D-16 + 2 53 3 32 -0.20782504841661D+00 0.24510293967682D-17 + 3 53 3 32 -0.28136420191463D+00 0.16414316844297D-15 + 1 54 3 32 0.13441851649689D+00 -0.17186670487973D-16 + 2 54 3 32 0.62347852797931D+00 0.82218474718523D-18 + 3 54 3 32 0.54392391872485D+00 0.74818346382996D-15 + 1 55 3 32 -0.68445111688902D+00 0.26623959835525D-16 + 2 55 3 32 0.87950895163831D+00 0.33874168626735D-17 + 3 55 3 32 -0.11649945096036D+01 0.12037959677762D-15 + 1 56 3 32 -0.22245450246926D+02 0.18858899732710D-16 + 2 56 3 32 -0.23403793604854D+02 -0.47714433123222D-16 + 3 56 3 32 -0.25943254441570D+02 0.54071685405975D-16 + 1 57 3 32 0.33794676895591D-01 0.29916050437182D-16 + 2 57 3 32 -0.28225134787878D+00 0.14303620307443D-16 + 3 57 3 32 -0.37611087067122D+00 0.35234828400625D-15 + 1 58 3 32 -0.12568042557563D+01 -0.39190803932722D-16 + 2 58 3 32 0.87578480095376D+00 -0.18429763699264D-16 + 3 58 3 32 -0.11782400519076D+01 -0.26310166553761D-15 + 1 59 3 32 -0.52080259707712D+00 -0.25618996091802D-16 + 2 59 3 32 -0.41374287618090D+00 0.23859983264610D-16 + 3 59 3 32 -0.52469610687681D+00 -0.66024713489538D-17 + 1 60 3 32 0.16931048991710D+01 -0.64976411728224D-17 + 2 60 3 32 -0.13549678598456D+01 -0.24645064549875D-16 + 3 60 3 32 -0.11150142372855D+01 0.24162954868345D-16 + 1 61 3 32 -0.28641075667356D+00 -0.76625601855355D-16 + 2 61 3 32 -0.60352768827599D+00 -0.72178917226574D-16 + 3 61 3 32 -0.27726425993110D+00 0.11061806460943D-15 + 1 62 3 32 0.17793550258318D+01 -0.29119989155327D-16 + 2 62 3 32 0.15198829841141D+01 -0.63440770617417D-16 + 3 62 3 32 0.12265406544990D+01 0.58326458590459D-16 + 1 63 3 32 -0.28826890102682D-01 -0.26782218672662D-16 + 2 63 3 32 0.50694550586706D-01 -0.15436572296851D-16 + 3 63 3 32 0.79503731643845D-01 0.56912425792124D-16 + 1 64 3 32 0.41769986453753D+01 -0.54823244658134D-16 + 2 64 3 32 0.28110118400061D+01 0.89324326357590D-19 + 3 64 3 32 0.85208276128702D+00 -0.32966861865279D-15 + 1 65 3 32 0.12933343460640D+02 0.77709294450304D-19 + 2 65 3 32 0.35742517670047D+02 0.73266677754324D-18 + 3 65 3 32 -0.34087583801540D+02 0.25092527019466D-15 + 1 1 1 33 -0.30031823137819D+01 -0.17390031419068D-15 + 2 1 1 33 0.11823768965084D+01 0.31081081508020D-16 + 3 1 1 33 0.30962339742664D+01 0.17242050270501D-17 + 1 2 1 33 -0.29949756481198D+01 -0.26797377063001D-15 + 2 2 1 33 -0.13678659944496D+01 -0.34602446942906D-16 + 3 2 1 33 -0.30926262122503D+01 -0.21327262827963D-18 + 1 3 1 33 -0.20285354699657D+00 0.19898043147249D-15 + 2 3 1 33 0.93528066163435D-01 0.86588825861243D-16 + 3 3 1 33 -0.89658032623899D-01 -0.59574498224857D-18 + 1 4 1 33 -0.23862176796400D+00 0.74518828764614D-16 + 2 4 1 33 -0.86016099995363D-01 0.97317736478607D-17 + 3 4 1 33 0.11390436163443D+00 -0.12464844476349D-17 + 1 5 1 33 -0.31805611728353D+01 0.47740254261429D-16 + 2 5 1 33 0.17990004975472D+01 -0.80658426818208D-16 + 3 5 1 33 -0.32919452336551D+01 0.37525734643277D-17 + 1 6 1 33 -0.31818805466033D+01 0.10311327295858D-16 + 2 6 1 33 -0.13625469848010D+01 -0.36771480310470D-16 + 3 6 1 33 0.30751735322857D+01 0.12987193288708D-17 + 1 7 1 33 -0.24757479388526D+00 -0.12909355573201D-15 + 2 7 1 33 0.14352455831500D+00 0.38634813600257D-16 + 3 7 1 33 0.73906612608213D-01 -0.64101957759358D-18 + 1 8 1 33 -0.22820373706449D+00 -0.70067054802674D-16 + 2 8 1 33 -0.11060314530730D+00 -0.88680402311854D-16 + 3 8 1 33 -0.78657874930478D-01 0.22212708167831D-18 + 1 9 1 33 0.24418805971230D+00 0.33092714244147D-16 + 2 9 1 33 0.37230511438893D-01 0.14880717471129D-16 + 3 9 1 33 -0.11820483903258D-02 -0.33076345073557D-16 + 1 10 1 33 -0.34841030513611D+00 0.56022751845048D-16 + 2 10 1 33 -0.43777978912037D+00 0.30233774897216D-16 + 3 10 1 33 0.47661236736015D+00 -0.45700040700485D-16 + 1 11 1 33 -0.37498050423353D+00 0.56695716109038D-16 + 2 11 1 33 -0.41799765230715D+00 0.11431469060584D-16 + 3 11 1 33 0.49376388172361D+00 -0.19020267317186D-16 + 1 12 1 33 0.48013010771485D+00 0.91194881694595D-17 + 2 12 1 33 -0.26610454512720D+00 0.21016323138082D-16 + 3 12 1 33 0.32762621479199D+00 -0.68611616632664D-17 + 1 13 1 33 -0.77613523706562D+00 0.67186276986042D-16 + 2 13 1 33 -0.48063399579714D+00 -0.84728015022751D-17 + 3 13 1 33 0.42047438751370D+00 0.11919323571129D-17 + 1 14 1 33 0.20201221094884D+00 0.99385683487815D-16 + 2 14 1 33 -0.33052259598514D+00 -0.35042973128615D-17 + 3 14 1 33 -0.34325330614272D+00 -0.26436051467484D-16 + 1 15 1 33 -0.26419464735399D+02 0.99274909329982D-16 + 2 15 1 33 -0.14029655666361D+02 0.15160866755568D-16 + 3 15 1 33 0.14605661763507D+02 0.28097042022775D-17 + 1 16 1 33 -0.20352226633815D+00 -0.24010635063238D-15 + 2 16 1 33 0.12521758778297D+00 -0.19556121680110D-17 + 3 16 1 33 -0.10774984940747D-01 -0.26028218288544D-16 + 1 17 1 33 -0.30470853174333D+01 -0.30603042492767D-15 + 2 17 1 33 -0.31172863636170D+01 0.20588781393393D-17 + 3 17 1 33 -0.13286275214552D+01 0.10580119043757D-15 + 1 18 1 33 -0.23467698998718D+00 0.30539666185175D-15 + 2 18 1 33 -0.96415435917295D-01 0.24902643019204D-17 + 3 18 1 33 0.12180751841965D+00 0.27399003877081D-16 + 1 19 1 33 -0.29233488661134D+01 0.12468327663436D-15 + 2 19 1 33 0.28728526686265D+01 -0.11873098790896D-17 + 3 19 1 33 0.12748485259548D+01 -0.44691400109622D-16 + 1 20 1 33 -0.24776983014886D+00 0.30915754306250D-15 + 2 20 1 33 -0.94115504274793D-01 0.53702784361112D-18 + 3 20 1 33 -0.43841709977770D-01 -0.88615286009805D-16 + 1 21 1 33 -0.31052957392001D+01 0.25485022386137D-15 + 2 21 1 33 0.32289744110740D+01 0.25302171891230D-17 + 3 21 1 33 -0.11850558323564D+01 -0.11754343176397D-16 + 1 22 1 33 -0.21143668169989D+00 0.22801957088274D-15 + 2 22 1 33 -0.37172800955781D+00 -0.11803172982689D-17 + 3 22 1 33 0.46714702670666D+00 -0.43304210663782D-16 + 1 23 1 33 -0.30238806664966D+01 0.15636092139222D-16 + 2 23 1 33 -0.32845967229456D+01 0.70168484891649D-19 + 3 23 1 33 0.12921767328817D+01 -0.71758645750786D-16 + 1 24 1 33 0.48538142032140D+00 -0.39502151584700D-16 + 2 24 1 33 0.26829885043050D+00 -0.18770808120739D-16 + 3 24 1 33 -0.33034754534781D+00 0.25470640300767D-16 + 1 25 1 33 -0.39730649977236D+00 -0.24352049972667D-15 + 2 25 1 33 0.50064688040607D+00 -0.38363504834391D-17 + 3 25 1 33 -0.46150686927486D+00 -0.26634603340347D-16 + 1 26 1 33 -0.39161458132892D+00 -0.84977414548565D-16 + 2 26 1 33 0.47745269960844D+00 0.58762415637742D-17 + 3 26 1 33 -0.39173006312076D+00 0.47782887456433D-16 + 1 27 1 33 0.28559695976668D+00 0.47053743660685D-16 + 2 27 1 33 -0.31288499790045D-02 0.48370494290863D-16 + 3 27 1 33 -0.37134587379390D-01 -0.17273743681440D-16 + 1 28 1 33 -0.25328120975725D+02 0.10167193681776D-15 + 2 28 1 33 0.13149198839103D+02 -0.40805909654314D-17 + 3 28 1 33 -0.13400572938525D+02 0.67888486687569D-17 + 1 29 1 33 0.25002441018995D+00 0.84314268290672D-16 + 2 29 1 33 -0.29589742680319D+00 0.83398983445921D-18 + 3 29 1 33 -0.35525035041941D+00 -0.64974152766397D-17 + 1 30 1 33 0.16030304388460D+00 -0.24358683781419D-15 + 2 30 1 33 0.20850740465841D+00 -0.27150671905286D-16 + 3 30 1 33 0.30651034623013D+00 -0.10125002073459D-16 + 1 31 1 33 -0.79080780410649D+00 -0.16888478060301D-15 + 2 31 1 33 0.53886715642619D+00 0.12668905934406D-16 + 3 31 1 33 -0.53313172251161D+00 -0.75591297087727D-16 + 1 32 1 33 -0.83718992029362D-01 0.93251506036919D-16 + 2 32 1 33 0.32925776099028D+00 0.11582007897891D-16 + 3 32 1 33 0.39005282841352D+00 0.86006861121270D-17 + 1 33 1 33 0.12009846314917D+03 0.00000000000000D+00 + 2 33 1 33 -0.59488669410392D-01 0.00000000000000D+00 + 3 33 1 33 -0.17989040590741D+01 0.00000000000000D+00 + 1 34 1 33 0.14728015480932D+01 -0.32210440190747D-17 + 2 34 1 33 -0.27724378819635D-01 -0.35005317139442D-18 + 3 34 1 33 0.63626998041331D-01 0.00000000000000D+00 + 1 35 1 33 -0.23565771303356D+00 0.13780585837212D-17 + 2 35 1 33 -0.76325334859223D-02 0.12781778733501D-18 + 3 35 1 33 -0.25941992352620D-01 -0.14532614563658D-18 + 1 36 1 33 -0.10369009279273D+00 0.39594332412098D-17 + 2 36 1 33 -0.25660247315378D-01 -0.69128625203389D-18 + 3 36 1 33 0.36928784194138D-01 -0.63502578047206D-18 + 1 37 1 33 -0.35562475976301D+00 -0.34768872684209D-17 + 2 37 1 33 0.24461857082303D-02 0.14512486137327D-17 + 3 37 1 33 -0.46994349775083D-01 0.35397979105080D-18 + 1 38 1 33 -0.16720242091942D+00 0.45231690236748D-18 + 2 38 1 33 -0.53321962162253D-01 -0.60552737528291D-18 + 3 38 1 33 0.50822928074397D-01 0.19779824975994D-18 + 1 39 1 33 -0.14651597359657D+00 -0.30033751764940D-17 + 2 39 1 33 0.41467919487293D-01 -0.66197809755462D-18 + 3 39 1 33 -0.78310784482450D-02 -0.20129320722851D-18 + 1 40 1 33 0.15328911515378D+00 0.10000762426554D-15 + 2 40 1 33 0.29601155427098D+00 -0.27194622152274D-16 + 3 40 1 33 -0.31389755507366D+00 -0.54025170331823D-17 + 1 41 1 33 -0.75060432465814D+00 -0.16977435971754D-16 + 2 41 1 33 0.41642775373069D+00 -0.43181128251271D-16 + 3 41 1 33 0.43144431608079D+00 -0.22795799185968D-16 + 1 42 1 33 -0.28281032658509D+02 -0.99120858753411D-16 + 2 42 1 33 0.14992323709904D+02 0.45258169104041D-16 + 3 42 1 33 0.13867197110953D+02 -0.13048442868159D-16 + 1 43 1 33 0.19042103809355D+00 0.86466887926863D-16 + 2 43 1 33 -0.42205070125685D+00 -0.20420334885671D-16 + 3 43 1 33 0.30050836975059D+00 -0.92346288269205D-17 + 1 44 1 33 -0.31512814179121D+00 -0.10965121803589D-16 + 2 44 1 33 0.41510684461685D+00 0.62586881815627D-17 + 3 44 1 33 0.48369823738220D+00 -0.48132222699479D-17 + 1 45 1 33 0.25748660815604D+00 -0.14644554396049D-15 + 2 45 1 33 0.13334431757598D-01 -0.21604616484006D-16 + 3 45 1 33 0.22643509870745D-01 -0.16873443848396D-16 + 1 46 1 33 0.57599511950998D+00 -0.16464610525990D-15 + 2 46 1 33 0.35996202666299D+00 0.30028950405901D-17 + 3 46 1 33 0.26938321812236D+00 -0.20209924539192D-16 + 1 47 1 33 -0.17175783798409D+00 -0.97741814735536D-16 + 2 47 1 33 0.53061614381881D+00 0.15769673683407D-16 + 3 47 1 33 0.52011348209477D+00 0.15378749930260D-16 + 1 48 1 33 0.32152539957641D+01 0.13584479472547D-17 + 2 48 1 33 -0.12172360738130D+01 0.15749946462260D-16 + 3 48 1 33 0.12454641439855D+01 0.11978053572892D-16 + 1 49 1 33 0.29685174375501D+01 0.54006116262642D-16 + 2 49 1 33 0.12951198397229D+01 0.28339712911103D-16 + 3 49 1 33 0.14116852895950D+01 0.17316792276898D-16 + 1 50 1 33 0.28295565651853D+01 0.34862960212953D-16 + 2 50 1 33 -0.13275629014228D+01 0.16221515536106D-16 + 3 50 1 33 -0.18739913392291D+01 0.32498263750828D-16 + 1 51 1 33 0.30841850336172D+01 0.15308159498954D-17 + 2 51 1 33 0.13256739918059D+01 0.35608100965537D-16 + 3 51 1 33 -0.12743152760817D+01 0.18547973207713D-16 + 1 52 1 33 -0.40115266392879D-01 0.32537256320906D-16 + 2 52 1 33 -0.42487475494265D-01 -0.13596466739019D-16 + 3 52 1 33 0.34258093331185D-01 -0.34486395207783D-16 + 1 53 1 33 -0.21972711183064D-01 -0.12495957151223D-15 + 2 53 1 33 0.11243027226998D+00 -0.33656971862718D-17 + 3 53 1 33 0.98113074926453D-01 0.10155827014478D-16 + 1 54 1 33 -0.19885450472424D-01 -0.16346126708361D-16 + 2 54 1 33 -0.13569498302181D+00 -0.29780016301866D-16 + 3 54 1 33 -0.12899902445748D+00 -0.76786382567691D-17 + 1 55 1 33 0.28208267547110D-01 0.48024735770593D-17 + 2 55 1 33 0.46389530140495D-01 -0.22450352137771D-16 + 3 55 1 33 -0.43402375418692D-01 -0.13400430671333D-16 + 1 56 1 33 0.27912912720100D+00 0.55369953232108D-16 + 2 56 1 33 0.42098272698904D+00 0.34229305370551D-16 + 3 56 1 33 -0.35569019419800D+00 -0.50864255055692D-16 + 1 57 1 33 -0.25336542636213D+02 0.31553371981798D-15 + 2 57 1 33 -0.13816776238180D+02 -0.27259133708660D-16 + 3 57 1 33 -0.13733332541572D+02 -0.17291353612228D-16 + 1 58 1 33 -0.78153175645182D+00 0.67797127066753D-16 + 2 58 1 33 -0.31197724830339D+00 -0.40335060117852D-16 + 3 58 1 33 -0.37756050303363D+00 -0.13858328143925D-16 + 1 59 1 33 0.17633524868552D+00 0.49266252692159D-16 + 2 59 1 33 -0.29923597616247D+00 -0.16146177930952D-16 + 3 59 1 33 0.27566745941855D+00 -0.13919046604097D-16 + 1 60 1 33 -0.49336914517857D+00 0.86471025081563D-16 + 2 60 1 33 -0.25450899472504D+00 0.17461066591848D-16 + 3 60 1 33 -0.64346728371827D-01 -0.37659856073836D-16 + 1 61 1 33 0.47011509603787D+00 -0.23761776339645D-15 + 2 61 1 33 -0.32358218209426D+00 -0.58781025297134D-17 + 3 61 1 33 -0.24424858336585D+00 0.25903945252099D-16 + 1 62 1 33 0.20033384962361D+00 -0.15694389505733D-15 + 2 62 1 33 -0.10281033293596D+00 -0.49365997599922D-16 + 3 62 1 33 -0.17379472240560D+00 0.16694219086484D-16 + 1 63 1 33 -0.44551561571321D+00 0.14806113530437D-15 + 2 63 1 33 -0.52437964590650D+00 -0.76426216799810D-17 + 3 63 1 33 -0.48848716900826D+00 -0.64912358186403D-18 + 1 64 1 33 0.14545606074375D+00 -0.10282700672525D-16 + 2 64 1 33 0.18397158875336D+00 -0.18460030692750D-16 + 3 64 1 33 0.32150795395446D+00 0.60522846178587D-16 + 1 65 1 33 0.33464851426704D+00 -0.36922058352954D-16 + 2 65 1 33 -0.30892971086146D+00 -0.81562481471264D-17 + 3 65 1 33 -0.16656805207937D-01 0.36127077676848D-16 + 1 1 2 33 -0.14068234245039D+01 0.31081081508020D-16 + 2 1 2 33 0.30155345649138D+01 0.32925407368915D-16 + 3 1 2 33 0.11353333223013D+01 0.52583688074447D-17 + 1 2 2 33 0.11971059792642D+01 -0.34602446942906D-16 + 2 2 2 33 0.29632774936015D+01 -0.77686397489729D-16 + 3 2 2 33 0.12001748544478D+01 0.29978941913398D-16 + 1 3 2 33 -0.14764773017077D+00 0.86588825861243D-16 + 2 3 2 33 0.54598954673188D-01 -0.15378608633766D-15 + 3 3 2 33 0.10356682372425D+00 -0.11253567094111D-16 + 1 4 2 33 0.99565345105373D-01 0.97317736478607D-17 + 2 4 2 33 -0.18016648722799D-01 0.50136430483854D-17 + 3 4 2 33 0.80612052259496D-01 -0.34242414520517D-16 + 1 5 2 33 -0.81602640442448D+00 -0.80658426818208D-16 + 2 5 2 33 0.26553207591071D+01 -0.23145718593370D-16 + 3 5 2 33 -0.10224519877059D+01 0.30596868036844D-16 + 1 6 2 33 0.13625469848010D+01 -0.36771480310470D-16 + 2 6 2 33 0.31258167392203D+01 0.66729292380081D-16 + 3 6 2 33 -0.12816300215294D+01 -0.88402409289883D-17 + 1 7 2 33 -0.43841709977775D-01 0.38634813600257D-16 + 2 7 2 33 -0.14974612365160D-01 0.10098263186886D-15 + 3 7 2 33 -0.63014662905338D-01 0.18258292223444D-16 + 1 8 2 33 0.12635356812615D+00 -0.88680402311854D-16 + 2 8 2 33 0.52373562508023D-02 -0.23750550746318D-16 + 3 8 2 33 -0.99568015791878D-01 -0.26826007641262D-16 + 1 9 2 33 0.11047342883850D-01 0.14880717471129D-16 + 2 9 2 33 0.26346517888120D+00 -0.39374811472842D-16 + 3 9 2 33 0.12569101045166D-01 0.22680354752852D-17 + 1 10 2 33 -0.44859374967650D+00 0.30233774897216D-16 + 2 10 2 33 -0.35985695528310D+00 -0.11813783436212D-15 + 3 10 2 33 0.46636153091889D+00 0.12131489410675D-17 + 1 11 2 33 -0.46462462382008D+00 0.11431469060584D-16 + 2 11 2 33 -0.76085550268758D+00 -0.24173056239919D-15 + 3 11 2 33 0.45441403519213D+00 0.37219909974757D-16 + 1 12 2 33 -0.27429826993853D+00 0.21016323138082D-16 + 2 12 2 33 0.12684713898619D+00 -0.10021080493525D-15 + 3 12 2 33 -0.28470708887522D+00 0.20045448768796D-16 + 1 13 2 33 -0.45662906075671D+00 -0.84728015022751D-17 + 2 13 2 33 -0.38733449979385D+00 0.24940228680486D-16 + 3 13 2 33 0.42640903342137D+00 -0.14015467513562D-16 + 1 14 2 33 -0.32592916479672D+00 -0.35042973128615D-17 + 2 14 2 33 0.49508247045814D+00 0.23787252023070D-16 + 3 14 2 33 0.26654576811642D+00 -0.77735778757132D-17 + 1 15 2 33 -0.13897086490667D+02 0.15160866755568D-16 + 2 15 2 33 -0.26292168970119D+02 -0.44610069910704D-16 + 3 15 2 33 0.14423236904407D+02 -0.10338580303221D-16 + 1 16 2 33 0.36582342768198D-01 -0.19556121680110D-17 + 2 16 2 33 -0.26027564892998D+00 0.16857839889560D-15 + 3 16 2 33 -0.15189491883038D+00 -0.17169724051663D-16 + 1 17 2 33 -0.32224719826005D+01 0.20588781393393D-17 + 2 17 2 33 -0.31198683632758D+01 -0.14439223956224D-17 + 3 17 2 33 -0.13623457728179D+01 0.17132752685657D-16 + 1 18 2 33 -0.90300250886181D-01 0.24902643019204D-17 + 2 18 2 33 -0.21086672653499D+00 0.25319749422496D-15 + 3 18 2 33 -0.13225854204798D+00 0.90436017934887D-16 + 1 19 2 33 0.28846658458855D+01 -0.11873098790896D-17 + 2 19 2 33 -0.28762227844451D+01 -0.46373354752612D-16 + 3 19 2 33 -0.10021922192644D+01 -0.73354182546661D-16 + 1 20 2 33 -0.73906612608213D-01 0.53702784361112D-18 + 2 20 2 33 -0.21706843664551D+00 -0.38156389994464D-16 + 3 20 2 33 0.62766396932399D-01 -0.24688538423966D-16 + 1 21 2 33 0.31941085754673D+01 0.25302171891230D-17 + 2 21 2 33 -0.31161797414798D+01 -0.27051946182480D-15 + 3 21 2 33 0.14073185650725D+01 0.15257451950498D-16 + 1 22 2 33 0.22701782239699D-01 -0.11803172982689D-17 + 2 22 2 33 0.18707498056841D+00 -0.22960115281428D-15 + 3 22 2 33 -0.15857612882839D+00 0.78429481528845D-16 + 1 23 2 33 -0.32845967229456D+01 0.70168484891649D-19 + 2 23 2 33 -0.31435481711389D+01 -0.44477176643853D-16 + 3 23 2 33 0.13578084798523D+01 -0.88520673001152D-17 + 1 24 2 33 0.33966503486386D+00 -0.18770808120739D-16 + 2 24 2 33 0.22540838907912D+00 0.27487399881146D-16 + 3 24 2 33 -0.28979766667512D+00 0.32106338155999D-16 + 1 25 2 33 0.43605273089234D+00 -0.38363504834391D-17 + 2 25 2 33 -0.73479300855675D+00 -0.18813462623966D-15 + 3 25 2 33 0.41193502972180D+00 -0.38651940937975D-16 + 1 26 2 33 0.48845849095463D+00 0.58762415637742D-17 + 2 26 2 33 -0.39849614674369D+00 -0.27788359233340D-16 + 3 26 2 33 0.46804370187614D+00 -0.31244313867396D-17 + 1 27 2 33 0.22841937824876D-01 0.48370494290863D-16 + 2 27 2 33 0.28901435639828D+00 -0.25558553015877D-15 + 3 27 2 33 0.37917362697486D-01 0.83939465440063D-17 + 1 28 2 33 0.13217865722022D+02 -0.40805909654314D-17 + 2 28 2 33 -0.25515961030837D+02 -0.33549655611396D-15 + 3 28 2 33 0.13522654321832D+02 -0.29935803696412D-16 + 1 29 2 33 -0.32656081583012D+00 0.83398983445921D-18 + 2 29 2 33 0.18674912064642D+00 0.19025191758610D-15 + 3 29 2 33 0.32723300791451D+00 0.22493594163349D-16 + 1 30 2 33 0.27943292278077D+00 -0.27150671905286D-16 + 2 30 2 33 0.37272648315907D+00 -0.11516867656133D-15 + 3 30 2 33 0.21879589379041D+00 -0.25162909374991D-16 + 1 31 2 33 0.50890489309559D+00 0.12668905934406D-16 + 2 31 2 33 -0.40136127322328D+00 0.20132558901586D-15 + 3 31 2 33 0.55121297710036D+00 0.32472609816382D-16 + 1 32 2 33 -0.24475038061527D-01 0.11582007897891D-16 + 2 32 2 33 -0.44422357773510D+00 0.56695797940646D-17 + 3 32 2 33 -0.28504399934005D+00 0.39790444162902D-18 + 1 33 2 33 -0.59488669410392D-01 0.00000000000000D+00 + 2 33 2 33 0.11865662793326D+03 0.00000000000000D+00 + 3 33 2 33 -0.13236166824967D+01 0.00000000000000D+00 + 1 34 2 33 -0.63626998041331D-01 -0.35005317139442D-18 + 2 34 2 33 -0.12727626599595D+00 0.26246016580727D-17 + 3 34 2 33 -0.86493072065201D-02 -0.22825163263311D-18 + 1 35 2 33 0.22284876094380D-01 0.12781778733501D-18 + 2 35 2 33 -0.39179030205288D+00 0.45537081577796D-17 + 3 35 2 33 0.67018209271095D-01 0.13335544964828D-17 + 1 36 2 33 0.24861959050637D-01 -0.69128625203389D-18 + 2 36 2 33 0.14768947477597D+01 0.64445966423687D-17 + 3 36 2 33 0.44845856798312D-01 -0.94030678029196D-18 + 1 37 2 33 -0.19184240360456D-02 0.14512486137327D-17 + 2 37 2 33 -0.20671006593298D+00 0.51203997420850D-17 + 3 37 2 33 0.40416366528409D-01 -0.22840993335546D-17 + 1 38 2 33 0.38930185792206D-01 -0.60552737528291D-18 + 2 38 2 33 -0.95554353237722D-01 0.57422591523553D-17 + 3 38 2 33 -0.12262395208868D-01 0.81541015659286D-18 + 1 39 2 33 0.23926507485511D-01 -0.66197809755462D-18 + 2 39 2 33 -0.19111969908325D+00 0.12024456593832D-17 + 3 39 2 33 0.41533968157781D-01 -0.50012075771954D-18 + 1 40 2 33 0.22564467784923D+00 -0.27194622152274D-16 + 2 40 2 33 0.43222364377867D+00 0.19612174453681D-15 + 3 40 2 33 -0.30191942014922D+00 0.89271574714094D-17 + 1 41 2 33 0.48409400010692D+00 -0.43181128251271D-16 + 2 41 2 33 -0.32229451800095D+00 -0.11876887430313D-15 + 3 41 2 33 -0.41751349235391D+00 0.67865608381018D-18 + 1 42 2 33 0.14657929762345D+02 0.45258169104041D-16 + 2 42 2 33 -0.25101178599709D+02 -0.25178196275656D-15 + 3 42 2 33 -0.12371596783117D+02 -0.30545966737128D-16 + 1 43 2 33 -0.28361053495241D+00 -0.20420334885671D-16 + 2 43 2 33 0.23490982432093D+00 -0.13997906391681D-15 + 3 43 2 33 -0.31592974345078D+00 -0.15806148601038D-16 + 1 44 2 33 0.44224998145374D+00 0.62586881815627D-17 + 2 44 2 33 -0.37168114771699D+00 0.44774290471275D-16 + 3 44 2 33 -0.45833681568794D+00 0.55707701299382D-17 + 1 45 2 33 0.16149580206860D-01 -0.21604616484006D-16 + 2 45 2 33 0.26462086478739D+00 0.10897293430555D-16 + 3 45 2 33 -0.27822975149860D-01 -0.21246963426542D-16 + 1 46 2 33 0.38139056523925D+00 0.30028950405901D-17 + 2 46 2 33 0.18898539371497D+00 -0.14985005720888D-15 + 3 46 2 33 0.34011013696973D+00 0.35294889898173D-16 + 1 47 2 33 0.33826748421716D+00 0.15769673683407D-16 + 2 47 2 33 -0.86409040711021D+00 -0.16052222025420D-15 + 3 47 2 33 -0.59323179457402D+00 -0.38941367223245D-17 + 1 48 2 33 0.12454641439855D+01 0.15749946462260D-16 + 2 48 2 33 -0.30589887005169D+01 0.27788846665530D-16 + 3 48 2 33 0.31293913227631D+01 0.73618990165774D-18 + 1 49 2 33 -0.12360040210204D+01 0.28339712911103D-16 + 2 49 2 33 -0.30626394163209D+01 -0.34265948955992D-15 + 3 49 2 33 -0.31905729764210D+01 0.26345456496433D-18 + 1 50 2 33 0.15177320252663D+01 0.16221515536106D-16 + 2 50 2 33 -0.25386322377402D+01 -0.60442799628500D-16 + 3 50 2 33 -0.31092013568370D+01 0.87665441215679D-19 + 1 51 2 33 -0.13256739918059D+01 0.35608100965537D-16 + 2 51 2 33 -0.29795532850691D+01 -0.31948984776726D-15 + 3 51 2 33 0.31608079795356D+01 -0.20820669612653D-17 + 1 52 2 33 0.14432681694242D+00 -0.13596466739019D-16 + 2 52 2 33 -0.26792518326819D+00 0.75009260976773D-15 + 3 52 2 33 -0.49290147573132D-01 -0.19254907240336D-18 + 1 53 2 33 -0.10979845495590D+00 -0.33656971862718D-17 + 2 53 2 33 -0.24801182769949D+00 0.31159131509726D-15 + 3 53 2 33 0.88531530517869D-01 -0.44662238491547D-18 + 1 54 2 33 0.11018956029346D+00 -0.29780016301866D-16 + 2 54 2 33 -0.20873637486903D+00 -0.13650068014285D-15 + 3 54 2 33 0.90810637626313D-01 -0.31441803504997D-17 + 1 55 2 33 -0.10915285207293D+00 -0.22450352137771D-16 + 2 55 2 33 -0.19250859648881D+00 -0.11946268674445D-15 + 3 55 2 33 -0.15173137220633D+00 0.28507836603612D-18 + 1 56 2 33 0.29916503793230D+00 0.34229305370551D-16 + 2 56 2 33 0.12123201124200D+00 0.23339457850394D-15 + 3 56 2 33 -0.16366981488135D+00 -0.11352629488464D-15 + 1 57 2 33 -0.13879011340542D+02 -0.27259133708660D-16 + 2 57 2 33 -0.26062789866101D+02 0.11252322208737D-16 + 3 57 2 33 -0.14107929617707D+02 -0.23896822806535D-16 + 1 58 2 33 -0.53730740550124D+00 -0.40335060117852D-16 + 2 58 2 33 -0.25326590528756D+00 -0.55036355842737D-16 + 3 58 2 33 -0.40158016642122D+00 -0.29889168343649D-16 + 1 59 2 33 -0.19985889980303D+00 -0.16146177930952D-16 + 2 59 2 33 0.42551965214467D+00 0.16493381625353D-15 + 3 59 2 33 -0.23274844943710D+00 0.38294893028781D-16 + 1 60 2 33 -0.50939446161318D+00 0.17461066591848D-16 + 2 60 2 33 -0.87719096127325D+00 0.29650802444691D-16 + 3 60 2 33 -0.50016541024873D+00 -0.62824108535954D-17 + 1 61 2 33 -0.31572160078403D+00 -0.58781025297134D-17 + 2 61 2 33 0.24708348230195D+00 -0.93644135826842D-16 + 3 61 2 33 0.30265282018592D+00 0.13633371925447D-16 + 1 62 2 33 0.24696374662143D-02 -0.49365997599922D-16 + 2 62 2 33 0.26864894443220D+00 0.14253011513341D-15 + 3 62 2 33 -0.12118996449946D-01 0.90085003585541D-17 + 1 63 2 33 -0.52775938851813D+00 -0.76426216799810D-17 + 2 63 2 33 -0.44967235785732D+00 0.12807826264240D-15 + 3 63 2 33 -0.49790547501619D+00 -0.35417892406104D-17 + 1 64 2 33 -0.39928517272471D-01 -0.18460030692750D-16 + 2 64 2 33 0.73523117819537D-01 0.51045614368753D-16 + 3 64 2 33 -0.65815729498103D-01 -0.15688880597725D-16 + 1 65 2 33 0.26880943972697D+00 -0.81562481471264D-17 + 2 65 2 33 -0.52499789938128D+00 0.16569922202661D-15 + 3 65 2 33 0.18288178967438D+00 -0.28496622079614D-16 + 1 1 3 33 0.33550916598139D+01 0.17242050270501D-17 + 2 1 3 33 -0.12333277166283D+01 0.52583688074447D-17 + 3 1 3 33 -0.29958810583551D+01 0.29573957074501D-15 + 1 2 3 33 -0.30971891017045D+01 -0.21327262827963D-18 + 2 2 3 33 -0.13483055546319D+01 0.29978941913398D-16 + 3 2 3 33 -0.29700809879205D+01 -0.21787576080125D-15 + 1 3 3 33 -0.21870410963722D-01 -0.59574498224857D-18 + 2 3 3 33 -0.15415690230455D+00 -0.11253567094111D-16 + 3 3 3 33 -0.21577894633812D+00 -0.72876125571715D-16 + 1 4 3 33 0.82702315888197D-01 -0.12464844476349D-17 + 2 4 3 33 -0.11218963836733D+00 -0.34242414520517D-16 + 3 4 3 33 -0.22618681439698D+00 -0.18302389212407D-15 + 1 5 3 33 -0.29031814937507D+01 0.37525734643277D-17 + 2 5 3 33 0.15092623549221D+01 0.30596868036844D-16 + 3 5 3 33 -0.31495638884331D+01 0.80114612220412D-16 + 1 6 3 33 0.30751735322857D+01 0.12987193288708D-17 + 2 6 3 33 0.12816300215294D+01 -0.88402409289883D-17 + 3 6 3 33 -0.29297901679364D+01 0.75448702072453D-16 + 1 7 3 33 0.94115504274793D-01 -0.64101957759358D-18 + 2 7 3 33 0.97843402870790D-01 0.18258292223444D-16 + 3 7 3 33 -0.21706843664551D+00 -0.22614388566807D-16 + 1 8 3 33 -0.10067823622293D+00 0.22212708167831D-18 + 2 8 3 33 0.74387259052580D-01 -0.26826007641262D-16 + 3 8 3 33 -0.20851766763871D+00 0.10324656110084D-15 + 1 9 3 33 0.24056900733651D-01 -0.33076345073557D-16 + 2 9 3 33 0.46328043538546D-01 0.22680354752852D-17 + 3 9 3 33 0.26287090764835D+00 -0.38232907234859D-16 + 1 10 3 33 0.48648896442330D+00 -0.45700040700485D-16 + 2 10 3 33 0.46398375705641D+00 0.12131489410675D-17 + 3 10 3 33 -0.77484903294973D+00 -0.33508755984166D-15 + 1 11 3 33 0.45501407968520D+00 -0.19020267317186D-16 + 2 11 3 33 0.50796404958536D+00 0.37219909974757D-16 + 3 11 3 33 -0.38471724455043D+00 0.36887196812670D-15 + 1 12 3 33 0.35256230231845D+00 -0.68611616632664D-17 + 2 12 3 33 -0.25496134102405D+00 0.20045448768796D-16 + 3 12 3 33 0.25970597428466D+00 0.46890505596743D-16 + 1 13 3 33 0.48530167859136D+00 0.11919323571129D-17 + 2 13 3 33 0.46398081912004D+00 -0.14015467513562D-16 + 3 13 3 33 -0.39930949999087D+00 0.35703565601443D-18 + 1 14 3 33 -0.31346412582913D+00 -0.26436051467484D-16 + 2 14 3 33 0.30326750867001D+00 -0.77735778757132D-17 + 3 14 3 33 0.13399195151202D+00 0.23390294599364D-15 + 1 15 3 33 0.14501181111328D+02 0.28097042022775D-17 + 2 15 3 33 0.14382862120111D+02 -0.10338580303221D-16 + 3 15 3 33 -0.26557973056398D+02 0.19235263393558D-15 + 1 16 3 33 0.14350644613521D+00 -0.26028218288544D-16 + 2 16 3 33 0.16403408343850D+00 -0.17169724051663D-16 + 3 16 3 33 0.67229337897273D-01 -0.88171706875995D-16 + 1 17 3 33 0.12789009470737D+01 0.10580119043757D-15 + 2 17 3 33 0.13535554609168D+01 0.17132752685657D-16 + 3 17 3 33 0.30490719621776D+01 0.47920533888279D-16 + 1 18 3 33 -0.11471479398950D+00 0.27399003877081D-16 + 2 18 3 33 0.86755436131939D-01 0.90436017934887D-16 + 3 18 3 33 -0.37214517100062D-02 0.99829167994872D-17 + 1 19 3 33 -0.17402778573232D+01 -0.44691400109622D-16 + 2 19 3 33 0.13163110477181D+01 -0.73354182546661D-16 + 3 19 3 33 0.28933820724064D+01 -0.12629467890415D-16 + 1 20 3 33 0.14352455831500D+00 -0.88615286009805D-16 + 2 20 3 33 -0.97785945508698D-01 -0.24688538423966D-16 + 3 20 3 33 -0.14974612365160D-01 -0.77265783058497D-17 + 1 21 3 33 0.11880694090847D+01 -0.11754343176397D-16 + 2 21 3 33 -0.13006788073403D+01 0.15257451950498D-16 + 3 21 3 33 0.30525156815770D+01 0.92668186188218D-17 + 1 22 3 33 -0.42131995820270D-01 -0.43304210663782D-16 + 2 22 3 33 -0.51652952950282D+00 0.78429481528845D-16 + 3 22 3 33 0.33819761922103D+00 0.94192563190993D-16 + 1 23 3 33 -0.12921767328817D+01 -0.71758645750786D-16 + 2 23 3 33 -0.13578084798523D+01 -0.88520673001152D-17 + 3 23 3 33 0.31589468614603D+01 0.33112498535611D-16 + 1 24 3 33 -0.31415557033801D+00 0.25470640300767D-16 + 2 24 3 33 -0.32390006586088D+00 0.32106338155999D-16 + 3 24 3 33 0.15344209870445D+00 0.95528269891153D-16 + 1 25 3 33 -0.47565222349133D+00 -0.26634603340347D-16 + 2 25 3 33 0.49763141720444D+00 -0.38651940937975D-16 + 3 25 3 33 -0.36260602341346D+00 -0.31237081916749D-15 + 1 26 3 33 -0.45721072852454D+00 0.47782887456433D-16 + 2 26 3 33 0.39877880383948D+00 -0.31244313867396D-17 + 3 26 3 33 -0.78452529044151D+00 -0.13529373063289D-15 + 1 27 3 33 -0.28476319214321D-02 -0.17273743681440D-16 + 2 27 3 33 0.66675456039042D-02 0.83939465440063D-17 + 3 27 3 33 0.25776364732935D+00 -0.12441420878665D-15 + 1 28 3 33 -0.13571489657003D+02 0.67888486687569D-17 + 2 28 3 33 0.13622835122802D+02 -0.29935803696412D-16 + 3 28 3 33 -0.25398477425812D+02 0.37587106433701D-16 + 1 29 3 33 -0.27016392427600D+00 -0.64974152766397D-17 + 2 29 3 33 0.32161347997773D+00 0.22493594163349D-16 + 3 29 3 33 0.42103726169298D+00 0.13259311609532D-15 + 1 30 3 33 0.29804618665441D+00 -0.10125002073459D-16 + 2 30 3 33 0.15134694933493D+00 -0.25162909374991D-16 + 3 30 3 33 0.27170792927837D+00 0.71037764071111D-16 + 1 31 3 33 -0.49802215951676D+00 -0.75591297087727D-16 + 2 31 3 33 0.49454898553087D+00 0.32472609816382D-16 + 3 31 3 33 -0.45776171415234D+00 0.52612693317463D-17 + 1 32 3 33 -0.11599296174228D+00 0.86006861121270D-17 + 2 32 3 33 0.39305705776450D+00 0.39790444162902D-18 + 3 32 3 33 0.12797076026958D+00 -0.44921723570706D-17 + 1 33 3 33 -0.17989040590741D+01 0.00000000000000D+00 + 2 33 3 33 -0.13236166824967D+01 0.00000000000000D+00 + 3 33 3 33 0.11772786846936D+03 0.00000000000000D+00 + 1 34 3 33 0.27724378819635D-01 0.00000000000000D+00 + 2 34 3 33 -0.79348798505182D-01 -0.22825163263311D-18 + 3 34 3 33 -0.12727626599595D+00 -0.44178569402101D-17 + 1 35 3 33 -0.15542216925406D-01 -0.14532614563658D-18 + 2 35 3 33 -0.74889325537829D-02 0.13335544964828D-17 + 3 35 3 33 -0.23998152292440D+00 0.29601447921916D-17 + 1 36 3 33 0.13312149805396D-01 -0.63502578047206D-18 + 2 36 3 33 -0.70096081780645D-02 -0.94030678029196D-18 + 3 36 3 33 -0.10442409181147D+00 -0.10446383905961D-17 + 1 37 3 33 0.73118224368082D-01 0.35397979105080D-18 + 2 37 3 33 0.34358997781744D-01 -0.22840993335546D-17 + 3 37 3 33 -0.31749180709190D+00 -0.47194403948032D-17 + 1 38 3 33 -0.22811652599747D-01 0.19779824975994D-18 + 2 38 3 33 -0.25872687761076D-01 0.81541015659286D-18 + 3 38 3 33 -0.84272004536132D-01 -0.62051135395063D-18 + 1 39 3 33 0.12570281290532D-01 -0.20129320722851D-18 + 2 39 3 33 0.11097588776131D-01 -0.50012075771954D-18 + 3 39 3 33 0.15339790868766D+01 0.17050699922538D-17 + 1 40 3 33 -0.26505761927302D+00 -0.54025170331823D-17 + 2 40 3 33 -0.27340328278778D+00 0.89271574714094D-17 + 3 40 3 33 0.17637186941306D+00 0.91379929084339D-16 + 1 41 3 33 0.49830994239345D+00 -0.22795799185968D-16 + 2 41 3 33 -0.42944402667853D+00 0.67865608381018D-18 + 3 41 3 33 -0.36088245076100D+00 -0.14831088676344D-15 + 1 42 3 33 0.14256821798390D+02 -0.13048442868159D-16 + 2 42 3 33 -0.12776995690578D+02 -0.30545966737128D-16 + 3 42 3 33 -0.24532491806041D+02 0.64169585080395D-15 + 1 43 3 33 0.13762305616936D+00 -0.92346288269205D-17 + 2 43 3 33 -0.40212139172872D+00 -0.15806148601038D-16 + 3 43 3 33 0.55573036713755D+00 0.11022845199172D-15 + 1 44 3 33 0.45552372354200D+00 -0.48132222699479D-17 + 2 44 3 33 -0.46766185471483D+00 0.55707701299382D-17 + 3 44 3 33 -0.78338733454981D+00 0.13452594853828D-15 + 1 45 3 33 0.44235881324093D-02 -0.16873443848396D-16 + 2 45 3 33 -0.30515804448366D-01 -0.21246963426542D-16 + 3 45 3 33 0.26805640929539D+00 0.77584456447142D-16 + 1 46 3 33 0.29550212064911D+00 -0.20209924539192D-16 + 2 46 3 33 0.25867275679239D+00 0.35294889898173D-16 + 3 46 3 33 0.93208777468695D-01 0.59848230781509D-16 + 1 47 3 33 0.46034884881434D+00 0.15378749930260D-16 + 2 47 3 33 -0.27618358262648D+00 -0.38941367223245D-17 + 3 47 3 33 -0.39910233886038D+00 -0.41459202623091D-16 + 1 48 3 33 -0.12172360738130D+01 0.11978053572892D-16 + 2 48 3 33 0.33428811390469D+01 0.73618990165774D-18 + 3 48 3 33 -0.30589887005169D+01 -0.19060769312916D-15 + 1 49 3 33 -0.13774526215980D+01 0.17316792276898D-16 + 2 49 3 33 -0.32361500471502D+01 0.26345456496433D-18 + 3 49 3 33 -0.30064990613072D+01 -0.19892826211190D-15 + 1 50 3 33 0.15565761819559D+01 0.32498263750828D-16 + 2 50 3 33 -0.30549193890543D+01 0.87665441215679D-19 + 3 50 3 33 -0.34528163015957D+01 0.19703044879449D-15 + 1 51 3 33 0.12743152760817D+01 0.18547973207713D-16 + 2 51 3 33 0.31608079795356D+01 -0.20820669612653D-17 + 3 51 3 33 -0.30528471590872D+01 0.13825110365525D-15 + 1 52 3 33 -0.15890958213719D+00 -0.34486395207783D-16 + 2 52 3 33 0.21360777461598D-02 -0.19254907240336D-18 + 3 52 3 33 -0.23088084729193D+00 -0.73484298975670D-17 + 1 53 3 33 -0.11346762956114D+00 0.10155827014478D-16 + 2 53 3 33 0.94812845415093D-01 -0.44662238491547D-18 + 3 53 3 33 -0.22877355990030D+00 -0.21250791373128D-15 + 1 54 3 33 0.54960985429200D-01 -0.76786382567691D-17 + 2 54 3 33 0.86008039398323D-01 -0.31441803504997D-17 + 3 54 3 33 -0.22758195861378D+00 -0.27994572443026D-15 + 1 55 3 33 0.18188827530424D+00 -0.13400430671333D-16 + 2 55 3 33 -0.16359920195150D+00 0.28507836603612D-18 + 3 55 3 33 -0.14082776768839D+00 -0.67626229890674D-15 + 1 56 3 33 -0.33872008325703D+00 -0.50864255055692D-16 + 2 56 3 33 -0.25348016079986D+00 -0.11352629488464D-15 + 3 56 3 33 0.44715972523504D+00 0.27114779053325D-15 + 1 57 3 33 -0.13677385535158D+02 -0.17291353612228D-16 + 2 57 3 33 -0.13994635157626D+02 -0.23896822806535D-16 + 3 57 3 33 -0.25999938377806D+02 0.79716076138435D-16 + 1 58 3 33 -0.46840841101349D+00 -0.13858328143925D-16 + 2 58 3 33 -0.29558449714712D+00 -0.29889168343649D-16 + 3 58 3 33 -0.21332075910505D+00 0.27988288772409D-16 + 1 59 3 33 0.31821622388506D+00 -0.13919046604097D-16 + 2 59 3 33 -0.28016256143627D+00 0.38294893028781D-16 + 3 59 3 33 0.21967419079834D+00 0.97901131439834D-16 + 1 60 3 33 -0.43441998613115D+00 -0.37659856073836D-16 + 2 60 3 33 -0.33525327094947D+00 -0.62824108535954D-17 + 3 60 3 33 -0.13525500815599D+00 -0.12405254855427D-15 + 1 61 3 33 -0.24689778800013D+00 0.25903945252099D-16 + 2 61 3 33 0.30091129439677D+00 0.13633371925447D-16 + 3 61 3 33 0.18184668037692D+00 -0.55895241872663D-16 + 1 62 3 33 -0.15681017887170D+00 0.16694219086484D-16 + 2 62 3 33 -0.98401233411657D-01 0.90085003585541D-17 + 3 62 3 33 0.16229330172928D+00 -0.13929134052566D-16 + 1 63 3 33 -0.46486050728527D+00 -0.64912358186403D-18 + 2 63 3 33 -0.43513197182491D+00 -0.35417892406104D-17 + 3 63 3 33 -0.84989106608483D+00 0.34161138185254D-17 + 1 64 3 33 0.14080624751410D+00 0.60522846178587D-16 + 2 64 3 33 0.28581775711046D+00 -0.15688880597725D-16 + 3 64 3 33 0.18749234272780D+00 -0.12888321913712D-15 + 1 65 3 33 0.36513389322848D+00 0.36127077676848D-16 + 2 65 3 33 -0.56471974226054D+00 -0.28496622079614D-16 + 3 65 3 33 -0.39045088703819D+00 0.17138867383732D-15 + 1 1 1 34 -0.23467698998718D+00 0.20536124712369D-15 + 2 1 1 34 -0.12180751841965D+00 0.17480763269037D-16 + 3 1 1 34 0.96415435917295D-01 -0.34408652084875D-18 + 1 2 1 34 -0.20352226633815D+00 -0.11569421075256D-15 + 2 2 1 34 0.10774984940746D-01 0.70800902252566D-16 + 3 2 1 34 -0.12521758778297D+00 -0.35656903542221D-17 + 1 3 1 34 -0.29233488661134D+01 0.26224986284266D-16 + 2 3 1 34 -0.12748485259548D+01 -0.46066588530011D-16 + 3 3 1 34 -0.28728526686264D+01 0.48243005177505D-17 + 1 4 1 34 -0.30470853174333D+01 -0.26924837601360D-15 + 2 4 1 34 0.13286275214552D+01 0.72142361203025D-16 + 3 4 1 34 0.31172863636170D+01 0.12448239607880D-17 + 1 5 1 34 -0.21143668169989D+00 -0.18863862685641D-15 + 2 5 1 34 -0.46714702670666D+00 0.44793885874531D-16 + 3 5 1 34 0.37172800955782D+00 -0.18655817355277D-17 + 1 6 1 34 -0.24757479388526D+00 0.31593288573989D-16 + 2 6 1 34 0.43841709977776D-01 -0.33498102638344D-17 + 3 6 1 34 0.94115504274792D-01 0.14730749097679D-17 + 1 7 1 34 -0.30238806664967D+01 0.18420417594254D-15 + 2 7 1 34 -0.12921767328817D+01 -0.11945058168011D-16 + 3 7 1 34 0.32845967229457D+01 0.91740715694116D-18 + 1 8 1 34 -0.31052957392000D+01 -0.22466302465031D-15 + 2 8 1 34 0.11850558323564D+01 -0.96574274061106D-16 + 3 8 1 34 -0.32289744110740D+01 0.67729358453852D-18 + 1 9 1 34 0.47997529044066D+00 0.85645168849645D-16 + 2 9 1 34 -0.32762621479200D+00 0.33421074567124D-16 + 3 9 1 34 0.26615944633486D+00 -0.25355105717409D-16 + 1 10 1 34 -0.34841030513635D+00 0.88481372471689D-16 + 2 10 1 34 -0.47661236736013D+00 -0.20418158503408D-18 + 3 10 1 34 0.43777978912025D+00 0.56830374270468D-17 + 1 11 1 34 -0.37498050423366D+00 0.51770969719986D-16 + 2 11 1 34 -0.49376388172361D+00 -0.38819190198257D-16 + 3 11 1 34 0.41799765230709D+00 0.19752310425743D-16 + 1 12 1 34 0.24400776122668D+00 -0.84135439635824D-17 + 2 12 1 34 0.13187086874673D-02 -0.74415437424832D-17 + 3 12 1 34 -0.37230511438906D-01 -0.47436946268814D-16 + 1 13 1 34 -0.26420339423972D+02 0.12331832864194D-15 + 2 13 1 34 -0.14605661763507D+02 0.11687965199113D-16 + 3 13 1 34 0.14023698877720D+02 -0.46693663478396D-16 + 1 14 1 34 0.20201221094887D+00 -0.37198643540816D-15 + 2 14 1 34 0.34325330614272D+00 0.47082216628109D-16 + 3 14 1 34 0.33052259598516D+00 -0.22116717759706D-16 + 1 15 1 34 -0.77719381706603D+00 0.93958536226354D-16 + 2 15 1 34 -0.42176664241324D+00 -0.31989478308926D-17 + 3 15 1 34 0.48063399579718D+00 0.32776995561591D-16 + 1 16 1 34 -0.29949756481198D+01 0.91003649267783D-16 + 2 16 1 34 0.30926262122503D+01 -0.18606160432600D-17 + 3 16 1 34 0.13678659944496D+01 0.49910026559646D-17 + 1 17 1 34 -0.23862176796400D+00 0.16963634699161D-15 + 2 17 1 34 -0.11390436163442D+00 0.11738224700927D-17 + 3 17 1 34 0.86016099995365D-01 -0.87801256021913D-16 + 1 18 1 34 -0.30031823137819D+01 -0.21413585469980D-15 + 2 18 1 34 -0.30962339742664D+01 0.50297206454085D-18 + 3 18 1 34 -0.11823768965084D+01 0.22405628450624D-15 + 1 19 1 34 -0.20285354699657D+00 0.14115956325132D-15 + 2 19 1 34 0.89658032623897D-01 -0.16280925708724D-18 + 3 19 1 34 -0.93528066163435D-01 -0.22362936984160D-15 + 1 20 1 34 -0.31818805466033D+01 -0.12800624107545D-15 + 2 20 1 34 -0.30751735322857D+01 0.81503524000265D-18 + 3 20 1 34 0.13625469848010D+01 -0.38543236644370D-16 + 1 21 1 34 -0.22820373706449D+00 -0.27799300742091D-15 + 2 21 1 34 0.78657874930476D-01 -0.15212791994634D-17 + 3 21 1 34 0.11060314530731D+00 -0.65092805770529D-16 + 1 22 1 34 -0.31805611728353D+01 0.81319104520131D-16 + 2 22 1 34 0.32919452336551D+01 0.10796787645378D-16 + 3 22 1 34 -0.17990004975472D+01 -0.88876243945214D-16 + 1 23 1 34 -0.24776983014886D+00 0.75023581593389D-16 + 2 23 1 34 -0.73906612608212D-01 0.11708606161493D-17 + 3 23 1 34 -0.14352455831499D+00 0.30617633138546D-16 + 1 24 1 34 0.28559695976660D+00 0.40042050549608D-16 + 2 24 1 34 0.37134587379389D-01 -0.17362731260326D-17 + 3 24 1 34 0.31288499790063D-02 0.14243240394159D-16 + 1 25 1 34 -0.39730649977229D+00 -0.51072557212222D-15 + 2 25 1 34 0.46150686927486D+00 0.92830917202293D-17 + 3 25 1 34 -0.50064688040607D+00 -0.15351487345310D-16 + 1 26 1 34 -0.39161458132898D+00 0.94032969869024D-16 + 2 26 1 34 0.39173006312076D+00 0.30905891589176D-16 + 3 26 1 34 -0.47745269960845D+00 -0.18549652561934D-16 + 1 27 1 34 0.48538142032132D+00 -0.57057297865353D-16 + 2 27 1 34 0.33034754534782D+00 -0.25152827102426D-16 + 3 27 1 34 -0.26829885043050D+00 -0.38252009586682D-16 + 1 28 1 34 -0.79080780410653D+00 0.50259817014924D-17 + 2 28 1 34 0.53313172251161D+00 -0.17717690142193D-16 + 3 28 1 34 -0.53886715642619D+00 -0.27968368039463D-17 + 1 29 1 34 0.25002441018997D+00 0.42327131312863D-15 + 2 29 1 34 0.35525035041941D+00 0.55804615424218D-16 + 3 29 1 34 0.29589742680319D+00 0.24764693695315D-16 + 1 30 1 34 0.16030304388453D+00 0.10893223898460D-15 + 2 30 1 34 -0.30651034623013D+00 0.94228923128009D-17 + 3 30 1 34 -0.20850740465839D+00 -0.28051428229198D-16 + 1 31 1 34 -0.25328120975725D+02 0.24402538469962D-15 + 2 31 1 34 0.13400572938525D+02 0.18956231111718D-17 + 3 31 1 34 -0.13149198839103D+02 -0.10110972308886D-16 + 1 32 1 34 -0.83718992029360D-01 0.38276642933824D-16 + 2 32 1 34 -0.39005282841352D+00 0.15794012579433D-16 + 3 32 1 34 -0.32925776099028D+00 -0.20492721441180D-16 + 1 33 1 34 0.14728015480932D+01 0.32210440190747D-17 + 2 33 1 34 -0.63626998041331D-01 0.35005317139442D-18 + 3 33 1 34 0.27724378819635D-01 0.00000000000000D+00 + 1 34 1 34 0.12009846314917D+03 0.00000000000000D+00 + 2 34 1 34 0.17989040590742D+01 0.00000000000000D+00 + 3 34 1 34 0.59488669410346D-01 0.00000000000000D+00 + 1 35 1 34 -0.23565771303351D+00 -0.52086404488620D-18 + 2 35 1 34 0.25941992352620D-01 0.13781354795153D-18 + 3 35 1 34 0.76325334859224D-02 0.60992065641352D-18 + 1 36 1 34 -0.10369009279273D+00 0.12395915140541D-16 + 2 36 1 34 -0.36928784194137D-01 0.29287813853187D-18 + 3 36 1 34 0.25660247315378D-01 -0.68962385646553D-18 + 1 37 1 34 -0.16720242091942D+00 0.62256522444078D-18 + 2 37 1 34 -0.50822928074397D-01 -0.74584139576964D-18 + 3 37 1 34 0.53321962162254D-01 -0.37635113882709D-18 + 1 38 1 34 -0.35562475976301D+00 0.65247286250008D-19 + 2 38 1 34 0.46994349775083D-01 0.21932663488416D-17 + 3 38 1 34 -0.24461857082302D-02 -0.26245384963279D-17 + 1 39 1 34 -0.14651597359657D+00 0.91160253408487D-18 + 2 39 1 34 0.78310784482451D-02 0.24718680352411D-18 + 3 39 1 34 -0.41467919487293D-01 -0.27698421718201D-18 + 1 40 1 34 0.17633524868552D+00 -0.97202666678711D-17 + 2 40 1 34 -0.27566745941855D+00 0.52000587340580D-16 + 3 40 1 34 0.29923597616246D+00 -0.74894992214499D-17 + 1 41 1 34 -0.25336542636213D+02 -0.27771036763913D-16 + 2 41 1 34 0.13733332541572D+02 -0.31409568708498D-16 + 3 41 1 34 0.13816776238180D+02 -0.20563593211528D-16 + 1 42 1 34 -0.78153175645181D+00 -0.51048572957159D-16 + 2 42 1 34 0.37756050303363D+00 -0.68253945879160D-17 + 3 42 1 34 0.31197724830339D+00 0.34792660371439D-16 + 1 43 1 34 0.27912912720101D+00 0.78756457706715D-16 + 2 43 1 34 0.35569019419799D+00 -0.17477117943228D-16 + 3 43 1 34 -0.42098272698904D+00 -0.26993235612938D-16 + 1 44 1 34 -0.44551561571321D+00 -0.17327915334778D-16 + 2 44 1 34 0.48848716900826D+00 -0.27568111533621D-16 + 3 44 1 34 0.52437964590650D+00 -0.28027176307712D-16 + 1 45 1 34 0.47011509603785D+00 -0.95635334105816D-16 + 2 45 1 34 0.24424858336585D+00 -0.14520762952111D-16 + 3 45 1 34 0.32358218209425D+00 -0.46248739033097D-16 + 1 46 1 34 0.20033384962361D+00 0.89527105163926D-16 + 2 46 1 34 0.17379472240560D+00 -0.15450564843273D-16 + 3 46 1 34 0.10281033293596D+00 -0.85543987383570D-16 + 1 47 1 34 -0.49336914517857D+00 0.32430727670000D-16 + 2 47 1 34 0.64346728371831D-01 0.21858264792077D-17 + 3 47 1 34 0.25450899472504D+00 0.36583764034380D-16 + 1 48 1 34 0.30841850336173D+01 0.84673162728290D-16 + 2 48 1 34 0.12743152760817D+01 -0.79560931425764D-17 + 3 48 1 34 -0.13256739918059D+01 0.31839361182279D-17 + 1 49 1 34 0.29685174375501D+01 0.82442892779372D-16 + 2 49 1 34 -0.14116852895950D+01 -0.26383473855702D-16 + 3 49 1 34 -0.12951198397229D+01 0.28896587384652D-16 + 1 50 1 34 0.28295565651853D+01 0.24929737715274D-16 + 2 50 1 34 0.18739913392292D+01 0.99181033347210D-17 + 3 50 1 34 0.13275629014228D+01 0.18458571019536D-16 + 1 51 1 34 0.32152539957641D+01 0.53907318608907D-16 + 2 51 1 34 -0.12454641439855D+01 0.31646641312251D-16 + 3 51 1 34 0.12172360738130D+01 0.17967076824653D-16 + 1 52 1 34 0.28208267547111D-01 -0.29442149285546D-16 + 2 52 1 34 0.43402375418692D-01 0.12334935995778D-16 + 3 52 1 34 -0.46389530140495D-01 -0.10338743879503D-16 + 1 53 1 34 -0.21972711183061D-01 -0.24652548353206D-16 + 2 53 1 34 -0.98113074926454D-01 0.11692980700145D-16 + 3 53 1 34 -0.11243027226998D+00 0.30092623080810D-16 + 1 54 1 34 -0.19885450472424D-01 -0.32787882444643D-16 + 2 54 1 34 0.12899902445748D+00 -0.93407238498300D-17 + 3 54 1 34 0.13569498302181D+00 -0.26893891836221D-16 + 1 55 1 34 -0.40115266392875D-01 0.29941199833138D-17 + 2 55 1 34 -0.34258093331185D-01 0.69285222326121D-17 + 3 55 1 34 0.42487475494266D-01 0.32446357676636D-17 + 1 56 1 34 0.19042103809354D+00 -0.25332798947309D-17 + 2 56 1 34 -0.30050836975060D+00 -0.23670101568629D-16 + 3 56 1 34 0.42205070125685D+00 -0.21124499232138D-16 + 1 57 1 34 -0.75060432465814D+00 -0.70084061266299D-16 + 2 57 1 34 -0.43144431608079D+00 0.27390804315048D-16 + 3 57 1 34 -0.41642775373069D+00 0.23083178402947D-16 + 1 58 1 34 -0.28281032658509D+02 -0.22248855942425D-15 + 2 58 1 34 -0.13867197110953D+02 -0.11175958846461D-16 + 3 58 1 34 -0.14992323709904D+02 -0.40047986527873D-16 + 1 59 1 34 0.15328911515379D+00 -0.41233502065374D-17 + 2 59 1 34 0.31389755507366D+00 -0.13232104097872D-16 + 3 59 1 34 -0.29601155427098D+00 -0.14112261465069D-16 + 1 60 1 34 -0.17175783798409D+00 0.56545650195587D-16 + 2 60 1 34 -0.52011348209476D+00 0.30574356078443D-16 + 3 60 1 34 -0.53061614381881D+00 -0.11472421818307D-16 + 1 61 1 34 0.25748660815605D+00 0.13019541620986D-15 + 2 61 1 34 -0.22643509870744D-01 0.14283667830009D-16 + 3 61 1 34 -0.13334431757597D-01 0.15602719019129D-16 + 1 62 1 34 0.57599511950998D+00 0.10054889485995D-15 + 2 62 1 34 -0.26938321812236D+00 0.39537142651089D-17 + 3 62 1 34 -0.35996202666299D+00 -0.89161287878463D-16 + 1 63 1 34 -0.31512814179122D+00 0.57206095825844D-16 + 2 63 1 34 -0.48369823738221D+00 0.17698817274975D-17 + 3 63 1 34 -0.41510684461685D+00 -0.30224745060445D-16 + 1 64 1 34 0.14545606074374D+00 0.20958355864647D-15 + 2 64 1 34 -0.32099583302758D+00 -0.40188892450767D-16 + 3 64 1 34 -0.18222667758373D+00 0.16553207503280D-16 + 1 65 1 34 0.33464851426695D+00 -0.18337105003434D-16 + 2 65 1 34 0.16656805207942D-01 -0.20616936331667D-16 + 3 65 1 34 0.30892971086146D+00 -0.12410830313008D-16 + 1 1 2 34 0.11471479398950D+00 0.17480763269037D-16 + 2 1 2 34 -0.37214517100027D-02 0.67042043508305D-16 + 3 1 2 34 0.86755436131941D-01 0.10321503213760D-17 + 1 2 2 34 -0.14350644613521D+00 0.70800902252566D-16 + 2 2 2 34 0.67229337897276D-01 0.85000698357548D-16 + 3 2 2 34 0.16403408343850D+00 -0.24127308870608D-16 + 1 3 2 34 0.17402778573232D+01 -0.46066588530011D-16 + 2 3 2 34 0.28933820724064D+01 -0.13667796662999D-16 + 3 3 2 34 0.13163110477181D+01 -0.16917277000809D-16 + 1 4 2 34 -0.12789009470737D+01 0.72142361203025D-16 + 2 4 2 34 0.30490719621776D+01 0.15951417704701D-16 + 3 4 2 34 0.13535554609168D+01 -0.31226672721711D-16 + 1 5 2 34 0.42131995820271D-01 0.44793885874531D-16 + 2 5 2 34 0.33819761922103D+00 0.24989987618701D-15 + 3 5 2 34 -0.51652952950282D+00 0.33973150865979D-16 + 1 6 2 34 -0.14352455831500D+00 -0.33498102638344D-17 + 2 6 2 34 -0.14974612365160D-01 -0.95009467911111D-16 + 3 6 2 34 -0.97843402870791D-01 0.31853545289007D-16 + 1 7 2 34 0.12921767328817D+01 -0.11945058168011D-16 + 2 7 2 34 0.31589468614603D+01 0.16777815892176D-15 + 3 7 2 34 -0.13578084798523D+01 0.38974523760681D-17 + 1 8 2 34 -0.11880694090846D+01 -0.96574274061106D-16 + 2 8 2 34 0.30525156815770D+01 0.20918650359365D-15 + 3 8 2 34 -0.13006788073403D+01 0.34228920507378D-16 + 1 9 2 34 -0.35229755184921D+00 0.33421074567124D-16 + 2 9 2 34 0.25970597428464D+00 0.25117852933722D-16 + 3 9 2 34 -0.25535070192155D+00 -0.75888933869483D-16 + 1 10 2 34 -0.48648896442327D+00 -0.20418158503408D-18 + 2 10 2 34 -0.77484903294974D+00 0.92340264445385D-16 + 3 10 2 34 0.46398375705643D+00 0.11767074564568D-15 + 1 11 2 34 -0.45501407968523D+00 -0.38819190198257D-16 + 2 11 2 34 -0.38471724455037D+00 0.64695417465948D-16 + 3 11 2 34 0.50796404958534D+00 0.20798720416404D-16 + 1 12 2 34 -0.24072133695194D-01 -0.74415437424832D-17 + 2 12 2 34 0.26293960391363D+00 -0.16654867134809D-16 + 3 12 2 34 0.46328043538556D-01 -0.28924457743818D-16 + 1 13 2 34 -0.14499435259298D+02 0.11687965199113D-16 + 2 13 2 34 -0.26557973056397D+02 0.34206774119298D-16 + 3 13 2 34 0.14386353091133D+02 -0.76478185534605D-17 + 1 14 2 34 0.31346412582914D+00 0.47082216628109D-16 + 2 14 2 34 0.13399195151198D+00 -0.22681576512872D-16 + 3 14 2 34 0.30326750866985D+00 -0.22265200205430D-16 + 1 15 2 34 -0.48505645736949D+00 -0.31989478308926D-17 + 2 15 2 34 -0.39950504984975D+00 -0.30292350406292D-15 + 3 15 2 34 0.46398081912002D+00 0.82446151388919D-17 + 1 16 2 34 0.30971891017045D+01 -0.18606160432600D-17 + 2 16 2 34 -0.29700809879205D+01 0.76712333427733D-16 + 3 16 2 34 -0.13483055546319D+01 0.29366538289386D-17 + 1 17 2 34 -0.82702315888194D-01 0.11738224700927D-17 + 2 17 2 34 -0.22618681439698D+00 0.35955514195442D-16 + 3 17 2 34 -0.11218963836733D+00 0.40256815951311D-16 + 1 18 2 34 -0.33550916598139D+01 0.50297206454085D-18 + 2 18 2 34 -0.29958810583551D+01 0.13086843010107D-15 + 3 18 2 34 -0.12333277166283D+01 0.24558564811350D-16 + 1 19 2 34 0.21870410963720D-01 -0.16280925708724D-18 + 2 19 2 34 -0.21577894633812D+00 -0.24806935107682D-15 + 3 19 2 34 -0.15415690230455D+00 -0.56251109748752D-16 + 1 20 2 34 -0.30751735322857D+01 0.81503524000265D-18 + 2 20 2 34 -0.29297901679364D+01 0.13271233948623D-15 + 3 20 2 34 0.12816300215294D+01 0.59103011242216D-16 + 1 21 2 34 0.10067823622292D+00 -0.15212791994634D-17 + 2 21 2 34 -0.20851766763871D+00 -0.14598153524624D-15 + 3 21 2 34 0.74387259052583D-01 0.25097595981718D-16 + 1 22 2 34 0.29031814937507D+01 0.10796787645378D-16 + 2 22 2 34 -0.31495638884331D+01 -0.23170944987941D-15 + 3 22 2 34 0.15092623549221D+01 0.35269425107104D-16 + 1 23 2 34 -0.94115504274791D-01 0.11708606161493D-17 + 2 23 2 34 -0.21706843664550D+00 0.16848979760751D-15 + 3 23 2 34 0.97785945508693D-01 -0.95454828341695D-16 + 1 24 2 34 0.28476319214308D-02 -0.17362731260326D-17 + 2 24 2 34 0.25776364732936D+00 0.16829585297686D-15 + 3 24 2 34 0.66675456039033D-02 0.70443720625014D-17 + 1 25 2 34 0.47565222349129D+00 0.92830917202293D-17 + 2 25 2 34 -0.36260602341346D+00 0.36268302172199D-15 + 3 25 2 34 0.49763141720444D+00 0.62732863119187D-17 + 1 26 2 34 0.45721072852454D+00 0.30905891589176D-16 + 2 26 2 34 -0.78452529044150D+00 -0.23407529388636D-15 + 3 26 2 34 0.39877880383948D+00 -0.27891327398928D-16 + 1 27 2 34 0.31415557033788D+00 -0.25152827102426D-16 + 2 27 2 34 0.15344209870445D+00 0.12821076883680D-16 + 3 27 2 34 -0.32390006586088D+00 0.10801482056543D-17 + 1 28 2 34 0.49802215951677D+00 -0.17717690142193D-16 + 2 28 2 34 -0.45776171415236D+00 0.15377693829334D-15 + 3 28 2 34 0.49454898553087D+00 0.28199071245731D-17 + 1 29 2 34 0.27016392427598D+00 0.55804615424218D-16 + 2 29 2 34 0.42103726169300D+00 -0.28787160266361D-15 + 3 29 2 34 0.32161347997774D+00 -0.67411485247238D-16 + 1 30 2 34 -0.29804618665443D+00 0.94228923128009D-17 + 2 30 2 34 0.27170792927839D+00 -0.10029110778855D-15 + 3 30 2 34 0.15134694933493D+00 -0.19579104270928D-16 + 1 31 2 34 0.13571489657005D+02 0.18956231111718D-17 + 2 31 2 34 -0.25398477425812D+02 -0.22212540994993D-16 + 3 31 2 34 0.13622835122802D+02 -0.84803591785090D-17 + 1 32 2 34 0.11599296174228D+00 0.15794012579433D-16 + 2 32 2 34 0.12797076026959D+00 -0.80839309697993D-18 + 3 32 2 34 0.39305705776450D+00 0.16079991894836D-17 + 1 33 2 34 -0.27724378819635D-01 0.35005317139442D-18 + 2 33 2 34 -0.12727626599595D+00 -0.26246016580727D-17 + 3 33 2 34 -0.79348798505182D-01 0.22825163263311D-18 + 1 34 2 34 0.17989040590742D+01 0.00000000000000D+00 + 2 34 2 34 0.11772786846936D+03 0.00000000000000D+00 + 3 34 2 34 -0.13236166824969D+01 0.00000000000000D+00 + 1 35 2 34 0.15542216925407D-01 0.13781354795153D-18 + 2 35 2 34 -0.23998152292439D+00 -0.43172002071337D-18 + 3 35 2 34 -0.74889325537826D-02 0.23875905499876D-18 + 1 36 2 34 -0.13312149805395D-01 0.29287813853187D-18 + 2 36 2 34 -0.10442409181147D+00 0.92136202979896D-18 + 3 36 2 34 -0.70096081780645D-02 -0.88339737249418D-19 + 1 37 2 34 0.22811652599746D-01 -0.74584139576964D-18 + 2 37 2 34 -0.84272004536129D-01 0.65531101140684D-18 + 3 37 2 34 -0.25872687761077D-01 0.00000000000000D+00 + 1 38 2 34 -0.73118224368082D-01 0.21932663488416D-17 + 2 38 2 34 -0.31749180709190D+00 0.69520637066474D-17 + 3 38 2 34 0.34358997781744D-01 -0.33271384337044D-17 + 1 39 2 34 -0.12570281290532D-01 0.24718680352411D-18 + 2 39 2 34 0.15339790868766D+01 0.19900087796067D-17 + 3 39 2 34 0.11097588776131D-01 0.23392088189284D-18 + 1 40 2 34 -0.31821622388506D+00 0.52000587340580D-16 + 2 40 2 34 0.21967419079835D+00 -0.95059531176262D-16 + 3 40 2 34 -0.28016256143628D+00 -0.10043539509680D-16 + 1 41 2 34 0.13677385535158D+02 -0.31409568708498D-16 + 2 41 2 34 -0.25999938377806D+02 0.20051462674513D-15 + 3 41 2 34 -0.13994635157626D+02 0.36457293167259D-16 + 1 42 2 34 0.46840841101348D+00 -0.68253945879160D-17 + 2 42 2 34 -0.21332075910505D+00 -0.18128615885296D-15 + 3 42 2 34 -0.29558449714712D+00 -0.86009735650290D-17 + 1 43 2 34 0.33872008325702D+00 -0.17477117943228D-16 + 2 43 2 34 0.44715972523503D+00 0.13054008230184D-15 + 3 43 2 34 -0.25348016079986D+00 -0.17194621502000D-16 + 1 44 2 34 0.46486050728527D+00 -0.27568111533621D-16 + 2 44 2 34 -0.84989106608483D+00 0.12603750349451D-15 + 3 44 2 34 -0.43513197182491D+00 0.28670424802891D-16 + 1 45 2 34 0.24689778800013D+00 -0.14520762952111D-16 + 2 45 2 34 0.18184668037694D+00 0.21878066226929D-15 + 3 45 2 34 0.30091129439677D+00 -0.34580382822115D-16 + 1 46 2 34 0.15681017887170D+00 -0.15450564843273D-16 + 2 46 2 34 0.16229330172928D+00 -0.17957449171084D-16 + 3 46 2 34 -0.98401233411655D-01 0.18420604925374D-16 + 1 47 2 34 0.43441998613116D+00 0.21858264792077D-17 + 2 47 2 34 -0.13525500815598D+00 -0.34167205312939D-16 + 3 47 2 34 -0.33525327094947D+00 -0.13087935449759D-16 + 1 48 2 34 -0.12743152760817D+01 -0.79560931425764D-17 + 2 48 2 34 -0.30528471590872D+01 -0.62540230493106D-16 + 3 48 2 34 0.31608079795357D+01 -0.56957854293015D-17 + 1 49 2 34 0.13774526215980D+01 -0.26383473855702D-16 + 2 49 2 34 -0.30064990613072D+01 0.29880019927525D-15 + 3 49 2 34 -0.32361500471502D+01 -0.39510593849255D-17 + 1 50 2 34 -0.15565761819559D+01 0.99181033347210D-17 + 2 50 2 34 -0.34528163015957D+01 -0.18550277808346D-15 + 3 50 2 34 -0.30549193890543D+01 -0.72475623326363D-17 + 1 51 2 34 0.12172360738130D+01 0.31646641312251D-16 + 2 51 2 34 -0.30589887005169D+01 0.16096989290157D-15 + 3 51 2 34 0.33428811390470D+01 -0.14009286615029D-17 + 1 52 2 34 -0.18188827530424D+00 0.12334935995778D-16 + 2 52 2 34 -0.14082776768839D+00 -0.21524882858463D-16 + 3 52 2 34 -0.16359920195150D+00 -0.34168420917426D-17 + 1 53 2 34 0.11346762956114D+00 0.11692980700145D-16 + 2 53 2 34 -0.22877355990031D+00 0.11744947586362D-15 + 3 53 2 34 0.94812845415096D-01 -0.89630420498472D-18 + 1 54 2 34 -0.54960985429200D-01 -0.93407238498300D-17 + 2 54 2 34 -0.22758195861379D+00 0.16347167681722D-15 + 3 54 2 34 0.86008039398324D-01 0.11367833177860D-17 + 1 55 2 34 0.15890958213719D+00 0.69285222326121D-17 + 2 55 2 34 -0.23088084729192D+00 0.10425357393158D-15 + 3 55 2 34 0.21360777461593D-02 0.42452623905619D-18 + 1 56 2 34 -0.13762305616937D+00 -0.23670101568629D-16 + 2 56 2 34 0.55573036713755D+00 -0.70803315412977D-16 + 3 56 2 34 -0.40212139172874D+00 -0.18490065874623D-16 + 1 57 2 34 -0.49830994239345D+00 0.27390804315048D-16 + 2 57 2 34 -0.36088245076100D+00 -0.17010438274963D-15 + 3 57 2 34 -0.42944402667853D+00 0.32476417754016D-16 + 1 58 2 34 -0.14256821798390D+02 -0.11175958846461D-16 + 2 58 2 34 -0.24532491806041D+02 0.87010752798037D-16 + 3 58 2 34 -0.12776995690578D+02 -0.14207502062275D-16 + 1 59 2 34 0.26505761927302D+00 -0.13232104097872D-16 + 2 59 2 34 0.17637186941306D+00 0.91001129189359D-16 + 3 59 2 34 -0.27340328278778D+00 -0.30048722091778D-16 + 1 60 2 34 -0.46034884881434D+00 0.30574356078443D-16 + 2 60 2 34 -0.39910233886039D+00 0.18427904671854D-16 + 3 60 2 34 -0.27618358262648D+00 -0.38191171276279D-16 + 1 61 2 34 -0.44235881324082D-02 0.14283667830009D-16 + 2 61 2 34 0.26805640929539D+00 0.12578447920438D-15 + 3 61 2 34 -0.30515804448365D-01 -0.64399393082548D-17 + 1 62 2 34 -0.29550212064911D+00 0.39537142651089D-17 + 2 62 2 34 0.93208777468695D-01 0.27078542602182D-15 + 3 62 2 34 0.25867275679239D+00 -0.16229209323570D-16 + 1 63 2 34 -0.45552372354200D+00 0.17698817274975D-17 + 2 63 2 34 -0.78338733454981D+00 -0.14430438044402D-15 + 3 63 2 34 -0.46766185471484D+00 -0.24437594029239D-16 + 1 64 2 34 -0.14080624751412D+00 -0.40188892450767D-16 + 2 64 2 34 0.18586369695549D+00 0.54921645514345D-16 + 3 64 2 34 0.28518279672125D+00 -0.33323455481105D-16 + 1 65 2 34 -0.36513389322850D+00 -0.20616936331667D-16 + 2 65 2 34 -0.39045088703824D+00 0.74091568525782D-16 + 3 65 2 34 -0.56471974226056D+00 -0.35787361562291D-16 + 1 1 3 34 0.90300250886181D-01 -0.34408652084875D-18 + 2 1 3 34 -0.13225854204798D+00 0.10321503213760D-17 + 3 1 3 34 -0.21086672653499D+00 0.23009580887820D-15 + 1 2 3 34 -0.36582342768198D-01 -0.35656903542221D-17 + 2 2 3 34 -0.15189491883038D+00 -0.24127308870608D-16 + 3 2 3 34 -0.26027564892998D+00 0.21870235485132D-15 + 1 3 3 34 -0.28846658458855D+01 0.48243005177505D-17 + 2 3 3 34 -0.10021922192644D+01 -0.16917277000809D-16 + 3 3 3 34 -0.28762227844451D+01 -0.91899892248127D-16 + 1 4 3 34 0.32224719826006D+01 0.12448239607880D-17 + 2 4 3 34 -0.13623457728179D+01 -0.31226672721711D-16 + 3 4 3 34 -0.31198683632758D+01 0.11900829851683D-15 + 1 5 3 34 -0.22701782239698D-01 -0.18655817355277D-17 + 2 5 3 34 -0.15857612882839D+00 0.33973150865979D-16 + 3 5 3 34 0.18707498056840D+00 -0.10595243941310D-15 + 1 6 3 34 0.73906612608212D-01 0.14730749097679D-17 + 2 6 3 34 0.63014662905336D-01 0.31853545289007D-16 + 3 6 3 34 -0.21706843664551D+00 -0.21270150367747D-15 + 1 7 3 34 0.32845967229457D+01 0.91740715694116D-18 + 2 7 3 34 0.13578084798523D+01 0.38974523760681D-17 + 3 7 3 34 -0.31435481711389D+01 0.24392040105879D-15 + 1 8 3 34 -0.31941085754673D+01 0.67729358453852D-18 + 2 8 3 34 0.14073185650725D+01 0.34228920507378D-16 + 3 8 3 34 -0.31161797414798D+01 0.15751741900932D-15 + 1 9 3 34 0.27417204537268D+00 -0.25355105717409D-16 + 2 9 3 34 -0.28470708887521D+00 -0.75888933869483D-16 + 3 9 3 34 0.12690873433395D+00 0.13612709790614D-16 + 1 10 3 34 0.44859374967649D+00 0.56830374270468D-17 + 2 10 3 34 0.46636153091888D+00 0.11767074564568D-15 + 3 10 3 34 -0.35985695528310D+00 0.14113492563805D-15 + 1 11 3 34 0.46462462382006D+00 0.19752310425743D-16 + 2 11 3 34 0.45441403519211D+00 0.20798720416404D-16 + 3 11 3 34 -0.76085550268744D+00 -0.51059807012289D-16 + 1 12 3 34 -0.11266806978942D-01 -0.47436946268814D-16 + 2 12 3 34 0.12652840085353D-01 -0.28924457743818D-16 + 3 12 3 34 0.26346517888124D+00 -0.31918147450675D-16 + 1 13 3 34 0.13895113734309D+02 -0.46693663478396D-16 + 2 13 3 34 0.14423236904409D+02 -0.76478185534605D-17 + 3 13 3 34 -0.26286632465736D+02 0.42505427077106D-15 + 1 14 3 34 0.32592916479673D+00 -0.22116717759706D-16 + 2 14 3 34 0.26654576811627D+00 -0.22265200205430D-16 + 3 14 3 34 0.49508247045829D+00 -0.20086702905531D-15 + 1 15 3 34 0.45605122386224D+00 0.32776995561591D-16 + 2 15 3 34 0.42696613261043D+00 0.82446151388919D-17 + 3 15 3 34 -0.38733449979395D+00 -0.29724921435510D-15 + 1 16 3 34 -0.11971059792642D+01 0.49910026559646D-17 + 2 16 3 34 0.12001748544478D+01 0.29366538289386D-17 + 3 16 3 34 0.29632774936015D+01 -0.32325121720879D-16 + 1 17 3 34 -0.99565345105371D-01 -0.87801256021913D-16 + 2 17 3 34 0.80612052259492D-01 0.40256815951311D-16 + 3 17 3 34 -0.18016648722810D-01 -0.35217323701762D-16 + 1 18 3 34 0.14068234245039D+01 0.22405628450624D-15 + 2 18 3 34 0.11353333223013D+01 0.24558564811350D-16 + 3 18 3 34 0.30155345649138D+01 -0.27518220713077D-16 + 1 19 3 34 0.14764773017077D+00 -0.22362936984160D-15 + 2 19 3 34 0.10356682372425D+00 -0.56251109748752D-16 + 3 19 3 34 0.54598954673188D-01 0.91685473963737D-16 + 1 20 3 34 -0.13625469848010D+01 -0.38543236644370D-16 + 2 20 3 34 -0.12816300215294D+01 0.59103011242216D-16 + 3 20 3 34 0.31258167392204D+01 0.10134979573004D-16 + 1 21 3 34 -0.12635356812616D+00 -0.65092805770529D-16 + 2 21 3 34 -0.99568015791876D-01 0.25097595981718D-16 + 3 21 3 34 0.52373562507969D-02 -0.31336865812631D-16 + 1 22 3 34 0.81602640442448D+00 -0.88876243945214D-16 + 2 22 3 34 -0.10224519877059D+01 0.35269425107104D-16 + 3 22 3 34 0.26553207591071D+01 -0.15915876428956D-16 + 1 23 3 34 0.43841709977778D-01 0.30617633138546D-16 + 2 23 3 34 -0.62766396932404D-01 -0.95454828341695D-16 + 3 23 3 34 -0.14974612365170D-01 0.10294761150762D-17 + 1 24 3 34 -0.22841937824872D-01 0.14243240394159D-16 + 2 24 3 34 0.37917362697485D-01 0.70443720625014D-17 + 3 24 3 34 0.28901435639828D+00 -0.62176742371072D-16 + 1 25 3 34 -0.43605273089238D+00 -0.15351487345310D-16 + 2 25 3 34 0.41193502972180D+00 0.62732863119187D-17 + 3 25 3 34 -0.73479300855675D+00 -0.49576448321240D-16 + 1 26 3 34 -0.48845849095460D+00 -0.18549652561934D-16 + 2 26 3 34 0.46804370187614D+00 -0.27891327398928D-16 + 3 26 3 34 -0.39849614674370D+00 -0.41684628280384D-15 + 1 27 3 34 -0.33966503486389D+00 -0.38252009586682D-16 + 2 27 3 34 -0.28979766667512D+00 0.10801482056543D-17 + 3 27 3 34 0.22540838907912D+00 0.22859408275760D-16 + 1 28 3 34 -0.50890489309557D+00 -0.27968368039463D-17 + 2 28 3 34 0.55121297710036D+00 0.28199071245731D-17 + 3 28 3 34 -0.40136127322327D+00 -0.71755820437897D-16 + 1 29 3 34 0.32656081583015D+00 0.24764693695315D-16 + 2 29 3 34 0.32723300791452D+00 -0.67411485247238D-16 + 3 29 3 34 0.18674912064643D+00 -0.19341136096873D-15 + 1 30 3 34 -0.27943292278048D+00 -0.28051428229198D-16 + 2 30 3 34 0.21879589379040D+00 -0.19579104270928D-16 + 3 30 3 34 0.37272648315900D+00 -0.15139943081072D-15 + 1 31 3 34 -0.13217865722021D+02 -0.10110972308886D-16 + 2 31 3 34 0.13522654321832D+02 -0.84803591785090D-17 + 3 31 3 34 -0.25515961030837D+02 0.30227702229897D-15 + 1 32 3 34 0.24475038061528D-01 -0.20492721441180D-16 + 2 32 3 34 -0.28504399934005D+00 0.16079991894836D-17 + 3 32 3 34 -0.44422357773511D+00 0.96972041260704D-17 + 1 33 3 34 0.63626998041331D-01 0.00000000000000D+00 + 2 33 3 34 -0.86493072065201D-02 0.22825163263311D-18 + 3 33 3 34 -0.12727626599595D+00 0.44178569402101D-17 + 1 34 3 34 0.59488669410346D-01 0.00000000000000D+00 + 2 34 3 34 -0.13236166824969D+01 0.00000000000000D+00 + 3 34 3 34 0.11865662793326D+03 0.00000000000000D+00 + 1 35 3 34 -0.22284876094396D-01 0.60992065641352D-18 + 2 35 3 34 0.67018209271095D-01 0.23875905499876D-18 + 3 35 3 34 -0.39179030205285D+00 0.85822637194370D-18 + 1 36 3 34 -0.24861959050637D-01 -0.68962385646553D-18 + 2 36 3 34 0.44845856798312D-01 -0.88339737249418D-19 + 3 36 3 34 0.14768947477597D+01 0.15690449890850D-17 + 1 37 3 34 -0.38930185792206D-01 -0.37635113882709D-18 + 2 37 3 34 -0.12262395208868D-01 0.00000000000000D+00 + 3 37 3 34 -0.95554353237722D-01 0.65627662411941D-17 + 1 38 3 34 0.19184240360456D-02 -0.26245384963279D-17 + 2 38 3 34 0.40416366528409D-01 -0.33271384337044D-17 + 3 38 3 34 -0.20671006593297D+00 -0.65424230918884D-18 + 1 39 3 34 -0.23926507485511D-01 -0.27698421718201D-18 + 2 39 3 34 0.41533968157781D-01 0.23392088189284D-18 + 3 39 3 34 -0.19111969908325D+00 0.19525923588419D-17 + 1 40 3 34 0.19985889980303D+00 -0.74894992214499D-17 + 2 40 3 34 -0.23274844943711D+00 -0.10043539509680D-16 + 3 40 3 34 0.42551965214465D+00 -0.23274052643189D-15 + 1 41 3 34 0.13879011340542D+02 -0.20563593211528D-16 + 2 41 3 34 -0.14107929617707D+02 0.36457293167259D-16 + 3 41 3 34 -0.26062789866101D+02 0.17314295247218D-15 + 1 42 3 34 0.53730740550124D+00 0.34792660371439D-16 + 2 42 3 34 -0.40158016642122D+00 -0.86009735650290D-17 + 3 42 3 34 -0.25326590528758D+00 0.11478038939911D-16 + 1 43 3 34 -0.29916503793231D+00 -0.26993235612938D-16 + 2 43 3 34 -0.16366981488135D+00 -0.17194621502000D-16 + 3 43 3 34 0.12123201124200D+00 0.73552358758143D-16 + 1 44 3 34 0.52775938851813D+00 -0.28027176307712D-16 + 2 44 3 34 -0.49790547501619D+00 0.28670424802891D-16 + 3 44 3 34 -0.44967235785732D+00 -0.14988360703173D-16 + 1 45 3 34 0.31572160078401D+00 -0.46248739033097D-16 + 2 45 3 34 0.30265282018592D+00 -0.34580382822115D-16 + 3 45 3 34 0.24708348230195D+00 -0.23432088862364D-17 + 1 46 3 34 -0.24696374662172D-02 -0.85543987383570D-16 + 2 46 3 34 -0.12118996449944D-01 0.18420604925374D-16 + 3 46 3 34 0.26864894443220D+00 -0.57698082979150D-16 + 1 47 3 34 0.50939446161318D+00 0.36583764034380D-16 + 2 47 3 34 -0.50016541024873D+00 -0.13087935449759D-16 + 3 47 3 34 -0.87719096127326D+00 0.62803804666015D-16 + 1 48 3 34 0.13256739918059D+01 0.31839361182279D-17 + 2 48 3 34 0.31608079795357D+01 -0.56957854293015D-17 + 3 48 3 34 -0.29795532850691D+01 0.13837344833479D-15 + 1 49 3 34 0.12360040210205D+01 0.28896587384652D-16 + 2 49 3 34 -0.31905729764210D+01 -0.39510593849255D-17 + 3 49 3 34 -0.30626394163209D+01 0.13688411701739D-15 + 1 50 3 34 -0.15177320252663D+01 0.18458571019536D-16 + 2 50 3 34 -0.31092013568370D+01 -0.72475623326363D-17 + 3 50 3 34 -0.25386322377401D+01 0.27589227486589D-15 + 1 51 3 34 -0.12454641439855D+01 0.17967076824653D-16 + 2 51 3 34 0.31293913227632D+01 -0.14009286615029D-17 + 3 51 3 34 -0.30589887005169D+01 -0.14068168587003D-15 + 1 52 3 34 0.10915285207293D+00 -0.10338743879503D-16 + 2 52 3 34 -0.15173137220633D+00 -0.34168420917426D-17 + 3 52 3 34 -0.19250859648881D+00 0.73013555103026D-16 + 1 53 3 34 0.10979845495590D+00 0.30092623080810D-16 + 2 53 3 34 0.88531530517871D-01 -0.89630420498472D-18 + 3 53 3 34 -0.24801182769948D+00 0.74469943182482D-16 + 1 54 3 34 -0.11018956029346D+00 -0.26893891836221D-16 + 2 54 3 34 0.90810637626314D-01 0.11367833177860D-17 + 3 54 3 34 -0.20873637486903D+00 0.68222034450949D-15 + 1 55 3 34 -0.14432681694242D+00 0.32446357676636D-17 + 2 55 3 34 -0.49290147573133D-01 0.42452623905619D-18 + 3 55 3 34 -0.26792518326819D+00 -0.17850768413528D-15 + 1 56 3 34 0.28361053495242D+00 -0.21124499232138D-16 + 2 56 3 34 -0.31592974345080D+00 -0.18490065874623D-16 + 3 56 3 34 0.23490982432093D+00 -0.12773218509072D-15 + 1 57 3 34 -0.48409400010692D+00 0.23083178402947D-16 + 2 57 3 34 -0.41751349235391D+00 0.32476417754016D-16 + 3 57 3 34 -0.32229451800094D+00 0.12723442754403D-15 + 1 58 3 34 -0.14657929762345D+02 -0.40047986527873D-16 + 2 58 3 34 -0.12371596783117D+02 -0.14207502062275D-16 + 3 58 3 34 -0.25101178599709D+02 0.38647564245672D-16 + 1 59 3 34 -0.22564467784923D+00 -0.14112261465069D-16 + 2 59 3 34 -0.30191942014922D+00 -0.30048722091778D-16 + 3 59 3 34 0.43222364377869D+00 0.89015107869458D-16 + 1 60 3 34 -0.33826748421716D+00 -0.11472421818307D-16 + 2 60 3 34 -0.59323179457402D+00 -0.38191171276279D-16 + 3 60 3 34 -0.86409040711022D+00 -0.18159017108578D-15 + 1 61 3 34 -0.16149580206859D-01 0.15602719019129D-16 + 2 61 3 34 -0.27822975149859D-01 -0.64399393082548D-17 + 3 61 3 34 0.26462086478740D+00 -0.11647398988438D-15 + 1 62 3 34 -0.38139056523925D+00 -0.89161287878463D-16 + 2 62 3 34 0.34011013696973D+00 -0.16229209323570D-16 + 3 62 3 34 0.18898539371497D+00 0.44388690966160D-16 + 1 63 3 34 -0.44224998145374D+00 -0.30224745060445D-16 + 2 63 3 34 -0.45833681568795D+00 -0.24437594029239D-16 + 3 63 3 34 -0.37168114771699D+00 0.99283731144985D-16 + 1 64 3 34 0.39928517272519D-01 0.16553207503280D-16 + 2 64 3 34 -0.67187656821284D-01 -0.33323455481105D-16 + 3 64 3 34 0.75805720364933D-01 -0.18182113610340D-16 + 1 65 3 34 -0.26880943972696D+00 -0.12410830313008D-16 + 2 65 3 34 0.18288178967436D+00 -0.35787361562291D-16 + 3 65 3 34 -0.52499789938128D+00 0.12635254729745D-15 + 1 1 1 35 -0.21730179390958D+00 0.75995121999597D-16 + 2 1 1 35 0.90350894191815D-01 -0.59419649007565D-16 + 3 1 1 35 -0.11754640956586D+00 -0.86087185488308D-18 + 1 2 1 35 -0.23994603525543D+00 -0.10558126097113D-15 + 2 2 1 35 -0.70206638076884D-01 0.49967995388199D-16 + 3 2 1 35 0.10929782699040D+00 0.18645403308974D-17 + 1 3 1 35 -0.29596538007428D+01 -0.11715791508787D-15 + 2 3 1 35 0.14160356266369D+01 0.51055166998064D-16 + 3 3 1 35 0.31254481327735D+01 -0.44044920785612D-18 + 1 4 1 35 -0.30954916382760D+01 -0.19805687111390D-16 + 2 4 1 35 -0.12247732147474D+01 -0.18732352635591D-16 + 3 4 1 35 -0.31872566408720D+01 0.16682010209919D-17 + 1 5 1 35 -0.17607364125101D+00 -0.28058228523083D-15 + 2 5 1 35 0.98978215545324D-01 0.77648443300457D-16 + 3 5 1 35 -0.67118144898829D-02 -0.57013731403655D-19 + 1 6 1 35 -0.22820373706450D+00 -0.24048544864984D-15 + 2 6 1 35 -0.12635356812615D+00 0.18633500849882D-16 + 3 6 1 35 -0.10067823622293D+00 -0.37182115527619D-19 + 1 7 1 35 -0.31052957392000D+01 -0.23924327955219D-15 + 2 7 1 35 0.11880694090846D+01 0.24294608499296D-16 + 3 7 1 35 -0.31941085754673D+01 -0.76798346157225D-17 + 1 8 1 35 -0.31246827126462D+01 -0.11660257227661D-15 + 2 8 1 35 -0.13218851373702D+01 0.10102355478572D-15 + 3 8 1 35 0.32372407928346D+01 0.83149472273196D-18 + 1 9 1 35 -0.43635665931269D+00 0.21020170521127D-15 + 2 9 1 35 -0.41949172230349D+00 0.49648537606008D-17 + 3 9 1 35 0.44350778402486D+00 0.22988367902172D-16 + 1 10 1 35 0.49321229505338D+00 -0.10756137401514D-15 + 2 10 1 35 -0.29889594006103D+00 -0.85496583771986D-17 + 3 10 1 35 0.29889594006093D+00 -0.11258315973028D-16 + 1 11 1 35 0.26939096072921D+00 -0.15718415625869D-16 + 2 11 1 35 -0.17330317339696D-01 0.11312470167731D-18 + 3 11 1 35 0.17330317339693D-01 -0.50455831759627D-17 + 1 12 1 35 -0.43614168367627D+00 0.81705930150926D-16 + 2 12 1 35 -0.44407962521095D+00 0.21590456792042D-16 + 3 12 1 35 0.41949172230350D+00 -0.57737247465717D-16 + 1 13 1 35 0.17242731460602D+00 -0.57191870724833D-16 + 2 13 1 35 0.28498843691369D+00 -0.22355515921754D-16 + 3 13 1 35 0.25653774893590D+00 0.29259682719269D-16 + 1 14 1 35 -0.26110101691917D+02 0.98892000157291D-16 + 2 14 1 35 -0.13981816650897D+02 -0.80807690500281D-17 + 3 14 1 35 0.13981816650897D+02 0.20896598994992D-17 + 1 15 1 35 0.17245337070865D+00 -0.16443275035337D-15 + 2 15 1 35 -0.25712532149784D+00 -0.23575265042696D-16 + 3 15 1 35 -0.28498843691365D+00 0.21902927017394D-16 + 1 16 1 35 -0.23994603525543D+00 -0.13498003852172D-15 + 2 16 1 35 -0.10929782699042D+00 -0.24271173814233D-17 + 3 16 1 35 0.70206638076878D-01 -0.92084451944098D-16 + 1 17 1 35 -0.30954916382759D+01 -0.13274359476846D-15 + 2 17 1 35 0.31872566408716D+01 -0.74618656092771D-18 + 3 17 1 35 0.12247732147474D+01 -0.97286243089096D-16 + 1 18 1 35 -0.21730179390960D+00 -0.84976303764744D-16 + 2 18 1 35 0.11754640956584D+00 0.89249382799995D-19 + 3 18 1 35 -0.90350894191818D-01 0.98082948003903D-16 + 1 19 1 35 -0.29596538007428D+01 -0.20151046080386D-15 + 2 19 1 35 -0.31254481327734D+01 -0.67772186803771D-17 + 3 19 1 35 -0.14160356266369D+01 0.34449245606120D-16 + 1 20 1 35 -0.22820373706450D+00 0.53940169382821D-16 + 2 20 1 35 0.10067823622293D+00 -0.15289067096436D-17 + 3 20 1 35 0.12635356812617D+00 0.68101975948079D-16 + 1 21 1 35 -0.31246827126460D+01 0.21786180051446D-15 + 2 21 1 35 -0.32372407928346D+01 0.13004685087648D-18 + 3 21 1 35 0.13218851373702D+01 0.46833016979358D-16 + 1 22 1 35 -0.17607364125106D+00 -0.16310868973522D-15 + 2 22 1 35 0.67118144898900D-02 0.28212202429645D-17 + 3 22 1 35 -0.98978215545314D-01 0.90460125028003D-16 + 1 23 1 35 -0.31052957392001D+01 -0.13446584556023D-15 + 2 23 1 35 0.31941085754673D+01 0.20906690116031D-18 + 3 23 1 35 -0.11880694090847D+01 -0.12048260156887D-16 + 1 24 1 35 -0.42580530827139D+00 0.36799850591066D-15 + 2 24 1 35 0.51494688043211D+00 0.31375357225915D-16 + 3 24 1 35 -0.48044606924574D+00 -0.50410183028392D-17 + 1 25 1 35 0.26343432207317D+00 0.43800938114170D-16 + 2 25 1 35 0.26920621507094D-01 0.12349858162480D-16 + 3 25 1 35 -0.26920621507096D-01 0.11495040091175D-16 + 1 26 1 35 0.33407282794413D+00 0.34527443765874D-16 + 2 26 1 35 0.22874393479573D+00 0.49933257253539D-16 + 3 26 1 35 -0.22874393479573D+00 -0.15957638059665D-16 + 1 27 1 35 -0.42580530827145D+00 -0.64612004722520D-16 + 2 27 1 35 0.48044606924574D+00 0.50868562322377D-17 + 3 27 1 35 -0.51494688043211D+00 0.29254759584006D-16 + 1 28 1 35 0.25011915021960D+00 -0.35150965643857D-15 + 2 28 1 35 0.34701892963441D+00 -0.37460065217312D-16 + 3 28 1 35 0.29670673634117D+00 0.24639761389039D-16 + 1 29 1 35 -0.68544091796875D+00 0.49122889774019D-16 + 2 29 1 35 0.48684142294518D+00 -0.16763679209296D-16 + 3 29 1 35 -0.48684142294518D+00 0.42725370915032D-17 + 1 30 1 35 -0.24102957627296D+02 -0.12710599345256D-16 + 2 30 1 35 0.13010403468366D+02 0.30549531547814D-16 + 3 30 1 35 -0.13010403468366D+02 0.20780620058521D-16 + 1 31 1 35 0.25011915021962D+00 0.17569903852944D-16 + 2 31 1 35 -0.29670673634117D+00 -0.39214734029609D-16 + 3 31 1 35 -0.34701892963440D+00 -0.48428168640550D-16 + 1 32 1 35 0.13557269446422D+01 0.41759097786977D-17 + 2 32 1 35 0.21546854528395D+00 0.40250824512097D-17 + 3 32 1 35 -0.21546854528394D+00 0.15021198670472D-17 + 1 33 1 35 -0.23565771303356D+00 -0.13780585837212D-17 + 2 33 1 35 0.22284876094380D-01 -0.12781778733501D-18 + 3 33 1 35 -0.15542216925406D-01 0.14532614563658D-18 + 1 34 1 35 -0.23565771303351D+00 0.52086404488620D-18 + 2 34 1 35 0.15542216925407D-01 -0.13781354795153D-18 + 3 34 1 35 -0.22284876094396D-01 -0.60992065641352D-18 + 1 35 1 35 0.11764144224654D+03 0.00000000000000D+00 + 2 35 1 35 0.95835602795596D+00 0.00000000000000D+00 + 3 35 1 35 -0.95835602795622D+00 0.00000000000000D+00 + 1 36 1 35 -0.10055294059491D+00 -0.26797395744707D-17 + 2 36 1 35 -0.75447065688494D-03 0.33082645645505D-18 + 3 36 1 35 0.75447065688374D-03 0.54859824879068D-18 + 1 37 1 35 -0.12290306718743D+00 -0.14830529779444D-17 + 2 37 1 35 -0.50187471622119D-01 0.67975467796780D-18 + 3 37 1 35 0.36046341819235D-01 -0.51662567979117D-18 + 1 38 1 35 -0.12290306718726D+00 0.80269317837326D-17 + 2 38 1 35 -0.36046341819233D-01 -0.11428942527465D-17 + 3 38 1 35 0.50187471622123D-01 0.80033659576561D-19 + 1 39 1 35 -0.40592725268390D+00 0.20707335003708D-17 + 2 39 1 35 -0.24069014812012D-02 0.12792070541263D-17 + 3 39 1 35 0.24069014811968D-02 -0.90607702586568D-18 + 1 40 1 35 -0.25794221122147D+02 -0.65782845693312D-16 + 2 40 1 35 0.13749665086973D+02 -0.73685244342530D-17 + 3 40 1 35 0.13654215728241D+02 0.17704985916522D-16 + 1 41 1 35 0.18950469390944D+00 -0.15799560211960D-15 + 2 41 1 35 -0.34179935926502D+00 0.31242065855923D-16 + 3 41 1 35 0.31472751484529D+00 -0.20693845327411D-16 + 1 42 1 35 0.24071006525499D+00 -0.10760597311844D-15 + 2 42 1 35 0.24324448070263D+00 -0.19046097970721D-16 + 3 42 1 35 -0.39930320110790D+00 0.14212920513645D-17 + 1 43 1 35 -0.79645524878653D+00 0.29909965885838D-15 + 2 43 1 35 0.49952396734700D+00 -0.38062809895552D-16 + 3 43 1 35 0.49338013526382D+00 0.46653411289474D-17 + 1 44 1 35 0.39734956014695D+00 0.30198713130588D-16 + 2 44 1 35 0.23802945606288D+00 0.86649456234551D-17 + 3 44 1 35 0.24735014074086D+00 0.98136683353285D-16 + 1 45 1 35 -0.42574411112178D+00 -0.15955241116168D-15 + 2 45 1 35 0.45567704351573D+00 -0.30797471026587D-16 + 3 45 1 35 0.46661777973951D+00 0.26660351646489D-16 + 1 46 1 35 -0.29770639034202D+00 -0.58318866308307D-16 + 2 46 1 35 0.32150151371740D+00 0.20205346900041D-16 + 3 46 1 35 0.47577268331974D+00 -0.24982018823507D-16 + 1 47 1 35 0.26686550422134D+00 -0.13473408224864D-15 + 2 47 1 35 -0.42196927431048D-02 0.63289278173011D-17 + 3 47 1 35 -0.94617811102777D-02 -0.49154860071889D-17 + 1 48 1 35 0.29685174375501D+01 -0.83928147314434D-16 + 2 48 1 35 -0.13774526215980D+01 0.50472487710325D-17 + 3 48 1 35 -0.12360040210205D+01 0.32428887900909D-16 + 1 49 1 35 0.31699779795925D+01 0.94041073905415D-16 + 2 49 1 35 0.12255833182082D+01 -0.47025162763540D-17 + 3 49 1 35 -0.12255833182082D+01 0.22984631194384D-16 + 1 50 1 35 0.28298793736917D+01 -0.97852423453756D-16 + 2 50 1 35 -0.15363366088824D+01 -0.17104833143206D-16 + 3 50 1 35 0.15363366088824D+01 -0.10662542823744D-16 + 1 51 1 35 0.29685174375501D+01 0.14961692276851D-15 + 2 51 1 35 0.12360040210205D+01 -0.55640299100375D-17 + 3 51 1 35 0.13774526215980D+01 0.13195027020455D-16 + 1 52 1 35 0.17628049017313D-01 -0.15986365985633D-15 + 2 52 1 35 -0.13471322032933D+00 0.53669899050499D-17 + 3 52 1 35 -0.10356308707008D+00 -0.10813705344185D-16 + 1 53 1 35 -0.34911139746885D-01 -0.88743039541098D-16 + 2 53 1 35 0.99917988628223D-01 0.36691487910522D-16 + 3 53 1 35 -0.99917988628229D-01 0.33427820488764D-16 + 1 54 1 35 0.49215479792297D-01 0.44192690790198D-16 + 2 54 1 35 -0.67004752710943D-01 0.34485686132120D-16 + 3 54 1 35 0.67004752710942D-01 -0.36098802041530D-16 + 1 55 1 35 0.17628049017346D-01 -0.75384517179895D-17 + 2 55 1 35 0.10356308707008D+00 -0.45910980792413D-17 + 3 55 1 35 0.13471322032932D+00 0.28814303932080D-16 + 1 56 1 35 -0.79645524878653D+00 -0.90291778800876D-16 + 2 56 1 35 -0.49338013526382D+00 -0.28094512993375D-16 + 3 56 1 35 -0.49952396734700D+00 0.16451554953830D-16 + 1 57 1 35 0.18950469390944D+00 0.17621156983716D-15 + 2 57 1 35 -0.31472751484529D+00 -0.18072653210471D-16 + 3 57 1 35 0.34179935926502D+00 -0.45678720472438D-17 + 1 58 1 35 0.24071006525499D+00 -0.64513467077784D-16 + 2 58 1 35 0.39930320110790D+00 0.76341305593695D-17 + 3 58 1 35 -0.24324448070263D+00 -0.38318601843958D-18 + 1 59 1 35 -0.25794221122147D+02 0.71073621224361D-16 + 2 59 1 35 -0.13654215728241D+02 -0.17922828823646D-16 + 3 59 1 35 -0.13749665086973D+02 -0.74935330336723D-17 + 1 60 1 35 0.26686550422134D+00 -0.42497376884096D-16 + 2 60 1 35 0.94617811102792D-02 0.24368429461764D-17 + 3 60 1 35 0.42196927431077D-02 -0.25829787862059D-16 + 1 61 1 35 -0.42574411112178D+00 -0.48918680028254D-16 + 2 61 1 35 -0.46661777973951D+00 0.30206917740035D-16 + 3 61 1 35 -0.45567704351573D+00 -0.61357408300936D-17 + 1 62 1 35 -0.29770639034202D+00 -0.32856797906895D-16 + 2 62 1 35 -0.47577268331974D+00 -0.38208998986520D-17 + 3 62 1 35 -0.32150151371740D+00 -0.15209527101755D-16 + 1 63 1 35 0.39734956014697D+00 0.16093758001763D-15 + 2 63 1 35 -0.24735014074086D+00 0.13610088346657D-17 + 3 63 1 35 -0.23802945606288D+00 -0.18549130607701D-16 + 1 64 1 35 -0.15924778845918D+00 0.42947442863520D-16 + 2 64 1 35 0.15050325854584D+00 0.23360118452371D-16 + 3 64 1 35 -0.15177704355265D+00 -0.32509484549113D-16 + 1 65 1 35 -0.75943447184916D+00 -0.18914600469244D-17 + 2 65 1 35 -0.58922497966895D+00 -0.20605353259835D-17 + 3 65 1 35 0.58922497966895D+00 0.43904060037191D-17 + 1 1 2 35 -0.13479536424725D+00 -0.59419649007565D-16 + 2 1 2 35 -0.15398128284671D-01 -0.42009360369187D-17 + 3 1 2 35 0.93465445648178D-01 0.58644481317536D-17 + 1 2 2 35 0.89465979828498D-01 0.49967995388199D-16 + 2 2 2 35 -0.19811576467605D-01 0.22108342814298D-15 + 3 2 2 35 0.14001481061544D+00 -0.23788554711398D-16 + 1 3 2 35 -0.12343771874599D+01 0.51055166998064D-16 + 2 3 2 35 0.30102194717558D+01 -0.10676039783473D-15 + 3 3 2 35 0.12144881578439D+01 -0.17517566095644D-16 + 1 4 2 35 0.12922970665964D+01 -0.18732352635591D-16 + 2 4 2 35 0.31665669045344D+01 0.21503774826881D-15 + 3 4 2 35 0.13605572144011D+01 0.62638780047157D-17 + 1 5 2 35 -0.19179167582305D+00 0.77648443300457D-16 + 2 5 2 35 0.32936438032626D+00 -0.83614943884631D-17 + 3 5 2 35 -0.28673425970043D+00 0.16100060661420D-16 + 1 6 2 35 0.11060314530730D+00 0.18633500849882D-16 + 2 6 2 35 0.52373562508023D-02 -0.39153404934694D-16 + 3 6 2 35 -0.74387259052581D-01 -0.32769620594958D-16 + 1 7 2 35 -0.11850558323564D+01 0.24294608499296D-16 + 2 7 2 35 0.30525156815770D+01 -0.61118983516113D-16 + 3 7 2 35 -0.14073185650725D+01 -0.67150834443362D-17 + 1 8 2 35 0.13218851373702D+01 0.10102355478572D-15 + 2 8 2 35 0.30759193700457D+01 -0.40054137721080D-16 + 3 8 2 35 -0.13043774859262D+01 0.13573272609355D-16 + 1 9 2 35 -0.43661313731031D+00 0.49648537606008D-17 + 2 9 2 35 -0.85536555934433D+00 0.22863209464478D-16 + 3 9 2 35 0.51178873765864D+00 0.20933861175805D-16 + 1 10 2 35 -0.30357007831931D+00 -0.85496583771986D-17 + 2 10 2 35 0.19492375400722D+00 0.90848631051131D-16 + 3 10 2 35 -0.33295290077051D+00 -0.15326058313859D-16 + 1 11 2 35 -0.21549861734920D-01 0.11312470167731D-18 + 2 11 2 35 0.25547462007194D+00 0.10111079249635D-15 + 3 11 2 35 0.13715963087913D-01 -0.24293092877026D-16 + 1 12 2 35 -0.41968061769711D+00 0.21590456792042D-16 + 2 12 2 35 -0.36794449471740D+00 -0.24756394253465D-15 + 3 12 2 35 0.50897213131086D+00 0.32344966886666D-16 + 1 13 2 35 0.29415513634770D+00 -0.22355515921754D-16 + 2 13 2 35 0.17338507247210D+00 0.99349149948783D-16 + 3 13 2 35 0.28237580530002D+00 -0.21744995789747D-16 + 1 14 2 35 -0.14059231269912D+02 -0.80807690500281D-17 + 2 14 2 35 -0.26051304634116D+02 0.15342655724982D-15 + 3 14 2 35 0.14052048986228D+02 0.18314342881705D-16 + 1 15 2 35 -0.28951291420751D+00 -0.23575265042696D-16 + 2 15 2 35 0.41507581536834D+00 0.16529239897555D-15 + 3 15 2 35 0.24621087117147D+00 -0.37652101928334D-16 + 1 16 2 35 -0.65890303523437D-01 -0.24271173814233D-17 + 2 16 2 35 -0.21619915347569D+00 0.55392019881127D-16 + 3 16 2 35 -0.47616311444369D-01 0.39627046990174D-17 + 1 17 2 35 0.32179128749850D+01 -0.74618656092771D-18 + 2 17 2 35 -0.31266544890534D+01 -0.17204734045505D-15 + 3 17 2 35 -0.12430520967716D+01 -0.49492400080743D-16 + 1 18 2 35 0.68866005259076D-01 0.89249382799995D-19 + 2 18 2 35 -0.26140025060353D+00 -0.23092633116727D-15 + 3 18 2 35 -0.44248198131509D-01 0.26378266551145D-16 + 1 19 2 35 -0.32008726391262D+01 -0.67772186803771D-17 + 2 19 2 35 -0.30979715045097D+01 0.24480040351768D-15 + 3 19 2 35 -0.14307103494987D+01 -0.23529090531261D-16 + 1 20 2 35 0.78657874930479D-01 -0.15289067096436D-17 + 2 20 2 35 -0.20851766763871D+00 0.11984878072636D-17 + 3 20 2 35 0.99568015791878D-01 -0.90578825073098D-16 + 1 21 2 35 -0.32372407928346D+01 0.13004685087648D-18 + 2 21 2 35 -0.31125065002563D+01 0.27909831640035D-15 + 3 21 2 35 0.13035185751495D+01 0.80231954070728D-16 + 1 22 2 35 -0.62185490678857D-01 0.28212202429645D-17 + 2 22 2 35 -0.52402244393142D+00 0.18701475586994D-15 + 3 22 2 35 0.38755451493193D+00 -0.55618560212601D-16 + 1 23 2 35 0.32289744110740D+01 0.20906690116031D-18 + 2 23 2 35 -0.31161797414797D+01 -0.68553145475192D-16 + 3 23 2 35 0.13006788073403D+01 0.34787796995232D-16 + 1 24 2 35 0.49364879915014D+00 0.31375357225915D-16 + 2 24 2 35 -0.43998710153765D+00 -0.18211537855746D-16 + 3 24 2 35 0.50232794404432D+00 0.22734471297259D-16 + 1 25 2 35 0.18633581868246D-01 0.12349858162480D-16 + 2 25 2 35 0.27252466740490D+00 0.72971951009054D-16 + 3 25 2 35 0.16403028717806D-01 0.26985589247309D-16 + 1 26 2 35 0.27609018658730D+00 0.49933257253539D-16 + 2 26 2 35 0.18438341282726D+00 0.89984687829112D-16 + 3 26 2 35 -0.31268606285268D+00 0.94233498926648D-17 + 1 27 2 35 0.45051381424607D+00 0.50868562322377D-17 + 2 27 2 35 -0.79183951901711D+00 0.64750821904857D-16 + 3 27 2 35 0.48482976678670D+00 0.68167525834771D-17 + 1 28 2 35 0.30473593415088D+00 -0.37460065217312D-16 + 2 28 2 35 0.46633976140989D+00 -0.11402592682377D-15 + 3 28 2 35 0.32560982930181D+00 -0.48992112623570D-17 + 1 29 2 35 0.55083122718630D+00 -0.16763679209296D-16 + 2 29 2 35 -0.28805146597436D+00 0.80882621266039D-16 + 3 29 2 35 0.33277610511116D+00 0.36164310856408D-16 + 1 30 2 35 0.13096970677307D+02 0.30549531547814D-16 + 2 30 2 35 -0.25611518728893D+02 0.55245924982848D-16 + 3 30 2 35 0.13619025127797D+02 0.31379700610099D-17 + 1 31 2 35 -0.34036146741602D+00 -0.39214734029609D-16 + 2 31 2 35 0.19148274089982D+00 -0.11185898746367D-15 + 3 31 2 35 0.27197998488544D+00 -0.11598219995080D-16 + 1 32 2 35 -0.12214257078257D+00 0.40250824512097D-17 + 2 32 2 35 0.20929947359173D+00 -0.11694324013560D-16 + 3 32 2 35 0.21334612465260D+00 0.13345056190543D-16 + 1 33 2 35 -0.76325334859223D-02 -0.12781778733501D-18 + 2 33 2 35 -0.39179030205288D+00 -0.45537081577796D-17 + 3 33 2 35 -0.74889325537829D-02 -0.13335544964828D-17 + 1 34 2 35 0.25941992352620D-01 -0.13781354795153D-18 + 2 34 2 35 -0.23998152292439D+00 0.43172002071337D-18 + 3 34 2 35 0.67018209271095D-01 -0.23875905499876D-18 + 1 35 2 35 0.95835602795597D+00 0.00000000000000D+00 + 2 35 2 35 0.11902791374500D+03 0.00000000000000D+00 + 3 35 2 35 0.55259285124282D+00 0.00000000000000D+00 + 1 36 2 35 -0.14934656076212D-01 0.33082645645505D-18 + 2 36 2 35 -0.79969290519244D-01 -0.22866321266590D-17 + 3 36 2 35 0.20794212377672D-01 -0.29089596042020D-18 + 1 37 2 35 0.22596539548495D-01 0.67975467796780D-18 + 2 37 2 35 -0.67269915365610D-01 0.48390917296014D-17 + 3 37 2 35 -0.11411960095221D+00 0.16815756593784D-18 + 1 38 2 35 0.12182195732168D-01 -0.11428942527465D-17 + 2 38 2 35 0.15513921470717D+01 -0.84507748959974D-17 + 3 38 2 35 0.50182227588190D-01 -0.27728434441207D-17 + 1 39 2 35 0.44494871188017D-02 0.12792070541263D-17 + 2 39 2 35 -0.22329293722581D+00 0.11173493229168D-17 + 3 39 2 35 -0.31725157218817D-02 -0.10250010592027D-18 + 1 40 2 35 0.13679113574287D+02 -0.73685244342530D-17 + 2 40 2 35 -0.26190006915435D+02 -0.19737825112451D-15 + 3 40 2 35 -0.13932091528740D+02 -0.11853061670716D-16 + 1 41 2 35 -0.32566797249812D+00 0.31242065855923D-16 + 2 41 2 35 0.16835463342987D+00 -0.10468074372124D-16 + 3 41 2 35 -0.30305418033182D+00 0.50222232535240D-17 + 1 42 2 35 0.29803704164042D+00 -0.19046097970721D-16 + 2 42 2 35 0.62299032448476D+00 -0.31152342819616D-15 + 3 42 2 35 -0.43699935314724D+00 -0.21512949927985D-16 + 1 43 2 35 0.38632799622838D+00 -0.38062809895552D-16 + 2 43 2 35 -0.55330131078287D+00 0.64009483068462D-17 + 3 43 2 35 -0.49852977540938D+00 0.16319305135746D-16 + 1 44 2 35 0.22867874047310D+00 0.86649456234551D-17 + 2 44 2 35 0.19144027554771D+00 0.24363905820218D-15 + 3 44 2 35 0.30778667023405D+00 -0.48046440630131D-16 + 1 45 2 35 0.49371812521041D+00 -0.30797471026587D-16 + 2 45 2 35 -0.81832269216946D+00 0.83364011132937D-16 + 3 45 2 35 -0.46213141658107D+00 0.13624891426027D-16 + 1 46 2 35 0.43245298590620D+00 0.20205346900041D-16 + 2 46 2 35 -0.31887366055225D+00 0.11139145886137D-15 + 3 46 2 35 -0.59167202259456D+00 -0.74055958471549D-16 + 1 47 2 35 0.10707045324182D+00 0.63289278173011D-17 + 2 47 2 35 0.32802942366760D+00 -0.15697204408620D-15 + 3 47 2 35 0.49505833736295D-01 0.21420845150454D-16 + 1 48 2 35 0.14116852895950D+01 0.50472487710325D-17 + 2 48 2 35 -0.30064990613072D+01 0.20593089132246D-15 + 3 48 2 35 -0.31905729764210D+01 0.18509571295910D-17 + 1 49 2 35 -0.12255833182082D+01 -0.47025162763540D-17 + 2 49 2 35 -0.31085143714600D+01 -0.71299222660672D-16 + 3 49 2 35 0.31715093594047D+01 0.45751456046906D-18 + 1 50 2 35 0.76751713481802D+00 -0.17104833143206D-16 + 2 50 2 35 -0.30757828154629D+01 0.13755121830351D-15 + 3 50 2 35 0.25795643293890D+01 -0.33291147560078D-17 + 1 51 2 35 -0.12951198397229D+01 -0.55640299100375D-17 + 2 51 2 35 -0.30626394163209D+01 -0.83995772408908D-17 + 3 51 2 35 -0.32361500471502D+01 0.62463923922079D-17 + 1 52 2 35 0.72483235593101D-01 0.53669899050499D-17 + 2 52 2 35 -0.17065132479147D+00 0.97520637112193D-17 + 3 52 2 35 0.59446261974188D-01 -0.91276284953047D-18 + 1 53 2 35 -0.93652105749601D-01 0.36691487910522D-16 + 2 53 2 35 -0.23199836150855D+00 0.34444223672605D-16 + 3 53 2 35 -0.98841998568624D-01 -0.88110989676891D-18 + 1 54 2 35 0.11676445661641D+00 0.34485686132120D-16 + 2 54 2 35 -0.24047697504348D+00 -0.24101386709078D-15 + 3 54 2 35 -0.10862185381205D+00 0.32520663339421D-18 + 1 55 2 35 -0.67088866551375D-01 -0.45910980792413D-17 + 2 55 2 35 -0.28160457200432D+00 0.17617521347362D-15 + 3 55 2 35 0.11291188076494D+00 -0.23227225668482D-17 + 1 56 2 35 -0.36639941053524D+00 -0.28094512993375D-16 + 2 56 2 35 -0.32116000110640D+00 0.13971192929342D-15 + 3 56 2 35 -0.49151781919568D+00 0.33655037927781D-16 + 1 57 2 35 -0.28250092722397D+00 -0.18072653210471D-16 + 2 57 2 35 0.49246290484204D+00 0.24419036601364D-15 + 3 57 2 35 -0.30437217106272D+00 -0.23290033773773D-16 + 1 58 2 35 0.44122789176326D+00 0.76341305593695D-17 + 2 58 2 35 0.18654111657419D+00 0.15284651058856D-15 + 3 58 2 35 -0.26491264012522D+00 -0.10034896822246D-17 + 1 59 2 35 -0.13738598552669D+02 -0.17922828823646D-16 + 2 59 2 35 -0.25755365692805D+02 0.14202584198361D-15 + 3 59 2 35 -0.13838939719674D+02 0.27293657691709D-16 + 1 60 2 35 -0.20825616100105D-01 0.24368429461764D-17 + 2 60 2 35 0.24492796035844D+00 0.15674918032241D-15 + 3 60 2 35 0.48541681642133D-01 -0.29581294189463D-16 + 1 61 2 35 -0.48878863251807D+00 0.30206917740035D-16 + 2 61 2 35 -0.37201695309456D+00 -0.52241581542301D-16 + 3 61 2 35 -0.47111525755596D+00 0.90392397148438D-16 + 1 62 2 35 -0.53882773265771D+00 -0.38208998986520D-17 + 2 62 2 35 -0.83525506489340D+00 0.79209095491353D-16 + 3 62 2 35 -0.55610764499212D+00 -0.77990737550294D-16 + 1 63 2 35 -0.27710318582961D+00 0.13610088346657D-17 + 2 63 2 35 0.18807102073722D+00 0.10953320275033D-16 + 3 63 2 35 0.28569280361857D+00 0.22637973800800D-16 + 1 64 2 35 -0.20997989540762D+00 0.23360118452371D-16 + 2 64 2 35 -0.28443611771166D+00 0.94985878697593D-16 + 3 64 2 35 0.35715189385479D+00 0.14027547428222D-16 + 1 65 2 35 -0.88642642302339D-01 -0.20605353259835D-17 + 2 65 2 35 -0.54441867132872D+00 0.40200126959477D-15 + 3 65 2 35 0.45238333347917D+00 0.12688813622476D-16 + 1 1 3 35 -0.68866005259074D-01 -0.86087185488308D-18 + 2 1 3 35 -0.44248198131509D-01 0.58644481317536D-17 + 3 1 3 35 -0.26140025060353D+00 0.15191111218566D-15 + 1 2 3 35 0.65890303523437D-01 0.18645403308974D-17 + 2 2 3 35 -0.47616311444369D-01 -0.23788554711398D-16 + 3 2 3 35 -0.21619915347569D+00 0.96340047615565D-16 + 1 3 3 35 0.32008726391262D+01 -0.44044920785612D-18 + 2 3 3 35 -0.14307103494987D+01 -0.17517566095644D-16 + 3 3 3 35 -0.30979715045097D+01 0.20698616427538D-15 + 1 4 3 35 -0.32179128749850D+01 0.16682010209919D-17 + 2 4 3 35 -0.12430520967716D+01 0.62638780047157D-17 + 3 4 3 35 -0.31266544890534D+01 0.27901621713429D-16 + 1 5 3 35 0.62185490678855D-01 -0.57013731403655D-19 + 2 5 3 35 0.38755451493193D+00 0.16100060661420D-16 + 3 5 3 35 -0.52402244393142D+00 -0.20548911310938D-16 + 1 6 3 35 -0.78657874930478D-01 -0.37182115527619D-19 + 2 6 3 35 0.99568015791877D-01 -0.32769620594958D-16 + 3 6 3 35 -0.20851766763871D+00 0.93558487566979D-16 + 1 7 3 35 -0.32289744110740D+01 -0.76798346157225D-17 + 2 7 3 35 0.13006788073403D+01 -0.67150834443362D-17 + 3 7 3 35 -0.31161797414797D+01 0.14187942415854D-16 + 1 8 3 35 0.32372407928346D+01 0.83149472273196D-18 + 2 8 3 35 0.13043774859262D+01 0.13573272609355D-16 + 3 8 3 35 -0.31125065002563D+01 -0.16793184975453D-15 + 1 9 3 35 0.41988319625710D+00 0.22988367902172D-16 + 2 9 3 35 0.50897213131086D+00 0.20933861175805D-16 + 3 9 3 35 -0.36743877496782D+00 0.11766496005681D-15 + 1 10 3 35 0.30357007831945D+00 -0.11258315973028D-16 + 2 10 3 35 -0.33295290077052D+00 -0.15326058313859D-16 + 3 10 3 35 0.19492375400720D+00 0.51711978357322D-16 + 1 11 3 35 0.21549861734913D-01 -0.50455831759627D-17 + 2 11 3 35 0.13715963087906D-01 -0.24293092877026D-16 + 3 11 3 35 0.25547462007207D+00 -0.14706638484142D-15 + 1 12 3 35 0.43679527610675D+00 -0.57737247465717D-16 + 2 12 3 35 0.51189089304038D+00 0.32344966886666D-16 + 3 12 3 35 -0.85536555934428D+00 0.48460063461307D-16 + 1 13 3 35 0.28946461609934D+00 0.29259682719269D-16 + 2 13 3 35 0.24621087117145D+00 -0.21744995789747D-16 + 3 13 3 35 0.41427020038976D+00 -0.10522360243692D-15 + 1 14 3 35 0.14059231269913D+02 0.20896598994992D-17 + 2 14 3 35 0.14052048986227D+02 0.18314342881705D-16 + 3 14 3 35 -0.26051304634116D+02 -0.12013988285221D-15 + 1 15 3 35 -0.29424501838483D+00 0.21902927017394D-16 + 2 15 3 35 0.28303719140876D+00 -0.37652101928334D-16 + 3 15 3 35 0.17338507247210D+00 0.29151124727928D-15 + 1 16 3 35 -0.89465979828499D-01 -0.92084451944098D-16 + 2 16 3 35 0.14001481061544D+00 0.39627046990174D-17 + 3 16 3 35 -0.19811576467608D-01 -0.14930006004550D-16 + 1 17 3 35 -0.12922970665964D+01 -0.97286243089096D-16 + 2 17 3 35 0.13605572144011D+01 -0.49492400080743D-16 + 3 17 3 35 0.31665669045344D+01 -0.62471105902519D-17 + 1 18 3 35 0.13479536424726D+00 0.98082948003903D-16 + 2 18 3 35 0.93465445648178D-01 0.26378266551145D-16 + 3 18 3 35 -0.15398128284673D-01 -0.69408552717832D-16 + 1 19 3 35 0.12343771874599D+01 0.34449245606120D-16 + 2 19 3 35 0.12144881578439D+01 -0.23529090531261D-16 + 3 19 3 35 0.30102194717558D+01 0.21849874737423D-17 + 1 20 3 35 -0.11060314530730D+00 0.68101975948079D-16 + 2 20 3 35 -0.74387259052580D-01 -0.90578825073098D-16 + 3 20 3 35 0.52373562508040D-02 0.26085437416799D-16 + 1 21 3 35 -0.13218851373702D+01 0.46833016979358D-16 + 2 21 3 35 -0.13035185751495D+01 0.80231954070728D-16 + 3 21 3 35 0.30759193700457D+01 0.97793481118394D-17 + 1 22 3 35 0.19179167582305D+00 0.90460125028003D-16 + 2 22 3 35 -0.28673425970043D+00 -0.55618560212601D-16 + 3 22 3 35 0.32936438032626D+00 -0.22301652590719D-16 + 1 23 3 35 0.11850558323564D+01 -0.12048260156887D-16 + 2 23 3 35 -0.14073185650725D+01 0.34787796995232D-16 + 3 23 3 35 0.30525156815770D+01 0.32079788828896D-16 + 1 24 3 35 -0.45051381424611D+00 -0.50410183028392D-17 + 2 24 3 35 0.48482976678670D+00 0.22734471297259D-16 + 3 24 3 35 -0.79183951901711D+00 0.20165838998752D-16 + 1 25 3 35 -0.18633581868220D-01 0.11495040091175D-16 + 2 25 3 35 0.16403028717806D-01 0.26985589247309D-16 + 3 25 3 35 0.27252466740490D+00 0.28920813259096D-15 + 1 26 3 35 -0.27609018658726D+00 -0.15957638059665D-16 + 2 26 3 35 -0.31268606285268D+00 0.94233498926648D-17 + 3 26 3 35 0.18438341282725D+00 -0.13257194486966D-15 + 1 27 3 35 -0.49364879915014D+00 0.29254759584006D-16 + 2 27 3 35 0.50232794404432D+00 0.68167525834771D-17 + 3 27 3 35 -0.43998710153765D+00 -0.16362515144303D-16 + 1 28 3 35 0.34036146741610D+00 0.24639761389039D-16 + 2 28 3 35 0.27197998488544D+00 -0.48992112623570D-17 + 3 28 3 35 0.19148274089982D+00 0.21001799822226D-15 + 1 29 3 35 -0.55083122718628D+00 0.42725370915032D-17 + 2 29 3 35 0.33277610511116D+00 0.36164310856408D-16 + 3 29 3 35 -0.28805146597436D+00 -0.11985096180296D-15 + 1 30 3 35 -0.13096970677307D+02 0.20780620058521D-16 + 2 30 3 35 0.13619025127797D+02 0.31379700610099D-17 + 3 30 3 35 -0.25611518728893D+02 -0.18334361574597D-15 + 1 31 3 35 -0.30473593415092D+00 -0.48428168640550D-16 + 2 31 3 35 0.32560982930181D+00 -0.11598219995080D-16 + 3 31 3 35 0.46633976140989D+00 0.15577377383637D-15 + 1 32 3 35 0.12214257078257D+00 0.15021198670472D-17 + 2 32 3 35 0.21334612465260D+00 0.13345056190543D-16 + 3 32 3 35 0.20929947359173D+00 0.35307865449405D-16 + 1 33 3 35 -0.25941992352620D-01 0.14532614563658D-18 + 2 33 3 35 0.67018209271095D-01 -0.13335544964828D-17 + 3 33 3 35 -0.23998152292440D+00 -0.29601447921916D-17 + 1 34 3 35 0.76325334859224D-02 -0.60992065641352D-18 + 2 34 3 35 -0.74889325537826D-02 -0.23875905499876D-18 + 3 34 3 35 -0.39179030205285D+00 -0.85822637194370D-18 + 1 35 3 35 -0.95835602795622D+00 0.00000000000000D+00 + 2 35 3 35 0.55259285124282D+00 0.00000000000000D+00 + 3 35 3 35 0.11902791374500D+03 0.00000000000000D+00 + 1 36 3 35 0.14934656076212D-01 0.54859824879068D-18 + 2 36 3 35 0.20794212377672D-01 -0.29089596042020D-18 + 3 36 3 35 -0.79969290519243D-01 0.43967924514067D-18 + 1 37 3 35 -0.12182195732168D-01 -0.51662567979117D-18 + 2 37 3 35 0.50182227588191D-01 0.16815756593784D-18 + 3 37 3 35 0.15513921470717D+01 0.32567805342637D-17 + 1 38 3 35 -0.22596539548496D-01 0.80033659576561D-19 + 2 38 3 35 -0.11411960095221D+00 -0.27728434441207D-17 + 3 38 3 35 -0.67269915365605D-01 -0.20510106876078D-17 + 1 39 3 35 -0.44494871188017D-02 -0.90607702586568D-18 + 2 39 3 35 -0.31725157218817D-02 -0.10250010592027D-18 + 3 39 3 35 -0.22329293722580D+00 0.59356398669423D-18 + 1 40 3 35 0.13738598552669D+02 0.17704985916522D-16 + 2 40 3 35 -0.13838939719675D+02 -0.11853061670716D-16 + 3 40 3 35 -0.25755365692805D+02 -0.25691264314126D-15 + 1 41 3 35 0.28250092722397D+00 -0.20693845327411D-16 + 2 41 3 35 -0.30437217106272D+00 0.50222232535240D-17 + 3 41 3 35 0.49246290484206D+00 -0.93980852025338D-16 + 1 42 3 35 -0.44122789176325D+00 0.14212920513645D-17 + 2 42 3 35 -0.26491264012522D+00 -0.21512949927985D-16 + 3 42 3 35 0.18654111657419D+00 0.23042917463466D-15 + 1 43 3 35 0.36639941053524D+00 0.46653411289474D-17 + 2 43 3 35 -0.49151781919568D+00 0.16319305135746D-16 + 3 43 3 35 -0.32116000110639D+00 -0.16636856445098D-15 + 1 44 3 35 0.27710318582961D+00 0.98136683353285D-16 + 2 44 3 35 0.28569280361858D+00 -0.48046440630131D-16 + 3 44 3 35 0.18807102073722D+00 0.15659597502256D-15 + 1 45 3 35 0.48878863251807D+00 0.26660351646489D-16 + 2 45 3 35 -0.47111525755596D+00 0.13624891426027D-16 + 3 45 3 35 -0.37201695309456D+00 -0.26847615019260D-15 + 1 46 3 35 0.53882773265771D+00 -0.24982018823507D-16 + 2 46 3 35 -0.55610764499212D+00 -0.74055958471549D-16 + 3 46 3 35 -0.83525506489339D+00 -0.13617333828433D-15 + 1 47 3 35 0.20825616100107D-01 -0.49154860071889D-17 + 2 47 3 35 0.48541681642130D-01 0.21420845150454D-16 + 3 47 3 35 0.24492796035845D+00 0.19855848822415D-16 + 1 48 3 35 0.12951198397229D+01 0.32428887900909D-16 + 2 48 3 35 -0.32361500471502D+01 0.18509571295910D-17 + 3 48 3 35 -0.30626394163209D+01 0.37015661394043D-17 + 1 49 3 35 0.12255833182082D+01 0.22984631194384D-16 + 2 49 3 35 0.31715093594047D+01 0.45751456046906D-18 + 3 49 3 35 -0.31085143714600D+01 -0.27808924444567D-15 + 1 50 3 35 -0.76751713481803D+00 -0.10662542823744D-16 + 2 50 3 35 0.25795643293890D+01 -0.33291147560078D-17 + 3 50 3 35 -0.30757828154629D+01 0.22668387176038D-15 + 1 51 3 35 -0.14116852895950D+01 0.13195027020455D-16 + 2 51 3 35 -0.31905729764210D+01 0.62463923922079D-17 + 3 51 3 35 -0.30064990613072D+01 -0.22100836960128D-15 + 1 52 3 35 0.67088866551376D-01 -0.10813705344185D-16 + 2 52 3 35 0.11291188076494D+00 -0.91276284953047D-18 + 3 52 3 35 -0.28160457200432D+00 0.30152791464814D-16 + 1 53 3 35 0.93652105749600D-01 0.33427820488764D-16 + 2 53 3 35 -0.98841998568624D-01 -0.88110989676891D-18 + 3 53 3 35 -0.23199836150855D+00 0.15462311994606D-15 + 1 54 3 35 -0.11676445661641D+00 -0.36098802041530D-16 + 2 54 3 35 -0.10862185381205D+00 0.32520663339421D-18 + 3 54 3 35 -0.24047697504348D+00 -0.52398385023729D-17 + 1 55 3 35 -0.72483235593101D-01 0.28814303932080D-16 + 2 55 3 35 0.59446261974187D-01 -0.23227225668482D-17 + 3 55 3 35 -0.17065132479147D+00 -0.10576155793817D-15 + 1 56 3 35 -0.38632799622838D+00 0.16451554953830D-16 + 2 56 3 35 -0.49852977540938D+00 0.33655037927781D-16 + 3 56 3 35 -0.55330131078287D+00 0.93483987305220D-16 + 1 57 3 35 0.32566797249812D+00 -0.45678720472438D-17 + 2 57 3 35 -0.30305418033182D+00 -0.23290033773773D-16 + 3 57 3 35 0.16835463342987D+00 0.92846217715300D-18 + 1 58 3 35 -0.29803704164042D+00 -0.38318601843958D-18 + 2 58 3 35 -0.43699935314725D+00 -0.10034896822246D-17 + 3 58 3 35 0.62299032448476D+00 -0.50850827549556D-17 + 1 59 3 35 -0.13679113574287D+02 -0.74935330336723D-17 + 2 59 3 35 -0.13932091528740D+02 0.27293657691709D-16 + 3 59 3 35 -0.26190006915435D+02 0.26614404086541D-15 + 1 60 3 35 -0.10707045324182D+00 -0.25829787862059D-16 + 2 60 3 35 0.49505833736298D-01 -0.29581294189463D-16 + 3 60 3 35 0.32802942366760D+00 -0.15664061719996D-15 + 1 61 3 35 -0.49371812521041D+00 -0.61357408300936D-17 + 2 61 3 35 -0.46213141658107D+00 0.90392397148438D-16 + 3 61 3 35 -0.81832269216946D+00 -0.12241921372658D-15 + 1 62 3 35 -0.43245298590620D+00 -0.15209527101755D-16 + 2 62 3 35 -0.59167202259456D+00 -0.77990737550294D-16 + 3 62 3 35 -0.31887366055224D+00 0.14251509844507D-15 + 1 63 3 35 -0.22867874047311D+00 -0.18549130607701D-16 + 2 63 3 35 0.30778667023405D+00 0.22637973800800D-16 + 3 63 3 35 0.19144027554771D+00 -0.14288688166482D-15 + 1 64 3 35 0.20997989540765D+00 -0.32509484549113D-16 + 2 64 3 35 0.35713716539393D+00 0.14027547428222D-16 + 3 64 3 35 -0.28583909973776D+00 -0.53878003462630D-16 + 1 65 3 35 0.88642642302327D-01 0.43904060037191D-17 + 2 65 3 35 0.45238333347917D+00 0.12688813622476D-16 + 3 65 3 35 -0.54441867132872D+00 -0.28347233603430D-15 + 1 1 1 36 -0.30386599704316D+01 0.29714617418703D-15 + 2 1 1 36 -0.13681488651771D+01 -0.20252971965448D-16 + 3 1 1 36 0.31989593194819D+01 -0.82326007816060D-19 + 1 2 1 36 -0.29694333512828D+01 0.86547899637166D-17 + 2 2 1 36 0.13078588463868D+01 0.87899303157578D-16 + 3 2 1 36 -0.31565116753994D+01 -0.14656619418005D-17 + 1 3 1 36 -0.21100302837231D+00 -0.12757554575184D-15 + 2 3 1 36 -0.16758652877981D+00 -0.58275858611285D-17 + 3 3 1 36 -0.69182942504182D-01 -0.51662334831512D-17 + 1 4 1 36 -0.22648967574072D+00 -0.23197961120098D-15 + 2 4 1 36 0.87793578338515D-01 -0.98218848974890D-16 + 3 4 1 36 0.99937356912093D-01 0.97172541755899D-18 + 1 5 1 36 -0.30801803345459D+01 0.10353745690467D-15 + 2 5 1 36 -0.97182246126537D+00 -0.31416690379863D-16 + 3 5 1 36 -0.27304288889754D+01 -0.88552820895347D-17 + 1 6 1 36 -0.30031823137819D+01 -0.18363800803527D-15 + 2 6 1 36 0.14068234245039D+01 -0.41542520070078D-16 + 3 6 1 36 0.33550916598139D+01 -0.84246472815502D-18 + 1 7 1 36 -0.23467698998717D+00 -0.42059217308581D-16 + 2 7 1 36 -0.11471479398950D+00 0.12988661294736D-16 + 3 7 1 36 0.90300250886179D-01 -0.11510228955378D-17 + 1 8 1 36 -0.21730179390958D+00 0.10046241981232D-15 + 2 8 1 36 0.13479536424726D+00 0.89550312366778D-16 + 3 8 1 36 -0.68866005259074D-01 0.88176811168524D-18 + 1 9 1 36 0.27079361319602D+00 -0.11268913442163D-15 + 2 9 1 36 -0.31256916911063D+00 -0.32429068438163D-16 + 3 9 1 36 -0.30352078099336D+00 -0.18217404152592D-16 + 1 10 1 36 -0.79514737317396D+00 -0.37962391419104D-16 + 2 10 1 36 -0.44289771937657D+00 -0.34209971027461D-16 + 3 10 1 36 0.44289771937658D+00 -0.23663563765393D-17 + 1 11 1 36 -0.26002968654618D+02 0.16300818263746D-15 + 2 11 1 36 -0.13680820868452D+02 -0.23386674473282D-16 + 3 11 1 36 0.13680820868450D+02 -0.22636083890377D-16 + 1 12 1 36 0.27072631859939D+00 -0.18842873104058D-15 + 2 12 1 36 0.30357372278450D+00 0.19230060419617D-16 + 3 12 1 36 0.31256916911060D+00 0.88542938094184D-17 + 1 13 1 36 -0.36444635920968D+00 -0.38441107524561D-16 + 2 13 1 36 -0.38417593010418D+00 0.34633260830839D-16 + 3 13 1 36 0.50396362191662D+00 0.34283657085089D-16 + 1 14 1 36 0.28964246251224D+00 0.28524033135041D-16 + 2 14 1 36 -0.14630111665347D-01 -0.18930864014482D-16 + 3 14 1 36 0.14630111665334D-01 0.69467939415454D-17 + 1 15 1 36 -0.36415063882437D+00 -0.83510709507413D-16 + 2 15 1 36 -0.50513314278052D+00 0.22586232535199D-16 + 3 15 1 36 0.38417593010425D+00 0.20094266078744D-16 + 1 16 1 36 -0.29694333512828D+01 -0.26575399776674D-15 + 2 16 1 36 0.31565116753994D+01 -0.14461187965953D-17 + 3 16 1 36 -0.13078588463868D+01 0.98910205531358D-16 + 1 17 1 36 -0.22648967574073D+00 0.21738171572256D-15 + 2 17 1 36 -0.99937356912093D-01 -0.21682908664649D-17 + 3 17 1 36 -0.87793578338515D-01 -0.59100094532781D-16 + 1 18 1 36 -0.30386599704316D+01 -0.13620525057235D-15 + 2 18 1 36 -0.31989593194819D+01 0.23962072611183D-17 + 3 18 1 36 0.13681488651771D+01 0.10255113482364D-15 + 1 19 1 36 -0.21100302837231D+00 0.88941640396021D-16 + 2 19 1 36 0.69182942504180D-01 -0.49192294636917D-17 + 3 19 1 36 0.16758652877981D+00 -0.82364067354397D-16 + 1 20 1 36 -0.30031823137819D+01 0.16197216011424D-15 + 2 20 1 36 -0.33550916598139D+01 -0.20632684808422D-17 + 3 20 1 36 -0.14068234245039D+01 0.25405871447151D-16 + 1 21 1 36 -0.21730179390960D+00 -0.13223587198292D-15 + 2 21 1 36 0.68866005259074D-01 -0.38294107330066D-18 + 3 21 1 36 -0.13479536424726D+00 0.89613767503112D-16 + 1 22 1 36 -0.30801803345459D+01 -0.13989832337721D-15 + 2 22 1 36 0.27304288889754D+01 0.23103925200894D-17 + 3 22 1 36 0.97182246126536D+00 0.10768704265416D-15 + 1 23 1 36 -0.23467698998718D+00 0.50635915654763D-16 + 2 23 1 36 -0.90300250886180D-01 0.27687027575966D-17 + 3 23 1 36 0.11471479398950D+00 0.37437323221193D-17 + 1 24 1 36 0.21624829368057D+00 -0.13711893395510D-15 + 2 24 1 36 -0.28191177394063D+00 -0.47507384872319D-17 + 3 24 1 36 -0.35721281861581D+00 -0.43766875996217D-16 + 1 25 1 36 -0.26831784449549D+02 0.18630180219420D-15 + 2 25 1 36 0.15395242367030D+02 -0.51818948142430D-17 + 3 25 1 36 -0.15395242367030D+02 0.60058445639596D-18 + 1 26 1 36 -0.92453050901542D+00 0.34144783750524D-16 + 2 26 1 36 0.48877102561255D+00 0.43922855309009D-16 + 3 26 1 36 -0.48877102561255D+00 0.38184654992123D-16 + 1 27 1 36 0.21624829368053D+00 0.13141706476361D-15 + 2 27 1 36 0.35721281861583D+00 0.16545009948463D-16 + 3 27 1 36 0.28191177394063D+00 0.45995955592915D-17 + 1 28 1 36 -0.23492183623366D+00 0.45193190594164D-16 + 2 28 1 36 0.36290693780693D+00 -0.13207043751859D-17 + 3 28 1 36 -0.52606372110212D+00 0.74665037125370D-16 + 1 29 1 36 0.45964836441715D+00 0.24800114207573D-15 + 2 29 1 36 0.43748335270101D+00 -0.14416726917056D-16 + 3 29 1 36 -0.43748335270102D+00 -0.92448407194288D-16 + 1 30 1 36 0.19865530001746D+00 -0.85277073775416D-16 + 2 30 1 36 0.61658131533781D-01 -0.24162543238702D-16 + 3 30 1 36 -0.61658131533779D-01 -0.14593306893842D-16 + 1 31 1 36 -0.23492183623367D+00 -0.10656681927066D-16 + 2 31 1 36 0.52606372110213D+00 -0.16589534148608D-16 + 3 31 1 36 -0.36290693780692D+00 -0.81155304615788D-17 + 1 32 1 36 -0.40109275971455D+00 -0.27378873839318D-16 + 2 32 1 36 0.68047619236456D-01 0.22743732757227D-16 + 3 32 1 36 -0.68047619236456D-01 -0.36593346641612D-17 + 1 33 1 36 -0.10369009279273D+00 -0.39594332412098D-17 + 2 33 1 36 0.24861959050637D-01 0.69128625203389D-18 + 3 33 1 36 0.13312149805396D-01 0.63502578047206D-18 + 1 34 1 36 -0.10369009279273D+00 -0.12395915140541D-16 + 2 34 1 36 -0.13312149805395D-01 -0.29287813853187D-18 + 3 34 1 36 -0.24861959050637D-01 0.68962385646553D-18 + 1 35 1 36 -0.10055294059491D+00 0.26797395744707D-17 + 2 35 1 36 -0.14934656076212D-01 -0.33082645645505D-18 + 3 35 1 36 0.14934656076212D-01 -0.54859824879068D-18 + 1 36 1 36 0.11883582222689D+03 0.00000000000000D+00 + 2 36 1 36 -0.11926800466264D+01 0.00000000000000D+00 + 3 36 1 36 0.11926800466266D+01 0.00000000000000D+00 + 1 37 1 36 -0.22583673303681D+00 -0.36873137371369D-17 + 2 37 1 36 0.20095775691119D-01 -0.10655696360109D-19 + 3 37 1 36 -0.80488204615407D-03 0.18895735715417D-17 + 1 38 1 36 -0.22583673303681D+00 -0.42314307657924D-17 + 2 38 1 36 0.80488204615408D-03 -0.38889131775597D-18 + 3 38 1 36 -0.20095775691119D-01 -0.32876277229015D-18 + 1 39 1 36 0.15680213486448D+01 0.26915631505407D-17 + 2 39 1 36 -0.34565694143064D-01 -0.19582229626367D-18 + 3 39 1 36 0.34565694143064D-01 0.27439856088720D-17 + 1 40 1 36 0.24369046204170D+00 0.16922374271830D-15 + 2 40 1 36 0.14456368115461D-01 -0.32624667939715D-17 + 3 40 1 36 0.22552624962986D-01 0.84687314129572D-16 + 1 41 1 36 -0.46736184534095D+00 0.17901365578314D-15 + 2 41 1 36 0.48216063573330D+00 0.39377707775297D-17 + 3 41 1 36 0.45135257442485D+00 0.61799032172832D-17 + 1 42 1 36 -0.58364062511924D+00 -0.12238273496676D-15 + 2 42 1 36 0.45615503776574D+00 0.32343632775631D-16 + 3 42 1 36 0.58941207799972D+00 0.95532485936328D-17 + 1 43 1 36 0.12148402283881D+00 -0.54617699068386D-16 + 2 43 1 36 0.20189496355113D+00 -0.29184698173046D-16 + 3 43 1 36 0.16615110843061D+00 -0.24489351443745D-16 + 1 44 1 36 -0.78592107040989D+00 0.75362202072807D-16 + 2 44 1 36 0.44525731202280D+00 -0.41101820229517D-16 + 3 44 1 36 0.47064181745670D+00 0.20614217576032D-16 + 1 45 1 36 0.20291562690678D+00 0.79832018352076D-16 + 2 45 1 36 0.26767530867153D+00 0.22962308104559D-17 + 3 45 1 36 -0.32023862973356D+00 -0.26603945116924D-16 + 1 46 1 36 0.21582940437261D+00 -0.76837886194952D-16 + 2 46 1 36 -0.28753091410638D+00 -0.19456188972027D-16 + 3 46 1 36 0.29934916374172D+00 0.75291697471444D-16 + 1 47 1 36 -0.24223590393392D+02 -0.77536420065665D-16 + 2 47 1 36 0.12618695132517D+02 0.10144760080178D-16 + 3 47 1 36 0.13901670395536D+02 -0.85113775793047D-17 + 1 48 1 36 -0.19885450472412D-01 -0.18334235053240D-15 + 2 48 1 36 0.54960985429195D-01 0.10478927584321D-16 + 3 48 1 36 0.11018956029345D+00 -0.32168162104355D-17 + 1 49 1 36 0.49215479792288D-01 -0.52735669636494D-16 + 2 49 1 36 -0.11676445661641D+00 0.70884881711434D-17 + 3 49 1 36 0.11676445661641D+00 0.57602415680592D-17 + 1 50 1 36 -0.59361263754469D-01 -0.10243819209850D-15 + 2 50 1 36 0.13441851649689D+00 0.30989516254591D-16 + 3 50 1 36 -0.13441851649689D+00 -0.24629436450502D-16 + 1 51 1 36 -0.19885450472407D-01 -0.71404442068796D-16 + 2 51 1 36 -0.11018956029346D+00 -0.21438520879693D-16 + 3 51 1 36 -0.54960985429200D-01 0.64658444000020D-17 + 1 52 1 36 0.30385091776968D+01 0.29720866489700D-16 + 2 52 1 36 0.12138580036775D+01 0.19413438494808D-17 + 3 52 1 36 0.12828034165548D+01 0.31761262465316D-16 + 1 53 1 36 0.30824006681923D+01 0.53388602971200D-16 + 2 53 1 36 -0.14676609476163D+01 0.10294631717934D-16 + 3 53 1 36 0.14676609476163D+01 0.24405601362543D-16 + 1 54 1 36 0.33172086175472D+01 0.10663522522354D-15 + 2 54 1 36 0.12700720656505D+01 -0.17064040534248D-16 + 3 54 1 36 -0.12700720656505D+01 -0.26353410301900D-16 + 1 55 1 36 0.30385091776969D+01 -0.22379201726055D-15 + 2 55 1 36 -0.12828034165548D+01 -0.21869635914483D-16 + 3 55 1 36 -0.12138580036775D+01 0.24231836906529D-16 + 1 56 1 36 0.12148402283879D+00 0.18842620691852D-15 + 2 56 1 36 -0.16615110843062D+00 0.18110196474785D-16 + 3 56 1 36 -0.20189496355113D+00 0.26430011912827D-16 + 1 57 1 36 -0.46736184534094D+00 -0.93019266921929D-17 + 2 57 1 36 -0.45135257442485D+00 0.58160320584970D-17 + 3 57 1 36 -0.48216063573330D+00 -0.83246160620899D-16 + 1 58 1 36 -0.58364062511924D+00 -0.11590223752204D-15 + 2 58 1 36 -0.58941207799972D+00 -0.13082046149080D-16 + 3 58 1 36 -0.45615503776574D+00 -0.84333755798785D-17 + 1 59 1 36 0.24369046204170D+00 -0.75265254874321D-16 + 2 59 1 36 -0.22552624962986D-01 -0.40712838345996D-16 + 3 59 1 36 -0.14456368115460D-01 0.10650732524043D-16 + 1 60 1 36 -0.24223590393392D+02 0.12376596524364D-15 + 2 60 1 36 -0.13901670395536D+02 -0.79863848641617D-17 + 3 60 1 36 -0.12618695132517D+02 0.99192492587265D-17 + 1 61 1 36 0.20291562690678D+00 0.10608881317616D-15 + 2 61 1 36 0.32023862973357D+00 0.28192151655669D-16 + 3 61 1 36 -0.26767530867153D+00 0.15502358089271D-16 + 1 62 1 36 0.21582940437261D+00 -0.31923543713696D-16 + 2 62 1 36 -0.29934916374172D+00 0.12477989533743D-16 + 3 62 1 36 0.28753091410638D+00 -0.23985757647719D-16 + 1 63 1 36 -0.78592107040989D+00 -0.14619159186030D-16 + 2 63 1 36 -0.47064181745670D+00 0.36924268700799D-16 + 3 63 1 36 -0.44525731202280D+00 -0.12942474896042D-16 + 1 64 1 36 -0.11978192478382D+01 0.87046049979925D-17 + 2 64 1 36 0.86094463755103D+00 0.66735335326272D-17 + 3 64 1 36 -0.86015233282602D+00 -0.10869830394755D-15 + 1 65 1 36 0.47472562476191D-01 0.21016516014140D-15 + 2 65 1 36 0.91031511570016D-01 -0.50731166861689D-17 + 3 65 1 36 -0.91031511570017D-01 0.51839397685647D-17 + 1 1 2 36 0.13681488651771D+01 -0.20252971965448D-16 + 2 1 2 36 0.29609340178484D+01 -0.30087292431458D-16 + 3 1 2 36 -0.12700085353062D+01 0.30143977264384D-16 + 1 2 2 36 -0.13216691511330D+01 0.87899303157578D-16 + 2 2 2 36 0.30062117777568D+01 -0.10671290279336D-16 + 3 2 2 36 -0.14939482683633D+01 -0.21328378204205D-17 + 1 3 2 36 -0.25560236999471D-01 -0.58275858611285D-17 + 2 3 2 36 0.92045836170679D-01 0.15371784705428D-16 + 3 3 2 36 -0.10708464478090D-01 -0.16092565622111D-16 + 1 4 2 36 -0.10378919577470D+00 -0.98218848974890D-16 + 2 4 2 36 -0.13044625834323D-02 -0.23712820199867D-16 + 3 4 2 36 -0.12016519405870D+00 -0.75738370117823D-17 + 1 5 2 36 0.21253208600549D+01 -0.31416690379863D-16 + 2 5 2 36 0.18056327608835D+01 -0.11568178623688D-15 + 3 5 2 36 0.20752894122620D+01 0.27744413626806D-16 + 1 6 2 36 -0.11823768965084D+01 -0.41542520070078D-16 + 2 6 2 36 0.30155345649138D+01 0.50695953424824D-16 + 3 6 2 36 0.12333277166283D+01 0.18858686654811D-16 + 1 7 2 36 0.12180751841965D+00 0.12988661294736D-16 + 2 7 2 36 -0.37214517100062D-02 -0.12981622296294D-15 + 3 7 2 36 0.13225854204798D+00 -0.30701558993124D-16 + 1 8 2 36 -0.90350894191814D-01 0.89550312366778D-16 + 2 8 2 36 -0.15398128284675D-01 -0.39090740279305D-16 + 3 8 2 36 0.44248198131510D-01 -0.10539306683069D-16 + 1 9 2 36 -0.30507985202560D+00 -0.32429068438163D-16 + 2 9 2 36 0.39805385148685D+00 -0.35453381903885D-16 + 3 9 2 36 0.21433759979022D+00 0.33193414310384D-16 + 1 10 2 36 -0.49563033264047D+00 -0.34209971027461D-16 + 2 10 2 36 -0.47974736798100D+00 -0.20869445776451D-16 + 3 10 2 36 0.57577714895615D+00 -0.48960199743616D-17 + 1 11 2 36 -0.13960430390390D+02 -0.23386674473282D-16 + 2 11 2 36 -0.26380403735131D+02 0.15126598281757D-17 + 3 11 2 36 0.14567610441024D+02 0.21465910412154D-16 + 1 12 2 36 0.26751169750600D+00 0.19230060419617D-16 + 2 12 2 36 0.10545375499441D+00 -0.37780239377260D-15 + 3 12 2 36 0.24199224370543D+00 0.36502002918944D-17 + 1 13 2 36 -0.40614895031310D+00 0.34633260830839D-16 + 2 13 2 36 -0.34998761247839D+00 0.55105867204616D-16 + 3 13 2 36 0.44304227120451D+00 0.28785508913391D-16 + 1 14 2 36 -0.35530456845666D-01 -0.18930864014482D-16 + 2 14 2 36 0.26118524991483D+00 -0.17128781888608D-15 + 3 14 2 36 0.32048390194774D-01 0.85701170231934D-18 + 1 15 2 36 -0.47464923475426D+00 0.22586232535199D-16 + 2 15 2 36 -0.76994936718329D+00 -0.90216716808841D-16 + 3 15 2 36 0.45168307234366D+00 -0.25076771532951D-16 + 1 16 2 36 0.31188104911044D+01 -0.14461187965953D-17 + 2 16 2 36 -0.31160979668871D+01 0.67373655191476D-16 + 3 16 2 36 0.12509767681806D+01 -0.98304195902638D-16 + 1 17 2 36 -0.98827236061180D-01 -0.21682908664649D-17 + 2 17 2 36 -0.24812961285717D+00 -0.21010579264838D-15 + 3 17 2 36 0.10609528741850D+00 0.84951345846619D-16 + 1 18 2 36 -0.31989593194819D+01 0.23962072611183D-17 + 2 18 2 36 -0.31697061943491D+01 0.24293261995414D-15 + 3 18 2 36 0.12696454300567D+01 -0.82720460248781D-17 + 1 19 2 36 0.18875194431667D+00 -0.49192294636917D-17 + 2 19 2 36 -0.15174463442924D+00 -0.20337781201321D-15 + 3 19 2 36 0.19848275994538D+00 0.19295819584128D-16 + 1 20 2 36 -0.30962339742665D+01 -0.20632684808422D-17 + 2 20 2 36 -0.29958810583551D+01 0.88486866935937D-17 + 3 20 2 36 -0.11353333223013D+01 0.27800423563111D-16 + 1 21 2 36 0.11754640956584D+00 -0.38294107330066D-18 + 2 21 2 36 -0.26140025060353D+00 -0.14064039345132D-15 + 3 21 2 36 -0.93465445648178D-01 0.59447454189450D-16 + 1 22 2 36 0.32340459656324D+01 0.23103925200894D-17 + 2 22 2 36 -0.18994089981028D+01 0.24670843157852D-16 + 3 22 2 36 -0.17882170017425D+01 -0.13131611392732D-16 + 1 23 2 36 -0.96415435917294D-01 0.27687027575966D-17 + 2 23 2 36 -0.21086672653500D+00 0.17095000470060D-15 + 3 23 2 36 -0.86755436131937D-01 0.32622403662947D-17 + 1 24 2 36 -0.31009401544720D+00 -0.47507384872319D-17 + 2 24 2 36 0.12151128452325D+00 0.86328329312926D-16 + 3 24 2 36 0.31355453777295D+00 0.17101510405593D-16 + 1 25 2 36 0.15024282579784D+02 -0.51818948142430D-17 + 2 25 2 36 -0.27141502431793D+02 -0.31849691256380D-15 + 3 25 2 36 0.15567569530740D+02 -0.54079856122400D-17 + 1 26 2 36 0.52527277599874D+00 0.43922855309009D-16 + 2 26 2 36 -0.27661666299411D+00 -0.30120534919927D-15 + 3 26 2 36 0.40003112545841D+00 0.22783010404578D-16 + 1 27 2 36 0.34091133366503D+00 0.16545009948463D-16 + 2 27 2 36 0.56741504705852D+00 0.84033182420510D-16 + 3 27 2 36 0.29319084621844D+00 0.26625480979316D-16 + 1 28 2 36 0.17379260137787D+00 -0.13207043751859D-17 + 2 28 2 36 -0.62389862780351D+00 0.36712575243832D-16 + 3 28 2 36 0.52852461919547D+00 0.92952677130089D-18 + 1 29 2 36 0.30940070739702D+00 -0.14416726917056D-16 + 2 29 2 36 0.16566364622927D+00 0.27442420934276D-17 + 3 29 2 36 -0.30593004354810D+00 -0.22883943292870D-16 + 1 30 2 36 0.36826551461468D-01 -0.24162543238702D-16 + 2 30 2 36 0.14046373274299D+00 -0.19802278889048D-15 + 3 30 2 36 0.19180688496901D-02 0.31474180890630D-16 + 1 31 2 36 0.42797690548081D+00 -0.16589534148608D-16 + 2 31 2 36 -0.41444205618786D+00 -0.14791643826765D-15 + 3 31 2 36 0.47410951315899D+00 0.66526600514351D-17 + 1 32 2 36 -0.32585525274067D-01 0.22743732757227D-16 + 2 32 2 36 -0.74394943703652D+00 -0.92581187300226D-17 + 3 32 2 36 -0.57995663584141D+00 -0.88692747388882D-18 + 1 33 2 36 -0.25660247315378D-01 0.69128625203389D-18 + 2 33 2 36 0.14768947477597D+01 -0.64445966423687D-17 + 3 33 2 36 -0.70096081780645D-02 0.94030678029196D-18 + 1 34 2 36 -0.36928784194137D-01 -0.29287813853187D-18 + 2 34 2 36 -0.10442409181147D+00 -0.92136202979896D-18 + 3 34 2 36 0.44845856798312D-01 0.88339737249418D-19 + 1 35 2 36 -0.75447065688494D-03 -0.33082645645505D-18 + 2 35 2 36 -0.79969290519244D-01 0.22866321266590D-17 + 3 35 2 36 0.20794212377672D-01 0.29089596042020D-18 + 1 36 2 36 -0.11926800466264D+01 0.00000000000000D+00 + 2 36 2 36 0.12019081945031D+03 0.00000000000000D+00 + 3 36 2 36 -0.24093552635003D+01 0.00000000000000D+00 + 1 37 2 36 -0.68881838386677D-01 -0.10655696360109D-19 + 2 37 2 36 -0.29997582769306D+00 0.95010110816970D-18 + 3 37 2 36 0.75794711745998D-01 -0.12740328046136D-17 + 1 38 2 36 0.71182342370792D-01 -0.38889131775597D-18 + 2 38 2 36 -0.36966588801673D+00 0.36365154230285D-17 + 3 38 2 36 -0.63860397410480D-01 0.29537873073155D-18 + 1 39 2 36 0.52521091841467D-02 -0.19582229626367D-18 + 2 39 2 36 -0.14562371684377D+00 -0.86940821153373D-19 + 3 39 2 36 -0.29389480393451D-01 0.79469439747293D-19 + 1 40 2 36 0.45448141448589D-01 -0.32624667939715D-17 + 2 40 2 36 0.26354632444338D+00 -0.91507635018436D-16 + 3 40 2 36 -0.28309789651060D-02 -0.10171709094721D-15 + 1 41 2 36 0.55398192425771D+00 0.39377707775297D-17 + 2 41 2 36 -0.45552851098672D+00 -0.14496657914972D-15 + 3 41 2 36 -0.46496587470431D+00 0.33757024399619D-16 + 1 42 2 36 0.65896889737925D+00 0.32343632775631D-16 + 2 42 2 36 -0.93113972708093D+00 -0.11532689254430D-15 + 3 42 2 36 -0.34781997433925D+00 -0.85082360871142D-17 + 1 43 2 36 0.29451899344542D+00 -0.29184698173046D-16 + 2 43 2 36 0.33670670103111D+00 0.19810597391390D-15 + 3 43 2 36 0.64823888964951D-01 0.11731287171431D-16 + 1 44 2 36 0.47089004501018D+00 -0.41101820229517D-16 + 2 44 2 36 -0.32341740368544D+00 0.74292444820513D-16 + 3 44 2 36 -0.42846589831313D+00 -0.13109990297820D-16 + 1 45 2 36 0.26756134160942D+00 0.22962308104559D-17 + 2 45 2 36 0.42850323800119D+00 -0.87228268967794D-16 + 3 45 2 36 -0.26183416531372D+00 -0.20090357387061D-16 + 1 46 2 36 -0.43846442122255D+00 -0.19456188972027D-16 + 2 46 2 36 0.19033349414045D+00 0.22305614423724D-15 + 3 46 2 36 -0.24748365031445D+00 -0.55721589691742D-16 + 1 47 2 36 0.11927098542457D+02 0.10144760080178D-16 + 2 47 2 36 -0.25485998875877D+02 0.62131981918129D-15 + 3 47 2 36 -0.14345599579921D+02 0.30589829827948D-16 + 1 48 2 36 -0.12899902445749D+00 0.10478927584321D-16 + 2 48 2 36 -0.22758195861379D+00 0.11827769613036D-15 + 3 48 2 36 0.90810637626317D-01 0.71799598069893D-18 + 1 49 2 36 0.67004752710946D-01 0.70884881711434D-17 + 2 49 2 36 -0.24047697504348D+00 -0.24037610774791D-15 + 3 49 2 36 -0.10862185381205D+00 0.49121491360463D-18 + 1 50 2 36 0.25927238246944D-01 0.30989516254591D-16 + 2 50 2 36 0.54392391872485D+00 -0.21538813391674D-15 + 3 50 2 36 0.62347852797931D+00 -0.13317974268937D-16 + 1 51 2 36 0.13569498302181D+00 -0.21438520879693D-16 + 2 51 2 36 -0.20873637486903D+00 -0.23728832322179D-15 + 3 51 2 36 0.86008039398327D-01 -0.19095827221627D-17 + 1 52 2 36 -0.13146956625237D+01 0.19413438494808D-17 + 2 52 2 36 -0.27516318762314D+01 0.16722493442299D-15 + 3 52 2 36 -0.28992922123548D+01 0.11102062399512D-16 + 1 53 2 36 0.12970359638530D+01 0.10294631717934D-16 + 2 53 2 36 -0.31020751299927D+01 -0.63315150593285D-16 + 3 53 2 36 0.31423875954876D+01 0.73851300825016D-18 + 1 54 2 36 -0.12700720656505D+01 -0.17064040534248D-16 + 2 54 2 36 -0.29567085927980D+01 -0.25579362416419D-15 + 3 54 2 36 0.30735382688858D+01 0.12201032224296D-18 + 1 55 2 36 0.11550108999979D+01 -0.21869635914483D-16 + 2 55 2 36 -0.28512247146025D+01 -0.13387494448025D-15 + 3 55 2 36 -0.29073230193539D+01 -0.24609106886936D-17 + 1 56 2 36 -0.21488924759002D+00 0.18110196474785D-16 + 2 56 2 36 0.15446028503366D+00 -0.17881225432488D-16 + 3 56 2 36 0.33929061429275D+00 0.34280697336231D-16 + 1 57 2 36 -0.42315601101540D+00 0.58160320584970D-17 + 2 57 2 36 -0.76046130464859D+00 -0.23394924859023D-15 + 3 57 2 36 -0.55199541123175D+00 -0.20735359494693D-16 + 1 58 2 36 -0.74948867391113D+00 -0.13082046149080D-16 + 2 58 2 36 -0.34062346733944D+00 0.33412843283799D-16 + 3 58 2 36 -0.61830381521060D+00 0.51743890334647D-16 + 1 59 2 36 -0.67656636498690D-02 -0.40712838345996D-16 + 2 59 2 36 0.29116309027544D+00 0.10324724972095D-15 + 3 59 2 36 -0.18546293613141D-01 0.18191915097351D-16 + 1 60 2 36 -0.13529215902066D+02 -0.79863848641617D-17 + 2 60 2 36 -0.26367025656392D+02 0.36706304163983D-15 + 3 60 2 36 -0.14949212088362D+02 0.34602383881639D-16 + 1 61 2 36 0.34208337300894D+00 0.28192151655669D-16 + 2 61 2 36 0.23777045636008D+00 -0.27104506372636D-16 + 3 61 2 36 -0.29554103937407D+00 -0.93788136318809D-16 + 1 62 2 36 -0.32434742287266D+00 0.12477989533743D-16 + 2 62 2 36 0.62661665556899D+00 0.16771495453918D-15 + 3 62 2 36 -0.15949537106224D+00 -0.40731733622135D-16 + 1 63 2 36 -0.46029301411803D+00 0.36924268700799D-16 + 2 63 2 36 -0.34766337276457D+00 -0.15180390911808D-15 + 3 63 2 36 -0.43899228290186D+00 0.71550348309284D-16 + 1 64 2 36 0.73602774428353D+00 0.66735335326272D-17 + 2 64 2 36 0.12590272598061D+00 0.27884716988274D-16 + 3 64 2 36 0.44273459903539D+00 -0.36246083959924D-16 + 1 65 2 36 0.68961132555411D-02 -0.50731166861689D-17 + 2 65 2 36 -0.18636859159152D+00 -0.80276540011005D-16 + 3 65 2 36 0.21099244266207D-01 -0.30796841388778D-17 + 1 1 3 36 0.31989593194819D+01 -0.82326007816060D-19 + 2 1 3 36 0.12700085353062D+01 0.30143977264384D-16 + 3 1 3 36 -0.31697061943491D+01 -0.20504840784507D-15 + 1 2 3 36 -0.31188104911044D+01 -0.14656619418005D-17 + 2 2 3 36 0.12509767681806D+01 -0.21328378204205D-17 + 3 2 3 36 -0.31160979668871D+01 -0.29696006885032D-15 + 1 3 3 36 -0.18875194431668D+00 -0.51662334831512D-17 + 2 3 3 36 0.19848275994538D+00 -0.16092565622111D-16 + 3 3 3 36 -0.15174463442924D+00 -0.24475301889103D-15 + 1 4 3 36 0.98827236061190D-01 0.97172541755899D-18 + 2 4 3 36 0.10609528741851D+00 -0.75738370117823D-17 + 3 4 3 36 -0.24812961285717D+00 0.52586266552677D-16 + 1 5 3 36 -0.32340459656326D+01 -0.88552820895347D-17 + 2 5 3 36 -0.17882170017425D+01 0.27744413626806D-16 + 3 5 3 36 -0.18994089981029D+01 0.24535913918417D-15 + 1 6 3 36 0.30962339742665D+01 -0.84246472815502D-18 + 2 6 3 36 -0.11353333223013D+01 0.18858686654811D-16 + 3 6 3 36 -0.29958810583551D+01 -0.23120209302722D-15 + 1 7 3 36 0.96415435917294D-01 -0.11510228955378D-17 + 2 7 3 36 -0.86755436131939D-01 -0.30701558993124D-16 + 3 7 3 36 -0.21086672653499D+00 -0.27516221674998D-15 + 1 8 3 36 -0.11754640956586D+00 0.88176811168524D-18 + 2 8 3 36 -0.93465445648177D-01 -0.10539306683069D-16 + 3 8 3 36 -0.26140025060353D+00 0.31474079081720D-16 + 1 9 3 36 -0.26752309199540D+00 -0.18217404152592D-16 + 2 9 3 36 0.24199224370535D+00 0.33193414310384D-16 + 3 9 3 36 0.10527633078764D+00 0.61212377498826D-17 + 1 10 3 36 0.49563033264048D+00 -0.23663563765393D-17 + 2 10 3 36 0.57577714895611D+00 -0.48960199743616D-17 + 3 10 3 36 -0.47974736798092D+00 -0.10658330146847D-15 + 1 11 3 36 0.13960430390390D+02 -0.22636083890377D-16 + 2 11 3 36 0.14567610441022D+02 0.21465910412154D-16 + 3 11 3 36 -0.26380403735131D+02 -0.37983888277828D-15 + 1 12 3 36 0.30498051558179D+00 0.88542938094184D-17 + 2 12 3 36 0.21427852513038D+00 0.36502002918944D-17 + 3 12 3 36 0.39805385148680D+00 0.10632343893643D-15 + 1 13 3 36 0.47458666872602D+00 0.34283657085089D-16 + 2 13 3 36 0.45168307234362D+00 0.28785508913391D-16 + 3 13 3 36 -0.77115215878723D+00 0.10415767086118D-15 + 1 14 3 36 0.35530456845669D-01 0.69467939415454D-17 + 2 14 3 36 0.32048390194765D-01 0.85701170231934D-18 + 3 14 3 36 0.26118524991481D+00 0.15094609739427D-15 + 1 15 3 36 0.40590122418774D+00 0.20094266078744D-16 + 2 15 3 36 0.44345517655243D+00 -0.25076771532951D-16 + 3 15 3 36 -0.34998761247846D+00 0.99273994977156D-16 + 1 16 3 36 0.13216691511330D+01 0.98910205531358D-16 + 2 16 3 36 -0.14939482683633D+01 -0.98304195902638D-16 + 3 16 3 36 0.30062117777568D+01 -0.21446138530940D-16 + 1 17 3 36 0.10378919577471D+00 -0.59100094532781D-16 + 2 17 3 36 -0.12016519405870D+00 0.84951345846619D-16 + 3 17 3 36 -0.13044625834288D-02 -0.22205380462101D-16 + 1 18 3 36 -0.13681488651771D+01 0.10255113482364D-15 + 2 18 3 36 -0.12696454300567D+01 -0.82720460248781D-17 + 3 18 3 36 0.29609340178484D+01 -0.19625493411367D-16 + 1 19 3 36 0.25560236999467D-01 -0.82364067354397D-16 + 2 19 3 36 -0.10708464478095D-01 0.19295819584128D-16 + 3 19 3 36 0.92045836170672D-01 0.74095351217670D-16 + 1 20 3 36 0.11823768965084D+01 0.25405871447151D-16 + 2 20 3 36 0.12333277166283D+01 0.27800423563111D-16 + 3 20 3 36 0.30155345649138D+01 -0.31781162506811D-16 + 1 21 3 36 0.90350894191818D-01 0.89613767503112D-16 + 2 21 3 36 0.44248198131509D-01 0.59447454189450D-16 + 3 21 3 36 -0.15398128284671D-01 -0.10767029425438D-15 + 1 22 3 36 -0.21253208600549D+01 0.10768704265416D-15 + 2 22 3 36 0.20752894122620D+01 -0.13131611392732D-16 + 3 22 3 36 0.18056327608835D+01 0.11467688744714D-16 + 1 23 3 36 -0.12180751841965D+00 0.37437323221193D-17 + 2 23 3 36 0.13225854204798D+00 0.32622403662947D-17 + 3 23 3 36 -0.37214517099974D-02 0.59498256642431D-17 + 1 24 3 36 -0.34091133366504D+00 -0.43766875996217D-16 + 2 24 3 36 0.29319084621844D+00 0.17101510405593D-16 + 3 24 3 36 0.56741504705852D+00 0.22340969029247D-15 + 1 25 3 36 -0.15024282579784D+02 0.60058445639596D-18 + 2 25 3 36 0.15567569530740D+02 -0.54079856122400D-17 + 3 25 3 36 -0.27141502431793D+02 0.25123416870801D-15 + 1 26 3 36 -0.52527277599873D+00 0.38184654992123D-16 + 2 26 3 36 0.40003112545841D+00 0.22783010404578D-16 + 3 26 3 36 -0.27661666299410D+00 0.21197240366975D-15 + 1 27 3 36 0.31009401544719D+00 0.45995955592915D-17 + 2 27 3 36 0.31355453777295D+00 0.26625480979316D-16 + 3 27 3 36 0.12151128452325D+00 0.11210447398282D-15 + 1 28 3 36 -0.42797690548088D+00 0.74665037125370D-16 + 2 28 3 36 0.47410951315899D+00 0.92952677130089D-18 + 3 28 3 36 -0.41444205618786D+00 0.63404092293808D-16 + 1 29 3 36 -0.30940070739702D+00 -0.92448407194288D-16 + 2 29 3 36 -0.30593004354810D+00 -0.22883943292870D-16 + 3 29 3 36 0.16566364622927D+00 -0.12726329449820D-16 + 1 30 3 36 -0.36826551461463D-01 -0.14593306893842D-16 + 2 30 3 36 0.19180688496901D-02 0.31474180890630D-16 + 3 30 3 36 0.14046373274300D+00 0.65059647751586D-17 + 1 31 3 36 -0.17379260137787D+00 -0.81155304615788D-17 + 2 31 3 36 0.52852461919547D+00 0.66526600514351D-17 + 3 31 3 36 -0.62389862780352D+00 -0.81953660778481D-17 + 1 32 3 36 0.32585525274079D-01 -0.36593346641612D-17 + 2 32 3 36 -0.57995663584141D+00 -0.88692747388882D-18 + 3 32 3 36 -0.74394943703653D+00 -0.79980546345869D-17 + 1 33 3 36 0.36928784194138D-01 0.63502578047206D-18 + 2 33 3 36 0.44845856798312D-01 0.94030678029196D-18 + 3 33 3 36 -0.10442409181147D+00 0.10446383905961D-17 + 1 34 3 36 0.25660247315378D-01 0.68962385646553D-18 + 2 34 3 36 -0.70096081780645D-02 0.88339737249418D-19 + 3 34 3 36 0.14768947477597D+01 -0.15690449890850D-17 + 1 35 3 36 0.75447065688374D-03 -0.54859824879068D-18 + 2 35 3 36 0.20794212377672D-01 0.29089596042020D-18 + 3 35 3 36 -0.79969290519243D-01 -0.43967924514067D-18 + 1 36 3 36 0.11926800466266D+01 0.00000000000000D+00 + 2 36 3 36 -0.24093552635003D+01 0.00000000000000D+00 + 3 36 3 36 0.12019081945031D+03 0.00000000000000D+00 + 1 37 3 36 -0.71182342370792D-01 0.18895735715417D-17 + 2 37 3 36 -0.63860397410480D-01 -0.12740328046136D-17 + 3 37 3 36 -0.36966588801675D+00 -0.91120239522060D-17 + 1 38 3 36 0.68881838386677D-01 -0.32876277229015D-18 + 2 38 3 36 0.75794711745998D-01 0.29537873073155D-18 + 3 38 3 36 -0.29997582769306D+00 0.80997769332341D-17 + 1 39 3 36 -0.52521091841385D-02 0.27439856088720D-17 + 2 39 3 36 -0.29389480393451D-01 0.79469439747293D-19 + 3 39 3 36 -0.14562371684378D+00 0.11270157358959D-17 + 1 40 3 36 0.67656636498692D-02 0.84687314129572D-16 + 2 40 3 36 -0.18546293613141D-01 -0.10171709094721D-15 + 3 40 3 36 0.29116309027544D+00 0.13343632054398D-15 + 1 41 3 36 0.42315601101540D+00 0.61799032172832D-17 + 2 41 3 36 -0.55199541123175D+00 0.33757024399619D-16 + 3 41 3 36 -0.76046130464859D+00 0.16739184652223D-16 + 1 42 3 36 0.74948867391113D+00 0.95532485936328D-17 + 2 42 3 36 -0.61830381521060D+00 -0.85082360871142D-17 + 3 42 3 36 -0.34062346733944D+00 -0.24376626298536D-16 + 1 43 3 36 0.21488924759002D+00 -0.24489351443745D-16 + 2 43 3 36 0.33929061429274D+00 0.11731287171431D-16 + 3 43 3 36 0.15446028503366D+00 0.17899335059475D-15 + 1 44 3 36 0.46029301411802D+00 0.20614217576032D-16 + 2 44 3 36 -0.43899228290186D+00 -0.13109990297820D-16 + 3 44 3 36 -0.34766337276457D+00 -0.43223043361618D-16 + 1 45 3 36 -0.34208337300893D+00 -0.26603945116924D-16 + 2 45 3 36 -0.29554103937407D+00 -0.20090357387061D-16 + 3 45 3 36 0.23777045636008D+00 0.18060166529495D-16 + 1 46 3 36 0.32434742287266D+00 0.75291697471444D-16 + 2 46 3 36 -0.15949537106224D+00 -0.55721589691742D-16 + 3 46 3 36 0.62661665556899D+00 0.16776575480849D-15 + 1 47 3 36 0.13529215902066D+02 -0.85113775793047D-17 + 2 47 3 36 -0.14949212088362D+02 0.30589829827948D-16 + 3 47 3 36 -0.26367025656392D+02 0.78945943640076D-15 + 1 48 3 36 -0.13569498302181D+00 -0.32168162104355D-17 + 2 48 3 36 0.86008039398327D-01 0.71799598069893D-18 + 3 48 3 36 -0.20873637486903D+00 0.30310997698070D-15 + 1 49 3 36 -0.67004752710945D-01 0.57602415680592D-17 + 2 49 3 36 -0.10862185381205D+00 0.49121491360463D-18 + 3 49 3 36 -0.24047697504348D+00 -0.17588282096401D-15 + 1 50 3 36 -0.25927238246940D-01 -0.24629436450502D-16 + 2 50 3 36 0.62347852797931D+00 -0.13317974268937D-16 + 3 50 3 36 0.54392391872485D+00 -0.15546899175421D-15 + 1 51 3 36 0.12899902445748D+00 0.64658444000020D-17 + 2 51 3 36 0.90810637626317D-01 -0.19095827221627D-17 + 3 51 3 36 -0.22758195861379D+00 0.10427867525964D-15 + 1 52 3 36 -0.11550108999979D+01 0.31761262465316D-16 + 2 52 3 36 -0.29073230193539D+01 0.11102062399512D-16 + 3 52 3 36 -0.28512247146025D+01 -0.96287263231017D-16 + 1 53 3 36 -0.12970359638530D+01 0.24405601362543D-16 + 2 53 3 36 0.31423875954876D+01 0.73851300825016D-18 + 3 53 3 36 -0.31020751299927D+01 0.16372825972090D-16 + 1 54 3 36 0.12700720656505D+01 -0.26353410301900D-16 + 2 54 3 36 0.30735382688858D+01 0.12201032224296D-18 + 3 54 3 36 -0.29567085927980D+01 -0.17953363763219D-15 + 1 55 3 36 0.13146956625237D+01 0.24231836906529D-16 + 2 55 3 36 -0.28992922123548D+01 -0.24609106886936D-17 + 3 55 3 36 -0.27516318762314D+01 0.29879787084087D-15 + 1 56 3 36 -0.29451899344542D+00 0.26430011912827D-16 + 2 56 3 36 0.64823888964953D-01 0.34280697336231D-16 + 3 56 3 36 0.33670670103111D+00 -0.15879902498360D-15 + 1 57 3 36 -0.55398192425771D+00 -0.83246160620899D-16 + 2 57 3 36 -0.46496587470431D+00 -0.20735359494693D-16 + 3 57 3 36 -0.45552851098672D+00 -0.13097028615551D-15 + 1 58 3 36 -0.65896889737925D+00 -0.84333755798785D-17 + 2 58 3 36 -0.34781997433926D+00 0.51743890334647D-16 + 3 58 3 36 -0.93113972708093D+00 -0.56366983167719D-17 + 1 59 3 36 -0.45448141448589D-01 0.10650732524043D-16 + 2 59 3 36 -0.28309789651055D-02 0.18191915097351D-16 + 3 59 3 36 0.26354632444338D+00 0.41758924838175D-16 + 1 60 3 36 -0.11927098542457D+02 0.99192492587265D-17 + 2 60 3 36 -0.14345599579921D+02 0.34602383881639D-16 + 3 60 3 36 -0.25485998875877D+02 0.33598111168477D-15 + 1 61 3 36 -0.26756134160942D+00 0.15502358089271D-16 + 2 61 3 36 -0.26183416531372D+00 -0.93788136318809D-16 + 3 61 3 36 0.42850323800122D+00 -0.19143601064785D-16 + 1 62 3 36 0.43846442122255D+00 -0.23985757647719D-16 + 2 62 3 36 -0.24748365031446D+00 -0.40731733622135D-16 + 3 62 3 36 0.19033349414045D+00 -0.11110148138188D-15 + 1 63 3 36 -0.47089004501018D+00 -0.12942474896042D-16 + 2 63 3 36 -0.42846589831313D+00 0.71550348309284D-16 + 3 63 3 36 -0.32341740368545D+00 0.10296302914338D-16 + 1 64 3 36 -0.73602774428359D+00 -0.10869830394755D-15 + 2 64 3 36 0.44352528474126D+00 -0.36246083959924D-16 + 3 64 3 36 0.12384261309469D+00 -0.10172067059707D-15 + 1 65 3 36 -0.68961132555677D-02 0.51839397685647D-17 + 2 65 3 36 0.21099244266207D-01 -0.30796841388778D-17 + 3 65 3 36 -0.18636859159152D+00 -0.32043394678744D-16 + 1 1 1 37 -0.29694333512828D+01 -0.21967680326791D-15 + 2 1 1 37 0.13216691511330D+01 -0.73189878736030D-16 + 3 1 1 37 -0.31188104911044D+01 0.17280449327810D-17 + 1 2 1 37 -0.32291832719729D+01 0.88780743547773D-18 + 2 2 1 37 -0.12574855522480D+01 0.33937757333768D-16 + 3 2 1 37 0.35866822654581D+01 -0.12605390327668D-16 + 1 3 1 37 -0.35729967959954D+00 0.10812119316578D-15 + 2 3 1 37 0.21515632650469D+00 0.27050722920634D-16 + 3 3 1 37 0.19847109189108D+00 0.14117359367726D-17 + 1 4 1 37 -0.23629068496630D+00 0.17509997130348D-15 + 2 4 1 37 -0.10296464443796D+00 -0.67742533743976D-17 + 3 4 1 37 -0.11720523352892D+00 -0.74061554985619D-17 + 1 5 1 37 -0.30338589403062D+01 -0.17929207844985D-15 + 2 5 1 37 0.17512457825153D+00 0.11093824667950D-15 + 3 5 1 37 0.46171555433879D+01 -0.45786186905192D-17 + 1 6 1 37 -0.29949756481198D+01 0.10517525722668D-15 + 2 6 1 37 -0.11971059792642D+01 -0.33883821503109D-16 + 3 6 1 37 -0.30971891017045D+01 -0.17932589390841D-17 + 1 7 1 37 -0.20352226633814D+00 -0.25931991862864D-15 + 2 7 1 37 0.14350644613521D+00 0.27707467357978D-16 + 3 7 1 37 -0.36582342768195D-01 -0.54636004048646D-18 + 1 8 1 37 -0.23994603525543D+00 -0.14282227746111D-15 + 2 8 1 37 -0.89465979828499D-01 -0.10549421029786D-15 + 3 8 1 37 0.65890303523436D-01 -0.18356313073114D-17 + 1 9 1 37 -0.83349558433374D+00 0.62801605276868D-16 + 2 9 1 37 -0.49860176723088D+00 0.69286150607845D-17 + 3 9 1 37 0.63008529094648D+00 -0.32561148805598D-17 + 1 10 1 37 0.15998648080421D+00 -0.15328800867581D-15 + 2 10 1 37 -0.27827078820674D+00 -0.19464089550991D-17 + 3 10 1 37 -0.29407440653510D+00 -0.15300925472571D-17 + 1 11 1 37 0.21075421480057D+00 -0.82647091281832D-16 + 2 11 1 37 0.31360025830503D+00 -0.74697940838385D-17 + 3 11 1 37 0.42014911564423D+00 -0.26286176603764D-16 + 1 12 1 37 -0.27426623157198D+02 0.90394505174171D-16 + 2 12 1 37 -0.17262113001736D+02 0.11631320026635D-16 + 3 12 1 37 0.15029971305917D+02 -0.66964899172877D-17 + 1 13 1 37 0.25476396318106D+00 -0.92281477557378D-16 + 2 13 1 37 -0.35339012791923D-01 0.45810930454133D-17 + 3 13 1 37 0.25402314664380D-01 0.33470845191569D-16 + 1 14 1 37 -0.40570463124979D+00 0.25238875929644D-15 + 2 14 1 37 -0.46794458107697D+00 -0.98074303265651D-17 + 3 14 1 37 0.45282468874006D+00 0.18895604617661D-16 + 1 15 1 37 0.50241961411297D+00 -0.20952494619025D-16 + 2 15 1 37 -0.32850170110725D+00 0.68710668982777D-19 + 3 15 1 37 0.29075513625965D+00 0.21215124520652D-18 + 1 16 1 37 -0.35757345629169D+00 0.74997247339842D-16 + 2 16 1 37 -0.21810506358726D+00 0.41818278484334D-18 + 3 16 1 37 -0.25898368449814D+00 -0.39042713900760D-17 + 1 17 1 37 -0.30112724456127D+01 0.21003502121407D-15 + 2 17 1 37 0.32825700744195D+01 0.62657895708167D-18 + 3 17 1 37 -0.14136220409059D+01 0.10120480883549D-15 + 1 18 1 37 -0.21100302837231D+00 0.14118790673692D-15 + 2 18 1 37 0.18875194431667D+00 -0.70101293422822D-18 + 3 18 1 37 -0.25560236999467D-01 0.15339759779779D-16 + 1 19 1 37 -0.29895125632169D+01 0.29710363629886D-16 + 2 19 1 37 -0.29337777170518D+01 -0.11985221587353D-17 + 3 19 1 37 0.16276630588903D+01 -0.61850619892563D-16 + 1 20 1 37 -0.20285354699657D+00 0.79446217725823D-16 + 2 20 1 37 0.21870410963721D-01 0.17898716554151D-17 + 3 20 1 37 -0.14764773017077D+00 -0.86291044858657D-16 + 1 21 1 37 -0.29596538007428D+01 0.87943754325840D-16 + 2 21 1 37 -0.32008726391262D+01 0.33322693108764D-19 + 3 21 1 37 -0.12343771874599D+01 0.19284197463406D-16 + 1 22 1 37 -0.14227691375251D+00 0.24069840096619D-15 + 2 22 1 37 0.63788193896406D+00 -0.91840249439910D-18 + 3 22 1 37 -0.55458505988008D+00 -0.20999772320377D-17 + 1 23 1 37 -0.29233488661134D+01 -0.12302738326380D-15 + 2 23 1 37 0.28846658458855D+01 -0.19080180097598D-17 + 3 23 1 37 0.17402778573232D+01 0.97467295401939D-17 + 1 24 1 37 -0.25470941862986D+02 0.58646681849256D-16 + 2 24 1 37 0.13516280332069D+02 -0.37000592626845D-16 + 3 24 1 37 -0.13940477087648D+02 -0.43232857695855D-16 + 1 25 1 37 0.20558033360877D+00 0.14843046309865D-15 + 2 25 1 37 -0.34287793151199D+00 0.31324999359598D-17 + 3 25 1 37 -0.25207267195375D+00 0.63335912202647D-16 + 1 26 1 37 0.27295797963213D+00 -0.23821226728618D-16 + 2 26 1 37 0.40294145954663D+00 0.17426833386838D-16 + 3 26 1 37 0.39028506538331D+00 -0.13581738890443D-16 + 1 27 1 37 -0.84916661268427D+00 -0.16222061026567D-16 + 2 27 1 37 0.47131622603680D+00 -0.24792426797897D-17 + 3 27 1 37 -0.37718079151061D+00 0.47475051188481D-17 + 1 28 1 37 0.44208024797639D+00 -0.89631535282405D-16 + 2 28 1 37 0.38566323318888D+00 0.30525840880740D-16 + 3 28 1 37 -0.41383561013825D+00 -0.21236888730713D-16 + 1 29 1 37 -0.37941196594313D+00 -0.10097245826700D-15 + 2 29 1 37 0.44374494864420D+00 -0.22296969339089D-16 + 3 29 1 37 -0.32676665815979D+00 -0.85837930174632D-16 + 1 30 1 37 -0.64234105542516D+00 -0.22007083316848D-16 + 2 30 1 37 0.42614734542216D+00 0.97080307009276D-16 + 3 30 1 37 -0.38978028340426D+00 0.13410209192340D-16 + 1 31 1 37 0.25051017034733D+00 -0.57216920681328D-17 + 2 31 1 37 -0.11479705400310D+00 -0.29801982434101D-17 + 3 31 1 37 0.23561371178644D-01 0.30851320073156D-16 + 1 32 1 37 -0.12969776100858D+00 -0.77861116716955D-17 + 2 32 1 37 -0.85317621194837D+00 0.23504274399333D-17 + 3 32 1 37 -0.74074581612352D+00 0.13849651016577D-16 + 1 33 1 37 -0.35562475976301D+00 0.34768872684209D-17 + 2 33 1 37 -0.19184240360456D-02 -0.14512486137327D-17 + 3 33 1 37 0.73118224368082D-01 -0.35397979105080D-18 + 1 34 1 37 -0.16720242091942D+00 -0.62256522444078D-18 + 2 34 1 37 0.22811652599746D-01 0.74584139576964D-18 + 3 34 1 37 -0.38930185792206D-01 0.37635113882709D-18 + 1 35 1 37 -0.12290306718743D+00 0.14830529779444D-17 + 2 35 1 37 0.22596539548495D-01 -0.67975467796780D-18 + 3 35 1 37 -0.12182195732168D-01 0.51662567979117D-18 + 1 36 1 37 -0.22583673303681D+00 0.36873137371369D-17 + 2 36 1 37 -0.68881838386677D-01 0.10655696360109D-19 + 3 36 1 37 -0.71182342370792D-01 -0.18895735715417D-17 + 1 37 1 37 0.12287990253502D+03 0.00000000000000D+00 + 2 37 1 37 0.10712478210701D+01 0.00000000000000D+00 + 3 37 1 37 -0.34256587073389D+01 0.00000000000000D+00 + 1 38 1 37 0.17064624383969D+01 -0.42495998698577D-17 + 2 38 1 37 0.19049686090145D+00 -0.15467348009602D-17 + 3 38 1 37 -0.19346501631644D-01 0.35234345635876D-18 + 1 39 1 37 -0.23816838007246D+00 0.83707711241995D-17 + 2 39 1 37 0.18366634266786D-02 -0.10241245769950D-17 + 3 39 1 37 -0.13933129234015D-02 0.35006706939782D-19 + 1 40 1 37 -0.45333922621258D+00 -0.11712468325096D-15 + 2 40 1 37 0.52535734949560D+00 0.41175604962000D-16 + 3 40 1 37 0.51501859925011D+00 -0.17741463753980D-16 + 1 41 1 37 0.27664613061127D+00 0.42510542195093D-16 + 2 41 1 37 0.11650839707680D-02 -0.41297805484548D-16 + 3 41 1 37 0.26176467133669D-02 0.11267635184491D-16 + 1 42 1 37 0.31422049400924D+00 0.16795521363978D-16 + 2 42 1 37 -0.29825601567531D-02 -0.14250281803621D-16 + 3 42 1 37 0.21516708156433D+00 0.17338867003772D-16 + 1 43 1 37 -0.39640379417134D+00 -0.22066486184984D-15 + 2 43 1 37 0.59823138478368D+00 0.10036255128871D-16 + 3 43 1 37 0.63674313804244D+00 0.32330588543688D-16 + 1 44 1 37 0.22931480882147D+00 0.14194302408659D-15 + 2 44 1 37 0.32406161278394D+00 0.36330379984376D-16 + 3 44 1 37 -0.35660563057979D+00 0.14888425656141D-17 + 1 45 1 37 -0.77717561802623D+00 -0.16159261152663D-15 + 2 45 1 37 0.48194379625109D+00 0.46047122952111D-17 + 3 45 1 37 0.44805328709033D+00 0.21337766374235D-16 + 1 46 1 37 -0.27022189572521D+02 -0.72543393940275D-16 + 2 46 1 37 0.17380976115390D+02 0.16089314284900D-16 + 3 46 1 37 0.14558835678490D+02 -0.26874153638677D-16 + 1 47 1 37 0.62025028896420D-02 0.12367297861122D-16 + 2 47 1 37 -0.26522545003791D+00 0.36267849376610D-17 + 3 47 1 37 -0.53763771560473D-01 -0.37707944132787D-16 + 1 48 1 37 -0.40115266392874D-01 -0.25214377721160D-16 + 2 48 1 37 -0.15890958213720D+00 -0.44688204554402D-17 + 3 48 1 37 0.14432681694243D+00 -0.23526463914850D-16 + 1 49 1 37 0.17628049017344D-01 -0.36915881048922D-16 + 2 49 1 37 0.67088866551376D-01 -0.74032240641634D-17 + 3 49 1 37 0.72483235593101D-01 0.20521223165547D-16 + 1 50 1 37 0.87836048719720D-01 0.92258003112564D-17 + 2 50 1 37 0.71809348402237D+00 0.11859382292265D-16 + 3 50 1 37 0.68445111688902D+00 0.26710645576182D-16 + 1 51 1 37 0.28208267547127D-01 0.82053428774734D-16 + 2 51 1 37 0.10915285207293D+00 -0.45983962239056D-17 + 3 51 1 37 -0.18188827530425D+00 0.37391478991471D-17 + 1 52 1 37 0.30681912205084D+01 0.51275932581983D-16 + 2 52 1 37 -0.12892733219551D+01 0.88478558087179D-17 + 3 52 1 37 0.12999869291335D+01 -0.24473112224353D-16 + 1 53 1 37 0.31579413995749D+01 0.14966060423926D-15 + 2 53 1 37 0.11838219701199D+01 0.34460587666635D-16 + 3 53 1 37 0.11608650034962D+01 0.19110275412087D-16 + 1 54 1 37 0.30385091776969D+01 -0.18386837735862D-15 + 2 54 1 37 -0.11550108999979D+01 0.11462724814537D-16 + 3 54 1 37 -0.13146956625237D+01 0.15834349154545D-16 + 1 55 1 37 0.29709267831613D+01 0.32629989807844D-16 + 2 55 1 37 0.14257686930433D+01 0.20378982843872D-16 + 3 55 1 37 -0.16200999420939D+01 -0.76301458865005D-17 + 1 56 1 37 -0.50259411538244D+00 -0.22004902164025D-17 + 2 56 1 37 -0.59033759901085D+00 0.22342597452094D-16 + 3 56 1 37 -0.27401375196434D+00 -0.40041143420920D-17 + 1 57 1 37 0.36923994026917D+00 -0.13874112636180D-15 + 2 57 1 37 -0.26653682768796D+00 -0.45743352895337D-16 + 3 57 1 37 -0.33003961467011D+00 0.20135296739046D-16 + 1 58 1 37 0.81947051681334D-01 0.73873535863570D-16 + 2 58 1 37 0.10295060887454D+00 0.29841973337242D-16 + 3 58 1 37 -0.24610974420285D+00 -0.18969927249442D-16 + 1 59 1 37 -0.49304833638928D+00 0.24879824019382D-15 + 2 59 1 37 -0.43710435220490D+00 -0.33002816556913D-17 + 3 59 1 37 -0.35014435252327D+00 -0.27715406231350D-16 + 1 60 1 37 0.62632122828489D+00 0.57646536234815D-16 + 2 60 1 37 0.21034855301276D+00 0.12486842822643D-17 + 3 60 1 37 -0.61070928979987D+00 0.16620950444963D-16 + 1 61 1 37 -0.27140407075915D+02 -0.51394781775142D-17 + 2 61 1 37 -0.14840802524424D+02 0.66401301619378D-16 + 3 61 1 37 -0.14248162262728D+02 0.36086514073938D-16 + 1 62 1 37 -0.80985736801165D+00 0.90985629455057D-16 + 2 62 1 37 -0.35556774802706D+00 0.22834262433947D-16 + 3 62 1 37 -0.33968534256652D+00 -0.78886961661799D-17 + 1 63 1 37 0.18966302382550D+00 -0.11594464173470D-15 + 2 63 1 37 -0.23380228617192D+00 0.32213526467217D-18 + 3 63 1 37 0.33632806315325D+00 0.10199976207994D-16 + 1 64 1 37 -0.50053457424163D+00 0.26215034791693D-15 + 2 64 1 37 -0.46103043870692D+00 0.37736140671904D-16 + 3 64 1 37 0.10998115269211D+01 -0.86728313711696D-16 + 1 65 1 37 -0.14478320412962D+00 0.14210945543364D-15 + 2 65 1 37 0.66647925942100D-01 0.34811662716512D-17 + 3 65 1 37 -0.73174246076912D-01 0.30225080577353D-17 + 1 1 2 37 -0.13078588463868D+01 -0.73189878736030D-16 + 2 1 2 37 0.30062117777568D+01 0.14751979322005D-17 + 3 1 2 37 -0.12509767681806D+01 -0.30429613831540D-16 + 1 2 2 37 0.12574855522480D+01 0.33937757333768D-16 + 2 2 2 37 0.30927109131092D+01 0.28213838977577D-16 + 3 2 2 37 -0.12650830491787D+01 -0.34807001160816D-17 + 1 3 2 37 -0.25898368449814D+00 0.27050722920634D-16 + 2 3 2 37 0.10115026623173D+00 0.15689805471716D-15 + 3 3 2 37 0.27830676858506D-01 0.65009433174819D-17 + 1 4 2 37 0.10752394562335D+00 -0.67742533743976D-17 + 2 4 2 37 -0.11931947826563D-01 -0.29566505436276D-16 + 3 4 2 37 -0.12617294084810D+00 0.32609136767645D-17 + 1 5 2 37 -0.14435244257966D+01 0.11093824667950D-15 + 2 5 2 37 0.96910325492603D+00 -0.69077052482040D-16 + 3 5 2 37 0.29658009543567D+01 0.20550596590304D-16 + 1 6 2 37 0.13678659944496D+01 -0.33883821503109D-16 + 2 6 2 37 0.29632774936015D+01 0.21836846237513D-15 + 3 6 2 37 0.13483055546319D+01 0.30032473979687D-16 + 1 7 2 37 -0.10774984940752D-01 0.27707467357978D-16 + 2 7 2 37 0.67229337897271D-01 -0.89428735437892D-16 + 3 7 2 37 0.15189491883038D+00 -0.23863547458210D-17 + 1 8 2 37 0.70206638076883D-01 -0.10549421029786D-15 + 2 8 2 37 -0.19811576467606D-01 -0.15686997567895D-15 + 3 8 2 37 0.47616311444370D-01 0.21695336395744D-16 + 1 9 2 37 -0.36362300977472D+00 0.69286150607845D-17 + 2 9 2 37 -0.44110165423258D+00 -0.23497868986895D-15 + 3 9 2 37 0.38138797260346D+00 0.18546427947075D-16 + 1 10 2 37 -0.25310517724680D+00 -0.19464089550991D-17 + 2 10 2 37 0.41290445257304D+00 0.17307812977846D-15 + 3 10 2 37 0.30572683686540D+00 0.83824028327434D-17 + 1 11 2 37 0.34690374812178D+00 -0.74697940838385D-17 + 2 11 2 37 0.14062091422061D+00 0.15908064673570D-15 + 3 11 2 37 0.32100479112210D+00 0.33116346276008D-16 + 1 12 2 37 -0.17278320948682D+02 0.11631320026635D-16 + 2 12 2 37 -0.28264265805571D+02 -0.58748683234496D-16 + 3 12 2 37 0.17165288984837D+02 -0.26648655706672D-16 + 1 13 2 37 -0.24383583027038D-01 0.45810930454133D-17 + 2 13 2 37 0.24725792597651D+00 -0.11671068228629D-15 + 3 13 2 37 0.33719155066212D-01 0.10689927267139D-16 + 1 14 2 37 -0.45844438789842D+00 -0.98074303265651D-17 + 2 14 2 37 -0.36210767937227D+00 -0.16777721632472D-16 + 3 14 2 37 0.49654295837348D+00 -0.86533243834063D-17 + 1 15 2 37 -0.33570155248116D+00 0.68710668982777D-19 + 2 15 2 37 0.15825920575420D+00 -0.10513691878244D-15 + 3 15 2 37 -0.34900987509091D+00 0.81837370293943D-17 + 1 16 2 37 -0.19847109189108D+00 0.41818278484334D-18 + 2 16 2 37 -0.42455260074796D+00 -0.91161742472876D-16 + 3 16 2 37 -0.27412291065955D-01 -0.49609501015790D-16 + 1 17 2 37 0.31446947372534D+01 0.62657895708167D-18 + 2 17 2 37 -0.31976530388552D+01 -0.11330563877552D-16 + 3 17 2 37 0.12966080702833D+01 -0.20191584264840D-16 + 1 18 2 37 0.69182942504180D-01 -0.70101293422822D-18 + 2 18 2 37 -0.15174463442924D+00 0.17563463042453D-15 + 3 18 2 37 0.10708464478094D-01 -0.13405862922591D-16 + 1 19 2 37 -0.29337777170518D+01 -0.11985221587353D-17 + 2 19 2 37 -0.29999172970670D+01 0.30250996974912D-16 + 3 19 2 37 0.14062279707536D+01 0.34660927493901D-16 + 1 20 2 37 0.89658032623899D-01 0.17898716554151D-17 + 2 20 2 37 -0.21577894633812D+00 0.28732434608854D-15 + 3 20 2 37 -0.10356682372426D+00 -0.60914879253826D-16 + 1 21 2 37 -0.31254481327735D+01 0.33322693108764D-19 + 2 21 2 37 -0.30979715045097D+01 -0.78620730170834D-16 + 3 21 2 37 -0.12144881578439D+01 0.25112742744552D-16 + 1 22 2 37 0.82013102129496D-01 -0.91840249439910D-18 + 2 22 2 37 0.62293770665092D+00 0.82741012345723D-16 + 3 22 2 37 -0.93257181798682D+00 0.30348806014460D-16 + 1 23 2 37 0.28728526686265D+01 -0.19080180097598D-17 + 2 23 2 37 -0.28762227844451D+01 0.60828366083051D-16 + 3 23 2 37 -0.13163110477181D+01 -0.89573184200528D-16 + 1 24 2 37 0.13752406199399D+02 -0.37000592626845D-16 + 2 24 2 37 -0.25987538274335D+02 -0.11636878251485D-15 + 3 24 2 37 0.14890393670092D+02 0.96479868741061D-18 + 1 25 2 37 -0.27657730932820D+00 0.31324999359598D-17 + 2 25 2 37 0.16887509052891D+00 -0.20971738284302D-15 + 3 25 2 37 0.13763729246429D+00 0.27893231510498D-16 + 1 26 2 37 0.38269152990935D+00 0.17426833386838D-16 + 2 26 2 37 0.66408895613076D+00 -0.21145075698537D-16 + 3 26 2 37 0.32807006299279D+00 -0.19666639877447D-16 + 1 27 2 37 0.47848284343539D+00 -0.24792426797897D-17 + 2 27 2 37 -0.42400915340020D+00 0.21254071889649D-15 + 3 27 2 37 0.48351314694592D+00 -0.27901171704351D-16 + 1 28 2 37 0.30252389954018D+00 0.30525840880740D-16 + 2 28 2 37 0.18304592510120D+00 -0.89739356247927D-16 + 3 28 2 37 -0.28358065322038D+00 -0.71650574125356D-17 + 1 29 2 37 0.47241760155955D+00 -0.22296969339089D-16 + 2 29 2 37 -0.71530023363884D+00 -0.18171579991057D-15 + 3 29 2 37 0.44706759951065D+00 0.16871562416681D-16 + 1 30 2 37 0.29992653005327D+00 0.97080307009276D-16 + 2 30 2 37 -0.38401237108067D+00 0.18055644375367D-15 + 3 30 2 37 0.34588094598482D+00 0.14654875211282D-16 + 1 31 2 37 -0.53470638894170D-01 -0.29801982434101D-17 + 2 31 2 37 0.20857800944944D+00 -0.62707818084214D-16 + 3 31 2 37 0.38181601510457D-01 -0.50056212069575D-17 + 1 32 2 37 0.94007595960361D-02 0.23504274399333D-17 + 2 32 2 37 0.62991047216482D-01 0.23692308507948D-16 + 3 32 2 37 -0.12637881894937D+01 -0.43487729964666D-17 + 1 33 2 37 0.24461857082303D-02 -0.14512486137327D-17 + 2 33 2 37 -0.20671006593298D+00 -0.51203997420850D-17 + 3 33 2 37 0.34358997781744D-01 0.22840993335546D-17 + 1 34 2 37 -0.50822928074397D-01 0.74584139576964D-18 + 2 34 2 37 -0.84272004536129D-01 -0.65531101140684D-18 + 3 34 2 37 -0.12262395208868D-01 0.00000000000000D+00 + 1 35 2 37 -0.50187471622119D-01 -0.67975467796780D-18 + 2 35 2 37 -0.67269915365610D-01 -0.48390917296014D-17 + 3 35 2 37 0.50182227588191D-01 -0.16815756593784D-18 + 1 36 2 37 0.20095775691119D-01 0.10655696360109D-19 + 2 36 2 37 -0.29997582769306D+00 -0.95010110816970D-18 + 3 36 2 37 -0.63860397410480D-01 0.12740328046136D-17 + 1 37 2 37 0.10712478210701D+01 0.00000000000000D+00 + 2 37 2 37 0.12361603940764D+03 0.00000000000000D+00 + 3 37 2 37 -0.62995371830231D+00 0.00000000000000D+00 + 1 38 2 37 0.19346501631644D-01 -0.15467348009602D-17 + 2 38 2 37 0.14254411493811D+00 -0.48725771563382D-17 + 3 38 2 37 -0.31054074968616D-02 -0.52154435131650D-17 + 1 39 2 37 -0.31754131344404D-01 -0.10241245769950D-17 + 2 39 2 37 -0.38525272769522D+00 -0.23875272199963D-18 + 3 39 2 37 0.17871430495605D-01 -0.21635589063912D-17 + 1 40 2 37 0.50891363746346D+00 0.41175604962000D-16 + 2 40 2 37 -0.44735271654360D+00 -0.27203917644346D-16 + 3 40 2 37 -0.48027594224421D+00 -0.12692854175800D-16 + 1 41 2 37 -0.20626483504752D-02 -0.41297805484548D-16 + 2 41 2 37 0.29691473446176D+00 -0.17055998936628D-15 + 3 41 2 37 -0.54559282343331D-01 0.23230236035303D-17 + 1 42 2 37 0.35986694257034D+00 -0.14250281803621D-16 + 2 42 2 37 0.10626880733349D+00 0.15580530322746D-16 + 3 42 2 37 0.30197170554672D+00 0.23938083722701D-17 + 1 43 2 37 0.80045650826027D+00 0.10036255128871D-16 + 2 43 2 37 -0.60193948425332D+00 0.43536663539439D-17 + 3 43 2 37 -0.68264261748262D+00 0.38804910167456D-16 + 1 44 2 37 0.29022933731613D+00 0.36330379984376D-16 + 2 44 2 37 0.53072023251007D+00 -0.13952045964566D-15 + 3 44 2 37 -0.21799906534147D+00 0.49099613072572D-19 + 1 45 2 37 0.59936482346722D+00 0.46047122952111D-17 + 2 45 2 37 -0.50047434236650D+00 0.21166846718689D-15 + 3 45 2 37 -0.61055482526110D+00 -0.16363442075042D-16 + 1 46 2 37 0.16629379756977D+02 0.16089314284900D-16 + 2 46 2 37 -0.27760819090572D+02 -0.21470634264886D-15 + 3 46 2 37 -0.17524480964126D+02 -0.19952685078334D-16 + 1 47 2 37 -0.37197994347043D+00 0.36267849376610D-17 + 2 47 2 37 0.12834338893619D+00 0.47006955374616D-16 + 3 47 2 37 -0.26868741007232D+00 0.96675672891042D-16 + 1 48 2 37 0.34258093331183D-01 -0.44688204554402D-17 + 2 48 2 37 -0.23088084729193D+00 -0.38103108632981D-16 + 3 48 2 37 -0.49290147573132D-01 0.27732402743229D-17 + 1 49 2 37 -0.10356308707008D+00 -0.74032240641634D-17 + 2 49 2 37 -0.28160457200432D+00 0.27690166782034D-15 + 3 49 2 37 0.59446261974187D-01 -0.30168889757922D-17 + 1 50 2 37 -0.62056743571325D-02 0.11859382292265D-16 + 2 50 2 37 0.81365140915615D+00 -0.20377342104079D-15 + 3 50 2 37 0.87950895163831D+00 0.45720694746399D-18 + 1 51 2 37 -0.46389530140492D-01 -0.45983962239056D-17 + 2 51 2 37 -0.19250859648881D+00 0.50109863493414D-16 + 3 51 2 37 -0.16359920195150D+00 -0.20993950308450D-18 + 1 52 2 37 0.12999869291335D+01 0.88478558087179D-17 + 2 52 2 37 -0.31939237968509D+01 0.78046151292874D-16 + 3 52 2 37 0.34661093519879D+01 -0.25374300438445D-18 + 1 53 2 37 -0.14258506103839D+01 0.34460587666635D-16 + 2 53 2 37 -0.32389323475908D+01 0.31820055207026D-15 + 3 53 2 37 -0.32724273548708D+01 0.15339418812122D-17 + 1 54 2 37 0.12828034165548D+01 0.11462724814537D-16 + 2 54 2 37 -0.28512247146025D+01 0.48212468770101D-15 + 3 54 2 37 -0.28992922123548D+01 -0.26817964311034D-17 + 1 55 2 37 -0.14257686930433D+01 0.20378982843872D-16 + 2 55 2 37 -0.31083248747393D+01 0.35909675483079D-17 + 3 55 2 37 0.28968247934279D+01 -0.54900046324044D-17 + 1 56 2 37 -0.49922300162289D+00 0.22342597452094D-16 + 2 56 2 37 -0.87879839587780D+00 -0.23196047179014D-15 + 3 56 2 37 -0.76511502303096D-01 0.27704139989602D-16 + 1 57 2 37 -0.20300347704440D+00 -0.45743352895337D-16 + 2 57 2 37 0.15727104241103D+00 0.22321710513089D-15 + 3 57 2 37 0.27594970481658D+00 -0.30959943122274D-16 + 1 58 2 37 -0.10458857416864D+00 0.29841973337242D-16 + 2 58 2 37 0.37092861818659D+00 0.14966882786092D-15 + 3 58 2 37 -0.24018265599631D+00 0.31803219637517D-16 + 1 59 2 37 -0.50130163375714D+00 -0.33002816556913D-17 + 2 59 2 37 -0.37587517196716D+00 0.39112884481744D-16 + 3 59 2 37 -0.44375316277967D+00 -0.19239500083021D-16 + 1 60 2 37 0.78293220003702D+00 0.12486842822643D-17 + 2 60 2 37 -0.18536809697928D+00 -0.26577937424386D-16 + 3 60 2 37 -0.71273818903615D+00 0.30268910372671D-16 + 1 61 2 37 -0.14657072719820D+02 0.66401301619378D-16 + 2 61 2 37 -0.25763641485448D+02 -0.77649118162324D-16 + 3 61 2 37 -0.13670665622604D+02 0.88396471681736D-17 + 1 62 2 37 -0.28684620462766D+00 0.22834262433947D-16 + 2 62 2 37 -0.85893846018712D-01 0.32211924845188D-16 + 3 62 2 37 -0.14952538593818D+00 0.21748541711067D-16 + 1 63 2 37 -0.27707858760759D+00 0.32213526467217D-18 + 2 63 2 37 0.58598536914088D+00 0.25399998291381D-15 + 3 63 2 37 -0.34701699078133D+00 -0.12090692510585D-17 + 1 64 2 37 -0.62533824397710D+00 0.37736140671904D-16 + 2 64 2 37 0.11911326321254D+00 0.39450753215840D-16 + 3 64 2 37 0.25725218217313D+00 0.12630913708014D-16 + 1 65 2 37 0.22032006338683D+00 0.34811662716512D-17 + 2 65 2 37 0.12730033657658D+00 -0.39391608874371D-16 + 3 65 2 37 -0.17334651597392D+00 0.63340217940688D-18 + 1 1 3 37 -0.31565116753994D+01 0.17280449327810D-17 + 2 1 3 37 0.14939482683633D+01 -0.30429613831540D-16 + 3 1 3 37 -0.31160979668871D+01 0.34873704446721D-16 + 1 2 3 37 0.35866822654581D+01 -0.12605390327668D-16 + 2 2 3 37 0.12650830491787D+01 -0.34807001160816D-17 + 3 2 3 37 -0.32056288879744D+01 0.31071383938949D-15 + 1 3 3 37 0.21810506358726D+00 0.14117359367726D-17 + 2 3 3 37 -0.56988572847707D-01 0.65009433174819D-17 + 3 3 3 37 -0.42455260074796D+00 -0.19730600469641D-15 + 1 4 3 37 -0.99376337698370D-01 -0.74061554985619D-17 + 2 4 3 37 0.10250397564470D+00 0.32609136767645D-17 + 3 4 3 37 -0.20308108836415D+00 -0.17269295587972D-15 + 1 5 3 37 0.39313346883589D+01 -0.45786186905192D-17 + 2 5 3 37 0.26312833464488D+00 0.20550596590304D-16 + 3 5 3 37 -0.50448506524644D+01 0.10356123879810D-15 + 1 6 3 37 -0.30926262122503D+01 -0.17932589390841D-17 + 2 6 3 37 -0.12001748544478D+01 0.30032473979687D-16 + 3 6 3 37 -0.29700809879205D+01 -0.24322918253317D-15 + 1 7 3 37 -0.12521758778296D+00 -0.54636004048646D-18 + 2 7 3 37 -0.16403408343850D+00 -0.23863547458210D-17 + 3 7 3 37 -0.26027564892998D+00 -0.77965032136020D-16 + 1 8 3 37 0.10929782699040D+00 -0.18356313073114D-17 + 2 8 3 37 -0.14001481061544D+00 0.21695336395744D-16 + 3 8 3 37 -0.21619915347569D+00 0.21872785317836D-15 + 1 9 3 37 0.50546147913438D+00 -0.32561148805598D-17 + 2 9 3 37 0.33310674753368D+00 0.18546427947075D-16 + 3 9 3 37 -0.29938558297942D+00 -0.13675622157276D-15 + 1 10 3 37 -0.30327908922070D+00 -0.15300925472571D-17 + 2 10 3 37 0.29456117170829D+00 0.83824028327434D-17 + 3 10 3 37 0.17730212355830D+00 0.86250357281698D-16 + 1 11 3 37 0.34033249671594D+00 -0.26286176603764D-16 + 2 11 3 37 0.36794478809992D+00 0.33116346276008D-16 + 3 11 3 37 0.54540329466192D+00 -0.13485946540474D-15 + 1 12 3 37 0.15049561448618D+02 -0.66964899172877D-17 + 2 12 3 37 0.17191015790917D+02 -0.26648655706672D-16 + 3 12 3 37 -0.26971487657406D+02 0.92986941196741D-16 + 1 13 3 37 0.34099467511327D-01 0.33470845191569D-16 + 2 13 3 37 0.22788356494316D-01 0.10689927267139D-16 + 3 13 3 37 0.26068217900466D+00 0.13189576673822D-15 + 1 14 3 37 0.47955481610335D+00 0.18895604617661D-16 + 2 14 3 37 0.51072631933867D+00 -0.86533243834063D-17 + 3 14 3 37 -0.79391920416359D+00 -0.14104449273286D-15 + 1 15 3 37 0.33741997843478D+00 0.21215124520652D-18 + 2 15 3 37 -0.28740111017937D+00 0.81837370293943D-17 + 3 15 3 37 0.15499804625748D+00 0.33853778358269D-15 + 1 16 3 37 0.21515632650469D+00 -0.39042713900760D-17 + 2 16 3 37 0.57395443418605D-01 -0.49609501015790D-16 + 3 16 3 37 0.10115026623173D+00 0.13918625669894D-16 + 1 17 3 37 0.12509741864495D+01 0.10120480883549D-15 + 2 17 3 37 -0.11229219114031D+01 -0.20191584264840D-16 + 3 17 3 37 0.31297097965360D+01 0.26043613816439D-16 + 1 18 3 37 -0.16758652877981D+00 0.15339759779779D-16 + 2 18 3 37 -0.19848275994538D+00 -0.13405862922591D-16 + 3 18 3 37 0.92045836170674D-01 -0.29946672008093D-16 + 1 19 3 37 -0.16276630588903D+01 -0.61850619892563D-16 + 2 19 3 37 -0.14062279707536D+01 0.34660927493901D-16 + 3 19 3 37 0.28299399254470D+01 0.56554227968818D-16 + 1 20 3 37 0.93528066163432D-01 -0.86291044858657D-16 + 2 20 3 37 0.15415690230455D+00 -0.60914879253826D-16 + 3 20 3 37 0.54598954673176D-01 -0.21027603967184D-16 + 1 21 3 37 0.14160356266369D+01 0.19284197463406D-16 + 2 21 3 37 0.14307103494987D+01 0.25112742744552D-16 + 3 21 3 37 0.30102194717558D+01 -0.18477568852978D-16 + 1 22 3 37 0.27447155986461D-01 -0.20999772320377D-17 + 2 22 3 37 -0.10691912141849D+01 0.30348806014460D-16 + 3 22 3 37 0.12432638468928D+01 -0.87950301502093D-16 + 1 23 3 37 -0.12748485259548D+01 0.97467295401939D-17 + 2 23 3 37 0.10021922192644D+01 -0.89573184200528D-16 + 3 23 3 37 0.28933820724064D+01 0.32538770187177D-16 + 1 24 3 37 -0.14083423636586D+02 -0.43232857695855D-16 + 2 24 3 37 0.14783799473417D+02 0.96479868741061D-18 + 3 24 3 37 -0.26651846455054D+02 0.35936702654880D-15 + 1 25 3 37 -0.26928149076514D+00 0.63335912202647D-16 + 2 25 3 37 0.23445931572647D+00 0.27893231510498D-16 + 3 25 3 37 0.34107393969036D+00 0.19228858670288D-16 + 1 26 3 37 0.36011376274162D+00 -0.13581738890443D-16 + 2 26 3 37 0.29133872444977D+00 -0.19666639877447D-16 + 3 26 3 37 0.14604195947365D+00 -0.27001750255682D-15 + 1 27 3 37 -0.41780254090830D+00 0.47475051188481D-17 + 2 27 3 37 0.48020796007542D+00 -0.27901171704351D-16 + 3 27 3 37 -0.51011838563335D+00 0.72646376324067D-15 + 1 28 3 37 -0.30221072566819D+00 -0.21236888730713D-16 + 2 28 3 37 -0.44990739332757D+00 -0.71650574125356D-17 + 3 28 3 37 0.40863253993531D+00 0.40365392485384D-16 + 1 29 3 37 -0.39126828577219D+00 -0.85837930174632D-16 + 2 29 3 37 0.44826197649394D+00 0.16871562416681D-16 + 3 29 3 37 -0.55512387936140D+00 -0.48841283409629D-16 + 1 30 3 37 -0.31903292504865D+00 0.13410209192340D-16 + 2 30 3 37 0.57215740886046D+00 0.14654875211282D-16 + 3 30 3 37 -0.87452191548158D+00 -0.21682648493011D-15 + 1 31 3 37 -0.19633221284502D-01 0.30851320073156D-16 + 2 31 3 37 0.13890585649113D+00 -0.50056212069575D-17 + 3 31 3 37 0.22596097662279D+00 -0.53069770957883D-16 + 1 32 3 37 -0.37629163850709D-01 0.13849651016577D-16 + 2 32 3 37 0.10028054761513D+01 -0.43487729964666D-17 + 3 32 3 37 0.10020919058717D+01 0.99893313087649D-18 + 1 33 3 37 -0.46994349775083D-01 -0.35397979105080D-18 + 2 33 3 37 0.40416366528409D-01 0.22840993335546D-17 + 3 33 3 37 -0.31749180709190D+00 0.47194403948032D-17 + 1 34 3 37 0.53321962162254D-01 0.37635113882709D-18 + 2 34 3 37 -0.25872687761077D-01 0.00000000000000D+00 + 3 34 3 37 -0.95554353237722D-01 -0.65627662411941D-17 + 1 35 3 37 0.36046341819235D-01 0.51662567979117D-18 + 2 35 3 37 -0.11411960095221D+00 -0.16815756593784D-18 + 3 35 3 37 0.15513921470717D+01 -0.32567805342637D-17 + 1 36 3 37 -0.80488204615407D-03 -0.18895735715417D-17 + 2 36 3 37 0.75794711745998D-01 0.12740328046136D-17 + 3 36 3 37 -0.36966588801675D+00 0.91120239522060D-17 + 1 37 3 37 -0.34256587073389D+01 0.00000000000000D+00 + 2 37 3 37 -0.62995371830231D+00 0.00000000000000D+00 + 3 37 3 37 0.12277108058833D+03 0.00000000000000D+00 + 1 38 3 37 -0.19049686090145D+00 0.35234345635876D-18 + 2 38 3 37 0.52128788298786D-01 -0.52154435131650D-17 + 3 38 3 37 0.14254411493811D+00 0.93424100148462D-17 + 1 39 3 37 -0.36501365675269D-02 0.35006706939782D-19 + 2 39 3 37 0.27708198192498D-02 -0.21635589063912D-17 + 3 39 3 37 -0.25609173438377D+00 0.80499952747101D-18 + 1 40 3 37 0.45618244863945D+00 -0.17741463753980D-16 + 2 40 3 37 -0.47710773077175D+00 -0.12692854175800D-16 + 3 40 3 37 -0.80735361833169D+00 -0.19679659944492D-16 + 1 41 3 37 0.84150502029033D-02 0.11267635184491D-16 + 2 41 3 37 0.18427734937984D-01 0.23230236035303D-17 + 3 41 3 37 0.29520040261450D+00 0.82730251279995D-16 + 1 42 3 37 -0.17548457128181D+00 0.17338867003772D-16 + 2 42 3 37 0.18019124741021D+00 0.23938083722701D-17 + 3 42 3 37 0.31305621381476D-01 0.24483301455675D-15 + 1 43 3 37 0.51417559201221D+00 0.32330588543688D-16 + 2 43 3 37 -0.69117859893013D+00 0.38804910167456D-16 + 3 43 3 37 -0.37756417728968D+00 0.11410670078389D-15 + 1 44 3 37 -0.35239402038778D+00 0.14888425656141D-17 + 2 44 3 37 -0.29567997302833D+00 0.49099613072572D-19 + 3 44 3 37 0.19045136784063D+00 -0.36638387935336D-16 + 1 45 3 37 0.51547249503314D+00 0.21337766374235D-16 + 2 45 3 37 -0.59930329214814D+00 -0.16363442075042D-16 + 3 45 3 37 -0.51190641997774D+00 0.13847603114602D-15 + 1 46 3 37 0.14835666597383D+02 -0.26874153638677D-16 + 2 46 3 37 -0.18445644366106D+02 -0.19952685078334D-16 + 3 46 3 37 -0.26885952984624D+02 -0.16644397393011D-15 + 1 47 3 37 0.23104945061832D+00 -0.37707944132787D-16 + 2 47 3 37 0.16842214387474D+00 0.96675672891042D-16 + 3 47 3 37 0.27420601099830D+00 -0.16855219725299D-15 + 1 48 3 37 -0.42487475494265D-01 -0.23526463914850D-16 + 2 48 3 37 0.21360777461598D-02 0.27732402743229D-17 + 3 48 3 37 -0.26792518326819D+00 -0.12057219233527D-15 + 1 49 3 37 -0.13471322032932D+00 0.20521223165547D-16 + 2 49 3 37 0.11291188076494D+00 -0.30168889757922D-17 + 3 49 3 37 -0.17065132479147D+00 -0.28382921246118D-15 + 1 50 3 37 0.25019036966430D+00 0.26710645576182D-16 + 2 50 3 37 -0.99491676041998D+00 0.45720694746399D-18 + 3 50 3 37 -0.11649945096036D+01 0.42026028547077D-15 + 1 51 3 37 0.43402375418691D-01 0.37391478991471D-17 + 2 51 3 37 -0.15173137220634D+00 -0.20993950308450D-18 + 3 51 3 37 -0.14082776768839D+00 0.24462880159758D-15 + 1 52 3 37 -0.12892733219551D+01 -0.24473112224353D-16 + 2 52 3 37 0.30631974865687D+01 -0.25374300438445D-18 + 3 52 3 37 -0.31939237968509D+01 0.32947137685662D-16 + 1 53 3 37 -0.14131179231745D+01 0.19110275412087D-16 + 2 53 3 37 -0.32598618654776D+01 0.15339418812122D-17 + 3 53 3 37 -0.29903000869573D+01 -0.15570218781925D-15 + 1 54 3 37 0.12138580036775D+01 0.15834349154545D-16 + 2 54 3 37 -0.29073230193539D+01 -0.26817964311034D-17 + 3 54 3 37 -0.27516318762314D+01 -0.68729288225538D-16 + 1 55 3 37 0.16200999420939D+01 -0.76301458865005D-17 + 2 55 3 37 0.28968247934279D+01 -0.54900046324044D-17 + 3 55 3 37 -0.28486160486720D+01 0.51308334953535D-16 + 1 56 3 37 -0.35059274663601D+00 -0.40041143420920D-17 + 2 56 3 37 -0.23675050006731D+00 0.27704139989602D-16 + 3 56 3 37 -0.62129055617946D+00 0.11964382800753D-15 + 1 57 3 37 -0.29686620036029D+00 0.20135296739046D-16 + 2 57 3 37 0.32225879136919D+00 -0.30959943122274D-16 + 3 57 3 37 0.22912581400824D+00 -0.11980542371824D-15 + 1 58 3 37 0.17540967717463D+00 -0.18969927249442D-16 + 2 58 3 37 -0.20826631690892D+00 0.31803219637517D-16 + 3 58 3 37 0.53148809985973D+00 -0.80474098072639D-16 + 1 59 3 37 -0.36482159917444D+00 -0.27715406231350D-16 + 2 59 3 37 -0.46614700581314D+00 -0.19239500083021D-16 + 3 59 3 37 -0.91736458850017D+00 0.12600008653111D-15 + 1 60 3 37 -0.83325922317388D+00 0.16620950444963D-16 + 2 60 3 37 -0.37174795431053D-01 0.30268910372671D-16 + 3 60 3 37 0.10055228481423D+01 -0.18517653996226D-15 + 1 61 3 37 -0.14117436603271D+02 0.36086514073938D-16 + 2 61 3 37 -0.13709035226119D+02 0.88396471681736D-17 + 3 61 3 37 -0.25536535365739D+02 0.17137667019012D-15 + 1 62 3 37 -0.52165191449956D+00 -0.78886961661799D-17 + 2 62 3 37 -0.43526276143987D+00 0.21748541711067D-16 + 3 62 3 37 -0.60975442156202D+00 -0.72991233235155D-16 + 1 63 3 37 0.35138773653670D+00 0.10199976207994D-16 + 2 63 3 37 -0.37492435584405D+00 -0.12090692510585D-17 + 3 63 3 37 0.20982897868919D+00 0.25990376312729D-16 + 1 64 3 37 0.93202794916057D+00 -0.86728313711696D-16 + 2 64 3 37 0.82337808285108D+00 0.12630913708014D-16 + 3 64 3 37 -0.84622544378207D+00 -0.80108458391443D-16 + 1 65 3 37 0.93420599972229D-01 0.30225080577353D-17 + 2 65 3 37 -0.62265338893122D-01 0.63340217940688D-18 + 3 65 3 37 -0.31062896647660D+00 0.64925490051804D-15 + 1 1 1 38 -0.21100302837231D+00 0.22043248980788D-15 + 2 1 1 38 0.25560236999468D-01 -0.48404725827569D-16 + 3 1 1 38 -0.18875194431667D+00 0.54739330522562D-17 + 1 2 1 38 -0.35729967959954D+00 0.38837713942680D-16 + 2 2 1 38 0.25898368449814D+00 -0.79624483144897D-16 + 3 2 1 38 0.21810506358726D+00 0.55458028481964D-18 + 1 3 1 38 -0.29895125632169D+01 0.19049835291300D-15 + 2 3 1 38 -0.16276630588903D+01 -0.87577259002665D-16 + 3 3 1 38 0.29337777170518D+01 0.11583305899942D-17 + 1 4 1 38 -0.30112724456128D+01 -0.40347041033520D-16 + 2 4 1 38 0.14136220409059D+01 0.69040497368769D-16 + 3 4 1 38 -0.32825700744195D+01 0.71067943023706D-18 + 1 5 1 38 -0.14227691375252D+00 0.49921666019919D-16 + 2 5 1 38 0.55458505988008D+00 -0.66448029635110D-16 + 3 5 1 38 -0.63788193896406D+00 0.10173113401916D-16 + 1 6 1 38 -0.20285354699657D+00 -0.55804761201668D-16 + 2 6 1 38 0.14764773017077D+00 0.54774260452254D-16 + 3 6 1 38 -0.21870410963721D-01 -0.53102309133507D-19 + 1 7 1 38 -0.29233488661134D+01 0.14316932490556D-15 + 2 7 1 38 -0.17402778573232D+01 -0.33428977393353D-16 + 3 7 1 38 -0.28846658458855D+01 -0.16185289119086D-18 + 1 8 1 38 -0.29596538007428D+01 -0.96933984571774D-16 + 2 8 1 38 0.12343771874599D+01 -0.30256012256975D-16 + 3 8 1 38 0.32008726391262D+01 0.49916635852516D-18 + 1 9 1 38 -0.27427711397607D+02 -0.10644665508403D-15 + 2 9 1 38 -0.15029971305918D+02 -0.10734080061764D-17 + 3 9 1 38 0.17262832939096D+02 -0.34452124441730D-16 + 1 10 1 38 0.15998648080420D+00 0.50934117616373D-16 + 2 10 1 38 0.29407440653503D+00 0.34831061520749D-16 + 3 10 1 38 0.27827078820674D+00 -0.37434912468667D-16 + 1 11 1 38 0.21075421480058D+00 0.27180876740924D-16 + 2 11 1 38 -0.42014911564415D+00 0.25377468617069D-16 + 3 11 1 38 -0.31360025830505D+00 0.65030733317830D-16 + 1 12 1 38 -0.83310310466002D+00 -0.27936167834033D-16 + 2 12 1 38 -0.62977614684491D+00 0.23624331475471D-16 + 3 12 1 38 0.49860176723086D+00 0.35303095351051D-16 + 1 13 1 38 0.50220923755585D+00 0.62975482864348D-16 + 2 13 1 38 -0.29075513625974D+00 0.17700920043454D-16 + 3 13 1 38 0.32830750008271D+00 0.63086174499346D-17 + 1 14 1 38 -0.40570463124968D+00 0.14000454058867D-15 + 2 14 1 38 -0.45282468874007D+00 -0.14216979862258D-17 + 3 14 1 38 0.46794458107698D+00 0.21682730009652D-16 + 1 15 1 38 0.25512738324407D+00 -0.18246240603058D-15 + 2 15 1 38 -0.25033869836144D-01 -0.88746119880092D-18 + 3 15 1 38 0.35339012791915D-01 -0.37470103503837D-16 + 1 16 1 38 -0.32291832719729D+01 -0.23597415024548D-15 + 2 16 1 38 -0.35866822654581D+01 0.28436224991202D-17 + 3 16 1 38 0.12574855522480D+01 -0.67646016570565D-16 + 1 17 1 38 -0.23629068496629D+00 -0.10650577596015D-15 + 2 17 1 38 0.11720523352892D+00 0.00000000000000D+00 + 3 17 1 38 0.10296464443796D+00 -0.27807601231463D-16 + 1 18 1 38 -0.29694333512828D+01 -0.22744373124045D-15 + 2 18 1 38 0.31188104911044D+01 -0.86463281786974D-19 + 3 18 1 38 -0.13216691511330D+01 0.49633586872005D-16 + 1 19 1 38 -0.35757345629169D+00 0.52711006358231D-17 + 2 19 1 38 -0.19847109189108D+00 -0.29821285336977D-17 + 3 19 1 38 -0.21515632650469D+00 0.86832516831254D-16 + 1 20 1 38 -0.29949756481198D+01 -0.81784950809619D-17 + 2 20 1 38 0.30971891017044D+01 0.34783036968134D-18 + 3 20 1 38 0.11971059792642D+01 -0.66312412741065D-17 + 1 21 1 38 -0.23994603525543D+00 0.57813201798381D-16 + 2 21 1 38 -0.65890303523438D-01 0.26638483125060D-17 + 3 21 1 38 0.89465979828500D-01 0.38397134048614D-16 + 1 22 1 38 -0.30338589403061D+01 0.16182226212259D-15 + 2 22 1 38 -0.46171555433879D+01 -0.24018571042388D-17 + 3 22 1 38 -0.17512457825153D+00 0.82300522151208D-16 + 1 23 1 38 -0.20352226633814D+00 -0.22517994436169D-15 + 2 23 1 38 0.36582342768196D-01 -0.44182240443128D-17 + 3 23 1 38 -0.14350644613521D+00 0.10354983198359D-15 + 1 24 1 38 -0.84916661268428D+00 -0.13351947274721D-15 + 2 24 1 38 0.37718079151061D+00 0.79668472548438D-17 + 3 24 1 38 -0.47131622603680D+00 -0.18872530675426D-16 + 1 25 1 38 0.20558033360883D+00 0.60403325058504D-16 + 2 25 1 38 0.25207267195375D+00 -0.17925682478513D-16 + 3 25 1 38 0.34287793151198D+00 -0.47057489015815D-16 + 1 26 1 38 0.27295797963201D+00 0.12771274594085D-15 + 2 26 1 38 -0.39028506538331D+00 0.45587002505144D-17 + 3 26 1 38 -0.40294145954662D+00 0.20378602311528D-16 + 1 27 1 38 -0.25470941862985D+02 -0.11970001038311D-15 + 2 27 1 38 0.13940477087648D+02 -0.14055493041316D-17 + 3 27 1 38 -0.13516280332069D+02 -0.90517669285720D-16 + 1 28 1 38 0.25051017034733D+00 -0.94459010974361D-17 + 2 28 1 38 -0.23561371178645D-01 -0.31472648748765D-16 + 3 28 1 38 0.11479705400310D+00 -0.16013963639424D-16 + 1 29 1 38 -0.37941196594301D+00 -0.20771324039352D-15 + 2 29 1 38 0.32676665815978D+00 0.33018295983540D-16 + 3 29 1 38 -0.44374494864420D+00 -0.20925555587806D-16 + 1 30 1 38 -0.64234105542511D+00 -0.18695325192900D-15 + 2 30 1 38 0.38978028340426D+00 -0.24484240224539D-16 + 3 30 1 38 -0.42614734542216D+00 0.43133659750663D-16 + 1 31 1 38 0.44208024797584D+00 0.13312520066655D-15 + 2 31 1 38 0.41383561013825D+00 0.19573360908760D-16 + 3 31 1 38 -0.38566323318886D+00 -0.50424680817368D-16 + 1 32 1 38 -0.12969776100869D+00 0.14995594501007D-16 + 2 32 1 38 0.74074581612352D+00 0.71745936728042D-17 + 3 32 1 38 0.85317621194837D+00 -0.14852563161228D-16 + 1 33 1 38 -0.16720242091942D+00 -0.45231690236748D-18 + 2 33 1 38 0.38930185792206D-01 0.60552737528291D-18 + 3 33 1 38 -0.22811652599747D-01 -0.19779824975994D-18 + 1 34 1 38 -0.35562475976301D+00 -0.65247286250008D-19 + 2 34 1 38 -0.73118224368082D-01 -0.21932663488416D-17 + 3 34 1 38 0.19184240360456D-02 0.26245384963279D-17 + 1 35 1 38 -0.12290306718726D+00 -0.80269317837326D-17 + 2 35 1 38 0.12182195732168D-01 0.11428942527465D-17 + 3 35 1 38 -0.22596539548496D-01 -0.80033659576561D-19 + 1 36 1 38 -0.22583673303681D+00 0.42314307657924D-17 + 2 36 1 38 0.71182342370792D-01 0.38889131775597D-18 + 3 36 1 38 0.68881838386677D-01 0.32876277229015D-18 + 1 37 1 38 0.17064624383969D+01 0.42495998698577D-17 + 2 37 1 38 0.19346501631644D-01 0.15467348009602D-17 + 3 37 1 38 -0.19049686090145D+00 -0.35234345635876D-18 + 1 38 1 38 0.12287990253502D+03 0.00000000000000D+00 + 2 38 1 38 0.34256587073390D+01 0.00000000000000D+00 + 3 38 1 38 -0.10712478210700D+01 0.00000000000000D+00 + 1 39 1 38 -0.23816838007237D+00 0.12758121183621D-17 + 2 39 1 38 0.13933129234017D-02 0.16688229816379D-17 + 3 39 1 38 -0.18366634266786D-02 -0.21060230521168D-17 + 1 40 1 38 -0.49304833638928D+00 0.11711863303845D-15 + 2 40 1 38 0.35014435252327D+00 0.13655849812615D-16 + 3 40 1 38 0.43710435220490D+00 0.30071009072762D-16 + 1 41 1 38 0.36923994026915D+00 0.87018926574893D-16 + 2 41 1 38 0.33003961467011D+00 0.11494664613543D-16 + 3 41 1 38 0.26653682768796D+00 0.30540929935489D-16 + 1 42 1 38 0.81947051681335D-01 -0.52176093967301D-16 + 2 42 1 38 0.24610974420285D+00 -0.48556613393752D-16 + 3 42 1 38 -0.10295060887453D+00 0.72233980182312D-17 + 1 43 1 38 -0.50259411538244D+00 0.12009118853931D-16 + 2 43 1 38 0.27401375196434D+00 -0.17684535729830D-16 + 3 43 1 38 0.59033759901085D+00 -0.47212471667922D-16 + 1 44 1 38 0.18966302382550D+00 0.28086952712667D-15 + 2 44 1 38 -0.33632806315325D+00 -0.32036035998234D-16 + 3 44 1 38 0.23380228617192D+00 0.82678373005178D-16 + 1 45 1 38 -0.27140407075915D+02 0.15043007524429D-15 + 2 45 1 38 0.14248162262728D+02 -0.25057174119597D-16 + 3 45 1 38 0.14840802524424D+02 0.78755785656904D-17 + 1 46 1 38 -0.80985736801165D+00 0.27917619910213D-15 + 2 46 1 38 0.33968534256652D+00 -0.13451808853464D-16 + 3 46 1 38 0.35556774802706D+00 0.33581823005591D-17 + 1 47 1 38 0.62632122828490D+00 -0.15045391756356D-16 + 2 47 1 38 0.61070928979987D+00 0.19213588686262D-17 + 3 47 1 38 -0.21034855301275D+00 0.66254902437838D-17 + 1 48 1 38 0.28208267547113D-01 0.12242438450517D-16 + 2 48 1 38 0.18188827530425D+00 0.30587586909347D-16 + 3 48 1 38 -0.10915285207293D+00 -0.13789086026620D-16 + 1 49 1 38 0.17628049017314D-01 -0.14082462880967D-17 + 2 49 1 38 -0.72483235593101D-01 -0.26651312689961D-17 + 3 49 1 38 -0.67088866551376D-01 -0.31057449448208D-16 + 1 50 1 38 0.87836048719610D-01 0.50615107394901D-15 + 2 50 1 38 -0.68445111688902D+00 0.21781277909920D-16 + 3 50 1 38 -0.71809348402237D+00 0.26553670840492D-16 + 1 51 1 38 -0.40115266392886D-01 0.25860975676543D-16 + 2 51 1 38 -0.14432681694243D+00 -0.80619419126250D-17 + 3 51 1 38 0.15890958213720D+00 0.10991958967354D-16 + 1 52 1 38 0.29709267831613D+01 0.10291329575570D-15 + 2 52 1 38 0.16200999420939D+01 -0.28121706613636D-16 + 3 52 1 38 -0.14257686930433D+01 0.21765381725420D-16 + 1 53 1 38 0.31579413995747D+01 -0.94754761047101D-16 + 2 53 1 38 -0.11608650034962D+01 -0.98217371206375D-19 + 3 53 1 38 -0.11838219701199D+01 0.27704211081380D-16 + 1 54 1 38 0.30385091776968D+01 -0.11682723485428D-15 + 2 54 1 38 0.13146956625237D+01 -0.18514345845440D-17 + 3 54 1 38 0.11550108999979D+01 -0.34555044930627D-16 + 1 55 1 38 0.30681912205084D+01 -0.50730732566482D-17 + 2 55 1 38 -0.12999869291335D+01 -0.29805974572538D-16 + 3 55 1 38 0.12892733219551D+01 0.29873211469026D-16 + 1 56 1 38 -0.39640379417134D+00 0.42067247423920D-16 + 2 56 1 38 -0.63674313804244D+00 -0.18522759738915D-17 + 3 56 1 38 -0.59823138478369D+00 0.79672686450210D-16 + 1 57 1 38 0.27664613061127D+00 -0.12898713658025D-15 + 2 57 1 38 -0.26176467133669D-02 -0.31459028346076D-16 + 3 57 1 38 -0.11650839707677D-02 -0.14868329154890D-16 + 1 58 1 38 0.31422049400924D+00 -0.72586886560961D-16 + 2 58 1 38 -0.21516708156433D+00 -0.51362826505718D-16 + 3 58 1 38 0.29825601567531D-02 -0.12120588663534D-16 + 1 59 1 38 -0.45333922621259D+00 0.22871328099778D-17 + 2 59 1 38 -0.51501859925011D+00 -0.55407659806649D-18 + 3 59 1 38 -0.52535734949561D+00 0.39071720071951D-16 + 1 60 1 38 0.62025028896456D-02 -0.35509679619626D-16 + 2 60 1 38 0.53763771560463D-01 -0.28764080067433D-16 + 3 60 1 38 0.26522545003791D+00 -0.98387202883751D-17 + 1 61 1 38 -0.77717561802623D+00 0.73091688098700D-17 + 2 61 1 38 -0.44805328709033D+00 -0.17568771465528D-16 + 3 61 1 38 -0.48194379625109D+00 -0.26293828770597D-16 + 1 62 1 38 -0.27022189572521D+02 0.33056421248796D-15 + 2 62 1 38 -0.14558835678490D+02 -0.36535841235193D-17 + 3 62 1 38 -0.17380976115390D+02 0.84999980628014D-17 + 1 63 1 38 0.22931480882147D+00 -0.97199398889602D-16 + 2 63 1 38 0.35660563057979D+00 -0.21555062456000D-16 + 3 63 1 38 -0.32406161278394D+00 -0.33869553291907D-16 + 1 64 1 38 -0.50053457424163D+00 0.36583148625064D-15 + 2 64 1 38 -0.11023823220038D+01 0.43704885634664D-16 + 3 64 1 38 0.46103480457848D+00 -0.17727882264990D-16 + 1 65 1 38 -0.14478320412949D+00 -0.47588929535004D-17 + 2 65 1 38 0.73174246076915D-01 0.27987018515034D-16 + 3 65 1 38 -0.66647925942098D-01 -0.12270434395905D-16 + 1 1 2 38 0.16758652877981D+00 -0.48404725827569D-16 + 2 1 2 38 0.92045836170674D-01 0.33312652500823D-16 + 3 1 2 38 -0.19848275994538D+00 0.15599319135033D-16 + 1 2 2 38 -0.21515632650469D+00 -0.79624483144897D-16 + 2 2 2 38 0.10115026623173D+00 0.43443742752733D-16 + 3 2 2 38 0.56988572847706D-01 -0.35980103089578D-16 + 1 3 2 38 0.16276630588903D+01 -0.87577259002665D-16 + 2 3 2 38 0.28299399254470D+01 0.15711852031947D-16 + 3 3 2 38 -0.14062279707536D+01 -0.17812791355892D-16 + 1 4 2 38 -0.12509741864495D+01 0.69040497368769D-16 + 2 4 2 38 0.31297097965361D+01 -0.30308359910805D-16 + 3 4 2 38 -0.11229219114031D+01 -0.10210001357576D-16 + 1 5 2 38 -0.27447155986466D-01 -0.66448029635110D-16 + 2 5 2 38 0.12432638468928D+01 0.53055379820470D-16 + 3 5 2 38 -0.10691912141849D+01 0.27493358472444D-16 + 1 6 2 38 -0.93528066163433D-01 0.54774260452254D-16 + 2 6 2 38 0.54598954673188D-01 0.13870801591243D-16 + 3 6 2 38 0.15415690230455D+00 0.36669275240261D-16 + 1 7 2 38 0.12748485259548D+01 -0.33428977393353D-16 + 2 7 2 38 0.28933820724064D+01 -0.58499424881784D-16 + 3 7 2 38 0.10021922192644D+01 -0.23600313867343D-16 + 1 8 2 38 -0.14160356266369D+01 -0.30256012256975D-16 + 2 8 2 38 0.30102194717558D+01 -0.10735184234917D-16 + 3 8 2 38 0.14307103494987D+01 -0.18532925697774D-16 + 1 9 2 38 -0.15051561226099D+02 -0.10734080061764D-17 + 2 9 2 38 -0.26971487657406D+02 0.93111136681436D-16 + 3 9 2 38 0.17190403093691D+02 0.27389371437950D-16 + 1 10 2 38 0.30327908922069D+00 0.34831061520749D-16 + 2 10 2 38 0.17730212355825D+00 -0.33219491787686D-15 + 3 10 2 38 0.29456117170822D+00 -0.17025439684471D-16 + 1 11 2 38 -0.34033249671602D+00 0.25377468617069D-16 + 2 11 2 38 0.54540329466180D+00 0.90575291190026D-16 + 3 11 2 38 0.36794478809993D+00 -0.39056131612605D-16 + 1 12 2 38 -0.50563856021151D+00 0.23624331475471D-16 + 2 12 2 38 -0.29904993474147D+00 0.19333740078313D-15 + 3 12 2 38 0.33310674753374D+00 0.27567951871857D-16 + 1 13 2 38 -0.33703870689487D+00 0.17700920043454D-16 + 2 13 2 38 0.15499804625739D+00 -0.10600175854546D-15 + 3 13 2 38 -0.28725792961402D+00 -0.17856170083119D-16 + 1 14 2 38 -0.47955481610334D+00 -0.14216979862258D-17 + 2 14 2 38 -0.79391920416363D+00 0.18712745998596D-16 + 3 14 2 38 0.51072631933869D+00 -0.51942150955744D-17 + 1 15 2 38 -0.33953700215029D-01 -0.88746119880092D-18 + 2 15 2 38 0.26036168030253D+00 -0.89382121166742D-16 + 3 15 2 38 0.22788356494301D-01 -0.39489770188068D-18 + 1 16 2 38 -0.35866822654581D+01 0.28436224991202D-17 + 2 16 2 38 -0.32056288879745D+01 -0.25389310797019D-15 + 3 16 2 38 0.12650830491787D+01 -0.95133408410035D-16 + 1 17 2 38 0.99376337698373D-01 0.00000000000000D+00 + 2 17 2 38 -0.20308108836415D+00 -0.16259091362805D-15 + 3 17 2 38 0.10250397564470D+00 -0.68465896928899D-17 + 1 18 2 38 0.31565116753994D+01 -0.86463281786974D-19 + 2 18 2 38 -0.31160979668871D+01 0.63970199769117D-16 + 3 18 2 38 0.14939482683633D+01 0.99412361781335D-16 + 1 19 2 38 -0.21810506358726D+00 -0.29821285336977D-17 + 2 19 2 38 -0.42455260074796D+00 -0.18959084833396D-15 + 3 19 2 38 -0.57395443418603D-01 0.37300082255632D-16 + 1 20 2 38 0.30926262122503D+01 0.34783036968134D-18 + 2 20 2 38 -0.29700809879205D+01 0.23006132581855D-15 + 3 20 2 38 -0.12001748544478D+01 -0.97440046159176D-16 + 1 21 2 38 -0.10929782699043D+00 0.26638483125060D-17 + 2 21 2 38 -0.21619915347569D+00 -0.21446496918284D-15 + 3 21 2 38 -0.14001481061544D+00 0.11613338160374D-16 + 1 22 2 38 -0.39313346883593D+01 -0.24018571042388D-17 + 2 22 2 38 -0.50448506524644D+01 -0.25801019851469D-15 + 3 22 2 38 0.26312833464488D+00 -0.54412028484697D-16 + 1 23 2 38 0.12521758778296D+00 -0.44182240443128D-17 + 2 23 2 38 -0.26027564892998D+00 0.14694271110363D-15 + 3 23 2 38 -0.16403408343850D+00 0.58349277139220D-16 + 1 24 2 38 0.41780254090831D+00 0.79668472548438D-17 + 2 24 2 38 -0.51011838563335D+00 -0.52295387207018D-16 + 3 24 2 38 0.48020796007542D+00 0.32360606882528D-16 + 1 25 2 38 0.26928149076511D+00 -0.17925682478513D-16 + 2 25 2 38 0.34107393969036D+00 -0.28563589989294D-16 + 3 25 2 38 0.23445931572647D+00 0.15307848437812D-16 + 1 26 2 38 -0.36011376274168D+00 0.45587002505144D-17 + 2 26 2 38 0.14604195947365D+00 0.39968595547736D-16 + 3 26 2 38 0.29133872444978D+00 0.23669036163787D-16 + 1 27 2 38 0.14083423636587D+02 -0.14055493041316D-17 + 2 27 2 38 -0.26651846455054D+02 0.57250019760988D-16 + 3 27 2 38 0.14783799473417D+02 -0.54453249765207D-16 + 1 28 2 38 0.19633221284497D-01 -0.31472648748765D-16 + 2 28 2 38 0.22596097662279D+00 -0.94817446137441D-17 + 3 28 2 38 0.13890585649113D+00 -0.37116734141792D-17 + 1 29 2 38 0.39126828577214D+00 0.33018295983540D-16 + 2 29 2 38 -0.55512387936140D+00 -0.23850859686900D-16 + 3 29 2 38 0.44826197649394D+00 -0.15465809840271D-16 + 1 30 2 38 0.31903292504870D+00 -0.24484240224539D-16 + 2 30 2 38 -0.87452191548157D+00 0.25502913951479D-15 + 3 30 2 38 0.57215740886046D+00 0.14344162083369D-16 + 1 31 2 38 0.30221072566820D+00 0.19573360908760D-16 + 2 31 2 38 0.40863253993533D+00 -0.12942756570059D-15 + 3 31 2 38 -0.44990739332757D+00 -0.22303690026387D-16 + 1 32 2 38 0.37629163850712D-01 0.71745936728042D-17 + 2 32 2 38 0.10020919058717D+01 -0.90254499829618D-17 + 3 32 2 38 0.10028054761513D+01 -0.17154845493521D-17 + 1 33 2 38 -0.53321962162253D-01 0.60552737528291D-18 + 2 33 2 38 -0.95554353237722D-01 -0.57422591523553D-17 + 3 33 2 38 -0.25872687761076D-01 -0.81541015659286D-18 + 1 34 2 38 0.46994349775083D-01 -0.21932663488416D-17 + 2 34 2 38 -0.31749180709190D+00 -0.69520637066474D-17 + 3 34 2 38 0.40416366528409D-01 0.33271384337044D-17 + 1 35 2 38 -0.36046341819233D-01 0.11428942527465D-17 + 2 35 2 38 0.15513921470717D+01 0.84507748959974D-17 + 3 35 2 38 -0.11411960095221D+00 0.27728434441207D-17 + 1 36 2 38 0.80488204615408D-03 0.38889131775597D-18 + 2 36 2 38 -0.36966588801673D+00 -0.36365154230285D-17 + 3 36 2 38 0.75794711745998D-01 -0.29537873073155D-18 + 1 37 2 38 0.19049686090145D+00 0.15467348009602D-17 + 2 37 2 38 0.14254411493811D+00 0.48725771563382D-17 + 3 37 2 38 0.52128788298786D-01 0.52154435131650D-17 + 1 38 2 38 0.34256587073390D+01 0.00000000000000D+00 + 2 38 2 38 0.12277108058833D+03 0.00000000000000D+00 + 3 38 2 38 -0.62995371830209D+00 0.00000000000000D+00 + 1 39 2 38 0.36501365675337D-02 0.16688229816379D-17 + 2 39 2 38 -0.25609173438377D+00 -0.83206557660011D-18 + 3 39 2 38 0.27708198192497D-02 -0.21551368665511D-17 + 1 40 2 38 0.36482159917444D+00 0.13655849812615D-16 + 2 40 2 38 -0.91736458850017D+00 0.69248365874930D-16 + 3 40 2 38 -0.46614700581314D+00 -0.15290994550971D-16 + 1 41 2 38 0.29686620036028D+00 0.11494664613543D-16 + 2 41 2 38 0.22912581400824D+00 -0.13170352830049D-15 + 3 41 2 38 0.32225879136919D+00 0.38471565903130D-16 + 1 42 2 38 -0.17540967717463D+00 -0.48556613393752D-16 + 2 42 2 38 0.53148809985973D+00 0.13892309610922D-15 + 3 42 2 38 -0.20826631690893D+00 0.29996873189367D-16 + 1 43 2 38 0.35059274663601D+00 -0.17684535729830D-16 + 2 43 2 38 -0.62129055617945D+00 0.10428451593437D-15 + 3 43 2 38 -0.23675050006731D+00 -0.39168725729887D-16 + 1 44 2 38 -0.35138773653670D+00 -0.32036035998234D-16 + 2 44 2 38 0.20982897868919D+00 0.81813851487629D-16 + 3 44 2 38 -0.37492435584405D+00 0.84210096389062D-16 + 1 45 2 38 0.14117436603271D+02 -0.25057174119597D-16 + 2 45 2 38 -0.25536535365739D+02 0.22831309051114D-15 + 3 45 2 38 -0.13709035226119D+02 -0.34551239371399D-17 + 1 46 2 38 0.52165191449955D+00 -0.13451808853464D-16 + 2 46 2 38 -0.60975442156202D+00 0.21698997795351D-15 + 3 46 2 38 -0.43526276143987D+00 0.37629375189936D-16 + 1 47 2 38 0.83325922317388D+00 0.19213588686262D-17 + 2 47 2 38 0.10055228481423D+01 0.26979952507051D-15 + 3 47 2 38 -0.37174795431060D-01 0.25048900108623D-16 + 1 48 2 38 -0.43402375418691D-01 0.30587586909347D-16 + 2 48 2 38 -0.14082776768839D+00 -0.95440796455960D-16 + 3 48 2 38 -0.15173137220633D+00 -0.96714124466704D-19 + 1 49 2 38 0.13471322032933D+00 -0.26651312689961D-17 + 2 49 2 38 -0.17065132479147D+00 0.26305155835921D-15 + 3 49 2 38 0.11291188076494D+00 0.11461429018007D-17 + 1 50 2 38 -0.25019036966429D+00 0.21781277909920D-16 + 2 50 2 38 -0.11649945096036D+01 0.13611796324945D-15 + 3 50 2 38 -0.99491676041998D+00 -0.14917814176662D-17 + 1 51 2 38 0.42487475494262D-01 -0.80619419126250D-17 + 2 51 2 38 -0.26792518326818D+00 0.11247782353678D-15 + 3 51 2 38 0.21360777461611D-02 -0.41299765005406D-18 + 1 52 2 38 -0.16200999420939D+01 -0.28121706613636D-16 + 2 52 2 38 -0.28486160486720D+01 -0.68218316164930D-16 + 3 52 2 38 0.28968247934280D+01 0.33217270896749D-18 + 1 53 2 38 0.14131179231746D+01 -0.98217371206375D-19 + 2 53 2 38 -0.29903000869573D+01 -0.12387306162213D-15 + 3 53 2 38 -0.32598618654775D+01 -0.73050641309714D-18 + 1 54 2 38 -0.12138580036775D+01 -0.18514345845440D-17 + 2 54 2 38 -0.27516318762314D+01 0.61374881691593D-16 + 3 54 2 38 -0.29073230193539D+01 0.13282321157072D-16 + 1 55 2 38 0.12892733219551D+01 -0.29805974572538D-16 + 2 55 2 38 -0.31939237968509D+01 0.20941676513562D-15 + 3 55 2 38 0.30631974865687D+01 -0.23914850300128D-18 + 1 56 2 38 -0.51417559201220D+00 -0.18522759738915D-17 + 2 56 2 38 -0.37756417728969D+00 -0.86996199259662D-16 + 3 56 2 38 -0.69117859893014D+00 -0.33624179245909D-16 + 1 57 2 38 -0.84150502029033D-02 -0.31459028346076D-16 + 2 57 2 38 0.29520040261450D+00 0.60897342202038D-16 + 3 57 2 38 0.18427734937986D-01 0.29169131130575D-16 + 1 58 2 38 0.17548457128181D+00 -0.51362826505718D-16 + 2 58 2 38 0.31305621381471D-01 -0.91757628648353D-16 + 3 58 2 38 0.18019124741021D+00 0.13124792027617D-16 + 1 59 2 38 -0.45618244863945D+00 -0.55407659806649D-18 + 2 59 2 38 -0.80735361833170D+00 -0.68133193747645D-16 + 3 59 2 38 -0.47710773077174D+00 0.78824361381150D-17 + 1 60 2 38 -0.23104945061833D+00 -0.28764080067433D-16 + 2 60 2 38 0.27420601099833D+00 0.19938610118827D-15 + 3 60 2 38 0.16842214387472D+00 -0.89421106271933D-16 + 1 61 2 38 -0.51547249503314D+00 -0.17568771465528D-16 + 2 61 2 38 -0.51190641997775D+00 0.88325869289199D-16 + 3 61 2 38 -0.59930329214814D+00 0.70541989632269D-17 + 1 62 2 38 -0.14835666597383D+02 -0.36535841235193D-17 + 2 62 2 38 -0.26885952984624D+02 -0.31132440267195D-15 + 3 62 2 38 -0.18445644366106D+02 -0.93787116636657D-16 + 1 63 2 38 0.35239402038778D+00 -0.21555062456000D-16 + 2 63 2 38 0.19045136784064D+00 0.10541608718158D-15 + 3 63 2 38 -0.29567997302834D+00 -0.15010506831743D-16 + 1 64 2 38 -0.93202794916053D+00 0.43704885634664D-16 + 2 64 2 38 -0.84752663054832D+00 -0.18895406420178D-15 + 3 64 2 38 0.82400616371946D+00 0.29904864343729D-16 + 1 65 2 38 -0.93420599972254D-01 0.27987018515034D-16 + 2 65 2 38 -0.31062896647660D+00 0.42111134598480D-16 + 3 65 2 38 -0.62265338893123D-01 -0.23270358763516D-16 + 1 1 3 38 -0.69182942504181D-01 0.54739330522562D-17 + 2 1 3 38 0.10708464478094D-01 0.15599319135033D-16 + 3 1 3 38 -0.15174463442924D+00 -0.16560404461818D-15 + 1 2 3 38 0.19847109189108D+00 0.55458028481964D-18 + 2 2 3 38 -0.27830676858508D-01 -0.35980103089578D-16 + 3 2 3 38 -0.42455260074795D+00 0.29151881167739D-15 + 1 3 3 38 0.29337777170518D+01 0.11583305899942D-17 + 2 3 3 38 0.14062279707536D+01 -0.17812791355892D-16 + 3 3 3 38 -0.29999172970670D+01 0.19862964055616D-15 + 1 4 3 38 -0.31446947372535D+01 0.71067943023706D-18 + 2 4 3 38 0.12966080702833D+01 -0.10210001357576D-16 + 3 4 3 38 -0.31976530388552D+01 0.26840348835839D-15 + 1 5 3 38 -0.82013102129524D-01 0.10173113401916D-16 + 2 5 3 38 -0.93257181798682D+00 0.27493358472444D-16 + 3 5 3 38 0.62293770665093D+00 0.95656641386918D-16 + 1 6 3 38 -0.89658032623899D-01 -0.53102309133507D-19 + 2 6 3 38 -0.10356682372426D+00 0.36669275240261D-16 + 3 6 3 38 -0.21577894633812D+00 -0.11435376734541D-15 + 1 7 3 38 -0.28728526686265D+01 -0.16185289119086D-18 + 2 7 3 38 -0.13163110477181D+01 -0.23600313867343D-16 + 3 7 3 38 -0.28762227844451D+01 0.24256389740843D-15 + 1 8 3 38 0.31254481327735D+01 0.49916635852516D-18 + 2 8 3 38 -0.12144881578439D+01 -0.18532925697774D-16 + 3 8 3 38 -0.30979715045097D+01 0.24147317471228D-15 + 1 9 3 38 0.17278865142432D+02 -0.34452124441730D-16 + 2 9 3 38 0.17165288984837D+02 0.27389371437950D-16 + 3 9 3 38 -0.28264641631261D+02 -0.51579612098855D-16 + 1 10 3 38 0.25310517724669D+00 -0.37434912468667D-16 + 2 10 3 38 0.30572683686531D+00 -0.17025439684471D-16 + 3 10 3 38 0.41290445257319D+00 -0.38873790728960D-15 + 1 11 3 38 -0.34690374812173D+00 0.65030733317830D-16 + 2 11 3 38 0.32100479112209D+00 -0.39056131612605D-16 + 3 11 3 38 0.14062091422055D+00 0.28472729474588D-15 + 1 12 3 38 0.36425031176629D+00 0.35303095351051D-16 + 2 12 3 38 0.38152268192090D+00 0.27567951871857D-16 + 3 12 3 38 -0.44110165423260D+00 -0.20388275286317D-15 + 1 13 3 38 0.33579699030053D+00 0.63086174499346D-17 + 2 13 3 38 -0.34900987509092D+00 -0.17856170083119D-16 + 3 13 3 38 0.15800405882501D+00 -0.16077344010195D-16 + 1 14 3 38 0.45844438789844D+00 0.21682730009652D-16 + 2 14 3 38 0.49654295837350D+00 -0.51942150955744D-17 + 3 14 3 38 -0.36210767937222D+00 -0.16661218062389D-15 + 1 15 3 38 0.24465386896980D-01 -0.37470103503837D-16 + 2 15 3 38 0.33216969269468D-01 -0.39489770188068D-18 + 3 15 3 38 0.24725792597648D+00 -0.12496388164643D-15 + 1 16 3 38 -0.12574855522480D+01 -0.67646016570565D-16 + 2 16 3 38 -0.12650830491787D+01 -0.95133408410035D-16 + 3 16 3 38 0.30927109131092D+01 0.49951199452171D-17 + 1 17 3 38 -0.10752394562336D+00 -0.27807601231463D-16 + 2 17 3 38 -0.12617294084810D+00 -0.68465896928899D-17 + 3 17 3 38 -0.11931947826560D-01 0.68360675618167D-16 + 1 18 3 38 0.13078588463868D+01 0.49633586872005D-16 + 2 18 3 38 -0.12509767681806D+01 0.99412361781335D-16 + 3 18 3 38 0.30062117777568D+01 -0.42411114010323D-17 + 1 19 3 38 0.25898368449814D+00 0.86832516831254D-16 + 2 19 3 38 0.27412291065957D-01 0.37300082255632D-16 + 3 19 3 38 0.10115026623172D+00 0.79406680511875D-16 + 1 20 3 38 -0.13678659944496D+01 -0.66312412741065D-17 + 2 20 3 38 0.13483055546319D+01 -0.97440046159176D-16 + 3 20 3 38 0.29632774936015D+01 -0.56805725998143D-16 + 1 21 3 38 -0.70206638076877D-01 0.38397134048614D-16 + 2 21 3 38 0.47616311444369D-01 0.11613338160374D-16 + 3 21 3 38 -0.19811576467603D-01 0.29598689902113D-16 + 1 22 3 38 0.14435244257965D+01 0.82300522151208D-16 + 2 22 3 38 0.29658009543567D+01 -0.54412028484697D-16 + 3 22 3 38 0.96910325492603D+00 0.42221342599740D-16 + 1 23 3 38 0.10774984940750D-01 0.10354983198359D-15 + 2 23 3 38 0.15189491883038D+00 0.58349277139220D-16 + 3 23 3 38 0.67229337897257D-01 -0.40231064158493D-16 + 1 24 3 38 -0.47848284343538D+00 -0.18872530675426D-16 + 2 24 3 38 0.48351314694592D+00 0.32360606882528D-16 + 3 24 3 38 -0.42400915340020D+00 0.79129978997531D-16 + 1 25 3 38 0.27657730932818D+00 -0.47057489015815D-16 + 2 25 3 38 0.13763729246429D+00 0.15307848437812D-16 + 3 25 3 38 0.16887509052891D+00 -0.46807707839740D-17 + 1 26 3 38 -0.38269152990934D+00 0.20378602311528D-16 + 2 26 3 38 0.32807006299279D+00 0.23669036163787D-16 + 3 26 3 38 0.66408895613077D+00 -0.56808255129628D-16 + 1 27 3 38 -0.13752406199400D+02 -0.90517669285720D-16 + 2 27 3 38 0.14890393670092D+02 -0.54453249765207D-16 + 3 27 3 38 -0.25987538274335D+02 -0.68774371368050D-16 + 1 28 3 38 0.53470638894186D-01 -0.16013963639424D-16 + 2 28 3 38 0.38181601510457D-01 -0.37116734141792D-17 + 3 28 3 38 0.20857800944944D+00 -0.12842717982223D-16 + 1 29 3 38 -0.47241760155952D+00 -0.20925555587806D-16 + 2 29 3 38 0.44706759951066D+00 -0.15465809840271D-16 + 3 29 3 38 -0.71530023363884D+00 0.87428252363478D-16 + 1 30 3 38 -0.29992653005333D+00 0.43133659750663D-16 + 2 30 3 38 0.34588094598482D+00 0.14344162083369D-16 + 3 30 3 38 -0.38401237108067D+00 0.39991151947373D-16 + 1 31 3 38 -0.30252389954020D+00 -0.50424680817368D-16 + 2 31 3 38 -0.28358065322038D+00 -0.22303690026387D-16 + 3 31 3 38 0.18304592510121D+00 -0.12042058796877D-16 + 1 32 3 38 -0.94007595960453D-02 -0.14852563161228D-16 + 2 32 3 38 -0.12637881894937D+01 -0.17154845493521D-17 + 3 32 3 38 0.62991047216481D-01 0.80501258408847D-17 + 1 33 3 38 0.50822928074397D-01 -0.19779824975994D-18 + 2 33 3 38 -0.12262395208868D-01 -0.81541015659286D-18 + 3 33 3 38 -0.84272004536132D-01 0.62051135395063D-18 + 1 34 3 38 -0.24461857082302D-02 0.26245384963279D-17 + 2 34 3 38 0.34358997781744D-01 0.33271384337044D-17 + 3 34 3 38 -0.20671006593297D+00 0.65424230918884D-18 + 1 35 3 38 0.50187471622123D-01 -0.80033659576561D-19 + 2 35 3 38 0.50182227588190D-01 0.27728434441207D-17 + 3 35 3 38 -0.67269915365605D-01 0.20510106876078D-17 + 1 36 3 38 -0.20095775691119D-01 0.32876277229015D-18 + 2 36 3 38 -0.63860397410480D-01 -0.29537873073155D-18 + 3 36 3 38 -0.29997582769306D+00 -0.80997769332341D-17 + 1 37 3 38 -0.19346501631644D-01 -0.35234345635876D-18 + 2 37 3 38 -0.31054074968616D-02 0.52154435131650D-17 + 3 37 3 38 0.14254411493811D+00 -0.93424100148462D-17 + 1 38 3 38 -0.10712478210700D+01 0.00000000000000D+00 + 2 38 3 38 -0.62995371830208D+00 0.00000000000000D+00 + 3 38 3 38 0.12361603940764D+03 0.00000000000000D+00 + 1 39 3 38 0.31754131344396D-01 -0.21060230521168D-17 + 2 39 3 38 0.17871430495604D-01 -0.21551368665511D-17 + 3 39 3 38 -0.38525272769522D+00 -0.78981845831646D-17 + 1 40 3 38 0.50130163375714D+00 0.30071009072762D-16 + 2 40 3 38 -0.44375316277967D+00 -0.15290994550971D-16 + 3 40 3 38 -0.37587517196716D+00 -0.11297755512014D-15 + 1 41 3 38 0.20300347704440D+00 0.30540929935489D-16 + 2 41 3 38 0.27594970481658D+00 0.38471565903130D-16 + 3 41 3 38 0.15727104241102D+00 0.25713635549765D-15 + 1 42 3 38 0.10458857416864D+00 0.72233980182312D-17 + 2 42 3 38 -0.24018265599631D+00 0.29996873189367D-16 + 3 42 3 38 0.37092861818658D+00 0.38278653251529D-16 + 1 43 3 38 0.49922300162288D+00 -0.47212471667922D-16 + 2 43 3 38 -0.76511502303095D-01 -0.39168725729887D-16 + 3 43 3 38 -0.87879839587781D+00 0.40014404774036D-15 + 1 44 3 38 0.27707858760759D+00 0.82678373005178D-16 + 2 44 3 38 -0.34701699078133D+00 0.84210096389062D-16 + 3 44 3 38 0.58598536914087D+00 -0.26282767585412D-15 + 1 45 3 38 0.14657072719821D+02 0.78755785656904D-17 + 2 45 3 38 -0.13670665622604D+02 -0.34551239371399D-17 + 3 45 3 38 -0.25763641485448D+02 -0.11261005170991D-15 + 1 46 3 38 0.28684620462766D+00 0.33581823005591D-17 + 2 46 3 38 -0.14952538593818D+00 0.37629375189936D-16 + 3 46 3 38 -0.85893846018728D-01 0.90251414378427D-16 + 1 47 3 38 -0.78293220003702D+00 0.66254902437838D-17 + 2 47 3 38 -0.71273818903616D+00 0.25048900108623D-16 + 3 47 3 38 -0.18536809697928D+00 0.13611682261437D-15 + 1 48 3 38 0.46389530140494D-01 -0.13789086026620D-16 + 2 48 3 38 -0.16359920195150D+00 -0.96714124466704D-19 + 3 48 3 38 -0.19250859648881D+00 0.21872886472545D-16 + 1 49 3 38 0.10356308707007D+00 -0.31057449448208D-16 + 2 49 3 38 0.59446261974187D-01 0.11461429018007D-17 + 3 49 3 38 -0.28160457200432D+00 -0.81283811607312D-16 + 1 50 3 38 0.62056743571327D-02 0.26553670840492D-16 + 2 50 3 38 0.87950895163831D+00 -0.14917814176662D-17 + 3 50 3 38 0.81365140915615D+00 0.57326843206596D-16 + 1 51 3 38 -0.34258093331182D-01 0.10991958967354D-16 + 2 51 3 38 -0.49290147573131D-01 -0.41299765005406D-18 + 3 51 3 38 -0.23088084729193D+00 -0.18074832275221D-16 + 1 52 3 38 0.14257686930433D+01 0.21765381725420D-16 + 2 52 3 38 0.28968247934280D+01 0.33217270896749D-18 + 3 52 3 38 -0.31083248747394D+01 0.40482852651801D-16 + 1 53 3 38 0.14258506103839D+01 0.27704211081380D-16 + 2 53 3 38 -0.32724273548708D+01 -0.73050641309714D-18 + 3 53 3 38 -0.32389323475908D+01 0.28950640355077D-15 + 1 54 3 38 -0.12828034165548D+01 -0.34555044930627D-16 + 2 54 3 38 -0.28992922123548D+01 0.13282321157072D-16 + 3 54 3 38 -0.28512247146025D+01 0.20009963749626D-15 + 1 55 3 38 -0.12999869291335D+01 0.29873211469026D-16 + 2 55 3 38 0.34661093519879D+01 -0.23914850300128D-18 + 3 55 3 38 -0.31939237968509D+01 -0.19124222999822D-16 + 1 56 3 38 -0.80045650826027D+00 0.79672686450210D-16 + 2 56 3 38 -0.68264261748262D+00 -0.33624179245909D-16 + 3 56 3 38 -0.60193948425332D+00 0.56230065916084D-16 + 1 57 3 38 0.20626483504755D-02 -0.14868329154890D-16 + 2 57 3 38 -0.54559282343329D-01 0.29169131130575D-16 + 3 57 3 38 0.29691473446176D+00 -0.51853953515349D-16 + 1 58 3 38 -0.35986694257034D+00 -0.12120588663534D-16 + 2 58 3 38 0.30197170554672D+00 0.13124792027617D-16 + 3 58 3 38 0.10626880733348D+00 -0.23741344610212D-16 + 1 59 3 38 -0.50891363746347D+00 0.39071720071951D-16 + 2 59 3 38 -0.48027594224421D+00 0.78824361381150D-17 + 3 59 3 38 -0.44735271654360D+00 -0.12979038367872D-15 + 1 60 3 38 0.37197994347043D+00 -0.98387202883751D-17 + 2 60 3 38 -0.26868741007233D+00 -0.89421106271933D-16 + 3 60 3 38 0.12834338893618D+00 -0.66274464438443D-16 + 1 61 3 38 -0.59936482346722D+00 -0.26293828770597D-16 + 2 61 3 38 -0.61055482526110D+00 0.70541989632269D-17 + 3 61 3 38 -0.50047434236650D+00 0.42241816284721D-16 + 1 62 3 38 -0.16629379756977D+02 0.84999980628014D-17 + 2 62 3 38 -0.17524480964126D+02 -0.93787116636657D-16 + 3 62 3 38 -0.27760819090572D+02 -0.10672217922521D-15 + 1 63 3 38 -0.29022933731613D+00 -0.33869553291907D-16 + 2 63 3 38 -0.21799906534147D+00 -0.15010506831743D-16 + 3 63 3 38 0.53072023251008D+00 -0.68924155157812D-17 + 1 64 3 38 0.62533824397711D+00 -0.17727882264990D-16 + 2 64 3 38 0.25556271126518D+00 0.29904864343729D-16 + 3 64 3 38 0.12127492901125D+00 -0.20583029933232D-15 + 1 65 3 38 -0.22032006338685D+00 -0.12270434395905D-16 + 2 65 3 38 -0.17334651597392D+00 -0.23270358763516D-16 + 3 65 3 38 0.12730033657659D+00 0.13666092182066D-15 + 1 1 1 39 -0.22648967574073D+00 0.22863651025410D-15 + 2 1 1 39 0.10378919577470D+00 -0.16788497159317D-17 + 3 1 1 39 0.98827236061189D-01 0.86109562301430D-18 + 1 2 1 39 -0.23629068496631D+00 -0.17486541136705D-15 + 2 2 1 39 -0.10752394562335D+00 0.13126457085189D-16 + 3 2 1 39 -0.99376337698371D-01 0.28868851371274D-17 + 1 3 1 39 -0.30112724456128D+01 -0.14723051289690D-15 + 2 3 1 39 0.12509741864495D+01 0.64700486140337D-17 + 3 3 1 39 -0.31446947372535D+01 -0.44163247945592D-17 + 1 4 1 39 -0.30686193417766D+01 -0.12750924033657D-15 + 2 4 1 39 -0.12808301121852D+01 0.43520334941048D-16 + 3 4 1 39 0.31586765985263D+01 -0.20142242720064D-17 + 1 5 1 39 -0.19682298503714D+00 -0.32853733316220D-15 + 2 5 1 39 0.46363386037039D-01 -0.81335309234593D-16 + 3 5 1 39 -0.92961861660141D-01 -0.29434055984420D-17 + 1 6 1 39 -0.23862176796399D+00 -0.24880227207429D-15 + 2 6 1 39 -0.99565345105371D-01 -0.82780098907378D-17 + 3 6 1 39 0.82702315888197D-01 -0.24803798799627D-17 + 1 7 1 39 -0.30470853174333D+01 0.92403355985534D-16 + 2 7 1 39 0.12789009470737D+01 -0.13874124079035D-16 + 3 7 1 39 0.32224719826006D+01 -0.18739584571035D-17 + 1 8 1 39 -0.30954916382760D+01 -0.24764153296703D-15 + 2 8 1 39 -0.12922970665964D+01 -0.27368868851207D-16 + 3 8 1 39 -0.32179128749850D+01 0.51767358723304D-18 + 1 9 1 39 0.18528448134062D+00 0.12205409023412D-15 + 2 9 1 39 0.36863095759641D+00 0.29658180572591D-16 + 3 9 1 39 0.31925795325274D+00 0.15508478862139D-16 + 1 10 1 39 -0.26111241917414D+02 -0.13217229128277D-15 + 2 10 1 39 -0.14086024959131D+02 0.17369332141276D-17 + 3 10 1 39 0.14086024959133D+02 0.30293156283568D-17 + 1 11 1 39 -0.85715481780125D+00 0.13617654401691D-15 + 2 11 1 39 -0.47386017200010D+00 -0.13862365290865D-16 + 3 11 1 39 0.47386017200006D+00 0.33163480542073D-16 + 1 12 1 39 0.18496338576642D+00 0.15159247243214D-15 + 2 12 1 39 -0.31950747315450D+00 0.54149341383299D-17 + 3 12 1 39 -0.36863095759641D+00 0.14450802099825D-16 + 1 13 1 39 -0.37906592757706D+00 0.28704362785715D-15 + 2 13 1 39 -0.46333199486230D+00 -0.31099899756145D-16 + 3 13 1 39 0.47928982803673D+00 -0.19408933318175D-16 + 1 14 1 39 0.41799354973550D+00 -0.34210436778386D-16 + 2 14 1 39 -0.27141212136979D+00 -0.13339980285491D-16 + 3 14 1 39 0.27141212136986D+00 -0.38601241053175D-16 + 1 15 1 39 -0.37889230900943D+00 -0.39960113979011D-16 + 2 15 1 39 -0.47950150971598D+00 0.27523785046060D-16 + 3 15 1 39 0.46333199486231D+00 -0.81729345596860D-17 + 1 16 1 39 -0.23629068496630D+00 0.12418683395733D-15 + 2 16 1 39 0.99376337698372D-01 0.17105222409083D-17 + 3 16 1 39 0.10752394562336D+00 0.17301579425838D-16 + 1 17 1 39 -0.30686193417767D+01 0.22892231140498D-15 + 2 17 1 39 -0.31586765985263D+01 0.16044713505836D-18 + 3 17 1 39 0.12808301121852D+01 -0.18133065407501D-16 + 1 18 1 39 -0.22648967574074D+00 0.99645455611378D-17 + 2 18 1 39 -0.98827236061179D-01 0.92961969235007D-18 + 3 18 1 39 -0.10378919577471D+00 -0.28845452688113D-17 + 1 19 1 39 -0.30112724456127D+01 -0.17559822463078D-15 + 2 19 1 39 0.31446947372533D+01 0.22391851948261D-17 + 3 19 1 39 -0.12509741864495D+01 -0.24540085082101D-16 + 1 20 1 39 -0.23862176796399D+00 0.27120040618501D-15 + 2 20 1 39 -0.82702315888195D-01 -0.84632729461301D-18 + 3 20 1 39 0.99565345105370D-01 -0.23488436918389D-16 + 1 21 1 39 -0.30954916382759D+01 0.18759993573153D-15 + 2 21 1 39 0.32179128749850D+01 0.25499604838869D-17 + 3 21 1 39 0.12922970665964D+01 0.53635473647509D-16 + 1 22 1 39 -0.19682298503712D+00 -0.47759775854701D-16 + 2 22 1 39 0.92961861660143D-01 -0.24023497640828D-17 + 3 22 1 39 -0.46363386037039D-01 -0.36006566659183D-16 + 1 23 1 39 -0.30470853174333D+01 0.11171722486895D-15 + 2 23 1 39 -0.32224719826006D+01 0.17603477025344D-17 + 3 23 1 39 -0.12789009470737D+01 0.28013290194270D-17 + 1 24 1 39 0.16889592751831D+00 0.10096094186260D-15 + 2 24 1 39 0.25374530201724D+00 -0.43210847298337D-17 + 3 24 1 39 0.32422969088818D+00 0.12111070486429D-16 + 1 25 1 39 -0.77575023094951D+00 -0.11843042814431D-16 + 2 25 1 39 0.50967449466852D+00 0.84980156833362D-17 + 3 25 1 39 -0.50967449466852D+00 -0.13303499554365D-16 + 1 26 1 39 -0.27014966454727D+02 0.92051035082623D-16 + 2 26 1 39 0.14732387636065D+02 0.28210570808653D-16 + 3 26 1 39 -0.14732387636065D+02 -0.45834288778884D-16 + 1 27 1 39 0.16889592751830D+00 -0.13939586951431D-15 + 2 27 1 39 -0.32422969088818D+00 -0.30419594990219D-16 + 3 27 1 39 -0.25374530201724D+00 -0.20198801599555D-16 + 1 28 1 39 -0.33895793998524D+00 -0.18278190987909D-15 + 2 28 1 39 0.44099543805919D+00 -0.28007941457444D-16 + 3 28 1 39 -0.46860018244849D+00 0.33447777108118D-16 + 1 29 1 39 0.27094753380645D+00 -0.46307260153723D-16 + 2 29 1 39 0.26937884890203D-01 -0.50848153622522D-16 + 3 29 1 39 -0.26937884890204D-01 -0.39828810796641D-16 + 1 30 1 39 0.57016707799584D+00 -0.65625306223478D-16 + 2 30 1 39 0.28159265728973D+00 0.21297014312682D-16 + 3 30 1 39 -0.28159265728972D+00 -0.36134012063584D-16 + 1 31 1 39 -0.33895793998501D+00 -0.96615837845019D-16 + 2 31 1 39 0.46860018244849D+00 -0.18039097199449D-16 + 3 31 1 39 -0.44099543805919D+00 -0.10120253532085D-16 + 1 32 1 39 -0.79888593078689D-01 0.11123574124250D-16 + 2 32 1 39 -0.24064116261817D-01 0.72153574224526D-18 + 3 32 1 39 0.24064116261817D-01 0.85464204696647D-18 + 1 33 1 39 -0.14651597359657D+00 0.30033751764940D-17 + 2 33 1 39 0.23926507485511D-01 0.66197809755462D-18 + 3 33 1 39 0.12570281290532D-01 0.20129320722851D-18 + 1 34 1 39 -0.14651597359657D+00 -0.91160253408487D-18 + 2 34 1 39 -0.12570281290532D-01 -0.24718680352411D-18 + 3 34 1 39 -0.23926507485511D-01 0.27698421718201D-18 + 1 35 1 39 -0.40592725268390D+00 -0.20707335003708D-17 + 2 35 1 39 0.44494871188017D-02 -0.12792070541263D-17 + 3 35 1 39 -0.44494871188017D-02 0.90607702586568D-18 + 1 36 1 39 0.15680213486448D+01 -0.26915631505407D-17 + 2 36 1 39 0.52521091841467D-02 0.19582229626367D-18 + 3 36 1 39 -0.52521091841385D-02 -0.27439856088720D-17 + 1 37 1 39 -0.23816838007246D+00 -0.83707711241995D-17 + 2 37 1 39 -0.31754131344404D-01 0.10241245769950D-17 + 3 37 1 39 -0.36501365675269D-02 -0.35006706939782D-19 + 1 38 1 39 -0.23816838007237D+00 -0.12758121183621D-17 + 2 38 1 39 0.36501365675337D-02 -0.16688229816379D-17 + 3 38 1 39 0.31754131344396D-01 0.21060230521168D-17 + 1 39 1 39 0.12143117983312D+03 0.00000000000000D+00 + 2 39 1 39 -0.44054760316668D+00 0.00000000000000D+00 + 3 39 1 39 0.44054760316657D+00 0.00000000000000D+00 + 1 40 1 39 0.52464302253744D+00 0.49608389152644D-16 + 2 40 1 39 0.33179221431111D+00 0.63580198007892D-17 + 3 40 1 39 0.32051276862331D+00 0.84018014836963D-17 + 1 41 1 39 -0.37009599433221D+00 -0.13879915415585D-15 + 2 41 1 39 0.48491587255602D+00 0.13464596695033D-16 + 3 41 1 39 0.47002277043586D+00 -0.28237747985065D-16 + 1 42 1 39 -0.63312078461237D+00 0.54622744568338D-16 + 2 42 1 39 0.63253059845949D+00 -0.38691037543105D-16 + 3 42 1 39 0.28525463577358D+00 0.21203827284752D-17 + 1 43 1 39 0.23662232486672D+00 -0.15446290095144D-15 + 2 43 1 39 0.11555303207963D-01 0.24174363909665D-16 + 3 43 1 39 0.31560473711003D-02 0.60953941119757D-17 + 1 44 1 39 -0.26326713723825D+02 -0.17999761096742D-15 + 2 44 1 39 0.14353000606929D+02 0.15165243724116D-16 + 3 44 1 39 0.14705333028176D+02 -0.18902432263149D-16 + 1 45 1 39 0.19346724068187D+00 0.16466832950735D-15 + 2 45 1 39 -0.32903125202355D+00 0.33536431812636D-16 + 3 45 1 39 0.26040622557040D+00 -0.12928403290506D-16 + 1 46 1 39 0.11542738827355D+00 -0.10828256829153D-15 + 2 46 1 39 0.23882867257476D+00 -0.21109205019181D-16 + 3 46 1 39 -0.23038762429388D+00 0.56427309678543D-17 + 1 47 1 39 -0.81083552164948D+00 -0.13119235829262D-15 + 2 47 1 39 0.57259088947737D+00 -0.33007342076253D-17 + 3 47 1 39 0.45818229504203D+00 0.33097947113666D-16 + 1 48 1 39 -0.21972711183063D-01 -0.15338973604790D-15 + 2 48 1 39 -0.11346762956114D+00 0.16104075883574D-17 + 3 48 1 39 -0.10979845495590D+00 -0.29688838880087D-16 + 1 49 1 39 -0.34911139746889D-01 0.25682358801516D-16 + 2 49 1 39 0.93652105749600D-01 -0.83895107723726D-17 + 3 49 1 39 -0.93652105749600D-01 -0.17887530730386D-16 + 1 50 1 39 -0.36115044457193D-01 -0.86308539813826D-16 + 2 50 1 39 -0.18965285104182D+00 0.15532398306354D-16 + 3 50 1 39 0.18965285104182D+00 0.94202801620121D-17 + 1 51 1 39 -0.21972711183066D-01 -0.45635720634774D-16 + 2 51 1 39 0.10979845495590D+00 0.13898526279010D-16 + 3 51 1 39 0.11346762956114D+00 0.20664781079351D-16 + 1 52 1 39 0.31579413995747D+01 -0.68912646257293D-16 + 2 52 1 39 -0.14131179231746D+01 -0.28189015715099D-17 + 3 52 1 39 -0.14258506103839D+01 0.10641979552679D-16 + 1 53 1 39 0.31306774163660D+01 0.27586415496239D-16 + 2 53 1 39 0.12905059699577D+01 -0.15269043374307D-16 + 3 53 1 39 -0.12905059699577D+01 -0.14517720785392D-16 + 1 54 1 39 0.30824006681923D+01 -0.22861447843036D-16 + 2 54 1 39 -0.12970359638530D+01 -0.14378769657017D-16 + 3 54 1 39 0.12970359638530D+01 0.16989444922331D-16 + 1 55 1 39 0.31579413995749D+01 -0.25940323665654D-15 + 2 55 1 39 0.14258506103839D+01 0.18653064847510D-16 + 3 55 1 39 0.14131179231745D+01 -0.76681899140982D-17 + 1 56 1 39 0.23662232486672D+00 0.16553746397235D-16 + 2 56 1 39 -0.31560473711007D-02 -0.21910071622506D-16 + 3 56 1 39 -0.11555303207962D-01 0.11353897583816D-16 + 1 57 1 39 -0.37009599433221D+00 0.98143996571614D-16 + 2 57 1 39 -0.47002277043586D+00 -0.44608746282609D-17 + 3 57 1 39 -0.48491587255602D+00 0.29997493645723D-16 + 1 58 1 39 -0.63312078461237D+00 0.96874334708037D-16 + 2 58 1 39 -0.28525463577358D+00 -0.92904381950612D-16 + 3 58 1 39 -0.63253059845948D+00 -0.12514979331648D-16 + 1 59 1 39 0.52464302253744D+00 -0.16414951674804D-15 + 2 59 1 39 -0.32051276862331D+00 0.13250009385838D-16 + 3 59 1 39 -0.33179221431110D+00 -0.23914617768688D-16 + 1 60 1 39 -0.81083552164948D+00 -0.98935861929313D-16 + 2 60 1 39 -0.45818229504203D+00 0.42618167249041D-16 + 3 60 1 39 -0.57259088947737D+00 0.29166521919797D-16 + 1 61 1 39 0.19346724068186D+00 -0.13968639564690D-15 + 2 61 1 39 -0.26040622557041D+00 -0.11188265512496D-16 + 3 61 1 39 0.32903125202355D+00 0.28728612065949D-16 + 1 62 1 39 0.11542738827356D+00 -0.11961447192637D-15 + 2 62 1 39 0.23038762429388D+00 -0.27316886861133D-16 + 3 62 1 39 -0.23882867257475D+00 -0.36907985188069D-16 + 1 63 1 39 -0.26326713723825D+02 -0.13648956583420D-15 + 2 63 1 39 -0.14705333028176D+02 0.24442429527480D-16 + 3 63 1 39 -0.14353000606928D+02 0.15675188752457D-16 + 1 64 1 39 0.12032606938286D+00 0.21158456024379D-15 + 2 64 1 39 0.16502171297718D-01 -0.13523205861358D-16 + 3 64 1 39 -0.14446331097554D-01 0.16213183429777D-16 + 1 65 1 39 0.88500697922274D-01 -0.44732903145630D-16 + 2 65 1 39 -0.18923029479716D-01 -0.40395449684668D-17 + 3 65 1 39 0.18923029479716D-01 0.92505919709794D-18 + 1 1 2 39 -0.87793578338516D-01 -0.16788497159317D-17 + 2 1 2 39 -0.13044625834252D-02 -0.14038958476638D-16 + 3 1 2 39 -0.10609528741851D+00 0.21229566458159D-16 + 1 2 2 39 0.10296464443796D+00 0.13126457085189D-16 + 2 2 2 39 -0.11931947826562D-01 -0.61826055540717D-16 + 3 2 2 39 -0.10250397564470D+00 -0.29316850743373D-16 + 1 3 2 39 -0.14136220409059D+01 0.64700486140337D-17 + 2 3 2 39 0.31297097965360D+01 -0.10739464912464D-15 + 3 3 2 39 -0.12966080702833D+01 -0.99584618140087D-17 + 1 4 2 39 0.12808301121852D+01 0.43520334941048D-16 + 2 4 2 39 0.31445569949215D+01 -0.57009842629691D-16 + 3 4 2 39 -0.13148458615180D+01 0.36093036110495D-16 + 1 5 2 39 -0.12700528632820D+00 -0.81335309234593D-16 + 2 5 2 39 0.17901783548743D+00 0.18689557546707D-16 + 3 5 2 39 0.20914673817793D-01 -0.10257253480452D-16 + 1 6 2 39 0.86016099995365D-01 -0.82780098907378D-17 + 2 6 2 39 -0.18016648722808D-01 0.13305570368970D-15 + 3 6 2 39 0.11218963836733D+00 0.23750633914057D-16 + 1 7 2 39 -0.13286275214552D+01 -0.13874124079035D-16 + 2 7 2 39 0.30490719621776D+01 0.20710736392465D-16 + 3 7 2 39 0.13623457728179D+01 -0.22577503098594D-16 + 1 8 2 39 0.12247732147474D+01 -0.27368868851207D-16 + 2 8 2 39 0.31665669045344D+01 -0.18395801548989D-15 + 3 8 2 39 0.12430520967716D+01 0.26210346568659D-16 + 1 9 2 39 0.37105522615205D+00 0.29658180572591D-16 + 2 9 2 39 0.18886149498240D+00 -0.16049018031884D-15 + 3 9 2 39 0.31104234728639D+00 -0.32364449945671D-16 + 1 10 2 39 -0.14122753774738D+02 0.17369332141276D-17 + 2 10 2 39 -0.26113781530201D+02 -0.33377657860271D-16 + 3 10 2 39 0.13781556160135D+02 -0.27772935316353D-17 + 1 11 2 39 -0.46829113774879D+00 -0.13862365290865D-16 + 2 11 2 39 -0.36753651542798D+00 -0.32744541674651D-15 + 3 11 2 39 0.44471794370565D+00 0.62113772733002D-16 + 1 12 2 39 -0.30833421115942D+00 0.54149341383299D-17 + 2 12 2 39 0.61690564411062D+00 -0.15410773728818D-15 + 3 12 2 39 0.32853382357376D+00 0.21499795868918D-16 + 1 13 2 39 -0.46121895615501D+00 -0.31099899756145D-16 + 2 13 2 39 -0.83861054278829D+00 0.56437541910196D-16 + 3 13 2 39 0.48754355508730D+00 -0.28622507288539D-16 + 1 14 2 39 -0.25160913496097D+00 -0.13339980285491D-16 + 2 14 2 39 0.18931625870340D+00 0.19905358791399D-15 + 3 14 2 39 -0.30051062649132D+00 0.10339573198499D-16 + 1 15 2 39 -0.47158531944063D+00 0.27523785046060D-16 + 2 15 2 39 -0.43255486659625D+00 0.96601869661029D-16 + 3 15 2 39 0.44647630976623D+00 0.19703391426064D-16 + 1 16 2 39 0.11720523352892D+00 0.17105222409083D-17 + 2 16 2 39 -0.20308108836415D+00 -0.23853266298363D-15 + 3 16 2 39 0.12617294084810D+00 0.71688466454425D-16 + 1 17 2 39 -0.31586765985263D+01 0.16044713505836D-18 + 2 17 2 39 -0.30740777943507D+01 0.18933833120272D-15 + 3 17 2 39 0.13150463898993D+01 -0.56289736950875D-16 + 1 18 2 39 -0.99937356912092D-01 0.92961969235007D-18 + 2 18 2 39 -0.24812961285717D+00 0.63547716751987D-16 + 3 18 2 39 0.12016519405870D+00 0.11833536676788D-16 + 1 19 2 39 0.32825700744194D+01 0.22391851948261D-17 + 2 19 2 39 -0.31976530388552D+01 -0.14754101010273D-15 + 3 19 2 39 0.11229219114031D+01 0.21930268276661D-16 + 1 20 2 39 -0.11390436163443D+00 -0.84632729461301D-18 + 2 20 2 39 -0.22618681439698D+00 0.12143398351919D-15 + 3 20 2 39 -0.80612052259491D-01 0.68254242384427D-16 + 1 21 2 39 0.31872566408716D+01 0.25499604838869D-17 + 2 21 2 39 -0.31266544890534D+01 -0.23532037696894D-16 + 3 21 2 39 -0.13605572144011D+01 -0.12897071352671D-16 + 1 22 2 39 0.13436069301927D+00 -0.24023497640828D-17 + 2 22 2 39 -0.36216127554279D+00 0.56778649380092D-16 + 3 22 2 39 0.25060787165518D-01 0.15485079266663D-16 + 1 23 2 39 -0.31172863636171D+01 0.17603477025344D-17 + 2 23 2 39 -0.31198683632758D+01 0.24281508266168D-15 + 3 23 2 39 -0.13535554609168D+01 0.48257598694851D-17 + 1 24 2 39 0.21574548602397D+00 -0.43210847298337D-17 + 2 24 2 39 0.37222044862080D+00 -0.23360368505440D-15 + 3 24 2 39 0.26120958661627D+00 -0.22778370280260D-16 + 1 25 2 39 0.47477936449435D+00 0.84980156833362D-17 + 2 25 2 39 -0.48229205645406D+00 -0.21622723934193D-15 + 3 25 2 39 0.57503662633799D+00 0.26435033362079D-16 + 1 26 2 39 0.14702714068196D+02 0.28210570808653D-16 + 2 26 2 39 -0.26136043103733D+02 -0.52606875208811D-16 + 3 26 2 39 0.14332308246567D+02 0.37440556140378D-17 + 1 27 2 39 -0.29580210237062D+00 -0.30419594990219D-16 + 2 27 2 39 0.21055711069935D+00 -0.73580933561065D-16 + 3 27 2 39 0.29697315648479D+00 0.91993175589748D-18 + 1 28 2 39 0.46633448469613D+00 -0.28007941457444D-16 + 2 28 2 39 -0.39782518419851D+00 0.11044110862388D-15 + 3 28 2 39 0.43357222992647D+00 0.33385752604344D-16 + 1 29 2 39 0.71745259578824D-02 -0.50848153622522D-16 + 2 29 2 39 0.24073277920517D+00 0.14891080051633D-16 + 3 29 2 39 0.26434993805051D-01 0.24018703919934D-16 + 1 30 2 39 0.31466521596142D+00 0.21297014312682D-16 + 2 30 2 39 0.27473289303675D+00 -0.46099441400341D-16 + 3 30 2 39 -0.32049253750883D+00 0.30864000534471D-16 + 1 31 2 39 0.47850355038478D+00 -0.18039097199449D-16 + 2 31 2 39 -0.73242711028473D+00 0.78131242003874D-16 + 3 31 2 39 0.47539775607859D+00 0.12784378963131D-16 + 1 32 2 39 0.21521344319738D-01 0.72153574224526D-18 + 2 32 2 39 0.40195590498098D-01 -0.19845698199259D-17 + 3 32 2 39 0.14872177932805D+00 -0.55394485238206D-17 + 1 33 2 39 0.41467919487293D-01 0.66197809755462D-18 + 2 33 2 39 -0.19111969908325D+00 -0.12024456593832D-17 + 3 33 2 39 0.11097588776131D-01 0.50012075771954D-18 + 1 34 2 39 0.78310784482451D-02 -0.24718680352411D-18 + 2 34 2 39 0.15339790868766D+01 -0.19900087796067D-17 + 3 34 2 39 0.41533968157781D-01 -0.23392088189284D-18 + 1 35 2 39 -0.24069014812012D-02 -0.12792070541263D-17 + 2 35 2 39 -0.22329293722581D+00 -0.11173493229168D-17 + 3 35 2 39 -0.31725157218817D-02 0.10250010592027D-18 + 1 36 2 39 -0.34565694143064D-01 0.19582229626367D-18 + 2 36 2 39 -0.14562371684377D+00 0.86940821153373D-19 + 3 36 2 39 -0.29389480393451D-01 -0.79469439747293D-19 + 1 37 2 39 0.18366634266786D-02 0.10241245769950D-17 + 2 37 2 39 -0.38525272769522D+00 0.23875272199963D-18 + 3 37 2 39 0.27708198192498D-02 0.21635589063912D-17 + 1 38 2 39 0.13933129234017D-02 -0.16688229816379D-17 + 2 38 2 39 -0.25609173438377D+00 0.83206557660011D-18 + 3 38 2 39 0.17871430495604D-01 0.21551368665511D-17 + 1 39 2 39 -0.44054760316668D+00 0.00000000000000D+00 + 2 39 2 39 0.12122798321440D+03 0.00000000000000D+00 + 3 39 2 39 0.76649767139129D+00 0.00000000000000D+00 + 1 40 2 39 0.34486761325060D+00 0.63580198007892D-17 + 2 40 2 39 0.19316941103679D+00 0.93812668734379D-17 + 3 40 2 39 0.32860218100949D+00 0.34890515237167D-16 + 1 41 2 39 0.46559347373896D+00 0.13464596695033D-16 + 2 41 2 39 -0.78547982018116D+00 -0.83898634064113D-16 + 3 41 2 39 -0.46924060623007D+00 -0.19731461198565D-16 + 1 42 2 39 0.51528742791334D+00 -0.38691037543105D-16 + 2 42 2 39 -0.50206812739809D+00 -0.67691867525904D-16 + 3 42 2 39 -0.49069469237906D+00 -0.22255543853614D-16 + 1 43 2 39 -0.11423776684104D-01 0.24174363909665D-16 + 2 43 2 39 0.27493805249823D+00 0.20210876811800D-17 + 3 43 2 39 0.19573453759546D-01 -0.24855173241232D-16 + 1 44 2 39 0.14477059088582D+02 0.15165243724116D-16 + 2 44 2 39 -0.26293428596271D+02 -0.52403299039502D-17 + 3 44 2 39 -0.14444249625280D+02 0.30401056160753D-16 + 1 45 2 39 -0.33125308076840D+00 0.33536431812636D-16 + 2 45 2 39 0.17902564882349D+00 0.52688569026228D-16 + 3 45 2 39 -0.27558435795446D+00 0.24441437323527D-17 + 1 46 2 39 0.26119564154638D+00 -0.21109205019181D-16 + 2 46 2 39 0.29163708009971D+00 -0.55314269989753D-16 + 3 46 2 39 -0.27476276805792D+00 0.31128206245789D-17 + 1 47 2 39 0.54032163431437D+00 -0.33007342076253D-17 + 2 47 2 39 -0.48945075687645D+00 -0.20976303238917D-15 + 3 47 2 39 -0.48522302031412D+00 0.37574244445771D-16 + 1 48 2 39 0.98113074926454D-01 0.16104075883574D-17 + 2 48 2 39 -0.22877355990030D+00 -0.25245301714903D-16 + 3 48 2 39 0.88531530517871D-01 -0.26361120235844D-17 + 1 49 2 39 -0.99917988628224D-01 -0.83895107723726D-17 + 2 49 2 39 -0.23199836150855D+00 -0.57404025358386D-16 + 3 49 2 39 -0.98841998568625D-01 0.49530978633719D-18 + 1 50 2 39 0.14342087980567D-01 0.15532398306354D-16 + 2 50 2 39 -0.28136420191463D+00 0.19386555151148D-16 + 3 50 2 39 -0.20782504841661D+00 0.17599894962407D-17 + 1 51 2 39 -0.11243027226998D+00 0.13898526279010D-16 + 2 51 2 39 -0.24801182769948D+00 0.93961849191522D-16 + 3 51 2 39 0.94812845415094D-01 -0.59294086395912D-17 + 1 52 2 39 0.11608650034962D+01 -0.28189015715099D-17 + 2 52 2 39 -0.29903000869573D+01 0.65405897288567D-16 + 3 52 2 39 -0.32724273548708D+01 0.84109070106021D-18 + 1 53 2 39 -0.12905059699577D+01 -0.15269043374307D-16 + 2 53 2 39 -0.31236535704691D+01 -0.71006221485827D-16 + 3 53 2 39 0.32768449906018D+01 -0.87730115163602D-18 + 1 54 2 39 0.14676609476163D+01 -0.14378769657017D-16 + 2 54 2 39 -0.31020751299927D+01 -0.52566540725594D-16 + 3 54 2 39 0.31423875954876D+01 -0.15376880491782D-17 + 1 55 2 39 -0.11838219701199D+01 0.18653064847510D-16 + 2 55 2 39 -0.32389323475908D+01 0.10297906611240D-15 + 3 55 2 39 -0.32598618654775D+01 0.45128096922669D-18 + 1 56 2 39 0.94824085324148D-02 -0.21910071622506D-16 + 2 56 2 39 0.29525495854003D+00 -0.90204948506205D-16 + 3 56 2 39 -0.51697840507663D-01 -0.72678268344038D-16 + 1 57 2 39 -0.45192755122545D+00 -0.44608746282609D-17 + 2 57 2 39 -0.37052391080199D+00 0.19788121749455D-16 + 3 57 2 39 -0.46488166323621D+00 -0.17066858479762D-16 + 1 58 2 39 -0.44260789793588D+00 -0.92904381950612D-16 + 2 58 2 39 -0.79567018427530D+00 0.14447082957543D-15 + 3 58 2 39 -0.46177411275870D+00 0.85818240304924D-17 + 1 59 2 39 -0.32135967168936D+00 0.13250009385838D-16 + 2 59 2 39 0.17794304813892D+00 -0.59305443060077D-16 + 3 59 2 39 0.34435770576832D+00 0.23633349587579D-16 + 1 60 2 39 -0.44096668991251D+00 0.42618167249041D-16 + 2 60 2 39 -0.50913110257272D+00 -0.97421500498693D-16 + 3 60 2 39 -0.56817747023679D+00 0.32044996992997D-16 + 1 61 2 39 -0.29583507294684D+00 -0.11188265512496D-16 + 2 61 2 39 0.45098802112201D+00 0.71085774968013D-16 + 3 61 2 39 -0.29820000814503D+00 -0.19736805629033D-16 + 1 62 2 39 0.17250536151423D+00 -0.27316886861133D-16 + 2 62 2 39 0.15731667061841D+00 0.15261982849100D-15 + 3 62 2 39 -0.33313519872919D+00 -0.19461342328411D-16 + 1 63 2 39 -0.14678196712314D+02 0.24442429527480D-16 + 2 63 2 39 -0.26673406555051D+02 0.20546615314907D-15 + 3 63 2 39 -0.14299918188595D+02 0.58251047209960D-17 + 1 64 2 39 -0.64979964818768D-01 -0.13523205861358D-16 + 2 64 2 39 0.27172907731193D+00 -0.19174963455960D-15 + 3 64 2 39 0.77365666925797D-01 -0.24276632142028D-16 + 1 65 2 39 -0.19333452705318D-01 -0.40395449684668D-17 + 2 65 2 39 0.33286274453570D-01 -0.19175723943361D-15 + 3 65 2 39 0.14162581672600D-01 -0.13378362768612D-16 + 1 1 3 39 0.99937356912092D-01 0.86109562301430D-18 + 2 1 3 39 0.12016519405870D+00 0.21229566458159D-16 + 3 1 3 39 -0.24812961285718D+00 0.18128593296543D-15 + 1 2 3 39 -0.11720523352892D+00 0.28868851371274D-17 + 2 2 3 39 0.12617294084810D+00 -0.29316850743373D-16 + 3 2 3 39 -0.20308108836415D+00 -0.16916079002186D-15 + 1 3 3 39 -0.32825700744194D+01 -0.44163247945592D-17 + 2 3 3 39 0.11229219114031D+01 -0.99584618140087D-17 + 3 3 3 39 -0.31976530388552D+01 0.14046145417518D-15 + 1 4 3 39 0.31586765985263D+01 -0.20142242720064D-17 + 2 4 3 39 0.13148458615180D+01 0.36093036110495D-16 + 3 4 3 39 -0.30740777943507D+01 -0.99213699034281D-16 + 1 5 3 39 -0.13436069301923D+00 -0.29434055984420D-17 + 2 5 3 39 0.25060787165518D-01 -0.10257253480452D-16 + 3 5 3 39 -0.36216127554279D+00 0.11397378009658D-15 + 1 6 3 39 0.11390436163443D+00 -0.24803798799627D-17 + 2 6 3 39 -0.80612052259492D-01 0.23750633914057D-16 + 3 6 3 39 -0.22618681439698D+00 0.35580949085718D-15 + 1 7 3 39 0.31172863636170D+01 -0.18739584571035D-17 + 2 7 3 39 -0.13535554609168D+01 -0.22577503098594D-16 + 3 7 3 39 -0.31198683632758D+01 0.13706246309629D-15 + 1 8 3 39 -0.31872566408720D+01 0.51767358723304D-18 + 2 8 3 39 -0.13605572144011D+01 0.26210346568659D-16 + 3 8 3 39 -0.31266544890534D+01 0.20030750145738D-15 + 1 9 3 39 0.30833402292315D+00 0.15508478862139D-16 + 2 9 3 39 0.32853382357380D+00 -0.32364449945671D-16 + 3 9 3 39 0.61772233205186D+00 0.43480744529304D-15 + 1 10 3 39 0.14122753774739D+02 0.30293156283568D-17 + 2 10 3 39 0.13781556160135D+02 -0.27772935316353D-17 + 3 10 3 39 -0.26113781530201D+02 -0.14622232921932D-15 + 1 11 3 39 0.46829113774879D+00 0.33163480542073D-16 + 2 11 3 39 0.44471794370561D+00 0.62113772733002D-16 + 3 11 3 39 -0.36753651542807D+00 0.29924943905037D-15 + 1 12 3 39 -0.37109140564482D+00 0.14450802099825D-16 + 2 12 3 39 0.31080049433589D+00 0.21499795868918D-16 + 3 12 3 39 0.18886149498240D+00 -0.34264338905696D-15 + 1 13 3 39 0.47191400210512D+00 -0.19408933318175D-16 + 2 13 3 39 0.44647630976622D+00 -0.28622507288539D-16 + 3 13 3 39 -0.43295774645818D+00 -0.27005048246644D-15 + 1 14 3 39 0.25160913496104D+00 -0.38601241053175D-16 + 2 14 3 39 -0.30051062649135D+00 0.10339573198499D-16 + 3 14 3 39 0.18931625870341D+00 -0.50206379539087D-16 + 1 15 3 39 0.46116872534589D+00 -0.81729345596860D-17 + 2 15 3 39 0.48737886495422D+00 0.19703391426064D-16 + 3 15 3 39 -0.83861054278827D+00 0.12808705642215D-15 + 1 16 3 39 -0.10296464443796D+00 0.17301579425838D-16 + 2 16 3 39 -0.10250397564470D+00 0.71688466454425D-16 + 3 16 3 39 -0.11931947826558D-01 -0.46971522264694D-16 + 1 17 3 39 -0.12808301121852D+01 -0.18133065407501D-16 + 2 17 3 39 -0.13150463898993D+01 -0.56289736950875D-16 + 3 17 3 39 0.31445569949214D+01 0.38139767301656D-16 + 1 18 3 39 0.87793578338517D-01 -0.28845452688113D-17 + 2 18 3 39 -0.10609528741851D+00 0.11833536676788D-16 + 3 18 3 39 -0.13044625834341D-02 0.28758862881848D-16 + 1 19 3 39 0.14136220409059D+01 -0.24540085082101D-16 + 2 19 3 39 -0.12966080702833D+01 0.21930268276661D-16 + 3 19 3 39 0.31297097965360D+01 0.28262103218206D-17 + 1 20 3 39 -0.86016099995367D-01 -0.23488436918389D-16 + 2 20 3 39 0.11218963836733D+00 0.68254242384427D-16 + 3 20 3 39 -0.18016648722801D-01 -0.53548781000446D-17 + 1 21 3 39 -0.12247732147474D+01 0.53635473647509D-16 + 2 21 3 39 0.12430520967716D+01 -0.12897071352671D-16 + 3 21 3 39 0.31665669045345D+01 -0.12343453822833D-16 + 1 22 3 39 0.12700528632818D+00 -0.36006566659183D-16 + 2 22 3 39 0.20914673817794D-01 0.15485079266663D-16 + 3 22 3 39 0.17901783548742D+00 0.64681845504623D-16 + 1 23 3 39 0.13286275214552D+01 0.28013290194270D-17 + 2 23 3 39 0.13623457728179D+01 0.48257598694851D-17 + 3 23 3 39 0.30490719621776D+01 -0.81725795916207D-16 + 1 24 3 39 0.29580210237062D+00 0.12111070486429D-16 + 2 24 3 39 0.29697315648479D+00 -0.22778370280260D-16 + 3 24 3 39 0.21055711069935D+00 -0.27082896573885D-15 + 1 25 3 39 -0.47477936449436D+00 -0.13303499554365D-16 + 2 25 3 39 0.57503662633799D+00 0.26435033362079D-16 + 3 25 3 39 -0.48229205645406D+00 -0.16395427471960D-15 + 1 26 3 39 -0.14702714068196D+02 -0.45834288778884D-16 + 2 26 3 39 0.14332308246567D+02 0.37440556140378D-17 + 3 26 3 39 -0.26136043103733D+02 -0.29681945347348D-15 + 1 27 3 39 -0.21574548602409D+00 -0.20198801599555D-16 + 2 27 3 39 0.26120958661627D+00 0.91993175589748D-18 + 3 27 3 39 0.37222044862082D+00 -0.12181962993168D-15 + 1 28 3 39 -0.47850355038475D+00 0.33447777108118D-16 + 2 28 3 39 0.47539775607859D+00 0.33385752604344D-16 + 3 28 3 39 -0.73242711028474D+00 -0.42644541630795D-16 + 1 29 3 39 -0.71745259578774D-02 -0.39828810796641D-16 + 2 29 3 39 0.26434993805051D-01 0.24018703919934D-16 + 3 29 3 39 0.24073277920517D+00 0.15554072616093D-16 + 1 30 3 39 -0.31466521596143D+00 -0.36134012063584D-16 + 2 30 3 39 -0.32049253750883D+00 0.30864000534471D-16 + 3 30 3 39 0.27473289303674D+00 0.17756961470837D-15 + 1 31 3 39 -0.46633448469616D+00 -0.10120253532085D-16 + 2 31 3 39 0.43357222992647D+00 0.12784378963131D-16 + 3 31 3 39 -0.39782518419851D+00 0.53321777514821D-16 + 1 32 3 39 -0.21521344319737D-01 0.85464204696647D-18 + 2 32 3 39 0.14872177932805D+00 -0.55394485238206D-17 + 3 32 3 39 0.40195590498098D-01 -0.30596481450161D-16 + 1 33 3 39 -0.78310784482450D-02 0.20129320722851D-18 + 2 33 3 39 0.41533968157781D-01 0.50012075771954D-18 + 3 33 3 39 0.15339790868766D+01 -0.17050699922538D-17 + 1 34 3 39 -0.41467919487293D-01 0.27698421718201D-18 + 2 34 3 39 0.11097588776131D-01 -0.23392088189284D-18 + 3 34 3 39 -0.19111969908325D+00 -0.19525923588419D-17 + 1 35 3 39 0.24069014811968D-02 0.90607702586568D-18 + 2 35 3 39 -0.31725157218817D-02 0.10250010592027D-18 + 3 35 3 39 -0.22329293722580D+00 -0.59356398669423D-18 + 1 36 3 39 0.34565694143064D-01 -0.27439856088720D-17 + 2 36 3 39 -0.29389480393451D-01 -0.79469439747293D-19 + 3 36 3 39 -0.14562371684378D+00 -0.11270157358959D-17 + 1 37 3 39 -0.13933129234015D-02 -0.35006706939782D-19 + 2 37 3 39 0.17871430495605D-01 0.21635589063912D-17 + 3 37 3 39 -0.25609173438377D+00 -0.80499952747101D-18 + 1 38 3 39 -0.18366634266786D-02 0.21060230521168D-17 + 2 38 3 39 0.27708198192497D-02 0.21551368665511D-17 + 3 38 3 39 -0.38525272769522D+00 0.78981845831646D-17 + 1 39 3 39 0.44054760316657D+00 0.00000000000000D+00 + 2 39 3 39 0.76649767139129D+00 0.00000000000000D+00 + 3 39 3 39 0.12122798321440D+03 0.00000000000000D+00 + 1 40 3 39 0.32135967168937D+00 0.84018014836963D-17 + 2 40 3 39 0.34435770576832D+00 0.34890515237167D-16 + 3 40 3 39 0.17794304813893D+00 0.18571923901200D-15 + 1 41 3 39 0.45192755122545D+00 -0.28237747985065D-16 + 2 41 3 39 -0.46488166323621D+00 -0.19731461198565D-16 + 3 41 3 39 -0.37052391080198D+00 -0.55333650875189D-17 + 1 42 3 39 0.44260789793588D+00 0.21203827284752D-17 + 2 42 3 39 -0.46177411275870D+00 -0.22255543853614D-16 + 3 42 3 39 -0.79567018427530D+00 0.25345408448642D-17 + 1 43 3 39 -0.94824085324153D-02 0.60953941119757D-17 + 2 43 3 39 -0.51697840507664D-01 -0.24855173241232D-16 + 3 43 3 39 0.29525495854004D+00 -0.37640843990794D-16 + 1 44 3 39 0.14678196712314D+02 -0.18902432263149D-16 + 2 44 3 39 -0.14299918188595D+02 0.30401056160753D-16 + 3 44 3 39 -0.26673406555051D+02 0.11484054344558D-16 + 1 45 3 39 0.29583507294684D+00 -0.12928403290506D-16 + 2 45 3 39 -0.29820000814504D+00 0.24441437323527D-17 + 3 45 3 39 0.45098802112198D+00 -0.40807040157875D-16 + 1 46 3 39 -0.17250536151423D+00 0.56427309678543D-17 + 2 46 3 39 -0.33313519872921D+00 0.31128206245789D-17 + 3 46 3 39 0.15731667061840D+00 -0.35595234232869D-15 + 1 47 3 39 0.44096668991251D+00 0.33097947113666D-16 + 2 47 3 39 -0.56817747023680D+00 0.37574244445771D-16 + 3 47 3 39 -0.50913110257273D+00 0.17172310190019D-15 + 1 48 3 39 0.11243027226998D+00 -0.29688838880087D-16 + 2 48 3 39 0.94812845415096D-01 -0.26361120235844D-17 + 3 48 3 39 -0.24801182769949D+00 0.19894802319416D-15 + 1 49 3 39 0.99917988628229D-01 -0.17887530730386D-16 + 2 49 3 39 -0.98841998568625D-01 0.49530978633719D-18 + 3 49 3 39 -0.23199836150855D+00 0.18674753246279D-15 + 1 50 3 39 -0.14342087980569D-01 0.94202801620121D-17 + 2 50 3 39 -0.20782504841661D+00 0.17599894962407D-17 + 3 50 3 39 -0.28136420191463D+00 0.20003804253408D-15 + 1 51 3 39 -0.98113074926454D-01 0.20664781079351D-16 + 2 51 3 39 0.88531530517870D-01 -0.59294086395912D-17 + 3 51 3 39 -0.22877355990031D+00 -0.23704242425052D-15 + 1 52 3 39 0.11838219701199D+01 0.10641979552679D-16 + 2 52 3 39 -0.32598618654776D+01 0.84109070106021D-18 + 3 52 3 39 -0.32389323475908D+01 0.19534272705413D-15 + 1 53 3 39 0.12905059699577D+01 -0.14517720785392D-16 + 2 53 3 39 0.32768449906018D+01 -0.87730115163602D-18 + 3 53 3 39 -0.31236535704691D+01 -0.28166238873949D-15 + 1 54 3 39 -0.14676609476163D+01 0.16989444922331D-16 + 2 54 3 39 0.31423875954876D+01 -0.15376880491782D-17 + 3 54 3 39 -0.31020751299927D+01 0.13641091598198D-15 + 1 55 3 39 -0.11608650034962D+01 -0.76681899140982D-17 + 2 55 3 39 -0.32724273548708D+01 0.45128096922669D-18 + 3 55 3 39 -0.29903000869573D+01 -0.37684570387626D-16 + 1 56 3 39 0.11423776684105D-01 0.11353897583816D-16 + 2 56 3 39 0.19573453759547D-01 -0.72678268344038D-16 + 3 56 3 39 0.27493805249823D+00 -0.17521024654033D-15 + 1 57 3 39 -0.46559347373896D+00 0.29997493645723D-16 + 2 57 3 39 -0.46924060623007D+00 -0.17066858479762D-16 + 3 57 3 39 -0.78547982018116D+00 0.10025970225906D-16 + 1 58 3 39 -0.51528742791334D+00 -0.12514979331648D-16 + 2 58 3 39 -0.49069469237906D+00 0.85818240304924D-17 + 3 58 3 39 -0.50206812739809D+00 -0.10526739882530D-15 + 1 59 3 39 -0.34486761325059D+00 -0.23914617768688D-16 + 2 59 3 39 0.32860218100949D+00 0.23633349587579D-16 + 3 59 3 39 0.19316941103678D+00 0.10199750528829D-15 + 1 60 3 39 -0.54032163431437D+00 0.29166521919797D-16 + 2 60 3 39 -0.48522302031411D+00 0.32044996992997D-16 + 3 60 3 39 -0.48945075687644D+00 -0.83073915856176D-17 + 1 61 3 39 0.33125308076840D+00 0.28728612065949D-16 + 2 61 3 39 -0.27558435795446D+00 -0.19736805629033D-16 + 3 61 3 39 0.17902564882347D+00 0.60621869442804D-16 + 1 62 3 39 -0.26119564154637D+00 -0.36907985188069D-16 + 2 62 3 39 -0.27476276805790D+00 -0.19461342328411D-16 + 3 62 3 39 0.29163708009968D+00 0.14583282623713D-15 + 1 63 3 39 -0.14477059088582D+02 0.15675188752457D-16 + 2 63 3 39 -0.14444249625280D+02 0.58251047209960D-17 + 3 63 3 39 -0.26293428596271D+02 -0.94859265906046D-16 + 1 64 3 39 0.64979964818765D-01 0.16213183429777D-16 + 2 64 3 39 0.76993652916087D-01 -0.24276632142028D-16 + 3 64 3 39 0.27114731353366D+00 -0.22457463813648D-15 + 1 65 3 39 0.19333452705321D-01 0.92505919709794D-18 + 2 65 3 39 0.14162581672600D-01 -0.13378362768612D-16 + 3 65 3 39 0.33286274453569D-01 -0.73175026546486D-16 + 1 1 1 40 0.20291562690677D+00 0.58295217235415D-16 + 2 1 1 40 -0.26756134160942D+00 0.18872318230049D-16 + 3 1 1 40 -0.34208337300894D+00 -0.37932445039024D-16 + 1 2 1 40 -0.77717561802623D+00 -0.12896948923861D-15 + 2 2 1 40 -0.59936482346722D+00 0.26134302234915D-16 + 3 2 1 40 0.51547249503314D+00 -0.28620840097153D-16 + 1 3 1 40 -0.27140407075915D+02 -0.73055365879637D-16 + 2 3 1 40 -0.14117436603271D+02 0.39754424964825D-16 + 3 3 1 40 0.14657072719821D+02 -0.36650382540198D-16 + 1 4 1 40 0.19346724068186D+00 0.30734209481826D-15 + 2 4 1 40 0.33125308076840D+00 0.10640071878872D-17 + 3 4 1 40 0.29583507294683D+00 0.16084580004622D-16 + 1 5 1 40 -0.69224099805286D-01 0.52115709843544D-16 + 2 5 1 40 -0.28641075667356D+00 -0.57139762090207D-17 + 3 5 1 40 0.49185051631150D+00 0.94818520984679D-17 + 1 6 1 40 0.25748660815604D+00 0.11924867385342D-15 + 2 6 1 40 -0.16149580206858D-01 0.16694700636815D-16 + 3 6 1 40 0.44235881324089D-02 0.28757644965637D-16 + 1 7 1 40 0.47011509603786D+00 0.43989812147778D-16 + 2 7 1 40 -0.24689778800013D+00 0.36326423832488D-16 + 3 7 1 40 0.31572160078401D+00 0.44160200670663D-16 + 1 8 1 40 -0.42574411112178D+00 0.18957639332866D-15 + 2 8 1 40 -0.49371812521040D+00 -0.65850749588667D-17 + 3 8 1 40 0.48878863251808D+00 -0.35790316179782D-16 + 1 9 1 40 -0.30647115086679D+01 0.18150126105403D-17 + 2 9 1 40 -0.13761677586902D+01 -0.10592501904292D-18 + 3 9 1 40 0.30596651663490D+01 0.98355234512635D-18 + 1 10 1 40 -0.30750329147910D+01 0.24391570517670D-15 + 2 10 1 40 0.12418553858657D+01 0.10471285574154D-15 + 3 10 1 40 -0.31522845379931D+01 0.14499705319463D-17 + 1 11 1 40 -0.21575864670251D+00 0.26064266570128D-15 + 2 11 1 40 -0.10667108461057D+00 0.96784131219874D-16 + 3 11 1 40 -0.85136664112452D-01 -0.48370893407910D-19 + 1 12 1 40 -0.26513434349829D+00 0.47673554784686D-16 + 2 12 1 40 0.10882249164782D+00 -0.10498797244304D-15 + 3 12 1 40 0.88364808457842D-01 0.78706753342513D-18 + 1 13 1 40 -0.30574761769625D+01 -0.12789700033467D-15 + 2 13 1 40 -0.13103510648214D+01 0.24374945075457D-16 + 3 13 1 40 -0.32811025291623D+01 -0.72334022446928D-18 + 1 14 1 40 -0.30813310039781D+01 0.54699020642963D-16 + 2 14 1 40 0.13673988736778D+01 0.56133167366235D-16 + 3 14 1 40 0.31991757639689D+01 0.13646518709873D-17 + 1 15 1 40 -0.23316055675786D+00 -0.24106264370333D-15 + 2 15 1 40 0.12734062973724D+00 -0.12200692161048D-16 + 3 15 1 40 -0.95524459798811D-01 -0.84999244117111D-18 + 1 16 1 40 0.18966302382550D+00 0.21769958707360D-15 + 2 16 1 40 -0.35138773653670D+00 -0.40257233287053D-17 + 3 16 1 40 -0.27707858760759D+00 -0.26358334607642D-16 + 1 17 1 40 -0.26326713723825D+02 0.15578023228572D-15 + 2 17 1 40 0.14477059088582D+02 -0.18286074966498D-16 + 3 17 1 40 -0.14678196712313D+02 -0.56527746681868D-17 + 1 18 1 40 -0.78592107040989D+00 -0.10200749403928D-15 + 2 18 1 40 0.47089004501017D+00 -0.96630249370229D-17 + 3 18 1 40 -0.46029301411802D+00 -0.35962607962792D-16 + 1 19 1 40 0.22931480882147D+00 0.21899565315578D-15 + 2 19 1 40 0.29022933731611D+00 -0.33531551152652D-16 + 3 19 1 40 0.35239402038777D+00 0.53901991765217D-16 + 1 20 1 40 -0.44551561571322D+00 0.54593443427204D-16 + 2 20 1 40 0.46486050728527D+00 0.81708828134234D-17 + 3 20 1 40 -0.52775938851813D+00 0.81600668258265D-17 + 1 21 1 40 0.39734956014696D+00 -0.11451077588820D-16 + 2 21 1 40 0.22867874047309D+00 0.16425690219106D-16 + 3 21 1 40 -0.27710318582960D+00 -0.72467462462240D-16 + 1 22 1 40 0.19309537375821D+00 -0.16367177869123D-15 + 2 22 1 40 0.28826890102680D-01 -0.50486633271499D-17 + 3 22 1 40 -0.79971555683552D-02 0.60874792835162D-17 + 1 23 1 40 -0.31512814179122D+00 -0.36711638429099D-16 + 2 23 1 40 0.44224998145375D+00 0.79055459396946D-17 + 3 23 1 40 -0.45552372354199D+00 -0.28085808649080D-17 + 1 24 1 40 -0.30469835809634D+01 0.23611151856782D-15 + 2 24 1 40 0.31599033686936D+01 -0.11643243428806D-18 + 3 24 1 40 -0.13679500992356D+01 -0.10098601252909D-15 + 1 25 1 40 -0.22263137836702D+00 -0.12467013863497D-15 + 2 25 1 40 -0.10249546607287D+00 0.15194225400846D-17 + 3 25 1 40 -0.85795956644176D-01 -0.64222788334470D-16 + 1 26 1 40 -0.30434692768449D+01 -0.13099253621722D-15 + 2 26 1 40 -0.31716179054068D+01 0.33184694448292D-17 + 3 26 1 40 0.12394348388543D+01 -0.22384204865964D-17 + 1 27 1 40 -0.25031735777227D+00 0.19345832762715D-15 + 2 27 1 40 0.88994994054174D-01 0.27363892314956D-17 + 3 27 1 40 0.11878037928652D+00 -0.85960794864160D-16 + 1 28 1 40 -0.31707252962002D+01 -0.23797015564976D-15 + 2 28 1 40 -0.31016132636269D+01 0.13350783115882D-17 + 3 28 1 40 -0.12864439244776D+01 0.96863285532250D-16 + 1 29 1 40 -0.22652366868190D+00 0.22094670929913D-15 + 2 29 1 40 0.93447115162303D-01 -0.13087403657538D-17 + 3 29 1 40 -0.73751630300908D-01 -0.13852302748751D-16 + 1 30 1 40 -0.30043583412530D+01 -0.28796343165530D-15 + 2 30 1 40 0.31155961361122D+01 -0.25052202186239D-19 + 3 30 1 40 0.12210961823145D+01 -0.10132075825745D-15 + 1 31 1 40 -0.23944541779591D+00 -0.20104019573457D-16 + 2 31 1 40 -0.81668301919140D-01 -0.88991521287457D-18 + 3 31 1 40 0.12681713296579D+00 0.29182090589108D-17 + 1 32 1 40 -0.77015767769167D+00 -0.61466880698189D-18 + 2 32 1 40 0.52080259707712D+00 -0.21717775358224D-16 + 3 32 1 40 0.45010459969444D+00 0.25390421349930D-16 + 1 33 1 40 0.15328911515378D+00 -0.10000762426554D-15 + 2 33 1 40 0.22564467784923D+00 0.27194622152274D-16 + 3 33 1 40 -0.26505761927302D+00 0.54025170331823D-17 + 1 34 1 40 0.17633524868552D+00 0.97202666678711D-17 + 2 34 1 40 -0.31821622388506D+00 -0.52000587340580D-16 + 3 34 1 40 0.19985889980303D+00 0.74894992214499D-17 + 1 35 1 40 -0.25794221122147D+02 0.65782845693312D-16 + 2 35 1 40 0.13679113574287D+02 0.73685244342530D-17 + 3 35 1 40 0.13738598552669D+02 -0.17704985916522D-16 + 1 36 1 40 0.24369046204170D+00 -0.16922374271830D-15 + 2 36 1 40 0.45448141448589D-01 0.32624667939715D-17 + 3 36 1 40 0.67656636498692D-02 -0.84687314129572D-16 + 1 37 1 40 -0.45333922621258D+00 0.11712468325096D-15 + 2 37 1 40 0.50891363746346D+00 -0.41175604962000D-16 + 3 37 1 40 0.45618244863945D+00 0.17741463753980D-16 + 1 38 1 40 -0.49304833638928D+00 -0.11711863303845D-15 + 2 38 1 40 0.36482159917444D+00 -0.13655849812615D-16 + 3 38 1 40 0.50130163375714D+00 -0.30071009072762D-16 + 1 39 1 40 0.52464302253744D+00 -0.49608389152644D-16 + 2 39 1 40 0.34486761325060D+00 -0.63580198007892D-17 + 3 39 1 40 0.32135967168937D+00 -0.84018014836963D-17 + 1 40 1 40 0.12000135680810D+03 0.00000000000000D+00 + 2 40 1 40 -0.65807813668295D+00 0.00000000000000D+00 + 3 40 1 40 0.12319061319872D+00 0.00000000000000D+00 + 1 41 1 40 -0.23882617083894D+00 0.95568405899509D-18 + 2 41 1 40 0.10301842422670D-01 0.62759201807652D-19 + 3 41 1 40 -0.15564013824402D-02 -0.34885474671894D-19 + 1 42 1 40 -0.19374587556379D+00 0.20027267888486D-16 + 2 42 1 40 0.38138444980193D-01 -0.66032411089321D-18 + 3 42 1 40 0.42250900489266D-02 -0.10134266247214D-16 + 1 43 1 40 0.16147086050100D+01 0.10229128411045D-17 + 2 43 1 40 -0.60412417775755D-01 -0.55371849190303D-17 + 3 43 1 40 -0.73096735208846D-01 -0.29991727332096D-17 + 1 44 1 40 -0.42441281638000D+00 0.55085763376500D-17 + 2 44 1 40 -0.15132030000380D-02 -0.53734531561369D-18 + 3 44 1 40 -0.27334226525659D-02 -0.17361574589173D-17 + 1 45 1 40 -0.14155133170060D+00 0.12205280873442D-17 + 2 45 1 40 0.23946093418141D-01 0.38988605795588D-18 + 3 45 1 40 0.15033632328304D-01 -0.20418654538317D-18 + 1 46 1 40 -0.19511828925900D+00 0.11572259200009D-16 + 2 46 1 40 -0.61681663058382D-03 -0.15854593058696D-17 + 3 46 1 40 0.78044554531757D-02 -0.36082881064617D-17 + 1 47 1 40 -0.12166211096925D+00 0.12967517846260D-17 + 2 47 1 40 0.55066654507338D-02 0.25943045810123D-17 + 3 47 1 40 -0.52381069365462D-02 -0.71374861396960D-17 + 1 48 1 40 -0.25336542636213D+02 -0.14715559906688D-15 + 2 48 1 40 -0.13677385535158D+02 0.17371214032625D-16 + 3 48 1 40 -0.13879011340542D+02 -0.14291612076024D-16 + 1 49 1 40 0.18950469390944D+00 0.10430912582983D-15 + 2 49 1 40 0.32566797249811D+00 -0.25137222654148D-16 + 3 49 1 40 -0.28250092722397D+00 -0.28526298824849D-16 + 1 50 1 40 0.57174427519661D-01 -0.25682279799356D-16 + 2 50 1 40 0.33794676895603D-01 0.25954215830022D-17 + 3 50 1 40 0.41327057252996D-01 -0.29283482771480D-16 + 1 51 1 40 -0.75060432465814D+00 0.81724677137720D-17 + 2 51 1 40 -0.48409400010692D+00 -0.10353066677372D-16 + 3 51 1 40 -0.49830994239345D+00 0.19198027700405D-16 + 1 52 1 40 0.36923994026915D+00 0.11529182503465D-15 + 2 52 1 40 -0.29686620036028D+00 -0.20169086026280D-16 + 3 52 1 40 -0.20300347704440D+00 0.60369430731127D-17 + 1 53 1 40 -0.37009599433220D+00 -0.57589458031437D-16 + 2 53 1 40 -0.46559347373896D+00 0.13678565792084D-16 + 3 53 1 40 -0.45192755122545D+00 0.93720610258231D-17 + 1 54 1 40 -0.46736184534095D+00 -0.32038049276189D-16 + 2 54 1 40 -0.55398192425771D+00 -0.13805227982808D-16 + 3 54 1 40 -0.42315601101540D+00 0.12302452911076D-16 + 1 55 1 40 0.27664613061127D+00 0.19644398420060D-15 + 2 55 1 40 0.20626483504748D-02 0.29190599109513D-16 + 3 55 1 40 -0.84150502029026D-02 -0.24798034318643D-17 + 1 56 1 40 0.30753321824938D+01 -0.68467411404262D-16 + 2 56 1 40 0.15222885050610D+01 -0.30945856413999D-16 + 3 56 1 40 0.14950307013228D+01 -0.33705731639627D-16 + 1 57 1 40 0.30499504829966D+01 0.22938988823271D-16 + 2 57 1 40 -0.12884369863742D+01 -0.27857459165168D-16 + 3 57 1 40 0.13075662148973D+01 -0.58754854409016D-17 + 1 58 1 40 0.31882659330409D+01 0.93147963516661D-16 + 2 58 1 40 0.12980637146701D+01 -0.16020280953247D-16 + 3 58 1 40 -0.12532163534032D+01 0.22725224094853D-16 + 1 59 1 40 0.31556423151157D+01 -0.50565268428763D-16 + 2 59 1 40 -0.12789171090115D+01 0.25722541033569D-16 + 3 59 1 40 -0.12502012486378D+01 -0.20630907013361D-17 + 1 60 1 40 -0.23349397939445D-02 -0.10146321881147D-15 + 2 60 1 40 0.52633044411415D-01 -0.24446027339747D-16 + 3 60 1 40 0.66047993622599D-01 0.28504479881029D-16 + 1 61 1 40 -0.19982934461845D-01 -0.91436155903912D-17 + 2 61 1 40 -0.10515103233070D+00 -0.11815703855758D-16 + 3 61 1 40 0.95229223935947D-01 -0.16320304136098D-16 + 1 62 1 40 -0.20198582307328D-01 -0.10979557414527D-16 + 2 62 1 40 0.12057846732557D+00 -0.41334532592797D-17 + 3 62 1 40 -0.14193478143411D+00 0.23651359405454D-17 + 1 63 1 40 -0.20122628419789D-01 0.17182908864957D-15 + 2 63 1 40 -0.13299472840209D+00 0.34853871359636D-16 + 3 63 1 40 -0.11656811585862D+00 0.10310204440980D-16 + 1 64 1 40 -0.97987867871924D-02 -0.21925676204203D-15 + 2 64 1 40 -0.60810909845795D-01 -0.21654862700754D-16 + 3 64 1 40 -0.90537315177944D-02 0.13852932921017D-16 + 1 65 1 40 -0.18114310583081D+00 0.14943165167130D-15 + 2 65 1 40 -0.14634106790516D+00 -0.60628443131486D-18 + 3 65 1 40 0.31293946107064D+00 -0.18667694996209D-17 + 1 1 2 40 -0.26767530867153D+00 0.18872318230049D-16 + 2 1 2 40 0.42850323800122D+00 0.70114193328676D-16 + 3 1 2 40 0.29554103937407D+00 0.17667779634364D-16 + 1 2 2 40 -0.48194379625109D+00 0.26134302234915D-16 + 2 2 2 40 -0.50047434236650D+00 -0.81880121505534D-16 + 3 2 2 40 0.59930329214814D+00 -0.11072650488929D-16 + 1 3 2 40 -0.14248162262728D+02 0.39754424964825D-16 + 2 3 2 40 -0.25536535365739D+02 -0.11980696723858D-15 + 3 3 2 40 0.13670665622604D+02 -0.27695879323574D-16 + 1 4 2 40 0.32903125202354D+00 0.10640071878872D-17 + 2 4 2 40 0.17902564882348D+00 0.20847083275291D-15 + 3 4 2 40 0.29820000814505D+00 -0.22421236281324D-16 + 1 5 2 40 -0.25116868051170D+00 -0.57139762090207D-17 + 2 5 2 40 -0.27726425993110D+00 0.18080247940597D-15 + 3 5 2 40 0.39151104755289D+00 -0.17794543246334D-16 + 1 6 2 40 -0.13334431757596D-01 0.16694700636815D-16 + 2 6 2 40 0.26462086478740D+00 0.56324135114653D-16 + 3 6 2 40 0.30515804448363D-01 0.39502364617205D-16 + 1 7 2 40 -0.24424858336585D+00 0.36326423832488D-16 + 2 7 2 40 0.18184668037693D+00 0.14707609227395D-16 + 3 7 2 40 -0.30265282018592D+00 0.47844784248424D-16 + 1 8 2 40 -0.45567704351572D+00 -0.65850749588667D-17 + 2 8 2 40 -0.81832269216946D+00 0.23476101860293D-15 + 3 8 2 40 0.47111525755596D+00 -0.18705595090953D-16 + 1 9 2 40 0.15562468678296D+01 -0.10592501904292D-18 + 2 9 2 40 0.31319582770427D+01 0.40002441811356D-16 + 3 9 2 40 -0.13228488051543D+01 0.21568352831625D-16 + 1 10 2 40 -0.12876955666758D+01 0.10471285574154D-15 + 2 10 2 40 0.31461925409856D+01 -0.95942341476789D-16 + 3 10 2 40 -0.13404540323597D+01 -0.18774809019787D-18 + 1 11 2 40 0.93845201709299D-01 0.96784131219874D-16 + 2 11 2 40 -0.31187185983448D-01 0.54306259880804D-16 + 3 11 2 40 -0.11196569201530D+00 -0.25514677686661D-16 + 1 12 2 40 -0.12442806753828D+00 -0.10498797244304D-15 + 2 12 2 40 -0.39034711006481D-01 -0.15566603913640D-15 + 3 12 2 40 -0.11706295729565D+00 0.18371510656401D-16 + 1 13 2 40 0.13086307270575D+01 0.24374945075457D-16 + 2 13 2 40 0.31612187369587D+01 -0.18970987686868D-15 + 3 13 2 40 0.14207456754165D+01 0.28252678193740D-16 + 1 14 2 40 -0.13194687112185D+01 0.56133167366235D-16 + 2 14 2 40 0.31633305596009D+01 -0.63653778561690D-16 + 3 14 2 40 0.12654763266823D+01 0.24756100372425D-16 + 1 15 2 40 -0.10813448889692D+00 -0.12200692161048D-16 + 2 15 2 40 -0.49105577665193D-02 -0.31567572635312D-16 + 3 15 2 40 0.88500513317363D-01 -0.30345953344117D-16 + 1 16 2 40 -0.33632806315325D+00 -0.40257233287053D-17 + 2 16 2 40 0.20982897868919D+00 -0.96649194205895D-16 + 3 16 2 40 0.34701699078133D+00 0.52855700929720D-17 + 1 17 2 40 0.14353000606928D+02 -0.18286074966498D-16 + 2 17 2 40 -0.26293428596271D+02 -0.64889333847315D-16 + 3 17 2 40 0.14299918188594D+02 0.42330705324095D-17 + 1 18 2 40 0.44525731202279D+00 -0.96630249370229D-17 + 2 18 2 40 -0.32341740368544D+00 0.28866749654795D-15 + 3 18 2 40 0.43899228290186D+00 -0.78973169670338D-17 + 1 19 2 40 0.32406161278392D+00 -0.33531551152652D-16 + 2 19 2 40 0.53072023251006D+00 0.71000775619536D-17 + 3 19 2 40 0.29567997302833D+00 0.19758928336572D-16 + 1 20 2 40 0.48848716900826D+00 0.81708828134234D-17 + 2 20 2 40 -0.84989106608483D+00 0.27895616684862D-15 + 3 20 2 40 0.49790547501619D+00 0.14790196915499D-16 + 1 21 2 40 0.23802945606287D+00 0.16425690219106D-16 + 2 21 2 40 0.19144027554771D+00 -0.72627867335935D-16 + 3 21 2 40 -0.28569280361857D+00 -0.14077631975707D-17 + 1 22 2 40 0.29764610515245D-01 -0.50486633271499D-17 + 2 22 2 40 0.79503731643843D-01 0.26101842837896D-15 + 3 22 2 40 0.94808506004454D-01 0.18847298557252D-16 + 1 23 2 40 0.41510684461686D+00 0.79055459396946D-17 + 2 23 2 40 -0.37168114771698D+00 -0.16824319466408D-15 + 3 23 2 40 0.46766185471483D+00 0.26022976559389D-16 + 1 24 2 40 0.31491568175680D+01 -0.11643243428806D-18 + 2 24 2 40 -0.30437881571425D+01 0.69865760944350D-17 + 3 24 2 40 0.13599716217812D+01 -0.54481492003242D-16 + 1 25 2 40 -0.90063254104477D-01 0.15194225400846D-17 + 2 25 2 40 -0.23295520329197D+00 -0.13002844659721D-15 + 3 25 2 40 0.92029099056184D-01 -0.55588988352159D-16 + 1 26 2 40 -0.33078081980729D+01 0.33184694448292D-17 + 2 26 2 40 -0.31777519768981D+01 0.11361055102257D-15 + 3 26 2 40 0.12600447229703D+01 -0.28447358171208D-16 + 1 27 2 40 0.85695375456052D-01 0.27363892314956D-17 + 2 27 2 40 -0.24768484707755D+00 0.10852763237212D-16 + 3 27 2 40 0.98733218058408D-01 -0.30727684983238D-16 + 1 28 2 40 -0.31091888531854D+01 0.13350783115882D-17 + 2 28 2 40 -0.30139916482755D+01 0.22447200439600D-16 + 3 28 2 40 -0.13756832393009D+01 -0.11466996894814D-16 + 1 29 2 40 0.11753736046785D+00 -0.13087403657538D-17 + 2 29 2 40 -0.23208147027117D+00 0.31770644226482D-15 + 3 29 2 40 -0.85666039169643D-01 -0.21132818400789D-16 + 1 30 2 40 0.31738889652453D+01 -0.25052202186239D-19 + 2 30 2 40 -0.30423786554363D+01 -0.62090675270553D-16 + 3 30 2 40 -0.12571940962572D+01 -0.39110663806748D-16 + 1 31 2 40 -0.11482546015925D+00 -0.88991521287457D-18 + 2 31 2 40 -0.21310322738957D+00 -0.23266542953864D-15 + 3 31 2 40 -0.11344991498160D+00 -0.35045653333011D-16 + 1 32 2 40 0.30544660227199D+00 -0.21717775358224D-16 + 2 32 2 40 -0.52469610687681D+00 0.74919593316451D-16 + 3 32 2 40 -0.46664333485390D+00 0.15530532729712D-16 + 1 33 2 40 0.29601155427098D+00 0.27194622152274D-16 + 2 33 2 40 0.43222364377867D+00 -0.19612174453681D-15 + 3 33 2 40 -0.27340328278778D+00 -0.89271574714094D-17 + 1 34 2 40 -0.27566745941855D+00 -0.52000587340580D-16 + 2 34 2 40 0.21967419079835D+00 0.95059531176262D-16 + 3 34 2 40 -0.23274844943711D+00 0.10043539509680D-16 + 1 35 2 40 0.13749665086973D+02 0.73685244342530D-17 + 2 35 2 40 -0.26190006915435D+02 0.19737825112451D-15 + 3 35 2 40 -0.13838939719675D+02 0.11853061670716D-16 + 1 36 2 40 0.14456368115461D-01 0.32624667939715D-17 + 2 36 2 40 0.26354632444338D+00 0.91507635018436D-16 + 3 36 2 40 -0.18546293613141D-01 0.10171709094721D-15 + 1 37 2 40 0.52535734949560D+00 -0.41175604962000D-16 + 2 37 2 40 -0.44735271654360D+00 0.27203917644346D-16 + 3 37 2 40 -0.47710773077175D+00 0.12692854175800D-16 + 1 38 2 40 0.35014435252327D+00 -0.13655849812615D-16 + 2 38 2 40 -0.91736458850017D+00 -0.69248365874930D-16 + 3 38 2 40 -0.44375316277967D+00 0.15290994550971D-16 + 1 39 2 40 0.33179221431111D+00 -0.63580198007892D-17 + 2 39 2 40 0.19316941103679D+00 -0.93812668734379D-17 + 3 39 2 40 0.34435770576832D+00 -0.34890515237167D-16 + 1 40 2 40 -0.65807813668295D+00 0.00000000000000D+00 + 2 40 2 40 0.11998085918812D+03 0.00000000000000D+00 + 3 40 2 40 -0.81338717684523D+00 0.00000000000000D+00 + 1 41 2 40 -0.10301842422670D-01 0.62759201807652D-19 + 2 41 2 40 -0.23726627446707D+00 0.29775888644520D-17 + 3 41 2 40 -0.21764363757139D-01 -0.34811055725744D-18 + 1 42 2 40 -0.24726760963583D-01 -0.66032411089321D-18 + 2 42 2 40 -0.40246564189428D+00 0.10754146779237D-16 + 3 42 2 40 -0.34209735405514D-01 -0.13495071780385D-17 + 1 43 2 40 0.11525350264607D-01 -0.55371849190303D-17 + 2 43 2 40 -0.18124573639915D+00 0.70758774922634D-17 + 3 43 2 40 -0.51528606358534D-01 0.32474611717330D-18 + 1 44 2 40 -0.15132030000380D-02 -0.53734531561369D-18 + 2 44 2 40 -0.22649195687381D+00 -0.19669976496561D-17 + 3 44 2 40 0.24459884158649D-03 0.40185895818225D-18 + 1 45 2 40 -0.23946093418141D-01 0.38988605795588D-18 + 2 45 2 40 0.15986550337781D+01 -0.26515662786680D-18 + 3 45 2 40 0.70666205511097D-02 -0.61799716448651D-19 + 1 46 2 40 -0.36698199332301D-01 -0.15854593058696D-17 + 2 46 2 40 -0.12417076851962D+00 -0.16724427031605D-18 + 3 46 2 40 0.73131832143502D-01 -0.98722984724519D-18 + 1 47 2 40 -0.63431380755932D-02 0.25943045810123D-17 + 2 47 2 40 -0.12424139542536D+00 0.59222023475507D-17 + 3 47 2 40 0.69431513153943D-02 0.16385887987304D-17 + 1 48 2 40 -0.13733332541572D+02 0.17371214032625D-16 + 2 48 2 40 -0.25999938377806D+02 0.34074119038999D-15 + 3 48 2 40 -0.14107929617707D+02 0.10794746905392D-15 + 1 49 2 40 0.34179935926502D+00 -0.25137222654148D-16 + 2 49 2 40 0.16835463342987D+00 -0.25833680701930D-15 + 3 49 2 40 -0.30437217106272D+00 -0.24061538247719D-16 + 1 50 2 40 0.37616317979358D-02 0.25954215830022D-17 + 2 50 2 40 -0.37611087067124D+00 0.52043142160093D-16 + 3 50 2 40 -0.20196117384868D-01 -0.70541027980676D-17 + 1 51 2 40 -0.41642775373069D+00 -0.10353066677372D-16 + 2 51 2 40 -0.32229451800094D+00 0.17474250351116D-16 + 3 51 2 40 -0.42944402667853D+00 -0.21077150921817D-16 + 1 52 2 40 -0.33003961467011D+00 -0.20169086026280D-16 + 2 52 2 40 0.22912581400825D+00 -0.83598248977517D-16 + 3 52 2 40 0.27594970481658D+00 0.12286566167859D-16 + 1 53 2 40 -0.48491587255602D+00 0.13678565792084D-16 + 2 53 2 40 -0.78547982018116D+00 -0.19023455898763D-16 + 3 53 2 40 -0.46488166323621D+00 -0.29229672817881D-16 + 1 54 2 40 -0.48216063573330D+00 -0.13805227982808D-16 + 2 54 2 40 -0.45552851098672D+00 0.13642002068926D-15 + 3 54 2 40 -0.55199541123175D+00 0.10631854407446D-15 + 1 55 2 40 -0.11650839707684D-02 0.29190599109513D-16 + 2 55 2 40 0.29691473446176D+00 -0.45201172545311D-16 + 3 55 2 40 0.18427734937984D-01 0.48152710891848D-16 + 1 56 2 40 -0.11033339330700D+01 -0.30945856413999D-16 + 2 56 2 40 -0.29367943623405D+01 -0.27283671363716D-16 + 3 56 2 40 -0.31475754789696D+01 -0.55315527828742D-17 + 1 57 2 40 0.13075662148973D+01 -0.27857459165168D-16 + 2 57 2 40 -0.31342894738195D+01 0.18126410869323D-15 + 3 57 2 40 0.33093056973859D+01 -0.17068008542244D-18 + 1 58 2 40 -0.14011878085562D+01 -0.16020280953247D-16 + 2 58 2 40 -0.32375816820263D+01 0.54196687590606D-16 + 3 58 2 40 0.31874796976435D+01 -0.45235716032022D-17 + 1 59 2 40 0.12502012486378D+01 0.25722541033569D-16 + 2 59 2 40 -0.29961780079478D+01 -0.25701400291329D-15 + 3 59 2 40 -0.31184796091370D+01 0.31966924060225D-18 + 1 60 2 40 -0.11767243478525D+00 -0.24446027339747D-16 + 2 60 2 40 -0.22821706536484D+00 0.35917417412952D-16 + 3 60 2 40 0.14387887629046D+00 0.25550146657735D-17 + 1 61 2 40 0.11656811585862D+00 -0.11815703855758D-16 + 2 61 2 40 -0.22848785946546D+00 -0.16026609734581D-15 + 3 61 2 40 -0.10272258709109D+00 0.10287882306471D-17 + 1 62 2 40 -0.89382574095879D-01 -0.41334532592797D-17 + 2 62 2 40 -0.21575497152441D+00 -0.44699829860248D-16 + 3 62 2 40 -0.10413342879518D+00 -0.13140877170276D-17 + 1 63 2 40 0.95229223935950D-01 0.34853871359636D-16 + 2 63 2 40 -0.22774994674944D+00 0.13939095804511D-15 + 3 63 2 40 0.10270295409905D+00 0.15893349837579D-17 + 1 64 2 40 0.38414445183820D-02 -0.21654862700754D-16 + 2 64 2 40 0.76694457329237D-01 -0.55767028961677D-16 + 3 64 2 40 -0.88917535510186D-02 -0.49987325152363D-17 + 1 65 2 40 0.14625636154839D+00 -0.60628443131486D-18 + 2 65 2 40 0.36233019803985D+00 0.19265303986561D-16 + 3 65 2 40 0.92189162375366D-01 0.23333836041135D-18 + 1 1 3 40 -0.32023862973356D+00 -0.37932445039024D-16 + 2 1 3 40 0.26183416531372D+00 0.17667779634364D-16 + 3 1 3 40 0.23777045636008D+00 -0.23988509317530D-15 + 1 2 3 40 0.44805328709032D+00 -0.28620840097153D-16 + 2 2 3 40 0.61055482526110D+00 -0.11072650488929D-16 + 3 2 3 40 -0.51190641997774D+00 0.19064060889799D-15 + 1 3 3 40 0.14840802524424D+02 -0.36650382540198D-16 + 2 3 3 40 0.13709035226119D+02 -0.27695879323574D-16 + 3 3 3 40 -0.25763641485448D+02 -0.49840313492945D-16 + 1 4 3 40 0.26040622557040D+00 0.16084580004622D-16 + 2 4 3 40 0.27558435795447D+00 -0.22421236281324D-16 + 3 4 3 40 0.45098802112199D+00 0.23090470707265D-15 + 1 5 3 40 0.34082333285975D+00 0.94818520984679D-17 + 2 5 3 40 0.60352768827599D+00 -0.17794543246334D-16 + 3 5 3 40 -0.81185336706516D+00 -0.36073240300725D-15 + 1 6 3 40 0.22643509870744D-01 0.28757644965637D-16 + 2 6 3 40 0.27822975149857D-01 0.39502364617205D-16 + 3 6 3 40 0.26805640929540D+00 0.29272826364072D-15 + 1 7 3 40 0.32358218209424D+00 0.44160200670663D-16 + 2 7 3 40 -0.30091129439677D+00 0.47844784248424D-16 + 3 7 3 40 0.24708348230196D+00 -0.11729741283442D-15 + 1 8 3 40 0.46661777973952D+00 -0.35790316179782D-16 + 2 8 3 40 0.46213141658107D+00 -0.18705595090953D-16 + 3 8 3 40 -0.37201695309457D+00 0.12882151999073D-15 + 1 9 3 40 0.31071750059116D+01 0.98355234512635D-18 + 2 9 3 40 0.12023475815095D+01 0.21568352831625D-16 + 3 9 3 40 -0.30652285689547D+01 0.52768858823046D-16 + 1 10 3 40 -0.31880379749958D+01 0.14499705319463D-17 + 2 10 3 40 0.12833129941631D+01 -0.18774809019787D-18 + 3 10 3 40 -0.31010690740300D+01 0.13225246886689D-15 + 1 11 3 40 -0.11601899127567D+00 -0.48370893407910D-19 + 2 11 3 40 0.99859390646115D-01 -0.25514677686661D-16 + 3 11 3 40 -0.25453576973771D+00 -0.13153596823522D-15 + 1 12 3 40 0.65195109669496D-01 0.78706753342513D-18 + 2 12 3 40 0.13376023552567D+00 0.18371510656401D-16 + 3 12 3 40 -0.25204749713280D+00 -0.44980162729489D-16 + 1 13 3 40 -0.31534604980328D+01 -0.72334022446928D-18 + 2 13 3 40 -0.13775885799320D+01 0.28252678193740D-16 + 3 13 3 40 -0.31111385464382D+01 0.30952317585763D-15 + 1 14 3 40 0.32039522267035D+01 0.13646518709873D-17 + 2 14 3 40 -0.12511127867583D+01 0.24756100372425D-16 + 3 14 3 40 -0.31136975303414D+01 -0.20983942083296D-15 + 1 15 3 40 -0.10856887234079D+00 -0.84999244117111D-18 + 2 15 3 40 -0.69079466598025D-01 -0.30345953344117D-16 + 3 15 3 40 -0.22820182169767D+00 -0.30531408579445D-15 + 1 16 3 40 -0.23380228617191D+00 -0.26358334607642D-16 + 2 16 3 40 0.37492435584405D+00 0.52855700929720D-17 + 3 16 3 40 0.58598536914088D+00 -0.12761401353692D-15 + 1 17 3 40 -0.14705333028176D+02 -0.56527746681868D-17 + 2 17 3 40 0.14444249625280D+02 0.42330705324095D-17 + 3 17 3 40 -0.26673406555051D+02 0.18241849878655D-15 + 1 18 3 40 -0.47064181745670D+00 -0.35962607962792D-16 + 2 18 3 40 0.42846589831313D+00 -0.78973169670338D-17 + 3 18 3 40 -0.34766337276457D+00 0.26902441061295D-15 + 1 19 3 40 0.35660563057978D+00 0.53901991765217D-16 + 2 19 3 40 0.21799906534146D+00 0.19758928336572D-16 + 3 19 3 40 0.19045136784063D+00 -0.14814394160147D-15 + 1 20 3 40 -0.52437964590650D+00 0.81600668258265D-17 + 2 20 3 40 0.43513197182491D+00 0.14790196915499D-16 + 3 20 3 40 -0.44967235785732D+00 -0.94907582507044D-16 + 1 21 3 40 -0.24735014074084D+00 -0.72467462462240D-16 + 2 21 3 40 -0.30778667023404D+00 -0.14077631975707D-17 + 3 21 3 40 0.18807102073723D+00 -0.75582665814014D-17 + 1 22 3 40 -0.29121581310743D-01 0.60874792835162D-17 + 2 22 3 40 -0.50694550586706D-01 0.18847298557252D-16 + 3 22 3 40 0.24478245845664D+00 0.90982453876685D-16 + 1 23 3 40 -0.48369823738220D+00 -0.28085808649080D-17 + 2 23 3 40 0.45833681568794D+00 0.26022976559389D-16 + 3 23 3 40 -0.78338733454980D+00 0.15618559779675D-16 + 1 24 3 40 0.12503487019539D+01 -0.10098601252909D-15 + 2 24 3 40 -0.12746428311669D+01 -0.54481492003242D-16 + 3 24 3 40 0.30996653802460D+01 0.19495724110677D-16 + 1 25 3 40 0.12077597060909D+00 -0.64222788334470D-16 + 2 25 3 40 -0.12548940319258D+00 -0.55588988352159D-16 + 3 25 3 40 -0.18398839271205D-01 0.20570456377098D-16 + 1 26 3 40 -0.13270267936535D+01 -0.22384204865964D-17 + 2 26 3 40 -0.12419318315307D+01 -0.28447358171208D-16 + 3 26 3 40 0.30332084301199D+01 0.39443448724137D-16 + 1 27 3 40 -0.98105471988989D-01 -0.85960794864160D-16 + 2 27 3 40 -0.99268420215567D-01 -0.30727684983238D-16 + 3 27 3 40 -0.40209081495169D-01 0.51006443664463D-16 + 1 28 3 40 0.12344925828659D+01 0.96863285532250D-16 + 2 28 3 40 0.11343705741542D+01 -0.11466996894814D-16 + 3 28 3 40 0.30446783493883D+01 0.99863783461210D-16 + 1 29 3 40 0.10238686586998D+00 -0.13852302748751D-16 + 2 29 3 40 0.12466780722943D+00 -0.21132818400789D-16 + 3 29 3 40 -0.52495826598260D-01 -0.45256340291505D-16 + 1 30 3 40 -0.13652157069082D+01 -0.10132075825745D-15 + 2 30 3 40 0.14276448489624D+01 -0.39110663806748D-16 + 3 30 3 40 0.30610124002741D+01 0.13114835812615D-16 + 1 31 3 40 -0.80210145194051D-01 0.29182090589108D-17 + 2 31 3 40 0.73875759257911D-01 -0.35045653333011D-16 + 3 31 3 40 -0.17411223374580D-01 0.30482663150166D-16 + 1 32 3 40 0.42673169159091D+00 0.25390421349930D-16 + 2 32 3 40 -0.41374287618090D+00 0.15530532729712D-16 + 3 32 3 40 -0.45982337843816D+00 0.11800112273344D-15 + 1 33 3 40 -0.31389755507366D+00 0.54025170331823D-17 + 2 33 3 40 -0.30191942014922D+00 -0.89271574714094D-17 + 3 33 3 40 0.17637186941306D+00 -0.91379929084339D-16 + 1 34 3 40 0.29923597616246D+00 0.74894992214499D-17 + 2 34 3 40 -0.28016256143628D+00 0.10043539509680D-16 + 3 34 3 40 0.42551965214465D+00 0.23274052643189D-15 + 1 35 3 40 0.13654215728241D+02 -0.17704985916522D-16 + 2 35 3 40 -0.13932091528740D+02 0.11853061670716D-16 + 3 35 3 40 -0.25755365692805D+02 0.25691264314126D-15 + 1 36 3 40 0.22552624962986D-01 -0.84687314129572D-16 + 2 36 3 40 -0.28309789651060D-02 0.10171709094721D-15 + 3 36 3 40 0.29116309027544D+00 -0.13343632054398D-15 + 1 37 3 40 0.51501859925011D+00 0.17741463753980D-16 + 2 37 3 40 -0.48027594224421D+00 0.12692854175800D-16 + 3 37 3 40 -0.80735361833169D+00 0.19679659944492D-16 + 1 38 3 40 0.43710435220490D+00 -0.30071009072762D-16 + 2 38 3 40 -0.46614700581314D+00 0.15290994550971D-16 + 3 38 3 40 -0.37587517196716D+00 0.11297755512014D-15 + 1 39 3 40 0.32051276862331D+00 -0.84018014836963D-17 + 2 39 3 40 0.32860218100949D+00 -0.34890515237167D-16 + 3 39 3 40 0.17794304813893D+00 -0.18571923901200D-15 + 1 40 3 40 0.12319061319872D+00 0.00000000000000D+00 + 2 40 3 40 -0.81338717684523D+00 0.00000000000000D+00 + 3 40 3 40 0.11996040263773D+03 0.00000000000000D+00 + 1 41 3 40 0.15564013824402D-02 -0.34885474671894D-19 + 2 41 3 40 -0.21764363757139D-01 -0.34811055725744D-18 + 3 41 3 40 -0.40132057144185D+00 0.12424964233740D-18 + 1 42 3 40 -0.28052321328861D-01 -0.10134266247214D-16 + 2 42 3 40 0.88364560270813D-01 -0.13495071780385D-17 + 3 42 3 40 -0.25125029174602D+00 0.14317382646530D-16 + 1 43 3 40 -0.25656366926326D-01 -0.29991727332096D-17 + 2 43 3 40 -0.25756283878901D-01 0.32474611717330D-18 + 3 43 3 40 -0.10723510414042D+00 -0.11173886809800D-17 + 1 44 3 40 0.27334226525659D-02 -0.17361574589173D-17 + 2 44 3 40 -0.24459884158649D-03 0.40185895818225D-18 + 3 44 3 40 -0.21965773484532D+00 -0.85287004085687D-19 + 1 45 3 40 0.15033632328304D-01 -0.20418654538317D-18 + 2 45 3 40 -0.70666205511097D-02 -0.61799716448651D-19 + 3 45 3 40 -0.17315680606386D+00 0.00000000000000D+00 + 1 46 3 40 0.13360427838615D+00 -0.36082881064617D-17 + 2 46 3 40 -0.10534837771692D+00 -0.98722984724519D-18 + 3 46 3 40 0.14870128380568D+01 0.25543534944036D-16 + 1 47 3 40 0.12354351356587D-01 -0.71374861396960D-17 + 2 47 3 40 0.36608589249550D-01 0.16385887987304D-17 + 3 47 3 40 -0.11789925547314D+00 0.62552333385603D-17 + 1 48 3 40 -0.13816776238180D+02 -0.14291612076024D-16 + 2 48 3 40 -0.13994635157626D+02 0.10794746905392D-15 + 3 48 3 40 -0.26062789866101D+02 -0.13349837441719D-15 + 1 49 3 40 -0.31472751484528D+00 -0.28526298824849D-16 + 2 49 3 40 -0.30305418033182D+00 -0.24061538247719D-16 + 3 49 3 40 0.49246290484206D+00 -0.12604391471011D-15 + 1 50 3 40 0.55427107238845D-02 -0.29283482771480D-16 + 2 50 3 40 -0.28225134787877D+00 -0.70541027980676D-17 + 3 50 3 40 0.17804663887290D+00 -0.21067715245105D-15 + 1 51 3 40 -0.43144431608079D+00 0.19198027700405D-16 + 2 51 3 40 -0.41751349235391D+00 -0.21077150921817D-16 + 3 51 3 40 -0.36088245076101D+00 0.67653953897266D-16 + 1 52 3 40 -0.26653682768797D+00 0.60369430731127D-17 + 2 52 3 40 0.32225879136919D+00 0.12286566167859D-16 + 3 52 3 40 0.15727104241102D+00 0.76132048088388D-16 + 1 53 3 40 -0.47002277043585D+00 0.93720610258231D-17 + 2 53 3 40 -0.46924060623007D+00 -0.29229672817881D-16 + 3 53 3 40 -0.37052391080198D+00 0.32201029926485D-15 + 1 54 3 40 -0.45135257442485D+00 0.12302452911076D-16 + 2 54 3 40 -0.46496587470431D+00 0.10631854407446D-15 + 3 54 3 40 -0.76046130464859D+00 -0.39617906976518D-16 + 1 55 3 40 -0.26176467133663D-02 -0.24798034318643D-17 + 2 55 3 40 -0.54559282343331D-01 0.48152710891848D-16 + 3 55 3 40 0.29520040261450D+00 -0.72394774727765D-16 + 1 56 3 40 -0.10982907017704D+01 -0.33705731639627D-16 + 2 56 3 40 -0.31255487756682D+01 -0.55315527828742D-17 + 3 56 3 40 -0.31906510664379D+01 0.15823990549511D-15 + 1 57 3 40 -0.12884369863742D+01 -0.58754854409016D-17 + 2 57 3 40 0.32259684776565D+01 -0.17068008542244D-18 + 3 57 3 40 -0.31342894738194D+01 -0.88607514576276D-16 + 1 58 3 40 0.13686463220820D+01 0.22725224094853D-16 + 2 58 3 40 0.32644467995037D+01 -0.45235716032022D-17 + 3 58 3 40 -0.31017691541785D+01 -0.12232793425919D-15 + 1 59 3 40 0.12789171090115D+01 -0.20630907013361D-17 + 2 59 3 40 -0.30830550896706D+01 0.31966924060225D-18 + 3 59 3 40 -0.29961780079478D+01 0.74087400237195D-16 + 1 60 3 40 -0.77343943757409D-01 0.28504479881029D-16 + 2 60 3 40 0.99437535727203D-01 0.25550146657735D-17 + 3 60 3 40 -0.26287299123699D+00 0.26291314056670D-15 + 1 61 3 40 -0.13299472840209D+00 -0.16320304136098D-16 + 2 61 3 40 -0.10643754625190D+00 0.10287882306471D-17 + 3 61 3 40 -0.22774994674944D+00 -0.10347801242285D-15 + 1 62 3 40 0.16133490743933D-01 0.23651359405454D-17 + 2 62 3 40 -0.10055451728178D+00 -0.13140877170276D-17 + 3 62 3 40 -0.19898996517372D+00 0.17845148489401D-15 + 1 63 3 40 0.10515103233070D+00 0.10310204440980D-16 + 2 63 3 40 0.10631103492100D+00 0.15893349837579D-17 + 3 63 3 40 -0.22848785946546D+00 -0.53741710362303D-16 + 1 64 3 40 -0.18950573049622D-01 0.13852932921017D-16 + 2 64 3 40 0.17597811415125D-01 -0.49987325152363D-17 + 3 64 3 40 -0.63414165802429D-01 0.22763687614211D-15 + 1 65 3 40 0.28203786703249D+00 -0.18667694996209D-17 + 2 65 3 40 0.12141742276502D+00 0.23333836041135D-18 + 3 65 3 40 0.24110516291537D-01 0.12644431790093D-15 + 1 1 1 41 -0.78592107040989D+00 0.12014157252260D-15 + 2 1 1 41 -0.47089004501018D+00 -0.12804254155932D-16 + 3 1 1 41 0.46029301411802D+00 -0.20035848490058D-16 + 1 2 1 41 0.22931480882146D+00 0.64639909426910D-16 + 2 2 1 41 -0.29022933731612D+00 0.12256332445013D-17 + 3 2 1 41 -0.35239402038777D+00 0.16821664075525D-16 + 1 3 1 41 0.18966302382550D+00 0.31328116502245D-16 + 2 3 1 41 0.35138773653670D+00 0.15153599287039D-17 + 3 3 1 41 0.27707858760759D+00 0.15443182079473D-16 + 1 4 1 41 -0.26326713723825D+02 0.14161043086736D-16 + 2 4 1 41 -0.14477059088582D+02 0.16709472231038D-16 + 3 4 1 41 0.14678196712314D+02 -0.10129818065871D-16 + 1 5 1 41 0.19309537375821D+00 -0.14836789038485D-16 + 2 5 1 41 -0.28826890102680D-01 0.29303263992839D-16 + 3 5 1 41 0.79971555683554D-02 -0.35071662020872D-17 + 1 6 1 41 -0.31512814179122D+00 -0.18810525319063D-16 + 2 6 1 41 -0.44224998145374D+00 -0.34817955188240D-16 + 3 6 1 41 0.45552372354200D+00 -0.44662330011167D-16 + 1 7 1 41 -0.44551561571322D+00 -0.10337610203413D-15 + 2 7 1 41 -0.46486050728527D+00 -0.25800025526993D-16 + 3 7 1 41 0.52775938851813D+00 0.10143282103304D-16 + 1 8 1 41 0.39734956014697D+00 -0.44782945243275D-16 + 2 8 1 41 -0.22867874047309D+00 0.23134724361960D-16 + 3 8 1 41 0.27710318582960D+00 0.89117958275257D-17 + 1 9 1 41 -0.30647115086679D+01 0.75453547203483D-16 + 2 9 1 41 0.13761677586902D+01 0.86607074969480D-16 + 3 9 1 41 -0.30596651663490D+01 0.17158800735280D-17 + 1 10 1 41 -0.30750329147910D+01 -0.25058941522698D-15 + 2 10 1 41 -0.12418553858657D+01 -0.15101944511725D-16 + 3 10 1 41 0.31522845379931D+01 0.21811996084789D-17 + 1 11 1 41 -0.21575864670251D+00 -0.12402079812921D-15 + 2 11 1 41 0.10667108461057D+00 -0.28716976078591D-16 + 3 11 1 41 0.85136664112450D-01 -0.30524623789333D-17 + 1 12 1 41 -0.26513434349829D+00 0.11322340339829D-15 + 2 12 1 41 -0.10882249164782D+00 0.67339568816492D-16 + 3 12 1 41 -0.88364808457843D-01 0.65871070115352D-19 + 1 13 1 41 -0.30574761769625D+01 0.28816878566845D-16 + 2 13 1 41 0.13103510648214D+01 0.20255146962398D-16 + 3 13 1 41 0.32811025291623D+01 -0.21618980383937D-17 + 1 14 1 41 -0.30813310039781D+01 0.20041279076104D-16 + 2 14 1 41 -0.13673988736778D+01 -0.27537150416554D-16 + 3 14 1 41 -0.31991757639689D+01 -0.23457238538332D-17 + 1 15 1 41 -0.23316055675786D+00 -0.18054524549380D-15 + 2 15 1 41 -0.12734062973723D+00 -0.51393913344621D-16 + 3 15 1 41 0.95524459798810D-01 -0.16794341715786D-17 + 1 16 1 41 -0.27140407075915D+02 -0.96708532294487D-16 + 2 16 1 41 0.14117436603271D+02 0.18682554214180D-16 + 3 16 1 41 -0.14657072719821D+02 -0.20199945636797D-16 + 1 17 1 41 0.19346724068186D+00 0.60281866042585D-16 + 2 17 1 41 -0.33125308076840D+00 0.10223384156560D-16 + 3 17 1 41 -0.29583507294684D+00 -0.40945062432313D-17 + 1 18 1 41 0.20291562690678D+00 -0.70774371711747D-17 + 2 18 1 41 0.26756134160941D+00 0.38136400019131D-16 + 3 18 1 41 0.34208337300894D+00 -0.12921447756048D-15 + 1 19 1 41 -0.77717561802623D+00 0.19326004178894D-15 + 2 19 1 41 0.59936482346721D+00 0.12724175181837D-16 + 3 19 1 41 -0.51547249503314D+00 -0.17213760079339D-16 + 1 20 1 41 0.47011509603786D+00 0.22799136698421D-17 + 2 20 1 41 0.24689778800014D+00 -0.32946601695342D-16 + 3 20 1 41 -0.31572160078403D+00 -0.71791831483968D-17 + 1 21 1 41 -0.42574411112178D+00 -0.29547481255485D-16 + 2 21 1 41 0.49371812521040D+00 0.11533288597449D-17 + 3 21 1 41 -0.48878863251807D+00 -0.11679586400222D-16 + 1 22 1 41 -0.69224099805295D-01 0.14556128446438D-15 + 2 22 1 41 0.28641075667356D+00 0.29957640688519D-16 + 3 22 1 41 -0.49185051631149D+00 -0.12569946018234D-17 + 1 23 1 41 0.25748660815604D+00 0.67126766811192D-16 + 2 23 1 41 0.16149580206863D-01 -0.24628120427737D-16 + 3 23 1 41 -0.44235881324102D-02 -0.12687881823076D-16 + 1 24 1 41 -0.25031735777227D+00 0.18580235768051D-15 + 2 24 1 41 -0.88994994054173D-01 -0.97123970619944D-18 + 3 24 1 41 -0.11878037928652D+00 -0.28298136406570D-16 + 1 25 1 41 -0.30434692768448D+01 -0.15876897312630D-15 + 2 25 1 41 0.31716179054068D+01 -0.34106452567997D-17 + 3 25 1 41 -0.12394348388543D+01 0.30743310572930D-16 + 1 26 1 41 -0.22263137836702D+00 -0.28542512474116D-15 + 2 26 1 41 0.10249546607287D+00 -0.36033671494239D-18 + 3 26 1 41 0.85795956644176D-01 -0.10198632332482D-15 + 1 27 1 41 -0.30469835809634D+01 0.92839043371813D-16 + 2 27 1 41 -0.31599033686937D+01 0.48497850691395D-18 + 3 27 1 41 0.13679500992356D+01 -0.84830809399127D-16 + 1 28 1 41 -0.23944541779591D+00 -0.22463840914782D-15 + 2 28 1 41 0.81668301919142D-01 0.13459925999463D-17 + 3 28 1 41 -0.12681713296579D+00 -0.79946637950779D-16 + 1 29 1 41 -0.30043583412530D+01 0.19816664642463D-15 + 2 29 1 41 -0.31155961361122D+01 0.43260207859762D-17 + 3 29 1 41 -0.12210961823145D+01 0.53714863767262D-16 + 1 30 1 41 -0.22652366868190D+00 0.20072793449005D-15 + 2 30 1 41 -0.93447115162301D-01 0.15469916589180D-17 + 3 30 1 41 0.73751630300904D-01 -0.74052643478326D-16 + 1 31 1 41 -0.31707252962002D+01 0.21404471287752D-15 + 2 31 1 41 0.31016132636269D+01 0.34185312449900D-18 + 3 31 1 41 0.12864439244776D+01 0.31434195062221D-16 + 1 32 1 41 0.57174427519656D-01 0.71409517476271D-16 + 2 32 1 41 -0.33794676895591D-01 -0.22360327118669D-16 + 3 32 1 41 -0.41327057252999D-01 0.28464401808445D-16 + 1 33 1 41 -0.75060432465814D+00 0.16977435971754D-16 + 2 33 1 41 0.48409400010692D+00 0.43181128251271D-16 + 3 33 1 41 0.49830994239345D+00 0.22795799185968D-16 + 1 34 1 41 -0.25336542636213D+02 0.27771036763913D-16 + 2 34 1 41 0.13677385535158D+02 0.31409568708498D-16 + 3 34 1 41 0.13879011340542D+02 0.20563593211528D-16 + 1 35 1 41 0.18950469390944D+00 0.15799560211960D-15 + 2 35 1 41 -0.32566797249812D+00 -0.31242065855923D-16 + 3 35 1 41 0.28250092722397D+00 0.20693845327411D-16 + 1 36 1 41 -0.46736184534095D+00 -0.17901365578314D-15 + 2 36 1 41 0.55398192425771D+00 -0.39377707775297D-17 + 3 36 1 41 0.42315601101540D+00 -0.61799032172832D-17 + 1 37 1 41 0.27664613061127D+00 -0.42510542195093D-16 + 2 37 1 41 -0.20626483504752D-02 0.41297805484548D-16 + 3 37 1 41 0.84150502029033D-02 -0.11267635184491D-16 + 1 38 1 41 0.36923994026915D+00 -0.87018926574893D-16 + 2 38 1 41 0.29686620036028D+00 -0.11494664613543D-16 + 3 38 1 41 0.20300347704440D+00 -0.30540929935489D-16 + 1 39 1 41 -0.37009599433221D+00 0.13879915415585D-15 + 2 39 1 41 0.46559347373896D+00 -0.13464596695033D-16 + 3 39 1 41 0.45192755122545D+00 0.28237747985065D-16 + 1 40 1 41 -0.23882617083894D+00 -0.95568405899509D-18 + 2 40 1 41 -0.10301842422670D-01 -0.62759201807652D-19 + 3 40 1 41 0.15564013824402D-02 0.34885474671894D-19 + 1 41 1 41 0.12000135680810D+03 0.00000000000000D+00 + 2 41 1 41 0.65807813668301D+00 0.00000000000000D+00 + 3 41 1 41 -0.12319061319889D+00 0.00000000000000D+00 + 1 42 1 41 0.16147086050100D+01 0.11592794089279D-16 + 2 42 1 41 0.60412417775755D-01 -0.73645325181542D-17 + 3 42 1 41 0.73096735208846D-01 -0.49891828674092D-17 + 1 43 1 41 -0.19374587556379D+00 -0.66407729957947D-17 + 2 43 1 41 -0.38138444980194D-01 0.96349173176513D-18 + 3 43 1 41 -0.42250900489266D-02 0.35057296813188D-17 + 1 44 1 41 -0.14155133170060D+00 -0.12186419503887D-17 + 2 44 1 41 -0.23946093418141D-01 0.23725664212051D-18 + 3 44 1 41 -0.15033632328304D-01 -0.95460460013380D-18 + 1 45 1 41 -0.42441281637999D+00 -0.95064176064464D-19 + 2 45 1 41 0.15132030000382D-02 0.42415430922872D-18 + 3 45 1 41 0.27334226525659D-02 0.14535929767918D-17 + 1 46 1 41 -0.12166211096925D+00 0.11881105514686D-16 + 2 46 1 41 -0.55066654507336D-02 -0.61867798269860D-17 + 3 46 1 41 0.52381069365460D-02 -0.75141624643762D-18 + 1 47 1 41 -0.19511828925899D+00 0.14863724878929D-16 + 2 47 1 41 0.61681663058351D-03 -0.20764582740947D-17 + 3 47 1 41 -0.78044554531756D-02 0.16120960678811D-18 + 1 48 1 41 0.17633524868552D+00 -0.14593778907767D-15 + 2 48 1 41 0.31821622388506D+00 0.22363850652000D-16 + 3 48 1 41 -0.19985889980303D+00 0.15382315699128D-16 + 1 49 1 41 -0.25794221122147D+02 -0.11339741659649D-15 + 2 49 1 41 -0.13679113574287D+02 -0.16213906582104D-17 + 3 49 1 41 -0.13738598552669D+02 -0.11033639226959D-16 + 1 50 1 41 -0.77015767769167D+00 0.68624727697384D-17 + 2 50 1 41 -0.52080259707712D+00 0.85932280129046D-17 + 3 50 1 41 -0.45010459969444D+00 -0.14550306018184D-16 + 1 51 1 41 0.15328911515379D+00 0.22935511955315D-16 + 2 51 1 41 -0.22564467784921D+00 -0.37967155148201D-17 + 3 51 1 41 0.26505761927301D+00 -0.22871369345921D-16 + 1 52 1 41 -0.49304833638928D+00 0.92274159084772D-16 + 2 52 1 41 -0.36482159917444D+00 -0.37167835539430D-17 + 3 52 1 41 -0.50130163375714D+00 -0.19960063787867D-16 + 1 53 1 41 0.52464302253744D+00 -0.18413282500552D-15 + 2 53 1 41 -0.34486761325059D+00 0.61314406850535D-17 + 3 53 1 41 -0.32135967168937D+00 -0.19657368520018D-16 + 1 54 1 41 0.24369046204170D+00 0.79993501214057D-16 + 2 54 1 41 -0.45448141448589D-01 0.42926919925945D-17 + 3 54 1 41 -0.67656636498694D-02 -0.13703524048869D-16 + 1 55 1 41 -0.45333922621259D+00 -0.12902544954218D-15 + 2 55 1 41 -0.50891363746346D+00 0.68923789604763D-17 + 3 55 1 41 -0.45618244863945D+00 0.20599829041689D-16 + 1 56 1 41 0.31882659330409D+01 0.10254270508497D-15 + 2 56 1 41 -0.12980637146701D+01 0.16368096972554D-16 + 3 56 1 41 0.12532163534032D+01 0.15734783744953D-16 + 1 57 1 41 0.31556423151157D+01 -0.92125952799169D-16 + 2 57 1 41 0.12789171090115D+01 -0.21045576566583D-16 + 3 57 1 41 0.12502012486378D+01 -0.38790189634594D-17 + 1 58 1 41 0.30753321824938D+01 -0.39601810518015D-15 + 2 58 1 41 -0.15222885050610D+01 0.24950819327949D-16 + 3 58 1 41 -0.14950307013228D+01 -0.72861783511038D-17 + 1 59 1 41 0.30499504829966D+01 0.15988045350396D-16 + 2 59 1 41 0.12884369863742D+01 0.25813592899401D-17 + 3 59 1 41 -0.13075662148973D+01 -0.30935250672217D-16 + 1 60 1 41 -0.20198582307324D-01 -0.79060863181558D-16 + 2 60 1 41 -0.12057846732557D+00 -0.70536368065283D-17 + 3 60 1 41 0.14193478143411D+00 -0.24271646385258D-16 + 1 61 1 41 -0.20122628419786D-01 0.10139056822552D-15 + 2 61 1 41 0.13299472840209D+00 -0.99676910790447D-17 + 3 61 1 41 0.11656811585862D+00 -0.35299585132042D-16 + 1 62 1 41 -0.23349397939445D-02 0.13491190487899D-15 + 2 62 1 41 -0.52633044411413D-01 0.18413141068901D-16 + 3 62 1 41 -0.66047993622599D-01 -0.10896606651496D-16 + 1 63 1 41 -0.19982934461856D-01 0.10264640110507D-16 + 2 63 1 41 0.10515103233070D+00 -0.22833166250657D-16 + 3 63 1 41 -0.95229223935948D-01 -0.21010128421068D-17 + 1 64 1 41 -0.97987867871755D-02 -0.20798307500719D-15 + 2 64 1 41 0.60297436310532D-01 0.20867803061298D-17 + 3 64 1 41 0.90537315177939D-02 -0.18510360229067D-16 + 1 65 1 41 -0.18114310583079D+00 0.13329933470115D-15 + 2 65 1 41 0.14635713762281D+00 0.96182200898209D-16 + 3 65 1 41 -0.31293946107064D+00 0.48633929458034D-17 + 1 1 2 41 -0.44525731202279D+00 -0.12804254155932D-16 + 2 1 2 41 -0.32341740368545D+00 -0.14478885570285D-16 + 3 1 2 41 0.43899228290186D+00 0.11038881090477D-16 + 1 2 2 41 -0.32406161278393D+00 0.12256332445013D-17 + 2 2 2 41 0.53072023251009D+00 0.32228163184437D-16 + 3 2 2 41 0.29567997302833D+00 0.32790356422316D-16 + 1 3 2 41 0.33632806315325D+00 0.15153599287039D-17 + 2 3 2 41 0.20982897868919D+00 -0.39112659298960D-16 + 3 3 2 41 0.34701699078134D+00 0.38057033482322D-16 + 1 4 2 41 -0.14353000606928D+02 0.16709472231038D-16 + 2 4 2 41 -0.26293428596271D+02 0.94586308139726D-16 + 3 4 2 41 0.14299918188595D+02 0.13225241993210D-16 + 1 5 2 41 -0.29764610515245D-01 0.29303263992839D-16 + 2 5 2 41 0.79503731643846D-01 -0.60998526855011D-16 + 3 5 2 41 0.94808506004455D-01 0.77591131328420D-16 + 1 6 2 41 -0.41510684461685D+00 -0.34817955188240D-16 + 2 6 2 41 -0.37168114771698D+00 0.64109673888409D-16 + 3 6 2 41 0.46766185471483D+00 0.15071325530872D-16 + 1 7 2 41 -0.48848716900826D+00 -0.25800025526993D-16 + 2 7 2 41 -0.84989106608483D+00 -0.65309347625669D-16 + 3 7 2 41 0.49790547501619D+00 0.15570426584155D-16 + 1 8 2 41 -0.23802945606287D+00 0.23134724361960D-16 + 2 8 2 41 0.19144027554771D+00 0.11974955373883D-15 + 3 8 2 41 -0.28569280361857D+00 0.10522156074609D-17 + 1 9 2 41 -0.15562468678296D+01 0.86607074969480D-16 + 2 9 2 41 0.31319582770427D+01 -0.12055363026128D-16 + 3 9 2 41 -0.13228488051543D+01 -0.11870513696608D-18 + 1 10 2 41 0.12876955666759D+01 -0.15101944511725D-16 + 2 10 2 41 0.31461925409856D+01 -0.80469203159531D-16 + 3 10 2 41 -0.13404540323597D+01 0.30664921039925D-16 + 1 11 2 41 -0.93845201709304D-01 -0.28716976078591D-16 + 2 11 2 41 -0.31187185983451D-01 0.20368288358563D-15 + 3 11 2 41 -0.11196569201530D+00 -0.16642759601902D-17 + 1 12 2 41 0.12442806753827D+00 0.67339568816492D-16 + 2 12 2 41 -0.39034711006479D-01 -0.52938231617044D-16 + 3 12 2 41 -0.11706295729564D+00 -0.44691267042621D-17 + 1 13 2 41 -0.13086307270575D+01 0.20255146962398D-16 + 2 13 2 41 0.31612187369587D+01 -0.52156842189781D-16 + 3 13 2 41 0.14207456754165D+01 0.10998652834260D-16 + 1 14 2 41 0.13194687112185D+01 -0.27537150416554D-16 + 2 14 2 41 0.31633305596009D+01 0.57297943215927D-16 + 3 14 2 41 0.12654763266823D+01 0.32015278705987D-16 + 1 15 2 41 0.10813448889692D+00 -0.51393913344621D-16 + 2 15 2 41 -0.49105577665193D-02 -0.18098461226146D-15 + 3 15 2 41 0.88500513317366D-01 -0.29887933576126D-16 + 1 16 2 41 0.14248162262728D+02 0.18682554214180D-16 + 2 16 2 41 -0.25536535365739D+02 -0.11749504693919D-15 + 3 16 2 41 0.13670665622604D+02 -0.23279470546055D-17 + 1 17 2 41 -0.32903125202355D+00 0.10223384156560D-16 + 2 17 2 41 0.17902564882348D+00 0.31239294445685D-15 + 3 17 2 41 0.29820000814503D+00 -0.29782286019881D-16 + 1 18 2 41 0.26767530867152D+00 0.38136400019131D-16 + 2 18 2 41 0.42850323800120D+00 -0.13830597453032D-15 + 3 18 2 41 0.29554103937407D+00 -0.17585919312637D-16 + 1 19 2 41 0.48194379625108D+00 0.12724175181837D-16 + 2 19 2 41 -0.50047434236650D+00 -0.38487715018198D-16 + 3 19 2 41 0.59930329214815D+00 0.41446051613458D-17 + 1 20 2 41 0.24424858336586D+00 -0.32946601695342D-16 + 2 20 2 41 0.18184668037693D+00 -0.59541488765687D-16 + 3 20 2 41 -0.30265282018593D+00 -0.32218093148700D-16 + 1 21 2 41 0.45567704351572D+00 0.11533288597449D-17 + 2 21 2 41 -0.81832269216946D+00 0.12526732262620D-15 + 3 21 2 41 0.47111525755596D+00 0.24071922998418D-16 + 1 22 2 41 0.25116868051170D+00 0.29957640688519D-16 + 2 22 2 41 -0.27726425993111D+00 0.27212095391570D-16 + 3 22 2 41 0.39151104755289D+00 -0.42955603229720D-16 + 1 23 2 41 0.13334431757601D-01 -0.24628120427737D-16 + 2 23 2 41 0.26462086478739D+00 0.13312263798914D-15 + 3 23 2 41 0.30515804448368D-01 0.64187801535443D-18 + 1 24 2 41 -0.85695375456052D-01 -0.97123970619944D-18 + 2 24 2 41 -0.24768484707755D+00 -0.26317836489360D-15 + 3 24 2 41 0.98733218058408D-01 0.72431025797954D-16 + 1 25 2 41 0.33078081980729D+01 -0.34106452567997D-17 + 2 25 2 41 -0.31777519768981D+01 0.14019793000312D-15 + 3 25 2 41 0.12600447229703D+01 -0.71513314251375D-16 + 1 26 2 41 0.90063254104477D-01 -0.36033671494239D-18 + 2 26 2 41 -0.23295520329197D+00 -0.14562735972811D-15 + 3 26 2 41 0.92029099056184D-01 0.53584478560378D-16 + 1 27 2 41 -0.31491568175680D+01 0.48497850691395D-18 + 2 27 2 41 -0.30437881571425D+01 -0.25357775682247D-15 + 3 27 2 41 0.13599716217812D+01 0.27938550074350D-16 + 1 28 2 41 0.11482546015925D+00 0.13459925999463D-17 + 2 28 2 41 -0.21310322738958D+00 0.35806271326637D-16 + 3 28 2 41 -0.11344991498160D+00 0.44017459249709D-16 + 1 29 2 41 -0.31738889652452D+01 0.43260207859762D-17 + 2 29 2 41 -0.30423786554363D+01 -0.19897683214653D-15 + 3 29 2 41 -0.12571940962572D+01 -0.49329544785704D-18 + 1 30 2 41 -0.11753736046785D+00 0.15469916589180D-17 + 2 30 2 41 -0.23208147027117D+00 -0.20878202247162D-15 + 3 30 2 41 -0.85666039169640D-01 -0.15685724585537D-16 + 1 31 2 41 0.31091888531854D+01 0.34185312449900D-18 + 2 31 2 41 -0.30139916482755D+01 0.98836395442429D-16 + 3 31 2 41 -0.13756832393009D+01 -0.80448699464083D-16 + 1 32 2 41 -0.37616317979234D-02 -0.22360327118669D-16 + 2 32 2 41 -0.37611087067122D+00 0.11539427420282D-16 + 3 32 2 41 -0.20196117384881D-01 -0.13967888308639D-15 + 1 33 2 41 0.41642775373069D+00 0.43181128251271D-16 + 2 33 2 41 -0.32229451800095D+00 0.11876887430313D-15 + 3 33 2 41 -0.42944402667853D+00 -0.67865608381018D-18 + 1 34 2 41 0.13733332541572D+02 0.31409568708498D-16 + 2 34 2 41 -0.25999938377806D+02 -0.20051462674513D-15 + 3 34 2 41 -0.14107929617707D+02 -0.36457293167259D-16 + 1 35 2 41 -0.34179935926502D+00 -0.31242065855923D-16 + 2 35 2 41 0.16835463342987D+00 0.10468074372124D-16 + 3 35 2 41 -0.30437217106272D+00 -0.50222232535240D-17 + 1 36 2 41 0.48216063573330D+00 -0.39377707775297D-17 + 2 36 2 41 -0.45552851098672D+00 0.14496657914972D-15 + 3 36 2 41 -0.55199541123175D+00 -0.33757024399619D-16 + 1 37 2 41 0.11650839707680D-02 0.41297805484548D-16 + 2 37 2 41 0.29691473446176D+00 0.17055998936628D-15 + 3 37 2 41 0.18427734937984D-01 -0.23230236035303D-17 + 1 38 2 41 0.33003961467011D+00 -0.11494664613543D-16 + 2 38 2 41 0.22912581400824D+00 0.13170352830049D-15 + 3 38 2 41 0.27594970481658D+00 -0.38471565903130D-16 + 1 39 2 41 0.48491587255602D+00 -0.13464596695033D-16 + 2 39 2 41 -0.78547982018116D+00 0.83898634064113D-16 + 3 39 2 41 -0.46488166323621D+00 0.19731461198565D-16 + 1 40 2 41 0.10301842422670D-01 -0.62759201807652D-19 + 2 40 2 41 -0.23726627446707D+00 -0.29775888644520D-17 + 3 40 2 41 -0.21764363757139D-01 0.34811055725744D-18 + 1 41 2 41 0.65807813668300D+00 0.00000000000000D+00 + 2 41 2 41 0.11998085918812D+03 0.00000000000000D+00 + 3 41 2 41 -0.81338717684533D+00 0.00000000000000D+00 + 1 42 2 41 -0.11525350264608D-01 -0.73645325181542D-17 + 2 42 2 41 -0.18124573639915D+00 0.98250082766717D-18 + 3 42 2 41 -0.51528606358534D-01 -0.16648826505494D-17 + 1 43 2 41 0.24726760963583D-01 0.96349173176513D-18 + 2 43 2 41 -0.40246564189427D+00 0.22396415988324D-16 + 3 43 2 41 -0.34209735405513D-01 -0.57752794482760D-17 + 1 44 2 41 0.23946093418141D-01 0.23725664212051D-18 + 2 44 2 41 0.15986550337781D+01 -0.25495679400155D-18 + 3 44 2 41 0.70666205511097D-02 0.00000000000000D+00 + 1 45 2 41 0.15132030000382D-02 0.42415430922872D-18 + 2 45 2 41 -0.22649195687380D+00 -0.14128458641634D-17 + 3 45 2 41 0.24459884158650D-03 0.13317998976295D-19 + 1 46 2 41 0.63431380755933D-02 -0.61867798269860D-17 + 2 46 2 41 -0.12424139542536D+00 -0.16642128059405D-17 + 3 46 2 41 0.69431513153944D-02 0.63523666856368D-18 + 1 47 2 41 0.36698199332301D-01 -0.20764582740947D-17 + 2 47 2 41 -0.12417076851961D+00 -0.20417808732613D-18 + 3 47 2 41 0.73131832143502D-01 -0.13391638364678D-17 + 1 48 2 41 0.27566745941855D+00 0.22363850652000D-16 + 2 48 2 41 0.21967419079835D+00 0.11956080045887D-15 + 3 48 2 41 -0.23274844943711D+00 -0.22492476719419D-16 + 1 49 2 41 -0.13749665086973D+02 -0.16213906582104D-17 + 2 49 2 41 -0.26190006915435D+02 -0.18227479656800D-15 + 3 49 2 41 -0.13838939719675D+02 0.90373136420026D-16 + 1 50 2 41 -0.30544660227199D+00 0.85932280129046D-17 + 2 50 2 41 -0.52469610687681D+00 0.76708606970989D-16 + 3 50 2 41 -0.46664333485389D+00 -0.18329230980819D-16 + 1 51 2 41 -0.29601155427096D+00 -0.37967155148201D-17 + 2 51 2 41 0.43222364377866D+00 0.36472292827917D-15 + 3 51 2 41 -0.27340328278776D+00 -0.30163411658837D-16 + 1 52 2 41 -0.35014435252327D+00 -0.37167835539430D-17 + 2 52 2 41 -0.91736458850017D+00 0.43126617594137D-16 + 3 52 2 41 -0.44375316277967D+00 -0.40919773277429D-16 + 1 53 2 41 -0.33179221431110D+00 0.61314406850535D-17 + 2 53 2 41 0.19316941103678D+00 -0.54842732758936D-16 + 3 53 2 41 0.34435770576832D+00 -0.29526709527295D-16 + 1 54 2 41 -0.14456368115461D-01 0.42926919925945D-17 + 2 54 2 41 0.26354632444338D+00 0.81390672841992D-16 + 3 54 2 41 -0.18546293613142D-01 -0.11050643390575D-16 + 1 55 2 41 -0.52535734949560D+00 0.68923789604763D-17 + 2 55 2 41 -0.44735271654359D+00 0.90668263813951D-16 + 3 55 2 41 -0.47710773077175D+00 -0.26547275773561D-16 + 1 56 2 41 0.14011878085562D+01 0.16368096972554D-16 + 2 56 2 41 -0.32375816820263D+01 -0.20220481548604D-16 + 3 56 2 41 0.31874796976435D+01 -0.14255823955799D-17 + 1 57 2 41 -0.12502012486378D+01 -0.21045576566583D-16 + 2 57 2 41 -0.29961780079478D+01 -0.24792192816495D-15 + 3 57 2 41 -0.31184796091369D+01 -0.20210102034181D-18 + 1 58 2 41 0.11033339330700D+01 0.24950819327949D-16 + 2 58 2 41 -0.29367943623405D+01 -0.76014457817681D-16 + 3 58 2 41 -0.31475754789696D+01 -0.85488196853512D-18 + 1 59 2 41 -0.13075662148973D+01 0.25813592899401D-17 + 2 59 2 41 -0.31342894738195D+01 0.14515987184342D-15 + 3 59 2 41 0.33093056973859D+01 0.45860476559442D-18 + 1 60 2 41 0.89382574095878D-01 -0.70536368065283D-17 + 2 60 2 41 -0.21575497152441D+00 -0.46572858990205D-15 + 3 60 2 41 -0.10413342879518D+00 0.26920949323928D-17 + 1 61 2 41 -0.95229223935948D-01 -0.99676910790447D-17 + 2 61 2 41 -0.22774994674944D+00 0.83502434814958D-16 + 3 61 2 41 0.10270295409905D+00 0.13357940416930D-17 + 1 62 2 41 0.11767243478525D+00 0.18413141068901D-16 + 2 62 2 41 -0.22821706536484D+00 0.34435318292973D-15 + 3 62 2 41 0.14387887629046D+00 0.18818261824201D-17 + 1 63 2 41 -0.11656811585862D+00 -0.22833166250657D-16 + 2 63 2 41 -0.22848785946546D+00 -0.21497106128048D-15 + 3 63 2 41 -0.10272258709109D+00 -0.37678334984323D-18 + 1 64 2 41 -0.38414445183867D-02 0.20867803061298D-17 + 2 64 2 41 0.77973259181355D-01 -0.11993827779681D-17 + 3 64 2 41 -0.88917535510205D-02 0.21550395169725D-16 + 1 65 2 41 -0.14625636154839D+00 0.96182200898209D-16 + 2 65 2 41 0.36471902416285D+00 -0.10226217566569D-15 + 3 65 2 41 0.92189162375361D-01 -0.83094153791000D-17 + 1 1 3 41 0.47064181745670D+00 -0.20035848490058D-16 + 2 1 3 41 0.42846589831313D+00 0.11038881090477D-16 + 3 1 3 41 -0.34766337276457D+00 0.18236380922433D-15 + 1 2 3 41 -0.35660563057979D+00 0.16821664075525D-16 + 2 2 3 41 0.21799906534147D+00 0.32790356422316D-16 + 3 2 3 41 0.19045136784064D+00 0.21694366459962D-15 + 1 3 3 41 0.23380228617191D+00 0.15443182079473D-16 + 2 3 3 41 0.37492435584406D+00 0.38057033482322D-16 + 3 3 3 41 0.58598536914088D+00 0.11810972022531D-15 + 1 4 3 41 0.14705333028176D+02 -0.10129818065871D-16 + 2 4 3 41 0.14444249625280D+02 0.13225241993210D-16 + 3 4 3 41 -0.26673406555051D+02 0.65484691255865D-17 + 1 5 3 41 0.29121581310744D-01 -0.35071662020872D-17 + 2 5 3 41 -0.50694550586705D-01 0.77591131328420D-16 + 3 5 3 41 0.24478245845664D+00 0.36144864947936D-16 + 1 6 3 41 0.48369823738221D+00 -0.44662330011167D-16 + 2 6 3 41 0.45833681568794D+00 0.15071325530872D-16 + 3 6 3 41 -0.78338733454981D+00 -0.12400177226426D-15 + 1 7 3 41 0.52437964590650D+00 0.10143282103304D-16 + 2 7 3 41 0.43513197182491D+00 0.15570426584155D-16 + 3 7 3 41 -0.44967235785733D+00 -0.36328537261174D-16 + 1 8 3 41 0.24735014074085D+00 0.89117958275257D-17 + 2 8 3 41 -0.30778667023404D+00 0.10522156074609D-17 + 3 8 3 41 0.18807102073722D+00 -0.24404270063690D-15 + 1 9 3 41 -0.31071750059116D+01 0.17158800735280D-17 + 2 9 3 41 0.12023475815095D+01 -0.11870513696608D-18 + 3 9 3 41 -0.30652285689548D+01 -0.10318784383395D-15 + 1 10 3 41 0.31880379749958D+01 0.21811996084789D-17 + 2 10 3 41 0.12833129941631D+01 0.30664921039925D-16 + 3 10 3 41 -0.31010690740300D+01 -0.44296156329578D-16 + 1 11 3 41 0.11601899127567D+00 -0.30524623789333D-17 + 2 11 3 41 0.99859390646110D-01 -0.16642759601902D-17 + 3 11 3 41 -0.25453576973771D+00 0.18290113529462D-15 + 1 12 3 41 -0.65195109669497D-01 0.65871070115352D-19 + 2 12 3 41 0.13376023552567D+00 -0.44691267042621D-17 + 3 12 3 41 -0.25204749713281D+00 0.11363217774002D-15 + 1 13 3 41 0.31534604980328D+01 -0.21618980383937D-17 + 2 13 3 41 -0.13775885799320D+01 0.10998652834260D-16 + 3 13 3 41 -0.31111385464382D+01 0.30922826836000D-15 + 1 14 3 41 -0.32039522267035D+01 -0.23457238538332D-17 + 2 14 3 41 -0.12511127867583D+01 0.32015278705987D-16 + 3 14 3 41 -0.31136975303414D+01 0.18025000376114D-15 + 1 15 3 41 0.10856887234079D+00 -0.16794341715786D-17 + 2 15 3 41 -0.69079466598022D-01 -0.29887933576126D-16 + 3 15 3 41 -0.22820182169768D+00 -0.27906887810296D-15 + 1 16 3 41 -0.14840802524424D+02 -0.20199945636797D-16 + 2 16 3 41 0.13709035226119D+02 -0.23279470546055D-17 + 3 16 3 41 -0.25763641485448D+02 -0.14645567754873D-16 + 1 17 3 41 -0.26040622557041D+00 -0.40945062432313D-17 + 2 17 3 41 0.27558435795446D+00 -0.29782286019881D-16 + 3 17 3 41 0.45098802112201D+00 -0.68870664778187D-15 + 1 18 3 41 0.32023862973356D+00 -0.12921447756048D-15 + 2 18 3 41 0.26183416531372D+00 -0.17585919312637D-16 + 3 18 3 41 0.23777045636008D+00 0.86023921841131D-16 + 1 19 3 41 -0.44805328709032D+00 -0.17213760079339D-16 + 2 19 3 41 0.61055482526110D+00 0.41446051613458D-17 + 3 19 3 41 -0.51190641997774D+00 -0.23737690592354D-15 + 1 20 3 41 -0.32358218209426D+00 -0.71791831483968D-17 + 2 20 3 41 -0.30091129439677D+00 -0.32218093148700D-16 + 3 20 3 41 0.24708348230195D+00 0.60175580749053D-16 + 1 21 3 41 -0.46661777973952D+00 -0.11679586400222D-16 + 2 21 3 41 0.46213141658107D+00 0.24071922998418D-16 + 3 21 3 41 -0.37201695309457D+00 0.36018314280433D-15 + 1 22 3 41 -0.34082333285975D+00 -0.12569946018234D-17 + 2 22 3 41 0.60352768827599D+00 -0.42955603229720D-16 + 3 22 3 41 -0.81185336706516D+00 -0.14414922093453D-15 + 1 23 3 41 -0.22643509870746D-01 -0.12687881823076D-16 + 2 23 3 41 0.27822975149863D-01 0.64187801535443D-18 + 3 23 3 41 0.26805640929539D+00 0.94894963012676D-16 + 1 24 3 41 0.98105471988990D-01 -0.28298136406570D-16 + 2 24 3 41 -0.99268420215567D-01 0.72431025797954D-16 + 3 24 3 41 -0.40209081495162D-01 -0.28812547072966D-16 + 1 25 3 41 0.13270267936535D+01 0.30743310572930D-16 + 2 25 3 41 -0.12419318315307D+01 -0.71513314251375D-16 + 3 25 3 41 0.30332084301199D+01 0.10267626701612D-15 + 1 26 3 41 -0.12077597060909D+00 -0.10198632332482D-15 + 2 26 3 41 -0.12548940319258D+00 0.53584478560378D-16 + 3 26 3 41 -0.18398839271199D-01 0.97776845020196D-16 + 1 27 3 41 -0.12503487019539D+01 -0.84830809399127D-16 + 2 27 3 41 -0.12746428311669D+01 0.27938550074350D-16 + 3 27 3 41 0.30996653802460D+01 -0.31638704776469D-16 + 1 28 3 41 0.80210145194051D-01 -0.79946637950779D-16 + 2 28 3 41 0.73875759257911D-01 0.44017459249709D-16 + 3 28 3 41 -0.17411223374566D-01 -0.24936594775184D-16 + 1 29 3 41 0.13652157069082D+01 0.53714863767262D-16 + 2 29 3 41 0.14276448489624D+01 -0.49329544785704D-18 + 3 29 3 41 0.30610124002741D+01 0.88990801639938D-16 + 1 30 3 41 -0.10238686586998D+00 -0.74052643478326D-16 + 2 30 3 41 0.12466780722943D+00 -0.15685724585537D-16 + 3 30 3 41 -0.52495826598269D-01 0.22539260598753D-17 + 1 31 3 41 -0.12344925828659D+01 0.31434195062221D-16 + 2 31 3 41 0.11343705741543D+01 -0.80448699464083D-16 + 3 31 3 41 0.30446783493883D+01 -0.35539007837499D-16 + 1 32 3 41 -0.55427107238872D-02 0.28464401808445D-16 + 2 32 3 41 -0.28225134787878D+00 -0.13967888308639D-15 + 3 32 3 41 0.17804663887289D+00 0.47559089753192D-16 + 1 33 3 41 0.43144431608079D+00 0.22795799185968D-16 + 2 33 3 41 -0.41751349235391D+00 -0.67865608381018D-18 + 3 33 3 41 -0.36088245076100D+00 0.14831088676344D-15 + 1 34 3 41 0.13816776238180D+02 0.20563593211528D-16 + 2 34 3 41 -0.13994635157626D+02 -0.36457293167259D-16 + 3 34 3 41 -0.26062789866101D+02 -0.17314295247218D-15 + 1 35 3 41 0.31472751484529D+00 0.20693845327411D-16 + 2 35 3 41 -0.30305418033182D+00 -0.50222232535240D-17 + 3 35 3 41 0.49246290484206D+00 0.93980852025338D-16 + 1 36 3 41 0.45135257442485D+00 -0.61799032172832D-17 + 2 36 3 41 -0.46496587470431D+00 -0.33757024399619D-16 + 3 36 3 41 -0.76046130464859D+00 -0.16739184652223D-16 + 1 37 3 41 0.26176467133669D-02 -0.11267635184491D-16 + 2 37 3 41 -0.54559282343331D-01 -0.23230236035303D-17 + 3 37 3 41 0.29520040261450D+00 -0.82730251279995D-16 + 1 38 3 41 0.26653682768796D+00 -0.30540929935489D-16 + 2 38 3 41 0.32225879136919D+00 -0.38471565903130D-16 + 3 38 3 41 0.15727104241102D+00 -0.25713635549765D-15 + 1 39 3 41 0.47002277043586D+00 0.28237747985065D-16 + 2 39 3 41 -0.46924060623007D+00 0.19731461198565D-16 + 3 39 3 41 -0.37052391080198D+00 0.55333650875189D-17 + 1 40 3 41 -0.15564013824402D-02 0.34885474671894D-19 + 2 40 3 41 -0.21764363757139D-01 0.34811055725744D-18 + 3 40 3 41 -0.40132057144185D+00 -0.12424964233740D-18 + 1 41 3 41 -0.12319061319889D+00 0.00000000000000D+00 + 2 41 3 41 -0.81338717684533D+00 0.00000000000000D+00 + 3 41 3 41 0.11996040263773D+03 0.00000000000000D+00 + 1 42 3 41 0.25656366926326D-01 -0.49891828674092D-17 + 2 42 3 41 -0.25756283878900D-01 -0.16648826505494D-17 + 3 42 3 41 -0.10723510414042D+00 0.44677701939121D-16 + 1 43 3 41 0.28052321328861D-01 0.35057296813188D-17 + 2 43 3 41 0.88364560270814D-01 -0.57752794482760D-17 + 3 43 3 41 -0.25125029174601D+00 -0.43261485396937D-17 + 1 44 3 41 -0.15033632328304D-01 -0.95460460013380D-18 + 2 44 3 41 -0.70666205511097D-02 0.00000000000000D+00 + 3 44 3 41 -0.17315680606386D+00 0.45543854965037D-18 + 1 45 3 41 -0.27334226525660D-02 0.14535929767918D-17 + 2 45 3 41 -0.24459884158648D-03 0.13317998976295D-19 + 3 45 3 41 -0.21965773484532D+00 0.23479015739090D-18 + 1 46 3 41 -0.12354351356588D-01 -0.75141624643762D-18 + 2 46 3 41 0.36608589249550D-01 0.63523666856368D-18 + 3 46 3 41 -0.11789925547314D+00 0.48426920190209D-17 + 1 47 3 41 -0.13360427838615D+00 0.16120960678811D-18 + 2 47 3 41 -0.10534837771692D+00 -0.13391638364678D-17 + 3 47 3 41 0.14870128380568D+01 -0.13624768704544D-17 + 1 48 3 41 -0.29923597616247D+00 0.15382315699128D-16 + 2 48 3 41 -0.28016256143628D+00 -0.22492476719419D-16 + 3 48 3 41 0.42551965214465D+00 -0.36838391168096D-16 + 1 49 3 41 -0.13654215728241D+02 -0.11033639226959D-16 + 2 49 3 41 -0.13932091528740D+02 0.90373136420026D-16 + 3 49 3 41 -0.25755365692805D+02 -0.31166519053562D-15 + 1 50 3 41 -0.42673169159092D+00 -0.14550306018184D-16 + 2 50 3 41 -0.41374287618090D+00 -0.18329230980819D-16 + 3 50 3 41 -0.45982337843817D+00 0.40872123108471D-16 + 1 51 3 41 0.31389755507366D+00 -0.22871369345921D-16 + 2 51 3 41 -0.30191942014920D+00 -0.30163411658837D-16 + 3 51 3 41 0.17637186941307D+00 0.10081446146949D-16 + 1 52 3 41 -0.43710435220490D+00 -0.19960063787867D-16 + 2 52 3 41 -0.46614700581314D+00 -0.40919773277429D-16 + 3 52 3 41 -0.37587517196716D+00 -0.28891726005081D-16 + 1 53 3 41 -0.32051276862331D+00 -0.19657368520018D-16 + 2 53 3 41 0.32860218100949D+00 -0.29526709527295D-16 + 3 53 3 41 0.17794304813893D+00 0.34313567306297D-16 + 1 54 3 41 -0.22552624962986D-01 -0.13703524048869D-16 + 2 54 3 41 -0.28309789651069D-02 -0.11050643390575D-16 + 3 54 3 41 0.29116309027544D+00 -0.46790243890421D-16 + 1 55 3 41 -0.51501859925011D+00 0.20599829041689D-16 + 2 55 3 41 -0.48027594224421D+00 -0.26547275773561D-16 + 3 55 3 41 -0.80735361833169D+00 0.55778408912377D-16 + 1 56 3 41 -0.13686463220820D+01 0.15734783744953D-16 + 2 56 3 41 0.32644467995036D+01 -0.14255823955799D-17 + 3 56 3 41 -0.31017691541785D+01 -0.12993406487471D-15 + 1 57 3 41 -0.12789171090115D+01 -0.38790189634594D-17 + 2 57 3 41 -0.30830550896705D+01 -0.20210102034181D-18 + 3 57 3 41 -0.29961780079477D+01 0.18648473470474D-15 + 1 58 3 41 0.10982907017704D+01 -0.72861783511038D-17 + 2 58 3 41 -0.31255487756682D+01 -0.85488196853512D-18 + 3 58 3 41 -0.31906510664380D+01 -0.32521666089627D-15 + 1 59 3 41 0.12884369863742D+01 -0.30935250672217D-16 + 2 59 3 41 0.32259684776565D+01 0.45860476559442D-18 + 3 59 3 41 -0.31342894738195D+01 0.24968449985316D-15 + 1 60 3 41 -0.16133490743932D-01 -0.24271646385258D-16 + 2 60 3 41 -0.10055451728177D+00 0.26920949323928D-17 + 3 60 3 41 -0.19898996517371D+00 -0.40150013883258D-16 + 1 61 3 41 -0.10515103233069D+00 -0.35299585132042D-16 + 2 61 3 41 0.10631103492100D+00 0.13357940416930D-17 + 3 61 3 41 -0.22848785946546D+00 -0.23038072355234D-15 + 1 62 3 41 0.77343943757409D-01 -0.10896606651496D-16 + 2 62 3 41 0.99437535727202D-01 0.18818261824201D-17 + 3 62 3 41 -0.26287299123699D+00 -0.28696687831512D-17 + 1 63 3 41 0.13299472840209D+00 -0.21010128421068D-17 + 2 63 3 41 -0.10643754625190D+00 -0.37678334984323D-18 + 3 63 3 41 -0.22774994674944D+00 0.15323980583610D-15 + 1 64 3 41 0.18950573049616D-01 -0.18510360229067D-16 + 2 64 3 41 0.18055223983221D-01 0.21550395169725D-16 + 3 64 3 41 -0.63414165802431D-01 0.82873070790833D-16 + 1 65 3 41 -0.28203786703246D+00 0.48633929458034D-17 + 2 65 3 41 0.12066294572834D+00 -0.83094153791000D-17 + 3 65 3 41 0.24110516291536D-01 0.16081896753488D-15 + 1 1 1 42 -0.24223590393392D+02 0.10938037507841D-15 + 2 1 1 42 -0.11927098542457D+02 0.10835115320066D-16 + 3 1 1 42 0.13529215902066D+02 -0.68797183834911D-16 + 1 2 1 42 0.62025028896633D-02 -0.38501014043204D-15 + 2 2 1 42 0.37197994347043D+00 -0.38899848346692D-17 + 3 2 1 42 0.23104945061833D+00 -0.99493672468050D-17 + 1 3 1 42 0.62632122828491D+00 0.89409868384153D-16 + 2 3 1 42 -0.83325922317388D+00 -0.34238497990146D-17 + 3 3 1 42 -0.78293220003702D+00 0.30790950705566D-16 + 1 4 1 42 -0.81083552164948D+00 0.17687020909508D-15 + 2 4 1 42 -0.54032163431437D+00 -0.52144891228215D-17 + 3 4 1 42 0.44096668991251D+00 0.39179301758811D-16 + 1 5 1 42 0.43428936181701D-01 0.94545205695237D-16 + 2 5 1 42 0.16931048991710D+01 0.19114060298387D-16 + 3 5 1 42 -0.13093678493619D+01 -0.69040648911232D-16 + 1 6 1 42 -0.17175783798410D+00 -0.30065562947533D-15 + 2 6 1 42 -0.33826748421716D+00 0.52200790863636D-18 + 3 6 1 42 0.46034884881433D+00 0.18063486178880D-16 + 1 7 1 42 -0.49336914517858D+00 0.33059183908585D-17 + 2 7 1 42 -0.43441998613115D+00 -0.10911224788215D-16 + 3 7 1 42 0.50939446161318D+00 0.28456049669201D-16 + 1 8 1 42 0.26686550422134D+00 0.92769139161413D-16 + 2 8 1 42 -0.10707045324182D+00 -0.32230286112203D-16 + 3 8 1 42 0.20825616100104D-01 -0.42861683955072D-17 + 1 9 1 42 -0.11874443038822D+00 -0.29971951652724D-15 + 2 9 1 42 -0.12365796421604D+00 0.48520626610027D-16 + 3 9 1 42 0.80597005297447D-01 0.11475581028818D-17 + 1 10 1 42 -0.24785948145176D+00 0.91123914626047D-17 + 2 10 1 42 0.14675843406442D+00 -0.57214473753962D-16 + 3 10 1 42 0.11878586879503D+00 0.24330429219626D-17 + 1 11 1 42 -0.30638988320256D+01 0.13573745959604D-15 + 2 11 1 42 -0.13515021593717D+01 -0.22313725225140D-17 + 3 11 1 42 0.31640814690755D+01 -0.34902320696981D-17 + 1 12 1 42 -0.32157297915032D+01 -0.20754656563471D-16 + 2 12 1 42 0.12612871728019D+01 0.22671987094492D-16 + 3 12 1 42 -0.37358331173981D+01 0.15111085623691D-17 + 1 13 1 42 -0.21132000918250D+00 0.32504649390960D-15 + 2 13 1 42 -0.71961574256988D-01 0.32413230900477D-16 + 3 13 1 42 0.13055966252282D+00 0.39301724004814D-17 + 1 14 1 42 -0.23633934167008D+00 0.15066539774597D-15 + 2 14 1 42 0.14168161790001D+00 -0.39645941650611D-16 + 3 14 1 42 -0.90666799791500D-01 0.85660035992517D-18 + 1 15 1 42 -0.30001519778860D+01 -0.19558765470944D-15 + 2 15 1 42 0.12254845032310D+01 0.91127269839366D-16 + 3 15 1 42 0.30660005531584D+01 -0.26023024474786D-17 + 1 16 1 42 -0.80985736801164D+00 -0.78428925884405D-17 + 2 16 1 42 0.52165191449956D+00 0.32368668279362D-16 + 3 16 1 42 -0.28684620462767D+00 0.53182445321013D-17 + 1 17 1 42 0.11542738827357D+00 -0.27423489562879D-15 + 2 17 1 42 0.26119564154638D+00 -0.22266132831510D-17 + 3 17 1 42 0.17250536151423D+00 0.22214224448731D-16 + 1 18 1 42 0.21582940437262D+00 -0.70890541797322D-16 + 2 18 1 42 -0.43846442122255D+00 -0.24836488828117D-16 + 3 18 1 42 -0.32434742287266D+00 -0.11464421814436D-15 + 1 19 1 42 -0.27022189572521D+02 0.93611185641633D-16 + 2 19 1 42 0.16629379756977D+02 0.45779744246185D-16 + 3 19 1 42 -0.14835666597383D+02 -0.55488322367526D-16 + 1 20 1 42 0.20033384962360D+00 -0.90599889973678D-16 + 2 20 1 42 0.15681017887169D+00 0.14355961634205D-16 + 3 20 1 42 0.24696374662181D-02 -0.17569445221960D-17 + 1 21 1 42 -0.29770639034201D+00 -0.87487286975828D-16 + 2 21 1 42 0.43245298590619D+00 0.28284703160405D-17 + 3 21 1 42 -0.53882773265772D+00 -0.67899520575019D-17 + 1 22 1 42 0.33793601791265D+00 -0.10223733280564D-15 + 2 22 1 42 -0.17793550258318D+01 -0.14042689093737D-16 + 3 22 1 42 0.16233365719528D+01 0.13622961380360D-16 + 1 23 1 42 0.57599511951002D+00 0.52541833693461D-16 + 2 23 1 42 0.38139056523928D+00 0.36356046666793D-16 + 3 23 1 42 -0.29550212064914D+00 0.35113179031066D-16 + 1 24 1 42 -0.29148046783835D+01 0.15872453666045D-15 + 2 24 1 42 -0.31270947786230D+01 0.97828324817449D-18 + 3 24 1 42 0.11584240695734D+01 -0.49118588151808D-16 + 1 25 1 42 -0.22877488748024D+00 -0.66852004447351D-16 + 2 25 1 42 0.15007314540031D+00 0.35645950684254D-17 + 3 25 1 42 0.15578959509998D+00 -0.18920706401751D-16 + 1 26 1 42 -0.32206381252867D+01 -0.12678186792358D-15 + 2 26 1 42 0.32345058521664D+01 -0.42848600421670D-18 + 3 26 1 42 -0.16017402743485D+01 0.10030564881116D-15 + 1 27 1 42 -0.27692148443529D+00 -0.15789175597836D-15 + 2 27 1 42 -0.14976597231751D+00 -0.46594284952052D-18 + 3 27 1 42 -0.19607991922541D-01 0.88702337683758D-16 + 1 28 1 42 -0.31127751678940D+01 -0.17207357537903D-15 + 2 28 1 42 0.31321845540438D+01 -0.48516161247586D-17 + 3 28 1 42 0.12076686035773D+01 0.19555602528706D-16 + 1 29 1 42 -0.22012489406828D+00 0.23459739940569D-15 + 2 29 1 42 -0.82223371077732D-01 -0.30509402428974D-17 + 3 29 1 42 -0.10226835393024D+00 -0.84858340830525D-16 + 1 30 1 42 -0.28051599479846D+01 0.16991262331794D-16 + 2 30 1 42 -0.32779236897385D+01 0.60214210282312D-17 + 3 30 1 42 -0.20031063282269D+01 0.33767567768964D-17 + 1 31 1 42 -0.11821621565578D+00 -0.77626233077795D-16 + 2 31 1 42 0.24928118504911D+00 0.45975116271835D-17 + 3 31 1 42 -0.11779011964277D+00 -0.15569740300679D-16 + 1 32 1 42 0.24026317668265D+00 0.10348280162275D-15 + 2 32 1 42 0.12568042557563D+01 0.30717009714749D-16 + 3 32 1 42 0.19589691143570D+01 -0.10202856592746D-16 + 1 33 1 42 -0.28281032658509D+02 0.99120858753411D-16 + 2 33 1 42 0.14657929762345D+02 -0.45258169104041D-16 + 3 33 1 42 0.14256821798390D+02 0.13048442868159D-16 + 1 34 1 42 -0.78153175645181D+00 0.51048572957159D-16 + 2 34 1 42 0.46840841101348D+00 0.68253945879160D-17 + 3 34 1 42 0.53730740550124D+00 -0.34792660371439D-16 + 1 35 1 42 0.24071006525499D+00 0.10760597311844D-15 + 2 35 1 42 0.29803704164042D+00 0.19046097970721D-16 + 3 35 1 42 -0.44122789176325D+00 -0.14212920513645D-17 + 1 36 1 42 -0.58364062511924D+00 0.12238273496676D-15 + 2 36 1 42 0.65896889737925D+00 -0.32343632775631D-16 + 3 36 1 42 0.74948867391113D+00 -0.95532485936328D-17 + 1 37 1 42 0.31422049400924D+00 -0.16795521363978D-16 + 2 37 1 42 0.35986694257034D+00 0.14250281803621D-16 + 3 37 1 42 -0.17548457128181D+00 -0.17338867003772D-16 + 1 38 1 42 0.81947051681335D-01 0.52176093967301D-16 + 2 38 1 42 -0.17540967717463D+00 0.48556613393752D-16 + 3 38 1 42 0.10458857416864D+00 -0.72233980182312D-17 + 1 39 1 42 -0.63312078461237D+00 -0.54622744568338D-16 + 2 39 1 42 0.51528742791334D+00 0.38691037543105D-16 + 3 39 1 42 0.44260789793588D+00 -0.21203827284752D-17 + 1 40 1 42 -0.19374587556379D+00 -0.20027267888486D-16 + 2 40 1 42 -0.24726760963583D-01 0.66032411089321D-18 + 3 40 1 42 -0.28052321328861D-01 0.10134266247214D-16 + 1 41 1 42 0.16147086050100D+01 -0.11592794089279D-16 + 2 41 1 42 -0.11525350264608D-01 0.73645325181542D-17 + 3 41 1 42 0.25656366926326D-01 0.49891828674092D-17 + 1 42 1 42 0.11892909311263D+03 0.00000000000000D+00 + 2 42 1 42 -0.68310894103182D+00 0.00000000000000D+00 + 3 42 1 42 0.28802566016957D+01 0.00000000000000D+00 + 1 43 1 42 -0.56483248397148D+00 0.14171790822294D-17 + 2 43 1 42 -0.30991150850772D+00 -0.39537282004614D-18 + 3 43 1 42 0.18069400296059D+00 0.20518366673444D-17 + 1 44 1 42 -0.19511828925899D+00 0.44127270901099D-17 + 2 44 1 42 -0.36698199332301D-01 -0.14787815961524D-17 + 3 44 1 42 -0.13360427838615D+00 0.22153471642482D-17 + 1 45 1 42 -0.12166211096925D+00 0.73497573049143D-17 + 2 45 1 42 0.63431380755935D-02 -0.75068262099462D-18 + 3 45 1 42 0.12354351356588D-01 0.12188105181450D-17 + 1 46 1 42 -0.54947314096178D+00 -0.27403013214780D-16 + 2 46 1 42 -0.45780525994136D+00 -0.23755299601409D-17 + 3 46 1 42 -0.14226339989857D+00 0.84252586716273D-18 + 1 47 1 42 0.21493144039402D+00 -0.14647758530931D-16 + 2 47 1 42 0.61638313884036D+00 0.28578611677691D-17 + 3 47 1 42 0.35798312713401D+00 0.77628113366556D-17 + 1 48 1 42 0.27912912720099D+00 -0.85951765656405D-16 + 2 48 1 42 -0.33872008325706D+00 -0.24641804499085D-16 + 3 48 1 42 0.29916503793232D+00 0.13837231916543D-16 + 1 49 1 42 -0.79645524878653D+00 -0.16880469152228D-15 + 2 49 1 42 -0.38632799622838D+00 0.20053575593033D-16 + 3 49 1 42 -0.36639941053523D+00 0.23891270459864D-16 + 1 50 1 42 -0.24353371012176D+02 -0.34456701903324D-15 + 2 50 1 42 -0.22245450246926D+02 -0.21326644701811D-16 + 3 50 1 42 -0.14751333435336D+02 0.60756770034234D-16 + 1 51 1 42 0.19042103809354D+00 0.92681767882310D-16 + 2 51 1 42 0.28361053495241D+00 -0.12128326020681D-16 + 3 51 1 42 -0.13762305616937D+00 0.74807248207606D-16 + 1 52 1 42 -0.50259411538243D+00 -0.10587821202607D-15 + 2 52 1 42 -0.35059274663601D+00 0.47460970147210D-16 + 3 52 1 42 -0.49922300162288D+00 -0.38902612458428D-16 + 1 53 1 42 0.23662232486672D+00 -0.15469941201335D-15 + 2 53 1 42 0.11423776684104D-01 0.23302718725553D-17 + 3 53 1 42 0.94824085324155D-02 -0.26955534615329D-16 + 1 54 1 42 0.12148402283880D+00 0.27462062573622D-15 + 2 54 1 42 -0.29451899344542D+00 0.11934019831183D-17 + 3 54 1 42 -0.21488924759000D+00 -0.36468267841556D-16 + 1 55 1 42 -0.39640379417134D+00 -0.31675599634434D-16 + 2 55 1 42 -0.80045650826027D+00 0.10667606633097D-16 + 3 55 1 42 -0.51417559201220D+00 -0.33823918473208D-16 + 1 56 1 42 0.36035073432242D+01 -0.92305612002798D-16 + 2 56 1 42 0.14766123034724D+01 0.14118509265259D-16 + 3 56 1 42 -0.16287765163973D+01 -0.37659220162142D-17 + 1 57 1 42 0.30753321824938D+01 0.49103469277621D-15 + 2 57 1 42 -0.10982907017704D+01 -0.26409477423322D-16 + 3 57 1 42 -0.11033339330700D+01 0.13753293855127D-16 + 1 58 1 42 0.33326485128250D+01 0.13499467143644D-15 + 2 58 1 42 0.79111691528173D+00 -0.30614951668669D-16 + 3 58 1 42 0.22422150556930D+01 -0.81386421733084D-18 + 1 59 1 42 0.31882659330409D+01 -0.98519690476373D-17 + 2 59 1 42 -0.13686463220820D+01 -0.36665463661764D-17 + 3 59 1 42 0.14011878085562D+01 -0.15273876988911D-16 + 1 60 1 42 -0.42519676728862D+00 0.79621774529573D-17 + 2 60 1 42 0.34261208178817D+00 -0.78654061387121D-17 + 3 60 1 42 0.10890786888940D+00 0.37207395004695D-16 + 1 61 1 42 -0.20198582307328D-01 -0.98895776035977D-17 + 2 61 1 42 -0.16133490743945D-01 -0.15491110855873D-16 + 3 61 1 42 -0.89382574095891D-01 0.16874618260393D-16 + 1 62 1 42 -0.42568070033698D+00 0.12083206975576D-15 + 2 62 1 42 -0.22985401946665D+00 0.24032132997463D-16 + 3 62 1 42 0.15638035851829D-01 -0.31595317960879D-16 + 1 63 1 42 -0.23349397939427D-02 0.21745641658586D-16 + 2 63 1 42 -0.77343943757396D-01 0.69725562489537D-17 + 3 63 1 42 0.11767243478524D+00 0.26618167041299D-17 + 1 64 1 42 0.64172853416073D+00 -0.11528914953898D-16 + 2 64 1 42 0.56679916905530D+00 -0.27872423152246D-16 + 3 64 1 42 -0.41799667554676D-01 -0.11638852296612D-16 + 1 65 1 42 -0.32913855200116D+01 -0.38823054976294D-16 + 2 65 1 42 0.11902213073032D+01 -0.38599498608222D-16 + 3 65 1 42 -0.54552158771248D+01 0.18778511603312D-16 + 1 1 2 42 -0.12618695132517D+02 0.10835115320066D-16 + 2 1 2 42 -0.25485998875877D+02 0.46866551016554D-16 + 3 1 2 42 0.14949212088362D+02 0.25010471374651D-16 + 1 2 2 42 0.26522545003791D+00 -0.38899848346692D-17 + 2 2 2 42 0.12834338893619D+00 0.31600725504137D-15 + 3 2 2 42 -0.16842214387475D+00 0.17490614425393D-16 + 1 3 2 42 -0.61070928979987D+00 -0.34238497990146D-17 + 2 3 2 42 0.10055228481423D+01 0.17521099672862D-15 + 3 3 2 42 0.71273818903615D+00 -0.36327838111604D-16 + 1 4 2 42 -0.57259088947737D+00 -0.52144891228215D-17 + 2 4 2 42 -0.48945075687645D+00 -0.68767959060826D-16 + 3 4 2 42 0.56817747023680D+00 0.33881462608709D-16 + 1 5 2 42 -0.12590578526662D+00 0.19114060298387D-16 + 2 5 2 42 -0.11150142372855D+01 -0.24216578567058D-15 + 3 5 2 42 0.12676911053746D+01 -0.22308693083424D-16 + 1 6 2 42 -0.53061614381882D+00 0.52200790863636D-18 + 2 6 2 42 -0.86409040711022D+00 -0.65997852382325D-16 + 3 6 2 42 0.27618358262648D+00 0.74681012139203D-17 + 1 7 2 42 -0.64346728371823D-01 -0.10911224788215D-16 + 2 7 2 42 -0.13525500815597D+00 0.37210852052508D-16 + 3 7 2 42 0.50016541024873D+00 -0.53318699193885D-17 + 1 8 2 42 0.42196927431097D-02 -0.32230286112203D-16 + 2 8 2 42 0.32802942366760D+00 0.30580007038993D-16 + 3 8 2 42 -0.48541681642134D-01 -0.24820454389211D-16 + 1 9 2 42 0.56111524358577D-01 0.48520626610027D-16 + 2 9 2 42 0.28004815274248D-01 -0.64520447814304D-16 + 3 9 2 42 -0.23773955807572D+00 0.33034459700613D-16 + 1 10 2 42 -0.11771011529336D+00 -0.57214473753962D-16 + 2 10 2 42 0.17176138476524D-01 0.56451620499877D-16 + 3 10 2 42 -0.11438150796612D+00 0.56751080673080D-17 + 1 11 2 42 0.13211942367618D+01 -0.22313725225140D-17 + 2 11 2 42 0.31311444326211D+01 0.29745502595047D-16 + 3 11 2 42 -0.13319450553958D+01 0.16415372388904D-16 + 1 12 2 42 -0.12482638357656D+01 0.22671987094492D-16 + 2 12 2 42 0.28423411136097D+01 0.24698191513951D-15 + 3 12 2 42 -0.12067952504781D+01 -0.33017887682110D-17 + 1 13 2 42 0.80742365490619D-01 0.32413230900477D-16 + 2 13 2 42 -0.42718762411062D-01 -0.69393440136940D-16 + 3 13 2 42 0.11189461027629D+00 -0.34069073347238D-17 + 1 14 2 42 -0.88968340529827D-01 -0.39645941650611D-16 + 2 14 2 42 -0.74228177386467D-01 -0.90170073083223D-16 + 3 14 2 42 0.53660734478788D-01 -0.14871467408105D-17 + 1 15 2 42 -0.14264458797104D+01 0.91127269839366D-16 + 2 15 2 42 0.31732604423891D+01 -0.88115820526662D-16 + 3 15 2 42 0.12061807511854D+01 0.45662127423746D-16 + 1 16 2 42 0.33968534256653D+00 0.32368668279362D-16 + 2 16 2 42 -0.60975442156202D+00 0.10974025173015D-15 + 3 16 2 42 0.14952538593818D+00 -0.14554093194177D-17 + 1 17 2 42 0.23882867257476D+00 -0.22266132831510D-17 + 2 17 2 42 0.29163708009968D+00 -0.52579740653369D-16 + 3 17 2 42 0.33313519872919D+00 0.22789453757266D-16 + 1 18 2 42 -0.28753091410638D+00 -0.24836488828117D-16 + 2 18 2 42 0.19033349414047D+00 -0.28407427996725D-15 + 3 18 2 42 0.15949537106224D+00 0.12532485239397D-16 + 1 19 2 42 0.17380976115390D+02 0.45779744246185D-16 + 2 19 2 42 -0.27760819090572D+02 0.22864566623829D-15 + 3 19 2 42 0.18445644366106D+02 0.13826681903673D-16 + 1 20 2 42 0.17379472240560D+00 0.14355961634205D-16 + 2 20 2 42 0.16229330172928D+00 0.20997717909416D-15 + 3 20 2 42 0.12118996449943D-01 0.12085057412356D-16 + 1 21 2 42 0.32150151371739D+00 0.28284703160405D-17 + 2 21 2 42 -0.31887366055224D+00 -0.52302385811261D-17 + 3 21 2 42 0.55610764499212D+00 -0.99224279753623D-16 + 1 22 2 42 -0.28590715431927D+00 -0.14042689093737D-16 + 2 22 2 42 0.12265406544990D+01 -0.11468193677901D-15 + 3 22 2 42 -0.17065758913518D+01 0.18408287272937D-16 + 1 23 2 42 0.35996202666302D+00 0.36356046666793D-16 + 2 23 2 42 0.18898539371495D+00 0.95329605141587D-16 + 3 23 2 42 -0.25867275679240D+00 -0.16550393740536D-16 + 1 24 2 42 -0.30637658912080D+01 0.97828324817449D-18 + 2 24 2 42 -0.31543092489251D+01 -0.12377334792486D-15 + 3 24 2 42 0.11316458786832D+01 -0.17243986906284D-16 + 1 25 2 42 0.96293916460598D-01 0.35645950684254D-17 + 2 25 2 42 -0.23563032171867D+00 -0.41921891675131D-16 + 3 25 2 42 0.10511726601206D+00 0.39862219392758D-16 + 1 26 2 42 0.30400799938289D+01 -0.42848600421670D-18 + 2 26 2 42 -0.29219202594768D+01 0.26153391004082D-15 + 3 26 2 42 0.14454054486640D+01 -0.28489057615559D-16 + 1 27 2 42 -0.10585392237338D+00 -0.46594284952052D-18 + 2 27 2 42 -0.21107489075072D+00 0.26563069277602D-16 + 3 27 2 42 0.45686340930222D-01 0.90153667688775D-16 + 1 28 2 42 0.32191059477274D+01 -0.48516161247586D-17 + 2 28 2 42 -0.30730874511020D+01 0.81989998749827D-16 + 3 28 2 42 -0.13634437152049D+01 -0.10816982101688D-15 + 1 29 2 42 0.41272559615121D-01 -0.30509402428974D-17 + 2 29 2 42 0.81916361108247D-01 0.19658449950692D-16 + 3 29 2 42 -0.15534832070321D+00 -0.73783149580649D-16 + 1 30 2 42 -0.26899078430667D+01 0.60214210282312D-17 + 2 30 2 42 -0.30775016116619D+01 0.12932760203383D-15 + 3 30 2 42 -0.11485207674171D+01 0.41506860963234D-16 + 1 31 2 42 0.13987575062728D+00 0.45975116271835D-17 + 2 31 2 42 -0.26127655378421D+00 0.10288795500768D-15 + 3 31 2 42 0.46826809137951D-01 0.88623586826507D-16 + 1 32 2 42 -0.69344548756158D+00 0.30717009714749D-16 + 2 32 2 42 -0.11782400519076D+01 0.59819297917822D-16 + 3 32 2 42 -0.15289918852252D+01 -0.19287372491551D-16 + 1 33 2 42 0.14992323709904D+02 -0.45258169104041D-16 + 2 33 2 42 -0.25101178599709D+02 0.25178196275656D-15 + 3 33 2 42 -0.12776995690578D+02 0.30545966737128D-16 + 1 34 2 42 0.37756050303363D+00 0.68253945879160D-17 + 2 34 2 42 -0.21332075910505D+00 0.18128615885296D-15 + 3 34 2 42 -0.40158016642122D+00 0.86009735650290D-17 + 1 35 2 42 0.24324448070263D+00 0.19046097970721D-16 + 2 35 2 42 0.62299032448476D+00 0.31152342819616D-15 + 3 35 2 42 -0.26491264012522D+00 0.21512949927985D-16 + 1 36 2 42 0.45615503776574D+00 -0.32343632775631D-16 + 2 36 2 42 -0.93113972708093D+00 0.11532689254430D-15 + 3 36 2 42 -0.61830381521060D+00 0.85082360871142D-17 + 1 37 2 42 -0.29825601567531D-02 0.14250281803621D-16 + 2 37 2 42 0.10626880733349D+00 -0.15580530322746D-16 + 3 37 2 42 0.18019124741021D+00 -0.23938083722701D-17 + 1 38 2 42 0.24610974420285D+00 0.48556613393752D-16 + 2 38 2 42 0.53148809985973D+00 -0.13892309610922D-15 + 3 38 2 42 -0.24018265599631D+00 -0.29996873189367D-16 + 1 39 2 42 0.63253059845949D+00 0.38691037543105D-16 + 2 39 2 42 -0.50206812739809D+00 0.67691867525904D-16 + 3 39 2 42 -0.46177411275870D+00 0.22255543853614D-16 + 1 40 2 42 0.38138444980193D-01 0.66032411089321D-18 + 2 40 2 42 -0.40246564189428D+00 -0.10754146779237D-16 + 3 40 2 42 0.88364560270813D-01 0.13495071780385D-17 + 1 41 2 42 0.60412417775755D-01 0.73645325181542D-17 + 2 41 2 42 -0.18124573639915D+00 -0.98250082766717D-18 + 3 41 2 42 -0.25756283878900D-01 0.16648826505494D-17 + 1 42 2 42 -0.68310894103182D+00 0.00000000000000D+00 + 2 42 2 42 0.12110065699664D+03 0.00000000000000D+00 + 3 42 2 42 0.11969682585269D+00 0.00000000000000D+00 + 1 43 2 42 0.30991150850772D+00 -0.39537282004614D-18 + 2 43 2 42 -0.16738313558674D+00 -0.94809239491491D-17 + 3 43 2 42 -0.20439597042973D+00 -0.34192152968650D-18 + 1 44 2 42 -0.61681663058385D-03 -0.14787815961524D-17 + 2 44 2 42 -0.12417076851962D+00 0.72568083131370D-18 + 3 44 2 42 0.10534837771692D+00 -0.26508594974119D-17 + 1 45 2 42 -0.55066654507335D-02 -0.75068262099462D-18 + 2 45 2 42 -0.12424139542536D+00 0.11001980949914D-17 + 3 45 2 42 -0.36608589249551D-01 0.20405942196105D-17 + 1 46 2 42 -0.45780525994136D+00 -0.23755299601409D-17 + 2 46 2 42 -0.12788006633506D+00 -0.28566446336689D-17 + 3 46 2 42 0.28769115120802D+00 -0.81981858535437D-18 + 1 47 2 42 -0.61638313884036D+00 0.28578611677691D-17 + 2 47 2 42 0.12036259698951D+01 0.46536595553620D-17 + 3 47 2 42 -0.45036500072236D+00 -0.23487321380313D-17 + 1 48 2 42 -0.35569019419803D+00 -0.24641804499085D-16 + 2 48 2 42 0.44715972523508D+00 0.22868683297115D-15 + 3 48 2 42 -0.16366981488137D+00 0.77022340382650D-16 + 1 49 2 42 -0.49952396734700D+00 0.20053575593033D-16 + 2 49 2 42 -0.55330131078287D+00 0.38831654936308D-17 + 3 49 2 42 -0.49151781919568D+00 0.38867524866188D-17 + 1 50 2 42 -0.17151064833579D+02 -0.21326644701811D-16 + 2 50 2 42 -0.25943254441570D+02 -0.67696173606949D-16 + 3 50 2 42 -0.16509815584852D+02 -0.23365687114472D-16 + 1 51 2 42 0.42205070125685D+00 -0.12128326020681D-16 + 2 51 2 42 0.23490982432091D+00 0.45560139604340D-17 + 3 51 2 42 -0.40212139172873D+00 -0.23971283007549D-16 + 1 52 2 42 -0.27401375196434D+00 0.47460970147210D-16 + 2 52 2 42 -0.62129055617946D+00 -0.13447456015548D-16 + 3 52 2 42 -0.76511502303097D-01 -0.18298481556710D-16 + 1 53 2 42 -0.11555303207963D-01 0.23302718725553D-17 + 2 53 2 42 0.27493805249823D+00 0.78847965678719D-16 + 3 53 2 42 -0.51697840507665D-01 -0.10512883792774D-16 + 1 54 2 42 -0.20189496355113D+00 0.11934019831183D-17 + 2 54 2 42 0.33670670103113D+00 0.27129081591648D-16 + 3 54 2 42 0.33929061429274D+00 -0.10253910464150D-16 + 1 55 2 42 -0.59823138478369D+00 0.10667606633097D-16 + 2 55 2 42 -0.60193948425332D+00 0.42727972371080D-16 + 3 55 2 42 -0.69117859893013D+00 0.23202059397249D-17 + 1 56 2 42 -0.16287765163973D+01 0.14118509265259D-16 + 2 56 2 42 -0.32451830657095D+01 0.63907481116749D-16 + 3 56 2 42 0.32987071675482D+01 -0.43288450635905D-17 + 1 57 2 42 0.14950307013228D+01 -0.26409477423322D-16 + 2 57 2 42 -0.31906510664380D+01 0.16053371133603D-15 + 3 57 2 42 -0.31475754789696D+01 0.47597028400346D-18 + 1 58 2 42 -0.22422150556930D+01 -0.30614951668669D-16 + 2 58 2 42 -0.19446621466388D+01 0.21316514306445D-15 + 3 58 2 42 -0.37785239078169D+01 0.21843135744291D-17 + 1 59 2 42 0.12532163534032D+01 -0.36665463661764D-17 + 2 59 2 42 -0.31017691541785D+01 0.91998130846733D-16 + 3 59 2 42 0.31874796976435D+01 0.19613093789128D-17 + 1 60 2 42 -0.15638035851828D-01 -0.78654061387121D-17 + 2 60 2 42 -0.31513249573963D+00 -0.29706961202124D-15 + 3 60 2 42 -0.51957007617259D+00 0.12217073501495D-17 + 1 61 2 42 0.14193478143410D+00 -0.15491110855873D-16 + 2 61 2 42 -0.19898996517371D+00 0.18731001488502D-15 + 3 61 2 42 0.10413342879518D+00 0.24097840670451D-17 + 1 62 2 42 0.10890786888940D+00 0.24032132997463D-16 + 2 62 2 42 0.11250902439584D+00 -0.26469568173662D-15 + 3 62 2 42 0.51949986066785D+00 0.15805316491196D-17 + 1 63 2 42 0.66047993622612D-01 0.69725562489537D-17 + 2 63 2 42 -0.26287299123699D+00 -0.99136972370542D-16 + 3 63 2 42 -0.14387887629046D+00 0.14047894482617D-17 + 1 64 2 42 0.25613440692053D+00 -0.27872423152246D-16 + 2 64 2 42 -0.50075250552094D+00 0.22154052707851D-16 + 3 64 2 42 -0.26027499431462D+00 0.79299237591544D-16 + 1 65 2 42 0.11024226193012D+01 -0.38599498608222D-16 + 2 65 2 42 0.12487046638452D+01 -0.24687560635908D-15 + 3 65 2 42 0.65632748910257D+00 -0.25316063508603D-16 + 1 1 3 42 0.13901670395536D+02 -0.68797183834911D-16 + 2 1 3 42 0.14345599579921D+02 0.25010471374651D-16 + 3 1 3 42 -0.26367025656392D+02 0.22638258474351D-15 + 1 2 3 42 -0.53763771560468D-01 -0.99493672468050D-17 + 2 2 3 42 0.26868741007230D+00 0.17490614425393D-16 + 3 2 3 42 0.27420601099828D+00 -0.76965990358134D-15 + 1 3 3 42 -0.21034855301276D+00 0.30790950705566D-16 + 2 3 3 42 0.37174795431051D-01 -0.36327838111604D-16 + 3 3 3 42 -0.18536809697928D+00 0.42581598653312D-15 + 1 4 3 42 0.45818229504203D+00 0.39179301758811D-16 + 2 4 3 42 0.48522302031412D+00 0.33881462608709D-16 + 3 4 3 42 -0.50913110257273D+00 0.16440163687119D-15 + 1 5 3 42 -0.35757827279188D-01 -0.69040648911232D-16 + 2 5 3 42 0.13549678598456D+01 -0.22308693083424D-16 + 3 5 3 42 -0.11313505286587D+01 -0.40695143122332D-15 + 1 6 3 42 0.52011348209476D+00 0.18063486178880D-16 + 2 6 3 42 0.59323179457402D+00 0.74681012139203D-17 + 3 6 3 42 -0.39910233886037D+00 0.79187483693135D-16 + 1 7 3 42 0.25450899472504D+00 0.28456049669201D-16 + 2 7 3 42 0.33525327094947D+00 -0.53318699193885D-17 + 3 7 3 42 -0.87719096127325D+00 -0.80355891489624D-16 + 1 8 3 42 -0.94617811102808D-02 -0.42861683955072D-17 + 2 8 3 42 -0.49505833736299D-01 -0.24820454389211D-16 + 3 8 3 42 0.24492796035845D+00 0.85096320002020D-16 + 1 9 3 42 -0.82043198351641D-01 0.11475581028818D-17 + 2 9 3 42 0.71194922581207D-01 0.33034459700613D-16 + 3 9 3 42 -0.16993298888397D+00 -0.80652245548283D-17 + 1 10 3 42 0.12050740714423D+00 0.24330429219626D-17 + 2 10 3 42 0.15168666551705D+00 0.56751080673080D-17 + 3 10 3 42 -0.24793168041875D+00 -0.48037376219404D-16 + 1 11 3 42 0.33050853082272D+01 -0.34902320696981D-17 + 2 11 3 42 0.12841378769088D+01 0.16415372388904D-16 + 3 11 3 42 -0.29877680086003D+01 -0.19521071782573D-15 + 1 12 3 42 -0.35469120189638D+01 0.15111085623691D-17 + 2 12 3 42 0.10925016594282D+01 -0.33017887682110D-17 + 3 12 3 42 -0.33903977200178D+01 0.82492837818579D-16 + 1 13 3 42 0.10038897771306D+00 0.39301724004814D-17 + 2 13 3 42 -0.11750953390600D+00 -0.34069073347238D-17 + 3 13 3 42 -0.18948265496565D+00 -0.18163315650226D-16 + 1 14 3 42 -0.10097204574324D+00 0.85660035992517D-18 + 2 14 3 42 -0.83074439382482D-01 -0.14871467408105D-17 + 3 14 3 42 -0.24639150368970D+00 -0.96825656230117D-16 + 1 15 3 42 0.31773514429869D+01 -0.26023024474786D-17 + 2 15 3 42 -0.13470329229198D+01 0.45662127423746D-16 + 3 15 3 42 -0.29954888535487D+01 -0.45848642052227D-16 + 1 16 3 42 -0.35556774802707D+00 0.53182445321013D-17 + 2 16 3 42 0.43526276143987D+00 -0.14554093194177D-17 + 3 16 3 42 -0.85893846018721D-01 -0.24230698512738D-15 + 1 17 3 42 0.23038762429388D+00 0.22214224448731D-16 + 2 17 3 42 0.27476276805790D+00 0.22789453757266D-16 + 3 17 3 42 0.15731667061841D+00 -0.20862756379569D-15 + 1 18 3 42 -0.29934916374172D+00 -0.11464421814436D-15 + 2 18 3 42 0.24748365031445D+00 0.12532485239397D-16 + 3 18 3 42 0.62661665556896D+00 -0.10826448819490D-15 + 1 19 3 42 -0.14558835678490D+02 -0.55488322367526D-16 + 2 19 3 42 0.17524480964126D+02 0.13826681903673D-16 + 3 19 3 42 -0.26885952984624D+02 -0.32899020344615D-15 + 1 20 3 42 -0.10281033293596D+00 -0.17569445221960D-17 + 2 20 3 42 0.98401233411654D-01 0.12085057412356D-16 + 3 20 3 42 0.26864894443220D+00 -0.92946155708627D-16 + 1 21 3 42 -0.47577268331975D+00 -0.67899520575019D-17 + 2 21 3 42 0.59167202259456D+00 -0.99224279753623D-16 + 3 21 3 42 -0.83525506489340D+00 0.14473911788625D-15 + 1 22 3 42 0.26317444518415D+00 0.13622961380360D-16 + 2 22 3 42 -0.15198829841141D+01 0.18408287272937D-16 + 3 22 3 42 0.11871324957381D+01 -0.30475857177439D-15 + 1 23 3 42 -0.26938321812239D+00 0.35113179031066D-16 + 2 23 3 42 -0.34011013696974D+00 -0.16550393740536D-16 + 3 23 3 42 0.93208777468681D-01 0.19222568023716D-15 + 1 24 3 42 -0.14205596556584D+01 -0.49118588151808D-16 + 2 24 3 42 -0.12396011896155D+01 -0.17243986906284D-16 + 3 24 3 42 0.30306915079876D+01 -0.33085893853065D-16 + 1 25 3 42 -0.10790549971587D+00 -0.18920706401751D-16 + 2 25 3 42 -0.44033202187169D-01 0.39862219392758D-16 + 3 25 3 42 -0.18463012523089D-01 0.71409015123666D-16 + 1 26 3 42 0.11397146903825D+01 0.10030564881116D-15 + 2 26 3 42 -0.10540879121051D+01 -0.28489057615559D-16 + 3 26 3 42 0.30580094079255D+01 -0.33902071843977D-16 + 1 27 3 42 0.11757710023595D+00 0.88702337683758D-16 + 2 27 3 42 -0.10726450908200D+00 0.90153667688775D-16 + 3 27 3 42 0.37900726108938D-02 -0.21103456282032D-16 + 1 28 3 42 -0.14529028836111D+01 0.19555602528706D-16 + 2 28 3 42 0.12261362992760D+01 -0.10816982101688D-15 + 3 28 3 42 0.32532103886273D+01 0.20414048602936D-16 + 1 29 3 42 -0.14109272489711D+00 -0.84858340830525D-16 + 2 29 3 42 0.12818383142602D+00 -0.73783149580649D-16 + 3 29 3 42 -0.10484951280540D+00 -0.18243502600339D-16 + 1 30 3 42 0.11176717924403D+01 0.33767567768964D-17 + 2 30 3 42 0.95452131471841D+00 0.41506860963234D-16 + 3 30 3 42 0.26328894094707D+01 -0.30512916708859D-16 + 1 31 3 42 0.72227401361728D-01 -0.15569740300679D-16 + 2 31 3 42 0.20147194587619D+00 0.88623586826507D-16 + 3 31 3 42 -0.19873251756066D+00 -0.44704472074100D-16 + 1 32 3 42 0.69836127851068D+00 -0.10202856592746D-16 + 2 32 3 42 0.87578480095377D+00 -0.19287372491551D-16 + 3 32 3 42 0.19692102717770D+01 0.44555592653429D-15 + 1 33 3 42 0.13867197110953D+02 0.13048442868159D-16 + 2 33 3 42 -0.12371596783117D+02 0.30545966737128D-16 + 3 33 3 42 -0.24532491806041D+02 -0.64169585080395D-15 + 1 34 3 42 0.31197724830339D+00 -0.34792660371439D-16 + 2 34 3 42 -0.29558449714712D+00 0.86009735650290D-17 + 3 34 3 42 -0.25326590528758D+00 -0.11478038939911D-16 + 1 35 3 42 -0.39930320110790D+00 -0.14212920513645D-17 + 2 35 3 42 -0.43699935314724D+00 0.21512949927985D-16 + 3 35 3 42 0.18654111657419D+00 -0.23042917463466D-15 + 1 36 3 42 0.58941207799972D+00 -0.95532485936328D-17 + 2 36 3 42 -0.34781997433925D+00 0.85082360871142D-17 + 3 36 3 42 -0.34062346733944D+00 0.24376626298536D-16 + 1 37 3 42 0.21516708156433D+00 -0.17338867003772D-16 + 2 37 3 42 0.30197170554672D+00 -0.23938083722701D-17 + 3 37 3 42 0.31305621381476D-01 -0.24483301455675D-15 + 1 38 3 42 -0.10295060887453D+00 -0.72233980182312D-17 + 2 38 3 42 -0.20826631690893D+00 -0.29996873189367D-16 + 3 38 3 42 0.37092861818658D+00 -0.38278653251529D-16 + 1 39 3 42 0.28525463577358D+00 -0.21203827284752D-17 + 2 39 3 42 -0.49069469237906D+00 0.22255543853614D-16 + 3 39 3 42 -0.79567018427530D+00 -0.25345408448642D-17 + 1 40 3 42 0.42250900489266D-02 0.10134266247214D-16 + 2 40 3 42 -0.34209735405514D-01 0.13495071780385D-17 + 3 40 3 42 -0.25125029174602D+00 -0.14317382646530D-16 + 1 41 3 42 0.73096735208846D-01 0.49891828674092D-17 + 2 41 3 42 -0.51528606358534D-01 0.16648826505494D-17 + 3 41 3 42 -0.10723510414042D+00 -0.44677701939121D-16 + 1 42 3 42 0.28802566016957D+01 0.00000000000000D+00 + 2 42 3 42 0.11969682585268D+00 0.00000000000000D+00 + 3 42 3 42 0.12111955382287D+03 0.00000000000000D+00 + 1 43 3 42 -0.18069400296059D+00 0.20518366673444D-17 + 2 43 3 42 -0.20439597042973D+00 -0.34192152968650D-18 + 3 43 3 42 -0.62710495305077D+00 -0.30172539333246D-16 + 1 44 3 42 -0.78044554531755D-02 0.22153471642482D-17 + 2 44 3 42 -0.73131832143502D-01 -0.26508594974119D-17 + 3 44 3 42 0.14870128380568D+01 0.11370993072347D-16 + 1 45 3 42 -0.52381069365458D-02 0.12188105181450D-17 + 2 45 3 42 -0.69431513153948D-02 0.20405942196105D-17 + 3 45 3 42 -0.11789925547314D+00 0.87406248924454D-17 + 1 46 3 42 0.14226339989857D+00 0.84252586716273D-18 + 2 46 3 42 -0.28769115120802D+00 -0.81981858535437D-18 + 3 46 3 42 -0.40548407098282D+00 0.45283876876277D-17 + 1 47 3 42 0.35798312713401D+00 0.77628113366556D-17 + 2 47 3 42 0.45036500072236D+00 -0.23487321380313D-17 + 3 47 3 42 0.20435856490277D+00 0.34713572379996D-16 + 1 48 3 42 0.42098272698905D+00 0.13837231916543D-16 + 2 48 3 42 -0.25348016079988D+00 0.77022340382650D-16 + 3 48 3 42 0.12123201124198D+00 0.42095292227905D-16 + 1 49 3 42 -0.49338013526382D+00 0.23891270459864D-16 + 2 49 3 42 -0.49852977540938D+00 0.38867524866188D-17 + 3 49 3 42 -0.32116000110639D+00 -0.11236675608478D-16 + 1 50 3 42 -0.13111602562201D+02 0.60756770034234D-16 + 2 50 3 42 -0.23403793604855D+02 -0.23365687114472D-16 + 3 50 3 42 -0.26966858017480D+02 0.69969296511789D-16 + 1 51 3 42 -0.30050836975060D+00 0.74807248207606D-16 + 2 51 3 42 -0.31592974345079D+00 -0.23971283007549D-16 + 3 51 3 42 0.55573036713759D+00 0.12361506536379D-16 + 1 52 3 42 -0.59033759901085D+00 -0.38902612458428D-16 + 2 52 3 42 -0.23675050006731D+00 -0.18298481556710D-16 + 3 52 3 42 -0.87879839587781D+00 0.45359620698090D-16 + 1 53 3 42 -0.31560473711001D-02 -0.26955534615329D-16 + 2 53 3 42 0.19573453759546D-01 -0.10512883792774D-16 + 3 53 3 42 0.29525495854003D+00 -0.82578262884640D-16 + 1 54 3 42 -0.16615110843059D+00 -0.36468267841556D-16 + 2 54 3 42 0.64823888964947D-01 -0.10253910464150D-16 + 3 54 3 42 0.15446028503366D+00 -0.32550625534667D-16 + 1 55 3 42 -0.63674313804244D+00 -0.33823918473208D-16 + 2 55 3 42 -0.68264261748262D+00 0.23202059397249D-17 + 3 55 3 42 -0.37756417728969D+00 0.60972742564533D-16 + 1 56 3 42 0.14766123034724D+01 -0.37659220162142D-17 + 2 56 3 42 0.31360063028185D+01 -0.43288450635905D-17 + 3 56 3 42 -0.32451830657095D+01 0.13453776936170D-15 + 1 57 3 42 0.15222885050610D+01 0.13753293855127D-16 + 2 57 3 42 -0.31255487756682D+01 0.47597028400346D-18 + 3 57 3 42 -0.29367943623405D+01 -0.19315986914641D-15 + 1 58 3 42 -0.79111691528172D+00 -0.81386421733084D-18 + 2 58 3 42 -0.25874532646368D+01 0.21843135744291D-17 + 3 58 3 42 -0.19446621466388D+01 0.80079306946220D-15 + 1 59 3 42 -0.12980637146701D+01 -0.15273876988911D-16 + 2 59 3 42 0.32644467995037D+01 0.19613093789128D-17 + 3 59 3 42 -0.32375816820263D+01 -0.99472336166674D-16 + 1 60 3 42 -0.22985401946665D+00 0.37207395004695D-16 + 2 60 3 42 0.14284829732331D+00 0.12217073501495D-17 + 3 60 3 42 0.11250902439584D+00 0.55131131521995D-15 + 1 61 3 42 0.12057846732556D+00 0.16874618260393D-16 + 2 61 3 42 0.10055451728177D+00 0.24097840670451D-17 + 3 61 3 42 -0.21575497152441D+00 -0.20512916042556D-15 + 1 62 3 42 -0.34261208178816D+00 -0.31595317960879D-16 + 2 62 3 42 -0.14341331282464D+00 0.15805316491196D-17 + 3 62 3 42 -0.31513249573964D+00 0.25109192990316D-15 + 1 63 3 42 -0.52633044411427D-01 0.26618167041299D-17 + 2 63 3 42 -0.99437535727201D-01 0.14047894482617D-17 + 3 63 3 42 -0.22821706536484D+00 -0.31526920790663D-15 + 1 64 3 42 0.15548126048236D+00 -0.11638852296612D-16 + 2 64 3 42 0.64991636464351D+00 0.79299237591544D-16 + 3 64 3 42 0.34079756875252D+00 -0.10625655062398D-15 + 1 65 3 42 -0.59872147645343D+01 0.18778511603312D-16 + 2 65 3 42 0.11992435443085D+01 -0.25316063508603D-16 + 3 65 3 42 -0.61191765798690D+01 0.31123235516493D-16 + 1 1 1 43 0.21582940437262D+00 0.31862238275162D-16 + 2 1 1 43 0.43846442122255D+00 0.39009155923886D-16 + 3 1 1 43 0.32434742287267D+00 0.10651148271533D-16 + 1 2 1 43 -0.27022189572521D+02 0.12817627647406D-15 + 2 2 1 43 -0.16629379756977D+02 -0.44714535041290D-18 + 3 2 1 43 0.14835666597383D+02 0.27862473789282D-16 + 1 3 1 43 -0.80985736801164D+00 -0.10578899035064D-15 + 2 3 1 43 -0.52165191449955D+00 0.48533694262656D-16 + 3 3 1 43 0.28684620462766D+00 -0.10035648921138D-16 + 1 4 1 43 0.11542738827357D+00 0.51573294582390D-17 + 2 4 1 43 -0.26119564154638D+00 -0.18625213998886D-16 + 3 4 1 43 -0.17250536151423D+00 0.62301330392286D-16 + 1 5 1 43 0.33793601791265D+00 -0.73750055933048D-17 + 2 5 1 43 0.17793550258318D+01 -0.18409284853219D-16 + 3 5 1 43 -0.16233365719528D+01 0.13225254756045D-16 + 1 6 1 43 0.57599511951002D+00 -0.36710812508430D-17 + 2 6 1 43 -0.38139056523928D+00 -0.20041977521202D-16 + 3 6 1 43 0.29550212064914D+00 -0.62044299416521D-17 + 1 7 1 43 0.20033384962360D+00 -0.49589580603204D-17 + 2 7 1 43 -0.15681017887169D+00 -0.26652256415827D-16 + 3 7 1 43 -0.24696374662201D-02 0.36817187483169D-17 + 1 8 1 43 -0.29770639034202D+00 0.14563784150715D-16 + 2 8 1 43 -0.43245298590620D+00 0.43211382287314D-16 + 3 8 1 43 0.53882773265771D+00 0.30102076366755D-16 + 1 9 1 43 -0.11874443038822D+00 0.28363901688803D-15 + 2 9 1 43 0.12365796421604D+00 -0.86437062020934D-16 + 3 9 1 43 -0.80597005297447D-01 0.21512740629923D-17 + 1 10 1 43 -0.24785948145176D+00 0.77150023849641D-16 + 2 10 1 43 -0.14675843406442D+00 0.10741828338278D-15 + 3 10 1 43 -0.11878586879503D+00 0.35815312688668D-17 + 1 11 1 43 -0.30638988320256D+01 0.94404963089457D-17 + 2 11 1 43 0.13515021593716D+01 0.55724193607751D-16 + 3 11 1 43 -0.31640814690755D+01 0.45647023023462D-17 + 1 12 1 43 -0.32157297915032D+01 0.53523914664865D-16 + 2 12 1 43 -0.12612871728019D+01 -0.10119611573144D-15 + 3 12 1 43 0.37358331173980D+01 -0.18968877054338D-17 + 1 13 1 43 -0.21132000918250D+00 -0.21163958607566D-15 + 2 13 1 43 0.71961574256987D-01 -0.75669486817942D-16 + 3 13 1 43 -0.13055966252282D+00 0.40605418911297D-17 + 1 14 1 43 -0.23633934167008D+00 -0.12981970658530D-15 + 2 14 1 43 -0.14168161790001D+00 0.81162746827511D-16 + 3 14 1 43 0.90666799791499D-01 -0.21304685647815D-17 + 1 15 1 43 -0.30001519778860D+01 0.27199231526541D-15 + 2 15 1 43 -0.12254845032310D+01 0.87872703353463D-16 + 3 15 1 43 -0.30660005531584D+01 -0.11829975204755D-17 + 1 16 1 43 0.62632122828491D+00 -0.37439767021031D-15 + 2 16 1 43 0.83325922317389D+00 -0.31075588307645D-16 + 3 16 1 43 0.78293220003703D+00 0.96161326705836D-18 + 1 17 1 43 -0.81083552164948D+00 0.97819428870185D-16 + 2 17 1 43 0.54032163431438D+00 -0.90873316491663D-17 + 3 17 1 43 -0.44096668991251D+00 0.13061826707012D-16 + 1 18 1 43 -0.24223590393392D+02 -0.70010343580868D-16 + 2 18 1 43 0.11927098542457D+02 -0.27707027571688D-16 + 3 18 1 43 -0.13529215902066D+02 -0.40554702202307D-16 + 1 19 1 43 0.62025028896633D-02 0.17510768170637D-15 + 2 19 1 43 -0.37197994347043D+00 0.20624545800071D-17 + 3 19 1 43 -0.23104945061832D+00 -0.62299699897276D-16 + 1 20 1 43 -0.49336914517857D+00 -0.46591332966349D-16 + 2 20 1 43 0.43441998613114D+00 -0.91695138993658D-17 + 3 20 1 43 -0.50939446161318D+00 0.17218805183224D-16 + 1 21 1 43 0.26686550422134D+00 0.65062582037718D-16 + 2 21 1 43 0.10707045324182D+00 0.40510042956741D-17 + 3 21 1 43 -0.20825616100103D-01 -0.15535359826721D-16 + 1 22 1 43 0.43428936181690D-01 0.12211494650180D-15 + 2 22 1 43 -0.16931048991710D+01 0.33671926343888D-16 + 3 22 1 43 0.13093678493619D+01 -0.36661033737761D-16 + 1 23 1 43 -0.17175783798410D+00 -0.33043628320617D-16 + 2 23 1 43 0.33826748421716D+00 0.25440341322374D-16 + 3 23 1 43 -0.46034884881433D+00 -0.23840961109739D-16 + 1 24 1 43 -0.27692148443529D+00 0.19499672992659D-15 + 2 24 1 43 0.14976597231751D+00 -0.33819970572740D-17 + 3 24 1 43 0.19607991922537D-01 -0.70188734773299D-17 + 1 25 1 43 -0.32206381252867D+01 0.18705675492657D-15 + 2 25 1 43 -0.32345058521663D+01 0.52570783289616D-18 + 3 25 1 43 0.16017402743485D+01 0.47184517188330D-16 + 1 26 1 43 -0.22877488748024D+00 0.47482305814184D-16 + 2 26 1 43 -0.15007314540031D+00 -0.34526577236860D-18 + 3 26 1 43 -0.15578959509998D+00 -0.76991883728440D-16 + 1 27 1 43 -0.29148046783835D+01 0.28742064061341D-15 + 2 27 1 43 0.31270947786230D+01 -0.23069921206367D-17 + 3 27 1 43 -0.11584240695734D+01 -0.44835885544143D-16 + 1 28 1 43 -0.11821621565578D+00 -0.50955625207215D-16 + 2 28 1 43 -0.24928118504911D+00 -0.14184758615783D-17 + 3 28 1 43 0.11779011964277D+00 0.19137080604000D-16 + 1 29 1 43 -0.28051599479846D+01 -0.16101080365278D-15 + 2 29 1 43 0.32779236897385D+01 0.46247311356890D-18 + 3 29 1 43 0.20031063282269D+01 0.77439532337211D-16 + 1 30 1 43 -0.22012489406827D+00 -0.94692230831628D-16 + 2 30 1 43 0.82223371077733D-01 0.61925902478926D-18 + 3 30 1 43 0.10226835393024D+00 -0.91354561625509D-16 + 1 31 1 43 -0.31127751678940D+01 -0.12177832291357D-15 + 2 31 1 43 -0.31321845540438D+01 0.18708852698395D-17 + 3 31 1 43 -0.12076686035773D+01 -0.18910039476572D-16 + 1 32 1 43 -0.24353371012176D+02 0.22078404724398D-16 + 2 32 1 43 0.22245450246926D+02 -0.42715772361904D-17 + 3 32 1 43 0.14751333435335D+02 -0.35527418801425D-16 + 1 33 1 43 0.19042103809355D+00 -0.86466887926863D-16 + 2 33 1 43 -0.28361053495241D+00 0.20420334885671D-16 + 3 33 1 43 0.13762305616936D+00 0.92346288269205D-17 + 1 34 1 43 0.27912912720101D+00 -0.78756457706715D-16 + 2 34 1 43 0.33872008325702D+00 0.17477117943228D-16 + 3 34 1 43 -0.29916503793231D+00 0.26993235612938D-16 + 1 35 1 43 -0.79645524878653D+00 -0.29909965885838D-15 + 2 35 1 43 0.38632799622838D+00 0.38062809895552D-16 + 3 35 1 43 0.36639941053524D+00 -0.46653411289474D-17 + 1 36 1 43 0.12148402283881D+00 0.54617699068386D-16 + 2 36 1 43 0.29451899344542D+00 0.29184698173046D-16 + 3 36 1 43 0.21488924759002D+00 0.24489351443745D-16 + 1 37 1 43 -0.39640379417134D+00 0.22066486184984D-15 + 2 37 1 43 0.80045650826027D+00 -0.10036255128871D-16 + 3 37 1 43 0.51417559201221D+00 -0.32330588543688D-16 + 1 38 1 43 -0.50259411538244D+00 -0.12009118853931D-16 + 2 38 1 43 0.35059274663601D+00 0.17684535729830D-16 + 3 38 1 43 0.49922300162288D+00 0.47212471667922D-16 + 1 39 1 43 0.23662232486672D+00 0.15446290095144D-15 + 2 39 1 43 -0.11423776684104D-01 -0.24174363909665D-16 + 3 39 1 43 -0.94824085324153D-02 -0.60953941119757D-17 + 1 40 1 43 0.16147086050100D+01 -0.10229128411045D-17 + 2 40 1 43 0.11525350264607D-01 0.55371849190303D-17 + 3 40 1 43 -0.25656366926326D-01 0.29991727332096D-17 + 1 41 1 43 -0.19374587556379D+00 0.66407729957947D-17 + 2 41 1 43 0.24726760963583D-01 -0.96349173176513D-18 + 3 41 1 43 0.28052321328861D-01 -0.35057296813188D-17 + 1 42 1 43 -0.56483248397148D+00 -0.14171790822294D-17 + 2 42 1 43 0.30991150850772D+00 0.39537282004614D-18 + 3 42 1 43 -0.18069400296059D+00 -0.20518366673444D-17 + 1 43 1 43 0.11892909311263D+03 0.00000000000000D+00 + 2 43 1 43 0.68310894103200D+00 0.00000000000000D+00 + 3 43 1 43 -0.28802566016952D+01 0.00000000000000D+00 + 1 44 1 43 -0.12166211096925D+00 0.16512316062224D-16 + 2 44 1 43 -0.63431380755935D-02 -0.16787673717053D-17 + 3 44 1 43 -0.12354351356588D-01 -0.14009032259662D-17 + 1 45 1 43 -0.19511828925901D+00 -0.24922594432520D-17 + 2 45 1 43 0.36698199332301D-01 0.33733419264169D-17 + 3 45 1 43 0.13360427838615D+00 0.15229776686348D-17 + 1 46 1 43 0.21493144039402D+00 0.17253108702172D-16 + 2 46 1 43 -0.61638313884036D+00 0.13430585120714D-16 + 3 46 1 43 -0.35798312713401D+00 0.62730863754591D-17 + 1 47 1 43 -0.54947314096177D+00 0.29961762624721D-16 + 2 47 1 43 0.45780525994135D+00 0.13782414738324D-16 + 3 47 1 43 0.14226339989857D+00 -0.13320058015289D-16 + 1 48 1 43 -0.78153175645182D+00 0.52261127975351D-17 + 2 48 1 43 -0.46840841101348D+00 -0.89190186622531D-17 + 3 48 1 43 -0.53730740550124D+00 0.24875732227767D-16 + 1 49 1 43 0.24071006525499D+00 -0.60068783916807D-16 + 2 49 1 43 -0.29803704164043D+00 0.22935328500252D-17 + 3 49 1 43 0.44122789176326D+00 0.10525889516547D-16 + 1 50 1 43 0.24026317668265D+00 0.61868293595439D-16 + 2 50 1 43 -0.12568042557563D+01 0.28758038482294D-16 + 3 50 1 43 -0.19589691143570D+01 -0.62758369072402D-17 + 1 51 1 43 -0.28281032658509D+02 -0.10755291845977D-15 + 2 51 1 43 -0.14657929762345D+02 -0.64043087230488D-17 + 3 51 1 43 -0.14256821798390D+02 0.16555988470171D-18 + 1 52 1 43 0.81947051681338D-01 0.15614953391829D-15 + 2 52 1 43 0.17540967717463D+00 0.25739948429115D-16 + 3 52 1 43 -0.10458857416864D+00 0.21772715953615D-16 + 1 53 1 43 -0.63312078461237D+00 -0.12637577434615D-15 + 2 53 1 43 -0.51528742791334D+00 -0.79494019298583D-17 + 3 53 1 43 -0.44260789793588D+00 0.12619199207132D-16 + 1 54 1 43 -0.58364062511924D+00 0.35088980657770D-16 + 2 54 1 43 -0.65896889737925D+00 0.25622367731614D-16 + 3 54 1 43 -0.74948867391114D+00 -0.17482738982916D-16 + 1 55 1 43 0.31422049400922D+00 0.84058370933380D-16 + 2 55 1 43 -0.35986694257035D+00 -0.95897602536371D-17 + 3 55 1 43 0.17548457128181D+00 0.94650946053624D-17 + 1 56 1 43 0.33326485128250D+01 -0.18421497746821D-16 + 2 56 1 43 -0.79111691528172D+00 0.13999288688141D-16 + 3 56 1 43 -0.22422150556930D+01 0.23903306486225D-17 + 1 57 1 43 0.31882659330409D+01 0.66324893057565D-16 + 2 57 1 43 0.13686463220820D+01 0.20423745046502D-16 + 3 57 1 43 -0.14011878085562D+01 -0.24971617246410D-16 + 1 58 1 43 0.36035073432242D+01 0.12254776655578D-16 + 2 58 1 43 -0.14766123034724D+01 -0.10493741777715D-16 + 3 58 1 43 0.16287765163973D+01 -0.58452333306864D-17 + 1 59 1 43 0.30753321824938D+01 -0.21945746250142D-15 + 2 59 1 43 0.10982907017704D+01 0.29243173990131D-16 + 3 59 1 43 0.11033339330700D+01 -0.31896408493703D-16 + 1 60 1 43 -0.42568070033697D+00 0.37931431362120D-16 + 2 60 1 43 0.22985401946665D+00 -0.18479009552607D-16 + 3 60 1 43 -0.15638035851827D-01 0.29819037943739D-17 + 1 61 1 43 -0.23349397939445D-02 0.12486992470418D-16 + 2 61 1 43 0.77343943757396D-01 0.31498989453392D-16 + 3 61 1 43 -0.11767243478523D+00 -0.87445134484068D-17 + 1 62 1 43 -0.42519676728862D+00 0.78125110423092D-16 + 2 62 1 43 -0.34261208178817D+00 -0.14913819802792D-16 + 3 62 1 43 -0.10890786888940D+00 -0.16751377663888D-17 + 1 63 1 43 -0.20198582307330D-01 -0.15001772271728D-15 + 2 63 1 43 0.16133490743944D-01 0.22983646202584D-16 + 3 63 1 43 0.89382574095890D-01 -0.32889958632063D-16 + 1 64 1 43 0.64172853416080D+00 -0.16885534683379D-15 + 2 64 1 43 -0.56586395752864D+00 -0.76232436690724D-17 + 3 64 1 43 0.41799667554677D-01 -0.76649065799500D-17 + 1 65 1 43 -0.32913855200115D+01 -0.56127127103177D-16 + 2 65 1 43 -0.11913615239239D+01 0.46733347183707D-16 + 3 65 1 43 0.54552158771248D+01 -0.16681200635538D-17 + 1 1 2 43 0.28753091410638D+00 0.39009155923886D-16 + 2 1 2 43 0.19033349414045D+00 -0.28902329429299D-16 + 3 1 2 43 0.15949537106223D+00 -0.32032672069167D-16 + 1 2 2 43 -0.17380976115390D+02 -0.44714535041290D-18 + 2 2 2 43 -0.27760819090572D+02 0.11514008474563D-15 + 3 2 2 43 0.18445644366106D+02 0.39048429138066D-16 + 1 3 2 43 -0.33968534256652D+00 0.48533694262656D-16 + 2 3 2 43 -0.60975442156202D+00 -0.19710975144707D-15 + 3 3 2 43 0.14952538593819D+00 0.31846667436173D-16 + 1 4 2 43 -0.23882867257476D+00 -0.18625213998886D-16 + 2 4 2 43 0.29163708009969D+00 0.30414180799429D-16 + 3 4 2 43 0.33313519872919D+00 0.26850376189381D-16 + 1 5 2 43 0.28590715431927D+00 -0.18409284853219D-16 + 2 5 2 43 0.12265406544990D+01 0.35006147021102D-16 + 3 5 2 43 -0.17065758913518D+01 -0.13313767784440D-16 + 1 6 2 43 -0.35996202666302D+00 -0.20041977521202D-16 + 2 6 2 43 0.18898539371496D+00 0.19038956947439D-16 + 3 6 2 43 -0.25867275679240D+00 -0.10855240831311D-16 + 1 7 2 43 -0.17379472240560D+00 -0.26652256415827D-16 + 2 7 2 43 0.16229330172929D+00 0.16975184506027D-15 + 3 7 2 43 0.12118996449943D-01 -0.20698982818585D-17 + 1 8 2 43 -0.32150151371740D+00 0.43211382287314D-16 + 2 8 2 43 -0.31887366055224D+00 0.10693330961007D-16 + 3 8 2 43 0.55610764499212D+00 0.90709531004570D-17 + 1 9 2 43 -0.56111524358573D-01 -0.86437062020934D-16 + 2 9 2 43 0.28004815274237D-01 -0.34862216455817D-15 + 3 9 2 43 -0.23773955807572D+00 -0.10369103753478D-16 + 1 10 2 43 0.11771011529336D+00 0.10741828338278D-15 + 2 10 2 43 0.17176138476523D-01 -0.14759554664948D-15 + 3 10 2 43 -0.11438150796612D+00 -0.20328559025055D-16 + 1 11 2 43 -0.13211942367619D+01 0.55724193607751D-16 + 2 11 2 43 0.31311444326211D+01 0.10740744040380D-15 + 3 11 2 43 -0.13319450553958D+01 -0.29563177542954D-16 + 1 12 2 43 0.12482638357656D+01 -0.10119611573144D-15 + 2 12 2 43 0.28423411136097D+01 -0.16592629272865D-15 + 3 12 2 43 -0.12067952504781D+01 0.13669053109944D-16 + 1 13 2 43 -0.80742365490620D-01 -0.75669486817942D-16 + 2 13 2 43 -0.42718762411060D-01 -0.79322257765117D-16 + 3 13 2 43 0.11189461027629D+00 0.50002211085376D-17 + 1 14 2 43 0.88968340529825D-01 0.81162746827511D-16 + 2 14 2 43 -0.74228177386465D-01 0.31178470259811D-15 + 3 14 2 43 0.53660734478787D-01 0.60791449737748D-17 + 1 15 2 43 0.14264458797104D+01 0.87872703353463D-16 + 2 15 2 43 0.31732604423890D+01 0.20970047415236D-16 + 3 15 2 43 0.12061807511854D+01 0.26433631948154D-16 + 1 16 2 43 0.61070928979988D+00 -0.31075588307645D-16 + 2 16 2 43 0.10055228481423D+01 -0.81520013036318D-16 + 3 16 2 43 0.71273818903616D+00 0.64517856899547D-17 + 1 17 2 43 0.57259088947737D+00 -0.90873316491663D-17 + 2 17 2 43 -0.48945075687644D+00 -0.26192949438979D-15 + 3 17 2 43 0.56817747023680D+00 0.20950589669188D-16 + 1 18 2 43 0.12618695132517D+02 -0.27707027571688D-16 + 2 18 2 43 -0.25485998875877D+02 0.12207480842694D-15 + 3 18 2 43 0.14949212088362D+02 0.21343260921831D-17 + 1 19 2 43 -0.26522545003791D+00 0.20624545800071D-17 + 2 19 2 43 0.12834338893620D+00 0.22824910278556D-15 + 3 19 2 43 -0.16842214387475D+00 0.12234731191409D-16 + 1 20 2 43 0.64346728371812D-01 -0.91695138993658D-17 + 2 20 2 43 -0.13525500815597D+00 0.10389228541687D-15 + 3 20 2 43 0.50016541024873D+00 -0.27864572489313D-16 + 1 21 2 43 -0.42196927431095D-02 0.40510042956741D-17 + 2 21 2 43 0.32802942366760D+00 -0.11769100958998D-16 + 3 21 2 43 -0.48541681642133D-01 0.18821194974969D-16 + 1 22 2 43 0.12590578526662D+00 0.33671926343888D-16 + 2 22 2 43 -0.11150142372855D+01 0.88714729551608D-16 + 3 22 2 43 0.12676911053746D+01 0.39502842253420D-16 + 1 23 2 43 0.53061614381882D+00 0.25440341322374D-16 + 2 23 2 43 -0.86409040711022D+00 -0.12880781961846D-15 + 3 23 2 43 0.27618358262648D+00 -0.12537387824751D-16 + 1 24 2 43 0.10585392237338D+00 -0.33819970572740D-17 + 2 24 2 43 -0.21107489075072D+00 0.19595860752230D-15 + 3 24 2 43 0.45686340930218D-01 -0.80405036551460D-17 + 1 25 2 43 -0.30400799938289D+01 0.52570783289616D-18 + 2 25 2 43 -0.29219202594768D+01 0.13869527827653D-15 + 3 25 2 43 0.14454054486640D+01 -0.66780173130576D-16 + 1 26 2 43 -0.96293916460597D-01 -0.34526577236860D-18 + 2 26 2 43 -0.23563032171867D+00 0.29679970670251D-15 + 3 26 2 43 0.10511726601206D+00 0.13696604305830D-15 + 1 27 2 43 0.30637658912080D+01 -0.23069921206367D-17 + 2 27 2 43 -0.31543092489251D+01 0.16770782884723D-16 + 3 27 2 43 0.11316458786832D+01 -0.25204427079691D-16 + 1 28 2 43 -0.13987575062728D+00 -0.14184758615783D-17 + 2 28 2 43 -0.26127655378421D+00 0.28875449557620D-15 + 3 28 2 43 0.46826809137953D-01 0.91126715982640D-17 + 1 29 2 43 0.26899078430667D+01 0.46247311356890D-18 + 2 29 2 43 -0.30775016116620D+01 0.14707952086993D-15 + 3 29 2 43 -0.11485207674171D+01 0.88378860650947D-16 + 1 30 2 43 -0.41272559615119D-01 0.61925902478926D-18 + 2 30 2 43 0.81916361108250D-01 -0.97884219920812D-16 + 3 30 2 43 -0.15534832070322D+00 0.64572973193193D-16 + 1 31 2 43 -0.32191059477274D+01 0.18708852698395D-17 + 2 31 2 43 -0.30730874511020D+01 -0.29043512135827D-15 + 3 31 2 43 -0.13634437152049D+01 0.48681469008818D-16 + 1 32 2 43 0.17151064833579D+02 -0.42715772361904D-17 + 2 32 2 43 -0.25943254441570D+02 -0.35124398089465D-16 + 3 32 2 43 -0.16509815584851D+02 -0.95532641695735D-17 + 1 33 2 43 -0.42205070125685D+00 0.20420334885671D-16 + 2 33 2 43 0.23490982432093D+00 0.13997906391681D-15 + 3 33 2 43 -0.40212139172872D+00 0.15806148601038D-16 + 1 34 2 43 0.35569019419799D+00 0.17477117943228D-16 + 2 34 2 43 0.44715972523503D+00 -0.13054008230184D-15 + 3 34 2 43 -0.16366981488135D+00 0.17194621502000D-16 + 1 35 2 43 0.49952396734700D+00 0.38062809895552D-16 + 2 35 2 43 -0.55330131078287D+00 -0.64009483068462D-17 + 3 35 2 43 -0.49151781919568D+00 -0.16319305135746D-16 + 1 36 2 43 0.20189496355113D+00 0.29184698173046D-16 + 2 36 2 43 0.33670670103111D+00 -0.19810597391390D-15 + 3 36 2 43 0.33929061429274D+00 -0.11731287171431D-16 + 1 37 2 43 0.59823138478368D+00 -0.10036255128871D-16 + 2 37 2 43 -0.60193948425332D+00 -0.43536663539439D-17 + 3 37 2 43 -0.69117859893013D+00 -0.38804910167456D-16 + 1 38 2 43 0.27401375196434D+00 0.17684535729830D-16 + 2 38 2 43 -0.62129055617945D+00 -0.10428451593437D-15 + 3 38 2 43 -0.76511502303095D-01 0.39168725729887D-16 + 1 39 2 43 0.11555303207963D-01 -0.24174363909665D-16 + 2 39 2 43 0.27493805249823D+00 -0.20210876811800D-17 + 3 39 2 43 -0.51697840507664D-01 0.24855173241232D-16 + 1 40 2 43 -0.60412417775755D-01 0.55371849190303D-17 + 2 40 2 43 -0.18124573639915D+00 -0.70758774922634D-17 + 3 40 2 43 -0.25756283878901D-01 -0.32474611717330D-18 + 1 41 2 43 -0.38138444980194D-01 -0.96349173176513D-18 + 2 41 2 43 -0.40246564189427D+00 -0.22396415988324D-16 + 3 41 2 43 0.88364560270814D-01 0.57752794482760D-17 + 1 42 2 43 -0.30991150850772D+00 0.39537282004614D-18 + 2 42 2 43 -0.16738313558674D+00 0.94809239491491D-17 + 3 42 2 43 -0.20439597042973D+00 0.34192152968650D-18 + 1 43 2 43 0.68310894103200D+00 0.00000000000000D+00 + 2 43 2 43 0.12110065699664D+03 0.00000000000000D+00 + 3 43 2 43 0.11969682585237D+00 0.00000000000000D+00 + 1 44 2 43 0.55066654507334D-02 -0.16787673717053D-17 + 2 44 2 43 -0.12424139542536D+00 0.49549228071175D-17 + 3 44 2 43 -0.36608589249550D-01 -0.12252669678192D-17 + 1 45 2 43 0.61681663058356D-03 0.33733419264169D-17 + 2 45 2 43 -0.12417076851962D+00 -0.15363264875485D-17 + 3 45 2 43 0.10534837771692D+00 0.47907676682542D-18 + 1 46 2 43 0.61638313884036D+00 0.13430585120714D-16 + 2 46 2 43 0.12036259698951D+01 0.33892435546977D-17 + 3 46 2 43 -0.45036500072236D+00 0.15515171692313D-17 + 1 47 2 43 0.45780525994135D+00 0.13782414738324D-16 + 2 47 2 43 -0.12788006633506D+00 0.33902485097218D-17 + 3 47 2 43 0.28769115120802D+00 -0.10454315328048D-19 + 1 48 2 43 -0.37756050303363D+00 -0.89190186622531D-17 + 2 48 2 43 -0.21332075910505D+00 0.70153498433655D-16 + 3 48 2 43 -0.40158016642122D+00 0.25985303412485D-16 + 1 49 2 43 -0.24324448070264D+00 0.22935328500252D-17 + 2 49 2 43 0.62299032448476D+00 0.21789301023624D-15 + 3 49 2 43 -0.26491264012522D+00 -0.61803979088761D-17 + 1 50 2 43 0.69344548756158D+00 0.28758038482294D-16 + 2 50 2 43 -0.11782400519076D+01 -0.23248323932899D-15 + 3 50 2 43 -0.15289918852252D+01 -0.20985756129485D-17 + 1 51 2 43 -0.14992323709904D+02 -0.64043087230488D-17 + 2 51 2 43 -0.25101178599709D+02 -0.13730401960673D-15 + 3 51 2 43 -0.12776995690578D+02 0.19022434995514D-16 + 1 52 2 43 -0.24610974420285D+00 0.25739948429115D-16 + 2 52 2 43 0.53148809985973D+00 0.10898142756211D-15 + 3 52 2 43 -0.24018265599631D+00 -0.61392244671170D-17 + 1 53 2 43 -0.63253059845948D+00 -0.79494019298583D-17 + 2 53 2 43 -0.50206812739810D+00 -0.12397226128517D-15 + 3 53 2 43 -0.46177411275870D+00 -0.57186047238382D-17 + 1 54 2 43 -0.45615503776575D+00 0.25622367731614D-16 + 2 54 2 43 -0.93113972708092D+00 0.61547827227074D-16 + 3 54 2 43 -0.61830381521060D+00 0.17199845344107D-16 + 1 55 2 43 0.29825601567460D-02 -0.95897602536371D-17 + 2 55 2 43 0.10626880733349D+00 0.78616325146383D-17 + 3 55 2 43 0.18019124741021D+00 0.59287420802132D-18 + 1 56 2 43 0.22422150556930D+01 0.13999288688141D-16 + 2 56 2 43 -0.19446621466388D+01 -0.20409201670940D-15 + 3 56 2 43 -0.37785239078169D+01 -0.22332493089005D-17 + 1 57 2 43 -0.12532163534032D+01 0.20423745046502D-16 + 2 57 2 43 -0.31017691541785D+01 0.19738703976656D-15 + 3 57 2 43 0.31874796976435D+01 -0.80369733738897D-18 + 1 58 2 43 0.16287765163973D+01 -0.10493741777715D-16 + 2 58 2 43 -0.32451830657095D+01 0.60798556617102D-16 + 3 58 2 43 0.32987071675482D+01 0.00000000000000D+00 + 1 59 2 43 -0.14950307013228D+01 0.29243173990131D-16 + 2 59 2 43 -0.31906510664380D+01 0.19084131329872D-15 + 3 59 2 43 -0.31475754789696D+01 -0.66868547976930D-17 + 1 60 2 43 -0.10890786888940D+00 -0.18479009552607D-16 + 2 60 2 43 0.11250902439584D+00 0.10968058194593D-15 + 3 60 2 43 0.51949986066785D+00 -0.31883985631378D-17 + 1 61 2 43 -0.66047993622613D-01 0.31498989453392D-16 + 2 61 2 43 -0.26287299123699D+00 -0.12682206501120D-15 + 3 61 2 43 -0.14387887629046D+00 0.18013436172678D-17 + 1 62 2 43 0.15638035851827D-01 -0.14913819802792D-16 + 2 62 2 43 -0.31513249573963D+00 -0.18164994930011D-15 + 3 62 2 43 -0.51957007617258D+00 0.48372629050075D-17 + 1 63 2 43 -0.14193478143410D+00 0.22983646202584D-16 + 2 63 2 43 -0.19898996517371D+00 0.14340613755022D-15 + 3 63 2 43 0.10413342879518D+00 -0.16511251164400D-18 + 1 64 2 43 -0.25613440692052D+00 -0.76232436690724D-17 + 2 64 2 43 -0.50406954958962D+00 0.60598428993198D-16 + 3 64 2 43 -0.26027499431462D+00 0.44670583935865D-17 + 1 65 2 43 -0.11024226193011D+01 0.46733347183707D-16 + 2 65 2 43 0.12473213394782D+01 -0.83688878078992D-16 + 3 65 2 43 0.65632748910255D+00 -0.14508465104152D-16 + 1 1 3 43 0.29934916374172D+00 0.10651148271533D-16 + 2 1 3 43 0.24748365031444D+00 -0.32032672069167D-16 + 3 1 3 43 0.62661665556899D+00 0.94271835209023D-16 + 1 2 3 43 0.14558835678490D+02 0.27862473789282D-16 + 2 2 3 43 0.17524480964126D+02 0.39048429138066D-16 + 3 2 3 43 -0.26885952984624D+02 -0.14387393271676D-15 + 1 3 3 43 0.35556774802707D+00 -0.10035648921138D-16 + 2 3 3 43 0.43526276143988D+00 0.31846667436173D-16 + 3 3 3 43 -0.85893846018723D-01 0.30548723209928D-15 + 1 4 3 43 -0.23038762429388D+00 0.62301330392286D-16 + 2 4 3 43 0.27476276805790D+00 0.26850376189381D-16 + 3 4 3 43 0.15731667061841D+00 -0.14389050069989D-15 + 1 5 3 43 -0.26317444518415D+00 0.13225254756045D-16 + 2 5 3 43 -0.15198829841141D+01 -0.13313767784440D-16 + 3 5 3 43 0.11871324957381D+01 0.71471074620662D-15 + 1 6 3 43 0.26938321812239D+00 -0.62044299416521D-17 + 2 6 3 43 -0.34011013696974D+00 -0.10855240831311D-16 + 3 6 3 43 0.93208777468688D-01 -0.59829879769674D-16 + 1 7 3 43 0.10281033293596D+00 0.36817187483169D-17 + 2 7 3 43 0.98401233411654D-01 -0.20698982818585D-17 + 3 7 3 43 0.26864894443220D+00 -0.75028889584628D-16 + 1 8 3 43 0.47577268331974D+00 0.30102076366755D-16 + 2 8 3 43 0.59167202259456D+00 0.90709531004570D-17 + 3 8 3 43 -0.83525506489339D+00 0.14823371123934D-15 + 1 9 3 43 0.82043198351641D-01 0.21512740629923D-17 + 2 9 3 43 0.71194922581209D-01 -0.10369103753478D-16 + 3 9 3 43 -0.16993298888397D+00 0.11947129736785D-15 + 1 10 3 43 -0.12050740714423D+00 0.35815312688668D-17 + 2 10 3 43 0.15168666551705D+00 -0.20328559025055D-16 + 3 10 3 43 -0.24793168041875D+00 0.14781961262379D-15 + 1 11 3 43 -0.33050853082271D+01 0.45647023023462D-17 + 2 11 3 43 0.12841378769088D+01 -0.29563177542954D-16 + 3 11 3 43 -0.29877680086003D+01 -0.96282923880711D-16 + 1 12 3 43 0.35469120189638D+01 -0.18968877054338D-17 + 2 12 3 43 0.10925016594282D+01 0.13669053109944D-16 + 3 12 3 43 -0.33903977200178D+01 -0.24380901132620D-15 + 1 13 3 43 -0.10038897771306D+00 0.40605418911297D-17 + 2 13 3 43 -0.11750953390600D+00 0.50002211085376D-17 + 3 13 3 43 -0.18948265496565D+00 -0.10714570985003D-15 + 1 14 3 43 0.10097204574324D+00 -0.21304685647815D-17 + 2 14 3 43 -0.83074439382483D-01 0.60791449737748D-17 + 3 14 3 43 -0.24639150368970D+00 -0.22401475828783D-15 + 1 15 3 43 -0.31773514429869D+01 -0.11829975204755D-17 + 2 15 3 43 -0.13470329229198D+01 0.26433631948154D-16 + 3 15 3 43 -0.29954888535487D+01 -0.53959868483921D-16 + 1 16 3 43 0.21034855301276D+00 0.96161326705836D-18 + 2 16 3 43 0.37174795431058D-01 0.64517856899547D-17 + 3 16 3 43 -0.18536809697929D+00 -0.11622578890867D-15 + 1 17 3 43 -0.45818229504203D+00 0.13061826707012D-16 + 2 17 3 43 0.48522302031411D+00 0.20950589669188D-16 + 3 17 3 43 -0.50913110257273D+00 0.14564526744565D-15 + 1 18 3 43 -0.13901670395537D+02 -0.40554702202307D-16 + 2 18 3 43 0.14345599579922D+02 0.21343260921831D-17 + 3 18 3 43 -0.26367025656392D+02 0.25707684196212D-15 + 1 19 3 43 0.53763771560470D-01 -0.62299699897276D-16 + 2 19 3 43 0.26868741007231D+00 0.12234731191409D-16 + 3 19 3 43 0.27420601099825D+00 0.10326546938978D-15 + 1 20 3 43 -0.25450899472504D+00 0.17218805183224D-16 + 2 20 3 43 0.33525327094947D+00 -0.27864572489313D-16 + 3 20 3 43 -0.87719096127326D+00 0.10675408392023D-15 + 1 21 3 43 0.94617811102819D-02 -0.15535359826721D-16 + 2 21 3 43 -0.49505833736298D-01 0.18821194974969D-16 + 3 21 3 43 0.24492796035845D+00 -0.98224963417683D-16 + 1 22 3 43 0.35757827279190D-01 -0.36661033737761D-16 + 2 22 3 43 0.13549678598456D+01 0.39502842253420D-16 + 3 22 3 43 -0.11313505286587D+01 0.22668198302340D-15 + 1 23 3 43 -0.52011348209475D+00 -0.23840961109739D-16 + 2 23 3 43 0.59323179457402D+00 -0.12537387824751D-16 + 3 23 3 43 -0.39910233886036D+00 0.30792795653984D-15 + 1 24 3 43 -0.11757710023595D+00 -0.70188734773299D-17 + 2 24 3 43 -0.10726450908200D+00 -0.80405036551460D-17 + 3 24 3 43 0.37900726108903D-02 -0.79712634894655D-16 + 1 25 3 43 -0.11397146903825D+01 0.47184517188330D-16 + 2 25 3 43 -0.10540879121051D+01 -0.66780173130576D-16 + 3 25 3 43 0.30580094079255D+01 0.38171750226140D-16 + 1 26 3 43 0.10790549971587D+00 -0.76991883728440D-16 + 2 26 3 43 -0.44033202187164D-01 0.13696604305830D-15 + 3 26 3 43 -0.18463012523099D-01 -0.83577943437091D-16 + 1 27 3 43 0.14205596556584D+01 -0.44835885544143D-16 + 2 27 3 43 -0.12396011896155D+01 -0.25204427079691D-16 + 3 27 3 43 0.30306915079876D+01 0.27521087900889D-16 + 1 28 3 43 -0.72227401361730D-01 0.19137080604000D-16 + 2 28 3 43 0.20147194587619D+00 0.91126715982640D-17 + 3 28 3 43 -0.19873251756066D+00 -0.26984063413856D-16 + 1 29 3 43 -0.11176717924403D+01 0.77439532337211D-16 + 2 29 3 43 0.95452131471841D+00 0.88378860650947D-16 + 3 29 3 43 0.26328894094708D+01 0.27263033832627D-17 + 1 30 3 43 0.14109272489711D+00 -0.91354561625509D-16 + 2 30 3 43 0.12818383142601D+00 0.64572973193193D-16 + 3 30 3 43 -0.10484951280540D+00 0.63253812140186D-16 + 1 31 3 43 0.14529028836111D+01 -0.18910039476572D-16 + 2 31 3 43 0.12261362992760D+01 0.48681469008818D-16 + 3 31 3 43 0.32532103886273D+01 -0.10413767355377D-15 + 1 32 3 43 0.13111602562201D+02 -0.35527418801425D-16 + 2 32 3 43 -0.23403793604854D+02 -0.95532641695735D-17 + 3 32 3 43 -0.26966858017480D+02 0.28318135095804D-15 + 1 33 3 43 0.30050836975059D+00 0.92346288269205D-17 + 2 33 3 43 -0.31592974345078D+00 0.15806148601038D-16 + 3 33 3 43 0.55573036713755D+00 -0.11022845199172D-15 + 1 34 3 43 -0.42098272698904D+00 0.26993235612938D-16 + 2 34 3 43 -0.25348016079986D+00 0.17194621502000D-16 + 3 34 3 43 0.12123201124200D+00 -0.73552358758143D-16 + 1 35 3 43 0.49338013526382D+00 -0.46653411289474D-17 + 2 35 3 43 -0.49852977540938D+00 -0.16319305135746D-16 + 3 35 3 43 -0.32116000110639D+00 0.16636856445098D-15 + 1 36 3 43 0.16615110843061D+00 0.24489351443745D-16 + 2 36 3 43 0.64823888964951D-01 -0.11731287171431D-16 + 3 36 3 43 0.15446028503366D+00 -0.17899335059475D-15 + 1 37 3 43 0.63674313804244D+00 -0.32330588543688D-16 + 2 37 3 43 -0.68264261748262D+00 -0.38804910167456D-16 + 3 37 3 43 -0.37756417728968D+00 -0.11410670078389D-15 + 1 38 3 43 0.59033759901085D+00 0.47212471667922D-16 + 2 38 3 43 -0.23675050006731D+00 0.39168725729887D-16 + 3 38 3 43 -0.87879839587781D+00 -0.40014404774036D-15 + 1 39 3 43 0.31560473711003D-02 -0.60953941119757D-17 + 2 39 3 43 0.19573453759546D-01 0.24855173241232D-16 + 3 39 3 43 0.29525495854004D+00 0.37640843990794D-16 + 1 40 3 43 -0.73096735208846D-01 0.29991727332096D-17 + 2 40 3 43 -0.51528606358534D-01 -0.32474611717330D-18 + 3 40 3 43 -0.10723510414042D+00 0.11173886809800D-17 + 1 41 3 43 -0.42250900489266D-02 -0.35057296813188D-17 + 2 41 3 43 -0.34209735405513D-01 0.57752794482760D-17 + 3 41 3 43 -0.25125029174601D+00 0.43261485396937D-17 + 1 42 3 43 0.18069400296059D+00 -0.20518366673444D-17 + 2 42 3 43 -0.20439597042973D+00 0.34192152968650D-18 + 3 42 3 43 -0.62710495305077D+00 0.30172539333246D-16 + 1 43 3 43 -0.28802566016952D+01 0.00000000000000D+00 + 2 43 3 43 0.11969682585237D+00 0.00000000000000D+00 + 3 43 3 43 0.12111955382287D+03 0.00000000000000D+00 + 1 44 3 43 0.52381069365456D-02 -0.14009032259662D-17 + 2 44 3 43 -0.69431513153942D-02 -0.12252669678192D-17 + 3 44 3 43 -0.11789925547314D+00 0.79239667480047D-17 + 1 45 3 43 0.78044554531754D-02 0.15229776686348D-17 + 2 45 3 43 -0.73131832143502D-01 0.47907676682542D-18 + 3 45 3 43 0.14870128380568D+01 0.12685313057522D-16 + 1 46 3 43 -0.35798312713401D+00 0.62730863754591D-17 + 2 46 3 43 0.45036500072236D+00 0.15515171692313D-17 + 3 46 3 43 0.20435856490277D+00 0.54316823892469D-17 + 1 47 3 43 -0.14226339989857D+00 -0.13320058015289D-16 + 2 47 3 43 -0.28769115120802D+00 -0.10454315328048D-19 + 3 47 3 43 -0.40548407098281D+00 -0.25529551465850D-17 + 1 48 3 43 -0.31197724830339D+00 0.24875732227767D-16 + 2 48 3 43 -0.29558449714712D+00 0.25985303412485D-16 + 3 48 3 43 -0.25326590528757D+00 -0.97104109716894D-16 + 1 49 3 43 0.39930320110790D+00 0.10525889516547D-16 + 2 49 3 43 -0.43699935314725D+00 -0.61803979088761D-17 + 3 49 3 43 0.18654111657419D+00 -0.23718387831135D-15 + 1 50 3 43 -0.69836127851068D+00 -0.62758369072402D-17 + 2 50 3 43 0.87578480095376D+00 -0.20985756129485D-17 + 3 50 3 43 0.19692102717770D+01 -0.15758533194685D-15 + 1 51 3 43 -0.13867197110953D+02 0.16555988470171D-18 + 2 51 3 43 -0.12371596783117D+02 0.19022434995514D-16 + 3 51 3 43 -0.24532491806041D+02 -0.26804088349183D-15 + 1 52 3 43 0.10295060887454D+00 0.21772715953615D-16 + 2 52 3 43 -0.20826631690892D+00 -0.61392244671170D-17 + 3 52 3 43 0.37092861818659D+00 -0.11780105004016D-15 + 1 53 3 43 -0.28525463577358D+00 0.12619199207132D-16 + 2 53 3 43 -0.49069469237906D+00 -0.57186047238382D-17 + 3 53 3 43 -0.79567018427530D+00 0.36762399245608D-16 + 1 54 3 43 -0.58941207799973D+00 -0.17482738982916D-16 + 2 54 3 43 -0.34781997433925D+00 0.17199845344107D-16 + 3 54 3 43 -0.34062346733945D+00 -0.39671714416605D-16 + 1 55 3 43 -0.21516708156433D+00 0.94650946053624D-17 + 2 55 3 43 0.30197170554672D+00 0.59287420802132D-18 + 3 55 3 43 0.31305621381474D-01 -0.84851838004019D-16 + 1 56 3 43 0.79111691528172D+00 0.23903306486225D-17 + 2 56 3 43 -0.25874532646369D+01 -0.22332493089005D-17 + 3 56 3 43 -0.19446621466388D+01 0.32468536933615D-16 + 1 57 3 43 0.12980637146701D+01 -0.24971617246410D-16 + 2 57 3 43 0.32644467995037D+01 -0.80369733738897D-18 + 3 57 3 43 -0.32375816820263D+01 -0.20176636587604D-15 + 1 58 3 43 -0.14766123034724D+01 -0.58452333306864D-17 + 2 58 3 43 0.31360063028185D+01 0.00000000000000D+00 + 3 58 3 43 -0.32451830657095D+01 0.26616978656152D-16 + 1 59 3 43 -0.15222885050610D+01 -0.31896408493703D-16 + 2 59 3 43 -0.31255487756682D+01 -0.66868547976930D-17 + 3 59 3 43 -0.29367943623405D+01 -0.25869340093620D-15 + 1 60 3 43 0.34261208178817D+00 0.29819037943739D-17 + 2 60 3 43 -0.14341331282464D+00 -0.31883985631378D-17 + 3 60 3 43 -0.31513249573964D+00 0.76216916269070D-16 + 1 61 3 43 0.52633044411428D-01 -0.87445134484068D-17 + 2 61 3 43 -0.99437535727202D-01 0.18013436172678D-17 + 3 61 3 43 -0.22821706536484D+00 0.13810064457803D-15 + 1 62 3 43 0.22985401946665D+00 -0.16751377663888D-17 + 2 62 3 43 0.14284829732332D+00 0.48372629050075D-17 + 3 62 3 43 0.11250902439584D+00 -0.14531222721592D-15 + 1 63 3 43 -0.12057846732556D+00 -0.32889958632063D-16 + 2 63 3 43 0.10055451728177D+00 -0.16511251164400D-18 + 3 63 3 43 -0.21575497152441D+00 0.23781274838554D-15 + 1 64 3 43 -0.15548126048239D+00 -0.76649065799500D-17 + 2 64 3 43 0.64771781666689D+00 0.44670583935865D-17 + 3 64 3 43 0.34079756875252D+00 0.12212952054832D-15 + 1 65 3 43 0.59872147645347D+01 -0.16681200635538D-17 + 2 65 3 43 0.11989383012938D+01 -0.14508465104152D-16 + 3 65 3 43 -0.61191765798690D+01 0.36234510698782D-15 + 1 1 1 44 -0.46736184534095D+00 -0.39344629813503D-16 + 2 1 1 44 -0.55398192425772D+00 -0.36969772565356D-16 + 3 1 1 44 0.42315601101540D+00 -0.22047863782980D-16 + 1 2 1 44 0.27664613061127D+00 0.15956306159112D-15 + 2 2 1 44 0.20626483504748D-02 -0.24226870363346D-16 + 3 2 1 44 0.84150502029040D-02 0.86664832493615D-17 + 1 3 1 44 0.36923994026917D+00 -0.13953546634162D-15 + 2 3 1 44 -0.29686620036028D+00 -0.23656019032345D-16 + 3 3 1 44 0.20300347704440D+00 0.12280891314261D-16 + 1 4 1 44 -0.37009599433220D+00 -0.31991718578969D-15 + 2 4 1 44 -0.46559347373896D+00 0.28534941323174D-17 + 3 4 1 44 0.45192755122545D+00 -0.18304543145337D-16 + 1 5 1 44 0.57174427519677D-01 -0.33971143458801D-16 + 2 5 1 44 0.33794676895601D-01 0.23086216489431D-16 + 3 5 1 44 -0.41327057252999D-01 0.13470534747224D-16 + 1 6 1 44 -0.75060432465814D+00 0.11286586232988D-15 + 2 6 1 44 -0.48409400010692D+00 -0.11027998936457D-16 + 3 6 1 44 0.49830994239345D+00 0.56101250333609D-16 + 1 7 1 44 -0.25336542636213D+02 -0.48070409412781D-16 + 2 7 1 44 -0.13677385535158D+02 -0.18282353923219D-16 + 3 7 1 44 0.13879011340542D+02 0.14509743507987D-17 + 1 8 1 44 0.18950469390943D+00 0.48420982913150D-16 + 2 8 1 44 0.32566797249811D+00 -0.29628728941335D-16 + 3 8 1 44 0.28250092722396D+00 0.42268747475756D-16 + 1 9 1 44 -0.30647115086679D+01 -0.16564852167222D-15 + 2 9 1 44 -0.13761677586902D+01 -0.60677549031314D-16 + 3 9 1 44 -0.30596651663489D+01 -0.75972518946481D-18 + 1 10 1 44 -0.30750329147910D+01 0.16902107225637D-15 + 2 10 1 44 0.12418553858657D+01 0.44421846474934D-16 + 3 10 1 44 0.31522845379931D+01 0.33058238947577D-17 + 1 11 1 44 -0.21575864670251D+00 0.27423446797904D-16 + 2 11 1 44 -0.10667108461057D+00 -0.28785077034635D-16 + 3 11 1 44 0.85136664112450D-01 -0.19087818094869D-19 + 1 12 1 44 -0.26513434349829D+00 -0.72228644813653D-16 + 2 12 1 44 0.10882249164783D+00 0.88468313414440D-18 + 3 12 1 44 -0.88364808457841D-01 0.27305120943167D-18 + 1 13 1 44 -0.30574761769625D+01 0.11720722158818D-15 + 2 13 1 44 -0.13103510648214D+01 0.15222582749040D-16 + 3 13 1 44 0.32811025291623D+01 -0.29576896036197D-17 + 1 14 1 44 -0.30813310039781D+01 0.11012144967672D-15 + 2 14 1 44 0.13673988736778D+01 -0.38938640565492D-16 + 3 14 1 44 -0.31991757639689D+01 -0.52135276009126D-18 + 1 15 1 44 -0.23316055675786D+00 0.14931289534146D-15 + 2 15 1 44 0.12734062973723D+00 0.94025599777758D-16 + 3 15 1 44 0.95524459798810D-01 0.36546435918342D-18 + 1 16 1 44 -0.49304833638927D+00 0.18183627391201D-15 + 2 16 1 44 0.36482159917444D+00 0.24916194481071D-17 + 3 16 1 44 -0.50130163375714D+00 -0.97851727264576D-18 + 1 17 1 44 0.52464302253744D+00 0.16642591385097D-15 + 2 17 1 44 0.34486761325058D+00 0.51997047154996D-17 + 3 17 1 44 -0.32135967168936D+00 -0.43775918282554D-16 + 1 18 1 44 0.24369046204171D+00 -0.15658655712009D-15 + 2 18 1 44 0.45448141448590D-01 0.21319420924421D-17 + 3 18 1 44 -0.67656636498685D-02 0.52085397902590D-16 + 1 19 1 44 -0.45333922621259D+00 -0.20895901580982D-16 + 2 19 1 44 0.50891363746347D+00 0.11225708107363D-16 + 3 19 1 44 -0.45618244863945D+00 -0.88549399794990D-17 + 1 20 1 44 0.17633524868552D+00 0.10327403089871D-15 + 2 20 1 44 -0.31821622388506D+00 -0.23702433369460D-16 + 3 20 1 44 -0.19985889980304D+00 -0.99433516575533D-17 + 1 21 1 44 -0.25794221122147D+02 -0.75061846931355D-16 + 2 21 1 44 0.13679113574287D+02 0.45887512554770D-17 + 3 21 1 44 -0.13738598552669D+02 -0.29001407147266D-16 + 1 22 1 44 -0.77015767769167D+00 -0.99340803057394D-16 + 2 22 1 44 0.52080259707712D+00 -0.51086287411109D-18 + 3 22 1 44 -0.45010459969444D+00 0.18084502181650D-16 + 1 23 1 44 0.15328911515380D+00 0.14536938747612D-15 + 2 23 1 44 0.22564467784921D+00 -0.23495983602126D-17 + 3 23 1 44 0.26505761927301D+00 0.25480365451853D-17 + 1 24 1 44 -0.30434692768448D+01 -0.23315838438088D-15 + 2 24 1 44 -0.31716179054068D+01 -0.14656190306174D-17 + 3 24 1 44 -0.12394348388543D+01 0.51257378512008D-16 + 1 25 1 44 -0.25031735777226D+00 -0.41889208190148D-16 + 2 25 1 44 0.88994994054173D-01 0.32784636318099D-18 + 3 25 1 44 -0.11878037928652D+00 0.18522126015300D-16 + 1 26 1 44 -0.30469835809634D+01 -0.13216452526175D-15 + 2 26 1 44 0.31599033686937D+01 0.11625661844419D-17 + 3 26 1 44 0.13679500992356D+01 -0.41259047530842D-17 + 1 27 1 44 -0.22263137836702D+00 0.25555866557189D-15 + 2 27 1 44 -0.10249546607287D+00 -0.27039739539307D-18 + 3 27 1 44 0.85795956644176D-01 -0.27841010666188D-16 + 1 28 1 44 -0.30043583412530D+01 -0.31474455204509D-16 + 2 28 1 44 0.31155961361121D+01 0.12336990395832D-17 + 3 28 1 44 -0.12210961823145D+01 -0.57361107499814D-16 + 1 29 1 44 -0.23944541779591D+00 0.19595868064602D-15 + 2 29 1 44 -0.81668301919142D-01 0.84393406533260D-18 + 3 29 1 44 -0.12681713296579D+00 0.96760755092663D-16 + 1 30 1 44 -0.31707252962002D+01 -0.10483879567269D-15 + 2 30 1 44 -0.31016132636269D+01 0.79383619624139D-18 + 3 30 1 44 0.12864439244776D+01 -0.84721450232654D-16 + 1 31 1 44 -0.22652366868191D+00 -0.16654183304890D-15 + 2 31 1 44 0.93447115162302D-01 0.87484870704695D-18 + 3 31 1 44 0.73751630300907D-01 0.38912646449701D-16 + 1 32 1 44 0.19309537375821D+00 0.13149375693260D-15 + 2 32 1 44 0.28826890102680D-01 -0.31315626586053D-16 + 3 32 1 44 0.79971555683547D-02 0.26381500955250D-17 + 1 33 1 44 -0.31512814179121D+00 0.10965121803589D-16 + 2 33 1 44 0.44224998145374D+00 -0.62586881815627D-17 + 3 33 1 44 0.45552372354200D+00 0.48132222699479D-17 + 1 34 1 44 -0.44551561571321D+00 0.17327915334778D-16 + 2 34 1 44 0.46486050728527D+00 0.27568111533621D-16 + 3 34 1 44 0.52775938851813D+00 0.28027176307712D-16 + 1 35 1 44 0.39734956014695D+00 -0.30198713130588D-16 + 2 35 1 44 0.22867874047310D+00 -0.86649456234551D-17 + 3 35 1 44 0.27710318582961D+00 -0.98136683353285D-16 + 1 36 1 44 -0.78592107040989D+00 -0.75362202072807D-16 + 2 36 1 44 0.47089004501018D+00 0.41101820229517D-16 + 3 36 1 44 0.46029301411802D+00 -0.20614217576032D-16 + 1 37 1 44 0.22931480882147D+00 -0.14194302408659D-15 + 2 37 1 44 0.29022933731613D+00 -0.36330379984376D-16 + 3 37 1 44 -0.35239402038778D+00 -0.14888425656141D-17 + 1 38 1 44 0.18966302382550D+00 -0.28086952712667D-15 + 2 38 1 44 -0.35138773653670D+00 0.32036035998234D-16 + 3 38 1 44 0.27707858760759D+00 -0.82678373005178D-16 + 1 39 1 44 -0.26326713723825D+02 0.17999761096742D-15 + 2 39 1 44 0.14477059088582D+02 -0.15165243724116D-16 + 3 39 1 44 0.14678196712314D+02 0.18902432263149D-16 + 1 40 1 44 -0.42441281638000D+00 -0.55085763376500D-17 + 2 40 1 44 -0.15132030000380D-02 0.53734531561369D-18 + 3 40 1 44 0.27334226525659D-02 0.17361574589173D-17 + 1 41 1 44 -0.14155133170060D+00 0.12186419503887D-17 + 2 41 1 44 0.23946093418141D-01 -0.23725664212051D-18 + 3 41 1 44 -0.15033632328304D-01 0.95460460013380D-18 + 1 42 1 44 -0.19511828925899D+00 -0.44127270901099D-17 + 2 42 1 44 -0.61681663058385D-03 0.14787815961524D-17 + 3 42 1 44 -0.78044554531755D-02 -0.22153471642482D-17 + 1 43 1 44 -0.12166211096925D+00 -0.16512316062224D-16 + 2 43 1 44 0.55066654507334D-02 0.16787673717053D-17 + 3 43 1 44 0.52381069365456D-02 0.14009032259662D-17 + 1 44 1 44 0.12000135680810D+03 0.00000000000000D+00 + 2 44 1 44 -0.65807813668288D+00 0.00000000000000D+00 + 3 44 1 44 -0.12319061319914D+00 0.00000000000000D+00 + 1 45 1 44 -0.23882617083894D+00 0.18190444246284D-17 + 2 45 1 44 0.10301842422670D-01 0.47965592055338D-19 + 3 45 1 44 0.15564013824401D-02 0.52127838817301D-19 + 1 46 1 44 -0.19374587556379D+00 -0.85452411827327D-17 + 2 46 1 44 0.38138444980193D-01 -0.11649178417919D-17 + 3 46 1 44 -0.42250900489270D-02 0.14182441408367D-16 + 1 47 1 44 0.16147086050100D+01 -0.11379983476295D-16 + 2 47 1 44 -0.60412417775755D-01 0.39622246839554D-17 + 3 47 1 44 0.73096735208846D-01 -0.43906028944420D-17 + 1 48 1 44 0.47011509603785D+00 -0.13662364794912D-15 + 2 48 1 44 -0.24689778800013D+00 0.16126010535772D-16 + 3 48 1 44 -0.31572160078401D+00 0.13495206595583D-16 + 1 49 1 44 -0.42574411112179D+00 0.16275961040919D-16 + 2 49 1 44 -0.49371812521041D+00 0.83515741236716D-17 + 3 49 1 44 -0.48878863251807D+00 0.35877128733971D-16 + 1 50 1 44 -0.69224099805297D-01 -0.90172441861797D-16 + 2 50 1 44 -0.28641075667356D+00 -0.15457878521668D-17 + 3 50 1 44 -0.49185051631149D+00 -0.14147277405977D-16 + 1 51 1 44 0.25748660815604D+00 -0.13058662043906D-15 + 2 51 1 44 -0.16149580206863D-01 0.14892052307967D-16 + 3 51 1 44 -0.44235881324102D-02 -0.66316792814685D-18 + 1 52 1 44 -0.27140407075915D+02 -0.17883536794390D-15 + 2 52 1 44 -0.14117436603271D+02 0.15980305018086D-16 + 3 52 1 44 -0.14657072719821D+02 0.12762087409646D-16 + 1 53 1 44 0.19346724068187D+00 0.11166892443373D-15 + 2 53 1 44 0.33125308076840D+00 0.46126297984547D-16 + 3 53 1 44 -0.29583507294684D+00 -0.14472436990887D-16 + 1 54 1 44 0.20291562690678D+00 0.11911528988418D-15 + 2 54 1 44 -0.26756134160942D+00 -0.21004177980124D-16 + 3 54 1 44 0.34208337300894D+00 -0.16750332609380D-16 + 1 55 1 44 -0.77717561802623D+00 -0.87476167204282D-16 + 2 55 1 44 -0.59936482346722D+00 -0.12696553656603D-16 + 3 55 1 44 -0.51547249503314D+00 -0.28195250500157D-16 + 1 56 1 44 -0.20198582307324D-01 -0.23215970067669D-15 + 2 56 1 44 0.12057846732556D+00 -0.18650510386618D-16 + 3 56 1 44 0.14193478143410D+00 0.74783773706617D-17 + 1 57 1 44 -0.20122628419791D-01 -0.15018694211754D-16 + 2 57 1 44 -0.13299472840209D+00 0.34812270722495D-17 + 3 57 1 44 0.11656811585862D+00 0.12137392362215D-16 + 1 58 1 44 -0.23349397939410D-02 -0.66711020615032D-16 + 2 58 1 44 0.52633044411426D-01 0.29590061712721D-17 + 3 58 1 44 -0.66047993622610D-01 -0.27131614161702D-16 + 1 59 1 44 -0.19982934461847D-01 0.12070082232694D-15 + 2 59 1 44 -0.10515103233069D+00 -0.30153049576106D-16 + 3 59 1 44 -0.95229223935948D-01 -0.24733279648490D-16 + 1 60 1 44 0.31882659330409D+01 0.25733459692766D-16 + 2 60 1 44 0.12980637146702D+01 0.35546015492085D-16 + 3 60 1 44 0.12532163534033D+01 0.11475164552297D-16 + 1 61 1 44 0.31556423151157D+01 -0.35191088215430D-16 + 2 61 1 44 -0.12789171090115D+01 -0.91242516630598D-17 + 3 61 1 44 0.12502012486378D+01 -0.31563082598885D-16 + 1 62 1 44 0.30753321824938D+01 -0.11387302436487D-16 + 2 62 1 44 0.15222885050610D+01 0.32801471831262D-16 + 3 62 1 44 -0.14950307013227D+01 -0.34238607997181D-16 + 1 63 1 44 0.30499504829966D+01 0.92832290118449D-16 + 2 63 1 44 -0.12884369863742D+01 0.19501304169793D-16 + 3 63 1 44 -0.13075662148973D+01 -0.26258649509645D-16 + 1 64 1 44 -0.18114310583079D+00 0.60870711184232D-16 + 2 64 1 44 -0.14635713762281D+00 -0.10966060242935D-15 + 3 64 1 44 -0.31293946107064D+00 -0.13326886079798D-16 + 1 65 1 44 -0.97987867871755D-02 0.11444264194416D-16 + 2 65 1 44 -0.60297436310531D-01 -0.10185659207736D-15 + 3 65 1 44 0.90537315177939D-02 0.72844298929228D-17 + 1 1 2 44 -0.48216063573330D+00 -0.36969772565356D-16 + 2 1 2 44 -0.45552851098672D+00 -0.16012439021786D-15 + 3 1 2 44 0.55199541123175D+00 -0.28145996163634D-16 + 1 2 2 44 -0.11650839707684D-02 -0.24226870363346D-16 + 2 2 2 44 0.29691473446176D+00 -0.10008501070693D-15 + 3 2 2 44 -0.18427734937984D-01 -0.26846669873244D-16 + 1 3 2 44 -0.33003961467011D+00 -0.23656019032345D-16 + 2 3 2 44 0.22912581400825D+00 0.78437050133221D-16 + 3 3 2 44 -0.27594970481658D+00 0.16801201656030D-16 + 1 4 2 44 -0.48491587255602D+00 0.28534941323174D-17 + 2 4 2 44 -0.78547982018116D+00 0.13604936823852D-15 + 3 4 2 44 0.46488166323621D+00 -0.74156800993036D-17 + 1 5 2 44 0.37616317979341D-02 0.23086216489431D-16 + 2 5 2 44 -0.37611087067124D+00 0.51425664806240D-16 + 3 5 2 44 0.20196117384861D-01 0.33330768400364D-16 + 1 6 2 44 -0.41642775373069D+00 -0.11027998936457D-16 + 2 6 2 44 -0.32229451800095D+00 0.78112381519590D-16 + 3 6 2 44 0.42944402667853D+00 -0.82304750380685D-17 + 1 7 2 44 -0.13733332541572D+02 -0.18282353923219D-16 + 2 7 2 44 -0.25999938377806D+02 0.12606819579512D-15 + 3 7 2 44 0.14107929617707D+02 0.23805228229780D-16 + 1 8 2 44 0.34179935926502D+00 -0.29628728941335D-16 + 2 8 2 44 0.16835463342987D+00 0.31381518311777D-15 + 3 8 2 44 0.30437217106272D+00 -0.29519291534258D-16 + 1 9 2 44 0.15562468678296D+01 -0.60677549031314D-16 + 2 9 2 44 0.31319582770427D+01 0.45215952440901D-17 + 3 9 2 44 0.13228488051543D+01 0.18105397992336D-16 + 1 10 2 44 -0.12876955666759D+01 0.44421846474934D-16 + 2 10 2 44 0.31461925409856D+01 -0.77646452892646D-16 + 3 10 2 44 0.13404540323597D+01 0.29498074412660D-16 + 1 11 2 44 0.93845201709301D-01 -0.28785077034635D-16 + 2 11 2 44 -0.31187185983458D-01 0.53543577473551D-16 + 3 11 2 44 0.11196569201530D+00 -0.34018887438849D-16 + 1 12 2 44 -0.12442806753827D+00 0.88468313414440D-18 + 2 12 2 44 -0.39034711006485D-01 0.34743402824567D-16 + 3 12 2 44 0.11706295729564D+00 0.11305125504280D-16 + 1 13 2 44 0.13086307270575D+01 0.15222582749040D-16 + 2 13 2 44 0.31612187369587D+01 -0.54113316719197D-17 + 3 13 2 44 -0.14207456754165D+01 -0.33487557207119D-16 + 1 14 2 44 -0.13194687112185D+01 -0.38938640565492D-16 + 2 14 2 44 0.31633305596009D+01 0.83472180653610D-16 + 3 14 2 44 -0.12654763266823D+01 0.20367083604614D-16 + 1 15 2 44 -0.10813448889692D+00 0.94025599777758D-16 + 2 15 2 44 -0.49105577665175D-02 -0.77668847588426D-16 + 3 15 2 44 -0.88500513317366D-01 -0.28756635176149D-16 + 1 16 2 44 0.35014435252327D+00 0.24916194481071D-17 + 2 16 2 44 -0.91736458850017D+00 -0.19898559433379D-15 + 3 16 2 44 0.44375316277967D+00 -0.32239663162310D-16 + 1 17 2 44 0.33179221431109D+00 0.51997047154996D-17 + 2 17 2 44 0.19316941103678D+00 -0.13191729659713D-15 + 3 17 2 44 -0.34435770576832D+00 0.58779395930579D-17 + 1 18 2 44 0.14456368115461D-01 0.21319420924421D-17 + 2 18 2 44 0.26354632444337D+00 -0.82519940571688D-17 + 3 18 2 44 0.18546293613142D-01 0.20733741276542D-17 + 1 19 2 44 0.52535734949561D+00 0.11225708107363D-16 + 2 19 2 44 -0.44735271654360D+00 -0.77561885892341D-16 + 3 19 2 44 0.47710773077174D+00 0.10714530929057D-16 + 1 20 2 44 -0.27566745941855D+00 -0.23702433369460D-16 + 2 20 2 44 0.21967419079835D+00 -0.29946785700976D-15 + 3 20 2 44 0.23274844943710D+00 -0.17625072387384D-17 + 1 21 2 44 0.13749665086973D+02 0.45887512554770D-17 + 2 21 2 44 -0.26190006915435D+02 -0.14078368511397D-15 + 3 21 2 44 0.13838939719674D+02 0.51049061321134D-17 + 1 22 2 44 0.30544660227199D+00 -0.51086287411109D-18 + 2 22 2 44 -0.52469610687682D+00 0.20029519080242D-15 + 3 22 2 44 0.46664333485389D+00 0.10854609409468D-16 + 1 23 2 44 0.29601155427096D+00 -0.23495983602126D-17 + 2 23 2 44 0.43222364377866D+00 0.17033298038135D-15 + 3 23 2 44 0.27340328278776D+00 0.90501291415863D-17 + 1 24 2 44 -0.33078081980729D+01 -0.14656190306174D-17 + 2 24 2 44 -0.31777519768981D+01 0.42198475603395D-17 + 3 24 2 44 -0.12600447229703D+01 0.48318381131389D-16 + 1 25 2 44 0.85695375456052D-01 0.32784636318099D-18 + 2 25 2 44 -0.24768484707755D+00 -0.26961952912775D-15 + 3 25 2 44 -0.98733218058407D-01 -0.15278761092148D-16 + 1 26 2 44 0.31491568175680D+01 0.11625661844419D-17 + 2 26 2 44 -0.30437881571425D+01 0.94349597687099D-16 + 3 26 2 44 -0.13599716217812D+01 -0.77740666599805D-16 + 1 27 2 44 -0.90063254104477D-01 -0.27039739539307D-18 + 2 27 2 44 -0.23295520329197D+00 0.67454430958755D-17 + 3 27 2 44 -0.92029099056184D-01 -0.85141973484140D-16 + 1 28 2 44 0.31738889652452D+01 0.12336990395832D-17 + 2 28 2 44 -0.30423786554362D+01 -0.19176818706286D-15 + 3 28 2 44 0.12571940962572D+01 -0.54111095955384D-16 + 1 29 2 44 -0.11482546015925D+00 0.84393406533260D-18 + 2 29 2 44 -0.21310322738957D+00 -0.35071045065081D-17 + 3 29 2 44 0.11344991498160D+00 -0.26357442071142D-16 + 1 30 2 44 -0.31091888531854D+01 0.79383619624139D-18 + 2 30 2 44 -0.30139916482755D+01 -0.58511776650342D-16 + 3 30 2 44 0.13756832393009D+01 -0.13934964704242D-16 + 1 31 2 44 0.11753736046785D+00 0.87484870704695D-18 + 2 31 2 44 -0.23208147027117D+00 0.52837667672617D-16 + 3 31 2 44 0.85666039169642D-01 0.11405788797888D-16 + 1 32 2 44 0.29764610515245D-01 -0.31315626586053D-16 + 2 32 2 44 0.79503731643841D-01 -0.16091622967739D-15 + 3 32 2 44 -0.94808506004455D-01 0.53916733680600D-16 + 1 33 2 44 0.41510684461685D+00 -0.62586881815627D-17 + 2 33 2 44 -0.37168114771699D+00 -0.44774290471275D-16 + 3 33 2 44 -0.46766185471483D+00 -0.55707701299382D-17 + 1 34 2 44 0.48848716900826D+00 0.27568111533621D-16 + 2 34 2 44 -0.84989106608483D+00 -0.12603750349451D-15 + 3 34 2 44 -0.49790547501619D+00 -0.28670424802891D-16 + 1 35 2 44 0.23802945606288D+00 -0.86649456234551D-17 + 2 35 2 44 0.19144027554771D+00 -0.24363905820218D-15 + 3 35 2 44 0.28569280361858D+00 0.48046440630131D-16 + 1 36 2 44 0.44525731202280D+00 0.41101820229517D-16 + 2 36 2 44 -0.32341740368544D+00 -0.74292444820513D-16 + 3 36 2 44 -0.43899228290186D+00 0.13109990297820D-16 + 1 37 2 44 0.32406161278394D+00 -0.36330379984376D-16 + 2 37 2 44 0.53072023251007D+00 0.13952045964566D-15 + 3 37 2 44 -0.29567997302833D+00 -0.49099613072572D-19 + 1 38 2 44 -0.33632806315325D+00 0.32036035998234D-16 + 2 38 2 44 0.20982897868919D+00 -0.81813851487629D-16 + 3 38 2 44 -0.34701699078133D+00 -0.84210096389062D-16 + 1 39 2 44 0.14353000606929D+02 -0.15165243724116D-16 + 2 39 2 44 -0.26293428596271D+02 0.52403299039502D-17 + 3 39 2 44 -0.14299918188595D+02 -0.30401056160753D-16 + 1 40 2 44 -0.15132030000380D-02 0.53734531561369D-18 + 2 40 2 44 -0.22649195687381D+00 0.19669976496561D-17 + 3 40 2 44 -0.24459884158649D-03 -0.40185895818225D-18 + 1 41 2 44 -0.23946093418141D-01 -0.23725664212051D-18 + 2 41 2 44 0.15986550337781D+01 0.25495679400155D-18 + 3 41 2 44 -0.70666205511097D-02 0.00000000000000D+00 + 1 42 2 44 -0.36698199332301D-01 0.14787815961524D-17 + 2 42 2 44 -0.12417076851962D+00 -0.72568083131370D-18 + 3 42 2 44 -0.73131832143502D-01 0.26508594974119D-17 + 1 43 2 44 -0.63431380755935D-02 0.16787673717053D-17 + 2 43 2 44 -0.12424139542536D+00 -0.49549228071175D-17 + 3 43 2 44 -0.69431513153942D-02 0.12252669678192D-17 + 1 44 2 44 -0.65807813668288D+00 0.00000000000000D+00 + 2 44 2 44 0.11998085918812D+03 0.00000000000000D+00 + 3 44 2 44 0.81338717684591D+00 0.00000000000000D+00 + 1 45 2 44 -0.10301842422670D-01 0.47965592055338D-19 + 2 45 2 44 -0.23726627446706D+00 -0.30431835159925D-17 + 3 45 2 44 0.21764363757139D-01 -0.12019704217233D-17 + 1 46 2 44 -0.24726760963583D-01 -0.11649178417919D-17 + 2 46 2 44 -0.40246564189428D+00 0.13484877375339D-17 + 3 46 2 44 0.34209735405513D-01 -0.25714747755832D-18 + 1 47 2 44 0.11525350264607D-01 0.39622246839554D-17 + 2 47 2 44 -0.18124573639915D+00 -0.61572122774427D-17 + 3 47 2 44 0.51528606358534D-01 0.16589960974384D-17 + 1 48 2 44 -0.24424858336585D+00 0.16126010535772D-16 + 2 48 2 44 0.18184668037694D+00 -0.93859532927127D-16 + 3 48 2 44 0.30265282018592D+00 -0.56256769372545D-16 + 1 49 2 44 -0.45567704351573D+00 0.83515741236716D-17 + 2 49 2 44 -0.81832269216946D+00 0.28550721845540D-17 + 3 49 2 44 -0.47111525755596D+00 0.13361572289923D-16 + 1 50 2 44 -0.25116868051170D+00 -0.15457878521668D-17 + 2 50 2 44 -0.27726425993111D+00 -0.85069558660089D-16 + 3 50 2 44 -0.39151104755289D+00 -0.10414607156688D-15 + 1 51 2 44 -0.13334431757601D-01 0.14892052307967D-16 + 2 51 2 44 0.26462086478740D+00 -0.33330916709818D-16 + 3 51 2 44 -0.30515804448368D-01 0.71932501086174D-16 + 1 52 2 44 -0.14248162262728D+02 0.15980305018086D-16 + 2 52 2 44 -0.25536535365739D+02 -0.48374131383086D-16 + 3 52 2 44 -0.13670665622604D+02 -0.72964552693518D-16 + 1 53 2 44 0.32903125202355D+00 0.46126297984547D-16 + 2 53 2 44 0.17902564882348D+00 -0.12049666944772D-15 + 3 53 2 44 -0.29820000814504D+00 -0.22352928849192D-16 + 1 54 2 44 -0.26767530867153D+00 -0.21004177980124D-16 + 2 54 2 44 0.42850323800119D+00 0.28996815872593D-15 + 3 54 2 44 -0.29554103937407D+00 0.33040160400469D-17 + 1 55 2 44 -0.48194379625109D+00 -0.12696553656603D-16 + 2 55 2 44 -0.50047434236650D+00 -0.10705895239462D-15 + 3 55 2 44 -0.59930329214814D+00 0.23263018324347D-16 + 1 56 2 44 -0.89382574095890D-01 -0.18650510386618D-16 + 2 56 2 44 -0.21575497152441D+00 0.10442494694903D-15 + 3 56 2 44 0.10413342879518D+00 -0.47501533492044D-18 + 1 57 2 44 0.95229223935946D-01 0.34812270722495D-17 + 2 57 2 44 -0.22774994674945D+00 -0.60770390615088D-16 + 3 57 2 44 -0.10270295409905D+00 0.96297059896919D-18 + 1 58 2 44 -0.11767243478524D+00 0.29590061712721D-17 + 2 58 2 44 -0.22821706536484D+00 -0.28655508014721D-15 + 3 58 2 44 -0.14387887629046D+00 0.27542784087465D-17 + 1 59 2 44 0.11656811585862D+00 -0.30153049576106D-16 + 2 59 2 44 -0.22848785946546D+00 0.29229389910845D-15 + 3 59 2 44 0.10272258709110D+00 -0.17481178554449D-17 + 1 60 2 44 -0.14011878085562D+01 0.35546015492085D-16 + 2 60 2 44 -0.32375816820263D+01 -0.17177661997252D-15 + 3 60 2 44 -0.31874796976435D+01 0.10809790465035D-18 + 1 61 2 44 0.12502012486378D+01 -0.91242516630598D-17 + 2 61 2 44 -0.29961780079478D+01 -0.27482192491915D-15 + 3 61 2 44 0.31184796091370D+01 0.12981066203918D-17 + 1 62 2 44 -0.11033339330700D+01 0.32801471831262D-16 + 2 62 2 44 -0.29367943623405D+01 0.72172049644127D-16 + 3 62 2 44 0.31475754789696D+01 -0.28933708514562D-17 + 1 63 2 44 0.13075662148973D+01 0.19501304169793D-16 + 2 63 2 44 -0.31342894738195D+01 -0.43731975487756D-16 + 3 63 2 44 -0.33093056973859D+01 -0.85444444229925D-18 + 1 64 2 44 0.14625636154839D+00 -0.10966060242935D-15 + 2 64 2 44 0.36471902416286D+00 0.33432036811305D-16 + 3 64 2 44 -0.92189162375361D-01 0.17820468713092D-16 + 1 65 2 44 0.38414445183877D-02 -0.10185659207736D-15 + 2 65 2 44 0.77973259181363D-01 -0.32543225152421D-16 + 3 65 2 44 0.88917535510196D-02 -0.27616198306541D-16 + 1 1 3 44 0.45135257442484D+00 -0.22047863782980D-16 + 2 1 3 44 0.46496587470431D+00 -0.28145996163634D-16 + 3 1 3 44 -0.76046130464859D+00 0.14150283627997D-15 + 1 2 3 44 0.26176467133676D-02 0.86664832493615D-17 + 2 2 3 44 0.54559282343331D-01 -0.26846669873244D-16 + 3 2 3 44 0.29520040261450D+00 -0.31661750727420D-16 + 1 3 3 44 0.26653682768796D+00 0.12280891314261D-16 + 2 3 3 44 -0.32225879136919D+00 0.16801201656030D-16 + 3 3 3 44 0.15727104241103D+00 0.21306299575277D-16 + 1 4 3 44 0.47002277043586D+00 -0.18304543145337D-16 + 2 4 3 44 0.46924060623007D+00 -0.74156800993036D-17 + 3 4 3 44 -0.37052391080199D+00 0.16370555398042D-16 + 1 5 3 44 -0.55427107238881D-02 0.13470534747224D-16 + 2 5 3 44 0.28225134787876D+00 0.33330768400364D-16 + 3 5 3 44 0.17804663887289D+00 -0.43875252886621D-16 + 1 6 3 44 0.43144431608079D+00 0.56101250333609D-16 + 2 6 3 44 0.41751349235391D+00 -0.82304750380685D-17 + 3 6 3 44 -0.36088245076100D+00 0.39642000850425D-15 + 1 7 3 44 0.13816776238180D+02 0.14509743507987D-17 + 2 7 3 44 0.13994635157626D+02 0.23805228229780D-16 + 3 7 3 44 -0.26062789866101D+02 0.32007781525572D-15 + 1 8 3 44 0.31472751484528D+00 0.42268747475756D-16 + 2 8 3 44 0.30305418033183D+00 -0.29519291534258D-16 + 3 8 3 44 0.49246290484205D+00 -0.15216084954222D-15 + 1 9 3 44 -0.31071750059116D+01 -0.75972518946481D-18 + 2 9 3 44 -0.12023475815095D+01 0.18105397992336D-16 + 3 9 3 44 -0.30652285689548D+01 0.33364457037644D-16 + 1 10 3 44 0.31880379749958D+01 0.33058238947577D-17 + 2 10 3 44 -0.12833129941631D+01 0.29498074412660D-16 + 3 10 3 44 -0.31010690740300D+01 -0.80508773524965D-16 + 1 11 3 44 0.11601899127567D+00 -0.19087818094869D-19 + 2 11 3 44 -0.99859390646112D-01 -0.34018887438849D-16 + 3 11 3 44 -0.25453576973771D+00 0.26982116803489D-15 + 1 12 3 44 -0.65195109669495D-01 0.27305120943167D-18 + 2 12 3 44 -0.13376023552567D+00 0.11305125504280D-16 + 3 12 3 44 -0.25204749713280D+00 -0.18490309942260D-15 + 1 13 3 44 0.31534604980328D+01 -0.29576896036197D-17 + 2 13 3 44 0.13775885799320D+01 -0.33487557207119D-16 + 3 13 3 44 -0.31111385464382D+01 -0.23982729633073D-15 + 1 14 3 44 -0.32039522267035D+01 -0.52135276009126D-18 + 2 14 3 44 0.12511127867583D+01 0.20367083604614D-16 + 3 14 3 44 -0.31136975303414D+01 -0.12465625082451D-15 + 1 15 3 44 0.10856887234079D+00 0.36546435918342D-18 + 2 15 3 44 0.69079466598022D-01 -0.28756635176149D-16 + 3 15 3 44 -0.22820182169767D+00 0.31339349231211D-15 + 1 16 3 44 -0.43710435220490D+00 -0.97851727264576D-18 + 2 16 3 44 0.46614700581314D+00 -0.32239663162310D-16 + 3 16 3 44 -0.37587517196716D+00 0.12226540936497D-15 + 1 17 3 44 -0.32051276862330D+00 -0.43775918282554D-16 + 2 17 3 44 -0.32860218100948D+00 0.58779395930579D-17 + 3 17 3 44 0.17794304813893D+00 -0.12606568202727D-15 + 1 18 3 44 -0.22552624962985D-01 0.52085397902590D-16 + 2 18 3 44 0.28309789651071D-02 0.20733741276542D-17 + 3 18 3 44 0.29116309027544D+00 -0.17701666126556D-15 + 1 19 3 44 -0.51501859925011D+00 -0.88549399794990D-17 + 2 19 3 44 0.48027594224421D+00 0.10714530929057D-16 + 3 19 3 44 -0.80735361833169D+00 -0.35685919615386D-15 + 1 20 3 44 -0.29923597616247D+00 -0.99433516575533D-17 + 2 20 3 44 0.28016256143627D+00 -0.17625072387384D-17 + 3 20 3 44 0.42551965214466D+00 -0.19682566270163D-15 + 1 21 3 44 -0.13654215728241D+02 -0.29001407147266D-16 + 2 21 3 44 0.13932091528740D+02 0.51049061321134D-17 + 3 21 3 44 -0.25755365692805D+02 -0.20848340669188D-15 + 1 22 3 44 -0.42673169159092D+00 0.18084502181650D-16 + 2 22 3 44 0.41374287618090D+00 0.10854609409468D-16 + 3 22 3 44 -0.45982337843817D+00 0.14208772899209D-15 + 1 23 3 44 0.31389755507366D+00 0.25480365451853D-17 + 2 23 3 44 0.30191942014920D+00 0.90501291415863D-17 + 3 23 3 44 0.17637186941307D+00 -0.35805718769322D-16 + 1 24 3 44 0.13270267936535D+01 0.51257378512008D-16 + 2 24 3 44 0.12419318315307D+01 0.48318381131389D-16 + 3 24 3 44 0.30332084301199D+01 -0.10758866438709D-16 + 1 25 3 44 0.98105471988989D-01 0.18522126015300D-16 + 2 25 3 44 0.99268420215568D-01 -0.15278761092148D-16 + 3 25 3 44 -0.40209081495178D-01 -0.11911846337152D-16 + 1 26 3 44 -0.12503487019539D+01 -0.41259047530842D-17 + 2 26 3 44 0.12746428311669D+01 -0.77740666599805D-16 + 3 26 3 44 0.30996653802460D+01 0.58280555748131D-17 + 1 27 3 44 -0.12077597060909D+00 -0.27841010666188D-16 + 2 27 3 44 0.12548940319258D+00 -0.85141973484140D-16 + 3 27 3 44 -0.18398839271199D-01 0.75748534353882D-17 + 1 28 3 44 0.13652157069082D+01 -0.57361107499814D-16 + 2 28 3 44 -0.14276448489624D+01 -0.54111095955384D-16 + 3 28 3 44 0.30610124002741D+01 -0.14017490386369D-16 + 1 29 3 44 0.80210145194050D-01 0.96760755092663D-16 + 2 29 3 44 -0.73875759257911D-01 -0.26357442071142D-16 + 3 29 3 44 -0.17411223374568D-01 -0.24440736908631D-16 + 1 30 3 44 -0.12344925828659D+01 -0.84721450232654D-16 + 2 30 3 44 -0.11343705741542D+01 -0.13934964704242D-16 + 3 30 3 44 0.30446783493883D+01 -0.30915572808744D-16 + 1 31 3 44 -0.10238686586998D+00 0.38912646449701D-16 + 2 31 3 44 -0.12466780722943D+00 0.11405788797888D-16 + 3 31 3 44 -0.52495826598257D-01 -0.76848588618294D-16 + 1 32 3 44 0.29121581310743D-01 0.26381500955250D-17 + 2 32 3 44 0.50694550586705D-01 0.53916733680600D-16 + 3 32 3 44 0.24478245845664D+00 -0.38226020634831D-15 + 1 33 3 44 0.48369823738220D+00 0.48132222699479D-17 + 2 33 3 44 -0.45833681568794D+00 -0.55707701299382D-17 + 3 33 3 44 -0.78338733454981D+00 -0.13452594853828D-15 + 1 34 3 44 0.52437964590650D+00 0.28027176307712D-16 + 2 34 3 44 -0.43513197182491D+00 -0.28670424802891D-16 + 3 34 3 44 -0.44967235785732D+00 0.14988360703173D-16 + 1 35 3 44 0.24735014074086D+00 -0.98136683353285D-16 + 2 35 3 44 0.30778667023405D+00 0.48046440630131D-16 + 3 35 3 44 0.18807102073722D+00 -0.15659597502256D-15 + 1 36 3 44 0.47064181745670D+00 -0.20614217576032D-16 + 2 36 3 44 -0.42846589831313D+00 0.13109990297820D-16 + 3 36 3 44 -0.34766337276457D+00 0.43223043361618D-16 + 1 37 3 44 -0.35660563057979D+00 -0.14888425656141D-17 + 2 37 3 44 -0.21799906534147D+00 -0.49099613072572D-19 + 3 37 3 44 0.19045136784063D+00 0.36638387935336D-16 + 1 38 3 44 0.23380228617192D+00 -0.82678373005178D-16 + 2 38 3 44 -0.37492435584405D+00 -0.84210096389062D-16 + 3 38 3 44 0.58598536914087D+00 0.26282767585412D-15 + 1 39 3 44 0.14705333028176D+02 0.18902432263149D-16 + 2 39 3 44 -0.14444249625280D+02 -0.30401056160753D-16 + 3 39 3 44 -0.26673406555051D+02 -0.11484054344558D-16 + 1 40 3 44 -0.27334226525659D-02 0.17361574589173D-17 + 2 40 3 44 0.24459884158649D-03 -0.40185895818225D-18 + 3 40 3 44 -0.21965773484532D+00 0.85287004085687D-19 + 1 41 3 44 -0.15033632328304D-01 0.95460460013380D-18 + 2 41 3 44 0.70666205511097D-02 0.00000000000000D+00 + 3 41 3 44 -0.17315680606386D+00 -0.45543854965037D-18 + 1 42 3 44 -0.13360427838615D+00 -0.22153471642482D-17 + 2 42 3 44 0.10534837771692D+00 0.26508594974119D-17 + 3 42 3 44 0.14870128380568D+01 -0.11370993072347D-16 + 1 43 3 44 -0.12354351356588D-01 0.14009032259662D-17 + 2 43 3 44 -0.36608589249550D-01 0.12252669678192D-17 + 3 43 3 44 -0.11789925547314D+00 -0.79239667480047D-17 + 1 44 3 44 -0.12319061319914D+00 0.00000000000000D+00 + 2 44 3 44 0.81338717684591D+00 0.00000000000000D+00 + 3 44 3 44 0.11996040263773D+03 0.00000000000000D+00 + 1 45 3 44 -0.15564013824402D-02 0.52127838817301D-19 + 2 45 3 44 0.21764363757139D-01 -0.12019704217233D-17 + 3 45 3 44 -0.40132057144184D+00 -0.36191076304045D-18 + 1 46 3 44 0.28052321328861D-01 0.14182441408367D-16 + 2 46 3 44 -0.88364560270814D-01 -0.25714747755832D-18 + 3 46 3 44 -0.25125029174602D+00 -0.10593763763271D-16 + 1 47 3 44 0.25656366926326D-01 -0.43906028944420D-17 + 2 47 3 44 0.25756283878900D-01 0.16589960974384D-17 + 3 47 3 44 -0.10723510414041D+00 -0.83659586758566D-17 + 1 48 3 44 -0.32358218209425D+00 0.13495206595583D-16 + 2 48 3 44 0.30091129439677D+00 -0.56256769372545D-16 + 3 48 3 44 0.24708348230195D+00 0.25653253820671D-16 + 1 49 3 44 -0.46661777973951D+00 0.35877128733971D-16 + 2 49 3 44 -0.46213141658107D+00 0.13361572289923D-16 + 3 49 3 44 -0.37201695309456D+00 0.70109729859854D-16 + 1 50 3 44 -0.34082333285974D+00 -0.14147277405977D-16 + 2 50 3 44 -0.60352768827599D+00 -0.10414607156688D-15 + 3 50 3 44 -0.81185336706516D+00 -0.18169203404335D-17 + 1 51 3 44 -0.22643509870746D-01 -0.66316792814685D-18 + 2 51 3 44 -0.27822975149862D-01 0.71932501086174D-16 + 3 51 3 44 0.26805640929539D+00 -0.12575780078759D-15 + 1 52 3 44 -0.14840802524424D+02 0.12762087409646D-16 + 2 52 3 44 -0.13709035226119D+02 -0.72964552693518D-16 + 3 52 3 44 -0.25763641485448D+02 -0.70722166627825D-16 + 1 53 3 44 -0.26040622557041D+00 -0.14472436990887D-16 + 2 53 3 44 -0.27558435795446D+00 -0.22352928849192D-16 + 3 53 3 44 0.45098802112201D+00 -0.66699920146332D-17 + 1 54 3 44 0.32023862973356D+00 -0.16750332609380D-16 + 2 54 3 44 -0.26183416531372D+00 0.33040160400469D-17 + 3 54 3 44 0.23777045636008D+00 -0.35987414064319D-16 + 1 55 3 44 -0.44805328709033D+00 -0.28195250500157D-16 + 2 55 3 44 -0.61055482526110D+00 0.23263018324347D-16 + 3 55 3 44 -0.51190641997774D+00 -0.10059721015527D-15 + 1 56 3 44 -0.16133490743944D-01 0.74783773706617D-17 + 2 56 3 44 0.10055451728178D+00 -0.47501533492044D-18 + 3 56 3 44 -0.19898996517371D+00 0.22755900859582D-15 + 1 57 3 44 -0.10515103233070D+00 0.12137392362215D-16 + 2 57 3 44 -0.10631103492100D+00 0.96297059896919D-18 + 3 57 3 44 -0.22848785946546D+00 -0.31008601730010D-15 + 1 58 3 44 0.77343943757399D-01 -0.27131614161702D-16 + 2 58 3 44 -0.99437535727203D-01 0.27542784087465D-17 + 3 58 3 44 -0.26287299123699D+00 0.22502231147226D-15 + 1 59 3 44 0.13299472840209D+00 -0.24733279648490D-16 + 2 59 3 44 0.10643754625190D+00 -0.17481178554449D-17 + 3 59 3 44 -0.22774994674944D+00 -0.23961161435268D-15 + 1 60 3 44 -0.13686463220819D+01 0.11475164552297D-16 + 2 60 3 44 -0.32644467995037D+01 0.10809790465035D-18 + 3 60 3 44 -0.31017691541785D+01 -0.13819478645808D-15 + 1 61 3 44 -0.12789171090115D+01 -0.31563082598885D-16 + 2 61 3 44 0.30830550896706D+01 0.12981066203918D-17 + 3 61 3 44 -0.29961780079477D+01 0.94772885051088D-16 + 1 62 3 44 0.10982907017704D+01 -0.34238607997181D-16 + 2 62 3 44 0.31255487756682D+01 -0.28933708514562D-17 + 3 62 3 44 -0.31906510664380D+01 -0.79140192508832D-16 + 1 63 3 44 0.12884369863742D+01 -0.26258649509645D-16 + 2 63 3 44 -0.32259684776565D+01 -0.85444444229925D-18 + 3 63 3 44 -0.31342894738195D+01 0.49992254339598D-16 + 1 64 3 44 -0.28203786703247D+00 -0.13326886079798D-16 + 2 64 3 44 -0.12066294572834D+00 0.17820468713092D-16 + 3 64 3 44 0.24110516291536D-01 -0.14760913650331D-15 + 1 65 3 44 0.18950573049616D-01 0.72844298929228D-17 + 2 65 3 44 -0.18055223983222D-01 -0.27616198306541D-16 + 3 65 3 44 -0.63414165802430D-01 -0.20444879268596D-15 + 1 1 1 45 0.24369046204170D+00 0.64149780072786D-16 + 2 1 1 45 -0.45448141448589D-01 -0.30840822077214D-16 + 3 1 1 45 0.67656636498683D-02 -0.83538796819533D-18 + 1 2 1 45 -0.45333922621259D+00 0.21031644924583D-16 + 2 2 1 45 -0.50891363746347D+00 -0.17180530340285D-16 + 3 2 1 45 0.45618244863945D+00 -0.35793919956083D-16 + 1 3 1 45 -0.49304833638927D+00 0.88929549416762D-17 + 2 3 1 45 -0.36482159917444D+00 -0.33867782324363D-16 + 3 3 1 45 0.50130163375714D+00 0.20846399734880D-16 + 1 4 1 45 0.52464302253743D+00 0.17763279241582D-15 + 2 4 1 45 -0.34486761325059D+00 0.20719704781902D-16 + 3 4 1 45 0.32135967168935D+00 -0.40452314537835D-16 + 1 5 1 45 -0.77015767769167D+00 -0.13753194743071D-15 + 2 5 1 45 -0.52080259707712D+00 0.49775732211771D-17 + 3 5 1 45 0.45010459969444D+00 -0.32790700056870D-16 + 1 6 1 45 0.15328911515379D+00 -0.54824425191649D-16 + 2 6 1 45 -0.22564467784923D+00 0.14849442125955D-16 + 3 6 1 45 -0.26505761927302D+00 -0.35464791737579D-17 + 1 7 1 45 0.17633524868552D+00 -0.29366092539445D-15 + 2 7 1 45 0.31821622388506D+00 0.26392044010679D-17 + 3 7 1 45 0.19985889980304D+00 0.15981946903655D-16 + 1 8 1 45 -0.25794221122147D+02 -0.91830682612617D-16 + 2 8 1 45 -0.13679113574287D+02 0.47266525938442D-16 + 3 8 1 45 0.13738598552669D+02 -0.12294641533067D-16 + 1 9 1 45 -0.30647115086679D+01 -0.89915916373200D-16 + 2 9 1 45 0.13761677586902D+01 0.12250362154077D-16 + 3 9 1 45 0.30596651663489D+01 -0.12639911444779D-17 + 1 10 1 45 -0.30750329147910D+01 -0.10249322484601D-15 + 2 10 1 45 -0.12418553858657D+01 0.19820995228504D-16 + 3 10 1 45 -0.31522845379931D+01 0.27875025572351D-17 + 1 11 1 45 -0.21575864670251D+00 0.55029320863087D-16 + 2 11 1 45 0.10667108461057D+00 -0.12823057341297D-16 + 3 11 1 45 -0.85136664112451D-01 -0.64366890201402D-18 + 1 12 1 45 -0.26513434349829D+00 -0.13379767603936D-15 + 2 12 1 45 -0.10882249164782D+00 -0.38641627489381D-16 + 3 12 1 45 0.88364808457842D-01 -0.36059260386566D-18 + 1 13 1 45 -0.30574761769625D+01 -0.77393680566776D-16 + 2 13 1 45 0.13103510648214D+01 0.14905303103200D-16 + 3 13 1 45 -0.32811025291623D+01 -0.76322437435948D-18 + 1 14 1 45 -0.30813310039782D+01 0.28491037380043D-15 + 2 14 1 45 -0.13673988736778D+01 0.21467573123999D-16 + 3 14 1 45 0.31991757639689D+01 -0.58231879069882D-18 + 1 15 1 45 -0.23316055675786D+00 -0.71908987109724D-16 + 2 15 1 45 -0.12734062973723D+00 -0.60585453865151D-16 + 3 15 1 45 -0.95524459798810D-01 0.28447573057223D-17 + 1 16 1 45 0.36923994026917D+00 -0.12765362079622D-15 + 2 16 1 45 0.29686620036028D+00 -0.57601977411267D-16 + 3 16 1 45 -0.20300347704440D+00 -0.23195725892545D-16 + 1 17 1 45 -0.37009599433221D+00 0.22840024263847D-15 + 2 17 1 45 0.46559347373896D+00 0.30687890322927D-18 + 3 17 1 45 -0.45192755122545D+00 0.24578598488307D-16 + 1 18 1 45 -0.46736184534095D+00 -0.49601038042293D-17 + 2 18 1 45 0.55398192425772D+00 -0.12168265926161D-18 + 3 18 1 45 -0.42315601101540D+00 -0.24076033000283D-16 + 1 19 1 45 0.27664613061127D+00 -0.93740858705921D-16 + 2 19 1 45 -0.20626483504717D-02 0.30289205726071D-16 + 3 19 1 45 -0.84150502029055D-02 -0.10969011853597D-16 + 1 20 1 45 -0.25336542636213D+02 0.41419960076828D-16 + 2 20 1 45 0.13677385535158D+02 -0.18770671258755D-16 + 3 20 1 45 -0.13879011340542D+02 -0.79924202983789D-18 + 1 21 1 45 0.18950469390943D+00 0.67629379516468D-16 + 2 21 1 45 -0.32566797249811D+00 0.65391209919079D-17 + 3 21 1 45 -0.28250092722396D+00 0.44804292198693D-16 + 1 22 1 45 0.57174427519679D-01 -0.26276441907568D-16 + 2 22 1 45 -0.33794676895607D-01 -0.17428067297655D-16 + 3 22 1 45 0.41327057252995D-01 0.39872791288368D-16 + 1 23 1 45 -0.75060432465813D+00 -0.11120628037745D-15 + 2 23 1 45 0.48409400010692D+00 -0.12814866743914D-15 + 3 23 1 45 -0.49830994239345D+00 -0.33270329262566D-17 + 1 24 1 45 -0.22263137836702D+00 0.22194912043103D-15 + 2 24 1 45 0.10249546607287D+00 0.37793100899154D-18 + 3 24 1 45 -0.85795956644177D-01 -0.81631939863262D-16 + 1 25 1 45 -0.30469835809634D+01 -0.30584381657190D-16 + 2 25 1 45 -0.31599033686937D+01 0.12331124164213D-17 + 3 25 1 45 -0.13679500992356D+01 -0.72634462085518D-17 + 1 26 1 45 -0.25031735777226D+00 -0.54091763128430D-16 + 2 26 1 45 -0.88994994054173D-01 0.41452709072832D-18 + 3 26 1 45 0.11878037928651D+00 -0.11618670149491D-16 + 1 27 1 45 -0.30434692768449D+01 0.25073433229093D-15 + 2 27 1 45 0.31716179054069D+01 0.90936954994942D-19 + 3 27 1 45 0.12394348388543D+01 0.98673951191243D-16 + 1 28 1 45 -0.22652366868191D+00 -0.18132591988206D-15 + 2 28 1 45 -0.93447115162302D-01 0.80825112223692D-18 + 3 28 1 45 -0.73751630300905D-01 -0.26209477550308D-16 + 1 29 1 45 -0.31707252962001D+01 0.14082720012864D-15 + 2 29 1 45 0.31016132636269D+01 -0.87610844014688D-18 + 3 29 1 45 -0.12864439244776D+01 0.67590907005870D-16 + 1 30 1 45 -0.23944541779591D+00 -0.68778627552304D-16 + 2 30 1 45 0.81668301919145D-01 0.38814051050447D-19 + 3 30 1 45 0.12681713296579D+00 0.24672171521792D-16 + 1 31 1 45 -0.30043583412530D+01 -0.24147930646924D-15 + 2 31 1 45 -0.31155961361122D+01 -0.14383840067677D-17 + 3 31 1 45 0.12210961823145D+01 0.24527375754136D-17 + 1 32 1 45 -0.69224099805297D-01 0.16659901912142D-16 + 2 32 1 45 0.28641075667356D+00 0.10781423145058D-16 + 3 32 1 45 0.49185051631149D+00 0.11220005205821D-16 + 1 33 1 45 0.25748660815604D+00 0.14644554396049D-15 + 2 33 1 45 0.16149580206860D-01 0.21604616484006D-16 + 3 33 1 45 0.44235881324093D-02 0.16873443848396D-16 + 1 34 1 45 0.47011509603785D+00 0.95635334105816D-16 + 2 34 1 45 0.24689778800013D+00 0.14520762952111D-16 + 3 34 1 45 0.31572160078401D+00 0.46248739033097D-16 + 1 35 1 45 -0.42574411112178D+00 0.15955241116168D-15 + 2 35 1 45 0.49371812521041D+00 0.30797471026587D-16 + 3 35 1 45 0.48878863251807D+00 -0.26660351646489D-16 + 1 36 1 45 0.20291562690678D+00 -0.79832018352076D-16 + 2 36 1 45 0.26756134160942D+00 -0.22962308104559D-17 + 3 36 1 45 -0.34208337300893D+00 0.26603945116924D-16 + 1 37 1 45 -0.77717561802623D+00 0.16159261152663D-15 + 2 37 1 45 0.59936482346722D+00 -0.46047122952111D-17 + 3 37 1 45 0.51547249503314D+00 -0.21337766374235D-16 + 1 38 1 45 -0.27140407075915D+02 -0.15043007524429D-15 + 2 38 1 45 0.14117436603271D+02 0.25057174119597D-16 + 3 38 1 45 0.14657072719821D+02 -0.78755785656904D-17 + 1 39 1 45 0.19346724068187D+00 -0.16466832950735D-15 + 2 39 1 45 -0.33125308076840D+00 -0.33536431812636D-16 + 3 39 1 45 0.29583507294684D+00 0.12928403290506D-16 + 1 40 1 45 -0.14155133170060D+00 -0.12205280873442D-17 + 2 40 1 45 -0.23946093418141D-01 -0.38988605795588D-18 + 3 40 1 45 0.15033632328304D-01 0.20418654538317D-18 + 1 41 1 45 -0.42441281637999D+00 0.95064176064464D-19 + 2 41 1 45 0.15132030000382D-02 -0.42415430922872D-18 + 3 41 1 45 -0.27334226525660D-02 -0.14535929767918D-17 + 1 42 1 45 -0.12166211096925D+00 -0.73497573049143D-17 + 2 42 1 45 -0.55066654507335D-02 0.75068262099462D-18 + 3 42 1 45 -0.52381069365458D-02 -0.12188105181450D-17 + 1 43 1 45 -0.19511828925901D+00 0.24922594432520D-17 + 2 43 1 45 0.61681663058356D-03 -0.33733419264169D-17 + 3 43 1 45 0.78044554531754D-02 -0.15229776686348D-17 + 1 44 1 45 -0.23882617083894D+00 -0.18190444246284D-17 + 2 44 1 45 -0.10301842422670D-01 -0.47965592055338D-19 + 3 44 1 45 -0.15564013824402D-02 -0.52127838817301D-19 + 1 45 1 45 0.12000135680810D+03 0.00000000000000D+00 + 2 45 1 45 0.65807813668294D+00 0.00000000000000D+00 + 3 45 1 45 0.12319061319894D+00 0.00000000000000D+00 + 1 46 1 45 0.16147086050100D+01 0.44232228989074D-17 + 2 46 1 45 0.60412417775755D-01 0.44101339626441D-17 + 3 46 1 45 -0.73096735208846D-01 0.31223152426685D-18 + 1 47 1 45 -0.19374587556379D+00 0.83593133007949D-17 + 2 47 1 45 -0.38138444980193D-01 0.25981793115833D-17 + 3 47 1 45 0.42250900489269D-02 -0.22946133238399D-18 + 1 48 1 45 -0.44551561571322D+00 -0.10467713785539D-16 + 2 48 1 45 -0.46486050728527D+00 -0.59463247626872D-17 + 3 48 1 45 -0.52775938851813D+00 0.23413049408994D-16 + 1 49 1 45 0.39734956014694D+00 -0.37670806239425D-15 + 2 49 1 45 -0.22867874047310D+00 0.13306985494605D-16 + 3 49 1 45 -0.27710318582961D+00 0.28302306166109D-16 + 1 50 1 45 0.19309537375821D+00 -0.13636526644093D-15 + 2 50 1 45 -0.28826890102680D-01 -0.64090319770691D-17 + 3 50 1 45 -0.79971555683549D-02 -0.17200162626509D-16 + 1 51 1 45 -0.31512814179122D+00 0.47361953821741D-16 + 2 51 1 45 -0.44224998145375D+00 0.24734634929784D-17 + 3 51 1 45 -0.45552372354199D+00 0.37196989485857D-17 + 1 52 1 45 0.18966302382550D+00 -0.84074980906119D-16 + 2 52 1 45 0.35138773653670D+00 -0.15373580085273D-16 + 3 52 1 45 -0.27707858760759D+00 -0.69916308707930D-18 + 1 53 1 45 -0.26326713723825D+02 -0.73419219566776D-16 + 2 53 1 45 -0.14477059088582D+02 -0.11721171035793D-16 + 3 53 1 45 -0.14678196712313D+02 -0.28008508519851D-16 + 1 54 1 45 -0.78592107040989D+00 0.66031348685960D-16 + 2 54 1 45 -0.47089004501018D+00 0.39702564997911D-16 + 3 54 1 45 -0.46029301411802D+00 -0.44334048422310D-17 + 1 55 1 45 0.22931480882147D+00 -0.70246963094830D-16 + 2 55 1 45 -0.29022933731612D+00 -0.11216477630482D-16 + 3 55 1 45 0.35239402038777D+00 -0.17805676584960D-16 + 1 56 1 45 -0.23349397939392D-02 -0.86701119437678D-17 + 2 56 1 45 -0.52633044411425D-01 -0.27371450693441D-16 + 3 56 1 45 0.66047993622610D-01 -0.18876725406505D-16 + 1 57 1 45 -0.19982934461854D-01 -0.22650821764148D-15 + 2 57 1 45 0.10515103233070D+00 -0.32477892396414D-16 + 3 57 1 45 0.95229223935948D-01 0.22839865335159D-16 + 1 58 1 45 -0.20198582307324D-01 -0.25026647167505D-16 + 2 58 1 45 -0.12057846732556D+00 -0.29452616001798D-16 + 3 58 1 45 -0.14193478143410D+00 0.27065551165718D-16 + 1 59 1 45 -0.20122628419788D-01 0.10687371890613D-16 + 2 59 1 45 0.13299472840209D+00 0.30693320981715D-16 + 3 59 1 45 -0.11656811585862D+00 -0.16400550250583D-16 + 1 60 1 45 0.30753321824938D+01 -0.34767763308702D-16 + 2 60 1 45 -0.15222885050610D+01 0.26718249359559D-16 + 3 60 1 45 0.14950307013227D+01 -0.34087093165583D-16 + 1 61 1 45 0.30499504829966D+01 -0.33444045517504D-16 + 2 61 1 45 0.12884369863742D+01 -0.20481136019894D-16 + 3 61 1 45 0.13075662148973D+01 -0.28654622979215D-16 + 1 62 1 45 0.31882659330409D+01 -0.97252844309863D-16 + 2 62 1 45 -0.12980637146702D+01 0.32346373528431D-17 + 3 62 1 45 -0.12532163534032D+01 0.97025009563353D-17 + 1 63 1 45 0.31556423151157D+01 0.26476718277903D-17 + 2 63 1 45 0.12789171090115D+01 0.65854977130499D-17 + 3 63 1 45 -0.12502012486378D+01 0.14587093996110D-16 + 1 64 1 45 -0.18114310583081D+00 -0.80950337020895D-16 + 2 64 1 45 0.14634106790516D+00 -0.90594151525857D-16 + 3 64 1 45 0.31293946107064D+00 -0.12563663904812D-16 + 1 65 1 45 -0.97987867871915D-02 0.92837215715424D-16 + 2 65 1 45 0.60810909845795D-01 0.56986959108655D-16 + 3 65 1 45 -0.90537315177935D-02 0.18651173569361D-16 + 1 1 2 45 -0.14456368115461D-01 -0.30840822077214D-16 + 2 1 2 45 0.26354632444337D+00 0.15263084321113D-15 + 3 1 2 45 0.18546293613142D-01 -0.16175551890713D-16 + 1 2 2 45 -0.52535734949560D+00 -0.17180530340285D-16 + 2 2 2 45 -0.44735271654360D+00 -0.70682443010355D-16 + 3 2 2 45 0.47710773077175D+00 0.93346392264819D-17 + 1 3 2 45 -0.35014435252327D+00 -0.33867782324363D-16 + 2 3 2 45 -0.91736458850017D+00 0.17203159013261D-15 + 3 3 2 45 0.44375316277967D+00 -0.16970365660986D-16 + 1 4 2 45 -0.33179221431110D+00 0.20719704781902D-16 + 2 4 2 45 0.19316941103680D+00 -0.16547971825114D-15 + 3 4 2 45 -0.34435770576832D+00 -0.32166224959800D-16 + 1 5 2 45 -0.30544660227199D+00 0.49775732211771D-17 + 2 5 2 45 -0.52469610687681D+00 -0.49560698817904D-16 + 3 5 2 45 0.46664333485390D+00 0.12620567658838D-16 + 1 6 2 45 -0.29601155427098D+00 0.14849442125955D-16 + 2 6 2 45 0.43222364377867D+00 -0.15095424944301D-15 + 3 6 2 45 0.27340328278778D+00 0.16558394110581D-16 + 1 7 2 45 0.27566745941855D+00 0.26392044010679D-17 + 2 7 2 45 0.21967419079835D+00 0.59807363299975D-16 + 3 7 2 45 0.23274844943711D+00 0.94625327209556D-17 + 1 8 2 45 -0.13749665086973D+02 0.47266525938442D-16 + 2 8 2 45 -0.26190006915435D+02 -0.17299843959435D-15 + 3 8 2 45 0.13838939719674D+02 -0.23424055147716D-16 + 1 9 2 45 -0.15562468678296D+01 0.12250362154077D-16 + 2 9 2 45 0.31319582770427D+01 0.17400240454488D-15 + 3 9 2 45 0.13228488051543D+01 0.10150272777360D-16 + 1 10 2 45 0.12876955666758D+01 0.19820995228504D-16 + 2 10 2 45 0.31461925409856D+01 0.41326220879922D-16 + 3 10 2 45 0.13404540323597D+01 0.24669053765553D-17 + 1 11 2 45 -0.93845201709300D-01 -0.12823057341297D-16 + 2 11 2 45 -0.31187185983451D-01 -0.11705328255218D-16 + 3 11 2 45 0.11196569201530D+00 0.50250541122779D-17 + 1 12 2 45 0.12442806753827D+00 -0.38641627489381D-16 + 2 12 2 45 -0.39034711006485D-01 -0.74826349224653D-16 + 3 12 2 45 0.11706295729565D+00 0.25135386247974D-16 + 1 13 2 45 -0.13086307270575D+01 0.14905303103200D-16 + 2 13 2 45 0.31612187369587D+01 -0.17798120787265D-15 + 3 13 2 45 -0.14207456754165D+01 -0.84070232605547D-17 + 1 14 2 45 0.13194687112185D+01 0.21467573123999D-16 + 2 14 2 45 0.31633305596009D+01 0.97305239075630D-16 + 3 14 2 45 -0.12654763266823D+01 0.92509054581009D-17 + 1 15 2 45 0.10813448889692D+00 -0.60585453865151D-16 + 2 15 2 45 -0.49105577665157D-02 -0.10095057994516D-15 + 3 15 2 45 -0.88500513317365D-01 -0.18187423556051D-17 + 1 16 2 45 0.33003961467011D+00 -0.57601977411267D-16 + 2 16 2 45 0.22912581400825D+00 -0.65767225311808D-16 + 3 16 2 45 -0.27594970481658D+00 0.42068862283259D-16 + 1 17 2 45 0.48491587255602D+00 0.30687890322927D-18 + 2 17 2 45 -0.78547982018116D+00 -0.26421846451006D-16 + 3 17 2 45 0.46488166323621D+00 -0.65626365565846D-17 + 1 18 2 45 0.48216063573330D+00 -0.12168265926161D-18 + 2 18 2 45 -0.45552851098672D+00 0.81478951483718D-16 + 3 18 2 45 0.55199541123175D+00 0.39895359343171D-16 + 1 19 2 45 0.11650839707715D-02 0.30289205726071D-16 + 2 19 2 45 0.29691473446176D+00 0.12902481221533D-15 + 3 19 2 45 -0.18427734937983D-01 -0.26888684818022D-17 + 1 20 2 45 0.13733332541572D+02 -0.18770671258755D-16 + 2 20 2 45 -0.25999938377806D+02 0.10804760760768D-15 + 3 20 2 45 0.14107929617707D+02 -0.30547911894961D-16 + 1 21 2 45 -0.34179935926502D+00 0.65391209919079D-17 + 2 21 2 45 0.16835463342987D+00 -0.71210793293727D-16 + 3 21 2 45 0.30437217106272D+00 -0.33308265841721D-16 + 1 22 2 45 -0.37616317979394D-02 -0.17428067297655D-16 + 2 22 2 45 -0.37611087067127D+00 0.19615083008847D-15 + 3 22 2 45 0.20196117384856D-01 0.83132871703684D-17 + 1 23 2 45 0.41642775373069D+00 -0.12814866743914D-15 + 2 23 2 45 -0.32229451800094D+00 0.17214244021482D-15 + 3 23 2 45 0.42944402667854D+00 -0.89729283304683D-17 + 1 24 2 45 0.90063254104480D-01 0.37793100899154D-18 + 2 24 2 45 -0.23295520329197D+00 0.21341656435785D-15 + 3 24 2 45 -0.92029099056186D-01 0.20945542923432D-16 + 1 25 2 45 -0.31491568175680D+01 0.12331124164213D-17 + 2 25 2 45 -0.30437881571425D+01 0.15439928348266D-15 + 3 25 2 45 -0.13599716217812D+01 -0.30073518208344D-16 + 1 26 2 45 -0.85695375456052D-01 0.41452709072832D-18 + 2 26 2 45 -0.24768484707755D+00 -0.13275433832550D-15 + 3 26 2 45 -0.98733218058406D-01 -0.97035552321186D-16 + 1 27 2 45 0.33078081980730D+01 0.90936954994942D-19 + 2 27 2 45 -0.31777519768982D+01 -0.17523500484738D-17 + 3 27 2 45 -0.12600447229703D+01 0.13199485826177D-16 + 1 28 2 45 -0.11753736046785D+00 0.80825112223692D-18 + 2 28 2 45 -0.23208147027117D+00 -0.11297985562661D-15 + 3 28 2 45 0.85666039169641D-01 0.71662629746019D-16 + 1 29 2 45 0.31091888531853D+01 -0.87610844014688D-18 + 2 29 2 45 -0.30139916482755D+01 -0.21137677110841D-15 + 3 29 2 45 0.13756832393009D+01 0.35831837370851D-16 + 1 30 2 45 0.11482546015925D+00 0.38814051050447D-19 + 2 30 2 45 -0.21310322738957D+00 0.32408237923821D-15 + 3 30 2 45 0.11344991498160D+00 -0.18173331239854D-16 + 1 31 2 45 -0.31738889652453D+01 -0.14383840067677D-17 + 2 31 2 45 -0.30423786554362D+01 -0.17012889259227D-15 + 3 31 2 45 0.12571940962572D+01 -0.88630888516238D-16 + 1 32 2 45 0.25116868051170D+00 0.10781423145058D-16 + 2 32 2 45 -0.27726425993111D+00 -0.12570525428421D-15 + 3 32 2 45 -0.39151104755289D+00 0.36439317229185D-16 + 1 33 2 45 0.13334431757598D-01 0.21604616484006D-16 + 2 33 2 45 0.26462086478739D+00 -0.10897293430555D-16 + 3 33 2 45 -0.30515804448366D-01 0.21246963426542D-16 + 1 34 2 45 0.24424858336585D+00 0.14520762952111D-16 + 2 34 2 45 0.18184668037694D+00 -0.21878066226929D-15 + 3 34 2 45 0.30265282018592D+00 0.34580382822115D-16 + 1 35 2 45 0.45567704351573D+00 0.30797471026587D-16 + 2 35 2 45 -0.81832269216946D+00 -0.83364011132937D-16 + 3 35 2 45 -0.47111525755596D+00 -0.13624891426027D-16 + 1 36 2 45 0.26767530867153D+00 -0.22962308104559D-17 + 2 36 2 45 0.42850323800119D+00 0.87228268967794D-16 + 3 36 2 45 -0.29554103937407D+00 0.20090357387061D-16 + 1 37 2 45 0.48194379625109D+00 -0.46047122952111D-17 + 2 37 2 45 -0.50047434236650D+00 -0.21166846718689D-15 + 3 37 2 45 -0.59930329214814D+00 0.16363442075042D-16 + 1 38 2 45 0.14248162262728D+02 0.25057174119597D-16 + 2 38 2 45 -0.25536535365739D+02 -0.22831309051114D-15 + 3 38 2 45 -0.13670665622604D+02 0.34551239371399D-17 + 1 39 2 45 -0.32903125202355D+00 -0.33536431812636D-16 + 2 39 2 45 0.17902564882349D+00 -0.52688569026228D-16 + 3 39 2 45 -0.29820000814504D+00 -0.24441437323527D-17 + 1 40 2 45 0.23946093418141D-01 -0.38988605795588D-18 + 2 40 2 45 0.15986550337781D+01 0.26515662786680D-18 + 3 40 2 45 -0.70666205511097D-02 0.61799716448651D-19 + 1 41 2 45 0.15132030000382D-02 -0.42415430922872D-18 + 2 41 2 45 -0.22649195687380D+00 0.14128458641634D-17 + 3 41 2 45 -0.24459884158648D-03 -0.13317998976295D-19 + 1 42 2 45 0.63431380755935D-02 0.75068262099462D-18 + 2 42 2 45 -0.12424139542536D+00 -0.11001980949914D-17 + 3 42 2 45 -0.69431513153948D-02 -0.20405942196105D-17 + 1 43 2 45 0.36698199332301D-01 -0.33733419264169D-17 + 2 43 2 45 -0.12417076851962D+00 0.15363264875485D-17 + 3 43 2 45 -0.73131832143502D-01 -0.47907676682542D-18 + 1 44 2 45 0.10301842422670D-01 -0.47965592055338D-19 + 2 44 2 45 -0.23726627446706D+00 0.30431835159925D-17 + 3 44 2 45 0.21764363757139D-01 0.12019704217233D-17 + 1 45 2 45 0.65807813668294D+00 0.00000000000000D+00 + 2 45 2 45 0.11998085918812D+03 0.00000000000000D+00 + 3 45 2 45 0.81338717684573D+00 0.00000000000000D+00 + 1 46 2 45 -0.11525350264607D-01 0.44101339626441D-17 + 2 46 2 45 -0.18124573639915D+00 0.87618658085217D-17 + 3 46 2 45 0.51528606358534D-01 0.20249023494587D-17 + 1 47 2 45 0.24726760963584D-01 0.25981793115833D-17 + 2 47 2 45 -0.40246564189427D+00 0.20973508666434D-17 + 3 47 2 45 0.34209735405514D-01 -0.26263065039858D-17 + 1 48 2 45 -0.48848716900826D+00 -0.59463247626872D-17 + 2 48 2 45 -0.84989106608483D+00 0.82352625781406D-16 + 3 48 2 45 -0.49790547501619D+00 -0.91525669412018D-16 + 1 49 2 45 -0.23802945606288D+00 0.13306985494605D-16 + 2 49 2 45 0.19144027554770D+00 -0.89923828871718D-16 + 3 49 2 45 0.28569280361858D+00 0.60548948129062D-16 + 1 50 2 45 -0.29764610515245D-01 -0.64090319770691D-17 + 2 50 2 45 0.79503731643843D-01 0.11142407062400D-16 + 3 50 2 45 -0.94808506004455D-01 0.89341224850984D-16 + 1 51 2 45 -0.41510684461686D+00 0.24734634929784D-17 + 2 51 2 45 -0.37168114771699D+00 -0.94924332239764D-16 + 3 51 2 45 -0.46766185471483D+00 -0.55603011316460D-16 + 1 52 2 45 0.33632806315325D+00 -0.15373580085273D-16 + 2 52 2 45 0.20982897868919D+00 -0.91486929401337D-17 + 3 52 2 45 -0.34701699078133D+00 -0.44336703297695D-17 + 1 53 2 45 -0.14353000606928D+02 -0.11721171035793D-16 + 2 53 2 45 -0.26293428596271D+02 -0.91412540362665D-16 + 3 53 2 45 -0.14299918188595D+02 -0.58121192356185D-16 + 1 54 2 45 -0.44525731202280D+00 0.39702564997911D-16 + 2 54 2 45 -0.32341740368545D+00 -0.78857580902228D-16 + 3 54 2 45 -0.43899228290186D+00 -0.29489911171207D-16 + 1 55 2 45 -0.32406161278393D+00 -0.11216477630482D-16 + 2 55 2 45 0.53072023251004D+00 -0.50129656123825D-16 + 3 55 2 45 -0.29567997302832D+00 0.18478656516569D-16 + 1 56 2 45 0.11767243478524D+00 -0.27371450693441D-16 + 2 56 2 45 -0.22821706536484D+00 0.30746502756363D-15 + 3 56 2 45 -0.14387887629046D+00 0.11064563443705D-17 + 1 57 2 45 -0.11656811585862D+00 -0.32477892396414D-16 + 2 57 2 45 -0.22848785946546D+00 -0.34424044984943D-16 + 3 57 2 45 0.10272258709109D+00 -0.18098333023408D-17 + 1 58 2 45 0.89382574095890D-01 -0.29452616001798D-16 + 2 58 2 45 -0.21575497152441D+00 -0.87042069060114D-16 + 3 58 2 45 0.10413342879518D+00 0.12300145383894D-18 + 1 59 2 45 -0.95229223935950D-01 0.30693320981715D-16 + 2 59 2 45 -0.22774994674944D+00 -0.55241463728441D-16 + 3 59 2 45 -0.10270295409905D+00 -0.33077248518988D-18 + 1 60 2 45 0.11033339330700D+01 0.26718249359559D-16 + 2 60 2 45 -0.29367943623405D+01 0.23551578097831D-15 + 3 60 2 45 0.31475754789696D+01 0.11143352073534D-16 + 1 61 2 45 -0.13075662148973D+01 -0.20481136019894D-16 + 2 61 2 45 -0.31342894738195D+01 0.13105389824138D-15 + 3 61 2 45 -0.33093056973859D+01 -0.15387938231173D-18 + 1 62 2 45 0.14011878085562D+01 0.32346373528431D-17 + 2 62 2 45 -0.32375816820263D+01 -0.16762724723194D-15 + 3 62 2 45 -0.31874796976435D+01 0.37914830309307D-18 + 1 63 2 45 -0.12502012486378D+01 0.65854977130499D-17 + 2 63 2 45 -0.29961780079478D+01 0.18887052560026D-15 + 3 63 2 45 0.31184796091369D+01 -0.11804606488089D-17 + 1 64 2 45 -0.14625636154839D+00 -0.90594151525857D-16 + 2 64 2 45 0.36233019803985D+00 -0.15533024683150D-15 + 3 64 2 45 -0.92189162375366D-01 0.42062596032214D-17 + 1 65 2 45 -0.38414445183816D-02 0.56986959108655D-16 + 2 65 2 45 0.76694457329234D-01 0.38584316413884D-16 + 3 65 2 45 0.88917535510189D-02 0.36600514602762D-16 + 1 1 3 45 0.22552624962985D-01 -0.83538796819533D-18 + 2 1 3 45 0.28309789651069D-02 -0.16175551890713D-16 + 3 1 3 45 0.29116309027544D+00 0.66249326815911D-16 + 1 2 3 45 0.51501859925011D+00 -0.35793919956083D-16 + 2 2 3 45 0.48027594224421D+00 0.93346392264819D-17 + 3 2 3 45 -0.80735361833169D+00 0.26394885519889D-15 + 1 3 3 45 0.43710435220490D+00 0.20846399734880D-16 + 2 3 3 45 0.46614700581314D+00 -0.16970365660986D-16 + 3 3 3 45 -0.37587517196716D+00 0.10111435310784D-15 + 1 4 3 45 0.32051276862330D+00 -0.40452314537835D-16 + 2 4 3 45 -0.32860218100949D+00 -0.32166224959800D-16 + 3 4 3 45 0.17794304813893D+00 0.40312688044908D-15 + 1 5 3 45 0.42673169159092D+00 -0.32790700056870D-16 + 2 5 3 45 0.41374287618090D+00 0.12620567658838D-16 + 3 5 3 45 -0.45982337843816D+00 0.21527027137736D-16 + 1 6 3 45 -0.31389755507366D+00 -0.35464791737579D-17 + 2 6 3 45 0.30191942014922D+00 0.16558394110581D-16 + 3 6 3 45 0.17637186941306D+00 0.50643591551759D-16 + 1 7 3 45 0.29923597616247D+00 0.15981946903655D-16 + 2 7 3 45 0.28016256143628D+00 0.94625327209556D-17 + 3 7 3 45 0.42551965214467D+00 0.76456832960513D-16 + 1 8 3 45 0.13654215728241D+02 -0.12294641533067D-16 + 2 8 3 45 0.13932091528740D+02 -0.23424055147716D-16 + 3 8 3 45 -0.25755365692805D+02 0.20145918335380D-17 + 1 9 3 45 0.31071750059116D+01 -0.12639911444779D-17 + 2 9 3 45 -0.12023475815095D+01 0.10150272777360D-16 + 3 9 3 45 -0.30652285689548D+01 0.28389870252722D-15 + 1 10 3 45 -0.31880379749958D+01 0.27875025572351D-17 + 2 10 3 45 -0.12833129941631D+01 0.24669053765553D-17 + 3 10 3 45 -0.31010690740300D+01 0.24663970752825D-15 + 1 11 3 45 -0.11601899127567D+00 -0.64366890201402D-18 + 2 11 3 45 -0.99859390646114D-01 0.50250541122779D-17 + 3 11 3 45 -0.25453576973771D+00 -0.15085905326856D-15 + 1 12 3 45 0.65195109669496D-01 -0.36059260386566D-18 + 2 12 3 45 -0.13376023552567D+00 0.25135386247974D-16 + 3 12 3 45 -0.25204749713281D+00 -0.89632234782220D-16 + 1 13 3 45 -0.31534604980328D+01 -0.76322437435948D-18 + 2 13 3 45 0.13775885799320D+01 -0.84070232605547D-17 + 3 13 3 45 -0.31111385464382D+01 -0.16582191399903D-15 + 1 14 3 45 0.32039522267036D+01 -0.58231879069882D-18 + 2 14 3 45 0.12511127867583D+01 0.92509054581009D-17 + 3 14 3 45 -0.31136975303414D+01 -0.73975022863030D-16 + 1 15 3 45 -0.10856887234079D+00 0.28447573057223D-17 + 2 15 3 45 0.69079466598023D-01 -0.18187423556051D-17 + 3 15 3 45 -0.22820182169768D+00 -0.14920684367900D-15 + 1 16 3 45 -0.26653682768796D+00 -0.23195725892545D-16 + 2 16 3 45 -0.32225879136919D+00 0.42068862283259D-16 + 3 16 3 45 0.15727104241102D+00 0.26980508144651D-15 + 1 17 3 45 -0.47002277043586D+00 0.24578598488307D-16 + 2 17 3 45 0.46924060623007D+00 -0.65626365565846D-17 + 3 17 3 45 -0.37052391080199D+00 -0.34124212294168D-16 + 1 18 3 45 -0.45135257442485D+00 -0.24076033000283D-16 + 2 18 3 45 0.46496587470431D+00 0.39895359343171D-16 + 3 18 3 45 -0.76046130464859D+00 0.21856428306459D-16 + 1 19 3 45 -0.26176467133692D-02 -0.10969011853597D-16 + 2 19 3 45 0.54559282343332D-01 -0.26888684818022D-17 + 3 19 3 45 0.29520040261450D+00 0.83635099776490D-16 + 1 20 3 45 -0.13816776238180D+02 -0.79924202983789D-18 + 2 20 3 45 0.13994635157626D+02 -0.30547911894961D-16 + 3 20 3 45 -0.26062789866101D+02 -0.30024702574273D-16 + 1 21 3 45 -0.31472751484528D+00 0.44804292198693D-16 + 2 21 3 45 0.30305418033182D+00 -0.33308265841721D-16 + 3 21 3 45 0.49246290484208D+00 0.33454848481234D-15 + 1 22 3 45 0.55427107238836D-02 0.39872791288368D-16 + 2 22 3 45 0.28225134787875D+00 0.83132871703684D-17 + 3 22 3 45 0.17804663887290D+00 0.19736894235662D-15 + 1 23 3 45 -0.43144431608078D+00 -0.33270329262566D-17 + 2 23 3 45 0.41751349235392D+00 -0.89729283304683D-17 + 3 23 3 45 -0.36088245076101D+00 0.55922718640004D-16 + 1 24 3 45 0.12077597060909D+00 -0.81631939863262D-16 + 2 24 3 45 0.12548940319258D+00 0.20945542923432D-16 + 3 24 3 45 -0.18398839271199D-01 -0.96406474143182D-16 + 1 25 3 45 0.12503487019539D+01 -0.72634462085518D-17 + 2 25 3 45 0.12746428311669D+01 -0.30073518208344D-16 + 3 25 3 45 0.30996653802460D+01 -0.95700436467746D-16 + 1 26 3 45 -0.98105471988990D-01 -0.11618670149491D-16 + 2 26 3 45 0.99268420215569D-01 -0.97035552321186D-16 + 3 26 3 45 -0.40209081495167D-01 0.13704687591593D-16 + 1 27 3 45 -0.13270267936535D+01 0.98673951191243D-16 + 2 27 3 45 0.12419318315307D+01 0.13199485826177D-16 + 3 27 3 45 0.30332084301199D+01 0.16085325189313D-16 + 1 28 3 45 0.10238686586998D+00 -0.26209477550308D-16 + 2 28 3 45 -0.12466780722943D+00 0.71662629746019D-16 + 3 28 3 45 -0.52495826598255D-01 0.74865504867036D-17 + 1 29 3 45 0.12344925828659D+01 0.67590907005870D-16 + 2 29 3 45 -0.11343705741543D+01 0.35831837370851D-16 + 3 29 3 45 0.30446783493882D+01 -0.12475469896517D-16 + 1 30 3 45 -0.80210145194050D-01 0.24672171521792D-16 + 2 30 3 45 -0.73875759257911D-01 -0.18173331239854D-16 + 3 30 3 45 -0.17411223374570D-01 -0.21641665587912D-16 + 1 31 3 45 -0.13652157069082D+01 0.24527375754136D-17 + 2 31 3 45 -0.14276448489624D+01 -0.88630888516238D-16 + 3 31 3 45 0.30610124002741D+01 0.86497804594023D-16 + 1 32 3 45 0.34082333285974D+00 0.11220005205821D-16 + 2 32 3 45 -0.60352768827599D+00 0.36439317229185D-16 + 3 32 3 45 -0.81185336706516D+00 0.16531080792140D-15 + 1 33 3 45 0.22643509870745D-01 0.16873443848396D-16 + 2 33 3 45 -0.27822975149860D-01 0.21246963426542D-16 + 3 33 3 45 0.26805640929539D+00 -0.77584456447142D-16 + 1 34 3 45 0.32358218209425D+00 0.46248739033097D-16 + 2 34 3 45 0.30091129439677D+00 0.34580382822115D-16 + 3 34 3 45 0.24708348230195D+00 0.23432088862364D-17 + 1 35 3 45 0.46661777973951D+00 -0.26660351646489D-16 + 2 35 3 45 -0.46213141658107D+00 -0.13624891426027D-16 + 3 35 3 45 -0.37201695309456D+00 0.26847615019260D-15 + 1 36 3 45 -0.32023862973356D+00 0.26603945116924D-16 + 2 36 3 45 -0.26183416531372D+00 0.20090357387061D-16 + 3 36 3 45 0.23777045636008D+00 -0.18060166529495D-16 + 1 37 3 45 0.44805328709033D+00 -0.21337766374235D-16 + 2 37 3 45 -0.61055482526110D+00 0.16363442075042D-16 + 3 37 3 45 -0.51190641997774D+00 -0.13847603114602D-15 + 1 38 3 45 0.14840802524424D+02 -0.78755785656904D-17 + 2 38 3 45 -0.13709035226119D+02 0.34551239371399D-17 + 3 38 3 45 -0.25763641485448D+02 0.11261005170991D-15 + 1 39 3 45 0.26040622557040D+00 0.12928403290506D-16 + 2 39 3 45 -0.27558435795446D+00 -0.24441437323527D-17 + 3 39 3 45 0.45098802112198D+00 0.40807040157875D-16 + 1 40 3 45 0.15033632328304D-01 0.20418654538317D-18 + 2 40 3 45 0.70666205511097D-02 0.61799716448651D-19 + 3 40 3 45 -0.17315680606386D+00 0.00000000000000D+00 + 1 41 3 45 0.27334226525659D-02 -0.14535929767918D-17 + 2 41 3 45 0.24459884158650D-03 -0.13317998976295D-19 + 3 41 3 45 -0.21965773484532D+00 -0.23479015739090D-18 + 1 42 3 45 0.12354351356588D-01 -0.12188105181450D-17 + 2 42 3 45 -0.36608589249551D-01 -0.20405942196105D-17 + 3 42 3 45 -0.11789925547314D+00 -0.87406248924454D-17 + 1 43 3 45 0.13360427838615D+00 -0.15229776686348D-17 + 2 43 3 45 0.10534837771692D+00 -0.47907676682542D-18 + 3 43 3 45 0.14870128380568D+01 -0.12685313057522D-16 + 1 44 3 45 0.15564013824401D-02 -0.52127838817301D-19 + 2 44 3 45 0.21764363757139D-01 0.12019704217233D-17 + 3 44 3 45 -0.40132057144184D+00 0.36191076304045D-18 + 1 45 3 45 0.12319061319894D+00 0.00000000000000D+00 + 2 45 3 45 0.81338717684573D+00 0.00000000000000D+00 + 3 45 3 45 0.11996040263773D+03 0.00000000000000D+00 + 1 46 3 45 -0.25656366926326D-01 0.31223152426685D-18 + 2 46 3 45 0.25756283878900D-01 0.20249023494587D-17 + 3 46 3 45 -0.10723510414041D+00 0.11018582890948D-16 + 1 47 3 45 -0.28052321328861D-01 -0.22946133238399D-18 + 2 47 3 45 -0.88364560270814D-01 -0.26263065039858D-17 + 3 47 3 45 -0.25125029174602D+00 0.22380673788308D-16 + 1 48 3 45 -0.52437964590650D+00 0.23413049408994D-16 + 2 48 3 45 -0.43513197182491D+00 -0.91525669412018D-16 + 3 48 3 45 -0.44967235785732D+00 0.11949482965329D-15 + 1 49 3 45 -0.24735014074086D+00 0.28302306166109D-16 + 2 49 3 45 0.30778667023405D+00 0.60548948129062D-16 + 3 49 3 45 0.18807102073723D+00 -0.12164367303508D-15 + 1 50 3 45 -0.29121581310743D-01 -0.17200162626509D-16 + 2 50 3 45 0.50694550586705D-01 0.89341224850984D-16 + 3 50 3 45 0.24478245845664D+00 -0.38447371817618D-17 + 1 51 3 45 -0.48369823738220D+00 0.37196989485857D-17 + 2 51 3 45 -0.45833681568794D+00 -0.55603011316460D-16 + 3 51 3 45 -0.78338733454980D+00 -0.53672018226343D-17 + 1 52 3 45 -0.23380228617192D+00 -0.69916308707930D-18 + 2 52 3 45 -0.37492435584405D+00 -0.44336703297695D-17 + 3 52 3 45 0.58598536914086D+00 0.30941518946334D-15 + 1 53 3 45 -0.14705333028176D+02 -0.28008508519851D-16 + 2 53 3 45 -0.14444249625280D+02 -0.58121192356185D-16 + 3 53 3 45 -0.26673406555051D+02 -0.70348840710407D-16 + 1 54 3 45 -0.47064181745670D+00 -0.44334048422310D-17 + 2 54 3 45 -0.42846589831313D+00 -0.29489911171207D-16 + 3 54 3 45 -0.34766337276457D+00 0.61073571981213D-16 + 1 55 3 45 0.35660563057978D+00 -0.17805676584960D-16 + 2 55 3 45 -0.21799906534146D+00 0.18478656516569D-16 + 3 55 3 45 0.19045136784064D+00 -0.10173999781111D-15 + 1 56 3 45 -0.77343943757398D-01 -0.18876725406505D-16 + 2 56 3 45 -0.99437535727202D-01 0.11064563443705D-17 + 3 56 3 45 -0.26287299123699D+00 -0.67858816298914D-16 + 1 57 3 45 -0.13299472840209D+00 0.22839865335159D-16 + 2 57 3 45 0.10643754625190D+00 -0.18098333023408D-17 + 3 57 3 45 -0.22774994674944D+00 0.45573190192951D-16 + 1 58 3 45 0.16133490743944D-01 0.27065551165718D-16 + 2 58 3 45 0.10055451728178D+00 0.12300145383894D-18 + 3 58 3 45 -0.19898996517371D+00 0.44651303515560D-16 + 1 59 3 45 0.10515103233070D+00 -0.16400550250583D-16 + 2 59 3 45 -0.10631103492100D+00 -0.33077248518988D-18 + 3 59 3 45 -0.22848785946546D+00 -0.16432945428061D-15 + 1 60 3 45 -0.10982907017704D+01 -0.34087093165583D-16 + 2 60 3 45 0.31255487756682D+01 0.11143352073534D-16 + 3 60 3 45 -0.31906510664380D+01 -0.74390320284454D-16 + 1 61 3 45 -0.12884369863742D+01 -0.28654622979215D-16 + 2 61 3 45 -0.32259684776565D+01 -0.15387938231173D-18 + 3 61 3 45 -0.31342894738195D+01 0.31704495413989D-15 + 1 62 3 45 0.13686463220819D+01 0.97025009563353D-17 + 2 62 3 45 -0.32644467995037D+01 0.37914830309307D-18 + 3 62 3 45 -0.31017691541785D+01 -0.19386884563715D-15 + 1 63 3 45 0.12789171090115D+01 0.14587093996110D-16 + 2 63 3 45 0.30830550896706D+01 -0.11804606488089D-17 + 3 63 3 45 -0.29961780079478D+01 0.57053670321642D-16 + 1 64 3 45 0.28203786703249D+00 -0.12563663904812D-16 + 2 64 3 45 -0.12141742276502D+00 0.42062596032214D-17 + 3 64 3 45 0.24110516291538D-01 0.17522179926612D-15 + 1 65 3 45 -0.18950573049621D-01 0.18651173569361D-16 + 2 65 3 45 -0.17597811415125D-01 0.36600514602762D-16 + 3 65 3 45 -0.63414165802428D-01 0.14286905139412D-15 + 1 1 1 46 0.12148402283882D+00 -0.98660910422507D-16 + 2 1 1 46 -0.29451899344543D+00 0.23454994293345D-16 + 3 1 1 46 0.21488924759003D+00 0.81502613334355D-17 + 1 2 1 46 -0.39640379417134D+00 -0.24459351693902D-15 + 2 2 1 46 -0.80045650826027D+00 -0.67573072676326D-17 + 3 2 1 46 0.51417559201220D+00 0.82996374203255D-17 + 1 3 1 46 -0.50259411538244D+00 0.59949544111140D-16 + 2 3 1 46 -0.35059274663601D+00 -0.18149039463061D-16 + 3 3 1 46 0.49922300162289D+00 0.30453767518061D-19 + 1 4 1 46 0.23662232486672D+00 0.11651159580780D-15 + 2 4 1 46 0.11423776684104D-01 0.14851320786818D-16 + 3 4 1 46 -0.94824085324151D-02 -0.22791409370768D-17 + 1 5 1 46 -0.24353371012175D+02 0.34386152464245D-16 + 2 5 1 46 -0.22245450246926D+02 -0.17163418904683D-16 + 3 5 1 46 0.14751333435336D+02 -0.25079257159110D-16 + 1 6 1 46 0.19042103809358D+00 -0.20880369899024D-15 + 2 6 1 46 0.28361053495241D+00 -0.28746965909955D-16 + 3 6 1 46 0.13762305616936D+00 0.26277184658647D-16 + 1 7 1 46 0.27912912720102D+00 0.56073471646020D-16 + 2 7 1 46 -0.33872008325704D+00 -0.10893092648632D-17 + 3 7 1 46 -0.29916503793231D+00 -0.13667921793297D-16 + 1 8 1 46 -0.79645524878653D+00 -0.60571842725355D-16 + 2 8 1 46 -0.38632799622838D+00 -0.71641585103317D-16 + 3 8 1 46 0.36639941053524D+00 0.37472401385304D-17 + 1 9 1 46 -0.11874443038823D+00 0.22942942391787D-15 + 2 9 1 46 -0.12365796421604D+00 -0.34319548703003D-16 + 3 9 1 46 -0.80597005297448D-01 -0.28138287857655D-17 + 1 10 1 46 -0.24785948145177D+00 0.10278108932999D-15 + 2 10 1 46 0.14675843406442D+00 0.27044333207569D-16 + 3 10 1 46 -0.11878586879503D+00 0.57620964528917D-18 + 1 11 1 46 -0.30638988320256D+01 -0.20895543235622D-15 + 2 11 1 46 -0.13515021593716D+01 -0.74018585333741D-16 + 3 11 1 46 -0.31640814690755D+01 -0.18485776205460D-17 + 1 12 1 46 -0.32157297915033D+01 0.15560766162943D-15 + 2 12 1 46 0.12612871728019D+01 -0.72114094200541D-16 + 3 12 1 46 0.37358331173980D+01 0.20571802036045D-17 + 1 13 1 46 -0.21132000918250D+00 -0.87087526017555D-16 + 2 13 1 46 -0.71961574256985D-01 0.20068386686070D-16 + 3 13 1 46 -0.13055966252282D+00 0.18437479399855D-17 + 1 14 1 46 -0.23633934167008D+00 -0.12445015106759D-15 + 2 14 1 46 0.14168161790001D+00 -0.85818085177511D-16 + 3 14 1 46 0.90666799791497D-01 -0.12943791697362D-17 + 1 15 1 46 -0.30001519778860D+01 -0.14186745905276D-15 + 2 15 1 46 0.12254845032310D+01 0.37543759532774D-16 + 3 15 1 46 -0.30660005531584D+01 -0.13977833844141D-19 + 1 16 1 46 0.81947051681335D-01 0.84127003527531D-16 + 2 16 1 46 -0.17540967717463D+00 -0.20789910904305D-16 + 3 16 1 46 -0.10458857416864D+00 0.14391076739981D-16 + 1 17 1 46 -0.63312078461237D+00 -0.19083819738433D-15 + 2 17 1 46 0.51528742791333D+00 -0.11506547773850D-17 + 3 17 1 46 -0.44260789793588D+00 -0.52915847133387D-17 + 1 18 1 46 -0.58364062511924D+00 0.10135459231263D-15 + 2 18 1 46 0.65896889737925D+00 -0.62278189455371D-17 + 3 18 1 46 -0.74948867391113D+00 -0.16340600388501D-16 + 1 19 1 46 0.31422049400922D+00 -0.59953209940441D-16 + 2 19 1 46 0.35986694257036D+00 -0.14575561316694D-16 + 3 19 1 46 0.17548457128179D+00 0.33633014306338D-17 + 1 20 1 46 -0.78153175645181D+00 0.17974558678629D-15 + 2 20 1 46 0.46840841101349D+00 0.18962835933713D-16 + 3 20 1 46 -0.53730740550125D+00 -0.26385195184157D-16 + 1 21 1 46 0.24071006525500D+00 0.31669353136709D-16 + 2 21 1 46 0.29803704164043D+00 0.19197623631402D-18 + 3 21 1 46 0.44122789176326D+00 -0.20893885155526D-16 + 1 22 1 46 0.24026317668267D+00 -0.90749749728832D-16 + 2 22 1 46 0.12568042557563D+01 0.48168961612105D-18 + 3 22 1 46 -0.19589691143570D+01 0.36929907276374D-17 + 1 23 1 46 -0.28281032658509D+02 -0.28610060425544D-15 + 2 23 1 46 0.14657929762345D+02 -0.47214364591026D-16 + 3 23 1 46 -0.14256821798390D+02 0.14989270285630D-16 + 1 24 1 46 -0.32206381252867D+01 0.16800263236049D-15 + 2 24 1 46 0.32345058521663D+01 -0.21099397104628D-17 + 3 24 1 46 0.16017402743485D+01 -0.52533248648223D-16 + 1 25 1 46 -0.27692148443529D+00 -0.52735085643252D-16 + 2 25 1 46 -0.14976597231751D+00 0.56796097508703D-17 + 3 25 1 46 0.19607991922538D-01 0.62277055252931D-16 + 1 26 1 46 -0.29148046783835D+01 -0.24481637555333D-16 + 2 26 1 46 -0.31270947786230D+01 -0.68476941337401D-18 + 3 26 1 46 -0.11584240695734D+01 0.11264921873172D-16 + 1 27 1 46 -0.22877488748024D+00 0.20406306802577D-15 + 2 27 1 46 0.15007314540031D+00 0.20191405306751D-17 + 3 27 1 46 -0.15578959509998D+00 -0.10562702216888D-16 + 1 28 1 46 -0.28051599479846D+01 -0.28553479541148D-15 + 2 28 1 46 -0.32779236897385D+01 -0.17004918813828D-17 + 3 28 1 46 0.20031063282269D+01 0.31808127013858D-16 + 1 29 1 46 -0.11821621565578D+00 0.19572381148416D-15 + 2 29 1 46 0.24928118504911D+00 0.93412045763608D-18 + 3 29 1 46 0.11779011964277D+00 0.38776336291901D-16 + 1 30 1 46 -0.31127751678940D+01 0.10206171482437D-15 + 2 30 1 46 0.31321845540439D+01 -0.28687799606351D-17 + 3 30 1 46 -0.12076686035773D+01 0.21832964363934D-17 + 1 31 1 46 -0.22012489406827D+00 0.14550995665723D-15 + 2 31 1 46 -0.82223371077731D-01 0.13360594646457D-18 + 3 31 1 46 0.10226835393024D+00 -0.17786769370754D-16 + 1 32 1 46 0.33793601791265D+00 -0.48355581084695D-16 + 2 32 1 46 -0.17793550258318D+01 0.48808690438368D-17 + 3 32 1 46 -0.16233365719528D+01 -0.39471330850334D-16 + 1 33 1 46 0.57599511950998D+00 0.16464610525990D-15 + 2 33 1 46 0.38139056523925D+00 -0.30028950405901D-17 + 3 33 1 46 0.29550212064911D+00 0.20209924539192D-16 + 1 34 1 46 0.20033384962361D+00 -0.89527105163926D-16 + 2 34 1 46 0.15681017887170D+00 0.15450564843273D-16 + 3 34 1 46 -0.24696374662172D-02 0.85543987383570D-16 + 1 35 1 46 -0.29770639034202D+00 0.58318866308307D-16 + 2 35 1 46 0.43245298590620D+00 -0.20205346900041D-16 + 3 35 1 46 0.53882773265771D+00 0.24982018823507D-16 + 1 36 1 46 0.21582940437261D+00 0.76837886194952D-16 + 2 36 1 46 -0.43846442122255D+00 0.19456188972027D-16 + 3 36 1 46 0.32434742287266D+00 -0.75291697471444D-16 + 1 37 1 46 -0.27022189572521D+02 0.72543393940275D-16 + 2 37 1 46 0.16629379756977D+02 -0.16089314284900D-16 + 3 37 1 46 0.14835666597383D+02 0.26874153638677D-16 + 1 38 1 46 -0.80985736801165D+00 -0.27917619910213D-15 + 2 38 1 46 0.52165191449955D+00 0.13451808853464D-16 + 3 38 1 46 0.28684620462766D+00 -0.33581823005591D-17 + 1 39 1 46 0.11542738827355D+00 0.10828256829153D-15 + 2 39 1 46 0.26119564154638D+00 0.21109205019181D-16 + 3 39 1 46 -0.17250536151423D+00 -0.56427309678543D-17 + 1 40 1 46 -0.19511828925900D+00 -0.11572259200009D-16 + 2 40 1 46 -0.36698199332301D-01 0.15854593058696D-17 + 3 40 1 46 0.13360427838615D+00 0.36082881064617D-17 + 1 41 1 46 -0.12166211096925D+00 -0.11881105514686D-16 + 2 41 1 46 0.63431380755933D-02 0.61867798269860D-17 + 3 41 1 46 -0.12354351356588D-01 0.75141624643762D-18 + 1 42 1 46 -0.54947314096178D+00 0.27403013214780D-16 + 2 42 1 46 -0.45780525994136D+00 0.23755299601409D-17 + 3 42 1 46 0.14226339989857D+00 -0.84252586716273D-18 + 1 43 1 46 0.21493144039402D+00 -0.17253108702172D-16 + 2 43 1 46 0.61638313884036D+00 -0.13430585120714D-16 + 3 43 1 46 -0.35798312713401D+00 -0.62730863754591D-17 + 1 44 1 46 -0.19374587556379D+00 0.85452411827327D-17 + 2 44 1 46 -0.24726760963583D-01 0.11649178417919D-17 + 3 44 1 46 0.28052321328861D-01 -0.14182441408367D-16 + 1 45 1 46 0.16147086050100D+01 -0.44232228989074D-17 + 2 45 1 46 -0.11525350264607D-01 -0.44101339626441D-17 + 3 45 1 46 -0.25656366926326D-01 -0.31223152426685D-18 + 1 46 1 46 0.11892909311263D+03 0.00000000000000D+00 + 2 46 1 46 -0.68310894103207D+00 0.00000000000000D+00 + 3 46 1 46 -0.28802566016955D+01 0.00000000000000D+00 + 1 47 1 46 -0.56483248397148D+00 0.34349800040272D-17 + 2 47 1 46 -0.30991150850772D+00 0.80544446299843D-19 + 3 47 1 46 -0.18069400296059D+00 -0.51213089825152D-18 + 1 48 1 46 -0.49336914517856D+00 -0.24861348201816D-16 + 2 48 1 46 -0.43441998613115D+00 -0.30067476926524D-16 + 3 48 1 46 -0.50939446161318D+00 0.27101330705512D-16 + 1 49 1 46 0.26686550422134D+00 -0.60919630843127D-16 + 2 49 1 46 -0.10707045324182D+00 -0.53449937130448D-16 + 3 49 1 46 -0.20825616100107D-01 -0.27772455743625D-16 + 1 50 1 46 0.43428936181686D-01 -0.23258772508013D-15 + 2 50 1 46 0.16931048991710D+01 0.18663456355422D-16 + 3 50 1 46 0.13093678493619D+01 0.76999048770248D-16 + 1 51 1 46 -0.17175783798408D+00 -0.78449968369548D-16 + 2 51 1 46 -0.33826748421715D+00 -0.20989889608163D-17 + 3 51 1 46 -0.46034884881434D+00 0.23285008371594D-17 + 1 52 1 46 0.62632122828490D+00 -0.69064523409948D-16 + 2 52 1 46 -0.83325922317389D+00 -0.90967391981943D-17 + 3 52 1 46 0.78293220003703D+00 -0.12059782333401D-16 + 1 53 1 46 -0.81083552164948D+00 0.99662165324939D-16 + 2 53 1 46 -0.54032163431437D+00 -0.14858106167183D-16 + 3 53 1 46 -0.44096668991251D+00 -0.66169530672301D-19 + 1 54 1 46 -0.24223590393392D+02 0.40049195637086D-15 + 2 54 1 46 -0.11927098542457D+02 -0.40310224201592D-17 + 3 54 1 46 -0.13529215902066D+02 0.97149613788337D-17 + 1 55 1 46 0.62025028896456D-02 -0.75899404122113D-16 + 2 55 1 46 0.37197994347043D+00 0.36863592074146D-16 + 3 55 1 46 -0.23104945061831D+00 0.29361638588262D-16 + 1 56 1 46 -0.42568070033697D+00 0.13629161887186D-16 + 2 56 1 46 -0.22985401946665D+00 -0.41979506554902D-17 + 3 56 1 46 -0.15638035851828D-01 -0.11097361939338D-17 + 1 57 1 46 -0.23349397939481D-02 -0.16681125436753D-15 + 2 57 1 46 -0.77343943757405D-01 0.15286634476352D-16 + 3 57 1 46 -0.11767243478525D+00 0.91833391412550D-17 + 1 58 1 46 -0.42519676728861D+00 -0.31211495000987D-16 + 2 58 1 46 0.34261208178817D+00 -0.32718132079384D-16 + 3 58 1 46 -0.10890786888940D+00 0.10390589850654D-16 + 1 59 1 46 -0.20198582307335D-01 0.45423007646670D-16 + 2 59 1 46 -0.16133490743937D-01 0.15250932289826D-16 + 3 59 1 46 0.89382574095883D-01 -0.34280461243565D-17 + 1 60 1 46 0.33326485128250D+01 0.49739493482863D-16 + 2 60 1 46 0.79111691528173D+00 -0.26755692853644D-16 + 3 60 1 46 -0.22422150556930D+01 0.39447434260554D-17 + 1 61 1 46 0.31882659330409D+01 0.25288293320441D-15 + 2 61 1 46 -0.13686463220819D+01 -0.23161659241936D-16 + 3 61 1 46 -0.14011878085562D+01 -0.23955857472155D-16 + 1 62 1 46 0.36035073432242D+01 -0.10080708889143D-15 + 2 62 1 46 0.14766123034724D+01 0.12675392935153D-16 + 3 62 1 46 0.16287765163973D+01 0.13454355707511D-16 + 1 63 1 46 0.30753321824939D+01 -0.10638511463741D-15 + 2 63 1 46 -0.10982907017704D+01 0.75000957711053D-17 + 3 63 1 46 0.11033339330700D+01 -0.33878540796801D-16 + 1 64 1 46 -0.32913855200115D+01 0.10939179207865D-16 + 2 64 1 46 0.11913615239239D+01 -0.92696186699454D-16 + 3 64 1 46 0.54552158771248D+01 0.46108971496745D-17 + 1 65 1 46 0.64172853416080D+00 0.32393021732825D-16 + 2 65 1 46 0.56586395752864D+00 -0.10631981913785D-15 + 3 65 1 46 0.41799667554709D-01 0.75611799395763D-17 + 1 1 2 46 -0.20189496355114D+00 0.23454994293345D-16 + 2 1 2 46 0.33670670103111D+00 0.91579327104414D-16 + 3 1 2 46 -0.33929061429275D+00 -0.31512006897297D-16 + 1 2 2 46 -0.59823138478369D+00 -0.67573072676326D-17 + 2 2 2 46 -0.60193948425331D+00 0.72582331512428D-16 + 3 2 2 46 0.69117859893013D+00 0.19346901096777D-16 + 1 3 2 46 -0.27401375196434D+00 -0.18149039463061D-16 + 2 3 2 46 -0.62129055617945D+00 -0.10487057265627D-16 + 3 3 2 46 0.76511502303097D-01 0.22817640621798D-16 + 1 4 2 46 -0.11555303207963D-01 0.14851320786818D-16 + 2 4 2 46 0.27493805249823D+00 0.72497829772792D-16 + 3 4 2 46 0.51697840507665D-01 -0.37612809876825D-16 + 1 5 2 46 -0.17151064833579D+02 -0.17163418904683D-16 + 2 5 2 46 -0.25943254441571D+02 -0.81275498107801D-16 + 3 5 2 46 0.16509815584852D+02 0.34022153757996D-16 + 1 6 2 46 0.42205070125685D+00 -0.28746965909955D-16 + 2 6 2 46 0.23490982432093D+00 0.17142390363729D-15 + 3 6 2 46 0.40212139172871D+00 -0.20084415803832D-16 + 1 7 2 46 -0.35569019419801D+00 -0.10893092648632D-17 + 2 7 2 46 0.44715972523503D+00 -0.14042872218137D-15 + 3 7 2 46 0.16366981488135D+00 -0.25400992209243D-16 + 1 8 2 46 -0.49952396734700D+00 -0.71641585103317D-16 + 2 8 2 46 -0.55330131078288D+00 -0.12022574309693D-15 + 3 8 2 46 0.49151781919568D+00 -0.13621526214818D-16 + 1 9 2 46 0.56111524358578D-01 -0.34319548703003D-16 + 2 9 2 46 0.28004815274252D-01 -0.14069494289348D-15 + 3 9 2 46 0.23773955807572D+00 0.11196069705050D-17 + 1 10 2 46 -0.11771011529336D+00 0.27044333207569D-16 + 2 10 2 46 0.17176138476533D-01 0.67046269879247D-16 + 3 10 2 46 0.11438150796613D+00 0.23709545821966D-16 + 1 11 2 46 0.13211942367619D+01 -0.74018585333741D-16 + 2 11 2 46 0.31311444326210D+01 0.19330309260187D-15 + 3 11 2 46 0.13319450553958D+01 -0.56990819129039D-17 + 1 12 2 46 -0.12482638357656D+01 -0.72114094200541D-16 + 2 12 2 46 0.28423411136097D+01 0.30153608103936D-17 + 3 12 2 46 0.12067952504781D+01 0.83754324955252D-17 + 1 13 2 46 0.80742365490621D-01 0.20068386686070D-16 + 2 13 2 46 -0.42718762411065D-01 0.16577421454725D-15 + 3 13 2 46 -0.11189461027629D+00 -0.13797202596768D-16 + 1 14 2 46 -0.88968340529829D-01 -0.85818085177511D-16 + 2 14 2 46 -0.74228177386470D-01 0.15646453707243D-15 + 3 14 2 46 -0.53660734478790D-01 0.80936134149560D-17 + 1 15 2 46 -0.14264458797104D+01 0.37543759532774D-16 + 2 15 2 46 0.31732604423891D+01 0.24105785639484D-16 + 3 15 2 46 -0.12061807511854D+01 -0.19360795879117D-16 + 1 16 2 46 0.24610974420285D+00 -0.20789910904305D-16 + 2 16 2 46 0.53148809985973D+00 0.24243276217688D-15 + 3 16 2 46 0.24018265599630D+00 -0.10154688728154D-16 + 1 17 2 46 0.63253059845948D+00 -0.11506547773850D-17 + 2 17 2 46 -0.50206812739809D+00 -0.68171131849980D-16 + 3 17 2 46 0.46177411275870D+00 0.28373732041953D-16 + 1 18 2 46 0.45615503776575D+00 -0.62278189455371D-17 + 2 18 2 46 -0.93113972708093D+00 0.14247826834197D-15 + 3 18 2 46 0.61830381521061D+00 -0.65115547638805D-17 + 1 19 2 46 -0.29825601567282D-02 -0.14575561316694D-16 + 2 19 2 46 0.10626880733349D+00 -0.44050781424425D-15 + 3 19 2 46 -0.18019124741022D+00 0.13003098576296D-16 + 1 20 2 46 0.37756050303363D+00 0.18962835933713D-16 + 2 20 2 46 -0.21332075910505D+00 0.11918113666685D-16 + 3 20 2 46 0.40158016642121D+00 -0.63970474697449D-16 + 1 21 2 46 0.24324448070264D+00 0.19197623631402D-18 + 2 21 2 46 0.62299032448475D+00 -0.11841793544688D-15 + 3 21 2 46 0.26491264012522D+00 0.50645402688864D-17 + 1 22 2 46 -0.69344548756159D+00 0.48168961612105D-18 + 2 22 2 46 -0.11782400519076D+01 0.16691117999491D-15 + 3 22 2 46 0.15289918852252D+01 0.39757403513853D-16 + 1 23 2 46 0.14992323709904D+02 -0.47214364591026D-16 + 2 23 2 46 -0.25101178599709D+02 -0.27634100301021D-17 + 3 23 2 46 0.12776995690579D+02 -0.22761550997538D-16 + 1 24 2 46 0.30400799938289D+01 -0.21099397104628D-17 + 2 24 2 46 -0.29219202594767D+01 -0.13828927261466D-15 + 3 24 2 46 -0.14454054486640D+01 0.98768264110613D-17 + 1 25 2 46 -0.10585392237338D+00 0.56796097508703D-17 + 2 25 2 46 -0.21107489075072D+00 -0.67936163316379D-16 + 3 25 2 46 -0.45686340930218D-01 0.21711488494128D-16 + 1 26 2 46 -0.30637658912080D+01 -0.68476941337401D-18 + 2 26 2 46 -0.31543092489251D+01 0.18327300605439D-15 + 3 26 2 46 -0.11316458786832D+01 -0.27384760058260D-17 + 1 27 2 46 0.96293916460598D-01 0.20191405306751D-17 + 2 27 2 46 -0.23563032171867D+00 -0.24911262828948D-15 + 3 27 2 46 -0.10511726601206D+00 -0.20632775741773D-16 + 1 28 2 46 -0.26899078430667D+01 -0.17004918813828D-17 + 2 28 2 46 -0.30775016116620D+01 0.63008235020990D-16 + 3 28 2 46 0.11485207674171D+01 0.74308166872916D-16 + 1 29 2 46 0.13987575062728D+00 0.93412045763608D-18 + 2 29 2 46 -0.26127655378421D+00 -0.56229592582754D-17 + 3 29 2 46 -0.46826809137954D-01 -0.45429465488645D-16 + 1 30 2 46 0.32191059477274D+01 -0.28687799606351D-17 + 2 30 2 46 -0.30730874511020D+01 -0.27086320053363D-15 + 3 30 2 46 0.13634437152049D+01 -0.18483967244806D-16 + 1 31 2 46 0.41272559615122D-01 0.13360594646457D-18 + 2 31 2 46 0.81916361108249D-01 -0.12826568823554D-15 + 3 31 2 46 0.15534832070322D+00 -0.85870190740727D-16 + 1 32 2 46 -0.28590715431927D+00 0.48808690438368D-17 + 2 32 2 46 0.12265406544990D+01 0.13746080831285D-15 + 3 32 2 46 0.17065758913518D+01 -0.27963774897822D-16 + 1 33 2 46 0.35996202666299D+00 -0.30028950405901D-17 + 2 33 2 46 0.18898539371497D+00 0.14985005720888D-15 + 3 33 2 46 0.25867275679239D+00 -0.35294889898173D-16 + 1 34 2 46 0.17379472240560D+00 0.15450564843273D-16 + 2 34 2 46 0.16229330172928D+00 0.17957449171084D-16 + 3 34 2 46 -0.12118996449944D-01 -0.18420604925374D-16 + 1 35 2 46 0.32150151371740D+00 -0.20205346900041D-16 + 2 35 2 46 -0.31887366055225D+00 -0.11139145886137D-15 + 3 35 2 46 -0.55610764499212D+00 0.74055958471549D-16 + 1 36 2 46 -0.28753091410638D+00 0.19456188972027D-16 + 2 36 2 46 0.19033349414045D+00 -0.22305614423724D-15 + 3 36 2 46 -0.15949537106224D+00 0.55721589691742D-16 + 1 37 2 46 0.17380976115390D+02 -0.16089314284900D-16 + 2 37 2 46 -0.27760819090572D+02 0.21470634264886D-15 + 3 37 2 46 -0.18445644366106D+02 0.19952685078334D-16 + 1 38 2 46 0.33968534256652D+00 0.13451808853464D-16 + 2 38 2 46 -0.60975442156202D+00 -0.21698997795351D-15 + 3 38 2 46 -0.14952538593818D+00 -0.37629375189936D-16 + 1 39 2 46 0.23882867257476D+00 0.21109205019181D-16 + 2 39 2 46 0.29163708009971D+00 0.55314269989753D-16 + 3 39 2 46 -0.33313519872921D+00 -0.31128206245789D-17 + 1 40 2 46 -0.61681663058382D-03 0.15854593058696D-17 + 2 40 2 46 -0.12417076851962D+00 0.16724427031605D-18 + 3 40 2 46 -0.10534837771692D+00 0.98722984724519D-18 + 1 41 2 46 -0.55066654507336D-02 0.61867798269860D-17 + 2 41 2 46 -0.12424139542536D+00 0.16642128059405D-17 + 3 41 2 46 0.36608589249550D-01 -0.63523666856368D-18 + 1 42 2 46 -0.45780525994136D+00 0.23755299601409D-17 + 2 42 2 46 -0.12788006633506D+00 0.28566446336689D-17 + 3 42 2 46 -0.28769115120802D+00 0.81981858535437D-18 + 1 43 2 46 -0.61638313884036D+00 -0.13430585120714D-16 + 2 43 2 46 0.12036259698951D+01 -0.33892435546977D-17 + 3 43 2 46 0.45036500072236D+00 -0.15515171692313D-17 + 1 44 2 46 0.38138444980193D-01 0.11649178417919D-17 + 2 44 2 46 -0.40246564189428D+00 -0.13484877375339D-17 + 3 44 2 46 -0.88364560270814D-01 0.25714747755832D-18 + 1 45 2 46 0.60412417775755D-01 -0.44101339626441D-17 + 2 45 2 46 -0.18124573639915D+00 -0.87618658085217D-17 + 3 45 2 46 0.25756283878900D-01 -0.20249023494587D-17 + 1 46 2 46 -0.68310894103208D+00 0.00000000000000D+00 + 2 46 2 46 0.12110065699664D+03 0.00000000000000D+00 + 3 46 2 46 -0.11969682585374D+00 0.00000000000000D+00 + 1 47 2 46 0.30991150850772D+00 0.80544446299843D-19 + 2 47 2 46 -0.16738313558674D+00 -0.86608935004319D-17 + 3 47 2 46 0.20439597042973D+00 -0.87337913979106D-18 + 1 48 2 46 -0.64346728371825D-01 -0.30067476926524D-16 + 2 48 2 46 -0.13525500815598D+00 0.16328717004475D-15 + 3 48 2 46 -0.50016541024873D+00 0.39607432037239D-16 + 1 49 2 46 0.42196927431057D-02 -0.53449937130448D-16 + 2 49 2 46 0.32802942366760D+00 0.16045849535838D-15 + 3 49 2 46 0.48541681642132D-01 0.40009110019963D-16 + 1 50 2 46 -0.12590578526660D+00 0.18663456355422D-16 + 2 50 2 46 -0.11150142372855D+01 0.11500024205158D-15 + 3 50 2 46 -0.12676911053746D+01 0.13694068913222D-16 + 1 51 2 46 -0.53061614381881D+00 -0.20989889608163D-17 + 2 51 2 46 -0.86409040711021D+00 -0.96486171309427D-16 + 3 51 2 46 -0.27618358262648D+00 0.57147860720236D-16 + 1 52 2 46 -0.61070928979988D+00 -0.90967391981943D-17 + 2 52 2 46 0.10055228481423D+01 -0.22775710905752D-15 + 3 52 2 46 -0.71273818903617D+00 0.98640558252827D-16 + 1 53 2 46 -0.57259088947737D+00 -0.14858106167183D-16 + 2 53 2 46 -0.48945075687645D+00 -0.71085568889543D-16 + 3 53 2 46 -0.56817747023680D+00 0.40702959539201D-16 + 1 54 2 46 -0.12618695132517D+02 -0.40310224201592D-17 + 2 54 2 46 -0.25485998875877D+02 -0.97312435563275D-16 + 3 54 2 46 -0.14949212088362D+02 0.36400985287710D-16 + 1 55 2 46 0.26522545003791D+00 0.36863592074146D-16 + 2 55 2 46 0.12834338893620D+00 0.14984070061279D-15 + 3 55 2 46 0.16842214387475D+00 0.54103206170976D-16 + 1 56 2 46 0.10890786888940D+00 -0.41979506554902D-17 + 2 56 2 46 0.11250902439584D+00 0.79009154882324D-16 + 3 56 2 46 -0.51949986066785D+00 0.45028135631693D-17 + 1 57 2 46 0.66047993622603D-01 0.15286634476352D-16 + 2 57 2 46 -0.26287299123699D+00 -0.11562578012156D-15 + 3 57 2 46 0.14387887629046D+00 -0.40317384835007D-18 + 1 58 2 46 -0.15638035851825D-01 -0.32718132079384D-16 + 2 58 2 46 -0.31513249573963D+00 -0.13968854888651D-15 + 3 58 2 46 0.51957007617259D+00 -0.21367711867700D-17 + 1 59 2 46 0.14193478143411D+00 0.15250932289826D-16 + 2 59 2 46 -0.19898996517371D+00 0.21320835929165D-15 + 3 59 2 46 -0.10413342879518D+00 0.11842992465224D-17 + 1 60 2 46 -0.22422150556930D+01 -0.26755692853644D-16 + 2 60 2 46 -0.19446621466388D+01 0.16833834947424D-15 + 3 60 2 46 0.37785239078169D+01 0.13886344827260D-17 + 1 61 2 46 0.12532163534033D+01 -0.23161659241936D-16 + 2 61 2 46 -0.31017691541785D+01 -0.79112565684055D-16 + 3 61 2 46 -0.31874796976435D+01 0.51211528496156D-17 + 1 62 2 46 -0.16287765163973D+01 0.12675392935153D-16 + 2 62 2 46 -0.32451830657095D+01 -0.73317465590676D-16 + 3 62 2 46 -0.32987071675482D+01 0.52495629306215D-18 + 1 63 2 46 0.14950307013227D+01 0.75000957711053D-17 + 2 63 2 46 -0.31906510664380D+01 0.10549014788337D-15 + 3 63 2 46 0.31475754789696D+01 -0.71543354390924D-17 + 1 64 2 46 0.11024226193011D+01 -0.92696186699454D-16 + 2 64 2 46 0.12473213394783D+01 -0.12074162697168D-16 + 3 64 2 46 -0.65632748910255D+00 -0.30700096408846D-16 + 1 65 2 46 0.25613440692052D+00 -0.10631981913785D-15 + 2 65 2 46 -0.50406954958960D+00 0.46797358063094D-16 + 3 65 2 46 0.26027499431462D+00 0.22752194224643D-16 + 1 1 3 46 0.16615110843063D+00 0.81502613334355D-17 + 2 1 3 46 -0.64823888964957D-01 -0.31512006897297D-16 + 3 1 3 46 0.15446028503366D+00 -0.80489715690478D-16 + 1 2 3 46 0.63674313804244D+00 0.82996374203255D-17 + 2 2 3 46 0.68264261748262D+00 0.19346901096777D-16 + 3 2 3 46 -0.37756417728968D+00 0.23565995696305D-15 + 1 3 3 46 0.59033759901085D+00 0.30453767518061D-19 + 2 3 3 46 0.23675050006731D+00 0.22817640621798D-16 + 3 3 3 46 -0.87879839587781D+00 0.70375876710547D-16 + 1 4 3 46 0.31560473711005D-02 -0.22791409370768D-17 + 2 4 3 46 -0.19573453759545D-01 -0.37612809876825D-16 + 3 4 3 46 0.29525495854004D+00 -0.46966031821947D-17 + 1 5 3 46 0.13111602562201D+02 -0.25079257159110D-16 + 2 5 3 46 0.23403793604855D+02 0.34022153757996D-16 + 3 5 3 46 -0.26966858017480D+02 0.51628446905187D-15 + 1 6 3 46 0.30050836975059D+00 0.26277184658647D-16 + 2 6 3 46 0.31592974345077D+00 -0.20084415803832D-16 + 3 6 3 46 0.55573036713752D+00 0.11385996696889D-15 + 1 7 3 46 -0.42098272698905D+00 -0.13667921793297D-16 + 2 7 3 46 0.25348016079986D+00 -0.25400992209243D-16 + 3 7 3 46 0.12123201124200D+00 0.39640972426679D-16 + 1 8 3 46 0.49338013526382D+00 0.37472401385304D-17 + 2 8 3 46 0.49852977540939D+00 -0.13621526214818D-16 + 3 8 3 46 -0.32116000110639D+00 -0.58843437949189D-16 + 1 9 3 46 0.82043198351639D-01 -0.28138287857655D-17 + 2 9 3 46 -0.71194922581208D-01 0.11196069705050D-17 + 3 9 3 46 -0.16993298888397D+00 -0.87370435711185D-15 + 1 10 3 46 -0.12050740714423D+00 0.57620964528917D-18 + 2 10 3 46 -0.15168666551704D+00 0.23709545821966D-16 + 3 10 3 46 -0.24793168041875D+00 0.65587980658243D-15 + 1 11 3 46 -0.33050853082271D+01 -0.18485776205460D-17 + 2 11 3 46 -0.12841378769088D+01 -0.56990819129039D-17 + 3 11 3 46 -0.29877680086003D+01 0.89624360890456D-15 + 1 12 3 46 0.35469120189638D+01 0.20571802036045D-17 + 2 12 3 46 -0.10925016594282D+01 0.83754324955252D-17 + 3 12 3 46 -0.33903977200178D+01 0.92842359176473D-16 + 1 13 3 46 -0.10038897771306D+00 0.18437479399855D-17 + 2 13 3 46 0.11750953390600D+00 -0.13797202596768D-16 + 3 13 3 46 -0.18948265496565D+00 -0.78432799339238D-15 + 1 14 3 46 0.10097204574324D+00 -0.12943791697362D-17 + 2 14 3 46 0.83074439382480D-01 0.80936134149560D-17 + 3 14 3 46 -0.24639150368970D+00 0.11453816002788D-15 + 1 15 3 46 -0.31773514429869D+01 -0.13977833844141D-19 + 2 15 3 46 0.13470329229198D+01 -0.19360795879117D-16 + 3 15 3 46 -0.29954888535487D+01 -0.70294850589957D-15 + 1 16 3 46 0.10295060887454D+00 0.14391076739981D-16 + 2 16 3 46 0.20826631690892D+00 -0.10154688728154D-16 + 3 16 3 46 0.37092861818659D+00 -0.40384309002540D-16 + 1 17 3 46 -0.28525463577358D+00 -0.52915847133387D-17 + 2 17 3 46 0.49069469237906D+00 0.28373732041953D-16 + 3 17 3 46 -0.79567018427530D+00 0.11038285734704D-15 + 1 18 3 46 -0.58941207799971D+00 -0.16340600388501D-16 + 2 18 3 46 0.34781997433926D+00 -0.65115547638805D-17 + 3 18 3 46 -0.34062346733944D+00 -0.94185829052918D-16 + 1 19 3 46 -0.21516708156434D+00 0.33633014306338D-17 + 2 19 3 46 -0.30197170554672D+00 0.13003098576296D-16 + 3 19 3 46 0.31305621381469D-01 0.17493368613575D-15 + 1 20 3 46 -0.31197724830339D+00 -0.26385195184157D-16 + 2 20 3 46 0.29558449714712D+00 -0.63970474697449D-16 + 3 20 3 46 -0.25326590528758D+00 -0.28096420593227D-15 + 1 21 3 46 0.39930320110790D+00 -0.20893885155526D-16 + 2 21 3 46 0.43699935314724D+00 0.50645402688864D-17 + 3 21 3 46 0.18654111657419D+00 -0.30489522235644D-15 + 1 22 3 46 -0.69836127851069D+00 0.36929907276374D-17 + 2 22 3 46 -0.87578480095377D+00 0.39757403513853D-16 + 3 22 3 46 0.19692102717769D+01 -0.99245189350074D-16 + 1 23 3 46 -0.13867197110953D+02 0.14989270285630D-16 + 2 23 3 46 0.12371596783117D+02 -0.22761550997538D-16 + 3 23 3 46 -0.24532491806041D+02 0.11753226584338D-15 + 1 24 3 46 -0.11397146903825D+01 -0.52533248648223D-16 + 2 24 3 46 0.10540879121051D+01 0.98768264110613D-17 + 3 24 3 46 0.30580094079255D+01 0.73574411614682D-17 + 1 25 3 46 -0.11757710023595D+00 0.62277055252931D-16 + 2 25 3 46 0.10726450908200D+00 0.21711488494128D-16 + 3 25 3 46 0.37900726109027D-02 0.22278621911427D-16 + 1 26 3 46 0.14205596556584D+01 0.11264921873172D-16 + 2 26 3 46 0.12396011896155D+01 -0.27384760058260D-17 + 3 26 3 46 0.30306915079876D+01 -0.35507051584458D-16 + 1 27 3 46 0.10790549971587D+00 -0.10562702216888D-16 + 2 27 3 46 0.44033202187168D-01 -0.20632775741773D-16 + 3 27 3 46 -0.18463012523092D-01 -0.28605549106483D-16 + 1 28 3 46 -0.11176717924403D+01 0.31808127013858D-16 + 2 28 3 46 -0.95452131471841D+00 0.74308166872916D-16 + 3 28 3 46 0.26328894094708D+01 -0.17684627142870D-16 + 1 29 3 46 -0.72227401361731D-01 0.38776336291901D-16 + 2 29 3 46 -0.20147194587619D+00 -0.45429465488645D-16 + 3 29 3 46 -0.19873251756067D+00 -0.33216266103532D-16 + 1 30 3 46 0.14529028836111D+01 0.21832964363934D-17 + 2 30 3 46 -0.12261362992760D+01 -0.18483967244806D-16 + 3 30 3 46 0.32532103886273D+01 0.41722960340804D-16 + 1 31 3 46 0.14109272489711D+00 -0.17786769370754D-16 + 2 31 3 46 -0.12818383142601D+00 -0.85870190740727D-16 + 3 31 3 46 -0.10484951280541D+00 -0.13704253547308D-16 + 1 32 3 46 -0.26317444518414D+00 -0.39471330850334D-16 + 2 32 3 46 0.15198829841141D+01 -0.27963774897822D-16 + 3 32 3 46 0.11871324957381D+01 -0.25185519722132D-15 + 1 33 3 46 0.26938321812236D+00 0.20209924539192D-16 + 2 33 3 46 0.34011013696973D+00 -0.35294889898173D-16 + 3 33 3 46 0.93208777468695D-01 -0.59848230781509D-16 + 1 34 3 46 0.10281033293596D+00 0.85543987383570D-16 + 2 34 3 46 -0.98401233411655D-01 -0.18420604925374D-16 + 3 34 3 46 0.26864894443220D+00 0.57698082979150D-16 + 1 35 3 46 0.47577268331974D+00 0.24982018823507D-16 + 2 35 3 46 -0.59167202259456D+00 0.74055958471549D-16 + 3 35 3 46 -0.83525506489339D+00 0.13617333828433D-15 + 1 36 3 46 0.29934916374172D+00 -0.75291697471444D-16 + 2 36 3 46 -0.24748365031445D+00 0.55721589691742D-16 + 3 36 3 46 0.62661665556899D+00 -0.16776575480849D-15 + 1 37 3 46 0.14558835678490D+02 0.26874153638677D-16 + 2 37 3 46 -0.17524480964126D+02 0.19952685078334D-16 + 3 37 3 46 -0.26885952984624D+02 0.16644397393011D-15 + 1 38 3 46 0.35556774802706D+00 -0.33581823005591D-17 + 2 38 3 46 -0.43526276143987D+00 -0.37629375189936D-16 + 3 38 3 46 -0.85893846018728D-01 -0.90251414378427D-16 + 1 39 3 46 -0.23038762429388D+00 -0.56427309678543D-17 + 2 39 3 46 -0.27476276805792D+00 -0.31128206245789D-17 + 3 39 3 46 0.15731667061840D+00 0.35595234232869D-15 + 1 40 3 46 0.78044554531757D-02 0.36082881064617D-17 + 2 40 3 46 0.73131832143502D-01 0.98722984724519D-18 + 3 40 3 46 0.14870128380568D+01 -0.25543534944036D-16 + 1 41 3 46 0.52381069365460D-02 0.75141624643762D-18 + 2 41 3 46 0.69431513153944D-02 -0.63523666856368D-18 + 3 41 3 46 -0.11789925547314D+00 -0.48426920190209D-17 + 1 42 3 46 -0.14226339989857D+00 -0.84252586716273D-18 + 2 42 3 46 0.28769115120802D+00 0.81981858535437D-18 + 3 42 3 46 -0.40548407098282D+00 -0.45283876876277D-17 + 1 43 3 46 -0.35798312713401D+00 -0.62730863754591D-17 + 2 43 3 46 -0.45036500072236D+00 -0.15515171692313D-17 + 3 43 3 46 0.20435856490277D+00 -0.54316823892469D-17 + 1 44 3 46 -0.42250900489270D-02 -0.14182441408367D-16 + 2 44 3 46 0.34209735405513D-01 0.25714747755832D-18 + 3 44 3 46 -0.25125029174602D+00 0.10593763763271D-16 + 1 45 3 46 -0.73096735208846D-01 -0.31223152426685D-18 + 2 45 3 46 0.51528606358534D-01 -0.20249023494587D-17 + 3 45 3 46 -0.10723510414041D+00 -0.11018582890948D-16 + 1 46 3 46 -0.28802566016955D+01 0.00000000000000D+00 + 2 46 3 46 -0.11969682585373D+00 0.00000000000000D+00 + 3 46 3 46 0.12111955382287D+03 0.00000000000000D+00 + 1 47 3 46 0.18069400296059D+00 -0.51213089825152D-18 + 2 47 3 46 0.20439597042973D+00 -0.87337913979106D-18 + 3 47 3 46 -0.62710495305077D+00 0.34324356881575D-16 + 1 48 3 46 -0.25450899472504D+00 0.27101330705512D-16 + 2 48 3 46 -0.33525327094947D+00 0.39607432037239D-16 + 3 48 3 46 -0.87719096127326D+00 0.99979812675041D-16 + 1 49 3 46 0.94617811102770D-02 -0.27772455743625D-16 + 2 49 3 46 0.49505833736296D-01 0.40009110019963D-16 + 3 49 3 46 0.24492796035845D+00 -0.39993090874506D-16 + 1 50 3 46 0.35757827279206D-01 0.76999048770248D-16 + 2 50 3 46 -0.13549678598456D+01 0.13694068913222D-16 + 3 50 3 46 -0.11313505286587D+01 0.47846403600330D-17 + 1 51 3 46 -0.52011348209477D+00 0.23285008371594D-17 + 2 51 3 46 -0.59323179457402D+00 0.57147860720236D-16 + 3 51 3 46 -0.39910233886038D+00 -0.97409777168603D-16 + 1 52 3 46 0.21034855301276D+00 -0.12059782333401D-16 + 2 52 3 46 -0.37174795431074D-01 0.98640558252827D-16 + 3 52 3 46 -0.18536809697929D+00 0.12446232495030D-15 + 1 53 3 46 -0.45818229504203D+00 -0.66169530672301D-19 + 2 53 3 46 -0.48522302031412D+00 0.40702959539201D-16 + 3 53 3 46 -0.50913110257273D+00 -0.10194154469931D-15 + 1 54 3 46 -0.13901670395537D+02 0.97149613788337D-17 + 2 54 3 46 -0.14345599579921D+02 0.36400985287710D-16 + 3 54 3 46 -0.26367025656392D+02 -0.11753382119492D-15 + 1 55 3 46 0.53763771560484D-01 0.29361638588262D-16 + 2 55 3 46 -0.26868741007231D+00 0.54103206170976D-16 + 3 55 3 46 0.27420601099828D+00 -0.21998857203813D-15 + 1 56 3 46 0.34261208178817D+00 -0.11097361939338D-17 + 2 56 3 46 0.14341331282464D+00 0.45028135631693D-17 + 3 56 3 46 -0.31513249573964D+00 -0.80713130284830D-16 + 1 57 3 46 0.52633044411417D-01 0.91833391412550D-17 + 2 57 3 46 0.99437535727201D-01 -0.40317384835007D-18 + 3 57 3 46 -0.22821706536484D+00 -0.10936745376263D-15 + 1 58 3 46 0.22985401946666D+00 0.10390589850654D-16 + 2 58 3 46 -0.14284829732331D+00 -0.21367711867700D-17 + 3 58 3 46 0.11250902439584D+00 -0.24304087686225D-15 + 1 59 3 46 -0.12057846732557D+00 -0.34280461243565D-17 + 2 59 3 46 -0.10055451728177D+00 0.11842992465224D-17 + 3 59 3 46 -0.21575497152441D+00 0.27782439233721D-15 + 1 60 3 46 0.79111691528172D+00 0.39447434260554D-17 + 2 60 3 46 0.25874532646368D+01 0.13886344827260D-17 + 3 60 3 46 -0.19446621466388D+01 0.77160548845927D-15 + 1 61 3 46 0.12980637146702D+01 -0.23955857472155D-16 + 2 61 3 46 -0.32644467995037D+01 0.51211528496156D-17 + 3 61 3 46 -0.32375816820263D+01 0.31643536342368D-15 + 1 62 3 46 -0.14766123034724D+01 0.13454355707511D-16 + 2 62 3 46 -0.31360063028185D+01 0.52495629306215D-18 + 3 62 3 46 -0.32451830657095D+01 -0.22503651257885D-15 + 1 63 3 46 -0.15222885050610D+01 -0.33878540796801D-16 + 2 63 3 46 0.31255487756682D+01 -0.71543354390924D-17 + 3 63 3 46 -0.29367943623405D+01 0.77608116159034D-16 + 1 64 3 46 0.59872147645348D+01 0.46108971496745D-17 + 2 64 3 46 -0.11989383012938D+01 -0.30700096408846D-16 + 3 64 3 46 -0.61191765798691D+01 0.12472731417339D-15 + 1 65 3 46 -0.15548126048236D+00 0.75611799395763D-17 + 2 65 3 46 -0.64771781666689D+00 0.22752194224643D-16 + 3 65 3 46 0.34079756875250D+00 0.87626064352863D-15 + 1 1 1 47 -0.58364062511925D+00 -0.12455571185738D-15 + 2 1 1 47 -0.65896889737925D+00 -0.12571563433422D-16 + 3 1 1 47 0.74948867391113D+00 -0.59593719632586D-17 + 1 2 1 47 0.31422049400924D+00 -0.15941582641646D-15 + 2 2 1 47 -0.35986694257035D+00 -0.39851614256628D-16 + 3 2 1 47 -0.17548457128180D+00 -0.68989016866481D-16 + 1 3 1 47 0.81947051681331D-01 -0.17303518830666D-15 + 2 3 1 47 0.17540967717463D+00 -0.22523755931384D-18 + 3 3 1 47 0.10458857416864D+00 0.20837705326395D-16 + 1 4 1 47 -0.63312078461237D+00 -0.18188550374212D-15 + 2 4 1 47 -0.51528742791333D+00 0.11987232269269D-16 + 3 4 1 47 0.44260789793588D+00 0.31479936019323D-16 + 1 5 1 47 0.24026317668267D+00 -0.24196618158577D-15 + 2 5 1 47 -0.12568042557563D+01 0.35366767404639D-16 + 3 5 1 47 0.19589691143570D+01 -0.27310576612605D-16 + 1 6 1 47 -0.28281032658509D+02 -0.39974603598512D-16 + 2 6 1 47 -0.14657929762345D+02 -0.15926926243757D-17 + 3 6 1 47 0.14256821798390D+02 -0.17487560451294D-16 + 1 7 1 47 -0.78153175645181D+00 -0.12825648333104D-15 + 2 7 1 47 -0.46840841101349D+00 -0.18701326883482D-18 + 3 7 1 47 0.53730740550124D+00 0.11183120087910D-16 + 1 8 1 47 0.24071006525500D+00 0.36009983084105D-16 + 2 8 1 47 -0.29803704164043D+00 0.43398935212962D-16 + 3 8 1 47 -0.44122789176326D+00 0.17823392926841D-16 + 1 9 1 47 -0.11874443038823D+00 0.20971230957243D-15 + 2 9 1 47 0.12365796421604D+00 -0.76960897261796D-16 + 3 9 1 47 0.80597005297445D-01 -0.28787443710269D-17 + 1 10 1 47 -0.24785948145177D+00 0.23115673484702D-16 + 2 10 1 47 -0.14675843406443D+00 -0.60678560942836D-16 + 3 10 1 47 0.11878586879504D+00 -0.24608186202203D-17 + 1 11 1 47 -0.30638988320256D+01 -0.23394433997214D-15 + 2 11 1 47 0.13515021593717D+01 -0.10611804155071D-15 + 3 11 1 47 0.31640814690755D+01 -0.36804021881952D-18 + 1 12 1 47 -0.32157297915033D+01 -0.17980297058310D-15 + 2 12 1 47 -0.12612871728019D+01 0.20986797105815D-16 + 3 12 1 47 -0.37358331173980D+01 -0.45321667035435D-17 + 1 13 1 47 -0.21132000918250D+00 -0.15033644477915D-15 + 2 13 1 47 0.71961574256988D-01 -0.16765714181794D-16 + 3 13 1 47 0.13055966252282D+00 0.64992693757589D-18 + 1 14 1 47 -0.23633934167008D+00 0.31910852956229D-16 + 2 14 1 47 -0.14168161790001D+00 0.26610955802896D-16 + 3 14 1 47 -0.90666799791500D-01 -0.68819799278594D-17 + 1 15 1 47 -0.30001519778860D+01 -0.17397444944364D-15 + 2 15 1 47 -0.12254845032310D+01 -0.54601616219075D-17 + 3 15 1 47 0.30660005531584D+01 -0.10853409835578D-17 + 1 16 1 47 -0.50259411538244D+00 0.61424399362172D-16 + 2 16 1 47 0.35059274663601D+00 -0.56050464064586D-16 + 3 16 1 47 -0.49922300162289D+00 0.12435942654596D-16 + 1 17 1 47 0.23662232486672D+00 0.16409553311108D-15 + 2 17 1 47 -0.11423776684105D-01 -0.68354380671636D-18 + 3 17 1 47 0.94824085324155D-02 -0.49157325358602D-17 + 1 18 1 47 0.12148402283879D+00 0.20655858948930D-15 + 2 18 1 47 0.29451899344543D+00 0.42049922974501D-16 + 3 18 1 47 -0.21488924759002D+00 -0.46398563570487D-16 + 1 19 1 47 -0.39640379417135D+00 -0.15416452005424D-15 + 2 19 1 47 0.80045650826027D+00 -0.26803068205507D-16 + 3 19 1 47 -0.51417559201220D+00 0.20154386863327D-16 + 1 20 1 47 0.27912912720102D+00 0.17559730273506D-15 + 2 20 1 47 0.33872008325705D+00 -0.19728211492267D-17 + 3 20 1 47 0.29916503793232D+00 0.42346816052148D-17 + 1 21 1 47 -0.79645524878653D+00 -0.26339882308590D-15 + 2 21 1 47 0.38632799622838D+00 0.23861010679558D-17 + 3 21 1 47 -0.36639941053524D+00 -0.26980354449643D-16 + 1 22 1 47 -0.24353371012175D+02 -0.14864991709175D-15 + 2 22 1 47 0.22245450246926D+02 -0.27521422020071D-16 + 3 22 1 47 -0.14751333435336D+02 -0.16225401012463D-16 + 1 23 1 47 0.19042103809357D+00 -0.17428367242086D-16 + 2 23 1 47 -0.28361053495241D+00 -0.39532028040039D-16 + 3 23 1 47 -0.13762305616936D+00 -0.36053408985328D-16 + 1 24 1 47 -0.22877488748024D+00 -0.21027036057724D-15 + 2 24 1 47 -0.15007314540031D+00 -0.41898895747687D-18 + 3 24 1 47 0.15578959509998D+00 -0.88405924111125D-16 + 1 25 1 47 -0.29148046783835D+01 -0.68800104079041D-16 + 2 25 1 47 0.31270947786230D+01 -0.26064308231913D-17 + 3 25 1 47 0.11584240695734D+01 -0.44281578758806D-17 + 1 26 1 47 -0.27692148443529D+00 -0.43380243381975D-16 + 2 26 1 47 0.14976597231751D+00 0.82696629714492D-18 + 3 26 1 47 -0.19607991922539D-01 -0.14136876617440D-16 + 1 27 1 47 -0.32206381252867D+01 0.13373454221290D-15 + 2 27 1 47 -0.32345058521663D+01 -0.40105118989294D-18 + 3 27 1 47 -0.16017402743485D+01 0.93090522941407D-16 + 1 28 1 47 -0.22012489406827D+00 -0.32054018625484D-15 + 2 28 1 47 0.82223371077731D-01 0.12084791492948D-17 + 3 28 1 47 -0.10226835393024D+00 0.58798719801549D-16 + 1 29 1 47 -0.31127751678940D+01 -0.52370489413301D-16 + 2 29 1 47 -0.31321845540439D+01 0.14267095396730D-18 + 3 29 1 47 0.12076686035773D+01 -0.63841327754704D-16 + 1 30 1 47 -0.11821621565578D+00 -0.11413554080385D-15 + 2 30 1 47 -0.24928118504911D+00 -0.86314369179764D-18 + 3 30 1 47 -0.11779011964277D+00 -0.81639142315412D-16 + 1 31 1 47 -0.28051599479846D+01 -0.23705327314646D-15 + 2 31 1 47 0.32779236897385D+01 -0.74504047641386D-17 + 3 31 1 47 -0.20031063282269D+01 0.84205256127583D-16 + 1 32 1 47 0.43428936181686D-01 -0.33183503389285D-16 + 2 32 1 47 -0.16931048991710D+01 0.22355499543283D-18 + 3 32 1 47 -0.13093678493619D+01 0.50453794759115D-16 + 1 33 1 47 -0.17175783798409D+00 0.97741814735536D-16 + 2 33 1 47 0.33826748421716D+00 -0.15769673683407D-16 + 3 33 1 47 0.46034884881434D+00 -0.15378749930260D-16 + 1 34 1 47 -0.49336914517857D+00 -0.32430727670000D-16 + 2 34 1 47 0.43441998613116D+00 -0.21858264792077D-17 + 3 34 1 47 0.50939446161318D+00 -0.36583764034380D-16 + 1 35 1 47 0.26686550422134D+00 0.13473408224864D-15 + 2 35 1 47 0.10707045324182D+00 -0.63289278173011D-17 + 3 35 1 47 0.20825616100107D-01 0.49154860071889D-17 + 1 36 1 47 -0.24223590393392D+02 0.77536420065665D-16 + 2 36 1 47 0.11927098542457D+02 -0.10144760080178D-16 + 3 36 1 47 0.13529215902066D+02 0.85113775793047D-17 + 1 37 1 47 0.62025028896420D-02 -0.12367297861122D-16 + 2 37 1 47 -0.37197994347043D+00 -0.36267849376610D-17 + 3 37 1 47 0.23104945061832D+00 0.37707944132787D-16 + 1 38 1 47 0.62632122828490D+00 0.15045391756356D-16 + 2 38 1 47 0.83325922317388D+00 -0.19213588686262D-17 + 3 38 1 47 -0.78293220003702D+00 -0.66254902437838D-17 + 1 39 1 47 -0.81083552164948D+00 0.13119235829262D-15 + 2 39 1 47 0.54032163431437D+00 0.33007342076253D-17 + 3 39 1 47 0.44096668991251D+00 -0.33097947113666D-16 + 1 40 1 47 -0.12166211096925D+00 -0.12967517846260D-17 + 2 40 1 47 -0.63431380755932D-02 -0.25943045810123D-17 + 3 40 1 47 0.12354351356587D-01 0.71374861396960D-17 + 1 41 1 47 -0.19511828925899D+00 -0.14863724878929D-16 + 2 41 1 47 0.36698199332301D-01 0.20764582740947D-17 + 3 41 1 47 -0.13360427838615D+00 -0.16120960678811D-18 + 1 42 1 47 0.21493144039402D+00 0.14647758530931D-16 + 2 42 1 47 -0.61638313884036D+00 -0.28578611677691D-17 + 3 42 1 47 0.35798312713401D+00 -0.77628113366556D-17 + 1 43 1 47 -0.54947314096177D+00 -0.29961762624721D-16 + 2 43 1 47 0.45780525994135D+00 -0.13782414738324D-16 + 3 43 1 47 -0.14226339989857D+00 0.13320058015289D-16 + 1 44 1 47 0.16147086050100D+01 0.11379983476295D-16 + 2 44 1 47 0.11525350264607D-01 -0.39622246839554D-17 + 3 44 1 47 0.25656366926326D-01 0.43906028944420D-17 + 1 45 1 47 -0.19374587556379D+00 -0.83593133007949D-17 + 2 45 1 47 0.24726760963584D-01 -0.25981793115833D-17 + 3 45 1 47 -0.28052321328861D-01 0.22946133238399D-18 + 1 46 1 47 -0.56483248397148D+00 -0.34349800040272D-17 + 2 46 1 47 0.30991150850772D+00 -0.80544446299843D-19 + 3 46 1 47 0.18069400296059D+00 0.51213089825152D-18 + 1 47 1 47 0.11892909311263D+03 0.00000000000000D+00 + 2 47 1 47 0.68310894103203D+00 0.00000000000000D+00 + 3 47 1 47 0.28802566016956D+01 0.00000000000000D+00 + 1 48 1 47 0.20033384962361D+00 -0.88086210309504D-16 + 2 48 1 47 -0.15681017887169D+00 0.24949548049795D-16 + 3 48 1 47 0.24696374662159D-02 -0.65849116635705D-17 + 1 49 1 47 -0.29770639034202D+00 -0.73969408558848D-16 + 2 49 1 47 -0.43245298590620D+00 -0.29271039546905D-16 + 3 49 1 47 -0.53882773265771D+00 0.17031134211040D-16 + 1 50 1 47 0.33793601791265D+00 -0.91187282707144D-16 + 2 50 1 47 0.17793550258318D+01 0.41546869558908D-17 + 3 50 1 47 0.16233365719528D+01 0.12658003046588D-16 + 1 51 1 47 0.57599511950999D+00 -0.10256891132699D-15 + 2 51 1 47 -0.38139056523924D+00 -0.27264806947660D-16 + 3 51 1 47 -0.29550212064911D+00 -0.48704526497444D-16 + 1 52 1 47 -0.80985736801165D+00 0.12485896004637D-15 + 2 52 1 47 -0.52165191449956D+00 -0.43730042014577D-17 + 3 52 1 47 -0.28684620462766D+00 0.23970960009948D-16 + 1 53 1 47 0.11542738827355D+00 0.14738877850611D-15 + 2 53 1 47 -0.26119564154638D+00 0.28996452447751D-16 + 3 53 1 47 0.17250536151424D+00 -0.64551254379665D-17 + 1 54 1 47 0.21582940437261D+00 0.43835247419234D-16 + 2 54 1 47 0.43846442122255D+00 -0.16173913059147D-16 + 3 54 1 47 -0.32434742287265D+00 -0.17883254832646D-16 + 1 55 1 47 -0.27022189572521D+02 -0.23470689938408D-15 + 2 55 1 47 -0.16629379756977D+02 0.30822036634965D-17 + 3 55 1 47 -0.14835666597383D+02 0.35469422138501D-16 + 1 56 1 47 -0.42519676728862D+00 -0.13910972171392D-15 + 2 56 1 47 -0.34261208178816D+00 0.24563664726928D-16 + 3 56 1 47 0.10890786888940D+00 -0.88398693829251D-17 + 1 57 1 47 -0.20198582307324D-01 0.33080671187465D-16 + 2 57 1 47 0.16133490743933D-01 -0.73889621236525D-17 + 3 57 1 47 -0.89382574095878D-01 -0.20831465664637D-16 + 1 58 1 47 -0.42568070033698D+00 -0.94750869036187D-17 + 2 58 1 47 0.22985401946666D+00 0.21085214819064D-16 + 3 58 1 47 0.15638035851824D-01 0.60068057963311D-17 + 1 59 1 47 -0.23349397939516D-02 -0.54048350180992D-16 + 2 59 1 47 0.77343943757405D-01 0.13089163428897D-16 + 3 59 1 47 0.11767243478525D+00 0.22330617547204D-16 + 1 60 1 47 0.36035073432242D+01 -0.25381173234006D-16 + 2 60 1 47 -0.14766123034724D+01 -0.35392864516011D-16 + 3 60 1 47 -0.16287765163973D+01 -0.45382630826163D-17 + 1 61 1 47 0.30753321824938D+01 0.14798914144588D-17 + 2 61 1 47 0.10982907017704D+01 0.15724792196736D-16 + 3 61 1 47 -0.11033339330700D+01 0.25755226790064D-16 + 1 62 1 47 0.33326485128250D+01 -0.52061746859015D-17 + 2 62 1 47 -0.79111691528172D+00 -0.74847264339193D-17 + 3 62 1 47 0.22422150556930D+01 0.17587378163922D-16 + 1 63 1 47 0.31882659330409D+01 -0.82420252951263D-16 + 2 63 1 47 0.13686463220819D+01 0.18600978550430D-16 + 3 63 1 47 0.14011878085562D+01 -0.36397460572849D-16 + 1 64 1 47 -0.32913855200115D+01 -0.31348722148465D-15 + 2 64 1 47 -0.11902213073032D+01 -0.37747552940677D-16 + 3 64 1 47 -0.54552158771248D+01 0.74977398795144D-17 + 1 65 1 47 0.64172853416074D+00 0.58680898540077D-16 + 2 65 1 47 -0.56679916905530D+00 -0.27218995217638D-16 + 3 65 1 47 -0.41799667554709D-01 0.19682672502256D-16 + 1 1 2 47 -0.45615503776575D+00 -0.12571563433422D-16 + 2 1 2 47 -0.93113972708093D+00 -0.10199892887316D-15 + 3 1 2 47 0.61830381521060D+00 -0.16580995226424D-16 + 1 2 2 47 0.29825601567371D-02 -0.39851614256628D-16 + 2 2 2 47 0.10626880733348D+00 0.10225880477301D-15 + 3 2 2 47 -0.18019124741021D+00 -0.35963936540600D-16 + 1 3 2 47 -0.24610974420285D+00 -0.22523755931384D-18 + 2 3 2 47 0.53148809985974D+00 0.79395501614043D-16 + 3 3 2 47 0.24018265599631D+00 -0.89444126319821D-17 + 1 4 2 47 -0.63253059845948D+00 0.11987232269269D-16 + 2 4 2 47 -0.50206812739809D+00 -0.84276753650931D-16 + 3 4 2 47 0.46177411275870D+00 -0.14929783949897D-16 + 1 5 2 47 0.69344548756159D+00 0.35366767404639D-16 + 2 5 2 47 -0.11782400519076D+01 0.14595810837372D-15 + 3 5 2 47 0.15289918852252D+01 -0.10188190501419D-16 + 1 6 2 47 -0.14992323709904D+02 -0.15926926243757D-17 + 2 6 2 47 -0.25101178599709D+02 0.12418167130149D-15 + 3 6 2 47 0.12776995690579D+02 0.11291395387099D-16 + 1 7 2 47 -0.37756050303363D+00 -0.18701326883482D-18 + 2 7 2 47 -0.21332075910505D+00 -0.21914666427207D-16 + 3 7 2 47 0.40158016642122D+00 -0.57312208082543D-17 + 1 8 2 47 -0.24324448070264D+00 0.43398935212962D-16 + 2 8 2 47 0.62299032448475D+00 -0.34051789374963D-16 + 3 8 2 47 0.26491264012522D+00 0.30964468325803D-16 + 1 9 2 47 -0.56111524358577D-01 -0.76960897261796D-16 + 2 9 2 47 0.28004815274248D-01 0.17545667213096D-15 + 3 9 2 47 0.23773955807573D+00 0.32400901135083D-16 + 1 10 2 47 0.11771011529336D+00 -0.60678560942836D-16 + 2 10 2 47 0.17176138476533D-01 -0.34513110640015D-16 + 3 10 2 47 0.11438150796612D+00 0.65930364109383D-17 + 1 11 2 47 -0.13211942367618D+01 -0.10611804155071D-15 + 2 11 2 47 0.31311444326210D+01 0.57226538446789D-16 + 3 11 2 47 0.13319450553958D+01 -0.28252417747638D-16 + 1 12 2 47 0.12482638357656D+01 0.20986797105815D-16 + 2 12 2 47 0.28423411136097D+01 -0.24604205468975D-15 + 3 12 2 47 0.12067952504781D+01 -0.35786563745897D-16 + 1 13 2 47 -0.80742365490619D-01 -0.16765714181794D-16 + 2 13 2 47 -0.42718762411065D-01 -0.12688197062469D-16 + 3 13 2 47 -0.11189461027629D+00 0.24208844706171D-16 + 1 14 2 47 0.88968340529829D-01 0.26610955802896D-16 + 2 14 2 47 -0.74228177386479D-01 -0.28188054341172D-16 + 3 14 2 47 -0.53660734478791D-01 -0.27800321050336D-16 + 1 15 2 47 0.14264458797104D+01 -0.54601616219075D-17 + 2 15 2 47 0.31732604423891D+01 -0.15457869304923D-15 + 3 15 2 47 -0.12061807511854D+01 -0.33908185425316D-16 + 1 16 2 47 0.27401375196434D+00 -0.56050464064586D-16 + 2 16 2 47 -0.62129055617945D+00 -0.19503427609993D-16 + 3 16 2 47 0.76511502303098D-01 0.15422748032414D-17 + 1 17 2 47 0.11555303207962D-01 -0.68354380671636D-18 + 2 17 2 47 0.27493805249823D+00 -0.27984834398974D-16 + 3 17 2 47 0.51697840507665D-01 -0.24939405010735D-16 + 1 18 2 47 0.20189496355114D+00 0.42049922974501D-16 + 2 18 2 47 0.33670670103112D+00 -0.34431742203189D-17 + 3 18 2 47 -0.33929061429275D+00 -0.75708884001304D-16 + 1 19 2 47 0.59823138478369D+00 -0.26803068205507D-16 + 2 19 2 47 -0.60193948425331D+00 0.27401707355895D-15 + 3 19 2 47 0.69117859893013D+00 0.13207636505344D-16 + 1 20 2 47 0.35569019419802D+00 -0.19728211492267D-17 + 2 20 2 47 0.44715972523503D+00 0.30765117717360D-15 + 3 20 2 47 0.16366981488135D+00 0.15167476557090D-16 + 1 21 2 47 0.49952396734700D+00 0.23861010679558D-17 + 2 21 2 47 -0.55330131078287D+00 0.19530363393198D-15 + 3 21 2 47 0.49151781919568D+00 0.24599713848199D-16 + 1 22 2 47 0.17151064833579D+02 -0.27521422020071D-16 + 2 22 2 47 -0.25943254441570D+02 -0.13279473789753D-15 + 3 22 2 47 0.16509815584852D+02 -0.36291264188888D-16 + 1 23 2 47 -0.42205070125685D+00 -0.39532028040039D-16 + 2 23 2 47 0.23490982432093D+00 -0.21053456238874D-15 + 3 23 2 47 0.40212139172870D+00 -0.12341963686708D-16 + 1 24 2 47 -0.96293916460598D-01 -0.41898895747687D-18 + 2 24 2 47 -0.23563032171867D+00 -0.61993043454735D-16 + 3 24 2 47 -0.10511726601206D+00 -0.67762941189077D-16 + 1 25 2 47 0.30637658912080D+01 -0.26064308231913D-17 + 2 25 2 47 -0.31543092489251D+01 -0.42547483478076D-16 + 3 25 2 47 -0.11316458786832D+01 -0.76610947231384D-16 + 1 26 2 47 0.10585392237338D+00 0.82696629714492D-18 + 2 26 2 47 -0.21107489075072D+00 -0.14641248028577D-15 + 3 26 2 47 -0.45686340930219D-01 -0.29835521972054D-16 + 1 27 2 47 -0.30400799938289D+01 -0.40105118989294D-18 + 2 27 2 47 -0.29219202594767D+01 -0.26647647196848D-15 + 3 27 2 47 -0.14454054486640D+01 0.18463309532554D-16 + 1 28 2 47 -0.41272559615122D-01 0.12084791492948D-17 + 2 28 2 47 0.81916361108248D-01 0.19572457842834D-15 + 3 28 2 47 0.15534832070322D+00 0.39318553497902D-17 + 1 29 2 47 -0.32191059477274D+01 0.14267095396730D-18 + 2 29 2 47 -0.30730874511020D+01 0.30687731526302D-16 + 3 29 2 47 0.13634437152049D+01 -0.50634243059220D-18 + 1 30 2 47 -0.13987575062728D+00 -0.86314369179764D-18 + 2 30 2 47 -0.26127655378421D+00 -0.81490177631915D-16 + 3 30 2 47 -0.46826809137956D-01 0.97033055248807D-16 + 1 31 2 47 0.26899078430667D+01 -0.74504047641386D-17 + 2 31 2 47 -0.30775016116620D+01 -0.14875052935521D-15 + 3 31 2 47 0.11485207674171D+01 -0.18744069692354D-16 + 1 32 2 47 0.12590578526660D+00 0.22355499543283D-18 + 2 32 2 47 -0.11150142372855D+01 -0.16303156737237D-15 + 3 32 2 47 -0.12676911053746D+01 0.66414979646776D-17 + 1 33 2 47 0.53061614381881D+00 -0.15769673683407D-16 + 2 33 2 47 -0.86409040711021D+00 0.16052222025420D-15 + 3 33 2 47 -0.27618358262648D+00 0.38941367223245D-17 + 1 34 2 47 0.64346728371831D-01 -0.21858264792077D-17 + 2 34 2 47 -0.13525500815598D+00 0.34167205312939D-16 + 3 34 2 47 -0.50016541024873D+00 0.13087935449759D-16 + 1 35 2 47 -0.42196927431048D-02 -0.63289278173011D-17 + 2 35 2 47 0.32802942366760D+00 0.15697204408620D-15 + 3 35 2 47 0.48541681642130D-01 -0.21420845150454D-16 + 1 36 2 47 0.12618695132517D+02 -0.10144760080178D-16 + 2 36 2 47 -0.25485998875877D+02 -0.62131981918129D-15 + 3 36 2 47 -0.14949212088362D+02 -0.30589829827948D-16 + 1 37 2 47 -0.26522545003791D+00 -0.36267849376610D-17 + 2 37 2 47 0.12834338893619D+00 -0.47006955374616D-16 + 3 37 2 47 0.16842214387474D+00 -0.96675672891042D-16 + 1 38 2 47 0.61070928979987D+00 -0.19213588686262D-17 + 2 38 2 47 0.10055228481423D+01 -0.26979952507051D-15 + 3 38 2 47 -0.71273818903616D+00 -0.25048900108623D-16 + 1 39 2 47 0.57259088947737D+00 0.33007342076253D-17 + 2 39 2 47 -0.48945075687645D+00 0.20976303238917D-15 + 3 39 2 47 -0.56817747023680D+00 -0.37574244445771D-16 + 1 40 2 47 0.55066654507338D-02 -0.25943045810123D-17 + 2 40 2 47 -0.12424139542536D+00 -0.59222023475507D-17 + 3 40 2 47 0.36608589249550D-01 -0.16385887987304D-17 + 1 41 2 47 0.61681663058351D-03 0.20764582740947D-17 + 2 41 2 47 -0.12417076851961D+00 0.20417808732613D-18 + 3 41 2 47 -0.10534837771692D+00 0.13391638364678D-17 + 1 42 2 47 0.61638313884036D+00 -0.28578611677691D-17 + 2 42 2 47 0.12036259698951D+01 -0.46536595553620D-17 + 3 42 2 47 0.45036500072236D+00 0.23487321380313D-17 + 1 43 2 47 0.45780525994135D+00 -0.13782414738324D-16 + 2 43 2 47 -0.12788006633506D+00 -0.33902485097218D-17 + 3 43 2 47 -0.28769115120802D+00 0.10454315328048D-19 + 1 44 2 47 -0.60412417775755D-01 -0.39622246839554D-17 + 2 44 2 47 -0.18124573639915D+00 0.61572122774427D-17 + 3 44 2 47 0.25756283878900D-01 -0.16589960974384D-17 + 1 45 2 47 -0.38138444980193D-01 -0.25981793115833D-17 + 2 45 2 47 -0.40246564189427D+00 -0.20973508666434D-17 + 3 45 2 47 -0.88364560270814D-01 0.26263065039858D-17 + 1 46 2 47 -0.30991150850772D+00 -0.80544446299843D-19 + 2 46 2 47 -0.16738313558674D+00 0.86608935004319D-17 + 3 46 2 47 0.20439597042973D+00 0.87337913979106D-18 + 1 47 2 47 0.68310894103203D+00 0.00000000000000D+00 + 2 47 2 47 0.12110065699664D+03 0.00000000000000D+00 + 3 47 2 47 -0.11969682585368D+00 0.00000000000000D+00 + 1 48 2 47 -0.17379472240560D+00 0.24949548049795D-16 + 2 48 2 47 0.16229330172928D+00 -0.18198901800881D-17 + 3 48 2 47 -0.12118996449944D-01 0.25675918866197D-16 + 1 49 2 47 -0.32150151371740D+00 -0.29271039546905D-16 + 2 49 2 47 -0.31887366055225D+00 0.71194758537905D-16 + 3 49 2 47 -0.55610764499212D+00 0.18678533534917D-16 + 1 50 2 47 0.28590715431927D+00 0.41546869558908D-17 + 2 50 2 47 0.12265406544990D+01 -0.19062919171434D-15 + 3 50 2 47 0.17065758913518D+01 -0.16789408594895D-16 + 1 51 2 47 -0.35996202666298D+00 -0.27264806947660D-16 + 2 51 2 47 0.18898539371497D+00 -0.49530639173758D-16 + 3 51 2 47 0.25867275679239D+00 -0.90653429550299D-18 + 1 52 2 47 -0.33968534256652D+00 -0.43730042014577D-17 + 2 52 2 47 -0.60975442156202D+00 -0.23758131040734D-15 + 3 52 2 47 -0.14952538593818D+00 0.19528955974348D-16 + 1 53 2 47 -0.23882867257476D+00 0.28996452447751D-16 + 2 53 2 47 0.29163708009971D+00 -0.82744342096813D-16 + 3 53 2 47 -0.33313519872921D+00 -0.30854070437309D-16 + 1 54 2 47 0.28753091410638D+00 -0.16173913059147D-16 + 2 54 2 47 0.19033349414046D+00 0.11429211723726D-15 + 3 54 2 47 -0.15949537106224D+00 -0.23044451217802D-16 + 1 55 2 47 -0.17380976115390D+02 0.30822036634965D-17 + 2 55 2 47 -0.27760819090572D+02 -0.19906149936077D-15 + 3 55 2 47 -0.18445644366106D+02 -0.18617625798880D-17 + 1 56 2 47 0.15638035851829D-01 0.24563664726928D-16 + 2 56 2 47 -0.31513249573963D+00 -0.17160388694507D-15 + 3 56 2 47 0.51957007617258D+00 -0.86959929595424D-18 + 1 57 2 47 -0.14193478143411D+00 -0.73889621236525D-17 + 2 57 2 47 -0.19898996517371D+00 0.11549359094221D-15 + 3 57 2 47 -0.10413342879518D+00 0.28996766047464D-17 + 1 58 2 47 -0.10890786888940D+00 0.21085214819064D-16 + 2 58 2 47 0.11250902439585D+00 0.12405618745227D-15 + 3 58 2 47 -0.51949986066785D+00 0.20284730611224D-17 + 1 59 2 47 -0.66047993622603D-01 0.13089163428897D-16 + 2 59 2 47 -0.26287299123699D+00 -0.15773295267860D-15 + 3 59 2 47 0.14387887629046D+00 -0.26654503124187D-17 + 1 60 2 47 0.16287765163973D+01 -0.35392864516011D-16 + 2 60 2 47 -0.32451830657095D+01 0.22550680412960D-15 + 3 60 2 47 -0.32987071675482D+01 -0.30502607723496D-17 + 1 61 2 47 -0.14950307013227D+01 0.15724792196736D-16 + 2 61 2 47 -0.31906510664380D+01 -0.41671857011224D-16 + 3 61 2 47 0.31475754789696D+01 -0.11063968718588D-17 + 1 62 2 47 0.22422150556930D+01 -0.74847264339193D-17 + 2 62 2 47 -0.19446621466388D+01 0.11578994019549D-15 + 3 62 2 47 0.37785239078169D+01 -0.26991101118746D-17 + 1 63 2 47 -0.12532163534033D+01 0.18600978550430D-16 + 2 63 2 47 -0.31017691541785D+01 0.79178331386621D-16 + 3 63 2 47 -0.31874796976435D+01 0.18078158974527D-17 + 1 64 2 47 -0.11024226193012D+01 -0.37747552940677D-16 + 2 64 2 47 0.12487046638453D+01 0.69797605450626D-16 + 3 64 2 47 -0.65632748910257D+00 0.18975152004469D-16 + 1 65 2 47 -0.25613440692053D+00 -0.27218995217638D-16 + 2 65 2 47 -0.50075250552093D+00 0.11908620482370D-15 + 3 65 2 47 0.26027499431462D+00 0.43258702464677D-17 + 1 1 3 47 0.58941207799972D+00 -0.59593719632586D-17 + 2 1 3 47 0.34781997433926D+00 -0.16580995226424D-16 + 3 1 3 47 -0.34062346733943D+00 0.11387982756050D-15 + 1 2 3 47 0.21516708156434D+00 -0.68989016866481D-16 + 2 2 3 47 -0.30197170554672D+00 -0.35963936540600D-16 + 3 2 3 47 0.31305621381462D-01 -0.20880252271403D-16 + 1 3 3 47 -0.10295060887454D+00 0.20837705326395D-16 + 2 3 3 47 0.20826631690892D+00 -0.89444126319821D-17 + 3 3 3 47 0.37092861818659D+00 -0.68348033923355D-16 + 1 4 3 47 0.28525463577358D+00 0.31479936019323D-16 + 2 4 3 47 0.49069469237906D+00 -0.14929783949897D-16 + 3 4 3 47 -0.79567018427530D+00 0.80331791332866D-16 + 1 5 3 47 0.69836127851069D+00 -0.27310576612605D-16 + 2 5 3 47 -0.87578480095378D+00 -0.10188190501419D-16 + 3 5 3 47 0.19692102717770D+01 -0.12230142860108D-15 + 1 6 3 47 0.13867197110953D+02 -0.17487560451294D-16 + 2 6 3 47 0.12371596783117D+02 0.11291395387099D-16 + 3 6 3 47 -0.24532491806041D+02 -0.39650641456754D-15 + 1 7 3 47 0.31197724830339D+00 0.11183120087910D-16 + 2 7 3 47 0.29558449714713D+00 -0.57312208082543D-17 + 3 7 3 47 -0.25326590528758D+00 0.65795644108772D-16 + 1 8 3 47 -0.39930320110790D+00 0.17823392926841D-16 + 2 8 3 47 0.43699935314725D+00 0.30964468325803D-16 + 3 8 3 47 0.18654111657419D+00 -0.37371930745300D-15 + 1 9 3 47 -0.82043198351642D-01 -0.28787443710269D-17 + 2 9 3 47 -0.71194922581207D-01 0.32400901135083D-16 + 3 9 3 47 -0.16993298888397D+00 0.40845300101640D-15 + 1 10 3 47 0.12050740714423D+00 -0.24608186202203D-17 + 2 10 3 47 -0.15168666551705D+00 0.65930364109383D-17 + 3 10 3 47 -0.24793168041875D+00 -0.89448187929617D-16 + 1 11 3 47 0.33050853082271D+01 -0.36804021881952D-18 + 2 11 3 47 -0.12841378769088D+01 -0.28252417747638D-16 + 3 11 3 47 -0.29877680086003D+01 -0.11011943793884D-15 + 1 12 3 47 -0.35469120189637D+01 -0.45321667035435D-17 + 2 12 3 47 -0.10925016594282D+01 -0.35786563745897D-16 + 3 12 3 47 -0.33903977200178D+01 0.43851842130816D-15 + 1 13 3 47 0.10038897771306D+00 0.64992693757589D-18 + 2 13 3 47 0.11750953390600D+00 0.24208844706171D-16 + 3 13 3 47 -0.18948265496565D+00 0.15282015441375D-15 + 1 14 3 47 -0.10097204574324D+00 -0.68819799278594D-17 + 2 14 3 47 0.83074439382479D-01 -0.27800321050336D-16 + 3 14 3 47 -0.24639150368970D+00 -0.61040406838119D-15 + 1 15 3 47 0.31773514429869D+01 -0.10853409835578D-17 + 2 15 3 47 0.13470329229198D+01 -0.33908185425316D-16 + 3 15 3 47 -0.29954888535487D+01 -0.21175639913705D-16 + 1 16 3 47 -0.59033759901085D+00 0.12435942654596D-16 + 2 16 3 47 0.23675050006732D+00 0.15422748032414D-17 + 3 16 3 47 -0.87879839587781D+00 -0.98361069822428D-16 + 1 17 3 47 -0.31560473711001D-02 -0.49157325358602D-17 + 2 17 3 47 -0.19573453759546D-01 -0.24939405010735D-16 + 3 17 3 47 0.29525495854004D+00 0.45583486992445D-16 + 1 18 3 47 -0.16615110843061D+00 -0.46398563570487D-16 + 2 18 3 47 -0.64823888964956D-01 -0.75708884001304D-16 + 3 18 3 47 0.15446028503366D+00 -0.71004152607014D-16 + 1 19 3 47 -0.63674313804244D+00 0.20154386863327D-16 + 2 19 3 47 0.68264261748262D+00 0.13207636505344D-16 + 3 19 3 47 -0.37756417728968D+00 -0.12624556554669D-15 + 1 20 3 47 0.42098272698905D+00 0.42346816052148D-17 + 2 20 3 47 0.25348016079986D+00 0.15167476557090D-16 + 3 20 3 47 0.12123201124200D+00 -0.15058821359745D-15 + 1 21 3 47 -0.49338013526382D+00 -0.26980354449643D-16 + 2 21 3 47 0.49852977540938D+00 0.24599713848199D-16 + 3 21 3 47 -0.32116000110639D+00 0.94495104211865D-16 + 1 22 3 47 -0.13111602562201D+02 -0.16225401012463D-16 + 2 22 3 47 0.23403793604855D+02 -0.36291264188888D-16 + 3 22 3 47 -0.26966858017481D+02 0.60148429207365D-16 + 1 23 3 47 -0.30050836975060D+00 -0.36053408985328D-16 + 2 23 3 47 0.31592974345076D+00 -0.12341963686708D-16 + 3 23 3 47 0.55573036713751D+00 0.25383008039033D-15 + 1 24 3 47 -0.10790549971587D+00 -0.88405924111125D-16 + 2 24 3 47 0.44033202187165D-01 -0.67762941189077D-16 + 3 24 3 47 -0.18463012523090D-01 0.47565895369549D-16 + 1 25 3 47 -0.14205596556584D+01 -0.44281578758806D-17 + 2 25 3 47 0.12396011896155D+01 -0.76610947231384D-16 + 3 25 3 47 0.30306915079876D+01 -0.20963173487737D-17 + 1 26 3 47 0.11757710023595D+00 -0.14136876617440D-16 + 2 26 3 47 0.10726450908200D+00 -0.29835521972054D-16 + 3 26 3 47 0.37900726108885D-02 -0.73810426236467D-16 + 1 27 3 47 0.11397146903825D+01 0.93090522941407D-16 + 2 27 3 47 0.10540879121051D+01 0.18463309532554D-16 + 3 27 3 47 0.30580094079255D+01 0.51502892653833D-16 + 1 28 3 47 -0.14109272489711D+00 0.58798719801549D-16 + 2 28 3 47 -0.12818383142601D+00 0.39318553497902D-17 + 3 28 3 47 -0.10484951280541D+00 -0.87914571038402D-16 + 1 29 3 47 -0.14529028836111D+01 -0.63841327754704D-16 + 2 29 3 47 -0.12261362992760D+01 -0.50634243059220D-18 + 3 29 3 47 0.32532103886273D+01 -0.89947144290348D-16 + 1 30 3 47 0.72227401361731D-01 -0.81639142315412D-16 + 2 30 3 47 -0.20147194587619D+00 0.97033055248807D-16 + 3 30 3 47 -0.19873251756067D+00 -0.41054651330344D-17 + 1 31 3 47 0.11176717924403D+01 0.84205256127583D-16 + 2 31 3 47 -0.95452131471841D+00 -0.18744069692354D-16 + 3 31 3 47 0.26328894094708D+01 -0.18374737813093D-16 + 1 32 3 47 -0.35757827279211D-01 0.50453794759115D-16 + 2 32 3 47 -0.13549678598456D+01 0.66414979646776D-17 + 3 32 3 47 -0.11313505286587D+01 -0.26048879947501D-15 + 1 33 3 47 0.52011348209477D+00 -0.15378749930260D-16 + 2 33 3 47 -0.59323179457402D+00 0.38941367223245D-17 + 3 33 3 47 -0.39910233886038D+00 0.41459202623091D-16 + 1 34 3 47 0.25450899472504D+00 -0.36583764034380D-16 + 2 34 3 47 -0.33525327094947D+00 0.13087935449759D-16 + 3 34 3 47 -0.87719096127326D+00 -0.62803804666015D-16 + 1 35 3 47 -0.94617811102777D-02 0.49154860071889D-17 + 2 35 3 47 0.49505833736295D-01 -0.21420845150454D-16 + 3 35 3 47 0.24492796035845D+00 -0.19855848822415D-16 + 1 36 3 47 0.13901670395536D+02 0.85113775793047D-17 + 2 36 3 47 -0.14345599579921D+02 -0.30589829827948D-16 + 3 36 3 47 -0.26367025656392D+02 -0.78945943640076D-15 + 1 37 3 47 -0.53763771560473D-01 0.37707944132787D-16 + 2 37 3 47 -0.26868741007232D+00 -0.96675672891042D-16 + 3 37 3 47 0.27420601099830D+00 0.16855219725299D-15 + 1 38 3 47 -0.21034855301275D+00 -0.66254902437838D-17 + 2 38 3 47 -0.37174795431060D-01 -0.25048900108623D-16 + 3 38 3 47 -0.18536809697928D+00 -0.13611682261437D-15 + 1 39 3 47 0.45818229504203D+00 -0.33097947113666D-16 + 2 39 3 47 -0.48522302031412D+00 -0.37574244445771D-16 + 3 39 3 47 -0.50913110257273D+00 -0.17172310190019D-15 + 1 40 3 47 -0.52381069365462D-02 0.71374861396960D-17 + 2 40 3 47 0.69431513153943D-02 -0.16385887987304D-17 + 3 40 3 47 -0.11789925547314D+00 -0.62552333385603D-17 + 1 41 3 47 -0.78044554531756D-02 -0.16120960678811D-18 + 2 41 3 47 0.73131832143502D-01 0.13391638364678D-17 + 3 41 3 47 0.14870128380568D+01 0.13624768704544D-17 + 1 42 3 47 0.35798312713401D+00 -0.77628113366556D-17 + 2 42 3 47 -0.45036500072236D+00 0.23487321380313D-17 + 3 42 3 47 0.20435856490277D+00 -0.34713572379996D-16 + 1 43 3 47 0.14226339989857D+00 0.13320058015289D-16 + 2 43 3 47 0.28769115120802D+00 0.10454315328048D-19 + 3 43 3 47 -0.40548407098281D+00 0.25529551465850D-17 + 1 44 3 47 0.73096735208846D-01 0.43906028944420D-17 + 2 44 3 47 0.51528606358534D-01 -0.16589960974384D-17 + 3 44 3 47 -0.10723510414041D+00 0.83659586758566D-17 + 1 45 3 47 0.42250900489269D-02 0.22946133238399D-18 + 2 45 3 47 0.34209735405514D-01 0.26263065039858D-17 + 3 45 3 47 -0.25125029174602D+00 -0.22380673788308D-16 + 1 46 3 47 -0.18069400296059D+00 0.51213089825152D-18 + 2 46 3 47 0.20439597042973D+00 0.87337913979106D-18 + 3 46 3 47 -0.62710495305077D+00 -0.34324356881575D-16 + 1 47 3 47 0.28802566016956D+01 0.00000000000000D+00 + 2 47 3 47 -0.11969682585368D+00 0.00000000000000D+00 + 3 47 3 47 0.12111955382287D+03 0.00000000000000D+00 + 1 48 3 47 -0.10281033293596D+00 -0.65849116635705D-17 + 2 48 3 47 -0.98401233411655D-01 0.25675918866197D-16 + 3 48 3 47 0.26864894443220D+00 0.17980787147852D-15 + 1 49 3 47 -0.47577268331974D+00 0.17031134211040D-16 + 2 49 3 47 -0.59167202259456D+00 0.18678533534917D-16 + 3 49 3 47 -0.83525506489339D+00 0.44039550338595D-16 + 1 50 3 47 0.26317444518414D+00 0.12658003046588D-16 + 2 50 3 47 0.15198829841141D+01 -0.16789408594895D-16 + 3 50 3 47 0.11871324957381D+01 0.82252092131408D-17 + 1 51 3 47 -0.26938321812236D+00 -0.48704526497444D-16 + 2 51 3 47 0.34011013696973D+00 -0.90653429550299D-18 + 3 51 3 47 0.93208777468693D-01 0.56949262733246D-16 + 1 52 3 47 -0.35556774802707D+00 0.23970960009948D-16 + 2 52 3 47 -0.43526276143987D+00 0.19528955974348D-16 + 3 52 3 47 -0.85893846018717D-01 -0.72265996759945D-17 + 1 53 3 47 0.23038762429389D+00 -0.64551254379665D-17 + 2 53 3 47 -0.27476276805792D+00 -0.30854070437309D-16 + 3 53 3 47 0.15731667061840D+00 0.41485428388521D-16 + 1 54 3 47 -0.29934916374171D+00 -0.17883254832646D-16 + 2 54 3 47 -0.24748365031445D+00 -0.23044451217802D-16 + 3 54 3 47 0.62661665556898D+00 0.18443347052275D-15 + 1 55 3 47 -0.14558835678490D+02 0.35469422138501D-16 + 2 55 3 47 -0.17524480964126D+02 -0.18617625798880D-17 + 3 55 3 47 -0.26885952984624D+02 -0.70435151169109D-16 + 1 56 3 47 -0.22985401946665D+00 -0.88398693829251D-17 + 2 56 3 47 -0.14284829732332D+00 -0.86959929595424D-18 + 3 56 3 47 0.11250902439584D+00 -0.30866823310628D-15 + 1 57 3 47 0.12057846732557D+00 -0.20831465664637D-16 + 2 57 3 47 -0.10055451728177D+00 0.28996766047464D-17 + 3 57 3 47 -0.21575497152441D+00 0.26833775106560D-15 + 1 58 3 47 -0.34261208178817D+00 0.60068057963311D-17 + 2 58 3 47 0.14341331282464D+00 0.20284730611224D-17 + 3 58 3 47 -0.31513249573964D+00 -0.65733926536233D-16 + 1 59 3 47 -0.52633044411417D-01 0.22330617547204D-16 + 2 59 3 47 0.99437535727201D-01 -0.26654503124187D-17 + 3 59 3 47 -0.22821706536484D+00 -0.44252416931284D-15 + 1 60 3 47 0.14766123034724D+01 -0.45382630826163D-17 + 2 60 3 47 -0.31360063028185D+01 -0.30502607723496D-17 + 3 60 3 47 -0.32451830657095D+01 -0.16507548853140D-15 + 1 61 3 47 0.15222885050610D+01 0.25755226790064D-16 + 2 61 3 47 0.31255487756682D+01 -0.11063968718588D-17 + 3 61 3 47 -0.29367943623405D+01 0.41769288564959D-16 + 1 62 3 47 -0.79111691528172D+00 0.17587378163922D-16 + 2 62 3 47 0.25874532646369D+01 -0.26991101118746D-17 + 3 62 3 47 -0.19446621466388D+01 0.94467076098524D-17 + 1 63 3 47 -0.12980637146702D+01 -0.36397460572849D-16 + 2 63 3 47 -0.32644467995037D+01 0.18078158974527D-17 + 3 63 3 47 -0.32375816820263D+01 -0.30787136333865D-16 + 1 64 3 47 -0.59872147645343D+01 0.74977398795144D-17 + 2 64 3 47 -0.11992435443085D+01 0.18975152004469D-16 + 3 64 3 47 -0.61191765798692D+01 0.37821608428258D-15 + 1 65 3 47 0.15548126048232D+00 0.19682672502256D-16 + 2 65 3 47 -0.64991636464351D+00 0.43258702464677D-17 + 3 65 3 47 0.34079756875251D+00 -0.19266140948154D-15 + 1 1 1 48 -0.30031823137819D+01 -0.16023751088433D-15 + 2 1 1 48 0.30962339742664D+01 -0.52450920066488D-19 + 3 1 1 48 0.11823768965084D+01 0.17885510136430D-15 + 1 2 1 48 -0.20285354699657D+00 0.64835145279903D-16 + 2 2 1 48 -0.89658032623901D-01 0.67818788932191D-18 + 3 2 1 48 0.93528066163434D-01 -0.64251834901339D-16 + 1 3 1 48 -0.29949756481198D+01 0.11211874829843D-16 + 2 3 1 48 -0.30926262122503D+01 0.13082818017692D-17 + 3 3 1 48 -0.13678659944496D+01 -0.77129242351754D-17 + 1 4 1 48 -0.23862176796400D+00 0.18278830549379D-15 + 2 4 1 48 0.11390436163443D+00 0.36954017806839D-17 + 3 4 1 48 -0.86016099995362D-01 0.96444944941386D-16 + 1 5 1 48 -0.31805611728353D+01 -0.53519835321054D-16 + 2 5 1 48 -0.32919452336551D+01 0.22848539050610D-17 + 3 5 1 48 0.17990004975472D+01 0.43732466355427D-16 + 1 6 1 48 -0.24776983014886D+00 0.14766426378621D-15 + 2 6 1 48 0.73906612608216D-01 0.36746238347229D-17 + 3 6 1 48 0.14352455831500D+00 0.13911841117172D-16 + 1 7 1 48 -0.31818805466033D+01 0.15503260779721D-16 + 2 7 1 48 0.30751735322857D+01 -0.31100680316009D-17 + 3 7 1 48 -0.13625469848010D+01 0.00000000000000D+00 + 1 8 1 48 -0.22820373706449D+00 -0.21328643669224D-15 + 2 8 1 48 -0.78657874930479D-01 -0.26025604175033D-17 + 3 8 1 48 -0.11060314530731D+00 0.72411972828999D-16 + 1 9 1 48 0.47997529044098D+00 0.88661866954190D-17 + 2 9 1 48 0.32736140817283D+00 0.22653573527659D-17 + 3 9 1 48 -0.26610454512719D+00 -0.23834477390368D-16 + 1 10 1 48 -0.34841030513627D+00 0.43859719775493D-16 + 2 10 1 48 0.47660882281160D+00 0.22545110814483D-16 + 3 10 1 48 -0.43777978912025D+00 0.97311508241862D-16 + 1 11 1 48 -0.37498050423372D+00 -0.16397652718667D-15 + 2 11 1 48 0.49380935933888D+00 0.13309678501810D-17 + 3 11 1 48 -0.41799765230709D+00 0.34979965021202D-17 + 1 12 1 48 0.24400776122668D+00 0.12959746342856D-15 + 2 12 1 48 -0.13187086874698D-02 -0.20838957791735D-16 + 3 12 1 48 0.37230511438906D-01 -0.25975968416566D-16 + 1 13 1 48 -0.26420339423972D+02 -0.30244967186470D-16 + 2 13 1 48 0.14605098310296D+02 -0.33944849825349D-18 + 3 13 1 48 -0.14029655666361D+02 -0.20206908482788D-16 + 1 14 1 48 0.20201221094890D+00 -0.22624400617627D-15 + 2 14 1 48 -0.34304785153449D+00 0.46562393904868D-17 + 3 14 1 48 -0.33052259598518D+00 -0.24724639558443D-16 + 1 15 1 48 -0.77719381706603D+00 -0.65620972451380D-16 + 2 15 1 48 0.42176664241325D+00 -0.15911429157142D-16 + 3 15 1 48 -0.48063399579718D+00 0.41051652814516D-16 + 1 16 1 48 -0.29233488661134D+01 0.22946626959464D-15 + 2 16 1 48 0.12748485259548D+01 -0.99315884859904D-16 + 3 16 1 48 0.28728526686265D+01 -0.40173273708578D-19 + 1 17 1 48 -0.30470853174333D+01 0.35078035067009D-17 + 2 17 1 48 -0.13286275214552D+01 0.77902896201043D-16 + 3 17 1 48 -0.31172863636170D+01 0.36927071045522D-17 + 1 18 1 48 -0.23467698998718D+00 0.12167381567482D-15 + 2 18 1 48 0.12180751841965D+00 -0.43244502727802D-16 + 3 18 1 48 -0.96415435917295D-01 0.16391087939291D-17 + 1 19 1 48 -0.20352226633815D+00 0.10531309037379D-15 + 2 19 1 48 -0.10774984940754D-01 0.36791577993198D-17 + 3 19 1 48 0.12521758778296D+00 -0.56090120005904D-17 + 1 20 1 48 -0.30238806664967D+01 0.22079206717871D-15 + 2 20 1 48 0.12921767328817D+01 -0.21219740703654D-16 + 3 20 1 48 -0.32845967229457D+01 0.58629928458017D-17 + 1 21 1 48 -0.31052957392000D+01 -0.79937245702088D-16 + 2 21 1 48 -0.11850558323564D+01 0.30769889897713D-16 + 3 21 1 48 0.32289744110740D+01 0.14291426806999D-17 + 1 22 1 48 -0.21143668169989D+00 0.14931818293586D-15 + 2 22 1 48 0.46714702670666D+00 -0.79419079359245D-16 + 3 22 1 48 -0.37172800955782D+00 0.30823908274952D-17 + 1 23 1 48 -0.24757479388526D+00 0.31428704114924D-16 + 2 23 1 48 -0.43841709977764D-01 0.34152247197363D-16 + 3 23 1 48 -0.94115504274792D-01 0.33053279034643D-18 + 1 24 1 48 0.48538142032131D+00 -0.35063137849813D-16 + 2 24 1 48 -0.33034754534780D+00 0.32013499258452D-16 + 3 24 1 48 0.26829885043049D+00 0.20713831173489D-16 + 1 25 1 48 -0.39161458132897D+00 -0.34447298778008D-16 + 2 25 1 48 -0.39173006312076D+00 0.19466043764750D-16 + 3 25 1 48 0.47745269960844D+00 -0.46289598828617D-17 + 1 26 1 48 -0.39730649977230D+00 -0.11759542466655D-15 + 2 26 1 48 -0.46150686927485D+00 0.45438861125351D-17 + 3 26 1 48 0.50064688040607D+00 0.34890577663760D-16 + 1 27 1 48 0.28559695976660D+00 0.38765551989301D-16 + 2 27 1 48 -0.37134587379390D-01 0.18218786298622D-16 + 3 27 1 48 -0.31288499790049D-02 -0.19891545483858D-16 + 1 28 1 48 -0.25328120975725D+02 0.99806648856498D-16 + 2 28 1 48 -0.13400572938525D+02 0.16680099668811D-16 + 3 28 1 48 0.13149198839102D+02 0.19757778323404D-16 + 1 29 1 48 0.16030304388453D+00 0.96972262724255D-16 + 2 29 1 48 0.30651034623013D+00 -0.15958501980413D-16 + 3 29 1 48 0.20850740465840D+00 -0.39028595431228D-16 + 1 30 1 48 0.25002441018998D+00 -0.15326130991900D-18 + 2 30 1 48 -0.35525035041939D+00 -0.48310851706744D-16 + 3 30 1 48 -0.29589742680319D+00 -0.41330276425697D-16 + 1 31 1 48 -0.79080780410653D+00 -0.72496311950335D-16 + 2 31 1 48 -0.53313172251160D+00 0.54115394926393D-18 + 3 31 1 48 0.53886715642619D+00 -0.36500804524619D-17 + 1 32 1 48 0.28295565651853D+01 0.20374238506436D-15 + 2 32 1 48 -0.18739913392292D+01 0.37297601795202D-16 + 3 32 1 48 -0.13275629014228D+01 0.14206451137930D-16 + 1 33 1 48 0.32152539957641D+01 -0.13584479472547D-17 + 2 33 1 48 0.12454641439855D+01 -0.15749946462260D-16 + 3 33 1 48 -0.12172360738130D+01 -0.11978053572892D-16 + 1 34 1 48 0.30841850336173D+01 -0.84673162728290D-16 + 2 34 1 48 -0.12743152760817D+01 0.79560931425764D-17 + 3 34 1 48 0.13256739918059D+01 -0.31839361182279D-17 + 1 35 1 48 0.29685174375501D+01 0.83928147314434D-16 + 2 35 1 48 0.14116852895950D+01 -0.50472487710325D-17 + 3 35 1 48 0.12951198397229D+01 -0.32428887900909D-16 + 1 36 1 48 -0.19885450472412D-01 0.18334235053240D-15 + 2 36 1 48 -0.12899902445749D+00 -0.10478927584321D-16 + 3 36 1 48 -0.13569498302181D+00 0.32168162104355D-17 + 1 37 1 48 -0.40115266392874D-01 0.25214377721160D-16 + 2 37 1 48 0.34258093331183D-01 0.44688204554402D-17 + 3 37 1 48 -0.42487475494265D-01 0.23526463914850D-16 + 1 38 1 48 0.28208267547113D-01 -0.12242438450517D-16 + 2 38 1 48 -0.43402375418691D-01 -0.30587586909347D-16 + 3 38 1 48 0.46389530140494D-01 0.13789086026620D-16 + 1 39 1 48 -0.21972711183063D-01 0.15338973604790D-15 + 2 39 1 48 0.98113074926454D-01 -0.16104075883574D-17 + 3 39 1 48 0.11243027226998D+00 0.29688838880087D-16 + 1 40 1 48 -0.25336542636213D+02 0.14715559906688D-15 + 2 40 1 48 -0.13733332541572D+02 -0.17371214032625D-16 + 3 40 1 48 -0.13816776238180D+02 0.14291612076024D-16 + 1 41 1 48 0.17633524868552D+00 0.14593778907767D-15 + 2 41 1 48 0.27566745941855D+00 -0.22363850652000D-16 + 3 41 1 48 -0.29923597616247D+00 -0.15382315699128D-16 + 1 42 1 48 0.27912912720099D+00 0.85951765656405D-16 + 2 42 1 48 -0.35569019419803D+00 0.24641804499085D-16 + 3 42 1 48 0.42098272698905D+00 -0.13837231916543D-16 + 1 43 1 48 -0.78153175645182D+00 -0.52261127975351D-17 + 2 43 1 48 -0.37756050303363D+00 0.89190186622531D-17 + 3 43 1 48 -0.31197724830339D+00 -0.24875732227767D-16 + 1 44 1 48 0.47011509603785D+00 0.13662364794912D-15 + 2 44 1 48 -0.24424858336585D+00 -0.16126010535772D-16 + 3 44 1 48 -0.32358218209425D+00 -0.13495206595583D-16 + 1 45 1 48 -0.44551561571322D+00 0.10467713785539D-16 + 2 45 1 48 -0.48848716900826D+00 0.59463247626872D-17 + 3 45 1 48 -0.52437964590650D+00 -0.23413049408994D-16 + 1 46 1 48 -0.49336914517856D+00 0.24861348201816D-16 + 2 46 1 48 -0.64346728371825D-01 0.30067476926524D-16 + 3 46 1 48 -0.25450899472504D+00 -0.27101330705512D-16 + 1 47 1 48 0.20033384962361D+00 0.88086210309504D-16 + 2 47 1 48 -0.17379472240560D+00 -0.24949548049795D-16 + 3 47 1 48 -0.10281033293596D+00 0.65849116635705D-17 + 1 48 1 48 0.12009846314917D+03 0.00000000000000D+00 + 2 48 1 48 -0.17989040590743D+01 0.00000000000000D+00 + 3 48 1 48 -0.59488669410049D-01 0.00000000000000D+00 + 1 49 1 48 -0.23565771303352D+00 0.99728515349960D-18 + 2 49 1 48 -0.25941992352620D-01 -0.20944867284582D-18 + 3 49 1 48 -0.76325334859224D-02 0.25960607305085D-18 + 1 50 1 48 -0.83718992029356D-01 0.41841941483816D-16 + 2 50 1 48 0.39005282841352D+00 -0.64515499312815D-17 + 3 50 1 48 0.32925776099028D+00 -0.50576820078155D-17 + 1 51 1 48 0.14728015480932D+01 0.45314973649474D-19 + 2 51 1 48 0.63626998041331D-01 -0.59332805670251D-18 + 3 51 1 48 -0.27724378819635D-01 0.24565913093530D-18 + 1 52 1 48 -0.35562475976301D+00 -0.47916019319463D-17 + 2 52 1 48 -0.46994349775083D-01 0.10858036648512D-18 + 3 52 1 48 0.24461857082303D-02 -0.41981592214227D-18 + 1 53 1 48 -0.14651597359657D+00 0.22462818449289D-17 + 2 53 1 48 -0.78310784482451D-02 0.17402902100961D-19 + 3 53 1 48 0.41467919487293D-01 -0.13271859156987D-18 + 1 54 1 48 -0.10369009279273D+00 0.90319094762596D-18 + 2 54 1 48 0.36928784194138D-01 0.20187843197738D-18 + 3 54 1 48 -0.25660247315378D-01 0.10145132546482D-17 + 1 55 1 48 -0.16720242091942D+00 0.10174339711467D-17 + 2 55 1 48 0.50822928074396D-01 -0.60457762342355D-18 + 3 55 1 48 -0.53321962162254D-01 0.47854248947154D-18 + 1 56 1 48 -0.28281032658509D+02 0.25333373316915D-16 + 2 56 1 48 0.13867197110953D+02 0.20117026606029D-16 + 3 56 1 48 0.14992323709904D+02 0.23652241442712D-16 + 1 57 1 48 0.15328911515378D+00 0.69102660858074D-16 + 2 57 1 48 -0.31389755507366D+00 0.12946040742943D-17 + 3 57 1 48 0.29601155427098D+00 -0.21010296335359D-16 + 1 58 1 48 0.19042103809356D+00 -0.33089073758750D-15 + 2 58 1 48 0.30050836975057D+00 0.17829690280880D-16 + 3 58 1 48 -0.42205070125684D+00 -0.93120156451597D-17 + 1 59 1 48 -0.75060432465814D+00 0.27670713213402D-15 + 2 59 1 48 0.43144431608079D+00 0.32186079786002D-16 + 3 59 1 48 0.41642775373069D+00 -0.66833113118559D-17 + 1 60 1 48 0.57599511950998D+00 0.39514380289152D-16 + 2 60 1 48 0.26938321812236D+00 -0.83101940352645D-17 + 3 60 1 48 0.35996202666300D+00 -0.71349985221554D-16 + 1 61 1 48 -0.31512814179122D+00 -0.59788014690337D-18 + 2 61 1 48 0.48369823738220D+00 0.28133578122162D-16 + 3 61 1 48 0.41510684461685D+00 -0.17417780921628D-16 + 1 62 1 48 -0.17175783798409D+00 -0.90233951353273D-16 + 2 62 1 48 0.52011348209477D+00 -0.28200508082597D-17 + 3 62 1 48 0.53061614381881D+00 0.41181607821584D-17 + 1 63 1 48 0.25748660815604D+00 0.12928574026807D-15 + 2 63 1 48 0.22643509870747D-01 -0.38833444903038D-16 + 3 63 1 48 0.13334431757601D-01 0.85334804617481D-16 + 1 64 1 48 0.14545606074375D+00 0.22433836146691D-15 + 2 64 1 48 0.32150795395447D+00 -0.31118374756348D-16 + 3 64 1 48 0.18222667758374D+00 0.45591972905514D-16 + 1 65 1 48 0.33464851426696D+00 -0.55426722528482D-16 + 2 65 1 48 -0.15341231451758D-01 0.62281531963128D-17 + 3 65 1 48 -0.30892971086146D+00 0.11071917223126D-16 + 1 1 2 48 0.33550916598139D+01 -0.52450920066488D-19 + 2 1 2 48 -0.29958810583551D+01 0.17919185815567D-15 + 3 1 2 48 -0.12333277166283D+01 0.60440726704272D-16 + 1 2 2 48 -0.21870410963723D-01 0.67818788932191D-18 + 2 2 2 48 -0.21577894633812D+00 0.99920367955133D-16 + 3 2 2 48 -0.15415690230455D+00 0.52706001531935D-16 + 1 3 2 48 -0.30971891017044D+01 0.13082818017692D-17 + 2 3 2 48 -0.29700809879204D+01 -0.31328472151232D-15 + 3 3 2 48 -0.13483055546319D+01 -0.10307766203455D-15 + 1 4 2 48 0.82702315888197D-01 0.36954017806839D-17 + 2 4 2 48 -0.22618681439698D+00 0.28973144307740D-15 + 3 4 2 48 -0.11218963836733D+00 -0.38179512143330D-17 + 1 5 2 48 -0.29031814937507D+01 0.22848539050610D-17 + 2 5 2 48 -0.31495638884331D+01 0.49901145515696D-16 + 3 5 2 48 0.15092623549221D+01 0.25558645151550D-17 + 1 6 2 48 0.94115504274795D-01 0.36746238347229D-17 + 2 6 2 48 -0.21706843664551D+00 -0.56507963234526D-16 + 3 6 2 48 0.97785945508697D-01 -0.76962062267206D-17 + 1 7 2 48 0.30751735322857D+01 -0.31100680316009D-17 + 2 7 2 48 -0.29297901679364D+01 -0.16297634277794D-15 + 3 7 2 48 0.12816300215294D+01 -0.24513718743886D-16 + 1 8 2 48 -0.10067823622293D+00 -0.26025604175033D-17 + 2 8 2 48 -0.20851766763871D+00 0.20810867251824D-15 + 3 8 2 48 0.74387259052583D-01 -0.28243887879975D-16 + 1 9 2 48 0.35229755184922D+00 0.22653573527659D-17 + 2 9 2 48 0.25949803950822D+00 -0.17867790429620D-15 + 3 9 2 48 -0.25496134102411D+00 0.21854478682646D-16 + 1 10 2 48 0.48648896442331D+00 0.22545110814483D-16 + 2 10 2 48 -0.77455766109877D+00 0.25722388627838D-15 + 3 10 2 48 0.46398375705643D+00 -0.29995841831428D-16 + 1 11 2 48 0.45501407968525D+00 0.13309678501810D-17 + 2 11 2 48 -0.38497280717375D+00 -0.16388798622613D-15 + 3 11 2 48 0.50796404958534D+00 -0.11909283526370D-16 + 1 12 2 48 0.24072133695191D-01 -0.20838957791735D-16 + 2 12 2 48 0.26293960391364D+00 -0.53683924606581D-17 + 3 12 2 48 0.46328043538556D-01 0.32492142481690D-16 + 1 13 2 48 0.14499435259299D+02 -0.33944849825349D-18 + 2 13 2 48 -0.26558150007281D+02 0.16184236440645D-15 + 3 13 2 48 0.14382862120111D+02 0.11773296383017D-16 + 1 14 2 48 -0.31346412582914D+00 0.46562393904868D-17 + 2 14 2 48 0.13351320252149D+00 -0.13985731261077D-15 + 3 14 2 48 0.30326750866987D+00 -0.67178100096922D-17 + 1 15 2 48 0.48505645736949D+00 -0.15911429157142D-16 + 2 15 2 48 -0.39950504984974D+00 -0.18162629186752D-15 + 3 15 2 48 0.46398081912002D+00 -0.31214603925122D-16 + 1 16 2 48 -0.17402778573232D+01 -0.99315884859904D-16 + 2 16 2 48 0.28933820724064D+01 0.95700080283750D-16 + 3 16 2 48 0.13163110477181D+01 0.28980831299793D-16 + 1 17 2 48 0.12789009470737D+01 0.77902896201043D-16 + 2 17 2 48 0.30490719621775D+01 -0.13558244603400D-15 + 3 17 2 48 0.13535554609168D+01 -0.29985189263321D-16 + 1 18 2 48 -0.11471479398950D+00 -0.43244502727802D-16 + 2 18 2 48 -0.37214517100027D-02 -0.68755467227883D-16 + 3 18 2 48 0.86755436131941D-01 -0.49708698713572D-18 + 1 19 2 48 0.14350644613520D+00 0.36791577993198D-17 + 2 19 2 48 0.67229337897269D-01 0.62309133520831D-16 + 3 19 2 48 0.16403408343849D+00 0.29580683015739D-16 + 1 20 2 48 -0.12921767328817D+01 -0.21219740703654D-16 + 2 20 2 48 0.31589468614604D+01 0.33879085733132D-16 + 3 20 2 48 -0.13578084798523D+01 -0.23118009159770D-16 + 1 21 2 48 0.11880694090846D+01 0.30769889897713D-16 + 2 21 2 48 0.30525156815770D+01 0.64849830443749D-16 + 3 21 2 48 -0.13006788073403D+01 0.18893320621895D-16 + 1 22 2 48 -0.42131995820270D-01 -0.79419079359245D-16 + 2 22 2 48 0.33819761922103D+00 -0.16295028894490D-15 + 3 22 2 48 -0.51652952950282D+00 -0.13954584316771D-16 + 1 23 2 48 0.14352455831501D+00 0.34152247197363D-16 + 2 23 2 48 -0.14974612365160D-01 0.15180282401278D-15 + 3 23 2 48 -0.97843402870802D-01 -0.31870018004489D-16 + 1 24 2 48 -0.31415557033787D+00 0.32013499258452D-16 + 2 24 2 48 0.15344209870445D+00 -0.56464723255763D-16 + 3 24 2 48 -0.32390006586088D+00 0.22688846875195D-16 + 1 25 2 48 -0.45721072852454D+00 0.19466043764750D-16 + 2 25 2 48 -0.78452529044151D+00 0.16319404250180D-15 + 3 25 2 48 0.39877880383948D+00 0.15850518813696D-16 + 1 26 2 48 -0.47565222349128D+00 0.45438861125351D-17 + 2 26 2 48 -0.36260602341346D+00 0.24800891880915D-15 + 3 26 2 48 0.49763141720444D+00 -0.12484856143568D-16 + 1 27 2 48 -0.28476319214325D-02 0.18218786298622D-16 + 2 27 2 48 0.25776364732935D+00 -0.10734991744797D-15 + 3 27 2 48 0.66675456039040D-02 -0.22960131740440D-16 + 1 28 2 48 -0.13571489657005D+02 0.16680099668811D-16 + 2 28 2 48 -0.25398477425812D+02 0.15898271143123D-16 + 3 28 2 48 0.13622835122802D+02 -0.32079045545493D-16 + 1 29 2 48 0.29804618665443D+00 -0.15958501980413D-16 + 2 29 2 48 0.27170792927838D+00 -0.21674232777301D-15 + 3 29 2 48 0.15134694933492D+00 0.15079908708076D-16 + 1 30 2 48 -0.27016392427596D+00 -0.48310851706744D-16 + 2 30 2 48 0.42103726169297D+00 -0.76910533559604D-17 + 3 30 2 48 0.32161347997771D+00 0.22410859808394D-17 + 1 31 2 48 -0.49802215951676D+00 0.54115394926393D-18 + 2 31 2 48 -0.45776171415235D+00 0.14391443047421D-15 + 3 31 2 48 0.49454898553088D+00 -0.13451277457718D-16 + 1 32 2 48 0.15565761819559D+01 0.37297601795202D-16 + 2 32 2 48 -0.34528163015957D+01 -0.20678126414118D-17 + 3 32 2 48 -0.30549193890543D+01 -0.44536624211305D-17 + 1 33 2 48 -0.12172360738130D+01 -0.15749946462260D-16 + 2 33 2 48 -0.30589887005169D+01 -0.27788846665530D-16 + 3 33 2 48 0.33428811390469D+01 -0.73618990165774D-18 + 1 34 2 48 0.12743152760817D+01 0.79560931425764D-17 + 2 34 2 48 -0.30528471590872D+01 0.62540230493106D-16 + 3 34 2 48 0.31608079795357D+01 0.56957854293015D-17 + 1 35 2 48 -0.13774526215980D+01 -0.50472487710325D-17 + 2 35 2 48 -0.30064990613072D+01 -0.20593089132246D-15 + 3 35 2 48 -0.32361500471502D+01 -0.18509571295910D-17 + 1 36 2 48 0.54960985429195D-01 -0.10478927584321D-16 + 2 36 2 48 -0.22758195861379D+00 -0.11827769613036D-15 + 3 36 2 48 0.86008039398327D-01 -0.71799598069893D-18 + 1 37 2 48 -0.15890958213720D+00 0.44688204554402D-17 + 2 37 2 48 -0.23088084729193D+00 0.38103108632981D-16 + 3 37 2 48 0.21360777461598D-02 -0.27732402743229D-17 + 1 38 2 48 0.18188827530425D+00 -0.30587586909347D-16 + 2 38 2 48 -0.14082776768839D+00 0.95440796455960D-16 + 3 38 2 48 -0.16359920195150D+00 0.96714124466704D-19 + 1 39 2 48 -0.11346762956114D+00 -0.16104075883574D-17 + 2 39 2 48 -0.22877355990030D+00 0.25245301714903D-16 + 3 39 2 48 0.94812845415096D-01 0.26361120235844D-17 + 1 40 2 48 -0.13677385535158D+02 -0.17371214032625D-16 + 2 40 2 48 -0.25999938377806D+02 -0.34074119038999D-15 + 3 40 2 48 -0.13994635157626D+02 -0.10794746905392D-15 + 1 41 2 48 0.31821622388506D+00 -0.22363850652000D-16 + 2 41 2 48 0.21967419079835D+00 -0.11956080045887D-15 + 3 41 2 48 -0.28016256143628D+00 0.22492476719419D-16 + 1 42 2 48 -0.33872008325706D+00 0.24641804499085D-16 + 2 42 2 48 0.44715972523508D+00 -0.22868683297115D-15 + 3 42 2 48 -0.25348016079988D+00 -0.77022340382650D-16 + 1 43 2 48 -0.46840841101348D+00 0.89190186622531D-17 + 2 43 2 48 -0.21332075910505D+00 -0.70153498433655D-16 + 3 43 2 48 -0.29558449714712D+00 -0.25985303412485D-16 + 1 44 2 48 -0.24689778800013D+00 -0.16126010535772D-16 + 2 44 2 48 0.18184668037694D+00 0.93859532927127D-16 + 3 44 2 48 0.30091129439677D+00 0.56256769372545D-16 + 1 45 2 48 -0.46486050728527D+00 0.59463247626872D-17 + 2 45 2 48 -0.84989106608483D+00 -0.82352625781406D-16 + 3 45 2 48 -0.43513197182491D+00 0.91525669412018D-16 + 1 46 2 48 -0.43441998613115D+00 0.30067476926524D-16 + 2 46 2 48 -0.13525500815598D+00 -0.16328717004475D-15 + 3 46 2 48 -0.33525327094947D+00 -0.39607432037239D-16 + 1 47 2 48 -0.15681017887169D+00 -0.24949548049795D-16 + 2 47 2 48 0.16229330172928D+00 0.18198901800881D-17 + 3 47 2 48 -0.98401233411655D-01 -0.25675918866197D-16 + 1 48 2 48 -0.17989040590743D+01 0.00000000000000D+00 + 2 48 2 48 0.11772786846936D+03 0.00000000000000D+00 + 3 48 2 48 -0.13236166824967D+01 0.00000000000000D+00 + 1 49 2 48 -0.15542216925407D-01 -0.20944867284582D-18 + 2 49 2 48 -0.23998152292440D+00 0.29273088993195D-17 + 3 49 2 48 -0.74889325537828D-02 -0.59889117586296D-18 + 1 50 2 48 -0.11599296174228D+00 -0.64515499312815D-17 + 2 50 2 48 0.12797076026959D+00 0.91461771333809D-17 + 3 50 2 48 0.39305705776450D+00 -0.27062809224320D-17 + 1 51 2 48 0.27724378819635D-01 -0.59332805670251D-18 + 2 51 2 48 -0.12727626599595D+00 0.43713515384583D-17 + 3 51 2 48 -0.79348798505183D-01 0.80228810240703D-18 + 1 52 2 48 0.73118224368082D-01 0.10858036648512D-18 + 2 52 2 48 -0.31749180709190D+00 0.27744950878686D-16 + 3 52 2 48 0.34358997781744D-01 -0.47506975151274D-17 + 1 53 2 48 0.12570281290532D-01 0.17402902100961D-19 + 2 53 2 48 0.15339790868766D+01 0.22579034448885D-17 + 3 53 2 48 0.11097588776132D-01 0.29867096078638D-18 + 1 54 2 48 0.13312149805395D-01 0.20187843197738D-18 + 2 54 2 48 -0.10442409181147D+00 -0.12984073448700D-17 + 3 54 2 48 -0.70096081780645D-02 -0.35721642954096D-18 + 1 55 2 48 -0.22811652599747D-01 -0.60457762342355D-18 + 2 55 2 48 -0.84272004536130D-01 0.70767075603585D-18 + 3 55 2 48 -0.25872687761076D-01 -0.11671661561477D-18 + 1 56 2 48 0.14256821798390D+02 0.20117026606029D-16 + 2 56 2 48 -0.24532491806041D+02 -0.24248543299455D-15 + 3 56 2 48 -0.12776995690578D+02 0.14282744033615D-16 + 1 57 2 48 -0.26505761927302D+00 0.12946040742943D-17 + 2 57 2 48 0.17637186941306D+00 0.15302164112023D-15 + 3 57 2 48 -0.27340328278778D+00 -0.84188928460218D-16 + 1 58 2 48 0.13762305616934D+00 0.17829690280880D-16 + 2 58 2 48 0.55573036713752D+00 0.24031779622516D-15 + 3 58 2 48 -0.40212139172871D+00 -0.25046316384887D-16 + 1 59 2 48 0.49830994239345D+00 0.32186079786002D-16 + 2 59 2 48 -0.36088245076100D+00 0.18240325086649D-16 + 3 59 2 48 -0.42944402667853D+00 0.30855623846497D-16 + 1 60 2 48 0.29550212064910D+00 -0.83101940352645D-17 + 2 60 2 48 0.93208777468697D-01 -0.15620895727900D-15 + 3 60 2 48 0.25867275679239D+00 -0.22024203598475D-16 + 1 61 2 48 0.45552372354200D+00 0.28133578122162D-16 + 2 61 2 48 -0.78338733454981D+00 0.52590150059356D-16 + 3 61 2 48 -0.46766185471483D+00 0.35516880190949D-17 + 1 62 2 48 0.46034884881435D+00 -0.28200508082597D-17 + 2 62 2 48 -0.39910233886038D+00 -0.93503748338066D-16 + 3 62 2 48 -0.27618358262648D+00 -0.37739992169273D-16 + 1 63 2 48 0.44235881324113D-02 -0.38833444903038D-16 + 2 63 2 48 0.26805640929539D+00 0.15490535857083D-15 + 3 63 2 48 -0.30515804448368D-01 0.73294894231444D-16 + 1 64 2 48 0.14080624751412D+00 -0.31118374756348D-16 + 2 64 2 48 0.18749234272781D+00 -0.11274082448776D-15 + 3 64 2 48 0.28518279672125D+00 0.29224285120073D-16 + 1 65 2 48 0.36513389322850D+00 0.62281531963128D-17 + 2 65 2 48 -0.38732122518082D+00 -0.47067673803215D-16 + 3 65 2 48 -0.56471974226054D+00 0.20544186772157D-17 + 1 1 3 48 -0.14068234245039D+01 0.17885510136430D-15 + 2 1 3 48 0.11353333223013D+01 0.60440726704272D-16 + 3 1 3 48 0.30155345649138D+01 -0.24499393868728D-16 + 1 2 3 48 -0.14764773017077D+00 -0.64251834901339D-16 + 2 2 3 48 0.10356682372425D+00 0.52706001531935D-16 + 3 2 3 48 0.54598954673190D-01 0.31568451213298D-16 + 1 3 3 48 0.11971059792642D+01 -0.77129242351754D-17 + 2 3 3 48 0.12001748544478D+01 -0.10307766203455D-15 + 3 3 3 48 0.29632774936015D+01 0.75371770722980D-16 + 1 4 3 48 0.99565345105374D-01 0.96444944941386D-16 + 2 4 3 48 0.80612052259496D-01 -0.38179512143330D-17 + 3 4 3 48 -0.18016648722801D-01 -0.10248771305983D-15 + 1 5 3 48 -0.81602640442448D+00 0.43732466355427D-16 + 2 5 3 48 -0.10224519877059D+01 0.25558645151550D-17 + 3 5 3 48 0.26553207591071D+01 0.48516691490047D-16 + 1 6 3 48 -0.43841709977772D-01 0.13911841117172D-16 + 2 6 3 48 -0.62766396932400D-01 -0.76962062267206D-17 + 3 6 3 48 -0.14974612365160D-01 0.18181519523811D-16 + 1 7 3 48 0.13625469848010D+01 0.00000000000000D+00 + 2 7 3 48 -0.12816300215294D+01 -0.24513718743886D-16 + 3 7 3 48 0.31258167392204D+01 0.20530605046308D-16 + 1 8 3 48 0.12635356812616D+00 0.72411972828999D-16 + 2 8 3 48 -0.99568015791875D-01 -0.28243887879975D-16 + 3 8 3 48 0.52373562507969D-02 0.36018735812825D-17 + 1 9 3 48 -0.27417204537270D+00 -0.23834477390368D-16 + 2 9 3 48 -0.28486509201649D+00 0.21854478682646D-16 + 3 9 3 48 0.12684713898616D+00 0.10819962679896D-15 + 1 10 3 48 -0.44859374967648D+00 0.97311508241862D-16 + 2 10 3 48 0.46600777207556D+00 -0.29995841831428D-16 + 3 10 3 48 -0.35985695528310D+00 -0.11808125038477D-15 + 1 11 3 48 -0.46462462382011D+00 0.34979965021202D-17 + 2 11 3 48 0.45427667066531D+00 -0.11909283526370D-16 + 3 11 3 48 -0.76085550268744D+00 -0.16607421382441D-15 + 1 12 3 48 0.11266806978942D-01 -0.25975968416566D-16 + 2 12 3 48 0.12652840085352D-01 0.32492142481690D-16 + 3 12 3 48 0.26346517888124D+00 0.71953421292922D-16 + 1 13 3 48 -0.13895113734308D+02 -0.20206908482788D-16 + 2 13 3 48 0.14421520332335D+02 0.11773296383017D-16 + 3 13 3 48 -0.26292168970119D+02 -0.13832222864911D-15 + 1 14 3 48 -0.32592916479668D+00 -0.24724639558443D-16 + 2 14 3 48 0.26596700141823D+00 -0.67178100096922D-17 + 3 14 3 48 0.49508247045833D+00 -0.61064330905559D-16 + 1 15 3 48 -0.45605122386224D+00 0.41051652814516D-16 + 2 15 3 48 0.42696613261043D+00 -0.31214603925122D-16 + 3 15 3 48 -0.38733449979395D+00 0.25975489231930D-16 + 1 16 3 48 0.28846658458855D+01 -0.40173273708578D-19 + 2 16 3 48 -0.10021922192644D+01 0.28980831299793D-16 + 3 16 3 48 -0.28762227844451D+01 0.24588410999526D-15 + 1 17 3 48 -0.32224719826005D+01 0.36927071045522D-17 + 2 17 3 48 -0.13623457728179D+01 -0.29985189263321D-16 + 3 17 3 48 -0.31198683632758D+01 -0.15087013157301D-15 + 1 18 3 48 -0.90300250886181D-01 0.16391087939291D-17 + 2 18 3 48 -0.13225854204798D+00 -0.49708698713572D-18 + 3 18 3 48 -0.21086672653499D+00 0.27465957100001D-18 + 1 19 3 48 0.36582342768195D-01 -0.56090120005904D-17 + 2 19 3 48 -0.15189491883039D+00 0.29580683015739D-16 + 3 19 3 48 -0.26027564892998D+00 -0.31592670887913D-15 + 1 20 3 48 -0.32845967229457D+01 0.58629928458017D-17 + 2 20 3 48 0.13578084798523D+01 -0.23118009159770D-16 + 3 20 3 48 -0.31435481711389D+01 0.24537985826016D-16 + 1 21 3 48 0.31941085754673D+01 0.14291426806999D-17 + 2 21 3 48 0.14073185650725D+01 0.18893320621895D-16 + 3 21 3 48 -0.31161797414798D+01 -0.16447917667435D-15 + 1 22 3 48 0.22701782239698D-01 0.30823908274952D-17 + 2 22 3 48 -0.15857612882839D+00 -0.13954584316771D-16 + 3 22 3 48 0.18707498056840D+00 -0.24016003970537D-15 + 1 23 3 48 -0.73906612608212D-01 0.33053279034643D-18 + 2 23 3 48 0.63014662905325D-01 -0.31870018004489D-16 + 3 23 3 48 -0.21706843664551D+00 -0.63716965825415D-16 + 1 24 3 48 0.33966503486388D+00 0.20713831173489D-16 + 2 24 3 48 -0.28979766667512D+00 0.22688846875195D-16 + 3 24 3 48 0.22540838907912D+00 0.20820835031356D-16 + 1 25 3 48 0.48845849095459D+00 -0.46289598828617D-17 + 2 25 3 48 0.46804370187614D+00 0.15850518813696D-16 + 3 25 3 48 -0.39849614674369D+00 0.40074519686661D-15 + 1 26 3 48 0.43605273089238D+00 0.34890577663760D-16 + 2 26 3 48 0.41193502972180D+00 -0.12484856143568D-16 + 3 26 3 48 -0.73479300855675D+00 0.12937643806826D-15 + 1 27 3 48 0.22841937824873D-01 -0.19891545483858D-16 + 2 27 3 48 0.37917362697485D-01 -0.22960131740440D-16 + 3 27 3 48 0.28901435639828D+00 0.75140079433215D-16 + 1 28 3 48 0.13217865722021D+02 0.19757778323404D-16 + 2 28 3 48 0.13522654321831D+02 -0.32079045545493D-16 + 3 28 3 48 -0.25515961030837D+02 -0.20913947461715D-15 + 1 29 3 48 0.27943292278049D+00 -0.39028595431228D-16 + 2 29 3 48 0.21879589379039D+00 0.15079908708076D-16 + 3 29 3 48 0.37272648315905D+00 -0.86458869287637D-16 + 1 30 3 48 -0.32656081583014D+00 -0.41330276425697D-16 + 2 30 3 48 0.32723300791449D+00 0.22410859808394D-17 + 3 30 3 48 0.18674912064643D+00 -0.26083686564731D-15 + 1 31 3 48 0.50890489309556D+00 -0.36500804524619D-17 + 2 31 3 48 0.55121297710037D+00 -0.13451277457718D-16 + 3 31 3 48 -0.40136127322328D+00 0.11940350581002D-15 + 1 32 3 48 0.15177320252663D+01 0.14206451137930D-16 + 2 32 3 48 -0.31092013568370D+01 -0.44536624211305D-17 + 3 32 3 48 -0.25386322377401D+01 0.22609661238307D-15 + 1 33 3 48 0.12454641439855D+01 -0.11978053572892D-16 + 2 33 3 48 0.31293913227631D+01 -0.73618990165774D-18 + 3 33 3 48 -0.30589887005169D+01 0.19060769312916D-15 + 1 34 3 48 -0.13256739918059D+01 -0.31839361182279D-17 + 2 34 3 48 0.31608079795357D+01 0.56957854293015D-17 + 3 34 3 48 -0.29795532850691D+01 -0.13837344833479D-15 + 1 35 3 48 -0.12360040210205D+01 -0.32428887900909D-16 + 2 35 3 48 -0.31905729764210D+01 -0.18509571295910D-17 + 3 35 3 48 -0.30626394163209D+01 -0.37015661394043D-17 + 1 36 3 48 0.11018956029345D+00 0.32168162104355D-17 + 2 36 3 48 0.90810637626317D-01 -0.71799598069893D-18 + 3 36 3 48 -0.20873637486903D+00 -0.30310997698070D-15 + 1 37 3 48 0.14432681694243D+00 0.23526463914850D-16 + 2 37 3 48 -0.49290147573132D-01 -0.27732402743229D-17 + 3 37 3 48 -0.26792518326819D+00 0.12057219233527D-15 + 1 38 3 48 -0.10915285207293D+00 0.13789086026620D-16 + 2 38 3 48 -0.15173137220633D+00 0.96714124466704D-19 + 3 38 3 48 -0.19250859648881D+00 -0.21872886472545D-16 + 1 39 3 48 -0.10979845495590D+00 0.29688838880087D-16 + 2 39 3 48 0.88531530517871D-01 0.26361120235844D-17 + 3 39 3 48 -0.24801182769949D+00 -0.19894802319416D-15 + 1 40 3 48 -0.13879011340542D+02 0.14291612076024D-16 + 2 40 3 48 -0.14107929617707D+02 -0.10794746905392D-15 + 3 40 3 48 -0.26062789866101D+02 0.13349837441719D-15 + 1 41 3 48 -0.19985889980303D+00 -0.15382315699128D-16 + 2 41 3 48 -0.23274844943711D+00 0.22492476719419D-16 + 3 41 3 48 0.42551965214465D+00 0.36838391168096D-16 + 1 42 3 48 0.29916503793232D+00 -0.13837231916543D-16 + 2 42 3 48 -0.16366981488137D+00 -0.77022340382650D-16 + 3 42 3 48 0.12123201124198D+00 -0.42095292227905D-16 + 1 43 3 48 -0.53730740550124D+00 -0.24875732227767D-16 + 2 43 3 48 -0.40158016642122D+00 -0.25985303412485D-16 + 3 43 3 48 -0.25326590528757D+00 0.97104109716894D-16 + 1 44 3 48 -0.31572160078401D+00 -0.13495206595583D-16 + 2 44 3 48 0.30265282018592D+00 0.56256769372545D-16 + 3 44 3 48 0.24708348230195D+00 -0.25653253820671D-16 + 1 45 3 48 -0.52775938851813D+00 -0.23413049408994D-16 + 2 45 3 48 -0.49790547501619D+00 0.91525669412018D-16 + 3 45 3 48 -0.44967235785732D+00 -0.11949482965329D-15 + 1 46 3 48 -0.50939446161318D+00 -0.27101330705512D-16 + 2 46 3 48 -0.50016541024873D+00 -0.39607432037239D-16 + 3 46 3 48 -0.87719096127326D+00 -0.99979812675041D-16 + 1 47 3 48 0.24696374662159D-02 0.65849116635705D-17 + 2 47 3 48 -0.12118996449944D-01 -0.25675918866197D-16 + 3 47 3 48 0.26864894443220D+00 -0.17980787147852D-15 + 1 48 3 48 -0.59488669410049D-01 0.00000000000000D+00 + 2 48 3 48 -0.13236166824967D+01 0.00000000000000D+00 + 3 48 3 48 0.11865662793326D+03 0.00000000000000D+00 + 1 49 3 48 0.22284876094396D-01 0.25960607305085D-18 + 2 49 3 48 0.67018209271095D-01 -0.59889117586296D-18 + 3 49 3 48 -0.39179030205287D+00 0.90821385660485D-17 + 1 50 3 48 -0.24475038061527D-01 -0.50576820078155D-17 + 2 50 3 48 -0.28504399934005D+00 -0.27062809224320D-17 + 3 50 3 48 -0.44422357773511D+00 -0.19202462115987D-16 + 1 51 3 48 -0.63626998041331D-01 0.24565913093530D-18 + 2 51 3 48 -0.86493072065219D-02 0.80228810240703D-18 + 3 51 3 48 -0.12727626599595D+00 -0.27211567104666D-17 + 1 52 3 48 -0.19184240360456D-02 -0.41981592214227D-18 + 2 52 3 48 0.40416366528409D-01 -0.47506975151274D-17 + 3 52 3 48 -0.20671006593297D+00 0.50160867924292D-18 + 1 53 3 48 0.23926507485511D-01 -0.13271859156987D-18 + 2 53 3 48 0.41533968157781D-01 0.29867096078638D-18 + 3 53 3 48 -0.19111969908325D+00 -0.10838495998602D-17 + 1 54 3 48 0.24861959050637D-01 0.10145132546482D-17 + 2 54 3 48 0.44845856798312D-01 -0.35721642954096D-18 + 3 54 3 48 0.14768947477597D+01 -0.10240149845528D-17 + 1 55 3 48 0.38930185792206D-01 0.47854248947154D-18 + 2 55 3 48 -0.12262395208868D-01 -0.11671661561477D-18 + 3 55 3 48 -0.95554353237723D-01 -0.36819461989831D-17 + 1 56 3 48 0.14657929762345D+02 0.23652241442712D-16 + 2 56 3 48 -0.12371596783117D+02 0.14282744033615D-16 + 3 56 3 48 -0.25101178599709D+02 0.25045825135354D-15 + 1 57 3 48 0.22564467784923D+00 -0.21010296335359D-16 + 2 57 3 48 -0.30191942014921D+00 -0.84188928460218D-16 + 3 57 3 48 0.43222364377869D+00 0.31224663026300D-15 + 1 58 3 48 -0.28361053495241D+00 -0.93120156451597D-17 + 2 58 3 48 -0.31592974345077D+00 -0.25046316384887D-16 + 3 58 3 48 0.23490982432095D+00 -0.59953201564098D-16 + 1 59 3 48 0.48409400010692D+00 -0.66833113118559D-17 + 2 59 3 48 -0.41751349235391D+00 0.30855623846497D-16 + 3 59 3 48 -0.32229451800095D+00 0.18071227026838D-17 + 1 60 3 48 0.38139056523926D+00 -0.71349985221554D-16 + 2 60 3 48 0.34011013696973D+00 -0.22024203598475D-16 + 3 60 3 48 0.18898539371497D+00 0.13967689739752D-15 + 1 61 3 48 0.44224998145374D+00 -0.17417780921628D-16 + 2 61 3 48 -0.45833681568794D+00 0.35516880190949D-17 + 3 61 3 48 -0.37168114771698D+00 -0.10255393789139D-16 + 1 62 3 48 0.33826748421716D+00 0.41181607821584D-17 + 2 62 3 48 -0.59323179457402D+00 -0.37739992169273D-16 + 3 62 3 48 -0.86409040711022D+00 0.89804476752846D-16 + 1 63 3 48 0.16149580206863D-01 0.85334804617481D-16 + 2 63 3 48 -0.27822975149863D-01 0.73294894231444D-16 + 3 63 3 48 0.26462086478739D+00 -0.21010701131634D-16 + 1 64 3 48 -0.39928517272553D-01 0.45591972905514D-16 + 2 64 3 48 -0.65815729498097D-01 0.29224285120073D-16 + 3 64 3 48 0.75805720364928D-01 -0.69282768656162D-16 + 1 65 3 48 0.26880943972696D+00 0.11071917223126D-16 + 2 65 3 48 0.18048280306736D+00 0.20544186772157D-17 + 3 65 3 48 -0.52499789938128D+00 -0.24592497066544D-15 + 1 1 1 49 -0.21730179390960D+00 -0.25465874725180D-17 + 2 1 1 49 -0.11754640956584D+00 -0.46520567250840D-18 + 3 1 1 49 0.90350894191815D-01 -0.20810530433719D-16 + 1 2 1 49 -0.29596538007428D+01 -0.19699668236994D-15 + 2 2 1 49 0.31254481327735D+01 0.81264124582029D-18 + 3 2 1 49 0.14160356266369D+01 0.50833053807220D-16 + 1 3 1 49 -0.23994603525543D+00 -0.95036548744306D-16 + 2 3 1 49 0.10929782699042D+00 0.20202692942906D-18 + 3 3 1 49 -0.70206638076878D-01 -0.23627665604388D-16 + 1 4 1 49 -0.30954916382760D+01 0.12292846517292D-15 + 2 4 1 49 -0.31872566408716D+01 -0.48752378704740D-18 + 3 4 1 49 -0.12247732147474D+01 -0.95654890500483D-17 + 1 5 1 49 -0.17607364125106D+00 0.43733671235934D-16 + 2 5 1 49 -0.67118144898918D-02 -0.10060562668775D-16 + 3 5 1 49 0.98978215545313D-01 0.78805443756646D-16 + 1 6 1 49 -0.31052957392001D+01 -0.27438844537262D-16 + 2 6 1 49 -0.31941085754672D+01 -0.72323814192933D-18 + 3 6 1 49 0.11880694090847D+01 0.40730494336349D-17 + 1 7 1 49 -0.22820373706450D+00 0.17694233208340D-15 + 2 7 1 49 -0.10067823622293D+00 -0.14428117758736D-19 + 3 7 1 49 -0.12635356812617D+00 0.35873316122867D-16 + 1 8 1 49 -0.31246827126461D+01 0.13162457501140D-16 + 2 8 1 49 0.32372407928347D+01 0.15464888163942D-17 + 3 8 1 49 -0.13218851373702D+01 -0.10093008478173D-16 + 1 9 1 49 -0.43635665931277D+00 0.32007491774637D-16 + 2 9 1 49 0.41934053875375D+00 0.67703169327687D-17 + 3 9 1 49 -0.44407962521093D+00 0.76286806420698D-17 + 1 10 1 49 0.49321229505344D+00 0.22745182205427D-16 + 2 10 1 49 0.29852518106694D+00 0.17715956877977D-16 + 3 10 1 49 -0.29889594006093D+00 0.31224807794196D-16 + 1 11 1 49 0.26939096072922D+00 0.63842624436311D-16 + 2 11 1 49 0.17132008708459D-01 0.10250598699425D-16 + 3 11 1 49 -0.17330317339693D-01 -0.32761352693827D-16 + 1 12 1 49 -0.43614168367627D+00 -0.16956809587381D-15 + 2 12 1 49 0.44407962521095D+00 0.48031940971689D-16 + 3 12 1 49 -0.41949172230350D+00 0.13715332947941D-17 + 1 13 1 49 0.17242731460597D+00 0.87473696652844D-16 + 2 13 1 49 -0.28488978243755D+00 0.21379444613805D-16 + 3 13 1 49 -0.25712532149783D+00 -0.19158748725510D-16 + 1 14 1 49 -0.26110101691917D+02 0.22868895388999D-16 + 2 14 1 49 0.13982758016405D+02 0.19958183063657D-17 + 3 14 1 49 -0.13981816650897D+02 -0.22768096244383D-16 + 1 15 1 49 0.17245337070865D+00 -0.76324107753594D-16 + 2 15 1 49 0.25712532149783D+00 -0.67956173164938D-16 + 3 15 1 49 0.28498843691364D+00 0.17073562061969D-16 + 1 16 1 49 -0.29596538007428D+01 0.18932815777287D-16 + 2 16 1 49 -0.14160356266369D+01 -0.13623771937533D-16 + 3 16 1 49 -0.31254481327735D+01 -0.35328771802565D-17 + 1 17 1 49 -0.30954916382760D+01 -0.27227278197014D-15 + 2 17 1 49 0.12247732147474D+01 -0.36566270101386D-16 + 3 17 1 49 0.31872566408720D+01 0.10999787677527D-17 + 1 18 1 49 -0.21730179390958D+00 0.15039353080804D-16 + 2 18 1 49 -0.90350894191813D-01 0.64686251685374D-16 + 3 18 1 49 0.11754640956585D+00 0.10531185618820D-17 + 1 19 1 49 -0.23994603525543D+00 -0.78712646522285D-16 + 2 19 1 49 0.70206638076884D-01 -0.29290945787111D-16 + 3 19 1 49 -0.10929782699040D+00 -0.29359459586108D-17 + 1 20 1 49 -0.31052957392000D+01 0.12472418136209D-15 + 2 20 1 49 -0.11880694090846D+01 0.40452714697435D-17 + 3 20 1 49 0.31941085754673D+01 -0.61694850901565D-18 + 1 21 1 49 -0.31246827126462D+01 0.23307979338967D-15 + 2 21 1 49 0.13218851373702D+01 -0.80340319369096D-16 + 3 21 1 49 -0.32372407928346D+01 -0.94005052155717D-18 + 1 22 1 49 -0.17607364125101D+00 -0.29411667678927D-15 + 2 22 1 49 -0.98978215545325D-01 -0.98405853849524D-16 + 3 22 1 49 0.67118144898820D-02 0.28686593025061D-18 + 1 23 1 49 -0.22820373706450D+00 -0.19885960905741D-16 + 2 23 1 49 0.12635356812616D+00 0.67650971492376D-16 + 3 23 1 49 0.10067823622293D+00 -0.19353016877900D-17 + 1 24 1 49 -0.42580530827145D+00 -0.36375864003506D-15 + 2 24 1 49 -0.48044606924574D+00 0.12410819627741D-16 + 3 24 1 49 0.51494688043211D+00 -0.15131422945616D-16 + 1 25 1 49 0.33407282794414D+00 0.29032131011133D-16 + 2 25 1 49 -0.22874393479573D+00 0.53832589148569D-16 + 3 25 1 49 0.22874393479573D+00 -0.10429088455293D-16 + 1 26 1 49 0.26343432207317D+00 0.84026182055208D-16 + 2 26 1 49 -0.26920621507096D-01 0.10248706771543D-16 + 3 26 1 49 0.26920621507096D-01 -0.24277244802255D-16 + 1 27 1 49 -0.42580530827139D+00 -0.18752518302023D-15 + 2 27 1 49 -0.51494688043211D+00 0.25529794737444D-16 + 3 27 1 49 0.48044606924574D+00 0.37916173022849D-16 + 1 28 1 49 0.25011915021962D+00 0.16947485645547D-15 + 2 28 1 49 0.29670673634117D+00 -0.24861114161249D-16 + 3 28 1 49 0.34701892963441D+00 0.36474261736706D-16 + 1 29 1 49 -0.24102957627296D+02 -0.58660397433518D-16 + 2 29 1 49 -0.13010403468365D+02 -0.43691115982541D-16 + 3 29 1 49 0.13010403468365D+02 0.33622389950119D-17 + 1 30 1 49 -0.68544091796875D+00 0.59078231975441D-16 + 2 30 1 49 -0.48684142294518D+00 0.23021070284102D-16 + 3 30 1 49 0.48684142294518D+00 -0.83049304193846D-17 + 1 31 1 49 0.25011915021961D+00 -0.14554968582612D-15 + 2 31 1 49 -0.34701892963438D+00 0.12949006868269D-16 + 3 31 1 49 -0.29670673634116D+00 0.55958200001327D-16 + 1 32 1 49 0.28298793736917D+01 -0.41150996110731D-16 + 2 32 1 49 0.15363366088823D+01 0.23103049636318D-17 + 3 32 1 49 -0.15363366088824D+01 0.75266172854227D-17 + 1 33 1 49 0.29685174375501D+01 -0.54006116262642D-16 + 2 33 1 49 -0.12360040210204D+01 -0.28339712911103D-16 + 3 33 1 49 -0.13774526215980D+01 -0.17316792276898D-16 + 1 34 1 49 0.29685174375501D+01 -0.82442892779372D-16 + 2 34 1 49 0.13774526215980D+01 0.26383473855702D-16 + 3 34 1 49 0.12360040210205D+01 -0.28896587384652D-16 + 1 35 1 49 0.31699779795925D+01 -0.94041073905415D-16 + 2 35 1 49 -0.12255833182082D+01 0.47025162763540D-17 + 3 35 1 49 0.12255833182082D+01 -0.22984631194384D-16 + 1 36 1 49 0.49215479792288D-01 0.52735669636494D-16 + 2 36 1 49 0.67004752710946D-01 -0.70884881711434D-17 + 3 36 1 49 -0.67004752710945D-01 -0.57602415680592D-17 + 1 37 1 49 0.17628049017344D-01 0.36915881048922D-16 + 2 37 1 49 -0.10356308707008D+00 0.74032240641634D-17 + 3 37 1 49 -0.13471322032932D+00 -0.20521223165547D-16 + 1 38 1 49 0.17628049017314D-01 0.14082462880967D-17 + 2 38 1 49 0.13471322032933D+00 0.26651312689961D-17 + 3 38 1 49 0.10356308707007D+00 0.31057449448208D-16 + 1 39 1 49 -0.34911139746889D-01 -0.25682358801516D-16 + 2 39 1 49 -0.99917988628224D-01 0.83895107723726D-17 + 3 39 1 49 0.99917988628229D-01 0.17887530730386D-16 + 1 40 1 49 0.18950469390944D+00 -0.10430912582983D-15 + 2 40 1 49 0.34179935926502D+00 0.25137222654148D-16 + 3 40 1 49 -0.31472751484528D+00 0.28526298824849D-16 + 1 41 1 49 -0.25794221122147D+02 0.11339741659649D-15 + 2 41 1 49 -0.13749665086973D+02 0.16213906582104D-17 + 3 41 1 49 -0.13654215728241D+02 0.11033639226959D-16 + 1 42 1 49 -0.79645524878653D+00 0.16880469152228D-15 + 2 42 1 49 -0.49952396734700D+00 -0.20053575593033D-16 + 3 42 1 49 -0.49338013526382D+00 -0.23891270459864D-16 + 1 43 1 49 0.24071006525499D+00 0.60068783916807D-16 + 2 43 1 49 -0.24324448070264D+00 -0.22935328500252D-17 + 3 43 1 49 0.39930320110790D+00 -0.10525889516547D-16 + 1 44 1 49 -0.42574411112179D+00 -0.16275961040919D-16 + 2 44 1 49 -0.45567704351573D+00 -0.83515741236716D-17 + 3 44 1 49 -0.46661777973951D+00 -0.35877128733971D-16 + 1 45 1 49 0.39734956014694D+00 0.37670806239425D-15 + 2 45 1 49 -0.23802945606288D+00 -0.13306985494605D-16 + 3 45 1 49 -0.24735014074086D+00 -0.28302306166109D-16 + 1 46 1 49 0.26686550422134D+00 0.60919630843127D-16 + 2 46 1 49 0.42196927431057D-02 0.53449937130448D-16 + 3 46 1 49 0.94617811102770D-02 0.27772455743625D-16 + 1 47 1 49 -0.29770639034202D+00 0.73969408558848D-16 + 2 47 1 49 -0.32150151371740D+00 0.29271039546905D-16 + 3 47 1 49 -0.47577268331974D+00 -0.17031134211040D-16 + 1 48 1 49 -0.23565771303352D+00 -0.99728515349960D-18 + 2 48 1 49 -0.15542216925407D-01 0.20944867284582D-18 + 3 48 1 49 0.22284876094396D-01 -0.25960607305085D-18 + 1 49 1 49 0.11764144224654D+03 0.00000000000000D+00 + 2 49 1 49 -0.95835602795612D+00 0.00000000000000D+00 + 3 49 1 49 0.95835602795637D+00 0.00000000000000D+00 + 1 50 1 49 0.13557269446422D+01 0.13239682046010D-16 + 2 50 1 49 -0.21546854528395D+00 0.47026443152725D-17 + 3 50 1 49 0.21546854528394D+00 -0.64481192958400D-17 + 1 51 1 49 -0.23565771303356D+00 -0.65967788592541D-19 + 2 51 1 49 -0.22284876094380D-01 0.11414254151924D-18 + 3 51 1 49 0.15542216925406D-01 -0.31718565319225D-18 + 1 52 1 49 -0.12290306718726D+00 0.22584963327157D-17 + 2 52 1 49 0.36046341819233D-01 -0.49278357951666D-18 + 3 52 1 49 -0.50187471622123D-01 -0.24682146161990D-18 + 1 53 1 49 -0.40592725268390D+00 -0.27238470116367D-17 + 2 53 1 49 0.24069014812013D-02 0.65545335769248D-18 + 3 53 1 49 -0.24069014811968D-02 0.56907957317509D-18 + 1 54 1 49 -0.10055294059491D+00 0.38324262664291D-17 + 2 54 1 49 0.75447065688480D-03 0.11122296118210D-17 + 3 54 1 49 -0.75447065688384D-03 0.15140751063227D-17 + 1 55 1 49 -0.12290306718744D+00 0.39233938395295D-17 + 2 55 1 49 0.50187471622119D-01 0.52687728385888D-18 + 3 55 1 49 -0.36046341819235D-01 -0.98775332220955D-18 + 1 56 1 49 0.24071006525499D+00 -0.26871056683275D-15 + 2 56 1 49 -0.39930320110790D+00 -0.20732862211004D-16 + 3 56 1 49 0.24324448070263D+00 0.27790630543656D-16 + 1 57 1 49 -0.25794221122147D+02 0.14737960526685D-15 + 2 57 1 49 0.13654215728241D+02 0.19629122283857D-16 + 3 57 1 49 0.13749665086973D+02 -0.11959923425882D-16 + 1 58 1 49 -0.79645524878653D+00 0.95143473454973D-16 + 2 58 1 49 0.49338013526382D+00 0.21387884718109D-16 + 3 58 1 49 0.49952396734700D+00 -0.74556868276409D-17 + 1 59 1 49 0.18950469390944D+00 -0.11087812946419D-15 + 2 59 1 49 0.31472751484528D+00 0.64815499175368D-18 + 3 59 1 49 -0.34179935926502D+00 -0.10463067047830D-16 + 1 60 1 49 -0.29770639034203D+00 0.10978177658407D-16 + 2 60 1 49 0.47577268331975D+00 -0.96686612588895D-17 + 3 60 1 49 0.32150151371740D+00 -0.16550530088016D-16 + 1 61 1 49 0.39734956014695D+00 0.84202333681576D-16 + 2 61 1 49 0.24735014074086D+00 0.63881066277611D-17 + 3 61 1 49 0.23802945606288D+00 -0.11603959299606D-16 + 1 62 1 49 0.26686550422134D+00 0.98816945786786D-16 + 2 62 1 49 -0.94617811102801D-02 -0.15744288366839D-16 + 3 62 1 49 -0.42196927431088D-02 0.23036763995059D-16 + 1 63 1 49 -0.42574411112178D+00 0.10834112239832D-15 + 2 63 1 49 0.46661777973951D+00 -0.14242343872519D-16 + 3 63 1 49 0.45567704351573D+00 0.25873195763994D-16 + 1 64 1 49 -0.15924778845922D+00 0.25595204942101D-15 + 2 64 1 49 -0.15177704355265D+00 0.21469918602759D-16 + 3 64 1 49 0.15177704355265D+00 -0.17411791730223D-17 + 1 65 1 49 -0.75943447184913D+00 -0.95698080373985D-16 + 2 65 1 49 0.58852918836420D+00 0.14287685441276D-16 + 3 65 1 49 -0.58922497966895D+00 0.14666543024304D-16 + 1 1 2 49 -0.68866005259073D-01 -0.46520567250840D-18 + 2 1 2 49 -0.26140025060353D+00 0.21343658610572D-15 + 3 1 2 49 -0.44248198131505D-01 -0.30901129281548D-16 + 1 2 2 49 0.32008726391262D+01 0.81264124582029D-18 + 2 2 2 49 -0.30979715045097D+01 -0.24697908798853D-15 + 3 2 2 49 -0.14307103494987D+01 0.78467094011376D-17 + 1 3 2 49 0.65890303523437D-01 0.20202692942906D-18 + 2 3 2 49 -0.21619915347569D+00 -0.15195230819135D-15 + 3 3 2 49 -0.47616311444368D-01 -0.83990388590714D-16 + 1 4 2 49 -0.32179128749850D+01 -0.48752378704740D-18 + 2 4 2 49 -0.31266544890534D+01 0.73984531477530D-16 + 3 4 2 49 -0.12430520967716D+01 0.19264410040761D-16 + 1 5 2 49 0.62185490678856D-01 -0.10060562668775D-16 + 2 5 2 49 -0.52402244393142D+00 -0.19766381835019D-15 + 3 5 2 49 0.38755451493193D+00 0.54733846298307D-16 + 1 6 2 49 -0.32289744110740D+01 -0.72323814192933D-18 + 2 6 2 49 -0.31161797414798D+01 0.16149076004486D-15 + 3 6 2 49 0.13006788073403D+01 -0.24248438430405D-16 + 1 7 2 49 -0.78657874930479D-01 -0.14428117758736D-19 + 2 7 2 49 -0.20851766763871D+00 0.30848145033422D-15 + 3 7 2 49 0.99568015791879D-01 -0.17042484038891D-16 + 1 8 2 49 0.32372407928347D+01 0.15464888163942D-17 + 2 8 2 49 -0.31125065002563D+01 0.99970063023699D-16 + 3 8 2 49 0.13035185751495D+01 0.61304638539379D-16 + 1 9 2 49 0.43661313731034D+00 0.67703169327687D-17 + 2 9 2 49 -0.85626137921028D+00 -0.16389395497926D-16 + 3 9 2 49 0.51189089304039D+00 0.14049695688300D-16 + 1 10 2 49 0.30357007831939D+00 0.17715956877977D-16 + 2 10 2 49 0.19516178206943D+00 0.18535867155501D-15 + 3 10 2 49 -0.33295290077051D+00 -0.22839792080982D-16 + 1 11 2 49 0.21549861734933D-01 0.10250598699425D-16 + 2 11 2 49 0.25558392939322D+00 0.12797566133684D-15 + 3 11 2 49 0.13715963087914D-01 0.51340317928196D-17 + 1 12 2 49 0.41968061769711D+00 0.48031940971689D-16 + 2 12 2 49 -0.36794449471740D+00 0.16256482461308D-15 + 3 12 2 49 0.50897213131086D+00 -0.77285316493602D-18 + 1 13 2 49 -0.29415513634772D+00 0.21379444613805D-16 + 2 13 2 49 0.17336912281449D+00 0.42567811691160D-16 + 3 13 2 49 0.28303719140874D+00 0.22956769219588D-16 + 1 14 2 49 0.14059231269913D+02 0.19958183063657D-17 + 2 14 2 49 -0.26055260449517D+02 -0.79734887663410D-17 + 3 14 2 49 0.14052048986228D+02 -0.34903688214943D-16 + 1 15 2 49 0.28951291420750D+00 -0.67956173164938D-16 + 2 15 2 49 0.41507581536835D+00 0.11938225667759D-15 + 3 15 2 49 0.24621087117147D+00 -0.30547405660049D-16 + 1 16 2 49 0.12343771874599D+01 -0.13623771937533D-16 + 2 16 2 49 0.30102194717558D+01 0.10832402728533D-15 + 3 16 2 49 0.12144881578438D+01 0.35738018511633D-16 + 1 17 2 49 -0.12922970665964D+01 -0.36566270101386D-16 + 2 17 2 49 0.31665669045345D+01 0.17475120156134D-16 + 3 17 2 49 0.13605572144011D+01 0.11312358948174D-16 + 1 18 2 49 0.13479536424726D+00 0.64686251685374D-16 + 2 18 2 49 -0.15398128284685D-01 0.11600054753772D-16 + 3 18 2 49 0.93465445648178D-01 -0.11904172551588D-16 + 1 19 2 49 -0.89465979828499D-01 -0.29290945787111D-16 + 2 19 2 49 -0.19811576467610D-01 -0.20429777761991D-15 + 3 19 2 49 0.14001481061544D+00 -0.33094870224142D-16 + 1 20 2 49 0.11850558323564D+01 0.40452714697435D-17 + 2 20 2 49 0.30525156815770D+01 0.77995160868152D-16 + 3 20 2 49 -0.14073185650725D+01 -0.35545457311037D-16 + 1 21 2 49 -0.13218851373702D+01 -0.80340319369096D-16 + 2 21 2 49 0.30759193700457D+01 0.12501727759453D-16 + 3 21 2 49 -0.13043774859262D+01 0.31963568740102D-16 + 1 22 2 49 0.19179167582305D+00 -0.98405853849524D-16 + 2 22 2 49 0.32936438032625D+00 0.88831215982962D-16 + 3 22 2 49 -0.28673425970043D+00 -0.12826585948958D-16 + 1 23 2 49 -0.11060314530729D+00 0.67650971492376D-16 + 2 23 2 49 0.52373562507987D-02 0.22217754664388D-16 + 3 23 2 49 -0.74387259052571D-01 0.13010909910843D-16 + 1 24 2 49 -0.45051381424607D+00 0.12410819627741D-16 + 2 24 2 49 -0.79183951901711D+00 0.33114049806496D-16 + 3 24 2 49 0.48482976678670D+00 0.38883254657971D-16 + 1 25 2 49 -0.27609018658730D+00 0.53832589148569D-16 + 2 25 2 49 0.18438341282725D+00 -0.12751805138309D-15 + 3 25 2 49 -0.31268606285268D+00 -0.20511882392542D-16 + 1 26 2 49 -0.18633581868248D-01 0.10248706771543D-16 + 2 26 2 49 0.27252466740490D+00 0.58378670159598D-16 + 3 26 2 49 0.16403028717808D-01 -0.14830987448772D-16 + 1 27 2 49 -0.49364879915014D+00 0.25529794737444D-16 + 2 27 2 49 -0.43998710153765D+00 -0.97798439370089D-16 + 3 27 2 49 0.50232794404432D+00 -0.14659558609970D-16 + 1 28 2 49 0.34036146741602D+00 -0.24861114161249D-16 + 2 28 2 49 0.19148274089982D+00 -0.17433849861046D-15 + 3 28 2 49 0.27197998488543D+00 -0.77239945764358D-17 + 1 29 2 49 -0.13096970677307D+02 -0.43691115982541D-16 + 2 29 2 49 -0.25611518728893D+02 -0.27155345539709D-18 + 3 29 2 49 0.13619025127797D+02 0.76757621063004D-17 + 1 30 2 49 -0.55083122718630D+00 0.23021070284102D-16 + 2 30 2 49 -0.28805146597436D+00 0.80035348138652D-16 + 3 30 2 49 0.33277610511117D+00 0.53448955612818D-17 + 1 31 2 49 -0.30473593415085D+00 0.12949006868269D-16 + 2 31 2 49 0.46633976140985D+00 -0.13550676951021D-15 + 3 31 2 49 0.32560982930178D+00 -0.33946428566650D-16 + 1 32 2 49 -0.76751713481803D+00 0.23103049636318D-17 + 2 32 2 49 -0.30757828154629D+01 0.95512670039833D-16 + 3 32 2 49 0.25795643293890D+01 -0.39622596916277D-17 + 1 33 2 49 0.12951198397229D+01 -0.28339712911103D-16 + 2 33 2 49 -0.30626394163209D+01 0.34265948955992D-15 + 3 33 2 49 -0.32361500471502D+01 -0.26345456496433D-18 + 1 34 2 49 -0.14116852895950D+01 0.26383473855702D-16 + 2 34 2 49 -0.30064990613072D+01 -0.29880019927525D-15 + 3 34 2 49 -0.31905729764210D+01 0.39510593849255D-17 + 1 35 2 49 0.12255833182082D+01 0.47025162763540D-17 + 2 35 2 49 -0.31085143714600D+01 0.71299222660672D-16 + 3 35 2 49 0.31715093594047D+01 -0.45751456046906D-18 + 1 36 2 49 -0.11676445661641D+00 -0.70884881711434D-17 + 2 36 2 49 -0.24047697504348D+00 0.24037610774791D-15 + 3 36 2 49 -0.10862185381205D+00 -0.49121491360463D-18 + 1 37 2 49 0.67088866551376D-01 0.74032240641634D-17 + 2 37 2 49 -0.28160457200432D+00 -0.27690166782034D-15 + 3 37 2 49 0.11291188076494D+00 0.30168889757922D-17 + 1 38 2 49 -0.72483235593101D-01 0.26651312689961D-17 + 2 38 2 49 -0.17065132479147D+00 -0.26305155835921D-15 + 3 38 2 49 0.59446261974187D-01 -0.11461429018007D-17 + 1 39 2 49 0.93652105749600D-01 0.83895107723726D-17 + 2 39 2 49 -0.23199836150855D+00 0.57404025358386D-16 + 3 39 2 49 -0.98841998568625D-01 -0.49530978633719D-18 + 1 40 2 49 0.32566797249811D+00 0.25137222654148D-16 + 2 40 2 49 0.16835463342987D+00 0.25833680701930D-15 + 3 40 2 49 -0.30305418033182D+00 0.24061538247719D-16 + 1 41 2 49 -0.13679113574287D+02 0.16213906582104D-17 + 2 41 2 49 -0.26190006915435D+02 0.18227479656800D-15 + 3 41 2 49 -0.13932091528740D+02 -0.90373136420026D-16 + 1 42 2 49 -0.38632799622838D+00 -0.20053575593033D-16 + 2 42 2 49 -0.55330131078287D+00 -0.38831654936308D-17 + 3 42 2 49 -0.49852977540938D+00 -0.38867524866188D-17 + 1 43 2 49 -0.29803704164043D+00 -0.22935328500252D-17 + 2 43 2 49 0.62299032448476D+00 -0.21789301023624D-15 + 3 43 2 49 -0.43699935314725D+00 0.61803979088761D-17 + 1 44 2 49 -0.49371812521041D+00 -0.83515741236716D-17 + 2 44 2 49 -0.81832269216946D+00 -0.28550721845540D-17 + 3 44 2 49 -0.46213141658107D+00 -0.13361572289923D-16 + 1 45 2 49 -0.22867874047310D+00 -0.13306985494605D-16 + 2 45 2 49 0.19144027554770D+00 0.89923828871718D-16 + 3 45 2 49 0.30778667023405D+00 -0.60548948129062D-16 + 1 46 2 49 -0.10707045324182D+00 0.53449937130448D-16 + 2 46 2 49 0.32802942366760D+00 -0.16045849535838D-15 + 3 46 2 49 0.49505833736296D-01 -0.40009110019963D-16 + 1 47 2 49 -0.43245298590620D+00 0.29271039546905D-16 + 2 47 2 49 -0.31887366055225D+00 -0.71194758537905D-16 + 3 47 2 49 -0.59167202259456D+00 -0.18678533534917D-16 + 1 48 2 49 -0.25941992352620D-01 0.20944867284582D-18 + 2 48 2 49 -0.23998152292440D+00 -0.29273088993195D-17 + 3 48 2 49 0.67018209271095D-01 0.59889117586296D-18 + 1 49 2 49 -0.95835602795612D+00 0.00000000000000D+00 + 2 49 2 49 0.11902791374500D+03 0.00000000000000D+00 + 3 49 2 49 0.55259285124302D+00 0.00000000000000D+00 + 1 50 2 49 0.12214257078257D+00 0.47026443152725D-17 + 2 50 2 49 0.20929947359173D+00 0.45014396939085D-17 + 3 50 2 49 0.21334612465260D+00 0.27837122178166D-17 + 1 51 2 49 0.76325334859223D-02 0.11414254151924D-18 + 2 51 2 49 -0.39179030205287D+00 0.12118918515382D-17 + 3 51 2 49 -0.74889325537827D-02 0.50103009481367D-18 + 1 52 2 49 -0.12182195732168D-01 -0.49278357951666D-18 + 2 52 2 49 0.15513921470717D+01 -0.21737495660516D-17 + 3 52 2 49 0.50182227588190D-01 0.77928661375849D-19 + 1 53 2 49 -0.44494871188017D-02 0.65545335769248D-18 + 2 53 2 49 -0.22329293722580D+00 0.21100450066147D-18 + 3 53 2 49 -0.31725157218817D-02 0.40566022168666D-18 + 1 54 2 49 0.14934656076212D-01 0.11122296118210D-17 + 2 54 2 49 -0.79969290519243D-01 0.11085764814132D-17 + 3 54 2 49 0.20794212377672D-01 0.83791669239466D-18 + 1 55 2 49 -0.22596539548496D-01 0.52687728385888D-18 + 2 55 2 49 -0.67269915365605D-01 -0.61768506855346D-18 + 3 55 2 49 -0.11411960095221D+00 0.19175596943506D-18 + 1 56 2 49 -0.44122789176325D+00 -0.20732862211004D-16 + 2 56 2 49 0.18654111657419D+00 -0.53745468758309D-16 + 3 56 2 49 -0.26491264012521D+00 0.19275546661455D-16 + 1 57 2 49 0.13738598552669D+02 0.19629122283857D-16 + 2 57 2 49 -0.25755365692805D+02 -0.17819165877724D-15 + 3 57 2 49 -0.13838939719674D+02 0.58040872594432D-17 + 1 58 2 49 0.36639941053524D+00 0.21387884718109D-16 + 2 58 2 49 -0.32116000110639D+00 0.21756807120033D-16 + 3 58 2 49 -0.49151781919568D+00 -0.56768233237867D-17 + 1 59 2 49 0.28250092722397D+00 0.64815499175368D-18 + 2 59 2 49 0.49246290484205D+00 0.11946784030311D-15 + 3 59 2 49 -0.30437217106272D+00 0.24850705426428D-16 + 1 60 2 49 0.53882773265772D+00 -0.96686612588895D-17 + 2 60 2 49 -0.83525506489340D+00 0.31609458167562D-16 + 3 60 2 49 -0.55610764499212D+00 -0.10113763855326D-15 + 1 61 2 49 0.27710318582961D+00 0.63881066277611D-17 + 2 61 2 49 0.18807102073722D+00 0.84894960303506D-16 + 3 61 2 49 0.28569280361858D+00 -0.18486292966908D-17 + 1 62 2 49 0.20825616100104D-01 -0.15744288366839D-16 + 2 62 2 49 0.24492796035844D+00 0.31855709659584D-16 + 3 62 2 49 0.48541681642133D-01 0.23021902752023D-16 + 1 63 2 49 0.48878863251807D+00 -0.14242343872519D-16 + 2 63 2 49 -0.37201695309456D+00 0.22448825714628D-17 + 3 63 2 49 -0.47111525755596D+00 0.84379776044376D-17 + 1 64 2 49 0.20997989540767D+00 0.21469918602759D-16 + 2 64 2 49 -0.28583909973776D+00 -0.63702105538857D-16 + 3 64 2 49 0.35715189385479D+00 0.77426758797901D-17 + 1 65 2 49 0.88642642302324D-01 0.14287685441276D-16 + 2 65 2 49 -0.54380392083711D+00 -0.16414946601969D-15 + 3 65 2 49 0.45238333347917D+00 -0.36977937868787D-16 + 1 1 3 49 -0.13479536424726D+00 -0.20810530433719D-16 + 2 1 3 49 0.93465445648182D-01 -0.30901129281548D-16 + 3 1 3 49 -0.15398128284675D-01 -0.25888042858692D-16 + 1 2 3 49 -0.12343771874599D+01 0.50833053807220D-16 + 2 2 3 49 0.12144881578439D+01 0.78467094011376D-17 + 3 2 3 49 0.30102194717558D+01 0.72187102687760D-17 + 1 3 3 49 0.89465979828499D-01 -0.23627665604388D-16 + 2 3 3 49 0.14001481061544D+00 -0.83990388590714D-16 + 3 3 3 49 -0.19811576467605D-01 -0.60070760758706D-17 + 1 4 3 49 0.12922970665964D+01 -0.95654890500483D-17 + 2 4 3 49 0.13605572144011D+01 0.19264410040761D-16 + 3 4 3 49 0.31665669045345D+01 -0.67834532604030D-16 + 1 5 3 49 -0.19179167582305D+00 0.78805443756646D-16 + 2 5 3 49 -0.28673425970043D+00 0.54733846298307D-16 + 3 5 3 49 0.32936438032626D+00 0.80561249511741D-16 + 1 6 3 49 -0.11850558323564D+01 0.40730494336349D-17 + 2 6 3 49 -0.14073185650725D+01 -0.24248438430405D-16 + 3 6 3 49 0.30525156815770D+01 0.72918615084948D-17 + 1 7 3 49 0.11060314530730D+00 0.35873316122867D-16 + 2 7 3 49 -0.74387259052580D-01 -0.17042484038891D-16 + 3 7 3 49 0.52373562507987D-02 -0.46967718883031D-17 + 1 8 3 49 0.13218851373702D+01 -0.10093008478173D-16 + 2 8 3 49 -0.13035185751495D+01 0.61304638539379D-16 + 3 8 3 49 0.30759193700457D+01 0.12843438851477D-16 + 1 9 3 49 -0.41988319625712D+00 0.76286806420698D-17 + 2 9 3 49 0.50875028205127D+00 0.14049695688300D-16 + 3 9 3 49 -0.36794449471739D+00 0.27580380621793D-16 + 1 10 3 49 -0.30357007831937D+00 0.31224807794196D-16 + 2 10 3 49 -0.33254998961700D+00 -0.22839792080982D-16 + 3 10 3 49 0.19492375400721D+00 0.62194048547772D-16 + 1 11 3 49 -0.21549861734922D-01 -0.32761352693827D-16 + 2 11 3 49 0.13863894612279D-01 0.51340317928196D-17 + 3 11 3 49 0.25547462007207D+00 -0.60567244871835D-16 + 1 12 3 49 -0.43679527610675D+00 0.13715332947941D-17 + 2 12 3 49 0.51189089304038D+00 -0.77285316493602D-18 + 3 12 3 49 -0.85536555934428D+00 0.15819036768759D-16 + 1 13 3 49 -0.28946461609932D+00 -0.19158748725510D-16 + 2 13 3 49 0.24606927179024D+00 0.22956769219588D-16 + 3 13 3 49 0.41507581536839D+00 0.31255711912697D-15 + 1 14 3 49 -0.14059231269913D+02 -0.22768096244383D-16 + 2 14 3 49 0.14052238801212D+02 -0.34903688214943D-16 + 3 14 3 49 -0.26051304634116D+02 0.34833915289439D-16 + 1 15 3 49 0.29424501838483D+00 0.17073562061969D-16 + 2 15 3 49 0.28303719140876D+00 -0.30547405660049D-16 + 3 15 3 49 0.17338507247210D+00 0.31495136743746D-15 + 1 16 3 49 -0.32008726391262D+01 -0.35328771802565D-17 + 2 16 3 49 -0.14307103494987D+01 0.35738018511633D-16 + 3 16 3 49 -0.30979715045097D+01 0.29197360596289D-17 + 1 17 3 49 0.32179128749850D+01 0.10999787677527D-17 + 2 17 3 49 -0.12430520967716D+01 0.11312358948174D-16 + 3 17 3 49 -0.31266544890534D+01 0.15844339195636D-15 + 1 18 3 49 0.68866005259069D-01 0.10531185618820D-17 + 2 18 3 49 -0.44248198131509D-01 -0.11904172551588D-16 + 3 18 3 49 -0.26140025060353D+00 -0.29622204500379D-15 + 1 19 3 49 -0.65890303523436D-01 -0.29359459586108D-17 + 2 19 3 49 -0.47616311444369D-01 -0.33094870224142D-16 + 3 19 3 49 -0.21619915347569D+00 -0.16848744234877D-15 + 1 20 3 49 0.32289744110740D+01 -0.61694850901565D-18 + 2 20 3 49 0.13006788073403D+01 -0.35545457311037D-16 + 3 20 3 49 -0.31161797414797D+01 0.86461068994468D-16 + 1 21 3 49 -0.32372407928346D+01 -0.94005052155717D-18 + 2 21 3 49 0.13043774859262D+01 0.31963568740102D-16 + 3 21 3 49 -0.31125065002563D+01 0.17547759186822D-15 + 1 22 3 49 -0.62185490678856D-01 0.28686593025061D-18 + 2 22 3 49 0.38755451493193D+00 -0.12826585948958D-16 + 3 22 3 49 -0.52402244393143D+00 0.20377198286273D-15 + 1 23 3 49 0.78657874930476D-01 -0.19353016877900D-17 + 2 23 3 49 0.99568015791888D-01 0.13010909910843D-16 + 3 23 3 49 -0.20851766763871D+00 -0.21748250346964D-15 + 1 24 3 49 0.49364879915014D+00 -0.15131422945616D-16 + 2 24 3 49 0.50232794404431D+00 0.38883254657971D-16 + 3 24 3 49 -0.43998710153765D+00 0.80077249569691D-16 + 1 25 3 49 0.27609018658725D+00 -0.10429088455293D-16 + 2 25 3 49 -0.31268606285268D+00 -0.20511882392542D-16 + 3 25 3 49 0.18438341282726D+00 -0.84970483807028D-16 + 1 26 3 49 0.18633581868220D-01 -0.24277244802255D-16 + 2 26 3 49 0.16403028717808D-01 -0.14830987448772D-16 + 3 26 3 49 0.27252466740491D+00 0.10998707938727D-15 + 1 27 3 49 0.45051381424610D+00 0.37916173022849D-16 + 2 27 3 49 0.48482976678670D+00 -0.14659558609970D-16 + 3 27 3 49 -0.79183951901711D+00 -0.78210271090078D-16 + 1 28 3 49 0.30473593415093D+00 0.36474261736706D-16 + 2 28 3 49 0.32560982930180D+00 -0.77239945764358D-17 + 3 28 3 49 0.46633976140989D+00 -0.22393090023076D-15 + 1 29 3 49 0.13096970677307D+02 0.33622389950119D-17 + 2 29 3 49 0.13619025127797D+02 0.76757621063004D-17 + 3 29 3 49 -0.25611518728893D+02 -0.79365514557571D-16 + 1 30 3 49 0.55083122718628D+00 -0.83049304193846D-17 + 2 30 3 49 0.33277610511117D+00 0.53448955612818D-17 + 3 30 3 49 -0.28805146597436D+00 -0.73480849304276D-16 + 1 31 3 49 -0.34036146741609D+00 0.55958200001327D-16 + 2 31 3 49 0.27197998488541D+00 -0.33946428566650D-16 + 3 31 3 49 0.19148274089983D+00 -0.11530828007773D-16 + 1 32 3 49 0.76751713481803D+00 0.75266172854227D-17 + 2 32 3 49 0.25795643293890D+01 -0.39622596916277D-17 + 3 32 3 49 -0.30757828154629D+01 0.22974188094931D-15 + 1 33 3 49 0.14116852895950D+01 -0.17316792276898D-16 + 2 33 3 49 -0.31905729764210D+01 -0.26345456496433D-18 + 3 33 3 49 -0.30064990613072D+01 0.19892826211190D-15 + 1 34 3 49 -0.12951198397229D+01 -0.28896587384652D-16 + 2 34 3 49 -0.32361500471502D+01 0.39510593849255D-17 + 3 34 3 49 -0.30626394163209D+01 -0.13688411701739D-15 + 1 35 3 49 -0.12255833182082D+01 -0.22984631194384D-16 + 2 35 3 49 0.31715093594047D+01 -0.45751456046906D-18 + 3 35 3 49 -0.31085143714600D+01 0.27808924444567D-15 + 1 36 3 49 0.11676445661641D+00 -0.57602415680592D-17 + 2 36 3 49 -0.10862185381205D+00 -0.49121491360463D-18 + 3 36 3 49 -0.24047697504348D+00 0.17588282096401D-15 + 1 37 3 49 0.72483235593101D-01 -0.20521223165547D-16 + 2 37 3 49 0.59446261974187D-01 0.30168889757922D-17 + 3 37 3 49 -0.17065132479147D+00 0.28382921246118D-15 + 1 38 3 49 -0.67088866551376D-01 0.31057449448208D-16 + 2 38 3 49 0.11291188076494D+00 -0.11461429018007D-17 + 3 38 3 49 -0.28160457200432D+00 0.81283811607312D-16 + 1 39 3 49 -0.93652105749600D-01 0.17887530730386D-16 + 2 39 3 49 -0.98841998568625D-01 -0.49530978633719D-18 + 3 39 3 49 -0.23199836150855D+00 -0.18674753246279D-15 + 1 40 3 49 -0.28250092722397D+00 0.28526298824849D-16 + 2 40 3 49 -0.30437217106272D+00 0.24061538247719D-16 + 3 40 3 49 0.49246290484206D+00 0.12604391471011D-15 + 1 41 3 49 -0.13738598552669D+02 0.11033639226959D-16 + 2 41 3 49 -0.13838939719675D+02 -0.90373136420026D-16 + 3 41 3 49 -0.25755365692805D+02 0.31166519053562D-15 + 1 42 3 49 -0.36639941053523D+00 -0.23891270459864D-16 + 2 42 3 49 -0.49151781919568D+00 -0.38867524866188D-17 + 3 42 3 49 -0.32116000110639D+00 0.11236675608478D-16 + 1 43 3 49 0.44122789176326D+00 -0.10525889516547D-16 + 2 43 3 49 -0.26491264012522D+00 0.61803979088761D-17 + 3 43 3 49 0.18654111657419D+00 0.23718387831135D-15 + 1 44 3 49 -0.48878863251807D+00 -0.35877128733971D-16 + 2 44 3 49 -0.47111525755596D+00 -0.13361572289923D-16 + 3 44 3 49 -0.37201695309456D+00 -0.70109729859854D-16 + 1 45 3 49 -0.27710318582961D+00 -0.28302306166109D-16 + 2 45 3 49 0.28569280361858D+00 -0.60548948129062D-16 + 3 45 3 49 0.18807102073723D+00 0.12164367303508D-15 + 1 46 3 49 -0.20825616100107D-01 0.27772455743625D-16 + 2 46 3 49 0.48541681642132D-01 -0.40009110019963D-16 + 3 46 3 49 0.24492796035845D+00 0.39993090874506D-16 + 1 47 3 49 -0.53882773265771D+00 -0.17031134211040D-16 + 2 47 3 49 -0.55610764499212D+00 -0.18678533534917D-16 + 3 47 3 49 -0.83525506489339D+00 -0.44039550338595D-16 + 1 48 3 49 -0.76325334859224D-02 -0.25960607305085D-18 + 2 48 3 49 -0.74889325537828D-02 0.59889117586296D-18 + 3 48 3 49 -0.39179030205287D+00 -0.90821385660485D-17 + 1 49 3 49 0.95835602795637D+00 0.00000000000000D+00 + 2 49 3 49 0.55259285124302D+00 0.00000000000000D+00 + 3 49 3 49 0.11902791374500D+03 0.00000000000000D+00 + 1 50 3 49 -0.12214257078257D+00 -0.64481192958400D-17 + 2 50 3 49 0.21334612465260D+00 0.27837122178166D-17 + 3 50 3 49 0.20929947359173D+00 -0.22999893028604D-16 + 1 51 3 49 0.25941992352620D-01 -0.31718565319225D-18 + 2 51 3 49 0.67018209271095D-01 0.50103009481367D-18 + 3 51 3 49 -0.23998152292440D+00 -0.76506553741440D-18 + 1 52 3 49 0.22596539548496D-01 -0.24682146161990D-18 + 2 52 3 49 -0.11411960095221D+00 0.77928661375849D-19 + 3 52 3 49 -0.67269915365609D-01 -0.15277717731574D-17 + 1 53 3 49 0.44494871188017D-02 0.56907957317509D-18 + 2 53 3 49 -0.31725157218817D-02 0.40566022168666D-18 + 3 53 3 49 -0.22329293722580D+00 -0.65016547886506D-18 + 1 54 3 49 -0.14934656076212D-01 0.15140751063227D-17 + 2 54 3 49 0.20794212377672D-01 0.83791669239466D-18 + 3 54 3 49 -0.79969290519245D-01 0.43337678519150D-17 + 1 55 3 49 0.12182195732168D-01 -0.98775332220955D-18 + 2 55 3 49 0.50182227588190D-01 0.19175596943506D-18 + 3 55 3 49 0.15513921470717D+01 -0.78348626586804D-17 + 1 56 3 49 0.29803704164042D+00 0.27790630543656D-16 + 2 56 3 49 -0.43699935314724D+00 0.19275546661455D-16 + 3 56 3 49 0.62299032448476D+00 -0.18212458913899D-16 + 1 57 3 49 0.13679113574287D+02 -0.11959923425882D-16 + 2 57 3 49 -0.13932091528740D+02 0.58040872594432D-17 + 3 57 3 49 -0.26190006915435D+02 -0.17493142014518D-15 + 1 58 3 49 0.38632799622838D+00 -0.74556868276409D-17 + 2 58 3 49 -0.49852977540938D+00 -0.56768233237867D-17 + 3 58 3 49 -0.55330131078287D+00 0.76910268611767D-16 + 1 59 3 49 -0.32566797249812D+00 -0.10463067047830D-16 + 2 59 3 49 -0.30305418033182D+00 0.24850705426428D-16 + 3 59 3 49 0.16835463342987D+00 -0.13550431372641D-16 + 1 60 3 49 0.43245298590620D+00 -0.16550530088016D-16 + 2 60 3 49 -0.59167202259456D+00 -0.10113763855326D-15 + 3 60 3 49 -0.31887366055224D+00 0.16123199043984D-15 + 1 61 3 49 0.22867874047310D+00 -0.11603959299606D-16 + 2 61 3 49 0.30778667023405D+00 -0.18486292966908D-17 + 3 61 3 49 0.19144027554770D+00 0.30910615529874D-15 + 1 62 3 49 0.10707045324182D+00 0.23036763995059D-16 + 2 62 3 49 0.49505833736297D-01 0.23021902752023D-16 + 3 62 3 49 0.32802942366760D+00 -0.21986208623207D-15 + 1 63 3 49 0.49371812521041D+00 0.25873195763994D-16 + 2 63 3 49 -0.46213141658107D+00 0.84379776044376D-17 + 3 63 3 49 -0.81832269216946D+00 -0.13959061651690D-15 + 1 64 3 49 -0.20997989540765D+00 -0.17411791730223D-17 + 2 64 3 49 0.35715189385479D+00 0.77426758797901D-17 + 3 64 3 49 -0.28583909973776D+00 -0.41883190001838D-16 + 1 65 3 49 -0.88642642302333D-01 0.14666543024304D-16 + 2 65 3 49 0.45089988636511D+00 -0.36977937868787D-16 + 3 65 3 49 -0.54441867132873D+00 0.30624873443874D-15 + 1 1 1 50 -0.30801803345459D+01 0.28700761492274D-15 + 2 1 1 50 -0.32340459656324D+01 -0.19936682461673D-17 + 3 1 1 50 -0.21253208600549D+01 0.63951562603661D-16 + 1 2 1 50 -0.14227691375251D+00 -0.16173005126553D-15 + 2 2 1 50 -0.82013102129496D-01 -0.70300394150664D-17 + 3 2 1 50 0.27447155986461D-01 -0.24896958861607D-16 + 1 3 1 50 -0.30338589403061D+01 0.62337594482178D-16 + 2 3 1 50 0.39313346883593D+01 -0.47650900030076D-17 + 3 3 1 50 0.14435244257965D+01 0.73569570858596D-16 + 1 4 1 50 -0.19682298503713D+00 0.20205019028545D-15 + 2 4 1 50 -0.13436069301927D+00 0.96492428370856D-17 + 3 4 1 50 0.12700528632817D+00 -0.32789650457004D-16 + 1 5 1 50 -0.74255974099530D-01 -0.23852461021352D-15 + 2 5 1 50 -0.71824896247095D+00 -0.22755510167223D-17 + 3 5 1 50 0.76962261638419D-01 0.95866672655538D-16 + 1 6 1 50 -0.21143668169989D+00 0.24504791922272D-15 + 2 6 1 50 -0.22701782239700D-01 -0.27762584980695D-17 + 3 6 1 50 -0.42131995820270D-01 -0.98014606144506D-16 + 1 7 1 50 -0.31805611728353D+01 0.28414873257867D-15 + 2 7 1 50 -0.29031814937507D+01 -0.74884494645691D-17 + 3 7 1 50 0.81602640442448D+00 0.78032377344758D-16 + 1 8 1 50 -0.17607364125105D+00 -0.16780496640442D-15 + 2 8 1 50 0.62185490678856D-01 -0.21080755190225D-17 + 3 8 1 50 0.19179167582305D+00 -0.10202006509255D-15 + 1 9 1 50 -0.56232000950251D+00 0.67391493750199D-17 + 2 9 1 50 0.84721126622977D+00 0.31047691536221D-17 + 3 9 1 50 -0.60849755258757D+00 -0.17307513716032D-16 + 1 10 1 50 0.17320912229094D+00 -0.49355538324752D-16 + 2 10 1 50 0.37271483882127D-01 -0.21101014497519D-16 + 3 10 1 50 -0.37195381045484D-01 -0.46945896683179D-16 + 1 11 1 50 0.81947426797948D-01 0.14013299269287D-16 + 2 11 1 50 -0.61839945774206D-01 -0.29620214427380D-16 + 3 11 1 50 0.62253763049849D-01 -0.44467817572633D-16 + 1 12 1 50 -0.56228343072505D+00 0.33385144836038D-16 + 2 12 1 50 0.60849755258757D+00 -0.28790554609769D-16 + 3 12 1 50 -0.84689654062457D+00 -0.19846788027806D-16 + 1 13 1 50 0.31536293489752D+00 -0.69263713813317D-17 + 2 13 1 50 0.13240972760752D+00 -0.60349659709097D-16 + 3 13 1 50 0.27876761996520D+00 -0.58764520154695D-17 + 1 14 1 50 -0.67495503113389D+00 -0.69788152739313D-16 + 2 14 1 50 0.38994974041022D+00 -0.41481947548295D-16 + 3 14 1 50 -0.39052847202262D+00 -0.15055902153475D-16 + 1 15 1 50 0.31531816585510D+00 0.30042126037356D-16 + 2 15 1 50 -0.27876761996521D+00 0.19452776498755D-16 + 3 15 1 50 -0.13251019054802D+00 0.27541019172291D-16 + 1 16 1 50 -0.14227691375252D+00 0.15741452850833D-15 + 2 16 1 50 -0.27447155986465D-01 0.37373768599338D-16 + 3 16 1 50 0.82013102129526D-01 0.76196131612857D-17 + 1 17 1 50 -0.19682298503715D+00 -0.11056759830387D-15 + 2 17 1 50 -0.12700528632820D+00 0.11970304807384D-17 + 3 17 1 50 0.13436069301924D+00 0.24941193665810D-17 + 1 18 1 50 -0.30801803345459D+01 0.19272751417749D-15 + 2 18 1 50 0.21253208600549D+01 -0.45125042331858D-17 + 3 18 1 50 0.32340459656325D+01 -0.91115116742681D-17 + 1 19 1 50 -0.30338589403063D+01 -0.20141910370680D-15 + 2 19 1 50 -0.14435244257966D+01 0.69797937144839D-16 + 3 19 1 50 -0.39313346883589D+01 -0.33092428549420D-17 + 1 20 1 50 -0.21143668169989D+00 0.13145602569620D-15 + 2 20 1 50 0.42131995820271D-01 -0.11579390015129D-16 + 3 20 1 50 0.22701782239698D-01 0.45379430344381D-17 + 1 21 1 50 -0.17607364125100D+00 0.23364853025839D-15 + 2 21 1 50 -0.19179167582305D+00 0.54993968375397D-16 + 3 21 1 50 -0.62185490678856D-01 -0.54025473232044D-18 + 1 22 1 50 -0.74255974099445D-01 0.11984495257542D-15 + 2 22 1 50 -0.76962261638420D-01 0.28363429434782D-16 + 3 22 1 50 0.71824896247095D+00 -0.89516717679435D-17 + 1 23 1 50 -0.31805611728354D+01 -0.27884395503368D-15 + 2 23 1 50 -0.81602640442449D+00 0.60399188864171D-16 + 3 23 1 50 0.29031814937507D+01 -0.42892504912993D-17 + 1 24 1 50 -0.65231166976827D+00 0.69269814298648D-16 + 2 24 1 50 -0.65185720354859D+00 -0.22255794633165D-16 + 3 24 1 50 0.69849934038531D+00 0.79156996423685D-17 + 1 25 1 50 0.66616917000311D-01 0.62632539889681D-16 + 2 25 1 50 -0.39364144236510D-01 0.18383861028134D-16 + 3 25 1 50 0.39364144236508D-01 0.14458166646877D-16 + 1 26 1 50 -0.68667561303235D+00 -0.12227525445815D-15 + 2 26 1 50 0.18211420457948D+00 -0.52840362154219D-16 + 3 26 1 50 -0.18211420457947D+00 0.98573969476469D-16 + 1 27 1 50 -0.65231166976828D+00 0.47463350670804D-16 + 2 27 1 50 -0.69849934038531D+00 0.43826969905525D-16 + 3 27 1 50 0.65185720354859D+00 -0.30083899159319D-16 + 1 28 1 50 0.39765551661824D+00 0.12661853011689D-15 + 2 28 1 50 -0.17009621215182D+00 0.41571883039937D-16 + 3 28 1 50 -0.15147754531560D+00 0.26684894409029D-16 + 1 29 1 50 -0.72781243184308D+00 -0.95347961248826D-16 + 2 29 1 50 -0.43370263089718D+00 0.37779730184386D-16 + 3 29 1 50 0.43370263089718D+00 0.38508145414933D-16 + 1 30 1 50 -0.30811084949260D+02 -0.42875633434494D-16 + 2 30 1 50 -0.14985549786739D+02 0.68785720353961D-17 + 3 30 1 50 0.14985549786739D+02 -0.44137292319900D-16 + 1 31 1 50 0.39765551661822D+00 -0.66043992821943D-17 + 2 31 1 50 0.15147754531560D+00 -0.17410624869876D-16 + 3 31 1 50 0.17009621215183D+00 0.32774074142526D-18 + 1 32 1 50 0.24096778295632D+01 -0.67475745158907D-16 + 2 32 1 50 -0.62152515350495D+00 -0.10849108803968D-16 + 3 32 1 50 0.62152515350495D+00 -0.13118911130004D-17 + 1 33 1 50 0.28295565651853D+01 -0.34862960212953D-16 + 2 33 1 50 0.15177320252663D+01 -0.16221515536106D-16 + 3 33 1 50 0.15565761819559D+01 -0.32498263750828D-16 + 1 34 1 50 0.28295565651853D+01 -0.24929737715274D-16 + 2 34 1 50 -0.15565761819559D+01 -0.99181033347210D-17 + 3 34 1 50 -0.15177320252663D+01 -0.18458571019536D-16 + 1 35 1 50 0.28298793736917D+01 0.97852423453756D-16 + 2 35 1 50 0.76751713481802D+00 0.17104833143206D-16 + 3 35 1 50 -0.76751713481803D+00 0.10662542823744D-16 + 1 36 1 50 -0.59361263754469D-01 0.10243819209850D-15 + 2 36 1 50 0.25927238246944D-01 -0.30989516254591D-16 + 3 36 1 50 -0.25927238246940D-01 0.24629436450502D-16 + 1 37 1 50 0.87836048719720D-01 -0.92258003112564D-17 + 2 37 1 50 -0.62056743571325D-02 -0.11859382292265D-16 + 3 37 1 50 0.25019036966430D+00 -0.26710645576182D-16 + 1 38 1 50 0.87836048719610D-01 -0.50615107394901D-15 + 2 38 1 50 -0.25019036966429D+00 -0.21781277909920D-16 + 3 38 1 50 0.62056743571327D-02 -0.26553670840492D-16 + 1 39 1 50 -0.36115044457193D-01 0.86308539813826D-16 + 2 39 1 50 0.14342087980567D-01 -0.15532398306354D-16 + 3 39 1 50 -0.14342087980569D-01 -0.94202801620121D-17 + 1 40 1 50 0.57174427519661D-01 0.25682279799356D-16 + 2 40 1 50 0.37616317979358D-02 -0.25954215830022D-17 + 3 40 1 50 0.55427107238845D-02 0.29283482771480D-16 + 1 41 1 50 -0.77015767769167D+00 -0.68624727697384D-17 + 2 41 1 50 -0.30544660227199D+00 -0.85932280129046D-17 + 3 41 1 50 -0.42673169159092D+00 0.14550306018184D-16 + 1 42 1 50 -0.24353371012176D+02 0.34456701903324D-15 + 2 42 1 50 -0.17151064833579D+02 0.21326644701811D-16 + 3 42 1 50 -0.13111602562201D+02 -0.60756770034234D-16 + 1 43 1 50 0.24026317668265D+00 -0.61868293595439D-16 + 2 43 1 50 0.69344548756158D+00 -0.28758038482294D-16 + 3 43 1 50 -0.69836127851068D+00 0.62758369072402D-17 + 1 44 1 50 -0.69224099805297D-01 0.90172441861797D-16 + 2 44 1 50 -0.25116868051170D+00 0.15457878521668D-17 + 3 44 1 50 -0.34082333285974D+00 0.14147277405977D-16 + 1 45 1 50 0.19309537375821D+00 0.13636526644093D-15 + 2 45 1 50 -0.29764610515245D-01 0.64090319770691D-17 + 3 45 1 50 -0.29121581310743D-01 0.17200162626509D-16 + 1 46 1 50 0.43428936181686D-01 0.23258772508013D-15 + 2 46 1 50 -0.12590578526660D+00 -0.18663456355422D-16 + 3 46 1 50 0.35757827279206D-01 -0.76999048770248D-16 + 1 47 1 50 0.33793601791265D+00 0.91187282707144D-16 + 2 47 1 50 0.28590715431927D+00 -0.41546869558908D-17 + 3 47 1 50 0.26317444518414D+00 -0.12658003046588D-16 + 1 48 1 50 -0.83718992029356D-01 -0.41841941483816D-16 + 2 48 1 50 -0.11599296174228D+00 0.64515499312815D-17 + 3 48 1 50 -0.24475038061527D-01 0.50576820078155D-17 + 1 49 1 50 0.13557269446422D+01 -0.13239682046010D-16 + 2 49 1 50 0.12214257078257D+00 -0.47026443152725D-17 + 3 49 1 50 -0.12214257078257D+00 0.64481192958400D-17 + 1 50 1 50 0.10869506154593D+03 0.00000000000000D+00 + 2 50 1 50 0.38075754141964D+01 0.00000000000000D+00 + 3 50 1 50 -0.38075754141959D+01 0.00000000000000D+00 + 1 51 1 50 -0.83718992029358D-01 0.35843046182340D-16 + 2 51 1 50 0.24475038061527D-01 -0.94400830166723D-17 + 3 51 1 50 0.11599296174228D+00 0.47474862447388D-16 + 1 52 1 50 -0.12969776100868D+00 0.36968819932965D-16 + 2 52 1 50 -0.37629163850713D-01 0.72790666279897D-17 + 3 52 1 50 0.94007595960451D-02 0.13637070612922D-16 + 1 53 1 50 -0.79888593078686D-01 -0.11690787943347D-16 + 2 53 1 50 -0.21521344319738D-01 0.73169854558778D-17 + 3 53 1 50 0.21521344319737D-01 0.62200509432651D-17 + 1 54 1 50 -0.40109275971454D+00 -0.74208858637730D-16 + 2 54 1 50 0.32585525274066D-01 -0.20355825577542D-17 + 3 54 1 50 -0.32585525274078D-01 0.88422455369566D-17 + 1 55 1 50 -0.12969776100859D+00 0.19637837688879D-16 + 2 55 1 50 -0.94007595960364D-02 0.56049401779152D-17 + 3 55 1 50 0.37629163850709D-01 0.90887176504224D-18 + 1 56 1 50 0.24026317668264D+00 0.86668881339230D-16 + 2 56 1 50 0.69836127851068D+00 0.30039221273980D-16 + 3 56 1 50 -0.69344548756158D+00 -0.30213347023978D-16 + 1 57 1 50 -0.77015767769167D+00 -0.17626237402126D-15 + 2 57 1 50 0.42673169159091D+00 -0.97406398281501D-17 + 3 57 1 50 0.30544660227199D+00 -0.24299298176360D-16 + 1 58 1 50 -0.24353371012176D+02 0.50824664903115D-16 + 2 58 1 50 0.13111602562201D+02 -0.65659396377470D-18 + 3 58 1 50 0.17151064833579D+02 0.45365497345198D-17 + 1 59 1 50 0.57174427519660D-01 0.11984139107091D-15 + 2 59 1 50 -0.55427107238890D-02 -0.44374203460088D-17 + 3 59 1 50 -0.37616317979252D-02 -0.75375696682784D-17 + 1 60 1 50 0.33793601791265D+00 -0.71956657101483D-19 + 2 60 1 50 -0.26317444518414D+00 -0.13969214165075D-16 + 3 60 1 50 -0.28590715431927D+00 -0.47429112074887D-16 + 1 61 1 50 0.19309537375821D+00 -0.28038529393144D-15 + 2 61 1 50 0.29121581310743D-01 0.29080109851609D-16 + 3 61 1 50 0.29764610515246D-01 0.51605912081619D-17 + 1 62 1 50 0.43428936181690D-01 -0.16856781393149D-17 + 2 62 1 50 -0.35757827279208D-01 0.59239953912890D-17 + 3 62 1 50 0.12590578526660D+00 0.20209970931017D-18 + 1 63 1 50 -0.69224099805295D-01 0.40253806399694D-16 + 2 63 1 50 0.34082333285974D+00 0.30492848273025D-16 + 3 63 1 50 0.25116868051171D+00 -0.45181140028379D-17 + 1 64 1 50 -0.87492346166496D+01 0.24239473280516D-15 + 2 64 1 50 0.46055311281217D+01 -0.84380041989794D-16 + 3 64 1 50 -0.46055311281217D+01 0.16103272952989D-16 + 1 65 1 50 -0.88973794530551D+01 -0.20526381902072D-15 + 2 65 1 50 0.12816834899248D+02 0.51172295326271D-17 + 3 65 1 50 -0.12819194379086D+02 -0.65895415865842D-17 + 1 1 2 50 -0.27304288889754D+01 -0.19936682461673D-17 + 2 1 2 50 -0.18994089981028D+01 0.34041364696237D-15 + 3 1 2 50 -0.20752894122620D+01 -0.64083355308429D-16 + 1 2 2 50 -0.63788193896406D+00 -0.70300394150664D-17 + 2 2 2 50 0.62293770665093D+00 0.72225294615573D-16 + 3 2 2 50 0.10691912141849D+01 -0.77177996324989D-17 + 1 3 2 50 0.46171555433879D+01 -0.47650900030076D-17 + 2 3 2 50 -0.50448506524643D+01 0.47245377780989D-17 + 3 3 2 50 -0.29658009543567D+01 0.83992812189032D-16 + 1 4 2 50 -0.92961861660142D-01 0.96492428370856D-17 + 2 4 2 50 -0.36216127554279D+00 -0.20156583969993D-15 + 3 4 2 50 -0.20914673817791D-01 0.89198567899931D-16 + 1 5 2 50 -0.71824896247095D+00 -0.22755510167223D-17 + 2 5 2 50 0.81483082564649D+01 -0.17678243207806D-15 + 3 5 2 50 -0.72382928212444D+01 0.13845989879332D-17 + 1 6 2 50 0.37172800955781D+00 -0.27762584980695D-17 + 2 6 2 50 0.18707498056840D+00 -0.12390976584301D-15 + 3 6 2 50 0.51652952950282D+00 0.56327958320667D-17 + 1 7 2 50 -0.32919452336552D+01 -0.74884494645691D-17 + 2 7 2 50 -0.31495638884331D+01 -0.10476788724749D-15 + 3 7 2 50 0.10224519877059D+01 -0.11683227889522D-16 + 1 8 2 50 -0.67118144898918D-02 -0.21080755190225D-17 + 2 8 2 50 -0.52402244393142D+00 0.28958544742361D-15 + 3 8 2 50 0.28673425970043D+00 0.30117474038350D-16 + 1 9 2 50 0.94688371612199D+00 0.31047691536221D-17 + 2 9 2 50 -0.80157981776837D+00 -0.56563523074967D-16 + 3 9 2 50 0.95887137638927D+00 0.15221818973714D-16 + 1 10 2 50 0.13264716423591D-01 -0.21101014497519D-16 + 2 10 2 50 0.23206325517201D+00 0.63384626059777D-16 + 3 10 2 50 -0.25240149066064D-02 -0.15515944440539D-16 + 1 11 2 50 -0.50835817538452D-01 -0.29620214427380D-16 + 2 11 2 50 0.16849926571053D+00 0.57425319889277D-16 + 3 11 2 50 -0.13309048952211D+00 -0.82902428088187D-17 + 1 12 2 50 0.44537504933503D+00 -0.28790554609769D-16 + 2 12 2 50 -0.31366955960620D+00 0.45405285198471D-16 + 3 12 2 50 0.34902446133750D+00 0.23196825258001D-16 + 1 13 2 50 0.17284784351064D+00 -0.60349659709097D-16 + 2 13 2 50 0.51572736924008D+00 -0.96866515628018D-16 + 3 13 2 50 0.20346636314716D+00 0.30127632180721D-17 + 1 14 2 50 0.45734933338904D+00 -0.41481947548295D-16 + 2 14 2 50 -0.44958654399267D+00 -0.17309015559462D-15 + 3 14 2 50 0.60753170009591D+00 -0.27552990198476D-16 + 1 15 2 50 -0.29561622081643D+00 0.19452776498755D-16 + 2 15 2 50 0.25241496941609D+00 -0.56807531605397D-16 + 3 15 2 50 0.27006261064948D+00 0.29611626684610D-16 + 1 16 2 50 0.55458505988008D+00 0.37373768599338D-16 + 2 16 2 50 0.12432638468928D+01 -0.24551113511462D-16 + 3 16 2 50 0.93257181798683D+00 0.32476357968744D-16 + 1 17 2 50 0.46363386037039D-01 0.11970304807384D-17 + 2 17 2 50 0.17901783548743D+00 -0.27811479721443D-16 + 3 17 2 50 -0.25060787165518D-01 -0.13898143913597D-16 + 1 18 2 50 -0.97182246126537D+00 -0.45125042331858D-17 + 2 18 2 50 0.18056327608835D+01 0.10893140389954D-15 + 3 18 2 50 0.17882170017425D+01 0.28472427733180D-16 + 1 19 2 50 0.17512457825153D+00 0.69797937144839D-16 + 2 19 2 50 0.96910325492603D+00 -0.81784350141554D-16 + 3 19 2 50 -0.26312833464488D+00 0.62677192738234D-17 + 1 20 2 50 -0.46714702670666D+00 -0.11579390015129D-16 + 2 20 2 50 0.33819761922103D+00 0.44453079498417D-16 + 3 20 2 50 0.15857612882839D+00 -0.10323272464614D-16 + 1 21 2 50 0.98978215545325D-01 0.54993968375397D-16 + 2 21 2 50 0.32936438032625D+00 0.13362264751931D-15 + 3 21 2 50 -0.38755451493193D+00 0.37142285978669D-17 + 1 22 2 50 0.76962261638419D-01 0.28363429434782D-16 + 2 22 2 50 -0.70576265098416D+01 -0.16698129483754D-15 + 3 22 2 50 0.72403265890006D+01 -0.21590504018136D-16 + 1 23 2 50 0.17990004975472D+01 0.60399188864171D-16 + 2 23 2 50 0.26553207591071D+01 0.19463099892794D-15 + 3 23 2 50 -0.15092623549221D+01 -0.77270191992190D-16 + 1 24 2 50 -0.45000684445274D+00 -0.22255794633165D-16 + 2 24 2 50 -0.42401759444367D+00 -0.11533800684809D-15 + 3 24 2 50 0.33361931413377D+00 0.10222008923361D-16 + 1 25 2 50 -0.63234747208154D-01 0.18383861028134D-16 + 2 25 2 50 0.29670575418888D+00 -0.10918620057744D-15 + 3 25 2 50 0.15228710567634D+00 0.10967842925400D-16 + 1 26 2 50 0.37666733718614D+00 -0.52840362154219D-16 + 2 26 2 50 -0.79049413507128D-01 -0.52732164130803D-16 + 3 26 2 50 -0.18446449841467D+00 -0.33099787335771D-16 + 1 27 2 50 -0.18627745527626D+00 0.43826969905525D-16 + 2 27 2 50 -0.73467466067886D+00 -0.10661289264870D-15 + 3 27 2 50 0.50995383855732D+00 -0.36207696421537D-16 + 1 28 2 50 -0.51165184777610D+00 0.41571883039937D-16 + 2 28 2 50 -0.34388639654923D+00 0.18627738259195D-16 + 3 28 2 50 0.54811388730226D+00 0.35850730095370D-17 + 1 29 2 50 -0.38621584505584D-04 0.37779730184386D-16 + 2 29 2 50 -0.53328893963903D+00 -0.14469257736962D-16 + 3 29 2 50 -0.74230068669528D+00 0.27923986365141D-16 + 1 30 2 50 -0.14289485317980D+02 0.68785720353961D-17 + 2 30 2 50 -0.21376754587858D+02 0.40644167031838D-16 + 3 30 2 50 0.10252583096720D+02 0.38470758757516D-16 + 1 31 2 50 0.29725170472751D+00 -0.17410624869876D-16 + 2 31 2 50 0.74085425446377D+00 -0.29089323948801D-15 + 3 31 2 50 -0.17634066358115D+00 0.29714475186858D-16 + 1 32 2 50 0.62152515350495D+00 -0.10849108803968D-16 + 2 32 2 50 0.54718011965241D+01 0.30969065403882D-16 + 3 32 2 50 0.73226250017448D+01 0.16740167873160D-17 + 1 33 2 50 -0.13275629014228D+01 -0.16221515536106D-16 + 2 33 2 50 -0.25386322377402D+01 0.60442799628500D-16 + 3 33 2 50 -0.30549193890543D+01 -0.87665441215679D-19 + 1 34 2 50 0.18739913392292D+01 -0.99181033347210D-17 + 2 34 2 50 -0.34528163015957D+01 0.18550277808346D-15 + 3 34 2 50 -0.31092013568370D+01 0.72475623326363D-17 + 1 35 2 50 -0.15363366088824D+01 0.17104833143206D-16 + 2 35 2 50 -0.30757828154629D+01 -0.13755121830351D-15 + 3 35 2 50 0.25795643293890D+01 0.33291147560078D-17 + 1 36 2 50 0.13441851649689D+00 -0.30989516254591D-16 + 2 36 2 50 0.54392391872485D+00 0.21538813391674D-15 + 3 36 2 50 0.62347852797931D+00 0.13317974268937D-16 + 1 37 2 50 0.71809348402237D+00 -0.11859382292265D-16 + 2 37 2 50 0.81365140915615D+00 0.20377342104079D-15 + 3 37 2 50 -0.99491676041998D+00 -0.45720694746399D-18 + 1 38 2 50 -0.68445111688902D+00 -0.21781277909920D-16 + 2 38 2 50 -0.11649945096036D+01 -0.13611796324945D-15 + 3 38 2 50 0.87950895163831D+00 0.14917814176662D-17 + 1 39 2 50 -0.18965285104182D+00 -0.15532398306354D-16 + 2 39 2 50 -0.28136420191463D+00 -0.19386555151148D-16 + 3 39 2 50 -0.20782504841661D+00 -0.17599894962407D-17 + 1 40 2 50 0.33794676895603D-01 -0.25954215830022D-17 + 2 40 2 50 -0.37611087067124D+00 -0.52043142160093D-16 + 3 40 2 50 -0.28225134787877D+00 0.70541027980676D-17 + 1 41 2 50 -0.52080259707712D+00 -0.85932280129046D-17 + 2 41 2 50 -0.52469610687681D+00 -0.76708606970989D-16 + 3 41 2 50 -0.41374287618090D+00 0.18329230980819D-16 + 1 42 2 50 -0.22245450246926D+02 0.21326644701811D-16 + 2 42 2 50 -0.25943254441570D+02 0.67696173606949D-16 + 3 42 2 50 -0.23403793604855D+02 0.23365687114472D-16 + 1 43 2 50 -0.12568042557563D+01 -0.28758038482294D-16 + 2 43 2 50 -0.11782400519076D+01 0.23248323932899D-15 + 3 43 2 50 0.87578480095376D+00 0.20985756129485D-17 + 1 44 2 50 -0.28641075667356D+00 0.15457878521668D-17 + 2 44 2 50 -0.27726425993111D+00 0.85069558660089D-16 + 3 44 2 50 -0.60352768827599D+00 0.10414607156688D-15 + 1 45 2 50 -0.28826890102680D-01 0.64090319770691D-17 + 2 45 2 50 0.79503731643843D-01 -0.11142407062400D-16 + 3 45 2 50 0.50694550586705D-01 -0.89341224850984D-16 + 1 46 2 50 0.16931048991710D+01 -0.18663456355422D-16 + 2 46 2 50 -0.11150142372855D+01 -0.11500024205158D-15 + 3 46 2 50 -0.13549678598456D+01 -0.13694068913222D-16 + 1 47 2 50 0.17793550258318D+01 -0.41546869558908D-17 + 2 47 2 50 0.12265406544990D+01 0.19062919171434D-15 + 3 47 2 50 0.15198829841141D+01 0.16789408594895D-16 + 1 48 2 50 0.39005282841352D+00 0.64515499312815D-17 + 2 48 2 50 0.12797076026959D+00 -0.91461771333809D-17 + 3 48 2 50 -0.28504399934005D+00 0.27062809224320D-17 + 1 49 2 50 -0.21546854528395D+00 -0.47026443152725D-17 + 2 49 2 50 0.20929947359173D+00 -0.45014396939085D-17 + 3 49 2 50 0.21334612465260D+00 -0.27837122178166D-17 + 1 50 2 50 0.38075754141964D+01 0.00000000000000D+00 + 2 50 2 50 0.11504972351550D+03 0.00000000000000D+00 + 3 50 2 50 -0.11489553790425D+02 0.00000000000000D+00 + 1 51 2 50 -0.32925776099028D+00 -0.94400830166723D-17 + 2 51 2 50 -0.44422357773511D+00 -0.42813995962427D-16 + 3 51 2 50 0.39305705776451D+00 -0.57885219293152D-17 + 1 52 2 50 -0.74074581612352D+00 0.72790666279897D-17 + 2 52 2 50 0.10020919058717D+01 0.41719717789518D-16 + 3 52 2 50 -0.12637881894937D+01 -0.42641493308718D-18 + 1 53 2 50 0.24064116261817D-01 0.73169854558778D-17 + 2 53 2 50 0.40195590498098D-01 -0.11788793609396D-16 + 3 53 2 50 0.14872177932805D+00 -0.90611939793743D-18 + 1 54 2 50 -0.68047619236458D-01 -0.20355825577542D-17 + 2 54 2 50 -0.74394943703652D+00 -0.13313758466836D-16 + 3 54 2 50 -0.57995663584141D+00 -0.23008561356413D-17 + 1 55 2 50 0.85317621194837D+00 0.56049401779152D-17 + 2 55 2 50 0.62991047216481D-01 0.23427716689772D-16 + 3 55 2 50 0.10028054761513D+01 0.43413939538109D-17 + 1 56 2 50 0.19589691143570D+01 0.30039221273980D-16 + 2 56 2 50 0.19692102717770D+01 0.26247227022271D-15 + 3 56 2 50 -0.15289918852252D+01 -0.42288753330034D-17 + 1 57 2 50 0.45010459969444D+00 -0.97406398281501D-17 + 2 57 2 50 -0.45982337843817D+00 0.19027122923604D-16 + 3 57 2 50 -0.46664333485390D+00 0.37386051400882D-19 + 1 58 2 50 0.14751333435336D+02 -0.65659396377470D-18 + 2 58 2 50 -0.26966858017480D+02 0.25634413772729D-16 + 3 58 2 50 -0.16509815584852D+02 0.21424398517523D-16 + 1 59 2 50 -0.41327057253000D-01 -0.44374203460088D-17 + 2 59 2 50 0.17804663887289D+00 0.17800845683714D-15 + 3 59 2 50 -0.20196117384879D-01 -0.66247076220285D-16 + 1 60 2 50 -0.16233365719528D+01 -0.13969214165075D-16 + 2 60 2 50 0.11871324957381D+01 -0.10429162493152D-15 + 3 60 2 50 0.17065758913518D+01 0.33203515405674D-16 + 1 61 2 50 0.79971555683547D-02 0.29080109851609D-16 + 2 61 2 50 0.24478245845664D+00 -0.17761708205657D-15 + 3 61 2 50 -0.94808506004454D-01 0.13783412612911D-16 + 1 62 2 50 -0.13093678493619D+01 0.59239953912890D-17 + 2 62 2 50 -0.11313505286587D+01 0.22320759612468D-15 + 3 62 2 50 -0.12676911053746D+01 -0.85634891974679D-17 + 1 63 2 50 0.49185051631149D+00 0.30492848273025D-16 + 2 63 2 50 -0.81185336706516D+00 0.24974662356280D-15 + 3 63 2 50 -0.39151104755289D+00 -0.18737304494300D-16 + 1 64 2 50 0.41769986453755D+01 -0.84380041989794D-16 + 2 64 2 50 0.85208276128702D+00 -0.19032350168237D-15 + 3 64 2 50 0.28091029343295D+01 -0.86252343060907D-17 + 1 65 2 50 0.12933343460640D+02 0.51172295326271D-17 + 2 65 2 50 -0.34088804580793D+02 -0.11257944738184D-15 + 3 65 2 50 0.35742517670047D+02 0.18659507524334D-16 + 1 1 3 50 0.97182246126537D+00 0.63951562603661D-16 + 2 1 3 50 0.17882170017425D+01 -0.64083355308429D-16 + 3 1 3 50 0.18056327608835D+01 -0.50403382443351D-16 + 1 2 3 50 -0.55458505988008D+00 -0.24896958861607D-16 + 2 2 3 50 0.93257181798682D+00 -0.77177996324989D-17 + 3 2 3 50 0.12432638468928D+01 -0.68040576866998D-16 + 1 3 3 50 -0.17512457825152D+00 0.73569570858596D-16 + 2 3 3 50 -0.26312833464488D+00 0.83992812189032D-16 + 3 3 3 50 0.96910325492601D+00 0.77456029080879D-16 + 1 4 3 50 -0.46363386037042D-01 -0.32789650457004D-16 + 2 4 3 50 -0.25060787165516D-01 0.89198567899931D-16 + 3 4 3 50 0.17901783548744D+00 -0.14047783004326D-16 + 1 5 3 50 -0.76962261638420D-01 0.95866672655538D-16 + 2 5 3 50 0.72382928212444D+01 0.13845989879332D-17 + 3 5 3 50 -0.70576265098416D+01 -0.32314468671722D-16 + 1 6 3 50 0.46714702670666D+00 -0.98014606144506D-16 + 2 6 3 50 0.15857612882839D+00 0.56327958320667D-17 + 3 6 3 50 0.33819761922102D+00 0.32493490654900D-16 + 1 7 3 50 -0.17990004975472D+01 0.78032377344758D-16 + 2 7 3 50 -0.15092623549221D+01 -0.11683227889522D-16 + 3 7 3 50 0.26553207591071D+01 0.38155861305958D-16 + 1 8 3 50 -0.98978215545311D-01 -0.10202006509255D-15 + 2 8 3 50 -0.38755451493192D+00 0.30117474038350D-16 + 3 8 3 50 0.32936438032625D+00 0.47367504219124D-16 + 1 9 3 50 -0.44560814829235D+00 -0.17307513716032D-16 + 2 9 3 50 0.34830850014410D+00 0.15221818973714D-16 + 3 9 3 50 -0.31366955960617D+00 -0.69913616306126D-16 + 1 10 3 50 -0.13264716423588D-01 -0.46945896683179D-16 + 2 10 3 50 -0.26278439828404D-02 -0.15515944440539D-16 + 3 10 3 50 0.23190305886134D+00 0.54948638001106D-17 + 1 11 3 50 0.50835817538322D-01 -0.44467817572633D-16 + 2 11 3 50 -0.13318937730154D+00 -0.82902428088187D-17 + 3 11 3 50 0.16837728753467D+00 -0.34475712583909D-15 + 1 12 3 50 -0.94699525274430D+00 -0.19846788027806D-16 + 2 12 3 50 0.95887137638926D+00 0.23196825258001D-16 + 3 12 3 50 -0.80139593358101D+00 -0.84181403362176D-16 + 1 13 3 50 0.29514364931119D+00 -0.58764520154695D-17 + 2 13 3 50 0.26995021922523D+00 0.30127632180721D-17 + 3 13 3 50 0.25241496941607D+00 0.26383020617239D-15 + 1 14 3 50 -0.45734933338905D+00 -0.15055902153475D-16 + 2 14 3 50 0.60764078805151D+00 -0.27552990198476D-16 + 3 14 3 50 -0.44967827290001D+00 0.86310936432356D-16 + 1 15 3 50 -0.17291822842402D+00 0.27541019172291D-16 + 2 15 3 50 0.20346636314716D+00 0.29611626684610D-16 + 3 15 3 50 0.51643676632399D+00 -0.65561451508518D-16 + 1 16 3 50 0.63788193896406D+00 0.76196131612857D-17 + 2 16 3 50 0.10691912141849D+01 0.32476357968744D-16 + 3 16 3 50 0.62293770665093D+00 0.20809017425588D-15 + 1 17 3 50 0.92961861660142D-01 0.24941193665810D-17 + 2 17 3 50 -0.20914673817793D-01 -0.13898143913597D-16 + 3 17 3 50 -0.36216127554279D+00 -0.59672795976597D-16 + 1 18 3 50 0.27304288889754D+01 -0.91115116742681D-17 + 2 18 3 50 -0.20752894122620D+01 0.28472427733180D-16 + 3 18 3 50 -0.18994089981028D+01 -0.20111276957575D-15 + 1 19 3 50 -0.46171555433879D+01 -0.33092428549420D-17 + 2 19 3 50 -0.29658009543567D+01 0.62677192738234D-17 + 3 19 3 50 -0.50448506524643D+01 -0.94539205300297D-16 + 1 20 3 50 -0.37172800955782D+00 0.45379430344381D-17 + 2 20 3 50 0.51652952950282D+00 -0.10323272464614D-16 + 3 20 3 50 0.18707498056840D+00 0.11018001264026D-15 + 1 21 3 50 0.67118144898811D-02 -0.54025473232044D-18 + 2 21 3 50 0.28673425970043D+00 0.37142285978669D-17 + 3 21 3 50 -0.52402244393142D+00 0.39653297070067D-15 + 1 22 3 50 0.71824896247095D+00 -0.89516717679435D-17 + 2 22 3 50 -0.72403265890006D+01 -0.21590504018136D-16 + 3 22 3 50 0.81483082564649D+01 -0.33613102678549D-16 + 1 23 3 50 0.32919452336552D+01 -0.42892504912993D-17 + 2 23 3 50 0.10224519877059D+01 -0.77270191992190D-16 + 3 23 3 50 -0.31495638884331D+01 -0.12480757905773D-15 + 1 24 3 50 0.18627745527628D+00 0.79156996423685D-17 + 2 24 3 50 0.50995383855732D+00 0.10222008923361D-16 + 3 24 3 50 -0.73467466067886D+00 -0.92439434754421D-16 + 1 25 3 50 0.63234747208143D-01 0.14458166646877D-16 + 2 25 3 50 0.15228710567634D+00 0.10967842925400D-16 + 3 25 3 50 0.29670575418888D+00 -0.69501858741656D-16 + 1 26 3 50 -0.37666733718614D+00 0.98573969476469D-16 + 2 26 3 50 -0.18446449841467D+00 -0.33099787335771D-16 + 3 26 3 50 -0.79049413507114D-01 0.11503236892767D-15 + 1 27 3 50 0.45000684445280D+00 -0.30083899159319D-16 + 2 27 3 50 0.33361931413377D+00 -0.36207696421537D-16 + 3 27 3 50 -0.42401759444367D+00 -0.63209258827594D-16 + 1 28 3 50 -0.29725170472748D+00 0.26684894409029D-16 + 2 28 3 50 -0.17634066358116D+00 0.35850730095370D-17 + 3 28 3 50 0.74085425446378D+00 0.20461891947191D-15 + 1 29 3 50 0.38621584514039D-04 0.38508145414933D-16 + 2 29 3 50 -0.74230068669528D+00 0.27923986365141D-16 + 3 29 3 50 -0.53328893963903D+00 0.32150448354374D-16 + 1 30 3 50 0.14289485317981D+02 -0.44137292319900D-16 + 2 30 3 50 0.10252583096720D+02 0.38470758757516D-16 + 3 30 3 50 -0.21376754587858D+02 -0.10294167472674D-16 + 1 31 3 50 0.51165184777623D+00 0.32774074142526D-18 + 2 31 3 50 0.54811388730226D+00 0.29714475186858D-16 + 3 31 3 50 -0.34388639654922D+00 -0.21105209158395D-15 + 1 32 3 50 -0.62152515350495D+00 -0.13118911130004D-17 + 2 32 3 50 0.73226250017448D+01 0.16740167873160D-17 + 3 32 3 50 0.54718011965240D+01 -0.22943568043503D-15 + 1 33 3 50 -0.18739913392291D+01 -0.32498263750828D-16 + 2 33 3 50 -0.31092013568370D+01 -0.87665441215679D-19 + 3 33 3 50 -0.34528163015957D+01 -0.19703044879449D-15 + 1 34 3 50 0.13275629014228D+01 -0.18458571019536D-16 + 2 34 3 50 -0.30549193890543D+01 0.72475623326363D-17 + 3 34 3 50 -0.25386322377401D+01 -0.27589227486589D-15 + 1 35 3 50 0.15363366088824D+01 0.10662542823744D-16 + 2 35 3 50 0.25795643293890D+01 0.33291147560078D-17 + 3 35 3 50 -0.30757828154629D+01 -0.22668387176038D-15 + 1 36 3 50 -0.13441851649689D+00 0.24629436450502D-16 + 2 36 3 50 0.62347852797931D+00 0.13317974268937D-16 + 3 36 3 50 0.54392391872485D+00 0.15546899175421D-15 + 1 37 3 50 0.68445111688902D+00 -0.26710645576182D-16 + 2 37 3 50 0.87950895163831D+00 -0.45720694746399D-18 + 3 37 3 50 -0.11649945096036D+01 -0.42026028547077D-15 + 1 38 3 50 -0.71809348402237D+00 -0.26553670840492D-16 + 2 38 3 50 -0.99491676041998D+00 0.14917814176662D-17 + 3 38 3 50 0.81365140915615D+00 -0.57326843206596D-16 + 1 39 3 50 0.18965285104182D+00 -0.94202801620121D-17 + 2 39 3 50 -0.20782504841661D+00 -0.17599894962407D-17 + 3 39 3 50 -0.28136420191463D+00 -0.20003804253408D-15 + 1 40 3 50 0.41327057252996D-01 0.29283482771480D-16 + 2 40 3 50 -0.20196117384868D-01 0.70541027980676D-17 + 3 40 3 50 0.17804663887290D+00 0.21067715245105D-15 + 1 41 3 50 -0.45010459969444D+00 0.14550306018184D-16 + 2 41 3 50 -0.46664333485389D+00 0.18329230980819D-16 + 3 41 3 50 -0.45982337843817D+00 -0.40872123108471D-16 + 1 42 3 50 -0.14751333435336D+02 -0.60756770034234D-16 + 2 42 3 50 -0.16509815584852D+02 0.23365687114472D-16 + 3 42 3 50 -0.26966858017480D+02 -0.69969296511789D-16 + 1 43 3 50 -0.19589691143570D+01 0.62758369072402D-17 + 2 43 3 50 -0.15289918852252D+01 0.20985756129485D-17 + 3 43 3 50 0.19692102717770D+01 0.15758533194685D-15 + 1 44 3 50 -0.49185051631149D+00 0.14147277405977D-16 + 2 44 3 50 -0.39151104755289D+00 0.10414607156688D-15 + 3 44 3 50 -0.81185336706516D+00 0.18169203404335D-17 + 1 45 3 50 -0.79971555683549D-02 0.17200162626509D-16 + 2 45 3 50 -0.94808506004455D-01 -0.89341224850984D-16 + 3 45 3 50 0.24478245845664D+00 0.38447371817618D-17 + 1 46 3 50 0.13093678493619D+01 -0.76999048770248D-16 + 2 46 3 50 -0.12676911053746D+01 -0.13694068913222D-16 + 3 46 3 50 -0.11313505286587D+01 -0.47846403600330D-17 + 1 47 3 50 0.16233365719528D+01 -0.12658003046588D-16 + 2 47 3 50 0.17065758913518D+01 0.16789408594895D-16 + 3 47 3 50 0.11871324957381D+01 -0.82252092131408D-17 + 1 48 3 50 0.32925776099028D+00 0.50576820078155D-17 + 2 48 3 50 0.39305705776450D+00 0.27062809224320D-17 + 3 48 3 50 -0.44422357773511D+00 0.19202462115987D-16 + 1 49 3 50 0.21546854528394D+00 0.64481192958400D-17 + 2 49 3 50 0.21334612465260D+00 -0.27837122178166D-17 + 3 49 3 50 0.20929947359173D+00 0.22999893028604D-16 + 1 50 3 50 -0.38075754141959D+01 0.00000000000000D+00 + 2 50 3 50 -0.11489553790425D+02 0.00000000000000D+00 + 3 50 3 50 0.11504972351550D+03 0.00000000000000D+00 + 1 51 3 50 -0.39005282841352D+00 0.47474862447388D-16 + 2 51 3 50 -0.28504399934005D+00 -0.57885219293152D-17 + 3 51 3 50 0.12797076026959D+00 -0.22530667418651D-16 + 1 52 3 50 -0.85317621194837D+00 0.13637070612922D-16 + 2 52 3 50 0.10028054761513D+01 -0.42641493308718D-18 + 3 52 3 50 0.62991047216481D-01 -0.15424048156842D-17 + 1 53 3 50 -0.24064116261817D-01 0.62200509432651D-17 + 2 53 3 50 0.14872177932805D+00 -0.90611939793743D-18 + 3 53 3 50 0.40195590498096D-01 -0.22552953040651D-16 + 1 54 3 50 0.68047619236457D-01 0.88422455369566D-17 + 2 54 3 50 -0.57995663584141D+00 -0.23008561356413D-17 + 3 54 3 50 -0.74394943703652D+00 0.56189337171287D-17 + 1 55 3 50 0.74074581612352D+00 0.90887176504224D-18 + 2 55 3 50 -0.12637881894937D+01 0.43413939538109D-17 + 3 55 3 50 0.10020919058717D+01 -0.12855676519757D-16 + 1 56 3 50 0.12568042557563D+01 -0.30213347023978D-16 + 2 56 3 50 0.87578480095377D+00 -0.42288753330034D-17 + 3 56 3 50 -0.11782400519076D+01 -0.35737256517048D-15 + 1 57 3 50 0.52080259707712D+00 -0.24299298176360D-16 + 2 57 3 50 -0.41374287618090D+00 0.37386051400882D-19 + 3 57 3 50 -0.52469610687682D+00 0.10288672312718D-16 + 1 58 3 50 0.22245450246926D+02 0.45365497345198D-17 + 2 58 3 50 -0.23403793604854D+02 0.21424398517523D-16 + 3 58 3 50 -0.25943254441570D+02 -0.44514318050061D-15 + 1 59 3 50 -0.33794676895592D-01 -0.75375696682784D-17 + 2 59 3 50 -0.28225134787878D+00 -0.66247076220285D-16 + 3 59 3 50 -0.37611087067123D+00 0.32290923740859D-15 + 1 60 3 50 -0.17793550258318D+01 -0.47429112074887D-16 + 2 60 3 50 0.15198829841141D+01 0.33203515405674D-16 + 3 60 3 50 0.12265406544990D+01 -0.15606768177213D-15 + 1 61 3 50 0.28826890102681D-01 0.51605912081619D-17 + 2 61 3 50 0.50694550586706D-01 0.13783412612911D-16 + 3 61 3 50 0.79503731643842D-01 0.40066404568185D-16 + 1 62 3 50 -0.16931048991710D+01 0.20209970931017D-18 + 2 62 3 50 -0.13549678598456D+01 -0.85634891974679D-17 + 3 62 3 50 -0.11150142372855D+01 -0.12669662571519D-15 + 1 63 3 50 0.28641075667356D+00 -0.45181140028379D-17 + 2 63 3 50 -0.60352768827599D+00 -0.18737304494300D-16 + 3 63 3 50 -0.27726425993111D+00 0.11188819166796D-15 + 1 64 3 50 -0.41769986453754D+01 0.16103272952989D-16 + 2 64 3 50 0.28091029343295D+01 -0.86252343060907D-17 + 3 64 3 50 0.85208276128702D+00 -0.13243365710574D-15 + 1 65 3 50 -0.12933343460640D+02 -0.65895415865842D-17 + 2 65 3 50 0.35743857755746D+02 0.18659507524334D-16 + 3 65 3 50 -0.34087583801540D+02 0.20462481580305D-15 + 1 1 1 51 -0.23467698998718D+00 0.16915883942545D-15 + 2 1 1 51 0.96415435917293D-01 0.33398970175345D-17 + 3 1 1 51 -0.12180751841965D+00 0.56388501385689D-16 + 1 2 1 51 -0.29233488661134D+01 0.40897937746790D-16 + 2 2 1 51 -0.28728526686264D+01 -0.13330051267565D-18 + 3 2 1 51 -0.12748485259548D+01 -0.95929606986654D-16 + 1 3 1 51 -0.20352226633815D+00 -0.16507563797155D-15 + 2 3 1 51 -0.12521758778296D+00 0.94204093400461D-19 + 3 3 1 51 0.10774984940748D-01 0.54091321130640D-17 + 1 4 1 51 -0.30470853174333D+01 0.23456901634374D-15 + 2 4 1 51 0.31172863636170D+01 -0.33225932388244D-17 + 3 4 1 51 0.13286275214552D+01 -0.26818064947170D-16 + 1 5 1 51 -0.21143668169988D+00 -0.27764447945474D-15 + 2 5 1 51 0.37172800955782D+00 0.52635663646893D-17 + 3 5 1 51 -0.46714702670665D+00 0.64099891119907D-17 + 1 6 1 51 -0.30238806664966D+01 -0.22287376936011D-15 + 2 6 1 51 0.32845967229456D+01 -0.30606111802573D-18 + 3 6 1 51 -0.12921767328817D+01 0.27556480942444D-16 + 1 7 1 51 -0.24776983014886D+00 0.11098744364812D-15 + 2 7 1 51 0.94115504274793D-01 0.28619178656792D-18 + 3 7 1 51 0.43841709977776D-01 0.20732828392396D-16 + 1 8 1 51 -0.31052957392001D+01 -0.19529689369183D-15 + 2 8 1 51 -0.32289744110740D+01 -0.20630758526032D-17 + 3 8 1 51 0.11850558323564D+01 -0.23348377713612D-16 + 1 9 1 51 0.24418805971223D+00 -0.17787207567716D-15 + 2 9 1 51 -0.37257383673283D-01 0.17042206556400D-16 + 3 9 1 51 0.13187086874673D-02 -0.22536656263372D-16 + 1 10 1 51 -0.34841030513611D+00 0.11009058605415D-15 + 2 10 1 51 0.43784508225185D+00 0.45582273577041D-16 + 3 10 1 51 -0.47661236736015D+00 -0.75041970420472D-17 + 1 11 1 51 -0.37498050423350D+00 0.79628819240495D-17 + 2 11 1 51 0.41800475205423D+00 0.54143245628619D-17 + 3 11 1 51 -0.49376388172361D+00 0.30559075174384D-17 + 1 12 1 51 0.48013010771485D+00 0.74186534344705D-16 + 2 12 1 51 0.26610454512720D+00 -0.18219360489409D-16 + 3 12 1 51 -0.32762621479200D+00 -0.48072849204347D-17 + 1 13 1 51 -0.77613523706566D+00 -0.38289657757944D-16 + 2 13 1 51 0.47953374969924D+00 -0.58415574145599D-16 + 3 13 1 51 -0.42176664241323D+00 0.15834190442734D-16 + 1 14 1 51 0.20201221094890D+00 0.13719664464128D-15 + 2 14 1 51 0.33048480633070D+00 0.92954367990100D-17 + 3 14 1 51 0.34325330614271D+00 -0.18092497048312D-16 + 1 15 1 51 -0.26419464735399D+02 -0.21525663783299D-15 + 2 15 1 51 0.14029655666361D+02 -0.10488966503891D-16 + 3 15 1 51 -0.14605661763507D+02 0.45083988585303D-16 + 1 16 1 51 -0.20285354699657D+00 -0.32076310658713D-15 + 2 16 1 51 -0.93528066163421D-01 0.58001342301727D-16 + 3 16 1 51 0.89658032623899D-01 -0.34223553092264D-17 + 1 17 1 51 -0.23862176796400D+00 -0.11223265665780D-15 + 2 17 1 51 0.86016099995370D-01 0.65290223941979D-16 + 3 17 1 51 -0.11390436163443D+00 0.24881183362837D-19 + 1 18 1 51 -0.30031823137819D+01 -0.20144249612988D-15 + 2 18 1 51 -0.11823768965085D+01 0.10062370655407D-15 + 3 18 1 51 -0.30962339742665D+01 -0.21607203435668D-17 + 1 19 1 51 -0.29949756481198D+01 0.19558853730924D-15 + 2 19 1 51 0.13678659944496D+01 0.39126306653673D-16 + 3 19 1 51 0.30926262122503D+01 -0.53451159360169D-18 + 1 20 1 51 -0.24757479388526D+00 0.11094990667921D-15 + 2 20 1 51 -0.14352455831501D+00 -0.29781310070681D-16 + 3 20 1 51 -0.73906612608212D-01 0.68802348215832D-18 + 1 21 1 51 -0.22820373706449D+00 0.10571388997835D-15 + 2 21 1 51 0.11060314530730D+00 -0.53754658006841D-16 + 3 21 1 51 0.78657874930479D-01 -0.23982201897759D-17 + 1 22 1 51 -0.31805611728353D+01 -0.18584728404875D-15 + 2 22 1 51 -0.17990004975472D+01 0.37574951036342D-16 + 3 22 1 51 0.32919452336551D+01 0.22248621824352D-16 + 1 23 1 51 -0.31818805466033D+01 0.10553578275188D-15 + 2 23 1 51 0.13625469848010D+01 0.95620660972842D-16 + 3 23 1 51 -0.30751735322857D+01 -0.20176578380233D-17 + 1 24 1 51 0.28559695976668D+00 -0.16736279148959D-15 + 2 24 1 51 0.31288499790072D-02 -0.87540970786535D-17 + 3 24 1 51 0.37134587379388D-01 0.43561351039599D-16 + 1 25 1 51 -0.39161458132892D+00 -0.11740794231242D-15 + 2 25 1 51 -0.47745269960844D+00 -0.52530495014503D-16 + 3 25 1 51 0.39173006312076D+00 -0.12140186197650D-16 + 1 26 1 51 -0.39730649977236D+00 0.22331883466600D-15 + 2 26 1 51 -0.50064688040607D+00 0.66070193194646D-17 + 3 26 1 51 0.46150686927486D+00 0.13771549434468D-16 + 1 27 1 51 0.48538142032138D+00 -0.13492007746901D-15 + 2 27 1 51 -0.26829885043050D+00 0.17003262732856D-16 + 3 27 1 51 0.33034754534780D+00 -0.23866406398995D-16 + 1 28 1 51 -0.79080780410649D+00 -0.13337514943781D-15 + 2 28 1 51 -0.53886715642620D+00 0.19515750622805D-17 + 3 28 1 51 0.53313172251161D+00 0.49062604215320D-16 + 1 29 1 51 0.16030304388460D+00 0.46047556069240D-16 + 2 29 1 51 -0.20850740465841D+00 0.43145441428571D-17 + 3 29 1 51 -0.30651034623013D+00 0.85047728165221D-17 + 1 30 1 51 0.25002441018995D+00 0.44478662916728D-15 + 2 30 1 51 0.29589742680319D+00 -0.46471641700581D-16 + 3 30 1 51 0.35525035041940D+00 0.83236224045099D-17 + 1 31 1 51 -0.25328120975725D+02 -0.19811508541619D-16 + 2 31 1 51 -0.13149198839103D+02 0.69441021604672D-17 + 3 31 1 51 0.13400572938525D+02 -0.27202664561492D-16 + 1 32 1 51 0.28295565651853D+01 0.12295903836991D-16 + 2 32 1 51 0.13275629014228D+01 -0.59577746964374D-17 + 3 32 1 51 0.18739913392292D+01 0.13210076479294D-17 + 1 33 1 51 0.30841850336172D+01 -0.15308159498954D-17 + 2 33 1 51 -0.13256739918059D+01 -0.35608100965537D-16 + 3 33 1 51 0.12743152760817D+01 -0.18547973207713D-16 + 1 34 1 51 0.32152539957641D+01 -0.53907318608907D-16 + 2 34 1 51 0.12172360738130D+01 -0.31646641312251D-16 + 3 34 1 51 -0.12454641439855D+01 -0.17967076824653D-16 + 1 35 1 51 0.29685174375501D+01 -0.14961692276851D-15 + 2 35 1 51 -0.12951198397229D+01 0.55640299100375D-17 + 3 35 1 51 -0.14116852895950D+01 -0.13195027020455D-16 + 1 36 1 51 -0.19885450472407D-01 0.71404442068796D-16 + 2 36 1 51 0.13569498302181D+00 0.21438520879693D-16 + 3 36 1 51 0.12899902445748D+00 -0.64658444000020D-17 + 1 37 1 51 0.28208267547127D-01 -0.82053428774734D-16 + 2 37 1 51 -0.46389530140492D-01 0.45983962239056D-17 + 3 37 1 51 0.43402375418691D-01 -0.37391478991471D-17 + 1 38 1 51 -0.40115266392886D-01 -0.25860975676543D-16 + 2 38 1 51 0.42487475494262D-01 0.80619419126250D-17 + 3 38 1 51 -0.34258093331182D-01 -0.10991958967354D-16 + 1 39 1 51 -0.21972711183066D-01 0.45635720634774D-16 + 2 39 1 51 -0.11243027226998D+00 -0.13898526279010D-16 + 3 39 1 51 -0.98113074926454D-01 -0.20664781079351D-16 + 1 40 1 51 -0.75060432465814D+00 -0.81724677137720D-17 + 2 40 1 51 -0.41642775373069D+00 0.10353066677372D-16 + 3 40 1 51 -0.43144431608079D+00 -0.19198027700405D-16 + 1 41 1 51 0.15328911515379D+00 -0.22935511955315D-16 + 2 41 1 51 -0.29601155427096D+00 0.37967155148201D-17 + 3 41 1 51 0.31389755507366D+00 0.22871369345921D-16 + 1 42 1 51 0.19042103809354D+00 -0.92681767882310D-16 + 2 42 1 51 0.42205070125685D+00 0.12128326020681D-16 + 3 42 1 51 -0.30050836975060D+00 -0.74807248207606D-16 + 1 43 1 51 -0.28281032658509D+02 0.10755291845977D-15 + 2 43 1 51 -0.14992323709904D+02 0.64043087230488D-17 + 3 43 1 51 -0.13867197110953D+02 -0.16555988470171D-18 + 1 44 1 51 0.25748660815604D+00 0.13058662043906D-15 + 2 44 1 51 -0.13334431757601D-01 -0.14892052307967D-16 + 3 44 1 51 -0.22643509870746D-01 0.66316792814685D-18 + 1 45 1 51 -0.31512814179122D+00 -0.47361953821741D-16 + 2 45 1 51 -0.41510684461686D+00 -0.24734634929784D-17 + 3 45 1 51 -0.48369823738220D+00 -0.37196989485857D-17 + 1 46 1 51 -0.17175783798408D+00 0.78449968369548D-16 + 2 46 1 51 -0.53061614381881D+00 0.20989889608163D-17 + 3 46 1 51 -0.52011348209477D+00 -0.23285008371594D-17 + 1 47 1 51 0.57599511950999D+00 0.10256891132699D-15 + 2 47 1 51 -0.35996202666298D+00 0.27264806947660D-16 + 3 47 1 51 -0.26938321812236D+00 0.48704526497444D-16 + 1 48 1 51 0.14728015480932D+01 -0.45314973649474D-19 + 2 48 1 51 0.27724378819635D-01 0.59332805670251D-18 + 3 48 1 51 -0.63626998041331D-01 -0.24565913093530D-18 + 1 49 1 51 -0.23565771303356D+00 0.65967788592541D-19 + 2 49 1 51 0.76325334859223D-02 -0.11414254151924D-18 + 3 49 1 51 0.25941992352620D-01 0.31718565319225D-18 + 1 50 1 51 -0.83718992029358D-01 -0.35843046182340D-16 + 2 50 1 51 -0.32925776099028D+00 0.94400830166723D-17 + 3 50 1 51 -0.39005282841352D+00 -0.47474862447388D-16 + 1 51 1 51 0.12009846314917D+03 0.00000000000000D+00 + 2 51 1 51 0.59488669410426D-01 0.00000000000000D+00 + 3 51 1 51 0.17989040590737D+01 0.00000000000000D+00 + 1 52 1 51 -0.16720242091942D+00 -0.31344867078814D-17 + 2 52 1 51 0.53321962162254D-01 0.68759166567014D-18 + 3 52 1 51 -0.50822928074397D-01 0.32746962613059D-17 + 1 53 1 51 -0.14651597359657D+00 -0.46461440005212D-18 + 2 53 1 51 -0.41467919487296D-01 -0.46157439816494D-18 + 3 53 1 51 0.78310784482451D-02 0.50730881701011D-18 + 1 54 1 51 -0.10369009279273D+00 -0.74976738085763D-17 + 2 54 1 51 0.25660247315378D-01 0.18463479905466D-17 + 3 54 1 51 -0.36928784194138D-01 0.81301227290679D-18 + 1 55 1 51 -0.35562475976301D+00 0.10857373198104D-17 + 2 55 1 51 -0.24461857082305D-02 -0.11700124947693D-17 + 3 55 1 51 0.46994349775083D-01 0.14643159754672D-17 + 1 56 1 51 -0.78153175645181D+00 0.12867274902867D-15 + 2 56 1 51 0.31197724830339D+00 -0.10720269863904D-16 + 3 56 1 51 0.37756050303363D+00 0.16071582217603D-16 + 1 57 1 51 0.17633524868552D+00 -0.92057272568365D-16 + 2 57 1 51 0.29923597616248D+00 0.10968578867607D-16 + 3 57 1 51 -0.27566745941856D+00 -0.59934367946994D-17 + 1 58 1 51 0.27912912720100D+00 -0.27358673783977D-15 + 2 58 1 51 -0.42098272698905D+00 -0.18160832958245D-16 + 3 58 1 51 0.35569019419800D+00 -0.50369232014286D-17 + 1 59 1 51 -0.25336542636213D+02 0.23868655836695D-15 + 2 59 1 51 0.13816776238180D+02 0.10648968212295D-16 + 3 59 1 51 0.13733332541572D+02 -0.26973576972661D-16 + 1 60 1 51 0.20033384962361D+00 0.37756856043297D-15 + 2 60 1 51 0.10281033293596D+00 0.18261264257584D-16 + 3 60 1 51 0.17379472240560D+00 0.18167422505961D-16 + 1 61 1 51 -0.44551561571321D+00 0.33980665929630D-16 + 2 61 1 51 0.52437964590649D+00 0.10874106002943D-16 + 3 61 1 51 0.48848716900826D+00 0.75185427103819D-17 + 1 62 1 51 -0.49336914517858D+00 0.12654244838467D-15 + 2 62 1 51 0.25450899472504D+00 0.26204093604375D-16 + 3 62 1 51 0.64346728371830D-01 0.47635397050579D-16 + 1 63 1 51 0.47011509603785D+00 0.11496778406755D-15 + 2 63 1 51 0.32358218209426D+00 0.79988206897678D-18 + 3 63 1 51 0.24424858336584D+00 0.11090695761322D-16 + 1 64 1 51 0.14545606074375D+00 0.12269629437997D-15 + 2 64 1 51 -0.18222667758373D+00 0.58730263372457D-17 + 3 64 1 51 -0.32150795395446D+00 -0.13538963246064D-16 + 1 65 1 51 0.33464851426688D+00 0.90789977519911D-16 + 2 65 1 51 0.30666810203722D+00 -0.39061562226434D-17 + 3 65 1 51 0.16656805207937D-01 -0.25863036542552D-16 + 1 1 2 51 0.90300250886179D-01 0.33398970175345D-17 + 2 1 2 51 -0.21086672653500D+00 -0.21787891674968D-15 + 3 1 2 51 -0.13225854204798D+00 -0.10702586020703D-15 + 1 2 2 51 -0.28846658458855D+01 -0.13330051267565D-18 + 2 2 2 51 -0.28762227844451D+01 -0.28675906322932D-15 + 3 2 2 51 -0.10021922192644D+01 0.89372037210863D-16 + 1 3 2 51 -0.36582342768194D-01 0.94204093400461D-19 + 2 3 2 51 -0.26027564892998D+00 0.27035038108642D-15 + 3 3 2 51 -0.15189491883038D+00 0.36517200401794D-16 + 1 4 2 51 0.32224719826006D+01 -0.33225932388244D-17 + 2 4 2 51 -0.31198683632758D+01 -0.25153391639659D-15 + 3 4 2 51 -0.13623457728179D+01 0.51811398411832D-17 + 1 5 2 51 -0.22701782239698D-01 0.52635663646893D-17 + 2 5 2 51 0.18707498056840D+00 -0.12756293939356D-15 + 3 5 2 51 -0.15857612882839D+00 -0.64584954984762D-16 + 1 6 2 51 0.32845967229456D+01 -0.30606111802573D-18 + 2 6 2 51 -0.31435481711389D+01 -0.29657658637691D-15 + 3 6 2 51 0.13578084798523D+01 0.12604191443615D-16 + 1 7 2 51 0.73906612608213D-01 0.28619178656792D-18 + 2 7 2 51 -0.21706843664550D+00 -0.17370617019389D-15 + 3 7 2 51 0.62766396932403D-01 -0.12851254684836D-16 + 1 8 2 51 -0.31941085754673D+01 -0.20630758526032D-17 + 2 8 2 51 -0.31161797414798D+01 0.52368917914656D-17 + 3 8 2 51 0.14073185650725D+01 0.73047267982267D-16 + 1 9 2 51 -0.11047342883856D-01 0.17042206556400D-16 + 2 9 2 51 0.26366575977786D+00 -0.49732111925897D-16 + 3 9 2 51 0.12652840085365D-01 0.96609208783182D-17 + 1 10 2 51 0.44859374967652D+00 0.45582273577041D-16 + 2 10 2 51 -0.35954568451196D+00 -0.67486694164597D-16 + 3 10 2 51 0.46636153091889D+00 -0.17522718249273D-16 + 1 11 2 51 0.46462462382001D+00 0.54143245628619D-17 + 2 11 2 51 -0.76098098408767D+00 -0.62732999863350D-16 + 3 11 2 51 0.45441403519213D+00 -0.23958011176789D-16 + 1 12 2 51 0.27429826993853D+00 -0.18219360489409D-16 + 2 12 2 51 0.12684713898618D+00 0.18820659427405D-15 + 3 12 2 51 -0.28470708887522D+00 -0.40586046298686D-16 + 1 13 2 51 0.45662906075670D+00 -0.58415574145599D-16 + 2 13 2 51 -0.38779513090301D+00 0.23464514331864D-15 + 3 13 2 51 0.42696613261040D+00 0.42814459800272D-16 + 1 14 2 51 0.32592916479675D+00 0.92954367990100D-17 + 2 14 2 51 0.49476657126497D+00 -0.21485193644872D-16 + 3 14 2 51 0.26654576811641D+00 0.25410999635279D-16 + 1 15 2 51 0.13897086490666D+02 -0.10488966503891D-16 + 2 15 2 51 -0.26292168970119D+02 0.15714116506544D-15 + 3 15 2 51 0.14423236904407D+02 0.57092403365582D-16 + 1 16 2 51 0.14764773017078D+00 0.58001342301727D-16 + 2 16 2 51 0.54598954673187D-01 -0.32114272012153D-16 + 3 16 2 51 0.10356682372427D+00 0.32678318938986D-16 + 1 17 2 51 -0.99565345105366D-01 0.65290223941979D-16 + 2 17 2 51 -0.18016648722801D-01 -0.91998807604239D-16 + 3 17 2 51 0.80612052259489D-01 0.21927891915915D-16 + 1 18 2 51 0.14068234245039D+01 0.10062370655407D-15 + 2 18 2 51 0.30155345649138D+01 0.28393229038229D-15 + 3 18 2 51 0.11353333223012D+01 0.26552687534467D-16 + 1 19 2 51 -0.11971059792642D+01 0.39126306653673D-16 + 2 19 2 51 0.29632774936015D+01 -0.21845646314047D-15 + 3 19 2 51 0.12001748544478D+01 0.33685921240443D-16 + 1 20 2 51 0.43841709977766D-01 -0.29781310070681D-16 + 2 20 2 51 -0.14974612365163D-01 -0.82762667778709D-16 + 3 20 2 51 -0.63014662905328D-01 -0.69733994954786D-17 + 1 21 2 51 -0.12635356812616D+00 -0.53754658006841D-16 + 2 21 2 51 0.52373562508023D-02 -0.73224374264539D-17 + 3 21 2 51 -0.99568015791882D-01 -0.92117237150168D-18 + 1 22 2 51 0.81602640442450D+00 0.37574951036342D-16 + 2 22 2 51 0.26553207591071D+01 -0.90081487735160D-16 + 3 22 2 51 -0.10224519877059D+01 -0.22066148426019D-17 + 1 23 2 51 -0.13625469848010D+01 0.95620660972842D-16 + 2 23 2 51 0.31258167392203D+01 -0.96346565392294D-16 + 3 23 2 51 -0.12816300215294D+01 -0.27557896586611D-16 + 1 24 2 51 -0.22841937824874D-01 -0.87540970786535D-17 + 2 24 2 51 0.28901435639828D+00 -0.76783738184612D-16 + 3 24 2 51 0.37917362697482D-01 -0.24136931937022D-18 + 1 25 2 51 -0.48845849095463D+00 -0.52530495014503D-16 + 2 25 2 51 -0.39849614674370D+00 0.22684995910468D-15 + 3 25 2 51 0.46804370187614D+00 0.20190050073570D-17 + 1 26 2 51 -0.43605273089234D+00 0.66070193194646D-17 + 2 26 2 51 -0.73479300855675D+00 -0.94391479319730D-17 + 3 26 2 51 0.41193502972180D+00 0.18849622257028D-16 + 1 27 2 51 -0.33966503486385D+00 0.17003262732856D-16 + 2 27 2 51 0.22540838907914D+00 0.27466113511253D-16 + 3 27 2 51 -0.28979766667512D+00 0.13193500299625D-17 + 1 28 2 51 -0.50890489309559D+00 0.19515750622805D-17 + 2 28 2 51 -0.40136127322327D+00 0.17796594893380D-15 + 3 28 2 51 0.55121297710036D+00 0.70934110725607D-18 + 1 29 2 51 -0.27943292278076D+00 0.43145441428571D-17 + 2 29 2 51 0.37272648315901D+00 0.11097310376980D-16 + 3 29 2 51 0.21879589379042D+00 -0.35202728323342D-16 + 1 30 2 51 0.32656081583013D+00 -0.46471641700581D-16 + 2 30 2 51 0.18674912064644D+00 -0.20687824717989D-16 + 3 30 2 51 0.32723300791451D+00 0.35156043296350D-17 + 1 31 2 51 -0.13217865722022D+02 0.69441021604672D-17 + 2 31 2 51 -0.25515961030837D+02 -0.55812313330885D-17 + 3 31 2 51 0.13522654321832D+02 0.10153458471779D-16 + 1 32 2 51 -0.15177320252663D+01 -0.59577746964374D-17 + 2 32 2 51 -0.25386322377401D+01 -0.77193331495618D-16 + 3 32 2 51 -0.31092013568370D+01 -0.46883318822678D-17 + 1 33 2 51 0.13256739918059D+01 -0.35608100965537D-16 + 2 33 2 51 -0.29795532850691D+01 0.31948984776726D-15 + 3 33 2 51 0.31608079795356D+01 0.20820669612653D-17 + 1 34 2 51 -0.12454641439855D+01 -0.31646641312251D-16 + 2 34 2 51 -0.30589887005169D+01 -0.16096989290157D-15 + 3 34 2 51 0.31293913227632D+01 0.14009286615029D-17 + 1 35 2 51 0.12360040210205D+01 0.55640299100375D-17 + 2 35 2 51 -0.30626394163209D+01 0.83995772408908D-17 + 3 35 2 51 -0.31905729764210D+01 -0.62463923922079D-17 + 1 36 2 51 -0.11018956029346D+00 0.21438520879693D-16 + 2 36 2 51 -0.20873637486903D+00 0.23728832322179D-15 + 3 36 2 51 0.90810637626317D-01 0.19095827221627D-17 + 1 37 2 51 0.10915285207293D+00 0.45983962239056D-17 + 2 37 2 51 -0.19250859648881D+00 -0.50109863493414D-16 + 3 37 2 51 -0.15173137220634D+00 0.20993950308450D-18 + 1 38 2 51 -0.14432681694243D+00 0.80619419126250D-17 + 2 38 2 51 -0.26792518326818D+00 -0.11247782353678D-15 + 3 38 2 51 -0.49290147573131D-01 0.41299765005406D-18 + 1 39 2 51 0.10979845495590D+00 -0.13898526279010D-16 + 2 39 2 51 -0.24801182769948D+00 -0.93961849191522D-16 + 3 39 2 51 0.88531530517870D-01 0.59294086395912D-17 + 1 40 2 51 -0.48409400010692D+00 0.10353066677372D-16 + 2 40 2 51 -0.32229451800094D+00 -0.17474250351116D-16 + 3 40 2 51 -0.41751349235391D+00 0.21077150921817D-16 + 1 41 2 51 -0.22564467784921D+00 0.37967155148201D-17 + 2 41 2 51 0.43222364377866D+00 -0.36472292827917D-15 + 3 41 2 51 -0.30191942014920D+00 0.30163411658837D-16 + 1 42 2 51 0.28361053495241D+00 0.12128326020681D-16 + 2 42 2 51 0.23490982432091D+00 -0.45560139604340D-17 + 3 42 2 51 -0.31592974345079D+00 0.23971283007549D-16 + 1 43 2 51 -0.14657929762345D+02 0.64043087230488D-17 + 2 43 2 51 -0.25101178599709D+02 0.13730401960673D-15 + 3 43 2 51 -0.12371596783117D+02 -0.19022434995514D-16 + 1 44 2 51 -0.16149580206863D-01 -0.14892052307967D-16 + 2 44 2 51 0.26462086478740D+00 0.33330916709818D-16 + 3 44 2 51 -0.27822975149862D-01 -0.71932501086174D-16 + 1 45 2 51 -0.44224998145375D+00 -0.24734634929784D-17 + 2 45 2 51 -0.37168114771699D+00 0.94924332239764D-16 + 3 45 2 51 -0.45833681568794D+00 0.55603011316460D-16 + 1 46 2 51 -0.33826748421715D+00 0.20989889608163D-17 + 2 46 2 51 -0.86409040711021D+00 0.96486171309427D-16 + 3 46 2 51 -0.59323179457402D+00 -0.57147860720236D-16 + 1 47 2 51 -0.38139056523924D+00 0.27264806947660D-16 + 2 47 2 51 0.18898539371497D+00 0.49530639173758D-16 + 3 47 2 51 0.34011013696973D+00 0.90653429550299D-18 + 1 48 2 51 0.63626998041331D-01 0.59332805670251D-18 + 2 48 2 51 -0.12727626599595D+00 -0.43713515384583D-17 + 3 48 2 51 -0.86493072065219D-02 -0.80228810240703D-18 + 1 49 2 51 -0.22284876094380D-01 -0.11414254151924D-18 + 2 49 2 51 -0.39179030205287D+00 -0.12118918515382D-17 + 3 49 2 51 0.67018209271095D-01 -0.50103009481367D-18 + 1 50 2 51 0.24475038061527D-01 0.94400830166723D-17 + 2 50 2 51 -0.44422357773511D+00 0.42813995962427D-16 + 3 50 2 51 -0.28504399934005D+00 0.57885219293152D-17 + 1 51 2 51 0.59488669410426D-01 0.00000000000000D+00 + 2 51 2 51 0.11865662793326D+03 0.00000000000000D+00 + 3 51 2 51 -0.13236166824965D+01 0.00000000000000D+00 + 1 52 2 51 -0.38930185792206D-01 0.68759166567014D-18 + 2 52 2 51 -0.95554353237724D-01 0.10623614342612D-17 + 3 52 2 51 -0.12262395208868D-01 -0.41936104261566D-18 + 1 53 2 51 -0.23926507485514D-01 -0.46157439816494D-18 + 2 53 2 51 -0.19111969908325D+00 -0.86406966789974D-18 + 3 53 2 51 0.41533968157781D-01 -0.91657276224219D-18 + 1 54 2 51 -0.24861959050637D-01 0.18463479905466D-17 + 2 54 2 51 0.14768947477597D+01 0.90342356564800D-18 + 3 54 2 51 0.44845856798312D-01 0.99883043186278D-19 + 1 55 2 51 0.19184240360453D-02 -0.11700124947693D-17 + 2 55 2 51 -0.20671006593297D+00 -0.34304678490367D-17 + 3 55 2 51 0.40416366528409D-01 0.15037524784550D-17 + 1 56 2 51 0.53730740550124D+00 -0.10720269863904D-16 + 2 56 2 51 -0.25326590528757D+00 0.94579391810142D-16 + 3 56 2 51 -0.40158016642122D+00 0.10564836655100D-16 + 1 57 2 51 0.19985889980305D+00 0.10968578867607D-16 + 2 57 2 51 0.42551965214466D+00 -0.58757549784158D-15 + 3 57 2 51 -0.23274844943711D+00 0.30343684183770D-16 + 1 58 2 51 -0.29916503793232D+00 -0.18160832958245D-16 + 2 58 2 51 0.12123201124201D+00 0.91762128166131D-16 + 3 58 2 51 -0.16366981488137D+00 0.85650092323316D-17 + 1 59 2 51 0.13879011340542D+02 0.10648968212295D-16 + 2 59 2 51 -0.26062789866101D+02 0.74346609288669D-16 + 3 59 2 51 -0.14107929617707D+02 0.21332617738883D-16 + 1 60 2 51 -0.24696374662174D-02 0.18261264257584D-16 + 2 60 2 51 0.26864894443220D+00 -0.10022822221046D-15 + 3 60 2 51 -0.12118996449944D-01 -0.35225897263662D-16 + 1 61 2 51 0.52775938851812D+00 0.10874106002943D-16 + 2 61 2 51 -0.44967235785732D+00 0.14414031979885D-15 + 3 61 2 51 -0.49790547501619D+00 -0.15824074267144D-16 + 1 62 2 51 0.50939446161318D+00 0.26204093604375D-16 + 2 62 2 51 -0.87719096127325D+00 0.72559179115861D-17 + 3 62 2 51 -0.50016541024873D+00 -0.19335841611459D-16 + 1 63 2 51 0.31572160078402D+00 0.79988206897678D-18 + 2 63 2 51 0.24708348230197D+00 0.15676850294472D-15 + 3 63 2 51 0.30265282018592D+00 -0.29933351069654D-16 + 1 64 2 51 0.39928517272483D-01 0.58730263372457D-17 + 2 64 2 51 0.75805720364928D-01 0.78492890070267D-16 + 3 64 2 51 -0.65815729498108D-01 -0.36659064207459D-16 + 1 65 2 51 -0.26880943972698D+00 -0.39061562226434D-17 + 2 65 2 51 -0.52428663441624D+00 0.13718265671438D-15 + 3 65 2 51 0.18288178967437D+00 0.92171902374073D-17 + 1 1 3 51 0.11471479398950D+00 0.56388501385689D-16 + 2 1 3 51 0.86755436131937D-01 -0.10702586020703D-15 + 3 1 3 51 -0.37214517100009D-02 -0.74967267618426D-16 + 1 2 3 51 0.17402778573232D+01 -0.95929606986654D-16 + 2 2 3 51 0.13163110477181D+01 0.89372037210863D-16 + 3 2 3 51 0.28933820724064D+01 0.17503365515322D-16 + 1 3 3 51 -0.14350644613521D+00 0.54091321130640D-17 + 2 3 3 51 0.16403408343850D+00 0.36517200401794D-16 + 3 3 3 51 0.67229337897264D-01 -0.35232723863990D-17 + 1 4 3 51 -0.12789009470737D+01 -0.26818064947170D-16 + 2 4 3 51 0.13535554609168D+01 0.51811398411832D-17 + 3 4 3 51 0.30490719621776D+01 -0.27127806835021D-16 + 1 5 3 51 0.42131995820272D-01 0.64099891119907D-17 + 2 5 3 51 -0.51652952950282D+00 -0.64584954984762D-16 + 3 5 3 51 0.33819761922103D+00 0.17309733782614D-16 + 1 6 3 51 0.12921767328817D+01 0.27556480942444D-16 + 2 6 3 51 -0.13578084798523D+01 0.12604191443615D-16 + 3 6 3 51 0.31589468614603D+01 -0.33353720662529D-16 + 1 7 3 51 -0.14352455831500D+00 0.20732828392396D-16 + 2 7 3 51 -0.97785945508694D-01 -0.12851254684836D-16 + 3 7 3 51 -0.14974612365163D-01 0.67362503274932D-16 + 1 8 3 51 -0.11880694090847D+01 -0.23348377713612D-16 + 2 8 3 51 -0.13006788073403D+01 0.73047267982267D-16 + 3 8 3 51 0.30525156815770D+01 0.64289127341869D-16 + 1 9 3 51 -0.24056900733661D-01 -0.22536656263372D-16 + 2 9 3 51 0.46569947723850D-01 0.96609208783182D-17 + 3 9 3 51 0.26293960391367D+00 -0.11973468135823D-15 + 1 10 3 51 -0.48648896442330D+00 -0.75041970420472D-17 + 2 10 3 51 0.46410460231328D+00 -0.17522718249273D-16 + 3 10 3 51 -0.77484903294973D+00 0.11343933780459D-16 + 1 11 3 51 -0.45501407968529D+00 0.30559075174384D-17 + 2 11 3 51 0.50801145035334D+00 -0.23958011176789D-16 + 3 11 3 51 -0.38471724455043D+00 0.28448579803539D-16 + 1 12 3 51 -0.35256230231846D+00 -0.48072849204347D-17 + 2 12 3 51 -0.25496134102405D+00 -0.40586046298686D-16 + 3 12 3 51 0.25970597428466D+00 0.76183622847997D-16 + 1 13 3 51 -0.48530167859137D+00 0.15834190442734D-16 + 2 13 3 51 0.46464881611196D+00 0.42814459800272D-16 + 3 13 3 51 -0.39950504984975D+00 -0.19869161126982D-15 + 1 14 3 51 0.31346412582920D+00 -0.18092497048312D-16 + 2 14 3 51 0.30287302421660D+00 0.25410999635279D-16 + 3 14 3 51 0.13399195151202D+00 -0.22920463403757D-15 + 1 15 3 51 -0.14501181111328D+02 0.45083988585303D-16 + 2 15 3 51 0.14382862120111D+02 0.57092403365582D-16 + 3 15 3 51 -0.26557973056397D+02 -0.16786899950334D-15 + 1 16 3 51 0.21870410963721D-01 -0.34223553092264D-17 + 2 16 3 51 -0.15415690230454D+00 0.32678318938986D-16 + 3 16 3 51 -0.21577894633812D+00 -0.30374288458950D-17 + 1 17 3 51 -0.82702315888196D-01 0.24881183362837D-19 + 2 17 3 51 -0.11218963836733D+00 0.21927891915915D-16 + 3 17 3 51 -0.22618681439698D+00 -0.42355065753034D-16 + 1 18 3 51 -0.33550916598139D+01 -0.21607203435668D-17 + 2 18 3 51 -0.12333277166283D+01 0.26552687534467D-16 + 3 18 3 51 -0.29958810583551D+01 0.24739201439994D-15 + 1 19 3 51 0.30971891017044D+01 -0.53451159360169D-18 + 2 19 3 51 -0.13483055546319D+01 0.33685921240443D-16 + 3 19 3 51 -0.29700809879205D+01 -0.22947496287275D-15 + 1 20 3 51 -0.94115504274791D-01 0.68802348215832D-18 + 2 20 3 51 0.97843402870799D-01 -0.69733994954786D-17 + 3 20 3 51 -0.21706843664551D+00 0.23686990275344D-15 + 1 21 3 51 0.10067823622293D+00 -0.23982201897759D-17 + 2 21 3 51 0.74387259052577D-01 -0.92117237150168D-18 + 3 21 3 51 -0.20851766763871D+00 -0.14259013868594D-15 + 1 22 3 51 0.29031814937507D+01 0.22248621824352D-16 + 2 22 3 51 0.15092623549221D+01 -0.22066148426019D-17 + 3 22 3 51 -0.31495638884331D+01 0.14089781606439D-15 + 1 23 3 51 -0.30751735322857D+01 -0.20176578380233D-17 + 2 23 3 51 0.12816300215294D+01 -0.27557896586611D-16 + 3 23 3 51 -0.29297901679364D+01 -0.31908338066865D-15 + 1 24 3 51 0.28476319214292D-02 0.43561351039599D-16 + 2 24 3 51 0.66675456039009D-02 -0.24136931937022D-18 + 3 24 3 51 0.25776364732936D+00 -0.31224058371121D-15 + 1 25 3 51 0.45721072852454D+00 -0.12140186197650D-16 + 2 25 3 51 0.39877880383948D+00 0.20190050073570D-17 + 3 25 3 51 -0.78452529044151D+00 0.15283061319884D-15 + 1 26 3 51 0.47565222349134D+00 0.13771549434468D-16 + 2 26 3 51 0.49763141720444D+00 0.18849622257028D-16 + 3 26 3 51 -0.36260602341346D+00 -0.27898807049714D-16 + 1 27 3 51 0.31415557033799D+00 -0.23866406398995D-16 + 2 27 3 51 -0.32390006586088D+00 0.13193500299625D-17 + 3 27 3 51 0.15344209870445D+00 0.14624278053346D-15 + 1 28 3 51 0.49802215951677D+00 0.49062604215320D-16 + 2 28 3 51 0.49454898553087D+00 0.70934110725607D-18 + 3 28 3 51 -0.45776171415235D+00 -0.63535686021262D-16 + 1 29 3 51 -0.29804618665441D+00 0.85047728165221D-17 + 2 29 3 51 0.15134694933494D+00 -0.35202728323342D-16 + 3 29 3 51 0.27170792927838D+00 0.39702480647113D-15 + 1 30 3 51 0.27016392427599D+00 0.83236224045099D-17 + 2 30 3 51 0.32161347997773D+00 0.35156043296350D-17 + 3 30 3 51 0.42103726169296D+00 -0.20058334928645D-15 + 1 31 3 51 0.13571489657003D+02 -0.27202664561492D-16 + 2 31 3 51 0.13622835122802D+02 0.10153458471779D-16 + 3 31 3 51 -0.25398477425812D+02 -0.13617558834379D-15 + 1 32 3 51 -0.15565761819559D+01 0.13210076479294D-17 + 2 32 3 51 -0.30549193890543D+01 -0.46883318822678D-17 + 3 32 3 51 -0.34528163015957D+01 -0.15870371367266D-15 + 1 33 3 51 -0.12743152760817D+01 -0.18547973207713D-16 + 2 33 3 51 0.31608079795356D+01 0.20820669612653D-17 + 3 33 3 51 -0.30528471590872D+01 -0.13825110365525D-15 + 1 34 3 51 0.12172360738130D+01 -0.17967076824653D-16 + 2 34 3 51 0.33428811390470D+01 0.14009286615029D-17 + 3 34 3 51 -0.30589887005169D+01 0.14068168587003D-15 + 1 35 3 51 0.13774526215980D+01 -0.13195027020455D-16 + 2 35 3 51 -0.32361500471502D+01 -0.62463923922079D-17 + 3 35 3 51 -0.30064990613072D+01 0.22100836960128D-15 + 1 36 3 51 -0.54960985429200D-01 -0.64658444000020D-17 + 2 36 3 51 0.86008039398327D-01 0.19095827221627D-17 + 3 36 3 51 -0.22758195861379D+00 -0.10427867525964D-15 + 1 37 3 51 -0.18188827530425D+00 -0.37391478991471D-17 + 2 37 3 51 -0.16359920195150D+00 0.20993950308450D-18 + 3 37 3 51 -0.14082776768839D+00 -0.24462880159758D-15 + 1 38 3 51 0.15890958213720D+00 -0.10991958967354D-16 + 2 38 3 51 0.21360777461611D-02 0.41299765005406D-18 + 3 38 3 51 -0.23088084729193D+00 0.18074832275221D-16 + 1 39 3 51 0.11346762956114D+00 -0.20664781079351D-16 + 2 39 3 51 0.94812845415094D-01 0.59294086395912D-17 + 3 39 3 51 -0.22877355990031D+00 0.23704242425052D-15 + 1 40 3 51 -0.49830994239345D+00 -0.19198027700405D-16 + 2 40 3 51 -0.42944402667853D+00 0.21077150921817D-16 + 3 40 3 51 -0.36088245076101D+00 -0.67653953897266D-16 + 1 41 3 51 0.26505761927301D+00 0.22871369345921D-16 + 2 41 3 51 -0.27340328278776D+00 0.30163411658837D-16 + 3 41 3 51 0.17637186941307D+00 -0.10081446146949D-16 + 1 42 3 51 -0.13762305616937D+00 -0.74807248207606D-16 + 2 42 3 51 -0.40212139172873D+00 0.23971283007549D-16 + 3 42 3 51 0.55573036713759D+00 -0.12361506536379D-16 + 1 43 3 51 -0.14256821798390D+02 -0.16555988470171D-18 + 2 43 3 51 -0.12776995690578D+02 -0.19022434995514D-16 + 3 43 3 51 -0.24532491806041D+02 0.26804088349183D-15 + 1 44 3 51 -0.44235881324102D-02 0.66316792814685D-18 + 2 44 3 51 -0.30515804448368D-01 -0.71932501086174D-16 + 3 44 3 51 0.26805640929539D+00 0.12575780078759D-15 + 1 45 3 51 -0.45552372354199D+00 -0.37196989485857D-17 + 2 45 3 51 -0.46766185471483D+00 0.55603011316460D-16 + 3 45 3 51 -0.78338733454980D+00 0.53672018226343D-17 + 1 46 3 51 -0.46034884881434D+00 -0.23285008371594D-17 + 2 46 3 51 -0.27618358262648D+00 -0.57147860720236D-16 + 3 46 3 51 -0.39910233886038D+00 0.97409777168603D-16 + 1 47 3 51 -0.29550212064911D+00 0.48704526497444D-16 + 2 47 3 51 0.25867275679239D+00 0.90653429550299D-18 + 3 47 3 51 0.93208777468693D-01 -0.56949262733246D-16 + 1 48 3 51 -0.27724378819635D-01 -0.24565913093530D-18 + 2 48 3 51 -0.79348798505183D-01 -0.80228810240703D-18 + 3 48 3 51 -0.12727626599595D+00 0.27211567104666D-17 + 1 49 3 51 0.15542216925406D-01 0.31718565319225D-18 + 2 49 3 51 -0.74889325537827D-02 -0.50103009481367D-18 + 3 49 3 51 -0.23998152292440D+00 0.76506553741440D-18 + 1 50 3 51 0.11599296174228D+00 -0.47474862447388D-16 + 2 50 3 51 0.39305705776451D+00 0.57885219293152D-17 + 3 50 3 51 0.12797076026959D+00 0.22530667418651D-16 + 1 51 3 51 0.17989040590737D+01 0.00000000000000D+00 + 2 51 3 51 -0.13236166824965D+01 0.00000000000000D+00 + 3 51 3 51 0.11772786846936D+03 0.00000000000000D+00 + 1 52 3 51 0.22811652599747D-01 0.32746962613059D-17 + 2 52 3 51 -0.25872687761076D-01 -0.41936104261566D-18 + 3 52 3 51 -0.84272004536131D-01 -0.14899721321778D-17 + 1 53 3 51 -0.12570281290532D-01 0.50730881701011D-18 + 2 53 3 51 0.11097588776132D-01 -0.91657276224219D-18 + 3 53 3 51 0.15339790868766D+01 -0.65267877438073D-18 + 1 54 3 51 -0.13312149805396D-01 0.81301227290679D-18 + 2 54 3 51 -0.70096081780646D-02 0.99883043186278D-19 + 3 54 3 51 -0.10442409181147D+00 -0.15545541889178D-17 + 1 55 3 51 -0.73118224368082D-01 0.14643159754672D-17 + 2 55 3 51 0.34358997781744D-01 0.15037524784550D-17 + 3 55 3 51 -0.31749180709190D+00 -0.10331671508753D-16 + 1 56 3 51 0.46840841101348D+00 0.16071582217603D-16 + 2 56 3 51 -0.29558449714712D+00 0.10564836655100D-16 + 3 56 3 51 -0.21332075910504D+00 0.70863159523705D-17 + 1 57 3 51 -0.31821622388506D+00 -0.59934367946994D-17 + 2 57 3 51 -0.28016256143628D+00 0.30343684183770D-16 + 3 57 3 51 0.21967419079834D+00 -0.17343919106094D-15 + 1 58 3 51 0.33872008325703D+00 -0.50369232014286D-17 + 2 58 3 51 -0.25348016079988D+00 0.85650092323316D-17 + 3 58 3 51 0.44715972523504D+00 0.45580283177921D-16 + 1 59 3 51 0.13677385535158D+02 -0.26973576972661D-16 + 2 59 3 51 -0.13994635157626D+02 0.21332617738883D-16 + 3 59 3 51 -0.25999938377807D+02 -0.73445473009194D-16 + 1 60 3 51 0.15681017887170D+00 0.18167422505961D-16 + 2 60 3 51 -0.98401233411656D-01 -0.35225897263662D-16 + 3 60 3 51 0.16229330172929D+00 0.70401594129905D-16 + 1 61 3 51 0.46486050728527D+00 0.75185427103819D-17 + 2 61 3 51 -0.43513197182491D+00 -0.15824074267144D-16 + 3 61 3 51 -0.84989106608483D+00 -0.19354679795493D-16 + 1 62 3 51 0.43441998613116D+00 0.47635397050579D-16 + 2 62 3 51 -0.33525327094947D+00 -0.19335841611459D-16 + 3 62 3 51 -0.13525500815598D+00 0.73905295368395D-17 + 1 63 3 51 0.24689778800012D+00 0.11090695761322D-16 + 2 63 3 51 0.30091129439677D+00 -0.29933351069654D-16 + 3 63 3 51 0.18184668037693D+00 0.20629628883505D-15 + 1 64 3 51 -0.14080624751403D+00 -0.13538963246064D-16 + 2 64 3 51 0.28518279672124D+00 -0.36659064207459D-16 + 3 64 3 51 0.18749234272781D+00 0.84859451659225D-15 + 1 65 3 51 -0.36513389322849D+00 -0.25863036542552D-16 + 2 65 3 51 -0.56505974254687D+00 0.92171902374073D-17 + 3 65 3 51 -0.39045088703818D+00 -0.22803377355062D-15 + 1 1 1 52 -0.29694333512828D+01 -0.62647913264136D-16 + 2 1 1 52 -0.31188104911044D+01 0.62573175730381D-18 + 3 1 1 52 0.13216691511330D+01 0.30143103042179D-16 + 1 2 1 52 -0.35757345629169D+00 0.20836745713868D-15 + 2 2 1 52 0.19847109189108D+00 0.97785602276468D-18 + 3 2 1 52 0.21515632650469D+00 -0.12711937222677D-16 + 1 3 1 52 -0.32291832719729D+01 -0.28860806576447D-16 + 2 3 1 52 0.35866822654581D+01 0.10677221901659D-17 + 3 3 1 52 -0.12574855522480D+01 -0.83920503095785D-16 + 1 4 1 52 -0.23629068496629D+00 0.22345514284470D-15 + 2 4 1 52 -0.11720523352892D+00 0.36329558198169D-17 + 3 4 1 52 -0.10296464443796D+00 0.34361591148935D-16 + 1 5 1 52 -0.30338589403061D+01 -0.24377154265394D-15 + 2 5 1 52 0.46171555433878D+01 -0.24437470697398D-17 + 3 5 1 52 0.17512457825153D+00 -0.19363910622338D-17 + 1 6 1 52 -0.20352226633814D+00 -0.26145714254351D-15 + 2 6 1 52 -0.36582342768199D-01 -0.29164664505017D-17 + 3 6 1 52 0.14350644613521D+00 0.36640297026016D-16 + 1 7 1 52 -0.29949756481198D+01 -0.25038701885315D-15 + 2 7 1 52 -0.30971891017045D+01 0.50440738867242D-19 + 3 7 1 52 -0.11971059792642D+01 -0.28911685577726D-16 + 1 8 1 52 -0.23994603525543D+00 0.24153079373177D-15 + 2 8 1 52 0.65890303523437D-01 -0.42033298877402D-18 + 3 8 1 52 -0.89465979828499D-01 0.99967795862068D-16 + 1 9 1 52 -0.27427711397607D+02 0.15892376926494D-15 + 2 9 1 52 0.15032249132809D+02 0.20400171449889D-16 + 3 9 1 52 -0.17262113001736D+02 0.17545039566570D-16 + 1 10 1 52 0.15998648080427D+00 0.76465813895801D-16 + 2 10 1 52 -0.29396969816598D+00 -0.21237173638565D-16 + 3 10 1 52 -0.27827078820673D+00 -0.21900745924933D-16 + 1 11 1 52 0.21075421480058D+00 0.18418544690545D-15 + 2 11 1 52 0.42015639042686D+00 -0.11350243938408D-16 + 3 11 1 52 0.31360025830505D+00 0.21572390235579D-16 + 1 12 1 52 -0.83310310466002D+00 -0.47750802400937D-17 + 2 12 1 52 0.62977614684491D+00 -0.31180104932819D-16 + 3 12 1 52 -0.49860176723086D+00 -0.50910856558273D-17 + 1 13 1 52 0.50220923755618D+00 0.27366575173120D-16 + 2 13 1 52 0.29079744594824D+00 -0.47734952433033D-16 + 3 13 1 52 -0.32850170110729D+00 -0.18531688168371D-16 + 1 14 1 52 -0.40570463124976D+00 0.20572273361018D-15 + 2 14 1 52 0.45243150437113D+00 0.25622707423630D-16 + 3 14 1 52 -0.46794458107699D+00 0.12648680152169D-16 + 1 15 1 52 0.25512738324407D+00 0.15120567050570D-15 + 2 15 1 52 0.25033869836143D-01 0.16103088822854D-17 + 3 15 1 52 -0.35339012791915D-01 0.22598929413949D-16 + 1 16 1 52 -0.29895125632169D+01 0.19148740681506D-15 + 2 16 1 52 0.16276630588903D+01 0.39974924896928D-16 + 3 16 1 52 -0.29337777170518D+01 0.23173806824028D-17 + 1 17 1 52 -0.30112724456128D+01 -0.17754462877474D-15 + 2 17 1 52 -0.14136220409059D+01 -0.66359669442224D-17 + 3 17 1 52 0.32825700744194D+01 -0.59379674552568D-18 + 1 18 1 52 -0.21100302837231D+00 -0.14464833637733D-15 + 2 18 1 52 -0.25560236999467D-01 -0.23151465488304D-16 + 3 18 1 52 0.18875194431667D+00 -0.26229650588344D-17 + 1 19 1 52 -0.35729967959954D+00 -0.20625223425347D-15 + 2 19 1 52 -0.25898368449814D+00 -0.74240272450799D-16 + 3 19 1 52 -0.21810506358726D+00 0.11349321475576D-17 + 1 20 1 52 -0.29233488661134D+01 -0.21641966391232D-15 + 2 20 1 52 0.17402778573232D+01 0.39648319443467D-16 + 3 20 1 52 0.28846658458855D+01 -0.37651195176758D-18 + 1 21 1 52 -0.29596538007428D+01 -0.20893096747671D-15 + 2 21 1 52 -0.12343771874599D+01 0.16585333870233D-16 + 3 21 1 52 -0.32008726391262D+01 0.38755575588718D-17 + 1 22 1 52 -0.14227691375251D+00 0.16549382784587D-16 + 2 22 1 52 -0.55458505988008D+00 0.21077928029593D-17 + 3 22 1 52 0.63788193896406D+00 -0.10597521100106D-17 + 1 23 1 52 -0.20285354699657D+00 -0.25856207178643D-16 + 2 23 1 52 -0.14764773017079D+00 -0.31000466909529D-16 + 3 23 1 52 0.21870410963720D-01 0.36347810945625D-17 + 1 24 1 52 -0.25470941862985D+02 -0.50172629188751D-16 + 2 24 1 52 -0.13940477087648D+02 0.30869023272885D-16 + 3 24 1 52 0.13516280332068D+02 -0.20035109272319D-16 + 1 25 1 52 0.27295797963200D+00 -0.61613279559584D-16 + 2 25 1 52 0.39028506538331D+00 -0.20420846078685D-16 + 3 25 1 52 0.40294145954662D+00 -0.31225519774656D-17 + 1 26 1 52 0.20558033360884D+00 -0.11513345292329D-16 + 2 26 1 52 -0.25207267195374D+00 -0.65403719174637D-16 + 3 26 1 52 -0.34287793151198D+00 0.15121581797107D-17 + 1 27 1 52 -0.84916661268428D+00 0.11564402623842D-15 + 2 27 1 52 -0.37718079151061D+00 -0.54968300924005D-16 + 3 27 1 52 0.47131622603680D+00 0.66584762967479D-16 + 1 28 1 52 0.44208024797586D+00 0.10091626075040D-16 + 2 28 1 52 -0.41383561013825D+00 -0.22599533799145D-16 + 3 28 1 52 0.38566323318888D+00 -0.43046210525278D-16 + 1 29 1 52 -0.64234105542511D+00 -0.96987286238471D-16 + 2 29 1 52 -0.38978028340426D+00 0.78258279322076D-17 + 3 29 1 52 0.42614734542216D+00 -0.20050773615385D-16 + 1 30 1 52 -0.37941196594301D+00 0.78863452710268D-16 + 2 30 1 52 -0.32676665815979D+00 -0.30242676372136D-16 + 3 30 1 52 0.44374494864420D+00 -0.51592112350031D-18 + 1 31 1 52 0.25051017034733D+00 -0.67492371125829D-16 + 2 31 1 52 0.23561371178644D-01 0.25861550199066D-16 + 3 31 1 52 -0.11479705400310D+00 0.22509054918732D-16 + 1 32 1 52 0.87836048719612D-01 -0.19764998897918D-15 + 2 32 1 52 0.68445111688902D+00 0.76202483442529D-17 + 3 32 1 52 0.71809348402237D+00 0.31948231512088D-17 + 1 33 1 52 -0.40115266392879D-01 -0.32537256320906D-16 + 2 33 1 52 0.14432681694242D+00 0.13596466739019D-16 + 3 33 1 52 -0.15890958213719D+00 0.34486395207783D-16 + 1 34 1 52 0.28208267547111D-01 0.29442149285546D-16 + 2 34 1 52 -0.18188827530424D+00 -0.12334935995778D-16 + 3 34 1 52 0.10915285207293D+00 0.10338743879503D-16 + 1 35 1 52 0.17628049017313D-01 0.15986365985633D-15 + 2 35 1 52 0.72483235593101D-01 -0.53669899050499D-17 + 3 35 1 52 0.67088866551376D-01 0.10813705344185D-16 + 1 36 1 52 0.30385091776968D+01 -0.29720866489700D-16 + 2 36 1 52 -0.13146956625237D+01 -0.19413438494808D-17 + 3 36 1 52 -0.11550108999979D+01 -0.31761262465316D-16 + 1 37 1 52 0.30681912205084D+01 -0.51275932581983D-16 + 2 37 1 52 0.12999869291335D+01 -0.88478558087179D-17 + 3 37 1 52 -0.12892733219551D+01 0.24473112224353D-16 + 1 38 1 52 0.29709267831613D+01 -0.10291329575570D-15 + 2 38 1 52 -0.16200999420939D+01 0.28121706613636D-16 + 3 38 1 52 0.14257686930433D+01 -0.21765381725420D-16 + 1 39 1 52 0.31579413995747D+01 0.68912646257293D-16 + 2 39 1 52 0.11608650034962D+01 0.28189015715099D-17 + 3 39 1 52 0.11838219701199D+01 -0.10641979552679D-16 + 1 40 1 52 0.36923994026915D+00 -0.11529182503465D-15 + 2 40 1 52 -0.33003961467011D+00 0.20169086026280D-16 + 3 40 1 52 -0.26653682768797D+00 -0.60369430731127D-17 + 1 41 1 52 -0.49304833638928D+00 -0.92274159084772D-16 + 2 41 1 52 -0.35014435252327D+00 0.37167835539430D-17 + 3 41 1 52 -0.43710435220490D+00 0.19960063787867D-16 + 1 42 1 52 -0.50259411538243D+00 0.10587821202607D-15 + 2 42 1 52 -0.27401375196434D+00 -0.47460970147210D-16 + 3 42 1 52 -0.59033759901085D+00 0.38902612458428D-16 + 1 43 1 52 0.81947051681338D-01 -0.15614953391829D-15 + 2 43 1 52 -0.24610974420285D+00 -0.25739948429115D-16 + 3 43 1 52 0.10295060887454D+00 -0.21772715953615D-16 + 1 44 1 52 -0.27140407075915D+02 0.17883536794390D-15 + 2 44 1 52 -0.14248162262728D+02 -0.15980305018086D-16 + 3 44 1 52 -0.14840802524424D+02 -0.12762087409646D-16 + 1 45 1 52 0.18966302382550D+00 0.84074980906119D-16 + 2 45 1 52 0.33632806315325D+00 0.15373580085273D-16 + 3 45 1 52 -0.23380228617192D+00 0.69916308707930D-18 + 1 46 1 52 0.62632122828490D+00 0.69064523409948D-16 + 2 46 1 52 -0.61070928979988D+00 0.90967391981943D-17 + 3 46 1 52 0.21034855301276D+00 0.12059782333401D-16 + 1 47 1 52 -0.80985736801165D+00 -0.12485896004637D-15 + 2 47 1 52 -0.33968534256652D+00 0.43730042014577D-17 + 3 47 1 52 -0.35556774802707D+00 -0.23970960009948D-16 + 1 48 1 52 -0.35562475976301D+00 0.47916019319463D-17 + 2 48 1 52 0.73118224368082D-01 -0.10858036648512D-18 + 3 48 1 52 -0.19184240360456D-02 0.41981592214227D-18 + 1 49 1 52 -0.12290306718726D+00 -0.22584963327157D-17 + 2 49 1 52 -0.12182195732168D-01 0.49278357951666D-18 + 3 49 1 52 0.22596539548496D-01 0.24682146161990D-18 + 1 50 1 52 -0.12969776100868D+00 -0.36968819932965D-16 + 2 50 1 52 -0.74074581612352D+00 -0.72790666279897D-17 + 3 50 1 52 -0.85317621194837D+00 -0.13637070612922D-16 + 1 51 1 52 -0.16720242091942D+00 0.31344867078814D-17 + 2 51 1 52 -0.38930185792206D-01 -0.68759166567014D-18 + 3 51 1 52 0.22811652599747D-01 -0.32746962613059D-17 + 1 52 1 52 0.12287990253502D+03 0.00000000000000D+00 + 2 52 1 52 -0.34256587073390D+01 0.00000000000000D+00 + 3 52 1 52 0.10712478210705D+01 0.00000000000000D+00 + 1 53 1 52 -0.23816838007236D+00 0.13603689856036D-17 + 2 53 1 52 -0.13933129234015D-02 0.23293255085924D-17 + 3 53 1 52 0.18366634266786D-02 0.36685139227958D-18 + 1 54 1 52 -0.22583673303681D+00 -0.18277894776716D-17 + 2 54 1 52 -0.71182342370792D-01 0.46454901498356D-18 + 3 54 1 52 -0.68881838386677D-01 -0.68564360332123D-18 + 1 55 1 52 0.17064624383969D+01 -0.93630412512689D-19 + 2 55 1 52 -0.19346501631644D-01 0.35316255855081D-18 + 3 55 1 52 0.19049686090145D+00 -0.15642580622052D-17 + 1 56 1 52 0.31422049400924D+00 0.18813214167776D-15 + 2 56 1 52 0.21516708156432D+00 0.12590164217604D-16 + 3 56 1 52 -0.29825601567531D-02 0.21663385308265D-16 + 1 57 1 52 -0.45333922621258D+00 0.12836943771896D-16 + 2 57 1 52 0.51501859925011D+00 0.41759372165573D-16 + 3 57 1 52 0.52535734949560D+00 -0.27629082223787D-16 + 1 58 1 52 -0.39640379417134D+00 -0.12372755719024D-15 + 2 58 1 52 0.63674313804244D+00 -0.36102124263163D-17 + 3 58 1 52 0.59823138478368D+00 -0.22806283505210D-16 + 1 59 1 52 0.27664613061127D+00 0.18920280209585D-15 + 2 59 1 52 0.26176467133665D-02 0.39912196923121D-16 + 3 59 1 52 0.11650839707689D-02 0.31175456922791D-16 + 1 60 1 52 -0.27022189572521D+02 0.26774006984526D-18 + 2 60 1 52 0.14558835678490D+02 -0.20602262663078D-16 + 3 60 1 52 0.17380976115390D+02 -0.40195004074957D-17 + 1 61 1 52 0.22931480882146D+00 -0.35882713038006D-16 + 2 61 1 52 -0.35660563057979D+00 -0.32418557685569D-16 + 3 61 1 52 0.32406161278394D+00 -0.22747000560492D-16 + 1 62 1 52 0.62025028896456D-02 0.13458449554785D-15 + 2 62 1 52 -0.53763771560489D-01 0.54407939817570D-17 + 3 62 1 52 -0.26522545003790D+00 0.37495441085680D-16 + 1 63 1 52 -0.77717561802623D+00 -0.13788436682299D-15 + 2 63 1 52 0.44805328709032D+00 -0.23016092665401D-16 + 3 63 1 52 0.48194379625109D+00 0.37423421742716D-16 + 1 64 1 52 -0.50053457424158D+00 0.20896517537775D-15 + 2 64 1 52 0.10998115269211D+01 -0.21788009988381D-16 + 3 64 1 52 -0.46103480457848D+00 -0.23013017330926D-16 + 1 65 1 52 -0.14478320412948D+00 0.25053719913984D-15 + 2 65 1 52 -0.74878039637236D-01 0.88560106746803D-17 + 3 65 1 52 0.66647925942100D-01 0.65271763941858D-17 + 1 1 2 52 -0.31565116753994D+01 0.62573175730381D-18 + 2 1 2 52 -0.31160979668871D+01 -0.23871115373106D-15 + 3 1 2 52 0.14939482683633D+01 -0.48489466496899D-16 + 1 2 2 52 0.21810506358726D+00 0.97785602276468D-18 + 2 2 2 52 -0.42455260074796D+00 -0.83055648804412D-17 + 3 2 2 52 -0.57395443418605D-01 -0.10399305554503D-15 + 1 3 2 52 0.35866822654581D+01 0.10677221901659D-17 + 2 3 2 52 -0.32056288879744D+01 -0.30900143041320D-15 + 3 3 2 52 0.12650830491787D+01 -0.95853804233186D-16 + 1 4 2 52 -0.99376337698371D-01 0.36329558198169D-17 + 2 4 2 52 -0.20308108836415D+00 -0.88174703265710D-16 + 3 4 2 52 0.10250397564470D+00 0.10058719973395D-15 + 1 5 2 52 0.39313346883592D+01 -0.24437470697398D-17 + 2 5 2 52 -0.50448506524644D+01 -0.19999167295758D-15 + 3 5 2 52 0.26312833464488D+00 -0.10212736131773D-15 + 1 6 2 52 -0.12521758778297D+00 -0.29164664505017D-17 + 2 6 2 52 -0.26027564892998D+00 -0.15015872783747D-15 + 3 6 2 52 -0.16403408343850D+00 0.11640561283073D-17 + 1 7 2 52 -0.30926262122504D+01 0.50440738867242D-19 + 2 7 2 52 -0.29700809879205D+01 0.97674942603436D-16 + 3 7 2 52 -0.12001748544478D+01 -0.13041366580143D-16 + 1 8 2 52 0.10929782699043D+00 -0.42033298877402D-18 + 2 8 2 52 -0.21619915347569D+00 -0.16937372615979D-15 + 3 8 2 52 -0.14001481061544D+00 0.99011668109572D-16 + 1 9 2 52 0.15051561226099D+02 0.20400171449889D-16 + 2 9 2 52 -0.26974964152212D+02 0.79621188924878D-17 + 3 9 2 52 0.17191015790917D+02 -0.44092020321532D-17 + 1 10 2 52 -0.30327908922067D+00 -0.21237173638565D-16 + 2 10 2 52 0.17709448086395D+00 0.17351795551170D-15 + 3 10 2 52 0.29456117170823D+00 0.14047685893280D-18 + 1 11 2 52 0.34033249671622D+00 -0.11350243938408D-16 + 2 11 2 52 0.54545784522198D+00 -0.79329924814182D-16 + 3 11 2 52 0.36794478809993D+00 -0.38297990961445D-16 + 1 12 2 52 0.50563856021151D+00 -0.31180104932819D-16 + 2 12 2 52 -0.29904993474147D+00 -0.65172909798059D-16 + 3 12 2 52 0.33310674753373D+00 -0.31796364282582D-16 + 1 13 2 52 0.33703870689494D+00 -0.47734952433033D-16 + 2 13 2 52 0.15481190776718D+00 0.12172226284349D-15 + 3 13 2 52 -0.28740111017937D+00 -0.19684088810904D-16 + 1 14 2 52 0.47955481610337D+00 0.25622707423630D-16 + 2 14 2 52 -0.79384822690197D+00 -0.33211516880002D-16 + 3 14 2 52 0.51072631933869D+00 -0.69732566415015D-17 + 1 15 2 52 0.33953700215028D-01 0.16103088822854D-17 + 2 15 2 52 0.26036168030253D+00 -0.22007571280978D-15 + 3 15 2 52 0.22788356494299D-01 0.14406870322479D-16 + 1 16 2 52 -0.16276630588903D+01 0.39974924896928D-16 + 2 16 2 52 0.28299399254470D+01 0.31678226080664D-16 + 3 16 2 52 -0.14062279707536D+01 -0.19619872658361D-18 + 1 17 2 52 0.12509741864495D+01 -0.66359669442224D-17 + 2 17 2 52 0.31297097965360D+01 0.78047827394587D-16 + 3 17 2 52 -0.11229219114031D+01 -0.19926028734752D-16 + 1 18 2 52 -0.16758652877981D+00 -0.23151465488304D-16 + 2 18 2 52 0.92045836170670D-01 0.48899639346938D-16 + 3 18 2 52 -0.19848275994538D+00 -0.12485413307332D-17 + 1 19 2 52 0.21515632650470D+00 -0.74240272450799D-16 + 2 19 2 52 0.10115026623173D+00 -0.48669715219652D-16 + 3 19 2 52 0.56988572847703D-01 -0.32361618544529D-16 + 1 20 2 52 -0.12748485259548D+01 0.39648319443467D-16 + 2 20 2 52 0.28933820724064D+01 0.16223186232103D-16 + 3 20 2 52 0.10021922192644D+01 -0.17487391061456D-16 + 1 21 2 52 0.14160356266369D+01 0.16585333870233D-16 + 2 21 2 52 0.30102194717558D+01 -0.22550316629809D-16 + 3 21 2 52 0.14307103494987D+01 -0.27343671218002D-16 + 1 22 2 52 0.27447155986460D-01 0.21077928029593D-17 + 2 22 2 52 0.12432638468928D+01 0.16334826267207D-16 + 3 22 2 52 -0.10691912141849D+01 -0.23800047773652D-16 + 1 23 2 52 0.93528066163418D-01 -0.31000466909529D-16 + 2 23 2 52 0.54598954673179D-01 0.33632258575499D-15 + 3 23 2 52 0.15415690230453D+00 0.27920767228037D-16 + 1 24 2 52 -0.14083423636587D+02 0.30869023272885D-16 + 2 24 2 52 -0.26651846455054D+02 -0.63458931694673D-16 + 3 24 2 52 0.14783799473417D+02 -0.24432180994730D-16 + 1 25 2 52 0.36011376274168D+00 -0.20420846078685D-16 + 2 25 2 52 0.14604195947364D+00 0.29921904931017D-15 + 3 25 2 52 0.29133872444977D+00 -0.22398066954624D-17 + 1 26 2 52 -0.26928149076510D+00 -0.65403719174637D-16 + 2 26 2 52 0.34107393969033D+00 -0.15325634050412D-15 + 3 26 2 52 0.23445931572646D+00 0.19575545606959D-16 + 1 27 2 52 -0.41780254090832D+00 -0.54968300924005D-16 + 2 27 2 52 -0.51011838563335D+00 0.25835949002188D-15 + 3 27 2 52 0.48020796007542D+00 -0.65116271392950D-17 + 1 28 2 52 -0.30221072566820D+00 -0.22599533799145D-16 + 2 28 2 52 0.40863253993531D+00 0.89370586263972D-16 + 3 28 2 52 -0.44990739332757D+00 -0.65379667072249D-17 + 1 29 2 52 -0.31903292504870D+00 0.78258279322076D-17 + 2 29 2 52 -0.87452191548158D+00 -0.15878036500404D-15 + 3 29 2 52 0.57215740886046D+00 0.70117286325785D-17 + 1 30 2 52 -0.39126828577215D+00 -0.30242676372136D-16 + 2 30 2 52 -0.55512387936140D+00 -0.35340419993324D-16 + 3 30 2 52 0.44826197649394D+00 -0.20958135321372D-16 + 1 31 2 52 -0.19633221284498D-01 0.25861550199066D-16 + 2 31 2 52 0.22596097662280D+00 -0.29525293665407D-16 + 3 31 2 52 0.13890585649113D+00 0.22854778210398D-16 + 1 32 2 52 0.25019036966429D+00 0.76202483442529D-17 + 2 32 2 52 -0.11649945096036D+01 -0.29784913332488D-15 + 3 32 2 52 -0.99491676041998D+00 -0.49988687733641D-17 + 1 33 2 52 -0.42487475494265D-01 0.13596466739019D-16 + 2 33 2 52 -0.26792518326819D+00 -0.75009260976773D-15 + 3 33 2 52 0.21360777461598D-02 0.19254907240336D-18 + 1 34 2 52 0.43402375418692D-01 -0.12334935995778D-16 + 2 34 2 52 -0.14082776768839D+00 0.21524882858463D-16 + 3 34 2 52 -0.15173137220633D+00 0.34168420917426D-17 + 1 35 2 52 -0.13471322032933D+00 -0.53669899050499D-17 + 2 35 2 52 -0.17065132479147D+00 -0.97520637112193D-17 + 3 35 2 52 0.11291188076494D+00 0.91276284953047D-18 + 1 36 2 52 0.12138580036775D+01 -0.19413438494808D-17 + 2 36 2 52 -0.27516318762314D+01 -0.16722493442299D-15 + 3 36 2 52 -0.29073230193539D+01 -0.11102062399512D-16 + 1 37 2 52 -0.12892733219551D+01 -0.88478558087179D-17 + 2 37 2 52 -0.31939237968509D+01 -0.78046151292874D-16 + 3 37 2 52 0.30631974865687D+01 0.25374300438445D-18 + 1 38 2 52 0.16200999420939D+01 0.28121706613636D-16 + 2 38 2 52 -0.28486160486720D+01 0.68218316164930D-16 + 3 38 2 52 0.28968247934280D+01 -0.33217270896749D-18 + 1 39 2 52 -0.14131179231746D+01 0.28189015715099D-17 + 2 39 2 52 -0.29903000869573D+01 -0.65405897288567D-16 + 3 39 2 52 -0.32598618654776D+01 -0.84109070106021D-18 + 1 40 2 52 -0.29686620036028D+00 0.20169086026280D-16 + 2 40 2 52 0.22912581400825D+00 0.83598248977517D-16 + 3 40 2 52 0.32225879136919D+00 -0.12286566167859D-16 + 1 41 2 52 -0.36482159917444D+00 0.37167835539430D-17 + 2 41 2 52 -0.91736458850017D+00 -0.43126617594137D-16 + 3 41 2 52 -0.46614700581314D+00 0.40919773277429D-16 + 1 42 2 52 -0.35059274663601D+00 -0.47460970147210D-16 + 2 42 2 52 -0.62129055617946D+00 0.13447456015548D-16 + 3 42 2 52 -0.23675050006731D+00 0.18298481556710D-16 + 1 43 2 52 0.17540967717463D+00 -0.25739948429115D-16 + 2 43 2 52 0.53148809985973D+00 -0.10898142756211D-15 + 3 43 2 52 -0.20826631690892D+00 0.61392244671170D-17 + 1 44 2 52 -0.14117436603271D+02 -0.15980305018086D-16 + 2 44 2 52 -0.25536535365739D+02 0.48374131383086D-16 + 3 44 2 52 -0.13709035226119D+02 0.72964552693518D-16 + 1 45 2 52 0.35138773653670D+00 0.15373580085273D-16 + 2 45 2 52 0.20982897868919D+00 0.91486929401337D-17 + 3 45 2 52 -0.37492435584405D+00 0.44336703297695D-17 + 1 46 2 52 -0.83325922317389D+00 0.90967391981943D-17 + 2 46 2 52 0.10055228481423D+01 0.22775710905752D-15 + 3 46 2 52 -0.37174795431074D-01 -0.98640558252827D-16 + 1 47 2 52 -0.52165191449956D+00 0.43730042014577D-17 + 2 47 2 52 -0.60975442156202D+00 0.23758131040734D-15 + 3 47 2 52 -0.43526276143987D+00 -0.19528955974348D-16 + 1 48 2 52 -0.46994349775083D-01 -0.10858036648512D-18 + 2 48 2 52 -0.31749180709190D+00 -0.27744950878686D-16 + 3 48 2 52 0.40416366528409D-01 0.47506975151274D-17 + 1 49 2 52 0.36046341819233D-01 0.49278357951666D-18 + 2 49 2 52 0.15513921470717D+01 0.21737495660516D-17 + 3 49 2 52 -0.11411960095221D+00 -0.77928661375849D-19 + 1 50 2 52 -0.37629163850713D-01 -0.72790666279897D-17 + 2 50 2 52 0.10020919058717D+01 -0.41719717789518D-16 + 3 50 2 52 0.10028054761513D+01 0.42641493308718D-18 + 1 51 2 52 0.53321962162254D-01 -0.68759166567014D-18 + 2 51 2 52 -0.95554353237724D-01 -0.10623614342612D-17 + 3 51 2 52 -0.25872687761076D-01 0.41936104261566D-18 + 1 52 2 52 -0.34256587073390D+01 0.00000000000000D+00 + 2 52 2 52 0.12277108058833D+03 0.00000000000000D+00 + 3 52 2 52 -0.62995371830228D+00 0.00000000000000D+00 + 1 53 2 52 -0.36501365675335D-02 0.23293255085924D-17 + 2 53 2 52 -0.25609173438378D+00 0.29024972424055D-17 + 3 53 2 52 0.27708198192500D-02 0.28393458997496D-17 + 1 54 2 52 -0.80488204615409D-03 0.46454901498356D-18 + 2 54 2 52 -0.36966588801674D+00 0.87026342525530D-17 + 3 54 2 52 0.75794711745998D-01 0.51464034608667D-17 + 1 55 2 52 -0.19049686090145D+00 0.35316255855081D-18 + 2 55 2 52 0.14254411493811D+00 -0.97839802022244D-17 + 3 55 2 52 0.52128788298783D-01 0.15142039374922D-17 + 1 56 2 52 -0.17548457128182D+00 0.12590164217604D-16 + 2 56 2 52 0.31305621381462D-01 0.32562765195096D-15 + 3 56 2 52 0.18019124741021D+00 -0.65547562736984D-16 + 1 57 2 52 0.45618244863945D+00 0.41759372165573D-16 + 2 57 2 52 -0.80735361833170D+00 -0.30533875996375D-16 + 3 57 2 52 -0.47710773077174D+00 -0.36315771428870D-16 + 1 58 2 52 0.51417559201221D+00 -0.36102124263163D-17 + 2 58 2 52 -0.37756417728969D+00 0.13285005186408D-15 + 3 58 2 52 -0.69117859893013D+00 0.16987192808165D-16 + 1 59 2 52 0.84150502029028D-02 0.39912196923121D-16 + 2 59 2 52 0.29520040261450D+00 -0.32549987845057D-16 + 3 59 2 52 0.18427734937984D-01 -0.33176794198823D-18 + 1 60 2 52 0.14835666597383D+02 -0.20602262663078D-16 + 2 60 2 52 -0.26885952984624D+02 -0.25017025711609D-15 + 3 60 2 52 -0.18445644366106D+02 0.40100623913656D-16 + 1 61 2 52 -0.35239402038777D+00 -0.32418557685569D-16 + 2 61 2 52 0.19045136784063D+00 -0.64360506768976D-16 + 3 61 2 52 -0.29567997302833D+00 -0.26653316875319D-16 + 1 62 2 52 0.23104945061831D+00 0.54407939817570D-17 + 2 62 2 52 0.27420601099826D+00 -0.77904203468212D-15 + 3 62 2 52 0.16842214387475D+00 0.17487020041715D-16 + 1 63 2 52 0.51547249503314D+00 -0.23016092665401D-16 + 2 63 2 52 -0.51190641997774D+00 -0.69013649132137D-16 + 3 63 2 52 -0.59930329214815D+00 0.34689164798247D-17 + 1 64 2 52 0.93202794916050D+00 -0.21788009988381D-16 + 2 64 2 52 -0.84622544378207D+00 0.27155080572977D-15 + 3 64 2 52 0.82400616371946D+00 -0.30737815216662D-16 + 1 65 2 52 0.93420599972252D-01 0.88560106746803D-17 + 2 65 2 52 -0.31385696791190D+00 -0.50426669559755D-16 + 3 65 2 52 -0.62265338893120D-01 -0.15013720542217D-16 + 1 1 3 52 -0.13078588463868D+01 0.30143103042179D-16 + 2 1 3 52 -0.12509767681806D+01 -0.48489466496899D-16 + 3 1 3 52 0.30062117777567D+01 -0.24037688495606D-16 + 1 2 3 52 -0.25898368449814D+00 -0.12711937222677D-16 + 2 2 3 52 0.27412291065955D-01 -0.10399305554503D-15 + 3 2 3 52 0.10115026623172D+00 0.45578748108279D-16 + 1 3 3 52 0.12574855522480D+01 -0.83920503095785D-16 + 2 3 3 52 -0.12650830491787D+01 -0.95853804233186D-16 + 3 3 3 52 0.30927109131092D+01 0.18454045832485D-16 + 1 4 3 52 0.10752394562336D+00 0.34361591148935D-16 + 2 4 3 52 -0.12617294084810D+00 0.10058719973395D-15 + 3 4 3 52 -0.11931947826569D-01 -0.17647346355687D-17 + 1 5 3 52 -0.14435244257965D+01 -0.19363910622338D-17 + 2 5 3 52 0.29658009543567D+01 -0.10212736131773D-15 + 3 5 3 52 0.96910325492602D+00 0.12915475091191D-16 + 1 6 3 52 -0.10774984940747D-01 0.36640297026016D-16 + 2 6 3 52 0.15189491883038D+00 0.11640561283073D-17 + 3 6 3 52 0.67229337897273D-01 -0.12017832101017D-18 + 1 7 3 52 0.13678659944496D+01 -0.28911685577726D-16 + 2 7 3 52 0.13483055546319D+01 -0.13041366580143D-16 + 3 7 3 52 0.29632774936016D+01 0.81104719842262D-17 + 1 8 3 52 0.70206638076877D-01 0.99967795862068D-16 + 2 8 3 52 0.47616311444369D-01 0.99011668109572D-16 + 3 8 3 52 -0.19811576467606D-01 0.91015186523416D-16 + 1 9 3 52 -0.17278865142432D+02 0.17545039566570D-16 + 2 9 3 52 0.17169565845266D+02 -0.44092020321532D-17 + 3 9 3 52 -0.28264265805571D+02 -0.26509494545408D-15 + 1 10 3 52 -0.25310517724682D+00 -0.21900745924933D-16 + 2 10 3 52 0.30571700086024D+00 0.14047685893280D-18 + 3 10 3 52 0.41290445257317D+00 -0.27491939707367D-15 + 1 11 3 52 0.34690374812170D+00 0.21572390235579D-16 + 2 11 3 52 0.32110494697048D+00 -0.38297990961445D-16 + 3 11 3 52 0.14062091422055D+00 -0.35375824456827D-16 + 1 12 3 52 -0.36425031176629D+00 -0.50910856558273D-17 + 2 12 3 52 0.38152268192089D+00 -0.31796364282582D-16 + 3 12 3 52 -0.44110165423261D+00 0.33575629602033D-15 + 1 13 3 52 -0.33579699030057D+00 -0.18531688168371D-16 + 2 13 3 52 -0.34888369564760D+00 -0.19684088810904D-16 + 3 13 3 52 0.15825920575422D+00 -0.19959418216989D-15 + 1 14 3 52 -0.45844438789842D+00 0.12648680152169D-16 + 2 14 3 52 0.49702776924909D+00 -0.69732566415015D-17 + 3 14 3 52 -0.36210767937223D+00 -0.10821891300677D-15 + 1 15 3 52 -0.24465386896979D-01 0.22598929413949D-16 + 2 15 3 52 0.33216969269467D-01 0.14406870322479D-16 + 3 15 3 52 0.24725792597649D+00 -0.45238050406487D-15 + 1 16 3 52 -0.29337777170518D+01 0.23173806824028D-17 + 2 16 3 52 0.14062279707536D+01 -0.19619872658361D-18 + 3 16 3 52 -0.29999172970670D+01 0.14359643625869D-15 + 1 17 3 52 0.31446947372535D+01 -0.59379674552568D-18 + 2 17 3 52 0.12966080702833D+01 -0.19926028734752D-16 + 3 17 3 52 -0.31976530388552D+01 -0.92469788422986D-16 + 1 18 3 52 0.69182942504179D-01 -0.26229650588344D-17 + 2 18 3 52 0.10708464478094D-01 -0.12485413307332D-17 + 3 18 3 52 -0.15174463442924D+00 0.11204603123079D-15 + 1 19 3 52 -0.19847109189108D+00 0.11349321475576D-17 + 2 19 3 52 -0.27830676858511D-01 -0.32361618544529D-16 + 3 19 3 52 -0.42455260074795D+00 0.15285919040249D-15 + 1 20 3 52 0.28728526686265D+01 -0.37651195176758D-18 + 2 20 3 52 -0.13163110477181D+01 -0.17487391061456D-16 + 3 20 3 52 -0.28762227844451D+01 -0.18356982358603D-15 + 1 21 3 52 -0.31254481327735D+01 0.38755575588718D-17 + 2 21 3 52 -0.12144881578438D+01 -0.27343671218002D-16 + 3 21 3 52 -0.30979715045097D+01 -0.78816713655262D-16 + 1 22 3 52 0.82013102129528D-01 -0.10597521100106D-17 + 2 22 3 52 -0.93257181798682D+00 -0.23800047773652D-16 + 3 22 3 52 0.62293770665093D+00 0.51258102126454D-16 + 1 23 3 52 0.89658032623898D-01 0.36347810945625D-17 + 2 23 3 52 -0.10356682372427D+00 0.27920767228037D-16 + 3 23 3 52 -0.21577894633813D+00 -0.21644765338731D-15 + 1 24 3 52 0.13752406199400D+02 -0.20035109272319D-16 + 2 24 3 52 0.14890393670092D+02 -0.24432180994730D-16 + 3 24 3 52 -0.25987538274335D+02 -0.10624131586417D-15 + 1 25 3 52 0.38269152990934D+00 -0.31225519774656D-17 + 2 25 3 52 0.32807006299278D+00 -0.22398066954624D-17 + 3 25 3 52 0.66408895613075D+00 -0.34114418740545D-16 + 1 26 3 52 -0.27657730932818D+00 0.15121581797107D-17 + 2 26 3 52 0.13763729246427D+00 0.19575545606959D-16 + 3 26 3 52 0.16887509052892D+00 -0.14006738744777D-16 + 1 27 3 52 0.47848284343538D+00 0.66584762967479D-16 + 2 27 3 52 0.48351314694592D+00 -0.65116271392950D-17 + 3 27 3 52 -0.42400915340019D+00 0.16156079255445D-15 + 1 28 3 52 0.30252389954022D+00 -0.43046210525278D-16 + 2 28 3 52 -0.28358065322038D+00 -0.65379667072249D-17 + 3 28 3 52 0.18304592510120D+00 -0.62298336382657D-16 + 1 29 3 52 0.29992653005333D+00 -0.20050773615385D-16 + 2 29 3 52 0.34588094598481D+00 0.70117286325785D-17 + 3 29 3 52 -0.38401237108067D+00 0.96557816880529D-16 + 1 30 3 52 0.47241760155952D+00 -0.51592112350031D-18 + 2 30 3 52 0.44706759951065D+00 -0.20958135321372D-16 + 3 30 3 52 -0.71530023363884D+00 0.29252965414449D-16 + 1 31 3 52 -0.53470638894188D-01 0.22509054918732D-16 + 2 31 3 52 0.38181601510458D-01 0.22854778210398D-16 + 3 31 3 52 0.20857800944944D+00 0.14716689603451D-15 + 1 32 3 52 -0.62056743571316D-02 0.31948231512088D-17 + 2 32 3 52 0.87950895163831D+00 -0.49988687733641D-17 + 3 32 3 52 0.81365140915615D+00 0.28518022758370D-15 + 1 33 3 52 0.34258093331185D-01 0.34486395207783D-16 + 2 33 3 52 -0.49290147573132D-01 0.19254907240336D-18 + 3 33 3 52 -0.23088084729193D+00 0.73484298975670D-17 + 1 34 3 52 -0.46389530140495D-01 0.10338743879503D-16 + 2 34 3 52 -0.16359920195150D+00 0.34168420917426D-17 + 3 34 3 52 -0.19250859648881D+00 -0.73013555103026D-16 + 1 35 3 52 -0.10356308707008D+00 0.10813705344185D-16 + 2 35 3 52 0.59446261974188D-01 0.91276284953047D-18 + 3 35 3 52 -0.28160457200432D+00 -0.30152791464814D-16 + 1 36 3 52 0.12828034165548D+01 -0.31761262465316D-16 + 2 36 3 52 -0.28992922123548D+01 -0.11102062399512D-16 + 3 36 3 52 -0.28512247146025D+01 0.96287263231017D-16 + 1 37 3 52 0.12999869291335D+01 0.24473112224353D-16 + 2 37 3 52 0.34661093519879D+01 0.25374300438445D-18 + 3 37 3 52 -0.31939237968509D+01 -0.32947137685662D-16 + 1 38 3 52 -0.14257686930433D+01 -0.21765381725420D-16 + 2 38 3 52 0.28968247934280D+01 -0.33217270896749D-18 + 3 38 3 52 -0.31083248747394D+01 -0.40482852651801D-16 + 1 39 3 52 -0.14258506103839D+01 -0.10641979552679D-16 + 2 39 3 52 -0.32724273548708D+01 -0.84109070106021D-18 + 3 39 3 52 -0.32389323475908D+01 -0.19534272705413D-15 + 1 40 3 52 -0.20300347704440D+00 -0.60369430731127D-17 + 2 40 3 52 0.27594970481658D+00 -0.12286566167859D-16 + 3 40 3 52 0.15727104241102D+00 -0.76132048088388D-16 + 1 41 3 52 -0.50130163375714D+00 0.19960063787867D-16 + 2 41 3 52 -0.44375316277967D+00 0.40919773277429D-16 + 3 41 3 52 -0.37587517196716D+00 0.28891726005081D-16 + 1 42 3 52 -0.49922300162288D+00 0.38902612458428D-16 + 2 42 3 52 -0.76511502303097D-01 0.18298481556710D-16 + 3 42 3 52 -0.87879839587781D+00 -0.45359620698090D-16 + 1 43 3 52 -0.10458857416864D+00 -0.21772715953615D-16 + 2 43 3 52 -0.24018265599631D+00 0.61392244671170D-17 + 3 43 3 52 0.37092861818659D+00 0.11780105004016D-15 + 1 44 3 52 -0.14657072719821D+02 -0.12762087409646D-16 + 2 44 3 52 -0.13670665622604D+02 0.72964552693518D-16 + 3 44 3 52 -0.25763641485448D+02 0.70722166627825D-16 + 1 45 3 52 -0.27707858760759D+00 0.69916308707930D-18 + 2 45 3 52 -0.34701699078133D+00 0.44336703297695D-17 + 3 45 3 52 0.58598536914086D+00 -0.30941518946334D-15 + 1 46 3 52 0.78293220003703D+00 0.12059782333401D-16 + 2 46 3 52 -0.71273818903617D+00 -0.98640558252827D-16 + 3 46 3 52 -0.18536809697929D+00 -0.12446232495030D-15 + 1 47 3 52 -0.28684620462766D+00 -0.23970960009948D-16 + 2 47 3 52 -0.14952538593818D+00 -0.19528955974348D-16 + 3 47 3 52 -0.85893846018717D-01 0.72265996759945D-17 + 1 48 3 52 0.24461857082303D-02 0.41981592214227D-18 + 2 48 3 52 0.34358997781744D-01 0.47506975151274D-17 + 3 48 3 52 -0.20671006593297D+00 -0.50160867924292D-18 + 1 49 3 52 -0.50187471622123D-01 0.24682146161990D-18 + 2 49 3 52 0.50182227588190D-01 -0.77928661375849D-19 + 3 49 3 52 -0.67269915365609D-01 0.15277717731574D-17 + 1 50 3 52 0.94007595960451D-02 -0.13637070612922D-16 + 2 50 3 52 -0.12637881894937D+01 0.42641493308718D-18 + 3 50 3 52 0.62991047216481D-01 0.15424048156842D-17 + 1 51 3 52 -0.50822928074397D-01 -0.32746962613059D-17 + 2 51 3 52 -0.12262395208868D-01 0.41936104261566D-18 + 3 51 3 52 -0.84272004536131D-01 0.14899721321778D-17 + 1 52 3 52 0.10712478210705D+01 0.00000000000000D+00 + 2 52 3 52 -0.62995371830227D+00 0.00000000000000D+00 + 3 52 3 52 0.12361603940764D+03 0.00000000000000D+00 + 1 53 3 52 -0.31754131344396D-01 0.36685139227958D-18 + 2 53 3 52 0.17871430495605D-01 0.28393458997496D-17 + 3 53 3 52 -0.38525272769520D+00 0.36722542941420D-17 + 1 54 3 52 0.20095775691119D-01 -0.68564360332123D-18 + 2 54 3 52 -0.63860397410480D-01 0.51464034608667D-17 + 3 54 3 52 -0.29997582769306D+00 -0.79327207746742D-18 + 1 55 3 52 0.19346501631644D-01 -0.15642580622052D-17 + 2 55 3 52 -0.31054074968652D-02 0.15142039374922D-17 + 3 55 3 52 0.14254411493811D+00 0.11735839368388D-16 + 1 56 3 52 0.35986694257034D+00 0.21663385308265D-16 + 2 56 3 52 0.30197170554671D+00 -0.65547562736984D-16 + 3 56 3 52 0.10626880733348D+00 -0.17039351453932D-15 + 1 57 3 52 0.50891363746347D+00 -0.27629082223787D-16 + 2 57 3 52 -0.48027594224421D+00 -0.36315771428870D-16 + 3 57 3 52 -0.44735271654359D+00 0.93478351645094D-16 + 1 58 3 52 0.80045650826027D+00 -0.22806283505210D-16 + 2 58 3 52 -0.68264261748262D+00 0.16987192808165D-16 + 3 58 3 52 -0.60193948425331D+00 0.72516943166148D-16 + 1 59 3 52 -0.20626483504744D-02 0.31175456922791D-16 + 2 59 3 52 -0.54559282343331D-01 -0.33176794198823D-18 + 3 59 3 52 0.29691473446176D+00 0.14254033547292D-15 + 1 60 3 52 0.16629379756977D+02 -0.40195004074957D-17 + 2 60 3 52 -0.17524480964126D+02 0.40100623913656D-16 + 3 60 3 52 -0.27760819090572D+02 -0.16204326356635D-16 + 1 61 3 52 0.29022933731613D+00 -0.22747000560492D-16 + 2 61 3 52 -0.21799906534147D+00 -0.26653316875319D-16 + 3 61 3 52 0.53072023251006D+00 0.31222606982492D-15 + 1 62 3 52 -0.37197994347042D+00 0.37495441085680D-16 + 2 62 3 52 -0.26868741007230D+00 0.17487020041715D-16 + 3 62 3 52 0.12834338893619D+00 -0.53553165689812D-16 + 1 63 3 52 0.59936482346722D+00 0.37423421742716D-16 + 2 63 3 52 -0.61055482526110D+00 0.34689164798247D-17 + 3 63 3 52 -0.50047434236650D+00 0.48068052208017D-16 + 1 64 3 52 -0.62533824397712D+00 -0.23013017330926D-16 + 2 64 3 52 0.25725218217314D+00 -0.30737815216662D-16 + 3 64 3 52 0.12127492901125D+00 0.41352867881248D-15 + 1 65 3 52 0.22032006338685D+00 0.65271763941858D-17 + 2 65 3 52 -0.17148999232231D+00 -0.15013720542217D-16 + 3 65 3 52 0.12730033657659D+00 0.13484968288046D-15 + 1 1 1 53 -0.22648967574074D+00 -0.32254193572586D-16 + 2 1 1 53 0.98827236061179D-01 0.43129459601657D-19 + 3 1 1 53 0.10378919577471D+00 -0.63350368113067D-16 + 1 2 1 53 -0.30112724456127D+01 0.91414647297909D-16 + 2 2 1 53 -0.31446947372533D+01 0.15188174565753D-17 + 3 2 1 53 0.12509741864495D+01 -0.22084551533403D-16 + 1 3 1 53 -0.23629068496630D+00 -0.21805331445615D-15 + 2 3 1 53 -0.99376337698372D-01 0.16305777895985D-17 + 3 3 1 53 -0.10752394562336D+00 0.15135575875343D-16 + 1 4 1 53 -0.30686193417767D+01 0.38754094674971D-16 + 2 4 1 53 0.31586765985263D+01 -0.24718290079746D-18 + 3 4 1 53 -0.12808301121852D+01 -0.15067809082068D-16 + 1 5 1 53 -0.19682298503712D+00 -0.21689367650048D-15 + 2 5 1 53 -0.92961861660143D-01 -0.59119261217112D-17 + 3 5 1 53 0.46363386037038D-01 -0.55286341693316D-16 + 1 6 1 53 -0.30470853174333D+01 0.60432383463829D-16 + 2 6 1 53 0.32224719826006D+01 -0.10298897951586D-17 + 3 6 1 53 0.12789009470737D+01 0.79323093897739D-17 + 1 7 1 53 -0.23862176796399D+00 0.12379794594489D-15 + 2 7 1 53 0.82702315888195D-01 0.41368145600427D-18 + 3 7 1 53 -0.99565345105372D-01 -0.98490125757813D-16 + 1 8 1 53 -0.30954916382759D+01 0.61729010020667D-16 + 2 8 1 53 -0.32179128749850D+01 -0.14954925039380D-17 + 3 8 1 53 -0.12922970665964D+01 0.83058397240835D-16 + 1 9 1 53 0.18528448134060D+00 0.12192005905119D-15 + 2 9 1 53 -0.36852065360136D+00 -0.33758255969698D-16 + 3 9 1 53 -0.31950747315449D+00 -0.21590991876485D-16 + 1 10 1 53 -0.26111241917415D+02 0.36177189011267D-16 + 2 10 1 53 0.14088523839396D+02 0.30086135133793D-16 + 3 10 1 53 -0.14086024959132D+02 -0.10251008957642D-15 + 1 11 1 53 -0.85715481780120D+00 0.11226301145283D-15 + 2 11 1 53 0.47494090843275D+00 0.30061581433355D-16 + 3 11 1 53 -0.47386017200006D+00 0.13994385940748D-16 + 1 12 1 53 0.18496338576641D+00 -0.24886220974571D-15 + 2 12 1 53 0.31950747315450D+00 -0.40728945278392D-16 + 3 12 1 53 0.36863095759641D+00 -0.21215289351124D-16 + 1 13 1 53 -0.37906592757700D+00 0.91004294909805D-16 + 2 13 1 53 0.46323176661816D+00 0.49424128467057D-17 + 3 13 1 53 -0.47950150971597D+00 0.88072362115585D-17 + 1 14 1 53 0.41799354973523D+00 0.91110610880243D-16 + 2 14 1 53 0.27156071668570D+00 -0.14338645821756D-16 + 3 14 1 53 -0.27141212136987D+00 -0.14545659850409D-16 + 1 15 1 53 -0.37889230900943D+00 0.20746437407401D-15 + 2 15 1 53 0.47950150971598D+00 -0.16744225474010D-16 + 3 15 1 53 -0.46333199486231D+00 0.28291609548205D-16 + 1 16 1 53 -0.30112724456128D+01 0.51947944628275D-16 + 2 16 1 53 -0.12509741864495D+01 -0.15836008989447D-16 + 3 16 1 53 0.31446947372534D+01 0.53253725242100D-17 + 1 17 1 53 -0.30686193417766D+01 0.22895160230266D-15 + 2 17 1 53 0.12808301121852D+01 0.19560490627481D-16 + 3 17 1 53 -0.31586765985263D+01 0.18736437306914D-17 + 1 18 1 53 -0.22648967574073D+00 0.23716059001902D-15 + 2 18 1 53 -0.10378919577470D+00 -0.11390046150035D-16 + 3 18 1 53 -0.98827236061188D-01 0.12552906198002D-17 + 1 19 1 53 -0.23629068496631D+00 0.14600678680372D-15 + 2 19 1 53 0.10752394562335D+00 0.48663252028013D-16 + 3 19 1 53 0.99376337698371D-01 -0.24785633136621D-17 + 1 20 1 53 -0.30470853174333D+01 -0.66417204598159D-16 + 2 20 1 53 -0.12789009470737D+01 -0.14084053505806D-16 + 3 20 1 53 -0.32224719826006D+01 -0.25812682328593D-17 + 1 21 1 53 -0.30954916382760D+01 0.18160742041683D-15 + 2 21 1 53 0.12922970665964D+01 0.19593000921706D-17 + 3 21 1 53 0.32179128749850D+01 -0.27117430306952D-18 + 1 22 1 53 -0.19682298503714D+00 0.20090374075330D-15 + 2 22 1 53 -0.46363386037039D-01 -0.65785041239030D-17 + 3 22 1 53 0.92961861660142D-01 0.19321577399952D-18 + 1 23 1 53 -0.23862176796399D+00 0.26577629873947D-15 + 2 23 1 53 0.99565345105363D-01 0.10105820998468D-15 + 3 23 1 53 -0.82702315888196D-01 0.30223770166287D-17 + 1 24 1 53 0.16889592751831D+00 0.25673635022176D-15 + 2 24 1 53 0.32422969088818D+00 -0.84776816251101D-17 + 3 24 1 53 0.25374530201724D+00 0.13785718357011D-16 + 1 25 1 53 -0.27014966454727D+02 -0.11074552867916D-15 + 2 25 1 53 -0.14732387636065D+02 -0.80178629523914D-17 + 3 25 1 53 0.14732387636065D+02 0.15886720239469D-16 + 1 26 1 53 -0.77575023094951D+00 0.10113597537981D-15 + 2 26 1 53 -0.50967449466852D+00 -0.19175795754419D-16 + 3 26 1 53 0.50967449466852D+00 -0.12736864171810D-16 + 1 27 1 53 0.16889592751831D+00 -0.14441718980963D-16 + 2 27 1 53 -0.25374530201724D+00 0.92168534489703D-17 + 3 27 1 53 -0.32422969088818D+00 -0.53277099456202D-16 + 1 28 1 53 -0.33895793998500D+00 0.23605113477511D-15 + 2 28 1 53 -0.46860018244849D+00 0.20539357103273D-16 + 3 28 1 53 0.44099543805919D+00 -0.17031252915255D-16 + 1 29 1 53 0.57016707799583D+00 -0.21724920096683D-16 + 2 29 1 53 -0.28159265728973D+00 0.20036078559447D-16 + 3 29 1 53 0.28159265728972D+00 0.38428369217574D-17 + 1 30 1 53 0.27094753380645D+00 0.66621226728015D-16 + 2 30 1 53 -0.26937884890203D-01 -0.86703759834769D-16 + 3 30 1 53 0.26937884890203D-01 -0.12572573105440D-17 + 1 31 1 53 -0.33895793998524D+00 0.41578259404020D-16 + 2 31 1 53 -0.44099543805919D+00 0.13314420557351D-16 + 3 31 1 53 0.46860018244849D+00 -0.56303721445033D-16 + 1 32 1 53 -0.36115044457191D-01 -0.69945403254899D-16 + 2 32 1 53 0.18965285104182D+00 -0.18447448716103D-16 + 3 32 1 53 -0.18965285104182D+00 -0.18178741757219D-16 + 1 33 1 53 -0.21972711183064D-01 0.12495957151223D-15 + 2 33 1 53 -0.10979845495590D+00 0.33656971862718D-17 + 3 33 1 53 -0.11346762956114D+00 -0.10155827014478D-16 + 1 34 1 53 -0.21972711183061D-01 0.24652548353206D-16 + 2 34 1 53 0.11346762956114D+00 -0.11692980700145D-16 + 3 34 1 53 0.10979845495590D+00 -0.30092623080810D-16 + 1 35 1 53 -0.34911139746885D-01 0.88743039541098D-16 + 2 35 1 53 -0.93652105749601D-01 -0.36691487910522D-16 + 3 35 1 53 0.93652105749600D-01 -0.33427820488764D-16 + 1 36 1 53 0.30824006681923D+01 -0.53388602971200D-16 + 2 36 1 53 0.12970359638530D+01 -0.10294631717934D-16 + 3 36 1 53 -0.12970359638530D+01 -0.24405601362543D-16 + 1 37 1 53 0.31579413995749D+01 -0.14966060423926D-15 + 2 37 1 53 -0.14258506103839D+01 -0.34460587666635D-16 + 3 37 1 53 -0.14131179231745D+01 -0.19110275412087D-16 + 1 38 1 53 0.31579413995747D+01 0.94754761047101D-16 + 2 38 1 53 0.14131179231746D+01 0.98217371206375D-19 + 3 38 1 53 0.14258506103839D+01 -0.27704211081380D-16 + 1 39 1 53 0.31306774163660D+01 -0.27586415496239D-16 + 2 39 1 53 -0.12905059699577D+01 0.15269043374307D-16 + 3 39 1 53 0.12905059699577D+01 0.14517720785392D-16 + 1 40 1 53 -0.37009599433220D+00 0.57589458031437D-16 + 2 40 1 53 -0.48491587255602D+00 -0.13678565792084D-16 + 3 40 1 53 -0.47002277043585D+00 -0.93720610258231D-17 + 1 41 1 53 0.52464302253744D+00 0.18413282500552D-15 + 2 41 1 53 -0.33179221431110D+00 -0.61314406850535D-17 + 3 41 1 53 -0.32051276862331D+00 0.19657368520018D-16 + 1 42 1 53 0.23662232486672D+00 0.15469941201335D-15 + 2 42 1 53 -0.11555303207963D-01 -0.23302718725553D-17 + 3 42 1 53 -0.31560473711001D-02 0.26955534615329D-16 + 1 43 1 53 -0.63312078461237D+00 0.12637577434615D-15 + 2 43 1 53 -0.63253059845948D+00 0.79494019298583D-17 + 3 43 1 53 -0.28525463577358D+00 -0.12619199207132D-16 + 1 44 1 53 0.19346724068187D+00 -0.11166892443373D-15 + 2 44 1 53 0.32903125202355D+00 -0.46126297984547D-16 + 3 44 1 53 -0.26040622557041D+00 0.14472436990887D-16 + 1 45 1 53 -0.26326713723825D+02 0.73419219566776D-16 + 2 45 1 53 -0.14353000606928D+02 0.11721171035793D-16 + 3 45 1 53 -0.14705333028176D+02 0.28008508519851D-16 + 1 46 1 53 -0.81083552164948D+00 -0.99662165324939D-16 + 2 46 1 53 -0.57259088947737D+00 0.14858106167183D-16 + 3 46 1 53 -0.45818229504203D+00 0.66169530672301D-19 + 1 47 1 53 0.11542738827355D+00 -0.14738877850611D-15 + 2 47 1 53 -0.23882867257476D+00 -0.28996452447751D-16 + 3 47 1 53 0.23038762429389D+00 0.64551254379665D-17 + 1 48 1 53 -0.14651597359657D+00 -0.22462818449289D-17 + 2 48 1 53 0.12570281290532D-01 -0.17402902100961D-19 + 3 48 1 53 0.23926507485511D-01 0.13271859156987D-18 + 1 49 1 53 -0.40592725268390D+00 0.27238470116367D-17 + 2 49 1 53 -0.44494871188017D-02 -0.65545335769248D-18 + 3 49 1 53 0.44494871188017D-02 -0.56907957317509D-18 + 1 50 1 53 -0.79888593078686D-01 0.11690787943347D-16 + 2 50 1 53 0.24064116261817D-01 -0.73169854558778D-17 + 3 50 1 53 -0.24064116261817D-01 -0.62200509432651D-17 + 1 51 1 53 -0.14651597359657D+00 0.46461440005212D-18 + 2 51 1 53 -0.23926507485514D-01 0.46157439816494D-18 + 3 51 1 53 -0.12570281290532D-01 -0.50730881701011D-18 + 1 52 1 53 -0.23816838007236D+00 -0.13603689856036D-17 + 2 52 1 53 -0.36501365675335D-02 -0.23293255085924D-17 + 3 52 1 53 -0.31754131344396D-01 -0.36685139227958D-18 + 1 53 1 53 0.12143117983312D+03 0.00000000000000D+00 + 2 53 1 53 0.44054760316666D+00 0.00000000000000D+00 + 3 53 1 53 -0.44054760316684D+00 0.00000000000000D+00 + 1 54 1 53 0.15680213486448D+01 -0.22198626356058D-17 + 2 54 1 53 -0.52521091841466D-02 0.12904541218136D-17 + 3 54 1 53 0.52521091841386D-02 -0.85683928053131D-18 + 1 55 1 53 -0.23816838007246D+00 0.53324702846374D-18 + 2 55 1 53 0.31754131344404D-01 0.19133671991568D-17 + 3 55 1 53 0.36501365675269D-02 -0.39431177635078D-18 + 1 56 1 53 -0.63312078461237D+00 -0.13257884601033D-15 + 2 56 1 53 0.28525463577358D+00 0.20822425601795D-16 + 3 56 1 53 0.63253059845949D+00 -0.29258819848998D-16 + 1 57 1 53 0.52464302253745D+00 0.16120346113231D-15 + 2 57 1 53 0.32051276862331D+00 -0.25630438396031D-17 + 3 57 1 53 0.33179221431111D+00 0.29788416195458D-16 + 1 58 1 53 0.23662232486672D+00 -0.12603458780289D-16 + 2 58 1 53 0.31560473711001D-02 -0.52445201431546D-16 + 3 58 1 53 0.11555303207962D-01 0.18057064064834D-16 + 1 59 1 53 -0.37009599433221D+00 0.12054143665103D-15 + 2 59 1 53 0.47002277043586D+00 0.25679843615998D-16 + 3 59 1 53 0.48491587255602D+00 -0.25525123794253D-16 + 1 60 1 53 0.11542738827356D+00 -0.19868129716767D-16 + 2 60 1 53 -0.23038762429389D+00 -0.76867903887959D-17 + 3 60 1 53 0.23882867257477D+00 0.25155679506650D-17 + 1 61 1 53 -0.26326713723825D+02 -0.18651312711807D-15 + 2 61 1 53 0.14705333028176D+02 -0.27237310448499D-16 + 3 61 1 53 0.14353000606929D+02 0.36337704826894D-16 + 1 62 1 53 -0.81083552164948D+00 -0.22666719260351D-16 + 2 62 1 53 0.45818229504203D+00 0.17009281973602D-16 + 3 62 1 53 0.57259088947737D+00 -0.66333636123604D-18 + 1 63 1 53 0.19346724068187D+00 0.50876987686907D-16 + 2 63 1 53 0.26040622557041D+00 0.91731405853679D-17 + 3 63 1 53 -0.32903125202355D+00 0.21758739353228D-16 + 1 64 1 53 0.12032606938285D+00 -0.13809772507302D-15 + 2 64 1 53 -0.14446331097554D-01 -0.17109923981816D-16 + 3 64 1 53 0.14446331097554D-01 0.18521826811261D-16 + 1 65 1 53 0.88500697922166D-01 -0.10097216734465D-15 + 2 65 1 53 0.17348015532402D-01 -0.13617488404239D-16 + 3 65 1 53 -0.18923029479716D-01 -0.82229703946254D-17 + 1 1 2 53 0.99937356912092D-01 0.43129459601657D-19 + 2 1 2 53 -0.24812961285717D+00 0.26529979254983D-15 + 3 1 2 53 0.12016519405870D+00 -0.58049471924909D-16 + 1 2 2 53 -0.32825700744194D+01 0.15188174565753D-17 + 2 2 2 53 -0.31976530388552D+01 -0.23114276679822D-16 + 3 2 2 53 0.11229219114031D+01 0.33663374228823D-16 + 1 3 2 53 -0.11720523352892D+00 0.16305777895985D-17 + 2 3 2 53 -0.20308108836415D+00 0.26974133494841D-15 + 3 3 2 53 0.12617294084810D+00 0.93626004767716D-16 + 1 4 2 53 0.31586765985263D+01 -0.24718290079746D-18 + 2 4 2 53 -0.30740777943507D+01 -0.14502254038518D-15 + 3 4 2 53 0.13150463898993D+01 -0.24935028924936D-16 + 1 5 2 53 -0.13436069301927D+00 -0.59119261217112D-17 + 2 5 2 53 -0.36216127554279D+00 -0.28932248222558D-15 + 3 5 2 53 0.25060787165518D-01 0.27326916711642D-16 + 1 6 2 53 0.31172863636170D+01 -0.10298897951586D-17 + 2 6 2 53 -0.31198683632758D+01 -0.23873852491410D-15 + 3 6 2 53 -0.13535554609168D+01 0.81080513179254D-16 + 1 7 2 53 0.11390436163443D+00 0.41368145600427D-18 + 2 7 2 53 -0.22618681439698D+00 0.21631756727818D-15 + 3 7 2 53 -0.80612052259493D-01 -0.97646568824012D-16 + 1 8 2 53 -0.31872566408716D+01 -0.14954925039380D-17 + 2 8 2 53 -0.31266544890534D+01 0.77058326809512D-16 + 3 8 2 53 -0.13605572144011D+01 -0.70299199294817D-16 + 1 9 2 53 -0.37105522615204D+00 -0.33758255969698D-16 + 2 9 2 53 0.18898296290150D+00 0.11862556469000D-16 + 3 9 2 53 0.31080049433586D+00 -0.38947262876927D-17 + 1 10 2 53 0.14122753774739D+02 0.30086135133793D-16 + 2 10 2 53 -0.26113917060901D+02 -0.30648825275575D-15 + 3 10 2 53 0.13781556160135D+02 -0.24099573988329D-16 + 1 11 2 53 0.46829113774877D+00 0.30061581433355D-16 + 2 11 2 53 -0.36710398362791D+00 0.28824928774925D-16 + 3 11 2 53 0.44471794370565D+00 0.37103040477346D-16 + 1 12 2 53 0.30833421115942D+00 -0.40728945278392D-16 + 2 12 2 53 0.61690564411060D+00 0.33711399176394D-15 + 3 12 2 53 0.32853382357376D+00 -0.39889876031894D-16 + 1 13 2 53 0.46121895615498D+00 0.49424128467057D-17 + 2 13 2 53 -0.83788531463352D+00 -0.42965089979049D-16 + 3 13 2 53 0.48737886495423D+00 -0.23242696131993D-16 + 1 14 2 53 0.25160913496119D+00 -0.14338645821756D-16 + 2 14 2 53 0.18885545875544D+00 -0.79339514949911D-16 + 3 14 2 53 -0.30051062649132D+00 0.70478542442783D-17 + 1 15 2 53 0.47158531944063D+00 -0.16744225474010D-16 + 2 15 2 53 -0.43255486659625D+00 -0.32565310963101D-15 + 3 15 2 53 0.44647630976623D+00 -0.28852765290823D-16 + 1 16 2 53 0.14136220409059D+01 -0.15836008989447D-16 + 2 16 2 53 0.31297097965360D+01 0.42900634611758D-16 + 3 16 2 53 -0.12966080702833D+01 0.26990506235819D-16 + 1 17 2 53 -0.12808301121852D+01 0.19560490627481D-16 + 2 17 2 53 0.31445569949215D+01 -0.64578380980976D-16 + 3 17 2 53 -0.13148458615180D+01 -0.12299401115227D-16 + 1 18 2 53 0.87793578338515D-01 -0.11390046150035D-16 + 2 18 2 53 -0.13044625834395D-02 -0.11677292827510D-16 + 3 18 2 53 -0.10609528741851D+00 0.11387328512251D-16 + 1 19 2 53 -0.10296464443796D+00 0.48663252028013D-16 + 2 19 2 53 -0.11931947826560D-01 -0.52337386959246D-16 + 3 19 2 53 -0.10250397564470D+00 -0.12867323420640D-16 + 1 20 2 53 0.13286275214552D+01 -0.14084053505806D-16 + 2 20 2 53 0.30490719621776D+01 0.80807644557985D-16 + 3 20 2 53 0.13623457728179D+01 -0.17169162236542D-17 + 1 21 2 53 -0.12247732147474D+01 0.19593000921706D-17 + 2 21 2 53 0.31665669045345D+01 -0.10113800470843D-15 + 3 21 2 53 0.12430520967716D+01 -0.19857548106098D-16 + 1 22 2 53 0.12700528632820D+00 -0.65785041239030D-17 + 2 22 2 53 0.17901783548743D+00 -0.22534436534297D-15 + 3 22 2 53 0.20914673817793D-01 0.12146710641020D-16 + 1 23 2 53 -0.86016099995373D-01 0.10105820998468D-15 + 2 23 2 53 -0.18016648722803D-01 -0.16880282807548D-15 + 3 23 2 53 0.11218963836734D+00 0.17534240717842D-16 + 1 24 2 53 0.29580210237062D+00 -0.84776816251101D-17 + 2 24 2 53 0.21055711069935D+00 -0.15562935507030D-15 + 3 24 2 53 0.29697315648479D+00 0.22540499597521D-16 + 1 25 2 53 -0.14702714068196D+02 -0.80178629523914D-17 + 2 25 2 53 -0.26136043103733D+02 0.11936046454247D-15 + 3 25 2 53 0.14332308246567D+02 0.13755125308198D-16 + 1 26 2 53 -0.47477936449435D+00 -0.19175795754419D-16 + 2 26 2 53 -0.48229205645406D+00 -0.25369702417362D-15 + 3 26 2 53 0.57503662633799D+00 -0.21233942273658D-16 + 1 27 2 53 -0.21574548602397D+00 0.92168534489703D-17 + 2 27 2 53 0.37222044862082D+00 0.23995922719699D-15 + 3 27 2 53 0.26120958661627D+00 0.66574794136924D-17 + 1 28 2 53 -0.47850355038478D+00 0.20539357103273D-16 + 2 28 2 53 -0.73242711028473D+00 -0.58813749224963D-16 + 3 28 2 53 0.47539775607859D+00 -0.79809976868492D-17 + 1 29 2 53 -0.31466521596142D+00 0.20036078559447D-16 + 2 29 2 53 0.27473289303675D+00 -0.18866581177099D-15 + 3 29 2 53 -0.32049253750884D+00 0.15913090764344D-16 + 1 30 2 53 -0.71745259578824D-02 -0.86703759834769D-16 + 2 30 2 53 0.24073277920517D+00 0.13004470906182D-15 + 3 30 2 53 0.26434993805051D-01 -0.21564375439526D-16 + 1 31 2 53 -0.46633448469613D+00 0.13314420557351D-16 + 2 31 2 53 -0.39782518419851D+00 0.95256059402914D-16 + 3 31 2 53 0.43357222992647D+00 -0.14493589508698D-16 + 1 32 2 53 -0.14342087980567D-01 -0.18447448716103D-16 + 2 32 2 53 -0.28136420191462D+00 -0.25635860580708D-16 + 3 32 2 53 -0.20782504841661D+00 -0.24510293967682D-17 + 1 33 2 53 0.11243027226998D+00 0.33656971862718D-17 + 2 33 2 53 -0.24801182769949D+00 -0.31159131509726D-15 + 3 33 2 53 0.94812845415093D-01 0.44662238491547D-18 + 1 34 2 53 -0.98113074926454D-01 -0.11692980700145D-16 + 2 34 2 53 -0.22877355990031D+00 -0.11744947586362D-15 + 3 34 2 53 0.88531530517871D-01 0.89630420498472D-18 + 1 35 2 53 0.99917988628223D-01 -0.36691487910522D-16 + 2 35 2 53 -0.23199836150855D+00 -0.34444223672605D-16 + 3 35 2 53 -0.98841998568624D-01 0.88110989676891D-18 + 1 36 2 53 -0.14676609476163D+01 -0.10294631717934D-16 + 2 36 2 53 -0.31020751299927D+01 0.63315150593285D-16 + 3 36 2 53 0.31423875954876D+01 -0.73851300825016D-18 + 1 37 2 53 0.11838219701199D+01 -0.34460587666635D-16 + 2 37 2 53 -0.32389323475908D+01 -0.31820055207026D-15 + 3 37 2 53 -0.32598618654776D+01 -0.15339418812122D-17 + 1 38 2 53 -0.11608650034962D+01 0.98217371206375D-19 + 2 38 2 53 -0.29903000869573D+01 0.12387306162213D-15 + 3 38 2 53 -0.32724273548708D+01 0.73050641309714D-18 + 1 39 2 53 0.12905059699577D+01 0.15269043374307D-16 + 2 39 2 53 -0.31236535704691D+01 0.71006221485827D-16 + 3 39 2 53 0.32768449906018D+01 0.87730115163602D-18 + 1 40 2 53 -0.46559347373896D+00 -0.13678565792084D-16 + 2 40 2 53 -0.78547982018116D+00 0.19023455898763D-16 + 3 40 2 53 -0.46924060623007D+00 0.29229672817881D-16 + 1 41 2 53 -0.34486761325059D+00 -0.61314406850535D-17 + 2 41 2 53 0.19316941103678D+00 0.54842732758936D-16 + 3 41 2 53 0.32860218100949D+00 0.29526709527295D-16 + 1 42 2 53 0.11423776684104D-01 -0.23302718725553D-17 + 2 42 2 53 0.27493805249823D+00 -0.78847965678719D-16 + 3 42 2 53 0.19573453759546D-01 0.10512883792774D-16 + 1 43 2 53 -0.51528742791334D+00 0.79494019298583D-17 + 2 43 2 53 -0.50206812739810D+00 0.12397226128517D-15 + 3 43 2 53 -0.49069469237906D+00 0.57186047238382D-17 + 1 44 2 53 0.33125308076840D+00 -0.46126297984547D-16 + 2 44 2 53 0.17902564882348D+00 0.12049666944772D-15 + 3 44 2 53 -0.27558435795446D+00 0.22352928849192D-16 + 1 45 2 53 -0.14477059088582D+02 0.11721171035793D-16 + 2 45 2 53 -0.26293428596271D+02 0.91412540362665D-16 + 3 45 2 53 -0.14444249625280D+02 0.58121192356185D-16 + 1 46 2 53 -0.54032163431437D+00 0.14858106167183D-16 + 2 46 2 53 -0.48945075687645D+00 0.71085568889543D-16 + 3 46 2 53 -0.48522302031412D+00 -0.40702959539201D-16 + 1 47 2 53 -0.26119564154638D+00 -0.28996452447751D-16 + 2 47 2 53 0.29163708009971D+00 0.82744342096813D-16 + 3 47 2 53 -0.27476276805792D+00 0.30854070437309D-16 + 1 48 2 53 -0.78310784482451D-02 -0.17402902100961D-19 + 2 48 2 53 0.15339790868766D+01 -0.22579034448885D-17 + 3 48 2 53 0.41533968157781D-01 -0.29867096078638D-18 + 1 49 2 53 0.24069014812013D-02 -0.65545335769248D-18 + 2 49 2 53 -0.22329293722580D+00 -0.21100450066147D-18 + 3 49 2 53 -0.31725157218817D-02 -0.40566022168666D-18 + 1 50 2 53 -0.21521344319738D-01 -0.73169854558778D-17 + 2 50 2 53 0.40195590498098D-01 0.11788793609396D-16 + 3 50 2 53 0.14872177932805D+00 0.90611939793743D-18 + 1 51 2 53 -0.41467919487296D-01 0.46157439816494D-18 + 2 51 2 53 -0.19111969908325D+00 0.86406966789974D-18 + 3 51 2 53 0.11097588776132D-01 0.91657276224219D-18 + 1 52 2 53 -0.13933129234015D-02 -0.23293255085924D-17 + 2 52 2 53 -0.25609173438378D+00 -0.29024972424055D-17 + 3 52 2 53 0.17871430495605D-01 -0.28393458997496D-17 + 1 53 2 53 0.44054760316666D+00 0.00000000000000D+00 + 2 53 2 53 0.12122798321440D+03 0.00000000000000D+00 + 3 53 2 53 0.76649767139123D+00 0.00000000000000D+00 + 1 54 2 53 0.34565694143064D-01 0.12904541218136D-17 + 2 54 2 53 -0.14562371684376D+00 -0.39426789324912D-17 + 3 54 2 53 -0.29389480393447D-01 0.92287163401384D-18 + 1 55 2 53 -0.18366634266786D-02 0.19133671991568D-17 + 2 55 2 53 -0.38525272769520D+00 0.57456108406403D-17 + 3 55 2 53 0.27708198192500D-02 0.14447649573763D-17 + 1 56 2 53 0.44260789793588D+00 0.20822425601795D-16 + 2 56 2 53 -0.79567018427530D+00 0.56756638144208D-16 + 3 56 2 53 -0.46177411275870D+00 0.39823188084266D-16 + 1 57 2 53 0.32135967168937D+00 -0.25630438396031D-17 + 2 57 2 53 0.17794304813894D+00 0.59584828684533D-16 + 3 57 2 53 0.34435770576832D+00 -0.16115828179741D-16 + 1 58 2 53 -0.94824085324155D-02 -0.52445201431546D-16 + 2 58 2 53 0.29525495854003D+00 0.15381970571359D-15 + 3 58 2 53 -0.51697840507663D-01 0.58393452610911D-16 + 1 59 2 53 0.45192755122545D+00 0.25679843615998D-16 + 2 59 2 53 -0.37052391080199D+00 0.16525990394435D-15 + 3 59 2 53 -0.46488166323621D+00 -0.10724703704355D-16 + 1 60 2 53 -0.17250536151424D+00 -0.76867903887959D-17 + 2 60 2 53 0.15731667061839D+00 0.24676874484323D-15 + 3 60 2 53 -0.33313519872922D+00 -0.19615234397948D-16 + 1 61 2 53 0.14678196712313D+02 -0.27237310448499D-16 + 2 61 2 53 -0.26673406555051D+02 0.96464766608954D-16 + 3 61 2 53 -0.14299918188595D+02 0.78369647405566D-16 + 1 62 2 53 0.44096668991251D+00 0.17009281973602D-16 + 2 62 2 53 -0.50913110257274D+00 0.17964803517932D-15 + 3 62 2 53 -0.56817747023680D+00 -0.22011707967591D-16 + 1 63 2 53 0.29583507294685D+00 0.91731405853679D-17 + 2 63 2 53 0.45098802112199D+00 -0.13898267496710D-15 + 3 63 2 53 -0.29820000814503D+00 0.31283112232994D-16 + 1 64 2 53 0.64979964818779D-01 -0.17109923981816D-16 + 2 64 2 53 0.27114731353366D+00 0.55049549634665D-15 + 3 64 2 53 0.77365666925797D-01 0.10180003723501D-16 + 1 65 2 53 0.19333452705320D-01 -0.13617488404239D-16 + 2 65 2 53 0.33772563371244D-01 0.20174173140659D-16 + 3 65 2 53 0.14162581672600D-01 -0.20187236140321D-16 + 1 1 3 53 -0.87793578338516D-01 -0.63350368113067D-16 + 2 1 3 53 -0.10609528741851D+00 -0.58049471924909D-16 + 3 1 3 53 -0.13044625834323D-02 0.15566835984869D-16 + 1 2 3 53 -0.14136220409059D+01 -0.22084551533403D-16 + 2 2 3 53 -0.12966080702833D+01 0.33663374228823D-16 + 3 2 3 53 0.31297097965360D+01 -0.85228503444504D-16 + 1 3 3 53 0.10296464443796D+00 0.15135575875343D-16 + 2 3 3 53 -0.10250397564470D+00 0.93626004767716D-16 + 3 3 3 53 -0.11931947826555D-01 0.18389794723580D-16 + 1 4 3 53 0.12808301121852D+01 -0.15067809082068D-16 + 2 4 3 53 -0.13150463898993D+01 -0.24935028924936D-16 + 3 4 3 53 0.31445569949214D+01 0.30426436178136D-16 + 1 5 3 53 -0.12700528632818D+00 -0.55286341693316D-16 + 2 5 3 53 0.20914673817793D-01 0.27326916711642D-16 + 3 5 3 53 0.17901783548742D+00 -0.13089405164461D-16 + 1 6 3 53 -0.13286275214552D+01 0.79323093897739D-17 + 2 6 3 53 0.13623457728179D+01 0.81080513179254D-16 + 3 6 3 53 0.30490719621776D+01 0.32954906650363D-16 + 1 7 3 53 0.86016099995365D-01 -0.98490125757813D-16 + 2 7 3 53 0.11218963836733D+00 -0.97646568824012D-16 + 3 7 3 53 -0.18016648722806D-01 -0.79587214804556D-16 + 1 8 3 53 0.12247732147474D+01 0.83058397240835D-16 + 2 8 3 53 0.12430520967716D+01 -0.70299199294817D-16 + 3 8 3 53 0.31665669045344D+01 0.73623577954374D-16 + 1 9 3 53 -0.30833402292337D+00 -0.21590991876485D-16 + 2 9 3 53 0.32822659856280D+00 -0.38947262876927D-17 + 3 9 3 53 0.61690564411060D+00 0.53261732901808D-16 + 1 10 3 53 -0.14122753774738D+02 -0.10251008957642D-15 + 2 10 3 53 0.13783328285082D+02 -0.24099573988329D-16 + 3 10 3 53 -0.26113781530201D+02 0.32426759466115D-16 + 1 11 3 53 -0.46829113774878D+00 0.13994385940748D-16 + 2 11 3 53 0.44415925481134D+00 0.37103040477346D-16 + 3 11 3 53 -0.36753651542807D+00 -0.10161894564323D-16 + 1 12 3 53 0.37109140564482D+00 -0.21215289351124D-16 + 2 12 3 53 0.31080049433589D+00 -0.39889876031894D-16 + 3 12 3 53 0.18886149498240D+00 0.11789091341596D-15 + 1 13 3 53 -0.47191400210512D+00 0.88072362115585D-17 + 2 13 3 53 0.44676438578567D+00 -0.23242696131993D-16 + 3 13 3 53 -0.43255486659626D+00 -0.20063046410732D-15 + 1 14 3 53 -0.25160913496103D+00 -0.14545659850409D-16 + 2 14 3 53 -0.30025138851925D+00 0.70478542442783D-17 + 3 14 3 53 0.18931625870340D+00 -0.94633529860486D-16 + 1 15 3 53 -0.46116872534589D+00 0.28291609548205D-16 + 2 15 3 53 0.48737886495422D+00 -0.28852765290823D-16 + 3 15 3 53 -0.83861054278827D+00 -0.31407728784481D-15 + 1 16 3 53 0.32825700744194D+01 0.53253725242100D-17 + 2 16 3 53 0.11229219114031D+01 0.26990506235819D-16 + 3 16 3 53 -0.31976530388552D+01 0.56584431140629D-16 + 1 17 3 53 -0.31586765985263D+01 0.18736437306914D-17 + 2 17 3 53 0.13148458615180D+01 -0.12299401115227D-16 + 3 17 3 53 -0.30740777943507D+01 0.52515117015110D-16 + 1 18 3 53 -0.99937356912092D-01 0.12552906198002D-17 + 2 18 3 53 0.12016519405870D+00 0.11387328512251D-16 + 3 18 3 53 -0.24812961285717D+00 -0.56638752205488D-16 + 1 19 3 53 0.11720523352892D+00 -0.24785633136621D-17 + 2 19 3 53 0.12617294084810D+00 -0.12867323420640D-16 + 3 19 3 53 -0.20308108836415D+00 0.49421771668621D-16 + 1 20 3 53 -0.31172863636170D+01 -0.25812682328593D-17 + 2 20 3 53 -0.13535554609168D+01 -0.17169162236542D-17 + 3 20 3 53 -0.31198683632758D+01 0.16740998354037D-15 + 1 21 3 53 0.31872566408720D+01 -0.27117430306952D-18 + 2 21 3 53 -0.13605572144011D+01 -0.19857548106098D-16 + 3 21 3 53 -0.31266544890534D+01 -0.36168954371574D-16 + 1 22 3 53 0.13436069301924D+00 0.19321577399952D-18 + 2 22 3 53 0.25060787165518D-01 0.12146710641020D-16 + 3 22 3 53 -0.36216127554279D+00 -0.20103528228073D-15 + 1 23 3 53 -0.11390436163443D+00 0.30223770166287D-17 + 2 23 3 53 -0.80612052259485D-01 0.17534240717842D-16 + 3 23 3 53 -0.22618681439698D+00 -0.18780312225270D-15 + 1 24 3 53 0.21574548602409D+00 0.13785718357011D-16 + 2 24 3 53 0.26120958661627D+00 0.22540499597521D-16 + 3 24 3 53 0.37222044862081D+00 0.10771271769877D-15 + 1 25 3 53 0.14702714068196D+02 0.15886720239469D-16 + 2 25 3 53 0.14332308246567D+02 0.13755125308198D-16 + 3 25 3 53 -0.26136043103733D+02 -0.19242420429512D-16 + 1 26 3 53 0.47477936449436D+00 -0.12736864171810D-16 + 2 26 3 53 0.57503662633799D+00 -0.21233942273658D-16 + 3 26 3 53 -0.48229205645406D+00 -0.17772617510422D-15 + 1 27 3 53 -0.29580210237061D+00 -0.53277099456202D-16 + 2 27 3 53 0.29697315648480D+00 0.66574794136924D-17 + 3 27 3 53 0.21055711069935D+00 -0.76222504319236D-16 + 1 28 3 53 0.46633448469616D+00 -0.17031252915255D-16 + 2 28 3 53 0.43357222992647D+00 -0.79809976868492D-17 + 3 28 3 53 -0.39782518419851D+00 0.94944031018178D-16 + 1 29 3 53 0.31466521596143D+00 0.38428369217574D-17 + 2 29 3 53 -0.32049253750884D+00 0.15913090764344D-16 + 3 29 3 53 0.27473289303675D+00 0.95903138688252D-16 + 1 30 3 53 0.71745259578761D-02 -0.12572573105440D-17 + 2 30 3 53 0.26434993805051D-01 -0.21564375439526D-16 + 3 30 3 53 0.24073277920517D+00 -0.13293260687904D-15 + 1 31 3 53 0.47850355038475D+00 -0.56303721445033D-16 + 2 31 3 53 0.47539775607859D+00 -0.14493589508698D-16 + 3 31 3 53 -0.73242711028474D+00 0.11702784238853D-15 + 1 32 3 53 0.14342087980569D-01 -0.18178741757219D-16 + 2 32 3 53 -0.20782504841661D+00 -0.24510293967682D-17 + 3 32 3 53 -0.28136420191463D+00 -0.16414316844297D-15 + 1 33 3 53 0.98113074926453D-01 -0.10155827014478D-16 + 2 33 3 53 0.88531530517869D-01 0.44662238491547D-18 + 3 33 3 53 -0.22877355990030D+00 0.21250791373128D-15 + 1 34 3 53 -0.11243027226998D+00 -0.30092623080810D-16 + 2 34 3 53 0.94812845415096D-01 0.89630420498472D-18 + 3 34 3 53 -0.24801182769948D+00 -0.74469943182482D-16 + 1 35 3 53 -0.99917988628229D-01 -0.33427820488764D-16 + 2 35 3 53 -0.98841998568624D-01 0.88110989676891D-18 + 3 35 3 53 -0.23199836150855D+00 -0.15462311994606D-15 + 1 36 3 53 0.14676609476163D+01 -0.24405601362543D-16 + 2 36 3 53 0.31423875954876D+01 -0.73851300825016D-18 + 3 36 3 53 -0.31020751299927D+01 -0.16372825972090D-16 + 1 37 3 53 0.11608650034962D+01 -0.19110275412087D-16 + 2 37 3 53 -0.32724273548708D+01 -0.15339418812122D-17 + 3 37 3 53 -0.29903000869573D+01 0.15570218781925D-15 + 1 38 3 53 -0.11838219701199D+01 -0.27704211081380D-16 + 2 38 3 53 -0.32598618654775D+01 0.73050641309714D-18 + 3 38 3 53 -0.32389323475908D+01 -0.28950640355077D-15 + 1 39 3 53 -0.12905059699577D+01 0.14517720785392D-16 + 2 39 3 53 0.32768449906018D+01 0.87730115163602D-18 + 3 39 3 53 -0.31236535704691D+01 0.28166238873949D-15 + 1 40 3 53 -0.45192755122545D+00 -0.93720610258231D-17 + 2 40 3 53 -0.46488166323621D+00 0.29229672817881D-16 + 3 40 3 53 -0.37052391080198D+00 -0.32201029926485D-15 + 1 41 3 53 -0.32135967168937D+00 0.19657368520018D-16 + 2 41 3 53 0.34435770576832D+00 0.29526709527295D-16 + 3 41 3 53 0.17794304813893D+00 -0.34313567306297D-16 + 1 42 3 53 0.94824085324155D-02 0.26955534615329D-16 + 2 42 3 53 -0.51697840507665D-01 0.10512883792774D-16 + 3 42 3 53 0.29525495854003D+00 0.82578262884640D-16 + 1 43 3 53 -0.44260789793588D+00 -0.12619199207132D-16 + 2 43 3 53 -0.46177411275870D+00 0.57186047238382D-17 + 3 43 3 53 -0.79567018427530D+00 -0.36762399245608D-16 + 1 44 3 53 -0.29583507294684D+00 0.14472436990887D-16 + 2 44 3 53 -0.29820000814504D+00 0.22352928849192D-16 + 3 44 3 53 0.45098802112201D+00 0.66699920146332D-17 + 1 45 3 53 -0.14678196712313D+02 0.28008508519851D-16 + 2 45 3 53 -0.14299918188595D+02 0.58121192356185D-16 + 3 45 3 53 -0.26673406555051D+02 0.70348840710407D-16 + 1 46 3 53 -0.44096668991251D+00 0.66169530672301D-19 + 2 46 3 53 -0.56817747023680D+00 -0.40702959539201D-16 + 3 46 3 53 -0.50913110257273D+00 0.10194154469931D-15 + 1 47 3 53 0.17250536151424D+00 0.64551254379665D-17 + 2 47 3 53 -0.33313519872921D+00 0.30854070437309D-16 + 3 47 3 53 0.15731667061840D+00 -0.41485428388521D-16 + 1 48 3 53 0.41467919487293D-01 0.13271859156987D-18 + 2 48 3 53 0.11097588776132D-01 -0.29867096078638D-18 + 3 48 3 53 -0.19111969908325D+00 0.10838495998602D-17 + 1 49 3 53 -0.24069014811968D-02 -0.56907957317509D-18 + 2 49 3 53 -0.31725157218817D-02 -0.40566022168666D-18 + 3 49 3 53 -0.22329293722580D+00 0.65016547886506D-18 + 1 50 3 53 0.21521344319737D-01 -0.62200509432651D-17 + 2 50 3 53 0.14872177932805D+00 0.90611939793743D-18 + 3 50 3 53 0.40195590498096D-01 0.22552953040651D-16 + 1 51 3 53 0.78310784482451D-02 -0.50730881701011D-18 + 2 51 3 53 0.41533968157781D-01 0.91657276224219D-18 + 3 51 3 53 0.15339790868766D+01 0.65267877438073D-18 + 1 52 3 53 0.18366634266786D-02 -0.36685139227958D-18 + 2 52 3 53 0.27708198192500D-02 -0.28393458997496D-17 + 3 52 3 53 -0.38525272769520D+00 -0.36722542941420D-17 + 1 53 3 53 -0.44054760316684D+00 0.00000000000000D+00 + 2 53 3 53 0.76649767139123D+00 0.00000000000000D+00 + 3 53 3 53 0.12122798321440D+03 0.00000000000000D+00 + 1 54 3 53 -0.34565694143064D-01 -0.85683928053131D-18 + 2 54 3 53 -0.29389480393447D-01 0.92287163401384D-18 + 3 54 3 53 -0.14562371684378D+00 -0.46175543066407D-17 + 1 55 3 53 0.13933129234016D-02 -0.39431177635078D-18 + 2 55 3 53 0.17871430495605D-01 0.14447649573763D-17 + 3 55 3 53 -0.25609173438377D+00 0.53042219579385D-17 + 1 56 3 53 0.51528742791334D+00 -0.29258819848998D-16 + 2 56 3 53 -0.49069469237906D+00 0.39823188084266D-16 + 3 56 3 53 -0.50206812739809D+00 -0.44065190571441D-16 + 1 57 3 53 0.34486761325059D+00 0.29788416195458D-16 + 2 57 3 53 0.32860218100949D+00 -0.16115828179741D-16 + 3 57 3 53 0.19316941103679D+00 -0.45090723067261D-15 + 1 58 3 53 -0.11423776684105D-01 0.18057064064834D-16 + 2 58 3 53 0.19573453759548D-01 0.58393452610911D-16 + 3 58 3 53 0.27493805249823D+00 -0.83719479395064D-16 + 1 59 3 53 0.46559347373896D+00 -0.25525123794253D-16 + 2 59 3 53 -0.46924060623007D+00 -0.10724703704355D-16 + 3 59 3 53 -0.78547982018116D+00 -0.53021614545101D-16 + 1 60 3 53 0.26119564154639D+00 0.25155679506650D-17 + 2 60 3 53 -0.27476276805793D+00 -0.19615234397948D-16 + 3 60 3 53 0.29163708009973D+00 0.54763818960031D-16 + 1 61 3 53 0.14477059088582D+02 0.36337704826894D-16 + 2 61 3 53 -0.14444249625280D+02 0.78369647405566D-16 + 3 61 3 53 -0.26293428596271D+02 -0.73185172705799D-17 + 1 62 3 53 0.54032163431437D+00 -0.66333636123604D-18 + 2 62 3 53 -0.48522302031412D+00 -0.22011707967591D-16 + 3 62 3 53 -0.48945075687645D+00 0.13843710441607D-15 + 1 63 3 53 -0.33125308076840D+00 0.21758739353228D-16 + 2 63 3 53 -0.27558435795446D+00 0.31283112232994D-16 + 3 63 3 53 0.17902564882348D+00 0.15847901982353D-15 + 1 64 3 53 -0.64979964818738D-01 0.18521826811261D-16 + 2 64 3 53 0.77365666925797D-01 0.10180003723501D-16 + 3 64 3 53 0.27114731353366D+00 -0.17655646475076D-16 + 1 65 3 53 -0.19333452705324D-01 -0.82229703946254D-17 + 2 65 3 53 0.14717410392584D-01 -0.20187236140321D-16 + 3 65 3 53 0.33286274453572D-01 -0.25191695264696D-17 + 1 1 1 54 -0.30386599704316D+01 -0.30138747318910D-15 + 2 1 1 54 0.31989593194819D+01 -0.31072469932402D-17 + 3 1 1 54 -0.13681488651771D+01 -0.98093982040070D-16 + 1 2 1 54 -0.21100302837231D+00 0.19067829866248D-15 + 2 2 1 54 -0.69182942504178D-01 -0.42150740219250D-17 + 3 2 1 54 -0.16758652877981D+00 0.34217323074723D-17 + 1 3 1 54 -0.29694333512828D+01 0.20682200246157D-15 + 2 3 1 54 -0.31565116753994D+01 0.91107409106523D-19 + 3 3 1 54 0.13078588463868D+01 0.96425015544439D-16 + 1 4 1 54 -0.22648967574073D+00 -0.48009149094019D-16 + 2 4 1 54 0.99937356912093D-01 -0.25548312022876D-18 + 3 4 1 54 0.87793578338514D-01 0.10222963130638D-16 + 1 5 1 54 -0.30801803345459D+01 0.27195677423749D-15 + 2 5 1 54 -0.27304288889754D+01 -0.70555125381834D-19 + 3 5 1 54 -0.97182246126537D+00 0.31970720673896D-16 + 1 6 1 54 -0.23467698998718D+00 -0.21366710784972D-15 + 2 6 1 54 0.90300250886181D-01 0.55566342904513D-18 + 3 6 1 54 -0.11471479398950D+00 0.22525909732289D-16 + 1 7 1 54 -0.30031823137819D+01 0.51073034987855D-16 + 2 7 1 54 0.33550916598139D+01 -0.56996159813526D-18 + 3 7 1 54 0.14068234245039D+01 0.43922955097363D-16 + 1 8 1 54 -0.21730179390960D+00 0.15008627185896D-15 + 2 8 1 54 -0.68866005259074D-01 0.16926373676324D-17 + 3 8 1 54 0.13479536424726D+00 0.46419009679654D-16 + 1 9 1 54 0.27079361319600D+00 -0.16060309709221D-15 + 2 9 1 54 0.31256048530872D+00 0.14572803111691D-16 + 3 9 1 54 0.30357372278435D+00 -0.24002616973012D-16 + 1 10 1 54 -0.79514737317400D+00 0.79508942313537D-16 + 2 10 1 54 0.44288349858362D+00 0.10810608554101D-17 + 3 10 1 54 -0.44289771937658D+00 0.25402824089259D-17 + 1 11 1 54 -0.26002968654618D+02 -0.32257858628896D-17 + 2 11 1 54 0.13679662289396D+02 0.13666798289824D-16 + 3 11 1 54 -0.13680820868451D+02 0.15944451760166D-16 + 1 12 1 54 0.27072631859939D+00 0.70103646967483D-16 + 2 12 1 54 -0.30357372278451D+00 -0.80140363338297D-17 + 3 12 1 54 -0.31256916911061D+00 -0.93980722709429D-17 + 1 13 1 54 -0.36444635920968D+00 0.26853417828171D-15 + 2 13 1 54 0.38442718384614D+00 0.33198344732930D-16 + 3 13 1 54 -0.50513314278050D+00 0.14138934237419D-16 + 1 14 1 54 0.28964246251229D+00 -0.13839628773188D-15 + 2 14 1 54 0.14634507613371D-01 0.25951562583882D-16 + 3 14 1 54 -0.14630111665330D-01 0.27771086590181D-16 + 1 15 1 54 -0.36415063882438D+00 -0.21152965686212D-16 + 2 15 1 54 0.50513314278052D+00 0.49797994923666D-17 + 3 15 1 54 -0.38417593010425D+00 -0.22902411462853D-16 + 1 16 1 54 -0.21100302837231D+00 -0.18486507946501D-15 + 2 16 1 54 0.16758652877981D+00 0.68447323456406D-16 + 3 16 1 54 0.69182942504180D-01 0.15585265933736D-17 + 1 17 1 54 -0.22648967574072D+00 0.24181426181495D-15 + 2 17 1 54 -0.87793578338512D-01 -0.18597505590120D-16 + 3 17 1 54 -0.99937356912094D-01 0.16883746284398D-17 + 1 18 1 54 -0.30386599704316D+01 -0.19471640100227D-15 + 2 18 1 54 0.13681488651771D+01 -0.25972097900086D-16 + 3 18 1 54 -0.31989593194819D+01 0.43434267198003D-17 + 1 19 1 54 -0.29694333512828D+01 -0.19245955544787D-15 + 2 19 1 54 -0.13078588463868D+01 0.15177077031071D-16 + 3 19 1 54 0.31565116753994D+01 0.45492685571152D-17 + 1 20 1 54 -0.23467698998718D+00 0.15838217028898D-15 + 2 20 1 54 0.11471479398950D+00 0.71838872464106D-17 + 3 20 1 54 -0.90300250886180D-01 0.26421813835061D-18 + 1 21 1 54 -0.21730179390958D+00 0.13655570763399D-16 + 2 21 1 54 -0.13479536424726D+00 -0.85163976981625D-16 + 3 21 1 54 0.68866005259073D-01 -0.25868478441484D-17 + 1 22 1 54 -0.30801803345459D+01 0.19570595650764D-15 + 2 22 1 54 0.97182246126537D+00 -0.37135781228127D-16 + 3 22 1 54 0.27304288889754D+01 -0.35919922177667D-17 + 1 23 1 54 -0.30031823137818D+01 0.22100118707457D-15 + 2 23 1 54 -0.14068234245039D+01 -0.31656607002084D-16 + 3 23 1 54 -0.33550916598139D+01 -0.11717424386079D-17 + 1 24 1 54 0.21624829368054D+00 0.70375641363221D-16 + 2 24 1 54 -0.35721281861581D+00 0.68253715872164D-17 + 3 24 1 54 -0.28191177394063D+00 -0.15209534449036D-17 + 1 25 1 54 -0.92453050901542D+00 0.10154279755173D-15 + 2 25 1 54 -0.48877102561255D+00 -0.75635200337419D-17 + 3 25 1 54 0.48877102561255D+00 0.16881807664659D-16 + 1 26 1 54 -0.26831784449549D+02 0.12907460101948D-15 + 2 26 1 54 -0.15395242367030D+02 0.20444047398973D-16 + 3 26 1 54 0.15395242367030D+02 0.43783988508949D-16 + 1 27 1 54 0.21624829368057D+00 0.28220772465301D-15 + 2 27 1 54 0.28191177394063D+00 -0.20556430393624D-16 + 3 27 1 54 0.35721281861583D+00 -0.78589269688128D-17 + 1 28 1 54 -0.23492183623368D+00 0.54827225858126D-16 + 2 28 1 54 -0.52606372110212D+00 0.27557933453534D-16 + 3 28 1 54 0.36290693780693D+00 0.10400491607438D-17 + 1 29 1 54 0.19865530001746D+00 -0.21430343031349D-16 + 2 29 1 54 -0.61658131533781D-01 -0.67137917254546D-17 + 3 29 1 54 0.61658131533780D-01 0.41543108283656D-16 + 1 30 1 54 0.45964836441715D+00 0.99401694646584D-16 + 2 30 1 54 -0.43748335270101D+00 0.23634354943992D-16 + 3 30 1 54 0.43748335270102D+00 -0.69158722974972D-16 + 1 31 1 54 -0.23492183623365D+00 -0.34996550190871D-15 + 2 31 1 54 -0.36290693780692D+00 -0.12321995419654D-19 + 3 31 1 54 0.52606372110213D+00 0.24342639220439D-16 + 1 32 1 54 -0.59361263754469D-01 0.24164208286160D-15 + 2 32 1 54 -0.13441851649689D+00 0.27842197217308D-16 + 3 32 1 54 0.13441851649689D+00 0.17186670487973D-16 + 1 33 1 54 -0.19885450472424D-01 0.16346126708361D-16 + 2 33 1 54 0.11018956029346D+00 0.29780016301866D-16 + 3 33 1 54 0.54960985429200D-01 0.76786382567691D-17 + 1 34 1 54 -0.19885450472424D-01 0.32787882444643D-16 + 2 34 1 54 -0.54960985429200D-01 0.93407238498300D-17 + 3 34 1 54 -0.11018956029346D+00 0.26893891836221D-16 + 1 35 1 54 0.49215479792297D-01 -0.44192690790198D-16 + 2 35 1 54 0.11676445661641D+00 -0.34485686132120D-16 + 3 35 1 54 -0.11676445661641D+00 0.36098802041530D-16 + 1 36 1 54 0.33172086175472D+01 -0.10663522522354D-15 + 2 36 1 54 -0.12700720656505D+01 0.17064040534248D-16 + 3 36 1 54 0.12700720656505D+01 0.26353410301900D-16 + 1 37 1 54 0.30385091776969D+01 0.18386837735862D-15 + 2 37 1 54 0.12828034165548D+01 -0.11462724814537D-16 + 3 37 1 54 0.12138580036775D+01 -0.15834349154545D-16 + 1 38 1 54 0.30385091776968D+01 0.11682723485428D-15 + 2 38 1 54 -0.12138580036775D+01 0.18514345845440D-17 + 3 38 1 54 -0.12828034165548D+01 0.34555044930627D-16 + 1 39 1 54 0.30824006681923D+01 0.22861447843036D-16 + 2 39 1 54 0.14676609476163D+01 0.14378769657017D-16 + 3 39 1 54 -0.14676609476163D+01 -0.16989444922331D-16 + 1 40 1 54 -0.46736184534095D+00 0.32038049276189D-16 + 2 40 1 54 -0.48216063573330D+00 0.13805227982808D-16 + 3 40 1 54 -0.45135257442485D+00 -0.12302452911076D-16 + 1 41 1 54 0.24369046204170D+00 -0.79993501214057D-16 + 2 41 1 54 -0.14456368115461D-01 -0.42926919925945D-17 + 3 41 1 54 -0.22552624962986D-01 0.13703524048869D-16 + 1 42 1 54 0.12148402283880D+00 -0.27462062573622D-15 + 2 42 1 54 -0.20189496355113D+00 -0.11934019831183D-17 + 3 42 1 54 -0.16615110843059D+00 0.36468267841556D-16 + 1 43 1 54 -0.58364062511924D+00 -0.35088980657770D-16 + 2 43 1 54 -0.45615503776575D+00 -0.25622367731614D-16 + 3 43 1 54 -0.58941207799973D+00 0.17482738982916D-16 + 1 44 1 54 0.20291562690678D+00 -0.11911528988418D-15 + 2 44 1 54 -0.26767530867153D+00 0.21004177980124D-16 + 3 44 1 54 0.32023862973356D+00 0.16750332609380D-16 + 1 45 1 54 -0.78592107040989D+00 -0.66031348685960D-16 + 2 45 1 54 -0.44525731202280D+00 -0.39702564997911D-16 + 3 45 1 54 -0.47064181745670D+00 0.44334048422310D-17 + 1 46 1 54 -0.24223590393392D+02 -0.40049195637086D-15 + 2 46 1 54 -0.12618695132517D+02 0.40310224201592D-17 + 3 46 1 54 -0.13901670395537D+02 -0.97149613788337D-17 + 1 47 1 54 0.21582940437261D+00 -0.43835247419234D-16 + 2 47 1 54 0.28753091410638D+00 0.16173913059147D-16 + 3 47 1 54 -0.29934916374171D+00 0.17883254832646D-16 + 1 48 1 54 -0.10369009279273D+00 -0.90319094762596D-18 + 2 48 1 54 0.13312149805395D-01 -0.20187843197738D-18 + 3 48 1 54 0.24861959050637D-01 -0.10145132546482D-17 + 1 49 1 54 -0.10055294059491D+00 -0.38324262664291D-17 + 2 49 1 54 0.14934656076212D-01 -0.11122296118210D-17 + 3 49 1 54 -0.14934656076212D-01 -0.15140751063227D-17 + 1 50 1 54 -0.40109275971454D+00 0.74208858637730D-16 + 2 50 1 54 -0.68047619236458D-01 0.20355825577542D-17 + 3 50 1 54 0.68047619236457D-01 -0.88422455369566D-17 + 1 51 1 54 -0.10369009279273D+00 0.74976738085763D-17 + 2 51 1 54 -0.24861959050637D-01 -0.18463479905466D-17 + 3 51 1 54 -0.13312149805396D-01 -0.81301227290679D-18 + 1 52 1 54 -0.22583673303681D+00 0.18277894776716D-17 + 2 52 1 54 -0.80488204615409D-03 -0.46454901498356D-18 + 3 52 1 54 0.20095775691119D-01 0.68564360332123D-18 + 1 53 1 54 0.15680213486448D+01 0.22198626356058D-17 + 2 53 1 54 0.34565694143064D-01 -0.12904541218136D-17 + 3 53 1 54 -0.34565694143064D-01 0.85683928053131D-18 + 1 54 1 54 0.11883582222689D+03 0.00000000000000D+00 + 2 54 1 54 0.11926800466261D+01 0.00000000000000D+00 + 3 54 1 54 -0.11926800466259D+01 0.00000000000000D+00 + 1 55 1 54 -0.22583673303680D+00 0.11192121333293D-16 + 2 55 1 54 -0.20095775691119D-01 -0.12841333018282D-18 + 3 55 1 54 0.80488204615419D-03 0.16234748957095D-18 + 1 56 1 54 -0.58364062511924D+00 -0.23182373794404D-16 + 2 56 1 54 0.58941207799972D+00 -0.31438800924898D-16 + 3 56 1 54 0.45615503776575D+00 0.10627627919579D-16 + 1 57 1 54 0.24369046204170D+00 -0.50576990507068D-16 + 2 57 1 54 0.22552624962986D-01 -0.12828605102094D-16 + 3 57 1 54 0.14456368115460D-01 0.82425560893144D-17 + 1 58 1 54 0.12148402283881D+00 0.92465354125615D-17 + 2 58 1 54 0.16615110843061D+00 -0.20778044544458D-16 + 3 58 1 54 0.20189496355113D+00 0.20130322318560D-16 + 1 59 1 54 -0.46736184534094D+00 0.15913969791541D-15 + 2 59 1 54 0.45135257442485D+00 -0.40290775230976D-16 + 3 59 1 54 0.48216063573330D+00 -0.33053060005999D-16 + 1 60 1 54 0.21582940437261D+00 -0.93921208284601D-16 + 2 60 1 54 0.29934916374171D+00 0.25722437759095D-16 + 3 60 1 54 -0.28753091410638D+00 0.33640316664451D-16 + 1 61 1 54 -0.78592107040989D+00 0.98665991023610D-16 + 2 61 1 54 0.47064181745670D+00 0.28041079632622D-16 + 3 61 1 54 0.44525731202279D+00 0.29742317913705D-16 + 1 62 1 54 -0.24223590393392D+02 0.15513078145272D-15 + 2 62 1 54 0.13901670395536D+02 -0.27964742903320D-16 + 3 62 1 54 0.12618695132517D+02 -0.29046437546500D-16 + 1 63 1 54 0.20291562690678D+00 0.16756778543715D-15 + 2 63 1 54 -0.32023862973356D+00 -0.10817804732103D-17 + 3 63 1 54 0.26767530867154D+00 0.14556039474266D-16 + 1 64 1 54 -0.11978192478389D+01 0.10046791858161D-15 + 2 64 1 54 -0.86015233282601D+00 0.42571835508407D-16 + 3 64 1 54 0.86015233282602D+00 0.19443147481856D-16 + 1 65 1 54 0.47472562475943D-01 -0.12925651542166D-15 + 2 65 1 54 -0.89009744711473D-01 0.13879908553256D-16 + 3 65 1 54 0.91031511570016D-01 0.61800373159405D-18 + 1 1 2 54 0.31989593194819D+01 -0.31072469932402D-17 + 2 1 2 54 -0.31697061943492D+01 -0.16433840204739D-15 + 3 1 2 54 0.12696454300567D+01 0.23035486810116D-17 + 1 2 2 54 -0.18875194431667D+00 -0.42150740219250D-17 + 2 2 2 54 -0.15174463442923D+00 -0.56451854003592D-16 + 3 2 2 54 0.19848275994538D+00 0.11872823802040D-16 + 1 3 2 54 -0.31188104911044D+01 0.91107409106523D-19 + 2 3 2 54 -0.31160979668871D+01 -0.48460112222524D-16 + 3 3 2 54 0.12509767681806D+01 -0.34449009983927D-16 + 1 4 2 54 0.98827236061180D-01 -0.25548312022876D-18 + 2 4 2 54 -0.24812961285717D+00 0.15227028591814D-15 + 3 4 2 54 0.10609528741850D+00 0.37490270978311D-17 + 1 5 2 54 -0.32340459656324D+01 -0.70555125381834D-19 + 2 5 2 54 -0.18994089981028D+01 0.12164998582938D-15 + 3 5 2 54 -0.17882170017425D+01 0.84399260454751D-16 + 1 6 2 54 0.96415435917295D-01 0.55566342904513D-18 + 2 6 2 54 -0.21086672653499D+00 -0.31982886401058D-15 + 3 6 2 54 -0.86755436131938D-01 -0.74331671778756D-16 + 1 7 2 54 0.30962339742665D+01 -0.56996159813526D-18 + 2 7 2 54 -0.29958810583551D+01 -0.23763981369142D-17 + 3 7 2 54 -0.11353333223013D+01 -0.30172454990006D-16 + 1 8 2 54 -0.11754640956584D+00 0.16926373676324D-17 + 2 8 2 54 -0.26140025060353D+00 0.31040068029488D-15 + 3 8 2 54 -0.93465445648177D-01 -0.31337191445886D-16 + 1 9 2 54 0.30507985202541D+00 0.14572803111691D-16 + 2 9 2 54 0.39811475328337D+00 0.38503677084251D-15 + 3 9 2 54 0.21427852513045D+00 0.12130549778556D-17 + 1 10 2 54 0.49563033264049D+00 0.10810608554101D-17 + 2 10 2 54 -0.47976154247879D+00 -0.59240342732095D-16 + 3 10 2 54 0.57577714895614D+00 0.14541604198443D-16 + 1 11 2 54 0.13960430390390D+02 0.13666798289824D-16 + 2 11 2 54 -0.26379725580492D+02 -0.30808940797704D-15 + 3 11 2 54 0.14567610441024D+02 -0.72553410628076D-17 + 1 12 2 54 -0.26751169750601D+00 -0.80140363338297D-17 + 2 12 2 54 0.10545375499441D+00 -0.67650971428438D-17 + 3 12 2 54 0.24199224370544D+00 0.46636915043118D-17 + 1 13 2 54 0.40614895031319D+00 0.33198344732930D-16 + 2 13 2 54 -0.34993299908329D+00 -0.36977174045640D-15 + 3 13 2 54 0.44345517655243D+00 -0.17771973435203D-16 + 1 14 2 54 0.35530456845660D-01 0.25951562583882D-16 + 2 14 2 54 0.26146773064500D+00 0.20513837375130D-15 + 3 14 2 54 0.32048390194770D-01 -0.35653736865231D-16 + 1 15 2 54 0.47464923475426D+00 0.49797994923666D-17 + 2 15 2 54 -0.76994936718329D+00 -0.10751681037137D-15 + 3 15 2 54 0.45168307234366D+00 0.39007929398644D-17 + 1 16 2 54 0.25560236999467D-01 0.68447323456406D-16 + 2 16 2 54 0.92045836170672D-01 0.12944928671135D-15 + 3 16 2 54 -0.10708464478094D-01 0.11861670435450D-16 + 1 17 2 54 0.10378919577471D+00 -0.18597505590120D-16 + 2 17 2 54 -0.13044625834306D-02 -0.33077358569386D-16 + 3 17 2 54 -0.12016519405870D+00 0.28433770721354D-16 + 1 18 2 54 -0.13681488651771D+01 -0.25972097900086D-16 + 2 18 2 54 0.29609340178484D+01 0.16317227675092D-15 + 3 18 2 54 -0.12700085353062D+01 0.33510695953246D-16 + 1 19 2 54 0.13216691511330D+01 0.15177077031071D-16 + 2 19 2 54 0.30062117777567D+01 0.48396935328522D-16 + 3 19 2 54 -0.14939482683633D+01 0.28799465240624D-16 + 1 20 2 54 -0.12180751841965D+00 0.71838872464106D-17 + 2 20 2 54 -0.37214517100080D-02 -0.99202330273667D-16 + 3 20 2 54 0.13225854204798D+00 0.18382523845150D-16 + 1 21 2 54 0.90350894191814D-01 -0.85163976981625D-16 + 2 21 2 54 -0.15398128284673D-01 0.22474583138759D-17 + 3 21 2 54 0.44248198131509D-01 -0.14027612115935D-16 + 1 22 2 54 -0.21253208600549D+01 -0.37135781228127D-16 + 2 22 2 54 0.18056327608835D+01 0.11656455606542D-15 + 3 22 2 54 0.20752894122620D+01 0.37574618177154D-16 + 1 23 2 54 0.11823768965085D+01 -0.31656607002084D-16 + 2 23 2 54 0.30155345649138D+01 -0.36623106956204D-16 + 3 23 2 54 0.12333277166283D+01 -0.24482310055179D-16 + 1 24 2 54 -0.34091133366502D+00 0.68253715872164D-17 + 2 24 2 54 0.56741504705852D+00 0.11422672318145D-15 + 3 24 2 54 0.29319084621843D+00 0.16631535912778D-16 + 1 25 2 54 -0.52527277599874D+00 -0.75635200337419D-17 + 2 25 2 54 -0.27661666299410D+00 0.17545898018313D-15 + 3 25 2 54 0.40003112545841D+00 0.16794194899286D-16 + 1 26 2 54 -0.15024282579784D+02 0.20444047398973D-16 + 2 26 2 54 -0.27141502431793D+02 -0.76707103444357D-16 + 3 26 2 54 0.15567569530740D+02 0.76250103320001D-16 + 1 27 2 54 0.31009401544720D+00 -0.20556430393624D-16 + 2 27 2 54 0.12151128452324D+00 0.44293186777040D-16 + 3 27 2 54 0.31355453777295D+00 0.22793491001963D-16 + 1 28 2 54 -0.42797690548081D+00 0.27557933453534D-16 + 2 28 2 54 -0.41444205618785D+00 0.70017010194492D-16 + 3 28 2 54 0.47410951315899D+00 -0.10762032211538D-16 + 1 29 2 54 -0.36826551461468D-01 -0.67137917254546D-17 + 2 29 2 54 0.14046373274300D+00 -0.83135230875093D-16 + 3 29 2 54 0.19180688496919D-02 -0.66250533316988D-17 + 1 30 2 54 -0.30940070739701D+00 0.23634354943992D-16 + 2 30 2 54 0.16566364622926D+00 -0.10101606859526D-16 + 3 30 2 54 -0.30593004354809D+00 0.52386793027085D-18 + 1 31 2 54 -0.17379260137787D+00 -0.12321995419654D-19 + 2 31 2 54 -0.62389862780352D+00 -0.25505960877415D-15 + 3 31 2 54 0.52852461919546D+00 0.32555473515196D-16 + 1 32 2 54 -0.25927238246945D-01 0.27842197217308D-16 + 2 32 2 54 0.54392391872486D+00 0.88274190708595D-16 + 3 32 2 54 0.62347852797931D+00 -0.82218474718523D-18 + 1 33 2 54 -0.13569498302181D+00 0.29780016301866D-16 + 2 33 2 54 -0.20873637486903D+00 0.13650068014285D-15 + 3 33 2 54 0.86008039398323D-01 0.31441803504997D-17 + 1 34 2 54 0.12899902445748D+00 0.93407238498300D-17 + 2 34 2 54 -0.22758195861379D+00 -0.16347167681722D-15 + 3 34 2 54 0.90810637626314D-01 -0.11367833177860D-17 + 1 35 2 54 -0.67004752710943D-01 -0.34485686132120D-16 + 2 35 2 54 -0.24047697504348D+00 0.24101386709078D-15 + 3 35 2 54 -0.10862185381205D+00 -0.32520663339421D-18 + 1 36 2 54 0.12700720656505D+01 0.17064040534248D-16 + 2 36 2 54 -0.29567085927980D+01 0.25579362416419D-15 + 3 36 2 54 0.30735382688858D+01 -0.12201032224296D-18 + 1 37 2 54 -0.11550108999979D+01 -0.11462724814537D-16 + 2 37 2 54 -0.28512247146025D+01 -0.48212468770101D-15 + 3 37 2 54 -0.29073230193539D+01 0.26817964311034D-17 + 1 38 2 54 0.13146956625237D+01 0.18514345845440D-17 + 2 38 2 54 -0.27516318762314D+01 -0.61374881691593D-16 + 3 38 2 54 -0.28992922123548D+01 -0.13282321157072D-16 + 1 39 2 54 -0.12970359638530D+01 0.14378769657017D-16 + 2 39 2 54 -0.31020751299927D+01 0.52566540725594D-16 + 3 39 2 54 0.31423875954876D+01 0.15376880491782D-17 + 1 40 2 54 -0.55398192425771D+00 0.13805227982808D-16 + 2 40 2 54 -0.45552851098672D+00 -0.13642002068926D-15 + 3 40 2 54 -0.46496587470431D+00 -0.10631854407446D-15 + 1 41 2 54 -0.45448141448589D-01 -0.42926919925945D-17 + 2 41 2 54 0.26354632444338D+00 -0.81390672841992D-16 + 3 41 2 54 -0.28309789651069D-02 0.11050643390575D-16 + 1 42 2 54 -0.29451899344542D+00 -0.11934019831183D-17 + 2 42 2 54 0.33670670103113D+00 -0.27129081591648D-16 + 3 42 2 54 0.64823888964947D-01 0.10253910464150D-16 + 1 43 2 54 -0.65896889737925D+00 -0.25622367731614D-16 + 2 43 2 54 -0.93113972708092D+00 -0.61547827227074D-16 + 3 43 2 54 -0.34781997433925D+00 -0.17199845344107D-16 + 1 44 2 54 -0.26756134160942D+00 0.21004177980124D-16 + 2 44 2 54 0.42850323800119D+00 -0.28996815872593D-15 + 3 44 2 54 -0.26183416531372D+00 -0.33040160400469D-17 + 1 45 2 54 -0.47089004501018D+00 -0.39702564997911D-16 + 2 45 2 54 -0.32341740368545D+00 0.78857580902228D-16 + 3 45 2 54 -0.42846589831313D+00 0.29489911171207D-16 + 1 46 2 54 -0.11927098542457D+02 0.40310224201592D-17 + 2 46 2 54 -0.25485998875877D+02 0.97312435563275D-16 + 3 46 2 54 -0.14345599579921D+02 -0.36400985287710D-16 + 1 47 2 54 0.43846442122255D+00 0.16173913059147D-16 + 2 47 2 54 0.19033349414046D+00 -0.11429211723726D-15 + 3 47 2 54 -0.24748365031445D+00 0.23044451217802D-16 + 1 48 2 54 0.36928784194138D-01 -0.20187843197738D-18 + 2 48 2 54 -0.10442409181147D+00 0.12984073448700D-17 + 3 48 2 54 0.44845856798312D-01 0.35721642954096D-18 + 1 49 2 54 0.75447065688480D-03 -0.11122296118210D-17 + 2 49 2 54 -0.79969290519243D-01 -0.11085764814132D-17 + 3 49 2 54 0.20794212377672D-01 -0.83791669239466D-18 + 1 50 2 54 0.32585525274066D-01 0.20355825577542D-17 + 2 50 2 54 -0.74394943703652D+00 0.13313758466836D-16 + 3 50 2 54 -0.57995663584141D+00 0.23008561356413D-17 + 1 51 2 54 0.25660247315378D-01 -0.18463479905466D-17 + 2 51 2 54 0.14768947477597D+01 -0.90342356564800D-18 + 3 51 2 54 -0.70096081780646D-02 -0.99883043186278D-19 + 1 52 2 54 -0.71182342370792D-01 -0.46454901498356D-18 + 2 52 2 54 -0.36966588801674D+00 -0.87026342525530D-17 + 3 52 2 54 -0.63860397410480D-01 -0.51464034608667D-17 + 1 53 2 54 -0.52521091841466D-02 -0.12904541218136D-17 + 2 53 2 54 -0.14562371684376D+00 0.39426789324912D-17 + 3 53 2 54 -0.29389480393447D-01 -0.92287163401384D-18 + 1 54 2 54 0.11926800466261D+01 0.00000000000000D+00 + 2 54 2 54 0.12019081945031D+03 0.00000000000000D+00 + 3 54 2 54 -0.24093552635004D+01 0.00000000000000D+00 + 1 55 2 54 0.68881838386677D-01 -0.12841333018282D-18 + 2 55 2 54 -0.29997582769305D+00 -0.13634356189530D-17 + 3 55 2 54 0.75794711745998D-01 -0.25843992954276D-17 + 1 56 2 54 0.74948867391114D+00 -0.31438800924898D-16 + 2 56 2 54 -0.34062346733943D+00 -0.79716237939835D-16 + 3 56 2 54 -0.61830381521060D+00 -0.28525127548037D-16 + 1 57 2 54 0.67656636498694D-02 -0.12828605102094D-16 + 2 57 2 54 0.29116309027544D+00 -0.23790754186026D-15 + 3 57 2 54 -0.18546293613143D-01 -0.77229715134001D-17 + 1 58 2 54 0.21488924759001D+00 -0.20778044544458D-16 + 2 58 2 54 0.15446028503366D+00 0.39859588978718D-15 + 3 58 2 54 0.33929061429274D+00 0.57928487645081D-16 + 1 59 2 54 0.42315601101540D+00 -0.40290775230976D-16 + 2 59 2 54 -0.76046130464859D+00 0.94939782045270D-16 + 3 59 2 54 -0.55199541123175D+00 -0.37787978972279D-16 + 1 60 2 54 0.32434742287265D+00 0.25722437759095D-16 + 2 60 2 54 0.62661665556901D+00 0.22197444241581D-16 + 3 60 2 54 -0.15949537106223D+00 -0.61138840338401D-16 + 1 61 2 54 0.46029301411802D+00 0.28041079632622D-16 + 2 61 2 54 -0.34766337276457D+00 0.23422870983993D-15 + 3 61 2 54 -0.43899228290186D+00 0.11884138735315D-16 + 1 62 2 54 0.13529215902065D+02 -0.27964742903320D-16 + 2 62 2 54 -0.26367025656392D+02 0.25721733913175D-15 + 3 62 2 54 -0.14949212088362D+02 0.58183909608082D-17 + 1 63 2 54 -0.34208337300893D+00 -0.10817804732103D-17 + 2 63 2 54 0.23777045636008D+00 -0.47167806087031D-16 + 3 63 2 54 -0.29554103937407D+00 0.21794012483239D-16 + 1 64 2 54 -0.73602774428341D+00 0.42571835508407D-16 + 2 64 2 54 0.12384261309470D+00 -0.79822026359390D-16 + 3 64 2 54 0.44273459903538D+00 0.93650439354477D-17 + 1 65 2 54 -0.68961132555548D-02 0.13879908553256D-16 + 2 65 2 54 -0.18511474855805D+00 -0.34544319054951D-18 + 3 65 2 54 0.21099244266205D-01 -0.77552505933846D-18 + 1 1 3 54 0.13681488651771D+01 -0.98093982040070D-16 + 2 1 3 54 -0.12696454300567D+01 0.23035486810116D-17 + 3 1 3 54 0.29609340178484D+01 0.17793513344978D-16 + 1 2 3 54 -0.25560236999470D-01 0.34217323074723D-17 + 2 2 3 54 -0.10708464478090D-01 0.11872823802040D-16 + 3 2 3 54 0.92045836170667D-01 0.14213363856586D-16 + 1 3 3 54 -0.13216691511330D+01 0.96425015544439D-16 + 2 3 3 54 -0.14939482683633D+01 -0.34449009983927D-16 + 3 3 3 54 0.30062117777568D+01 0.32083786647984D-16 + 1 4 3 54 -0.10378919577471D+00 0.10222963130638D-16 + 2 4 3 54 -0.12016519405870D+00 0.37490270978311D-17 + 3 4 3 54 -0.13044625834270D-02 0.84140656747469D-16 + 1 5 3 54 0.21253208600549D+01 0.31970720673896D-16 + 2 5 3 54 0.20752894122620D+01 0.84399260454751D-16 + 3 5 3 54 0.18056327608835D+01 -0.22926636767547D-16 + 1 6 3 54 0.12180751841965D+00 0.22525909732289D-16 + 2 6 3 54 0.13225854204798D+00 -0.74331671778756D-16 + 3 6 3 54 -0.37214517100027D-02 -0.25558427030637D-16 + 1 7 3 54 -0.11823768965084D+01 0.43922955097363D-16 + 2 7 3 54 0.12333277166283D+01 -0.30172454990006D-16 + 3 7 3 54 0.30155345649138D+01 0.16824430345402D-16 + 1 8 3 54 -0.90350894191817D-01 0.46419009679654D-16 + 2 8 3 54 0.44248198131510D-01 -0.31337191445886D-16 + 3 8 3 54 -0.15398128284667D-01 -0.28607794534442D-16 + 1 9 3 54 0.26752309199543D+00 -0.24002616973012D-16 + 2 9 3 54 0.24159438333840D+00 0.12130549778556D-17 + 3 9 3 54 0.10545375499442D+00 0.34353679030986D-16 + 1 10 3 54 -0.49563033264048D+00 0.25402824089259D-17 + 2 10 3 54 0.57549039836810D+00 0.14541604198443D-16 + 3 10 3 54 -0.47974736798092D+00 0.28450406370981D-16 + 1 11 3 54 -0.13960430390391D+02 0.15944451760166D-16 + 2 11 3 54 0.14567238163060D+02 -0.72553410628076D-17 + 3 11 3 54 -0.26380403735131D+02 -0.13413785033129D-15 + 1 12 3 54 -0.30498051558180D+00 -0.93980722709429D-17 + 2 12 3 54 0.21427852513039D+00 0.46636915043118D-17 + 3 12 3 54 0.39805385148682D+00 0.11073835416217D-15 + 1 13 3 54 -0.47458666872600D+00 0.14138934237419D-16 + 2 13 3 54 0.45194897166767D+00 -0.17771973435203D-16 + 3 13 3 54 -0.76994936718330D+00 0.37891416555175D-16 + 1 14 3 54 -0.35530456845655D-01 0.27771086590181D-16 + 2 14 3 54 0.32261774788175D-01 -0.35653736865231D-16 + 3 14 3 54 0.26118524991481D+00 0.10216455392652D-15 + 1 15 3 54 -0.40590122418774D+00 -0.22902411462853D-16 + 2 15 3 54 0.44345517655243D+00 0.39007929398644D-17 + 3 15 3 54 -0.34998761247846D+00 -0.11728919900635D-15 + 1 16 3 54 0.18875194431667D+00 0.15585265933736D-17 + 2 16 3 54 0.19848275994538D+00 0.11861670435450D-16 + 3 16 3 54 -0.15174463442924D+00 0.10448253077717D-15 + 1 17 3 54 -0.98827236061190D-01 0.16883746284398D-17 + 2 17 3 54 0.10609528741850D+00 0.28433770721354D-16 + 3 17 3 54 -0.24812961285717D+00 0.32702112960599D-16 + 1 18 3 54 -0.31989593194819D+01 0.43434267198003D-17 + 2 18 3 54 0.12700085353062D+01 0.33510695953246D-16 + 3 18 3 54 -0.31697061943491D+01 0.12075880753399D-15 + 1 19 3 54 0.31188104911044D+01 0.45492685571152D-17 + 2 19 3 54 0.12509767681806D+01 0.28799465240624D-16 + 3 19 3 54 -0.31160979668871D+01 0.12201558130494D-15 + 1 20 3 54 -0.96415435917294D-01 0.26421813835061D-18 + 2 20 3 54 -0.86755436131939D-01 0.18382523845150D-16 + 3 20 3 54 -0.21086672653499D+00 -0.31911059509961D-15 + 1 21 3 54 0.11754640956586D+00 -0.25868478441484D-17 + 2 21 3 54 -0.93465445648178D-01 -0.14027612115935D-16 + 3 21 3 54 -0.26140025060353D+00 0.17841687252260D-15 + 1 22 3 54 0.32340459656326D+01 -0.35919922177667D-17 + 2 22 3 54 -0.17882170017425D+01 0.37574618177154D-16 + 3 22 3 54 -0.18994089981029D+01 -0.10963235809197D-15 + 1 23 3 54 -0.30962339742665D+01 -0.11717424386079D-17 + 2 23 3 54 -0.11353333223012D+01 -0.24482310055179D-16 + 3 23 3 54 -0.29958810583551D+01 -0.12297908756053D-15 + 1 24 3 54 -0.31009401544719D+00 -0.15209534449036D-17 + 2 24 3 54 0.31355453777294D+00 0.16631535912778D-16 + 3 24 3 54 0.12151128452325D+00 -0.70889642453183D-16 + 1 25 3 54 0.52527277599873D+00 0.16881807664659D-16 + 2 25 3 54 0.40003112545841D+00 0.16794194899286D-16 + 3 25 3 54 -0.27661666299411D+00 0.14468464766192D-15 + 1 26 3 54 0.15024282579784D+02 0.43783988508949D-16 + 2 26 3 54 0.15567569530740D+02 0.76250103320001D-16 + 3 26 3 54 -0.27141502431793D+02 -0.17760895273211D-16 + 1 27 3 54 0.34091133366506D+00 -0.78589269688128D-17 + 2 27 3 54 0.29319084621843D+00 0.22793491001963D-16 + 3 27 3 54 0.56741504705852D+00 0.43204109219374D-16 + 1 28 3 54 0.17379260137787D+00 0.10400491607438D-17 + 2 28 3 54 0.52852461919547D+00 -0.10762032211538D-16 + 3 28 3 54 -0.62389862780351D+00 -0.41848252874608D-15 + 1 29 3 54 0.36826551461464D-01 0.41543108283656D-16 + 2 29 3 54 0.19180688496919D-02 -0.66250533316988D-17 + 3 29 3 54 0.14046373274300D+00 0.85056962680676D-16 + 1 30 3 54 0.30940070739702D+00 -0.69158722974972D-16 + 2 30 3 54 -0.30593004354809D+00 0.52386793027085D-18 + 3 30 3 54 0.16566364622927D+00 0.95446364774028D-16 + 1 31 3 54 0.42797690548088D+00 0.24342639220439D-16 + 2 31 3 54 0.47410951315899D+00 0.32555473515196D-16 + 3 31 3 54 -0.41444205618786D+00 0.16427006675790D-15 + 1 32 3 54 0.25927238246940D-01 0.17186670487973D-16 + 2 32 3 54 0.62347852797931D+00 -0.82218474718523D-18 + 3 32 3 54 0.54392391872485D+00 -0.74818346382996D-15 + 1 33 3 54 -0.12899902445748D+00 0.76786382567691D-17 + 2 33 3 54 0.90810637626313D-01 0.31441803504997D-17 + 3 33 3 54 -0.22758195861378D+00 0.27994572443026D-15 + 1 34 3 54 0.13569498302181D+00 0.26893891836221D-16 + 2 34 3 54 0.86008039398324D-01 -0.11367833177860D-17 + 3 34 3 54 -0.20873637486903D+00 -0.68222034450949D-15 + 1 35 3 54 0.67004752710942D-01 0.36098802041530D-16 + 2 35 3 54 -0.10862185381205D+00 -0.32520663339421D-18 + 3 35 3 54 -0.24047697504348D+00 0.52398385023729D-17 + 1 36 3 54 -0.12700720656505D+01 0.26353410301900D-16 + 2 36 3 54 0.30735382688858D+01 -0.12201032224296D-18 + 3 36 3 54 -0.29567085927980D+01 0.17953363763219D-15 + 1 37 3 54 -0.13146956625237D+01 -0.15834349154545D-16 + 2 37 3 54 -0.28992922123548D+01 0.26817964311034D-17 + 3 37 3 54 -0.27516318762314D+01 0.68729288225538D-16 + 1 38 3 54 0.11550108999979D+01 0.34555044930627D-16 + 2 38 3 54 -0.29073230193539D+01 -0.13282321157072D-16 + 3 38 3 54 -0.28512247146025D+01 -0.20009963749626D-15 + 1 39 3 54 0.12970359638530D+01 -0.16989444922331D-16 + 2 39 3 54 0.31423875954876D+01 0.15376880491782D-17 + 3 39 3 54 -0.31020751299927D+01 -0.13641091598198D-15 + 1 40 3 54 -0.42315601101540D+00 -0.12302452911076D-16 + 2 40 3 54 -0.55199541123175D+00 -0.10631854407446D-15 + 3 40 3 54 -0.76046130464859D+00 0.39617906976518D-16 + 1 41 3 54 -0.67656636498694D-02 0.13703524048869D-16 + 2 41 3 54 -0.18546293613142D-01 0.11050643390575D-16 + 3 41 3 54 0.29116309027544D+00 0.46790243890421D-16 + 1 42 3 54 -0.21488924759000D+00 0.36468267841556D-16 + 2 42 3 54 0.33929061429274D+00 0.10253910464150D-16 + 3 42 3 54 0.15446028503366D+00 0.32550625534667D-16 + 1 43 3 54 -0.74948867391114D+00 0.17482738982916D-16 + 2 43 3 54 -0.61830381521060D+00 -0.17199845344107D-16 + 3 43 3 54 -0.34062346733945D+00 0.39671714416605D-16 + 1 44 3 54 0.34208337300894D+00 0.16750332609380D-16 + 2 44 3 54 -0.29554103937407D+00 -0.33040160400469D-17 + 3 44 3 54 0.23777045636008D+00 0.35987414064319D-16 + 1 45 3 54 -0.46029301411802D+00 0.44334048422310D-17 + 2 45 3 54 -0.43899228290186D+00 0.29489911171207D-16 + 3 45 3 54 -0.34766337276457D+00 -0.61073571981213D-16 + 1 46 3 54 -0.13529215902066D+02 -0.97149613788337D-17 + 2 46 3 54 -0.14949212088362D+02 -0.36400985287710D-16 + 3 46 3 54 -0.26367025656392D+02 0.11753382119492D-15 + 1 47 3 54 -0.32434742287265D+00 0.17883254832646D-16 + 2 47 3 54 -0.15949537106224D+00 0.23044451217802D-16 + 3 47 3 54 0.62661665556898D+00 -0.18443347052275D-15 + 1 48 3 54 -0.25660247315378D-01 -0.10145132546482D-17 + 2 48 3 54 -0.70096081780645D-02 0.35721642954096D-18 + 3 48 3 54 0.14768947477597D+01 0.10240149845528D-17 + 1 49 3 54 -0.75447065688384D-03 -0.15140751063227D-17 + 2 49 3 54 0.20794212377672D-01 -0.83791669239466D-18 + 3 49 3 54 -0.79969290519245D-01 -0.43337678519150D-17 + 1 50 3 54 -0.32585525274078D-01 -0.88422455369566D-17 + 2 50 3 54 -0.57995663584141D+00 0.23008561356413D-17 + 3 50 3 54 -0.74394943703652D+00 -0.56189337171287D-17 + 1 51 3 54 -0.36928784194138D-01 -0.81301227290679D-18 + 2 51 3 54 0.44845856798312D-01 -0.99883043186278D-19 + 3 51 3 54 -0.10442409181147D+00 0.15545541889178D-17 + 1 52 3 54 -0.68881838386677D-01 0.68564360332123D-18 + 2 52 3 54 0.75794711745998D-01 -0.51464034608667D-17 + 3 52 3 54 -0.29997582769306D+00 0.79327207746742D-18 + 1 53 3 54 0.52521091841386D-02 0.85683928053131D-18 + 2 53 3 54 -0.29389480393447D-01 -0.92287163401384D-18 + 3 53 3 54 -0.14562371684378D+00 0.46175543066407D-17 + 1 54 3 54 -0.11926800466259D+01 0.00000000000000D+00 + 2 54 3 54 -0.24093552635004D+01 0.00000000000000D+00 + 3 54 3 54 0.12019081945031D+03 0.00000000000000D+00 + 1 55 3 54 0.71182342370793D-01 0.16234748957095D-18 + 2 55 3 54 -0.63860397410480D-01 -0.25843992954276D-17 + 3 55 3 54 -0.36966588801675D+00 -0.31423611550137D-17 + 1 56 3 54 0.65896889737925D+00 0.10627627919579D-16 + 2 56 3 54 -0.34781997433925D+00 -0.28525127548037D-16 + 3 56 3 54 -0.93113972708093D+00 -0.23756584675890D-16 + 1 57 3 54 0.45448141448589D-01 0.82425560893144D-17 + 2 57 3 54 -0.28309789651077D-02 -0.77229715134001D-17 + 3 57 3 54 0.26354632444337D+00 -0.37966909989298D-17 + 1 58 3 54 0.29451899344542D+00 0.20130322318560D-16 + 2 58 3 54 0.64823888964951D-01 0.57928487645081D-16 + 3 58 3 54 0.33670670103112D+00 -0.48532722210032D-16 + 1 59 3 54 0.55398192425771D+00 -0.33053060005999D-16 + 2 59 3 54 -0.46496587470431D+00 -0.37787978972279D-16 + 3 59 3 54 -0.45552851098672D+00 0.33807416399344D-16 + 1 60 3 54 -0.43846442122255D+00 0.33640316664451D-16 + 2 60 3 54 -0.24748365031445D+00 -0.61138840338401D-16 + 3 60 3 54 0.19033349414045D+00 0.68305318934494D-16 + 1 61 3 54 0.47089004501018D+00 0.29742317913705D-16 + 2 61 3 54 -0.42846589831313D+00 0.11884138735315D-16 + 3 61 3 54 -0.32341740368545D+00 0.26310756451190D-17 + 1 62 3 54 0.11927098542457D+02 -0.29046437546500D-16 + 2 62 3 54 -0.14345599579921D+02 0.58183909608082D-17 + 3 62 3 54 -0.25485998875877D+02 0.63055806632475D-15 + 1 63 3 54 0.26756134160942D+00 0.14556039474266D-16 + 2 63 3 54 -0.26183416531371D+00 0.21794012483239D-16 + 3 63 3 54 0.42850323800121D+00 0.47345816853564D-16 + 1 64 3 54 0.73602774428373D+00 0.19443147481856D-16 + 2 64 3 54 0.44273459903538D+00 0.93650439354477D-17 + 3 64 3 54 0.12384261309468D+00 -0.75454508587435D-16 + 1 65 3 54 0.68961132555370D-02 0.61800373159405D-18 + 2 65 3 54 0.20603334481147D-01 -0.77552505933846D-18 + 3 65 3 54 -0.18636859159152D+00 -0.13022476951148D-16 + 1 1 1 55 -0.21100302837231D+00 -0.85394907613222D-16 + 2 1 1 55 -0.18875194431668D+00 0.12956250911450D-18 + 3 1 1 55 0.25560236999467D-01 0.21008745629605D-16 + 1 2 1 55 -0.29895125632169D+01 -0.38607123918278D-16 + 2 2 1 55 0.29337777170518D+01 -0.64252961483643D-18 + 3 2 1 55 -0.16276630588903D+01 -0.15575280468237D-16 + 1 3 1 55 -0.35757345629169D+00 0.16454882454500D-15 + 2 3 1 55 0.21810506358726D+00 0.38022692030977D-17 + 3 3 1 55 0.25898368449814D+00 0.37013537348727D-16 + 1 4 1 55 -0.30112724456127D+01 -0.20095361059249D-15 + 2 4 1 55 -0.32825700744194D+01 0.87389383662826D-18 + 3 4 1 55 0.14136220409059D+01 0.29691952001282D-16 + 1 5 1 55 -0.14227691375251D+00 0.22955013892007D-15 + 2 5 1 55 -0.63788193896406D+00 -0.75572481582982D-17 + 3 5 1 55 0.55458505988008D+00 0.11158217256579D-15 + 1 6 1 55 -0.29233488661134D+01 -0.11345763646862D-15 + 2 6 1 55 -0.28846658458855D+01 -0.44175482475118D-17 + 3 6 1 55 -0.17402778573232D+01 0.22623533994481D-16 + 1 7 1 55 -0.20285354699657D+00 -0.29892421600881D-15 + 2 7 1 55 -0.21870410963722D-01 -0.25673280669378D-18 + 3 7 1 55 0.14764773017077D+00 -0.10411100225334D-15 + 1 8 1 55 -0.29596538007428D+01 0.23776181706076D-15 + 2 8 1 55 0.32008726391262D+01 -0.45168113319211D-18 + 3 8 1 55 0.12343771874599D+01 0.53071608277337D-16 + 1 9 1 55 -0.83349558433375D+00 0.16505996384568D-15 + 2 9 1 55 0.49913858175077D+00 0.13415938555063D-16 + 3 9 1 55 -0.62977614684491D+00 0.26120879159792D-16 + 1 10 1 55 0.15998648080425D+00 -0.36013693949342D-15 + 2 10 1 55 0.27801070241036D+00 -0.17641117585506D-16 + 3 10 1 55 0.29407440653510D+00 0.23540863597046D-16 + 1 11 1 55 0.21075421480057D+00 0.87901190215941D-16 + 2 11 1 55 -0.31345089042388D+00 0.28530001789184D-16 + 3 11 1 55 -0.42014911564423D+00 0.12993455393726D-16 + 1 12 1 55 -0.27426623157198D+02 0.43592552723916D-17 + 2 12 1 55 0.17262113001736D+02 -0.66939907949441D-17 + 3 12 1 55 -0.15029971305917D+02 0.16647490895997D-16 + 1 13 1 55 0.25476396318100D+00 0.10289343916971D-15 + 2 13 1 55 0.35524175743271D-01 0.32734225960618D-16 + 3 13 1 55 -0.25033869836134D-01 0.31621772344919D-17 + 1 14 1 55 -0.40570463124984D+00 0.73929933346980D-16 + 2 14 1 55 0.46746793428934D+00 -0.47161967772299D-16 + 3 14 1 55 -0.45282468874006D+00 0.49658163834851D-16 + 1 15 1 55 0.50241961411297D+00 0.20422193126888D-17 + 2 15 1 55 0.32850170110726D+00 0.34436475424115D-16 + 3 15 1 55 -0.29075513625964D+00 0.29476279193486D-16 + 1 16 1 55 -0.35729967959954D+00 0.19711591077419D-15 + 2 16 1 55 -0.21515632650469D+00 0.16587852023587D-16 + 3 16 1 55 -0.19847109189108D+00 -0.83332543693596D-18 + 1 17 1 55 -0.23629068496630D+00 0.19833458518847D-15 + 2 17 1 55 0.10296464443796D+00 0.28404345221500D-16 + 3 17 1 55 0.11720523352892D+00 -0.21593873669971D-17 + 1 18 1 55 -0.29694333512828D+01 -0.23644769715239D-15 + 2 18 1 55 -0.13216691511330D+01 -0.29010076913605D-16 + 3 18 1 55 0.31188104911044D+01 -0.19280596579072D-17 + 1 19 1 55 -0.32291832719729D+01 0.34775778981972D-16 + 2 19 1 55 0.12574855522480D+01 -0.24049021057090D-16 + 3 19 1 55 -0.35866822654581D+01 -0.40107262304795D-17 + 1 20 1 55 -0.20352226633814D+00 0.23920291452705D-15 + 2 20 1 55 -0.14350644613521D+00 0.64390128453362D-16 + 3 20 1 55 0.36582342768195D-01 -0.64507054104318D-17 + 1 21 1 55 -0.23994603525543D+00 0.12176634391137D-15 + 2 21 1 55 0.89465979828498D-01 0.49365335301540D-16 + 3 21 1 55 -0.65890303523436D-01 0.70233042272250D-18 + 1 22 1 55 -0.30338589403062D+01 0.29436879178804D-16 + 2 22 1 55 -0.17512457825153D+00 0.29704329182450D-16 + 3 22 1 55 -0.46171555433879D+01 0.39681254635676D-17 + 1 23 1 55 -0.29949756481198D+01 0.90858195884864D-16 + 2 23 1 55 0.11971059792642D+01 -0.14126105883968D-16 + 3 23 1 55 0.30971891017045D+01 -0.27684111153747D-17 + 1 24 1 55 -0.84916661268427D+00 -0.71390787615372D-16 + 2 24 1 55 -0.47131622603680D+00 0.15773990459371D-17 + 3 24 1 55 0.37718079151061D+00 -0.10087735430652D-16 + 1 25 1 55 0.27295797963213D+00 0.75069704931310D-16 + 2 25 1 55 -0.40294145954662D+00 -0.21871131483132D-16 + 3 25 1 55 -0.39028506538331D+00 -0.23824213853521D-16 + 1 26 1 55 0.20558033360877D+00 0.32855538870901D-15 + 2 26 1 55 0.34287793151198D+00 -0.29725853112137D-16 + 3 26 1 55 0.25207267195375D+00 0.69428727624071D-17 + 1 27 1 55 -0.25470941862985D+02 0.54797594483226D-16 + 2 27 1 55 -0.13516280332068D+02 -0.72853009281587D-17 + 3 27 1 55 0.13940477087648D+02 -0.12986913496255D-16 + 1 28 1 55 0.25051017034733D+00 0.10229862375205D-15 + 2 28 1 55 0.11479705400310D+00 -0.40028520618365D-16 + 3 28 1 55 -0.23561371178643D-01 -0.19515684713856D-18 + 1 29 1 55 -0.64234105542516D+00 -0.37085763623346D-16 + 2 29 1 55 -0.42614734542216D+00 0.26465825079687D-17 + 3 29 1 55 0.38978028340426D+00 -0.41815435145104D-16 + 1 30 1 55 -0.37941196594313D+00 -0.12397587756522D-15 + 2 30 1 55 -0.44374494864420D+00 -0.50845438423464D-16 + 3 30 1 55 0.32676665815979D+00 -0.22741639940391D-16 + 1 31 1 55 0.44208024797639D+00 0.15307416669349D-15 + 2 31 1 55 -0.38566323318888D+00 -0.45437810483558D-16 + 3 31 1 55 0.41383561013826D+00 -0.95716165175606D-16 + 1 32 1 55 0.87836048719722D-01 0.30735441022383D-15 + 2 32 1 55 -0.71809348402237D+00 0.23540887520572D-16 + 3 32 1 55 -0.68445111688902D+00 -0.26623959835525D-16 + 1 33 1 55 0.28208267547110D-01 -0.48024735770593D-17 + 2 33 1 55 -0.10915285207293D+00 0.22450352137771D-16 + 3 33 1 55 0.18188827530424D+00 0.13400430671333D-16 + 1 34 1 55 -0.40115266392875D-01 -0.29941199833138D-17 + 2 34 1 55 0.15890958213719D+00 -0.69285222326121D-17 + 3 34 1 55 -0.14432681694242D+00 -0.32446357676636D-17 + 1 35 1 55 0.17628049017346D-01 0.75384517179895D-17 + 2 35 1 55 -0.67088866551375D-01 0.45910980792413D-17 + 3 35 1 55 -0.72483235593101D-01 -0.28814303932080D-16 + 1 36 1 55 0.30385091776969D+01 0.22379201726055D-15 + 2 36 1 55 0.11550108999979D+01 0.21869635914483D-16 + 3 36 1 55 0.13146956625237D+01 -0.24231836906529D-16 + 1 37 1 55 0.29709267831613D+01 -0.32629989807844D-16 + 2 37 1 55 -0.14257686930433D+01 -0.20378982843872D-16 + 3 37 1 55 0.16200999420939D+01 0.76301458865005D-17 + 1 38 1 55 0.30681912205084D+01 0.50730732566482D-17 + 2 38 1 55 0.12892733219551D+01 0.29805974572538D-16 + 3 38 1 55 -0.12999869291335D+01 -0.29873211469026D-16 + 1 39 1 55 0.31579413995749D+01 0.25940323665654D-15 + 2 39 1 55 -0.11838219701199D+01 -0.18653064847510D-16 + 3 39 1 55 -0.11608650034962D+01 0.76681899140982D-17 + 1 40 1 55 0.27664613061127D+00 -0.19644398420060D-15 + 2 40 1 55 -0.11650839707684D-02 -0.29190599109513D-16 + 3 40 1 55 -0.26176467133663D-02 0.24798034318643D-17 + 1 41 1 55 -0.45333922621259D+00 0.12902544954218D-15 + 2 41 1 55 -0.52535734949560D+00 -0.68923789604763D-17 + 3 41 1 55 -0.51501859925011D+00 -0.20599829041689D-16 + 1 42 1 55 -0.39640379417134D+00 0.31675599634434D-16 + 2 42 1 55 -0.59823138478369D+00 -0.10667606633097D-16 + 3 42 1 55 -0.63674313804244D+00 0.33823918473208D-16 + 1 43 1 55 0.31422049400922D+00 -0.84058370933380D-16 + 2 43 1 55 0.29825601567460D-02 0.95897602536371D-17 + 3 43 1 55 -0.21516708156433D+00 -0.94650946053624D-17 + 1 44 1 55 -0.77717561802623D+00 0.87476167204282D-16 + 2 44 1 55 -0.48194379625109D+00 0.12696553656603D-16 + 3 44 1 55 -0.44805328709033D+00 0.28195250500157D-16 + 1 45 1 55 0.22931480882147D+00 0.70246963094830D-16 + 2 45 1 55 -0.32406161278393D+00 0.11216477630482D-16 + 3 45 1 55 0.35660563057978D+00 0.17805676584960D-16 + 1 46 1 55 0.62025028896456D-02 0.75899404122113D-16 + 2 46 1 55 0.26522545003791D+00 -0.36863592074146D-16 + 3 46 1 55 0.53763771560484D-01 -0.29361638588262D-16 + 1 47 1 55 -0.27022189572521D+02 0.23470689938408D-15 + 2 47 1 55 -0.17380976115390D+02 -0.30822036634965D-17 + 3 47 1 55 -0.14558835678490D+02 -0.35469422138501D-16 + 1 48 1 55 -0.16720242091942D+00 -0.10174339711467D-17 + 2 48 1 55 -0.22811652599747D-01 0.60457762342355D-18 + 3 48 1 55 0.38930185792206D-01 -0.47854248947154D-18 + 1 49 1 55 -0.12290306718744D+00 -0.39233938395295D-17 + 2 49 1 55 -0.22596539548496D-01 -0.52687728385888D-18 + 3 49 1 55 0.12182195732168D-01 0.98775332220955D-18 + 1 50 1 55 -0.12969776100859D+00 -0.19637837688879D-16 + 2 50 1 55 0.85317621194837D+00 -0.56049401779152D-17 + 3 50 1 55 0.74074581612352D+00 -0.90887176504224D-18 + 1 51 1 55 -0.35562475976301D+00 -0.10857373198104D-17 + 2 51 1 55 0.19184240360453D-02 0.11700124947693D-17 + 3 51 1 55 -0.73118224368082D-01 -0.14643159754672D-17 + 1 52 1 55 0.17064624383969D+01 0.93630412512689D-19 + 2 52 1 55 -0.19049686090145D+00 -0.35316255855081D-18 + 3 52 1 55 0.19346501631644D-01 0.15642580622052D-17 + 1 53 1 55 -0.23816838007246D+00 -0.53324702846374D-18 + 2 53 1 55 -0.18366634266786D-02 -0.19133671991568D-17 + 3 53 1 55 0.13933129234016D-02 0.39431177635078D-18 + 1 54 1 55 -0.22583673303680D+00 -0.11192121333293D-16 + 2 54 1 55 0.68881838386677D-01 0.12841333018282D-18 + 3 54 1 55 0.71182342370793D-01 -0.16234748957095D-18 + 1 55 1 55 0.12287990253502D+03 0.00000000000000D+00 + 2 55 1 55 -0.10712478210702D+01 0.00000000000000D+00 + 3 55 1 55 0.34256587073390D+01 0.00000000000000D+00 + 1 56 1 55 0.81947051681334D-01 0.21672603593151D-15 + 2 56 1 55 -0.10295060887453D+00 0.70473846748439D-16 + 3 56 1 55 0.24610974420285D+00 -0.33109467100121D-16 + 1 57 1 55 -0.49304833638927D+00 -0.50460821685047D-16 + 2 57 1 55 0.43710435220490D+00 -0.43096660061904D-17 + 3 57 1 55 0.35014435252327D+00 -0.12198352182552D-16 + 1 58 1 55 -0.50259411538244D+00 -0.19337510476737D-15 + 2 58 1 55 0.59033759901085D+00 0.72013512116818D-17 + 3 58 1 55 0.27401375196434D+00 0.27417043203683D-16 + 1 59 1 55 0.36923994026917D+00 0.32430964021583D-16 + 2 59 1 55 0.26653682768796D+00 -0.40575117332232D-16 + 3 59 1 55 0.33003961467011D+00 -0.28004284708731D-16 + 1 60 1 55 -0.80985736801165D+00 0.17760031266590D-15 + 2 60 1 55 0.35556774802706D+00 -0.11372371883641D-16 + 3 60 1 55 0.33968534256652D+00 0.10626457101266D-16 + 1 61 1 55 0.18966302382550D+00 -0.77654037390015D-16 + 2 61 1 55 0.23380228617192D+00 -0.31184138964922D-16 + 3 61 1 55 -0.33632806315325D+00 -0.37644039962412D-16 + 1 62 1 55 0.62632122828489D+00 -0.54146122365709D-17 + 2 62 1 55 -0.21034855301275D+00 0.33847064238511D-16 + 3 62 1 55 0.61070928979986D+00 0.43930707151346D-17 + 1 63 1 55 -0.27140407075915D+02 0.25272611003370D-16 + 2 63 1 55 0.14840802524424D+02 -0.38854601936384D-16 + 3 63 1 55 0.14248162262728D+02 0.38913349103414D-16 + 1 64 1 55 -0.50053457424156D+00 -0.10557307502267D-15 + 2 64 1 55 0.46103480457847D+00 0.16847833309636D-16 + 3 64 1 55 -0.10998115269211D+01 0.48717980518883D-16 + 1 65 1 55 -0.14478320412952D+00 -0.95410148478240D-16 + 2 65 1 55 -0.67338461172716D-01 -0.10857354624846D-16 + 3 65 1 55 0.73174246076912D-01 -0.13874109520131D-16 + 1 1 2 55 -0.69182942504181D-01 0.12956250911450D-18 + 2 1 2 55 -0.15174463442924D+00 0.22017721482210D-15 + 3 1 2 55 0.10708464478093D-01 -0.28439161691186D-16 + 1 2 2 55 0.29337777170518D+01 -0.64252961483643D-18 + 2 2 2 55 -0.29999172970670D+01 0.15068454619596D-15 + 3 2 2 55 0.14062279707536D+01 0.27783190381846D-17 + 1 3 2 55 0.19847109189109D+00 0.38022692030977D-17 + 2 3 2 55 -0.42455260074795D+00 -0.28756483938493D-15 + 3 3 2 55 -0.27412291065958D-01 0.38265510405008D-16 + 1 4 2 55 -0.31446947372534D+01 0.87389383662826D-18 + 2 4 2 55 -0.31976530388552D+01 -0.11804150165846D-15 + 3 4 2 55 0.12966080702833D+01 -0.32444896438552D-16 + 1 5 2 55 -0.82013102129496D-01 -0.75572481582982D-17 + 2 5 2 55 0.62293770665093D+00 0.11076210451038D-15 + 3 5 2 55 -0.93257181798683D+00 0.73422175179384D-17 + 1 6 2 55 -0.28728526686265D+01 -0.44175482475118D-17 + 2 6 2 55 -0.28762227844451D+01 0.12758116439575D-15 + 3 6 2 55 -0.13163110477181D+01 -0.84921184190306D-16 + 1 7 2 55 -0.89658032623900D-01 -0.25673280669378D-18 + 2 7 2 55 -0.21577894633812D+00 0.17059581300644D-15 + 3 7 2 55 -0.10356682372426D+00 0.22158856762928D-16 + 1 8 2 55 0.31254481327734D+01 -0.45168113319211D-18 + 2 8 2 55 -0.30979715045097D+01 -0.13403037027082D-15 + 3 8 2 55 -0.12144881578439D+01 -0.20665816290960D-16 + 1 9 2 55 0.36362300977471D+00 0.13415938555063D-16 + 2 9 2 55 -0.44041456558728D+00 0.23677621403943D-15 + 3 9 2 55 0.38152268192094D+00 -0.82775319161531D-17 + 1 10 2 55 0.25310517724679D+00 -0.17641117585506D-16 + 2 10 2 55 0.41323889039751D+00 -0.99603487232630D-16 + 3 10 2 55 0.30572683686539D+00 -0.34770897118829D-16 + 1 11 2 55 -0.34690374812169D+00 0.28530001789184D-16 + 2 11 2 55 0.14057722780300D+00 0.11276070665674D-15 + 3 11 2 55 0.32100479112211D+00 0.88154560392315D-17 + 1 12 2 55 0.17278320948682D+02 -0.66939907949441D-17 + 2 12 2 55 -0.28264265805571D+02 0.10707512440567D-15 + 3 12 2 55 0.17165288984837D+02 0.20210915503375D-16 + 1 13 2 55 0.24383583027058D-01 0.32734225960618D-16 + 2 13 2 55 0.24720094615663D+00 0.12852263625867D-15 + 3 13 2 55 0.33216969269469D-01 0.61340617417144D-16 + 1 14 2 55 0.45844438789835D+00 -0.47161967772299D-16 + 2 14 2 55 -0.36231427929658D+00 -0.17593109171571D-15 + 3 14 2 55 0.49654295837348D+00 -0.58256291191814D-16 + 1 15 2 55 0.33570155248117D+00 0.34436475424115D-16 + 2 15 2 55 0.15825920575420D+00 0.97545235151206D-16 + 3 15 2 55 -0.34900987509091D+00 -0.30407228596655D-16 + 1 16 2 55 0.25898368449814D+00 0.16587852023587D-16 + 2 16 2 55 0.10115026623173D+00 0.17928283683441D-15 + 3 16 2 55 0.27830676858509D-01 0.18689132926979D-16 + 1 17 2 55 -0.10752394562335D+00 0.28404345221500D-16 + 2 17 2 55 -0.11931947826560D-01 0.50032992559914D-18 + 3 17 2 55 -0.12617294084810D+00 0.35713429995189D-16 + 1 18 2 55 0.13078588463868D+01 -0.29010076913605D-16 + 2 18 2 55 0.30062117777568D+01 0.14102800561798D-15 + 3 18 2 55 -0.12509767681806D+01 -0.32381926146528D-16 + 1 19 2 55 -0.12574855522480D+01 -0.24049021057090D-16 + 2 19 2 55 0.30927109131092D+01 -0.10653569518698D-16 + 3 19 2 55 -0.12650830491787D+01 0.27282309284495D-16 + 1 20 2 55 0.10774984940750D-01 0.64390128453362D-16 + 2 20 2 55 0.67229337897262D-01 0.94635811803625D-16 + 3 20 2 55 0.15189491883038D+00 -0.96849871839592D-17 + 1 21 2 55 -0.70206638076884D-01 0.49365335301540D-16 + 2 21 2 55 -0.19811576467606D-01 0.59865850201319D-16 + 3 21 2 55 0.47616311444370D-01 0.24649322007103D-16 + 1 22 2 55 0.14435244257966D+01 0.29704329182450D-16 + 2 22 2 55 0.96910325492603D+00 -0.23144655887892D-16 + 3 22 2 55 0.29658009543567D+01 -0.33656401135372D-16 + 1 23 2 55 -0.13678659944496D+01 -0.14126105883968D-16 + 2 23 2 55 0.29632774936015D+01 -0.20366210397075D-15 + 3 23 2 55 0.13483055546319D+01 -0.65375575202974D-17 + 1 24 2 55 -0.47848284343538D+00 0.15773990459371D-17 + 2 24 2 55 -0.42400915340020D+00 0.69507014183729D-16 + 3 24 2 55 0.48351314694592D+00 0.21204137099125D-16 + 1 25 2 55 -0.38269152990934D+00 -0.21871131483132D-16 + 2 25 2 55 0.66408895613078D+00 0.10752232665994D-15 + 3 25 2 55 0.32807006299279D+00 0.66657454151945D-17 + 1 26 2 55 0.27657730932820D+00 -0.29725853112137D-16 + 2 26 2 55 0.16887509052892D+00 0.96660643398204D-16 + 3 26 2 55 0.13763729246428D+00 0.29625682430371D-16 + 1 27 2 55 -0.13752406199399D+02 -0.72853009281587D-17 + 2 27 2 55 -0.25987538274335D+02 -0.11365791259435D-16 + 3 27 2 55 0.14890393670092D+02 0.34077124920195D-17 + 1 28 2 55 0.53470638894167D-01 -0.40028520618365D-16 + 2 28 2 55 0.20857800944944D+00 -0.63146746343021D-16 + 3 28 2 55 0.38181601510458D-01 -0.39526019585249D-16 + 1 29 2 55 -0.29992653005327D+00 0.26465825079687D-17 + 2 29 2 55 -0.38401237108067D+00 0.18606321257501D-15 + 3 29 2 55 0.34588094598482D+00 -0.28226499578833D-16 + 1 30 2 55 -0.47241760155955D+00 -0.50845438423464D-16 + 2 30 2 55 -0.71530023363884D+00 -0.10257884024463D-15 + 3 30 2 55 0.44706759951065D+00 0.26054298451090D-16 + 1 31 2 55 -0.30252389954018D+00 -0.45437810483558D-16 + 2 31 2 55 0.18304592510120D+00 -0.10826129337833D-15 + 3 31 2 55 -0.28358065322038D+00 -0.24260318152814D-16 + 1 32 2 55 0.62056743571347D-02 0.23540887520572D-16 + 2 32 2 55 0.81365140915614D+00 -0.30925691852394D-15 + 3 32 2 55 0.87950895163831D+00 -0.33874168626735D-17 + 1 33 2 55 0.46389530140495D-01 0.22450352137771D-16 + 2 33 2 55 -0.19250859648881D+00 0.11946268674445D-15 + 3 33 2 55 -0.16359920195150D+00 -0.28507836603612D-18 + 1 34 2 55 -0.34258093331185D-01 -0.69285222326121D-17 + 2 34 2 55 -0.23088084729192D+00 -0.10425357393158D-15 + 3 34 2 55 -0.49290147573133D-01 -0.42452623905619D-18 + 1 35 2 55 0.10356308707008D+00 0.45910980792413D-17 + 2 35 2 55 -0.28160457200432D+00 -0.17617521347362D-15 + 3 35 2 55 0.59446261974187D-01 0.23227225668482D-17 + 1 36 2 55 -0.12828034165548D+01 0.21869635914483D-16 + 2 36 2 55 -0.28512247146025D+01 0.13387494448025D-15 + 3 36 2 55 -0.28992922123548D+01 0.24609106886936D-17 + 1 37 2 55 0.14257686930433D+01 -0.20378982843872D-16 + 2 37 2 55 -0.31083248747393D+01 -0.35909675483079D-17 + 3 37 2 55 0.28968247934279D+01 0.54900046324044D-17 + 1 38 2 55 -0.12999869291335D+01 0.29805974572538D-16 + 2 38 2 55 -0.31939237968509D+01 -0.20941676513562D-15 + 3 38 2 55 0.34661093519879D+01 0.23914850300128D-18 + 1 39 2 55 0.14258506103839D+01 -0.18653064847510D-16 + 2 39 2 55 -0.32389323475908D+01 -0.10297906611240D-15 + 3 39 2 55 -0.32724273548708D+01 -0.45128096922669D-18 + 1 40 2 55 0.20626483504748D-02 -0.29190599109513D-16 + 2 40 2 55 0.29691473446176D+00 0.45201172545311D-16 + 3 40 2 55 -0.54559282343331D-01 -0.48152710891848D-16 + 1 41 2 55 -0.50891363746346D+00 -0.68923789604763D-17 + 2 41 2 55 -0.44735271654359D+00 -0.90668263813951D-16 + 3 41 2 55 -0.48027594224421D+00 0.26547275773561D-16 + 1 42 2 55 -0.80045650826027D+00 -0.10667606633097D-16 + 2 42 2 55 -0.60193948425332D+00 -0.42727972371080D-16 + 3 42 2 55 -0.68264261748262D+00 -0.23202059397249D-17 + 1 43 2 55 -0.35986694257035D+00 0.95897602536371D-17 + 2 43 2 55 0.10626880733349D+00 -0.78616325146383D-17 + 3 43 2 55 0.30197170554672D+00 -0.59287420802132D-18 + 1 44 2 55 -0.59936482346722D+00 0.12696553656603D-16 + 2 44 2 55 -0.50047434236650D+00 0.10705895239462D-15 + 3 44 2 55 -0.61055482526110D+00 -0.23263018324347D-16 + 1 45 2 55 -0.29022933731612D+00 0.11216477630482D-16 + 2 45 2 55 0.53072023251004D+00 0.50129656123825D-16 + 3 45 2 55 -0.21799906534146D+00 -0.18478656516569D-16 + 1 46 2 55 0.37197994347043D+00 -0.36863592074146D-16 + 2 46 2 55 0.12834338893620D+00 -0.14984070061279D-15 + 3 46 2 55 -0.26868741007231D+00 -0.54103206170976D-16 + 1 47 2 55 -0.16629379756977D+02 -0.30822036634965D-17 + 2 47 2 55 -0.27760819090572D+02 0.19906149936077D-15 + 3 47 2 55 -0.17524480964126D+02 0.18617625798880D-17 + 1 48 2 55 0.50822928074396D-01 0.60457762342355D-18 + 2 48 2 55 -0.84272004536130D-01 -0.70767075603585D-18 + 3 48 2 55 -0.12262395208868D-01 0.11671661561477D-18 + 1 49 2 55 0.50187471622119D-01 -0.52687728385888D-18 + 2 49 2 55 -0.67269915365605D-01 0.61768506855346D-18 + 3 49 2 55 0.50182227588190D-01 -0.19175596943506D-18 + 1 50 2 55 -0.94007595960364D-02 -0.56049401779152D-17 + 2 50 2 55 0.62991047216481D-01 -0.23427716689772D-16 + 3 50 2 55 -0.12637881894937D+01 -0.43413939538109D-17 + 1 51 2 55 -0.24461857082305D-02 0.11700124947693D-17 + 2 51 2 55 -0.20671006593297D+00 0.34304678490367D-17 + 3 51 2 55 0.34358997781744D-01 -0.15037524784550D-17 + 1 52 2 55 -0.19346501631644D-01 -0.35316255855081D-18 + 2 52 2 55 0.14254411493811D+00 0.97839802022244D-17 + 3 52 2 55 -0.31054074968652D-02 -0.15142039374922D-17 + 1 53 2 55 0.31754131344404D-01 -0.19133671991568D-17 + 2 53 2 55 -0.38525272769520D+00 -0.57456108406403D-17 + 3 53 2 55 0.17871430495605D-01 -0.14447649573763D-17 + 1 54 2 55 -0.20095775691119D-01 0.12841333018282D-18 + 2 54 2 55 -0.29997582769305D+00 0.13634356189530D-17 + 3 54 2 55 -0.63860397410480D-01 0.25843992954276D-17 + 1 55 2 55 -0.10712478210702D+01 0.00000000000000D+00 + 2 55 2 55 0.12361603940764D+03 0.00000000000000D+00 + 3 55 2 55 -0.62995371830210D+00 0.00000000000000D+00 + 1 56 2 55 0.10458857416864D+00 0.70473846748439D-16 + 2 56 2 55 0.37092861818658D+00 0.17350690366927D-15 + 3 56 2 55 -0.24018265599631D+00 0.75523066554209D-16 + 1 57 2 55 0.50130163375714D+00 -0.43096660061904D-17 + 2 57 2 55 -0.37587517196716D+00 0.24815363556967D-16 + 3 57 2 55 -0.44375316277966D+00 0.98877459616723D-17 + 1 58 2 55 0.49922300162288D+00 0.72013512116818D-17 + 2 58 2 55 -0.87879839587781D+00 0.38607361921840D-15 + 3 58 2 55 -0.76511502303097D-01 -0.23165430375999D-16 + 1 59 2 55 0.20300347704440D+00 -0.40575117332232D-16 + 2 59 2 55 0.15727104241103D+00 0.14420457750481D-15 + 3 59 2 55 0.27594970481658D+00 -0.39244037264903D-16 + 1 60 2 55 0.28684620462766D+00 -0.11372371883641D-16 + 2 60 2 55 -0.85893846018721D-01 -0.80857174497833D-16 + 3 60 2 55 -0.14952538593818D+00 0.46222394114042D-17 + 1 61 2 55 0.27707858760759D+00 -0.31184138964922D-16 + 2 61 2 55 0.58598536914087D+00 -0.15940642993737D-15 + 3 61 2 55 -0.34701699078133D+00 0.26379052790056D-16 + 1 62 2 55 -0.78293220003702D+00 0.33847064238511D-16 + 2 62 2 55 -0.18536809697928D+00 0.97704582396766D-16 + 3 62 2 55 -0.71273818903616D+00 -0.29970020081315D-16 + 1 63 2 55 0.14657072719820D+02 -0.38854601936384D-16 + 2 63 2 55 -0.25763641485448D+02 0.14168108681453D-15 + 3 63 2 55 -0.13670665622604D+02 -0.14226785470265D-16 + 1 64 2 55 0.62533824397713D+00 0.16847833309636D-16 + 2 64 2 55 0.12127492901125D+00 -0.37434305922215D-16 + 3 64 2 55 0.25725218217313D+00 -0.14280780386614D-16 + 1 65 2 55 -0.22032006338684D+00 -0.10857354624846D-16 + 2 65 2 55 0.12714067519291D+00 0.23676273825193D-16 + 3 65 2 55 -0.17334651597392D+00 0.18891367752181D-16 + 1 1 3 55 0.16758652877981D+00 0.21008745629605D-16 + 2 1 3 55 -0.19848275994538D+00 -0.28439161691186D-16 + 3 1 3 55 0.92045836170683D-01 -0.19817702829277D-16 + 1 2 3 55 0.16276630588903D+01 -0.15575280468237D-16 + 2 2 3 55 -0.14062279707536D+01 0.27783190381846D-17 + 3 2 3 55 0.28299399254470D+01 0.20532304955949D-16 + 1 3 3 55 -0.21515632650469D+00 0.37013537348727D-16 + 2 3 3 55 0.57395443418602D-01 0.38265510405008D-16 + 3 3 3 55 0.10115026623173D+00 0.28971644183210D-16 + 1 4 3 55 -0.12509741864495D+01 0.29691952001282D-16 + 2 4 3 55 -0.11229219114031D+01 -0.32444896438552D-16 + 3 4 3 55 0.31297097965360D+01 0.31658911918421D-16 + 1 5 3 55 -0.27447155986463D-01 0.11158217256579D-15 + 2 5 3 55 -0.10691912141849D+01 0.73422175179384D-17 + 3 5 3 55 0.12432638468928D+01 0.35408556516482D-16 + 1 6 3 55 0.12748485259548D+01 0.22623533994481D-16 + 2 6 3 55 0.10021922192644D+01 -0.84921184190306D-16 + 3 6 3 55 0.28933820724064D+01 -0.10509967257460D-15 + 1 7 3 55 -0.93528066163432D-01 -0.10411100225334D-15 + 2 7 3 55 0.15415690230455D+00 0.22158856762928D-16 + 3 7 3 55 0.54598954673187D-01 -0.25913265483189D-16 + 1 8 3 55 -0.14160356266369D+01 0.53071608277337D-16 + 2 8 3 55 0.14307103494987D+01 -0.20665816290960D-16 + 3 8 3 55 0.30102194717558D+01 -0.66591626471364D-17 + 1 9 3 55 -0.50546147913437D+00 0.26120879159792D-16 + 2 9 3 55 0.33284657748148D+00 -0.82775319161531D-17 + 3 9 3 55 -0.29904993474145D+00 0.65317775527679D-17 + 1 10 3 55 0.30327908922068D+00 0.23540863597046D-16 + 2 10 3 55 0.29487047880415D+00 -0.34770897118829D-16 + 3 10 3 55 0.17730212355830D+00 0.19272141635736D-15 + 1 11 3 55 -0.34033249671599D+00 0.12993455393726D-16 + 2 11 3 55 0.36758802602363D+00 0.88154560392315D-17 + 3 11 3 55 0.54540329466194D+00 0.28393208033764D-16 + 1 12 3 55 -0.15049561448618D+02 0.16647490895997D-16 + 2 12 3 55 0.17191015790917D+02 0.20210915503375D-16 + 3 12 3 55 -0.26971487657406D+02 -0.14890736519820D-15 + 1 13 3 55 -0.34099467511314D-01 0.31621772344919D-17 + 2 13 3 55 0.22880423412226D-01 0.61340617417144D-16 + 3 13 3 55 0.26036168030257D+00 -0.32928530321046D-15 + 1 14 3 55 -0.47955481610331D+00 0.49658163834851D-16 + 2 14 3 55 0.50994080734399D+00 -0.58256291191814D-16 + 3 14 3 55 -0.79391920416359D+00 0.19977964222613D-15 + 1 15 3 55 -0.33741997843478D+00 0.29476279193486D-16 + 2 15 3 55 -0.28740111017937D+00 -0.30407228596655D-16 + 3 15 3 55 0.15499804625747D+00 -0.38800997377583D-15 + 1 16 3 55 -0.21810506358726D+00 -0.83332543693596D-18 + 2 16 3 55 -0.56988572847704D-01 0.18689132926979D-16 + 3 16 3 55 -0.42455260074796D+00 -0.59913273557281D-16 + 1 17 3 55 0.99376337698371D-01 -0.21593873669971D-17 + 2 17 3 55 0.10250397564470D+00 0.35713429995189D-16 + 3 17 3 55 -0.20308108836415D+00 0.37772829282998D-16 + 1 18 3 55 0.31565116753994D+01 -0.19280596579072D-17 + 2 18 3 55 0.14939482683633D+01 -0.32381926146528D-16 + 3 18 3 55 -0.31160979668871D+01 0.22538264917320D-15 + 1 19 3 55 -0.35866822654581D+01 -0.40107262304795D-17 + 2 19 3 55 0.12650830491787D+01 0.27282309284495D-16 + 3 19 3 55 -0.32056288879744D+01 -0.11646157181484D-15 + 1 20 3 55 0.12521758778296D+00 -0.64507054104318D-17 + 2 20 3 55 -0.16403408343850D+00 -0.96849871839592D-17 + 3 20 3 55 -0.26027564892998D+00 -0.13302983682219D-15 + 1 21 3 55 -0.10929782699040D+00 0.70233042272250D-18 + 2 21 3 55 -0.14001481061544D+00 0.24649322007103D-16 + 3 21 3 55 -0.21619915347569D+00 0.66764717223295D-16 + 1 22 3 55 -0.39313346883589D+01 0.39681254635676D-17 + 2 22 3 55 0.26312833464488D+00 -0.33656401135372D-16 + 3 22 3 55 -0.50448506524644D+01 -0.17501929214410D-15 + 1 23 3 55 0.30926262122503D+01 -0.27684111153747D-17 + 2 23 3 55 -0.12001748544479D+01 -0.65375575202974D-17 + 3 23 3 55 -0.29700809879205D+01 0.16187054929034D-15 + 1 24 3 55 0.41780254090830D+00 -0.10087735430652D-16 + 2 24 3 55 0.48020796007542D+00 0.21204137099125D-16 + 3 24 3 55 -0.51011838563335D+00 -0.12954291136476D-15 + 1 25 3 55 -0.36011376274162D+00 -0.23824213853521D-16 + 2 25 3 55 0.29133872444977D+00 0.66657454151945D-17 + 3 25 3 55 0.14604195947365D+00 0.30285794548735D-15 + 1 26 3 55 0.26928149076513D+00 0.69428727624071D-17 + 2 26 3 55 0.23445931572647D+00 0.29625682430371D-16 + 3 26 3 55 0.34107393969033D+00 0.34621157130024D-16 + 1 27 3 55 0.14083423636586D+02 -0.12986913496255D-16 + 2 27 3 55 0.14783799473417D+02 0.34077124920195D-17 + 3 27 3 55 -0.26651846455054D+02 0.83037875715311D-16 + 1 28 3 55 0.19633221284503D-01 -0.19515684713856D-18 + 2 28 3 55 0.13890585649113D+00 -0.39526019585249D-16 + 3 28 3 55 0.22596097662279D+00 0.17793981106635D-15 + 1 29 3 55 0.31903292504865D+00 -0.41815435145104D-16 + 2 29 3 55 0.57215740886046D+00 -0.28226499578833D-16 + 3 29 3 55 -0.87452191548157D+00 0.21012383156862D-15 + 1 30 3 55 0.39126828577219D+00 -0.22741639940391D-16 + 2 30 3 55 0.44826197649394D+00 0.26054298451090D-16 + 3 30 3 55 -0.55512387936140D+00 -0.77633636922276D-16 + 1 31 3 55 0.30221072566820D+00 -0.95716165175606D-16 + 2 31 3 55 -0.44990739332757D+00 -0.24260318152814D-16 + 3 31 3 55 0.40863253993532D+00 0.79646337843999D-15 + 1 32 3 55 -0.25019036966429D+00 -0.26623959835525D-16 + 2 32 3 55 -0.99491676041998D+00 -0.33874168626735D-17 + 3 32 3 55 -0.11649945096036D+01 -0.12037959677762D-15 + 1 33 3 55 -0.43402375418692D-01 0.13400430671333D-16 + 2 33 3 55 -0.15173137220633D+00 -0.28507836603612D-18 + 3 33 3 55 -0.14082776768839D+00 0.67626229890674D-15 + 1 34 3 55 0.42487475494266D-01 -0.32446357676636D-17 + 2 34 3 55 0.21360777461593D-02 -0.42452623905619D-18 + 3 34 3 55 -0.26792518326819D+00 0.17850768413528D-15 + 1 35 3 55 0.13471322032932D+00 -0.28814303932080D-16 + 2 35 3 55 0.11291188076494D+00 0.23227225668482D-17 + 3 35 3 55 -0.17065132479147D+00 0.10576155793817D-15 + 1 36 3 55 -0.12138580036775D+01 -0.24231836906529D-16 + 2 36 3 55 -0.29073230193539D+01 0.24609106886936D-17 + 3 36 3 55 -0.27516318762314D+01 -0.29879787084087D-15 + 1 37 3 55 -0.16200999420939D+01 0.76301458865005D-17 + 2 37 3 55 0.28968247934279D+01 0.54900046324044D-17 + 3 37 3 55 -0.28486160486720D+01 -0.51308334953535D-16 + 1 38 3 55 0.12892733219551D+01 -0.29873211469026D-16 + 2 38 3 55 0.30631974865687D+01 0.23914850300128D-18 + 3 38 3 55 -0.31939237968509D+01 0.19124222999822D-16 + 1 39 3 55 0.14131179231745D+01 0.76681899140982D-17 + 2 39 3 55 -0.32598618654775D+01 -0.45128096922669D-18 + 3 39 3 55 -0.29903000869573D+01 0.37684570387626D-16 + 1 40 3 55 -0.84150502029026D-02 0.24798034318643D-17 + 2 40 3 55 0.18427734937984D-01 -0.48152710891848D-16 + 3 40 3 55 0.29520040261450D+00 0.72394774727765D-16 + 1 41 3 55 -0.45618244863945D+00 -0.20599829041689D-16 + 2 41 3 55 -0.47710773077175D+00 0.26547275773561D-16 + 3 41 3 55 -0.80735361833169D+00 -0.55778408912377D-16 + 1 42 3 55 -0.51417559201220D+00 0.33823918473208D-16 + 2 42 3 55 -0.69117859893013D+00 -0.23202059397249D-17 + 3 42 3 55 -0.37756417728969D+00 -0.60972742564533D-16 + 1 43 3 55 0.17548457128181D+00 -0.94650946053624D-17 + 2 43 3 55 0.18019124741021D+00 -0.59287420802132D-18 + 3 43 3 55 0.31305621381474D-01 0.84851838004019D-16 + 1 44 3 55 -0.51547249503314D+00 0.28195250500157D-16 + 2 44 3 55 -0.59930329214814D+00 -0.23263018324347D-16 + 3 44 3 55 -0.51190641997774D+00 0.10059721015527D-15 + 1 45 3 55 0.35239402038777D+00 0.17805676584960D-16 + 2 45 3 55 -0.29567997302832D+00 -0.18478656516569D-16 + 3 45 3 55 0.19045136784064D+00 0.10173999781111D-15 + 1 46 3 55 -0.23104945061831D+00 -0.29361638588262D-16 + 2 46 3 55 0.16842214387475D+00 -0.54103206170976D-16 + 3 46 3 55 0.27420601099828D+00 0.21998857203813D-15 + 1 47 3 55 -0.14835666597383D+02 -0.35469422138501D-16 + 2 47 3 55 -0.18445644366106D+02 0.18617625798880D-17 + 3 47 3 55 -0.26885952984624D+02 0.70435151169109D-16 + 1 48 3 55 -0.53321962162254D-01 -0.47854248947154D-18 + 2 48 3 55 -0.25872687761076D-01 0.11671661561477D-18 + 3 48 3 55 -0.95554353237723D-01 0.36819461989831D-17 + 1 49 3 55 -0.36046341819235D-01 0.98775332220955D-18 + 2 49 3 55 -0.11411960095221D+00 -0.19175596943506D-18 + 3 49 3 55 0.15513921470717D+01 0.78348626586804D-17 + 1 50 3 55 0.37629163850709D-01 -0.90887176504224D-18 + 2 50 3 55 0.10028054761513D+01 -0.43413939538109D-17 + 3 50 3 55 0.10020919058717D+01 0.12855676519757D-16 + 1 51 3 55 0.46994349775083D-01 -0.14643159754672D-17 + 2 51 3 55 0.40416366528409D-01 -0.15037524784550D-17 + 3 51 3 55 -0.31749180709190D+00 0.10331671508753D-16 + 1 52 3 55 0.19049686090145D+00 0.15642580622052D-17 + 2 52 3 55 0.52128788298783D-01 -0.15142039374922D-17 + 3 52 3 55 0.14254411493811D+00 -0.11735839368388D-16 + 1 53 3 55 0.36501365675269D-02 0.39431177635078D-18 + 2 53 3 55 0.27708198192500D-02 -0.14447649573763D-17 + 3 53 3 55 -0.25609173438377D+00 -0.53042219579385D-17 + 1 54 3 55 0.80488204615419D-03 -0.16234748957095D-18 + 2 54 3 55 0.75794711745998D-01 0.25843992954276D-17 + 3 54 3 55 -0.36966588801675D+00 0.31423611550137D-17 + 1 55 3 55 0.34256587073390D+01 0.00000000000000D+00 + 2 55 3 55 -0.62995371830210D+00 0.00000000000000D+00 + 3 55 3 55 0.12277108058833D+03 0.00000000000000D+00 + 1 56 3 55 -0.17540967717462D+00 -0.33109467100121D-16 + 2 56 3 55 -0.20826631690893D+00 0.75523066554209D-16 + 3 56 3 55 0.53148809985973D+00 0.42023935126982D-16 + 1 57 3 55 0.36482159917444D+00 -0.12198352182552D-16 + 2 57 3 55 -0.46614700581314D+00 0.98877459616723D-17 + 3 57 3 55 -0.91736458850017D+00 0.87547083538223D-16 + 1 58 3 55 0.35059274663601D+00 0.27417043203683D-16 + 2 58 3 55 -0.23675050006731D+00 -0.23165430375999D-16 + 3 58 3 55 -0.62129055617945D+00 -0.14333920400285D-15 + 1 59 3 55 0.29686620036028D+00 -0.28004284708731D-16 + 2 59 3 55 0.32225879136919D+00 -0.39244037264903D-16 + 3 59 3 55 0.22912581400825D+00 -0.11442302466758D-16 + 1 60 3 55 0.52165191449955D+00 0.10626457101266D-16 + 2 60 3 55 -0.43526276143988D+00 0.46222394114042D-17 + 3 60 3 55 -0.60975442156202D+00 0.15768122077798D-15 + 1 61 3 55 -0.35138773653670D+00 -0.37644039962412D-16 + 2 61 3 55 -0.37492435584405D+00 0.26379052790056D-16 + 3 61 3 55 0.20982897868919D+00 -0.26568614700945D-17 + 1 62 3 55 0.83325922317388D+00 0.43930707151346D-17 + 2 62 3 55 -0.37174795431063D-01 -0.29970020081315D-16 + 3 62 3 55 0.10055228481423D+01 -0.21240642424498D-16 + 1 63 3 55 0.14117436603271D+02 0.38913349103414D-16 + 2 63 3 55 -0.13709035226119D+02 -0.14226785470265D-16 + 3 63 3 55 -0.25536535365739D+02 0.19174235966763D-15 + 1 64 3 55 -0.93202794916059D+00 0.48717980518883D-16 + 2 64 3 55 0.82400616371946D+00 -0.14280780386614D-16 + 3 64 3 55 -0.84622544378207D+00 0.15676736101265D-16 + 1 65 3 55 -0.93420599972247D-01 -0.13874109520131D-16 + 2 65 3 55 -0.61281025647686D-01 0.18891367752181D-16 + 3 65 3 55 -0.31062896647660D+00 -0.42262534785862D-16 + 1 1 1 56 -0.24223590393392D+02 0.86475861420594D-16 + 2 1 1 56 0.13529215902066D+02 -0.29125773668581D-16 + 3 1 1 56 -0.11927098542457D+02 0.33426616755618D-17 + 1 2 1 56 0.62632122828492D+00 -0.19360485746493D-15 + 2 2 1 56 -0.78293220003702D+00 0.21898402523374D-16 + 3 2 1 56 -0.83325922317387D+00 0.43228079591903D-16 + 1 3 1 56 0.62025028896527D-02 0.77128313555503D-16 + 2 3 1 56 0.23104945061835D+00 -0.15260413329048D-16 + 3 3 1 56 0.37197994347044D+00 0.22891435091296D-16 + 1 4 1 56 -0.81083552164948D+00 0.16354784846130D-15 + 2 4 1 56 0.44096668991251D+00 0.19314526211951D-16 + 3 4 1 56 -0.54032163431437D+00 0.41973444559091D-16 + 1 5 1 56 0.43428936181693D-01 -0.53469084463289D-16 + 2 5 1 56 -0.13093678493619D+01 -0.10066414860156D-16 + 3 5 1 56 0.16931048991710D+01 0.28490136247356D-16 + 1 6 1 56 -0.49336914517857D+00 0.52325323487698D-16 + 2 6 1 56 0.50939446161318D+00 -0.12553503128050D-16 + 3 6 1 56 -0.43441998613115D+00 -0.29130762265202D-16 + 1 7 1 56 -0.17175783798410D+00 0.80637884671864D-16 + 2 7 1 56 0.46034884881433D+00 -0.18111327353950D-16 + 3 7 1 56 -0.33826748421716D+00 -0.23567733437265D-16 + 1 8 1 56 0.26686550422134D+00 -0.26074189456179D-16 + 2 8 1 56 0.20825616100103D-01 0.22388148655982D-17 + 3 8 1 56 -0.10707045324182D+00 0.11748446485641D-16 + 1 9 1 56 -0.32157297915032D+01 -0.28862264544491D-15 + 2 9 1 56 -0.37358331173980D+01 0.34748395214895D-17 + 3 9 1 56 0.12612871728019D+01 -0.78875362730569D-17 + 1 10 1 56 -0.24785948145176D+00 -0.14458494090685D-15 + 2 10 1 56 0.11878586879503D+00 -0.62535684146291D-18 + 3 10 1 56 0.14675843406442D+00 -0.35860227864383D-16 + 1 11 1 56 -0.30638988320256D+01 -0.63233316397042D-17 + 2 11 1 56 0.31640814690755D+01 0.43620711549662D-17 + 3 11 1 56 -0.13515021593717D+01 0.12648590910018D-16 + 1 12 1 56 -0.11874443038822D+00 0.23680408560452D-15 + 2 12 1 56 0.80597005297447D-01 0.33451247700751D-17 + 3 12 1 56 -0.12365796421604D+00 -0.36336951159530D-16 + 1 13 1 56 -0.30001519778860D+01 -0.29457901950627D-15 + 2 13 1 56 0.30660005531584D+01 0.28104084115149D-19 + 3 13 1 56 0.12254845032310D+01 0.16353857347362D-16 + 1 14 1 56 -0.23633934167008D+00 0.22287587047378D-15 + 2 14 1 56 -0.90666799791500D-01 -0.28065331803899D-17 + 3 14 1 56 0.14168161790001D+00 0.47477192952072D-16 + 1 15 1 56 -0.21132000918250D+00 0.12917641949903D-15 + 2 15 1 56 0.13055966252282D+00 0.24544155378527D-17 + 3 15 1 56 -0.71961574256987D-01 0.22416375686468D-16 + 1 16 1 56 -0.27022189572521D+02 0.16475211026705D-15 + 2 16 1 56 -0.14835666597383D+02 -0.26559480846677D-16 + 3 16 1 56 0.16629379756977D+02 0.13153877715662D-16 + 1 17 1 56 0.11542738827358D+00 0.79796676121167D-16 + 2 17 1 56 0.17250536151423D+00 -0.97951431238282D-17 + 3 17 1 56 0.26119564154638D+00 -0.55690298093549D-16 + 1 18 1 56 0.21582940437262D+00 0.16411488890035D-15 + 2 18 1 56 -0.32434742287266D+00 0.21563039560158D-16 + 3 18 1 56 -0.43846442122255D+00 -0.58017225116704D-16 + 1 19 1 56 -0.80985736801164D+00 -0.11057616097542D-15 + 2 19 1 56 -0.28684620462766D+00 -0.13690991440914D-16 + 3 19 1 56 0.52165191449956D+00 0.66555972337269D-16 + 1 20 1 56 0.57599511951001D+00 0.32774061053566D-16 + 2 20 1 56 -0.29550212064913D+00 0.51361462487319D-17 + 3 20 1 56 0.38139056523928D+00 0.29706163359109D-16 + 1 21 1 56 -0.29770639034202D+00 -0.24824815900554D-15 + 2 21 1 56 -0.53882773265771D+00 -0.89814848641410D-17 + 3 21 1 56 0.43245298590620D+00 -0.24342067472785D-16 + 1 22 1 56 0.33793601791265D+00 -0.56780469905630D-16 + 2 22 1 56 0.16233365719528D+01 0.26287010204245D-16 + 3 22 1 56 -0.17793550258318D+01 -0.41417228303077D-16 + 1 23 1 56 0.20033384962361D+00 -0.98910309598499D-16 + 2 23 1 56 0.24696374662192D-02 0.33147236581446D-16 + 3 23 1 56 0.15681017887169D+00 -0.43440496894442D-16 + 1 24 1 56 -0.29148046783835D+01 -0.20199896152123D-15 + 2 24 1 56 0.11584240695734D+01 -0.46712431000427D-16 + 3 24 1 56 -0.31270947786230D+01 0.28236490487263D-18 + 1 25 1 56 -0.32206381252867D+01 -0.14356607375706D-15 + 2 25 1 56 -0.16017402743485D+01 -0.79867547720728D-16 + 3 25 1 56 0.32345058521664D+01 -0.87399574662053D-18 + 1 26 1 56 -0.22877488748024D+00 -0.44551483565420D-16 + 2 26 1 56 0.15578959509998D+00 -0.12631193853287D-16 + 3 26 1 56 0.15007314540031D+00 -0.40824429299785D-17 + 1 27 1 56 -0.27692148443529D+00 0.22067105447765D-15 + 2 27 1 56 -0.19607991922537D-01 0.22587595356827D-16 + 3 27 1 56 -0.14976597231751D+00 0.43633766601037D-17 + 1 28 1 56 -0.31127751678940D+01 0.32933423322285D-16 + 2 28 1 56 0.12076686035773D+01 0.97896184568060D-16 + 3 28 1 56 0.31321845540438D+01 0.13053621514024D-18 + 1 29 1 56 -0.28051599479846D+01 -0.23296128117298D-15 + 2 29 1 56 -0.20031063282269D+01 -0.18701541491460D-16 + 3 29 1 56 -0.32779236897385D+01 0.93038514141599D-18 + 1 30 1 56 -0.22012489406827D+00 -0.20116207865400D-16 + 2 30 1 56 -0.10226835393024D+00 -0.23494035594752D-16 + 3 30 1 56 -0.82223371077734D-01 -0.33223798040747D-17 + 1 31 1 56 -0.11821621565578D+00 -0.17703477633902D-15 + 2 31 1 56 -0.11779011964277D+00 0.10196782434774D-16 + 3 31 1 56 0.24928118504911D+00 0.35016468443973D-18 + 1 32 1 56 -0.24353371012176D+02 0.14318615341991D-15 + 2 32 1 56 -0.14751333435336D+02 0.96959273668196D-17 + 3 32 1 56 -0.22245450246926D+02 -0.18858899732710D-16 + 1 33 1 56 0.27912912720100D+00 -0.55369953232108D-16 + 2 33 1 56 0.29916503793230D+00 -0.34229305370551D-16 + 3 33 1 56 -0.33872008325703D+00 0.50864255055692D-16 + 1 34 1 56 0.19042103809354D+00 0.25332798947309D-17 + 2 34 1 56 -0.13762305616937D+00 0.23670101568629D-16 + 3 34 1 56 0.28361053495242D+00 0.21124499232138D-16 + 1 35 1 56 -0.79645524878653D+00 0.90291778800876D-16 + 2 35 1 56 -0.36639941053524D+00 0.28094512993375D-16 + 3 35 1 56 -0.38632799622838D+00 -0.16451554953830D-16 + 1 36 1 56 0.12148402283879D+00 -0.18842620691852D-15 + 2 36 1 56 -0.21488924759002D+00 -0.18110196474785D-16 + 3 36 1 56 -0.29451899344542D+00 -0.26430011912827D-16 + 1 37 1 56 -0.50259411538244D+00 0.22004902164025D-17 + 2 37 1 56 -0.49922300162289D+00 -0.22342597452094D-16 + 3 37 1 56 -0.35059274663601D+00 0.40041143420920D-17 + 1 38 1 56 -0.39640379417134D+00 -0.42067247423920D-16 + 2 38 1 56 -0.51417559201220D+00 0.18522759738915D-17 + 3 38 1 56 -0.80045650826027D+00 -0.79672686450210D-16 + 1 39 1 56 0.23662232486672D+00 -0.16553746397235D-16 + 2 39 1 56 0.94824085324148D-02 0.21910071622506D-16 + 3 39 1 56 0.11423776684105D-01 -0.11353897583816D-16 + 1 40 1 56 0.30753321824938D+01 0.68467411404262D-16 + 2 40 1 56 -0.11033339330700D+01 0.30945856413999D-16 + 3 40 1 56 -0.10982907017704D+01 0.33705731639627D-16 + 1 41 1 56 0.31882659330409D+01 -0.10254270508497D-15 + 2 41 1 56 0.14011878085562D+01 -0.16368096972554D-16 + 3 41 1 56 -0.13686463220820D+01 -0.15734783744953D-16 + 1 42 1 56 0.36035073432242D+01 0.92305612002798D-16 + 2 42 1 56 -0.16287765163973D+01 -0.14118509265259D-16 + 3 42 1 56 0.14766123034724D+01 0.37659220162142D-17 + 1 43 1 56 0.33326485128250D+01 0.18421497746821D-16 + 2 43 1 56 0.22422150556930D+01 -0.13999288688141D-16 + 3 43 1 56 0.79111691528172D+00 -0.23903306486225D-17 + 1 44 1 56 -0.20198582307324D-01 0.23215970067669D-15 + 2 44 1 56 -0.89382574095890D-01 0.18650510386618D-16 + 3 44 1 56 -0.16133490743944D-01 -0.74783773706617D-17 + 1 45 1 56 -0.23349397939392D-02 0.86701119437678D-17 + 2 45 1 56 0.11767243478524D+00 0.27371450693441D-16 + 3 45 1 56 -0.77343943757398D-01 0.18876725406505D-16 + 1 46 1 56 -0.42568070033697D+00 -0.13629161887186D-16 + 2 46 1 56 0.10890786888940D+00 0.41979506554902D-17 + 3 46 1 56 0.34261208178817D+00 0.11097361939338D-17 + 1 47 1 56 -0.42519676728862D+00 0.13910972171392D-15 + 2 47 1 56 0.15638035851829D-01 -0.24563664726928D-16 + 3 47 1 56 -0.22985401946665D+00 0.88398693829251D-17 + 1 48 1 56 -0.28281032658509D+02 -0.25333373316915D-16 + 2 48 1 56 0.14256821798390D+02 -0.20117026606029D-16 + 3 48 1 56 0.14657929762345D+02 -0.23652241442712D-16 + 1 49 1 56 0.24071006525499D+00 0.26871056683275D-15 + 2 49 1 56 -0.44122789176325D+00 0.20732862211004D-16 + 3 49 1 56 0.29803704164042D+00 -0.27790630543656D-16 + 1 50 1 56 0.24026317668264D+00 -0.86668881339230D-16 + 2 50 1 56 0.19589691143570D+01 -0.30039221273980D-16 + 3 50 1 56 0.12568042557563D+01 0.30213347023978D-16 + 1 51 1 56 -0.78153175645181D+00 -0.12867274902867D-15 + 2 51 1 56 0.53730740550124D+00 0.10720269863904D-16 + 3 51 1 56 0.46840841101348D+00 -0.16071582217603D-16 + 1 52 1 56 0.31422049400924D+00 -0.18813214167776D-15 + 2 52 1 56 -0.17548457128182D+00 -0.12590164217604D-16 + 3 52 1 56 0.35986694257034D+00 -0.21663385308265D-16 + 1 53 1 56 -0.63312078461237D+00 0.13257884601033D-15 + 2 53 1 56 0.44260789793588D+00 -0.20822425601795D-16 + 3 53 1 56 0.51528742791334D+00 0.29258819848998D-16 + 1 54 1 56 -0.58364062511924D+00 0.23182373794404D-16 + 2 54 1 56 0.74948867391114D+00 0.31438800924898D-16 + 3 54 1 56 0.65896889737925D+00 -0.10627627919579D-16 + 1 55 1 56 0.81947051681334D-01 -0.21672603593151D-15 + 2 55 1 56 0.10458857416864D+00 -0.70473846748439D-16 + 3 55 1 56 -0.17540967717462D+00 0.33109467100121D-16 + 1 56 1 56 0.11892909311263D+03 0.00000000000000D+00 + 2 56 1 56 0.28802566016956D+01 0.00000000000000D+00 + 3 56 1 56 -0.68310894103161D+00 0.00000000000000D+00 + 1 57 1 56 -0.19374587556378D+00 0.10918339986225D-16 + 2 57 1 56 -0.28052321328861D-01 -0.48167164169112D-17 + 3 57 1 56 -0.24726760963584D-01 -0.18857488921598D-17 + 1 58 1 56 -0.56483248397148D+00 -0.66103022944074D-17 + 2 58 1 56 0.18069400296059D+00 0.23047010523306D-17 + 3 58 1 56 -0.30991150850772D+00 0.52750437884576D-18 + 1 59 1 56 0.16147086050100D+01 -0.83233577287644D-17 + 2 59 1 56 0.25656366926326D-01 -0.92573540911755D-18 + 3 59 1 56 -0.11525350264608D-01 -0.53656396734104D-17 + 1 60 1 56 -0.54947314096177D+00 0.46730728474365D-16 + 2 60 1 56 -0.14226339989857D+00 -0.89956857506446D-17 + 3 60 1 56 -0.45780525994136D+00 0.61810253280393D-17 + 1 61 1 56 -0.19511828925900D+00 0.15976765360663D-16 + 2 61 1 56 -0.13360427838615D+00 -0.36074948307210D-17 + 3 61 1 56 -0.36698199332301D-01 0.18976853523659D-17 + 1 62 1 56 0.21493144039402D+00 0.18966955083080D-16 + 2 62 1 56 0.35798312713401D+00 0.50043202444306D-17 + 3 62 1 56 0.61638313884036D+00 0.90221374772386D-17 + 1 63 1 56 -0.12166211096925D+00 -0.46087697186842D-18 + 2 63 1 56 0.12354351356588D-01 0.29072179598429D-19 + 3 63 1 56 0.63431380755936D-02 0.27359964646375D-18 + 1 64 1 56 0.64172853416084D+00 -0.11496959430213D-15 + 2 64 1 56 -0.41799667554676D-01 -0.16673130812051D-17 + 3 64 1 56 0.56679916905530D+00 -0.46023310344046D-16 + 1 65 1 56 -0.32913855200116D+01 0.85454331048741D-16 + 2 65 1 56 -0.54552158771247D+01 -0.69171459284317D-17 + 3 65 1 56 0.11913615239239D+01 -0.65190676768847D-16 + 1 1 2 56 0.13901670395536D+02 -0.29125773668581D-16 + 2 1 2 56 -0.26367025656392D+02 0.53193998032604D-16 + 3 1 2 56 0.14345599579921D+02 -0.36573644140472D-16 + 1 2 2 56 -0.21034855301275D+00 0.21898402523374D-16 + 2 2 2 56 -0.18536809697927D+00 -0.19691429504027D-15 + 3 2 2 56 0.37174795431042D-01 -0.22945762956702D-16 + 1 3 2 56 -0.53763771560447D-01 -0.15260413329048D-16 + 2 3 2 56 0.27420601099831D+00 -0.16290597184754D-15 + 3 3 2 56 0.26868741007232D+00 0.13979141001132D-16 + 1 4 2 56 0.45818229504203D+00 0.19314526211951D-16 + 2 4 2 56 -0.50913110257274D+00 -0.11945994339047D-15 + 3 4 2 56 0.48522302031412D+00 0.46001352176920D-17 + 1 5 2 56 -0.35757827279188D-01 -0.10066414860156D-16 + 2 5 2 56 -0.11313505286587D+01 0.15402992638063D-15 + 3 5 2 56 0.13549678598456D+01 0.61531102379531D-17 + 1 6 2 56 0.25450899472504D+00 -0.12553503128050D-16 + 2 6 2 56 -0.87719096127325D+00 0.16982172254479D-15 + 3 6 2 56 0.33525327094947D+00 0.13641157832884D-16 + 1 7 2 56 0.52011348209476D+00 -0.18111327353950D-16 + 2 7 2 56 -0.39910233886037D+00 0.83348439178571D-16 + 3 7 2 56 0.59323179457402D+00 0.31502310010125D-16 + 1 8 2 56 -0.94617811102812D-02 0.22388148655982D-17 + 2 8 2 56 0.24492796035844D+00 -0.32532056970436D-15 + 3 8 2 56 -0.49505833736299D-01 0.11190860165999D-16 + 1 9 2 56 -0.35469120189638D+01 0.34748395214895D-17 + 2 9 2 56 -0.33903977200178D+01 0.25583508137665D-15 + 3 9 2 56 0.10925016594282D+01 -0.24487561280582D-16 + 1 10 2 56 0.12050740714423D+00 -0.62535684146291D-18 + 2 10 2 56 -0.24793168041875D+00 0.29652937847186D-15 + 3 10 2 56 0.15168666551705D+00 -0.42659063939492D-16 + 1 11 2 56 0.33050853082272D+01 0.43620711549662D-17 + 2 11 2 56 -0.29877680086004D+01 -0.14089802583803D-15 + 3 11 2 56 0.12841378769088D+01 -0.52682515705028D-16 + 1 12 2 56 -0.82043198351640D-01 0.33451247700751D-17 + 2 12 2 56 -0.16993298888397D+00 0.19341541847787D-15 + 3 12 2 56 0.71194922581209D-01 -0.26723007170470D-16 + 1 13 2 56 0.31773514429869D+01 0.28104084115149D-19 + 2 13 2 56 -0.29954888535487D+01 -0.78338257193211D-16 + 3 13 2 56 -0.13470329229198D+01 0.92039965425685D-16 + 1 14 2 56 -0.10097204574324D+00 -0.28065331803899D-17 + 2 14 2 56 -0.24639150368970D+00 0.18705998334323D-15 + 3 14 2 56 -0.83074439382483D-01 -0.34322600939060D-16 + 1 15 2 56 0.10038897771306D+00 0.24544155378527D-17 + 2 15 2 56 -0.18948265496565D+00 -0.12165399722494D-15 + 3 15 2 56 -0.11750953390600D+00 0.33880414394196D-16 + 1 16 2 56 -0.14558835678490D+02 -0.26559480846677D-16 + 2 16 2 56 -0.26885952984624D+02 0.93763562564373D-16 + 3 16 2 56 0.17524480964126D+02 -0.55347428226493D-17 + 1 17 2 56 0.23038762429388D+00 -0.97951431238282D-17 + 2 17 2 56 0.15731667061841D+00 0.30283573660145D-15 + 3 17 2 56 0.27476276805790D+00 0.42352228355363D-16 + 1 18 2 56 -0.29934916374171D+00 0.21563039560158D-16 + 2 18 2 56 0.62661665556899D+00 0.12100630857192D-15 + 3 18 2 56 0.24748365031445D+00 0.17483919016217D-16 + 1 19 2 56 -0.35556774802706D+00 -0.13690991440914D-16 + 2 19 2 56 -0.85893846018719D-01 -0.13668125976318D-15 + 3 19 2 56 0.43526276143988D+00 0.30171442959956D-17 + 1 20 2 56 -0.26938321812239D+00 0.51361462487319D-17 + 2 20 2 56 0.93208777468673D-01 0.16791722012160D-15 + 3 20 2 56 -0.34011013696974D+00 0.22093183465831D-16 + 1 21 2 56 -0.47577268331974D+00 -0.89814848641410D-17 + 2 21 2 56 -0.83525506489340D+00 0.18208582946530D-15 + 3 21 2 56 0.59167202259456D+00 -0.11070321106556D-16 + 1 22 2 56 0.26317444518415D+00 0.26287010204245D-16 + 2 22 2 56 0.11871324957381D+01 0.16707279851420D-15 + 3 22 2 56 -0.15198829841141D+01 0.44101153485473D-17 + 1 23 2 56 -0.10281033293596D+00 0.33147236581446D-16 + 2 23 2 56 0.26864894443220D+00 -0.11346248552217D-15 + 3 23 2 56 0.98401233411654D-01 -0.34768707706339D-16 + 1 24 2 56 -0.14205596556584D+01 -0.46712431000427D-16 + 2 24 2 56 0.30306915079876D+01 0.19307130150907D-15 + 3 24 2 56 -0.12396011896155D+01 -0.60999568335783D-17 + 1 25 2 56 0.11397146903825D+01 -0.79867547720728D-16 + 2 25 2 56 0.30580094079255D+01 0.13536651106053D-15 + 3 25 2 56 -0.10540879121051D+01 -0.16976471231496D-16 + 1 26 2 56 -0.10790549971587D+00 -0.12631193853287D-16 + 2 26 2 56 -0.18463012523089D-01 -0.10839151061427D-16 + 3 26 2 56 -0.44033202187166D-01 0.14604495732232D-16 + 1 27 2 56 0.11757710023595D+00 0.22587595356827D-16 + 2 27 2 56 0.37900726108992D-02 0.98218660677666D-16 + 3 27 2 56 -0.10726450908200D+00 0.32093048799856D-16 + 1 28 2 56 -0.14529028836111D+01 0.97896184568060D-16 + 2 28 2 56 0.32532103886273D+01 0.80811079469540D-16 + 3 28 2 56 0.12261362992760D+01 0.77554122108512D-17 + 1 29 2 56 0.11176717924403D+01 -0.18701541491460D-16 + 2 29 2 56 0.26328894094707D+01 0.31322602111035D-16 + 3 29 2 56 0.95452131471842D+00 0.20155635770682D-16 + 1 30 2 56 -0.14109272489711D+00 -0.23494035594752D-16 + 2 30 2 56 -0.10484951280540D+00 -0.53558968577757D-16 + 3 30 2 56 0.12818383142601D+00 -0.23675764399677D-16 + 1 31 2 56 0.72227401361730D-01 0.10196782434774D-16 + 2 31 2 56 -0.19873251756066D+00 0.94703027096404D-16 + 3 31 2 56 0.20147194587619D+00 0.31298205668733D-16 + 1 32 2 56 -0.13111602562201D+02 0.96959273668196D-17 + 2 32 2 56 -0.26966858017480D+02 -0.16756170775910D-15 + 3 32 2 56 -0.23403793604854D+02 0.47714433123222D-16 + 1 33 2 56 0.42098272698904D+00 -0.34229305370551D-16 + 2 33 2 56 0.12123201124200D+00 -0.23339457850394D-15 + 3 33 2 56 -0.25348016079986D+00 0.11352629488464D-15 + 1 34 2 56 -0.30050836975060D+00 0.23670101568629D-16 + 2 34 2 56 0.55573036713755D+00 0.70803315412977D-16 + 3 34 2 56 -0.31592974345080D+00 0.18490065874623D-16 + 1 35 2 56 -0.49338013526382D+00 0.28094512993375D-16 + 2 35 2 56 -0.32116000110640D+00 -0.13971192929342D-15 + 3 35 2 56 -0.49852977540938D+00 -0.33655037927781D-16 + 1 36 2 56 -0.16615110843062D+00 -0.18110196474785D-16 + 2 36 2 56 0.15446028503366D+00 0.17881225432488D-16 + 3 36 2 56 0.64823888964953D-01 -0.34280697336231D-16 + 1 37 2 56 -0.59033759901085D+00 -0.22342597452094D-16 + 2 37 2 56 -0.87879839587780D+00 0.23196047179014D-15 + 3 37 2 56 -0.23675050006731D+00 -0.27704139989602D-16 + 1 38 2 56 -0.63674313804244D+00 0.18522759738915D-17 + 2 38 2 56 -0.37756417728969D+00 0.86996199259662D-16 + 3 38 2 56 -0.68264261748262D+00 0.33624179245909D-16 + 1 39 2 56 -0.31560473711007D-02 0.21910071622506D-16 + 2 39 2 56 0.29525495854003D+00 0.90204948506205D-16 + 3 39 2 56 0.19573453759547D-01 0.72678268344038D-16 + 1 40 2 56 0.15222885050610D+01 0.30945856413999D-16 + 2 40 2 56 -0.29367943623405D+01 0.27283671363716D-16 + 3 40 2 56 -0.31255487756682D+01 0.55315527828742D-17 + 1 41 2 56 -0.12980637146701D+01 -0.16368096972554D-16 + 2 41 2 56 -0.32375816820263D+01 0.20220481548604D-16 + 3 41 2 56 0.32644467995036D+01 0.14255823955799D-17 + 1 42 2 56 0.14766123034724D+01 -0.14118509265259D-16 + 2 42 2 56 -0.32451830657095D+01 -0.63907481116749D-16 + 3 42 2 56 0.31360063028185D+01 0.43288450635905D-17 + 1 43 2 56 -0.79111691528172D+00 -0.13999288688141D-16 + 2 43 2 56 -0.19446621466388D+01 0.20409201670940D-15 + 3 43 2 56 -0.25874532646369D+01 0.22332493089005D-17 + 1 44 2 56 0.12057846732556D+00 0.18650510386618D-16 + 2 44 2 56 -0.21575497152441D+00 -0.10442494694903D-15 + 3 44 2 56 0.10055451728178D+00 0.47501533492044D-18 + 1 45 2 56 -0.52633044411425D-01 0.27371450693441D-16 + 2 45 2 56 -0.22821706536484D+00 -0.30746502756363D-15 + 3 45 2 56 -0.99437535727202D-01 -0.11064563443705D-17 + 1 46 2 56 -0.22985401946665D+00 0.41979506554902D-17 + 2 46 2 56 0.11250902439584D+00 -0.79009154882324D-16 + 3 46 2 56 0.14341331282464D+00 -0.45028135631693D-17 + 1 47 2 56 -0.34261208178816D+00 -0.24563664726928D-16 + 2 47 2 56 -0.31513249573963D+00 0.17160388694507D-15 + 3 47 2 56 -0.14284829732332D+00 0.86959929595424D-18 + 1 48 2 56 0.13867197110953D+02 -0.20117026606029D-16 + 2 48 2 56 -0.24532491806041D+02 0.24248543299455D-15 + 3 48 2 56 -0.12371596783117D+02 -0.14282744033615D-16 + 1 49 2 56 -0.39930320110790D+00 0.20732862211004D-16 + 2 49 2 56 0.18654111657419D+00 0.53745468758309D-16 + 3 49 2 56 -0.43699935314724D+00 -0.19275546661455D-16 + 1 50 2 56 0.69836127851068D+00 -0.30039221273980D-16 + 2 50 2 56 0.19692102717770D+01 -0.26247227022271D-15 + 3 50 2 56 0.87578480095377D+00 0.42288753330034D-17 + 1 51 2 56 0.31197724830339D+00 0.10720269863904D-16 + 2 51 2 56 -0.25326590528757D+00 -0.94579391810142D-16 + 3 51 2 56 -0.29558449714712D+00 -0.10564836655100D-16 + 1 52 2 56 0.21516708156432D+00 -0.12590164217604D-16 + 2 52 2 56 0.31305621381462D-01 -0.32562765195096D-15 + 3 52 2 56 0.30197170554671D+00 0.65547562736984D-16 + 1 53 2 56 0.28525463577358D+00 -0.20822425601795D-16 + 2 53 2 56 -0.79567018427530D+00 -0.56756638144208D-16 + 3 53 2 56 -0.49069469237906D+00 -0.39823188084266D-16 + 1 54 2 56 0.58941207799972D+00 0.31438800924898D-16 + 2 54 2 56 -0.34062346733943D+00 0.79716237939835D-16 + 3 54 2 56 -0.34781997433925D+00 0.28525127548037D-16 + 1 55 2 56 -0.10295060887453D+00 -0.70473846748439D-16 + 2 55 2 56 0.37092861818658D+00 -0.17350690366927D-15 + 3 55 2 56 -0.20826631690893D+00 -0.75523066554209D-16 + 1 56 2 56 0.28802566016956D+01 0.00000000000000D+00 + 2 56 2 56 0.12111955382287D+03 0.00000000000000D+00 + 3 56 2 56 0.11969682585267D+00 0.00000000000000D+00 + 1 57 2 56 0.42250900489267D-02 -0.48167164169112D-17 + 2 57 2 56 -0.25125029174602D+00 -0.13669784540066D-16 + 3 57 2 56 -0.34209735405514D-01 0.52486921522494D-17 + 1 58 2 56 -0.18069400296059D+00 0.23047010523306D-17 + 2 58 2 56 -0.62710495305077D+00 0.22305431551445D-16 + 3 58 2 56 -0.20439597042973D+00 0.11748093729295D-16 + 1 59 2 56 0.73096735208846D-01 -0.92573540911755D-18 + 2 59 2 56 -0.10723510414042D+00 0.18758476177106D-16 + 3 59 2 56 -0.51528606358534D-01 -0.57151277933034D-17 + 1 60 2 56 0.14226339989857D+00 -0.89956857506446D-17 + 2 60 2 56 -0.40548407098282D+00 -0.52121950052804D-17 + 3 60 2 56 -0.28769115120802D+00 -0.15726930294803D-18 + 1 61 2 56 -0.78044554531755D-02 -0.36074948307210D-17 + 2 61 2 56 0.14870128380568D+01 -0.74888483315969D-17 + 3 61 2 56 -0.73131832143502D-01 -0.27016594251078D-17 + 1 62 2 56 0.35798312713401D+00 0.50043202444306D-17 + 2 62 2 56 0.20435856490277D+00 0.19037423982932D-16 + 3 62 2 56 0.45036500072236D+00 0.62529497893708D-18 + 1 63 2 56 -0.52381069365458D-02 0.29072179598429D-19 + 2 63 2 56 -0.11789925547314D+00 -0.13385405294751D-17 + 3 63 2 56 -0.69431513153946D-02 -0.22692261452334D-17 + 1 64 2 56 0.15548126048250D+00 -0.16673130812051D-17 + 2 64 2 56 0.34079756875252D+00 -0.98047630212373D-17 + 3 64 2 56 0.64991636464351D+00 0.55414218393422D-16 + 1 65 2 56 -0.59872147645345D+01 -0.69171459284317D-17 + 2 65 2 56 -0.61191765798690D+01 0.12343274497750D-15 + 3 65 2 56 0.11989383012939D+01 0.45653302405250D-16 + 1 1 3 56 -0.12618695132517D+02 0.33426616755618D-17 + 2 1 3 56 0.14949212088362D+02 -0.36573644140472D-16 + 3 1 3 56 -0.25485998875877D+02 -0.26754611559484D-15 + 1 2 3 56 -0.61070928979986D+00 0.43228079591903D-16 + 2 2 3 56 0.71273818903614D+00 -0.22945762956702D-16 + 3 2 3 56 0.10055228481422D+01 0.13864927569399D-15 + 1 3 3 56 0.26522545003792D+00 0.22891435091296D-16 + 2 3 3 56 -0.16842214387473D+00 0.13979141001132D-16 + 3 3 3 56 0.12834338893618D+00 -0.12134866815142D-15 + 1 4 3 56 -0.57259088947737D+00 0.41973444559091D-16 + 2 4 3 56 0.56817747023680D+00 0.46001352176920D-17 + 3 4 3 56 -0.48945075687645D+00 0.68803989474511D-17 + 1 5 3 56 -0.12590578526662D+00 0.28490136247356D-16 + 2 5 3 56 0.12676911053746D+01 0.61531102379531D-17 + 3 5 3 56 -0.11150142372855D+01 -0.49126016960131D-16 + 1 6 3 56 -0.64346728371820D-01 -0.29130762265202D-16 + 2 6 3 56 0.50016541024873D+00 0.13641157832884D-16 + 3 6 3 56 -0.13525500815597D+00 0.31251336480371D-16 + 1 7 3 56 -0.53061614381882D+00 -0.23567733437265D-16 + 2 7 3 56 0.27618358262648D+00 0.31502310010125D-16 + 3 7 3 56 -0.86409040711022D+00 -0.13612909377335D-15 + 1 8 3 56 0.42196927431106D-02 0.11748446485641D-16 + 2 8 3 56 -0.48541681642134D-01 0.11190860165999D-16 + 3 8 3 56 0.32802942366761D+00 0.28835509457081D-16 + 1 9 3 56 -0.12482638357656D+01 -0.78875362730569D-17 + 2 9 3 56 -0.12067952504781D+01 -0.24487561280582D-16 + 3 9 3 56 0.28423411136097D+01 0.36939678830516D-16 + 1 10 3 56 -0.11771011529336D+00 -0.35860227864383D-16 + 2 10 3 56 -0.11438150796612D+00 -0.42659063939492D-16 + 3 10 3 56 0.17176138476523D-01 -0.88530895193167D-17 + 1 11 3 56 0.13211942367619D+01 0.12648590910018D-16 + 2 11 3 56 -0.13319450553958D+01 -0.52682515705028D-16 + 3 11 3 56 0.31311444326211D+01 -0.24249675830658D-16 + 1 12 3 56 0.56111524358575D-01 -0.36336951159530D-16 + 2 12 3 56 -0.23773955807572D+00 -0.26723007170470D-16 + 3 12 3 56 0.28004815274241D-01 -0.69329029961840D-16 + 1 13 3 56 -0.14264458797104D+01 0.16353857347362D-16 + 2 13 3 56 0.12061807511854D+01 0.92039965425685D-16 + 3 13 3 56 0.31732604423890D+01 0.11604681544872D-16 + 1 14 3 56 -0.88968340529825D-01 0.47477192952072D-16 + 2 14 3 56 0.53660734478787D-01 -0.34322600939060D-16 + 3 14 3 56 -0.74228177386461D-01 -0.73985080447590D-16 + 1 15 3 56 0.80742365490620D-01 0.22416375686468D-16 + 2 15 3 56 0.11189461027629D+00 0.33880414394196D-16 + 3 15 3 56 -0.42718762411060D-01 0.98580346332150D-16 + 1 16 3 56 0.17380976115390D+02 0.13153877715662D-16 + 2 16 3 56 0.18445644366106D+02 -0.55347428226493D-17 + 3 16 3 56 -0.27760819090572D+02 0.27051146628202D-15 + 1 17 3 56 0.23882867257476D+00 -0.55690298093549D-16 + 2 17 3 56 0.33313519872919D+00 0.42352228355363D-16 + 3 17 3 56 0.29163708009968D+00 -0.24199121068976D-15 + 1 18 3 56 -0.28753091410638D+00 -0.58017225116704D-16 + 2 18 3 56 0.15949537106223D+00 0.17483919016217D-16 + 3 18 3 56 0.19033349414046D+00 0.64843844272784D-16 + 1 19 3 56 0.33968534256652D+00 0.66555972337269D-16 + 2 19 3 56 0.14952538593819D+00 0.30171442959956D-17 + 3 19 3 56 -0.60975442156202D+00 0.88977845945593D-16 + 1 20 3 56 0.35996202666302D+00 0.29706163359109D-16 + 2 20 3 56 -0.25867275679240D+00 0.22093183465831D-16 + 3 20 3 56 0.18898539371496D+00 0.75322926701926D-16 + 1 21 3 56 0.32150151371740D+00 -0.24342067472785D-16 + 2 21 3 56 0.55610764499212D+00 -0.11070321106556D-16 + 3 21 3 56 -0.31887366055224D+00 0.41586746464315D-15 + 1 22 3 56 -0.28590715431927D+00 -0.41417228303077D-16 + 2 22 3 56 -0.17065758913518D+01 0.44101153485473D-17 + 3 22 3 56 0.12265406544990D+01 0.46803551455032D-16 + 1 23 3 56 0.17379472240560D+00 -0.43440496894442D-16 + 2 23 3 56 0.12118996449943D-01 -0.34768707706339D-16 + 3 23 3 56 0.16229330172929D+00 0.83827538134770D-18 + 1 24 3 56 -0.30637658912080D+01 0.28236490487263D-18 + 2 24 3 56 0.11316458786832D+01 -0.60999568335783D-17 + 3 24 3 56 -0.31543092489251D+01 0.10244304067416D-15 + 1 25 3 56 0.30400799938289D+01 -0.87399574662053D-18 + 2 25 3 56 0.14454054486640D+01 -0.16976471231496D-16 + 3 25 3 56 -0.29219202594768D+01 -0.15580338640048D-15 + 1 26 3 56 0.96293916460601D-01 -0.40824429299785D-17 + 2 26 3 56 0.10511726601206D+00 0.14604495732232D-16 + 3 26 3 56 -0.23563032171867D+00 0.31315425670661D-15 + 1 27 3 56 -0.10585392237338D+00 0.43633766601037D-17 + 2 27 3 56 0.45686340930217D-01 0.32093048799856D-16 + 3 27 3 56 -0.21107489075072D+00 0.67905548491201D-16 + 1 28 3 56 0.32191059477274D+01 0.13053621514024D-18 + 2 28 3 56 -0.13634437152049D+01 0.77554122108512D-17 + 3 28 3 56 -0.30730874511020D+01 0.15166379401135D-15 + 1 29 3 56 -0.26899078430667D+01 0.93038514141599D-18 + 2 29 3 56 -0.11485207674171D+01 0.20155635770682D-16 + 3 29 3 56 -0.30775016116619D+01 -0.15782355336788D-17 + 1 30 3 56 0.41272559615119D-01 -0.33223798040747D-17 + 2 30 3 56 -0.15534832070321D+00 -0.23675764399677D-16 + 3 30 3 56 0.81916361108250D-01 0.68815243711249D-16 + 1 31 3 56 0.13987575062728D+00 0.35016468443973D-18 + 2 31 3 56 0.46826809137953D-01 0.31298205668733D-16 + 3 31 3 56 -0.26127655378421D+00 -0.18668766674046D-15 + 1 32 3 56 -0.17151064833579D+02 -0.18858899732710D-16 + 2 32 3 56 -0.16509815584852D+02 0.47714433123222D-16 + 3 32 3 56 -0.25943254441570D+02 -0.54071685405975D-16 + 1 33 3 56 -0.35569019419800D+00 0.50864255055692D-16 + 2 33 3 56 -0.16366981488135D+00 0.11352629488464D-15 + 3 33 3 56 0.44715972523504D+00 -0.27114779053325D-15 + 1 34 3 56 0.42205070125685D+00 0.21124499232138D-16 + 2 34 3 56 -0.40212139172874D+00 0.18490065874623D-16 + 3 34 3 56 0.23490982432093D+00 0.12773218509072D-15 + 1 35 3 56 -0.49952396734700D+00 -0.16451554953830D-16 + 2 35 3 56 -0.49151781919568D+00 -0.33655037927781D-16 + 3 35 3 56 -0.55330131078287D+00 -0.93483987305220D-16 + 1 36 3 56 -0.20189496355113D+00 -0.26430011912827D-16 + 2 36 3 56 0.33929061429275D+00 -0.34280697336231D-16 + 3 36 3 56 0.33670670103111D+00 0.15879902498360D-15 + 1 37 3 56 -0.27401375196434D+00 0.40041143420920D-17 + 2 37 3 56 -0.76511502303096D-01 -0.27704139989602D-16 + 3 37 3 56 -0.62129055617946D+00 -0.11964382800753D-15 + 1 38 3 56 -0.59823138478369D+00 -0.79672686450210D-16 + 2 38 3 56 -0.69117859893014D+00 0.33624179245909D-16 + 3 38 3 56 -0.60193948425332D+00 -0.56230065916084D-16 + 1 39 3 56 -0.11555303207962D-01 -0.11353897583816D-16 + 2 39 3 56 -0.51697840507663D-01 0.72678268344038D-16 + 3 39 3 56 0.27493805249823D+00 0.17521024654033D-15 + 1 40 3 56 0.14950307013228D+01 0.33705731639627D-16 + 2 40 3 56 -0.31475754789696D+01 0.55315527828742D-17 + 3 40 3 56 -0.31906510664379D+01 -0.15823990549511D-15 + 1 41 3 56 0.12532163534032D+01 -0.15734783744953D-16 + 2 41 3 56 0.31874796976435D+01 0.14255823955799D-17 + 3 41 3 56 -0.31017691541785D+01 0.12993406487471D-15 + 1 42 3 56 -0.16287765163973D+01 0.37659220162142D-17 + 2 42 3 56 0.32987071675482D+01 0.43288450635905D-17 + 3 42 3 56 -0.32451830657095D+01 -0.13453776936170D-15 + 1 43 3 56 -0.22422150556930D+01 -0.23903306486225D-17 + 2 43 3 56 -0.37785239078169D+01 0.22332493089005D-17 + 3 43 3 56 -0.19446621466388D+01 -0.32468536933615D-16 + 1 44 3 56 0.14193478143410D+00 -0.74783773706617D-17 + 2 44 3 56 0.10413342879518D+00 0.47501533492044D-18 + 3 44 3 56 -0.19898996517371D+00 -0.22755900859582D-15 + 1 45 3 56 0.66047993622610D-01 0.18876725406505D-16 + 2 45 3 56 -0.14387887629046D+00 -0.11064563443705D-17 + 3 45 3 56 -0.26287299123699D+00 0.67858816298914D-16 + 1 46 3 56 -0.15638035851828D-01 0.11097361939338D-17 + 2 46 3 56 -0.51949986066785D+00 -0.45028135631693D-17 + 3 46 3 56 -0.31513249573964D+00 0.80713130284830D-16 + 1 47 3 56 0.10890786888940D+00 0.88398693829251D-17 + 2 47 3 56 0.51957007617258D+00 0.86959929595424D-18 + 3 47 3 56 0.11250902439584D+00 0.30866823310628D-15 + 1 48 3 56 0.14992323709904D+02 -0.23652241442712D-16 + 2 48 3 56 -0.12776995690578D+02 -0.14282744033615D-16 + 3 48 3 56 -0.25101178599709D+02 -0.25045825135354D-15 + 1 49 3 56 0.24324448070263D+00 -0.27790630543656D-16 + 2 49 3 56 -0.26491264012521D+00 -0.19275546661455D-16 + 3 49 3 56 0.62299032448476D+00 0.18212458913899D-16 + 1 50 3 56 -0.69344548756158D+00 0.30213347023978D-16 + 2 50 3 56 -0.15289918852252D+01 0.42288753330034D-17 + 3 50 3 56 -0.11782400519076D+01 0.35737256517048D-15 + 1 51 3 56 0.37756050303363D+00 -0.16071582217603D-16 + 2 51 3 56 -0.40158016642122D+00 -0.10564836655100D-16 + 3 51 3 56 -0.21332075910504D+00 -0.70863159523705D-17 + 1 52 3 56 -0.29825601567531D-02 -0.21663385308265D-16 + 2 52 3 56 0.18019124741021D+00 0.65547562736984D-16 + 3 52 3 56 0.10626880733348D+00 0.17039351453932D-15 + 1 53 3 56 0.63253059845949D+00 0.29258819848998D-16 + 2 53 3 56 -0.46177411275870D+00 -0.39823188084266D-16 + 3 53 3 56 -0.50206812739809D+00 0.44065190571441D-16 + 1 54 3 56 0.45615503776575D+00 -0.10627627919579D-16 + 2 54 3 56 -0.61830381521060D+00 0.28525127548037D-16 + 3 54 3 56 -0.93113972708093D+00 0.23756584675890D-16 + 1 55 3 56 0.24610974420285D+00 0.33109467100121D-16 + 2 55 3 56 -0.24018265599631D+00 -0.75523066554209D-16 + 3 55 3 56 0.53148809985973D+00 -0.42023935126982D-16 + 1 56 3 56 -0.68310894103161D+00 0.00000000000000D+00 + 2 56 3 56 0.11969682585267D+00 0.00000000000000D+00 + 3 56 3 56 0.12110065699664D+03 0.00000000000000D+00 + 1 57 3 56 0.38138444980193D-01 -0.18857488921598D-17 + 2 57 3 56 0.88364560270813D-01 0.52486921522494D-17 + 3 57 3 56 -0.40246564189427D+00 -0.50490132488395D-17 + 1 58 3 56 0.30991150850772D+00 0.52750437884576D-18 + 2 58 3 56 -0.20439597042973D+00 0.11748093729295D-16 + 3 58 3 56 -0.16738313558674D+00 0.25743112888054D-17 + 1 59 3 56 0.60412417775755D-01 -0.53656396734104D-17 + 2 59 3 56 -0.25756283878901D-01 -0.57151277933034D-17 + 3 59 3 56 -0.18124573639915D+00 -0.72647694473033D-17 + 1 60 3 56 -0.45780525994136D+00 0.61810253280393D-17 + 2 60 3 56 0.28769115120802D+00 -0.15726930294803D-18 + 3 60 3 56 -0.12788006633507D+00 0.26186947972526D-19 + 1 61 3 56 -0.61681663058380D-03 0.18976853523659D-17 + 2 61 3 56 0.10534837771692D+00 -0.27016594251078D-17 + 3 61 3 56 -0.12417076851963D+00 0.42395719174473D-18 + 1 62 3 56 -0.61638313884036D+00 0.90221374772386D-17 + 2 62 3 56 -0.45036500072236D+00 0.62529497893708D-18 + 3 62 3 56 0.12036259698951D+01 0.15997919673972D-17 + 1 63 3 56 -0.55066654507333D-02 0.27359964646375D-18 + 2 63 3 56 -0.36608589249551D-01 -0.22692261452334D-17 + 3 63 3 56 -0.12424139542536D+00 0.39564280146549D-17 + 1 64 3 56 0.25613440692052D+00 -0.46023310344046D-16 + 2 64 3 56 -0.26027499431462D+00 0.55414218393422D-16 + 3 64 3 56 -0.50075250552094D+00 0.10283302760516D-15 + 1 65 3 56 0.11024226193011D+01 -0.65190676768847D-16 + 2 65 3 56 0.65632748910257D+00 0.45653302405250D-16 + 3 65 3 56 0.12473213394782D+01 -0.51372887208017D-17 + 1 1 1 57 0.20291562690677D+00 0.85586201591802D-16 + 2 1 1 57 -0.34208337300894D+00 0.34617174078570D-16 + 3 1 1 57 -0.26756134160942D+00 -0.81591896457434D-16 + 1 2 1 57 -0.27140407075915D+02 -0.16976274393288D-15 + 2 2 1 57 0.14657072719820D+02 0.24323474701182D-16 + 3 2 1 57 -0.14117436603271D+02 0.45478801895845D-16 + 1 3 1 57 -0.77717561802624D+00 -0.30595774323783D-15 + 2 3 1 57 0.51547249503314D+00 0.19394841065550D-17 + 3 3 1 57 -0.59936482346721D+00 -0.83665850989725D-17 + 1 4 1 57 0.19346724068186D+00 -0.10457378492731D-15 + 2 4 1 57 0.29583507294684D+00 0.98422044401917D-17 + 3 4 1 57 0.33125308076839D+00 -0.24005133223077D-18 + 1 5 1 57 -0.69224099805293D-01 -0.48725316469824D-16 + 2 5 1 57 0.49185051631149D+00 -0.51505278261900D-17 + 3 5 1 57 -0.28641075667356D+00 -0.30497531491390D-18 + 1 6 1 57 0.47011509603787D+00 -0.79585100383904D-16 + 2 6 1 57 0.31572160078402D+00 -0.30168070328774D-17 + 3 6 1 57 -0.24689778800013D+00 0.54894793964882D-17 + 1 7 1 57 0.25748660815604D+00 -0.44179317228048D-16 + 2 7 1 57 0.44235881324086D-02 -0.12972363438215D-16 + 3 7 1 57 -0.16149580206861D-01 -0.24590042640425D-17 + 1 8 1 57 -0.42574411112177D+00 0.39692847459308D-15 + 2 8 1 57 0.48878863251807D+00 0.42147101286246D-16 + 3 8 1 57 -0.49371812521040D+00 0.13274865890778D-16 + 1 9 1 57 -0.26513434349829D+00 -0.12004585210381D-15 + 2 9 1 57 0.88364808457841D-01 0.40365919162987D-17 + 3 9 1 57 0.10882249164783D+00 0.48386833505338D-16 + 1 10 1 57 -0.30750329147910D+01 -0.21728178436236D-15 + 2 10 1 57 -0.31522845379931D+01 0.15573134084326D-17 + 3 10 1 57 0.12418553858657D+01 0.66078882331889D-16 + 1 11 1 57 -0.21575864670251D+00 0.70162910967977D-16 + 2 11 1 57 -0.85136664112453D-01 0.26875970941961D-18 + 3 11 1 57 -0.10667108461057D+00 -0.50729294359574D-16 + 1 12 1 57 -0.30647115086679D+01 -0.20456335776554D-15 + 2 12 1 57 0.30596651663490D+01 -0.10700903690437D-17 + 3 12 1 57 -0.13761677586902D+01 -0.95266399055376D-16 + 1 13 1 57 -0.23316055675786D+00 -0.49189040004323D-16 + 2 13 1 57 -0.95524459798810D-01 -0.87937034848835D-19 + 3 13 1 57 0.12734062973724D+00 -0.69621209460457D-16 + 1 14 1 57 -0.30813310039781D+01 -0.22751156886700D-15 + 2 14 1 57 0.31991757639689D+01 -0.93577870770120D-18 + 3 14 1 57 0.13673988736778D+01 -0.24091106978377D-16 + 1 15 1 57 -0.30574761769625D+01 -0.25576070882195D-15 + 2 15 1 57 -0.32811025291623D+01 -0.13664579346900D-17 + 3 15 1 57 -0.13103510648214D+01 0.37998080367419D-16 + 1 16 1 57 0.22931480882146D+00 0.11852337998800D-15 + 2 16 1 57 0.35239402038778D+00 -0.53581132677846D-17 + 3 16 1 57 0.29022933731613D+00 -0.86599308904574D-17 + 1 17 1 57 -0.26326713723825D+02 0.71239839239798D-16 + 2 17 1 57 -0.14678196712313D+02 0.92536057389586D-17 + 3 17 1 57 0.14477059088582D+02 0.35115463169657D-16 + 1 18 1 57 -0.78592107040989D+00 -0.38171481806412D-16 + 2 18 1 57 -0.46029301411802D+00 0.10087554455212D-16 + 3 18 1 57 0.47089004501017D+00 -0.88958754989260D-16 + 1 19 1 57 0.18966302382550D+00 0.25176141760017D-16 + 2 19 1 57 -0.27707858760759D+00 -0.15350896883978D-16 + 3 19 1 57 -0.35138773653670D+00 -0.22364778190726D-16 + 1 20 1 57 -0.31512814179122D+00 0.15830644353592D-15 + 2 20 1 57 -0.45552372354200D+00 0.12811031742339D-16 + 3 20 1 57 0.44224998145374D+00 0.88470279795713D-17 + 1 21 1 57 0.39734956014696D+00 0.40709336572931D-16 + 2 21 1 57 -0.27710318582960D+00 -0.76893542124305D-17 + 3 21 1 57 0.22867874047309D+00 -0.48409287161152D-16 + 1 22 1 57 0.19309537375821D+00 -0.28274153132706D-16 + 2 22 1 57 -0.79971555683543D-02 -0.37157486724470D-17 + 3 22 1 57 0.28826890102680D-01 0.67439190948356D-16 + 1 23 1 57 -0.44551561571321D+00 0.14329134698551D-15 + 2 23 1 57 -0.52775938851812D+00 0.53264087508027D-16 + 3 23 1 57 0.46486050728527D+00 0.16545250813840D-16 + 1 24 1 57 -0.30469835809634D+01 -0.18110326537818D-15 + 2 24 1 57 -0.13679500992356D+01 0.54536727241231D-17 + 3 24 1 57 0.31599033686937D+01 0.12437094781652D-17 + 1 25 1 57 -0.30434692768448D+01 0.24349686204432D-15 + 2 25 1 57 0.12394348388543D+01 0.16547819093787D-16 + 3 25 1 57 -0.31716179054068D+01 -0.96629811348787D-18 + 1 26 1 57 -0.22263137836702D+00 -0.37840259190579D-16 + 2 26 1 57 -0.85795956644177D-01 -0.47326297826985D-16 + 3 26 1 57 -0.10249546607287D+00 0.84091811008861D-18 + 1 27 1 57 -0.25031735777227D+00 0.12412666226300D-15 + 2 27 1 57 0.11878037928652D+00 0.79156018960005D-16 + 3 27 1 57 0.88994994054172D-01 0.14378541894994D-17 + 1 28 1 57 -0.31707252962002D+01 -0.85946607026461D-16 + 2 28 1 57 -0.12864439244776D+01 0.26601433289908D-16 + 3 28 1 57 -0.31016132636269D+01 -0.21165779133078D-17 + 1 29 1 57 -0.30043583412530D+01 0.21092009463291D-15 + 2 29 1 57 0.12210961823145D+01 -0.25881326960369D-16 + 3 29 1 57 0.31155961361121D+01 0.81249320272547D-18 + 1 30 1 57 -0.22652366868190D+00 -0.24598296361061D-15 + 2 30 1 57 -0.73751630300904D-01 0.67109600120123D-16 + 3 30 1 57 0.93447115162303D-01 0.36238257676112D-17 + 1 31 1 57 -0.23944541779591D+00 -0.29755566052620D-15 + 2 31 1 57 0.12681713296579D+00 -0.34819153434898D-16 + 3 31 1 57 -0.81668301919144D-01 0.10201856093559D-17 + 1 32 1 57 0.57174427519667D-01 -0.20239641125552D-16 + 2 32 1 57 0.41327057253000D-01 0.37950160918347D-16 + 3 32 1 57 0.33794676895591D-01 -0.29916050437182D-16 + 1 33 1 57 -0.25336542636213D+02 -0.31553371981798D-15 + 2 33 1 57 -0.13879011340542D+02 0.27259133708660D-16 + 3 33 1 57 -0.13677385535158D+02 0.17291353612228D-16 + 1 34 1 57 -0.75060432465814D+00 0.70084061266299D-16 + 2 34 1 57 -0.49830994239345D+00 -0.27390804315048D-16 + 3 34 1 57 -0.48409400010692D+00 -0.23083178402947D-16 + 1 35 1 57 0.18950469390944D+00 -0.17621156983716D-15 + 2 35 1 57 -0.28250092722397D+00 0.18072653210471D-16 + 3 35 1 57 0.32566797249812D+00 0.45678720472438D-17 + 1 36 1 57 -0.46736184534094D+00 0.93019266921929D-17 + 2 36 1 57 -0.42315601101540D+00 -0.58160320584970D-17 + 3 36 1 57 -0.55398192425771D+00 0.83246160620899D-16 + 1 37 1 57 0.36923994026917D+00 0.13874112636180D-15 + 2 37 1 57 -0.20300347704440D+00 0.45743352895337D-16 + 3 37 1 57 -0.29686620036029D+00 -0.20135296739046D-16 + 1 38 1 57 0.27664613061127D+00 0.12898713658025D-15 + 2 38 1 57 -0.84150502029033D-02 0.31459028346076D-16 + 3 38 1 57 0.20626483504755D-02 0.14868329154890D-16 + 1 39 1 57 -0.37009599433221D+00 -0.98143996571614D-16 + 2 39 1 57 -0.45192755122545D+00 0.44608746282609D-17 + 3 39 1 57 -0.46559347373896D+00 -0.29997493645723D-16 + 1 40 1 57 0.30499504829966D+01 -0.22938988823271D-16 + 2 40 1 57 0.13075662148973D+01 0.27857459165168D-16 + 3 40 1 57 -0.12884369863742D+01 0.58754854409016D-17 + 1 41 1 57 0.31556423151157D+01 0.92125952799169D-16 + 2 41 1 57 -0.12502012486378D+01 0.21045576566583D-16 + 3 41 1 57 -0.12789171090115D+01 0.38790189634594D-17 + 1 42 1 57 0.30753321824938D+01 -0.49103469277621D-15 + 2 42 1 57 0.14950307013228D+01 0.26409477423322D-16 + 3 42 1 57 0.15222885050610D+01 -0.13753293855127D-16 + 1 43 1 57 0.31882659330409D+01 -0.66324893057565D-16 + 2 43 1 57 -0.12532163534032D+01 -0.20423745046502D-16 + 3 43 1 57 0.12980637146701D+01 0.24971617246410D-16 + 1 44 1 57 -0.20122628419791D-01 0.15018694211754D-16 + 2 44 1 57 0.95229223935946D-01 -0.34812270722495D-17 + 3 44 1 57 -0.10515103233070D+00 -0.12137392362215D-16 + 1 45 1 57 -0.19982934461854D-01 0.22650821764148D-15 + 2 45 1 57 -0.11656811585862D+00 0.32477892396414D-16 + 3 45 1 57 -0.13299472840209D+00 -0.22839865335159D-16 + 1 46 1 57 -0.23349397939481D-02 0.16681125436753D-15 + 2 46 1 57 0.66047993622603D-01 -0.15286634476352D-16 + 3 46 1 57 0.52633044411417D-01 -0.91833391412550D-17 + 1 47 1 57 -0.20198582307324D-01 -0.33080671187465D-16 + 2 47 1 57 -0.14193478143411D+00 0.73889621236525D-17 + 3 47 1 57 0.12057846732557D+00 0.20831465664637D-16 + 1 48 1 57 0.15328911515378D+00 -0.69102660858074D-16 + 2 48 1 57 -0.26505761927302D+00 -0.12946040742943D-17 + 3 48 1 57 0.22564467784923D+00 0.21010296335359D-16 + 1 49 1 57 -0.25794221122147D+02 -0.14737960526685D-15 + 2 49 1 57 0.13738598552669D+02 -0.19629122283857D-16 + 3 49 1 57 0.13679113574287D+02 0.11959923425882D-16 + 1 50 1 57 -0.77015767769167D+00 0.17626237402126D-15 + 2 50 1 57 0.45010459969444D+00 0.97406398281501D-17 + 3 50 1 57 0.52080259707712D+00 0.24299298176360D-16 + 1 51 1 57 0.17633524868552D+00 0.92057272568365D-16 + 2 51 1 57 0.19985889980305D+00 -0.10968578867607D-16 + 3 51 1 57 -0.31821622388506D+00 0.59934367946994D-17 + 1 52 1 57 -0.45333922621258D+00 -0.12836943771896D-16 + 2 52 1 57 0.45618244863945D+00 -0.41759372165573D-16 + 3 52 1 57 0.50891363746347D+00 0.27629082223787D-16 + 1 53 1 57 0.52464302253745D+00 -0.16120346113231D-15 + 2 53 1 57 0.32135967168937D+00 0.25630438396031D-17 + 3 53 1 57 0.34486761325059D+00 -0.29788416195458D-16 + 1 54 1 57 0.24369046204170D+00 0.50576990507068D-16 + 2 54 1 57 0.67656636498694D-02 0.12828605102094D-16 + 3 54 1 57 0.45448141448589D-01 -0.82425560893144D-17 + 1 55 1 57 -0.49304833638927D+00 0.50460821685047D-16 + 2 55 1 57 0.50130163375714D+00 0.43096660061904D-17 + 3 55 1 57 0.36482159917444D+00 0.12198352182552D-16 + 1 56 1 57 -0.19374587556378D+00 -0.10918339986225D-16 + 2 56 1 57 0.42250900489267D-02 0.48167164169112D-17 + 3 56 1 57 0.38138444980193D-01 0.18857488921598D-17 + 1 57 1 57 0.12000135680810D+03 0.00000000000000D+00 + 2 57 1 57 0.12319061319911D+00 0.00000000000000D+00 + 3 57 1 57 -0.65807813668288D+00 0.00000000000000D+00 + 1 58 1 57 0.16147086050100D+01 0.40447401750058D-17 + 2 58 1 57 -0.73096735208846D-01 0.21570992601407D-17 + 3 58 1 57 -0.60412417775755D-01 -0.83686141514948D-17 + 1 59 1 57 -0.23882617083894D+00 0.32834195786899D-18 + 2 59 1 57 -0.15564013824402D-02 0.00000000000000D+00 + 3 59 1 57 0.10301842422670D-01 -0.11439216266803D-18 + 1 60 1 57 -0.19511828925900D+00 -0.19056800334117D-17 + 2 60 1 57 0.78044554531757D-02 0.22906374750714D-17 + 3 60 1 57 -0.61681663058341D-03 0.13479914339699D-17 + 1 61 1 57 -0.42441281637999D+00 0.62506665112336D-18 + 2 61 1 57 -0.27334226525660D-02 0.14141097100604D-17 + 3 61 1 57 -0.15132030000379D-02 -0.10135004438067D-17 + 1 62 1 57 -0.12166211096925D+00 -0.76182132763654D-17 + 2 62 1 57 -0.52381069365457D-02 0.55903493837424D-19 + 3 62 1 57 0.55066654507337D-02 -0.21176453198274D-17 + 1 63 1 57 -0.14155133170060D+00 0.44997876446328D-17 + 2 63 1 57 0.15033632328304D-01 0.14203056367781D-17 + 3 63 1 57 0.23946093418141D-01 0.11737294709941D-17 + 1 64 1 57 -0.97987867871905D-02 -0.13355527016696D-15 + 2 64 1 57 -0.90537315177939D-02 0.13170397387728D-16 + 3 64 1 57 -0.60810909845794D-01 0.21781888195370D-16 + 1 65 1 57 -0.18114310583075D+00 -0.93436756098238D-16 + 2 65 1 57 0.31293946107064D+00 -0.39302317992796D-17 + 3 65 1 57 -0.14635713762281D+00 -0.12222350174792D-16 + 1 1 2 57 -0.32023862973356D+00 0.34617174078570D-16 + 2 1 2 57 0.23777045636008D+00 -0.63868472251086D-16 + 3 1 2 57 0.26183416531372D+00 0.20100822180259D-16 + 1 2 2 57 0.14840802524424D+02 0.24323474701182D-16 + 2 2 2 57 -0.25763641485448D+02 -0.16100440680465D-15 + 3 2 2 57 0.13709035226119D+02 0.29116399827176D-16 + 1 3 2 57 0.44805328709032D+00 0.19394841065550D-17 + 2 3 2 57 -0.51190641997774D+00 0.80890186378846D-16 + 3 3 2 57 0.61055482526110D+00 -0.36658816433661D-16 + 1 4 2 57 0.26040622557040D+00 0.98422044401917D-17 + 2 4 2 57 0.45098802112200D+00 0.17460320901289D-16 + 3 4 2 57 0.27558435795446D+00 -0.14526108865171D-16 + 1 5 2 57 0.34082333285975D+00 -0.51505278261900D-17 + 2 5 2 57 -0.81185336706516D+00 -0.91174398895759D-16 + 3 5 2 57 0.60352768827599D+00 0.82185298755917D-17 + 1 6 2 57 0.32358218209426D+00 -0.30168070328774D-17 + 2 6 2 57 0.24708348230195D+00 -0.18162656146672D-15 + 3 6 2 57 -0.30091129439677D+00 0.12743985353734D-16 + 1 7 2 57 0.22643509870744D-01 -0.12972363438215D-16 + 2 7 2 57 0.26805640929540D+00 -0.15962089410600D-15 + 3 7 2 57 0.27822975149859D-01 -0.28525779711080D-16 + 1 8 2 57 0.46661777973952D+00 0.42147101286246D-16 + 2 8 2 57 -0.37201695309456D+00 -0.21002020816498D-15 + 3 8 2 57 0.46213141658107D+00 0.28391093561541D-16 + 1 9 2 57 0.65195109669494D-01 0.40365919162987D-17 + 2 9 2 57 -0.25204749713280D+00 0.94873864558969D-16 + 3 9 2 57 0.13376023552567D+00 -0.17179644584599D-16 + 1 10 2 57 -0.31880379749958D+01 0.15573134084326D-17 + 2 10 2 57 -0.31010690740300D+01 -0.15364256338448D-15 + 3 10 2 57 0.12833129941631D+01 0.51238953010642D-16 + 1 11 2 57 -0.11601899127568D+00 0.26875970941961D-18 + 2 11 2 57 -0.25453576973771D+00 0.11501191605976D-15 + 3 11 2 57 0.99859390646110D-01 0.30033273522395D-16 + 1 12 2 57 0.31071750059116D+01 -0.10700903690437D-17 + 2 12 2 57 -0.30652285689547D+01 -0.26316835784095D-15 + 3 12 2 57 0.12023475815095D+01 0.11211563082096D-16 + 1 13 2 57 -0.10856887234079D+00 -0.87937034848835D-19 + 2 13 2 57 -0.22820182169767D+00 -0.11605257931781D-15 + 3 13 2 57 -0.69079466598022D-01 -0.20326879745591D-16 + 1 14 2 57 0.32039522267035D+01 -0.93577870770120D-18 + 2 14 2 57 -0.31136975303414D+01 -0.27833958208423D-15 + 3 14 2 57 -0.12511127867583D+01 -0.83814397456715D-17 + 1 15 2 57 -0.31534604980328D+01 -0.13664579346900D-17 + 2 15 2 57 -0.31111385464382D+01 0.85167217737291D-16 + 3 15 2 57 -0.13775885799320D+01 -0.89445982454398D-17 + 1 16 2 57 0.35660563057979D+00 -0.53581132677846D-17 + 2 16 2 57 0.19045136784063D+00 -0.11806395032183D-15 + 3 16 2 57 0.21799906534148D+00 -0.13056417643669D-16 + 1 17 2 57 -0.14705333028176D+02 0.92536057389586D-17 + 2 17 2 57 -0.26673406555051D+02 -0.57778640507804D-16 + 3 17 2 57 0.14444249625280D+02 0.32407974273671D-16 + 1 18 2 57 -0.47064181745670D+00 0.10087554455212D-16 + 2 18 2 57 -0.34766337276457D+00 -0.58518750117145D-16 + 3 18 2 57 0.42846589831313D+00 -0.30284700499177D-17 + 1 19 2 57 -0.23380228617191D+00 -0.15350896883978D-16 + 2 19 2 57 0.58598536914088D+00 -0.69348865292912D-16 + 3 19 2 57 0.37492435584405D+00 0.19356780105825D-16 + 1 20 2 57 -0.48369823738220D+00 0.12811031742339D-16 + 2 20 2 57 -0.78338733454981D+00 -0.11224482812011D-15 + 3 20 2 57 0.45833681568794D+00 -0.16347841504846D-17 + 1 21 2 57 -0.24735014074084D+00 -0.76893542124305D-17 + 2 21 2 57 0.18807102073723D+00 0.78998418741368D-17 + 3 21 2 57 -0.30778667023404D+00 0.59756518477078D-17 + 1 22 2 57 -0.29121581310743D-01 -0.37157486724470D-17 + 2 22 2 57 0.24478245845664D+00 0.16766207147288D-15 + 3 22 2 57 -0.50694550586705D-01 0.27267097562836D-16 + 1 23 2 57 -0.52437964590649D+00 0.53264087508027D-16 + 2 23 2 57 -0.44967235785732D+00 -0.61667581136488D-16 + 3 23 2 57 0.43513197182491D+00 -0.24850674031483D-16 + 1 24 2 57 0.12503487019539D+01 0.54536727241231D-17 + 2 24 2 57 0.30996653802460D+01 -0.19036279670115D-16 + 3 24 2 57 -0.12746428311669D+01 -0.19531504191293D-16 + 1 25 2 57 -0.13270267936535D+01 0.16547819093787D-16 + 2 25 2 57 0.30332084301199D+01 0.76730824114447D-16 + 3 25 2 57 -0.12419318315307D+01 -0.68116695367911D-17 + 1 26 2 57 0.12077597060909D+00 -0.47326297826985D-16 + 2 26 2 57 -0.18398839271208D-01 -0.58473541473031D-17 + 3 26 2 57 -0.12548940319258D+00 -0.22882058062882D-17 + 1 27 2 57 -0.98105471988989D-01 0.79156018960005D-16 + 2 27 2 57 -0.40209081495173D-01 0.15855496119026D-15 + 3 27 2 57 -0.99268420215568D-01 -0.10295821892331D-16 + 1 28 2 57 0.12344925828659D+01 0.26601433289908D-16 + 2 28 2 57 0.30446783493883D+01 0.83916466628603D-16 + 3 28 2 57 0.11343705741543D+01 -0.25147136661995D-16 + 1 29 2 57 -0.13652157069082D+01 -0.25881326960369D-16 + 2 29 2 57 0.30610124002741D+01 0.32092524048873D-16 + 3 29 2 57 0.14276448489624D+01 -0.31829218960576D-16 + 1 30 2 57 0.10238686586998D+00 0.67109600120123D-16 + 2 30 2 57 -0.52495826598262D-01 -0.14866799100037D-15 + 3 30 2 57 0.12466780722943D+00 0.14390589625938D-16 + 1 31 2 57 -0.80210145194049D-01 -0.34819153434898D-16 + 2 31 2 57 -0.17411223374563D-01 0.20707167774846D-16 + 3 31 2 57 0.73875759257912D-01 -0.24307756806079D-16 + 1 32 2 57 0.55427107238890D-02 0.37950160918347D-16 + 2 32 2 57 0.17804663887289D+00 -0.56719251709999D-16 + 3 32 2 57 -0.28225134787878D+00 -0.14303620307443D-16 + 1 33 2 57 -0.13816776238180D+02 0.27259133708660D-16 + 2 33 2 57 -0.26062789866101D+02 -0.11252322208737D-16 + 3 33 2 57 -0.13994635157626D+02 0.23896822806535D-16 + 1 34 2 57 -0.43144431608079D+00 -0.27390804315048D-16 + 2 34 2 57 -0.36088245076100D+00 0.17010438274963D-15 + 3 34 2 57 -0.41751349235391D+00 -0.32476417754016D-16 + 1 35 2 57 -0.31472751484529D+00 0.18072653210471D-16 + 2 35 2 57 0.49246290484204D+00 -0.24419036601364D-15 + 3 35 2 57 -0.30305418033182D+00 0.23290033773773D-16 + 1 36 2 57 -0.45135257442485D+00 -0.58160320584970D-17 + 2 36 2 57 -0.76046130464859D+00 0.23394924859023D-15 + 3 36 2 57 -0.46496587470431D+00 0.20735359494693D-16 + 1 37 2 57 -0.26653682768796D+00 0.45743352895337D-16 + 2 37 2 57 0.15727104241103D+00 -0.22321710513089D-15 + 3 37 2 57 0.32225879136919D+00 0.30959943122274D-16 + 1 38 2 57 -0.26176467133669D-02 0.31459028346076D-16 + 2 38 2 57 0.29520040261450D+00 -0.60897342202038D-16 + 3 38 2 57 -0.54559282343329D-01 -0.29169131130575D-16 + 1 39 2 57 -0.47002277043586D+00 0.44608746282609D-17 + 2 39 2 57 -0.37052391080199D+00 -0.19788121749455D-16 + 3 39 2 57 -0.46924060623007D+00 0.17066858479762D-16 + 1 40 2 57 -0.12884369863742D+01 0.27857459165168D-16 + 2 40 2 57 -0.31342894738195D+01 -0.18126410869323D-15 + 3 40 2 57 0.32259684776565D+01 0.17068008542244D-18 + 1 41 2 57 0.12789171090115D+01 0.21045576566583D-16 + 2 41 2 57 -0.29961780079478D+01 0.24792192816495D-15 + 3 41 2 57 -0.30830550896705D+01 0.20210102034181D-18 + 1 42 2 57 -0.10982907017704D+01 0.26409477423322D-16 + 2 42 2 57 -0.31906510664380D+01 -0.16053371133603D-15 + 3 42 2 57 -0.31255487756682D+01 -0.47597028400346D-18 + 1 43 2 57 0.13686463220820D+01 -0.20423745046502D-16 + 2 43 2 57 -0.31017691541785D+01 -0.19738703976656D-15 + 3 43 2 57 0.32644467995037D+01 0.80369733738897D-18 + 1 44 2 57 -0.13299472840209D+00 -0.34812270722495D-17 + 2 44 2 57 -0.22774994674945D+00 0.60770390615088D-16 + 3 44 2 57 -0.10631103492100D+00 -0.96297059896919D-18 + 1 45 2 57 0.10515103233070D+00 0.32477892396414D-16 + 2 45 2 57 -0.22848785946546D+00 0.34424044984943D-16 + 3 45 2 57 0.10643754625190D+00 0.18098333023408D-17 + 1 46 2 57 -0.77343943757405D-01 -0.15286634476352D-16 + 2 46 2 57 -0.26287299123699D+00 0.11562578012156D-15 + 3 46 2 57 0.99437535727201D-01 0.40317384835007D-18 + 1 47 2 57 0.16133490743933D-01 0.73889621236525D-17 + 2 47 2 57 -0.19898996517371D+00 -0.11549359094221D-15 + 3 47 2 57 -0.10055451728177D+00 -0.28996766047464D-17 + 1 48 2 57 -0.31389755507366D+00 -0.12946040742943D-17 + 2 48 2 57 0.17637186941306D+00 -0.15302164112023D-15 + 3 48 2 57 -0.30191942014921D+00 0.84188928460218D-16 + 1 49 2 57 0.13654215728241D+02 -0.19629122283857D-16 + 2 49 2 57 -0.25755365692805D+02 0.17819165877724D-15 + 3 49 2 57 -0.13932091528740D+02 -0.58040872594432D-17 + 1 50 2 57 0.42673169159091D+00 0.97406398281501D-17 + 2 50 2 57 -0.45982337843817D+00 -0.19027122923604D-16 + 3 50 2 57 -0.41374287618090D+00 -0.37386051400882D-19 + 1 51 2 57 0.29923597616248D+00 -0.10968578867607D-16 + 2 51 2 57 0.42551965214466D+00 0.58757549784158D-15 + 3 51 2 57 -0.28016256143628D+00 -0.30343684183770D-16 + 1 52 2 57 0.51501859925011D+00 -0.41759372165573D-16 + 2 52 2 57 -0.80735361833170D+00 0.30533875996375D-16 + 3 52 2 57 -0.48027594224421D+00 0.36315771428870D-16 + 1 53 2 57 0.32051276862331D+00 0.25630438396031D-17 + 2 53 2 57 0.17794304813894D+00 -0.59584828684533D-16 + 3 53 2 57 0.32860218100949D+00 0.16115828179741D-16 + 1 54 2 57 0.22552624962986D-01 0.12828605102094D-16 + 2 54 2 57 0.29116309027544D+00 0.23790754186026D-15 + 3 54 2 57 -0.28309789651077D-02 0.77229715134001D-17 + 1 55 2 57 0.43710435220490D+00 0.43096660061904D-17 + 2 55 2 57 -0.37587517196716D+00 -0.24815363556967D-16 + 3 55 2 57 -0.46614700581314D+00 -0.98877459616723D-17 + 1 56 2 57 -0.28052321328861D-01 0.48167164169112D-17 + 2 56 2 57 -0.25125029174602D+00 0.13669784540066D-16 + 3 56 2 57 0.88364560270813D-01 -0.52486921522494D-17 + 1 57 2 57 0.12319061319911D+00 0.00000000000000D+00 + 2 57 2 57 0.11996040263773D+03 0.00000000000000D+00 + 3 57 2 57 -0.81338717684546D+00 0.00000000000000D+00 + 1 58 2 57 -0.25656366926326D-01 0.21570992601407D-17 + 2 58 2 57 -0.10723510414041D+00 0.21402181080475D-16 + 3 58 2 57 -0.25756283878901D-01 0.11994783524325D-17 + 1 59 2 57 0.15564013824402D-02 0.00000000000000D+00 + 2 59 2 57 -0.40132057144187D+00 -0.87045598562297D-18 + 3 59 2 57 -0.21764363757139D-01 0.33967251557791D-18 + 1 60 2 57 0.13360427838615D+00 0.22906374750714D-17 + 2 60 2 57 0.14870128380568D+01 -0.50734355814965D-17 + 3 60 2 57 -0.10534837771692D+00 -0.17949455385481D-18 + 1 61 2 57 0.27334226525659D-02 0.14141097100604D-17 + 2 61 2 57 -0.21965773484532D+00 0.11656608487324D-17 + 3 61 2 57 -0.24459884158659D-03 -0.18643090743182D-19 + 1 62 2 57 0.12354351356588D-01 0.55903493837424D-19 + 2 62 2 57 -0.11789925547314D+00 0.67889549214413D-17 + 3 62 2 57 0.36608589249550D-01 -0.12389114506395D-17 + 1 63 2 57 0.15033632328304D-01 0.14203056367781D-17 + 2 63 2 57 -0.17315680606386D+00 0.32481412201882D-18 + 3 63 2 57 -0.70666205511097D-02 0.00000000000000D+00 + 1 64 2 57 -0.18950573049643D-01 0.13170397387728D-16 + 2 64 2 57 -0.63414165802430D-01 -0.27997890294856D-15 + 3 64 2 57 0.17597811415123D-01 -0.37503429687729D-16 + 1 65 2 57 0.28203786703247D+00 -0.39302317992796D-17 + 2 65 2 57 0.24110516291536D-01 0.22584383181886D-15 + 3 65 2 57 0.12066294572834D+00 0.78054915257410D-17 + 1 1 3 57 -0.26767530867153D+00 -0.81591896457434D-16 + 2 1 3 57 0.29554103937407D+00 0.20100822180259D-16 + 3 1 3 57 0.42850323800122D+00 -0.20668137120028D-15 + 1 2 3 57 -0.14248162262728D+02 0.45478801895845D-16 + 2 2 3 57 0.13670665622604D+02 0.29116399827176D-16 + 3 2 3 57 -0.25536535365739D+02 -0.33142632874476D-15 + 1 3 3 57 -0.48194379625108D+00 -0.83665850989725D-17 + 2 3 3 57 0.59930329214814D+00 -0.36658816433661D-16 + 3 3 3 57 -0.50047434236650D+00 -0.17636906868948D-15 + 1 4 3 57 0.32903125202354D+00 -0.24005133223077D-18 + 2 4 3 57 0.29820000814504D+00 -0.14526108865171D-16 + 3 4 3 57 0.17902564882348D+00 -0.33630269866405D-16 + 1 5 3 57 -0.25116868051170D+00 -0.30497531491390D-18 + 2 5 3 57 0.39151104755289D+00 0.82185298755917D-17 + 3 5 3 57 -0.27726425993111D+00 0.21118825283754D-15 + 1 6 3 57 -0.24424858336585D+00 0.54894793964882D-17 + 2 6 3 57 -0.30265282018593D+00 0.12743985353734D-16 + 3 6 3 57 0.18184668037693D+00 0.30220915864731D-18 + 1 7 3 57 -0.13334431757599D-01 -0.24590042640425D-17 + 2 7 3 57 0.30515804448365D-01 -0.28525779711080D-16 + 3 7 3 57 0.26462086478739D+00 0.20720730841454D-16 + 1 8 3 57 -0.45567704351572D+00 0.13274865890778D-16 + 2 8 3 57 0.47111525755596D+00 0.28391093561541D-16 + 3 8 3 57 -0.81832269216946D+00 0.20612259847104D-15 + 1 9 3 57 -0.12442806753827D+00 0.48386833505338D-16 + 2 9 3 57 -0.11706295729564D+00 -0.17179644584599D-16 + 3 9 3 57 -0.39034711006481D-01 0.94170283462718D-16 + 1 10 3 57 -0.12876955666759D+01 0.66078882331889D-16 + 2 10 3 57 -0.13404540323597D+01 0.51238953010642D-16 + 3 10 3 57 0.31461925409856D+01 0.39712285595486D-17 + 1 11 3 57 0.93845201709304D-01 -0.50729294359574D-16 + 2 11 3 57 -0.11196569201530D+00 0.30033273522395D-16 + 3 11 3 57 -0.31187185983446D-01 -0.74880412413134D-17 + 1 12 3 57 0.15562468678296D+01 -0.95266399055376D-16 + 2 12 3 57 -0.13228488051543D+01 0.11211563082096D-16 + 3 12 3 57 0.31319582770427D+01 0.54399660220646D-17 + 1 13 3 57 -0.10813448889692D+00 -0.69621209460457D-16 + 2 13 3 57 0.88500513317366D-01 -0.20326879745591D-16 + 3 13 3 57 -0.49105577665175D-02 -0.29606576130970D-16 + 1 14 3 57 -0.13194687112185D+01 -0.24091106978377D-16 + 2 14 3 57 0.12654763266823D+01 -0.83814397456715D-17 + 3 14 3 57 0.31633305596009D+01 0.17427874525245D-16 + 1 15 3 57 0.13086307270575D+01 0.37998080367419D-16 + 2 15 3 57 0.14207456754165D+01 -0.89445982454398D-17 + 3 15 3 57 0.31612187369587D+01 -0.95943142568211D-16 + 1 16 3 57 0.32406161278394D+00 -0.86599308904574D-17 + 2 16 3 57 0.29567997302834D+00 -0.13056417643669D-16 + 3 16 3 57 0.53072023251011D+00 0.20749115994855D-15 + 1 17 3 57 0.14353000606928D+02 0.35115463169657D-16 + 2 17 3 57 0.14299918188595D+02 0.32407974273671D-16 + 3 17 3 57 -0.26293428596271D+02 -0.10679635473241D-15 + 1 18 3 57 0.44525731202279D+00 -0.88958754989260D-16 + 2 18 3 57 0.43899228290186D+00 -0.30284700499177D-17 + 3 18 3 57 -0.32341740368545D+00 0.39800090641108D-16 + 1 19 3 57 -0.33632806315325D+00 -0.22364778190726D-16 + 2 19 3 57 0.34701699078133D+00 0.19356780105825D-16 + 3 19 3 57 0.20982897868919D+00 0.13219468283424D-15 + 1 20 3 57 0.41510684461685D+00 0.88470279795713D-17 + 2 20 3 57 0.46766185471483D+00 -0.16347841504846D-17 + 3 20 3 57 -0.37168114771698D+00 0.15709505817200D-15 + 1 21 3 57 0.23802945606287D+00 -0.48409287161152D-16 + 2 21 3 57 -0.28569280361857D+00 0.59756518477078D-17 + 3 21 3 57 0.19144027554771D+00 0.71999608486834D-16 + 1 22 3 57 0.29764610515245D-01 0.67439190948356D-16 + 2 22 3 57 0.94808506004455D-01 0.27267097562836D-16 + 3 22 3 57 0.79503731643845D-01 0.15323101029230D-15 + 1 23 3 57 0.48848716900826D+00 0.16545250813840D-16 + 2 23 3 57 0.49790547501619D+00 -0.24850674031483D-16 + 3 23 3 57 -0.84989106608483D+00 0.98094954597821D-17 + 1 24 3 57 0.31491568175680D+01 0.12437094781652D-17 + 2 24 3 57 0.13599716217812D+01 -0.19531504191293D-16 + 3 24 3 57 -0.30437881571425D+01 -0.21964248155074D-15 + 1 25 3 57 -0.33078081980729D+01 -0.96629811348787D-18 + 2 25 3 57 0.12600447229703D+01 -0.68116695367911D-17 + 3 25 3 57 -0.31777519768981D+01 0.31295577629609D-15 + 1 26 3 57 -0.90063254104477D-01 0.84091811008861D-18 + 2 26 3 57 0.92029099056184D-01 -0.22882058062882D-17 + 3 26 3 57 -0.23295520329197D+00 -0.28374617715995D-15 + 1 27 3 57 0.85695375456051D-01 0.14378541894994D-17 + 2 27 3 57 0.98733218058407D-01 -0.10295821892331D-16 + 3 27 3 57 -0.24768484707755D+00 -0.45937493877419D-16 + 1 28 3 57 -0.31091888531854D+01 -0.21165779133078D-17 + 2 28 3 57 -0.13756832393009D+01 -0.25147136661995D-16 + 3 28 3 57 -0.30139916482755D+01 0.12178303822726D-15 + 1 29 3 57 0.31738889652452D+01 0.81249320272547D-18 + 2 29 3 57 -0.12571940962572D+01 -0.31829218960576D-16 + 3 29 3 57 -0.30423786554363D+01 0.74009767135669D-16 + 1 30 3 57 0.11753736046785D+00 0.36238257676112D-17 + 2 30 3 57 -0.85666039169640D-01 0.14390589625938D-16 + 3 30 3 57 -0.23208147027117D+00 -0.24158634771742D-15 + 1 31 3 57 -0.11482546015925D+00 0.10201856093559D-17 + 2 31 3 57 -0.11344991498160D+00 -0.24307756806079D-16 + 3 31 3 57 -0.21310322738957D+00 -0.20578633606580D-15 + 1 32 3 57 0.37616317979234D-02 -0.29916050437182D-16 + 2 32 3 57 -0.20196117384879D-01 -0.14303620307443D-16 + 3 32 3 57 -0.37611087067122D+00 -0.35234828400625D-15 + 1 33 3 57 -0.13733332541572D+02 0.17291353612228D-16 + 2 33 3 57 -0.14107929617707D+02 0.23896822806535D-16 + 3 33 3 57 -0.25999938377806D+02 -0.79716076138435D-16 + 1 34 3 57 -0.41642775373069D+00 -0.23083178402947D-16 + 2 34 3 57 -0.42944402667853D+00 -0.32476417754016D-16 + 3 34 3 57 -0.32229451800094D+00 -0.12723442754403D-15 + 1 35 3 57 0.34179935926502D+00 0.45678720472438D-17 + 2 35 3 57 -0.30437217106272D+00 0.23290033773773D-16 + 3 35 3 57 0.16835463342987D+00 -0.92846217715300D-18 + 1 36 3 57 -0.48216063573330D+00 0.83246160620899D-16 + 2 36 3 57 -0.55199541123175D+00 0.20735359494693D-16 + 3 36 3 57 -0.45552851098672D+00 0.13097028615551D-15 + 1 37 3 57 -0.33003961467011D+00 -0.20135296739046D-16 + 2 37 3 57 0.27594970481658D+00 0.30959943122274D-16 + 3 37 3 57 0.22912581400824D+00 0.11980542371824D-15 + 1 38 3 57 -0.11650839707677D-02 0.14868329154890D-16 + 2 38 3 57 0.18427734937986D-01 -0.29169131130575D-16 + 3 38 3 57 0.29691473446176D+00 0.51853953515349D-16 + 1 39 3 57 -0.48491587255602D+00 -0.29997493645723D-16 + 2 39 3 57 -0.46488166323621D+00 0.17066858479762D-16 + 3 39 3 57 -0.78547982018116D+00 -0.10025970225906D-16 + 1 40 3 57 0.13075662148973D+01 0.58754854409016D-17 + 2 40 3 57 0.33093056973859D+01 0.17068008542244D-18 + 3 40 3 57 -0.31342894738194D+01 0.88607514576276D-16 + 1 41 3 57 0.12502012486378D+01 0.38790189634594D-17 + 2 41 3 57 -0.31184796091369D+01 0.20210102034181D-18 + 3 41 3 57 -0.29961780079477D+01 -0.18648473470474D-15 + 1 42 3 57 -0.11033339330700D+01 -0.13753293855127D-16 + 2 42 3 57 -0.31475754789696D+01 -0.47597028400346D-18 + 3 42 3 57 -0.29367943623405D+01 0.19315986914641D-15 + 1 43 3 57 -0.14011878085562D+01 0.24971617246410D-16 + 2 43 3 57 0.31874796976435D+01 0.80369733738897D-18 + 3 43 3 57 -0.32375816820263D+01 0.20176636587604D-15 + 1 44 3 57 0.11656811585862D+00 -0.12137392362215D-16 + 2 44 3 57 -0.10270295409905D+00 -0.96297059896919D-18 + 3 44 3 57 -0.22848785946546D+00 0.31008601730010D-15 + 1 45 3 57 0.95229223935948D-01 -0.22839865335159D-16 + 2 45 3 57 0.10272258709109D+00 0.18098333023408D-17 + 3 45 3 57 -0.22774994674944D+00 -0.45573190192951D-16 + 1 46 3 57 -0.11767243478525D+00 -0.91833391412550D-17 + 2 46 3 57 0.14387887629046D+00 0.40317384835007D-18 + 3 46 3 57 -0.22821706536484D+00 0.10936745376263D-15 + 1 47 3 57 -0.89382574095878D-01 0.20831465664637D-16 + 2 47 3 57 -0.10413342879518D+00 -0.28996766047464D-17 + 3 47 3 57 -0.21575497152441D+00 -0.26833775106560D-15 + 1 48 3 57 0.29601155427098D+00 0.21010296335359D-16 + 2 48 3 57 -0.27340328278778D+00 0.84188928460218D-16 + 3 48 3 57 0.43222364377869D+00 -0.31224663026300D-15 + 1 49 3 57 0.13749665086973D+02 0.11959923425882D-16 + 2 49 3 57 -0.13838939719674D+02 -0.58040872594432D-17 + 3 49 3 57 -0.26190006915435D+02 0.17493142014518D-15 + 1 50 3 57 0.30544660227199D+00 0.24299298176360D-16 + 2 50 3 57 -0.46664333485390D+00 -0.37386051400882D-19 + 3 50 3 57 -0.52469610687682D+00 -0.10288672312718D-16 + 1 51 3 57 -0.27566745941856D+00 0.59934367946994D-17 + 2 51 3 57 -0.23274844943711D+00 -0.30343684183770D-16 + 3 51 3 57 0.21967419079834D+00 0.17343919106094D-15 + 1 52 3 57 0.52535734949560D+00 0.27629082223787D-16 + 2 52 3 57 -0.47710773077174D+00 0.36315771428870D-16 + 3 52 3 57 -0.44735271654359D+00 -0.93478351645094D-16 + 1 53 3 57 0.33179221431111D+00 -0.29788416195458D-16 + 2 53 3 57 0.34435770576832D+00 0.16115828179741D-16 + 3 53 3 57 0.19316941103679D+00 0.45090723067261D-15 + 1 54 3 57 0.14456368115460D-01 -0.82425560893144D-17 + 2 54 3 57 -0.18546293613143D-01 0.77229715134001D-17 + 3 54 3 57 0.26354632444337D+00 0.37966909989298D-17 + 1 55 3 57 0.35014435252327D+00 0.12198352182552D-16 + 2 55 3 57 -0.44375316277966D+00 -0.98877459616723D-17 + 3 55 3 57 -0.91736458850017D+00 -0.87547083538223D-16 + 1 56 3 57 -0.24726760963584D-01 0.18857488921598D-17 + 2 56 3 57 -0.34209735405514D-01 -0.52486921522494D-17 + 3 56 3 57 -0.40246564189427D+00 0.50490132488395D-17 + 1 57 3 57 -0.65807813668288D+00 0.00000000000000D+00 + 2 57 3 57 -0.81338717684546D+00 0.00000000000000D+00 + 3 57 3 57 0.11998085918812D+03 0.00000000000000D+00 + 1 58 3 57 0.11525350264608D-01 -0.83686141514948D-17 + 2 58 3 57 -0.51528606358535D-01 0.11994783524325D-17 + 3 58 3 57 -0.18124573639914D+00 0.10060212284119D-17 + 1 59 3 57 -0.10301842422670D-01 -0.11439216266803D-18 + 2 59 3 57 -0.21764363757139D-01 0.33967251557791D-18 + 3 59 3 57 -0.23726627446706D+00 -0.22806869545303D-18 + 1 60 3 57 -0.36698199332301D-01 0.13479914339699D-17 + 2 60 3 57 0.73131832143502D-01 -0.17949455385481D-18 + 3 60 3 57 -0.12417076851962D+00 -0.73682787299799D-17 + 1 61 3 57 -0.15132030000379D-02 -0.10135004438067D-17 + 2 61 3 57 0.24459884158639D-03 -0.18643090743182D-19 + 3 61 3 57 -0.22649195687381D+00 -0.36143705389271D-17 + 1 62 3 57 -0.63431380755932D-02 -0.21176453198274D-17 + 2 62 3 57 0.69431513153938D-02 -0.12389114506395D-17 + 3 62 3 57 -0.12424139542536D+00 -0.99152669673789D-18 + 1 63 3 57 -0.23946093418141D-01 0.11737294709941D-17 + 2 63 3 57 0.70666205511097D-02 0.00000000000000D+00 + 3 63 3 57 0.15986550337781D+01 -0.39769697009601D-18 + 1 64 3 57 0.38414445183777D-02 0.21781888195370D-16 + 2 64 3 57 -0.88917535510201D-02 -0.37503429687729D-16 + 3 64 3 57 0.76694457329234D-01 -0.10592117689851D-15 + 1 65 3 57 0.14625636154839D+00 -0.12222350174792D-16 + 2 65 3 57 0.92189162375361D-01 0.78054915257410D-17 + 3 65 3 57 0.36471902416285D+00 -0.27864122252457D-16 + 1 1 1 58 0.21582940437262D+00 0.90193879732376D-16 + 2 1 1 58 0.32434742287267D+00 -0.16070207718124D-16 + 3 1 1 58 0.43846442122255D+00 0.29503921569605D-16 + 1 2 1 58 -0.80985736801165D+00 0.11621653175609D-15 + 2 2 1 58 0.28684620462767D+00 0.34438563763518D-17 + 3 2 1 58 -0.52165191449956D+00 -0.11995548953103D-16 + 1 3 1 58 -0.27022189572521D+02 -0.32000770938058D-16 + 2 3 1 58 0.14835666597383D+02 -0.21008942647585D-16 + 3 3 1 58 -0.16629379756977D+02 -0.20043360474938D-16 + 1 4 1 58 0.11542738827357D+00 -0.20672850494794D-15 + 2 4 1 58 -0.17250536151424D+00 0.20156929680533D-16 + 3 4 1 58 -0.26119564154640D+00 0.11427781278636D-16 + 1 5 1 58 0.33793601791265D+00 -0.24229811264552D-15 + 2 5 1 58 -0.16233365719528D+01 -0.38527061007960D-16 + 3 5 1 58 0.17793550258318D+01 -0.15776644333158D-16 + 1 6 1 58 0.20033384962360D+00 0.32670726113186D-16 + 2 6 1 58 -0.24696374662188D-02 -0.21558174801891D-16 + 3 6 1 58 -0.15681017887169D+00 -0.28198695187595D-17 + 1 7 1 58 0.57599511951002D+00 0.16858197582462D-15 + 2 7 1 58 0.29550212064914D+00 0.22301528469843D-16 + 3 7 1 58 -0.38139056523929D+00 0.16323182514568D-16 + 1 8 1 58 -0.29770639034202D+00 0.44889994397395D-16 + 2 8 1 58 0.53882773265772D+00 0.42140656897591D-17 + 3 8 1 58 -0.43245298590619D+00 -0.42548513024074D-16 + 1 9 1 58 -0.32157297915033D+01 0.29258993411946D-15 + 2 9 1 58 0.37358331173981D+01 0.36688449197284D-17 + 3 9 1 58 -0.12612871728019D+01 0.37706699677732D-16 + 1 10 1 58 -0.24785948145176D+00 0.15499523163417D-15 + 2 10 1 58 -0.11878586879503D+00 0.16869182270408D-18 + 3 10 1 58 -0.14675843406443D+00 -0.31477640760778D-16 + 1 11 1 58 -0.30638988320256D+01 0.57009494253447D-16 + 2 11 1 58 -0.31640814690755D+01 -0.18045523363238D-17 + 3 11 1 58 0.13515021593717D+01 -0.53530913208285D-16 + 1 12 1 58 -0.11874443038822D+00 -0.14664934572018D-15 + 2 12 1 58 -0.80597005297446D-01 -0.92349093584874D-18 + 3 12 1 58 0.12365796421604D+00 0.98296056270116D-18 + 1 13 1 58 -0.30001519778861D+01 -0.43843365901611D-16 + 2 13 1 58 -0.30660005531584D+01 -0.26350871830093D-17 + 3 13 1 58 -0.12254845032310D+01 0.72097247140549D-16 + 1 14 1 58 -0.23633934167008D+00 0.53297428348781D-16 + 2 14 1 58 0.90666799791501D-01 -0.22698381142934D-17 + 3 14 1 58 -0.14168161790001D+00 -0.29500946143890D-16 + 1 15 1 58 -0.21132000918250D+00 -0.16914318143997D-15 + 2 15 1 58 -0.13055966252282D+00 0.45376758043744D-18 + 3 15 1 58 0.71961574256987D-01 -0.10407806284669D-15 + 1 16 1 58 0.62025028896615D-02 -0.29387970916519D-16 + 2 16 1 58 -0.23104945061832D+00 0.37770620733040D-16 + 3 16 1 58 -0.37197994347042D+00 0.24494854886090D-16 + 1 17 1 58 -0.81083552164948D+00 -0.21225313484522D-17 + 2 17 1 58 -0.44096668991251D+00 0.83957579069819D-17 + 3 17 1 58 0.54032163431438D+00 -0.47551760447202D-17 + 1 18 1 58 -0.24223590393392D+02 0.67108793799220D-16 + 2 18 1 58 -0.13529215902066D+02 -0.19321607717555D-16 + 3 18 1 58 0.11927098542457D+02 -0.18802119835386D-16 + 1 19 1 58 0.62632122828492D+00 -0.77168966328821D-17 + 2 19 1 58 0.78293220003703D+00 -0.16320592750317D-16 + 3 19 1 58 0.83325922317388D+00 -0.99306705338507D-16 + 1 20 1 58 -0.17175783798410D+00 0.16258491874971D-15 + 2 20 1 58 -0.46034884881433D+00 -0.72534985695762D-17 + 3 20 1 58 0.33826748421716D+00 -0.37386886284951D-16 + 1 21 1 58 0.26686550422134D+00 0.82836990010797D-17 + 2 21 1 58 -0.20825616100103D-01 -0.17539335816438D-17 + 3 21 1 58 0.10707045324182D+00 -0.30074668240818D-16 + 1 22 1 58 0.43428936181697D-01 0.14281634926125D-16 + 2 22 1 58 0.13093678493619D+01 -0.39654774901076D-17 + 3 22 1 58 -0.16931048991710D+01 0.42109336894328D-16 + 1 23 1 58 -0.49336914517858D+00 0.23798315079183D-15 + 2 23 1 58 -0.50939446161319D+00 0.10056639443612D-16 + 3 23 1 58 0.43441998613115D+00 0.12251625980872D-16 + 1 24 1 58 -0.27692148443529D+00 0.74266220594524D-16 + 2 24 1 58 0.19607991922541D-01 0.12747171838570D-16 + 3 24 1 58 0.14976597231751D+00 -0.23040989833341D-17 + 1 25 1 58 -0.22877488748024D+00 -0.21414803222345D-15 + 2 25 1 58 -0.15578959509998D+00 -0.36561991664888D-17 + 3 25 1 58 -0.15007314540031D+00 0.45219817291651D-17 + 1 26 1 58 -0.32206381252867D+01 0.14635701203034D-15 + 2 26 1 58 0.16017402743485D+01 -0.25118813115449D-16 + 3 26 1 58 -0.32345058521663D+01 -0.66305588629342D-18 + 1 27 1 58 -0.29148046783835D+01 -0.22956005141278D-15 + 2 27 1 58 -0.11584240695734D+01 -0.45145176355193D-17 + 3 27 1 58 0.31270947786230D+01 0.31104520283516D-18 + 1 28 1 58 -0.11821621565578D+00 0.29864062532746D-15 + 2 28 1 58 0.11779011964277D+00 -0.32597848579615D-16 + 3 28 1 58 -0.24928118504911D+00 -0.31418940194315D-17 + 1 29 1 58 -0.22012489406827D+00 0.27120131339742D-15 + 2 29 1 58 0.10226835393024D+00 -0.10324404401107D-15 + 3 29 1 58 0.82223371077732D-01 -0.14521280176898D-17 + 1 30 1 58 -0.28051599479846D+01 0.13673604821871D-15 + 2 30 1 58 0.20031063282268D+01 0.10460587085805D-15 + 3 30 1 58 0.32779236897385D+01 0.11467677789599D-18 + 1 31 1 58 -0.31127751678940D+01 -0.23519469177665D-15 + 2 31 1 58 -0.12076686035773D+01 -0.59640290025621D-17 + 3 31 1 58 -0.31321845540438D+01 -0.72758059590196D-19 + 1 32 1 58 0.24026317668264D+00 0.12928927372482D-15 + 2 32 1 58 -0.19589691143570D+01 0.10550044220869D-16 + 3 32 1 58 -0.12568042557563D+01 0.39190803932722D-16 + 1 33 1 58 -0.78153175645182D+00 -0.67797127066753D-16 + 2 33 1 58 -0.53730740550124D+00 0.40335060117852D-16 + 3 33 1 58 -0.46840841101349D+00 0.13858328143925D-16 + 1 34 1 58 -0.28281032658509D+02 0.22248855942425D-15 + 2 34 1 58 -0.14256821798390D+02 0.11175958846461D-16 + 3 34 1 58 -0.14657929762345D+02 0.40047986527873D-16 + 1 35 1 58 0.24071006525499D+00 0.64513467077784D-16 + 2 35 1 58 0.44122789176326D+00 -0.76341305593695D-17 + 3 35 1 58 -0.29803704164042D+00 0.38318601843958D-18 + 1 36 1 58 -0.58364062511924D+00 0.11590223752204D-15 + 2 36 1 58 -0.74948867391113D+00 0.13082046149080D-16 + 3 36 1 58 -0.65896889737925D+00 0.84333755798785D-17 + 1 37 1 58 0.81947051681334D-01 -0.73873535863570D-16 + 2 37 1 58 -0.10458857416864D+00 -0.29841973337242D-16 + 3 37 1 58 0.17540967717463D+00 0.18969927249442D-16 + 1 38 1 58 0.31422049400924D+00 0.72586886560961D-16 + 2 38 1 58 0.17548457128181D+00 0.51362826505718D-16 + 3 38 1 58 -0.35986694257034D+00 0.12120588663534D-16 + 1 39 1 58 -0.63312078461237D+00 -0.96874334708037D-16 + 2 39 1 58 -0.44260789793588D+00 0.92904381950612D-16 + 3 39 1 58 -0.51528742791334D+00 0.12514979331648D-16 + 1 40 1 58 0.31882659330409D+01 -0.93147963516661D-16 + 2 40 1 58 -0.14011878085562D+01 0.16020280953247D-16 + 3 40 1 58 0.13686463220820D+01 -0.22725224094853D-16 + 1 41 1 58 0.30753321824938D+01 0.39601810518015D-15 + 2 41 1 58 0.11033339330700D+01 -0.24950819327949D-16 + 3 41 1 58 0.10982907017704D+01 0.72861783511038D-17 + 1 42 1 58 0.33326485128250D+01 -0.13499467143644D-15 + 2 42 1 58 -0.22422150556930D+01 0.30614951668669D-16 + 3 42 1 58 -0.79111691528172D+00 0.81386421733084D-18 + 1 43 1 58 0.36035073432242D+01 -0.12254776655578D-16 + 2 43 1 58 0.16287765163973D+01 0.10493741777715D-16 + 3 43 1 58 -0.14766123034724D+01 0.58452333306864D-17 + 1 44 1 58 -0.23349397939410D-02 0.66711020615032D-16 + 2 44 1 58 -0.11767243478524D+00 -0.29590061712721D-17 + 3 44 1 58 0.77343943757399D-01 0.27131614161702D-16 + 1 45 1 58 -0.20198582307324D-01 0.25026647167505D-16 + 2 45 1 58 0.89382574095890D-01 0.29452616001798D-16 + 3 45 1 58 0.16133490743944D-01 -0.27065551165718D-16 + 1 46 1 58 -0.42519676728861D+00 0.31211495000987D-16 + 2 46 1 58 -0.15638035851825D-01 0.32718132079384D-16 + 3 46 1 58 0.22985401946666D+00 -0.10390589850654D-16 + 1 47 1 58 -0.42568070033698D+00 0.94750869036187D-17 + 2 47 1 58 -0.10890786888940D+00 -0.21085214819064D-16 + 3 47 1 58 -0.34261208178817D+00 -0.60068057963311D-17 + 1 48 1 58 0.19042103809356D+00 0.33089073758750D-15 + 2 48 1 58 0.13762305616934D+00 -0.17829690280880D-16 + 3 48 1 58 -0.28361053495241D+00 0.93120156451597D-17 + 1 49 1 58 -0.79645524878653D+00 -0.95143473454973D-16 + 2 49 1 58 0.36639941053524D+00 -0.21387884718109D-16 + 3 49 1 58 0.38632799622838D+00 0.74556868276409D-17 + 1 50 1 58 -0.24353371012176D+02 -0.50824664903115D-16 + 2 50 1 58 0.14751333435336D+02 0.65659396377470D-18 + 3 50 1 58 0.22245450246926D+02 -0.45365497345198D-17 + 1 51 1 58 0.27912912720100D+00 0.27358673783977D-15 + 2 51 1 58 -0.29916503793232D+00 0.18160832958245D-16 + 3 51 1 58 0.33872008325703D+00 0.50369232014286D-17 + 1 52 1 58 -0.39640379417134D+00 0.12372755719024D-15 + 2 52 1 58 0.51417559201221D+00 0.36102124263163D-17 + 3 52 1 58 0.80045650826027D+00 0.22806283505210D-16 + 1 53 1 58 0.23662232486672D+00 0.12603458780289D-16 + 2 53 1 58 -0.94824085324155D-02 0.52445201431546D-16 + 3 53 1 58 -0.11423776684105D-01 -0.18057064064834D-16 + 1 54 1 58 0.12148402283881D+00 -0.92465354125615D-17 + 2 54 1 58 0.21488924759001D+00 0.20778044544458D-16 + 3 54 1 58 0.29451899344542D+00 -0.20130322318560D-16 + 1 55 1 58 -0.50259411538244D+00 0.19337510476737D-15 + 2 55 1 58 0.49922300162288D+00 -0.72013512116818D-17 + 3 55 1 58 0.35059274663601D+00 -0.27417043203683D-16 + 1 56 1 58 -0.56483248397148D+00 0.66103022944074D-17 + 2 56 1 58 -0.18069400296059D+00 -0.23047010523306D-17 + 3 56 1 58 0.30991150850772D+00 -0.52750437884576D-18 + 1 57 1 58 0.16147086050100D+01 -0.40447401750058D-17 + 2 57 1 58 -0.25656366926326D-01 -0.21570992601407D-17 + 3 57 1 58 0.11525350264608D-01 0.83686141514948D-17 + 1 58 1 58 0.11892909311263D+03 0.00000000000000D+00 + 2 58 1 58 -0.28802566016954D+01 0.00000000000000D+00 + 3 58 1 58 0.68310894103217D+00 0.00000000000000D+00 + 1 59 1 58 -0.19374587556379D+00 -0.20138780813936D-16 + 2 59 1 58 0.28052321328861D-01 -0.24085191181002D-17 + 3 59 1 58 0.24726760963584D-01 -0.56065314171706D-17 + 1 60 1 58 0.21493144039402D+00 0.31396412133801D-16 + 2 60 1 58 -0.35798312713401D+00 -0.89754680514219D-18 + 3 60 1 58 -0.61638313884036D+00 0.11863199586408D-16 + 1 61 1 58 -0.12166211096926D+00 0.29497016024038D-17 + 2 61 1 58 -0.12354351356588D-01 -0.18344345880900D-17 + 3 61 1 58 -0.63431380755935D-02 -0.49616392092954D-18 + 1 62 1 58 -0.54947314096176D+00 -0.30000689244854D-16 + 2 62 1 58 0.14226339989857D+00 -0.26117475571251D-17 + 3 62 1 58 0.45780525994136D+00 -0.10644932863842D-16 + 1 63 1 58 -0.19511828925900D+00 0.59749429781842D-17 + 2 63 1 58 0.13360427838615D+00 -0.12028406842470D-17 + 3 63 1 58 0.36698199332301D-01 -0.56673740857703D-17 + 1 64 1 58 0.64172853416079D+00 0.12349147949703D-16 + 2 64 1 58 0.44400670465180D-01 -0.91243620762703D-17 + 3 64 1 58 -0.56679916905530D+00 -0.46776970951202D-16 + 1 65 1 58 -0.32913855200116D+01 -0.21254465894020D-15 + 2 65 1 58 0.54538626186918D+01 -0.81062597336475D-17 + 3 65 1 58 -0.11913615239239D+01 0.27541220070431D-16 + 1 1 2 58 0.29934916374172D+00 -0.16070207718124D-16 + 2 1 2 58 0.62661665556898D+00 -0.10948507171628D-15 + 3 1 2 58 0.24748365031445D+00 -0.22158366961324D-17 + 1 2 2 58 0.35556774802707D+00 0.34438563763518D-17 + 2 2 2 58 -0.85893846018716D-01 0.16436588107332D-15 + 3 2 2 58 0.43526276143988D+00 0.24138716283250D-16 + 1 3 2 58 0.14558835678490D+02 -0.21008942647585D-16 + 2 3 2 58 -0.26885952984624D+02 0.14975377965896D-15 + 3 3 2 58 0.17524480964126D+02 0.47347350217292D-17 + 1 4 2 58 -0.23038762429389D+00 0.20156929680533D-16 + 2 4 2 58 0.15731667061840D+00 0.14239147375008D-15 + 3 4 2 58 0.27476276805792D+00 -0.50762429997296D-17 + 1 5 2 58 -0.26317444518415D+00 -0.38527061007960D-16 + 2 5 2 58 0.11871324957381D+01 0.13174187955187D-15 + 3 5 2 58 -0.15198829841141D+01 0.12883732620566D-16 + 1 6 2 58 0.10281033293596D+00 -0.21558174801891D-16 + 2 6 2 58 0.26864894443221D+00 0.97566555147052D-16 + 3 6 2 58 0.98401233411654D-01 -0.24893995425727D-16 + 1 7 2 58 0.26938321812239D+00 0.22301528469843D-16 + 2 7 2 58 0.93208777468689D-01 -0.15650204368141D-15 + 3 7 2 58 -0.34011013696974D+00 0.13817636605902D-16 + 1 8 2 58 0.47577268331975D+00 0.42140656897591D-17 + 2 8 2 58 -0.83525506489340D+00 0.15747561008312D-15 + 3 8 2 58 0.59167202259456D+00 0.19883981698615D-16 + 1 9 2 58 0.35469120189638D+01 0.36688449197284D-17 + 2 9 2 58 -0.33903977200179D+01 -0.58595462122006D-16 + 3 9 2 58 0.10925016594282D+01 0.67428187412242D-17 + 1 10 2 58 -0.12050740714423D+00 0.16869182270408D-18 + 2 10 2 58 -0.24793168041875D+00 -0.20400557943948D-15 + 3 10 2 58 0.15168666551705D+00 -0.82638254196407D-16 + 1 11 2 58 -0.33050853082272D+01 -0.18045523363238D-17 + 2 11 2 58 -0.29877680086003D+01 0.83885476111897D-16 + 3 11 2 58 0.12841378769088D+01 -0.42177860920431D-17 + 1 12 2 58 0.82043198351642D-01 -0.92349093584874D-18 + 2 12 2 58 -0.16993298888397D+00 0.22260735695998D-15 + 3 12 2 58 0.71194922581206D-01 0.78506293081610D-16 + 1 13 2 58 -0.31773514429869D+01 -0.26350871830093D-17 + 2 13 2 58 -0.29954888535487D+01 -0.40186433674500D-16 + 3 13 2 58 -0.13470329229198D+01 0.38034123546964D-17 + 1 14 2 58 0.10097204574324D+00 -0.22698381142934D-17 + 2 14 2 58 -0.24639150368970D+00 -0.28970664759911D-15 + 3 14 2 58 -0.83074439382482D-01 0.10927978337898D-17 + 1 15 2 58 -0.10038897771306D+00 0.45376758043744D-18 + 2 15 2 58 -0.18948265496565D+00 0.22346152889159D-15 + 3 15 2 58 -0.11750953390600D+00 0.71740096981291D-16 + 1 16 2 58 0.53763771560473D-01 0.37770620733040D-16 + 2 16 2 58 0.27420601099827D+00 0.11163369938560D-15 + 3 16 2 58 0.26868741007230D+00 -0.47045790940733D-17 + 1 17 2 58 -0.45818229504203D+00 0.83957579069819D-17 + 2 17 2 58 -0.50913110257273D+00 -0.15168265662200D-15 + 3 17 2 58 0.48522302031411D+00 -0.15807998918174D-17 + 1 18 2 58 -0.13901670395536D+02 -0.19321607717555D-16 + 2 18 2 58 -0.26367025656392D+02 -0.11456350115816D-15 + 3 18 2 58 0.14345599579921D+02 -0.28200853647446D-16 + 1 19 2 58 0.21034855301276D+00 -0.16320592750317D-16 + 2 19 2 58 -0.18536809697928D+00 0.21702208780511D-15 + 3 19 2 58 0.37174795431042D-01 -0.16529861679176D-16 + 1 20 2 58 -0.52011348209475D+00 -0.72534985695762D-17 + 2 20 2 58 -0.39910233886037D+00 -0.16247430637834D-15 + 3 20 2 58 0.59323179457402D+00 -0.25582579921043D-17 + 1 21 2 58 0.94617811102814D-02 -0.17539335816438D-17 + 2 21 2 58 0.24492796035844D+00 0.32093638496574D-16 + 3 21 2 58 -0.49505833736297D-01 0.17051380996477D-16 + 1 22 2 58 0.35757827279186D-01 -0.39654774901076D-17 + 2 22 2 58 -0.11313505286587D+01 0.68525573116941D-16 + 3 22 2 58 0.13549678598456D+01 0.40369182172275D-16 + 1 23 2 58 -0.25450899472504D+00 0.10056639443612D-16 + 2 23 2 58 -0.87719096127325D+00 0.52009155009369D-16 + 3 23 2 58 0.33525327094947D+00 -0.10711901283903D-15 + 1 24 2 58 -0.11757710023595D+00 0.12747171838570D-16 + 2 24 2 58 0.37900726108938D-02 0.10417546552286D-15 + 3 24 2 58 -0.10726450908200D+00 -0.36103913227737D-16 + 1 25 2 58 0.10790549971587D+00 -0.36561991664888D-17 + 2 25 2 58 -0.18463012523094D-01 0.14116421291708D-16 + 3 25 2 58 -0.44033202187168D-01 -0.13742681173828D-16 + 1 26 2 58 -0.11397146903825D+01 -0.25118813115449D-16 + 2 26 2 58 0.30580094079255D+01 0.60675179404712D-16 + 3 26 2 58 -0.10540879121051D+01 -0.10734898848727D-16 + 1 27 2 58 0.14205596556584D+01 -0.45145176355193D-17 + 2 27 2 58 0.30306915079876D+01 0.95732609534214D-16 + 3 27 2 58 -0.12396011896155D+01 0.51489541306141D-17 + 1 28 2 58 -0.72227401361727D-01 -0.32597848579615D-16 + 2 28 2 58 -0.19873251756067D+00 -0.53466212222501D-16 + 3 28 2 58 0.20147194587619D+00 0.13950626175530D-16 + 1 29 2 58 0.14109272489711D+00 -0.10324404401107D-15 + 2 29 2 58 -0.10484951280539D+00 -0.62026572549541D-16 + 3 29 2 58 0.12818383142601D+00 -0.13490620352684D-16 + 1 30 2 58 -0.11176717924403D+01 0.10460587085805D-15 + 2 30 2 58 0.26328894094707D+01 0.13868318142103D-15 + 3 30 2 58 0.95452131471842D+00 0.12999525674012D-17 + 1 31 2 58 0.14529028836110D+01 -0.59640290025621D-17 + 2 31 2 58 0.32532103886273D+01 -0.23898438311276D-15 + 3 31 2 58 0.12261362992760D+01 -0.24693697472227D-16 + 1 32 2 58 -0.69836127851068D+00 0.10550044220869D-16 + 2 32 2 58 0.19692102717770D+01 0.21608883970240D-15 + 3 32 2 58 0.87578480095376D+00 0.18429763699264D-16 + 1 33 2 58 -0.31197724830339D+00 0.40335060117852D-16 + 2 33 2 58 -0.25326590528756D+00 0.55036355842737D-16 + 3 33 2 58 -0.29558449714712D+00 0.29889168343649D-16 + 1 34 2 58 -0.13867197110953D+02 0.11175958846461D-16 + 2 34 2 58 -0.24532491806041D+02 -0.87010752798037D-16 + 3 34 2 58 -0.12371596783117D+02 0.14207502062275D-16 + 1 35 2 58 0.39930320110790D+00 -0.76341305593695D-17 + 2 35 2 58 0.18654111657419D+00 -0.15284651058856D-15 + 3 35 2 58 -0.43699935314725D+00 0.10034896822246D-17 + 1 36 2 58 -0.58941207799972D+00 0.13082046149080D-16 + 2 36 2 58 -0.34062346733944D+00 -0.33412843283799D-16 + 3 36 2 58 -0.34781997433926D+00 -0.51743890334647D-16 + 1 37 2 58 0.10295060887454D+00 -0.29841973337242D-16 + 2 37 2 58 0.37092861818659D+00 -0.14966882786092D-15 + 3 37 2 58 -0.20826631690892D+00 -0.31803219637517D-16 + 1 38 2 58 -0.21516708156433D+00 0.51362826505718D-16 + 2 38 2 58 0.31305621381471D-01 0.91757628648353D-16 + 3 38 2 58 0.30197170554672D+00 -0.13124792027617D-16 + 1 39 2 58 -0.28525463577358D+00 0.92904381950612D-16 + 2 39 2 58 -0.79567018427530D+00 -0.14447082957543D-15 + 3 39 2 58 -0.49069469237906D+00 -0.85818240304924D-17 + 1 40 2 58 0.12980637146701D+01 0.16020280953247D-16 + 2 40 2 58 -0.32375816820263D+01 -0.54196687590606D-16 + 3 40 2 58 0.32644467995037D+01 0.45235716032022D-17 + 1 41 2 58 -0.15222885050610D+01 -0.24950819327949D-16 + 2 41 2 58 -0.29367943623405D+01 0.76014457817681D-16 + 3 41 2 58 -0.31255487756682D+01 0.85488196853512D-18 + 1 42 2 58 0.79111691528173D+00 0.30614951668669D-16 + 2 42 2 58 -0.19446621466388D+01 -0.21316514306445D-15 + 3 42 2 58 -0.25874532646368D+01 -0.21843135744291D-17 + 1 43 2 58 -0.14766123034724D+01 0.10493741777715D-16 + 2 43 2 58 -0.32451830657095D+01 -0.60798556617102D-16 + 3 43 2 58 0.31360063028185D+01 0.00000000000000D+00 + 1 44 2 58 0.52633044411426D-01 -0.29590061712721D-17 + 2 44 2 58 -0.22821706536484D+00 0.28655508014721D-15 + 3 44 2 58 -0.99437535727203D-01 -0.27542784087465D-17 + 1 45 2 58 -0.12057846732556D+00 0.29452616001798D-16 + 2 45 2 58 -0.21575497152441D+00 0.87042069060114D-16 + 3 45 2 58 0.10055451728178D+00 -0.12300145383894D-18 + 1 46 2 58 0.34261208178817D+00 0.32718132079384D-16 + 2 46 2 58 -0.31513249573963D+00 0.13968854888651D-15 + 3 46 2 58 -0.14284829732331D+00 0.21367711867700D-17 + 1 47 2 58 0.22985401946666D+00 -0.21085214819064D-16 + 2 47 2 58 0.11250902439585D+00 -0.12405618745227D-15 + 3 47 2 58 0.14341331282464D+00 -0.20284730611224D-17 + 1 48 2 58 0.30050836975057D+00 -0.17829690280880D-16 + 2 48 2 58 0.55573036713752D+00 -0.24031779622516D-15 + 3 48 2 58 -0.31592974345077D+00 0.25046316384887D-16 + 1 49 2 58 0.49338013526382D+00 -0.21387884718109D-16 + 2 49 2 58 -0.32116000110639D+00 -0.21756807120033D-16 + 3 49 2 58 -0.49852977540938D+00 0.56768233237867D-17 + 1 50 2 58 0.13111602562201D+02 0.65659396377470D-18 + 2 50 2 58 -0.26966858017480D+02 -0.25634413772729D-16 + 3 50 2 58 -0.23403793604854D+02 -0.21424398517523D-16 + 1 51 2 58 -0.42098272698905D+00 0.18160832958245D-16 + 2 51 2 58 0.12123201124201D+00 -0.91762128166131D-16 + 3 51 2 58 -0.25348016079988D+00 -0.85650092323316D-17 + 1 52 2 58 0.63674313804244D+00 0.36102124263163D-17 + 2 52 2 58 -0.37756417728969D+00 -0.13285005186408D-15 + 3 52 2 58 -0.68264261748262D+00 -0.16987192808165D-16 + 1 53 2 58 0.31560473711001D-02 0.52445201431546D-16 + 2 53 2 58 0.29525495854003D+00 -0.15381970571359D-15 + 3 53 2 58 0.19573453759548D-01 -0.58393452610911D-16 + 1 54 2 58 0.16615110843061D+00 0.20778044544458D-16 + 2 54 2 58 0.15446028503366D+00 -0.39859588978718D-15 + 3 54 2 58 0.64823888964951D-01 -0.57928487645081D-16 + 1 55 2 58 0.59033759901085D+00 -0.72013512116818D-17 + 2 55 2 58 -0.87879839587781D+00 -0.38607361921840D-15 + 3 55 2 58 -0.23675050006731D+00 0.23165430375999D-16 + 1 56 2 58 0.18069400296059D+00 -0.23047010523306D-17 + 2 56 2 58 -0.62710495305077D+00 -0.22305431551445D-16 + 3 56 2 58 -0.20439597042973D+00 -0.11748093729295D-16 + 1 57 2 58 -0.73096735208846D-01 -0.21570992601407D-17 + 2 57 2 58 -0.10723510414041D+00 -0.21402181080475D-16 + 3 57 2 58 -0.51528606358535D-01 -0.11994783524325D-17 + 1 58 2 58 -0.28802566016954D+01 0.00000000000000D+00 + 2 58 2 58 0.12111955382287D+03 0.00000000000000D+00 + 3 58 2 58 0.11969682585247D+00 0.00000000000000D+00 + 1 59 2 58 -0.42250900489266D-02 -0.24085191181002D-17 + 2 59 2 58 -0.25125029174601D+00 -0.81218386401089D-17 + 3 59 2 58 -0.34209735405514D-01 -0.62628150806309D-17 + 1 60 2 58 -0.35798312713401D+00 -0.89754680514219D-18 + 2 60 2 58 0.20435856490277D+00 0.20889836521967D-17 + 3 60 2 58 0.45036500072236D+00 0.41671973449388D-17 + 1 61 2 58 0.52381069365457D-02 -0.18344345880900D-17 + 2 61 2 58 -0.11789925547314D+00 0.41677923207551D-18 + 3 61 2 58 -0.69431513153946D-02 -0.43123299578542D-18 + 1 62 2 58 -0.14226339989857D+00 -0.26117475571251D-17 + 2 62 2 58 -0.40548407098281D+00 0.16921792903643D-17 + 3 62 2 58 -0.28769115120802D+00 -0.13822250601698D-18 + 1 63 2 58 0.78044554531755D-02 -0.12028406842470D-17 + 2 63 2 58 0.14870128380568D+01 -0.83890322445969D-18 + 3 63 2 58 -0.73131832143502D-01 -0.27723095399023D-17 + 1 64 2 58 -0.15548126048237D+00 -0.91243620762703D-17 + 2 64 2 58 0.34047678614174D+00 -0.49977037414720D-16 + 3 64 2 58 0.64991636464351D+00 0.30015242058625D-16 + 1 65 2 58 0.59872147645347D+01 -0.81062597336475D-17 + 2 65 2 58 -0.61174067196089D+01 0.15110983683505D-15 + 3 65 2 58 0.11989383012939D+01 0.11371437999996D-16 + 1 1 3 58 0.28753091410638D+00 0.29503921569605D-16 + 2 1 3 58 0.15949537106223D+00 -0.22158366961324D-17 + 3 1 3 58 0.19033349414046D+00 0.14703846656235D-15 + 1 2 3 58 -0.33968534256652D+00 -0.11995548953103D-16 + 2 2 3 58 0.14952538593818D+00 0.24138716283250D-16 + 3 2 3 58 -0.60975442156202D+00 -0.18857341468887D-15 + 1 3 3 58 -0.17380976115390D+02 -0.20043360474938D-16 + 2 3 3 58 0.18445644366106D+02 0.47347350217292D-17 + 3 3 3 58 -0.27760819090572D+02 0.25918989070065D-15 + 1 4 3 58 -0.23882867257478D+00 0.11427781278636D-16 + 2 4 3 58 0.33313519872921D+00 -0.50762429997296D-17 + 3 4 3 58 0.29163708009970D+00 0.98011661536867D-16 + 1 5 3 58 0.28590715431927D+00 -0.15776644333158D-16 + 2 5 3 58 -0.17065758913518D+01 0.12883732620566D-16 + 3 5 3 58 0.12265406544990D+01 -0.87919495952059D-17 + 1 6 3 58 -0.17379472240560D+00 -0.28198695187595D-17 + 2 6 3 58 0.12118996449943D-01 -0.24893995425727D-16 + 3 6 3 58 0.16229330172929D+00 -0.14007646346792D-15 + 1 7 3 58 -0.35996202666303D+00 0.16323182514568D-16 + 2 7 3 58 -0.25867275679240D+00 0.13817636605902D-16 + 3 7 3 58 0.18898539371496D+00 0.20341113188149D-16 + 1 8 3 58 -0.32150151371739D+00 -0.42548513024074D-16 + 2 8 3 58 0.55610764499212D+00 0.19883981698615D-16 + 3 8 3 58 -0.31887366055224D+00 -0.72052770000817D-16 + 1 9 3 58 0.12482638357656D+01 0.37706699677732D-16 + 2 9 3 58 -0.12067952504781D+01 0.67428187412242D-17 + 3 9 3 58 0.28423411136097D+01 0.19276067536871D-16 + 1 10 3 58 0.11771011529336D+00 -0.31477640760778D-16 + 2 10 3 58 -0.11438150796612D+00 -0.82638254196407D-16 + 3 10 3 58 0.17176138476524D-01 0.73548349810118D-17 + 1 11 3 58 -0.13211942367619D+01 -0.53530913208285D-16 + 2 11 3 58 -0.13319450553958D+01 -0.42177860920431D-17 + 3 11 3 58 0.31311444326211D+01 -0.35253744688835D-16 + 1 12 3 58 -0.56111524358577D-01 0.98296056270116D-18 + 2 12 3 58 -0.23773955807573D+00 0.78506293081610D-16 + 3 12 3 58 0.28004815274243D-01 0.30182804964753D-16 + 1 13 3 58 0.14264458797104D+01 0.72097247140549D-16 + 2 13 3 58 0.12061807511854D+01 0.38034123546964D-17 + 3 13 3 58 0.31732604423890D+01 0.89464301540534D-16 + 1 14 3 58 0.88968340529826D-01 -0.29500946143890D-16 + 2 14 3 58 0.53660734478788D-01 0.10927978337898D-17 + 3 14 3 58 -0.74228177386460D-01 0.91289738518472D-16 + 1 15 3 58 -0.80742365490619D-01 -0.10407806284669D-15 + 2 15 3 58 0.11189461027629D+00 0.71740096981291D-16 + 3 15 3 58 -0.42718762411055D-01 -0.16433881892594D-16 + 1 16 3 58 -0.26522545003790D+00 0.24494854886090D-16 + 2 16 3 58 -0.16842214387476D+00 -0.47045790940733D-17 + 3 16 3 58 0.12834338893619D+00 -0.22334656865892D-15 + 1 17 3 58 0.57259088947737D+00 -0.47551760447202D-17 + 2 17 3 58 0.56817747023680D+00 -0.15807998918174D-17 + 3 17 3 58 -0.48945075687645D+00 0.31989594976585D-16 + 1 18 3 58 0.12618695132517D+02 -0.18802119835386D-16 + 2 18 3 58 0.14949212088362D+02 -0.28200853647446D-16 + 3 18 3 58 -0.25485998875877D+02 0.49851780938048D-16 + 1 19 3 58 0.61070928979987D+00 -0.99306705338507D-16 + 2 19 3 58 0.71273818903614D+00 -0.16529861679176D-16 + 3 19 3 58 0.10055228481423D+01 -0.17789075995516D-15 + 1 20 3 58 0.53061614381882D+00 -0.37386886284951D-16 + 2 20 3 58 0.27618358262648D+00 -0.25582579921043D-17 + 3 20 3 58 -0.86409040711021D+00 -0.35174680085933D-15 + 1 21 3 58 -0.42196927431095D-02 -0.30074668240818D-16 + 2 21 3 58 -0.48541681642133D-01 0.17051380996477D-16 + 3 21 3 58 0.32802942366760D+00 -0.14834134289647D-15 + 1 22 3 58 0.12590578526662D+00 0.42109336894328D-16 + 2 22 3 58 0.12676911053746D+01 0.40369182172275D-16 + 3 22 3 58 -0.11150142372855D+01 -0.15448114319300D-15 + 1 23 3 58 0.64346728371821D-01 0.12251625980872D-16 + 2 23 3 58 0.50016541024873D+00 -0.10711901283903D-15 + 3 23 3 58 -0.13525500815597D+00 0.67012041132563D-16 + 1 24 3 58 0.10585392237338D+00 -0.23040989833341D-17 + 2 24 3 58 0.45686340930222D-01 -0.36103913227737D-16 + 3 24 3 58 -0.21107489075072D+00 0.31478121517345D-16 + 1 25 3 58 -0.96293916460599D-01 0.45219817291651D-17 + 2 25 3 58 0.10511726601206D+00 -0.13742681173828D-16 + 3 25 3 58 -0.23563032171867D+00 -0.25539228954013D-15 + 1 26 3 58 -0.30400799938289D+01 -0.66305588629342D-18 + 2 26 3 58 0.14454054486640D+01 -0.10734898848727D-16 + 3 26 3 58 -0.29219202594768D+01 0.19854670963804D-15 + 1 27 3 58 0.30637658912080D+01 0.31104520283516D-18 + 2 27 3 58 0.11316458786832D+01 0.51489541306141D-17 + 3 27 3 58 -0.31543092489251D+01 0.11358577170490D-15 + 1 28 3 58 -0.13987575062728D+00 -0.31418940194315D-17 + 2 28 3 58 0.46826809137950D-01 0.13950626175530D-16 + 3 28 3 58 -0.26127655378421D+00 0.23163114574264D-15 + 1 29 3 58 -0.41272559615121D-01 -0.14521280176898D-17 + 2 29 3 58 -0.15534832070321D+00 -0.13490620352684D-16 + 3 29 3 58 0.81916361108249D-01 -0.11206189215597D-15 + 1 30 3 58 0.26899078430667D+01 0.11467677789599D-18 + 2 30 3 58 -0.11485207674171D+01 0.12999525674012D-17 + 3 30 3 58 -0.30775016116619D+01 -0.46734198620490D-16 + 1 31 3 58 -0.32191059477274D+01 -0.72758059590196D-19 + 2 31 3 58 -0.13634437152049D+01 -0.24693697472227D-16 + 3 31 3 58 -0.30730874511020D+01 -0.31402538486101D-15 + 1 32 3 58 0.69344548756158D+00 0.39190803932722D-16 + 2 32 3 58 -0.15289918852252D+01 0.18429763699264D-16 + 3 32 3 58 -0.11782400519076D+01 0.26310166553761D-15 + 1 33 3 58 -0.37756050303363D+00 0.13858328143925D-16 + 2 33 3 58 -0.40158016642122D+00 0.29889168343649D-16 + 3 33 3 58 -0.21332075910505D+00 -0.27988288772409D-16 + 1 34 3 58 -0.14992323709904D+02 0.40047986527873D-16 + 2 34 3 58 -0.12776995690578D+02 0.14207502062275D-16 + 3 34 3 58 -0.25101178599709D+02 -0.38647564245672D-16 + 1 35 3 58 -0.24324448070263D+00 0.38318601843958D-18 + 2 35 3 58 -0.26491264012522D+00 0.10034896822246D-17 + 3 35 3 58 0.62299032448476D+00 0.50850827549556D-17 + 1 36 3 58 -0.45615503776574D+00 0.84333755798785D-17 + 2 36 3 58 -0.61830381521060D+00 -0.51743890334647D-16 + 3 36 3 58 -0.93113972708093D+00 0.56366983167719D-17 + 1 37 3 58 -0.24610974420285D+00 0.18969927249442D-16 + 2 37 3 58 -0.24018265599631D+00 -0.31803219637517D-16 + 3 37 3 58 0.53148809985973D+00 0.80474098072639D-16 + 1 38 3 58 0.29825601567531D-02 0.12120588663534D-16 + 2 38 3 58 0.18019124741021D+00 -0.13124792027617D-16 + 3 38 3 58 0.10626880733348D+00 0.23741344610212D-16 + 1 39 3 58 -0.63253059845948D+00 0.12514979331648D-16 + 2 39 3 58 -0.46177411275870D+00 -0.85818240304924D-17 + 3 39 3 58 -0.50206812739809D+00 0.10526739882530D-15 + 1 40 3 58 -0.12532163534032D+01 -0.22725224094853D-16 + 2 40 3 58 0.31874796976435D+01 0.45235716032022D-17 + 3 40 3 58 -0.31017691541785D+01 0.12232793425919D-15 + 1 41 3 58 -0.14950307013228D+01 0.72861783511038D-17 + 2 41 3 58 -0.31475754789696D+01 0.85488196853512D-18 + 3 41 3 58 -0.31906510664380D+01 0.32521666089627D-15 + 1 42 3 58 0.22422150556930D+01 0.81386421733084D-18 + 2 42 3 58 -0.37785239078169D+01 -0.21843135744291D-17 + 3 42 3 58 -0.19446621466388D+01 -0.80079306946220D-15 + 1 43 3 58 0.16287765163973D+01 0.58452333306864D-17 + 2 43 3 58 0.32987071675482D+01 0.00000000000000D+00 + 3 43 3 58 -0.32451830657095D+01 -0.26616978656152D-16 + 1 44 3 58 -0.66047993622610D-01 0.27131614161702D-16 + 2 44 3 58 -0.14387887629046D+00 -0.27542784087465D-17 + 3 44 3 58 -0.26287299123699D+00 -0.22502231147226D-15 + 1 45 3 58 -0.14193478143410D+00 -0.27065551165718D-16 + 2 45 3 58 0.10413342879518D+00 -0.12300145383894D-18 + 3 45 3 58 -0.19898996517371D+00 -0.44651303515560D-16 + 1 46 3 58 -0.10890786888940D+00 -0.10390589850654D-16 + 2 46 3 58 0.51957007617259D+00 0.21367711867700D-17 + 3 46 3 58 0.11250902439584D+00 0.24304087686225D-15 + 1 47 3 58 0.15638035851824D-01 -0.60068057963311D-17 + 2 47 3 58 -0.51949986066785D+00 -0.20284730611224D-17 + 3 47 3 58 -0.31513249573964D+00 0.65733926536233D-16 + 1 48 3 58 -0.42205070125684D+00 0.93120156451597D-17 + 2 48 3 58 -0.40212139172871D+00 0.25046316384887D-16 + 3 48 3 58 0.23490982432095D+00 0.59953201564098D-16 + 1 49 3 58 0.49952396734700D+00 0.74556868276409D-17 + 2 49 3 58 -0.49151781919568D+00 0.56768233237867D-17 + 3 49 3 58 -0.55330131078287D+00 -0.76910268611767D-16 + 1 50 3 58 0.17151064833579D+02 -0.45365497345198D-17 + 2 50 3 58 -0.16509815584852D+02 -0.21424398517523D-16 + 3 50 3 58 -0.25943254441570D+02 0.44514318050061D-15 + 1 51 3 58 0.35569019419800D+00 0.50369232014286D-17 + 2 51 3 58 -0.16366981488137D+00 -0.85650092323316D-17 + 3 51 3 58 0.44715972523504D+00 -0.45580283177921D-16 + 1 52 3 58 0.59823138478368D+00 0.22806283505210D-16 + 2 52 3 58 -0.69117859893013D+00 -0.16987192808165D-16 + 3 52 3 58 -0.60193948425331D+00 -0.72516943166148D-16 + 1 53 3 58 0.11555303207962D-01 -0.18057064064834D-16 + 2 53 3 58 -0.51697840507663D-01 -0.58393452610911D-16 + 3 53 3 58 0.27493805249823D+00 0.83719479395064D-16 + 1 54 3 58 0.20189496355113D+00 -0.20130322318560D-16 + 2 54 3 58 0.33929061429274D+00 -0.57928487645081D-16 + 3 54 3 58 0.33670670103112D+00 0.48532722210032D-16 + 1 55 3 58 0.27401375196434D+00 -0.27417043203683D-16 + 2 55 3 58 -0.76511502303097D-01 0.23165430375999D-16 + 3 55 3 58 -0.62129055617945D+00 0.14333920400285D-15 + 1 56 3 58 -0.30991150850772D+00 -0.52750437884576D-18 + 2 56 3 58 -0.20439597042973D+00 -0.11748093729295D-16 + 3 56 3 58 -0.16738313558674D+00 -0.25743112888054D-17 + 1 57 3 58 -0.60412417775755D-01 0.83686141514948D-17 + 2 57 3 58 -0.25756283878901D-01 -0.11994783524325D-17 + 3 57 3 58 -0.18124573639914D+00 -0.10060212284119D-17 + 1 58 3 58 0.68310894103217D+00 0.00000000000000D+00 + 2 58 3 58 0.11969682585247D+00 0.00000000000000D+00 + 3 58 3 58 0.12110065699664D+03 0.00000000000000D+00 + 1 59 3 58 -0.38138444980193D-01 -0.56065314171706D-17 + 2 59 3 58 0.88364560270813D-01 -0.62628150806309D-17 + 3 59 3 58 -0.40246564189427D+00 0.44095007059519D-18 + 1 60 3 58 0.61638313884036D+00 0.11863199586408D-16 + 2 60 3 58 -0.45036500072236D+00 0.41671973449388D-17 + 3 60 3 58 0.12036259698951D+01 -0.76996072607607D-17 + 1 61 3 58 0.55066654507335D-02 -0.49616392092954D-18 + 2 61 3 58 -0.36608589249551D-01 -0.43123299578542D-18 + 3 61 3 58 -0.12424139542536D+00 0.99837806378851D-18 + 1 62 3 58 0.45780525994136D+00 -0.10644932863842D-16 + 2 62 3 58 0.28769115120802D+00 -0.13822250601698D-18 + 3 62 3 58 -0.12788006633506D+00 -0.28596357016944D-17 + 1 63 3 58 0.61681663058373D-03 -0.56673740857703D-17 + 2 63 3 58 0.10534837771692D+00 -0.27723095399023D-17 + 3 63 3 58 -0.12417076851962D+00 0.21862922833042D-17 + 1 64 3 58 -0.25613440692053D+00 -0.46776970951202D-16 + 2 64 3 58 -0.26082180274969D+00 0.30015242058625D-16 + 3 64 3 58 -0.50075250552094D+00 -0.24813975185599D-16 + 1 65 3 58 -0.11024226193011D+01 0.27541220070431D-16 + 2 65 3 58 0.65280978870094D+00 0.11371437999996D-16 + 3 65 3 58 0.12473213394782D+01 -0.12199548018537D-16 + 1 1 1 59 -0.78592107040989D+00 0.11113051500187D-15 + 2 1 1 59 0.46029301411802D+00 0.25537045664542D-16 + 3 1 1 59 -0.47089004501018D+00 -0.19558163040290D-16 + 1 2 1 59 0.18966302382550D+00 0.75279327132105D-17 + 2 2 1 59 0.27707858760759D+00 0.27321438599191D-16 + 3 2 1 59 0.35138773653670D+00 0.36654759395191D-17 + 1 3 1 59 0.22931480882146D+00 -0.37601530647444D-16 + 2 3 1 59 -0.35239402038777D+00 0.28595571385209D-16 + 3 3 1 59 -0.29022933731612D+00 0.25841680724071D-16 + 1 4 1 59 -0.26326713723825D+02 0.92566526728139D-17 + 2 4 1 59 0.14678196712314D+02 -0.46893053293846D-16 + 3 4 1 59 -0.14477059088582D+02 0.17087080860023D-16 + 1 5 1 59 0.19309537375821D+00 -0.48933677586841D-16 + 2 5 1 59 0.79971555683554D-02 -0.16785887413789D-16 + 3 5 1 59 -0.28826890102680D-01 -0.20075529068524D-16 + 1 6 1 59 -0.44551561571322D+00 0.43370304595176D-16 + 2 6 1 59 0.52775938851813D+00 -0.40140022176859D-16 + 3 6 1 59 -0.46486050728527D+00 -0.36528114523960D-17 + 1 7 1 59 -0.31512814179122D+00 -0.87087257258324D-16 + 2 7 1 59 0.45552372354200D+00 -0.11790728541400D-16 + 3 7 1 59 -0.44224998145374D+00 -0.10640020519847D-16 + 1 8 1 59 0.39734956014696D+00 0.82962391450924D-16 + 2 8 1 59 0.27710318582960D+00 -0.23826323703902D-17 + 3 8 1 59 -0.22867874047309D+00 0.31001728645529D-16 + 1 9 1 59 -0.26513434349829D+00 -0.13300354781411D-15 + 2 9 1 59 -0.88364808457841D-01 0.74174375154343D-18 + 3 9 1 59 -0.10882249164783D+00 0.52091463064516D-16 + 1 10 1 59 -0.30750329147910D+01 -0.10735743480024D-15 + 2 10 1 59 0.31522845379931D+01 -0.17116590909934D-17 + 3 10 1 59 -0.12418553858657D+01 0.30475168216120D-16 + 1 11 1 59 -0.21575864670251D+00 0.18495775761721D-15 + 2 11 1 59 0.85136664112451D-01 0.15851864957376D-17 + 3 11 1 59 0.10667108461057D+00 -0.17344732211489D-16 + 1 12 1 59 -0.30647115086679D+01 -0.48453917027218D-16 + 2 12 1 59 -0.30596651663490D+01 0.18947549887845D-17 + 3 12 1 59 0.13761677586902D+01 -0.99565773643362D-16 + 1 13 1 59 -0.23316055675786D+00 0.15753106185928D-15 + 2 13 1 59 0.95524459798810D-01 0.14964860440594D-19 + 3 13 1 59 -0.12734062973724D+00 -0.24891673398390D-16 + 1 14 1 59 -0.30813310039781D+01 -0.96134410691636D-16 + 2 14 1 59 -0.31991757639689D+01 0.42846906044412D-18 + 3 14 1 59 -0.13673988736778D+01 -0.41987560006196D-16 + 1 15 1 59 -0.30574761769625D+01 0.45902373691126D-17 + 2 15 1 59 0.32811025291624D+01 -0.28641868780195D-18 + 3 15 1 59 0.13103510648214D+01 -0.11183368033542D-16 + 1 16 1 59 -0.77717561802623D+00 -0.62240256266117D-16 + 2 16 1 59 -0.51547249503314D+00 -0.20095773630532D-16 + 3 16 1 59 0.59936482346721D+00 0.54464290520418D-17 + 1 17 1 59 0.19346724068185D+00 0.17273617606866D-15 + 2 17 1 59 -0.29583507294684D+00 -0.72222504312354D-17 + 3 17 1 59 -0.33125308076840D+00 -0.95125405495001D-18 + 1 18 1 59 0.20291562690677D+00 0.28197454744894D-15 + 2 18 1 59 0.34208337300893D+00 0.16879802742921D-16 + 3 18 1 59 0.26756134160941D+00 -0.49746238024485D-17 + 1 19 1 59 -0.27140407075915D+02 0.80085083528086D-16 + 2 19 1 59 -0.14657072719820D+02 -0.42957390725187D-16 + 3 19 1 59 0.14117436603271D+02 -0.62768305833522D-17 + 1 20 1 59 0.25748660815604D+00 0.17850854161482D-16 + 2 20 1 59 -0.44235881324100D-02 0.48982011844094D-18 + 3 20 1 59 0.16149580206863D-01 -0.83595761962810D-17 + 1 21 1 59 -0.42574411112178D+00 -0.30754546603327D-16 + 2 21 1 59 -0.48878863251807D+00 -0.20975100719001D-16 + 3 21 1 59 0.49371812521040D+00 0.21082089363668D-16 + 1 22 1 59 -0.69224099805295D-01 0.92670350600231D-16 + 2 22 1 59 -0.49185051631149D+00 0.22826114265757D-16 + 3 22 1 59 0.28641075667356D+00 0.76033521611859D-17 + 1 23 1 59 0.47011509603784D+00 -0.91077142821966D-16 + 2 23 1 59 -0.31572160078403D+00 -0.15324278091855D-16 + 3 23 1 59 0.24689778800012D+00 -0.25215096168324D-16 + 1 24 1 59 -0.25031735777227D+00 0.10867020193327D-15 + 2 24 1 59 -0.11878037928652D+00 0.33671933626312D-16 + 3 24 1 59 -0.88994994054172D-01 -0.23270203133876D-17 + 1 25 1 59 -0.22263137836702D+00 -0.23306036907524D-16 + 2 25 1 59 0.85795956644175D-01 0.84381729142356D-16 + 3 25 1 59 0.10249546607287D+00 0.12555363606064D-17 + 1 26 1 59 -0.30434692768448D+01 0.48491602494298D-16 + 2 26 1 59 -0.12394348388543D+01 -0.55234340892629D-16 + 3 26 1 59 0.31716179054068D+01 -0.21265724871398D-17 + 1 27 1 59 -0.30469835809634D+01 -0.25826191211234D-15 + 2 27 1 59 0.13679500992356D+01 0.43059370967019D-16 + 3 27 1 59 -0.31599033686936D+01 -0.54208708494543D-18 + 1 28 1 59 -0.23944541779591D+00 0.46678348448505D-17 + 2 28 1 59 -0.12681713296579D+00 0.39541749205640D-17 + 3 28 1 59 0.81668301919142D-01 0.99141593717471D-18 + 1 29 1 59 -0.22652366868190D+00 -0.31497809978696D-15 + 2 29 1 59 0.73751630300908D-01 -0.97663210617975D-16 + 3 29 1 59 -0.93447115162301D-01 -0.20506648748720D-17 + 1 30 1 59 -0.30043583412530D+01 -0.12998379151326D-16 + 2 30 1 59 -0.12210961823145D+01 -0.89594921074337D-16 + 3 30 1 59 -0.31155961361121D+01 -0.88428159162653D-17 + 1 31 1 59 -0.31707252962002D+01 0.58096989457227D-16 + 2 31 1 59 0.12864439244776D+01 0.19031821731409D-16 + 3 31 1 59 0.31016132636269D+01 -0.83951886712524D-18 + 1 32 1 59 -0.77015767769167D+00 0.96883269669723D-16 + 2 32 1 59 -0.45010459969444D+00 0.10041383444261D-16 + 3 32 1 59 -0.52080259707712D+00 0.25618996091802D-16 + 1 33 1 59 0.17633524868552D+00 -0.49266252692159D-16 + 2 33 1 59 -0.19985889980303D+00 0.16146177930952D-16 + 3 33 1 59 0.31821622388506D+00 0.13919046604097D-16 + 1 34 1 59 0.15328911515379D+00 0.41233502065374D-17 + 2 34 1 59 0.26505761927302D+00 0.13232104097872D-16 + 3 34 1 59 -0.22564467784923D+00 0.14112261465069D-16 + 1 35 1 59 -0.25794221122147D+02 -0.71073621224361D-16 + 2 35 1 59 -0.13738598552669D+02 0.17922828823646D-16 + 3 35 1 59 -0.13679113574287D+02 0.74935330336723D-17 + 1 36 1 59 0.24369046204170D+00 0.75265254874321D-16 + 2 36 1 59 -0.67656636498690D-02 0.40712838345996D-16 + 3 36 1 59 -0.45448141448589D-01 -0.10650732524043D-16 + 1 37 1 59 -0.49304833638928D+00 -0.24879824019382D-15 + 2 37 1 59 -0.50130163375714D+00 0.33002816556913D-17 + 3 37 1 59 -0.36482159917444D+00 0.27715406231350D-16 + 1 38 1 59 -0.45333922621259D+00 -0.22871328099778D-17 + 2 38 1 59 -0.45618244863945D+00 0.55407659806649D-18 + 3 38 1 59 -0.50891363746347D+00 -0.39071720071951D-16 + 1 39 1 59 0.52464302253744D+00 0.16414951674804D-15 + 2 39 1 59 -0.32135967168936D+00 -0.13250009385838D-16 + 3 39 1 59 -0.34486761325059D+00 0.23914617768688D-16 + 1 40 1 59 0.31556423151157D+01 0.50565268428763D-16 + 2 40 1 59 0.12502012486378D+01 -0.25722541033569D-16 + 3 40 1 59 0.12789171090115D+01 0.20630907013361D-17 + 1 41 1 59 0.30499504829966D+01 -0.15988045350396D-16 + 2 41 1 59 -0.13075662148973D+01 -0.25813592899401D-17 + 3 41 1 59 0.12884369863742D+01 0.30935250672217D-16 + 1 42 1 59 0.31882659330409D+01 0.98519690476373D-17 + 2 42 1 59 0.12532163534032D+01 0.36665463661764D-17 + 3 42 1 59 -0.12980637146701D+01 0.15273876988911D-16 + 1 43 1 59 0.30753321824938D+01 0.21945746250142D-15 + 2 43 1 59 -0.14950307013228D+01 -0.29243173990131D-16 + 3 43 1 59 -0.15222885050610D+01 0.31896408493703D-16 + 1 44 1 59 -0.19982934461847D-01 -0.12070082232694D-15 + 2 44 1 59 0.11656811585862D+00 0.30153049576106D-16 + 3 44 1 59 0.13299472840209D+00 0.24733279648490D-16 + 1 45 1 59 -0.20122628419788D-01 -0.10687371890613D-16 + 2 45 1 59 -0.95229223935950D-01 -0.30693320981715D-16 + 3 45 1 59 0.10515103233070D+00 0.16400550250583D-16 + 1 46 1 59 -0.20198582307335D-01 -0.45423007646670D-16 + 2 46 1 59 0.14193478143411D+00 -0.15250932289826D-16 + 3 46 1 59 -0.12057846732557D+00 0.34280461243565D-17 + 1 47 1 59 -0.23349397939516D-02 0.54048350180992D-16 + 2 47 1 59 -0.66047993622603D-01 -0.13089163428897D-16 + 3 47 1 59 -0.52633044411417D-01 -0.22330617547204D-16 + 1 48 1 59 -0.75060432465814D+00 -0.27670713213402D-15 + 2 48 1 59 0.49830994239345D+00 -0.32186079786002D-16 + 3 48 1 59 0.48409400010692D+00 0.66833113118559D-17 + 1 49 1 59 0.18950469390944D+00 0.11087812946419D-15 + 2 49 1 59 0.28250092722397D+00 -0.64815499175368D-18 + 3 49 1 59 -0.32566797249812D+00 0.10463067047830D-16 + 1 50 1 59 0.57174427519660D-01 -0.11984139107091D-15 + 2 50 1 59 -0.41327057253000D-01 0.44374203460088D-17 + 3 50 1 59 -0.33794676895592D-01 0.75375696682784D-17 + 1 51 1 59 -0.25336542636213D+02 -0.23868655836695D-15 + 2 51 1 59 0.13879011340542D+02 -0.10648968212295D-16 + 3 51 1 59 0.13677385535158D+02 0.26973576972661D-16 + 1 52 1 59 0.27664613061127D+00 -0.18920280209585D-15 + 2 52 1 59 0.84150502029028D-02 -0.39912196923121D-16 + 3 52 1 59 -0.20626483504744D-02 -0.31175456922791D-16 + 1 53 1 59 -0.37009599433221D+00 -0.12054143665103D-15 + 2 53 1 59 0.45192755122545D+00 -0.25679843615998D-16 + 3 53 1 59 0.46559347373896D+00 0.25525123794253D-16 + 1 54 1 59 -0.46736184534094D+00 -0.15913969791541D-15 + 2 54 1 59 0.42315601101540D+00 0.40290775230976D-16 + 3 54 1 59 0.55398192425771D+00 0.33053060005999D-16 + 1 55 1 59 0.36923994026917D+00 -0.32430964021583D-16 + 2 55 1 59 0.20300347704440D+00 0.40575117332232D-16 + 3 55 1 59 0.29686620036028D+00 0.28004284708731D-16 + 1 56 1 59 0.16147086050100D+01 0.83233577287644D-17 + 2 56 1 59 0.73096735208846D-01 0.92573540911755D-18 + 3 56 1 59 0.60412417775755D-01 0.53656396734104D-17 + 1 57 1 59 -0.23882617083894D+00 -0.32834195786899D-18 + 2 57 1 59 0.15564013824402D-02 0.00000000000000D+00 + 3 57 1 59 -0.10301842422670D-01 0.11439216266803D-18 + 1 58 1 59 -0.19374587556379D+00 0.20138780813936D-16 + 2 58 1 59 -0.42250900489266D-02 0.24085191181002D-17 + 3 58 1 59 -0.38138444980193D-01 0.56065314171706D-17 + 1 59 1 59 0.12000135680810D+03 0.00000000000000D+00 + 2 59 1 59 -0.12319061319927D+00 0.00000000000000D+00 + 3 59 1 59 0.65807813668281D+00 0.00000000000000D+00 + 1 60 1 59 -0.12166211096926D+00 0.17467585203297D-17 + 2 60 1 59 0.52381069365457D-02 0.34635136209811D-17 + 3 60 1 59 -0.55066654507337D-02 -0.30341342963624D-18 + 1 61 1 59 -0.14155133170060D+00 -0.61790909348629D-18 + 2 61 1 59 -0.15033632328304D-01 -0.25410139915826D-18 + 3 61 1 59 -0.23946093418141D-01 0.14281895448478D-17 + 1 62 1 59 -0.19511828925900D+00 -0.21014510621352D-16 + 2 62 1 59 -0.78044554531757D-02 0.13409308896380D-17 + 3 62 1 59 0.61681663058524D-03 0.63259229839150D-17 + 1 63 1 59 -0.42441281638000D+00 -0.29487980968875D-17 + 2 63 1 59 0.27334226525659D-02 -0.71195992941032D-18 + 3 63 1 59 0.15132030000379D-02 -0.45509722048618D-18 + 1 64 1 59 -0.97987867871702D-02 -0.15160333767651D-15 + 2 64 1 59 0.78305496966336D-02 0.81038027950789D-17 + 3 64 1 59 0.60810909845794D-01 0.81357544297640D-16 + 1 65 1 59 -0.18114310583077D+00 -0.94566566132407D-16 + 2 65 1 59 -0.31380617561640D+00 0.11899066012668D-16 + 3 65 1 59 0.14635713762281D+00 -0.16168274385848D-16 + 1 1 2 59 0.47064181745670D+00 0.25537045664542D-16 + 2 1 2 59 -0.34766337276457D+00 0.16025854320026D-15 + 3 1 2 59 0.42846589831313D+00 -0.15812781384093D-16 + 1 2 2 59 0.23380228617191D+00 0.27321438599191D-16 + 2 2 2 59 0.58598536914087D+00 -0.14725448057843D-15 + 3 2 2 59 0.37492435584406D+00 -0.32884023583560D-16 + 1 3 2 59 -0.35660563057979D+00 0.28595571385209D-16 + 2 3 2 59 0.19045136784064D+00 0.37559922656246D-16 + 3 3 2 59 0.21799906534147D+00 -0.25393623519924D-16 + 1 4 2 59 0.14705333028176D+02 -0.46893053293846D-16 + 2 4 2 59 -0.26673406555051D+02 -0.36380949385621D-16 + 3 4 2 59 0.14444249625280D+02 0.11508917199977D-16 + 1 5 2 59 0.29121581310744D-01 -0.16785887413789D-16 + 2 5 2 59 0.24478245845664D+00 0.82341188905156D-17 + 3 5 2 59 -0.50694550586705D-01 0.75251806958873D-17 + 1 6 2 59 0.52437964590650D+00 -0.40140022176859D-16 + 2 6 2 59 -0.44967235785732D+00 -0.46101306575457D-16 + 3 6 2 59 0.43513197182491D+00 -0.16351237642621D-16 + 1 7 2 59 0.48369823738221D+00 -0.11790728541400D-16 + 2 7 2 59 -0.78338733454981D+00 0.64858810651130D-16 + 3 7 2 59 0.45833681568794D+00 0.19367772448273D-16 + 1 8 2 59 0.24735014074084D+00 -0.23826323703902D-17 + 2 8 2 59 0.18807102073722D+00 0.38832781762366D-16 + 3 8 2 59 -0.30778667023404D+00 -0.17142636989006D-16 + 1 9 2 59 -0.65195109669495D-01 0.74174375154343D-18 + 2 9 2 59 -0.25204749713281D+00 0.68956463646503D-16 + 3 9 2 59 0.13376023552567D+00 0.27140105810237D-16 + 1 10 2 59 0.31880379749958D+01 -0.17116590909934D-17 + 2 10 2 59 -0.31010690740300D+01 0.20964349368614D-15 + 3 10 2 59 0.12833129941631D+01 -0.61633514955095D-16 + 1 11 2 59 0.11601899127567D+00 0.15851864957376D-17 + 2 11 2 59 -0.25453576973771D+00 0.10689032007881D-15 + 3 11 2 59 0.99859390646111D-01 -0.99866296481878D-16 + 1 12 2 59 -0.31071750059116D+01 0.18947549887845D-17 + 2 12 2 59 -0.30652285689547D+01 -0.10120442643649D-15 + 3 12 2 59 0.12023475815095D+01 -0.91022277452977D-17 + 1 13 2 59 0.10856887234079D+00 0.14964860440594D-19 + 2 13 2 59 -0.22820182169768D+00 0.20799184396671D-15 + 3 13 2 59 -0.69079466598023D-01 -0.39324229861036D-16 + 1 14 2 59 -0.32039522267035D+01 0.42846906044412D-18 + 2 14 2 59 -0.31136975303414D+01 -0.28300301505642D-16 + 3 14 2 59 -0.12511127867583D+01 -0.27733402855143D-18 + 1 15 2 59 0.31534604980328D+01 -0.28641868780195D-18 + 2 15 2 59 -0.31111385464382D+01 -0.14425602217186D-16 + 3 15 2 59 -0.13775885799320D+01 -0.63151988148130D-16 + 1 16 2 59 -0.44805328709032D+00 -0.20095773630532D-16 + 2 16 2 59 -0.51190641997774D+00 0.64792548601053D-16 + 3 16 2 59 0.61055482526110D+00 -0.13136036863711D-16 + 1 17 2 59 -0.26040622557041D+00 -0.72222504312354D-17 + 2 17 2 59 0.45098802112202D+00 0.50849391047163D-16 + 3 17 2 59 0.27558435795446D+00 -0.10792324224532D-17 + 1 18 2 59 0.32023862973356D+00 0.16879802742921D-16 + 2 18 2 59 0.23777045636008D+00 -0.11229485250946D-15 + 3 18 2 59 0.26183416531372D+00 0.28030243579709D-16 + 1 19 2 59 -0.14840802524424D+02 -0.42957390725187D-16 + 2 19 2 59 -0.25763641485448D+02 -0.35614195980697D-16 + 3 19 2 59 0.13709035226119D+02 0.72510962659043D-18 + 1 20 2 59 -0.22643509870745D-01 0.48982011844094D-18 + 2 20 2 59 0.26805640929539D+00 0.11576465629728D-15 + 3 20 2 59 0.27822975149862D-01 0.62849037170071D-17 + 1 21 2 59 -0.46661777973952D+00 -0.20975100719001D-16 + 2 21 2 59 -0.37201695309457D+00 0.17051323976322D-15 + 3 21 2 59 0.46213141658107D+00 -0.26883721394533D-16 + 1 22 2 59 -0.34082333285975D+00 0.22826114265757D-16 + 2 22 2 59 -0.81185336706516D+00 0.32077893508970D-16 + 3 22 2 59 0.60352768827599D+00 -0.68490481060042D-17 + 1 23 2 59 -0.32358218209426D+00 -0.15324278091855D-16 + 2 23 2 59 0.24708348230197D+00 0.77616612976229D-16 + 3 23 2 59 -0.30091129439677D+00 0.70586463774988D-17 + 1 24 2 59 0.98105471988989D-01 0.33671933626312D-16 + 2 24 2 59 -0.40209081495176D-01 -0.16996857857263D-15 + 3 24 2 59 -0.99268420215568D-01 0.65376215507329D-18 + 1 25 2 59 -0.12077597060909D+00 0.84381729142356D-16 + 2 25 2 59 -0.18398839271199D-01 -0.78180846307868D-17 + 3 25 2 59 -0.12548940319258D+00 -0.14412645203877D-16 + 1 26 2 59 0.13270267936535D+01 -0.55234340892629D-16 + 2 26 2 59 0.30332084301199D+01 0.86109164438379D-16 + 3 26 2 59 -0.12419318315307D+01 0.29165694908743D-16 + 1 27 2 59 -0.12503487019539D+01 0.43059370967019D-16 + 2 27 2 59 0.30996653802460D+01 0.13976694329223D-15 + 3 27 2 59 -0.12746428311669D+01 -0.12039671785860D-16 + 1 28 2 59 0.80210145194051D-01 0.39541749205640D-17 + 2 28 2 59 -0.17411223374568D-01 -0.22650906456216D-15 + 3 28 2 59 0.73875759257911D-01 -0.34406138052595D-16 + 1 29 2 59 -0.10238686586998D+00 -0.97663210617975D-16 + 2 29 2 59 -0.52495826598260D-01 0.17939059733785D-15 + 3 29 2 59 0.12466780722943D+00 0.20360572030868D-16 + 1 30 2 59 0.13652157069082D+01 -0.89594921074337D-16 + 2 30 2 59 0.30610124002741D+01 -0.75520585399535D-16 + 3 30 2 59 0.14276448489624D+01 -0.23113293868418D-16 + 1 31 2 59 -0.12344925828660D+01 0.19031821731409D-16 + 2 31 2 59 0.30446783493883D+01 -0.71316105470734D-16 + 3 31 2 59 0.11343705741543D+01 -0.32887249739870D-16 + 1 32 2 59 -0.42673169159092D+00 0.10041383444261D-16 + 2 32 2 59 -0.45982337843817D+00 0.71097825239411D-16 + 3 32 2 59 -0.41374287618090D+00 -0.23859983264610D-16 + 1 33 2 59 -0.29923597616247D+00 0.16146177930952D-16 + 2 33 2 59 0.42551965214467D+00 -0.16493381625353D-15 + 3 33 2 59 -0.28016256143627D+00 -0.38294893028781D-16 + 1 34 2 59 0.31389755507366D+00 0.13232104097872D-16 + 2 34 2 59 0.17637186941306D+00 -0.91001129189359D-16 + 3 34 2 59 -0.30191942014922D+00 0.30048722091778D-16 + 1 35 2 59 -0.13654215728241D+02 0.17922828823646D-16 + 2 35 2 59 -0.25755365692805D+02 -0.14202584198361D-15 + 3 35 2 59 -0.13932091528740D+02 -0.27293657691709D-16 + 1 36 2 59 -0.22552624962986D-01 0.40712838345996D-16 + 2 36 2 59 0.29116309027544D+00 -0.10324724972095D-15 + 3 36 2 59 -0.28309789651055D-02 -0.18191915097351D-16 + 1 37 2 59 -0.43710435220490D+00 0.33002816556913D-17 + 2 37 2 59 -0.37587517196716D+00 -0.39112884481744D-16 + 3 37 2 59 -0.46614700581314D+00 0.19239500083021D-16 + 1 38 2 59 -0.51501859925011D+00 0.55407659806649D-18 + 2 38 2 59 -0.80735361833170D+00 0.68133193747645D-16 + 3 38 2 59 -0.48027594224421D+00 -0.78824361381150D-17 + 1 39 2 59 -0.32051276862331D+00 -0.13250009385838D-16 + 2 39 2 59 0.17794304813892D+00 0.59305443060077D-16 + 3 39 2 59 0.32860218100949D+00 -0.23633349587579D-16 + 1 40 2 59 -0.12789171090115D+01 -0.25722541033569D-16 + 2 40 2 59 -0.29961780079478D+01 0.25701400291329D-15 + 3 40 2 59 -0.30830550896706D+01 -0.31966924060225D-18 + 1 41 2 59 0.12884369863742D+01 -0.25813592899401D-17 + 2 41 2 59 -0.31342894738195D+01 -0.14515987184342D-15 + 3 41 2 59 0.32259684776565D+01 -0.45860476559442D-18 + 1 42 2 59 -0.13686463220820D+01 0.36665463661764D-17 + 2 42 2 59 -0.31017691541785D+01 -0.91998130846733D-16 + 3 42 2 59 0.32644467995037D+01 -0.19613093789128D-17 + 1 43 2 59 0.10982907017704D+01 -0.29243173990131D-16 + 2 43 2 59 -0.31906510664380D+01 -0.19084131329872D-15 + 3 43 2 59 -0.31255487756682D+01 0.66868547976930D-17 + 1 44 2 59 -0.10515103233069D+00 0.30153049576106D-16 + 2 44 2 59 -0.22848785946546D+00 -0.29229389910845D-15 + 3 44 2 59 0.10643754625190D+00 0.17481178554449D-17 + 1 45 2 59 0.13299472840209D+00 -0.30693320981715D-16 + 2 45 2 59 -0.22774994674944D+00 0.55241463728441D-16 + 3 45 2 59 -0.10631103492100D+00 0.33077248518988D-18 + 1 46 2 59 -0.16133490743937D-01 -0.15250932289826D-16 + 2 46 2 59 -0.19898996517371D+00 -0.21320835929165D-15 + 3 46 2 59 -0.10055451728177D+00 -0.11842992465224D-17 + 1 47 2 59 0.77343943757405D-01 -0.13089163428897D-16 + 2 47 2 59 -0.26287299123699D+00 0.15773295267860D-15 + 3 47 2 59 0.99437535727201D-01 0.26654503124187D-17 + 1 48 2 59 0.43144431608079D+00 -0.32186079786002D-16 + 2 48 2 59 -0.36088245076100D+00 -0.18240325086649D-16 + 3 48 2 59 -0.41751349235391D+00 -0.30855623846497D-16 + 1 49 2 59 0.31472751484528D+00 -0.64815499175368D-18 + 2 49 2 59 0.49246290484205D+00 -0.11946784030311D-15 + 3 49 2 59 -0.30305418033182D+00 -0.24850705426428D-16 + 1 50 2 59 -0.55427107238890D-02 0.44374203460088D-17 + 2 50 2 59 0.17804663887289D+00 -0.17800845683714D-15 + 3 50 2 59 -0.28225134787878D+00 0.66247076220285D-16 + 1 51 2 59 0.13816776238180D+02 -0.10648968212295D-16 + 2 51 2 59 -0.26062789866101D+02 -0.74346609288669D-16 + 3 51 2 59 -0.13994635157626D+02 -0.21332617738883D-16 + 1 52 2 59 0.26176467133665D-02 -0.39912196923121D-16 + 2 52 2 59 0.29520040261450D+00 0.32549987845057D-16 + 3 52 2 59 -0.54559282343331D-01 0.33176794198823D-18 + 1 53 2 59 0.47002277043586D+00 -0.25679843615998D-16 + 2 53 2 59 -0.37052391080199D+00 -0.16525990394435D-15 + 3 53 2 59 -0.46924060623007D+00 0.10724703704355D-16 + 1 54 2 59 0.45135257442485D+00 0.40290775230976D-16 + 2 54 2 59 -0.76046130464859D+00 -0.94939782045270D-16 + 3 54 2 59 -0.46496587470431D+00 0.37787978972279D-16 + 1 55 2 59 0.26653682768796D+00 0.40575117332232D-16 + 2 55 2 59 0.15727104241103D+00 -0.14420457750481D-15 + 3 55 2 59 0.32225879136919D+00 0.39244037264903D-16 + 1 56 2 59 0.25656366926326D-01 0.92573540911755D-18 + 2 56 2 59 -0.10723510414042D+00 -0.18758476177106D-16 + 3 56 2 59 -0.25756283878901D-01 0.57151277933034D-17 + 1 57 2 59 -0.15564013824402D-02 0.00000000000000D+00 + 2 57 2 59 -0.40132057144187D+00 0.87045598562297D-18 + 3 57 2 59 -0.21764363757139D-01 -0.33967251557791D-18 + 1 58 2 59 0.28052321328861D-01 0.24085191181002D-17 + 2 58 2 59 -0.25125029174601D+00 0.81218386401089D-17 + 3 58 2 59 0.88364560270813D-01 0.62628150806309D-17 + 1 59 2 59 -0.12319061319927D+00 0.00000000000000D+00 + 2 59 2 59 0.11996040263773D+03 0.00000000000000D+00 + 3 59 2 59 -0.81338717684532D+00 0.00000000000000D+00 + 1 60 2 59 -0.12354351356588D-01 0.34635136209811D-17 + 2 60 2 59 -0.11789925547314D+00 0.24896510884965D-16 + 3 60 2 59 0.36608589249551D-01 -0.70880832027488D-18 + 1 61 2 59 -0.15033632328304D-01 -0.25410139915826D-18 + 2 61 2 59 -0.17315680606386D+00 -0.53566935876989D-18 + 3 61 2 59 -0.70666205511098D-02 0.61439371053863D-19 + 1 62 2 59 -0.13360427838615D+00 0.13409308896380D-17 + 2 62 2 59 0.14870128380568D+01 -0.41870979349100D-17 + 3 62 2 59 -0.10534837771692D+00 0.71756300563678D-19 + 1 63 2 59 -0.27334226525660D-02 -0.71195992941032D-18 + 2 63 2 59 -0.21965773484532D+00 -0.60690512067795D-18 + 3 63 2 59 -0.24459884158643D-03 -0.50941233095221D-18 + 1 64 2 59 0.18950573049603D-01 0.81038027950789D-17 + 2 64 2 59 -0.63565732970406D-01 -0.10921980433132D-17 + 3 64 2 59 0.17597811415123D-01 -0.26303236409650D-16 + 1 65 2 59 -0.28203786703251D+00 0.11899066012668D-16 + 2 65 2 59 0.22249896480047D-01 -0.16589113321708D-15 + 3 65 2 59 0.12066294572834D+00 -0.95071863060932D-16 + 1 1 3 59 -0.44525731202280D+00 -0.19558163040290D-16 + 2 1 3 59 0.43899228290186D+00 -0.15812781384093D-16 + 3 1 3 59 -0.32341740368545D+00 0.19336039257923D-15 + 1 2 3 59 0.33632806315325D+00 0.36654759395191D-17 + 2 2 3 59 0.34701699078133D+00 -0.32884023583560D-16 + 3 2 3 59 0.20982897868919D+00 0.99068438263370D-16 + 1 3 3 59 -0.32406161278393D+00 0.25841680724071D-16 + 2 3 3 59 0.29567997302833D+00 -0.25393623519924D-16 + 3 3 3 59 0.53072023251007D+00 0.31271593887793D-15 + 1 4 3 59 -0.14353000606928D+02 0.17087080860023D-16 + 2 4 3 59 0.14299918188595D+02 0.11508917199977D-16 + 3 4 3 59 -0.26293428596271D+02 -0.55507107903048D-16 + 1 5 3 59 -0.29764610515245D-01 -0.20075529068524D-16 + 2 5 3 59 0.94808506004455D-01 0.75251806958873D-17 + 3 5 3 59 0.79503731643843D-01 -0.27948638304785D-15 + 1 6 3 59 -0.48848716900826D+00 -0.36528114523960D-17 + 2 6 3 59 0.49790547501619D+00 -0.16351237642621D-16 + 3 6 3 59 -0.84989106608483D+00 0.16194504345999D-15 + 1 7 3 59 -0.41510684461685D+00 -0.10640020519847D-16 + 2 7 3 59 0.46766185471483D+00 0.19367772448273D-16 + 3 7 3 59 -0.37168114771698D+00 -0.10501767601416D-15 + 1 8 3 59 -0.23802945606287D+00 0.31001728645529D-16 + 2 8 3 59 -0.28569280361857D+00 -0.17142636989006D-16 + 3 8 3 59 0.19144027554771D+00 -0.13271037731905D-15 + 1 9 3 59 0.12442806753827D+00 0.52091463064516D-16 + 2 9 3 59 -0.11706295729564D+00 0.27140105810237D-16 + 3 9 3 59 -0.39034711006479D-01 0.94720994898206D-17 + 1 10 3 59 0.12876955666759D+01 0.30475168216120D-16 + 2 10 3 59 -0.13404540323597D+01 -0.61633514955095D-16 + 3 10 3 59 0.31461925409856D+01 -0.10116517660256D-16 + 1 11 3 59 -0.93845201709303D-01 -0.17344732211489D-16 + 2 11 3 59 -0.11196569201530D+00 -0.99866296481878D-16 + 3 11 3 59 -0.31187185983453D-01 0.96459049510884D-16 + 1 12 3 59 -0.15562468678296D+01 -0.99565773643362D-16 + 2 12 3 59 -0.13228488051543D+01 -0.91022277452977D-17 + 3 12 3 59 0.31319582770427D+01 -0.24763052274790D-17 + 1 13 3 59 0.10813448889692D+00 -0.24891673398390D-16 + 2 13 3 59 0.88500513317365D-01 -0.39324229861036D-16 + 3 13 3 59 -0.49105577665157D-02 -0.85239478054195D-16 + 1 14 3 59 0.13194687112185D+01 -0.41987560006196D-16 + 2 14 3 59 0.12654763266823D+01 -0.27733402855143D-18 + 3 14 3 59 0.31633305596009D+01 0.48962024889499D-16 + 1 15 3 59 -0.13086307270575D+01 -0.11183368033542D-16 + 2 15 3 59 0.14207456754165D+01 -0.63151988148130D-16 + 3 15 3 59 0.31612187369587D+01 0.27498497890752D-16 + 1 16 3 59 0.48194379625108D+00 0.54464290520418D-17 + 2 16 3 59 0.59930329214815D+00 -0.13136036863711D-16 + 3 16 3 59 -0.50047434236650D+00 0.20044405786310D-15 + 1 17 3 59 -0.32903125202355D+00 -0.95125405495001D-18 + 2 17 3 59 0.29820000814504D+00 -0.10792324224532D-17 + 3 17 3 59 0.17902564882348D+00 0.26864008248233D-15 + 1 18 3 59 0.26767530867153D+00 -0.49746238024485D-17 + 2 18 3 59 0.29554103937407D+00 0.28030243579709D-16 + 3 18 3 59 0.42850323800123D+00 0.29639127907137D-15 + 1 19 3 59 0.14248162262728D+02 -0.62768305833522D-17 + 2 19 3 59 0.13670665622604D+02 0.72510962659043D-18 + 3 19 3 59 -0.25536535365739D+02 -0.28711644035674D-15 + 1 20 3 59 0.13334431757601D-01 -0.83595761962810D-17 + 2 20 3 59 0.30515804448368D-01 0.62849037170071D-17 + 3 20 3 59 0.26462086478739D+00 -0.37349994260327D-16 + 1 21 3 59 0.45567704351572D+00 0.21082089363668D-16 + 2 21 3 59 0.47111525755596D+00 -0.26883721394533D-16 + 3 21 3 59 -0.81832269216946D+00 0.35472040312327D-15 + 1 22 3 59 0.25116868051170D+00 0.76033521611859D-17 + 2 22 3 59 0.39151104755289D+00 -0.68490481060042D-17 + 3 22 3 59 -0.27726425993110D+00 0.62317555829015D-16 + 1 23 3 59 0.24424858336584D+00 -0.25215096168324D-16 + 2 23 3 59 -0.30265282018592D+00 0.70586463774988D-17 + 3 23 3 59 0.18184668037693D+00 0.96434625601125D-16 + 1 24 3 59 -0.85695375456051D-01 -0.23270203133876D-17 + 2 24 3 59 0.98733218058407D-01 0.65376215507329D-18 + 3 24 3 59 -0.24768484707755D+00 -0.17617522805215D-15 + 1 25 3 59 0.90063254104477D-01 0.12555363606064D-17 + 2 25 3 59 0.92029099056184D-01 -0.14412645203877D-16 + 3 25 3 59 -0.23295520329197D+00 -0.17530907038564D-15 + 1 26 3 59 0.33078081980729D+01 -0.21265724871398D-17 + 2 26 3 59 0.12600447229703D+01 0.29165694908743D-16 + 3 26 3 59 -0.31777519768981D+01 -0.67082480300127D-16 + 1 27 3 59 -0.31491568175680D+01 -0.54208708494543D-18 + 2 27 3 59 0.13599716217812D+01 -0.12039671785860D-16 + 3 27 3 59 -0.30437881571425D+01 -0.33875389262332D-16 + 1 28 3 59 0.11482546015925D+00 0.99141593717471D-18 + 2 28 3 59 -0.11344991498160D+00 -0.34406138052595D-16 + 3 28 3 59 -0.21310322738957D+00 -0.25116199707156D-17 + 1 29 3 59 -0.11753736046785D+00 -0.20506648748720D-17 + 2 29 3 59 -0.85666039169643D-01 0.20360572030868D-16 + 3 29 3 59 -0.23208147027117D+00 0.29311972279079D-16 + 1 30 3 59 -0.31738889652452D+01 -0.88428159162653D-17 + 2 30 3 59 -0.12571940962572D+01 -0.23113293868418D-16 + 3 30 3 59 -0.30423786554363D+01 0.69691894530997D-16 + 1 31 3 59 0.31091888531854D+01 -0.83951886712524D-18 + 2 31 3 59 -0.13756832393009D+01 -0.32887249739870D-16 + 3 31 3 59 -0.30139916482755D+01 -0.29647145026878D-15 + 1 32 3 59 -0.30544660227199D+00 0.25618996091802D-16 + 2 32 3 59 -0.46664333485390D+00 -0.23859983264610D-16 + 3 32 3 59 -0.52469610687681D+00 0.66024713489538D-17 + 1 33 3 59 0.27566745941855D+00 0.13919046604097D-16 + 2 33 3 59 -0.23274844943710D+00 -0.38294893028781D-16 + 3 33 3 59 0.21967419079834D+00 -0.97901131439834D-16 + 1 34 3 59 -0.29601155427098D+00 0.14112261465069D-16 + 2 34 3 59 -0.27340328278778D+00 0.30048722091778D-16 + 3 34 3 59 0.43222364377869D+00 -0.89015107869458D-16 + 1 35 3 59 -0.13749665086973D+02 0.74935330336723D-17 + 2 35 3 59 -0.13838939719674D+02 -0.27293657691709D-16 + 3 35 3 59 -0.26190006915435D+02 -0.26614404086541D-15 + 1 36 3 59 -0.14456368115460D-01 -0.10650732524043D-16 + 2 36 3 59 -0.18546293613141D-01 -0.18191915097351D-16 + 3 36 3 59 0.26354632444338D+00 -0.41758924838175D-16 + 1 37 3 59 -0.35014435252327D+00 0.27715406231350D-16 + 2 37 3 59 -0.44375316277967D+00 0.19239500083021D-16 + 3 37 3 59 -0.91736458850017D+00 -0.12600008653111D-15 + 1 38 3 59 -0.52535734949561D+00 -0.39071720071951D-16 + 2 38 3 59 -0.47710773077174D+00 -0.78824361381150D-17 + 3 38 3 59 -0.44735271654360D+00 0.12979038367872D-15 + 1 39 3 59 -0.33179221431110D+00 0.23914617768688D-16 + 2 39 3 59 0.34435770576832D+00 -0.23633349587579D-16 + 3 39 3 59 0.19316941103678D+00 -0.10199750528829D-15 + 1 40 3 59 -0.12502012486378D+01 0.20630907013361D-17 + 2 40 3 59 -0.31184796091370D+01 -0.31966924060225D-18 + 3 40 3 59 -0.29961780079478D+01 -0.74087400237195D-16 + 1 41 3 59 -0.13075662148973D+01 0.30935250672217D-16 + 2 41 3 59 0.33093056973859D+01 -0.45860476559442D-18 + 3 41 3 59 -0.31342894738195D+01 -0.24968449985316D-15 + 1 42 3 59 0.14011878085562D+01 0.15273876988911D-16 + 2 42 3 59 0.31874796976435D+01 -0.19613093789128D-17 + 3 42 3 59 -0.32375816820263D+01 0.99472336166674D-16 + 1 43 3 59 0.11033339330700D+01 0.31896408493703D-16 + 2 43 3 59 -0.31475754789696D+01 0.66868547976930D-17 + 3 43 3 59 -0.29367943623405D+01 0.25869340093620D-15 + 1 44 3 59 -0.95229223935948D-01 0.24733279648490D-16 + 2 44 3 59 0.10272258709110D+00 0.17481178554449D-17 + 3 44 3 59 -0.22774994674944D+00 0.23961161435268D-15 + 1 45 3 59 -0.11656811585862D+00 0.16400550250583D-16 + 2 45 3 59 -0.10270295409905D+00 0.33077248518988D-18 + 3 45 3 59 -0.22848785946546D+00 0.16432945428061D-15 + 1 46 3 59 0.89382574095883D-01 0.34280461243565D-17 + 2 46 3 59 -0.10413342879518D+00 -0.11842992465224D-17 + 3 46 3 59 -0.21575497152441D+00 -0.27782439233721D-15 + 1 47 3 59 0.11767243478525D+00 -0.22330617547204D-16 + 2 47 3 59 0.14387887629046D+00 0.26654503124187D-17 + 3 47 3 59 -0.22821706536484D+00 0.44252416931284D-15 + 1 48 3 59 0.41642775373069D+00 0.66833113118559D-17 + 2 48 3 59 -0.42944402667853D+00 -0.30855623846497D-16 + 3 48 3 59 -0.32229451800095D+00 -0.18071227026838D-17 + 1 49 3 59 -0.34179935926502D+00 0.10463067047830D-16 + 2 49 3 59 -0.30437217106272D+00 -0.24850705426428D-16 + 3 49 3 59 0.16835463342987D+00 0.13550431372641D-16 + 1 50 3 59 -0.37616317979252D-02 0.75375696682784D-17 + 2 50 3 59 -0.20196117384879D-01 0.66247076220285D-16 + 3 50 3 59 -0.37611087067123D+00 -0.32290923740859D-15 + 1 51 3 59 0.13733332541572D+02 0.26973576972661D-16 + 2 51 3 59 -0.14107929617707D+02 -0.21332617738883D-16 + 3 51 3 59 -0.25999938377807D+02 0.73445473009194D-16 + 1 52 3 59 0.11650839707689D-02 -0.31175456922791D-16 + 2 52 3 59 0.18427734937984D-01 0.33176794198823D-18 + 3 52 3 59 0.29691473446176D+00 -0.14254033547292D-15 + 1 53 3 59 0.48491587255602D+00 0.25525123794253D-16 + 2 53 3 59 -0.46488166323621D+00 0.10724703704355D-16 + 3 53 3 59 -0.78547982018116D+00 0.53021614545101D-16 + 1 54 3 59 0.48216063573330D+00 0.33053060005999D-16 + 2 54 3 59 -0.55199541123175D+00 0.37787978972279D-16 + 3 54 3 59 -0.45552851098672D+00 -0.33807416399344D-16 + 1 55 3 59 0.33003961467011D+00 0.28004284708731D-16 + 2 55 3 59 0.27594970481658D+00 0.39244037264903D-16 + 3 55 3 59 0.22912581400825D+00 0.11442302466758D-16 + 1 56 3 59 -0.11525350264608D-01 0.53656396734104D-17 + 2 56 3 59 -0.51528606358534D-01 0.57151277933034D-17 + 3 56 3 59 -0.18124573639915D+00 0.72647694473033D-17 + 1 57 3 59 0.10301842422670D-01 0.11439216266803D-18 + 2 57 3 59 -0.21764363757139D-01 -0.33967251557791D-18 + 3 57 3 59 -0.23726627446706D+00 0.22806869545303D-18 + 1 58 3 59 0.24726760963584D-01 0.56065314171706D-17 + 2 58 3 59 -0.34209735405514D-01 0.62628150806309D-17 + 3 58 3 59 -0.40246564189427D+00 -0.44095007059519D-18 + 1 59 3 59 0.65807813668281D+00 0.00000000000000D+00 + 2 59 3 59 -0.81338717684531D+00 0.00000000000000D+00 + 3 59 3 59 0.11998085918812D+03 0.00000000000000D+00 + 1 60 3 59 0.63431380755933D-02 -0.30341342963624D-18 + 2 60 3 59 0.69431513153946D-02 -0.70880832027488D-18 + 3 60 3 59 -0.12424139542536D+00 -0.48797590291402D-17 + 1 61 3 59 0.23946093418141D-01 0.14281895448478D-17 + 2 61 3 59 0.70666205511097D-02 0.61439371053863D-19 + 3 61 3 59 0.15986550337781D+01 0.26384563877430D-19 + 1 62 3 59 0.36698199332303D-01 0.63259229839150D-17 + 2 62 3 59 0.73131832143502D-01 0.71756300563678D-19 + 3 62 3 59 -0.12417076851962D+00 0.27762184213710D-17 + 1 63 3 59 0.15132030000379D-02 -0.45509722048618D-18 + 2 63 3 59 0.24459884158655D-03 -0.50941233095221D-18 + 3 63 3 59 -0.22649195687380D+00 0.21173616643682D-17 + 1 64 3 59 -0.38414445183790D-02 0.81357544297640D-16 + 2 64 3 59 -0.91997431689858D-02 -0.26303236409650D-16 + 3 64 3 59 0.76694457329230D-01 -0.13701953458243D-16 + 1 65 3 59 -0.14625636154838D+00 -0.16168274385848D-16 + 2 65 3 59 0.94141289949281D-01 -0.95071863060932D-16 + 3 65 3 59 0.36471902416285D+00 -0.24337136910146D-16 + 1 1 1 60 0.12148402283879D+00 0.17188849380929D-15 + 2 1 1 60 0.21488924759002D+00 -0.10259090469974D-16 + 3 1 1 60 -0.29451899344543D+00 0.20659687021384D-16 + 1 2 1 60 -0.50259411538244D+00 0.16165223691165D-15 + 2 2 1 60 0.49922300162289D+00 0.11422319975205D-16 + 3 2 1 60 -0.35059274663601D+00 -0.11837416808431D-17 + 1 3 1 60 -0.39640379417134D+00 0.79783291499312D-16 + 2 3 1 60 0.51417559201220D+00 0.10582791062492D-16 + 3 3 1 60 -0.80045650826028D+00 0.24342069182138D-16 + 1 4 1 60 0.23662232486672D+00 0.37853093137162D-16 + 2 4 1 60 -0.94824085324164D-02 0.15628697959091D-16 + 3 4 1 60 0.11423776684107D-01 0.39647102294173D-16 + 1 5 1 60 -0.24353371012175D+02 -0.11266780519031D-15 + 2 5 1 60 0.14751333435336D+02 0.45382400648265D-17 + 3 5 1 60 -0.22245450246926D+02 0.15782430080076D-16 + 1 6 1 60 0.27912912720102D+00 -0.79572294535442D-16 + 2 6 1 60 -0.29916503793231D+00 0.13716310285044D-16 + 3 6 1 60 -0.33872008325704D+00 -0.96185223199081D-17 + 1 7 1 60 0.19042103809357D+00 -0.24923311616294D-15 + 2 7 1 60 0.13762305616936D+00 -0.56029462230011D-16 + 3 7 1 60 0.28361053495242D+00 -0.14633839259875D-16 + 1 8 1 60 -0.79645524878653D+00 0.25458602889581D-15 + 2 8 1 60 0.36639941053524D+00 -0.22013539309464D-16 + 3 8 1 60 -0.38632799622838D+00 -0.13034123927505D-16 + 1 9 1 60 -0.32157297915033D+01 -0.15665293911439D-16 + 2 9 1 60 0.37358331173980D+01 0.97219697898871D-18 + 3 9 1 60 0.12612871728019D+01 -0.89893251582708D-17 + 1 10 1 60 -0.24785948145177D+00 -0.46726338558499D-16 + 2 10 1 60 -0.11878586879504D+00 0.13999639327444D-17 + 3 10 1 60 0.14675843406443D+00 0.30349175080291D-16 + 1 11 1 60 -0.30638988320256D+01 0.28977142588452D-16 + 2 11 1 60 -0.31640814690755D+01 -0.46627183681081D-17 + 3 11 1 60 -0.13515021593717D+01 0.39822426169534D-16 + 1 12 1 60 -0.11874443038823D+00 -0.99854873734649D-16 + 2 12 1 60 -0.80597005297446D-01 0.18165371953661D-17 + 3 12 1 60 -0.12365796421604D+00 0.29587843721736D-16 + 1 13 1 60 -0.30001519778860D+01 -0.85199334049218D-16 + 2 13 1 60 -0.30660005531584D+01 0.49297865038840D-18 + 3 13 1 60 0.12254845032310D+01 -0.50569549855363D-17 + 1 14 1 60 -0.23633934167008D+00 -0.19035482510401D-15 + 2 14 1 60 0.90666799791499D-01 0.13172660531806D-17 + 3 14 1 60 0.14168161790001D+00 -0.72161008307362D-16 + 1 15 1 60 -0.21132000918250D+00 -0.11664521648831D-15 + 2 15 1 60 -0.13055966252282D+00 -0.50804937759035D-17 + 3 15 1 60 -0.71961574256988D-01 -0.68642976932406D-16 + 1 16 1 60 0.31422049400925D+00 -0.31104116070840D-16 + 2 16 1 60 0.17548457128179D+00 0.15812968330300D-16 + 3 16 1 60 0.35986694257036D+00 0.13817624306938D-16 + 1 17 1 60 -0.63312078461237D+00 0.23526093605214D-15 + 2 17 1 60 -0.44260789793588D+00 0.17870098355405D-16 + 3 17 1 60 0.51528742791333D+00 -0.35050578855593D-16 + 1 18 1 60 -0.58364062511924D+00 -0.23711968791041D-15 + 2 18 1 60 -0.74948867391113D+00 -0.94981313203921D-17 + 3 18 1 60 0.65896889737925D+00 -0.32644239873603D-16 + 1 19 1 60 0.81947051681333D-01 0.12581252869997D-15 + 2 19 1 60 -0.10458857416864D+00 0.52753276047453D-16 + 3 19 1 60 -0.17540967717463D+00 -0.31073276884841D-17 + 1 20 1 60 -0.28281032658509D+02 0.80374962244031D-16 + 2 20 1 60 -0.14256821798390D+02 -0.32202961084144D-16 + 3 20 1 60 0.14657929762345D+02 -0.36254086603718D-16 + 1 21 1 60 0.24071006525500D+00 -0.17915972850710D-16 + 2 21 1 60 0.44122789176326D+00 -0.31248406107101D-16 + 3 21 1 60 0.29803704164043D+00 -0.15992699203050D-16 + 1 22 1 60 0.24026317668267D+00 -0.14574068532838D-15 + 2 22 1 60 -0.19589691143570D+01 -0.64782612421729D-17 + 3 22 1 60 0.12568042557563D+01 0.21472371990114D-17 + 1 23 1 60 -0.78153175645181D+00 0.31475994959936D-16 + 2 23 1 60 -0.53730740550125D+00 0.10002223069737D-15 + 3 23 1 60 0.46840841101349D+00 0.14133822434875D-16 + 1 24 1 60 -0.32206381252867D+01 -0.17027402228656D-15 + 2 24 1 60 0.16017402743485D+01 0.25959267728916D-16 + 3 24 1 60 0.32345058521663D+01 -0.74534625759063D-17 + 1 25 1 60 -0.29148046783835D+01 0.59387570720871D-16 + 2 25 1 60 -0.11584240695734D+01 -0.34526250527438D-16 + 3 25 1 60 -0.31270947786230D+01 0.32809551951353D-17 + 1 26 1 60 -0.27692148443529D+00 -0.50554558872982D-16 + 2 26 1 60 0.19607991922537D-01 0.54461763092902D-17 + 3 26 1 60 -0.14976597231751D+00 -0.11611357416763D-17 + 1 27 1 60 -0.22877488748024D+00 0.31786780428073D-15 + 2 27 1 60 -0.15578959509998D+00 0.92265150289120D-16 + 3 27 1 60 0.15007314540031D+00 -0.21847210082212D-17 + 1 28 1 60 -0.28051599479846D+01 0.98750057459159D-16 + 2 28 1 60 0.20031063282269D+01 -0.15263414035013D-16 + 3 28 1 60 -0.32779236897385D+01 -0.46727910546042D-17 + 1 29 1 60 -0.31127751678940D+01 -0.11111956657279D-15 + 2 29 1 60 -0.12076686035773D+01 0.45281960650227D-17 + 3 29 1 60 0.31321845540439D+01 -0.19300317428917D-17 + 1 30 1 60 -0.11821621565578D+00 -0.57402140274477D-16 + 2 30 1 60 0.11779011964277D+00 0.88925662051950D-16 + 3 30 1 60 0.24928118504911D+00 -0.23458934145664D-17 + 1 31 1 60 -0.22012489406827D+00 0.61941559846392D-16 + 2 31 1 60 0.10226835393024D+00 -0.79621376383749D-16 + 3 31 1 60 -0.82223371077734D-01 0.12967388577483D-17 + 1 32 1 60 0.43428936181697D-01 0.53235494618196D-16 + 2 32 1 60 0.13093678493619D+01 0.55038252254111D-16 + 3 32 1 60 0.16931048991710D+01 0.64976411728224D-17 + 1 33 1 60 -0.49336914517857D+00 -0.86471025081563D-16 + 2 33 1 60 -0.50939446161318D+00 -0.17461066591848D-16 + 3 33 1 60 -0.43441998613115D+00 0.37659856073836D-16 + 1 34 1 60 -0.17175783798409D+00 -0.56545650195587D-16 + 2 34 1 60 -0.46034884881434D+00 -0.30574356078443D-16 + 3 34 1 60 -0.33826748421716D+00 0.11472421818307D-16 + 1 35 1 60 0.26686550422134D+00 0.42497376884096D-16 + 2 35 1 60 -0.20825616100105D-01 -0.24368429461764D-17 + 3 35 1 60 -0.10707045324182D+00 0.25829787862059D-16 + 1 36 1 60 -0.24223590393392D+02 -0.12376596524364D-15 + 2 36 1 60 -0.13529215902066D+02 0.79863848641617D-17 + 3 36 1 60 -0.11927098542457D+02 -0.99192492587265D-17 + 1 37 1 60 0.62632122828489D+00 -0.57646536234815D-16 + 2 37 1 60 0.78293220003702D+00 -0.12486842822643D-17 + 3 37 1 60 -0.83325922317388D+00 -0.16620950444963D-16 + 1 38 1 60 0.62025028896456D-02 0.35509679619626D-16 + 2 38 1 60 -0.23104945061833D+00 0.28764080067433D-16 + 3 38 1 60 0.37197994347043D+00 0.98387202883751D-17 + 1 39 1 60 -0.81083552164948D+00 0.98935861929313D-16 + 2 39 1 60 -0.44096668991251D+00 -0.42618167249041D-16 + 3 39 1 60 -0.54032163431437D+00 -0.29166521919797D-16 + 1 40 1 60 -0.23349397939445D-02 0.10146321881147D-15 + 2 40 1 60 -0.11767243478525D+00 0.24446027339747D-16 + 3 40 1 60 -0.77343943757409D-01 -0.28504479881029D-16 + 1 41 1 60 -0.20198582307324D-01 0.79060863181558D-16 + 2 41 1 60 0.89382574095878D-01 0.70536368065283D-17 + 3 41 1 60 -0.16133490743932D-01 0.24271646385258D-16 + 1 42 1 60 -0.42519676728862D+00 -0.79621774529573D-17 + 2 42 1 60 -0.15638035851828D-01 0.78654061387121D-17 + 3 42 1 60 -0.22985401946665D+00 -0.37207395004695D-16 + 1 43 1 60 -0.42568070033697D+00 -0.37931431362120D-16 + 2 43 1 60 -0.10890786888940D+00 0.18479009552607D-16 + 3 43 1 60 0.34261208178817D+00 -0.29819037943739D-17 + 1 44 1 60 0.31882659330409D+01 -0.25733459692766D-16 + 2 44 1 60 -0.14011878085562D+01 -0.35546015492085D-16 + 3 44 1 60 -0.13686463220819D+01 -0.11475164552297D-16 + 1 45 1 60 0.30753321824938D+01 0.34767763308702D-16 + 2 45 1 60 0.11033339330700D+01 -0.26718249359559D-16 + 3 45 1 60 -0.10982907017704D+01 0.34087093165583D-16 + 1 46 1 60 0.33326485128250D+01 -0.49739493482863D-16 + 2 46 1 60 -0.22422150556930D+01 0.26755692853644D-16 + 3 46 1 60 0.79111691528172D+00 -0.39447434260554D-17 + 1 47 1 60 0.36035073432242D+01 0.25381173234006D-16 + 2 47 1 60 0.16287765163973D+01 0.35392864516011D-16 + 3 47 1 60 0.14766123034724D+01 0.45382630826163D-17 + 1 48 1 60 0.57599511950998D+00 -0.39514380289152D-16 + 2 48 1 60 0.29550212064910D+00 0.83101940352645D-17 + 3 48 1 60 0.38139056523926D+00 0.71349985221554D-16 + 1 49 1 60 -0.29770639034203D+00 -0.10978177658407D-16 + 2 49 1 60 0.53882773265772D+00 0.96686612588895D-17 + 3 49 1 60 0.43245298590620D+00 0.16550530088016D-16 + 1 50 1 60 0.33793601791265D+00 0.71956657101483D-19 + 2 50 1 60 -0.16233365719528D+01 0.13969214165075D-16 + 3 50 1 60 -0.17793550258318D+01 0.47429112074887D-16 + 1 51 1 60 0.20033384962361D+00 -0.37756856043297D-15 + 2 51 1 60 -0.24696374662174D-02 -0.18261264257584D-16 + 3 51 1 60 0.15681017887170D+00 -0.18167422505961D-16 + 1 52 1 60 -0.27022189572521D+02 -0.26774006984526D-18 + 2 52 1 60 0.14835666597383D+02 0.20602262663078D-16 + 3 52 1 60 0.16629379756977D+02 0.40195004074957D-17 + 1 53 1 60 0.11542738827356D+00 0.19868129716767D-16 + 2 53 1 60 -0.17250536151424D+00 0.76867903887959D-17 + 3 53 1 60 0.26119564154639D+00 -0.25155679506650D-17 + 1 54 1 60 0.21582940437261D+00 0.93921208284601D-16 + 2 54 1 60 0.32434742287265D+00 -0.25722437759095D-16 + 3 54 1 60 -0.43846442122255D+00 -0.33640316664451D-16 + 1 55 1 60 -0.80985736801165D+00 -0.17760031266590D-15 + 2 55 1 60 0.28684620462766D+00 0.11372371883641D-16 + 3 55 1 60 0.52165191449955D+00 -0.10626457101266D-16 + 1 56 1 60 -0.54947314096177D+00 -0.46730728474365D-16 + 2 56 1 60 0.14226339989857D+00 0.89956857506446D-17 + 3 56 1 60 -0.45780525994136D+00 -0.61810253280393D-17 + 1 57 1 60 -0.19511828925900D+00 0.19056800334117D-17 + 2 57 1 60 0.13360427838615D+00 -0.22906374750714D-17 + 3 57 1 60 -0.36698199332301D-01 -0.13479914339699D-17 + 1 58 1 60 0.21493144039402D+00 -0.31396412133801D-16 + 2 58 1 60 -0.35798312713401D+00 0.89754680514219D-18 + 3 58 1 60 0.61638313884036D+00 -0.11863199586408D-16 + 1 59 1 60 -0.12166211096926D+00 -0.17467585203297D-17 + 2 59 1 60 -0.12354351356588D-01 -0.34635136209811D-17 + 3 59 1 60 0.63431380755933D-02 0.30341342963624D-18 + 1 60 1 60 0.11892909311263D+03 0.00000000000000D+00 + 2 60 1 60 -0.28802566016955D+01 0.00000000000000D+00 + 3 60 1 60 -0.68310894103182D+00 0.00000000000000D+00 + 1 61 1 60 -0.19374587556379D+00 -0.14549585500272D-16 + 2 61 1 60 0.28052321328861D-01 0.90659096030145D-18 + 3 61 1 60 -0.24726760963584D-01 0.22211994455573D-17 + 1 62 1 60 -0.56483248397148D+00 0.95115838102401D-17 + 2 62 1 60 -0.18069400296059D+00 -0.15680337583718D-17 + 3 62 1 60 -0.30991150850772D+00 -0.55042118789451D-18 + 1 63 1 60 0.16147086050100D+01 0.81289591241532D-17 + 2 63 1 60 -0.25656366926326D-01 0.12159354137676D-17 + 3 63 1 60 -0.11525350264607D-01 0.14275817245544D-17 + 1 64 1 60 -0.32913855200115D+01 0.13648595053477D-16 + 2 64 1 60 0.54552158771248D+01 0.18745143112403D-16 + 3 64 1 60 0.11913615239239D+01 -0.73173276062490D-17 + 1 65 1 60 0.64172853416085D+00 0.26505279709812D-16 + 2 65 1 60 0.41799667554711D-01 0.10255702680772D-17 + 3 65 1 60 0.56679916905530D+00 0.55473825400556D-16 + 1 1 2 60 0.16615110843062D+00 -0.10259090469974D-16 + 2 1 2 60 0.15446028503366D+00 -0.25841416511832D-16 + 3 1 2 60 -0.64823888964955D-01 -0.20531652734266D-17 + 1 2 2 60 0.59033759901086D+00 0.11422319975205D-16 + 2 2 2 60 -0.87879839587781D+00 0.77438373541367D-16 + 3 2 2 60 0.23675050006732D+00 0.23299599951460D-16 + 1 3 2 60 0.63674313804243D+00 0.10582791062492D-16 + 2 3 2 60 -0.37756417728968D+00 0.18458379676810D-15 + 3 3 2 60 0.68264261748262D+00 0.44244872716404D-16 + 1 4 2 60 0.31560473710992D-02 0.15628697959091D-16 + 2 4 2 60 0.29525495854004D+00 -0.10928115649976D-15 + 3 4 2 60 -0.19573453759548D-01 -0.34946994156782D-16 + 1 5 2 60 0.13111602562201D+02 0.45382400648265D-17 + 2 5 2 60 -0.26966858017480D+02 0.33366641527357D-16 + 3 5 2 60 0.23403793604855D+02 -0.44697108153508D-16 + 1 6 2 60 -0.42098272698905D+00 0.13716310285044D-16 + 2 6 2 60 0.12123201124200D+00 0.67390909347366D-16 + 3 6 2 60 0.25348016079986D+00 0.78942637368900D-16 + 1 7 2 60 0.30050836975060D+00 -0.56029462230011D-16 + 2 7 2 60 0.55573036713751D+00 0.60946147538479D-17 + 3 7 2 60 0.31592974345078D+00 -0.28696429613566D-16 + 1 8 2 60 0.49338013526382D+00 -0.22013539309464D-16 + 2 8 2 60 -0.32116000110639D+00 0.12185749730250D-15 + 3 8 2 60 0.49852977540938D+00 -0.26275754029064D-17 + 1 9 2 60 0.35469120189638D+01 0.97219697898871D-18 + 2 9 2 60 -0.33903977200178D+01 -0.24979812108219D-15 + 3 9 2 60 -0.10925016594282D+01 0.36302515733699D-16 + 1 10 2 60 -0.12050740714423D+00 0.13999639327444D-17 + 2 10 2 60 -0.24793168041875D+00 -0.88326368139924D-16 + 3 10 2 60 -0.15168666551705D+00 0.17270647397307D-18 + 1 11 2 60 -0.33050853082271D+01 -0.46627183681081D-17 + 2 11 2 60 -0.29877680086003D+01 0.19975897883650D-17 + 3 11 2 60 -0.12841378769088D+01 -0.12122266422736D-16 + 1 12 2 60 0.82043198351641D-01 0.18165371953661D-17 + 2 12 2 60 -0.16993298888397D+00 -0.55187763038309D-16 + 3 12 2 60 -0.71194922581208D-01 -0.17391174005837D-16 + 1 13 2 60 -0.31773514429869D+01 0.49297865038840D-18 + 2 13 2 60 -0.29954888535487D+01 -0.24450836531220D-15 + 3 13 2 60 0.13470329229198D+01 0.71190730131074D-17 + 1 14 2 60 0.10097204574324D+00 0.13172660531806D-17 + 2 14 2 60 -0.24639150368970D+00 0.13531371609567D-15 + 3 14 2 60 0.83074439382480D-01 0.30660560534948D-16 + 1 15 2 60 -0.10038897771306D+00 -0.50804937759035D-17 + 2 15 2 60 -0.18948265496565D+00 -0.17288118432210D-16 + 3 15 2 60 0.11750953390600D+00 0.10614673163843D-16 + 1 16 2 60 -0.21516708156434D+00 0.15812968330300D-16 + 2 16 2 60 0.31305621381453D-01 0.12016007583188D-15 + 3 16 2 60 -0.30197170554672D+00 -0.11748691071220D-16 + 1 17 2 60 -0.28525463577358D+00 0.17870098355405D-16 + 2 17 2 60 -0.79567018427530D+00 -0.80350239196349D-17 + 3 17 2 60 0.49069469237906D+00 -0.11922320177194D-16 + 1 18 2 60 -0.58941207799971D+00 -0.94981313203921D-17 + 2 18 2 60 -0.34062346733943D+00 -0.52339098460882D-16 + 3 18 2 60 0.34781997433926D+00 0.79841832583819D-17 + 1 19 2 60 0.10295060887454D+00 0.52753276047453D-16 + 2 19 2 60 0.37092861818659D+00 0.99076038038431D-16 + 3 19 2 60 0.20826631690892D+00 0.15015221351173D-16 + 1 20 2 60 -0.13867197110953D+02 -0.32202961084144D-16 + 2 20 2 60 -0.24532491806041D+02 -0.23808772187513D-16 + 3 20 2 60 0.12371596783117D+02 0.84476300288467D-17 + 1 21 2 60 0.39930320110791D+00 -0.31248406107101D-16 + 2 21 2 60 0.18654111657419D+00 -0.25609778811348D-15 + 3 21 2 60 0.43699935314724D+00 0.18727873682932D-16 + 1 22 2 60 -0.69836127851069D+00 -0.64782612421729D-17 + 2 22 2 60 0.19692102717770D+01 -0.33716042727117D-16 + 3 22 2 60 -0.87578480095378D+00 -0.11664284410259D-15 + 1 23 2 60 -0.31197724830340D+00 0.10002223069737D-15 + 2 23 2 60 -0.25326590528757D+00 0.63787794714543D-16 + 3 23 2 60 0.29558449714712D+00 -0.23846277679051D-16 + 1 24 2 60 -0.11397146903825D+01 0.25959267728916D-16 + 2 24 2 60 0.30580094079255D+01 0.65005141595976D-16 + 3 24 2 60 0.10540879121051D+01 -0.33829895933737D-16 + 1 25 2 60 0.14205596556584D+01 -0.34526250527438D-16 + 2 25 2 60 0.30306915079876D+01 0.60514555788098D-16 + 3 25 2 60 0.12396011896155D+01 0.88936036058582D-17 + 1 26 2 60 -0.11757710023595D+00 0.54461763092902D-17 + 2 26 2 60 0.37900726109009D-02 -0.71063118044210D-16 + 3 26 2 60 0.10726450908200D+00 -0.22194785073883D-16 + 1 27 2 60 0.10790549971587D+00 0.92265150289120D-16 + 2 27 2 60 -0.18463012523090D-01 -0.12576760787764D-15 + 3 27 2 60 0.44033202187166D-01 -0.27826335132170D-16 + 1 28 2 60 -0.11176717924403D+01 -0.15263414035013D-16 + 2 28 2 60 0.26328894094708D+01 -0.16548982333159D-16 + 3 28 2 60 -0.95452131471842D+00 -0.30264669940509D-17 + 1 29 2 60 0.14529028836111D+01 0.45281960650227D-17 + 2 29 2 60 0.32532103886273D+01 -0.14508065533076D-15 + 3 29 2 60 -0.12261362992760D+01 -0.94309196320046D-17 + 1 30 2 60 -0.72227401361729D-01 0.88925662051950D-16 + 2 30 2 60 -0.19873251756067D+00 -0.10693706811431D-15 + 3 30 2 60 -0.20147194587619D+00 0.77400291133260D-17 + 1 31 2 60 0.14109272489711D+00 -0.79621376383749D-16 + 2 31 2 60 -0.10484951280540D+00 -0.76842220080545D-16 + 3 31 2 60 -0.12818383142602D+00 -0.14389584059790D-16 + 1 32 2 60 0.35757827279206D-01 0.55038252254111D-16 + 2 32 2 60 -0.11313505286587D+01 -0.11047872353125D-15 + 3 32 2 60 -0.13549678598456D+01 0.24645064549875D-16 + 1 33 2 60 -0.25450899472504D+00 -0.17461066591848D-16 + 2 33 2 60 -0.87719096127325D+00 -0.29650802444691D-16 + 3 33 2 60 -0.33525327094947D+00 0.62824108535954D-17 + 1 34 2 60 -0.52011348209476D+00 -0.30574356078443D-16 + 2 34 2 60 -0.39910233886039D+00 -0.18427904671854D-16 + 3 34 2 60 -0.59323179457402D+00 0.38191171276279D-16 + 1 35 2 60 0.94617811102792D-02 -0.24368429461764D-17 + 2 35 2 60 0.24492796035844D+00 -0.15674918032241D-15 + 3 35 2 60 0.49505833736298D-01 0.29581294189463D-16 + 1 36 2 60 -0.13901670395536D+02 0.79863848641617D-17 + 2 36 2 60 -0.26367025656392D+02 -0.36706304163983D-15 + 3 36 2 60 -0.14345599579921D+02 -0.34602383881639D-16 + 1 37 2 60 0.21034855301276D+00 -0.12486842822643D-17 + 2 37 2 60 -0.18536809697928D+00 0.26577937424386D-16 + 3 37 2 60 -0.37174795431053D-01 -0.30268910372671D-16 + 1 38 2 60 0.53763771560463D-01 0.28764080067433D-16 + 2 38 2 60 0.27420601099833D+00 -0.19938610118827D-15 + 3 38 2 60 -0.26868741007233D+00 0.89421106271933D-16 + 1 39 2 60 -0.45818229504203D+00 -0.42618167249041D-16 + 2 39 2 60 -0.50913110257272D+00 0.97421500498693D-16 + 3 39 2 60 -0.48522302031411D+00 -0.32044996992997D-16 + 1 40 2 60 0.52633044411415D-01 0.24446027339747D-16 + 2 40 2 60 -0.22821706536484D+00 -0.35917417412952D-16 + 3 40 2 60 0.99437535727203D-01 -0.25550146657735D-17 + 1 41 2 60 -0.12057846732557D+00 0.70536368065283D-17 + 2 41 2 60 -0.21575497152441D+00 0.46572858990205D-15 + 3 41 2 60 -0.10055451728177D+00 -0.26920949323928D-17 + 1 42 2 60 0.34261208178817D+00 0.78654061387121D-17 + 2 42 2 60 -0.31513249573963D+00 0.29706961202124D-15 + 3 42 2 60 0.14284829732331D+00 -0.12217073501495D-17 + 1 43 2 60 0.22985401946665D+00 0.18479009552607D-16 + 2 43 2 60 0.11250902439584D+00 -0.10968058194593D-15 + 3 43 2 60 -0.14341331282464D+00 0.31883985631378D-17 + 1 44 2 60 0.12980637146702D+01 -0.35546015492085D-16 + 2 44 2 60 -0.32375816820263D+01 0.17177661997252D-15 + 3 44 2 60 -0.32644467995037D+01 -0.10809790465035D-18 + 1 45 2 60 -0.15222885050610D+01 -0.26718249359559D-16 + 2 45 2 60 -0.29367943623405D+01 -0.23551578097831D-15 + 3 45 2 60 0.31255487756682D+01 -0.11143352073534D-16 + 1 46 2 60 0.79111691528173D+00 0.26755692853644D-16 + 2 46 2 60 -0.19446621466388D+01 -0.16833834947424D-15 + 3 46 2 60 0.25874532646368D+01 -0.13886344827260D-17 + 1 47 2 60 -0.14766123034724D+01 0.35392864516011D-16 + 2 47 2 60 -0.32451830657095D+01 -0.22550680412960D-15 + 3 47 2 60 -0.31360063028185D+01 0.30502607723496D-17 + 1 48 2 60 0.26938321812236D+00 0.83101940352645D-17 + 2 48 2 60 0.93208777468697D-01 0.15620895727900D-15 + 3 48 2 60 0.34011013696973D+00 0.22024203598475D-16 + 1 49 2 60 0.47577268331975D+00 0.96686612588895D-17 + 2 49 2 60 -0.83525506489340D+00 -0.31609458167562D-16 + 3 49 2 60 -0.59167202259456D+00 0.10113763855326D-15 + 1 50 2 60 -0.26317444518414D+00 0.13969214165075D-16 + 2 50 2 60 0.11871324957381D+01 0.10429162493152D-15 + 3 50 2 60 0.15198829841141D+01 -0.33203515405674D-16 + 1 51 2 60 0.10281033293596D+00 -0.18261264257584D-16 + 2 51 2 60 0.26864894443220D+00 0.10022822221046D-15 + 3 51 2 60 -0.98401233411656D-01 0.35225897263662D-16 + 1 52 2 60 0.14558835678490D+02 0.20602262663078D-16 + 2 52 2 60 -0.26885952984624D+02 0.25017025711609D-15 + 3 52 2 60 -0.17524480964126D+02 -0.40100623913656D-16 + 1 53 2 60 -0.23038762429389D+00 0.76867903887959D-17 + 2 53 2 60 0.15731667061839D+00 -0.24676874484323D-15 + 3 53 2 60 -0.27476276805793D+00 0.19615234397948D-16 + 1 54 2 60 0.29934916374171D+00 -0.25722437759095D-16 + 2 54 2 60 0.62661665556901D+00 -0.22197444241581D-16 + 3 54 2 60 -0.24748365031445D+00 0.61138840338401D-16 + 1 55 2 60 0.35556774802706D+00 0.11372371883641D-16 + 2 55 2 60 -0.85893846018721D-01 0.80857174497833D-16 + 3 55 2 60 -0.43526276143988D+00 -0.46222394114042D-17 + 1 56 2 60 -0.14226339989857D+00 0.89956857506446D-17 + 2 56 2 60 -0.40548407098282D+00 0.52121950052804D-17 + 3 56 2 60 0.28769115120802D+00 0.15726930294803D-18 + 1 57 2 60 0.78044554531757D-02 -0.22906374750714D-17 + 2 57 2 60 0.14870128380568D+01 0.50734355814965D-17 + 3 57 2 60 0.73131832143502D-01 0.17949455385481D-18 + 1 58 2 60 -0.35798312713401D+00 0.89754680514219D-18 + 2 58 2 60 0.20435856490277D+00 -0.20889836521967D-17 + 3 58 2 60 -0.45036500072236D+00 -0.41671973449388D-17 + 1 59 2 60 0.52381069365457D-02 -0.34635136209811D-17 + 2 59 2 60 -0.11789925547314D+00 -0.24896510884965D-16 + 3 59 2 60 0.69431513153946D-02 0.70880832027488D-18 + 1 60 2 60 -0.28802566016955D+01 0.00000000000000D+00 + 2 60 2 60 0.12111955382287D+03 0.00000000000000D+00 + 3 60 2 60 -0.11969682585360D+00 0.00000000000000D+00 + 1 61 2 60 -0.42250900489271D-02 0.90659096030145D-18 + 2 61 2 60 -0.25125029174601D+00 0.29084762823922D-16 + 3 61 2 60 0.34209735405514D-01 0.96982405577221D-17 + 1 62 2 60 0.18069400296059D+00 -0.15680337583718D-17 + 2 62 2 60 -0.62710495305077D+00 -0.71625470774900D-17 + 3 62 2 60 0.20439597042973D+00 -0.42276140061524D-17 + 1 63 2 60 -0.73096735208846D-01 0.12159354137676D-17 + 2 63 2 60 -0.10723510414041D+00 -0.93082320569135D-17 + 3 63 2 60 0.51528606358535D-01 0.12867304680975D-17 + 1 64 2 60 0.59872147645345D+01 0.18745143112403D-16 + 2 64 2 60 -0.61191765798691D+01 -0.12511554261911D-15 + 3 64 2 60 -0.11989383012939D+01 -0.29112537436728D-16 + 1 65 2 60 -0.15548126048246D+00 0.10255702680772D-17 + 2 65 2 60 0.34079756875251D+00 -0.49592719940941D-17 + 3 65 2 60 -0.64991636464351D+00 0.45681327665901D-16 + 1 1 3 60 -0.20189496355113D+00 0.20659687021384D-16 + 2 1 3 60 -0.33929061429275D+00 -0.20531652734266D-17 + 3 1 3 60 0.33670670103111D+00 0.25120740691764D-16 + 1 2 3 60 -0.27401375196434D+00 -0.11837416808431D-17 + 2 2 3 60 0.76511502303098D-01 0.23299599951460D-16 + 3 2 3 60 -0.62129055617945D+00 0.42064571227149D-16 + 1 3 3 60 -0.59823138478369D+00 0.24342069182138D-16 + 2 3 3 60 0.69117859893014D+00 0.44244872716404D-16 + 3 3 3 60 -0.60193948425332D+00 -0.50795085415797D-16 + 1 4 3 60 -0.11555303207960D-01 0.39647102294173D-16 + 2 4 3 60 0.51697840507663D-01 -0.34946994156782D-16 + 3 4 3 60 0.27493805249823D+00 0.28873750818598D-17 + 1 5 3 60 -0.17151064833579D+02 0.15782430080076D-16 + 2 5 3 60 0.16509815584852D+02 -0.44697108153508D-16 + 3 5 3 60 -0.25943254441571D+02 -0.17741598488110D-15 + 1 6 3 60 -0.35569019419801D+00 -0.96185223199081D-17 + 2 6 3 60 0.16366981488135D+00 0.78942637368900D-16 + 3 6 3 60 0.44715972523501D+00 0.35088264154254D-16 + 1 7 3 60 0.42205070125686D+00 -0.14633839259875D-16 + 2 7 3 60 0.40212139172872D+00 -0.28696429613566D-16 + 3 7 3 60 0.23490982432094D+00 0.21392502766197D-15 + 1 8 3 60 -0.49952396734700D+00 -0.13034123927505D-16 + 2 8 3 60 0.49151781919568D+00 -0.26275754029064D-17 + 3 8 3 60 -0.55330131078286D+00 0.31593987476348D-16 + 1 9 3 60 -0.12482638357656D+01 -0.89893251582708D-17 + 2 9 3 60 0.12067952504781D+01 0.36302515733699D-16 + 3 9 3 60 0.28423411136097D+01 0.19517396038111D-16 + 1 10 3 60 -0.11771011529336D+00 0.30349175080291D-16 + 2 10 3 60 0.11438150796612D+00 0.17270647397307D-18 + 3 10 3 60 0.17176138476539D-01 0.65338875129404D-16 + 1 11 3 60 0.13211942367618D+01 0.39822426169534D-16 + 2 11 3 60 0.13319450553958D+01 -0.12122266422736D-16 + 3 11 3 60 0.31311444326211D+01 0.79552592296763D-16 + 1 12 3 60 0.56111524358578D-01 0.29587843721736D-16 + 2 12 3 60 0.23773955807572D+00 -0.17391174005837D-16 + 3 12 3 60 0.28004815274248D-01 -0.78091126103693D-16 + 1 13 3 60 -0.14264458797104D+01 -0.50569549855363D-17 + 2 13 3 60 -0.12061807511854D+01 0.71190730131074D-17 + 3 13 3 60 0.31732604423891D+01 0.39016871619782D-16 + 1 14 3 60 -0.88968340529828D-01 -0.72161008307362D-16 + 2 14 3 60 -0.53660734478790D-01 0.30660560534948D-16 + 3 14 3 60 -0.74228177386467D-01 0.46110142692657D-17 + 1 15 3 60 0.80742365490618D-01 -0.68642976932406D-16 + 2 15 3 60 -0.11189461027629D+00 0.10614673163843D-16 + 3 15 3 60 -0.42718762411062D-01 0.88614347596490D-17 + 1 16 3 60 -0.29825601567282D-02 0.13817624306938D-16 + 2 16 3 60 -0.18019124741021D+00 -0.11748691071220D-16 + 3 16 3 60 0.10626880733348D+00 -0.13589649286166D-15 + 1 17 3 60 0.63253059845948D+00 -0.35050578855593D-16 + 2 17 3 60 0.46177411275870D+00 -0.11922320177194D-16 + 3 17 3 60 -0.50206812739809D+00 -0.13955736339942D-15 + 1 18 3 60 0.45615503776575D+00 -0.32644239873603D-16 + 2 18 3 60 0.61830381521060D+00 0.79841832583819D-17 + 3 18 3 60 -0.93113972708093D+00 -0.90757914253127D-16 + 1 19 3 60 0.24610974420285D+00 -0.31073276884841D-17 + 2 19 3 60 0.24018265599631D+00 0.15015221351173D-16 + 3 19 3 60 0.53148809985973D+00 -0.10929397325789D-16 + 1 20 3 60 0.14992323709904D+02 -0.36254086603718D-16 + 2 20 3 60 0.12776995690579D+02 0.84476300288467D-17 + 3 20 3 60 -0.25101178599709D+02 -0.16520175656501D-15 + 1 21 3 60 0.24324448070264D+00 -0.15992699203050D-16 + 2 21 3 60 0.26491264012521D+00 0.18727873682932D-16 + 3 21 3 60 0.62299032448475D+00 -0.67755920933716D-15 + 1 22 3 60 -0.69344548756159D+00 0.21472371990114D-17 + 2 22 3 60 0.15289918852252D+01 -0.11664284410259D-15 + 3 22 3 60 -0.11782400519076D+01 0.13128105311527D-15 + 1 23 3 60 0.37756050303363D+00 0.14133822434875D-16 + 2 23 3 60 0.40158016642122D+00 -0.23846277679051D-16 + 3 23 3 60 -0.21332075910504D+00 0.34868667308785D-15 + 1 24 3 60 0.30400799938289D+01 -0.74534625759063D-17 + 2 24 3 60 -0.14454054486640D+01 -0.33829895933737D-16 + 3 24 3 60 -0.29219202594767D+01 0.25298059605383D-16 + 1 25 3 60 -0.30637658912080D+01 0.32809551951353D-17 + 2 25 3 60 -0.11316458786832D+01 0.88936036058582D-17 + 3 25 3 60 -0.31543092489251D+01 0.62037346396508D-16 + 1 26 3 60 -0.10585392237338D+00 -0.11611357416763D-17 + 2 26 3 60 -0.45686340930217D-01 -0.22194785073883D-16 + 3 26 3 60 -0.21107489075072D+00 0.19854244764810D-15 + 1 27 3 60 0.96293916460599D-01 -0.21847210082212D-17 + 2 27 3 60 -0.10511726601206D+00 -0.27826335132170D-16 + 3 27 3 60 -0.23563032171867D+00 -0.39919149944641D-15 + 1 28 3 60 -0.26899078430667D+01 -0.46727910546042D-17 + 2 28 3 60 0.11485207674171D+01 -0.30264669940509D-17 + 3 28 3 60 -0.30775016116620D+01 -0.67978201313465D-15 + 1 29 3 60 0.32191059477274D+01 -0.19300317428917D-17 + 2 29 3 60 0.13634437152049D+01 -0.94309196320046D-17 + 3 29 3 60 -0.30730874511020D+01 0.16482839875926D-15 + 1 30 3 60 0.13987575062728D+00 -0.23458934145664D-17 + 2 30 3 60 -0.46826809137950D-01 0.77400291133260D-17 + 3 30 3 60 -0.26127655378421D+00 -0.36294110221788D-16 + 1 31 3 60 0.41272559615119D-01 0.12967388577483D-17 + 2 31 3 60 0.15534832070321D+00 -0.14389584059790D-16 + 3 31 3 60 0.81916361108249D-01 -0.76837173037608D-15 + 1 32 3 60 -0.12590578526660D+00 0.64976411728224D-17 + 2 32 3 60 -0.12676911053746D+01 0.24645064549875D-16 + 3 32 3 60 -0.11150142372855D+01 -0.24162954868345D-16 + 1 33 3 60 -0.64346728371827D-01 0.37659856073836D-16 + 2 33 3 60 -0.50016541024873D+00 0.62824108535954D-17 + 3 33 3 60 -0.13525500815599D+00 0.12405254855427D-15 + 1 34 3 60 -0.53061614381881D+00 0.11472421818307D-16 + 2 34 3 60 -0.27618358262648D+00 0.38191171276279D-16 + 3 34 3 60 -0.86409040711022D+00 0.18159017108578D-15 + 1 35 3 60 0.42196927431077D-02 0.25829787862059D-16 + 2 35 3 60 0.48541681642133D-01 0.29581294189463D-16 + 3 35 3 60 0.32802942366760D+00 0.15664061719996D-15 + 1 36 3 60 -0.12618695132517D+02 -0.99192492587265D-17 + 2 36 3 60 -0.14949212088362D+02 -0.34602383881639D-16 + 3 36 3 60 -0.25485998875877D+02 -0.33598111168477D-15 + 1 37 3 60 -0.61070928979987D+00 -0.16620950444963D-16 + 2 37 3 60 -0.71273818903615D+00 -0.30268910372671D-16 + 3 37 3 60 0.10055228481423D+01 0.18517653996226D-15 + 1 38 3 60 0.26522545003791D+00 0.98387202883751D-17 + 2 38 3 60 0.16842214387472D+00 0.89421106271933D-16 + 3 38 3 60 0.12834338893618D+00 0.66274464438443D-16 + 1 39 3 60 -0.57259088947737D+00 -0.29166521919797D-16 + 2 39 3 60 -0.56817747023679D+00 -0.32044996992997D-16 + 3 39 3 60 -0.48945075687644D+00 0.83073915856176D-17 + 1 40 3 60 0.66047993622599D-01 -0.28504479881029D-16 + 2 40 3 60 0.14387887629046D+00 -0.25550146657735D-17 + 3 40 3 60 -0.26287299123699D+00 -0.26291314056670D-15 + 1 41 3 60 0.14193478143411D+00 0.24271646385258D-16 + 2 41 3 60 -0.10413342879518D+00 -0.26920949323928D-17 + 3 41 3 60 -0.19898996517371D+00 0.40150013883258D-16 + 1 42 3 60 0.10890786888940D+00 -0.37207395004695D-16 + 2 42 3 60 -0.51957007617259D+00 -0.12217073501495D-17 + 3 42 3 60 0.11250902439584D+00 -0.55131131521995D-15 + 1 43 3 60 -0.15638035851827D-01 -0.29819037943739D-17 + 2 43 3 60 0.51949986066785D+00 0.31883985631378D-17 + 3 43 3 60 -0.31513249573964D+00 -0.76216916269070D-16 + 1 44 3 60 0.12532163534033D+01 -0.11475164552297D-16 + 2 44 3 60 -0.31874796976435D+01 -0.10809790465035D-18 + 3 44 3 60 -0.31017691541785D+01 0.13819478645808D-15 + 1 45 3 60 0.14950307013227D+01 0.34087093165583D-16 + 2 45 3 60 0.31475754789696D+01 -0.11143352073534D-16 + 3 45 3 60 -0.31906510664380D+01 0.74390320284454D-16 + 1 46 3 60 -0.22422150556930D+01 -0.39447434260554D-17 + 2 46 3 60 0.37785239078169D+01 -0.13886344827260D-17 + 3 46 3 60 -0.19446621466388D+01 -0.77160548845927D-15 + 1 47 3 60 -0.16287765163973D+01 0.45382630826163D-17 + 2 47 3 60 -0.32987071675482D+01 0.30502607723496D-17 + 3 47 3 60 -0.32451830657095D+01 0.16507548853140D-15 + 1 48 3 60 0.35996202666300D+00 0.71349985221554D-16 + 2 48 3 60 0.25867275679239D+00 0.22024203598475D-16 + 3 48 3 60 0.18898539371497D+00 -0.13967689739752D-15 + 1 49 3 60 0.32150151371740D+00 0.16550530088016D-16 + 2 49 3 60 -0.55610764499212D+00 0.10113763855326D-15 + 3 49 3 60 -0.31887366055224D+00 -0.16123199043984D-15 + 1 50 3 60 -0.28590715431927D+00 0.47429112074887D-16 + 2 50 3 60 0.17065758913518D+01 -0.33203515405674D-16 + 3 50 3 60 0.12265406544990D+01 0.15606768177213D-15 + 1 51 3 60 0.17379472240560D+00 -0.18167422505961D-16 + 2 51 3 60 -0.12118996449944D-01 0.35225897263662D-16 + 3 51 3 60 0.16229330172929D+00 -0.70401594129905D-16 + 1 52 3 60 0.17380976115390D+02 0.40195004074957D-17 + 2 52 3 60 -0.18445644366106D+02 -0.40100623913656D-16 + 3 52 3 60 -0.27760819090572D+02 0.16204326356635D-16 + 1 53 3 60 0.23882867257477D+00 -0.25155679506650D-17 + 2 53 3 60 -0.33313519872922D+00 0.19615234397948D-16 + 3 53 3 60 0.29163708009973D+00 -0.54763818960031D-16 + 1 54 3 60 -0.28753091410638D+00 -0.33640316664451D-16 + 2 54 3 60 -0.15949537106223D+00 0.61138840338401D-16 + 3 54 3 60 0.19033349414045D+00 -0.68305318934494D-16 + 1 55 3 60 0.33968534256652D+00 -0.10626457101266D-16 + 2 55 3 60 -0.14952538593818D+00 -0.46222394114042D-17 + 3 55 3 60 -0.60975442156202D+00 -0.15768122077798D-15 + 1 56 3 60 -0.45780525994136D+00 -0.61810253280393D-17 + 2 56 3 60 -0.28769115120802D+00 0.15726930294803D-18 + 3 56 3 60 -0.12788006633507D+00 -0.26186947972526D-19 + 1 57 3 60 -0.61681663058341D-03 -0.13479914339699D-17 + 2 57 3 60 -0.10534837771692D+00 0.17949455385481D-18 + 3 57 3 60 -0.12417076851962D+00 0.73682787299799D-17 + 1 58 3 60 -0.61638313884036D+00 -0.11863199586408D-16 + 2 58 3 60 0.45036500072236D+00 -0.41671973449388D-17 + 3 58 3 60 0.12036259698951D+01 0.76996072607607D-17 + 1 59 3 60 -0.55066654507337D-02 0.30341342963624D-18 + 2 59 3 60 0.36608589249551D-01 0.70880832027488D-18 + 3 59 3 60 -0.12424139542536D+00 0.48797590291402D-17 + 1 60 3 60 -0.68310894103182D+00 0.00000000000000D+00 + 2 60 3 60 -0.11969682585360D+00 0.00000000000000D+00 + 3 60 3 60 0.12110065699664D+03 0.00000000000000D+00 + 1 61 3 60 0.38138444980193D-01 0.22211994455573D-17 + 2 61 3 60 -0.88364560270813D-01 0.96982405577221D-17 + 3 61 3 60 -0.40246564189430D+00 0.40101656041938D-17 + 1 62 3 60 0.30991150850772D+00 -0.55042118789451D-18 + 2 62 3 60 0.20439597042973D+00 -0.42276140061524D-17 + 3 62 3 60 -0.16738313558675D+00 -0.95448500567720D-18 + 1 63 3 60 0.60412417775755D-01 0.14275817245544D-17 + 2 63 3 60 0.25756283878901D-01 0.12867304680975D-17 + 3 63 3 60 -0.18124573639915D+00 -0.41761550806986D-17 + 1 64 3 60 0.11024226193011D+01 -0.73173276062490D-17 + 2 64 3 60 -0.65632748910257D+00 -0.29112537436728D-16 + 3 64 3 60 0.12473213394783D+01 0.17318948363655D-16 + 1 65 3 60 0.25613440692052D+00 0.55473825400556D-16 + 2 65 3 60 0.26027499431462D+00 0.45681327665901D-16 + 3 65 3 60 -0.50075250552092D+00 -0.23488461473915D-16 + 1 1 1 61 -0.46736184534094D+00 -0.16758804548627D-15 + 2 1 1 61 0.42315601101540D+00 0.20791389250569D-16 + 3 1 1 61 -0.55398192425771D+00 0.13990400400215D-16 + 1 2 1 61 0.36923994026917D+00 -0.52211150127492D-16 + 2 2 1 61 0.20300347704440D+00 -0.93679043322555D-17 + 3 2 1 61 -0.29686620036028D+00 0.11637556253375D-16 + 1 3 1 61 0.27664613061127D+00 -0.63198882745764D-16 + 2 3 1 61 0.84150502029037D-02 -0.19071730559930D-16 + 3 3 1 61 0.20626483504735D-02 0.86983032869364D-18 + 1 4 1 61 -0.37009599433221D+00 0.11683854261868D-15 + 2 4 1 61 0.45192755122546D+00 -0.24547367856468D-18 + 3 4 1 61 -0.46559347373896D+00 0.15659976499652D-18 + 1 5 1 61 0.57174427519676D-01 -0.35804706897092D-17 + 2 5 1 61 -0.41327057253000D-01 -0.13639873027087D-17 + 3 5 1 61 0.33794676895601D-01 0.62537673263608D-16 + 1 6 1 61 -0.25336542636213D+02 0.58458630296950D-16 + 2 6 1 61 0.13879011340542D+02 0.40069950478465D-16 + 3 6 1 61 -0.13677385535158D+02 -0.21708681183140D-16 + 1 7 1 61 -0.75060432465814D+00 -0.12297930901191D-15 + 2 7 1 61 0.49830994239345D+00 0.14639916790397D-16 + 3 7 1 61 -0.48409400010692D+00 -0.22318638648446D-17 + 1 8 1 61 0.18950469390943D+00 -0.24691140107861D-15 + 2 8 1 61 0.28250092722396D+00 -0.15727352712437D-16 + 3 8 1 61 0.32566797249811D+00 -0.76351782655406D-18 + 1 9 1 61 -0.26513434349829D+00 -0.22559888723100D-15 + 2 9 1 61 -0.88364808457842D-01 -0.13895768817786D-17 + 3 9 1 61 0.10882249164783D+00 -0.78498016200157D-16 + 1 10 1 61 -0.30750329147910D+01 -0.15919024903994D-15 + 2 10 1 61 0.31522845379931D+01 0.00000000000000D+00 + 3 10 1 61 0.12418553858657D+01 -0.31603000618373D-16 + 1 11 1 61 -0.21575864670251D+00 0.33873399190270D-16 + 2 11 1 61 0.85136664112451D-01 0.10989986656477D-17 + 3 11 1 61 -0.10667108461057D+00 -0.10551484392872D-17 + 1 12 1 61 -0.30647115086679D+01 -0.25870479891710D-15 + 2 12 1 61 -0.30596651663489D+01 -0.74425639868258D-19 + 3 12 1 61 -0.13761677586902D+01 0.84122127439782D-17 + 1 13 1 61 -0.23316055675786D+00 -0.15818729621924D-15 + 2 13 1 61 0.95524459798810D-01 -0.10321427401514D-17 + 3 13 1 61 0.12734062973724D+00 -0.87543672272163D-17 + 1 14 1 61 -0.30813310039781D+01 0.75376051878224D-16 + 2 14 1 61 -0.31991757639689D+01 0.96162875432705D-18 + 3 14 1 61 0.13673988736778D+01 0.96371272745943D-16 + 1 15 1 61 -0.30574761769625D+01 0.29601657392696D-15 + 2 15 1 61 0.32811025291623D+01 -0.20165469349213D-17 + 3 15 1 61 -0.13103510648214D+01 0.82002026069143D-17 + 1 16 1 61 -0.45333922621259D+00 0.66698075520143D-16 + 2 16 1 61 -0.45618244863945D+00 0.71217046396129D-17 + 3 16 1 61 0.50891363746347D+00 -0.76845749964907D-17 + 1 17 1 61 0.52464302253742D+00 -0.17002363895541D-15 + 2 17 1 61 -0.32135967168936D+00 0.22539912626973D-16 + 3 17 1 61 0.34486761325057D+00 0.20968412602008D-16 + 1 18 1 61 0.24369046204170D+00 0.19891025913836D-16 + 2 18 1 61 -0.67656636498685D-02 0.49148344966799D-16 + 3 18 1 61 0.45448141448590D-01 0.22472756351050D-16 + 1 19 1 61 -0.49304833638927D+00 -0.85105397605975D-16 + 2 19 1 61 -0.50130163375714D+00 -0.22387328620976D-16 + 3 19 1 61 0.36482159917444D+00 -0.31901069980733D-16 + 1 20 1 61 0.15328911515379D+00 -0.30830191078068D-15 + 2 20 1 61 0.26505761927302D+00 -0.19930216831347D-16 + 3 20 1 61 0.22564467784923D+00 -0.15430948913538D-16 + 1 21 1 61 -0.25794221122147D+02 -0.73352671582956D-17 + 2 21 1 61 -0.13738598552669D+02 -0.32865775310288D-17 + 3 21 1 61 0.13679113574287D+02 0.13752564102657D-16 + 1 22 1 61 -0.77015767769167D+00 0.73324098893349D-16 + 2 22 1 61 -0.45010459969444D+00 0.95269739320552D-17 + 3 22 1 61 0.52080259707712D+00 0.24293539920095D-16 + 1 23 1 61 0.17633524868552D+00 0.24729618882401D-15 + 2 23 1 61 -0.19985889980305D+00 0.17582317932141D-16 + 3 23 1 61 -0.31821622388506D+00 -0.19115282857268D-16 + 1 24 1 61 -0.30434692768448D+01 -0.14350150559959D-15 + 2 24 1 61 -0.12394348388543D+01 -0.30783045375708D-16 + 3 24 1 61 -0.31716179054068D+01 0.24088038570816D-17 + 1 25 1 61 -0.30469835809634D+01 0.18766584657019D-15 + 2 25 1 61 0.13679500992356D+01 0.54476556333047D-16 + 3 25 1 61 0.31599033686937D+01 0.22903668507417D-17 + 1 26 1 61 -0.25031735777226D+00 -0.21098461333807D-15 + 2 26 1 61 -0.11878037928652D+00 0.80436236346391D-17 + 3 26 1 61 0.88994994054173D-01 0.74282353363009D-18 + 1 27 1 61 -0.22263137836702D+00 0.14914918395742D-15 + 2 27 1 61 0.85795956644176D-01 0.60266027117189D-16 + 3 27 1 61 -0.10249546607287D+00 0.16318487613556D-17 + 1 28 1 61 -0.30043583412530D+01 0.17626616299138D-15 + 2 28 1 61 -0.12210961823145D+01 0.44573937188578D-16 + 3 28 1 61 0.31155961361121D+01 -0.73315337511293D-18 + 1 29 1 61 -0.31707252962002D+01 0.19241293812698D-15 + 2 29 1 61 0.12864439244776D+01 -0.50228569116068D-17 + 3 29 1 61 -0.31016132636269D+01 -0.47079967792228D-17 + 1 30 1 61 -0.23944541779591D+00 -0.48412677195176D-16 + 2 30 1 61 -0.12681713296579D+00 -0.62428007105996D-16 + 3 30 1 61 -0.81668301919142D-01 0.19897948705994D-17 + 1 31 1 61 -0.22652366868191D+00 -0.18813668035895D-15 + 2 31 1 61 0.73751630300905D-01 0.78592005188053D-16 + 3 31 1 61 0.93447115162302D-01 0.31516574723230D-17 + 1 32 1 61 -0.69224099805291D-01 -0.17778199132973D-15 + 2 32 1 61 -0.49185051631149D+00 0.26156267939681D-16 + 3 32 1 61 -0.28641075667356D+00 0.76625601855355D-16 + 1 33 1 61 0.47011509603787D+00 0.23761776339645D-15 + 2 33 1 61 -0.31572160078403D+00 0.58781025297134D-17 + 3 33 1 61 -0.24689778800013D+00 -0.25903945252099D-16 + 1 34 1 61 0.25748660815605D+00 -0.13019541620986D-15 + 2 34 1 61 -0.44235881324082D-02 -0.14283667830009D-16 + 3 34 1 61 -0.16149580206859D-01 -0.15602719019129D-16 + 1 35 1 61 -0.42574411112178D+00 0.48918680028254D-16 + 2 35 1 61 -0.48878863251807D+00 -0.30206917740035D-16 + 3 35 1 61 -0.49371812521041D+00 0.61357408300936D-17 + 1 36 1 61 0.20291562690678D+00 -0.10608881317616D-15 + 2 36 1 61 0.34208337300894D+00 -0.28192151655669D-16 + 3 36 1 61 -0.26756134160942D+00 -0.15502358089271D-16 + 1 37 1 61 -0.27140407075915D+02 0.51394781775142D-17 + 2 37 1 61 -0.14657072719820D+02 -0.66401301619378D-16 + 3 37 1 61 -0.14117436603271D+02 -0.36086514073938D-16 + 1 38 1 61 -0.77717561802623D+00 -0.73091688098700D-17 + 2 38 1 61 -0.51547249503314D+00 0.17568771465528D-16 + 3 38 1 61 -0.59936482346722D+00 0.26293828770597D-16 + 1 39 1 61 0.19346724068186D+00 0.13968639564690D-15 + 2 39 1 61 -0.29583507294684D+00 0.11188265512496D-16 + 3 39 1 61 0.33125308076840D+00 -0.28728612065949D-16 + 1 40 1 61 -0.19982934461845D-01 0.91436155903912D-17 + 2 40 1 61 0.11656811585862D+00 0.11815703855758D-16 + 3 40 1 61 -0.13299472840209D+00 0.16320304136098D-16 + 1 41 1 61 -0.20122628419786D-01 -0.10139056822552D-15 + 2 41 1 61 -0.95229223935948D-01 0.99676910790447D-17 + 3 41 1 61 -0.10515103233069D+00 0.35299585132042D-16 + 1 42 1 61 -0.20198582307328D-01 0.98895776035977D-17 + 2 42 1 61 0.14193478143410D+00 0.15491110855873D-16 + 3 42 1 61 0.12057846732556D+00 -0.16874618260393D-16 + 1 43 1 61 -0.23349397939445D-02 -0.12486992470418D-16 + 2 43 1 61 -0.66047993622613D-01 -0.31498989453392D-16 + 3 43 1 61 0.52633044411428D-01 0.87445134484068D-17 + 1 44 1 61 0.31556423151157D+01 0.35191088215430D-16 + 2 44 1 61 0.12502012486378D+01 0.91242516630598D-17 + 3 44 1 61 -0.12789171090115D+01 0.31563082598885D-16 + 1 45 1 61 0.30499504829966D+01 0.33444045517504D-16 + 2 45 1 61 -0.13075662148973D+01 0.20481136019894D-16 + 3 45 1 61 -0.12884369863742D+01 0.28654622979215D-16 + 1 46 1 61 0.31882659330409D+01 -0.25288293320441D-15 + 2 46 1 61 0.12532163534033D+01 0.23161659241936D-16 + 3 46 1 61 0.12980637146702D+01 0.23955857472155D-16 + 1 47 1 61 0.30753321824938D+01 -0.14798914144588D-17 + 2 47 1 61 -0.14950307013227D+01 -0.15724792196736D-16 + 3 47 1 61 0.15222885050610D+01 -0.25755226790064D-16 + 1 48 1 61 -0.31512814179122D+00 0.59788014690337D-18 + 2 48 1 61 0.45552372354200D+00 -0.28133578122162D-16 + 3 48 1 61 0.44224998145374D+00 0.17417780921628D-16 + 1 49 1 61 0.39734956014695D+00 -0.84202333681576D-16 + 2 49 1 61 0.27710318582961D+00 -0.63881066277611D-17 + 3 49 1 61 0.22867874047310D+00 0.11603959299606D-16 + 1 50 1 61 0.19309537375821D+00 0.28038529393144D-15 + 2 50 1 61 0.79971555683547D-02 -0.29080109851609D-16 + 3 50 1 61 0.28826890102681D-01 -0.51605912081619D-17 + 1 51 1 61 -0.44551561571321D+00 -0.33980665929630D-16 + 2 51 1 61 0.52775938851812D+00 -0.10874106002943D-16 + 3 51 1 61 0.46486050728527D+00 -0.75185427103819D-17 + 1 52 1 61 0.22931480882146D+00 0.35882713038006D-16 + 2 52 1 61 -0.35239402038777D+00 0.32418557685569D-16 + 3 52 1 61 0.29022933731613D+00 0.22747000560492D-16 + 1 53 1 61 -0.26326713723825D+02 0.18651312711807D-15 + 2 53 1 61 0.14678196712313D+02 0.27237310448499D-16 + 3 53 1 61 0.14477059088582D+02 -0.36337704826894D-16 + 1 54 1 61 -0.78592107040989D+00 -0.98665991023610D-16 + 2 54 1 61 0.46029301411802D+00 -0.28041079632622D-16 + 3 54 1 61 0.47089004501018D+00 -0.29742317913705D-16 + 1 55 1 61 0.18966302382550D+00 0.77654037390015D-16 + 2 55 1 61 0.27707858760759D+00 0.31184138964922D-16 + 3 55 1 61 -0.35138773653670D+00 0.37644039962412D-16 + 1 56 1 61 -0.19511828925900D+00 -0.15976765360663D-16 + 2 56 1 61 -0.78044554531755D-02 0.36074948307210D-17 + 3 56 1 61 -0.61681663058380D-03 -0.18976853523659D-17 + 1 57 1 61 -0.42441281637999D+00 -0.62506665112336D-18 + 2 57 1 61 0.27334226525659D-02 -0.14141097100604D-17 + 3 57 1 61 -0.15132030000379D-02 0.10135004438067D-17 + 1 58 1 61 -0.12166211096926D+00 -0.29497016024038D-17 + 2 58 1 61 0.52381069365457D-02 0.18344345880900D-17 + 3 58 1 61 0.55066654507335D-02 0.49616392092954D-18 + 1 59 1 61 -0.14155133170060D+00 0.61790909348629D-18 + 2 59 1 61 -0.15033632328304D-01 0.25410139915826D-18 + 3 59 1 61 0.23946093418141D-01 -0.14281895448478D-17 + 1 60 1 61 -0.19374587556379D+00 0.14549585500272D-16 + 2 60 1 61 -0.42250900489271D-02 -0.90659096030145D-18 + 3 60 1 61 0.38138444980193D-01 -0.22211994455573D-17 + 1 61 1 61 0.12000135680810D+03 0.00000000000000D+00 + 2 61 1 61 -0.12319061319922D+00 0.00000000000000D+00 + 3 61 1 61 -0.65807813668294D+00 0.00000000000000D+00 + 1 62 1 61 0.16147086050100D+01 0.27307152953596D-17 + 2 62 1 61 0.73096735208846D-01 0.31813001375857D-17 + 3 62 1 61 -0.60412417775755D-01 -0.61070644253375D-18 + 1 63 1 61 -0.23882617083894D+00 -0.17399143809195D-18 + 2 63 1 61 0.15564013824401D-02 -0.20890708432649D-19 + 3 63 1 61 0.10301842422670D-01 0.14016592527455D-18 + 1 64 1 61 -0.18114310583075D+00 -0.14145196097787D-15 + 2 64 1 61 -0.31293946107064D+00 -0.18489041500235D-16 + 3 64 1 61 -0.14635713762281D+00 -0.14606860384029D-16 + 1 65 1 61 -0.97987867871879D-02 -0.22226137875767D-15 + 2 65 1 61 0.90537315177935D-02 0.83402156321345D-17 + 3 65 1 61 -0.60810909845794D-01 0.21485108564253D-16 + 1 1 2 61 0.45135257442485D+00 0.20791389250569D-16 + 2 1 2 61 -0.76046130464859D+00 0.23034314669872D-15 + 3 1 2 61 0.46496587470431D+00 -0.87909060604421D-17 + 1 2 2 61 0.26653682768796D+00 -0.93679043322555D-17 + 2 2 2 61 0.15727104241103D+00 0.62114875084716D-16 + 3 2 2 61 -0.32225879136919D+00 -0.86110166070769D-17 + 1 3 2 61 0.26176467133674D-02 -0.19071730559930D-16 + 2 3 2 61 0.29520040261450D+00 -0.19585421615323D-16 + 3 3 2 61 0.54559282343331D-01 -0.44487079605746D-19 + 1 4 2 61 0.47002277043587D+00 -0.24547367856468D-18 + 2 4 2 61 -0.37052391080199D+00 0.23566569174647D-16 + 3 4 2 61 0.46924060623007D+00 -0.26423277894741D-16 + 1 5 2 61 -0.55427107238890D-02 -0.13639873027087D-17 + 2 5 2 61 0.17804663887289D+00 0.13480520916006D-15 + 3 5 2 61 0.28225134787876D+00 -0.37723462852170D-16 + 1 6 2 61 0.13816776238180D+02 0.40069950478465D-16 + 2 6 2 61 -0.26062789866101D+02 0.13072137733570D-16 + 3 6 2 61 0.13994635157626D+02 -0.31800712796971D-17 + 1 7 2 61 0.43144431608079D+00 0.14639916790397D-16 + 2 7 2 61 -0.36088245076100D+00 -0.73369635095612D-15 + 3 7 2 61 0.41751349235391D+00 -0.14328369320659D-17 + 1 8 2 61 0.31472751484528D+00 -0.15727352712437D-16 + 2 8 2 61 0.49246290484206D+00 0.37543448781691D-16 + 3 8 2 61 0.30305418033183D+00 0.31154341072680D-16 + 1 9 2 61 -0.65195109669496D-01 -0.13895768817786D-17 + 2 9 2 61 -0.25204749713281D+00 0.11917650429107D-15 + 3 9 2 61 -0.13376023552567D+00 -0.85854818526788D-16 + 1 10 2 61 0.31880379749958D+01 0.00000000000000D+00 + 2 10 2 61 -0.31010690740300D+01 0.30430875031438D-15 + 3 10 2 61 -0.12833129941631D+01 0.26323109331423D-16 + 1 11 2 61 0.11601899127567D+00 0.10989986656477D-17 + 2 11 2 61 -0.25453576973771D+00 0.24535988295165D-15 + 3 11 2 61 -0.99859390646112D-01 -0.10616301781688D-15 + 1 12 2 61 -0.31071750059116D+01 -0.74425639868258D-19 + 2 12 2 61 -0.30652285689548D+01 -0.21901146755556D-16 + 3 12 2 61 -0.12023475815095D+01 0.79157551658081D-17 + 1 13 2 61 0.10856887234079D+00 -0.10321427401514D-17 + 2 13 2 61 -0.22820182169768D+00 0.13222023349281D-15 + 3 13 2 61 0.69079466598021D-01 -0.75754803004029D-16 + 1 14 2 61 -0.32039522267036D+01 0.96162875432705D-18 + 2 14 2 61 -0.31136975303414D+01 -0.97277442080772D-16 + 3 14 2 61 0.12511127867583D+01 -0.84353381899568D-16 + 1 15 2 61 0.31534604980328D+01 -0.20165469349213D-17 + 2 15 2 61 -0.31111385464382D+01 -0.31397124014878D-16 + 3 15 2 61 0.13775885799320D+01 0.43421323692116D-16 + 1 16 2 61 -0.51501859925011D+00 0.71217046396129D-17 + 2 16 2 61 -0.80735361833169D+00 0.11364329931700D-15 + 3 16 2 61 0.48027594224421D+00 -0.30248519913364D-16 + 1 17 2 61 -0.32051276862330D+00 0.22539912626973D-16 + 2 17 2 61 0.17794304813893D+00 0.15472639848015D-16 + 3 17 2 61 -0.32860218100949D+00 -0.22966299525505D-16 + 1 18 2 61 -0.22552624962985D-01 0.49148344966799D-16 + 2 18 2 61 0.29116309027544D+00 0.99442989795566D-16 + 3 18 2 61 0.28309789651057D-02 -0.15420543698420D-16 + 1 19 2 61 -0.43710435220490D+00 -0.22387328620976D-16 + 2 19 2 61 -0.37587517196716D+00 0.82270328501824D-16 + 3 19 2 61 0.46614700581314D+00 0.84869138843943D-17 + 1 20 2 61 0.31389755507366D+00 -0.19930216831347D-16 + 2 20 2 61 0.17637186941305D+00 -0.16869885346897D-15 + 3 20 2 61 0.30191942014921D+00 0.66896645716021D-17 + 1 21 2 61 -0.13654215728241D+02 -0.32865775310288D-17 + 2 21 2 61 -0.25755365692805D+02 -0.21209231417689D-16 + 3 21 2 61 0.13932091528740D+02 -0.28599358898333D-16 + 1 22 2 61 -0.42673169159092D+00 0.95269739320552D-17 + 2 22 2 61 -0.45982337843817D+00 -0.17503589345381D-16 + 3 22 2 61 0.41374287618090D+00 0.31994368269157D-16 + 1 23 2 61 -0.29923597616248D+00 0.17582317932141D-16 + 2 23 2 61 0.42551965214467D+00 0.67420286608693D-17 + 3 23 2 61 0.28016256143628D+00 0.65038227315633D-17 + 1 24 2 61 0.13270267936535D+01 -0.30783045375708D-16 + 2 24 2 61 0.30332084301199D+01 -0.94069412340925D-16 + 3 24 2 61 0.12419318315307D+01 0.37128674931611D-16 + 1 25 2 61 -0.12503487019539D+01 0.54476556333047D-16 + 2 25 2 61 0.30996653802460D+01 -0.26413261683518D-16 + 3 25 2 61 0.12746428311669D+01 0.12671380853999D-16 + 1 26 2 61 0.98105471988990D-01 0.80436236346391D-17 + 2 26 2 61 -0.40209081495182D-01 -0.91147233474544D-16 + 3 26 2 61 0.99268420215568D-01 0.37000447529803D-16 + 1 27 2 61 -0.12077597060909D+00 0.60266027117189D-16 + 2 27 2 61 -0.18398839271206D-01 0.77206006119620D-17 + 3 27 2 61 0.12548940319258D+00 -0.21544269915373D-16 + 1 28 2 61 0.13652157069082D+01 0.44573937188578D-16 + 2 28 2 61 0.30610124002741D+01 -0.20782844311867D-16 + 3 28 2 61 -0.14276448489624D+01 0.64806315314907D-17 + 1 29 2 61 -0.12344925828659D+01 -0.50228569116068D-17 + 2 29 2 61 0.30446783493883D+01 -0.10952341603372D-15 + 3 29 2 61 -0.11343705741543D+01 -0.28991841526625D-16 + 1 30 2 61 0.80210145194048D-01 -0.62428007105996D-16 + 2 30 2 61 -0.17411223374568D-01 0.13039089239765D-16 + 3 30 2 61 -0.73875759257909D-01 0.31230994270210D-16 + 1 31 2 61 -0.10238686586998D+00 0.78592005188053D-16 + 2 31 2 61 -0.52495826598257D-01 -0.20194305765071D-15 + 3 31 2 61 -0.12466780722943D+00 -0.36869062751777D-17 + 1 32 2 61 -0.34082333285974D+00 0.26156267939681D-16 + 2 32 2 61 -0.81185336706516D+00 0.19162199632951D-15 + 3 32 2 61 -0.60352768827599D+00 0.72178917226574D-16 + 1 33 2 61 -0.32358218209426D+00 0.58781025297134D-17 + 2 33 2 61 0.24708348230195D+00 0.93644135826842D-16 + 3 33 2 61 0.30091129439677D+00 -0.13633371925447D-16 + 1 34 2 61 -0.22643509870744D-01 -0.14283667830009D-16 + 2 34 2 61 0.26805640929539D+00 -0.12578447920438D-15 + 3 34 2 61 -0.27822975149859D-01 0.64399393082548D-17 + 1 35 2 61 -0.46661777973951D+00 -0.30206917740035D-16 + 2 35 2 61 -0.37201695309456D+00 0.52241581542301D-16 + 3 35 2 61 -0.46213141658107D+00 -0.90392397148438D-16 + 1 36 2 61 0.32023862973357D+00 -0.28192151655669D-16 + 2 36 2 61 0.23777045636008D+00 0.27104506372636D-16 + 3 36 2 61 -0.26183416531372D+00 0.93788136318809D-16 + 1 37 2 61 -0.14840802524424D+02 -0.66401301619378D-16 + 2 37 2 61 -0.25763641485448D+02 0.77649118162324D-16 + 3 37 2 61 -0.13709035226119D+02 -0.88396471681736D-17 + 1 38 2 61 -0.44805328709033D+00 0.17568771465528D-16 + 2 38 2 61 -0.51190641997775D+00 -0.88325869289199D-16 + 3 38 2 61 -0.61055482526110D+00 -0.70541989632269D-17 + 1 39 2 61 -0.26040622557041D+00 0.11188265512496D-16 + 2 39 2 61 0.45098802112201D+00 -0.71085774968013D-16 + 3 39 2 61 -0.27558435795446D+00 0.19736805629033D-16 + 1 40 2 61 -0.10515103233070D+00 0.11815703855758D-16 + 2 40 2 61 -0.22848785946546D+00 0.16026609734581D-15 + 3 40 2 61 -0.10643754625190D+00 -0.10287882306471D-17 + 1 41 2 61 0.13299472840209D+00 0.99676910790447D-17 + 2 41 2 61 -0.22774994674944D+00 -0.83502434814958D-16 + 3 41 2 61 0.10631103492100D+00 -0.13357940416930D-17 + 1 42 2 61 -0.16133490743945D-01 0.15491110855873D-16 + 2 42 2 61 -0.19898996517371D+00 -0.18731001488502D-15 + 3 42 2 61 0.10055451728177D+00 -0.24097840670451D-17 + 1 43 2 61 0.77343943757396D-01 -0.31498989453392D-16 + 2 43 2 61 -0.26287299123699D+00 0.12682206501120D-15 + 3 43 2 61 -0.99437535727202D-01 -0.18013436172678D-17 + 1 44 2 61 -0.12789171090115D+01 0.91242516630598D-17 + 2 44 2 61 -0.29961780079478D+01 0.27482192491915D-15 + 3 44 2 61 0.30830550896706D+01 -0.12981066203918D-17 + 1 45 2 61 0.12884369863742D+01 0.20481136019894D-16 + 2 45 2 61 -0.31342894738195D+01 -0.13105389824138D-15 + 3 45 2 61 -0.32259684776565D+01 0.15387938231173D-18 + 1 46 2 61 -0.13686463220819D+01 0.23161659241936D-16 + 2 46 2 61 -0.31017691541785D+01 0.79112565684055D-16 + 3 46 2 61 -0.32644467995037D+01 -0.51211528496156D-17 + 1 47 2 61 0.10982907017704D+01 -0.15724792196736D-16 + 2 47 2 61 -0.31906510664380D+01 0.41671857011224D-16 + 3 47 2 61 0.31255487756682D+01 0.11063968718588D-17 + 1 48 2 61 0.48369823738220D+00 -0.28133578122162D-16 + 2 48 2 61 -0.78338733454981D+00 -0.52590150059356D-16 + 3 48 2 61 -0.45833681568794D+00 -0.35516880190949D-17 + 1 49 2 61 0.24735014074086D+00 -0.63881066277611D-17 + 2 49 2 61 0.18807102073722D+00 -0.84894960303506D-16 + 3 49 2 61 0.30778667023405D+00 0.18486292966908D-17 + 1 50 2 61 0.29121581310743D-01 -0.29080109851609D-16 + 2 50 2 61 0.24478245845664D+00 0.17761708205657D-15 + 3 50 2 61 0.50694550586706D-01 -0.13783412612911D-16 + 1 51 2 61 0.52437964590649D+00 -0.10874106002943D-16 + 2 51 2 61 -0.44967235785732D+00 -0.14414031979885D-15 + 3 51 2 61 -0.43513197182491D+00 0.15824074267144D-16 + 1 52 2 61 -0.35660563057979D+00 0.32418557685569D-16 + 2 52 2 61 0.19045136784063D+00 0.64360506768976D-16 + 3 52 2 61 -0.21799906534147D+00 0.26653316875319D-16 + 1 53 2 61 0.14705333028176D+02 0.27237310448499D-16 + 2 53 2 61 -0.26673406555051D+02 -0.96464766608954D-16 + 3 53 2 61 -0.14444249625280D+02 -0.78369647405566D-16 + 1 54 2 61 0.47064181745670D+00 -0.28041079632622D-16 + 2 54 2 61 -0.34766337276457D+00 -0.23422870983993D-15 + 3 54 2 61 -0.42846589831313D+00 -0.11884138735315D-16 + 1 55 2 61 0.23380228617192D+00 0.31184138964922D-16 + 2 55 2 61 0.58598536914087D+00 0.15940642993737D-15 + 3 55 2 61 -0.37492435584405D+00 -0.26379052790056D-16 + 1 56 2 61 -0.13360427838615D+00 0.36074948307210D-17 + 2 56 2 61 0.14870128380568D+01 0.74888483315969D-17 + 3 56 2 61 0.10534837771692D+00 0.27016594251078D-17 + 1 57 2 61 -0.27334226525660D-02 -0.14141097100604D-17 + 2 57 2 61 -0.21965773484532D+00 -0.11656608487324D-17 + 3 57 2 61 0.24459884158639D-03 0.18643090743182D-19 + 1 58 2 61 -0.12354351356588D-01 0.18344345880900D-17 + 2 58 2 61 -0.11789925547314D+00 -0.41677923207551D-18 + 3 58 2 61 -0.36608589249551D-01 0.43123299578542D-18 + 1 59 2 61 -0.15033632328304D-01 0.25410139915826D-18 + 2 59 2 61 -0.17315680606386D+00 0.53566935876989D-18 + 3 59 2 61 0.70666205511097D-02 -0.61439371053863D-19 + 1 60 2 61 0.28052321328861D-01 -0.90659096030145D-18 + 2 60 2 61 -0.25125029174601D+00 -0.29084762823922D-16 + 3 60 2 61 -0.88364560270813D-01 -0.96982405577221D-17 + 1 61 2 61 -0.12319061319922D+00 0.00000000000000D+00 + 2 61 2 61 0.11996040263773D+03 0.00000000000000D+00 + 3 61 2 61 0.81338717684578D+00 0.00000000000000D+00 + 1 62 2 61 0.25656366926326D-01 0.31813001375857D-17 + 2 62 2 61 -0.10723510414041D+00 0.11923033413976D-16 + 3 62 2 61 0.25756283878900D-01 0.18838532460950D-17 + 1 63 2 61 -0.15564013824402D-02 -0.20890708432649D-19 + 2 63 2 61 -0.40132057144185D+00 0.15601026050930D-17 + 3 63 2 61 0.21764363757139D-01 -0.32131618276055D-19 + 1 64 2 61 -0.28203786703247D+00 -0.18489041500235D-16 + 2 64 2 61 0.24110516291536D-01 -0.12202978457331D-15 + 3 64 2 61 -0.12066294572834D+00 -0.59446555605652D-16 + 1 65 2 61 0.18950573049642D-01 0.83402156321345D-17 + 2 65 2 61 -0.63414165802430D-01 0.12216218800612D-15 + 3 65 2 61 -0.17597811415124D-01 0.76927213244672D-17 + 1 1 3 61 -0.48216063573330D+00 0.13990400400215D-16 + 2 1 3 61 0.55199541123175D+00 -0.87909060604421D-17 + 3 1 3 61 -0.45552851098672D+00 -0.91575580955854D-16 + 1 2 3 61 -0.33003961467011D+00 0.11637556253375D-16 + 2 2 3 61 -0.27594970481658D+00 -0.86110166070769D-17 + 3 2 3 61 0.22912581400825D+00 -0.16582218468294D-15 + 1 3 3 61 -0.11650839707697D-02 0.86983032869364D-18 + 2 3 3 61 -0.18427734937984D-01 -0.44487079605746D-19 + 3 3 3 61 0.29691473446176D+00 -0.34928656069874D-15 + 1 4 3 61 -0.48491587255601D+00 0.15659976499652D-18 + 2 4 3 61 0.46488166323621D+00 -0.26423277894741D-16 + 3 4 3 61 -0.78547982018116D+00 -0.10947876716159D-15 + 1 5 3 61 0.37616317979341D-02 0.62537673263608D-16 + 2 5 3 61 0.20196117384861D-01 -0.37723462852170D-16 + 3 5 3 61 -0.37611087067125D+00 0.23403686892079D-15 + 1 6 3 61 -0.13733332541572D+02 -0.21708681183140D-16 + 2 6 3 61 0.14107929617707D+02 -0.31800712796971D-17 + 3 6 3 61 -0.25999938377806D+02 -0.88876352029256D-15 + 1 7 3 61 -0.41642775373069D+00 -0.22318638648446D-17 + 2 7 3 61 0.42944402667853D+00 -0.14328369320659D-17 + 3 7 3 61 -0.32229451800095D+00 0.16458717312507D-15 + 1 8 3 61 0.34179935926502D+00 -0.76351782655406D-18 + 2 8 3 61 0.30437217106272D+00 0.31154341072680D-16 + 3 8 3 61 0.16835463342987D+00 -0.12473529847363D-15 + 1 9 3 61 -0.12442806753827D+00 -0.78498016200157D-16 + 2 9 3 61 0.11706295729564D+00 -0.85854818526788D-16 + 3 9 3 61 -0.39034711006488D-01 0.22015176280533D-16 + 1 10 3 61 -0.12876955666759D+01 -0.31603000618373D-16 + 2 10 3 61 0.13404540323597D+01 0.26323109331423D-16 + 3 10 3 61 0.31461925409856D+01 -0.24748467257501D-16 + 1 11 3 61 0.93845201709301D-01 -0.10551484392872D-17 + 2 11 3 61 0.11196569201530D+00 -0.10616301781688D-15 + 3 11 3 61 -0.31187185983451D-01 -0.71368096912068D-16 + 1 12 3 61 0.15562468678296D+01 0.84122127439782D-17 + 2 12 3 61 0.13228488051543D+01 0.79157551658081D-17 + 3 12 3 61 0.31319582770427D+01 -0.50269141598466D-16 + 1 13 3 61 -0.10813448889692D+00 -0.87543672272163D-17 + 2 13 3 61 -0.88500513317367D-01 -0.75754803004029D-16 + 3 13 3 61 -0.49105577665157D-02 -0.53795467926313D-16 + 1 14 3 61 -0.13194687112185D+01 0.96371272745943D-16 + 2 14 3 61 -0.12654763266823D+01 -0.84353381899568D-16 + 3 14 3 61 0.31633305596009D+01 0.14732441486618D-16 + 1 15 3 61 0.13086307270575D+01 0.82002026069143D-17 + 2 15 3 61 -0.14207456754165D+01 0.43421323692116D-16 + 3 15 3 61 0.31612187369587D+01 -0.12690351846391D-16 + 1 16 3 61 0.52535734949560D+00 -0.76845749964907D-17 + 2 16 3 61 0.47710773077174D+00 -0.30248519913364D-16 + 3 16 3 61 -0.44735271654359D+00 -0.52819684902825D-17 + 1 17 3 61 0.33179221431109D+00 0.20968412602008D-16 + 2 17 3 61 -0.34435770576832D+00 -0.22966299525505D-16 + 3 17 3 61 0.19316941103679D+00 -0.38345064311729D-15 + 1 18 3 61 0.14456368115462D-01 0.22472756351050D-16 + 2 18 3 61 0.18546293613141D-01 -0.15420543698420D-16 + 3 18 3 61 0.26354632444337D+00 0.12065502510540D-15 + 1 19 3 61 0.35014435252326D+00 -0.31901069980733D-16 + 2 19 3 61 0.44375316277967D+00 0.84869138843943D-17 + 3 19 3 61 -0.91736458850017D+00 0.27666479237562D-16 + 1 20 3 61 0.29601155427098D+00 -0.15430948913538D-16 + 2 20 3 61 0.27340328278778D+00 0.66896645716021D-17 + 3 20 3 61 0.43222364377869D+00 -0.41749932337192D-15 + 1 21 3 61 0.13749665086973D+02 0.13752564102657D-16 + 2 21 3 61 0.13838939719674D+02 -0.28599358898333D-16 + 3 21 3 61 -0.26190006915435D+02 0.23637441158563D-16 + 1 22 3 61 0.30544660227199D+00 0.24293539920095D-16 + 2 22 3 61 0.46664333485390D+00 0.31994368269157D-16 + 3 22 3 61 -0.52469610687681D+00 -0.28162898721807D-15 + 1 23 3 61 -0.27566745941856D+00 -0.19115282857268D-16 + 2 23 3 61 0.23274844943711D+00 0.65038227315633D-17 + 3 23 3 61 0.21967419079834D+00 -0.99085417366953D-16 + 1 24 3 61 -0.33078081980729D+01 0.24088038570816D-17 + 2 24 3 61 -0.12600447229703D+01 0.37128674931611D-16 + 3 24 3 61 -0.31777519768981D+01 -0.66328579346783D-16 + 1 25 3 61 0.31491568175680D+01 0.22903668507417D-17 + 2 25 3 61 -0.13599716217812D+01 0.12671380853999D-16 + 3 25 3 61 -0.30437881571425D+01 -0.13901937083777D-15 + 1 26 3 61 0.85695375456052D-01 0.74282353363009D-18 + 2 26 3 61 -0.98733218058407D-01 0.37000447529803D-16 + 3 26 3 61 -0.24768484707755D+00 0.23629743728106D-15 + 1 27 3 61 -0.90063254104477D-01 0.16318487613556D-17 + 2 27 3 61 -0.92029099056184D-01 -0.21544269915373D-16 + 3 27 3 61 -0.23295520329197D+00 0.97320624253744D-16 + 1 28 3 61 0.31738889652452D+01 -0.73315337511293D-18 + 2 28 3 61 0.12571940962572D+01 0.64806315314907D-17 + 3 28 3 61 -0.30423786554362D+01 0.24094583789493D-15 + 1 29 3 61 -0.31091888531854D+01 -0.47079967792228D-17 + 2 29 3 61 0.13756832393009D+01 -0.28991841526625D-16 + 3 29 3 61 -0.30139916482755D+01 -0.11778291088394D-15 + 1 30 3 61 -0.11482546015925D+00 0.19897948705994D-17 + 2 30 3 61 0.11344991498160D+00 0.31230994270210D-16 + 3 30 3 61 -0.21310322738957D+00 0.41082350073096D-16 + 1 31 3 61 0.11753736046785D+00 0.31516574723230D-17 + 2 31 3 61 0.85666039169640D-01 -0.36869062751777D-17 + 3 31 3 61 -0.23208147027117D+00 0.32427250511738D-15 + 1 32 3 61 -0.25116868051170D+00 0.76625601855355D-16 + 2 32 3 61 -0.39151104755289D+00 0.72178917226574D-16 + 3 32 3 61 -0.27726425993110D+00 -0.11061806460943D-15 + 1 33 3 61 -0.24424858336585D+00 -0.25903945252099D-16 + 2 33 3 61 0.30265282018592D+00 -0.13633371925447D-16 + 3 33 3 61 0.18184668037692D+00 0.55895241872663D-16 + 1 34 3 61 -0.13334431757597D-01 -0.15602719019129D-16 + 2 34 3 61 -0.30515804448365D-01 0.64399393082548D-17 + 3 34 3 61 0.26462086478740D+00 0.11647398988438D-15 + 1 35 3 61 -0.45567704351573D+00 0.61357408300936D-17 + 2 35 3 61 -0.47111525755596D+00 -0.90392397148438D-16 + 3 35 3 61 -0.81832269216946D+00 0.12241921372658D-15 + 1 36 3 61 -0.26767530867153D+00 -0.15502358089271D-16 + 2 36 3 61 -0.29554103937407D+00 0.93788136318809D-16 + 3 36 3 61 0.42850323800122D+00 0.19143601064785D-16 + 1 37 3 61 -0.14248162262728D+02 -0.36086514073938D-16 + 2 37 3 61 -0.13670665622604D+02 -0.88396471681736D-17 + 3 37 3 61 -0.25536535365739D+02 -0.17137667019012D-15 + 1 38 3 61 -0.48194379625109D+00 0.26293828770597D-16 + 2 38 3 61 -0.59930329214814D+00 -0.70541989632269D-17 + 3 38 3 61 -0.50047434236650D+00 -0.42241816284721D-16 + 1 39 3 61 0.32903125202355D+00 -0.28728612065949D-16 + 2 39 3 61 -0.29820000814503D+00 0.19736805629033D-16 + 3 39 3 61 0.17902564882347D+00 -0.60621869442804D-16 + 1 40 3 61 0.95229223935947D-01 0.16320304136098D-16 + 2 40 3 61 -0.10272258709109D+00 -0.10287882306471D-17 + 3 40 3 61 -0.22774994674944D+00 0.10347801242285D-15 + 1 41 3 61 0.11656811585862D+00 0.35299585132042D-16 + 2 41 3 61 0.10270295409905D+00 -0.13357940416930D-17 + 3 41 3 61 -0.22848785946546D+00 0.23038072355234D-15 + 1 42 3 61 -0.89382574095891D-01 -0.16874618260393D-16 + 2 42 3 61 0.10413342879518D+00 -0.24097840670451D-17 + 3 42 3 61 -0.21575497152441D+00 0.20512916042556D-15 + 1 43 3 61 -0.11767243478523D+00 0.87445134484068D-17 + 2 43 3 61 -0.14387887629046D+00 -0.18013436172678D-17 + 3 43 3 61 -0.22821706536484D+00 -0.13810064457803D-15 + 1 44 3 61 0.12502012486378D+01 0.31563082598885D-16 + 2 44 3 61 0.31184796091370D+01 -0.12981066203918D-17 + 3 44 3 61 -0.29961780079477D+01 -0.94772885051088D-16 + 1 45 3 61 0.13075662148973D+01 0.28654622979215D-16 + 2 45 3 61 -0.33093056973859D+01 0.15387938231173D-18 + 3 45 3 61 -0.31342894738195D+01 -0.31704495413989D-15 + 1 46 3 61 -0.14011878085562D+01 0.23955857472155D-16 + 2 46 3 61 -0.31874796976435D+01 -0.51211528496156D-17 + 3 46 3 61 -0.32375816820263D+01 -0.31643536342368D-15 + 1 47 3 61 -0.11033339330700D+01 -0.25755226790064D-16 + 2 47 3 61 0.31475754789696D+01 0.11063968718588D-17 + 3 47 3 61 -0.29367943623405D+01 -0.41769288564959D-16 + 1 48 3 61 0.41510684461685D+00 0.17417780921628D-16 + 2 48 3 61 -0.46766185471483D+00 -0.35516880190949D-17 + 3 48 3 61 -0.37168114771698D+00 0.10255393789139D-16 + 1 49 3 61 0.23802945606288D+00 0.11603959299606D-16 + 2 49 3 61 0.28569280361858D+00 0.18486292966908D-17 + 3 49 3 61 0.19144027554770D+00 -0.30910615529874D-15 + 1 50 3 61 0.29764610515246D-01 -0.51605912081619D-17 + 2 50 3 61 -0.94808506004454D-01 -0.13783412612911D-16 + 3 50 3 61 0.79503731643842D-01 -0.40066404568185D-16 + 1 51 3 61 0.48848716900826D+00 -0.75185427103819D-17 + 2 51 3 61 -0.49790547501619D+00 0.15824074267144D-16 + 3 51 3 61 -0.84989106608483D+00 0.19354679795493D-16 + 1 52 3 61 0.32406161278394D+00 0.22747000560492D-16 + 2 52 3 61 -0.29567997302833D+00 0.26653316875319D-16 + 3 52 3 61 0.53072023251006D+00 -0.31222606982492D-15 + 1 53 3 61 0.14353000606929D+02 -0.36337704826894D-16 + 2 53 3 61 -0.14299918188595D+02 -0.78369647405566D-16 + 3 53 3 61 -0.26293428596271D+02 0.73185172705799D-17 + 1 54 3 61 0.44525731202279D+00 -0.29742317913705D-16 + 2 54 3 61 -0.43899228290186D+00 -0.11884138735315D-16 + 3 54 3 61 -0.32341740368545D+00 -0.26310756451190D-17 + 1 55 3 61 -0.33632806315325D+00 0.37644039962412D-16 + 2 55 3 61 -0.34701699078133D+00 -0.26379052790056D-16 + 3 55 3 61 0.20982897868919D+00 0.26568614700945D-17 + 1 56 3 61 -0.36698199332301D-01 -0.18976853523659D-17 + 2 56 3 61 -0.73131832143502D-01 0.27016594251078D-17 + 3 56 3 61 -0.12417076851963D+00 -0.42395719174473D-18 + 1 57 3 61 -0.15132030000379D-02 0.10135004438067D-17 + 2 57 3 61 -0.24459884158659D-03 0.18643090743182D-19 + 3 57 3 61 -0.22649195687381D+00 0.36143705389271D-17 + 1 58 3 61 -0.63431380755935D-02 0.49616392092954D-18 + 2 58 3 61 -0.69431513153946D-02 0.43123299578542D-18 + 3 58 3 61 -0.12424139542536D+00 -0.99837806378851D-18 + 1 59 3 61 -0.23946093418141D-01 -0.14281895448478D-17 + 2 59 3 61 -0.70666205511098D-02 -0.61439371053863D-19 + 3 59 3 61 0.15986550337781D+01 -0.26384563877430D-19 + 1 60 3 61 -0.24726760963584D-01 -0.22211994455573D-17 + 2 60 3 61 0.34209735405514D-01 -0.96982405577221D-17 + 3 60 3 61 -0.40246564189430D+00 -0.40101656041938D-17 + 1 61 3 61 -0.65807813668294D+00 0.00000000000000D+00 + 2 61 3 61 0.81338717684578D+00 0.00000000000000D+00 + 3 61 3 61 0.11998085918812D+03 0.00000000000000D+00 + 1 62 3 61 0.11525350264607D-01 -0.61070644253375D-18 + 2 62 3 61 0.51528606358534D-01 0.18838532460950D-17 + 3 62 3 61 -0.18124573639914D+00 -0.47897463009517D-17 + 1 63 3 61 -0.10301842422670D-01 0.14016592527455D-18 + 2 63 3 61 0.21764363757139D-01 -0.32131618276055D-19 + 3 63 3 61 -0.23726627446706D+00 -0.29120398619234D-17 + 1 64 3 61 0.14625636154839D+00 -0.14606860384029D-16 + 2 64 3 61 -0.92189162375361D-01 -0.59446555605652D-16 + 3 64 3 61 0.36471902416286D+00 0.22779049091804D-16 + 1 65 3 61 0.38414445183779D-02 0.21485108564253D-16 + 2 65 3 61 0.88917535510196D-02 0.76927213244672D-17 + 3 65 3 61 0.76694457329234D-01 -0.14926409217805D-16 + 1 1 1 62 -0.58364062511924D+00 -0.39413400606345D-15 + 2 1 1 62 0.74948867391113D+00 0.21346815357312D-16 + 3 1 1 62 -0.65896889737925D+00 0.17726760522334D-16 + 1 2 1 62 0.81947051681333D-01 0.20585705883554D-16 + 2 2 1 62 0.10458857416864D+00 0.20242538221432D-16 + 3 2 1 62 0.17540967717463D+00 0.39312225020148D-16 + 1 3 1 62 0.31422049400924D+00 -0.38257369189640D-16 + 2 3 1 62 -0.17548457128180D+00 -0.60490339297036D-16 + 3 3 1 62 -0.35986694257036D+00 -0.10028088703464D-15 + 1 4 1 62 -0.63312078461237D+00 -0.19691678525988D-15 + 2 4 1 62 0.44260789793588D+00 0.21299721034067D-16 + 3 4 1 62 -0.51528742791333D+00 0.21091272768333D-16 + 1 5 1 62 0.24026317668267D+00 0.32814807736846D-15 + 2 5 1 62 0.19589691143570D+01 -0.80595925811412D-17 + 3 5 1 62 -0.12568042557563D+01 -0.17016973692782D-16 + 1 6 1 62 -0.78153175645180D+00 0.27316850567505D-16 + 2 6 1 62 0.53730740550124D+00 -0.46040232206738D-18 + 3 6 1 62 -0.46840841101348D+00 0.12840022699100D-15 + 1 7 1 62 -0.28281032658509D+02 0.13368647152833D-15 + 2 7 1 62 0.14256821798390D+02 0.30377656371326D-16 + 3 7 1 62 -0.14657929762345D+02 0.56586461956403D-17 + 1 8 1 62 0.24071006525500D+00 0.21588720707691D-16 + 2 8 1 62 -0.44122789176326D+00 0.65120010816607D-16 + 3 8 1 62 -0.29803704164043D+00 0.26980896611879D-16 + 1 9 1 62 -0.32157297915033D+01 -0.33249973732329D-16 + 2 9 1 62 -0.37358331173980D+01 0.92573431282642D-18 + 3 9 1 62 -0.12612871728019D+01 -0.67725558056853D-16 + 1 10 1 62 -0.24785948145177D+00 0.24045232980786D-15 + 2 10 1 62 0.11878586879503D+00 -0.17120277428156D-17 + 3 10 1 62 -0.14675843406442D+00 -0.84949862207606D-16 + 1 11 1 62 -0.30638988320256D+01 0.17841570641475D-15 + 2 11 1 62 0.31640814690755D+01 -0.86705411234153D-18 + 3 11 1 62 0.13515021593717D+01 -0.29394201902669D-16 + 1 12 1 62 -0.11874443038823D+00 0.50400152728498D-16 + 2 12 1 62 0.80597005297446D-01 0.45850301067147D-17 + 3 12 1 62 0.12365796421604D+00 -0.68784058569001D-16 + 1 13 1 62 -0.30001519778861D+01 -0.10566036360538D-15 + 2 13 1 62 0.30660005531584D+01 -0.24820697722578D-18 + 3 13 1 62 -0.12254845032310D+01 0.90515061738932D-16 + 1 14 1 62 -0.23633934167008D+00 0.23716235845544D-15 + 2 14 1 62 -0.90666799791500D-01 -0.17869339164512D-17 + 3 14 1 62 -0.14168161790001D+00 0.77794800462736D-16 + 1 15 1 62 -0.21132000918250D+00 -0.30177804081872D-15 + 2 15 1 62 0.13055966252282D+00 -0.24504694940679D-17 + 3 15 1 62 0.71961574256986D-01 0.16828020226409D-16 + 1 16 1 62 -0.39640379417135D+00 -0.13328226948058D-15 + 2 16 1 62 -0.51417559201220D+00 0.68235604676184D-17 + 3 16 1 62 0.80045650826027D+00 0.39632937652959D-16 + 1 17 1 62 0.23662232486672D+00 -0.75307197245467D-16 + 2 17 1 62 0.94824085324151D-02 -0.16766736356734D-16 + 3 17 1 62 -0.11423776684105D-01 0.62889034186988D-16 + 1 18 1 62 0.12148402283881D+00 0.13377532942942D-15 + 2 18 1 62 -0.21488924759003D+00 -0.10908804477404D-16 + 3 18 1 62 0.29451899344544D+00 0.20069976653446D-16 + 1 19 1 62 -0.50259411538244D+00 0.46801085097660D-16 + 2 19 1 62 -0.49922300162289D+00 0.38176649020080D-16 + 3 19 1 62 0.35059274663601D+00 -0.20997715088645D-16 + 1 20 1 62 0.19042103809356D+00 0.14382483090267D-15 + 2 20 1 62 -0.13762305616936D+00 0.68209860087920D-17 + 3 20 1 62 -0.28361053495241D+00 0.14374361041685D-16 + 1 21 1 62 -0.79645524878653D+00 0.94664016172036D-16 + 2 21 1 62 -0.36639941053523D+00 -0.10682741767536D-16 + 3 21 1 62 0.38632799622838D+00 0.20236144243445D-16 + 1 22 1 62 -0.24353371012175D+02 -0.57093274121587D-16 + 2 22 1 62 -0.14751333435336D+02 -0.22344607136969D-16 + 3 22 1 62 0.22245450246926D+02 0.23509940001971D-16 + 1 23 1 62 0.27912912720102D+00 -0.15771401095174D-15 + 2 23 1 62 0.29916503793232D+00 -0.20352404182157D-16 + 3 23 1 62 0.33872008325704D+00 -0.66571818925949D-16 + 1 24 1 62 -0.22877488748024D+00 0.21857839896070D-15 + 2 24 1 62 0.15578959509998D+00 -0.60936877305181D-16 + 3 24 1 62 -0.15007314540031D+00 -0.14131836596030D-17 + 1 25 1 62 -0.27692148443529D+00 0.12132532103132D-15 + 2 25 1 62 -0.19607991922540D-01 -0.10262338522582D-15 + 3 25 1 62 0.14976597231751D+00 0.40037481580775D-18 + 1 26 1 62 -0.29148046783835D+01 -0.20265326498408D-15 + 2 26 1 62 0.11584240695734D+01 0.49559531139290D-16 + 3 26 1 62 0.31270947786230D+01 0.58419084534085D-17 + 1 27 1 62 -0.32206381252867D+01 -0.28057340248817D-15 + 2 27 1 62 -0.16017402743485D+01 0.91332781371092D-16 + 3 27 1 62 -0.32345058521663D+01 0.86292344352615D-17 + 1 28 1 62 -0.22012489406827D+00 0.17680389172674D-15 + 2 28 1 62 -0.10226835393024D+00 -0.57780528130339D-16 + 3 28 1 62 0.82223371077731D-01 -0.28858942733094D-19 + 1 29 1 62 -0.11821621565578D+00 0.80324335232482D-16 + 2 29 1 62 -0.11779011964277D+00 0.38217639850137D-17 + 3 29 1 62 -0.24928118504911D+00 -0.42538172174712D-18 + 1 30 1 62 -0.31127751678940D+01 0.41885261108004D-16 + 2 30 1 62 0.12076686035773D+01 -0.58577596587412D-16 + 3 30 1 62 -0.31321845540439D+01 -0.27221505545981D-17 + 1 31 1 62 -0.28051599479846D+01 -0.17804230331417D-15 + 2 31 1 62 -0.20031063282268D+01 -0.30134091942722D-16 + 3 31 1 62 0.32779236897385D+01 0.18213703306491D-17 + 1 32 1 62 0.33793601791265D+00 -0.10659325706941D-15 + 2 32 1 62 0.16233365719528D+01 -0.14257749720395D-16 + 3 32 1 62 0.17793550258318D+01 0.29119989155327D-16 + 1 33 1 62 0.20033384962361D+00 0.15694389505733D-15 + 2 33 1 62 0.24696374662143D-02 0.49365997599922D-16 + 3 33 1 62 -0.15681017887170D+00 -0.16694219086484D-16 + 1 34 1 62 0.57599511950998D+00 -0.10054889485995D-15 + 2 34 1 62 -0.29550212064911D+00 -0.39537142651089D-17 + 3 34 1 62 -0.38139056523925D+00 0.89161287878463D-16 + 1 35 1 62 -0.29770639034202D+00 0.32856797906895D-16 + 2 35 1 62 -0.53882773265771D+00 0.38208998986520D-17 + 3 35 1 62 -0.43245298590620D+00 0.15209527101755D-16 + 1 36 1 62 0.21582940437261D+00 0.31923543713696D-16 + 2 36 1 62 -0.32434742287266D+00 -0.12477989533743D-16 + 3 36 1 62 0.43846442122255D+00 0.23985757647719D-16 + 1 37 1 62 -0.80985736801165D+00 -0.90985629455057D-16 + 2 37 1 62 -0.28684620462766D+00 -0.22834262433947D-16 + 3 37 1 62 -0.52165191449956D+00 0.78886961661799D-17 + 1 38 1 62 -0.27022189572521D+02 -0.33056421248796D-15 + 2 38 1 62 -0.14835666597383D+02 0.36535841235193D-17 + 3 38 1 62 -0.16629379756977D+02 -0.84999980628014D-17 + 1 39 1 62 0.11542738827356D+00 0.11961447192637D-15 + 2 39 1 62 0.17250536151423D+00 0.27316886861133D-16 + 3 39 1 62 -0.26119564154637D+00 0.36907985188069D-16 + 1 40 1 62 -0.20198582307328D-01 0.10979557414527D-16 + 2 40 1 62 -0.89382574095879D-01 0.41334532592797D-17 + 3 40 1 62 0.16133490743933D-01 -0.23651359405454D-17 + 1 41 1 62 -0.23349397939445D-02 -0.13491190487899D-15 + 2 41 1 62 0.11767243478525D+00 -0.18413141068901D-16 + 3 41 1 62 0.77343943757409D-01 0.10896606651496D-16 + 1 42 1 62 -0.42568070033698D+00 -0.12083206975576D-15 + 2 42 1 62 0.10890786888940D+00 -0.24032132997463D-16 + 3 42 1 62 -0.34261208178816D+00 0.31595317960879D-16 + 1 43 1 62 -0.42519676728862D+00 -0.78125110423092D-16 + 2 43 1 62 0.15638035851827D-01 0.14913819802792D-16 + 3 43 1 62 0.22985401946665D+00 0.16751377663888D-17 + 1 44 1 62 0.30753321824938D+01 0.11387302436487D-16 + 2 44 1 62 -0.11033339330700D+01 -0.32801471831262D-16 + 3 44 1 62 0.10982907017704D+01 0.34238607997181D-16 + 1 45 1 62 0.31882659330409D+01 0.97252844309863D-16 + 2 45 1 62 0.14011878085562D+01 -0.32346373528431D-17 + 3 45 1 62 0.13686463220819D+01 -0.97025009563353D-17 + 1 46 1 62 0.36035073432242D+01 0.10080708889143D-15 + 2 46 1 62 -0.16287765163973D+01 -0.12675392935153D-16 + 3 46 1 62 -0.14766123034724D+01 -0.13454355707511D-16 + 1 47 1 62 0.33326485128250D+01 0.52061746859015D-17 + 2 47 1 62 0.22422150556930D+01 0.74847264339193D-17 + 3 47 1 62 -0.79111691528172D+00 -0.17587378163922D-16 + 1 48 1 62 -0.17175783798409D+00 0.90233951353273D-16 + 2 48 1 62 0.46034884881435D+00 0.28200508082597D-17 + 3 48 1 62 0.33826748421716D+00 -0.41181607821584D-17 + 1 49 1 62 0.26686550422134D+00 -0.98816945786786D-16 + 2 49 1 62 0.20825616100104D-01 0.15744288366839D-16 + 3 49 1 62 0.10707045324182D+00 -0.23036763995059D-16 + 1 50 1 62 0.43428936181690D-01 0.16856781393149D-17 + 2 50 1 62 -0.13093678493619D+01 -0.59239953912890D-17 + 3 50 1 62 -0.16931048991710D+01 -0.20209970931017D-18 + 1 51 1 62 -0.49336914517858D+00 -0.12654244838467D-15 + 2 51 1 62 0.50939446161318D+00 -0.26204093604375D-16 + 3 51 1 62 0.43441998613116D+00 -0.47635397050579D-16 + 1 52 1 62 0.62025028896456D-02 -0.13458449554785D-15 + 2 52 1 62 0.23104945061831D+00 -0.54407939817570D-17 + 3 52 1 62 -0.37197994347042D+00 -0.37495441085680D-16 + 1 53 1 62 -0.81083552164948D+00 0.22666719260351D-16 + 2 53 1 62 0.44096668991251D+00 -0.17009281973602D-16 + 3 53 1 62 0.54032163431437D+00 0.66333636123604D-18 + 1 54 1 62 -0.24223590393392D+02 -0.15513078145272D-15 + 2 54 1 62 0.13529215902065D+02 0.27964742903320D-16 + 3 54 1 62 0.11927098542457D+02 0.29046437546500D-16 + 1 55 1 62 0.62632122828489D+00 0.54146122365709D-17 + 2 55 1 62 -0.78293220003702D+00 -0.33847064238511D-16 + 3 55 1 62 0.83325922317388D+00 -0.43930707151346D-17 + 1 56 1 62 0.21493144039402D+00 -0.18966955083080D-16 + 2 56 1 62 0.35798312713401D+00 -0.50043202444306D-17 + 3 56 1 62 -0.61638313884036D+00 -0.90221374772386D-17 + 1 57 1 62 -0.12166211096925D+00 0.76182132763654D-17 + 2 57 1 62 0.12354351356588D-01 -0.55903493837424D-19 + 3 57 1 62 -0.63431380755932D-02 0.21176453198274D-17 + 1 58 1 62 -0.54947314096176D+00 0.30000689244854D-16 + 2 58 1 62 -0.14226339989857D+00 0.26117475571251D-17 + 3 58 1 62 0.45780525994136D+00 0.10644932863842D-16 + 1 59 1 62 -0.19511828925900D+00 0.21014510621352D-16 + 2 59 1 62 -0.13360427838615D+00 -0.13409308896380D-17 + 3 59 1 62 0.36698199332303D-01 -0.63259229839150D-17 + 1 60 1 62 -0.56483248397148D+00 -0.95115838102401D-17 + 2 60 1 62 0.18069400296059D+00 0.15680337583718D-17 + 3 60 1 62 0.30991150850772D+00 0.55042118789451D-18 + 1 61 1 62 0.16147086050100D+01 -0.27307152953596D-17 + 2 61 1 62 0.25656366926326D-01 -0.31813001375857D-17 + 3 61 1 62 0.11525350264607D-01 0.61070644253375D-18 + 1 62 1 62 0.11892909311263D+03 0.00000000000000D+00 + 2 62 1 62 0.28802566016957D+01 0.00000000000000D+00 + 3 62 1 62 0.68310894103212D+00 0.00000000000000D+00 + 1 63 1 62 -0.19374587556379D+00 -0.26873759549791D-17 + 2 63 1 62 -0.28052321328861D-01 -0.15844767568212D-17 + 3 63 1 62 0.24726760963584D-01 0.28867776322470D-17 + 1 64 1 62 -0.32913855200116D+01 0.14113019820131D-15 + 2 64 1 62 -0.54538626186918D+01 0.47386265764065D-18 + 3 64 1 62 -0.11913615239239D+01 0.97062192046109D-16 + 1 65 1 62 0.64172853416079D+00 -0.12086234746473D-16 + 2 65 1 62 -0.44400670465208D-01 -0.11201647983137D-16 + 3 65 1 62 -0.56679916905530D+00 -0.12001875983881D-15 + 1 1 2 62 0.58941207799972D+00 0.21346815357312D-16 + 2 1 2 62 -0.34062346733944D+00 -0.84589319800305D-16 + 3 1 2 62 0.34781997433926D+00 0.11313129656544D-16 + 1 2 2 62 -0.10295060887454D+00 0.20242538221432D-16 + 2 2 2 62 0.37092861818659D+00 -0.31488587792651D-15 + 3 2 2 62 0.20826631690892D+00 -0.25188885562003D-16 + 1 3 2 62 0.21516708156434D+00 -0.60490339297036D-16 + 2 3 2 62 0.31305621381464D-01 -0.52134670845643D-16 + 3 3 2 62 -0.30197170554672D+00 0.16401504145992D-16 + 1 4 2 62 0.28525463577358D+00 0.21299721034067D-16 + 2 4 2 62 -0.79567018427530D+00 -0.17186526240308D-15 + 3 4 2 62 0.49069469237906D+00 -0.38013663145613D-16 + 1 5 2 62 0.69836127851069D+00 -0.80595925811412D-17 + 2 5 2 62 0.19692102717770D+01 -0.42007413948015D-16 + 3 5 2 62 -0.87578480095378D+00 -0.38056958546538D-16 + 1 6 2 62 0.31197724830339D+00 -0.46040232206738D-18 + 2 6 2 62 -0.25326590528757D+00 -0.11668456255238D-16 + 3 6 2 62 0.29558449714713D+00 -0.27696887392484D-16 + 1 7 2 62 0.13867197110953D+02 0.30377656371326D-16 + 2 7 2 62 -0.24532491806041D+02 0.48473003781442D-16 + 3 7 2 62 0.12371596783117D+02 0.19579956786041D-16 + 1 8 2 62 -0.39930320110790D+00 0.65120010816607D-16 + 2 8 2 62 0.18654111657419D+00 -0.72506603523300D-16 + 3 8 2 62 0.43699935314725D+00 -0.27439130997070D-16 + 1 9 2 62 -0.35469120189637D+01 0.92573431282642D-18 + 2 9 2 62 -0.33903977200178D+01 0.49391588302002D-17 + 3 9 2 62 -0.10925016594282D+01 0.15755432603638D-16 + 1 10 2 62 0.12050740714423D+00 -0.17120277428156D-17 + 2 10 2 62 -0.24793168041875D+00 -0.17348797408027D-15 + 3 10 2 62 -0.15168666551704D+00 -0.49437249228884D-16 + 1 11 2 62 0.33050853082271D+01 -0.86705411234153D-18 + 2 11 2 62 -0.29877680086003D+01 0.80572421680992D-16 + 3 11 2 62 -0.12841378769088D+01 0.21997384704405D-16 + 1 12 2 62 -0.82043198351641D-01 0.45850301067147D-17 + 2 12 2 62 -0.16993298888397D+00 -0.24723429268171D-15 + 3 12 2 62 -0.71194922581207D-01 -0.67828271003705D-16 + 1 13 2 62 0.31773514429869D+01 -0.24820697722578D-18 + 2 13 2 62 -0.29954888535487D+01 0.22986434377742D-15 + 3 13 2 62 0.13470329229198D+01 0.56927934676257D-16 + 1 14 2 62 -0.10097204574324D+00 -0.17869339164512D-17 + 2 14 2 62 -0.24639150368970D+00 0.31237545304182D-15 + 3 14 2 62 0.83074439382479D-01 -0.20382081508213D-16 + 1 15 2 62 0.10038897771306D+00 -0.24504694940679D-17 + 2 15 2 62 -0.18948265496565D+00 0.92480999406676D-16 + 3 15 2 62 0.11750953390600D+00 0.58082236827671D-16 + 1 16 2 62 -0.63674313804244D+00 0.68235604676184D-17 + 2 16 2 62 -0.37756417728969D+00 -0.60495294500130D-17 + 3 16 2 62 0.68264261748262D+00 -0.47013308570457D-16 + 1 17 2 62 -0.31560473711005D-02 -0.16766736356734D-16 + 2 17 2 62 0.29525495854003D+00 0.63473654516243D-16 + 3 17 2 62 -0.19573453759546D-01 -0.28764045561128D-16 + 1 18 2 62 -0.16615110843062D+00 -0.10908804477404D-16 + 2 18 2 62 0.15446028503365D+00 0.53532757266467D-16 + 3 18 2 62 -0.64823888964955D-01 -0.26461260105553D-16 + 1 19 2 62 -0.59033759901085D+00 0.38176649020080D-16 + 2 19 2 62 -0.87879839587781D+00 -0.15082900380477D-16 + 3 19 2 62 0.23675050006732D+00 0.47252587829578D-17 + 1 20 2 62 -0.30050836975059D+00 0.68209860087920D-17 + 2 20 2 62 0.55573036713750D+00 -0.11253634495856D-15 + 3 20 2 62 0.31592974345077D+00 0.17598337291940D-16 + 1 21 2 62 -0.49338013526382D+00 -0.10682741767536D-16 + 2 21 2 62 -0.32116000110640D+00 -0.14589001059073D-15 + 3 21 2 62 0.49852977540939D+00 0.50932626492190D-17 + 1 22 2 62 -0.13111602562201D+02 -0.22344607136969D-16 + 2 22 2 62 -0.26966858017481D+02 0.13812613396474D-15 + 3 22 2 62 0.23403793604855D+02 -0.39927655190316D-17 + 1 23 2 62 0.42098272698905D+00 -0.20352404182157D-16 + 2 23 2 62 0.12123201124201D+00 -0.28007685549526D-15 + 3 23 2 62 0.25348016079986D+00 -0.68328510887208D-16 + 1 24 2 62 -0.10790549971587D+00 -0.60936877305181D-16 + 2 24 2 62 -0.18463012523087D-01 0.79993699614565D-16 + 3 24 2 62 0.44033202187169D-01 -0.16459359616785D-16 + 1 25 2 62 0.11757710023595D+00 -0.10262338522582D-15 + 2 25 2 62 0.37900726108921D-02 0.12963843224581D-15 + 3 25 2 62 0.10726450908200D+00 0.91012610562319D-17 + 1 26 2 62 -0.14205596556584D+01 0.49559531139290D-16 + 2 26 2 62 0.30306915079876D+01 -0.41114556892400D-16 + 3 26 2 62 0.12396011896155D+01 0.11772914107561D-16 + 1 27 2 62 0.11397146903825D+01 0.91332781371092D-16 + 2 27 2 62 0.30580094079255D+01 -0.10770742331887D-15 + 3 27 2 62 0.10540879121051D+01 -0.16905512684146D-16 + 1 28 2 62 -0.14109272489711D+00 -0.57780528130339D-16 + 2 28 2 62 -0.10484951280542D+00 0.49267408927395D-16 + 3 28 2 62 -0.12818383142601D+00 -0.10184422972746D-16 + 1 29 2 62 0.72227401361731D-01 0.38217639850137D-17 + 2 29 2 62 -0.19873251756067D+00 0.30871390020423D-16 + 3 29 2 62 -0.20147194587619D+00 -0.52733014271297D-17 + 1 30 2 62 -0.14529028836111D+01 -0.58577596587412D-16 + 2 30 2 62 0.32532103886273D+01 -0.14958710487022D-15 + 3 30 2 62 -0.12261362992760D+01 -0.65144890314653D-18 + 1 31 2 62 0.11176717924403D+01 -0.30134091942722D-16 + 2 31 2 62 0.26328894094708D+01 0.33656163008989D-16 + 3 31 2 62 -0.95452131471842D+00 0.17960658194133D-16 + 1 32 2 62 0.26317444518414D+00 -0.14257749720395D-16 + 2 32 2 62 0.11871324957381D+01 -0.15055565895458D-15 + 3 32 2 62 0.15198829841141D+01 0.63440770617417D-16 + 1 33 2 62 -0.10281033293596D+00 0.49365997599922D-16 + 2 33 2 62 0.26864894443220D+00 -0.14253011513341D-15 + 3 33 2 62 -0.98401233411657D-01 -0.90085003585541D-17 + 1 34 2 62 -0.26938321812236D+00 -0.39537142651089D-17 + 2 34 2 62 0.93208777468695D-01 -0.27078542602182D-15 + 3 34 2 62 0.34011013696973D+00 0.16229209323570D-16 + 1 35 2 62 -0.47577268331974D+00 0.38208998986520D-17 + 2 35 2 62 -0.83525506489340D+00 -0.79209095491353D-16 + 3 35 2 62 -0.59167202259456D+00 0.77990737550294D-16 + 1 36 2 62 -0.29934916374172D+00 -0.12477989533743D-16 + 2 36 2 62 0.62661665556899D+00 -0.16771495453918D-15 + 3 36 2 62 -0.24748365031446D+00 0.40731733622135D-16 + 1 37 2 62 -0.35556774802706D+00 -0.22834262433947D-16 + 2 37 2 62 -0.85893846018712D-01 -0.32211924845188D-16 + 3 37 2 62 -0.43526276143987D+00 -0.21748541711067D-16 + 1 38 2 62 -0.14558835678490D+02 0.36535841235193D-17 + 2 38 2 62 -0.26885952984624D+02 0.31132440267195D-15 + 3 38 2 62 -0.17524480964126D+02 0.93787116636657D-16 + 1 39 2 62 0.23038762429388D+00 0.27316886861133D-16 + 2 39 2 62 0.15731667061841D+00 -0.15261982849100D-15 + 3 39 2 62 -0.27476276805790D+00 0.19461342328411D-16 + 1 40 2 62 0.12057846732557D+00 0.41334532592797D-17 + 2 40 2 62 -0.21575497152441D+00 0.44699829860248D-16 + 3 40 2 62 -0.10055451728178D+00 0.13140877170276D-17 + 1 41 2 62 -0.52633044411413D-01 -0.18413141068901D-16 + 2 41 2 62 -0.22821706536484D+00 -0.34435318292973D-15 + 3 41 2 62 0.99437535727202D-01 -0.18818261824201D-17 + 1 42 2 62 -0.22985401946665D+00 -0.24032132997463D-16 + 2 42 2 62 0.11250902439584D+00 0.26469568173662D-15 + 3 42 2 62 -0.14341331282464D+00 -0.15805316491196D-17 + 1 43 2 62 -0.34261208178817D+00 0.14913819802792D-16 + 2 43 2 62 -0.31513249573963D+00 0.18164994930011D-15 + 3 43 2 62 0.14284829732332D+00 -0.48372629050075D-17 + 1 44 2 62 0.15222885050610D+01 -0.32801471831262D-16 + 2 44 2 62 -0.29367943623405D+01 -0.72172049644127D-16 + 3 44 2 62 0.31255487756682D+01 0.28933708514562D-17 + 1 45 2 62 -0.12980637146702D+01 -0.32346373528431D-17 + 2 45 2 62 -0.32375816820263D+01 0.16762724723194D-15 + 3 45 2 62 -0.32644467995037D+01 -0.37914830309307D-18 + 1 46 2 62 0.14766123034724D+01 -0.12675392935153D-16 + 2 46 2 62 -0.32451830657095D+01 0.73317465590676D-16 + 3 46 2 62 -0.31360063028185D+01 -0.52495629306215D-18 + 1 47 2 62 -0.79111691528172D+00 0.74847264339193D-17 + 2 47 2 62 -0.19446621466388D+01 -0.11578994019549D-15 + 3 47 2 62 0.25874532646369D+01 0.26991101118746D-17 + 1 48 2 62 0.52011348209477D+00 0.28200508082597D-17 + 2 48 2 62 -0.39910233886038D+00 0.93503748338066D-16 + 3 48 2 62 -0.59323179457402D+00 0.37739992169273D-16 + 1 49 2 62 -0.94617811102801D-02 0.15744288366839D-16 + 2 49 2 62 0.24492796035844D+00 -0.31855709659584D-16 + 3 49 2 62 0.49505833736297D-01 -0.23021902752023D-16 + 1 50 2 62 -0.35757827279208D-01 -0.59239953912890D-17 + 2 50 2 62 -0.11313505286587D+01 -0.22320759612468D-15 + 3 50 2 62 -0.13549678598456D+01 0.85634891974679D-17 + 1 51 2 62 0.25450899472504D+00 -0.26204093604375D-16 + 2 51 2 62 -0.87719096127325D+00 -0.72559179115861D-17 + 3 51 2 62 -0.33525327094947D+00 0.19335841611459D-16 + 1 52 2 62 -0.53763771560489D-01 -0.54407939817570D-17 + 2 52 2 62 0.27420601099826D+00 0.77904203468212D-15 + 3 52 2 62 -0.26868741007230D+00 -0.17487020041715D-16 + 1 53 2 62 0.45818229504203D+00 -0.17009281973602D-16 + 2 53 2 62 -0.50913110257274D+00 -0.17964803517932D-15 + 3 53 2 62 -0.48522302031412D+00 0.22011707967591D-16 + 1 54 2 62 0.13901670395536D+02 0.27964742903320D-16 + 2 54 2 62 -0.26367025656392D+02 -0.25721733913175D-15 + 3 54 2 62 -0.14345599579921D+02 -0.58183909608082D-17 + 1 55 2 62 -0.21034855301275D+00 -0.33847064238511D-16 + 2 55 2 62 -0.18536809697928D+00 -0.97704582396766D-16 + 3 55 2 62 -0.37174795431063D-01 0.29970020081315D-16 + 1 56 2 62 0.35798312713401D+00 -0.50043202444306D-17 + 2 56 2 62 0.20435856490277D+00 -0.19037423982932D-16 + 3 56 2 62 -0.45036500072236D+00 -0.62529497893708D-18 + 1 57 2 62 -0.52381069365457D-02 -0.55903493837424D-19 + 2 57 2 62 -0.11789925547314D+00 -0.67889549214413D-17 + 3 57 2 62 0.69431513153938D-02 0.12389114506395D-17 + 1 58 2 62 0.14226339989857D+00 0.26117475571251D-17 + 2 58 2 62 -0.40548407098281D+00 -0.16921792903643D-17 + 3 58 2 62 0.28769115120802D+00 0.13822250601698D-18 + 1 59 2 62 -0.78044554531757D-02 -0.13409308896380D-17 + 2 59 2 62 0.14870128380568D+01 0.41870979349100D-17 + 3 59 2 62 0.73131832143502D-01 -0.71756300563678D-19 + 1 60 2 62 -0.18069400296059D+00 0.15680337583718D-17 + 2 60 2 62 -0.62710495305077D+00 0.71625470774900D-17 + 3 60 2 62 0.20439597042973D+00 0.42276140061524D-17 + 1 61 2 62 0.73096735208846D-01 -0.31813001375857D-17 + 2 61 2 62 -0.10723510414041D+00 -0.11923033413976D-16 + 3 61 2 62 0.51528606358534D-01 -0.18838532460950D-17 + 1 62 2 62 0.28802566016957D+01 0.00000000000000D+00 + 2 62 2 62 0.12111955382287D+03 0.00000000000000D+00 + 3 62 2 62 -0.11969682585383D+00 0.00000000000000D+00 + 1 63 2 62 0.42250900489271D-02 -0.15844767568212D-17 + 2 63 2 62 -0.25125029174601D+00 0.93112697206535D-17 + 3 63 2 62 0.34209735405514D-01 0.35635709745866D-17 + 1 64 2 62 -0.59872147645347D+01 0.47386265764065D-18 + 2 64 2 62 -0.61174067196090D+01 -0.31960827599345D-15 + 3 64 2 62 -0.11989383012939D+01 0.21137861148766D-16 + 1 65 2 62 0.15548126048235D+00 -0.11201647983137D-16 + 2 65 2 62 0.34047678614172D+00 -0.10188814444198D-15 + 3 65 2 62 -0.64991636464351D+00 0.62174823392047D-16 + 1 1 3 62 -0.45615503776575D+00 0.17726760522334D-16 + 2 1 3 62 0.61830381521060D+00 0.11313129656544D-16 + 3 1 3 62 -0.93113972708092D+00 0.13064488034688D-15 + 1 2 3 62 -0.24610974420285D+00 0.39312225020148D-16 + 2 2 3 62 0.24018265599631D+00 -0.25188885562003D-16 + 3 2 3 62 0.53148809985973D+00 -0.35663249430407D-17 + 1 3 3 62 0.29825601567353D-02 -0.10028088703464D-15 + 2 3 3 62 -0.18019124741021D+00 0.16401504145992D-16 + 3 3 3 62 0.10626880733348D+00 0.62217869196438D-16 + 1 4 3 62 -0.63253059845948D+00 0.21091272768333D-16 + 2 4 3 62 0.46177411275870D+00 -0.38013663145613D-16 + 3 4 3 62 -0.50206812739809D+00 -0.17654416971495D-15 + 1 5 3 62 0.69344548756159D+00 -0.17016973692782D-16 + 2 5 3 62 0.15289918852252D+01 -0.38056958546538D-16 + 3 5 3 62 -0.11782400519076D+01 0.16076032762797D-15 + 1 6 3 62 -0.37756050303363D+00 0.12840022699100D-15 + 2 6 3 62 0.40158016642122D+00 -0.27696887392484D-16 + 3 6 3 62 -0.21332075910505D+00 -0.52072419361608D-16 + 1 7 3 62 -0.14992323709904D+02 0.56586461956403D-17 + 2 7 3 62 0.12776995690579D+02 0.19579956786041D-16 + 3 7 3 62 -0.25101178599709D+02 -0.25190576185138D-15 + 1 8 3 62 -0.24324448070264D+00 0.26980896611879D-16 + 2 8 3 62 0.26491264012522D+00 -0.27439130997070D-16 + 3 8 3 62 0.62299032448476D+00 0.56967472015338D-15 + 1 9 3 62 0.12482638357656D+01 -0.67725558056853D-16 + 2 9 3 62 0.12067952504781D+01 0.15755432603638D-16 + 3 9 3 62 0.28423411136097D+01 0.32429250302610D-16 + 1 10 3 62 0.11771011529336D+00 -0.84949862207606D-16 + 2 10 3 62 0.11438150796613D+00 -0.49437249228884D-16 + 3 10 3 62 0.17176138476530D-01 0.79503596774800D-16 + 1 11 3 62 -0.13211942367618D+01 -0.29394201902669D-16 + 2 11 3 62 0.13319450553958D+01 0.21997384704405D-16 + 3 11 3 62 0.31311444326210D+01 0.91535328222072D-17 + 1 12 3 62 -0.56111524358578D-01 -0.68784058569001D-16 + 2 12 3 62 0.23773955807572D+00 -0.67828271003705D-16 + 3 12 3 62 0.28004815274250D-01 0.37741512412378D-16 + 1 13 3 62 0.14264458797104D+01 0.90515061738932D-16 + 2 13 3 62 -0.12061807511854D+01 0.56927934676257D-16 + 3 13 3 62 0.31732604423891D+01 0.30103446060179D-16 + 1 14 3 62 0.88968340529829D-01 0.77794800462736D-16 + 2 14 3 62 -0.53660734478791D-01 -0.20382081508213D-16 + 3 14 3 62 -0.74228177386476D-01 -0.21521944346652D-16 + 1 15 3 62 -0.80742365490621D-01 0.16828020226409D-16 + 2 15 3 62 -0.11189461027629D+00 0.58082236827671D-16 + 3 15 3 62 -0.42718762411067D-01 0.41213482075338D-16 + 1 16 3 62 0.59823138478369D+00 0.39632937652959D-16 + 2 16 3 62 0.69117859893013D+00 -0.47013308570457D-16 + 3 16 3 62 -0.60193948425331D+00 0.11236373432425D-15 + 1 17 3 62 0.11555303207962D-01 0.62889034186988D-16 + 2 17 3 62 0.51697840507664D-01 -0.28764045561128D-16 + 3 17 3 62 0.27493805249823D+00 -0.92835826410878D-16 + 1 18 3 62 0.20189496355115D+00 0.20069976653446D-16 + 2 18 3 62 -0.33929061429275D+00 -0.26461260105553D-16 + 3 18 3 62 0.33670670103111D+00 -0.21416065246340D-16 + 1 19 3 62 0.27401375196434D+00 -0.20997715088645D-16 + 2 19 3 62 0.76511502303099D-01 0.47252587829578D-17 + 3 19 3 62 -0.62129055617945D+00 0.10810334676229D-15 + 1 20 3 62 -0.42205070125685D+00 0.14374361041685D-16 + 2 20 3 62 0.40212139172871D+00 0.17598337291940D-16 + 3 20 3 62 0.23490982432094D+00 -0.90989680197449D-16 + 1 21 3 62 0.49952396734700D+00 0.20236144243445D-16 + 2 21 3 62 0.49151781919568D+00 0.50932626492190D-17 + 3 21 3 62 -0.55330131078288D+00 0.32677258813847D-15 + 1 22 3 62 0.17151064833579D+02 0.23509940001971D-16 + 2 22 3 62 0.16509815584852D+02 -0.39927655190316D-17 + 3 22 3 62 -0.25943254441570D+02 -0.32413309007323D-15 + 1 23 3 62 0.35569019419801D+00 -0.66571818925949D-16 + 2 23 3 62 0.16366981488136D+00 -0.68328510887208D-16 + 3 23 3 62 0.44715972523503D+00 0.44994600525995D-16 + 1 24 3 62 -0.96293916460599D-01 -0.14131836596030D-17 + 2 24 3 62 -0.10511726601206D+00 -0.16459359616785D-16 + 3 24 3 62 -0.23563032171867D+00 -0.80763804065058D-16 + 1 25 3 62 0.10585392237338D+00 0.40037481580775D-18 + 2 25 3 62 -0.45686340930221D-01 0.91012610562319D-17 + 3 25 3 62 -0.21107489075072D+00 0.17965268680189D-15 + 1 26 3 62 0.30637658912080D+01 0.58419084534085D-17 + 2 26 3 62 -0.11316458786832D+01 0.11772914107561D-16 + 3 26 3 62 -0.31543092489251D+01 -0.29115026605032D-16 + 1 27 3 62 -0.30400799938289D+01 0.86292344352615D-17 + 2 27 3 62 -0.14454054486640D+01 -0.16905512684146D-16 + 3 27 3 62 -0.29219202594767D+01 -0.24213661975179D-15 + 1 28 3 62 -0.41272559615122D-01 -0.28858942733094D-19 + 2 28 3 62 0.15534832070322D+00 -0.10184422972746D-16 + 3 28 3 62 0.81916361108249D-01 -0.54209350767677D-16 + 1 29 3 62 -0.13987575062728D+00 -0.42538172174712D-18 + 2 29 3 62 -0.46826809137952D-01 -0.52733014271297D-17 + 3 29 3 62 -0.26127655378421D+00 0.24804383768734D-15 + 1 30 3 62 -0.32191059477274D+01 -0.27221505545981D-17 + 2 30 3 62 0.13634437152049D+01 -0.65144890314653D-18 + 3 30 3 62 -0.30730874511020D+01 0.11809725212397D-15 + 1 31 3 62 0.26899078430667D+01 0.18213703306491D-17 + 2 31 3 62 0.11485207674171D+01 0.17960658194133D-16 + 3 31 3 62 -0.30775016116620D+01 0.61757724769532D-15 + 1 32 3 62 0.28590715431927D+00 0.29119989155327D-16 + 2 32 3 62 0.17065758913518D+01 0.63440770617417D-16 + 3 32 3 62 0.12265406544990D+01 -0.58326458590459D-16 + 1 33 3 62 -0.17379472240560D+00 -0.16694219086484D-16 + 2 33 3 62 -0.12118996449946D-01 -0.90085003585541D-17 + 3 33 3 62 0.16229330172928D+00 0.13929134052566D-16 + 1 34 3 62 -0.35996202666299D+00 0.89161287878463D-16 + 2 34 3 62 0.25867275679239D+00 0.16229209323570D-16 + 3 34 3 62 0.18898539371497D+00 -0.44388690966160D-16 + 1 35 3 62 -0.32150151371740D+00 0.15209527101755D-16 + 2 35 3 62 -0.55610764499212D+00 0.77990737550294D-16 + 3 35 3 62 -0.31887366055224D+00 -0.14251509844507D-15 + 1 36 3 62 0.28753091410638D+00 0.23985757647719D-16 + 2 36 3 62 -0.15949537106224D+00 0.40731733622135D-16 + 3 36 3 62 0.19033349414045D+00 0.11110148138188D-15 + 1 37 3 62 -0.33968534256652D+00 0.78886961661799D-17 + 2 37 3 62 -0.14952538593818D+00 -0.21748541711067D-16 + 3 37 3 62 -0.60975442156202D+00 0.72991233235155D-16 + 1 38 3 62 -0.17380976115390D+02 -0.84999980628014D-17 + 2 38 3 62 -0.18445644366106D+02 0.93787116636657D-16 + 3 38 3 62 -0.27760819090572D+02 0.10672217922521D-15 + 1 39 3 62 -0.23882867257475D+00 0.36907985188069D-16 + 2 39 3 62 -0.33313519872919D+00 0.19461342328411D-16 + 3 39 3 62 0.29163708009968D+00 -0.14583282623713D-15 + 1 40 3 62 -0.14193478143411D+00 -0.23651359405454D-17 + 2 40 3 62 -0.10413342879518D+00 0.13140877170276D-17 + 3 40 3 62 -0.19898996517372D+00 -0.17845148489401D-15 + 1 41 3 62 -0.66047993622599D-01 0.10896606651496D-16 + 2 41 3 62 0.14387887629046D+00 -0.18818261824201D-17 + 3 41 3 62 -0.26287299123699D+00 0.28696687831512D-17 + 1 42 3 62 0.15638035851829D-01 0.31595317960879D-16 + 2 42 3 62 0.51949986066785D+00 -0.15805316491196D-17 + 3 42 3 62 -0.31513249573964D+00 -0.25109192990316D-15 + 1 43 3 62 -0.10890786888940D+00 0.16751377663888D-17 + 2 43 3 62 -0.51957007617258D+00 -0.48372629050075D-17 + 3 43 3 62 0.11250902439584D+00 0.14531222721592D-15 + 1 44 3 62 -0.14950307013227D+01 0.34238607997181D-16 + 2 44 3 62 0.31475754789696D+01 0.28933708514562D-17 + 3 44 3 62 -0.31906510664380D+01 0.79140192508832D-16 + 1 45 3 62 -0.12532163534032D+01 -0.97025009563353D-17 + 2 45 3 62 -0.31874796976435D+01 -0.37914830309307D-18 + 3 45 3 62 -0.31017691541785D+01 0.19386884563715D-15 + 1 46 3 62 0.16287765163973D+01 -0.13454355707511D-16 + 2 46 3 62 -0.32987071675482D+01 -0.52495629306215D-18 + 3 46 3 62 -0.32451830657095D+01 0.22503651257885D-15 + 1 47 3 62 0.22422150556930D+01 -0.17587378163922D-16 + 2 47 3 62 0.37785239078169D+01 0.26991101118746D-17 + 3 47 3 62 -0.19446621466388D+01 -0.94467076098524D-17 + 1 48 3 62 0.53061614381881D+00 -0.41181607821584D-17 + 2 48 3 62 -0.27618358262648D+00 0.37739992169273D-16 + 3 48 3 62 -0.86409040711022D+00 -0.89804476752846D-16 + 1 49 3 62 -0.42196927431088D-02 -0.23036763995059D-16 + 2 49 3 62 0.48541681642133D-01 -0.23021902752023D-16 + 3 49 3 62 0.32802942366760D+00 0.21986208623207D-15 + 1 50 3 62 0.12590578526660D+00 -0.20209970931017D-18 + 2 50 3 62 -0.12676911053746D+01 0.85634891974679D-17 + 3 50 3 62 -0.11150142372855D+01 0.12669662571519D-15 + 1 51 3 62 0.64346728371830D-01 -0.47635397050579D-16 + 2 51 3 62 -0.50016541024873D+00 0.19335841611459D-16 + 3 51 3 62 -0.13525500815598D+00 -0.73905295368395D-17 + 1 52 3 62 -0.26522545003790D+00 -0.37495441085680D-16 + 2 52 3 62 0.16842214387475D+00 -0.17487020041715D-16 + 3 52 3 62 0.12834338893619D+00 0.53553165689812D-16 + 1 53 3 62 0.57259088947737D+00 0.66333636123604D-18 + 2 53 3 62 -0.56817747023680D+00 0.22011707967591D-16 + 3 53 3 62 -0.48945075687645D+00 -0.13843710441607D-15 + 1 54 3 62 0.12618695132517D+02 0.29046437546500D-16 + 2 54 3 62 -0.14949212088362D+02 -0.58183909608082D-17 + 3 54 3 62 -0.25485998875877D+02 -0.63055806632475D-15 + 1 55 3 62 0.61070928979986D+00 -0.43930707151346D-17 + 2 55 3 62 -0.71273818903616D+00 0.29970020081315D-16 + 3 55 3 62 0.10055228481423D+01 0.21240642424498D-16 + 1 56 3 62 0.61638313884036D+00 -0.90221374772386D-17 + 2 56 3 62 0.45036500072236D+00 -0.62529497893708D-18 + 3 56 3 62 0.12036259698951D+01 -0.15997919673972D-17 + 1 57 3 62 0.55066654507337D-02 0.21176453198274D-17 + 2 57 3 62 0.36608589249550D-01 0.12389114506395D-17 + 3 57 3 62 -0.12424139542536D+00 0.99152669673789D-18 + 1 58 3 62 0.45780525994136D+00 0.10644932863842D-16 + 2 58 3 62 -0.28769115120802D+00 0.13822250601698D-18 + 3 58 3 62 -0.12788006633506D+00 0.28596357016944D-17 + 1 59 3 62 0.61681663058524D-03 -0.63259229839150D-17 + 2 59 3 62 -0.10534837771692D+00 -0.71756300563678D-19 + 3 59 3 62 -0.12417076851962D+00 -0.27762184213710D-17 + 1 60 3 62 -0.30991150850772D+00 0.55042118789451D-18 + 2 60 3 62 0.20439597042973D+00 0.42276140061524D-17 + 3 60 3 62 -0.16738313558675D+00 0.95448500567720D-18 + 1 61 3 62 -0.60412417775755D-01 0.61070644253375D-18 + 2 61 3 62 0.25756283878900D-01 -0.18838532460950D-17 + 3 61 3 62 -0.18124573639914D+00 0.47897463009517D-17 + 1 62 3 62 0.68310894103212D+00 0.00000000000000D+00 + 2 62 3 62 -0.11969682585383D+00 0.00000000000000D+00 + 3 62 3 62 0.12110065699664D+03 0.00000000000000D+00 + 1 63 3 62 -0.38138444980193D-01 0.28867776322470D-17 + 2 63 3 62 -0.88364560270814D-01 0.35635709745866D-17 + 3 63 3 62 -0.40246564189429D+00 -0.45150219513892D-17 + 1 64 3 62 -0.11024226193011D+01 0.97062192046109D-16 + 2 64 3 62 -0.65280978870094D+00 0.21137861148766D-16 + 3 64 3 62 0.12473213394783D+01 -0.28852224961841D-16 + 1 65 3 62 -0.25613440692053D+00 -0.12001875983881D-15 + 2 65 3 62 0.26082180274969D+00 0.62174823392047D-16 + 3 65 3 62 -0.50075250552093D+00 -0.65836310656439D-17 + 1 1 1 63 0.24369046204170D+00 0.18282453567904D-15 + 2 1 1 63 0.67656636498690D-02 -0.31707814252356D-16 + 3 1 1 63 -0.45448141448588D-01 0.38786157930761D-17 + 1 2 1 63 -0.49304833638928D+00 -0.10626883937287D-15 + 2 2 1 63 0.50130163375714D+00 -0.12690372538527D-16 + 3 2 1 63 -0.36482159917444D+00 -0.90231149069744D-18 + 1 3 1 63 -0.45333922621259D+00 0.16375584303322D-15 + 2 3 1 63 0.45618244863945D+00 -0.31148738689624D-16 + 3 3 1 63 -0.50891363746347D+00 -0.31407920199373D-17 + 1 4 1 63 0.52464302253745D+00 -0.15729229792046D-15 + 2 4 1 63 0.32135967168936D+00 0.12543911420069D-16 + 3 4 1 63 -0.34486761325058D+00 0.31566655752763D-16 + 1 5 1 63 -0.77015767769167D+00 -0.11191916198167D-15 + 2 5 1 63 0.45010459969444D+00 0.97397527795766D-17 + 3 5 1 63 -0.52080259707713D+00 0.90114929253984D-17 + 1 6 1 63 0.17633524868553D+00 0.16097698480127D-15 + 2 6 1 63 0.19985889980303D+00 0.10531857866399D-16 + 3 6 1 63 0.31821622388506D+00 0.37313848163522D-17 + 1 7 1 63 0.15328911515378D+00 0.21048117564674D-15 + 2 7 1 63 -0.26505761927302D+00 -0.20931079623316D-16 + 3 7 1 63 -0.22564467784923D+00 -0.10087219204109D-17 + 1 8 1 63 -0.25794221122147D+02 -0.49132206215134D-16 + 2 8 1 63 0.13738598552669D+02 0.11757737034464D-16 + 3 8 1 63 -0.13679113574287D+02 -0.12917477965159D-16 + 1 9 1 63 -0.26513434349829D+00 -0.12832985468894D-15 + 2 9 1 63 0.88364808457842D-01 0.24342238412722D-17 + 3 9 1 63 -0.10882249164782D+00 0.87287414036825D-16 + 1 10 1 63 -0.30750329147910D+01 0.22569824248315D-15 + 2 10 1 63 -0.31522845379931D+01 0.21124254220365D-18 + 3 10 1 63 -0.12418553858657D+01 -0.24678933000236D-16 + 1 11 1 63 -0.21575864670251D+00 0.11045017968273D-15 + 2 11 1 63 -0.85136664112451D-01 0.22605306264653D-18 + 3 11 1 63 0.10667108461057D+00 0.75033682158213D-16 + 1 12 1 63 -0.30647115086679D+01 -0.10115524942727D-15 + 2 12 1 63 0.30596651663489D+01 0.11144415234850D-17 + 3 12 1 63 0.13761677586902D+01 0.47451648829306D-16 + 1 13 1 63 -0.23316055675786D+00 -0.28501245621448D-15 + 2 13 1 63 -0.95524459798810D-01 0.12012723848331D-17 + 3 13 1 63 -0.12734062973724D+00 0.53740797048327D-16 + 1 14 1 63 -0.30813310039782D+01 0.22460682991834D-15 + 2 14 1 63 0.31991757639689D+01 -0.12456782940288D-17 + 3 14 1 63 -0.13673988736778D+01 0.40426549291841D-17 + 1 15 1 63 -0.30574761769625D+01 -0.15032191289581D-15 + 2 15 1 63 -0.32811025291623D+01 -0.70277405916148D-18 + 3 15 1 63 0.13103510648214D+01 0.26450439152431D-16 + 1 16 1 63 0.27664613061127D+00 0.67180739504024D-16 + 2 16 1 63 -0.84150502029024D-02 0.34284826677775D-17 + 3 16 1 63 -0.20626483504732D-02 0.16427020739988D-16 + 1 17 1 63 -0.37009599433221D+00 -0.39059687414087D-16 + 2 17 1 63 -0.45192755122546D+00 -0.20023606479691D-16 + 3 17 1 63 0.46559347373896D+00 0.13102959367503D-16 + 1 18 1 63 -0.46736184534094D+00 -0.33827793528799D-15 + 2 18 1 63 -0.42315601101540D+00 0.12819519593378D-16 + 3 18 1 63 0.55398192425771D+00 -0.21329970021224D-16 + 1 19 1 63 0.36923994026917D+00 -0.69374317741160D-16 + 2 19 1 63 -0.20300347704440D+00 -0.70432439914043D-17 + 3 19 1 63 0.29686620036028D+00 0.13595645433099D-16 + 1 20 1 63 -0.75060432465814D+00 0.28546666021329D-16 + 2 20 1 63 -0.49830994239345D+00 -0.22099223422096D-16 + 3 20 1 63 0.48409400010692D+00 0.55638129456639D-16 + 1 21 1 63 0.18950469390943D+00 -0.18385991341149D-15 + 2 21 1 63 -0.28250092722396D+00 0.26297640245543D-16 + 3 21 1 63 -0.32566797249811D+00 -0.60799522405362D-16 + 1 22 1 63 0.57174427519676D-01 -0.30716106605566D-15 + 2 22 1 63 0.41327057253000D-01 -0.30674101529892D-17 + 3 22 1 63 -0.33794676895598D-01 -0.26934850267331D-16 + 1 23 1 63 -0.25336542636213D+02 -0.33119642402186D-16 + 2 23 1 63 -0.13879011340542D+02 -0.25087635352914D-16 + 3 23 1 63 0.13677385535158D+02 0.85062465646554D-17 + 1 24 1 63 -0.22263137836702D+00 -0.17475155558047D-15 + 2 24 1 63 -0.85795956644175D-01 -0.12169900897210D-16 + 3 24 1 63 0.10249546607287D+00 -0.54946445383755D-18 + 1 25 1 63 -0.25031735777226D+00 0.70669039490129D-16 + 2 25 1 63 0.11878037928652D+00 -0.83742410077013D-16 + 3 25 1 63 -0.88994994054173D-01 0.61513140678171D-18 + 1 26 1 63 -0.30469835809634D+01 -0.20372340955356D-15 + 2 26 1 63 -0.13679500992356D+01 0.21842210634776D-16 + 3 26 1 63 -0.31599033686937D+01 -0.15437803613180D-17 + 1 27 1 63 -0.30434692768448D+01 -0.16874193919577D-15 + 2 27 1 63 0.12394348388543D+01 0.87806620227629D-17 + 3 27 1 63 0.31716179054068D+01 -0.14132761645565D-17 + 1 28 1 63 -0.22652366868191D+00 -0.12601522931315D-16 + 2 28 1 63 -0.73751630300905D-01 -0.66662288028512D-19 + 3 28 1 63 -0.93447115162302D-01 0.20980557739714D-17 + 1 29 1 63 -0.23944541779591D+00 -0.64654543399452D-16 + 2 29 1 63 0.12681713296579D+00 0.22041128083946D-16 + 3 29 1 63 0.81668301919142D-01 -0.28949633382158D-17 + 1 30 1 63 -0.31707252962002D+01 -0.11728232508986D-15 + 2 30 1 63 -0.12864439244776D+01 -0.95089085601032D-16 + 3 30 1 63 0.31016132636269D+01 0.30196261705027D-18 + 1 31 1 63 -0.30043583412530D+01 0.59643877767808D-16 + 2 31 1 63 0.12210961823145D+01 -0.10091171189617D-15 + 3 31 1 63 -0.31155961361121D+01 0.27251209889293D-17 + 1 32 1 63 0.19309537375821D+00 -0.32276238834335D-16 + 2 32 1 63 -0.79971555683547D-02 0.24050068794147D-16 + 3 32 1 63 -0.28826890102682D-01 0.26782218672662D-16 + 1 33 1 63 -0.44551561571321D+00 -0.14806113530437D-15 + 2 33 1 63 -0.52775938851813D+00 0.76426216799810D-17 + 3 33 1 63 -0.46486050728527D+00 0.64912358186403D-18 + 1 34 1 63 -0.31512814179122D+00 -0.57206095825844D-16 + 2 34 1 63 -0.45552372354200D+00 -0.17698817274975D-17 + 3 34 1 63 -0.44224998145374D+00 0.30224745060445D-16 + 1 35 1 63 0.39734956014697D+00 -0.16093758001763D-15 + 2 35 1 63 -0.27710318582961D+00 -0.13610088346657D-17 + 3 35 1 63 -0.22867874047311D+00 0.18549130607701D-16 + 1 36 1 63 -0.78592107040989D+00 0.14619159186030D-16 + 2 36 1 63 -0.46029301411803D+00 -0.36924268700799D-16 + 3 36 1 63 -0.47089004501018D+00 0.12942474896042D-16 + 1 37 1 63 0.18966302382550D+00 0.11594464173470D-15 + 2 37 1 63 -0.27707858760759D+00 -0.32213526467217D-18 + 3 37 1 63 0.35138773653670D+00 -0.10199976207994D-16 + 1 38 1 63 0.22931480882147D+00 0.97199398889602D-16 + 2 38 1 63 0.35239402038778D+00 0.21555062456000D-16 + 3 38 1 63 -0.29022933731613D+00 0.33869553291907D-16 + 1 39 1 63 -0.26326713723825D+02 0.13648956583420D-15 + 2 39 1 63 -0.14678196712314D+02 -0.24442429527480D-16 + 3 39 1 63 -0.14477059088582D+02 -0.15675188752457D-16 + 1 40 1 63 -0.20122628419789D-01 -0.17182908864957D-15 + 2 40 1 63 0.95229223935950D-01 -0.34853871359636D-16 + 3 40 1 63 0.10515103233070D+00 -0.10310204440980D-16 + 1 41 1 63 -0.19982934461856D-01 -0.10264640110507D-16 + 2 41 1 63 -0.11656811585862D+00 0.22833166250657D-16 + 3 41 1 63 0.13299472840209D+00 0.21010128421068D-17 + 1 42 1 63 -0.23349397939427D-02 -0.21745641658586D-16 + 2 42 1 63 0.66047993622612D-01 -0.69725562489537D-17 + 3 42 1 63 -0.52633044411427D-01 -0.26618167041299D-17 + 1 43 1 63 -0.20198582307330D-01 0.15001772271728D-15 + 2 43 1 63 -0.14193478143410D+00 -0.22983646202584D-16 + 3 43 1 63 -0.12057846732556D+00 0.32889958632063D-16 + 1 44 1 63 0.30499504829966D+01 -0.92832290118449D-16 + 2 44 1 63 0.13075662148973D+01 -0.19501304169793D-16 + 3 44 1 63 0.12884369863742D+01 0.26258649509645D-16 + 1 45 1 63 0.31556423151157D+01 -0.26476718277903D-17 + 2 45 1 63 -0.12502012486378D+01 -0.65854977130499D-17 + 3 45 1 63 0.12789171090115D+01 -0.14587093996110D-16 + 1 46 1 63 0.30753321824939D+01 0.10638511463741D-15 + 2 46 1 63 0.14950307013227D+01 -0.75000957711053D-17 + 3 46 1 63 -0.15222885050610D+01 0.33878540796801D-16 + 1 47 1 63 0.31882659330409D+01 0.82420252951263D-16 + 2 47 1 63 -0.12532163534033D+01 -0.18600978550430D-16 + 3 47 1 63 -0.12980637146702D+01 0.36397460572849D-16 + 1 48 1 63 0.25748660815604D+00 -0.12928574026807D-15 + 2 48 1 63 0.44235881324113D-02 0.38833444903038D-16 + 3 48 1 63 0.16149580206863D-01 -0.85334804617481D-16 + 1 49 1 63 -0.42574411112178D+00 -0.10834112239832D-15 + 2 49 1 63 0.48878863251807D+00 0.14242343872519D-16 + 3 49 1 63 0.49371812521041D+00 -0.25873195763994D-16 + 1 50 1 63 -0.69224099805295D-01 -0.40253806399694D-16 + 2 50 1 63 0.49185051631149D+00 -0.30492848273025D-16 + 3 50 1 63 0.28641075667356D+00 0.45181140028379D-17 + 1 51 1 63 0.47011509603785D+00 -0.11496778406755D-15 + 2 51 1 63 0.31572160078402D+00 -0.79988206897678D-18 + 3 51 1 63 0.24689778800012D+00 -0.11090695761322D-16 + 1 52 1 63 -0.77717561802623D+00 0.13788436682299D-15 + 2 52 1 63 0.51547249503314D+00 0.23016092665401D-16 + 3 52 1 63 0.59936482346722D+00 -0.37423421742716D-16 + 1 53 1 63 0.19346724068187D+00 -0.50876987686907D-16 + 2 53 1 63 0.29583507294685D+00 -0.91731405853679D-17 + 3 53 1 63 -0.33125308076840D+00 -0.21758739353228D-16 + 1 54 1 63 0.20291562690678D+00 -0.16756778543715D-15 + 2 54 1 63 -0.34208337300893D+00 0.10817804732103D-17 + 3 54 1 63 0.26756134160942D+00 -0.14556039474266D-16 + 1 55 1 63 -0.27140407075915D+02 -0.25272611003370D-16 + 2 55 1 63 0.14657072719820D+02 0.38854601936384D-16 + 3 55 1 63 0.14117436603271D+02 -0.38913349103414D-16 + 1 56 1 63 -0.12166211096925D+00 0.46087697186842D-18 + 2 56 1 63 -0.52381069365458D-02 -0.29072179598429D-19 + 3 56 1 63 -0.55066654507333D-02 -0.27359964646375D-18 + 1 57 1 63 -0.14155133170060D+00 -0.44997876446328D-17 + 2 57 1 63 0.15033632328304D-01 -0.14203056367781D-17 + 3 57 1 63 -0.23946093418141D-01 -0.11737294709941D-17 + 1 58 1 63 -0.19511828925900D+00 -0.59749429781842D-17 + 2 58 1 63 0.78044554531755D-02 0.12028406842470D-17 + 3 58 1 63 0.61681663058373D-03 0.56673740857703D-17 + 1 59 1 63 -0.42441281638000D+00 0.29487980968875D-17 + 2 59 1 63 -0.27334226525660D-02 0.71195992941032D-18 + 3 59 1 63 0.15132030000379D-02 0.45509722048618D-18 + 1 60 1 63 0.16147086050100D+01 -0.81289591241532D-17 + 2 60 1 63 -0.73096735208846D-01 -0.12159354137676D-17 + 3 60 1 63 0.60412417775755D-01 -0.14275817245544D-17 + 1 61 1 63 -0.23882617083894D+00 0.17399143809195D-18 + 2 61 1 63 -0.15564013824402D-02 0.20890708432649D-19 + 3 61 1 63 -0.10301842422670D-01 -0.14016592527455D-18 + 1 62 1 63 -0.19374587556379D+00 0.26873759549791D-17 + 2 62 1 63 0.42250900489271D-02 0.15844767568212D-17 + 3 62 1 63 -0.38138444980193D-01 -0.28867776322470D-17 + 1 63 1 63 0.12000135680810D+03 0.00000000000000D+00 + 2 63 1 63 0.12319061319936D+00 0.00000000000000D+00 + 3 63 1 63 0.65807813668262D+00 0.00000000000000D+00 + 1 64 1 63 -0.18114310583077D+00 -0.18286615377156D-15 + 2 64 1 63 0.31380617561640D+00 -0.10568597681383D-16 + 3 64 1 63 0.14635713762281D+00 0.44317387631428D-16 + 1 65 1 63 -0.97987867871702D-02 0.50816461832811D-16 + 2 65 1 63 -0.78305496966327D-02 -0.38161552979025D-17 + 3 65 1 63 0.60810909845794D-01 0.52816438442512D-16 + 1 1 2 63 0.22552624962986D-01 -0.31707814252356D-16 + 2 1 2 63 0.29116309027544D+00 -0.23864050338735D-15 + 3 1 2 63 0.28309789651060D-02 -0.94729463888647D-17 + 1 2 2 63 0.43710435220490D+00 -0.12690372538527D-16 + 2 2 2 63 -0.37587517196716D+00 -0.71319541096244D-16 + 3 2 2 63 0.46614700581314D+00 -0.26128004402296D-16 + 1 3 2 63 0.51501859925011D+00 -0.31148738689624D-16 + 2 3 2 63 -0.80735361833170D+00 0.22589979605002D-15 + 3 3 2 63 0.48027594224421D+00 0.25573965986079D-16 + 1 4 2 63 0.32051276862330D+00 0.12543911420069D-16 + 2 4 2 63 0.17794304813893D+00 -0.64254358739519D-16 + 3 4 2 63 -0.32860218100948D+00 -0.18993889931090D-16 + 1 5 2 63 0.42673169159092D+00 0.97397527795766D-17 + 2 5 2 63 -0.45982337843816D+00 0.18649786101904D-15 + 3 5 2 63 0.41374287618090D+00 -0.13782103196784D-16 + 1 6 2 63 0.29923597616247D+00 0.10531857866399D-16 + 2 6 2 63 0.42551965214466D+00 0.16818727351302D-15 + 3 6 2 63 0.28016256143627D+00 -0.16204684723114D-16 + 1 7 2 63 -0.31389755507366D+00 -0.20931079623316D-16 + 2 7 2 63 0.17637186941306D+00 -0.56871211468410D-16 + 3 7 2 63 0.30191942014922D+00 -0.26750983032275D-16 + 1 8 2 63 0.13654215728241D+02 0.11757737034464D-16 + 2 8 2 63 -0.25755365692805D+02 0.57414261914163D-16 + 3 8 2 63 0.13932091528740D+02 0.26988436563018D-16 + 1 9 2 63 0.65195109669495D-01 0.24342238412722D-17 + 2 9 2 63 -0.25204749713281D+00 0.14715718229784D-15 + 3 9 2 63 -0.13376023552567D+00 -0.83232233804305D-17 + 1 10 2 63 -0.31880379749958D+01 0.21124254220365D-18 + 2 10 2 63 -0.31010690740300D+01 -0.13278411525362D-15 + 3 10 2 63 -0.12833129941631D+01 -0.49644006672754D-17 + 1 11 2 63 -0.11601899127567D+00 0.22605306264653D-18 + 2 11 2 63 -0.25453576973771D+00 -0.22845159715719D-15 + 3 11 2 63 -0.99859390646112D-01 -0.93380410414414D-16 + 1 12 2 63 0.31071750059116D+01 0.11144415234850D-17 + 2 12 2 63 -0.30652285689548D+01 -0.28304428796004D-15 + 3 12 2 63 -0.12023475815095D+01 -0.98711202342135D-16 + 1 13 2 63 -0.10856887234079D+00 0.12012723848331D-17 + 2 13 2 63 -0.22820182169768D+00 -0.39454001264743D-16 + 3 13 2 63 0.69079466598021D-01 0.21158096642140D-16 + 1 14 2 63 0.32039522267035D+01 -0.12456782940288D-17 + 2 14 2 63 -0.31136975303414D+01 -0.13804288239757D-15 + 3 14 2 63 0.12511127867583D+01 -0.10410952918343D-16 + 1 15 2 63 -0.31534604980328D+01 -0.70277405916148D-18 + 2 15 2 63 -0.31111385464382D+01 0.13302087021778D-15 + 3 15 2 63 0.13775885799320D+01 -0.16953020867973D-16 + 1 16 2 63 -0.26176467133660D-02 0.34284826677775D-17 + 2 16 2 63 0.29520040261450D+00 -0.10780112054554D-15 + 3 16 2 63 0.54559282343330D-01 -0.12744676981289D-16 + 1 17 2 63 -0.47002277043587D+00 -0.20023606479691D-16 + 2 17 2 63 -0.37052391080199D+00 -0.95021440507908D-17 + 3 17 2 63 0.46924060623007D+00 0.12483827245167D-16 + 1 18 2 63 -0.45135257442485D+00 0.12819519593378D-16 + 2 18 2 63 -0.76046130464859D+00 -0.24111077611289D-16 + 3 18 2 63 0.46496587470431D+00 0.37169791529424D-16 + 1 19 2 63 -0.26653682768796D+00 -0.70432439914043D-17 + 2 19 2 63 0.15727104241103D+00 -0.17935024155999D-16 + 3 19 2 63 -0.32225879136919D+00 0.21750750330247D-16 + 1 20 2 63 -0.43144431608079D+00 -0.22099223422096D-16 + 2 20 2 63 -0.36088245076100D+00 -0.22857808655123D-16 + 3 20 2 63 0.41751349235391D+00 -0.21824269190625D-16 + 1 21 2 63 -0.31472751484528D+00 0.26297640245543D-16 + 2 21 2 63 0.49246290484206D+00 0.10508692809452D-15 + 3 21 2 63 0.30305418033182D+00 -0.44900063829266D-17 + 1 22 2 63 0.55427107238890D-02 -0.30674101529892D-17 + 2 22 2 63 0.17804663887289D+00 0.30925031826169D-15 + 3 22 2 63 0.28225134787876D+00 0.38725810012939D-16 + 1 23 2 63 -0.13816776238180D+02 -0.25087635352914D-16 + 2 23 2 63 -0.26062789866101D+02 -0.12562455351038D-15 + 3 23 2 63 0.13994635157626D+02 0.90479667592091D-17 + 1 24 2 63 0.12077597060909D+00 -0.12169900897210D-16 + 2 24 2 63 -0.18398839271206D-01 -0.11890240054988D-15 + 3 24 2 63 0.12548940319258D+00 -0.19047190257809D-16 + 1 25 2 63 -0.98105471988989D-01 -0.83742410077013D-16 + 2 25 2 63 -0.40209081495169D-01 -0.22431811581164D-15 + 3 25 2 63 0.99268420215570D-01 0.44632253671112D-17 + 1 26 2 63 0.12503487019539D+01 0.21842210634776D-16 + 2 26 2 63 0.30996653802460D+01 0.18317287956845D-15 + 3 26 2 63 0.12746428311669D+01 0.50284323493631D-17 + 1 27 2 63 -0.13270267936535D+01 0.87806620227629D-17 + 2 27 2 63 0.30332084301199D+01 0.76279469695867D-16 + 3 27 2 63 0.12419318315307D+01 0.22993476165703D-16 + 1 28 2 63 0.10238686586998D+00 -0.66662288028512D-19 + 2 28 2 63 -0.52495826598255D-01 -0.72285870915726D-16 + 3 28 2 63 -0.12466780722944D+00 0.19310852394243D-16 + 1 29 2 63 -0.80210145194050D-01 0.22041128083946D-16 + 2 29 2 63 -0.17411223374561D-01 -0.48050180750636D-16 + 3 29 2 63 -0.73875759257911D-01 0.28394747356879D-17 + 1 30 2 63 0.12344925828660D+01 -0.95089085601032D-16 + 2 30 2 63 0.30446783493883D+01 -0.13358576463857D-17 + 3 30 2 63 -0.11343705741543D+01 -0.68142538970092D-17 + 1 31 2 63 -0.13652157069082D+01 -0.10091171189617D-15 + 2 31 2 63 0.30610124002741D+01 0.80834750287641D-16 + 3 31 2 63 -0.14276448489624D+01 -0.20707268658192D-16 + 1 32 2 63 -0.29121581310743D-01 0.24050068794147D-16 + 2 32 2 63 0.24478245845664D+00 -0.10400264671774D-15 + 3 32 2 63 0.50694550586706D-01 0.15436572296851D-16 + 1 33 2 63 -0.52437964590650D+00 0.76426216799810D-17 + 2 33 2 63 -0.44967235785732D+00 -0.12807826264240D-15 + 3 33 2 63 -0.43513197182491D+00 0.35417892406104D-17 + 1 34 2 63 -0.48369823738221D+00 -0.17698817274975D-17 + 2 34 2 63 -0.78338733454981D+00 0.14430438044402D-15 + 3 34 2 63 -0.45833681568795D+00 0.24437594029239D-16 + 1 35 2 63 -0.24735014074086D+00 -0.13610088346657D-17 + 2 35 2 63 0.18807102073722D+00 -0.10953320275033D-16 + 3 35 2 63 0.30778667023405D+00 -0.22637973800800D-16 + 1 36 2 63 -0.47064181745670D+00 -0.36924268700799D-16 + 2 36 2 63 -0.34766337276457D+00 0.15180390911808D-15 + 3 36 2 63 -0.42846589831313D+00 -0.71550348309284D-16 + 1 37 2 63 -0.23380228617192D+00 -0.32213526467217D-18 + 2 37 2 63 0.58598536914088D+00 -0.25399998291381D-15 + 3 37 2 63 -0.37492435584405D+00 0.12090692510585D-17 + 1 38 2 63 0.35660563057979D+00 0.21555062456000D-16 + 2 38 2 63 0.19045136784064D+00 -0.10541608718158D-15 + 3 38 2 63 -0.21799906534147D+00 0.15010506831743D-16 + 1 39 2 63 -0.14705333028176D+02 -0.24442429527480D-16 + 2 39 2 63 -0.26673406555051D+02 -0.20546615314907D-15 + 3 39 2 63 -0.14444249625280D+02 -0.58251047209960D-17 + 1 40 2 63 -0.13299472840209D+00 -0.34853871359636D-16 + 2 40 2 63 -0.22774994674944D+00 -0.13939095804511D-15 + 3 40 2 63 0.10631103492100D+00 -0.15893349837579D-17 + 1 41 2 63 0.10515103233070D+00 0.22833166250657D-16 + 2 41 2 63 -0.22848785946546D+00 0.21497106128048D-15 + 3 41 2 63 -0.10643754625190D+00 0.37678334984323D-18 + 1 42 2 63 -0.77343943757396D-01 -0.69725562489537D-17 + 2 42 2 63 -0.26287299123699D+00 0.99136972370542D-16 + 3 42 2 63 -0.99437535727201D-01 -0.14047894482617D-17 + 1 43 2 63 0.16133490743944D-01 -0.22983646202584D-16 + 2 43 2 63 -0.19898996517371D+00 -0.14340613755022D-15 + 3 43 2 63 0.10055451728177D+00 0.16511251164400D-18 + 1 44 2 63 -0.12884369863742D+01 -0.19501304169793D-16 + 2 44 2 63 -0.31342894738195D+01 0.43731975487756D-16 + 3 44 2 63 -0.32259684776565D+01 0.85444444229925D-18 + 1 45 2 63 0.12789171090115D+01 -0.65854977130499D-17 + 2 45 2 63 -0.29961780079478D+01 -0.18887052560026D-15 + 3 45 2 63 0.30830550896706D+01 0.11804606488089D-17 + 1 46 2 63 -0.10982907017704D+01 -0.75000957711053D-17 + 2 46 2 63 -0.31906510664380D+01 -0.10549014788337D-15 + 3 46 2 63 0.31255487756682D+01 0.71543354390924D-17 + 1 47 2 63 0.13686463220819D+01 -0.18600978550430D-16 + 2 47 2 63 -0.31017691541785D+01 -0.79178331386621D-16 + 3 47 2 63 -0.32644467995037D+01 -0.18078158974527D-17 + 1 48 2 63 0.22643509870747D-01 0.38833444903038D-16 + 2 48 2 63 0.26805640929539D+00 -0.15490535857083D-15 + 3 48 2 63 -0.27822975149863D-01 -0.73294894231444D-16 + 1 49 2 63 0.46661777973951D+00 0.14242343872519D-16 + 2 49 2 63 -0.37201695309456D+00 -0.22448825714628D-17 + 3 49 2 63 -0.46213141658107D+00 -0.84379776044376D-17 + 1 50 2 63 0.34082333285974D+00 -0.30492848273025D-16 + 2 50 2 63 -0.81185336706516D+00 -0.24974662356280D-15 + 3 50 2 63 -0.60352768827599D+00 0.18737304494300D-16 + 1 51 2 63 0.32358218209426D+00 -0.79988206897678D-18 + 2 51 2 63 0.24708348230197D+00 -0.15676850294472D-15 + 3 51 2 63 0.30091129439677D+00 0.29933351069654D-16 + 1 52 2 63 0.44805328709032D+00 0.23016092665401D-16 + 2 52 2 63 -0.51190641997774D+00 0.69013649132137D-16 + 3 52 2 63 -0.61055482526110D+00 -0.34689164798247D-17 + 1 53 2 63 0.26040622557041D+00 -0.91731405853679D-17 + 2 53 2 63 0.45098802112199D+00 0.13898267496710D-15 + 3 53 2 63 -0.27558435795446D+00 -0.31283112232994D-16 + 1 54 2 63 -0.32023862973356D+00 0.10817804732103D-17 + 2 54 2 63 0.23777045636008D+00 0.47167806087031D-16 + 3 54 2 63 -0.26183416531371D+00 -0.21794012483239D-16 + 1 55 2 63 0.14840802524424D+02 0.38854601936384D-16 + 2 55 2 63 -0.25763641485448D+02 -0.14168108681453D-15 + 3 55 2 63 -0.13709035226119D+02 0.14226785470265D-16 + 1 56 2 63 0.12354351356588D-01 -0.29072179598429D-19 + 2 56 2 63 -0.11789925547314D+00 0.13385405294751D-17 + 3 56 2 63 -0.36608589249551D-01 0.22692261452334D-17 + 1 57 2 63 0.15033632328304D-01 -0.14203056367781D-17 + 2 57 2 63 -0.17315680606386D+00 -0.32481412201882D-18 + 3 57 2 63 0.70666205511097D-02 0.00000000000000D+00 + 1 58 2 63 0.13360427838615D+00 0.12028406842470D-17 + 2 58 2 63 0.14870128380568D+01 0.83890322445969D-18 + 3 58 2 63 0.10534837771692D+00 0.27723095399023D-17 + 1 59 2 63 0.27334226525659D-02 0.71195992941032D-18 + 2 59 2 63 -0.21965773484532D+00 0.60690512067795D-18 + 3 59 2 63 0.24459884158655D-03 0.50941233095221D-18 + 1 60 2 63 -0.25656366926326D-01 -0.12159354137676D-17 + 2 60 2 63 -0.10723510414041D+00 0.93082320569135D-17 + 3 60 2 63 0.25756283878901D-01 -0.12867304680975D-17 + 1 61 2 63 0.15564013824401D-02 0.20890708432649D-19 + 2 61 2 63 -0.40132057144185D+00 -0.15601026050930D-17 + 3 61 2 63 0.21764363757139D-01 0.32131618276055D-19 + 1 62 2 63 -0.28052321328861D-01 0.15844767568212D-17 + 2 62 2 63 -0.25125029174601D+00 -0.93112697206535D-17 + 3 62 2 63 -0.88364560270814D-01 -0.35635709745866D-17 + 1 63 2 63 0.12319061319936D+00 0.00000000000000D+00 + 2 63 2 63 0.11996040263773D+03 0.00000000000000D+00 + 3 63 2 63 0.81338717684573D+00 0.00000000000000D+00 + 1 64 2 63 0.28203786703251D+00 -0.10568597681383D-16 + 2 64 2 63 0.22249896480048D-01 0.17102962161710D-15 + 3 64 2 63 -0.12066294572834D+00 -0.10769238594828D-15 + 1 65 2 63 -0.18950573049603D-01 -0.38161552979025D-17 + 2 65 2 63 -0.63565732970403D-01 -0.23880173011962D-15 + 3 65 2 63 -0.17597811415124D-01 0.91874980965671D-16 + 1 1 3 63 -0.14456368115460D-01 0.38786157930761D-17 + 2 1 3 63 0.18546293613141D-01 -0.94729463888647D-17 + 3 1 3 63 0.26354632444338D+00 0.75411966944664D-16 + 1 2 3 63 -0.35014435252327D+00 -0.90231149069744D-18 + 2 2 3 63 0.44375316277966D+00 -0.26128004402296D-16 + 3 2 3 63 -0.91736458850017D+00 -0.17100544458267D-15 + 1 3 3 63 -0.52535734949561D+00 -0.31407920199373D-17 + 2 3 3 63 0.47710773077175D+00 0.25573965986079D-16 + 3 3 3 63 -0.44735271654360D+00 -0.66710903525904D-17 + 1 4 3 63 -0.33179221431110D+00 0.31566655752763D-16 + 2 4 3 63 -0.34435770576832D+00 -0.18993889931090D-16 + 3 4 3 63 0.19316941103680D+00 -0.37766572157694D-16 + 1 5 3 63 -0.30544660227199D+00 0.90114929253984D-17 + 2 5 3 63 0.46664333485390D+00 -0.13782103196784D-16 + 3 5 3 63 -0.52469610687682D+00 -0.53242611952003D-16 + 1 6 3 63 0.27566745941855D+00 0.37313848163522D-17 + 2 6 3 63 0.23274844943710D+00 -0.16204684723114D-16 + 3 6 3 63 0.21967419079835D+00 -0.98147245480483D-16 + 1 7 3 63 -0.29601155427098D+00 -0.10087219204109D-17 + 2 7 3 63 0.27340328278778D+00 -0.26750983032275D-16 + 3 7 3 63 0.43222364377867D+00 0.61661352117094D-15 + 1 8 3 63 -0.13749665086973D+02 -0.12917477965159D-16 + 2 8 3 63 0.13838939719674D+02 0.26988436563018D-16 + 3 8 3 63 -0.26190006915435D+02 -0.69730331292833D-16 + 1 9 3 63 0.12442806753827D+00 0.87287414036825D-16 + 2 9 3 63 0.11706295729564D+00 -0.83232233804305D-17 + 3 9 3 63 -0.39034711006492D-01 -0.23601433538597D-16 + 1 10 3 63 0.12876955666759D+01 -0.24678933000236D-16 + 2 10 3 63 0.13404540323597D+01 -0.49644006672754D-17 + 3 10 3 63 0.31461925409856D+01 -0.96818430301688D-16 + 1 11 3 63 -0.93845201709300D-01 0.75033682158213D-16 + 2 11 3 63 0.11196569201530D+00 -0.93380410414414D-16 + 3 11 3 63 -0.31187185983444D-01 -0.31132353327549D-16 + 1 12 3 63 -0.15562468678296D+01 0.47451648829306D-16 + 2 12 3 63 0.13228488051543D+01 -0.98711202342135D-16 + 3 12 3 63 0.31319582770427D+01 0.27091487377885D-16 + 1 13 3 63 0.10813448889692D+00 0.53740797048327D-16 + 2 13 3 63 -0.88500513317367D-01 0.21158096642140D-16 + 3 13 3 63 -0.49105577665193D-02 0.21524770401140D-16 + 1 14 3 63 0.13194687112185D+01 0.40426549291841D-17 + 2 14 3 63 -0.12654763266823D+01 -0.10410952918343D-16 + 3 14 3 63 0.31633305596009D+01 0.35719861896073D-16 + 1 15 3 63 -0.13086307270575D+01 0.26450439152431D-16 + 2 15 3 63 -0.14207456754165D+01 -0.16953020867973D-16 + 3 15 3 63 0.31612187369587D+01 -0.35280401857023D-16 + 1 16 3 63 0.11650839707700D-02 0.16427020739988D-16 + 2 16 3 63 -0.18427734937985D-01 -0.12744676981289D-16 + 3 16 3 63 0.29691473446176D+00 -0.12683070653186D-15 + 1 17 3 63 0.48491587255602D+00 0.13102959367503D-16 + 2 17 3 63 0.46488166323621D+00 0.12483827245167D-16 + 3 17 3 63 -0.78547982018116D+00 -0.20734321399496D-16 + 1 18 3 63 0.48216063573330D+00 -0.21329970021224D-16 + 2 18 3 63 0.55199541123175D+00 0.37169791529424D-16 + 3 18 3 63 -0.45552851098671D+00 -0.44210523025484D-17 + 1 19 3 63 0.33003961467011D+00 0.13595645433099D-16 + 2 19 3 63 -0.27594970481658D+00 0.21750750330247D-16 + 3 19 3 63 0.22912581400825D+00 -0.36042893690696D-15 + 1 20 3 63 0.41642775373069D+00 0.55638129456639D-16 + 2 20 3 63 0.42944402667853D+00 -0.21824269190625D-16 + 3 20 3 63 -0.32229451800094D+00 0.39946648855601D-15 + 1 21 3 63 -0.34179935926502D+00 -0.60799522405362D-16 + 2 21 3 63 0.30437217106272D+00 -0.44900063829266D-17 + 3 21 3 63 0.16835463342987D+00 0.30389319005652D-15 + 1 22 3 63 -0.37616317979305D-02 -0.26934850267331D-16 + 2 22 3 63 0.20196117384863D-01 0.38725810012939D-16 + 3 22 3 63 -0.37611087067125D+00 0.17355364599619D-15 + 1 23 3 63 0.13733332541572D+02 0.85062465646554D-17 + 2 23 3 63 0.14107929617707D+02 0.90479667592091D-17 + 3 23 3 63 -0.25999938377807D+02 0.40786727778642D-15 + 1 24 3 63 0.90063254104479D-01 -0.54946445383755D-18 + 2 24 3 63 -0.92029099056185D-01 -0.19047190257809D-16 + 3 24 3 63 -0.23295520329197D+00 0.29754085749908D-15 + 1 25 3 63 -0.85695375456052D-01 0.61513140678171D-18 + 2 25 3 63 -0.98733218058405D-01 0.44632253671112D-17 + 3 25 3 63 -0.24768484707755D+00 0.29950912157007D-15 + 1 26 3 63 -0.31491568175680D+01 -0.15437803613180D-17 + 2 26 3 63 -0.13599716217812D+01 0.50284323493631D-17 + 3 26 3 63 -0.30437881571425D+01 0.94169959909828D-16 + 1 27 3 63 0.33078081980729D+01 -0.14132761645565D-17 + 2 27 3 63 -0.12600447229703D+01 0.22993476165703D-16 + 3 27 3 63 -0.31777519768981D+01 0.20347722205777D-15 + 1 28 3 63 -0.11753736046785D+00 0.20980557739714D-17 + 2 28 3 63 0.85666039169639D-01 0.19310852394243D-16 + 3 28 3 63 -0.23208147027117D+00 0.18542577023657D-15 + 1 29 3 63 0.11482546015925D+00 -0.28949633382158D-17 + 2 29 3 63 0.11344991498160D+00 0.28394747356879D-17 + 3 29 3 63 -0.21310322738957D+00 0.11246148001373D-15 + 1 30 3 63 0.31091888531854D+01 0.30196261705027D-18 + 2 30 3 63 0.13756832393009D+01 -0.68142538970092D-17 + 3 30 3 63 -0.30139916482755D+01 -0.11943369547736D-16 + 1 31 3 63 -0.31738889652452D+01 0.27251209889293D-17 + 2 31 3 63 0.12571940962572D+01 -0.20707268658192D-16 + 3 31 3 63 -0.30423786554362D+01 0.81934434497246D-16 + 1 32 3 63 -0.29764610515246D-01 0.26782218672662D-16 + 2 32 3 63 -0.94808506004454D-01 0.15436572296851D-16 + 3 32 3 63 0.79503731643845D-01 -0.56912425792124D-16 + 1 33 3 63 -0.48848716900826D+00 0.64912358186403D-18 + 2 33 3 63 -0.49790547501619D+00 0.35417892406104D-17 + 3 33 3 63 -0.84989106608483D+00 -0.34161138185254D-17 + 1 34 3 63 -0.41510684461685D+00 0.30224745060445D-16 + 2 34 3 63 -0.46766185471484D+00 0.24437594029239D-16 + 3 34 3 63 -0.37168114771699D+00 -0.99283731144985D-16 + 1 35 3 63 -0.23802945606288D+00 0.18549130607701D-16 + 2 35 3 63 0.28569280361857D+00 -0.22637973800800D-16 + 3 35 3 63 0.19144027554771D+00 0.14288688166482D-15 + 1 36 3 63 -0.44525731202280D+00 0.12942474896042D-16 + 2 36 3 63 -0.43899228290186D+00 -0.71550348309284D-16 + 3 36 3 63 -0.32341740368545D+00 -0.10296302914338D-16 + 1 37 3 63 0.33632806315325D+00 -0.10199976207994D-16 + 2 37 3 63 -0.34701699078133D+00 0.12090692510585D-17 + 3 37 3 63 0.20982897868919D+00 -0.25990376312729D-16 + 1 38 3 63 -0.32406161278394D+00 0.33869553291907D-16 + 2 38 3 63 -0.29567997302834D+00 0.15010506831743D-16 + 3 38 3 63 0.53072023251008D+00 0.68924155157812D-17 + 1 39 3 63 -0.14353000606928D+02 -0.15675188752457D-16 + 2 39 3 63 -0.14299918188595D+02 -0.58251047209960D-17 + 3 39 3 63 -0.26293428596271D+02 0.94859265906046D-16 + 1 40 3 63 -0.11656811585862D+00 -0.10310204440980D-16 + 2 40 3 63 0.10270295409905D+00 -0.15893349837579D-17 + 3 40 3 63 -0.22848785946546D+00 0.53741710362303D-16 + 1 41 3 63 -0.95229223935948D-01 0.21010128421068D-17 + 2 41 3 63 -0.10272258709109D+00 0.37678334984323D-18 + 3 41 3 63 -0.22774994674944D+00 -0.15323980583610D-15 + 1 42 3 63 0.11767243478524D+00 -0.26618167041299D-17 + 2 42 3 63 -0.14387887629046D+00 -0.14047894482617D-17 + 3 42 3 63 -0.22821706536484D+00 0.31526920790663D-15 + 1 43 3 63 0.89382574095890D-01 0.32889958632063D-16 + 2 43 3 63 0.10413342879518D+00 0.16511251164400D-18 + 3 43 3 63 -0.21575497152441D+00 -0.23781274838554D-15 + 1 44 3 63 -0.13075662148973D+01 0.26258649509645D-16 + 2 44 3 63 -0.33093056973859D+01 0.85444444229925D-18 + 3 44 3 63 -0.31342894738195D+01 -0.49992254339598D-16 + 1 45 3 63 -0.12502012486378D+01 -0.14587093996110D-16 + 2 45 3 63 0.31184796091369D+01 0.11804606488089D-17 + 3 45 3 63 -0.29961780079478D+01 -0.57053670321642D-16 + 1 46 3 63 0.11033339330700D+01 0.33878540796801D-16 + 2 46 3 63 0.31475754789696D+01 0.71543354390924D-17 + 3 46 3 63 -0.29367943623405D+01 -0.77608116159034D-16 + 1 47 3 63 0.14011878085562D+01 0.36397460572849D-16 + 2 47 3 63 -0.31874796976435D+01 -0.18078158974527D-17 + 3 47 3 63 -0.32375816820263D+01 0.30787136333865D-16 + 1 48 3 63 0.13334431757601D-01 -0.85334804617481D-16 + 2 48 3 63 -0.30515804448368D-01 -0.73294894231444D-16 + 3 48 3 63 0.26462086478739D+00 0.21010701131634D-16 + 1 49 3 63 0.45567704351573D+00 -0.25873195763994D-16 + 2 49 3 63 -0.47111525755596D+00 -0.84379776044376D-17 + 3 49 3 63 -0.81832269216946D+00 0.13959061651690D-15 + 1 50 3 63 0.25116868051171D+00 0.45181140028379D-17 + 2 50 3 63 -0.39151104755289D+00 0.18737304494300D-16 + 3 50 3 63 -0.27726425993111D+00 -0.11188819166796D-15 + 1 51 3 63 0.24424858336584D+00 -0.11090695761322D-16 + 2 51 3 63 0.30265282018592D+00 0.29933351069654D-16 + 3 51 3 63 0.18184668037693D+00 -0.20629628883505D-15 + 1 52 3 63 0.48194379625109D+00 -0.37423421742716D-16 + 2 52 3 63 -0.59930329214815D+00 -0.34689164798247D-17 + 3 52 3 63 -0.50047434236650D+00 -0.48068052208017D-16 + 1 53 3 63 -0.32903125202355D+00 -0.21758739353228D-16 + 2 53 3 63 -0.29820000814503D+00 -0.31283112232994D-16 + 3 53 3 63 0.17902564882348D+00 -0.15847901982353D-15 + 1 54 3 63 0.26767530867154D+00 -0.14556039474266D-16 + 2 54 3 63 -0.29554103937407D+00 -0.21794012483239D-16 + 3 54 3 63 0.42850323800121D+00 -0.47345816853564D-16 + 1 55 3 63 0.14248162262728D+02 -0.38913349103414D-16 + 2 55 3 63 -0.13670665622604D+02 0.14226785470265D-16 + 3 55 3 63 -0.25536535365739D+02 -0.19174235966763D-15 + 1 56 3 63 0.63431380755936D-02 -0.27359964646375D-18 + 2 56 3 63 -0.69431513153946D-02 0.22692261452334D-17 + 3 56 3 63 -0.12424139542536D+00 -0.39564280146549D-17 + 1 57 3 63 0.23946093418141D-01 -0.11737294709941D-17 + 2 57 3 63 -0.70666205511097D-02 0.00000000000000D+00 + 3 57 3 63 0.15986550337781D+01 0.39769697009601D-18 + 1 58 3 63 0.36698199332301D-01 0.56673740857703D-17 + 2 58 3 63 -0.73131832143502D-01 0.27723095399023D-17 + 3 58 3 63 -0.12417076851962D+00 -0.21862922833042D-17 + 1 59 3 63 0.15132030000379D-02 0.45509722048618D-18 + 2 59 3 63 -0.24459884158643D-03 0.50941233095221D-18 + 3 59 3 63 -0.22649195687380D+00 -0.21173616643682D-17 + 1 60 3 63 -0.11525350264607D-01 -0.14275817245544D-17 + 2 60 3 63 0.51528606358535D-01 -0.12867304680975D-17 + 3 60 3 63 -0.18124573639915D+00 0.41761550806986D-17 + 1 61 3 63 0.10301842422670D-01 -0.14016592527455D-18 + 2 61 3 63 0.21764363757139D-01 0.32131618276055D-19 + 3 61 3 63 -0.23726627446706D+00 0.29120398619234D-17 + 1 62 3 63 0.24726760963584D-01 -0.28867776322470D-17 + 2 62 3 63 0.34209735405514D-01 -0.35635709745866D-17 + 3 62 3 63 -0.40246564189429D+00 0.45150219513892D-17 + 1 63 3 63 0.65807813668262D+00 0.00000000000000D+00 + 2 63 3 63 0.81338717684573D+00 0.00000000000000D+00 + 3 63 3 63 0.11998085918812D+03 0.00000000000000D+00 + 1 64 3 63 -0.14625636154838D+00 0.44317387631428D-16 + 2 64 3 63 -0.94141289949281D-01 -0.10769238594828D-15 + 3 64 3 63 0.36471902416285D+00 -0.22035157927044D-16 + 1 65 3 63 -0.38414445183786D-02 0.52816438442512D-16 + 2 65 3 63 0.91997431689852D-02 0.91874980965671D-16 + 3 65 3 63 0.76694457329234D-01 -0.17043387662374D-16 + 1 1 1 64 0.47472562476177D-01 -0.21313499984770D-16 + 2 1 1 64 -0.68961132555413D-02 -0.15965106116683D-16 + 3 1 1 64 -0.68961132555668D-02 0.68062167553156D-17 + 1 2 1 64 -0.14478320412961D+00 0.17937686441200D-15 + 2 2 1 64 -0.22032006338683D+00 -0.41817367788787D-17 + 3 2 1 64 0.93420599972228D-01 -0.20178265458303D-17 + 1 3 1 64 -0.14478320412950D+00 -0.58878230460547D-16 + 2 3 1 64 0.93420599972255D-01 0.90292480757408D-17 + 3 3 1 64 -0.22032006338685D+00 0.14284632512459D-16 + 1 4 1 64 0.88500697922278D-01 0.29614178470748D-16 + 2 4 1 64 0.19333452705318D-01 -0.18194771105977D-16 + 3 4 1 64 0.19333452705321D-01 -0.10630509732341D-16 + 1 5 1 64 -0.88973794530559D+01 0.47783450320256D-16 + 2 5 1 64 0.12933343460640D+02 0.10915565415488D-16 + 3 5 1 64 0.12933343460640D+02 -0.15938141222299D-16 + 1 6 1 64 0.33464851426705D+00 0.38854271843257D-16 + 2 6 1 64 -0.26880943972697D+00 -0.66908606682021D-17 + 3 6 1 64 0.36513389322848D+00 -0.21385059742021D-16 + 1 7 1 64 0.33464851426695D+00 0.13332747865509D-16 + 2 7 1 64 0.36513389322850D+00 0.20665115228032D-16 + 3 7 1 64 -0.26880943972696D+00 0.39494386165195D-17 + 1 8 1 64 -0.75943447184915D+00 0.33613954352388D-16 + 2 8 1 64 0.88642642302341D-01 -0.14672308936002D-17 + 3 8 1 64 0.88642642302329D-01 0.15887621554839D-16 + 1 9 1 64 -0.36356106870793D+00 0.69442641050670D-16 + 2 9 1 64 0.44350387553471D-15 -0.30583606325883D-16 + 3 9 1 64 -0.18694212995449D-16 0.19020576312322D-16 + 1 10 1 64 -0.22902125392395D-01 -0.90968669125914D-16 + 2 10 1 64 0.11103451140192D-15 -0.47320703661560D-16 + 3 10 1 64 0.15124178928407D-15 0.64108709209468D-16 + 1 11 1 64 0.34812513604297D+00 0.11669297693414D-15 + 2 11 1 64 0.10916397703737D-15 -0.22623242764393D-16 + 3 11 1 64 0.10977868710131D-15 0.80580072681891D-17 + 1 12 1 64 -0.36356106870786D+00 -0.12934821198619D-16 + 2 12 1 64 -0.36412202855935D-16 0.14208755452978D-16 + 3 12 1 64 -0.15085689281313D-15 -0.31066949086971D-16 + 1 13 1 64 -0.11809158130798D+00 -0.62488097160124D-16 + 2 13 1 64 -0.66110482824600D-16 0.19734390971355D-16 + 3 13 1 64 0.10672668704722D-15 -0.46532134018362D-16 + 1 14 1 64 0.56338999034074D+00 -0.13195210145720D-15 + 2 14 1 64 -0.30344745184922D-15 -0.48955679388089D-17 + 3 14 1 64 0.48409859136495D-16 0.11868009491507D-16 + 1 15 1 64 -0.11809158130797D+00 0.12696962084800D-15 + 2 15 1 64 0.52280215756247D-16 -0.44143160265271D-16 + 3 15 1 64 0.90214248076138D-16 -0.18503771832942D-16 + 1 16 1 64 -0.14478320412947D+00 0.25623035548615D-16 + 2 16 1 64 -0.93420599972251D-01 0.32042226357167D-17 + 3 16 1 64 0.22032006338685D+00 -0.36588167955922D-16 + 1 17 1 64 0.88500697922162D-01 0.23567170806219D-15 + 2 17 1 64 -0.19333452705320D-01 -0.38542502676561D-16 + 3 17 1 64 -0.19333452705324D-01 -0.14778290430056D-16 + 1 18 1 64 0.47472562475950D-01 0.38268345484719D-15 + 2 18 1 64 0.68961132555541D-02 -0.66158226836310D-18 + 3 18 1 64 0.68961132555366D-02 -0.14324989691420D-16 + 1 19 1 64 -0.14478320412953D+00 -0.83571140526770D-16 + 2 19 1 64 0.22032006338684D+00 0.18073639190611D-16 + 3 19 1 64 -0.93420599972246D-01 -0.17525584388844D-16 + 1 20 1 64 0.33464851426696D+00 -0.12245239902546D-16 + 2 20 1 64 -0.36513389322850D+00 -0.22365781583262D-16 + 3 20 1 64 0.26880943972696D+00 0.23417670895224D-16 + 1 21 1 64 -0.75943447184913D+00 -0.53472755328363D-16 + 2 21 1 64 -0.88642642302326D-01 -0.29459249696444D-16 + 3 21 1 64 -0.88642642302335D-01 -0.20841840528158D-16 + 1 22 1 64 -0.88973794530552D+01 0.60911598447777D-16 + 2 22 1 64 -0.12933343460640D+02 -0.50237764883458D-18 + 3 22 1 64 -0.12933343460640D+02 -0.76882720144207D-17 + 1 23 1 64 0.33464851426689D+00 0.34553445268653D-16 + 2 23 1 64 0.26880943972697D+00 0.11911851555290D-16 + 3 23 1 64 -0.36513389322849D+00 0.26855582090792D-16 + 1 24 1 64 0.10347994185208D+00 0.34796303042629D-15 + 2 24 1 64 0.63373877723477D-02 0.22255208424466D-16 + 3 24 1 64 0.63373877723885D-02 -0.38121277642338D-17 + 1 25 1 64 -0.29582678910612D+00 0.17903145549297D-17 + 2 25 1 64 -0.40494821230960D-01 -0.44520229022371D-16 + 3 25 1 64 0.40494821230957D-01 -0.13677431997923D-16 + 1 26 1 64 -0.29582678910605D+00 0.17290622207732D-15 + 2 26 1 64 0.40494821230959D-01 -0.93533144425713D-17 + 3 26 1 64 -0.40494821230925D-01 0.36278077265725D-16 + 1 27 1 64 0.10347994185202D+00 -0.20510342161849D-16 + 2 27 1 64 -0.63373877723876D-02 -0.17191754233009D-16 + 3 27 1 64 -0.63373877723911D-02 -0.30126838828605D-17 + 1 28 1 64 0.25051001250167D+01 0.11934414168462D-15 + 2 28 1 64 -0.15113141234999D+01 0.61165524850453D-17 + 3 28 1 64 -0.15113141234997D+01 0.68888360215850D-18 + 1 29 1 64 0.21907249102924D+00 -0.14497431346987D-15 + 2 29 1 64 0.14072182679562D+00 -0.79030453135636D-17 + 3 29 1 64 -0.14072182679562D+00 0.77629213529041D-17 + 1 30 1 64 0.21907249102937D+00 0.17083452659713D-15 + 2 30 1 64 -0.14072182679539D+00 -0.11905790023906D-16 + 3 30 1 64 0.14072182679556D+00 0.32601987993750D-16 + 1 31 1 64 0.25051001250170D+01 0.18784509886545D-15 + 2 31 1 64 0.15113141234999D+01 0.10565992615400D-16 + 3 31 1 64 0.15113141234996D+01 -0.23823799320850D-16 + 1 32 1 64 -0.87492346166494D+01 -0.25091276072565D-15 + 2 32 1 64 -0.41769986453752D+01 0.13181370816776D-16 + 3 32 1 64 0.41769986453753D+01 0.54823244658134D-16 + 1 33 1 64 0.14545606074375D+00 0.10282700672525D-16 + 2 33 1 64 -0.39928517272471D-01 0.18460030692750D-16 + 3 33 1 64 0.14080624751410D+00 -0.60522846178587D-16 + 1 34 1 64 0.14545606074374D+00 -0.20958355864647D-15 + 2 34 1 64 -0.14080624751412D+00 0.40188892450767D-16 + 3 34 1 64 0.39928517272519D-01 -0.16553207503280D-16 + 1 35 1 64 -0.15924778845918D+00 -0.42947442863520D-16 + 2 35 1 64 -0.20997989540762D+00 -0.23360118452371D-16 + 3 35 1 64 0.20997989540765D+00 0.32509484549113D-16 + 1 36 1 64 -0.11978192478382D+01 -0.87046049979925D-17 + 2 36 1 64 0.73602774428353D+00 -0.66735335326272D-17 + 3 36 1 64 -0.73602774428359D+00 0.10869830394755D-15 + 1 37 1 64 -0.50053457424163D+00 -0.26215034791693D-15 + 2 37 1 64 -0.62533824397710D+00 -0.37736140671904D-16 + 3 37 1 64 0.93202794916057D+00 0.86728313711696D-16 + 1 38 1 64 -0.50053457424163D+00 -0.36583148625064D-15 + 2 38 1 64 -0.93202794916053D+00 -0.43704885634664D-16 + 3 38 1 64 0.62533824397711D+00 0.17727882264990D-16 + 1 39 1 64 0.12032606938286D+00 -0.21158456024379D-15 + 2 39 1 64 -0.64979964818768D-01 0.13523205861358D-16 + 3 39 1 64 0.64979964818765D-01 -0.16213183429777D-16 + 1 40 1 64 -0.97987867871924D-02 0.21925676204203D-15 + 2 40 1 64 0.38414445183820D-02 0.21654862700754D-16 + 3 40 1 64 -0.18950573049622D-01 -0.13852932921017D-16 + 1 41 1 64 -0.97987867871755D-02 0.20798307500719D-15 + 2 41 1 64 -0.38414445183867D-02 -0.20867803061298D-17 + 3 41 1 64 0.18950573049616D-01 0.18510360229067D-16 + 1 42 1 64 0.64172853416073D+00 0.11528914953898D-16 + 2 42 1 64 0.25613440692053D+00 0.27872423152246D-16 + 3 42 1 64 0.15548126048236D+00 0.11638852296612D-16 + 1 43 1 64 0.64172853416080D+00 0.16885534683379D-15 + 2 43 1 64 -0.25613440692052D+00 0.76232436690724D-17 + 3 43 1 64 -0.15548126048239D+00 0.76649065799500D-17 + 1 44 1 64 -0.18114310583079D+00 -0.60870711184232D-16 + 2 44 1 64 0.14625636154839D+00 0.10966060242935D-15 + 3 44 1 64 -0.28203786703247D+00 0.13326886079798D-16 + 1 45 1 64 -0.18114310583081D+00 0.80950337020895D-16 + 2 45 1 64 -0.14625636154839D+00 0.90594151525857D-16 + 3 45 1 64 0.28203786703249D+00 0.12563663904812D-16 + 1 46 1 64 -0.32913855200115D+01 -0.10939179207865D-16 + 2 46 1 64 0.11024226193011D+01 0.92696186699454D-16 + 3 46 1 64 0.59872147645348D+01 -0.46108971496745D-17 + 1 47 1 64 -0.32913855200115D+01 0.31348722148465D-15 + 2 47 1 64 -0.11024226193012D+01 0.37747552940677D-16 + 3 47 1 64 -0.59872147645343D+01 -0.74977398795144D-17 + 1 48 1 64 0.14545606074375D+00 -0.22433836146691D-15 + 2 48 1 64 0.14080624751412D+00 0.31118374756348D-16 + 3 48 1 64 -0.39928517272553D-01 -0.45591972905514D-16 + 1 49 1 64 -0.15924778845922D+00 -0.25595204942101D-15 + 2 49 1 64 0.20997989540767D+00 -0.21469918602759D-16 + 3 49 1 64 -0.20997989540765D+00 0.17411791730223D-17 + 1 50 1 64 -0.87492346166496D+01 -0.24239473280516D-15 + 2 50 1 64 0.41769986453755D+01 0.84380041989794D-16 + 3 50 1 64 -0.41769986453754D+01 -0.16103272952989D-16 + 1 51 1 64 0.14545606074375D+00 -0.12269629437997D-15 + 2 51 1 64 0.39928517272483D-01 -0.58730263372457D-17 + 3 51 1 64 -0.14080624751403D+00 0.13538963246064D-16 + 1 52 1 64 -0.50053457424158D+00 -0.20896517537775D-15 + 2 52 1 64 0.93202794916050D+00 0.21788009988381D-16 + 3 52 1 64 -0.62533824397712D+00 0.23013017330926D-16 + 1 53 1 64 0.12032606938285D+00 0.13809772507302D-15 + 2 53 1 64 0.64979964818779D-01 0.17109923981816D-16 + 3 53 1 64 -0.64979964818738D-01 -0.18521826811261D-16 + 1 54 1 64 -0.11978192478389D+01 -0.10046791858161D-15 + 2 54 1 64 -0.73602774428341D+00 -0.42571835508407D-16 + 3 54 1 64 0.73602774428373D+00 -0.19443147481856D-16 + 1 55 1 64 -0.50053457424156D+00 0.10557307502267D-15 + 2 55 1 64 0.62533824397713D+00 -0.16847833309636D-16 + 3 55 1 64 -0.93202794916059D+00 -0.48717980518883D-16 + 1 56 1 64 0.64172853416084D+00 0.11496959430213D-15 + 2 56 1 64 0.15548126048250D+00 0.16673130812051D-17 + 3 56 1 64 0.25613440692052D+00 0.46023310344046D-16 + 1 57 1 64 -0.97987867871905D-02 0.13355527016696D-15 + 2 57 1 64 -0.18950573049643D-01 -0.13170397387728D-16 + 3 57 1 64 0.38414445183777D-02 -0.21781888195370D-16 + 1 58 1 64 0.64172853416079D+00 -0.12349147949703D-16 + 2 58 1 64 -0.15548126048237D+00 0.91243620762703D-17 + 3 58 1 64 -0.25613440692053D+00 0.46776970951202D-16 + 1 59 1 64 -0.97987867871702D-02 0.15160333767651D-15 + 2 59 1 64 0.18950573049603D-01 -0.81038027950789D-17 + 3 59 1 64 -0.38414445183790D-02 -0.81357544297640D-16 + 1 60 1 64 -0.32913855200115D+01 -0.13648595053477D-16 + 2 60 1 64 0.59872147645345D+01 -0.18745143112403D-16 + 3 60 1 64 0.11024226193011D+01 0.73173276062490D-17 + 1 61 1 64 -0.18114310583075D+00 0.14145196097787D-15 + 2 61 1 64 -0.28203786703247D+00 0.18489041500235D-16 + 3 61 1 64 0.14625636154839D+00 0.14606860384029D-16 + 1 62 1 64 -0.32913855200116D+01 -0.14113019820131D-15 + 2 62 1 64 -0.59872147645347D+01 -0.47386265764065D-18 + 3 62 1 64 -0.11024226193011D+01 -0.97062192046109D-16 + 1 63 1 64 -0.18114310583077D+00 0.18286615377156D-15 + 2 63 1 64 0.28203786703251D+00 0.10568597681383D-16 + 3 63 1 64 -0.14625636154838D+00 -0.44317387631428D-16 + 1 64 1 64 0.14111535000701D+03 0.00000000000000D+00 + 2 64 1 64 -0.56512079501360D-02 0.00000000000000D+00 + 3 64 1 64 -0.19238863724937D-13 0.00000000000000D+00 + 1 65 1 64 -0.95690745220500D+02 0.14464233284049D-15 + 2 65 1 64 -0.26945112848615D-02 0.11794684067745D-16 + 3 65 1 64 -0.18310031209964D-15 -0.31502550907591D-16 + 2 67 1 64 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 64 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 64 -0.91031511570016D-01 -0.15965106116683D-16 + 2 1 2 64 -0.18636859159152D+00 -0.17595869781214D-16 + 3 1 2 64 -0.21099244266206D-01 -0.20444566865850D-16 + 1 2 2 64 -0.66647925942099D-01 -0.41817367788787D-17 + 2 2 2 64 0.12730033657658D+00 -0.17420479714948D-15 + 3 2 2 64 0.62265338893122D-01 -0.25548789103675D-16 + 1 3 2 64 -0.73174246076914D-01 0.90292480757408D-17 + 2 3 2 64 -0.31062896647660D+00 0.95569850612915D-17 + 3 3 2 64 0.17334651597392D+00 -0.18568340738840D-16 + 1 4 2 64 0.18923029479716D-01 -0.18194771105977D-16 + 2 4 2 64 0.33286274453575D-01 0.22972580475507D-15 + 3 4 2 64 -0.14162581672600D-01 -0.63210284555508D-16 + 1 5 2 64 0.12819194379086D+02 0.10915565415488D-16 + 2 5 2 64 -0.34087583801540D+02 -0.28957099157507D-15 + 3 5 2 64 -0.35742517670047D+02 0.57532758685996D-19 + 1 6 2 64 0.30892971086146D+00 -0.66908606682021D-17 + 2 6 2 64 -0.52499789938128D+00 0.79284288131679D-16 + 3 6 2 64 0.56471974226054D+00 -0.12496452428393D-16 + 1 7 2 64 -0.16656805207941D-01 0.20665115228032D-16 + 2 7 2 64 -0.39045088703820D+00 0.10844138933054D-15 + 3 7 2 64 -0.18288178967436D+00 -0.13800832229370D-16 + 1 8 2 64 0.58922497966896D+00 -0.14672308936002D-17 + 2 8 2 64 -0.54441867132873D+00 0.33490754017528D-15 + 3 8 2 64 -0.45238333347917D+00 0.40121666741700D-16 + 1 9 2 64 0.42999713967374D-02 -0.30583606325883D-16 + 2 9 2 64 -0.27948941140906D-01 0.12935545702592D-16 + 3 9 2 64 -0.39667899493333D+00 0.15233575881923D-17 + 1 10 2 64 0.10290570711603D-03 -0.47320703661560D-16 + 2 10 2 64 -0.32912655861567D-01 0.58137423328688D-17 + 3 10 2 64 -0.68652891362036D-01 0.13748194041893D-17 + 1 11 2 64 -0.58550197136597D-03 -0.22623242764393D-16 + 2 11 2 64 -0.12345302357591D+00 0.13667837239119D-16 + 3 11 2 64 0.99644983610389D-01 -0.18741620680904D-18 + 1 12 2 64 -0.38441720948090D-03 0.14208755452978D-16 + 2 12 2 64 0.15432402611209D+00 -0.34280288322526D-17 + 3 12 2 64 0.14300404567818D+00 0.18599539032476D-17 + 1 13 2 64 -0.67712315227409D-03 0.19734390971355D-16 + 2 13 2 64 0.70989436342781D-01 0.80740781105899D-17 + 3 13 2 64 0.19438991150893D-02 0.16783486082550D-17 + 1 14 2 64 -0.20900121119707D-02 -0.48955679388089D-17 + 2 14 2 64 -0.21766339074115D+00 0.89014302578070D-17 + 3 14 2 64 -0.34163986353791D+00 0.21535609598982D-17 + 1 15 2 64 0.27989429851196D-03 -0.44143160265271D-16 + 2 15 2 64 -0.15330702032596D+00 0.27767515073035D-17 + 3 15 2 64 -0.17530610677971D+00 -0.20108986559778D-17 + 1 16 2 64 0.74878039637237D-01 0.32042226357167D-17 + 2 16 2 64 -0.31385696791190D+00 0.39983451050586D-16 + 3 16 2 64 0.17148999232231D+00 -0.48103934720420D-17 + 1 17 2 64 -0.17348015532402D-01 -0.38542502676561D-16 + 2 17 2 64 0.33772563371241D-01 0.19702248118557D-15 + 3 17 2 64 -0.14717410392584D-01 -0.24412907709299D-16 + 1 18 2 64 0.89009744711472D-01 -0.66158226836310D-18 + 2 18 2 64 -0.18511474855805D+00 0.52338632512994D-16 + 3 18 2 64 -0.20603334481147D-01 -0.18286945124835D-16 + 1 19 2 64 0.67338461172716D-01 0.18073639190611D-16 + 2 19 2 64 0.12714067519291D+00 0.88592999157682D-16 + 3 19 2 64 0.61281025647687D-01 0.10496102966009D-16 + 1 20 2 64 0.15341231451758D-01 -0.22365781583262D-16 + 2 20 2 64 -0.38732122518085D+00 0.14755317420227D-15 + 3 20 2 64 -0.18048280306736D+00 -0.27446405073417D-16 + 1 21 2 64 -0.58852918836420D+00 -0.29459249696444D-16 + 2 21 2 64 -0.54380392083712D+00 -0.94715922815122D-16 + 3 21 2 64 -0.45089988636511D+00 -0.20616143287410D-16 + 1 22 2 64 -0.12816834899248D+02 -0.50237764883458D-18 + 2 22 2 64 -0.34088804580793D+02 0.87971082983414D-16 + 3 22 2 64 -0.35743857755746D+02 0.16310632643781D-16 + 1 23 2 64 -0.30666810203722D+00 0.11911851555290D-16 + 2 23 2 64 -0.52428663441624D+00 0.10318391555385D-16 + 3 23 2 64 0.56505974254687D+00 -0.31723811248514D-16 + 1 24 2 64 -0.16062445681233D+00 0.22255208424466D-16 + 2 24 2 64 -0.14662854392059D+00 -0.17927970897802D-15 + 3 24 2 64 0.15063058829759D+00 -0.15361801296244D-17 + 1 25 2 64 -0.22599590859614D-01 -0.44520229022371D-16 + 2 25 2 64 -0.14272890849054D-01 -0.27499399757139D-15 + 3 25 2 64 0.17766025281729D-01 -0.12093064981449D-18 + 1 26 2 64 0.20632698170945D-01 -0.93533144425713D-17 + 2 26 2 64 -0.14888633621139D-01 -0.21629814265843D-16 + 3 26 2 64 0.17330650968789D-01 -0.19734939594078D-17 + 1 27 2 64 0.16076264914700D+00 -0.17191754233009D-16 + 2 27 2 64 -0.14929348982221D+00 -0.94516771575037D-16 + 3 27 2 64 0.14978099351122D+00 -0.74403202484957D-18 + 1 28 2 64 0.15052401949793D+01 0.61165524850453D-17 + 2 28 2 64 -0.31351541603740D+01 -0.34711138873284D-15 + 3 28 2 64 -0.26673731561748D+01 0.33759071718113D-17 + 1 29 2 64 0.39691749310802D+00 -0.79030453135636D-17 + 2 29 2 64 0.44240434384660D-01 -0.42823079423495D-16 + 3 29 2 64 0.30829465429479D-01 -0.26897840474343D-17 + 1 30 2 64 -0.39668473956291D+00 -0.11905790023906D-16 + 2 30 2 64 0.42578396056123D-01 -0.27325904234515D-15 + 3 30 2 64 0.35137503702176D-01 -0.44139019344759D-17 + 1 31 2 64 -0.15120404693318D+01 0.10565992615400D-16 + 2 31 2 64 -0.31346312834977D+01 -0.18533673043743D-15 + 3 31 2 64 -0.26677893856777D+01 0.40307764362525D-17 + 1 32 2 64 -0.46101094744401D+01 0.13181370816776D-16 + 2 32 2 64 0.84982651392890D+00 0.90821599868312D-16 + 3 32 2 64 0.28110118400061D+01 -0.89324326357590D-19 + 1 33 2 64 0.18397158875336D+00 0.18460030692750D-16 + 2 33 2 64 0.73523117819537D-01 -0.51045614368753D-16 + 3 33 2 64 0.28581775711046D+00 0.15688880597725D-16 + 1 34 2 64 -0.32099583302758D+00 0.40188892450767D-16 + 2 34 2 64 0.18586369695549D+00 -0.54921645514345D-16 + 3 34 2 64 -0.67187656821284D-01 0.33323455481105D-16 + 1 35 2 64 0.15050325854584D+00 -0.23360118452371D-16 + 2 35 2 64 -0.28443611771166D+00 -0.94985878697593D-16 + 3 35 2 64 0.35713716539393D+00 -0.14027547428222D-16 + 1 36 2 64 0.86094463755103D+00 -0.66735335326272D-17 + 2 36 2 64 0.12590272598061D+00 -0.27884716988274D-16 + 3 36 2 64 0.44352528474126D+00 0.36246083959924D-16 + 1 37 2 64 -0.46103043870692D+00 -0.37736140671904D-16 + 2 37 2 64 0.11911326321254D+00 -0.39450753215840D-16 + 3 37 2 64 0.82337808285108D+00 -0.12630913708014D-16 + 1 38 2 64 -0.11023823220038D+01 -0.43704885634664D-16 + 2 38 2 64 -0.84752663054832D+00 0.18895406420178D-15 + 3 38 2 64 0.25556271126518D+00 -0.29904864343729D-16 + 1 39 2 64 0.16502171297718D-01 0.13523205861358D-16 + 2 39 2 64 0.27172907731193D+00 0.19174963455960D-15 + 3 39 2 64 0.76993652916087D-01 0.24276632142028D-16 + 1 40 2 64 -0.60810909845795D-01 0.21654862700754D-16 + 2 40 2 64 0.76694457329237D-01 0.55767028961677D-16 + 3 40 2 64 0.17597811415125D-01 0.49987325152363D-17 + 1 41 2 64 0.60297436310532D-01 -0.20867803061298D-17 + 2 41 2 64 0.77973259181355D-01 0.11993827779681D-17 + 3 41 2 64 0.18055223983221D-01 -0.21550395169725D-16 + 1 42 2 64 0.56679916905530D+00 0.27872423152246D-16 + 2 42 2 64 -0.50075250552094D+00 -0.22154052707851D-16 + 3 42 2 64 0.64991636464351D+00 -0.79299237591544D-16 + 1 43 2 64 -0.56586395752864D+00 0.76232436690724D-17 + 2 43 2 64 -0.50406954958962D+00 -0.60598428993198D-16 + 3 43 2 64 0.64771781666689D+00 -0.44670583935865D-17 + 1 44 2 64 -0.14635713762281D+00 0.10966060242935D-15 + 2 44 2 64 0.36471902416286D+00 -0.33432036811305D-16 + 3 44 2 64 -0.12066294572834D+00 -0.17820468713092D-16 + 1 45 2 64 0.14634106790516D+00 0.90594151525857D-16 + 2 45 2 64 0.36233019803985D+00 0.15533024683150D-15 + 3 45 2 64 -0.12141742276502D+00 -0.42062596032214D-17 + 1 46 2 64 0.11913615239239D+01 0.92696186699454D-16 + 2 46 2 64 0.12473213394783D+01 0.12074162697168D-16 + 3 46 2 64 -0.11989383012938D+01 0.30700096408846D-16 + 1 47 2 64 -0.11902213073032D+01 0.37747552940677D-16 + 2 47 2 64 0.12487046638453D+01 -0.69797605450626D-16 + 3 47 2 64 -0.11992435443085D+01 -0.18975152004469D-16 + 1 48 2 64 0.32150795395447D+00 0.31118374756348D-16 + 2 48 2 64 0.18749234272781D+00 0.11274082448776D-15 + 3 48 2 64 -0.65815729498097D-01 -0.29224285120073D-16 + 1 49 2 64 -0.15177704355265D+00 -0.21469918602759D-16 + 2 49 2 64 -0.28583909973776D+00 0.63702105538857D-16 + 3 49 2 64 0.35715189385479D+00 -0.77426758797901D-17 + 1 50 2 64 0.46055311281217D+01 0.84380041989794D-16 + 2 50 2 64 0.85208276128702D+00 0.19032350168237D-15 + 3 50 2 64 0.28091029343295D+01 0.86252343060907D-17 + 1 51 2 64 -0.18222667758373D+00 -0.58730263372457D-17 + 2 51 2 64 0.75805720364928D-01 -0.78492890070267D-16 + 3 51 2 64 0.28518279672124D+00 0.36659064207459D-16 + 1 52 2 64 0.10998115269211D+01 0.21788009988381D-16 + 2 52 2 64 -0.84622544378207D+00 -0.27155080572977D-15 + 3 52 2 64 0.25725218217314D+00 0.30737815216662D-16 + 1 53 2 64 -0.14446331097554D-01 0.17109923981816D-16 + 2 53 2 64 0.27114731353366D+00 -0.55049549634665D-15 + 3 53 2 64 0.77365666925797D-01 -0.10180003723501D-16 + 1 54 2 64 -0.86015233282601D+00 -0.42571835508407D-16 + 2 54 2 64 0.12384261309470D+00 0.79822026359390D-16 + 3 54 2 64 0.44273459903538D+00 -0.93650439354477D-17 + 1 55 2 64 0.46103480457847D+00 -0.16847833309636D-16 + 2 55 2 64 0.12127492901125D+00 0.37434305922215D-16 + 3 55 2 64 0.82400616371946D+00 0.14280780386614D-16 + 1 56 2 64 -0.41799667554676D-01 0.16673130812051D-17 + 2 56 2 64 0.34079756875252D+00 0.98047630212373D-17 + 3 56 2 64 -0.26027499431462D+00 -0.55414218393422D-16 + 1 57 2 64 -0.90537315177939D-02 -0.13170397387728D-16 + 2 57 2 64 -0.63414165802430D-01 0.27997890294856D-15 + 3 57 2 64 -0.88917535510201D-02 0.37503429687729D-16 + 1 58 2 64 0.44400670465180D-01 0.91243620762703D-17 + 2 58 2 64 0.34047678614174D+00 0.49977037414720D-16 + 3 58 2 64 -0.26082180274969D+00 -0.30015242058625D-16 + 1 59 2 64 0.78305496966336D-02 -0.81038027950789D-17 + 2 59 2 64 -0.63565732970406D-01 0.10921980433132D-17 + 3 59 2 64 -0.91997431689858D-02 0.26303236409650D-16 + 1 60 2 64 0.54552158771248D+01 -0.18745143112403D-16 + 2 60 2 64 -0.61191765798691D+01 0.12511554261911D-15 + 3 60 2 64 -0.65632748910257D+00 0.29112537436728D-16 + 1 61 2 64 -0.31293946107064D+00 0.18489041500235D-16 + 2 61 2 64 0.24110516291536D-01 0.12202978457331D-15 + 3 61 2 64 -0.92189162375361D-01 0.59446555605652D-16 + 1 62 2 64 -0.54538626186918D+01 -0.47386265764065D-18 + 2 62 2 64 -0.61174067196090D+01 0.31960827599345D-15 + 3 62 2 64 -0.65280978870094D+00 -0.21137861148766D-16 + 1 63 2 64 0.31380617561640D+00 0.10568597681383D-16 + 2 63 2 64 0.22249896480048D-01 -0.17102962161710D-15 + 3 63 2 64 -0.94141289949281D-01 0.10769238594828D-15 + 1 64 2 64 -0.56512079501360D-02 0.00000000000000D+00 + 2 64 2 64 0.83654755229454D+02 0.00000000000000D+00 + 3 64 2 64 0.70323993378533D+02 0.00000000000000D+00 + 1 65 2 64 0.26945112848610D-02 0.11794684067745D-16 + 2 65 2 64 0.32663074173678D+01 -0.33754753315737D-16 + 3 65 2 64 -0.80311200552807D-04 0.24160395900239D-17 + 1 67 2 64 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 64 -0.91031511570016D-01 0.68062167553156D-17 + 2 1 3 64 -0.21099244266206D-01 -0.20444566865850D-16 + 3 1 3 64 -0.18636859159152D+00 0.13521912038202D-15 + 1 2 3 64 -0.73174246076913D-01 -0.20178265458303D-17 + 2 2 3 64 0.17334651597392D+00 -0.25548789103675D-16 + 3 2 3 64 -0.31062896647659D+00 -0.61960361541113D-16 + 1 3 3 64 -0.66647925942098D-01 0.14284632512459D-16 + 2 3 3 64 0.62265338893122D-01 -0.18568340738840D-16 + 3 3 3 64 0.12730033657659D+00 -0.71740422668149D-16 + 1 4 3 64 0.18923029479716D-01 -0.10630509732341D-16 + 2 4 3 64 -0.14162581672600D-01 -0.63210284555508D-16 + 3 4 3 64 0.33286274453578D-01 0.28626039706891D-16 + 1 5 3 64 0.12819194379086D+02 -0.15938141222299D-16 + 2 5 3 64 -0.35742517670047D+02 0.57532758685996D-19 + 3 5 3 64 -0.34087583801540D+02 0.60845740953570D-15 + 1 6 3 64 -0.16656805207937D-01 -0.21385059742021D-16 + 2 6 3 64 -0.18288178967438D+00 -0.12496452428393D-16 + 3 6 3 64 -0.39045088703818D+00 0.19595114689124D-15 + 1 7 3 64 0.30892971086146D+00 0.39494386165195D-17 + 2 7 3 64 0.56471974226056D+00 -0.13800832229370D-16 + 3 7 3 64 -0.52499789938127D+00 -0.23786229979789D-16 + 1 8 3 64 0.58922497966896D+00 0.15887621554839D-16 + 2 8 3 64 -0.45238333347917D+00 0.40121666741700D-16 + 3 8 3 64 -0.54441867132872D+00 0.35349829322248D-15 + 1 9 3 64 -0.18694212995449D-16 0.19020576312322D-16 + 2 9 3 64 0.14300404567818D+00 0.15233575881923D-17 + 3 9 3 64 0.15432402611209D+00 0.14659480333505D-16 + 1 10 3 64 0.15124178928407D-15 0.64108709209468D-16 + 2 10 3 64 -0.68652891362036D-01 0.13748194041893D-17 + 3 10 3 64 -0.32912655861570D-01 0.19880762957177D-16 + 1 11 3 64 0.10977868710131D-15 0.80580072681891D-17 + 2 11 3 64 0.99644983610389D-01 -0.18741620680904D-18 + 3 11 3 64 -0.12345302357592D+00 0.92661107431186D-17 + 1 12 3 64 -0.15085689281313D-15 -0.31066949086971D-16 + 2 12 3 64 -0.39667899493333D+00 0.18599539032476D-17 + 3 12 3 64 -0.27948941140901D-01 -0.34873883201484D-17 + 1 13 3 64 0.10672668704722D-15 -0.46532134018362D-16 + 2 13 3 64 -0.17530610677971D+00 0.16783486082550D-17 + 3 13 3 64 -0.15330702032595D+00 -0.10674775705730D-17 + 1 14 3 64 0.48409859136495D-16 0.11868009491507D-16 + 2 14 3 64 -0.34163986353791D+00 0.21535609598982D-17 + 3 14 3 64 -0.21766339074116D+00 0.51634914197814D-17 + 1 15 3 64 0.90214248076138D-16 -0.18503771832942D-16 + 2 15 3 64 0.19438991150893D-02 -0.20108986559778D-17 + 3 15 3 64 0.70989436342788D-01 0.94682371205407D-17 + 1 16 3 64 0.66647925942099D-01 -0.36588167955922D-16 + 2 16 3 64 0.62265338893122D-01 -0.48103934720420D-17 + 3 16 3 64 0.12730033657658D+00 0.19071201126856D-15 + 1 17 3 64 -0.18923029479717D-01 -0.14778290430056D-16 + 2 17 3 64 -0.14162581672600D-01 -0.24412907709299D-16 + 3 17 3 64 0.33286274453570D-01 -0.39196594244791D-15 + 1 18 3 64 0.91031511570016D-01 -0.14324989691420D-16 + 2 18 3 64 -0.21099244266206D-01 -0.18286945124835D-16 + 3 18 3 64 -0.18636859159152D+00 -0.20829737904177D-16 + 1 19 3 64 0.73174246076913D-01 -0.17525584388844D-16 + 2 19 3 64 0.17334651597392D+00 0.10496102966009D-16 + 3 19 3 64 -0.31062896647660D+00 -0.24877573900658D-16 + 1 20 3 64 -0.30892971086146D+00 0.23417670895224D-16 + 2 20 3 64 0.56471974226054D+00 -0.27446405073417D-16 + 3 20 3 64 -0.52499789938128D+00 -0.99515924077435D-16 + 1 21 3 64 -0.58922497966896D+00 -0.20841840528158D-16 + 2 21 3 64 -0.45238333347917D+00 -0.20616143287410D-16 + 3 21 3 64 -0.54441867132872D+00 0.56927273887936D-16 + 1 22 3 64 -0.12819194379086D+02 -0.76882720144207D-17 + 2 22 3 64 -0.35742517670047D+02 0.16310632643781D-16 + 3 22 3 64 -0.34087583801540D+02 0.35399942080971D-15 + 1 23 3 64 0.16656805207936D-01 0.26855582090792D-16 + 2 23 3 64 -0.18288178967437D+00 -0.31723811248514D-16 + 3 23 3 64 -0.39045088703818D+00 -0.20150510792606D-15 + 1 24 3 64 -0.16062445681233D+00 -0.38121277642338D-17 + 2 24 3 64 0.15063058829759D+00 -0.15361801296244D-17 + 3 24 3 64 -0.14662854392060D+00 0.46935556476816D-16 + 1 25 3 64 0.22599590859614D-01 -0.13677431997923D-16 + 2 25 3 64 0.17766025281729D-01 -0.12093064981449D-18 + 3 25 3 64 -0.14272890849056D-01 -0.26601957308333D-15 + 1 26 3 64 -0.22599590859615D-01 0.36278077265725D-16 + 2 26 3 64 0.17766025281730D-01 -0.19734939594078D-17 + 3 26 3 64 -0.14272890849056D-01 -0.12429086774894D-15 + 1 27 3 64 0.16062445681233D+00 -0.30126838828605D-17 + 2 27 3 64 0.15063058829759D+00 -0.74403202484957D-18 + 3 27 3 64 -0.14662854392060D+00 0.19771671220952D-15 + 1 28 3 64 0.15052401949793D+01 0.68888360215850D-18 + 2 28 3 64 -0.26673731561748D+01 0.33759071718113D-17 + 3 28 3 64 -0.31351541603740D+01 0.26168266111967D-15 + 1 29 3 64 -0.39691749310802D+00 0.77629213529041D-17 + 2 29 3 64 0.30829465429479D-01 -0.26897840474343D-17 + 3 29 3 64 0.44240434384658D-01 0.47518995898969D-17 + 1 30 3 64 0.39691749310802D+00 0.32601987993750D-16 + 2 30 3 64 0.30829465429472D-01 -0.44139019344759D-17 + 3 30 3 64 0.44240434384672D-01 0.82917615313910D-16 + 1 31 3 64 -0.15052401949793D+01 -0.23823799320850D-16 + 2 31 3 64 -0.26673731561748D+01 0.40307764362525D-17 + 3 31 3 64 -0.31351541603740D+01 -0.55042305555012D-15 + 1 32 3 64 0.46101094744401D+01 0.54823244658134D-16 + 2 32 3 64 0.28110118400061D+01 -0.89324326357590D-19 + 3 32 3 64 0.84982651392890D+00 0.32966861865279D-15 + 1 33 3 64 0.32099583302758D+00 -0.60522846178587D-16 + 2 33 3 64 -0.67187656821286D-01 0.15688880597725D-16 + 3 33 3 64 0.18586369695548D+00 0.12888321913712D-15 + 1 34 3 64 -0.18397158875336D+00 -0.16553207503280D-16 + 2 34 3 64 0.28581775711046D+00 0.33323455481105D-16 + 3 34 3 64 0.73523117819534D-01 0.18182113610340D-16 + 1 35 3 64 -0.15050325854583D+00 0.32509484549113D-16 + 2 35 3 64 0.35713716539393D+00 -0.14027547428222D-16 + 3 35 3 64 -0.28443611771166D+00 0.53878003462630D-16 + 1 36 3 64 -0.86094463755103D+00 0.10869830394755D-15 + 2 36 3 64 0.44352528474126D+00 0.36246083959924D-16 + 3 36 3 64 0.12590272598060D+00 0.10172067059707D-15 + 1 37 3 64 0.11023823220038D+01 0.86728313711696D-16 + 2 37 3 64 0.25556271126517D+00 -0.12630913708014D-16 + 3 37 3 64 -0.84752663054833D+00 0.80108458391443D-16 + 1 38 3 64 0.46103043870693D+00 0.17727882264990D-16 + 2 38 3 64 0.82337808285109D+00 -0.29904864343729D-16 + 3 38 3 64 0.11911326321254D+00 0.20583029933232D-15 + 1 39 3 64 -0.16502171297720D-01 -0.16213183429777D-16 + 2 39 3 64 0.76993652916087D-01 0.24276632142028D-16 + 3 39 3 64 0.27172907731193D+00 0.22457463813648D-15 + 1 40 3 64 -0.90537315177944D-02 -0.13852932921017D-16 + 2 40 3 64 -0.88917535510186D-02 0.49987325152363D-17 + 3 40 3 64 -0.63414165802429D-01 -0.22763687614211D-15 + 1 41 3 64 0.90537315177939D-02 0.18510360229067D-16 + 2 41 3 64 -0.88917535510205D-02 -0.21550395169725D-16 + 3 41 3 64 -0.63414165802431D-01 -0.82873070790833D-16 + 1 42 3 64 -0.41799667554676D-01 0.11638852296612D-16 + 2 42 3 64 -0.26027499431462D+00 -0.79299237591544D-16 + 3 42 3 64 0.34079756875252D+00 0.10625655062398D-15 + 1 43 3 64 0.41799667554677D-01 0.76649065799500D-17 + 2 43 3 64 -0.26027499431462D+00 -0.44670583935865D-17 + 3 43 3 64 0.34079756875252D+00 -0.12212952054832D-15 + 1 44 3 64 -0.31293946107064D+00 0.13326886079798D-16 + 2 44 3 64 -0.92189162375361D-01 -0.17820468713092D-16 + 3 44 3 64 0.24110516291536D-01 0.14760913650331D-15 + 1 45 3 64 0.31293946107064D+00 0.12563663904812D-16 + 2 45 3 64 -0.92189162375366D-01 -0.42062596032214D-17 + 3 45 3 64 0.24110516291538D-01 -0.17522179926612D-15 + 1 46 3 64 0.54552158771248D+01 -0.46108971496745D-17 + 2 46 3 64 -0.65632748910255D+00 0.30700096408846D-16 + 3 46 3 64 -0.61191765798691D+01 -0.12472731417339D-15 + 1 47 3 64 -0.54552158771248D+01 -0.74977398795144D-17 + 2 47 3 64 -0.65632748910257D+00 -0.18975152004469D-16 + 3 47 3 64 -0.61191765798692D+01 -0.37821608428258D-15 + 1 48 3 64 0.18397158875336D+00 -0.45591972905514D-16 + 2 48 3 64 0.28581775711046D+00 -0.29224285120073D-16 + 3 48 3 64 0.73523117819528D-01 0.69282768656162D-16 + 1 49 3 64 0.15050325854583D+00 0.17411791730223D-17 + 2 49 3 64 0.35713716539393D+00 -0.77426758797901D-17 + 3 49 3 64 -0.28443611771166D+00 0.41883190001838D-16 + 1 50 3 64 -0.46101094744401D+01 -0.16103272952989D-16 + 2 50 3 64 0.28110118400061D+01 0.86252343060907D-17 + 3 50 3 64 0.84982651392890D+00 0.13243365710574D-15 + 1 51 3 64 -0.32099583302758D+00 0.13538963246064D-16 + 2 51 3 64 -0.67187656821291D-01 0.36659064207459D-16 + 3 51 3 64 0.18586369695549D+00 -0.84859451659225D-15 + 1 52 3 64 -0.46103043870693D+00 0.23013017330926D-16 + 2 52 3 64 0.82337808285109D+00 0.30737815216662D-16 + 3 52 3 64 0.11911326321254D+00 -0.41352867881248D-15 + 1 53 3 64 0.16502171297720D-01 -0.18521826811261D-16 + 2 53 3 64 0.76993652916087D-01 -0.10180003723501D-16 + 3 53 3 64 0.27172907731193D+00 0.17655646475076D-16 + 1 54 3 64 0.86094463755103D+00 -0.19443147481856D-16 + 2 54 3 64 0.44352528474125D+00 -0.93650439354477D-17 + 3 54 3 64 0.12590272598060D+00 0.75454508587435D-16 + 1 55 3 64 -0.11023823220038D+01 -0.48717980518883D-16 + 2 55 3 64 0.25556271126517D+00 0.14280780386614D-16 + 3 55 3 64 -0.84752663054832D+00 -0.15676736101265D-16 + 1 56 3 64 0.56679916905530D+00 0.46023310344046D-16 + 2 56 3 64 0.64991636464351D+00 -0.55414218393422D-16 + 3 56 3 64 -0.50075250552094D+00 -0.10283302760516D-15 + 1 57 3 64 -0.60810909845794D-01 -0.21781888195370D-16 + 2 57 3 64 0.17597811415123D-01 0.37503429687729D-16 + 3 57 3 64 0.76694457329234D-01 0.10592117689851D-15 + 1 58 3 64 -0.56679916905530D+00 0.46776970951202D-16 + 2 58 3 64 0.64991636464351D+00 -0.30015242058625D-16 + 3 58 3 64 -0.50075250552094D+00 0.24813975185599D-16 + 1 59 3 64 0.60810909845794D-01 -0.81357544297640D-16 + 2 59 3 64 0.17597811415123D-01 0.26303236409650D-16 + 3 59 3 64 0.76694457329230D-01 0.13701953458243D-16 + 1 60 3 64 0.11902213073032D+01 0.73173276062490D-17 + 2 60 3 64 -0.11992435443085D+01 0.29112537436728D-16 + 3 60 3 64 0.12487046638453D+01 -0.17318948363655D-16 + 1 61 3 64 -0.14634106790517D+00 0.14606860384029D-16 + 2 61 3 64 -0.12141742276502D+00 0.59446555605652D-16 + 3 61 3 64 0.36233019803985D+00 -0.22779049091804D-16 + 1 62 3 64 -0.11902213073032D+01 -0.97062192046109D-16 + 2 62 3 64 -0.11992435443085D+01 -0.21137861148766D-16 + 3 62 3 64 0.12487046638453D+01 0.28852224961841D-16 + 1 63 3 64 0.14634106790517D+00 -0.44317387631428D-16 + 2 63 3 64 -0.12141742276502D+00 0.10769238594828D-15 + 3 63 3 64 0.36233019803984D+00 0.22035157927044D-16 + 1 64 3 64 -0.19238863724937D-13 0.00000000000000D+00 + 2 64 3 64 0.70323993378533D+02 0.00000000000000D+00 + 3 64 3 64 0.83654755229454D+02 0.00000000000000D+00 + 1 65 3 64 -0.18310031209964D-15 -0.31502550907591D-16 + 2 65 3 64 0.80311200553117D-04 0.24160395900239D-17 + 3 65 3 64 0.32663074173678D+01 -0.24332409539051D-16 + 1 67 3 64 0.00000000000000D+00 0.00000000000000D+00 + 1 1 1 65 -0.11978192478382D+01 -0.45988028036388D-16 + 2 1 1 65 -0.73602774428351D+00 0.11332383053033D-16 + 3 1 1 65 -0.73602774428358D+00 0.20928246066015D-16 + 1 2 1 65 -0.50053457424163D+00 0.46015556415801D-16 + 2 2 1 65 0.62533824397710D+00 -0.69645250280894D-16 + 3 2 1 65 0.93202794916056D+00 -0.51808980447738D-18 + 1 3 1 65 -0.50053457424164D+00 -0.21235627546980D-15 + 2 3 1 65 0.93202794916053D+00 -0.40655380595991D-17 + 3 3 1 65 0.62533824397711D+00 -0.18537507666250D-16 + 1 4 1 65 0.12032606938286D+00 -0.18917773947420D-15 + 2 4 1 65 0.64979964818769D-01 0.90836287981031D-16 + 3 4 1 65 0.64979964818765D-01 0.38791863200639D-16 + 1 5 1 65 -0.87492346166494D+01 -0.68850396272993D-16 + 2 5 1 65 0.41769986453751D+01 -0.21755918334290D-16 + 3 5 1 65 0.41769986453753D+01 -0.24410649286998D-17 + 1 6 1 65 0.14545606074375D+00 -0.13163206330921D-15 + 2 6 1 65 0.39928517272470D-01 0.10828214768702D-17 + 3 6 1 65 0.14080624751409D+00 0.11443427448200D-16 + 1 7 1 65 0.14545606074374D+00 -0.73166892380364D-16 + 2 7 1 65 0.14080624751412D+00 -0.66726563447499D-17 + 3 7 1 65 0.39928517272516D-01 0.65178005300350D-17 + 1 8 1 65 -0.15924778845918D+00 -0.21568389119965D-15 + 2 8 1 65 0.20997989540762D+00 -0.66853965250260D-16 + 3 8 1 65 0.20997989540765D+00 0.48315120477935D-16 + 1 9 1 65 -0.36356106870793D+00 0.58511120797655D-17 + 2 9 1 65 -0.35369490152139D-15 0.57322510123835D-16 + 3 9 1 65 0.33709003900440D-15 -0.29227716158023D-16 + 1 10 1 65 -0.22902125392393D-01 -0.25395051262453D-16 + 2 10 1 65 -0.28676393737946D-15 0.73886358146182D-17 + 3 10 1 65 0.61606921964034D-16 0.47700715611645D-16 + 1 11 1 65 0.34812513604301D+00 -0.12652612541242D-16 + 2 11 1 65 0.41746336616655D-15 0.45048082907789D-16 + 3 11 1 65 0.24684702600593D-15 0.28553305788845D-18 + 1 12 1 65 -0.36356106870786D+00 0.28536383954879D-16 + 2 12 1 65 0.17244522353032D-15 -0.66854944867185D-18 + 3 12 1 65 0.24061169699112D-15 -0.48710594233059D-16 + 1 13 1 65 -0.11809158130798D+00 -0.12258612755304D-15 + 2 13 1 65 0.71357402997519D-15 -0.38126800828180D-16 + 3 13 1 65 -0.24815063019100D-15 0.46820836237270D-16 + 1 14 1 65 0.56338999034074D+00 0.31353081759411D-16 + 2 14 1 65 0.18286916870382D-15 0.49070718926096D-17 + 3 14 1 65 0.13632303326266D-15 -0.48089171695250D-16 + 1 15 1 65 -0.11809158130797D+00 0.79555384111443D-16 + 2 15 1 65 -0.22904895424619D-15 0.12868333418652D-16 + 3 15 1 65 0.11283431376204D-15 -0.23103165112448D-16 + 1 16 1 65 -0.50053457424159D+00 0.32569516411016D-15 + 2 16 1 65 -0.93202794916049D+00 -0.47112126748711D-16 + 3 16 1 65 -0.62533824397712D+00 0.91411409740554D-16 + 1 17 1 65 0.12032606938284D+00 0.13494897105940D-15 + 2 17 1 65 -0.64979964818782D-01 0.60034463112101D-16 + 3 17 1 65 -0.64979964818738D-01 -0.77168541594429D-16 + 1 18 1 65 -0.11978192478389D+01 0.16957446699479D-15 + 2 18 1 65 0.73602774428339D+00 0.64687101602000D-17 + 3 18 1 65 0.73602774428370D+00 0.75612192085712D-16 + 1 19 1 65 -0.50053457424157D+00 -0.22874961257146D-15 + 2 19 1 65 -0.62533824397713D+00 0.69807616016958D-17 + 3 19 1 65 -0.93202794916058D+00 0.59591577315243D-16 + 1 20 1 65 0.14545606074375D+00 0.24564807444424D-15 + 2 20 1 65 -0.14080624751411D+00 -0.12973836312013D-16 + 3 20 1 65 -0.39928517272554D-01 -0.50677705920911D-16 + 1 21 1 65 -0.15924778845921D+00 0.19596648669031D-17 + 2 21 1 65 -0.20997989540767D+00 0.44034461579860D-16 + 3 21 1 65 -0.20997989540765D+00 0.74040333775170D-16 + 1 22 1 65 -0.87492346166496D+01 -0.23133047940782D-15 + 2 22 1 65 -0.41769986453755D+01 -0.18502483694995D-17 + 3 22 1 65 -0.41769986453754D+01 0.15579373616962D-16 + 1 23 1 65 0.14545606074375D+00 0.77462129001183D-16 + 2 23 1 65 -0.39928517272484D-01 -0.24396050414477D-17 + 3 23 1 65 -0.14080624751403D+00 0.66813359023470D-16 + 1 24 1 65 -0.29582678910612D+00 -0.26385881454320D-15 + 2 24 1 65 0.40494821230962D-01 -0.25149160207073D-16 + 3 24 1 65 0.40494821230959D-01 0.46516541407214D-18 + 1 25 1 65 0.10347994185208D+00 0.15541158183287D-15 + 2 25 1 65 -0.63373877723424D-02 -0.65046205995437D-17 + 3 25 1 65 0.63373877723831D-02 -0.12158067653326D-16 + 1 26 1 65 0.10347994185202D+00 -0.13847957279979D-15 + 2 26 1 65 0.63373877723805D-02 -0.18317344179924D-16 + 3 26 1 65 -0.63373877723831D-02 -0.12290465950959D-16 + 1 27 1 65 -0.29582678910605D+00 -0.12495417840424D-15 + 2 27 1 65 -0.40494821230961D-01 -0.87563955898909D-17 + 3 27 1 65 -0.40494821230926D-01 -0.15574016532964D-16 + 1 28 1 65 0.21907249102925D+00 -0.12095221934863D-16 + 2 28 1 65 -0.14072182679562D+00 -0.36911621032074D-17 + 3 28 1 65 -0.14072182679562D+00 0.29359951299568D-16 + 1 29 1 65 0.25051001250167D+01 0.17469198154908D-15 + 2 29 1 65 0.15113141234999D+01 -0.39731344977891D-17 + 3 29 1 65 -0.15113141234997D+01 -0.33866895541790D-16 + 1 30 1 65 0.25051001250170D+01 0.58315424276941D-17 + 2 30 1 65 -0.15113141234999D+01 0.30151803010749D-16 + 3 30 1 65 0.15113141234996D+01 0.42411612290372D-17 + 1 31 1 65 0.21907249102938D+00 -0.46339871619189D-15 + 2 31 1 65 0.14072182679541D+00 0.12052347678235D-16 + 3 31 1 65 0.14072182679558D+00 -0.17151733328758D-16 + 1 32 1 65 -0.88973794530558D+01 -0.48137006141015D-16 + 2 32 1 65 -0.12933343460640D+02 -0.37801046188598D-17 + 3 32 1 65 0.12933343460640D+02 -0.77709294450304D-19 + 1 33 1 65 0.33464851426704D+00 0.36922058352954D-16 + 2 33 1 65 0.26880943972697D+00 0.81562481471264D-17 + 3 33 1 65 0.36513389322848D+00 -0.36127077676848D-16 + 1 34 1 65 0.33464851426695D+00 0.18337105003434D-16 + 2 34 1 65 -0.36513389322850D+00 0.20616936331667D-16 + 3 34 1 65 -0.26880943972696D+00 0.12410830313008D-16 + 1 35 1 65 -0.75943447184916D+00 0.18914600469244D-17 + 2 35 1 65 -0.88642642302339D-01 0.20605353259835D-17 + 3 35 1 65 0.88642642302327D-01 -0.43904060037191D-17 + 1 36 1 65 0.47472562476191D-01 -0.21016516014140D-15 + 2 36 1 65 0.68961132555411D-02 0.50731166861689D-17 + 3 36 1 65 -0.68961132555677D-02 -0.51839397685647D-17 + 1 37 1 65 -0.14478320412962D+00 -0.14210945543364D-15 + 2 37 1 65 0.22032006338683D+00 -0.34811662716512D-17 + 3 37 1 65 0.93420599972229D-01 -0.30225080577353D-17 + 1 38 1 65 -0.14478320412949D+00 0.47588929535004D-17 + 2 38 1 65 -0.93420599972254D-01 -0.27987018515034D-16 + 3 38 1 65 -0.22032006338685D+00 0.12270434395905D-16 + 1 39 1 65 0.88500697922274D-01 0.44732903145630D-16 + 2 39 1 65 -0.19333452705318D-01 0.40395449684668D-17 + 3 39 1 65 0.19333452705321D-01 -0.92505919709794D-18 + 1 40 1 65 -0.18114310583081D+00 -0.14943165167130D-15 + 2 40 1 65 0.14625636154839D+00 0.60628443131486D-18 + 3 40 1 65 0.28203786703249D+00 0.18667694996209D-17 + 1 41 1 65 -0.18114310583079D+00 -0.13329933470115D-15 + 2 41 1 65 -0.14625636154839D+00 -0.96182200898209D-16 + 3 41 1 65 -0.28203786703246D+00 -0.48633929458034D-17 + 1 42 1 65 -0.32913855200116D+01 0.38823054976294D-16 + 2 42 1 65 0.11024226193012D+01 0.38599498608222D-16 + 3 42 1 65 -0.59872147645343D+01 -0.18778511603312D-16 + 1 43 1 65 -0.32913855200115D+01 0.56127127103177D-16 + 2 43 1 65 -0.11024226193011D+01 -0.46733347183707D-16 + 3 43 1 65 0.59872147645347D+01 0.16681200635538D-17 + 1 44 1 65 -0.97987867871755D-02 -0.11444264194416D-16 + 2 44 1 65 0.38414445183877D-02 0.10185659207736D-15 + 3 44 1 65 0.18950573049616D-01 -0.72844298929228D-17 + 1 45 1 65 -0.97987867871915D-02 -0.92837215715424D-16 + 2 45 1 65 -0.38414445183816D-02 -0.56986959108655D-16 + 3 45 1 65 -0.18950573049621D-01 -0.18651173569361D-16 + 1 46 1 65 0.64172853416080D+00 -0.32393021732825D-16 + 2 46 1 65 0.25613440692052D+00 0.10631981913785D-15 + 3 46 1 65 -0.15548126048236D+00 -0.75611799395763D-17 + 1 47 1 65 0.64172853416074D+00 -0.58680898540077D-16 + 2 47 1 65 -0.25613440692053D+00 0.27218995217638D-16 + 3 47 1 65 0.15548126048232D+00 -0.19682672502256D-16 + 1 48 1 65 0.33464851426696D+00 0.55426722528482D-16 + 2 48 1 65 0.36513389322850D+00 -0.62281531963128D-17 + 3 48 1 65 0.26880943972696D+00 -0.11071917223126D-16 + 1 49 1 65 -0.75943447184913D+00 0.95698080373985D-16 + 2 49 1 65 0.88642642302324D-01 -0.14287685441276D-16 + 3 49 1 65 -0.88642642302333D-01 -0.14666543024304D-16 + 1 50 1 65 -0.88973794530551D+01 0.20526381902072D-15 + 2 50 1 65 0.12933343460640D+02 -0.51172295326271D-17 + 3 50 1 65 -0.12933343460640D+02 0.65895415865842D-17 + 1 51 1 65 0.33464851426688D+00 -0.90789977519911D-16 + 2 51 1 65 -0.26880943972698D+00 0.39061562226434D-17 + 3 51 1 65 -0.36513389322849D+00 0.25863036542552D-16 + 1 52 1 65 -0.14478320412948D+00 -0.25053719913984D-15 + 2 52 1 65 0.93420599972252D-01 -0.88560106746803D-17 + 3 52 1 65 0.22032006338685D+00 -0.65271763941858D-17 + 1 53 1 65 0.88500697922166D-01 0.10097216734465D-15 + 2 53 1 65 0.19333452705320D-01 0.13617488404239D-16 + 3 53 1 65 -0.19333452705324D-01 0.82229703946254D-17 + 1 54 1 65 0.47472562475943D-01 0.12925651542166D-15 + 2 54 1 65 -0.68961132555548D-02 -0.13879908553256D-16 + 3 54 1 65 0.68961132555370D-02 -0.61800373159405D-18 + 1 55 1 65 -0.14478320412952D+00 0.95410148478240D-16 + 2 55 1 65 -0.22032006338684D+00 0.10857354624846D-16 + 3 55 1 65 -0.93420599972247D-01 0.13874109520131D-16 + 1 56 1 65 -0.32913855200116D+01 -0.85454331048741D-16 + 2 56 1 65 -0.59872147645345D+01 0.69171459284317D-17 + 3 56 1 65 0.11024226193011D+01 0.65190676768847D-16 + 1 57 1 65 -0.18114310583075D+00 0.93436756098238D-16 + 2 57 1 65 0.28203786703247D+00 0.39302317992796D-17 + 3 57 1 65 0.14625636154839D+00 0.12222350174792D-16 + 1 58 1 65 -0.32913855200116D+01 0.21254465894020D-15 + 2 58 1 65 0.59872147645347D+01 0.81062597336475D-17 + 3 58 1 65 -0.11024226193011D+01 -0.27541220070431D-16 + 1 59 1 65 -0.18114310583077D+00 0.94566566132407D-16 + 2 59 1 65 -0.28203786703251D+00 -0.11899066012668D-16 + 3 59 1 65 -0.14625636154838D+00 0.16168274385848D-16 + 1 60 1 65 0.64172853416085D+00 -0.26505279709812D-16 + 2 60 1 65 -0.15548126048246D+00 -0.10255702680772D-17 + 3 60 1 65 0.25613440692052D+00 -0.55473825400556D-16 + 1 61 1 65 -0.97987867871879D-02 0.22226137875767D-15 + 2 61 1 65 0.18950573049642D-01 -0.83402156321345D-17 + 3 61 1 65 0.38414445183779D-02 -0.21485108564253D-16 + 1 62 1 65 0.64172853416079D+00 0.12086234746473D-16 + 2 62 1 65 0.15548126048235D+00 0.11201647983137D-16 + 3 62 1 65 -0.25613440692053D+00 0.12001875983881D-15 + 1 63 1 65 -0.97987867871702D-02 -0.50816461832811D-16 + 2 63 1 65 -0.18950573049603D-01 0.38161552979025D-17 + 3 63 1 65 -0.38414445183786D-02 -0.52816438442512D-16 + 1 64 1 65 -0.95690745220500D+02 -0.14464233284049D-15 + 2 64 1 65 0.26945112848610D-02 -0.11794684067745D-16 + 3 64 1 65 -0.18310031209964D-15 0.31502550907591D-16 + 1 65 1 65 0.14111535000701D+03 0.00000000000000D+00 + 2 65 1 65 0.56512079500862D-02 0.00000000000000D+00 + 3 65 1 65 0.28476355711935D-14 0.00000000000000D+00 + 2 67 1 65 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 65 0.00000000000000D+00 0.00000000000000D+00 + 1 1 2 65 -0.86094463755101D+00 0.11332383053033D-16 + 2 1 2 65 0.12590272598061D+00 -0.66487061700035D-16 + 3 1 2 65 -0.44352528474124D+00 0.33143236872833D-16 + 1 2 2 65 0.46103043870693D+00 -0.69645250280894D-16 + 2 2 2 65 0.11911326321254D+00 0.91483534388293D-16 + 3 2 2 65 -0.82337808285109D+00 0.10710927595612D-15 + 1 3 2 65 0.11023823220038D+01 -0.40655380595991D-17 + 2 3 2 65 -0.84752663054832D+00 -0.37259987002601D-16 + 3 3 2 65 -0.25556271126518D+00 0.22958329987249D-16 + 1 4 2 65 -0.16502171297717D-01 0.90836287981031D-16 + 2 4 2 65 0.27172907731193D+00 -0.80917703549846D-16 + 3 4 2 65 -0.76993652916089D-01 -0.12631134716772D-16 + 1 5 2 65 0.46101094744401D+01 -0.21755918334290D-16 + 2 5 2 65 0.84982651392890D+00 0.27072015157581D-15 + 3 5 2 65 -0.28110118400061D+01 -0.58368172806956D-16 + 1 6 2 65 -0.18397158875336D+00 0.10828214768702D-17 + 2 6 2 65 0.73523117819534D-01 -0.78721685456458D-16 + 3 6 2 65 -0.28581775711046D+00 -0.10427522554534D-16 + 1 7 2 65 0.32099583302758D+00 -0.66726563447499D-17 + 2 7 2 65 0.18586369695548D+00 0.10885853663075D-15 + 3 7 2 65 0.67187656821287D-01 -0.28314292212605D-16 + 1 8 2 65 -0.15050325854584D+00 -0.66853965250260D-16 + 2 8 2 65 -0.28443611771166D+00 -0.15014746621728D-15 + 3 8 2 65 -0.35713716539394D+00 -0.63941545288443D-16 + 1 9 2 65 -0.42999713967373D-02 0.57322510123835D-16 + 2 9 2 65 -0.27948941140906D-01 -0.12211121781260D-17 + 3 9 2 65 0.39667899493333D+00 -0.13118918459181D-17 + 1 10 2 65 -0.10290570711621D-03 0.73886358146182D-17 + 2 10 2 65 -0.32912655861566D-01 -0.10540989446884D-16 + 3 10 2 65 0.68652891362037D-01 0.17188640015757D-17 + 1 11 2 65 0.58550197136649D-03 0.45048082907789D-16 + 2 11 2 65 -0.12345302357592D+00 0.18540021471341D-18 + 3 11 2 65 -0.99644983610389D-01 0.28112316554953D-19 + 1 12 2 65 0.38441720948104D-03 -0.66854944867185D-18 + 2 12 2 65 0.15432402611209D+00 0.33147167115745D-17 + 3 12 2 65 -0.14300404567818D+00 -0.15504560650517D-17 + 1 13 2 65 0.67712315227473D-03 -0.38126800828180D-16 + 2 13 2 65 0.70989436342781D-01 -0.70568145060871D-17 + 3 13 2 65 -0.19438991150892D-02 -0.21842298545214D-17 + 1 14 2 65 0.20900121119705D-02 0.49070718926096D-17 + 2 14 2 65 -0.21766339074114D+00 0.44957800258908D-17 + 3 14 2 65 0.34163986353791D+00 -0.15638162126478D-17 + 1 15 2 65 -0.27989429851214D-03 0.12868333418652D-16 + 2 15 2 65 -0.15330702032596D+00 0.19780057256322D-16 + 3 15 2 65 0.17530610677971D+00 -0.34809639725989D-18 + 1 16 2 65 -0.10998115269211D+01 -0.47112126748711D-16 + 2 16 2 65 -0.84622544378206D+00 0.26571760987317D-15 + 3 16 2 65 -0.25725218217314D+00 -0.16896155075324D-16 + 1 17 2 65 0.14446331097551D-01 0.60034463112101D-16 + 2 17 2 65 0.27114731353366D+00 -0.63142753373235D-16 + 3 17 2 65 -0.77365666925798D-01 0.74949389186219D-16 + 1 18 2 65 0.86015233282598D+00 0.64687101602000D-17 + 2 18 2 65 0.12384261309470D+00 0.19652927700348D-16 + 3 18 2 65 -0.44273459903537D+00 -0.10827220104925D-16 + 1 19 2 65 -0.46103480457848D+00 0.69807616016958D-17 + 2 19 2 65 0.12127492901125D+00 -0.14416320435397D-15 + 3 19 2 65 -0.82400616371946D+00 -0.14948491666061D-16 + 1 20 2 65 -0.32150795395447D+00 -0.12973836312013D-16 + 2 20 2 65 0.18749234272782D+00 0.13630448184824D-16 + 3 20 2 65 0.65815729498097D-01 0.35143633087466D-18 + 1 21 2 65 0.15177704355265D+00 0.44034461579860D-16 + 2 21 2 65 -0.28583909973776D+00 0.17293192454384D-15 + 3 21 2 65 -0.35715189385479D+00 0.85725049095138D-16 + 1 22 2 65 -0.46055311281216D+01 -0.18502483694995D-17 + 2 22 2 65 0.85208276128703D+00 -0.55049253562441D-16 + 3 22 2 65 -0.28091029343294D+01 -0.14494542169025D-16 + 1 23 2 65 0.18222667758372D+00 -0.24396050414477D-17 + 2 23 2 65 0.75805720364928D-01 0.65725050754416D-17 + 3 23 2 65 -0.28518279672124D+00 0.89423170302571D-16 + 1 24 2 65 0.22599590859615D-01 -0.25149160207073D-16 + 2 24 2 65 -0.14272890849055D-01 -0.16236110183990D-15 + 3 24 2 65 -0.17766025281728D-01 -0.29042380908261D-18 + 1 25 2 65 0.16062445681234D+00 -0.65046205995437D-17 + 2 25 2 65 -0.14662854392059D+00 0.21021984243529D-15 + 3 25 2 65 -0.15063058829759D+00 0.16149300709564D-17 + 1 26 2 65 -0.16076264914701D+00 -0.18317344179924D-16 + 2 26 2 65 -0.14929348982220D+00 -0.20318892307606D-16 + 3 26 2 65 -0.14978099351122D+00 0.17151002466562D-17 + 1 27 2 65 -0.20632698170947D-01 -0.87563955898909D-17 + 2 27 2 65 -0.14888633621138D-01 0.87504488321058D-16 + 3 27 2 65 -0.17330650968787D-01 -0.45460414939444D-18 + 1 28 2 65 -0.39691749310802D+00 -0.36911621032074D-17 + 2 28 2 65 0.44240434384644D-01 0.19948483842419D-16 + 3 28 2 65 -0.30829465429500D-01 -0.58463367875041D-18 + 1 29 2 65 -0.15052401949793D+01 -0.39731344977891D-17 + 2 29 2 65 -0.31351541603740D+01 0.26083046501390D-15 + 3 29 2 65 0.26673731561748D+01 -0.21008894787785D-17 + 1 30 2 65 0.15120404693318D+01 0.30151803010749D-16 + 2 30 2 65 -0.31346312834977D+01 0.92937008668287D-16 + 3 30 2 65 0.26677893856777D+01 -0.15526828060084D-17 + 1 31 2 65 0.39668473956292D+00 0.12052347678235D-16 + 2 31 2 65 0.42578396056109D-01 -0.20233495583250D-16 + 3 31 2 65 -0.35137503702205D-01 0.44456324326884D-17 + 1 32 2 65 -0.12819194379086D+02 -0.37801046188598D-17 + 2 32 2 65 -0.34087583801540D+02 -0.27230806063149D-15 + 3 32 2 65 0.35742517670047D+02 -0.73266677754324D-18 + 1 33 2 65 -0.30892971086146D+00 0.81562481471264D-17 + 2 33 2 65 -0.52499789938128D+00 -0.16569922202661D-15 + 3 33 2 65 -0.56471974226054D+00 0.28496622079614D-16 + 1 34 2 65 0.16656805207942D-01 0.20616936331667D-16 + 2 34 2 65 -0.39045088703824D+00 -0.74091568525782D-16 + 3 34 2 65 0.18288178967436D+00 0.35787361562291D-16 + 1 35 2 65 -0.58922497966895D+00 0.20605353259835D-17 + 2 35 2 65 -0.54441867132872D+00 -0.40200126959477D-15 + 3 35 2 65 0.45238333347917D+00 -0.12688813622476D-16 + 1 36 2 65 0.91031511570016D-01 0.50731166861689D-17 + 2 36 2 65 -0.18636859159152D+00 0.80276540011005D-16 + 3 36 2 65 0.21099244266207D-01 0.30796841388778D-17 + 1 37 2 65 0.66647925942100D-01 -0.34811662716512D-17 + 2 37 2 65 0.12730033657658D+00 0.39391608874371D-16 + 3 37 2 65 -0.62265338893122D-01 -0.63340217940688D-18 + 1 38 2 65 0.73174246076915D-01 -0.27987018515034D-16 + 2 38 2 65 -0.31062896647660D+00 -0.42111134598480D-16 + 3 38 2 65 -0.17334651597392D+00 0.23270358763516D-16 + 1 39 2 65 -0.18923029479716D-01 0.40395449684668D-17 + 2 39 2 65 0.33286274453570D-01 0.19175723943361D-15 + 3 39 2 65 0.14162581672600D-01 0.13378362768612D-16 + 1 40 2 65 -0.14634106790516D+00 0.60628443131486D-18 + 2 40 2 65 0.36233019803985D+00 -0.19265303986561D-16 + 3 40 2 65 0.12141742276502D+00 -0.23333836041135D-18 + 1 41 2 65 0.14635713762281D+00 -0.96182200898209D-16 + 2 41 2 65 0.36471902416285D+00 0.10226217566569D-15 + 3 41 2 65 0.12066294572834D+00 0.83094153791000D-17 + 1 42 2 65 0.11902213073032D+01 0.38599498608222D-16 + 2 42 2 65 0.12487046638452D+01 0.24687560635908D-15 + 3 42 2 65 0.11992435443085D+01 0.25316063508603D-16 + 1 43 2 65 -0.11913615239239D+01 -0.46733347183707D-16 + 2 43 2 65 0.12473213394782D+01 0.83688878078992D-16 + 3 43 2 65 0.11989383012938D+01 0.14508465104152D-16 + 1 44 2 65 -0.60297436310531D-01 0.10185659207736D-15 + 2 44 2 65 0.77973259181363D-01 0.32543225152421D-16 + 3 44 2 65 -0.18055223983222D-01 0.27616198306541D-16 + 1 45 2 65 0.60810909845795D-01 -0.56986959108655D-16 + 2 45 2 65 0.76694457329234D-01 -0.38584316413884D-16 + 3 45 2 65 -0.17597811415125D-01 -0.36600514602762D-16 + 1 46 2 65 0.56586395752864D+00 0.10631981913785D-15 + 2 46 2 65 -0.50406954958960D+00 -0.46797358063094D-16 + 3 46 2 65 -0.64771781666689D+00 -0.22752194224643D-16 + 1 47 2 65 -0.56679916905530D+00 0.27218995217638D-16 + 2 47 2 65 -0.50075250552093D+00 -0.11908620482370D-15 + 3 47 2 65 -0.64991636464351D+00 -0.43258702464677D-17 + 1 48 2 65 -0.15341231451758D-01 -0.62281531963128D-17 + 2 48 2 65 -0.38732122518082D+00 0.47067673803215D-16 + 3 48 2 65 0.18048280306736D+00 -0.20544186772157D-17 + 1 49 2 65 0.58852918836420D+00 -0.14287685441276D-16 + 2 49 2 65 -0.54380392083711D+00 0.16414946601969D-15 + 3 49 2 65 0.45089988636511D+00 0.36977937868787D-16 + 1 50 2 65 0.12816834899248D+02 -0.51172295326271D-17 + 2 50 2 65 -0.34088804580793D+02 0.11257944738184D-15 + 3 50 2 65 0.35743857755746D+02 -0.18659507524334D-16 + 1 51 2 65 0.30666810203722D+00 0.39061562226434D-17 + 2 51 2 65 -0.52428663441624D+00 -0.13718265671438D-15 + 3 51 2 65 -0.56505974254687D+00 -0.92171902374073D-17 + 1 52 2 65 -0.74878039637236D-01 -0.88560106746803D-17 + 2 52 2 65 -0.31385696791190D+00 0.50426669559755D-16 + 3 52 2 65 -0.17148999232231D+00 0.15013720542217D-16 + 1 53 2 65 0.17348015532402D-01 0.13617488404239D-16 + 2 53 2 65 0.33772563371244D-01 -0.20174173140659D-16 + 3 53 2 65 0.14717410392584D-01 0.20187236140321D-16 + 1 54 2 65 -0.89009744711473D-01 -0.13879908553256D-16 + 2 54 2 65 -0.18511474855805D+00 0.34544319054951D-18 + 3 54 2 65 0.20603334481147D-01 0.77552505933846D-18 + 1 55 2 65 -0.67338461172716D-01 0.10857354624846D-16 + 2 55 2 65 0.12714067519291D+00 -0.23676273825193D-16 + 3 55 2 65 -0.61281025647686D-01 -0.18891367752181D-16 + 1 56 2 65 -0.54552158771247D+01 0.69171459284317D-17 + 2 56 2 65 -0.61191765798690D+01 -0.12343274497750D-15 + 3 56 2 65 0.65632748910257D+00 -0.45653302405250D-16 + 1 57 2 65 0.31293946107064D+00 0.39302317992796D-17 + 2 57 2 65 0.24110516291536D-01 -0.22584383181886D-15 + 3 57 2 65 0.92189162375361D-01 -0.78054915257410D-17 + 1 58 2 65 0.54538626186918D+01 0.81062597336475D-17 + 2 58 2 65 -0.61174067196089D+01 -0.15110983683505D-15 + 3 58 2 65 0.65280978870094D+00 -0.11371437999996D-16 + 1 59 2 65 -0.31380617561640D+00 -0.11899066012668D-16 + 2 59 2 65 0.22249896480047D-01 0.16589113321708D-15 + 3 59 2 65 0.94141289949281D-01 0.95071863060932D-16 + 1 60 2 65 0.41799667554711D-01 -0.10255702680772D-17 + 2 60 2 65 0.34079756875251D+00 0.49592719940941D-17 + 3 60 2 65 0.26027499431462D+00 -0.45681327665901D-16 + 1 61 2 65 0.90537315177935D-02 -0.83402156321345D-17 + 2 61 2 65 -0.63414165802430D-01 -0.12216218800612D-15 + 3 61 2 65 0.88917535510196D-02 -0.76927213244672D-17 + 1 62 2 65 -0.44400670465208D-01 0.11201647983137D-16 + 2 62 2 65 0.34047678614172D+00 0.10188814444198D-15 + 3 62 2 65 0.26082180274969D+00 -0.62174823392047D-16 + 1 63 2 65 -0.78305496966327D-02 0.38161552979025D-17 + 2 63 2 65 -0.63565732970403D-01 0.23880173011962D-15 + 3 63 2 65 0.91997431689852D-02 -0.91874980965671D-16 + 1 64 2 65 -0.26945112848615D-02 -0.11794684067745D-16 + 2 64 2 65 0.32663074173678D+01 0.33754753315737D-16 + 3 64 2 65 0.80311200553117D-04 -0.24160395900239D-17 + 1 65 2 65 0.56512079500862D-02 0.00000000000000D+00 + 2 65 2 65 0.83654755229454D+02 0.00000000000000D+00 + 3 65 2 65 -0.70323993378533D+02 0.00000000000000D+00 + 1 67 2 65 0.00000000000000D+00 0.00000000000000D+00 + 1 1 3 65 -0.86094463755101D+00 0.20928246066015D-16 + 2 1 3 65 -0.44352528474124D+00 0.33143236872833D-16 + 3 1 3 65 0.12590272598060D+00 0.22413536451179D-15 + 1 2 3 65 0.11023823220038D+01 -0.51808980447738D-18 + 2 2 3 65 -0.25556271126518D+00 0.10710927595612D-15 + 3 2 3 65 -0.84752663054831D+00 0.28691031635933D-15 + 1 3 3 65 0.46103043870693D+00 -0.18537507666250D-16 + 2 3 3 65 -0.82337808285109D+00 0.22958329987249D-16 + 3 3 3 65 0.11911326321254D+00 -0.10170082462744D-15 + 1 4 3 65 -0.16502171297719D-01 0.38791863200639D-16 + 2 4 3 65 -0.76993652916089D-01 -0.12631134716772D-16 + 3 4 3 65 0.27172907731193D+00 0.14270699558150D-15 + 1 5 3 65 0.46101094744401D+01 -0.24410649286998D-17 + 2 5 3 65 -0.28110118400061D+01 -0.58368172806956D-16 + 3 5 3 65 0.84982651392890D+00 0.19138826640990D-15 + 1 6 3 65 0.32099583302758D+00 0.11443427448200D-16 + 2 6 3 65 0.67187656821286D-01 -0.10427522554534D-16 + 3 6 3 65 0.18586369695548D+00 0.19211496435753D-15 + 1 7 3 65 -0.18397158875336D+00 0.65178005300350D-17 + 2 7 3 65 -0.28581775711046D+00 -0.28314292212605D-16 + 3 7 3 65 0.73523117819536D-01 0.10629294536164D-15 + 1 8 3 65 -0.15050325854584D+00 0.48315120477935D-16 + 2 8 3 65 -0.35713716539394D+00 -0.63941545288443D-16 + 3 8 3 65 -0.28443611771166D+00 -0.24604680856394D-16 + 1 9 3 65 0.33709003900440D-15 -0.29227716158023D-16 + 2 9 3 65 -0.14300404567818D+00 -0.13118918459181D-17 + 3 9 3 65 0.15432402611209D+00 -0.81460802177613D-17 + 1 10 3 65 0.61606921964034D-16 0.47700715611645D-16 + 2 10 3 65 0.68652891362037D-01 0.17188640015757D-17 + 3 10 3 65 -0.32912655861570D-01 0.13347748207071D-17 + 1 11 3 65 0.24684702600593D-15 0.28553305788845D-18 + 2 11 3 65 -0.99644983610389D-01 0.28112316554953D-19 + 3 11 3 65 -0.12345302357593D+00 -0.16072781206211D-16 + 1 12 3 65 0.24061169699112D-15 -0.48710594233059D-16 + 2 12 3 65 0.39667899493333D+00 -0.15504560650517D-17 + 3 12 3 65 -0.27948941140901D-01 -0.11967928425485D-16 + 1 13 3 65 -0.24815063019100D-15 0.46820836237270D-16 + 2 13 3 65 0.17530610677971D+00 -0.21842298545214D-17 + 3 13 3 65 -0.15330702032595D+00 0.14147611312755D-16 + 1 14 3 65 0.13632303326266D-15 -0.48089171695250D-16 + 2 14 3 65 0.34163986353791D+00 -0.15638162126478D-17 + 3 14 3 65 -0.21766339074115D+00 -0.13039964858438D-16 + 1 15 3 65 0.11283431376204D-15 -0.23103165112448D-16 + 2 15 3 65 -0.19438991150892D-02 -0.34809639725989D-18 + 3 15 3 65 0.70989436342788D-01 0.16015997246454D-17 + 1 16 3 65 -0.46103043870693D+00 0.91411409740554D-16 + 2 16 3 65 -0.82337808285109D+00 -0.16896155075324D-16 + 3 16 3 65 0.11911326321254D+00 0.34397304632016D-16 + 1 17 3 65 0.16502171297719D-01 -0.77168541594429D-16 + 2 17 3 65 -0.76993652916088D-01 0.74949389186219D-16 + 3 17 3 65 0.27172907731193D+00 0.84912235250297D-16 + 1 18 3 65 0.86094463755101D+00 0.75612192085712D-16 + 2 18 3 65 -0.44352528474124D+00 -0.10827220104925D-16 + 3 18 3 65 0.12590272598060D+00 -0.12298725375141D-15 + 1 19 3 65 -0.11023823220038D+01 0.59591577315243D-16 + 2 19 3 65 -0.25556271126518D+00 -0.14948491666061D-16 + 3 19 3 65 -0.84752663054831D+00 0.24946689235100D-15 + 1 20 3 65 0.18397158875336D+00 -0.50677705920911D-16 + 2 20 3 65 -0.28581775711046D+00 0.35143633087466D-18 + 3 20 3 65 0.73523117819530D-01 0.68750831627843D-16 + 1 21 3 65 0.15050325854584D+00 0.74040333775170D-16 + 2 21 3 65 -0.35713716539394D+00 0.85725049095138D-16 + 3 21 3 65 -0.28443611771166D+00 -0.87011694361685D-16 + 1 22 3 65 -0.46101094744401D+01 0.15579373616962D-16 + 2 22 3 65 -0.28110118400061D+01 -0.14494542169025D-16 + 3 22 3 65 0.84982651392891D+00 -0.56301546652584D-16 + 1 23 3 65 -0.32099583302758D+00 0.66813359023470D-16 + 2 23 3 65 0.67187656821292D-01 0.89423170302571D-16 + 3 23 3 65 0.18586369695548D+00 0.11388599898126D-16 + 1 24 3 65 0.22599590859615D-01 0.46516541407214D-18 + 2 24 3 65 -0.17766025281728D-01 -0.29042380908261D-18 + 3 24 3 65 -0.14272890849058D-01 -0.34745402722685D-16 + 1 25 3 65 -0.16062445681233D+00 -0.12158067653326D-16 + 2 25 3 65 -0.15063058829759D+00 0.16149300709564D-17 + 3 25 3 65 -0.14662854392059D+00 0.20052685076286D-15 + 1 26 3 65 0.16062445681234D+00 -0.12290465950959D-16 + 2 26 3 65 -0.15063058829759D+00 0.17151002466562D-17 + 3 26 3 65 -0.14662854392060D+00 0.25874030167756D-16 + 1 27 3 65 -0.22599590859615D-01 -0.15574016532964D-16 + 2 27 3 65 -0.17766025281728D-01 -0.45460414939444D-18 + 3 27 3 65 -0.14272890849057D-01 -0.24413707859256D-15 + 1 28 3 65 -0.39691749310802D+00 0.29359951299568D-16 + 2 28 3 65 -0.30829465429500D-01 -0.58463367875041D-18 + 3 28 3 65 0.44240434384642D-01 0.10890571036314D-15 + 1 29 3 65 0.15052401949793D+01 -0.33866895541790D-16 + 2 29 3 65 0.26673731561748D+01 -0.21008894787785D-17 + 3 29 3 65 -0.31351541603741D+01 -0.23471543812049D-15 + 1 30 3 65 -0.15052401949793D+01 0.42411612290372D-17 + 2 30 3 65 0.26673731561748D+01 -0.15526828060084D-17 + 3 30 3 65 -0.31351541603740D+01 -0.18484270664628D-15 + 1 31 3 65 0.39691749310804D+00 -0.17151733328758D-16 + 2 31 3 65 -0.30829465429500D-01 0.44456324326884D-17 + 3 31 3 65 0.44240434384658D-01 -0.19741449075603D-16 + 1 32 3 65 0.12819194379086D+02 -0.77709294450304D-19 + 2 32 3 65 0.35742517670047D+02 -0.73266677754324D-18 + 3 32 3 65 -0.34087583801540D+02 -0.25092527019466D-15 + 1 33 3 65 -0.16656805207937D-01 -0.36127077676848D-16 + 2 33 3 65 0.18288178967438D+00 0.28496622079614D-16 + 3 33 3 65 -0.39045088703819D+00 -0.17138867383732D-15 + 1 34 3 65 0.30892971086146D+00 0.12410830313008D-16 + 2 34 3 65 -0.56471974226056D+00 0.35787361562291D-16 + 3 34 3 65 -0.52499789938128D+00 -0.12635254729745D-15 + 1 35 3 65 0.58922497966895D+00 -0.43904060037191D-17 + 2 35 3 65 0.45238333347917D+00 -0.12688813622476D-16 + 3 35 3 65 -0.54441867132872D+00 0.28347233603430D-15 + 1 36 3 65 -0.91031511570017D-01 -0.51839397685647D-17 + 2 36 3 65 0.21099244266207D-01 0.30796841388778D-17 + 3 36 3 65 -0.18636859159152D+00 0.32043394678744D-16 + 1 37 3 65 -0.73174246076912D-01 -0.30225080577353D-17 + 2 37 3 65 -0.17334651597392D+00 -0.63340217940688D-18 + 3 37 3 65 -0.31062896647660D+00 -0.64925490051804D-15 + 1 38 3 65 -0.66647925942098D-01 0.12270434395905D-16 + 2 38 3 65 -0.62265338893123D-01 0.23270358763516D-16 + 3 38 3 65 0.12730033657659D+00 -0.13666092182066D-15 + 1 39 3 65 0.18923029479716D-01 -0.92505919709794D-18 + 2 39 3 65 0.14162581672600D-01 0.13378362768612D-16 + 3 39 3 65 0.33286274453569D-01 0.73175026546486D-16 + 1 40 3 65 0.31293946107064D+00 0.18667694996209D-17 + 2 40 3 65 0.92189162375366D-01 -0.23333836041135D-18 + 3 40 3 65 0.24110516291537D-01 -0.12644431790093D-15 + 1 41 3 65 -0.31293946107064D+00 -0.48633929458034D-17 + 2 41 3 65 0.92189162375361D-01 0.83094153791000D-17 + 3 41 3 65 0.24110516291536D-01 -0.16081896753488D-15 + 1 42 3 65 -0.54552158771248D+01 -0.18778511603312D-16 + 2 42 3 65 0.65632748910257D+00 0.25316063508603D-16 + 3 42 3 65 -0.61191765798690D+01 -0.31123235516493D-16 + 1 43 3 65 0.54552158771248D+01 0.16681200635538D-17 + 2 43 3 65 0.65632748910255D+00 0.14508465104152D-16 + 3 43 3 65 -0.61191765798690D+01 -0.36234510698782D-15 + 1 44 3 65 0.90537315177939D-02 -0.72844298929228D-17 + 2 44 3 65 0.88917535510196D-02 0.27616198306541D-16 + 3 44 3 65 -0.63414165802430D-01 0.20444879268596D-15 + 1 45 3 65 -0.90537315177935D-02 -0.18651173569361D-16 + 2 45 3 65 0.88917535510189D-02 -0.36600514602762D-16 + 3 45 3 65 -0.63414165802428D-01 -0.14286905139412D-15 + 1 46 3 65 0.41799667554709D-01 -0.75611799395763D-17 + 2 46 3 65 0.26027499431462D+00 -0.22752194224643D-16 + 3 46 3 65 0.34079756875250D+00 -0.87626064352863D-15 + 1 47 3 65 -0.41799667554709D-01 -0.19682672502256D-16 + 2 47 3 65 0.26027499431462D+00 -0.43258702464677D-17 + 3 47 3 65 0.34079756875251D+00 0.19266140948154D-15 + 1 48 3 65 -0.30892971086146D+00 -0.11071917223126D-16 + 2 48 3 65 -0.56471974226054D+00 -0.20544186772157D-17 + 3 48 3 65 -0.52499789938128D+00 0.24592497066544D-15 + 1 49 3 65 -0.58922497966895D+00 -0.14666543024304D-16 + 2 49 3 65 0.45238333347917D+00 0.36977937868787D-16 + 3 49 3 65 -0.54441867132873D+00 -0.30624873443874D-15 + 1 50 3 65 -0.12819194379086D+02 0.65895415865842D-17 + 2 50 3 65 0.35742517670047D+02 -0.18659507524334D-16 + 3 50 3 65 -0.34087583801540D+02 -0.20462481580305D-15 + 1 51 3 65 0.16656805207937D-01 0.25863036542552D-16 + 2 51 3 65 0.18288178967437D+00 -0.92171902374073D-17 + 3 51 3 65 -0.39045088703818D+00 0.22803377355062D-15 + 1 52 3 65 0.66647925942100D-01 -0.65271763941858D-17 + 2 52 3 65 -0.62265338893120D-01 0.15013720542217D-16 + 3 52 3 65 0.12730033657659D+00 -0.13484968288046D-15 + 1 53 3 65 -0.18923029479716D-01 0.82229703946254D-17 + 2 53 3 65 0.14162581672600D-01 0.20187236140321D-16 + 3 53 3 65 0.33286274453572D-01 0.25191695264696D-17 + 1 54 3 65 0.91031511570016D-01 -0.61800373159405D-18 + 2 54 3 65 0.21099244266205D-01 0.77552505933846D-18 + 3 54 3 65 -0.18636859159152D+00 0.13022476951148D-16 + 1 55 3 65 0.73174246076912D-01 0.13874109520131D-16 + 2 55 3 65 -0.17334651597392D+00 -0.18891367752181D-16 + 3 55 3 65 -0.31062896647660D+00 0.42262534785862D-16 + 1 56 3 65 0.11902213073032D+01 0.65190676768847D-16 + 2 56 3 65 0.11992435443085D+01 -0.45653302405250D-16 + 3 56 3 65 0.12487046638452D+01 0.51372887208017D-17 + 1 57 3 65 -0.14634106790517D+00 0.12222350174792D-16 + 2 57 3 65 0.12141742276502D+00 -0.78054915257410D-17 + 3 57 3 65 0.36233019803984D+00 0.27864122252457D-16 + 1 58 3 65 -0.11902213073032D+01 -0.27541220070431D-16 + 2 58 3 65 0.11992435443085D+01 -0.11371437999996D-16 + 3 58 3 65 0.12487046638452D+01 0.12199548018537D-16 + 1 59 3 65 0.14634106790517D+00 0.16168274385848D-16 + 2 59 3 65 0.12141742276502D+00 0.95071863060932D-16 + 3 59 3 65 0.36233019803984D+00 0.24337136910146D-16 + 1 60 3 65 0.56679916905530D+00 -0.55473825400556D-16 + 2 60 3 65 -0.64991636464351D+00 -0.45681327665901D-16 + 3 60 3 65 -0.50075250552092D+00 0.23488461473915D-16 + 1 61 3 65 -0.60810909845794D-01 -0.21485108564253D-16 + 2 61 3 65 -0.17597811415124D-01 -0.76927213244672D-17 + 3 61 3 65 0.76694457329234D-01 0.14926409217805D-16 + 1 62 3 65 -0.56679916905530D+00 0.12001875983881D-15 + 2 62 3 65 -0.64991636464351D+00 -0.62174823392047D-16 + 3 62 3 65 -0.50075250552093D+00 0.65836310656439D-17 + 1 63 3 65 0.60810909845794D-01 -0.52816438442512D-16 + 2 63 3 65 -0.17597811415124D-01 -0.91874980965671D-16 + 3 63 3 65 0.76694457329234D-01 0.17043387662374D-16 + 1 64 3 65 -0.18310031209964D-15 0.31502550907591D-16 + 2 64 3 65 -0.80311200552807D-04 -0.24160395900239D-17 + 3 64 3 65 0.32663074173678D+01 0.24332409539051D-16 + 1 65 3 65 0.28476355711935D-14 0.00000000000000D+00 + 2 65 3 65 -0.70323993378533D+02 0.00000000000000D+00 + 3 65 3 65 0.83654755229454D+02 0.00000000000000D+00 + 1 67 3 65 0.00000000000000D+00 0.00000000000000D+00 + 2 9 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 9 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 10 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 10 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 11 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 11 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 12 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 12 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 13 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 13 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 14 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 14 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 15 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 15 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 64 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 64 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 65 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 65 1 67 0.00000000000000D+00 0.00000000000000D+00 + 2 67 1 67 0.00000000000000D+00 0.00000000000000D+00 + 3 67 1 67 0.00000000000000D+00 0.00000000000000D+00 + 1 9 2 67 0.00000000000000D+00 0.00000000000000D+00 + 3 9 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 10 2 67 0.00000000000000D+00 0.00000000000000D+00 + 3 10 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 11 2 67 0.00000000000000D+00 0.00000000000000D+00 + 3 11 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 12 2 67 0.00000000000000D+00 0.00000000000000D+00 + 3 12 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 13 2 67 0.00000000000000D+00 0.00000000000000D+00 + 3 13 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 14 2 67 0.00000000000000D+00 0.00000000000000D+00 + 3 14 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 15 2 67 0.00000000000000D+00 0.00000000000000D+00 + 3 15 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 64 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 65 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 67 2 67 0.00000000000000D+00 0.00000000000000D+00 + 3 67 2 67 0.00000000000000D+00 0.00000000000000D+00 + 1 9 3 67 0.00000000000000D+00 0.00000000000000D+00 + 2 9 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 10 3 67 0.00000000000000D+00 0.00000000000000D+00 + 2 10 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 11 3 67 0.00000000000000D+00 0.00000000000000D+00 + 2 11 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 12 3 67 0.00000000000000D+00 0.00000000000000D+00 + 2 12 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 13 3 67 0.00000000000000D+00 0.00000000000000D+00 + 2 13 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 14 3 67 0.00000000000000D+00 0.00000000000000D+00 + 2 14 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 15 3 67 0.00000000000000D+00 0.00000000000000D+00 + 2 15 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 64 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 65 3 67 0.00000000000000D+00 0.00000000000000D+00 + 1 67 3 67 0.00000000000000D+00 0.00000000000000D+00 + 2 67 3 67 0.00000000000000D+00 0.00000000000000D+00 diff --git a/abipy/data/refs/embedding_ifc/C_sc.cif b/abipy/data/refs/embedding_ifc/C_sc.cif new file mode 100644 index 000000000..6f43a9be4 --- /dev/null +++ b/abipy/data/refs/embedding_ifc/C_sc.cif @@ -0,0 +1,90 @@ +# generated using pymatgen +data_C +_symmetry_space_group_name_H-M 'P 1' +_cell_length_a 7.14742000 +_cell_length_b 7.14742000 +_cell_length_c 7.14742000 +_cell_angle_alpha 90.00000000 +_cell_angle_beta 90.00000000 +_cell_angle_gamma 90.00000000 +_symmetry_Int_Tables_number 1 +_chemical_formula_structural C +_chemical_formula_sum C64 +_cell_volume 365.13032961 +_cell_formula_units_Z 64 +loop_ + _symmetry_equiv_pos_site_id + _symmetry_equiv_pos_as_xyz + 1 'x, y, z' +loop_ + _atom_site_type_symbol + _atom_site_label + _atom_site_symmetry_multiplicity + _atom_site_fract_x + _atom_site_fract_y + _atom_site_fract_z + _atom_site_occupancy + C C0 1 0.12500000 0.37500000 0.12500000 1.0 + C C1 1 0.12500000 0.37500000 0.62500000 1.0 + C C2 1 0.12500000 0.87500000 0.12500000 1.0 + C C3 1 0.12500000 0.87500000 0.62500000 1.0 + C C4 1 0.62500000 0.37500000 0.12500000 1.0 + C C5 1 0.62500000 0.37500000 0.62500000 1.0 + C C6 1 0.62500000 0.87500000 0.12500000 1.0 + C C7 1 0.62500000 0.87500000 0.62500000 1.0 + C C8 1 0.00000000 0.00000000 0.25000000 1.0 + C C9 1 0.00000000 0.00000000 0.75000000 1.0 + C C10 1 0.00000000 0.50000000 0.25000000 1.0 + C C11 1 0.00000000 0.50000000 0.75000000 1.0 + C C12 1 0.50000000 0.00000000 0.25000000 1.0 + C C13 1 0.50000000 0.00000000 0.75000000 1.0 + C C14 1 0.50000000 0.50000000 0.25000000 1.0 + C C15 1 0.50000000 0.50000000 0.75000000 1.0 + C C16 1 0.12500000 0.12500000 0.37500000 1.0 + C C17 1 0.12500000 0.12500000 0.87500000 1.0 + C C18 1 0.12500000 0.62500000 0.37500000 1.0 + C C19 1 0.12500000 0.62500000 0.87500000 1.0 + C C20 1 0.62500000 0.12500000 0.37500000 1.0 + C C21 1 0.62500000 0.12500000 0.87500000 1.0 + C C22 1 0.62500000 0.62500000 0.37500000 1.0 + C C23 1 0.62500000 0.62500000 0.87500000 1.0 + C C24 1 0.00000000 0.25000000 0.00000000 1.0 + C C25 1 0.00000000 0.25000000 0.50000000 1.0 + C C26 1 0.00000000 0.75000000 0.00000000 1.0 + C C27 1 0.00000000 0.75000000 0.50000000 1.0 + C C28 1 0.50000000 0.25000000 0.00000000 1.0 + C C29 1 0.50000000 0.25000000 0.50000000 1.0 + C C30 1 0.50000000 0.75000000 0.00000000 1.0 + C C31 1 0.50000000 0.75000000 0.50000000 1.0 + C C32 1 0.37500000 0.37500000 0.37500000 1.0 + C C33 1 0.37500000 0.37500000 0.87500000 1.0 + C C34 1 0.37500000 0.87500000 0.37500000 1.0 + C C35 1 0.37500000 0.87500000 0.87500000 1.0 + C C36 1 0.87500000 0.37500000 0.37500000 1.0 + C C37 1 0.87500000 0.37500000 0.87500000 1.0 + C C38 1 0.87500000 0.87500000 0.37500000 1.0 + C C39 1 0.87500000 0.87500000 0.87500000 1.0 + C C40 1 0.25000000 0.00000000 0.00000000 1.0 + C C41 1 0.25000000 0.00000000 0.50000000 1.0 + C C42 1 0.25000000 0.50000000 0.00000000 1.0 + C C43 1 0.25000000 0.50000000 0.50000000 1.0 + C C44 1 0.75000000 0.00000000 0.00000000 1.0 + C C45 1 0.75000000 0.00000000 0.50000000 1.0 + C C46 1 0.75000000 0.50000000 0.00000000 1.0 + C C47 1 0.75000000 0.50000000 0.50000000 1.0 + C C48 1 0.37500000 0.12500000 0.12500000 1.0 + C C49 1 0.37500000 0.12500000 0.62500000 1.0 + C C50 1 0.37500000 0.62500000 0.12500000 1.0 + C C51 1 0.37500000 0.62500000 0.62500000 1.0 + C C52 1 0.87500000 0.12500000 0.12500000 1.0 + C C53 1 0.87500000 0.12500000 0.62500000 1.0 + C C54 1 0.87500000 0.62500000 0.12500000 1.0 + C C55 1 0.87500000 0.62500000 0.62500000 1.0 + C C56 1 0.25000000 0.25000000 0.25000000 1.0 + C C57 1 0.25000000 0.25000000 0.75000000 1.0 + C C58 1 0.25000000 0.75000000 0.25000000 1.0 + C C59 1 0.25000000 0.75000000 0.75000000 1.0 + C C60 1 0.75000000 0.25000000 0.25000000 1.0 + C C61 1 0.75000000 0.25000000 0.75000000 1.0 + C C62 1 0.75000000 0.75000000 0.25000000 1.0 + C C63 1 0.75000000 0.75000000 0.75000000 1.0 diff --git a/abipy/data/refs/embedding_ifc/CaO_16at_vacancy_DDB b/abipy/data/refs/embedding_ifc/CaO_16at_vacancy_DDB new file mode 100644 index 000000000..74592ee9e --- /dev/null +++ b/abipy/data/refs/embedding_ifc/CaO_16at_vacancy_DDB @@ -0,0 +1,2234 @@ + + **** DERIVATIVE DATABASE **** ++DDB, Version number 20230401 + + DDB file merged by PhononWork on Tue Oct 31 13:51:09 2023 + + usepaw 0 + natom 15 + nkpt 2 + nsppol 1 + nsym 12 + ntypat 2 + occopt 1 + nband 63 + acell 0.13003030578744D+02 0.13003030578744D+02 0.13003030578744D+02 + amu 0.40078000000000D+02 0.15999400000000D+02 + dilatmx 0.10000000000000D+01 + ecut 0.35000000000000D+02 + ecutsm 0.00000000000000D+00 + intxc 0 + iscf 7 + ixc 11 + kpt 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + kptnrm 0.10000000000000D+01 + ngfft 72 72 72 + nspden 1 + nspinor 1 + occ 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.00000000000000D+00 0.00000000000000D+00 + rprim 0.86622349898200D+00 -0.28022101154912D-03 0.49965665340067D+00 + 0.28847689484001D+00 0.81677680025611D+00 0.49965662179827D+00 + -0.39635309044026D-03 -0.28022530090741D-03 0.99999988218900D+00 + dfpt_sciss 0.00000000000000D+00 + spinat 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + symafm 1 1 1 1 1 1 1 1 1 1 1 1 + symrel 1 0 0 0 1 0 0 0 1 + -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 -1 + 0 0 1 1 0 0 0 1 0 + 0 0 -1 -1 0 0 0 -1 0 + 1 0 0 0 0 1 0 1 0 + -1 0 0 0 0 -1 0 -1 0 + 0 1 0 0 0 1 1 0 0 + 0 -1 0 0 0 -1 -1 0 0 + 0 0 1 0 1 0 1 0 0 + 0 0 -1 0 -1 0 -1 0 0 + tnons 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.49986586988333D+00 -0.49967192171667D+00 0.49972719423333D+00 + -0.23110419999994D-03 0.23110419999994D-03 0.00000000000000D+00 + -0.49990302591667D+00 -0.49990302591667D+00 0.49972719423333D+00 + -0.23110419999997D-03 0.30044202500001D-03 -0.69337825000099D-04 + -0.49990302591667D+00 -0.49997236374167D+00 0.49979653205833D+00 + -0.27755575615629D-16 0.30044202500001D-03 -0.30044202500004D-03 + 0.49986586988333D+00 -0.49997236374167D+00 -0.49997236374167D+00 + 0.69337824999960D-04 0.23110420000000D-03 -0.30044202500004D-03 + 0.49979653205833D+00 -0.49990302591667D+00 -0.49997236374167D+00 + 0.69337824999960D-04 0.55511151231258D-16 -0.69337825000099D-04 + 0.49979653205833D+00 -0.49967192171667D+00 0.49979653205833D+00 + tolwfr 0.10000000000000D+01 + tphysel 0.00000000000000D+00 + tsmear 0.10000000000000D-01 + typat 1 1 1 1 1 1 1 1 2 2 2 2 + 2 2 2 + wtk 0.25000000000000D+00 0.75000000000000D+00 + xred 0.10000611404905D+01 0.29224469046893D-03 -0.81973345311596D-05 + -0.37222749166667D-02 0.99650882928333D+00 0.50366869611667D+00 + 0.99627772508333D+00 0.50396913814167D+00 -0.37916127416668D-02 + -0.38721640583334D-02 0.50381924900000D+00 0.50351880697500D+00 + 0.50373803394167D+00 0.99650882928333D+00 0.99620838725833D+00 + 0.50358814480000D+00 0.99635894014167D+00 0.50351880697500D+00 + 0.50358814480000D+00 0.50381924900000D+00 0.99605849811667D+00 + 0.49980472939286D+00 0.50003583359286D+00 0.49973539156786D+00 + 0.24993293494167D+00 0.25016403914167D+00 0.74986359711667D+00 + 0.24993293494167D+00 0.75016403914167D+00 0.24986359711667D+00 + 0.24993293494167D+00 0.75016403914167D+00 0.74986359711667D+00 + 0.74993293494167D+00 0.25016403914167D+00 0.24986359711667D+00 + 0.74993293494167D+00 0.25016403914167D+00 0.74986359711667D+00 + 0.74993293494167D+00 0.75016403914167D+00 0.24986359711667D+00 + 0.74993293494167D+00 0.75016403914167D+00 0.74986359711667D+00 + znucl 0.20000000000000D+02 0.80000000000000D+01 + zion 0.10000000000000D+02 0.60000000000000D+01 + + Description of the potentials (KB energies) + vrsio8 (for pseudopotentials)=100401 + usepaw = 0 + dimekb = 6 lmnmax= 6 + Atom type= 1 pspso= 0 nekb= 6 + iln lpsang iproj ekb(:) + 1 0 1 1.0063789E+01 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 2 0 2 0.0000000E+00 9.7239097E-01 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 3 1 1 0.0000000E+00 0.0000000E+00 3.0498783E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 4 1 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 4.7179907E-01 + 0.0000000E+00 0.0000000E+00 + 5 2 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + -3.4066715E+00 0.0000000E+00 + 6 2 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + -3.4066715E+00 0.0000000E+00 + Atom type= 2 pspso= 0 nekb= 5 + iln lpsang iproj ekb(:) + 1 0 1 6.0567355E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 + 2 0 2 0.0000000E+00 8.2402410E-01 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 + 3 1 1 0.0000000E+00 0.0000000E+00 -4.7171296E+00 0.0000000E+00 + 0.0000000E+00 + 4 1 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 -1.1492707E+00 + 0.0000000E+00 + 5 2 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + -1.3319550E+00 + + **** Database of total energy derivatives **** + Number of data blocks= 3 + + 1st derivatives - # elements : 51 + 1 1 0.50813937880607D-05 0.00000000000000D+00 + 2 1 0.50813937880607D-05 0.00000000000000D+00 + 3 1 0.50813937880607D-05 0.00000000000000D+00 + 1 2 -0.13736974789043D-04 0.00000000000000D+00 + 2 2 -0.13736974789043D-04 0.00000000000000D+00 + 3 2 -0.62106686287951D-05 0.00000000000000D+00 + 1 3 -0.13736974789043D-04 0.00000000000000D+00 + 2 3 -0.62106686287951D-05 0.00000000000000D+00 + 3 3 -0.13736974789043D-04 0.00000000000000D+00 + 1 4 0.62106686287951D-05 0.00000000000000D+00 + 2 4 0.13736974789043D-04 0.00000000000000D+00 + 3 4 0.13736974789043D-04 0.00000000000000D+00 + 1 5 -0.62106686287951D-05 0.00000000000000D+00 + 2 5 -0.13736974789043D-04 0.00000000000000D+00 + 3 5 -0.13736974789043D-04 0.00000000000000D+00 + 1 6 0.13736974789043D-04 0.00000000000000D+00 + 2 6 0.62106686287951D-05 0.00000000000000D+00 + 3 6 0.13736974789043D-04 0.00000000000000D+00 + 1 7 0.13736974789043D-04 0.00000000000000D+00 + 2 7 0.13736974789043D-04 0.00000000000000D+00 + 3 7 0.62106686287951D-05 0.00000000000000D+00 + 1 8 -0.50813937880607D-05 0.00000000000000D+00 + 2 8 -0.50813937880607D-05 0.00000000000000D+00 + 3 8 -0.50813937880607D-05 0.00000000000000D+00 + 1 9 0.00000000000000D+00 0.00000000000000D+00 + 2 9 0.00000000000000D+00 0.00000000000000D+00 + 3 9 0.00000000000000D+00 0.00000000000000D+00 + 1 10 0.00000000000000D+00 0.00000000000000D+00 + 2 10 0.00000000000000D+00 0.00000000000000D+00 + 3 10 0.00000000000000D+00 0.00000000000000D+00 + 1 11 0.00000000000000D+00 0.00000000000000D+00 + 2 11 0.00000000000000D+00 0.00000000000000D+00 + 3 11 0.00000000000000D+00 0.00000000000000D+00 + 1 12 0.00000000000000D+00 0.00000000000000D+00 + 2 12 0.00000000000000D+00 0.00000000000000D+00 + 3 12 0.00000000000000D+00 0.00000000000000D+00 + 1 13 0.00000000000000D+00 0.00000000000000D+00 + 2 13 0.00000000000000D+00 0.00000000000000D+00 + 3 13 0.00000000000000D+00 0.00000000000000D+00 + 1 14 0.00000000000000D+00 0.00000000000000D+00 + 2 14 0.00000000000000D+00 0.00000000000000D+00 + 3 14 0.00000000000000D+00 0.00000000000000D+00 + 1 15 0.00000000000000D+00 0.00000000000000D+00 + 2 15 0.00000000000000D+00 0.00000000000000D+00 + 3 15 0.00000000000000D+00 0.00000000000000D+00 + 1 18 0.26735424295541D-04 0.00000000000000D+00 + 2 18 0.26757100227003D-04 0.00000000000000D+00 + 3 18 0.26648720551624D-04 0.00000000000000D+00 + 1 19 -0.53094996600930D-07 0.00000000000000D+00 + 2 19 -0.75087651476666D-07 0.00000000000000D+00 + 3 19 -0.30654411940254D-07 0.00000000000000D+00 + + Total energy - # elements : 1 + -0.42639098124687D+03 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 2025 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.12872048392630D+02 0.00000000000000D+00 + 2 1 1 1 0.64194198584032D+01 0.00000000000000D+00 + 3 1 1 1 0.64194198584032D+01 0.00000000000000D+00 + 1 2 1 1 -0.70310239952052D+00 -0.13802476889220D-18 + 2 2 1 1 -0.17690603636710D+01 0.27278935811694D-17 + 3 2 1 1 -0.30912055355732D+01 0.14870547084889D-17 + 1 3 1 1 -0.70310239952049D+00 -0.26052294303121D-17 + 2 3 1 1 -0.30912055334050D+01 0.47088550538568D-18 + 3 3 1 1 -0.17690603636709D+01 -0.24974480967744D-17 + 1 4 1 1 0.21049500663723D+01 0.67229585399196D-18 + 2 4 1 1 0.10410477676929D+01 -0.36164433367047D-18 + 3 4 1 1 0.10410477676929D+01 0.10346187339855D-17 + 1 5 1 1 -0.62031875271275D+01 0.16334027345906D-18 + 2 5 1 1 -0.30867277300235D+01 -0.23089119933653D-17 + 3 5 1 1 -0.30867277300236D+01 0.18988552734125D-17 + 1 6 1 1 -0.72625181519673D+00 -0.18056952288244D-17 + 2 6 1 1 0.10556545808913D+01 0.37140972485255D-18 + 3 6 1 1 0.23596370641824D+01 -0.14618171034182D-17 + 1 7 1 1 -0.72625181519674D+00 -0.13182358437745D-17 + 2 7 1 1 0.23596370641824D+01 -0.20677720617048D-17 + 3 7 1 1 0.10556545792895D+01 -0.81621740386429D-18 + 1 8 1 1 -0.17657602960331D+01 0.58188985592742D-19 + 2 8 1 1 -0.89220685545705D+00 -0.14782443057354D-18 + 3 8 1 1 -0.89220685545709D+00 -0.28933672217438D-18 + 1 9 1 1 -0.64781010064717D+00 -0.15985471505036D-15 + 2 9 1 1 -0.83092245794611D-01 0.29623112480550D-17 + 3 9 1 1 -0.41978366990986D+00 0.33035903718958D-16 + 1 10 1 1 -0.64781010064705D+00 -0.38149589358808D-16 + 2 10 1 1 -0.41978367113086D+00 -0.47889859478338D-16 + 3 10 1 1 -0.83092245794497D-01 0.21390850161492D-16 + 1 11 1 1 -0.11328869476134D+01 0.38222073734928D-16 + 2 11 1 1 -0.55215539430885D+00 -0.14895246521690D-16 + 3 11 1 1 -0.55215539430883D+00 0.23149511688763D-16 + 1 12 1 1 -0.85952380006473D+00 -0.13658594862644D-16 + 2 12 1 1 -0.42410106084857D+00 -0.23048679224547D-16 + 3 12 1 1 -0.42410106084859D+00 0.38436912983626D-16 + 1 13 1 1 -0.62197027082715D+00 -0.74345902467765D-16 + 2 13 1 1 -0.55697573728526D+00 -0.40178989767220D-16 + 3 13 1 1 -0.18934180872422D+00 0.35323763612651D-16 + 1 14 1 1 -0.62197027082700D+00 0.14320979917242D-15 + 2 14 1 1 -0.18934180872420D+00 0.38531534271186D-16 + 3 14 1 1 -0.55697573728527D+00 0.26596295353884D-16 + 1 15 1 1 0.37985955713945D+00 0.45302346961634D-16 + 2 15 1 1 0.18541425141617D+00 0.83882774453550D-17 + 3 15 1 1 0.18541425141620D+00 0.10144168542722D-16 + 1 1 2 1 0.64194198584032D+01 0.00000000000000D+00 + 2 1 2 1 0.12872048392630D+02 0.00000000000000D+00 + 3 1 2 1 0.64194198584014D+01 0.00000000000000D+00 + 1 2 2 1 -0.17690603636710D+01 0.27278935811694D-17 + 2 2 2 1 -0.70310239952050D+00 0.10574871588912D-17 + 3 2 2 1 -0.30912055334052D+01 0.12878516927799D-17 + 1 3 2 1 -0.30867277300234D+01 0.47088550538568D-18 + 2 3 2 1 -0.62031875271273D+01 -0.38306642674378D-18 + 3 3 2 1 -0.30867277300236D+01 -0.16555581939553D-17 + 1 4 2 1 0.10556545808913D+01 -0.36164433367047D-18 + 2 4 2 1 -0.72625181519676D+00 0.52868713297114D-18 + 3 4 2 1 0.23596370641825D+01 0.18567746813537D-17 + 1 5 2 1 -0.30912055334051D+01 -0.23089119933653D-17 + 2 5 2 1 -0.70310239952047D+00 -0.17850895209804D-17 + 3 5 2 1 -0.17690603636709D+01 -0.27294489357286D-17 + 1 6 2 1 0.10410477676929D+01 0.37140972485255D-18 + 2 6 2 1 0.21049500663723D+01 -0.11154779743718D-17 + 3 6 2 1 0.10410477676929D+01 0.69121899742447D-18 + 1 7 2 1 0.23596370641824D+01 -0.20677720617048D-17 + 2 7 2 1 -0.72625181519681D+00 -0.64128054969206D-18 + 3 7 2 1 0.10556545808913D+01 0.63325964959807D-19 + 1 8 2 1 -0.89220685545705D+00 -0.14782443057354D-18 + 2 8 2 1 -0.17657602960331D+01 0.33831025331735D-19 + 3 8 2 1 -0.89220685545704D+00 0.16150944040899D-18 + 1 9 2 1 -0.83092245794611D-01 0.29623112480550D-17 + 2 9 2 1 -0.64781010064719D+00 0.78878268251093D-16 + 3 9 2 1 -0.41978367113082D+00 0.87654403401602D-17 + 1 10 2 1 -0.42410106084853D+00 -0.47889859478338D-16 + 2 10 2 1 -0.85952380006467D+00 -0.24530510051346D-16 + 3 10 2 1 -0.42410106084855D+00 0.50802150764175D-16 + 1 11 2 1 -0.55697573728526D+00 -0.14895246521690D-16 + 2 11 2 1 -0.62197027082718D+00 0.45017518649367D-16 + 3 11 2 1 -0.18934180872434D+00 0.23514211121355D-16 + 1 12 2 1 -0.41978367113089D+00 -0.23048679224547D-16 + 2 12 2 1 -0.64781010064714D+00 0.10932096516084D-15 + 3 12 2 1 -0.83092245794469D-01 0.23357125113508D-16 + 1 13 2 1 -0.55215539430885D+00 -0.40178989767220D-16 + 2 13 2 1 -0.11328869476134D+01 -0.18863756468158D-17 + 3 13 2 1 -0.55215539430883D+00 0.20858820691275D-16 + 1 14 2 1 -0.18934180872420D+00 0.38531534271186D-16 + 2 14 2 1 -0.62197027082714D+00 -0.21052147950822D-16 + 3 14 2 1 -0.55697573728524D+00 0.16085967982266D-16 + 1 15 2 1 0.18541425141617D+00 0.83882774453550D-17 + 2 15 2 1 0.37985955713946D+00 -0.54174555846891D-17 + 3 15 2 1 0.18541425141617D+00 0.20708552228028D-16 + 1 1 3 1 0.64194198584032D+01 0.00000000000000D+00 + 2 1 3 1 0.64194198584014D+01 0.00000000000000D+00 + 3 1 3 1 0.12872048392631D+02 0.00000000000000D+00 + 1 2 3 1 -0.30867277300236D+01 0.14870547084889D-17 + 2 2 3 1 -0.30867277300236D+01 0.12878516927799D-17 + 3 2 3 1 -0.62031875271275D+01 0.41168446284446D-18 + 1 3 3 1 -0.17690603636709D+01 -0.24974480967744D-17 + 2 3 3 1 -0.30912055355732D+01 -0.16555581939553D-17 + 3 3 3 1 -0.70310239952054D+00 0.44794878687527D-18 + 1 4 3 1 0.10556545792895D+01 0.10346187339855D-17 + 2 4 3 1 0.23596370641825D+01 0.18567746813537D-17 + 3 4 3 1 -0.72625181519678D+00 0.27903489938926D-17 + 1 5 3 1 -0.30912055355732D+01 0.18988552734125D-17 + 2 5 3 1 -0.17690603636709D+01 -0.27294489357286D-17 + 3 5 3 1 -0.70310239952050D+00 -0.22007249939974D-17 + 1 6 3 1 0.23596370641824D+01 -0.14618171034182D-17 + 2 6 3 1 0.10556545792895D+01 0.69121899742447D-18 + 3 6 3 1 -0.72625181519679D+00 -0.25461574203938D-17 + 1 7 3 1 0.10410477676929D+01 -0.81621740386429D-18 + 2 7 3 1 0.10410477676929D+01 0.63325964959807D-19 + 3 7 3 1 0.21049500663723D+01 -0.11310060230126D-18 + 1 8 3 1 -0.89220685545709D+00 -0.28933672217438D-18 + 2 8 3 1 -0.89220685545704D+00 0.16150944040899D-18 + 3 8 3 1 -0.17657602960332D+01 0.24539209526021D-18 + 1 9 3 1 -0.42410106084853D+00 0.33035903718958D-16 + 2 9 3 1 -0.42410106084849D+00 0.87654403401602D-17 + 3 9 3 1 -0.85952380006457D+00 -0.45922924700911D-16 + 1 10 3 1 -0.83092245794497D-01 0.21390850161492D-16 + 2 10 3 1 -0.41978366990988D+00 0.50802150764175D-16 + 3 10 3 1 -0.64781010064711D+00 -0.16284738070369D-16 + 1 11 3 1 -0.55697573747976D+00 0.23149511688763D-16 + 2 11 3 1 -0.18934180872434D+00 0.23514211121355D-16 + 3 11 3 1 -0.62197027082715D+00 -0.63147679202148D-16 + 1 12 3 1 -0.41978366990992D+00 0.38436912983626D-16 + 2 12 3 1 -0.83092245794469D-01 0.23357125113508D-16 + 3 12 3 1 -0.64781010064717D+00 0.43956528576289D-16 + 1 13 3 1 -0.18934180872422D+00 0.35323763612651D-16 + 2 13 3 1 -0.55697573747977D+00 0.20858820691275D-16 + 3 13 3 1 -0.62197027082714D+00 -0.16298229251848D-16 + 1 14 3 1 -0.55215539430885D+00 0.26596295353884D-16 + 2 14 3 1 -0.55215539430883D+00 0.16085967982266D-16 + 3 14 3 1 -0.11328869476134D+01 0.49896899836656D-16 + 1 15 3 1 0.18541425141620D+00 0.10144168542722D-16 + 2 15 3 1 0.18541425141617D+00 0.20708552228028D-16 + 3 15 3 1 0.37985955713942D+00 0.79216042423716D-17 + 1 1 1 2 -0.70310239952052D+00 0.13802476889220D-18 + 2 1 1 2 -0.17690603636710D+01 -0.27278935811694D-17 + 3 1 1 2 -0.30867277300236D+01 -0.14870547084889D-17 + 1 2 1 2 0.12769891539067D+02 0.00000000000000D+00 + 2 2 1 2 0.66944815748657D+01 0.00000000000000D+00 + 3 2 1 2 0.60498286934935D+01 0.00000000000000D+00 + 1 3 1 2 0.18586429561325D+01 0.45594531483443D-18 + 2 3 1 2 0.10418012750404D+01 0.22512852229915D-18 + 3 3 1 2 0.81661297750627D+00 -0.40957779584557D-18 + 1 4 1 2 -0.76355001377417D+00 -0.15678213773392D-17 + 2 4 1 2 -0.29271506844739D+01 -0.23695007911516D-17 + 3 4 1 2 -0.15759043698886D+01 -0.38751613645084D-17 + 1 5 1 2 -0.76884250901560D+00 0.10098698825759D-17 + 2 5 1 2 0.81662178759459D+00 0.61657285559016D-19 + 3 5 1 2 0.21524362742678D+01 0.00000000000000D+00 + 1 6 1 2 -0.60987752137137D+01 0.88234766166485D-17 + 2 6 1 2 -0.31546500947107D+01 0.15429805975870D-17 + 3 6 1 2 -0.29271594626321D+01 0.32151245686003D-17 + 1 7 1 2 -0.14617659498405D+01 0.21389439961536D-17 + 2 7 1 2 -0.55935118766211D+00 0.55569060398940D-17 + 3 7 1 2 -0.92238761894950D+00 -0.38680374946632D-17 + 1 8 1 2 -0.72625181519670D+00 0.92984016104602D-18 + 2 8 1 2 0.23596370641824D+01 -0.15333267845373D-17 + 3 8 1 2 0.10410477676929D+01 0.78893762327088D-18 + 1 9 1 2 0.29314202400291D+00 -0.27793232010709D-16 + 2 9 1 2 0.99981868476951D-01 -0.83098215679261D-17 + 3 9 1 2 0.44337442938113D-01 -0.21008248476246D-16 + 1 10 1 2 -0.10848070055726D+01 -0.21452638367806D-16 + 2 10 1 2 -0.65482328190454D+00 -0.44924845514226D-16 + 3 10 1 2 -0.62238823728593D+00 0.41963437026849D-17 + 1 11 1 2 -0.46029225366703D+00 -0.10141913327477D-15 + 2 11 1 2 -0.46549951690139D+00 0.37244642419968D-16 + 3 11 1 2 0.19195618335512D-01 0.57060644965434D-17 + 1 12 1 2 -0.84159741228404D+00 -0.22955549259910D-16 + 2 12 1 2 -0.63608944651328D+00 0.31852297233723D-16 + 3 12 1 2 -0.19312936396716D+00 0.28184402361538D-16 + 1 13 1 2 -0.10985456949758D+01 0.50775642612802D-16 + 2 13 1 2 -0.45624853283033D+00 -0.39018462499177D-16 + 3 13 1 2 -0.42097177671494D+00 0.47536151561031D-16 + 1 14 1 2 0.27810191320603D+00 -0.53617737321585D-16 + 2 14 1 2 0.23608132743278D+00 -0.35381328155539D-17 + 3 14 1 2 0.18906932059163D+00 0.48667894941077D-17 + 1 15 1 2 -0.11928698021042D+01 0.12642775544520D-16 + 2 15 1 2 -0.62530705513725D+00 0.32592724639364D-16 + 3 15 1 2 -0.56461314306803D+00 0.34977941063925D-16 + 1 1 2 2 -0.17690603636710D+01 -0.27278935811694D-17 + 2 1 2 2 -0.70310239952050D+00 -0.10574871588912D-17 + 3 1 2 2 -0.30867277300236D+01 -0.12878516927799D-17 + 1 2 2 2 0.66944815748657D+01 0.00000000000000D+00 + 2 2 2 2 0.12769891539067D+02 0.00000000000000D+00 + 3 2 2 2 0.60498293903893D+01 0.00000000000000D+00 + 1 3 2 2 0.81662178759458D+00 0.22512852229915D-18 + 2 3 2 2 -0.76884250901562D+00 -0.36259233561172D-17 + 3 3 2 2 0.21524362742679D+01 0.00000000000000D+00 + 1 4 2 2 -0.31546500947106D+01 -0.23695007911516D-17 + 2 4 2 2 -0.60987752137136D+01 -0.73914492031103D-17 + 3 4 2 2 -0.29271594626320D+01 0.27955298197123D-17 + 1 5 2 2 0.10418012750404D+01 0.61657285559016D-19 + 2 5 2 2 0.18586429561325D+01 0.18490499356979D-18 + 3 5 2 2 0.81661297750623D+00 0.41326716636198D-18 + 1 6 2 2 -0.29271506844740D+01 0.15429805975870D-17 + 2 6 2 2 -0.76355001377415D+00 -0.30605414128115D-17 + 3 6 2 2 -0.15759043698886D+01 -0.94958262926035D-18 + 1 7 2 2 -0.55935118766211D+00 0.55569060398940D-17 + 2 7 2 2 -0.14617659498406D+01 -0.41108251192265D-17 + 3 7 2 2 -0.92238761998785D+00 0.27732588743190D-17 + 1 8 2 2 0.23596370641824D+01 -0.15333267845373D-17 + 2 8 2 2 -0.72625181519686D+00 -0.43830992444155D-18 + 3 8 2 2 0.10410477676929D+01 -0.89461251339988D-18 + 1 9 2 2 0.99981868476951D-01 -0.83098215679261D-17 + 2 9 2 2 0.29314202400288D+00 -0.34065911134111D-16 + 3 9 2 2 0.44337442070124D-01 -0.24936281037487D-16 + 1 10 2 2 -0.63608944651331D+00 -0.44924845514226D-16 + 2 10 2 2 -0.84159741228398D+00 0.96139867816825D-17 + 3 10 2 2 -0.19312936396716D+00 -0.10060201175101D-16 + 1 11 2 2 -0.45624853283046D+00 0.37244642419968D-16 + 2 11 2 2 -0.10985456949757D+01 0.17397293289701D-16 + 3 11 2 2 -0.42097177671504D+00 -0.22140152504591D-16 + 1 12 2 2 -0.65482328190451D+00 0.31852297233723D-16 + 2 12 2 2 -0.10848070055726D+01 0.48083321382453D-16 + 3 12 2 2 -0.62238823728590D+00 0.39818803373815D-16 + 1 13 2 2 -0.46549951690126D+00 -0.39018462499177D-16 + 2 13 2 2 -0.46029225366696D+00 -0.62934648471938D-16 + 3 13 2 2 0.19195618335640D-01 -0.29703671564864D-16 + 1 14 2 2 0.23608132743278D+00 -0.35381328155539D-17 + 2 14 2 2 0.27810191320603D+00 0.42972682806550D-16 + 3 14 2 2 0.18906932059161D+00 -0.14380619516070D-17 + 1 15 2 2 -0.62530705513723D+00 0.32592724639364D-16 + 2 15 2 2 -0.11928698021042D+01 0.13124236264573D-15 + 3 15 2 2 -0.56461314306801D+00 0.41282704841113D-16 + 1 1 3 2 -0.30912055355732D+01 -0.14870547084889D-17 + 2 1 3 2 -0.30912055334052D+01 -0.12878516927799D-17 + 3 1 3 2 -0.62031875271275D+01 -0.41168446284446D-18 + 1 2 3 2 0.60498286934935D+01 0.00000000000000D+00 + 2 2 3 2 0.60498293903893D+01 0.00000000000000D+00 + 3 2 3 2 0.12115251666871D+02 0.00000000000000D+00 + 1 3 3 2 0.10418012896728D+01 -0.40957779584557D-18 + 2 3 3 2 0.23836471638647D+01 0.00000000000000D+00 + 3 3 3 2 -0.76884251070799D+00 0.31504469904437D-17 + 1 4 3 2 -0.18061225193509D+01 -0.38751613645084D-17 + 2 4 3 2 -0.31546500947107D+01 0.27955298197123D-17 + 3 4 3 2 -0.76355001377421D+00 -0.26010168231589D-17 + 1 5 3 2 0.23836471276820D+01 0.00000000000000D+00 + 2 5 3 2 0.10418012750403D+01 0.41326716636198D-18 + 3 5 3 2 -0.76884250901572D+00 -0.27112821442872D-17 + 1 6 3 2 -0.31546500567911D+01 0.32151245686003D-17 + 2 6 3 2 -0.18061225019647D+01 -0.94958262926035D-18 + 3 6 3 2 -0.76355001210133D+00 -0.52750406652674D-17 + 1 7 3 2 -0.92238761894950D+00 -0.38680374946632D-17 + 2 7 3 2 -0.92238761998785D+00 0.27732588743190D-17 + 3 7 3 2 -0.18331810783177D+01 -0.30130554369126D-19 + 1 8 3 2 0.10556545792895D+01 0.78893762327088D-18 + 2 8 3 2 0.10556545808913D+01 -0.89461251339988D-18 + 3 8 3 2 0.21049500663723D+01 0.51744511844559D-18 + 1 9 3 2 0.43841413096716D-01 -0.21008248476246D-16 + 2 9 3 2 0.43841413096707D-01 -0.24936281037487D-16 + 3 9 3 2 0.82488655530296D-01 0.34657520943286D-17 + 1 10 3 2 -0.60857138236851D+00 0.41963437026849D-17 + 2 10 3 2 -0.17291513271994D+00 -0.10060201175101D-16 + 3 10 3 2 -0.60960169887295D+00 0.89838016802785D-16 + 1 11 3 2 0.38716466408142D-02 0.57060644965434D-17 + 2 11 3 2 -0.43293569279119D+00 -0.22140152504591D-16 + 3 11 3 2 -0.61354060965632D+00 -0.13751160335032D-16 + 1 12 3 2 -0.17291513271994D+00 0.28184402361538D-16 + 2 12 3 2 -0.60857138236848D+00 0.39818803373815D-16 + 3 12 3 2 -0.60960169887286D+00 -0.18617157062638D-16 + 1 13 3 2 -0.43293569279109D+00 0.47536151561031D-16 + 2 13 3 2 0.38716466409421D-02 -0.29703671564864D-16 + 3 13 3 2 -0.61354060965615D+00 -0.12889350387540D-16 + 1 14 3 2 0.18267603254338D+00 0.48667894941077D-17 + 2 14 3 2 0.18267603254336D+00 -0.14380619516070D-17 + 3 14 3 2 0.38314099552875D+00 0.47013417907229D-17 + 1 15 3 2 -0.57322368596691D+00 0.34977941063925D-16 + 2 15 3 2 -0.57322368596687D+00 0.41282704841113D-16 + 3 15 3 2 -0.11400878906464D+01 -0.10551633647095D-16 + 1 1 1 3 -0.70310239952049D+00 0.26052294303121D-17 + 2 1 1 3 -0.30867277300234D+01 -0.47088550538568D-18 + 3 1 1 3 -0.17690603636709D+01 0.24974480967744D-17 + 1 2 1 3 0.18586429561325D+01 -0.45594531483443D-18 + 2 2 1 3 0.81662178759458D+00 -0.22512852229915D-18 + 3 2 1 3 0.10418012896728D+01 0.40957779584557D-18 + 1 3 1 3 0.12769891539067D+02 0.00000000000000D+00 + 2 3 1 3 0.60498293903888D+01 0.00000000000000D+00 + 3 3 1 3 0.66944815748652D+01 0.00000000000000D+00 + 1 4 1 3 -0.76355001210134D+00 -0.24663793543353D-18 + 2 4 1 3 -0.15759043698886D+01 0.39283716261700D-17 + 3 4 1 3 -0.29271594626318D+01 0.19491664076212D-17 + 1 5 1 3 -0.76884251070790D+00 -0.22253562675568D-17 + 2 5 1 3 0.21524362742680D+01 0.00000000000000D+00 + 3 5 1 3 0.81661297750632D+00 0.38458736885199D-18 + 1 6 1 3 -0.14617659498405D+01 0.17350223577296D-17 + 2 6 1 3 -0.92238761998788D+00 -0.25562340511032D-17 + 3 6 1 3 -0.55935118766211D+00 -0.54107857583836D-17 + 1 7 1 3 -0.60987752137137D+01 -0.47579217918046D-17 + 2 7 1 3 -0.29271506844740D+01 0.39752554570348D-18 + 3 7 1 3 -0.31546500567910D+01 0.27132963321071D-17 + 1 8 1 3 -0.72625181519672D+00 0.12216944021935D-17 + 2 8 1 3 0.10410477676929D+01 -0.13227270109435D-17 + 3 8 1 3 0.23596370641824D+01 -0.39335559580442D-17 + 1 9 1 3 -0.10848183787486D+01 0.15110563226859D-16 + 2 9 1 3 -0.62238823728610D+00 -0.12512803146008D-16 + 3 9 1 3 -0.65482334318583D+00 0.57391807560257D-17 + 1 10 1 3 0.29314202400287D+00 0.14793142166842D-16 + 2 10 1 3 0.44337442070076D-01 0.20610958216492D-16 + 3 10 1 3 0.99981868476891D-01 0.40486614489183D-16 + 1 11 1 3 -0.46029226104164D+00 0.54599523926917D-19 + 2 11 1 3 0.19195618335512D-01 0.13984574771058D-16 + 3 11 1 3 -0.46549951690115D+00 0.48155244627484D-16 + 1 12 1 3 -0.84163151793083D+00 -0.87229521427628D-16 + 2 12 1 3 -0.19312936396706D+00 0.30047050682864D-16 + 3 12 1 3 -0.63608944651342D+00 0.42040042252460D-16 + 1 13 1 3 0.27810191320605D+00 0.30531355793304D-16 + 2 13 1 3 0.18906932059165D+00 -0.27901902873684D-16 + 3 13 1 3 0.23608259997914D+00 0.11573057626184D-16 + 1 14 1 3 -0.10985456949756D+01 0.21498761760469D-16 + 2 14 1 3 -0.42096307747460D+00 -0.21633673679803D-16 + 3 14 1 3 -0.45624853283022D+00 -0.50395258177981D-16 + 1 15 1 3 -0.11928698021040D+01 0.13771557339268D-15 + 2 15 1 3 -0.56461314306816D+00 0.41108360574497D-16 + 3 15 1 3 -0.62530705513712D+00 0.28349201073906D-16 + 1 1 2 3 -0.30912055334050D+01 -0.47088550538568D-18 + 2 1 2 3 -0.62031875271273D+01 0.38306642674378D-18 + 3 1 2 3 -0.30912055355732D+01 0.16555581939553D-17 + 1 2 2 3 0.10418012750404D+01 -0.22512852229915D-18 + 2 2 2 3 -0.76884251070796D+00 0.36259233561172D-17 + 3 2 2 3 0.23836471638647D+01 0.00000000000000D+00 + 1 3 2 3 0.60498293903888D+01 0.00000000000000D+00 + 2 3 2 3 0.12115251666870D+02 0.00000000000000D+00 + 3 3 2 3 0.60498286934935D+01 0.00000000000000D+00 + 1 4 2 3 -0.18061225019647D+01 0.39283716261700D-17 + 2 4 2 3 -0.76355001210135D+00 0.44312195466130D-17 + 3 4 2 3 -0.31546500947107D+01 -0.48245302499102D-17 + 1 5 2 3 0.23836471638648D+01 0.00000000000000D+00 + 2 5 2 3 -0.76884251070807D+00 0.31720557901354D-17 + 3 5 2 3 0.10418012750404D+01 -0.17548302751575D-18 + 1 6 2 3 -0.92238761998788D+00 -0.25562340511032D-17 + 2 6 2 3 -0.18331810783177D+01 -0.50409884288120D-17 + 3 6 2 3 -0.92238761894948D+00 -0.13534174695082D-17 + 1 7 2 3 -0.31546500947107D+01 0.39752554570348D-18 + 2 7 2 3 -0.76355001210133D+00 -0.38114245208948D-17 + 3 7 2 3 -0.18061225019647D+01 -0.92859231355761D-18 + 1 8 2 3 0.10556545808913D+01 -0.13227270109435D-17 + 2 8 2 3 0.21049500663723D+01 -0.13030162121921D-17 + 3 8 2 3 0.10556545808913D+01 -0.98359538017246D-18 + 1 9 2 3 -0.60856393978611D+00 -0.12512803146008D-16 + 2 9 2 3 -0.60960169887315D+00 0.44717472863128D-16 + 3 9 2 3 -0.17291512216616D+00 -0.40523612666444D-16 + 1 10 2 3 0.43841413096659D-01 0.20610958216492D-16 + 2 10 2 3 0.82488655530243D-01 -0.32301685816625D-16 + 3 10 2 3 0.43841413096634D-01 0.29243251990725D-17 + 1 11 2 3 0.38716888172783D-02 0.13984574771058D-16 + 2 11 2 3 -0.61354060965628D+00 -0.21591874284465D-16 + 3 11 2 3 -0.43293569279103D+00 -0.11711879660147D-17 + 1 12 2 3 -0.17292838111324D+00 0.30047050682864D-16 + 2 12 2 3 -0.60960169887291D+00 -0.12096405943058D-16 + 3 12 2 3 -0.60857138236860D+00 -0.10827384074231D-17 + 1 13 2 3 0.18267603254340D+00 -0.27901902873684D-16 + 2 13 2 3 0.38314099552876D+00 -0.14296303445397D-17 + 3 13 2 3 0.18267754333019D+00 -0.38228316939886D-16 + 1 14 2 3 -0.43293569279098D+00 -0.21633673679803D-16 + 2 14 2 3 -0.61353611708311D+00 0.36732235416566D-16 + 3 14 2 3 0.38716466407573D-02 0.75330945932665D-17 + 1 15 2 3 -0.57322368596703D+00 0.41108360574497D-16 + 2 15 2 3 -0.11400878906466D+01 0.26556039433986D-16 + 3 15 2 3 -0.57322368596701D+00 -0.24649070175696D-16 + 1 1 3 3 -0.17690603636709D+01 0.24974480967744D-17 + 2 1 3 3 -0.30867277300236D+01 0.16555581939553D-17 + 3 1 3 3 -0.70310239952054D+00 -0.44794878687527D-18 + 1 2 3 3 0.81661297750627D+00 0.40957779584557D-18 + 2 2 3 3 0.21524362742679D+01 0.00000000000000D+00 + 3 2 3 3 -0.76884251070799D+00 -0.31504469904437D-17 + 1 3 3 3 0.66944815748652D+01 0.00000000000000D+00 + 2 3 3 3 0.60498286934935D+01 0.00000000000000D+00 + 3 3 3 3 0.12769891539067D+02 0.00000000000000D+00 + 1 4 3 3 -0.31546500567908D+01 0.19491664076212D-17 + 2 4 3 3 -0.29271506844739D+01 -0.48245302499102D-17 + 3 4 3 3 -0.60987752137136D+01 0.11270381669467D-16 + 1 5 3 3 0.10418012896729D+01 0.38458736885199D-18 + 2 5 3 3 0.81662178759458D+00 -0.17548302751575D-18 + 3 5 3 3 0.18586429561325D+01 -0.45976279438335D-18 + 1 6 3 3 -0.55935118766211D+00 -0.54107857583836D-17 + 2 6 3 3 -0.92238761894948D+00 -0.13534174695082D-17 + 3 6 3 3 -0.14617659498406D+01 0.50895164232810D-17 + 1 7 3 3 -0.29271594626320D+01 0.27132963321071D-17 + 2 7 3 3 -0.15759043698886D+01 -0.92859231355761D-18 + 3 7 3 3 -0.76355001210135D+00 -0.40933330687272D-17 + 1 8 3 3 0.23596370641824D+01 -0.39335559580442D-17 + 2 8 3 3 0.10410477676929D+01 -0.98359538017246D-18 + 3 8 3 3 -0.72625181519684D+00 -0.22872701965307D-17 + 1 9 3 3 -0.63608121490152D+00 0.57391807560257D-17 + 2 9 3 3 -0.19312936396717D+00 -0.40523612666444D-16 + 3 9 3 3 -0.84159746553298D+00 0.41524478930748D-16 + 1 10 3 3 0.99981868476891D-01 0.40486614489183D-16 + 2 10 3 3 0.44337442938031D-01 0.29243251990725D-17 + 3 10 3 3 0.29314202400281D+00 0.23909741845536D-16 + 1 11 3 3 -0.45624858574029D+00 0.48155244627484D-16 + 2 11 3 3 -0.42097177671488D+00 -0.11711879660147D-17 + 3 11 3 3 -0.10985456949756D+01 -0.48846548472875D-16 + 1 12 3 3 -0.65482356403875D+00 0.42040042252460D-16 + 2 12 3 3 -0.62238823728602D+00 -0.10827384074231D-17 + 3 12 3 3 -0.10848070055727D+01 0.49259304003862D-16 + 1 13 3 3 0.23608132743281D+00 0.11573057626184D-16 + 2 13 3 3 0.18906932042798D+00 -0.38228316939886D-16 + 3 13 3 3 0.27811111563832D+00 0.75485635450626D-17 + 1 14 3 3 -0.46549951690114D+00 -0.50395258177981D-16 + 2 14 3 3 0.19230536959779D-01 0.75330945932665D-17 + 3 14 3 3 -0.46029225366706D+00 0.20639455125477D-17 + 1 15 3 3 -0.62530705513710D+00 0.28349201073906D-16 + 2 15 3 3 -0.56461314306816D+00 -0.24649070175696D-16 + 3 15 3 3 -0.11928698021042D+01 0.15937535234766D-15 + 1 1 1 4 0.21049500663723D+01 -0.67229585399196D-18 + 2 1 1 4 0.10556545808913D+01 0.36164433367047D-18 + 3 1 1 4 0.10556545808913D+01 -0.10346187339855D-17 + 1 2 1 4 -0.76355001210133D+00 0.15678213773392D-17 + 2 2 1 4 -0.31546500947106D+01 0.23695007911516D-17 + 3 2 1 4 -0.18061225193509D+01 0.38751613645084D-17 + 1 3 1 4 -0.76355001210134D+00 0.24663793543353D-18 + 2 3 1 4 -0.18061225019647D+01 -0.39283716261700D-17 + 3 3 1 4 -0.31546500947106D+01 -0.19491664076212D-17 + 1 4 1 4 0.12115251666868D+02 0.00000000000000D+00 + 2 4 1 4 0.60498293903884D+01 0.00000000000000D+00 + 3 4 1 4 0.60498286934931D+01 0.00000000000000D+00 + 1 5 1 4 -0.18331810783176D+01 0.42984069970231D-17 + 2 5 1 4 -0.92238761998786D+00 0.24757909592603D-17 + 3 5 1 4 -0.92238761894952D+00 0.43356121794480D-17 + 1 6 1 4 -0.76884251070792D+00 -0.59162475583854D-17 + 2 6 1 4 0.23836471638647D+01 0.00000000000000D+00 + 3 6 1 4 0.10418012750404D+01 -0.56917937327316D-18 + 1 7 1 4 -0.76884251070797D+00 0.86464033234679D-18 + 2 7 1 4 0.10418012750404D+01 0.51788241545144D-18 + 3 7 1 4 0.23836471276820D+01 0.00000000000000D+00 + 1 8 1 4 -0.62031875271273D+01 -0.22762523110857D-17 + 2 8 1 4 -0.30912055334051D+01 0.41611404952132D-18 + 3 8 1 4 -0.30912055355732D+01 -0.14044781638243D-17 + 1 9 1 4 -0.60961880299497D+00 -0.18358325922467D-16 + 2 9 1 4 -0.60857138236850D+00 -0.40030168331664D-16 + 3 9 1 4 -0.17292837546367D+00 0.13898621394540D-16 + 1 10 1 4 -0.60960169887296D+00 0.36064798687308D-16 + 2 10 1 4 -0.17292838111325D+00 -0.76649490890715D-18 + 3 10 1 4 -0.60857138236850D+00 0.52147990256139D-16 + 1 11 1 4 0.38314208800278D+00 -0.22690665094628D-16 + 2 11 1 4 0.18267754333017D+00 -0.12857904891372D-17 + 3 11 1 4 0.18267754333018D+00 -0.13533226672563D-16 + 1 12 1 4 0.82488655530296D-01 0.52578636659320D-16 + 2 12 1 4 0.43841413096733D-01 -0.51078972268914D-16 + 3 12 1 4 0.43841413096741D-01 0.20336845461494D-16 + 1 13 1 4 -0.61353611708306D+00 0.34656752481096D-18 + 2 13 1 4 0.38413751369620D-02 0.15630720985914D-16 + 3 13 1 4 -0.43293569279114D+00 -0.23353462503000D-16 + 1 14 1 4 -0.61353611708316D+00 0.37160400570861D-16 + 2 14 1 4 -0.43293569279117D+00 -0.30029201473324D-16 + 3 14 1 4 0.38716466407431D-02 0.44285597900050D-16 + 1 15 1 4 -0.11400878906464D+01 0.70983311805445D-17 + 2 15 1 4 -0.57322368596667D+00 0.12868841284549D-16 + 3 15 1 4 -0.57322368596668D+00 -0.23685052709398D-16 + 1 1 2 4 0.10410477676929D+01 0.36164433367047D-18 + 2 1 2 4 -0.72625181519676D+00 -0.52868713297114D-18 + 3 1 2 4 0.23596370641825D+01 -0.18567746813537D-17 + 1 2 2 4 -0.29271506844739D+01 0.23695007911516D-17 + 2 2 2 4 -0.60987752137136D+01 0.73914492031103D-17 + 3 2 2 4 -0.31546500947107D+01 -0.27955298197123D-17 + 1 3 2 4 -0.15759043698886D+01 -0.39283716261700D-17 + 2 3 2 4 -0.76355001210135D+00 -0.44312195466130D-17 + 3 3 2 4 -0.29271594626320D+01 0.48245302499102D-17 + 1 4 2 4 0.60498293903884D+01 0.00000000000000D+00 + 2 4 2 4 0.12769891539067D+02 0.00000000000000D+00 + 3 4 2 4 0.66944815748657D+01 0.00000000000000D+00 + 1 5 2 4 -0.92238761998786D+00 0.24757909592603D-17 + 2 5 2 4 -0.14617659498405D+01 0.37772531571814D-17 + 3 5 2 4 -0.55935118766208D+00 0.51722607649532D-17 + 1 6 2 4 0.21524362742679D+01 0.00000000000000D+00 + 2 6 2 4 -0.76884251070805D+00 -0.23160825107479D-17 + 3 6 2 4 0.81661297750625D+00 0.64405886800304D-18 + 1 7 2 4 0.81662178759458D+00 0.51788241545144D-18 + 2 7 2 4 0.18586429561325D+01 0.10946214638354D-18 + 3 7 2 4 0.10418012750403D+01 0.00000000000000D+00 + 1 8 2 4 -0.30867277300235D+01 0.41611404952132D-18 + 2 8 2 4 -0.70310239952048D+00 0.16792782559435D-17 + 3 8 2 4 -0.17690603636710D+01 -0.35312543952328D-18 + 1 9 2 4 -0.62239274888965D+00 -0.40030168331664D-16 + 2 9 2 4 -0.10848070055726D+01 -0.46641390418345D-16 + 3 9 2 4 -0.65482363142220D+00 -0.30134191318404D-16 + 1 10 2 4 -0.19312936396707D+00 -0.76649490890715D-18 + 2 10 2 4 -0.84163151793072D+00 0.20263253770541D-16 + 3 10 2 4 -0.63608944651325D+00 -0.31235704256549D-16 + 1 11 2 4 0.18907026610027D+00 -0.12857904891372D-17 + 2 11 2 4 0.27811111563823D+00 0.37061251719428D-16 + 3 11 2 4 0.23608259997910D+00 -0.22799342178521D-16 + 1 12 2 4 0.44337442070150D-01 -0.51078972268914D-16 + 2 12 2 4 0.29314202400291D+00 -0.46924612468858D-16 + 3 12 2 4 0.99981868476957D-01 -0.48930832916994D-16 + 1 13 2 4 0.19230536959935D-01 0.15630720985914D-16 + 2 13 2 4 -0.46031685139057D+00 0.31173170962328D-16 + 3 13 2 4 -0.46549951690128D+00 -0.40965395628261D-16 + 1 14 2 4 -0.42096307747479D+00 -0.30029201473324D-16 + 2 14 2 4 -0.10985456949756D+01 -0.43628558450947D-16 + 3 14 2 4 -0.45624853283036D+00 0.31688310401751D-16 + 1 15 2 4 -0.56461314306781D+00 0.12868841284549D-16 + 2 15 2 4 -0.11928698021041D+01 -0.33045289977248D-17 + 3 15 2 4 -0.62530705513729D+00 -0.45724906021097D-17 + 1 1 3 4 0.10410477676929D+01 -0.10346187339855D-17 + 2 1 3 4 0.23596370641825D+01 -0.18567746813537D-17 + 3 1 3 4 -0.72625181519678D+00 -0.27903489938926D-17 + 1 2 3 4 -0.15759043698886D+01 0.38751613645084D-17 + 2 2 3 4 -0.29271594626320D+01 -0.27955298197123D-17 + 3 2 3 4 -0.76355001377421D+00 0.26010168231589D-17 + 1 3 3 4 -0.29271506844738D+01 -0.19491664076212D-17 + 2 3 3 4 -0.31546500567909D+01 0.48245302499102D-17 + 3 3 3 4 -0.60987752137136D+01 -0.11270381669467D-16 + 1 4 3 4 0.60498286934931D+01 0.00000000000000D+00 + 2 4 3 4 0.66944815748657D+01 0.00000000000000D+00 + 3 4 3 4 0.12769891539067D+02 0.00000000000000D+00 + 1 5 3 4 -0.92238761894952D+00 0.43356121794480D-17 + 2 5 3 4 -0.55935118766208D+00 0.51722607649532D-17 + 3 5 3 4 -0.14617659498405D+01 0.16496173575194D-16 + 1 6 3 4 0.81662178759461D+00 -0.56917937327316D-18 + 2 6 3 4 0.10418012896728D+01 0.64405886800304D-18 + 3 6 3 4 0.18586429561325D+01 -0.33018722106899D-18 + 1 7 3 4 0.21524362742678D+01 0.00000000000000D+00 + 2 7 3 4 0.81661297750623D+00 0.00000000000000D+00 + 3 7 3 4 -0.76884250901571D+00 -0.37114677007773D-17 + 1 8 3 4 -0.30867277300236D+01 -0.14044781638243D-17 + 2 8 3 4 -0.17690603636710D+01 -0.35312543952328D-18 + 3 8 3 4 -0.70310239952051D+00 0.00000000000000D+00 + 1 9 3 4 -0.19312906711287D+00 0.13898621394540D-16 + 2 9 3 4 -0.63608944651325D+00 -0.30134191318404D-16 + 3 9 3 4 -0.84163157970562D+00 0.14672768702279D-16 + 1 10 3 4 -0.62238823728592D+00 0.52147990256139D-16 + 2 10 3 4 -0.65482356403858D+00 -0.31235704256549D-16 + 3 10 3 4 -0.10848070055726D+01 0.12299836434769D-16 + 1 11 3 4 0.18907026628405D+00 -0.13533226672563D-16 + 2 11 3 4 0.23608259997910D+00 -0.22799342178521D-16 + 3 11 3 4 0.27811111563823D+00 0.36760576990738D-16 + 1 12 3 4 0.44337442938138D-01 0.20336845461494D-16 + 2 12 3 4 0.99981868476957D-01 -0.48930832916994D-16 + 3 12 3 4 0.29314202400290D+00 0.43447726926906D-17 + 1 13 3 4 -0.42096307747476D+00 -0.23353462503000D-16 + 2 13 3 4 -0.45625573160752D+00 -0.40965395628261D-16 + 3 13 3 4 -0.10985456949757D+01 0.18405047823921D-16 + 1 14 3 4 0.19230536959765D-01 0.44285597900050D-16 + 2 14 3 4 -0.46549951690129D+00 0.31688310401751D-16 + 3 14 3 4 -0.46029225366705D+00 0.43555465543515D-16 + 1 15 3 4 -0.56461314306783D+00 -0.23685052709398D-16 + 2 15 3 4 -0.62530705513729D+00 -0.45724906021097D-17 + 3 15 3 4 -0.11928698021040D+01 -0.89056494209049D-16 + 1 1 1 5 -0.62031875271275D+01 -0.16334027345906D-18 + 2 1 1 5 -0.30912055334051D+01 0.23089119933653D-17 + 3 1 1 5 -0.30912055355732D+01 -0.18988552734125D-17 + 1 2 1 5 -0.76884251070793D+00 -0.10098698825759D-17 + 2 2 1 5 0.10418012750404D+01 -0.61657285559016D-19 + 3 2 1 5 0.23836471276820D+01 0.00000000000000D+00 + 1 3 1 5 -0.76884251070790D+00 0.22253562675568D-17 + 2 3 1 5 0.23836471638648D+01 0.00000000000000D+00 + 3 3 1 5 0.10418012750404D+01 -0.38458736885199D-18 + 1 4 1 5 -0.18331810783176D+01 -0.42984069970231D-17 + 2 4 1 5 -0.92238761998786D+00 -0.24757909592603D-17 + 3 4 1 5 -0.92238761894952D+00 -0.43356121794480D-17 + 1 5 1 5 0.12115251666870D+02 0.00000000000000D+00 + 2 5 1 5 0.60498293903893D+01 0.00000000000000D+00 + 3 5 1 5 0.60498286934931D+01 0.00000000000000D+00 + 1 6 1 5 -0.76355001210133D+00 0.11842095198736D-17 + 2 6 1 5 -0.18061225019647D+01 -0.36395452974066D-17 + 3 6 1 5 -0.31546500947106D+01 0.30101079566333D-17 + 1 7 1 5 -0.76355001210133D+00 0.76887331145675D-18 + 2 7 1 5 -0.31546500947105D+01 -0.36839860432117D-17 + 3 7 1 5 -0.18061225193508D+01 -0.22408303314698D-17 + 1 8 1 5 0.21049500663723D+01 0.95520838089695D-18 + 2 8 1 5 0.10556545808913D+01 0.59056579755081D-18 + 3 8 1 5 0.10556545808914D+01 -0.13504039657738D-17 + 1 9 1 5 -0.60960169887306D+00 0.18289495996093D-16 + 2 9 1 5 -0.60857138236853D+00 0.38784137292664D-16 + 3 9 1 5 -0.17291513271995D+00 -0.14506087011700D-16 + 1 10 1 5 -0.60960169887279D+00 -0.14249003972979D-15 + 2 10 1 5 -0.17292838111321D+00 0.23025171327481D-17 + 3 10 1 5 -0.60857138236862D+00 -0.51872683353006D-16 + 1 11 1 5 0.38314099552874D+00 0.22190426423968D-16 + 2 11 1 5 0.18267603254333D+00 0.11395007180859D-18 + 3 11 1 5 0.18267754333011D+00 0.13202273479898D-16 + 1 12 1 5 0.82488655530246D-01 0.51094817265236D-16 + 2 12 1 5 0.43841413096646D-01 0.47742855228275D-16 + 3 12 1 5 0.43841413096646D-01 -0.23375840778701D-16 + 1 13 1 5 -0.61353611708311D+00 0.18153878283235D-17 + 2 13 1 5 0.38413751368199D-02 -0.13278139881464D-16 + 3 13 1 5 -0.43293569279102D+00 0.25081841766247D-16 + 1 14 1 5 -0.61353611708296D+00 -0.14366365404572D-15 + 2 14 1 5 -0.43293569279092D+00 0.29840319800345D-16 + 3 14 1 5 0.38716466409705D-02 -0.43256444774144D-16 + 1 15 1 5 -0.11400878906468D+01 -0.79843867385407D-17 + 2 15 1 5 -0.57322368596704D+00 -0.10145935268042D-16 + 3 15 1 5 -0.57322368596704D+00 0.26152696818122D-16 + 1 1 2 5 -0.30867277300235D+01 0.23089119933653D-17 + 2 1 2 5 -0.70310239952047D+00 0.17850895209804D-17 + 3 1 2 5 -0.17690603636709D+01 0.27294489357286D-17 + 1 2 2 5 0.81662178759459D+00 -0.61657285559016D-19 + 2 2 2 5 0.18586429561325D+01 -0.18490499356979D-18 + 3 2 2 5 0.10418012750403D+01 -0.41326716636198D-18 + 1 3 2 5 0.21524362742680D+01 0.00000000000000D+00 + 2 3 2 5 -0.76884251070807D+00 -0.31720557901354D-17 + 3 3 2 5 0.81661297750628D+00 0.17548302751575D-18 + 1 4 2 5 -0.92238761998786D+00 -0.24757909592603D-17 + 2 4 2 5 -0.14617659498405D+01 -0.37772531571814D-17 + 3 4 2 5 -0.55935118766208D+00 -0.51722607649532D-17 + 1 5 2 5 0.60498293903893D+01 0.00000000000000D+00 + 2 5 2 5 0.12769891539067D+02 0.00000000000000D+00 + 3 5 2 5 0.66944815748652D+01 0.00000000000000D+00 + 1 6 2 5 -0.15759043698886D+01 -0.36395452974066D-17 + 2 6 2 5 -0.76355001210135D+00 0.11660608623399D-17 + 3 6 2 5 -0.29271594626320D+01 -0.15975040851101D-17 + 1 7 2 5 -0.29271506844738D+01 -0.36839860432117D-17 + 2 7 2 5 -0.60987752137134D+01 -0.23433640026415D-17 + 3 7 2 5 -0.31546500947106D+01 0.15865487829138D-17 + 1 8 2 5 0.10410477676929D+01 0.59056579755081D-18 + 2 8 2 5 -0.72625181519682D+00 0.37342326889312D-17 + 3 8 2 5 0.23596370641825D+01 0.32348917865593D-17 + 1 9 2 5 -0.62238823728595D+00 0.38784137292664D-16 + 2 9 2 5 -0.10848070055726D+01 0.43664748578107D-16 + 3 9 2 5 -0.65482328190456D+00 0.28556155464386D-16 + 1 10 2 5 -0.19312936396703D+00 0.23025171327481D-17 + 2 10 2 5 -0.84163151793083D+00 -0.17351196907166D-16 + 3 10 2 5 -0.63608944651340D+00 0.32095815613859D-16 + 1 11 2 5 0.18906932059158D+00 0.11395007180859D-18 + 2 11 2 5 0.27810191320595D+00 -0.39575885247256D-16 + 3 11 2 5 0.23608259997906D+00 0.21794940488307D-16 + 1 12 2 5 0.44337442070063D-01 0.47742855228275D-16 + 2 12 2 5 0.29314202400286D+00 0.42728730258434D-16 + 3 12 2 5 0.99981868476866D-01 0.45797037732388D-16 + 1 13 2 5 0.19230536959793D-01 -0.13278139881464D-16 + 2 13 2 5 -0.46031685139059D+00 -0.13511136428095D-15 + 3 13 2 5 -0.46549951690109D+00 0.43186652201727D-16 + 1 14 2 5 -0.42096307747454D+00 0.29840319800345D-16 + 2 14 2 5 -0.10985456949757D+01 0.41802634601698D-16 + 3 14 2 5 -0.45624853283009D+00 -0.31634652181788D-16 + 1 15 2 5 -0.56461314306818D+00 -0.10145935268042D-16 + 2 15 2 5 -0.11928698021040D+01 0.10301226852798D-16 + 3 15 2 5 -0.62530705513702D+00 0.96781155843124D-17 + 1 1 3 5 -0.30867277300236D+01 -0.18988552734125D-17 + 2 1 3 5 -0.17690603636709D+01 0.27294489357286D-17 + 3 1 3 5 -0.70310239952050D+00 0.22007249939974D-17 + 1 2 3 5 0.21524362742678D+01 0.00000000000000D+00 + 2 2 3 5 0.81661297750623D+00 -0.41326716636198D-18 + 3 2 3 5 -0.76884250901572D+00 0.27112821442872D-17 + 1 3 3 5 0.81662178759462D+00 -0.38458736885199D-18 + 2 3 3 5 0.10418012896729D+01 0.17548302751575D-18 + 3 3 3 5 0.18586429561325D+01 0.45976279438335D-18 + 1 4 3 5 -0.92238761894952D+00 -0.43356121794480D-17 + 2 4 3 5 -0.55935118766208D+00 -0.51722607649532D-17 + 3 4 3 5 -0.14617659498405D+01 -0.16496173575194D-16 + 1 5 3 5 0.60498286934931D+01 0.00000000000000D+00 + 2 5 3 5 0.66944815748652D+01 0.00000000000000D+00 + 3 5 3 5 0.12769891539066D+02 0.00000000000000D+00 + 1 6 3 5 -0.29271506844739D+01 0.30101079566333D-17 + 2 6 3 5 -0.31546500567910D+01 -0.15975040851101D-17 + 3 6 3 5 -0.60987752137138D+01 0.11438299470270D-16 + 1 7 3 5 -0.15759043698886D+01 -0.22408303314698D-17 + 2 7 3 5 -0.29271594626319D+01 0.15865487829138D-17 + 3 7 3 5 -0.76355001377421D+00 0.14581066115134D-18 + 1 8 3 5 0.10410477676929D+01 -0.13504039657738D-17 + 2 8 3 5 0.23596370641825D+01 0.32348917865593D-17 + 3 8 3 5 -0.72625181519670D+00 -0.12974036418880D-17 + 1 9 3 5 -0.19312936396717D+00 -0.14506087011700D-16 + 2 9 3 5 -0.63608944651333D+00 0.28556155464386D-16 + 3 9 3 5 -0.84159741228404D+00 0.91845681876179D-16 + 1 10 3 5 -0.62238823728605D+00 -0.51872683353006D-16 + 2 10 3 5 -0.65482356403873D+00 0.32095815613859D-16 + 3 10 3 5 -0.10848070055727D+01 -0.13171567128919D-16 + 1 11 3 5 0.18906932042790D+00 0.13202273479898D-16 + 2 11 3 5 0.23608132743272D+00 0.21794940488307D-16 + 3 11 3 5 0.27811111563829D+00 -0.36752959229009D-16 + 1 12 3 5 0.44337442938043D-01 -0.23375840778701D-16 + 2 12 3 5 0.99981868476866D-01 0.45797037732388D-16 + 3 12 3 5 0.29314202400280D+00 -0.76591390161354D-17 + 1 13 3 5 -0.42096307747464D+00 0.25081841766247D-16 + 2 13 3 5 -0.45625573160732D+00 0.43186652201727D-16 + 3 13 3 5 -0.10985456949755D+01 -0.16644247893056D-16 + 1 14 3 5 0.19230536959992D-01 -0.43256444774144D-16 + 2 14 3 5 -0.46549951690102D+00 -0.31634652181788D-16 + 3 14 3 5 -0.46029225366683D+00 -0.41753549811839D-16 + 1 15 3 5 -0.56461314306819D+00 0.26152696818122D-16 + 2 15 3 5 -0.62530705513702D+00 0.96781155843124D-17 + 3 15 3 5 -0.11928698021040D+01 -0.11985579139334D-15 + 1 1 1 6 -0.72625181519673D+00 0.18056952288244D-17 + 2 1 1 6 0.10410477676929D+01 -0.37140972485255D-18 + 3 1 1 6 0.23596370641824D+01 0.14618171034182D-17 + 1 2 1 6 -0.60987752137137D+01 -0.88234766166485D-17 + 2 2 1 6 -0.29271506844740D+01 -0.15429805975870D-17 + 3 2 1 6 -0.31546500567911D+01 -0.32151245686003D-17 + 1 3 1 6 -0.14617659498405D+01 -0.17350223577296D-17 + 2 3 1 6 -0.92238761998788D+00 0.25562340511032D-17 + 3 3 1 6 -0.55935118766211D+00 0.54107857583836D-17 + 1 4 1 6 -0.76884251070792D+00 0.59162475583854D-17 + 2 4 1 6 0.21524362742679D+01 0.00000000000000D+00 + 3 4 1 6 0.81661297750631D+00 0.56917937327316D-18 + 1 5 1 6 -0.76355001210133D+00 -0.11842095198736D-17 + 2 5 1 6 -0.15759043698886D+01 0.36395452974066D-17 + 3 5 1 6 -0.29271594626319D+01 -0.30101079566333D-17 + 1 6 1 6 0.12769891539067D+02 0.00000000000000D+00 + 2 6 1 6 0.60498293903897D+01 0.00000000000000D+00 + 3 6 1 6 0.66944815748657D+01 0.00000000000000D+00 + 1 7 1 6 0.18586429561324D+01 -0.51877747346563D-18 + 2 7 1 6 0.81662178759454D+00 -0.36136866553667D-18 + 3 7 1 6 0.10418012896728D+01 -0.35672307581564D-18 + 1 8 1 6 -0.70310239952049D+00 -0.27681242464046D-17 + 2 8 1 6 -0.30867277300234D+01 0.20080486900480D-17 + 3 8 1 6 -0.17690603636709D+01 -0.17563539297987D-17 + 1 9 1 6 -0.10848070055727D+01 -0.15502446365749D-16 + 2 9 1 6 -0.62238823728607D+00 0.11506567582546D-16 + 3 9 1 6 -0.65482356403876D+00 -0.66497956833833D-17 + 1 10 1 6 0.29314202400285D+00 -0.14345741103664D-16 + 2 10 1 6 0.44337442070072D-01 -0.19962876888109D-16 + 3 10 1 6 0.99981868476903D-01 -0.40530038793963D-16 + 1 11 1 6 -0.46031685139059D+00 -0.25306105470415D-18 + 2 11 1 6 0.19230536959836D-01 -0.14425371053536D-16 + 3 11 1 6 -0.46549951690108D+00 -0.47932031292641D-16 + 1 12 1 6 -0.84163151793063D+00 0.89000837696778D-16 + 2 12 1 6 -0.19312936396707D+00 -0.29955867350497D-16 + 3 12 1 6 -0.63608944651333D+00 -0.41826562974204D-16 + 1 13 1 6 0.27810191320601D+00 -0.29800286095800D-16 + 2 13 1 6 0.18906932059162D+00 0.29006631819349D-16 + 3 13 1 6 0.23608259997911D+00 -0.10524962368674D-16 + 1 14 1 6 -0.10985456949757D+01 -0.21464648167418D-16 + 2 14 1 6 -0.42096307747473D+00 0.21321008441396D-16 + 3 14 1 6 -0.45624853283030D+00 0.50755220712140D-16 + 1 15 1 6 -0.11928698021042D+01 -0.13413880164331D-15 + 2 15 1 6 -0.56461314306789D+00 -0.39399679971494D-16 + 3 15 1 6 -0.62530705513732D+00 -0.25111000358602D-16 + 1 1 2 6 0.10556545808913D+01 -0.37140972485255D-18 + 2 1 2 6 0.21049500663723D+01 0.11154779743718D-17 + 3 1 2 6 0.10556545808913D+01 -0.69121899742447D-18 + 1 2 2 6 -0.31546500947107D+01 -0.15429805975870D-17 + 2 2 2 6 -0.76355001210131D+00 0.30605414128115D-17 + 3 2 2 6 -0.18061225019647D+01 0.94958262926035D-18 + 1 3 2 6 -0.92238761998788D+00 0.25562340511032D-17 + 2 3 2 6 -0.18331810783177D+01 0.50409884288120D-17 + 3 3 2 6 -0.92238761894948D+00 0.13534174695082D-17 + 1 4 2 6 0.23836471638647D+01 0.00000000000000D+00 + 2 4 2 6 -0.76884251070805D+00 0.23160825107479D-17 + 3 4 2 6 0.10418012750404D+01 -0.64405886800304D-18 + 1 5 2 6 -0.18061225019647D+01 0.36395452974066D-17 + 2 5 2 6 -0.76355001210135D+00 -0.11660608623399D-17 + 3 5 2 6 -0.31546500947107D+01 0.15975040851101D-17 + 1 6 2 6 0.60498293903897D+01 0.00000000000000D+00 + 2 6 2 6 0.12115251666870D+02 0.00000000000000D+00 + 3 6 2 6 0.60498286934931D+01 0.00000000000000D+00 + 1 7 2 6 0.10418012750403D+01 -0.36136866553667D-18 + 2 7 2 6 -0.76884251070797D+00 0.20510109578875D-17 + 3 7 2 6 0.23836471638646D+01 0.00000000000000D+00 + 1 8 2 6 -0.30912055334050D+01 0.20080486900480D-17 + 2 8 2 6 -0.62031875271273D+01 -0.20953728574212D-17 + 3 8 2 6 -0.30912055355731D+01 0.43652813588636D-18 + 1 9 2 6 -0.60857138236865D+00 0.11506567582546D-16 + 2 9 2 6 -0.60960169887298D+00 -0.46674579874095D-16 + 3 9 2 6 -0.17292838111325D+00 0.39089341359925D-16 + 1 10 2 6 0.43841413096655D-01 -0.19962876888109D-16 + 2 10 2 6 0.82488655530278D-01 0.33619111751659D-16 + 3 10 2 6 0.43841413096646D-01 -0.26755524714501D-17 + 1 11 2 6 0.38413751368625D-02 -0.14425371053536D-16 + 2 11 2 6 -0.61353611708296D+00 0.12811119712556D-15 + 3 11 2 6 -0.43293569279090D+00 0.11050770170372D-17 + 1 12 2 6 -0.17292838111325D+00 -0.29955867350497D-16 + 2 12 2 6 -0.60960169887299D+00 0.10705263836463D-16 + 3 12 2 6 -0.60857138236851D+00 0.24069691967200D-18 + 1 13 2 6 0.18267603254337D+00 0.29006631819349D-16 + 2 13 2 6 0.38314099552876D+00 0.32931687312281D-17 + 3 13 2 6 0.18267754333016D+00 0.39654380549831D-16 + 1 14 2 6 -0.43293569279112D+00 0.21321008441396D-16 + 2 14 2 6 -0.61353611708306D+00 -0.37719990827749D-16 + 3 14 2 6 0.38716466408710D-02 -0.75186797858757D-17 + 1 15 2 6 -0.57322368596676D+00 -0.39399679971494D-16 + 2 15 2 6 -0.11400878906463D+01 -0.26420380308877D-16 + 3 15 2 6 -0.57322368596671D+00 0.26735719103047D-16 + 1 1 3 6 0.23596370641824D+01 0.14618171034182D-17 + 2 1 3 6 0.10410477676929D+01 -0.69121899742447D-18 + 3 1 3 6 -0.72625181519679D+00 0.25461574203938D-17 + 1 2 3 6 -0.29271594626321D+01 -0.32151245686003D-17 + 2 2 3 6 -0.15759043698886D+01 0.94958262926035D-18 + 3 2 3 6 -0.76355001210133D+00 0.52750406652674D-17 + 1 3 3 6 -0.55935118766211D+00 0.54107857583836D-17 + 2 3 3 6 -0.92238761894948D+00 0.13534174695082D-17 + 3 3 3 6 -0.14617659498406D+01 -0.50895164232810D-17 + 1 4 3 6 0.10418012896729D+01 0.56917937327316D-18 + 2 4 3 6 0.81662178759455D+00 -0.64405886800304D-18 + 3 4 3 6 0.18586429561325D+01 0.33018722106899D-18 + 1 5 3 6 -0.31546500567909D+01 -0.30101079566333D-17 + 2 5 3 6 -0.29271506844740D+01 0.15975040851101D-17 + 3 5 3 6 -0.60987752137138D+01 -0.11438299470270D-16 + 1 6 3 6 0.66944815748657D+01 0.00000000000000D+00 + 2 6 3 6 0.60498286934931D+01 0.00000000000000D+00 + 3 6 3 6 0.12769891539067D+02 0.00000000000000D+00 + 1 7 3 6 0.81661297750626D+00 -0.35672307581564D-18 + 2 7 3 6 0.21524362742678D+01 0.00000000000000D+00 + 3 7 3 6 -0.76884251070791D+00 -0.24076465116906D-18 + 1 8 3 6 -0.17690603636709D+01 -0.17563539297987D-17 + 2 8 3 6 -0.30867277300235D+01 0.43652813588636D-18 + 3 8 3 6 -0.70310239952054D+00 0.19518967017129D-17 + 1 9 3 6 -0.63608944651343D+00 -0.66497956833833D-17 + 2 9 3 6 -0.19312936396707D+00 0.39089341359925D-16 + 3 9 3 6 -0.84163151793080D+00 -0.43190209739212D-16 + 1 10 3 6 0.99981868476903D-01 -0.40530038793963D-16 + 2 10 3 6 0.44337442938043D-01 -0.26755524714501D-17 + 3 10 3 6 0.29314202400283D+00 -0.24659035403288D-16 + 1 11 3 6 -0.45625573160732D+00 -0.47932031292641D-16 + 2 11 3 6 -0.42096307747452D+00 0.11050770170372D-17 + 3 11 3 6 -0.10985456949756D+01 0.49778503907897D-16 + 1 12 3 6 -0.65482356403866D+00 -0.41826562974204D-16 + 2 12 3 6 -0.62238823728593D+00 0.24069691967200D-18 + 3 12 3 6 -0.10848070055726D+01 -0.50285199783796D-16 + 1 13 3 6 0.23608132743278D+00 -0.10524962368674D-16 + 2 13 3 6 0.18906932042795D+00 0.39654380549831D-16 + 3 13 3 6 0.27811111563823D+00 -0.58434353753754D-17 + 1 14 3 6 -0.46549951690123D+00 0.50755220712140D-16 + 2 14 3 6 0.19230536959892D-01 -0.75186797858757D-17 + 3 14 3 6 -0.46029225366695D+00 -0.10861854885493D-15 + 1 15 3 6 -0.62530705513730D+00 -0.25111000358602D-16 + 2 15 3 6 -0.56461314306786D+00 0.26735719103047D-16 + 3 15 3 6 -0.11928698021040D+01 -0.15465564702941D-15 + 1 1 1 7 -0.72625181519674D+00 0.13182358437745D-17 + 2 1 1 7 0.23596370641824D+01 0.20677720617048D-17 + 3 1 1 7 0.10410477676929D+01 0.81621740386429D-18 + 1 2 1 7 -0.14617659498405D+01 -0.21389439961536D-17 + 2 2 1 7 -0.55935118766211D+00 -0.55569060398940D-17 + 3 2 1 7 -0.92238761894950D+00 0.38680374946632D-17 + 1 3 1 7 -0.60987752137137D+01 0.47579217918046D-17 + 2 3 1 7 -0.31546500947107D+01 -0.39752554570348D-18 + 3 3 1 7 -0.29271594626320D+01 -0.27132963321071D-17 + 1 4 1 7 -0.76884250901563D+00 -0.86464033234679D-18 + 2 4 1 7 0.81662178759458D+00 -0.51788241545144D-18 + 3 4 1 7 0.21524362742678D+01 0.00000000000000D+00 + 1 5 1 7 -0.76355001377417D+00 -0.76887331145675D-18 + 2 5 1 7 -0.29271506844738D+01 0.36839860432117D-17 + 3 5 1 7 -0.15759043698886D+01 0.22408303314698D-17 + 1 6 1 7 0.18586429561324D+01 0.51877747346563D-18 + 2 6 1 7 0.10418012750403D+01 0.36136866553667D-18 + 3 6 1 7 0.81661297750626D+00 0.35672307581564D-18 + 1 7 1 7 0.12769891539066D+02 0.00000000000000D+00 + 2 7 1 7 0.66944815748652D+01 0.00000000000000D+00 + 3 7 1 7 0.60498286934935D+01 0.00000000000000D+00 + 1 8 1 7 -0.70310239952051D+00 0.23418380408854D-17 + 2 8 1 7 -0.17690603636710D+01 0.58215817045702D-18 + 3 8 1 7 -0.30867277300236D+01 0.10847457240967D-17 + 1 9 1 7 0.29314198200422D+00 0.31647183060882D-16 + 2 9 1 7 0.99981868476895D-01 0.11343610014312D-16 + 3 9 1 7 0.44333436968079D-01 0.24556664732735D-16 + 1 10 1 7 -0.10848070055727D+01 0.23302903244046D-16 + 2 10 1 7 -0.65482328190467D+00 0.45229585138187D-16 + 3 10 1 7 -0.62238823728605D+00 -0.39392092634559D-17 + 1 11 1 7 -0.46031686405089D+00 -0.88199432206929D-17 + 2 11 1 7 -0.46549983032893D+00 -0.38600721858497D-16 + 3 11 1 7 0.19195618335498D-01 -0.82768955584434D-17 + 1 12 1 7 -0.84159741228401D+00 -0.83873219617726D-16 + 2 12 1 7 -0.63608944651340D+00 -0.31008716771190D-16 + 3 12 1 7 -0.19312936396697D+00 -0.28113584556508D-16 + 1 13 1 7 -0.10985456949756D+01 -0.50347145135128D-16 + 2 13 1 7 -0.45624853283019D+00 0.38319005624268D-16 + 3 13 1 7 -0.42097177671491D+00 -0.48860220678850D-16 + 1 14 1 7 0.27810191320602D+00 -0.51733310350785D-16 + 2 14 1 7 0.23608132743278D+00 0.52305132082989D-17 + 3 14 1 7 0.18906932059164D+00 -0.31998532686705D-17 + 1 15 1 7 -0.11928698021040D+01 -0.11345625420494D-16 + 2 15 1 7 -0.62530705513705D+00 -0.31521493665778D-16 + 3 15 1 7 -0.56461314306801D+00 -0.34935145210761D-16 + 1 1 2 7 0.23596370641824D+01 0.20677720617048D-17 + 2 1 2 7 -0.72625181519681D+00 0.64128054969206D-18 + 3 1 2 7 0.10410477676929D+01 -0.63325964959807D-19 + 1 2 2 7 -0.55935118766211D+00 -0.55569060398940D-17 + 2 2 2 7 -0.14617659498406D+01 0.41108251192265D-17 + 3 2 2 7 -0.92238761998785D+00 -0.27732588743190D-17 + 1 3 2 7 -0.29271506844740D+01 -0.39752554570348D-18 + 2 3 2 7 -0.76355001377417D+00 0.38114245208948D-17 + 3 3 2 7 -0.15759043698886D+01 0.92859231355761D-18 + 1 4 2 7 0.10418012750404D+01 -0.51788241545144D-18 + 2 4 2 7 0.18586429561325D+01 -0.10946214638354D-18 + 3 4 2 7 0.81661297750623D+00 0.00000000000000D+00 + 1 5 2 7 -0.31546500947105D+01 0.36839860432117D-17 + 2 5 2 7 -0.60987752137134D+01 0.23433640026415D-17 + 3 5 2 7 -0.29271594626319D+01 -0.15865487829138D-17 + 1 6 2 7 0.81662178759454D+00 0.36136866553667D-18 + 2 6 2 7 -0.76884250901564D+00 -0.20510109578875D-17 + 3 6 2 7 0.21524362742678D+01 0.00000000000000D+00 + 1 7 2 7 0.66944815748652D+01 0.00000000000000D+00 + 2 7 2 7 0.12769891539066D+02 0.00000000000000D+00 + 3 7 2 7 0.60498293903893D+01 0.00000000000000D+00 + 1 8 2 7 -0.17690603636710D+01 0.58215817045702D-18 + 2 8 2 7 -0.70310239952052D+00 -0.16615104346834D-17 + 3 8 2 7 -0.30867277300236D+01 0.10317865160491D-17 + 1 9 2 7 0.99981448692544D-01 0.11343610014312D-16 + 2 9 2 7 0.29314202400281D+00 0.37329927703786D-16 + 3 9 2 7 0.44333438467530D-01 0.28288941610106D-16 + 1 10 2 7 -0.63608944651345D+00 0.45229585138187D-16 + 2 10 2 7 -0.84159741228414D+00 -0.10531385812943D-16 + 3 10 2 7 -0.19312936396717D+00 0.93947810265687D-17 + 1 11 2 7 -0.45625578571285D+00 -0.38600721858497D-16 + 2 11 2 7 -0.10985386536821D+01 -0.17666662473000D-16 + 3 11 2 7 -0.42097177671471D+00 0.20363013793285D-16 + 1 12 2 7 -0.65482328190462D+00 -0.31008716771190D-16 + 2 12 2 7 -0.10848070055727D+01 -0.46556443021548D-16 + 3 12 2 7 -0.62238823728600D+00 -0.39488619651060D-16 + 1 13 2 7 -0.46549951690112D+00 0.38319005624268D-16 + 2 13 2 7 -0.46029225366703D+00 -0.46352940848265D-16 + 3 13 2 7 0.19195618335512D-01 0.27667167148882D-16 + 1 14 2 7 0.23608132743278D+00 0.52305132082989D-17 + 2 14 2 7 0.27810191320607D+00 -0.41107118179996D-16 + 3 14 2 7 0.18906932059161D+00 0.29818814748997D-17 + 1 15 2 7 -0.62530705513703D+00 -0.31521493665778D-16 + 2 15 2 7 -0.11928698021039D+01 0.85577389911047D-16 + 3 15 2 7 -0.56461314306800D+00 -0.41118844156022D-16 + 1 1 3 7 0.10556545792895D+01 0.81621740386429D-18 + 2 1 3 7 0.10556545808913D+01 -0.63325964959807D-19 + 3 1 3 7 0.21049500663723D+01 0.11310060230126D-18 + 1 2 3 7 -0.92238761894950D+00 0.38680374946632D-17 + 2 2 3 7 -0.92238761998785D+00 -0.27732588743190D-17 + 3 2 3 7 -0.18331810783177D+01 0.30130554369126D-19 + 1 3 3 7 -0.31546500567910D+01 -0.27132963321071D-17 + 2 3 3 7 -0.18061225019647D+01 0.92859231355761D-18 + 3 3 3 7 -0.76355001210135D+00 0.40933330687272D-17 + 1 4 3 7 0.23836471276820D+01 0.00000000000000D+00 + 2 4 3 7 0.10418012750403D+01 0.00000000000000D+00 + 3 4 3 7 -0.76884250901571D+00 0.37114677007773D-17 + 1 5 3 7 -0.18061225193508D+01 0.22408303314698D-17 + 2 5 3 7 -0.31546500947106D+01 -0.15865487829138D-17 + 3 5 3 7 -0.76355001377421D+00 -0.14581066115134D-18 + 1 6 3 7 0.10418012896728D+01 0.35672307581564D-18 + 2 6 3 7 0.23836471638646D+01 0.00000000000000D+00 + 3 6 3 7 -0.76884251070791D+00 0.24076465116906D-18 + 1 7 3 7 0.60498286934935D+01 0.00000000000000D+00 + 2 7 3 7 0.60498293903893D+01 0.00000000000000D+00 + 3 7 3 7 0.12115251666870D+02 0.00000000000000D+00 + 1 8 3 7 -0.30912055355732D+01 0.10847457240967D-17 + 2 8 3 7 -0.30912055334052D+01 0.10317865160491D-17 + 3 8 3 7 -0.62031875271276D+01 -0.26952177122748D-17 + 1 9 3 7 0.43839156706283D-01 0.24556664732735D-16 + 2 9 3 7 0.43841413096618D-01 0.28288941610106D-16 + 3 9 3 7 0.82490730809713D-01 0.13380441319899D-17 + 1 10 3 7 -0.60857138236863D+00 -0.39392092634559D-17 + 2 10 3 7 -0.17291513271995D+00 0.93947810265687D-17 + 3 10 3 7 -0.60960169887318D+00 0.16683627251591D-16 + 1 11 3 7 0.38414152583819D-02 -0.82768955584434D-17 + 2 11 3 7 -0.43293291516351D+00 0.20363013793285D-16 + 3 11 3 7 -0.61354060965608D+00 -0.97747605585232D-16 + 1 12 3 7 -0.17291513271975D+00 -0.28113584556508D-16 + 2 12 3 7 -0.60857138236858D+00 -0.39488619651060D-16 + 3 12 3 7 -0.60960169887296D+00 0.12540883710139D-15 + 1 13 3 7 -0.43293569279105D+00 -0.48860220678850D-16 + 2 13 3 7 0.38716466408142D-02 0.27667167148882D-16 + 3 13 3 7 -0.61354060965609D+00 0.93007543605073D-17 + 1 14 3 7 0.18267603254338D+00 -0.31998532686705D-17 + 2 14 3 7 0.18267603254336D+00 0.29818814748997D-17 + 3 14 3 7 0.38314099552873D+00 -0.29145720509200D-17 + 1 15 3 7 -0.57322368596688D+00 -0.34935145210761D-16 + 2 15 3 7 -0.57322368596687D+00 -0.41118844156022D-16 + 3 15 3 7 -0.11400878906466D+01 0.91281092500745D-17 + 1 1 1 8 -0.17657602960331D+01 -0.58188985592742D-19 + 2 1 1 8 -0.89220685545705D+00 0.14782443057354D-18 + 3 1 1 8 -0.89220685545709D+00 0.28933672217438D-18 + 1 2 1 8 -0.72625181519670D+00 -0.92984016104602D-18 + 2 2 1 8 0.23596370641824D+01 0.15333267845373D-17 + 3 2 1 8 0.10556545792895D+01 -0.78893762327088D-18 + 1 3 1 8 -0.72625181519672D+00 -0.12216944021935D-17 + 2 3 1 8 0.10556545808913D+01 0.13227270109435D-17 + 3 3 1 8 0.23596370641824D+01 0.39335559580442D-17 + 1 4 1 8 -0.62031875271273D+01 0.22762523110857D-17 + 2 4 1 8 -0.30867277300235D+01 -0.41611404952132D-18 + 3 4 1 8 -0.30867277300236D+01 0.14044781638243D-17 + 1 5 1 8 0.21049500663723D+01 -0.95520838089695D-18 + 2 5 1 8 0.10410477676929D+01 -0.59056579755081D-18 + 3 5 1 8 0.10410477676929D+01 0.13504039657738D-17 + 1 6 1 8 -0.70310239952049D+00 0.27681242464046D-17 + 2 6 1 8 -0.30912055334050D+01 -0.20080486900480D-17 + 3 6 1 8 -0.17690603636709D+01 0.17563539297987D-17 + 1 7 1 8 -0.70310239952051D+00 -0.23418380408854D-17 + 2 7 1 8 -0.17690603636710D+01 -0.58215817045702D-18 + 3 7 1 8 -0.30912055355732D+01 -0.10847457240967D-17 + 1 8 1 8 0.12872048392630D+02 0.00000000000000D+00 + 2 8 1 8 0.64194198584028D+01 0.00000000000000D+00 + 3 8 1 8 0.64194198584032D+01 0.00000000000000D+00 + 1 9 1 8 -0.64788696742527D+00 0.52688696143769D-16 + 2 9 1 8 -0.83092245794185D-01 -0.22017448291984D-17 + 3 9 1 8 -0.41995888431095D+00 -0.32180947709165D-16 + 1 10 1 8 -0.64781010064719D+00 -0.69642224861568D-16 + 2 10 1 8 -0.41978367113096D+00 0.47489072857702D-16 + 3 10 1 8 -0.83092245794469D-01 -0.21256489392295D-16 + 1 11 1 8 -0.11329538147385D+01 -0.38175959548549D-16 + 2 11 1 8 -0.55214756943345D+00 0.15104695603825D-16 + 3 11 1 8 -0.55215539430893D+00 -0.23274529784392D-16 + 1 12 1 8 -0.85952380006467D+00 0.11505036423607D-16 + 2 12 1 8 -0.42410106084867D+00 0.22480453842295D-16 + 3 12 1 8 -0.42410106084864D+00 -0.39004317584538D-16 + 1 13 1 8 -0.62197027082684D+00 -0.33490246592980D-16 + 2 13 1 8 -0.55697573728518D+00 0.39546320491779D-16 + 3 13 1 8 -0.18934180872417D+00 -0.35831264202875D-16 + 1 14 1 8 -0.62197027082715D+00 -0.35576805473843D-16 + 2 14 1 8 -0.18934180872439D+00 -0.38396679712546D-16 + 3 14 1 8 -0.55697573728518D+00 -0.26964577835999D-16 + 1 15 1 8 0.37985955713940D+00 -0.50474517478526D-16 + 2 15 1 8 0.18541425141608D+00 -0.12844524156240D-16 + 3 15 1 8 0.18541425141607D+00 -0.15102731459794D-16 + 1 1 2 8 -0.89220685545705D+00 0.14782443057354D-18 + 2 1 2 8 -0.17657602960331D+01 -0.33831025331735D-19 + 3 1 2 8 -0.89220685545704D+00 -0.16150944040899D-18 + 1 2 2 8 0.23596370641824D+01 0.15333267845373D-17 + 2 2 2 8 -0.72625181519686D+00 0.43830992444155D-18 + 3 2 2 8 0.10556545808913D+01 0.89461251339988D-18 + 1 3 2 8 0.10410477676929D+01 0.13227270109435D-17 + 2 3 2 8 0.21049500663723D+01 0.13030162121921D-17 + 3 3 2 8 0.10410477676929D+01 0.98359538017246D-18 + 1 4 2 8 -0.30912055334051D+01 -0.41611404952132D-18 + 2 4 2 8 -0.70310239952048D+00 -0.16792782559435D-17 + 3 4 2 8 -0.17690603636710D+01 0.35312543952328D-18 + 1 5 2 8 0.10556545808913D+01 -0.59056579755081D-18 + 2 5 2 8 -0.72625181519682D+00 -0.37342326889312D-17 + 3 5 2 8 0.23596370641825D+01 -0.32348917865593D-17 + 1 6 2 8 -0.30867277300234D+01 -0.20080486900480D-17 + 2 6 2 8 -0.62031875271273D+01 0.20953728574212D-17 + 3 6 2 8 -0.30867277300235D+01 -0.43652813588636D-18 + 1 7 2 8 -0.17690603636710D+01 -0.58215817045702D-18 + 2 7 2 8 -0.70310239952052D+00 0.16615104346834D-17 + 3 7 2 8 -0.30912055334052D+01 -0.10317865160491D-17 + 1 8 2 8 0.64194198584028D+01 0.00000000000000D+00 + 2 8 2 8 0.12872048392631D+02 0.00000000000000D+00 + 3 8 2 8 0.64194198584014D+01 0.00000000000000D+00 + 1 9 2 8 -0.83195077336450D-01 -0.22017448291984D-17 + 2 9 2 8 -0.64781010064697D+00 0.30012436494582D-16 + 3 9 2 8 -0.41995888204933D+00 -0.76117211350939D-17 + 1 10 2 8 -0.42410106084864D+00 0.47489072857702D-16 + 2 10 2 8 -0.85952380006464D+00 0.23607298124630D-16 + 3 10 2 8 -0.42410106084857D+00 -0.50905405265981D-16 + 1 11 2 8 -0.55716458748181D+00 0.15104695603825D-16 + 2 11 2 8 -0.62204691449089D+00 -0.44459238796275D-16 + 3 11 2 8 -0.18934180872417D+00 -0.23469738422217D-16 + 1 12 2 8 -0.41978367113100D+00 0.22480453842295D-16 + 2 12 2 8 -0.64781010064722D+00 -0.11381334157764D-17 + 3 12 2 8 -0.83092245794583D-01 -0.23006489306362D-16 + 1 13 2 8 -0.55215539430877D+00 0.39546320491779D-16 + 2 13 2 8 -0.11328869476134D+01 0.63894351356251D-18 + 3 13 2 8 -0.55215539430874D+00 -0.21696684487055D-16 + 1 14 2 8 -0.18934180872439D+00 -0.38396679712546D-16 + 2 14 2 8 -0.62197027082712D+00 0.12907419060113D-15 + 3 14 2 8 -0.55697573728517D+00 -0.16322925917862D-16 + 1 15 2 8 0.18541425141608D+00 -0.12844524156240D-16 + 2 15 2 8 0.37985955713936D+00 0.10144386048436D-18 + 3 15 2 8 0.18541425141605D+00 -0.25712668221524D-16 + 1 1 3 8 -0.89220685545709D+00 0.28933672217438D-18 + 2 1 3 8 -0.89220685545704D+00 -0.16150944040899D-18 + 3 1 3 8 -0.17657602960332D+01 -0.24539209526021D-18 + 1 2 3 8 0.10410477676929D+01 -0.78893762327088D-18 + 2 2 3 8 0.10410477676929D+01 0.89461251339988D-18 + 3 2 3 8 0.21049500663723D+01 -0.51744511844559D-18 + 1 3 3 8 0.23596370641824D+01 0.39335559580442D-17 + 2 3 3 8 0.10556545792895D+01 0.98359538017246D-18 + 3 3 3 8 -0.72625181519684D+00 0.22872701965307D-17 + 1 4 3 8 -0.30912055355732D+01 0.14044781638243D-17 + 2 4 3 8 -0.17690603636710D+01 0.35312543952328D-18 + 3 4 3 8 -0.70310239952051D+00 0.00000000000000D+00 + 1 5 3 8 0.10556545792895D+01 0.13504039657738D-17 + 2 5 3 8 0.23596370641825D+01 -0.32348917865593D-17 + 3 5 3 8 -0.72625181519670D+00 0.12974036418880D-17 + 1 6 3 8 -0.17690603636709D+01 0.17563539297987D-17 + 2 6 3 8 -0.30912055355731D+01 -0.43652813588636D-18 + 3 6 3 8 -0.70310239952054D+00 -0.19518967017129D-17 + 1 7 3 8 -0.30867277300236D+01 -0.10847457240967D-17 + 2 7 3 8 -0.30867277300236D+01 -0.10317865160491D-17 + 3 7 3 8 -0.62031875271276D+01 0.26952177122748D-17 + 1 8 3 8 0.64194198584032D+01 0.00000000000000D+00 + 2 8 3 8 0.64194198584014D+01 0.00000000000000D+00 + 3 8 3 8 0.12872048392632D+02 0.00000000000000D+00 + 1 9 3 8 -0.42410554752906D+00 -0.32180947709165D-16 + 2 9 3 8 -0.42410106084859D+00 -0.76117211350939D-17 + 3 9 3 8 -0.85956474729636D+00 0.47519864299032D-16 + 1 10 3 8 -0.83092245794469D-01 -0.21256489392295D-16 + 2 10 3 8 -0.41978366990990D+00 -0.50905405265981D-16 + 3 10 3 8 -0.64781010064714D+00 0.16968609886611D-16 + 1 11 3 8 -0.55716458794716D+00 -0.23274529784392D-16 + 2 11 3 8 -0.18941630209911D+00 -0.23469738422217D-16 + 3 11 3 8 -0.62197027082710D+00 -0.44883815147122D-16 + 1 12 3 8 -0.41978366990997D+00 -0.39004317584538D-16 + 2 12 3 8 -0.83092245794583D-01 -0.23006489306362D-16 + 3 12 3 8 -0.64781010064719D+00 -0.43358017741198D-16 + 1 13 3 8 -0.18934180872417D+00 -0.35831264202875D-16 + 2 13 3 8 -0.55697573747968D+00 -0.21696684487055D-16 + 3 13 3 8 -0.62197027082707D+00 0.15426713550715D-16 + 1 14 3 8 -0.55215539430877D+00 -0.26964577835999D-16 + 2 14 3 8 -0.55215539430876D+00 -0.16322925917862D-16 + 3 14 3 8 -0.11328869476133D+01 -0.50969409981055D-16 + 1 15 3 8 0.18541425141607D+00 -0.15102731459794D-16 + 2 15 3 8 0.18541425141606D+00 -0.25712668221524D-16 + 3 15 3 8 0.37985955713941D+00 -0.14739639895634D-16 + 1 1 1 9 -0.64781010064717D+00 0.15985471505036D-15 + 2 1 1 9 -0.83092245794611D-01 -0.29623112480550D-17 + 3 1 1 9 -0.42410106084853D+00 -0.33035903718958D-16 + 1 2 1 9 0.29314202400291D+00 0.27793232010709D-16 + 2 2 1 9 0.99981868476951D-01 0.83098215679261D-17 + 3 2 1 9 0.43841413096716D-01 0.21008248476246D-16 + 1 3 1 9 -0.10848183787486D+01 -0.15110563226859D-16 + 2 3 1 9 -0.60856393978611D+00 0.12512803146008D-16 + 3 3 1 9 -0.63608121490152D+00 -0.57391807560257D-17 + 1 4 1 9 -0.60961880299497D+00 0.18358325922467D-16 + 2 4 1 9 -0.62239274888965D+00 0.40030168331664D-16 + 3 4 1 9 -0.19312906711287D+00 -0.13898621394540D-16 + 1 5 1 9 -0.60960169887306D+00 -0.18289495996093D-16 + 2 5 1 9 -0.62238823728595D+00 -0.38784137292664D-16 + 3 5 1 9 -0.19312936396717D+00 0.14506087011700D-16 + 1 6 1 9 -0.10848070055727D+01 0.15502446365749D-16 + 2 6 1 9 -0.60857138236865D+00 -0.11506567582546D-16 + 3 6 1 9 -0.63608944651343D+00 0.66497956833833D-17 + 1 7 1 9 0.29314198200422D+00 -0.31647183060882D-16 + 2 7 1 9 0.99981448692544D-01 -0.11343610014312D-16 + 3 7 1 9 0.43839156706283D-01 -0.24556664732735D-16 + 1 8 1 9 -0.64788696742527D+00 -0.52688696143769D-16 + 2 8 1 9 -0.83195077336450D-01 0.22017448291984D-17 + 3 8 1 9 -0.42410554752906D+00 0.32180947709165D-16 + 1 9 1 9 0.94213549268497D+01 0.00000000000000D+00 + 2 9 1 9 0.45956551761428D+01 0.00000000000000D+00 + 3 9 1 9 0.40804794434844D+01 0.00000000000000D+00 + 1 10 1 9 0.83908447744609D+00 0.00000000000000D+00 + 2 10 1 9 0.27091591904266D+00 0.00000000000000D+00 + 3 10 1 9 0.40613249084401D+00 0.00000000000000D+00 + 1 11 1 9 -0.33063908003182D+00 0.00000000000000D+00 + 2 11 1 9 -0.13196807417388D+01 0.00000000000000D+00 + 3 11 1 9 -0.89022974534141D+00 0.00000000000000D+00 + 1 12 1 9 -0.49589387897322D+00 0.00000000000000D+00 + 2 12 1 9 0.40613714947074D+00 0.00000000000000D+00 + 3 12 1 9 0.12656934269600D+01 0.00000000000000D+00 + 1 13 1 9 -0.29686463014825D+01 0.00000000000000D+00 + 2 13 1 9 -0.16361421429245D+01 0.00000000000000D+00 + 3 13 1 9 -0.17525805797084D+01 0.00000000000000D+00 + 1 14 1 9 -0.19393723643172D+01 0.00000000000000D+00 + 2 14 1 9 -0.10094201363574D+01 0.00000000000000D+00 + 3 14 1 9 -0.92921678721349D+00 0.00000000000000D+00 + 1 15 1 9 -0.42438556798305D+00 0.00000000000000D+00 + 2 15 1 9 0.11224813885368D+01 0.00000000000000D+00 + 3 15 1 9 0.24036399637900D+00 0.00000000000000D+00 + 1 1 2 9 -0.83092245794611D-01 -0.29623112480550D-17 + 2 1 2 9 -0.64781010064719D+00 -0.78878268251093D-16 + 3 1 2 9 -0.42410106084849D+00 -0.87654403401602D-17 + 1 2 2 9 0.99981868476951D-01 0.83098215679261D-17 + 2 2 2 9 0.29314202400288D+00 0.34065911134111D-16 + 3 2 2 9 0.43841413096707D-01 0.24936281037487D-16 + 1 3 2 9 -0.62238823728610D+00 0.12512803146008D-16 + 2 3 2 9 -0.60960169887315D+00 -0.44717472863128D-16 + 3 3 2 9 -0.19312936396717D+00 0.40523612666444D-16 + 1 4 2 9 -0.60857138236850D+00 0.40030168331664D-16 + 2 4 2 9 -0.10848070055726D+01 0.46641390418345D-16 + 3 4 2 9 -0.63608944651325D+00 0.30134191318404D-16 + 1 5 2 9 -0.60857138236853D+00 -0.38784137292664D-16 + 2 5 2 9 -0.10848070055726D+01 -0.43664748578107D-16 + 3 5 2 9 -0.63608944651333D+00 -0.28556155464386D-16 + 1 6 2 9 -0.62238823728607D+00 -0.11506567582546D-16 + 2 6 2 9 -0.60960169887298D+00 0.46674579874095D-16 + 3 6 2 9 -0.19312936396707D+00 -0.39089341359925D-16 + 1 7 2 9 0.99981868476895D-01 -0.11343610014312D-16 + 2 7 2 9 0.29314202400281D+00 -0.37329927703786D-16 + 3 7 2 9 0.43841413096618D-01 -0.28288941610106D-16 + 1 8 2 9 -0.83092245794185D-01 0.22017448291984D-17 + 2 8 2 9 -0.64781010064697D+00 -0.30012436494582D-16 + 3 8 2 9 -0.42410106084859D+00 0.76117211350939D-17 + 1 9 2 9 0.45956551761428D+01 0.00000000000000D+00 + 2 9 2 9 0.94213549268497D+01 0.00000000000000D+00 + 3 9 2 9 0.40805216593862D+01 0.00000000000000D+00 + 1 10 2 9 0.40613714947074D+00 0.00000000000000D+00 + 2 10 2 9 -0.49589387897323D+00 0.00000000000000D+00 + 3 10 2 9 0.12656934269600D+01 0.00000000000000D+00 + 1 11 2 9 -0.16361421429245D+01 0.00000000000000D+00 + 2 11 2 9 -0.29686463014825D+01 0.00000000000000D+00 + 3 11 2 9 -0.17525805797084D+01 0.00000000000000D+00 + 1 12 2 9 0.27091591904267D+00 0.00000000000000D+00 + 2 12 2 9 0.83908447744610D+00 0.00000000000000D+00 + 3 12 2 9 0.40613249084401D+00 0.00000000000000D+00 + 1 13 2 9 -0.13196807417388D+01 0.00000000000000D+00 + 2 13 2 9 -0.33063908003181D+00 0.00000000000000D+00 + 3 13 2 9 -0.89022974534141D+00 0.00000000000000D+00 + 1 14 2 9 -0.10094201363574D+01 0.00000000000000D+00 + 2 14 2 9 -0.19393723643172D+01 0.00000000000000D+00 + 3 14 2 9 -0.92921678721348D+00 0.00000000000000D+00 + 1 15 2 9 0.11224813885368D+01 0.00000000000000D+00 + 2 15 2 9 -0.42438556798307D+00 0.00000000000000D+00 + 3 15 2 9 0.24036399637899D+00 0.00000000000000D+00 + 1 1 3 9 -0.41978366990986D+00 -0.33035903718958D-16 + 2 1 3 9 -0.41978367113082D+00 -0.87654403401602D-17 + 3 1 3 9 -0.85952380006457D+00 0.45922924700911D-16 + 1 2 3 9 0.44337442938113D-01 0.21008248476246D-16 + 2 2 3 9 0.44337442070124D-01 0.24936281037487D-16 + 3 2 3 9 0.82488655530296D-01 -0.34657520943286D-17 + 1 3 3 9 -0.65482334318583D+00 -0.57391807560257D-17 + 2 3 3 9 -0.17291512216616D+00 0.40523612666444D-16 + 3 3 3 9 -0.84159746553298D+00 -0.41524478930748D-16 + 1 4 3 9 -0.17292837546367D+00 -0.13898621394540D-16 + 2 4 3 9 -0.65482363142220D+00 0.30134191318404D-16 + 3 4 3 9 -0.84163157970562D+00 -0.14672768702279D-16 + 1 5 3 9 -0.17291513271995D+00 0.14506087011700D-16 + 2 5 3 9 -0.65482328190456D+00 -0.28556155464386D-16 + 3 5 3 9 -0.84159741228404D+00 -0.91845681876179D-16 + 1 6 3 9 -0.65482356403876D+00 0.66497956833833D-17 + 2 6 3 9 -0.17292838111325D+00 -0.39089341359925D-16 + 3 6 3 9 -0.84163151793080D+00 0.43190209739212D-16 + 1 7 3 9 0.44333436968079D-01 -0.24556664732735D-16 + 2 7 3 9 0.44333438467530D-01 -0.28288941610106D-16 + 3 7 3 9 0.82490730809713D-01 -0.13380441319899D-17 + 1 8 3 9 -0.41995888431095D+00 0.32180947709165D-16 + 2 8 3 9 -0.41995888204933D+00 0.76117211350939D-17 + 3 8 3 9 -0.85956474729636D+00 -0.47519864299032D-16 + 1 9 3 9 0.40804794434853D+01 0.00000000000000D+00 + 2 9 3 9 0.40805216593862D+01 0.00000000000000D+00 + 3 9 3 9 0.82247383981849D+01 0.00000000000000D+00 + 1 10 3 9 0.27091591924792D+00 0.00000000000000D+00 + 2 10 3 9 0.69794255498512D+00 0.00000000000000D+00 + 3 10 3 9 -0.49589388544750D+00 0.00000000000000D+00 + 1 11 3 9 -0.77295853987439D+00 0.00000000000000D+00 + 2 11 3 9 -0.11883586309346D+01 0.00000000000000D+00 + 3 11 3 9 -0.48017833401540D+00 0.00000000000000D+00 + 1 12 3 9 0.69794258532348D+00 0.00000000000000D+00 + 2 12 3 9 0.27091591904266D+00 0.00000000000000D+00 + 3 12 3 9 -0.49589387897324D+00 0.00000000000000D+00 + 1 13 3 9 -0.11883586309346D+01 0.00000000000000D+00 + 2 13 3 9 -0.77295853987440D+00 0.00000000000000D+00 + 3 13 3 9 -0.48017833401538D+00 0.00000000000000D+00 + 1 14 3 9 -0.92567035427521D+00 0.00000000000000D+00 + 2 14 3 9 -0.92567035427520D+00 0.00000000000000D+00 + 3 14 3 9 -0.18276495752185D+01 0.00000000000000D+00 + 1 15 3 9 0.24599068237720D+00 0.00000000000000D+00 + 2 15 3 9 0.24599068237718D+00 0.00000000000000D+00 + 3 15 3 9 0.47899160095976D+00 0.00000000000000D+00 + 1 1 1 10 -0.64781010064705D+00 0.38149589358808D-16 + 2 1 1 10 -0.42410106084853D+00 0.47889859478338D-16 + 3 1 1 10 -0.83092245794497D-01 -0.21390850161492D-16 + 1 2 1 10 -0.10848183787485D+01 0.21452638367806D-16 + 2 2 1 10 -0.63608121490134D+00 0.44924845514226D-16 + 3 2 1 10 -0.60856393978595D+00 -0.41963437026849D-17 + 1 3 1 10 0.29314202400287D+00 -0.14793142166842D-16 + 2 3 1 10 0.43841413096659D-01 -0.20610958216492D-16 + 3 3 1 10 0.99981868476891D-01 -0.40486614489183D-16 + 1 4 1 10 -0.60960169887296D+00 -0.36064798687308D-16 + 2 4 1 10 -0.19312936396707D+00 0.76649490890715D-18 + 3 4 1 10 -0.62238823728592D+00 -0.52147990256139D-16 + 1 5 1 10 -0.60960169887279D+00 0.14249003972979D-15 + 2 5 1 10 -0.19312936396703D+00 -0.23025171327481D-17 + 3 5 1 10 -0.62238823728605D+00 0.51872683353006D-16 + 1 6 1 10 0.29314202400285D+00 0.14345741103664D-16 + 2 6 1 10 0.43841413096655D-01 0.19962876888109D-16 + 3 6 1 10 0.99981868476903D-01 0.40530038793963D-16 + 1 7 1 10 -0.10848183787485D+01 -0.23302903244046D-16 + 2 7 1 10 -0.63608121490148D+00 -0.45229585138187D-16 + 3 7 1 10 -0.60856393978607D+00 0.39392092634559D-17 + 1 8 1 10 -0.64781010064719D+00 0.69642224861568D-16 + 2 8 1 10 -0.42410106084864D+00 -0.47489072857702D-16 + 3 8 1 10 -0.83092245794469D-01 0.21256489392295D-16 + 1 9 1 10 0.83908447744609D+00 0.00000000000000D+00 + 2 9 1 10 0.40613714947074D+00 0.00000000000000D+00 + 3 9 1 10 0.27091591924792D+00 0.00000000000000D+00 + 1 10 1 10 0.94213549268479D+01 0.00000000000000D+00 + 2 10 1 10 0.40805216593844D+01 0.00000000000000D+00 + 3 10 1 10 0.45956551761428D+01 0.00000000000000D+00 + 1 11 1 10 -0.33063908471618D+00 0.00000000000000D+00 + 2 11 1 10 -0.89022974534141D+00 0.00000000000000D+00 + 3 11 1 10 -0.13196807417388D+01 0.00000000000000D+00 + 1 12 1 10 -0.49589388544750D+00 0.00000000000000D+00 + 2 12 1 10 0.12656934269600D+01 0.00000000000000D+00 + 3 12 1 10 0.40613249084401D+00 0.00000000000000D+00 + 1 13 1 10 -0.19393723643172D+01 0.00000000000000D+00 + 2 13 1 10 -0.92921678721348D+00 0.00000000000000D+00 + 3 13 1 10 -0.10094201363574D+01 0.00000000000000D+00 + 1 14 1 10 -0.29686463014825D+01 0.00000000000000D+00 + 2 14 1 10 -0.17525805797084D+01 0.00000000000000D+00 + 3 14 1 10 -0.16361421429245D+01 0.00000000000000D+00 + 1 15 1 10 -0.42438556798304D+00 0.00000000000000D+00 + 2 15 1 10 0.24036399637901D+00 0.00000000000000D+00 + 3 15 1 10 0.11224813885369D+01 0.00000000000000D+00 + 1 1 2 10 -0.41978367113086D+00 0.47889859478338D-16 + 2 1 2 10 -0.85952380006467D+00 0.24530510051346D-16 + 3 1 2 10 -0.41978366990988D+00 -0.50802150764175D-16 + 1 2 2 10 -0.65482328190454D+00 0.44924845514226D-16 + 2 2 2 10 -0.84159746553284D+00 -0.96139867816825D-17 + 3 2 2 10 -0.17291513271994D+00 0.10060201175101D-16 + 1 3 2 10 0.44337442070076D-01 -0.20610958216492D-16 + 2 3 2 10 0.82488655530243D-01 0.32301685816625D-16 + 3 3 2 10 0.44337442938031D-01 -0.29243251990725D-17 + 1 4 2 10 -0.17291513271985D+00 0.76649490890715D-18 + 2 4 2 10 -0.84159746553284D+00 -0.20263253770541D-16 + 3 4 2 10 -0.65482328190448D+00 0.31235704256549D-16 + 1 5 2 10 -0.17291513271981D+00 -0.23025171327481D-17 + 2 5 2 10 -0.84159746553295D+00 0.17351196907166D-16 + 3 5 2 10 -0.65482328190462D+00 -0.32095815613859D-16 + 1 6 2 10 0.44337442070072D-01 0.19962876888109D-16 + 2 6 2 10 0.82488655530278D-01 -0.33619111751659D-16 + 3 6 2 10 0.44337442938043D-01 0.26755524714501D-17 + 1 7 2 10 -0.65482328190467D+00 -0.45229585138187D-16 + 2 7 2 10 -0.84159746553299D+00 0.10531385812943D-16 + 3 7 2 10 -0.17291513271995D+00 -0.93947810265687D-17 + 1 8 2 10 -0.41978367113096D+00 -0.47489072857702D-16 + 2 8 2 10 -0.85952380006464D+00 -0.23607298124630D-16 + 3 8 2 10 -0.41978366990990D+00 0.50905405265981D-16 + 1 9 2 10 0.27091591904266D+00 0.00000000000000D+00 + 2 9 2 10 -0.49589388544752D+00 0.00000000000000D+00 + 3 9 2 10 0.69794255498512D+00 0.00000000000000D+00 + 1 10 2 10 0.40805216593844D+01 0.00000000000000D+00 + 2 10 2 10 0.82247383981867D+01 0.00000000000000D+00 + 3 10 2 10 0.40804794434853D+01 0.00000000000000D+00 + 1 11 2 10 -0.77295853674391D+00 0.00000000000000D+00 + 2 11 2 10 -0.48017833401540D+00 0.00000000000000D+00 + 3 11 2 10 -0.11883586309346D+01 0.00000000000000D+00 + 1 12 2 10 0.69794255498511D+00 0.00000000000000D+00 + 2 12 2 10 -0.49589388544753D+00 0.00000000000000D+00 + 3 12 2 10 0.27091591904265D+00 0.00000000000000D+00 + 1 13 2 10 -0.92567035427521D+00 0.00000000000000D+00 + 2 13 2 10 -0.18276495752185D+01 0.00000000000000D+00 + 3 13 2 10 -0.92567035427520D+00 0.00000000000000D+00 + 1 14 2 10 -0.11883586309346D+01 0.00000000000000D+00 + 2 14 2 10 -0.48017833401539D+00 0.00000000000000D+00 + 3 14 2 10 -0.77295853987440D+00 0.00000000000000D+00 + 1 15 2 10 0.24599068237721D+00 0.00000000000000D+00 + 2 15 2 10 0.47899160095977D+00 0.00000000000000D+00 + 3 15 2 10 0.24599068237719D+00 0.00000000000000D+00 + 1 1 3 10 -0.83092245794497D-01 -0.21390850161492D-16 + 2 1 3 10 -0.42410106084855D+00 -0.50802150764175D-16 + 3 1 3 10 -0.64781010064711D+00 0.16284738070369D-16 + 1 2 3 10 -0.62238823728593D+00 -0.41963437026849D-17 + 2 2 3 10 -0.19312936396716D+00 0.10060201175101D-16 + 3 2 3 10 -0.60960169887295D+00 -0.89838016802785D-16 + 1 3 3 10 0.99981868476891D-01 -0.40486614489183D-16 + 2 3 3 10 0.43841413096634D-01 -0.29243251990725D-17 + 3 3 3 10 0.29314202400281D+00 -0.23909741845536D-16 + 1 4 3 10 -0.60856393978593D+00 -0.52147990256139D-16 + 2 4 3 10 -0.63608121490128D+00 0.31235704256549D-16 + 3 4 3 10 -0.10848183787485D+01 -0.12299836434769D-16 + 1 5 3 10 -0.60856393978606D+00 0.51872683353006D-16 + 2 5 3 10 -0.63608121490143D+00 -0.32095815613859D-16 + 3 5 3 10 -0.10848183787485D+01 0.13171567128919D-16 + 1 6 3 10 0.99981868476903D-01 0.40530038793963D-16 + 2 6 3 10 0.43841413096646D-01 0.26755524714501D-17 + 3 6 3 10 0.29314202400283D+00 0.24659035403288D-16 + 1 7 3 10 -0.62238823728605D+00 0.39392092634559D-17 + 2 7 3 10 -0.19312936396717D+00 -0.93947810265687D-17 + 3 7 3 10 -0.60960169887318D+00 -0.16683627251591D-16 + 1 8 3 10 -0.83092245794469D-01 0.21256489392295D-16 + 2 8 3 10 -0.42410106084857D+00 0.50905405265981D-16 + 3 8 3 10 -0.64781010064714D+00 -0.16968609886611D-16 + 1 9 3 10 0.40613249084401D+00 0.00000000000000D+00 + 2 9 3 10 0.12656934269600D+01 0.00000000000000D+00 + 3 9 3 10 -0.49589388544750D+00 0.00000000000000D+00 + 1 10 3 10 0.45956551761428D+01 0.00000000000000D+00 + 2 10 3 10 0.40804794434853D+01 0.00000000000000D+00 + 3 10 3 10 0.94213549268497D+01 0.00000000000000D+00 + 1 11 3 10 -0.16361421566901D+01 0.00000000000000D+00 + 2 11 3 10 -0.17525805797084D+01 0.00000000000000D+00 + 3 11 3 10 -0.29686463014825D+01 0.00000000000000D+00 + 1 12 3 10 0.27091591924792D+00 0.00000000000000D+00 + 2 12 3 10 0.40613714947073D+00 0.00000000000000D+00 + 3 12 3 10 0.83908447744609D+00 0.00000000000000D+00 + 1 13 3 10 -0.10094201363574D+01 0.00000000000000D+00 + 2 13 3 10 -0.92921679690963D+00 0.00000000000000D+00 + 3 13 3 10 -0.19393723643172D+01 0.00000000000000D+00 + 1 14 3 10 -0.13196807417388D+01 0.00000000000000D+00 + 2 14 3 10 -0.89022974534142D+00 0.00000000000000D+00 + 3 14 3 10 -0.33063908003181D+00 0.00000000000000D+00 + 1 15 3 10 0.11224813885369D+01 0.00000000000000D+00 + 2 15 3 10 0.24036399637900D+00 0.00000000000000D+00 + 3 15 3 10 -0.42438556798307D+00 0.00000000000000D+00 + 1 1 1 11 -0.11328869476134D+01 -0.38222073734928D-16 + 2 1 1 11 -0.55697573728526D+00 0.14895246521690D-16 + 3 1 1 11 -0.55697573747976D+00 -0.23149511688763D-16 + 1 2 1 11 -0.46029225366703D+00 0.10141913327477D-15 + 2 2 1 11 -0.45624853283046D+00 -0.37244642419968D-16 + 3 2 1 11 0.38716466408142D-02 -0.57060644965434D-17 + 1 3 1 11 -0.46029226104164D+00 -0.54599523926917D-19 + 2 3 1 11 0.38716888172783D-02 -0.13984574771058D-16 + 3 3 1 11 -0.45624858574029D+00 -0.48155244627484D-16 + 1 4 1 11 0.38314208800278D+00 0.22690665094628D-16 + 2 4 1 11 0.18907026610027D+00 0.12857904891372D-17 + 3 4 1 11 0.18907026628405D+00 0.13533226672563D-16 + 1 5 1 11 0.38314099552874D+00 -0.22190426423968D-16 + 2 5 1 11 0.18906932059158D+00 -0.11395007180859D-18 + 3 5 1 11 0.18906932042790D+00 -0.13202273479898D-16 + 1 6 1 11 -0.46031685139059D+00 0.25306105470415D-18 + 2 6 1 11 0.38413751368625D-02 0.14425371053536D-16 + 3 6 1 11 -0.45625573160732D+00 0.47932031292641D-16 + 1 7 1 11 -0.46031686405089D+00 0.88199432206929D-17 + 2 7 1 11 -0.45625578571285D+00 0.38600721858497D-16 + 3 7 1 11 0.38414152583819D-02 0.82768955584434D-17 + 1 8 1 11 -0.11329538147385D+01 0.38175959548549D-16 + 2 8 1 11 -0.55716458748181D+00 -0.15104695603825D-16 + 3 8 1 11 -0.55716458794716D+00 0.23274529784392D-16 + 1 9 1 11 -0.33063908003182D+00 0.00000000000000D+00 + 2 9 1 11 -0.16361421429245D+01 0.00000000000000D+00 + 3 9 1 11 -0.77295853987439D+00 0.00000000000000D+00 + 1 10 1 11 -0.33063908471618D+00 0.00000000000000D+00 + 2 10 1 11 -0.77295853674391D+00 0.00000000000000D+00 + 3 10 1 11 -0.16361421566901D+01 0.00000000000000D+00 + 1 11 1 11 0.96151706354285D+01 0.00000000000000D+00 + 2 11 1 11 0.47869040519317D+01 0.00000000000000D+00 + 3 11 1 11 0.47869040519308D+01 0.00000000000000D+00 + 1 12 1 11 -0.18276495752185D+01 0.00000000000000D+00 + 2 12 1 11 -0.92921678721348D+00 0.00000000000000D+00 + 3 12 1 11 -0.92921679690965D+00 0.00000000000000D+00 + 1 13 1 11 -0.33075312107890D+00 0.00000000000000D+00 + 2 13 1 11 0.13073040871633D+01 0.00000000000000D+00 + 3 13 1 11 0.44149437750969D+00 0.00000000000000D+00 + 1 14 1 11 -0.33075312107890D+00 0.00000000000000D+00 + 2 14 1 11 0.44149437750970D+00 0.00000000000000D+00 + 3 14 1 11 0.13073041106144D+01 0.00000000000000D+00 + 1 15 1 11 -0.31211202995316D+01 0.00000000000000D+00 + 2 15 1 11 -0.15548708534881D+01 0.00000000000000D+00 + 3 15 1 11 -0.15548708534881D+01 0.00000000000000D+00 + 1 1 2 11 -0.55215539430885D+00 0.14895246521690D-16 + 2 1 2 11 -0.62197027082718D+00 -0.45017518649367D-16 + 3 1 2 11 -0.18934180872434D+00 -0.23514211121355D-16 + 1 2 2 11 -0.46549951690139D+00 -0.37244642419968D-16 + 2 2 2 11 -0.10985456949757D+01 -0.17397293289701D-16 + 3 2 2 11 -0.43293569279119D+00 0.22140152504591D-16 + 1 3 2 11 0.19195618335512D-01 -0.13984574771058D-16 + 2 3 2 11 -0.61354060965628D+00 0.21591874284465D-16 + 3 3 2 11 -0.42097177671488D+00 0.11711879660147D-17 + 1 4 2 11 0.18267754333017D+00 0.12857904891372D-17 + 2 4 2 11 0.27811111563823D+00 -0.37061251719428D-16 + 3 4 2 11 0.23608259997910D+00 0.22799342178521D-16 + 1 5 2 11 0.18267603254333D+00 -0.11395007180859D-18 + 2 5 2 11 0.27810191320595D+00 0.39575885247256D-16 + 3 5 2 11 0.23608132743272D+00 -0.21794940488307D-16 + 1 6 2 11 0.19230536959836D-01 0.14425371053536D-16 + 2 6 2 11 -0.61353611708296D+00 -0.12811119712556D-15 + 3 6 2 11 -0.42096307747452D+00 -0.11050770170372D-17 + 1 7 2 11 -0.46549983032893D+00 0.38600721858497D-16 + 2 7 2 11 -0.10985386536821D+01 0.17666662473000D-16 + 3 7 2 11 -0.43293291516351D+00 -0.20363013793285D-16 + 1 8 2 11 -0.55214756943345D+00 -0.15104695603825D-16 + 2 8 2 11 -0.62204691449089D+00 0.44459238796275D-16 + 3 8 2 11 -0.18941630209911D+00 0.23469738422217D-16 + 1 9 2 11 -0.13196807417388D+01 0.00000000000000D+00 + 2 9 2 11 -0.29686463014825D+01 0.00000000000000D+00 + 3 9 2 11 -0.11883586309346D+01 0.00000000000000D+00 + 1 10 2 11 -0.89022974534141D+00 0.00000000000000D+00 + 2 10 2 11 -0.48017833401540D+00 0.00000000000000D+00 + 3 10 2 11 -0.17525805797084D+01 0.00000000000000D+00 + 1 11 2 11 0.47869040519317D+01 0.00000000000000D+00 + 2 11 2 11 0.93912926282428D+01 0.00000000000000D+00 + 3 11 2 11 0.52254345075389D+01 0.00000000000000D+00 + 1 12 2 11 -0.92567035427521D+00 0.00000000000000D+00 + 2 12 2 11 -0.19393723643172D+01 0.00000000000000D+00 + 3 12 2 11 -0.10094201363574D+01 0.00000000000000D+00 + 1 13 2 11 0.97532296232923D+00 0.00000000000000D+00 + 2 13 2 11 -0.33075312107893D+00 0.00000000000000D+00 + 3 13 2 11 0.55374551993813D+00 0.00000000000000D+00 + 1 14 2 11 0.55374667279352D+00 0.00000000000000D+00 + 2 14 2 11 0.84599295659729D+00 0.00000000000000D+00 + 3 14 2 11 0.44149437750968D+00 0.00000000000000D+00 + 1 15 2 11 -0.15472551811413D+01 0.00000000000000D+00 + 2 15 2 11 -0.40305175572333D+00 0.00000000000000D+00 + 3 15 2 11 -0.65443395770626D+00 0.00000000000000D+00 + 1 1 3 11 -0.55215539430883D+00 -0.23149511688763D-16 + 2 1 3 11 -0.18934180872434D+00 -0.23514211121355D-16 + 3 1 3 11 -0.62197027082715D+00 0.63147679202148D-16 + 1 2 3 11 0.19195618335512D-01 -0.57060644965434D-17 + 2 2 3 11 -0.42097177671504D+00 0.22140152504591D-16 + 3 2 3 11 -0.61354060965632D+00 0.13751160335032D-16 + 1 3 3 11 -0.46549951690115D+00 -0.48155244627484D-16 + 2 3 3 11 -0.43293569279103D+00 0.11711879660147D-17 + 3 3 3 11 -0.10985456949756D+01 0.48846548472875D-16 + 1 4 3 11 0.18267603254338D+00 0.13533226672563D-16 + 2 4 3 11 0.23608132743276D+00 0.22799342178521D-16 + 3 4 3 11 0.27810191320599D+00 -0.36760576990738D-16 + 1 5 3 11 0.18267603254331D+00 -0.13202273479898D-16 + 2 5 3 11 0.23608132743272D+00 -0.21794940488307D-16 + 3 5 3 11 0.27810191320606D+00 0.36752959229009D-16 + 1 6 3 11 -0.46549951690108D+00 0.47932031292641D-16 + 2 6 3 11 -0.43293569279090D+00 -0.11050770170372D-17 + 3 6 3 11 -0.10985456949756D+01 -0.49778503907897D-16 + 1 7 3 11 0.19195618335498D-01 0.82768955584434D-17 + 2 7 3 11 -0.42097177671471D+00 -0.20363013793285D-16 + 3 7 3 11 -0.61354060965608D+00 0.97747605585232D-16 + 1 8 3 11 -0.55215539430893D+00 0.23274529784392D-16 + 2 8 3 11 -0.18934180872417D+00 0.23469738422217D-16 + 3 8 3 11 -0.62197027082710D+00 0.44883815147122D-16 + 1 9 3 11 -0.89022974534141D+00 0.00000000000000D+00 + 2 9 3 11 -0.17525805797084D+01 0.00000000000000D+00 + 3 9 3 11 -0.48017833401540D+00 0.00000000000000D+00 + 1 10 3 11 -0.13196807417388D+01 0.00000000000000D+00 + 2 10 3 11 -0.11883586309346D+01 0.00000000000000D+00 + 3 10 3 11 -0.29686463014825D+01 0.00000000000000D+00 + 1 11 3 11 0.47869040519308D+01 0.00000000000000D+00 + 2 11 3 11 0.52254345075389D+01 0.00000000000000D+00 + 3 11 3 11 0.93912926282428D+01 0.00000000000000D+00 + 1 12 3 11 -0.92567035427521D+00 0.00000000000000D+00 + 2 12 3 11 -0.10094201363574D+01 0.00000000000000D+00 + 3 12 3 11 -0.19393723643172D+01 0.00000000000000D+00 + 1 13 3 11 0.55374551993815D+00 0.00000000000000D+00 + 2 13 3 11 0.44149437750968D+00 0.00000000000000D+00 + 3 13 3 11 0.84599295659728D+00 0.00000000000000D+00 + 1 14 3 11 0.97532296232926D+00 0.00000000000000D+00 + 2 14 3 11 0.55374667279351D+00 0.00000000000000D+00 + 3 14 3 11 -0.33075312107892D+00 0.00000000000000D+00 + 1 15 3 11 -0.15472551811413D+01 0.00000000000000D+00 + 2 15 3 11 -0.65443395770626D+00 0.00000000000000D+00 + 3 15 3 11 -0.40305175572333D+00 0.00000000000000D+00 + 1 1 1 12 -0.85952380006473D+00 0.13658594862644D-16 + 2 1 1 12 -0.41978367113089D+00 0.23048679224547D-16 + 3 1 1 12 -0.41978366990992D+00 -0.38436912983626D-16 + 1 2 1 12 -0.84159746553289D+00 0.22955549259910D-16 + 2 2 1 12 -0.65482328190451D+00 -0.31852297233723D-16 + 3 2 1 12 -0.17291513271994D+00 -0.28184402361538D-16 + 1 3 1 12 -0.84159746553295D+00 0.87229521427628D-16 + 2 3 1 12 -0.17291513271984D+00 -0.30047050682864D-16 + 3 3 1 12 -0.65482328190465D+00 -0.42040042252460D-16 + 1 4 1 12 0.82488655530296D-01 -0.52578636659320D-16 + 2 4 1 12 0.44337442070150D-01 0.51078972268914D-16 + 3 4 1 12 0.44337442938138D-01 -0.20336845461494D-16 + 1 5 1 12 0.82488655530246D-01 -0.51094817265236D-16 + 2 5 1 12 0.44337442070063D-01 -0.47742855228275D-16 + 3 5 1 12 0.44337442938043D-01 0.23375840778701D-16 + 1 6 1 12 -0.84159746553275D+00 -0.89000837696778D-16 + 2 6 1 12 -0.17291513271985D+00 0.29955867350497D-16 + 3 6 1 12 -0.65482328190455D+00 0.41826562974204D-16 + 1 7 1 12 -0.84159746553287D+00 0.83873219617726D-16 + 2 7 1 12 -0.65482328190462D+00 0.31008716771190D-16 + 3 7 1 12 -0.17291513271975D+00 0.28113584556508D-16 + 1 8 1 12 -0.85952380006467D+00 -0.11505036423607D-16 + 2 8 1 12 -0.41978367113100D+00 -0.22480453842295D-16 + 3 8 1 12 -0.41978366990997D+00 0.39004317584538D-16 + 1 9 1 12 -0.49589388544751D+00 0.00000000000000D+00 + 2 9 1 12 0.27091591904267D+00 0.00000000000000D+00 + 3 9 1 12 0.69794258532348D+00 0.00000000000000D+00 + 1 10 1 12 -0.49589388544750D+00 0.00000000000000D+00 + 2 10 1 12 0.69794255498511D+00 0.00000000000000D+00 + 3 10 1 12 0.27091591904266D+00 0.00000000000000D+00 + 1 11 1 12 -0.18276495752185D+01 0.00000000000000D+00 + 2 11 1 12 -0.92567035427521D+00 0.00000000000000D+00 + 3 11 1 12 -0.92567035427521D+00 0.00000000000000D+00 + 1 12 1 12 0.82247383981849D+01 0.00000000000000D+00 + 2 12 1 12 0.40805216593844D+01 0.00000000000000D+00 + 3 12 1 12 0.40804794434844D+01 0.00000000000000D+00 + 1 13 1 12 -0.48017833401539D+00 0.00000000000000D+00 + 2 13 1 12 -0.77295853674392D+00 0.00000000000000D+00 + 3 13 1 12 -0.11883586309346D+01 0.00000000000000D+00 + 1 14 1 12 -0.48017833401539D+00 0.00000000000000D+00 + 2 14 1 12 -0.11883586309345D+01 0.00000000000000D+00 + 3 14 1 12 -0.77295853987440D+00 0.00000000000000D+00 + 1 15 1 12 0.47899160095977D+00 0.00000000000000D+00 + 2 15 1 12 0.24599068237720D+00 0.00000000000000D+00 + 3 15 1 12 0.24599068237719D+00 0.00000000000000D+00 + 1 1 2 12 -0.42410106084857D+00 0.23048679224547D-16 + 2 1 2 12 -0.64781010064714D+00 -0.10932096516084D-15 + 3 1 2 12 -0.83092245794469D-01 -0.23357125113508D-16 + 1 2 2 12 -0.63608121490131D+00 -0.31852297233723D-16 + 2 2 2 12 -0.10848183787485D+01 -0.48083321382453D-16 + 3 2 2 12 -0.60856393978591D+00 -0.39818803373815D-16 + 1 3 2 12 -0.19312936396706D+00 -0.30047050682864D-16 + 2 3 2 12 -0.60960169887291D+00 0.12096405943058D-16 + 3 3 2 12 -0.62238823728602D+00 0.10827384074231D-17 + 1 4 2 12 0.43841413096733D-01 0.51078972268914D-16 + 2 4 2 12 0.29314202400291D+00 0.46924612468858D-16 + 3 4 2 12 0.99981868476957D-01 0.48930832916994D-16 + 1 5 2 12 0.43841413096646D-01 -0.47742855228275D-16 + 2 5 2 12 0.29314202400286D+00 -0.42728730258434D-16 + 3 5 2 12 0.99981868476866D-01 -0.45797037732388D-16 + 1 6 2 12 -0.19312936396707D+00 0.29955867350497D-16 + 2 6 2 12 -0.60960169887299D+00 -0.10705263836463D-16 + 3 6 2 12 -0.62238823728593D+00 -0.24069691967200D-18 + 1 7 2 12 -0.63608121490143D+00 0.31008716771190D-16 + 2 7 2 12 -0.10848183787486D+01 0.46556443021548D-16 + 3 7 2 12 -0.60856393978601D+00 0.39488619651060D-16 + 1 8 2 12 -0.42410106084867D+00 -0.22480453842295D-16 + 2 8 2 12 -0.64781010064722D+00 0.11381334157764D-17 + 3 8 2 12 -0.83092245794583D-01 0.23006489306362D-16 + 1 9 2 12 0.40613714947074D+00 0.00000000000000D+00 + 2 9 2 12 0.83908447744610D+00 0.00000000000000D+00 + 3 9 2 12 0.27091591904266D+00 0.00000000000000D+00 + 1 10 2 12 0.12656934269600D+01 0.00000000000000D+00 + 2 10 2 12 -0.49589388544753D+00 0.00000000000000D+00 + 3 10 2 12 0.40613249084400D+00 0.00000000000000D+00 + 1 11 2 12 -0.92921678721348D+00 0.00000000000000D+00 + 2 11 2 12 -0.19393723643172D+01 0.00000000000000D+00 + 3 11 2 12 -0.10094201363574D+01 0.00000000000000D+00 + 1 12 2 12 0.40805216593844D+01 0.00000000000000D+00 + 2 12 2 12 0.94213549268497D+01 0.00000000000000D+00 + 3 12 2 12 0.45956551761446D+01 0.00000000000000D+00 + 1 13 2 12 -0.89022974534142D+00 0.00000000000000D+00 + 2 13 2 12 -0.33063908471618D+00 0.00000000000000D+00 + 3 13 2 12 -0.13196807417388D+01 0.00000000000000D+00 + 1 14 2 12 -0.17525805797084D+01 0.00000000000000D+00 + 2 14 2 12 -0.29686463014825D+01 0.00000000000000D+00 + 3 14 2 12 -0.16361421429245D+01 0.00000000000000D+00 + 1 15 2 12 0.24036399637900D+00 0.00000000000000D+00 + 2 15 2 12 -0.42438556798305D+00 0.00000000000000D+00 + 3 15 2 12 0.11224813885369D+01 0.00000000000000D+00 + 1 1 3 12 -0.42410106084859D+00 -0.38436912983626D-16 + 2 1 3 12 -0.83092245794469D-01 -0.23357125113508D-16 + 3 1 3 12 -0.64781010064717D+00 -0.43956528576289D-16 + 1 2 3 12 -0.19312936396716D+00 -0.28184402361538D-16 + 2 2 3 12 -0.62238823728590D+00 -0.39818803373815D-16 + 3 2 3 12 -0.60960169887286D+00 0.18617157062638D-16 + 1 3 3 12 -0.63608121490145D+00 -0.42040042252460D-16 + 2 3 3 12 -0.60856393978604D+00 0.10827384074231D-17 + 3 3 3 12 -0.10848183787486D+01 -0.49259304003862D-16 + 1 4 3 12 0.43841413096741D-01 -0.20336845461494D-16 + 2 4 3 12 0.99981868476957D-01 0.48930832916994D-16 + 3 4 3 12 0.29314202400290D+00 -0.43447726926906D-17 + 1 5 3 12 0.43841413096646D-01 0.23375840778701D-16 + 2 5 3 12 0.99981868476866D-01 -0.45797037732388D-16 + 3 5 3 12 0.29314202400280D+00 0.76591390161354D-17 + 1 6 3 12 -0.63608121490136D+00 0.41826562974204D-16 + 2 6 3 12 -0.60856393978595D+00 -0.24069691967200D-18 + 3 6 3 12 -0.10848183787485D+01 0.50285199783796D-16 + 1 7 3 12 -0.19312936396697D+00 0.28113584556508D-16 + 2 7 3 12 -0.62238823728600D+00 0.39488619651060D-16 + 3 7 3 12 -0.60960169887296D+00 -0.12540883710139D-15 + 1 8 3 12 -0.42410106084864D+00 0.39004317584538D-16 + 2 8 3 12 -0.83092245794583D-01 0.23006489306362D-16 + 3 8 3 12 -0.64781010064719D+00 0.43358017741198D-16 + 1 9 3 12 0.12656934269600D+01 0.00000000000000D+00 + 2 9 3 12 0.40613249084401D+00 0.00000000000000D+00 + 3 9 3 12 -0.49589387897324D+00 0.00000000000000D+00 + 1 10 3 12 0.40613714947074D+00 0.00000000000000D+00 + 2 10 3 12 0.27091591924791D+00 0.00000000000000D+00 + 3 10 3 12 0.83908447744609D+00 0.00000000000000D+00 + 1 11 3 12 -0.92921679690965D+00 0.00000000000000D+00 + 2 11 3 12 -0.10094201363574D+01 0.00000000000000D+00 + 3 11 3 12 -0.19393723643172D+01 0.00000000000000D+00 + 1 12 3 12 0.40804794434844D+01 0.00000000000000D+00 + 2 12 3 12 0.45956551761446D+01 0.00000000000000D+00 + 3 12 3 12 0.94213549268516D+01 0.00000000000000D+00 + 1 13 3 12 -0.17525805797084D+01 0.00000000000000D+00 + 2 13 3 12 -0.16361421566901D+01 0.00000000000000D+00 + 3 13 3 12 -0.29686463014825D+01 0.00000000000000D+00 + 1 14 3 12 -0.89022974534142D+00 0.00000000000000D+00 + 2 14 3 12 -0.13196807417388D+01 0.00000000000000D+00 + 3 14 3 12 -0.33063908003183D+00 0.00000000000000D+00 + 1 15 3 12 0.24036399637900D+00 0.00000000000000D+00 + 2 15 3 12 0.11224813885369D+01 0.00000000000000D+00 + 3 15 3 12 -0.42438556798306D+00 0.00000000000000D+00 + 1 1 1 13 -0.62197027082715D+00 0.74345902467765D-16 + 2 1 1 13 -0.55215539430885D+00 0.40178989767220D-16 + 3 1 1 13 -0.18934180872422D+00 -0.35323763612651D-16 + 1 2 1 13 -0.10985456949758D+01 -0.50775642612802D-16 + 2 2 1 13 -0.46549951690126D+00 0.39018462499177D-16 + 3 2 1 13 -0.43293569279109D+00 -0.47536151561031D-16 + 1 3 1 13 0.27810191320605D+00 -0.30531355793304D-16 + 2 3 1 13 0.18267603254340D+00 0.27901902873684D-16 + 3 3 1 13 0.23608132743281D+00 -0.11573057626184D-16 + 1 4 1 13 -0.61353611708306D+00 -0.34656752481096D-18 + 2 4 1 13 0.19230536959935D-01 -0.15630720985914D-16 + 3 4 1 13 -0.42096307747476D+00 0.23353462503000D-16 + 1 5 1 13 -0.61353611708311D+00 -0.18153878283235D-17 + 2 5 1 13 0.19230536959793D-01 0.13278139881464D-16 + 3 5 1 13 -0.42096307747464D+00 -0.25081841766247D-16 + 1 6 1 13 0.27810191320601D+00 0.29800286095800D-16 + 2 6 1 13 0.18267603254337D+00 -0.29006631819349D-16 + 3 6 1 13 0.23608132743278D+00 0.10524962368674D-16 + 1 7 1 13 -0.10985456949756D+01 0.50347145135128D-16 + 2 7 1 13 -0.46549951690112D+00 -0.38319005624268D-16 + 3 7 1 13 -0.43293569279105D+00 0.48860220678850D-16 + 1 8 1 13 -0.62197027082684D+00 0.33490246592980D-16 + 2 8 1 13 -0.55215539430877D+00 -0.39546320491779D-16 + 3 8 1 13 -0.18934180872417D+00 0.35831264202875D-16 + 1 9 1 13 -0.29686463014825D+01 0.00000000000000D+00 + 2 9 1 13 -0.13196807417388D+01 0.00000000000000D+00 + 3 9 1 13 -0.11883586309346D+01 0.00000000000000D+00 + 1 10 1 13 -0.19393723643172D+01 0.00000000000000D+00 + 2 10 1 13 -0.92567035427521D+00 0.00000000000000D+00 + 3 10 1 13 -0.10094201363574D+01 0.00000000000000D+00 + 1 11 1 13 -0.33075312107890D+00 0.00000000000000D+00 + 2 11 1 13 0.97532296232923D+00 0.00000000000000D+00 + 3 11 1 13 0.55374551993815D+00 0.00000000000000D+00 + 1 12 1 13 -0.48017833401539D+00 0.00000000000000D+00 + 2 12 1 13 -0.89022974534142D+00 0.00000000000000D+00 + 3 12 1 13 -0.17525805797084D+01 0.00000000000000D+00 + 1 13 1 13 0.93912926282428D+01 0.00000000000000D+00 + 2 13 1 13 0.47869040519317D+01 0.00000000000000D+00 + 3 13 1 13 0.52254345075389D+01 0.00000000000000D+00 + 1 14 1 13 0.84599295659728D+00 0.00000000000000D+00 + 2 14 1 13 0.55374667279351D+00 0.00000000000000D+00 + 3 14 1 13 0.44149437750969D+00 0.00000000000000D+00 + 1 15 1 13 -0.40305175572334D+00 0.00000000000000D+00 + 2 15 1 13 -0.15472551811413D+01 0.00000000000000D+00 + 3 15 1 13 -0.65443395770625D+00 0.00000000000000D+00 + 1 1 2 13 -0.55697573728526D+00 0.40178989767220D-16 + 2 1 2 13 -0.11328869476134D+01 0.18863756468158D-17 + 3 1 2 13 -0.55697573747977D+00 -0.20858820691275D-16 + 1 2 2 13 -0.45624853283033D+00 0.39018462499177D-16 + 2 2 2 13 -0.46029225366696D+00 0.62934648471938D-16 + 3 2 2 13 0.38716466409421D-02 0.29703671564864D-16 + 1 3 2 13 0.18906932059165D+00 0.27901902873684D-16 + 2 3 2 13 0.38314099552876D+00 0.14296303445397D-17 + 3 3 2 13 0.18906932042798D+00 0.38228316939886D-16 + 1 4 2 13 0.38413751369620D-02 -0.15630720985914D-16 + 2 4 2 13 -0.46031685139057D+00 -0.31173170962328D-16 + 3 4 2 13 -0.45625573160752D+00 0.40965395628261D-16 + 1 5 2 13 0.38413751368199D-02 0.13278139881464D-16 + 2 5 2 13 -0.46031685139059D+00 0.13511136428095D-15 + 3 5 2 13 -0.45625573160732D+00 -0.43186652201727D-16 + 1 6 2 13 0.18906932059162D+00 -0.29006631819349D-16 + 2 6 2 13 0.38314099552876D+00 -0.32931687312281D-17 + 3 6 2 13 0.18906932042795D+00 -0.39654380549831D-16 + 1 7 2 13 -0.45624853283019D+00 -0.38319005624268D-16 + 2 7 2 13 -0.46029225366703D+00 0.46352940848265D-16 + 3 7 2 13 0.38716466408142D-02 -0.27667167148882D-16 + 1 8 2 13 -0.55697573728518D+00 -0.39546320491779D-16 + 2 8 2 13 -0.11328869476134D+01 -0.63894351356251D-18 + 3 8 2 13 -0.55697573747968D+00 0.21696684487055D-16 + 1 9 2 13 -0.16361421429245D+01 0.00000000000000D+00 + 2 9 2 13 -0.33063908003181D+00 0.00000000000000D+00 + 3 9 2 13 -0.77295853987440D+00 0.00000000000000D+00 + 1 10 2 13 -0.92921678721348D+00 0.00000000000000D+00 + 2 10 2 13 -0.18276495752185D+01 0.00000000000000D+00 + 3 10 2 13 -0.92921679690963D+00 0.00000000000000D+00 + 1 11 2 13 0.13073040871633D+01 0.00000000000000D+00 + 2 11 2 13 -0.33075312107893D+00 0.00000000000000D+00 + 3 11 2 13 0.44149437750968D+00 0.00000000000000D+00 + 1 12 2 13 -0.77295853674392D+00 0.00000000000000D+00 + 2 12 2 13 -0.33063908471618D+00 0.00000000000000D+00 + 3 12 2 13 -0.16361421566901D+01 0.00000000000000D+00 + 1 13 2 13 0.47869040519317D+01 0.00000000000000D+00 + 2 13 2 13 0.96151706354322D+01 0.00000000000000D+00 + 3 13 2 13 0.47869040519317D+01 0.00000000000000D+00 + 1 14 2 13 0.44149437750969D+00 0.00000000000000D+00 + 2 14 2 13 -0.33075312107892D+00 0.00000000000000D+00 + 3 14 2 13 0.13073041106144D+01 0.00000000000000D+00 + 1 15 2 13 -0.15548708534881D+01 0.00000000000000D+00 + 2 15 2 13 -0.31211202995316D+01 0.00000000000000D+00 + 3 15 2 13 -0.15548708534881D+01 0.00000000000000D+00 + 1 1 3 13 -0.18934180872422D+00 -0.35323763612651D-16 + 2 1 3 13 -0.55215539430883D+00 -0.20858820691275D-16 + 3 1 3 13 -0.62197027082714D+00 0.16298229251848D-16 + 1 2 3 13 -0.42097177671494D+00 -0.47536151561031D-16 + 2 2 3 13 0.19195618335640D-01 0.29703671564864D-16 + 3 2 3 13 -0.61354060965615D+00 0.12889350387540D-16 + 1 3 3 13 0.23608132743281D+00 -0.11573057626184D-16 + 2 3 3 13 0.18267603254339D+00 0.38228316939886D-16 + 3 3 3 13 0.27810191320608D+00 -0.75485635450626D-17 + 1 4 3 13 -0.43293569279114D+00 0.23353462503000D-16 + 2 4 3 13 -0.46549951690128D+00 0.40965395628261D-16 + 3 4 3 13 -0.10985456949757D+01 -0.18405047823921D-16 + 1 5 3 13 -0.43293569279102D+00 -0.25081841766247D-16 + 2 5 3 13 -0.46549951690109D+00 -0.43186652201727D-16 + 3 5 3 13 -0.10985456949755D+01 0.16644247893056D-16 + 1 6 3 13 0.23608132743278D+00 0.10524962368674D-16 + 2 6 3 13 0.18267603254336D+00 -0.39654380549831D-16 + 3 6 3 13 0.27810191320599D+00 0.58434353753754D-17 + 1 7 3 13 -0.42097177671491D+00 0.48860220678850D-16 + 2 7 3 13 0.19195618335512D-01 -0.27667167148882D-16 + 3 7 3 13 -0.61354060965609D+00 -0.93007543605073D-17 + 1 8 3 13 -0.18934180872417D+00 0.35831264202875D-16 + 2 8 3 13 -0.55215539430874D+00 0.21696684487055D-16 + 3 8 3 13 -0.62197027082707D+00 -0.15426713550715D-16 + 1 9 3 13 -0.17525805797084D+01 0.00000000000000D+00 + 2 9 3 13 -0.89022974534141D+00 0.00000000000000D+00 + 3 9 3 13 -0.48017833401538D+00 0.00000000000000D+00 + 1 10 3 13 -0.10094201363574D+01 0.00000000000000D+00 + 2 10 3 13 -0.92567035427520D+00 0.00000000000000D+00 + 3 10 3 13 -0.19393723643172D+01 0.00000000000000D+00 + 1 11 3 13 0.44149437750969D+00 0.00000000000000D+00 + 2 11 3 13 0.55374551993813D+00 0.00000000000000D+00 + 3 11 3 13 0.84599295659728D+00 0.00000000000000D+00 + 1 12 3 13 -0.11883586309346D+01 0.00000000000000D+00 + 2 12 3 13 -0.13196807417388D+01 0.00000000000000D+00 + 3 12 3 13 -0.29686463014825D+01 0.00000000000000D+00 + 1 13 3 13 0.52254345075389D+01 0.00000000000000D+00 + 2 13 3 13 0.47869040519317D+01 0.00000000000000D+00 + 3 13 3 13 0.93912926282428D+01 0.00000000000000D+00 + 1 14 3 13 0.55374667279352D+00 0.00000000000000D+00 + 2 14 3 13 0.97532296232926D+00 0.00000000000000D+00 + 3 14 3 13 -0.33075312107889D+00 0.00000000000000D+00 + 1 15 3 13 -0.65443395770625D+00 0.00000000000000D+00 + 2 15 3 13 -0.15472551811413D+01 0.00000000000000D+00 + 3 15 3 13 -0.40305175572334D+00 0.00000000000000D+00 + 1 1 1 14 -0.62197027082700D+00 -0.14320979917242D-15 + 2 1 1 14 -0.18934180872420D+00 -0.38531534271186D-16 + 3 1 1 14 -0.55215539430885D+00 -0.26596295353884D-16 + 1 2 1 14 0.27810191320603D+00 0.53617737321585D-16 + 2 2 1 14 0.23608132743278D+00 0.35381328155539D-17 + 3 2 1 14 0.18267603254338D+00 -0.48667894941077D-17 + 1 3 1 14 -0.10985456949756D+01 -0.21498761760469D-16 + 2 3 1 14 -0.43293569279098D+00 0.21633673679803D-16 + 3 3 1 14 -0.46549951690114D+00 0.50395258177981D-16 + 1 4 1 14 -0.61354060965628D+00 -0.37160400570861D-16 + 2 4 1 14 -0.42097177671503D+00 0.30029201473324D-16 + 3 4 1 14 0.19195618335441D-01 -0.44285597900050D-16 + 1 5 1 14 -0.61354060965608D+00 0.14366365404572D-15 + 2 5 1 14 -0.42097177671478D+00 -0.29840319800345D-16 + 3 5 1 14 0.19195618335668D-01 0.43256444774144D-16 + 1 6 1 14 -0.10985456949757D+01 0.21464648167418D-16 + 2 6 1 14 -0.43293569279112D+00 -0.21321008441396D-16 + 3 6 1 14 -0.46549951690123D+00 -0.50755220712140D-16 + 1 7 1 14 0.27810191320602D+00 0.51733310350785D-16 + 2 7 1 14 0.23608132743278D+00 -0.52305132082989D-17 + 3 7 1 14 0.18267603254338D+00 0.31998532686705D-17 + 1 8 1 14 -0.62197027082715D+00 0.35576805473843D-16 + 2 8 1 14 -0.18934180872439D+00 0.38396679712546D-16 + 3 8 1 14 -0.55215539430877D+00 0.26964577835999D-16 + 1 9 1 14 -0.19393723643172D+01 0.00000000000000D+00 + 2 9 1 14 -0.10094201363574D+01 0.00000000000000D+00 + 3 9 1 14 -0.92567035427521D+00 0.00000000000000D+00 + 1 10 1 14 -0.29686463014825D+01 0.00000000000000D+00 + 2 10 1 14 -0.11883586309346D+01 0.00000000000000D+00 + 3 10 1 14 -0.13196807417388D+01 0.00000000000000D+00 + 1 11 1 14 -0.33075312107890D+00 0.00000000000000D+00 + 2 11 1 14 0.55374667279352D+00 0.00000000000000D+00 + 3 11 1 14 0.97532296232926D+00 0.00000000000000D+00 + 1 12 1 14 -0.48017833401539D+00 0.00000000000000D+00 + 2 12 1 14 -0.17525805797084D+01 0.00000000000000D+00 + 3 12 1 14 -0.89022974534142D+00 0.00000000000000D+00 + 1 13 1 14 0.84599295659728D+00 0.00000000000000D+00 + 2 13 1 14 0.44149437750969D+00 0.00000000000000D+00 + 3 13 1 14 0.55374551993815D+00 0.00000000000000D+00 + 1 14 1 14 0.93912926282428D+01 0.00000000000000D+00 + 2 14 1 14 0.52254345075398D+01 0.00000000000000D+00 + 3 14 1 14 0.47869040519327D+01 0.00000000000000D+00 + 1 15 1 14 -0.40305175572333D+00 0.00000000000000D+00 + 2 15 1 14 -0.65443395770624D+00 0.00000000000000D+00 + 3 15 1 14 -0.15472551811413D+01 0.00000000000000D+00 + 1 1 2 14 -0.18934180872420D+00 -0.38531534271186D-16 + 2 1 2 14 -0.62197027082714D+00 0.21052147950822D-16 + 3 1 2 14 -0.55215539430883D+00 -0.16085967982266D-16 + 1 2 2 14 0.23608132743278D+00 0.35381328155539D-17 + 2 2 2 14 0.27810191320603D+00 -0.42972682806550D-16 + 3 2 2 14 0.18267603254336D+00 0.14380619516070D-17 + 1 3 2 14 -0.42097177671483D+00 0.21633673679803D-16 + 2 3 2 14 -0.61354060965622D+00 -0.36732235416566D-16 + 3 3 2 14 0.19195618335455D-01 -0.75330945932665D-17 + 1 4 2 14 -0.43293569279117D+00 0.30029201473324D-16 + 2 4 2 14 -0.10985456949756D+01 0.43628558450947D-16 + 3 4 2 14 -0.46549951690129D+00 -0.31688310401751D-16 + 1 5 2 14 -0.43293569279092D+00 -0.29840319800345D-16 + 2 5 2 14 -0.10985456949757D+01 -0.41802634601698D-16 + 3 5 2 14 -0.46549951690102D+00 0.31634652181788D-16 + 1 6 2 14 -0.42097177671497D+00 -0.21321008441396D-16 + 2 6 2 14 -0.61354060965618D+00 0.37719990827749D-16 + 3 6 2 14 0.19195618335569D-01 0.75186797858757D-17 + 1 7 2 14 0.23608132743278D+00 -0.52305132082989D-17 + 2 7 2 14 0.27810191320607D+00 0.41107118179996D-16 + 3 7 2 14 0.18267603254336D+00 -0.29818814748997D-17 + 1 8 2 14 -0.18934180872439D+00 0.38396679712546D-16 + 2 8 2 14 -0.62197027082712D+00 -0.12907419060113D-15 + 3 8 2 14 -0.55215539430876D+00 0.16322925917862D-16 + 1 9 2 14 -0.10094201363574D+01 0.00000000000000D+00 + 2 9 2 14 -0.19393723643172D+01 0.00000000000000D+00 + 3 9 2 14 -0.92567035427520D+00 0.00000000000000D+00 + 1 10 2 14 -0.17525805797084D+01 0.00000000000000D+00 + 2 10 2 14 -0.48017833401539D+00 0.00000000000000D+00 + 3 10 2 14 -0.89022974534142D+00 0.00000000000000D+00 + 1 11 2 14 0.44149437750970D+00 0.00000000000000D+00 + 2 11 2 14 0.84599295659729D+00 0.00000000000000D+00 + 3 11 2 14 0.55374551993814D+00 0.00000000000000D+00 + 1 12 2 14 -0.11883586309345D+01 0.00000000000000D+00 + 2 12 2 14 -0.29686463014825D+01 0.00000000000000D+00 + 3 12 2 14 -0.13196807417388D+01 0.00000000000000D+00 + 1 13 2 14 0.55374667279351D+00 0.00000000000000D+00 + 2 13 2 14 -0.33075312107892D+00 0.00000000000000D+00 + 3 13 2 14 0.97532296232926D+00 0.00000000000000D+00 + 1 14 2 14 0.52254345075398D+01 0.00000000000000D+00 + 2 14 2 14 0.93912926282428D+01 0.00000000000000D+00 + 3 14 2 14 0.47869040519317D+01 0.00000000000000D+00 + 1 15 2 14 -0.65443395770624D+00 0.00000000000000D+00 + 2 15 2 14 -0.40305175572334D+00 0.00000000000000D+00 + 3 15 2 14 -0.15472551811413D+01 0.00000000000000D+00 + 1 1 3 14 -0.55697573728527D+00 -0.26596295353884D-16 + 2 1 3 14 -0.55697573728524D+00 -0.16085967982266D-16 + 3 1 3 14 -0.11328869476134D+01 -0.49896899836656D-16 + 1 2 3 14 0.18906932059163D+00 -0.48667894941077D-17 + 2 2 3 14 0.18906932059161D+00 0.14380619516070D-17 + 3 2 3 14 0.38314099552875D+00 -0.47013417907229D-17 + 1 3 3 14 -0.45624853283022D+00 0.50395258177981D-16 + 2 3 3 14 0.38716466407573D-02 -0.75330945932665D-17 + 3 3 3 14 -0.46029225366706D+00 -0.20639455125477D-17 + 1 4 3 14 0.38716466407431D-02 -0.44285597900050D-16 + 2 4 3 14 -0.45624853283036D+00 -0.31688310401751D-16 + 3 4 3 14 -0.46029225366705D+00 -0.43555465543515D-16 + 1 5 3 14 0.38716466409705D-02 0.43256444774144D-16 + 2 5 3 14 -0.45624853283009D+00 0.31634652181788D-16 + 3 5 3 14 -0.46029225366683D+00 0.41753549811839D-16 + 1 6 3 14 -0.45624853283030D+00 -0.50755220712140D-16 + 2 6 3 14 0.38716466408710D-02 0.75186797858757D-17 + 3 6 3 14 -0.46029225366695D+00 0.10861854885493D-15 + 1 7 3 14 0.18906932059164D+00 0.31998532686705D-17 + 2 7 3 14 0.18906932059161D+00 -0.29818814748997D-17 + 3 7 3 14 0.38314099552873D+00 0.29145720509200D-17 + 1 8 3 14 -0.55697573728518D+00 0.26964577835999D-16 + 2 8 3 14 -0.55697573728517D+00 0.16322925917862D-16 + 3 8 3 14 -0.11328869476133D+01 0.50969409981055D-16 + 1 9 3 14 -0.92921678721349D+00 0.00000000000000D+00 + 2 9 3 14 -0.92921678721348D+00 0.00000000000000D+00 + 3 9 3 14 -0.18276495752185D+01 0.00000000000000D+00 + 1 10 3 14 -0.16361421429245D+01 0.00000000000000D+00 + 2 10 3 14 -0.77295853987440D+00 0.00000000000000D+00 + 3 10 3 14 -0.33063908003181D+00 0.00000000000000D+00 + 1 11 3 14 0.13073041106144D+01 0.00000000000000D+00 + 2 11 3 14 0.44149437750968D+00 0.00000000000000D+00 + 3 11 3 14 -0.33075312107892D+00 0.00000000000000D+00 + 1 12 3 14 -0.77295853987440D+00 0.00000000000000D+00 + 2 12 3 14 -0.16361421429245D+01 0.00000000000000D+00 + 3 12 3 14 -0.33063908003183D+00 0.00000000000000D+00 + 1 13 3 14 0.44149437750969D+00 0.00000000000000D+00 + 2 13 3 14 0.13073041106144D+01 0.00000000000000D+00 + 3 13 3 14 -0.33075312107889D+00 0.00000000000000D+00 + 1 14 3 14 0.47869040519327D+01 0.00000000000000D+00 + 2 14 3 14 0.47869040519317D+01 0.00000000000000D+00 + 3 14 3 14 0.96151706354322D+01 0.00000000000000D+00 + 1 15 3 14 -0.15548708534881D+01 0.00000000000000D+00 + 2 15 3 14 -0.15548708534881D+01 0.00000000000000D+00 + 3 15 3 14 -0.31211202995317D+01 0.00000000000000D+00 + 1 1 1 15 0.37985955713945D+00 -0.45302346961634D-16 + 2 1 1 15 0.18541425141617D+00 -0.83882774453550D-17 + 3 1 1 15 0.18541425141620D+00 -0.10144168542722D-16 + 1 2 1 15 -0.11928698021042D+01 -0.12642775544520D-16 + 2 2 1 15 -0.62530705513723D+00 -0.32592724639364D-16 + 3 2 1 15 -0.57322368596691D+00 -0.34977941063925D-16 + 1 3 1 15 -0.11928698021040D+01 -0.13771557339268D-15 + 2 3 1 15 -0.57322368596703D+00 -0.41108360574497D-16 + 3 3 1 15 -0.62530705513710D+00 -0.28349201073906D-16 + 1 4 1 15 -0.11400878906464D+01 -0.70983311805445D-17 + 2 4 1 15 -0.56461314306781D+00 -0.12868841284549D-16 + 3 4 1 15 -0.56461314306783D+00 0.23685052709398D-16 + 1 5 1 15 -0.11400878906468D+01 0.79843867385407D-17 + 2 5 1 15 -0.56461314306818D+00 0.10145935268042D-16 + 3 5 1 15 -0.56461314306819D+00 -0.26152696818122D-16 + 1 6 1 15 -0.11928698021042D+01 0.13413880164331D-15 + 2 6 1 15 -0.57322368596676D+00 0.39399679971494D-16 + 3 6 1 15 -0.62530705513730D+00 0.25111000358602D-16 + 1 7 1 15 -0.11928698021040D+01 0.11345625420494D-16 + 2 7 1 15 -0.62530705513703D+00 0.31521493665778D-16 + 3 7 1 15 -0.57322368596688D+00 0.34935145210761D-16 + 1 8 1 15 0.37985955713940D+00 0.50474517478526D-16 + 2 8 1 15 0.18541425141608D+00 0.12844524156240D-16 + 3 8 1 15 0.18541425141607D+00 0.15102731459794D-16 + 1 9 1 15 -0.42438556798305D+00 0.00000000000000D+00 + 2 9 1 15 0.11224813885368D+01 0.00000000000000D+00 + 3 9 1 15 0.24599068237720D+00 0.00000000000000D+00 + 1 10 1 15 -0.42438556798304D+00 0.00000000000000D+00 + 2 10 1 15 0.24599068237721D+00 0.00000000000000D+00 + 3 10 1 15 0.11224813885369D+01 0.00000000000000D+00 + 1 11 1 15 -0.31211202995316D+01 0.00000000000000D+00 + 2 11 1 15 -0.15472551811413D+01 0.00000000000000D+00 + 3 11 1 15 -0.15472551811413D+01 0.00000000000000D+00 + 1 12 1 15 0.47899160095977D+00 0.00000000000000D+00 + 2 12 1 15 0.24036399637900D+00 0.00000000000000D+00 + 3 12 1 15 0.24036399637900D+00 0.00000000000000D+00 + 1 13 1 15 -0.40305175572334D+00 0.00000000000000D+00 + 2 13 1 15 -0.15548708534881D+01 0.00000000000000D+00 + 3 13 1 15 -0.65443395770625D+00 0.00000000000000D+00 + 1 14 1 15 -0.40305175572333D+00 0.00000000000000D+00 + 2 14 1 15 -0.65443395770624D+00 0.00000000000000D+00 + 3 14 1 15 -0.15548708534881D+01 0.00000000000000D+00 + 1 15 1 15 0.10593636891672D+02 0.00000000000000D+00 + 2 15 1 15 0.53054559712018D+01 0.00000000000000D+00 + 3 15 1 15 0.53054559712036D+01 0.00000000000000D+00 + 1 1 2 15 0.18541425141617D+00 -0.83882774453550D-17 + 2 1 2 15 0.37985955713946D+00 0.54174555846891D-17 + 3 1 2 15 0.18541425141617D+00 -0.20708552228028D-16 + 1 2 2 15 -0.62530705513725D+00 -0.32592724639364D-16 + 2 2 2 15 -0.11928698021042D+01 -0.13124236264573D-15 + 3 2 2 15 -0.57322368596687D+00 -0.41282704841113D-16 + 1 3 2 15 -0.56461314306816D+00 -0.41108360574497D-16 + 2 3 2 15 -0.11400878906466D+01 -0.26556039433986D-16 + 3 3 2 15 -0.56461314306816D+00 0.24649070175696D-16 + 1 4 2 15 -0.57322368596667D+00 -0.12868841284549D-16 + 2 4 2 15 -0.11928698021041D+01 0.33045289977248D-17 + 3 4 2 15 -0.62530705513729D+00 0.45724906021097D-17 + 1 5 2 15 -0.57322368596704D+00 0.10145935268042D-16 + 2 5 2 15 -0.11928698021040D+01 -0.10301226852798D-16 + 3 5 2 15 -0.62530705513702D+00 -0.96781155843124D-17 + 1 6 2 15 -0.56461314306789D+00 0.39399679971494D-16 + 2 6 2 15 -0.11400878906463D+01 0.26420380308877D-16 + 3 6 2 15 -0.56461314306786D+00 -0.26735719103047D-16 + 1 7 2 15 -0.62530705513705D+00 0.31521493665778D-16 + 2 7 2 15 -0.11928698021039D+01 -0.85577389911047D-16 + 3 7 2 15 -0.57322368596687D+00 0.41118844156022D-16 + 1 8 2 15 0.18541425141608D+00 0.12844524156240D-16 + 2 8 2 15 0.37985955713936D+00 -0.10144386048436D-18 + 3 8 2 15 0.18541425141606D+00 0.25712668221524D-16 + 1 9 2 15 0.11224813885368D+01 0.00000000000000D+00 + 2 9 2 15 -0.42438556798307D+00 0.00000000000000D+00 + 3 9 2 15 0.24599068237718D+00 0.00000000000000D+00 + 1 10 2 15 0.24036399637901D+00 0.00000000000000D+00 + 2 10 2 15 0.47899160095977D+00 0.00000000000000D+00 + 3 10 2 15 0.24036399637900D+00 0.00000000000000D+00 + 1 11 2 15 -0.15548708534881D+01 0.00000000000000D+00 + 2 11 2 15 -0.40305175572333D+00 0.00000000000000D+00 + 3 11 2 15 -0.65443395770626D+00 0.00000000000000D+00 + 1 12 2 15 0.24599068237720D+00 0.00000000000000D+00 + 2 12 2 15 -0.42438556798305D+00 0.00000000000000D+00 + 3 12 2 15 0.11224813885369D+01 0.00000000000000D+00 + 1 13 2 15 -0.15472551811413D+01 0.00000000000000D+00 + 2 13 2 15 -0.31211202995316D+01 0.00000000000000D+00 + 3 13 2 15 -0.15472551811413D+01 0.00000000000000D+00 + 1 14 2 15 -0.65443395770624D+00 0.00000000000000D+00 + 2 14 2 15 -0.40305175572334D+00 0.00000000000000D+00 + 3 14 2 15 -0.15548708534881D+01 0.00000000000000D+00 + 1 15 2 15 0.53054559712018D+01 0.00000000000000D+00 + 2 15 2 15 0.10593636891672D+02 0.00000000000000D+00 + 3 15 2 15 0.53054559712027D+01 0.00000000000000D+00 + 1 1 3 15 0.18541425141620D+00 -0.10144168542722D-16 + 2 1 3 15 0.18541425141617D+00 -0.20708552228028D-16 + 3 1 3 15 0.37985955713942D+00 -0.79216042423716D-17 + 1 2 3 15 -0.56461314306803D+00 -0.34977941063925D-16 + 2 2 3 15 -0.56461314306801D+00 -0.41282704841113D-16 + 3 2 3 15 -0.11400878906464D+01 0.10551633647095D-16 + 1 3 3 15 -0.62530705513712D+00 -0.28349201073906D-16 + 2 3 3 15 -0.57322368596701D+00 0.24649070175696D-16 + 3 3 3 15 -0.11928698021042D+01 -0.15937535234766D-15 + 1 4 3 15 -0.57322368596668D+00 0.23685052709398D-16 + 2 4 3 15 -0.62530705513729D+00 0.45724906021097D-17 + 3 4 3 15 -0.11928698021040D+01 0.89056494209049D-16 + 1 5 3 15 -0.57322368596704D+00 -0.26152696818122D-16 + 2 5 3 15 -0.62530705513702D+00 -0.96781155843124D-17 + 3 5 3 15 -0.11928698021040D+01 0.11985579139334D-15 + 1 6 3 15 -0.62530705513732D+00 0.25111000358602D-16 + 2 6 3 15 -0.57322368596671D+00 -0.26735719103047D-16 + 3 6 3 15 -0.11928698021040D+01 0.15465564702941D-15 + 1 7 3 15 -0.56461314306801D+00 0.34935145210761D-16 + 2 7 3 15 -0.56461314306800D+00 0.41118844156022D-16 + 3 7 3 15 -0.11400878906466D+01 -0.91281092500745D-17 + 1 8 3 15 0.18541425141607D+00 0.15102731459794D-16 + 2 8 3 15 0.18541425141605D+00 0.25712668221524D-16 + 3 8 3 15 0.37985955713941D+00 0.14739639895634D-16 + 1 9 3 15 0.24036399637900D+00 0.00000000000000D+00 + 2 9 3 15 0.24036399637899D+00 0.00000000000000D+00 + 3 9 3 15 0.47899160095976D+00 0.00000000000000D+00 + 1 10 3 15 0.11224813885369D+01 0.00000000000000D+00 + 2 10 3 15 0.24599068237719D+00 0.00000000000000D+00 + 3 10 3 15 -0.42438556798307D+00 0.00000000000000D+00 + 1 11 3 15 -0.15548708534881D+01 0.00000000000000D+00 + 2 11 3 15 -0.65443395770626D+00 0.00000000000000D+00 + 3 11 3 15 -0.40305175572333D+00 0.00000000000000D+00 + 1 12 3 15 0.24599068237719D+00 0.00000000000000D+00 + 2 12 3 15 0.11224813885369D+01 0.00000000000000D+00 + 3 12 3 15 -0.42438556798306D+00 0.00000000000000D+00 + 1 13 3 15 -0.65443395770625D+00 0.00000000000000D+00 + 2 13 3 15 -0.15548708534881D+01 0.00000000000000D+00 + 3 13 3 15 -0.40305175572334D+00 0.00000000000000D+00 + 1 14 3 15 -0.15472551811413D+01 0.00000000000000D+00 + 2 14 3 15 -0.15472551811413D+01 0.00000000000000D+00 + 3 14 3 15 -0.31211202995317D+01 0.00000000000000D+00 + 1 15 3 15 0.53054559712036D+01 0.00000000000000D+00 + 2 15 3 15 0.53054559712027D+01 0.00000000000000D+00 + 3 15 3 15 0.10593636891672D+02 0.00000000000000D+00 diff --git a/abipy/data/refs/embedding_ifc/CaO_444_DDB b/abipy/data/refs/embedding_ifc/CaO_444_DDB new file mode 100644 index 000000000..c665e2389 --- /dev/null +++ b/abipy/data/refs/embedding_ifc/CaO_444_DDB @@ -0,0 +1,637 @@ + + **** DERIVATIVE DATABASE **** ++DDB, Version number 20230401 + + DDB file merged by PhononWork on Tue Oct 31 10:24:30 2023 + + usepaw 0 + natom 2 + nkpt 64 + nsppol 1 + nsym 48 + ntypat 2 + occopt 1 + nband 9 + acell 0.10000000000000D+01 0.10000000000000D+01 0.10000000000000D+01 + amu 0.40078000000000D+02 0.15999400000000D+02 + dilatmx 0.10000000000000D+01 + ecut 0.35000000000000D+02 + ecutsm 0.00000000000000D+00 + intxc 0 + iscf 7 + ixc 11 + kpt 0.12500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.12500000000000D+00 0.12500000000000D+00 -0.12500000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 -0.12500000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 -0.12500000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 -0.12500000000000D+00 + 0.12500000000000D+00 0.37500000000000D+00 -0.12500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 -0.12500000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 -0.12500000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 -0.12500000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + kptnrm 0.10000000000000D+01 + ngfft 36 36 36 + nspden 1 + nspinor 1 + occ 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.00000000000000D+00 + rprim 0.55843540212000D+01 0.00000000000000D+00 0.32241282974000D+01 + 0.18614513404000D+01 0.52649794626000D+01 0.32241282974000D+01 + 0.00000000000000D+00 0.00000000000000D+00 0.64482565948000D+01 + dfpt_sciss 0.00000000000000D+00 + spinat 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + symafm 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + symrel 1 0 0 0 1 0 0 0 1 + -1 0 0 0 -1 0 0 0 -1 + 0 -1 1 0 -1 0 1 -1 0 + 0 1 -1 0 1 0 -1 1 0 + -1 0 0 -1 0 1 -1 1 0 + 1 0 0 1 0 -1 1 -1 0 + 0 1 -1 1 0 -1 0 0 -1 + 0 -1 1 -1 0 1 0 0 1 + -1 0 0 -1 1 0 -1 0 1 + 1 0 0 1 -1 0 1 0 -1 + 0 -1 1 1 -1 0 0 -1 0 + 0 1 -1 -1 1 0 0 1 0 + 1 0 0 0 0 1 0 1 0 + -1 0 0 0 0 -1 0 -1 0 + 0 1 -1 0 0 -1 1 0 -1 + 0 -1 1 0 0 1 -1 0 1 + -1 0 1 -1 1 0 -1 0 0 + 1 0 -1 1 -1 0 1 0 0 + 0 -1 0 1 -1 0 0 -1 1 + 0 1 0 -1 1 0 0 1 -1 + 1 0 -1 0 0 -1 0 1 -1 + -1 0 1 0 0 1 0 -1 1 + 0 1 0 0 0 1 1 0 0 + 0 -1 0 0 0 -1 -1 0 0 + 1 0 -1 0 1 -1 0 0 -1 + -1 0 1 0 -1 1 0 0 1 + 0 -1 0 0 -1 1 1 -1 0 + 0 1 0 0 1 -1 -1 1 0 + -1 0 1 -1 0 0 -1 1 0 + 1 0 -1 1 0 0 1 -1 0 + 0 1 0 1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 -1 + 0 0 -1 0 1 -1 1 0 -1 + 0 0 1 0 -1 1 -1 0 1 + 1 -1 0 0 -1 1 0 -1 0 + -1 1 0 0 1 -1 0 1 0 + 0 0 1 1 0 0 0 1 0 + 0 0 -1 -1 0 0 0 -1 0 + -1 1 0 -1 0 0 -1 0 1 + 1 -1 0 1 0 0 1 0 -1 + 0 0 1 0 1 0 1 0 0 + 0 0 -1 0 -1 0 -1 0 0 + 1 -1 0 0 -1 0 0 -1 1 + -1 1 0 0 1 0 0 1 -1 + 0 0 -1 1 0 -1 0 1 -1 + 0 0 1 -1 0 1 0 -1 1 + -1 1 0 -1 0 1 -1 0 0 + 1 -1 0 1 0 -1 1 0 0 + tnons 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + tolwfr 0.10000000000000D+01 + tphysel 0.00000000000000D+00 + tsmear 0.10000000000000D-01 + typat 1 2 + wtk 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 0.15625000000000D-01 0.15625000000000D-01 + 0.15625000000000D-01 + xred 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + znucl 0.20000000000000D+02 0.80000000000000D+01 + zion 0.10000000000000D+02 0.60000000000000D+01 + + Description of the potentials (KB energies) + vrsio8 (for pseudopotentials)=100401 + usepaw = 0 + dimekb = 6 lmnmax= 6 + Atom type= 1 pspso= 0 nekb= 6 + iln lpsang iproj ekb(:) + 1 0 1 1.0063789E+01 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 2 0 2 0.0000000E+00 9.7239097E-01 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 3 1 1 0.0000000E+00 0.0000000E+00 3.0498783E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 4 1 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 4.7179907E-01 + 0.0000000E+00 0.0000000E+00 + 5 2 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + -3.4066715E+00 0.0000000E+00 + 6 2 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + -3.4066715E+00 0.0000000E+00 + Atom type= 2 pspso= 0 nekb= 5 + iln lpsang iproj ekb(:) + 1 0 1 6.0567355E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 + 2 0 2 0.0000000E+00 8.2402410E-01 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 + 3 1 1 0.0000000E+00 0.0000000E+00 -4.7171296E+00 0.0000000E+00 + 0.0000000E+00 + 4 1 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 -1.1492707E+00 + 0.0000000E+00 + 5 2 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + -1.3319550E+00 + + **** Database of total energy derivatives **** + Number of data blocks= 10 + + 1st derivatives - # elements : 12 + 1 1 0.00000000000000D+00 0.00000000000000D+00 + 2 1 0.00000000000000D+00 0.00000000000000D+00 + 3 1 0.00000000000000D+00 0.00000000000000D+00 + 1 2 0.00000000000000D+00 0.00000000000000D+00 + 2 2 0.00000000000000D+00 0.00000000000000D+00 + 3 2 0.00000000000000D+00 0.00000000000000D+00 + 1 5 0.30687442086688D-04 0.00000000000000D+00 + 2 5 0.30687442031694D-04 0.00000000000000D+00 + 3 5 0.30687442035281D-04 0.00000000000000D+00 + 1 6 0.00000000000000D+00 0.00000000000000D+00 + 2 6 0.00000000000000D+00 0.00000000000000D+00 + 3 6 0.00000000000000D+00 0.00000000000000D+00 + + Total energy - # elements : 1 + -0.55386791395291D+02 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.11628112156145D+01 0.00000000000000D+00 + 2 1 1 1 0.58140560820391D+00 0.00000000000000D+00 + 3 1 1 1 0.58140560791264D+00 0.00000000000000D+00 + 1 2 1 1 -0.11764188722368D+01 0.00000000000000D+00 + 2 2 1 1 -0.58820943651516D+00 0.00000000000000D+00 + 3 2 1 1 -0.58820943622399D+00 0.00000000000000D+00 + 1 4 1 1 -0.48011522210237D+02 0.00000000000000D+00 + 2 4 1 1 0.11796119636642D-15 0.00000000000000D+00 + 3 4 1 1 -0.58980598183211D-16 0.00000000000000D+00 + 1 1 2 1 0.58140560820414D+00 0.00000000000000D+00 + 2 1 2 1 0.11628112163314D+01 0.00000000000000D+00 + 3 1 2 1 0.58140560791321D+00 0.00000000000000D+00 + 1 2 2 1 -0.58820943651515D+00 0.00000000000000D+00 + 2 2 2 1 -0.11764188729532D+01 0.00000000000000D+00 + 3 2 2 1 -0.58820943622397D+00 0.00000000000000D+00 + 1 4 2 1 0.00000000000000D+00 0.00000000000000D+00 + 2 4 2 1 -0.48011522210237D+02 0.00000000000000D+00 + 3 4 2 1 -0.62450045135165D-16 0.00000000000000D+00 + 1 1 3 1 0.58140560791276D+00 0.00000000000000D+00 + 2 1 3 1 0.58140560791298D+00 0.00000000000000D+00 + 3 1 3 1 0.11628112158241D+01 0.00000000000000D+00 + 1 2 3 1 -0.58820943622398D+00 0.00000000000000D+00 + 2 2 3 1 -0.58820943622397D+00 0.00000000000000D+00 + 3 2 3 1 -0.11764188724480D+01 0.00000000000000D+00 + 1 4 3 1 0.00000000000000D+00 0.00000000000000D+00 + 2 4 3 1 -0.15496863052059D-15 0.00000000000000D+00 + 3 4 3 1 -0.48011522210237D+02 0.00000000000000D+00 + 1 1 1 2 -0.11764188722772D+01 0.00000000000000D+00 + 2 1 1 2 -0.58820943653535D+00 0.00000000000000D+00 + 3 1 1 2 -0.58820943624418D+00 0.00000000000000D+00 + 1 2 1 2 0.16035616857384D+01 0.00000000000000D+00 + 2 2 1 2 0.80178084326508D+00 0.00000000000000D+00 + 3 2 1 2 0.80178084297381D+00 0.00000000000000D+00 + 1 4 1 2 -0.52400513680729D+02 0.00000000000000D+00 + 2 4 1 2 -0.14224732503010D-15 0.00000000000000D+00 + 3 4 1 2 0.35850951836854D-16 0.00000000000000D+00 + 1 1 2 2 -0.58820943653535D+00 0.00000000000000D+00 + 2 1 2 2 -0.11764188729936D+01 0.00000000000000D+00 + 3 1 2 2 -0.58820943624418D+00 0.00000000000000D+00 + 1 2 2 2 0.80178084326553D+00 0.00000000000000D+00 + 2 2 2 2 0.16035616864528D+01 0.00000000000000D+00 + 3 2 2 2 0.80178084297404D+00 0.00000000000000D+00 + 1 4 2 2 -0.14802973661669D-15 0.00000000000000D+00 + 2 4 2 2 -0.52400513680729D+02 0.00000000000000D+00 + 3 4 2 2 0.35850951836854D-16 0.00000000000000D+00 + 1 1 3 2 -0.58820943624418D+00 0.00000000000000D+00 + 2 1 3 2 -0.58820943624417D+00 0.00000000000000D+00 + 3 1 3 2 -0.11764188724883D+01 0.00000000000000D+00 + 1 2 3 2 0.80178084297449D+00 0.00000000000000D+00 + 2 2 3 2 0.80178084297427D+00 0.00000000000000D+00 + 3 2 3 2 0.16035616859467D+01 0.00000000000000D+00 + 1 4 3 2 0.00000000000000D+00 0.00000000000000D+00 + 2 4 3 2 0.21973164029040D-15 0.00000000000000D+00 + 3 4 3 2 -0.52400513680729D+02 0.00000000000000D+00 + 1 1 1 4 -0.48011522210237D+02 0.00000000000000D+00 + 2 1 1 4 0.00000000000000D+00 0.00000000000000D+00 + 3 1 1 4 0.00000000000000D+00 0.00000000000000D+00 + 1 2 1 4 -0.52547986852226D+02 0.00000000000000D+00 + 2 2 1 4 -0.14802973661669D-15 0.00000000000000D+00 + 3 2 1 4 0.00000000000000D+00 0.00000000000000D+00 + 1 4 1 4 -0.59995798009175D+02 0.00000000000000D+00 + 2 4 1 4 0.19998599336392D+02 0.00000000000000D+00 + 3 4 1 4 0.19998599336392D+02 0.00000000000000D+00 + 1 1 2 4 -0.57824115865894D-18 0.00000000000000D+00 + 2 1 2 4 -0.48011522210237D+02 0.00000000000000D+00 + 3 1 2 4 -0.69388939039072D-17 0.00000000000000D+00 + 1 2 2 4 0.26599093298311D-16 0.00000000000000D+00 + 2 2 2 4 -0.52547986852226D+02 0.00000000000000D+00 + 3 2 2 4 -0.76327832942980D-16 0.00000000000000D+00 + 1 4 2 4 0.19998599336392D+02 0.00000000000000D+00 + 2 4 2 4 -0.59995798009175D+02 0.00000000000000D+00 + 3 4 2 4 0.19998599336392D+02 0.00000000000000D+00 + 1 1 3 4 0.56089392389917D-16 0.00000000000000D+00 + 2 1 3 4 -0.65919492087119D-16 0.00000000000000D+00 + 3 1 3 4 -0.48011522210237D+02 0.00000000000000D+00 + 1 2 3 4 -0.61293562817847D-16 0.00000000000000D+00 + 2 2 3 4 0.10755285551056D-15 0.00000000000000D+00 + 3 2 3 4 -0.52547986852226D+02 0.00000000000000D+00 + 1 4 3 4 0.19998599336392D+02 0.00000000000000D+00 + 2 4 3 4 0.19998599336392D+02 0.00000000000000D+00 + 3 4 3 4 -0.59995798009175D+02 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 2.50000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.49704109022102D+01 0.55775407654434D-15 + 2 1 1 1 0.72564061318997D+00 -0.24404709236794D-04 + 3 1 1 1 0.72564061289302D+00 -0.24404709237012D-04 + 1 2 1 1 -0.19649497614192D+01 -0.19650921788040D+01 + 2 2 1 1 -0.29471554967689D+00 -0.29486481559780D+00 + 3 2 1 1 -0.29471554952661D+00 -0.29486481544755D+00 + 1 1 2 1 0.72564061319031D+00 0.24404709237766D-04 + 2 1 2 1 0.14733339476695D+01 0.70501843844038D-16 + 3 1 2 1 0.72390024511856D+00 0.19392040814415D-04 + 1 2 2 1 -0.29677009917968D+00 -0.29682125622589D+00 + 2 2 2 1 -0.59354019831128D+00 -0.59364251240365D+00 + 3 2 2 1 -0.29584522511783D+00 -0.29598722816308D+00 + 1 1 3 1 0.72564061289313D+00 0.24404709237548D-04 + 2 1 3 1 0.72390024511810D+00 -0.19392040814662D-04 + 3 1 3 1 0.14733339472689D+01 -0.16855700534713D-15 + 1 2 3 1 -0.29677009902940D+00 -0.29682125607564D+00 + 2 2 3 1 -0.29584522511783D+00 -0.29598722816308D+00 + 3 2 3 1 -0.59354019805882D+00 -0.59364251215123D+00 + 1 1 1 2 -0.19649497614192D+01 0.19650921788040D+01 + 2 1 1 2 -0.29677009917968D+00 0.29682125622589D+00 + 3 1 1 2 -0.29677009902940D+00 0.29682125607564D+00 + 1 2 1 2 0.45202122042265D+01 -0.42370898379569D-15 + 2 2 1 2 0.14812674570046D+01 -0.10813041050270D-04 + 3 2 1 2 0.14812674567108D+01 -0.10813041050442D-04 + 1 1 2 2 -0.29471554967689D+00 0.29486481559780D+00 + 2 1 2 2 -0.59354019831128D+00 0.59364251240365D+00 + 3 1 2 2 -0.29584522511783D+00 0.29598722816308D+00 + 1 2 2 2 0.14812674570053D+01 0.10813041047803D-04 + 2 2 2 2 0.21160579225566D+01 -0.15866111262676D-14 + 3 2 2 2 0.14845163116358D+01 -0.13656819225436D-04 + 1 1 3 2 -0.29471554952661D+00 0.29486481544755D+00 + 2 1 3 2 -0.29584522511783D+00 0.29598722816308D+00 + 3 1 3 2 -0.59354019805882D+00 0.59364251215123D+00 + 1 2 3 2 0.14812674567120D+01 0.10813041047631D-04 + 2 2 3 2 0.14845163116370D+01 0.13656819222236D-04 + 3 2 3 2 0.21160579220909D+01 -0.19634553346370D-14 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.61260225747299D+01 0.00000000000000D+00 + 2 1 1 1 0.88125668455154D+00 -0.16945728523528D-04 + 3 1 1 1 0.88125668425050D+00 -0.16945728523528D-04 + 1 2 1 1 0.28697560767196D-13 -0.44247208259716D-15 + 2 2 1 1 -0.13583245370388D-13 -0.15494142069373D-14 + 3 2 1 1 0.33774493188880D-13 -0.15742049121742D-14 + 1 1 2 1 0.88125668455189D+00 0.16945728523528D-04 + 2 1 2 1 0.17776727830164D+01 0.00000000000000D+00 + 3 1 2 1 0.87845822752581D+00 0.22006151406274D-04 + 1 2 2 1 -0.13583245370441D-13 -0.15494142157598D-14 + 2 2 2 1 -0.34289057088446D-13 -0.31351417561545D-14 + 3 2 2 1 -0.46101942980734D-13 -0.17375083341158D-14 + 1 1 3 1 0.88125668425062D+00 0.16945728523528D-04 + 2 1 3 1 0.87845822752536D+00 -0.22006151406274D-04 + 3 1 3 1 0.17776727827234D+01 0.00000000000000D+00 + 1 2 3 1 0.33774493188827D-13 -0.15742049209967D-14 + 2 2 3 1 -0.46101942980735D-13 -0.17375083341158D-14 + 3 2 3 1 0.50634130598203D-14 -0.30418541218496D-14 + 1 1 1 2 0.28697560767198D-13 0.44247209141961D-15 + 2 1 1 2 -0.13583245370441D-13 0.15494142157598D-14 + 3 1 1 2 0.33774493188828D-13 0.15742049209967D-14 + 1 2 1 2 0.47157863416151D+01 0.00000000000000D+00 + 2 2 1 2 0.17142971955620D+01 -0.16254767189191D-04 + 3 2 1 2 0.17142971952669D+01 -0.16254767189191D-04 + 1 1 2 2 -0.13583245370387D-13 0.15494142157598D-14 + 2 1 2 2 -0.34289057088444D-13 0.31351417561545D-14 + 3 1 2 2 -0.46101942980734D-13 0.17375083341158D-14 + 1 2 2 2 0.17142971955627D+01 0.16254767189191D-04 + 2 2 2 2 0.25772949344532D+01 0.00000000000000D+00 + 3 2 2 2 0.17169821423201D+01 -0.16898592124051D-04 + 1 1 3 2 0.33774493188881D-13 0.15742049209967D-14 + 2 1 3 2 -0.46101942980734D-13 0.17375083341158D-14 + 3 1 3 2 0.50634130598214D-14 0.30418541218496D-14 + 1 2 3 2 0.17142971952680D+01 0.16254767189191D-04 + 2 2 3 2 0.17169821423213D+01 0.16898592124051D-04 + 3 2 3 2 0.25772949340262D+01 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.37535251093225D+01 -0.38835155031364D-15 + 2 1 1 1 0.27929862273774D+01 0.26181332620701D-16 + 3 1 1 1 0.96053888238134D+00 0.28246529962573D-15 + 1 2 1 1 -0.91882302027015D-04 -0.18850026061593D+01 + 2 2 1 1 -0.91882302029410D-04 -0.14679007014598D+01 + 3 2 1 1 -0.69162718460203D-14 -0.41710190505979D+00 + 1 1 2 1 0.27929862273777D+01 0.26181332620701D-16 + 2 1 2 1 0.37535251097790D+01 0.65954977376271D-15 + 3 1 2 1 0.96053888238146D+00 -0.66249360684099D-15 + 1 2 2 1 -0.91882302029410D-04 -0.14679007014598D+01 + 2 2 2 1 -0.91882302018382D-04 -0.18850026065063D+01 + 3 2 2 1 -0.73076637024515D-14 -0.41710190505978D+00 + 1 1 3 1 0.96053888238146D+00 0.28246529962573D-15 + 2 1 3 1 0.96053888238112D+00 -0.66249360684099D-15 + 3 1 3 1 0.19210777647620D+01 0.17540027963456D-15 + 1 2 3 1 -0.69162718460203D-14 -0.41710190505979D+00 + 2 2 3 1 -0.73076637024515D-14 -0.41710190505979D+00 + 3 2 3 1 0.73621346338518D-14 -0.83420381011948D+00 + 1 1 1 2 -0.20055932717444D-04 0.18850026039801D+01 + 2 1 1 2 -0.20055932719839D-04 0.14679006992806D+01 + 3 1 1 2 -0.69162701519544D-14 0.41710190505979D+00 + 1 2 1 2 0.35744298875784D+01 0.23440582172046D-15 + 2 2 1 2 0.25487799920325D+01 0.19701936063776D-15 + 3 2 1 2 0.10256498960225D+01 -0.64673725180148D-15 + 1 1 2 2 -0.20055932719839D-04 0.14679006992806D+01 + 2 1 2 2 -0.20055932708811D-04 0.18850026043271D+01 + 3 1 2 2 -0.73076603143197D-14 0.41710190505977D+00 + 1 2 2 2 0.25487799920336D+01 0.19701936063776D-15 + 2 2 2 2 0.35744298881991D+01 -0.74812307121249D-16 + 3 2 2 2 0.10256498960230D+01 -0.33156290244348D-15 + 1 1 3 2 -0.69162684578885D-14 0.41710190505979D+00 + 2 1 3 2 -0.73076637024515D-14 0.41710190505978D+00 + 3 1 3 2 0.73621431041813D-14 0.83420381011948D+00 + 1 2 3 2 0.10256498960237D+01 -0.64673725180148D-15 + 2 2 3 2 0.10256498960241D+01 -0.33156290244348D-15 + 3 2 3 2 0.20512997920464D+01 -0.11536559975120D-14 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.50771788505556D+01 -0.65670660039815D-16 + 2 1 1 1 0.18593234816688D+01 -0.22263029322390D-04 + 3 1 1 1 0.11037076648612D+01 -0.31307410602548D-05 + 1 2 1 1 0.60053498289388D+00 -0.60045674910852D+00 + 2 2 1 1 0.32046943963957D+00 -0.32041613000747D+00 + 3 2 1 1 0.11444134310545D+00 -0.11442296662447D+00 + 1 1 2 1 0.18593234816691D+01 0.22263029323384D-04 + 2 1 2 1 0.29240009383504D+01 -0.44559063974189D-15 + 3 1 2 1 0.11029315390092D+01 0.29816251711466D-04 + 1 2 2 1 0.28263762960350D+00 -0.28258836117697D+00 + 2 2 2 1 0.27188938312743D+00 -0.27180319050275D+00 + 3 2 2 1 0.11590097633064D+00 -0.11588317195701D+00 + 1 1 3 1 0.11037076648613D+01 0.31307410606004D-05 + 2 1 3 1 0.11029315390088D+01 -0.29816251711387D-04 + 3 1 3 1 0.22307215312705D+01 0.17120072777449D-16 + 1 2 3 1 0.11568644894817D+00 -0.11570974478267D+00 + 2 2 3 1 0.11568644894813D+00 -0.11570974478271D+00 + 3 2 3 1 0.23137289789632D+00 -0.23141948956537D+00 + 1 1 1 2 0.60053498289388D+00 0.60045674910852D+00 + 2 1 1 2 0.28263762960350D+00 0.28258836117697D+00 + 3 1 1 2 0.11568644894817D+00 0.11570974478267D+00 + 1 2 1 2 0.40700565350571D+01 0.89549269193153D-16 + 2 2 1 2 0.20717752289393D+01 -0.10646661552605D-04 + 3 2 1 2 0.16578524996103D+01 0.83059419527937D-05 + 1 1 2 2 0.32046943963957D+00 0.32041613000747D+00 + 2 1 2 2 0.27188938312743D+00 0.27180319050275D+00 + 3 1 2 2 0.11568644894813D+00 0.11570974478271D+00 + 1 2 2 2 0.20717752289399D+01 0.10646661553149D-04 + 2 2 2 2 0.28954102132579D+01 0.53824724964258D-15 + 3 2 2 2 0.16620719294167D+01 -0.95222823207408D-05 + 1 1 3 2 0.11444134310545D+00 0.11442296662447D+00 + 2 1 3 2 0.11590097633064D+00 0.11588317195701D+00 + 3 1 3 2 0.23137289789632D+00 0.23141948956537D+00 + 1 2 3 2 0.16578524996114D+01 -0.83059419534250D-05 + 2 2 3 2 0.16620719294178D+01 0.95222823207975D-05 + 3 2 3 2 0.24750011344645D+01 -0.64712279283126D-15 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt -2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.35143936997417D+01 0.25672626095563D-15 + 2 1 1 1 0.35310544849301D+00 -0.38270637971914D-04 + 3 1 1 1 0.89434115773315D+00 -0.22111317891816D-04 + 1 2 1 1 -0.69124105459161D+00 -0.21079351222494D-04 + 2 2 1 1 0.20824111651894D+00 0.30776431456203D-04 + 3 2 1 1 -0.18696527861882D+00 -0.34965280412248D-04 + 1 1 2 1 0.35310544849335D+00 0.38270637972403D-04 + 2 1 2 1 0.35143937006828D+01 0.64113062872195D-15 + 3 1 2 1 0.89436526461748D+00 0.22110649616944D-04 + 1 2 2 1 0.20824111651894D+00 -0.30776431407296D-04 + 2 2 2 1 -0.69124105524351D+00 0.21079351235963D-04 + 3 2 2 1 -0.18696690918427D+00 -0.32744686929914D-04 + 1 1 3 1 0.89434115773327D+00 0.22111317892659D-04 + 2 1 3 1 0.89436526461702D+00 -0.22110649616836D-04 + 3 1 3 1 0.17887063903017D+01 -0.40839911306731D-16 + 1 2 3 1 -0.18696609002910D+00 -0.33854983437415D-04 + 2 2 3 1 -0.18696609002910D+00 0.33854983428774D-04 + 3 2 3 1 -0.37393218005819D+00 -0.67709966947082D-04 + 1 1 1 2 -0.69124105459161D+00 0.21079351222494D-04 + 2 1 1 2 0.20824111651894D+00 0.30776431407296D-04 + 3 1 1 2 -0.18696609002910D+00 0.33854983437415D-04 + 1 2 1 2 0.32787789271347D+01 0.46760961573264D-15 + 2 2 1 2 0.11292235721535D+01 -0.11539006765545D-04 + 3 2 1 2 0.12742136539900D+01 0.45769503642235D-05 + 1 1 2 2 0.20824111651894D+00 -0.30776431456203D-04 + 2 1 2 2 -0.69124105524351D+00 -0.21079351235963D-04 + 3 1 2 2 -0.18696609002910D+00 -0.33854983428774D-04 + 1 2 2 2 0.11292235721542D+01 0.11539006766222D-04 + 2 2 2 2 0.32787789279291D+01 0.41815716174540D-15 + 3 2 2 2 0.12738181033196D+01 -0.45766146779913D-05 + 1 1 3 2 -0.18696527861882D+00 0.34965280412248D-04 + 2 1 3 2 -0.18696690918427D+00 0.32744686929914D-04 + 3 1 3 2 -0.37393218005819D+00 0.67709966947082D-04 + 1 2 3 2 0.12742136539912D+01 -0.45769503644192D-05 + 2 2 3 2 0.12738181033208D+01 0.45766146782173D-05 + 3 2 3 2 0.25491814966658D+01 0.16522654497160D-16 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt 5.00000000E-01 5.00000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.40570171075731D+01 0.00000000000000D+00 + 2 1 1 1 0.27114339827838D+01 0.00000000000000D+00 + 3 1 1 1 0.13455831251429D+01 0.00000000000000D+00 + 1 2 1 1 0.69418451277263D+00 0.58569478821478D-04 + 2 2 1 1 0.45774618356999D+00 0.23411587182267D-04 + 3 2 1 1 0.23643832941066D+00 0.35157891639211D-04 + 1 1 2 1 0.27114339827843D+01 0.00000000000000D+00 + 2 1 2 1 0.40570171077213D+01 0.00000000000000D+00 + 3 1 2 1 0.13455831251431D+01 0.00000000000000D+00 + 1 2 2 1 0.45774618357002D+00 0.23411587182267D-04 + 2 2 2 1 0.69418451272331D+00 0.58569478821478D-04 + 3 2 2 1 0.23643832941065D+00 0.35157891639211D-04 + 1 1 3 1 0.13455831251432D+01 0.00000000000000D+00 + 2 1 3 1 0.13455831251429D+01 0.00000000000000D+00 + 3 1 3 1 0.26911662502851D+01 0.00000000000000D+00 + 1 2 3 1 0.23643832941064D+00 0.35157891639211D-04 + 2 2 3 1 0.23643832941063D+00 0.35157891639211D-04 + 3 2 3 1 0.47287665882130D+00 0.70315783278422D-04 + 1 1 1 2 0.69418450988767D+00 -0.58569478813770D-04 + 2 1 1 2 0.45774618068503D+00 -0.23411587174559D-04 + 3 1 1 2 0.23643832941066D+00 -0.35157891639211D-04 + 1 2 1 2 0.31355663647637D+01 0.00000000000000D+00 + 2 2 1 2 0.19538152753960D+01 0.00000000000000D+00 + 3 2 1 2 0.11817510898138D+01 0.00000000000000D+00 + 1 1 2 2 0.45774618068500D+00 -0.23411587174559D-04 + 2 1 2 2 0.69418450983831D+00 -0.58569478813770D-04 + 3 1 2 2 0.23643832941065D+00 -0.35157891639211D-04 + 1 2 2 2 0.19538152753969D+01 0.00000000000000D+00 + 2 2 2 2 0.31355663652730D+01 0.00000000000000D+00 + 3 2 2 2 0.11817510898145D+01 0.00000000000000D+00 + 1 1 3 2 0.23643832941066D+00 -0.35157891639211D-04 + 2 1 3 2 0.23643832941064D+00 -0.35157891639211D-04 + 3 1 3 2 0.47287665882128D+00 -0.70315783278422D-04 + 1 2 3 2 0.11817510898150D+01 0.00000000000000D+00 + 2 2 3 2 0.11817510898154D+01 0.00000000000000D+00 + 3 2 3 2 0.23635021796285D+01 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 36 + qpt -2.50000000E-01 5.00000000E-01 2.50000000E-01 1.0 + 1 1 1 1 0.37186110020125D+01 -0.35161657877549D-05 + 2 1 1 1 0.20181539456380D+01 -0.11145030011347D-04 + 3 1 1 1 0.16722100701728D+01 -0.35161657868431D-05 + 1 2 1 1 0.70750436805307D-05 0.11912368111983D+00 + 2 2 1 1 0.13018643726376D-04 0.11758258384922D+00 + 3 2 1 1 -0.29438242435536D-13 0.36488637431184D-09 + 1 1 2 1 0.20181539456383D+01 0.11145030012368D-04 + 2 1 2 1 0.40647268420796D+01 -0.65701989627437D-16 + 3 1 2 1 0.20182913854940D+01 -0.85508198602872D-05 + 1 2 2 1 0.70750437227836D-05 0.11912368089454D+00 + 2 2 2 1 -0.15807412479014D-04 0.41344212389043D-05 + 3 2 2 1 -0.70750437032307D-05 -0.11912368030523D+00 + 1 1 3 1 0.16722100701727D+01 -0.35161657868431D-05 + 2 1 3 1 0.20182913854935D+01 0.85508198617940D-05 + 3 1 3 1 0.37186110026992D+01 -0.35161657872801D-05 + 1 2 3 1 -0.29438320786073D-13 0.36488637431184D-09 + 2 2 3 1 -0.14554285027591D-04 -0.11758841038338D+00 + 3 2 3 1 -0.70750437204701D-05 -0.11912368028721D+00 + 1 1 1 2 -0.70750438061485D-05 -0.11646650344298D+00 + 2 1 1 2 -0.70750437638949D-05 -0.11646650321769D+00 + 3 1 1 2 -0.29437727016051D-13 -0.36488637431184D-09 + 1 2 1 2 0.27049319329071D+01 0.49073385511905D-05 + 2 2 1 2 0.20339921185616D+01 -0.17413317749728D-04 + 3 2 1 2 0.15091484967325D+01 0.49073385484902D-05 + 1 1 2 2 0.13018643726376D-04 -0.11758258384922D+00 + 2 1 2 2 -0.15807412479014D-04 -0.41344212389043D-05 + 3 1 2 2 -0.14554285027591D-04 0.11758841038338D+00 + 1 2 2 2 0.20339921185623D+01 0.17413317752844D-04 + 2 2 2 2 0.32240111516990D+01 0.25367991342759D-14 + 3 2 2 2 0.20336044350133D+01 -0.10671132178726D-04 + 1 1 3 2 -0.29437812566368D-13 -0.36488637431184D-09 + 2 1 3 2 0.70750437834499D-05 0.11646650262837D+00 + 3 1 3 2 0.70750437662101D-05 0.11646650261036D+00 + 1 2 3 2 0.15091484967334D+01 0.49073385484902D-05 + 2 2 3 2 0.20336044350145D+01 0.10671132182267D-04 + 3 2 3 2 0.27049319332887D+01 0.49073385488338D-05 diff --git a/abipy/data/refs/embedding_ifc/SrCl2_DDB b/abipy/data/refs/embedding_ifc/SrCl2_DDB new file mode 100644 index 000000000..6e8cc11b7 --- /dev/null +++ b/abipy/data/refs/embedding_ifc/SrCl2_DDB @@ -0,0 +1,4115 @@ + + **** DERIVATIVE DATABASE **** ++DDB, Version number 100401 + + DDB file merged by PhononWork on Wed Nov 17 17:20:23 2021 + + usepaw 0 + natom 3 + nkpt 1024 + nsppol 1 + nsym 48 + ntypat 2 + occopt 1 + nband 28 + acell 0.10000000000000D+01 0.10000000000000D+01 0.10000000000000D+01 + amu 0.87620000000000D+02 0.35452700000000D+02 + dilatmx 0.10000000000000D+01 + ecut 0.30000000000000D+02 + ecutsm 0.00000000000000D+00 + intxc 0 + iscf 7 + ixc 11 + kpt -0.62500000000000D-01 -0.12500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.62500000000000D-01 0.00000000000000D+00 + -0.62500000000000D-01 -0.62500000000000D-01 0.62500000000000D-01 + -0.62500000000000D-01 -0.25000000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.18750000000000D+00 0.00000000000000D+00 + -0.62500000000000D-01 -0.18750000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.62500000000000D-01 + -0.62500000000000D-01 -0.12500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.62500000000000D-01 0.00000000000000D+00 + -0.18750000000000D+00 -0.62500000000000D-01 0.62500000000000D-01 + -0.12500000000000D+00 -0.62500000000000D-01 0.12500000000000D+00 + -0.62500000000000D-01 -0.62500000000000D-01 0.18750000000000D+00 + -0.62500000000000D-01 -0.37500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.31250000000000D+00 0.00000000000000D+00 + -0.62500000000000D-01 -0.31250000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 0.62500000000000D-01 + -0.62500000000000D-01 -0.25000000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.18750000000000D+00 0.00000000000000D+00 + -0.18750000000000D+00 -0.18750000000000D+00 0.62500000000000D-01 + -0.12500000000000D+00 -0.18750000000000D+00 0.12500000000000D+00 + -0.62500000000000D-01 -0.18750000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.18750000000000D+00 + -0.62500000000000D-01 -0.12500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.62500000000000D-01 0.00000000000000D+00 + -0.31250000000000D+00 -0.62500000000000D-01 0.62500000000000D-01 + -0.25000000000000D+00 -0.62500000000000D-01 0.12500000000000D+00 + -0.18750000000000D+00 -0.62500000000000D-01 0.18750000000000D+00 + -0.12500000000000D+00 -0.62500000000000D-01 0.25000000000000D+00 + -0.62500000000000D-01 -0.62500000000000D-01 0.31250000000000D+00 + -0.62500000000000D-01 0.50000000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.43750000000000D+00 0.00000000000000D+00 + -0.62500000000000D-01 -0.43750000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.62500000000000D-01 + -0.62500000000000D-01 -0.37500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.31250000000000D+00 0.00000000000000D+00 + -0.18750000000000D+00 -0.31250000000000D+00 0.62500000000000D-01 + -0.12500000000000D+00 -0.31250000000000D+00 0.12500000000000D+00 + -0.62500000000000D-01 -0.31250000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 0.18750000000000D+00 + -0.62500000000000D-01 -0.25000000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.18750000000000D+00 0.00000000000000D+00 + -0.31250000000000D+00 -0.18750000000000D+00 0.62500000000000D-01 + -0.25000000000000D+00 -0.18750000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 -0.18750000000000D+00 0.18750000000000D+00 + -0.12500000000000D+00 -0.18750000000000D+00 0.25000000000000D+00 + -0.62500000000000D-01 -0.18750000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.62500000000000D-01 + -0.31250000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.18750000000000D+00 + -0.18750000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.31250000000000D+00 + -0.62500000000000D-01 -0.12500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.62500000000000D-01 0.00000000000000D+00 + -0.43750000000000D+00 -0.62500000000000D-01 0.62500000000000D-01 + -0.37500000000000D+00 -0.62500000000000D-01 0.12500000000000D+00 + -0.31250000000000D+00 -0.62500000000000D-01 0.18750000000000D+00 + -0.25000000000000D+00 -0.62500000000000D-01 0.25000000000000D+00 + -0.18750000000000D+00 -0.62500000000000D-01 0.31250000000000D+00 + -0.12500000000000D+00 -0.62500000000000D-01 0.37500000000000D+00 + -0.62500000000000D-01 -0.62500000000000D-01 0.43750000000000D+00 + -0.62500000000000D-01 0.37500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 0.43750000000000D+00 0.00000000000000D+00 + -0.62500000000000D-01 0.43750000000000D+00 0.62500000000000D-01 + -0.12500000000000D+00 0.50000000000000D+00 0.62500000000000D-01 + -0.62500000000000D-01 0.50000000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 -0.43750000000000D+00 0.62500000000000D-01 + -0.12500000000000D+00 -0.43750000000000D+00 0.12500000000000D+00 + -0.62500000000000D-01 -0.43750000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.18750000000000D+00 + -0.62500000000000D-01 -0.37500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.31250000000000D+00 0.00000000000000D+00 + -0.31250000000000D+00 -0.31250000000000D+00 0.62500000000000D-01 + -0.25000000000000D+00 -0.31250000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 -0.31250000000000D+00 0.18750000000000D+00 + -0.12500000000000D+00 -0.31250000000000D+00 0.25000000000000D+00 + -0.62500000000000D-01 -0.31250000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.62500000000000D-01 + -0.31250000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.18750000000000D+00 + -0.18750000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 0.31250000000000D+00 + -0.62500000000000D-01 -0.25000000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.18750000000000D+00 0.00000000000000D+00 + -0.43750000000000D+00 -0.18750000000000D+00 0.62500000000000D-01 + -0.37500000000000D+00 -0.18750000000000D+00 0.12500000000000D+00 + -0.31250000000000D+00 -0.18750000000000D+00 0.18750000000000D+00 + -0.25000000000000D+00 -0.18750000000000D+00 0.25000000000000D+00 + -0.18750000000000D+00 -0.18750000000000D+00 0.31250000000000D+00 + -0.12500000000000D+00 -0.18750000000000D+00 0.37500000000000D+00 + -0.62500000000000D-01 -0.18750000000000D+00 0.43750000000000D+00 + 0.43750000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.62500000000000D-01 + -0.43750000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.31250000000000D+00 + -0.18750000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 0.43750000000000D+00 + -0.62500000000000D-01 -0.12500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 -0.62500000000000D-01 0.00000000000000D+00 + 0.43750000000000D+00 -0.62500000000000D-01 0.62500000000000D-01 + 0.50000000000000D+00 -0.62500000000000D-01 0.12500000000000D+00 + -0.43750000000000D+00 -0.62500000000000D-01 0.18750000000000D+00 + -0.37500000000000D+00 -0.62500000000000D-01 0.25000000000000D+00 + -0.31250000000000D+00 -0.62500000000000D-01 0.31250000000000D+00 + -0.25000000000000D+00 -0.62500000000000D-01 0.37500000000000D+00 + -0.18750000000000D+00 -0.62500000000000D-01 0.43750000000000D+00 + -0.12500000000000D+00 -0.62500000000000D-01 0.50000000000000D+00 + -0.62500000000000D-01 -0.62500000000000D-01 -0.43750000000000D+00 + -0.12500000000000D+00 0.31250000000000D+00 0.00000000000000D+00 + -0.62500000000000D-01 0.31250000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 0.37500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 0.62500000000000D-01 + -0.62500000000000D-01 0.37500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.43750000000000D+00 0.00000000000000D+00 + -0.18750000000000D+00 0.43750000000000D+00 0.62500000000000D-01 + -0.12500000000000D+00 0.43750000000000D+00 0.12500000000000D+00 + -0.62500000000000D-01 0.43750000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 0.18750000000000D+00 + -0.62500000000000D-01 0.50000000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.43750000000000D+00 0.00000000000000D+00 + -0.31250000000000D+00 -0.43750000000000D+00 0.62500000000000D-01 + -0.25000000000000D+00 -0.43750000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 -0.43750000000000D+00 0.18750000000000D+00 + -0.12500000000000D+00 -0.43750000000000D+00 0.25000000000000D+00 + -0.62500000000000D-01 -0.43750000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.62500000000000D-01 + -0.31250000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 0.18750000000000D+00 + -0.18750000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.31250000000000D+00 + -0.62500000000000D-01 -0.37500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.31250000000000D+00 0.00000000000000D+00 + -0.43750000000000D+00 -0.31250000000000D+00 0.62500000000000D-01 + -0.37500000000000D+00 -0.31250000000000D+00 0.12500000000000D+00 + -0.31250000000000D+00 -0.31250000000000D+00 0.18750000000000D+00 + -0.25000000000000D+00 -0.31250000000000D+00 0.25000000000000D+00 + -0.18750000000000D+00 -0.31250000000000D+00 0.31250000000000D+00 + -0.12500000000000D+00 -0.31250000000000D+00 0.37500000000000D+00 + -0.62500000000000D-01 -0.31250000000000D+00 0.43750000000000D+00 + 0.43750000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 0.62500000000000D-01 + -0.43750000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.31250000000000D+00 + -0.18750000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 0.43750000000000D+00 + -0.62500000000000D-01 -0.25000000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 -0.18750000000000D+00 0.00000000000000D+00 + 0.43750000000000D+00 -0.18750000000000D+00 0.62500000000000D-01 + 0.50000000000000D+00 -0.18750000000000D+00 0.12500000000000D+00 + -0.43750000000000D+00 -0.18750000000000D+00 0.18750000000000D+00 + -0.37500000000000D+00 -0.18750000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.18750000000000D+00 0.37500000000000D+00 + -0.18750000000000D+00 -0.18750000000000D+00 0.43750000000000D+00 + -0.12500000000000D+00 -0.18750000000000D+00 0.50000000000000D+00 + -0.62500000000000D-01 -0.18750000000000D+00 -0.43750000000000D+00 + 0.31250000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.62500000000000D-01 + 0.43750000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.18750000000000D+00 + -0.43750000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 0.43750000000000D+00 + -0.18750000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 -0.43750000000000D+00 + -0.62500000000000D-01 -0.12500000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 -0.62500000000000D-01 0.00000000000000D+00 + 0.31250000000000D+00 -0.62500000000000D-01 0.62500000000000D-01 + 0.37500000000000D+00 -0.62500000000000D-01 0.12500000000000D+00 + 0.43750000000000D+00 -0.62500000000000D-01 0.18750000000000D+00 + 0.50000000000000D+00 -0.62500000000000D-01 0.25000000000000D+00 + -0.43750000000000D+00 -0.62500000000000D-01 0.31250000000000D+00 + -0.37500000000000D+00 -0.62500000000000D-01 0.37500000000000D+00 + -0.31250000000000D+00 -0.62500000000000D-01 0.43750000000000D+00 + -0.25000000000000D+00 -0.62500000000000D-01 0.50000000000000D+00 + -0.18750000000000D+00 -0.62500000000000D-01 -0.43750000000000D+00 + -0.12500000000000D+00 -0.62500000000000D-01 -0.37500000000000D+00 + -0.62500000000000D-01 -0.62500000000000D-01 -0.31250000000000D+00 + -0.62500000000000D-01 0.12500000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 0.18750000000000D+00 0.00000000000000D+00 + -0.62500000000000D-01 0.18750000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 0.25000000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 0.62500000000000D-01 + -0.62500000000000D-01 0.25000000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.31250000000000D+00 0.00000000000000D+00 + -0.18750000000000D+00 0.31250000000000D+00 0.62500000000000D-01 + -0.12500000000000D+00 0.31250000000000D+00 0.12500000000000D+00 + -0.62500000000000D-01 0.31250000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 0.37500000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 0.18750000000000D+00 + -0.62500000000000D-01 0.37500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.43750000000000D+00 0.00000000000000D+00 + -0.31250000000000D+00 0.43750000000000D+00 0.62500000000000D-01 + -0.25000000000000D+00 0.43750000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 0.43750000000000D+00 0.18750000000000D+00 + -0.12500000000000D+00 0.43750000000000D+00 0.25000000000000D+00 + -0.62500000000000D-01 0.43750000000000D+00 0.31250000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 0.62500000000000D-01 + -0.31250000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 0.18750000000000D+00 + -0.18750000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 0.31250000000000D+00 + -0.62500000000000D-01 0.50000000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.43750000000000D+00 0.00000000000000D+00 + -0.43750000000000D+00 -0.43750000000000D+00 0.62500000000000D-01 + -0.37500000000000D+00 -0.43750000000000D+00 0.12500000000000D+00 + -0.31250000000000D+00 -0.43750000000000D+00 0.18750000000000D+00 + -0.25000000000000D+00 -0.43750000000000D+00 0.25000000000000D+00 + -0.18750000000000D+00 -0.43750000000000D+00 0.31250000000000D+00 + -0.12500000000000D+00 -0.43750000000000D+00 0.37500000000000D+00 + -0.62500000000000D-01 -0.43750000000000D+00 0.43750000000000D+00 + 0.43750000000000D+00 -0.37500000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.62500000000000D-01 + -0.43750000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 0.31250000000000D+00 + -0.18750000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 0.43750000000000D+00 + -0.62500000000000D-01 -0.37500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 -0.31250000000000D+00 0.00000000000000D+00 + 0.43750000000000D+00 -0.31250000000000D+00 0.62500000000000D-01 + 0.50000000000000D+00 -0.31250000000000D+00 0.12500000000000D+00 + -0.43750000000000D+00 -0.31250000000000D+00 0.18750000000000D+00 + -0.37500000000000D+00 -0.31250000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 -0.31250000000000D+00 0.31250000000000D+00 + -0.25000000000000D+00 -0.31250000000000D+00 0.37500000000000D+00 + -0.18750000000000D+00 -0.31250000000000D+00 0.43750000000000D+00 + -0.12500000000000D+00 -0.31250000000000D+00 0.50000000000000D+00 + -0.62500000000000D-01 -0.31250000000000D+00 -0.43750000000000D+00 + 0.31250000000000D+00 -0.25000000000000D+00 0.00000000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.62500000000000D-01 + 0.43750000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 0.18750000000000D+00 + -0.43750000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.31250000000000D+00 + -0.31250000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 0.43750000000000D+00 + -0.18750000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 -0.43750000000000D+00 + -0.62500000000000D-01 -0.25000000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 -0.18750000000000D+00 0.00000000000000D+00 + 0.31250000000000D+00 -0.18750000000000D+00 0.62500000000000D-01 + 0.37500000000000D+00 -0.18750000000000D+00 0.12500000000000D+00 + 0.43750000000000D+00 -0.18750000000000D+00 0.18750000000000D+00 + 0.50000000000000D+00 -0.18750000000000D+00 0.25000000000000D+00 + -0.43750000000000D+00 -0.18750000000000D+00 0.31250000000000D+00 + -0.37500000000000D+00 -0.18750000000000D+00 0.37500000000000D+00 + -0.31250000000000D+00 -0.18750000000000D+00 0.43750000000000D+00 + -0.25000000000000D+00 -0.18750000000000D+00 0.50000000000000D+00 + -0.18750000000000D+00 -0.18750000000000D+00 -0.43750000000000D+00 + -0.12500000000000D+00 -0.18750000000000D+00 -0.37500000000000D+00 + -0.62500000000000D-01 -0.18750000000000D+00 -0.31250000000000D+00 + 0.18750000000000D+00 -0.12500000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.62500000000000D-01 + 0.31250000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.18750000000000D+00 + 0.43750000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + -0.43750000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 0.43750000000000D+00 + -0.31250000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 -0.43750000000000D+00 + -0.18750000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 -0.31250000000000D+00 + -0.62500000000000D-01 -0.12500000000000D+00 -0.25000000000000D+00 + 0.12500000000000D+00 -0.62500000000000D-01 0.00000000000000D+00 + 0.18750000000000D+00 -0.62500000000000D-01 0.62500000000000D-01 + 0.25000000000000D+00 -0.62500000000000D-01 0.12500000000000D+00 + 0.31250000000000D+00 -0.62500000000000D-01 0.18750000000000D+00 + 0.37500000000000D+00 -0.62500000000000D-01 0.25000000000000D+00 + 0.43750000000000D+00 -0.62500000000000D-01 0.31250000000000D+00 + 0.50000000000000D+00 -0.62500000000000D-01 0.37500000000000D+00 + -0.43750000000000D+00 -0.62500000000000D-01 0.43750000000000D+00 + -0.37500000000000D+00 -0.62500000000000D-01 0.50000000000000D+00 + -0.31250000000000D+00 -0.62500000000000D-01 -0.43750000000000D+00 + -0.25000000000000D+00 -0.62500000000000D-01 -0.37500000000000D+00 + -0.18750000000000D+00 -0.62500000000000D-01 -0.31250000000000D+00 + -0.12500000000000D+00 -0.62500000000000D-01 -0.25000000000000D+00 + -0.62500000000000D-01 -0.62500000000000D-01 -0.18750000000000D+00 + -0.62500000000000D-01 0.00000000000000D+00 0.00000000000000D+00 + -0.62500000000000D-01 0.62500000000000D-01 0.62500000000000D-01 + -0.12500000000000D+00 0.12500000000000D+00 0.62500000000000D-01 + -0.62500000000000D-01 0.12500000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 0.18750000000000D+00 0.62500000000000D-01 + -0.12500000000000D+00 0.18750000000000D+00 0.12500000000000D+00 + -0.62500000000000D-01 0.18750000000000D+00 0.18750000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 0.18750000000000D+00 + -0.62500000000000D-01 0.25000000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 0.31250000000000D+00 0.62500000000000D-01 + -0.25000000000000D+00 0.31250000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 0.31250000000000D+00 0.18750000000000D+00 + -0.12500000000000D+00 0.31250000000000D+00 0.25000000000000D+00 + -0.62500000000000D-01 0.31250000000000D+00 0.31250000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.62500000000000D-01 + -0.31250000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 0.18750000000000D+00 + -0.18750000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 0.31250000000000D+00 + -0.62500000000000D-01 0.37500000000000D+00 0.37500000000000D+00 + -0.43750000000000D+00 0.43750000000000D+00 0.62500000000000D-01 + -0.37500000000000D+00 0.43750000000000D+00 0.12500000000000D+00 + -0.31250000000000D+00 0.43750000000000D+00 0.18750000000000D+00 + -0.25000000000000D+00 0.43750000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 0.43750000000000D+00 0.37500000000000D+00 + -0.62500000000000D-01 0.43750000000000D+00 0.43750000000000D+00 + 0.43750000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.62500000000000D-01 + -0.43750000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 0.31250000000000D+00 + -0.18750000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 0.43750000000000D+00 + -0.62500000000000D-01 0.50000000000000D+00 0.50000000000000D+00 + 0.43750000000000D+00 -0.43750000000000D+00 0.62500000000000D-01 + 0.50000000000000D+00 -0.43750000000000D+00 0.12500000000000D+00 + -0.43750000000000D+00 -0.43750000000000D+00 0.18750000000000D+00 + -0.37500000000000D+00 -0.43750000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 -0.43750000000000D+00 0.31250000000000D+00 + -0.25000000000000D+00 -0.43750000000000D+00 0.37500000000000D+00 + -0.18750000000000D+00 -0.43750000000000D+00 0.43750000000000D+00 + -0.12500000000000D+00 -0.43750000000000D+00 0.50000000000000D+00 + -0.62500000000000D-01 -0.43750000000000D+00 -0.43750000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.62500000000000D-01 + 0.43750000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.18750000000000D+00 + -0.43750000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.31250000000000D+00 + -0.31250000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 0.43750000000000D+00 + -0.18750000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 -0.43750000000000D+00 + -0.62500000000000D-01 -0.37500000000000D+00 -0.37500000000000D+00 + 0.31250000000000D+00 -0.31250000000000D+00 0.62500000000000D-01 + 0.43750000000000D+00 -0.31250000000000D+00 0.18750000000000D+00 + 0.50000000000000D+00 -0.31250000000000D+00 0.25000000000000D+00 + -0.43750000000000D+00 -0.31250000000000D+00 0.31250000000000D+00 + -0.37500000000000D+00 -0.31250000000000D+00 0.37500000000000D+00 + -0.31250000000000D+00 -0.31250000000000D+00 0.43750000000000D+00 + -0.25000000000000D+00 -0.31250000000000D+00 0.50000000000000D+00 + -0.18750000000000D+00 -0.31250000000000D+00 -0.43750000000000D+00 + -0.12500000000000D+00 -0.31250000000000D+00 -0.37500000000000D+00 + -0.62500000000000D-01 -0.31250000000000D+00 -0.31250000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 0.62500000000000D-01 + 0.31250000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.18750000000000D+00 + 0.43750000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 0.43750000000000D+00 + -0.31250000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 -0.43750000000000D+00 + -0.18750000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 -0.31250000000000D+00 + -0.62500000000000D-01 -0.25000000000000D+00 -0.25000000000000D+00 + 0.18750000000000D+00 -0.18750000000000D+00 0.62500000000000D-01 + 0.25000000000000D+00 -0.18750000000000D+00 0.12500000000000D+00 + 0.31250000000000D+00 -0.18750000000000D+00 0.18750000000000D+00 + 0.37500000000000D+00 -0.18750000000000D+00 0.25000000000000D+00 + 0.43750000000000D+00 -0.18750000000000D+00 0.31250000000000D+00 + 0.50000000000000D+00 -0.18750000000000D+00 0.37500000000000D+00 + -0.43750000000000D+00 -0.18750000000000D+00 0.43750000000000D+00 + -0.37500000000000D+00 -0.18750000000000D+00 0.50000000000000D+00 + -0.31250000000000D+00 -0.18750000000000D+00 -0.43750000000000D+00 + -0.25000000000000D+00 -0.18750000000000D+00 -0.37500000000000D+00 + -0.18750000000000D+00 -0.18750000000000D+00 -0.31250000000000D+00 + -0.12500000000000D+00 -0.18750000000000D+00 -0.25000000000000D+00 + -0.62500000000000D-01 -0.18750000000000D+00 -0.18750000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.62500000000000D-01 + 0.18750000000000D+00 -0.12500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.18750000000000D+00 + 0.31250000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.31250000000000D+00 + 0.43750000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 0.43750000000000D+00 + -0.43750000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.43750000000000D+00 + -0.31250000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 -0.31250000000000D+00 + -0.18750000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 -0.18750000000000D+00 + -0.62500000000000D-01 -0.12500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.62500000000000D-01 0.00000000000000D+00 + 0.62500000000000D-01 -0.62500000000000D-01 0.62500000000000D-01 + 0.12500000000000D+00 -0.62500000000000D-01 0.12500000000000D+00 + 0.18750000000000D+00 -0.62500000000000D-01 0.18750000000000D+00 + 0.25000000000000D+00 -0.62500000000000D-01 0.25000000000000D+00 + 0.31250000000000D+00 -0.62500000000000D-01 0.31250000000000D+00 + 0.37500000000000D+00 -0.62500000000000D-01 0.37500000000000D+00 + 0.43750000000000D+00 -0.62500000000000D-01 0.43750000000000D+00 + 0.50000000000000D+00 -0.62500000000000D-01 0.50000000000000D+00 + -0.43750000000000D+00 -0.62500000000000D-01 -0.43750000000000D+00 + -0.37500000000000D+00 -0.62500000000000D-01 -0.37500000000000D+00 + -0.31250000000000D+00 -0.62500000000000D-01 -0.31250000000000D+00 + -0.25000000000000D+00 -0.62500000000000D-01 -0.25000000000000D+00 + -0.18750000000000D+00 -0.62500000000000D-01 -0.18750000000000D+00 + -0.12500000000000D+00 -0.62500000000000D-01 -0.12500000000000D+00 + -0.62500000000000D-01 -0.62500000000000D-01 -0.62500000000000D-01 + -0.18750000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 0.62500000000000D-01 + -0.62500000000000D-01 0.00000000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 0.62500000000000D-01 0.62500000000000D-01 + -0.12500000000000D+00 0.62500000000000D-01 0.12500000000000D+00 + -0.62500000000000D-01 0.62500000000000D-01 0.18750000000000D+00 + -0.25000000000000D+00 0.12500000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 0.18750000000000D+00 + -0.62500000000000D-01 0.12500000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 0.18750000000000D+00 0.62500000000000D-01 + -0.25000000000000D+00 0.18750000000000D+00 0.12500000000000D+00 + -0.18750000000000D+00 0.18750000000000D+00 0.18750000000000D+00 + -0.12500000000000D+00 0.18750000000000D+00 0.25000000000000D+00 + -0.62500000000000D-01 0.18750000000000D+00 0.31250000000000D+00 + -0.37500000000000D+00 0.25000000000000D+00 0.62500000000000D-01 + -0.31250000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 0.18750000000000D+00 + -0.18750000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 0.31250000000000D+00 + -0.62500000000000D-01 0.25000000000000D+00 0.37500000000000D+00 + -0.43750000000000D+00 0.31250000000000D+00 0.62500000000000D-01 + -0.37500000000000D+00 0.31250000000000D+00 0.12500000000000D+00 + -0.31250000000000D+00 0.31250000000000D+00 0.18750000000000D+00 + -0.25000000000000D+00 0.31250000000000D+00 0.25000000000000D+00 + -0.18750000000000D+00 0.31250000000000D+00 0.31250000000000D+00 + -0.12500000000000D+00 0.31250000000000D+00 0.37500000000000D+00 + -0.62500000000000D-01 0.31250000000000D+00 0.43750000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 0.62500000000000D-01 + -0.43750000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 0.31250000000000D+00 + -0.18750000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 0.43750000000000D+00 + -0.62500000000000D-01 0.37500000000000D+00 0.50000000000000D+00 + 0.43750000000000D+00 0.43750000000000D+00 0.62500000000000D-01 + 0.50000000000000D+00 0.43750000000000D+00 0.12500000000000D+00 + -0.43750000000000D+00 0.43750000000000D+00 0.18750000000000D+00 + -0.37500000000000D+00 0.43750000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 0.43750000000000D+00 0.31250000000000D+00 + -0.25000000000000D+00 0.43750000000000D+00 0.37500000000000D+00 + -0.18750000000000D+00 0.43750000000000D+00 0.43750000000000D+00 + -0.12500000000000D+00 0.43750000000000D+00 0.50000000000000D+00 + -0.62500000000000D-01 0.43750000000000D+00 -0.43750000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.62500000000000D-01 + 0.50000000000000D+00 0.50000000000000D+00 0.18750000000000D+00 + -0.43750000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 0.31250000000000D+00 + -0.31250000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 0.43750000000000D+00 + -0.18750000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 -0.43750000000000D+00 + -0.62500000000000D-01 0.50000000000000D+00 -0.37500000000000D+00 + 0.31250000000000D+00 -0.43750000000000D+00 0.62500000000000D-01 + 0.37500000000000D+00 -0.43750000000000D+00 0.12500000000000D+00 + 0.43750000000000D+00 -0.43750000000000D+00 0.18750000000000D+00 + 0.50000000000000D+00 -0.43750000000000D+00 0.25000000000000D+00 + -0.43750000000000D+00 -0.43750000000000D+00 0.31250000000000D+00 + -0.37500000000000D+00 -0.43750000000000D+00 0.37500000000000D+00 + -0.31250000000000D+00 -0.43750000000000D+00 0.43750000000000D+00 + -0.25000000000000D+00 -0.43750000000000D+00 0.50000000000000D+00 + -0.18750000000000D+00 -0.43750000000000D+00 -0.43750000000000D+00 + -0.12500000000000D+00 -0.43750000000000D+00 -0.37500000000000D+00 + -0.62500000000000D-01 -0.43750000000000D+00 -0.31250000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.62500000000000D-01 + 0.31250000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.18750000000000D+00 + 0.43750000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 0.43750000000000D+00 + -0.31250000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 -0.43750000000000D+00 + -0.18750000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 -0.31250000000000D+00 + -0.62500000000000D-01 -0.37500000000000D+00 -0.25000000000000D+00 + 0.18750000000000D+00 -0.31250000000000D+00 0.62500000000000D-01 + 0.25000000000000D+00 -0.31250000000000D+00 0.12500000000000D+00 + 0.31250000000000D+00 -0.31250000000000D+00 0.18750000000000D+00 + 0.37500000000000D+00 -0.31250000000000D+00 0.25000000000000D+00 + 0.43750000000000D+00 -0.31250000000000D+00 0.31250000000000D+00 + 0.50000000000000D+00 -0.31250000000000D+00 0.37500000000000D+00 + -0.43750000000000D+00 -0.31250000000000D+00 0.43750000000000D+00 + -0.37500000000000D+00 -0.31250000000000D+00 0.50000000000000D+00 + -0.31250000000000D+00 -0.31250000000000D+00 -0.43750000000000D+00 + -0.25000000000000D+00 -0.31250000000000D+00 -0.37500000000000D+00 + -0.18750000000000D+00 -0.31250000000000D+00 -0.31250000000000D+00 + -0.12500000000000D+00 -0.31250000000000D+00 -0.25000000000000D+00 + -0.62500000000000D-01 -0.31250000000000D+00 -0.18750000000000D+00 + 0.62500000000000D-01 -0.25000000000000D+00 0.00000000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 0.62500000000000D-01 + 0.18750000000000D+00 -0.25000000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 0.18750000000000D+00 + 0.31250000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.31250000000000D+00 + 0.43750000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 0.43750000000000D+00 + -0.43750000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 -0.43750000000000D+00 + -0.31250000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 -0.31250000000000D+00 + -0.18750000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 -0.18750000000000D+00 + -0.62500000000000D-01 -0.25000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.18750000000000D+00 0.00000000000000D+00 + 0.62500000000000D-01 -0.18750000000000D+00 0.62500000000000D-01 + 0.12500000000000D+00 -0.18750000000000D+00 0.12500000000000D+00 + 0.18750000000000D+00 -0.18750000000000D+00 0.18750000000000D+00 + 0.25000000000000D+00 -0.18750000000000D+00 0.25000000000000D+00 + 0.31250000000000D+00 -0.18750000000000D+00 0.31250000000000D+00 + 0.37500000000000D+00 -0.18750000000000D+00 0.37500000000000D+00 + 0.43750000000000D+00 -0.18750000000000D+00 0.43750000000000D+00 + 0.50000000000000D+00 -0.18750000000000D+00 0.50000000000000D+00 + -0.43750000000000D+00 -0.18750000000000D+00 -0.43750000000000D+00 + -0.37500000000000D+00 -0.18750000000000D+00 -0.37500000000000D+00 + -0.31250000000000D+00 -0.18750000000000D+00 -0.31250000000000D+00 + -0.25000000000000D+00 -0.18750000000000D+00 -0.25000000000000D+00 + -0.18750000000000D+00 -0.18750000000000D+00 -0.18750000000000D+00 + -0.12500000000000D+00 -0.18750000000000D+00 -0.12500000000000D+00 + -0.62500000000000D-01 -0.18750000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.12500000000000D+00 0.62500000000000D-01 + 0.62500000000000D-01 -0.12500000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.18750000000000D+00 + 0.18750000000000D+00 -0.12500000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.31250000000000D+00 + 0.31250000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 0.43750000000000D+00 + 0.43750000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 -0.43750000000000D+00 + -0.43750000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.31250000000000D+00 + -0.31250000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 -0.18750000000000D+00 + -0.18750000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + -0.12500000000000D+00 -0.12500000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.62500000000000D-01 0.12500000000000D+00 + 0.62500000000000D-01 -0.62500000000000D-01 0.18750000000000D+00 + 0.12500000000000D+00 -0.62500000000000D-01 0.25000000000000D+00 + 0.18750000000000D+00 -0.62500000000000D-01 0.31250000000000D+00 + 0.25000000000000D+00 -0.62500000000000D-01 0.37500000000000D+00 + 0.31250000000000D+00 -0.62500000000000D-01 0.43750000000000D+00 + 0.37500000000000D+00 -0.62500000000000D-01 0.50000000000000D+00 + 0.43750000000000D+00 -0.62500000000000D-01 -0.43750000000000D+00 + 0.50000000000000D+00 -0.62500000000000D-01 -0.37500000000000D+00 + -0.43750000000000D+00 -0.62500000000000D-01 -0.31250000000000D+00 + -0.37500000000000D+00 -0.62500000000000D-01 -0.25000000000000D+00 + -0.31250000000000D+00 -0.62500000000000D-01 -0.18750000000000D+00 + -0.25000000000000D+00 -0.62500000000000D-01 -0.12500000000000D+00 + -0.18750000000000D+00 -0.62500000000000D-01 -0.62500000000000D-01 + -0.31250000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 0.62500000000000D-01 + -0.18750000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 0.18750000000000D+00 + -0.62500000000000D-01 0.00000000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 0.62500000000000D-01 0.62500000000000D-01 + -0.25000000000000D+00 0.62500000000000D-01 0.12500000000000D+00 + -0.18750000000000D+00 0.62500000000000D-01 0.18750000000000D+00 + -0.12500000000000D+00 0.62500000000000D-01 0.25000000000000D+00 + -0.62500000000000D-01 0.62500000000000D-01 0.31250000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 0.62500000000000D-01 + -0.31250000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.12500000000000D+00 0.18750000000000D+00 + -0.18750000000000D+00 0.12500000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 0.31250000000000D+00 + -0.62500000000000D-01 0.12500000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.18750000000000D+00 0.12500000000000D+00 + -0.31250000000000D+00 0.18750000000000D+00 0.18750000000000D+00 + -0.25000000000000D+00 0.18750000000000D+00 0.25000000000000D+00 + -0.18750000000000D+00 0.18750000000000D+00 0.31250000000000D+00 + -0.12500000000000D+00 0.18750000000000D+00 0.37500000000000D+00 + -0.62500000000000D-01 0.18750000000000D+00 0.43750000000000D+00 + 0.50000000000000D+00 0.25000000000000D+00 0.62500000000000D-01 + -0.43750000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.25000000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 0.31250000000000D+00 + -0.18750000000000D+00 0.25000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 0.43750000000000D+00 + -0.62500000000000D-01 0.25000000000000D+00 0.50000000000000D+00 + 0.43750000000000D+00 0.31250000000000D+00 0.62500000000000D-01 + 0.50000000000000D+00 0.31250000000000D+00 0.12500000000000D+00 + -0.43750000000000D+00 0.31250000000000D+00 0.18750000000000D+00 + -0.37500000000000D+00 0.31250000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 0.31250000000000D+00 0.31250000000000D+00 + -0.25000000000000D+00 0.31250000000000D+00 0.37500000000000D+00 + -0.18750000000000D+00 0.31250000000000D+00 0.43750000000000D+00 + -0.12500000000000D+00 0.31250000000000D+00 0.50000000000000D+00 + -0.62500000000000D-01 0.31250000000000D+00 -0.43750000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.62500000000000D-01 + 0.43750000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 0.18750000000000D+00 + -0.43750000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.31250000000000D+00 + -0.31250000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 0.43750000000000D+00 + -0.18750000000000D+00 0.37500000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 -0.43750000000000D+00 + -0.62500000000000D-01 0.37500000000000D+00 -0.37500000000000D+00 + 0.25000000000000D+00 0.43750000000000D+00 0.00000000000000D+00 + 0.31250000000000D+00 0.43750000000000D+00 0.62500000000000D-01 + 0.37500000000000D+00 0.43750000000000D+00 0.12500000000000D+00 + 0.43750000000000D+00 0.43750000000000D+00 0.18750000000000D+00 + 0.50000000000000D+00 0.43750000000000D+00 0.25000000000000D+00 + -0.43750000000000D+00 0.43750000000000D+00 0.31250000000000D+00 + -0.37500000000000D+00 0.43750000000000D+00 0.37500000000000D+00 + -0.31250000000000D+00 0.43750000000000D+00 0.43750000000000D+00 + -0.25000000000000D+00 0.43750000000000D+00 0.50000000000000D+00 + -0.18750000000000D+00 0.43750000000000D+00 -0.43750000000000D+00 + -0.12500000000000D+00 0.43750000000000D+00 -0.37500000000000D+00 + -0.62500000000000D-01 0.43750000000000D+00 -0.31250000000000D+00 + 0.18750000000000D+00 0.50000000000000D+00 0.00000000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 0.62500000000000D-01 + 0.31250000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.18750000000000D+00 + 0.43750000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.50000000000000D+00 0.43750000000000D+00 + -0.31250000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 -0.43750000000000D+00 + -0.18750000000000D+00 0.50000000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 -0.31250000000000D+00 + -0.62500000000000D-01 0.50000000000000D+00 -0.25000000000000D+00 + 0.18750000000000D+00 -0.43750000000000D+00 0.62500000000000D-01 + 0.25000000000000D+00 -0.43750000000000D+00 0.12500000000000D+00 + 0.31250000000000D+00 -0.43750000000000D+00 0.18750000000000D+00 + 0.37500000000000D+00 -0.43750000000000D+00 0.25000000000000D+00 + 0.43750000000000D+00 -0.43750000000000D+00 0.31250000000000D+00 + 0.50000000000000D+00 -0.43750000000000D+00 0.37500000000000D+00 + -0.43750000000000D+00 -0.43750000000000D+00 0.43750000000000D+00 + -0.37500000000000D+00 -0.43750000000000D+00 0.50000000000000D+00 + -0.31250000000000D+00 -0.43750000000000D+00 -0.43750000000000D+00 + -0.25000000000000D+00 -0.43750000000000D+00 -0.37500000000000D+00 + -0.18750000000000D+00 -0.43750000000000D+00 -0.31250000000000D+00 + -0.12500000000000D+00 -0.43750000000000D+00 -0.25000000000000D+00 + -0.62500000000000D-01 -0.43750000000000D+00 -0.18750000000000D+00 + 0.18750000000000D+00 -0.37500000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.18750000000000D+00 + 0.31250000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.31250000000000D+00 + 0.43750000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 -0.37500000000000D+00 0.43750000000000D+00 + -0.43750000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 -0.43750000000000D+00 + -0.31250000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 -0.31250000000000D+00 + -0.18750000000000D+00 -0.37500000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 -0.18750000000000D+00 + -0.62500000000000D-01 -0.37500000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.31250000000000D+00 0.00000000000000D+00 + 0.62500000000000D-01 -0.31250000000000D+00 0.62500000000000D-01 + 0.12500000000000D+00 -0.31250000000000D+00 0.12500000000000D+00 + 0.18750000000000D+00 -0.31250000000000D+00 0.18750000000000D+00 + 0.25000000000000D+00 -0.31250000000000D+00 0.25000000000000D+00 + 0.31250000000000D+00 -0.31250000000000D+00 0.31250000000000D+00 + 0.37500000000000D+00 -0.31250000000000D+00 0.37500000000000D+00 + 0.43750000000000D+00 -0.31250000000000D+00 0.43750000000000D+00 + 0.50000000000000D+00 -0.31250000000000D+00 0.50000000000000D+00 + -0.43750000000000D+00 -0.31250000000000D+00 -0.43750000000000D+00 + -0.37500000000000D+00 -0.31250000000000D+00 -0.37500000000000D+00 + -0.31250000000000D+00 -0.31250000000000D+00 -0.31250000000000D+00 + -0.25000000000000D+00 -0.31250000000000D+00 -0.25000000000000D+00 + -0.18750000000000D+00 -0.31250000000000D+00 -0.18750000000000D+00 + -0.12500000000000D+00 -0.31250000000000D+00 -0.12500000000000D+00 + -0.62500000000000D-01 -0.31250000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.25000000000000D+00 0.62500000000000D-01 + 0.62500000000000D-01 -0.25000000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 -0.25000000000000D+00 0.18750000000000D+00 + 0.18750000000000D+00 -0.25000000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 0.31250000000000D+00 + 0.31250000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 0.43750000000000D+00 + 0.43750000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + -0.43750000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 -0.31250000000000D+00 + -0.31250000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 -0.18750000000000D+00 + -0.18750000000000D+00 -0.25000000000000D+00 -0.12500000000000D+00 + -0.12500000000000D+00 -0.25000000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.18750000000000D+00 0.12500000000000D+00 + 0.62500000000000D-01 -0.18750000000000D+00 0.18750000000000D+00 + 0.12500000000000D+00 -0.18750000000000D+00 0.25000000000000D+00 + 0.18750000000000D+00 -0.18750000000000D+00 0.31250000000000D+00 + 0.25000000000000D+00 -0.18750000000000D+00 0.37500000000000D+00 + 0.31250000000000D+00 -0.18750000000000D+00 0.43750000000000D+00 + 0.37500000000000D+00 -0.18750000000000D+00 0.50000000000000D+00 + 0.43750000000000D+00 -0.18750000000000D+00 -0.43750000000000D+00 + 0.50000000000000D+00 -0.18750000000000D+00 -0.37500000000000D+00 + -0.43750000000000D+00 -0.18750000000000D+00 -0.31250000000000D+00 + -0.37500000000000D+00 -0.18750000000000D+00 -0.25000000000000D+00 + -0.31250000000000D+00 -0.18750000000000D+00 -0.18750000000000D+00 + -0.25000000000000D+00 -0.18750000000000D+00 -0.12500000000000D+00 + -0.18750000000000D+00 -0.18750000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.12500000000000D+00 0.18750000000000D+00 + 0.62500000000000D-01 -0.12500000000000D+00 0.25000000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.31250000000000D+00 + 0.18750000000000D+00 -0.12500000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 0.43750000000000D+00 + 0.31250000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 -0.43750000000000D+00 + 0.43750000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 -0.31250000000000D+00 + -0.43750000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.18750000000000D+00 + -0.31250000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + -0.25000000000000D+00 -0.12500000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.62500000000000D-01 0.25000000000000D+00 + 0.62500000000000D-01 -0.62500000000000D-01 0.31250000000000D+00 + 0.12500000000000D+00 -0.62500000000000D-01 0.37500000000000D+00 + 0.18750000000000D+00 -0.62500000000000D-01 0.43750000000000D+00 + 0.25000000000000D+00 -0.62500000000000D-01 0.50000000000000D+00 + 0.31250000000000D+00 -0.62500000000000D-01 -0.43750000000000D+00 + 0.37500000000000D+00 -0.62500000000000D-01 -0.37500000000000D+00 + 0.43750000000000D+00 -0.62500000000000D-01 -0.31250000000000D+00 + 0.50000000000000D+00 -0.62500000000000D-01 -0.25000000000000D+00 + -0.43750000000000D+00 -0.62500000000000D-01 -0.18750000000000D+00 + -0.37500000000000D+00 -0.62500000000000D-01 -0.12500000000000D+00 + -0.31250000000000D+00 -0.62500000000000D-01 -0.62500000000000D-01 + -0.43750000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 0.62500000000000D-01 + -0.31250000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 0.18750000000000D+00 + -0.18750000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 0.31250000000000D+00 + -0.62500000000000D-01 0.00000000000000D+00 0.37500000000000D+00 + -0.43750000000000D+00 0.62500000000000D-01 0.62500000000000D-01 + -0.37500000000000D+00 0.62500000000000D-01 0.12500000000000D+00 + -0.31250000000000D+00 0.62500000000000D-01 0.18750000000000D+00 + -0.25000000000000D+00 0.62500000000000D-01 0.25000000000000D+00 + -0.18750000000000D+00 0.62500000000000D-01 0.31250000000000D+00 + -0.12500000000000D+00 0.62500000000000D-01 0.37500000000000D+00 + -0.62500000000000D-01 0.62500000000000D-01 0.43750000000000D+00 + 0.50000000000000D+00 0.12500000000000D+00 0.62500000000000D-01 + -0.43750000000000D+00 0.12500000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.12500000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 0.12500000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.12500000000000D+00 0.31250000000000D+00 + -0.12500000000000D+00 0.12500000000000D+00 0.43750000000000D+00 + -0.62500000000000D-01 0.12500000000000D+00 0.50000000000000D+00 + 0.43750000000000D+00 0.18750000000000D+00 0.62500000000000D-01 + 0.50000000000000D+00 0.18750000000000D+00 0.12500000000000D+00 + -0.43750000000000D+00 0.18750000000000D+00 0.18750000000000D+00 + -0.37500000000000D+00 0.18750000000000D+00 0.25000000000000D+00 + -0.31250000000000D+00 0.18750000000000D+00 0.31250000000000D+00 + -0.25000000000000D+00 0.18750000000000D+00 0.37500000000000D+00 + -0.18750000000000D+00 0.18750000000000D+00 0.43750000000000D+00 + -0.12500000000000D+00 0.18750000000000D+00 0.50000000000000D+00 + -0.62500000000000D-01 0.18750000000000D+00 -0.43750000000000D+00 + 0.37500000000000D+00 0.25000000000000D+00 0.62500000000000D-01 + 0.43750000000000D+00 0.25000000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 0.25000000000000D+00 0.18750000000000D+00 + -0.43750000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.25000000000000D+00 0.31250000000000D+00 + -0.31250000000000D+00 0.25000000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 0.25000000000000D+00 0.43750000000000D+00 + -0.18750000000000D+00 0.25000000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 -0.43750000000000D+00 + -0.62500000000000D-01 0.25000000000000D+00 -0.37500000000000D+00 + 0.31250000000000D+00 0.31250000000000D+00 0.62500000000000D-01 + 0.37500000000000D+00 0.31250000000000D+00 0.12500000000000D+00 + 0.43750000000000D+00 0.31250000000000D+00 0.18750000000000D+00 + 0.50000000000000D+00 0.31250000000000D+00 0.25000000000000D+00 + -0.43750000000000D+00 0.31250000000000D+00 0.31250000000000D+00 + -0.37500000000000D+00 0.31250000000000D+00 0.37500000000000D+00 + -0.31250000000000D+00 0.31250000000000D+00 0.43750000000000D+00 + -0.25000000000000D+00 0.31250000000000D+00 0.50000000000000D+00 + -0.18750000000000D+00 0.31250000000000D+00 -0.43750000000000D+00 + -0.12500000000000D+00 0.31250000000000D+00 -0.37500000000000D+00 + -0.62500000000000D-01 0.31250000000000D+00 -0.31250000000000D+00 + 0.25000000000000D+00 0.37500000000000D+00 0.62500000000000D-01 + 0.31250000000000D+00 0.37500000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.37500000000000D+00 0.18750000000000D+00 + 0.43750000000000D+00 0.37500000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 0.37500000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.37500000000000D+00 0.43750000000000D+00 + -0.31250000000000D+00 0.37500000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 0.37500000000000D+00 -0.43750000000000D+00 + -0.18750000000000D+00 0.37500000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.37500000000000D+00 -0.31250000000000D+00 + -0.62500000000000D-01 0.37500000000000D+00 -0.25000000000000D+00 + 0.18750000000000D+00 0.43750000000000D+00 0.62500000000000D-01 + 0.25000000000000D+00 0.43750000000000D+00 0.12500000000000D+00 + 0.31250000000000D+00 0.43750000000000D+00 0.18750000000000D+00 + 0.43750000000000D+00 0.43750000000000D+00 0.31250000000000D+00 + 0.50000000000000D+00 0.43750000000000D+00 0.37500000000000D+00 + -0.43750000000000D+00 0.43750000000000D+00 0.43750000000000D+00 + -0.37500000000000D+00 0.43750000000000D+00 0.50000000000000D+00 + -0.31250000000000D+00 0.43750000000000D+00 -0.43750000000000D+00 + -0.25000000000000D+00 0.43750000000000D+00 -0.37500000000000D+00 + -0.18750000000000D+00 0.43750000000000D+00 -0.31250000000000D+00 + -0.12500000000000D+00 0.43750000000000D+00 -0.25000000000000D+00 + -0.62500000000000D-01 0.43750000000000D+00 -0.18750000000000D+00 + 0.12500000000000D+00 0.50000000000000D+00 0.62500000000000D-01 + 0.18750000000000D+00 0.50000000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 0.50000000000000D+00 0.18750000000000D+00 + 0.31250000000000D+00 0.50000000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.31250000000000D+00 + 0.43750000000000D+00 0.50000000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 0.50000000000000D+00 0.43750000000000D+00 + -0.43750000000000D+00 0.50000000000000D+00 0.50000000000000D+00 + -0.31250000000000D+00 0.50000000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 0.50000000000000D+00 -0.31250000000000D+00 + -0.18750000000000D+00 0.50000000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 0.50000000000000D+00 -0.18750000000000D+00 + -0.62500000000000D-01 0.50000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.43750000000000D+00 0.00000000000000D+00 + 0.62500000000000D-01 -0.43750000000000D+00 0.62500000000000D-01 + 0.12500000000000D+00 -0.43750000000000D+00 0.12500000000000D+00 + 0.18750000000000D+00 -0.43750000000000D+00 0.18750000000000D+00 + 0.25000000000000D+00 -0.43750000000000D+00 0.25000000000000D+00 + 0.31250000000000D+00 -0.43750000000000D+00 0.31250000000000D+00 + 0.37500000000000D+00 -0.43750000000000D+00 0.37500000000000D+00 + 0.43750000000000D+00 -0.43750000000000D+00 0.43750000000000D+00 + 0.50000000000000D+00 -0.43750000000000D+00 0.50000000000000D+00 + -0.43750000000000D+00 -0.43750000000000D+00 -0.43750000000000D+00 + -0.37500000000000D+00 -0.43750000000000D+00 -0.37500000000000D+00 + -0.31250000000000D+00 -0.43750000000000D+00 -0.31250000000000D+00 + -0.25000000000000D+00 -0.43750000000000D+00 -0.25000000000000D+00 + -0.18750000000000D+00 -0.43750000000000D+00 -0.18750000000000D+00 + -0.62500000000000D-01 -0.43750000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.37500000000000D+00 0.62500000000000D-01 + 0.62500000000000D-01 -0.37500000000000D+00 0.12500000000000D+00 + 0.12500000000000D+00 -0.37500000000000D+00 0.18750000000000D+00 + 0.18750000000000D+00 -0.37500000000000D+00 0.25000000000000D+00 + 0.25000000000000D+00 -0.37500000000000D+00 0.31250000000000D+00 + 0.31250000000000D+00 -0.37500000000000D+00 0.37500000000000D+00 + 0.37500000000000D+00 -0.37500000000000D+00 0.43750000000000D+00 + 0.43750000000000D+00 -0.37500000000000D+00 0.50000000000000D+00 + -0.43750000000000D+00 -0.37500000000000D+00 -0.37500000000000D+00 + -0.37500000000000D+00 -0.37500000000000D+00 -0.31250000000000D+00 + -0.31250000000000D+00 -0.37500000000000D+00 -0.25000000000000D+00 + -0.25000000000000D+00 -0.37500000000000D+00 -0.18750000000000D+00 + -0.18750000000000D+00 -0.37500000000000D+00 -0.12500000000000D+00 + -0.12500000000000D+00 -0.37500000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.31250000000000D+00 0.12500000000000D+00 + 0.62500000000000D-01 -0.31250000000000D+00 0.18750000000000D+00 + 0.12500000000000D+00 -0.31250000000000D+00 0.25000000000000D+00 + 0.18750000000000D+00 -0.31250000000000D+00 0.31250000000000D+00 + 0.25000000000000D+00 -0.31250000000000D+00 0.37500000000000D+00 + 0.31250000000000D+00 -0.31250000000000D+00 0.43750000000000D+00 + 0.37500000000000D+00 -0.31250000000000D+00 0.50000000000000D+00 + 0.43750000000000D+00 -0.31250000000000D+00 -0.43750000000000D+00 + 0.50000000000000D+00 -0.31250000000000D+00 -0.37500000000000D+00 + -0.43750000000000D+00 -0.31250000000000D+00 -0.31250000000000D+00 + -0.37500000000000D+00 -0.31250000000000D+00 -0.25000000000000D+00 + -0.31250000000000D+00 -0.31250000000000D+00 -0.18750000000000D+00 + -0.25000000000000D+00 -0.31250000000000D+00 -0.12500000000000D+00 + -0.18750000000000D+00 -0.31250000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.25000000000000D+00 0.18750000000000D+00 + 0.62500000000000D-01 -0.25000000000000D+00 0.25000000000000D+00 + 0.18750000000000D+00 -0.25000000000000D+00 0.37500000000000D+00 + 0.25000000000000D+00 -0.25000000000000D+00 0.43750000000000D+00 + 0.31250000000000D+00 -0.25000000000000D+00 0.50000000000000D+00 + 0.37500000000000D+00 -0.25000000000000D+00 -0.43750000000000D+00 + 0.43750000000000D+00 -0.25000000000000D+00 -0.37500000000000D+00 + 0.50000000000000D+00 -0.25000000000000D+00 -0.31250000000000D+00 + -0.43750000000000D+00 -0.25000000000000D+00 -0.25000000000000D+00 + -0.37500000000000D+00 -0.25000000000000D+00 -0.18750000000000D+00 + -0.31250000000000D+00 -0.25000000000000D+00 -0.12500000000000D+00 + -0.25000000000000D+00 -0.25000000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.18750000000000D+00 0.25000000000000D+00 + 0.62500000000000D-01 -0.18750000000000D+00 0.31250000000000D+00 + 0.12500000000000D+00 -0.18750000000000D+00 0.37500000000000D+00 + 0.18750000000000D+00 -0.18750000000000D+00 0.43750000000000D+00 + 0.25000000000000D+00 -0.18750000000000D+00 0.50000000000000D+00 + 0.31250000000000D+00 -0.18750000000000D+00 -0.43750000000000D+00 + 0.37500000000000D+00 -0.18750000000000D+00 -0.37500000000000D+00 + 0.43750000000000D+00 -0.18750000000000D+00 -0.31250000000000D+00 + 0.50000000000000D+00 -0.18750000000000D+00 -0.25000000000000D+00 + -0.43750000000000D+00 -0.18750000000000D+00 -0.18750000000000D+00 + -0.37500000000000D+00 -0.18750000000000D+00 -0.12500000000000D+00 + -0.31250000000000D+00 -0.18750000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.12500000000000D+00 0.31250000000000D+00 + 0.62500000000000D-01 -0.12500000000000D+00 0.37500000000000D+00 + 0.12500000000000D+00 -0.12500000000000D+00 0.43750000000000D+00 + 0.18750000000000D+00 -0.12500000000000D+00 0.50000000000000D+00 + 0.25000000000000D+00 -0.12500000000000D+00 -0.43750000000000D+00 + 0.31250000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.37500000000000D+00 -0.12500000000000D+00 -0.31250000000000D+00 + 0.43750000000000D+00 -0.12500000000000D+00 -0.25000000000000D+00 + 0.50000000000000D+00 -0.12500000000000D+00 -0.18750000000000D+00 + -0.43750000000000D+00 -0.12500000000000D+00 -0.12500000000000D+00 + -0.37500000000000D+00 -0.12500000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.62500000000000D-01 0.37500000000000D+00 + 0.62500000000000D-01 -0.62500000000000D-01 0.43750000000000D+00 + 0.12500000000000D+00 -0.62500000000000D-01 0.50000000000000D+00 + 0.18750000000000D+00 -0.62500000000000D-01 -0.43750000000000D+00 + 0.25000000000000D+00 -0.62500000000000D-01 -0.37500000000000D+00 + 0.31250000000000D+00 -0.62500000000000D-01 -0.31250000000000D+00 + 0.37500000000000D+00 -0.62500000000000D-01 -0.25000000000000D+00 + 0.43750000000000D+00 -0.62500000000000D-01 -0.18750000000000D+00 + 0.50000000000000D+00 -0.62500000000000D-01 -0.12500000000000D+00 + -0.43750000000000D+00 -0.62500000000000D-01 -0.62500000000000D-01 + 0.50000000000000D+00 0.00000000000000D+00 0.62500000000000D-01 + -0.43750000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 0.18750000000000D+00 + -0.31250000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 0.31250000000000D+00 + -0.18750000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 0.43750000000000D+00 + -0.62500000000000D-01 0.00000000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 0.25000000000000D+00 -0.31250000000000D+00 + 0.50000000000000D+00 0.37500000000000D+00 0.43750000000000D+00 + 0.12500000000000D+00 0.43750000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.50000000000000D+00 0.43750000000000D+00 + 0.00000000000000D+00 -0.43750000000000D+00 0.12500000000000D+00 + -0.37500000000000D+00 -0.43750000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.18750000000000D+00 + 0.00000000000000D+00 -0.31250000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 0.31250000000000D+00 + 0.00000000000000D+00 -0.18750000000000D+00 0.37500000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 0.43750000000000D+00 + 0.18750000000000D+00 -0.12500000000000D+00 -0.37500000000000D+00 + 0.00000000000000D+00 -0.62500000000000D-01 0.50000000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.62500000000000D-01 + 0.43750000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.18750000000000D+00 + -0.43750000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 0.31250000000000D+00 + -0.31250000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 0.43750000000000D+00 + -0.18750000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 -0.43750000000000D+00 + -0.62500000000000D-01 0.00000000000000D+00 -0.37500000000000D+00 + 0.50000000000000D+00 0.25000000000000D+00 0.43750000000000D+00 + 0.00000000000000D+00 0.37500000000000D+00 0.62500000000000D-01 + -0.12500000000000D+00 0.37500000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 0.43750000000000D+00 0.12500000000000D+00 + 0.00000000000000D+00 -0.43750000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.31250000000000D+00 + 0.00000000000000D+00 -0.31250000000000D+00 0.37500000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 0.43750000000000D+00 + 0.00000000000000D+00 -0.18750000000000D+00 0.50000000000000D+00 + 0.43750000000000D+00 -0.18750000000000D+00 -0.62500000000000D-01 + 0.00000000000000D+00 -0.12500000000000D+00 -0.43750000000000D+00 + 0.00000000000000D+00 -0.62500000000000D-01 -0.37500000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 0.62500000000000D-01 + 0.31250000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.18750000000000D+00 + 0.43750000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 0.43750000000000D+00 + -0.31250000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 -0.43750000000000D+00 + -0.18750000000000D+00 0.00000000000000D+00 -0.37500000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 -0.31250000000000D+00 + -0.62500000000000D-01 0.00000000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 0.62500000000000D-01 + 0.00000000000000D+00 0.31250000000000D+00 0.12500000000000D+00 + 0.00000000000000D+00 0.37500000000000D+00 0.18750000000000D+00 + 0.00000000000000D+00 0.43750000000000D+00 0.25000000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.31250000000000D+00 + -0.43750000000000D+00 0.50000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 -0.43750000000000D+00 0.37500000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 0.43750000000000D+00 + 0.00000000000000D+00 -0.31250000000000D+00 0.50000000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 -0.43750000000000D+00 + 0.00000000000000D+00 -0.18750000000000D+00 -0.37500000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 -0.31250000000000D+00 + 0.00000000000000D+00 -0.62500000000000D-01 -0.25000000000000D+00 + 0.12500000000000D+00 0.00000000000000D+00 0.62500000000000D-01 + 0.18750000000000D+00 0.00000000000000D+00 0.12500000000000D+00 + 0.25000000000000D+00 0.00000000000000D+00 0.18750000000000D+00 + 0.31250000000000D+00 0.00000000000000D+00 0.25000000000000D+00 + 0.37500000000000D+00 0.00000000000000D+00 0.31250000000000D+00 + 0.43750000000000D+00 0.00000000000000D+00 0.37500000000000D+00 + 0.50000000000000D+00 0.00000000000000D+00 0.43750000000000D+00 + -0.43750000000000D+00 0.00000000000000D+00 0.50000000000000D+00 + -0.37500000000000D+00 0.00000000000000D+00 -0.43750000000000D+00 + -0.31250000000000D+00 0.00000000000000D+00 -0.37500000000000D+00 + -0.25000000000000D+00 0.00000000000000D+00 -0.31250000000000D+00 + -0.18750000000000D+00 0.00000000000000D+00 -0.25000000000000D+00 + -0.12500000000000D+00 0.00000000000000D+00 -0.18750000000000D+00 + -0.62500000000000D-01 0.00000000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.12500000000000D+00 0.62500000000000D-01 + 0.00000000000000D+00 0.18750000000000D+00 0.12500000000000D+00 + 0.00000000000000D+00 0.25000000000000D+00 0.18750000000000D+00 + 0.00000000000000D+00 0.31250000000000D+00 0.25000000000000D+00 + -0.37500000000000D+00 0.31250000000000D+00 -0.12500000000000D+00 + 0.00000000000000D+00 0.37500000000000D+00 0.31250000000000D+00 + 0.00000000000000D+00 0.43750000000000D+00 0.37500000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 0.43750000000000D+00 + 0.00000000000000D+00 -0.43750000000000D+00 0.50000000000000D+00 + 0.18750000000000D+00 -0.43750000000000D+00 -0.31250000000000D+00 + 0.00000000000000D+00 -0.37500000000000D+00 -0.43750000000000D+00 + 0.00000000000000D+00 -0.31250000000000D+00 -0.37500000000000D+00 + 0.00000000000000D+00 -0.25000000000000D+00 -0.31250000000000D+00 + 0.00000000000000D+00 -0.18750000000000D+00 -0.25000000000000D+00 + 0.00000000000000D+00 -0.12500000000000D+00 -0.18750000000000D+00 + 0.00000000000000D+00 -0.62500000000000D-01 -0.12500000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.62500000000000D-01 + 0.50000000000000D+00 0.12500000000000D+00 -0.31250000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.18750000000000D+00 + 0.37500000000000D+00 0.12500000000000D+00 -0.31250000000000D+00 + 0.31250000000000D+00 0.18750000000000D+00 -0.31250000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.31250000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 -0.18750000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.43750000000000D+00 + 0.00000000000000D+00 0.50000000000000D+00 -0.62500000000000D-01 + kptnrm 0.10000000000000D+01 + ngfft 48 48 48 + nspden 1 + nspinor 1 + occ 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.20000000000000D+01 0.20000000000000D+01 0.20000000000000D+01 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 + rprim 0.81551640148000D+01 0.00000000000000D+00 0.47083861392000D+01 + 0.27183880049000D+01 0.76887623687000D+01 0.47083861392000D+01 + 0.00000000000000D+00 0.00000000000000D+00 0.94167722784000D+01 + dfpt_sciss 0.00000000000000D+00 + spinat 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + symafm 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + symrel 1 0 0 0 1 0 0 0 1 + -1 0 0 0 -1 0 0 0 -1 + 0 -1 1 0 -1 0 1 -1 0 + 0 1 -1 0 1 0 -1 1 0 + -1 0 0 -1 0 1 -1 1 0 + 1 0 0 1 0 -1 1 -1 0 + 0 1 -1 1 0 -1 0 0 -1 + 0 -1 1 -1 0 1 0 0 1 + -1 0 0 -1 1 0 -1 0 1 + 1 0 0 1 -1 0 1 0 -1 + 0 -1 1 1 -1 0 0 -1 0 + 0 1 -1 -1 1 0 0 1 0 + 1 0 0 0 0 1 0 1 0 + -1 0 0 0 0 -1 0 -1 0 + 0 1 -1 0 0 -1 1 0 -1 + 0 -1 1 0 0 1 -1 0 1 + -1 0 1 -1 1 0 -1 0 0 + 1 0 -1 1 -1 0 1 0 0 + 0 -1 0 1 -1 0 0 -1 1 + 0 1 0 -1 1 0 0 1 -1 + 1 0 -1 0 0 -1 0 1 -1 + -1 0 1 0 0 1 0 -1 1 + 0 1 0 0 0 1 1 0 0 + 0 -1 0 0 0 -1 -1 0 0 + 1 0 -1 0 1 -1 0 0 -1 + -1 0 1 0 -1 1 0 0 1 + 0 -1 0 0 -1 1 1 -1 0 + 0 1 0 0 1 -1 -1 1 0 + -1 0 1 -1 0 0 -1 1 0 + 1 0 -1 1 0 0 1 -1 0 + 0 1 0 1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 -1 + 0 0 -1 0 1 -1 1 0 -1 + 0 0 1 0 -1 1 -1 0 1 + 1 -1 0 0 -1 1 0 -1 0 + -1 1 0 0 1 -1 0 1 0 + 0 0 1 1 0 0 0 1 0 + 0 0 -1 -1 0 0 0 -1 0 + -1 1 0 -1 0 0 -1 0 1 + 1 -1 0 1 0 0 1 0 -1 + 0 0 1 0 1 0 1 0 0 + 0 0 -1 0 -1 0 -1 0 0 + 1 -1 0 0 -1 0 0 -1 1 + -1 1 0 0 1 0 0 1 -1 + 0 0 -1 1 0 -1 0 1 -1 + 0 0 1 -1 0 1 0 -1 1 + -1 1 0 -1 0 1 -1 0 0 + 1 -1 0 1 0 -1 1 0 0 + tnons 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + tolwfr 0.10000000000000D+01 + tphysel 0.00000000000000D+00 + tsmear 0.10000000000000D-01 + typat 1 2 2 + wtk 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 0.97656250000000D-03 0.97656250000000D-03 + 0.97656250000000D-03 + xred 0.00000000000000D+00 0.00000000000000D+00 0.00000000000000D+00 + 0.75000000000000D+00 0.75000000000000D+00 0.75000000000000D+00 + 0.25000000000000D+00 0.25000000000000D+00 0.25000000000000D+00 + znucl 0.38000000000000D+02 0.17000000000000D+02 + zion 0.10000000000000D+02 0.70000000000000D+01 + + Description of the potentials (KB energies) + vrsio8 (for pseudopotentials)=100401 + usepaw = 0 + dimekb = 6 lmnmax= 6 + Atom type= 1 pspso= 0 nekb= 6 + iln lpsang iproj ekb(:) + 1 0 1 9.9511266E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 2 0 2 0.0000000E+00 1.0278242E+00 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 3 1 1 0.0000000E+00 0.0000000E+00 7.3826096E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 4 1 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 1.6651427E+00 + 0.0000000E+00 0.0000000E+00 + 5 2 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 4.1688528E+00 0.0000000E+00 + 6 2 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 4.1688528E+00 0.0000000E+00 + Atom type= 2 pspso= 0 nekb= 6 + iln lpsang iproj ekb(:) + 1 0 1 8.1392959E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 2 0 2 0.0000000E+00 6.9871995E-01 0.0000000E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 3 1 1 0.0000000E+00 0.0000000E+00 3.8217131E+00 0.0000000E+00 + 0.0000000E+00 0.0000000E+00 + 4 1 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 1.1075186E+00 + 0.0000000E+00 0.0000000E+00 + 5 2 1 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + -2.9386087E+00 0.0000000E+00 + 6 2 2 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 + -2.9386087E+00 0.0000000E+00 + + **** Database of total energy derivatives **** + Number of data blocks= 29 + + 2nd derivatives (non-stat.) - # elements : 144 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.20440585590518D+01 0.00000000000000D+00 + 2 1 1 1 0.10220292801359D+01 0.00000000000000D+00 + 3 1 1 1 0.10220292800930D+01 0.00000000000000D+00 + 1 2 1 1 -0.10220895256511D+01 -0.18873424385615D-16 + 2 2 1 1 -0.51104476312967D+00 0.17459947700565D-18 + 3 2 1 1 -0.51104476310844D+00 0.66640411918100D-16 + 1 3 1 1 -0.10220895256511D+01 0.17097771035166D-16 + 2 3 1 1 -0.51104476312965D+00 -0.16474023736785D-17 + 3 3 1 1 -0.51104476310844D+00 -0.68118262312919D-16 + 1 5 1 1 -0.47140235103323D+02 0.00000000000000D+00 + 2 5 1 1 0.78357998863981D-16 0.00000000000000D+00 + 3 5 1 1 0.10885073718470D-15 0.00000000000000D+00 + 1 1 2 1 0.10220292801359D+01 0.00000000000000D+00 + 2 1 2 1 0.20440585601214D+01 0.00000000000000D+00 + 3 1 2 1 0.10220292800930D+01 0.00000000000000D+00 + 1 2 2 1 -0.51104476312967D+00 0.17459947700565D-18 + 2 2 2 1 -0.10220895261855D+01 0.44119096816673D-16 + 3 2 2 1 -0.51104476310841D+00 0.70588118607120D-16 + 1 3 2 1 -0.51104476312965D+00 -0.16474023736785D-17 + 2 3 2 1 -0.10220895261855D+01 -0.45894750167121D-16 + 3 3 2 1 -0.51104476310844D+00 -0.72063445248077D-16 + 1 5 2 1 0.00000000000000D+00 0.00000000000000D+00 + 2 5 2 1 -0.47140235103323D+02 0.00000000000000D+00 + 3 5 2 1 0.10833540807471D-15 0.00000000000000D+00 + 1 1 3 1 0.10220292800934D+01 0.00000000000000D+00 + 2 1 3 1 0.10220292800930D+01 0.00000000000000D+00 + 3 1 3 1 0.20440585601850D+01 0.00000000000000D+00 + 1 2 3 1 -0.51104476310843D+00 0.66640411918100D-16 + 2 2 3 1 -0.51104476310840D+00 0.70588118607120D-16 + 3 2 3 1 -0.10220895262168D+01 0.91789951978009D-17 + 1 3 3 1 -0.51104476310843D+00 -0.68118262312919D-16 + 2 3 3 1 -0.51104476310843D+00 -0.72063445248077D-16 + 3 3 3 1 -0.10220895262168D+01 -0.10962219655880D-16 + 1 5 3 1 -0.14802973661669D-15 0.00000000000000D+00 + 2 5 3 1 -0.14906039483667D-15 0.00000000000000D+00 + 3 5 3 1 -0.47140235103323D+02 0.00000000000000D+00 + 1 1 1 2 -0.10220895256540D+01 0.18873424385615D-16 + 2 1 1 2 -0.51104476313109D+00 -0.17459947700565D-18 + 3 1 1 2 -0.51104476310987D+00 -0.66640411918100D-16 + 1 2 1 2 0.22322244801376D+01 0.00000000000000D+00 + 2 2 1 2 0.11161122399345D+01 0.00000000000000D+00 + 3 2 1 2 0.11161122399293D+01 0.00000000000000D+00 + 1 3 1 2 -0.12099846872903D+01 0.00000000000000D+00 + 2 3 1 2 -0.60499234320698D+00 0.00000000000000D+00 + 3 3 1 2 -0.60499234322323D+00 0.00000000000000D+00 + 1 5 1 2 -0.51828685123254D+02 0.00000000000000D+00 + 2 5 1 2 0.57986763838286D-16 0.00000000000000D+00 + 3 5 1 2 0.49199644043470D-17 0.00000000000000D+00 + 1 1 2 2 -0.51104476313109D+00 -0.17459947700565D-18 + 2 1 2 2 -0.10220895261884D+01 -0.44119096816673D-16 + 3 1 2 2 -0.51104476310984D+00 -0.70588118607120D-16 + 1 2 2 2 0.11161122399342D+01 0.00000000000000D+00 + 2 2 2 2 0.22322244798888D+01 0.00000000000000D+00 + 3 2 2 2 0.11161122399292D+01 0.00000000000000D+00 + 1 3 2 2 -0.60499234320698D+00 0.00000000000000D+00 + 2 3 2 2 -0.12099846865074D+01 0.00000000000000D+00 + 3 3 2 2 -0.60499234322322D+00 0.00000000000000D+00 + 1 5 2 2 0.00000000000000D+00 0.00000000000000D+00 + 2 5 2 2 -0.51828685123254D+02 0.00000000000000D+00 + 3 5 2 2 0.95458892619886D-17 0.00000000000000D+00 + 1 1 3 2 -0.51104476310986D+00 -0.66640411918100D-16 + 2 1 3 2 -0.51104476310984D+00 -0.70588118607120D-16 + 3 1 3 2 -0.10220895262197D+01 -0.91789951978009D-17 + 1 2 3 2 0.11161122399292D+01 0.00000000000000D+00 + 2 2 3 2 0.11161122399292D+01 0.00000000000000D+00 + 3 2 3 2 0.22322244798586D+01 0.00000000000000D+00 + 1 3 3 2 -0.60499234322323D+00 0.00000000000000D+00 + 2 3 3 2 -0.60499234322322D+00 0.00000000000000D+00 + 3 3 3 2 -0.12099846864464D+01 0.00000000000000D+00 + 1 5 3 2 0.00000000000000D+00 0.00000000000000D+00 + 2 5 3 2 0.78480073075874D-16 0.00000000000000D+00 + 3 5 3 2 -0.51828685123254D+02 0.00000000000000D+00 + 1 1 1 3 -0.10220895256540D+01 -0.17097771035166D-16 + 2 1 1 3 -0.51104476313107D+00 0.16474023736785D-17 + 3 1 1 3 -0.51104476310987D+00 0.68118262312919D-16 + 1 2 1 3 -0.12099846872903D+01 0.00000000000000D+00 + 2 2 1 3 -0.60499234320698D+00 0.00000000000000D+00 + 3 2 1 3 -0.60499234322323D+00 0.00000000000000D+00 + 1 3 1 3 0.22322244801376D+01 0.00000000000000D+00 + 2 3 1 3 0.11161122399345D+01 0.00000000000000D+00 + 3 3 1 3 0.11161122399293D+01 0.00000000000000D+00 + 1 5 1 3 -0.51828685123254D+02 0.00000000000000D+00 + 2 5 1 3 0.57986759426656D-16 0.00000000000000D+00 + 3 5 1 3 0.49199644043470D-17 0.00000000000000D+00 + 1 1 2 3 -0.51104476313107D+00 0.16474023736785D-17 + 2 1 2 3 -0.10220895261884D+01 0.45894750167121D-16 + 3 1 2 3 -0.51104476310988D+00 0.72063445248077D-16 + 1 2 2 3 -0.60499234320698D+00 0.00000000000000D+00 + 2 2 2 3 -0.12099846865074D+01 0.00000000000000D+00 + 3 2 2 3 -0.60499234322322D+00 0.00000000000000D+00 + 1 3 2 3 0.11161122399342D+01 0.00000000000000D+00 + 2 3 2 3 0.22322244798888D+01 0.00000000000000D+00 + 3 3 2 3 0.11161122399292D+01 0.00000000000000D+00 + 1 5 2 3 0.00000000000000D+00 0.00000000000000D+00 + 2 5 2 3 -0.51828685123254D+02 0.00000000000000D+00 + 3 5 2 3 0.95458892619886D-17 0.00000000000000D+00 + 1 1 3 3 -0.51104476310986D+00 0.68118262312919D-16 + 2 1 3 3 -0.51104476310987D+00 0.72063445248077D-16 + 3 1 3 3 -0.10220895262197D+01 0.10962219655880D-16 + 1 2 3 3 -0.60499234322323D+00 0.00000000000000D+00 + 2 2 3 3 -0.60499234322322D+00 0.00000000000000D+00 + 3 2 3 3 -0.12099846864464D+01 0.00000000000000D+00 + 1 3 3 3 0.11161122399292D+01 0.00000000000000D+00 + 2 3 3 3 0.11161122399290D+01 0.00000000000000D+00 + 3 3 3 3 0.22322244798588D+01 0.00000000000000D+00 + 1 5 3 3 0.00000000000000D+00 0.00000000000000D+00 + 2 5 3 3 0.78480068664244D-16 0.00000000000000D+00 + 3 5 3 3 -0.51828685123254D+02 0.00000000000000D+00 + 1 1 1 5 -0.47140235103323D+02 0.00000000000000D+00 + 2 1 1 5 0.00000000000000D+00 0.00000000000000D+00 + 3 1 1 5 -0.14802973661669D-15 0.00000000000000D+00 + 1 2 1 5 -0.51828685188971D+02 0.00000000000000D+00 + 2 2 1 5 -0.14802973661669D-15 0.00000000000000D+00 + 3 2 1 5 0.00000000000000D+00 0.00000000000000D+00 + 1 3 1 5 -0.51828685188971D+02 0.00000000000000D+00 + 2 3 1 5 -0.14802973661669D-15 0.00000000000000D+00 + 3 3 1 5 0.00000000000000D+00 0.00000000000000D+00 + 1 5 1 5 -0.58821404847958D+02 0.00000000000000D+00 + 2 5 1 5 0.19607134949319D+02 0.00000000000000D+00 + 3 5 1 5 0.19607134949319D+02 0.00000000000000D+00 + 1 1 2 5 0.97947498579976D-16 0.00000000000000D+00 + 2 1 2 5 -0.47140235103323D+02 0.00000000000000D+00 + 3 1 2 5 -0.14906039483667D-15 0.00000000000000D+00 + 1 2 2 5 -0.27637396872967D-16 0.00000000000000D+00 + 2 2 2 5 -0.51828685188971D+02 0.00000000000000D+00 + 3 2 2 5 0.78480073075874D-16 0.00000000000000D+00 + 1 3 2 5 0.12039233533209D-15 0.00000000000000D+00 + 2 3 2 5 -0.51828685188971D+02 0.00000000000000D+00 + 3 3 2 5 0.78480073075874D-16 0.00000000000000D+00 + 1 5 2 5 0.19607134949319D+02 0.00000000000000D+00 + 2 5 2 5 -0.58821404847958D+02 0.00000000000000D+00 + 3 5 2 5 0.19607134949319D+02 0.00000000000000D+00 + 1 1 3 5 0.88745908358711D-16 0.00000000000000D+00 + 2 1 3 5 0.10782007896472D-15 0.00000000000000D+00 + 3 1 3 5 -0.47140235103323D+02 0.00000000000000D+00 + 1 2 3 5 -0.43812814489768D-16 0.00000000000000D+00 + 2 2 3 5 -0.12481108122479D-15 0.00000000000000D+00 + 3 2 3 5 -0.51828685188971D+02 0.00000000000000D+00 + 1 3 3 5 -0.43812814489768D-16 0.00000000000000D+00 + 2 3 3 5 -0.12481108122479D-15 0.00000000000000D+00 + 3 3 3 5 -0.51828685188971D+02 0.00000000000000D+00 + 1 5 3 5 0.19607134949319D+02 0.00000000000000D+00 + 2 5 3 5 0.19607134949319D+02 0.00000000000000D+00 + 3 5 3 5 -0.58821404847958D+02 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 1.25000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.46412876436111D+01 -0.18294138574828D-15 + 2 1 1 1 0.10156396769728D+01 -0.37428110922919D-07 + 3 1 1 1 0.10156396769260D+01 -0.37428110997206D-07 + 1 2 1 1 -0.19424004473078D+01 -0.10573124833963D+01 + 2 2 1 1 -0.37258939272466D+00 -0.32696989253121D+00 + 3 2 1 1 -0.37258939271468D+00 -0.32696989250397D+00 + 1 3 1 1 -0.21211173549138D+01 -0.62585170122848D+00 + 2 3 1 1 -0.49466311444644D+00 -0.32257857941129D-01 + 3 3 1 1 -0.49466311442012D+00 -0.32257857953367D-01 + 1 1 2 1 0.10156396769728D+01 0.37428110759948D-07 + 2 1 2 1 0.20312828436636D+01 -0.19843115044626D-16 + 3 1 2 1 0.10156433035299D+01 -0.33445399337571D-08 + 1 2 2 1 -0.37258886621456D+00 -0.32697221924934D+00 + 2 2 2 1 -0.74517773237940D+00 -0.65394443843796D+00 + 3 2 2 1 -0.37258906705845D+00 -0.32697368809267D+00 + 1 3 2 1 -0.49466438738574D+00 -0.32255840404103D-01 + 2 3 2 1 -0.98932877469339D+00 -0.64511680815988D-01 + 3 3 2 1 -0.49466556803286D+00 -0.32254943793103D-01 + 1 1 3 1 0.10156396769257D+01 0.37428110685661D-07 + 2 1 3 1 0.10156433035299D+01 0.33445398578421D-08 + 3 1 3 1 0.20312828437281D+01 0.72228285171683D-16 + 1 2 3 1 -0.37258886620458D+00 -0.32697221922210D+00 + 2 2 3 1 -0.37258906705845D+00 -0.32697368809267D+00 + 3 2 3 1 -0.74517773240913D+00 -0.65394443844412D+00 + 1 3 3 1 -0.49466438735942D+00 -0.32255840416340D-01 + 2 3 3 1 -0.49466556803286D+00 -0.32254943793103D-01 + 3 3 3 1 -0.98932877471875D+00 -0.64511680832664D-01 + 1 1 1 2 -0.19424004473078D+01 0.10573124833963D+01 + 2 1 1 2 -0.37258886621456D+00 0.32697221924934D+00 + 3 1 1 2 -0.37258886620458D+00 0.32697221922210D+00 + 1 2 1 2 0.29035985308687D+01 -0.89641279016659D-16 + 2 2 1 2 0.11251651677063D+01 -0.12720271903146D-06 + 3 2 1 2 0.11251651676995D+01 -0.12720271906786D-06 + 1 3 1 2 -0.41178651250627D+00 0.22082476700424D+00 + 2 3 1 2 -0.50269322835733D+00 0.24273101542457D+00 + 3 3 1 2 -0.50269322837093D+00 0.24273101543021D+00 + 1 1 2 2 -0.37258939272466D+00 0.32696989253121D+00 + 2 1 2 2 -0.74517773237940D+00 0.65394443843796D+00 + 3 1 2 2 -0.37258906705845D+00 0.32697368809267D+00 + 1 2 2 2 0.11251651677063D+01 0.12720271895161D-06 + 2 2 2 2 0.22502719834449D+01 -0.97231263718667D-17 + 3 2 2 2 0.11251071895648D+01 -0.88682962502572D-08 + 1 3 2 2 -0.50269322835733D+00 0.24273101542457D+00 + 2 3 2 2 -0.10053853712888D+01 0.48546018782777D+00 + 3 3 2 2 -0.50269191253735D+00 0.24273046022109D+00 + 1 1 3 2 -0.37258939271468D+00 0.32696989250397D+00 + 2 1 3 2 -0.37258906705845D+00 0.32697368809267D+00 + 3 1 3 2 -0.74517773240913D+00 0.65394443844412D+00 + 1 2 3 2 0.11251651676996D+01 0.12720271891521D-06 + 2 2 3 2 0.11251071895648D+01 0.88682962130589D-08 + 3 2 3 2 0.22502719834154D+01 0.35391859734125D-16 + 1 3 3 2 -0.50269322837093D+00 0.24273101543021D+00 + 2 3 3 2 -0.50269191253735D+00 0.24273046022109D+00 + 3 3 3 2 -0.10053853712365D+01 0.48546018780611D+00 + 1 1 1 3 -0.21211173549138D+01 0.62585170122848D+00 + 2 1 1 3 -0.49466438738574D+00 0.32255840404103D-01 + 3 1 1 3 -0.49466438735942D+00 0.32255840416340D-01 + 1 2 1 3 -0.41178651250627D+00 -0.22082476700424D+00 + 2 2 1 3 -0.50269322835733D+00 -0.24273101542457D+00 + 3 2 1 3 -0.50269322837093D+00 -0.24273101543021D+00 + 1 3 1 3 0.29035985308687D+01 -0.89641279016659D-16 + 2 3 1 3 0.11251651677063D+01 0.12720271895161D-06 + 3 3 1 3 0.11251651676995D+01 0.12720271891521D-06 + 1 1 2 3 -0.49466311444644D+00 0.32257857941129D-01 + 2 1 2 3 -0.98932877469339D+00 0.64511680815988D-01 + 3 1 2 3 -0.49466556803286D+00 0.32254943793103D-01 + 1 2 2 3 -0.50269322835733D+00 -0.24273101542457D+00 + 2 2 2 3 -0.10053853712888D+01 -0.48546018782777D+00 + 3 2 2 3 -0.50269191253735D+00 -0.24273046022109D+00 + 1 3 2 3 0.11251651677063D+01 -0.12720271903146D-06 + 2 3 2 3 0.22502719834449D+01 -0.97231263718667D-17 + 3 3 2 3 0.11251071895648D+01 0.88682962130589D-08 + 1 1 3 3 -0.49466311442012D+00 0.32257857953367D-01 + 2 1 3 3 -0.49466556803286D+00 0.32254943793103D-01 + 3 1 3 3 -0.98932877471875D+00 0.64511680832664D-01 + 1 2 3 3 -0.50269322837093D+00 -0.24273101543021D+00 + 2 2 3 3 -0.50269191253735D+00 -0.24273046022109D+00 + 3 2 3 3 -0.10053853712365D+01 -0.48546018780611D+00 + 1 3 3 3 0.11251651676996D+01 -0.12720271906786D-06 + 2 3 3 3 0.11251071895648D+01 -0.88682962502572D-08 + 3 3 3 3 0.22502719834154D+01 0.35391859734125D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 2.50000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.43065651629881D+01 0.39046031375953D-16 + 2 1 1 1 0.10002072851789D+01 -0.71729332025738D-07 + 3 1 1 1 0.10002072851221D+01 -0.71729332036712D-07 + 1 2 1 1 -0.86382813737189D+00 -0.14983177063395D+01 + 2 2 1 1 -0.45195337911948D-01 -0.45555787629443D+00 + 3 2 1 1 -0.45195337929414D-01 -0.45555787625564D+00 + 1 3 1 1 -0.14983177063395D+01 -0.86382813737187D+00 + 2 3 1 1 -0.45555787629443D+00 -0.45195337911943D-01 + 3 3 1 1 -0.45555787625566D+00 -0.45195337929409D-01 + 1 1 2 1 0.10002072851789D+01 0.71729332198601D-07 + 2 1 2 1 0.20004181466179D+01 0.25387427698886D-16 + 3 1 2 1 0.10002109560189D+01 -0.94266511212970D-08 + 1 2 2 1 -0.45193046055092D-01 -0.45555940108881D+00 + 2 2 2 1 -0.90386092121522D-01 -0.91111880208907D+00 + 3 2 2 1 -0.45192738163433D-01 -0.45556057305673D+00 + 1 3 2 1 -0.45555940108882D+00 -0.45193046055086D-01 + 2 3 2 1 -0.91111880208908D+00 -0.90386092121527D-01 + 3 3 2 1 -0.45556057305673D+00 -0.45192738163437D-01 + 1 1 3 1 0.10002072851219D+01 0.71729332187627D-07 + 2 1 3 1 0.10002109560189D+01 0.94266509148139D-08 + 3 1 3 1 0.20004181466829D+01 -0.90731310867207D-16 + 1 2 3 1 -0.45193046072558D-01 -0.45555940105002D+00 + 2 2 3 1 -0.45192738163433D-01 -0.45556057305673D+00 + 3 2 3 1 -0.90386092145099D-01 -0.91111880210004D+00 + 1 3 3 1 -0.45555940105004D+00 -0.45193046072552D-01 + 2 3 3 1 -0.45556057305673D+00 -0.45192738163437D-01 + 3 3 3 1 -0.91111880210003D+00 -0.90386092145096D-01 + 1 1 1 2 -0.86382813737189D+00 0.14983177063395D+01 + 2 1 1 2 -0.45193046055092D-01 0.45555940108881D+00 + 3 1 1 2 -0.45193046072558D-01 0.45555940105002D+00 + 1 2 1 2 0.28782656243718D+01 0.19132555374217D-16 + 2 2 1 2 0.11465864191894D+01 -0.86146511072130D-07 + 3 2 1 2 0.11465864191777D+01 -0.86146511077507D-07 + 1 3 1 2 -0.13532354070258D+00 0.30765652127034D+00 + 2 3 1 2 -0.25685934172382D+00 0.34222483338039D+00 + 3 3 1 2 -0.25685934173143D+00 0.34222483338800D+00 + 1 1 2 2 -0.45195337911948D-01 0.45555787629443D+00 + 2 1 2 2 -0.90386092121522D-01 0.91111880208907D+00 + 3 1 2 2 -0.45192738163433D-01 0.45556057305673D+00 + 1 2 2 2 0.11465864191894D+01 0.86146511156833D-07 + 2 2 2 2 0.22931136235329D+01 0.12439839572454D-16 + 3 2 2 2 0.11465277973050D+01 -0.33728179658784D-07 + 1 3 2 2 -0.25685934172382D+00 0.34222483338039D+00 + 2 3 2 2 -0.51371934790089D+00 0.68444775735688D+00 + 3 3 2 2 -0.25685914062637D+00 0.34222459490589D+00 + 1 1 3 2 -0.45195337929414D-01 0.45555787625564D+00 + 2 1 3 2 -0.45192738163433D-01 0.45556057305673D+00 + 3 1 3 2 -0.90386092145099D-01 0.91111880210004D+00 + 1 2 3 2 0.11465864191778D+01 0.86146511151456D-07 + 2 2 3 2 0.11465277973050D+01 0.33728179557607D-07 + 3 2 3 2 0.22931136235036D+01 -0.44458342324931D-16 + 1 3 3 2 -0.25685934173143D+00 0.34222483338800D+00 + 2 3 3 2 -0.25685914062637D+00 0.34222459490589D+00 + 3 3 3 2 -0.51371934786986D+00 0.68444775732584D+00 + 1 1 1 3 -0.14983177063395D+01 0.86382813737187D+00 + 2 1 1 3 -0.45555940108882D+00 0.45193046055086D-01 + 3 1 1 3 -0.45555940105004D+00 0.45193046072552D-01 + 1 2 1 3 -0.13532354070258D+00 -0.30765652127034D+00 + 2 2 1 3 -0.25685934172382D+00 -0.34222483338039D+00 + 3 2 1 3 -0.25685934173143D+00 -0.34222483338800D+00 + 1 3 1 3 0.28782656243718D+01 0.19132555374217D-16 + 2 3 1 3 0.11465864191894D+01 0.86146511156833D-07 + 3 3 1 3 0.11465864191777D+01 0.86146511151456D-07 + 1 1 2 3 -0.45555787629443D+00 0.45195337911943D-01 + 2 1 2 3 -0.91111880208908D+00 0.90386092121527D-01 + 3 1 2 3 -0.45556057305673D+00 0.45192738163437D-01 + 1 2 2 3 -0.25685934172382D+00 -0.34222483338039D+00 + 2 2 2 3 -0.51371934790089D+00 -0.68444775735688D+00 + 3 2 2 3 -0.25685914062637D+00 -0.34222459490589D+00 + 1 3 2 3 0.11465864191894D+01 -0.86146511072130D-07 + 2 3 2 3 0.22931136235329D+01 0.12439839572454D-16 + 3 3 2 3 0.11465277973050D+01 0.33728179557607D-07 + 1 1 3 3 -0.45555787625566D+00 0.45195337929409D-01 + 2 1 3 3 -0.45556057305673D+00 0.45192738163437D-01 + 3 1 3 3 -0.91111880210003D+00 0.90386092145096D-01 + 1 2 3 3 -0.25685934173143D+00 -0.34222483338800D+00 + 2 2 3 3 -0.25685914062637D+00 -0.34222459490589D+00 + 3 2 3 3 -0.51371934786986D+00 -0.68444775732584D+00 + 1 3 3 3 0.11465864191778D+01 -0.86146511077507D-07 + 2 3 3 3 0.11465277973050D+01 -0.33728179658784D-07 + 3 3 3 3 0.22931136235036D+01 -0.44458342324931D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 3.75000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.39523920028487D+01 -0.16526640617583D-15 + 2 1 1 1 0.98476003269298D+00 -0.10365653604733D-06 + 3 1 1 1 0.98476003262635D+00 -0.10365653600097D-06 + 1 2 1 1 0.21839885952390D+00 -0.10603422215195D+01 + 2 2 1 1 0.27252878293251D+00 -0.31730391964470D+00 + 3 2 1 1 0.27252878288734D+00 -0.31730391961716D+00 + 1 3 1 1 -0.90420648978759D+00 -0.59534386064209D+00 + 2 3 1 1 -0.41707470375791D+00 -0.31660802797738D-01 + 3 3 1 1 -0.41707470370650D+00 -0.31660802810195D-01 + 1 1 2 1 0.98476003269298D+00 0.10365653682640D-06 + 2 1 2 1 0.19695237490873D+01 -0.55168491453033D-16 + 3 1 2 1 0.98476375830455D+00 -0.13965113779682D-07 + 1 2 2 1 0.27253177583290D+00 -0.31730374125913D+00 + 2 2 2 1 0.54506355158952D+00 -0.63460748245370D+00 + 3 2 2 1 0.27253225262961D+00 -0.31730438938033D+00 + 1 3 2 1 -0.41707669392043D+00 -0.31658560359934D-01 + 2 3 2 1 -0.83415338774138D+00 -0.63317120728118D-01 + 3 3 2 1 -0.41707748935751D+00 -0.31658681504628D-01 + 1 1 3 1 0.98476003262613D+00 0.10365653687277D-06 + 2 1 3 1 0.98476375830455D+00 0.13965113835575D-07 + 3 1 3 1 0.19695237491537D+01 -0.49958653748305D-16 + 1 2 3 1 0.27253177578773D+00 -0.31730374123159D+00 + 2 2 3 1 0.27253225262961D+00 -0.31730438938033D+00 + 3 2 3 1 0.54506355157536D+00 -0.63460748246310D+00 + 1 3 3 1 -0.41707669386902D+00 -0.31658560372391D-01 + 2 3 3 1 -0.41707748935751D+00 -0.31658681504628D-01 + 3 3 3 1 -0.83415338773797D+00 -0.63317120744789D-01 + 1 1 1 2 0.21839885952390D+00 0.10603422215195D+01 + 2 1 1 2 0.27253177583290D+00 0.31730374125913D+00 + 3 1 1 2 0.27253177578773D+00 0.31730374123159D+00 + 1 2 1 2 0.28559658127531D+01 -0.80980539026156D-16 + 2 2 1 2 0.11675346049205D+01 0.63327269003879D-07 + 3 2 1 2 0.11675346049038D+01 0.63327269026595D-07 + 1 3 1 2 0.13728194783577D+00 0.21429524405737D+00 + 2 3 1 2 -0.12558665603055D-01 0.24127893610373D+00 + 3 3 1 2 -0.12558665605173D-01 0.24127893610884D+00 + 1 1 2 2 0.27252878293251D+00 0.31730391964470D+00 + 2 1 2 2 0.54506355158952D+00 0.63460748245370D+00 + 3 1 2 2 0.27253225262961D+00 0.31730438938033D+00 + 1 2 2 2 0.11675346049205D+01 -0.63327268622134D-07 + 2 2 2 2 0.23350093759902D+01 -0.27032560811986D-16 + 3 2 2 2 0.11674753335764D+01 -0.55731482575794D-07 + 1 3 2 2 -0.12558665603055D-01 0.24127893610373D+00 + 2 3 2 2 -0.25119179137494D-01 0.48255765720907D+00 + 3 3 2 2 -0.12559084917328D-01 0.24127960561324D+00 + 1 1 3 2 0.27252878288734D+00 0.31730391961716D+00 + 2 1 3 2 0.27253225262961D+00 0.31730438938033D+00 + 3 1 3 2 0.54506355157536D+00 0.63460748246310D+00 + 1 2 3 2 0.11675346049039D+01 -0.63327268599417D-07 + 2 2 3 2 0.11674753335764D+01 0.55731482603182D-07 + 3 2 3 2 0.23350093759616D+01 -0.24479740336670D-16 + 1 3 3 2 -0.12558665605173D-01 0.24127893610884D+00 + 2 3 3 2 -0.12559084917328D-01 0.24127960561324D+00 + 3 3 3 2 -0.25119179128285D-01 0.48255765718683D+00 + 1 1 1 3 -0.90420648978759D+00 0.59534386064209D+00 + 2 1 1 3 -0.41707669392043D+00 0.31658560359934D-01 + 3 1 1 3 -0.41707669386902D+00 0.31658560372391D-01 + 1 2 1 3 0.13728194783577D+00 -0.21429524405737D+00 + 2 2 1 3 -0.12558665603055D-01 -0.24127893610373D+00 + 3 2 1 3 -0.12558665605173D-01 -0.24127893610884D+00 + 1 3 1 3 0.28559658127531D+01 -0.80980539026156D-16 + 2 3 1 3 0.11675346049204D+01 -0.63327268622134D-07 + 3 3 1 3 0.11675346049038D+01 -0.63327268599417D-07 + 1 1 2 3 -0.41707470375791D+00 0.31660802797738D-01 + 2 1 2 3 -0.83415338774138D+00 0.63317120728118D-01 + 3 1 2 3 -0.41707748935751D+00 0.31658681504628D-01 + 1 2 2 3 -0.12558665603055D-01 -0.24127893610373D+00 + 2 2 2 3 -0.25119179137494D-01 -0.48255765720907D+00 + 3 2 2 3 -0.12559084917328D-01 -0.24127960561324D+00 + 1 3 2 3 0.11675346049204D+01 0.63327269003879D-07 + 2 3 2 3 0.23350093759902D+01 -0.27032560811986D-16 + 3 3 2 3 0.11674753335764D+01 0.55731482603182D-07 + 1 1 3 3 -0.41707470370650D+00 0.31660802810195D-01 + 2 1 3 3 -0.41707748935751D+00 0.31658681504628D-01 + 3 1 3 3 -0.83415338773797D+00 0.63317120744789D-01 + 1 2 3 3 -0.12558665605173D-01 -0.24127893610884D+00 + 2 2 3 3 -0.12559084917328D-01 -0.24127960561324D+00 + 3 2 3 3 -0.25119179128285D-01 -0.48255765718683D+00 + 1 3 3 3 0.11675346049039D+01 0.63327269026595D-07 + 2 3 3 3 0.11674753335764D+01 -0.55731482575794D-07 + 3 3 3 3 0.23350093759616D+01 -0.24479740336670D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 0.00000000E+00 0.00000000E+00 1.0 + 1 1 1 1 0.38000116260050D+01 0.00000000000000D+00 + 2 1 1 1 0.97835593951254D+00 -0.17542544519881D-08 + 3 1 1 1 0.97835593944183D+00 -0.17542544519881D-08 + 1 2 1 1 0.66675980381896D+00 -0.14214892892199D-05 + 2 2 1 1 0.40131534295772D+00 -0.16855513005264D-05 + 3 2 1 1 0.40131534290098D+00 -0.16855513005159D-05 + 1 3 1 1 -0.66675980381893D+00 0.14214892760907D-05 + 2 3 1 1 -0.40131534295773D+00 0.16855513023969D-05 + 3 3 1 1 -0.40131534290100D+00 0.16855513024074D-05 + 1 1 2 1 0.97835593951254D+00 0.17542544519881D-08 + 2 1 2 1 0.19567166401134D+01 0.00000000000000D+00 + 3 1 2 1 0.97836012236644D+00 -0.49622995082342D-07 + 1 2 2 1 0.40131768410700D+00 0.18675487913255D-06 + 2 2 2 1 0.80263536810995D+00 0.37350975826305D-06 + 3 2 2 1 0.40131795169709D+00 0.96365062109659D-07 + 1 3 2 1 -0.40131768410701D+00 -0.18675487726204D-06 + 2 3 2 1 -0.80263536810995D+00 -0.37350975452559D-06 + 3 3 2 1 -0.40131795169706D+00 -0.96365060208809D-07 + 1 1 3 1 0.97835593944160D+00 0.17542544519881D-08 + 2 1 3 1 0.97836012236644D+00 0.49622995082342D-07 + 3 1 3 1 0.19567166401803D+01 0.00000000000000D+00 + 1 2 3 1 0.40131768405026D+00 0.18675487914303D-06 + 2 2 3 1 0.40131795169709D+00 0.96365062109659D-07 + 3 2 3 1 0.80263536810058D+00 0.37350975826129D-06 + 1 3 3 1 -0.40131768405028D+00 -0.18675487725152D-06 + 2 3 3 1 -0.40131795169706D+00 -0.96365060208809D-07 + 3 3 3 1 -0.80263536810057D+00 -0.37350975452730D-06 + 1 1 1 2 0.66675980381896D+00 0.14214892892199D-05 + 2 1 1 2 0.40131768410700D+00 -0.18675487913255D-06 + 3 1 1 2 0.40131768405026D+00 -0.18675487914303D-06 + 1 2 1 2 0.28477716473574D+01 0.00000000000000D+00 + 2 2 1 2 0.11760769923341D+01 0.19747271083593D-06 + 3 2 1 2 0.11760769923154D+01 0.19747271083593D-06 + 1 3 1 2 0.24906767731648D+00 0.18157357547477D-05 + 2 3 1 2 0.88207128390073D-01 0.98791889200552D-06 + 3 3 1 2 0.88207128390073D-01 0.98791889204709D-06 + 1 1 2 2 0.40131534295772D+00 0.16855513005264D-05 + 2 1 2 2 0.80263536810995D+00 -0.37350975826305D-06 + 3 1 2 2 0.40131795169709D+00 -0.96365062109659D-07 + 1 2 2 2 0.11760769923341D+01 -0.19747271083593D-06 + 2 2 2 2 0.23520938888339D+01 0.00000000000000D+00 + 3 2 2 2 0.11760174394179D+01 -0.45717874093924D-07 + 1 3 2 2 0.88207128390073D-01 -0.98791889036497D-06 + 2 3 2 2 0.17641251855782D+00 0.10195257803507D-08 + 3 3 2 2 0.88206877899749D-01 0.42960617971431D-06 + 1 1 3 2 0.40131534290098D+00 0.16855513005159D-05 + 2 1 3 2 0.40131795169709D+00 -0.96365062109659D-07 + 3 1 3 2 0.80263536810058D+00 -0.37350975826129D-06 + 1 2 3 2 0.11760769923155D+01 -0.19747271083593D-06 + 2 2 3 2 0.11760174394179D+01 0.45717874093924D-07 + 3 2 3 2 0.23520938888055D+01 0.00000000000000D+00 + 1 3 3 2 0.88207128390073D-01 -0.98791889032341D-06 + 2 3 3 2 0.88206877899749D-01 -0.42960617797890D-06 + 3 3 3 2 0.17641251855783D+00 -0.10195222601014D-08 + 1 1 1 3 -0.66675980381893D+00 -0.14214892760907D-05 + 2 1 1 3 -0.40131768410701D+00 0.18675487726204D-06 + 3 1 1 3 -0.40131768405028D+00 0.18675487725152D-06 + 1 2 1 3 0.24906767731648D+00 -0.18157357547477D-05 + 2 2 1 3 0.88207128390073D-01 0.98791889036497D-06 + 3 2 1 3 0.88207128390073D-01 0.98791889032341D-06 + 1 3 1 3 0.28477716473574D+01 0.00000000000000D+00 + 2 3 1 3 0.11760769923341D+01 0.19747271083593D-06 + 3 3 1 3 0.11760769923154D+01 0.19747271083593D-06 + 1 1 2 3 -0.40131534295773D+00 -0.16855513023969D-05 + 2 1 2 3 -0.80263536810995D+00 0.37350975452559D-06 + 3 1 2 3 -0.40131795169706D+00 0.96365060208809D-07 + 1 2 2 3 0.88207128390073D-01 -0.98791889200552D-06 + 2 2 2 3 0.17641251855782D+00 -0.10195257803507D-08 + 3 2 2 3 0.88206877899749D-01 0.42960617797890D-06 + 1 3 2 3 0.11760769923341D+01 -0.19747271083593D-06 + 2 3 2 3 0.23520938888339D+01 0.00000000000000D+00 + 3 3 2 3 0.11760174394179D+01 -0.45717874093924D-07 + 1 1 3 3 -0.40131534290100D+00 -0.16855513024074D-05 + 2 1 3 3 -0.40131795169706D+00 0.96365060208809D-07 + 3 1 3 3 -0.80263536810057D+00 0.37350975452730D-06 + 1 2 3 3 0.88207128390073D-01 -0.98791889204709D-06 + 2 2 3 3 0.88206877899749D-01 -0.42960617971431D-06 + 3 2 3 3 0.17641251855783D+00 -0.10195259401832D-08 + 1 3 3 3 0.11760769923155D+01 -0.19747271083593D-06 + 2 3 3 3 0.11760174394179D+01 0.45717874093924D-07 + 3 3 3 3 0.23520938888055D+01 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 1.25000000E-01 1.25000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.40939482522776D+01 -0.56427497229237D-16 + 2 1 1 1 0.30793615988346D+01 0.26464192553849D-16 + 3 1 1 1 0.10145866545924D+01 -0.97790474306292D-16 + 1 2 1 1 -0.71745859774465D+00 -0.17320982772620D+01 + 2 2 1 1 -0.42088538397290D+00 -0.13461753100869D+01 + 3 2 1 1 -0.63179816884491D-01 -0.48259767811827D+00 + 1 3 1 1 -0.17320982772620D+01 -0.71745859774464D+00 + 2 3 1 1 -0.13461753100869D+01 -0.42088538397291D+00 + 3 3 1 1 -0.48259767811830D+00 -0.63179816884494D-01 + 1 1 2 1 0.30793615988350D+01 0.26464192553849D-16 + 2 1 2 1 0.40939482534422D+01 0.19583150345492D-15 + 3 1 2 1 0.10145866545922D+01 0.65368124573506D-15 + 1 2 2 1 -0.42088538397290D+00 -0.13461753100869D+01 + 2 2 2 1 -0.71745859816111D+00 -0.17320982776183D+01 + 3 2 2 1 -0.63179816884496D-01 -0.48259767811827D+00 + 1 3 2 1 -0.13461753100869D+01 -0.42088538397291D+00 + 2 3 2 1 -0.17320982776183D+01 -0.71745859816108D+00 + 3 3 2 1 -0.48259767811829D+00 -0.63179816884493D-01 + 1 1 3 1 0.10145866545922D+01 -0.97790474306292D-16 + 2 1 3 1 0.10145866545920D+01 0.65368124573506D-15 + 3 1 3 1 0.20291733091854D+01 0.38747228877717D-16 + 1 2 3 1 -0.63179816884491D-01 -0.48259767811827D+00 + 2 2 3 1 -0.63179816884498D-01 -0.48259767811827D+00 + 3 2 3 1 -0.12635963376897D+00 -0.96519535623647D+00 + 1 3 3 1 -0.48259767811830D+00 -0.63179816884493D-01 + 2 3 3 1 -0.48259767811830D+00 -0.63179816884494D-01 + 3 3 3 1 -0.96519535623648D+00 -0.12635963376899D+00 + 1 1 1 2 -0.71745860203884D+00 0.17320982876291D+01 + 2 1 1 2 -0.42088538826709D+00 0.13461753204540D+01 + 3 1 1 2 -0.63179816884493D-01 0.48259767811827D+00 + 1 2 1 2 0.27198830756263D+01 -0.27649473642326D-16 + 2 2 1 2 0.16013072708547D+01 0.12967454351316D-16 + 3 2 1 2 0.11185758044852D+01 -0.47917332409951D-16 + 1 3 1 2 -0.38988918125397D+00 0.38988918125396D+00 + 2 3 1 2 0.85054261508742D-01 -0.27331199798836D-02 + 3 3 1 2 -0.39262230063860D+00 0.47494344216746D+00 + 1 1 2 2 -0.42088538826708D+00 0.13461753204540D+01 + 2 1 2 2 -0.71745860245530D+00 0.17320982879854D+01 + 3 1 2 2 -0.63179816884498D-01 0.48259767811827D+00 + 1 2 2 2 0.16013072708548D+01 0.12967454351254D-16 + 2 2 2 2 0.27198830754244D+01 0.95957436692913D-16 + 3 2 2 2 0.11185758044852D+01 0.32030381041028D-15 + 1 3 2 2 0.85054261508745D-01 -0.27331199798871D-02 + 2 3 2 2 -0.38988918078190D+00 0.38988918078190D+00 + 3 3 2 2 -0.39262230063860D+00 0.47494344216746D+00 + 1 1 3 2 -0.63179816884491D-01 0.48259767811827D+00 + 2 1 3 2 -0.63179816884496D-01 0.48259767811827D+00 + 3 1 3 2 -0.12635963376898D+00 0.96519535623647D+00 + 1 2 3 2 0.11185758044853D+01 -0.47917332410215D-16 + 2 2 3 2 0.11185758044853D+01 0.32030381040998D-15 + 3 2 3 2 0.22371516089706D+01 0.18986142150081D-16 + 1 3 3 2 -0.39262230063860D+00 0.47494344216746D+00 + 2 3 3 2 -0.39262230063860D+00 0.47494344216746D+00 + 3 3 3 2 -0.78524460127721D+00 0.94988688433490D+00 + 1 1 1 3 -0.17320982876291D+01 0.71745860203882D+00 + 2 1 1 3 -0.13461753204540D+01 0.42088538826709D+00 + 3 1 1 3 -0.48259767811830D+00 0.63179816884493D-01 + 1 2 1 3 -0.38988918125397D+00 -0.38988918125396D+00 + 2 2 1 3 0.85054261508742D-01 0.27331199798836D-02 + 3 2 1 3 -0.39262230063860D+00 -0.47494344216746D+00 + 1 3 1 3 0.27198830756263D+01 -0.27649473642326D-16 + 2 3 1 3 0.16013072708547D+01 0.12967454351456D-16 + 3 3 1 3 0.11185758044852D+01 -0.47917332410215D-16 + 1 1 2 3 -0.13461753204540D+01 0.42088538826709D+00 + 2 1 2 3 -0.17320982879854D+01 0.71745860245526D+00 + 3 1 2 3 -0.48259767811830D+00 0.63179816884493D-01 + 1 2 2 3 0.85054261508745D-01 0.27331199798871D-02 + 2 2 2 3 -0.38988918078190D+00 -0.38988918078190D+00 + 3 2 2 3 -0.39262230063860D+00 -0.47494344216746D+00 + 1 3 2 3 0.16013072708548D+01 0.12967454351518D-16 + 2 3 2 3 0.27198830754244D+01 0.95957436692913D-16 + 3 3 2 3 0.11185758044852D+01 0.32030381041008D-15 + 1 1 3 3 -0.48259767811831D+00 0.63179816884494D-01 + 2 1 3 3 -0.48259767811830D+00 0.63179816884493D-01 + 3 1 3 3 -0.96519535623648D+00 0.12635963376900D+00 + 1 2 3 3 -0.39262230063860D+00 -0.47494344216746D+00 + 2 2 3 3 -0.39262230063860D+00 -0.47494344216746D+00 + 3 2 3 3 -0.78524460127721D+00 -0.94988688433490D+00 + 1 3 3 3 0.11185758044853D+01 -0.47917332409951D-16 + 2 3 3 3 0.11185758044853D+01 0.32030381041038D-15 + 3 3 3 3 0.22371516089706D+01 0.18986142150081D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 2.50000000E-01 1.25000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.47458318086888D+01 -0.13285833635966D-15 + 2 1 1 1 0.24497711178687D+01 -0.31410139854687D-07 + 3 1 1 1 0.10031815446441D+01 -0.26806263380816D-07 + 1 2 1 1 0.23884626931075D+00 -0.18691701824144D+01 + 2 2 1 1 0.42176567750473D+00 -0.87161666216639D+00 + 3 2 1 1 0.26394416861968D+00 -0.36881611479721D+00 + 1 3 1 1 -0.14905927278676D+01 -0.11528130944862D+01 + 2 3 1 1 -0.91455942304835D+00 -0.31809268177770D+00 + 3 3 1 1 -0.44742908726961D+00 -0.74155664298390D-01 + 1 1 2 1 0.24497711178687D+01 0.31410139193011D-07 + 2 1 2 1 0.27966287103177D+01 -0.39545393664163D-15 + 3 1 2 1 0.10031833520034D+01 -0.15854597267057D-07 + 1 2 2 1 0.32708819812527D+00 -0.97947994054030D+00 + 2 2 2 1 0.36190854888074D+00 -0.11062993206493D+01 + 3 2 2 1 0.26394614437957D+00 -0.36881615507388D+00 + 1 3 2 1 -0.92388319093269D+00 -0.46131062505178D+00 + 2 3 2 1 -0.10381797407361D+01 -0.52636376257022D+00 + 3 3 2 1 -0.44743051282272D+00 -0.74154295705056D-01 + 1 1 3 1 0.10031815446439D+01 0.26806264345885D-07 + 2 1 3 1 0.10031833520034D+01 0.15854597275578D-07 + 3 1 3 1 0.20063647353786D+01 -0.14585114601822D-15 + 1 2 3 1 0.26394545740644D+00 -0.36881610444437D+00 + 2 2 3 1 0.26394545740643D+00 -0.36881610444437D+00 + 3 2 3 1 0.52789091481278D+00 -0.73763220888871D+00 + 1 3 3 1 -0.44742999125890D+00 -0.74154745667959D-01 + 2 3 3 1 -0.44742999125889D+00 -0.74154745667954D-01 + 3 3 3 1 -0.89485998251766D+00 -0.14830949133593D+00 + 1 1 1 2 0.23884626931075D+00 0.18691701824144D+01 + 2 1 1 2 0.32708819812527D+00 0.97947994054030D+00 + 3 1 1 2 0.26394545740644D+00 0.36881610444437D+00 + 1 2 1 2 0.28896674676439D+01 -0.65100584816231D-16 + 2 2 1 2 0.14396068783406D+01 0.48825520786367D-01 + 3 2 1 2 0.11292210246335D+01 -0.11013531497534D-06 + 1 3 1 2 0.80976147124088D-03 0.17197719708768D+00 + 2 3 1 2 0.11117142410879D+00 -0.75306871723281D-01 + 3 3 1 2 -0.14851682961035D+00 0.55916171458933D+00 + 1 1 2 2 0.42176567750473D+00 0.87161666216639D+00 + 2 1 2 2 0.36190854888074D+00 0.11062993206493D+01 + 3 1 2 2 0.26394545740643D+00 0.36881610444437D+00 + 1 2 2 2 0.14396068783406D+01 -0.48825520786368D-01 + 2 2 2 2 0.24272904267455D+01 -0.19377242895440D-15 + 3 2 2 2 0.11291917056604D+01 0.91839409346722D-07 + 1 3 2 2 0.11117142410879D+00 -0.75306871723281D-01 + 2 3 2 2 -0.21036328919236D+00 0.58614580625305D+00 + 3 3 2 2 -0.14851660865797D+00 0.55916111446218D+00 + 1 1 3 2 0.26394416861968D+00 0.36881611479721D+00 + 2 1 3 2 0.26394614437957D+00 0.36881615507388D+00 + 3 1 3 2 0.52789091481278D+00 0.73763220888871D+00 + 1 2 3 2 0.11292210246336D+01 0.11013531544823D-06 + 2 2 3 2 0.11291917056604D+01 -0.91839409342547D-07 + 3 2 3 2 0.22584125619305D+01 -0.71467061548928D-16 + 1 3 3 2 -0.14851682961035D+00 0.55916171458933D+00 + 2 3 3 2 -0.14851660865797D+00 0.55916111446218D+00 + 3 3 3 2 -0.29703378278048D+00 0.11183227482550D+01 + 1 1 1 3 -0.14905927278676D+01 0.11528130944862D+01 + 2 1 1 3 -0.92388319093269D+00 0.46131062505178D+00 + 3 1 1 3 -0.44742999125890D+00 0.74154745667959D-01 + 1 2 1 3 0.80976147124088D-03 -0.17197719708768D+00 + 2 2 1 3 0.11117142410879D+00 0.75306871723281D-01 + 3 2 1 3 -0.14851682961035D+00 -0.55916171458933D+00 + 1 3 1 3 0.28896674676439D+01 -0.65100584816231D-16 + 2 3 1 3 0.14396068783406D+01 -0.48825520786368D-01 + 3 3 1 3 0.11292210246335D+01 0.11013531544823D-06 + 1 1 2 3 -0.91455942304835D+00 0.31809268177770D+00 + 2 1 2 3 -0.10381797407361D+01 0.52636376257022D+00 + 3 1 2 3 -0.44742999125889D+00 0.74154745667954D-01 + 1 2 2 3 0.11117142410879D+00 0.75306871723281D-01 + 2 2 2 3 -0.21036328919236D+00 -0.58614580625305D+00 + 3 2 2 3 -0.14851660865797D+00 -0.55916111446218D+00 + 1 3 2 3 0.14396068783406D+01 0.48825520786367D-01 + 2 3 2 3 0.24272904267455D+01 -0.19377242895440D-15 + 3 3 2 3 0.11291917056604D+01 -0.91839409342547D-07 + 1 1 3 3 -0.44742908726961D+00 0.74155664298390D-01 + 2 1 3 3 -0.44743051282272D+00 0.74154295705056D-01 + 3 1 3 3 -0.89485998251766D+00 0.14830949133593D+00 + 1 2 3 3 -0.14851682961035D+00 -0.55916171458933D+00 + 2 2 3 3 -0.14851660865797D+00 -0.55916111446218D+00 + 3 2 3 3 -0.29703378278048D+00 -0.11183227482550D+01 + 1 3 3 3 0.11292210246336D+01 -0.11013531497534D-06 + 2 3 3 3 0.11291917056604D+01 0.91839409346722D-07 + 3 3 3 3 0.22584125619305D+01 -0.71467061548928D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 3.75000000E-01 1.25000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.43397359925980D+01 -0.54224519863200D-16 + 2 1 1 1 0.18114627579089D+01 -0.65544988912716D-07 + 3 1 1 1 0.98807911556764D+00 -0.48816438477733D-07 + 1 2 1 1 0.87471023386286D+00 -0.92454086899013D+00 + 2 2 1 1 0.59560581833980D+00 -0.15130181426937D+00 + 3 2 1 1 0.41027910088719D+00 -0.58953961744944D-01 + 1 3 1 1 -0.87471023386283D+00 -0.92454086899013D+00 + 2 3 1 1 -0.59560581833980D+00 -0.15130181426936D+00 + 3 3 1 1 -0.41027910088718D+00 -0.58953961744939D-01 + 1 1 2 1 0.18114627579089D+01 0.65544988207386D-07 + 2 1 2 1 0.23718457444593D+01 0.57526736025866D-15 + 3 1 2 1 0.98808094245442D+00 -0.20842180302442D-07 + 1 2 2 1 0.59400515800782D+00 -0.35663624300485D+00 + 2 2 2 1 0.78509067144507D+00 -0.40701431684205D+00 + 3 2 2 1 0.41028063596470D+00 -0.58952771619775D-01 + 1 3 2 1 -0.59400515800782D+00 -0.35663624300485D+00 + 2 3 2 1 -0.78509067144507D+00 -0.40701431684204D+00 + 3 3 2 1 -0.41028063596468D+00 -0.58952771619780D-01 + 1 1 3 1 0.98807911556742D+00 0.48816438820277D-07 + 2 1 3 1 0.98808094245442D+00 0.20842180841195D-07 + 3 1 3 1 0.19761599152084D+01 0.14396454989165D-15 + 1 2 3 1 0.41028026059619D+00 -0.58953059411592D-01 + 2 2 3 1 0.41028026059620D+00 -0.58953059411585D-01 + 3 2 3 1 0.82056052119231D+00 -0.11790611882318D+00 + 1 3 3 1 -0.41028026059618D+00 -0.58953059411587D-01 + 2 3 3 1 -0.41028026059618D+00 -0.58953059411590D-01 + 3 3 3 1 -0.82056052119232D+00 -0.11790611882318D+00 + 1 1 1 2 0.87471023386286D+00 0.92454086899013D+00 + 2 1 1 2 0.59400515800782D+00 0.35663624300485D+00 + 3 1 1 2 0.41028026059619D+00 0.58953059411592D-01 + 1 2 1 2 0.28508521704939D+01 -0.26570014732968D-16 + 2 2 1 2 0.13043336693197D+01 0.59675685435992D-01 + 3 2 1 2 0.11503969040159D+01 -0.41434650162431D-08 + 1 3 1 2 0.15843296961735D+00 -0.60100999439310D-01 + 2 3 1 2 0.79670700939012D-01 -0.24048719780697D+00 + 3 3 1 2 0.85152180785340D-01 0.44621007685224D+00 + 1 1 2 2 0.59560581833980D+00 0.15130181426937D+00 + 2 1 2 2 0.78509067144507D+00 0.40701431684205D+00 + 3 1 2 2 0.41028026059620D+00 0.58953059411585D-01 + 1 2 2 2 0.13043336693197D+01 -0.59675685435992D-01 + 2 2 2 2 0.23733229863738D+01 0.28188100652674D-15 + 3 2 2 2 0.11503673322733D+01 0.77011449103758D-07 + 1 3 2 2 0.79670700939012D-01 -0.24048719780697D+00 + 2 3 2 2 0.82100844110858D-01 0.34506793867210D+00 + 3 3 2 2 0.85152106202534D-01 0.44620969867645D+00 + 1 1 3 2 0.41027910088719D+00 0.58953961744944D-01 + 2 1 3 2 0.41028063596470D+00 0.58952771619775D-01 + 3 1 3 2 0.82056052119231D+00 0.11790611882318D+00 + 1 2 3 2 0.11503969040160D+01 0.41434651840896D-08 + 2 2 3 2 0.11503673322733D+01 -0.77011448839769D-07 + 3 2 3 2 0.23007640699279D+01 0.70542629446908D-16 + 1 3 3 2 0.85152180785340D-01 0.44621007685224D+00 + 2 3 3 2 0.85152106202534D-01 0.44620969867645D+00 + 3 3 3 2 0.17030392673884D+00 0.89242007351204D+00 + 1 1 1 3 -0.87471023386283D+00 0.92454086899013D+00 + 2 1 1 3 -0.59400515800782D+00 0.35663624300485D+00 + 3 1 1 3 -0.41028026059618D+00 0.58953059411587D-01 + 1 2 1 3 0.15843296961735D+00 0.60100999439310D-01 + 2 2 1 3 0.79670700939012D-01 0.24048719780697D+00 + 3 2 1 3 0.85152180785340D-01 -0.44621007685224D+00 + 1 3 1 3 0.28508521704939D+01 -0.26570014732968D-16 + 2 3 1 3 0.13043336693197D+01 -0.59675685435992D-01 + 3 3 1 3 0.11503969040159D+01 0.41434651840896D-08 + 1 1 2 3 -0.59560581833980D+00 0.15130181426936D+00 + 2 1 2 3 -0.78509067144507D+00 0.40701431684204D+00 + 3 1 2 3 -0.41028026059618D+00 0.58953059411590D-01 + 1 2 2 3 0.79670700939012D-01 0.24048719780697D+00 + 2 2 2 3 0.82100844110858D-01 -0.34506793867210D+00 + 3 2 2 3 0.85152106202534D-01 -0.44620969867645D+00 + 1 3 2 3 0.13043336693197D+01 0.59675685435992D-01 + 2 3 2 3 0.23733229863738D+01 0.28188100652674D-15 + 3 3 2 3 0.11503673322733D+01 -0.77011448839769D-07 + 1 1 3 3 -0.41027910088718D+00 0.58953961744939D-01 + 2 1 3 3 -0.41028063596468D+00 0.58952771619780D-01 + 3 1 3 3 -0.82056052119232D+00 0.11790611882318D+00 + 1 2 3 3 0.85152180785340D-01 -0.44621007685224D+00 + 2 2 3 3 0.85152106202534D-01 -0.44620969867645D+00 + 3 2 3 3 0.17030392673884D+00 -0.89242007351204D+00 + 1 3 3 3 0.11503969040160D+01 -0.41434650162431D-08 + 2 3 3 3 0.11503673322733D+01 0.77011449103758D-07 + 3 3 3 3 0.23007640699279D+01 0.70542629446908D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 1.25000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.38653981041161D+01 0.28529640511200D-16 + 2 1 1 1 0.13041168210582D+01 -0.91954973572664D-07 + 3 1 1 1 0.97807643397732D+00 -0.58241804736660D-07 + 1 2 1 1 0.64514013621419D+00 0.16577279899585D+00 + 2 2 1 1 0.32105662760287D+00 0.28552881708039D+00 + 3 2 1 1 0.29678004848216D+00 0.25862343160544D+00 + 1 3 1 1 -0.57340203543893D+00 -0.33896389482644D+00 + 2 3 1 1 -0.42892068130459D+00 -0.25121955741148D-01 + 3 3 1 1 -0.39272956706452D+00 -0.26980802540654D-01 + 1 1 2 1 0.13041168210582D+01 0.91954974189492D-07 + 2 1 2 1 0.22327078936896D+01 0.23562282766640D-15 + 3 1 2 1 0.97807829651651D+00 -0.15665004003001D-07 + 1 2 2 1 0.46633366718385D+00 0.11454385301626D+00 + 2 2 2 1 0.71084195576102D+00 0.28938126425162D+00 + 3 2 2 1 0.29678038512273D+00 0.25862522274836D+00 + 1 3 2 1 -0.41074243357232D+00 -0.24875296315025D+00 + 2 3 2 1 -0.70726462157116D+00 -0.29801771296988D+00 + 3 3 2 1 -0.39273107163469D+00 -0.26979774052204D-01 + 1 1 3 1 0.97807643397709D+00 0.58241804945498D-07 + 2 1 3 1 0.97807829651651D+00 0.15665003742498D-07 + 3 1 3 1 0.19561546075656D+01 -0.33755757859590D-16 + 1 2 3 1 0.29678047643674D+00 0.25862486124184D+00 + 2 2 3 1 0.29678047643671D+00 0.25862486124184D+00 + 3 2 3 1 0.59356095287343D+00 0.51724972248364D+00 + 1 3 3 1 -0.39273088057970D+00 -0.26980094244649D-01 + 2 3 3 1 -0.39273088057970D+00 -0.26980094244651D-01 + 3 3 3 1 -0.78546176115934D+00 -0.53960188489292D-01 + 1 1 1 2 0.64514013621419D+00 -0.16577279899585D+00 + 2 1 1 2 0.46633366718385D+00 -0.11454385301626D+00 + 3 1 1 2 0.29678047643674D+00 -0.25862486124184D+00 + 1 2 1 2 0.27912770191463D+01 0.13979523850488D-16 + 2 2 1 2 0.12082149526115D+01 0.63169407183848D-01 + 3 2 1 2 0.11695959442578D+01 0.60061705584356D-07 + 1 3 1 2 0.11358589421042D+00 -0.28809356615738D+00 + 2 3 1 2 -0.93036149213295D-01 -0.42871937208230D+00 + 3 3 1 2 0.17161251812594D+00 0.20363496970111D+00 + 1 1 2 2 0.32105662760287D+00 -0.28552881708039D+00 + 2 1 2 2 0.71084195576102D+00 -0.28938126425162D+00 + 3 1 2 2 0.29678047643671D+00 -0.25862486124184D+00 + 1 2 2 2 0.12082149526115D+01 -0.63169407183848D-01 + 2 2 2 2 0.23683451337940D+01 0.11545518555654D-15 + 3 2 2 2 0.11695661739392D+01 0.26395837210714D-07 + 1 3 2 2 -0.93036149213295D-01 -0.42871937208230D+00 + 2 3 2 2 0.89544517310526D-01 -0.88209605197566D-01 + 3 3 2 2 0.17161236129506D+00 0.20363490674392D+00 + 1 1 3 2 0.29678004848216D+00 -0.25862343160544D+00 + 2 1 3 2 0.29678038512273D+00 -0.25862522274836D+00 + 3 1 3 2 0.59356095287343D+00 -0.51724972248364D+00 + 1 2 3 2 0.11695959442579D+01 -0.60061705482026D-07 + 2 2 3 2 0.11695661739392D+01 -0.26395837338360D-07 + 3 2 3 2 0.23391620030147D+01 -0.16540321351199D-16 + 1 3 3 2 0.17161251812594D+00 0.20363496970111D+00 + 2 3 3 2 0.17161236129506D+00 0.20363490674392D+00 + 3 3 3 2 0.34322477609302D+00 0.40727073202255D+00 + 1 1 1 3 -0.57340203543893D+00 0.33896389482644D+00 + 2 1 1 3 -0.41074243357232D+00 0.24875296315025D+00 + 3 1 1 3 -0.39273088057970D+00 0.26980094244649D-01 + 1 2 1 3 0.11358589421042D+00 0.28809356615738D+00 + 2 2 1 3 -0.93036149213295D-01 0.42871937208230D+00 + 3 2 1 3 0.17161251812594D+00 -0.20363496970111D+00 + 1 3 1 3 0.27912770191463D+01 0.13979523850488D-16 + 2 3 1 3 0.12082149526115D+01 -0.63169407183848D-01 + 3 3 1 3 0.11695959442578D+01 -0.60061705482026D-07 + 1 1 2 3 -0.42892068130459D+00 0.25121955741148D-01 + 2 1 2 3 -0.70726462157116D+00 0.29801771296988D+00 + 3 1 2 3 -0.39273088057970D+00 0.26980094244651D-01 + 1 2 2 3 -0.93036149213295D-01 0.42871937208230D+00 + 2 2 2 3 0.89544517310526D-01 0.88209605197566D-01 + 3 2 2 3 0.17161236129506D+00 -0.20363490674392D+00 + 1 3 2 3 0.12082149526115D+01 0.63169407183848D-01 + 2 3 2 3 0.23683451337940D+01 0.11545518555654D-15 + 3 3 2 3 0.11695661739393D+01 -0.26395837338360D-07 + 1 1 3 3 -0.39272956706452D+00 0.26980802540654D-01 + 2 1 3 3 -0.39273107163469D+00 0.26979774052204D-01 + 3 1 3 3 -0.78546176115934D+00 0.53960188489292D-01 + 1 2 3 3 0.17161251812594D+00 -0.20363496970111D+00 + 2 2 3 3 0.17161236129506D+00 -0.20363490674392D+00 + 3 2 3 3 0.34322477609302D+00 -0.40727073202255D+00 + 1 3 3 3 0.11695959442579D+01 0.60061705584356D-07 + 2 3 3 3 0.11695661739393D+01 0.26395837210714D-07 + 3 3 3 3 0.23391620030147D+01 -0.16540321351199D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 1.25000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.35882126605811D+01 -0.27405355281335D-15 + 2 1 1 1 0.85073694758148D+00 -0.92712871478929D-07 + 3 1 1 1 0.97906293306664D+00 -0.50395676080966D-07 + 1 2 1 1 -0.22747339364870D+00 0.70658791967616D+00 + 2 2 1 1 -0.38443652156043D-01 0.32183327903425D+00 + 3 2 1 1 -0.32367653435774D-02 0.40454697113050D+00 + 1 3 1 1 -0.70658791967614D+00 0.22747339364871D+00 + 2 3 1 1 -0.32183327903421D+00 0.38443652156038D-01 + 3 3 1 1 -0.40454697113055D+00 0.32367653435763D-02 + 1 1 2 1 0.85073694758148D+00 0.92712871254377D-07 + 2 1 2 1 0.22401382894104D+01 -0.43685503885521D-15 + 3 1 2 1 0.97906483122938D+00 -0.41794229562397D-08 + 1 2 2 1 0.17753935366923D+00 0.29638680085249D+00 + 2 2 2 1 0.21204298347681D+00 0.75380903354569D+00 + 3 2 2 1 -0.32377481763753D-02 0.40454834690250D+00 + 1 3 2 1 -0.29638680085246D+00 -0.17753935366923D+00 + 2 3 2 1 -0.75380903354568D+00 -0.21204298347680D+00 + 3 3 2 1 -0.40454834690252D+00 0.32377481763739D-02 + 1 1 3 1 0.97906293306642D+00 0.50395675912732D-07 + 2 1 3 1 0.97906483122938D+00 0.41794234195641D-08 + 3 1 3 1 0.19581276487406D+01 0.16411715662972D-16 + 1 2 3 1 -0.32372114303646D-02 0.40454827384262D+00 + 2 2 3 1 -0.32372114303649D-02 0.40454827384261D+00 + 3 2 3 1 -0.64744228607256D-02 0.80909654768522D+00 + 1 3 3 1 -0.40454827384267D+00 0.32372114303635D-02 + 2 3 3 1 -0.40454827384264D+00 0.32372114303635D-02 + 3 3 3 1 -0.80909654768522D+00 0.64744228607239D-02 + 1 1 1 2 -0.22747339364870D+00 -0.70658791967616D+00 + 2 1 1 2 0.17753935366923D+00 -0.29638680085249D+00 + 3 1 1 2 -0.32372114303646D-02 -0.40454827384262D+00 + 1 2 1 2 0.27323703133752D+01 -0.13428624087854D-15 + 2 2 1 2 0.11144759637174D+01 0.70402673537681D-01 + 3 2 1 2 0.11759957707741D+01 0.56580852262980D-07 + 1 3 1 2 -0.12580348381670D+00 -0.39090017891022D+00 + 2 3 1 2 -0.39464799824806D+00 -0.48651485943367D+00 + 3 3 1 2 0.61632135331088D-01 -0.26589297224575D-01 + 1 1 2 2 -0.38443652156043D-01 -0.32183327903425D+00 + 2 1 2 2 0.21204298347681D+00 -0.75380903354569D+00 + 3 1 2 2 -0.32372114303649D-02 -0.40454827384261D+00 + 1 2 2 2 0.11144759637174D+01 -0.70402673537681D-01 + 2 2 2 2 0.23653015672871D+01 -0.21405896903905D-15 + 3 2 2 2 0.11759659948401D+01 -0.13184021587807D-07 + 1 3 2 2 -0.39464799824806D+00 -0.48651485943367D+00 + 2 3 2 2 -0.22594601508832D+00 -0.39757831240080D+00 + 3 3 2 2 0.61632141086632D-01 -0.26589155228272D-01 + 1 1 3 2 -0.32367653435774D-02 -0.40454697113050D+00 + 2 1 3 2 -0.32377481763753D-02 -0.40454834690250D+00 + 3 1 3 2 -0.64744228607256D-02 -0.80909654768522D+00 + 1 2 3 2 0.11759957707742D+01 -0.56580852345415D-07 + 2 2 3 2 0.11759659948401D+01 0.13184021814836D-07 + 3 2 3 2 0.23519616817375D+01 0.80417406748564D-17 + 1 3 3 2 0.61632135331088D-01 -0.26589297224575D-01 + 2 3 3 2 0.61632141086632D-01 -0.26589155228272D-01 + 3 3 3 2 0.12326459223124D+00 -0.53177158030099D-01 + 1 1 1 3 -0.70658791967614D+00 -0.22747339364871D+00 + 2 1 1 3 -0.29638680085246D+00 0.17753935366923D+00 + 3 1 1 3 -0.40454827384267D+00 -0.32372114303635D-02 + 1 2 1 3 -0.12580348381670D+00 0.39090017891022D+00 + 2 2 1 3 -0.39464799824806D+00 0.48651485943367D+00 + 3 2 1 3 0.61632135331088D-01 0.26589297224575D-01 + 1 3 1 3 0.27323703133752D+01 -0.13428624087854D-15 + 2 3 1 3 0.11144759637173D+01 -0.70402673537681D-01 + 3 3 1 3 0.11759957707741D+01 -0.56580852345415D-07 + 1 1 2 3 -0.32183327903421D+00 -0.38443652156038D-01 + 2 1 2 3 -0.75380903354568D+00 0.21204298347680D+00 + 3 1 2 3 -0.40454827384264D+00 -0.32372114303635D-02 + 1 2 2 3 -0.39464799824806D+00 0.48651485943367D+00 + 2 2 2 3 -0.22594601508832D+00 0.39757831240080D+00 + 3 2 2 3 0.61632141086632D-01 0.26589155228272D-01 + 1 3 2 3 0.11144759637173D+01 0.70402673537681D-01 + 2 3 2 3 0.23653015672871D+01 -0.21405896903905D-15 + 3 3 2 3 0.11759659948401D+01 0.13184021814836D-07 + 1 1 3 3 -0.40454697113055D+00 -0.32367653435763D-02 + 2 1 3 3 -0.40454834690252D+00 -0.32377481763739D-02 + 3 1 3 3 -0.80909654768522D+00 -0.64744228607239D-02 + 1 2 3 3 0.61632135331088D-01 0.26589297224575D-01 + 2 2 3 3 0.61632141086632D-01 0.26589155228272D-01 + 3 2 3 3 0.12326459223124D+00 0.53177158030099D-01 + 1 3 3 3 0.11759957707742D+01 0.56580852262980D-07 + 2 3 3 3 0.11759659948401D+01 -0.13184021587807D-07 + 3 3 3 3 0.23519616817377D+01 0.80417406748564D-17 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -2.50000000E-01 1.25000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.34321312502216D+01 -0.19154062080845D-15 + 2 1 1 1 0.42857829500440D+00 -0.62506611584357D-07 + 3 1 1 1 0.99050805228239D+00 -0.40441382058201D-07 + 1 2 1 1 -0.11008639894951D+01 0.43992882110985D+00 + 2 2 1 1 -0.18084304886976D+00 0.99023726324157D-01 + 3 2 1 1 -0.32065930141785D+00 0.30016014972247D+00 + 1 3 1 1 -0.10895050447821D+01 0.46735173948988D+00 + 2 3 1 1 -0.19789569456841D+00 0.57854997804074D-01 + 3 3 1 1 -0.43898564379382D+00 0.14495089172368D-01 + 1 1 2 1 0.42857829500463D+00 0.62506611487171D-07 + 2 1 2 1 0.24088330775307D+01 -0.36208545880915D-17 + 3 1 2 1 0.99050991421541D+00 0.89322238421214D-08 + 1 2 2 1 -0.30768750808803D-01 0.22523307402447D+00 + 2 2 2 1 -0.51817406908214D+00 0.78270032476963D+00 + 3 2 2 1 -0.32066095407416D+00 0.30016025412977D+00 + 1 3 2 1 -0.18102062633572D+00 -0.13750704164466D+00 + 2 3 2 1 -0.91985710536456D+00 -0.18704830919852D+00 + 3 3 2 1 -0.43898688622543D+00 0.14496183949731D-01 + 1 1 3 1 0.99050805228217D+00 0.40441382262548D-07 + 2 1 3 1 0.99050991421541D+00 -0.89322241089564D-08 + 3 1 3 1 0.19810178127591D+01 -0.24976621744037D-15 + 1 2 3 1 -0.32066030758427D+00 0.30016074986476D+00 + 2 2 3 1 -0.32066030758426D+00 0.30016074986474D+00 + 3 2 3 1 -0.64132061516849D+00 0.60032149972944D+00 + 1 3 3 1 -0.43898677962560D+00 0.14495376274778D-01 + 2 3 3 1 -0.43898677962559D+00 0.14495376274777D-01 + 3 3 3 1 -0.87797355925111D+00 0.28990752549554D-01 + 1 1 1 2 -0.11008639894951D+01 -0.43992882110985D+00 + 2 1 1 2 -0.30768750808803D-01 -0.22523307402447D+00 + 3 1 1 2 -0.32066030758427D+00 -0.30016074986476D+00 + 1 2 1 2 0.26543145279281D+01 -0.93854904196142D-16 + 2 2 1 2 0.10077380816340D+01 0.78880727416874D-01 + 3 2 1 2 0.11659546216723D+01 0.38671961154601D-07 + 1 3 1 2 -0.47475943679818D+00 -0.28920616195162D+00 + 2 3 1 2 -0.70542595367547D+00 -0.33202586673937D+00 + 3 3 1 2 -0.18040461881079D+00 -0.11096402317866D+00 + 1 1 2 2 -0.18084304886976D+00 -0.99023726324157D-01 + 2 1 2 2 -0.51817406908214D+00 -0.78270032476963D+00 + 3 1 2 2 -0.32066030758426D+00 -0.30016074986474D+00 + 1 2 2 2 0.10077380816340D+01 -0.78880727416874D-01 + 2 2 2 2 0.23780110935888D+01 -0.17742187481648D-17 + 3 2 2 2 0.11659250855182D+01 -0.39774319500040D-07 + 1 3 2 2 -0.70542595367547D+00 -0.33202586673937D+00 + 2 3 2 2 -0.65133323412029D+00 -0.36985914436276D+00 + 3 3 2 2 -0.18040431257546D+00 -0.11096386891743D+00 + 1 1 3 2 -0.32065930141785D+00 -0.30016014972247D+00 + 2 1 3 2 -0.32066095407416D+00 -0.30016025412977D+00 + 3 1 3 2 -0.64132061516849D+00 -0.60032149972944D+00 + 1 2 3 2 0.11659546216724D+01 -0.38671961054471D-07 + 2 2 3 2 0.11659250855182D+01 0.39774319369290D-07 + 3 2 3 2 0.23318797208424D+01 -0.12238544654578D-15 + 1 3 3 2 -0.18040461881079D+00 -0.11096402317866D+00 + 2 3 3 2 -0.18040431257546D+00 -0.11096386891743D+00 + 3 3 3 2 -0.36080834777055D+00 -0.22192656152022D+00 + 1 1 1 3 -0.10895050447821D+01 -0.46735173948988D+00 + 2 1 1 3 -0.18102062633572D+00 0.13750704164466D+00 + 3 1 1 3 -0.43898677962560D+00 -0.14495376274778D-01 + 1 2 1 3 -0.47475943679818D+00 0.28920616195162D+00 + 2 2 1 3 -0.70542595367547D+00 0.33202586673937D+00 + 3 2 1 3 -0.18040461881079D+00 0.11096402317866D+00 + 1 3 1 3 0.26543145279281D+01 -0.93854904196142D-16 + 2 3 1 3 0.10077380816340D+01 -0.78880727416874D-01 + 3 3 1 3 0.11659546216723D+01 -0.38671961054471D-07 + 1 1 2 3 -0.19789569456841D+00 -0.57854997804074D-01 + 2 1 2 3 -0.91985710536456D+00 0.18704830919852D+00 + 3 1 2 3 -0.43898677962559D+00 -0.14495376274777D-01 + 1 2 2 3 -0.70542595367547D+00 0.33202586673937D+00 + 2 2 2 3 -0.65133323412029D+00 0.36985914436276D+00 + 3 2 2 3 -0.18040431257546D+00 0.11096386891743D+00 + 1 3 2 3 0.10077380816340D+01 0.78880727416874D-01 + 2 3 2 3 0.23780110935888D+01 -0.17742187481648D-17 + 3 3 2 3 0.11659250855182D+01 0.39774319369290D-07 + 1 1 3 3 -0.43898564379382D+00 -0.14495089172368D-01 + 2 1 3 3 -0.43898688622543D+00 -0.14496183949731D-01 + 3 1 3 3 -0.87797355925111D+00 -0.28990752549554D-01 + 1 2 3 3 -0.18040461881079D+00 0.11096402317866D+00 + 2 2 3 3 -0.18040431257546D+00 0.11096386891743D+00 + 3 2 3 3 -0.36080834777055D+00 0.22192656152022D+00 + 1 3 3 3 0.11659546216724D+01 0.38671961154601D-07 + 2 3 3 3 0.11659250855182D+01 -0.39774319500040D-07 + 3 3 3 3 0.23318797208424D+01 -0.12238544654578D-15 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -1.25000000E-01 1.25000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.29705919425428D+01 -0.26358092718713D-15 + 2 1 1 1 0.10230077800952D+00 -0.16033406873150D-07 + 3 1 1 1 0.10056782840472D+01 0.16111589361546D-07 + 1 2 1 1 -0.12839521464721D+01 -0.27610700757444D+00 + 2 2 1 1 -0.60552156035519D-01 -0.76650686000416D-01 + 3 2 1 1 -0.47638571413714D+00 -0.59907714729911D-06 + 1 3 1 1 -0.12839521464722D+01 0.27610700757440D+00 + 2 3 1 1 -0.60552156035455D-01 0.76650686000416D-01 + 3 3 1 1 -0.47638571413712D+00 0.59907714845097D-06 + 1 1 2 1 0.10230077800952D+00 0.16033406692123D-07 + 2 1 2 1 0.29705919434409D+01 -0.35256574769935D-15 + 3 1 2 1 0.10056803306049D+01 -0.13932136581644D-07 + 1 2 2 1 -0.60552156035519D-01 0.76650685310411D-01 + 2 2 2 1 -0.12839521467885D+01 0.27610700700399D+00 + 3 2 2 1 -0.47638693640820D+00 -0.19106745672199D-05 + 1 3 2 1 -0.60552156035455D-01 -0.76650685310411D-01 + 2 3 2 1 -0.12839521467885D+01 -0.27610700700397D+00 + 3 3 2 1 -0.47638693640819D+00 0.19106745661078D-05 + 1 1 3 1 0.10056782840475D+01 -0.16111589721010D-07 + 2 1 3 1 0.10056803306049D+01 0.13932135830323D-07 + 3 1 3 1 0.20113585457279D+01 -0.78048815589222D-16 + 1 2 3 1 -0.47638661135720D+00 -0.91676977207926D-06 + 2 2 3 1 -0.47638661135717D+00 0.91645394406157D-06 + 3 2 3 1 -0.95277322271434D+00 -0.18335395416468D-05 + 1 3 3 1 -0.47638661135718D+00 0.91676977323112D-06 + 2 3 3 1 -0.47638661135716D+00 -0.91645394517362D-06 + 3 3 3 1 -0.95277322271438D+00 0.18335395418851D-05 + 1 1 1 2 -0.12839521464721D+01 0.27610700757444D+00 + 2 1 1 2 -0.60552156035519D-01 -0.76650685310411D-01 + 3 1 1 2 -0.47638661135720D+00 0.91676977207926D-06 + 1 2 1 2 0.24929212104487D+01 -0.12915465432169D-15 + 2 2 1 2 0.91089193612459D+00 0.71278149452185D-01 + 3 2 1 2 0.11449385339143D+01 0.28309293429470D-07 + 1 3 1 2 -0.82431662835449D+00 0.27958864982931D-01 + 2 3 1 2 -0.85825738000896D+00 -0.49228911956801D-06 + 3 3 1 2 -0.41416401772420D+00 -0.49452402404574D-06 + 1 1 2 2 -0.60552156035519D-01 0.76650686000416D-01 + 2 1 2 2 -0.12839521467885D+01 -0.27610700700399D+00 + 3 1 2 2 -0.47638661135717D+00 -0.91645394406157D-06 + 1 2 2 2 0.91089193612459D+00 -0.71278149452185D-01 + 2 2 2 2 0.24929212101165D+01 -0.17275721637268D-15 + 3 2 2 2 0.11449093199614D+01 -0.19507514209472D-07 + 1 3 2 2 -0.85825738000896D+00 -0.49228911956801D-06 + 2 3 2 2 -0.82431662756018D+00 -0.27958864982932D-01 + 3 3 2 2 -0.41416341223217D+00 -0.51480568946203D-06 + 1 1 3 2 -0.47638571413714D+00 0.59907714729911D-06 + 2 1 3 2 -0.47638693640820D+00 0.19106745672199D-05 + 3 1 3 2 -0.95277322271434D+00 0.18335395416468D-05 + 1 2 3 2 0.11449385339145D+01 -0.28309293605608D-07 + 2 2 3 2 0.11449093199614D+01 0.19507513841325D-07 + 3 2 3 2 0.22898480561828D+01 -0.38243919638719D-16 + 1 3 3 2 -0.41416401772420D+00 -0.49452402404574D-06 + 2 3 3 2 -0.41416341223217D+00 -0.51480568946203D-06 + 3 3 3 2 -0.82832685620481D+00 0.18994805128763D-09 + 1 1 1 3 -0.12839521464722D+01 -0.27610700757440D+00 + 2 1 1 3 -0.60552156035455D-01 0.76650685310411D-01 + 3 1 1 3 -0.47638661135718D+00 -0.91676977323112D-06 + 1 2 1 3 -0.82431662835449D+00 -0.27958864982931D-01 + 2 2 1 3 -0.85825738000896D+00 0.49228911956801D-06 + 3 2 1 3 -0.41416401772420D+00 0.49452402404574D-06 + 1 3 1 3 0.24929212104489D+01 -0.12915465432169D-15 + 2 3 1 3 0.91089193612459D+00 -0.71278149452185D-01 + 3 3 1 3 0.11449385339143D+01 -0.28309293605608D-07 + 1 1 2 3 -0.60552156035455D-01 -0.76650686000416D-01 + 2 1 2 3 -0.12839521467885D+01 0.27610700700397D+00 + 3 1 2 3 -0.47638661135716D+00 0.91645394517362D-06 + 1 2 2 3 -0.85825738000896D+00 0.49228911956801D-06 + 2 2 2 3 -0.82431662756018D+00 0.27958864982932D-01 + 3 2 2 3 -0.41416341223217D+00 0.51480568946203D-06 + 1 3 2 3 0.91089193612459D+00 0.71278149452185D-01 + 2 3 2 3 0.24929212101165D+01 -0.17275721637268D-15 + 3 3 2 3 0.11449093199614D+01 0.19507513841325D-07 + 1 1 3 3 -0.47638571413712D+00 -0.59907714845097D-06 + 2 1 3 3 -0.47638693640819D+00 -0.19106745661078D-05 + 3 1 3 3 -0.95277322271438D+00 -0.18335395418851D-05 + 1 2 3 3 -0.41416401772420D+00 0.49452402404574D-06 + 2 2 3 3 -0.41416341223217D+00 0.51480568946203D-06 + 3 2 3 3 -0.82832685620481D+00 -0.18994805128763D-09 + 1 3 3 3 0.11449385339145D+01 0.28309293429470D-07 + 2 3 3 3 0.11449093199614D+01 -0.19507514209472D-07 + 3 3 3 3 0.22898480561828D+01 -0.38243919638719D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.40843596068912D+01 0.57581323007347D-15 + 2 1 1 1 0.30865919616076D+01 0.29514393837830D-16 + 3 1 1 1 0.99776764637386D+00 0.40901786635446D-15 + 1 2 1 1 0.99530723033980D+00 -0.99530723013550D+00 + 2 2 1 1 0.91128120739016D+00 -0.57600802760949D+00 + 3 2 1 1 0.41929920260837D+00 -0.84026023444624D-01 + 1 3 1 1 -0.99530723033979D+00 -0.99530723013551D+00 + 2 3 1 1 -0.91128120739014D+00 -0.57600802760948D+00 + 3 3 1 1 -0.41929920260840D+00 -0.84026023444628D-01 + 1 1 2 1 0.30865919616076D+01 0.29514393837830D-16 + 2 1 2 1 0.40843596083078D+01 -0.59201860873625D-16 + 3 1 2 1 0.99776764637363D+00 -0.79305095076858D-15 + 1 2 2 1 0.91128120739016D+00 -0.57600802760948D+00 + 2 2 2 1 0.99530723022381D+00 -0.99530723076706D+00 + 3 2 2 1 0.41929920260834D+00 -0.84026023444621D-01 + 1 3 2 1 -0.91128120739014D+00 -0.57600802760947D+00 + 2 3 2 1 -0.99530723022379D+00 -0.99530723076706D+00 + 3 3 2 1 -0.41929920260839D+00 -0.84026023444624D-01 + 1 1 3 1 0.99776764637340D+00 0.40901786635446D-15 + 2 1 3 1 0.99776764637363D+00 -0.79305095076858D-15 + 3 1 3 1 0.19955352927491D+01 0.10489333599742D-15 + 1 2 3 1 0.41929920260837D+00 -0.84026023444624D-01 + 2 2 3 1 0.41929920260834D+00 -0.84026023444624D-01 + 3 2 3 1 0.83859840521666D+00 -0.16805204688927D+00 + 1 3 3 1 -0.41929920260840D+00 -0.84026023444628D-01 + 2 3 3 1 -0.41929920260839D+00 -0.84026023444624D-01 + 3 3 3 1 -0.83859840521668D+00 -0.16805204688926D+00 + 1 1 1 2 0.99530724457233D+00 0.99530724436803D+00 + 2 1 1 2 0.91128122162269D+00 0.57600804184201D+00 + 3 1 1 2 0.41929920260835D+00 0.84026023444628D-01 + 1 2 1 2 0.26363448084014D+01 0.28214848273600D-15 + 2 2 1 2 0.15118945752477D+01 0.14462052980401D-16 + 3 2 1 2 0.11244502328385D+01 0.20041875451355D-15 + 1 3 1 2 0.18215082611399D-14 0.17859348639538D+00 + 2 3 1 2 0.82030886029916D-01 -0.45506475251408D+00 + 3 3 1 2 0.82030886029918D-01 0.63365823811284D+00 + 1 1 2 2 0.91128122162269D+00 0.57600804184201D+00 + 2 1 2 2 0.99530724445633D+00 0.99530724499958D+00 + 3 1 2 2 0.41929920260832D+00 0.84026023444624D-01 + 1 2 2 2 0.15118945752477D+01 0.14462052980671D-16 + 2 2 2 2 0.26363448083225D+01 -0.29008911828076D-16 + 3 2 2 2 0.11244502328386D+01 -0.38859496587660D-15 + 1 3 2 2 0.82030886029916D-01 -0.45506475251406D+00 + 2 3 2 2 0.30508451223856D-14 0.17859348601616D+00 + 3 3 2 2 0.82030886029918D-01 0.63365823811285D+00 + 1 1 3 2 0.41929920260837D+00 0.84026023444628D-01 + 2 1 3 2 0.41929920260833D+00 0.84026023444628D-01 + 3 1 3 2 0.83859840521666D+00 0.16805204688928D+00 + 1 2 3 2 0.11244502328386D+01 0.20041875451382D-15 + 2 2 3 2 0.11244502328384D+01 -0.38859496587660D-15 + 3 2 3 2 0.22489004656766D+01 0.51397734638735D-16 + 1 3 3 2 0.82030886029918D-01 0.63365823811284D+00 + 2 3 3 2 0.82030886029918D-01 0.63365823811285D+00 + 3 3 3 2 0.16406177205983D+00 0.12673164762257D+01 + 1 1 1 3 -0.99530724457232D+00 0.99530724436804D+00 + 2 1 1 3 -0.91128122162266D+00 0.57600804184199D+00 + 3 1 1 3 -0.41929920260839D+00 0.84026023444628D-01 + 1 2 1 3 0.18215082611399D-14 -0.17859348639538D+00 + 2 2 1 3 0.82030886029916D-01 0.45506475251408D+00 + 3 2 1 3 0.82030886029918D-01 -0.63365823811284D+00 + 1 3 1 3 0.26363448084014D+01 0.28214848273600D-15 + 2 3 1 3 0.15118945752475D+01 0.14462052980671D-16 + 3 3 1 3 0.11244502328385D+01 0.20041875451382D-15 + 1 1 2 3 -0.91128122162266D+00 0.57600804184199D+00 + 2 1 2 3 -0.99530724445632D+00 0.99530724499959D+00 + 3 1 2 3 -0.41929920260837D+00 0.84026023444621D-01 + 1 2 2 3 0.82030886029916D-01 0.45506475251406D+00 + 2 2 2 3 0.30508451223856D-14 -0.17859348601616D+00 + 3 2 2 3 0.82030886029918D-01 -0.63365823811285D+00 + 1 3 2 3 0.15118945752477D+01 0.14462052980401D-16 + 2 3 2 3 0.26363448083225D+01 -0.29008911828076D-16 + 3 3 2 3 0.11244502328386D+01 -0.38859496587660D-15 + 1 1 3 3 -0.41929920260840D+00 0.84026023444624D-01 + 2 1 3 3 -0.41929920260838D+00 0.84026023444628D-01 + 3 1 3 3 -0.83859840521666D+00 0.16805204688927D+00 + 1 2 3 3 0.82030886029918D-01 -0.63365823811284D+00 + 2 2 3 3 0.82030886029918D-01 -0.63365823811285D+00 + 3 2 3 3 0.16406177205983D+00 -0.12673164762257D+01 + 1 3 3 3 0.11244502328386D+01 0.20041875451355D-15 + 2 3 3 3 0.11244502328384D+01 -0.38859496587660D-15 + 3 3 3 3 0.22489004656768D+01 0.51397734638735D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 3.75000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.43680377575802D+01 -0.41874285988977D-15 + 2 1 1 1 0.27331208580222D+01 -0.25408496972631D-07 + 3 1 1 1 0.98714791490352D+00 -0.28196737721199D-07 + 1 2 1 1 0.10933869380721D+01 -0.25066807945053D+00 + 2 2 1 1 0.69889020563461D+00 0.20947613687131D+00 + 3 2 1 1 0.32314301465140D+00 0.22558503165047D+00 + 1 3 1 1 -0.59589221956515D+00 -0.95039041717812D+00 + 2 3 1 1 -0.64231200058757D+00 -0.34606800683066D+00 + 3 3 1 1 -0.38800932256729D+00 -0.68983911338875D-01 + 1 1 2 1 0.27331208580222D+01 0.25408497465558D-07 + 2 1 2 1 0.33511581812832D+01 -0.18861746204725D-15 + 3 1 2 1 0.98714974258746D+00 -0.14249140506145D-07 + 1 2 2 1 0.82254384315898D+00 0.62235473542830D-01 + 2 2 2 1 0.92253823689466D+00 -0.72431565381284D-01 + 3 2 2 1 0.32314342550067D+00 0.22558696471622D+00 + 1 3 2 1 -0.62563345469347D+00 -0.53761920394850D+00 + 2 3 2 1 -0.60111619215903D+00 -0.70354989426518D+00 + 3 3 2 1 -0.38801097996549D+00 -0.68982834969261D-01 + 1 1 3 1 0.98714791490329D+00 0.28196738700294D-07 + 2 1 3 1 0.98714974258746D+00 0.14249138849715D-07 + 3 1 3 1 0.19742974962996D+01 0.23675624542368D-15 + 1 2 3 1 0.32314334878102D+00 0.22558623356781D+00 + 2 2 3 1 0.32314334878101D+00 0.22558623356779D+00 + 3 2 3 1 0.64628669756201D+00 0.45117246713554D+00 + 1 3 3 1 -0.38801040871653D+00 -0.68983297720292D-01 + 2 3 3 1 -0.38801040871650D+00 -0.68983297720285D-01 + 3 3 3 1 -0.77602081743297D+00 -0.13796659544057D+00 + 1 1 1 2 0.10933869380721D+01 0.25066807945053D+00 + 2 1 1 2 0.82254384315898D+00 -0.62235473542830D-01 + 3 1 1 2 0.32314334878102D+00 -0.22558623356781D+00 + 1 2 1 2 0.26875917363545D+01 -0.20518400134599D-15 + 2 2 1 2 0.13989636617076D+01 0.48738147313760D-01 + 3 2 1 2 0.11349197841104D+01 -0.19614178773625D-06 + 1 3 1 2 0.18508470564256D-02 -0.17390848320504D+00 + 2 3 1 2 -0.17629001439786D+00 -0.61809518653815D+00 + 3 3 1 2 0.29873073888394D+00 0.52126518945605D+00 + 1 1 2 2 0.69889020563461D+00 -0.20947613687131D+00 + 2 1 2 2 0.92253823689466D+00 0.72431565381284D-01 + 3 1 2 2 0.32314334878101D+00 -0.22558623356779D+00 + 1 2 2 2 0.13989636617076D+01 -0.48738147313759D-01 + 2 2 2 2 0.24594832437422D+01 -0.92422556403152D-16 + 3 2 2 2 0.11348902807661D+01 0.87847989306148D-07 + 1 3 2 2 -0.17629001439786D+00 -0.61809518653815D+00 + 2 3 2 2 0.19187038575761D-01 0.64019211969672D-01 + 3 3 2 2 0.29873045663669D+00 0.52126459411431D+00 + 1 1 3 2 0.32314301465140D+00 -0.22558503165047D+00 + 2 1 3 2 0.32314342550067D+00 -0.22558696471622D+00 + 3 1 3 2 0.64628669756201D+00 -0.45117246713554D+00 + 1 2 3 2 0.11349197841105D+01 0.19614178821601D-06 + 2 2 3 2 0.11348902807661D+01 -0.87847990117799D-07 + 3 2 3 2 0.22698099817876D+01 0.11601056025760D-15 + 1 3 3 2 0.29873073888394D+00 0.52126518945605D+00 + 2 3 3 2 0.29873045663669D+00 0.52126459411431D+00 + 3 3 3 2 0.59746111888238D+00 0.10425300662502D+01 + 1 1 1 3 -0.59589221956515D+00 0.95039041717812D+00 + 2 1 1 3 -0.62563345469347D+00 0.53761920394850D+00 + 3 1 1 3 -0.38801040871653D+00 0.68983297720292D-01 + 1 2 1 3 0.18508470564256D-02 0.17390848320504D+00 + 2 2 1 3 -0.17629001439786D+00 0.61809518653815D+00 + 3 2 1 3 0.29873073888394D+00 -0.52126518945605D+00 + 1 3 1 3 0.26875917363545D+01 -0.20518400134599D-15 + 2 3 1 3 0.13989636617076D+01 -0.48738147313759D-01 + 3 3 1 3 0.11349197841104D+01 0.19614178821601D-06 + 1 1 2 3 -0.64231200058757D+00 0.34606800683066D+00 + 2 1 2 3 -0.60111619215903D+00 0.70354989426518D+00 + 3 1 2 3 -0.38801040871650D+00 0.68983297720285D-01 + 1 2 2 3 -0.17629001439786D+00 0.61809518653815D+00 + 2 2 2 3 0.19187038575761D-01 -0.64019211969672D-01 + 3 2 2 3 0.29873045663669D+00 -0.52126459411431D+00 + 1 3 2 3 0.13989636617076D+01 0.48738147313760D-01 + 2 3 2 3 0.24594832437422D+01 -0.92422556403152D-16 + 3 3 2 3 0.11348902807662D+01 -0.87847990117799D-07 + 1 1 3 3 -0.38800932256729D+00 0.68983911338875D-01 + 2 1 3 3 -0.38801097996549D+00 0.68982834969261D-01 + 3 1 3 3 -0.77602081743297D+00 0.13796659544057D+00 + 1 2 3 3 0.29873073888394D+00 -0.52126518945605D+00 + 2 2 3 3 0.29873045663669D+00 -0.52126459411431D+00 + 3 2 3 3 0.59746111888238D+00 -0.10425300662502D+01 + 1 3 3 3 0.11349197841105D+01 -0.19614178773625D-06 + 2 3 3 3 0.11348902807662D+01 0.87847989306148D-07 + 3 3 3 3 0.22698099817876D+01 0.11601056025760D-15 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.39780898500212D+01 -0.18306376273552D-16 + 2 1 1 1 0.20643272790542D+01 -0.52656025150582D-07 + 3 1 1 1 0.97745492680497D+00 -0.40528245497612D-07 + 1 2 1 1 0.47033685869530D+00 0.34008325557088D+00 + 2 2 1 1 0.85013956782407D-01 0.44284582757034D+00 + 3 2 1 1 0.38227478251716D-01 0.37194888208097D+00 + 1 3 1 1 -0.34008325557090D+00 -0.47033685869534D+00 + 2 3 1 1 -0.44284582757032D+00 -0.85013956782414D-01 + 3 3 1 1 -0.37194888208097D+00 -0.38227478251719D-01 + 1 1 2 1 0.20643272790542D+01 0.52656026846450D-07 + 2 1 2 1 0.29477256471150D+01 0.46378091330479D-16 + 3 1 2 1 0.97745676165414D+00 -0.12380314936794D-07 + 1 2 2 1 0.37542174377034D+00 0.40643725862607D+00 + 2 2 2 1 0.45817699214371D+00 0.44938039576607D+00 + 3 2 2 1 0.38226510175600D-01 0.37195051183968D+00 + 1 3 2 1 -0.40643725862604D+00 -0.37542174377035D+00 + 2 3 2 1 -0.44938039576606D+00 -0.45817699214373D+00 + 3 3 2 1 -0.37195051183965D+00 -0.38226510175608D-01 + 1 1 3 1 0.97745492680519D+00 0.40528245300175D-07 + 2 1 3 1 0.97745676165414D+00 0.12380315241663D-07 + 3 1 3 1 0.19549115256114D+01 -0.71477808959659D-16 + 1 2 3 1 0.38227000917342D-01 0.37195014374167D+00 + 2 2 3 1 0.38227000917336D-01 0.37195014374168D+00 + 3 2 3 1 0.76454001834669D-01 0.74390028748329D+00 + 1 3 3 1 -0.37195014374167D+00 -0.38227000917345D-01 + 2 3 3 1 -0.37195014374165D+00 -0.38227000917345D-01 + 3 3 3 1 -0.74390028748326D+00 -0.76454001834673D-01 + 1 1 1 2 0.47033685869530D+00 -0.34008325557088D+00 + 2 1 1 2 0.37542174377034D+00 -0.40643725862607D+00 + 3 1 1 2 0.38227000917342D-01 -0.37195014374167D+00 + 1 2 1 2 0.26475620947451D+01 -0.89701243740405D-17 + 2 2 1 2 0.12663154936665D+01 0.74254223835954D-01 + 3 2 1 2 0.11541509883770D+01 0.39189472386541D-07 + 1 3 1 2 -0.15630381342265D+00 -0.35304708848567D+00 + 2 3 1 2 -0.51647021709607D+00 -0.59614815736769D+00 + 3 3 1 2 0.37380042143683D+00 0.28883499279531D+00 + 1 1 2 2 0.85013956782407D-01 -0.44284582757034D+00 + 2 1 2 2 0.45817699214371D+00 -0.44938039576607D+00 + 3 1 2 2 0.38227000917336D-01 -0.37195014374168D+00 + 1 2 2 2 0.12663154936665D+01 -0.74254223835953D-01 + 2 2 2 2 0.24025717417182D+01 0.22725264751935D-16 + 3 2 2 2 0.11541213501981D+01 0.13461203248852D-06 + 1 3 2 2 -0.51647021709607D+00 -0.59614815736769D+00 + 2 3 2 2 -0.12135751580224D+00 -0.12834387537699D+00 + 3 3 2 2 0.37380003656094D+00 0.28883473186901D+00 + 1 1 3 2 0.38227478251716D-01 -0.37194888208097D+00 + 2 1 3 2 0.38226510175600D-01 -0.37195051183968D+00 + 3 1 3 2 0.76454001834669D-01 -0.74390028748329D+00 + 1 2 3 2 0.11541509883771D+01 -0.39189472483285D-07 + 2 2 3 2 0.11541213501981D+01 -0.13461203233914D-06 + 3 2 3 2 0.23082724508613D+01 -0.35024126390233D-16 + 1 3 3 2 0.37380042143683D+00 0.28883499279531D+00 + 2 3 3 2 0.37380003656094D+00 0.28883473186901D+00 + 3 3 3 2 0.74760081100777D+00 0.57767012870573D+00 + 1 1 1 3 -0.34008325557090D+00 0.47033685869534D+00 + 2 1 1 3 -0.40643725862604D+00 0.37542174377035D+00 + 3 1 1 3 -0.37195014374167D+00 0.38227000917345D-01 + 1 2 1 3 -0.15630381342265D+00 0.35304708848567D+00 + 2 2 1 3 -0.51647021709607D+00 0.59614815736769D+00 + 3 2 1 3 0.37380042143683D+00 -0.28883499279531D+00 + 1 3 1 3 0.26475620947451D+01 -0.89701243740405D-17 + 2 3 1 3 0.12663154936665D+01 -0.74254223835953D-01 + 3 3 1 3 0.11541509883770D+01 -0.39189472483285D-07 + 1 1 2 3 -0.44284582757032D+00 0.85013956782414D-01 + 2 1 2 3 -0.44938039576606D+00 0.45817699214373D+00 + 3 1 2 3 -0.37195014374165D+00 0.38227000917345D-01 + 1 2 2 3 -0.51647021709607D+00 0.59614815736769D+00 + 2 2 2 3 -0.12135751580224D+00 0.12834387537699D+00 + 3 2 2 3 0.37380003656094D+00 -0.28883473186901D+00 + 1 3 2 3 0.12663154936665D+01 0.74254223835954D-01 + 2 3 2 3 0.24025717417182D+01 0.22725264751935D-16 + 3 3 2 3 0.11541213501981D+01 -0.13461203233914D-06 + 1 1 3 3 -0.37194888208097D+00 0.38227478251719D-01 + 2 1 3 3 -0.37195051183965D+00 0.38226510175608D-01 + 3 1 3 3 -0.74390028748326D+00 0.76454001834673D-01 + 1 2 3 3 0.37380042143683D+00 -0.28883499279531D+00 + 2 2 3 3 0.37380003656094D+00 -0.28883473186901D+00 + 3 2 3 3 0.74760081100777D+00 -0.57767012870573D+00 + 1 3 3 3 0.11541509883771D+01 0.39189472386541D-07 + 2 3 3 3 0.11541213501981D+01 0.13461203248852D-06 + 3 3 3 3 0.23082724508613D+01 -0.35024126390233D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.34457491958983D+01 0.32732891068856D-15 + 2 1 1 1 0.13405976051542D+01 -0.55704802995690D-07 + 3 1 1 1 0.97436398637251D+00 -0.39157204020863D-07 + 1 2 1 1 -0.33554511371171D+00 0.27530172915188D+00 + 2 2 1 1 -0.27684597390850D+00 0.16922973366425D+00 + 3 2 1 1 -0.26187511098365D+00 0.27575456513467D+00 + 1 3 1 1 -0.43193394485523D+00 0.42598505743865D-01 + 2 3 1 1 -0.31542315774726D+00 0.76096173242543D-01 + 3 3 1 1 -0.38016158975037D+00 -0.98142561493828D-02 + 1 1 2 1 0.13405976051545D+01 0.55704803949054D-07 + 2 1 2 1 0.28224491108790D+01 0.44188253378728D-15 + 3 1 2 1 0.97436586021445D+00 0.56882742506979D-08 + 1 2 2 1 -0.36668976156768D-01 0.36819585268009D+00 + 2 2 2 1 -0.14169548268470D+00 0.56870453281561D+00 + 3 2 2 1 -0.26187686670565D+00 0.27575501429279D+00 + 1 3 2 1 -0.28628266593446D+00 -0.23442490253520D+00 + 2 3 2 1 -0.50232866831530D+00 -0.30194099497561D+00 + 3 3 2 1 -0.38016314883609D+00 -0.98133322691961D-02 + 1 1 3 1 0.97436398637228D+00 0.39157202983528D-07 + 2 1 3 1 0.97436586021445D+00 -0.56882751087635D-08 + 3 1 3 1 0.19487296877669D+01 0.21122668385491D-15 + 1 2 3 1 -0.26187619778687D+00 0.27575531043271D+00 + 2 2 3 1 -0.26187619778684D+00 0.27575531043270D+00 + 3 2 3 1 -0.52375239557361D+00 0.55151062086544D+00 + 1 3 3 1 -0.38016288524159D+00 -0.98140146687583D-02 + 2 3 3 1 -0.38016288524160D+00 -0.98140146687583D-02 + 3 3 3 1 -0.76032577048316D+00 -0.19628029337516D-01 + 1 1 1 2 -0.33554511371171D+00 -0.27530172915188D+00 + 2 1 1 2 -0.36668976156768D-01 -0.36819585268009D+00 + 3 1 1 2 -0.26187619778687D+00 -0.27575531043271D+00 + 1 2 1 2 0.25804233101153D+01 0.16039116623739D-15 + 2 2 1 2 0.11479765543959D+01 0.93664622212823D-01 + 3 2 1 2 0.11710070293756D+01 0.57883007438713D-07 + 1 3 1 2 -0.38767067072758D+00 -0.30244059279910D+00 + 2 3 1 2 -0.80711788267088D+00 -0.37029140148484D+00 + 3 3 1 2 0.26422689308346D+00 0.73326708547480D-01 + 1 1 2 2 -0.27684597390850D+00 -0.16922973366425D+00 + 2 1 2 2 -0.14169548268470D+00 -0.56870453281561D+00 + 3 1 2 2 -0.26187619778684D+00 -0.27575531043270D+00 + 1 2 2 2 0.11479765543959D+01 -0.93664622212822D-01 + 2 2 2 2 0.24175636545976D+01 0.21652244155577D-15 + 3 2 2 2 0.11709772762227D+01 0.55042243246847D-07 + 1 3 2 2 -0.80711788267088D+00 -0.37029140148484D+00 + 2 3 2 2 -0.39679922694330D+00 -0.16659571072952D+00 + 3 3 2 2 0.26422660516209D+00 0.73326643827479D-01 + 1 1 3 2 -0.26187511098365D+00 -0.27575456513467D+00 + 2 1 3 2 -0.26187686670565D+00 -0.27575501429279D+00 + 3 1 3 2 -0.52375239557361D+00 -0.55151062086544D+00 + 1 2 3 2 0.11710070293757D+01 -0.57883007947007D-07 + 2 2 3 2 0.11709772762227D+01 -0.55042243667299D-07 + 3 2 3 2 0.23419844493267D+01 0.10350107508891D-15 + 1 3 3 2 0.26422689308346D+00 0.73326708547480D-01 + 2 3 3 2 0.26422660516209D+00 0.73326643827479D-01 + 3 3 3 2 0.52845434560890D+00 0.14665395001968D+00 + 1 1 1 3 -0.43193394485523D+00 -0.42598505743865D-01 + 2 1 1 3 -0.28628266593446D+00 0.23442490253520D+00 + 3 1 1 3 -0.38016288524159D+00 0.98140146687583D-02 + 1 2 1 3 -0.38767067072758D+00 0.30244059279910D+00 + 2 2 1 3 -0.80711788267088D+00 0.37029140148484D+00 + 3 2 1 3 0.26422689308346D+00 -0.73326708547480D-01 + 1 3 1 3 0.25804233101153D+01 0.16039116623739D-15 + 2 3 1 3 0.11479765543959D+01 -0.93664622212822D-01 + 3 3 1 3 0.11710070293756D+01 -0.57883007947007D-07 + 1 1 2 3 -0.31542315774726D+00 -0.76096173242543D-01 + 2 1 2 3 -0.50232866831530D+00 0.30194099497561D+00 + 3 1 2 3 -0.38016288524160D+00 0.98140146687583D-02 + 1 2 2 3 -0.80711788267088D+00 0.37029140148484D+00 + 2 2 2 3 -0.39679922694330D+00 0.16659571072952D+00 + 3 2 2 3 0.26422660516209D+00 -0.73326643827479D-01 + 1 3 2 3 0.11479765543959D+01 0.93664622212823D-01 + 2 3 2 3 0.24175636545976D+01 0.21652244155577D-15 + 3 3 2 3 0.11709772762227D+01 -0.55042243667299D-07 + 1 1 3 3 -0.38016158975037D+00 0.98142561493828D-02 + 2 1 3 3 -0.38016314883609D+00 0.98133322691961D-02 + 3 1 3 3 -0.76032577048316D+00 0.19628029337516D-01 + 1 2 3 3 0.26422689308346D+00 -0.73326708547480D-01 + 2 2 3 3 0.26422660516209D+00 -0.73326643827479D-01 + 3 2 3 3 0.52845434560890D+00 -0.14665395001968D+00 + 1 3 3 3 0.11710070293757D+01 0.57883007438713D-07 + 2 3 3 3 0.11709772762227D+01 0.55042243246847D-07 + 3 3 3 3 0.23419844493267D+01 0.10350107508891D-15 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.29537400296717D+01 -0.14365881982800D-15 + 2 1 1 1 0.71317572770567D+00 -0.25237465266689D-07 + 3 1 1 1 0.97976873404036D+00 0.38841907645585D-07 + 1 2 1 1 -0.72404537702732D+00 -0.28497205395195D+00 + 2 2 1 1 -0.20817088609156D+00 -0.14142050821196D+00 + 3 2 1 1 -0.40777961628258D+00 -0.26363634556890D-06 + 1 3 1 1 -0.72404537702734D+00 0.28497205395196D+00 + 2 3 1 1 -0.20817088609152D+00 0.14142050821196D+00 + 3 3 1 1 -0.40777961628257D+00 0.26363634667208D-06 + 1 1 2 1 0.71317572770590D+00 0.25237466024563D-07 + 2 1 2 1 0.29537400304403D+01 -0.16865442984225D-15 + 3 1 2 1 0.97977094392127D+00 -0.36856727460386D-07 + 1 2 2 1 -0.20817088609156D+00 0.14142050701726D+00 + 2 2 2 1 -0.72404537682983D+00 0.28497205300284D+00 + 3 2 2 1 -0.40778100066631D+00 -0.12751679645650D-05 + 1 3 2 1 -0.20817088609152D+00 -0.14142050701726D+00 + 2 3 2 1 -0.72404537682984D+00 -0.28497205300283D+00 + 3 3 2 1 -0.40778100066628D+00 0.12751679639195D-05 + 1 1 3 1 0.97976873404059D+00 -0.38841907720570D-07 + 2 1 3 1 0.97977094392127D+00 0.36856726767172D-07 + 3 1 3 1 0.19595396110885D+01 -0.18994674122589D-16 + 1 2 3 1 -0.40778073232331D+00 -0.33007158112847D-06 + 2 2 3 1 -0.40778073232330D+00 0.32964949186344D-06 + 3 2 3 1 -0.81556146464654D+00 -0.66014315978933D-06 + 1 3 3 1 -0.40778073232330D+00 0.33007158223166D-06 + 2 3 3 1 -0.40778073232327D+00 -0.32964949250894D-06 + 3 3 3 1 -0.81556146464657D+00 0.66014316002655D-06 + 1 1 1 2 -0.72404537702732D+00 0.28497205395195D+00 + 2 1 1 2 -0.20817088609156D+00 -0.14142050701726D+00 + 3 1 1 2 -0.40778073232331D+00 0.33007158112847D-06 + 1 2 1 2 0.24935502591750D+01 -0.70392821715721D-16 + 2 2 1 2 0.10475955291114D+01 0.10407545611336D+00 + 3 2 1 2 0.11759435834423D+01 0.31244982375557D-07 + 1 3 1 2 -0.58544254980921D+00 -0.29425562729779D-01 + 2 3 1 2 -0.90096132109296D+00 -0.33964462720309D-06 + 3 3 1 2 0.35064943322714D-01 -0.33855504709436D-06 + 1 1 2 2 -0.20817088609156D+00 0.14142050821196D+00 + 2 1 2 2 -0.72404537682983D+00 -0.28497205300284D+00 + 3 1 2 2 -0.40778073232330D+00 -0.32964949186344D-06 + 1 2 2 2 0.10475955291114D+01 -0.10407545611336D+00 + 2 2 2 2 0.24935502587789D+01 -0.82640670622702D-16 + 3 2 2 2 0.11759138846184D+01 -0.84846597532980D-08 + 1 3 2 2 -0.90096132109296D+00 -0.33964462720309D-06 + 2 3 2 2 -0.58544254909678D+00 0.29425562729778D-01 + 3 3 2 2 0.35064858252234D-01 -0.36941891677612D-06 + 1 1 3 2 -0.40777961628258D+00 0.26363634556890D-06 + 2 1 3 2 -0.40778100066631D+00 0.12751679645650D-05 + 3 1 3 2 -0.81556146464654D+00 0.66014315978933D-06 + 1 2 3 2 0.11759435834424D+01 -0.31244982412300D-07 + 2 2 3 2 0.11759138846184D+01 0.84846594136231D-08 + 3 2 3 2 0.23518576625140D+01 -0.93073903200686D-17 + 1 3 3 2 0.35064943322714D-01 -0.33855504709436D-06 + 2 3 3 2 0.35064858252234D-01 -0.36941891677612D-06 + 3 3 3 2 0.70130913433274D-01 -0.96716506686389D-11 + 1 1 1 3 -0.72404537702734D+00 -0.28497205395196D+00 + 2 1 1 3 -0.20817088609152D+00 0.14142050701726D+00 + 3 1 1 3 -0.40778073232330D+00 -0.33007158223166D-06 + 1 2 1 3 -0.58544254980921D+00 0.29425562729779D-01 + 2 2 1 3 -0.90096132109296D+00 0.33964462720309D-06 + 3 2 1 3 0.35064943322714D-01 0.33855504709436D-06 + 1 3 1 3 0.24935502591750D+01 -0.70392821715721D-16 + 2 3 1 3 0.10475955291113D+01 -0.10407545611336D+00 + 3 3 1 3 0.11759435834423D+01 -0.31244982412300D-07 + 1 1 2 3 -0.20817088609152D+00 -0.14142050821196D+00 + 2 1 2 3 -0.72404537682984D+00 0.28497205300283D+00 + 3 1 2 3 -0.40778073232327D+00 0.32964949250894D-06 + 1 2 2 3 -0.90096132109296D+00 0.33964462720309D-06 + 2 2 2 3 -0.58544254909678D+00 -0.29425562729778D-01 + 3 2 2 3 0.35064858252234D-01 0.36941891677612D-06 + 1 3 2 3 0.10475955291113D+01 0.10407545611336D+00 + 2 3 2 3 0.24935502587789D+01 -0.82640670622702D-16 + 3 3 2 3 0.11759138846184D+01 0.84846594136231D-08 + 1 1 3 3 -0.40777961628257D+00 -0.26363634667208D-06 + 2 1 3 3 -0.40778100066628D+00 -0.12751679639195D-05 + 3 1 3 3 -0.81556146464657D+00 -0.66014316002655D-06 + 1 2 3 3 0.35064943322714D-01 0.33855504709436D-06 + 2 2 3 3 0.35064858252234D-01 0.36941891677612D-06 + 3 2 3 3 0.70130913433274D-01 0.96716506686389D-11 + 1 3 3 3 0.11759435834424D+01 0.31244982375557D-07 + 2 3 3 3 0.11759138846184D+01 -0.84846597532980D-08 + 3 3 3 3 0.23518576625140D+01 -0.93073903200686D-17 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 3.75000000E-01 3.75000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.40544758448527D+01 0.24659568712643D-15 + 2 1 1 1 0.30719167496636D+01 -0.52828932211646D-16 + 3 1 1 1 0.98255909622549D+00 -0.54378615207065D-17 + 1 2 1 1 0.69077118373989D+00 0.28612679306825D+00 + 2 2 1 1 0.39437964295932D+00 0.50371924142829D+00 + 3 2 1 1 0.55719372945984D-01 0.36344156388254D+00 + 1 3 1 1 -0.28612679306824D+00 -0.69077118373989D+00 + 2 3 1 1 -0.50371924142826D+00 -0.39437964295932D+00 + 3 3 1 1 -0.36344156388251D+00 -0.55719372945993D-01 + 1 1 2 1 0.30719167496634D+01 -0.52828932211646D-16 + 2 1 2 1 0.40544758465544D+01 -0.26055925002904D-15 + 3 1 2 1 0.98255909622526D+00 0.29979490282151D-15 + 1 2 2 1 0.39437964295932D+00 0.50371924142829D+00 + 2 2 2 1 0.69077118421875D+00 0.28612679241457D+00 + 3 2 2 1 0.55719372945986D-01 0.36344156388251D+00 + 1 3 2 1 -0.50371924142826D+00 -0.39437964295932D+00 + 2 3 2 1 -0.28612679241458D+00 -0.69077118421874D+00 + 3 3 2 1 -0.36344156388246D+00 -0.55719372945993D-01 + 1 1 3 1 0.98255909622526D+00 -0.54378615207065D-17 + 2 1 3 1 0.98255909622526D+00 0.29979490282151D-15 + 3 1 3 1 0.19651181924519D+01 -0.52733543762431D-16 + 1 2 3 1 0.55719372945988D-01 0.36344156388253D+00 + 2 2 3 1 0.55719372945988D-01 0.36344156388252D+00 + 3 2 3 1 0.11143874589198D+00 0.72688312776491D+00 + 1 3 3 1 -0.36344156388249D+00 -0.55719372945993D-01 + 2 3 3 1 -0.36344156388246D+00 -0.55719372945995D-01 + 3 3 3 1 -0.72688312776490D+00 -0.11143874589200D+00 + 1 1 1 2 0.69077119885129D+00 -0.28612679932759D+00 + 2 1 1 2 0.39437965807071D+00 -0.50371924768763D+00 + 3 1 1 2 0.55719372945986D-01 -0.36344156388253D+00 + 1 2 1 2 0.25065515920780D+01 0.12083188669195D-15 + 2 2 1 2 0.13762966785386D+01 -0.25886176784022D-16 + 3 2 1 2 0.11302549131976D+01 -0.26645521454619D-17 + 1 3 1 2 -0.16460403168892D+00 -0.16460403168892D+00 + 2 3 1 2 -0.58586342352412D+00 -0.66762729062469D+00 + 3 3 1 2 0.50302325840553D+00 0.42125939130487D+00 + 1 1 2 2 0.39437965807072D+00 -0.50371924768763D+00 + 2 1 2 2 0.69077119933015D+00 -0.28612679867392D+00 + 3 1 2 2 0.55719372945989D-01 -0.36344156388251D+00 + 1 2 2 2 0.13762966785386D+01 -0.25886176784199D-16 + 2 2 2 2 0.25065515921390D+01 -0.12767403251423D-15 + 3 2 2 2 0.11302549131976D+01 0.14689950238254D-15 + 1 3 2 2 -0.58586342352412D+00 -0.66762729062469D+00 + 2 3 2 2 -0.16460403174280D+00 -0.16460403174281D+00 + 3 3 2 2 0.50302325840553D+00 0.42125939130488D+00 + 1 1 3 2 0.55719372945988D-01 -0.36344156388253D+00 + 2 1 3 2 0.55719372945993D-01 -0.36344156388252D+00 + 3 1 3 2 0.11143874589198D+00 -0.72688312776491D+00 + 1 2 3 2 0.11302549131977D+01 -0.26645521448305D-17 + 2 2 3 2 0.11302549131976D+01 0.14689950238254D-15 + 3 2 3 2 0.22605098263955D+01 -0.25839436443591D-16 + 1 3 3 2 0.50302325840553D+00 0.42125939130487D+00 + 2 3 3 2 0.50302325840553D+00 0.42125939130488D+00 + 3 3 3 2 0.10060465168110D+01 0.84251878260973D+00 + 1 1 1 3 -0.28612679932759D+00 0.69077119885128D+00 + 2 1 1 3 -0.50371924768761D+00 0.39437965807071D+00 + 3 1 1 3 -0.36344156388250D+00 0.55719372945997D-01 + 1 2 1 3 -0.16460403168892D+00 0.16460403168892D+00 + 2 2 1 3 -0.58586342352412D+00 0.66762729062469D+00 + 3 2 1 3 0.50302325840553D+00 -0.42125939130487D+00 + 1 3 1 3 0.25065515920780D+01 0.12083188669195D-15 + 2 3 1 3 0.13762966785386D+01 -0.25886176783391D-16 + 3 3 1 3 0.11302549131976D+01 -0.26645521448305D-17 + 1 1 2 3 -0.50371924768761D+00 0.39437965807071D+00 + 2 1 2 3 -0.28612679867393D+00 0.69077119933014D+00 + 3 1 2 3 -0.36344156388246D+00 0.55719372945995D-01 + 1 2 2 3 -0.58586342352412D+00 0.66762729062469D+00 + 2 2 2 3 -0.16460403174280D+00 0.16460403174281D+00 + 3 2 2 3 0.50302325840553D+00 -0.42125939130488D+00 + 1 3 2 3 0.13762966785386D+01 -0.25886176783214D-16 + 2 3 2 3 0.25065515921390D+01 -0.12767403251423D-15 + 3 3 2 3 0.11302549131976D+01 0.14689950238254D-15 + 1 1 3 3 -0.36344156388249D+00 0.55719372945993D-01 + 2 1 3 3 -0.36344156388246D+00 0.55719372945991D-01 + 3 1 3 3 -0.72688312776490D+00 0.11143874589200D+00 + 1 2 3 3 0.50302325840553D+00 -0.42125939130487D+00 + 2 2 3 3 0.50302325840553D+00 -0.42125939130488D+00 + 3 2 3 3 0.10060465168110D+01 -0.84251878260973D+00 + 1 3 3 3 0.11302549131977D+01 -0.26645521454619D-17 + 2 3 3 3 0.11302549131976D+01 0.14689950238254D-15 + 3 3 3 3 0.22605098263955D+01 -0.25839436443591D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 3.75000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.40306944279241D+01 -0.12906781907125D-15 + 2 1 1 1 0.27788043947919D+01 -0.15153942735389D-07 + 3 1 1 1 0.97692089284419D+00 -0.15966931891123D-07 + 1 2 1 1 0.15857894914599D+00 0.30017612324043D+00 + 2 2 1 1 -0.20688942417838D+00 0.33844960436684D+00 + 3 2 1 1 -0.22911223150691D+00 0.26741279679077D+00 + 1 3 1 1 -0.10012432199906D+00 -0.32438882258817D+00 + 2 3 1 1 -0.38561292513000D+00 -0.93027095545413D-01 + 3 3 1 1 -0.35109621453818D+00 -0.27082589435515D-01 + 1 1 2 1 0.27788043947919D+01 0.15153942732772D-07 + 2 1 2 1 0.37113630087870D+01 0.19121044473749D-15 + 3 1 2 1 0.97692274403767D+00 -0.31802139169906D-08 + 1 2 2 1 -0.62764096696629D-01 0.45693597014841D+00 + 2 2 2 1 0.14821122385644D+00 0.35045621611647D+00 + 3 2 2 1 -0.22911395251536D+00 0.26741344149975D+00 + 1 3 2 1 -0.36748344144922D+00 -0.27872160467079D+00 + 2 3 2 1 -0.14300880548807D+00 -0.35261112836179D+00 + 3 3 2 1 -0.35109788735296D+00 -0.27081828376840D-01 + 1 1 3 1 0.97692089284396D+00 0.15966932182346D-07 + 2 1 3 1 0.97692274403767D+00 0.31802138827803D-08 + 3 1 3 1 0.19538434617266D+01 0.29425044564492D-16 + 1 2 3 1 -0.22911319998198D+00 0.26741333730493D+00 + 2 2 3 1 -0.22911319998198D+00 0.26741333730494D+00 + 3 2 3 1 -0.45822639996394D+00 0.53482667460988D+00 + 1 3 3 1 -0.35109728155470D+00 -0.27082286821449D-01 + 2 3 3 1 -0.35109728155466D+00 -0.27082286821445D-01 + 3 3 3 1 -0.70219456310929D+00 -0.54164573642893D-01 + 1 1 1 2 0.15857894914599D+00 -0.30017612324043D+00 + 2 1 1 2 -0.62764096696629D-01 -0.45693597014841D+00 + 3 1 1 2 -0.22911319998198D+00 -0.26741333730493D+00 + 1 2 1 2 0.24973815699814D+01 -0.63243231344912D-16 + 2 2 1 2 0.12968790292902D+01 0.41664214121919D-01 + 3 2 1 2 0.11388985228874D+01 -0.48457326720018D-07 + 1 3 1 2 -0.35501558126105D+00 -0.21535741469941D+00 + 2 3 1 2 -0.91990390627003D+00 -0.41420650720298D+00 + 3 3 1 2 0.57716463065954D+00 0.20484118074601D+00 + 1 1 2 2 -0.20688942417838D+00 -0.33844960436684D+00 + 2 1 2 2 0.14821122385644D+00 -0.35045621611647D+00 + 3 1 2 2 -0.22911319998198D+00 -0.26741333730494D+00 + 1 2 2 2 0.12968790292902D+01 -0.41664214121919D-01 + 2 2 2 2 0.24273661558859D+01 0.93693117921369D-16 + 3 2 2 2 0.11388690491608D+01 0.81278291767875D-07 + 1 3 2 2 -0.91990390627003D+00 -0.41420650720298D+00 + 2 3 2 2 -0.33245683164400D+00 -0.93243288330318D-01 + 3 3 2 2 0.57716405366703D+00 0.20484095685581D+00 + 1 1 3 2 -0.22911223150691D+00 -0.26741279679077D+00 + 2 1 3 2 -0.22911395251536D+00 -0.26741344149975D+00 + 3 1 3 2 -0.45822639996394D+00 -0.53482667460988D+00 + 1 2 3 2 0.11388985228875D+01 0.48457326862717D-07 + 2 2 3 2 0.11388690491608D+01 -0.81278291784638D-07 + 3 2 3 2 0.22777677174486D+01 0.14418271836601D-16 + 1 3 3 2 0.57716463065954D+00 0.20484118074601D+00 + 2 3 3 2 0.57716405366703D+00 0.20484095685581D+00 + 3 3 3 2 0.11543291412184D+01 0.40968222797943D+00 + 1 1 1 3 -0.10012432199906D+00 0.32438882258817D+00 + 2 1 1 3 -0.36748344144922D+00 0.27872160467079D+00 + 3 1 1 3 -0.35109728155470D+00 0.27082286821449D-01 + 1 2 1 3 -0.35501558126105D+00 0.21535741469941D+00 + 2 2 1 3 -0.91990390627003D+00 0.41420650720298D+00 + 3 2 1 3 0.57716463065954D+00 -0.20484118074601D+00 + 1 3 1 3 0.24973815699816D+01 -0.63243231344912D-16 + 2 3 1 3 0.12968790292902D+01 -0.41664214121919D-01 + 3 3 1 3 0.11388985228874D+01 0.48457326862717D-07 + 1 1 2 3 -0.38561292513000D+00 0.93027095545413D-01 + 2 1 2 3 -0.14300880548807D+00 0.35261112836179D+00 + 3 1 2 3 -0.35109728155466D+00 0.27082286821445D-01 + 1 2 2 3 -0.91990390627003D+00 0.41420650720298D+00 + 2 2 2 3 -0.33245683164400D+00 0.93243288330318D-01 + 3 2 2 3 0.57716405366703D+00 -0.20484095685581D+00 + 1 3 2 3 0.12968790292902D+01 0.41664214121919D-01 + 2 3 2 3 0.24273661558859D+01 0.93693117921369D-16 + 3 3 2 3 0.11388690491609D+01 -0.81278291784638D-07 + 1 1 3 3 -0.35109621453818D+00 0.27082589435515D-01 + 2 1 3 3 -0.35109788735296D+00 0.27081828376840D-01 + 3 1 3 3 -0.70219456310929D+00 0.54164573642893D-01 + 1 2 3 3 0.57716463065954D+00 -0.20484118074601D+00 + 2 2 3 3 0.57716405366703D+00 -0.20484095685581D+00 + 3 2 3 3 0.11543291412184D+01 -0.40968222797943D+00 + 1 3 3 3 0.11388985228875D+01 -0.48457326720018D-07 + 2 3 3 3 0.11388690491609D+01 0.81278291767875D-07 + 3 3 3 3 0.22777677174486D+01 0.14418271836601D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 3.75000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.34985068179517D+01 0.46672219571579D-15 + 2 1 1 1 0.21014072018843D+01 -0.12952161821630D-07 + 3 1 1 1 0.97349306087563D+00 0.13714700594917D-06 + 1 2 1 1 -0.20976317109054D+00 -0.10023795062488D+00 + 2 2 1 1 -0.32222575090832D+00 -0.14597559940049D+00 + 3 2 1 1 -0.35807591209398D+00 0.21806909560563D-06 + 1 3 1 1 -0.20976317109054D+00 0.10023795062486D+00 + 2 3 1 1 -0.32222575090836D+00 0.14597559940049D+00 + 3 3 1 1 -0.35807591209403D+00 -0.21806909439875D-06 + 1 1 2 1 0.21014072018843D+01 0.12952161746365D-07 + 2 1 2 1 0.34985068192400D+01 0.36071793826842D-15 + 3 1 2 1 0.97349478614365D+00 -0.12715790029645D-06 + 1 2 2 1 -0.32222575090832D+00 0.14597559828431D+00 + 2 2 2 1 -0.20976317039528D+00 0.10023794979737D+00 + 3 2 2 1 -0.35807745544607D+00 -0.49904636069207D-06 + 1 3 2 1 -0.32222575090836D+00 -0.14597559828431D+00 + 2 3 2 1 -0.20976317039527D+00 -0.10023794979741D+00 + 3 3 2 1 -0.35807745544612D+00 0.49904635931293D-06 + 1 1 3 1 0.97349306087585D+00 -0.13714700606649D-06 + 2 1 3 1 0.97349478614365D+00 0.12715790040331D-06 + 3 1 3 1 0.19469877829015D+01 0.11622942175703D-15 + 1 2 3 1 -0.35807698774404D+00 0.14222859695764D-06 + 2 2 3 1 -0.35807698774401D+00 -0.14251120882293D-06 + 3 2 3 1 -0.71615397548808D+00 0.28445719295254D-06 + 1 3 3 1 -0.35807698774409D+00 -0.14222859575076D-06 + 2 3 3 1 -0.35807698774406D+00 0.14251120744379D-06 + 3 3 3 1 -0.71615397548816D+00 -0.28445719328574D-06 + 1 1 1 2 -0.20976317109054D+00 0.10023795062488D+00 + 2 1 1 2 -0.32222575090832D+00 -0.14597559828431D+00 + 3 1 1 2 -0.35807698774404D+00 -0.14222859695764D-06 + 1 2 1 2 0.24633285730249D+01 0.22869387590074D-15 + 2 2 1 2 0.12164729243183D+01 0.74926489477913D-01 + 3 2 1 2 0.11556823372879D+01 0.13982598097207D-07 + 1 3 1 2 -0.44860517447000D+00 -0.79415306876441D-01 + 2 3 1 2 -0.10137188761008D+01 -0.21967827592534D-07 + 3 3 1 2 0.47775579285070D+00 -0.21773200850908D-07 + 1 1 2 2 -0.32222575090832D+00 0.14597559940049D+00 + 2 1 2 2 -0.20976317039528D+00 -0.10023794979737D+00 + 3 1 2 2 -0.35807698774401D+00 0.14251120882293D-06 + 1 2 2 2 0.12164729243183D+01 -0.74926489477913D-01 + 2 2 2 2 0.24633285728835D+01 0.17675178975152D-15 + 3 2 2 2 0.11556527580245D+01 0.37578088095723D-07 + 1 3 2 2 -0.10137188761008D+01 -0.21967827592534D-07 + 2 3 2 2 -0.44860517411791D+00 0.79415306876443D-01 + 3 3 2 2 0.47775524145957D+00 -0.27381789316682D-07 + 1 1 3 2 -0.35807591209398D+00 -0.21806909560563D-06 + 2 1 3 2 -0.35807745544607D+00 0.49904636069207D-06 + 3 1 3 2 -0.71615397548808D+00 -0.28445719295254D-06 + 1 2 3 2 0.11556823372880D+01 -0.13982598154694D-07 + 2 2 3 2 0.11556527580245D+01 -0.37578088043364D-07 + 3 2 3 2 0.23113353611354D+01 0.56952416660947D-16 + 1 3 3 2 0.47775579285070D+00 -0.21773200850908D-07 + 2 3 3 2 0.47775524145957D+00 -0.27381789316682D-07 + 3 3 3 2 0.95551214083231D+00 0.57387576350096D-09 + 1 1 1 3 -0.20976317109054D+00 -0.10023795062486D+00 + 2 1 1 3 -0.32222575090836D+00 0.14597559828431D+00 + 3 1 1 3 -0.35807698774409D+00 0.14222859575076D-06 + 1 2 1 3 -0.44860517447000D+00 0.79415306876441D-01 + 2 2 1 3 -0.10137188761008D+01 0.21967827592534D-07 + 3 2 1 3 0.47775579285070D+00 0.21773200850908D-07 + 1 3 1 3 0.24633285730249D+01 0.22869387590074D-15 + 2 3 1 3 0.12164729243183D+01 -0.74926489477913D-01 + 3 3 1 3 0.11556823372879D+01 -0.13982598154694D-07 + 1 1 2 3 -0.32222575090836D+00 -0.14597559940049D+00 + 2 1 2 3 -0.20976317039527D+00 0.10023794979741D+00 + 3 1 2 3 -0.35807698774406D+00 -0.14251120744379D-06 + 1 2 2 3 -0.10137188761008D+01 0.21967827592534D-07 + 2 2 2 3 -0.44860517411791D+00 -0.79415306876443D-01 + 3 2 2 3 0.47775524145957D+00 0.27381789316682D-07 + 1 3 2 3 0.12164729243183D+01 0.74926489477913D-01 + 2 3 2 3 0.24633285728835D+01 0.17675178975152D-15 + 3 3 2 3 0.11556527580245D+01 -0.37578088043364D-07 + 1 1 3 3 -0.35807591209403D+00 0.21806909439875D-06 + 2 1 3 3 -0.35807745544612D+00 -0.49904635931293D-06 + 3 1 3 3 -0.71615397548816D+00 0.28445719328574D-06 + 1 2 3 3 0.47775579285070D+00 0.21773200850908D-07 + 2 2 3 3 0.47775524145957D+00 0.27381789316682D-07 + 3 2 3 3 0.95551214083231D+00 -0.57387576350096D-09 + 1 3 3 3 0.11556823372880D+01 0.13982598097207D-07 + 2 3 3 3 0.11556527580245D+01 0.37578088095723D-07 + 3 3 3 3 0.23113353611354D+01 0.56952416660947D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 5.00000000E-01 0.00000000E+00 1.0 + 1 1 1 1 0.40363482680182D+01 0.00000000000000D+00 + 2 1 1 1 0.30596224206365D+01 0.00000000000000D+00 + 3 1 1 1 0.97672584839711D+00 0.00000000000000D+00 + 1 2 1 1 -0.29367350462563D-09 0.31904437690405D-14 + 2 2 1 1 -0.34243983184450D+00 -0.16676439782456D-07 + 3 2 1 1 -0.34243983115257D+00 -0.16676438530152D-07 + 1 3 1 1 -0.29366520682668D-09 -0.23292578346592D-14 + 2 3 1 1 -0.34243983184452D+00 -0.16676447627863D-07 + 3 3 1 1 -0.34243983115256D+00 -0.16676447109723D-07 + 1 1 2 1 0.30596224206367D+01 0.00000000000000D+00 + 2 1 2 1 0.40363482698481D+01 0.00000000000000D+00 + 3 1 2 1 0.97672584839688D+00 0.00000000000000D+00 + 1 2 2 1 -0.34243983184449D+00 -0.16676439782456D-07 + 2 2 2 1 0.60350327200445D-09 0.11776646686733D-14 + 3 2 2 1 -0.34243983115256D+00 -0.16676438526165D-07 + 1 3 2 1 -0.34243983184451D+00 -0.16676447627863D-07 + 2 3 2 1 0.60351135040963D-09 -0.29511970022828D-14 + 3 3 2 1 -0.34243983115253D+00 -0.16676447100829D-07 + 1 1 3 1 0.97672584839711D+00 0.00000000000000D+00 + 2 1 3 1 0.97672584839688D+00 0.00000000000000D+00 + 3 1 3 1 0.19534516967942D+01 0.00000000000000D+00 + 1 2 3 1 -0.34243983115256D+00 -0.16676438530152D-07 + 2 2 3 1 -0.34243983115256D+00 -0.16676438526165D-07 + 3 2 3 1 -0.68487966230487D+00 -0.33352877064420D-07 + 1 3 3 1 -0.34243983115256D+00 -0.16676447109723D-07 + 2 3 3 1 -0.34243983115253D+00 -0.16676447100829D-07 + 3 3 3 1 -0.68487966230488D+00 -0.33352894206164D-07 + 1 1 1 2 -0.29367350462563D-09 -0.31904437708758D-14 + 2 1 1 2 -0.34243983184450D+00 0.16676439782456D-07 + 3 1 1 2 -0.34243983115256D+00 0.16676438530152D-07 + 1 2 1 2 0.24343312617750D+01 0.00000000000000D+00 + 2 2 1 2 0.13016916698854D+01 0.00000000000000D+00 + 3 2 1 2 0.11326395915372D+01 0.00000000000000D+00 + 1 3 1 2 -0.41966352845513D+00 0.15135982213049D-09 + 2 3 1 2 -0.10814111241739D+01 0.37836164211222D-10 + 3 3 1 2 0.66174759498855D+00 0.11352365791927D-09 + 1 1 2 2 -0.34243983184450D+00 0.16676439782456D-07 + 2 1 2 2 0.60350327200445D-09 -0.11776646695005D-14 + 3 1 2 2 -0.34243983115256D+00 0.16676438526165D-07 + 1 2 2 2 0.13016916698854D+01 0.00000000000000D+00 + 2 2 2 2 0.24343312618987D+01 0.00000000000000D+00 + 3 2 2 2 0.11326395915374D+01 0.00000000000000D+00 + 1 3 2 2 -0.10814111241739D+01 0.37836164211222D-10 + 2 3 2 2 -0.41966352840126D+00 0.15135982213049D-09 + 3 3 2 2 0.66174759498855D+00 0.11352365791927D-09 + 1 1 3 2 -0.34243983115257D+00 0.16676438530152D-07 + 2 1 3 2 -0.34243983115256D+00 0.16676438526165D-07 + 3 1 3 2 -0.68487966230491D+00 0.33352877064420D-07 + 1 2 3 2 0.11326395915372D+01 0.00000000000000D+00 + 2 2 3 2 0.11326395915374D+01 0.00000000000000D+00 + 3 2 3 2 0.22652791830737D+01 0.00000000000000D+00 + 1 3 3 2 0.66174759498855D+00 0.11352365791927D-09 + 2 3 3 2 0.66174759498855D+00 0.11352365791927D-09 + 3 3 3 2 0.13234951899771D+01 0.22704731583853D-09 + 1 1 1 3 -0.29366520682668D-09 0.23292578326947D-14 + 2 1 1 3 -0.34243983184452D+00 0.16676447627863D-07 + 3 1 1 3 -0.34243983115256D+00 0.16676447109723D-07 + 1 2 1 3 -0.41966352845513D+00 0.15136250666988D-09 + 2 2 1 3 -0.10814111241739D+01 0.37844403165498D-10 + 3 2 1 3 0.66174759498855D+00 0.11351810350439D-09 + 1 3 1 3 0.24343312617750D+01 0.00000000000000D+00 + 2 3 1 3 0.13016916698853D+01 0.00000000000000D+00 + 3 3 1 3 0.11326395915372D+01 0.00000000000000D+00 + 1 1 2 3 -0.34243983184452D+00 0.16676447627863D-07 + 2 1 2 3 0.60351135040963D-09 0.29511970020760D-14 + 3 1 2 3 -0.34243983115253D+00 0.16676447100829D-07 + 1 2 2 3 -0.10814111241739D+01 0.37844403165498D-10 + 2 2 2 3 -0.41966352840126D+00 0.15136250666988D-09 + 3 2 2 3 0.66174759498855D+00 0.11351810350439D-09 + 1 3 2 3 0.13016916698853D+01 0.00000000000000D+00 + 2 3 2 3 0.24343312618987D+01 0.00000000000000D+00 + 3 3 2 3 0.11326395915374D+01 0.00000000000000D+00 + 1 1 3 3 -0.34243983115256D+00 0.16676447109723D-07 + 2 1 3 3 -0.34243983115253D+00 0.16676447100829D-07 + 3 1 3 3 -0.68487966230493D+00 0.33352894206164D-07 + 1 2 3 3 0.66174759498855D+00 0.11351810350439D-09 + 2 2 3 3 0.66174759498855D+00 0.11351810350439D-09 + 3 2 3 3 0.13234951899771D+01 0.22703620700877D-09 + 1 3 3 3 0.11326395915372D+01 0.00000000000000D+00 + 2 3 3 3 0.11326395915376D+01 0.00000000000000D+00 + 3 3 3 3 0.22652791830737D+01 0.00000000000000D+00 + + 2nd derivatives (non-stat.) - # elements : 72 + qpt 3.75000000E-01 2.50000000E-01 1.25000000E-01 1.0 + 1 1 1 1 0.49828768452185D+01 -0.11931318749363D-15 + 2 1 1 1 0.30992149664105D+01 -0.75465652050567D-08 + 3 1 1 1 0.18836618000578D+01 0.75480574831245D-08 + 1 2 1 1 0.14718825438291D+01 0.60967371924307D+00 + 2 2 1 1 0.71426596208134D+00 0.73222021577086D+00 + 3 2 1 1 0.44906305628401D+00 0.62237069347752D+00 + 1 3 1 1 -0.60967371924307D+00 -0.14718825438292D+01 + 2 3 1 1 -0.73222021577088D+00 -0.71426596208134D+00 + 3 3 1 1 -0.62236948111172D+00 -0.44906251499940D+00 + 1 1 2 1 0.30992149664105D+01 0.75465667498812D-08 + 2 1 2 1 0.35615655760439D+01 0.23516217895256D-15 + 3 1 2 1 0.17154283561981D+01 0.75555098914491D-08 + 1 2 2 1 0.85856272810287D+00 0.60016843481565D+00 + 2 2 2 1 0.98805192272711D+00 0.62104435645969D+00 + 3 2 2 1 0.36443724839320D+00 0.52341717604401D+00 + 1 3 2 1 -0.60016843481568D+00 -0.85856272810287D+00 + 2 3 2 1 -0.62104435645971D+00 -0.98805192272715D+00 + 3 3 2 1 -0.52341482065339D+00 -0.36443805058313D+00 + 1 1 3 1 0.18836618000576D+01 -0.75480600273209D-08 + 2 1 3 1 0.17154283561981D+01 -0.75555095823984D-08 + 1 2 3 1 0.44040345402137D+00 0.42696142710019D+00 + 2 2 3 1 0.31059364809752D+00 0.43709433069638D+00 + 1 3 3 1 -0.42696142710012D+00 -0.44040345402138D+00 + 2 3 3 1 -0.43709433069638D+00 -0.31059364809747D+00 + 1 1 1 2 0.14718825438291D+01 -0.60967371924307D+00 + 2 1 1 2 0.85856272810287D+00 -0.60016843481565D+00 + 3 1 1 2 0.44040345402137D+00 -0.42696142710019D+00 + 1 2 1 2 0.29338156988354D+01 -0.58463461871879D-16 + 2 2 1 2 0.15697639700813D+01 0.73060625005109D-01 + 3 2 1 2 0.13640517402649D+01 0.73060496236457D-01 + 1 3 1 2 -0.19630736182018D+00 -0.19630735967883D+00 + 2 3 1 2 -0.33385874307281D+00 -0.36666716625506D+00 + 3 3 1 2 0.17036004878028D+00 0.13755137529403D+00 + 1 1 2 2 0.71426596208134D+00 -0.73222021577086D+00 + 2 1 2 2 0.98805192272711D+00 -0.62104435645969D+00 + 3 1 2 2 0.31059364809752D+00 -0.43709433069638D+00 + 1 2 2 2 0.15697639700813D+01 -0.73060625005108D-01 + 2 2 2 2 0.25754704093508D+01 0.11522946768676D-15 + 3 2 2 2 0.12830553615022D+01 0.22442633195328D-01 + 1 3 2 2 -0.33385874307281D+00 -0.36666716625506D+00 + 2 3 2 2 0.19764128309359D+00 0.25870387143559D+00 + 3 3 2 2 0.39035736196643D+00 0.35754888940972D+00 + 1 1 3 2 0.44906305628401D+00 -0.62237069347752D+00 + 2 1 3 2 0.36443724839320D+00 -0.52341717604401D+00 + 1 2 3 2 0.13640517402650D+01 -0.73060496236459D-01 + 2 2 3 2 0.12830553615022D+01 -0.22442633195328D-01 + 1 3 3 2 0.17036004878028D+00 0.13755137529403D+00 + 2 3 3 2 0.39035736196643D+00 0.35754888940972D+00 + 1 1 1 3 -0.60967371924307D+00 0.14718825438292D+01 + 2 1 1 3 -0.60016843481568D+00 0.85856272810287D+00 + 3 1 1 3 -0.42696142710012D+00 0.44040345402138D+00 + 1 2 1 3 -0.19630736182018D+00 0.19630735967883D+00 + 2 2 1 3 -0.33385874307281D+00 0.36666716625506D+00 + 3 2 1 3 0.17036004878028D+00 -0.13755137529403D+00 + 1 3 1 3 0.29338156988354D+01 -0.58463461871879D-16 + 2 3 1 3 0.15697639700813D+01 -0.73060625005108D-01 + 3 3 1 3 0.13640517402649D+01 -0.73060496236459D-01 + 1 1 2 3 -0.73222021577088D+00 0.71426596208134D+00 + 2 1 2 3 -0.62104435645971D+00 0.98805192272715D+00 + 3 1 2 3 -0.43709433069638D+00 0.31059364809747D+00 + 1 2 2 3 -0.33385874307281D+00 0.36666716625506D+00 + 2 2 2 3 0.19764128309359D+00 -0.25870387143559D+00 + 3 2 2 3 0.39035736196643D+00 -0.35754888940972D+00 + 1 3 2 3 0.15697639700813D+01 0.73060625005109D-01 + 2 3 2 3 0.25754704093508D+01 0.11522946768676D-15 + 3 3 2 3 0.12830553615022D+01 -0.22442633195328D-01 + 1 1 3 3 -0.62236948111172D+00 0.44906251499940D+00 + 2 1 3 3 -0.52341482065339D+00 0.36443805058313D+00 + 1 2 3 3 0.17036004878028D+00 -0.13755137529403D+00 + 2 2 3 3 0.39035736196643D+00 -0.35754888940972D+00 + 1 3 3 3 0.13640517402650D+01 0.73060496236457D-01 + 2 3 3 3 0.12830553615022D+01 0.22442633195328D-01 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 2.50000000E-01 1.25000000E-01 1.0 + 1 1 1 1 0.43102939073788D+01 0.85707142074279D-16 + 2 1 1 1 0.22244188992588D+01 -0.41023613597124D-07 + 3 1 1 1 0.13999993480531D+01 -0.10744764837062D-07 + 1 2 1 1 0.42951572353545D+00 0.77936358798450D+00 + 2 2 1 1 -0.13407994433908D+00 0.57623030727469D+00 + 3 2 1 1 -0.15954418586323D+00 0.49699456867640D+00 + 1 3 1 1 -0.24737979733554D+00 -0.85480675881190D+00 + 2 3 1 1 -0.50226519566241D+00 -0.31264751993587D+00 + 3 3 1 1 -0.46424300544673D+00 -0.23861345400120D+00 + 1 1 2 1 0.22244188992590D+01 0.41023615026850D-07 + 2 1 2 1 0.29957732789208D+01 0.66525510323125D-15 + 3 1 2 1 0.14662373699423D+01 0.12722408036344D-08 + 1 2 2 1 0.16826480911710D+00 0.58557374259212D+00 + 2 2 2 1 0.15781000715545D+00 0.74557351529996D+00 + 3 2 2 1 -0.13471223781424D+00 0.40434607934677D+00 + 1 3 2 1 -0.29508197670990D+00 -0.53304435183345D+00 + 2 3 2 1 -0.41561156234297D+00 -0.63878861474043D+00 + 3 3 2 1 -0.38117179151957D+00 -0.19065991778505D+00 + 1 1 3 1 0.13999993480529D+01 0.10744764734100D-07 + 2 1 3 1 0.14662373699423D+01 -0.12722393839348D-08 + 3 1 3 1 0.22234047174802D+01 0.12224957759360D-15 + 1 2 3 1 -0.14285059732701D-01 0.37636166724046D+00 + 2 2 3 1 -0.14799917312628D+00 0.35196735652167D+00 + 3 2 3 1 -0.13647518019305D+00 0.73262585207479D+00 + 1 3 3 1 -0.27622894969104D+00 -0.25602682447776D+00 + 2 3 3 1 -0.35352972348038D+00 -0.14422728562519D+00 + 3 3 3 1 -0.61454723345280D+00 -0.42154218269652D+00 + 1 1 1 2 0.42951572353545D+00 -0.77936358798450D+00 + 2 1 1 2 0.16826480911710D+00 -0.58557374259212D+00 + 3 1 1 2 -0.14285059732701D-01 -0.37636166724046D+00 + 1 2 1 2 0.28140052150507D+01 0.41996499616397D-16 + 2 2 1 2 0.13636546270189D+01 0.94304252356712D-01 + 3 2 1 2 0.12681526363808D+01 0.67264287411271D-01 + 1 3 1 2 -0.46994943102080D+00 -0.29300758015929D+00 + 2 3 1 2 -0.54144563199254D+00 -0.24714615304675D+00 + 3 3 1 2 0.97702783330981D-01 0.14750881908443D-01 + 1 1 2 2 -0.13407994433908D+00 -0.57623030727469D+00 + 2 1 2 2 0.15781000715545D+00 -0.74557351529996D+00 + 3 1 2 2 -0.14799917312628D+00 -0.35196735652167D+00 + 1 2 2 2 0.13636546270189D+01 -0.94304252356711D-01 + 2 2 2 2 0.24391169679579D+01 0.32597500058331D-15 + 3 2 2 2 0.12123701141804D+01 0.10391451303565D-01 + 1 3 2 2 -0.54144563199254D+00 -0.24714615304675D+00 + 2 3 2 2 0.20637690408454D+00 0.92462668346812D-01 + 3 3 2 2 0.56412388660926D+00 0.20695896312211D+00 + 1 1 3 2 -0.15954418586323D+00 -0.49699456867640D+00 + 2 1 3 2 -0.13471223781424D+00 -0.40434607934677D+00 + 3 1 3 2 -0.13647518019305D+00 -0.73262585207479D+00 + 1 2 3 2 0.12681526363809D+01 -0.67264287411271D-01 + 2 2 3 2 0.12123701141804D+01 -0.10391451303564D-01 + 3 2 3 2 0.23536243040694D+01 0.59902293020864D-16 + 1 3 3 2 0.97702783330981D-01 0.14750881908443D-01 + 2 3 3 2 0.56412388660926D+00 0.20695896312211D+00 + 3 3 3 2 0.83409891093127D+00 0.23320885855287D+00 + 1 1 1 3 -0.24737979733554D+00 0.85480675881190D+00 + 2 1 1 3 -0.29508197670990D+00 0.53304435183345D+00 + 3 1 1 3 -0.27622894969104D+00 0.25602682447776D+00 + 1 2 1 3 -0.46994943102080D+00 0.29300758015929D+00 + 2 2 1 3 -0.54144563199254D+00 0.24714615304675D+00 + 3 2 1 3 0.97702783330981D-01 -0.14750881908443D-01 + 1 3 1 3 0.28140052150507D+01 0.41996499616397D-16 + 2 3 1 3 0.13636546270189D+01 -0.94304252356711D-01 + 3 3 1 3 0.12681526363808D+01 -0.67264287411271D-01 + 1 1 2 3 -0.50226519566241D+00 0.31264751993587D+00 + 2 1 2 3 -0.41561156234297D+00 0.63878861474043D+00 + 3 1 2 3 -0.35352972348038D+00 0.14422728562519D+00 + 1 2 2 3 -0.54144563199254D+00 0.24714615304675D+00 + 2 2 2 3 0.20637690408454D+00 -0.92462668346812D-01 + 3 2 2 3 0.56412388660926D+00 -0.20695896312211D+00 + 1 3 2 3 0.13636546270189D+01 0.94304252356712D-01 + 2 3 2 3 0.24391169679579D+01 0.32597500058331D-15 + 3 3 2 3 0.12123701141804D+01 -0.10391451303564D-01 + 1 1 3 3 -0.46424300544673D+00 0.23861345400120D+00 + 2 1 3 3 -0.38117179151957D+00 0.19065991778505D+00 + 3 1 3 3 -0.61454723345280D+00 0.42154218269652D+00 + 1 2 3 3 0.97702783330981D-01 -0.14750881908443D-01 + 2 2 3 3 0.56412388660926D+00 -0.20695896312211D+00 + 3 2 3 3 0.83409891093127D+00 -0.23320885855287D+00 + 1 3 3 3 0.12681526363809D+01 0.67264287411271D-01 + 2 3 3 3 0.12123701141804D+01 0.10391451303565D-01 + 3 3 3 3 0.23536243040694D+01 0.59902293020864D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 2.50000000E-01 1.25000000E-01 1.0 + 1 1 1 1 0.35003656203839D+01 -0.18538703783517D-15 + 2 1 1 1 0.14191203362452D+01 -0.63741670502512D-07 + 3 1 1 1 0.99092094125876D+00 -0.30154512494276D-07 + 1 2 1 1 -0.32479248748593D+00 0.20484912191588D+00 + 2 2 1 1 -0.39980679163863D+00 0.42228070758156D-01 + 3 2 1 1 -0.40006887996213D+00 0.75791970189808D-01 + 1 3 1 1 -0.32479248748593D+00 -0.20484912191585D+00 + 2 3 1 1 -0.39980679163863D+00 -0.42228070758171D-01 + 3 3 1 1 -0.40006887996211D+00 -0.75791970189809D-01 + 1 1 2 1 0.14191203362454D+01 0.63741671623909D-07 + 2 1 2 1 0.28382444562608D+01 -0.59307711554787D-15 + 3 1 2 1 0.14191242574739D+01 -0.13673558726779D-08 + 1 2 2 1 -0.16217304046633D+00 0.27986652259064D+00 + 2 2 2 1 -0.44203827210552D+00 0.44203785144296D+00 + 3 2 2 1 -0.36650817519817D+00 0.75530374880133D-01 + 1 3 2 1 -0.16217304046633D+00 -0.27986652259065D+00 + 2 3 2 1 -0.44203827210554D+00 -0.44203785144301D+00 + 3 3 2 1 -0.36650817519820D+00 -0.75530374880133D-01 + 1 1 3 1 0.99092094125854D+00 0.30154512880756D-07 + 2 1 3 1 0.14191242574739D+01 0.13673579692006D-08 + 3 1 3 1 0.22091777138517D+01 -0.30647138799412D-15 + 1 2 3 1 -0.22390163301724D+00 0.12030473105838D+00 + 2 2 3 1 -0.38346170934825D+00 0.58575964110535D-01 + 3 2 3 1 -0.63183617926252D+00 0.32390452427856D+00 + 1 3 3 1 -0.22390163301722D+00 -0.12030473105838D+00 + 2 3 3 1 -0.38346170934828D+00 -0.58575964110535D-01 + 3 3 3 1 -0.63183617926247D+00 -0.32390452427859D+00 + 1 1 1 2 -0.32479248748593D+00 -0.20484912191588D+00 + 2 1 1 2 -0.16217304046633D+00 -0.27986652259064D+00 + 3 1 1 2 -0.22390163301724D+00 -0.12030473105838D+00 + 1 2 1 2 0.26703658260096D+01 -0.90839648539233D-16 + 2 2 1 2 0.12023105388866D+01 0.96353557610536D-01 + 3 2 1 2 0.11936919041976D+01 0.51779613639616D-01 + 1 3 1 2 -0.72390751682952D+00 -0.11745236181501D+00 + 2 3 1 2 -0.72390839179383D+00 -0.40144970610179D-02 + 3 3 1 2 -0.97318174854905D-01 -0.49817705187345D-02 + 1 1 2 2 -0.39980679163863D+00 -0.42228070758156D-01 + 2 1 2 2 -0.44203827210552D+00 -0.44203785144296D+00 + 3 1 2 2 -0.38346170934825D+00 -0.58575964110535D-01 + 1 2 2 2 0.12023105388866D+01 -0.96353557610536D-01 + 2 2 2 2 0.24045618973144D+01 -0.29060778661845D-15 + 3 2 2 2 0.12022514889795D+01 0.72040104725370D-02 + 1 3 2 2 -0.72390839179383D+00 -0.40144970610179D-02 + 2 3 2 2 -0.21042429887689D-05 -0.80276889532467D-02 + 3 3 2 2 0.52927189763368D+00 -0.40135518306903D-02 + 1 1 3 2 -0.40006887996213D+00 -0.75791970189808D-01 + 2 1 3 2 -0.36650817519817D+00 -0.75530374880133D-01 + 3 1 3 2 -0.63183617926252D+00 -0.32390452427856D+00 + 1 2 3 2 0.11936919041977D+01 -0.51779613639615D-01 + 2 2 3 2 0.12022514889795D+01 -0.72040104725360D-02 + 3 2 3 2 0.23605527070517D+01 -0.15017098011712D-15 + 1 3 3 2 -0.97318174854905D-01 -0.49817705187345D-02 + 2 3 3 2 0.52927189763368D+00 -0.40135518306903D-02 + 3 3 3 2 0.52927124743531D+00 -0.87742245719053D-01 + 1 1 1 3 -0.32479248748593D+00 0.20484912191585D+00 + 2 1 1 3 -0.16217304046633D+00 0.27986652259065D+00 + 3 1 1 3 -0.22390163301722D+00 0.12030473105838D+00 + 1 2 1 3 -0.72390751682952D+00 0.11745236181501D+00 + 2 2 1 3 -0.72390839179383D+00 0.40144970610179D-02 + 3 2 1 3 -0.97318174854905D-01 0.49817705187345D-02 + 1 3 1 3 0.26703658260096D+01 -0.90839648539233D-16 + 2 3 1 3 0.12023105388866D+01 -0.96353557610536D-01 + 3 3 1 3 0.11936919041976D+01 -0.51779613639615D-01 + 1 1 2 3 -0.39980679163863D+00 0.42228070758171D-01 + 2 1 2 3 -0.44203827210554D+00 0.44203785144301D+00 + 3 1 2 3 -0.38346170934828D+00 0.58575964110535D-01 + 1 2 2 3 -0.72390839179383D+00 0.40144970610179D-02 + 2 2 2 3 -0.21042429887689D-05 0.80276889532467D-02 + 3 2 2 3 0.52927189763368D+00 0.40135518306903D-02 + 1 3 2 3 0.12023105388866D+01 0.96353557610536D-01 + 2 3 2 3 0.24045618973144D+01 -0.29060778661845D-15 + 3 3 2 3 0.12022514889796D+01 -0.72040104725360D-02 + 1 1 3 3 -0.40006887996211D+00 0.75791970189809D-01 + 2 1 3 3 -0.36650817519820D+00 0.75530374880133D-01 + 3 1 3 3 -0.63183617926247D+00 0.32390452427859D+00 + 1 2 3 3 -0.97318174854905D-01 0.49817705187345D-02 + 2 2 3 3 0.52927189763368D+00 0.40135518306903D-02 + 3 2 3 3 0.52927124743531D+00 0.87742245719053D-01 + 1 3 3 3 0.11936919041977D+01 0.51779613639616D-01 + 2 3 3 3 0.12022514889796D+01 0.72040104725370D-02 + 3 3 3 3 0.23605527070517D+01 -0.15017098011712D-15 + + 2nd derivatives (non-stat.) - # elements : 72 + qpt 5.00000000E-01 3.75000000E-01 1.25000000E-01 1.0 + 1 1 1 1 0.42446348354615D+01 0.87941869621119D-16 + 2 1 1 1 0.29121339642627D+01 -0.57128512870936D-08 + 3 1 1 1 0.13325018495721D+01 0.56648149621186D-08 + 1 2 1 1 0.18401978242720D-06 0.68197315912055D+00 + 2 2 1 1 -0.38007583168710D+00 0.40141241514069D+00 + 3 2 1 1 -0.38007652322803D+00 0.28056182579928D+00 + 1 3 1 1 0.18401978427249D-06 -0.68197315912055D+00 + 2 3 1 1 -0.38007583168711D+00 -0.40141241514073D+00 + 3 3 1 1 -0.38007603426395D+00 -0.28056073557583D+00 + 1 1 2 1 0.29121339642627D+01 0.57128508613680D-08 + 2 1 2 1 0.37786615001278D+01 0.12042973756490D-15 + 3 1 2 1 0.14567617262001D+01 0.56844100193907D-08 + 1 2 2 1 -0.24181455187328D+00 0.53507160632852D+00 + 2 2 2 1 -0.80022058287716D-01 0.64284545675383D+00 + 3 2 2 1 -0.33389628409165D+00 0.25297973597568D+00 + 1 3 2 1 -0.24181455187330D+00 -0.53507160632856D+00 + 2 3 2 1 -0.80022058287706D-01 -0.64284545675381D+00 + 3 3 2 1 -0.33389488990650D+00 -0.25297968507477D+00 + 1 1 3 1 0.13325018495718D+01 -0.56648141209357D-08 + 2 1 3 1 0.14567617262001D+01 -0.56844118181189D-08 + 1 2 3 1 -0.24181428971246D+00 0.14690139952652D+00 + 2 2 3 1 -0.28799613770794D+00 0.11932019513392D+00 + 1 3 3 1 -0.24181428971253D+00 -0.14690139952652D+00 + 2 3 3 1 -0.28799613770796D+00 -0.11932019513394D+00 + 1 1 1 2 0.18401978242720D-06 -0.68197315912055D+00 + 2 1 1 2 -0.24181455187328D+00 -0.53507160632852D+00 + 3 1 1 2 -0.24181428971246D+00 -0.14690139952652D+00 + 1 2 1 2 0.26521762118568D+01 0.43091516114348D-16 + 2 2 1 2 0.14062404860608D+01 0.54431362281779D-01 + 3 2 1 2 0.12459358667522D+01 0.54431225322175D-01 + 1 3 1 2 -0.51259087358970D+00 0.83562847055390D-09 + 2 3 1 2 -0.88512122450254D+00 0.75763236733663D-02 + 3 3 1 2 0.37253026310604D+00 0.75760935896173D-02 + 1 1 2 2 -0.38007583168710D+00 -0.40141241514069D+00 + 2 1 2 2 -0.80022058287716D-01 -0.64284545675383D+00 + 3 1 2 2 -0.28799613770794D+00 -0.11932019513392D+00 + 1 2 2 2 0.14062404860608D+01 -0.54431362281779D-01 + 2 2 2 2 0.24997432548980D+01 0.59010571406803D-16 + 3 2 2 2 0.12192712247587D+01 0.29136289126524D-01 + 1 3 2 2 -0.88512122450254D+00 0.75763236733663D-02 + 2 3 2 2 -0.10941648872848D+00 0.88958941907757D-01 + 3 3 2 2 0.64487102322647D+00 0.75763230742036D-02 + 1 1 3 2 -0.38007652322803D+00 -0.28056182579928D+00 + 2 1 3 2 -0.33389628409165D+00 -0.25297973597568D+00 + 1 2 3 2 0.12459358667523D+01 -0.54431225322175D-01 + 2 2 3 2 0.12192712247587D+01 -0.29136289126525D-01 + 1 3 3 2 0.37253026310604D+00 0.75760935896173D-02 + 2 3 3 2 0.64487102322647D+00 0.75763230742036D-02 + 1 1 1 3 0.18401978427249D-06 0.68197315912055D+00 + 2 1 1 3 -0.24181455187330D+00 0.53507160632856D+00 + 3 1 1 3 -0.24181428971253D+00 0.14690139952652D+00 + 1 2 1 3 -0.51259087358970D+00 -0.83562847055390D-09 + 2 2 1 3 -0.88512122450254D+00 -0.75763236733663D-02 + 3 2 1 3 0.37253026310604D+00 -0.75760935896173D-02 + 1 3 1 3 0.26521762118568D+01 0.43091516114348D-16 + 2 3 1 3 0.14062404860608D+01 -0.54431362281779D-01 + 3 3 1 3 0.12459358667522D+01 -0.54431225322175D-01 + 1 1 2 3 -0.38007583168711D+00 0.40141241514073D+00 + 2 1 2 3 -0.80022058287706D-01 0.64284545675381D+00 + 3 1 2 3 -0.28799613770796D+00 0.11932019513394D+00 + 1 2 2 3 -0.88512122450254D+00 -0.75763236733663D-02 + 2 2 2 3 -0.10941648872848D+00 -0.88958941907757D-01 + 3 2 2 3 0.64487102322647D+00 -0.75763230742036D-02 + 1 3 2 3 0.14062404860608D+01 0.54431362281779D-01 + 2 3 2 3 0.24997432548980D+01 0.59010571406803D-16 + 3 3 2 3 0.12192712247587D+01 -0.29136289126525D-01 + 1 1 3 3 -0.38007603426395D+00 0.28056073557583D+00 + 2 1 3 3 -0.33389488990650D+00 0.25297968507477D+00 + 1 2 3 3 0.37253026310604D+00 -0.75760935896173D-02 + 2 2 3 3 0.64487102322647D+00 -0.75763230742036D-02 + 1 3 3 3 0.12459358667523D+01 0.54431225322175D-01 + 2 3 3 3 0.12192712247587D+01 0.29136289126524D-01 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 3.75000000E-01 1.25000000E-01 1.0 + 1 1 1 1 0.35573735716748D+01 -0.40875413135132D-15 + 2 1 1 1 0.21181343884798D+01 -0.23597861034164D-07 + 3 1 1 1 0.10057040787806D+01 -0.85339911958056D-08 + 1 2 1 1 -0.17795486314193D+00 0.22517949560123D-01 + 2 2 1 1 -0.30726299662568D+00 -0.21304339063449D+00 + 3 2 1 1 -0.34459400453669D+00 -0.15556225417767D+00 + 1 3 1 1 -0.10991049564039D+00 -0.14175568530517D+00 + 2 3 1 1 -0.36791217472634D+00 -0.66623322317111D-01 + 3 3 1 1 -0.35366388218980D+00 -0.13366563253843D+00 + 1 1 2 1 0.21181343884798D+01 0.23597862735609D-07 + 2 1 2 1 0.34696454104546D+01 0.62464244550261D-15 + 3 1 2 1 0.13943857657589D+01 0.41450008124994D-08 + 1 2 2 1 -0.30743781933657D+00 0.76092754846846D-01 + 2 2 2 1 -0.33375036595076D+00 0.14136743919299D+00 + 3 2 2 1 -0.29151156456391D+00 -0.13090934535118D+00 + 1 3 2 1 -0.16358566389473D+00 -0.27119706979748D+00 + 2 3 2 1 -0.13603527209493D+00 -0.33595902187961D+00 + 3 3 2 1 -0.29869668991599D+00 -0.11356291827895D+00 + 1 1 3 1 0.10057040787804D+01 0.85339921804313D-08 + 2 1 3 1 0.13943857657589D+01 -0.41450020526661D-08 + 3 1 3 1 0.21887575418718D+01 -0.10885868611763D-15 + 1 2 3 1 -0.20370287563936D+00 -0.13974330615586D+00 + 2 2 3 1 -0.27388515375279D+00 -0.21062464809963D+00 + 3 2 3 1 -0.60629184869343D+00 -0.18700853931409D+00 + 1 3 3 1 -0.24285312412001D+00 -0.45226245303562D-01 + 2 3 3 1 -0.34260016644124D+00 -0.44731932528651D-01 + 3 3 3 1 -0.56094808387805D+00 -0.29647807130047D+00 + 1 1 1 2 -0.17795486314193D+00 -0.22517949560123D-01 + 2 1 1 2 -0.30743781933657D+00 -0.76092754846846D-01 + 3 1 1 2 -0.20370287563936D+00 0.13974330615586D+00 + 1 2 1 2 0.25536866333998D+01 -0.20028952436215D-15 + 2 2 1 2 0.12539740232937D+01 0.78469558144834D-01 + 3 2 1 2 0.11982185898814D+01 0.41676084911354D-01 + 1 3 1 2 -0.67205147755895D+00 0.22313978696883D+00 + 2 3 1 2 -0.86213662890583D+00 0.38856093345737D+00 + 3 3 1 2 0.19219366815921D+00 -0.49276794222311D-01 + 1 1 2 2 -0.30726299662568D+00 0.21304339063449D+00 + 2 1 2 2 -0.33375036595076D+00 -0.14136743919299D+00 + 3 1 2 2 -0.27388515375279D+00 0.21062464809963D+00 + 1 2 2 2 0.12539740232937D+01 -0.78469558144833D-01 + 2 2 2 2 0.24348141039964D+01 0.30607479829628D-15 + 3 2 2 2 0.11888676307833D+01 0.21384615090459D-01 + 1 3 2 2 -0.86213662890583D+00 0.38856093345737D+00 + 2 3 2 2 -0.93142597495831D-01 0.14511559319263D+00 + 3 3 2 2 0.63683705165843D+00 -0.23336045250597D+00 + 1 1 3 2 -0.34459400453669D+00 0.15556225417767D+00 + 2 1 3 2 -0.29151156456391D+00 0.13090934535118D+00 + 3 1 3 2 -0.60629184869343D+00 0.18700853931409D+00 + 1 2 3 2 0.11982185898815D+01 -0.41676084911353D-01 + 2 2 3 2 0.11888676307833D+01 -0.21384615090460D-01 + 3 2 3 2 0.23461329229290D+01 -0.53340756197640D-16 + 1 3 3 2 0.19219366815921D+00 -0.49276794222311D-01 + 2 3 3 2 0.63683705165843D+00 -0.23336045250597D+00 + 3 3 3 2 0.84182548894527D+00 -0.39701916486445D+00 + 1 1 1 3 -0.10991049564039D+00 0.14175568530517D+00 + 2 1 1 3 -0.16358566389473D+00 0.27119706979748D+00 + 3 1 1 3 -0.24285312412001D+00 0.45226245303562D-01 + 1 2 1 3 -0.67205147755895D+00 -0.22313978696883D+00 + 2 2 1 3 -0.86213662890583D+00 -0.38856093345737D+00 + 3 2 1 3 0.19219366815921D+00 0.49276794222311D-01 + 1 3 1 3 0.25536866333998D+01 -0.20028952436215D-15 + 2 3 1 3 0.12539740232937D+01 -0.78469558144833D-01 + 3 3 1 3 0.11982185898814D+01 -0.41676084911353D-01 + 1 1 2 3 -0.36791217472634D+00 0.66623322317111D-01 + 2 1 2 3 -0.13603527209493D+00 0.33595902187961D+00 + 3 1 2 3 -0.34260016644124D+00 0.44731932528651D-01 + 1 2 2 3 -0.86213662890583D+00 -0.38856093345737D+00 + 2 2 2 3 -0.93142597495831D-01 -0.14511559319263D+00 + 3 2 2 3 0.63683705165843D+00 0.23336045250597D+00 + 1 3 2 3 0.12539740232937D+01 0.78469558144834D-01 + 2 3 2 3 0.24348141039964D+01 0.30607479829628D-15 + 3 3 2 3 0.11888676307834D+01 -0.21384615090460D-01 + 1 1 3 3 -0.35366388218980D+00 0.13366563253843D+00 + 2 1 3 3 -0.29869668991599D+00 0.11356291827895D+00 + 3 1 3 3 -0.56094808387805D+00 0.29647807130047D+00 + 1 2 3 3 0.19219366815921D+00 0.49276794222311D-01 + 2 2 3 3 0.63683705165843D+00 0.23336045250597D+00 + 3 2 3 3 0.84182548894527D+00 0.39701916486445D+00 + 1 3 3 3 0.11982185898815D+01 0.41676084911354D-01 + 2 3 3 3 0.11888676307834D+01 0.21384615090459D-01 + 3 3 3 3 0.23461329229290D+01 -0.53340756197640D-16 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -2.50000000E-01 3.75000000E-01 1.25000000E-01 1.0 + 1 1 1 1 0.27969369115253D+01 -0.81429534041784D-15 + 2 1 1 1 0.13176354858465D+01 -0.15400069087952D-07 + 3 1 1 1 0.78291574596892D+00 -0.15334426805032D-07 + 1 2 1 1 0.16261035879678D+00 -0.44437447920489D+00 + 2 2 1 1 0.10878666925443D+00 -0.36811743617615D+00 + 3 2 1 1 -0.36576225348968D-01 -0.36520079871806D+00 + 1 3 1 1 -0.44437447920489D+00 0.16261035879679D+00 + 2 3 1 1 -0.36811743617611D+00 0.10878666925444D+00 + 3 3 1 1 -0.36520079871805D+00 -0.36576225348962D-01 + 1 1 2 1 0.13176354858465D+01 0.15400068638177D-07 + 2 1 2 1 0.34496443308603D+01 0.28580314695095D-15 + 3 1 2 1 0.14356220828240D+01 0.15337112771511D-07 + 1 2 2 1 -0.10274933586800D+00 -0.17562426377014D+00 + 2 2 2 1 -0.26233775091138D+00 -0.35470926859691D+00 + 3 2 2 1 -0.30028104156018D-01 -0.34939400801104D+00 + 1 3 2 1 -0.17562426377011D+00 -0.10274933586799D+00 + 2 3 2 1 -0.35470926859691D+00 -0.26233775091137D+00 + 3 3 2 1 -0.34939400801106D+00 -0.30028104156019D-01 + 1 1 3 1 0.78291574596869D+00 0.15334426316496D-07 + 2 1 3 1 0.14356220828240D+01 -0.15337115135297D-07 + 3 1 3 1 0.22185377636579D+01 -0.32773383989846D-15 + 1 2 3 1 0.21013168400891D-02 -0.27634854895880D+00 + 2 2 3 1 -0.65507708904806D-01 -0.43957103764792D+00 + 3 2 3 1 -0.26240151479533D+00 -0.63349359197763D+00 + 1 3 3 1 -0.27634854895879D+00 0.21013168400954D-02 + 2 3 3 1 -0.43957103764794D+00 -0.65507708904807D-01 + 3 3 3 1 -0.63349359197764D+00 -0.26240151479533D+00 + 1 1 1 2 0.16261035879678D+00 0.44437447920489D+00 + 2 1 1 2 -0.10274933586800D+00 0.17562426377014D+00 + 3 1 1 2 0.21013168400891D-02 0.27634854895880D+00 + 1 2 1 2 0.24490543448308D+01 -0.39900471680474D-15 + 2 2 1 2 0.11393653419323D+01 0.86492682525627D-01 + 3 2 1 2 0.11622373203151D+01 0.24319103682576D-01 + 1 3 1 2 -0.56896082049269D+00 0.55653500505545D+00 + 2 3 1 2 -0.60994385679511D+00 0.68706128867321D+00 + 3 3 1 2 0.18836097152026D-01 0.58282553721339D-01 + 1 1 2 2 0.10878666925443D+00 0.36811743617615D+00 + 2 1 2 2 -0.26233775091138D+00 0.35470926859691D+00 + 3 1 2 2 -0.65507708904806D-01 0.43957103764792D+00 + 1 2 2 2 0.11393653419323D+01 -0.86492682525627D-01 + 2 2 2 2 0.24834422663509D+01 0.14004354200597D-15 + 3 2 2 2 0.11966256432422D+01 0.24319093653674D-01 + 1 3 2 2 -0.60994385679511D+00 0.68706128867321D+00 + 2 3 2 2 -0.40524790906290D-01 0.20718564151959D+00 + 3 3 2 2 0.45772879877716D+00 -0.38061015984207D+00 + 1 1 3 2 -0.36576225348968D-01 0.36520079871806D+00 + 2 1 3 2 -0.30028104156018D-01 0.34939400801104D+00 + 3 1 3 2 -0.26240151479533D+00 0.63349359197763D+00 + 1 2 3 2 0.11622373203152D+01 -0.24319103682577D-01 + 2 2 3 2 0.11966256432422D+01 -0.24319093653675D-01 + 3 2 3 2 0.23588631375453D+01 -0.16058958155025D-15 + 1 3 3 2 0.18836097152026D-01 0.58282553721339D-01 + 2 3 3 2 0.45772879877716D+00 -0.38061015984207D+00 + 3 3 3 2 0.39944741130038D+00 -0.39944741310331D+00 + 1 1 1 3 -0.44437447920489D+00 -0.16261035879679D+00 + 2 1 1 3 -0.17562426377011D+00 0.10274933586799D+00 + 3 1 1 3 -0.27634854895879D+00 -0.21013168400954D-02 + 1 2 1 3 -0.56896082049269D+00 -0.55653500505545D+00 + 2 2 1 3 -0.60994385679511D+00 -0.68706128867321D+00 + 3 2 1 3 0.18836097152026D-01 -0.58282553721339D-01 + 1 3 1 3 0.24490543448310D+01 -0.39900471680474D-15 + 2 3 1 3 0.11393653419323D+01 -0.86492682525627D-01 + 3 3 1 3 0.11622373203151D+01 -0.24319103682577D-01 + 1 1 2 3 -0.36811743617611D+00 -0.10878666925444D+00 + 2 1 2 3 -0.35470926859691D+00 0.26233775091137D+00 + 3 1 2 3 -0.43957103764794D+00 0.65507708904807D-01 + 1 2 2 3 -0.60994385679511D+00 -0.68706128867321D+00 + 2 2 2 3 -0.40524790906290D-01 -0.20718564151959D+00 + 3 2 2 3 0.45772879877716D+00 0.38061015984207D+00 + 1 3 2 3 0.11393653419323D+01 0.86492682525627D-01 + 2 3 2 3 0.24834422663509D+01 0.14004354200597D-15 + 3 3 2 3 0.11966256432423D+01 -0.24319093653675D-01 + 1 1 3 3 -0.36520079871805D+00 0.36576225348962D-01 + 2 1 3 3 -0.34939400801106D+00 0.30028104156019D-01 + 3 1 3 3 -0.63349359197764D+00 0.26240151479533D+00 + 1 2 3 3 0.18836097152026D-01 -0.58282553721339D-01 + 2 2 3 3 0.45772879877716D+00 0.38061015984207D+00 + 3 2 3 3 0.39944741130038D+00 0.39944741310331D+00 + 1 3 3 3 0.11622373203152D+01 0.24319103682576D-01 + 2 3 3 3 0.11966256432423D+01 0.24319093653674D-01 + 3 3 3 3 0.23588631375453D+01 -0.16058958155025D-15 + + 2nd derivatives (non-stat.) - # elements : 72 + qpt -3.75000000E-01 5.00000000E-01 1.25000000E-01 1.0 + 1 1 1 1 0.36243926566003D+01 0.31598067329818D-15 + 2 1 1 1 0.26421352840341D+01 -0.18288800733526D-10 + 3 1 1 1 0.98225746219327D+00 0.12898617035905D-09 + 1 2 1 1 0.86333933962131D-01 -0.35760375049318D-01 + 2 2 1 1 -0.72361897797343D-02 -0.33491194722293D+00 + 3 2 1 1 -0.14536861952197D+00 -0.27769495148571D+00 + 1 3 1 1 -0.35760375049315D-01 0.86333933962117D-01 + 2 3 1 1 -0.33491194722289D+00 -0.72361897797272D-02 + 3 3 1 1 -0.27769514588352D+00 -0.14536750771006D+00 + 1 1 2 1 0.26421352840341D+01 0.18288360736011D-10 + 2 1 2 1 0.38408829322871D+01 0.36583247278187D-16 + 3 1 2 1 0.11987477848375D+01 0.38339586382128D-10 + 1 2 2 1 -0.12903766483965D+00 -0.23827050899171D+00 + 2 2 2 1 -0.27816277184591D-07 0.31932218745463D-07 + 3 2 2 1 -0.12903766487880D+00 -0.23827050823839D+00 + 1 3 2 1 -0.23827050899167D+00 -0.12903766483964D+00 + 2 3 2 1 0.31932228896807D-07 -0.27816272499547D-07 + 3 3 2 1 -0.23827050823834D+00 -0.12903766487880D+00 + 1 1 3 1 0.98225746219305D+00 -0.12898588330654D-09 + 2 1 3 1 0.11987477848375D+01 -0.38339718196066D-10 + 1 2 3 1 0.90946676145914D-02 -0.29548626393488D+00 + 2 2 3 1 -0.72361971433546D-02 -0.33491195019810D+00 + 1 3 3 1 -0.29548626393482D+00 0.90946676145919D-02 + 2 3 3 1 -0.33491195019805D+00 -0.72361971433537D-02 + 1 1 1 2 0.86333933962131D-01 0.35760375049318D-01 + 2 1 1 2 -0.12903766483965D+00 0.23827050899171D+00 + 3 1 1 2 0.90946676145914D-02 0.29548626393488D+00 + 1 2 1 2 0.24531544494869D+01 0.15483052991611D-15 + 2 2 1 2 0.12803556694641D+01 0.37138204938583D-01 + 3 2 1 2 0.11727981300455D+01 0.37137883960718D-01 + 1 3 1 2 -0.39602761522109D+00 0.39602761372143D+00 + 2 3 1 2 -0.68434798245630D+00 0.76078978739312D+00 + 3 3 1 2 0.36476182897678D+00 -0.28832043383975D+00 + 1 1 2 2 -0.72361897797343D-02 0.33491194722293D+00 + 2 1 2 2 -0.27816277184591D-07 -0.31932218745463D-07 + 3 1 2 2 -0.72361971433546D-02 0.33491195019810D+00 + 1 2 2 2 0.12803556694641D+01 -0.37138204938583D-01 + 2 2 2 2 0.24413339384896D+01 0.17925791166312D-16 + 3 2 2 2 0.11609782861656D+01 0.37138186712823D-01 + 1 3 2 2 -0.68434798245630D+00 0.76078978739312D+00 + 2 3 2 2 -0.13318192875113D+00 0.28606551694172D+00 + 3 3 2 2 0.55116604975383D+00 -0.47472427126272D+00 + 1 1 3 2 -0.14536861952197D+00 0.27769495148571D+00 + 2 1 3 2 -0.12903766487880D+00 0.23827050823839D+00 + 1 2 3 2 0.11727981300456D+01 -0.37137883960718D-01 + 2 2 3 2 0.11609782861656D+01 -0.37138186712823D-01 + 1 3 3 2 0.36476182897678D+00 -0.28832043383975D+00 + 2 3 3 2 0.55116604975383D+00 -0.47472427126272D+00 + 1 1 1 3 -0.35760375049315D-01 -0.86333933962117D-01 + 2 1 1 3 -0.23827050899167D+00 0.12903766483964D+00 + 3 1 1 3 -0.29548626393482D+00 -0.90946676145919D-02 + 1 2 1 3 -0.39602761522109D+00 -0.39602761372143D+00 + 2 2 1 3 -0.68434798245630D+00 -0.76078978739312D+00 + 3 2 1 3 0.36476182897678D+00 0.28832043383975D+00 + 1 3 1 3 0.24531544494869D+01 0.15483052991611D-15 + 2 3 1 3 0.12803556694641D+01 -0.37138204938583D-01 + 3 3 1 3 0.11727981300455D+01 -0.37137883960718D-01 + 1 1 2 3 -0.33491194722289D+00 0.72361897797272D-02 + 2 1 2 3 0.31932228896807D-07 0.27816272499547D-07 + 3 1 2 3 -0.33491195019805D+00 0.72361971433537D-02 + 1 2 2 3 -0.68434798245630D+00 -0.76078978739312D+00 + 2 2 2 3 -0.13318192875113D+00 -0.28606551694172D+00 + 3 2 2 3 0.55116604975383D+00 0.47472427126272D+00 + 1 3 2 3 0.12803556694641D+01 0.37138204938583D-01 + 2 3 2 3 0.24413339384896D+01 0.17925791166312D-16 + 3 3 2 3 0.11609782861657D+01 -0.37138186712823D-01 + 1 1 3 3 -0.27769514588352D+00 0.14536750771006D+00 + 2 1 3 3 -0.23827050823834D+00 0.12903766487880D+00 + 1 2 3 3 0.36476182897678D+00 0.28832043383975D+00 + 2 2 3 3 0.55116604975383D+00 0.47472427126272D+00 + 1 3 3 3 0.11727981300456D+01 0.37137883960718D-01 + 2 3 3 3 0.11609782861657D+01 0.37138186712823D-01 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -2.50000000E-01 5.00000000E-01 2.50000000E-01 1.0 + 1 1 1 1 0.28150671329108D+01 0.67938318305625D-11 + 2 1 1 1 0.18272820943266D+01 0.82869279436723D-13 + 3 1 1 1 0.98778483031288D+00 0.67940469092580D-11 + 1 2 1 1 0.23352039949730D+00 0.23352039910556D+00 + 2 2 1 1 0.32739273564729D+00 0.13055391705168D-05 + 3 2 1 1 0.23352039912422D+00 -0.93873617505025D-01 + 1 3 1 1 -0.23352039949728D+00 0.23352039910554D+00 + 2 3 1 1 -0.32739273564728D+00 0.13055391758342D-05 + 3 3 1 1 -0.23352039912425D+00 -0.93873617505017D-01 + 1 1 2 1 0.18272820943266D+01 -0.84054889839662D-13 + 2 1 2 1 0.36545678915913D+01 0.73102423608669D-17 + 3 1 2 1 0.18272859353951D+01 -0.13049615005387D-10 + 1 2 2 1 0.13964678146444D+00 0.37301273383419D-09 + 2 2 2 1 -0.31998192646694D-07 -0.29081735970503D-07 + 3 2 2 1 0.13964678067325D+00 0.44398486755361D-09 + 1 3 2 1 -0.13964678146443D+00 0.37302660398346D-09 + 2 3 2 1 0.31998198290708D-07 -0.29081732096654D-07 + 3 3 2 1 -0.13964678067326D+00 0.44398640420017D-09 + 1 1 3 1 0.98778483031265D+00 0.67940469092580D-11 + 2 1 3 1 0.18272859353951D+01 0.13050012801775D-10 + 3 1 3 1 0.28150671337203D+01 0.67951051052697D-11 + 1 2 3 1 0.23352039912422D+00 0.93873618633691D-01 + 2 2 3 1 0.32739273108497D+00 0.12978980870064D-05 + 3 2 3 1 0.23352039868022D+00 -0.23352039817824D+00 + 1 3 3 1 -0.23352039912423D+00 0.93873618633701D-01 + 2 3 3 1 -0.32739273108499D+00 0.12978980816210D-05 + 3 3 3 1 -0.23352039868025D+00 -0.23352039817821D+00 + 1 1 1 2 0.23352068696133D+00 -0.23352068656960D+00 + 2 1 1 2 0.13964706892849D+00 -0.37301258830467D-09 + 3 1 1 2 0.23352068658826D+00 -0.93873618633696D-01 + 1 2 1 2 0.24352464926205D+01 -0.19013842186600D-15 + 2 2 1 2 0.12242003588831D+01 0.52463010384000D-01 + 3 2 1 2 0.12110456572414D+01 0.52462335622148D-01 + 1 3 1 2 -0.11548035526811D-14 0.87569323224357D+00 + 2 3 1 2 0.76364346358351D-01 0.87569323227416D+00 + 3 3 1 2 0.76364346358353D-01 0.42331637038269D-09 + 1 1 2 2 0.32739273564729D+00 -0.13055391705168D-05 + 2 1 2 2 -0.31998192646694D-07 0.29081735970503D-07 + 3 1 2 2 0.32739273108497D+00 -0.12978980870064D-05 + 1 2 2 2 0.12242003588831D+01 -0.52463010384001D-01 + 2 2 2 2 0.24483428004999D+01 0.35820187568248D-17 + 3 2 2 2 0.12241424650188D+01 0.52463011729874D-01 + 1 3 2 2 0.76364346358351D-01 0.87569323227416D+00 + 2 3 2 2 0.15272869271671D+00 0.57994061482576D-11 + 3 3 2 2 0.76364346358354D-01 -0.87569323143533D+00 + 1 1 3 2 0.23352068658826D+00 0.93873617505030D-01 + 2 1 3 2 0.13964706813728D+00 -0.44398438722246D-09 + 3 1 3 2 0.23352068614426D+00 0.23352068564228D+00 + 1 2 3 2 0.12110456572415D+01 -0.52462335622148D-01 + 2 2 3 2 0.12241424650188D+01 -0.52463011729874D-01 + 3 2 3 2 0.24352464921833D+01 0.43376618465657D-15 + 1 3 3 2 0.76364346358353D-01 0.42331637155168D-09 + 2 3 3 2 0.76364346358354D-01 -0.87569323143533D+00 + 3 3 3 2 -0.57595073384761D-15 -0.87569323139115D+00 + 1 1 1 3 -0.23352068696133D+00 -0.23352068656958D+00 + 2 1 1 3 -0.13964706892848D+00 -0.37302586133454D-09 + 3 1 1 3 -0.23352068658827D+00 -0.93873618633704D-01 + 1 2 1 3 -0.11548035526811D-14 -0.87569323224357D+00 + 2 2 1 3 0.76364346358351D-01 -0.87569323227416D+00 + 3 2 1 3 0.76364346358353D-01 -0.42331637038269D-09 + 1 3 1 3 0.24352464926205D+01 -0.19013842186600D-15 + 2 3 1 3 0.12242003588831D+01 -0.52463010384001D-01 + 3 3 1 3 0.12110456572414D+01 -0.52462335622148D-01 + 1 1 2 3 -0.32739273564728D+00 -0.13055391758342D-05 + 2 1 2 3 0.31998198290708D-07 0.29081732096654D-07 + 3 1 2 3 -0.32739273108499D+00 -0.12978980816210D-05 + 1 2 2 3 0.76364346358351D-01 -0.87569323227416D+00 + 2 2 2 3 0.15272869271671D+00 -0.57994061482576D-11 + 3 2 2 3 0.76364346358354D-01 0.87569323143533D+00 + 1 3 2 3 0.12242003588831D+01 0.52463010384000D-01 + 2 3 2 3 0.24483428004999D+01 0.35820187568248D-17 + 3 3 2 3 0.12241424650189D+01 -0.52463011729874D-01 + 1 1 3 3 -0.23352068658828D+00 0.93873617505021D-01 + 2 1 3 3 -0.13964706813730D+00 -0.44398695738971D-09 + 3 1 3 3 -0.23352068614429D+00 0.23352068564226D+00 + 1 2 3 3 0.76364346358353D-01 -0.42331637155168D-09 + 2 2 3 3 0.76364346358354D-01 0.87569323143533D+00 + 3 2 3 3 -0.57595073384761D-15 0.87569323139115D+00 + 1 3 3 3 0.12110456572415D+01 0.52462335622148D-01 + 2 3 3 3 0.12241424650189D+01 0.52463011729874D-01 + 3 3 3 3 0.24352464921833D+01 0.43376618465657D-15 + + List of bloks and their characteristics + + 2nd derivatives (non-stat.) - # elements : 144 + qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 1.25000000E-01 0.00000000E+00 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 2.50000000E-01 0.00000000E+00 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 3.75000000E-01 0.00000000E+00 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 0.00000000E+00 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 1.25000000E-01 1.25000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 2.50000000E-01 1.25000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 3.75000000E-01 1.25000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 1.25000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 1.25000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -2.50000000E-01 1.25000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -1.25000000E-01 1.25000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 3.75000000E-01 2.50000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 2.50000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 2.50000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -2.50000000E-01 2.50000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 3.75000000E-01 3.75000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 3.75000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 3.75000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 5.00000000E-01 0.00000000E+00 1.0 + + 2nd derivatives (non-stat.) - # elements : 72 + qpt 3.75000000E-01 2.50000000E-01 1.25000000E-01 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt 5.00000000E-01 2.50000000E-01 1.25000000E-01 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 2.50000000E-01 1.25000000E-01 1.0 + + 2nd derivatives (non-stat.) - # elements : 72 + qpt 5.00000000E-01 3.75000000E-01 1.25000000E-01 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -3.75000000E-01 3.75000000E-01 1.25000000E-01 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -2.50000000E-01 3.75000000E-01 1.25000000E-01 1.0 + + 2nd derivatives (non-stat.) - # elements : 72 + qpt -3.75000000E-01 5.00000000E-01 1.25000000E-01 1.0 + + 2nd derivatives (non-stat.) - # elements : 81 + qpt -2.50000000E-01 5.00000000E-01 2.50000000E-01 1.0 diff --git a/abipy/data/refs/embedding_ifc/SrCl2_Eu_FORCE_SETS b/abipy/data/refs/embedding_ifc/SrCl2_Eu_FORCE_SETS new file mode 100644 index 000000000..b123b7381 --- /dev/null +++ b/abipy/data/refs/embedding_ifc/SrCl2_Eu_FORCE_SETS @@ -0,0 +1,1514 @@ +81 +18 + +1 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + -0.0305557235 0.0000180608 -0.0167614064 + -0.0024580957 -0.0012932972 0.0022659968 + -0.0003928452 0.0006510074 0.0000282684 + -0.0004474053 0.0040070396 -0.0002869435 + 0.0003111291 0.0009325645 0.0002205351 + -0.0001540716 -0.0003042082 0.0001823304 + -0.0008033266 0.0032993272 0.0001284305 + -0.0007667014 0.0000529487 -0.0003322714 + 0.0020606284 0.0013104711 -0.0032822827 + 0.0052137422 0.0001501496 0.0030145173 + 0.0016834353 0.0000161520 0.0002302233 + 0.0005661865 0.0008419687 -0.0002506985 + 0.0009692716 -0.0000587759 0.0004848651 + 0.0001214047 -0.0006632158 -0.0002350388 + -0.0001336499 -0.0006282149 -0.0003652989 + -0.0007345673 -0.0037636712 -0.0007384699 + -0.0002093401 -0.0005779038 0.0011251516 + 0.0003665088 -0.0000100029 0.0001720294 + 0.0044102280 0.0000316580 0.0034190173 + 0.0013687401 0.0011581695 -0.0036136019 + -0.0004218333 -0.0002172497 0.0007361830 + -0.0003006092 -0.0043498696 -0.0007314854 + -0.0003906775 -0.0003177726 0.0000204248 + 0.0006526447 -0.0002875472 -0.0003495741 + 0.0014858644 0.0002963228 0.0005932094 + 0.0007197342 0.0009461609 -0.0002058958 + -0.0025021015 -0.0013460633 0.0029942728 + -0.0010249720 -0.0010348502 -0.0002557070 + -0.0002543228 -0.0000975235 -0.0001490918 + -0.0000438951 -0.0003359097 0.0004774228 + 0.0003178732 0.0000566008 0.0000692398 + 0.0002734226 0.0003600793 0.0000385477 + -0.0000315140 -0.0001090774 -0.0000317044 + 0.0053036234 -0.0008022910 0.0014146994 + -0.0004957494 0.0007852591 -0.0011966640 + -0.0429433458 0.0153042452 0.0002784729 + -0.0007246360 0.0009079224 -0.0009468559 + -0.0004559299 0.0007686136 0.0010491484 + -0.0003621869 -0.0001188075 -0.0000274978 + -0.0002839056 0.0006598401 0.0000472469 + -0.0003516746 0.0000165953 -0.0001887266 + -0.0002165239 0.0001110472 0.0001673313 + -0.0010846624 0.0001824649 -0.0006896636 + -0.0013393009 -0.0005769174 0.0001783622 + -0.0005588088 0.0000282758 0.0005362806 + 0.0027578034 -0.0001378123 0.0014145297 + 0.0008284289 -0.0009119887 -0.0008456462 + 0.0003595819 -0.0457901758 -0.0000644902 + 0.0001273289 -0.0005888920 -0.0002824192 + 0.0002289402 -0.0003698302 0.0001807106 + 0.0001596118 -0.0000404351 0.0001266613 + 0.0256217885 0.0162896533 -0.0340707055 + 0.0026810205 0.0000477004 0.0014794784 + 0.0218231323 0.0153453245 0.0369106033 + -0.0191627154 -0.0153835062 -0.0360493383 + 0.0039274719 0.0009279513 0.0038787298 + -0.0215014158 -0.0152786162 0.0367766976 + 0.0001681885 -0.0002976672 0.0002017370 + -0.0001067784 -0.0005858201 -0.0002436964 + -0.0000716852 -0.0000403358 0.0000739559 + 0.0006595443 0.0452252752 -0.0008820288 + 0.0024499716 0.0001507130 0.0013803455 + 0.0002453222 0.0003307634 -0.0000060606 + -0.0012970672 -0.0006641114 0.0002033539 + -0.0011606564 -0.0000423867 -0.0006532891 + -0.0006330078 -0.0001896878 0.0004822627 + -0.0003134618 0.0000413406 -0.0002113513 + -0.0003095087 0.0006425891 0.0000405921 + -0.0001665900 0.0001458643 0.0002075135 + -0.0004764488 0.0009187033 0.0008895348 + -0.0007420640 0.0010784172 -0.0007702572 + -0.0003818874 0.0001029403 -0.0000448121 + 0.0429727709 -0.0147592705 -0.0012189301 + 0.0050980262 -0.0010565170 0.0013814269 + 0.0004796992 -0.0001783909 0.0003453156 + 0.0004064382 0.0002910290 -0.0001307464 + 0.0004637849 -0.0000090526 0.0002481115 + 0.0001680504 -0.0002010178 -0.0000411522 + 0.0000416438 0.0001127690 -0.0001403072 + -0.0008430541 -0.0008988219 -0.0001818700 + 0.0001157312 -0.0002264730 0.0003822118 + +1 + -0.0086602540378444 0.0000000000000000 -0.0050000000000000 + 0.0305629437 -0.0000112224 0.0183881780 + 0.0024385656 0.0012819711 -0.0038925282 + 0.0008600729 0.0006595236 0.0007981175 + 0.0007134870 -0.0041132813 0.0002474410 + 0.0001566573 0.0003884421 -0.0010243562 + -0.0003194071 -0.0010196322 -0.0010040217 + 0.0003428774 -0.0046272407 0.0006873980 + 0.0004958027 0.0000760983 0.0003558507 + -0.0006601036 -0.0012978780 0.0040893880 + -0.0052118843 0.0001481698 -0.0030352289 + -0.0002883480 -0.0000154852 -0.0010339550 + -0.0007383307 -0.0009590418 0.0004711077 + -0.0011285221 -0.0000475512 -0.0007571037 + -0.0009952902 0.0000502748 0.0002469532 + 0.0010649340 -0.0006899691 0.0003652781 + 0.0002914086 0.0043779094 -0.0000126715 + -0.0002429317 0.0011939580 -0.0003793270 + -0.0017710841 0.0000050367 -0.0009960497 + -0.0058278778 -0.0000326371 -0.0026236536 + -0.0013441342 -0.0014609983 0.0036587620 + -0.0005059661 0.0015370690 -0.0007328527 + 0.0007580254 0.0037447178 -0.0000142931 + 0.0008226747 -0.0003063925 0.0007251458 + -0.0004835589 0.0004021870 0.0001254811 + -0.0006124536 0.0003150761 -0.0006075718 + -0.0005558787 -0.0008335148 0.0004811938 + 0.0025119567 0.0013519318 -0.0029972542 + 0.0010380820 0.0010391053 0.0002613596 + -0.0000675382 -0.0001242566 -0.0000146824 + -0.0002695088 0.0001119263 -0.0003112027 + -0.0005244091 0.0000384210 -0.0004314878 + -0.0003548798 -0.0003351771 -0.0000444609 + -0.0001684233 0.0002111680 0.0003988501 + -0.0050723202 0.0010373380 -0.0016084324 + 0.0003800230 -0.0004272554 0.0013935219 + -0.0438528400 0.0153589058 -0.0002836134 + 0.0007511287 -0.0011406431 0.0005846643 + 0.0004527653 -0.0008605408 -0.0010574256 + 0.0003871870 -0.0001118162 0.0003954748 + 0.0003132453 -0.0006279955 -0.0001212669 + 0.0003935259 0.0000117835 0.0002630568 + 0.0000824528 -0.0002035135 -0.0001773683 + 0.0013217898 0.0001812153 0.0006936756 + 0.0012817268 0.0006641701 -0.0002996393 + 0.0005023235 0.0000605153 -0.0004308034 + -0.0024595330 -0.0001211130 -0.0016043990 + -0.0005223243 0.0006848445 0.0010439686 + -0.0003709565 -0.0462629491 0.0000683074 + 0.0002898161 0.0006904950 0.0002918773 + -0.0001727451 0.0002790639 -0.0003024279 + -0.0001100482 -0.0000446356 -0.0000233035 + 0.0175967528 0.0142668115 -0.0413935681 + -0.0025467888 0.0000532098 -0.0015062181 + 0.0215727824 0.0153357581 0.0382692326 + -0.0242504536 -0.0153226676 -0.0390985889 + -0.0038783851 -0.0008908025 -0.0035753362 + -0.0218944370 -0.0153980733 0.0383811614 + -0.0002230656 0.0003864261 -0.0003050111 + 0.0000496578 0.0006796128 0.0003601714 + -0.0003414009 -0.0000604538 -0.0000863740 + -0.0006545593 0.0468213896 0.0008888215 + -0.0027512389 0.0001036014 -0.0015910169 + -0.0005402046 -0.0001030264 0.0002017549 + 0.0013594818 0.0005770638 -0.0003018416 + 0.0012272551 -0.0000417089 0.0007620321 + 0.0004072766 -0.0001667785 -0.0004872505 + 0.0004413145 0.0000477665 0.0002195057 + 0.0002711732 -0.0006574341 -0.0001042808 + 0.0001345582 -0.0001701786 -0.0001332465 + 0.0004472687 -0.0006944525 -0.0012482487 + 0.0007420221 -0.0009811287 0.0007670852 + 0.0003583108 0.0001228010 0.0004007619 + 0.0438160011 -0.0159342661 0.0012382328 + -0.0053329289 0.0008198377 -0.0015826456 + -0.0003710337 -0.0001783254 -0.0001484052 + -0.0002106545 -0.0003896786 -0.0002339081 + -0.0003800730 -0.0000162077 -0.0002401435 + 0.0000392084 0.0001030127 0.0003993162 + 0.0002785579 0.0001176188 -0.0000204323 + 0.0011701708 0.0011316033 0.0003436732 + -0.0001187431 0.0002120926 -0.0003889035 + +4 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + -0.0005789629 0.0040582929 0.0005556809 + -0.0006296750 0.0000030460 -0.0011663873 + -0.0022351554 -0.0006261270 0.0034242905 + -0.0304888352 -0.0000522453 -0.0176880534 + -0.0022503255 -0.0006601671 0.0026068231 + -0.0008628720 -0.0006565350 -0.0007624781 + -0.0008115405 0.0034093315 0.0001147743 + -0.0000554009 0.0004065934 0.0006319785 + 0.0000982957 -0.0000052132 0.0000482379 + -0.0005444709 -0.0039249359 -0.0003771477 + 0.0007067472 -0.0008977263 0.0003404170 + 0.0012876336 0.0012570382 -0.0035504459 + 0.0051547074 -0.0000548301 0.0028865346 + 0.0006264346 -0.0003066977 0.0006186837 + 0.0011104182 0.0002440276 -0.0003587616 + 0.0008452061 0.0003120816 0.0002397603 + 0.0003433120 -0.0000350595 0.0001409593 + -0.0001233778 -0.0003530851 -0.0006478178 + 0.0003578529 0.0000009202 0.0010134070 + 0.0006665020 0.0007529990 -0.0003371094 + 0.0005903223 0.0006584431 0.0006107581 + 0.0054323015 -0.0003044198 0.0026392253 + 0.0015904415 0.0009915192 -0.0032760721 + 0.0001031360 -0.0008404404 0.0006386689 + -0.0000877593 -0.0037551494 -0.0003693431 + -0.0005401474 0.0000566067 -0.0002194159 + 0.0000947832 0.0003441602 0.0006167344 + 0.0053744814 -0.0009733291 0.0015135185 + -0.0006084528 0.0005083823 -0.0013551749 + 0.0002657724 -0.0001179741 0.0003292414 + -0.0011379030 -0.0009891290 -0.0004381402 + -0.0001564070 0.0000143181 -0.0000669203 + 0.0000170221 -0.0001782007 0.0005729737 + 0.0003721343 0.0001828629 0.0001450172 + 0.0002635930 0.0005192070 0.0001459004 + -0.0433167764 0.0151888586 -0.0002056502 + -0.0011989234 -0.0001148763 -0.0008797910 + -0.0013278968 -0.0006694599 0.0002470459 + -0.0005195590 -0.0001238835 0.0006648311 + -0.0007196782 0.0010508420 -0.0008064195 + -0.0004336099 0.0008214005 0.0010909965 + -0.0004375589 -0.0000444784 -0.0002227153 + -0.0001826464 0.0008290493 0.0000812814 + -0.0004079575 0.0000392471 -0.0002739865 + -0.0001906680 0.0002019967 0.0002197770 + 0.0039758758 0.0007312147 0.0034895416 + 0.0027735350 -0.0001016505 0.0016013882 + 0.0001530953 -0.0460192249 -0.0006800907 + 0.0028214786 0.0000339546 0.0015183474 + 0.0007150111 -0.0008572070 -0.0009870013 + 0.0004215585 0.0001745011 -0.0000527012 + 0.0216249248 0.0147122801 -0.0378703903 + 0.0002538246 -0.0002999220 0.0002378224 + 0.0218284358 0.0153340211 0.0376430049 + -0.0210265049 -0.0161597090 -0.0385283525 + 0.0025619998 -0.0000267668 0.0015032791 + -0.0212955837 -0.0151120887 0.0374869192 + 0.0025815771 0.0000286062 0.0014693702 + 0.0039656484 0.0010187175 0.0039531268 + -0.0000601030 -0.0000400685 -0.0007011480 + 0.0001991286 0.0456841387 0.0002569854 + -0.0002336014 -0.0005307960 -0.0004006400 + -0.0000171503 0.0001106574 0.0001708010 + -0.0004372049 0.0007732797 0.0010103401 + -0.0007114900 0.0009988367 -0.0007123093 + -0.0004985040 -0.0001799392 -0.0002177825 + -0.0012693905 -0.0005791441 0.0002540026 + -0.0012339837 -0.0000187613 -0.0007430779 + -0.0005563725 -0.0000430931 0.0005221010 + -0.0003934643 0.0001171581 -0.0003997167 + -0.0002926119 0.0007029346 0.0000652542 + -0.0001614926 0.0002722825 0.0003513977 + 0.0432838088 -0.0153308584 -0.0000452683 + -0.0009728627 -0.0012150405 -0.0003690660 + 0.0001651567 -0.0003988101 0.0004861976 + -0.0003444835 0.0005622842 -0.0014574506 + 0.0050706323 -0.0008704505 0.0015060912 + 0.0005331391 -0.0000463497 0.0004314515 + 0.0004659846 0.0004520598 -0.0000348517 + 0.0005906814 0.0001164044 0.0003317854 + 0.0000647704 -0.0001607123 -0.0002250468 + +4 + -0.0086602540378444 0.0000000000000000 -0.0050000000000000 + 0.0005917931 -0.0040649947 0.0010788838 + 0.0006270983 0.0000047763 -0.0004675329 + 0.0027208648 0.0019569292 -0.0026087765 + 0.0307656195 -0.0000642163 0.0176576740 + 0.0027026856 0.0019727111 -0.0034105395 + 0.0003853652 -0.0006789481 -0.0000488389 + 0.0003377551 -0.0047163224 0.0006856402 + -0.0002192407 -0.0002883727 -0.0005974893 + 0.0013071793 0.0000093108 0.0007699048 + 0.0005143058 0.0042117489 0.0003413755 + 0.0006867339 0.0008985899 -0.0011495322 + -0.0014583027 -0.0013676305 0.0037580336 + -0.0052905819 -0.0000568200 -0.0031473056 + -0.0014995162 -0.0003076399 -0.0006018616 + -0.0001831624 -0.0015618485 0.0003571725 + -0.0012783164 0.0003180074 -0.0009849908 + -0.0007939969 0.0006530299 0.0006079790 + -0.0012817853 0.0003478011 -0.0001720823 + -0.0017531214 -0.0000032487 -0.0002087592 + -0.0006419824 -0.0010475058 0.0003710354 + -0.0015196666 0.0006570611 -0.0006131147 + -0.0050064791 -0.0003109165 -0.0033982166 + -0.0011532644 -0.0016239748 0.0040369136 + 0.0000659223 0.0009547512 -0.0008550916 + 0.0009698520 0.0043811052 0.0003595682 + 0.0006983754 0.0000550457 0.0004930965 + -0.0000957501 -0.0003454750 -0.0006194397 + -0.0050239486 0.0008556656 -0.0015032821 + 0.0002886262 -0.0007335023 0.0011927842 + -0.0005827794 -0.0001098811 -0.0001696514 + 0.0009306253 0.0010823453 0.0000808092 + 0.0000740713 0.0000138370 0.0000653608 + -0.0002130935 0.0002755122 -0.0002105562 + -0.0004828252 0.0001728321 -0.0003427772 + -0.0003682379 -0.0001633026 0.0000581619 + -0.0434725611 0.0154979338 0.0002091250 + 0.0012228478 -0.0001120094 0.0005231009 + 0.0013317077 0.0005760778 -0.0002509626 + 0.0005441581 -0.0000979857 -0.0003008590 + 0.0007657441 -0.0010247091 0.0007293152 + 0.0004796600 -0.0007982188 -0.0010265540 + 0.0003139018 -0.0000448001 0.0002136196 + 0.0004128055 -0.0004695071 -0.0000733496 + 0.0003443705 0.0000413783 0.0001608463 + 0.0001242560 -0.0001170037 -0.0001193269 + -0.0038494892 -0.0010798239 -0.0039858487 + -0.0024608736 -0.0001061164 -0.0014218724 + -0.0001534236 -0.0460336269 0.0006871938 + -0.0024111635 0.0000344852 -0.0015079729 + -0.0006590640 0.0007670045 0.0008720023 + -0.0003685810 -0.0002643045 0.0001478533 + 0.0217709826 0.0159779583 -0.0372869916 + -0.0001398749 0.0003825740 -0.0002482773 + 0.0215809547 0.0153512718 0.0375282919 + -0.0223736064 -0.0145296139 -0.0366441678 + -0.0026763705 -0.0000258736 -0.0015073559 + -0.0220993606 -0.0155745618 0.0376898115 + -0.0026532480 0.0000395267 -0.0015474053 + -0.0038482959 -0.0008077237 -0.0035408219 + -0.0003570302 -0.0000623232 0.0006957990 + -0.0001941035 0.0463828613 -0.0002512066 + -0.0000672858 0.0007571976 0.0001939471 + -0.0002804564 0.0001123423 0.0000215326 + 0.0004942744 -0.0008532078 -0.0011079130 + 0.0007752973 -0.0010749853 0.0008225258 + 0.0002639008 -0.0001773489 0.0002125412 + 0.0013902767 0.0006644394 -0.0002426499 + 0.0011933716 -0.0000148834 0.0006646890 + 0.0005122583 0.0000025794 -0.0004461672 + 0.0003648757 0.0001082514 0.0000376474 + 0.0002968685 -0.0006066347 -0.0000731013 + 0.0001417970 -0.0000466783 0.0000056411 + 0.0435037193 -0.0153438490 0.0000604835 + 0.0010881125 0.0008617478 0.0001635616 + -0.0000586032 0.0000455292 -0.0002960880 + 0.0005477448 -0.0006666429 0.0010995060 + -0.0053281079 0.0009596870 -0.0015090223 + -0.0003296208 -0.0000458698 -0.0000702811 + -0.0001557719 -0.0002293054 -0.0001277869 + -0.0002733492 0.0001132904 -0.0001677464 + -0.0000744665 0.0001550116 0.0002101397 + +14 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + 0.0005638648 -0.0003542689 0.0005653494 + 0.0010457585 -0.0000152905 -0.0002068489 + 0.0016147411 0.0019740073 -0.0032238203 + 0.0012120849 -0.0000527220 0.0005994352 + 0.0054512485 0.0006829173 0.0025896801 + -0.0008472075 -0.0006513241 -0.0007501964 + -0.0002066246 -0.0015417349 0.0011395265 + -0.0006709392 -0.0039988383 -0.0003543660 + 0.0000823069 0.0000026229 0.0000453783 + 0.0000889406 0.0004938123 0.0006004458 + 0.0001457765 0.0040514369 -0.0006794990 + -0.0025554804 -0.0013691724 0.0031387180 + -0.0025369566 -0.0013598912 0.0028776708 + -0.0309799776 -0.0002678436 -0.0176676050 + 0.0005353105 -0.0003138871 0.0006148068 + -0.0008463334 0.0003044154 -0.0007371849 + -0.0008029667 0.0043788481 0.0000972716 + -0.0006817423 -0.0009030060 0.0003436972 + -0.0013049681 -0.0000039527 0.0000426684 + -0.0005369480 -0.0042238083 -0.0003574827 + 0.0005705400 0.0006567698 0.0006162536 + 0.0015850575 0.0010016720 -0.0040389075 + 0.0054438684 -0.0003108326 0.0033968127 + 0.0006387466 -0.0002837309 -0.0003518462 + 0.0010912188 0.0012133755 -0.0003607015 + 0.0011292872 0.0000643715 0.0007428449 + 0.0005971718 0.0008719631 -0.0003671776 + 0.0001523154 0.0000196451 -0.0006972718 + 0.0036519467 0.0007338866 0.0035175591 + 0.0024635692 -0.0001035418 0.0015761438 + 0.0002935961 0.0002683731 -0.0002736908 + 0.0025775723 -0.0000059532 0.0015129241 + 0.0005883777 -0.0007677532 -0.0007566051 + 0.0000746558 0.0001795004 -0.0000200741 + -0.0001420898 -0.0004657089 -0.0001904728 + -0.0432057962 0.0150150003 0.0002410229 + 0.0004404153 -0.0001103792 0.0000704435 + 0.0053687025 -0.0010143938 0.0015115141 + -0.0004388444 0.0005122975 -0.0011019109 + 0.0001344161 -0.0002112196 0.0003575747 + -0.0010175512 -0.0010285180 -0.0002271731 + -0.0001724504 -0.0000465381 -0.0000690675 + 0.0001813847 0.0000189631 -0.0002169924 + 0.0003980435 0.0000408378 0.0001958090 + 0.0002851773 0.0003837373 0.0000964661 + -0.0003812192 -0.0001249276 0.0003837917 + -0.0010626553 -0.0001131761 -0.0005944621 + -0.0013127556 -0.0466713562 0.0002418095 + -0.0001762815 0.0000423835 -0.0002165023 + -0.0007133230 0.0009842996 -0.0008155195 + -0.0004288903 0.0007634724 0.0011060955 + 0.0215368458 0.0154990577 -0.0373920246 + -0.0002344446 0.0006906980 0.0000777114 + 0.0213253790 0.0153483728 0.0373539926 + -0.0215865705 -0.0155592019 -0.0372045744 + -0.0001767814 -0.0000404132 -0.0000615661 + -0.0227366499 -0.0163733943 0.0373490830 + 0.0003976639 0.0000413747 0.0001964666 + -0.0004823858 0.0006577051 -0.0012155145 + 0.0048114523 -0.0009059019 0.0015092365 + 0.0000759276 0.0458493793 -0.0002206239 + 0.0001642276 0.0004513278 -0.0000496179 + 0.0002822476 0.0001133038 0.0003443981 + 0.0004267084 0.0001835821 -0.0001486730 + 0.0007125820 -0.0008508132 -0.0008709926 + 0.0025035565 -0.0001600923 0.0015068839 + 0.0002141685 0.0000562633 -0.0006993092 + 0.0025890623 -0.0000222025 0.0014930229 + 0.0039736182 0.0009585533 0.0039278710 + 0.0001227981 0.0001114170 -0.0001034589 + 0.0001964867 -0.0002990006 0.0002500652 + -0.0000914553 -0.0005347156 -0.0001180941 + 0.0430185494 -0.0153304029 -0.0002196806 + -0.0004064967 0.0006392117 0.0009665679 + -0.0006872521 0.0008635991 -0.0006716561 + -0.0004242333 -0.0000666977 0.0002982141 + -0.0012943740 -0.0006370316 0.0002522979 + -0.0011050015 -0.0000532896 -0.0005211164 + 0.0000045818 0.0002690002 0.0000892392 + -0.0002225389 0.0001078013 -0.0001363822 + -0.0002917656 0.0006476705 0.0000718992 + +14 + -0.0086602540378444 0.0000000000000000 -0.0050000000000000 + -0.0005579451 0.0003551312 0.0010558324 + -0.0010479143 0.0000077103 -0.0014166136 + -0.0011395563 -0.0006585728 0.0040499895 + -0.0009147439 -0.0000613636 -0.0006204341 + -0.0050044460 0.0006361396 -0.0034087241 + 0.0003782015 -0.0006714389 -0.0000642836 + -0.0002543412 0.0002213333 -0.0003275618 + 0.0003860529 0.0041234439 0.0003731564 + 0.0013324175 0.0000102903 0.0007608696 + -0.0000799606 -0.0001974176 -0.0006196939 + 0.0012681041 -0.0040635189 -0.0001202007 + 0.0024033417 0.0012455515 -0.0028977153 + 0.0024166206 0.0012517875 -0.0031438901 + 0.0301185507 -0.0003487960 0.0176737441 + 0.0004050322 -0.0010067243 -0.0006120932 + 0.0004151184 0.0003031782 -0.0000078753 + 0.0003591309 -0.0037531215 0.0006485574 + -0.0007353417 0.0009032768 -0.0011620721 + -0.0001014992 0.0000069603 0.0007665823 + 0.0005163897 0.0039141046 0.0003705814 + -0.0015128570 0.0006652387 -0.0006113090 + -0.0011553731 -0.0016112894 0.0032717552 + -0.0049955389 -0.0003093383 -0.0026316020 + -0.0005041510 0.0004024783 0.0001150255 + -0.0002303014 -0.0005926542 0.0003509355 + -0.0009969642 0.0000549134 -0.0004780245 + -0.0005935094 -0.0008720840 0.0003693907 + -0.0001501482 -0.0000114057 0.0007040169 + -0.0041445248 -0.0010798874 -0.0039766572 + -0.0027690873 -0.0001034778 -0.0014392811 + -0.0005063691 -0.0001719487 -0.0000844527 + -0.0026601342 0.0000007242 -0.0015106503 + -0.0007934625 0.0008626982 0.0011116460 + -0.0001921285 0.0001774575 -0.0001715905 + 0.0000261207 0.0008232861 0.0003904445 + -0.0435939955 0.0156702272 -0.0002466754 + -0.0004201604 -0.0001165505 -0.0004289010 + -0.0050242488 0.0008047281 -0.0015136197 + 0.0004592874 -0.0007336860 0.0014549676 + -0.0000897350 0.0002375042 -0.0004264354 + 0.0010537648 0.0010510298 0.0002956155 + 0.0000515392 -0.0000431396 0.0000622773 + 0.0000448063 0.0003382285 0.0002207471 + -0.0004545739 0.0000396036 -0.0003073810 + -0.0003381517 -0.0003009912 0.0000070468 + 0.0006787227 -0.0000987122 -0.0005771125 + 0.0013596528 -0.0001095640 0.0007954885 + 0.0013157170 -0.0453846151 -0.0002441066 + 0.0005884893 0.0000521537 0.0002205235 + 0.0007787676 -0.0010765356 0.0007091007 + 0.0004951262 -0.0008538731 -0.0010078714 + 0.0218566515 0.0151882154 -0.0377693552 + 0.0003567371 -0.0006087011 -0.0000797010 + 0.0220757602 0.0153399655 0.0378109568 + -0.0218180659 -0.0151255879 -0.0379636920 + 0.0000499791 -0.0000409333 0.0000649795 + -0.0206583031 -0.0143086579 0.0378160126 + -0.0004618464 0.0000498885 -0.0002947846 + 0.0004210941 -0.0005707090 0.0013286093 + -0.0055680045 0.0009332168 -0.0015111181 + -0.0000752530 0.0462046122 0.0002178176 + -0.0004673956 -0.0002270656 -0.0001519568 + -0.0005826755 0.0001132806 -0.0001474166 + -0.0003632546 -0.0002654903 0.0000505263 + -0.0006543303 0.0007717039 0.0009830457 + -0.0027258074 -0.0001646848 -0.0015142440 + -0.0000951352 0.0000303427 0.0007029646 + -0.0026452558 -0.0000203171 -0.0015364205 + -0.0038440355 -0.0008643456 -0.0035578092 + -0.0001434992 0.0001086853 -0.0002558189 + -0.0001940654 0.0003850496 -0.0002457300 + 0.0000727524 0.0007582593 0.0004724589 + 0.0437786686 -0.0153525819 0.0002204167 + 0.0005195139 -0.0009941309 -0.0011624959 + 0.0008003547 -0.0012160279 0.0008642218 + 0.0006309378 -0.0000320545 -0.0006571295 + 0.0013686438 0.0006057237 -0.0002497708 + 0.0013140617 -0.0000450885 0.0008744545 + 0.0003167617 -0.0000463745 -0.0002502935 + 0.0005442311 0.0001147444 0.0002971811 + 0.0003009888 -0.0006494098 -0.0000773754 + +27 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + -0.0025250934 -0.0013518724 0.0037990723 + -0.0025146220 -0.0013474615 0.0021769004 + -0.0003702680 0.0047428941 0.0000668053 + 0.0002297067 0.0002888937 0.0006043827 + -0.0003802086 0.0006529821 -0.0007526711 + -0.0008319019 0.0034119898 -0.0007376564 + -0.0008419366 -0.0006529821 0.0000470653 + -0.0000631167 0.0004005588 0.0006176694 + 0.0058892769 -0.0000000000 0.0034001756 + 0.0010624454 0.0001486159 0.0006047229 + 0.0020275465 0.0013518724 -0.0040863312 + 0.0009898814 -0.0000566260 0.0007304073 + 0.0005033590 -0.0004005588 -0.0003634954 + 0.0001510529 0.0005630241 -0.0003724968 + -0.0001272789 -0.0047428941 -0.0003540642 + -0.0002470653 -0.0005630241 0.0003170640 + -0.0008662536 0.0003085538 0.0000037346 + 0.0044610172 -0.0000000000 0.0025755695 + 0.0006279400 0.0013474615 -0.0032661767 + 0.0010549281 -0.0001486159 0.0006177432 + -0.0010547801 -0.0034119898 -0.0003516200 + -0.0004298926 -0.0003085538 -0.0007520649 + 0.0001839438 -0.0011808586 0.0010703670 + 0.0011274920 0.0000566260 0.0004920588 + 0.0010189369 0.0011808586 -0.0003758835 + 0.0006382642 -0.0002888937 -0.0001032595 + -0.0257374132 0.0000000000 -0.0148595024 + -0.0001294425 0.0000014446 -0.0000723747 + -0.0000570339 -0.0003396243 0.0002976322 + -0.0012240106 -0.0011653025 -0.0001748627 + 0.0001984912 0.0003831098 -0.0001449503 + 0.0000229779 -0.0001465208 -0.0002260011 + 0.0003221174 0.0000496115 0.0004234832 + -0.0005211585 0.0008226635 -0.0013922382 + 0.0003672932 0.0001773878 0.0003452365 + -0.0390691567 0.0147032750 0.0014537594 + -0.0004661662 0.0007102723 0.0008907286 + -0.0003903892 -0.0000443892 -0.0002257005 + -0.0007392722 0.0009372379 -0.0006129209 + -0.0003695531 0.0000145440 -0.0002617895 + -0.0001430731 0.0001747318 0.0002027325 + -0.0003711612 0.0006083343 0.0000657583 + -0.0012348133 -0.0004643642 0.0002453816 + -0.0005770897 0.0000258805 0.0004224370 + -0.0012621331 0.0000426656 -0.0006590202 + 0.0008383672 -0.0009383424 -0.0010482752 + 0.0005256382 0.0001148285 0.0000005552 + 0.0025195781 -0.0460511812 0.0014560706 + 0.0003840614 -0.0002856111 0.0002457734 + 0.0001488396 -0.0000447707 0.0000128223 + -0.0000640158 -0.0006965761 -0.0002494042 + 0.0242287148 0.0153515299 -0.0361452571 + 0.0002030258 0.0000587317 -0.0007119339 + 0.0249641589 0.0158692308 0.0403274092 + -0.0182755857 -0.0147032750 -0.0345617619 + 0.0000772963 -0.0000258805 -0.0007109929 + -0.0191883535 -0.0153515299 0.0390553111 + -0.0001286322 -0.0006083343 -0.0003543142 + 0.0000855242 0.0000447707 0.0001224877 + -0.0000262850 -0.0003831098 0.0002443735 + 0.0025207832 0.0460511812 0.0014539833 + 0.0002292401 0.0003396243 -0.0001982089 + 0.0005383105 -0.0007102723 -0.0008490761 + -0.0012017948 -0.0000426656 -0.0007635292 + -0.0005150399 -0.0000587317 0.0005317925 + -0.0014662929 -0.0008226635 0.0002447826 + -0.0002479983 0.0006965761 0.0000692628 + -0.0001842338 0.0001465208 0.0001329000 + -0.0004114930 -0.0000145440 -0.0001891476 + -0.0007634408 0.0011653025 -0.0009725930 + -0.0003906569 0.0000443892 -0.0002252367 + -0.0004886494 0.0009383424 0.0012501849 + 0.0474066403 -0.0158692308 0.0014558912 + 0.0004826302 -0.0001773878 0.0001454670 + -0.0004049000 0.0004643642 -0.0011920705 + 0.0005278059 -0.0000496115 0.0000672203 + 0.0001040349 -0.0001747318 -0.0002252712 + 0.0004048767 0.0002856111 0.0002097203 + -0.0009004411 -0.0009372379 -0.0003337680 + 0.0002632999 -0.0001148285 0.0004549384 + -0.0001273995 -0.0000014446 -0.0000759131 + +28 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + -0.0006714992 -0.0007577726 -0.0001346992 + -0.0003020897 -0.0004977688 0.0002303717 + -0.0002412495 0.0004591572 -0.0008799135 + 0.0051401094 -0.0009048506 0.0014900287 + 0.0006361020 0.0006575612 -0.0001699804 + 0.0000494116 0.0004964271 -0.0003784464 + 0.0001710386 -0.0006578368 0.0006355331 + -0.0000928444 -0.0001007079 -0.0002180591 + 0.0009703454 -0.0002648174 0.0001277842 + 0.0025787605 0.0001514977 0.0014838938 + 0.0014556791 0.0004974918 -0.0011848826 + 0.0025059137 -0.0000545444 0.0016100683 + 0.0038757199 0.0009231318 0.0037451159 + -0.0003100408 -0.0002940991 -0.0007138007 + 0.0006364999 -0.0018194969 0.0002339775 + -0.0003257842 -0.0003386281 -0.0006865323 + -0.0001180954 0.0003082954 0.0004352618 + -0.0008025977 0.0002623051 -0.0000350375 + -0.0018578640 0.0007638849 0.0002950425 + -0.0003957762 -0.0001485099 -0.0002195293 + -0.0018231473 0.0008620783 0.0002349115 + -0.0010179018 -0.0003081470 -0.0010908878 + -0.0003398732 -0.0003264605 0.0008377398 + -0.0003231780 0.0000568290 -0.0003452732 + 0.0001125019 0.0009530496 0.0000542031 + -0.0001017671 0.0002151173 0.0002925299 + -0.0001481031 -0.0000008493 -0.0000868943 + -0.0226938591 -0.0001467786 -0.0133419941 + -0.0007238855 -0.0001389031 0.0006487924 + -0.0004934152 0.0000225340 0.0004219667 + -0.0003504681 0.0009172807 0.0000020146 + -0.0001619117 0.0001329773 0.0001236713 + -0.0006278714 0.0000475846 -0.0001239126 + -0.0002999906 0.0005696211 0.0000869455 + -0.0005814282 0.0001789456 -0.0002043545 + -0.0435073801 0.0154578842 0.0001236216 + 0.0010492956 -0.0002736304 0.0001589745 + 0.0002134983 -0.0000416712 0.0001250013 + 0.0001364695 -0.0002470342 -0.0002806997 + 0.0002336440 0.0000153094 0.0000901079 + 0.0000669468 -0.0001054865 -0.0001336070 + 0.0004131045 0.0002558225 0.0000246955 + 0.0001491466 -0.0002111780 -0.0003026571 + 0.0002307869 -0.0002598497 0.0003404790 + 0.0000196510 0.0000429477 0.0000814788 + 0.0009586946 0.0000464032 0.0006292787 + 0.0004978343 -0.0000880483 -0.0007459889 + 0.0002153316 -0.0460231705 0.0001217336 + 0.0002410198 -0.0008144293 -0.0003011732 + 0.0000787440 -0.0000451387 -0.0000282484 + 0.0002919276 -0.0003423277 0.0004461313 + 0.0219101151 0.0153389436 -0.0374547336 + 0.0005334348 0.0003407579 0.0000278285 + 0.0217393857 0.0152267809 0.0374164692 + -0.0217216530 -0.0151554605 -0.0372897656 + 0.0040901620 0.0040331860 -0.0007746047 + -0.0219806313 -0.0153382148 0.0374118595 + 0.0012835971 -0.0039049783 0.0040865083 + -0.0016501702 0.0000363498 -0.0008933672 + -0.0003380172 0.0000227404 0.0002363613 + -0.0002868154 0.0460211626 -0.0001629319 + -0.0002241692 0.0003447509 0.0000391709 + -0.0003018667 0.0001687045 0.0001012105 + -0.0013375358 -0.0000305148 -0.0008220572 + 0.0014407230 -0.0041662913 0.0040848458 + -0.0000863405 -0.0001632502 0.0002370404 + 0.0043438045 0.0040448631 -0.0009434388 + 0.0006770219 0.0004896204 0.0011904255 + -0.0000334030 -0.0000140546 0.0000308016 + 0.0000734341 0.0002886607 -0.0000396974 + -0.0000123188 0.0000455806 -0.0000057174 + -0.0000841128 0.0000560543 0.0000429738 + 0.0436312221 -0.0155286115 -0.0001676185 + 0.0004697558 -0.0001793055 0.0001378545 + 0.0002773114 -0.0001940515 0.0000033189 + 0.0005157838 -0.0000491188 0.0000581317 + 0.0014325475 -0.0005098570 -0.0000055112 + 0.0002445890 -0.0001205174 -0.0000551044 + 0.0003235277 -0.0000633321 -0.0000767300 + 0.0002447293 -0.0001201204 -0.0000553475 + 0.0002097337 -0.0000024787 0.0001170421 + +29 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + -0.0001314157 0.0000075945 0.0007549941 + -0.0006676376 -0.0007537023 -0.0017316867 + 0.0006365389 0.0006688184 0.0006329886 + -0.0003418402 -0.0002586962 -0.0012989118 + 0.0052369516 -0.0002220608 0.0011047789 + -0.0001950946 -0.0008160558 -0.0006518767 + 0.0000500026 0.0004755821 0.0004377341 + 0.0002664398 0.0000555853 0.0002516825 + 0.0014709559 0.0004998515 -0.0003722701 + 0.0002613933 -0.0001199939 -0.0002901112 + 0.0032587246 0.0000199446 0.0010881667 + 0.0000445085 -0.0000441288 -0.0006095595 + 0.0025043462 -0.0000566258 0.0013703710 + 0.0035153563 0.0006686118 0.0038798803 + 0.0005790945 -0.0006628011 0.0000581053 + -0.0000426773 -0.0008521062 -0.0001369425 + -0.0003336937 -0.0003390512 0.0000619955 + -0.0011030344 -0.0000021253 -0.0006502622 + -0.0008174015 0.0002736417 0.0007803500 + -0.0011491989 0.0006180830 -0.0000927898 + -0.0010134953 0.0006473334 0.0004612623 + -0.0011378593 -0.0001049031 -0.0001385097 + -0.0010203860 -0.0003148638 -0.0003401682 + -0.0000964698 0.0002178004 0.0000451072 + 0.0000276120 0.0003047645 -0.0002425424 + -0.0002463423 0.0006975971 0.0001980691 + -0.0003117088 -0.0005121232 0.0010640815 + -0.0003320763 0.0001364008 0.0003460084 + -0.0228390044 -0.0002536197 -0.0134252177 + -0.0007220261 -0.0001381827 0.0008139422 + -0.0006311826 0.0000481538 -0.0004842123 + -0.0002929976 0.0008864154 0.0001788960 + -0.0002238980 0.0001679853 0.0003083763 + -0.0001798448 0.0002997478 0.0000254017 + -0.0002950261 0.0005649206 0.0002763103 + -0.0439238594 0.0153356999 -0.0002945916 + 0.0001333953 -0.0002483838 -0.0006405126 + 0.0010376962 -0.0002077467 0.0003353680 + 0.0002241061 -0.0001121121 0.0003077649 + 0.0004990762 0.0003173429 -0.0000117503 + 0.0002379519 0.0000182867 0.0001603617 + -0.0000166101 -0.0001618531 -0.0001714812 + 0.0001656570 0.0001799103 0.0000355795 + 0.0000036012 -0.0003516494 -0.0003625716 + 0.0002318277 -0.0002606500 0.0004456992 + 0.0003653897 -0.0001141925 0.0000270416 + 0.0009563307 0.0000525888 0.0008158849 + 0.0003395232 -0.0459932586 -0.0008326044 + 0.0004711733 -0.0002489305 0.0004008810 + 0.0000632589 -0.0009011354 -0.0003621752 + 0.0000782536 -0.0000410803 0.0000768198 + 0.0217630198 0.0152377652 -0.0377737688 + 0.0002719788 0.0000396619 0.0001169711 + 0.0221634592 0.0156331475 0.0376140314 + -0.0219953251 -0.0153540686 -0.0377526866 + -0.0000818007 0.0001452173 0.0002846449 + -0.0175263729 -0.0112627746 0.0367689008 + -0.0001584666 0.0001140133 0.0001921219 + 0.0012863862 -0.0038984669 0.0041859087 + -0.0018260699 -0.0000511410 -0.0009490608 + -0.0001528226 0.0460911713 0.0000128455 + -0.0004416776 0.0001151322 -0.0002720655 + -0.0002244291 0.0003412258 0.0002348771 + 0.0000585286 -0.0000254455 0.0001909772 + -0.0013330952 -0.0000298141 -0.0007197871 + 0.0012935317 -0.0043069723 0.0040282855 + 0.0000458023 0.0000440189 -0.0000001171 + 0.0042609275 0.0039867277 -0.0009864467 + 0.0006730362 0.0004873212 0.0012645980 + -0.0000855174 0.0000542662 -0.0003158708 + 0.0000880232 0.0002242137 0.0001411612 + -0.0000225985 0.0001141605 0.0001722326 + 0.0436113534 -0.0153632427 -0.0000849435 + 0.0002963973 -0.0003698217 -0.0002723682 + 0.0004660585 -0.0001799069 0.0003333231 + 0.0002414418 -0.0001188448 -0.0004111905 + 0.0004621423 -0.0000127105 0.0002371656 + 0.0014923797 -0.0005401239 0.0001700185 + 0.0003680937 0.0001100835 0.0000408881 + 0.0003296225 -0.0000598748 0.0000850103 + 0.0000816081 -0.0002355465 -0.0001388109 + +29 + -0.0086602540378444 0.0000000000000000 -0.0050000000000000 + 0.0001383071 -0.0000017891 0.0008709305 + 0.0006583408 0.0007532743 0.0001083770 + -0.0001654835 0.0006502491 0.0001855067 + 0.0006125441 0.0001440068 0.0012701830 + -0.0051099022 0.0016732163 -0.0018887783 + -0.0002782988 -0.0005047303 -0.0001654300 + -0.0005185669 -0.0017960416 0.0003688274 + -0.0005390027 0.0000622528 -0.0002219233 + -0.0000632502 -0.0004918089 0.0011898666 + -0.0002848756 0.0004134106 0.0002505623 + -0.0018683012 -0.0000141412 -0.0018868788 + -0.0002073084 -0.0000710537 0.0008229249 + -0.0026664712 -0.0000461604 -0.0016344930 + -0.0042374114 -0.0011520173 -0.0035652591 + 0.0003522751 -0.0006539112 -0.0000577622 + -0.0003880385 0.0014748771 -0.0006090458 + -0.0001136700 0.0009498422 0.0006840438 + -0.0003006776 -0.0000005124 -0.0001714890 + -0.0005702698 -0.0002766304 0.0000264643 + 0.0011671904 -0.0009100037 0.0001270587 + 0.0000872738 0.0006710903 -0.0004660828 + 0.0015809525 -0.0005087425 -0.0006061811 + 0.0014517250 -0.0003097762 0.0010890952 + 0.0002605019 -0.0000992708 -0.0002660689 + 0.0008440149 0.0003085559 0.0002299688 + 0.0004051541 -0.0005927743 0.0000722779 + 0.0003144914 0.0005114092 -0.0010622228 + 0.0003446505 -0.0001383663 -0.0003286730 + 0.0227276744 -0.0002771169 0.0128969685 + 0.0004036814 -0.0000865167 -0.0006460021 + 0.0004268487 0.0000413844 0.0001289018 + 0.0001998273 -0.0008475811 -0.0001833419 + 0.0000240189 -0.0000695111 0.0000543422 + 0.0000711163 0.0000572819 -0.0002147186 + 0.0001896913 -0.0002048499 -0.0000717096 + -0.0428673021 0.0153493888 0.0002897544 + -0.0001173847 0.0000232964 0.0002836707 + -0.0010320410 0.0001103722 -0.0003359456 + -0.0001995288 -0.0001116710 0.0000564889 + -0.0004560629 -0.0002841263 -0.0000710675 + -0.0001911968 0.0000120478 -0.0000851265 + -0.0001088304 0.0000719798 0.0001625155 + 0.0000616208 0.0001804387 -0.0000262977 + -0.0000735812 0.0004360531 0.0002461307 + -0.0002912555 0.0003422723 -0.0003447470 + -0.0000665425 -0.0001083477 -0.0002190824 + -0.0006583987 -0.0002771417 -0.0006171561 + -0.0003490532 -0.0460686227 0.0008317935 + -0.0000597213 0.0003482933 -0.0003947470 + -0.0000069596 0.0008176154 0.0002504895 + -0.0000220902 -0.0000428415 0.0000176261 + 0.0216301911 0.0154459584 -0.0373905118 + -0.0001551660 0.0000420568 -0.0001202607 + 0.0212352643 0.0150596928 0.0375554246 + -0.0214058250 -0.0153321331 -0.0374173184 + -0.0000329162 -0.0002274870 -0.0002800363 + -0.0259009962 -0.0194816997 0.0384149580 + 0.0001015178 -0.0000304672 -0.0002914128 + -0.0013490998 0.0040385834 -0.0041188248 + 0.0014248240 -0.0000602538 0.0009224181 + 0.0001528255 0.0459668096 -0.0000134936 + 0.0001405110 0.0001072288 0.0000707290 + -0.0000740846 -0.0001168322 -0.0000439466 + 0.0000035691 -0.0000572443 -0.0002869986 + 0.0013796035 -0.0000278914 0.0008599265 + -0.0015170511 0.0038991536 -0.0039875578 + 0.0000766448 0.0000423766 0.0000154068 + -0.0042607018 -0.0039655456 0.0008904205 + -0.0007088931 -0.0005149731 -0.0011707518 + 0.0000607167 0.0001668417 -0.0000458694 + -0.0000889439 -0.0001225933 -0.0001396583 + 0.0000021853 0.0001192807 0.0001828319 + 0.0431807790 -0.0153222621 0.0000897229 + -0.0001873570 0.0000119911 0.0000685829 + -0.0003546718 -0.0001778141 -0.0001393455 + -0.0000407422 0.0000210243 0.0000492177 + -0.0003719915 -0.0000183861 -0.0002360876 + -0.0013000292 0.0004469283 0.0001869641 + -0.0000529659 0.0001153465 -0.0002040242 + -0.0000125887 0.0002871113 0.0000745864 + -0.0000850316 0.0002286479 0.0001303702 + +29 + 0.0000000000000000 0.0000000000000000 0.0100000000000000 + -0.0000017543 -0.0000012405 0.0006542637 + -0.0003857152 -0.0002727418 -0.0007145616 + 0.0011208686 0.0008685450 -0.0006437439 + -0.0007401506 -0.0002544408 -0.0010727107 + 0.0002409394 0.0006613492 0.0025797404 + -0.0002349635 -0.0006571793 -0.0008734055 + -0.0003477922 0.0005023097 0.0006608023 + -0.0000200003 -0.0011005622 0.0002802511 + 0.0011924950 0.0007672500 -0.0006437439 + -0.0004866060 -0.0006130071 -0.0010727107 + 0.0007038391 0.0000067102 0.0025797404 + -0.0000805204 -0.0000569365 -0.0013206328 + -0.0012768887 -0.0009028967 0.0049497527 + 0.0009505809 0.0006721622 0.0053691708 + 0.0006737803 -0.0000190958 -0.0002487371 + -0.0002192532 0.0003132127 0.0000912681 + -0.0004398371 -0.0003429310 0.0001248562 + -0.0006979158 -0.0000024659 -0.0008734055 + 0.0003576514 -0.0004953382 0.0006608023 + -0.0010442868 0.0003479976 0.0002802511 + 0.0002065898 0.0006416114 -0.0002487371 + 0.0002222154 -0.0003111181 0.0000912681 + -0.0004699308 -0.0003003721 0.0001248562 + 0.0003086215 0.0002182283 -0.0001883388 + 0.0002139330 0.0001512735 -0.0000844240 + 0.0000808571 0.0000571746 0.0002576866 + 0.0003640800 0.0002574435 0.0001088457 + 0.0002288765 0.0001618401 0.0010729891 + -0.0003708209 -0.0002622100 -0.0264079816 + -0.0003852330 -0.0002724008 0.0011479337 + -0.0003825206 -0.0008170530 -0.0002977684 + 0.0002401433 0.0008829942 -0.0001287698 + -0.0000982048 0.0000494879 0.0004274392 + -0.0000561886 0.0001777254 0.0001516640 + 0.0002270505 0.0005690517 -0.0000191465 + -0.0436834962 0.0149583227 -0.0001270511 + -0.0008978318 -0.0000882929 -0.0002977684 + 0.0009125427 -0.0000679221 -0.0001287698 + 0.0000139227 -0.0001090844 0.0004274392 + 0.0000224949 0.0000159063 0.0000211429 + 0.0001903225 0.0001345783 -0.0000061320 + -0.0002308297 -0.0001632213 -0.0000488982 + -0.0000978352 0.0004767479 0.0004292171 + -0.0000347767 0.0000414335 -0.0006643757 + 0.0001803670 -0.0002592220 0.0004757656 + 0.0001488316 -0.0001122169 0.0001516640 + 0.0006121906 0.0000243814 -0.0000191465 + -0.0004583235 -0.0461713028 -0.0001270511 + 0.0004168705 -0.0002511559 0.0004292171 + 0.0000274717 -0.0000465990 -0.0006643757 + -0.0001842745 0.0002564589 0.0004757656 + 0.0215287699 0.0152231392 -0.0376156508 + 0.0002272838 0.0001607139 -0.0000457847 + 0.0216965117 0.0153417505 0.0376236754 + -0.0219597421 -0.0155278826 -0.0374763988 + 0.0002044254 0.0001445506 0.0001234403 + -0.0216703814 -0.0153232736 0.0360237210 + -0.0000301852 0.0000426012 0.0004280101 + 0.0028982401 -0.0039046060 0.0032613556 + -0.0031694029 0.0039477308 0.0032301429 + -0.0000750664 0.0458517300 0.0001476529 + -0.0001495652 0.0001114098 -0.0004332472 + -0.0000707487 0.0002898068 0.0002412652 + 0.0000301031 -0.0000426593 0.0004280101 + -0.0027152178 0.0040340223 0.0032613556 + 0.0026654887 -0.0043040520 0.0032301429 + -0.0006431989 -0.0004548103 0.0012079911 + -0.0000401408 -0.0000283839 -0.0019166343 + 0.0006885448 0.0004868747 0.0012593365 + -0.0001731582 -0.0001208336 -0.0001756293 + 0.0001585088 0.0002818890 0.0000075163 + -0.0000114865 0.0001174436 0.0001637440 + 0.0432044035 -0.0153546833 0.0001476529 + 0.0000551831 -0.0001781481 -0.0004332472 + 0.0002496495 -0.0001633048 0.0002412652 + -0.0001716424 -0.0001229773 -0.0001756293 + 0.0003186037 0.0000554805 0.0000075163 + 0.0001068980 -0.0000499775 0.0001637440 + 0.0001573895 0.0001112912 0.0001630297 + 0.0002418005 0.0001709788 -0.0000492184 + -0.0000834531 -0.0000590103 -0.0001405349 + +29 + 0.0000000000000000 0.0000000000000000 -0.0100000000000000 + 0.0000086646 0.0000061268 0.0009719302 + 0.0003747607 0.0002649958 -0.0009194734 + -0.0006429043 0.0004555926 0.0014622228 + 0.0010198639 0.0001393375 0.0010408601 + 0.0002341070 0.0006637350 -0.0033866099 + -0.0002376160 -0.0006692181 0.0000544699 + -0.0001175042 -0.0018224516 0.0001446606 + -0.0002550132 0.0012148680 -0.0002468298 + 0.0002152354 -0.0007580002 0.0014622228 + 0.0004713233 0.0009150910 0.0010408601 + 0.0007038110 -0.0000005268 -0.0033866099 + -0.0000836126 -0.0000591231 0.0015434301 + 0.0013058119 0.0009233484 -0.0055047527 + -0.0016348205 -0.0011559927 -0.0050772413 + 0.0002566603 -0.0013054374 0.0002516913 + -0.0002161436 0.0003154844 -0.0008401737 + -0.0000081343 0.0009539123 0.0006232441 + -0.0007101502 -0.0000009538 0.0000544699 + -0.0017573919 0.0004966998 0.0001446606 + 0.0010603841 -0.0006453848 -0.0002468298 + -0.0011452247 0.0006771275 0.0002516913 + 0.0002253936 -0.0003089436 -0.0008401737 + 0.0008966457 -0.0003256398 0.0006232441 + -0.0001428747 -0.0001010277 -0.0000340824 + 0.0006590609 0.0004660265 0.0000725052 + 0.0000789235 0.0000558073 0.0000166387 + -0.0003652242 -0.0002582525 -0.0000986495 + -0.0002220601 -0.0001570202 -0.0010575864 + -0.0003795179 -0.0002683597 0.0262466268 + 0.0000655584 0.0000463568 -0.0009830059 + 0.0001752371 0.0009180450 -0.0000573063 + -0.0003185719 -0.0008506382 0.0001212266 + -0.0001025959 0.0000530435 -0.0000653597 + -0.0000559248 0.0001775978 -0.0003437511 + -0.0003364221 -0.0002105780 0.0002279751 + -0.0431085771 0.0157220288 0.0001219892 + 0.0009239535 -0.0001407999 -0.0000573063 + -0.0009081801 -0.0000168064 0.0001212266 + 0.0000158113 -0.0001144096 -0.0000653597 + 0.0000202034 0.0000142859 -0.0000932781 + -0.0001484514 -0.0001049710 0.0000764037 + 0.0001054575 0.0000745697 0.0000388044 + 0.0003310367 -0.0001203755 -0.0004239303 + -0.0000338767 0.0000413782 0.0005508180 + -0.0002411019 0.0003411288 -0.0003741379 + 0.0001487992 -0.0001119256 -0.0003437511 + -0.0003106756 -0.0002469892 0.0002279751 + 0.0004533452 -0.0458838325 0.0001219892 + -0.0000031455 0.0003522296 -0.0004239303 + 0.0000277195 -0.0000457320 0.0005508180 + 0.0002412521 -0.0003410226 -0.0003741379 + 0.0218587348 0.0154564596 -0.0375436778 + -0.0001088034 -0.0000769356 0.0000430330 + 0.0217019521 0.0153455975 0.0375301440 + -0.0214418580 -0.0151616832 -0.0376978950 + -0.0003231704 -0.0002285160 -0.0001196357 + -0.0216886266 -0.0153361750 0.0391439895 + -0.0000293325 0.0000461866 -0.0005282337 + -0.0029882170 0.0040462313 -0.0031763616 + 0.0027202652 -0.0039954285 -0.0032077990 + 0.0000745888 0.0462095441 -0.0001473825 + -0.0001510503 0.0001124238 0.0002290627 + -0.0002294120 -0.0000623413 -0.0000458045 + 0.0000337676 -0.0000430505 -0.0005282337 + 0.0028187511 -0.0041660618 -0.0031763616 + -0.0028601710 0.0038965001 -0.0032077990 + 0.0007737995 0.0005471589 -0.0012098889 + -0.0000301353 -0.0000213089 0.0018448522 + -0.0007202472 -0.0005092917 -0.0011689923 + 0.0001459091 0.0003440769 -0.0001871316 + -0.0001553269 -0.0001909784 -0.0000050795 + -0.0000110280 0.0001166947 0.0001932928 + 0.0435916389 -0.0153328584 -0.0001473825 + 0.0000556441 -0.0001798862 0.0002290627 + -0.0001352466 -0.0001955113 -0.0000458045 + 0.0003730352 0.0000228721 -0.0001871316 + -0.0002318318 -0.0000827841 -0.0000050795 + 0.0001063448 -0.0000492956 0.0001932928 + 0.0001611205 0.0001139294 -0.0003258864 + 0.0000809760 0.0000572587 0.0002098903 + 0.0000746251 0.0000527679 0.0001245530 + +32 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + 0.0002881617 0.0011600152 0.0008387489 + 0.0004005558 -0.0000004421 -0.0005869468 + -0.0000645758 0.0001623231 0.0014497080 + -0.0000051548 -0.0000582860 -0.0000981568 + -0.0004474614 -0.0001004422 -0.0013426717 + 0.0001645680 -0.0006679165 -0.0001782039 + -0.0007131315 -0.0008518708 -0.0008825176 + 0.0048651356 -0.0007889403 0.0015205532 + 0.0008060566 0.0000048214 0.0004732503 + 0.0001609504 -0.0010118806 0.0002166274 + 0.0005937454 -0.0006519334 -0.0007173473 + 0.0006736654 0.0004382963 -0.0006714210 + 0.0001945967 -0.0003244537 -0.0004174803 + 0.0021527573 -0.0003042302 0.0015064575 + 0.0005950319 -0.0006482948 -0.0007195755 + 0.0023722567 0.0003166079 0.0011262733 + 0.0037344249 0.0012844263 0.0042535306 + -0.0008861784 0.0001584448 -0.0002528961 + -0.0011008472 -0.0000033929 0.0001713136 + -0.0003131338 0.0004981040 0.0000744333 + -0.0008663193 0.0006599523 -0.0002349007 + 0.0001246072 -0.0000433552 0.0000011432 + -0.0009417371 0.0004542912 0.0002612399 + -0.0004742662 0.0000423526 0.0003535229 + -0.0009235223 0.0005058102 0.0002296911 + -0.0011607184 0.0000557134 -0.0005791614 + 0.0000466242 -0.0001602810 -0.0002348193 + -0.0001188325 0.0001229415 0.0001321547 + -0.0004053684 0.0002791067 0.0001030688 + -0.0006838078 -0.0001114917 -0.0002254718 + -0.0004396258 0.0001822122 0.0001624043 + -0.0227379139 -0.0001346621 -0.0133476430 + -0.0006636394 0.0000255325 0.0009099415 + -0.0005823702 0.0001754171 -0.0004011668 + -0.0003023915 0.0010472959 0.0002842418 + -0.0435198636 0.0154599554 0.0001197965 + 0.0000608831 -0.0001107468 -0.0001456979 + 0.0000305411 -0.0004363718 -0.0003071025 + 0.0002779358 -0.0004135742 0.0005779598 + 0.0001425057 -0.0001196881 -0.0005010308 + 0.0010588824 -0.0001441755 0.0003759084 + 0.0001509776 -0.0000436672 0.0001198078 + 0.0005934165 0.0004787401 0.0000315312 + 0.0001809851 0.0000412068 0.0000678333 + 0.0000141182 -0.0000767728 -0.0001172184 + 0.0001948951 -0.0002306525 -0.0002641312 + 0.0003649423 -0.0001117925 0.0002270687 + 0.0004733412 -0.0457220157 0.0000246411 + 0.0004223672 0.0000506295 0.0001276060 + 0.0008374190 0.0001128362 0.0006677448 + 0.0003770167 -0.0000203633 -0.0007985393 + 0.0219551292 0.0150376561 -0.0371829071 + 0.0000932615 -0.0008229443 -0.0003070609 + 0.0217536260 0.0153462647 0.0376198072 + -0.0218496471 -0.0152859062 -0.0375766799 + -0.0003464200 -0.0000420505 -0.0001638635 + -0.0217734297 -0.0151133915 0.0377300742 + -0.0003161638 0.0000435268 -0.0002162687 + -0.0000512591 0.0002303477 0.0003465618 + 0.0039426372 0.0040250453 -0.0007816728 + -0.0001282694 0.0461083670 0.0002395569 + 0.0011624570 -0.0038384919 0.0040337407 + -0.0017704391 0.0001033576 -0.0008533813 + -0.0000410301 -0.0000985219 -0.0001845744 + 0.0001174676 0.0001363885 0.0001979558 + -0.0001295384 -0.0001751022 -0.0000115956 + 0.0000907404 0.0000607927 0.0002442486 + -0.0013914017 -0.0000039629 -0.0008097975 + 0.0013878664 -0.0041391129 0.0040665598 + -0.0000287521 0.0001099647 -0.0001861626 + 0.0042816665 0.0040457900 -0.0009456491 + 0.0006849456 0.0006161219 0.0014015764 + 0.0436094351 -0.0153459894 0.0001180234 + 0.0002186354 -0.0003539780 -0.0000963412 + 0.0001404213 -0.0004112521 -0.0000367598 + 0.0003212517 -0.0000637353 -0.0002740778 + 0.0002812587 -0.0002001337 -0.0001644321 + 0.0005178721 -0.0000481540 0.0004167191 + 0.0003002722 0.0000408745 -0.0003136297 + 0.0005745566 0.0001121738 0.0003185388 + 0.0013903446 -0.0004992834 -0.0000126105 + +32 + -0.0086602540378444 0.0000000000000000 -0.0050000000000000 + -0.0002812959 -0.0011579521 0.0007859283 + -0.0004070032 -0.0000018823 -0.0010373007 + 0.0005383286 0.0011602959 -0.0006337030 + 0.0002756887 -0.0000559566 0.0000677922 + 0.0009112056 0.0014214907 0.0005385773 + -0.0006377249 -0.0006544619 -0.0006376789 + 0.0002447148 -0.0004636301 0.0016929733 + -0.0054709441 0.0010359027 -0.0014670290 + 0.0005975161 0.0000006378 0.0003460175 + -0.0001775582 0.0013013390 -0.0002467109 + 0.0008037084 0.0006450993 -0.0000908927 + -0.0008326416 -0.0005515165 0.0008879267 + -0.0003536575 0.0002116341 0.0001414128 + -0.0030271366 -0.0003049961 -0.0014860201 + 0.0003394158 -0.0006681185 0.0007132857 + -0.0028078143 0.0003153408 -0.0018658974 + -0.0040300427 -0.0005368931 -0.0032034890 + -0.0005144015 -0.0001635212 -0.0005640188 + -0.0002951565 -0.0000016973 0.0006356838 + 0.0003343841 -0.0007962780 -0.0000429938 + -0.0000616575 0.0006587376 0.0002312517 + 0.0003296052 -0.0005754436 -0.0007493978 + 0.0013725928 -0.0010757097 0.0004881717 + 0.0006416112 0.0000726915 -0.0005751269 + 0.0017918448 0.0001101139 -0.0002379941 + 0.0013181819 0.0000547513 0.0008504612 + -0.0000447531 0.0001574354 0.0002312527 + 0.0001221966 -0.0001123405 -0.0001129010 + 0.0000905033 -0.0005014833 -0.0002602958 + 0.0003707003 -0.0001109626 0.0003847949 + 0.0002366800 -0.0000880332 -0.0005134812 + 0.0228600906 -0.0001344729 0.0129786861 + 0.0004603531 0.0000704425 -0.0005458767 + 0.0004723059 0.0001764214 0.0002088088 + 0.0001928397 -0.0006861998 -0.0000825297 + -0.0432732386 0.0152223385 -0.0001258413 + -0.0000413164 -0.0001109806 -0.0002050846 + -0.0000367751 0.0003441599 0.0003044120 + -0.0002497591 0.0001886175 -0.0002153922 + -0.0001050083 0.0001511673 0.0004225953 + -0.0010099602 0.0001750079 -0.0002973141 + -0.0002793676 -0.0000467906 -0.0001277802 + -0.0003592261 -0.0001210019 -0.0000257898 + -0.0002476360 0.0000429599 -0.0001827410 + -0.0000781543 0.0001613562 0.0002183712 + 0.0001036194 0.0000071443 0.0000714912 + -0.0000649970 -0.0001095972 -0.0000230801 + -0.0004840766 -0.0463536275 -0.0000409672 + -0.0000091622 0.0000483275 -0.0001197888 + -0.0007843502 -0.0002048138 -0.0007873044 + -0.0003195234 -0.0000707531 0.0009041723 + 0.0214360862 0.0156459555 -0.0380078028 + 0.0000280959 0.0009124627 0.0003020780 + 0.0216496585 0.0153416305 0.0375522139 + -0.0215580965 -0.0153975909 -0.0375907335 + 0.0002275944 -0.0000428214 0.0001673253 + -0.0216389872 -0.0155728553 0.0374515037 + 0.0002581509 0.0000436053 0.0001144000 + -0.0000029307 -0.0001409476 -0.0002318585 + -0.0044003423 -0.0041746367 0.0007920575 + 0.0001199430 0.0459706929 -0.0002360688 + -0.0014703620 0.0041125991 -0.0042828172 + 0.0014845669 0.0001025387 0.0010245601 + 0.0001049846 0.0000141354 0.0000836960 + -0.0000506592 -0.0002184635 -0.0000827384 + -0.0000995435 -0.0001741065 0.0000056121 + 0.0000368842 0.0000291465 -0.0002343680 + 0.0013314382 -0.0000047173 0.0007610028 + -0.0014226899 0.0040578885 -0.0039420061 + 0.0000007418 0.0001095430 -0.0001680870 + -0.0042364410 -0.0039006015 0.0009315538 + -0.0006979957 -0.0003862954 -0.0010338057 + 0.0432085182 -0.0153496375 -0.0001194035 + -0.0001098453 -0.0000018536 -0.0001059622 + -0.0000305420 0.0000561378 0.0002297869 + -0.0001212526 -0.0000341183 -0.0000862042 + -0.0001988321 0.0001745055 0.0001701705 + -0.0003113459 -0.0000482100 -0.0000600228 + 0.0000144185 0.0001833053 0.0001519131 + -0.0002540555 0.0001138314 -0.0001592525 + -0.0014209081 0.0005045789 0.0000036121 + +36 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + 0.0004252421 -0.0000019059 0.0010782898 + -0.0004515331 -0.0002005768 -0.0020667312 + 0.0006665423 0.0006805942 0.0006603456 + 0.0001837448 -0.0002126477 -0.0002411671 + 0.0005429925 0.0017818233 -0.0003978270 + -0.0008783387 -0.0014077653 -0.0013274823 + -0.0005023086 -0.0011747346 0.0014126875 + -0.0002749434 0.0000613783 -0.0000585084 + 0.0046285044 0.0009370387 0.0042024460 + 0.0000941538 0.0001603202 -0.0007246633 + 0.0031461164 -0.0000541670 0.0012273251 + -0.0002063064 -0.0006895097 -0.0002042509 + 0.0000058622 -0.0000427420 -0.0000664128 + -0.0002670825 -0.0014873041 0.0002351577 + 0.0030015964 -0.0004629310 0.0014776409 + 0.0005464373 0.0008136774 -0.0011739000 + 0.0000509639 0.0000576067 0.0001234953 + -0.0019698343 -0.0000540358 -0.0012255245 + -0.0013166424 -0.0000537486 0.0009607843 + -0.0013705866 0.0000494028 0.0002556320 + -0.0007945101 0.0014230645 0.0000564247 + 0.0000423154 -0.0001363263 -0.0001981890 + -0.0001818588 -0.0003085728 0.0001238113 + -0.0010916496 0.0008383558 -0.0002275010 + 0.0000296549 0.0002896782 -0.0002425411 + -0.0000456966 0.0003352092 0.0005210113 + 0.0039935477 -0.0005198437 0.0014567746 + -0.0001147118 0.0001208635 0.0001311403 + -0.0006782755 -0.0000962855 -0.0003883064 + -0.0004108552 0.0007634424 0.0002698460 + -0.0006319345 0.0000347865 -0.0004685712 + -0.0001652649 0.0001320081 0.0001201527 + -0.0003481715 0.0004210622 0.0003516307 + -0.0006243717 0.0001595265 0.0006396674 + -0.0003871265 0.0003108809 0.0004191028 + -0.0652877361 0.0148780576 -0.0133981256 + 0.0000749815 -0.0002545503 -0.0003723883 + 0.0004854582 0.0002587897 0.0000263653 + 0.0002424243 -0.0001333544 0.0003370977 + 0.0002901649 -0.0002935833 0.0003646233 + 0.0000800809 0.0000087778 0.0000605689 + -0.0000148677 -0.0004603563 -0.0003073917 + 0.0003621958 0.0002054106 0.0001296473 + 0.0001158879 -0.0000905234 -0.0005338671 + 0.0010220232 -0.0001148637 0.0004024937 + 0.0001995106 -0.0001155627 -0.0000735256 + 0.0004081329 -0.0004014199 0.0004910445 + 0.0000022687 -0.0468379520 -0.0002881921 + 0.0006710942 0.0003423471 0.0000355821 + 0.0000733039 -0.0001629569 -0.0002237855 + 0.0002404065 -0.0000504602 0.0001719717 + 0.0219983190 0.0153762733 -0.0383864687 + 0.0002737699 0.0000439056 0.0001141847 + 0.0224250289 0.0154958085 0.0382516459 + -0.0233219596 -0.0153333378 -0.0385041754 + -0.0001894451 0.0000333777 0.0002334406 + -0.0203808049 -0.0192490942 0.0416680381 + -0.0001062168 0.0002687828 0.0000892850 + -0.0001812153 0.0001011922 0.0000606215 + -0.0005039821 -0.0000517415 -0.0001655036 + 0.0041186325 0.0500457790 -0.0007662321 + -0.0004433707 0.0001196935 -0.0002704857 + -0.0001790108 0.0002944095 0.0003774167 + 0.0007438365 0.0004633352 0.0011860775 + 0.0000421715 -0.0000388332 0.0000359393 + 0.0042058161 0.0038466907 -0.0009455048 + 0.0000638238 0.0000224089 -0.0000015636 + -0.0000846471 -0.0000766924 -0.0001741091 + 0.0000733027 0.0001550658 0.0001815963 + 0.0014185557 -0.0040368723 0.0038821719 + 0.0000404092 0.0000620289 0.0002385695 + -0.0013451718 0.0000903477 -0.0006290981 + 0.0451557804 -0.0159443131 0.0000337477 + 0.0002012990 -0.0002517523 -0.0003510316 + 0.0004652762 -0.0001728800 0.0003430119 + 0.0001850922 -0.0002975919 -0.0003229607 + 0.0002551514 -0.0000156036 0.0001218312 + 0.0002646094 -0.0002349190 0.0001932251 + 0.0005682456 0.0001183614 0.0001646637 + 0.0003870290 0.0001113359 -0.0000188119 + 0.0002386746 -0.0001905877 -0.0001734295 + +36 + -0.0086602540378444 0.0000000000000000 -0.0050000000000000 + -0.0004151230 0.0000046387 0.0005490982 + 0.0004451598 0.0001964704 0.0004473855 + -0.0001896115 0.0006424814 0.0001585009 + 0.0000925474 0.0000973021 0.0002123260 + -0.0000763299 -0.0004682811 -0.0004068255 + 0.0004074985 0.0000899483 0.0005126167 + 0.0000397012 -0.0001400956 -0.0006077972 + -0.0000000352 0.0000551440 0.0000900294 + -0.0030732308 -0.0008009260 -0.0030822373 + -0.0001084655 0.0001385707 0.0006871749 + -0.0017512455 0.0000625871 -0.0020261424 + 0.0000426595 0.0005660169 0.0004254187 + -0.0001635492 -0.0000678284 -0.0002051884 + -0.0006012120 0.0008692781 -0.0002208286 + -0.0020737720 -0.0008496557 -0.0014675101 + -0.0009745394 -0.0001866511 0.0004257933 + -0.0005003109 0.0005556483 0.0006185153 + 0.0005667925 0.0000494228 0.0004079449 + -0.0000738701 0.0000540784 -0.0001578011 + 0.0013886282 -0.0003463232 -0.0002181710 + -0.0001326045 -0.0001120475 -0.0000560703 + 0.0004083870 -0.0004812219 -0.0005500497 + 0.0006163344 -0.0003222906 0.0006250083 + 0.0012574679 -0.0007173004 0.0000090052 + 0.0008459656 0.0003272045 0.0002272754 + 0.0002167256 -0.0002264013 -0.0002445852 + -0.0043172322 0.0006445917 -0.0014399413 + 0.0001214591 -0.0001127005 -0.0001139147 + 0.0003603225 -0.0001339716 0.0002287460 + 0.0000952731 -0.0009824621 -0.0001072948 + 0.0004294568 0.0000615699 0.0001090018 + 0.0000880891 -0.0001034792 -0.0001181226 + 0.0001533842 -0.0003190707 0.0000135440 + 0.0005115580 0.0001949693 -0.0008283214 + 0.0002821414 0.0000451095 -0.0002094699 + -0.0214799388 0.0155186475 0.0129403968 + -0.0000536136 0.0000284254 0.0000154647 + -0.0004820226 -0.0003444025 -0.0000251358 + -0.0002146376 -0.0000860503 0.0000254433 + -0.0002465887 0.0003215052 -0.0004329193 + -0.0000442141 0.0000228830 0.0000118407 + -0.0001123900 0.0003729870 0.0002964808 + -0.0001309553 0.0001506389 -0.0001194986 + -0.0001838995 0.0001707277 0.0004203388 + -0.0010785356 0.0001969067 -0.0003011455 + 0.0001032602 -0.0001102713 -0.0001204549 + -0.0001055042 0.0001792880 -0.0002869853 + 0.0000035562 -0.0452064194 0.0002782340 + -0.0002552828 -0.0002443500 -0.0000275610 + -0.0000169029 0.0000749771 0.0001126782 + -0.0001807956 -0.0000365775 -0.0000722368 + 0.0213937933 0.0152943072 -0.0367707433 + -0.0001542732 0.0000384393 -0.0001181749 + 0.0209838124 0.0151897321 0.0369197385 + -0.0200598208 -0.0153661188 -0.0366743099 + 0.0000757207 -0.0001154930 -0.0002277384 + -0.0230212031 -0.0113833458 0.0334490146 + 0.0000518021 -0.0001831451 -0.0001863102 + 0.0001298760 -0.0000126126 0.0000543876 + 0.0000915928 -0.0000478267 0.0001599267 + -0.0041622765 0.0419577539 0.0007843955 + 0.0001450399 0.0001033446 0.0000673536 + -0.0001144451 -0.0000709940 -0.0001820075 + -0.0006759031 -0.0005395645 -0.0012713380 + 0.0000201455 -0.0000439641 0.0000840058 + -0.0043907868 -0.0041515869 0.0009232649 + 0.0000617632 0.0000737485 0.0000119219 + 0.0000403145 0.0000507208 0.0001061023 + -0.0001097098 -0.0001792852 -0.0001068440 + -0.0014353885 0.0042075417 -0.0041956350 + -0.0000377522 0.0000242417 -0.0002314783 + 0.0013088911 0.0001579033 0.0010135436 + 0.0416234325 -0.0147362085 -0.0000328278 + -0.0000886446 -0.0001065529 0.0001484080 + -0.0003505078 -0.0001821905 -0.0001509288 + 0.0000192007 0.0001984797 -0.0000383855 + -0.0001724275 -0.0000123629 -0.0001197396 + -0.0000565411 0.0001407869 0.0001644398 + -0.0002497738 0.0001027283 -0.0003254052 + -0.0000660155 0.0001139893 0.0001808499 + -0.0002398709 0.0001842935 0.0001624605 + +42 + 0.0086602540378444 0.0000000000000000 0.0050000000000000 + -0.0001755020 0.0001584804 0.0009715489 + -0.0004078632 -0.0000052120 -0.0010461300 + -0.0009123708 0.0014326816 0.0003080601 + -0.0002668548 -0.0000552912 -0.0002506997 + 0.0001417669 0.0009240760 -0.0000371035 + -0.0014694563 -0.0006577790 -0.0011139767 + -0.0007797353 -0.0006695164 0.0008549937 + -0.0014927043 0.0002589857 0.0002508977 + 0.0011039667 -0.0000036610 0.0006319392 + 0.0000340720 -0.0000109586 -0.0002490686 + 0.0009799452 0.0011519344 -0.0003648882 + -0.0007610869 -0.0008169532 -0.0008329114 + -0.0003793355 -0.0005479210 0.0009061759 + -0.0005743311 -0.0003099240 -0.0000752685 + 0.0054532243 -0.0014932227 0.0015063333 + 0.0001870941 0.0003112184 -0.0001443609 + -0.0007021933 0.0001123956 -0.0009107031 + -0.0008130620 -0.0006590044 -0.0007270350 + -0.0005982927 -0.0000033350 0.0004699372 + 0.0001770825 -0.0013099176 0.0002504164 + 0.0021080502 0.0006735117 0.0014992607 + 0.0009795481 0.0001905325 -0.0011529706 + 0.0004873684 -0.0005804637 0.0000894489 + 0.0040351774 0.0010399033 0.0037701483 + 0.0005636122 0.0003216289 -0.0007264259 + 0.0026647382 0.0000627251 0.0016356870 + -0.0003262777 0.0006506527 0.0000572724 + 0.0004823750 0.0003027845 0.0000366392 + -0.0001162644 -0.0002311585 -0.0002480598 + 0.0000540674 -0.0001127811 0.0002050529 + 0.0002454956 0.0000681438 -0.0010225606 + 0.0001712707 0.0000142414 0.0001199273 + 0.0007105481 0.0002032964 0.0009026605 + -0.0000047665 0.0001801137 -0.0000682943 + 0.0002069559 -0.0001181729 0.0004975809 + -0.0433449707 0.0144825806 -0.0003005112 + -0.0005138185 -0.0001140112 -0.0004882795 + -0.0001217772 0.0000760087 0.0001253067 + -0.0002290259 0.0002787634 0.0003672875 + -0.0005435752 -0.0000110624 0.0006884155 + -0.0003150567 0.0001455394 0.0003774407 + -0.0227553580 -0.0001987796 -0.0133488355 + -0.0000028392 0.0003017263 0.0001274871 + -0.0005592690 0.0000407789 -0.0003641508 + -0.0002768887 0.0009118059 0.0002330155 + 0.0004140238 -0.0004131014 0.0002982390 + 0.0002011730 -0.0001114153 0.0001369381 + 0.0000287016 -0.0464327187 -0.0003066691 + 0.0004198102 0.0000476384 0.0001286525 + 0.0001509362 -0.0001839347 -0.0005204594 + 0.0010663186 -0.0002055022 0.0003887804 + 0.0217386776 0.0152276846 -0.0377473688 + 0.0005368236 0.0003436303 0.0000273997 + 0.0219025804 0.0153508442 0.0377037105 + -0.0216130890 -0.0155697025 -0.0377180931 + 0.0001519322 -0.0000437389 0.0001252364 + -0.0215348212 -0.0155013227 0.0375849751 + 0.0003849707 0.0000417056 0.0001861044 + 0.0001929142 0.0000273092 -0.0000342084 + 0.0000258749 -0.0002393457 -0.0001704914 + 0.0013842911 0.0455061901 -0.0000016698 + -0.0000096929 0.0000405038 -0.0003353543 + 0.0002645749 0.0001133744 0.0003347326 + -0.0000393627 0.0001914692 0.0000910906 + -0.0001175657 0.0000158807 0.0000603535 + -0.0004013618 -0.0001765307 -0.0001689941 + 0.0042168747 0.0041160910 -0.0007726952 + -0.0003082329 -0.0000135425 -0.0002038061 + -0.0000425017 0.0001686190 0.0003274536 + -0.0016321775 0.0001031083 -0.0011285880 + -0.0001324360 0.0001176164 0.0002385362 + 0.0013040088 -0.0038375617 0.0043107984 + 0.0433887344 -0.0153395965 -0.0000091120 + -0.0000181470 -0.0002358654 -0.0002384685 + 0.0001421041 -0.0000011071 0.0002399250 + 0.0015117560 -0.0041788567 0.0038406927 + 0.0000683830 -0.0000013747 0.0002409590 + -0.0012641316 -0.0000410762 -0.0005889849 + 0.0008559819 0.0006171057 0.0011406456 + 0.0001466512 0.0001134519 0.0000750152 + 0.0042717395 0.0039986871 -0.0009459751 + +42 + -0.0086602540378444 0.0000000000000000 -0.0050000000000000 + 0.0001835694 -0.0001532860 0.0006571270 + 0.0004013109 -0.0000022850 -0.0005798420 + 0.0013848068 -0.0001053924 0.0005125087 + 0.0005430185 -0.0000600247 0.0002169556 + 0.0003323761 0.0003884739 -0.0007680972 + 0.0009972441 -0.0006635101 0.0002958892 + 0.0003200997 -0.0006464871 -0.0000539227 + 0.0012166530 -0.0001406978 -0.0002150191 + 0.0003021489 0.0000097228 0.0001840310 + -0.0000529591 0.0003094383 0.0002182845 + 0.0004156955 -0.0011554109 -0.0004424047 + 0.0005945212 0.0007040443 0.0010571659 + 0.0002217301 0.0004380605 -0.0011835677 + -0.0002980154 -0.0003075312 0.0000883684 + -0.0048577485 0.0003070291 -0.0014852155 + -0.0006196116 0.0003111666 -0.0006030576 + 0.0002532387 0.0005048151 0.0016627901 + -0.0005906041 0.0006484773 -0.0000938590 + -0.0008000378 0.0000050490 0.0003357032 + -0.0001577256 0.0010094668 -0.0002158439 + -0.0030457201 0.0006510316 -0.0014904695 + -0.0005294414 -0.0008037170 0.0004036673 + -0.0000602098 -0.0000479042 0.0006523974 + -0.0037206569 -0.0007906812 -0.0036902408 + 0.0003109793 0.0002954620 0.0007084580 + -0.0025116480 0.0000565407 -0.0013544979 + 0.0003294961 -0.0006543792 -0.0000500528 + -0.0004715841 -0.0002973130 -0.0000235788 + -0.0002061531 0.0000051010 0.0000880162 + -0.0003720414 -0.0001132066 -0.0000430946 + -0.0004536654 0.0000261642 0.0006694123 + -0.0002557969 0.0000149017 -0.0001252558 + -0.0009148389 -0.0001056190 -0.0005436656 + -0.0001056996 0.0001758740 -0.0001270454 + -0.0003186604 0.0004787678 -0.0002935841 + -0.0434430279 0.0162075585 0.0002999926 + 0.0005367054 -0.0001113896 0.0001268661 + 0.0001220067 -0.0001639754 -0.0001255133 + 0.0002601551 -0.0005019774 -0.0000012540 + 0.0005789887 0.0000381323 -0.0007635409 + 0.0003578782 -0.0001189689 -0.0003030025 + 0.0228363482 -0.0001934291 0.0129753806 + 0.0002364781 0.0000582294 -0.0001202666 + 0.0004923023 0.0000391905 0.0002483057 + 0.0002135432 -0.0008222930 -0.0001318761 + -0.0001138980 0.0001878147 -0.0004913393 + 0.0000987327 -0.0001108940 0.0000736633 + -0.0000312279 -0.0456157676 0.0002995960 + -0.0000042445 0.0000515562 -0.0001201253 + -0.0000985105 0.0000906095 0.0004033186 + -0.0010025733 0.0001156971 -0.0002869538 + 0.0216518237 0.0154500952 -0.0374198715 + -0.0004148040 -0.0002570377 -0.0000305003 + 0.0214886760 0.0153380230 0.0374577691 + -0.0217841406 -0.0151201360 -0.0374526925 + -0.0002723119 -0.0000424264 -0.0001193316 + -0.0218581106 -0.0151734610 0.0375782772 + -0.0004434067 0.0000461003 -0.0002881245 + -0.0002496799 0.0000623584 0.0001510954 + -0.0004418805 0.0001384858 0.0001621382 + -0.0014020432 0.0465481642 0.0000066943 + -0.0002913618 0.0001821462 0.0001305221 + -0.0005635452 0.0001123770 -0.0001415954 + 0.0001056032 -0.0002762261 -0.0001922248 + 0.0001851277 -0.0000983556 0.0000544066 + 0.0001699098 -0.0001816818 0.0001622839 + -0.0041322106 -0.0040767407 0.0008003246 + 0.0002679667 -0.0000125764 0.0001304554 + 0.0000058947 -0.0001964588 -0.0002527607 + 0.0016181320 0.0001043944 0.0007454786 + 0.0001312269 -0.0000283994 -0.0002376630 + -0.0013333724 0.0041166773 -0.0039981462 + 0.0433959420 -0.0153397867 0.0000096385 + 0.0001273491 -0.0001220187 0.0000336267 + -0.0000295641 -0.0003549843 -0.0000444367 + -0.0013028053 0.0040284312 -0.0041577845 + 0.0000129878 -0.0000293035 -0.0002374522 + 0.0014555907 -0.0000340969 0.0009755678 + -0.0005307492 -0.0003862650 -0.0012919079 + 0.0001724501 0.0001108017 0.0000907129 + -0.0042424213 -0.0039503344 0.0009237897 diff --git a/abipy/data/refs/embedding_ifc/SrCl2_Eu_POSCAR b/abipy/data/refs/embedding_ifc/SrCl2_Eu_POSCAR new file mode 100644 index 000000000..f082a1e5e --- /dev/null +++ b/abipy/data/refs/embedding_ifc/SrCl2_Eu_POSCAR @@ -0,0 +1,89 @@ +Sr26 Eu1 Cl54 +1.0 + 12.9465808433614757 0.0000000000000000 7.4747119350000020 + 4.3155269477871592 12.2061534766943343 7.4747119350000020 + 0.0000000000000000 0.0000000000000000 14.9494238700000004 +Sr Eu Cl +26 1 54 +direct + 0.0000000000000000 0.0000000000000000 0.3333333333333333 Sr + 0.0000000000000000 0.0000000000000000 0.6666666666666666 Sr + 0.0000000000000000 0.3333333333333333 0.0000000000000000 Sr + 0.0000005200000000 0.3333333333333333 0.3333333333333333 Sr + 0.0000000000000000 0.3333333333333333 0.6666666666666666 Sr + 0.0000000000000000 0.6666666666666666 0.0000000000000000 Sr + 0.0000000000000000 0.6666666666666666 0.3333333333333333 Sr + 0.9999994800000001 0.6666666666666666 0.6666666666666666 Sr + 0.3333333333333333 0.0000000000000000 0.0000000000000000 Sr + 0.3333333333333333 0.0000005200000000 0.3333333333333333 Sr + 0.3333333333333333 0.0000000000000000 0.6666666666666666 Sr + 0.3333333333333333 0.3333333333333333 0.0000005200000000 Sr + 0.3333333333333333 0.3333333333333333 0.3333333333333333 Sr + 0.3333333333333333 0.3333333333333333 0.6666666666666666 Sr + 0.3333333333333333 0.6666666666666666 0.0000000000000000 Sr + 0.3333333333333333 0.6666666666666666 0.3333333333333333 Sr + 0.3333333333333333 0.6666666666666666 0.6666666666666666 Sr + 0.6666666666666666 0.0000000000000000 0.0000000000000000 Sr + 0.6666666666666666 0.0000000000000000 0.3333333333333333 Sr + 0.6666666666666666 0.9999994800000001 0.6666666666666666 Sr + 0.6666666666666666 0.3333333333333333 0.0000000000000000 Sr + 0.6666666666666666 0.3333333333333333 0.3333333333333333 Sr + 0.6666666666666666 0.3333333333333333 0.6666666666666666 Sr + 0.6666666666666666 0.6666666666666666 0.9999994800000001 Sr + 0.6666666666666666 0.6666666666666666 0.3333333333333333 Sr + 0.6666666666666666 0.6666666666666666 0.6666666666666666 Sr + 0.0000000000000000 0.0000000000000000 0.0000000000000000 Eu + 0.2500000000000000 0.2500000000000000 0.2500000000000000 Cl + 0.2499982700000000 0.2499982700000000 0.5833335800000000 Cl + 0.2499982700000000 0.2499982700000000 0.9166698700000000 Cl + 0.2499982700000000 0.5833335800000000 0.2499982700000000 Cl + 0.2499999100000000 0.5833333600000000 0.5833333600000000 Cl + 0.2499982700000000 0.5833335800000000 0.9166698700000000 Cl + 0.2499982700000000 0.9166698700000000 0.2499982700000000 Cl + 0.2499982700000000 0.9166698700000000 0.5833335800000000 Cl + 0.2500909200000000 0.9166363600000000 0.9166363600000000 Cl + 0.5833335800000000 0.2499982700000000 0.2499982700000000 Cl + 0.5833333600000000 0.2499999100000000 0.5833333600000000 Cl + 0.5833335800000000 0.2499982700000000 0.9166698700000000 Cl + 0.5833333600000000 0.5833333600000000 0.2499999100000000 Cl + 0.5833333600000000 0.5833333600000000 0.5833333600000000 Cl + 0.5833329000000000 0.5833329000000000 0.9166671000000000 Cl + 0.5833335800000000 0.9166698700000000 0.2499982700000000 Cl + 0.5833329000000000 0.9166671000000000 0.5833329000000000 Cl + 0.5833329000000000 0.9166671000000000 0.9166671000000000 Cl + 0.9166698700000000 0.2499982700000000 0.2499982700000000 Cl + 0.9166698700000000 0.2499982700000000 0.5833335800000000 Cl + 0.9166363600000000 0.2500909200000000 0.9166363600000000 Cl + 0.9166698700000000 0.5833335800000000 0.2499982700000000 Cl + 0.9166671000000000 0.5833329000000000 0.5833329000000000 Cl + 0.9166671000000000 0.5833329000000000 0.9166671000000000 Cl + 0.9166363600000000 0.9166363600000000 0.2500909200000000 Cl + 0.9166671000000000 0.9166671000000000 0.5833329000000000 Cl + 0.9166363600000000 0.9166363600000000 0.9166363600000000 Cl + 0.0833636400000000 0.0833636400000000 0.0833636400000000 Cl + 0.0833329000000000 0.0833329000000000 0.4166671000000000 Cl + 0.0833636400000000 0.0833636400000000 0.7499090800000000 Cl + 0.0833329000000000 0.4166671000000000 0.0833329000000000 Cl + 0.0833329000000000 0.4166671000000000 0.4166671000000000 Cl + 0.0833301300000000 0.4166664200000000 0.7500017300000000 Cl + 0.0833636400000000 0.7499090800000000 0.0833636400000000 Cl + 0.0833301300000000 0.7500017300000000 0.4166664200000000 Cl + 0.0833301300000000 0.7500017300000000 0.7500017300000000 Cl + 0.4166671000000000 0.0833329000000000 0.0833329000000000 Cl + 0.4166671000000000 0.0833329000000000 0.4166671000000000 Cl + 0.4166664200000000 0.0833301300000000 0.7500017300000000 Cl + 0.4166671000000000 0.4166671000000000 0.0833329000000000 Cl + 0.4166666400000000 0.4166666400000000 0.4166666400000000 Cl + 0.4166666400000000 0.4166666400000000 0.7500000900000000 Cl + 0.4166664200000000 0.7500017300000000 0.0833301300000000 Cl + 0.4166666400000000 0.7500000900000000 0.4166666400000000 Cl + 0.4166664200000000 0.7500017300000000 0.7500017300000000 Cl + 0.7499090800000000 0.0833636400000000 0.0833636400000000 Cl + 0.7500017300000000 0.0833301300000000 0.4166664200000000 Cl + 0.7500017300000000 0.0833301300000000 0.7500017300000000 Cl + 0.7500017300000000 0.4166664200000000 0.0833301300000000 Cl + 0.7500000900000000 0.4166666400000000 0.4166666400000000 Cl + 0.7500017300000000 0.4166664200000000 0.7500017300000000 Cl + 0.7500017300000000 0.7500017300000000 0.0833301300000000 Cl + 0.7500017300000000 0.7500017300000000 0.4166664200000000 Cl + 0.7500000000000000 0.7500000000000000 0.7500000000000000 Cl diff --git a/abipy/data/refs/nv_center_delta_SCF/relaxed_ex_nscf_GSR.nc b/abipy/data/refs/nv_center_delta_SCF/relaxed_ex_nscf_GSR.nc new file mode 100644 index 000000000..675253c6d Binary files /dev/null and b/abipy/data/refs/nv_center_delta_SCF/relaxed_ex_nscf_GSR.nc differ diff --git a/abipy/data/refs/nv_center_delta_SCF/relaxed_ex_out_GSR.nc b/abipy/data/refs/nv_center_delta_SCF/relaxed_ex_out_GSR.nc new file mode 100644 index 000000000..7fb5c2105 Binary files /dev/null and b/abipy/data/refs/nv_center_delta_SCF/relaxed_ex_out_GSR.nc differ diff --git a/abipy/data/refs/nv_center_delta_SCF/relaxed_gs_nscf_GSR.nc b/abipy/data/refs/nv_center_delta_SCF/relaxed_gs_nscf_GSR.nc new file mode 100644 index 000000000..4221294e6 Binary files /dev/null and b/abipy/data/refs/nv_center_delta_SCF/relaxed_gs_nscf_GSR.nc differ diff --git a/abipy/data/refs/nv_center_delta_SCF/relaxed_gs_out_GSR.nc b/abipy/data/refs/nv_center_delta_SCF/relaxed_gs_out_GSR.nc new file mode 100644 index 000000000..4ebdc0792 Binary files /dev/null and b/abipy/data/refs/nv_center_delta_SCF/relaxed_gs_out_GSR.nc differ diff --git a/abipy/data/refs/nv_center_delta_SCF/unrelaxed_ex_nscf_GSR.nc b/abipy/data/refs/nv_center_delta_SCF/unrelaxed_ex_nscf_GSR.nc new file mode 100644 index 000000000..2e7ab09cd Binary files /dev/null and b/abipy/data/refs/nv_center_delta_SCF/unrelaxed_ex_nscf_GSR.nc differ diff --git a/abipy/data/refs/nv_center_delta_SCF/unrelaxed_ex_out_GSR.nc b/abipy/data/refs/nv_center_delta_SCF/unrelaxed_ex_out_GSR.nc new file mode 100644 index 000000000..3e4836f7a Binary files /dev/null and b/abipy/data/refs/nv_center_delta_SCF/unrelaxed_ex_out_GSR.nc differ diff --git a/abipy/data/refs/nv_center_delta_SCF/unrelaxed_gs_nscf_GSR.nc b/abipy/data/refs/nv_center_delta_SCF/unrelaxed_gs_nscf_GSR.nc new file mode 100644 index 000000000..bbf15ea35 Binary files /dev/null and b/abipy/data/refs/nv_center_delta_SCF/unrelaxed_gs_nscf_GSR.nc differ diff --git a/abipy/data/refs/nv_center_delta_SCF/unrelaxed_gs_out_GSR.nc b/abipy/data/refs/nv_center_delta_SCF/unrelaxed_gs_out_GSR.nc new file mode 100644 index 000000000..9771cefe9 Binary files /dev/null and b/abipy/data/refs/nv_center_delta_SCF/unrelaxed_gs_out_GSR.nc differ diff --git a/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_relaxed_ex_out_GSR.nc b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_relaxed_ex_out_GSR.nc new file mode 100644 index 000000000..613389efd Binary files /dev/null and b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_relaxed_ex_out_GSR.nc differ diff --git a/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_relaxed_gs_out_GSR.nc b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_relaxed_gs_out_GSR.nc new file mode 100644 index 000000000..258ddc007 Binary files /dev/null and b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_relaxed_gs_out_GSR.nc differ diff --git a/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_unrelaxed_ex_out_GSR.nc b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_unrelaxed_ex_out_GSR.nc new file mode 100644 index 000000000..4e308026b Binary files /dev/null and b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_unrelaxed_ex_out_GSR.nc differ diff --git a/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_unrelaxed_gs_out_GSR.nc b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_unrelaxed_gs_out_GSR.nc new file mode 100644 index 000000000..0eff48b32 Binary files /dev/null and b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_1_unrelaxed_gs_out_GSR.nc differ diff --git a/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_relaxed_ex_out_GSR.nc b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_relaxed_ex_out_GSR.nc new file mode 100644 index 000000000..1a701abf6 Binary files /dev/null and b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_relaxed_ex_out_GSR.nc differ diff --git a/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_relaxed_gs_out_GSR.nc b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_relaxed_gs_out_GSR.nc new file mode 100644 index 000000000..7b800677c Binary files /dev/null and b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_relaxed_gs_out_GSR.nc differ diff --git a/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_unrelaxed_ex_out_GSR.nc b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_unrelaxed_ex_out_GSR.nc new file mode 100644 index 000000000..304ea313f Binary files /dev/null and b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_unrelaxed_ex_out_GSR.nc differ diff --git a/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_unrelaxed_gs_out_GSR.nc b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_unrelaxed_gs_out_GSR.nc new file mode 100644 index 000000000..f437ad7a0 Binary files /dev/null and b/abipy/data/refs/sla_Eu_doped_delta_SCF/site_2_unrelaxed_gs_out_GSR.nc differ diff --git a/abipy/data/refs/text_files/mgb2_nscf.abo b/abipy/data/refs/text_files/mgb2_nscf.abo new file mode 100644 index 000000000..7e530d090 --- /dev/null +++ b/abipy/data/refs/text_files/mgb2_nscf.abo @@ -0,0 +1,1726 @@ + +.Version 7.11.5 of ABINIT +.(MPI version, prepared for a x86_64_darwin10.8.0_gnu4.7 computer) + +.Copyright (C) 1998-2015 ABINIT group . + ABINIT comes with ABSOLUTELY NO WARRANTY. + It is free software, and you are welcome to redistribute it + under certain conditions (GNU General Public License, + see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). + + ABINIT is a project of the Universite Catholique de Louvain, + Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt . + Please read ~abinit/doc/users/acknowledgments.html for suggested + acknowledgments of the ABINIT effort. + For more information, see http://www.abinit.org . + +.Starting date : Fri 13 Mar 2015. +- ( at 20h08 ) + +- input file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/run.abi +- output file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/run.abo +- root for input files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/indata/in +- root for output files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out + + + Symmetries : space group P6/m m m (#191); Bravais hP (primitive hexag.) +================================================================================ + Values of the parameters that define the memory need of the present run + intxc = 0 ionmov = 0 iscf = -2 xclevel = 1 + lmnmax = 2 lnmax = 2 mband = 11 mffmem = 1 +P mgfft = 20 mkmem = 49 mpssoang= 3 mpw = 308 + mqgrid = 3001 natom = 3 nfft = 6480 nkpt = 97 + nloalg = 4 nspden = 1 nspinor = 1 nsppol = 1 + nsym = 24 n1xccc = 2501 ntypat = 2 occopt = 4 +================================================================================ +P This job should need less than 5.739 Mbytes of memory. + Rough estimation (10% accuracy) of disk space for files : +_ WF disk file : 5.017 Mbytes ; DEN or POT disk file : 0.051 Mbytes. +================================================================================ + +-------------------------------------------------------------------------------- +------------- Echo of variables that govern the present computation ------------ +-------------------------------------------------------------------------------- +- +- outvars: echo of selected default values +- accesswff0 = 0 , fftalg0 =312 , wfoptalg0 = 0 +- +- outvars: echo of global parameters not present in the input file +- max_nthreads = 0 +- + -outvars: echo values of preprocessed input variables -------- + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.43050000E+01 1.08110000E+01 + ecut 1.00000000E+01 Hartree +- fftalg 312 + fft_opt_lob 2 + iprcch 6 + irdden 1 + iscf -2 + istwfk 2 0 0 0 0 0 0 0 0 0 + 1 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 2 0 + 0 0 0 0 0 0 1 0 0 0 + 0 0 0 0 0 0 1 0 0 0 + outvar_i_n : Printing only first 50 k-points. + kpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 5.00000000E-02 0.00000000E+00 0.00000000E+00 + 1.00000000E-01 0.00000000E+00 0.00000000E+00 + 1.50000000E-01 0.00000000E+00 0.00000000E+00 + 2.00000000E-01 0.00000000E+00 0.00000000E+00 + 2.50000000E-01 0.00000000E+00 0.00000000E+00 + 3.00000000E-01 0.00000000E+00 0.00000000E+00 + 3.50000000E-01 0.00000000E+00 0.00000000E+00 + 4.00000000E-01 0.00000000E+00 0.00000000E+00 + 4.50000000E-01 0.00000000E+00 0.00000000E+00 + 5.00000000E-01 0.00000000E+00 0.00000000E+00 + 4.72222222E-01 5.55555555E-02 0.00000000E+00 + 4.44444444E-01 1.11111111E-01 0.00000000E+00 + 4.16666667E-01 1.66666667E-01 0.00000000E+00 + 3.88888889E-01 2.22222222E-01 0.00000000E+00 + 3.61111111E-01 2.77777778E-01 0.00000000E+00 + 3.33333333E-01 3.33333333E-01 0.00000000E+00 + 3.05555556E-01 3.05555556E-01 0.00000000E+00 + 2.77777778E-01 2.77777778E-01 0.00000000E+00 + 2.50000000E-01 2.50000000E-01 0.00000000E+00 + 2.22222222E-01 2.22222222E-01 0.00000000E+00 + 1.94444444E-01 1.94444444E-01 0.00000000E+00 + 1.66666667E-01 1.66666667E-01 0.00000000E+00 + 1.38888889E-01 1.38888889E-01 0.00000000E+00 + 1.11111111E-01 1.11111111E-01 0.00000000E+00 + 8.33333333E-02 8.33333333E-02 0.00000000E+00 + 5.55555555E-02 5.55555555E-02 0.00000000E+00 + 2.77777778E-02 2.77777778E-02 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 6.25000000E-02 + 0.00000000E+00 0.00000000E+00 1.25000000E-01 + 0.00000000E+00 0.00000000E+00 1.87500000E-01 + 0.00000000E+00 0.00000000E+00 2.50000000E-01 + 0.00000000E+00 0.00000000E+00 3.12500000E-01 + 0.00000000E+00 0.00000000E+00 3.75000000E-01 + 0.00000000E+00 0.00000000E+00 4.37500000E-01 + 0.00000000E+00 0.00000000E+00 5.00000000E-01 + 5.00000000E-02 0.00000000E+00 5.00000000E-01 + 1.00000000E-01 0.00000000E+00 5.00000000E-01 + 1.50000000E-01 0.00000000E+00 5.00000000E-01 + 2.00000000E-01 0.00000000E+00 5.00000000E-01 + 2.50000000E-01 0.00000000E+00 5.00000000E-01 + 3.00000000E-01 0.00000000E+00 5.00000000E-01 + 3.50000000E-01 0.00000000E+00 5.00000000E-01 + 4.00000000E-01 0.00000000E+00 5.00000000E-01 + 4.50000000E-01 0.00000000E+00 5.00000000E-01 + 5.00000000E-01 0.00000000E+00 5.00000000E-01 + 4.72222222E-01 5.55555555E-02 5.00000000E-01 + 4.44444444E-01 1.11111111E-01 5.00000000E-01 + 4.16666667E-01 1.66666667E-01 5.00000000E-01 + outvar_i_n : Printing only first 50 k-points. + kptopt -11 +P mkmem 49 + natom 3 + nband 11 + nbdbuf 2 + ngfft 18 18 20 + nkpt 97 +- npkpt 2 + nsym 24 + ntypat 2 + occopt 4 + ortalg -2 + paral_kgb 1 + rprim 5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + -5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 6.6575051698E+00 + shiftk 5.00000000E-01 5.00000000E-01 5.00000000E-01 + spgroup 191 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 -1 -1 0 0 1 0 0 0 -1 + timopt -1 + tolwfr 1.00000000E-12 + tsmear 3.00000000E-02 Hartree + typat 1 2 2 + wfoptalg 14 + outvars : Printing only first 50 k-points. + xangst 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -8.9085146603E-01 1.5430000008E+00 1.7615000010E+00 + 8.9085146603E-01 1.5430000008E+00 1.7615000010E+00 + xcart 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -1.6834652959E+00 2.9158474246E+00 3.3287525849E+00 + 1.6834652959E+00 2.9158474246E+00 3.3287525849E+00 + xred 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 3.3333333330E-01 6.6666666670E-01 5.0000000000E-01 + 6.6666666670E-01 3.3333333330E-01 5.0000000000E-01 + znucl 12.00000 5.00000 + +================================================================================ + + chkinp: Checking input parameters for consistency. + +================================================================================ +== DATASET 1 ================================================================== +- nproc = 2 + + Exchange-correlation functional for the present dataset will be: + LDA: new Teter (4/93) with spin-polarized option - ixc=1 + Citation for XC functional: + S. Goedecker, M. Teter, J. Huetter, PRB 54, 1703 (1996) + + Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1): + R(1)= 5.0503959 2.9158474 0.0000000 G(1)= 0.0990021 0.1714767 0.0000000 + R(2)= -5.0503959 2.9158474 0.0000000 G(2)= -0.0990021 0.1714767 0.0000000 + R(3)= 0.0000000 0.0000000 6.6575052 G(3)= 0.0000000 0.0000000 0.1502064 + Unit cell volume ucvol= 1.9607929E+02 bohr^3 + Angles (23,13,12)= 9.00000000E+01 9.00000000E+01 1.20000000E+02 degrees + + getcut: wavevector= 0.0000 0.0000 0.0000 ngfft= 18 18 20 + ecut(hartree)= 10.000 => boxcut(ratio)= 2.11034 + +--- Pseudopotential description ------------------------------------------------ +- pspini: atom type 1 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc +- Troullier-Martins psp for element Mg Thu Oct 27 17:30:49 EDT 1994 +- 12.00000 2.00000 940714 znucl, zion, pspdat + 1 1 2 2 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 3.352 8.820 1 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 1.127 1.670 1 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2 0.000 0.000 0 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2.54196289048337 0.05499530377757 0.78827945413088 rchrg,fchrg,qchrg + pspatm: epsatm= -1.54393848 + --- l ekb(1:nproj) --> + 0 1.755924 + 1 0.853613 + pspatm: atomic psp has been read and splines computed + +- pspini: atom type 2 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc +- Troullier-Martins psp for element B Thu Oct 27 17:29:24 EDT 1994 +- 5.00000 3.00000 940714 znucl, zion, pspdat + 1 1 1 1 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 8.313 21.401 1 1.5924135 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 11.531 17.234 0 1.5924135 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1.10004537463277 0.35216853368804 0.40909985967175 rchrg,fchrg,qchrg + pspatm: epsatm= 0.59609267 + --- l ekb(1:nproj) --> + 0 3.906219 + pspatm: atomic psp has been read and splines computed + +-------------------------------------------------------------------------------- + +P newkpt: treating 11 bands with npw= 146 for ikpt= 1 by node 0 +P newkpt: treating 11 bands with npw= 297 for ikpt= 2 by node 0 +P newkpt: treating 11 bands with npw= 299 for ikpt= 3 by node 0 +P newkpt: treating 11 bands with npw= 297 for ikpt= 4 by node 0 +P newkpt: treating 11 bands with npw= 297 for ikpt= 5 by node 0 +P newkpt: treating 11 bands with npw= 299 for ikpt= 6 by node 0 +P newkpt: treating 11 bands with npw= 297 for ikpt= 7 by node 0 +P newkpt: treating 11 bands with npw= 297 for ikpt= 8 by node 0 +P newkpt: treating 11 bands with npw= 301 for ikpt= 9 by node 0 +P newkpt: treating 11 bands with npw= 306 for ikpt= 10 by node 0 +P newkpt: treating 11 bands with npw= 300 for ikpt= 11 by node 0 +P newkpt: treating 11 bands with npw= 304 for ikpt= 12 by node 0 +P newkpt: treating 11 bands with npw= 302 for ikpt= 13 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 14 by node 0 +P newkpt: treating 11 bands with npw= 296 for ikpt= 15 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 16 by node 0 +P newkpt: treating 11 bands with npw= 306 for ikpt= 17 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 18 by node 0 +P newkpt: treating 11 bands with npw= 294 for ikpt= 19 by node 0 +P newkpt: treating 11 bands with npw= 288 for ikpt= 20 by node 0 +P newkpt: treating 11 bands with npw= 288 for ikpt= 21 by node 0 +P newkpt: treating 11 bands with npw= 292 for ikpt= 22 by node 0 +P newkpt: treating 11 bands with npw= 296 for ikpt= 23 by node 0 +P newkpt: treating 11 bands with npw= 294 for ikpt= 24 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 25 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 26 by node 0 +P newkpt: treating 11 bands with npw= 303 for ikpt= 27 by node 0 +P newkpt: treating 11 bands with npw= 297 for ikpt= 28 by node 0 +P newkpt: treating 11 bands with npw= 146 for ikpt= 29 by node 0 +P newkpt: treating 11 bands with npw= 291 for ikpt= 30 by node 0 +P newkpt: treating 11 bands with npw= 297 for ikpt= 31 by node 0 +P newkpt: treating 11 bands with npw= 291 for ikpt= 32 by node 0 +P newkpt: treating 11 bands with npw= 279 for ikpt= 33 by node 0 +P newkpt: treating 11 bands with npw= 274 for ikpt= 34 by node 0 +P newkpt: treating 11 bands with npw= 274 for ikpt= 35 by node 0 +P newkpt: treating 11 bands with npw= 280 for ikpt= 36 by node 0 +P newkpt: treating 11 bands with npw= 286 for ikpt= 37 by node 0 +P newkpt: treating 11 bands with npw= 294 for ikpt= 38 by node 0 +P newkpt: treating 11 bands with npw= 296 for ikpt= 39 by node 0 +P newkpt: treating 11 bands with npw= 290 for ikpt= 40 by node 0 +P newkpt: treating 11 bands with npw= 290 for ikpt= 41 by node 0 +P newkpt: treating 11 bands with npw= 294 for ikpt= 42 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 43 by node 0 +P newkpt: treating 11 bands with npw= 302 for ikpt= 44 by node 0 +P newkpt: treating 11 bands with npw= 302 for ikpt= 45 by node 0 +P newkpt: treating 11 bands with npw= 296 for ikpt= 46 by node 0 +P newkpt: treating 11 bands with npw= 300 for ikpt= 47 by node 0 +P newkpt: treating 11 bands with npw= 296 for ikpt= 48 by node 0 +P newkpt: treating 11 bands with npw= 296 for ikpt= 49 by node 0 +P newkpt: treating 11 bands with npw= 296 for ikpt= 50 by node 1 + newkpt: prtvol=0 or 1, do not print more k-points. + + +================================================================================ + prteigrs : about to open file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out_EIG + Non-SCF case, kpt 1 ( 0.00000 0.00000 0.00000), residuals and eigenvalues= + 1.73E-13 5.84E-14 2.96E-13 1.84E-13 4.98E-13 9.30E-14 1.61E-13 4.76E-13 + 1.10E-13 8.42E-13 1.22E-11 + -1.8002E-01 1.7145E-01 2.9801E-01 2.9801E-01 3.3630E-01 5.0991E-01 + 5.0991E-01 5.7367E-01 6.5094E-01 7.2899E-01 8.6971E-01 + prteigrs : nnsclo,ikpt= 30 1 max resid (incl. the buffer)= 1.21831E-11 + Non-SCF case, kpt 2 ( 0.05000 0.00000 0.00000), residuals and eigenvalues= + 2.69E-13 6.12E-13 2.23E-13 1.83E-13 1.09E-13 1.71E-13 3.28E-13 3.19E-13 + 5.86E-13 2.90E-12 6.90E-07 + -1.7846E-01 1.7302E-01 2.8799E-01 2.9285E-01 3.3772E-01 5.0851E-01 + 5.1695E-01 5.7753E-01 6.4506E-01 7.3784E-01 8.5923E-01 + prteigrs : nnsclo,ikpt= 30 2 max resid (incl. the buffer)= 6.89591E-07 + Non-SCF case, kpt 3 ( 0.10000 0.00000 0.00000), residuals and eigenvalues= + 2.88E-13 1.21E-13 2.63E-13 6.32E-13 1.40E-13 3.56E-13 7.76E-14 2.99E-13 + 5.84E-13 7.17E-12 2.74E-07 + -1.7362E-01 1.7765E-01 2.6324E-01 2.8194E-01 3.4211E-01 5.0374E-01 + 5.3777E-01 5.8899E-01 6.2700E-01 7.6231E-01 8.3619E-01 + prteigrs : nnsclo,ikpt= 30 3 max resid (incl. the buffer)= 2.73883E-07 + Non-SCF case, kpt 4 ( 0.15000 0.00000 0.00000), residuals and eigenvalues= + 3.53E-13 1.84E-13 2.91E-13 4.77E-13 2.45E-13 4.00E-13 3.13E-13 1.73E-13 + 2.70E-13 6.12E-08 1.74E-07 + -1.6560E-01 1.8557E-01 2.3067E-01 2.6721E-01 3.4954E-01 4.9465E-01 + 5.6782E-01 6.0177E-01 6.0502E-01 7.9815E-01 8.1178E-01 + prteigrs : nnsclo,ikpt= 30 4 max resid (incl. the buffer)= 1.74376E-07 + Non-SCF case, kpt 5 ( 0.20000 0.00000 0.00000), residuals and eigenvalues= + 2.59E-13 3.60E-13 2.42E-13 3.80E-13 3.15E-13 1.27E-13 1.88E-13 1.28E-13 + 8.67E-13 6.17E-08 4.96E-07 + -1.5442E-01 1.9422E-01 1.9629E-01 2.5205E-01 3.5983E-01 4.8250E-01 + 5.6841E-01 6.0505E-01 6.1743E-01 7.9431E-01 8.0398E-01 + prteigrs : nnsclo,ikpt= 30 5 max resid (incl. the buffer)= 4.96339E-07 + Non-SCF case, kpt 6 ( 0.25000 0.00000 0.00000), residuals and eigenvalues= + 3.17E-13 2.18E-13 1.43E-13 9.20E-14 1.45E-13 2.55E-13 1.78E-13 5.22E-13 + 3.79E-13 3.48E-08 8.76E-07 + -1.4040E-01 1.5531E-01 2.1050E-01 2.3762E-01 3.7220E-01 4.7114E-01 + 5.3264E-01 6.1850E-01 6.4622E-01 7.8001E-01 7.9120E-01 + prteigrs : nnsclo,ikpt= 30 6 max resid (incl. the buffer)= 8.75900E-07 + Non-SCF case, kpt 7 ( 0.30000 0.00000 0.00000), residuals and eigenvalues= + 4.50E-13 6.63E-14 1.85E-13 3.29E-13 2.80E-13 3.69E-13 3.28E-13 4.83E-13 + 4.13E-13 8.58E-09 2.88E-06 + -1.2307E-01 1.1670E-01 2.2510E-01 2.2683E-01 3.8662E-01 4.6205E-01 + 4.9593E-01 6.0602E-01 6.8960E-01 7.6171E-01 8.0413E-01 + prteigrs : nnsclo,ikpt= 30 7 max resid (incl. the buffer)= 2.87782E-06 + Non-SCF case, kpt 8 ( 0.35000 0.00000 0.00000), residuals and eigenvalues= + 6.66E-13 5.78E-13 4.12E-13 1.16E-13 1.69E-13 3.33E-13 1.57E-13 1.42E-13 + 6.53E-13 5.33E-12 1.51E-06 + -1.0279E-01 7.9171E-02 2.1496E-01 2.4511E-01 4.0124E-01 4.5659E-01 + 4.6041E-01 5.8498E-01 7.3075E-01 7.4815E-01 7.9917E-01 + prteigrs : nnsclo,ikpt= 30 8 max resid (incl. the buffer)= 1.51329E-06 + Non-SCF case, kpt 9 ( 0.40000 0.00000 0.00000), residuals and eigenvalues= + 3.16E-13 2.30E-13 8.48E-14 2.62E-13 4.22E-13 2.71E-13 3.87E-13 4.53E-13 + 5.46E-13 5.07E-11 4.73E-06 + -7.9946E-02 4.3523E-02 2.0741E-01 2.6423E-01 4.1281E-01 4.2800E-01 + 4.5742E-01 5.6106E-01 7.3860E-01 7.5829E-01 8.0365E-01 + prteigrs : nnsclo,ikpt= 30 9 max resid (incl. the buffer)= 4.73425E-06 + Non-SCF case, kpt 10 ( 0.45000 0.00000 0.00000), residuals and eigenvalues= + 2.21E-13 6.43E-14 8.29E-14 5.01E-13 3.84E-13 3.88E-13 1.55E-13 7.23E-13 + 7.74E-13 2.64E-11 6.00E-09 + -5.5040E-02 1.0750E-02 2.0238E-01 2.8106E-01 4.0313E-01 4.1832E-01 + 4.6546E-01 5.3984E-01 7.3306E-01 7.6552E-01 7.9760E-01 + prteigrs : nnsclo,ikpt= 30 10 max resid (incl. the buffer)= 6.00274E-09 + Non-SCF case, kpt 11 ( 0.50000 0.00000 0.00000), residuals and eigenvalues= + 4.33E-13 9.89E-14 2.97E-13 3.53E-13 9.45E-14 7.78E-13 5.23E-13 2.27E-13 + 9.94E-13 5.07E-11 4.99E-11 + -3.6419E-02 -1.0284E-02 2.0136E-01 2.8919E-01 3.9314E-01 4.1954E-01 + 4.7153E-01 5.2988E-01 7.3141E-01 7.6680E-01 7.9574E-01 + prteigrs : nnsclo,ikpt= 30 11 max resid (incl. the buffer)= 5.06962E-11 + Non-SCF case, kpt 12 ( 0.47222 0.05556 0.00000), residuals and eigenvalues= + 1.54E-13 5.64E-14 4.76E-13 1.46E-13 3.26E-13 7.96E-14 3.65E-13 3.42E-13 + 7.44E-13 1.01E-11 7.87E-07 + -3.5231E-02 -9.1548E-03 1.9167E-01 2.9020E-01 3.9230E-01 4.3001E-01 + 4.7240E-01 5.3180E-01 7.0700E-01 7.5768E-01 8.2428E-01 + prteigrs : nnsclo,ikpt= 30 12 max resid (incl. the buffer)= 7.86512E-07 + Non-SCF case, kpt 13 ( 0.44444 0.11111 0.00000), residuals and eigenvalues= + 2.12E-13 1.64E-13 5.66E-14 9.26E-14 4.60E-13 3.70E-13 1.94E-13 3.30E-13 + 7.87E-13 4.60E-13 8.55E-08 + -3.1319E-02 -5.2059E-03 1.6755E-01 2.9508E-01 3.9012E-01 4.5589E-01 + 4.7519E-01 5.3841E-01 6.7028E-01 7.3635E-01 8.1855E-01 + prteigrs : nnsclo,ikpt= 30 13 max resid (incl. the buffer)= 8.54600E-08 + Non-SCF case, kpt 14 ( 0.41667 0.16667 0.00000), residuals and eigenvalues= + 1.86E-13 2.05E-13 1.35E-13 9.90E-14 1.30E-13 2.09E-13 2.67E-13 2.00E-13 + 4.53E-13 1.01E-12 2.63E-08 + -2.4751E-02 1.1138E-03 1.3660E-01 3.0411E-01 3.8584E-01 4.7987E-01 + 4.8440E-01 5.5249E-01 6.3792E-01 7.1261E-01 7.9680E-01 + prteigrs : nnsclo,ikpt= 30 14 max resid (incl. the buffer)= 2.62791E-08 + Non-SCF case, kpt 15 ( 0.38889 0.22222 0.00000), residuals and eigenvalues= + 2.31E-13 4.88E-13 1.96E-13 8.33E-14 2.93E-13 1.59E-13 1.93E-13 4.98E-13 + 1.38E-13 1.26E-12 4.17E-08 + -1.5548E-02 9.0578E-03 1.0470E-01 3.1546E-01 3.7789E-01 4.8635E-01 + 5.0335E-01 5.7576E-01 6.1353E-01 6.9640E-01 7.7382E-01 + prteigrs : nnsclo,ikpt= 30 15 max resid (incl. the buffer)= 4.17079E-08 + Non-SCF case, kpt 16 ( 0.36111 0.27778 0.00000), residuals and eigenvalues= + 2.85E-13 4.44E-13 1.69E-13 1.09E-13 1.92E-13 1.94E-13 1.63E-13 3.58E-13 + 2.03E-13 3.68E-11 7.61E-07 + -3.7154E-03 1.5705E-02 7.5961E-02 3.3002E-01 3.6504E-01 4.9450E-01 + 5.0914E-01 5.9467E-01 5.9883E-01 7.0204E-01 7.5169E-01 + prteigrs : nnsclo,ikpt= 30 16 max resid (incl. the buffer)= 7.61479E-07 + Non-SCF case, kpt 17 ( 0.33333 0.33333 0.00000), residuals and eigenvalues= + 3.57E-13 1.95E-13 2.37E-13 1.39E-13 2.38E-13 1.04E-13 1.15E-13 6.55E-13 + 4.91E-13 1.90E-11 5.63E-07 + 1.0352E-02 1.0352E-02 6.2957E-02 3.4750E-01 3.4750E-01 5.0371E-01 + 5.0371E-01 5.9408E-01 5.9843E-01 7.3097E-01 7.3100E-01 + prteigrs : nnsclo,ikpt= 30 17 max resid (incl. the buffer)= 5.63158E-07 + Non-SCF case, kpt 18 ( 0.30556 0.30556 0.00000), residuals and eigenvalues= + 1.69E-13 3.07E-13 1.86E-13 1.88E-13 1.26E-13 2.89E-13 5.28E-13 2.95E-13 + 3.18E-13 1.40E-10 1.94E-10 + -1.1635E-02 2.7365E-02 7.2409E-02 3.2699E-01 3.6837E-01 4.8960E-01 + 5.1472E-01 5.9752E-01 5.9834E-01 7.1382E-01 7.2046E-01 + prteigrs : nnsclo,ikpt= 30 18 max resid (incl. the buffer)= 1.94111E-10 + Non-SCF case, kpt 19 ( 0.27778 0.27778 0.00000), residuals and eigenvalues= + 1.78E-13 4.89E-14 1.28E-13 4.98E-13 4.44E-13 1.92E-13 4.37E-13 2.11E-13 + 2.87E-13 5.84E-12 6.30E-12 + -3.7806E-02 4.6859E-02 9.0093E-02 3.0488E-01 3.9228E-01 4.7020E-01 + 5.2599E-01 5.9117E-01 6.1006E-01 6.9832E-01 7.1181E-01 + prteigrs : nnsclo,ikpt= 30 19 max resid (incl. the buffer)= 6.30054E-12 + Non-SCF case, kpt 20 ( 0.25000 0.25000 0.00000), residuals and eigenvalues= + 4.65E-13 4.54E-13 3.29E-13 1.42E-13 3.29E-13 2.54E-13 1.62E-13 7.67E-13 + 8.51E-13 8.29E-13 9.00E-13 + -6.3307E-02 6.9063E-02 1.1180E-01 2.8284E-01 4.1866E-01 4.4862E-01 + 5.3749E-01 5.7954E-01 6.2795E-01 6.8670E-01 7.1502E-01 + Non-SCF case, kpt 21 ( 0.22222 0.22222 0.00000), residuals and eigenvalues= + 4.52E-13 7.36E-14 1.74E-13 1.05E-13 2.46E-13 2.25E-13 1.58E-13 4.37E-13 + 4.46E-13 3.99E-13 7.65E-13 + -8.7121E-02 9.3380E-02 1.3578E-01 2.6146E-01 4.2700E-01 4.4750E-01 + 5.4667E-01 5.6457E-01 6.5094E-01 6.7881E-01 7.2730E-01 + Non-SCF case, kpt 22 ( 0.19444 0.19444 0.00000), residuals and eigenvalues= + 1.74E-13 3.06E-13 4.34E-14 3.51E-13 3.84E-13 5.35E-13 8.38E-13 9.75E-14 + 3.22E-13 5.72E-13 1.42E-11 + -1.0844E-01 1.1965E-01 1.6081E-01 2.4054E-01 4.0671E-01 4.7827E-01 + 5.4881E-01 5.5279E-01 6.7490E-01 6.7833E-01 7.4499E-01 + prteigrs : nnsclo,ikpt= 30 22 max resid (incl. the buffer)= 1.41666E-11 + Non-SCF case, kpt 23 ( 0.16667 0.16667 0.00000), residuals and eigenvalues= + 1.66E-13 2.71E-13 4.60E-13 2.92E-13 2.90E-13 7.78E-13 6.66E-13 1.51E-13 + 2.61E-13 6.23E-13 8.29E-10 + -1.2726E-01 1.4814E-01 1.8725E-01 2.2260E-01 3.8836E-01 5.1065E-01 + 5.3483E-01 5.5488E-01 6.7196E-01 7.0978E-01 7.6549E-01 + prteigrs : nnsclo,ikpt= 30 23 max resid (incl. the buffer)= 8.29045E-10 + Non-SCF case, kpt 24 ( 0.13889 0.13889 0.00000), residuals and eigenvalues= + 1.16E-13 2.12E-13 3.62E-13 3.48E-13 4.02E-13 1.11E-13 2.69E-13 5.52E-13 + 3.14E-13 8.34E-10 3.68E-07 + -1.4312E-01 1.7822E-01 2.0775E-01 2.1408E-01 3.7251E-01 5.2351E-01 + 5.4364E-01 5.5342E-01 6.6235E-01 7.4511E-01 7.8760E-01 + prteigrs : nnsclo,ikpt= 30 24 max resid (incl. the buffer)= 3.68299E-07 + Non-SCF case, kpt 25 ( 0.11111 0.11111 0.00000), residuals and eigenvalues= + 2.04E-13 9.41E-14 1.63E-13 6.77E-14 1.49E-13 1.91E-13 1.91E-13 9.79E-13 + 6.94E-13 2.86E-07 7.92E-06 + -1.5629E-01 1.9448E-01 2.0882E-01 2.3969E-01 3.5935E-01 5.1480E-01 + 5.4920E-01 5.7516E-01 6.4014E-01 7.8375E-01 8.0862E-01 + prteigrs : nnsclo,ikpt= 30 25 max resid (incl. the buffer)= 7.91579E-06 + Non-SCF case, kpt 26 ( 0.08333 0.08333 0.00000), residuals and eigenvalues= + 2.86E-13 4.99E-13 2.06E-13 1.07E-13 1.98E-13 1.53E-13 1.84E-13 2.42E-13 + 1.31E-13 3.66E-08 1.71E-05 + -1.6667E-01 1.8446E-01 2.3934E-01 2.6253E-01 3.4900E-01 5.1055E-01 + 5.4210E-01 6.0453E-01 6.1227E-01 7.9283E-01 8.1887E-01 + prteigrs : nnsclo,ikpt= 30 26 max resid (incl. the buffer)= 1.70600E-05 + Non-SCF case, kpt 27 ( 0.05556 0.05556 0.00000), residuals and eigenvalues= + 2.44E-13 8.86E-13 6.53E-13 4.88E-13 5.04E-13 3.70E-13 1.57E-13 6.57E-13 + 5.00E-13 4.51E-10 1.20E-04 + -1.7413E-01 1.7706E-01 2.6649E-01 2.8115E-01 3.4179E-01 5.0872E-01 + 5.2956E-01 5.8928E-01 6.2766E-01 7.5986E-01 8.4542E-01 + prteigrs : nnsclo,ikpt= 30 27 max resid (incl. the buffer)= 1.20237E-04 + Non-SCF case, kpt 28 ( 0.02778 0.02778 0.00000), residuals and eigenvalues= + 1.08E-13 2.14E-13 2.46E-13 2.19E-13 8.21E-14 3.86E-13 2.39E-13 8.33E-14 + 8.94E-13 3.05E-11 1.87E-05 + -1.7857E-01 1.7291E-01 2.8877E-01 2.9293E-01 3.3762E-01 5.0904E-01 + 5.1607E-01 5.7726E-01 6.4549E-01 7.3720E-01 8.6174E-01 + prteigrs : nnsclo,ikpt= 30 28 max resid (incl. the buffer)= 1.87222E-05 + Non-SCF case, kpt 29 ( 0.00000 0.00000 0.00000), residuals and eigenvalues= + 1.73E-13 5.84E-14 2.96E-13 1.84E-13 4.98E-13 9.30E-14 1.61E-13 4.76E-13 + 1.10E-13 8.42E-13 1.22E-11 + -1.8002E-01 1.7145E-01 2.9801E-01 2.9801E-01 3.3630E-01 5.0991E-01 + 5.0991E-01 5.7367E-01 6.5094E-01 7.2899E-01 8.6971E-01 + prteigrs : nnsclo,ikpt= 30 29 max resid (incl. the buffer)= 1.21831E-11 + Non-SCF case, kpt 30 ( 0.00000 0.00000 0.06250), residuals and eigenvalues= + 1.94E-13 2.29E-13 3.80E-13 1.59E-13 4.15E-13 8.12E-14 7.29E-14 1.95E-13 + 1.79E-13 3.84E-13 1.08E-08 + -1.7877E-01 1.6054E-01 2.9852E-01 2.9852E-01 3.5009E-01 5.1038E-01 + 5.1038E-01 5.7386E-01 6.5026E-01 7.3021E-01 8.5689E-01 + prteigrs : nnsclo,ikpt= 30 30 max resid (incl. the buffer)= 1.08210E-08 + Non-SCF case, kpt 31 ( 0.00000 0.00000 0.12500), residuals and eigenvalues= + 3.59E-13 1.03E-13 4.63E-13 1.45E-13 2.89E-13 2.22E-13 7.51E-13 4.08E-13 + 3.82E-13 6.38E-11 4.26E-08 + -1.7511E-01 1.3488E-01 2.9956E-01 2.9956E-01 3.8407E-01 5.1167E-01 + 5.1167E-01 5.7338E-01 6.4626E-01 7.3379E-01 8.2919E-01 + prteigrs : nnsclo,ikpt= 30 31 max resid (incl. the buffer)= 4.26017E-08 + Non-SCF case, kpt 32 ( 0.00000 0.00000 0.18750), residuals and eigenvalues= + 1.25E-13 8.71E-13 6.26E-13 2.77E-13 1.22E-13 6.37E-13 2.41E-13 2.22E-13 + 9.32E-13 9.25E-10 1.77E-08 + -1.6911E-01 1.0587E-01 3.0179E-01 3.0179E-01 4.2903E-01 5.1402E-01 + 5.1402E-01 5.7363E-01 6.4406E-01 7.3964E-01 7.9936E-01 + prteigrs : nnsclo,ikpt= 30 32 max resid (incl. the buffer)= 1.77143E-08 + Non-SCF case, kpt 33 ( 0.00000 0.00000 0.25000), residuals and eigenvalues= + 6.02E-13 7.04E-14 7.53E-13 1.68E-13 3.32E-13 2.07E-13 2.55E-13 2.70E-13 + 3.68E-13 3.78E-06 1.13E-10 + -1.6122E-01 7.6120E-02 3.0594E-01 3.0594E-01 4.7919E-01 5.1697E-01 + 5.1697E-01 5.7449E-01 6.4495E-01 7.4734E-01 7.7207E-01 + prteigrs : nnsclo,ikpt= 30 33 max resid (incl. the buffer)= 3.78411E-06 + Non-SCF case, kpt 34 ( 0.00000 0.00000 0.31250), residuals and eigenvalues= + 4.13E-13 9.50E-13 3.61E-13 1.52E-13 2.57E-13 3.74E-13 7.01E-13 6.68E-13 + 3.10E-13 2.00E-12 1.63E-05 + -1.5200E-01 4.8700E-02 3.0870E-01 3.0870E-01 5.2086E-01 5.2086E-01 + 5.3144E-01 5.7535E-01 6.4163E-01 7.4934E-01 7.5291E-01 + prteigrs : nnsclo,ikpt= 30 34 max resid (incl. the buffer)= 1.63395E-05 + Non-SCF case, kpt 35 ( 0.00000 0.00000 0.37500), residuals and eigenvalues= + 4.03E-13 4.12E-14 2.96E-13 8.31E-13 1.29E-13 1.68E-13 1.40E-13 2.48E-13 + 6.77E-13 1.54E-12 7.92E-07 + -1.4279E-01 2.6129E-02 3.1111E-01 3.1111E-01 5.2322E-01 5.2322E-01 + 5.7617E-01 5.8284E-01 6.3887E-01 7.3234E-01 7.3235E-01 + prteigrs : nnsclo,ikpt= 30 35 max resid (incl. the buffer)= 7.91815E-07 + Non-SCF case, kpt 36 ( 0.00000 0.00000 0.43750), residuals and eigenvalues= + 3.59E-13 9.92E-13 2.10E-13 8.06E-13 7.35E-13 3.40E-13 3.90E-13 2.42E-13 + 7.80E-13 1.59E-09 3.79E-08 + -1.3568E-01 1.0498E-02 3.1276E-01 3.1276E-01 5.2402E-01 5.2402E-01 + 5.7669E-01 6.2526E-01 6.3722E-01 7.2183E-01 7.2183E-01 + prteigrs : nnsclo,ikpt= 30 36 max resid (incl. the buffer)= 3.79494E-08 + Non-SCF case, kpt 37 ( 0.00000 0.00000 0.50000), residuals and eigenvalues= + 1.28E-13 8.35E-14 3.64E-13 4.52E-13 1.66E-13 1.31E-13 5.37E-13 8.18E-13 + 1.70E-13 2.07E-10 2.45E-08 + -1.3284E-01 4.7586E-03 3.1323E-01 3.1323E-01 5.2455E-01 5.2455E-01 + 5.7397E-01 6.3660E-01 6.4305E-01 7.1826E-01 7.1826E-01 + prteigrs : nnsclo,ikpt= 30 37 max resid (incl. the buffer)= 2.44595E-08 + Non-SCF case, kpt 38 ( 0.05000 0.00000 0.50000), residuals and eigenvalues= + 6.78E-14 6.41E-13 2.04E-13 1.86E-13 5.80E-13 1.58E-13 4.23E-13 9.63E-13 + 1.72E-13 4.72E-09 1.43E-08 + -1.3142E-01 6.5928E-03 3.0299E-01 3.0805E-01 5.2426E-01 5.3203E-01 + 5.5995E-01 6.4041E-01 6.4432E-01 7.0890E-01 7.2029E-01 + prteigrs : nnsclo,ikpt= 30 38 max resid (incl. the buffer)= 1.43486E-08 + Non-SCF case, kpt 39 ( 0.10000 0.00000 0.50000), residuals and eigenvalues= + 1.69E-13 1.63E-13 7.01E-13 4.52E-13 8.60E-13 3.30E-13 1.94E-13 6.57E-13 + 2.57E-13 7.82E-13 5.77E-13 + -1.2716E-01 1.2132E-02 2.8115E-01 2.9667E-01 5.2259E-01 5.2663E-01 + 5.5281E-01 6.4777E-01 6.5307E-01 6.9001E-01 7.1330E-01 + Non-SCF case, kpt 40 ( 0.15000 0.00000 0.50000), residuals and eigenvalues= + 5.39E-13 1.92E-13 3.08E-13 7.41E-14 1.23E-13 7.30E-13 2.57E-13 7.02E-13 + 3.15E-13 2.67E-13 9.23E-13 + -1.1983E-01 2.1465E-02 2.5094E-01 2.8088E-01 4.8557E-01 5.1971E-01 + 5.8421E-01 6.5267E-01 6.7012E-01 6.7358E-01 6.9715E-01 + Non-SCF case, kpt 41 ( 0.20000 0.00000 0.50000), residuals and eigenvalues= + 1.13E-13 2.46E-13 8.77E-13 7.95E-14 3.57E-13 2.81E-13 5.10E-13 4.52E-13 + 3.72E-13 1.03E-12 2.65E-12 + -1.0961E-01 3.4066E-02 2.1611E-01 2.6530E-01 4.4133E-01 5.1294E-01 + 6.2223E-01 6.5053E-01 6.5184E-01 6.8733E-01 6.9973E-01 + prteigrs : nnsclo,ikpt= 30 41 max resid (incl. the buffer)= 2.65084E-12 + Non-SCF case, kpt 42 ( 0.25000 0.00000 0.50000), residuals and eigenvalues= + 1.34E-13 4.75E-13 1.07E-13 1.33E-13 1.27E-13 3.79E-13 2.09E-13 4.50E-13 + 3.24E-13 1.27E-11 2.19E-11 + -9.6629E-02 5.0046E-02 1.7919E-01 2.5046E-01 3.9682E-01 5.0545E-01 + 6.3600E-01 6.3747E-01 6.6535E-01 6.9331E-01 7.2631E-01 + prteigrs : nnsclo,ikpt= 30 42 max resid (incl. the buffer)= 2.18986E-11 + Non-SCF case, kpt 43 ( 0.30000 0.00000 0.50000), residuals and eigenvalues= + 2.37E-13 1.54E-13 2.27E-13 1.46E-13 1.75E-13 9.69E-14 4.17E-13 1.00E-12 + 5.76E-13 2.59E-13 5.60E-12 + -8.0736E-02 6.9149E-02 1.4265E-01 2.3726E-01 3.5342E-01 4.9854E-01 + 6.2210E-01 6.2287E-01 7.0612E-01 7.1101E-01 7.5506E-01 + prteigrs : nnsclo,ikpt= 30 43 max resid (incl. the buffer)= 5.59722E-12 + Non-SCF case, kpt 44 ( 0.35000 0.00000 0.50000), residuals and eigenvalues= + 1.56E-13 1.98E-13 6.23E-13 3.20E-13 2.22E-13 7.95E-14 4.90E-13 6.00E-13 + 3.70E-13 5.36E-12 3.48E-10 + -6.2057E-02 9.0913E-02 1.0740E-01 2.2637E-01 3.1196E-01 4.9276E-01 + 6.0845E-01 6.1258E-01 7.2188E-01 7.5880E-01 7.8366E-01 + prteigrs : nnsclo,ikpt= 30 44 max resid (incl. the buffer)= 3.47875E-10 + Non-SCF case, kpt 45 ( 0.40000 0.00000 0.50000), residuals and eigenvalues= + 4.36E-13 3.84E-13 3.18E-13 1.24E-13 3.50E-13 1.48E-13 7.62E-13 2.09E-13 + 5.43E-13 3.92E-09 8.60E-09 + -4.0705E-02 7.3952E-02 1.1450E-01 2.1878E-01 2.7447E-01 4.8848E-01 + 5.9866E-01 6.0523E-01 7.3833E-01 8.0523E-01 8.1078E-01 + prteigrs : nnsclo,ikpt= 30 45 max resid (incl. the buffer)= 8.59640E-09 + Non-SCF case, kpt 46 ( 0.45000 0.00000 0.50000), residuals and eigenvalues= + 2.69E-13 2.93E-13 1.69E-13 1.90E-13 6.70E-13 7.26E-13 1.82E-13 7.41E-13 + 5.61E-13 9.08E-08 4.90E-06 + -1.7339E-02 4.3653E-02 1.3705E-01 2.1427E-01 2.4383E-01 4.8622E-01 + 5.9313E-01 6.0081E-01 7.5268E-01 8.3317E-01 8.4422E-01 + prteigrs : nnsclo,ikpt= 30 46 max resid (incl. the buffer)= 4.89926E-06 + Non-SCF case, kpt 47 ( 0.50000 0.00000 0.50000), residuals and eigenvalues= + 4.95E-14 3.32E-13 1.24E-13 1.21E-13 1.78E-13 3.56E-13 9.16E-13 7.30E-13 + 7.37E-13 6.69E-08 5.67E-08 + -5.1669E-05 2.3333E-02 1.4813E-01 2.1258E-01 2.2976E-01 4.8527E-01 + 5.9105E-01 5.9934E-01 7.5796E-01 8.4349E-01 8.5419E-01 + prteigrs : nnsclo,ikpt= 30 47 max resid (incl. the buffer)= 6.68998E-08 + Non-SCF case, kpt 48 ( 0.47222 0.05556 0.50000), residuals and eigenvalues= + 1.37E-13 8.32E-13 7.06E-13 7.09E-14 4.38E-13 5.68E-13 3.02E-13 5.96E-13 + 5.40E-13 1.27E-06 1.47E-06 + 1.3506E-03 2.4962E-02 1.4986E-01 2.0486E-01 2.3024E-01 4.9571E-01 + 5.4511E-01 6.4775E-01 7.5956E-01 8.3537E-01 8.3866E-01 + prteigrs : nnsclo,ikpt= 30 48 max resid (incl. the buffer)= 1.47491E-06 + Non-SCF case, kpt 49 ( 0.44444 0.11111 0.50000), residuals and eigenvalues= + 1.63E-13 3.62E-13 9.92E-14 2.69E-13 1.45E-13 7.95E-13 3.20E-13 5.21E-13 + 5.70E-13 9.77E-10 8.46E-09 + 4.9155E-03 2.8573E-02 1.5460E-01 1.8444E-01 2.3120E-01 4.9927E-01 + 5.2386E-01 7.0002E-01 7.6252E-01 8.1091E-01 8.2221E-01 + prteigrs : nnsclo,ikpt= 30 49 max resid (incl. the buffer)= 8.45775E-09 + Non-SCF case, kpt 50 ( 0.41667 0.16667 0.50000), residuals and eigenvalues= + 1.32E-13 5.83E-13 3.36E-13 9.81E-14 5.16E-13 1.65E-13 7.14E-13 6.15E-13 + 7.43E-13 4.37E-13 1.21E-12 + 1.1047E-02 3.4406E-02 1.5702E-01 1.6257E-01 2.3154E-01 4.5937E-01 + 5.6391E-01 7.4717E-01 7.6752E-01 7.8647E-01 7.9826E-01 + prteigrs : nnsclo,ikpt= 30 50 max resid (incl. the buffer)= 1.21403E-12 + Non-SCF case, kpt 51 ( 0.38889 0.22222 0.50000), residuals and eigenvalues= + 2.96E-13 2.79E-13 2.96E-13 5.02E-13 1.75E-13 7.06E-13 3.55E-13 5.64E-13 + 4.10E-13 4.09E-13 6.91E-13 + 1.9731E-02 4.1993E-02 1.2822E-01 1.7379E-01 2.2921E-01 4.2790E-01 + 6.1080E-01 7.6445E-01 7.7038E-01 7.7430E-01 7.7979E-01 + Non-SCF case, kpt 52 ( 0.36111 0.27778 0.50000), residuals and eigenvalues= + 4.73E-13 1.70E-13 1.90E-13 2.47E-13 1.20E-13 2.40E-13 4.32E-13 9.56E-13 + 7.99E-13 9.92E-13 3.89E-12 + 3.0820E-02 4.8628E-02 1.0086E-01 1.8811E-01 2.2098E-01 4.0804E-01 + 6.6026E-01 7.4038E-01 7.4128E-01 7.8184E-01 7.9103E-01 + prteigrs : nnsclo,ikpt= 30 52 max resid (incl. the buffer)= 3.89308E-12 + Non-SCF case, kpt 53 ( 0.33333 0.33333 0.50000), residuals and eigenvalues= + 1.74E-13 2.52E-13 1.01E-13 5.01E-13 1.05E-13 9.15E-14 6.17E-13 7.18E-13 + 2.33E-13 8.96E-13 2.34E-13 + 4.4398E-02 4.4398E-02 8.8794E-02 2.0579E-01 2.0579E-01 4.0155E-01 + 7.0218E-01 7.2026E-01 7.2026E-01 7.8997E-01 7.8997E-01 + Non-SCF case, kpt 54 ( 0.30556 0.30556 0.50000), residuals and eigenvalues= + 1.32E-13 6.78E-14 7.53E-13 3.35E-13 3.01E-13 1.03E-13 3.47E-13 5.04E-13 + 4.35E-13 6.30E-13 7.90E-13 + 2.3309E-02 6.0041E-02 9.7002E-02 1.8380E-01 2.2626E-01 4.0718E-01 + 6.7767E-01 6.9875E-01 7.6345E-01 7.7891E-01 7.9539E-01 + Non-SCF case, kpt 55 ( 0.27778 0.27778 0.50000), residuals and eigenvalues= + 1.20E-13 2.86E-13 2.84E-13 5.48E-13 9.64E-14 6.65E-13 4.61E-13 5.68E-13 + 7.87E-13 7.50E-12 4.56E-11 + -1.4887E-03 7.8421E-02 1.1377E-01 1.5871E-01 2.4948E-01 4.2212E-01 + 6.5015E-01 6.8050E-01 7.6377E-01 7.9605E-01 8.0619E-01 + prteigrs : nnsclo,ikpt= 30 55 max resid (incl. the buffer)= 4.56211E-11 + Non-SCF case, kpt 56 ( 0.25000 0.25000 0.50000), residuals and eigenvalues= + 1.65E-13 5.12E-13 1.91E-13 1.87E-13 4.59E-13 1.04E-13 7.10E-13 1.47E-13 + 2.48E-13 6.88E-13 6.37E-11 + -2.5599E-02 9.8640E-02 1.3280E-01 1.3317E-01 2.7597E-01 4.4372E-01 + 6.2424E-01 6.6202E-01 7.4639E-01 7.9271E-01 8.3440E-01 + prteigrs : nnsclo,ikpt= 30 56 max resid (incl. the buffer)= 6.36551E-11 + Non-SCF case, kpt 57 ( 0.22222 0.22222 0.50000), residuals and eigenvalues= + 1.08E-13 7.19E-13 5.11E-13 4.73E-13 1.20E-13 1.84E-13 8.36E-13 5.08E-13 + 3.61E-13 2.95E-12 1.81E-08 + -4.7491E-02 1.0800E-01 1.2081E-01 1.5552E-01 3.0555E-01 4.7031E-01 + 6.0072E-01 6.4522E-01 7.2883E-01 7.8533E-01 8.4979E-01 + prteigrs : nnsclo,ikpt= 30 57 max resid (incl. the buffer)= 1.80742E-08 + Non-SCF case, kpt 58 ( 0.19444 0.19444 0.50000), residuals and eigenvalues= + 2.93E-13 1.42E-13 8.77E-14 3.97E-13 1.55E-13 6.69E-13 5.14E-13 2.11E-13 + 2.77E-13 6.01E-12 6.65E-06 + -6.7317E-02 8.5087E-02 1.4567E-01 1.7990E-01 3.3866E-01 5.0079E-01 + 5.8041E-01 6.3004E-01 7.1181E-01 7.7612E-01 8.3332E-01 + prteigrs : nnsclo,ikpt= 30 58 max resid (incl. the buffer)= 6.65062E-06 + Non-SCF case, kpt 59 ( 0.16667 0.16667 0.50000), residuals and eigenvalues= + 1.75E-13 2.32E-13 1.21E-13 3.74E-13 2.49E-13 4.04E-13 2.56E-13 5.73E-13 + 4.38E-13 3.95E-13 3.21E-10 + -8.4687E-02 6.4469E-02 1.7227E-01 2.0497E-01 3.7395E-01 5.3420E-01 + 5.6290E-01 6.1515E-01 6.9573E-01 7.6504E-01 7.8737E-01 + prteigrs : nnsclo,ikpt= 30 59 max resid (incl. the buffer)= 3.21490E-10 + Non-SCF case, kpt 60 ( 0.13889 0.13889 0.50000), residuals and eigenvalues= + 8.29E-14 1.37E-13 3.79E-13 1.64E-13 3.04E-13 3.61E-13 8.46E-13 2.75E-13 + 7.48E-13 2.48E-10 3.56E-10 + -9.9381E-02 4.6637E-02 2.0036E-01 2.3070E-01 4.1176E-01 5.4900E-01 + 5.6977E-01 6.0050E-01 6.8158E-01 7.4463E-01 7.5430E-01 + prteigrs : nnsclo,ikpt= 30 60 max resid (incl. the buffer)= 3.56282E-10 + Non-SCF case, kpt 61 ( 0.11111 0.11111 0.50000), residuals and eigenvalues= + 1.75E-13 2.24E-13 5.84E-13 5.42E-13 3.67E-13 3.44E-13 5.65E-13 5.48E-13 + 5.39E-13 1.50E-11 3.86E-10 + -1.1142E-01 3.1883E-02 2.2999E-01 2.5510E-01 4.5209E-01 5.3819E-01 + 5.8395E-01 6.0633E-01 6.7028E-01 7.0667E-01 7.4480E-01 + prteigrs : nnsclo,ikpt= 30 61 max resid (incl. the buffer)= 3.86276E-10 + Non-SCF case, kpt 62 ( 0.08333 0.08333 0.50000), residuals and eigenvalues= + 2.94E-13 1.43E-13 7.48E-14 1.97E-13 1.74E-13 2.31E-13 2.52E-13 8.92E-13 + 4.31E-13 5.79E-13 1.23E-10 + -1.2089E-01 2.0194E-02 2.5855E-01 2.7717E-01 4.9235E-01 5.3097E-01 + 5.6616E-01 6.3952E-01 6.6459E-01 6.7434E-01 7.3615E-01 + prteigrs : nnsclo,ikpt= 30 62 max resid (incl. the buffer)= 1.22998E-10 + Non-SCF case, kpt 63 ( 0.05556 0.05556 0.50000), residuals and eigenvalues= + 1.88E-13 1.63E-13 4.67E-13 1.92E-13 3.02E-13 5.31E-13 5.03E-13 4.09E-13 + 3.45E-13 1.38E-11 1.04E-09 + -1.2750E-01 1.1700E-02 2.8452E-01 2.9644E-01 5.2641E-01 5.2980E-01 + 5.4796E-01 6.4730E-01 6.5223E-01 6.8382E-01 7.2802E-01 + prteigrs : nnsclo,ikpt= 30 63 max resid (incl. the buffer)= 1.04294E-09 + Non-SCF case, kpt 64 ( 0.02778 0.02778 0.50000), residuals and eigenvalues= + 7.49E-14 6.00E-13 1.92E-13 2.90E-13 4.99E-13 4.96E-13 3.02E-13 2.03E-13 + 3.09E-13 1.11E-10 4.56E-09 + -1.3154E-01 6.4571E-03 3.0375E-01 3.0828E-01 5.2452E-01 5.3106E-01 + 5.6093E-01 6.4010E-01 6.4422E-01 7.0852E-01 7.2154E-01 + prteigrs : nnsclo,ikpt= 30 64 max resid (incl. the buffer)= 4.55943E-09 + Non-SCF case, kpt 65 ( 0.00000 0.00000 0.50000), residuals and eigenvalues= + 1.28E-13 8.35E-14 3.64E-13 4.52E-13 1.66E-13 1.31E-13 5.37E-13 8.18E-13 + 1.70E-13 2.07E-10 2.45E-08 + -1.3284E-01 4.7586E-03 3.1323E-01 3.1323E-01 5.2455E-01 5.2455E-01 + 5.7397E-01 6.3660E-01 6.4305E-01 7.1826E-01 7.1826E-01 + prteigrs : nnsclo,ikpt= 30 65 max resid (incl. the buffer)= 2.44595E-08 + Non-SCF case, kpt 66 ( 0.05000 0.00000 0.50000), residuals and eigenvalues= + 6.78E-14 6.41E-13 2.04E-13 1.86E-13 5.80E-13 1.58E-13 4.23E-13 9.63E-13 + 1.72E-13 4.72E-09 1.43E-08 + -1.3142E-01 6.5928E-03 3.0299E-01 3.0805E-01 5.2426E-01 5.3203E-01 + 5.5995E-01 6.4041E-01 6.4432E-01 7.0890E-01 7.2029E-01 + prteigrs : nnsclo,ikpt= 30 66 max resid (incl. the buffer)= 1.43486E-08 + Non-SCF case, kpt 67 ( 0.10000 0.00000 0.50000), residuals and eigenvalues= + 1.69E-13 1.63E-13 7.01E-13 4.52E-13 8.60E-13 3.30E-13 1.94E-13 6.57E-13 + 2.57E-13 7.82E-13 5.77E-13 + -1.2716E-01 1.2132E-02 2.8115E-01 2.9667E-01 5.2259E-01 5.2663E-01 + 5.5281E-01 6.4777E-01 6.5307E-01 6.9001E-01 7.1330E-01 + Non-SCF case, kpt 68 ( 0.15000 0.00000 0.50000), residuals and eigenvalues= + 5.39E-13 1.92E-13 3.08E-13 7.41E-14 1.23E-13 7.30E-13 2.57E-13 7.02E-13 + 3.15E-13 2.67E-13 9.23E-13 + -1.1983E-01 2.1465E-02 2.5094E-01 2.8088E-01 4.8557E-01 5.1971E-01 + 5.8421E-01 6.5267E-01 6.7012E-01 6.7358E-01 6.9715E-01 + Non-SCF case, kpt 69 ( 0.20000 0.00000 0.50000), residuals and eigenvalues= + 1.13E-13 2.46E-13 8.77E-13 7.95E-14 3.57E-13 2.81E-13 5.10E-13 4.52E-13 + 3.72E-13 1.03E-12 2.65E-12 + -1.0961E-01 3.4066E-02 2.1611E-01 2.6530E-01 4.4133E-01 5.1294E-01 + 6.2223E-01 6.5053E-01 6.5184E-01 6.8733E-01 6.9973E-01 + prteigrs : nnsclo,ikpt= 30 69 max resid (incl. the buffer)= 2.65084E-12 + Non-SCF case, kpt 70 ( 0.25000 0.00000 0.50000), residuals and eigenvalues= + 1.34E-13 4.75E-13 1.07E-13 1.33E-13 1.27E-13 3.79E-13 2.09E-13 4.50E-13 + 3.24E-13 1.27E-11 2.19E-11 + -9.6629E-02 5.0046E-02 1.7919E-01 2.5046E-01 3.9682E-01 5.0545E-01 + 6.3600E-01 6.3747E-01 6.6535E-01 6.9331E-01 7.2631E-01 + prteigrs : nnsclo,ikpt= 30 70 max resid (incl. the buffer)= 2.18986E-11 + Non-SCF case, kpt 71 ( 0.30000 0.00000 0.50000), residuals and eigenvalues= + 2.37E-13 1.54E-13 2.27E-13 1.46E-13 1.75E-13 9.69E-14 4.17E-13 1.00E-12 + 5.76E-13 2.59E-13 5.60E-12 + -8.0736E-02 6.9149E-02 1.4265E-01 2.3726E-01 3.5342E-01 4.9854E-01 + 6.2210E-01 6.2287E-01 7.0612E-01 7.1101E-01 7.5506E-01 + prteigrs : nnsclo,ikpt= 30 71 max resid (incl. the buffer)= 5.59722E-12 + Non-SCF case, kpt 72 ( 0.35000 0.00000 0.50000), residuals and eigenvalues= + 1.56E-13 1.98E-13 6.23E-13 3.20E-13 2.22E-13 7.95E-14 4.90E-13 6.00E-13 + 3.70E-13 5.36E-12 3.48E-10 + -6.2057E-02 9.0913E-02 1.0740E-01 2.2637E-01 3.1196E-01 4.9276E-01 + 6.0845E-01 6.1258E-01 7.2188E-01 7.5880E-01 7.8366E-01 + prteigrs : nnsclo,ikpt= 30 72 max resid (incl. the buffer)= 3.47875E-10 + Non-SCF case, kpt 73 ( 0.40000 0.00000 0.50000), residuals and eigenvalues= + 4.36E-13 3.84E-13 3.18E-13 1.24E-13 3.50E-13 1.48E-13 7.62E-13 2.09E-13 + 5.43E-13 3.92E-09 8.60E-09 + -4.0705E-02 7.3952E-02 1.1450E-01 2.1878E-01 2.7447E-01 4.8848E-01 + 5.9866E-01 6.0523E-01 7.3833E-01 8.0523E-01 8.1078E-01 + prteigrs : nnsclo,ikpt= 30 73 max resid (incl. the buffer)= 8.59640E-09 + Non-SCF case, kpt 74 ( 0.45000 0.00000 0.50000), residuals and eigenvalues= + 2.69E-13 2.93E-13 1.69E-13 1.90E-13 6.70E-13 7.26E-13 1.82E-13 7.41E-13 + 5.61E-13 9.08E-08 4.90E-06 + -1.7339E-02 4.3653E-02 1.3705E-01 2.1427E-01 2.4383E-01 4.8622E-01 + 5.9313E-01 6.0081E-01 7.5268E-01 8.3317E-01 8.4422E-01 + prteigrs : nnsclo,ikpt= 30 74 max resid (incl. the buffer)= 4.89926E-06 + Non-SCF case, kpt 75 ( 0.50000 0.00000 0.50000), residuals and eigenvalues= + 4.95E-14 3.32E-13 1.24E-13 1.21E-13 1.78E-13 3.56E-13 9.16E-13 7.30E-13 + 7.37E-13 6.69E-08 5.67E-08 + -5.1669E-05 2.3333E-02 1.4813E-01 2.1258E-01 2.2976E-01 4.8527E-01 + 5.9105E-01 5.9934E-01 7.5796E-01 8.4349E-01 8.5419E-01 + prteigrs : nnsclo,ikpt= 30 75 max resid (incl. the buffer)= 6.68998E-08 + Non-SCF case, kpt 76 ( 0.50000 0.00000 0.43750), residuals and eigenvalues= + 8.21E-13 7.89E-13 4.38E-13 1.31E-13 1.24E-13 2.31E-13 3.58E-13 3.73E-13 + 6.48E-13 5.83E-09 2.14E-05 + -1.8838E-03 2.2066E-02 1.5278E-01 2.1228E-01 2.3412E-01 4.8226E-01 + 5.9561E-01 6.0255E-01 7.3855E-01 8.1208E-01 8.6186E-01 + prteigrs : nnsclo,ikpt= 30 76 max resid (incl. the buffer)= 2.13562E-05 + Non-SCF case, kpt 77 ( 0.50000 0.00000 0.37500), residuals and eigenvalues= + 1.26E-13 5.89E-13 2.87E-13 4.35E-14 3.00E-13 3.60E-13 2.23E-13 6.66E-13 + 9.33E-13 1.82E-10 1.18E-06 + -7.2990E-03 1.7233E-02 1.6475E-01 2.1104E-01 2.4666E-01 4.7475E-01 + 6.0727E-01 6.1206E-01 6.9491E-01 7.7066E-01 8.5802E-01 + prteigrs : nnsclo,ikpt= 30 77 max resid (incl. the buffer)= 1.17950E-06 + Non-SCF case, kpt 78 ( 0.50000 0.00000 0.31250), residuals and eigenvalues= + 2.26E-13 8.17E-13 6.28E-14 6.12E-14 3.73E-13 1.32E-13 9.84E-13 6.58E-13 + 3.34E-13 2.70E-12 1.48E-06 + -1.4370E-02 1.1006E-02 1.8378E-01 2.0950E-01 2.6616E-01 4.6516E-01 + 6.2051E-01 6.2768E-01 6.4663E-01 7.2989E-01 8.5512E-01 + prteigrs : nnsclo,ikpt= 30 78 max resid (incl. the buffer)= 1.47755E-06 + Non-SCF case, kpt 79 ( 0.50000 0.00000 0.25000), residuals and eigenvalues= + 1.71E-13 4.94E-14 6.01E-14 1.65E-13 1.09E-13 3.10E-13 6.51E-13 4.33E-13 + 9.90E-13 5.43E-13 7.02E-07 + -2.1463E-02 4.3418E-03 2.0680E-01 2.0756E-01 2.9025E-01 4.5536E-01 + 5.9846E-01 6.2270E-01 6.4882E-01 7.0129E-01 8.5187E-01 + prteigrs : nnsclo,ikpt= 30 79 max resid (incl. the buffer)= 7.01656E-07 + Non-SCF case, kpt 80 ( 0.50000 0.00000 0.18750), residuals and eigenvalues= + 2.59E-13 2.02E-13 2.54E-13 1.01E-13 1.60E-13 1.58E-13 7.30E-13 2.69E-13 + 6.94E-13 9.40E-13 4.79E-07 + -2.7688E-02 -1.6030E-03 2.0471E-01 2.3402E-01 3.1868E-01 4.4633E-01 + 5.5290E-01 6.0150E-01 6.7505E-01 7.0017E-01 8.4899E-01 + prteigrs : nnsclo,ikpt= 30 80 max resid (incl. the buffer)= 4.79434E-07 + Non-SCF case, kpt 81 ( 0.50000 0.00000 0.12500), residuals and eigenvalues= + 1.94E-13 2.96E-13 5.20E-14 8.50E-14 1.79E-13 2.50E-13 2.64E-13 1.82E-13 + 4.40E-13 5.70E-13 1.74E-04 + -3.2470E-02 -6.3331E-03 2.0298E-01 2.5988E-01 3.4859E-01 4.3764E-01 + 5.1271E-01 5.6880E-01 7.0573E-01 7.1351E-01 8.6215E-01 + prteigrs : nnsclo,ikpt= 30 81 max resid (incl. the buffer)= 1.74091E-04 + Non-SCF case, kpt 82 ( 0.50000 0.00000 0.06250), residuals and eigenvalues= + 5.01E-13 2.17E-13 8.77E-14 3.13E-13 1.14E-13 2.38E-13 5.05E-13 6.36E-13 + 4.90E-13 2.72E-13 1.05E-07 + -3.5541E-02 -9.4715E-03 2.0126E-01 2.7999E-01 3.7676E-01 4.2764E-01 + 4.8290E-01 5.4094E-01 7.2611E-01 7.3973E-01 8.2548E-01 + prteigrs : nnsclo,ikpt= 30 82 max resid (incl. the buffer)= 1.04585E-07 + Non-SCF case, kpt 83 ( 0.50000 0.00000 0.00000), residuals and eigenvalues= + 4.33E-13 9.89E-14 2.97E-13 3.53E-13 9.45E-14 7.78E-13 5.23E-13 2.27E-13 + 9.94E-13 5.07E-11 4.99E-11 + -3.6419E-02 -1.0284E-02 2.0136E-01 2.8919E-01 3.9314E-01 4.1954E-01 + 4.7153E-01 5.2988E-01 7.3141E-01 7.6680E-01 7.9574E-01 + prteigrs : nnsclo,ikpt= 30 83 max resid (incl. the buffer)= 5.06962E-11 + Non-SCF case, kpt 84 ( 0.47222 0.05556 0.00000), residuals and eigenvalues= + 1.54E-13 5.64E-14 4.76E-13 1.46E-13 3.26E-13 7.96E-14 3.65E-13 3.42E-13 + 7.44E-13 1.01E-11 7.87E-07 + -3.5231E-02 -9.1548E-03 1.9167E-01 2.9020E-01 3.9230E-01 4.3001E-01 + 4.7240E-01 5.3180E-01 7.0700E-01 7.5768E-01 8.2428E-01 + prteigrs : nnsclo,ikpt= 30 84 max resid (incl. the buffer)= 7.86512E-07 + Non-SCF case, kpt 85 ( 0.44444 0.11111 0.00000), residuals and eigenvalues= + 2.12E-13 1.64E-13 5.66E-14 9.26E-14 4.60E-13 3.70E-13 1.94E-13 3.30E-13 + 7.87E-13 4.60E-13 8.55E-08 + -3.1319E-02 -5.2059E-03 1.6755E-01 2.9508E-01 3.9012E-01 4.5589E-01 + 4.7519E-01 5.3841E-01 6.7028E-01 7.3635E-01 8.1855E-01 + prteigrs : nnsclo,ikpt= 30 85 max resid (incl. the buffer)= 8.54600E-08 + Non-SCF case, kpt 86 ( 0.41667 0.16667 0.00000), residuals and eigenvalues= + 1.86E-13 2.05E-13 1.35E-13 9.90E-14 1.30E-13 2.09E-13 2.67E-13 2.00E-13 + 4.53E-13 1.01E-12 2.63E-08 + -2.4751E-02 1.1138E-03 1.3660E-01 3.0411E-01 3.8584E-01 4.7987E-01 + 4.8440E-01 5.5249E-01 6.3792E-01 7.1261E-01 7.9680E-01 + prteigrs : nnsclo,ikpt= 30 86 max resid (incl. the buffer)= 2.62791E-08 + Non-SCF case, kpt 87 ( 0.38889 0.22222 0.00000), residuals and eigenvalues= + 2.31E-13 4.88E-13 1.96E-13 8.33E-14 2.93E-13 1.59E-13 1.93E-13 4.98E-13 + 1.38E-13 1.26E-12 4.17E-08 + -1.5548E-02 9.0578E-03 1.0470E-01 3.1546E-01 3.7789E-01 4.8635E-01 + 5.0335E-01 5.7576E-01 6.1353E-01 6.9640E-01 7.7382E-01 + prteigrs : nnsclo,ikpt= 30 87 max resid (incl. the buffer)= 4.17079E-08 + Non-SCF case, kpt 88 ( 0.36111 0.27778 0.00000), residuals and eigenvalues= + 2.85E-13 4.44E-13 1.69E-13 1.09E-13 1.92E-13 1.94E-13 1.63E-13 3.58E-13 + 2.03E-13 3.68E-11 7.61E-07 + -3.7154E-03 1.5705E-02 7.5961E-02 3.3002E-01 3.6504E-01 4.9450E-01 + 5.0914E-01 5.9467E-01 5.9883E-01 7.0204E-01 7.5169E-01 + prteigrs : nnsclo,ikpt= 30 88 max resid (incl. the buffer)= 7.61479E-07 + Non-SCF case, kpt 89 ( 0.33333 0.33333 0.00000), residuals and eigenvalues= + 3.57E-13 1.95E-13 2.37E-13 1.39E-13 2.38E-13 1.04E-13 1.15E-13 6.55E-13 + 4.91E-13 1.90E-11 5.63E-07 + 1.0352E-02 1.0352E-02 6.2957E-02 3.4750E-01 3.4750E-01 5.0371E-01 + 5.0371E-01 5.9408E-01 5.9843E-01 7.3097E-01 7.3100E-01 + prteigrs : nnsclo,ikpt= 30 89 max resid (incl. the buffer)= 5.63158E-07 + Non-SCF case, kpt 90 ( 0.33333 0.33333 0.06250), residuals and eigenvalues= + 5.46E-13 1.83E-13 1.08E-13 1.08E-13 1.52E-13 1.56E-13 3.41E-13 2.31E-13 + 1.44E-13 2.41E-10 6.52E-09 + 1.1353E-02 1.1353E-02 6.4420E-02 3.3811E-01 3.3811E-01 5.1588E-01 + 5.1588E-01 5.6009E-01 6.3043E-01 7.3253E-01 7.3253E-01 + prteigrs : nnsclo,ikpt= 30 90 max resid (incl. the buffer)= 6.51673E-09 + Non-SCF case, kpt 91 ( 0.33333 0.33333 0.12500), residuals and eigenvalues= + 1.36E-13 3.20E-13 2.05E-13 1.01E-13 2.46E-13 3.69E-13 3.22E-13 3.72E-13 + 3.77E-13 5.96E-13 5.91E-12 + 1.4449E-02 1.4449E-02 6.6931E-02 3.1619E-01 3.1619E-01 5.2423E-01 + 5.4578E-01 5.4578E-01 6.5687E-01 7.3537E-01 7.3537E-01 + prteigrs : nnsclo,ikpt= 30 91 max resid (incl. the buffer)= 5.90635E-12 + Non-SCF case, kpt 92 ( 0.33333 0.33333 0.18750), residuals and eigenvalues= + 1.52E-13 8.33E-14 1.76E-13 1.17E-13 1.93E-13 1.20E-13 3.82E-13 6.62E-13 + 2.50E-13 1.69E-12 3.03E-12 + 1.8756E-02 1.8756E-02 7.0225E-02 2.8904E-01 2.8904E-01 4.9061E-01 + 5.8344E-01 5.8344E-01 6.7384E-01 7.3888E-01 7.3888E-01 + prteigrs : nnsclo,ikpt= 30 92 max resid (incl. the buffer)= 3.02990E-12 + Non-SCF case, kpt 93 ( 0.33333 0.33333 0.25000), residuals and eigenvalues= + 6.90E-13 1.93E-13 3.13E-13 4.66E-13 6.04E-13 2.14E-13 5.18E-13 4.33E-13 + 4.90E-13 3.11E-13 7.23E-13 + 2.4572E-02 2.4572E-02 7.4897E-02 2.6311E-01 2.6311E-01 4.6093E-01 + 6.2453E-01 6.2453E-01 6.8486E-01 7.4491E-01 7.4491E-01 + Non-SCF case, kpt 94 ( 0.33333 0.33333 0.31250), residuals and eigenvalues= + 4.48E-13 6.19E-13 6.18E-14 2.29E-13 2.22E-13 3.38E-13 1.55E-13 1.57E-13 + 7.38E-13 3.52E-13 6.14E-13 + 3.1182E-02 3.1182E-02 7.9871E-02 2.4062E-01 2.4062E-01 4.3616E-01 + 6.6481E-01 6.6481E-01 6.9237E-01 7.5386E-01 7.5386E-01 + Non-SCF case, kpt 95 ( 0.33333 0.33333 0.37500), residuals and eigenvalues= + 1.34E-13 2.32E-13 1.05E-13 3.94E-13 1.85E-13 2.06E-13 5.47E-13 3.50E-13 + 1.83E-13 6.37E-13 6.69E-13 + 3.7452E-02 3.7452E-02 8.4127E-02 2.2148E-01 2.2148E-01 4.1733E-01 + 6.9612E-01 6.9612E-01 6.9740E-01 7.6525E-01 7.6525E-01 + Non-SCF case, kpt 96 ( 0.33333 0.33333 0.43750), residuals and eigenvalues= + 1.35E-13 1.09E-13 7.48E-14 1.18E-13 9.42E-14 2.35E-13 4.80E-13 3.43E-13 + 2.85E-13 8.52E-13 8.12E-13 + 4.2392E-02 4.2392E-02 8.7584E-02 2.0964E-01 2.0964E-01 4.0556E-01 + 7.0093E-01 7.1405E-01 7.1405E-01 7.8113E-01 7.8113E-01 + Non-SCF case, kpt 97 ( 0.33333 0.33333 0.50000), residuals and eigenvalues= + 1.74E-13 2.52E-13 1.01E-13 5.01E-13 1.05E-13 9.15E-14 6.17E-13 7.18E-13 + 2.33E-13 8.96E-13 2.34E-13 + 4.4398E-02 4.4398E-02 8.8794E-02 2.0579E-01 2.0579E-01 4.0155E-01 + 7.0218E-01 7.2026E-01 7.2026E-01 7.8997E-01 7.8997E-01 +================================================================================ + + ----iterations are completed or convergence reached---- + + Mean square residual over all n,k,spin= 3.9472E-07; max= 1.2024E-04 + 0.0000 0.0000 0.0000 1 1.21831E-11 kpt; spin; max resid(k); each band: + 1.73E-13 5.84E-14 2.96E-13 1.84E-13 4.98E-13 9.30E-14 1.61E-13 4.76E-13 + 1.10E-13 8.42E-13 1.22E-11 + 0.0500 0.0000 0.0000 1 6.89591E-07 kpt; spin; max resid(k); each band: + 2.69E-13 6.12E-13 2.23E-13 1.83E-13 1.09E-13 1.71E-13 3.28E-13 3.19E-13 + 5.86E-13 2.90E-12 6.90E-07 + 0.1000 0.0000 0.0000 1 2.73883E-07 kpt; spin; max resid(k); each band: + 2.88E-13 1.21E-13 2.63E-13 6.32E-13 1.40E-13 3.56E-13 7.76E-14 2.99E-13 + 5.84E-13 7.17E-12 2.74E-07 + 0.1500 0.0000 0.0000 1 1.74376E-07 kpt; spin; max resid(k); each band: + 3.53E-13 1.84E-13 2.91E-13 4.77E-13 2.45E-13 4.00E-13 3.13E-13 1.73E-13 + 2.70E-13 6.12E-08 1.74E-07 + 0.2000 0.0000 0.0000 1 4.96339E-07 kpt; spin; max resid(k); each band: + 2.59E-13 3.60E-13 2.42E-13 3.80E-13 3.15E-13 1.27E-13 1.88E-13 1.28E-13 + 8.67E-13 6.17E-08 4.96E-07 + 0.2500 0.0000 0.0000 1 8.75900E-07 kpt; spin; max resid(k); each band: + 3.17E-13 2.18E-13 1.43E-13 9.20E-14 1.45E-13 2.55E-13 1.78E-13 5.22E-13 + 3.79E-13 3.48E-08 8.76E-07 + 0.3000 0.0000 0.0000 1 2.87782E-06 kpt; spin; max resid(k); each band: + 4.50E-13 6.63E-14 1.85E-13 3.29E-13 2.80E-13 3.69E-13 3.28E-13 4.83E-13 + 4.13E-13 8.58E-09 2.88E-06 + 0.3500 0.0000 0.0000 1 1.51329E-06 kpt; spin; max resid(k); each band: + 6.66E-13 5.78E-13 4.12E-13 1.16E-13 1.69E-13 3.33E-13 1.57E-13 1.42E-13 + 6.53E-13 5.33E-12 1.51E-06 + 0.4000 0.0000 0.0000 1 4.73425E-06 kpt; spin; max resid(k); each band: + 3.16E-13 2.30E-13 8.48E-14 2.62E-13 4.22E-13 2.71E-13 3.87E-13 4.53E-13 + 5.46E-13 5.07E-11 4.73E-06 + 0.4500 0.0000 0.0000 1 6.00274E-09 kpt; spin; max resid(k); each band: + 2.21E-13 6.43E-14 8.29E-14 5.01E-13 3.84E-13 3.88E-13 1.55E-13 7.23E-13 + 7.74E-13 2.64E-11 6.00E-09 + 0.5000 0.0000 0.0000 1 5.06962E-11 kpt; spin; max resid(k); each band: + 4.33E-13 9.89E-14 2.97E-13 3.53E-13 9.45E-14 7.78E-13 5.23E-13 2.27E-13 + 9.94E-13 5.07E-11 4.99E-11 + 0.4722 0.0556 0.0000 1 7.86512E-07 kpt; spin; max resid(k); each band: + 1.54E-13 5.64E-14 4.76E-13 1.46E-13 3.26E-13 7.96E-14 3.65E-13 3.42E-13 + 7.44E-13 1.01E-11 7.87E-07 + 0.4444 0.1111 0.0000 1 8.54600E-08 kpt; spin; max resid(k); each band: + 2.12E-13 1.64E-13 5.66E-14 9.26E-14 4.60E-13 3.70E-13 1.94E-13 3.30E-13 + 7.87E-13 4.60E-13 8.55E-08 + 0.4167 0.1667 0.0000 1 2.62791E-08 kpt; spin; max resid(k); each band: + 1.86E-13 2.05E-13 1.35E-13 9.90E-14 1.30E-13 2.09E-13 2.67E-13 2.00E-13 + 4.53E-13 1.01E-12 2.63E-08 + 0.3889 0.2222 0.0000 1 4.17079E-08 kpt; spin; max resid(k); each band: + 2.31E-13 4.88E-13 1.96E-13 8.33E-14 2.93E-13 1.59E-13 1.93E-13 4.98E-13 + 1.38E-13 1.26E-12 4.17E-08 + 0.3611 0.2778 0.0000 1 7.61479E-07 kpt; spin; max resid(k); each band: + 2.85E-13 4.44E-13 1.69E-13 1.09E-13 1.92E-13 1.94E-13 1.63E-13 3.58E-13 + 2.03E-13 3.68E-11 7.61E-07 + 0.3333 0.3333 0.0000 1 5.63158E-07 kpt; spin; max resid(k); each band: + 3.57E-13 1.95E-13 2.37E-13 1.39E-13 2.38E-13 1.04E-13 1.15E-13 6.55E-13 + 4.91E-13 1.90E-11 5.63E-07 + 0.3056 0.3056 0.0000 1 1.94111E-10 kpt; spin; max resid(k); each band: + 1.69E-13 3.07E-13 1.86E-13 1.88E-13 1.26E-13 2.89E-13 5.28E-13 2.95E-13 + 3.18E-13 1.40E-10 1.94E-10 + 0.2778 0.2778 0.0000 1 6.30054E-12 kpt; spin; max resid(k); each band: + 1.78E-13 4.89E-14 1.28E-13 4.98E-13 4.44E-13 1.92E-13 4.37E-13 2.11E-13 + 2.87E-13 5.84E-12 6.30E-12 + 0.2500 0.2500 0.0000 1 8.99555E-13 kpt; spin; max resid(k); each band: + 4.65E-13 4.54E-13 3.29E-13 1.42E-13 3.29E-13 2.54E-13 1.62E-13 7.67E-13 + 8.51E-13 8.29E-13 9.00E-13 + 0.2222 0.2222 0.0000 1 7.64707E-13 kpt; spin; max resid(k); each band: + 4.52E-13 7.36E-14 1.74E-13 1.05E-13 2.46E-13 2.25E-13 1.58E-13 4.37E-13 + 4.46E-13 3.99E-13 7.65E-13 + 0.1944 0.1944 0.0000 1 1.41666E-11 kpt; spin; max resid(k); each band: + 1.74E-13 3.06E-13 4.34E-14 3.51E-13 3.84E-13 5.35E-13 8.38E-13 9.75E-14 + 3.22E-13 5.72E-13 1.42E-11 + 0.1667 0.1667 0.0000 1 8.29045E-10 kpt; spin; max resid(k); each band: + 1.66E-13 2.71E-13 4.60E-13 2.92E-13 2.90E-13 7.78E-13 6.66E-13 1.51E-13 + 2.61E-13 6.23E-13 8.29E-10 + 0.1389 0.1389 0.0000 1 3.68299E-07 kpt; spin; max resid(k); each band: + 1.16E-13 2.12E-13 3.62E-13 3.48E-13 4.02E-13 1.11E-13 2.69E-13 5.52E-13 + 3.14E-13 8.34E-10 3.68E-07 + 0.1111 0.1111 0.0000 1 7.91579E-06 kpt; spin; max resid(k); each band: + 2.04E-13 9.41E-14 1.63E-13 6.77E-14 1.49E-13 1.91E-13 1.91E-13 9.79E-13 + 6.94E-13 2.86E-07 7.92E-06 + 0.0833 0.0833 0.0000 1 1.70600E-05 kpt; spin; max resid(k); each band: + 2.86E-13 4.99E-13 2.06E-13 1.07E-13 1.98E-13 1.53E-13 1.84E-13 2.42E-13 + 1.31E-13 3.66E-08 1.71E-05 + 0.0556 0.0556 0.0000 1 1.20237E-04 kpt; spin; max resid(k); each band: + 2.44E-13 8.86E-13 6.53E-13 4.88E-13 5.04E-13 3.70E-13 1.57E-13 6.57E-13 + 5.00E-13 4.51E-10 1.20E-04 + 0.0278 0.0278 0.0000 1 1.87222E-05 kpt; spin; max resid(k); each band: + 1.08E-13 2.14E-13 2.46E-13 2.19E-13 8.21E-14 3.86E-13 2.39E-13 8.33E-14 + 8.94E-13 3.05E-11 1.87E-05 + 0.0000 0.0000 0.0000 1 1.21831E-11 kpt; spin; max resid(k); each band: + 1.73E-13 5.84E-14 2.96E-13 1.84E-13 4.98E-13 9.30E-14 1.61E-13 4.76E-13 + 1.10E-13 8.42E-13 1.22E-11 + 0.0000 0.0000 0.0625 1 1.08210E-08 kpt; spin; max resid(k); each band: + 1.94E-13 2.29E-13 3.80E-13 1.59E-13 4.15E-13 8.12E-14 7.29E-14 1.95E-13 + 1.79E-13 3.84E-13 1.08E-08 + 0.0000 0.0000 0.1250 1 4.26017E-08 kpt; spin; max resid(k); each band: + 3.59E-13 1.03E-13 4.63E-13 1.45E-13 2.89E-13 2.22E-13 7.51E-13 4.08E-13 + 3.82E-13 6.38E-11 4.26E-08 + 0.0000 0.0000 0.1875 1 1.77143E-08 kpt; spin; max resid(k); each band: + 1.25E-13 8.71E-13 6.26E-13 2.77E-13 1.22E-13 6.37E-13 2.41E-13 2.22E-13 + 9.32E-13 9.25E-10 1.77E-08 + 0.0000 0.0000 0.2500 1 3.78411E-06 kpt; spin; max resid(k); each band: + 6.02E-13 7.04E-14 7.53E-13 1.68E-13 3.32E-13 2.07E-13 2.55E-13 2.70E-13 + 3.68E-13 3.78E-06 1.13E-10 + 0.0000 0.0000 0.3125 1 1.63395E-05 kpt; spin; max resid(k); each band: + 4.13E-13 9.50E-13 3.61E-13 1.52E-13 2.57E-13 3.74E-13 7.01E-13 6.68E-13 + 3.10E-13 2.00E-12 1.63E-05 + 0.0000 0.0000 0.3750 1 7.91815E-07 kpt; spin; max resid(k); each band: + 4.03E-13 4.12E-14 2.96E-13 8.31E-13 1.29E-13 1.68E-13 1.40E-13 2.48E-13 + 6.77E-13 1.54E-12 7.92E-07 + 0.0000 0.0000 0.4375 1 3.79494E-08 kpt; spin; max resid(k); each band: + 3.59E-13 9.92E-13 2.10E-13 8.06E-13 7.35E-13 3.40E-13 3.90E-13 2.42E-13 + 7.80E-13 1.59E-09 3.79E-08 + 0.0000 0.0000 0.5000 1 2.44595E-08 kpt; spin; max resid(k); each band: + 1.28E-13 8.35E-14 3.64E-13 4.52E-13 1.66E-13 1.31E-13 5.37E-13 8.18E-13 + 1.70E-13 2.07E-10 2.45E-08 + 0.0500 0.0000 0.5000 1 1.43486E-08 kpt; spin; max resid(k); each band: + 6.78E-14 6.41E-13 2.04E-13 1.86E-13 5.80E-13 1.58E-13 4.23E-13 9.63E-13 + 1.72E-13 4.72E-09 1.43E-08 + 0.1000 0.0000 0.5000 1 8.59952E-13 kpt; spin; max resid(k); each band: + 1.69E-13 1.63E-13 7.01E-13 4.52E-13 8.60E-13 3.30E-13 1.94E-13 6.57E-13 + 2.57E-13 7.82E-13 5.77E-13 + 0.1500 0.0000 0.5000 1 9.22807E-13 kpt; spin; max resid(k); each band: + 5.39E-13 1.92E-13 3.08E-13 7.41E-14 1.23E-13 7.30E-13 2.57E-13 7.02E-13 + 3.15E-13 2.67E-13 9.23E-13 + 0.2000 0.0000 0.5000 1 2.65084E-12 kpt; spin; max resid(k); each band: + 1.13E-13 2.46E-13 8.77E-13 7.95E-14 3.57E-13 2.81E-13 5.10E-13 4.52E-13 + 3.72E-13 1.03E-12 2.65E-12 + 0.2500 0.0000 0.5000 1 2.18986E-11 kpt; spin; max resid(k); each band: + 1.34E-13 4.75E-13 1.07E-13 1.33E-13 1.27E-13 3.79E-13 2.09E-13 4.50E-13 + 3.24E-13 1.27E-11 2.19E-11 + 0.3000 0.0000 0.5000 1 5.59722E-12 kpt; spin; max resid(k); each band: + 2.37E-13 1.54E-13 2.27E-13 1.46E-13 1.75E-13 9.69E-14 4.17E-13 1.00E-12 + 5.76E-13 2.59E-13 5.60E-12 + 0.3500 0.0000 0.5000 1 3.47875E-10 kpt; spin; max resid(k); each band: + 1.56E-13 1.98E-13 6.23E-13 3.20E-13 2.22E-13 7.95E-14 4.90E-13 6.00E-13 + 3.70E-13 5.36E-12 3.48E-10 + 0.4000 0.0000 0.5000 1 8.59640E-09 kpt; spin; max resid(k); each band: + 4.36E-13 3.84E-13 3.18E-13 1.24E-13 3.50E-13 1.48E-13 7.62E-13 2.09E-13 + 5.43E-13 3.92E-09 8.60E-09 + 0.4500 0.0000 0.5000 1 4.89926E-06 kpt; spin; max resid(k); each band: + 2.69E-13 2.93E-13 1.69E-13 1.90E-13 6.70E-13 7.26E-13 1.82E-13 7.41E-13 + 5.61E-13 9.08E-08 4.90E-06 + 0.5000 0.0000 0.5000 1 6.68998E-08 kpt; spin; max resid(k); each band: + 4.95E-14 3.32E-13 1.24E-13 1.21E-13 1.78E-13 3.56E-13 9.16E-13 7.30E-13 + 7.37E-13 6.69E-08 5.67E-08 + 0.4722 0.0556 0.5000 1 1.47491E-06 kpt; spin; max resid(k); each band: + 1.37E-13 8.32E-13 7.06E-13 7.09E-14 4.38E-13 5.68E-13 3.02E-13 5.96E-13 + 5.40E-13 1.27E-06 1.47E-06 + 0.4444 0.1111 0.5000 1 8.45775E-09 kpt; spin; max resid(k); each band: + 1.63E-13 3.62E-13 9.92E-14 2.69E-13 1.45E-13 7.95E-13 3.20E-13 5.21E-13 + 5.70E-13 9.77E-10 8.46E-09 + 0.4167 0.1667 0.5000 1 1.21403E-12 kpt; spin; max resid(k); each band: + 1.32E-13 5.83E-13 3.36E-13 9.81E-14 5.16E-13 1.65E-13 7.14E-13 6.15E-13 + 7.43E-13 4.37E-13 1.21E-12 + outwf : prtvol=0 or 1, do not print more k-points. + + reduced coordinates (array xred) for 3 atoms + 0.000000000000 0.000000000000 0.000000000000 + 0.333333333333 0.666666666667 0.500000000000 + 0.666666666667 0.333333333333 0.500000000000 + + cartesian coordinates (angstrom) at end: + 1 0.00000000000000 0.00000000000000 0.00000000000000 + 2 -0.89085146584847 1.54300000082417 1.76150000096413 + 3 0.89085146584847 1.54300000082417 1.76150000096413 + length scales= 1.000000000000 1.000000000000 1.000000000000 bohr + = 0.529177208590 0.529177208590 0.529177208590 angstroms + prteigrs : about to open file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out_EIG + Eigenvalues (hartree) for nkpt= 97 k points: + kpt# 1, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.0000 (reduced coord) + -0.18002 0.17145 0.29801 0.29801 0.33630 0.50991 0.50991 0.57367 + 0.65094 0.72899 0.86971 + kpt# 2, nband= 11, wtk= 1.00000, kpt= 0.0500 0.0000 0.0000 (reduced coord) + -0.17846 0.17302 0.28799 0.29285 0.33772 0.50851 0.51695 0.57753 + 0.64506 0.73784 0.85923 + kpt# 3, nband= 11, wtk= 1.00000, kpt= 0.1000 0.0000 0.0000 (reduced coord) + -0.17362 0.17765 0.26324 0.28194 0.34211 0.50374 0.53777 0.58899 + 0.62700 0.76231 0.83619 + kpt# 4, nband= 11, wtk= 1.00000, kpt= 0.1500 0.0000 0.0000 (reduced coord) + -0.16560 0.18557 0.23067 0.26721 0.34954 0.49465 0.56782 0.60177 + 0.60502 0.79815 0.81178 + kpt# 5, nband= 11, wtk= 1.00000, kpt= 0.2000 0.0000 0.0000 (reduced coord) + -0.15442 0.19422 0.19629 0.25205 0.35983 0.48250 0.56841 0.60505 + 0.61743 0.79431 0.80398 + kpt# 6, nband= 11, wtk= 1.00000, kpt= 0.2500 0.0000 0.0000 (reduced coord) + -0.14040 0.15531 0.21050 0.23762 0.37220 0.47114 0.53264 0.61850 + 0.64622 0.78001 0.79120 + kpt# 7, nband= 11, wtk= 1.00000, kpt= 0.3000 0.0000 0.0000 (reduced coord) + -0.12307 0.11670 0.22510 0.22683 0.38662 0.46205 0.49593 0.60602 + 0.68960 0.76171 0.80413 + kpt# 8, nband= 11, wtk= 1.00000, kpt= 0.3500 0.0000 0.0000 (reduced coord) + -0.10279 0.07917 0.21496 0.24511 0.40124 0.45659 0.46041 0.58498 + 0.73075 0.74815 0.79917 + kpt# 9, nband= 11, wtk= 1.00000, kpt= 0.4000 0.0000 0.0000 (reduced coord) + -0.07995 0.04352 0.20741 0.26423 0.41281 0.42800 0.45742 0.56106 + 0.73860 0.75829 0.80365 + kpt# 10, nband= 11, wtk= 1.00000, kpt= 0.4500 0.0000 0.0000 (reduced coord) + -0.05504 0.01075 0.20238 0.28106 0.40313 0.41832 0.46546 0.53984 + 0.73306 0.76552 0.79760 + kpt# 11, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.0000 (reduced coord) + -0.03642 -0.01028 0.20136 0.28919 0.39314 0.41954 0.47153 0.52988 + 0.73141 0.76680 0.79574 + kpt# 12, nband= 11, wtk= 1.00000, kpt= 0.4722 0.0556 0.0000 (reduced coord) + -0.03523 -0.00915 0.19167 0.29020 0.39230 0.43001 0.47240 0.53180 + 0.70700 0.75768 0.82428 + kpt# 13, nband= 11, wtk= 1.00000, kpt= 0.4444 0.1111 0.0000 (reduced coord) + -0.03132 -0.00521 0.16755 0.29508 0.39012 0.45589 0.47519 0.53841 + 0.67028 0.73635 0.81855 + kpt# 14, nband= 11, wtk= 1.00000, kpt= 0.4167 0.1667 0.0000 (reduced coord) + -0.02475 0.00111 0.13660 0.30411 0.38584 0.47987 0.48440 0.55249 + 0.63792 0.71261 0.79680 + kpt# 15, nband= 11, wtk= 1.00000, kpt= 0.3889 0.2222 0.0000 (reduced coord) + -0.01555 0.00906 0.10470 0.31546 0.37789 0.48635 0.50335 0.57576 + 0.61353 0.69640 0.77382 + kpt# 16, nband= 11, wtk= 1.00000, kpt= 0.3611 0.2778 0.0000 (reduced coord) + -0.00372 0.01571 0.07596 0.33002 0.36504 0.49450 0.50914 0.59467 + 0.59883 0.70204 0.75169 + kpt# 17, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.0000 (reduced coord) + 0.01035 0.01035 0.06296 0.34750 0.34750 0.50371 0.50371 0.59408 + 0.59843 0.73097 0.73100 + kpt# 18, nband= 11, wtk= 1.00000, kpt= 0.3056 0.3056 0.0000 (reduced coord) + -0.01164 0.02736 0.07241 0.32699 0.36837 0.48960 0.51472 0.59752 + 0.59834 0.71382 0.72046 + kpt# 19, nband= 11, wtk= 1.00000, kpt= 0.2778 0.2778 0.0000 (reduced coord) + -0.03781 0.04686 0.09009 0.30488 0.39228 0.47020 0.52599 0.59117 + 0.61006 0.69832 0.71181 + kpt# 20, nband= 11, wtk= 1.00000, kpt= 0.2500 0.2500 0.0000 (reduced coord) + -0.06331 0.06906 0.11180 0.28284 0.41866 0.44862 0.53749 0.57954 + 0.62795 0.68670 0.71502 + kpt# 21, nband= 11, wtk= 1.00000, kpt= 0.2222 0.2222 0.0000 (reduced coord) + -0.08712 0.09338 0.13578 0.26146 0.42700 0.44750 0.54667 0.56457 + 0.65094 0.67881 0.72730 + kpt# 22, nband= 11, wtk= 1.00000, kpt= 0.1944 0.1944 0.0000 (reduced coord) + -0.10844 0.11965 0.16081 0.24054 0.40671 0.47827 0.54881 0.55279 + 0.67490 0.67833 0.74499 + kpt# 23, nband= 11, wtk= 1.00000, kpt= 0.1667 0.1667 0.0000 (reduced coord) + -0.12726 0.14814 0.18725 0.22260 0.38836 0.51065 0.53483 0.55488 + 0.67196 0.70978 0.76549 + kpt# 24, nband= 11, wtk= 1.00000, kpt= 0.1389 0.1389 0.0000 (reduced coord) + -0.14312 0.17822 0.20775 0.21408 0.37251 0.52351 0.54364 0.55342 + 0.66235 0.74511 0.78760 + kpt# 25, nband= 11, wtk= 1.00000, kpt= 0.1111 0.1111 0.0000 (reduced coord) + -0.15629 0.19448 0.20882 0.23969 0.35935 0.51480 0.54920 0.57516 + 0.64014 0.78375 0.80862 + kpt# 26, nband= 11, wtk= 1.00000, kpt= 0.0833 0.0833 0.0000 (reduced coord) + -0.16667 0.18446 0.23934 0.26253 0.34900 0.51055 0.54210 0.60453 + 0.61227 0.79283 0.81887 + kpt# 27, nband= 11, wtk= 1.00000, kpt= 0.0556 0.0556 0.0000 (reduced coord) + -0.17413 0.17706 0.26649 0.28115 0.34179 0.50872 0.52956 0.58928 + 0.62766 0.75986 0.84542 + kpt# 28, nband= 11, wtk= 1.00000, kpt= 0.0278 0.0278 0.0000 (reduced coord) + -0.17857 0.17291 0.28877 0.29293 0.33762 0.50904 0.51607 0.57726 + 0.64549 0.73720 0.86174 + kpt# 29, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.0000 (reduced coord) + -0.18002 0.17145 0.29801 0.29801 0.33630 0.50991 0.50991 0.57367 + 0.65094 0.72899 0.86971 + kpt# 30, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.0625 (reduced coord) + -0.17877 0.16054 0.29852 0.29852 0.35009 0.51038 0.51038 0.57386 + 0.65026 0.73021 0.85689 + kpt# 31, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.1250 (reduced coord) + -0.17511 0.13488 0.29956 0.29956 0.38407 0.51167 0.51167 0.57338 + 0.64626 0.73379 0.82919 + kpt# 32, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.1875 (reduced coord) + -0.16911 0.10587 0.30179 0.30179 0.42903 0.51402 0.51402 0.57363 + 0.64406 0.73964 0.79936 + kpt# 33, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.2500 (reduced coord) + -0.16122 0.07612 0.30594 0.30594 0.47919 0.51697 0.51697 0.57449 + 0.64495 0.74734 0.77207 + kpt# 34, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.3125 (reduced coord) + -0.15200 0.04870 0.30870 0.30870 0.52086 0.52086 0.53144 0.57535 + 0.64163 0.74934 0.75291 + kpt# 35, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.3750 (reduced coord) + -0.14279 0.02613 0.31111 0.31111 0.52322 0.52322 0.57617 0.58284 + 0.63887 0.73234 0.73235 + kpt# 36, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.4375 (reduced coord) + -0.13568 0.01050 0.31276 0.31276 0.52402 0.52402 0.57669 0.62526 + 0.63722 0.72183 0.72183 + kpt# 37, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.5000 (reduced coord) + -0.13284 0.00476 0.31323 0.31323 0.52455 0.52455 0.57397 0.63660 + 0.64305 0.71826 0.71826 + kpt# 38, nband= 11, wtk= 1.00000, kpt= 0.0500 0.0000 0.5000 (reduced coord) + -0.13142 0.00659 0.30299 0.30805 0.52426 0.53203 0.55995 0.64041 + 0.64432 0.70890 0.72029 + kpt# 39, nband= 11, wtk= 1.00000, kpt= 0.1000 0.0000 0.5000 (reduced coord) + -0.12716 0.01213 0.28115 0.29667 0.52259 0.52663 0.55281 0.64777 + 0.65307 0.69001 0.71330 + kpt# 40, nband= 11, wtk= 1.00000, kpt= 0.1500 0.0000 0.5000 (reduced coord) + -0.11983 0.02147 0.25094 0.28088 0.48557 0.51971 0.58421 0.65267 + 0.67012 0.67358 0.69715 + kpt# 41, nband= 11, wtk= 1.00000, kpt= 0.2000 0.0000 0.5000 (reduced coord) + -0.10961 0.03407 0.21611 0.26530 0.44133 0.51294 0.62223 0.65053 + 0.65184 0.68733 0.69973 + kpt# 42, nband= 11, wtk= 1.00000, kpt= 0.2500 0.0000 0.5000 (reduced coord) + -0.09663 0.05005 0.17919 0.25046 0.39682 0.50545 0.63600 0.63747 + 0.66535 0.69331 0.72631 + kpt# 43, nband= 11, wtk= 1.00000, kpt= 0.3000 0.0000 0.5000 (reduced coord) + -0.08074 0.06915 0.14265 0.23726 0.35342 0.49854 0.62210 0.62287 + 0.70612 0.71101 0.75506 + kpt# 44, nband= 11, wtk= 1.00000, kpt= 0.3500 0.0000 0.5000 (reduced coord) + -0.06206 0.09091 0.10740 0.22637 0.31196 0.49276 0.60845 0.61258 + 0.72188 0.75880 0.78366 + kpt# 45, nband= 11, wtk= 1.00000, kpt= 0.4000 0.0000 0.5000 (reduced coord) + -0.04070 0.07395 0.11450 0.21878 0.27447 0.48848 0.59866 0.60523 + 0.73833 0.80523 0.81078 + kpt# 46, nband= 11, wtk= 1.00000, kpt= 0.4500 0.0000 0.5000 (reduced coord) + -0.01734 0.04365 0.13705 0.21427 0.24383 0.48622 0.59313 0.60081 + 0.75268 0.83317 0.84422 + kpt# 47, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.5000 (reduced coord) + -0.00005 0.02333 0.14813 0.21258 0.22976 0.48527 0.59105 0.59934 + 0.75796 0.84349 0.85419 + kpt# 48, nband= 11, wtk= 1.00000, kpt= 0.4722 0.0556 0.5000 (reduced coord) + 0.00135 0.02496 0.14986 0.20486 0.23024 0.49571 0.54511 0.64775 + 0.75956 0.83537 0.83866 + kpt# 49, nband= 11, wtk= 1.00000, kpt= 0.4444 0.1111 0.5000 (reduced coord) + 0.00492 0.02857 0.15460 0.18444 0.23120 0.49927 0.52386 0.70002 + 0.76252 0.81091 0.82221 + kpt# 50, nband= 11, wtk= 1.00000, kpt= 0.4167 0.1667 0.5000 (reduced coord) + 0.01105 0.03441 0.15702 0.16257 0.23154 0.45937 0.56391 0.74717 + 0.76752 0.78647 0.79826 + kpt# 51, nband= 11, wtk= 1.00000, kpt= 0.3889 0.2222 0.5000 (reduced coord) + 0.01973 0.04199 0.12822 0.17379 0.22921 0.42790 0.61080 0.76445 + 0.77038 0.77430 0.77979 + kpt# 52, nband= 11, wtk= 1.00000, kpt= 0.3611 0.2778 0.5000 (reduced coord) + 0.03082 0.04863 0.10086 0.18811 0.22098 0.40804 0.66026 0.74038 + 0.74128 0.78184 0.79103 + kpt# 53, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.5000 (reduced coord) + 0.04440 0.04440 0.08879 0.20579 0.20579 0.40155 0.70218 0.72026 + 0.72026 0.78997 0.78997 + kpt# 54, nband= 11, wtk= 1.00000, kpt= 0.3056 0.3056 0.5000 (reduced coord) + 0.02331 0.06004 0.09700 0.18380 0.22626 0.40718 0.67767 0.69875 + 0.76345 0.77891 0.79539 + kpt# 55, nband= 11, wtk= 1.00000, kpt= 0.2778 0.2778 0.5000 (reduced coord) + -0.00149 0.07842 0.11377 0.15871 0.24948 0.42212 0.65015 0.68050 + 0.76377 0.79605 0.80619 + kpt# 56, nband= 11, wtk= 1.00000, kpt= 0.2500 0.2500 0.5000 (reduced coord) + -0.02560 0.09864 0.13280 0.13317 0.27597 0.44372 0.62424 0.66202 + 0.74639 0.79271 0.83440 + kpt# 57, nband= 11, wtk= 1.00000, kpt= 0.2222 0.2222 0.5000 (reduced coord) + -0.04749 0.10800 0.12081 0.15552 0.30555 0.47031 0.60072 0.64522 + 0.72883 0.78533 0.84979 + kpt# 58, nband= 11, wtk= 1.00000, kpt= 0.1944 0.1944 0.5000 (reduced coord) + -0.06732 0.08509 0.14567 0.17990 0.33866 0.50079 0.58041 0.63004 + 0.71181 0.77612 0.83332 + kpt# 59, nband= 11, wtk= 1.00000, kpt= 0.1667 0.1667 0.5000 (reduced coord) + -0.08469 0.06447 0.17227 0.20497 0.37395 0.53420 0.56290 0.61515 + 0.69573 0.76504 0.78737 + kpt# 60, nband= 11, wtk= 1.00000, kpt= 0.1389 0.1389 0.5000 (reduced coord) + -0.09938 0.04664 0.20036 0.23070 0.41176 0.54900 0.56977 0.60050 + 0.68158 0.74463 0.75430 + kpt# 61, nband= 11, wtk= 1.00000, kpt= 0.1111 0.1111 0.5000 (reduced coord) + -0.11142 0.03188 0.22999 0.25510 0.45209 0.53819 0.58395 0.60633 + 0.67028 0.70667 0.74480 + kpt# 62, nband= 11, wtk= 1.00000, kpt= 0.0833 0.0833 0.5000 (reduced coord) + -0.12089 0.02019 0.25855 0.27717 0.49235 0.53097 0.56616 0.63952 + 0.66459 0.67434 0.73615 + kpt# 63, nband= 11, wtk= 1.00000, kpt= 0.0556 0.0556 0.5000 (reduced coord) + -0.12750 0.01170 0.28452 0.29644 0.52641 0.52980 0.54796 0.64730 + 0.65223 0.68382 0.72802 + kpt# 64, nband= 11, wtk= 1.00000, kpt= 0.0278 0.0278 0.5000 (reduced coord) + -0.13154 0.00646 0.30375 0.30828 0.52452 0.53106 0.56093 0.64010 + 0.64422 0.70852 0.72154 + kpt# 65, nband= 11, wtk= 1.00000, kpt= 0.0000 0.0000 0.5000 (reduced coord) + -0.13284 0.00476 0.31323 0.31323 0.52455 0.52455 0.57397 0.63660 + 0.64305 0.71826 0.71826 + kpt# 66, nband= 11, wtk= 1.00000, kpt= 0.0500 0.0000 0.5000 (reduced coord) + -0.13142 0.00659 0.30299 0.30805 0.52426 0.53203 0.55995 0.64041 + 0.64432 0.70890 0.72029 + kpt# 67, nband= 11, wtk= 1.00000, kpt= 0.1000 0.0000 0.5000 (reduced coord) + -0.12716 0.01213 0.28115 0.29667 0.52259 0.52663 0.55281 0.64777 + 0.65307 0.69001 0.71330 + kpt# 68, nband= 11, wtk= 1.00000, kpt= 0.1500 0.0000 0.5000 (reduced coord) + -0.11983 0.02147 0.25094 0.28088 0.48557 0.51971 0.58421 0.65267 + 0.67012 0.67358 0.69715 + kpt# 69, nband= 11, wtk= 1.00000, kpt= 0.2000 0.0000 0.5000 (reduced coord) + -0.10961 0.03407 0.21611 0.26530 0.44133 0.51294 0.62223 0.65053 + 0.65184 0.68733 0.69973 + kpt# 70, nband= 11, wtk= 1.00000, kpt= 0.2500 0.0000 0.5000 (reduced coord) + -0.09663 0.05005 0.17919 0.25046 0.39682 0.50545 0.63600 0.63747 + 0.66535 0.69331 0.72631 + kpt# 71, nband= 11, wtk= 1.00000, kpt= 0.3000 0.0000 0.5000 (reduced coord) + -0.08074 0.06915 0.14265 0.23726 0.35342 0.49854 0.62210 0.62287 + 0.70612 0.71101 0.75506 + kpt# 72, nband= 11, wtk= 1.00000, kpt= 0.3500 0.0000 0.5000 (reduced coord) + -0.06206 0.09091 0.10740 0.22637 0.31196 0.49276 0.60845 0.61258 + 0.72188 0.75880 0.78366 + kpt# 73, nband= 11, wtk= 1.00000, kpt= 0.4000 0.0000 0.5000 (reduced coord) + -0.04070 0.07395 0.11450 0.21878 0.27447 0.48848 0.59866 0.60523 + 0.73833 0.80523 0.81078 + kpt# 74, nband= 11, wtk= 1.00000, kpt= 0.4500 0.0000 0.5000 (reduced coord) + -0.01734 0.04365 0.13705 0.21427 0.24383 0.48622 0.59313 0.60081 + 0.75268 0.83317 0.84422 + kpt# 75, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.5000 (reduced coord) + -0.00005 0.02333 0.14813 0.21258 0.22976 0.48527 0.59105 0.59934 + 0.75796 0.84349 0.85419 + kpt# 76, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.4375 (reduced coord) + -0.00188 0.02207 0.15278 0.21228 0.23412 0.48226 0.59561 0.60255 + 0.73855 0.81208 0.86186 + kpt# 77, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.3750 (reduced coord) + -0.00730 0.01723 0.16475 0.21104 0.24666 0.47475 0.60727 0.61206 + 0.69491 0.77066 0.85802 + kpt# 78, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.3125 (reduced coord) + -0.01437 0.01101 0.18378 0.20950 0.26616 0.46516 0.62051 0.62768 + 0.64663 0.72989 0.85512 + kpt# 79, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.2500 (reduced coord) + -0.02146 0.00434 0.20680 0.20756 0.29025 0.45536 0.59846 0.62270 + 0.64882 0.70129 0.85187 + kpt# 80, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.1875 (reduced coord) + -0.02769 -0.00160 0.20471 0.23402 0.31868 0.44633 0.55290 0.60150 + 0.67505 0.70017 0.84899 + kpt# 81, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.1250 (reduced coord) + -0.03247 -0.00633 0.20298 0.25988 0.34859 0.43764 0.51271 0.56880 + 0.70573 0.71351 0.86215 + kpt# 82, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.0625 (reduced coord) + -0.03554 -0.00947 0.20126 0.27999 0.37676 0.42764 0.48290 0.54094 + 0.72611 0.73973 0.82548 + kpt# 83, nband= 11, wtk= 1.00000, kpt= 0.5000 0.0000 0.0000 (reduced coord) + -0.03642 -0.01028 0.20136 0.28919 0.39314 0.41954 0.47153 0.52988 + 0.73141 0.76680 0.79574 + kpt# 84, nband= 11, wtk= 1.00000, kpt= 0.4722 0.0556 0.0000 (reduced coord) + -0.03523 -0.00915 0.19167 0.29020 0.39230 0.43001 0.47240 0.53180 + 0.70700 0.75768 0.82428 + kpt# 85, nband= 11, wtk= 1.00000, kpt= 0.4444 0.1111 0.0000 (reduced coord) + -0.03132 -0.00521 0.16755 0.29508 0.39012 0.45589 0.47519 0.53841 + 0.67028 0.73635 0.81855 + kpt# 86, nband= 11, wtk= 1.00000, kpt= 0.4167 0.1667 0.0000 (reduced coord) + -0.02475 0.00111 0.13660 0.30411 0.38584 0.47987 0.48440 0.55249 + 0.63792 0.71261 0.79680 + kpt# 87, nband= 11, wtk= 1.00000, kpt= 0.3889 0.2222 0.0000 (reduced coord) + -0.01555 0.00906 0.10470 0.31546 0.37789 0.48635 0.50335 0.57576 + 0.61353 0.69640 0.77382 + kpt# 88, nband= 11, wtk= 1.00000, kpt= 0.3611 0.2778 0.0000 (reduced coord) + -0.00372 0.01571 0.07596 0.33002 0.36504 0.49450 0.50914 0.59467 + 0.59883 0.70204 0.75169 + kpt# 89, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.0000 (reduced coord) + 0.01035 0.01035 0.06296 0.34750 0.34750 0.50371 0.50371 0.59408 + 0.59843 0.73097 0.73100 + kpt# 90, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.0625 (reduced coord) + 0.01135 0.01135 0.06442 0.33811 0.33811 0.51588 0.51588 0.56009 + 0.63043 0.73253 0.73253 + kpt# 91, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.1250 (reduced coord) + 0.01445 0.01445 0.06693 0.31619 0.31619 0.52423 0.54578 0.54578 + 0.65687 0.73537 0.73537 + kpt# 92, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.1875 (reduced coord) + 0.01876 0.01876 0.07022 0.28904 0.28904 0.49061 0.58344 0.58344 + 0.67384 0.73888 0.73888 + kpt# 93, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.2500 (reduced coord) + 0.02457 0.02457 0.07490 0.26311 0.26311 0.46093 0.62453 0.62453 + 0.68486 0.74491 0.74491 + kpt# 94, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.3125 (reduced coord) + 0.03118 0.03118 0.07987 0.24062 0.24062 0.43616 0.66481 0.66481 + 0.69237 0.75386 0.75386 + kpt# 95, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.3750 (reduced coord) + 0.03745 0.03745 0.08413 0.22148 0.22148 0.41733 0.69612 0.69612 + 0.69740 0.76525 0.76525 + kpt# 96, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.4375 (reduced coord) + 0.04239 0.04239 0.08758 0.20964 0.20964 0.40556 0.70093 0.71405 + 0.71405 0.78113 0.78113 + kpt# 97, nband= 11, wtk= 1.00000, kpt= 0.3333 0.3333 0.5000 (reduced coord) + 0.04440 0.04440 0.08879 0.20579 0.20579 0.40155 0.70218 0.72026 + 0.72026 0.78997 0.78997 + Total charge density [el/Bohr^3] +, Maximum= 1.3269E-01 at reduced coord. 0.4444 0.8889 0.5000 +,Next maximum= 1.3269E-01 at reduced coord. 0.4444 0.5556 0.5000 +, Minimum= 1.0465E-03 at reduced coord. 0.0000 0.0000 0.0000 +,Next minimum= 1.4272E-03 at reduced coord. 0.0556 0.0000 0.0000 +, Integrated= 8.0000E+00 + +== END DATASET(S) ============================================================== +================================================================================ + + -outvars: echo values of variables after computation -------- + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.43050000E+01 1.08110000E+01 + ecut 1.00000000E+01 Hartree +- fftalg 312 + fft_opt_lob 2 + iprcch 6 + irdden 1 + iscf -2 + istwfk 2 0 0 0 0 0 0 0 0 0 + 1 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 2 0 + 0 0 0 0 0 0 1 0 0 0 + 0 0 0 0 0 0 1 0 0 0 + outvar_i_n : Printing only first 50 k-points. + kpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 5.00000000E-02 0.00000000E+00 0.00000000E+00 + 1.00000000E-01 0.00000000E+00 0.00000000E+00 + 1.50000000E-01 0.00000000E+00 0.00000000E+00 + 2.00000000E-01 0.00000000E+00 0.00000000E+00 + 2.50000000E-01 0.00000000E+00 0.00000000E+00 + 3.00000000E-01 0.00000000E+00 0.00000000E+00 + 3.50000000E-01 0.00000000E+00 0.00000000E+00 + 4.00000000E-01 0.00000000E+00 0.00000000E+00 + 4.50000000E-01 0.00000000E+00 0.00000000E+00 + 5.00000000E-01 0.00000000E+00 0.00000000E+00 + 4.72222222E-01 5.55555555E-02 0.00000000E+00 + 4.44444444E-01 1.11111111E-01 0.00000000E+00 + 4.16666667E-01 1.66666667E-01 0.00000000E+00 + 3.88888889E-01 2.22222222E-01 0.00000000E+00 + 3.61111111E-01 2.77777778E-01 0.00000000E+00 + 3.33333333E-01 3.33333333E-01 0.00000000E+00 + 3.05555556E-01 3.05555556E-01 0.00000000E+00 + 2.77777778E-01 2.77777778E-01 0.00000000E+00 + 2.50000000E-01 2.50000000E-01 0.00000000E+00 + 2.22222222E-01 2.22222222E-01 0.00000000E+00 + 1.94444444E-01 1.94444444E-01 0.00000000E+00 + 1.66666667E-01 1.66666667E-01 0.00000000E+00 + 1.38888889E-01 1.38888889E-01 0.00000000E+00 + 1.11111111E-01 1.11111111E-01 0.00000000E+00 + 8.33333333E-02 8.33333333E-02 0.00000000E+00 + 5.55555555E-02 5.55555555E-02 0.00000000E+00 + 2.77777778E-02 2.77777778E-02 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 6.25000000E-02 + 0.00000000E+00 0.00000000E+00 1.25000000E-01 + 0.00000000E+00 0.00000000E+00 1.87500000E-01 + 0.00000000E+00 0.00000000E+00 2.50000000E-01 + 0.00000000E+00 0.00000000E+00 3.12500000E-01 + 0.00000000E+00 0.00000000E+00 3.75000000E-01 + 0.00000000E+00 0.00000000E+00 4.37500000E-01 + 0.00000000E+00 0.00000000E+00 5.00000000E-01 + 5.00000000E-02 0.00000000E+00 5.00000000E-01 + 1.00000000E-01 0.00000000E+00 5.00000000E-01 + 1.50000000E-01 0.00000000E+00 5.00000000E-01 + 2.00000000E-01 0.00000000E+00 5.00000000E-01 + 2.50000000E-01 0.00000000E+00 5.00000000E-01 + 3.00000000E-01 0.00000000E+00 5.00000000E-01 + 3.50000000E-01 0.00000000E+00 5.00000000E-01 + 4.00000000E-01 0.00000000E+00 5.00000000E-01 + 4.50000000E-01 0.00000000E+00 5.00000000E-01 + 5.00000000E-01 0.00000000E+00 5.00000000E-01 + 4.72222222E-01 5.55555555E-02 5.00000000E-01 + 4.44444444E-01 1.11111111E-01 5.00000000E-01 + 4.16666667E-01 1.66666667E-01 5.00000000E-01 + outvar_i_n : Printing only first 50 k-points. + kptopt -11 +P mkmem 49 + natom 3 + nband 11 + nbdbuf 2 + ngfft 18 18 20 + nkpt 97 +- npkpt 2 + nsym 24 + ntypat 2 + occopt 4 + ortalg -2 + paral_kgb 1 + rprim 5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + -5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 6.6575051698E+00 + shiftk 5.00000000E-01 5.00000000E-01 5.00000000E-01 + spgroup 191 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 -1 -1 0 0 1 0 0 0 -1 + timopt -1 + tolwfr 1.00000000E-12 + tsmear 3.00000000E-02 Hartree + typat 1 2 2 + wfoptalg 14 + outvars : Printing only first 50 k-points. + xangst 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -8.9085146585E-01 1.5430000008E+00 1.7615000010E+00 + 8.9085146585E-01 1.5430000008E+00 1.7615000010E+00 + xcart 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -1.6834652955E+00 2.9158474246E+00 3.3287525849E+00 + 1.6834652955E+00 2.9158474246E+00 3.3287525849E+00 + xred 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 3.3333333333E-01 6.6666666667E-01 5.0000000000E-01 + 6.6666666667E-01 3.3333333333E-01 5.0000000000E-01 + znucl 12.00000 5.00000 + +================================================================================ + + Test the timer : + a combined call timab(*,1,tsec) + timab(*,2,tsec) is +- CPU time = 1.9825E-06 sec, Wall time = 1.9849E-06 sec + +- Total cpu time (s,m,h): 19.5 0.33 0.005 +- Total wall clock time (s,m,h): 29.9 0.50 0.008 +- +- For major independent code sections, cpu and wall times (sec), +- as well as % of the time and number of calls for node 0- +- +- cpu_time = 9.7, wall_time = 14.9 +- +- routine cpu % wall % number of calls Gflops +- (-1=no count) +- fourwf%(pot) 5.006 25.7 7.954 26.6 12157 -1.00 +- nonlop(apply) 0.579 3.0 0.933 3.1 12157 -1.00 +- pspini 0.395 2.0 0.495 1.7 1 -1.00 +- invars2 0.225 1.2 0.225 0.8 1 -1.00 +- timing timab 0.114 0.6 0.114 0.4 11 -1.00 +- getghc-other 0.112 0.6 0.160 0.5 -1 -1.00 +- vtowfk(ssdiag) 0.066 0.3 0.097 0.3 -1 -1.00 +- abinit(2) 0.050 0.3 0.050 0.2 1 -1.00 +- newkpt(excl. rwwf ) 0.019 0.1 0.042 0.1 -1 -1.00 +- ewald 0.010 0.1 0.010 0.0 1 -1.00 +- fourdp 0.004 0.0 0.004 0.0 3 -1.00 +- mkcore 0.003 0.0 0.008 0.0 1 -1.00 +- prep_bandfft_tabs 0.002 0.0 0.002 0.0 49 -1.00 +- vtowfk(contrib) 0.002 0.0 0.002 0.0 49 -1.00 +- kpgsph 0.001 0.0 0.001 0.0 146 -1.00 +- xc:pot/=fourdp 0.001 0.0 0.003 0.0 1 -1.00 +- setsym 0.000 0.0 0.001 0.0 1 -1.00 +- status 0.000 0.0 0.000 0.0 23 -1.00 +- vtowfk (1) 0.000 0.0 0.000 0.0 49 -1.00 +- vtorho(MPI) 0.000 0.0 0.000 0.0 1 -1.00 +- inwffil(excl. calls) 0.000 0.0 0.000 0.0 1 -1.00 +- vtowfk3(contrib) 0.000 0.0 0.000 0.0 -1 -1.00 +- cgwf3-O(npw) 0.000 0.0 0.000 0.0 -1 -1.00 +- others (89) 0.000 0.0 0.000 0.0 -1 -1.00 +- +- +- subtotal 6.591 33.8 10.103 33.8 + +- For major independent code sections, cpu and wall times (sec), +- as well as % of the total time and number of calls + +- +- cpu_time = 19.5, wall_time = 29.9 +- +- routine cpu % wall % number of calls Gflops +- (-1=no count) +- fourwf%(pot) 9.813 50.3 15.861 53.1 23941 -1.00 +- nonlop(apply) 1.148 5.9 1.911 6.4 23941 -1.00 +- pspini 0.792 4.1 1.014 3.4 2 -1.00 +- invars2 0.440 2.3 0.440 1.5 2 -1.00 +- vtorho(MPI) 0.316 1.6 0.317 1.1 2 -1.00 +- timing timab 0.228 1.2 0.231 0.8 22 -1.00 +- getghc-other 0.220 1.1 0.323 1.1 -2 -1.00 +- vtowfk(ssdiag) 0.131 0.7 0.207 0.7 -2 -1.00 +- abinit(2) 0.091 0.5 0.092 0.3 2 -1.00 +- newkpt(excl. rwwf ) 0.034 0.2 0.060 0.2 -2 -1.00 +- ewald 0.020 0.1 0.027 0.1 2 -1.00 +- fourdp 0.008 0.0 0.008 0.0 6 -1.00 +- mkcore 0.006 0.0 0.011 0.0 2 -1.00 +- prep_bandfft_tabs 0.005 0.0 0.008 0.0 97 -1.00 +- vtowfk(contrib) 0.004 0.0 0.006 0.0 97 -1.00 +- kpgsph 0.003 0.0 0.003 0.0 291 -1.00 +- xc:pot/=fourdp 0.002 0.0 0.003 0.0 2 -1.00 +- setsym 0.001 0.0 0.001 0.0 2 -1.00 +- status 0.001 0.0 0.001 0.0 46 -1.00 +- vtowfk (1) 0.001 0.0 0.001 0.0 97 -1.00 +- inwffil(excl. calls) 0.000 0.0 0.000 0.0 2 -1.00 +- vtowfk3(contrib) 0.000 0.0 0.000 0.0 -2 -1.00 +- cgwf3-O(npw) 0.000 0.0 0.000 0.0 -2 -1.00 +- others (89) 0.000 0.0 0.000 0.0 -1 -1.00 +- + +- subtotal 13.261 68.0 20.525 68.8 + + Partitioning of abinit +- abinit 19.515 100.0 29.853 100.0 2 + +- abinit(1) 0.043 0.2 0.047 0.2 2 +- abinit(2) 0.091 0.5 0.092 0.3 2 +- indefo+macroin+invars2m 0.442 2.3 0.442 1.5 2 +- abinit(4) 0.045 0.2 0.047 0.2 2 +- abinit(5) 0.037 0.2 0.037 0.1 2 +- driver 18.621 95.4 28.942 96.9 2 +- abinit(6) 0.008 0.0 0.015 0.1 2 +- timing timab 0.228 1.2 0.231 0.8 22 + +- subtotal 19.515 100.0 29.853 100.0 + + Partitioning of driver +- driver 18.621 95.4 28.942 96.9 2 + +- gstateimg 18.586 95.2 28.907 96.8 2 +- driver(aft. select case) 0.034 0.2 0.034 0.1 2 + +- subtotal 18.621 95.4 28.942 96.9 + + Partitioning of gstateimg+gstate +- gstateimg 18.586 95.2 28.907 96.8 2 + +- gstate->kpgsph 0.042 0.2 0.068 0.2 4 +- gstate(pspini) 0.792 4.1 1.014 3.4 2 +- gstate (2) 0.009 0.0 0.012 0.0 2 +- gstate(...scfcv) 17.212 88.2 27.227 91.2 2 +- gstate (3) 0.532 2.7 0.585 2.0 2 + +- subtotal 18.586 95.2 28.907 96.8 + + Partitioning of scfcv +- scfcv 17.211 88.2 27.227 91.2 2 + +- scfcv(iniloop, setvtr ) 0.033 0.2 0.047 0.2 2 +- scfcv(vtorho(f)) 17.172 88.0 27.132 90.9 2 +- scfcv(outscfcv) 0.006 0.0 0.047 0.2 2 + +- subtotal 17.211 88.2 27.227 91.2 + + Partitioning of vtorho +- vtorho 17.172 88.0 27.132 90.9 2 + +- vtorho(bef. vtowfk) 0.017 0.1 0.024 0.1 97 +- vtowfk 16.818 86.2 26.769 89.7 97 +- vtorho(MPI) 0.316 1.6 0.317 1.1 2 +- vtorho(mkrho 2) 0.019 0.1 0.019 0.1 2 + +- subtotal 17.172 88.0 27.132 90.9 + + Partitioning of vtowfk +- vtowfk 16.818 86.2 26.769 89.7 97 + +- lobpcgwf 16.683 85.5 26.555 89.0 527 +- vtowfk(subdiago) 0.124 0.6 0.199 0.7 527 +- vtowfk(2) 0.007 0.0 0.007 0.0 -2 + +- subtotal 16.818 86.2 26.769 89.7 + + Partitioning of getghc +- getghc 11.181 57.3 18.096 60.6 24385 + +- fourwf%getghc 9.813 50.3 15.861 53.1 23941 +- nonlop%getghc 1.148 5.9 1.911 6.4 23941 +- getghc-other 0.220 1.1 0.323 1.1 -2 + +- subtotal 11.181 57.3 18.096 60.6 + + Partitioning of fourwf (upwards partitioning) +- fourwf 9.813 50.3 15.861 53.1 23941 + +- fourwf%getghc 9.813 50.3 15.861 53.1 23941 + +- subtotal 9.813 50.3 15.861 53.1 + + Partitioning of prep_getghc +- prep_getghc 11.933 61.1 19.151 64.2 23941 + +- prep_getghc(before if) 0.305 1.6 0.452 1.5 23941 +- prep_getghc(bef. getghc) 0.009 0.0 0.018 0.1 444 +- prep_getghc(alltoall) 0.284 1.5 0.406 1.4 47882 +- prep_getghc(getghc - 1 ) 11.062 56.7 17.793 59.6 23497 +- prep_getghc(getghc - 3 ) 0.183 0.9 0.355 1.2 444 +- prep_getghc(getghc - 4 ) 0.019 0.1 0.035 0.1 444 +- (other) 0.062 0.3 0.083 0.3 -1 + +- subtotal 11.933 61.1 19.151 64.2 + + Partitioning of inwffil +- inwffil 0.036 0.2 0.061 0.2 2 + +- inwffil(call newkpt) 0.036 0.2 0.061 0.2 2 + +- subtotal 0.036 0.2 0.061 0.2 + + Partitioning of newkpt +- newkpt 0.035 0.2 0.061 0.2 2 + +- newkpt(call wfconv) 0.018 0.1 0.020 0.1 97 +- newkpt(after loop ) 0.015 0.1 0.039 0.1 2 + +- subtotal 0.034 0.2 0.060 0.2 + + Partitioning of fourdp (upwards partitioning) +- fourdp 0.008 0.0 0.008 0.0 6 + +- fourdp%(other) 0.008 0.0 0.008 0.0 6 + +- subtotal 0.008 0.0 0.008 0.0 + + Partitioning of afterscfloop +- afterscfloop 0.000 0.0 0.000 0.0 2 + + +- subtotal 0.000 0.0 0.000 0.0 + + Partitioning of outscfcv +- outscfcv 0.006 0.0 0.047 0.2 2 + +- outscfcv([PAW]prtden) 0.001 0.0 0.041 0.1 2 + +- subtotal 0.001 0.0 0.041 0.1 +- +-Synchronisation (=leave_test) and MPI calls +- communic.MPI 0.331 1.7 0.356 1.2 6 +- +- +- subtotal 0.000 0.0 0.000 0.0 + + Additional information +- timana(1) 0.000 0.0 0.000 0.0 2 +- total timab 2.911 14.9 2.946 9.9 1470420 +- fourwf 9.813 50.3 15.861 53.1 23941 +- status 0.001 0.0 0.001 0.0 46 +- nonlop(total) 1.148 5.9 1.911 6.4 23941 + + + Detailed analysis of some time consuming routines + tcpu ncalls tcpu/ncalls ndata tcpu/ncalls/ndata + (sec) (msec) (microsec) +- fourwf%(pot) 9.813 23941 0.410 12960 0.032 +- fourwf%(den) 0.000 0 +- fourdp 0.008 6 1.266 6480 0.195 +- nonlop(apply) 1.148 23941 0.048 888 0.054 +- nonlop(forces) 0.000 0 +- nonlop(forstr) 0.000 0 +- projbd 0.000 0 +- xc:pot/=fourdp 0.002 2 0.769 6480 0.119 + +================================================================================ + + Suggested references for the acknowledgment of ABINIT usage. + + The users of ABINIT have little formal obligations with respect to the ABINIT group + (those specified in the GNU General Public License, http://www.gnu.org/copyleft/gpl.txt). + However, it is common practice in the scientific literature, + to acknowledge the efforts of people that have made the research possible. + In this spirit, please find below suggested citations of work written by ABINIT developers, + corresponding to implementations inside of ABINIT that you have used in the present run. + Note also that it will be of great value to readers of publications presenting these results, + to read papers enabling them to understand the theoretical formalism and details + of the ABINIT implementation. + For information on why they are suggested, see also http://www.abinit.org/about/?text=acknowledgments. + + [1] Large scale ab initio calculations based on three levels of parallelization + F. Bottin, S. Leroux, A. Knyazev, G. Zerah, Comput. Mat. Science 42, 329, (2008). + Comment : in case paral_kgb is non-zero. Strong suggestion to cite this paper in your publications. + This paper is also available at http://www.arxiv.org/abs/0707.3405 + + [2] ABINIT : First-principles approach of materials and nanosystem properties. + X. Gonze, B. Amadon, P.-M. Anglade, J.-M. Beuken, F. Bottin, P. Boulanger, F. Bruneval, + D. Caliste, R. Caracas, M. Cote, T. Deutsch, L. Genovese, Ph. Ghosez, M. Giantomassi + S. Goedecker, D.R. Hamann, P. Hermet, F. Jollet, G. Jomard, S. Leroux, M. Mancini, S. Mazevet, + M.J.T. Oliveira, G. Onida, Y. Pouillon, T. Rangel, G.-M. Rignanese, D. Sangalli, R. Shaltaf, + M. Torrent, M.J. Verstraete, G. Zerah, J.W. Zwanziger + Computer Phys. Comm. 180, 2582-2615 (2009). + Comment : the third generic paper describing the ABINIT project. + Note that a version of this paper, that is not formatted for Computer Phys. Comm. + is available at http://www.abinit.org/about/ABINIT_CPC_v10.pdf . + The licence allows the authors to put it on the Web. + + [3] A brief introduction to the ABINIT software package. + X. Gonze, G.-M. Rignanese, M. Verstraete, J.-M. Beuken, Y. Pouillon, R. Caracas, F. Jollet, + M. Torrent, G. Zerah, M. Mikami, Ph. Ghosez, M. Veithen, J.-Y. Raty, V. Olevano, F. Bruneval, + L. Reining, R. Godby, G. Onida, D.R. Hamann, and D.C. Allan. + Z. Kristallogr. 220, 558-562 (2005). + Comment : the second generic paper describing the ABINIT project. Note that this paper + should be cited especially if you are using the GW part of ABINIT, as several authors + of this part are not in the list of authors of the first or third paper. + The .pdf of the latter paper is available at http://www.abinit.org/about/zfk_0505-06_558-562.pdf. + Note that it should not redistributed (Copyright by Oldenburg Wissenshaftverlag, + the licence allows the authors to put it on the Web). + + + And optionally : + + [4] First-principles computation of material properties : the ABINIT software project. + X. Gonze, J.-M. Beuken, R. Caracas, F. Detraux, M. Fuchs, G.-M. Rignanese, L. Sindic, + M. Verstraete, G. Zerah, F. Jollet, M. Torrent, A. Roy, M. Mikami, Ph. Ghosez, J.-Y. Raty, D.C. Allan. + Computational Materials Science 25, 478-492 (2002). http://dx.doi.org/10.1016/S0927-0256(02)00325-7 + Comment : the original paper describing the ABINIT project. + + [5] Fast radix 2, 3, 4 and 5 kernels for Fast Fourier Transformations + on computers with overlapping multiply-add instructions. + S. Goedecker, SIAM J. on Scientific Computing 18, 1605 (1997). +- +- Proc. 0 individual time (sec): cpu= 9.7 wall= 14.9 + +================================================================================ + + Calculation completed. +.Delivered 0 WARNINGs and 0 COMMENTs to log file. ++Overall time at end (sec) : cpu= 19.5 wall= 29.9 diff --git a/abipy/data/refs/text_files/mgb2_nscf.log b/abipy/data/refs/text_files/mgb2_nscf.log new file mode 100644 index 000000000..c4b0cb40d --- /dev/null +++ b/abipy/data/refs/text_files/mgb2_nscf.log @@ -0,0 +1,845 @@ + ABINIT + + Give name for formatted input file: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/run.abi + Give name for formatted output file: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/run.abo + Give root name for generic input files: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/indata/in + Give root name for generic output files: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out + Give root name for generic temporary files: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/tmpdata/tmp + +.Version 7.11.5 of ABINIT +.(MPI version, prepared for a x86_64_darwin10.8.0_gnu4.7 computer) + +.Copyright (C) 1998-2015 ABINIT group . + ABINIT comes with ABSOLUTELY NO WARRANTY. + It is free software, and you are welcome to redistribute it + under certain conditions (GNU General Public License, + see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). + + ABINIT is a project of the Universite Catholique de Louvain, + Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt . + Please read ~abinit/doc/users/acknowledgments.html for suggested + acknowledgments of the ABINIT effort. + For more information, see http://www.abinit.org . + +.Starting date : Fri 13 Mar 2015. +- ( at 20h08 ) + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + === Build Information === + Version : 7.11.5 + Build target : x86_64_darwin10.8.0_gnu4.7 + Build date : 20150309 + + === Compiler Suite === + C compiler : gnu4.7 + C++ compiler : gnu4.7 + Fortran compiler : gnu4.7 + CFLAGS : -g -O2 -mtune=native -march=native + CXXFLAGS : -g -O2 -mtune=native -march=native + FCFLAGS : -g -ffree-line-length-none + FC_LDFLAGS : + + === Optimizations === + Debug level : basic + Optimization level : standard + Architecture : unknown_unknown + + === Multicore === + Parallel build : yes + Parallel I/O : yes + openMP support : no + GPU support : no + + === Connectors / Fallbacks === + Connectors on : yes + Fallbacks on : yes + DFT flavor : libxc-fallback + FFT flavor : fftw3 + LINALG flavor : netlib-fallback + MATH flavor : none + TIMER flavor : abinit + TRIO flavor : netcdf-fallback+etsf_io-fallback + + === Experimental features === + Bindings : @enable_bindings@ + Exports : no + GW double-precision : yes + + === Bazaar branch information === + Branch ID : gmatteo@cenaero-20150309121815-5lbj8ihq15ffcsbb + Revision : 939 + Committed : 0 + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Default optimizations: + -O2 -mtune=native -march=native + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + CPP options activated during the build: + + CC_GNU CXX_GNU HAVE_BZR_BRANCH + + HAVE_CLIB HAVE_DFT_LIBXC HAVE_FC_ALLOCATABLE_DT... + + HAVE_FC_ASYNC HAVE_FC_COMMAND_ARGUMENT HAVE_FC_COMMAND_LINE + + HAVE_FC_CONTIGUOUS HAVE_FC_CPUTIME HAVE_FC_EXIT + + HAVE_FC_FLUSH HAVE_FC_GAMMA HAVE_FC_GETENV + + HAVE_FC_INT_QUAD HAVE_FC_IOMSG HAVE_FC_ISO_C_BINDING + + HAVE_FC_LONG_LINES HAVE_FC_MOVE_ALLOC HAVE_FC_PRIVATE + + HAVE_FC_PROTECTED HAVE_FC_STREAM_IO HAVE_FC_SYSTEM + + HAVE_FFT HAVE_FFT_FFTW3 HAVE_FFT_MPI + + HAVE_FFT_SERIAL HAVE_GW_DPC HAVE_LIBPAW_ABINIT + + HAVE_LINALG_ZDOTC_B*G HAVE_LINALG_ZDOTU_B*G HAVE_MPI + + HAVE_MPI2 HAVE_MPI_IALLREDUCE HAVE_MPI_IALLTOALL + + HAVE_MPI_IALLTOALLV HAVE_MPI_IO HAVE_MPI_TYPE_CREATE_S... + + HAVE_NUMPY HAVE_TIMER HAVE_TIMER_ABINIT + + HAVE_TIMER_MPI HAVE_TIMER_SERIAL HAVE_TRIO_ETSF_IO + + HAVE_TRIO_NETCDF USE_MACROAVE + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +- input file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/run.abi +- output file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/run.abo +- root for input files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/indata/in +- root for output files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out + +-instrng : 73 lines of input have been read from file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/run.abi + + + iofn2 : Please give name of formatted atomic psp file + iofn2 : for atom type 1 , psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc + + iofn2 : Please give name of formatted atomic psp file + iofn2 : for atom type 2 , psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc + read the values zionpsp= 2.0 , pspcod= 1 , lmax= 2 +nproj = 1 1 0 0 +nprojso = 0 0 0 + read the values zionpsp= 3.0 , pspcod= 1 , lmax= 1 +nproj = 1 0 0 0 +nprojso = 0 0 0 + + inpspheads: deduce mpsang = 3, n1xccc =2501. + + invars1m : enter jdtset=0 + invars1 : treat image number 1 + + symlatt : the Bravais lattice is hP (primitive hexagonal) + xred is defined in input file + ingeo : takes atomic coordinates from input array xred + + symlatt : the Bravais lattice is hP (primitive hexagonal) + + symlatt : the Bravais lattice is hP (primitive hexagonal) + symspgr : spgroup= 191 P6/m m m (=D6h^1) + Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1): + R(1)= 5.0503959 2.9158474 0.0000000 G(1)= 0.0990021 0.1714767 0.0000000 + R(2)= -5.0503959 2.9158474 0.0000000 G(2)= -0.0990021 0.1714767 0.0000000 + R(3)= 0.0000000 0.0000000 6.6575052 G(3)= 0.0000000 0.0000000 0.1502064 + Unit cell volume ucvol= 1.9607929E+02 bohr^3 + Unit cell volume ucvol= 1.9607929E+02 bohr^3 + Angles (23,13,12)= 9.00000000E+01 9.00000000E+01 1.20000000E+02 degrees + Angles (23,13,12)= 9.00000000E+01 9.00000000E+01 1.20000000E+02 degrees + 9.9002139878206136E-002 5.7158912102896989E-002 0.11431782420704921 7.5103208671638277E-002 9.9002139878206136E-002 5.7158912102896989E-002 0.11431782420704921 9.9002139878206136E-002 7.5103208671638277E-002 5.7158912102896989E-002 7.5103208671638277E-002 + + mknormpath : total number of points on the path : 97 + + Number of divisions for each segment of the normalized path : + 0.00000 0.00000 0.00000 ==> 0.50000 0.00000 0.00000 ( ndiv : 10 ) + 0.50000 0.00000 0.00000 ==> 0.33333 0.33333 0.00000 ( ndiv : 6 ) + 0.33333 0.33333 0.00000 ==> 0.00000 0.00000 0.00000 ( ndiv : 12 ) + 0.00000 0.00000 0.00000 ==> 0.00000 0.00000 0.50000 ( ndiv : 8 ) + 0.00000 0.00000 0.50000 ==> 0.50000 0.00000 0.50000 ( ndiv : 10 ) + 0.50000 0.00000 0.50000 ==> 0.33333 0.33333 0.50000 ( ndiv : 6 ) + 0.33333 0.33333 0.50000 ==> 0.00000 0.00000 0.50000 ( ndiv : 12 ) + 0.00000 0.00000 0.50000 ==> 0.50000 0.00000 0.50000 ( ndiv : 10 ) + 0.50000 0.00000 0.50000 ==> 0.50000 0.00000 0.00000 ( ndiv : 8 ) + 0.50000 0.00000 0.00000 ==> 0.33333 0.33333 0.00000 ( ndiv : 6 ) + 0.33333 0.33333 0.00000 ==> 0.33333 0.33333 0.50000 ( ndiv : 8 ) + + + Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1): + R(1)= 5.0503959 2.9158474 0.0000000 G(1)= 0.0990021 0.1714767 0.0000000 + R(2)= -5.0503959 2.9158474 0.0000000 G(2)= -0.0990021 0.1714767 0.0000000 + R(3)= 0.0000000 0.0000000 6.6575052 G(3)= 0.0000000 0.0000000 0.1502064 + Unit cell volume ucvol= 1.9607929E+02 bohr^3 + Unit cell volume ucvol= 1.9607929E+02 bohr^3 + Angles (23,13,12)= 9.00000000E+01 9.00000000E+01 1.20000000E+02 degrees + Angles (23,13,12)= 9.00000000E+01 9.00000000E+01 1.20000000E+02 degrees + 9.9002139878206136E-002 5.7158912102896989E-002 0.11431782420704921 7.5103208671638277E-002 9.9002139878206136E-002 5.7158912102896989E-002 0.11431782420704921 9.9002139878206136E-002 7.5103208671638277E-002 5.7158912102896989E-002 7.5103208671638277E-002 + + mknormpath : total number of points on the path : 97 + + Number of divisions for each segment of the normalized path : + 0.00000 0.00000 0.00000 ==> 0.50000 0.00000 0.00000 ( ndiv : 10 ) + 0.50000 0.00000 0.00000 ==> 0.33333 0.33333 0.00000 ( ndiv : 6 ) + 0.33333 0.33333 0.00000 ==> 0.00000 0.00000 0.00000 ( ndiv : 12 ) + 0.00000 0.00000 0.00000 ==> 0.00000 0.00000 0.50000 ( ndiv : 8 ) + 0.00000 0.00000 0.50000 ==> 0.50000 0.00000 0.50000 ( ndiv : 10 ) + 0.50000 0.00000 0.50000 ==> 0.33333 0.33333 0.50000 ( ndiv : 6 ) + 0.33333 0.33333 0.50000 ==> 0.00000 0.00000 0.50000 ( ndiv : 12 ) + 0.00000 0.00000 0.50000 ==> 0.50000 0.00000 0.50000 ( ndiv : 10 ) + 0.50000 0.00000 0.50000 ==> 0.50000 0.00000 0.00000 ( ndiv : 8 ) + 0.50000 0.00000 0.00000 ==> 0.33333 0.33333 0.00000 ( ndiv : 6 ) + 0.33333 0.33333 0.00000 ==> 0.33333 0.33333 0.50000 ( ndiv : 8 ) + + + dtset%nelect= 8.0000000000000000 + chkneu : initialized the occupation numbers for occopt= 4 + spin-unpolarized case : + 2.00 2.00 2.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 +npfft, npband, npspinor and npkpt: 1 1 1 2 + +--- !WARNING +src_file: distrb2.F90 +src_line: 113 +message: | + nkpt*nsppol (97) is not a multiple of nproc_kpt (2) + The k-point parallelisation is not efficient. +... + +mpi_setup: mkmem undefined in the input file.Use default mkmem = nkpt + mpi_setup: With nkpt_me=49 and mkmem = 97, ground state wf handled in core. + Resetting mkmem to nkpt_me to save memory space. +mpi_setup: mkqmem undefined in the input file.Use default mkqmem = nkpt + mpi_setup: With nkpt_me=49 and mkqmem = 97, ground state wf handled in core. + Resetting mkqmem to nkpt_me to save memory space. +mpi_setup: mk1mem undefined in the input file.Use default mk1mem = nkpt + mpi_setup: With nkpt_me=49 and mk1mem = 97, ground state wf handled in core. + Resetting mk1mem to nkpt_me to save memory space. + +--- !WARNING +src_file: mpi_setup.F90 +src_line: 692 +message: | + The number of KPT processors, npkpt, should be a multiple of nkpt*nsppol. + However, npkpt=2 and nkpt*nsppol=97 +... + + For input ecut= 1.000000E+01 best grid ngfft= 18 18 20 + max ecut= 1.113388E+01 + + ==== FFT mesh ==== + FFT mesh divisions ........................ 18 18 20 + Augmented FFT divisions ................... 19 19 20 + FFT algorithm ............................. 312 + FFT cache size ............................ 16 + getmpw: optimal value of mpw= 308 + + Symmetries : space group P6/m m m (#191); Bravais hP (primitive hexag.) + + getdim_nloc : deduce lmnmax = 4, lnmax = 2, + lmnmaxso= 4, lnmaxso= 2. +memory : analysis of memory needs +================================================================================ + Values of the parameters that define the memory need of the present run + intxc = 0 ionmov = 0 iscf = -2 xclevel = 1 + lmnmax = 2 lnmax = 2 mband = 11 mffmem = 1 +P mgfft = 20 mkmem = 49 mpssoang= 3 mpw = 308 + mqgrid = 3001 natom = 3 nfft = 6480 nkpt = 97 + nloalg = 4 nspden = 1 nspinor = 1 nsppol = 1 + nsym = 24 n1xccc = 2501 ntypat = 2 occopt = 4 +================================================================================ +P This job should need less than 5.739 Mbytes of memory. + Rough estimation (10% accuracy) of disk space for files : +_ WF disk file : 5.017 Mbytes ; DEN or POT disk file : 0.051 Mbytes. +================================================================================ + + Biggest array : cg(disk), with 2.5351 MBytes. + memana : allocated an array of 2.535 Mbytes, for testing purposes. + memana : allocated 5.739 Mbytes, for testing purposes. + The job will continue. +-------------------------------------------------------------------------------- +------------- Echo of variables that govern the present computation ------------ +-------------------------------------------------------------------------------- +- +- outvars: echo of selected default values +- accesswff0 = 0 , fftalg0 =312 , wfoptalg0 = 0 +- +- outvars: echo of global parameters not present in the input file +- max_nthreads = 0 +- + -outvars: echo values of preprocessed input variables -------- + + These variables are accessible in NetCDF format (/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out_OUT.nc) + + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.43050000E+01 1.08110000E+01 + ecut 1.00000000E+01 Hartree +- fftalg 312 + fft_opt_lob 2 + iprcch 6 + irdden 1 + iscf -2 + istwfk 2 0 0 0 0 0 0 0 0 0 + 1 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 2 0 + 0 0 0 0 0 0 1 0 0 0 + 0 0 0 0 0 0 1 0 0 0 + outvar_i_n : Printing only first 50 k-points. + kpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 5.00000000E-02 0.00000000E+00 0.00000000E+00 + 1.00000000E-01 0.00000000E+00 0.00000000E+00 + 1.50000000E-01 0.00000000E+00 0.00000000E+00 + 2.00000000E-01 0.00000000E+00 0.00000000E+00 + 2.50000000E-01 0.00000000E+00 0.00000000E+00 + 3.00000000E-01 0.00000000E+00 0.00000000E+00 + 3.50000000E-01 0.00000000E+00 0.00000000E+00 + 4.00000000E-01 0.00000000E+00 0.00000000E+00 + 4.50000000E-01 0.00000000E+00 0.00000000E+00 + 5.00000000E-01 0.00000000E+00 0.00000000E+00 + 4.72222222E-01 5.55555555E-02 0.00000000E+00 + 4.44444444E-01 1.11111111E-01 0.00000000E+00 + 4.16666667E-01 1.66666667E-01 0.00000000E+00 + 3.88888889E-01 2.22222222E-01 0.00000000E+00 + 3.61111111E-01 2.77777778E-01 0.00000000E+00 + 3.33333333E-01 3.33333333E-01 0.00000000E+00 + 3.05555556E-01 3.05555556E-01 0.00000000E+00 + 2.77777778E-01 2.77777778E-01 0.00000000E+00 + 2.50000000E-01 2.50000000E-01 0.00000000E+00 + 2.22222222E-01 2.22222222E-01 0.00000000E+00 + 1.94444444E-01 1.94444444E-01 0.00000000E+00 + 1.66666667E-01 1.66666667E-01 0.00000000E+00 + 1.38888889E-01 1.38888889E-01 0.00000000E+00 + 1.11111111E-01 1.11111111E-01 0.00000000E+00 + 8.33333333E-02 8.33333333E-02 0.00000000E+00 + 5.55555555E-02 5.55555555E-02 0.00000000E+00 + 2.77777778E-02 2.77777778E-02 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 6.25000000E-02 + 0.00000000E+00 0.00000000E+00 1.25000000E-01 + 0.00000000E+00 0.00000000E+00 1.87500000E-01 + 0.00000000E+00 0.00000000E+00 2.50000000E-01 + 0.00000000E+00 0.00000000E+00 3.12500000E-01 + 0.00000000E+00 0.00000000E+00 3.75000000E-01 + 0.00000000E+00 0.00000000E+00 4.37500000E-01 + 0.00000000E+00 0.00000000E+00 5.00000000E-01 + 5.00000000E-02 0.00000000E+00 5.00000000E-01 + 1.00000000E-01 0.00000000E+00 5.00000000E-01 + 1.50000000E-01 0.00000000E+00 5.00000000E-01 + 2.00000000E-01 0.00000000E+00 5.00000000E-01 + 2.50000000E-01 0.00000000E+00 5.00000000E-01 + 3.00000000E-01 0.00000000E+00 5.00000000E-01 + 3.50000000E-01 0.00000000E+00 5.00000000E-01 + 4.00000000E-01 0.00000000E+00 5.00000000E-01 + 4.50000000E-01 0.00000000E+00 5.00000000E-01 + 5.00000000E-01 0.00000000E+00 5.00000000E-01 + 4.72222222E-01 5.55555555E-02 5.00000000E-01 + 4.44444444E-01 1.11111111E-01 5.00000000E-01 + 4.16666667E-01 1.66666667E-01 5.00000000E-01 + outvar_i_n : Printing only first 50 k-points. + kptopt -11 +P mkmem 49 + natom 3 + nband 11 + nbdbuf 2 + ngfft 18 18 20 + nkpt 97 +- npkpt 2 + nsym 24 + ntypat 2 + occopt 4 + ortalg -2 + paral_kgb 1 + rprim 5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + -5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 6.6575051698E+00 + shiftk 5.00000000E-01 5.00000000E-01 5.00000000E-01 + spgroup 191 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 -1 -1 0 0 1 0 0 0 -1 + timopt -1 + tolwfr 1.00000000E-12 + tsmear 3.00000000E-02 Hartree + typat 1 2 2 + wfoptalg 14 + outvars : Printing only first 50 k-points. + xangst 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -8.9085146603E-01 1.5430000008E+00 1.7615000010E+00 + 8.9085146603E-01 1.5430000008E+00 1.7615000010E+00 + xcart 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -1.6834652959E+00 2.9158474246E+00 3.3287525849E+00 + 1.6834652959E+00 2.9158474246E+00 3.3287525849E+00 + xred 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 3.3333333330E-01 6.6666666670E-01 5.0000000000E-01 + 6.6666666670E-01 3.3333333330E-01 5.0000000000E-01 + znucl 12.00000 5.00000 + +================================================================================ + + chkinp: Checking input parameters for consistency. + DATA TYPE INFORMATION: + REAL: Data type name: REAL(DP) + Kind value: 8 + Precision: 15 + Smallest nonnegligible quantity relative to 1: 0.22204460E-15 + Smallest positive number: 0.22250739-307 + Largest representable number: 0.17976931+309 + INTEGER: Data type name: INTEGER(default) + Kind value: 4 + Bit size: 32 + Largest representable number: 2147483647 + LOGICAL: Data type name: LOGICAL + Kind value: 4 + CHARACTER: Data type name: CHARACTER Kind value: 1 + + ==== OpenMP parallelism is OFF ==== + + ==== Using MPI-2 specifications ==== + MPI-IO support is ON + xmpi_tag_ub ................ 2147483647 + xmpi_bsize_ch .............. 1 + xmpi_bsize_int ............. 4 + xmpi_bsize_sp .............. 4 + xmpi_bsize_dp .............. 8 + xmpi_bsize_spc ............. 8 + xmpi_bsize_dpc ............. 16 + xmpio_bsize_frm ............ 4 + xmpi_address_kind .......... 8 + xmpi_offset_kind ........... 8 + MPI_WTICK .................. 9.9999999999999995E-007 + +================================================================================ +== DATASET 1 ================================================================== +- nproc = 2 + + + getdim_nloc : deduce lmnmax = 4, lnmax = 2, + lmnmaxso= 4, lnmaxso= 2. + Exchange-correlation functional for the present dataset will be: + LDA: new Teter (4/93) with spin-polarized option - ixc=1 + Citation for XC functional: + S. Goedecker, M. Teter, J. Huetter, PRB 54, 1703 (1996) + + Unit cell volume ucvol= 1.9607929E+02 bohr^3 + Angles (23,13,12)= 9.00000000E+01 9.00000000E+01 1.20000000E+02 degrees + + getcut: wavevector= 0.0000 0.0000 0.0000 ngfft= 18 18 20 + ecut(hartree)= 10.000 => boxcut(ratio)= 2.11034 + kpgio: loop on k-points done in parallel +- pspini: atom type 1 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc +- Troullier-Martins psp for element Mg Thu Oct 27 17:30:49 EDT 1994 +- 12.00000 2.00000 940714 znucl, zion, pspdat + 1 1 2 2 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 3.352 8.820 1 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 1.127 1.670 1 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2 0.000 0.000 0 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2.54196289048337 0.05499530377757 0.78827945413088 rchrg,fchrg,qchrg + pspatm: epsatm= -1.54393848 + --- l ekb(1:nproj) --> + 0 1.755924 + 1 0.853613 + pspatm: atomic psp has been read and splines computed + +- pspini: atom type 2 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc +- Troullier-Martins psp for element B Thu Oct 27 17:29:24 EDT 1994 +- 5.00000 3.00000 940714 znucl, zion, pspdat + 1 1 1 1 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 8.313 21.401 1 1.5924135 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 11.531 17.234 0 1.5924135 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1.10004537463277 0.35216853368804 0.40909985967175 rchrg,fchrg,qchrg + pspatm: epsatm= 0.59609267 + --- l ekb(1:nproj) --> + 0 3.906219 + pspatm: atomic psp has been read and splines computed + + -2.81402505E+00 ecore*ucvol(ha*bohr**3) + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 + 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 + wfconv: 11 bands initialized randomly with npw= 146, for ikpt= 1 + wfconv: 11 bands initialized randomly with npw= 297, for ikpt= 2 + wfconv: 11 bands initialized randomly with npw= 299, for ikpt= 3 + wfconv: 11 bands initialized randomly with npw= 297, for ikpt= 4 + wfconv: 11 bands initialized randomly with npw= 297, for ikpt= 5 + wfconv: 11 bands initialized randomly with npw= 299, for ikpt= 6 + wfconv: 11 bands initialized randomly with npw= 297, for ikpt= 7 + wfconv: 11 bands initialized randomly with npw= 297, for ikpt= 8 + wfconv: 11 bands initialized randomly with npw= 301, for ikpt= 9 + wfconv: 11 bands initialized randomly with npw= 306, for ikpt= 10 + wfconv: 11 bands initialized randomly with npw= 300, for ikpt= 11 + wfconv: 11 bands initialized randomly with npw= 304, for ikpt= 12 + wfconv: 11 bands initialized randomly with npw= 302, for ikpt= 13 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 14 + wfconv: 11 bands initialized randomly with npw= 296, for ikpt= 15 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 16 + wfconv: 11 bands initialized randomly with npw= 306, for ikpt= 17 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 18 + wfconv: 11 bands initialized randomly with npw= 294, for ikpt= 19 + wfconv: 11 bands initialized randomly with npw= 288, for ikpt= 20 + wfconv: 11 bands initialized randomly with npw= 288, for ikpt= 21 + wfconv: 11 bands initialized randomly with npw= 292, for ikpt= 22 + wfconv: 11 bands initialized randomly with npw= 296, for ikpt= 23 + wfconv: 11 bands initialized randomly with npw= 294, for ikpt= 24 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 25 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 26 + wfconv: 11 bands initialized randomly with npw= 303, for ikpt= 27 + wfconv: 11 bands initialized randomly with npw= 297, for ikpt= 28 + wfconv: 11 bands initialized randomly with npw= 146, for ikpt= 29 + wfconv: 11 bands initialized randomly with npw= 291, for ikpt= 30 + wfconv: 11 bands initialized randomly with npw= 297, for ikpt= 31 + wfconv: 11 bands initialized randomly with npw= 291, for ikpt= 32 + wfconv: 11 bands initialized randomly with npw= 279, for ikpt= 33 + wfconv: 11 bands initialized randomly with npw= 274, for ikpt= 34 + wfconv: 11 bands initialized randomly with npw= 274, for ikpt= 35 + wfconv: 11 bands initialized randomly with npw= 280, for ikpt= 36 + wfconv: 11 bands initialized randomly with npw= 286, for ikpt= 37 + wfconv: 11 bands initialized randomly with npw= 294, for ikpt= 38 + wfconv: 11 bands initialized randomly with npw= 296, for ikpt= 39 + wfconv: 11 bands initialized randomly with npw= 290, for ikpt= 40 + wfconv: 11 bands initialized randomly with npw= 290, for ikpt= 41 + wfconv: 11 bands initialized randomly with npw= 294, for ikpt= 42 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 43 + wfconv: 11 bands initialized randomly with npw= 302, for ikpt= 44 + wfconv: 11 bands initialized randomly with npw= 302, for ikpt= 45 + wfconv: 11 bands initialized randomly with npw= 296, for ikpt= 46 + wfconv: 11 bands initialized randomly with npw= 300, for ikpt= 47 + wfconv: 11 bands initialized randomly with npw= 296, for ikpt= 48 + wfconv: 11 bands initialized randomly with npw= 296, for ikpt= 49 + + ioarr: reading density data +ioarr: file name is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/indata/in_DEN + +================================================================================ + + - hdr_check: checking restart file header for consistency - + + + current calculation restart file + ------------------- ------------ + + calculation expects a density | input file contains a density +. ABINIT code version 7.11.5 | ABINIT code version 7.11.5 +. date 20150313 bantot 1067 natom 3 | date 20150313 bantot 440 natom 3 + nkpt 97 nsym 24 ngfft 18, 18, 20 | nkpt 40 nsym 24 ngfft 18, 18, 20 + ntypat 2 ecut_eff 10.0000000 | ntypat 2 ecut_eff 10.0000000 + usepaw 0 | usepaw 0 + usewvl 0 | usewvl 0 + rprimd: | rprimd: + 5.0503959 2.9158474 0.0000000 | 5.0503959 2.9158474 0.0000000 + -5.0503959 2.9158474 0.0000000 | -5.0503959 2.9158474 0.0000000 + 0.0000000 0.0000000 6.6575052 | 0.0000000 0.0000000 6.6575052 + symafm: | symafm: + 1 1 1 1 1 1 1 1 1 1 1 1 | 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 | 1 1 1 1 1 1 1 1 1 1 1 1 + symrel: | symrel: + 1 0 0 0 1 0 0 0 1 | 1 0 0 0 1 0 0 0 1 + -1 0 0 0 -1 0 0 0 -1 | -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 | 0 1 0 1 0 0 0 0 1 + 0 -1 0 -1 0 0 0 0 -1 | 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 | 1 1 0 -1 0 0 0 0 1 + -1 -1 0 1 0 0 0 0 -1 | -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 | -1 0 0 1 1 0 0 0 1 + 1 0 0 -1 -1 0 0 0 -1 | 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 | 0 1 0 -1 -1 0 0 0 1 + 0 -1 0 1 1 0 0 0 -1 | 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 | -1 -1 0 0 1 0 0 0 1 + 1 1 0 0 -1 0 0 0 -1 | 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 | -1 0 0 0 -1 0 0 0 1 + 1 0 0 0 1 0 0 0 -1 | 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 | 0 -1 0 -1 0 0 0 0 1 + 0 1 0 1 0 0 0 0 -1 | 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 | -1 -1 0 1 0 0 0 0 1 + 1 1 0 -1 0 0 0 0 -1 | 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 | 1 0 0 -1 -1 0 0 0 1 + -1 0 0 1 1 0 0 0 -1 | -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 | 0 -1 0 1 1 0 0 0 1 + 0 1 0 -1 -1 0 0 0 -1 | 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 | 1 1 0 0 -1 0 0 0 1 + -1 -1 0 0 1 0 0 0 -1 | -1 -1 0 0 1 0 0 0 -1 + typat: | typat: + 1 2 2 | 1 2 2 + so_psp : | so_psp : + 1 1 | 1 1 + tnons: | tnons: + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + znucl: | znucl: + 12.00 5.00 | 12.00 5.00 + pseudopotential atom type 1: | pseudopotential atom type 1: + pspso 0 pspxc 1 | pspso 0 pspxc 1 + pspdat 940714 pspcod 1 zion 2.0 | pspdat 940714 pspcod 1 zion 2.0 + pseudopotential atom type 2: | pseudopotential atom type 2: + pspso 0 pspxc 1 | pspso 0 pspxc 1 + pspdat 940714 pspcod 1 zion 3.0 | pspdat 940714 pspcod 1 zion 3.0 + xred: | xred: + 0.0000000 0.0000000 0.0000000 | 0.0000000 0.0000000 0.0000000 + 0.3333333 0.6666667 0.5000000 | 0.3333333 0.6666667 0.5000000 + 0.6666667 0.3333333 0.5000000 | 0.6666667 0.3333333 0.5000000 + hdr_check: Density/Potential file is OK for restart of calculation +================================================================================ +ioarr: data read from disk file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/indata/in_DEN + +================================================================================ + + getcut: wavevector= 0.0000 0.0000 0.0000 ngfft= 18 18 20 + ecut(hartree)= 10.000 => boxcut(ratio)= 2.11034 + vtorho : nnsclo_now= 30, note that nnsclo,dbl_nnsclo,istep= 0 0 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 + 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 + ioarr: writing density data +ioarr: file name is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out_DEN +ioarr: data written to disk file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out_DEN +================================================================================ + + ----iterations are completed or convergence reached---- + + + outwf: write wavefunction to file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out_WFK, with accesswff 1 + outwf with iomode: 1, cpu: 0.23, wall: 0.27 + +== END DATASET(S) ============================================================== +================================================================================ + + -outvars: echo values of variables after computation -------- + + These variables are accessible in NetCDF format (/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t1/outdata/out_OUT.nc) + + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.43050000E+01 1.08110000E+01 + ecut 1.00000000E+01 Hartree +- fftalg 312 + fft_opt_lob 2 + iprcch 6 + irdden 1 + iscf -2 + istwfk 2 0 0 0 0 0 0 0 0 0 + 1 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 2 0 + 0 0 0 0 0 0 1 0 0 0 + 0 0 0 0 0 0 1 0 0 0 + outvar_i_n : Printing only first 50 k-points. + kpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 5.00000000E-02 0.00000000E+00 0.00000000E+00 + 1.00000000E-01 0.00000000E+00 0.00000000E+00 + 1.50000000E-01 0.00000000E+00 0.00000000E+00 + 2.00000000E-01 0.00000000E+00 0.00000000E+00 + 2.50000000E-01 0.00000000E+00 0.00000000E+00 + 3.00000000E-01 0.00000000E+00 0.00000000E+00 + 3.50000000E-01 0.00000000E+00 0.00000000E+00 + 4.00000000E-01 0.00000000E+00 0.00000000E+00 + 4.50000000E-01 0.00000000E+00 0.00000000E+00 + 5.00000000E-01 0.00000000E+00 0.00000000E+00 + 4.72222222E-01 5.55555555E-02 0.00000000E+00 + 4.44444444E-01 1.11111111E-01 0.00000000E+00 + 4.16666667E-01 1.66666667E-01 0.00000000E+00 + 3.88888889E-01 2.22222222E-01 0.00000000E+00 + 3.61111111E-01 2.77777778E-01 0.00000000E+00 + 3.33333333E-01 3.33333333E-01 0.00000000E+00 + 3.05555556E-01 3.05555556E-01 0.00000000E+00 + 2.77777778E-01 2.77777778E-01 0.00000000E+00 + 2.50000000E-01 2.50000000E-01 0.00000000E+00 + 2.22222222E-01 2.22222222E-01 0.00000000E+00 + 1.94444444E-01 1.94444444E-01 0.00000000E+00 + 1.66666667E-01 1.66666667E-01 0.00000000E+00 + 1.38888889E-01 1.38888889E-01 0.00000000E+00 + 1.11111111E-01 1.11111111E-01 0.00000000E+00 + 8.33333333E-02 8.33333333E-02 0.00000000E+00 + 5.55555555E-02 5.55555555E-02 0.00000000E+00 + 2.77777778E-02 2.77777778E-02 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 6.25000000E-02 + 0.00000000E+00 0.00000000E+00 1.25000000E-01 + 0.00000000E+00 0.00000000E+00 1.87500000E-01 + 0.00000000E+00 0.00000000E+00 2.50000000E-01 + 0.00000000E+00 0.00000000E+00 3.12500000E-01 + 0.00000000E+00 0.00000000E+00 3.75000000E-01 + 0.00000000E+00 0.00000000E+00 4.37500000E-01 + 0.00000000E+00 0.00000000E+00 5.00000000E-01 + 5.00000000E-02 0.00000000E+00 5.00000000E-01 + 1.00000000E-01 0.00000000E+00 5.00000000E-01 + 1.50000000E-01 0.00000000E+00 5.00000000E-01 + 2.00000000E-01 0.00000000E+00 5.00000000E-01 + 2.50000000E-01 0.00000000E+00 5.00000000E-01 + 3.00000000E-01 0.00000000E+00 5.00000000E-01 + 3.50000000E-01 0.00000000E+00 5.00000000E-01 + 4.00000000E-01 0.00000000E+00 5.00000000E-01 + 4.50000000E-01 0.00000000E+00 5.00000000E-01 + 5.00000000E-01 0.00000000E+00 5.00000000E-01 + 4.72222222E-01 5.55555555E-02 5.00000000E-01 + 4.44444444E-01 1.11111111E-01 5.00000000E-01 + 4.16666667E-01 1.66666667E-01 5.00000000E-01 + outvar_i_n : Printing only first 50 k-points. + kptopt -11 +P mkmem 49 + natom 3 + nband 11 + nbdbuf 2 + ngfft 18 18 20 + nkpt 97 +- npkpt 2 + nsym 24 + ntypat 2 + occopt 4 + ortalg -2 + paral_kgb 1 + rprim 5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + -5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 6.6575051698E+00 + shiftk 5.00000000E-01 5.00000000E-01 5.00000000E-01 + spgroup 191 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 -1 -1 0 0 1 0 0 0 -1 + timopt -1 + tolwfr 1.00000000E-12 + tsmear 3.00000000E-02 Hartree + typat 1 2 2 + wfoptalg 14 + outvars : Printing only first 50 k-points. + xangst 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -8.9085146585E-01 1.5430000008E+00 1.7615000010E+00 + 8.9085146585E-01 1.5430000008E+00 1.7615000010E+00 + xcart 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -1.6834652955E+00 2.9158474246E+00 3.3287525849E+00 + 1.6834652955E+00 2.9158474246E+00 3.3287525849E+00 + xred 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 3.3333333333E-01 6.6666666667E-01 5.0000000000E-01 + 6.6666666667E-01 3.3333333333E-01 5.0000000000E-01 + znucl 12.00000 5.00000 + +================================================================================ + + +================================================================================ + + Suggested references for the acknowledgment of ABINIT usage. + + The users of ABINIT have little formal obligations with respect to the ABINIT group + (those specified in the GNU General Public License, http://www.gnu.org/copyleft/gpl.txt). + However, it is common practice in the scientific literature, + to acknowledge the efforts of people that have made the research possible. + In this spirit, please find below suggested citations of work written by ABINIT developers, + corresponding to implementations inside of ABINIT that you have used in the present run. + Note also that it will be of great value to readers of publications presenting these results, + to read papers enabling them to understand the theoretical formalism and details + of the ABINIT implementation. + For information on why they are suggested, see also http://www.abinit.org/about/?text=acknowledgments. + + [1] Large scale ab initio calculations based on three levels of parallelization + F. Bottin, S. Leroux, A. Knyazev, G. Zerah, Comput. Mat. Science 42, 329, (2008). + Comment : in case paral_kgb is non-zero. Strong suggestion to cite this paper in your publications. + This paper is also available at http://www.arxiv.org/abs/0707.3405 + + [2] ABINIT : First-principles approach of materials and nanosystem properties. + X. Gonze, B. Amadon, P.-M. Anglade, J.-M. Beuken, F. Bottin, P. Boulanger, F. Bruneval, + D. Caliste, R. Caracas, M. Cote, T. Deutsch, L. Genovese, Ph. Ghosez, M. Giantomassi + S. Goedecker, D.R. Hamann, P. Hermet, F. Jollet, G. Jomard, S. Leroux, M. Mancini, S. Mazevet, + M.J.T. Oliveira, G. Onida, Y. Pouillon, T. Rangel, G.-M. Rignanese, D. Sangalli, R. Shaltaf, + M. Torrent, M.J. Verstraete, G. Zerah, J.W. Zwanziger + Computer Phys. Comm. 180, 2582-2615 (2009). + Comment : the third generic paper describing the ABINIT project. + Note that a version of this paper, that is not formatted for Computer Phys. Comm. + is available at http://www.abinit.org/about/ABINIT_CPC_v10.pdf . + The licence allows the authors to put it on the Web. + + [3] A brief introduction to the ABINIT software package. + X. Gonze, G.-M. Rignanese, M. Verstraete, J.-M. Beuken, Y. Pouillon, R. Caracas, F. Jollet, + M. Torrent, G. Zerah, M. Mikami, Ph. Ghosez, M. Veithen, J.-Y. Raty, V. Olevano, F. Bruneval, + L. Reining, R. Godby, G. Onida, D.R. Hamann, and D.C. Allan. + Z. Kristallogr. 220, 558-562 (2005). + Comment : the second generic paper describing the ABINIT project. Note that this paper + should be cited especially if you are using the GW part of ABINIT, as several authors + of this part are not in the list of authors of the first or third paper. + The .pdf of the latter paper is available at http://www.abinit.org/about/zfk_0505-06_558-562.pdf. + Note that it should not redistributed (Copyright by Oldenburg Wissenshaftverlag, + the licence allows the authors to put it on the Web). + + + And optionally : + + [4] First-principles computation of material properties : the ABINIT software project. + X. Gonze, J.-M. Beuken, R. Caracas, F. Detraux, M. Fuchs, G.-M. Rignanese, L. Sindic, + M. Verstraete, G. Zerah, F. Jollet, M. Torrent, A. Roy, M. Mikami, Ph. Ghosez, J.-Y. Raty, D.C. Allan. + Computational Materials Science 25, 478-492 (2002). http://dx.doi.org/10.1016/S0927-0256(02)00325-7 + Comment : the original paper describing the ABINIT project. + + [5] Fast radix 2, 3, 4 and 5 kernels for Fast Fourier Transformations + on computers with overlapping multiply-add instructions. + S. Goedecker, SIAM J. on Scientific Computing 18, 1605 (1997). + Proc. 0 individual time (sec): cpu= 9.7 wall= 14.9 + + Calculation completed. +.Delivered 0 WARNINGs and 0 COMMENTs to log file. +--- !FinalSummary +start_datetime: Fri Mar 13 20:08:57 2015 +end_datetime: Fri Mar 13 20:09:12 2015 +overall_cpu_time: 19.5 +overall_wall_time: 29.9 +... diff --git a/abipy/data/refs/text_files/mgb2_scf.abo b/abipy/data/refs/text_files/mgb2_scf.abo new file mode 100644 index 000000000..c582de2a3 --- /dev/null +++ b/abipy/data/refs/text_files/mgb2_scf.abo @@ -0,0 +1,1339 @@ + +.Version 7.11.5 of ABINIT +.(MPI version, prepared for a x86_64_darwin10.8.0_gnu4.7 computer) + +.Copyright (C) 1998-2015 ABINIT group . + ABINIT comes with ABSOLUTELY NO WARRANTY. + It is free software, and you are welcome to redistribute it + under certain conditions (GNU General Public License, + see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). + + ABINIT is a project of the Universite Catholique de Louvain, + Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt . + Please read ~abinit/doc/users/acknowledgments.html for suggested + acknowledgments of the ABINIT effort. + For more information, see http://www.abinit.org . + +.Starting date : Fri 13 Mar 2015. +- ( at 20h08 ) + +- input file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/run.abi +- output file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/run.abo +- root for input files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/indata/in +- root for output files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out + + + Symmetries : space group P6/m m m (#191); Bravais hP (primitive hexag.) +================================================================================ + Values of the parameters that define the memory need of the present run + intxc = 0 ionmov = 0 iscf = 7 xclevel = 1 + lmnmax = 2 lnmax = 2 mband = 11 mffmem = 1 +P mgfft = 20 mkmem = 20 mpssoang= 3 mpw = 308 + mqgrid = 3001 natom = 3 nfft = 6480 nkpt = 40 + nloalg = 4 nspden = 1 nspinor = 1 nsppol = 1 + nsym = 24 n1xccc = 2501 ntypat = 2 occopt = 4 +================================================================================ +P This job should need less than 4.818 Mbytes of memory. + Rough estimation (10% accuracy) of disk space for files : +_ WF disk file : 2.070 Mbytes ; DEN or POT disk file : 0.051 Mbytes. +================================================================================ + +-------------------------------------------------------------------------------- +------------- Echo of variables that govern the present computation ------------ +-------------------------------------------------------------------------------- +- +- outvars: echo of selected default values +- accesswff0 = 0 , fftalg0 =312 , wfoptalg0 = 0 +- +- outvars: echo of global parameters not present in the input file +- max_nthreads = 0 +- + -outvars: echo values of preprocessed input variables -------- + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.43050000E+01 1.08110000E+01 + ecut 1.00000000E+01 Hartree +- fftalg 312 + fft_opt_lob 2 + iprcch 6 + kpt 0.00000000E+00 0.00000000E+00 6.25000000E-02 + 1.25000000E-01 0.00000000E+00 6.25000000E-02 + 2.50000000E-01 0.00000000E+00 6.25000000E-02 + 3.75000000E-01 0.00000000E+00 6.25000000E-02 + 5.00000000E-01 0.00000000E+00 6.25000000E-02 + 1.25000000E-01 1.25000000E-01 6.25000000E-02 + 2.50000000E-01 1.25000000E-01 6.25000000E-02 + 3.75000000E-01 1.25000000E-01 6.25000000E-02 + 2.50000000E-01 2.50000000E-01 6.25000000E-02 + 3.75000000E-01 2.50000000E-01 6.25000000E-02 + 0.00000000E+00 0.00000000E+00 1.87500000E-01 + 1.25000000E-01 0.00000000E+00 1.87500000E-01 + 2.50000000E-01 0.00000000E+00 1.87500000E-01 + 3.75000000E-01 0.00000000E+00 1.87500000E-01 + 5.00000000E-01 0.00000000E+00 1.87500000E-01 + 1.25000000E-01 1.25000000E-01 1.87500000E-01 + 2.50000000E-01 1.25000000E-01 1.87500000E-01 + 3.75000000E-01 1.25000000E-01 1.87500000E-01 + 2.50000000E-01 2.50000000E-01 1.87500000E-01 + 3.75000000E-01 2.50000000E-01 1.87500000E-01 + 0.00000000E+00 0.00000000E+00 3.12500000E-01 + 1.25000000E-01 0.00000000E+00 3.12500000E-01 + 2.50000000E-01 0.00000000E+00 3.12500000E-01 + 3.75000000E-01 0.00000000E+00 3.12500000E-01 + 5.00000000E-01 0.00000000E+00 3.12500000E-01 + 1.25000000E-01 1.25000000E-01 3.12500000E-01 + 2.50000000E-01 1.25000000E-01 3.12500000E-01 + 3.75000000E-01 1.25000000E-01 3.12500000E-01 + 2.50000000E-01 2.50000000E-01 3.12500000E-01 + 3.75000000E-01 2.50000000E-01 3.12500000E-01 + 0.00000000E+00 0.00000000E+00 4.37500000E-01 + 1.25000000E-01 0.00000000E+00 4.37500000E-01 + 2.50000000E-01 0.00000000E+00 4.37500000E-01 + 3.75000000E-01 0.00000000E+00 4.37500000E-01 + 5.00000000E-01 0.00000000E+00 4.37500000E-01 + 1.25000000E-01 1.25000000E-01 4.37500000E-01 + 2.50000000E-01 1.25000000E-01 4.37500000E-01 + 3.75000000E-01 1.25000000E-01 4.37500000E-01 + 2.50000000E-01 2.50000000E-01 4.37500000E-01 + 3.75000000E-01 2.50000000E-01 4.37500000E-01 + kptrlatt 8 0 0 0 8 0 0 0 8 + kptrlen 4.66535588E+01 +P mkmem 20 + natom 3 + nband 11 + ngfft 18 18 20 + nkpt 40 +- npkpt 2 + nsym 24 + ntypat 2 + occ 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + occopt 4 + ortalg -2 + paral_kgb 1 + rprim 5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + -5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 6.6575051698E+00 + shiftk 0.00000000E+00 0.00000000E+00 5.00000000E-01 + spgroup 191 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 -1 -1 0 0 1 0 0 0 -1 + timopt -1 + tolvrs 1.00000000E-06 + tsmear 3.00000000E-02 Hartree + typat 1 2 2 + wfoptalg 14 + wtk 0.00391 0.02344 0.02344 0.02344 0.01172 0.02344 + 0.04688 0.04688 0.02344 0.02344 0.00391 0.02344 + 0.02344 0.02344 0.01172 0.02344 0.04688 0.04688 + 0.02344 0.02344 0.00391 0.02344 0.02344 0.02344 + 0.01172 0.02344 0.04688 0.04688 0.02344 0.02344 + 0.00391 0.02344 0.02344 0.02344 0.01172 0.02344 + 0.04688 0.04688 0.02344 0.02344 + xangst 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -8.9085146603E-01 1.5430000008E+00 1.7615000010E+00 + 8.9085146603E-01 1.5430000008E+00 1.7615000010E+00 + xcart 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -1.6834652959E+00 2.9158474246E+00 3.3287525849E+00 + 1.6834652959E+00 2.9158474246E+00 3.3287525849E+00 + xred 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 3.3333333330E-01 6.6666666670E-01 5.0000000000E-01 + 6.6666666670E-01 3.3333333330E-01 5.0000000000E-01 + znucl 12.00000 5.00000 + +================================================================================ + + chkinp: Checking input parameters for consistency. + +================================================================================ +== DATASET 1 ================================================================== +- nproc = 2 + + Exchange-correlation functional for the present dataset will be: + LDA: new Teter (4/93) with spin-polarized option - ixc=1 + Citation for XC functional: + S. Goedecker, M. Teter, J. Huetter, PRB 54, 1703 (1996) + + Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1): + R(1)= 5.0503959 2.9158474 0.0000000 G(1)= 0.0990021 0.1714767 0.0000000 + R(2)= -5.0503959 2.9158474 0.0000000 G(2)= -0.0990021 0.1714767 0.0000000 + R(3)= 0.0000000 0.0000000 6.6575052 G(3)= 0.0000000 0.0000000 0.1502064 + Unit cell volume ucvol= 1.9607929E+02 bohr^3 + Angles (23,13,12)= 9.00000000E+01 9.00000000E+01 1.20000000E+02 degrees + + getcut: wavevector= 0.0000 0.0000 0.0000 ngfft= 18 18 20 + ecut(hartree)= 10.000 => boxcut(ratio)= 2.11034 + +--- Pseudopotential description ------------------------------------------------ +- pspini: atom type 1 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc +- Troullier-Martins psp for element Mg Thu Oct 27 17:30:49 EDT 1994 +- 12.00000 2.00000 940714 znucl, zion, pspdat + 1 1 2 2 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 3.352 8.820 1 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 1.127 1.670 1 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2 0.000 0.000 0 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2.54196289048337 0.05499530377757 0.78827945413088 rchrg,fchrg,qchrg + pspatm: epsatm= -1.54393848 + --- l ekb(1:nproj) --> + 0 1.755924 + 1 0.853613 + pspatm: atomic psp has been read and splines computed + +- pspini: atom type 2 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc +- Troullier-Martins psp for element B Thu Oct 27 17:29:24 EDT 1994 +- 5.00000 3.00000 940714 znucl, zion, pspdat + 1 1 1 1 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 8.313 21.401 1 1.5924135 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 11.531 17.234 0 1.5924135 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1.10004537463277 0.35216853368804 0.40909985967175 rchrg,fchrg,qchrg + pspatm: epsatm= 0.59609267 + --- l ekb(1:nproj) --> + 0 3.906219 + pspatm: atomic psp has been read and splines computed + + -2.81402505E+00 ecore*ucvol(ha*bohr**3) +-------------------------------------------------------------------------------- + +P newkpt: treating 11 bands with npw= 291 for ikpt= 1 by node 0 +P newkpt: treating 11 bands with npw= 300 for ikpt= 2 by node 0 +P newkpt: treating 11 bands with npw= 295 for ikpt= 3 by node 0 +P newkpt: treating 11 bands with npw= 301 for ikpt= 4 by node 0 +P newkpt: treating 11 bands with npw= 308 for ikpt= 5 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 6 by node 0 +P newkpt: treating 11 bands with npw= 293 for ikpt= 7 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 8 by node 0 +P newkpt: treating 11 bands with npw= 294 for ikpt= 9 by node 0 +P newkpt: treating 11 bands with npw= 297 for ikpt= 10 by node 0 +P newkpt: treating 11 bands with npw= 291 for ikpt= 11 by node 0 +P newkpt: treating 11 bands with npw= 294 for ikpt= 12 by node 0 +P newkpt: treating 11 bands with npw= 296 for ikpt= 13 by node 0 +P newkpt: treating 11 bands with npw= 295 for ikpt= 14 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 15 by node 0 +P newkpt: treating 11 bands with npw= 294 for ikpt= 16 by node 0 +P newkpt: treating 11 bands with npw= 295 for ikpt= 17 by node 0 +P newkpt: treating 11 bands with npw= 294 for ikpt= 18 by node 0 +P newkpt: treating 11 bands with npw= 298 for ikpt= 19 by node 0 +P newkpt: treating 11 bands with npw= 303 for ikpt= 20 by node 0 +P newkpt: treating 11 bands with npw= 274 for ikpt= 21 by node 1 +P newkpt: treating 11 bands with npw= 293 for ikpt= 22 by node 1 +P newkpt: treating 11 bands with npw= 296 for ikpt= 23 by node 1 +P newkpt: treating 11 bands with npw= 296 for ikpt= 24 by node 1 +P newkpt: treating 11 bands with npw= 300 for ikpt= 25 by node 1 +P newkpt: treating 11 bands with npw= 292 for ikpt= 26 by node 1 +P newkpt: treating 11 bands with npw= 295 for ikpt= 27 by node 1 +P newkpt: treating 11 bands with npw= 297 for ikpt= 28 by node 1 +P newkpt: treating 11 bands with npw= 298 for ikpt= 29 by node 1 +P newkpt: treating 11 bands with npw= 297 for ikpt= 30 by node 1 +P newkpt: treating 11 bands with npw= 280 for ikpt= 31 by node 1 +P newkpt: treating 11 bands with npw= 291 for ikpt= 32 by node 1 +P newkpt: treating 11 bands with npw= 297 for ikpt= 33 by node 1 +P newkpt: treating 11 bands with npw= 301 for ikpt= 34 by node 1 +P newkpt: treating 11 bands with npw= 296 for ikpt= 35 by node 1 +P newkpt: treating 11 bands with npw= 296 for ikpt= 36 by node 1 +P newkpt: treating 11 bands with npw= 296 for ikpt= 37 by node 1 +P newkpt: treating 11 bands with npw= 295 for ikpt= 38 by node 1 +P newkpt: treating 11 bands with npw= 297 for ikpt= 39 by node 1 +P newkpt: treating 11 bands with npw= 296 for ikpt= 40 by node 1 + +_setup2: Arith. and geom. avg. npw (full set) are 296.047 296.029 + +================================================================================ + + iter Etot(hartree) deltaE(h) residm vres2 + ETOT 1 -7.0250417290754 -7.025E+00 2.430E-03 1.769E+02 + ETOT 2 -7.1467059890187 -1.217E-01 2.672E-04 7.920E-01 + ETOT 3 -7.1475123730445 -8.064E-04 1.155E-04 1.570E-01 + ETOT 4 -7.1476179372442 -1.056E-04 6.147E-05 4.259E-03 + ETOT 5 -7.1476240932598 -6.156E-06 1.241E-04 4.150E-05 + ETOT 6 -7.1476241568657 -6.361E-08 2.681E-05 3.879E-08 + + At SCF step 6 vres2 = 3.88E-08 < tolvrs= 1.00E-06 =>converged. + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= 6.19525691E-04 sigma(3 2)= 0.00000000E+00 + sigma(2 2)= 6.19525691E-04 sigma(3 1)= 0.00000000E+00 + sigma(3 3)= 5.35534283E-04 sigma(2 1)= 0.00000000E+00 + +================================================================================ + + ----iterations are completed or convergence reached---- + + Mean square residual over all n,k,spin= 7.1021E-08; max= 2.6812E-05 + 0.0000 0.0000 0.0625 1 5.96369E-12 kpt; spin; max resid(k); each band: + 2.37E-14 5.15E-14 1.58E-17 1.19E-17 2.00E-15 1.02E-16 1.33E-16 3.37E-14 + 3.94E-15 9.41E-14 5.96E-12 + 0.1250 0.0000 0.0625 1 3.63751E-10 kpt; spin; max resid(k); each band: + 2.72E-14 6.10E-14 3.29E-13 1.65E-14 7.16E-13 5.45E-13 1.81E-14 3.20E-13 + 1.52E-13 1.11E-11 3.64E-10 + 0.2500 0.0000 0.0625 1 1.45769E-07 kpt; spin; max resid(k); each band: + 5.50E-14 5.41E-13 5.24E-13 1.88E-14 5.10E-12 1.39E-12 1.69E-12 2.19E-12 + 7.67E-13 3.61E-11 1.46E-07 + 0.3750 0.0000 0.0625 1 9.70839E-11 kpt; spin; max resid(k); each band: + 1.64E-13 1.56E-13 3.85E-15 1.37E-13 3.43E-11 3.85E-11 3.75E-11 9.44E-13 + 2.20E-12 8.82E-11 9.71E-11 + 0.5000 0.0000 0.0625 1 1.29381E-06 kpt; spin; max resid(k); each band: + 1.58E-14 5.28E-14 1.82E-17 7.79E-14 6.33E-13 5.90E-13 3.86E-14 3.85E-13 + 4.07E-12 1.15E-11 1.29E-06 + 0.1250 0.1250 0.0625 1 4.31287E-09 kpt; spin; max resid(k); each band: + 4.12E-14 3.15E-13 1.14E-14 4.22E-13 1.13E-12 2.42E-13 1.97E-12 2.77E-13 + 1.69E-12 4.71E-12 4.31E-09 + 0.2500 0.1250 0.0625 1 3.25092E-11 kpt; spin; max resid(k); each band: + 4.52E-14 7.47E-14 7.94E-13 6.52E-13 5.49E-12 2.30E-12 1.69E-12 5.03E-12 + 3.79E-12 6.58E-12 3.25E-11 + 0.3750 0.1250 0.0625 1 7.02345E-11 kpt; spin; max resid(k); each band: + 2.67E-13 2.60E-13 2.04E-13 1.58E-13 1.41E-12 7.02E-11 4.48E-11 2.42E-12 + 1.77E-12 2.36E-11 3.05E-11 + 0.2500 0.2500 0.0625 1 3.03021E-11 kpt; spin; max resid(k); each band: + 2.05E-13 9.75E-15 1.79E-13 1.46E-13 5.34E-13 1.99E-12 7.12E-13 3.03E-11 + 7.73E-12 5.11E-13 1.49E-11 + 0.3750 0.2500 0.0625 1 5.16143E-11 kpt; spin; max resid(k); each band: + 1.59E-14 4.01E-13 2.74E-13 1.22E-13 3.34E-13 6.41E-14 1.63E-11 1.23E-11 + 9.07E-12 7.68E-12 5.16E-11 + 0.0000 0.0000 0.1875 1 1.69186E-12 kpt; spin; max resid(k); each band: + 1.17E-13 1.12E-14 4.07E-17 4.64E-17 4.57E-15 3.51E-16 3.50E-16 2.35E-13 + 6.22E-15 1.69E-12 9.31E-13 + 0.1250 0.0000 0.1875 1 5.99964E-09 kpt; spin; max resid(k); each band: + 1.17E-13 2.90E-14 8.92E-14 1.48E-15 6.78E-12 2.96E-12 6.58E-14 1.24E-12 + 2.58E-13 6.00E-09 2.07E-09 + 0.2500 0.0000 0.1875 1 6.97104E-11 kpt; spin; max resid(k); each band: + 1.38E-13 2.54E-11 1.17E-11 1.91E-14 6.97E-11 2.13E-11 3.03E-11 1.58E-11 + 2.20E-11 1.27E-12 1.42E-11 + 0.3750 0.0000 0.1875 1 2.11303E-11 kpt; spin; max resid(k); each band: + 1.80E-13 1.60E-13 1.71E-13 2.46E-15 6.69E-13 1.17E-12 9.34E-13 1.63E-12 + 2.55E-12 1.01E-12 2.11E-11 + 0.5000 0.0000 0.1875 1 2.14727E-10 kpt; spin; max resid(k); each band: + 1.76E-13 1.42E-13 4.90E-17 9.67E-14 3.35E-13 1.38E-12 6.95E-14 7.80E-13 + 1.08E-14 2.87E-13 2.15E-10 + 0.1250 0.1250 0.1875 1 1.44107E-11 kpt; spin; max resid(k); each band: + 1.18E-13 1.06E-13 9.59E-14 1.05E-13 1.44E-11 4.32E-13 2.88E-12 3.07E-13 + 8.45E-13 5.54E-12 1.42E-11 + 0.2500 0.1250 0.1875 1 1.03191E-10 kpt; spin; max resid(k); each band: + 1.54E-13 1.30E-12 6.22E-11 2.35E-11 1.10E-12 1.03E-10 5.35E-11 6.06E-11 + 5.15E-11 1.09E-11 9.76E-11 + 0.3750 0.1250 0.1875 1 4.95018E-11 kpt; spin; max resid(k); each band: + 2.85E-13 2.85E-13 1.21E-12 7.06E-13 4.19E-13 6.54E-12 7.76E-12 7.11E-12 + 4.28E-12 4.95E-11 3.41E-11 + 0.2500 0.2500 0.1875 1 1.90193E-11 kpt; spin; max resid(k); each band: + 1.62E-13 1.75E-13 3.07E-13 2.83E-13 1.94E-13 1.82E-11 1.90E-11 1.51E-12 + 2.34E-12 8.21E-13 9.36E-12 + 0.3750 0.2500 0.1875 1 1.65242E-11 kpt; spin; max resid(k); each band: + 2.42E-13 4.54E-13 3.86E-13 1.37E-13 2.95E-13 1.04E-12 2.20E-13 1.65E-11 + 4.87E-12 1.11E-11 4.22E-12 + 0.0000 0.0000 0.3125 1 2.96226E-06 kpt; spin; max resid(k); each band: + 1.14E-12 2.01E-14 5.89E-17 5.15E-17 2.44E-15 2.44E-15 6.14E-14 1.26E-13 + 2.47E-14 1.65E-13 2.96E-06 + 0.1250 0.0000 0.3125 1 3.59044E-11 kpt; spin; max resid(k); each band: + 7.31E-13 1.45E-14 1.05E-13 2.94E-14 3.59E-11 1.13E-11 2.10E-11 1.58E-13 + 1.76E-12 1.09E-13 1.07E-11 + 0.2500 0.0000 0.3125 1 3.70228E-10 kpt; spin; max resid(k); each band: + 6.26E-13 1.86E-13 2.84E-13 8.08E-15 1.81E-12 1.55E-12 6.01E-13 3.70E-10 + 2.19E-10 3.35E-11 3.83E-11 + 0.3750 0.0000 0.3125 1 4.02586E-12 kpt; spin; max resid(k); each band: + 7.95E-13 2.43E-12 1.08E-12 4.69E-15 4.98E-13 1.83E-12 3.25E-12 9.61E-14 + 1.54E-12 4.03E-12 2.66E-12 + 0.5000 0.0000 0.3125 1 3.62805E-09 kpt; spin; max resid(k); each band: + 6.65E-13 1.37E-13 9.71E-14 1.63E-16 9.02E-14 2.01E-12 1.44E-12 8.15E-16 + 2.60E-13 1.15E-12 3.63E-09 + 0.1250 0.1250 0.3125 1 2.87842E-11 kpt; spin; max resid(k); each band: + 1.91E-13 2.63E-14 1.75E-13 6.38E-14 1.61E-13 2.88E-11 1.91E-11 1.85E-13 + 2.49E-12 1.80E-11 2.97E-12 + 0.2500 0.1250 0.3125 1 2.31871E-10 kpt; spin; max resid(k); each band: + 7.57E-13 2.32E-10 7.29E-11 1.50E-13 4.88E-12 1.59E-10 1.73E-10 4.88E-11 + 3.69E-11 2.71E-11 6.92E-11 + 0.3750 0.1250 0.3125 1 2.44245E-10 kpt; spin; max resid(k); each band: + 8.13E-13 5.74E-13 2.44E-10 1.57E-10 3.08E-12 1.65E-10 8.84E-11 2.64E-11 + 3.64E-11 4.49E-11 4.85E-11 + 0.2500 0.2500 0.3125 1 1.73465E-10 kpt; spin; max resid(k); each band: + 6.62E-13 4.33E-13 8.54E-12 3.96E-12 1.20E-13 4.58E-13 4.87E-11 8.18E-13 + 1.49E-11 9.57E-13 1.73E-10 + 0.3750 0.2500 0.3125 1 2.17977E-11 kpt; spin; max resid(k); each band: + 5.63E-13 6.87E-13 7.41E-13 1.10E-13 4.20E-13 2.09E-13 1.22E-12 4.34E-12 + 2.18E-11 1.18E-11 2.23E-12 + 0.0000 0.0000 0.4375 1 5.15496E-13 kpt; spin; max resid(k); each band: + 5.15E-13 4.59E-14 4.35E-17 4.34E-17 2.09E-15 2.08E-15 1.98E-14 2.91E-13 + 6.34E-15 4.88E-14 1.65E-13 + 0.1250 0.0000 0.4375 1 1.69940E-11 kpt; spin; max resid(k); each band: + 6.95E-13 5.14E-14 6.59E-14 3.92E-14 1.70E-11 9.96E-12 6.07E-14 2.37E-12 + 1.50E-12 2.41E-14 1.71E-12 + 0.2500 0.0000 0.4375 1 9.16417E-12 kpt; spin; max resid(k); each band: + 8.00E-13 9.27E-14 9.06E-14 3.06E-15 3.59E-13 6.15E-13 8.01E-12 8.41E-12 + 9.16E-12 7.86E-12 6.81E-12 + 0.3750 0.0000 0.4375 1 2.24546E-11 kpt; spin; max resid(k); each band: + 5.95E-13 6.86E-12 4.75E-12 1.81E-15 3.47E-13 1.47E-12 1.12E-12 2.37E-15 + 3.24E-12 2.25E-11 7.08E-12 + 0.5000 0.0000 0.4375 1 2.68120E-05 kpt; spin; max resid(k); each band: + 5.77E-13 1.53E-13 1.53E-13 1.44E-16 6.92E-14 1.76E-12 6.09E-13 5.47E-16 + 2.29E-12 1.17E-08 2.68E-05 + 0.1250 0.1250 0.4375 1 8.68701E-12 kpt; spin; max resid(k); each band: + 7.64E-13 6.71E-14 5.19E-14 6.44E-14 3.70E-14 8.59E-12 8.69E-12 1.03E-13 + 3.46E-12 7.35E-12 4.98E-12 + 0.2500 0.1250 0.4375 1 1.00247E-09 kpt; spin; max resid(k); each band: + 6.36E-13 2.74E-13 3.34E-13 6.95E-14 2.39E-13 4.20E-10 1.53E-10 1.06E-11 + 1.10E-11 3.96E-11 1.00E-09 + 0.3750 0.1250 0.4375 1 1.82133E-10 kpt; spin; max resid(k); each band: + 5.29E-13 3.92E-13 8.18E-13 6.43E-13 3.80E-13 3.52E-11 1.28E-11 1.19E-11 + 4.35E-11 3.04E-11 1.82E-10 + 0.2500 0.2500 0.4375 1 2.08713E-10 kpt; spin; max resid(k); each band: + 4.52E-13 2.44E-13 1.00E-10 8.05E-11 5.81E-14 7.56E-13 5.79E-12 1.21E-13 + 3.58E-11 4.26E-12 2.09E-10 + 0.3750 0.2500 0.4375 1 4.80286E-11 kpt; spin; max resid(k); each band: + 5.06E-13 3.69E-13 3.19E-13 1.21E-13 3.81E-13 9.93E-14 1.13E-12 4.80E-11 + 3.63E-11 2.28E-11 1.60E-11 + reduced coordinates (array xred) for 3 atoms + 0.000000000000 0.000000000000 0.000000000000 + 0.333333333333 0.666666666667 0.500000000000 + 0.666666666667 0.333333333333 0.500000000000 + rms dE/dt= 1.2307E-27; max dE/dt= 1.6156E-27; dE/dt below (all hartree) + 1 0.000000000000 0.000000000000 0.000000000000 + 2 0.000000000000 -0.000000000000 0.000000000000 + 3 0.000000000000 0.000000000000 0.000000000000 + + cartesian coordinates (angstrom) at end: + 1 0.00000000000000 0.00000000000000 0.00000000000000 + 2 -0.89085146584847 1.54300000082417 1.76150000096413 + 3 0.89085146584847 1.54300000082417 1.76150000096413 + + cartesian forces (hartree/bohr) at end: + 1 0.00000000000000 0.00000000000000 -0.00000000000000 + 2 -0.00000000000000 0.00000000000000 -0.00000000000000 + 3 0.00000000000000 -0.00000000000000 -0.00000000000000 + frms,max,avg= 2.0001549E-28 3.6938081E-28 0.000E+00 0.000E+00 0.000E+00 h/b + + cartesian forces (eV/Angstrom) at end: + 1 0.00000000000000 0.00000000000000 -0.00000000000000 + 2 -0.00000000000000 0.00000000000000 -0.00000000000000 + 3 0.00000000000000 -0.00000000000000 -0.00000000000000 + frms,max,avg= 1.0285209E-26 1.8994323E-26 0.000E+00 0.000E+00 0.000E+00 e/A + length scales= 1.000000000000 1.000000000000 1.000000000000 bohr + = 0.529177208590 0.529177208590 0.529177208590 angstroms + prteigrs : about to open file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out_EIG + Fermi (or HOMO) energy (hartree) = 0.27984 Average Vxc (hartree)= -0.39656 + Eigenvalues (hartree) for nkpt= 40 k points: + kpt# 1, nband= 11, wtk= 0.00391, kpt= 0.0000 0.0000 0.0625 (reduced coord) + -0.17877 0.16055 0.29852 0.29852 0.35010 0.51038 0.51038 0.57387 + 0.65026 0.73021 0.85689 + occupation numbers for kpt# 1 + 2.00000 2.00000 0.11585 0.11585 0.00202 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 2, nband= 11, wtk= 0.02344, kpt= 0.1250 0.0000 0.0625 (reduced coord) + -0.16878 0.17037 0.24841 0.27514 0.35901 0.50014 0.55211 0.58865 + 0.62146 0.77968 0.81109 + occupation numbers for kpt# 2 + 2.00000 2.00001 2.12218 1.11397 0.00072 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 3, nband= 11, wtk= 0.02344, kpt= 0.2500 0.0000 0.0625 (reduced coord) + -0.13905 0.15612 0.20003 0.23820 0.38506 0.47220 0.52363 0.62856 + 0.64698 0.76656 0.78383 + occupation numbers for kpt# 3 + 2.00000 2.00000 2.00286 2.13047 0.00001 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 4, nband= 11, wtk= 0.02344, kpt= 0.3750 0.0000 0.0625 (reduced coord) + -0.09058 0.06196 0.21097 0.24488 0.41142 0.43735 0.46243 0.58449 + 0.73737 0.73767 0.77765 + occupation numbers for kpt# 4 + 2.00000 2.00000 2.01330 2.13988 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 5, nband= 11, wtk= 0.01172, kpt= 0.5000 0.0000 0.0625 (reduced coord) + -0.03554 -0.00947 0.20126 0.27999 0.37676 0.42764 0.48290 0.54094 + 0.72611 0.73974 0.82552 + occupation numbers for kpt# 5 + 2.00000 2.00000 2.00346 0.83230 0.00004 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 6, nband= 11, wtk= 0.02344, kpt= 0.1250 0.1250 0.0625 (reduced coord) + -0.14896 0.18992 0.19416 0.22783 0.37866 0.51958 0.53922 0.56634 + 0.65779 0.74054 0.80200 + occupation numbers for kpt# 6 + 2.00000 2.00053 2.00111 2.07364 0.00003 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 7, nband= 11, wtk= 0.04688, kpt= 0.2500 0.1250 0.0625 (reduced coord) + -0.10983 0.11140 0.18374 0.22854 0.41520 0.46740 0.50763 0.59141 + 0.68011 0.68686 0.77681 + occupation numbers for kpt# 7 + 2.00000 2.00000 2.00017 2.07760 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 8, nband= 11, wtk= 0.04688, kpt= 0.3750 0.1250 0.0625 (reduced coord) + -0.05348 0.02573 0.16336 0.27618 0.39206 0.46059 0.49020 0.55933 + 0.65229 0.74168 0.78595 + occupation numbers for kpt# 8 + 2.00000 2.00000 2.00000 1.05261 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 9, nband= 11, wtk= 0.02344, kpt= 0.2500 0.2500 0.0625 (reduced coord) + -0.06234 0.06969 0.11220 0.27253 0.40802 0.46069 0.54842 0.57174 + 0.62338 0.68865 0.73018 + occupation numbers for kpt# 9 + 2.00000 2.00000 2.00000 1.26730 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 10, nband= 11, wtk= 0.02344, kpt= 0.3750 0.2500 0.0625 (reduced coord) + -0.00897 0.01401 0.08983 0.31327 0.36163 0.50209 0.51967 0.56484 + 0.61897 0.70563 0.76335 + occupation numbers for kpt# 10 + 2.00000 2.00000 2.00000 0.00154 0.00051 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 11, nband= 11, wtk= 0.00391, kpt= 0.0000 0.0000 0.1875 (reduced coord) + -0.16911 0.10587 0.30179 0.30179 0.42903 0.51402 0.51402 0.57364 + 0.64406 0.73964 0.79936 + occupation numbers for kpt# 11 + 2.00000 2.00000 0.06567 0.06567 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 12, nband= 11, wtk= 0.02344, kpt= 0.1250 0.0000 0.1875 (reduced coord) + -0.15927 0.11594 0.25341 0.27884 0.43601 0.50648 0.55659 0.55924 + 0.63936 0.75974 0.76398 + occupation numbers for kpt# 12 + 2.00000 2.00000 2.05622 0.89765 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 13, nband= 11, wtk= 0.02344, kpt= 0.2500 0.0000 0.1875 (reduced coord) + -0.13000 0.14563 0.16237 0.24134 0.44569 0.47665 0.49574 0.65063 + 0.66918 0.71691 0.72608 + occupation numbers for kpt# 13 + 2.00000 2.00000 2.00000 2.14017 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 14, nband= 11, wtk= 0.02344, kpt= 0.3750 0.0000 0.1875 (reduced coord) + -0.08211 0.06888 0.19409 0.21434 0.37401 0.45357 0.51737 0.64047 + 0.68353 0.71178 0.77251 + occupation numbers for kpt# 14 + 2.00000 2.00000 2.00109 2.02000 0.00007 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 15, nband= 11, wtk= 0.01172, kpt= 0.5000 0.0000 0.1875 (reduced coord) + -0.02769 -0.00160 0.20471 0.23402 0.31869 0.44633 0.55291 0.60150 + 0.67505 0.70017 0.84897 + occupation numbers for kpt# 15 + 2.00000 2.00000 2.00574 2.10939 0.00040 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 16, nband= 11, wtk= 0.02344, kpt= 0.1250 0.1250 0.1875 (reduced coord) + -0.13971 0.13613 0.19922 0.23234 0.45369 0.49779 0.52719 0.57714 + 0.67670 0.68511 0.79003 + occupation numbers for kpt# 16 + 2.00000 2.00000 2.00252 2.09967 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 17, nband= 11, wtk= 0.04688, kpt= 0.2500 0.1250 0.1875 (reduced coord) + -0.10103 0.11727 0.17463 0.18963 0.41561 0.48636 0.52078 0.60911 + 0.64220 0.71058 0.81109 + occupation numbers for kpt# 17 + 2.00000 2.00000 2.00003 2.00050 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 18, nband= 11, wtk= 0.04688, kpt= 0.3750 0.1250 0.1875 (reduced coord) + -0.04526 0.03297 0.16805 0.22747 0.33790 0.49371 0.54156 0.57985 + 0.64150 0.76149 0.80147 + occupation numbers for kpt# 18 + 2.00000 2.00000 2.00001 2.07168 0.00478 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 19, nband= 11, wtk= 0.02344, kpt= 0.2500 0.2500 0.1875 (reduced coord) + -0.05416 0.07641 0.11709 0.22231 0.35760 0.51951 0.53567 0.60242 + 0.62143 0.70777 0.80050 + occupation numbers for kpt# 19 + 2.00000 2.00000 2.00000 2.04621 0.00087 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 20, nband= 11, wtk= 0.02344, kpt= 0.3750 0.2500 0.1875 (reduced coord) + -0.00151 0.02131 0.09557 0.26467 0.31029 0.50175 0.57118 0.57882 + 0.64724 0.74796 0.76760 + occupation numbers for kpt# 20 + 2.00000 2.00000 2.00000 1.68616 0.00693 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 21, nband= 11, wtk= 0.00391, kpt= 0.0000 0.0000 0.3125 (reduced coord) + -0.15200 0.04870 0.30870 0.30870 0.52086 0.52086 0.53144 0.57536 + 0.64163 0.74934 0.74940 + occupation numbers for kpt# 21 + 2.00000 2.00000 0.01214 0.01214 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 22, nband= 11, wtk= 0.02344, kpt= 0.1250 0.0000 0.3125 (reduced coord) + -0.14269 0.05926 0.26026 0.28445 0.50641 0.53051 0.54532 0.56254 + 0.65284 0.71008 0.72771 + occupation numbers for kpt# 22 + 2.00000 2.00000 1.86905 0.59532 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 23, nband= 11, wtk= 0.02344, kpt= 0.2500 0.0000 0.3125 (reduced coord) + -0.11410 0.09111 0.17062 0.24611 0.42500 0.49097 0.56965 0.65376 + 0.67077 0.67739 0.71153 + occupation numbers for kpt# 23 + 2.00000 2.00000 2.00001 2.13596 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 24, nband= 11, wtk= 0.02344, kpt= 0.3750 0.0000 0.3125 (reduced coord) + -0.06730 0.07964 0.14144 0.21888 0.32630 0.47215 0.60392 0.63679 + 0.64807 0.74468 0.77705 + occupation numbers for kpt# 24 + 2.00000 2.00000 2.00000 2.03296 0.00395 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 25, nband= 11, wtk= 0.01172, kpt= 0.5000 0.0000 0.3125 (reduced coord) + -0.01437 0.01101 0.18378 0.20951 0.26617 0.46516 0.62051 0.62768 + 0.64664 0.72989 0.85510 + occupation numbers for kpt# 25 + 2.00000 2.00000 2.00017 2.01103 1.61406 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 26, nband= 11, wtk= 0.02344, kpt= 0.1250 0.1250 0.3125 (reduced coord) + -0.12353 0.08069 0.20728 0.23833 0.45877 0.52627 0.56277 0.58586 + 0.62891 0.70956 0.76836 + occupation numbers for kpt# 26 + 2.00000 2.00000 2.00820 2.13099 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 27, nband= 11, wtk= 0.04688, kpt= 0.2500 0.1250 0.3125 (reduced coord) + -0.08589 0.12082 0.12852 0.19519 0.36974 0.52129 0.55600 0.60620 + 0.65773 0.74119 0.80028 + occupation numbers for kpt# 27 + 2.00000 2.00000 2.00000 2.00132 0.00015 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 28, nband= 11, wtk= 0.04688, kpt= 0.3750 0.1250 0.3125 (reduced coord) + -0.03149 0.04468 0.17305 0.17799 0.28691 0.50205 0.54105 0.64096 + 0.70528 0.75403 0.80664 + occupation numbers for kpt# 28 + 2.00000 2.00000 2.00002 2.00005 0.47952 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 29, nband= 11, wtk= 0.02344, kpt= 0.2500 0.2500 0.3125 (reduced coord) + -0.04011 0.08750 0.12536 0.17103 0.30948 0.47519 0.60578 0.64373 + 0.64923 0.75207 0.84901 + occupation numbers for kpt# 29 + 2.00000 2.00000 2.00000 2.00001 0.00935 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 30, nband= 11, wtk= 0.02344, kpt= 0.3750 0.2500 0.3125 (reduced coord) + 0.01131 0.03344 0.10488 0.21604 0.26114 0.44972 0.62022 0.66024 + 0.70007 0.77027 0.77538 + occupation numbers for kpt# 30 + 2.00000 2.00000 2.00000 2.02429 1.83644 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 31, nband= 11, wtk= 0.00391, kpt= 0.0000 0.0000 0.4375 (reduced coord) + -0.13568 0.01050 0.31276 0.31276 0.52402 0.52402 0.57669 0.62526 + 0.63722 0.72184 0.72184 + occupation numbers for kpt# 31 + 2.00000 2.00000 0.00212 0.00212 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 32, nband= 11, wtk= 0.02344, kpt= 0.1250 0.0000 0.4375 (reduced coord) + -0.12661 0.02189 0.26609 0.28847 0.50906 0.52093 0.56693 0.63321 + 0.66151 0.68340 0.70740 + occupation numbers for kpt# 32 + 2.00000 2.00000 1.61802 0.41257 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 33, nband= 11, wtk= 0.02344, kpt= 0.2500 0.0000 0.4375 (reduced coord) + -0.09916 0.05516 0.17806 0.24969 0.39980 0.50339 0.63582 0.63903 + 0.66491 0.67827 0.72474 + occupation numbers for kpt# 33 + 2.00000 2.00000 2.00005 2.11035 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 34, nband= 11, wtk= 0.02344, kpt= 0.3750 0.0000 0.4375 (reduced coord) + -0.05388 0.08894 0.10752 0.22198 0.29657 0.48771 0.60714 0.61177 + 0.71027 0.78166 0.79168 + occupation numbers for kpt# 34 + 2.00000 2.00000 2.00000 2.04481 0.15568 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 35, nband= 11, wtk= 0.01172, kpt= 0.5000 0.0000 0.4375 (reduced coord) + -0.00188 0.02207 0.15278 0.21228 0.23412 0.48226 0.59561 0.60255 + 0.73856 0.81208 0.86360 + occupation numbers for kpt# 35 + 2.00000 2.00000 2.00000 2.01564 2.10997 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 36, nband= 11, wtk= 0.02344, kpt= 0.1250 0.1250 0.4375 (reduced coord) + -0.10832 0.04416 0.21399 0.24254 0.43497 0.54114 0.59111 0.59145 + 0.65813 0.72320 0.75185 + occupation numbers for kpt# 36 + 2.00000 2.00000 2.01920 2.14166 0.00000 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 37, nband= 11, wtk= 0.04688, kpt= 0.2500 0.1250 0.4375 (reduced coord) + -0.07191 0.08733 0.13550 0.20033 0.34186 0.52407 0.54399 0.66511 + 0.69072 0.73985 0.81457 + occupation numbers for kpt# 37 + 2.00000 2.00000 2.00000 2.00300 0.00392 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 38, nband= 11, wtk= 0.04688, kpt= 0.3750 0.1250 0.4375 (reduced coord) + -0.01897 0.05494 0.14419 0.18009 0.25611 0.49450 0.53410 0.71439 + 0.73541 0.76680 0.83425 + occupation numbers for kpt# 38 + 2.00000 2.00000 2.00000 2.00008 1.99684 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 39, nband= 11, wtk= 0.02344, kpt= 0.2500 0.2500 0.4375 (reduced coord) + -0.02747 0.09722 0.13194 0.13838 0.28050 0.44744 0.62294 0.66067 + 0.72842 0.78987 0.84238 + occupation numbers for kpt# 39 + 2.00000 2.00000 2.00000 2.00000 0.80404 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + kpt# 40, nband= 11, wtk= 0.02344, kpt= 0.3750 0.2500 0.4375 (reduced coord) + 0.02292 0.04404 0.11246 0.18470 0.23012 0.42026 0.63374 0.73764 + 0.74935 0.77785 0.78430 + occupation numbers for kpt# 40 + 2.00000 2.00000 2.00000 2.00020 2.08668 0.00000 0.00000 0.00000 + 0.00000 0.00000 0.00000 + Total charge density [el/Bohr^3] +, Maximum= 1.3269E-01 at reduced coord. 0.4444 0.8889 0.5000 +,Next maximum= 1.3269E-01 at reduced coord. 0.4444 0.5556 0.5000 +, Minimum= 1.0465E-03 at reduced coord. 0.0000 0.0000 0.0000 +,Next minimum= 1.4272E-03 at reduced coord. 0.0556 0.0000 0.0000 +, Integrated= 8.0000E+00 + +-------------------------------------------------------------------------------- + Components of total free energy (in Hartree) : + + Kinetic energy = 4.24275448587195E+00 + Hartree energy = 9.34456181620709E-01 + XC energy = -3.36592933277798E+00 + Ewald energy = -7.19741165777062E+00 + PspCore energy = -1.43514648985679E-02 + Loc. psp. energy= -2.64679664282801E+00 + NL psp energy= 8.98859156747168E-01 + >>>>> Internal E= -7.14841927403536E+00 + + -kT*entropy = 7.95117169628319E-04 + >>>>>>>>> Etotal= -7.14762415686573E+00 + + Other information on the energy : + Total energy(eV)= -1.94496744619482E+02 ; Band energy (Ha)= 7.8511189885E-01 +-------------------------------------------------------------------------------- + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= 6.19525691E-04 sigma(3 2)= 0.00000000E+00 + sigma(2 2)= 6.19525691E-04 sigma(3 1)= 0.00000000E+00 + sigma(3 3)= 5.35534283E-04 sigma(2 1)= 0.00000000E+00 + +-Cartesian components of stress tensor (GPa) [Pressure= -1.7403E+01 GPa] +- sigma(1 1)= 1.82270721E+01 sigma(3 2)= 0.00000000E+00 +- sigma(2 2)= 1.82270721E+01 sigma(3 1)= 0.00000000E+00 +- sigma(3 3)= 1.57559599E+01 sigma(2 1)= 0.00000000E+00 + +== END DATASET(S) ============================================================== +================================================================================ + + -outvars: echo values of variables after computation -------- + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.43050000E+01 1.08110000E+01 + ecut 1.00000000E+01 Hartree + etotal -7.1476241569E+00 + fcart 1.2440289821E-28 9.2345202991E-29 -0.0000000000E+00 + -3.0212132423E-28 2.7703560897E-28 -0.0000000000E+00 + 1.7771842601E-28 -3.6938081196E-28 -0.0000000000E+00 +- fftalg 312 + fft_opt_lob 2 + iprcch 6 + kpt 0.00000000E+00 0.00000000E+00 6.25000000E-02 + 1.25000000E-01 0.00000000E+00 6.25000000E-02 + 2.50000000E-01 0.00000000E+00 6.25000000E-02 + 3.75000000E-01 0.00000000E+00 6.25000000E-02 + 5.00000000E-01 0.00000000E+00 6.25000000E-02 + 1.25000000E-01 1.25000000E-01 6.25000000E-02 + 2.50000000E-01 1.25000000E-01 6.25000000E-02 + 3.75000000E-01 1.25000000E-01 6.25000000E-02 + 2.50000000E-01 2.50000000E-01 6.25000000E-02 + 3.75000000E-01 2.50000000E-01 6.25000000E-02 + 0.00000000E+00 0.00000000E+00 1.87500000E-01 + 1.25000000E-01 0.00000000E+00 1.87500000E-01 + 2.50000000E-01 0.00000000E+00 1.87500000E-01 + 3.75000000E-01 0.00000000E+00 1.87500000E-01 + 5.00000000E-01 0.00000000E+00 1.87500000E-01 + 1.25000000E-01 1.25000000E-01 1.87500000E-01 + 2.50000000E-01 1.25000000E-01 1.87500000E-01 + 3.75000000E-01 1.25000000E-01 1.87500000E-01 + 2.50000000E-01 2.50000000E-01 1.87500000E-01 + 3.75000000E-01 2.50000000E-01 1.87500000E-01 + 0.00000000E+00 0.00000000E+00 3.12500000E-01 + 1.25000000E-01 0.00000000E+00 3.12500000E-01 + 2.50000000E-01 0.00000000E+00 3.12500000E-01 + 3.75000000E-01 0.00000000E+00 3.12500000E-01 + 5.00000000E-01 0.00000000E+00 3.12500000E-01 + 1.25000000E-01 1.25000000E-01 3.12500000E-01 + 2.50000000E-01 1.25000000E-01 3.12500000E-01 + 3.75000000E-01 1.25000000E-01 3.12500000E-01 + 2.50000000E-01 2.50000000E-01 3.12500000E-01 + 3.75000000E-01 2.50000000E-01 3.12500000E-01 + 0.00000000E+00 0.00000000E+00 4.37500000E-01 + 1.25000000E-01 0.00000000E+00 4.37500000E-01 + 2.50000000E-01 0.00000000E+00 4.37500000E-01 + 3.75000000E-01 0.00000000E+00 4.37500000E-01 + 5.00000000E-01 0.00000000E+00 4.37500000E-01 + 1.25000000E-01 1.25000000E-01 4.37500000E-01 + 2.50000000E-01 1.25000000E-01 4.37500000E-01 + 3.75000000E-01 1.25000000E-01 4.37500000E-01 + 2.50000000E-01 2.50000000E-01 4.37500000E-01 + 3.75000000E-01 2.50000000E-01 4.37500000E-01 + kptrlatt 8 0 0 0 8 0 0 0 8 + kptrlen 4.66535588E+01 +P mkmem 20 + natom 3 + nband 11 + ngfft 18 18 20 + nkpt 40 +- npkpt 2 + nsym 24 + ntypat 2 + occ 2.000000 2.000001 0.115849 0.115849 0.002018 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000010 2.122178 1.113972 0.000724 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.002863 2.130470 0.000009 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.013297 2.139881 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.003459 0.832301 0.000044 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000528 2.001107 2.073641 0.000031 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000166 2.077600 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000002 1.052608 0.000002 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 1.267300 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 0.001542 0.000509 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 0.065673 0.065673 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.056217 0.897651 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000001 2.140175 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.001094 2.019999 0.000072 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.005740 2.109392 0.000401 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.002523 2.099674 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000025 2.000502 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000006 2.071679 0.004777 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.046212 0.000868 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 1.686160 0.006933 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 0.012141 0.012141 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 1.869050 0.595320 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000010 2.135959 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.032965 0.003951 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000167 2.011027 1.614064 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.008201 2.130994 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.001317 0.000149 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000018 2.000052 0.479518 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000011 0.009351 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.024287 1.836439 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 0.002121 0.002121 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 1.618024 0.412567 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000053 2.110351 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.044807 0.155682 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.015639 2.109965 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.019203 2.141665 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.002998 0.003921 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000080 1.996841 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.804041 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000200 2.086681 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + occopt 4 + ortalg -2 + paral_kgb 1 + rprim 5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + -5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 6.6575051698E+00 + shiftk 0.00000000E+00 0.00000000E+00 5.00000000E-01 + spgroup 191 + strten 6.1952569136E-04 6.1952569137E-04 5.3553428305E-04 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 -1 -1 0 0 1 0 0 0 -1 + timopt -1 + tolvrs 1.00000000E-06 + tsmear 3.00000000E-02 Hartree + typat 1 2 2 + wfoptalg 14 + wtk 0.00391 0.02344 0.02344 0.02344 0.01172 0.02344 + 0.04688 0.04688 0.02344 0.02344 0.00391 0.02344 + 0.02344 0.02344 0.01172 0.02344 0.04688 0.04688 + 0.02344 0.02344 0.00391 0.02344 0.02344 0.02344 + 0.01172 0.02344 0.04688 0.04688 0.02344 0.02344 + 0.00391 0.02344 0.02344 0.02344 0.01172 0.02344 + 0.04688 0.04688 0.02344 0.02344 + xangst 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -8.9085146585E-01 1.5430000008E+00 1.7615000010E+00 + 8.9085146585E-01 1.5430000008E+00 1.7615000010E+00 + xcart 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -1.6834652955E+00 2.9158474246E+00 3.3287525849E+00 + 1.6834652955E+00 2.9158474246E+00 3.3287525849E+00 + xred 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 3.3333333333E-01 6.6666666667E-01 5.0000000000E-01 + 6.6666666667E-01 3.3333333333E-01 5.0000000000E-01 + znucl 12.00000 5.00000 + +================================================================================ + + Test the timer : + a combined call timab(*,1,tsec) + timab(*,2,tsec) is +- CPU time = 1.4721E-06 sec, Wall time = 1.4733E-06 sec + +- Total cpu time (s,m,h): 10.2 0.17 0.003 +- Total wall clock time (s,m,h): 10.3 0.17 0.003 +- +- For major independent code sections, cpu and wall times (sec), +- as well as % of the time and number of calls for node 0- +- +- cpu_time = 5.1, wall_time = 5.2 +- +- routine cpu % wall % number of calls Gflops +- (-1=no count) +- fourwf%(pot) 2.204 21.6 2.212 21.5 8689 -1.00 +- nonlop(apply) 0.279 2.7 0.282 2.7 8689 -1.00 +- pspini 0.250 2.5 0.251 2.4 1 -1.00 +- invars2 0.150 1.5 0.150 1.5 1 -1.00 +- timing timab 0.127 1.2 0.127 1.2 12 -1.00 +- mkrho/= 0.097 1.0 0.097 0.9 12 -1.00 +- getghc-other 0.056 0.5 0.046 0.4 -1 -1.00 +- abinit(2) 0.048 0.5 0.048 0.5 1 -1.00 +- vtowfk(ssdiag) 0.024 0.2 0.024 0.2 -1 -1.00 +- ewald 0.010 0.1 0.010 0.1 1 -1.00 +- stress 0.009 0.1 0.009 0.1 1 -1.00 +- fourdp 0.008 0.1 0.008 0.1 32 -1.00 +- mkcore 0.008 0.1 0.008 0.1 3 -1.00 +- ewald2 (+vdw_dftd2) 0.005 0.0 0.005 0.0 1 -1.00 +- forces 0.004 0.0 0.004 0.0 1 -1.00 +- xc:pot/=fourdp 0.004 0.0 0.004 0.0 7 -1.00 +- newkpt(excl. rwwf ) 0.003 0.0 0.003 0.0 -1 -1.00 +- prep_bandfft_tabs 0.003 0.0 0.003 0.0 114 -1.00 +- vtorho(MPI) 0.003 0.0 0.003 0.0 6 -1.00 +- vtowfk(contrib) 0.003 0.0 0.003 0.0 120 -1.00 +- symrhg(no FFT) 0.002 0.0 0.002 0.0 6 -1.00 +- setsym 0.001 0.0 0.001 0.0 1 -1.00 +- kpgsph 0.001 0.0 0.001 0.0 60 -1.00 +- vtowfk (1) 0.000 0.0 0.000 0.0 120 -1.00 +- scfcv-scprqt 0.000 0.0 0.000 0.0 6 -1.00 +- status 0.000 0.0 0.000 0.0 27 -1.00 +- inwffil(excl. calls) 0.000 0.0 0.000 0.0 1 -1.00 +- vtowfk3(contrib) 0.000 0.0 0.000 0.0 -1 -1.00 +- cgwf3-O(npw) 0.000 0.0 0.000 0.0 -1 -1.00 +- others (83) 0.000 0.0 0.000 0.0 -1 -1.00 +- +- +- subtotal 3.299 32.3 3.302 32.1 + +- For major independent code sections, cpu and wall times (sec), +- as well as % of the total time and number of calls + +- +- cpu_time = 10.2, wall_time = 10.3 +- +- routine cpu % wall % number of calls Gflops +- (-1=no count) +- fourwf%(pot) 4.395 43.0 4.411 42.8 17393 -1.00 +- nonlop(apply) 0.553 5.4 0.559 5.4 17393 -1.00 +- pspini 0.500 4.9 0.500 4.9 2 -1.00 +- invars2 0.302 3.0 0.302 2.9 2 -1.00 +- timing timab 0.253 2.5 0.253 2.5 24 -1.00 +- mkrho/= 0.197 1.9 0.197 1.9 24 -1.00 +- getghc-other 0.111 1.1 0.092 0.9 -2 -1.00 +- abinit(2) 0.091 0.9 0.091 0.9 2 -1.00 +- vtowfk(ssdiag) 0.047 0.5 0.047 0.5 -2 -1.00 +- vtorho(MPI) 0.031 0.3 0.031 0.3 12 -1.00 +- ewald 0.020 0.2 0.020 0.2 2 -1.00 +- stress 0.018 0.2 0.018 0.2 2 -1.00 +- fourdp 0.017 0.2 0.017 0.2 64 -1.00 +- mkcore 0.016 0.2 0.016 0.2 6 -1.00 +- ewald2 (+vdw_dftd2) 0.010 0.1 0.010 0.1 2 -1.00 +- newkpt(excl. rwwf ) 0.008 0.1 0.008 0.1 -2 -1.00 +- forces 0.007 0.1 0.007 0.1 2 -1.00 +- xc:pot/=fourdp 0.007 0.1 0.007 0.1 14 -1.00 +- prep_bandfft_tabs 0.006 0.1 0.006 0.1 227 -1.00 +- vtowfk(contrib) 0.005 0.1 0.005 0.1 240 -1.00 +- symrhg(no FFT) 0.004 0.0 0.004 0.0 12 -1.00 +- setsym 0.002 0.0 0.002 0.0 2 -1.00 +- kpgsph 0.001 0.0 0.001 0.0 120 -1.00 +- scfcv-scprqt 0.001 0.0 0.001 0.0 12 -1.00 +- vtowfk (1) 0.001 0.0 0.001 0.0 240 -1.00 +- status 0.001 0.0 0.001 0.0 54 -1.00 +- inwffil(excl. calls) 0.000 0.0 0.000 0.0 2 -1.00 +- vtowfk3(contrib) 0.000 0.0 0.000 0.0 -2 -1.00 +- cgwf3-O(npw) 0.000 0.0 0.000 0.0 -2 -1.00 +- others (83) 0.000 0.0 0.000 0.0 -1 -1.00 +- + +- subtotal 6.604 64.7 6.608 64.2 + + Partitioning of abinit +- abinit 10.212 100.0 10.296 100.0 2 + +- abinit(1) 0.035 0.3 0.035 0.3 2 +- abinit(2) 0.091 0.9 0.091 0.9 2 +- indefo+macroin+invars2m 0.303 3.0 0.303 2.9 2 +- abinit(4) 0.035 0.3 0.036 0.3 2 +- abinit(5) 0.032 0.3 0.032 0.3 2 +- driver 9.456 92.6 9.522 92.5 2 +- abinit(6) 0.007 0.1 0.023 0.2 2 +- timing timab 0.253 2.5 0.253 2.5 24 + +- subtotal 10.212 100.0 10.296 100.0 + + Partitioning of driver +- driver 9.456 92.6 9.522 92.5 2 + +- gstateimg 9.452 92.6 9.519 92.5 2 +- driver(aft. select case) 0.003 0.0 0.003 0.0 2 + +- subtotal 9.456 92.6 9.522 92.5 + + Partitioning of gstateimg+gstate +- gstateimg 9.452 92.6 9.519 92.5 2 + +- gstate->kpgsph 0.013 0.1 0.013 0.1 4 +- gstate(pspini) 0.500 4.9 0.500 4.9 2 +- gstate (2) 0.004 0.0 0.004 0.0 2 +- gstate(...scfcv) 8.760 85.8 8.764 85.1 2 +- gstate (3) 0.176 1.7 0.238 2.3 2 + +- subtotal 9.452 92.6 9.519 92.5 + + Partitioning of scfcv +- scfcv 8.760 85.8 8.764 85.1 2 + +- scfcv(iniloop, setvtr ) 0.028 0.3 0.028 0.3 12 +- scfcv(vtorho(f)) 8.654 84.7 8.657 84.1 12 +- scfcv(rhotov) 0.010 0.1 0.010 0.1 12 +- scfcv(mix pot) 0.009 0.1 0.009 0.1 10 +- scfcv(afterscfloop) 0.051 0.5 0.051 0.5 2 +- scfcv(outscfcv) 0.006 0.1 0.006 0.1 2 + +- subtotal 8.760 85.8 8.764 85.1 + + Partitioning of rhotov +- rhotov 0.010 0.1 0.010 0.1 12 + +- rhotov(rhohxc) 0.009 0.1 0.009 0.1 12 + +- subtotal 0.010 0.1 0.010 0.1 + + Partitioning of vtorho +- vtorho 8.654 84.7 8.657 84.1 12 + +- vtorho(bef. vtowfk) 0.006 0.1 0.006 0.1 240 +- vtowfk 7.819 76.6 7.822 76.0 240 +- vtorho(MPI) 0.031 0.3 0.031 0.3 12 +- vtorho(newocc) 0.586 5.7 0.586 5.7 12 +- vtorho(mkrho 1) 0.207 2.0 0.207 2.0 12 + +- subtotal 8.654 84.7 8.657 84.1 + + Partitioning of vtowfk +- vtowfk 7.819 76.6 7.822 76.0 240 + +- lobpcgwf 7.766 76.0 7.769 75.5 320 +- vtowfk(subdiago) 0.044 0.4 0.044 0.4 320 +- vtowfk(2) 0.003 0.0 0.003 0.0 -2 +- vtowfk(3) 0.003 0.0 0.003 0.0 -2 + +- subtotal 7.819 76.6 7.822 76.0 + + Partitioning of getghc +- getghc 5.059 49.5 5.062 49.2 17393 + +- fourwf%getghc 4.395 43.0 4.411 42.8 17393 +- nonlop%getghc 0.553 5.4 0.559 5.4 17393 +- getghc-other 0.111 1.1 0.092 0.9 -2 + +- subtotal 5.059 49.5 5.062 49.2 + + Partitioning of fourwf (upwards partitioning) +- fourwf 4.558 44.6 4.575 44.4 18509 + +- fourwf%getghc 4.395 43.0 4.411 42.8 17393 +- fourwf%prep_four 0.163 1.6 0.164 1.6 1116 + +- subtotal 4.558 44.6 4.575 44.4 + + Partitioning of prep_getghc +- prep_getghc 5.479 53.7 5.482 53.2 17393 + +- prep_getghc(before if) 0.207 2.0 0.207 2.0 17393 +- prep_getghc(alltoall) 0.142 1.4 0.145 1.4 34786 +- prep_getghc(getghc - 1 ) 5.101 49.9 5.100 49.5 17393 +- (other) 0.030 0.3 0.029 0.3 -1 + +- subtotal 5.479 53.7 5.482 53.2 + + Partitioning of prep_fourwf +- prep_fourwf 0.179 1.8 0.179 1.7 2640 + +- fourwf%prep_four 0.163 1.6 0.164 1.6 1116 +- alltoall%prep_fo 0.007 0.1 0.007 0.1 2640 + +- subtotal 0.170 1.7 0.171 1.7 + + Partitioning of prep_nonlop +- prep_nonlop 0.014 0.1 0.014 0.1 187 + +- nonlop%prep_nonl%forstrn 0.012 0.1 0.013 0.1 187 + +- subtotal 0.014 0.1 0.014 0.1 + + Partitioning of mkrho (upwards partitioning) +- mkrho 0.207 2.0 0.207 2.0 12 + +- mkrho%vtorho 0.207 2.0 0.207 2.0 12 + +- subtotal 0.207 2.0 0.207 2.0 + + Partitioning of inwffil +- inwffil 0.009 0.1 0.009 0.1 2 + +- inwffil(call newkpt) 0.009 0.1 0.009 0.1 2 + +- subtotal 0.009 0.1 0.009 0.1 + + Partitioning of newkpt +- newkpt 0.009 0.1 0.009 0.1 2 + +- newkpt(call wfconv) 0.006 0.1 0.006 0.1 40 + +- subtotal 0.008 0.1 0.008 0.1 + + Partitioning of newvtr +- newvtr 0.009 0.1 0.009 0.1 10 + +- newvtr(call prcref_PMA) 0.005 0.0 0.005 0.0 10 +- newvtr(aft. prcref_PMA) 0.003 0.0 0.003 0.0 10 + +- subtotal 0.009 0.1 0.009 0.1 + + Partitioning of fourdp (upwards partitioning) +- fourdp 0.017 0.2 0.017 0.2 64 + +- fourdp%(other) 0.017 0.2 0.017 0.2 64 + +- subtotal 0.017 0.2 0.017 0.2 + + Partitioning of afterscfloop +- afterscfloop 0.051 0.5 0.051 0.5 2 + +- afterscfloop(forstr) 0.050 0.5 0.050 0.5 2 + +- subtotal 0.051 0.5 0.051 0.5 + + Partitioning of forstr +- forstr 0.050 0.5 0.050 0.5 2 + +- forstr(forstrnps) 0.025 0.2 0.025 0.2 2 +- forstr(forces) 0.007 0.1 0.007 0.1 2 +- forstr(stress) 0.018 0.2 0.018 0.2 2 + +- subtotal 0.050 0.5 0.050 0.5 + + Partitioning of forstrnps +- forstrnps 0.025 0.2 0.025 0.2 2 + +- forstrnps(bef.loop band) 0.003 0.0 0.003 0.0 40 +- forstrnps(nonlop+prep_ba 0.020 0.2 0.020 0.2 187 + +- subtotal 0.025 0.2 0.025 0.2 + + Partitioning of outscfcv +- outscfcv 0.005 0.1 0.006 0.1 2 + + +- subtotal 0.001 0.0 0.002 0.0 +- +-Synchronisation (=leave_test) and MPI calls +- communic.MPI 0.042 0.4 0.042 0.4 66 +- +- forstrnps:synchr 0.000 0.0 0.000 0.0 4 +- mkrho :MPIrhor 0.008 0.1 0.008 0.1 12 +- +- subtotal 0.008 0.1 0.008 0.1 + + Additional information +- timana(1) 0.000 0.0 0.000 0.0 2 +- total timab 1.733 17.0 1.734 16.8 1184946 +- fourwf 4.558 44.6 4.575 44.4 18509 +- mklocl(2) 0.001 0.0 0.001 0.0 2 +- status 0.001 0.0 0.001 0.0 54 +- newocc 0.586 5.7 0.586 5.7 12 +- nonlop(total) 0.565 5.5 0.571 5.6 17580 + + + Detailed analysis of some time consuming routines + tcpu ncalls tcpu/ncalls ndata tcpu/ncalls/ndata + (sec) (msec) (microsec) +- fourwf%(pot) 4.395 17393 0.253 12960 0.019 +- fourwf%(den) 0.000 0 +- fourdp 0.017 64 0.262 6480 0.041 +- nonlop(apply) 0.553 17393 0.032 885 0.036 +- nonlop(forces) 0.000 0 +- nonlop(forstr) 0.000 0 +- projbd 0.000 0 +- xc:pot/=fourdp 0.007 14 0.512 6480 0.079 + +================================================================================ + + Suggested references for the acknowledgment of ABINIT usage. + + The users of ABINIT have little formal obligations with respect to the ABINIT group + (those specified in the GNU General Public License, http://www.gnu.org/copyleft/gpl.txt). + However, it is common practice in the scientific literature, + to acknowledge the efforts of people that have made the research possible. + In this spirit, please find below suggested citations of work written by ABINIT developers, + corresponding to implementations inside of ABINIT that you have used in the present run. + Note also that it will be of great value to readers of publications presenting these results, + to read papers enabling them to understand the theoretical formalism and details + of the ABINIT implementation. + For information on why they are suggested, see also http://www.abinit.org/about/?text=acknowledgments. + + [1] Large scale ab initio calculations based on three levels of parallelization + F. Bottin, S. Leroux, A. Knyazev, G. Zerah, Comput. Mat. Science 42, 329, (2008). + Comment : in case paral_kgb is non-zero. Strong suggestion to cite this paper in your publications. + This paper is also available at http://www.arxiv.org/abs/0707.3405 + + [2] ABINIT : First-principles approach of materials and nanosystem properties. + X. Gonze, B. Amadon, P.-M. Anglade, J.-M. Beuken, F. Bottin, P. Boulanger, F. Bruneval, + D. Caliste, R. Caracas, M. Cote, T. Deutsch, L. Genovese, Ph. Ghosez, M. Giantomassi + S. Goedecker, D.R. Hamann, P. Hermet, F. Jollet, G. Jomard, S. Leroux, M. Mancini, S. Mazevet, + M.J.T. Oliveira, G. Onida, Y. Pouillon, T. Rangel, G.-M. Rignanese, D. Sangalli, R. Shaltaf, + M. Torrent, M.J. Verstraete, G. Zerah, J.W. Zwanziger + Computer Phys. Comm. 180, 2582-2615 (2009). + Comment : the third generic paper describing the ABINIT project. + Note that a version of this paper, that is not formatted for Computer Phys. Comm. + is available at http://www.abinit.org/about/ABINIT_CPC_v10.pdf . + The licence allows the authors to put it on the Web. + + [3] A brief introduction to the ABINIT software package. + X. Gonze, G.-M. Rignanese, M. Verstraete, J.-M. Beuken, Y. Pouillon, R. Caracas, F. Jollet, + M. Torrent, G. Zerah, M. Mikami, Ph. Ghosez, M. Veithen, J.-Y. Raty, V. Olevano, F. Bruneval, + L. Reining, R. Godby, G. Onida, D.R. Hamann, and D.C. Allan. + Z. Kristallogr. 220, 558-562 (2005). + Comment : the second generic paper describing the ABINIT project. Note that this paper + should be cited especially if you are using the GW part of ABINIT, as several authors + of this part are not in the list of authors of the first or third paper. + The .pdf of the latter paper is available at http://www.abinit.org/about/zfk_0505-06_558-562.pdf. + Note that it should not redistributed (Copyright by Oldenburg Wissenshaftverlag, + the licence allows the authors to put it on the Web). + + + And optionally : + + [4] First-principles computation of material properties : the ABINIT software project. + X. Gonze, J.-M. Beuken, R. Caracas, F. Detraux, M. Fuchs, G.-M. Rignanese, L. Sindic, + M. Verstraete, G. Zerah, F. Jollet, M. Torrent, A. Roy, M. Mikami, Ph. Ghosez, J.-Y. Raty, D.C. Allan. + Computational Materials Science 25, 478-492 (2002). http://dx.doi.org/10.1016/S0927-0256(02)00325-7 + Comment : the original paper describing the ABINIT project. + + [5] Fast radix 2, 3, 4 and 5 kernels for Fast Fourier Transformations + on computers with overlapping multiply-add instructions. + S. Goedecker, SIAM J. on Scientific Computing 18, 1605 (1997). +- +- Proc. 0 individual time (sec): cpu= 5.1 wall= 5.2 + +================================================================================ + + Calculation completed. +.Delivered 0 WARNINGs and 0 COMMENTs to log file. ++Overall time at end (sec) : cpu= 10.2 wall= 10.3 diff --git a/abipy/data/refs/text_files/mgb2_scf.log b/abipy/data/refs/text_files/mgb2_scf.log new file mode 100644 index 000000000..14b545f84 --- /dev/null +++ b/abipy/data/refs/text_files/mgb2_scf.log @@ -0,0 +1,1173 @@ + ABINIT + + Give name for formatted input file: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/run.abi + Give name for formatted output file: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/run.abo + Give root name for generic input files: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/indata/in + Give root name for generic output files: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out + Give root name for generic temporary files: +/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/tmpdata/tmp + +.Version 7.11.5 of ABINIT +.(MPI version, prepared for a x86_64_darwin10.8.0_gnu4.7 computer) + +.Copyright (C) 1998-2015 ABINIT group . + ABINIT comes with ABSOLUTELY NO WARRANTY. + It is free software, and you are welcome to redistribute it + under certain conditions (GNU General Public License, + see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). + + ABINIT is a project of the Universite Catholique de Louvain, + Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt . + Please read ~abinit/doc/users/acknowledgments.html for suggested + acknowledgments of the ABINIT effort. + For more information, see http://www.abinit.org . + +.Starting date : Fri 13 Mar 2015. +- ( at 20h08 ) + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + === Build Information === + Version : 7.11.5 + Build target : x86_64_darwin10.8.0_gnu4.7 + Build date : 20150309 + + === Compiler Suite === + C compiler : gnu4.7 + C++ compiler : gnu4.7 + Fortran compiler : gnu4.7 + CFLAGS : -g -O2 -mtune=native -march=native + CXXFLAGS : -g -O2 -mtune=native -march=native + FCFLAGS : -g -ffree-line-length-none + FC_LDFLAGS : + + === Optimizations === + Debug level : basic + Optimization level : standard + Architecture : unknown_unknown + + === Multicore === + Parallel build : yes + Parallel I/O : yes + openMP support : no + GPU support : no + + === Connectors / Fallbacks === + Connectors on : yes + Fallbacks on : yes + DFT flavor : libxc-fallback + FFT flavor : fftw3 + LINALG flavor : netlib-fallback + MATH flavor : none + TIMER flavor : abinit + TRIO flavor : netcdf-fallback+etsf_io-fallback + + === Experimental features === + Bindings : @enable_bindings@ + Exports : no + GW double-precision : yes + + === Bazaar branch information === + Branch ID : gmatteo@cenaero-20150309121815-5lbj8ihq15ffcsbb + Revision : 939 + Committed : 0 + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Default optimizations: + -O2 -mtune=native -march=native + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + CPP options activated during the build: + + CC_GNU CXX_GNU HAVE_BZR_BRANCH + + HAVE_CLIB HAVE_DFT_LIBXC HAVE_FC_ALLOCATABLE_DT... + + HAVE_FC_ASYNC HAVE_FC_COMMAND_ARGUMENT HAVE_FC_COMMAND_LINE + + HAVE_FC_CONTIGUOUS HAVE_FC_CPUTIME HAVE_FC_EXIT + + HAVE_FC_FLUSH HAVE_FC_GAMMA HAVE_FC_GETENV + + HAVE_FC_INT_QUAD HAVE_FC_IOMSG HAVE_FC_ISO_C_BINDING + + HAVE_FC_LONG_LINES HAVE_FC_MOVE_ALLOC HAVE_FC_PRIVATE + + HAVE_FC_PROTECTED HAVE_FC_STREAM_IO HAVE_FC_SYSTEM + + HAVE_FFT HAVE_FFT_FFTW3 HAVE_FFT_MPI + + HAVE_FFT_SERIAL HAVE_GW_DPC HAVE_LIBPAW_ABINIT + + HAVE_LINALG_ZDOTC_B*G HAVE_LINALG_ZDOTU_B*G HAVE_MPI + + HAVE_MPI2 HAVE_MPI_IALLREDUCE HAVE_MPI_IALLTOALL + + HAVE_MPI_IALLTOALLV HAVE_MPI_IO HAVE_MPI_TYPE_CREATE_S... + + HAVE_NUMPY HAVE_TIMER HAVE_TIMER_ABINIT + + HAVE_TIMER_MPI HAVE_TIMER_SERIAL HAVE_TRIO_ETSF_IO + + HAVE_TRIO_NETCDF USE_MACROAVE + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +- input file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/run.abi +- output file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/run.abo +- root for input files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/indata/in +- root for output files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out + +-instrng : 60 lines of input have been read from file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/run.abi + + + iofn2 : Please give name of formatted atomic psp file + iofn2 : for atom type 1 , psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc + + iofn2 : Please give name of formatted atomic psp file + iofn2 : for atom type 2 , psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc + read the values zionpsp= 2.0 , pspcod= 1 , lmax= 2 +nproj = 1 1 0 0 +nprojso = 0 0 0 + read the values zionpsp= 3.0 , pspcod= 1 , lmax= 1 +nproj = 1 0 0 0 +nprojso = 0 0 0 + + inpspheads: deduce mpsang = 3, n1xccc =2501. + + invars1m : enter jdtset=0 + invars1 : treat image number 1 + + symlatt : the Bravais lattice is hP (primitive hexagonal) + xred is defined in input file + ingeo : takes atomic coordinates from input array xred + + symlatt : the Bravais lattice is hP (primitive hexagonal) + + symlatt : the Bravais lattice is hP (primitive hexagonal) + symspgr : spgroup= 191 P6/m m m (=D6h^1) + Simple Lattice Grid + Simple Lattice Grid + dtset%nelect= 8.0000000000000000 + chkneu : initialized the occupation numbers for occopt= 4 + spin-unpolarized case : + 2.00 2.00 2.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 +npfft, npband, npspinor and npkpt: 1 1 1 2 +mpi_setup: mkmem undefined in the input file.Use default mkmem = nkpt + mpi_setup: With nkpt_me=20 and mkmem = 40, ground state wf handled in core. + Resetting mkmem to nkpt_me to save memory space. +mpi_setup: mkqmem undefined in the input file.Use default mkqmem = nkpt + mpi_setup: With nkpt_me=20 and mkqmem = 40, ground state wf handled in core. + Resetting mkqmem to nkpt_me to save memory space. +mpi_setup: mk1mem undefined in the input file.Use default mk1mem = nkpt + mpi_setup: With nkpt_me=20 and mk1mem = 40, ground state wf handled in core. + Resetting mk1mem to nkpt_me to save memory space. + For input ecut= 1.000000E+01 best grid ngfft= 18 18 20 + max ecut= 1.113388E+01 + + ==== FFT mesh ==== + FFT mesh divisions ........................ 18 18 20 + Augmented FFT divisions ................... 19 19 20 + FFT algorithm ............................. 312 + FFT cache size ............................ 16 + getmpw: optimal value of mpw= 308 + + Symmetries : space group P6/m m m (#191); Bravais hP (primitive hexag.) + + getdim_nloc : deduce lmnmax = 4, lnmax = 2, + lmnmaxso= 4, lnmaxso= 2. +memory : analysis of memory needs +================================================================================ + Values of the parameters that define the memory need of the present run + intxc = 0 ionmov = 0 iscf = 7 xclevel = 1 + lmnmax = 2 lnmax = 2 mband = 11 mffmem = 1 +P mgfft = 20 mkmem = 20 mpssoang= 3 mpw = 308 + mqgrid = 3001 natom = 3 nfft = 6480 nkpt = 40 + nloalg = 4 nspden = 1 nspinor = 1 nsppol = 1 + nsym = 24 n1xccc = 2501 ntypat = 2 occopt = 4 +================================================================================ +P This job should need less than 4.818 Mbytes of memory. + Rough estimation (10% accuracy) of disk space for files : +_ WF disk file : 2.070 Mbytes ; DEN or POT disk file : 0.051 Mbytes. +================================================================================ + + Biggest array : cg(disk), with 1.0359 MBytes. + memana : allocated an array of 1.036 Mbytes, for testing purposes. + memana : allocated 4.818 Mbytes, for testing purposes. + The job will continue. +-------------------------------------------------------------------------------- +------------- Echo of variables that govern the present computation ------------ +-------------------------------------------------------------------------------- +- +- outvars: echo of selected default values +- accesswff0 = 0 , fftalg0 =312 , wfoptalg0 = 0 +- +- outvars: echo of global parameters not present in the input file +- max_nthreads = 0 +- + -outvars: echo values of preprocessed input variables -------- + + These variables are accessible in NetCDF format (/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out_OUT.nc) + + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.43050000E+01 1.08110000E+01 + ecut 1.00000000E+01 Hartree +- fftalg 312 + fft_opt_lob 2 + iprcch 6 + kpt 0.00000000E+00 0.00000000E+00 6.25000000E-02 + 1.25000000E-01 0.00000000E+00 6.25000000E-02 + 2.50000000E-01 0.00000000E+00 6.25000000E-02 + 3.75000000E-01 0.00000000E+00 6.25000000E-02 + 5.00000000E-01 0.00000000E+00 6.25000000E-02 + 1.25000000E-01 1.25000000E-01 6.25000000E-02 + 2.50000000E-01 1.25000000E-01 6.25000000E-02 + 3.75000000E-01 1.25000000E-01 6.25000000E-02 + 2.50000000E-01 2.50000000E-01 6.25000000E-02 + 3.75000000E-01 2.50000000E-01 6.25000000E-02 + 0.00000000E+00 0.00000000E+00 1.87500000E-01 + 1.25000000E-01 0.00000000E+00 1.87500000E-01 + 2.50000000E-01 0.00000000E+00 1.87500000E-01 + 3.75000000E-01 0.00000000E+00 1.87500000E-01 + 5.00000000E-01 0.00000000E+00 1.87500000E-01 + 1.25000000E-01 1.25000000E-01 1.87500000E-01 + 2.50000000E-01 1.25000000E-01 1.87500000E-01 + 3.75000000E-01 1.25000000E-01 1.87500000E-01 + 2.50000000E-01 2.50000000E-01 1.87500000E-01 + 3.75000000E-01 2.50000000E-01 1.87500000E-01 + 0.00000000E+00 0.00000000E+00 3.12500000E-01 + 1.25000000E-01 0.00000000E+00 3.12500000E-01 + 2.50000000E-01 0.00000000E+00 3.12500000E-01 + 3.75000000E-01 0.00000000E+00 3.12500000E-01 + 5.00000000E-01 0.00000000E+00 3.12500000E-01 + 1.25000000E-01 1.25000000E-01 3.12500000E-01 + 2.50000000E-01 1.25000000E-01 3.12500000E-01 + 3.75000000E-01 1.25000000E-01 3.12500000E-01 + 2.50000000E-01 2.50000000E-01 3.12500000E-01 + 3.75000000E-01 2.50000000E-01 3.12500000E-01 + 0.00000000E+00 0.00000000E+00 4.37500000E-01 + 1.25000000E-01 0.00000000E+00 4.37500000E-01 + 2.50000000E-01 0.00000000E+00 4.37500000E-01 + 3.75000000E-01 0.00000000E+00 4.37500000E-01 + 5.00000000E-01 0.00000000E+00 4.37500000E-01 + 1.25000000E-01 1.25000000E-01 4.37500000E-01 + 2.50000000E-01 1.25000000E-01 4.37500000E-01 + 3.75000000E-01 1.25000000E-01 4.37500000E-01 + 2.50000000E-01 2.50000000E-01 4.37500000E-01 + 3.75000000E-01 2.50000000E-01 4.37500000E-01 + kptrlatt 8 0 0 0 8 0 0 0 8 + kptrlen 4.66535588E+01 +P mkmem 20 + natom 3 + nband 11 + ngfft 18 18 20 + nkpt 40 +- npkpt 2 + nsym 24 + ntypat 2 + occ 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + occopt 4 + ortalg -2 + paral_kgb 1 + rprim 5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + -5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 6.6575051698E+00 + shiftk 0.00000000E+00 0.00000000E+00 5.00000000E-01 + spgroup 191 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 -1 -1 0 0 1 0 0 0 -1 + timopt -1 + tolvrs 1.00000000E-06 + tsmear 3.00000000E-02 Hartree + typat 1 2 2 + wfoptalg 14 + wtk 0.00391 0.02344 0.02344 0.02344 0.01172 0.02344 + 0.04688 0.04688 0.02344 0.02344 0.00391 0.02344 + 0.02344 0.02344 0.01172 0.02344 0.04688 0.04688 + 0.02344 0.02344 0.00391 0.02344 0.02344 0.02344 + 0.01172 0.02344 0.04688 0.04688 0.02344 0.02344 + 0.00391 0.02344 0.02344 0.02344 0.01172 0.02344 + 0.04688 0.04688 0.02344 0.02344 + xangst 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -8.9085146603E-01 1.5430000008E+00 1.7615000010E+00 + 8.9085146603E-01 1.5430000008E+00 1.7615000010E+00 + xcart 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -1.6834652959E+00 2.9158474246E+00 3.3287525849E+00 + 1.6834652959E+00 2.9158474246E+00 3.3287525849E+00 + xred 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 3.3333333330E-01 6.6666666670E-01 5.0000000000E-01 + 6.6666666670E-01 3.3333333330E-01 5.0000000000E-01 + znucl 12.00000 5.00000 + +================================================================================ + + chkinp: Checking input parameters for consistency. + DATA TYPE INFORMATION: + REAL: Data type name: REAL(DP) + Kind value: 8 + Precision: 15 + Smallest nonnegligible quantity relative to 1: 0.22204460E-15 + Smallest positive number: 0.22250739-307 + Largest representable number: 0.17976931+309 + INTEGER: Data type name: INTEGER(default) + Kind value: 4 + Bit size: 32 + Largest representable number: 2147483647 + LOGICAL: Data type name: LOGICAL + Kind value: 4 + CHARACTER: Data type name: CHARACTER Kind value: 1 + + ==== OpenMP parallelism is OFF ==== + + ==== Using MPI-2 specifications ==== + MPI-IO support is ON + xmpi_tag_ub ................ 2147483647 + xmpi_bsize_ch .............. 1 + xmpi_bsize_int ............. 4 + xmpi_bsize_sp .............. 4 + xmpi_bsize_dp .............. 8 + xmpi_bsize_spc ............. 8 + xmpi_bsize_dpc ............. 16 + xmpio_bsize_frm ............ 4 + xmpi_address_kind .......... 8 + xmpi_offset_kind ........... 8 + MPI_WTICK .................. 9.9999999999999995E-007 + +================================================================================ +== DATASET 1 ================================================================== +- nproc = 2 + + + getdim_nloc : deduce lmnmax = 4, lnmax = 2, + lmnmaxso= 4, lnmaxso= 2. + Exchange-correlation functional for the present dataset will be: + LDA: new Teter (4/93) with spin-polarized option - ixc=1 + Citation for XC functional: + S. Goedecker, M. Teter, J. Huetter, PRB 54, 1703 (1996) + + Unit cell volume ucvol= 1.9607929E+02 bohr^3 + Angles (23,13,12)= 9.00000000E+01 9.00000000E+01 1.20000000E+02 degrees + + getcut: wavevector= 0.0000 0.0000 0.0000 ngfft= 18 18 20 + ecut(hartree)= 10.000 => boxcut(ratio)= 2.11034 + kpgio: loop on k-points done in parallel +- pspini: atom type 1 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/12mg.pspnc +- Troullier-Martins psp for element Mg Thu Oct 27 17:30:49 EDT 1994 +- 12.00000 2.00000 940714 znucl, zion, pspdat + 1 1 2 2 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 3.352 8.820 1 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 1.127 1.670 1 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2 0.000 0.000 0 2.5922174 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2.54196289048337 0.05499530377757 0.78827945413088 rchrg,fchrg,qchrg + pspatm: epsatm= -1.54393848 + --- l ekb(1:nproj) --> + 0 1.755924 + 1 0.853613 + pspatm: atomic psp has been read and splines computed + +- pspini: atom type 2 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/5b.pspnc +- Troullier-Martins psp for element B Thu Oct 27 17:29:24 EDT 1994 +- 5.00000 3.00000 940714 znucl, zion, pspdat + 1 1 1 1 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 8.313 21.401 1 1.5924135 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 11.531 17.234 0 1.5924135 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1.10004537463277 0.35216853368804 0.40909985967175 rchrg,fchrg,qchrg + pspatm: epsatm= 0.59609267 + --- l ekb(1:nproj) --> + 0 3.906219 + pspatm: atomic psp has been read and splines computed + + -2.81402505E+00 ecore*ucvol(ha*bohr**3) + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 + 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 + wfconv: 11 bands initialized randomly with npw= 291, for ikpt= 1 + wfconv: 11 bands initialized randomly with npw= 300, for ikpt= 2 + wfconv: 11 bands initialized randomly with npw= 295, for ikpt= 3 + wfconv: 11 bands initialized randomly with npw= 301, for ikpt= 4 + wfconv: 11 bands initialized randomly with npw= 308, for ikpt= 5 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 6 + wfconv: 11 bands initialized randomly with npw= 293, for ikpt= 7 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 8 + wfconv: 11 bands initialized randomly with npw= 294, for ikpt= 9 + wfconv: 11 bands initialized randomly with npw= 297, for ikpt= 10 + wfconv: 11 bands initialized randomly with npw= 291, for ikpt= 11 + wfconv: 11 bands initialized randomly with npw= 294, for ikpt= 12 + wfconv: 11 bands initialized randomly with npw= 296, for ikpt= 13 + wfconv: 11 bands initialized randomly with npw= 295, for ikpt= 14 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 15 + wfconv: 11 bands initialized randomly with npw= 294, for ikpt= 16 + wfconv: 11 bands initialized randomly with npw= 295, for ikpt= 17 + wfconv: 11 bands initialized randomly with npw= 294, for ikpt= 18 + wfconv: 11 bands initialized randomly with npw= 298, for ikpt= 19 + wfconv: 11 bands initialized randomly with npw= 303, for ikpt= 20 + +_setup2: Arith. and geom. avg. npw (full set) are 296.047 296.029 + initro : for itypat= 1, take decay length= 1.6000, + initro : indeed, coreel= 10.0000, nval= 2 and densty= 0.0000E+00. + initro : for itypat= 2, take decay length= 1.0000, + initro : indeed, coreel= 2.0000, nval= 3 and densty= 0.0000E+00. + +================================================================================ + + getcut: wavevector= 0.0000 0.0000 0.0000 ngfft= 18 18 20 + ecut(hartree)= 10.000 => boxcut(ratio)= 2.11034 + + ITER STEP NUMBER 1 + vtorho : nnsclo_now= 2, note that nnsclo,dbl_nnsclo,istep= 0 0 1 + newocc : new Fermi energy is 0.232117 , with nelect= 8.000000 + Number of bissection calls = 45 + newocc : computed new occ. numbers for occopt= 4 , spin-unpolarized case. + 2.000 2.000 2.077 2.077 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.010 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.003 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.284 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.066 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.408 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.549 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 0.034 0.002 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.086 2.086 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.001 2.014 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.008 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.141 0.005 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.127 0.002 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.107 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.291 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.111 2.111 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.001 2.020 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.002 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.006 0.089 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.003 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.002 0.005 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.128 0.606 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.122 2.122 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.002 2.025 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.005 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 1.066 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.283 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.012 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.023 1.801 0.000 0.000 0.000 0.000 0.000 0.000 +mkrho: echo density (plane-wave part only) + Total charge density [el/Bohr^3] +, Maximum= 1.6718E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 2.8199E-04 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + Total charge density [el/Bohr^3] +, Maximum= 1.6718E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 2.8199E-04 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + ETOT 1 -7.0250417290754 -7.025E+00 2.430E-03 1.769E+02 + scprqt: = -3.8605413E-01 hartree + +Simple mixing update: + residual square of the potential : 50.946346437807264 + + ITER STEP NUMBER 2 + vtorho : nnsclo_now= 2, note that nnsclo,dbl_nnsclo,istep= 0 0 2 + newocc : new Fermi energy is 0.291674 , with nelect= 8.000000 + Number of bissection calls = 47 + newocc : computed new occ. numbers for occopt= 4 , spin-unpolarized case. + 2.000 2.000 0.052 0.052 0.002 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.088 0.892 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.002 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.019 2.141 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.005 1.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.002 2.086 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.061 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.227 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.435 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 0.007 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.024 0.024 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.983 0.683 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.141 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.001 2.027 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.008 2.095 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.004 2.113 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.059 0.005 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.037 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.788 0.014 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.001 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.729 0.411 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.113 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.044 0.003 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.016 1.710 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.012 2.139 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.573 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.018 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.019 1.913 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.425 0.261 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.062 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.059 0.208 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.022 2.098 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.027 2.139 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.004 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 2.046 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.937 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 2.073 0.000 0.000 0.000 0.000 0.000 0.000 +mkrho: echo density (plane-wave part only) + Total charge density [el/Bohr^3] +, Maximum= 1.2813E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 9.9619E-04 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + Total charge density [el/Bohr^3] +, Maximum= 1.2813E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 9.9619E-04 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + ETOT 2 -7.1467059890187 -1.217E-01 2.672E-04 7.920E-01 + scprqt: = -3.9711779E-01 hartree + + Pulay update with 1 previous iterations: + mixing of old trial potential : alpha(m:m-4)= 0.951 0.493E-01 + + ITER STEP NUMBER 3 + vtorho : nnsclo_now= 1, note that nnsclo,dbl_nnsclo,istep= 0 0 3 + newocc : new Fermi energy is 0.278154 , with nelect= 8.000000 + Number of bissection calls = 46 + newocc : computed new occ. numbers for occopt= 4 , spin-unpolarized case. + 2.000 2.000 0.134 0.134 0.002 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.128 1.169 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 2.126 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.012 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 0.840 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.001 2.001 2.069 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.077 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.058 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.271 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 0.002 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.079 0.079 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.072 0.954 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.138 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.001 2.018 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.005 2.112 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.002 2.094 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.074 0.005 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.048 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.667 0.006 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.017 0.017 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.904 0.649 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.139 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.030 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.010 1.550 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.007 2.127 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.433 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.007 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.027 1.800 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.004 0.004 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.671 0.460 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.121 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.040 0.128 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.014 2.118 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.017 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.003 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 1.960 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.742 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 2.094 0.000 0.000 0.000 0.000 0.000 0.000 +mkrho: echo density (plane-wave part only) + Total charge density [el/Bohr^3] +, Maximum= 1.3320E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 9.9649E-04 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + Total charge density [el/Bohr^3] +, Maximum= 1.3320E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 9.9649E-04 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + ETOT 3 -7.1475123730445 -8.064E-04 1.155E-04 1.570E-01 + scprqt: = -3.9633999E-01 hartree + + Pulay update with 2 previous iterations: + mixing of old trial potential : alpha(m:m-4)= 1.23 -0.190 -0.399E-01 + + ITER STEP NUMBER 4 + vtorho : nnsclo_now= 1, note that nnsclo,dbl_nnsclo,istep= 0 0 4 + newocc : new Fermi energy is 0.280246 , with nelect= 8.000000 + Number of bissection calls = 47 + newocc : computed new occ. numbers for occopt= 4 , spin-unpolarized case. + 2.000 2.000 0.112 0.112 0.002 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.121 1.101 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 2.131 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.014 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.004 0.834 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.001 2.001 2.075 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.077 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.055 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.270 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 0.002 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.063 0.063 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.052 0.885 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.141 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.001 2.020 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.006 2.109 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 2.101 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.071 0.005 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.046 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.691 0.007 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.011 0.011 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.861 0.583 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.135 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.034 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.011 1.625 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.008 2.132 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.489 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.010 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.024 1.844 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.002 0.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.606 0.402 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.108 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.046 0.161 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.016 2.108 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.020 2.142 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.003 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 2.003 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.817 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 2.085 0.000 0.000 0.000 0.000 0.000 0.000 +mkrho: echo density (plane-wave part only) + Total charge density [el/Bohr^3] +, Maximum= 1.3251E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 1.0494E-03 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + Total charge density [el/Bohr^3] +, Maximum= 1.3251E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 1.0494E-03 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + ETOT 4 -7.1476179372442 -1.056E-04 6.147E-05 4.259E-03 + scprqt: = -3.9660840E-01 hartree + + Pulay update with 3 previous iterations: + mixing of old trial potential : alpha(m:m-4)= 0.928 0.805E-01 -0.993E-02 0.185E-02 + + ITER STEP NUMBER 5 + vtorho : nnsclo_now= 1, note that nnsclo,dbl_nnsclo,istep= 0 0 5 + newocc : new Fermi energy is 0.279770 , with nelect= 8.000000 + Number of bissection calls = 47 + newocc : computed new occ. numbers for occopt= 4 , spin-unpolarized case. + 2.000 2.000 0.116 0.116 0.002 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.122 1.115 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 2.130 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.013 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 0.832 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.001 2.001 2.074 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.078 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.052 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.267 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 0.002 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.066 0.066 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.057 0.899 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.001 2.020 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.006 2.109 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 2.100 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.072 0.005 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.046 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.686 0.007 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.012 0.012 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.870 0.596 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.136 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.033 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.011 1.613 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.008 2.131 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.479 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.009 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.024 1.836 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.002 0.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.619 0.414 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.111 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.045 0.155 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.016 2.110 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.019 2.142 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.003 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 1.996 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.803 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 2.087 0.000 0.000 0.000 0.000 0.000 0.000 +mkrho: echo density (plane-wave part only) + Total charge density [el/Bohr^3] +, Maximum= 1.3271E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 1.0458E-03 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + Total charge density [el/Bohr^3] +, Maximum= 1.3271E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 1.0458E-03 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + ETOT 5 -7.1476240932598 -6.156E-06 1.241E-04 4.150E-05 + scprqt: = -3.9655704E-01 hartree + + Pulay update with 4 previous iterations: + mixing of old trial potential : alpha(m:m-4)= 1.09 -0.667E-01 -0.316E-01 0.407E-02 0.189E-03 + + ITER STEP NUMBER 6 + vtorho : nnsclo_now= 1, note that nnsclo,dbl_nnsclo,istep= 0 0 6 + newocc : new Fermi energy is 0.279838 , with nelect= 8.000000 + Number of bissection calls = 47 + newocc : computed new occ. numbers for occopt= 4 , spin-unpolarized case. + 2.000 2.000 0.116 0.116 0.002 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.122 1.114 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 2.130 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.013 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 0.832 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.001 2.001 2.074 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.078 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.053 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.267 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 0.002 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.066 0.066 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.056 0.898 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.140 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.001 2.020 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.006 2.109 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.003 2.100 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.072 0.005 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.046 0.001 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 1.686 0.007 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.012 0.012 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.869 0.595 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.136 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.033 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.011 1.614 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.008 2.131 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.480 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.009 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.024 1.836 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 0.002 0.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 1.618 0.413 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.110 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.045 0.156 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.016 2.110 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.019 2.142 0.000 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.003 0.004 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 1.997 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 0.804 0.000 0.000 0.000 0.000 0.000 0.000 + 2.000 2.000 2.000 2.000 2.087 0.000 0.000 0.000 0.000 0.000 0.000 +mkrho: echo density (plane-wave part only) + Total charge density [el/Bohr^3] +, Maximum= 1.3269E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 1.0465E-03 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + Total charge density [el/Bohr^3] +, Maximum= 1.3269E-01 at reduced coord. 0.4444 0.8889 0.5000 +, Minimum= 1.0465E-03 at reduced coord. 0.0000 0.0000 0.0000 +, Integrated= 8.0000E+00 + ETOT 6 -7.1476241568657 -6.361E-08 2.681E-05 3.879E-08 + scprqt: = -3.9656085E-01 hartree + + At SCF step 6 vres2 = 3.88E-08 < tolvrs= 1.00E-06 =>converged. + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= 6.19525691E-04 sigma(3 2)= 0.00000000E+00 + sigma(2 2)= 6.19525691E-04 sigma(3 1)= 0.00000000E+00 + sigma(3 3)= 5.35534283E-04 sigma(2 1)= 0.00000000E+00 + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 + 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 3 2 2 3 2 3 3 2 + ioarr: writing density data +ioarr: file name is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out_DEN +ioarr: data written to disk file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out_DEN +================================================================================ + + ----iterations are completed or convergence reached---- + + + outwf: write wavefunction to file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out_WFK, with accesswff 1 + outwf with iomode: 1, cpu: 0.08, wall: 0.11 + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= 6.19525691E-04 sigma(3 2)= 0.00000000E+00 + sigma(2 2)= 6.19525691E-04 sigma(3 1)= 0.00000000E+00 + sigma(3 3)= 5.35534283E-04 sigma(2 1)= 0.00000000E+00 + +-Cartesian components of stress tensor (GPa) [Pressure= -1.7403E+01 GPa] +- sigma(1 1)= 1.82270721E+01 sigma(3 2)= 0.00000000E+00 +- sigma(2 2)= 1.82270721E+01 sigma(3 1)= 0.00000000E+00 +- sigma(3 3)= 1.57559599E+01 sigma(2 1)= 0.00000000E+00 + +== END DATASET(S) ============================================================== +================================================================================ + + -outvars: echo values of variables after computation -------- + + These variables are accessible in NetCDF format (/Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_mgb2_edoses/w0/t0/outdata/out_OUT.nc) + + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.43050000E+01 1.08110000E+01 + ecut 1.00000000E+01 Hartree + etotal -7.1476241569E+00 + fcart 1.2440289821E-28 9.2345202991E-29 -0.0000000000E+00 + -3.0212132423E-28 2.7703560897E-28 -0.0000000000E+00 + 1.7771842601E-28 -3.6938081196E-28 -0.0000000000E+00 +- fftalg 312 + fft_opt_lob 2 + iprcch 6 + kpt 0.00000000E+00 0.00000000E+00 6.25000000E-02 + 1.25000000E-01 0.00000000E+00 6.25000000E-02 + 2.50000000E-01 0.00000000E+00 6.25000000E-02 + 3.75000000E-01 0.00000000E+00 6.25000000E-02 + 5.00000000E-01 0.00000000E+00 6.25000000E-02 + 1.25000000E-01 1.25000000E-01 6.25000000E-02 + 2.50000000E-01 1.25000000E-01 6.25000000E-02 + 3.75000000E-01 1.25000000E-01 6.25000000E-02 + 2.50000000E-01 2.50000000E-01 6.25000000E-02 + 3.75000000E-01 2.50000000E-01 6.25000000E-02 + 0.00000000E+00 0.00000000E+00 1.87500000E-01 + 1.25000000E-01 0.00000000E+00 1.87500000E-01 + 2.50000000E-01 0.00000000E+00 1.87500000E-01 + 3.75000000E-01 0.00000000E+00 1.87500000E-01 + 5.00000000E-01 0.00000000E+00 1.87500000E-01 + 1.25000000E-01 1.25000000E-01 1.87500000E-01 + 2.50000000E-01 1.25000000E-01 1.87500000E-01 + 3.75000000E-01 1.25000000E-01 1.87500000E-01 + 2.50000000E-01 2.50000000E-01 1.87500000E-01 + 3.75000000E-01 2.50000000E-01 1.87500000E-01 + 0.00000000E+00 0.00000000E+00 3.12500000E-01 + 1.25000000E-01 0.00000000E+00 3.12500000E-01 + 2.50000000E-01 0.00000000E+00 3.12500000E-01 + 3.75000000E-01 0.00000000E+00 3.12500000E-01 + 5.00000000E-01 0.00000000E+00 3.12500000E-01 + 1.25000000E-01 1.25000000E-01 3.12500000E-01 + 2.50000000E-01 1.25000000E-01 3.12500000E-01 + 3.75000000E-01 1.25000000E-01 3.12500000E-01 + 2.50000000E-01 2.50000000E-01 3.12500000E-01 + 3.75000000E-01 2.50000000E-01 3.12500000E-01 + 0.00000000E+00 0.00000000E+00 4.37500000E-01 + 1.25000000E-01 0.00000000E+00 4.37500000E-01 + 2.50000000E-01 0.00000000E+00 4.37500000E-01 + 3.75000000E-01 0.00000000E+00 4.37500000E-01 + 5.00000000E-01 0.00000000E+00 4.37500000E-01 + 1.25000000E-01 1.25000000E-01 4.37500000E-01 + 2.50000000E-01 1.25000000E-01 4.37500000E-01 + 3.75000000E-01 1.25000000E-01 4.37500000E-01 + 2.50000000E-01 2.50000000E-01 4.37500000E-01 + 3.75000000E-01 2.50000000E-01 4.37500000E-01 + kptrlatt 8 0 0 0 8 0 0 0 8 + kptrlen 4.66535588E+01 +P mkmem 20 + natom 3 + nband 11 + ngfft 18 18 20 + nkpt 40 +- npkpt 2 + nsym 24 + ntypat 2 + occ 2.000000 2.000001 0.115849 0.115849 0.002018 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000010 2.122178 1.113972 0.000724 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.002863 2.130470 0.000009 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.013297 2.139881 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.003459 0.832301 0.000044 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000528 2.001107 2.073641 0.000031 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000166 2.077600 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000002 1.052608 0.000002 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 1.267300 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 0.001542 0.000509 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 0.065673 0.065673 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.056217 0.897651 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000001 2.140175 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.001094 2.019999 0.000072 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.005740 2.109392 0.000401 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.002523 2.099674 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000025 2.000502 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000006 2.071679 0.004777 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.046212 0.000868 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 1.686160 0.006933 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 0.012141 0.012141 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 1.869050 0.595320 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000010 2.135959 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.032965 0.003951 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000167 2.011027 1.614064 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.008201 2.130994 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.001317 0.000149 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000018 2.000052 0.479518 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000011 0.009351 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.024287 1.836439 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 0.002121 0.002121 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 1.618024 0.412567 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000053 2.110351 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.044807 0.155682 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.015639 2.109965 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.019203 2.141665 0.000000 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.002998 0.003921 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000080 1.996841 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000000 0.804041 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + 2.000000 2.000000 2.000000 2.000200 2.086681 0.000000 + 0.000000 0.000000 0.000000 0.000000 0.000000 + occopt 4 + ortalg -2 + paral_kgb 1 + rprim 5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + -5.0503958866E+00 2.9158474246E+00 0.0000000000E+00 + 0.0000000000E+00 0.0000000000E+00 6.6575051698E+00 + shiftk 0.00000000E+00 0.00000000E+00 5.00000000E-01 + spgroup 191 + strten 6.1952569136E-04 6.1952569137E-04 5.3553428305E-04 + 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + 0 1 0 1 0 0 0 0 1 0 -1 0 -1 0 0 0 0 -1 + 1 1 0 -1 0 0 0 0 1 -1 -1 0 1 0 0 0 0 -1 + -1 0 0 1 1 0 0 0 1 1 0 0 -1 -1 0 0 0 -1 + 0 1 0 -1 -1 0 0 0 1 0 -1 0 1 1 0 0 0 -1 + -1 -1 0 0 1 0 0 0 1 1 1 0 0 -1 0 0 0 -1 + -1 0 0 0 -1 0 0 0 1 1 0 0 0 1 0 0 0 -1 + 0 -1 0 -1 0 0 0 0 1 0 1 0 1 0 0 0 0 -1 + -1 -1 0 1 0 0 0 0 1 1 1 0 -1 0 0 0 0 -1 + 1 0 0 -1 -1 0 0 0 1 -1 0 0 1 1 0 0 0 -1 + 0 -1 0 1 1 0 0 0 1 0 1 0 -1 -1 0 0 0 -1 + 1 1 0 0 -1 0 0 0 1 -1 -1 0 0 1 0 0 0 -1 + timopt -1 + tolvrs 1.00000000E-06 + tsmear 3.00000000E-02 Hartree + typat 1 2 2 + wfoptalg 14 + wtk 0.00391 0.02344 0.02344 0.02344 0.01172 0.02344 + 0.04688 0.04688 0.02344 0.02344 0.00391 0.02344 + 0.02344 0.02344 0.01172 0.02344 0.04688 0.04688 + 0.02344 0.02344 0.00391 0.02344 0.02344 0.02344 + 0.01172 0.02344 0.04688 0.04688 0.02344 0.02344 + 0.00391 0.02344 0.02344 0.02344 0.01172 0.02344 + 0.04688 0.04688 0.02344 0.02344 + xangst 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -8.9085146585E-01 1.5430000008E+00 1.7615000010E+00 + 8.9085146585E-01 1.5430000008E+00 1.7615000010E+00 + xcart 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + -1.6834652955E+00 2.9158474246E+00 3.3287525849E+00 + 1.6834652955E+00 2.9158474246E+00 3.3287525849E+00 + xred 0.0000000000E+00 0.0000000000E+00 0.0000000000E+00 + 3.3333333333E-01 6.6666666667E-01 5.0000000000E-01 + 6.6666666667E-01 3.3333333333E-01 5.0000000000E-01 + znucl 12.00000 5.00000 + +================================================================================ + + +================================================================================ + + Suggested references for the acknowledgment of ABINIT usage. + + The users of ABINIT have little formal obligations with respect to the ABINIT group + (those specified in the GNU General Public License, http://www.gnu.org/copyleft/gpl.txt). + However, it is common practice in the scientific literature, + to acknowledge the efforts of people that have made the research possible. + In this spirit, please find below suggested citations of work written by ABINIT developers, + corresponding to implementations inside of ABINIT that you have used in the present run. + Note also that it will be of great value to readers of publications presenting these results, + to read papers enabling them to understand the theoretical formalism and details + of the ABINIT implementation. + For information on why they are suggested, see also http://www.abinit.org/about/?text=acknowledgments. + + [1] Large scale ab initio calculations based on three levels of parallelization + F. Bottin, S. Leroux, A. Knyazev, G. Zerah, Comput. Mat. Science 42, 329, (2008). + Comment : in case paral_kgb is non-zero. Strong suggestion to cite this paper in your publications. + This paper is also available at http://www.arxiv.org/abs/0707.3405 + + [2] ABINIT : First-principles approach of materials and nanosystem properties. + X. Gonze, B. Amadon, P.-M. Anglade, J.-M. Beuken, F. Bottin, P. Boulanger, F. Bruneval, + D. Caliste, R. Caracas, M. Cote, T. Deutsch, L. Genovese, Ph. Ghosez, M. Giantomassi + S. Goedecker, D.R. Hamann, P. Hermet, F. Jollet, G. Jomard, S. Leroux, M. Mancini, S. Mazevet, + M.J.T. Oliveira, G. Onida, Y. Pouillon, T. Rangel, G.-M. Rignanese, D. Sangalli, R. Shaltaf, + M. Torrent, M.J. Verstraete, G. Zerah, J.W. Zwanziger + Computer Phys. Comm. 180, 2582-2615 (2009). + Comment : the third generic paper describing the ABINIT project. + Note that a version of this paper, that is not formatted for Computer Phys. Comm. + is available at http://www.abinit.org/about/ABINIT_CPC_v10.pdf . + The licence allows the authors to put it on the Web. + + [3] A brief introduction to the ABINIT software package. + X. Gonze, G.-M. Rignanese, M. Verstraete, J.-M. Beuken, Y. Pouillon, R. Caracas, F. Jollet, + M. Torrent, G. Zerah, M. Mikami, Ph. Ghosez, M. Veithen, J.-Y. Raty, V. Olevano, F. Bruneval, + L. Reining, R. Godby, G. Onida, D.R. Hamann, and D.C. Allan. + Z. Kristallogr. 220, 558-562 (2005). + Comment : the second generic paper describing the ABINIT project. Note that this paper + should be cited especially if you are using the GW part of ABINIT, as several authors + of this part are not in the list of authors of the first or third paper. + The .pdf of the latter paper is available at http://www.abinit.org/about/zfk_0505-06_558-562.pdf. + Note that it should not redistributed (Copyright by Oldenburg Wissenshaftverlag, + the licence allows the authors to put it on the Web). + + + And optionally : + + [4] First-principles computation of material properties : the ABINIT software project. + X. Gonze, J.-M. Beuken, R. Caracas, F. Detraux, M. Fuchs, G.-M. Rignanese, L. Sindic, + M. Verstraete, G. Zerah, F. Jollet, M. Torrent, A. Roy, M. Mikami, Ph. Ghosez, J.-Y. Raty, D.C. Allan. + Computational Materials Science 25, 478-492 (2002). http://dx.doi.org/10.1016/S0927-0256(02)00325-7 + Comment : the original paper describing the ABINIT project. + + [5] Fast radix 2, 3, 4 and 5 kernels for Fast Fourier Transformations + on computers with overlapping multiply-add instructions. + S. Goedecker, SIAM J. on Scientific Computing 18, 1605 (1997). + Proc. 0 individual time (sec): cpu= 5.1 wall= 5.2 + + Calculation completed. +.Delivered 0 WARNINGs and 0 COMMENTs to log file. +--- !FinalSummary +start_datetime: Fri Mar 13 20:08:51 2015 +end_datetime: Fri Mar 13 20:08:57 2015 +overall_cpu_time: 10.2 +overall_wall_time: 10.3 +... diff --git a/abipy/data/refs/text_files/sic_relax.abo b/abipy/data/refs/text_files/sic_relax.abo new file mode 100644 index 000000000..c9e2a9afe --- /dev/null +++ b/abipy/data/refs/text_files/sic_relax.abo @@ -0,0 +1,846 @@ + +.Version 7.11.5 of ABINIT +.(MPI version, prepared for a x86_64_darwin10.8.0_gnu4.7 computer) + +.Copyright (C) 1998-2015 ABINIT group . + ABINIT comes with ABSOLUTELY NO WARRANTY. + It is free software, and you are welcome to redistribute it + under certain conditions (GNU General Public License, + see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt). + + ABINIT is a project of the Universite Catholique de Louvain, + Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt . + Please read ~abinit/doc/users/acknowledgments.html for suggested + acknowledgments of the ABINIT effort. + For more information, see http://www.abinit.org . + +.Starting date : Fri 13 Mar 2015. +- ( at 22h38 ) + +- input file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_relax/w0/t1/run.abi +- output file -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_relax/w0/t1/run.abo +- root for input files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_relax/w0/t1/indata/in +- root for output files -> /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_relax/w0/t1/outdata/out + + + Symmetries : space group P-1 (# 2); Bravais aP (primitive triclinic) +================================================================================ + Values of the parameters that define the memory need of the present run + intxc = 0 ionmov = 2 iscf = 7 xclevel = 1 + lmnmax = 2 lnmax = 2 mband = 5 mffmem = 1 +P mgfft = 15 mkmem = 18 mpssoang= 3 mpw = 108 + mqgrid = 3001 natom = 2 nfft = 3375 nkpt = 36 + nloalg = 4 nspden = 1 nspinor = 1 nsppol = 1 + nsym = 2 n1xccc = 2501 ntypat = 1 occopt = 1 +================================================================================ +P This job should need less than 1.801 Mbytes of memory. + Rough estimation (10% accuracy) of disk space for files : +_ WF disk file : 0.299 Mbytes ; DEN or POT disk file : 0.028 Mbytes. +================================================================================ + +-------------------------------------------------------------------------------- +------------- Echo of variables that govern the present computation ------------ +-------------------------------------------------------------------------------- +- +- outvars: echo of selected default values +- accesswff0 = 0 , fftalg0 =312 , wfoptalg0 = 0 +- +- outvars: echo of global parameters not present in the input file +- max_nthreads = 0 +- + -outvars: echo values of preprocessed input variables -------- + accesswff 1 + acell 1.0000000000E+00 1.0000000000E+00 1.0000000000E+00 Bohr + amu 2.80855000E+01 + chksymbreak 0 + dilatmx 1.05000000E+00 + ecut 4.00000000E+00 Hartree + ecutsm 5.00000000E-01 Hartree +- fftalg 312 + fft_opt_lob 2 + ionmov 2 + iprcch 6 + istwfk 2 0 1 0 0 0 0 1 0 1 + 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 1 0 1 0 + 0 0 0 1 0 1 + kpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2.50000000E-01 0.00000000E+00 0.00000000E+00 + 5.00000000E-01 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 2.50000000E-01 0.00000000E+00 + 2.50000000E-01 2.50000000E-01 0.00000000E+00 + 5.00000000E-01 2.50000000E-01 0.00000000E+00 + -2.50000000E-01 2.50000000E-01 0.00000000E+00 + 0.00000000E+00 5.00000000E-01 0.00000000E+00 + 2.50000000E-01 5.00000000E-01 0.00000000E+00 + 5.00000000E-01 5.00000000E-01 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 2.50000000E-01 + 2.50000000E-01 0.00000000E+00 2.50000000E-01 + 5.00000000E-01 0.00000000E+00 2.50000000E-01 + -2.50000000E-01 0.00000000E+00 2.50000000E-01 + 0.00000000E+00 2.50000000E-01 2.50000000E-01 + 2.50000000E-01 2.50000000E-01 2.50000000E-01 + 5.00000000E-01 2.50000000E-01 2.50000000E-01 + -2.50000000E-01 2.50000000E-01 2.50000000E-01 + 0.00000000E+00 5.00000000E-01 2.50000000E-01 + 2.50000000E-01 5.00000000E-01 2.50000000E-01 + 5.00000000E-01 5.00000000E-01 2.50000000E-01 + -2.50000000E-01 5.00000000E-01 2.50000000E-01 + 0.00000000E+00 -2.50000000E-01 2.50000000E-01 + 2.50000000E-01 -2.50000000E-01 2.50000000E-01 + 5.00000000E-01 -2.50000000E-01 2.50000000E-01 + -2.50000000E-01 -2.50000000E-01 2.50000000E-01 + 0.00000000E+00 0.00000000E+00 5.00000000E-01 + 2.50000000E-01 0.00000000E+00 5.00000000E-01 + 5.00000000E-01 0.00000000E+00 5.00000000E-01 + 0.00000000E+00 2.50000000E-01 5.00000000E-01 + 2.50000000E-01 2.50000000E-01 5.00000000E-01 + 5.00000000E-01 2.50000000E-01 5.00000000E-01 + -2.50000000E-01 2.50000000E-01 5.00000000E-01 + 0.00000000E+00 5.00000000E-01 5.00000000E-01 + 2.50000000E-01 5.00000000E-01 5.00000000E-01 + 5.00000000E-01 5.00000000E-01 5.00000000E-01 + kptrlatt 4 0 0 0 4 0 0 0 4 + kptrlen 2.73685731E+01 +P mkmem 18 + natom 2 + nband 5 + ngfft 15 15 15 + nkpt 36 +- npkpt 2 + nsym 2 + ntime 5 + ntypat 1 + occ 2.000000 2.000000 2.000000 2.000000 0.000000 + optcell 1 + optforces 1 + ortalg -2 + paral_kgb 1 + rprim -5.9254698865E+00 0.0000000000E+00 -3.4210716340E+00 + -5.9254698865E+00 0.0000000000E+00 3.4210716340E+00 + -3.9503132577E+00 5.5865865847E+00 0.0000000000E+00 + spgroup 2 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + tnons 0.0000000 0.0000000 0.0000000 0.2148537 0.2756820 0.2950373 + tolrff 2.00000000E-02 + typat 1 1 + wfoptalg 14 + wtk 0.01563 0.03125 0.01563 0.03125 0.03125 0.03125 + 0.03125 0.01563 0.03125 0.01563 0.03125 0.03125 + 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 + 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 + 0.03125 0.03125 0.01563 0.03125 0.01563 0.03125 + 0.03125 0.03125 0.03125 0.01563 0.03125 0.01563 + xangst -3.1678585739E+00 6.6571691475E-02 -1.7552928861E+00 + -2.1226509128E+00 8.0564545872E-01 5.5060542331E-02 + xcart -5.9863851323E+00 1.2580226509E-01 -3.3170228377E+00 + -4.0112289009E+00 1.5224492772E+00 1.0404934573E-01 + xred 9.8242686280E-01 1.2840957400E-02 2.2518628000E-02 + 2.3242679420E-01 2.6284104940E-01 2.7251869350E-01 + znucl 14.00000 + +================================================================================ + + chkinp: Checking input parameters for consistency. + +================================================================================ +== DATASET 1 ================================================================== +- nproc = 2 + + Exchange-correlation functional for the present dataset will be: + LDA: new Teter (4/93) with spin-polarized option - ixc=1 + Citation for XC functional: + S. Goedecker, M. Teter, J. Huetter, PRB 54, 1703 (1996) + + Real(R)+Recip(G) space primitive vectors, cartesian coordinates (Bohr,Bohr^-1): + R(1)= -5.9254699 0.0000000 -3.4210716 G(1)= -0.0843815 -0.0596667 -0.1461530 + R(2)= -5.9254699 0.0000000 3.4210716 G(2)= -0.0843815 -0.0596667 0.1461530 + R(3)= -3.9503133 5.5865866 0.0000000 G(3)= 0.0000000 0.1790002 0.0000000 + Unit cell volume ucvol= 2.2649650E+02 bohr^3 + Angles (23,13,12)= 6.00000000E+01 6.00000000E+01 6.00000000E+01 degrees + + getcut: wavevector= 0.0000 0.0000 0.0000 ngfft= 15 15 15 + ecut(hartree)= 4.410 => boxcut(ratio)= 2.17548 + +--- Pseudopotential description ------------------------------------------------ +- pspini: atom type 1 psp file is /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/14si.pspnc +- pspatm: opening atomic psp file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/pseudos/14si.pspnc +- Troullier-Martins psp for element Si Thu Oct 27 17:31:21 EDT 1994 +- 14.00000 4.00000 940714 znucl, zion, pspdat + 1 1 2 2 2001 0.00000 pspcod,pspxc,lmax,lloc,mmax,r2well + 0 5.907 14.692 1 2.0872718 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1 2.617 4.181 1 2.0872718 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 2 0.000 0.000 0 2.0872718 l,e99.0,e99.9,nproj,rcpsp + 0.00000000 0.00000000 0.00000000 0.00000000 rms, ekb1, ekb2, epsatm + 1.80626423934776 0.22824404341771 1.17378968127746 rchrg,fchrg,qchrg + pspatm: epsatm= 1.43386982 + --- l ekb(1:nproj) --> + 0 3.287949 + 1 1.849886 + pspatm: atomic psp has been read and splines computed + + 2.29419171E+01 ecore*ucvol(ha*bohr**3) +-------------------------------------------------------------------------------- + +P newkpt: treating 5 bands with npw= 57 for ikpt= 1 by node 0 +P newkpt: treating 5 bands with npw= 98 for ikpt= 2 by node 0 +P newkpt: treating 5 bands with npw= 108 for ikpt= 3 by node 0 +P newkpt: treating 5 bands with npw= 98 for ikpt= 4 by node 0 +P newkpt: treating 5 bands with npw= 101 for ikpt= 5 by node 0 +P newkpt: treating 5 bands with npw= 100 for ikpt= 6 by node 0 +P newkpt: treating 5 bands with npw= 97 for ikpt= 7 by node 0 +P newkpt: treating 5 bands with npw= 108 for ikpt= 8 by node 0 +P newkpt: treating 5 bands with npw= 100 for ikpt= 9 by node 0 +P newkpt: treating 5 bands with npw= 92 for ikpt= 10 by node 0 +P newkpt: treating 5 bands with npw= 98 for ikpt= 11 by node 0 +P newkpt: treating 5 bands with npw= 101 for ikpt= 12 by node 0 +P newkpt: treating 5 bands with npw= 100 for ikpt= 13 by node 0 +P newkpt: treating 5 bands with npw= 97 for ikpt= 14 by node 0 +P newkpt: treating 5 bands with npw= 101 for ikpt= 15 by node 0 +P newkpt: treating 5 bands with npw= 98 for ikpt= 16 by node 0 +P newkpt: treating 5 bands with npw= 97 for ikpt= 17 by node 0 +P newkpt: treating 5 bands with npw= 100 for ikpt= 18 by node 0 +P newkpt: treating 5 bands with npw= 100 for ikpt= 19 by node 1 +P newkpt: treating 5 bands with npw= 97 for ikpt= 20 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 21 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 22 by node 1 +P newkpt: treating 5 bands with npw= 97 for ikpt= 23 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 24 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 25 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 26 by node 1 +P newkpt: treating 5 bands with npw= 108 for ikpt= 27 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 28 by node 1 +P newkpt: treating 5 bands with npw= 92 for ikpt= 29 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 30 by node 1 +P newkpt: treating 5 bands with npw= 97 for ikpt= 31 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 32 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 33 by node 1 +P newkpt: treating 5 bands with npw= 92 for ikpt= 34 by node 1 +P newkpt: treating 5 bands with npw= 100 for ikpt= 35 by node 1 +P newkpt: treating 5 bands with npw= 108 for ikpt= 36 by node 1 + +_setup2: Arith. and geom. avg. npw (full set) are 99.609 99.552 + +================================================================================ + +=== [ionmov= 2] Broyden-Fletcher-Goldfard-Shanno method (forces) +================================================================================ + +--- Iteration: (1/5) Internal Cycle: (1/1) +-------------------------------------------------------------------------------- + +---SELF-CONSISTENT-FIELD CONVERGENCE-------------------------------------------- + + iter Etot(hartree) deltaE(h) residm vres2 diffor maxfor + ETOT 1 -8.8018619964173 -8.802E+00 6.123E-04 3.378E+00 5.372E-05 5.372E-05 + ETOT 2 -8.8076348545882 -5.773E-03 3.335E-07 9.257E-02 5.372E-05 5.535E-06 + ETOT 3 -8.8077398147713 -1.050E-04 1.883E-08 1.534E-03 6.243E-06 7.082E-07 + ETOT 4 -8.8077409155889 -1.101E-06 2.510E-09 5.209E-06 7.423E-07 1.784E-07 + ETOT 5 -8.8077409200440 -4.455E-09 1.224E-10 2.852E-09 3.081E-07 1.297E-07 + ETOT 6 -8.8077409200470 -3.020E-12 4.709E-12 2.165E-11 3.632E-08 9.339E-08 + ETOT 7 -8.8077409200473 -2.380E-13 3.867E-13 2.313E-13 1.690E-08 1.103E-07 + ETOT 8 -8.8077409200473 -1.066E-14 1.063E-13 2.667E-15 1.664E-09 1.086E-07 + ETOT 9 -8.8077409200473 8.882E-15 1.146E-14 3.557E-17 3.086E-11 1.086E-07 + + At SCF step 9, forces are sufficiently converged : + for the second time, max diff in force= 3.086E-11 is less than < tolrff= 2.000E-02 times max force + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= -7.85786112E-04 sigma(3 2)= 4.69982184E-10 + sigma(2 2)= -7.85787595E-04 sigma(3 1)= 7.17941533E-10 + sigma(3 3)= -7.85787137E-04 sigma(2 1)= -3.40386765E-10 + + +---OUTPUT----------------------------------------------------------------------- + + Cartesian coordinates (xcart) [bohr] + -5.98638513233121E+00 1.25802265090650E-01 -3.31702283769015E+00 + -4.01122890090772E+00 1.52244927718707E+00 1.04049345733957E-01 + Reduced coordinates (xred) + 9.82426862800000E-01 1.28409574000000E-02 2.25186280000000E-02 + 2.32426794200000E-01 2.62841049400000E-01 2.72518693500000E-01 + Cartesian forces (fcart) [Ha/bohr]; max,rms= 1.08617E-07 8.76665E-08 (free atoms) + -7.81879441466226E-08 7.17306015324279E-08 1.08616871253424E-07 + 7.81879441466226E-08 -7.17306015324279E-08 -1.08616871253424E-07 + Reduced forces (fred) + -9.17142113092379E-08 -8.34886405747074E-07 -7.09596088588233E-07 + 9.17142113092379E-08 8.34886405747074E-07 7.09596088588233E-07 + Scale of Primitive Cell (acell) [bohr] + 1.00000000000000E+00 1.00000000000000E+00 1.00000000000000E+00 + Real space primitive translations (rprimd) [bohr] + -5.92546988650000E+00 0.00000000000000E+00 -3.42107163400000E+00 + -5.92546988650000E+00 0.00000000000000E+00 3.42107163400000E+00 + -3.95031325770000E+00 5.58658658470000E+00 0.00000000000000E+00 + Unitary Cell Volume (ucvol) [Bohr^3]= 2.26496498862927E+02 + Angles (23,13,12)= [degrees] + 6.00000000000409E+01 6.00000000000409E+01 5.99999999993358E+01 + Lengths [Bohr] + 6.84214326806869E+00 6.84214326806869E+00 6.84214326818069E+00 + Stress tensor in cartesian coordinates (strten) [Ha/bohr^3] + -7.85786112177577E-04 -3.40386764515403E-10 7.17941533331348E-10 + -3.40386764515403E-10 -7.85787594550156E-04 4.69982184420506E-10 + 7.17941533331348E-10 4.69982184420506E-10 -7.85787136738803E-04 + Total energy (etotal) [Ha]= -8.80774092004726E+00 + +--- Iteration: (2/5) Internal Cycle: (1/1) +-------------------------------------------------------------------------------- + +---SELF-CONSISTENT-FIELD CONVERGENCE-------------------------------------------- + + iter Etot(hartree) deltaE(h) residm vres2 diffor maxfor + ETOT 1 -8.8177444375800 -8.818E+00 3.210E-10 2.472E-02 1.412E-07 2.129E-07 + ETOT 2 -8.8177955590092 -5.112E-05 2.705E-12 1.878E-04 1.854E-07 4.428E-08 + ETOT 3 -8.8177957698934 -2.109E-07 1.997E-10 3.553E-06 1.620E-07 2.063E-07 + ETOT 4 -8.8177957729974 -3.104E-09 8.212E-13 7.518E-08 1.620E-07 4.430E-08 + ETOT 5 -8.8177957730596 -6.220E-11 2.037E-14 4.829E-11 1.804E-08 6.234E-08 + ETOT 6 -8.8177957730597 -5.329E-14 3.239E-13 2.815E-13 7.166E-09 5.517E-08 + ETOT 7 -8.8177957730597 -1.243E-14 3.704E-15 1.599E-15 1.830E-09 5.700E-08 + ETOT 8 -8.8177957730597 7.105E-15 1.134E-13 1.201E-17 1.591E-10 5.690E-08 + ETOT 9 -8.8177957730597 -3.553E-15 2.894E-15 1.135E-18 3.516E-11 5.693E-08 + + At SCF step 9, forces are sufficiently converged : + for the second time, max diff in force= 3.516E-11 is less than < tolrff= 2.000E-02 times max force + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= -4.61268050E-04 sigma(3 2)= 2.46626208E-10 + sigma(2 2)= -4.61268695E-04 sigma(3 1)= 3.19245418E-10 + sigma(3 3)= -4.61268506E-04 sigma(2 1)= -1.72934396E-10 + + +---OUTPUT----------------------------------------------------------------------- + + Cartesian coordinates (xcart) [bohr] + -6.12750591141101E+00 1.28767951849641E-01 -3.39521692405733E+00 + -4.10578796032842E+00 1.55833882688757E+00 1.06502053090810E-01 + Reduced coordinates (xred) + 9.82426849243000E-01 1.28409755923706E-02 2.25186408397905E-02 + 2.32426807757000E-01 2.62841031207629E-01 2.72518680660209E-01 + Cartesian forces (fcart) [Ha/bohr]; max,rms= 5.69301E-08 4.60109E-08 (free atoms) + -4.11880266811024E-08 3.75967161821256E-08 5.69301113622132E-08 + 4.11880266811024E-08 -3.75967161821256E-08 -5.69301113622132E-08 + Reduced forces (fred) + -5.04585172470257E-08 -4.49164981188564E-07 -3.81529813706985E-07 + 5.04585172470257E-08 4.49164981188564E-07 3.81529813706985E-07 + Scale of Primitive Cell (acell) [bohr] + 1.02357360843467E+00 1.02357360843467E+00 1.02357360843467E+00 + Real space primitive translations (rprimd) [bohr] + -6.06515459339575E+00 0.00000000000000E+00 -3.50171863712686E+00 + -6.06515459339575E+00 0.00000000000000E+00 3.50171863712686E+00 + -4.04343639563129E+00 5.71828258933407E+00 0.00000000000000E+00 + Unitary Cell Volume (ucvol) [Bohr^3]= 2.42895087857799E+02 + Angles (23,13,12)= [degrees] + 6.00000000000409E+01 6.00000000000409E+01 5.99999999993358E+01 + Lengths [Bohr] + 7.00343727432403E+00 7.00343727432403E+00 7.00343727443867E+00 + Stress tensor in cartesian coordinates (strten) [Ha/bohr^3] + -4.61268050361893E-04 -1.72934396250415E-10 3.19245418430947E-10 + -1.72934396250415E-10 -4.61268694664836E-04 2.46626208130621E-10 + 3.19245418430947E-10 2.46626208130621E-10 -4.61268506221830E-04 + Total energy (etotal) [Ha]= -8.81779577305969E+00 + + Difference of energy with previous step (new-old): + Absolute (Ha)=-1.00549E-02 + Relative =-1.14094E-03 + +--- Iteration: (3/5) Internal Cycle: (1/1) +-------------------------------------------------------------------------------- + +---SELF-CONSISTENT-FIELD CONVERGENCE-------------------------------------------- + + iter Etot(hartree) deltaE(h) residm vres2 diffor maxfor + ETOT 1 -8.8232546046236 -8.823E+00 1.253E-09 5.910E-02 4.292E-07 3.880E-07 + ETOT 2 -8.8233823221287 -1.277E-04 1.036E-11 6.693E-04 4.117E-07 2.732E-08 + ETOT 3 -8.8233830566410 -7.345E-07 1.355E-10 2.143E-05 7.058E-08 5.732E-08 + ETOT 4 -8.8233830753731 -1.873E-08 5.376E-12 4.425E-07 6.606E-08 8.740E-09 + ETOT 5 -8.8233830757632 -3.900E-10 1.220E-13 1.780E-10 4.927E-09 3.868E-09 + ETOT 6 -8.8233830757634 -2.771E-13 4.515E-16 2.843E-13 1.006E-09 4.819E-09 + ETOT 7 -8.8233830757634 1.421E-14 6.639E-17 8.003E-16 1.142E-10 4.705E-09 + ETOT 8 -8.8233830757634 1.776E-15 2.629E-17 1.013E-17 7.965E-11 4.785E-09 + ETOT 9 -8.8233830757634 0.000E+00 3.584E-17 1.375E-19 1.426E-12 4.785E-09 + + At SCF step 9, forces are sufficiently converged : + for the second time, max diff in force= 1.426E-12 is less than < tolrff= 2.000E-02 times max force + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= 5.75922744E-05 sigma(3 2)= 1.57384342E-11 + sigma(2 2)= 5.75922772E-05 sigma(3 1)= -1.83203858E-11 + sigma(3 3)= 5.75922921E-05 sigma(2 1)= -9.87854794E-12 + + +---OUTPUT----------------------------------------------------------------------- + + Cartesian coordinates (xcart) [bohr] + -6.36729342954193E+00 1.33807132459912E-01 -3.52808161900358E+00 + -4.26645944406577E+00 1.61932111552525E+00 1.10669625569609E-01 + Reduced coordinates (xred) + 9.82426829659555E-01 1.28410019846344E-02 2.25186594328963E-02 + 2.32426827340444E-01 2.62841004815366E-01 2.72518662067104E-01 + Cartesian forces (fcart) [Ha/bohr]; max,rms= 4.78496E-09 3.62027E-09 (free atoms) + -3.22999441702607E-09 2.44753514382466E-09 4.78495978006022E-09 + 3.22999441702607E-09 -2.44753514382466E-09 -4.78495978006022E-09 + Reduced forces (fred) + -2.94576800587890E-09 -3.77683245364018E-08 -2.81147547484150E-08 + 2.94576800587890E-09 3.77683245364018E-08 2.81147547484150E-08 + Scale of Primitive Cell (acell) [bohr] + 1.06362906572046E+00 1.06362906572046E+00 1.06362906572046E+00 + Real space primitive translations (rprimd) [bohr] + -6.30250199933273E+00 0.00000000000000E+00 -3.63875122583419E+00 + -6.30250199933273E+00 0.00000000000000E+00 3.63875122583419E+00 + -4.20166799959060E+00 5.94205586965093E+00 0.00000000000000E+00 + Unitary Cell Volume (ucvol) [Bohr^3]= 2.72541149577007E+02 + Angles (23,13,12)= [degrees] + 6.00000000000409E+01 6.00000000000409E+01 5.99999999993358E+01 + Lengths [Bohr] + 7.27750245174145E+00 7.27750245174145E+00 7.27750245186058E+00 + Stress tensor in cartesian coordinates (strten) [Ha/bohr^3] + 5.75922744121232E-05 -9.87854794290995E-12 -1.83203858035658E-11 + -9.87854794290995E-12 5.75922771561365E-05 1.57384342469797E-11 + -1.83203858035658E-11 1.57384342469797E-11 5.75922921364088E-05 + Total energy (etotal) [Ha]= -8.82338307576341E+00 + + Difference of energy with previous step (new-old): + Absolute (Ha)=-5.58730E-03 + Relative =-6.33439E-04 + +--- Iteration: (4/5) Internal Cycle: (1/1) +-------------------------------------------------------------------------------- + +---SELF-CONSISTENT-FIELD CONVERGENCE-------------------------------------------- + + iter Etot(hartree) deltaE(h) residm vres2 diffor maxfor + ETOT 1 -8.8234887399797 -8.823E+00 1.543E-11 8.428E-04 4.921E-08 4.598E-08 + ETOT 2 -8.8234906425621 -1.903E-06 2.866E-12 9.420E-06 5.242E-08 7.385E-09 + ETOT 3 -8.8234906606655 -1.810E-08 2.020E-11 4.627E-08 1.130E-08 1.869E-08 + ETOT 4 -8.8234906607133 -4.785E-11 1.017E-14 1.812E-09 1.653E-08 5.295E-09 + ETOT 5 -8.8234906607147 -1.437E-12 3.763E-16 5.778E-12 4.670E-09 6.831E-09 + ETOT 6 -8.8234906607147 1.776E-14 3.655E-15 9.649E-15 1.767E-09 5.064E-09 + ETOT 7 -8.8234906607147 -1.421E-14 3.395E-16 2.869E-16 1.023E-09 6.086E-09 + ETOT 8 -8.8234906607147 1.776E-15 2.507E-17 3.939E-18 7.555E-11 6.011E-09 + ETOT 9 -8.8234906607147 -5.329E-15 2.637E-16 7.325E-20 1.707E-11 6.019E-09 + + At SCF step 9, forces are sufficiently converged : + for the second time, max diff in force= 1.707E-11 is less than < tolrff= 2.000E-02 times max force + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= -3.20727740E-07 sigma(3 2)= 5.66233372E-14 + sigma(2 2)= -3.20702234E-07 sigma(3 1)= -3.09387150E-11 + sigma(3 3)= -3.20697799E-07 sigma(2 1)= -1.63898545E-12 + + +---OUTPUT----------------------------------------------------------------------- + + Cartesian coordinates (xcart) [bohr] + -6.33782824488678E+00 1.33187922765549E-01 -3.51175513680463E+00 + -4.24671605520529E+00 1.61182757882625E+00 1.10157500852065E-01 + Reduced coordinates (xred) + 9.82426830640032E-01 1.28410007135204E-02 2.25186584033502E-02 + 2.32426826359967E-01 2.62841006086480E-01 2.72518663096650E-01 + Cartesian forces (fcart) [Ha/bohr]; max,rms= 6.01926E-09 4.72550E-09 (free atoms) + -4.31509019239645E-09 3.48419857254510E-09 6.01925811747481E-09 + 4.31509019239645E-09 -3.48419857254510E-09 -6.01925811747481E-09 + Reduced forces (fred) + -5.26878661109743E-09 -4.88712402802012E-08 -3.86541719595376E-08 + 5.26878661109743E-09 4.88712402802012E-08 3.86541719595376E-08 + Scale of Primitive Cell (acell) [bohr] + 1.05870703398849E+00 1.05870703398849E+00 1.05870703398849E+00 + Real space primitive translations (rprimd) [bohr] + -6.27333664852451E+00 0.00000000000000E+00 -3.62191260269429E+00 + -6.27333664852451E+00 0.00000000000000E+00 3.62191260269429E+00 + -4.18222443238496E+00 5.91455851320761E+00 0.00000000000000E+00 + Unitary Cell Volume (ucvol) [Bohr^3]= 2.68775011253160E+02 + Angles (23,13,12)= [degrees] + 6.00000000000409E+01 6.00000000000409E+01 5.99999999993358E+01 + Lengths [Bohr] + 7.24382520546130E+00 7.24382520546130E+00 7.24382520557988E+00 + Stress tensor in cartesian coordinates (strten) [Ha/bohr^3] + -3.20727739712347E-07 -1.63898544952095E-12 -3.09387149959647E-11 + -1.63898544952095E-12 -3.20702233889091E-07 5.66233372130464E-14 + -3.09387149959647E-11 5.66233372130464E-14 -3.20697799309705E-07 + Total energy (etotal) [Ha]= -8.82349066071474E+00 + + Difference of energy with previous step (new-old): + Absolute (Ha)=-1.07585E-04 + Relative =-1.21931E-05 + + At Broyd/MD step 4, gradients are converged : + max grad (force/stress) = 3.2071E-05 < tolmxf= 5.0000E-05 ha/bohr (free atoms) + +================================================================================ + + ----iterations are completed or convergence reached---- + + Mean square residual over all n,k,spin= 4.4159E-18; max= 2.6368E-16 + 0.0000 0.0000 0.0000 1 6.98492E-17 kpt; spin; max resid(k); each band: + 7.57E-28 6.24E-21 6.72E-22 2.76E-23 6.98E-17 + 0.2500 0.0000 0.0000 1 9.62988E-23 kpt; spin; max resid(k); each band: + 1.02E-25 9.68E-25 9.63E-23 4.19E-23 1.53E-23 + 0.5000 0.0000 0.0000 1 5.52546E-23 kpt; spin; max resid(k); each band: + 6.27E-27 5.73E-27 5.53E-23 4.47E-23 4.58E-24 + 0.0000 0.2500 0.0000 1 1.93981E-23 kpt; spin; max resid(k); each band: + 7.13E-26 9.09E-25 1.94E-23 1.12E-23 1.59E-23 + 0.2500 0.2500 0.0000 1 6.71956E-23 kpt; spin; max resid(k); each band: + 1.59E-26 6.72E-23 2.94E-23 5.63E-25 2.55E-24 + 0.5000 0.2500 0.0000 1 3.14297E-24 kpt; spin; max resid(k); each band: + 6.62E-25 1.01E-24 3.14E-24 5.63E-25 1.42E-24 + -0.2500 0.2500 0.0000 1 1.69217E-23 kpt; spin; max resid(k); each band: + 1.14E-25 1.69E-23 1.70E-24 2.28E-25 8.41E-24 + 0.0000 0.5000 0.0000 1 1.44249E-23 kpt; spin; max resid(k); each band: + 5.11E-27 1.08E-26 1.44E-23 1.07E-23 6.55E-25 + 0.2500 0.5000 0.0000 1 3.39503E-24 kpt; spin; max resid(k); each band: + 1.55E-24 9.37E-25 3.40E-24 1.81E-25 5.95E-25 + 0.5000 0.5000 0.0000 1 7.20956E-20 kpt; spin; max resid(k); each band: + 4.87E-25 8.81E-26 4.07E-26 6.04E-26 7.21E-20 + 0.0000 0.0000 0.2500 1 2.54528E-23 kpt; spin; max resid(k); each band: + 5.65E-26 2.00E-24 2.55E-23 1.63E-23 1.10E-23 + 0.2500 0.0000 0.2500 1 2.66078E-23 kpt; spin; max resid(k); each band: + 4.68E-26 2.66E-23 3.82E-24 1.18E-23 8.61E-24 + 0.5000 0.0000 0.2500 1 8.51935E-24 kpt; spin; max resid(k); each band: + 4.59E-24 1.88E-24 8.52E-24 5.51E-24 8.95E-25 + -0.2500 0.0000 0.2500 1 6.94904E-24 kpt; spin; max resid(k); each band: + 3.30E-25 2.71E-24 6.95E-24 9.99E-25 9.40E-25 + 0.0000 0.2500 0.2500 1 4.32063E-23 kpt; spin; max resid(k); each band: + 4.88E-26 4.32E-23 1.38E-23 5.37E-24 4.16E-24 + 0.2500 0.2500 0.2500 1 1.01956E-22 kpt; spin; max resid(k); each band: + 7.20E-27 1.50E-24 1.02E-22 3.97E-23 9.33E-24 + 0.5000 0.2500 0.2500 1 7.89843E-24 kpt; spin; max resid(k); each band: + 5.93E-25 5.21E-24 7.90E-24 6.11E-25 1.72E-24 + -0.2500 0.2500 0.2500 1 2.89261E-23 kpt; spin; max resid(k); each band: + 5.14E-24 1.61E-24 2.89E-23 7.17E-24 5.09E-25 + 0.0000 0.5000 0.2500 1 4.81936E-24 kpt; spin; max resid(k); each band: + 3.01E-24 7.48E-25 4.82E-24 2.76E-24 4.09E-25 + 0.2500 0.5000 0.2500 1 9.40551E-24 kpt; spin; max resid(k); each band: + 4.83E-25 9.41E-24 1.70E-24 3.24E-25 5.33E-24 + 0.5000 0.5000 0.2500 1 2.92613E-23 kpt; spin; max resid(k); each band: + 2.56E-25 5.26E-25 2.93E-23 7.22E-24 4.35E-25 + -0.2500 0.5000 0.2500 1 2.43663E-16 kpt; spin; max resid(k); each band: + 1.36E-24 8.18E-25 7.49E-24 4.01E-24 2.44E-16 + 0.0000 -0.2500 0.2500 1 7.97802E-24 kpt; spin; max resid(k); each band: + 6.34E-25 7.98E-24 1.17E-24 3.64E-25 3.28E-24 + 0.2500 -0.2500 0.2500 1 2.46231E-24 kpt; spin; max resid(k); each band: + 2.46E-24 9.44E-25 4.20E-25 1.13E-24 9.00E-25 + 0.5000 -0.2500 0.2500 1 1.57581E-18 kpt; spin; max resid(k); each band: + 1.55E-22 4.52E-23 5.90E-23 2.83E-23 1.58E-18 + -0.2500 -0.2500 0.2500 1 2.85258E-23 kpt; spin; max resid(k); each band: + 1.04E-24 1.32E-24 2.85E-23 6.98E-24 3.31E-25 + 0.0000 0.0000 0.5000 1 2.10840E-23 kpt; spin; max resid(k); each band: + 4.16E-27 4.92E-27 2.11E-23 1.66E-23 1.04E-24 + 0.2500 0.0000 0.5000 1 8.26413E-24 kpt; spin; max resid(k); each band: + 3.72E-24 1.79E-24 8.26E-24 4.13E-24 3.67E-25 + 0.5000 0.0000 0.5000 1 4.46985E-20 kpt; spin; max resid(k); each band: + 1.14E-23 4.40E-24 3.99E-24 7.63E-25 4.47E-20 + 0.0000 0.2500 0.5000 1 3.88605E-24 kpt; spin; max resid(k); each band: + 5.35E-25 8.58E-25 3.89E-24 4.14E-25 5.00E-25 + 0.2500 0.2500 0.5000 1 1.09213E-23 kpt; spin; max resid(k); each band: + 2.13E-25 1.08E-24 1.09E-23 5.27E-25 1.40E-24 + 0.5000 0.2500 0.5000 1 1.53671E-24 kpt; spin; max resid(k); each band: + 1.54E-24 1.16E-24 3.36E-25 1.44E-25 3.42E-25 + -0.2500 0.2500 0.5000 1 2.63678E-16 kpt; spin; max resid(k); each band: + 2.06E-22 4.60E-23 6.70E-23 4.29E-23 2.64E-16 + 0.0000 0.5000 0.5000 1 2.15968E-16 kpt; spin; max resid(k); each band: + 2.89E-25 2.27E-25 4.48E-26 7.75E-26 2.16E-16 + 0.2500 0.5000 0.5000 1 2.92514E-23 kpt; spin; max resid(k); each band: + 2.27E-24 1.48E-24 2.93E-23 5.58E-24 4.60E-25 + 0.5000 0.5000 0.5000 1 5.06443E-23 kpt; spin; max resid(k); each band: + 6.42E-27 5.32E-27 5.06E-23 4.22E-23 2.01E-24 + reduced coordinates (array xred) for 2 atoms + 0.982426830640 0.012841000714 0.022518658403 + 0.232426826360 0.262841006086 0.272518663097 + rms dE/dt= 3.6103E-08; max dE/dt= 4.8871E-08; dE/dt below (all hartree) + 1 -0.000000005269 -0.000000048871 -0.000000038654 + 2 0.000000005269 0.000000048871 0.000000038654 + + cartesian coordinates (angstrom) at end: + 1 -3.35383425915204 0.07048001318697 -1.85834078054587 + 2 -2.24726534776787 0.85294241889165 0.05829283880615 + + cartesian forces (hartree/bohr) at end: + 1 -0.00000000431509 0.00000000348420 0.00000000601926 + 2 0.00000000431509 -0.00000000348420 -0.00000000601926 + frms,max,avg= 4.7255021E-09 6.0192581E-09 0.000E+00 0.000E+00 0.000E+00 h/b + + cartesian forces (eV/Angstrom) at end: + 1 -0.00000022189084 0.00000017916468 0.00000030952267 + 2 0.00000022189084 -0.00000017916468 -0.00000030952267 + frms,max,avg= 2.4299507E-07 3.0952267E-07 0.000E+00 0.000E+00 0.000E+00 e/A + length scales= 1.058707033988 1.058707033988 1.058707033988 bohr + = 0.560243632961 0.560243632961 0.560243632961 angstroms + prteigrs : about to open file /Users/gmatteo/Coding/git_branches/abipy/abipy/data/runs/flow_relax/w0/t1/outdata/out_EIG + Fermi (or HOMO) energy (hartree) = 0.21844 Average Vxc (hartree)= -0.35324 + Eigenvalues (hartree) for nkpt= 36 k points: + kpt# 1, nband= 5, wtk= 0.01563, kpt= 0.0000 0.0000 0.0000 (reduced coord) + -0.21939 0.21844 0.21844 0.21844 0.31075 + kpt# 2, nband= 5, wtk= 0.03125, kpt= 0.2500 0.0000 0.0000 (reduced coord) + -0.18884 0.07436 0.18858 0.18858 0.29651 + kpt# 3, nband= 5, wtk= 0.01563, kpt= 0.5000 0.0000 0.0000 (reduced coord) + -0.12903 -0.04037 0.17170 0.17170 0.27809 + kpt# 4, nband= 5, wtk= 0.03125, kpt= 0.0000 0.2500 0.0000 (reduced coord) + -0.18884 0.07436 0.18858 0.18858 0.29651 + kpt# 5, nband= 5, wtk= 0.03125, kpt= 0.2500 0.2500 0.0000 (reduced coord) + -0.17789 0.09382 0.14558 0.14558 0.26023 + kpt# 6, nband= 5, wtk= 0.03125, kpt= 0.5000 0.2500 0.0000 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 7, nband= 5, wtk= 0.03125, kpt= -0.2500 0.2500 0.0000 (reduced coord) + -0.14235 0.01908 0.07575 0.16672 0.30941 + kpt# 8, nband= 5, wtk= 0.01563, kpt= 0.0000 0.5000 0.0000 (reduced coord) + -0.12903 -0.04037 0.17170 0.17170 0.27809 + kpt# 9, nband= 5, wtk= 0.03125, kpt= 0.2500 0.5000 0.0000 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 10, nband= 5, wtk= 0.01563, kpt= 0.5000 0.5000 0.0000 (reduced coord) + -0.06507 -0.06507 0.10896 0.10896 0.24476 + kpt# 11, nband= 5, wtk= 0.03125, kpt= 0.0000 0.0000 0.2500 (reduced coord) + -0.18884 0.07436 0.18858 0.18858 0.29651 + kpt# 12, nband= 5, wtk= 0.03125, kpt= 0.2500 0.0000 0.2500 (reduced coord) + -0.17789 0.09382 0.14558 0.14558 0.26023 + kpt# 13, nband= 5, wtk= 0.03125, kpt= 0.5000 0.0000 0.2500 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 14, nband= 5, wtk= 0.03125, kpt= -0.2500 0.0000 0.2500 (reduced coord) + -0.14235 0.01908 0.07575 0.16672 0.30941 + kpt# 15, nband= 5, wtk= 0.03125, kpt= 0.0000 0.2500 0.2500 (reduced coord) + -0.17789 0.09382 0.14558 0.14558 0.26023 + kpt# 16, nband= 5, wtk= 0.03125, kpt= 0.2500 0.2500 0.2500 (reduced coord) + -0.18884 0.07436 0.18858 0.18858 0.29651 + kpt# 17, nband= 5, wtk= 0.03125, kpt= 0.5000 0.2500 0.2500 (reduced coord) + -0.14235 0.01908 0.07575 0.16672 0.30941 + kpt# 18, nband= 5, wtk= 0.03125, kpt= -0.2500 0.2500 0.2500 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 19, nband= 5, wtk= 0.03125, kpt= 0.0000 0.5000 0.2500 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 20, nband= 5, wtk= 0.03125, kpt= 0.2500 0.5000 0.2500 (reduced coord) + -0.14235 0.01908 0.07575 0.16672 0.30941 + kpt# 21, nband= 5, wtk= 0.03125, kpt= 0.5000 0.5000 0.2500 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 22, nband= 5, wtk= 0.03125, kpt= -0.2500 0.5000 0.2500 (reduced coord) + -0.05977 -0.05977 0.07099 0.07099 0.37911 + kpt# 23, nband= 5, wtk= 0.03125, kpt= 0.0000 -0.2500 0.2500 (reduced coord) + -0.14235 0.01908 0.07575 0.16672 0.30941 + kpt# 24, nband= 5, wtk= 0.03125, kpt= 0.2500 -0.2500 0.2500 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 25, nband= 5, wtk= 0.03125, kpt= 0.5000 -0.2500 0.2500 (reduced coord) + -0.05977 -0.05977 0.07099 0.07099 0.37911 + kpt# 26, nband= 5, wtk= 0.03125, kpt= -0.2500 -0.2500 0.2500 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 27, nband= 5, wtk= 0.01563, kpt= 0.0000 0.0000 0.5000 (reduced coord) + -0.12903 -0.04037 0.17170 0.17170 0.27809 + kpt# 28, nband= 5, wtk= 0.03125, kpt= 0.2500 0.0000 0.5000 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 29, nband= 5, wtk= 0.01563, kpt= 0.5000 0.0000 0.5000 (reduced coord) + -0.06507 -0.06507 0.10896 0.10896 0.24476 + kpt# 30, nband= 5, wtk= 0.03125, kpt= 0.0000 0.2500 0.5000 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 31, nband= 5, wtk= 0.03125, kpt= 0.2500 0.2500 0.5000 (reduced coord) + -0.14235 0.01908 0.07575 0.16672 0.30941 + kpt# 32, nband= 5, wtk= 0.03125, kpt= 0.5000 0.2500 0.5000 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 33, nband= 5, wtk= 0.03125, kpt= -0.2500 0.2500 0.5000 (reduced coord) + -0.05977 -0.05977 0.07099 0.07099 0.37911 + kpt# 34, nband= 5, wtk= 0.01563, kpt= 0.0000 0.5000 0.5000 (reduced coord) + -0.06507 -0.06507 0.10896 0.10896 0.24476 + kpt# 35, nband= 5, wtk= 0.03125, kpt= 0.2500 0.5000 0.5000 (reduced coord) + -0.11749 -0.01464 0.08458 0.13338 0.27492 + kpt# 36, nband= 5, wtk= 0.01563, kpt= 0.5000 0.5000 0.5000 (reduced coord) + -0.12903 -0.04037 0.17170 0.17170 0.27809 + Total charge density [el/Bohr^3] +, Maximum= 8.7741E-02 at reduced coord. 0.1333 0.1333 0.1333 +,Next maximum= 8.7730E-02 at reduced coord. 0.6000 0.1333 0.1333 +, Minimum= 3.3765E-03 at reduced coord. 0.4667 0.5333 0.5333 +,Next minimum= 3.4027E-03 at reduced coord. 0.7333 0.7333 0.8000 +, Integrated= 8.0000E+00 + +-------------------------------------------------------------------------------- + Components of total free energy (in Hartree) : + + Kinetic energy = 2.96263789469485E+00 + Hartree energy = 5.39051055654384E-01 + XC energy = -3.53513299408573E+00 + Ewald energy = -8.41332598253905E+00 + PspCore energy = 8.53573292961368E-02 + Loc. psp. energy= -2.49606077883060E+00 + NL psp energy= 2.03398281509527E+00 + >>>>>>>>> Etotal= -8.82349066071474E+00 + + Other information on the energy : + Total energy(eV)= -2.40099391353834E+02 ; Band energy (Ha)= 2.6137564682E-01 +-------------------------------------------------------------------------------- + + Cartesian components of stress tensor (hartree/bohr^3) + sigma(1 1)= -3.20727740E-07 sigma(3 2)= 5.66233372E-14 + sigma(2 2)= -3.20702234E-07 sigma(3 1)= -3.09387150E-11 + sigma(3 3)= -3.20697799E-07 sigma(2 1)= -1.63898545E-12 + +-Cartesian components of stress tensor (GPa) [Pressure= 9.4356E-03 GPa] +- sigma(1 1)= -9.43613429E-03 sigma(3 2)= 1.66591582E-09 +- sigma(2 2)= -9.43538389E-03 sigma(3 1)= -9.10248268E-07 +- sigma(3 3)= -9.43525342E-03 sigma(2 1)= -4.82206086E-08 + +== END DATASET(S) ============================================================== +================================================================================ + + -outvars: echo values of variables after computation -------- + accesswff 1 + acell 1.0587070340E+00 1.0587070340E+00 1.0587070340E+00 Bohr + amu 2.80855000E+01 + chksymbreak 0 + dilatmx 1.05000000E+00 + ecut 4.00000000E+00 Hartree + ecutsm 5.00000000E-01 Hartree + etotal -8.8234906607E+00 + fcart -4.3150901924E-09 3.4841985725E-09 6.0192581175E-09 + 4.3150901924E-09 -3.4841985725E-09 -6.0192581175E-09 +- fftalg 312 + fft_opt_lob 2 + ionmov 2 + iprcch 6 + istwfk 2 0 1 0 0 0 0 1 0 1 + 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 1 0 1 0 + 0 0 0 1 0 1 + kpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2.50000000E-01 0.00000000E+00 0.00000000E+00 + 5.00000000E-01 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 2.50000000E-01 0.00000000E+00 + 2.50000000E-01 2.50000000E-01 0.00000000E+00 + 5.00000000E-01 2.50000000E-01 0.00000000E+00 + -2.50000000E-01 2.50000000E-01 0.00000000E+00 + 0.00000000E+00 5.00000000E-01 0.00000000E+00 + 2.50000000E-01 5.00000000E-01 0.00000000E+00 + 5.00000000E-01 5.00000000E-01 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 2.50000000E-01 + 2.50000000E-01 0.00000000E+00 2.50000000E-01 + 5.00000000E-01 0.00000000E+00 2.50000000E-01 + -2.50000000E-01 0.00000000E+00 2.50000000E-01 + 0.00000000E+00 2.50000000E-01 2.50000000E-01 + 2.50000000E-01 2.50000000E-01 2.50000000E-01 + 5.00000000E-01 2.50000000E-01 2.50000000E-01 + -2.50000000E-01 2.50000000E-01 2.50000000E-01 + 0.00000000E+00 5.00000000E-01 2.50000000E-01 + 2.50000000E-01 5.00000000E-01 2.50000000E-01 + 5.00000000E-01 5.00000000E-01 2.50000000E-01 + -2.50000000E-01 5.00000000E-01 2.50000000E-01 + 0.00000000E+00 -2.50000000E-01 2.50000000E-01 + 2.50000000E-01 -2.50000000E-01 2.50000000E-01 + 5.00000000E-01 -2.50000000E-01 2.50000000E-01 + -2.50000000E-01 -2.50000000E-01 2.50000000E-01 + 0.00000000E+00 0.00000000E+00 5.00000000E-01 + 2.50000000E-01 0.00000000E+00 5.00000000E-01 + 5.00000000E-01 0.00000000E+00 5.00000000E-01 + 0.00000000E+00 2.50000000E-01 5.00000000E-01 + 2.50000000E-01 2.50000000E-01 5.00000000E-01 + 5.00000000E-01 2.50000000E-01 5.00000000E-01 + -2.50000000E-01 2.50000000E-01 5.00000000E-01 + 0.00000000E+00 5.00000000E-01 5.00000000E-01 + 2.50000000E-01 5.00000000E-01 5.00000000E-01 + 5.00000000E-01 5.00000000E-01 5.00000000E-01 + kptrlatt 4 0 0 0 4 0 0 0 4 + kptrlen 2.73685731E+01 +P mkmem 18 + natom 2 + nband 5 + ngfft 15 15 15 + nkpt 36 +- npkpt 2 + nsym 2 + ntime 5 + ntypat 1 + occ 2.000000 2.000000 2.000000 2.000000 0.000000 + optcell 1 + optforces 1 + ortalg -2 + paral_kgb 1 + rprim -5.9254698865E+00 0.0000000000E+00 -3.4210716340E+00 + -5.9254698865E+00 0.0000000000E+00 3.4210716340E+00 + -3.9503132577E+00 5.5865865847E+00 0.0000000000E+00 + spgroup 2 + strten -3.2072773971E-07 -3.2070223389E-07 -3.2069779931E-07 + 5.6623337213E-14 -3.0938714996E-11 -1.6389854495E-12 + symrel 1 0 0 0 1 0 0 0 1 -1 0 0 0 -1 0 0 0 -1 + tnons 0.0000000 0.0000000 0.0000000 0.2148537 0.2756820 0.2950373 + tolrff 2.00000000E-02 + typat 1 1 + wfoptalg 14 + wtk 0.01563 0.03125 0.01563 0.03125 0.03125 0.03125 + 0.03125 0.01563 0.03125 0.01563 0.03125 0.03125 + 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 + 0.03125 0.03125 0.03125 0.03125 0.03125 0.03125 + 0.03125 0.03125 0.01563 0.03125 0.01563 0.03125 + 0.03125 0.03125 0.03125 0.01563 0.03125 0.01563 + xangst -3.3538342592E+00 7.0480013187E-02 -1.8583407805E+00 + -2.2472653478E+00 8.5294241889E-01 5.8292838806E-02 + xcart -6.3378282449E+00 1.3318792277E-01 -3.5117551368E+00 + -4.2467160552E+00 1.6118275788E+00 1.1015750085E-01 + xred 9.8242683064E-01 1.2841000714E-02 2.2518658403E-02 + 2.3242682636E-01 2.6284100609E-01 2.7251866310E-01 + znucl 14.00000 + +================================================================================ + + +- Timing analysis has been suppressed with timopt=0 + + + +================================================================================ + + Suggested references for the acknowledgment of ABINIT usage. + + The users of ABINIT have little formal obligations with respect to the ABINIT group + (those specified in the GNU General Public License, http://www.gnu.org/copyleft/gpl.txt). + However, it is common practice in the scientific literature, + to acknowledge the efforts of people that have made the research possible. + In this spirit, please find below suggested citations of work written by ABINIT developers, + corresponding to implementations inside of ABINIT that you have used in the present run. + Note also that it will be of great value to readers of publications presenting these results, + to read papers enabling them to understand the theoretical formalism and details + of the ABINIT implementation. + For information on why they are suggested, see also http://www.abinit.org/about/?text=acknowledgments. + + [1] Large scale ab initio calculations based on three levels of parallelization + F. Bottin, S. Leroux, A. Knyazev, G. Zerah, Comput. Mat. Science 42, 329, (2008). + Comment : in case paral_kgb is non-zero. Strong suggestion to cite this paper in your publications. + This paper is also available at http://www.arxiv.org/abs/0707.3405 + + [2] ABINIT : First-principles approach of materials and nanosystem properties. + X. Gonze, B. Amadon, P.-M. Anglade, J.-M. Beuken, F. Bottin, P. Boulanger, F. Bruneval, + D. Caliste, R. Caracas, M. Cote, T. Deutsch, L. Genovese, Ph. Ghosez, M. Giantomassi + S. Goedecker, D.R. Hamann, P. Hermet, F. Jollet, G. Jomard, S. Leroux, M. Mancini, S. Mazevet, + M.J.T. Oliveira, G. Onida, Y. Pouillon, T. Rangel, G.-M. Rignanese, D. Sangalli, R. Shaltaf, + M. Torrent, M.J. Verstraete, G. Zerah, J.W. Zwanziger + Computer Phys. Comm. 180, 2582-2615 (2009). + Comment : the third generic paper describing the ABINIT project. + Note that a version of this paper, that is not formatted for Computer Phys. Comm. + is available at http://www.abinit.org/about/ABINIT_CPC_v10.pdf . + The licence allows the authors to put it on the Web. + + [3] A brief introduction to the ABINIT software package. + X. Gonze, G.-M. Rignanese, M. Verstraete, J.-M. Beuken, Y. Pouillon, R. Caracas, F. Jollet, + M. Torrent, G. Zerah, M. Mikami, Ph. Ghosez, M. Veithen, J.-Y. Raty, V. Olevano, F. Bruneval, + L. Reining, R. Godby, G. Onida, D.R. Hamann, and D.C. Allan. + Z. Kristallogr. 220, 558-562 (2005). + Comment : the second generic paper describing the ABINIT project. Note that this paper + should be cited especially if you are using the GW part of ABINIT, as several authors + of this part are not in the list of authors of the first or third paper. + The .pdf of the latter paper is available at http://www.abinit.org/about/zfk_0505-06_558-562.pdf. + Note that it should not redistributed (Copyright by Oldenburg Wissenshaftverlag, + the licence allows the authors to put it on the Web). + + + And optionally : + + [4] First-principles computation of material properties : the ABINIT software project. + X. Gonze, J.-M. Beuken, R. Caracas, F. Detraux, M. Fuchs, G.-M. Rignanese, L. Sindic, + M. Verstraete, G. Zerah, F. Jollet, M. Torrent, A. Roy, M. Mikami, Ph. Ghosez, J.-Y. Raty, D.C. Allan. + Computational Materials Science 25, 478-492 (2002). http://dx.doi.org/10.1016/S0927-0256(02)00325-7 + Comment : the original paper describing the ABINIT project. + + [5] Fast radix 2, 3, 4 and 5 kernels for Fast Fourier Transformations + on computers with overlapping multiply-add instructions. + S. Goedecker, SIAM J. on Scientific Computing 18, 1605 (1997). +- +- Proc. 0 individual time (sec): cpu= 4.3 wall= 5.1 + +================================================================================ + + Calculation completed. +.Delivered 0 WARNINGs and 2 COMMENTs to log file. ++Overall time at end (sec) : cpu= 9.1 wall= 10.2 diff --git a/abipy/data/tests/test_data.py b/abipy/data/tests/test_data.py index 37a7a863c..2ce7affb5 100644 --- a/abipy/data/tests/test_data.py +++ b/abipy/data/tests/test_data.py @@ -23,10 +23,11 @@ def test_data_api(self): structure = abidata.structure_from_cif("gan2.cif") assert hasattr(structure, "to_abivars") - structure = abidata.structure_from_mpid("mp-4820") - assert hasattr(structure, "to_abivars") - with self.assertRaises(KeyError): - abidata.structure_from_mpid("foobar") + if self.test_mprester(): + structure = abidata.structure_from_mpid("mp-4820") + assert hasattr(structure, "to_abivars") + with self.assertRaises(KeyError): + abidata.structure_from_mpid("foobar") class FilesGeneratorTest(AbipyTest): diff --git a/abipy/data/ucells.py b/abipy/data/ucells.py index a148f8bd4..8a3011ced 100644 --- a/abipy/data/ucells.py +++ b/abipy/data/ucells.py @@ -1,6 +1,8 @@ """Database of unit cells in the ABINIT format.""" +from __future__ import annotations -from abipy.abilab import Structure, ArrayWithUnit +from pymatgen.core.units import ArrayWithUnit +from abipy.core import Structure __all__ = [ "ucell_names", @@ -10,17 +12,17 @@ # Public API -def ucell_names(): +def ucell_names() -> list[str]: """List with the name of the entries.""" return list(_UCELLS.keys()) -def ucell(name): +def ucell(name: str) -> dict: """Return the entry in the database with the given name.""" return _UCELLS[name].copy() -def structure_from_ucell(name): +def structure_from_ucell(name: str) -> Structure: """Returns a `Structure` from the name of entry in the database.""" try: return Structure.from_abivars(ucell(name)) @@ -162,7 +164,7 @@ def structure_from_ucell(name): 0.143, -0.272, -0.120 , #O 0.272, 0.415, 0.5466666666666666, #O -0.415, -0.143, 0.2133333333333333] #O - ), + ), } #dict(natom=, diff --git a/abipy/dfpt/anaddbnc.py b/abipy/dfpt/anaddbnc.py index dc95225cd..4d5e63dcb 100644 --- a/abipy/dfpt/anaddbnc.py +++ b/abipy/dfpt/anaddbnc.py @@ -2,8 +2,10 @@ """ AnaddbNcFile provides a high-level interface to the data stored in the anaddb.nc file. """ +from __future__ import annotations + import pandas as pd -import warnings +#import warnings from collections import OrderedDict from monty.functools import lazy_property @@ -12,6 +14,7 @@ from abipy.core.mixins import AbinitNcFile, Has_Structure, NotebookWriter from abipy.abio.robots import Robot from abipy.iotools import ETSF_Reader +from abipy.tools.typing import Figure from abipy.tools.plotting import add_fig_kwargs, get_axarray_fig_plt, rotate_ticklabels from abipy.tools.tensors import Tensor, DielectricTensor, NLOpticalSusceptibilityTensor from abipy.dfpt.ifc import InteratomicForceConstants @@ -46,11 +49,11 @@ class AnaddbNcFile(AbinitNcFile, Has_Structure, NotebookWriter): """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> AnaddbNcFile: """Initialize the object from file.""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = ETSF_Reader(filepath) @@ -71,10 +74,10 @@ def params(self): ("symdynmat", int(self.reader.read_value("symdynmat", default=-666))), ]) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """ String representation @@ -149,14 +152,6 @@ def epsinf(self): #print(exc, "Returning None", sep="\n") return None - # FIXME To maintain backward compatibility - @property - def emacro(self): - msg = "emacro is deprecated. It will removed in abipy 0.8. Use epsinf" - warnings.simplefilter('default') - warnings.warn(msg, DeprecationWarning, stacklevel=2) - return self.epsinf - @lazy_property def eps0(self): """ @@ -169,14 +164,6 @@ def eps0(self): #print(exc, "Requires dieflag > 0", "Returning None", sep="\n") return None - # FIXME To maintain backward compatibility - @property - def emacro_rlx(self): - msg = "emacro_rlx is deprecated and will removed in abipy 0.8. Use eps0" - warnings.simplefilter('default') - warnings.warn(msg, DeprecationWarning, stacklevel=2) - return self.eps0 - @lazy_property def becs(self): """ @@ -186,7 +173,6 @@ def becs(self): try: return Becs(self.reader.read_value("becs_cart"), self.structure, chneut=chneut, order="f") except Exception as exc: - #print(exc, "Returning None", sep="\n") return None @lazy_property @@ -254,23 +240,37 @@ def oscillator_strength(self): return None @lazy_property - def has_elastic_data(self): + def has_elastic_data(self) -> bool: """True if elastic tensors have been computed.""" return self.reader.read_value("elaflag", default=0) != 0 @lazy_property - def has_piezoelectric_data(self): + def has_piezoelectric_data(self) -> bool: """True if piezoelectric tensors have been computed.""" return self.reader.read_value("piezoflag", default=0) != 0 @lazy_property - def elastic_data(self): + def elastic_data(self) -> ElasticData: """ Container with the different (piezo)elastic tensors computed by anaddb. stored in pymatgen tensor objects. """ return ElasticData.from_ncreader(self.reader) + @lazy_property + def amu(self): + """ + Dictionary with atomic_number as keys and the atomic massu units as values. + """ + amu_list = self.reader.read_value("atomic_mass_units", default=None) + if amu_list is not None: + atomic_numbers = self.reader.read_value("atomic_numbers") + amu = {at: a for at, a in zip(atomic_numbers, amu_list)} + else: + amu = None + + return amu + def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. @@ -278,7 +278,7 @@ def yield_figs(self, **kwargs): # pragma: no cover """ yield None - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write an jupyter_ notebook to nbpath. If ``nbpath`` is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -303,7 +303,7 @@ class AnaddbNcRobot(Robot): EXT = "anaddb" @property - def has_elastic_data(self): + def has_elastic_data(self) -> bool: return all(ncfile.has_elastic_data for ncfile in self.abifiles) def get_dataframe(self): @@ -311,7 +311,8 @@ def get_dataframe(self): return self.get_elastic_dataframe() return None - def get_elastic_dataframe(self, with_geo=True, abspath=False, with_params=False, funcs=None, **kwargs): + def get_elastic_dataframe(self, with_geo=True, abspath=False, with_params + =False, funcs=None, **kwargs) -> pd.DataFrame: """ Return a |pandas-DataFrame| with properties derived from the elastic tensor and an associated structure. Filename is used as index. diff --git a/abipy/dfpt/converters.py b/abipy/dfpt/converters.py new file mode 100644 index 000000000..734c6375b --- /dev/null +++ b/abipy/dfpt/converters.py @@ -0,0 +1,802 @@ +""" +Converters between abinit/abipy format and other external tools. +Some portions of the code have been imported from the ConvertDDB.py script +developed by Hu Xe, Eric Bousquet and Aldo Romero. +""" +from __future__ import annotations + +import os +import itertools +import warnings +import numpy as np +import abipy.core.abinit_units as abu + +from monty.dev import requires +from monty.os import makedirs_p +from pymatgen.io.phonopy import get_phonopy_structure, get_pmg_structure +from pymatgen.io.vasp.inputs import Poscar +from abipy.core.structure import Structure +from abipy.tools.typing import VectorLike +from abipy.dfpt.ddb import DdbFile +from abipy.abio.factories import minimal_scf_input +from abipy.electrons.gsr import GsrFile +try: + from phonopy import Phonopy, load + from phonopy.file_IO import write_FORCE_CONSTANTS, parse_FORCE_CONSTANTS, parse_BORN, parse_FORCE_SETS + from phonopy.interface.calculator import get_default_physical_units, get_force_constant_conversion_factor + from phonopy.harmonic import force_constants + +except ImportError: + Phonopy = None + + +@requires(Phonopy, "phonopy not installed!") +def abinit_to_phonopy(anaddbnc, supercell_matrix, symmetrize_tensors=False, output_dir_path=None, + prefix_outfiles="", symprec=1e-5, set_masses=False): + """ + Converts the interatomic force constants(IFC), born effective charges(BEC) and dielectric + tensor obtained from anaddb to the phonopy format. Optionally writes the + standard phonopy files to a selected directory: FORCE_CONSTANTS, BORN (if BECs are available) + POSCAR of the unit cell, POSCAR of the supercell. + + The conversion is performed taking the IFC in the Wigner–Seitz supercell with weights + as produced by anaddb and reorganizes them in a standard supercell multiple of the + unit cell. Operations are vectorized using numpy. This may lead to the allocation of + large arrays in case of very large supercells. + + Performs a check to verify if the two codes identify the same symmetries and it gives a + warning in case of failure. Mismatching symmetries may lead to incorrect conversions. + + Args: + anaddbnc: an instance of AnaddbNcFile. Should contain the output of the IFC analysis, + the BEC and the dielectric tensor. + supercell_matrix: the supercell matrix used for phonopy. Any choice is acceptable, however + the best agreement between the abinit and phonopy results is obtained if this is set to + a diagonal matrix with on the diagonal the ngqpt used to generate the anaddb.nc. + symmetrize_tensors: if True the tensors will be symmetrized in the Phonopy object and + in the output files. This will apply to IFC, BEC and dielectric tensor. + output_dir_path: a path to a directory where the phonopy files will be created + prefix_outfiles: a string that will be added as a prefix to the name of the written files + symprec: distance tolerance in Cartesian coordinates to find crystal symmetry in phonopy. + It might be that the value should be tuned so that it leads to the the same symmetries + as in the abinit calculation. + set_masses: if True the atomic masses used by abinit will be added to the PhonopyAtoms + and will be present in the returned Phonopy object. This should improve compatibility + among abinit and phonopy results if frequencies needs to be calculated. + + Returns: + An instance of a Phonopy object that contains the IFC, BEC and dieletric tensor data. + """ + + ifc = anaddbnc.ifc + nac_params = None + becs = None + epsinf = None + if anaddbnc.becs is not None and anaddbnc.epsinf is not None: + becs = anaddbnc.becs.values + epsinf = anaddbnc.epsinf + + # according to the phonopy website 14.399652 is not the coefficient for abinit + # probably it relies on the other conventions in the output. + nac_params = {"born": becs, "dielectric": epsinf, "factor": 14.399652} + + s = anaddbnc.structure + + phon_at = get_phonopy_structure(s) + if set_masses: + phon_at.masses = [anaddbnc.amu[n] for n in phon_at.numbers] + + # use phonopy to get the proper supercell given by the primitive and the matrix + # and convert it to pymatgen + phonon = Phonopy(phon_at, supercell_matrix, primitive_matrix=np.eye(3), nac_params=nac_params, + symprec=symprec) + phon_supercell = phonon.supercell + supercell = get_pmg_structure(phon_supercell) + + abi_hall_num = s.abi_spacegroup.get_spglib_hall_number() + spglib_hall_num = phonon.symmetry.dataset["hall_number"] + if abi_hall_num != spglib_hall_num: + warnings.warn("The hall number obtained based on the DDB symmetries differs " + f"from the one calculated with spglib: {abi_hall_num} versus " + f"{spglib_hall_num}. The conversion may be incorrect. Try changing symprec.") + + # convert to phonopy units + at_cart = ifc.atoms_cart_coord * abu.Bohr_Ang + ifccc = ifc.ifc_cart_coord * abu.Ha_eV / abu.Bohr_Ang ** 2 + weights = ifc.ifc_weights + latt = supercell.lattice + + ifcph = np.zeros((len(s), len(supercell), 3, 3)) + + # loop over the atoms in the primitive cell + # other operations are vectorized using numpy arrays. Some array may require large allocations + for i, (site, c_list, w_list) in enumerate(zip(s, at_cart, weights)): + + ind_w = np.where(w_list > 0) + ifccc_loc = ifccc[i, ind_w[0]] + + w_list = w_list[ind_w] + c_list = c_list[ind_w] + + # align the coordinates of the first atom in the list (the site under consideration) + # with the site in the primitive cell. + c_list = c_list - c_list[0] + site.coords + + # convert to fractional coordinates as needed by the Lattice to get the distances + f_list = latt.get_fractional_coords(c_list) + sc_fcoords = supercell.frac_coords + + # construct the list of sites of the supercell that are closer to sites in + # the primitive cell + dist_and_img = [latt.get_distance_and_image(f_list[0], fc) for fc in sc_fcoords] + # the function gives the translation of the image, but it should be applied to the coordinates. + # Only the positions are needed + nearest_sc_fcoords = [fc + trasl for (_, trasl), fc in zip(dist_and_img, sc_fcoords)] + + # divide by the corresponding weights. Elements with weights 0 were discarded above + ifccc_loc = np.transpose(ifccc_loc, (0, 2, 1)) / w_list[:, None, None] + + # create an array with all the possible pairs + # instantiating this array seems slow but seems still faster than the required loops + coord_pairs = np.array(list(itertools.product(nearest_sc_fcoords, f_list))) + + # find the pairs that match between the coordinates of the modified supercell and the f_list + ind_match = np.where(np.abs(coord_pairs[:, 0] - coord_pairs[:, 1]).sum(axis=1) < 1e-6)[0] + # set the ifc for phonopy in the final array corresponding to the matching indices. + n_points_f_list = len(f_list) + ifcph[i, ind_match // n_points_f_list] = ifccc_loc[ind_match % n_points_f_list] + + phonon.force_constants = ifcph + if symmetrize_tensors: + phonon.symmetrize_force_constants() + + if output_dir_path: + makedirs_p(output_dir_path) + + fc_filepath = os.path.join(output_dir_path, prefix_outfiles+"FORCE_CONSTANTS") + write_FORCE_CONSTANTS(phonon.force_constants, fc_filepath, p2s_map=phonon.primitive.p2s_map) + + if becs is not None and epsinf is not None: + born_filepath = os.path.join(output_dir_path, prefix_outfiles+"BORN") + write_BORN(phon_at, borns=becs, epsilon=epsinf, filename=born_filepath, + symmetrize_tensors=symmetrize_tensors) + + poscar_filepath = os.path.join(output_dir_path, prefix_outfiles+"POSCAR") + poscar = Poscar(s) + poscar.write_file(poscar_filepath, significant_figures=15) + + supercell_filepath = os.path.join(output_dir_path, prefix_outfiles+"supercell_POSCAR") + superce_poscar = Poscar(supercell) + superce_poscar.write_file(supercell_filepath, significant_figures=15) + + return phonon + + +@requires(Phonopy, "phonopy not installed!") +def phonopy_to_abinit(unit_cell=None, supercell_matrix=None, out_ddb_path=None, ngqpt=None, qpt_list=None, + force_constants=None, force_sets=None, phonopy_yaml=None, born=None, + primitive_matrix="auto", symprec=1e-5, tolsym=None, nsym=None, supercell=None, + calculator=None, manager=None, workdir=None, pseudos=None, verbose=False): + """ + Converts the data from phonopy to an abinit DDB file. The data can be provided + in form of arrays or paths to the phonopy files that should be parsed. + The minimal input should contains the FORCE_CONSTANTS or FORCE_SETS, + or the phonopy.yaml ouput from the postprocessing of phonopy + (https://phonopy.github.io/phonopy/output-files.html#phonopy-yaml-and-phonopy-disp-yaml). + If BORN is present the Born effective charges (BEC) and dielectric + tensor will also be added to the DDB. + + The best agreement is obtained with supercell_matrix and ngqpt being + equivalent (i.e. supercell_matrix a diagonal matrix with ngqpt as diagonal + elements). Non diagonal supercell_matrix are allowed as well, but the information + encoded in the DDB will be the result of an interpolation done through phonopy. + + Phonopy is used to convert the IFC to the dynamical matrix. However, in order to + determine the list of q-points in the irreducible Brillouin zone and to prepare the + base for the final DDB file, abinit will be called for a very short and inexpensive run. + + Performs a check to verify if the two codes identify the same symmetries and it gives a + warning in case of failure. Mismatching symmetries may lead to incorrect conversions. + + Args: + unit_cell: a |Structure| object that identifies the unit cell used for the phonopy + calculation. + supercell_matrix: a 3x3 array representing the supercell matrix used to generated the + forces with phonopy. + out_ddb_path: a full path to the file where the new DDB will be written + ngqpt: a list of 3 elements indicating the grid of q points that will be used in the DDB. + qpt_list: alternatively to ngqpt an explicit list of q-points can be provided here. + At least one among ngqpt and qpt_list should be defined. + force_constants: an array with shape (num atoms unit cell, num atoms supercell, 3, 3) + containing the force constants. Alternatively a string with the path to the + FORCE_CONSTANTS file. This or force_sets or phonopy_yaml should be defined. If both given this + has precedence. + force_sets: a dictionary obtained from the force sets generated with phonopy. + Alternatively a string with the path to the FORCE_SETS file. This or force_constants + or phonopy_yaml should be defined. + phonopy_yaml: a filename from the post-processing of phonopy (phonopy.yaml), + see https://phonopy.github.io/phonopy/output-files.html#phonopy-yaml-and-phonopy-disp-yaml + This or force_constants or force_sets should be dependent. Note that the unit_cel, + supercell_matrix, primitive_matrix are included in this file so they do not need to be given. + born: a dictionary with "dielectric" and "born" keywords as obtained from the nac_params + in phonopy. Alternatively a string with the path to the BORN file. Notice that + the "factor" attribute is not taken into account, so the values should be in + default phonopy units. + primitive_matrix: a 3x3 array with the primitive matrix passed to Phonopy. "auto" will + use spglib to try to determine it automatically. If the DDB file should contain the + actual unit cell this should be the identity matrix. + symprec: distance tolerance in Cartesian coordinates to find crystal symmetry in phonopy. + It might be that the value should be tuned so that it leads to the the same symmetries + as in the abinit calculation. + tolsym: Gives the tolerance to identify symmetries in abinit. See abinit documentation for + more details. + supercell: if given it should represent the supercell used to get the force constants, + without any perturbation. It will be used to match it to the phonopy supercell + and sort the IFC in the correct order. + calculator: a string with the name of the calculator. Will be used to set the conversion + factor for the force constants coming from phonopy. + manager: |TaskManager| object. If None, the object is initialized from the configuration file + pseudos: List of filenames or list of |Pseudo| objects or |PseudoTable| object. It will be + used by abinit to generate the base DDB file. If None the abipy.data.hgh_pseudos.HGH_TABLE + table will be used. + verbose: verbosity level. Set it to a value > 0 to get more information + workdir: path to the directory where the abinit calculation will be executed. + + Returns: + a DdbFile instance of the file written in out_ddb_path. + """ + if ngqpt is None and qpt_list is None: + raise ValueError("at least one among nqgpt and qpt_list should be defined") + + if not ((force_sets is not None) or (force_constants is not None) or (phonopy_yaml is not None) ): + raise ValueError("at least one of force_sets and force_constants should be provided") + + + if unit_cell is not None: + phon_at = get_phonopy_structure(unit_cell) + + if isinstance(force_constants, str): + force_constants = parse_FORCE_CONSTANTS(filename=force_constants) + elif force_constants is not None: + force_constants = np.array(force_constants) + force_sets = None + + if isinstance(force_sets, str): + force_sets = parse_FORCE_SETS(filename=force_sets) + + if phonopy_yaml is not None: + phonon=load(phonopy_yaml=phonopy_yaml, + supercell_matrix=supercell_matrix, + primitive_matrix=primitive_matrix, + unitcell=unit_cell, + symprec=symprec, + is_nac=False, + nac_params=None, + calculator=calculator + + ) + else: + # no nac_params here, otherwise they will be used for the interpolation + phonon = Phonopy(phon_at, supercell_matrix, primitive_matrix=primitive_matrix, nac_params=None, + symprec=symprec, calculator=calculator) + + primitive = get_pmg_structure(phonon.primitive) + + if isinstance(born, str): + born = parse_BORN(phonon.primitive, filename=born) + + if supercell is not None: + ph_supercell = get_pmg_structure(phonon.supercell) + if not np.allclose(supercell.lattice.matrix, ph_supercell.lattice.matrix): + raise RuntimeError("The lattice of the supercells do not match") + sc_mapping = [] + for i, site_orig in enumerate(supercell): + for j, site_ph in enumerate(ph_supercell): + d = supercell.lattice.get_distance_and_image(site_orig.frac_coords, site_ph.frac_coords)[0] + if d < 1e-5: + sc_mapping.append(j) + break + else: + raise RuntimeError(f"Could not find a match for site {i} with coords " + f"{site_orig.cart_coords} in the supercell.") + + # cross check that the same atom was not matched twice + n_matches = len(set(sc_mapping)) + if n_matches < len(supercell): + raise RuntimeError(f"Found matches for {n_matches} different atoms in the supercell: {sc_mapping}") + + force_constants = force_constants[:, sc_mapping] + + if force_constants is not None: + phonon.force_constants = force_constants + elif force_sets is not None: + phonon.dataset = force_sets + phonon.produce_force_constants() + else: # phonopy_yaml already included the forceconstants + pass + + if calculator: + units = get_default_physical_units(calculator) + fc_factor = get_force_constant_conversion_factor(units["force_constants_unit"], None) + phonon.force_constants = phonon.force_constants * fc_factor + + if pseudos is None: + from abipy.data.hgh_pseudos import HGH_TABLE + pseudos = HGH_TABLE + + inp = minimal_scf_input(primitive, pseudos) + + # get the qpoints list if not defined + if qpt_list is None: + inp["ngkpt"] = ngqpt + qpt_list = inp.abiget_ibz(verbose=verbose)[0] + + dm_list = get_dm(phonon, qpt_list, primitive) + + if born is not None: + # for the conversion of the BEC the zion (i.e. the ionic charge of the pseudo) + # it is an additive factor and should be the same that goes in the header of the DDB, + # so take it from the pseudos used to generate it. + zion = inp.valence_electrons_per_atom + born_data = generate_born_deriv(born, zion, primitive) + else: + born_data = None + + inp = minimal_scf_input(primitive, pseudos) + if tolsym is not None: + inp["tolsym"] = tolsym + + if nsym is not None: + inp["nsym"] = nsym + + task = inp.run_in_shell(workdir=workdir, manager=manager, verbose=verbose) + + # use the output of abinit to check that the spacegroup identified by + # phonopy and abinit are the same. + with GsrFile(task.opath_from_ext("GSR.nc")) as gsr: + abi_spg = gsr.structure.abi_spacegroup.spgid + spglib_spg = phonon.symmetry.dataset["number"] + if abi_spg != spglib_spg: + warnings.warn("The space group number obtained based on the DDB symmetries differs " + f"from the one calculated with spglib: {abi_spg} versus " + f"{spglib_spg}. The convertion may be incorrect. Try changing symprec or tolsym.") + + tmp_ddb_path = task.opath_from_ext("DDB") + + + + ddb = DdbFile(tmp_ddb_path) + # remove the blocks generated by the calculation and that are meaningless + ddb.remove_block(dord=0) + ddb.remove_block(dord=1) + + add_data_ddb(ddb, dm_list, qpt_list, born_data) + + ddb.write(out_ddb_path) + + new_ddb = DdbFile(out_ddb_path) + return new_ddb + + +def generate_born_deriv(born: dict, zion: VectorLike, structure: Structure) -> np.ndarray: + """ + Helper function to generate the portion of the derivatives in the DDB + that are related to the Born effective charges and dielectric tensor, + starting from the data available in phonopy format. + + Args: + born: a dictionary with "dielectric" and "born" keywords as obtained from the nac_params + in phonopy. + zion: the ionic charge of each atom in the system. It should be in the same order + as the one present in the header of the DDB. + structure: a pymatgen |Structure| of the unit cell. + + Returns: + a complex numpy array with shape (len(structure)+2, 3, len(structure)+2, 3). Only the + parts relative to the BECs and dielectric tensors will be filled. + """ + natoms = len(structure) + mpert = natoms + 2 # only these perturbations are needed here + born_data = np.zeros((3, mpert, 3, mpert), dtype=complex) + + eps_e = born["dielectric"] + bec = np.array(born["born"]).transpose((0, 2, 1)) + + # Assume that for the generated DDB acell = [1,1,1] and rprimd = rprim. Should be in Bohr. + rprim = structure.lattice.matrix * abu.Ang_Bohr + rprimd = rprim + + volume_bohr = np.dot(rprimd[:, 0], np.cross(rprimd[:, 1], rprimd[:, 2])) + gprimd = np.linalg.inv(rprimd) + dij = np.identity(3) + # BEC + for ipert1 in range(natoms): # ipert1 is atom position deriv + ipert2 = natoms + 1 # E field deriv + dm1 = np.matmul(rprimd, + np.matmul(bec[ipert1, :, :] - dij[:, :] * zion[ipert1], gprimd)) + for idir1 in range(3): + for idir2 in range(3): + born_data[idir1, ipert1, idir2, ipert2] = dm1[idir1, idir2] * 2 * np.pi + 0.0j + born_data[idir2, ipert2, idir1, ipert1] = dm1[idir1, idir2] * 2 * np.pi + 0.0j + # epsinf + ipert1 = natoms + 1 + ipert2 = natoms + 1 + dm1 = np.matmul(gprimd.transpose(), + np.matmul(dij[:, :] - eps_e[:, :], gprimd)) + for idir1 in range(3): + for idir2 in range(3): + born_data[idir1, ipert1, idir2, ipert2] = dm1[idir1, idir2] * np.pi * volume_bohr + 0.0j + born_data = born_data.transpose((1, 0, 3, 2)) + return born_data + + +@requires(Phonopy, "phonopy not installed!") +def get_dm(phonon, qpt_list: list, structure: Structure) -> list: + """ + Helper function to generate the dynamical matrix in the abinit conventions + for a list of q-points from a Phonopy object. + + Args: + phonon: a Phonopy object with force constants. + qpt_list: a list of fractional coordinates of q-points for which the + dynamical matrix should be generated. + structure: a pymatgen |Structure| of the primitive cell. + + Returns: + a list of arrays with the dynamical matrices of the selected q-points. + """ + natom = len(structure) + rprim = structure.lattice.matrix * abu.Ang_Bohr + # assume acell is [1., 1., 1.] + rprimd = rprim + masses = phonon.masses + dm_list = [] + mass_tile = np.tile(masses, (3, 1)).T + mass_matrix = np.sqrt(np.einsum("ij,kl", mass_tile, mass_tile)) + # get the difference in coordinates for each pair of atoms + # diff_coords[i,j] is equivalent to structure[i].coords - structure[j].coords + coord_matrix = np.repeat(structure.cart_coords[np.newaxis, :, :], natom, axis=0) + diff_coords = np.transpose(coord_matrix, (1, 0, 2)) - coord_matrix + rlatt = structure.lattice.reciprocal_lattice + for q in qpt_list: + q_cart = rlatt.get_cartesian_coords(q) + # the phase exp(-i * q.r) + phase = np.exp(-1j * np.einsum("ijk,k", diff_coords, q_cart)) + dm = phonon.get_dynamical_matrix_at_q(q).reshape(natom, 3, natom, 3) + # the following is rprim * dm[ipert1,:,ipert2,:] * rprim.T + dm = np.einsum("ij,kjlm,nm->kiln", rprimd, dm, rprimd) + dm = dm * mass_matrix / phase[:, None, :, None] + dm *= abu.eV_Ha / abu.Ang_Bohr**2 + + dm_list.append(dm) + + return dm_list + + +def add_data_ddb(ddb: DdbFile, dm_list: list, qpt_list: list, born_data) -> None: + """ + Helper function to add the blocks for the dynamical matrix and BECs to a DdbFile object. + + Args: + ddb: a DdbFile object to be modified. + dm_list: the list of dynamical matrices to be added. + qpt_list: the list of q-points corresponding to dm_list. + born_data: the data corresponding to BECs and dielectric tensor. If None + these part will not be set in the DDB. + """ + dm_data = {} + natom = len(ddb.structure) + for q, dm in zip(qpt_list, dm_list): + q_data = {} + for ipert1 in range(natom): + for idir1 in range(3): + for ipert2 in range(natom): + for idir2 in range(3): + q_data[(idir1+1, ipert1+1, idir2+1, ipert2+1)] = dm[ipert1, idir1, ipert2, idir2] + + # for gamma set also the born data if present + if np.allclose(q, (0, 0, 0)) and born_data is not None: + ipert2 = natom + 1 + for ipert1 in range(natom): + for idir1 in range(3): + for idir2 in range(3): + q_data[(idir1+1, ipert1+1, idir2+1, ipert2+1)] = born_data[ipert1, idir1, ipert2, idir2] + q_data[(idir2+1, ipert2+1, idir1+1, ipert1+1)] = born_data[ipert2, idir2, ipert1, idir1] + + for idir1 in range(3): + for idir2 in range(3): + q_data[(idir1+1, ipert2+1, idir2+1, ipert2+1)] = born_data[ipert2, idir1, ipert2, idir2] + + dm_data[tuple(q)] = q_data + + ddb.set_2nd_ord_data(dm_data, replace=True) + + +@requires(Phonopy, "phonopy not installed!") +def tdep_to_abinit(unit_cell, fc_path, supercell_matrix, supercell, out_ddb_path, ngqpt=None, + qpt_list=None, primitive_matrix="auto", lotosplitting_path=None, symprec=1e-5, + tolsym=None, manager=None, workdir=None, pseudos=None, verbose=False): + """ + Converts the files produced by TDEP to an abinit DDB file. If the lotosplitting + file is provided the BEC and dielectric tensor will also be added to the DDB. + + The conversion is performed by first extracting the force constants in phonopy format + and then using phonopy_to_abinit_py to generate the DDB file. See the phonopy_to_abinit_py + docstring for further details about the second step of the conversion. + Notice that the supercell used by TDEP should be provided in order to properly + sort the IFC to match the order required by phonopy. + + Args: + unit_cell: a |Structure| object that identifies the unit cell used for the TDEP + calculation. + fc_path: the path to the forceconstants file produced by TDEP. + supercell_matrix: a 3x3 array representing the supercell matrix used to generated the + forces with TDEP. + supercell: the supercell used by TDEP to get the force constants, without any + perturbation (usually named with extension ssposcar). It will be used to match it to + the phonopy supercell and sort the IFC in the correct order. + out_ddb_path: a full path to the file where the new DDB will be written + ngqpt: a list of 3 elements indicating the grid of q points that will be used in the DDB. + qpt_list: alternatively to ngqpt an explicit list of q-points can be provided here. + At least one among ngqpt and qpt_list should be defined. + primitive_matrix: a 3x3 array with the primitive matrix passed to Phonopy. "auto" will + use spglib to try to determine it automatically. If the DDB file should contain the + actual unit cell this should be the identity matrix. + lotosplitting_path: path to the lotosplitting file produced by TDEP. If None no BEC + contribution will be set to the DDB. + symprec: distance tolerance in Cartesian coordinates to find crystal symmetry in phonopy. + It might be that the value should be tuned so that it leads to the the same symmetries + as in the abinit calculation. + tolsym: Gives the tolerance to identify symmetries in abinit. See abinit documentation for + more details. + manager: |TaskManager| object. If None, the object is initialized from the configuration file + pseudos: List of filenames or list of |Pseudo| objects or |PseudoTable| object. It will be + used by abinit to generate the base DDB file. If None the abipy.data.hgh_pseudos.HGH_TABLE + table will be used. + verbose: verbosity level. Set it to a value > 0 to get more information + workdir: path to the directory where the abinit calculation will be executed. + + Returns: + a DdbFile instance of the file written in out_ddb_path. + """ + + fc = parse_tdep_fc(fc_path, unit_cell, supercell) + + born = None + if lotosplitting_path: + eps, becs = parse_tdep_lotosplitting(lotosplitting_path) + born = {"dielectric": eps, "born": becs, "factor": 1} + + ddb = phonopy_to_abinit(unit_cell=unit_cell, force_constants=fc, supercell_matrix=supercell_matrix, ngqpt=ngqpt, + qpt_list=qpt_list, out_ddb_path=out_ddb_path, born=born, pseudos=pseudos, + primitive_matrix=primitive_matrix, supercell=supercell, manager=manager, + workdir=workdir, symprec=symprec, verbose=verbose, tolsym=tolsym) + + return ddb + + +def parse_tdep_fc(fc_path: str, unit_cell: Structure, supercell) -> np.ndarray: + """ + Parses a forceconstants file produced by TDEP an converts it to an array in the + phonopy format. + + Args: + fc_path: path to the forceconstants file + unit_cell: a |Structure| object with the unit cell used for the calculation + in TDEP. + supercell: the supercell used for the calculation in TDEP. + + Returns: + a comple numpy array with shape (len(unit_cell), len(supercell), 3, 3) + """ + natoms = len(unit_cell) + fc = np.zeros((natoms, len(supercell), 3, 3)) + # parse the fc file and put it in the format required for phonopy + # this will be sorted according to the tdep supercell atoms order, not the phonopy supercell. + with open(fc_path, "rt") as f: + lines = f.readlines() + u_latt = unit_cell.lattice + sc_latt = supercell.lattice + iline = 2 + for iat in range(natoms): + n_neighbours = int(lines[iline].split()[0]) + iline += 1 + for jn in range(n_neighbours): + iprim = int(lines[iline].split()[0]) - 1 + r = [float(sp) for sp in lines[iline + 1].split()] + # find matching atom in the supercell + fcoords = sc_latt.get_fractional_coords(u_latt.get_cartesian_coords(r) + unit_cell[iprim].coords) + for isc, site_sc in enumerate(supercell): + d = supercell.lattice.get_distance_and_image(fcoords, site_sc.frac_coords)[0] + if d < 1e-5: + break + else: + raise RuntimeError(f"could not find a match for: {lines[iline]}") + + for k in range(3): + fc[iat, isc, k] = [float(sp) for sp in lines[iline + 2 + k].split()] + iline += 5 + return fc + + +def parse_tdep_lotosplitting(filepath: str) -> tuple: + """ + Parses the lotosplitting file produced by TDEP and transforms them in + the phonopy format for Born effective charges and dielectric tensor. + + Args: + filepath: path to the lotosplitting file. + + Returns: + a tuple with dielectric tensor and Born effective charges. + """ + with open(filepath) as f: + lines = f.readlines() + + values = [] + for l in lines: + if not l.strip(): + continue + values.append([float(v) for v in l.split()[:3]]) + + if len(values) % 3 != 0: + raise RuntimeError(f"The data parsed has an unexpected shape: {np.shape(values)}") + + eps = np.array(values[:3]) + natoms = len(values) // 3 - 1 + born = np.reshape(values[3:], (natoms, 3, 3)) + + return eps, born + + +def write_tdep_lotosplitting(eps, born, filepath="infile.lotosplitting", fmt="%14.10f") -> None: + """ + Writes an lotosplitting file starting from arrays containing dielectric tensor and + Born effective charges. + + Args: + eps: a 3x3 array with the dielectric tensor. + born: an array with the Born effective charges. + filepath: the path where the lotosplitting file should be written. + fmt: the format for the float numbers. + """ + values = np.concatenate((eps[None, :, :], born), axis=0) + values = values.reshape((3 * len(values), 3)) + np.savetxt(filepath, values, fmt=fmt) + + +def born_to_lotosplitting(born, lotosplitting_path="infile.lotosplitting") -> None: + """ + Converted of a file from the BORN file produced from phonopy to the lotosplitting + file used by TDEP. + + Args: + born: a dictionary with "dielectric" and "born" keywords as obtained from the nac_params + in phonopy. Notice that the "factor" attribute is not taken into account, so the + values should be in default phonopy units. + lotosplitting_path: the path where the lotosplitting file should be written. + """ + + eps = born["dielectric"] + becs = born["born"] + write_tdep_lotosplitting(eps, becs, lotosplitting_path) + + +@requires(Phonopy, "phonopy not installed!") +def write_BORN(primitive, borns, epsilon, filename="BORN", symmetrize_tensors=False) -> None: + """ + Helper function imported from phonopy.file_IO. + Contrarily to the original, it does not symmetrize the tensor. + """ + lines = get_BORN_lines(primitive, borns, epsilon, symmetrize_tensors=symmetrize_tensors) + with open(filename, 'w') as w: + w.write('\n'.join(lines)) + + +@requires(Phonopy, "phonopy not installed!") +def get_BORN_lines(unitcell, borns, epsilon, + factor=None, + primitive_matrix=None, + supercell_matrix=None, + symprec=1e-5, symmetrize_tensors=False) -> list: + """ + Helper function imported from phonopy.file_IO that exposes the + option of not symmetrizing the tensor. + """ + from phonopy.structure.symmetry import elaborate_borns_and_epsilon + borns, epsilon, atom_indices = elaborate_borns_and_epsilon( + unitcell, borns, epsilon, symmetrize_tensors=symmetrize_tensors, + primitive_matrix=primitive_matrix, + supercell_matrix=supercell_matrix, + symprec=symprec) + + text = "# epsilon and Z* of atoms " + text += ' '.join(["%d" % n for n in atom_indices + 1]) + lines = [text, ] + lines.append(("%13.8f " * 9) % tuple(epsilon.flatten())) + for z in borns: + lines.append(("%13.8f " * 9) % tuple(z.flatten())) + return lines + +@requires(Phonopy, "phonopy not installed!") +def ddb_ucell_to_ddb_supercell(unit_ddb=None,unit_ddb_filepath=None,supercell_ddb_path='out_DDB',nac=True) -> DdbFile: + """ + Convert a DDB file or DDB instance of a unit cell on a q-mesh to the corresponding supercell + at q=Gamma. + + Args: + unit_ddb: an instance of DDB file. + unit_ddb_filepath : alternatively, a path to the input DDB. + supercell_ddb_path: DDB path of the output DDB on a supercell at Gamma + nac : Set the non-analytical correction + + Returns: + a DdbFile instance and the corresponding DDB file in supercell_ddb_path. + """ + + phonopy_supercell=ddb_ucell_to_phonopy_supercell(unit_ddb,unit_ddb_filepath,nac=nac) + + sc_structure=get_pmg_structure(phonopy_supercell.supercell) + full_fc=phonopy_supercell.force_constants + + ddb_sc = phonopy_to_abinit(unit_cell=sc_structure, supercell_matrix=[1,1,1], qpt_list=[[0,0,0]], + out_ddb_path=supercell_ddb_path, force_constants=full_fc, + born=phonopy_supercell.nac_params, primitive_matrix=np.eye(3), symprec=1e-5, + tolsym=None,nsym=1) + + return ddb_sc + +def ddb_ucell_to_phonopy_supercell(unit_ddb=None,unit_ddb_filepath=None,nac=True) -> Phonopy: + """ + Convert a DDB file or DDB instance of a unit cell on a q-mesh to the corresponding supercell + at q=Gamma. + + Args: + ddb_unit_cell: an instance of DDB file. + unit_ddb_filepath : alternatively, a path to the input DDB. + supercell_ddb_path: DDB path of the output DDB on a supercell at Gamma + nac : Set the non-analytical correction + + Returns: + a Phonopy instance. + """ + + if unit_ddb_filepath is not None: + unit_ddb=DdbFile(unit_ddb_filepath) + # close + + + ngqpt=unit_ddb.guessed_ngqpt + + # create a phonopy object from the ddb + phonopy_ucell= unit_ddb.anaget_phonopy_ifc(ngqpt=ngqpt, asr=1, dipdip=0, chneut=1, + set_masses=True) + + # fc from (uc_size x sc_size) to (sc_size x sc_size) + + full_fc = force_constants.compact_fc_to_full_fc(phonon=phonopy_ucell, + compact_fc=phonopy_ucell.force_constants) + + # create a phonopy object with supercell structure + phonopy_supercell = Phonopy(unitcell=phonopy_ucell.supercell,# the new unit cell is the 'old' supercell + supercell_matrix=[1, 1, 1], # sup_size= unit_size, gamma only + primitive_matrix=np.eye(3)) + phonopy_supercell.force_constants=full_fc + + if nac==True: + p2p=phonopy_ucell.primitive.p2p_map + s2p = phonopy_ucell.primitive.s2p_map + s2pp = [p2p[i] for i in s2p] + + born_ucell = phonopy_ucell.nac_params["born"] + born = [born_ucell[i] for i in s2pp] + + nac_params = { "born": np.array(born, dtype="double", order="C"), + "factor": phonopy_ucell.nac_params["factor"], + "dielectric": phonopy_ucell.nac_params["dielectric"].copy()} + + phonopy_supercell.nac_params=nac_params + + return phonopy_supercell + + diff --git a/abipy/dfpt/ddb.py b/abipy/dfpt/ddb.py index 43a948cce..770a41dc6 100644 --- a/abipy/dfpt/ddb.py +++ b/abipy/dfpt/ddb.py @@ -1,5 +1,9 @@ # coding: utf-8 -"""DDB File.""" +""" +Python API for the DDB file containing the derivatives of the total Energy wrt different perturbations. +""" +from __future__ import annotations + import sys import os import tempfile @@ -10,14 +14,14 @@ from collections import OrderedDict from functools import lru_cache +from typing import Any, Union, Tuple #, List, Optional from monty.string import marquee, list_strings from monty.json import MSONable from monty.collections import AttrDict, dict2namedtuple from monty.functools import lazy_property from monty.termcolor import cprint -from monty.dev import deprecated from pymatgen.core.units import eV_to_Ha, bohr_to_angstrom, Energy -from pymatgen.util.serialization import pmg_serialize +from abipy.tools.serialization import pmg_serialize from abipy.flowtk import AnaddbTask from abipy.core.mixins import TextFile, Has_Structure, NotebookWriter from abipy.core.symmetries import AbinitSpaceGroup @@ -31,13 +35,29 @@ from abipy.dfpt.elastic import ElasticData from abipy.dfpt.raman import Raman from abipy.core.abinit_units import phfactor_ev2units, phunit_tag -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt +from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, get_figs_plotly, get_fig_plotly, + add_plotly_fig_kwargs, PlotlyRowColDesc, plotlyfigs_to_browser, push_to_chart_studio) from abipy.tools import duck +from abipy.tools.typing import Figure from abipy.tools.iotools import ExitStackWithFiles from abipy.tools.tensors import DielectricTensor, ZstarTensor, Stress from abipy.abio.robots import Robot +SUBSCRIPT_UNICODE = { + "0": "₀", + "1": "₁", + "2": "₂", + "3": "₃", + "4": "₄", + "5": "₅", + "6": "₆", + "7": "₇", + "8": "₈", + "9": "₉", + } + + class DdbError(Exception): """Error class raised by DDB.""" @@ -72,32 +92,33 @@ def __str__(self): class DdbFile(TextFile, Has_Structure, NotebookWriter): """ This object provides an interface to the DDB_ file produced by ABINIT - as well as methods to compute phonon band structures, phonon DOS, thermodinamical properties ... + as well as methods to compute phonon band structures, phonon DOS, thermodynamic properties etc. About the indices (idir, ipert) used by Abinit (Fortran notation): * idir in [1, 2, 3] gives the direction (usually reduced direction, cart for strain) * ipert in [1, 2, ..., mpert] where mpert = natom + 6 - * ipert in [1, ..., natom] corresponds to atomic perturbations (reduced dirs) - * ipert = natom + 1 gives d/dk (reduced dirs) - * ipert = natom + 2 gives the electric field - * ipert = natom + 3 gives the uniaxial stress (cartesian dirs) - * ipert = natom + 4 gives the shear strees. (cartesian dirs) + * ipert in [1, ..., natom] corresponds to atomic perturbations (reduced directions) + * ipert = natom + 1 corresponds d/dk (reduced directions) + * ipert = natom + 2 corresponds the electric field + * ipert = natom + 3 corresponds the uniaxial stress (Cartesian directions) + * ipert = natom + 4 corresponds the shear stress. (Cartesian directions) .. rubric:: Inheritance .. inheritance-diagram:: DdbFile """ Error = DdbError + AnaddbError = AnaddbError @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> DdbFile: """Needed for the :class:`TextFile` abstract interface.""" return cls(filepath) @classmethod - def from_string(cls, string): + def from_string(cls, string: str) -> DdbFile: """Build object from string using temporary file.""" fd, tmp_filepath = tempfile.mkstemp(text=True, prefix="_DDB") with open(tmp_filepath, "wt") as fh: @@ -106,7 +127,7 @@ def from_string(cls, string): return cls(tmp_filepath) @classmethod - def from_mpid(cls, material_id, api_key=None, endpoint=None): + def from_mpid(cls, material_id) -> DdbFile: """ Fetch DDB file corresponding to a materials project ``material_id``, save it to temporary file and return new DdbFile object. @@ -115,13 +136,16 @@ def from_mpid(cls, material_id, api_key=None, endpoint=None): Args: material_id (str): Materials Project material_id (e.g., mp-1234). - api_key (str): A String API key for accessing the MaterialsProject REST interface. - If None, the code will check if there is a `PMG_MAPI_KEY` in your .pmgrc.yaml. - endpoint (str): Url of endpoint to access the MaterialsProject REST interface. - Defaults to the standard Materials Project REST address """ + material_id = str(material_id) + if not material_id.startswith("mp-"): + raise ValueError("Materials project ID should start with mp-") + from abipy.core import restapi - with restapi.get_mprester(api_key=api_key, endpoint=endpoint) as rest: + with restapi.get_mprester() as rest: + if getattr(rest, "_make_request") is None: + raise RuntimeError("from_mpid requires mp-api, please install it with `pip install mp-api`") + ddb_string = rest._make_request("/materials/%s/abinit_ddb" % material_id) _, tmpfile = tempfile.mkstemp(prefix=material_id, suffix='_DDB') @@ -131,14 +155,14 @@ def from_mpid(cls, material_id, api_key=None, endpoint=None): return cls(tmpfile) @classmethod - def as_ddb(cls, obj): + def as_ddb(cls, obj: Any) -> DdbFile: """ Return an instance of |DdbFile| from a generic object `obj`. Accepts: DdbFile or filepath """ return obj if isinstance(obj, cls) else cls.from_file(obj) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self._header = self._parse_header() @@ -156,11 +180,11 @@ def __init__(self, filepath): frac_coords = self._read_qpoints() self._qpoints = KpointList(self.structure.lattice.reciprocal_lattice, frac_coords, weights=None, names=None) - def __str__(self): + def __str__(self) -> str: """String representation.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = [] app, extend = lines.append, lines.extend @@ -182,30 +206,26 @@ def to_string(self, verbose=0): h.nsppol, h.nspinor, h.nspden, h.ixc, h.occopt, h.tsmear)) app("") - app("Has total energy: %s, Has forces: %s" % ( - self.total_energy is not None, self.cart_forces is not None)) + app("Has total energy: %s" % (self.total_energy is not None)) if self.total_energy is not None: - app("Total energy: %s [eV]" % self.total_energy) - #app("Has forces: %s" % ( - #if self.cart_forces is not None: - # app("Cartesian forces (eV/Ang):\n%s" % (self.cart_forces)) - # app("") + app("Total energy: %s" % self.total_energy) + app("Has forces: %s" % (self.cart_forces is not None)) if self.cart_stress_tensor is not None: app("") - app("Cartesian stress tensor in GPa with pressure %.3e (GPa):\n%s" % ( + app("Cartesian stress tensor in GPa with pressure: %.3e (GPa):\n%s" % ( - self.cart_stress_tensor.trace() / 3, self.cart_stress_tensor)) else: app("Has stress tensor: %s" % (self.cart_stress_tensor is not None)) app("") app("Has (at least one) atomic pertubation: %s" % self.has_at_least_one_atomic_perturbation()) - #app("Has (at least one) electric-field perturbation: %s" % self.has_epsinf_terms(select="at_least_one")) - #app("Has (all) electric-field perturbation: %s" % self.has_epsinf_terms(select="all")) app("Has (at least one diagonal) electric-field perturbation: %s" % self.has_epsinf_terms(select="at_least_one_diagoterm")) app("Has (at least one) Born effective charge: %s" % self.has_bec_terms(select="at_least_one")) app("Has (all) strain terms: %s" % self.has_strain_terms(select="all")) app("Has (all) internal strain terms: %s" % self.has_internalstrain_terms(select="all")) app("Has (all) piezoelectric terms: %s" % self.has_piezoelectric_terms(select="all")) + app("Has (all) dynamical quadrupole terms: %s" % self.has_quadrupole_terms(select="all")) + #app("Has (at least one) Raman Term: %s" % self.has_raman_terms(select="at_least_one")) if verbose: # Print q-points @@ -219,23 +239,23 @@ def to_string(self, verbose=0): return "\n".join(lines) - def get_string(self): + def get_string(self) -> str: """Return string with DDB content.""" with open(self.filepath, "rt") as fh: return fh.read() @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure @property - def natom(self): + def natom(self) -> int: """Number of atoms in structure.""" return len(self.structure) @property - def version(self): + def version(self) -> str: """DDB Version number (integer).""" return self.header["version"] @@ -304,23 +324,23 @@ def _parse_header(self): # to avoid problems with pymatgen routines that expect integer Z # This of course will break any code for alchemical mixing. arrays = { - "acell": dict(shape=(3, ), dtype=np.double), - "amu": dict(shape=(h.ntypat, ), dtype=np.double), - "kpt": dict(shape=(h.nkpt, 3), dtype=np.double), - "ngfft": dict(shape=(3, ), dtype=np.int), + "acell": dict(shape=(3, ), dtype=float), + "amu": dict(shape=(h.ntypat, ), dtype=float), + "kpt": dict(shape=(h.nkpt, 3), dtype=float), + "ngfft": dict(shape=(3, ), dtype=int), # This is problematic because not all occupation factors are written - #"occ": dict(shape=(h.nsppol, h.nkpt, h.nband), dtype=np.double), - "rprim": dict(shape=(3, 3), dtype=np.double), - "spinat": dict(shape=(h.natom, 3), dtype=np.double), - "symrel": dict(shape=(h.nsym, 3, 3), dtype=np.int), - "tnons": dict(shape=(h.nsym, 3), dtype=np.double), - "xred": dict(shape=(h.natom, 3), dtype=np.double), + #"occ": dict(shape=(h.nsppol, h.nkpt, h.nband), dtype=float), + "rprim": dict(shape=(3, 3), dtype=float), + "spinat": dict(shape=(h.natom, 3), dtype=float), + "symrel": dict(shape=(h.nsym, 3, 3), dtype=int), + "tnons": dict(shape=(h.nsym, 3), dtype=float), + "xred": dict(shape=(h.natom, 3), dtype=float), # In principle these two quantities are double but here we convert to int # Alchemical mixing is therefore ignored. - "znucl": dict(shape=(h.ntypat,), dtype=np.int), - "zion": dict(shape=(h.ntypat,), dtype=np.int), - "symafm": dict(shape=(h.nsym,), dtype=np.int), - "wtk": dict(shape=(h.nkpt,), dtype=np.double), + "znucl": dict(shape=(h.ntypat,), dtype=int), + "zion": dict(shape=(h.ntypat,), dtype=int), + "symafm": dict(shape=(h.nsym,), dtype=int), + "wtk": dict(shape=(h.nkpt,), dtype=float), } for k, ainfo in arrays.items(): @@ -335,7 +355,7 @@ def _parse_header(self): return h - def _read_qpoints(self): + def _read_qpoints(self) -> np.ndarray: """Read the list q-points from the DDB file. Returns |numpy-array|.""" # 2nd derivatives (non-stat.) - # elements : 36 # qpt 2.50000000E-01 0.00000000E+00 0.00000000E+00 1.0 @@ -360,9 +380,9 @@ def _read_qpoints(self): return np.reshape(qpoints, (-1, 3)) @lazy_property - def computed_dynmat(self): + def computed_dynmat(self) -> dict: """ - OrderedDict mapping q-point object to --> pandas Dataframe. + dict mapping q-point object to --> pandas Dataframe. The |pandas-DataFrame| contains the columns: "idir1", "ipert1", "idir2", "ipert2", "cvalue" and (idir1, ipert1, idir2, ipert2) as index. @@ -410,7 +430,7 @@ def computed_dynmat(self): return dynmat @lazy_property - def blocks(self): + def blocks(self) -> list: """ DDB blocks. List of dictionaries, Each dictionary contains the following keys. "qpt" with the reduced coordinates of the q-point. @@ -418,7 +438,7 @@ def blocks(self): """ return self._read_blocks() - def _read_blocks(self): + def _read_blocks(self) -> list: # skip until the beginning of the db self.seek(0) while "Number of data blocks" not in self._file.readline(): @@ -428,6 +448,7 @@ def _read_blocks(self): block_lines = [] qpt = None dord = None + qpt3 = None for line in self: # skip empty lines @@ -438,9 +459,10 @@ def _read_blocks(self): # add last block when we reach the last part of the file. # This line is present only if DDB has been produced by mrgddb if block_lines: - blocks.append({"data": block_lines, "qpt": qpt, "dord": dord}) + blocks.append({"data": block_lines, "qpt": qpt, "qpt3": qpt3, "dord": dord}) block_lines = [] qpt = None + qpt3 = None break # Don't use lstring because we may reuse block_lines to write new DDB. @@ -449,7 +471,7 @@ def _read_blocks(self): # new block --> detect order if "# elements" in line: if block_lines: - blocks.append({"data": block_lines, "qpt": qpt, "dord": dord}) + blocks.append({"data": block_lines, "qpt": qpt, "qpt3": qpt3, "dord": dord}) tokens = line.split() num_elements = int(tokens[-1]) @@ -463,22 +485,30 @@ def _read_blocks(self): block_lines = [] qpt = None + qpt3 = None block_lines.append(line) - if "qpt" in line: + if dord == 2 and "qpt" in line: qpt = list(map(float, line.split()[1:4])) + # if needed accumulate the qpt coords in qpt3. stop when they reach 3. + if dord == 3: + if "qpt" in line: + qpt3 = [list(map(float, line.split()[1:4]))] + elif qpt3 and len(qpt3) < 3: + qpt3.append(list(map(float, line.split()[:3]))) + if block_lines: - blocks.append({"data": block_lines, "qpt": qpt, "dord": dord}) + blocks.append({"data": block_lines, "qpt": qpt, "qpt3": qpt3, "dord": dord}) return blocks @property - def qpoints(self): + def qpoints(self) -> KpointList: """|KpointList| object with the list of q-points in reduced coordinates.""" return self._qpoints - def has_qpoint(self, qpoint): + def has_qpoint(self, qpoint) -> bool: """True if the DDB file contains this q-point.""" #qpoint = Kpoint.as_kpoint(qpoint, self.structure.reciprocal_lattice) try: @@ -487,7 +517,7 @@ def has_qpoint(self, qpoint): except ValueError: return False - def qindex(self, qpoint): + def qindex(self, qpoint) -> int: """ The index of the q-point in the internal list of q-points. Accepts: |Kpoint| instance or integer. @@ -498,7 +528,7 @@ def qindex(self, qpoint): return self.qpoints.index(qpoint) @lazy_property - def guessed_ngqpt(self): + def guessed_ngqpt(self) -> np.ndarray: """ Guess for the q-mesh divisions (ngqpt) inferred from the list of q-points found in the DDB file. @@ -510,7 +540,7 @@ def guessed_ngqpt(self): """ return self._guess_ngqpt() - def _guess_ngqpt(self): + def _guess_ngqpt(self) -> np.ndarray: """ This function tries to figure out the value of ngqpt from the list of points reported in the DDB file. @@ -534,10 +564,10 @@ def _guess_ngqpt(self): ngqpt = np.rint(1 / smalls) ngqpt[ngqpt == 0] = 1 - return np.array(ngqpt, dtype=np.int) + return np.array(ngqpt, dtype=int) @lazy_property - def params(self): + def params(self) -> dict: """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" names = ("nkpt", "nsppol", "ecut", "tsmear", "occopt", "ixc", "nband", "usepaw") od = OrderedDict() @@ -545,7 +575,7 @@ def params(self): od[k] = self.header[k] return od - def _add_params(self, obj): + def _add_params(self, obj) -> None: """Add params (meta variable) to object ``obj``. Usually a phonon bands or phonon dos object.""" if not hasattr(obj, "params"): raise TypeError("object %s does not have `params` attribute" % type(obj)) @@ -598,7 +628,7 @@ def cart_forces(self): return None @lazy_property - def cart_stress_tensor(self): + def cart_stress_tensor(self) -> Stress: """ |Stress| tensor in cartesian coordinates (GPa units). None if not available. """ @@ -627,14 +657,14 @@ def cart_stress_tensor(self): return None - def has_lo_to_data(self, select="at_least_one"): + def has_lo_to_data(self, select: str ="at_least_one") -> bool: """ True if the DDB file contains the data required to compute the LO-TO splitting. """ return self.has_epsinf_terms(select=select) and self.has_bec_terms(select=select) @lru_cache(typed=True) - def has_at_least_one_atomic_perturbation(self, qpt=None): + def has_at_least_one_atomic_perturbation(self, qpt=None) -> bool: """ True if the DDB file contains info on (at least one) atomic perturbation. If the coordinates of a q point are provided only the specified qpt will be considered. @@ -654,7 +684,7 @@ def has_at_least_one_atomic_perturbation(self, qpt=None): return False @lru_cache(typed=True) - def has_epsinf_terms(self, select="at_least_one"): + def has_epsinf_terms(self, select="at_least_one") -> bool: """ True if the DDB file contains info on the electric-field perturbation. @@ -691,12 +721,8 @@ def has_epsinf_terms(self, select="at_least_one"): return False if select in ("at_least_one", "at_least_one_diagoterm") else True - @deprecated(message="has_emacro_terms is deprecated and will be removed in abipy 0.8, use has_epsinf_terms") - def has_emacro_terms(self, **kwargs): - return self.has_epsinf_terms(**kwargs) - @lru_cache(typed=True) - def has_bec_terms(self, select="at_least_one"): + def has_bec_terms(self, select: str = "at_least_one") -> bool: """ True if the DDB file contains info on the Born effective charges. @@ -714,22 +740,40 @@ def has_bec_terms(self, select="at_least_one"): ep_list = list(itertools.product(range(1, 4), [natom + 2])) ap_list = list(itertools.product(range(1, 4), range(1, natom + 1))) + # helper function to get the value, since has a cumbersome notation + # when dealing with tuples as indices + dmg = self.computed_dynmat[gamma] + + def non_zero_value(ind): + if ind not in index_set: + return False + v = dmg.loc[[ind]].iloc[0].cvalue + return v != 0.0 + + # if the BECs perturbations are not calculated, abinit can set all + # of them to 0 and writes them in the DDB. To be considered + # as present at lest one should be different from zero. + not_all_zero = False + for ap1 in ap_list: for ep2 in ep_list: p12 = ap1 + ep2 p21 = ep2 + ap1 if select == "at_least_one": - if p12 in index_set: return True + if (p12 in index_set and non_zero_value(p12)) or \ + (p21 in index_set and non_zero_value(p21)): + return True elif select == "all": if p12 not in index_set and p21 not in index_set: return False + not_all_zero = not_all_zero or non_zero_value(p12) or non_zero_value(p21) else: raise ValueError("Wrong select %s" % str(select)) - return False if select == "at_least_one" else True + return False if select == "at_least_one" else not_all_zero @lru_cache(typed=True) - def has_strain_terms(self, select="all"): + def has_strain_terms(self, select: str = "all") -> bool: """ True if the DDB file contains info on the (clamped-ion) strain perturbation (i.e. 2nd order derivatives wrt strain) @@ -769,7 +813,7 @@ def has_strain_terms(self, select="all"): return False if select == "at_least_one" else True @lru_cache(typed=True) - def has_internalstrain_terms(self, select="all"): + def has_internalstrain_terms(self, select: str = "all") -> bool: """ True if the DDB file contains internal strain terms i.e "off-diagonal" 2nd order derivatives wrt (strain, atomic displacement) @@ -810,7 +854,7 @@ def has_internalstrain_terms(self, select="all"): return False if select == "at_least_one" else True @lru_cache(typed=True) - def has_piezoelectric_terms(self, select="all"): + def has_piezoelectric_terms(self, select: str = "all") -> bool: """ True if the DDB file contains piezoelectric terms i.e "off-diagonal" 2nd order derivatives wrt (electric_field, strain) @@ -848,6 +892,108 @@ def has_piezoelectric_terms(self, select="all"): return False if select == "at_least_one" else True + def get_quadrupole_raw_dataframe(self, with_index_list: bool = False): + """ + Return pandas Dataframe with the dynamical quadrupoles. + In with_index_list is True, the list of with the 3 (idir, ipert) tuples is returned. + Return None or (None, None) is the DDB does not contain Q*. + + .. note:: + + These are the raw terms computed with DFPT before the extra symmetrization + performed in anaddb. + """ + not_found = (None, None) if with_index_list else None + + # Find the block with 3rd order (long wave) derivatives + for block in self.blocks: + if block["dord"] == 3 and "(long wave)" in block["data"][0]: + break + else: + return not_found + + # In a system with 2 atoms we have: + # (Efield_perts, atomic_perts, d/dq) e.g. + # (1-3, 4), (1-3, 1:natom), (1:3, 10) + + # 3rd derivatives (long wave) - # elements : 54 + # qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + # 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + # 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + # 1 4 1 1 1 10 0.00000000000000D+00 0.23577723560036D+02 + # 2 4 1 1 1 10 0.00000000000000D+00 -0.11788862271774D+02 + + natom = len(self.structure) + #ap_list = list(itertools.product(range(1, 4), range(1, natom + 1))) + #ep_list = list(itertools.product(range(1, 4), [natom + 2])) + #ddq_list = list(itertools.product(range(1, 4), [natom + 8])) + + index_list = [] + rows = [] + for i, line in enumerate(block["data"]): + if i <= 3: continue + # Python does not support exp format with D + line = line.replace("D+", "E+").replace("D-", "E-") + tokens = line.split() + inds = tuple(map(int, tokens[:6])) + #print(inds) + if inds[1] != 4 or inds[3] > natom: continue + vals = tuple(map(float, tokens[6:8])) + index_list.append(inds) + rows.append({"idir_e": inds[0], "idir_atm": inds[2], "iatm": inds[3], "idir_ddq": inds[4], + "re": vals[0], "imag": vals[1]}) + + df = pd.DataFrame(rows, columns=list(rows[0].keys())) if rows else None + + return (df, index_list) if with_index_list else df + + @lru_cache(typed=True) + def has_quadrupole_terms(self, select: str="all") -> bool: + """ + True if the DDB file contains dynamical quadrupoles + i.e the 3rd order derivatives wrt (electric_field, atomic_perturbation_gamma, q-wavevector) + + Args: + select: Possible values in ["at_least_one", "all"] + If select == "at_least_one", we check if there's at least one entry associated to Q* + If select == "all", all tensor components must be present in the DDB file. + + .. note:: + + As anaddb is not yet able to reconstruct all the Q* entries by symmetry, + the default value for select is "all" + """ + df, index_list = self.get_quadrupole_raw_dataframe(with_index_list=True) + if df is None: return False + + natom = len(self.structure) + ap_list = list(itertools.product(range(1, 4), range(1, natom + 1))) + ep_list = list(itertools.product(range(1, 4), [natom + 2])) + ddq_list = list(itertools.product(range(1, 4), [natom + 8])) + + if select == "at_least_one": return True + + all_quad_perts = set(itertools.product(ep_list, ap_list, ddq_list)) + quad_perts = set(((t[0], t[1]), (t[2], t[3]), (t[4], t[5])) for t in index_list) + #print("all_quad_perts:", all_quad_perts) + #print("quad_perts:", quad_perts) + + return all_quad_perts == quad_perts + + #@lru_cache(typed=True) + #def has_raman_terms(select="all"): + # self.inds3_gamma + # 3rd derivatives - # elements : 189 + # qpt 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + # 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + # 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.0 + # 1 4 1 4 1 1 -0.26103715924870D+02 0.00000000000000D+00 + # 2 4 1 4 1 1 0.13051857884314D+02 0.00000000000000D+00 + # 3 4 1 4 1 1 0.13051857884314D+02 0.00000000000000D+00 + # 1 4 2 4 1 1 0.13051857893700D+02 0.00000000000000D+00 + # 2 4 2 4 1 1 0.00000000000000D+00 0.00000000000000D+00 + # 3 4 2 4 1 1 0.00000000000000D+00 0.00000000000000D+00 + def view_phononwebsite(self, browser=None, verbose=0, dryrun=False, **kwargs): """ Invoke anaddb to compute phonon bands. @@ -877,15 +1023,25 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.qpoints.plot(show=False) yield self.structure.plot_bz(show=False) - def anaget_phmodes_at_qpoint(self, qpoint=None, asr=2, chneut=1, dipdip=1, workdir=None, mpi_procs=1, - manager=None, verbose=0, lo_to_splitting=False, spell_check=True, - directions=None, anaddb_kwargs=None): + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + """ + yield self.structure.plotly(show=False) + yield self.qpoints.plotly(show=False) + yield self.structure.plotly_bz(show=False) + + def anaget_phmodes_at_qpoint(self, qpoint=None, asr=2, chneut=1, dipdip=1, dipquad=1, quadquad=1, + ifcflag=0, workdir=None, mpi_procs=1, manager=None, verbose=0, + lo_to_splitting=False, spell_check=True, + directions=None, anaddb_kwargs=None, return_input=False): """ - Execute anaddb to compute phonon modes at the given q-point (without LO-TO splitting) + Execute anaddb to compute phonon modes at the given q-point. Non analytical contribution + can be added if qpoint is Gamma and required elements are present in the DDB. Args: qpoint: Reduced coordinates of the qpoint where phonon modes are computed. - asr, chneut, dipdip: Anaddb input variable. See official documentation. + asr, chneut, dipdip, dipquad, quadquad: Anaddb input variable. See official documentation. workdir: Working directory. If None, a temporary directory is created. mpi_procs: Number of MPI processes to use. manager: |TaskManager| object. If None, the object is initialized from the configuration file @@ -897,6 +1053,7 @@ def anaget_phmodes_at_qpoint(self, qpoint=None, asr=2, chneut=1, dipdip=1, workd directions: list of 3D directions along which the LO-TO splitting will be calculated. If None the three cartesian direction will be used. anaddb_kwargs: additional kwargs for anaddb. + return_input: True if |AnaddbInput| object should be returned as 2nd argument Return: |PhononBands| object. """ @@ -906,37 +1063,90 @@ def anaget_phmodes_at_qpoint(self, qpoint=None, asr=2, chneut=1, dipdip=1, workd raise ValueError("%s contains %s qpoints and the choice is ambiguous.\n" "Please specify the qpoint." % (self, len(self.qpoints))) - # Check if qpoint is in the DDB. - try: - iq = self.qindex(qpoint) - except Exception: - raise ValueError("input qpoint %s not in %s.\nddb.qpoints:\n%s" % ( - qpoint, self.filepath, self.qpoints)) + return self.anaget_phmodes_at_qpoints(qpoints=[qpoint], asr=asr, chneut=chneut, dipdip=dipdip, + dipquad=dipquad, quadquad=quadquad, ifcflag=ifcflag, + workdir=workdir, mpi_procs=mpi_procs, manager=manager, + verbose=verbose, lo_to_splitting=lo_to_splitting, spell_check=spell_check, + directions=directions, anaddb_kwargs=anaddb_kwargs, return_input=return_input) - qpoint = self.qpoints[iq] + def anaget_phmodes_at_qpoints(self, qpoints=None, asr=2, chneut=1, dipdip=1, dipquad=1, quadquad=1, + ifcflag=0, ngqpt=None, workdir=None, mpi_procs=1, manager=None, verbose=0, + lo_to_splitting=False, + spell_check=True, directions=None, anaddb_kwargs=None, return_input=False): + """ + Execute anaddb to compute phonon modes at the given list of q-points. Non analytical contribution + can be added if Gamma belongs to the list and required elements are present in the DDB. + If the list of q-points contains points that are not present in the DDB the values will be + interpolated provided ifcflag is set to 1. + + Args: + qpoints: Reduced coordinates of a list of qpoints where phonon modes are computed. + asr, chneut, dipdip, dipquad, quadquad, ifcflag: Anaddb input variable. See official documentation. + ngqpt: Number of divisions for the q-mesh in the DDB file. Auto-detected if None (default). + workdir: Working directory. If None, a temporary directory is created. + mpi_procs: Number of MPI processes to use. + manager: |TaskManager| object. If None, the object is initialized from the configuration file + verbose: verbosity level. Set it to a value > 0 to get more information. + lo_to_splitting: Allowed values are [True, False, "automatic"]. Defaults to False + If True the LO-TO splitting will be calculated if qpoint == Gamma and the non_anal_directions + non_anal_phfreqs attributes will be addeded to the phonon band structure. + "automatic" activates LO-TO if the DDB file contains the dielectric tensor and Born effective charges. + directions: list of 3D directions along which the LO-TO splitting will be calculated. If None the three + cartesian direction will be used. + anaddb_kwargs: additional kwargs for anaddb. + return_input: True if |AnaddbInput| object should be returned as 2nd argument + + Return: |PhononBands| object. + """ + if qpoints is None: + qpoints = self.qpoints + + if ifcflag == 0: + try: + iqs = [self.qindex(q) for q in qpoints] + except Exception: + raise ValueError("input qpoint:\n %s\n not in %s.\nddb.qpoints:\n%s" % ( + qpoints, self.filepath, self.qpoints)) + + qpoints = [self.qpoints[iq] for iq in iqs] + + else: + rl = self.structure.lattice.reciprocal_lattice + qpoints = [Kpoint(qc, rl) for qc in qpoints] + if ngqpt is None: + ngqpt = self.guessed_ngqpt + + gamma = None + for q in qpoints: + if q.is_gamma(): + gamma = q if lo_to_splitting == "automatic": - lo_to_splitting = self.has_lo_to_data() and qpoint.is_gamma() and dipdip != 0 + lo_to_splitting = self.has_lo_to_data() and gamma and dipdip != 0 - if lo_to_splitting and qpoint.is_gamma() and not self.has_lo_to_data(): - cprint("lo_to_splitting set to True but Eps_inf and Becs are not available in DDB %s:" % self.filepath) + # if lo_to_splitting and gamma and not self.has_lo_to_data(): + # cprint("lo_to_splitting set to True but Eps_inf and Becs are not available in DDB %s:" % self.filepath) - inp = AnaddbInput.modes_at_qpoint(self.structure, qpoint, asr=asr, chneut=chneut, dipdip=dipdip, - lo_to_splitting=lo_to_splitting, directions=directions, - anaddb_kwargs=anaddb_kwargs, spell_check=spell_check) + inp = AnaddbInput.modes_at_qpoints(self.structure, qpoints, asr=asr, chneut=chneut, dipdip=dipdip, + dipquad=dipquad, quadquad=quadquad, + ifcflag=ifcflag, ngqpt=ngqpt, lo_to_splitting=lo_to_splitting, directions=directions, + anaddb_kwargs=anaddb_kwargs, spell_check=spell_check) task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose) with task.open_phbst() as ncfile: - if lo_to_splitting and qpoint.is_gamma(): - ncfile.phbands.read_non_anal_from_file(os.path.join(task.workdir, "anaddb.nc")) + if lo_to_splitting and gamma: + anaddbnc_path = task.outpath_from_ext("anaddb.nc") + ncfile.phbands.read_non_anal_from_file(anaddbnc_path) - return ncfile.phbands + print("Calculation completed.\nAnaddb results available in dir:", task.workdir) + return ncfile.phbands if not return_input else (ncfile.phbands, inp) - def anaget_phbst_and_phdos_files(self, nqsmall=10, qppa=None, ndivsm=20, line_density=None, asr=2, chneut=1, dipdip=1, + def anaget_phbst_and_phdos_files(self, nqsmall=10, qppa=None, ndivsm=20, line_density=None, asr=2, chneut=1, + dipdip=1, dipquad=1, quadquad=1, dos_method="tetra", lo_to_splitting="automatic", ngqpt=None, qptbounds=None, - anaddb_kwargs=None, verbose=0, spell_check=True, - mpi_procs=1, workdir=None, manager=None): + anaddb_kwargs=None, with_phonopy_obj=False, verbose=0, spell_check=True, + mpi_procs=1, workdir=None, manager=None, return_input=False): """ Execute anaddb to compute the phonon band structure and the phonon DOS. Return contex manager that closes the files automatically. @@ -946,7 +1156,7 @@ def anaget_phbst_and_phdos_files(self, nqsmall=10, qppa=None, ndivsm=20, line_de Use: with ddb.anaget_phbst_and_phdos_files(...) as g: - phbst_file, phdos_file = g[0], g[0] + phbst_file, phdos_file = g[0], g[1] to ensure the netcdf files are closed instead of: @@ -956,12 +1166,12 @@ def anaget_phbst_and_phdos_files(self, nqsmall=10, qppa=None, ndivsm=20, line_de nqsmall: Defines the homogeneous q-mesh used for the DOS. Gives the number of divisions used to sample the smallest lattice vector. If 0, DOS is not computed and (phbst, None) is returned. - qppa: Defines the homogeneous q-mesh used for the DOS in units of q-points per reciproval atom. + qppa: Defines the homogeneous q-mesh used for the DOS in units of q-points per reciprocal atom. Overrides nqsmall. ndivsm: Number of division used for the smallest segment of the q-path. line_density: Defines the a density of k-points per reciprocal atom to plot the phonon dispersion. Overrides ndivsm. - asr, chneut, dipdip: Anaddb input variable. See official documentation. + asr, chneut, dipdip, dipquad, quadquad: Anaddb input variable. See official documentation. dos_method: Technique for DOS computation in Possible choices: "tetra", "gaussian" or "gaussian:0.001 eV". In the later case, the value 0.001 eV is used as gaussian broadening. lo_to_splitting: Allowed values are [True, False, "automatic"]. Defaults to "automatic" @@ -972,10 +1182,13 @@ def anaget_phbst_and_phdos_files(self, nqsmall=10, qppa=None, ndivsm=20, line_de qptbounds: Boundaries of the path. If None, the path is generated from an internal database depending on the input structure. anaddb_kwargs: additional kwargs for anaddb. + with_phonopy_obj: if True the IFC will be calculated and used to generate an instance of a Phonopy + object as an attribute of PhononBands. verbose: verbosity level. Set it to a value > 0 to get more information. mpi_procs: Number of MPI processes to use. workdir: Working directory. If None, a temporary directory is created. manager: |TaskManager| object. If None, the object is initialized from the configuration file. + return_input: True if |AnaddbInput| object should be attached to the Context manager. Returns: Context manager with two files: |PhbstFile| with the phonon band structure. @@ -992,8 +1205,9 @@ def anaget_phbst_and_phdos_files(self, nqsmall=10, qppa=None, ndivsm=20, line_de inp = AnaddbInput.phbands_and_dos( self.structure, ngqpt=ngqpt, ndivsm=ndivsm, line_density=line_density, nqsmall=nqsmall, qppa=qppa, q1shft=(0, 0, 0), qptbounds=qptbounds, - asr=asr, chneut=chneut, dipdip=dipdip, dos_method=dos_method, lo_to_splitting=lo_to_splitting, - anaddb_kwargs=anaddb_kwargs, spell_check=spell_check) + asr=asr, chneut=chneut, dipdip=dipdip, dipquad=dipquad, quadquad=quadquad, + dos_method=dos_method, lo_to_splitting=lo_to_splitting, + with_ifc=with_phonopy_obj, anaddb_kwargs=anaddb_kwargs, spell_check=spell_check) task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose) @@ -1006,8 +1220,13 @@ def anaget_phbst_and_phdos_files(self, nqsmall=10, qppa=None, ndivsm=20, line_de exit_stack.enter_context(phbst_file) self._add_params(phbst_file.phbands) + anaddbnc_path = task.outpath_from_ext("anaddb.nc") if lo_to_splitting: - phbst_file.phbands.read_non_anal_from_file(os.path.join(task.workdir, "anaddb.nc")) + phbst_file.phbands.read_non_anal_from_file(anaddbnc_path) + + if with_phonopy_obj: + scm = np.eye(3) * ngqpt + phbst_file.phbands.set_phonopy_obj_from_ananc(anaddbnc_path, supercell_matrix=scm) phdos_file = None if inp["prtdos"] != 0: @@ -1015,10 +1234,11 @@ def anaget_phbst_and_phdos_files(self, nqsmall=10, qppa=None, ndivsm=20, line_de #self._add_params(phdos_file.phdos) exit_stack.enter_context(phdos_file) + if return_input: exit_stack.input = inp return exit_stack - def get_coarse(self, ngqpt_coarse, filepath=None): + def get_coarse(self, ngqpt_coarse, filepath=None) -> DdbFile: """ Get a version of this file on a coarse mesh @@ -1038,10 +1258,10 @@ def get_coarse(self, ngqpt_coarse, filepath=None): # Generate the points of the coarse mesh map_fine_to_coarse = [] - nx,ny,nz = ngqpt_coarse - for i,j,k in itertools.product(range(-int(nx/2), int(nx/2) + 1), - range(-int(ny/2), int(ny/2) + 1), - range(-int(nz/2), int(nz/2) + 1)): + nx, ny, nz = ngqpt_coarse + for i, j, k in itertools.product(range(-int(nx/2), int(nx/2) + 1), + range(-int(ny/2), int(ny/2) + 1), + range(-int(nz/2), int(nz/2) + 1)): coarse_qpt = np.array([i, j, k]) / np.array(ngqpt_coarse) for n,fine_qpt in enumerate(fine_qpoints): if np.allclose(coarse_qpt, fine_qpt): @@ -1054,9 +1274,10 @@ def get_coarse(self, ngqpt_coarse, filepath=None): self.write(filepath, filter_blocks=map_fine_to_coarse) return self.__class__(filepath) - def anacompare_asr(self, asr_list=(0, 2), chneut_list=(1,), dipdip=1, lo_to_splitting="automatic", + def anacompare_asr(self, asr_list=(0, 2), chneut_list=(1,), dipdip=1, dipquad=1, quadquad=1, + lo_to_splitting="automatic", nqsmall=10, ndivsm=20, dos_method="tetra", ngqpt=None, - verbose=0, mpi_procs=1): + verbose=0, mpi_procs=1, pre_label=None) -> PhononBandsPlotter: """ Invoke anaddb to compute the phonon band structure and the phonon DOS with different values of the ``asr`` input variable (acoustic sum rule treatment). @@ -1065,7 +1286,8 @@ def anacompare_asr(self, asr_list=(0, 2), chneut_list=(1,), dipdip=1, lo_to_spli Args: asr_list: List of ``asr`` values to test. chneut_list: List of ``chneut`` values to test (used by anaddb only if dipdip == 1). - dipdip: 1 to activate treatment of dipole-dipole interaction (requires BECS and dielectric tensor). + dipdip: 1 to activate the treatment of the dipole-dipole interaction (requires BECS and dielectric tensor). + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). lo_to_splitting: Allowed values are [True, False, "automatic"]. Defaults to "automatic" If True the LO-TO splitting will be calculated if qpoint == Gamma and the non_anal_directions non_anal_phfreqs attributes will be addeded to the phonon band structure. @@ -1079,6 +1301,7 @@ def anacompare_asr(self, asr_list=(0, 2), chneut_list=(1,), dipdip=1, lo_to_spli ngqpt: Number of divisions for the ab-initio q-mesh in the DDB file. Auto-detected if None (default) verbose: Verbosity level. mpi_procs: Number of MPI processes used by anaddb. + pre_label: String to prepend to the default label used by the Plotter. Return: |PhononBandsPlotter| object. @@ -1089,30 +1312,38 @@ def anacompare_asr(self, asr_list=(0, 2), chneut_list=(1,), dipdip=1, lo_to_spli for asr, chneut in itertools.product(asr_list, chneut_list): phbst_file, phdos_file = self.anaget_phbst_and_phdos_files( - nqsmall=nqsmall, ndivsm=ndivsm, asr=asr, chneut=chneut, dipdip=dipdip, dos_method=dos_method, + nqsmall=nqsmall, ndivsm=ndivsm, asr=asr, chneut=chneut, dipdip=dipdip, dipquad=dipquad, quadquad=quadquad, + dos_method=dos_method, lo_to_splitting=lo_to_splitting, ngqpt=ngqpt, qptbounds=None, anaddb_kwargs=None, verbose=verbose, mpi_procs=mpi_procs, workdir=None, manager=None) - label = "asr: %d, dipdip: %d, chneut: %d" % (asr, dipdip, chneut) + if pre_label is not None: + label = "%s (asr: %d, dipdip: %d, chneut: %d)" % (pre_label, asr, dipdip, chneut) + else: + label = "asr: %d, dipdip: %d, chneut: %d" % (asr, dipdip, chneut) + if phdos_file is not None: phbands_plotter.add_phbands(label, phbst_file.phbands, phdos=phdos_file.phdos) phdos_file.close() else: phbands_plotter.add_phbands(label, phbst_file.phbands) + phbst_file.close() return phbands_plotter - def anacompare_dipdip(self, chneut_list=(1,), asr=2, lo_to_splitting="automatic", - nqsmall=10, ndivsm=20, dos_method="tetra", ngqpt=None, - verbose=0, mpi_procs=1): + def anacompare_dipdip(self, chneut_list=(1,), asr=2, dipquad=1, quadquad=1, + lo_to_splitting="automatic", nqsmall=10, ndivsm=20, dos_method="tetra", ngqpt=None, + verbose=0, mpi_procs=1, pre_label=None) -> PhononDosPlotter: """ Invoke anaddb to compute the phonon band structure and the phonon DOS with different - values of the ``asr`` input variable (acoustic sum rule treatment). + values of the ``dipdip`` input variable (dipole-dipole treatment). Build and return |PhononDosPlotter| object. Args: chneut_list: List of ``chneut`` values to test (used for dipdip == 1). + asr: Variable for acoustic sum rule treatment. + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). lo_to_splitting: Allowed values are [True, False, "automatic"]. Defaults to "automatic" If True the LO-TO splitting will be calculated if qpoint == Gamma and the non_anal_directions non_anal_phfreqs attributes will be addeded to the phonon band structure. @@ -1126,6 +1357,7 @@ def anacompare_dipdip(self, chneut_list=(1,), asr=2, lo_to_splitting="automatic" ngqpt: Number of divisions for the ab-initio q-mesh in the DDB file. Auto-detected if None (default) verbose: Verbosity level. mpi_procs: Number of MPI processes used by anaddb. + pre_label: String to prepen to the default label used by the Plotter. Return: |PhononDosPlotter| object. @@ -1138,11 +1370,16 @@ def anacompare_dipdip(self, chneut_list=(1,), asr=2, lo_to_splitting="automatic" my_chneut_list = chneut_list if dipdip != 0 else [0] for chneut in my_chneut_list: phbst_file, phdos_file = self.anaget_phbst_and_phdos_files( - nqsmall=nqsmall, ndivsm=ndivsm, asr=asr, chneut=chneut, dipdip=dipdip, dos_method=dos_method, + nqsmall=nqsmall, ndivsm=ndivsm, asr=asr, chneut=chneut, dipdip=dipdip, dipquad=dipquad, quadquad=quadquad, + dos_method=dos_method, lo_to_splitting=lo_to_splitting, ngqpt=ngqpt, qptbounds=None, anaddb_kwargs=None, verbose=verbose, mpi_procs=mpi_procs, workdir=None, manager=None) - label = "asr: %d, dipdip: %d, chneut: %d" % (asr, dipdip, chneut) + if pre_label is not None: + label = "%s (asr: %d, dipdip: %d, chneut: %d)" % (pre_label, asr, dipdip, chneut) + else: + label = "asr: %d, dipdip: %d, chneut: %d" % (asr, dipdip, chneut) + if phdos_file is not None: phbands_plotter.add_phbands(label, phbst_file.phbands, phdos=phdos_file.phdos) phdos_file.close() @@ -1152,8 +1389,8 @@ def anacompare_dipdip(self, chneut_list=(1,), asr=2, lo_to_splitting="automatic" return phbands_plotter - def anacompare_phdos(self, nqsmalls, asr=2, chneut=1, dipdip=1, dos_method="tetra", ngqpt=None, - verbose=0, num_cpus=1, stream=sys.stdout): + def anacompare_phdos(self, nqsmalls, asr=2, chneut=1, dipdip=1, dipquad=1, quadquad=1, + dos_method="tetra", ngqpt=None, verbose=0, num_cpus=1, stream=sys.stdout): """ Invoke Anaddb to compute Phonon DOS with different q-meshes. The ab-initio dynamical matrix reported in the DDB_ file will be Fourier-interpolated on the list of q-meshes specified @@ -1163,6 +1400,7 @@ def anacompare_phdos(self, nqsmalls, asr=2, chneut=1, dipdip=1, dos_method="tetr nqsmalls: List of integers defining the q-mesh for the DOS. Each integer gives the number of divisions to be used to sample the smallest reciprocal lattice vector. asr, chneut, dipdip: Anaddb input variable. See official documentation. + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). dos_method: Technique for DOS computation in Possible choices: "tetra", "gaussian" or "gaussian:0.001 eV". In the later case, the value 0.001 eV is used as gaussian broadening ngqpt: Number of divisions for the ab-initio q-mesh in the DDB file. Auto-detected if None (default) @@ -1183,7 +1421,8 @@ def anacompare_phdos(self, nqsmalls, asr=2, chneut=1, dipdip=1, dos_method="tetr def do_work(nqsmall): phbst_file, phdos_file = self.anaget_phbst_and_phdos_files( - nqsmall=nqsmall, ndivsm=1, asr=asr, chneut=chneut, dipdip=dipdip, dos_method=dos_method, ngqpt=ngqpt) + nqsmall=nqsmall, ndivsm=1, asr=asr, chneut=chneut, dipdip=dipdip, + dipquad=dipquad, quadquad=quadquad, dos_method=dos_method, ngqpt=ngqpt) phdos = phdos_file.phdos phbst_file.close() phdos_file.close() @@ -1238,8 +1477,9 @@ def worker(): return dict2namedtuple(phdoses=phdoses, plotter=plotter) - def anacompare_rifcsph(self, rifcsph_list, asr=2, chneut=1, dipdip=1, lo_to_splitting="automatic", - ndivsm=20, ngqpt=None, verbose=0, mpi_procs=1): + def anacompare_rifcsph(self, rifcsph_list, asr=2, chneut=1, dipdip=1, dipquad=1, quadquad=1, + lo_to_splitting="automatic", ndivsm=20, + ngqpt=None, verbose=0, mpi_procs=1) -> PhononBandsPlotter: """ Invoke anaddb to compute the phonon band structure and the phonon DOS with different values of the ``asr`` input variable (acoustic sum rule treatment). @@ -1247,8 +1487,9 @@ def anacompare_rifcsph(self, rifcsph_list, asr=2, chneut=1, dipdip=1, lo_to_spli Args: rifcsph_list: List of rifcsph to analyze. - asr, chneut, dipdip: Anaddb input variable. See official documentation. - dipdip: 1 to activate treatment of dipole-dipole interaction (requires BECS and dielectric tensor). + asr, chneut: Anaddb input variable. See official documentation. + dipdip: 1 to activate the treatment of the dipole-dipole interaction (requires BECS and dielectric tensor). + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). lo_to_splitting: Allowed values are [True, False, "automatic"]. Defaults to "automatic" If True the LO-TO splitting will be calculated if qpoint == Gamma and the non_anal_directions non_anal_phfreqs attributes will be addeded to the phonon band structure. @@ -1267,8 +1508,8 @@ def anacompare_rifcsph(self, rifcsph_list, asr=2, chneut=1, dipdip=1, lo_to_spli for rifcsph in rifcsph_list: phbst_file, _ = self.anaget_phbst_and_phdos_files( - nqsmall=0, ndivsm=ndivsm, asr=asr, chneut=chneut, dipdip=dipdip, dos_method="tetra", - lo_to_splitting=lo_to_splitting, ngqpt=ngqpt, qptbounds=None, + nqsmall=0, ndivsm=ndivsm, asr=asr, chneut=chneut, dipdip=dipdip, dipquad=dipquad, quadquad=quadquad, + dos_method="tetra", lo_to_splitting=lo_to_splitting, ngqpt=ngqpt, qptbounds=None, anaddb_kwargs={"rifcsph": rifcsph}, verbose=verbose, mpi_procs=mpi_procs, workdir=None, manager=None) @@ -1278,7 +1519,66 @@ def anacompare_rifcsph(self, rifcsph_list, asr=2, chneut=1, dipdip=1, lo_to_spli return phbands_plotter - def anaget_epsinf_and_becs(self, chneut=1, mpi_procs=1, workdir=None, manager=None, verbose=0): + def anacompare_quad(self, asr=2, chneut=1, dipdip=1, lo_to_splitting="automatic", + nqsmall=0, ndivsm=20, dos_method="tetra", ngqpt=None, + verbose=0, mpi_procs=1) -> PhononBandsPlotter: + """ + Invoke anaddb to compute the phonon band structure and the phonon DOS by including + dipole-quadrupole and quadrupole-quadrupole terms in the dynamical matrix + Build and return |PhononBandsPlotter| object. + + Args: + asr: Acoustic sum rule input variable. + chneut: Charge neutrality for BECS + dipdip: 1 to activate the treatment of the dipole-dipole interaction (requires BECS and dielectric tensor). + lo_to_splitting: Allowed values are [True, False, "automatic"]. Defaults to "automatic" + If True the LO-TO splitting will be calculated if qpoint == Gamma and the non_anal_directions + non_anal_phfreqs attributes will be addeded to the phonon band structure. + "automatic" activates LO-TO if the DDB file contains the dielectric tensor and Born effective charges. + nqsmall: Defines the q-mesh for the phonon DOS in terms of + the number of divisions to be used to sample the smallest reciprocal lattice vector. + 0 to disable DOS computation. + ndivsm: Number of division used for the smallest segment of the q-path + dos_method: Technique for DOS computation in Possible choices: "tetra", "gaussian" or "gaussian:0.001 eV". + In the later case, the value 0.001 eV is used as gaussian broadening + ngqpt: Number of divisions for the ab-initio q-mesh in the DDB file. Auto-detected if None (default) + verbose: Verbosity level. + mpi_procs: Number of MPI processes used by anaddb. + + Return: + |PhononBandsPlotter| object. + + Client code can use ``plotter.combiplot()`` or ``plotter.gridplot()`` to visualize the results. + """ + phbands_plotter = PhononBandsPlotter() + + confs = [ + dict(dipquad=0, quadquad=0), + dict(dipquad=1, quadquad=0), + dict(dipquad=1, quadquad=1), + ] + + for conf in confs: + phbst_file, phdos_file = self.anaget_phbst_and_phdos_files( + nqsmall=nqsmall, ndivsm=ndivsm, asr=asr, chneut=chneut, dipdip=dipdip, dos_method=dos_method, + lo_to_splitting=lo_to_splitting, ngqpt=ngqpt, qptbounds=None, + anaddb_kwargs=conf, verbose=verbose, mpi_procs=mpi_procs, workdir=None, manager=None) + + label = "asr: %d, chneut: %d, dipdip: %d, dipquad: %d, quadquad: %d " % ( + asr, dipdip, chneut, conf["dipquad"], conf["quadquad"]) + + if phdos_file is not None: + phbands_plotter.add_phbands(label, phbst_file.phbands, phdos=phdos_file.phdos) + phdos_file.close() + else: + phbands_plotter.add_phbands(label, phbst_file.phbands) + + phbst_file.close() + + return phbands_plotter + + def anaget_epsinf_and_becs(self, chneut=1, mpi_procs=1, workdir=None, + manager=None, verbose=0, return_input=False): """ Call anaddb to compute the macroscopic electronic dielectric tensor (e_inf) and the Born effective charges in Cartesian coordinates. @@ -1292,6 +1592,7 @@ def anaget_epsinf_and_becs(self, chneut=1, mpi_procs=1, workdir=None, manager=No Return: ``namedtuple`` with the following attributes:: epsinf: |DielectricTensor| object. becs: Becs objects. + anaddb_input: |AnaddbInput| object. """ if not self.has_lo_to_data(): cprint("Dielectric tensor and Becs are not available in DDB: %s" % self.filepath, "yellow") @@ -1299,26 +1600,31 @@ def anaget_epsinf_and_becs(self, chneut=1, mpi_procs=1, workdir=None, manager=No inp = AnaddbInput(self.structure, anaddb_kwargs={"chneut": chneut}) task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose) + anaddbnc_path = task.outpath_from_ext("anaddb.nc") # Read data from the netcdf output file produced by anaddb. - with ETSF_Reader(os.path.join(task.workdir, "anaddb.nc")) as r: + with ETSF_Reader(anaddbnc_path) as r: epsinf = DielectricTensor(r.read_value("emacro_cart").T.copy()) structure = r.read_structure() becs = Becs(r.read_value("becs_cart"), structure, chneut=inp["chneut"], order="f") - return dict2namedtuple(epsinf=epsinf, becs=becs) - @deprecated(message="anaget_emacro_and_becs is deprecated and will be removed in abipy 0.8, use anaget_epsinf_and_becs") - def anaget_emacro_and_becs(self, **kwargs): - r = self.anaget_epsinf_and_becs(**kwargs) - return r.epsinf, r.becs + # I'm doing this because there are several examples with: + # epsinf, becs = ddb.anaget_epsinf_and_becs() + # and we don't want to break backward compatibility + if return_input: + return dict2namedtuple(epsinf=epsinf, becs=becs, anaddb_input=inp) + else: + return dict2namedtuple(epsinf=epsinf, becs=becs) def anaget_ifc(self, ifcout=None, asr=2, chneut=1, dipdip=1, ngqpt=None, - mpi_procs=1, workdir=None, manager=None, verbose=0, anaddb_kwargs=None): + mpi_procs=1, workdir=None, manager=None, verbose=0, anaddb_kwargs=None, return_input=False + ) -> Union[InteratomicForceConstants, Tuple[InteratomicForceConstants, AnaddbInput]]: """ Execute anaddb to compute the interatomic forces. Args: - ifcout: Number of neighbouring atoms for which the ifc's will be output. If None all the atoms in the big box. + ifcout: Number of neighbouring atoms for which the ifc's will be output. + If None all the atoms in the big box. asr, chneut, dipdip: Anaddb input variable. See official documentation. ngqpt: Number of divisions for the q-mesh in the DDB file. Auto-detected if None (default) mpi_procs: Number of MPI processes to use. @@ -1326,21 +1632,170 @@ def anaget_ifc(self, ifcout=None, asr=2, chneut=1, dipdip=1, ngqpt=None, manager: |TaskManager| object. If None, the object is initialized from the configuration file verbose: verbosity level. Set it to a value > 0 to get more information anaddb_kwargs: additional kwargs for anaddb + return_input: True if the |AnaddbInput| object should be returned as 2nd argument Returns: :class:`InteratomicForceConstants` with the calculated ifc. """ if ngqpt is None: ngqpt = self.guessed_ngqpt + # TODO: Add support for dipquad and quadquad but need new version of anaddb + # that can compute the DD, QQ LR part in R space (see Miquel's mail) inp = AnaddbInput.ifc(self.structure, ngqpt=ngqpt, ifcout=ifcout, q1shft=(0, 0, 0), asr=asr, chneut=chneut, dipdip=dipdip, anaddb_kwargs=anaddb_kwargs) task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose) - return InteratomicForceConstants.from_file(os.path.join(task.workdir, 'anaddb.nc')) + anaddbnc_path = task.outpath_from_ext("anaddb.nc") + ifcs = InteratomicForceConstants.from_file(anaddbnc_path) + + return ifcs if not return_input else (ifcs, inp) + + def anaget_nlo(self, anaddb_kwargs=None, voigt=True, verbose=0, units="pm/V", + mpi_procs=1, workdir=None, manager=None, return_input=False): + """ + Execute anaddb to compute the nonlinear optical coefficients. + + Args: + voigt: if True, returns the NLO tensor in the Voigt notation (3x6 tensor). + else, a 3x3x3 tensor is returned + mpi_procs: Number of MPI processes to use. + workdir: Working directory. If None, a temporary directory is created. + manager: |TaskManager| object. If None, the object is initialized from the configuration file + verbose: verbosity level. Set it to a value > 0 to get more information + units: units used for the NLO tensor. Default is pm/V, but can be "au" atomic units + anaddb_kwargs: additional kwargs for anaddb + return_input: True if the |AnaddbInput| object should be returned as 2nd argument + + Returns: + A 2nd or 3rd rank tensor containing the nonlinear coefficients. + """ + + inp = AnaddbInput.dfpt(self.structure, dte=True, anaddb_kwargs=anaddb_kwargs) + + task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose) + + from abipy.dfpt.anaddbnc import AnaddbNcFile + anaddbnc_path = task.outpath_from_ext("anaddb.nc") + with AnaddbNcFile(anaddbnc_path) as anaddbnc: + dij = anaddbnc.dchide + + if units=="pm/V": + dij *= 16 * np.pi**2 * abu.Bohr_Ang**2 * 1e-8 * abu.eps0 / abu.e_Cb + + if voigt: + return dij.voigt if not return_input else (dij.voigt, inp) + else: + return dij if not return_input else (dij, inp) + + def anaget_phonopy_ifc(self, ngqpt=None, supercell_matrix=None, asr=0, chneut=0, dipdip=0, + manager=None, workdir=None, mpi_procs=1, symmetrize_tensors=False, + output_dir_path=None, prefix_outfiles="", symprec=1e-5, set_masses=False, + verbose=0, return_input=False): + """ + Runs anaddb to get the interatomic force constants(IFC), born effective charges(BEC) and dielectric + tensor obtained and converts them to the phonopy format. Optionally writes the + standard phonopy files to a selected directory: FORCE_CONSTANTS, BORN (if BECs are available) + POSCAR of the unit cell, POSCAR of the supercell. + + Args: + ngqpt: the ngqpt used to generate the anaddbnc. Will be used to determine the (diagonal) + supercell matrix in phonopy. A smaller value can be used, but some information will + be lost and inconsistencies in the convertion may occour. + supercell_matrix: the supercell matrix used for phonopy. if None it will be set to + a diagonal matrix with ngqpt on the diagonal. This should provide the best agreement between + the anaddb and phonopy results. + asr, chneut, dipdip: Anaddb input variable. See official documentation. + manager: |TaskManager| object. If None, the object is initialized from the configuration file + workdir: Working directory. If None, a temporary directory is created. + mpi_procs: Number of MPI processes to use. + symmetrize_tensors: if True the tensors will be symmetrized in the Phonopy object and + in the output files. This will apply to IFC, BEC and dielectric tensor. + output_dir_path: a path to a directory where the phonopy files will be created + prefix_outfiles: a string that will be added as a prefix to the name of the written files + symprec: distance tolerance in Cartesian coordinates to find crystal symmetry in phonopy. + It might be that the value should be tuned so that it leads to the the same symmetries + as in the abinit calculation. + set_masses: if True the atomic masses used by abinit will be added to the PhonopyAtoms + and will be present in the returned Phonopy object. This should improve compatibility + among abinit and phonopy results if frequencies needs to be calculated. + verbose: verbosity level. Set it to a value > 0 to get more information + return_input: True if the |AnaddbInput| object should be returned as 2nd argument + + Returns: + An instance of a Phonopy object that contains the IFC, BEC and dieletric tensor data. + """ + + if ngqpt is None: ngqpt = self.guessed_ngqpt + if supercell_matrix is None: + supercell_matrix = np.eye(3) * ngqpt + + inp = AnaddbInput.ifc(self.structure, ngqpt=ngqpt, ifcout=None, q1shft=(0, 0, 0), asr=asr, + chneut=chneut, dipdip=dipdip) + + task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose=verbose) + + from abipy.dfpt.anaddbnc import AnaddbNcFile + from abipy.dfpt.converters import abinit_to_phonopy + anaddbnc_path = task.outpath_from_ext("anaddb.nc") + + with AnaddbNcFile(anaddbnc_path) as anaddbnc: + phon = abinit_to_phonopy(anaddbnc=anaddbnc, supercell_matrix=supercell_matrix, + symmetrize_tensors=symmetrize_tensors, output_dir_path=output_dir_path, + prefix_outfiles=prefix_outfiles, symprec=symprec, set_masses=set_masses) + + return phon if not return_input else (phon, inp) + + def anaget_interpolated_ddb(self, qpt_list, asr=2, chneut=1, dipdip=1, dipquad=1, quadquad=1, + ngqpt=None, workdir=None, + manager=None, mpi_procs=1, verbose=0, anaddb_kwargs=None, return_input=False): + """ + Runs anaddb to generate an interpolated DDB file on a list of qpt. + + Args: + qpt_list: list of fractional coordinates of qpoints where the ddb should be interpolated. + asr, chneut, dipdip: Anaddb input variable. See official documentation. + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). + ngqpt: Number of divisions for the q-mesh in the DDB file. Auto-detected if None (default). + workdir: Working directory. If None, a temporary directory is created. + mpi_procs: Number of MPI processes to use. + manager: |TaskManager| object. If None, the object is initialized from the configuration file + verbose: verbosity level. Set it to a value > 0 to get more information. + anaddb_kwargs: additional kwargs for anaddb. + return_input: True if the |AnaddbInput| object should be returned as 2nd argument + """ + + if ngqpt is None: ngqpt = self.guessed_ngqpt + + inp = AnaddbInput(self.structure, anaddb_kwargs=anaddb_kwargs) + + q1shft = [[0, 0, 0]] + inp.set_vars( + ifcflag=1, + ngqpt=np.array(ngqpt), + q1shft=q1shft, + nqshft=len(q1shft), + asr=asr, + chneut=chneut, + dipdip=dipdip, + prtddb=1, + dipquad=dipquad, + quadquad=quadquad, + ) + + inp['qph1l'] = [list(q) + [1] for q in qpt_list] + inp['nph1l'] = len(qpt_list) + + task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose=verbose) + + new_ddb_path = os.path.join(task.outdir.path, "out_DDB") + + obj = self.__class__(new_ddb_path) + + return obj if not return_input else (obj, inp) def anaget_dielectric_tensor_generator(self, asr=2, chneut=1, dipdip=1, workdir=None, mpi_procs=1, - manager=None, verbose=0, anaddb_kwargs=None): + manager=None, verbose=0, anaddb_kwargs=None, return_input=False): """ Execute anaddb to extract the quantities necessary to create a |DielectricTensorGenerator|. Requires phonon perturbations at Gamma and static electric field perturbations. @@ -1352,6 +1807,7 @@ def anaget_dielectric_tensor_generator(self, asr=2, chneut=1, dipdip=1, workdir= manager: |TaskManager| object. If None, the object is initialized from the configuration file verbose: verbosity level. Set it to a value > 0 to get more information anaddb_kwargs: additional kwargs for anaddb + return_input: True if the |AnaddbInput| object should be returned as 2nd argument Return: |DielectricTensorGenerator| object. """ @@ -1369,12 +1825,16 @@ def anaget_dielectric_tensor_generator(self, asr=2, chneut=1, dipdip=1, workdir= task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose) - return DielectricTensorGenerator.from_files(os.path.join(task.workdir, "run.abo_PHBST.nc"), - os.path.join(task.workdir, "anaddb.nc")) + phbstnc_path = task.outpath_from_ext("PHBST.nc") + anaddbnc_path = task.outpath_from_ext("anaddb.nc") + + gen = DielectricTensorGenerator.from_files(phbstnc_path, anaddbnc_path) + + return gen if not return_input else (gen, inp) def anaget_elastic(self, relaxed_ion="automatic", piezo="automatic", dde=False, stress_correction=False, asr=2, chneut=1, - mpi_procs=1, workdir=None, manager=None, verbose=0, retpath=False): + mpi_procs=1, workdir=None, manager=None, verbose=0, retpath=False, return_input=False): """ Call anaddb to compute elastic and piezoelectric tensors. Require DDB with strain terms. @@ -1403,12 +1863,13 @@ def anaget_elastic(self, relaxed_ion="automatic", piezo="automatic", manager: |TaskManager| object. If None, the object is initialized from the configuration file verbose: verbosity level. Set it to a value > 0 to get more information retpath: True to return path to anaddb.nc file. + return_input: True if the |AnaddbInput| object should be returned as 2nd argument Return: |ElasticData| object if ``retpath`` is None else absolute path to anaddb.nc file. """ if not self.has_strain_terms(): # DOH! - cprint("Strain perturbations are not available in DDB: %s" % self.filepath, "yellow") + raise RuntimeError("Strain perturbations are not available in DDB: %s" % self.filepath) if relaxed_ion == "automatic": relaxed_ion = self.has_internalstrain_terms() and self.has_at_least_one_atomic_perturbation(qpt=(0, 0, 0)) @@ -1447,13 +1908,16 @@ def anaget_elastic(self, relaxed_ion="automatic", piezo="automatic", task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose) # Read data from the netcdf output file produced by anaddb. - path = os.path.join(task.workdir, "anaddb.nc") - return ElasticData.from_file(path) if not retpath else path + anaddbnc_path = task.outpath_from_ext("anaddb.nc") + + retobj = ElasticData.from_file(anaddbnc_path) if not retpath else anaddbnc_path + + return retobj if not return_input else (retobj, inp) def anaget_raman(self, asr=2, chneut=1, ramansr=1, alphon=1, workdir=None, mpi_procs=1, - manager=None, verbose=0, directions=None, anaddb_kwargs=None): + manager=None, verbose=0, directions=None, anaddb_kwargs=None, return_input=False) -> Raman: """ - Execute anaddb to compute the Raman spectrum + Execute anaddb to compute the Raman spectrum. Args: qpoint: Reduced coordinates of the qpoint where phonon modes are computed. @@ -1466,8 +1930,10 @@ def anaget_raman(self, asr=2, chneut=1, ramansr=1, alphon=1, workdir=None, mpi_p If None the three cartesian direction will be used. anaddb_kwargs: additional kwargs for anaddb. - Return: |Raman| object. + Return: Raman object. """ + #if not self.has_raman_terms(): + # raise ValueError('The DDB file does not contain Raman terms.') inp = AnaddbInput.dfpt(self.structure, raman=True, asr=asr, chneut=chneut, ramansr=ramansr, alphon=alphon, directions=directions, anaddb_kwargs=anaddb_kwargs) @@ -1475,8 +1941,10 @@ def anaget_raman(self, asr=2, chneut=1, ramansr=1, alphon=1, workdir=None, mpi_p task = self._run_anaddb_task(inp, mpi_procs, workdir, manager, verbose) # Read data from the netcdf output file produced by anaddb. - path = os.path.join(task.workdir, "anaddb.nc") - return Raman.from_file(path) + anaddbnc_path = task.outpath_from_ext("anaddb.nc") + raman = Raman.from_file(anaddbnc_path) + + return raman if not return_input else (raman, inp) def _run_anaddb_task(self, anaddb_input, mpi_procs, workdir, manager, verbose): """ @@ -1498,10 +1966,11 @@ def _run_anaddb_task(self, anaddb_input, mpi_procs, workdir, manager, verbose): return task - def write(self, filepath, filter_blocks=None): + def write(self, filepath: str, filter_blocks=None) -> None: """ - Writes the DDB file in filepath. Requires the blocks data. - Only the information stored in self.header.lines and in self.blocks will be used to produce the file + Writes the DDB file to filepath. Requires the blocks data. + Only the information stored in self.header.lines and in self.blocks + are be used to produce the file """ lines = list(self.header.lines) @@ -1557,22 +2026,131 @@ def replace_block_for_qpoint(self, qpt, data): return False - def get_panel(self): - """Build panel with widgets to interact with the |DdbFile| either in a notebook or in panel app.""" + def insert_block(self, data, replace=True): + """ + Inserts a block in the list. Can replace a block if already present. + + Args: + data: a dictionary with keys "dord" (the order of the perturbation), + "qpt" (the fractional coordinates of the qpoint if dord=2), + "qpt3" (the fractional coordinates of the qpoints if dord=3), + "data" (the lines of the block of data). + replace: if True and an equivalent block is already present it will be replaced, + otherwise the block will not be inserted. + + Returns: + bool: True if the block was inserted. + """ + dord = data["dord"] + for i, b in enumerate(self.blocks): + if dord == b["dord"] and \ + (dord in (0, 1) or + (dord == 2 and np.allclose(b['qpt'], data["qpt"])) or + (dord == 3 and np.allclose(b['qpt3'], data["qpt3"]))): + if replace: + self.blocks[i] = data + return True + else: + return False + + self.blocks.append(data) + return True + + def remove_block(self, dord, qpt=None, qpt3=None): + """ + Removes one block from the list of blocks in the ddb + + Args: + dord: the order of the perturbation (from 0 to 3). + qpt: the fractional coordinates of the q point of the block to be + removed. Should be present if dord=2. + qpt3: a 3x3 matrix with the coordinates for the third order perturbations. + Should be present in dord=3. + + Returns: + bool: True if a matching block was found and removed. + """ + if dord == 2 and qpt is None: + raise ValueError("if dord==2 the qpt should be set") + if dord == 3 and qpt3 is None: + raise ValueError("if dord==3 the qpt3 should be set") + + for i, b in enumerate(self.blocks): + if dord == b["dord"] and \ + (dord in (0, 1) or + (dord == 2 and np.allclose(b['qpt'], qpt)) or + (dord == 3 and np.allclose(b['qpt3'], qpt3))): + self.blocks.pop(i) + return True + + return False + + def get_2nd_ord_dict(self) -> dict: + """ + Generates an ordered dictionary with the second order derivatives in the form + {qpt: {(idir1, ipert1, idir2, ipert2): complex value}}. + + Returns: + OrderedDict: a dictionary with all the elements of a dynamical matrix + """ + dynmat = self.computed_dynmat + d = OrderedDict() + + for q, dm in dynmat.items(): + dd = {} + for index, row in dm.iterrows(): + dd[index] = row["cvalue"] + d[q] = dd + + return d + + def set_2nd_ord_data(self, data, replace=True) -> None: + """ + Insert the blocks corresponding to the data provided for the second order perturbations. + + Args: + data: a dict of the form {qpt: {(idir1, ipert1, idir2, ipert2): complex value}}. + replace: if True and an equivalent block is already present it will be replaced, + otherwise the block will not be inserted. + """ + for q, d in data.items(): + if isinstance(q, Kpoint): + q = q.frac_coords + lines = get_2nd_ord_block_string(q, d) + block_data = {"qpt": q, "qpt3": None, "dord": 2, "data": lines} + + self.insert_block(block_data, replace=replace) + + def get_panel(self, **kwargs): + """ + Build panel with widgets to interact with the |DdbFile| either in a notebook or in a bokeh app. + """ from abipy.panels.ddb import DdbFilePanel - return DdbFilePanel(self).get_panel() + return DdbFilePanel(ddb=self).get_panel(**kwargs) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write an jupyter_ notebook to nbpath. If ``nbpath`` is None, a temporay file in the current working directory is created. Return path to the notebook. """ nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + first_char = "" if self.has_panel() else "#" nb.cells.extend([ nbv.new_code_cell("ddb = abilab.abiopen('%s')" % self.filepath), nbv.new_code_cell("units = 'eV'\nprint(ddb)"), nbv.new_code_cell("# display(ddb.header)"), + + # Add panel GUI but comment the python code if panel is not available. + nbv.new_markdown_cell("## Panel dashboard"), + nbv.new_code_cell(f"""\ +# Execute this cell to display the panel GUI (requires panel package). +# To display the dashboard inside the browser use `abiopen.py FILE --panel`. + +{first_char}abilab.abipanel() +{first_char}ddb.get_panel() +"""), + nbv.new_markdown_cell("## Invoke `anaddb` to compute bands and dos"), nbv.new_code_cell("""\ bstfile, phdosfile = ddb.anaget_phbst_and_phdos_files(nqsmall=10, ndivsm=20, @@ -1647,11 +2225,11 @@ def write_notebook(self, nbpath=None): class Becs(Has_Structure, MSONable): """ - This object stores the Born effective charges and provides simple tools for data analysis. + This object stores the Born effective charges and provides tools for data analysis. """ @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: """Return dictionary with JSON serialization in MSONable format.""" return dict(becs_arr=self.values, structure=self.structure, chneut=self.chneut, order="c") @@ -1678,14 +2256,14 @@ def __init__(self, becs_arr, structure, chneut, order="c"): self.zstars = [ZstarTensor(mat) for mat in self.values] @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure - def __repr__(self): + def __repr__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append app("Born effective charges in Cartesian coordinates (Voigt notation)") @@ -1706,15 +2284,16 @@ def to_string(self, verbose=0): return "\n".join(lines) @property - def sumrule(self): + def sumrule(self) -> np.ndarray: """[3, 3] matrix with Born effective charge neutrality sum-rule.""" return self.values.sum(axis=0) - def _repr_html_(self): + def _repr_html_(self) -> str: """Integration with jupyter notebooks.""" return self.get_voigt_dataframe()._repr_html_() - def get_voigt_dataframe(self, view="inequivalent", tol=1e-3, select_symbols=None, decimals=5, verbose=0): + def get_voigt_dataframe(self, view="inequivalent", tol=1e-3, + select_symbols=None, decimals=5, verbose=0) -> pd.DataFrame: """ Return |pandas-DataFrame| with Voigt indices as columns and natom rows. @@ -1815,6 +2394,9 @@ def from_objects(cls, phbands, anaddbnc): epsinf = anaddbnc.epsinf eps0 = anaddbnc.eps0 oscillator_strength = anaddbnc.oscillator_strength + if epsinf is None or eps0 is None or oscillator_strength is None: + raise ValueError("Could not instantiate from the provided objects. " + "Some information is missing.") return cls(phfreqs, oscillator_strength, eps0, epsinf, anaddbnc.structure) @@ -1834,14 +2416,14 @@ def __init__(self, phfreqs, oscillator_strength, eps0, epsinf, structure): self._structure = structure @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation with verbosity level `verbose`.""" lines = [] app = lines.append @@ -1871,7 +2453,7 @@ def to_string(self, verbose=0): return "\n".join(lines) - def get_oscillator_dataframe(self, reim="all", tol=1e-6): + def get_oscillator_dataframe(self, reim="all", tol=1e-6) -> pd.DataFrame: """ Return |pandas-Dataframe| with oscillator matrix elements. @@ -1896,13 +2478,13 @@ def get_oscillator_dataframe(self, reim="all", tol=1e-6): df.index.name = "mode" return df - def tensor_at_frequency(self, w, gamma_ev=1e-4, units='eV'): + def tensor_at_frequency(self, w, gamma_ev=1e-4, units='eV') -> DielectricTensor: """ Returns a |DielectricTensor| object representing the dielectric tensor in atomic units at the specified frequency w. Eq.(53-54) in PRB55, 10355 (1997). Args: - w: Frequency in eV + w: Frequency. gamma_ev: Phonon damping factor in eV (full width). Poles are shifted by phfreq * gamma_ev. Accept scalar or [nfreq] array. units: string specifying the units used for phonon frequencies. Possible values in @@ -1919,7 +2501,7 @@ def tensor_at_frequency(self, w, gamma_ev=1e-4, units='eV'): else: gammas = np.ones(len(self.phfreqs)) * float(gamma_ev) - t = np.zeros((3, 3),dtype=complex) + t = np.zeros((3, 3), dtype=complex) for i in range(3, len(self.phfreqs)): g = gammas[i] * self.phfreqs[i] t += self.oscillator_strength[i].real / (self.phfreqs[i]**2 - w**2 - 1j*g) @@ -1932,9 +2514,9 @@ def tensor_at_frequency(self, w, gamma_ev=1e-4, units='eV'): @add_fig_kwargs def plot(self, w_min=0, w_max=None, gamma_ev=1e-4, num=500, component='diag', reim="reim", units='eV', - with_phfreqs=True, ax=None, fontsize=12, **kwargs): + with_phfreqs=True, ax=None, fontsize=12, **kwargs) -> Figure: """ - Plots the selected components of the dielectric tensor as a function of frequency. + Plots the selected components of the dielectric tensor as a function of frequency with matplotlib. Args: w_min: minimum frequency in units `units`. @@ -1959,10 +2541,7 @@ def plot(self, w_min=0, w_max=None, gamma_ev=1e-4, num=500, component='diag', re Return: |matplotlib-Figure| """ - if w_max is None: - w_max = (np.max(self.phfreqs) + gamma_ev * 10) * phfactor_ev2units(units) - - wmesh = np.linspace(w_min, w_max, num, endpoint=True) + wmesh = self._get_wmesh(gamma_ev, num, units, w_min, w_max) t = np.zeros((num, 3, 3), dtype=complex) for i, w in enumerate(wmesh): @@ -1973,8 +2552,8 @@ def plot(self, w_min=0, w_max=None, gamma_ev=1e-4, num=500, component='diag', re if 'linewidth' not in kwargs: kwargs['linewidth'] = 2 - ax.set_xlabel('Frequency {}'.format(phunit_tag(units))) - ax.set_ylabel(r'$\epsilon(\omega)$') + ax.set_xlabel('Frequency {}'.format(phunit_tag(units)), fontsize=fontsize) + ax.set_ylabel(r'$\epsilon(\omega)$', fontsize=fontsize) ax.grid(True) reimfs = [] @@ -1997,25 +2576,125 @@ def plot(self, w_min=0, w_max=None, gamma_ev=1e-4, num=500, component='diag', re label = reims % r'$\epsilon_{%d%d}$' % (i, j) ax.plot(wmesh, reimf(t[:, i, j]), label=label, **kwargs) elif component == 'diag_av': - label = r'$Average\, %s\epsilon_{ii}$' % reims + label = r'Average %s' % (reims % r'$\epsilon_{ii}$') ax.plot(wmesh, np.trace(reimf(t), axis1=1, axis2=2)/3, label=label, **kwargs) else: raise ValueError('Unkwnown component {}'.format(component)) - # Add points showing phonon energies. - if with_phfreqs: - wvals = self.phfreqs[3:] * phfactor_ev2units(units) - ax.scatter(wvals, np.zeros_like(wvals), s=30, marker="o", c="blue") + self._add_phfreqs(ax, units, with_phfreqs) ax.legend(loc="best", fontsize=fontsize, shadow=True) return fig + @add_plotly_fig_kwargs + def plotly(self, w_min=0, w_max=None, gamma_ev=1e-4, num=500, component='diag', reim="reim", units='eV', + with_phfreqs=True, fig=None, rcd=None, fontsize=16, **kwargs): + """ + Plots the selected components of the dielectric tensor as a function of frequency with plotly. + + Args: + w_min: minimum frequency in units `units`. + w_max: maximum frequency. If None it will be set to the value of the maximum frequency + 5*gamma_ev. + gamma_ev: Phonon damping factor in eV (full width). Poles are shifted by phfreq * gamma_ev. + Accept scalar or [nfreq] array. + num: number of values of the frequencies between w_min and w_max. + component: determine which components of the tensor will be displayed. Can be a list/tuple of two + elements, indicating the indices [i, j] of the desired component or a string among:: + * 'diag_av' to plot the average of the components on the diagonal + * 'diag' to plot the elements on diagonal + * 'all' to plot all the components in the upper triangle. + * 'offdiag' to plot the off-diagonal components in the upper triangle. + reim: a string with "re" will plot the real part, with "im" selects the imaginary part. + units: string specifying the units used for phonon frequencies. Possible values in + ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + with_phfreqs: True to show phonon frequencies with dots. + fig: |plotly.graph_objects.Figure| or None if a new figure should be created. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. + fontsize: Legend and label fontsize. + + Return: |plotly.graph_objects.Figure| + """ + wmesh = self._get_wmesh(gamma_ev, num, units, w_min, w_max) + t = np.zeros((num, 3, 3), dtype=complex) + + for i, w in enumerate(wmesh): + t[i] = self.tensor_at_frequency(w, units=units, gamma_ev=gamma_ev) + + if fig is None: + fig, _ = get_fig_plotly() + + rcd = PlotlyRowColDesc.from_object(rcd) + iax, ply_row, ply_col = rcd.iax, rcd.ply_row, rcd.ply_col + xaxis = 'xaxis%u' % iax + yaxis = 'yaxis%u' % iax + fig.layout[xaxis].title = dict(text='Frequency {}'.format(phunit_tag(units, unicode=True)), font_size=fontsize) + fig.layout[yaxis].title = dict(text='ε(ω)', font_size=fontsize) + + if 'line_width' not in kwargs: + kwargs['line_width'] = 2 + + reimfs = [] + if 're' in reim: reimfs.append((np.real, "Re{%s}")) + if 'im' in reim: reimfs.append((np.imag, "Im{%s}")) + + for reimf, reims in reimfs: + if isinstance(component, (list, tuple)): + label = reims % r'ε%s%s' % (SUBSCRIPT_UNICODE[str(component[0])],SUBSCRIPT_UNICODE[str(component[1])]) + fig.add_scatter(x=wmesh, y=reimf(t[:,component[0], component[1]]), mode='lines', showlegend=True, + name=label, row=ply_row, col=ply_col, **kwargs) + elif component == 'diag': + for i in range(3): + s = SUBSCRIPT_UNICODE[str(i)] + label = reims % r'ε%s%s' % (s, s) + fig.add_scatter(x=wmesh, y=reimf(t[:, i, i]), mode='lines', name=label, row=ply_row, col=ply_col, **kwargs) + elif component in ('all', "offdiag"): + for i in range(3): + for j in range(3): + if component == "all" and i > j: continue + if component == "offdiag" and i >= j: continue + label = reims % r'ε%s%s' % (SUBSCRIPT_UNICODE[str(i)], SUBSCRIPT_UNICODE[str(j)]) + fig.add_scatter(x=wmesh, y=reimf(t[:, i, j]), mode='lines', name=label, row=ply_row, + col=ply_col, **kwargs) + elif component == 'diag_av': + label = r'Average %s' % (reims % r'εᵢᵢ') + fig.add_scatter(x=wmesh, y=np.trace(reimf(t), axis1=1, axis2=2)/3, mode='lines', name=label, + row=ply_row, col=ply_col, **kwargs) + else: + raise ValueError('Unkwnown component {}'.format(component)) + + self._add_phfreqs_plotly(fig, rcd, units, with_phfreqs) + fig.layout.legend.font.size = fontsize + + return fig + + def _get_wmesh(self, gamma_ev, num, units, w_min, w_max): + """ + Helper function to get the wmesh for the plots. + + Args: + gamma_ev: Phonon damping factor in eV (full width). Poles are shifted by phfreq * gamma_ev. + Accept scalar or [nfreq] array. + num: number of values of the frequencies between w_min and w_max. + units: string specifying the units used for phonon frequencies. Possible values in + ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + w_min: minimum frequency in units `units`. + w_max: maximum frequency. If None it will be set to the value of the maximum frequency + 5*gamma_ev. + + Returns: + a numpy array with the frequencies. + """ + if w_max is None: + w_max = (np.max(self.phfreqs) + gamma_ev * 10) * phfactor_ev2units(units) + + wmesh = np.linspace(w_min, w_max, num, endpoint=True) + return wmesh + # To maintain backward compatibility. plot_vs_w = plot @add_fig_kwargs - def plot_all(self, **kwargs): + def plot_all(self, **kwargs) -> Figure: """ Plot diagonal and off-diagonal elements of the dielectric tensor as a function of frequency. Both real and imag part are show. Accepts all arguments of `plot` method with the exception of: @@ -2034,37 +2713,242 @@ def plot_all(self, **kwargs): return fig + @add_fig_kwargs + def plot_e0w_qdirs(self, qdirs=None, w_min=0, w_max=None, gamma_ev=1e-4, num=500, reim="reim", func="direct", + units='eV', with_phfreqs=True, ax=None, fontsize=12, **kwargs) -> Figure: + r""" + Plots the dielectric tensor and/or -epsinf_q**2 / \epsilon_q along a set of specified directions. + With \epsilon_q as defined in eq. (56) in :cite:`Gonze1997` PRB55, 10355 (1997). + + Args: + qdirs: a list of directions along which to plot the dielectric tensor. They will be normalized + internally. If None the three cartesian directions will be shown. + w_min: minimum frequency in units `units`. + w_max: maximum frequency. If None it will be set to the value of the maximum frequency + 5*gamma_ev. + gamma_ev: Phonon damping factor in eV (full width). Poles are shifted by phfreq * gamma_ev. + Accept scalar or [nfreq] array. + num: number of values of the frequencies between w_min and w_max. + reim: a string with "re" will plot the real part, with "im" selects the imaginary part. + func: determines which functional form will be plot. Can be: + * "direct": plot of \epsilon_q + * "inverse": plot of -epsinf_q**2 / \epsilon_q + * "both": both plots. + units: string specifying the units used for phonon frequencies. Possible values in + ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + with_phfreqs: True to show phonon frequencies with dots. + ax: |matplotlib-Axes| or None if a new figure should be created. + fontsize: Legend and label fontsize. + """ + wmesh = self._get_wmesh(gamma_ev, num, units, w_min, w_max) + t = np.zeros((num, 3, 3), dtype=complex) + + for i, w in enumerate(wmesh): + t[i] = self.tensor_at_frequency(w, units=units, gamma_ev=gamma_ev) + + ax, fig, plt = get_ax_fig_plt(ax=ax) + + if 'linewidth' not in kwargs: + kwargs['linewidth'] = 2 + + ax.set_xlabel('Frequency {}'.format(phunit_tag(units))) + ax.set_ylabel(r'$\epsilon(\omega)$') + ax.grid(True) + + reimfs = [] + if 're' in reim: reimfs.append((np.real, "Re{%s}")) + if 'im' in reim: reimfs.append((np.imag, "Im{%s}")) + + if func == "both": + func = ["direct", "inverse"] + elif func not in ("direct", "inverse"): + raise ValueError(f"unknown value for func: {func}") + else: + func = [func] + + func_label = {"direct": r"$\epsilon_{{q{ind}}}$", + "inverse": r"$-(\epsilon^{{\infty}}_{{q{ind}}})^2 / \epsilon_{{q{ind}}}$"} + + if qdirs is None: + qdirs = np.eye(3) + elif len(np.shape(qdirs)) < 2: + qdirs = [qdirs] + + qdirs = np.array(qdirs, dtype=float) + + for reimf, reims in reimfs: + for func_form in func: + for i, q in enumerate(qdirs): + q /= np.linalg.norm(q) + tt = np.einsum("i,kij,j->k", q, t, q) + if func_form == "inverse": + tt = -1 / tt * (np.einsum("i,ij,j", q, self.epsinf, q)) ** 2 + + label = reims % func_label[func_form].format(ind=i) + ax.plot(wmesh, reimf(tt), label=label, **kwargs) + + self._add_phfreqs(ax, units, with_phfreqs) + + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + return fig + + def _add_phfreqs(self, ax, units, with_phfreqs) -> None: + """ + Helper functions to add the phonon frequencies to the x axis. + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + units: string specifying the units used for phonon frequencies. Possible values in + ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + with_phfreqs: True to show phonon frequencies with dots. + """ + # Add points showing phonon energies. + if with_phfreqs: + wvals = self.phfreqs[3:] * phfactor_ev2units(units) + ax.scatter(wvals, np.zeros_like(wvals), s=30, marker="o", c="blue") + + def _add_phfreqs_plotly(self, fig, rcd, units, with_phfreqs) -> None: + """ + Helper functions to add the phonon frequencies to the plotly fig. + Args: + fig: |plotly.graph_objects.Figure| + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. + units: string specifying the units used for phonon frequencies. Possible values in + ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + with_phfreqs: True to show phonon frequencies with dots. + """ + # Add points showing phonon energies. + if with_phfreqs: + wvals = self.phfreqs[3:] * phfactor_ev2units(units) + fig.add_scatter(x=wvals, y=np.zeros_like(wvals), mode='markers', marker=dict(color='blue', size=10), + name='', row=rcd.ply_row, col=rcd.ply_col, showlegend=False) + + def reflectivity(self, qdir, w, gamma_ev=1e-4, units='eV'): + """ + Calculates the reflectivity from the dielectric tensor along the specified direction + according to Eq. (58) in :cite:`Gonze1997` PRB55, 10355 (1997). + + Args: + qdir: a list with three components defining the direction. + It will be normalized internally. + w: frequency. + gamma_ev: Phonon damping factor in eV (full width). Poles are shifted by phfreq * gamma_ev. + Accept scalar or [nfreq] array. + units: string specifying the units used for phonon frequencies. Possible values in + ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + + Returns: the value of the reflectivity. + """ + + qdir = np.array(qdir) / np.linalg.norm(qdir) + t = self.tensor_at_frequency(w, units=units, gamma_ev=gamma_ev) + + n = np.einsum("i,ij,j", qdir, t, qdir) ** 0.5 + + r = (n - 1) / (n + 1) + + return (r * r.conjugate()).real + + @add_fig_kwargs + def plot_reflectivity(self, qdirs=None, w_min=0, w_max=None, gamma_ev=1e-4, num=500, + units='eV', with_phfreqs=True, ax=None, fontsize=12, **kwargs) -> Figure: + """ + Plots the reflectivity from the dielectric tensor along the specified directions, + according to eq. (58) in :cite:`Gonze1997` PRB55, 10355 (1997). + + Args: + qdirs: a list of directions along which to plot the dielectric tensor. They will be normalized + internally. If None the three cartesian directions will be shown. + w_min: minimum frequency in units `units`. + w_max: maximum frequency. If None it will be set to the value of the maximum frequency + 5*gamma_ev. + gamma_ev: Phonon damping factor in eV (full width). Poles are shifted by phfreq * gamma_ev. + Accept scalar or [nfreq] array. + num: number of values of the frequencies between w_min and w_max. + units: string specifying the units used for phonon frequencies. Possible values in + ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + with_phfreqs: True to show phonon frequencies with dots. + ax: |matplotlib-Axes| or None if a new figure should be created. + fontsize: Legend and label fontsize. + """ + wmesh = self._get_wmesh(gamma_ev, num, units, w_min, w_max) + t = np.zeros((num, 3, 3), dtype=complex) + + for i, w in enumerate(wmesh): + t[i] = self.tensor_at_frequency(w, units=units, gamma_ev=gamma_ev) + + if qdirs is None: + qdirs = np.eye(3) + elif len(np.shape(qdirs)) < 2: + qdirs = [qdirs] + + qdirs = np.array(qdirs, dtype=float) + + qdirs /= np.linalg.norm(qdirs, axis=1)[:, None] + + n = np.einsum("li,kij,lj->lk", qdirs, t, qdirs) ** 0.5 + + r = np.abs((n - 1) / (n + 1)) ** 2 + + ax, fig, plt = get_ax_fig_plt(ax=ax) + + if 'linewidth' not in kwargs: + kwargs['linewidth'] = 2 + + ax.set_xlabel('Frequency {}'.format(phunit_tag(units))) + ax.set_ylabel(r'$R(\omega)$') + ax.grid(True) + + for i in range(len(qdirs)): + label = f"$R_{{q{i}}}$" + ax.plot(wmesh, r[i], label=label, **kwargs) + + self._add_phfreqs(ax, units, with_phfreqs) + + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + return fig + class DdbRobot(Robot): """ - This robot analyzes the results contained in multiple DDB_ files. + This robot analyzes the results stored in multiple DDB files. + Obviously, particular `compare` methods make sense only if the DDB files have the same structures + and have computed with different parameters e.g. qmesh, tsmear, ecut .... .. rubric:: Inheritance Diagram .. inheritance-diagram:: DdbRobot """ + EXT = "DDB" @classmethod - def class_handles_filename(cls, filename): + def class_handles_filename(cls, filename: str): """Exclude DDB.nc files. Override base class.""" return filename.endswith("_" + cls.EXT) @classmethod - def from_mpid_list(cls, mpid_list, api_key=None, endpoint=None): + def from_mpid_list(cls, mpid_list): """ Build a DdbRobot from list of materials-project ids. Args: mpid_list: List of Materials Project material_ids (e.g., ["mp-1234", "mp-1245"]). - api_key (str): A String API key for accessing the MaterialsProject REST interface. - If None, the code will check if there is a `PMG_MAPI_KEY` in your .pmgrc.yaml. - endpoint (str): Url of endpoint to access the MaterialsProject REST interface. - Defaults to the standard Materials Project REST address """ from abipy.core import restapi ddb_files = [] - with restapi.get_mprester(api_key=api_key, endpoint=endpoint) as rest: - for mpid in list_strings(mpid_list): + mpid_list = list_strings(mpid_list) + + if not mpid_list: + raise RuntimeError("No structure found in the MP database") + + if any(not s.startswith("mp-") for s in mpid_list): + raise ValueError(f"Invalid mp-in in list:\n{mpid_list}") + + with restapi.get_mprester() as rest: + + if getattr(rest, "_make_request") is None: + raise RuntimeError("from_mpid_list requires mp-api, please install it with `pip install mp-api`") + + for mpid in mpid_list: try: ddb_string = rest._make_request("/materials/%s/abinit_ddb" % mpid) except rest.Error: @@ -2076,7 +2960,7 @@ def from_mpid_list(cls, mpid_list, api_key=None, endpoint=None): with open(tmpfile, "wt") as fh: fh.write(ddb_string) - return cls.from_files(ddb_files) + return cls.from_files(ddb_files, labels=mpid_list) #def get_qpoints_union(self): # """ @@ -2161,8 +3045,9 @@ def from_mpid_list(cls, mpid_list, api_key=None, endpoint=None): # return retcode, results - def get_dataframe_at_qpoint(self, qpoint=None, units="eV", asr=2, chneut=1, dipdip=1, - with_geo=True, with_spglib=True, abspath=False, funcs=None): + def get_dataframe_at_qpoint(self, qpoint=None, units="eV", asr=2, chneut=1, + dipdip=1, dipquad=1, quadquad=1, ifcflag=0, with_geo=True, + with_spglib=True, abspath=False, funcs=None) -> pd.DataFrame: """ Call anaddb to compute the phonon frequencies at a single q-point using the DDB files treated by the robot and the given anaddb input arguments. LO-TO splitting is not included. @@ -2173,6 +3058,8 @@ def get_dataframe_at_qpoint(self, qpoint=None, units="eV", asr=2, chneut=1, dipd units: string specifying the units used for ph frequencies. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. asr, chneut, dipdip: Anaddb input variable. See official documentation. + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). + ifcflag: 1 if phonons should be Fourier-interpolated, 0 to use dynamical matrix directly. with_geo: True if structure info should be added to the dataframe with_spglib: True to compute spglib space group and add it to the DataFrame. abspath: True if paths in index should be absolute. Default: Relative to getcwd(). @@ -2200,7 +3087,8 @@ def get_dataframe_at_qpoint(self, qpoint=None, units="eV", asr=2, chneut=1, dipd # Call anaddb to get the phonon frequencies. Note lo_to_splitting set to False. phbands = ddb.anaget_phmodes_at_qpoint(qpoint=qpoint, asr=asr, chneut=chneut, - dipdip=dipdip, lo_to_splitting=False) + dipdip=dipdip, dipquad=dipquad, quadquad=quadquad, + ifcflag=ifcflag, lo_to_splitting=False) # [nq, nmodes] array freqs = phbands.phfreqs[0, :] * phfactor_ev2units(units) @@ -2222,16 +3110,23 @@ def get_dataframe_at_qpoint(self, qpoint=None, units="eV", asr=2, chneut=1, dipd def anaget_phonon_plotters(self, **kwargs): r""" - Invoke anaddb to compute phonon bands and DOS using the arguments passed via \*\*kwargs. + Invoke anaddb to compute phonon bands and DOS using the arguments passed via `kwargs`. Collect results and return `namedtuple` with the following attributes: phbands_plotter: |PhononBandsPlotter| object. phdos_plotter: |PhononDosPlotter| object. """ - # TODO: Multiprocessing? if "workdir" in kwargs: raise ValueError("Cannot specify `workdir` when multiple DDB file are executed.") + def find_anaddb_ncpath(filepath): + from abipy.flowtk.utils import Directory + directory = Directory(os.path.dirname(filepath)) + p = directory.has_abiext("anaddb.nc") + if not p: + raise RuntimeError("Cannot find `anaddb.nc` in directory %s" % (directory)) + return p + phbands_plotter, phdos_plotter = PhononBandsPlotter(), PhononDosPlotter() for label, ddb in self.items(): @@ -2241,8 +3136,10 @@ def anaget_phonon_plotters(self, **kwargs): # Phonon frequencies with non analytical contributions, if calculated, are saved in anaddb.nc # Those results should be fetched from there and added to the phonon bands. # lo_to_splitting in ["automatic", True, False] and defaults to automatic. - if kwargs.get("lo_to_splitting", False): - anaddb_path = os.path.join(os.path.dirname(phbst_file.filepath), "anaddb.nc") + loto_mode = kwargs.get("lo_to_splitting", False) + if loto_mode: + #print("lo_to_splitting:", kwargs["lo_to_splitting"]) + anaddb_path = find_anaddb_ncpath(phbst_file.filepath) phbst_file.phbands.read_non_anal_from_file(anaddb_path) phbands_plotter.add_phbands(label, phbst_file, phdos=phdos_file) @@ -2434,7 +3331,22 @@ def yield_figs(self, **kwargs): # pragma: no cover for fig in r.phbands_plotter.yield_figs(): yield fig for fig in r.phdos_plotter.yield_figs(): yield fig - def write_notebook(self, nbpath=None): + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + if all(ddb.has_at_least_one_atomic_perturbation() for ddb in self.abifiles): + print("Invoking anaddb through anaget_phonon_plotters...") + r = self.anaget_phonon_plotters() + for fig in r.phbands_plotter.yield_plotly_figs(): yield fig + for fig in r.phdos_plotter.yield_plotly_figs(): yield fig + + def get_panel(self, **kwargs): + """Return a panel object that allows the user to compare the results with a web-based interface.""" + from abipy.panels.ddb import DdbRobotPanel + return DdbRobotPanel(self).get_panel(**kwargs) + + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If ``nbpath`` is None, a temporary file in the current working directory is created. Return path to the notebook. @@ -2462,3 +3374,26 @@ def write_notebook(self, nbpath=None): nb.cells.extend(self.get_baserobot_code_cells()) return self._write_nb_nbpath(nb, nbpath) + + +def get_2nd_ord_block_string(qpt, data) -> list: + """ + Helper function providing the lines required in a DDB file for a given + q-point and second order derivatives. + + Args: + qpt: the fractional coordinates of the q point. + data: a dictionary of the form {qpt: {(idir1, ipert1, idir2, ipert2): complex value}} + with the data that should be given in the string. + + Returns: list of str: the lines that can be added to the DDB file. + """ + lines = [] + lines.append(f" 2nd derivatives (non-stat.) - # elements :{len(data):12}") + lines.append(" qpt{:16.8E}{:16.8E}{:16.8E} 1.0".format(*qpt)) + l_format = "{:6d}" * 4 + " {:22.14E}" * 2 + + for p, v in data.items(): + lines.append(l_format.format(*p, v.real, v.imag)) + + return lines diff --git a/abipy/dfpt/deformation_utils.py b/abipy/dfpt/deformation_utils.py new file mode 100644 index 000000000..fb6a56a23 --- /dev/null +++ b/abipy/dfpt/deformation_utils.py @@ -0,0 +1,193 @@ +# deformation_utils.py + +import numpy as np +from pymatgen.core import Structure, Lattice, Element +from abipy.core.symmetries import AbinitSpaceGroup +from pymatgen.symmetry.analyzer import SpacegroupAnalyzer +from abipy.abio.inputs import AbinitInput +import re + + +def generate_deformations_volumic(structure, eps_V=0.02, scales=None): + if scales is None: + scales = [-1, 0, 1, 2, 3] + rprim = structure.lattice.matrix + structures_new = {} + + for i in scales: + rprim2 = np.copy(rprim) + rprim2[:, :] = rprim[:, :] * (1.00 + eps_V * i)**(1/3.) + + structure2 = structure.copy() + structure2.lattice = Lattice(rprim2) + #structure2.scale_lattice(structure2.volume*(1.00 + eps_V * i)) + namei = int(round(1000 * (1.00 + eps_V * i))) + formatted_namei = f"{namei:04d}" + structures_new[formatted_namei] = structure2 + + + return structures_new + +def generate_deformations(structure, eps=0.005): + spgrp = AbinitSpaceGroup.from_structure(structure ) + print (spgrp) + spgrp_number=spgrp.spgid + rprim= structure.lattice.matrix + + rprim2 = np.copy(rprim) + rprim_new = {} + structures_new = {} + + if 1 <= spgrp_number <= 2: + disp=[[1,1,1,1,1,1], [0,1,1,1,1,1], [2,1,1,1,1,1], [1,0,1,1,1,1], [1,2,1,1,1,1], [1,1,0,1,1,1], + [1,1,2,1,1,1], [1,1,1,0,1,1], [1,1,1,2,1,1], [1,1,1,1,0,1], [1,1,1,1,2,1], [1,1,1,1,1,0], + [1,1,1,1,1,2], [0,0,1,1,1,1], [1,0,0,1,1,1], [1,1,0,0,1,1], [1,1,1,0,0,1], [1,1,1,1,0,0], + [0,1,0,1,1,1], [0,1,1,0,1,1], [0,1,1,1,0,1], [0,1,1,1,1,0], [1,0,1,0,1,1], [1,0,1,1,0,1], + [1,0,1,1,1,0], [1,1,0,1,0,1], [1,1,0,1,1,0], [1,1,1,0,1,0] , [0 ,0,0,0,0,0]] + if abs(rprim[1, 0]) > 1e-9 or abs(rprim[2, 0]) > 1e-9 or abs(rprim[2, 1]) > 1e-9: + print("Warning: The lattice is oriented such that xz =xy =yz =0 .") + rprim0 = np.copy(rprim) + a=rprim[0, :] + b=rprim[1, :] + c=rprim[2, :] + norm_a = np.linalg.norm(a) + norm_b = np.linalg.norm(b) + norm_c = np.linalg.norm(c) + + # Compute angles between vectors + cos_ab = np.dot(a, b) / (norm_a * norm_b) + cos_ac = np.dot(a, c) / (norm_a * norm_c) + cos_bc = np.dot(b, c) / (norm_b * norm_c) + + rprim0[0,0] = 1.0 + rprim0[0,1] = 0.0 + rprim0[0,2] = 0.0 + rprim0[1,0] = cos_ab + rprim0[1,1] = np.sqrt(1-cos_ab**2) + rprim0[1,2] = 0.0 + rprim0[2,0] = cos_ac + rprim0[2,1] = (cos_bc-rprim0[1,0]*rprim0[2,0])/rprim0[1,1] + rprim0[2,2] = np.sqrt(1.0-rprim0[2,0]**2-rprim0[2,1]**2) + rprim0[0,:] = rprim0[0,:]*norm_a + rprim0[1,:] = rprim0[1,:]*norm_b + rprim0[2,:] = rprim0[2,:]*norm_c + print("Old rprim:") + print(rprim) + print("New rprim:") + print(rprim0) + + for pair in disp: + i,j,k,l,m,n = pair + rprim2[ :,0] = rprim0[ :,0] * (1.00 + eps * i) + rprim0[ :,1] * (eps * l) +rprim0[ :,2] * (eps * m) + rprim2[ :,1] = rprim0[ :,1] * (1.00 + eps * j) + rprim0[ :,2] * (eps * n) + rprim2[ :,2] = rprim0[ :,2] * (1.00 + eps * k) + + namei = int(round(1000 * (1.00 + eps * i))) + namej = int(round(1000 * (1.00 + eps * j))) + namek = int(round(1000 * (1.00 + eps * k))) + namel = int(round(1000 * (1.00 + eps * l))) + namem = int(round(1000 * (1.00 + eps * m))) + namen = int(round(1000 * (1.00 + eps * n))) + formatted_namei = f"{namei:04d}_{namej:04d}_{namek:04d}_{namel:04d}_{namem:04d}_{namen:04d}" + + structure2=structure.copy() + structure2.lattice=Lattice(rprim2) + structures_new[formatted_namei] = structure2 + + return structures_new + elif 3 <= spgrp_number <= 15: + disp=[[1,1,1,1], [0,1,1,1], [2,1,1,1], [1,0,1,1], [1,2,1,1], [1,1,0,1], [1,1,2,1], [1,1,1,0], + [1,1,1,2], [0,0,1,1], [1,0,0,1], [1,1,0,0], [0,1,0,1], [1,0,1,0], [0,1,1,0]] + if abs(rprim[1, 0]) > 1e-9 or abs(rprim[0, 1]) > 1e-9 or abs(rprim[2, 1]) > 1e-9 or abs(rprim[1, 2]) > 1e-9: + print("Error: Monoclinic structure with yx=xy=0 and yz=zy=0 lattice required.") + elif abs(rprim[0, 2]) > 1e-9 : + print("Warning: The lattice is oriented such that xz = 0.") + rprim0 = np.copy(rprim) + a=rprim[0, :] + b=rprim[1, :] + c=rprim[2, :] + norm_a = np.linalg.norm(a) + norm_b = np.linalg.norm(b) + norm_c = np.linalg.norm(c) + + # Compute angles between vectors + cos_ab = np.dot(a, b) / (norm_a * norm_b) + cos_ac = np.dot(a, c) / (norm_a * norm_c) + cos_bc = np.dot(b, c) / (norm_b * norm_c) + + rprim0[0,0] = norm_a + rprim0[0,2] = 0.0 + rprim0[1,1] = norm_b + rprim0[2,0] = norm_c*cos_ac + rprim0[2,2] = norm_c*np.sqrt(1-cos_ac**2) + print("Old rprim:") + print(rprim) + print("New rprim:") + print(rprim0) + + for pair in disp: + i,j,k,l = pair + rprim2[ :,0] = rprim0[ :,0] * (1.00 + eps * i) +rprim0[ :,2] * (eps * l) + rprim2[ :,1] = rprim0[ :,1] * (1.00 + eps * j) + rprim2[ :,2] = rprim0[ :,2] * (1.00 + eps * k) + + namei = int(round(1000 * (1.00 + eps * i))) + namej = int(round(1000 * (1.00 + eps * j))) + namek = int(round(1000 * (1.00 + eps * k))) + namel = int(round(1000 * (1.00 + eps * l))) + formatted_namei = f"{namei:04d}_{namej:04d}_{namek:04d}_{namel:04d}" + + structure2=structure.copy() + structure2.lattice=Lattice(rprim2) + structures_new[formatted_namei] = structure2 + + return structures_new + elif 16 <= spgrp_number <= 74: + disp=[[0,0,1],[0,1,0],[1,0,0],[1,1,1],[0,1,1],[2,1,1],[1,0,1],[1,2,1],[1,1,0],[1,1,2]] + for pair in disp: + i,j,k = pair + rprim2[ :,0] = rprim[ :,0] * (1.00 + eps * i) + rprim2[ :,1] = rprim[ :,1] * (1.00 + eps * j) + rprim2[ :,2] = rprim[ :,2] * (1.00 + eps * k) + + namei = int(round(1000 * (1.00 + eps * i))) + namej = int(round(1000 * (1.00 + eps * j))) + namek = int(round(1000 * (1.00 + eps * k))) + formatted_namei = f"{namei:04d}_{namej:04d}_{namek:04d}" + + structure2=structure.copy() + structure2.lattice=Lattice(rprim2) + structures_new[formatted_namei] = structure2 + + return structures_new + elif 75 <= spgrp_number <= 194: + disp=[[0,0],[1,1],[0,1],[2,1],[1,0],[1,2]] + for pair in disp: + i, k = pair + rprim2[ :,0] = rprim[ :,0] * (1.00 + eps * i) + rprim2[ :,1] = rprim[ :,1] * (1.00 + eps * i) + rprim2[ :,2] = rprim[ :,2] * (1.00 + eps * k) + + namei = int(round(1000 * (1.00 + eps * i))) + namek = int(round(1000 * (1.00 + eps * k))) + formatted_namei = f"{namei:04d}_{namek:04d}" + rprim_new[formatted_namei] = rprim2 + + structure2=structure.copy() + structure2.lattice=Lattice(rprim2) + structures_new[formatted_namei] = structure2 + + return structures_new + elif 195 <= spgrp_number <= 230: + for i in range(3): + rprim2[ :,0] = rprim[ :,0] * (1.00 + eps * i) + rprim2[ :,1] = rprim[ :,1] * (1.00 + eps * i) + rprim2[ :,2] = rprim[ :,2] * (1.00 + eps * i) + namei = int(round(1000 * (1.00 + eps * i))) + formatted_namei = f"{namei:04d}" + + structure2=structure.copy() + structure2.lattice=Lattice(rprim2) + structures_new[formatted_namei] = structure2 + return structures_new + diff --git a/abipy/dfpt/elastic.py b/abipy/dfpt/elastic.py index a1a61e4de..d3346f477 100644 --- a/abipy/dfpt/elastic.py +++ b/abipy/dfpt/elastic.py @@ -2,15 +2,21 @@ """ Objects to analyze elastic and piezoelectric tensors computed by anaddb. """ +from __future__ import annotations + import pandas as pd from collections import OrderedDict from monty.string import list_strings, marquee from monty.collections import AttrDict from monty.json import MSONable +from abipy.core.structure import Structure from abipy.core.mixins import Has_Structure from abipy.tools.tensors import Tensor, ElasticTensor, PiezoTensor -from abipy.flowtk.netcdf import ETSF_Reader +try: + from abipy.flowtk.netcdf import ETSF_Reader +except ImportError: + from abipy.flowtk.netcdf import EtsfReader as ETSF_Reader class MyElasticTensor(ElasticTensor): @@ -36,6 +42,24 @@ def get_voigt_dataframe(self, tol=1e-5): df.index.name = "Voigt index" return df + def get_elate_html(self, sysname="Unknown System"): + """ + Return HTML string with ELATE webpage. + """ + from abipy.tools.elate.elastic import ELATE + # Symmetrize the matrix else ELATE complains + matrix = self.voigt + matrix = (matrix + matrix.T) / 2.0 + + # This is needed because ELATE changes sys.stdout without reverting it before returning + import sys + save_stdout = sys.stdout + try: + html = ELATE(matrix.tolist(), sysname=sysname) + return html + finally: + sys.stdout = save_stdout + class MyPiezoTensor(PiezoTensor): @@ -69,7 +93,7 @@ class ElasticData(Has_Structure, MSONable): computed by anaddb. Data is stored in pymatgen tensor objects. Provides methods to analyze/tabulate data - Se also http://progs.coudert.name/elate/mp?query=mp-2172 for a web interface. + See also http://progs.coudert.name/elate/mp?query=mp-2172 for a web interface. """ ALL_ELASTIC_TENSOR_NAMES = ( @@ -134,16 +158,16 @@ def __init__(self, structure, params, elastic_clamped=None, elastic_relaxed=None structure: |Structure| object. params: Dictionary with input parameters. elastic_clamped: clamped-ion elastic tensor in Voigt notation in GPa. shape (6,6). - elastic_relaxed: relaxed-ion elastic tensor in Voigt notation in GPa. shape (6,6). + elastic_relaxed: relaxed-ion elastic tensor in Voigt notation in GPa. shape (6, 6). elastic_stress_corr: relaxed-ion elastic tensor considering the stress left inside cell in Voigt notation in GPa. shape (6,6). elastic_relaxed_fixed_D: relaxed-ion elastic tensor at fixed displacement field in Voigt notation in GPa. shape (6,6). - piezo_clamped: clamped-ion piezoelectric tensor in Voigt notation in c/m^2. shape (3,6). - piezo_relaxed: relaxed-ion piezoelectric tensor in Voigt notation in c/m^2. shape (3,6). - d_piezo_relaxed: relaxed-ion piezoelectric d tensor in Voigt notation in pc/m^2. shape (3,6). - g_piezo_relaxed: relaxed-ion piezoelectric g tensor in Voigt notation in m^2/c. shape (3,6). - h_piezo_relaxed: relaxed-ion piezoelectric h tensor in Voigt notation in GN/c. shape (3,6). + piezo_clamped: clamped-ion piezoelectric tensor in Voigt notation in c/m^2. shape (3, 6). + piezo_relaxed: relaxed-ion piezoelectric tensor in Voigt notation in c/m^2. shape (3, 6). + d_piezo_relaxed: relaxed-ion piezoelectric d tensor in Voigt notation in pc/m^2. shape (3, 6). + g_piezo_relaxed: relaxed-ion piezoelectric g tensor in Voigt notation in m^2/c. shape (3, 6). + h_piezo_relaxed: relaxed-ion piezoelectric h tensor in Voigt notation in GN/c. shape (3, 6). .. note:: @@ -174,20 +198,20 @@ def _define_variable(self, tensor_voigt, tensor_class): return tensor_class.from_voigt(tensor_voigt) if tensor_voigt is not None else None @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure @classmethod - def from_file(cls, path): + def from_file(cls, filepath: str) -> ElasticData: """ Builds the object from an anaddb.nc file """ - with ETSF_Reader(path) as reader: + with ETSF_Reader(filepath) as reader: return cls.from_ncreader(reader) @classmethod - def from_ncreader(cls, reader): + def from_ncreader(cls, reader) -> ElasticData: """ Builds the object from a ETSF_Reader """ @@ -236,10 +260,10 @@ def from_ncreader(cls, reader): return cls(structure, params, **ts) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String represention with verbosity level `verbose`.""" lines = []; app = lines.append app(self.structure.to_string(verbose=verbose, title="Structure")) @@ -269,7 +293,7 @@ def to_string(self, verbose=0): return "\n".join(lines) - def get_tensor(self, tensor_name, tol=None): + def get_tensor(self, tensor_name: str, tol=None): """ Return tensor from its name `tensor_name`. Set to zero all entries below `tol` if `tol` is not None. @@ -304,7 +328,7 @@ def name_tensor_list(self, tensor_names=None, tensor_type="all", tol=None): return l - def fit_to_structure(self, structure=None, symprec=0.1): + def fit_to_structure(self, structure=None, symprec=0.1) -> ElasticData: """ Return new ElasticData object with tensors that are invariant with respect to symmetry operations corresponding to `structure`. @@ -321,7 +345,7 @@ def fit_to_structure(self, structure=None, symprec=0.1): return self.__class__(structure, self.params, **kwargs) - def convert_to_ieee(self, structure=None, initial_fit=True, refine_rotation=True): + def convert_to_ieee(self, structure=None, initial_fit=True, refine_rotation=True) -> ElasticData: """ Return new set of tensors in IEEE format according to the 1987 IEEE standards. @@ -347,7 +371,7 @@ def convert_to_ieee(self, structure=None, initial_fit=True, refine_rotation=True return self.__class__(structure, self.params, **kwargs) - def get_elastic_tensor_dataframe(self, tensor_name="elastic_relaxed", tol=1e-3): + def get_elastic_tensor_dataframe(self, tensor_name="elastic_relaxed", tol=1e-3) -> pd.DataFrame: """ Args: tensor_name: @@ -363,7 +387,7 @@ def get_elastic_tensor_dataframe(self, tensor_name="elastic_relaxed", tol=1e-3): return pd.DataFrame(rows, index=columns, columns=columns) - def get_piezoelectric_tensor_dataframe(self, tensor_name="piezo_relaxed", tol=1e-5): + def get_piezoelectric_tensor_dataframe(self, tensor_name="piezo_relaxed", tol=1e-5) -> pd.DataFrame: """ Args: tensor_name: @@ -383,7 +407,7 @@ def get_piezoelectric_tensor_dataframe(self, tensor_name="piezo_relaxed", tol=1e def get_elastic_voigt_dataframe(self, voigt_as_index=True, tol=None): return self.get_voigt_dataframe(tensor_names=self.ALL_ELASTIC_TENSOR_NAMES, - voigt_as_index=voigt_as_index, tol=tol) + voigt_as_index=voigt_as_index, tol=tol) def get_piezo_voigt_dataframe(self, voigt_as_index=True, tol=None): return self.get_voigt_dataframe(tensor_names=self.ALL_PIEZOELECTRIC_TENSOR_NAMES, @@ -422,7 +446,7 @@ def get_voigt_dataframe(self, tensor_names, voigt_as_index=True, tol=None): return df def get_elastic_properties_dataframe(self, tensor_names="all", properties_as_index=False, - include_base_props=True, ignore_errors=False, fit_to_structure=False, symprec=0.1): + include_base_props=True, ignore_errors=False, fit_to_structure=False, symprec=0.1) -> pd.DataFrame: """ Return a |pandas-DataFrame| with properties derived from the elastic tensor and the associated structure diff --git a/abipy/dfpt/frozen_phonons.py b/abipy/dfpt/frozen_phonons.py index e5c2d67e8..81a08d3b7 100644 --- a/abipy/dfpt/frozen_phonons.py +++ b/abipy/dfpt/frozen_phonons.py @@ -1,5 +1,6 @@ # coding: utf-8 """Objects to run and analyze the frozen phonons generated from displacements of atoms""" +from __future__ import annotations import numpy as np import scipy.optimize as optimize @@ -8,6 +9,7 @@ from monty.collections import dict2namedtuple from abipy.core.abinit_units import phfactor_ev2units, amu_emass, Bohr_Ang, eV_Ha from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt +from abipy.tools.typing import Figure def quadratic_fit_function(xx, aa, bb): @@ -22,7 +24,7 @@ def quadratic_fit_function(xx, aa, bb): return aa * xx ** 2 + bb -class FrozenPhonon(object): +class FrozenPhonon: """ Class defining a set of structures with displaced atoms. Provides methods to generate, interpolate and plot the data. @@ -80,14 +82,14 @@ def qpt_cart_coords(self): return self.original_structure.lattice.reciprocal_lattice.get_cartesian_coords(self.qpt_frac_coords) @property - def n_displ(self): + def n_displ(self) -> int: """ Number of displacements. """ return len(self.structures) @lazy_property - def ieta0(self): + def ieta0(self) -> int: """ The index corresponding to the structure with no displacements. """ @@ -97,7 +99,8 @@ def ieta0(self): raise ValueError("The structure with no displacement is not present in the list.") @classmethod - def from_phbands(cls, phbands, qpt_frac_coords, imode, etas, scale_matrix=None, max_supercell=None): + def from_phbands(cls, phbands, qpt_frac_coords, imode, etas, + scale_matrix=None, max_supercell=None) ->FrozenPhonon: """ Create an instace of FrozenPhonon using the eigendisplacements from a |PhononBands| @@ -123,7 +126,6 @@ def from_phbands(cls, phbands, qpt_frac_coords, imode, etas, scale_matrix=None, normalized_fp = phbands.get_frozen_phonons(qind, imode, 1, scale_matrix, max_supercell) structures = [] - for n in etas: structures.append(phbands.get_frozen_phonons(qind, imode, n, normalized_fp.scale_matrix).structure) @@ -131,7 +133,7 @@ def from_phbands(cls, phbands, qpt_frac_coords, imode, etas, scale_matrix=None, phbands.qpoints[qind].frac_coords, normalized_fp.scale_matrix) @lazy_property - def mass_factor(self): + def mass_factor(self) -> float: """ The factor accounting for the different masses and displacement of each atom """ @@ -205,7 +207,7 @@ def fit_to_frequency(self, fit_function=None, units="eV", min_fit_eta=None, max_ @add_fig_kwargs def plot_fit_energies(self, fit_function=None, min_fit_eta=None, max_fit_eta=None, freq=None, - ax=None, **kwargs): + ax=None, **kwargs) -> Figure: """ Fits the displacements etas to the energies. See fit_to_frequency() for more details. @@ -260,7 +262,7 @@ def plot_fit_energies(self, fit_function=None, min_fit_eta=None, max_fit_eta=Non return fig @add_fig_kwargs - def plot_anharmonic_contribution(self, freq, relative=False, ax=None, **kwargs): + def plot_anharmonic_contribution(self, freq, relative=False, ax=None, **kwargs) -> Figure: """ Plots the the absolute relative difference between the energies extracted from the frequency as quadratic coefficient and the calculated energies, giving an estimate of the anharmonic contribution diff --git a/abipy/dfpt/gruneisen.py b/abipy/dfpt/gruneisen.py index 6293cfd81..c8443227f 100644 --- a/abipy/dfpt/gruneisen.py +++ b/abipy/dfpt/gruneisen.py @@ -1,28 +1,34 @@ # coding: utf-8 """Objects to analyze the results stored in the GRUNS.nc file produced by anaddb.""" +from __future__ import annotations import numpy as np import os import abipy.core.abinit_units as abu import scipy.constants as const +import pandas as pd from functools import lru_cache from collections import OrderedDict +#from typing import List from monty.string import marquee, list_strings from monty.termcolor import cprint from monty.collections import AttrDict from monty.functools import lazy_property +from pymatgen.core.units import amu_to_kg +from pymatgen.core.periodic_table import Element from abipy.core.kpoints import Kpath, IrredZone, KSamplingInfo from abipy.core.mixins import AbinitNcFile, Has_Structure, NotebookWriter from abipy.abio.inputs import AnaddbInput from abipy.dfpt.phonons import PhononBands, PhononBandsPlotter, PhononDos, match_eigenvectors, get_dyn_mat_eigenvec from abipy.dfpt.ddb import DdbFile from abipy.iotools import ETSF_Reader +from abipy.core.structure import Structure from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims +from abipy.tools.typing import Figure from abipy.flowtk import AnaddbTask from abipy.tools.derivatives import finite_diff -from pymatgen.core.units import amu_to_kg -from pymatgen.core.periodic_table import Element + # DOS name --> meta-data _ALL_DOS_NAMES = OrderedDict([ @@ -50,27 +56,27 @@ class GrunsNcFile(AbinitNcFile, Has_Structure, NotebookWriter): .. inheritance-diagram:: GrunsNcFile """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> GrunsNcFile: """Initialize the object from a netcdf_ file""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = GrunsReader(filepath) - def close(self): + def close(self) -> None: """Close file.""" self.reader.close() @lazy_property - def params(self): + def params(self) -> dict: """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" return {} def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = []; app = lines.append @@ -87,7 +93,7 @@ def to_string(self, verbose=0): return "\n".join(lines) @property - def structure(self): + def structure(self) -> Structure: """|Structure| corresponding to the central point V0.""" return self.reader.structure @@ -97,11 +103,11 @@ def structure(self): # return self.reader.volumes @property - def iv0(self): + def iv0(self) -> int: return self.reader.iv0 @lazy_property - def doses(self): + def doses(self) -> dict: """Dictionary with the phonon doses.""" return self.reader.read_doses() @@ -129,17 +135,17 @@ def gvals_qibz(self): return self.reader.read_value("gruns_gvals_qibz") @lazy_property - def phbands_qpath_vol(self): + def phbands_qpath_vol(self) -> list[PhononBands]: """List of |PhononBands| objects corresponding to the different volumes.""" return self.reader.read_phbands_on_qpath() @lazy_property - def structures(self): + def structures(self) -> list[Structure]: """List of structures""" return self.reader.read_structures() @lazy_property - def volumes(self): + def volumes(self) -> list[float]: """List of volumes""" return [s.volume for s in self.structures] @@ -149,19 +155,19 @@ def phdispl_cart_qibz(self): return self.reader.read_value("gruns_phdispl_cart_qibz", cmode="c") @property - def nvols(self): + def nvols(self) -> int: """Number of volumes""" return len(self.structures) @lazy_property - def amu_symbol(self): + def amu_symbol(self) -> dict: """Atomic mass units""" amu_list = self.reader.read_value("atomic_mass_units") atomic_numbers = self.reader.read_value("atomic_numbers") amu = {Element.from_Z(at).symbol: a for at, a in zip(atomic_numbers, amu_list)} return amu - def to_dataframe(self): + def to_dataframe(self) -> pd.DataFrame: """ Return a |pandas-DataFrame| with the following columns: @@ -187,7 +193,6 @@ def to_dataframe(self): dwdq = self.reader.read_value("gruns_dwdq_qibz") groupv = np.linalg.norm(dwdq, axis=-1) - import pandas as pd rows = [] for iq in range(nqibz): for nu in range(natom3): @@ -203,7 +208,7 @@ def to_dataframe(self): return pd.DataFrame(rows, columns=list(rows[0].keys())) @add_fig_kwargs - def plot_doses(self, xlims=None, dos_names="all", with_idos=True, **kwargs): + def plot_doses(self, xlims=None, dos_names="all", with_idos=True, **kwargs) -> Figure: r""" Plot the different DOSes stored in the GRUNS.nc file. @@ -244,7 +249,7 @@ def plot_doses(self, xlims=None, dos_names="all", with_idos=True, **kwargs): return fig - def get_plotter(self): + def get_plotter(self) -> PhononBandsPlotter: """ Return an instance of |PhononBandsPlotter| that can be use to plot multiple phonon bands or animate the bands @@ -258,7 +263,7 @@ def get_plotter(self): @add_fig_kwargs def plot_phbands_with_gruns(self, fill_with="gruns", gamma_fact=1, alpha=0.6, with_doses="all", units="eV", - ylims=None, match_bands=False, qlabels=None, branch_range=None, **kwargs): + ylims=None, match_bands=False, qlabels=None, branch_range=None, **kwargs) -> Figure: r""" Plot the phonon bands corresponding to ``V0`` (the central point) with markers showing the value and the sign of the Grunesein parameters. @@ -369,7 +374,7 @@ def plot_phbands_with_gruns(self, fill_with="gruns", gamma_fact=1, alpha=0.6, wi return fig @add_fig_kwargs - def plot_gruns_scatter(self, values="gruns", ax=None, units="eV", cmap="rainbow", **kwargs): + def plot_gruns_scatter(self, values="gruns", ax=None, units="eV", cmap="rainbow", **kwargs) -> Figure: """ A scatter plot of the values of the Gruneisen parameters or group velocities as a function of the phonon frequencies. @@ -447,7 +452,7 @@ def split_dwdq(self): return [np.array(v[indices[i]:indices[i + 1] + 1]) for i in range(len(indices) - 1)] @add_fig_kwargs - def plot_gruns_bs(self, values="gruns", ax=None, branch_range=None, qlabels=None, match_bands=False, **kwargs): + def plot_gruns_bs(self, values="gruns", ax=None, branch_range=None, qlabels=None, match_bands=False, **kwargs) -> Figure: r""" A plot of the values of the Gruneisen parameters or group velocities along the high symmetry path. @@ -525,11 +530,11 @@ def yield_figs(self, **kwargs): # pragma: no cover Used in abiview.py to get a quick look at the results. """ yield self.plot_phbands_with_gruns(show=False) - yield self.plot_doses(show=False) yield self.plot_gruns_scatter(show=False) + yield self.plot_doses(show=False) yield self.plot_gruns_bs(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -556,7 +561,7 @@ def write_notebook(self, nbpath=None): return self._write_nb_nbpath(nb, nbpath) @property - def phdos(self): + def phdos(self) -> PhononDos: """ The |PhononDos| corresponding to iv0, if present in the file, None otherwise. """ @@ -617,7 +622,7 @@ def average_gruneisen(self, t=None, squared=True, limit_frequencies=None): return g - def thermal_conductivity_slack(self, squared=True, limit_frequencies=None, theta_d=None, t=None): + def thermal_conductivity_slack(self, squared=True, limit_frequencies=None, theta_d=None, t=None) -> float: """ Calculates the thermal conductivity at the acoustic Debye temperature wit the Slack formula, using the average Gruneisen. @@ -727,7 +732,7 @@ def from_ddb_list(cls, ddb_list, nqsmall=10, qppa=None, ndivsm=20, line_density= q1shft=(0, 0, 0), qptbounds=qptbounds, asr=asr, chneut=chneut, dipdip=dipdip, dos_method=dos_method, lo_to_splitting=lo_to_splitting, anaddb_kwargs=anaddb_kwargs) - inp["gruns_ddbs"] = ['"'+p+'"\n' for p in ddb_list] + inp["gruns_ddbs"] = ddb_list inp["gruns_nddbs"] = len(ddb_list) task = AnaddbTask.temp_shell_task(inp, ddb_node=ddb0.filepath, workdir=workdir, manager=manager, mpi_procs=mpi_procs) @@ -835,7 +840,7 @@ class GrunsReader(ETSF_Reader): #nctkarr_t("gruns_rprimd", "dp", "three, three, gruns_nvols"), & #nctkarr_t("gruns_xred", "dp", "three, number_of_atoms, gruns_nvols") & - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) # Read and store important quantities. @@ -845,7 +850,7 @@ def __init__(self, filepath): # The index of the volume used for the finite difference. self.iv0 = self.read_value("gruns_iv0") - 1 # F --> C - def read_doses(self): + def read_doses(self) -> AttrDict: """ Return a |AttrDict| with the DOSes available in the file. Empty dict if DOSes are not available. @@ -874,7 +879,7 @@ def read_doses(self): return d - def read_phbands_on_qpath(self): + def read_phbands_on_qpath(self) -> list[PhononBands]: """ Return a list of |PhononBands| computed at the different volumes. The ``iv0`` entry corresponds to the central point used to compute Grunesein parameters @@ -917,7 +922,7 @@ def read_phbands_on_qpath(self): return phbands_qpath_vol - def read_amuz_dict(self): + def read_amuz_dict(self) -> dict: """ Dictionary that associates the atomic number to the values of the atomic mass units used for the calculation. @@ -932,7 +937,7 @@ def read_amuz_dict(self): return amuz - def read_structures(self): + def read_structures(self) -> list[Structure]: """ Resturns a list of structures at the different volumes """ @@ -949,7 +954,7 @@ def read_structures(self): return structures -def calculate_gruns_finite_differences(phfreqs, eig, iv0, volume, dv): +def calculate_gruns_finite_differences(phfreqs, eig, iv0, volume, dv) -> np.ndarray: """ Calculates the Gruneisen parameters from finite differences on the phonon frequencies. Uses the eigenvectors to match the frequencies at different volumes. @@ -989,7 +994,7 @@ def calculate_gruns_finite_differences(phfreqs, eig, iv0, volume, dv): return g -def thermal_conductivity_slack(average_mass, volume, mean_g, theta_d, t=None): +def thermal_conductivity_slack(average_mass, volume, mean_g, theta_d, t=None) -> float: """ Generic function for the calculation of the thermal conductivity at the acoustic Debye temperature with the Slack formula, based on the quantities that can be calculated. diff --git a/abipy/dfpt/ifc.py b/abipy/dfpt/ifc.py index f5e3e1fa3..e1f307ca7 100644 --- a/abipy/dfpt/ifc.py +++ b/abipy/dfpt/ifc.py @@ -1,9 +1,14 @@ # coding: utf-8 """The interatomic force constants calculated by anaddb.""" +from __future__ import annotations + import numpy as np +from typing import Union from monty.functools import lazy_property +from abipy.core.structure import Structure from abipy.core.mixins import Has_Structure +from abipy.tools.typing import Figure from abipy.iotools import ETSF_Reader from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt @@ -11,19 +16,23 @@ class InteratomicForceConstants(Has_Structure): """ The interatomic force constants calculated by anaddb. - Read from anaddb.nc + Read from the anaddb.nc file. """ def __init__(self, structure, atoms_indices, neighbours_indices, ifc_cart_coord, - ifc_cart_coord_short_range, local_vectors, distances): + ifc_cart_coord_short_range, local_vectors, distances, atoms_cart_coord, + ifc_weights): """ Args: structure: |Structure| object. - atoms_index: List of integers representing the indices in the structure of the analyzed atoms. - neighbours_index: List of integers representing the indices in the structure of the neighbour atoms. + atoms_indices: List of integers representing the indices in the structure of the analyzed atoms. + neighbours_indices: List of integers representing the indices in the structure of the neighbour atoms. ifc_cart_coord: ifc in Cartesian coordinates ifc_cart_coord_short_range: short range part of the ifc in Cartesian coordinates local_vectors: local basis used to determine the ifc_local_coord + atoms_cart_coord: cartesian coordinates in Bohr of the atoms corresponding to the atoms in + atoms_index + ifc_weights: list of weights used for the interpolation for each atoms in atoms_index """ self._structure = structure self.atoms_indices = atoms_indices @@ -32,15 +41,31 @@ def __init__(self, structure, atoms_indices, neighbours_indices, ifc_cart_coord, self.ifc_cart_coord_short_range = ifc_cart_coord_short_range self.local_vectors = local_vectors self.distances = distances + self.atoms_cart_coord = atoms_cart_coord + self.ifc_weights = ifc_weights @property - def number_of_atoms(self): - """Number of atoms is structure.""" + def number_of_atoms(self) -> int: + """Number of atoms in the structure.""" return len(self.structure) @classmethod - def from_file(cls, filepath): - """Create the object from a netcdf_ file.""" + def from_file(cls, filepath: str) -> InteratomicForceConstants: + """Create the object from a netcdf file.""" + # + # Netcdf arrays on disk (NB: Fortran conventions) + # + # nctkarr_t('ifc_atoms_indices', "i", "natifc"),& + # nctkarr_t('ifc_neighbours_indices', "i", "ifcout, natifc"),& + # nctkarr_t('ifc_distances', "dp", "ifcout, natifc "),& + # nctkarr_t('ifc_matrix_cart_coord', "dp", "three, three, ifcout, natifc"),& + # nctkarr_t('ifc_atoms_cart_coord', "dp", "three, ifcout, natifc"),& + # nctkarr_t('ifc_weights', "dp", "ifcout, natifc")]) + # if (Ifc%dipdip==1) then + # nctkarr_t('ifc_matrix_cart_coord_short_range', "dp", "three, three, ifcout, natifc")]) + # if (ifcana==1) then + # nctkarr_t('ifc_local_vectors', "dp", "three, three, ifcout, natifc")]) + with ETSF_Reader(filepath) as r: try: structure = r.read_structure() @@ -50,27 +75,31 @@ def from_file(cls, filepath): ifc_cart_coord = r.read_value("ifc_matrix_cart_coord") ifc_cart_coord_short_range = r.read_value("ifc_matrix_cart_coord_short_range", default=None) local_vectors = r.read_value("ifc_local_vectors", default=None) + # The following are set to None by default to keep backward + # compatibility with anaddb.nc files generated by versions of abinit<9.2 + atoms_cart_coord = r.read_value("ifc_atoms_cart_coord", default=None) + ifc_weights = r.read_value("ifc_weights", default=None) except Exception: import traceback msg = traceback.format_exc() msg += ("Error while trying to read IFCs from file.\n" - "Verify that the required variables are used in anaddb: ifcflag, natifc, atifc, ifcout\n") + "Verify that the required variables are used in anaddb: ifcflag, natifc, atifc, ifcout\n") raise ValueError(msg) return cls(structure=structure, atoms_indices=atoms_indices, neighbours_indices=neighbours_indices, ifc_cart_coord=ifc_cart_coord, ifc_cart_coord_short_range=ifc_cart_coord_short_range, local_vectors=local_vectors, - distances=distances) + distances=distances, atoms_cart_coord=atoms_cart_coord, ifc_weights=ifc_weights) @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = []; app = lines.append app(self.structure.to_string(verbose=verbose, title="Structure")) @@ -79,37 +108,37 @@ def to_string(self, verbose=0): return "\n".join(lines) @property - def number_of_neighbours(self): + def number_of_neighbours(self) -> int: """Number of neighbouring atoms for which the ifc are present. ifcout in anaddb.""" return np.shape(self.neighbours_indices)[1] @lazy_property - def ifc_cart_coord_ewald(self): - """Ewald part of the ifcs in cartesian coordinates""" + def ifc_cart_coord_ewald(self) -> Union[None, np.ndarray]: + """Ewald part of the IFCs in cartesian coordinates.""" if self.ifc_cart_coord_short_range is None: return None else: - return self.ifc_cart_coord-self.ifc_cart_coord_short_range + return self.ifc_cart_coord - self.ifc_cart_coord_short_range @lazy_property - def ifc_local_coord(self): - """Ifcs in local coordinates""" + def ifc_local_coord(self) -> Union[None, np.ndarray]: + """IFCs in local coordinates.""" if self.local_vectors is None: return None else: return np.einsum("ktli,ktij,ktuj->ktlu", self.local_vectors, self.ifc_cart_coord, self.local_vectors) @lazy_property - def ifc_local_coord_short_range(self): - """Short range part of the ifcs in cartesian coordinates""" + def ifc_local_coord_short_range(self) -> Union[None, np.ndarray]: + """Short range part of the IFCs in cartesian coordinates.""" if self.local_vectors is None: return None else: return np.einsum("ktli,ktij,ktuj->ktlu", self.local_vectors, self.ifc_cart_coord_short_range, self.local_vectors) @lazy_property - def ifc_local_coord_ewald(self): - """Ewald part of the ifcs in local coordinates""" + def ifc_local_coord_ewald(self) -> np.ndarray: + """Ewald part of the IFCs in local coordinates.""" return np.einsum("ktli,ktij,ktuj->ktlu", self.local_vectors, self.ifc_cart_coord_ewald, self.local_vectors) def _filter_ifc_indices(self, atom_indices=None, atom_element=None, neighbour_element=None, min_dist=None, max_dist=None): @@ -137,7 +166,7 @@ def _filter_ifc_indices(self, atom_indices=None, atom_element=None, neighbour_el if atom_indices is None: atom_indices = range(len(self.structure)) - # apply the filter: construct matrices of num_atoms*num_neighbours size, all conditions should be satisfied. + # apply the filter: construct matrices of num_atoms * num_neighbours size, all conditions should be satisfied. ind = np.where( (np.tile(np.in1d(self.atoms_indices, atom_indices), [self.number_of_neighbours, 1])).T & (self.distances > min_dist if min_dist is not None else True) & @@ -150,9 +179,9 @@ def _filter_ifc_indices(self, atom_indices=None, atom_element=None, neighbour_el def get_ifc_cartesian(self, atom_indices=None, atom_element=None, neighbour_element=None, min_dist=None, max_dist=None): """ - Filters the IFCs in cartesian coordinates + Filters the IFCs in cartesian coordinates. All the arguments are optional. If None the filter will not be applied. - Returns two arrays containing the distances and the corresponding filtered ifcs. + Returns two arrays containing the distances and the corresponding filtered IFCs. Args: atom_indices: a list of atom indices in the structure. Only neighbours of these atoms will be considered. @@ -170,7 +199,7 @@ def get_ifc_local(self, atom_indices=None, atom_element=None, neighbour_element= """ Filters the IFCs in local coordinates All the arguments are optional. If None the filter will not be applied. - Returns two arrays containing the distances and the corresponding filtered ifcs. + Returns two arrays containing the distances and the corresponding filtered IFCs. Args: atom_indices: a list of atom indices in the structure. Only neighbours of these atoms will be considered. @@ -180,7 +209,7 @@ def get_ifc_local(self, atom_indices=None, atom_element=None, neighbour_element= max_dist: maximum distance between atoms and neighbours. """ if self.local_vectors is None: - raise ValueError("Local coordinates are missing. Run anaddb with ifcana=1") + raise ValueError("Local coordinates are missing. Run anaddb with ifcana = 1") ind = self._filter_ifc_indices(atom_indices=atom_indices, atom_element=atom_element, neighbour_element=neighbour_element, min_dist=min_dist, max_dist=max_dist) @@ -188,11 +217,11 @@ def get_ifc_local(self, atom_indices=None, atom_element=None, neighbour_element= return self.distances[ind], self.ifc_local_coord[ind] def get_plot_ifc(self, ifc, atom_indices=None, atom_element=None, neighbour_element=None, min_dist=None, - max_dist=None, ax=None, **kwargs): + max_dist=None, yscale="log", ax=None, **kwargs) -> Figure: """ - Plots the specified ifcs, filtered according to the optional arguments. - An array with shape number_of_atoms*number_of_neighbours, so only one of the components of the ifc matrix can - be plotted at a time. + Plots the specified IFCs, filtered according to the optional arguments. + An array with shape number_of_atoms * number_of_neighbours, so only one + of the components of the IFC matrix can be plotted at a time. Args: ifc: an array with shape number_of_atoms * number_of_neighbours of the ifc that should be plotted @@ -201,6 +230,7 @@ def get_plot_ifc(self, ifc, atom_indices=None, atom_element=None, neighbour_elem neighbour_element: symbol of an element in the structure. Only neighbours of this specie will be considered. min_dist: minimum distance between atoms and neighbours. max_dist: maximum distance between atoms and neighbours. + yscale: The axis scale type to apply: {"linear", "log", "symlog", "logit"} ax: |matplotlib-Axes| or None if a new figure should be created. kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to blue, symbol to 'o' and lw to 0 @@ -217,18 +247,26 @@ def get_plot_ifc(self, ifc, atom_indices=None, atom_element=None, neighbour_elem if 'marker' not in kwargs: kwargs['marker'] = 'o' if 'linewidth' not in kwargs and 'lw' not in kwargs: kwargs['lw'] = 0 + ax.set_yscale(yscale) + ylabel = r'IFC (Ha/Bohr$^2$)' + if yscale in ("log", "symlog", "logit"): + filtered_ifc = np.abs(filtered_ifc) + if yscale == "logit": filtered_ifc /= filtered_ifc.max() + ylabel = f"{ylabel} ({yscale} scale)" + ax.set_xlabel('Distance (Bohr)') - ax.set_ylabel(r'IFC (Ha/Bohr$^2$)') + ax.set_ylabel(ylabel) ax.grid(True) + ax.plot(dist, filtered_ifc, **kwargs) return fig @add_fig_kwargs def plot_longitudinal_ifc(self, atom_indices=None, atom_element=None, neighbour_element=None, min_dist=None, - max_dist=None, ax=None, **kwargs): + max_dist=None, yscale="log", ax=None, **kwargs) -> Figure: """ - Plots the total longitudinal ifcs in local coordinates, filtered according to the optional arguments. + Plots the total longitudinal IFCs in local coordinates, filtered according to the optional arguments. Args: atom_indices: a list of atom indices in the structure. Only neighbours of these atoms will be considered. @@ -236,22 +274,25 @@ def plot_longitudinal_ifc(self, atom_indices=None, atom_element=None, neighbour_ neighbour_element: symbol of an element in the structure. Only neighbours of this specie will be considered. min_dist: minimum distance between atoms and neighbours. max_dist: maximum distance between atoms and neighbours. + yscale: The axis scale type to apply: {"linear", "log", "symlog", "logit"} + See ax: |matplotlib-Axes| or None if a new figure should be created. kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to blue, symbol to 'o' and lw to 0 Returns: |matplotlib-Figure| """ if self.local_vectors is None: - raise ValueError("Local coordinates are missing. Run anaddb with ifcana=1") + raise ValueError("Local coordinates are missing. Run anaddb with ifcana = 1") return self.get_plot_ifc(self.ifc_local_coord[:, :, 0, 0], atom_indices=atom_indices, atom_element=atom_element, - neighbour_element=neighbour_element, min_dist=min_dist, max_dist=max_dist, ax=ax, **kwargs) + neighbour_element=neighbour_element, min_dist=min_dist, max_dist=max_dist, + yscale=yscale, ax=ax, **kwargs) @add_fig_kwargs def plot_longitudinal_ifc_short_range(self, atom_indices=None, atom_element=None, neighbour_element=None, - min_dist=None, max_dist=None, ax=None, **kwargs): + min_dist=None, max_dist=None, yscale="log", ax=None, **kwargs) -> Figure: """ - Plots the short range longitudinal ifcs in local coordinates, filtered according to the optional arguments. + Plots the short range longitudinal IFCs in local coordinates, filtered according to the optional arguments. Args: atom_indices: a list of atom indices in the structure. Only neighbours of these atoms will be considered. @@ -259,26 +300,28 @@ def plot_longitudinal_ifc_short_range(self, atom_indices=None, atom_element=None neighbour_element: symbol of an element in the structure. Only neighbours of this specie will be considered. min_dist: minimum distance between atoms and neighbours. max_dist: maximum distance between atoms and neighbours. + yscale: The axis scale type to apply: {"linear", "log", "symlog", "logit"} + See ax: |matplotlib-Axes| or None if a new figure should be created. kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to blue, symbol to 'o' and lw to 0 Returns: |matplotlib-Figure| """ if self.local_vectors is None: - raise ValueError("Local coordinates are missing. Run anaddb with ifcana=1") + raise ValueError("Local coordinates are missing. Run anaddb with ifcana = 1") if self.ifc_local_coord_short_range is None: - raise ValueError("Ewald contribution is missing, Run anaddb with dipdip=1") + raise ValueError("Ewald contribution is missing, Run anaddb with dipdip = 1") return self.get_plot_ifc(self.ifc_local_coord_short_range[:, :, 0, 0], atom_indices=atom_indices, atom_element=atom_element, neighbour_element=neighbour_element, min_dist=min_dist, - max_dist=max_dist, ax=ax, **kwargs) + max_dist=max_dist, yscale=yscale, ax=ax, **kwargs) @add_fig_kwargs def plot_longitudinal_ifc_ewald(self, atom_indices=None, atom_element=None, neighbour_element=None, - min_dist=None, max_dist=None, ax=None, **kwargs): + min_dist=None, max_dist=None, yscale="log", ax=None, **kwargs) -> Figure: """ - Plots the Ewald part of the ifcs in local coordinates, filtered according to the optional arguments. + Plots the Ewald part of the IFCs in local coordinates, filtered according to the optional arguments. Args: atom_indices: a list of atom indices in the structure. Only neighbours of these atoms will be considered. @@ -286,17 +329,19 @@ def plot_longitudinal_ifc_ewald(self, atom_indices=None, atom_element=None, neig neighbour_element: symbol of an element in the structure. Only neighbours of this specie will be considered. min_dist: minimum distance between atoms and neighbours. max_dist: maximum distance between atoms and neighbours. + yscale: The axis scale type to apply: {"linear", "log", "symlog", "logit"} + See ax: |matplotlib-Axes| or None if a new figure should be created. kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to blue, symbol to 'o' and lw to 0 Returns: |matplotlib-Figure| """ if self.local_vectors is None: - raise ValueError("Local coordinates are missing. Run anaddb with ifcana=1") + raise ValueError("Local coordinates are missing. Run anaddb with ifcana = 1") if self.ifc_local_coord_ewald is None: - raise ValueError("Ewald contribution is missing, Run anaddb with dipdip=1") + raise ValueError("Ewald contribution is missing, Run anaddb with dipdip = 1") return self.get_plot_ifc(self.ifc_local_coord_ewald[:, :, 0, 0], atom_indices=atom_indices, atom_element=atom_element, neighbour_element=neighbour_element, min_dist=min_dist, - max_dist=max_dist, ax=ax, **kwargs) + max_dist=max_dist, yscale=yscale, ax=ax, **kwargs) diff --git a/abipy/dfpt/msqdos.py b/abipy/dfpt/msqdos.py index f001e4f09..762b08fad 100644 --- a/abipy/dfpt/msqdos.py +++ b/abipy/dfpt/msqdos.py @@ -2,19 +2,27 @@ """ Objects related to the computation of Debye-Waller tensors from the generalized phonon DOS. """ +from __future__ import annotations + import numpy as np +import pandas as pd import abipy.core.abinit_units as abu from collections import OrderedDict +try: + from scipy.integrate import simpson as simps +except ImportError: + from scipy.integrate import simps from monty.string import list_strings, marquee from monty.collections import dict2namedtuple from monty.termcolor import cprint +from abipy.core.structure import Structure from abipy.core.mixins import Has_Structure from abipy.tools.plotting import add_fig_kwargs, set_axlims, get_axarray_fig_plt, set_visible from abipy.tools.printing import print_dataframe -class _Component(object): +class _Component: """ Object used to select/plot the components of the DW tensor. """ @@ -62,6 +70,7 @@ class MsqDos(Has_Structure): See also http://atztogo.github.io/phonopy/formulation.html#thermal-displacement """ C = _Component + ALL_COMPS = OrderedDict([ ("trace", C(name="trace", ij=None, color="k")), ("xx", C(name="xx", ij=(0, 0), color="r", ls="-")), @@ -93,15 +102,15 @@ def __init__(self, structure, wmesh, values, amu_symbol): assert len(self.values) == len(self.structure) @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure - def __str__(self): + def __str__(self) -> str: """Invoked by str""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """ Human-readable string with useful information on the object. @@ -114,7 +123,7 @@ def to_string(self, verbose=0): app("") app(marquee(r"Fullfilment of \int dw g_ij(w) = \delta_ij", mark="=")) app("") - from scipy.integrate import simps + for iatom, site in enumerate(self.structure): d = simps(self.values[iatom], x=self.wmesh) app("For site: %s" % site) @@ -136,7 +145,7 @@ def to_string(self, verbose=0): return "\n".join(lines) - def get_json_doc(self, tstart=0, tstop=600, num=11): + def get_json_doc(self, tstart=0, tstop=600, num=11) -> dict: """ Return dictionary with results. Used by emmet builder. @@ -156,7 +165,7 @@ def get_json_doc(self, tstart=0, tstop=600, num=11): jdoc = { "natom": len(self.structure), - "nomega:": self.nw, # Number of frequencies + "nomega": self.nw, # Number of frequencies "ntemp": len(tmesh), # Number of temperatures "tmesh": tmesh, # Temperature mesh in K "wmesh": self.wmesh, # Frequency mesh in ?? @@ -207,7 +216,6 @@ def get_msq_tmesh(self, tmesh, iatom_list=None, what_list=("displ", "vel")): what_list = list_strings(what_list) # Perform frequency integration to get tensor(T) - from scipy.integrate import simps if iatom_list is not None: iatom_list = set(iatom_list) for iatom in range(natom): if iatom_list is not None and iatom not in iatom_list: continue @@ -272,7 +280,7 @@ def convert_ucart(self, ucart_mat, fmt): raise ValueError("Invalid format: `%s`" % str(fmt)) def get_dataframe(self, temp=300, fmt="cartesian", view="inequivalent", what="displ", decimals=4, - select_symbols=None, verbose=0): + select_symbols=None, verbose=0) -> pd.DataFrame: """ Return |pandas-DataFrame| with cartesian tensor components as columns and (inequivalent) sites along the rows. @@ -318,10 +326,9 @@ def get_dataframe(self, temp=300, fmt="cartesian", view="inequivalent", what="di d[col] = values[iatom, ind[0], ind[1]] rows.append(d) - import pandas as pd return pd.DataFrame(rows, columns=list(rows[0].keys()) if rows else None) - def write_cif_file(self, filepath, temp=300, symprec=None): + def write_cif_file(self, filepath, temp=300, symprec=None) -> str: """ Write CIF file with structure and anisotropic U tensor in CIF format. @@ -380,7 +387,7 @@ def vesta_open(self, temp=300): # pragma: no cover return visu(filepath)() - def get_cif_string(self, temp=300, symprec=None): + def get_cif_string(self, temp=300, symprec=None) -> str: """ Return string with structure and anisotropic U tensor in CIF format at temperature `temp` in Kelvin @@ -648,10 +655,10 @@ def plot_uiso(self, tstart=0, tstop=600, num=50, what="displ", view="inequivalen set_axlims(ax, ylims, "y") if what == "displ": ylabel = r"$U_{iso}\;(\AA^2)$" if ix == 0 else \ - r"Anisotropy factor ($\dfrac{\epsilon_{max}}{\epsilon_{min}}}$)" + r"Anisotropy factor ($\dfrac{\epsilon_{max}}{\epsilon_{min}}$)" elif what == "vel": ylabel = r"$V_{iso}\;(m/s)^2$" if ix == 0 else \ - r"Anisotropy factor ($\dfrac{\epsilon_{max}}{\epsilon_{min}}}$)" + r"Anisotropy factor ($\dfrac{\epsilon_{max}}{\epsilon_{min}$)" else: raise ValueError("Unknown value for what: `%s`" % str(what)) ax.set_ylabel(ylabel, fontsize=fontsize) @@ -674,7 +681,7 @@ def plot_uiso(self, tstart=0, tstop=600, num=50, what="displ", view="inequivalen raise ValueError("Invalid ix index: `%s" % ix) ax.plot(msq.tmesh, ys, label=site_label if ix == 0 else None, - color=color) #, marker="o") + color=color) #, marker="o") if ix == 0: ax.legend(loc="best", fontsize=fontsize, shadow=True) diff --git a/abipy/dfpt/phonons.py b/abipy/dfpt/phonons.py index 426f9492a..1f9e8ea12 100644 --- a/abipy/dfpt/phonons.py +++ b/abipy/dfpt/phonons.py @@ -1,4 +1,6 @@ # coding: utf-8 +from __future__ import annotations + import functools import numpy as np import itertools @@ -6,9 +8,11 @@ import os import json import warnings +import pandas as pd import abipy.core.abinit_units as abu from collections import OrderedDict +from typing import Any from monty.string import is_string, list_strings, marquee from monty.collections import dict2namedtuple from monty.functools import lazy_property @@ -19,14 +23,19 @@ from pymatgen.phonon.dos import CompletePhononDos as PmgCompletePhononDos, PhononDos as PmgPhononDos from abipy.core.func1d import Function1D from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_PhononBands, NotebookWriter -from abipy.core.kpoints import Kpoint, Kpath +from abipy.core.kpoints import Kpoint, Kpath, KpointList, kmesh_from_mpdivs, map_grid2ibz +from abipy.core.structure import Structure from abipy.abio.robots import Robot from abipy.iotools import ETSF_Reader from abipy.tools import duck from abipy.tools.numtools import gaussian, sort_and_groupby -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, set_axlims, get_axarray_fig_plt, set_visible, set_ax_xylabels +from abipy.tools.typing import Figure +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, set_axlims, get_axarray_fig_plt, set_visible,\ + set_ax_xylabels, get_figs_plotly, get_fig_plotly, add_plotly_fig_kwargs, plotlyfigs_to_browser,\ + push_to_chart_studio, PlotlyRowColDesc, plotly_klabels, plotly_set_xylabels, plotly_set_lims from .phtk import match_eigenvectors, get_dyn_mat_eigenvec, open_file_phononwebsite, NonAnalyticalPh + __all__ = [ "PhononBands", "PhononBandsPlotter", @@ -39,7 +48,7 @@ @functools.total_ordering -class PhononMode(object): +class PhononMode: """ A phonon mode has a q-point, a frequency, a cartesian displacement and a |Structure|. """ @@ -51,12 +60,12 @@ class PhononMode(object): "structure" ] - def __init__(self, qpoint, freq, displ_cart, structure): + def __init__(self, qpoint, freq, displ_cart, structure: Structure) -> None: """ Args: qpoint: qpoint in reduced coordinates. freq: Phonon frequency in eV. - displ: Displacement (Cartesian coordinates in Angstrom) + displ_cart: Displacement (Cartesian coordinates in Angstrom) structure: |Structure| object. """ self.qpoint = Kpoint.as_kpoint(qpoint, structure.reciprocal_lattice) @@ -75,7 +84,7 @@ def __lt__(self, other): def __str__(self): return self.to_string(with_displ=False) - def to_string(self, with_displ=True, verbose=0): + def to_string(self, with_displ=True, verbose=0) -> str: """ String representation @@ -101,7 +110,7 @@ def to_string(self, with_displ=True, verbose=0): #def build_supercell(self): -class PhononBands(object): +class PhononBands: """ Container object storing the phonon band structure. @@ -109,8 +118,9 @@ class PhononBands(object): Frequencies are in eV. Cartesian displacements are in Angstrom. """ + @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> PhononBands: """Create the object from a netcdf_ file.""" with PHBST_Reader(filepath) as r: structure = r.read_structure() @@ -133,13 +143,15 @@ def from_file(cls, filepath): amu = None non_anal_ph = None - # TODO: Reading NonAnalyticalPh here is not safe because - # it may happen that the netcdf file does not contain all the directions - # required by AbiPy. For the time being we read NonAnalyticalPh only - # if we know that calculation has been driven by AbiPy --> all directions are available. - #if "non_analytical_directions" in r.rootgrp.variables: - # print("Found nonanal") - # non_anal_ph = NonAnalyticalPh.from_file(filepath) + + # Reading NonAnalyticalPh here is not 100% safe as it may happen that the netcdf file + # does not contain all the directions required by AbiPy. + # So we read NonAnalyticalPh only if we know that all directions are available. + # The flag has_abipy_non_anal_ph is set at the Fortran level. See e.g ifc_mkphbs + if ("non_analytical_directions" in r.rootgrp.variables and "has_abipy_non_anal_ph" in r.rootgrp.variables): + #if ("non_analytical_directions" in r.rootgrp.variables): + #print("Found non_anal_ph term compatible with AbiPy plotter.") + non_anal_ph = NonAnalyticalPh.from_file(filepath) epsinf, zcart = r.read_epsinf_zcart() @@ -147,13 +159,14 @@ def from_file(cls, filepath): qpoints=qpoints, phfreqs=r.read_phfreqs(), phdispl_cart=r.read_phdispl_cart(), + phangmom=r.read_phangmom(), amu=amu, non_anal_ph=non_anal_ph, epsinf=epsinf, zcart=zcart, ) @classmethod - def as_phbands(cls, obj): + def as_phbands(cls, obj: Any) -> PhononBands: """ Return an instance of |PhononBands| from a generic object ``obj``. Supports: @@ -182,21 +195,52 @@ def as_phbands(cls, obj): raise TypeError("Don't know how to extract a PhononBands from type %s" % type(obj)) @staticmethod - def phfactor_ev2units(units): + def phfactor_ev2units(units: str) -> float: """ Return conversion factor eV --> units (case-insensitive) """ return abu.phfactor_ev2units(units) - def read_non_anal_from_file(self, filepath): + def read_non_anal_from_file(self, filepath: str) -> None: """ Reads the non analytical directions, frequencies and displacements from the anaddb.nc file specified and adds them to the object. """ self.non_anal_ph = NonAnalyticalPh.from_file(filepath) - def __init__(self, structure, qpoints, phfreqs, phdispl_cart, non_anal_ph=None, amu=None, - epsinf=None, zcart=None, linewidths=None): + def set_phonopy_obj_from_ananc(self, ananc, supercell_matrix, symmetrize_tensors=False, + symprec=1e-5, set_masses=True) -> None: + """ + Generates the Phonopy object from an anaddb.nc file that contains the interatomic force constants. + Based on the converter implemented in abipy.dfpt.converters. + + Args: + ananc: a string with the path to the anaddb.nc file or an instance of AnaddbNcFile. + supercell_matrix: the supercell matrix used for phonopy. Any choice is acceptable, however + the best agreement between the abinit and phonopy results is obtained if this is set to + a diagonal matrix with on the diagonal the ngqpt used to generate the anaddb.nc. + symmetrize_tensors: if True the tensors will be symmetrized in the Phonopy object and + in the output files. This will apply to IFC, BEC and dielectric tensor. + symprec: distance tolerance in Cartesian coordinates to find crystal symmetry in phonopy. + set_masses: if True the atomic masses used by abinit will be added to the PhonopyAtoms + and will be present in the returned Phonopy object. This should improve compatibility + among abinit and phonopy results if frequencies needs to be calculated. + """ + from abipy.dfpt.anaddbnc import AnaddbNcFile + from abipy.dfpt.converters import abinit_to_phonopy + + if isinstance(ananc, str): + with AnaddbNcFile(ananc) as anc: + ph = abinit_to_phonopy(anc, supercell_matrix=supercell_matrix, symmetrize_tensors=symmetrize_tensors, + symprec=symprec, set_masses=set_masses) + else: + ph = abinit_to_phonopy(ananc, supercell_matrix=supercell_matrix, symmetrize_tensors=symmetrize_tensors, + symprec=symprec, set_masses=set_masses) + self.phonopy_obj = ph + + def __init__(self, structure, qpoints, phfreqs, phdispl_cart, phangmom=None, + non_anal_ph=None, amu=None, epsinf=None, zcart=None, linewidths=None, + phonopy_obj=None): """ Args: structure: |Structure| object. @@ -204,15 +248,15 @@ def __init__(self, structure, qpoints, phfreqs, phdispl_cart, non_anal_ph=None, phfreqs: Phonon frequencies in eV. phdispl_cart: [nqpt, 3*natom, 3*natom] array with displacement in Cartesian coordinates in Angstrom. The last dimension stores the cartesian components. + phangmom: Phonon angular momentum in units of hbar. non_anal_ph: :class:`NonAnalyticalPh` with information of the non analytical contribution None if contribution is not present. amu: dictionary that associates the atomic species present in the structure to the values of the atomic mass units used for the calculation. - epsinf: [3,3] matrix with electronic dielectric tensor in Cartesian coordinates. - None if not avaiable. - zcart: [natom, 3, 3] matrix with Born effective charges in Cartesian coordinates. - None if not available. + epsinf: [3,3] matrix with electronic dielectric tensor in Cartesian coordinates. None if not avaiable. + zcart: [natom, 3, 3] matrix with Born effective charges in Cartesian coordinates. None if not available. linewidths: Array-like object with the linewidths (eV) stored as [q, num_modes] + phonopy_obj: an instance of a Phonopy object obtained from the same IFC used to generate the band structure. """ self.structure = structure @@ -228,6 +272,10 @@ def __init__(self, structure, qpoints, phfreqs, phdispl_cart, non_anal_ph=None, # The last dimension stores the cartesian components. self.phdispl_cart = phdispl_cart + # phonon angular momentum in units of hbar + # ndarray of shape (nqpt, 3*natom, 3) + self.phangmom = phangmom + # Handy variables used to loop. self.num_atoms = structure.num_sites self.num_branches = 3 * self.num_atoms @@ -248,25 +296,26 @@ def __init__(self, structure, qpoints, phfreqs, phdispl_cart, non_anal_ph=None, self.epsinf = epsinf self.zcart = zcart + self.phonopy_obj = phonopy_obj # Dictionary with metadata e.g. nkpt, tsmear ... self.params = OrderedDict() # TODO: Replace num_qpoints with nqpt, deprecate num_qpoints @property - def nqpt(self): + def nqpt(self) -> int: """An alias for num_qpoints.""" return self.num_qpoints - def __repr__(self): + def __repr__(self) -> str: """String representation (short version)""" return "<%s, nk=%d, %s, id=%s>" % ( self.__class__.__name__, self.num_qpoints, self.structure.formula, id(self)) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, title=None, with_structure=True, with_qpoints=False, verbose=0): + def to_string(self, title=None, with_structure=True, with_qpoints=False, verbose=0) -> str: """ Human-readable string with useful information such as structure, q-points, ... @@ -296,7 +345,7 @@ def to_string(self, title=None, with_structure=True, with_qpoints=False, verbose return "\n".join(lines) - def __add__(self, other): + def __add__(self, other: PhononBands) -> PhononBandsPlotter: """self + other returns a |PhononBandsPlotter| object.""" if not isinstance(other, (PhononBands, PhononBandsPlotter)): raise TypeError("Cannot add %s to %s" % (type(self), type(other))) @@ -346,12 +395,12 @@ def displ_shape(self): return self.phdispl_cart.shape @property - def minfreq(self): + def minfreq(self) -> float: """Minimum phonon frequency.""" return self.get_minfreq_mode() @property - def maxfreq(self): + def maxfreq(self) -> float: """Maximum phonon frequency in eV.""" return self.get_maxfreq_mode() @@ -369,13 +418,24 @@ def get_maxfreq_mode(self, mode=None): else: return np.max(self.phfreqs[:, mode]) + def get_phfreqs_stats_dict(self) -> dict: + """ + Return dictionary with phonon frequency stats in eV. + """ + return dict( + wmin_ev=self.phfreqs.min(), + wmax_ev=self.phfreqs.max(), + wmean_ev=self.phfreqs.mean(), + wstd_ev=self.phfreqs.std(), + ) + @property - def shape(self): + def shape(self) -> tuple: """Shape of the array with the eigenvalues.""" return self.num_qpoints, self.num_branches @property - def linewidths(self): + def linewidths(self) -> np.ndarray: """linewidths in eV. |numpy-array| with shape [nqpt, num_branches].""" return self._linewidths @@ -387,12 +447,12 @@ def linewidths(self, linewidths): self._linewidths = linewidths @property - def has_linewidths(self): + def has_linewidths(self) -> bool: """True if bands with linewidths.""" return getattr(self, "_linewidths", None) is not None @lazy_property - def dyn_mat_eigenvect(self): + def dyn_mat_eigenvect(self) -> np.ndarray: """ [nqpt, 3*natom, 3*natom] array with the orthonormal eigenvectors of the dynamical matrix. in Cartesian coordinates. @@ -431,7 +491,7 @@ def non_anal_dyn_mat_eigenvect(self): else: return None - def to_xmgrace(self, filepath, units="meV"): + def to_xmgrace(self, filepath: str, units: str = "meV") -> str: """ Write xmgrace_ file with phonon band structure energies and labels for high-symmetry q-points. @@ -520,7 +580,7 @@ def w(s): # has_timrev, fermie = True, 0.0 # return PhononBands3D(self.structure, self.qpoints, has_timrev, self.phfreqs, fermie) - def qindex(self, qpoint): + def qindex(self, qpoint) -> int: """Returns the index of the qpoint. Accepts integer or reduced coordinates.""" if duck.is_intlike(qpoint): return int(qpoint) @@ -562,7 +622,7 @@ def qindex_qpoint(self, qpoint, is_non_analytical_direction=False): return qindex, qpoint - def get_unstable_modes(self, below_mev=-5.0): + def get_unstable_modes(self, below_mev=-5.0) -> list[PhononMode]: """ Return a list of :class:`PhononMode` objects with the unstable modes. A mode is unstable if its frequency is < below_mev. Output list is sorted @@ -587,7 +647,7 @@ def get_unstable_modes(self, below_mev=-5.0): # """ # qindex, qpoint = self.qindex_qpoint(qpoint) - def get_dict4pandas(self, with_spglib=True): + def get_dict4pandas(self, with_spglib=True) -> dict: """ Return a :class:`OrderedDict` with the most important parameters: @@ -611,7 +671,7 @@ def get_dict4pandas(self, with_spglib=True): return odict - def get_phdos(self, method="gaussian", step=1.e-4, width=4.e-4): + def get_phdos(self, method: str = "gaussian", step: float = 1.e-4, width: float = 4.e-4) -> PhononDos: """ Compute the phonon DOS on a linear mesh. @@ -652,7 +712,8 @@ def get_phdos(self, method="gaussian", step=1.e-4, width=4.e-4): return PhononDos(mesh, values) - def create_xyz_vib(self, iqpt, filename, pre_factor=200, do_real=True, scale_matrix=None, max_supercell=None): + def create_xyz_vib(self, iqpt, filename, pre_factor=200, do_real=True, + scale_matrix=None, max_supercell=None) -> None: """ Create vibration XYZ file for visualization of phonons. @@ -682,7 +743,7 @@ def create_xyz_vib(self, iqpt, filename, pre_factor=200, do_real=True, scale_mat pre_factor * np.reshape(self.phdispl_cart[iqpt, imode,:],(-1,3)), do_real=True, frac_coords=False, max_supercell=max_supercell, scale_matrix=scale_matrix) - def create_ascii_vib(self, iqpts, filename, pre_factor=1): + def create_ascii_vib(self, iqpts, filename, pre_factor=1) -> None: """ Create vibration ascii file for visualization of phonons. This format can be read with v_sim_ or ascii-phonons. @@ -728,7 +789,7 @@ def create_ascii_vib(self, iqpts, filename, pre_factor=1): for iqpt in iqpts: q = self.qpoints[iqpt].frac_coords - displ_list = np.zeros((self.num_branches, self.num_atoms, 3), dtype=np.complex) + displ_list = np.zeros((self.num_branches, self.num_atoms, 3), dtype=complex) for i in range(self.num_atoms): displ_list[:,i,:] = self.phdispl_cart[iqpt,:,3*i:3*(i+1)] * \ np.exp(-2*np.pi*1j*np.dot(structure[i].frac_coords, self.qpoints[iqpt].frac_coords)) @@ -749,7 +810,7 @@ def create_ascii_vib(self, iqpts, filename, pre_factor=1): with open(filename, 'wt') as f: f.write("\n".join(lines)) - def view_phononwebsite(self, browser=None, verbose=0, dryrun=False, **kwargs): + def view_phononwebsite(self, browser=None, verbose=0, dryrun=False, **kwargs) -> int: """ Produce JSON_ file that can be parsed from the phononwebsite_ and open it in ``browser``. @@ -774,7 +835,7 @@ def view_phononwebsite(self, browser=None, verbose=0, dryrun=False, **kwargs): return open_file_phononwebsite(rpath, browser=browser) def create_phononwebsite_json(self, filename, name=None, repetitions=None, highsym_qpts=None, - match_bands=True, highsym_qpts_mode="std", indent=2): + match_bands=True, highsym_qpts_mode="std", indent=2) -> None: """ Writes a JSON_ file that can be parsed from the phononwebsite_. @@ -819,9 +880,9 @@ def split_non_collinear(qpts): return h def reasonable_repetitions(natoms): - if (natoms < 4): return (3,3,3) - if (4 < natoms < 50): return (2,2,2) - if (50 < natoms): return (1,1,1) + if (natoms < 4): return (3, 3, 3) + if (4 < natoms < 50): return (2, 2, 2) + if (50 < natoms): return (1, 1, 1) # http://henriquemiranda.github.io/phononwebsite/index.html data = {} @@ -890,10 +951,82 @@ def reasonable_repetitions(natoms): with open(filename, 'wt') as json_file: json.dump(data, json_file, indent=indent) - def decorate_ax(self, ax, units='eV', **kwargs): + def make_isodistort_ph_dir(self, qpoint, select_modes=None, eta=1, workdir=None): + """ + Compute ph-freqs for given q-point (default: Gamma), + produce CIF files for unperturbed and distorded structure + that can be used with ISODISTORT (https://stokes.byu.edu/iso/isodistort.php) + to analyze the symmetry of phonon modes. + See README.me file produced in output directory. + + Args: + qpoint: + wordir: + select_modes: + eta: Amplitude of the displacement to be applied to the system. Will correspond to the + largest displacement of one atom in Angstrom. + scale_matrix: the scaling matrix of the supercell. If None a scaling matrix suitable for + the qpoint will be determined. + max_supercell: mandatory if scale_matrix is None, ignored otherwise. Defines the largest + supercell in the search for a scaling matrix suitable for the q point. + """ + iq, qpoint = self.qindex_qpoint(qpoint) + + scale_matrix = np.eye(3, 3, dtype=int) + important_fracs = (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) + for i in range(3): + for comparison_frac in important_fracs: + if abs(1 - qpoint.frac_coords[i] * comparison_frac) < 1e-4: + scale_matrix[i, i] = comparison_frac + break + print(f"Using scale_matrix:\n {scale_matrix}") + + select_modes = self.branches if select_modes is None else select_modes + if workdir is None: + workdir = "%s_qpt%s" % (self.structure.formula, repr(qpoint)) + workdir = workdir.replace(" ", "_").replace("$", "").replace("\\", "").replace("[", "").replace("]", "") + + if os.path.isdir(workdir): + cprint(f"Removing pre-existing directory: {workdir}", "yellow") + import shutil + shutil.rmtree(workdir) + + os.mkdir(workdir) + + print(f"\nCreating CIF files for ISODISTORT code in {workdir}. See README.md") + self.structure.write_cif_with_spglib_symms(filename=os.path.join(workdir, "parent_structure.cif")) + + for imode in select_modes: + # A namedtuple with a structure with the displaced atoms, a numpy array containing the + # displacements applied to each atom and the scale matrix used to generate the supercell. + r = self.get_frozen_phonons(qpoint, imode, + eta=eta, scale_matrix=scale_matrix, max_supercell=None) + + print("after scale_matrix:", r.scale_matrix) + r.structure.write_cif_with_spglib_symms(filename=os.path.join(workdir, + "distorted_structure_mode_%d.cif" % (imode + 1))) + + readme_string = """ + +Use Harold Stokes' code, [ISODISTORT](https://stokes.byu.edu/iso/isodistort.php), +loading in your structure that you did the DFPT calculation as the **parent**, +then, select mode decompositional analysis and upload the cif file from step (3). + +Follow the on screen instructions. +You will then be presented with the mode irrep and other important symmetry information. + +Thanks to Jack Baker for pointing out this approach. +See also +""" + with open(os.path.join(workdir, "README.md"), "wt") as fh: + fh.write(readme_string) + + return workdir + + def decorate_ax(self, ax, units: str = 'eV', **kwargs) -> None: """ Add q-labels, title and unit name to axis ax. - Use units = "" to add k-labels without adding unit name. + Use units="" to add k-labels without unit name. Args: title: @@ -923,11 +1056,41 @@ def decorate_ax(self, ax, units='eV', **kwargs): #print("ticks", len(ticks), ticks) ax.set_xlim(ticks[0], ticks[-1]) + def decorate_plotly(self, fig, units: str = 'eV', **kwargs) -> None: + """ + Add q-labels and unit name to figure ``fig``. + Use units="" to add k-labels without unit name. + + Args: + qlabels: + qlabel_size: + iax: An int, use iax=n to decorate the nth axis when the fig has subplots. + """ + iax = kwargs.pop("iax", 1) + xaxis = 'xaxis%u' % iax + + # Handle conversion factor. + if units: + fig.layout['yaxis%u' % iax].title.text = abu.wlabel_from_units(units, unicode=True) + + fig.layout[xaxis].title.text = "Wave Vector" + + # Set ticks and labels. + ticks, labels = self._make_ticks_and_labels(kwargs.pop("qlabels", None)) + if ticks: + labels = plotly_klabels(labels) + + fig.layout[xaxis].tickvals = ticks + fig.layout[xaxis].ticktext = labels + fig.layout[xaxis].tickfont.size = kwargs.pop("qlabel_size", 16) + # print("ticks", len(ticks), ticks) + fig.layout[xaxis].range = (ticks[0], ticks[-1]) + @add_fig_kwargs def plot(self, ax=None, units="eV", qlabels=None, branch_range=None, match_bands=False, temp=None, - fontsize=12, **kwargs): + points=None, fontsize=12, **kwargs) -> Figure: r""" - Plot the phonon band structure. + Plot the phonon band structure with matplotlib. Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -939,19 +1102,19 @@ def plot(self, ax=None, units="eV", qlabels=None, branch_range=None, match_bands match_bands: if True the bands will be matched based on the scalar product between the eigenvectors. temp: Temperature in Kelvin. If not None, a scatter plot with the Bose-Einstein occupation factor at temperature `temp` is added. + points: Marker object with the position and the size of the marker. + Used for plotting purpose e.g. QP energies, energy derivatives etc. fontsize: Legend and title fontsize. Returns: |matplotlib-Figure| """ # Select the band range. - if branch_range is None: - branch_range = range(self.num_branches) - else: - branch_range = range(branch_range[0], branch_range[1], 1) + branch_range = range(self.num_branches) if branch_range is None else \ + range(branch_range[0], branch_range[1], 1) ax, fig, plt = get_ax_fig_plt(ax=ax) - # Decorate the axis (e.g add ticks and labels). + # Decorate the axis (e.g. add ticks and labels). self.decorate_ax(ax, units=units, qlabels=qlabels) if "color" not in kwargs: kwargs["color"] = "black" @@ -960,6 +1123,9 @@ def plot(self, ax=None, units="eV", qlabels=None, branch_range=None, match_bands # Plot the phonon branches. self.plot_ax(ax, branch_range, units=units, match_bands=match_bands, **kwargs) + if points is not None: + ax.scatter(points.x, np.array(points.y), s=np.abs(points.s), **points.scatter_kwargs) + if temp is not None: # Scatter plot with Bose-Einstein occupation factors for T = temp factor = abu.phfactor_ev2units(units) @@ -978,6 +1144,63 @@ def plot(self, ax=None, units="eV", qlabels=None, branch_range=None, match_bands return fig + @add_plotly_fig_kwargs + def plotly(self, units="eV", qlabels=None, branch_range=None, match_bands=False, temp=None, + fig=None, rcd=None, fontsize=12, **kwargs): + r""" + Plot the phonon band structure with plotly. + + Args: + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + qlabels: dictionary whose keys are tuples with the reduced coordinates of the q-points. + The values are the labels. e.g. ``qlabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + branch_range: Tuple specifying the minimum and maximum branch index to plot (default: all branches are plotted). + match_bands: if True the bands will be matched based on the scalar product between the eigenvectors. + temp: Temperature in Kelvin. If not None, a scatter plot with the Bose-Einstein occupation factor + at temperature `temp` is added. + fig: plotly figure or None if a new figure should be created. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. + fontsize: Title fontsize. + + Returns: |plotly.graph_objects.Figure| + """ + # Select the band range. + branch_range = range(self.num_branches) if branch_range is None else \ + range(branch_range[0], branch_range[1], 1) + + fig, _ = get_fig_plotly(fig=fig) + + # Decorate the axis (e.g. add ticks and labels). + rcd = PlotlyRowColDesc.from_object(rcd) + self.decorate_plotly(fig, units=units, qlabels=qlabels, iax=rcd.iax) + + if "color" not in kwargs: kwargs["color"] = "black" + if "linewidth" not in kwargs: kwargs["linewidth"] = 2.0 + + # Plot the phonon branches. + self.plotly_traces(fig, branch_range, rcd=rcd, units=units, match_bands=match_bands, **kwargs) + + if temp is not None: + # Scatter plot with Bose-Einstein occupation factors for T = temp + factor = abu.phfactor_ev2units(units) + if temp < 1: temp = 1 + fig.layout.annotations = [dict(text="T = %.1f K" % temp, font_size=fontsize, x=0.5, xref='paper', + xanchor='center', y=1, yref='paper', yanchor='bottom', showarrow=False)] + xs = np.arange(self.num_qpoints) + for nu in self.branches: + ws = self.phfreqs[:, nu] + wkt = self.phfreqs[:, nu] / (abu.kb_eVK * temp) + # 1 / (np.exp(1e-6) - 1)) ~ 999999.5 + wkt = np.where(wkt > 1e-6, wkt, 1e-6) + occ = 1.0 / (np.exp(wkt) - 1.0) + s = np.where(occ < 0.3, occ, 0.3) * 50 + #print("rcd", rcd) + fig.add_scatter(x=xs, y=ws * factor, mode='markers', row=rcd.ply_row, col=rcd.ply_col, showlegend=False, + marker=dict(color='blue', size=s, opacity=0.6, line_width=0), name='') + # marker=dict(color=occ, colorscale='jet', size=s, opacity=0.6, line_width=0), + return fig + def plot_ax(self, ax, branch, units='eV', match_bands=False, **kwargs): """ Plots the frequencies for the given branches indices as a function of the q-index on axis ``ax``. @@ -1009,11 +1232,49 @@ def plot_ax(self, ax, branch, units='eV', match_bands=False, **kwargs): return lines + def plotly_traces(self, fig, branch, rcd=None, units='eV', name='', match_bands=False, + showlegend=False, **kwargs): + """ + Plots the frequencies for the given branches indices as a function of the q-index on figure ``fig`` . + If ``fig`` has subplots, ``rcd`` is used to add traces on these subplots. + If ``branch`` is None, all phonon branches are plotted. + kwargs: Passed to fig.add_scatter method. + """ + linecolor = kwargs.pop("color", "black") + linewidth = kwargs.pop("linewidth", 2.0) + + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col = rcd.ply_row, rcd.ply_col + + if branch is None: + branch_range = range(self.num_branches) + elif isinstance(branch, (list, tuple, np.ndarray, range)): + branch_range = branch + else: + branch_range = [branch] + + first_xx = 0 + factor = abu.phfactor_ev2units(units) + + for i, pf in enumerate(self.split_phfreqs): + if match_bands: + ind = self.split_matched_indices[i] + pf = pf[np.arange(len(pf))[:, None], ind] + pf = pf * factor + xx = list(range(first_xx, first_xx + len(pf))) + for branch in branch_range: + fig.add_scatter(x=xx, y=pf[:, branch], mode='lines', name=name, legendgroup=name, showlegend=False, + line=dict(color=linecolor, width=linewidth), **kwargs, row=ply_row, col=ply_col) + first_xx = xx[-1] + + if showlegend: + fig.data[-1].showlegend = True + @add_fig_kwargs def plot_colored_matched(self, ax=None, units="eV", qlabels=None, branch_range=None, - colormap="rainbow", max_colors=None, **kwargs): + colormap="rainbow", max_colors=None, **kwargs) -> Figure: r""" - Plot the phonon band structure with different color for each line. + Plot the phonon band structure with different colors for each line. Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -1027,7 +1288,7 @@ def plot_colored_matched(self, ax=None, units="eV", qlabels=None, branch_range=N sequential order to avoid difficulties in distinguishing the lines. http://matplotlib.sourceforge.net/examples/pylab_examples/show_colormaps.html max_colors: maximum number of colors to be used. If max_colors < num_braches the colors will be reapeated. - It useful to better distinguish close bands when the number of branch is large. + It may be useful to better distinguish close bands when the number of branches is large. Returns: |matplotlib-Figure| """ @@ -1066,11 +1327,71 @@ def plot_colored_matched(self, ax=None, units="eV", qlabels=None, branch_range=N return fig @add_fig_kwargs - def plot_lt_character(self, units="eV", qlabels=None, ax=None, xlims=None, ylims=None, - colormap="jet", fontsize=12, **kwargs): + def plot_phangmom(self, ax=None, pj_dir=[0, 0, 1], units="hbar", + qlabels=None, branch_range=None, colormap="rainbow", + max_colors=None, **kwargs): + r""" + Plot the phonon angular momentum with different colors for each line. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + pj_dir: direction along which the angular momentum is projected + in cartesian coordinates + units: Units for phonon plots. Only possible option: "hbar", maybe others to come ? + Case-insensitive. + qlabels: dictionary whose keys are tuples with the reduced coordinates of the q-points. + The values are the labels. e.g. ``qlabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + branch_range: Tuple specifying the minimum and maximum branch_i index to plot + (default: all branches are plotted). + colormap: matplotlib colormap to determine the colors available. The colors will be chosen not in a + sequential order to avoid difficulties in distinguishing the lines. + http://matplotlib.sourceforge.net/examples/pylab_examples/show_colormaps.html + max_colors: maximum number of colors to be used. If max_colors < num_braches the colors will be reapeated. + It may be useful to better distinguish close bands when the number of branches is large. + + Returns: |matplotlib-Figure| + """ + # Select the band range. + if branch_range is None: + branch_range = range(self.num_branches) + else: + branch_range = range(branch_range[0], branch_range[1], 1) + + ax, fig, plt = get_ax_fig_plt(ax=ax) + + # Decorate the axis (e.g add ticks and labels). + self.decorate_ax(ax, units=units, qlabels=qlabels) + + first_xx = 0 + lines = [] + + if max_colors is None: + max_colors = len(branch_range) + + colormap = plt.get_cmap(colormap) + + sorted_phangmom = np.empty_like(self.phangmom) + for i, pam in enumerate(self.phangmom): + ind = self.split_matched_indices[0][i] + sorted_phangmom[i, :, :] = pam[ind, :] + + pj_dir = np.array(pj_dir) + pj_dir = pj_dir / np.linalg.norm(pj_dir) + proj_phangmom = np.dot(sorted_phangmom, pj_dir) + colors = itertools.cycle(colormap(np.linspace(0, 1, max_colors))) + for branch_i in branch_range: + kwargs = dict(kwargs) + kwargs['color'] = next(colors) + lines.extend(ax.plot(proj_phangmom[:, branch_i], **kwargs)) + + return fig + + @add_fig_kwargs + def plot_lt_character(self, units="eV", qlabels=None, ax=None, xlims=None, ylims=None, scale_size=50, + use_becs=True, colormap="jet", fontsize=12, **kwargs) -> Figure: r""" Plot the phonon band structure with colored lines. The color of the lines indicates - the degree to which the mode is longitudinal: + the degree to which the mode is longitudinal. Red corresponds to longitudinal modes and black to purely transverse modes. Args: @@ -1082,12 +1403,15 @@ def plot_lt_character(self, units="eV", qlabels=None, ax=None, xlims=None, ylims xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used. ylims: y-axis limits. + scale_size: Scaling factor for marker size. Increase this value to enlarge the markers. + use_becs: True to compute polar strength: q . Z[atom] . disp[q, nu, atom] + False to use: q . disp[q, nu, atom]. Useful to highlight LA/TA modes. colormap: Matplotlib colormap. fontsize: legend and title fontsize. Returns: |matplotlib-Figure| """ - if self.zcart is None: + if use_becs and self.zcart is None: cprint("Bandstructure does not have Born effective charges", "yellow") return None @@ -1113,9 +1437,12 @@ def plot_lt_character(self, units="eV", qlabels=None, ax=None, xlims=None, ylims # We are not interested in the amplitudes so normalize all displacements to one. dis = dis.reshape(self.num_branches, self.num_atoms, 3) - # q x Z[atom] x disp[q, nu, atom] for nu in range(self.num_branches): - v = sum(np.dot(qcart, np.dot(self.zcart[iatom], dis[nu, iatom])) for iatom in range(self.num_atoms)) + if use_becs: + # q . Z[atom] . disp[q, nu, atom] + v = sum(np.dot(qcart, np.dot(self.zcart[iatom], dis[nu, iatom])) for iatom in range(self.num_atoms)) + else: + v = sum(np.dot(qcart, dis[nu, iatom]) for iatom in range(self.num_atoms)) scatt_x.append(xx[iq]) scatt_y.append(ws[nu]) scatt_s.append(v * inv_qepsq) @@ -1127,8 +1454,8 @@ def plot_lt_character(self, units="eV", qlabels=None, ax=None, xlims=None, ylims scatt_y = np.array(scatt_y) * factor scatt_s = np.abs(np.array(scatt_s)) scatt_s /= scatt_s.max() - scatt_s *= 50 - print("scatt_s", scatt_s, "min", scatt_s.min(), "max", scatt_s.max()) + scatt_s *= scale_size + #print("scatt_s", scatt_s, "min", scatt_s.min(), "max", scatt_s.max()) ax.scatter(scatt_x, scatt_y, s=scatt_s, #c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, @@ -1229,7 +1556,7 @@ def split_matched_indices(self): #TODO remove after verifying the other method currently in use # for i, displ in enumerate(self.split_phdispl_cart): # eigenvectors = get_dyn_mat_eigenvec(displ, self.structure, amu=self.amu) - # ind_block = np.zeros((len(displ), self.num_branches), dtype=np.int) + # ind_block = np.zeros((len(displ), self.num_branches), dtype=int) # # if it's not the first block, match with the last of the previous block. Should give a match in case # # of LO-TO splitting # if i == 0: @@ -1257,7 +1584,7 @@ def collinear(a, b, c): for i, displ in enumerate(self.split_phdispl_cart): eigenvectors = get_dyn_mat_eigenvec(displ, self.structure, amu=self.amu) - ind_block = np.zeros((len(displ), self.num_branches), dtype=np.int) + ind_block = np.zeros((len(displ), self.num_branches), dtype=int) # if it's not the first block, match the first two points with the last of the previous block. # Should give a match in case of LO-TO splitting if i == 0: @@ -1293,7 +1620,14 @@ def _get_non_anal_freqs(self, frac_direction): if np.allclose(cart_direction, d): return self.non_anal_phfreqs[i] - raise ValueError("Non analytical contribution has not been calculated for reduced direction {0} ".format(frac_direction)) + err_lines = [ + f"Non analytical contribution has not been calculated for reduced direction: {frac_direction}", + "Available non_anal_directions:" + ] + for i, d in enumerate(self.non_anal_directions): + err_lines.append(f"{i} {d}") + + raise ValueError("\n".join(err_lines)) def _get_non_anal_phdispl(self, frac_direction): # directions for the qph2l in anaddb are given in cartesian coordinates @@ -1309,7 +1643,7 @@ def _get_non_anal_phdispl(self, frac_direction): def _make_ticks_and_labels(self, qlabels): """Return ticks and labels from the mapping {qred: qstring} given in qlabels.""" - #TODO should be modified in order to handle the "split" list of qpoints + # TODO should be modified in order to handle the "split" list of qpoints if qlabels is not None: d = OrderedDict() @@ -1329,9 +1663,9 @@ def _make_ticks_and_labels(self, qlabels): @add_fig_kwargs def plot_fatbands(self, use_eigvec=True, units="eV", colormap="jet", phdos_file=None, alpha=0.6, max_stripe_width_mev=5.0, width_ratios=(2, 1), - qlabels=None, ylims=None, fontsize=12, **kwargs): + qlabels=None, ylims=None, fontsize=12, **kwargs) -> Figure: r""" - Plot phonon fatbands and, optionally, atom-projected phonon DOSes. + Plot phonon fatbands and, optionally, atom-projected phonon DOSes with matplotlib. The width of the band is given by ||v_{type}|| where v is the (complex) phonon displacement (eigenvector) in cartesian coordinates and v_{type} selects only the terms associated to the atomic type. @@ -1360,7 +1694,7 @@ def plot_fatbands(self, use_eigvec=True, units="eV", colormap="jet", phdos_file= """ lw = kwargs.pop("lw", 2) factor = abu.phfactor_ev2units(units) - ntypat = self.structure.ntypesp + ntypat = self.structure.n_elems # Prepare PJDOS. close_phdos_file = False @@ -1467,61 +1801,264 @@ def plot_fatbands(self, use_eigvec=True, units="eV", colormap="jet", phdos_file= return fig - @add_fig_kwargs - def plot_with_phdos(self, phdos, units="eV", qlabels=None, ax_list=None, width_ratios=(2, 1), **kwargs): + # TODO: fatbands along x, y, z + @add_plotly_fig_kwargs + def plotly_fatbands(self, use_eigvec=True, units="eV", colormap="G10", phdos_file=None, + alpha=0.6, max_stripe_width_mev=5.0, width_ratios=(2, 1), + qlabels=None, ylims=None, fontsize=16, **kwargs): r""" - Plot the phonon band structure with the phonon DOS. + Plot phonon fatbands and, optionally, atom-projected phonon DOSes with plotly. + The width of the band is given by ||v_{type}|| + where v is the (complex) phonon displacement (eigenvector) in cartesian coordinates and + v_{type} selects only the terms associated to the atomic type. Args: - phdos: An instance of |PhononDos| or a netcdf file providing a PhononDos object. - units: Units for plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + use_eigvec: True if the width of the phonon branch should be computed from the eigenvectors. + False to use phonon displacements. Note that the PHDOS is always decomposed in + terms of (orthonormal) eigenvectors. + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + colormap: Have a look at the colormaps here and decide which one you like: + https://plotly.com/python/discrete-color/ + phdos_file: Used to activate fatbands + PJDOS plot. + Accept string with path of PHDOS.nc file or |PhdosFile| object. + alpha: The alpha blending value, between 0 (transparent) and 1 (opaque) + max_stripe_width_mev: The maximum width of the stripe in meV. Will be rescaled according to ``units``. + width_ratios: Ratio between the width of the fatbands plots and the DOS plots. + Used if `phdos_file` is not None + ylims: Set the data limits for the y-axis. Accept tuple e.g. `(left, right)` qlabels: dictionary whose keys are tuples with the reduced coordinates of the q-points. - The values are the labels e.g. ``qlabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. - ax_list: The axes for the bandstructure plot and the DOS plot. If ax_list is None, a new figure - is created and the two axes are automatically generated. - width_ratios: Ratio between the width of the bands plots and the DOS plots. - Used if ``ax_list`` is None + The values are the labels. e.g. ``qlabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + fontsize: Legend and title fontsize. - Returns: |matplotlib-Figure| + Returns: |plotly.graph_objects.Figure| """ - phdos = PhononDos.as_phdos(phdos, phdos_kwargs=None) + lw = kwargs.pop("lw", 2) + factor = abu.phfactor_ev2units(units) + ntypat = self.structure.n_elems - import matplotlib.pyplot as plt - if ax_list is None: - # Build axes and align bands and DOS. - from matplotlib.gridspec import GridSpec - fig = plt.figure() - gspec = GridSpec(1, 2, width_ratios=width_ratios, wspace=0.05) - ax1 = plt.subplot(gspec[0]) - ax2 = plt.subplot(gspec[1], sharey=ax1) - else: - # Take them from ax_list. - ax1, ax2 = ax_list - fig = plt.gcf() + # Prepare PJDOS. + close_phdos_file = False + if phdos_file is not None: + if is_string(phdos_file): + phdos_file = PhdosFile(phdos_file) + close_phdos_file = True + else: + if not isinstance(phdos_file, PhdosFile): + raise TypeError("Expecting string or PhdosFile, got %s" % type(phdos_file)) - if not kwargs: - kwargs = {"color": "black", "linewidth": 2.0} + # Fig with [ntypat] plots if fatbands only or [ntypat, 2] if fatbands + PJDOS + nrows, ncols = (ntypat, 1) if phdos_file is None else (ntypat, 2) + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, sharex=True, sharey=True, vertical_spacing=0.05, + horizontal_spacing=0.02, column_widths=width_ratios if ncols == 2 else None) + + import plotly.express as px + color_l = getattr(px.colors.qualitative, colormap) + if len(color_l) < len(self.structure.symbol_set): + raise ValueError(f"Colormap {colormap} is not enough, please provide more than %d colors" + % len(self.structure.symbol_set)) + qq = list(range(self.num_qpoints)) - # Plot the phonon band structure. - self.plot_ax(ax1, branch=None, units=units, **kwargs) - self.decorate_ax(ax1, units=units, qlabels=qlabels) + # phonon_displacements are in cartesian coordinates and stored in an array with shape + # (nqpt, 3*natom, 3*natom) where the last dimension stores the cartesian components. + # PJDoses are in cartesian coordinates and are computed by anaddb using the the + # phonon eigenvectors that are orthonormal. - factor = abu.phfactor_ev2units(units) - emin = np.min(self.minfreq) - emin -= 0.05 * abs(emin) - emin *= factor - emax = np.max(self.maxfreq) - emax += 0.05 * abs(emax) - emax *= factor - ax1.yaxis.set_view_interval(emin, emax) + # Precompute normalization factor: + # Here I use d2[q, nu] = \sum_{i=0}^{3*Nat-1) |d^{q\nu}_i|**2 + # it makes sense only for displacements + d2_qnu = np.ones((self.num_qpoints, self.num_branches)) + if not use_eigvec: + for iq in range(self.num_qpoints): + for nu in self.branches: + cvect = self.phdispl_cart[iq, nu, :] + d2_qnu[iq, nu] = np.vdot(cvect, cvect).real - # Plot Phonon DOS - phdos.plot_dos_idos(ax2, what="d", units=units, exchange_xy=True, **kwargs) + # Plot fatbands: one plot per atom type. + for row, symbol in enumerate(self.structure.symbol_set): + color = color_l[row] + rcd = PlotlyRowColDesc(row, 0, nrows, ncols) + iax=rcd.iax + self.decorate_plotly(fig, units=units, qlabels=qlabels, iax=iax) + if row != len(self.structure.symbol_set): + xaxis = 'xaxis%u' % iax + fig.layout[xaxis].title.text = "" - ax2.grid(True) - ax2.yaxis.set_ticks_position("right") - #ax2.yaxis.set_label_position("right") + # dir_indices lists the coordinate indices for the atoms of the same type. + atom_indices = self.structure.indices_from_symbol(symbol) + dir_indices = [] + for aindx in atom_indices: + start = 3 * aindx + dir_indices.extend([start, start + 1, start + 2]) + dir_indices = np.array(dir_indices) + + for nu in self.branches: + yy_qq = self.phfreqs[:, nu] * factor + + # Ectract the sub-vector associated to this atom type (eigvec or displacement). + if use_eigvec: + v_type = self.dyn_mat_eigenvect[:, nu, dir_indices] + else: + v_type = self.phdispl_cart[:, nu, dir_indices] + + v2_type = np.empty(self.num_qpoints) + for iq in range(self.num_qpoints): + v2_type[iq] = np.vdot(v_type[iq], v_type[iq]).real + + # Normalize and scale by max_stripe_width_mev taking into account units. + # The stripe is centered on the phonon branch hence the factor 2 + stype_qq = (factor * max_stripe_width_mev * 1.e-3 / 2) * np.sqrt(v2_type / d2_qnu[:, nu]) + + # Plot the phonon branch with the stripe. + ply_row, ply_col = rcd.ply_row, rcd.ply_col + if nu == 0: + fig.add_scatter(x=qq, y=yy_qq, mode='lines', line=dict(width=lw, color=color), name=symbol, + legendgroup=row ,row=ply_row, col=ply_col) + else: + fig.add_scatter(x=qq, y=yy_qq, mode='lines', line=dict(width=lw, color=color), name=symbol, + showlegend=False, legendgroup=row ,row=ply_row, col=ply_col) + + fig.add_scatter(x=qq, y=yy_qq-stype_qq, mode='lines', line=dict(width=0, color=color), name='', + showlegend=False, legendgroup=row ,row=ply_row, col=ply_col) + fig.add_scatter(x=qq, y=yy_qq+stype_qq, mode='lines', line=dict(width=0, color=color), name='', + showlegend=False, legendgroup=row, fill='tonexty', row=ply_row, col=ply_col) + + plotly_set_lims(fig, ylims, "y", iax=iax) + + # Type projected DOSes (always computed from eigenvectors in anaddb). + if phdos_file is not None: + for row, symbol in enumerate(self.structure.symbol_set): + color = color_l[row] + rcd = PlotlyRowColDesc(row, 1, nrows, ncols) + + # Get PJDOS: Dictionary symbol --> partial PhononDos + pjdos = phdos_file.pjdos_symbol[symbol] + x, y = pjdos.mesh * factor, pjdos.values / factor + + ply_row, ply_col = rcd.ply_row, rcd.ply_col + fig.add_scatter(x=y, y=x, mode='lines', line=dict(width=lw, color=color), name='', showlegend=False, + legendgroup=row ,row=ply_row, col=ply_col) + plotly_set_lims(fig, ylims, "y", iax=rcd.iax) + + if close_phdos_file: + phdos_file.close() + + fig.layout.legend.font.size = fontsize + fig.layout.title.font.size = fontsize + 2 + + return fig + + @add_fig_kwargs + def plot_with_phdos(self, phdos, units="eV", qlabels=None, ax_list=None, + width_ratios=(2, 1), **kwargs) -> Figure: + r""" + Plot the phonon band structure with the phonon DOS. + + Args: + phdos: An instance of |PhononDos| or a netcdf file providing a PhononDos object. + units: Units for plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + qlabels: dictionary whose keys are tuples with the reduced coordinates of the q-points. + The values are the labels e.g. ``qlabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + ax_list: The axes for the bandstructure plot and the DOS plot. If ax_list is None, a new figure + is created and the two axes are automatically generated. + width_ratios: Ratio between the width of the bands plots and the DOS plots. + Used if ``ax_list`` is None + + Returns: |matplotlib-Figure| + """ + phdos = PhononDos.as_phdos(phdos, phdos_kwargs=None) + + import matplotlib.pyplot as plt + if ax_list is None: + # Build axes and align bands and DOS. + from matplotlib.gridspec import GridSpec + fig = plt.figure() + gspec = GridSpec(1, 2, width_ratios=width_ratios, wspace=0.05) + ax1 = plt.subplot(gspec[0]) + ax2 = plt.subplot(gspec[1], sharey=ax1) + else: + # Take them from ax_list. + ax1, ax2 = ax_list + fig = plt.gcf() + + if not kwargs: + kwargs = {"color": "black", "linewidth": 2.0} + + # Plot the phonon band structure. + self.plot_ax(ax1, branch=None, units=units, **kwargs) + self.decorate_ax(ax1, units=units, qlabels=qlabels) + + factor = abu.phfactor_ev2units(units) + emin = np.min(self.minfreq) + emin -= 0.05 * abs(emin) + emin *= factor + emax = np.max(self.maxfreq) + emax += 0.05 * abs(emax) + emax *= factor + ax1.set_ylim(emin, emax) + + # Plot Phonon DOS + phdos.plot_dos_idos(ax2, what="d", units=units, exchange_xy=True, **kwargs) + + ax2.grid(True) + ax2.yaxis.set_ticks_position("right") + #ax2.yaxis.set_label_position("right") + + return fig + + @add_plotly_fig_kwargs + def plotly_with_phdos(self, phdos, units="eV", qlabels=None, fig=None, rcd_phbands=None, rcd_phdos=None, + width_ratios=(2, 1), fontsize=12, **kwargs): + r""" + Plot the phonon band structure with the phonon DOS with plotly. + + Args: + phdos: An instance of |PhononDos| or a netcdf file providing a PhononDos object. + units: Units for plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + qlabels: dictionary whose keys are tuples with the reduced coordinates of the q-points. + The values are the labels e.g. ``qlabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + fig: The fig for the bandstructure plot and the DOS plot. If fig is None, a new figure + is created. + width_ratios: Ratio between the width of the bands plots and the DOS plots. + Used if ``fig`` is None + fontsize: Title fontsize. + + Returns: |plotly.graph_objects.Figure| + """ + phdos = PhononDos.as_phdos(phdos, phdos_kwargs=None) + + if fig is None: + # build fig and align bands and DOS. + fig, _ = get_figs_plotly(nrows=1, ncols=2, subplot_titles=[], sharex=False, sharey=True, + horizontal_spacing=0.02, column_widths=width_ratios) + + if not kwargs: + kwargs = {"line_color": "black", "line_width": 2.0} + + # Plot the phonon band structure. + rcd_phbands = PlotlyRowColDesc.from_object(rcd_phbands) + self.plotly_traces(fig, branch=None, rcd=rcd_phbands, units=units, **kwargs) + self.decorate_plotly(fig, units=units, qlabels=qlabels, iax=rcd_phbands.iax) + + factor = abu.phfactor_ev2units(units) + emin = np.min(self.minfreq) + emin -= 0.05 * abs(emin) + emin *= factor + emax = np.max(self.maxfreq) + emax += 0.05 * abs(emax) + emax *= factor + fig.layout.yaxis.range = (emin, emax) + + # Plot Phonon DOS + if rcd_phdos is not None: + rcd_phdos = PlotlyRowColDesc.from_object(rcd_phdos) + else: + rcd_phdos = PlotlyRowColDesc(0, 1, 1, 2) + + phdos.plotly_dos_idos(fig, rcd=rcd_phdos, what="d", units=units, exchange_xy=True, showlegend=False, **kwargs) + fig.update_layout(font_size=fontsize) return fig @@ -1529,7 +2066,8 @@ def plot_with_phdos(self, phdos, units="eV", qlabels=None, ax_list=None, width_r def plot_phdispl(self, qpoint, cart_dir=None, use_reduced_coords=False, ax=None, units="eV", is_non_analytical_direction=False, use_eigvec=False, colormap="viridis", hatches="default", atoms_index=None, labels_groups=None, - normalize=True, use_sqrt=False, fontsize=12, branches=None, format_w="%.3f", **kwargs): + normalize=True, use_sqrt=False, fontsize=12, + branches=None, format_w="%.3f", **kwargs) -> Figure: """ Plot vertical bars with the contribution of the different atoms or atomic types to all the phonon modes at a given ``qpoint``. The contribution is given by ||v_{type}|| @@ -1588,7 +2126,7 @@ def plot_phdispl(self, qpoint, cart_dir=None, use_reduced_coords=False, ax=None, ax, fig, plt = get_ax_fig_plt(ax=ax) cmap = plt.get_cmap(colormap) - ntypat = self.structure.ntypesp + ntypat = self.structure.n_elems if is_non_analytical_direction: ax.set_title("q-direction = %s" % repr(qpoint), fontsize=fontsize) @@ -1680,7 +2218,7 @@ def plot_phdispl(self, qpoint, cart_dir=None, use_reduced_coords=False, ax=None, x += (width + pad) / 2 ax.set_xticks(xticks) - ax.set_xticklabels((xticklabels)) + ax.set_xticklabels(xticklabels) ax.legend(loc="best", fontsize=fontsize, shadow=True) return fig @@ -1689,7 +2227,8 @@ def plot_phdispl(self, qpoint, cart_dir=None, use_reduced_coords=False, ax=None, def plot_phdispl_cartdirs(self, qpoint, cart_dirs=("x", "y", "z"), units="eV", is_non_analytical_direction=False, use_eigvec=False, colormap="viridis", hatches="default", atoms_index=None, labels_groups=None, - normalize=True, use_sqrt=False, fontsize=8, branches=None, format_w="%.3f", **kwargs): + normalize=True, use_sqrt=False, fontsize=8, + branches=None, format_w="%.3f", **kwargs) -> Figure: """ Plot three panels. Each panel shows vertical bars with the contribution of the different atomic types to all the phonon displacements at the given ``qpoint`` along on the Cartesian directions in ``cart_dirs``. @@ -1715,7 +2254,7 @@ def plot_phdispl_cartdirs(self, qpoint, cart_dirs=("x", "y", "z"), units="eV", summed on a separate group. if None all the atoms will be considered and grouped by type. labels_groups: If atoms_index is not None will provide the labels for each of the group in atoms_index. Should have the same length of atoms_index or be None. If None automatic labelling will be used. - branches: list of indices for the modes that shoul be represented. If None all the modes will be shown. + branches: list of indices for the modes that should be represented. If None all the modes will be shown. format_w: string used to format the values of the frequency. Default "%.3f". See plot_phdispl for the meaning of the other arguments. @@ -1727,7 +2266,7 @@ def plot_phdispl_cartdirs(self, qpoint, cart_dirs=("x", "y", "z"), units="eV", self.plot_phdispl(qpoint, cart_dir=cart_dir, ax=ax, units=units, colormap=colormap, is_non_analytical_direction=is_non_analytical_direction, use_eigvec=use_eigvec, fontsize=fontsize, hatches=hatches, atoms_index=atoms_index, labels_groups=labels_groups, - normalize=normalize, use_sqrt=use_sqrt, branches=branches, show=False) + normalize=normalize, use_sqrt=use_sqrt, branches=branches, show=False, format_w=format_w) # Disable artists. if i != 0: set_visible(ax, False, "legend", "title") @@ -1738,7 +2277,7 @@ def plot_phdispl_cartdirs(self, qpoint, cart_dirs=("x", "y", "z"), units="eV", return fig - def get_dataframe(self): + def get_dataframe(self, mode_range=None) -> pd.DataFrame: """ Return a |pandas-DataFrame| with the following columns: @@ -1754,11 +2293,16 @@ def get_dataframe(self): freq Phonon frequency in eV. qpoint |Kpoint| object ============== ========================== + + Args: + mode_range: Only modes such as `mode_range[0] <= mode_index < mode_range[1]`. """ - import pandas as pd rows = [] for iq, qpoint in enumerate(self.qpoints): for nu in self.branches: + if mode_range is not None and (nu < mode_range[0] or nu >= mode_range[1]): + continue + rows.append(OrderedDict([ ("qidx", iq), ("mode", nu), @@ -1766,12 +2310,14 @@ def get_dataframe(self): ("qpoint", self.qpoints[iq]), ])) - return pd.DataFrame(rows, columns=list(rows[0].keys())) + df = pd.DataFrame(rows, columns=list(rows[0].keys())) + return df @add_fig_kwargs - def boxplot(self, ax=None, units="eV", mode_range=None, swarm=False, **kwargs): + def boxplot(self, ax=None, units="eV", mode_range=None, swarm=False, **kwargs) -> Figure: """ - Use seaborn_ to draw a box plot to show distributions of eigenvalues with respect to the mode index. + Use seaborn_ to draw a box plot showing the distribution of the phonon + frequencies with respect to the mode index. Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -1780,28 +2326,63 @@ def boxplot(self, ax=None, units="eV", mode_range=None, swarm=False, **kwargs): mode_range: Only modes such as `mode_range[0] <= mode_index < mode_range[1]` are included in the plot. swarm: True to show the datapoints on top of the boxes kwargs: Keyword arguments passed to seaborn boxplot. + + Return: |matplotlib-Figure| """ - # Get the dataframe and select bands - frame = self.get_dataframe() - if mode_range is not None: - frame = frame[(frame["mode"] >= mode_range[0]) & (frame["mode"] < mode_range[1])] + df = self.get_dataframe(mode_range=mode_range) + factor = abu.phfactor_ev2units(units) + yname = "freq %s" % abu.phunit_tag(units) + df[yname] = factor * df["freq"] ax, fig, plt = get_ax_fig_plt(ax=ax) ax.grid(True) + import seaborn as sns + hue = None + ax = sns.boxplot(x="mode", y=yname, data=df, hue=hue, ax=ax, **kwargs) + if swarm: + sns.swarmplot(x="mode", y=yname, data=df, hue=hue, color=".25", ax=ax) + return fig + + @add_plotly_fig_kwargs + def boxplotly(self, units="eV", mode_range=None, swarm=False, fig=None, rcd=None, **kwargs): + """ + Use plotly to draw a box plot to show the distribution of the phonon + frequencies with respect to the mode index. + + Args: + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + mode_range: Only modes such as `mode_range[0] <= mode_index < mode_range[1]` are included in the plot. + swarm: True to show the datapoints on top of the boxes + fig: plotly figure or None if a new figure should be created. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) + of the subplot in the grid. + kwargs: Keyword arguments passed to plotly px.box. + + Returns: |plotly.graph_objects.Figure| + """ + df = self.get_dataframe(mode_range=mode_range) factor = abu.phfactor_ev2units(units) yname = "freq %s" % abu.phunit_tag(units) - frame[yname] = factor * frame["freq"] + df[yname] = factor * df["freq"] - import seaborn as sns + import plotly.express as px hue = None - ax = sns.boxplot(x="mode", y=yname, data=frame, hue=hue, ax=ax, **kwargs) - if swarm: - sns.swarmplot(x="mode", y=yname, data=frame, hue=hue, color=".25", ax=ax) + points = 'outliers' if not swarm else "all" + px_fig = px.box(df, x="mode", y=yname, color=hue, points=points, **kwargs) + + if rcd is None: return px_fig + + # Add px_fig traces to input fig with subplot. + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax + for trace in px_fig.data: + fig.add_trace(trace, row=ply_row, col=ply_col) return fig - def to_pymatgen(self, qlabels=None): + def to_pymatgen(self, qlabels=None) -> PhononBandStructureSymmLine: r""" Creates a pymatgen :class:`PhononBandStructureSymmLine` object. @@ -1822,20 +2403,22 @@ def to_pymatgen(self, qlabels=None): ph_freqs, qpts, displ = [], [], [] for split_q, split_phf, split_phdispl in zip(self.split_qpoints, self.split_phfreqs, self.split_phdispl_cart): - # for q, phf in zip(split_q, split_phf)[1:-1]: - for i, (q, phf, d) in enumerate(zip(split_q, split_phf, split_phdispl)): + # if the qpoint has a label it needs to be repeated. If it is one of the extrema either it should + # not be repeated (if they are the real first or last point) or they will be already repeated due + # to the split. Also they should not be repeated in case there are two consecutive labelled points. + # So first determine which ones have a label. + labelled = [any(np.allclose(q, labelled_q) for labelled_q in labelled_q_list) for q in split_q] + + for i, (q, phf, d, l) in enumerate(zip(split_q, split_phf, split_phdispl, labelled)): ph_freqs.append(phf) qpts.append(q) d = d.reshape(self.num_branches, self.num_atoms, 3) displ.append(d) - # if the qpoint has a label it nees to be repeated. If it is one of the extrama either it should - # not be repeated (if they are the real first or last point) or they will be already reapeated due - # to the split. - if any(np.allclose(q, labelled_q) for labelled_q in labelled_q_list): - if 0 < i < len(split_q) - 1: - ph_freqs.append(phf) - qpts.append(q) - displ.append(d) + + if 0 < i < len(split_q) - 1 and l and not labelled[i-1] and not labelled[i+1]: + ph_freqs.append(phf) + qpts.append(q) + displ.append(d) ph_freqs = np.transpose(ph_freqs) * abu.eV_to_THz qpts = np.array(qpts) @@ -1846,6 +2429,93 @@ def to_pymatgen(self, qlabels=None): has_nac=self.non_anal_ph is not None, eigendisplacements=displ, labels_dict=labels_dict, structure=self.structure) + @classmethod + def from_pmg_bs(cls, pmg_bs: PhononBandStructureSymmLine, structure=None) -> PhononBands: + """ + Creates an instance of the object from a :class:`PhononBandStructureSymmLine` object. + + Args: + pmg_bs: the instance of PhononBandStructureSymmLine. + structure: a |Structure| object. Should be present if the structure attribute is not set in pmg_bs. + """ + structure = structure or pmg_bs.structure + if not structure: + raise ValueError("The structure is needed to create the abipy object.") + + structure = Structure.from_sites(structure) + structure.spgset_abi_spacegroup(has_timerev=False) + + qpoints = [] + phfreqs = [] + phdispl_cart = [] + names = [] + + prev_q = None + for b in pmg_bs.branches: + qname1, qname2 = b["name"].split("-") + start_index = b["start_index"] + if prev_q is not None and qname1 == prev_q: + start_index += 1 + + # it can happen depending on how the object was generated + if start_index >= b["end_index"]: + continue + + prev_q = qname2 + + if start_index == b["start_index"]: + names.append(qname1) + + names.extend([None] * (b["end_index"] - b["start_index"] - 1)) + names.append(qname2) + + for i in range(start_index, b["end_index"] + 1): + qpoints.append(pmg_bs.qpoints[i].frac_coords) + phfreqs.extend(pmg_bs.bands.T[start_index:b["end_index"] + 1]) + if pmg_bs.has_eigendisplacements: + e = pmg_bs.eigendisplacements[:, start_index:b["end_index"] + 1] + e = np.transpose(e, [1, 0, 2, 3]) + e = np.reshape(e, e.shape[:-2] + (-1,)) + phdispl_cart.extend(e) + + #print(len(names), len(phfreqs)) + qpoints_list = KpointList(reciprocal_lattice=structure.reciprocal_lattice, + frac_coords=qpoints, names=names) + + phfreqs = np.array(phfreqs) / abu.eV_to_THz + n_modes = 3 * len(structure) + if not phdispl_cart: + phdispl_cart = np.zeros((len(phfreqs), n_modes, n_modes)) + else: + phdispl_cart = np.array(phdispl_cart) + + na = None + if pmg_bs.has_nac: + directions = [] + nac_phreqs = [] + nac_phdispl = [] + + for t in pmg_bs.nac_frequencies: + # directions in NonAnalyticalPh are given in cartesian coordinates + cart_direction = structure.lattice.reciprocal_lattice_crystallographic.get_cartesian_coords(t[0]) + cart_direction = cart_direction / np.linalg.norm(cart_direction) + + directions.append(cart_direction) + nac_phreqs.append(t[1]) + + nac_phreqs = np.array(nac_phreqs) / abu.eV_to_THz + + for t in pmg_bs.nac_eigendisplacements: + nac_phdispl.append(t[1].reshape(n_modes, n_modes)) + + na = NonAnalyticalPh(structure=structure, directions=np.array(directions), + phfreqs=nac_phreqs, phdispl_cart=np.array(nac_phdispl)) + + phb = cls(structure=structure, qpoints=qpoints_list, phfreqs=phfreqs, phdispl_cart=phdispl_cart, + non_anal_ph=na) + + return phb + def acoustic_indices(self, qpoint, threshold=0.95, raise_on_no_indices=True): """ Extract the indices of the three acoustic modes for a qpoint. @@ -1855,7 +2525,7 @@ def acoustic_indices(self, qpoint, threshold=0.95, raise_on_no_indices=True): qpoint: the qpoint. Accepts integer or reduced coordinates threshold: fractional value allowed for the matching of the displacements to identify acoustic modes. raise_on_no_indices: if True a RuntimeError will be raised if the acoustic mode will not be - correctly identified + correctly identified. If False [0, 1, 2] will be returned. """ qindex = self.qindex(qpoint) phdispl = self.phdispl_cart[qindex] @@ -1871,10 +2541,11 @@ def acoustic_indices(self, qpoint, threshold=0.95, raise_on_no_indices=True): else: indices.append(mode) - if len(indices) != 3 and raise_on_no_indices: - raise RuntimeError('wrong number of indices: {}'.format(indices)) - else: - indices = [0, 1, 2] + if len(indices) != 3: + if raise_on_no_indices: + raise RuntimeError('wrong number of indices: {}'.format(indices)) + else: + indices = [0, 1, 2] return indices @@ -1892,9 +2563,9 @@ def asr_breaking(self, units='eV', threshold=0.95, raise_on_no_indices=True): Returns: A namedtuple with: - the three breaking of the acoustic modes - the maximum breaking with sign - the absolute value of the maximum breaking + - the three breaking of the acoustic modes + - the maximum breaking with sign + - the absolute value of the maximum breaking """ gamma_ind = self.qpoints.index((0, 0, 0)) ind = self.acoustic_indices(gamma_ind, threshold=threshold, raise_on_no_indices=raise_on_no_indices) @@ -1923,11 +2594,360 @@ def get_frozen_phonons(self, qpoint, nmode, eta=1, scale_matrix=None, max_superc displacements applied to each atom and the scale matrix used to generate the supercell. """ qind = self.qindex(qpoint) - displ = self.phdispl_cart[qind, nmode].reshape((-1,3)) + displ = self.phdispl_cart[qind, nmode].reshape((-1, 3)) return self.structure.frozen_phonon(qpoint=self.qpoints[qind].frac_coords, displ=displ, eta=eta, frac_coords=False, scale_matrix=scale_matrix, max_supercell=max_supercell) + def get_longitudinal_fraction(self, qpoint, idir=None): + """ + Calculates "longitudinal" fraction of the eigendisplacements. + + Args: + qpoint: q vector in reduced coordinate in reciprocal space or index of the qpoint. + idir: an integer with the index of the non analytical direction if qpoint is gamma. + If None all will be given. + + Returns: + A numpy array with the longitudinal fractions for each mode of the specified q point. + If qpoint is gamma and idir is None it will be a numpy array with all the non analytical + directions. + """ + qind = self.qindex(qpoint) + qpoint = self.qpoints[qind] + + def get_fraction(direction, displ): + displ = np.real(displ) + # Normalization. Such that \sum_i dot(q, displ[i]) <= 1 + # and = 1 if q is parallel to displ[i] for each i. + displ_norm = np.sum(np.linalg.norm(displ, axis=-1), axis=-1) + displ = displ / displ_norm[:, None, None] + versor = direction / np.linalg.norm(direction) + return np.absolute(np.dot(displ, versor)).sum(axis=-1) + + if qpoint.is_gamma(): + if self.non_anal_phdispl_cart is None: + raise RuntimeError("Cannot calculate the lo/to fraction at Gamma if the non analytical" + "contributions have not been calculated.") + phdispl = self.non_anal_phdispl_cart.reshape((len(self.non_anal_directions), self.num_branches, self.num_atoms, 3)) + if idir is None: + fractions = [] + for non_anal_dir, phd in zip(self.non_anal_directions, phdispl): + fractions.append(get_fraction(non_anal_dir, phd)) + return np.array(fractions) + else: + return get_fraction(self.non_anal_directions[idir], phdispl[idir]) + else: + phdispl = self.phdispl_cart[qind].reshape((self.num_branches, self.num_atoms, 3)) + return get_fraction(qpoint.cart_coords, phdispl) + + @add_fig_kwargs + def plot_longitudinal_fraction(self, qpoint, idir=None, ax_list=None, units="eV", branches=None, + format_w="%.3f", fontsize=10, **kwargs) -> Figure: + """ + Plots an histogram "longitudinal" fraction of the eigendisplacements. + + Args: + qpoint: q vector in reduced coordinate in reciprocal space or index of the qpoint. + idir: an integer with the index of the non analytical direction if qpoint is gamma. + If None all will be plot. + ax_list: The axes for the plot. If ax_list is None, a new figure is created and + the axes are automatically generated. + units: Units for the output. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + branches: list of indices for the modes that should be represented. If None all the modes will be shown. + format_w: string used to format the values of the frequency. Default "%.3f". + fontsize: Labels and title fontsize. + + Returns: + |matplotlib-Figure| + + """ + qind = self.qindex(qpoint) + qpoint = self.qpoints[qind] + fractions = self.get_longitudinal_fraction(qind, idir) + + factor = abu.phfactor_ev2units(units) + + if branches is None: + branches = self.branches + elif not isinstance(branches, (list, tuple)): + branches = [branches] + + is_non_anal = qpoint.is_gamma() + + # if non analytical directions at gamma the + if len(fractions.shape) == 1: + fractions = [fractions] + + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=len(fractions), ncols=1, + sharex=False, sharey=False, squeeze=False) + + width, pad = 4, 1 + pad = width + pad + + for i, ax in enumerate(ax_list.ravel()): + xticks, xticklabels = [], [] + x = 0 + if idir is not None: + i_ref = idir + else: + i_ref = i + for inu, nu in enumerate(branches): + height = fractions[i][nu] + ax.bar(x, height, width, 0, align="center", + color="r", edgecolor='black') + + xticks.append(x) + if is_non_anal: + w_qnu = self.non_anal_phfreqs[i_ref, nu] * factor + else: + w_qnu = self.phfreqs[qind, nu] * factor + xticklabels.append(format_w % w_qnu) + + x += (width + pad) / 2 + + if is_non_anal: + # no title for multiple axes, not enough space. + if idir is not None: + ax.set_title(f"q-direction = {self.non_anal_directions[i_ref]}", fontsize=fontsize) + else: + ax.set_title(f"qpoint = {repr(qpoint)}", fontsize=fontsize) + + ax.set_ylabel(r"Longitudinal fraction", fontsize=fontsize) + ax.set_ylim(0, 1) + + ax.set_xticks(xticks) + ax.set_xticklabels((xticklabels)) + + if i == len(fractions) - 1: + ax.set_xlabel(f'Frequency {abu.phunit_tag(units)}') + + return fig + + @add_fig_kwargs + def plot_longitudinal_fatbands(self, ax=None, units="eV", qlabels=None, branch_range=None, match_bands=False, + sum_degenerate=False, factor=1, **kwargs) -> Figure: + r""" + Plot the phonon band structure with width representing the longitudinal fraction of the fatbands. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + qlabels: dictionary whose keys are tuples with the reduced coordinates of the q-points. + The values are the labels. e.g. ``qlabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + branch_range: Tuple specifying the minimum and maximum branch index to plot (default: all branches are plotted). + match_bands: if True the bands will be matched based on the scalar product between the eigenvectors. + sum_degenerate: if True modes with similar frequencies will be considered as degenerated and their + contributions will be summed (squared sum). Notice that this may end up summing contributions + from modes that are just accidentally degenerated. + factor: a float that will used to scale the width of the fatbands. + + Returns: + |matplotlib-Figure| + """ + # Select the band range. + if branch_range is None: + branch_range = range(self.num_branches) + else: + branch_range = range(branch_range[0], branch_range[1], 1) + + ax, fig, plt = get_ax_fig_plt(ax=ax) + + # Decorate the axis (e.g add ticks and labels). + self.decorate_ax(ax, units=units, qlabels=qlabels) + + if "color" not in kwargs: kwargs["color"] = "black" + if "linewidth" not in kwargs: kwargs["linewidth"] = 1.0 + + first_xx = 0 + + units_factor = abu.phfactor_ev2units(units) + + for i, (q_l, pf_l) in enumerate(zip(self.split_qpoints, self.split_phfreqs)): + if match_bands: + ind = self.split_matched_indices[i] + pf_l = pf_l[np.arange(len(pf_l))[:, None], ind] + pf_l = pf_l * units_factor + xx = list(range(first_xx, first_xx + len(pf_l))) + for branch in branch_range: + ax.plot(xx, pf_l[:, branch], **kwargs) + first_xx = xx[-1] + + width = [] + for iq, (q, pf) in enumerate(zip(q_l, pf_l)): + + #print(q) + if np.allclose(np.mod(q, 1), [0, 0, 0]): + if self.non_anal_ph is not None: + if iq == 0: + direction = q_l[iq+1] + else: + direction = q_l[iq-1] + idir = self.non_anal_ph.index_direction(direction) + frac = self.get_longitudinal_fraction(q, idir) + else: + frac = np.zeros(self.num_branches) + else: + frac = self.get_longitudinal_fraction(q) + + # sum the contributions from degenerate modes + if sum_degenerate: + pf_round = pf.round(decimals=int(6 * units_factor)) + partitioned_pf = [np.where(pf_round == element)[0].tolist() for element in np.unique(pf_round)] + for group in partitioned_pf: + if len(group) > 1: + frac[group[0]] = np.linalg.norm(frac[group]) + frac[group[1:]] = 0 + + if match_bands: + ind = self.split_matched_indices[i] + frac = frac[ind[iq]] + + width.append(frac * units_factor * factor / 600) + + width = np.array(width) + for branch in branch_range: + ax.fill_between(xx, pf_l[:, branch] + width[:, branch], pf_l[:, branch] - width[:, branch], + facecolor="r", alpha=0.4, linewidth=0) + + return fig + + @add_fig_kwargs + def plot_qpt_distance(self, qpt_list=None, ngqpt=None, shiftq=(0, 0, 0), plot_distances=False, + units="eV", qlabels=None, branch_range=None, colormap="viridis_r", + match_bands=False, log_scale=False, **kwargs) -> Figure: + r""" + Plot the phonon band structure coloring the point according to the minimum distance of + the qpoints of the path from a list of qpoints. This can be for example defined as the + q-points effectively calculated in DFPT. + Optionally plot the explicit values. + + Args: + qpt_list: list of fractional coordinates or KpointList of the qpoints from which the minimum + distance will be calculated. + ngqpt: the division of a regular grid of qpoints. Used to automatically fill in the qpt_list + based on abipy.core.kpoints.kmesh_from_mpdivs. + shiftq: the shifts of a regular grid of qpoints. Used to automatically fill in the qpt_list + based on abipy.core.kpoints.kmesh_from_mpdivs. + plot_distances: if True a second plot will be added with the explicit values of the distances. + ax: |matplotlib-Axes| or None if a new figure should be created. + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + qlabels: dictionary whose keys are tuples with the reduced coordinates of the q-points. + The values are the labels. e.g. ``qlabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + branch_range: Tuple specifying the minimum and maximum branch_i index to plot + (default: all branches are plotted). + colormap: matplotlib colormap to determine the colors available. + http://matplotlib.sourceforge.net/examples/pylab_examples/show_colormaps.html + match_bands: if True the bands will be matched based on the scalar product between the eigenvectors. + log_scale: if True the values will be plotted in a log scale. + + Returns: |matplotlib-Figure| + """ + from matplotlib.collections import LineCollection + + if qpt_list is None: + if ngqpt is None: + raise ValueError("at least one among qpt_list and ngqpt should be provided") + qpt_list = kmesh_from_mpdivs(ngqpt, shiftq, pbc=False, order="bz") + + if isinstance(qpt_list, KpointList): + qpt_list = qpt_list.frac_coords + + # Select the band range. + if branch_range is None: + branch_range = range(self.num_branches) + else: + branch_range = range(branch_range[0], branch_range[1], 1) + + nrows = 2 if plot_distances else 1 + ncols = 1 + ax_list, fig, plt = get_axarray_fig_plt(ax_array=None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=True) + + # make a list in case of only one plot + if not plot_distances: + ax_list = [ax_list] + + # Decorate the axis (e.g add ticks and labels). + self.decorate_ax(ax_list[-1], units=units, qlabels=qlabels) + + first_xx = 0 + factor = abu.phfactor_ev2units(units) + + linewidth = 2 + if "lw" in kwargs: + linewidth = kwargs.pop("lw") + elif "linewidth" in kwargs: + linewidth = kwargs.pop("linewidth") + + rec_latt = self.structure.reciprocal_lattice + + # calculate all the value to set the color normalization + split_min_dist = [] + for i, q_l in enumerate(self.split_qpoints): + all_dist = rec_latt.get_all_distances(q_l, qpt_list) + split_min_dist.append(np.min(all_dist, axis=-1)) + + if log_scale: + import matplotlib + # find the minimum value larger than zero and set the 0 to that value + min_value = np.min([v for l in split_min_dist for v in l if v > 0]) + for min_list in split_min_dist: + min_list[min_list == 0] = min_value + norm = matplotlib.colors.LogNorm(min_value, np.max(split_min_dist), clip=True) + else: + norm = plt.Normalize(np.min(split_min_dist), np.max(split_min_dist)) + + segments = [] + total_min_dist = [] + + for i, (pf, min_dist) in enumerate(zip(self.split_phfreqs, split_min_dist)): + if match_bands: + ind = self.split_matched_indices[i] + pf = pf[np.arange(len(pf))[:, None], ind] + pf = pf * factor + xx = range(first_xx, first_xx + len(pf)) + + for branch_i in branch_range: + points = np.array([xx, pf[:, branch_i]]).T.reshape(-1, 1, 2) + segments.append(np.concatenate([points[:-1], points[1:]], axis=1)) + total_min_dist.extend(min_dist[:-1]) + + first_xx = xx[-1] + + segments = np.concatenate(segments) + total_min_dist = np.array(total_min_dist) + + lc = LineCollection(segments, cmap=colormap, norm=norm) + lc.set_array(total_min_dist) + lc.set_linewidth(linewidth) + + line = ax_list[-1].add_collection(lc) + + # line collection does not autoscale the plot + ax_list[-1].set_ylim(np.min(self.split_phfreqs), np.max(self.split_phfreqs)) + + fig.colorbar(line, ax=ax_list) + + if plot_distances: + first_xx = 0 + for i, (q_l, min_dist) in enumerate(zip(self.split_qpoints, split_min_dist)): + xx = list(range(first_xx, first_xx + len(q_l))) + ax_list[0].plot(xx, min_dist, linewidth=linewidth, **kwargs) + + first_xx = xx[-1] + ax_list[0].grid(True) + return fig + + #def get_panel(self, **kwargs): + # """Return tabs with widgets to interact with the |PhononBandsPlotter| file.""" + # from abipy.panels.phonons import PhononBandsPlotterPanel + # return PhononBandsPlotterPanel(self).get_panel(**kwargs) + + class PHBST_Reader(ETSF_Reader): """ @@ -1956,6 +2976,12 @@ def read_phdispl_cart(self): """ return self.read_value("phdispl_cart", cmode="c") + def read_phangmom(self): + """ + Real array with the phonon angular momentum in units of hbar + """ + return self.read_value("phangmom", default=None) + def read_amu(self): """The atomic mass units""" return self.read_value("atomic_mass_units", default=None) @@ -1982,13 +3008,13 @@ class PhbstFile(AbinitNcFile, Has_Structure, Has_PhononBands, NotebookWriter): .. inheritance-diagram:: PhbstFile """ - def __init__(self, filepath): + def __init__(self, filepath: str): """ Args: path: path to the file """ super().__init__(filepath) - self.reader = PHBST_Reader(filepath) + self.reader = self.r = PHBST_Reader(filepath) # Initialize Phonon bands and add metadata from ncfile self._phbands = PhononBands.from_file(filepath) @@ -1996,7 +3022,7 @@ def __init__(self, filepath): def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """ String representation @@ -2014,7 +3040,7 @@ def to_string(self, verbose=0): return "\n".join(lines) @property - def structure(self): + def structure(self) -> Structure: """|Structure| object""" return self.phbands.structure @@ -2024,16 +3050,16 @@ def qpoints(self): return self.phbands.qpoints @property - def phbands(self): + def phbands(self) -> PhononBands: """|PhononBands| object""" return self._phbands - def close(self): + def close(self) -> None: """Close the file.""" - self.reader.close() + self.r.close() @lazy_property - def params(self): + def params(self) -> dict: """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" od = self.get_phbands_params() return od @@ -2074,11 +3100,10 @@ def get_phframe(self, qpoint, with_structure=True): d.update(self.structure.get_dict4pandas(with_spglib=True)) # Build the pandas Frame and add the q-point as attribute. - import pandas as pd - frame = pd.DataFrame(d, columns=list(d.keys())) - frame.qpoint = qpoint + df = pd.DataFrame(d, columns=list(d.keys())) + df.qpoint = qpoint - return frame + return df def get_phmode(self, qpoint, branch): """ @@ -2105,6 +3130,12 @@ def yield_figs(self, **kwargs): # pragma: no cover """ return self.yield_phbands_figs(**kwargs) + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + """ + return self.yield_phbands_plotly_figs(**kwargs) + def write_notebook(self, nbpath=None): """ Write an jupyter_ notebook to nbpath. If nbpath is None, a temporay file in the current @@ -2130,6 +3161,13 @@ def write_notebook(self, nbpath=None): "cv": {"eV": "$C_V(T)$ (eV/cell)", "Jmol": "$C_V(T)$ (J/mole)"}, } +_PLOTLY_THERMO_YLABELS = { # [name][units] --> string (no latex allowed here!) + "internal_energy": {"eV": "U(T) (eV/cell)", "Jmol": "U(T) (J/mole)"}, + "free_energy": {"eV": "F(T) + ZPE (eV/cell)", "Jmol": "F(T) + ZPE (J/mole)"}, + "entropy": {"eV": "S(T) (eV/cell)", "Jmol": "S(T) (J/mole)"}, + "cv": {"eV": "C_V(T) (eV/cell)", "Jmol": "C_V(T) (J/mole)"}, + } + class PhononDos(Function1D): """ @@ -2143,7 +3181,7 @@ class PhononDos(Function1D): """ @classmethod - def as_phdos(cls, obj, phdos_kwargs=None): + def as_phdos(cls, obj: Any, phdos_kwargs=None) -> PhononDos: """ Return an instance of |PhononDos| from a generic obj. Supports:: @@ -2188,7 +3226,7 @@ def as_phdos(cls, obj, phdos_kwargs=None): raise TypeError("Don't know how to create PhononDos object from type: `%s`" % type(obj)) @lazy_property - def iw0(self): + def iw0(self) -> int: """ Index of the first point in the mesh whose value is >= 0 """ @@ -2239,11 +3277,39 @@ def plot_dos_idos(self, ax, what="d", exchange_xy=False, units="eV", **kwargs): return lines + def plotly_dos_idos(self, fig, what="d", trace_name=None, exchange_xy=False, units="eV", rcd=None, **kwargs): + """ + Helper function to plot DOS/IDOS on the figure ``fig``. + + Args: + fig: |plotly.graph_objects.Figure| + what: string selecting the quantity to plot: + "d" for DOS, "i" for IDOS. chars can be concatenated + hence what="id" plots both IDOS and DOS. (default "d"). + exchange_xy: True to exchange axis + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. + kwargs: Passed to fig.add_scatter method. + """ + opts = [c.lower() for c in what] + + for c in opts: + f = {"d": self, "i": self.idos}[c] + if trace_name is None: + trace_name = {"d": 'DOS', "i": 'IDOS'}[c] + xfactor = abu.phfactor_ev2units(units) + # Don't rescale IDOS + yfactor = 1 / xfactor if c == "d" else 1 + + f.plotly_traces(fig, rcd=rcd, exchange_xy=exchange_xy, xfactor=xfactor, yfactor=yfactor, + name=trace_name, **kwargs) + # TODO: This should be called plot_dos_idos! @add_fig_kwargs - def plot(self, units="eV", **kwargs): + def plot(self, units="eV", **kwargs) -> Figure: """ - Plot Phonon DOS and IDOS on two distict plots. + Plot Phonon DOS and IDOS on two distinct plots. Args: units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). @@ -2260,19 +3326,46 @@ def plot(self, units="eV", **kwargs): ax1 = plt.subplot(gspec[0]) ax2 = plt.subplot(gspec[1]) - for ax in (ax1, ax2): - ax.grid(True) + for ax in (ax1, ax2): + ax.grid(True) + + ax2.set_xlabel('Energy %s' % abu.phunit_tag(units)) + ax1.set_ylabel("IDOS (states)") + ax2.set_ylabel("DOS %s" % abu.phdos_label_from_units(units)) + + self.plot_dos_idos(ax1, what="i", units=units, **kwargs) + self.plot_dos_idos(ax2, what="d", units=units, **kwargs) + + return fig + + # TODO: This should be called plotly_dos_idos! + @add_plotly_fig_kwargs + def plotly(self, units="eV", **kwargs): + """ + Plot Phonon DOS and IDOS on two distinct plots. + + Args: + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + kwargs: Keyword arguments passed to mod:`plotly`. + + Returns: |plotly.graph_objects.Figure| + """ + fig, _ = get_figs_plotly(nrows=2, ncols=1, subplot_titles=[], sharex=True, sharey=False, + vertical_spacing=0.05, row_heights=[1, 2]) - ax2.set_xlabel('Energy %s' % abu.phunit_tag(units)) - ax1.set_ylabel("IDOS (states)") - ax2.set_ylabel("DOS %s" % abu.phdos_label_from_units(units)) + fig.layout['xaxis2'].title = {'text': 'Energy %s' % abu.phunit_tag(units, unicode=True)} + fig.layout['yaxis1'].title = {'text': "IDOS (states)"} + fig.layout['yaxis2'].title = {'text': "DOS %s" % abu.phdos_label_from_units(units, unicode=True)} - self.plot_dos_idos(ax1, what="i", units=units, **kwargs) - self.plot_dos_idos(ax2, what="d", units=units, **kwargs) + rcd = PlotlyRowColDesc(0, 0, 2, 1) + self.plotly_dos_idos(fig, rcd=rcd, what="i", units=units, **kwargs) + rcd = PlotlyRowColDesc(1, 0, 2, 1) + self.plotly_dos_idos(fig, rcd=rcd, what="d", units=units, **kwargs) return fig - def get_internal_energy(self, tstart=5, tstop=300, num=50): + def get_internal_energy(self, tstart=5, tstop=300, num=50) -> Function1D: """ Returns the internal energy, in eV, in the harmonic approximation for different temperatures Zero point energy is included. @@ -2301,7 +3394,7 @@ def get_internal_energy(self, tstart=5, tstop=300, num=50): return Function1D(tmesh, vals) - def get_entropy(self, tstart=5, tstop=300, num=50): + def get_entropy(self, tstart=5, tstop=300, num=50) -> Function1D: """ Returns the entropy, in eV/K, in the harmonic approximation for different temperatures @@ -2328,7 +3421,7 @@ def get_entropy(self, tstart=5, tstop=300, num=50): return Function1D(tmesh, abu.kb_eVK * vals) - def get_free_energy(self, tstart=5, tstop=300, num=50): + def get_free_energy(self, tstart=5, tstop=300, num=50) -> Function1D: """ Returns the free energy, in eV, in the harmonic approximation for different temperatures Zero point energy is included. @@ -2345,7 +3438,7 @@ def get_free_energy(self, tstart=5, tstop=300, num=50): return Function1D(uz.mesh, uz.values - s.mesh * s.values) - def get_cv(self, tstart=5, tstop=300, num=50): + def get_cv(self, tstart=5, tstop=300, num=50) -> Function1D: """ Returns the constant-volume specific heat, in eV/K, in the harmonic approximation for different temperatures @@ -2375,7 +3468,7 @@ def get_cv(self, tstart=5, tstop=300, num=50): @add_fig_kwargs def plot_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_units=None, - quantities=None, fontsize=8, **kwargs): + quantities="all", fontsize=8, **kwargs) -> Figure: """ Plot thermodynamic properties from the phonon DOSes within the harmonic approximation. @@ -2385,15 +3478,14 @@ def plot_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_ num: int, optional Number of samples to generate. Default is 50. quantities: List of strings specifying the thermodynamic quantities to plot. Possible values: ["internal_energy", "free_energy", "entropy", "c_v"]. - None means all. units: eV for energies in ev/unit_cell, Jmol for results in J/mole. formula_units: the number of formula units per unit cell. If unspecified, the thermodynamic quantities will be given on a per-unit-cell basis. - fontsize: Legend and title fontsize. + fontsize: Label and title fontsize. Returns: |matplotlib-Figure| """ - quantities = list_strings(quantities) if quantities is not None else \ + quantities = list_strings(quantities) if quantities != "all" else \ ["internal_energy", "free_energy", "entropy", "cv"] # Build grid of plots. @@ -2405,6 +3497,7 @@ def plot_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_ ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, sharex=True, sharey=False, squeeze=False) + # don't show the last ax if num_plots is odd. if num_plots % ncols != 0: ax_mat[-1, -1].axis("off") @@ -2419,41 +3512,89 @@ def plot_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_ ax.set_title(qname, fontsize=fontsize) ax.grid(True) - ax.set_xlabel("Temperature (K)", fontsize=fontsize) + ax.set_xlabel("T (K)", fontsize=fontsize) ax.set_ylabel(_THERMO_YLABELS[qname][units], fontsize=fontsize) #ax.legend(loc="best", fontsize=fontsize, shadow=True) - if irow != nrows: + if irow != nrows-1: set_visible(ax, False, "xlabel") return fig - def to_pymatgen(self): + @add_plotly_fig_kwargs + def plotly_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_units=None, + quantities="all", fontsize=12, **kwargs): + """ + Plot thermodynamic properties from the phonon DOS within the harmonic approximation. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 50. + quantities: List of strings specifying the thermodynamic quantities to plot. + Possible values: ["internal_energy", "free_energy", "entropy", "c_v"]. + units: eV for energies in ev/unit_cell, Jmol for results in J/mole. + formula_units: the number of formula units per unit cell. If unspecified, the + thermodynamic quantities will be given on a per-unit-cell basis. + fontsize: Label and title fontsize. + + Returns |plotly.graph_objects.Figure| + """ + quantities = list_strings(quantities) if quantities != "all" else \ + ["internal_energy", "free_energy", "entropy", "cv"] + + # Build grid of plots. + ncols, nrows = 1, 1 + num_plots = len(quantities) + if num_plots > 1: + ncols = 2 + nrows = num_plots // ncols + num_plots % ncols + + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=quantities, sharex=True, sharey=False) + + for iq, qname in enumerate(quantities): + irow, icol = divmod(iq, ncols) + # Compute thermodynamic quantity associated to qname. + f1d = getattr(self, "get_" + qname)(tstart=tstart, tstop=tstop, num=num) + ys = f1d.values + if formula_units is not None: ys /= formula_units + if units == "Jmol": ys = ys * abu.e_Cb * abu.Avogadro + fig.add_scatter(x=f1d.mesh, y=ys, mode="lines", name=qname, row=irow + 1, col=icol + 1) + fig.layout.annotations[iq].font.size = fontsize + iax = iq + 1 + fig.layout['yaxis%u' % iax].title = {'text': _PLOTLY_THERMO_YLABELS[qname][units], 'font_size': fontsize} + + if irow == nrows - 1: + fig.layout['xaxis%u' % iax].title = {'text': 'T (K)', 'font_size': fontsize} + + return fig + + def to_pymatgen(self) -> PmgPhononDos: """ Creates a pymatgen :class:`PmgPhononDos` object """ factor = abu.phfactor_ev2units("thz") - return PmgPhononDos(self.mesh*factor, self.values/factor) + return PmgPhononDos(self.mesh * factor, self.values / factor) @property - def debye_temp(self): + def debye_temp(self) -> float: """ Debye temperature in K. """ integrals = (self * self.mesh ** 2).spline_integral() / self.spline_integral() - t_d = np.sqrt(5/3*integrals)/abu.kb_eVK + t_d = np.sqrt(5 / 3 * integrals) / abu.kb_eVK return t_d - def get_acoustic_debye_temp(self, nsites): + def get_acoustic_debye_temp(self, nsites) -> float: """ Acoustic Debye temperature in K, i.e. the Debye temperature divided by nsites**(1/3). Args: nsites: the number of sites in the cell. """ - return self.debye_temp/nsites**(1/3) + return self.debye_temp / nsites ** (1 / 3) class PhdosReader(ETSF_Reader): @@ -2462,7 +3603,7 @@ class PhdosReader(ETSF_Reader): .. note:: - Frequencies are in eV, DOSes are in states/eV. + Frequencies are in eV, DOSes are in states/eV per unit cell. """ @lazy_property def structure(self): @@ -2484,7 +3625,7 @@ def read_pjdos_atdir(self): """ return self.read_value("pjdos") - def read_phdos(self): + def read_phdos(self) -> PhononDos: """Return |PhononDos| object with the total phonon DOS""" return PhononDos(self.wmesh, self.read_value("phdos")) @@ -2511,7 +3652,7 @@ def read_pjdos_symbol_dict(self): where PhononDos is the contribution to the total DOS summed over atoms with chemical symbol ``symbol``. """ - # [ntypat, nomega] array with PH-DOS projected over atom types.""" + # [ntypat, nomega] array with PH-DOS projected over atom types. values = self.read_pjdos_type() od = OrderedDict() @@ -2552,19 +3693,23 @@ class PhdosFile(AbinitNcFile, Has_Structure, NotebookWriter): .. inheritance-diagram:: PhdosFile """ - def __init__(self, filepath): + def __init__(self, filepath: str): # Open the file, read data and create objects. super().__init__(filepath) - self.reader = r = PhdosReader(filepath) - self.wmesh = r.wmesh + self.reader = self.r = PhdosReader(filepath) + self.wmesh = self.r.wmesh - def close(self): + def close(self) -> None: """Close the file.""" - self.reader.close() + self.r.close() + + @lazy_property + def qptrlatt(self): + return self.r.read_value("qptrlatt") @lazy_property - def params(self): + def params(self) -> dict: """ :class:`OrderedDict` with the convergence parameters Used to construct |pandas-DataFrames|. @@ -2579,7 +3724,7 @@ def __str__(self): """Invoked by str""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """ Human-readable string with useful information such as structure... @@ -2597,14 +3742,14 @@ def to_string(self, verbose=0): return "\n".join(lines) @lazy_property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" - return self.reader.structure + return self.r.structure @lazy_property - def phdos(self): + def phdos(self) -> PhononDos: """|PhononDos| object.""" - return self.reader.read_phdos() + return self.r.read_phdos() @lazy_property def pjdos_symbol(self): @@ -2613,7 +3758,7 @@ def pjdos_symbol(self): where PhononDos is the contribution to the total DOS summed over atoms with chemical symbol `symbol`. """ - return self.reader.read_pjdos_symbol_dict() + return self.r.read_pjdos_symbol_dict() @lazy_property def msqd_dos(self): @@ -2621,13 +3766,13 @@ def msqd_dos(self): |MsqDos| object with Mean square displacement tensor in cartesian coords. Allows one to calculate Debye Waller factors by integration with 1/omega and the Bose-Einstein factor. """ - return self.reader.read_msq_dos() + return self.r.read_msq_dos() @add_fig_kwargs def plot_pjdos_type(self, units="eV", stacked=True, colormap="jet", alpha=0.7, exchange_xy=False, - ax=None, xlims=None, ylims=None, fontsize=12, **kwargs): + ax=None, xlims=None, ylims=None, fontsize=12, **kwargs) -> Figure: """ - Plot type-projected phonon DOS. + Plot type-projected phonon DOS with matplotlib. Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -2690,9 +3835,67 @@ def plot_pjdos_type(self, units="eV", stacked=True, colormap="jet", alpha=0.7, e return fig + @add_plotly_fig_kwargs + def plotly_pjdos_type(self, units="eV", stacked=True, exchange_xy=False, + fig=None, xlims=None, ylims=None, fontsize=12, **kwargs): + """ + Plot type-projected phonon DOS with plotly. + + Args: + fig: plotly figure or None if a new figure should be created. + stacked: True if DOS partial contributions should be stacked on top of each other. + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + exchange_xy: True to exchange x-y axis. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)``. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)``. + fontsize: legend and title fontsize. + + Returns: |plotly.graph_objects.Figure| + """ + lw = kwargs.pop("lw", 2) + factor = abu.phfactor_ev2units(units) + + fig, _ = get_fig_plotly(fig=fig) + + plotly_set_lims(fig, xlims, "x") + plotly_set_lims(fig, ylims, "y") + + xlabel = 'Frequency %s' % abu.phunit_tag(units, unicode=True) + ylabel = 'PJDOS %s' % abu.phdos_label_from_units(units, unicode=True) + plotly_set_xylabels(fig, xlabel, ylabel, exchange_xy) + + # Type projected DOSes. + cumulative = np.zeros(len(self.wmesh)) + + for i, (symbol, pjdos) in enumerate(self.pjdos_symbol.items()): + x, y = pjdos.mesh * factor, pjdos.values / factor + if exchange_xy: x, y = y, x + + if not stacked: + fig.add_scatter(x=x, y=y, mode='lines', name=symbol, line=dict(width=lw)) + else: + if not exchange_xy: + fig.add_scatter(x=x, y=cumulative + y, mode='lines', name=symbol, + line=dict(width=lw), fill='tonextx') + cumulative += y + else: + fig.add_scatter(x=cumulative + x, y=y, mode='lines', name=symbol, + line=dict(width=lw), fill='tonexty') + cumulative += x + + # Total PHDOS + x, y = self.phdos.mesh * factor, self.phdos.values / factor + if exchange_xy: x, y = y, x + fig.add_scatter(x=x, y=y, mode='lines', line=dict(width=lw, color='black'), name="Total PHDOS") + fig.layout.legend.font.size = fontsize + fig.layout.title.font.size = fontsize + + return fig + @add_fig_kwargs def plot_pjdos_cartdirs_type(self, units="eV", stacked=True, colormap="jet", alpha=0.7, - xlims=None, ylims=None, ax_list=None, fontsize=8, **kwargs): + xlims=None, ylims=None, ax_list=None, fontsize=8, **kwargs) -> Figure: """ Plot type-projected phonon DOS decomposed along the three cartesian directions. Three rows for each cartesian direction. Each row shows the contribution of each atomic type + Total Phonon DOS. @@ -2714,7 +3917,7 @@ def plot_pjdos_cartdirs_type(self, units="eV", stacked=True, colormap="jet", alp Returns: |matplotlib-Figure|. """ lw = kwargs.pop("lw", 2) - ntypat = self.structure.ntypesp + ntypat = self.structure.n_elems factor = abu.phfactor_ev2units(units) # Three rows for each direction. @@ -2726,7 +3929,7 @@ def plot_pjdos_cartdirs_type(self, units="eV", stacked=True, colormap="jet", alp cmap = plt.get_cmap(colormap) # symbol --> [three, number_of_frequencies] in cart dirs - pjdos_symbol_rc = self.reader.read_pjdos_symbol_xyz_dict() + pjdos_symbol_rc = self.r.read_pjdos_symbol_xyz_dict() xx = self.phdos.mesh * factor for idir, ax in enumerate(ax_list): @@ -2740,7 +3943,7 @@ def plot_pjdos_cartdirs_type(self, units="eV", stacked=True, colormap="jet", alp # Plot Type projected DOSes along cartesian direction idir cumulative = np.zeros(len(self.wmesh)) - for itype, symbol in enumerate(self.reader.chemical_symbols): + for itype, symbol in enumerate(self.r.chemical_symbols): color = cmap(float(itype) / max(1, ntypat - 1)) yy = pjdos_symbol_rc[symbol][idir] / factor @@ -2759,7 +3962,8 @@ def plot_pjdos_cartdirs_type(self, units="eV", stacked=True, colormap="jet", alp @add_fig_kwargs def plot_pjdos_cartdirs_site(self, view="inequivalent", units="eV", stacked=True, colormap="jet", alpha=0.7, - xlims=None, ylims=None, ax_list=None, fontsize=8, verbose=0, **kwargs): + xlims=None, ylims=None, ax_list=None, fontsize=8, + verbose=0, **kwargs) -> Figure: """ Plot phonon PJDOS for each atom in the unit cell. By default, only "inequivalent" atoms are shown. @@ -2782,7 +3986,7 @@ def plot_pjdos_cartdirs_site(self, view="inequivalent", units="eV", stacked=True """ # Define num_plots and ax2atom depending on view. factor = abu.phfactor_ev2units(units) - #natom, ntypat = len(self.structure), self.structure.ntypesp + #natom, ntypat = len(self.structure), self.structure.n_elems lw = kwargs.pop("lw", 2) # Select atoms. @@ -2797,7 +4001,7 @@ def plot_pjdos_cartdirs_site(self, view="inequivalent", units="eV", stacked=True cmap = plt.get_cmap(colormap) # [natom, three, nomega] array with PH-DOS projected over atoms and cartesian directions - pjdos_atdir = self.reader.read_pjdos_atdir() + pjdos_atdir = self.r.read_pjdos_atdir() xx = self.phdos.mesh * factor for idir, ax in enumerate(ax_list): @@ -2847,6 +4051,23 @@ def yield_figs(self, **kwargs): # pragma: no cover yield msqd_dos.plot(units=units, show=False) yield msqd_dos.plot_tensor(show=False) + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + units = kwargs.get("units", "mev") + yield self.phdos.plotly(units=units, show=False) + yield self.plotly_pjdos_type(units=units, show=False) + # Old formats do not have MSQDOS arrays. + #try: + # msqd_dos = self.msqd_dos + #except Exception: + # msqd_dos = None + #if msqd_dos is not None: + # yield msqd_dos.plot(units=units, show=False) + # yield msqd_dos.plot_tensor(show=False) + def write_notebook(self, nbpath=None): """ Write a jupyter_ notebook to nbpath. If ``nbpath`` is None, a temporay file in the current @@ -2869,14 +4090,14 @@ def write_notebook(self, nbpath=None): return self._write_nb_nbpath(nb, nbpath) - def to_pymatgen(self): + def to_pymatgen(self) -> PmgCompletePhononDos: """ Creates a pymatgen :class:`PmgCompletePhononDos` object. """ total_dos = self.phdos.to_pymatgen() # [natom, three, nomega] array with PH-DOS projected over atoms and cartesian directions""" - pjdos_atdir = self.reader.read_pjdos_atdir() + pjdos_atdir = self.r.read_pjdos_atdir() factor = abu.phfactor_ev2units("thz") summed_pjdos = np.sum(pjdos_atdir, axis=1) / factor @@ -2889,7 +4110,7 @@ def to_pymatgen(self): # FIXME: Remove. Use PhononBandsPlotter API. @add_fig_kwargs def phbands_gridplot(phb_objects, titles=None, phdos_objects=None, phdos_kwargs=None, - units="eV", width_ratios=(2, 1), fontsize=8, **kwargs): + units="eV", width_ratios=(2, 1), fontsize=8, **kwargs) -> Figure: """ Plot multiple phonon bandstructures and optionally DOSes on a grid. @@ -2964,7 +4185,7 @@ def phbands_gridplot(phb_objects, titles=None, phdos_objects=None, phdos_kwargs= return fig -def dataframe_from_phbands(phbands_objects, index=None, with_spglib=True): +def dataframe_from_phbands(phbands_objects, index=None, with_spglib=True) -> pd.DataFrame: """ Build pandas dataframe with the most important results available in a list of band structures. @@ -2981,7 +4202,6 @@ def dataframe_from_phbands(phbands_objects, index=None, with_spglib=True): # Use OrderedDict to have columns ordered nicely. odict_list = [(phbands.get_dict4pandas(with_spglib=with_spglib)) for phbands in phbands_list] - import pandas as pd return pd.DataFrame(odict_list, index=index, columns=list(odict_list[0].keys()) if odict_list else None) @@ -3001,8 +4221,9 @@ class PhononBandsPlotter(NotebookWriter): plotter.gridplot() """ # Used in iter_lineopt to generate matplotlib linestyles. - _LINE_COLORS = ["b", "r", "g", "m", "y", "k"] + _LINE_COLORS = ["blue", "red", "green", "magenta", "yellow", "black"] _LINE_STYLES = ["-", ":", "--", "-.",] + _LINE_STYLES_PLOTLY = ['solid', "dot", 'dash', 'dashdot',] _LINE_WIDTHS = [2, ] def __init__(self, key_phbands=None, key_phdos=None, phdos_kwargs=None): @@ -3026,6 +4247,9 @@ def __init__(self, key_phbands=None, key_phdos=None, phdos_kwargs=None): if len(key_phbands) != len(key_phdos): raise ValueError("key_phbands and key_phdos must have the same number of elements.") + def __len__(self): + return len(self._bands_dict) + def __repr__(self): """Invoked by repr""" return self.to_string(func=repr) @@ -3034,7 +4258,13 @@ def __str__(self): """Invoked by str""" return self.to_string(func=str) - def add_plotter(self, other): + def append_plotter(self, other): + """Append phbands and phdos from other plotter to self.""" + for label, phbands in other._bands_dict.items(): + phdos = self._phdoses_dict.get(label, None) + self.add_phbands(label, phbands, phdos=phdos) + + def add_plotter(self, other: PhononBandsPlotter) -> PhononBandsPlotter: """Merge two plotters, return new plotter.""" if not isinstance(other, self.__class__): raise TypeError("Don't know to to add %s to %s" % (other.__class__, self.__class__)) @@ -3044,20 +4274,20 @@ def add_plotter(self, other): return self.__class__(key_phbands=key_phbands, key_phdos=key_phdos) - def to_string(self, func=str, verbose=0): + def to_string(self, func=str, verbose: int = 0) -> str: """String representation.""" lines = [] app = lines.append for i, (label, phbands) in enumerate(self.phbands_dict.items()): app("[%d] %s --> %s" % (i, label, func(phbands))) - if self.phdoses_dict: + if self.phdoses_dict and verbose: for i, (label, phdos) in enumerate(self.phdoses_dict.items()): app("[%d] %s --> %s" % (i, label, func(phdos))) return "\n".join(lines) - def has_same_formula(self): + def has_same_formula(self) -> bool: """ True of plotter contains structures with same chemical formula. """ @@ -3065,7 +4295,7 @@ def has_same_formula(self): if structures and any(s.formula != structures[0].formula for s in structures): return False return True - def get_phbands_frame(self, with_spglib=True): + def get_phbands_frame(self, with_spglib=True) -> pd.DataFrame: """ Build a |pandas-DataFrame| with the most important results available in the band structures. """ @@ -3073,7 +4303,7 @@ def get_phbands_frame(self, with_spglib=True): index=list(self.phbands_dict.keys()), with_spglib=with_spglib) @property - def phbands_dict(self): + def phbands_dict(self) -> dict: """Dictionary with the mapping label --> phbands.""" return self._bands_dict @@ -3081,17 +4311,17 @@ def phbands_dict(self): bands_dict = phbands_dict @property - def phdoses_dict(self): + def phdoses_dict(self) -> dict: """Dictionary with the mapping label --> phdos.""" return self._phdoses_dict @property - def phbands_list(self): + def phbands_list(self) -> list[PhononBands]: """"List of |PhononBands| objects.""" return list(self._bands_dict.values()) @property - def phdoses_list(self): + def phdoses_list(self) -> list[PhononDos]: """"List of |PhononDos|.""" return list(self._phdoses_dict.values()) @@ -3100,7 +4330,12 @@ def iter_lineopt(self): for o in itertools.product(self._LINE_WIDTHS, self._LINE_STYLES, self._LINE_COLORS): yield {"linewidth": o[0], "linestyle": o[1], "color": o[2]} - def add_phbands(self, label, bands, phdos=None, dos=None, phdos_kwargs=None): + def iter_lineopt_plotly(self): + """Generates plotly linestyles.""" + for o in itertools.product(self._LINE_WIDTHS, self._LINE_STYLES_PLOTLY, self._LINE_COLORS): + yield {"line_width": o[0], "line_dash": o[1], "line_color": o[2]} + + def add_phbands(self, label, bands, phdos=None, dos=None, phdos_kwargs=None) -> None: """ Adds a band structure for plotting. @@ -3127,9 +4362,9 @@ def add_phbands(self, label, bands, phdos=None, dos=None, phdos_kwargs=None): @add_fig_kwargs def combiplot(self, qlabels=None, units='eV', ylims=None, width_ratios=(2, 1), fontsize=8, - linestyle_dict=None, **kwargs): + linestyle_dict=None, **kwargs) -> Figure: r""" - Plot the band structure and the DOS on the same figure. + Plot the band structure and the DOS on the same figure with matplotlib. Use ``gridplot`` to plot band structures on different figures. Args: @@ -3141,7 +4376,7 @@ def combiplot(self, qlabels=None, units='eV', ylims=None, width_ratios=(2, 1), f or scalar e.g. ``left``. If left (right) is None, default values are used width_ratios: Ratio between the width of the phonon bands plots and the DOS plots. Used if plotter has DOSes. - fontsize: fontsize for titles and legend. + fontsize: fontsize for legend. linestyle_dict: Dictionary mapping labels to matplotlib linestyle options. Returns: |matplotlib-Figure| @@ -3175,7 +4410,7 @@ def combiplot(self, qlabels=None, units='eV', ylims=None, width_ratios=(2, 1), f i = -1 nqpt_list = [phbands.nqpt for phbands in self._bands_dict.values()] if any(nq != nqpt_list[0] for nq in nqpt_list): - cprint("WARNING combiblot: Bands have different number of k-points:\n%s" % str(nqpt_list), "yellow") + cprint("WARNING combiplot: Bands have different number of k-points:\n%s" % str(nqpt_list), "yellow") for (label, phbands), lineopt in zip(self._bands_dict.items(), self.iter_lineopt()): i += 1 @@ -3208,6 +4443,73 @@ def combiplot(self, qlabels=None, units='eV', ylims=None, width_ratios=(2, 1), f return fig + @add_plotly_fig_kwargs + def combiplotly(self, qlabels=None, units='eV', ylims=None, width_ratios=(2, 1), fontsize=12, + linestyle_dict=None, **kwargs): + r""" + Plot the band structure and the DOS on the same figure with plotly. + Use ``gridplotply`` to plot band structures on different figures. + + Args: + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + qlabels: dictionary whose keys are tuples with the reduced coordinates of the k-points. + The values are the labels e.g. ``klabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)``. + width_ratios: Ratio between the width of the phonon bands plots and the DOS plots. + Used if plotter has DOSes. + fontsize: fontsize for titles and legend. + linestyle_dict: Dictionary mapping labels to linestyle options passed to plotly.graph_objects.scatter. + + Returns: |plotly.graph_objects.Figure| + """ + if self.phdoses_dict: + nrows, ncols = (1, 2) + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=[], sharex=False, sharey=True, + horizontal_spacing=0.02, column_widths=width_ratios) + else: + nrows, ncols = (1, 1) + fig, _ = get_fig_plotly() + + plotly_set_lims(fig, ylims, 'y') + + # Plot phonon bands. + my_kwargs, opts_label = kwargs.copy(), {} + i = -1 + nqpt_list = [phbands.nqpt for phbands in self._bands_dict.values()] + if any(nq != nqpt_list[0] for nq in nqpt_list): + cprint("WARNING combiblot: Bands have different number of k-points:\n%s" % str(nqpt_list), "yellow") + + for (label, phbands), lineopt in zip(self._bands_dict.items(), self.iter_lineopt_plotly()): + i += 1 + if linestyle_dict is not None and label in linestyle_dict: + my_kwargs.update(linestyle_dict[label]) + else: + my_kwargs.update(lineopt) + opts_label[label] = my_kwargs.copy() + + # Use relative paths if label is a file. + if os.path.isfile(label): label = os.path.relpath(label) + + rcd = PlotlyRowColDesc(0, 0, nrows, ncols) + phbands.plotly_traces(fig, branch=None, rcd=rcd, units=units, name=label, showlegend=True, **my_kwargs) + + # Set ticks and labels, legends. + if i == 0: + phbands.decorate_plotly(fig, qlabels=qlabels, units=units, iax=rcd.iax) + + fig.layout.legend.font.size = fontsize + fig.layout.title.font.size = fontsize + + # Add DOSes + if self.phdoses_dict: + rcd = PlotlyRowColDesc(0, 1, nrows, ncols) + for label, dos in self.phdoses_dict.items(): + dos.plotly_dos_idos(fig, rcd=rcd, exchange_xy=True, units=units, trace_name=label, legendgroup=label, + showlegend=False, **opts_label[label]) + + return fig + def plot(self, *args, **kwargs): """An alias for combiplot.""" return self.combiplot(*args, **kwargs) @@ -3220,10 +4522,18 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.combiplot(show=False) yield self.combiboxplot(show=False) + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """This function *generates* a predefined list of matplotlib figures with minimal input from the user.""" + yield self.gridplotly(show=False) + #yield self.boxplotly(show=False) + if self.has_same_formula(): + yield self.combiplotly(show=False) + #yield self.combiboxplotly(show=False) + @add_fig_kwargs - def gridplot(self, with_dos=True, units="eV", fontsize=8, **kwargs): + def gridplot(self, with_dos=True, units="eV", fontsize=8, **kwargs) -> Figure: """ - Plot multiple phonon bandstructures and optionally DOSes on a grid. + Plot multiple phonon bandstructures and optionally DOSes on a grid with matplotlib. Args: units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). @@ -3242,9 +4552,68 @@ def gridplot(self, with_dos=True, units="eV", fontsize=8, **kwargs): return phbands_gridplot(phb_objects, titles=titles, phdos_objects=phdos_objects, units=units, fontsize=fontsize, show=False) + @add_plotly_fig_kwargs + def gridplotly(self, with_dos=True, units="eV", fontsize=12, **kwargs): + """ + Plot multiple phonon bandstructures and optionally DOSes on a grid with plotly. + + Args: + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + with_dos: True to plot phonon DOS (if available). + fontsize: legend and title fontsize. + + Returns: |plotly.graph_objects.Figure| + """ + titles = list(self._bands_dict.keys()) + phb_objects = list(self._bands_dict.values()) + phdos_objects = None + plot_with_phdos = False + if self.phdoses_dict and with_dos: + phdos_objects = list(self.phdoses_dict.values()) + plot_with_phdos = True + + # Build grid of plots. + ncols, nrows = 1, 1 + num_plots = len(phb_objects) + + if plot_with_phdos: + # Special treatment required for phbands with DOS. + num_plots *= 2 + titles = [] + for k in self._bands_dict.keys(): + titles.extend([k, ""]) + + if num_plots > 1: + ncols = 2 + nrows = num_plots // ncols + num_plots % ncols + + sharex = not plot_with_phdos + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=titles, sharex=sharex, sharey=False) + + if plot_with_phdos: + #print("Warning: plot_with_phdos is still under development!!!!!!!!!!") + jj = 0 + for i, phbands in enumerate(phb_objects): + phdos = phdos_objects[i] + row, col = divmod(jj, ncols) + jj += 2 + rcd_phbands = PlotlyRowColDesc(row, col, nrows, ncols) + rcd_phdos = PlotlyRowColDesc(row, col + 1, nrows, ncols) + phbands.plotly_with_phdos(phdos, fig=fig, rcd_phbands=rcd_phbands, rcd_phdos=rcd_phdos, + units=units, fontsize=fontsize, + width_ratios=(2, 1), show=False) + else: + for i, phbands in enumerate(phb_objects): + row, col = divmod(i, ncols) + rcd = PlotlyRowColDesc(row, col, nrows, ncols) + phbands.plotly(fig=fig, rcd=rcd, units=units, fontsize=fontsize, show=False) + + return fig + @add_fig_kwargs def gridplot_with_hue(self, hue, with_dos=False, units="eV", width_ratios=(2, 1), - ylims=None, fontsize=8, **kwargs): + ylims=None, fontsize=8, **kwargs) -> Figure: """ Plot multiple phonon bandstructures and optionally DOSes on a grid. Group results by ``hue``. @@ -3369,9 +4738,9 @@ def gridplot_with_hue(self, hue, with_dos=False, units="eV", width_ratios=(2, 1) return fig @add_fig_kwargs - def boxplot(self, mode_range=None, units="eV", swarm=False, **kwargs): + def boxplot(self, mode_range=None, units="eV", swarm=False, **kwargs) -> Figure: """ - Use seaborn_ to draw a box plot to show distributions of eigenvalues with respect to the band index. + Use seaborn_ to draw a box plot to show distribution of eigenvalues with respect to the band index. Band structures are drawn on different subplots. Args: @@ -3401,9 +4770,9 @@ def boxplot(self, mode_range=None, units="eV", swarm=False, **kwargs): return fig @add_fig_kwargs - def combiboxplot(self, mode_range=None, units="eV", swarm=False, ax=None, **kwargs): + def combiboxplot(self, mode_range=None, units="eV", swarm=False, ax=None, **kwargs) -> Figure: """ - Use seaborn_ to draw a box plot comparing the distributions of the frequencies. + Use seaborn_ to draw a box plot comparing the distribution of the frequencies. Phonon Band structures are drawn on the same plot. Args: @@ -3414,18 +4783,17 @@ def combiboxplot(self, mode_range=None, units="eV", swarm=False, ax=None, **kwar ax: |matplotlib-Axes| or None if a new figure should be created. kwargs: Keyword arguments passed to seaborn_ boxplot. """ - frames = [] + df_list = [] for label, phbands in self.phbands_dict.items(): # Get the dataframe, select bands and add column with label frame = phbands.get_dataframe() if mode_range is not None: frame = frame[(frame["mode"] >= mode_range[0]) & (frame["mode"] < mode_range[1])] frame["label"] = label - frames.append(frame) + df_list.append(frame) - # Merge frames ignoring index (not meaningful here) - import pandas as pd - data = pd.concat(frames, ignore_index=True) + # Merge df_list ignoring index (not meaningful here) + data = pd.concat(df_list, ignore_index=True) ax, fig, plt = get_ax_fig_plt(ax=ax) ax.grid(True) @@ -3443,7 +4811,7 @@ def combiboxplot(self, mode_range=None, units="eV", swarm=False, ax=None, **kwar return fig @add_fig_kwargs - def plot_phdispl(self, qpoint, **kwargs): + def plot_phdispl(self, qpoint, **kwargs) -> Figure: """ Plot vertical bars with the contribution of the different atomic types to the phonon displacements at a given q-point. One panel for all |PhononBands| stored in the plotter. @@ -3560,10 +4928,10 @@ def _repr_html_(self): """Integration with jupyter_ notebooks.""" return self.ipw_select_plot() - def get_panel(self): + def get_panel(self, **kwargs): """Return tabs with widgets to interact with the |PhononBandsPlotter| file.""" from abipy.panels.phonons import PhononBandsPlotterPanel - return PhononBandsPlotterPanel(self).get_panel() + return PhononBandsPlotterPanel(self).get_panel(**kwargs) def write_notebook(self, nbpath=None): """ @@ -3606,11 +4974,11 @@ def __init__(self, key_phdos=None, phdos_kwargs=None): self.add_phdos(label, phdos, phdos_kwargs=phdos_kwargs) @property - def phdos_list(self): + def phdos_list(self) -> list[PhononDos]: """List of phonon DOSes""" return list(self._phdoses_dict.values()) - def add_phdos(self, label, phdos, phdos_kwargs=None): + def add_phdos(self, label, phdos, phdos_kwargs=None) -> None: """ Adds a DOS for plotting. @@ -3627,14 +4995,14 @@ def add_phdos(self, label, phdos, phdos_kwargs=None): #def has_same_formula(self): # """ - # True of plotter contains structures with same chemical formula. + # True of plotter contains structures with the same chemical formula. # """ # structures = [phdos.structure for phdos in self._phdoses_dict.values()] # if structures and any(s.formula != structures[0].formula for s in structures): return False # return True @add_fig_kwargs - def combiplot(self, ax=None, units="eV", xlims=None, ylims=None, fontsize=8, **kwargs): + def combiplot(self, ax=None, units="eV", xlims=None, ylims=None, fontsize=8, **kwargs) -> Figure: """ Plot DOSes on the same figure. Use ``gridplot`` to plot DOSes on different figures. @@ -3667,20 +5035,50 @@ def combiplot(self, ax=None, units="eV", xlims=None, ylims=None, fontsize=8, **k return fig + @add_plotly_fig_kwargs + def combiplotly(self, fig=None, units="eV", xlims=None, ylims=None, fontsize=8, **kwargs): + """ + Plot DOSes on the same plotly figure. Use ``gridplotly`` to plot DOSes on different figures. + + Args: + fig: plotly figure or None if a new figure should be created. + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). + Case-insensitive. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)``. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)``. + fontsize: Legend and title fontsize. + + Returns: |plotly.graph_objects.Figure| + """ + fig, _ = get_fig_plotly(fig=fig) + plotly_set_lims(fig, xlims, "x") + plotly_set_lims(fig, ylims, "y") + + fig.layout['xaxis1'].title = {'text': 'Energy %s' % abu.phunit_tag(units, unicode=True)} + fig.layout['yaxis1'].title = {"text": 'DOS %s' % abu.phdos_label_from_units(units, unicode=True)} + + for label, dos in self._phdoses_dict.items(): + dos.plotly_dos_idos(fig, units=units, trace_name="DOS: %s" % label) + + # Set legends. + #ax.legend(lines, legends, loc='best', fontsize=fontsize, shadow=True) + + return fig + def plot(self, **kwargs): """An alias for combiplot.""" return self.combiplot(**kwargs) @add_fig_kwargs - def gridplot(self, units="eV", xlims=None, ylims=None, fontsize=8, **kwargs): + def gridplot(self, units="eV", xlims=None, ylims=None, fontsize=8, **kwargs) -> Figure: """ - Plot multiple DOSes on a grid. + Plot multiple DOSes on a grid with matplotlib. Args: units: eV for energies in ev/unit_cell, Jmol for results in J/mole. xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used - fontsize: Legend and title fontsize. + fontsize: Axis_label and subtitle fontsize. Returns: |matplotlib-Figure| """ @@ -3716,11 +5114,51 @@ def gridplot(self, units="eV", xlims=None, ylims=None, fontsize=8, **kwargs): return fig + @add_plotly_fig_kwargs + def gridplotly(self, units="eV", xlims=None, ylims=None, fontsize=12, **kwargs): + """ + Plot multiple DOSes on a grid with plotly. + + Args: + units: eV for energies in ev/unit_cell, Jmol for results in J/mole. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + fontsize: Axis_label and subtitle fontsize. + + Returns: |plotly.graph_objects.Figure| + """ + titles = list(self._phdoses_dict.keys()) + phdos_list = list(self._phdoses_dict.values()) + + nrows, ncols = 1, 1 + numeb = len(phdos_list) + if numeb > 1: + ncols = 2 + nrows = numeb // ncols + numeb % ncols + + # Build Grid Fig + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=titles, sharex=True, sharey=True) + + x_unit = abu.phunit_tag(units, unicode=True) + y_unit = abu.phdos_label_from_units(units, unicode=True) + for i, (label, phdos) in enumerate(self._phdoses_dict.items()): + row, col = divmod(i, ncols) + rcd = PlotlyRowColDesc(row, col, nrows, ncols) + phdos.plotly_dos_idos(fig, rcd=rcd, units=units, trace_name=label, showlegend=False) + fig.layout['xaxis'+str(rcd.iax)].title = {'text': 'Energy %s' % x_unit, "font": {"size" : fontsize}} + if col%ncols==0: + fig.layout['yaxis'+str(rcd.iax)].title = {"text": 'DOS %s' % y_unit, "font": {"size" : fontsize}} + fig.layout.annotations[rcd.iax-1].font.size = fontsize + plotly_set_lims(fig, xlims, "x") + plotly_set_lims(fig, ylims, "y") + + return fig + @add_fig_kwargs def plot_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_units=1, - quantities="all", fontsize=8, **kwargs): + quantities="all", fontsize=8, **kwargs) -> Figure: """ - Plot thermodynamic properties from the phonon DOS within the harmonic approximation. + Plot thermodynamic properties from the phonon DOS within the harmonic approximation + for all the files in the plotter with matplotlib. Args: tstart: The starting value (in Kelvin) of the temperature mesh. @@ -3731,7 +5169,7 @@ def plot_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_ thermodynamic quantities will be given on a per-unit-cell basis. quantities: List of strings specifying the thermodynamic quantities to plot. Possible values in ["internal_energy", "free_energy", "entropy", "c_v"]. - fontsize: Legend and title fontsize. + fontsize: Legend, axis_label and subtitles fontsize. Returns: |matplotlib-Figure| """ @@ -3762,11 +5200,72 @@ def plot_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_ ax.set_title(qname, fontsize=fontsize) ax.grid(True) ax.set_ylabel(_THERMO_YLABELS[qname][units], fontsize=fontsize) - ax.set_xlabel("Temperature (K)", fontsize=fontsize) + ax.set_xlabel("T (K)", fontsize=fontsize) if iax == 0: ax.legend(loc="best", fontsize=fontsize, shadow=True) - #fig.tight_layout() + return fig + + @add_plotly_fig_kwargs + def plotly_harmonic_thermo(self, tstart=5, tstop=300, num=50, units="eV", formula_units=1, + quantities="all", fontsize=12, **kwargs): + """ + Plot thermodynamic properties from the phonon DOS within the harmonic approximation + for all the files in the plotter with plotly. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 50. + units: eV for energies in ev/unit_cell, Jmol for results in J/mole. + formula_units: the number of formula units per unit cell. If unspecified, the + thermodynamic quantities will be given on a per-unit-cell basis. + quantities: List of strings specifying the thermodynamic quantities to plot. + Possible values in ["internal_energy", "free_energy", "entropy", "c_v"]. + fontsize: Legend, axis_label and subtitle fontsize. + + Returns: |plotly.graph_objects.Figure| + """ + quantities = list_strings(quantities) if quantities != "all" else \ + ["internal_energy", "free_energy", "entropy", "cv"] + + # Build grid of plots. + ncols, nrows = 1, 1 + num_plots = len(quantities) + if num_plots > 1: + ncols = 2 + nrows = num_plots // ncols + num_plots % ncols + + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=quantities, sharex=True, sharey=False) + + import plotly.colors as pcolors + l2color = pcolors.DEFAULT_PLOTLY_COLORS + + for iq, qname in enumerate(quantities): + irow, icol = divmod(iq, ncols) + for i, (label, phdos) in enumerate(self._phdoses_dict.items()): + opt = {"color": l2color[i]} + # Compute thermodynamic quantity associated to qname. + f1d = getattr(phdos, "get_" + qname)(tstart=tstart, tstop=tstop, num=num) + ys = f1d.values + if formula_units != 1: ys /= formula_units + if units == "Jmol": ys = ys * abu.e_Cb * abu.Avogadro + if iq == 0: + fig.add_scatter(x=f1d.mesh, y=ys, mode="lines", name=label, legendgroup=label, showlegend=True, + line=opt, row=irow + 1, col=icol + 1) + else: + fig.add_scatter(x=f1d.mesh, y=ys, mode="lines", name=label, legendgroup=label, showlegend=False, + line=opt, row=irow + 1, col=icol + 1) + + fig.layout.annotations[iq].font.size = fontsize + fig.layout.legend.font.size = fontsize + + iax = iq + 1 + fig.layout['yaxis%u' % iax].title = {'text': _PLOTLY_THERMO_YLABELS[qname][units], 'font_size': fontsize} + + if irow == nrows - 1: + fig.layout['xaxis%u' % iax].title = {'text': 'T (K)', 'font_size': fontsize} + return fig def ipw_select_plot(self): # pragma: no cover @@ -3806,6 +5305,15 @@ def yield_figs(self, **kwargs): # pragma: no cover #if self.has_same_formula(): yield self.combiplot(show=False) + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + #yield self.gridplotply(show=False) + #yield self.plotly_harmonic_thermo(show=False) + #if self.has_same_formula(): + yield self.combiplotly(show=False) + def write_notebook(self, nbpath=None): """ Write an jupyter notebook to nbpath. If nbpath is None, a temporay file in the current @@ -3827,7 +5335,7 @@ def write_notebook(self, nbpath=None): return self._write_nb_nbpath(nb, nbpath) -class RobotWithPhbands(object): +class RobotWithPhbands: """ Mixin class for robots associated to files with |PhononBands|. """ @@ -3855,7 +5363,7 @@ def combiboxplot_phbands(self, **kwargs): # """Wraps gridplot method of |ElectronDosPlotter|. kwargs passed to gridplot.""" # return self.get_phdos_plotter().gridplot(**kwargs) - def get_phbands_plotter(self, filter_abifile=None, cls=None): + def get_phbands_plotter(self, filter_abifile=None, cls=None) -> PhononBandsPlotter: """ Build and return an instance of |PhononBandsPlotter| or a subclass is cls is not None. @@ -3872,7 +5380,7 @@ def get_phbands_plotter(self, filter_abifile=None, cls=None): return plotter - def get_phbands_dataframe(self, with_spglib=True): + def get_phbands_dataframe(self, with_spglib=True) -> pd.DataFrame: """ Build a |pandas-dataframe| with the most important results available in the band structures. """ @@ -3880,7 +5388,7 @@ def get_phbands_dataframe(self, with_spglib=True): index=self.labels, with_spglib=with_spglib) @add_fig_kwargs - def plot_phdispl(self, qpoint, **kwargs): + def plot_phdispl(self, qpoint, **kwargs) -> Figure: """ Plot vertical bars with the contribution of the different atomic types to the phonon displacements at a given q-point. One panel for all phbands stored in the plotter. diff --git a/abipy/dfpt/phtk.py b/abipy/dfpt/phtk.py index 274ed2ccd..98df80412 100644 --- a/abipy/dfpt/phtk.py +++ b/abipy/dfpt/phtk.py @@ -2,6 +2,8 @@ """ Phonon Toolkit: This module gathers low-level tools to operate on phonons. """ +from __future__ import annotations + import warnings import sys import numpy as np @@ -14,11 +16,11 @@ # TODO: amu should become mandatory. -def get_dyn_mat_eigenvec(phdispl, structure, amu=None, amu_symbol=None): +def get_dyn_mat_eigenvec(phdispl, structure, amu=None, amu_symbol=None) -> np.ndarray: """ Converts the phonon displacements to the orthonormal eigenvectors of the dynamical matrix. - Small discrepancies with the original values may be expected due to the different values of the atomic masses in - abinit and pymatgen. + Small discrepancies with the original values may be expected due to the different values + of the atomic masses in abinit and pymatgen. .. note:: @@ -41,7 +43,7 @@ def get_dyn_mat_eigenvec(phdispl, structure, amu=None, amu_symbol=None): Returns: A |numpy-array| of the same shape as phdispl containing the eigenvectors of the dynamical matrix """ - eigvec = np.zeros(np.shape(phdispl), dtype=np.complex) + eigvec = np.zeros(np.shape(phdispl), dtype=complex) if amu is not None and amu_symbol is not None: raise ValueError("Only one between amu and amu_symbol should be provided!") @@ -59,14 +61,14 @@ def get_dyn_mat_eigenvec(phdispl, structure, amu=None, amu_symbol=None): return eigvec -def match_eigenvectors(v1, v2): +def match_eigenvectors(v1, v2) -> np.ndarray: """ Given two list of vectors, returns the pair matching based on the complex scalar product. Returns the indices of the second list that match the vectors of the first list in ascending order. """ prod = np.absolute(np.dot(v1, v2.transpose().conjugate())) - indices = np.zeros(len(v1), dtype=np.int) + indices = np.zeros(len(v1), dtype=int) missing_v1 = [True] * len(v1) missing_v2 = [True] * len(v1) for m in reversed(np.argsort(prod, axis=None)): @@ -85,7 +87,7 @@ def match_eigenvectors(v1, v2): class NonAnalyticalPh(Has_Structure): """ Phonon data at gamma including non analytical contributions - Read from anaddb.nc + Usually read from anaddb.nc """ def __init__(self, structure, directions, phfreqs, phdispl_cart, amu=None): @@ -112,33 +114,41 @@ def __init__(self, structure, directions, phfreqs, phdispl_cart, amu=None): self.amu_symbol[el.symbol] = m @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> NonAnalyticalPh: """ - Reads the non analytical directions, frequencies and displacements from the anaddb.nc file specified. + Reads the non analytical directions, frequencies and displacements from the nc file specified (usually anaddb.nc) Non existence of displacements is accepted for compatibility with abinit 8.0.6 - Raises an error if the other values are not present in anaddb.nc. + Raises an error if the other values are not present in the netcdf file. """ with ETSF_Reader(filepath) as r: - directions = r.read_value("non_analytical_directions") - phfreq = r.read_value("non_analytical_phonon_modes") + return cls.from_ncreader(r) + + @classmethod + def from_ncreader(cls, nc_reader) -> NonAnalyticalPh: + """ + Build the object from a NetcdfReader. + """ + r = nc_reader + directions = r.read_value("non_analytical_directions") + phfreq = r.read_value("non_analytical_phonon_modes") - # need a default as the first abinit version including IFCs in the netcdf doesn't have this attribute - phdispl_cart = r.read_value("non_analytical_phdispl_cart", cmode="c", default=None) + # need a default as the first abinit version including IFCs in the netcdf doesn't have this attribute + phdispl_cart = r.read_value("non_analytical_phdispl_cart", cmode="c", default=None) + structure = r.read_structure() - structure = r.read_structure() + amu_list = r.read_value("atomic_mass_units", default=None) - amu_list = r.read_value("atomic_mass_units", default=None) - if amu_list is not None: - # ntypat arrays - atomic_numbers = r.read_value("atomic_numbers") - amu = {at: a for at, a in zip(atomic_numbers, amu_list)} - else: - amu = None + if amu_list is not None: + # ntypat arrays + atomic_numbers = r.read_value("atomic_numbers") + amu = {at: a for at, a in zip(atomic_numbers, amu_list)} + else: + amu = None - return cls(structure=structure, directions=directions, phfreqs=phfreq, phdispl_cart=phdispl_cart, amu=amu) + return cls(structure=structure, directions=directions, phfreqs=phfreq, phdispl_cart=phdispl_cart, amu=amu) @lazy_property - def dyn_mat_eigenvect(self): + def dyn_mat_eigenvect(self) -> np.ndarray: """ [ndirection, 3*natom, 3*natom] array with the orthonormal eigenvectors of the dynamical matrix. in Cartesian coordinates. @@ -150,7 +160,7 @@ def structure(self): """|Structure| object.""" return self._structure - def index_direction(self, direction, cartesian=False): + def index_direction(self, direction, cartesian=False) -> int: """ Returns: the index of direction. Raises: `ValueError` if not found. @@ -173,7 +183,7 @@ def index_direction(self, direction, cartesian=False): raise ValueError("Cannot find direction: `%s` with cartesian: `%s` in non_analytical cartesian directions:\n%s" % (str(direction), cartesian, str(self.directions))) - def has_direction(self, direction, cartesian=False): + def has_direction(self, direction, cartesian=False) -> bool: """ Checks if the input direction is among those available. @@ -240,8 +250,7 @@ def log_message(self, format, *args): # Create threads python server.url = 'http://{}:{}'.format(host, server.server_port) from threading import Thread - t = Thread(target=server.serve_forever) - t.daemon = True + t = Thread(target=server.serve_forever, daemon=True) t.start() # Open website with the file diff --git a/abipy/dfpt/qha.py b/abipy/dfpt/qha.py index a32deb4d5..6e0474eb0 100644 --- a/abipy/dfpt/qha.py +++ b/abipy/dfpt/qha.py @@ -1,15 +1,19 @@ # coding: utf-8 -import numpy as np +from __future__ import annotations + import os import abc +import numpy as np import abipy.core.abinit_units as abu from scipy.interpolate import UnivariateSpline from monty.collections import dict2namedtuple from monty.functools import lazy_property +from monty.termcolor import cprint from pymatgen.analysis.eos import EOS from abipy.core.func1d import Function1D from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt +from abipy.tools.typing import Figure from abipy.electrons.gsr import GsrFile from abipy.dfpt.ddb import DdbFile from abipy.dfpt.phonons import PhononBandsPlotter, PhononDos, PhdosFile @@ -20,7 +24,7 @@ class AbstractQHA(metaclass=abc.ABCMeta): """ Abstract class for the quasi-harmonic approximation analysis. Provides some basic methods and plotting utils, plus a converter to write input files for phonopy-qha or to - generate an instance of phonopy.qha.QHA. These can be used to obtain other quantities and plots. + generate an instance of phonopy.qha.core.QHA. These can be used to obtain other quantities and plots. Does not include electronic entropic contributions for metals. """ @@ -35,10 +39,18 @@ def __init__(self, structures, energies, eos_name='vinet', pressure=0): self.structures = structures self.energies = np.array(energies) self.eos = EOS(eos_name) + self.eos_name = eos_name self.pressure = pressure self.volumes = np.array([s.volume for s in structures]) self.iv0 = np.argmin(energies) + self.lattice_a = np.array([s.lattice.abc[0] for s in structures]) + self.lattice_b = np.array([s.lattice.abc[1] for s in structures]) + self.lattice_c = np.array([s.lattice.abc[2] for s in structures]) + + self.angles_alpha = np.array([s.lattice.angles[0] for s in structures]) + self.angles_beta = np.array([s.lattice.angles[1] for s in structures]) + self.angles_gama = np.array([s.lattice.angles[2] for s in structures]) def fit_energies(self, tstart=0, tstop=800, num=100): """ @@ -58,7 +70,6 @@ def fit_energies(self, tstart=0, tstop=800, num=100): min_en: numpy array with the minimum energies for the list of temperatures min_vol: numpy array with the minimum volumes for the list of temperatures temp: numpy array with the temperatures considered - """ tmesh = np.linspace(tstart, tstop, num) @@ -68,13 +79,30 @@ def fit_energies(self, tstart=0, tstop=800, num=100): tot_en = self.energies[np.newaxis, :].T + ph_energies + self.volumes[np.newaxis, :].T * self.pressure / abu.eVA3_GPa # list of fits objects, one for each temperature - fits = [self.eos.fit(self.volumes, e) for e in tot_en.T] + #fits = [self.eos.fit(self.volumes, e) for e in tot_en.T] + + fits = [] + for kt, e in zip(tmesh, tot_en.T): + try: + f = self.eos.fit(self.volumes, e) + fits.append(f) + except Exception as exc: + msg = f""" +EOS fit failed for T={kt} with exception: + + {str(exc)} + +Very likely the minimum volume is not in the input range. +Try to change the temperature range with the `tstart`, `tstop` optional arguments +""" + cprint(msg, color="red") # list of minimum volumes and energies, one for each temperature min_volumes = np.array([fit.v0 for fit in fits]) min_energies = np.array([fit.e0 for fit in fits]) + F2D= np.array([fit.b0 for fit in fits]) /min_volumes - return dict2namedtuple(tot_en=tot_en, fits=fits, min_en=min_energies, min_vol=min_volumes, temp=tmesh) + return dict2namedtuple(tot_en=tot_en, fits=fits, min_en=min_energies, min_vol=min_volumes, temp=tmesh , F2D=F2D) @abc.abstractmethod def get_vib_free_energies(self, tstart=0, tstop=800, num=100): @@ -86,8 +114,7 @@ def get_vib_free_energies(self, tstart=0, tstop=800, num=100): tstop: The end value (in Kelvin) of the mesh. num: int, optional Number of samples to generate. Default is 100. - Returns: - A numpy array of `num` values of the vibrational contribution to the free energy + Returns: A numpy array of `num` values of the vibrational contribution to the free energy """ @abc.abstractmethod @@ -111,16 +138,16 @@ def get_thermodynamic_properties(self, tstart=0, tstop=800, num=100): """ @property - def nvols(self): + def nvols(self) -> int: """Number of volumes""" return len(self.volumes) @property - def natoms(self): + def natoms(self) -> int: """Number of atoms in the unit cell.""" return len(self.structures[0]) - def set_eos(self, eos_name): + def set_eos(self, eos_name: str) -> None: """ Set the EOS model used for the fit. @@ -128,9 +155,10 @@ def set_eos(self, eos_name): eos_name: string indicating the expression used to fit the energies. See pymatgen.analysis.eos.EOS. """ self.eos = EOS(eos_name) + self.eos_name = eos_name @add_fig_kwargs - def plot_energies(self, tstart=0, tstop=800, num=10, ax=None, **kwargs): + def plot_energies(self, tstart=0, tstop=800, num=10, ax=None, **kwargs) -> Figure: """ Plots the energies as a function of volume at different temperatures. @@ -155,11 +183,12 @@ def plot_energies(self, tstart=0, tstop=800, num=10, ax=None, **kwargs): ax.plot(f.min_vol, f.min_en - self.energies[self.iv0], color='r', lw=1, marker='x', ms=5) ax.set_xlabel(r'V (${\AA}^3$)') - ax.set_ylabel('E (eV)') + ax.set_ylabel('F (eV)') + #ax.grid(True) return fig - def get_thermal_expansion_coeff(self, tstart=0, tstop=800, num=100): + def get_thermal_expansion_coeff(self, tstart=0, tstop=800, num=100, tref=None, method=None) -> Function1D: """ Calculates the thermal expansion coefficient as a function of temperature, using finite difference on the fitted values of the volume as a function of temperature. @@ -167,25 +196,60 @@ def get_thermal_expansion_coeff(self, tstart=0, tstop=800, num=100): Args: tstart: The starting value (in Kelvin) of the temperature mesh. tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. Returns: |Function1D| """ f = self.fit_energies(tstart, tstop, num) + if tref is not None: + f0 = self.fit_energies(tref, tref, 1) + eos_list = [ 'taylor', 'murnaghan', 'birch', 'birch_murnaghan','pourier_tarantola', 'vinet', 'antonschmidt'] dt = f.temp[1] - f.temp[0] - alpha = (f.min_vol[2:] - f.min_vol[:-2]) / (2 * dt) / f.min_vol[1:-1] - + if (method=="finite_difference"): + alpha = (f.min_vol[2:] - f.min_vol[:-2]) / (2 * dt) / f.min_vol[1:-1] + else : + if (self.eos_name in eos_list) : + thermo = self.get_thermodynamic_properties(tstart=tstart, tstop=tstop, num=num) + entropy = thermo.entropy.T #* abu.e_Cb * abu.Avogadro + df_t = np.zeros((num,self.nvols)) + df_t = - entropy + param = np.zeros((num,4)) + param2 = np.zeros((num,3)) + d2f_t_v = np.zeros(num) + gamma = np.zeros(num) + + for j in range (1,num-1): + param[j]=np.polyfit(self.volumes,df_t[j] , 3) + param2[j] = np.array([3*param[j][0],2*param[j][1],param[j][2]]) + + p = np.poly1d(param2[j]) + d2f_t_v[j]= p(f.min_vol[j]) + + if tref is None: + alpha= - 1/f.min_vol[1:-1] *d2f_t_v[1:-1] / f.F2D[1:-1] + else : + alpha= - 1/f0.min_vol * d2f_t_v[1:-1] / f.F2D[1:-1] + else : + if tref is None: + alpha = (f.min_vol[2:] - f.min_vol[:-2]) / (2 * dt) / f.min_vol[1:-1] + else : + alpha = (f.min_vol[2:] - f.min_vol[:-2]) / (2 * dt) / f0.min_vol return Function1D(f.temp[1:-1], alpha) @add_fig_kwargs - def plot_thermal_expansion_coeff(self, tstart=0, tstop=800, num=100, ax=None, **kwargs): + def plot_thermal_expansion_coeff(self, tstart=0, tstop=800, num=100, tref=None, ax=None, **kwargs) -> Figure: """ Plots the thermal expansion coefficient as a function of the temperature. Args: tstart: The starting value (in Kelvin) of the temperature mesh. tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) num: int, optional Number of samples to generate. Default is 100. ax: |matplotlib-Axes| or None if a new figure should be created. @@ -199,7 +263,7 @@ def plot_thermal_expansion_coeff(self, tstart=0, tstop=800, num=100, ax=None, ** if "color" not in kwargs: kwargs["color"] = "b" - alpha = self.get_thermal_expansion_coeff(tstart, tstop, num) + alpha = self.get_thermal_expansion_coeff(tstart, tstop, num, tref) ax.plot(alpha.mesh, alpha.values, **kwargs) ax.set_xlabel(r'T (K)') @@ -212,7 +276,7 @@ def plot_thermal_expansion_coeff(self, tstart=0, tstop=800, num=100, ax=None, ** return fig @add_fig_kwargs - def plot_vol_vs_t(self, tstart=0, tstop=800, num=100, ax=None, **kwargs): + def plot_vol_vs_t(self, tstart=0, tstop=800, num=100, ax=None, **kwargs) -> Figure: """ Plot the volume as a function of the temperature. @@ -241,8 +305,185 @@ def plot_vol_vs_t(self, tstart=0, tstop=800, num=100, ax=None, **kwargs): return fig + def get_abc(self, tstart=0, tstop=800 , num=100): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + f = self.fit_energies(tstart, tstop, num) + param=np.polyfit(self.volumes, self.lattice_a , 3) + param0=[3*param[0],2*param[1],param[2]] + pa = np.poly1d(param) + dpa=np.poly1d(param0) + aa_qha=pa(f.min_vol) + daa_dv_qha=dpa(f.min_vol) + param=np.polyfit(self.volumes, self.lattice_b , 3) + param0=[3*param[0],2*param[1],param[2]] + pb = np.poly1d(param) + dpb = np.poly1d(param0) + bb_qha=pb(f.min_vol) + dbb_dv_qha=dpb(f.min_vol) + param=np.polyfit(self.volumes, self.lattice_c , 3) + param0=[3*param[0],2*param[1],param[2]] + pc = np.poly1d(param) + dpc = np.poly1d(param0) + cc_qha=pc(f.min_vol) + dcc_dv_qha=dpc(f.min_vol) + + return aa_qha,bb_qha,cc_qha, daa_dv_qha,dbb_dv_qha,dcc_dv_qha + + def get_angles(self, tstart=0, tstop=800 , num=100): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + f = self.fit_energies(tstart, tstop, num) + param=np.polyfit(self.volumes, self.angles_alpha, 3) + pa = np.poly1d(param) + alpha=pa(f.min_vol) + param=np.polyfit(self.volumes, self.angles_beta , 3) + pb = np.poly1d(param) + beta=pb(f.min_vol) + param=np.polyfit(self.volumes, self.angles_gama , 3) + pc = np.poly1d(param) + gamma=pc(f.min_vol) + + return alpha,beta,gamma + @add_fig_kwargs - def plot_phbs(self, phbands, temperatures=None, t_max=1000, colormap="plasma", **kwargs): + def plot_thermal_expansion_coeff_abc(self, tstart=0, tstop=800, num=100, tref=None, ax=None, **kwargs) -> Figure: + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + + tmesh = np.linspace(tstart, tstop, num) + + alpha_v = self.get_thermal_expansion_coeff(tstart, tstop, num, tref) + aa,bb,cc, daa_dv,dbb_dv,dcc_dv = self.get_abc(tstart, tstop, num) + + if tref is None: + f = self.fit_energies(tstart, tstop, num) + dv_dt=alpha_v*f.min_vol[1:-1] + alpha_qha_a = dv_dt*daa_dv[1:-1]/ aa[1:-1] + alpha_qha_b = dv_dt*dbb_dv[1:-1]/ bb[1:-1] + alpha_qha_c = dv_dt*dcc_dv[1:-1]/ cc[1:-1] + else: + f0 = self.fit_energies(tref, tref, num) + dv_dt=alpha_v*f0.min_vol[1:-1] + aa_tref,bb_tref,cc_tref , daa_dv_tref,dbb_dv_tref,dcc_dv_tref = self.get_abc(tref, tref, 1) + alpha_qha_a = dv_dt*daa_dv[1:-1]/ aa_tref + alpha_qha_b = dv_dt*dbb_dv[1:-1]/ bb_tref + alpha_qha_c = dv_dt*dcc_dv[1:-1]/ cc_tref + + ax.plot(tmesh[1:-1] ,alpha_qha_a , color='r',lw=2 , **kwargs) + ax.plot(tmesh[1:-1] ,alpha_qha_b , color='b', lw=2 ) + ax.plot(tmesh[1:-1] ,alpha_qha_c , color='m', lw=2 ) + ax.set_xlabel(r'T (K)') + ax.set_ylabel(r'$\alpha$ (K$^{-1}$)') + ax.legend([r"$\alpha_a$",r"$\alpha_b$",r"$\alpha_c$"]) + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + + @add_fig_kwargs + def plot_abc_vs_t(self, tstart=0 , tstop=800, num=100, tref=None, ax=None, **kwargs) -> Figure: + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + + #alpha = self.get_thermal_expansion_coeff(tstart, tstop, num, tref) + tmesh = np.linspace(tstart, tstop, num) + aa,bb,cc, daa_dv,dbb_dv,dcc_dv = self.get_abc(tstart, tstop, num) + + ax.plot(tmesh ,aa , color='r',lw=2, **kwargs ) + ax.plot(tmesh ,bb , color='b', lw=2 ) + ax.plot(tmesh ,cc , color='m', lw=2 ) + ax.set_xlabel(r'T (K)') + ax.legend(["a(V(T))","b(V(T))","c(V(T))"]) + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + + @add_fig_kwargs + def plot_angle_vs_t(self, tstart=0, tstop=800, num=100, tref=None, ax=None, **kwargs)-> Figure: + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + + #alpha = self.get_thermal_expansion_coeff(tstart, tstop, num, tref) + tmesh = np.linspace(tstart, tstop, num) + alpha,beta,gamma = self.get_angles(tstart, tstop, num) + + ax.plot(tmesh ,alpha , color='r',lw=2, **kwargs ) + ax.plot(tmesh ,beta , color='b', lw=2 ) + ax.plot(tmesh ,gamma , color='m', lw=2 ) + ax.set_xlabel(r'T (K)') + ax.legend([r"$\alpha$(V(T))",r"$\beta$(V(T))",r"$\gamma$(V(T))"]) + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + @add_fig_kwargs + def plot_phbs(self, phbands, temperatures=None, t_max=1000, colormap="plasma", **kwargs) -> Figure: """ Given a list of |PhononBands| plots the band structures with a color depending on the temperature using a |PhononBandsPlotter|. @@ -282,21 +523,20 @@ def plot_phbs(self, phbands, temperatures=None, t_max=1000, colormap="plasma", * return fig - def get_vol_at_t(self, t): + def get_vol_at_t(self, t) -> float: """ Calculates the volume corresponding to a specific temperature. Args: t: temperature in K - Returns: - The volume + Returns: The volume in Ang^3. """ f = self.fit_energies(t, t, 1) return f.min_vol[0] - def get_t_for_vols(self, vols, t_max=1000): + def get_t_for_vols(self, vols, t_max=1000) -> list[float]: """ Find the temperatures corresponding to a specific volume. The search is performed interpolating the V(T) dependence with a spline and @@ -323,7 +563,7 @@ def get_t_for_vols(self, vols, t_max=1000): return temps - def write_phonopy_qha_inputs(self, tstart=0, tstop=2100, num=211, path=None): + def write_phonopy_qha_inputs(self, tstart=0, tstop=2100, num=211, path=None) -> None: """ Writes nvols thermal_properties-i.yaml files that can be used as inputs for phonopy-qha. Notice that phonopy apparently requires the value of the 300 K temperature to be present @@ -385,9 +625,10 @@ def write_phonopy_qha_inputs(self, tstart=0, tstop=2100, num=211, path=None): with open(os.path.join(path, "thermal_properties-{}.yaml".format(j)), 'wt') as f: f.write("\n".join(lines)) - def get_phonopy_qha(self, tstart=0, tstop=2100, num=211, eos='vinet', t_max=None, energy_plot_factor=None): + def get_phonopy_qha(self, tstart=0, tstop=2100, num=211, eos='vinet', t_max=None, + energy_plot_factor=None, pressure=None): """ - Creates an instance of phonopy.qha.QHA that can be used generate further plots and output data. + Creates an instance of phonopy.qha.core.QHA that can be used generate further plots and output data. The object is returned right after the construction. The "run()" method should be executed before getting results and plots. Notice that phonopy apparently requires the value of the 300 K temperature to be present @@ -401,12 +642,12 @@ def get_phonopy_qha(self, tstart=0, tstop=2100, num=211, eos='vinet', t_max=None "murnaghan" and "birch_murnaghan". Passed to phonopy's QHA. t_max: maximum temperature. Passed to phonopy's QHA. energy_plot_factor: factor multiplying the energies. Passed to phonopy's QHA. + pressure: pressure value, passed to phonopy. - Returns: - An instance of phonopy.qha.QHA + Returns: An instance of phonopy.qha.core.QHA """ try: - from phonopy.qha import QHA as QHA_phonopy + from phonopy.qha.core import QHA as QHA_phonopy except ImportError as exc: print("Phonopy is required to generate the QHA phonopy object") raise exc @@ -420,17 +661,27 @@ def get_phonopy_qha(self, tstart=0, tstop=2100, num=211, eos='vinet', t_max=None en = self.energies + self.volumes * self.pressure / abu.eVA3_GPa - qha_p = QHA_phonopy(self.volumes, en, temperatures, cv, entropy, fe, eos, t_max, energy_plot_factor) + qha_p = QHA_phonopy( + volumes=self.volumes, + electronic_energies=en, + temperatures=temperatures, + cv=cv, + entropy=entropy, + fe_phonon=fe, + pressure=pressure, + eos=eos, + t_max=t_max, + energy_plot_factor=energy_plot_factor + ) return qha_p class QHA(AbstractQHA): """ - Object to extract results in the quasi-harmonic approximation from electronic and phonon calculations - at different volumes. + Object to extract results in the quasi-harmonic approximation from electronic and phonon calculations at different volumes. Provides some basic methods and plotting utils, plus a converter to write input files for phonopy-qha or to - generate an instance of phonopy.qha.QHA. These can be used to obtain other quantities and plots. + generate an instance of phonopy.qha.core.QHA. These can be used to obtain other quantities and plots. Does not include electronic entropic contributions for metals. .. rubric:: Inheritance Diagram @@ -498,7 +749,7 @@ def _check_volumes(struct_list1, struct_list2): if ierr != 0: raise RuntimeError("Expecting lists with same volumes!") - def get_vib_free_energies(self, tstart=0, tstop=800, num=100): + def get_vib_free_energies(self, tstart=0, tstop=800, num=100) -> np.ndarray: """ Generates the vibrational free energy from the phonon DOS. @@ -507,8 +758,7 @@ def get_vib_free_energies(self, tstart=0, tstop=800, num=100): tstop: The end value (in Kelvin) of the mesh. num: int, optional Number of samples to generate. Default is 100. - Returns: - A numpy array of `num` values of the vibrational contribution to the free energy + Returns: A numpy array of `num` values of the vibrational contribution to the free energy """ f = np.zeros((self.nvols, num)) @@ -557,7 +807,7 @@ class QHA3PF(AbstractQHA): Object to extract results in the quasi-harmonic approximation from several electronic energies at different volumes and three phonon calculations. Provides some basic methods and plotting utils, plus a converter to write input files for phonopy-qha or to - generate an instance of phonopy.qha.QHA. These can be used to obtain other quantities and plots. + generate an instance of phonopy.qha.core.QHA. These can be used to obtain other quantities and plots. Does not include electronic entropic contributions for metals. .. rubric:: Inheritance Diagram @@ -565,7 +815,7 @@ class QHA3PF(AbstractQHA): """ @classmethod - def from_files(cls, gsr_paths, phdos_paths, ind_doses): + def from_files(cls, gsr_paths, phdos_paths, ind_doses) -> QHA3PF: """ Creates an instance of QHA from a list of GSR files and a list of PHDOS.nc files. The list should have the same size and the volumes should match. @@ -576,7 +826,7 @@ def from_files(cls, gsr_paths, phdos_paths, ind_doses): ind_doses: list of three values indicating, for each of the three doses, the index of the corresponding gsr_file in "gsr_paths". - Returns: A new instance of QHA + Returns: A new instance of QHA3PF """ energies = [] structures = [] @@ -696,7 +946,7 @@ class QHA3P(AbstractQHA): Object to extract results in the quasi-harmonic approximation from several electronic energies at different volumes and three phonon calculations. Provides some basic methods and plotting utils, plus a converter to write input files for phonopy-qha or to - generate an instance of phonopy.qha.QHA. These can be used to obtain other quantities and plots. + generate an instance of phonopy.qha.core.QHA. These can be used to obtain other quantities and plots. Does not include electronic entropic contributions for metals. .. rubric:: Inheritance Diagram @@ -704,7 +954,7 @@ class QHA3P(AbstractQHA): """ @classmethod - def from_files(cls, gsr_paths, grun_file_path, ind_doses): + def from_files(cls, gsr_paths, grun_file_path, ind_doses) -> QHA3P: """ Creates an instance of QHA from a list of GSR files and a list PHDOS.nc files. The list should have the same size and the volumes should match. @@ -715,8 +965,7 @@ def from_files(cls, gsr_paths, grun_file_path, ind_doses): ind_doses: list of three values indicating, for each of the three doses, the index of the corresponding gsr_file in "gsr_paths". - Returns: - A new instance of QHA + Returns: A new instance of QHA3P """ energies = [] structures = [] @@ -746,7 +995,7 @@ def __init__(self, structures, gruns, energies, ind_grun, eos_name='vinet', pres self.ind_grun = ind_grun self._ind_energy_only = [i for i in range(len(structures)) if i not in ind_grun] - def close(self): + def close(self) -> None: """Close files.""" self.grun.close() @@ -789,7 +1038,7 @@ def get_thermodynamic_properties(self, tstart=0, tstop=800, num=100): zpe=zpe) @lazy_property - def fitted_frequencies(self): + def fitted_frequencies(self) -> np.ndarray: """ A numpy array with size (nvols, nqpts_ibz, 3*natoms) containing the phonon frequencies for all the volumes, either from the original phonon calculations or fitted @@ -815,7 +1064,7 @@ def fitted_frequencies(self): return w_full - def get_vib_free_energies(self, tstart=0, tstop=800, num=100): + def get_vib_free_energies(self, tstart=0, tstop=800, num=100) -> np.ndarray: """ Generates the vibrational free energy corresponding to all the structures, either from the phonon DOS or from a fit of the know values. @@ -825,8 +1074,7 @@ def get_vib_free_energies(self, tstart=0, tstop=800, num=100): tstop: The end value (in Kelvin) of the mesh. num: int, optional Number of samples to generate. Default is 100. - Returns: - A numpy array of `num` values of the vibrational contribution to the free energy + Returns: A numpy array of `num` values of the vibrational contribution to the free energy """ w = self.fitted_frequencies @@ -911,18 +1159,19 @@ def get_entropy(w, weights, t): class AbstractQmeshAnalyzer(metaclass=abc.ABCMeta): """ - Abstract class for the analysis of the convergence wrt to the q-mesh used to compute the - phonon DOS. Relies on abstract methods implemented in AbstractQHA. + Abstract class for the analysis of the convergence wrt to the q-mesh used to compute the phonon DOS. + Relies on abstract methods implemented in AbstractQHA. """ fontsize = 8 + colormap = "viridis" def _consistency_check(self): if not hasattr(self, "qha_list") or not self.qha_list: raise RuntimeError("Please call the run method to compute the QHA!") - def set_eos(self, eos_name): + def set_eos(self, eos_name: str): """ Set the EOS model used for the fit. @@ -934,7 +1183,7 @@ def set_eos(self, eos_name): qha.set_eos(eos_name) @add_fig_kwargs - def plot_energies(self, **kwargs): + def plot_energies(self, **kwargs) -> Figure: """ Plots the energies as a function of volume at different temperatures. kwargs are propagated to the analogous method of QHA. @@ -951,7 +1200,7 @@ def plot_energies(self, **kwargs): return fig @add_fig_kwargs - def plot_thermal_expansion_coeff(self, **kwargs): + def plot_thermal_expansion_coeff(self, **kwargs) -> Figure: """ Plots the thermal expansion coefficient as a function of the temperature. kwargs are propagated to the analogous method of QHA. @@ -967,7 +1216,7 @@ def plot_thermal_expansion_coeff(self, **kwargs): return fig @add_fig_kwargs - def plot_vol_vs_t(self, **kwargs): + def plot_vol_vs_t(self, **kwargs) -> Figure: """ Plot the volume as a function of the temperature. kwargs are propagated to the analogous method of QHA. diff --git a/abipy/dfpt/qha_aproximation.py b/abipy/dfpt/qha_aproximation.py new file mode 100644 index 000000000..fed483e4e --- /dev/null +++ b/abipy/dfpt/qha_aproximation.py @@ -0,0 +1,1971 @@ +# coding: utf-8 + +import os +import abc +import numpy as np +import abipy.core.abinit_units as abu + +from scipy.interpolate import UnivariateSpline +from monty.collections import dict2namedtuple +from monty.functools import lazy_property +from pymatgen.analysis.eos import EOS +from abipy.core.func1d import Function1D +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt +from abipy.electrons.gsr import GsrFile +from abipy.dfpt.ddb import DdbFile +from abipy.dfpt.phonons import PhononBandsPlotter, PhononDos, PhdosFile +from abipy.dfpt.gruneisen import GrunsNcFile + + +class QHA_App(metaclass=abc.ABCMeta): + """ + Class for the approximations on QHA analysis. + Provides some basic methods and plotting utils. + These can be used to obtain other quantities and plots. + Does not include electronic entropic contributions for metals. + """ + + def __init__(self, structures,structures_from_phdos,index_list, doses,energies, pressures, eos_name='vinet', pressure=0): + """ + Args: + structures: list of structures at different volumes. + energies: list of SCF energies for the structures in eV. + eos_name: string indicating the expression used to fit the energies. See pymatgen.analysis.eos.EOS. + pressure: value of the pressure in GPa that will be considered in the p*V contribution to the energy. + """ + self.structures = structures + self.energies = np.array(energies) + self.eos = EOS(eos_name) + self.eos_name = eos_name + self.pressure = pressure + self.pressures = np.array(pressures) + + self.volumes = np.array([s.volume for s in structures]) + self.iv0 = np.argmin(energies) + self.lattice_a = np.array([s.lattice.abc[0] for s in structures]) + self.lattice_b = np.array([s.lattice.abc[1] for s in structures]) + self.lattice_c = np.array([s.lattice.abc[2] for s in structures]) + + self.angles_alpha = np.array([s.lattice.angles[0] for s in structures]) + self.angles_beta = np.array([s.lattice.angles[1] for s in structures]) + self.angles_gama = np.array([s.lattice.angles[2] for s in structures]) + + self.doses = doses + self.structures_from_phdos = np.array(structures_from_phdos) + self.volumes_from_phdos = np.array([s.volume for s in structures_from_phdos]) + self.energies_pdos=self.energies[index_list] + self.index_list = index_list + if (len(self.index_list)==5): + self.iv0_vib=1 + self.iv1_vib=3 + self.V0_vib=self.volumes_from_phdos[2] + elif (len(self.index_list)==3): + self.iv0_vib=0 + self.iv1_vib=2 + self.V0_vib=self.volumes_from_phdos[1] + else : + self.iv0_vib=0 + self.iv1_vib=1 + self.V0_vib=0.5*(self.volumes_from_phdos[1]+self.volumes_from_phdos[0]) + if abs(self.volumes_from_phdos[self.iv0_vib]+self.volumes_from_phdos[self.iv1_vib]-2*self.volumes[self.iv0])<1e-3 : + self.scale_points="S" # Symmetry + else: + self.scale_points="D" # Displaced + +#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + def fit_tot_energies(self, tstart=0, tstop=1000, num=101,tot_energies="energies" ,volumes="volumes"): + """ + Performs a fit of the energies as a function of the volume at different temperatures. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + + Returns: + `namedtuple` with the following attributes:: + + tot_en: numpy array with shape (nvols, num) with the energies used for the fit + fits: list of subclasses of pymatgen.analysis.eos.EOSBase, depending on the type of + eos chosen. Contains the fit for the energies at the different temperatures. + min_en: numpy array with the minimum energies for the list of temperatures + min_vol: numpy array with the minimum volumes for the list of temperatures + temp: numpy array with the temperatures considered + """ + # Generate a mesh of temperatures + tmesh = np.linspace(tstart, tstop, num) + + # List of fit objects, one for each temperature + fits = [self.eos.fit(volumes, e) for e in tot_energies.T] + + # Extract parameters from the fit objects + v0 = np.array([fit.v0 for fit in fits]) + e0 = np.array([fit.e0 for fit in fits]) + b0 = np.array([fit.b0 for fit in fits]) + b1 = np.array([fit.b1 for fit in fits]) + + # Minimum volumes and energies + min_volumes = np.array([fit.v0 for fit in fits]) + min_energies = np.array([fit.e0 for fit in fits]) + + v = min_volumes + eta = (v / v0) ** (1.0 / 3.0) + + # Calculate the second derivative of free energy + F2D = ( b0 / v0 * (-2.0 * (eta - 1) * eta ** -5.0 + (1 - 3.0 / 2.0 * (b1 - 1) * (eta - 1)) * eta ** -4.0) + * np.exp(-3.0 * (b1 - 1.0) * (v ** (1.0 / 3.0) / v0 ** (1 / 3.0) - 1.0) / 2.0)) + + return dict2namedtuple(tot_en=tot_energies, fits=fits, min_en=min_energies, min_vol=min_volumes, temp=tmesh , F2D=F2D) + + def second_derivative_energy_v(self, vol="vol"): + """ + Performs a fit of the energies as a function of the volume at different temperatures. + + Args: + vol: The volume at which to evaluate the second derivative of the energy. + + Returns: + E2D_V: The second derivative of the energy with respect to volume. + """ + # Initialize variables for temperature range (not used in the current function) + tstart = 0 + tstop = 0 + num = 1 + + tot_en = self.energies[np.newaxis, :].T + fits = [self.eos.fit(self.volumes, e) for e in tot_en.T] + + # Extract parameters from the fit objects + v0 = np.array([fit.v0 for fit in fits]) + e0 = np.array([fit.e0 for fit in fits]) + b0 = np.array([fit.b0 for fit in fits]) + b1 = np.array([fit.b1 for fit in fits]) + + v = vol + eta = (v / v0) ** (1.0 / 3.0) + E2D_V = ( b0 / v0 * (-2.0 * (eta - 1) * eta ** -5.0 + (1 - 3.0 / 2.0 * (b1 - 1) * (eta - 1)) * eta ** -4.0) * + np.exp(-3.0 * (b1 - 1.0) * (v ** (1.0 / 3.0) / v0 ** (1.0 / 3.0) - 1.0) / 2.0)) + + return E2D_V +#============================================================================================= + def vol_E2Vib1(self, tstart=0, tstop=1000, num=101): + """ + Compute the volume as a function of temperature using the E2Vib1 method with the Vinet equation of state. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: Number of samples to generate. Default is 101. + + Returns: + vol: The calculated volumes as a function of temperature. + fits: The list of fit objects for the energies as a function of volume. + """ + # Generate temperature mesh + tmesh = np.linspace(tstart, tstop, num) + + # Get phonon free energies + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + + vol = np.zeros(num) + dfe_dV1 = np.zeros(num) + volumes0 = self.volumes_from_phdos + volumes = self.volumes + iv0 = self.iv0_vib + iv1 = self.iv1_vib + dV = volumes0[iv1] - volumes0[iv0] + V0 = volumes[self.iv0] + E2D = self.second_derivative_energy_v(V0) + + # Calculate derivative of free energy with respect to volume and updated volumes + for i, e in enumerate(ph_energies.T): + dfe_dV1[i] = (e[iv1] - e[iv0]) / dV + vol[i] = V0 - dfe_dV1[i] / E2D + + # Calculate total energies + tot_en = self.energies[self.iv0] + 0.5*(volumes[np.newaxis, :].T - V0)**2*E2D +(volumes[np.newaxis, :].T - V0)*dfe_dV1 + + # Fit the energies as a function of volume + fits = [self.eos.fit(volumes, e) for e in tot_en.T] + + return vol, fits + +#============================================================================================= + def vol_Einf_Vib1(self, tstart=0, tstop=1000, num=101): + """ + Compute the volume as a function of temperature using the EinfVib1 method with the Vinet equation of state. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: Number of samples to generate. Default is 101. + + Returns: + vol: The calculated volumes as a function of temperature. + fits: The list of fit objects for the energies as a function of volume. + """ + # Generate temperature mesh + tmesh = np.linspace(tstart, tstop, num) + + # Get phonon free energies + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + + vol = np.zeros(num) + dfe_dV1 = np.zeros(num) + volumes0 = self.volumes_from_phdos + volumes = self.volumes + iv0 = self.iv0_vib + iv1 = self.iv1_vib + V0 = self.V0_vib + + dV = volumes0[iv1] - volumes0[iv0] + + # Calculate derivative of free energy with respect to volume + for i, e in enumerate(ph_energies.T): + dfe_dV1[i] = (e[iv1] - e[iv0]) / dV + + # Calculate total energies + tot_en = self.energies[np.newaxis, :].T + (volumes[np.newaxis, :].T - V0) * dfe_dV1 + + # Fit the energies as a function of volume + fits = [self.eos.fit(volumes, e) for e in tot_en.T] + + # Extract minimum volumes from the fit objects + vol = np.array([fit.v0 for fit in fits]) + + return vol, fits + +#============================================================================================= + def vol_Einf_Vib2(self, tstart=0, tstop=1000, num=101): + """ + Compute the volume as a function of temperature using the EinfVib2 method with the Vinet equation of state. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: Number of samples to generate. Default is 101. + + Returns: + vol: The calculated volumes as a function of temperature. + fits: The list of fit objects for the energies as a function of volume. + """ + # Generate temperature mesh + tmesh = np.linspace(tstart, tstop, num) + + # Get phonon free energies + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + + vol = np.zeros(num) + dfe_dV1 = np.zeros(num) + dfe_dV2 = np.zeros(num) + fe_V0 = np.zeros(num) + + # Determine index for volume calculations + iv0 = 2 if len(self.index_list) == 5 else 1 + + dV = self.volumes_from_phdos[iv0] - self.volumes_from_phdos[iv0 - 1] + + # Compute derivatives of free energy with respect to volume + for i, e in enumerate(ph_energies.T): + dfe_dV1[i] = (e[iv0 + 1] - e[iv0 - 1]) / (self.volumes_from_phdos[iv0 + 1] - self.volumes_from_phdos[iv0 - 1]) + dfe_dV2[i] = (e[iv0 + 1] - 2.0 * e[iv0] + e[iv0 - 1]) / (self.volumes_from_phdos[iv0 + 1] - self.volumes_from_phdos[iv0])**2 + fe_V0[i] = e[iv0] + + # Reference volume + V0 = self.volumes_from_phdos[iv0] + + # Calculate total energies + tot_en = ( self.energies[np.newaxis, :].T +fe_V0 + +(self.volumes[np.newaxis, :].T - V0) * dfe_dV1 + 0.5 * (self.volumes[np.newaxis, :].T - V0)**2 * dfe_dV2) + + # Fit the energies as a function of volume + fits = [self.eos.fit(self.volumes, e) for e in tot_en.T] + + # Extract minimum volumes from the fit objects + vol = np.array([fit.v0 for fit in fits]) + + return vol, fits + +#================================================================================================================ + + def vol_Einf_Vib4(self, tstart=0, tstop=1000, num=101): + """ + Compute the volume as a function of temperature using the EinfVib4 method with the Vinet equation of state. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: Number of samples to generate. Default is 101. + + Returns: + vol: The calculated volumes as a function of temperature. + fits: The list of fit objects for the energies as a function of volume. + """ + + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + energies = self.energies + volumes0= self.volumes_from_phdos + volumes= self.volumes + vol = np.zeros( num) + dfe_dV1= np.zeros( num) + dfe_dV2= np.zeros( num) + dfe_dV3= np.zeros( num) + dfe_dV4= np.zeros( num) + fe_V0= np.zeros( num) + iv0=2 + dV=volumes0[2]-volumes0[1] + + for i,e in enumerate(ph_energies.T): + dfe_dV1[i]=(-e[iv0+2]+ 8*e[iv0+1]-8*e[iv0-1]+e[iv0-2])/(12*dV) + dfe_dV2[i]=(-e[iv0+2]+16*e[iv0+1]-30*e[iv0]+16*e[iv0-1]-e[iv0-2])/(12*dV**2) + dfe_dV3[i]=(e[iv0+2]-2*e[iv0+1]+2*e[iv0-1]-e[iv0-2])/(2*dV**3) + dfe_dV4[i]=(e[iv0+2]-4*e[iv0+1]+6*e[iv0]-4*e[iv0-1]+e[iv0-2])/(dV**4) + + fe_V0[i]= e[iv0] + V0=volumes0[iv0] + + tot_en = (( volumes[np.newaxis, :].T -V0) * dfe_dV1 + 0.5* ( volumes[np.newaxis, :].T -V0)**2*(dfe_dV2) + +( volumes[np.newaxis, :].T -V0)**3 *dfe_dV3/6.0 + ( volumes[np.newaxis, :].T -V0)**4*(dfe_dV4/24.0) + + fe_V0[:] +energies[np.newaxis, :].T ) + + fits = [self.eos.fit(volumes, e) for e in tot_en.T] + vol = np.array([fit.v0 for fit in fits]) + + return vol , fits +#********************************************************************************************* + @property + def nvols(self): + """Number of volumes""" + return len(self.volumes_from_phdos) + + def set_eos(self, eos_name): + """ + Set the EOS model used for the fit. + + Args: + eos_name: string indicating the expression used to fit the energies. See pymatgen.analysis.eos.EOS. + """ + self.eos = EOS(eos_name) + self.eos_name = eos_name + if (eos_name!= "vinet"): + raise RuntimeError("This approximation method is only developed for the Vinet equation of state.") + + + + @add_fig_kwargs + def plot_energies(self, tstart=0, tstop=1000 ,num=1, ax=None, **kwargs): + """ + Plots the BO energy as a function of volume + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 10. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + + tmesh = np.linspace(tstart, tstop, num) + + f = self.fit_tot_energies(0, 0, 1 ,self.energies[np.newaxis, :].T,self.volumes) + + ax, fig, plt = get_ax_fig_plt(ax) + xmin, xmax = np.floor(self.volumes.min() * 0.97), np.ceil(self.volumes.max() * 1.03) + x = np.linspace(xmin, xmax, 100) + + for fit, e, t in zip(f.fits, f.tot_en.T - self.energies[self.iv0], f.temp): + ax.scatter(self.volumes, e, label=t, color='b', marker='s', s=10) + ax.plot(x, fit.func(x) - self.energies[self.iv0], color='b', lw=1) + + ax.plot(f.min_vol, f.min_en - self.energies[self.iv0], color='r', linestyle='dashed' , lw=1, marker='o', ms=5) + + ax.set_xlabel(r'V (${\AA}^3$)') + ax.set_ylabel('E (eV)') + return fig + + @add_fig_kwargs + def plot_vol_vs_t(self, tstart=0, tstop=1000, num=101, ax=None, **kwargs): + """ + Plot the volume as a function of temperature using various methods. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 101. + ax: Matplotlib Axes object or None. If None, a new figure will be created. + **kwargs: Additional keyword arguments to pass to plotting functions. + + Returns: + fig: The Matplotlib Figure object. + """ + # Get or create the matplotlib Axes and Figure + ax, fig, plt = get_ax_fig_plt(ax) + + # Generate temperature mesh + tmesh = np.linspace(tstart, tstop, num) + + # Get phonon free energies + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + + # Initialize data storage + iv0 = self.iv0_vib + iv1 = self.iv1_vib + volumes = self.volumes_from_phdos + + data_to_save = tmesh + columns = ['#Tmesh'] + + # Method 1: E2Vib1 + if self.scale_points=="S": + vol, _ = self.vol_E2Vib1(tstart=tstart, tstop=tstop, num=num) + ax.plot(tmesh, vol, color='b', lw=2, label="E2Vib1") + data_to_save = np.column_stack((data_to_save, vol)) + columns.append('E2vib1') + + # Method 2: Einf_Vib1 + if len(self.index_list) >= 2: + vol2, _ = self.vol_Einf_Vib1(tstart=tstart, tstop=tstop, num=num) + ax.plot(tmesh, vol2, color='gold', lw=2, label=r"$E_\infty$ Vib1") + data_to_save = np.column_stack((data_to_save, vol2)) + columns.append('Einfvib1') + + # Method 3: Einf_Vib2 + if len(self.index_list) >= 3: + vol3, _ = self.vol_Einf_Vib2(tstart=tstart, tstop=tstop, num=num) + ax.plot(tmesh, vol3, color='m', lw=2, label=r"$E_\infty$ Vib2") + data_to_save = np.column_stack((data_to_save, vol3)) + columns.append('Einfvib2') + + # Method 4: Einf_Vib4 and QHA + if len(self.index_list) == 5: + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_tot_energies(tstart, tstop, num, tot_en, self.volumes_from_phdos) + vol4, _ = self.vol_Einf_Vib4(tstart=tstart, tstop=tstop, num=num) + ax.plot(tmesh, vol4, color='c', lw=2, label=r"$E_\infty$ Vib4") + ax.plot(tmesh, f0.min_vol, color='k', linestyle='dashed', lw=1.5, label="QHA") + data_to_save = np.column_stack((data_to_save, vol4, f0.min_vol)) + columns.append('Einfvib4') + columns.append('QHA') + + # Plot V0 + ax.plot(0, self.volumes[self.iv0], color='g', lw=0, marker='o', ms=10, label="V0") + + # Set labels and limits + ax.set_xlabel('T (K)') + ax.set_ylabel(r'V (${\AA}^3$)') + ax.set_xlim(tstart, tstop) + ax.grid(True) + ax.legend() + + return fig + +################################################################################################### + def get_thermal_expansion_coeff(self, tstart=0, tstop=1000, num=101, tref=None): + """ + Calculates the thermal expansion coefficient as a function of temperature + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: Number of samples to generate. Default is 101. + + Returns: + Function1D: The thermal expansion coefficient as a function of temperature. + """ + # Get phonon free energies + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f = self.fit_tot_energies(tstart, tstop, num, tot_en, self.volumes_from_phdos) + + if tref != None: + ph_energies2 = self.get_vib_free_energies(tref, tref, 1) + tot_en2 = self.energies_pdos[np.newaxis, :].T + ph_energies2 + f0 = self.fit_tot_energies(tref, tref, 1, tot_en2, self.volumes_from_phdos) + + dt = f.temp[1] - f.temp[0] + + # Get thermodynamic properties + thermo = self.get_thermodynamic_properties(tstart, tstop, num) + entropy = thermo.entropy.T + df_t = -entropy + + param = np.zeros((num, 4)) + param2 = np.zeros((num, 3)) + d2f_t_v = np.zeros(num) + + for j in range(num): + param[j] = np.polyfit(self.volumes_from_phdos, df_t[j], 3) + param2[j] = np.array([3 * param[j][0], 2 * param[j][1], param[j][2]]) + p = np.poly1d(param2[j]) + d2f_t_v[j] = p(f.min_vol[j]) + + F2D = f.F2D + if tref == None: + alpha = -1 / f.min_vol * d2f_t_v / F2D + else: + alpha = -1 / f0.min_vol * d2f_t_v / F2D + + return Function1D(f.temp, alpha) + + @add_fig_kwargs + def plot_thermal_expansion_coeff(self, tstart=0, tstop=1000, num=101, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + tmesh = np.linspace(tstart, tstop, num) + thermo = self.get_thermodynamic_properties(tstart=tstart, tstop=tstop, num=num) + entropy = thermo.entropy.T #* abu.e_Cb * abu.Avogadro + df_t = np.zeros((num,self.nvols)) + df_t = - entropy + volumes=self.volumes_from_phdos + + data_to_save = tmesh + columns = ['#Tmesh'] + iv0=self.iv0_vib + iv1=self.iv1_vib + dV=volumes[iv0+1]-volumes[iv0] + + if self.scale_points=="S": + vol,fits = self.vol_E2Vib1(num=num,tstop=tstop,tstart=tstart) + E2D = self.second_derivative_energy_v(self.volumes[self.iv0]) + #f = self.fit_tot_energies(0, 0, 1 ,self.energies[np.newaxis, :].T,self.volumes) + #E2D = f.F2D + if (tref==None): + alpha_1 = - 1/vol[:] * (df_t[:,iv1]-df_t[:,iv0])/(volumes[iv1]-volumes[iv0]) / E2D + else: + vol_ref,fits = self.vol_E2Vib1(num=1,tstop=tref,tstart=tref) + b0 = np.array([fit.b0 for fit in fits]) + print("B (E2vib1) @ ",tref," K =",b0*160.21766208 ,"(GPa)" ) + alpha_1 = - 1/vol_ref * (df_t[:,iv1]-df_t[:,iv0])/(volumes[iv1]-volumes[iv0]) / E2D + ax.plot(tmesh, alpha_1,color='b', lw=2, label="E2Vib1") + data_to_save = np.column_stack((data_to_save,alpha_1)) + columns.append( 'E2vib1') + + if (len(self.index_list)>=2): + vol2 ,fits = self.vol_Einf_Vib1(num=num,tstop=tstop,tstart=tstart) + E2D_V = self.second_derivative_energy_v(vol2) + if (tref==None): + alpha_2 = - 1/vol2[:] * (df_t[:,iv1]-df_t[:,iv0])/(volumes[iv1]-volumes[iv0]) / E2D_V[:] + else: + vol2_ref,fits = self.vol_Einf_Vib1(num=1,tstop=tref,tstart=tref) + b0 = np.array([fit.b0 for fit in fits]) + print("B (Einfvib1) @ ",tref," K =",b0*160.21766208 ,"(GPa)" ) + alpha_2 = - 1/vol2_ref * (df_t[:,iv1]-df_t[:,iv0])/(volumes[iv1]-volumes[iv0]) / E2D_V[:] + ax.plot(tmesh, alpha_2,color='gold', lw=2 , label=r"$E_\infty Vib1$") + data_to_save = np.column_stack((data_to_save,alpha_2)) + columns.append( 'Einfvib1') + + if (len(self.index_list)>=3): + vol3,fits = self.vol_Einf_Vib2(num=num,tstop=tstop,tstart=tstart) + E2D_V = self.second_derivative_energy_v(vol3) + dfe_dV2= np.zeros( num) + for i,e in enumerate(ph_energies.T): + dfe_dV2[i]=(e[iv0+2]-2.0*e[iv0+1]+e[iv0])/(dV)**2 + + ds_dv = (df_t[:,iv0+2]-df_t[:,iv0])/(2*dV) + ds_dv = ds_dv+ (df_t[:,iv0+2]-2*df_t[:,iv0+1]+df_t[:,iv0])/dV**2 * (vol3[:]-volumes[iv0+1]) + if (tref==None): + alpha_3 = - 1/vol3[:] * ds_dv / (E2D_V[:]+dfe_dV2[:]) + else: + vol3_ref,fits = self.vol_Einf_Vib2(num=1,tstop=tref,tstart=tref) + b0 = np.array([fit.b0 for fit in fits]) + print("B (Einfvib2) @ ",tref," K =",b0*160.21766208 ,"(GPa)" ) + alpha_3 = - 1/vol3_ref * ds_dv / (E2D_V[:]+dfe_dV2[:]) + ax.plot(tmesh, alpha_3,color='m', lw=2 , label=r"$E_\infty Vib2$") + data_to_save = np.column_stack((data_to_save,alpha_3)) + columns.append( 'Einfvib2') + + if (len(self.index_list)==5): + alpha_qha = self.get_thermal_expansion_coeff(tstart, tstop, num, tref) + vol4,fits = self.vol_Einf_Vib4(num=num,tstop=tstop,tstart=tstart) + E2D_V = self.second_derivative_energy_v(vol4) + + d2fe_dV2= np.zeros( num) + d3fe_dV3= np.zeros( num) + d4fe_dV4= np.zeros( num) + for i,e in enumerate(ph_energies.T): + d2fe_dV2[i]=(-e[4]+16*e[3]-30*e[2]+16*e[1]-e[0])/(12*dV**2) + d3fe_dV3[i]=(e[4]-2*e[3]+2*e[1]-e[0])/(2*dV**3) + d4fe_dV4[i]=(e[4]-4*e[3]+6*e[2]-4*e[1]+e[0])/(dV**4) + + ds_dv =(-df_t[:,4]+ 8*df_t[:,3]-8*df_t[:,1]+df_t[:,0])/(12*dV) + ds_dv = ds_dv+ (-df_t[:,4]+16*df_t[:,3]-30*df_t[:,2]+16*df_t[:,1]-df_t[:,0])/(12*dV**2) * (vol4[:]-volumes[2]) + ds_dv = ds_dv+ 1.0/2.0*(df_t[:,4]-2*df_t[:,3]+2*df_t[:,1]-df_t[:,0])/(2*dV**3) * (vol4[:]-volumes[2])**2 + ds_dv = ds_dv+ 1.0/6.0* (df_t[:,4]-4*df_t[:,3]+6*df_t[:,2]-4*df_t[:,1]+df_t[:,0])/(dV**4)* (vol4[:]-volumes[2])**3 + D2F=E2D_V[:]+d2fe_dV2[:]+ (vol4[:]-volumes[2])*d3fe_dV3[:]+0.5*(vol4[:]-volumes[2])**2*d4fe_dV4[:] + if (tref==None): + alpha_4 = - 1/vol4[:] * ds_dv / D2F + else: + vol4_ref,fits = self.vol_Einf_Vib4(num=1,tstop=tref,tstart=tref) + b0 = np.array([fit.b0 for fit in fits]) + print("B (Einfvib4) @ ",tref," K =",b0*160.21766208 ,"(GPa)" ) + alpha_4 = - 1/vol4_ref * ds_dv / D2F + + ax.plot(tmesh, alpha_4,color='c',linewidth=2 , label=r"$E_\infty Vib4$") + ax.plot(alpha_qha.mesh, alpha_qha.values, color='k',linestyle='dashed', lw=1.5 ,label="QHA") + data_to_save = np.column_stack((data_to_save,alpha_4,alpha_qha.values)) + columns.append( 'Einfvib4') + columns.append( 'QHA') + + + ax.set_xlabel(r'T (K)') + ax.set_ylabel(r'$\alpha$ (K$^{-1}$)') + ax.grid(True) + ax.legend() + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + def get_abc(self, tstart=0, tstop=1000, num=101,volumes="volumes"): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + param = np.zeros((num,4)) + param=np.polyfit(self.volumes, self.lattice_a , 3) + pa = np.poly1d(param) + aa_qha=pa(volumes) + param=np.polyfit(self.volumes, self.lattice_b , 3) + pb = np.poly1d(param) + bb_qha=pb(volumes) + param=np.polyfit(self.volumes, self.lattice_c , 3) + pc = np.poly1d(param) + cc_qha=pc(volumes) + + return aa_qha,bb_qha,cc_qha + + def get_angles(self, tstart=0, tstop=1000, num=101,volumes="volumes"): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + param = np.zeros((num,4)) + param=np.polyfit(self.volumes, self.angles_alpha, 3) + pa = np.poly1d(param) + gamma=pa(volumes) + param=np.polyfit(self.volumes, self.angles_beta , 3) + pb = np.poly1d(param) + beta=pb(volumes) + param=np.polyfit(self.volumes, self.angles_gama , 3) + pc = np.poly1d(param) + alpha=pc(volumes) + + return alpha,beta,gamma + +################################################################################################### + @add_fig_kwargs + def plot_thermal_expansion_coeff_abc(self, tstart=0, tstop=1000, num=101, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + data_to_save = tmesh[1:-1] + columns = ['#Tmesh'] + + if self.scale_points=="S": + vol2 ,fits= self.vol_E2Vib1(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol2_tref,fits = self.vol_E2Vib1(num=1,tstop=tref,tstart=tref) + + if (len(self.index_list)==2): + vol ,fits = self.vol_Einf_Vib1(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref,fits = self.vol_Einf_Vib1(num=1,tstop=tref,tstart=tref) + method =r"$ (E_\infty Vib1)$" + + if (len(self.index_list)==3): + vol,fits = self.vol_Einf_Vib2(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref,fits = self.vol_Einf_Vib2(num=1,tstop=tref,tstart=tref) + method =r"$ (E_\infty Vib2)$" + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_tot_energies(tstart, tstop, num,tot_en , self.volumes_from_phdos) + method =r"$ (E_\infty Vib4)$" + vol,fits = self.vol_Einf_Vib4(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref,fits = self.vol_Einf_Vib4(num=1,tstop=tref,tstart=tref) + + #alpha = self.get_thermal_expansion_coeff(tstart, tstop, num, tref) + tmesh = np.linspace(tstart, tstop, num) + dt= tmesh[1] - tmesh[0] + + aa,bb,cc = self.get_abc(tstart, tstop, num,vol) + if (tref!=None): + aa_tref,bb_tref,cc_tref = self.get_abc(tref, tref, 1,vol_tref) + + alpha_a = np.zeros( num-2) + alpha_b = np.zeros( num-2) + alpha_c = np.zeros( num-2) + if (tref==None): + alpha_a = (aa[2:] - aa[:-2]) / (2 * dt) / aa[1:-1] + alpha_b = (bb[2:] - bb[:-2]) / (2 * dt) / bb[1:-1] + alpha_c = (cc[2:] - cc[:-2]) / (2 * dt) / cc[1:-1] + else: + alpha_a = (aa[2:] - aa[:-2]) / (2 * dt) / aa_tref + alpha_b = (bb[2:] - bb[:-2]) / (2 * dt) / bb_tref + alpha_c = (cc[2:] - cc[:-2]) / (2 * dt) / cc_tref + + ax.plot(tmesh[1:-1] ,alpha_a , color='r', lw=2,label = r"$\alpha_a$"+method, **kwargs) + ax.plot(tmesh[1:-1] ,alpha_b , color='b', lw=2,label = r"$\alpha_b$"+method) + ax.plot(tmesh[1:-1] ,alpha_c , color='m', lw=2,label = r"$\alpha_c$"+method) + + method_header=method+" (alpha_a,alpha_b,alpha_c) |" + data_to_save = np.column_stack((data_to_save,alpha_a,alpha_b,alpha_c)) + columns.append( method_header) + + if abs(abs(self.volumes[self.iv0]-volumes[iv0])-abs(volumes[iv1]-self.volumes[self.iv0]))<1e-3 : + aa2,bb2,cc2 = self.get_abc(tstart, tstop, num,vol2) + if (tref!=None): + aa2_tref,bb2_tref,cc2_tref = self.get_abc(tref, tref, 1,vol2_tref) + + alpha2_a = np.zeros( num-2) + alpha2_b = np.zeros( num-2) + alpha2_c = np.zeros( num-2) + if (tref==None): + alpha2_a = (aa2[2:] - aa2[:-2]) / (2 * dt) / aa2[1:-1] + alpha2_b = (bb2[2:] - bb2[:-2]) / (2 * dt) / bb2[1:-1] + alpha2_c = (cc2[2:] - cc2[:-2]) / (2 * dt) / cc2[1:-1] + else: + alpha2_a = (aa2[2:] - aa2[:-2]) / (2 * dt) / aa2_tref + alpha2_b = (bb2[2:] - bb2[:-2]) / (2 * dt) / bb2_tref + alpha2_c = (cc2[2:] - cc2[:-2]) / (2 * dt) / cc2_tref + + ax.plot(tmesh[1:-1] ,alpha2_a , linestyle='dashed' , color='r', lw=2 ,label = r"$\alpha_a$"" (E2vib1)") + ax.plot(tmesh[1:-1] ,alpha2_b , linestyle='dashed' , color='b', lw=2 ,label = r"$\alpha_b$"" (E2vib1)") + ax.plot(tmesh[1:-1] ,alpha2_c , linestyle='dashed' , color='m', lw=2 ,label = r"$\alpha_c$"" (E2vib1)") + data_to_save = np.column_stack((data_to_save,alpha2_a,alpha2_b,alpha2_c)) + columns.append( 'E2vib1 (alpha_a,alpha_b,alpha_c) ') + + ax.set_xlabel(r'T (K)') + ax.set_ylabel(r'$\alpha$ (K$^{-1}$)') + ax.legend() + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + @add_fig_kwargs + def plot_thermal_expansion_coeff_angles(self, tstart=0, tstop=1000, num=101, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + data_to_save = tmesh[1:-1] + columns = ['#Tmesh'] + + if self.scale_points=="S": + vol2 ,fits= self.vol_E2Vib1(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol2_tref,fits = self.vol_E2Vib1(num=1,tstop=tref,tstart=tref) + + if (len(self.index_list)==2): + vol ,fits = self.vol_Einf_Vib1(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref,fits = self.vol_Einf_Vib1(num=1,tstop=tref,tstart=tref) + method =r"$ (E_\infty Vib1)$" + + if (len(self.index_list)==3): + vol,fits = self.vol_Einf_Vib2(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref,fits = self.vol_Einf_Vib2(num=1,tstop=tref,tstart=tref) + method =r"$ (E_\infty Vib2)$" + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_tot_energies(tstart, tstop, num,tot_en , self.volumes_from_phdos) + method =r"$ (E_\infty Vib4)$" + vol,fits = self.vol_Einf_Vib4(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref,fits = self.vol_Einf_Vib4(num=1,tstop=tref,tstart=tref) + + #alpha = self.get_thermal_expansion_coeff(tstart, tstop, num, tref) + tmesh = np.linspace(tstart, tstop, num) + dt= tmesh[1] - tmesh[0] + + alpha,beta,cc = self.get_angles(tstart, tstop, num,vol) + if (tref!=None): + alpha_tref,beta_tref,cc_tref = self.get_angles(tref, tref, 1,vol_tref) + + alpha_alpha = np.zeros( num-2) + alpha_beta = np.zeros( num-2) + alpha_gamma = np.zeros( num-2) + if (tref==None): + alpha_alpha = (alpha[2:] - alpha[:-2]) / (2 * dt) / alpha[1:-1] + alpha_beta = (beta[2:] - beta[:-2]) / (2 * dt) / beta[1:-1] + alpha_gamma = (cc[2:] - cc[:-2]) / (2 * dt) / cc[1:-1] + else: + alpha_alpha = (alpha[2:] - alpha[:-2]) / (2 * dt) / alpha_tref + alpha_beta = (beta[2:] - beta[:-2]) / (2 * dt) / beta_tref + alpha_gamma = (cc[2:] - cc[:-2]) / (2 * dt) / cc_tref + + ax.plot(tmesh[1:-1] ,alpha_alpha , color='r', lw=2,label = r"$\alpha_alpha$"+method, **kwargs) + ax.plot(tmesh[1:-1] ,alpha_beta , color='b', lw=2,label = r"$\alpha_beta$"+method) + ax.plot(tmesh[1:-1] ,alpha_gamma , color='m', lw=2,label = r"$\alpha_gamma$"+method) + + method_header=method+" (alpha_alpha,alpha_beta,alpha_gamma) |" + data_to_save = np.column_stack((data_to_save,alpha_alpha,alpha_beta,alpha_gamma)) + columns.append( method_header) + + if abs(abs(self.volumes[self.iv0]-volumes[iv0])-abs(volumes[iv1]-self.volumes[self.iv0]))<1e-3 : + alpha2,beta2,cc2 = self.get_angles(tstart, tstop, num,vol2) + if (tref!=None): + alpha2_tref,beta2_tref,cc2_tref = self.get_angles(tref, tref, 1,vol2_tref) + + alpha2_alpha = np.zeros( num-2) + alpha2_beta = np.zeros( num-2) + alpha2_gamma = np.zeros( num-2) + if (tref==None): + alpha2_alpha = (alpha2[2:] - alpha2[:-2]) / (2 * dt) / alpha2[1:-1] + alpha2_beta = (beta2[2:] - beta2[:-2]) / (2 * dt) / beta2[1:-1] + alpha2_gamma = (cc2[2:] - cc2[:-2]) / (2 * dt) / cc2[1:-1] + else: + alpha2_alpha = (alpha2[2:] - alpha2[:-2]) / (2 * dt) / alpha2_tref + alpha2_beta = (beta2[2:] - beta2[:-2]) / (2 * dt) / beta2_tref + alpha2_gamma = (cc2[2:] - cc2[:-2]) / (2 * dt) / cc2_tref + + ax.plot(tmesh[1:-1] ,alpha2_alpha , linestyle='dashed' , color='r', lw=2 ,label = r"$\alpha_alpha$"" (E2vib1)") + ax.plot(tmesh[1:-1] ,alpha2_beta , linestyle='dashed' , color='b', lw=2 ,label = r"$\alpha_beta$"" (E2vib1)") + ax.plot(tmesh[1:-1] ,alpha2_gamma , linestyle='dashed' , color='m', lw=2 ,label = r"$\alpha_gamma$"" (E2vib1)") + data_to_save = np.column_stack((data_to_save,alpha2_alpha,alpha2_beta,alpha2_gamma)) + columns.append( 'E2vib1 (alpha_alpha,alpha_beta,alpha_gamma) ') + + ax.set_xlabel(r'T (K)') + ax.set_ylabel(r'$\alpha$ (K$^{-1}$)') + ax.legend() + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + + @add_fig_kwargs + def plot_abc_vs_t(self, tstart=0, tstop=1000, num=101, lattice=None, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + + data_to_save = tmesh + columns = ['#Tmesh'] + if self.scale_points=="S": + vol2,fits = self.vol_E2Vib1(num=num,tstop=tstop,tstart=tstart) + aa2,bb2,cc2 = self.get_abc(tstart, tstop, num,vol2) + data_to_save = np.column_stack((data_to_save,aa2,bb2,cc2)) + columns.append( 'E2vib1 (a,b,c) | ') + + if (len(self.index_list)==2): + vol ,fits = self.vol_Einf_Vib1(num=num,tstop=tstop,tstart=tstart) + method =r"$ (E_\infty Vib1)$" + + if (len(self.index_list)==3): + vol,fits = self.vol_Einf_Vib2(num=num,tstop=tstop,tstart=tstart) + method =r"$ (E_\infty Vib2)$" + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_tot_energies(tstart, tstop, num,tot_en , self.volumes_from_phdos) + method =r"$ (E_\infty Vib4)$" + vol,fits = self.vol_Einf_Vib4(num=num,tstop=tstop,tstart=tstart) + aa,bb,cc = self.get_abc(tstart, tstop, num,vol) + + method_header=method+" (a,b,c) |" + data_to_save = np.column_stack((data_to_save,aa,bb,cc)) + columns.append( method_header) + + if (lattice==None or lattice=="a"): + ax.plot(tmesh ,aa , color='r', lw=2,label = r"$a(V(T))$"+method, **kwargs ) + if (lattice==None or lattice=="b"): + ax.plot(tmesh ,bb , color='b', lw=2,label = r"$b(V(T))$"+method ) + if (lattice==None or lattice=="c"): + ax.plot(tmesh ,cc , color='m', lw=2,label = r"$c(V(T))$"+method ) + + if abs(abs(self.volumes[self.iv0]-volumes[iv0])-abs(volumes[iv1]-self.volumes[self.iv0]))<1e-3 : + if (lattice==None or lattice=="a"): + ax.plot(tmesh ,aa2 , linestyle='dashed' , color='r', lw=2,label = r"$a(V(T))$""E2vib1" ) + if (lattice==None or lattice=="b"): + ax.plot(tmesh ,bb2 , linestyle='dashed' , color='b', lw=2,label = r"$b(V(T))$""E2vib1" ) + if (lattice==None or lattice=="c"): + ax.plot(tmesh ,cc2 , linestyle='dashed' , color='m', lw=2,label = r"$c(V(T))$""E2vib1" ) + + ax.set_xlabel(r'T (K)') + ax.legend() + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + @add_fig_kwargs + def plot_angles_vs_t(self, tstart=0, tstop=1000, num=101, angle=None, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + + data_to_save = tmesh + columns = ['#Tmesh'] + if self.scale_points=="S": + vol2,fits = self.vol_E2Vib1(num=num,tstop=tstop,tstart=tstart) + alpha2,beta2,gamma2 = self.get_angles(tstart, tstop, num,vol2) + data_to_save = np.column_stack((data_to_save,alpha2,beta2,gamma2)) + columns.append( 'E2vib1 (alpha,beta,gamma) | ') + + if (len(self.index_list)==2): + vol ,fits = self.vol_Einf_Vib1(num=num,tstop=tstop,tstart=tstart) + method =r"$ (E_\infty Vib1)$" + + if (len(self.index_list)==3): + vol,fits = self.vol_Einf_Vib2(num=num,tstop=tstop,tstart=tstart) + method =r"$ (E_\infty Vib2)$" + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_tot_energies(tstart, tstop, num,tot_en , self.volumes_from_phdos) + method =r"$ (E_\infty Vib4)$" + vol,fits = self.vol_Einf_Vib4(num=num,tstop=tstop,tstart=tstart) + alpha,beta,gamma = self.get_angles(tstart, tstop, num,vol) + + method_header=method+" (alpha,beta,gamm) |" + data_to_save = np.column_stack((data_to_save,alpha,beta,gamma)) + columns.append( method_header) + + if (angle==None or angle==1): + ax.plot(tmesh ,alpha , color='r', lw=2,label = r"$alpha(V(T))$"+method, **kwargs ) + if (angle==None or angle==2): + ax.plot(tmesh ,beta , color='b', lw=2,label = r"$beta(V(T))$"+method ) + if (angle==None or angle==3): + ax.plot(tmesh ,gamma , color='m', lw=2,label = r"$gamma(V(T))$"+method ) + + if abs(abs(self.volumes[self.iv0]-volumes[iv0])-abs(volumes[iv1]-self.volumes[self.iv0]))<1e-3 : + if (angle==None or angle==1): + ax.plot(tmesh ,alpha2 , linestyle='dashed' , color='r', lw=2,label = r"$alpha(V(T))$""E2vib1" ) + if (angle==None or angle==2): + ax.plot(tmesh ,beta2 , linestyle='dashed' , color='b', lw=2,label = r"$beta(V(T))$""E2vib1" ) + if (angle==None or angle==3): + ax.plot(tmesh ,gamma2 , linestyle='dashed' , color='m', lw=2,label = r"$gamma(V(T))$""E2vib1" ) + + ax.set_xlabel(r'T (K)') + ax.legend() + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& + def fit_forth(self, tstart=0, tstop=1000, num=1,energy="energy",volumes="volumes"): + """ + Performs a fit of the energies as a function of the volume at different temperatures. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + + Returns: + `namedtuple` with the following attributes:: + + tot_en: numpy array with shape (nvols, num) with the energies used for the fit + fits: list of subclasses of pymatgen.analysis.eos.EOSBase, depending on the type of + eos chosen. Contains the fit for the energies at the different temperatures. + min_en: numpy array with the minimum energies for the list of temperatures + min_vol: numpy array with the minimum volumes for the list of temperatures + temp: numpy array with the temperatures considered + """ + tmesh = np.linspace(tstart, tstop, num) + + param = np.zeros((num,5)) + param2 = np.zeros((num,4)) + param3 = np.zeros((num,3)) + min_vol = np.zeros((num)) + min_en = np.zeros((num)) + F2D_V = np.zeros((num)) + for j,e in enumerate(energy.T): + param[j]=np.polyfit(volumes,e , 4) + param2[j]=np.array([4*param[j][0],3*param[j][1],2*param[j][2],param[j][3]]) + param3[j]=np.array([12*param[j][0],6*param[j][1],2*param[j][2]]) + p = np.poly1d(param[j]) + p2 = np.poly1d(param2[j]) + p3 = np.poly1d(param3[j]) + min_vol[j]=self.volumes[self.iv0] + vv=self.volumes[self.iv0] + while p2(min_vol[j])**2 > 1e-16 : + min_vol[j]=min_vol[j]-p2(min_vol[j])*10 + min_en[j]=p(min_vol[j]) + F2D_V[j]=p3(min_vol[j]) + + return dict2namedtuple(min_vol=min_vol, temp=tmesh , min_en=min_en , param=param , F2D_V=F2D_V)#, fits=fits) + + def vol_E2Vib1_forth(self, tstart=0, tstop=1000, num=101): + + volumes0= self.volumes_from_phdos + iv0=self.iv0_vib + iv1=self.iv1_vib + + dV=volumes0[iv1]-volumes0[iv0] + V0=self.volumes[self.iv0] + + energy = self.energies[np.newaxis, :].T + f=self.fit_forth( tstart=0, tstop=0, num=1 ,energy=energy,volumes=self.volumes) + param3 = np.zeros((num,3)) + param3=np.array([12*f.param[0][0],6*f.param[0][1],2*f.param[0][2]]) + p3 = np.poly1d(param3) + E2D = p3(V0) + + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + vol = np.zeros( num) + + for i,e in enumerate(ph_energies.T): + dfe_dV1=(e[iv1]-e[iv0])/dV + vol[i]=V0-dfe_dV1*E2D**-1 + + return vol + + def vol_EinfVib1_forth(self, tstart=0, tstop=1000, num=101): + """ + Plot the volume as a function of the temperature. + Returns: |Vol| + """ + + volumes0= self.volumes_from_phdos + iv0=self.iv0_vib + iv1=self.iv1_vib + V0= self.V0_vib + + dV=volumes0[iv1]-volumes0[iv0] + + energy = self.energies[np.newaxis, :].T + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + vol = np.zeros( num) + + dfe_dV= np.zeros( num) + + for i,e in enumerate(ph_energies.T): + dfe_dV[i]=(e[iv1]-e[iv0])/dV + tot_en = self.energies[np.newaxis, :].T + ( self.volumes[np.newaxis, :].T -V0) * dfe_dV + + f=self.fit_forth( tstart, tstop, num ,tot_en,self.volumes) + vol=f.min_vol + + return vol + def vol_Einf_Vib2_forth(self, tstart=0, tstop=1000, num=101): + """ + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + + Returns: |Vol| + """ + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + energies = self.energies + volumes0= self.volumes_from_phdos + volumes= self.volumes + vol = np.zeros( num) + dfe_dV= np.zeros( num) + d2fe_dV2= np.zeros( num) + fe_V0= np.zeros( num) + if (len(self.index_list)==5): + iv0=2 + else : + iv0=1 + dV=volumes0[iv0]-volumes0[iv0-1] + V0=volumes0[iv0] + for i,e in enumerate(ph_energies.T): + dfe_dV[i]=(e[iv0+1]-e[iv0-1])/(2*dV) + d2fe_dV2[i]=(e[iv0+1]-2.0*e[iv0]+e[iv0-1])/(dV)**2 + fe_V0[i]= e[iv0] + + tot_en = self.energies[np.newaxis, :].T + ( self.volumes[np.newaxis, :].T -V0) * dfe_dV + tot_en = tot_en + 0.5* (( self.volumes[np.newaxis, :].T -V0))**2*(d2fe_dV2) + tot_en = tot_en+ fe_V0 + f=self.fit_forth( tstart, tstop, num ,tot_en,self.volumes) + vol=f.min_vol + + return vol + def vol_Einf_Vib4_forth(self, tstart=0, tstop=1000, num=101): + """ + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + + Returns: |Vol| + """ + + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + energies = self.energies + volumes0= self.volumes_from_phdos + volumes= self.volumes + vol = np.zeros( num) + dfe_dV1= np.zeros( num) + dfe_dV2= np.zeros( num) + dfe_dV3= np.zeros( num) + dfe_dV4= np.zeros( num) + fe_V0= np.zeros( num) + iv0=2 + dV=volumes0[2]-volumes0[1] + + for i,e in enumerate(ph_energies.T): + dfe_dV1[i]=(-e[iv0+2]+ 8*e[iv0+1]-8*e[iv0-1]+e[iv0-2])/(12*dV) + dfe_dV2[i]=(-e[iv0+2]+16*e[iv0+1]-30*e[iv0]+16*e[iv0-1]-e[iv0-2])/(12*dV**2) + dfe_dV3[i]=(e[iv0+2]-2*e[iv0+1]+2*e[iv0-1]-e[iv0-2])/(2*dV**3) + dfe_dV4[i]=(e[iv0+2]-4*e[iv0+1]+6*e[iv0]-4*e[iv0-1]+e[iv0-2])/(dV**4) + + fe_V0[i]= e[iv0] + V0=volumes0[iv0] + + tot_en = ( volumes[np.newaxis, :].T -V0) * dfe_dV1 + 0.5* ( volumes[np.newaxis, :].T -V0)**2*(dfe_dV2) + tot_en = tot_en+( volumes[np.newaxis, :].T -V0)**3 *dfe_dV3/6 + ( volumes[np.newaxis, :].T -V0)**4*(dfe_dV4/24) + tot_en = tot_en + fe_V0 +energies[np.newaxis, :].T + + f=self.fit_forth( tstart, tstop, num ,tot_en,self.volumes) + vol=f.min_vol + + return vol +#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + @add_fig_kwargs + def plot_vol_vs_t_4th(self, tstart=0, tstop=1000, num=101, ax=None, **kwargs): + """ + Plot the volume as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + + data_to_save = tmesh + columns = ['#Tmesh'] + if self.scale_points=="S": + vol_4th = self.vol_E2Vib1_forth(num=num,tstop=tstop,tstart=tstart) + ax.plot(tmesh, vol_4th,color='b', lw=2, label="E2Vib1") + data_to_save = np.column_stack((data_to_save,vol_4th)) + columns.append( 'E2vib1') + + if (len(self.index_list)>=2): + vol2_4th = self.vol_EinfVib1_forth(num=num,tstop=tstop,tstart=tstart) + ax.plot(tmesh, vol2_4th,color='gold', lw=2 , label=r"$E_\infty Vib1$") + data_to_save = np.column_stack((data_to_save,vol2_4th)) + columns.append( 'Einfvib1') + + if (len(self.index_list)>=3): + vol3_4th = self.vol_Einf_Vib2_forth(num=num,tstop=tstop,tstart=tstart) + ax.plot(tmesh, vol3_4th,color='m', lw=2 , label=r"$E_\infty Vib2$") + data_to_save = np.column_stack((data_to_save,vol3_4th)) + columns.append( 'Einfvib2') + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_forth( tstart, tstop, num ,tot_en,volumes) + vol4_4th = self.vol_Einf_Vib4_forth(num=num,tstop=tstop,tstart=tstart) + ax.plot(tmesh, vol4_4th,color='c', lw=2 ,label=r"$E_\infty Vib4$") + ax.plot(tmesh, f0.min_vol, color='k',linestyle='dashed', lw=1.5 ,label="QHA") + data_to_save = np.column_stack((data_to_save,vol4_4th,f0.min_vol)) + columns.append( 'Einfvib4') + columns.append( 'QHA') + + ax.plot(0, self.volumes[self.iv0], color='g', lw=0, marker='o', ms=10,label="V0") + ax.set_xlabel('T (K)') + ax.set_ylabel(r'V (${\AA}^3$)') + ax.set_xlim(tstart, tstop) + ax.grid(True) + ax.legend() + + return fig + + def get_thermal_expansion_coeff_4th(self, tstart=0, tstop=1000, num=101 , tref=None): + """ + Calculates the thermal expansion coefficient as a function of temperature, using + finite difference on the fitted values of the volume as a function of temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + + num: int, optional Number of samples to generate. Default is 100. + + Returns: |Function1D| + """ + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f = self.fit_forth( tstart, tstop, num ,tot_en,self.volumes_from_phdos) + if (tref!=None): + ph_energies2 = self.get_vib_free_energies(tref, tref, 1) + tot_en2 = self.energies_pdos[np.newaxis, :].T + ph_energies2 + f0 = self.fit_forth(tref, tref , 1 ,tot_en2 , self.volumes_from_phdos) + + dt = f.temp[1] - f.temp[0] + thermo = self.get_thermodynamic_properties(tstart=tstart, tstop=tstop, num=num) + entropy = thermo.entropy.T #* abu.e_Cb * abu.Avogadro + df_t = np.zeros((num,self.nvols)) + df_t = - entropy + param = np.zeros((num,4)) + param2 = np.zeros((num,3)) + d2f_t_v = np.zeros(num) + gamma = np.zeros(num) + + #for j in range (1,num-1): + for j in range (num): + param[j]=np.polyfit(self.volumes_from_phdos,df_t[j] , 3) + param2[j] = np.array([3*param[j][0],2*param[j][1],param[j][2]]) + + p = np.poly1d(param2[j]) + d2f_t_v[j]= p(f.min_vol[j]) + + F2D = f.F2D_V + if (tref==None): + #alpha= - 1/f.min_vol[1:-1] *d2f_t_v[1:-1] / F2D[1:-1] + alpha= - 1/f.min_vol *d2f_t_v / F2D + else : + #alpha= - 1/f0.min_vol * d2f_t_v[1:-1] / F2D[1:-1] + alpha= - 1/f0.min_vol * d2f_t_v / F2D + + return alpha + @add_fig_kwargs + def plot_thermal_expansion_coeff_4th(self, tstart=0, tstop=1000, num=101, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + tmesh = np.linspace(tstart, tstop, num) + thermo = self.get_thermodynamic_properties(tstart=tstart, tstop=tstop, num=num) + entropy = thermo.entropy.T #* abu.e_Cb * abu.Avogadro + df_t = np.zeros((num,self.nvols)) + df_t = - entropy + volumes=self.volumes_from_phdos + + data_to_save = tmesh + columns = ['#Tmesh'] + iv0=self.iv0_vib + iv1=self.iv1_vib + dV=volumes[iv0+1]-volumes[iv0] + energy = self.energies[np.newaxis, :].T + f=self.fit_forth( tstart=0, tstop=0, num=1 ,energy=energy,volumes=self.volumes) + param3 = np.zeros((num,3)) + param3=np.array([12*f.param[0][0],6*f.param[0][1],2*f.param[0][2]]) + p3 = np.poly1d(param3) + + if self.scale_points=="S": + vol_4th = self.vol_E2Vib1_forth(num=num,tstop=tstop,tstart=tstart) + E2D = p3(self.volumes[self.iv0]) + if (tref==None): + alpha_1 = - 1/vol_4th[:] * (df_t[:,iv1]-df_t[:,iv0])/(volumes[iv1]-volumes[iv0]) / E2D + else : + vol_4th_ref = self.vol_E2Vib1_forth(num=1,tstop=tref,tstart=tref) + alpha_1 = - 1/vol_4th_ref * (df_t[:,iv1]-df_t[:,iv0])/(volumes[iv1]-volumes[iv0]) / E2D + ax.plot(tmesh, alpha_1,color='b', lw=2, label="E2Vib1") + data_to_save = np.column_stack((data_to_save,alpha_1)) + columns.append( 'E2vib1') + + if (len(self.index_list)>=2): + vol2_4th = self.vol_EinfVib1_forth(num=num,tstop=tstop,tstart=tstart) + #E2D_V = self.second_derivative_energy_v(vol2) + E2D_V = p3(vol2_4th) + if (tref==None): + alpha_2 = - 1/vol2_4th[:] * (df_t[:,iv1]-df_t[:,iv0])/(volumes[iv1]-volumes[iv0]) / E2D_V[:] + else : + vol2_4th_ref = self.vol_EinfVib1_forth(num=1,tstop=tref,tstart=tref) + alpha_2 = - 1/vol2_4th_ref * (df_t[:,iv1]-df_t[:,iv0])/(volumes[iv1]-volumes[iv0]) / E2D_V[:] + ax.plot(tmesh, alpha_2,color='gold', lw=2 , label=r"$E_\infty Vib1$") + data_to_save = np.column_stack((data_to_save,alpha_2)) + columns.append( 'Einfvib1') + + if (len(self.index_list)>=3): + vol3_4th = self.vol_Einf_Vib2_forth(num=num,tstop=tstop,tstart=tstart) + E2D_V = p3(vol3_4th) + dfe_dV2= np.zeros( num) + for i,e in enumerate(ph_energies.T): + dfe_dV2[i]=(e[iv0+2]-2.0*e[iv0+1]+e[iv0])/(dV)**2 + + ds_dv = (df_t[:,iv0+2]-df_t[:,iv0])/(2*dV) + ds_dv = ds_dv+ (df_t[:,iv0+2]-2*df_t[:,iv0+1]+df_t[:,iv0])/dV**2 * (vol3_4th[:]-volumes[iv0+1]) + if (tref==None): + alpha_3 = - 1/vol3_4th[:] * ds_dv / (E2D_V[:]+dfe_dV2[:]) + else : + vol3_4th_ref = self.vol_Einf_Vib2_forth(num=1,tstop=tref,tstart=tref) + alpha_3 = - 1/vol3_4th_ref * ds_dv / (E2D_V[:]+dfe_dV2[:]) + ax.plot(tmesh, alpha_3,color='m', lw=2 , label=r"$E_\infty Vib2$") + data_to_save = np.column_stack((data_to_save,alpha_3)) + columns.append( 'Einfvib2') + + if (len(self.index_list)==5): + vol4_4th = self.vol_Einf_Vib4_forth(num=num,tstop=tstop,tstart=tstart) + E2D_V = p3(vol4_4th) + + d2fe_dV2= np.zeros( num) + d3fe_dV3= np.zeros( num) + d4fe_dV4= np.zeros( num) + for i,e in enumerate(ph_energies.T): + d2fe_dV2[i]=(-e[4]+16*e[3]-30*e[2]+16*e[1]-e[0])/(12*dV**2) + d3fe_dV3[i]=(e[4]-2*e[3]+2*e[1]-e[0])/(2*dV**3) + d4fe_dV4[i]=(e[4]-4*e[3]+6*e[2]-4*e[1]+e[0])/(dV**4) + + ds_dv =(-df_t[:,4]+ 8*df_t[:,3]-8*df_t[:,1]+df_t[:,0])/(12*dV) + ds_dv = ds_dv+ (-df_t[:,4]+16*df_t[:,3]-30*df_t[:,2]+16*df_t[:,1]-df_t[:,0])/(12*dV**2) * (vol4_4th[:]-volumes[2]) + ds_dv = ds_dv+ 1.0/2.0*(df_t[:,4]-2*df_t[:,3]+2*df_t[:,1]-df_t[:,0])/(2*dV**3) * (vol4_4th[:]-volumes[2])**2 + ds_dv = ds_dv+ 1.0/6.0* (df_t[:,4]-4*df_t[:,3]+6*df_t[:,2]-4*df_t[:,1]+df_t[:,0])/(dV**4)* (vol4_4th[:]-volumes[2])**3 + D2F=E2D_V[:]+d2fe_dV2[:]+ (vol4_4th[:]-volumes[2])*d3fe_dV3[:]+0.5*(vol4_4th[:]-volumes[2])**2*d4fe_dV4[:] + if (tref==None): + alpha_4 = - 1/vol4_4th[:] * ds_dv / D2F + else : + vol4_4th_ref = self.vol_Einf_Vib4_forth(num=1,tstop=tref,tstart=tref) + alpha_4 = - 1/vol4_4th_ref * ds_dv / D2F + + + ax.plot(tmesh, alpha_4,color='c',linewidth=2 , label=r"$E_\infty Vib4$") + + alpha_qha = self.get_thermal_expansion_coeff_4th(tstart, tstop, num, tref) + ax.plot(tmesh, alpha_qha, color='k',linestyle='dashed', lw=1.5 ,label="QHA") + data_to_save = np.column_stack((data_to_save,alpha_4,alpha_qha)) + columns.append( 'Einfvib4') + columns.append( 'QHA') + + + ax.set_xlabel(r'T (K)') + ax.set_ylabel(r'$\alpha$ (K$^{-1}$)') + ax.grid(True) + ax.legend() + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + @add_fig_kwargs + def plot_abc_vs_t_4th(self, tstart=0, tstop=1000, num=101, lattice=None,tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + + data_to_save = tmesh + columns = ['#Tmesh'] + if self.scale_points=="S": + vol2 = self.vol_E2Vib1_forth(num=num,tstop=tstop,tstart=tstart) + aa2,bb2,cc2 = self.get_abc(tstart, tstop, num,vol2) + data_to_save = np.column_stack((data_to_save,aa2,bb2,cc2)) + columns.append( 'E2vib1 (a,b,c) | ') + + if (len(self.index_list)==2): + vol = self.vol_EinfVib1_forth(num=num,tstop=tstop,tstart=tstart) + method =r"$ (E_\infty Vib1)$" + + if (len(self.index_list)==3): + vol = self.vol_Einf_Vib2_forth(num=num,tstop=tstop,tstart=tstart) + method =r"$ (E_\infty Vib2)$" + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_forth( tstart, tstop, num ,tot_en,volumes) + method =r"$ (E_\infty Vib4)$" + vol = self.vol_Einf_Vib4_forth(num=num,tstop=tstop,tstart=tstart) + aa,bb,cc = self.get_abc(tstart, tstop, num,vol) + + method_header=method+" (a,b,c) |" + data_to_save = np.column_stack((data_to_save,aa,bb,cc)) + columns.append( method_header) + + if (lattice==None or lattice=="a"): + ax.plot(tmesh ,aa , color='r', lw=2,label = r"$a(V(T))$"+method, **kwargs ) + if (lattice==None or lattice=="b"): + ax.plot(tmesh ,bb , color='b', lw=2,label = r"$b(V(T))$"+method ) + if (lattice==None or lattice=="c"): + ax.plot(tmesh ,cc , color='m', lw=2,label = r"$c(V(T))$"+method ) + + if abs(abs(self.volumes[self.iv0]-volumes[iv0])-abs(volumes[iv1]-self.volumes[self.iv0]))<1e-3 : + if (lattice==None or lattice=="a"): + ax.plot(tmesh ,aa2 , linestyle='dashed' , color='r', lw=2,label = r"$a(V(T))$""E2vib1" ) + if (lattice==None or lattice=="b"): + ax.plot(tmesh ,bb2 , linestyle='dashed' , color='b', lw=2,label = r"$b(V(T))$""E2vib1" ) + if (lattice==None or lattice=="c"): + ax.plot(tmesh ,cc2 , linestyle='dashed' , color='m', lw=2,label = r"$c(V(T))$""E2vib1" ) + + ax.set_xlabel(r'T (K)') + ax.legend() + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + @add_fig_kwargs + def plot_angles_vs_t_4th(self, tstart=0, tstop=1000, num=101,angle=None, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + + data_to_save = tmesh + columns = ['#Tmesh'] + if self.scale_points=="S": + vol2 = self.vol_E2Vib1_forth(num=num,tstop=tstop,tstart=tstart) + alpha2,beta2,gamma2 = self.get_angles(tstart, tstop, num,vol2) + data_to_save = np.column_stack((data_to_save,alpha2,beta2,gamma2)) + columns.append( 'E2vib1 (alpha,beta,gamma) | ') + + if (len(self.index_list)==2): + vol = self.vol_EinfVib1_forth(num=num,tstop=tstop,tstart=tstart) + method =r"$ (E_\infty Vib1)$" + + if (len(self.index_list)==3): + vol = self.vol_Einf_Vib2_forth(num=num,tstop=tstop,tstart=tstart) + method =r"$ (E_\infty Vib2)$" + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_forth( tstart, tstop, num ,tot_en,volumes) + method =r"$ (E_\infty Vib4)$" + vol = self.vol_Einf_Vib4_forth(num=num,tstop=tstop,tstart=tstart) + alpha,beta,gamma = self.get_angles(tstart, tstop, num,vol) + + method_header=method+" (alpha,beta,gamma) |" + data_to_save = np.column_stack((data_to_save,alpha,beta,gamma)) + columns.append( method_header) + + if (angle==None or angle==1): + ax.plot(tmesh ,alpha , color='r', lw=2,label = r"$alpha(V(T))$"+method, **kwargs ) + if (angle==None or angle==2): + ax.plot(tmesh ,beta , color='b', lw=2,label = r"$beta(V(T))$"+method ) + if (angle==None or angle==3): + ax.plot(tmesh ,gamma , color='m', lw=2,label = r"$gamma(V(T))$"+method ) + + if abs(abs(self.volumes[self.iv0]-volumes[iv0])-abs(volumes[iv1]-self.volumes[self.iv0]))<1e-3 : + if (angle==None or angle==1): + ax.plot(tmesh ,alpha2 , linestyle='dashed' , color='r', lw=2,label = r"$alpha(V(T))$""E2vib1" ) + if (angle==None or angle==2): + ax.plot(tmesh ,beta2 , linestyle='dashed' , color='b', lw=2,label = r"$beta(V(T))$""E2vib1" ) + if (angle==None or angle==3): + ax.plot(tmesh ,gamma2 , linestyle='dashed' , color='m', lw=2,label = r"$gamma(V(T))$""E2vib1" ) + + ax.set_xlabel(r'T (K)') + ax.legend() + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig +################################################################################################### + @add_fig_kwargs + def plot_thermal_expansion_coeff_abc_4th(self, tstart=0, tstop=1000, num=101, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + + data_to_save = tmesh[1:-1] + columns = ['#Tmesh'] + if self.scale_points=="S": + vol2 = self.vol_E2Vib1_forth(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol2_tref = self.vol_E2Vib1_forth(num=1,tstop=tref,tstart=tref) + + if (len(self.index_list)==2): + vol = self.vol_EinfVib1_forth(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref = self.vol_EinfVib1_forth(num=1,tstop=tref,tstart=tref) + method =r"$ (E_\infty Vib1)$" + + if (len(self.index_list)==3): + vol = self.vol_Einf_Vib2_forth(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref = self.vol_Einf_Vib2_forth(num=1,tstop=tref,tstart=tref) + method =r"$ (E_\infty Vib2)$" + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_forth( tstart, tstop, num ,tot_en,volumes) + method =r"$ (E_\infty Vib4)$" + vol = self.vol_Einf_Vib4_forth(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref = self.vol_Einf_Vib4_forth(num=1,tstop=tref,tstart=tref) + + #alpha = self.get_thermal_expansion_coeff(tstart, tstop, num, tref) + tmesh = np.linspace(tstart, tstop, num) + dt= tmesh[1] - tmesh[0] + + aa,bb,cc = self.get_abc(tstart, tstop, num,vol) + if (tref!=None): + aa_tref,bb_tref,cc_tref = self.get_abc(tref, tref, 1,vol_tref) + + alpha_a = np.zeros( num-2) + alpha_b = np.zeros( num-2) + alpha_c = np.zeros( num-2) + if (tref==None): + alpha_a = (aa[2:] - aa[:-2]) / (2 * dt) / aa[1:-1] + alpha_b = (bb[2:] - bb[:-2]) / (2 * dt) / bb[1:-1] + alpha_c = (cc[2:] - cc[:-2]) / (2 * dt) / cc[1:-1] + else: + alpha_a = (aa[2:] - aa[:-2]) / (2 * dt) / aa_tref + alpha_b = (bb[2:] - bb[:-2]) / (2 * dt) / bb_tref + alpha_c = (cc[2:] - cc[:-2]) / (2 * dt) / cc_tref + + ax.plot(tmesh[1:-1] ,alpha_a , color='r', lw=2,label = r"$\alpha_a$"+method, **kwargs) + ax.plot(tmesh[1:-1] ,alpha_b , color='b', lw=2,label = r"$\alpha_b$"+method) + ax.plot(tmesh[1:-1] ,alpha_c , color='m', lw=2,label = r"$\alpha_c$"+method) + + method_header=method+" (alpha_a,alpha_b,alpha_c) |" + data_to_save = np.column_stack((data_to_save,alpha_a,alpha_b,alpha_c)) + columns.append( method_header) + + if abs(abs(self.volumes[self.iv0]-volumes[iv0])-abs(volumes[iv1]-self.volumes[self.iv0]))<1e-3 : + aa2,bb2,cc2 = self.get_abc(tstart, tstop, num,vol2) + if (tref!=None): + aa2_tref,bb2_tref,cc2_tref = self.get_abc(tref, tref, 1,vol2_tref) + + alpha2_a = np.zeros( num-2) + alpha2_b = np.zeros( num-2) + alpha2_c = np.zeros( num-2) + if (tref==None): + alpha2_a = (aa2[2:] - aa2[:-2]) / (2 * dt) / aa2[1:-1] + alpha2_b = (bb2[2:] - bb2[:-2]) / (2 * dt) / bb2[1:-1] + alpha2_c = (cc2[2:] - cc2[:-2]) / (2 * dt) / cc2[1:-1] + else: + alpha2_a = (aa2[2:] - aa2[:-2]) / (2 * dt) / aa2_tref + alpha2_b = (bb2[2:] - bb2[:-2]) / (2 * dt) / bb2_tref + alpha2_c = (cc2[2:] - cc2[:-2]) / (2 * dt) / cc2_tref + + ax.plot(tmesh[1:-1] ,alpha2_a , linestyle='dashed' , color='r', lw=2 ,label = r"$\alpha_a$"" (E2vib1)") + ax.plot(tmesh[1:-1] ,alpha2_b , linestyle='dashed' , color='b', lw=2 ,label = r"$\alpha_b$"" (E2vib1)") + ax.plot(tmesh[1:-1] ,alpha2_c , linestyle='dashed' , color='m', lw=2 ,label = r"$\alpha_c$"" (E2vib1)") + data_to_save = np.column_stack((data_to_save,alpha2_a,alpha2_b,alpha2_c)) + columns.append( 'E2vib1 (alpha_a,alpha_b,alpha_c) ') + + ax.set_xlabel(r'T (K)') + ax.set_ylabel(r'$\alpha$ (K$^{-1}$)') + ax.legend() + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig + @add_fig_kwargs + def plot_thermal_expansion_coeff_angles_4th(self, tstart=0, tstop=1000, num=101, tref=None, ax=None, **kwargs): + """ + Plots the thermal expansion coefficient as a function of the temperature. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + tref: The reference temperature (in Kelvin) used to compute the thermal expansion coefficient 1/V(tref) * dV(T)/dT. + (If tref is not available, it uses 1/V(T) * dV(T)/dT instead.) + num: int, optional Number of samples to generate. Default is 100. + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax) + tmesh = np.linspace(tstart, tstop, num) + ph_energies = self.get_vib_free_energies(tstart, tstop, num) + iv0=self.iv0_vib + iv1=self.iv1_vib + volumes=self.volumes_from_phdos + + data_to_save = tmesh[1:-1] + columns = ['#Tmesh'] + if self.scale_points=="S": + vol2 = self.vol_E2Vib1_forth(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol2_tref = self.vol_E2Vib1_forth(num=1,tstop=tref,tstart=tref) + + if (len(self.index_list)==2): + vol = self.vol_EinfVib1_forth(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref = self.vol_EinfVib1_forth(num=1,tstop=tref,tstart=tref) + method =r"$ (E_\infty Vib1)$" + + if (len(self.index_list)==3): + vol = self.vol_Einf_Vib2_forth(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref = self.vol_Einf_Vib2_forth(num=1,tstop=tref,tstart=tref) + method =r"$ (E_\infty Vib2)$" + + if (len(self.index_list)==5): + tot_en = self.energies_pdos[np.newaxis, :].T + ph_energies + f0 = self.fit_forth( tstart, tstop, num ,tot_en,volumes) + method =r"$ (E_\infty Vib4)$" + vol = self.vol_Einf_Vib4_forth(num=num,tstop=tstop,tstart=tstart) + if (tref!=None): + vol_tref = self.vol_Einf_Vib4_forth(num=1,tstop=tref,tstart=tref) + + tmesh = np.linspace(tstart, tstop, num) + dt= tmesh[1] - tmesh[0] + + alpha,beta,gamma = self.get_angles(tstart, tstop, num,vol) + if (tref!=None): + alpha_tref,beta_tref,gamma_tref = self.get_angles(tref, tref, 1,vol_tref) + + alpha_alpha = np.zeros( num-2) + alpha_beta = np.zeros( num-2) + alpha_gamma = np.zeros( num-2) + if (tref==None): + alpha_alpha = (alpha[2:] - alpha[:-2]) / (2 * dt) / alpha[1:-1] + alpha_beta = (beta[2:] - beta[:-2]) / (2 * dt) / beta[1:-1] + alpha_gamma = (gamma[2:] - gamma[:-2]) / (2 * dt) / gamma[1:-1] + else: + alpha_alpha = (alpha[2:] - alpha[:-2]) / (2 * dt) / alpha_tref + alpha_beta = (beta[2:] - beta[:-2]) / (2 * dt) / beta_tref + alpha_gamma = (gamma[2:] - gamma[:-2]) / (2 * dt) / gamma_tref + + ax.plot(tmesh[1:-1] ,alpha_alpha , color='r', lw=2,label = r"$\alpha_alpha$"+method, **kwargs) + ax.plot(tmesh[1:-1] ,alpha_beta , color='b', lw=2,label = r"$\alpha_beta$"+method) + ax.plot(tmesh[1:-1] ,alpha_gamma , color='m', lw=2,label = r"$\alpha_gamma$"+method) + + method_header=method+" (alpha_alpha,alpha_beta,alpha_gamma) |" + data_to_save = np.column_stack((data_to_save,alpha_alpha,alpha_beta,alpha_gamma)) + columns.append( method_header) + + if abs(abs(self.volumes[self.iv0]-volumes[iv0])-abs(volumes[iv1]-self.volumes[self.iv0]))<1e-3 : + alpha2,beta2,gamma2 = self.get_angles(tstart, tstop, num,vol2) + if (tref!=None): + alpha2_tref,beta2_tref,gamma2_tref = self.get_angles(tref, tref, 1,vol2_tref) + + alpha2_alpha = np.zeros( num-2) + alpha2_beta = np.zeros( num-2) + alpha2_gamma = np.zeros( num-2) + if (tref==None): + alpha2_alpha = (alpha2[2:] - alpha2[:-2]) / (2 * dt) / alpha2[1:-1] + alpha2_beta = (beta2[2:] - beta2[:-2]) / (2 * dt) / beta2[1:-1] + alpha2_gamma = (gamma2[2:] - gamma2[:-2]) / (2 * dt) / gamma2[1:-1] + else: + alpha2_alpha = (alpha2[2:] - alpha2[:-2]) / (2 * dt) / alpha2_tref + alpha2_beta = (beta2[2:] - beta2[:-2]) / (2 * dt) / beta2_tref + alpha2_gamma = (gamma2[2:] - gamma2[:-2]) / (2 * dt) / gamma2_tref + + ax.plot(tmesh[1:-1] ,alpha2_alpha , linestyle='dashed' , color='r', lw=2 ,label = r"$\alpha_alpha$"" (E2vib1)") + ax.plot(tmesh[1:-1] ,alpha2_beta , linestyle='dashed' , color='b', lw=2 ,label = r"$\alpha_beta$"" (E2vib1)") + ax.plot(tmesh[1:-1] ,alpha2_gamma , linestyle='dashed' , color='m', lw=2 ,label = r"$\alpha_gamma$"" (E2vib1)") + data_to_save = np.column_stack((data_to_save,alpha2_alpha,alpha2_beta,alpha2_gamma)) + columns.append( 'E2vib1 (alpha_alpha,alpha_beta,alpha_gamma) ') + + ax.set_xlabel(r'T (K)') + ax.set_ylabel(r'$\alpha$ (K$^{-1}$)') + ax.legend() + ax.grid(True) + + ax.set_xlim(tstart, tstop) + ax.get_yaxis().get_major_formatter().set_powerlimits((0, 0)) + + return fig +#********************************************************************************************* + @classmethod + def from_files_app(cls, gsr_paths, phdos_paths): + """ + Creates an instance of QHA from a list of GSR files and a list of PHDOS.nc files. + The list should have the same size and the volumes should match. + + Args: + gsr_paths: list of paths to GSR files. + phdos_paths: list of paths to PHDOS.nc files. + + Returns: A new instance of QHA + """ + energies = [] + structures = [] + pressures = [] + for gp in gsr_paths: + with GsrFile.from_file(gp) as g: + energies.append(g.energy) + structures.append(g.structure) + pressures.append(g.pressure) + + #doses = [PhononDos.as_phdos(dp) for dp in phdos_paths] + + doses = [] + structures_from_phdos = [] + for path in phdos_paths: + with PhdosFile(path) as p: + doses.append(p.phdos) + structures_from_phdos.append(p.structure) + + # cls._check_volumes_id(structures, structures_from_phdos) + vols1 = [s.volume for s in structures] + vols2 = [s.volume for s in structures_from_phdos] + dv=np.zeros((len(vols2)-1)) + for j in range(len(vols2)-1): + dv[j]=vols2[j+1]-vols2[j] + tolerance = 1e-3 + if (len(vols2)!=2): + max_difference = np.max(np.abs(dv - dv[0])) + if max_difference > tolerance: + raise RuntimeError("Expecting an equal volume change for structures from PDOS." ) + + index_list = [i for v2 in vols2 for i, v1 in enumerate(vols1) if abs(v2 - v1) < 1e-3] + if len(index_list) != len(vols2): + raise RuntimeError("Expecting the ground state files for all PDOS files!") + if len(index_list) not in (2, 3, 5): + raise RuntimeError("Expecting just 2, 3, or 5 PDOS files in the approximation method.") + + return cls(structures,structures_from_phdos,index_list, doses, energies , pressures) + + def get_vib_free_energies(self, tstart=0, tstop=1000, num=101) -> np.ndarray: + """ + Generates the vibrational free energy from the phonon DOS. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + + Returns: A numpy array of `num` values of the vibrational contribution to the free energy + """ + f = np.zeros((self.nvols, num)) + + for i, dos in enumerate(self.doses): + f[i] = dos.get_free_energy(tstart, tstop, num).values + return f + + def get_thermodynamic_properties(self, tstart=0, tstop=1000, num=101): + """ + Generates all the thermodynamic properties corresponding to all the volumes using the phonon DOS. + + Args: + tstart: The starting value (in Kelvin) of the temperature mesh. + tstop: The end value (in Kelvin) of the mesh. + num: int, optional Number of samples to generate. Default is 100. + + Returns: + `namedtuple` with the following attributes for all the volumes: + + tmesh: numpy array with the list of temperatures. Shape (num). + cv: constant-volume specific heat, in eV/K. Shape (nvols, num). + free_energy: free energy, in eV. Shape (nvols, num). + entropy: entropy, in eV/K. Shape (nvols, num). + zpe: zero point energy in eV. Shape (nvols). + """ + tmesh = np.linspace(tstart, tstop, num) + cv = np.zeros((self.nvols, num)) + free_energy = np.zeros((self.nvols, num)) + entropy = np.zeros((self.nvols, num)) + internal_energy = np.zeros((self.nvols, num)) + zpe = np.zeros(self.nvols) + + for i, d in enumerate(self.doses): + cv[i] = d.get_cv(tstart, tstop, num).values + free_energy[i] = d.get_free_energy(tstart, tstop, num).values + entropy[i] = d.get_entropy(tstart, tstop, num).values + zpe[i] = d.zero_point_energy + + return dict2namedtuple(tmesh=tmesh, cv=cv, free_energy=free_energy, entropy=entropy, zpe=zpe) +#======================================================================================================= + @classmethod + def from_files_app_ddb(cls, ddb_paths, phdos_paths): + """ + Creates an instance of QHA from a list of GSR files and a list of PHDOS.nc files. + The list should have the same size and the volumes should match. + + Args: + ddb_paths: list of paths to DDB files. + phdos_paths: list of paths to PHDOS.nc files. + + Returns: A new instance of QHA + """ + energies = [] + structures = [] + pressures = [] + for gp in ddb_paths: + with DdbFile.from_file(gp) as g: + energies.append(g.total_energy) + structures.append(g.structure) + #pressures.append(g.pressure) + + #doses = [PhononDos.as_phdos(dp) for dp in phdos_paths] + + doses = [] + structures_from_phdos = [] + for path in phdos_paths: + with PhdosFile(path) as p: + doses.append(p.phdos) + structures_from_phdos.append(p.structure) + + # cls._check_volumes_id(structures, structures_from_phdos) + vols1 = [s.volume for s in structures] + vols2 = [s.volume for s in structures_from_phdos] + dv=np.zeros((len(vols2)-1)) + for j in range(len(vols2)-1): + dv[j]=vols2[j+1]-vols2[j] + tolerance = 1e-3 + if (len(vols2)!=2): + max_difference = np.max(np.abs(dv - dv[0])) + if max_difference > tolerance: + raise RuntimeError("Expecting an equal volume change for structures from PDOS." ) + + index_list = [i for v2 in vols2 for i, v1 in enumerate(vols1) if abs(v2 - v1) < 1e-3] + if len(index_list) != len(vols2): + raise RuntimeError("Expecting the ground state files for all PDOS files!") + if len(index_list) not in (2, 3, 5): + raise RuntimeError("Expecting just 2, 3, or 5 PDOS files in the approximation method.") + + return cls(structures,structures_from_phdos,index_list, doses, energies , pressures) + diff --git a/abipy/dfpt/raman.py b/abipy/dfpt/raman.py index 7eac2f129..2e86f2c0c 100644 --- a/abipy/dfpt/raman.py +++ b/abipy/dfpt/raman.py @@ -1,10 +1,14 @@ +"""Objects for post-processing Raman results produced by anaddb.""" +from __future__ import annotations + import numpy as np import abipy.core.abinit_units as abu + +from collections import namedtuple from abipy.iotools import ETSF_Reader from abipy.core.func1d import Function1D from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt -from collections import namedtuple - +from abipy.tools.typing import Figure PowderIntensity = namedtuple("PowderIntensity", ("paral", "perp", "tot")) @@ -41,15 +45,14 @@ def __init__(self, susceptibility, phfreqs, non_anal_susceptibility=None, self.non_anal_directions = non_anal_directions @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> Raman: """ Create the object from an anaddb.nc netcdf file. Args: filepath: path to the netcdf file. - Returns: - An instance of Raman. + Returns: An instance of Raman. """ with ETSF_Reader(filepath) as r: @@ -72,7 +75,7 @@ def from_file(cls, filepath): non_anal_phfreqs=non_anal_phfreqs, non_anal_directions=non_anal_directions) def get_modes_intensities(self, temp, laser_freq, non_anal_dir=None, relative=False, units="eV", - pol_in=None, pol_out=None): + pol_in=None, pol_out=None) -> np.ndarray: """ Calculates the Raman intensities for each mode in arbitrary units. It is possible to use the susceptibilities from the transverse modes only or to specify one of the directions with non @@ -84,13 +87,13 @@ def get_modes_intensities(self, temp, laser_freq, non_anal_dir=None, relative=Fa Args: temp: temperature in K. - laser_freq: frequency of the incident laser. The units are determined the "units" + laser_freq: frequency of the incident laser. The units are determined by the "units" argument. non_anal_dir: index of the direction along which the non analytical contribution has been calculated. Corresponds to the indices in the non_anal_directions attribute. relative: if True the intensities will be rescaled so that the largest value is 1. units: the units in which the input and the output frequencies will be given. - Possible values in ("eV", "meV", "Ha", "cm-1", "Thz") + Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). pol_in: the polarization of the incoming photon. If not None can be either either a string with one of the cartesian components i.e. "x", "y", "z" or an array with 3 elements representing the polarization direction. If not None pol_out can not be None. @@ -119,7 +122,7 @@ def get_modes_intensities(self, temp, laser_freq, non_anal_dir=None, relative=Fa # this will make the indices of the i,j component such that the first # will refer to the polarization of the incoming photon and the second # to the polarization of the created one. - np.transpose(i, axes=(0, 2, 1)) + i = np.transpose(i, axes=(0, 2, 1)) else: if pol_in is None or pol_out is None: raise ValueError("pol_in and pol_out should be either both None or both defined") @@ -140,7 +143,7 @@ def get_modes_intensities(self, temp, laser_freq, non_anal_dir=None, relative=Fa return i @staticmethod - def _get_prefactor(w, temp, laser_freq): + def _get_prefactor(w, temp, laser_freq) -> np.array: """ Helper method to calculate the coefficient for the Raman intensities. @@ -162,7 +165,8 @@ def _get_prefactor(w, temp, laser_freq): return c - def _get_lorentz_freqs_and_factor(self, intensity, non_anal_dir, min_freq, max_freq, num, width, units): + def _get_lorentz_freqs_and_factor(self, intensity, non_anal_dir, min_freq, max_freq, + num, width, units) -> tuple: """ Helper method to get the list of frequencies and the main spread factors to calculate the broadened Raman intensities with a Lorentz distribution. @@ -249,7 +253,7 @@ def get_lorentz_intensity(self, temp, laser_freq, width, non_anal_dir=None, min_ Returns: If pol_in==pol_out==None a 3x3 list with a Function1D corresponding to the different - components of the intensities. Otherwise a single Function1D with the intensities of + components of the intensities. Otherwise a single Function1D with the intensities of the selected polarizations. Each Function1D has "num" points. """ @@ -283,7 +287,8 @@ def get_lorentz_intensity(self, temp, laser_freq, width, non_anal_dir=None, min_ return li_func - def get_powder_intensity(self, temp, laser_freq, non_anal_dir=None, relative=False, units="eV"): + def get_powder_intensity(self, temp, laser_freq, non_anal_dir=None, + relative=False, units="eV") -> PowderIntensity: """ Calculates the Raman intensities in arbitrary units for each mode integrated over all possible orientation to reproduce the powder measurements. It is possible to use the susceptibilities from @@ -333,7 +338,7 @@ def get_powder_intensity(self, temp, laser_freq, non_anal_dir=None, relative=Fal return PowderIntensity(paral, perp, tot) def get_powder_lorentz_intensity(self, temp, laser_freq, width, non_anal_dir=None, min_freq=None, - max_freq=None, num=1000, relative=False, units="eV"): + max_freq=None, num=1000, relative=False, units="eV") -> PowderIntensity: """ Calculates the broadened Raman intensities in arbitrary units integrated over all possible orientation to reproduce the powder measurements for frequencies in an interval. It is possible to @@ -381,14 +386,15 @@ def get_powder_lorentz_intensity(self, temp, laser_freq, width, non_anal_dir=Non @add_fig_kwargs def plot_intensity(self, temp, laser_freq, width, value, non_anal_dir=None, min_freq=None, max_freq=None, - num=1000, relative=False, units="eV", ax=None, plot_phfreqs=False, **kwargs): + num=1000, relative=False, units="eV", ax=None, + plot_phfreqs=False, **kwargs) -> Figure: """ Plot one representation of the broadened Raman intensities. Args: temp: temperature in K. - laser_freq: frequency of the incident laser. The units are determined the "units" - argument. + laser_freq: frequency of the incident laser. The units are determined according to + the "units" argument. width: the width of the Lorentz distribution. The units are determined the "units" argument. If None or 0 a plot of only the frequencies for each mode will be given. value: a string describing the value that should be plotted. Can be "powder" or @@ -412,8 +418,7 @@ def plot_intensity(self, temp, laser_freq, width, value, non_anal_dir=None, min_ phonon modes. **kwargs: arguments passed to the plot function. - Returns: - |matplotlib-Figure| + Returns: |matplotlib-Figure| """ ax, fig, plt = get_ax_fig_plt(ax=ax) @@ -454,6 +459,8 @@ def plot_intensity(self, temp, laser_freq, width, value, non_anal_dir=None, min_ i = ri.tot else: + if len(value) != 2: + raise ValueError("The value should contain the ingoing and outgoing polarizations.") pol_in = value[0] pol_out = value[1] i = self.get_modes_intensities(temp=temp, laser_freq=laser_freq, non_anal_dir=non_anal_dir, diff --git a/abipy/dfpt/tests/test_anaddbnc.py b/abipy/dfpt/tests/test_anaddbnc.py index 7319dccd8..3ba3aebec 100644 --- a/abipy/dfpt/tests/test_anaddbnc.py +++ b/abipy/dfpt/tests/test_anaddbnc.py @@ -27,6 +27,7 @@ def test_base(self): assert anc.oscillator_strength is not None assert anc.ifc is None assert anc.params["chneut"] == 1 + assert anc.amu[13] == 26.981539 if self.has_nbformat(): assert anc.write_notebook(nbpath=self.get_tmpname(text=True)) diff --git a/abipy/dfpt/tests/test_converters.py b/abipy/dfpt/tests/test_converters.py new file mode 100644 index 000000000..e9ae561b4 --- /dev/null +++ b/abipy/dfpt/tests/test_converters.py @@ -0,0 +1,212 @@ +"""Tests for dfpt converters""" +import os +import tempfile +import numpy as np +import abipy.core.abinit_units as abu + +from abipy import abilab +from abipy.core.testing import AbipyTest +from abipy.dfpt.ddb import DdbFile +from abipy.dfpt.converters import abinit_to_phonopy, phonopy_to_abinit, tdep_to_abinit, ddb_ucell_to_ddb_supercell +from abipy.dfpt.converters import born_to_lotosplitting +from abipy.core.kpoints import kmesh_from_mpdivs + +from pymatgen.io.vasp.inputs import Poscar +from pymatgen.io.phonopy import get_phonopy_structure + +try: + from phonopy import Phonopy + from phonopy.file_IO import parse_FORCE_CONSTANTS, parse_BORN +except ImportError: + Phonopy = None + +test_dir = os.path.join(os.path.dirname(__file__), "..", "..", 'test_files') + + +def find_anaddbnc_in_dir(dirpath): + for n in ("anaddb.nc", "run_anaddb.nc", "out_anaddb.nc"): + p = os.path.join(dirpath, n) + if os.path.isfile(p): return p + + raise RuntimeError(f"Cannot file anaddb.nc file in {dirpath}") + + +class ConverterTest(AbipyTest): + + def test_ddb_phonopy_ddb_phfreqs(self): + """ + Checks the phonon frequencies when converting starting from a DDB then to phonopy + and back to DDB. + """ + self.skip_if_not_phonopy() + tmp_dir = tempfile.mkdtemp() + ngqpt = [4, 4, 4] + with DdbFile(os.path.join(test_dir, "AlAs_444_nobecs_DDB")) as ddb: + qpoints = ddb.qpoints + structure = ddb.structure + phonon = ddb.anaget_phonopy_ifc(ngqpt=ngqpt, asr=0, dipdip=0, chneut=0, + output_dir_path=tmp_dir, set_masses=True) + + orig_phbands = ddb.anaget_phmodes_at_qpoints(qpoints=qpoints, asr=0, dipdip=0, chneut=0, + lo_to_splitting=False) + + # remove nac_params to be sure that this does not enter into play. + # There should be no nac_params anyway here. + phonon.nac_params = None + phfreqs_phonopy = np.array([phonon.get_frequencies(q.frac_coords) for q in qpoints]) + + out_ddb_path = os.path.join(tmp_dir, "out_DDB") + + scm = np.eye(3) * ngqpt + ddb_conv = phonopy_to_abinit(unit_cell=structure, supercell_matrix=scm, qpt_list=qpoints.frac_coords, + out_ddb_path=out_ddb_path, force_constants=os.path.join(tmp_dir, "FORCE_CONSTANTS"), + born=None, primitive_matrix=np.eye(3), symprec=1e-5, tolsym=None) + + conv_phbands = ddb_conv.anaget_phmodes_at_qpoints(qpoints=qpoints, asr=0, dipdip=0, chneut=0, + lo_to_splitting=False) + + self.assert_almost_equal(orig_phbands.phfreqs, conv_phbands.phfreqs, decimal=5) + self.assert_almost_equal(orig_phbands.phfreqs * abu.eV_to_THz, phfreqs_phonopy, decimal=3) + + def test_ddb_phonopy_ddb_becs(self): + """ + Checks the phonon frequencies, BECs and dielectric tensor when converting starting from + a DDB then to phonopy and back to DDB. + """ + + self.skip_if_not_phonopy() + tmp_dir = tempfile.mkdtemp() + orig_run_ana = os.path.join(tmp_dir, "anaddb_orig") + conv_run_ana = os.path.join(tmp_dir, "anaddb_conv") + ngqpt = [1, 1, 1] + with DdbFile(os.path.join(test_dir, "ZnO_gamma_becs_DDB")) as ddb: + qpoints = ddb.qpoints + structure = ddb.structure + phonon = ddb.anaget_phonopy_ifc(ngqpt=ngqpt, asr=0, dipdip=0, chneut=0, + output_dir_path=tmp_dir, set_masses=True) + + orig_phbands = ddb.anaget_phmodes_at_qpoints(qpoints=qpoints, asr=0, dipdip=0, chneut=0, + lo_to_splitting=False, workdir=orig_run_ana) + ananc_orig = abilab.abiopen(find_anaddbnc_in_dir(os.path.join(orig_run_ana, "outdata"))) + + nac = phonon.nac_params + # remove nac_params to be sure that this does not enter into play. + phonon.nac_params = None + phfreqs_phonopy = np.array([phonon.get_frequencies(q.frac_coords) for q in qpoints]) + + out_ddb_path = os.path.join(tmp_dir, "out_DDB") + + scm = np.eye(3) * ngqpt + ddb_conv = phonopy_to_abinit(unit_cell=structure, supercell_matrix=scm, qpt_list=qpoints.frac_coords, + out_ddb_path=out_ddb_path, force_constants=os.path.join(tmp_dir, "FORCE_CONSTANTS"), + born=os.path.join(tmp_dir, "BORN"), primitive_matrix=np.eye(3), symprec=1e-5, tolsym=None) + + conv_phbands = ddb_conv.anaget_phmodes_at_qpoints(qpoints=qpoints, asr=0, dipdip=0, chneut=0, + lo_to_splitting=False, workdir=conv_run_ana) + ananc_conv = abilab.abiopen(find_anaddbnc_in_dir(os.path.join(conv_run_ana, "outdata"))) + + self.assert_almost_equal(orig_phbands.phfreqs, conv_phbands.phfreqs, decimal=5) + self.assert_almost_equal(orig_phbands.phfreqs * abu.eV_to_THz, phfreqs_phonopy, decimal=3) + self.assert_almost_equal(ananc_orig.becs.values, nac["born"], decimal=5) + self.assert_almost_equal(ananc_conv.becs.values, nac["born"], decimal=5) + self.assert_almost_equal(ananc_orig.epsinf, nac["dielectric"], decimal=5) + self.assert_almost_equal(ananc_conv.epsinf, nac["dielectric"], decimal=5) + + def test_phonopy_ddb_phonopy(self): + + self.skip_if_not_phonopy() + tmp_dir = tempfile.mkdtemp() + + ngqpt = [2, 2, 2] + scm = np.eye(3) * ngqpt + + tmp_dir = tempfile.mkdtemp() + out_ddb_path = os.path.join(tmp_dir, "out_DDB") + + unit_cell = abilab.Structure.from_file(os.path.join(test_dir, "MgO_phonopy_POSCAR")) + fc_path = os.path.join(test_dir, "MgO_phonopy_FORCE_CONSTANTS") + born_path = os.path.join(test_dir, "MgO_phonopy_BORN") + + ddb = phonopy_to_abinit(unit_cell=unit_cell, supercell_matrix=scm, ngqpt=ngqpt, + out_ddb_path=out_ddb_path, force_constants=fc_path, + born=born_path, primitive_matrix=np.eye(3), symprec=1e-5, + tolsym=None) + + qpoints = ddb.qpoints + phonon_conv = ddb.anaget_phonopy_ifc(ngqpt=ngqpt, asr=0, dipdip=0, chneut=0, + output_dir_path=tmp_dir, set_masses=True) + + conv_nac = phonon_conv.nac_params + phonon_conv.nac_params = None + + orig_fc = parse_FORCE_CONSTANTS(fc_path) + orig_nac = parse_BORN(phonon_conv.primitive, filename=born_path) + # create the Phonopy object here to take advantage of the information in phonopy_conv + phonon_orig = Phonopy(unitcell=phonon_conv.unitcell, supercell_matrix=scm, primitive_matrix=np.eye(3), + nac_params=None) + phonon_orig.force_constants = orig_fc + + phfreqs_phonopy_orig = np.array([phonon_orig.get_frequencies(q.frac_coords) for q in qpoints]) + phfreqs_phonopy_conv = np.array([phonon_conv.get_frequencies(q.frac_coords) for q in qpoints]) + + run_ana = os.path.join(tmp_dir, "run_anaddb") + phbands = ddb.anaget_phmodes_at_qpoints(qpoints=qpoints, asr=0, dipdip=0, chneut=0, + lo_to_splitting=False, workdir=run_ana) + ananc = abilab.abiopen(find_anaddbnc_in_dir(os.path.join(run_ana, "outdata"))) + + self.assert_almost_equal(phbands.phfreqs * abu.eV_to_THz, phfreqs_phonopy_orig, decimal=3) + self.assert_almost_equal(phbands.phfreqs * abu.eV_to_THz, phfreqs_phonopy_conv, decimal=3) + self.assert_almost_equal(ananc.becs.values, orig_nac["born"], decimal=5) + self.assert_almost_equal(ananc.becs.values, conv_nac["born"], decimal=5) + self.assert_almost_equal(ananc.epsinf, orig_nac["dielectric"], decimal=5) + self.assert_almost_equal(ananc.epsinf, conv_nac["dielectric"], decimal=5) + + def test_tdep_lotosplitting(self): + self.skip_if_not_phonopy() + + tmp_dir = tempfile.mkdtemp() + primitive = get_phonopy_structure(abilab.Structure.from_file(os.path.join(test_dir, "MgO_phonopy_POSCAR"))) + born_path = parse_BORN(primitive, filename=os.path.join(test_dir, "MgO_phonopy_BORN")) + loto_path = os.path.join(tmp_dir, "infile.lotosplitting") + born_to_lotosplitting(born_path, loto_path) + self.assertTrue(os.path.isfile(loto_path)) + + def test_tdep_ddb(self): + self.skip_if_not_phonopy() + + tmp_dir = tempfile.mkdtemp() + out_ddb_path = os.path.join(tmp_dir, "out_DDB") + + # need to pass through Poscar, since Structure.from_file fails due to tdep file names + unit_cell = Poscar.from_file(os.path.join(test_dir, "Si_tdep.ucposcar")).structure + supercell = Poscar.from_file(os.path.join(test_dir, "Si_tdep.ssposcar")).structure + fc_path = os.path.join(test_dir, "Si_tdep.forceconstant") + + ddb = tdep_to_abinit(unit_cell=unit_cell, fc_path=fc_path, supercell_matrix=np.eye(3)*5, + supercell=supercell, out_ddb_path=out_ddb_path, ngqpt=[5, 5, 5], + primitive_matrix=np.eye(3), lotosplitting_path=None) + + phbands = ddb.anaget_phmodes_at_qpoints(qpoints=[[0, 0, 0]], asr=0, dipdip=0, chneut=0, + lo_to_splitting=False) + self.assertAlmostEqual(phbands.phfreqs[0, 3], 0.062997, places=3) + + def test_ddb_ucell_ddb_sc(self): + self.skip_if_not_phonopy() + + ddb_unit=DdbFile(os.path.join(test_dir, "AlAs_444_nobecs_DDB")) + + # make sure we have all the qpts in the ddb + qpts=kmesh_from_mpdivs(mpdivs=[4,4,4],shifts=[0,0,0],order="unit_cell") + ddb_unit_444=ddb_unit.anaget_interpolated_ddb(qpt_list=qpts) + + + ddb_sc_444=ddb_ucell_to_ddb_supercell(unit_ddb=ddb_unit_444,nac=False) + + # compare phfreqs of the sc at Gamma with the ones of ucell at qpts, should be identical + modes_unit_444=ddb_unit_444.anaget_phmodes_at_qpoints(qpoints=qpts) + modes_sc_444=ddb_sc_444.anaget_phmodes_at_qpoint(qpoint=[0,0,0]) + + diff = np.sort(modes_unit_444.phfreqs.flatten())- modes_sc_444.phfreqs[0] + self.assertAlmostEqual(max(abs(diff)), 0, places=5) + + diff --git a/abipy/dfpt/tests/test_ddb.py b/abipy/dfpt/tests/test_ddb.py index 7aeb83434..d055d8e6b 100644 --- a/abipy/dfpt/tests/test_ddb.py +++ b/abipy/dfpt/tests/test_ddb.py @@ -29,6 +29,8 @@ def test_alas_ddb_1qpt_phonons(self): assert same_ddb.qpoints[0] == ddb.qpoints[0] assert same_ddb.structure == ddb.structure + #self.serialize_with_pickle(ddb, test_eq=False) + # Test header h = ddb.header assert h.version == 100401 and h.ecut == 3 @@ -62,6 +64,9 @@ def test_alas_ddb_1qpt_phonons(self): with self.assertRaises(ValueError): ddb.anaget_phmodes_at_qpoint(qpoint=(0, 0, 0), verbose=1) + with self.assertRaises(ValueError): + ddb.anaget_phmodes_at_qpoints(qpoints=[[0.1, 0.2, 0.3]], ifcflag=0) + # Wrong ngqpt with self.assertRaises(ddb.AnaddbError): try: @@ -84,6 +89,7 @@ def test_alas_ddb_1qpt_phonons(self): assert len(blocks) == 1 assert blocks[0]["qpt"] == [0.25, 0, 0] assert blocks[0]["dord"] == 2 + assert blocks[0]["qpt3"] == None lines = blocks[0]["data"] assert lines[0].rstrip() == " 2nd derivatives (non-stat.) - # elements : 36" @@ -95,9 +101,27 @@ def test_alas_ddb_1qpt_phonons(self): assert ddb.get_block_for_qpoint(qpt.frac_coords) assert ddb.replace_block_for_qpoint(ddb.qpoints[0], blocks[0]["data"]) - + d_2ord = ddb.get_2nd_ord_dict() + assert ddb.qpoints[0] in d_2ord + new_qpt = [0.11, 0.22, 3.4] + new_block = {"data": + [' 2nd derivatives (non-stat.) - # elements : 1', + ' qpt 1.10000000E-01 2.20000000E-01 3.40000000E+00 1.0', + ' 1 1 1 1 0.38964081001769D+01 0.51387831420710D-24'], + "dord": 2, "qpt": new_qpt, "qpt3": None} + assert ddb.insert_block(new_block) + assert ddb.insert_block(new_block, replace=True) + assert not ddb.insert_block(new_block, replace=False) # Write new DDB file. tmp_file = self.get_tmpname(text=True) + ddb.write(tmp_file) + with DdbFile(tmp_file) as new_ddb: + # check that the new qpoint has been written to the file + assert new_qpt in new_ddb.qpoints + + # remove the added block and write again to check that it is equivalent to the original + assert ddb.remove_block(dord=2, qpt=new_qpt) + ddb.write(tmp_file) with DdbFile(tmp_file) as new_ddb: assert ddb.qpoints == new_ddb.qpoints @@ -128,13 +152,14 @@ def test_alas_ddb_444_nobecs(self): assert qpoint in ddb.computed_dynmat assert len(ddb.computed_dynmat[qpoint].index[0]) == 4 - assert ddb.has_bec_terms(select="at_least_one") + assert not ddb.has_bec_terms(select="at_least_one") assert not ddb.has_bec_terms(select="all") assert not ddb.has_epsinf_terms() assert not ddb.has_lo_to_data() assert not ddb.has_internalstrain_terms() assert not ddb.has_piezoelectric_terms() assert not ddb.has_strain_terms() + assert not ddb.has_quadrupole_terms() assert ddb.has_at_least_one_atomic_perturbation() ref_qpoints = np.reshape([ @@ -156,6 +181,14 @@ def test_alas_ddb_444_nobecs(self): phbands = ddb.anaget_phmodes_at_qpoint(qpoint=qpoint, verbose=1) assert phbands is not None and hasattr(phbands, "phfreqs") + phbands = ddb.anaget_phmodes_at_qpoints(verbose=1) + assert phbands is not None and hasattr(phbands, "phfreqs") + + phbands = ddb.anaget_phmodes_at_qpoints(qpoints=[[0.1, 0.2, 0.3]], verbose=1, ifcflag=1) + assert phbands is not None and hasattr(phbands, "phfreqs") + + assert ddb.anaget_interpolated_ddb(qpt_list=[[0.1, 0.2, 0.3]]) + assert np.all(ddb.guessed_ngqpt == [4, 4, 4]) # Get bands and Dos @@ -169,9 +202,18 @@ def test_alas_ddb_444_nobecs(self): title="Phonon bands and DOS of %s" % phbands.structure.formula) assert phbands_file.plot_phbands(show=False) + if self.has_plotly(): + assert phbands.plotly_with_phdos(phdos, show=False, + title="Phonon bands and DOS of %s" % phbands.structure.formula) + if self.has_panel(): assert hasattr(ddb.get_panel(), "show") + if self.has_phonopy(): + phbands_file_phonopy, _ = ddb.anaget_phbst_and_phdos_files(verbose=1, with_phonopy_obj=True) + phonopy_obj = phbands_file_phonopy.phbands.phonopy_obj + assert phonopy_obj is not None + # Get epsinf and becs r = ddb.anaget_epsinf_and_becs(chneut=1, verbose=1) epsinf, becs = r.epsinf, r.becs @@ -197,21 +239,22 @@ def test_alas_ddb_444_nobecs(self): assert c.plotter.combiplot(show=False) # Use threads and gaussian DOS. + # num_cpus > 1 is problematic as it can cause a segmentation fault --> test sequential version only c = ddb.anacompare_phdos(nqsmalls=[2, 3, 4], dos_method="gaussian", dipdip=0, asr=0, - num_cpus=2, verbose=2) + num_cpus=1, verbose=2) assert c.phdoses and c.plotter is not None # Execute anaddb to compute the interatomic force constants. - ifc = ddb.anaget_ifc() + ifc, inp = ddb.anaget_ifc(return_input=True) str(ifc); repr(ifc) assert ifc.to_string(verbose=2) assert ifc.structure == ddb.structure assert ifc.number_of_atoms == len(ddb.structure) if self.has_matplotlib(): - assert ifc.plot_longitudinal_ifc(show=False) - assert ifc.plot_longitudinal_ifc_short_range(show=False) - assert ifc.plot_longitudinal_ifc_ewald(show=False) + assert ifc.plot_longitudinal_ifc(yscale="log", show=False) + assert ifc.plot_longitudinal_ifc_short_range(yscale="log", show=False) + assert ifc.plot_longitudinal_ifc_ewald(yscale="logit", show=False) # Test get_coarse. with ddb.get_coarse([2, 2, 2]) as coarse_ddb: @@ -303,20 +346,22 @@ def test_mgo_becs_epsinf(self): assert ddb.has_epsinf_terms(select="at_least_one_diagoterm") assert ddb.has_bec_terms() - if self.has_matplotlib(): - plotter = ddb.anacompare_asr(asr_list=(0, 2), chneut_list=(0, 1), dipdip=1, - nqsmall=2, ndivsm=5, dos_method="tetra", ngqpt=None, verbose=2) - str(plotter) - assert plotter.combiplot(show=False) + plotter = ddb.anacompare_asr(asr_list=(0, 2), chneut_list=(0, 1), dipdip=1, + nqsmall=2, ndivsm=5, dos_method="tetra", ngqpt=None, verbose=2) + str(plotter) + + if self.has_matplotlib(): assert plotter.combiplot(show=False) + + # Test nqsmall == 0 + plotter = ddb.anacompare_asr(asr_list=(0, 2), chneut_list=(0, 1), dipdip=1, + nqsmall=0, ndivsm=5, dos_method="tetra", ngqpt=None, verbose=2) - # Test nqsmall == 0 - plotter = ddb.anacompare_asr(asr_list=(0, 2), chneut_list=(0, 1), dipdip=1, - nqsmall=0, ndivsm=5, dos_method="tetra", ngqpt=None, verbose=2) - assert plotter.gridplot(show=False) + if self.has_matplotlib(): assert plotter.gridplot(show=False) - plotter = ddb.anacompare_dipdip(chneut_list=(0, 1), asr=1, - nqsmall=0, ndivsm=5, dos_method="gaussian", ngqpt=None, verbose=2) - assert plotter.gridplot(show=False) + plotter = ddb.anacompare_dipdip(chneut_list=(0, 1), asr=1, + nqsmall=0, ndivsm=5, dos_method="gaussian", ngqpt=None, verbose=2) + + if self.has_matplotlib(): assert plotter.gridplot(show=False) def test_mgb2_ddbs_ngkpt_tsmear(self): """Testing multiple DDB files and gridplot_with_hue.""" @@ -351,18 +396,22 @@ def test_mgb2_ddbs_ngkpt_tsmear(self): def test_ddb_from_mprester(self): """Test creation methods for DdbFile and DdbRobot from MP REST API.""" - #ddb = abilab.DdbFile.from_mpid("mp-1138") - ddb = abilab.DdbFile.from_mpid("mp-149") - assert ddb.structure.formula == "Si2" - self.assert_equal(ddb.guessed_ngqpt, [9, 9, 9]) - assert ddb.header["version"] == 100401 - assert ddb.header["ixc"] == -116133 - - mpid_list = ["mp-149", "mp-1138"] - robot = abilab.DdbRobot.from_mpid_list(mpid_list) - assert len(robot) == len(mpid_list) - assert robot.abifiles[1].structure.formula == "Li1 F1" - assert robot.abifiles[1].header["ixc"] == -116133 + if self.test_mprester(): + with self.assertRaises(ValueError): + abilab.DdbFile.from_mpid("foobar") + + #ddb = abilab.DdbFile.from_mpid("mp-1138") + ddb = abilab.DdbFile.from_mpid("mp-149") + assert ddb.structure.formula == "Si2" + self.assert_equal(ddb.guessed_ngqpt, [9, 9, 9]) + assert ddb.header["version"] == 100401 + assert ddb.header["ixc"] == -116133 + + mpid_list = ["mp-149", "mp-1138"] + robot = abilab.DdbRobot.from_mpid_list(mpid_list) + assert len(robot) == len(mpid_list) + assert robot.abifiles[1].structure.formula == "Li1 F1" + assert robot.abifiles[1].header["ixc"] == -116133 def test_alas_with_third_order(self): """ @@ -388,8 +437,59 @@ def test_alas_with_third_order(self): for qpoint in ddb.qpoints: assert qpoint in ddb.computed_dynmat - raman = ddb.anaget_raman() - self.assertAlmostEqual(raman.susceptibility[5, 0, 1], -0.0114683, places=5) + #assert ddb.has_raman_terms() + raman, inp = ddb.anaget_raman(return_input=True) + # take the mean to avoid potential changes in the order of degenerate modes. + sus_mean = raman.susceptibility[3:, 0, 1].mean() + self.assertAlmostEqual(sus_mean, -0.002829737, places=5) + + # Test block parsing. + blocks = ddb._read_blocks() + assert len(blocks) == 4 + assert blocks[3]["qpt"] == None + assert blocks[3]["dord"] == 3 + assert blocks[3]["qpt3"] == [[0.,] * 3] * 3 + + def test_ddb_with_quad(self): + """ + Testing DDB files with dynamical quadrupoles and flexoelectric tensor. + """ + with abilab.abiopen(abidata.ref_file("refs/LW_DDBs/tlw_5.quad_DDB")) as ddb: + assert ddb.has_lo_to_data() + assert ddb.has_epsinf_terms() + assert ddb.has_bec_terms(select="all") + assert not ddb.has_strain_terms() + assert not ddb.has_piezoelectric_terms() + + assert ddb.has_quadrupole_terms() + df = ddb.get_quadrupole_raw_dataframe() + + assert df is not None + + plotter = ddb.anacompare_quad(asr=2, chneut=1, dipdip=-1, lo_to_splitting="automatic", + nqsmall=0, ndivsm=20, dos_method="tetra", ngqpt=None, + verbose=1, mpi_procs=1) + assert len(plotter) == 3 + + def test_ddb_with_flexoe(self): + """ + Testing DDB files with flexoelectric tensor. + """ + with abilab.abiopen(abidata.ref_file("refs/LW_DDBs/tlw_2.flexo_DDB")) as ddb: + assert ddb.has_lo_to_data() + assert ddb.has_epsinf_terms() + assert ddb.has_bec_terms(select="all") + assert ddb.has_strain_terms() + assert ddb.has_piezoelectric_terms() + + assert ddb.has_quadrupole_terms() + df = ddb.get_quadrupole_raw_dataframe() + + #assert ddb.has_flexoe_terms() + #df = ddb.get_frexoe_raw_dataframe() + #assert df is not None + + # TODO: anaget interface --> requires modifications in anaddb class DielectricTensorGeneratorTest(AbipyTest): @@ -417,6 +517,7 @@ def test_base(self): AnaddbNcFile.from_file(anaddbnc_fname)) self.assertAlmostEqual(d.tensor_at_frequency(0.001, units='Ha', gamma_ev=0.0)[0, 0], 11.917178540635028) + self.assertAlmostEqual(d.reflectivity([1, 0, 0], 0.045), 0.59389746, places=5) if self.has_matplotlib(): assert d.plot_vs_w(w_min=0.0001, w_max=0.01, num=10, units="Ha", show=False) @@ -424,6 +525,8 @@ def test_base(self): for comp in ["diag", "all", "diag_av"]: assert d.plot_vs_w(num=10, component=comp, units="cm-1", show=False) assert d.plot_all(units="mev", show=False) + assert d.plot_e0w_qdirs(show=False) + assert d.plot_reflectivity(show=False) class DdbRobotTest(AbipyTest): @@ -530,7 +633,7 @@ def test_phonon_computation(self): self.assert_almost_equal(phdos.integral_value, natom3, decimal=1) # Test convertion to eigenvectors. Verify that they are orthonormal - cidentity = np.eye(natom3, dtype=np.complex) + cidentity = np.eye(natom3, dtype=complex) eig = phbands.dyn_mat_eigenvect for iq in range(phbands.nqpt): #print("About to test iq", iq, np.dot(eig[iq].T.conjugate(), eig[iq])) diff --git a/abipy/dfpt/tests/test_elastic.py b/abipy/dfpt/tests/test_elastic.py index e226d0e42..9aee0adce 100644 --- a/abipy/dfpt/tests/test_elastic.py +++ b/abipy/dfpt/tests/test_elastic.py @@ -22,10 +22,12 @@ def test_alas_elastic(self): assert ddb.has_internalstrain_terms(select="all") assert ddb.has_piezoelectric_terms(select="all") assert ddb.has_at_least_one_atomic_perturbation() + assert not ddb.has_quadrupole_terms() # Get ElasticData by calling anaddb. - e = ddb.anaget_elastic(verbose=2) + e, inp = ddb.anaget_elastic(verbose=2, return_input=True) assert e.params["elaflag"] == 3 + assert e.params["elaflag"] == inp["elaflag"] assert e.params["piezoflag"] == 3 assert e.params["instrflag"] == 1 assert e.params["asr"] == 2 and e.params["chneut"] == 1 @@ -35,6 +37,9 @@ def test_alas_elastic(self): assert e.elastic_stress_corr is None assert e.elastic_relaxed_fixed_D is None + html = e.elastic_clamped.get_elate_html() + assert " Structure: """|Structure| object""" return self._structure @property - def n_directions(self): + def n_directions(self) -> int: """Number of directions.""" return len(self.directions) @classmethod - def from_ddb(cls, ddb_path, directions=None, labels=None, num_points=20, qpt_norm=0.1, - ignore_neg_freqs=True, asr=2, chneut=1, dipdip=1, ngqpt=None, spell_check=True, - anaddb_kwargs=None, verbose=0, mpi_procs=1, workdir=None, manager=None): + def from_ddb(cls, ddb_path: str, + directions=None, labels=None, num_points=20, qpt_norm=0.1, + ignore_neg_freqs=True, asr=2, chneut=1, dipdip=1, dipquad=1, quadquad=1, + ngqpt=None, spell_check=True, anaddb_kwargs=None, verbose=0, mpi_procs=1, workdir=None, manager=None, + return_input=False) -> SoundVelocity: """ Creates and instance of the object. Runs anaddb along the specified directions or the standard directions in the standard paths given @@ -71,18 +78,20 @@ def from_ddb(cls, ddb_path, directions=None, labels=None, num_points=20, qpt_nor labels (list): list of string with the name of the directions. num_points (int): number of points calculated along each direction and used to fit the speed of sound. - qpt_norm (float): Norm of the largest point in fractional coordinates for + qpt_norm (float): Norm of the largest q-point in fractional coordinates for each of the directions considered. - ignore_neg_freqs (bool): if True points with negative frequencies will not be + ignore_neg_freqs (bool): if True, q-points with negative frequencies will not be considered in the fit, in order to ignore inaccuracies in the long range behavior. asr, chneut, dipdip: Anaddb input variable. See official documentation. + dipquad, quadquad: 1 to include DQ, QQ terms (provided DDB contains dynamical quadrupoles). ngqpt: Number of divisions for the q-mesh in the DDB file. Auto-detected if None (default). anaddb_kwargs: additional kwargs for anaddb. verbose: verbosity level. Set it to a value > 0 to get more information. mpi_procs: Number of MPI processes to use. workdir: Working directory. If None, a temporary directory is created. manager: |TaskManager| object. If None, the object is initialized from the configuration file. + return_input: True if the |AnaddbInput| object should be returned as 2nd argument Returns: an instance of SoundVelocity """ @@ -101,6 +110,8 @@ def from_ddb(cls, ddb_path, directions=None, labels=None, num_points=20, qpt_nor asr=asr, chneut=chneut, dipdip=dipdip, + dipquad=dipquad, + quadquad=quadquad, ) if not directions: @@ -140,12 +151,15 @@ def from_ddb(cls, ddb_path, directions=None, labels=None, num_points=20, qpt_nor task = ddb._run_anaddb_task(inp, mpi_procs=mpi_procs, workdir=workdir, manager=manager, verbose=verbose) - phbst_path = os.path.join(task.workdir, "run.abo_PHBST.nc") + phbst_path = task.outpath_from_ext("PHBST") - return cls.from_phbst(phbst_path, ignore_neg_freqs=ignore_neg_freqs, labels=labels) + new = cls.from_phbst(phbst_path, ignore_neg_freqs=ignore_neg_freqs, labels=labels) + return new if not return_input else (new, inp) @classmethod - def from_phbst(cls, phbst_path, ignore_neg_freqs=True, labels=None): + def from_phbst(cls, phbst_path: str, + ignore_neg_freqs: bool = True, + labels: list[str] = None) -> SoundVelocity: """ Creates an instance of the object starting interpolating the acoustic frequencies from a PHBST netcdf file. @@ -204,7 +218,7 @@ def from_phbst(cls, phbst_path, ignore_neg_freqs=True, labels=None): # matching bands dir_eigv = get_dyn_mat_eigenvec(dir_displ, structure, amu=phb.amu) n_freqs = 3 * len(structure) - ind_match = np.zeros((n_points, n_freqs), dtype=np.int) + ind_match = np.zeros((n_points, n_freqs), dtype=int) ind_match[0] = range(n_freqs) for j in range(1, n_points): @@ -254,8 +268,8 @@ def from_phbst(cls, phbst_path, ignore_neg_freqs=True, labels=None): else: mt.append(None) - # sort the lists based on the sound velocites - sv, mt, freqs = zip(*sorted(zip(sv, mt, acoustic_freqs.T))) + # sort the lists based on the sound velocities + sv, mt, freqs = zip(*sorted(zip(sv, mt, acoustic_freqs.T.tolist()))) sound_velocities.append(sv) mode_types.append(mt) @@ -265,7 +279,7 @@ def from_phbst(cls, phbst_path, ignore_neg_freqs=True, labels=None): return cls(directions=directions, sound_velocities=sound_velocities, mode_types=mode_types, structure=structure, labels=labels, phfreqs=all_acoustic_freqs, qpts=all_qpts) - def get_dataframe(self): + def get_dataframe(self) -> pd.DataFrame: """ Return a |pandas-DataFrame| with the data of the speed of sound. """ @@ -283,16 +297,16 @@ def get_dataframe(self): return pd.DataFrame(rows, columns=columns).set_index(["direction", "label"]) @add_fig_kwargs - def plot_fit_freqs_dir(self, idir, ax=None, units="eV", fontsize=8, **kwargs): + def plot_fit_freqs_dir(self, idir, ax=None, units="eV", fontsize=8, **kwargs) -> Figure: """ - Plots the phonon frequencies, if available, along the specified direction. + Plots the phonon frequencies with matplotlib, if available, along the specified direction. The line representing the fitted value will be shown as well. Args: idir: index of the direction. ax: |matplotlib-Axes| or None if a new figure should be created. units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. - fontsize: fontsize for legends and titles + fontsize: fontsize for subtitles Returns: |matplotlib-Figure| """ @@ -324,16 +338,74 @@ def plot_fit_freqs_dir(self, idir, ax=None, units="eV", fontsize=8, **kwargs): return fig + @add_plotly_fig_kwargs + def plotly_fit_freqs_dir(self, idir, fig=None, rcd=None, units="eV", fontsize=12, **kwargs): + """ + Plots the phonon frequencies with plotly, if available, along the specified direction. + The line representing the fitted value will be shown as well. + + Args: + idir: index of the direction. + fig: |plotly.graph_objects.Figure| + rcd: PlotlyRowColDesc object used to specify the (row, col) of the subplot in the grid. + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + fontsize: fontsize for subtitles + + Returns: |plotly.graph_objects.Figure| + """ + if self.phfreqs is None or self.qpts is None: + raise ValueError("The plot requires phonon frequencies and qpoints.") + + title = "[{:.3f}, {:.3f}, {:.3f}]".format(*self.directions[idir]) + if self.labels: + title += " - {}".format(self.labels[idir]) + + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col = rcd.ply_row, rcd.ply_col + xaxis = 'xaxis%u' % rcd.iax + yaxis = 'yaxis%u' % rcd.iax + + if fig is None: + fig, _ = get_fig_plotly() + fig.layout = dict(annotations=[dict(text=title, font_size=fontsize, x=0.5, xref='paper', xanchor='center', + y=1, yref='paper', yanchor='bottom' ,showarrow=False)], + yaxis_title_text=abu.wlabel_from_units(units, unicode=True), + xaxis_title_text="Wave Vector") + else: + fig.layout.annotations[idir].text = title + fig.layout.annotations[idir].font.size = fontsize + if idir == self.n_directions - 1: + fig.layout[xaxis].title.text = "Wave Vector" + if idir == 0: + fig.layout[yaxis].title.text = abu.wlabel_from_units(units, unicode=True) + + fig.layout[xaxis].rangemode = 'tozero' + fig.layout[yaxis].rangemode = 'tozero' + + rlatt = self.structure.lattice.reciprocal_lattice + freqs = self.phfreqs[idir] + qpt_cart_coords = np.array([np.linalg.norm(rlatt.get_cartesian_coords(c)) for c in self.qpts[idir]]) + slope = self.sound_velocities[idir] / abu.velocity_at_to_si * bohr_to_angstrom / eV_to_Ha + + units_factor = abu.phfactor_ev2units(units) + + for i, c in enumerate(["red", "blue", "green"]): + fig.add_scatter(x=qpt_cart_coords, y=slope[i] * qpt_cart_coords * units_factor, line_color=c, + name='', showlegend=False, mode='lines', row=ply_row, col=ply_col) + fig.add_scatter(x=qpt_cart_coords, y=freqs[i] * units_factor, marker=dict(symbol=4, size=8, color=c), + name='', showlegend=False, mode='markers', row=ply_row, col=ply_col) + + return fig + @add_fig_kwargs - def plot(self, units="eV", fontsize=8, **kwargs): + def plot(self, units="eV", fontsize=8, **kwargs) -> Figure: """ - Plots the phonon frequencies, if available, along all the directions. + Plots the phonon frequencies with matplotlib, if available, along all the directions. The lines representing the fitted values will be shown as well. Args: - ax: |matplotlib-Axes| or None if a new figure should be created. units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. - fontsize: fontsize for legends and titles + fontsize: fontsize for subtitles Returns: |matplotlib-Figure| """ @@ -353,6 +425,29 @@ def plot(self, units="eV", fontsize=8, **kwargs): return fig + @add_plotly_fig_kwargs + def plotly(self, units="eV", fontsize=12, **kwargs): + """ + Plots the phonon frequencies with plotly, if available, along all the directions. + The lines representing the fitted values will be shown as well. + + Args: + units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. + fontsize: fontsize for subtitles + + Returns: |plotly.graph_objects.Figure| + """ + + nrows, ncols = math.ceil(self.n_directions / 2), 2 + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=list(range(1, self.n_directions+1)), + horizontal_spacing=0.05) + + for i in range(self.n_directions): + rcd = PlotlyRowColDesc(i // 2, i % 2, nrows, ncols) + self.plotly_fit_freqs_dir(i, fig, rcd, units=units, fontsize=fontsize, show=False) + + return fig + def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. @@ -360,7 +455,7 @@ def yield_figs(self, **kwargs): # pragma: no cover for i in range(self.n_directions): yield self.plot_fit_freqs_dir(i) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write an jupyter_ notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. diff --git a/abipy/display/utils.py b/abipy/display/utils.py index ec2d79c13..7b54f9ab0 100644 --- a/abipy/display/utils.py +++ b/abipy/display/utils.py @@ -1,5 +1,6 @@ # coding: utf-8 """Tools to build ipython widgets.""" +from __future__ import annotations import ipywidgets as ipw diff --git a/abipy/dynamics/analyzer.py b/abipy/dynamics/analyzer.py new file mode 100644 index 000000000..35ab932fc --- /dev/null +++ b/abipy/dynamics/analyzer.py @@ -0,0 +1,2084 @@ +""" +Tools to analyze MD trajectories and compute diffusion coefficients. +""" +from __future__ import annotations + +import dataclasses +import warnings +import json +import os +import numpy as np +import pandas as pd +import pymatgen.core.units as units + +from pathlib import Path +from scipy.stats import linregress +from scipy import optimize +from matplotlib.offsetbox import AnchoredText +from monty.functools import lazy_property +from monty.bisect import find_le +from monty.string import list_strings, marquee +from monty.collections import AttrDict #, dict2namedtuple +from monty.termcolor import cprint +from pymatgen.util.string import latexify +from pymatgen.core.lattice import Lattice +from pymatgen.core.composition import Composition +#from abipy.core.mixins import TextFile # , NotebookWriter +from abipy.core.structure import Structure +from abipy.tools.typing import Figure, PathLike +from abipy.tools.serialization import HasPickleIO +from abipy.tools.iotools import try_files # , file_with_ext_indir +from abipy.tools.context_managers import Timer +from abipy.tools.plotting import (set_axlims, add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, get_color_symbol, + set_ticks_fontsize, set_logscale, linear_fit_ax) +from abipy.tools.parallel import pool_nprocs_pmode #, get_max_nprocs +from abipy.dynamics.cpx import parse_file_with_blocks, EvpFile + + +__author__ = "Giuliana Materzanini, Tommaso Chiarotti, Matteo Giantomassi" + + +Ang2PsTocm2S = 0.0001 +e2s = 1.602188**2 # electron charge in Coulomb scaled by 10.d-19**2 +kbs = 1.38066 # Boltzmann constant in Joule/K scaled by 10.d-23 + +#bohr2a = 0.529177 +#kBoltzAng10m9 = 1.38066e-02 +#kBoltz = 1.38066e-23 +kBoltzEv = 8.617333e-05 +#nCar = 56 # FIXME: Harcoded + + +def common_oxidation_states() -> dict: + oxi2symbols = { + +1: ["Li", "Na", "K", "Rb", "Cs", "Fr"], + +2: ["Be", "Mg", "Ca", "Sr", "Ba", "Ra"], + } + + # map: symbol to oxidation state. + symb2oxi = {} + for oxi, slist in oxi2symbols.items(): + for s in slist: + symb2oxi[s] = oxi + return symb2oxi + + +def read_structure_postac_ucmats(traj_filepath: PathLike, step_skip: int) -> tuple[Structure, np.ndarray, np.ndarray, int]: + """ + Read all configurations from an ASE trajectory file. + + Args: + traj_filepath: File path. + step_skip: Sampling frequency. + time_step should be multiplied by this number to get the real time between measurements. + + Returns: + tuple with: initial Structure, (nsteps, natom, 3) array with the Cartesian coords, + (nsteps,3,3) array with cell vectors. + """ + from ase.io import read + traj = read(traj_filepath, index=":") + traj_len = len(traj) + structure = Structure.as_structure(traj[0]) + + pos_tac, ucmats = [], [] + for it in range(0, traj_len, step_skip): + atoms = traj[it] + pos_tac.append(atoms.positions) + ucmats.append(atoms.cell.array) + + del traj + pos_tac = np.array(pos_tac, dtype=float) + ucmats = np.array(ucmats, dtype=float) + + return structure, pos_tac, ucmats, traj_len + + +def parse_lammps_input(filepath: PathLike, verbose: int = 0): + """ + Extract parameters, atoms and structure from a LAMMPS input file. + Returns namedtuple with results. + """ + dirpath = Path(os.path.dirname(filepath)).absolute() + from pymatgen.io.lammps.inputs import LammpsInputFile + inp = LammpsInputFile.from_file(filepath, ignore_comments=False) + + atom_style = inp.get_args("atom_style") + units = inp.get_args("units") + timestep = float(inp.get_args("timestep")) + # dump ID group-ID style N file attribute1 attribute2 ... + dump = inp.get_args("dump") + if not dump: + raise ValueError(f"Cannot find dump command in LAMMPS input file: {filepath}") + tokens = dump.split() + loginterval = int(tokens[3]) + traj_filepath = dirpath / tokens[4] + + read_data = dirpath / inp.get_args("read_data") + log = inp.get_args("log") + if not log: + log = "log.lammps" + log = dirpath / log + + if verbose: + print(f"{atom_style=}, {units=}, {timestep=}, {read_data=}") + + # Build atoms from read_data. + from ase.io.lammpsdata import read_lammps_data + atoms = read_lammps_data( + read_data, + Z_of_type=None, + sort_by_id=False, + units=units, + style=atom_style, + ) + + # Extract temperature from the fix command. + temperature = None + fix_list = inp.get_args("fix") + for fix in fix_list: + tokens = fix.split() + try: + i = tokens.index("temp") + except ValueError: + continue + temp = float(tokens[i+1]) + if temperature is not None and temp != temperature: + raise ValueError(f"Found two different temperatures {temp=} and {temperature=} in LAMMPS input file: {filepath}") + temperature = temp + + if temperature is None: + raise ValueError(f"Cannot detect temperature in LAMMPS input file: {filepath}") + + return AttrDict(atoms=atoms, structure=Structure.as_structure(atoms), + units=units, temperature=temperature, timestep=timestep, loginterval=loginterval, + traj_filepath=traj_filepath, log=log, lammps_input=inp) + + +class MdAnalyzer(HasPickleIO): + """ + High-level interface to read MD trajectories and metadata from external files, + compute the MSQD and plot the results. + """ + + @classmethod + def from_abiml_dir(cls, directory: PathLike, step_skip: int = 1) -> MdAnalyzer: + """ + Build an instance from a directory containing an ASE trajectory file and + a JSON file with the MD parameters as produced by the `abiml.py md` script. + """ + directory = Path(str(directory)) + structure, pos_tac, ucmats, traj_len = read_structure_postac_ucmats(directory / "md.traj", step_skip) + + # Read metadata from the JSON file. + with open(directory / "md.json", "rt") as fh: + meta = json.load(fh) + + temperature = meta["temperature"] + # Convert from ASE fs to ps + timestep = meta["timestep"] * 1e-3 + loginterval = meta["loginterval"] + engine = meta["nn_name"] + times = (np.arange(0, traj_len) * timestep * loginterval)[::step_skip].copy() + + log_path = try_files([directory / "md.aselog", directory / "md.log"]) + from abipy.ml.aseml import AseMdLog + with AseMdLog(log_path) as log: + evp_df = log.df.copy() + + return cls(structure, temperature, times, pos_tac, ucmats, engine, evp_df=evp_df) + + @classmethod + def from_hist_file(cls, hist_filepath: PathLike, step_skip: int=1) -> MdAnalyzer: + """ + Build an instance from an ABINIT HIST.nc file. + """ + from abipy.dynamics.hist import HistFile + with HistFile(hist_filepath) as hist: + structure = hist.structure.copy() + #hist.r.read_dimvalue("time") + pos_tac = hist.r.read_value("xcart") * units.bohr_to_ang + ucmats = hist.r.read_value("rprimd") * units.bohr_to_ang + #temperature = None + #evp_df = None + + #times = (np.arange(0, traj_len) * r.timestep * r.loginterval)[::step_skip].copy() + if step_skip != 1: + ucmats = ucmats[::step_skip].copy() + pos_tac = pos_tac[::step_skip].copy() + + raise NotImplementedError() + #return cls(structure, temperature, times, pos_tac, ucmats, "abinit", evp_df=evp_df) + + @classmethod + def from_vaspruns(cls, filepaths: list) -> MdAnalyzer: + """ + Build an instance from a list of Vasprun files (must be ordered in sequence of MD simulation). + """ + def get_structures(vaspruns): + # This piece of code is shamelessy taken from + # https://github.com/materialsvirtuallab/pymatgen-analysis-diffusion/blob/master/pymatgen/analysis/diffusion/analyzer.py + for i, vr in enumerate(vaspruns): + if i == 0: + step_skip = vr.ionic_step_skip or 1 + final_structure = vr.initial_structure + temperature = vr.parameters["TEEND"] + timestep = vr.parameters["POTIM"] # fs + yield step_skip, temperature, timestep + + # check that the runs are continuous + from pymatgen.util.coord import pbc_diff + fdist = pbc_diff( + vr.initial_structure.frac_coords, final_structure.frac_coords + ) + if np.any(fdist > 0.001): + raise ValueError("initial and final structures do not match.") + final_structure = vr.final_structure + + assert (vr.ionic_step_skip or 1) == step_skip + for s in vr.ionic_steps: + yield s["structure"] + + from pymatgen.io.vasp.outputs import Vasprun + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + vaspruns = [Vasprun(path) for path in list_strings(filepaths)] + + s = get_structures(vaspruns) + step_skip, temperature, timestep = next(s) + + # Extract Cartesian positions. + pos_tac = [] + for i, strc in enumerate(s): + if i == 0: structure = strc + pos_tac.append(strc.coords) + + nsteps, natom = i + 1, len(structure) + pos_tac = np.reshape(pos_tac, (nsteps, natom, 3)) + times = np.arange(0, nsteps) * timestep * step_skip + evp_df = None + + return cls(structure, temperature, times, pos_tac, "vasp", evp_df=evp_df) + + #@classmethod + #def from_qe_dir(cls, directory: PathLike, step_skip: int=1): + # traj_filepath = file_with_ext_indir(".lammpstrj", directory) + # return cls.from_qe_input(filepath: PathLike, step_skip=step_skip): + + @classmethod + def from_qe_input(cls, filepath: PathLike, step_skip: int=1): + """ + Build an instance from a CP/PW input file. + + Conventions for Quantum ESPRESSO input files: + ".pwi" -> pw.x + ".cpi" -> cp.x + """ + filepath = Path(str(filepath)).absolute() + engine = None + if filepath.name.endswith(".pwi"): + engine = "qepw" + default_prefix = "pwscf" + if filepath.name.endswith(".cpi"): + engine = "qecp" + default_prefix = "cp" + + if engine is None: + raise ValueError("QE input file should end with .pwi for pw.x or .cpi for cp.x") + + # Use ASE to parse QE input file. + from ase.io.espresso import read_espresso_in, read_fortran_namelist + with open(filepath, "rt") as fh: + atoms = read_espresso_in(fh) + fh.seek(0) + sections, card_lines = read_fortran_namelist(fh) + + structure = Structure.as_structure(atoms) + natoms = len(structure) + + # https://www.quantum-espresso.org/Doc/INPUT_CP.html + control = sections["control"] + calculation = control["calculation"] + + # time step for molecular dynamics, in Hartree atomic units + # (1 a.u.=2.4189 * 10^-17 s : beware, PW code use Rydberg atomic units, twice that much!!!) + timestep = control.get("dt", 1.0) + timestep = timestep * 2.4189 * 1e-5 + if engine == "qepw": timestep *= 2 + isave = control.get("isave", 100) + prefix = control.get("prefix", default_prefix) + outdir = Path(control.get("outdir", filepath.cwd())) + + # ELECTRONS section + #electrons = sections["electrons"] + # IONS section + ions = sections["ions"] + temperature = ions.get("tempw", 300) + # CELL section + #cell = sections["cell"] + + # Get atomic positions from the pos file. + pos_filepath = outdir / (prefix + ".pos") + pos_nsteps, pos_tac, pos_headers = parse_file_with_blocks(pos_filepath, natoms) + pos_tac = np.reshape(pos_tac, (pos_nsteps, natoms, 3)) + + # Get lattices from the cell file. + cel_filepath = outdir / (prefix + ".cel") + cel_nsteps, ucmats, pos_headers = parse_file_with_blocks(cel_filepath, 3) + ucmats = np.reshape(ucmats, (cel_nsteps, 3, 3)) + + if pos_nsteps != cel_nsteps: + raise RuntimeError(f"Found differrent no. iterations in pos and cel file: {pos_nsteps=} != {cel_nsteps=}") + + times = np.arange(0, pos_nsteps) * timestep * step_skip + if step_skip != 1: + ucmats = ucmats[::step_skip].copy() + pos_tac = pos_tac[::step_skip].copy() + + # Extract energies from CP EVP file + with EvpFile(outdir / (prefix + ".evp")) as evp: + evp_df = evp.df.copy() + + return cls(structure, temperature, times, pos_tac, ucmats, engine, evp_df=evp_df) + + @classmethod + def from_lammps_dir(cls, directory: PathLike, step_skip: int=1, basename="in.lammps") -> MdAnalyzer: + """ + Build an instance from a directory containing a LAMMPS input file. + """ + return cls.from_lammp_input(Path(str(directory)) / basename, step_skip=step_skip) + + @classmethod + def from_lammps_input(cls, input_filepath: PathLike, step_skip: int=1) -> MdAnalyzer: + """ + Build an instance from a LAMMPS input file. + + Args: + input_filepath: LAMMPS input file. + """ + r = parse_lammps_input(input_filepath, verbose=0) + #structure = r.structure + + structure, pos_tac, ucmats, traj_len = read_structure_postac_ucmats(r.traj_filepath, step_skip) + + if r.units != "metal": + from ase.calculators.lammps import convert + pos_tac = convert(pos_tac, "distance", r.units, "metal") + ucmats = convert(ucmats, "distance", r.units, "metal") + + times = (np.arange(0, traj_len) * r.timestep * r.loginterval)[::step_skip].copy() + + # Extract dataframe from the log file. + evp_df = None + if r.log.exists(): + from pymatgen.io.lammps.outputs import parse_lammps_log + df_list = parse_lammps_log(r.log) + evp_df = df_list[-1] + + return cls(structure, r.temperature, times, pos_tac, ucmats, "lammps", evp_df=evp_df) + + @classmethod + def from_lammpstrj(cls, traj_filepath: PathLike, input_filepath: PathLike, step_skip: int = 1) -> MdAnalyzer: + """ + Build an instance from a LAMMPS trajectory file and a log file. + + Args: + traj_filepath: + input_filepath: + """ + structure, pos_tac, ucmats, traj_len = read_structure_postac_ucmats(traj_filepath, step_skip) + + if input_filepath.endswith(".evp"): + # Extract times from CP EVP file (Giuliana's way) + temperature = None + with EvpFile(input_filepath) as evp: + evp_df = evp.df.copy() + timestep = evp.times[1] - evp.times[0] + loginterval = 1 + else: + raise NotImplementedError() + + times = (np.arange(0, traj_len) * timestep * loginterval)[::step_skip].copy() + + return cls(structure, temperature, times, pos_tac, ucmats, "lammps", evp_df=evp_df) + + def __init__(self, + structure: Structure, + temperature: float, + times: np.ndarray, + cart_positions: np.ndarray, + ucmats: np.ndarray, + engine: str, + pos_order: str = "tac", + evp_df=None | pd.DataFrame, + ): + """ + Args: + structure: Structure object (first geometry of the MD run). + temperature: Temperature in Kelvin. + times: Array with times in ps units. + cart_positions: Cartesian positions in Ang. Default shape: (nt, natom, 3). + ucmats: Array of lattice matrix of every step. Used for NPT. + For NVT-AIMD, the lattice at each time step is set to the lattice in the "structure" argument. + pos_order: "tac" if cart_positions has shape (nt, natom, 3). + "atc" if cart_positions has shape (natom, nt, 3). + evp_df: + """ + self.structure = structure + self.times = times + self.engine = engine + + if pos_order == "tac": + self.pos_atc = cart_positions.transpose(1, 0, 2).copy() + elif pos_order == "atc": + self.pos_atc = cart_positions + else: + raise ValueError(f"Invalid {pos_order=}") + + self.evp_df = evp_df + + if np.all(ucmats[it] == ucmats[0] for it in range(len(ucmats))): + self.lattices = None + else: + self.lattices = np.array([Lattice(mat) for mat in ucmats]) + + self.latex_formula = self.structure.latex_formula + self.temperature = temperature + self.set_color_symbol("VESTA") + self.verbose = 0 + + self.consistency_check() + + def consistency_check(self) -> None: + """ + Perform internal consistency check. + """ + if self.pos_atc.shape != (self.natom, self.nt, 3): + raise ValueError(f"Invalid shape {self.pos_atc.shape=}, expecting: {(self.natom, self.nt, 3)}") + if len(self.times) != self.nt: + raise ValueError(f"{len(self.times)=} != {self.nt=}") + + # Check times mesh. + ierr = 0 + for it in range(self.nt-1): + dt = self.times[it+1] - self.times[it] + if abs(dt - self.timestep) > 1e-3: + ierr += 1 + if ierr < 10: print(f"{dt=} != {self.timestep=}") + if ierr: + raise ValueError(f"Time-mesh is not linear. There are {ierr} points with wrong timestep") + + if self.lattices is not None and len(self.lattices) != self.nt: + raise ValueError(f"{len(self.lattices)=} != {self.nt=}") + + def get_params_dict(self) -> dict: + """Dictionary with the most important parameters.""" + attr_names = [ + "latex_formula", "temperature", "timestep", "nt", "max_time", "natom", "avg_volume", "engine", + ] + d = {aname: getattr(self, aname) for aname in attr_names} + return d + + def deepcopy(self) -> MdAnalyzer: + """Deep copy of the object.""" + import copy + return copy.deepcopy(self) + + def iter_structures(self): + """Generate pymatgen structures.""" + species = self.structure.species + pos_tac = self.pos_atc.transpose(1, 0, 2).copy() + + if self.lattices is None: + # Same lattice. + const_lattice = self.structure.lattice + for coords in pos_tac: + yield Structure(const_lattice, species, coords, coords_are_cartesian=True) + else: + for coords, lattice in zip(pos_tac, self.lattices): + yield Structure(lattice.copy(), species, coords, coords_are_cartesian=True) + + #def iter_atoms(self): + # """Generate ASE atoms""" + # Atoms(symbols=None, + # positions=None, numbers=None, + # tags=None, momenta=None, masses=None, + # magmoms=None, charges=None, + # scaled_positions=None, + # cell=None, pbc=None, celldisp=None, + # constraint=None, + # calculator=None, + # info=None, + # velocities=None) + + def resample_step(self, start_at_step: int, take_every: int) -> MdAnalyzer: + """ + Resample the trajectory. Start at iteration start_at_step and increase + the timestep by taking every `take_every` iteration. + """ + return self.resample_time(start_time=start_at_step * self.timestep, new_timestep=take_every * self.timestep) + + def resample_time(self, start_time: float, new_timestep: float) -> MdAnalyzer: + """ + Resample the trajectory. Start at time `start_time` and use new timestep `new_timestep`. + """ + # TODO: This is not true anymore! + # NB: Cannot change the object in place as SigmaBerend and DiffusionData keep a reference to self. + new = self.deepcopy() + + old_timestep = new.times[1] - new.times[0] + if not (new.times[-1] > start_time > new.times[0]): + raise ValueError(f"Invalid start_time should be between {new.times[0]} and {new.times[-1]})") + + it0 = int(start_time / old_timestep) + if it0 != 0: + new.pos_atc = new.pos_atc[:,it0:,:] + new.times = new.times[it0:] - new.times[it0] + if new.lattices is not None: + new.lattices = new.lattices[it0:] + if self.evp_df is not None: + self.evp_df = self.evp_df.iloc[it0:] + + if new_timestep < old_timestep: + raise ValueError(f"Invalid {new_timestep=} should be >= {old_timestep}") + + istep = int(new_timestep / old_timestep) + if istep != 1: + new.pos_atc = new.pos_atc[:,::istep,:].copy() + new.times = new.times[::istep] - new.times[0] + if new.lattices is not None: + new.lattices = new.lattices[::istep].copy() + if self.evp_df is not None: + self.evp_df = self.evp_df.iloc[::istep] + + new.consistency_check() + return new + + @property + def timestep(self) -> float: + """Timestep in ps.""" + return self.times[1] - self.times[0] + + @property + def max_time(self) -> float: + """Maximum simulation time in ps.""" + return self.times[-1] + + @property + def nt(self) -> int: + """Number of points in the MD trajectory.""" + return self.pos_atc.shape[1] + + @lazy_property + def natom(self) -> int: + """Number of atoms.""" + return len(self.structure) + + @property + def temperature(self) -> float: + """Temperature in Kelvin.""" + return self._temperature + + @temperature.setter + def temperature(self, value): + """Set temperature in Kelvin.""" + self._temperature = value + + @property + def verbose(self) -> int: + """Verbosity level.""" + return self._verbose + + @verbose.setter + def verbose(self, value: int): + """Set temperature in Kelvin.""" + self._verbose = value + + @property + def engine(self) -> str: + return self._engine + + @engine.setter + def engine(self, value): + """Set engine string.""" + self._engine = value + + @property + def formula(self) -> str: + """Returns the formula as a string.""" + return self.structure.formula + + @property + def latex_formula(self) -> str: + return self._latex_formula + + @latex_formula.setter + def latex_formula(self, value): + """LaTeX formatted formula. E.g., Fe2O3 is transformed to Fe$_{2}$O$_{3}$.""" + self._latex_formula = latexify(value) + + @property + def latex_formula_n_temp(self) -> str: + return f"{self.latex_formula}\nT = {self.temperature} K" + + @property + def latex_avg_volume(self) -> str: + return "V$_{\mathrm{ave}}$ = " + f"{self.avg_volume:.2f}" + '$\mathrm{{\AA}^3}$' + + @property + def avg_volume(self) -> float: + """Average unit cell volume in Ang^3.""" + if self.lattices is None: + return self.structure.lattice.volume + return np.mean([lat.volume for lat in self.lattices]) + + def set_color_symbol(self, dict_or_string: dict | str) -> None: + """ + Set the dictionary mapping chemical_symbol --> color + used in the matplotlib plots. + + Args: + dict_or_string: "VESTA", "Jmol" + """ + if isinstance(dict_or_string, dict): + self.color_symbol = dict_or_string + else: + self.color_symbol = get_color_symbol(style=dict_or_string) + + for symbol in self.structure.symbol_set: + if symbol not in self.color_symbol: + raise KeyError(f"Cannot find {symbol=} in color_symbol dictionary!") + + def get_it_ts(self, t0: float) -> tuple[int, np.ndarray]: + """ + Return the index of time t0 in self.times and the array with the time values. + """ + if t0 < self.times[0] or t0 > self.times[-1]: + raise ValueError(f"Invalid {t0=}. It should be between {self.times[0]} and {self.times[-1]}") + + it0 = find_le(self.times, t0) + return it0, self.times[it0:] - self.times[it0] + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosity level verbose.""" + lines = [] + app = lines.append + app(marquee("MD PARAMETERS", mark="=")) + app(pd.Series(self.get_params_dict()).to_string()) + if verbose: + app(self.structure.spget_summary(verbose=verbose)) + app("\n") + + return "\n".join(lines) + + def iatoms_with_symbol(self, symbol: str, atom_inds=None) -> np.ndarray: + """ + Array with the index of the atoms with the given chemical symbol. + If atom_inds is not None, filter sites accordingly. + """ + iatoms = [iat for iat in range(len(self.structure)) if self.structure[iat].specie.symbol == symbol] + if atom_inds is not None: + iatoms = [iat for iat in iatoms if iat in atom_inds] + if not iatoms: + raise ValueError(f"Empty list of iatoms indices for {symbol=} and {atom_inds=}") + + return np.array(iatoms) + + def _select_symbols(self, symbols) -> list[str]: + if symbols == "all": return sorted(self.structure.symbol_set) + return list_strings(symbols) + + def get_sqdt_iatom(self, iatom: int, it0: int = 0) -> np.array: + """ + Compute the square displacement vs time for a given atomic index + starting from time index it0. + """ + return ((self.pos_atc[iatom,it0:] - self.pos_atc[iatom,it0]) ** 2).sum(axis=1) + + def get_sqdt_symbol(self, symbol: str, it0: int = 0, atom_inds=None) -> np.array: + """ + Compute the square displacement vs time averaged over atoms with the same chemical symbol + starting from time index it0. atoms_inds adds an additional filter on the site index. + """ + for count, iatom in enumerate(self.iatoms_with_symbol(symbol, atom_inds=atom_inds)): + if count == 0: + sqdt = self.get_sqdt_iatom(iatom, it0=it0) + else: + sqdt += self.get_sqdt_iatom(iatom, it0=it0) + + sqdt /= (count + 1) + return sqdt + + def get_dw_symbol(self, symbol, t0: float = 0.0, tmax=None, atom_inds=None): + """ + Compute diffusion coefficient by performing a naive linear regression of the raw MQST. + """ + it0, ts = self.get_it_ts(t0) + it1 = -1 + if tmax is not None: + it1, _ = self.get_it_ts(tmax) + ts = ts[:it1] + + sqdt = self.get_sqdt_symbol(symbol, it0=it0, atom_inds=atom_inds) + fit = linregress(ts[:it1], sqdt[:it1]) + naive_d = fit.slope * Ang2PsTocm2S / 6 + label = r"Linear fit: D={:.2E} cm$^2$/s, $r^2$={:.2f}".format(naive_d, fit.rvalue**2) + return AttrDict(naive_d=naive_d, ts=ts, fit=fit, label=label) + + def get_msdtt0_symbol_tmax(self, symbol: str, tmax: float, atom_inds=None, nprocs=None) -> Msdtt0: + r""" + Calculates the MSD for every possible pair of time points using the formula: + + $$MSD(t,t_0) = \frac{1}{N} \sum_{i=1}^{N} (\vec{r}_i(t+t_0) - \vec{r}_i(t_0))^2$$ + + where $N$ is the number of particles with the given symbol, and $\vec{r}_i(t)$ is the position vector. + + Args: + symbols: + tmax: + atoms_ins + """ + index_tmax, _ = self.get_it_ts(tmax) + iatoms = self.iatoms_with_symbol(symbol, atom_inds=atom_inds) + tac = self.pos_atc[iatoms].transpose(1, 0, 2).copy() + arr_tt0 = msd_tt0_from_tac(tac, index_tmax, nprocs=nprocs) + + return Msdtt0(arr_tt0=arr_tt0, mda=self, index_tmax=index_tmax, symbol=symbol) + + @add_fig_kwargs + def plot_sqdt_atoms(self, symbols="all", t0: float = 0.0, atom_inds=None, + ax=None, xy_log=None, fontsize=8, xlims=None, **kwargs) -> Figure: + """ + Plot the square displacement of atoms vs time. + + Args: + symbols: List of chemical symbols to consider. + t0: Initial time in ps. + atom_inds: List of atom indices to include. None to disable filtering. + ax: |matplotlib-Axes| or None if a new figure should be created. + xy_log: None or empty string for linear scale. "x" for log scale on x-axis. + "xy" for log scale on x- and y-axis. "x:semilog" for semilog scale on x-axis. + fontsize: fontsize for legends and titles. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + """ + it0, ts = self.get_it_ts(t0) + ax, fig, plt = get_ax_fig_plt(ax=ax) + + for symbol in self._select_symbols(symbols): + for iatom in self.iatoms_with_symbol(symbol, atom_inds=atom_inds): + sd_t = self.get_sqdt_iatom(iatom, it0=it0) + ax.plot(ts, sd_t, label=f"${symbol}_{{{iatom}}}$") + + ax.legend(fontsize=fontsize, loc="upper left") + ax.set_xlabel('t (ps)', fontsize=fontsize) + ax.set_ylabel(r'square displacement ($\mathrm{{\AA}^2}$)', fontsize=fontsize) + set_axlims(ax, xlims, "x") + #set_ticks_fontsize(ax, fontsize) + set_logscale(ax, xy_log) + ax.add_artist(AnchoredText(f"{self.latex_formula_n_temp}\n{self.latex_avg_volume}\n" + + "sd(t, $t_0$ =" + str(int(self.times[it0])) + " ps)", + loc="upper right", prop=dict(size=fontsize))) + return fig + + @add_fig_kwargs + def plot_sqdt_symbols(self, symbols, t0: float = 0.0, atom_inds=None, with_dw=0, + ax=None, xy_log=None, fontsize=8, xlims=None, **kwargs) -> Figure: + """ + Plot the square displacement averaged over all atoms of the same specie vs time. + + Args: + symbols: List of chemical symbols to consider. "all" for all symbols in structure. + t0: Initial time in ps. + atom_inds: List of atom indices to include. None to disable filtering. + with_dw: If != 0 compute diffusion coefficient via least-squares fit in the time-interval [t0, with_dw]. + If with_dw < 0 e.g. -1 the time-interval is set to [t0, tmax]. + ax: |matplotlib-Axes| or None if a new figure should be created. + xy_log: None or empty string for linear scale. "x" for log scale on x-axis. + "xy" for log scale on x- and y-axis. "x:semilog" for semilog scale on x-axis. + fontsize: fontsize for legends and titles. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + """ + it0, ts = self.get_it_ts(t0) + ax, fig, plt = get_ax_fig_plt(ax=ax) + + for symbol in self._select_symbols(symbols): + ax.plot(ts, self.get_sqdt_symbol(symbol, it0=it0, atom_inds=atom_inds), + label=symbol + ' msd($t, t_0$ = ' + str(t0) + ' ps)', + color=self.color_symbol[symbol], + ) + + if with_dw != 0: + tmax = self.times[-1] if with_dw < 0 else with_dw + dw = self.get_dw_symbol(symbol, t0=t0, tmax=with_dw, atom_inds=atom_inds) + ax.plot(dw.ts, dw.fit.slope*dw.ts + dw.fit.intercept, + label=symbol + " " + dw.label, color=self.color_symbol[symbol], + ) + + ax.legend(fontsize=fontsize, loc="upper left") + ax.set_xlabel('t (ps)', fontsize=fontsize) + ax.set_ylabel('mean square displacement ($\mathrm{{\AA}^2}$)', fontsize=fontsize) + set_axlims(ax, xlims, "x") + #set_ticks_fontsize(ax, fontsize) + set_logscale(ax, xy_log) + ax.add_artist(AnchoredText(f"{self.latex_formula_n_temp}\n{self.latex_avg_volume}", + loc="upper right", prop=dict(size=fontsize))) + return fig + + @add_fig_kwargs + def plot_sqdt_symbols_tmax(self, symbols, tmax: float, atom_inds=None, nprocs=None, + ax=None, xy_log=None, fontsize=8, xlims=None, **kwargs) -> Figure: + """ + Plot the square displacement averaged over all atoms of the same specie vs time. + + Args: + symbols: List of chemical symbols to consider. "all" for all symbols in structure. + tmax: Max time in ps. + atom_inds: List of atom indices to include. None to disable filtering. + nprocs: Number of procs to use. + ax: |matplotlib-Axes| or None if a new figure should be created. + xy_log: None or empty string for linear scale. "x" for log scale on x-axis. + "xy" for log scale on x- and y-axis. "x:semilog" for semilog scale on x-axis. + fontsize: fontsize for legends and titles + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + """ + index_tmax, _ = self.get_it_ts(tmax) + ax, fig, plt = get_ax_fig_plt(ax=ax) + + for symbol in self._select_symbols(symbols): + iatoms = self.iatoms_with_symbol(symbol, atom_inds=atom_inds) + tac = self.pos_atc[iatoms].transpose(1, 0, 2).copy() + msd_tt0 = msd_tt0_from_tac(tac, index_tmax, nprocs=nprocs) + msd_t = np.mean(msd_tt0, axis=1) + t_start = self.nt - index_tmax + ts = self.times[t_start:] - self.times[t_start] + + ax.plot(ts, msd_t, + label=symbol + " $\{$t_0$\}$, $t$ = [0, " + str(int(self.times[index_tmax])) + " ps]", + color=self.color_symbol[symbol], + ) + + set_axlims(ax, xlims, "x") + ax.legend(fontsize=fontsize, loc="upper left") + ax.set_xlabel('t (ps)', fontsize=fontsize) + ax.set_ylabel('average mean square displacement ($\mathrm{{\AA}^2}$)', fontsize=fontsize) + #set_ticks_fontsize(ax, fontsize) + set_logscale(ax, xy_log) + ax.add_artist(AnchoredText(f"{self.latex_formula_n_temp}\n{self.latex_avg_volume}", + loc="upper right", prop=dict(size=fontsize))) + return fig + + @add_fig_kwargs + def plot_lattices(self, what_list=("abc", "angles", "volume"), ax_list=None, + xy_log=None, fontsize=8, xlims=None, **kwargs) -> Figure: + """ + Plot lattice lengths/angles/volume as a function of time. + + Args: + what_list: List of strings specifying the quantities to plot. Default all + ax_list: List of axis or None if a new figure should be created. + xy_log: None or empty string for linear scale. "x" for log scale on x-axis. + "xy" for log scale on x- and y-axis. "x:semilog" for semilog scale on x-axis. + fontsize: fontsize for legends and titles + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + """ + if self.lattices is None: + cprint("MD simulation has been performed with fixed lattice!", color="red") + return None + + what_list = list_strings(what_list) + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=1, ncols=len(what_list), + sharex=True, sharey=False, squeeze=False) + markers = ["o", "^", "v"] + + cnt = -1 + if "abc" in what_list: + # plot lattice parameters. + for i, label in enumerate(["a", "b", "c"]): + cnt += 1 + ax = ax_list[cnt] + ax.plot(self.times, [lattice.abc[i] for lattice in self.lattices], + label=label, marker=markers[i]) + ax.set_ylabel("abc (A)") + + if "angles" in what_list: + # plot lattice angles. + for i, label in enumerate(["alpha", "beta", "gamma"]): + cnt += 1 + ax = ax_list[cnt] + ax.plot(self.times, [lattice.angles[i] for lattice in self.lattices], + label=label, marker=markers[i]) + ax.set_ylabel(r"$\alpha\beta\gamma$ (degree)") + + if "volume" in what_list: + # plot lattice volume. + marker = "o" + cnt += 1 + ax = ax_list[cnt] + ax.plot(self.times, [lattice.volume for lattice in self.lattices], + label="Volume", marker=marker) + ax.set_ylabel(r'$V\, (A^3)$') + + for ix, ax in enumerate(ax_list): + set_logscale(ax, xy_log) + set_axlims(ax, xlims, "x") + if ix == len(ax_list) - 1: + ax.set_xlabel('t (ps)', fontsize=fontsize) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + return fig + + +@dataclasses.dataclass(kw_only=True) +class Msdtt0: + r""" + This object stores: + + $$MSD(t,t_0) = \frac{1}{N} \sum_{i=1}^{N} (\vec{r}_i(t+t_0) - \vec{r}_i(t_0))^2$$ + + where $N$ is the number of particles of a particular chemical symbol and $\vec{r}_i(t)$ is the position vector. + """ + index_tmax: int + symbol: str + arr_tt0: np.ndarray + mda: MdAnalyzer + + @property + def times(self) -> np.ndarray: + return self.mda.times + + @property + def temperature(self) -> float: + return self.mda.temperature + + @lazy_property + def msd_t(self) -> np.ndarray: + """Average of MSD(t,t_0) over t0.""" + return np.mean(self.arr_tt0, axis=1) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level verbose.""" + lines = [] + app = lines.append + r = self.get_linfit_results() + app(r.label) + return "\n".join(lines) + + def get_linfit_results(self): + """ + Perform linear fit. + """ + t_start = self.mda.nt - self.index_tmax + ts = self.times[t_start:] - self.times[t_start] + fit = linregress(ts, self.msd_t) + naive_d = fit.slope * Ang2PsTocm2S / 6 + label = r"Linear fit: D={:.2E} cm$^2$/s, $r^2$={:.2f}".format(naive_d, fit.rvalue**2) + return AttrDict(naive_d=naive_d, fit=fit, label=label) + + @add_fig_kwargs + def plot(self, ax=None, xy_log=None, fontsize=8, xlims=None, **kwargs) -> Figure: + """ + Plot $ averaged over the initial time t0. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + xy_log: None or empty string for linear scale. "x" for log scale on x-axis. + "xy" for log scale on x- and y-axis. "x:semilog" for semilog scale on x-axis. + fontsize: fontsize for legends and titles + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + """ + index_tmax = self.index_tmax + t_start = self.mda.nt - index_tmax + ts = self.times[t_start:] - self.times[t_start] + + ax, fig, plt = get_ax_fig_plt(ax=ax) + ax.plot(ts, self.msd_t, + label=self.symbol + " $\{$t_0$\}$, t = [0, " + str(int(self.times[index_tmax])) + " ps]", + color=self.mda.color_symbol[self.symbol], + ) + + # Linear fit. + r = self.get_linfit_results() + ax.plot(ts, r.fit.slope * ts + r.fit.intercept, label=r.label) + + set_axlims(ax, xlims, "x") + ax.legend(fontsize=fontsize, loc="upper left") + ax.set_xlabel('t (ps)', fontsize=fontsize) + ax.set_ylabel('average mean square displacement ($\mathrm{{\AA}^2}$)', fontsize=fontsize) + #set_ticks_fontsize(ax, fontsize) + set_logscale(ax, xy_log) + ax.add_artist(AnchoredText(f"{self.mda.latex_formula_n_temp}\n{self.mda.latex_avg_volume}", + loc="upper right", prop=dict(size=fontsize))) + return fig + + def get_sigma_berend(self, t1: float, t2: float, nblock_step: int=1, tot_block: int=1000) -> SigmaBerend: + """ + Args: + t1: + t2: + nblock_step + tot_block + """ + # choose the time elapsed + it1, _ = sfind_ind_val(self.times, t1) + it2, _ = sfind_ind_val(self.times, t2) + size_t = self.arr_tt0.shape[0] + + if it1 >= it2: + raise ValueError(f"For input {t1=} and {t2=}, got {it1=} >= {it2=}") + if it1 >= size_t: + raise ValueError(f"For input {t1=}, got {it1=} >= {size_t=}") + if it2 >= size_t: + raise ValueError(f"For input {t2=}, got {it2=} >= {size_t=}") + + block_sizes1, sigmas1, delta_sigmas1 = sigma_berend(nblock_step, tot_block, self.arr_tt0[it1,:]) + block_sizes2, sigmas2, delta_sigmas2 = sigma_berend(nblock_step, tot_block, self.arr_tt0[it2,:]) + + # Build instance from locals dict. + mda = self.mda + latex_formula = mda.latex_formula + temperature = mda.temperature + time1, time2 = mda.times[it1], mda.times[it2] + data = locals() + return SigmaBerend(**{k: data[k] for k in [field.name for field in dataclasses.fields(SigmaBerend)]}) + + def get_diffusion_with_sigma(self, + block_size1: int, block_size2: int, + fit_time_start: float, fit_time_stop: float, + sigma_berend: SigmaBerend) -> DiffusionData: + """ + Compute diffusion coefficient with uncertainty. + """ + sigmas1, block_sizes1 = sigma_berend.sigmas1, sigma_berend.block_sizes1 + sigmas2, block_sizes2 = sigma_berend.sigmas2, sigma_berend.block_sizes2 + it1, it2 = sigma_berend.it1, sigma_berend.it2 + + mda = self.mda + symbol = self.symbol + temperature = mda.temperature + latex_formula = mda.latex_formula + engine = mda.engine + avg_volume = mda.avg_volume + ncarriers = len(mda.structure.indices_from_symbol(symbol)) + times = self.times + + ib1, size1 = sfind_ind_val(block_sizes1, block_size1) + sig1 = sigmas1[ib1] + print(f"{sig1=}") + ib2, size2 = sfind_ind_val(block_sizes2, block_size2) + sig2 = sigmas2[ib2] + print(f"{sig2=}") + + # fit to a linear behaviour the errors + mSigma = (sig2 - sig1) / (it2-it1) + qSigma = sig1 - mSigma * it1 + mDataInBlock = (size2-size1) / (it2-it1) + qDataInBlock = size1 - mDataInBlock*it1 + + # and find error for anytime. + msd_tt0 = self.arr_tt0 + err_msd = np.zeros(msd_tt0.shape[0], dtype=float) + for t in range(msd_tt0.shape[0]): + err_msd[t] = abs(mSigma * t + qSigma) + + # and find error for anytime + dataScorrelated = np.zeros(msd_tt0.shape[0], dtype=int) + for t in range(msd_tt0.shape[0]): + dataScorrelated[t] = int(mDataInBlock * t + qDataInBlock) + + # average over the initial times. + msd_t = np.mean(msd_tt0, axis=1) + + fit_istart, _ = sfind_ind_val(times, fit_time_start) + fit_istop, _ = sfind_ind_val(times, fit_time_stop) + + msdSScorrelated, timeArrScorrelated, errMSDScorrelated = [], [], [] + counter, condition = fit_istart, True + while condition: + if counter >= fit_istop: + condition = False + else: + index = dataScorrelated[counter] + msdSScorrelated.append(msd_t[counter]) + timeArrScorrelated.append(times[counter]) + errMSDScorrelated.append(err_msd[counter]) + counter = counter + index + + msdSScorrelated = np.array(msdSScorrelated, dtype=float) + timeArrScorrelated = np.array(timeArrScorrelated, dtype=float) + errMSDScorrelated = np.array(errMSDScorrelated, dtype=float) + + best_angcoeff, quote, var_angcoeff, var_quote = linear_lsq_linefit(msdSScorrelated, timeArrScorrelated, 1/(errMSDScorrelated)**2) + min_angcoeff = best_angcoeff - np.sqrt(var_angcoeff) + max_angcoeff = best_angcoeff + np.sqrt(var_angcoeff) + + diffusion_coeff = best_angcoeff * Ang2PsTocm2S / 6 + err_diffusion_coeff = np.sqrt(var_angcoeff) * Ang2PsTocm2S / 6 + # TODO: Charge from oxidation state? + conductivity = e2s / kbs * ncarriers * diffusion_coeff / avg_volume / temperature * 1.e09 + err_conductivity = e2s / kbs * ncarriers / avg_volume / temperature * err_diffusion_coeff * 1.e09 + + print(f"{ncarriers=} for {symbol=}") + print('{:.2E}'.format(best_angcoeff*Ang2PsTocm2S/6, 2)) + print(best_angcoeff) + print(max_angcoeff) + print(min_angcoeff) + + # Build instance from locals dict. + data = locals() + return DiffusionData(**{k: data[k] for k in [field.name for field in dataclasses.fields(DiffusionData)]}) + + """ + ('timeStepJump = ' + str(timeStepJump) + '\n') + ('time, cel and pos were cut before ' + str(timeArray[0]+tInitial)+ 'ps' + '\n') + ('t elapsed max is ' + str(estimatedTMax)+ 'ps' + '\n') + ('trajectory length is ' + str(timeArrayTmp[timeArrayTmp.shape[0]-1])+ 'ps' + '\n') + ('error on msd(t) evaluated at ' + str(estimatedFirstTElapsed) + 'ps' + ' and ' + str(estimatedSecondTElapsed) + 'ps' + '\n') + ('evaluated n. of blocks at ' + str(estimatedFirstTElapsed) + 'ps' + ' is ' + str(block_size1) + '\n') + ('evaluated n. of blocks at ' + str(estimatedSecondTElapsed) + 'ps' + ' is ' + str(block_size2) + '\n') + ('number of decorrelated msd(t) data that we fit: ' + str(timeArrScorrelated.shape[0]) + '\n') + """ + + @add_fig_kwargs + def plot_mat(self, cmap="jet", fontsize=8, ax=None, **kwargs) -> Figure: + ax, fig, plt = get_ax_fig_plt(ax=ax) + im = ax.matshow(self.arr_tt0, cmap=cmap) + fig.colorbar(im, ax=ax) + ax.set_xlabel('t0 (ps)', fontsize=fontsize) + ax.set_ylabel('t (ps)', fontsize=fontsize) + ax.set_title(self.symbol + ": msd($t, t_0$)", fontsize=fontsize) + return fig + + + +class Msdtt0List(list): + """ + A list of Msdtt0 objects. + """ + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level verbose.""" + lines = [] + app = lines.append + for i, msdtt0 in enumerate(self): + app(msdtt0.to_string(verbose=verbose)) + return "\n".join(lines) + + @add_fig_kwargs + def plot(self, sharex=True, sharey=True, fontsize=8, **kwargs) -> Figure: + """ + Plot all Msdtt0 objects on a grid. + """ + nrows, ncols = len(self), 1 + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=sharex, sharey=sharey, squeeze=False) + ax_list = ax_list.ravel() + if len(self) % ncols != 0: ax_list[-1].axis("off") + + for ix, (msdtt0, ax) in enumerate(zip(self, ax_list)): + msdtt0.plot(ax=ax, fontsize=fontsize, show=False, **kwargs) + + return fig + + + +@dataclasses.dataclass(kw_only=True) +class SigmaBerend: + """ + Stores the variance of correlated data as function of block number. + """ + temperature: float + latex_formula: str + + it1: int + time1: float + block_sizes1: np.ndarray + sigmas1: np.ndarray + delta_sigmas1: np.ndarray + + it2: int + time2: float + block_sizes2: np.ndarray + sigmas2: np.ndarray + delta_sigmas2: np.ndarray + + @add_fig_kwargs + def plot(self, fontsize=8, ax_list=None, **kwargs) -> Figure: + """ + Plot variance of correlated data as function of block number. + """ + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=1, ncols=2, + sharex=True, sharey=True, squeeze=False) + + for ix, ax in enumerate(ax_list.ravel()): + xs, ys, yerr, it, time = self.block_sizes1, self.sigmas1, self.delta_sigmas1, self.it1, self.time1 + if ix == 1: + xs, ys, yerr, it, time = self.block_sizes2, self.sigmas2, self.delta_sigmas2, self.it2, self.time2 + + ax.errorbar(xs, ys, + yerr=yerr, linestyle='-', # linewidth=0.5, + label="$\sigma(\mathrm{MSD}($" + '%2.1f' % time +" ps$))$ "+ '\n' + + self.latex_formula + ', '+ 'T = %4.0f' % self.temperature + 'K') + ax.legend(fontsize=fontsize, loc="lower right") + ax.set_xlabel('N. of data in block', fontsize=fontsize) + ax.set_ylabel('$\sigma$ ($\AA^2$)', fontsize=fontsize) + ax.grid(True) + + fig.suptitle("Variance of correlated data as function of block number") + return fig + + +@dataclasses.dataclass(kw_only=True) +class DiffusionData(HasPickleIO): + """ + Diffusion results for a given temperature. + """ + diffusion_coeff: float + err_diffusion_coeff: float + conductivity: float + err_conductivity: float + temperature: float + symbol: str + latex_formula: str + avg_volume: float + ncarriers: int + block_size1: int + block_size2: int + fit_time_start: float # msd(t) fit starts at this time. + fit_time_stop: float # msd(t) fit ends at this time. + min_angcoeff: float # min angular coefficient of msd(t) + max_angcoeff: float # max angular coefficient of msd(t) + best_angcoeff: float # best angular coefficient of msd(t) + engine: str + msd_t: np.ndarray + err_msd: np.ndarray + sigma_berend: SigmaBerend + times: np.ndarray + # TODO: Find better names + quote: float + timeArrScorrelated: np.ndarray + msdSScorrelated: np.ndarray + errMSDScorrelated: np.ndarray + + @add_fig_kwargs + def plot(self, ax=None, fontsize=8, **kwargs) -> Figure: + """ + Plot MDS(t) with errors. + """ + ax, fig, plt = get_ax_fig_plt(ax=ax) + ts = self.times[:self.msd_t.shape[0]] + + ax.errorbar(ts, self.msd_t, yerr=self.err_msd, color='mediumblue', label=self.symbol) + ax.errorbar(self.timeArrScorrelated, self.msdSScorrelated, yerr=self.errMSDScorrelated, linestyle='-') + ax.errorbar(ts, self.best_angcoeff * ts + self.quote, linestyle='--') + ax.errorbar(ts, self.min_angcoeff * ts + self.quote, linestyle='--') + ax.errorbar(ts, self.max_angcoeff * ts + self.quote, linestyle='--') + + ax.set_xlabel('t (ps)', fontsize=fontsize) + ax.set_ylabel(r'$\mathrm{MSD}_\mathrm{tr}$ $\mathrm{(\AA}^2\mathrm{)}$', fontsize=fontsize) + ax.add_artist(AnchoredText( + 'D$_{tr}$ = (' + str('{:.2E}'.format(self.diffusion_coeff)) + '\u00B1' + + str('{:.2E}'.format(self.err_diffusion_coeff)) + ') cm$^2$/s', + loc="upper left", prop=dict(size=fontsize))) + ax.legend(fontsize=fontsize, loc="lower right") + ax.add_artist(AnchoredText(f"{self.latex_formula}\nT = {self.temperature} K", + loc="upper right", prop=dict(size=fontsize))) + return fig + + +class DiffusionDataList(list): + """ + A list of DiffusionData objects. + """ + + #@classmethod + #def from_topdir(cls, topdir): + # return cls.from_files(filepaths) + + #@classmethod + #def from_files(cls, filepaths): + # new = cls() + # for path in filepaths: + # new.append(DiffusionData.from_file(path)) + # return new + + #def _nrows_ncols_nplots(self, size=None): + # size = size or len(self) + # nrows, ncols, nplots = 1, 1, size + # if nplots > 1: + # ncols = 2; nrows = nplots // ncols + nplots % ncols + # return nrows, ncols, nplots + + #def filter(self, filter_dict: dict) -> DiffusionDataList: + # """ + # filter_dict = [{symbol: "Li"} + # """ + # new = DiffusionDataList() + # for df_data in self: + # if all(getattr(df_data, a_name) == a_value for (a_name, a_value) in filter_dict.items()): + # new.append(df_data) + # return new + + #def write_csv(self, filename: PathLike) -> None: + # """ + # Writes data to a file that can be easily plotted in other software. + + # Args: + # filename: Supported formats are csv and dat. + # If the extension is csv, a csv file is written. Otherwise, a dat format is assumed. + # """ + # delimiter = ", " + # with open(filename, "wt") as f: + # f.write("T,diffusion,err_diffusion,volume,symbol,composition\n") + # #for dt, msd, msdc, mscd in zip( + # # self.dt, self.msd, self.msd_components, self.mscd + # #): + # # f.write(delimiter.join([str(v) for v in [dt, msd, *list(msdc), mscd]])) + # # f.write("\n") + + def get_dataframe(self, add_keys=None) -> pd.DataFrame: + """ + Dataframe with diffusion results. + + Args: + add_keys: optional list of attributes to add. + """ + keys = [ + "temperature", "latex_formula", "symbol", + "diffusion_coeff", "err_diffusion_coeff", + "conductivity", "err_conductivity", + "engine", + ] + if add_keys is not None: + keys.extend(list_strings(add_keys)) + + d = {k: np.array([getattr(data, k) for data in self]) for k in keys} + df = pd.DataFrame(d).sort_values(["latex_formula", "engine", "temperature"]) + return df + + @add_fig_kwargs + def plot_sigma_berend(self, **kwargs) -> Figure: + """ + Plot variance of correlated data as function of block number + for all objects stored in DiffusionDataList. + """ + nrows, ncols = len(self), 2 + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False) + + for ix, (data, ax_list) in enumerate(zip(self, ax_mat)): + data.sigma_berend.plot(ax_list=ax_list, show=False) + + return fig + + @add_fig_kwargs + def plot(self, **kwargs) -> Figure: + """ + Plot ... + for all objects stored DiffusionDataList. + """ + nrows, ncols = len(self), 1 + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False) + ax_list = ax_list.ravel() + if len(self) % ncols != 0: ax_list[-1].axis("off") + + for i, (data, ax) in enumerate(zip(self, ax_list)): + data.plot(ax=ax, show=False) + + return fig + + def get_arrhenius_nmtuples(self, df: pd.Dataframe, hue: str | None) -> list: + """ + Return list of namedtuple objects. + + Args: + df: |pandas-DataFrame|. + hue: Variable defining how to group data. If None, no grouping is performed. + """ + df = df.sort_values(["temperature"]) + + if hue is None: + if not df["temperature"].is_unique: + raise ValueError("Found duplicated values in temperature column. Please specify hue") + + return [AttrDict(temps=df["temperature"].values, + d_coeffs=df["diffusion_coeff"].values, + d_errs=df["err_diffusion_coeff"].values, + )] + + nt_list = [] + for key, grp in df.groupby(hue): + grp = grp.sort_values(["temperature"]) + if not grp["temperature"].is_unique: + raise ValueError(f"Found duplicated values in temperature column for {hue=}") + nt = AttrDict(temps=grp["temperature"].values, + d_coeffs=grp["diffusion_coeff"].values, + d_errs=grp["err_diffusion_coeff"].values, + ) + nt_list.append(nt) + return nt_list + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + yield self.plot_sigma_berend(show=False) + yield self.plot(show=False) + + def expose(self, exposer="mpl", **kwargs): + from abipy.tools.plotting import Exposer + with Exposer.as_exposer(exposer) as e: + e(self.yield_figs(**kwargs)) + + +class MultiMdAnalyzer(HasPickleIO): + """ + High-level interface to analyze multiple MD trajectories + """ + + @classmethod + def from_abiml_dirs(cls, directories: list, step_skip=1, pmode="processes") -> MultiMdAnalyzer: + """ + Build an instance from a list of directories produced by abiml.py md + """ + p = pool_nprocs_pmode(len(directories), pmode=pmode) + using_msg = f"Reading {len(directories)} abiml directories {p.using_msg}" + args = [(dirpath, step_skip) for dirpath in directories] + with p.pool_cls(p.nprocs) as pool, Timer(header=using_msg, footer="") as timer: + return cls(pool.starmap(MdAnalyzer.from_abiml_dir, args)) + + @classmethod + def from_lammps_dirs(cls, directories: list, step_skip=1, basename="in.lammps", pmode="processes") -> MdAnalyzer: + """ + Build an instance from a list of directories containing LAMMPS results. + """ + p = pool_nprocs_pmode(len(directories), pmode=pmode) + using_msg = f"Reading {len(directories)} LAMMPS directories {p.using_msg}" + args = [(dirpath, step_skip, basename) for dirpath in directories] + with p.pool_cls(p.nprocs) as pool, Timer(header=using_msg, footer="") as timer: + return cls(pool.starmap(MdAnalyzer.from_lammps_dir, args)) + + @classmethod + def from_vaspruns(cls, vasprun_filepaths: list, step_skip=1, pmode="processes") -> MultiMdAnalyzer: + """ + Build an instance from a list of vasprun files. + """ + p = pool_nprocs_pmode(len(vasprun_filepaths), pmode=pmode) + using_msg = f"Reading {len(vasprun_filepaths)} vasprun files {p.using_msg}..." + args = [(vrun, step_skip) for vrun in vasprun_filepaths] + with p.pool_cls(p.nprocs) as pool, Timer(header=using_msg, footer="") as timer: + return cls(pool.starmap(MdAnalyzer.from_vaspruns, args)) + + @classmethod + def from_hist_files(cls, hist_filepaths: list, step_skip=1, pmode="processes") -> MultiMdAnalyzer: + """ + Build an instance from a list of ABINIT HIST.nc files. + """ + p = pool_nprocs_pmode(len(hist_filepaths), pmode=pmode) + using_msg = f"Reading {len(hist_filepaths)} HIST.nc files {p.using_msg}..." + args = [(ncpath, step_skip) for ncpath in hist_filepaths] + with p.pool_cls(p.nprocs) as pool, Timer(header=using_msg, footer="") as timer: + return cls(pool.starmap(MdAnalyzer.from_hist_file, args)) + + #@classmethod + #def from_qe_inputs(cls, filepaths: list, step_skip=1, pmode="processes") -> MultiMdAnalyzer: + # """ + # Build an instance from a list of QE input files. + # """ + # p = pool_nprocs_pmode(len(filepaths), pmode=pmode) + # using_msg = f"Reading {len(filespaths)} QE input files {p.using_msg}..." + # args = [(path, step_skip) for path in filepaths] + # with p.pool_cls(p.nprocs) as pool, Timer(header=using_msg, footer="") as timer: + # return cls(pool.starmap(MdAnalyzer.from_qe_input, args)) + + def __init__(self, mdas: list[MdAnalyzer], temp_colormap="jet"): + """ + Args: + mdas: List of MdAnalyzer + colormap: matplotlib colormap for temperatures. + """ + self.mdas = mdas + + # Sort analyzers according to temperature. + if self.has_same_system(): + self.mdas = sorted(mdas, key=lambda x: x.temperature) + + self.set_temp_colormap(temp_colormap) + + def __iter__(self): + return self.mdas.__iter__() + + def __len__(self) -> int: + return len(self.mdas) + + def __getitem__(self, items): + return self.mdas.__getitem__(items) + + def has_same_system(self) -> bool: + return all(mda.latex_formula == self[0].latex_formula for mda in self) + + def set_temp_colormap(self, colormap) -> None: + """Set the colormap for the list of temperatures.""" + import matplotlib.pyplot as plt + self.temp_cmap = plt.get_cmap(colormap) + + def get_params_dataframe(self) -> pd.DataFrame: + """Dataframe with the parameters of the different MdAnalyzers.""" + return pd.DataFrame([mda.get_params_dict() for mda in self]) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosity level verbose.""" + lines = [] + app = lines.append + app(marquee("MD PARAMETERS", mark="=")) + app(self.get_params_dataframe().to_string()) + app("\n") + return "\n".join(lines) + + def iter_mdat(self): + """Iterate over (MdAnalyzer, temperature).""" + for itemp, mda in enumerate(self): + yield mda, mda.temperature + + def iter_mdatc(self): + """Iterate over (MdAnalyzer, temperature, color).""" + for itemp, mda in enumerate(self): + yield mda, mda.temperature, self.temp_cmap(float(itemp) / len(self)) + + def get_msdtt0_symbol_tmax(self, symbol: str, tmax: float, atom_inds=None, nprocs=None) -> Msdtt0List: + msdtt0_list = Msdtt0List() + for mda in self: + obj = mda.get_msdtt0_symbol_tmax(symbol, tmax, atom_inds=atom_inds, nprocs=nprocs) + msdtt0_list.append(obj) + + return msdtt0_list + + #def color_itemp(self, itemp: int): + # return self.temp_cmap(float(itemp) / len(self)) + + #def temps_colors(self) -> tuple[list, list]: + # return ([mda.temperature for mda in self], + # [self.color_itemp(itemp) for itemp in range(len(self))]) + + def _nrows_ncols_nplots(self, size=None): + size = size or len(self) + nrows, ncols, nplots = 1, 1, size + if nplots > 1: + ncols = 2; nrows = nplots // ncols + nplots % ncols + return nrows, ncols, nplots + + @add_fig_kwargs + def plot_sqdt_symbols(self, symbols, t0: float = 0.0, + xy_log=None, fontsize=8, xlims=None, **kwargs) -> Figure: + """ + Plot the square displacement averaged over all atoms of the same specie vs time + for the different temperatures. + + Args: + symbols: List of chemical symbols to consider. "all" for all symbols in structure. + t0: Initial time in ps. + ax: |matplotlib-Axes| or None if a new figure should be created. + xy_log: None or empty string for linear scale. "x" for log scale on x-axis. + "xy" for log scale on x- and y-axis. "x:semilog" for semilog scale on x-axis. + fontsize: fontsize for legends and titles. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + """ + symbols = self[0]._select_symbols(symbols) + nrows, ncols, nplots = self._nrows_ncols_nplots(size=len(symbols)) + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=True, squeeze=False) + ax_list = ax_list.ravel() + if nplots % ncols != 0: ax_list[-1].axis("off") + + # Plot data. + for itemp, (mda, temp, color) in enumerate(self.iter_mdatc()): + it0, ts = mda.get_it_ts(t0) + for ix, (ax, symbol) in enumerate(zip(ax_list, symbols)): + ax.plot(ts, mda.get_sqdt_symbol(symbol, it0=it0), + label=f"T = {temp} K", color=color) + + # Decorate axes. + for ix, (ax, symbol) in enumerate(zip(ax_list, symbols)): + ax.set_title(symbol, fontsize=fontsize) + set_axlims(ax, xlims, "x") + ax.legend(fontsize=fontsize, loc="upper left") + ax.set_xlabel('t (ps)', fontsize=fontsize) + ax.set_ylabel('average mean square displacement ($\mathrm{{\AA}^2}$)', fontsize=fontsize) + #set_ticks_fontsize(ax, fontsize) + set_logscale(ax, xy_log) + + return fig + + +def sfind_ind_val(array, value, arr_is_sorted=False) -> tuple: + if arr_is_sorted: + # Use Log(N) bisection. + ind = find_le(array, value) + return ind, array[ind] + + array = np.asarray(array) + ind = (np.abs(array - value)).argmin() + return ind, array[ind] + + +def linear_lsq_linefit(x, z, weights): + S00 = np.sum(weights) + S10 = np.sum(z * weights) + S01 = np.sum(x * weights) + S20 = np.sum(z**2 * weights) + S11 = np.sum((x*z) * weights) + D = S00 * S20 - S10**2 + m = (S00*S11 - S10*S01) / D + q = (S01*S20 - S11*S10) / D + varM = S00 / D + varQ = S20 / D + return m, q, varM, varQ + + +def _func(size_t0: int, it: int, pos_tac: np.ndarray, msd_tt0: np.ndarray): + msd_tt0[it,:] = np.mean(np.sum((pos_tac[it:it+size_t0,:,:] - pos_tac[:size_t0,:,:])**2, axis=2), axis=1) + + +def msd_tt0_from_tac(pos_tac: np.ndarray, size_t: int, nprocs=None) -> np.ndarray: + r""" + Calculates the MSD for every possible pair of time points in the input array, using the formula: + + $$MSD(t,t_0) = \frac{1}{N} \sum_{i=1}^{N} (\vec{r}_i(t+t_0) - \vec{r}_i(t_0))^2$$ + + where $N$ is the number of particles, and $\vec{r}_i(t)$ is the position vector. + + Args: + pos_tac + size_t + nprocs: + """ + # Check if size_t is valid. + n_time_points = pos_tac.shape[0] + if size_t >= n_time_points: + raise ValueError(f"{size_t=} must be less than {n_time_points}") + + size_t0 = pos_tac.shape[0] - size_t + msd_tt0 = np.empty((size_t, size_t0), dtype=float) + + if nprocs == 1: + for it in range(0, size_t): + #for it0 in range(0, size_t0): + # msd_tt0[it,it0] = np.mean(np.sum((pos_tac[it+it0,:,:] - pos_tac[it0,:,:])**2, axis=1)) + msd_tt0[it,:] = np.mean(np.sum((pos_tac[it:it+size_t0,:,:] - pos_tac[:size_t0,:,:])**2, axis=2), axis=1) + else: + p = pool_nprocs_pmode(nprocs, pmode="threads") + using_msg = f"Computing MSD(t,t_0) matrix of shape {(size_t, size_t0)} {p.using_msg}" + args = [(size_t0, it, pos_tac, msd_tt0) for it in range(0, size_t)] + with p.pool_cls(p.nprocs) as pool, Timer(header=using_msg, footer="") as timer: + pool.starmap(_func, args) + + return msd_tt0 + + +def block_mean_var(data, data_mean, n_block) -> tuple[float, float]: + """ + Perform the block mean and the block variance of data. + """ + N = data.shape[0] + n_inblock = int(N/n_block) + sigma2 = 0 + for iblock in range(n_block): + mean_inblock = 0 + for datavalue in data[n_inblock*iblock:(iblock+1)*n_inblock]: + mean_inblock = mean_inblock + datavalue/n_inblock + sigma2 = sigma2 + (mean_inblock - data_mean)**2/(n_block) + + sigma2 = sigma2 / (n_block-1) + delta_sigma2 = np.sqrt(2./(n_block-1)**3)*sigma2 + + return sigma2, delta_sigma2 + + +def sigma_berend(nblock_step: int, tot_block: int, data: np.ndarray) -> tuple[float, float, float]: + """ + Args: + nblock_step: + tot_block: + data: + + Return: (data_in_block, sigma, delta_sigma) + """ + Ndata = data.shape[0] + mean = np.mean(data) + # tot_block=int(data.shape[0]/nblock_step) + sigma2 = np.zeros(tot_block, dtype=float) + delta_sigma2 = np.zeros(tot_block, dtype=float) + arr_nblock = np.zeros(tot_block, dtype=float) + data_in_block = np.zeros(tot_block, dtype=float) + counter = 1 + sigma2[0] = float("inf") + delta_sigma2[0] = 0 + for nblock in range(1, nblock_step * tot_block, nblock_step): + sigma2[counter], delta_sigma2[counter] = block_mean_var(data, mean, nblock+1) + arr_nblock[counter] = nblock + 1 + data_in_block[counter] = int(Ndata/(nblock+1)) + counter = counter + 1 + + sigma = np.sqrt(sigma2) + delta_sigma = 0.5 * delta_sigma2 / sigma + + return data_in_block, sigma, delta_sigma + + +def _lin_fit(th_invt, log10d0, e_act): + return log10d0 - e_act * th_invt + + +@dataclasses.dataclass(kw_only=True) +class ArrheniusEntry: + """ + """ + key: str + symbol: str + composition: str + temps: np.ndarray + diffusions: np.ndarray + err_diffusions: np.ndarray + volumes: np.ndarray + mpl_style: dict + + @classmethod + def from_file(cls, filepath: PathLike, key, mpl_style) -> ArrheniusEntry: + + # Read data in CSV format. Assuming header with at least the following entries: + # temperature,diffusion,err_diffusion,volume,symbol,composition + try: + df = pd.read_csv(filepath, skipinitialspace=True) + + def get_unique(col): + v0 = df[col].values[0] + if np.any(v0 != df[col].values): + raise ValueError(f"All values for column: {col} should be unique while found:\n{df[col].values}") + return v0 + + symbol = get_unique("symbol") + composition = Composition(get_unique("composition")) + temps = df["temperature"].values + volumes = df["volume"].values + diffusions = df["diffusion"].values + err_diffusions = np.zeros(len(temps)) + if "err_diffusion" in df.keys(): + err_diffusions = df["err_diffusion"].values + + except Exception as exc: + raise RuntimeError(f"Exception while reading {filepath=}") from exc + + return cls(key=key, + symbol=symbol, + composition=composition, + temps=temps, + diffusions=diffusions, + err_diffusions=err_diffusions, + volumes=volumes, + mpl_style=mpl_style, + ) + + #def __post_init__(self): + # self.latex_formula = latexify(self.formula) + + #@property + #def latex_formula(self) -> str: + # return self._latex_formula + + #@latex_formula.setter + #def latex_formula(self, value): + # """LaTeX formatted formula. E.g., Fe2O3 is transformed to Fe$_{2}$O$_{3}$.""" + # self._latex_formula = latexify(value) + + def get_diffusion_data(self, fit_thinvt=None) -> AttrDict: + """ + Fit diffusion(T) taking into account uncertainties. + Return dict with activation energy in eV and fit parameters. + """ + # NB: log10(x) = ln(x) log10(e) --> d_x log_10(x) = log10(e) / x + th_invt = 1000 / self.temps + log10 = np.log10(self.diffusions) + err_log10 = np.log10(np.e) * self.err_diffusions / self.diffusions + popt, pcov = optimize.curve_fit(_lin_fit, th_invt, log10, sigma=err_log10) + e_act = popt[1] * 1000 * kBoltzEv * np.log(10) + + fit_log10 = None + if fit_thinvt is not None: + fit_log10 = _lin_fit(fit_thinvt, popt[0], popt[1]) + + return AttrDict( + th_invt=th_invt, + log10=log10, err_log10=err_log10, + fit_thinvt=fit_thinvt, fit_log10=fit_log10, + e_act=e_act, popt=popt, pcov=pcov, + ) + + def get_conductivity_data(self, ncar: float, fit_thinvt=None) -> tuple[AttrDict, AttrDict]: + """ + Compute conductivity sigma and T x sigma(T) assuming ncar carriers. + Fit values taking into account uncertainties. + + sigma(T) = Nq^2 D(T) / (VkT) + """ + temps = self.temps + diffusions = self.diffusions + err_diffusions = self.err_diffusions + volumes = self.volumes + + th_invt = 1000 / self.temps + + #if charge is None: + #ncar = symb2oxi[symbol] * self.composition[self.symbol] + #ncar = charge * self.composition[self.symbol] + + # NB: log10(x) = ln(x) log10(e) --> d_x log_10(x) = log10(e) / x + conds = e2s/kbs * ncar * diffusions/volumes/temps * 1.e09 + err_conds = e2s/kbs * ncar * err_diffusions/volumes/temps * 1.e09 + log10_conds = np.log10(conds) + err_log10_conds = np.log10(np.e) * err_conds / conds + cond_popt, cond_pcov = optimize.curve_fit(_lin_fit, th_invt, log10_conds, sigma=err_log10_conds) + + fit_log10_cond = None + if fit_thinvt is not None: + fit_log10_cond = _lin_fit(fit_thinvt, cond_popt[0], cond_popt[1]) + + # temp(K) * sigma(S/cm) + t_conds = e2s/kbs * ncar * diffusions/volumes*1.e09 + err_tconds = e2s/kbs * ncar * err_diffusions/volumes*1.e09 + log10_tconds = np.log10(t_conds) + err_log10_tconds = np.log10(np.e) * err_tconds / t_conds + tcond_popt, tcond_pcov = optimize.curve_fit(_lin_fit, th_invt, log10_tconds, sigma=err_log10_tconds) + + fit_log10_tcond = None + if fit_thinvt is not None: + fit_log10_tcond = _lin_fit(fit_thinvt, tcond_popt[0], tcond_popt[1]) + + return ( + AttrDict( + th_invt=th_invt, + log10=log10_conds, err_log10=err_log10_conds, + fit_thinvt=fit_thinvt, fit_log10=fit_log10_cond, + popt=cond_popt, cov=cond_pcov, + ), + AttrDict( + th_invt=th_invt, + log10=log10_tconds, err_log10=err_log10_tconds, + fit_thinvt=fit_thinvt, fit_log10=fit_log10_tcond, + popt=tcond_popt, cov=tcond_pcov, + ) + ) + + +class ArrheniusPlotter: + """ + This object stores conductivities D(T) computed for different structures and/or + different ML-potentials and allows one to produce Arrnehnius plots on the same figure. + Internally, the results are indexed by a unique key that is be used as label in the matplotlib plot. + The style for each key can be customized by setting the mpl_style dict + with the options that will be passed to ax.plot. + + In the simplest case, one reads the data from external files in CSV format. + + Example: + + from abipy.dynamics.analyzer import ArrheniusPlotter + + key_path = { + "matgl-MD": "diffusion_cLLZO-matgl.csv", + "m3gnet-MD": "diffusion_cLLZO-m3gnet.csv", + } + + mpl_style_key = { + "matgl-MD" : dict(c='blue'), + "m3gnet-MD": dict(c='purple'), + } + + plotter = ArrheniusPlotter() + for key, path in key_path.items(): + plotter.add_entry_from_file(path, key, mpl_style=mpl_style_key[key]) + + # temperature grid refined + thinvt_arange = (0.6, 2.5, 0.01) + xlims, ylims = (0.5, 2.0), (-7, -4) + + plotter.plot(thinvt_arange=thinvt_arange, + xlims=xlims, ylims=ylims, text='LLZO cubic', savefig=None) + """ + + def __init__(self, entries=None): + self.entries = entries or [] + self.symb2oxi = common_oxidation_states() + + def __iter__(self): + return self.entries.__iter__() + + def __len__(self) -> int: + return len(self.entries) + + def __getitem__(self, items): + return self.entries.__getitem__(items) + + def copy(self): + """Deep copy of the object.""" + import copy + return copy.deepcopy(self) + + def keys(self) -> list[str]: + """List of keys. Must be unique""" + return [entry.key for entry in self] + + def symbols(self) -> set[str]: + """Return set with chemical symbols.""" + return set([entry.symbol for entry in self]) + + def index_key(self, key: str) -> int: + """Find the index of key. Raise KeyError if not found.""" + for i, entry in enumerate(self): + if entry.key == key: return i + raise KeyError(f"Cannot find {key=} in {self.keys=}") + + def pop_key(self, key: str) -> ArrheniusEntry: + """Pop entry by key""" + i = self.index_key(key) + return self.entries.pop(i) + + def append(self, entry: ArrheniusEntry) -> None: + """Append new entry.""" + if entry.key in self.keys(): + raise KeyError(f"{entry.key=} is already present.") + self.entries.append(entry) + + def set_style(self, key: str, mpl_style: dict) -> None: + """Set matplotlib style for key.""" + i = self.index_key(key) + self.entries[i].mpl_style = mpl_style + + def get_min_max_temp(self) -> tuple[float, float]: + """Compute the min and max temperature for all entries.""" + min_temp = min([e.temperatures.min() for e in self]) + max_temp = max([e.temperatures.max() for e in self]) + return min_temp, max_temp + + def add_entry_from_file(self, filepath: PathLike, key: str, mpl_style=None) -> None: + """ + """ + mpl_style = mpl_style or {} + self.append(ArrheniusEntry.from_file(filepath, key, mpl_style)) + + @add_fig_kwargs + def plot(self, thinvt_arange=None, what="diffusion", ncar=None, colormap="jet", with_t=True, text=None, + ax=None, fontsize=8, xlims=None, ylims=None, **kwargs) -> Figure: + """ + Arrhenius plot. + + Args: + thinvt_arange: start, stop, step for 1000/T mesh. If None, the mesh is automatically computed. + what: Selects the quantity to plot. Possibile values: "diffusion", "sigma", "tsigma". + ncar: Number of carriers. Required if what is "sigma" or "tsigma". + colormap: Colormap used to select the color if entry.mpl_style does not provide it. + with_t: True to dd a twin axes with the value of T + text: + ax: |matplotlib-Axes| or None if a new figure should be created. + fontsize: fontsize for legends and titles. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + ylims: Similar to xlims but for the y-axis. + """ + ax, fig, plt = get_ax_fig_plt(ax=ax) + cmap = plt.get_cmap(colormap) + + # Build temperature grid for fit. + if thinvt_arange is None: + t_min, t_max = self.get_min_max_temp() + xstart, xstop = 1000 / t_max, 1000 / t_min + xstart, xstop = 0.8 * xstart, 1.2 * xstop + thinvt_arange = (xstart, xstop, 0.01) + + fit_thinvt = np.arange(thinvt_arange[0], thinvt_arange[1], step=thinvt_arange[2]) + + for ie, entry in enumerate(self): + mpl_style = entry.mpl_style.copy() + if "marker" not in mpl_style: + mpl_style["marker"] = "." + if "linestyle" not in mpl_style and "ls" not in mpl_style: + mpl_style["linestyle"] = "" + if "color" not in mpl_style and "c" not in mpl_style: + mpl_style["color"] = cmap(ie / len(self)) + + symbol, composition = entry.symbol, entry.composition + + diff = entry.get_diffusion_data(fit_thinvt=fit_thinvt) + label = r"D$_{\mathrm{%s}}$ (%s): " % (symbol, entry.key) + label += r"E$_\mathrm{a}$=" + str('{:.2F}'.format(diff.e_act)) + ' eV' + + if what == "diffusion": + data = diff + else: + ncar_ = ncar + if ncar_ is None: + if symbol not in self.symb2oxi: + raise ValueError(f"No entry for {symbol=} found in symb2oxi! Please add the oxistate manually!") + charge = self.symb2oxi[symbol] + ncar_ = charge * composition[symbol] + label += f", q={charge}" + + sigma_data, tsigma_data = entry.get_conductivity_data(ncar_, fit_thinvt=fit_thinvt) + data = dict(sigma=sigma_data, tsigma=tsigma_data)[what] + + if data.err_log10 is not None: + # Plot data with errors. + lines = ax.errorbar(data.th_invt, data.log10, yerr=data.err_log10, label=label, capsize=5.0, **mpl_style) + else: + # Plot data without errors. + lines = ax.plot(data.th_invt, data.log10, label=label, **mpl_style) + + ax.plot(fit_thinvt, data.fit_log10, linestyle='--', color=lines[0].get_color()) + + ax.set_xlabel('1000 / T(K)', fontsize=18) + ylabel = dict( + diffusion=r"log$_{10}$ (D(cm$^2$/s))", + sigma=r"log$_{10}$ [$\sigma$(S/cm)]", + tsigma=r"log$_{10}$ [$\sigma$T(SK/cm)]", + )[what] + ax.set_ylabel(ylabel, fontsize=18) + set_axlims(ax, xlims, "x") + set_axlims(ax, ylims, "y") + ax.legend(loc="lower left", fontsize=12) + #set_ticks_fontsize(ax, fontsize=14) + #from matplotlib.ticker import MultipleLocator + #ax.yaxis.set_major_locator(MultipleLocator(1)) + #ax.yaxis.set_minor_locator(MultipleLocator(0.2)) + + if text: + ax.text(0.96, 0.85, text, + verticalalignment='bottom', horizontalalignment='right', transform=ax.transAxes, + color='black', fontsize=18, bbox=dict(facecolor='none', edgecolor='grey', pad=10)) + + if with_t: + # Add a twin axes and set its limits so it matches the first. + ax_t = ax.twiny() + ax_t.set_xlabel('T (K)', fontsize=18) + ax_t.set_xlim(ax.get_xlim()) + # apply a function formatter + import matplotlib.ticker as mticker + formatter = mticker.FuncFormatter(lambda x, pos: '{:.0f}'.format(1000/x)) + ax_t.xaxis.set_major_formatter(formatter) + + return fig diff --git a/abipy/dynamics/cpx.py b/abipy/dynamics/cpx.py new file mode 100644 index 000000000..76e729a4c --- /dev/null +++ b/abipy/dynamics/cpx.py @@ -0,0 +1,422 @@ +""" +Parser for the output files produced by the CP code. + +See: https://www.quantum-espresso.org/Doc/INPUT_CP.html + + prefix.pos : atomic positions + prefix.vel : atomic velocities + prefix.for : atomic forces + prefix.cel : cell parameters + prefix.str : stress tensors + prefix.evp : energies + prefix.hrs : Hirshfeld effective volumes (ts-vdw) + prefix.eig : eigen values + prefix.nos : Nose-Hoover variables + prefix.spr : spread of Wannier orbitals + prefix.wfc : center of Wannier orbitals + prefix.ncg : number of Poisson CG steps (PBE0) + prefix_ndw.save/ : write restart folder + prefix_ndr.save/ : read restart folder +""" +from __future__ import annotations + +import numpy as np +import pandas as pd +import dataclasses +import abipy.core.abinit_units as abu + +from pathlib import Path +from monty.functools import lazy_property +#from monty.bisect import find_le +from abipy.core.mixins import TextFile, NotebookWriter +from abipy.tools.typing import PathLike, Figure +from abipy.tools.plotting import (set_axlims, add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, + get_ax3d_fig_plt, rotate_ticklabels, set_visible, plot_unit_cell, set_ax_xylabels, get_figs_plotly, + get_fig_plotly, add_plotly_fig_kwargs, PlotlyRowColDesc, plotly_klabels, plotly_set_lims) + + +def parse_file_with_blocks(filepath: PathLike, block_len: int) -> tuple[int, np.ndarray, list]: + """ + Parse a QE file whose format is: + + 20 0.00241888 + 0.31882936800000E+01 0.14832370390000E+02 0.12288296100000E+01 + 0.78323146900000E+01 0.67870403900000E+01 0.12288296100000E+01 + 0.20744346700000E+01 0.59953799200000E+01 0.47375825000000E+01 + 20 0.00241888 + 0.31889894893205E+01 0.14833320999242E+02 0.12271083047604E+01 + 0.78345550025202E+01 0.67881458009071E+01 0.12273445304341E+01 + 0.20762325213327E+01 0.59955571558384E+01 0.47335647385293E+01 + + i.e. a header followed by block_len lines + + Args: + filepath: Filename + block_len: Number of lines in block. + + Return: (number_of_steps, array_to_be_reshaped, list_of_headers) + """ + nsteps, data, headers = 0, [], [] + with open(filepath, "rt") as fh: + for il, line in enumerate(fh): + toks = line.split() + if il % (block_len + 1) == 0: + #assert len(toks) == 2 + headers.append([int(toks[0]), float(toks[1])]) + nsteps += 1 + else: + data.append([float(t) for t in toks]) + + return nsteps, np.array(data, dtype=float), headers + + +def parse_file_with_header(filepath: PathLike) -> pd.DataFrame: + """ + Parse a file with an header followed by csv-like columns e.g. an .evp file + """ + from io import StringIO + sbuf = StringIO() + with open(filepath, "rt") as fh: + for il, line in enumerate(fh): + if il == 0: + if not line.startswith("#"): + raise ValueError(f"Line number {il=} in {filepath=} should start with '#', but got {line=}") + names = line[1:].split() + continue + + if line.startswith("#"): + # Found other header, likely due to restart. + # Check that column names agree with the first header. + new_names = line[1:].split() + if new_names != names: + raise ValueError("Line number {il=} in {filepath=} has different names\n: {new_names=}\n{names=}") + continue + + sbuf.write(line) + + sbuf.seek(0) + df = pd.read_csv(sbuf, delim_whitespace=True, names=names) + sbuf.close() + return df + + +@dataclasses.dataclass +class Key: + name: str + info: str = "No info available" + color: str = "b" + + +class EvpFile(TextFile, NotebookWriter): + """ + The evp file is a file that contains the electronic and ionic energies and pressures + for each time step of a CP simulation. + The evp file has the following format: + + # nfi tps(ps) ekinc Tcell(K) Tion(K) etot enthal econs + 0 0 300 -2099.0164 7.4066063 -2091.6098 19363.353 2188.2406 5.0978969 + 10 0.01 557.43004 -2105.3429 13.762216 -2091.5807 16917.626 2188.2406 5.0978969 + ... + + NB: Energies are in Hartree and not in Ry. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: EvpFile + """ + + COLS_DICT = {k.name: k for k in [ + Key(name="nfi" , color="b", info="number of iterations"), + Key(name="ekinc" , color="b", info="electron fake kinetic energy"), + Key(name="temphc" , color="b", info="temperature due to “cell” kinetic energy in K"), + Key(name="tempp" , color="b", info="temperature due to ionic displacements within the cell"), + Key(name="etot" , color="b", info="dft total energy (without ionic and cell kinetic energy)"), + Key(name="enthal" , color="b", info="etot+external_pressure*volume"), + Key(name="econs" , color="b", info="etot+kinetic_energy_due_to_ions_moving"), + Key(name="econt" , color="b", info="econs+ekinc+(thermostat_total_energy)"), + Key(name="time(ps)", color="b", info="time"), + Key(name="tps(ps)", color="b", info="time"), + #Volume Pressure(GPa) EXX EVDW + ]} + + @lazy_property + def time_key(self) -> str: + key1 = "time(ps)" + key2 = "tps(ps)" + if key1 in self.df.keys(): return key1 + if key2 in self.df.keys(): return key2 + raise ValueError(f"Cannot find time key in {self.df.keys()}") + + @lazy_property + def df(self) -> pd.DataFrame: + """Dataframe with the results.""" + # TODO: Handle restart + df = parse_file_with_header(self.filepath) + return df + + @lazy_property + def times(self) -> np.ndarray: + """Array with times in ps units.""" + return np.array(self.df["tps(ps)"].values, dtype=float) + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level verbose.""" + lines = []; app = lines.append + app(self.df.describe(percentiles=None).to_string()) + if verbose: + for name, col in self.COLS_DICT.items(): + app(f"{name}: {col.info}") + else: + app("Use verbose to print the meaning of each column") + return "\n".join(lines) + + @add_fig_kwargs + def plot(self, **kwargs) -> Figure: + """ + """ + ax_mat = self.df.plot.line(x=self.time_key, subplots=True, + y=[k for k in self.df.keys() if k not in ("nfi", self.time_key)]) + return ax_mat.ravel()[0].get_figure() + + """ + # plot(self, ax_mat=None, t0=0.0, **kwargs) -> Figure: + times = self.df["tps(ps)"] + it0 = find_le(times, t0) if t0 != 0.0 else 0 + nrows, ncols = (1, 1) + ax_mat, fig, plt = get_axarray_fig_plt(ax_array=ax_mat, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + ax = ax_mat[0,0] + + yvals = self.df["ekinc"] + # Plot ionic temperature. + ax.plot(times[it0:], yvals[it0:], label="$Temp_{ions}$", c='tab:red') + ax.set_xlabel('time (ps)') + ax.set_ylabel('temperature (K)') + material = "foobar" + ax.text(0.35, 0.9, material, + verticalalignment='bottom', horizontalalignment='right', + transform=ax.transAxes, color='black', fontsize=15) + ax.legend(loc=1, bbox_to_anchor=(1, 1)) + #for irow in range(nrows): + # for iax, (ax, data, label) in enumerate(zip(ax_mat[irow], select_irow[irow], label_irow[irow])): + return fig + """ + + @add_fig_kwargs + def plot_hist(self, **kwargs) -> Figure: + """Plot one histogram per column.""" + ax_mat = self.df.hist(column=[k for k in self.df.keys() if k not in ("nfi", self.time_key)]) + return ax_mat.ravel()[0].get_figure() + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + yield self.plot(show=False) + yield self.plot_hist(show=False) + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + nb.cells.extend([ + nbv.new_code_cell("evp = abilab.abiopen('%s')" % self.filepath), + nbv.new_code_cell("evp.plot();"), + nbv.new_code_cell("evp.plot_hist();"), + ]) + + return self._write_nb_nbpath(nb, nbpath) + + +def traj_to_qepos(traj_filepath: PathLike, pos_filepath: PathLike) -> None: + """ + Convert an ASE trajectory file to QE POS file. + + Args: + traj: Name of ASE trajectory file or Trajectory instance. + pos_filepath: Name of output file. + """ + from ase.io import read + traj = read(traj_filepath, index=":") + + nsteps, natoms = len(traj), len(traj[0]) + pos_tac = np.empty((nsteps, natoms, 3)) + for it, atoms in enumerate(traj): + pos_tac[it] = atoms.positions + + with open(str(pos_filepath), "wt") as fh: + for it in range(nsteps): + fh.write(str(it) + '\n') + for ia in range(natoms): + fh.write(str(pos_tac[it,ia,0]) + ' ' + str(pos_tac[it,ia,1]) + ' ' + str(pos_tac[it,ia,2]) + '\n') + + +class Qe2Extxyz: + """ + Convert QE/CP output files into ASE extended xyz format. + + Example: + + from abipy.dynamics.cpx import Qe2Extxyz + converter = Qe2Extxyz.from_input("cp.in", code="cp") + converter.write_xyz("extended.xyz", take_every=1) + """ + + @classmethod + def from_input(cls, qe_input, code, prefix=None): + """ + Build object from QE/CP input assuming all the other output files + are located in the same directory with the given prefix. + """ + qe_input = Path(str(qe_input)).absolute() + directory = qe_input.cwd() + from ase.io.espresso import read_fortran_namelist + with open(qe_input, "rt") as fh: + sections, card_lines = read_fortran_namelist(fh) + + # https://www.quantum-espresso.org/Doc/INPUT_CP.html + control = sections["control"] + calculation = control["calculation"] + #outdir = control["outdir"] + + default_prefix = "cp" if code == "cp" else "pwscf" + if prefix is None: + prefix = control.get("prefix", default_prefix) + + pos_filepath = directory / f"{prefix}.pos" + for_filepath = directory / f"{prefix}.for" + cell_filepath = directory / f"{prefix}.cel" + evp_filepath = directory / f"{prefix}.evp" + str_filepath = directory / f"{prefix}.str" + if not str_filepath.exists(): + # File with stresses is optional. + str_filepath = None + + return cls(code, qe_input, pos_filepath, for_filepath, cell_filepath, evp_filepath, str_filepath=str_filepath) + + def __init__(self, code, qe_input, pos_filepath, for_filepath, cell_filepath, evp_filepath, str_filepath=None): + """ + Args: + code: Either "pwscf" or "cp". + qe_input: QE/CP input file + pos_filepath: File with cartesian positions. + for_filepath: File with cartesian forces. + cell_filepath: File with lattice vectors. + evp_filepath: File with energies + """ + print(f""" +Reading symbols from: {qe_input=} +Reading positions from: {pos_filepath=} +Reading forces from: {for_filepath=} +Reading cell from: {cell_filepath=} +Reading energies from: {evp_filepath=} +Reading stresses from: {str_filepath=} + """) + + # Parse input file to get initial_atoms and symbols. + from ase.io.espresso import read_espresso_in + with open(qe_input, "rt") as fh: + self.initial_atoms = read_espresso_in(fh) + natom = len(self.initial_atoms) + #print("initial_atoms:", self.initial_atoms) + + # NB: in QE/CP lengths are in Bohr + # but CP uses Hartree for energies whereas PW uses Rydberg. + e_fact = 1.0 if code == "cp" else 0.5 + + # Parse lattice vectors NB: in the cel file, lattice vectors are stored as column-vectors. + # so he have to transpose the data as ASE uses row-vectors. + cell_nsteps, cells, cell_headers = parse_file_with_blocks(cell_filepath, 3) + cells = np.reshape(cells, (cell_nsteps, 3, 3)) * abu.Bohr_Ang + self.cells = np.transpose(cells, (0, 2, 1)).copy() + + # Get energies from the evp file and convert from Ha to eV. + with EvpFile(evp_filepath) as evp: + self.energies = evp.df["etot"].values * (e_fact * abu.Ha_to_eV) + if len(self.energies) != cell_nsteps: + raise RuntimeError(f"{len(self.energies)=} != {cell_nsteps=}") + + # Parse Cartesian positions (Bohr --> Ang). + pos_nsteps, pos_cart, pos_headers = parse_file_with_blocks(pos_filepath, natom) + self.pos_cart = np.reshape(pos_cart, (pos_nsteps, natom, 3)) * abu.Bohr_Ang + if pos_nsteps != cell_nsteps: + raise RuntimeError(f"{pos_nsteps=} != {cell_nsteps=}") + + # Parse Cartesian forces (Ha/Bohr --> eV/Ang). + for_nsteps, forces_list, for_headers = parse_file_with_blocks(for_filepath, natom) + self.forces_step = np.reshape(forces_list, (for_nsteps, natom, 3)) * (e_fact * abu.Ha_to_eV / abu.Bohr_Ang) + if for_nsteps != cell_nsteps: + raise RuntimeError(f"{for_nsteps=} != {cell_nsteps=}") + + # Optionally, parse stress. In ASE, stress is eV/Ang^3. + self.stresses = None + if str_filepath is not None: + str_nsteps, stresses, str_headers = parse_file_with_blocks(str_filepath, 3) + self.stresses = np.reshape(stresses, (str_nsteps, 3, 3)) * (e_fact * abu.Ha_to_eV / abu.Bohr_Ang**3) + if str_nsteps != cell_nsteps: + raise RuntimeError(f"{str_nsteps=} != {cell_nsteps=}") + + self.nsteps = cell_nsteps + + def write_xyz(self, xyz_filepath, take_every=1, pbc=True) -> None: + """ + Write results in ASE extended xyz format. + + Args: + xyz_filepath: Name of the XYZ file. + take_every: Used to downsample the trajectory. + pbc: Values of pbc. + """ + print(f"Writing results in extended xyz format in: {xyz_filepath}") + from ase.io import write + with open(xyz_filepath, "wt") as fh: + for istep, atoms in enumerate(self.yield_atoms(pbc)): + if istep % take_every != 0: continue + write(fh, atoms, format='extxyz', append=True) + + def yield_atoms(self, pbc): + """Yields ASE atoms along the trajectory.""" + from ase.atoms import Atoms + from ase.calculators.singlepoint import SinglePointCalculator + for istep in range(self.nsteps): + atoms = Atoms(symbols=self.initial_atoms.symbols, + positions=self.pos_cart[istep], + cell=self.cells[istep], + pbc=pbc, + ) + + # Attach calculator with results. + atoms.calc = SinglePointCalculator(atoms, + energy=self.energies[istep], + free_energy=self.energies[istep], + forces=self.forces_step[istep], + stress=self.stresses[istep] if self.stresses is not None else None, + ) + yield atoms + + +def downsample_xyz(input_xyz, take_every, output_xyz, skip_head=None, verbose=1) -> int: + """ + Downsample an XYZ file. Return the number of configurations written in the new file. + + Args: + input_xyz: Input XYZ file. + take_every: Extract configurations from input_xyz every `take_every` step. + output_xyz: Output XYZ file. + skip_head: If not None, skip the first skip_head configurations. + verbose: Verbosity level. + """ + from ase.io import write, iread + count = 0 + with open(output_xyz, "wt") as out_xyz: + for istep, atoms in enumerate(iread(input_xyz)): + if istep % take_every != 0: continue + if skip_head is not None and (istep + 1) <= skip_head: continue + count += 1 + write(out_xyz, atoms, format='extxyz', append=True) + + if verbose: print(f"Wrote {count=} configurations to {output_xyz=} with {take_every=} and {skip_head=}") + return count + diff --git a/abipy/dynamics/hist.py b/abipy/dynamics/hist.py index 7158cf6c8..7b27dd1c8 100644 --- a/abipy/dynamics/hist.py +++ b/abipy/dynamics/hist.py @@ -1,8 +1,12 @@ # coding: utf-8 """History file with structural relaxation results.""" +from __future__ import annotations + import os import numpy as np +import pandas as pd import pymatgen.core.units as units +import abipy.core.abinit_units as abu from collections import OrderedDict from monty.functools import lazy_property @@ -10,12 +14,14 @@ from monty.string import marquee, list_strings from pymatgen.core.periodic_table import Element from pymatgen.analysis.structure_analyzer import RelaxationAnalyzer -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_visible +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_visible, get_figs_plotly, \ + get_fig_plotly, add_plotly_fig_kwargs, plotlyfigs_to_browser, push_to_chart_studio, PlotlyRowColDesc, plotly_set_lims, \ + latex_greek_2unicode from abipy.core.structure import Structure from abipy.core.mixins import AbinitNcFile, NotebookWriter from abipy.abio.robots import Robot from abipy.iotools import ETSF_Reader -import abipy.core.abinit_units as abu +from abipy.tools.typing import Figure class HistFile(AbinitNcFile, NotebookWriter): @@ -29,67 +35,68 @@ class HistFile(AbinitNcFile, NotebookWriter): with HistFile("foo_HIST") as hist: hist.plot() - .. rubric:: Inheritance Diagram .. inheritance-diagram:: HistFile """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> HistFile: """Initialize the object from a netcdf_ file""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) - self.reader = HistReader(filepath) + self.reader = self.r = HistReader(filepath) - def close(self): + def close(self) -> None: """Close the file.""" - self.reader.close() + self.r.close() @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" return {} - def __str__(self): + def __str__(self) -> str: return self.to_string() + #def read_structures(self, index: str): + # TODO: Add more metadata. #@lazy_property #def nsppol(self): # """Number of independent spins.""" - # return self.reader.read_dimvalue("nsppol") + # return self.r.read_dimvalue("nsppol") #@lazy_property #def nspden(self): # """Number of independent spin densities.""" - # return self.reader.read_dimvalue("nspden") + # return self.r.read_dimvalue("nspden") #@lazy_property #def nspinor(self): # """Number of spinor components.""" - # return self.reader.read_dimvalue("nspinor") + # return self.r.read_dimvalue("nspinor") @lazy_property - def final_energy(self): + def final_energy(self) -> float: """Total energy in eV of the last iteration.""" return self.etotals[-1] @lazy_property - def final_pressure(self): + def final_pressure(self) -> float: """Final pressure in Gpa.""" - cart_stress_tensors, pressures = self.reader.read_cart_stress_tensors() + cart_stress_tensors, pressures = self.r.read_cart_stress_tensors() return pressures[-1] #@lazy_property #def final_max_force(self): - def get_fstats_dict(self, step): + def get_fstats_dict(self, step) -> AttrDict: """ Return |AttrDict| with stats on the forces at the given ``step``. """ # [time, natom, 3] - var = self.reader.read_variable("fcart") + var = self.r.read_variable("fcart") forces = units.ArrayWithUnit(var[step], "Ha bohr^-1").to("eV ang^-1") fmods = np.array([np.linalg.norm(force) for force in forces]) @@ -101,7 +108,7 @@ def get_fstats_dict(self, step): drift=np.linalg.norm(forces.sum(axis=0)), ) - def to_string(self, verbose=0, title=None): + def to_string(self, verbose=0, title=None) -> str: """String representation.""" lines = []; app = lines.append if title is not None: app(marquee(title, mark="=")) @@ -123,49 +130,49 @@ def to_string(self, verbose=0, title=None): #an.get_percentage_bond_dist_changes(max_radius=3.0) app("") - cart_stress_tensors, pressures = self.reader.read_cart_stress_tensors() + cart_stress_tensors, pressures = self.r.read_cart_stress_tensors() app("Stress tensor (Cartesian coordinates in GPa):\n%s" % cart_stress_tensors[-1]) app("Pressure: %.3f [GPa]" % pressures[-1]) return "\n".join(lines) @property - def num_steps(self): + def num_steps(self) -> int: """Number of iterations performed.""" - return self.reader.num_steps + return self.r.num_steps @lazy_property - def steps(self): + def steps(self) -> list: """Step indices.""" return list(range(self.num_steps)) @property - def initial_structure(self): + def initial_structure(self) -> Structure: """The initial |Structure|.""" return self.structures[0] @property - def final_structure(self): + def final_structure(self) -> Structure: """The |Structure| of the last iteration.""" return self.structures[-1] @lazy_property - def structures(self): + def structures(self) -> list[Structure]: """List of |Structure| objects at the different steps.""" - return self.reader.read_all_structures() + return self.r.read_all_structures() @lazy_property - def etotals(self): + def etotals(self) -> np.ndarray: """|numpy-array| with total energies in eV at the different steps.""" - return self.reader.read_eterms().etotals + return self.r.read_eterms().etotals - def get_relaxation_analyzer(self): + def get_relaxation_analyzer(self) -> RelaxationAnalyzer: """ Return a pymatgen :class:`RelaxationAnalyzer` object to analyze the relaxation in a calculation. """ return RelaxationAnalyzer(self.initial_structure, self.final_structure) - def to_xdatcar(self, filepath=None, groupby_type=True, to_unit_cell=False, **kwargs): + def to_xdatcar(self, filepath=None, groupby_type=True, to_unit_cell=False, **kwargs): #-> Xdatcar: """ Return Xdatcar pymatgen object. See write_xdatcar for the meaning of arguments. @@ -173,12 +180,13 @@ def to_xdatcar(self, filepath=None, groupby_type=True, to_unit_cell=False, **kwa to_unit_cell (bool): Whether to translate sites into the unit cell. kwargs: keywords arguments passed to Xdatcar constructor. """ + from pymatgen.io.vasp.outputs import Xdatcar filepath = self.write_xdatcar(filepath=filepath, groupby_type=groupby_type, to_unit_cell=to_unit_cell, overwrite=True) - from pymatgen.io.vasp.outputs import Xdatcar + return Xdatcar(filepath, **kwargs) - def write_xdatcar(self, filepath="XDATCAR", groupby_type=True, overwrite=False, to_unit_cell=False): + def write_xdatcar(self, filepath="XDATCAR", groupby_type=True, overwrite=False, to_unit_cell=False) -> str: """ Write Xdatcar file with unit cell and atomic positions to file ``filepath``. @@ -194,18 +202,22 @@ def write_xdatcar(self, filepath="XDATCAR", groupby_type=True, overwrite=False, Return: path to Xdatcar file. """ + # This library takes 13s to import on HPC (07/02/24) so moved to class method instead of header + from pymatgen.io.vasp.outputs import Xdatcar + if filepath is not None and os.path.exists(filepath) and not overwrite: raise RuntimeError("Cannot overwrite pre-existing file `%s`" % filepath) + if filepath is None: import tempfile fd, filepath = tempfile.mkstemp(text=True, suffix="_XDATCAR") # int typat[natom], double znucl[npsp] # NB: typat is double in the HIST.nc file - typat = self.reader.read_value("typat").astype(int) - znucl = self.reader.read_value("znucl") - ntypat = self.reader.read_dimvalue("ntypat") - num_pseudos = self.reader.read_dimvalue("npsp") + typat = self.r.read_value("typat").astype(int) + znucl = self.r.read_value("znucl") + ntypat = self.r.read_dimvalue("ntypat") + num_pseudos = self.r.read_dimvalue("npsp") if num_pseudos != ntypat: raise NotImplementedError("Alchemical mixing is not supported, num_pseudos != ntypat") #print("znucl:", znucl, "\ntypat:", typat) @@ -220,12 +232,12 @@ def write_xdatcar(self, filepath="XDATCAR", groupby_type=True, overwrite=False, symbols_atom.append(symbol) if not groupby_type: - group_ids = np.arange(self.reader.natom) + group_ids = np.arange(self.r.natom) else: group_ids = [] for pos_list in symb2pos.values(): group_ids.extend(pos_list) - group_ids = np.array(group_ids, dtype=np.int) + group_ids = np.array(group_ids, dtype=int) comment = " %s\n" % self.initial_structure.formula with open(filepath, "wt") as fh: @@ -242,7 +254,7 @@ def write_xdatcar(self, filepath="XDATCAR", groupby_type=True, overwrite=False, fh.write(" ".join(str(len(p)) for p in symb2pos.values()) + "\n") # Write atomic positions in reduced coordinates. - xred_list = self.reader.read_value("xred") + xred_list = self.r.read_value("xred") if to_unit_cell: xred_list = xred_list % 1 @@ -278,9 +290,9 @@ def visualize(self, appname="ovito", to_unit_cell=False): # pragma: no cover #else: # hist.mvanimate() - def plot_ax(self, ax, what, fontsize=8, **kwargs): + def plot_ax(self, ax, what, fontsize=8, **kwargs) -> None: """ - Helper function to plot quantity ``what`` on axis ``ax``. + Helper function to plot quantity ``what`` on axis ``ax`` with matplotlib. Args: fontsize: fontsize for legend. @@ -339,14 +351,14 @@ def plot_ax(self, ax, what, fontsize=8, **kwargs): ax.set_ylabel(r'$V\, (A^3)$') elif what == "pressure": - stress_cart_tensors, pressures = self.reader.read_cart_stress_tensors() + stress_cart_tensors, pressures = self.r.read_cart_stress_tensors() marker = kwargs.pop("marker", "o") label = kwargs.pop("label", "P") ax.plot(self.steps, pressures, label=label, marker=marker, **kwargs) ax.set_ylabel('P (GPa)') elif what == "forces": - forces_hist = self.reader.read_cart_forces() + forces_hist = self.r.read_cart_forces() fmin_steps, fmax_steps, fmean_steps, fstd_steps = [], [], [], [] for step in range(self.num_steps): forces = forces_hist[step] @@ -362,22 +374,127 @@ def plot_ax(self, ax, what, fontsize=8, **kwargs): ax.plot(self.steps, fmax_steps, label="max |F|", marker=markers[1], **kwargs) ax.plot(self.steps, fmean_steps, label="mean |F|", marker=markers[2], **kwargs) ax.plot(self.steps, fstd_steps, label="std |F|", marker=markers[3], **kwargs) - label = "std |F" + label = "std |F|" ax.set_ylabel('F stats (eV/A)') else: - raise ValueError("Invalid value for what: `%s`" % str(what)) + raise ValueError(f"Invalid value for {what=}") ax.set_xlabel('Step') ax.grid(True) if label is not None: ax.legend(loc='best', fontsize=fontsize, shadow=True) + def plotly_traces(self, fig, what, rcd=None, fontsize=8, showlegend=False, **kwargs): + """ + Helper function to plot quantity ``what`` on figure ``fig`` with plotly. + + Args: + rcd: If ``fig`` has subplots, ``rcd`` is used to add traces on these subplots. + fontsize: fontsize for legend. + kwargs are passed to fig.add_scatter method. + """ + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col = rcd.ply_row, rcd.ply_col + + label = None + if what == "energy": + # Total energy in eV. + marker = kwargs.pop("marker", 0) + label = kwargs.pop("label", "Energy") + fig.add_scatter(x=self.steps, y=self.etotals, mode='lines+markers', name=label, marker_symbol=marker, + row=ply_row, col=ply_col, **kwargs) + fig.layout['yaxis%u' % rcd.iax].title.text = 'Energy (eV)' + + elif what == "abc": + # Lattice parameters. + mark = kwargs.pop("marker", None) + markers = [0, 5, 6] if mark is None else 3 * [mark] + for i, label in enumerate(["a", "b", "c"]): + fig.add_scatter(x=self.steps, y=[s.lattice.abc[i] for s in self.structures], mode='lines+markers', + name=label, marker_symbol=markers[i], row=ply_row, col=ply_col, **kwargs) + fig.layout['yaxis%u' % rcd.iax].title.text = "abc (A)" + + elif what in ("a", "b", "c"): + i = ("a", "b", "c").index(what) + marker = kwargs.pop("marker", None) + if marker is None: + marker = {"a": 0, "b": 5, "c": 6}[what] + label = kwargs.pop("label", what) + fig.add_scatter(x=self.steps, y=[s.lattice.abc[i] for s in self.structures], mode='lines+markers', + name=label, marker_symbol=marker, row=ply_row, col=ply_col, **kwargs) + fig.layout['yaxis%u' % rcd.iax].title.text = '%s (A)' % what + + elif what == "angles": + # Lattice Angles + mark = kwargs.pop("marker", None) + markers = [0, 5, 6] if mark is None else 3 * [mark] + for i, label in enumerate(["α ", "β ", "ɣ"]): + fig.add_scatter(x=self.steps, y=[s.lattice.angles[i] for s in self.structures], mode='lines+markers', + name=label, marker_symbol=markers[i], row=ply_row, col=ply_col, **kwargs) + fig.layout['yaxis%u' % rcd.iax].title.text = "αβɣ (degree)" + " " + fig.layout['yaxis%u' % rcd.iax].tickformat = ".3r" + + elif what in ("alpha", "beta", "gamma"): + i = ("alpha", "beta", "gamma").index(what) + marker = kwargs.pop("marker", None) + if marker is None: + marker = {"alpha": 0, "beta": 5, "gamma": 6}[what] + label = kwargs.pop("label", what) + fig.add_scatter(x=self.steps, y=[s.lattice.angles[i] for s in self.structures], mode='lines+markers', + name=label, marker_symbol=marker, row=ply_row, col=ply_col, **kwargs) + fig.layout['yaxis%u' % rcd.iax].title.text = r"%s (degree)" % latex_greek_2unicode(what) + fig.layout['yaxis%u' % rcd.iax].tickformat = ".3r" + + elif what == "volume": + marker = kwargs.pop("marker", 0) + label = kwargs.pop("label", "Volume") + fig.add_scatter(x=self.steps, y=[s.lattice.volume for s in self.structures], mode='lines+markers', + name=label, marker_symbol=marker, row=ply_row, col=ply_col, **kwargs) + fig.layout['yaxis%u' % rcd.iax].title.text = 'V (A³)' + + elif what == "pressure": + stress_cart_tensors, pressures = self.r.read_cart_stress_tensors() + marker = kwargs.pop("marker", 0) + label = kwargs.pop("label", "P") + fig.add_scatter(x=self.steps, y=pressures, mode='lines+markers', + name=label, marker_symbol=marker, row=ply_row, col=ply_col, **kwargs) + fig.layout['yaxis%u' % rcd.iax].title.text = 'P (GPa)' + + elif what == "forces": + forces_hist = self.r.read_cart_forces() + fmin_steps, fmax_steps, fmean_steps, fstd_steps = [], [], [], [] + for step in range(self.num_steps): + forces = forces_hist[step] + fmods = np.sqrt([np.dot(force, force) for force in forces]) + fmean_steps.append(fmods.mean()) + fstd_steps.append(fmods.std()) + fmin_steps.append(fmods.min()) + fmax_steps.append(fmods.max()) + + mark = kwargs.pop("marker", None) + markers = [0, 5, 6, 4] if mark is None else 4 * [mark] + fig.add_scatter(x=self.steps, y=fmin_steps, mode='lines+markers', + name="min |F|", marker_symbol=markers[0], row=ply_row, col=ply_col, **kwargs) + fig.add_scatter(x=self.steps, y=fmax_steps, mode='lines+markers', + name="max |F|", marker_symbol=markers[1], row=ply_row, col=ply_col, **kwargs) + fig.add_scatter(x=self.steps, y=fmean_steps, mode='lines+markers', + name="mean |F|", marker_symbol=markers[2], row=ply_row, col=ply_col, **kwargs) + fig.add_scatter(x=self.steps, y=fstd_steps, mode='lines+markers', + name="std |F|", marker_symbol=markers[3], row=ply_row, col=ply_col, **kwargs) + label = "std |F|" + fig.layout['yaxis%u' % rcd.iax].title.text = 'F stats (eV/A)' + + else: + raise ValueError("Invalid value for what: `%s`" % str(what)) + + fig.layout.legend.font.size = fontsize + @add_fig_kwargs - def plot(self, what_list=None, ax_list=None, fontsize=8, **kwargs): + def plot(self, what_list=None, ax_list=None, fontsize=8, **kwargs) -> Figure: """ Plot the evolution of structural parameters (lattice lengths, angles and volume) - as well as pressure, info on forces and total energy. + as well as pressure, info on forces and total energy with matplotlib. Args: what_list: @@ -400,7 +517,6 @@ def plot(self, what_list=None, ax_list=None, fontsize=8, **kwargs): ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=nrows, ncols=ncols, sharex=True, sharey=False, squeeze=False) ax_list = ax_list.ravel() - assert len(ax_list) == len(what_list) # don't show the last ax if nplots is odd. if nplots % ncols != 0: ax_list[-1].axis("off") @@ -410,10 +526,55 @@ def plot(self, what_list=None, ax_list=None, fontsize=8, **kwargs): return fig + @add_plotly_fig_kwargs + def plotly(self, what_list=None, fig=None, fontsize=12, **kwargs): + """ + Plot the evolution of structural parameters (lattice lengths, angles and volume) + as well as pressure, info on forces and total energy with plotly. + + Args: + what_list: + fig: The fig for plot and the DOS plot. If None, a new figure is created. + fontsize: fontsize for legend + + Returns: |plotly.graph_objects.Figure| + """ + if what_list is None: + what_list = ["abc", "angles", "volume", "pressure", "forces", "energy"] + else: + what_list = list_strings(what_list) + + nplots = len(what_list) + nrows, ncols = 1, 1 + if nplots > 1: + ncols = 2 + nrows = nplots // ncols + nplots % ncols + + if fig is None: + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=[], sharex=True, sharey=False, + vertical_spacing=0.05) + + for i, what in enumerate(what_list): + rcd = PlotlyRowColDesc(i // ncols, i % ncols, nrows, ncols) + self.plotly_traces(fig, what, rcd=rcd, fontsize=fontsize, marker=0) + + fig.layout['xaxis%u' % rcd.iax].title.text = 'Step' + if nplots > 1: + fig.layout['xaxis%s' % str(rcd.iax-1)].title.text = 'Step' + + return fig + + @add_plotly_fig_kwargs + def plotly_energies(self, fig=None, fontsize=12, **kwargs): + """ + Plot the total energies as function of the iteration step with plotly. + """ + return self.plotly(what_list="energy", fig=fig, fontsize=fontsize, show=False, **kwargs) + @add_fig_kwargs - def plot_energies(self, ax=None, fontsize=8, **kwargs): + def plot_energies(self, ax=None, fontsize=8, **kwargs) -> Figure: """ - Plot the total energies as function of the iteration step. + Plot the total energies as function of the iteration step with matplotlib. Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -424,7 +585,7 @@ def plot_energies(self, ax=None, fontsize=8, **kwargs): # TODO max force and pressure ax, fig, plt = get_ax_fig_plt(ax=ax) - terms = self.reader.read_eterms() + terms = self.r.read_eterms() for key, values in terms.items(): if np.all(values == 0.0): continue ax.plot(self.steps, values, marker="o", label=key) @@ -443,6 +604,13 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot(show=False) yield self.plot_energies(show=False) + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + yield self.plotly(show=False) + yield self.plotly_energies(show=False) + def mvplot_trajectories(self, colormap="hot", sampling=1, figure=None, show=True, with_forces=True, **kwargs): # pragma: no cover """ @@ -456,8 +624,8 @@ def mvplot_trajectories(self, colormap="hot", sampling=1, figure=None, show=True mvtk.plot_structure(self.final_structure, style=style, unit_cell_color=(0, 0, 0), figure=figure) steps = np.arange(start=0, stop=self.num_steps, step=sampling) - xcart_list = self.reader.read_value("xcart") * units.bohr_to_ang - for iatom in range(self.reader.natom): + xcart_list = self.r.read_value("xcart") * units.bohr_to_ang + for iatom in range(self.r.natom): x, y, z = xcart_list[::sampling, iatom, :].T #for i in zip(x, y, z): print(i) trajectory = mlab.plot3d(x, y, z, steps, colormap=colormap, tube_radius=None, @@ -465,8 +633,8 @@ def mvplot_trajectories(self, colormap="hot", sampling=1, figure=None, show=True mlab.colorbar(trajectory, title='Iteration', orientation='vertical') if with_forces: - fcart_list = self.reader.read_cart_forces(unit="eV ang^-1") - for iatom in range(self.reader.natom): + fcart_list = self.r.read_cart_forces(unit="eV ang^-1") + for iatom in range(self.r.natom): x, y, z = xcart_list[::sampling, iatom, :].T u, v, w = fcart_list[::sampling, iatom, :].T q = mlab.quiver3d(x, y, z, u, v, w, figure=figure, colormap=colormap, @@ -483,10 +651,10 @@ def mvanimate(self, delay=500): # pragma: no cover #mvtk.plot_structure(self.initial_structure, style=style, figure=figure) #mvtk.plot_structure(self.final_structure, style=style, figure=figure) - xcart_list = self.reader.read_value("xcart") * units.bohr_to_ang + xcart_list = self.r.read_value("xcart") * units.bohr_to_ang #t = np.arange(self.num_steps) #line_width = 2 - #for iatom in range(self.reader.natom): + #for iatom in range(self.r.natom): # x, y, z = xcart_list[:, iatom, :].T # trajectory = mlab.plot3d(x, y, z, t, colormap=colormap, tube_radius=None, line_width=line_width, figure=figure) #mlab.colorbar(trajectory, title='Iteration', orientation='vertical') @@ -515,12 +683,14 @@ def anim(): anim() - def get_panel(self): - """Build panel with widgets to interact with the |HistFile| either in a notebook or in panel app.""" + def get_panel(self, **kwargs): + """ + Build panel with widgets to interact with the |HistFile| either in a notebook or in panel app. + """ from abipy.panels.hist import HistFilePanel - return HistFilePanel(self).get_panel() + return HistFilePanel(self).get_panel(**kwargs) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -547,7 +717,7 @@ class HistRobot(Robot): """ EXT = "HIST" - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation with verbosity level ``verbose``.""" s = "" if verbose: @@ -559,7 +729,8 @@ def to_string(self, verbose=0): else: return str(s_df) - def get_dataframe(self, with_geo=True, index=None, abspath=False, with_spglib=True, funcs=None, **kwargs): + def get_dataframe(self, with_geo=True, index=None, abspath=False, + with_spglib=True, funcs=None, **kwargs) -> pd.DataFrame: """ Return a |pandas-DataFrame| with the most important final results and the filenames as index. @@ -611,18 +782,17 @@ def get_dataframe(self, with_geo=True, index=None, abspath=False, with_spglib=Tr if funcs is not None: d.update(self._exec_funcs(funcs, hist)) rows.append(d) - import pandas as pd row_names = row_names if not abspath else self._to_relpaths(row_names) index = row_names if index is None else index return pd.DataFrame(rows, index=index, columns=list(rows[0].keys())) @property - def what_list(self): + def what_list(self) -> list[str]: """List with all quantities that can be plotted (what_list).""" return ["energy", "abc", "angles", "volume", "pressure", "forces"] @add_fig_kwargs - def gridplot(self, what_list=None, sharex="row", sharey="row", fontsize=8, **kwargs): + def gridplot(self, what_list=None, sharex="row", sharey="row", fontsize=8, **kwargs) -> Figure: """ Plot the ``what`` value extracted from multiple HIST.nc_ files on a grid. @@ -660,7 +830,7 @@ def gridplot(self, what_list=None, sharex="row", sharey="row", fontsize=8, **kwa return fig @add_fig_kwargs - def combiplot(self, what_list=None, colormap="jet", fontsize=6, **kwargs): + def combiplot(self, what_list=None, colormap="jet", fontsize=6, **kwargs) -> Figure: """ Plot multiple HIST.nc_ files on a grid. One plot for each ``what`` value. @@ -709,7 +879,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.gridplot(show=False) yield self.combiplot(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -740,16 +910,16 @@ class HistReader(ETSF_Reader): """ @lazy_property - def num_steps(self): + def num_steps(self) -> int: """Number of iterations present in the HIST.nc_ file.""" return self.read_dimvalue("time") @lazy_property - def natom(self): + def natom(self) -> int: """Number of atoms un the unit cell.""" return self.read_dimvalue("natom") - def read_all_structures(self): + def read_all_structures(self) -> list[Structure]: """Return the list of structures at the different iteration steps.""" rprimd_list = self.read_value("rprimd") xred_list = self.read_value("xred") @@ -780,7 +950,7 @@ def read_all_structures(self): return structures - def read_eterms(self, unit="eV"): + def read_eterms(self, unit: str = "eV") -> AttrDict: """|AttrDict| with the decomposition of the total energy in units ``unit``""" return AttrDict( etotals=units.EnergyArray(self.read_value("etotal"), "Ha").to(unit), @@ -788,21 +958,21 @@ def read_eterms(self, unit="eV"): entropies=units.EnergyArray(self.read_value("entropy"), "Ha").to(unit), ) - def read_cart_forces(self, unit="eV ang^-1"): + def read_cart_forces(self, unit: str = "eV ang^-1") -> np.ndarray: """ Read and return a |numpy-array| with the cartesian forces in unit ``unit``. Shape (num_steps, natom, 3) """ return units.ArrayWithUnit(self.read_value("fcart"), "Ha bohr^-1").to(unit) - def read_reduced_forces(self): + def read_reduced_forces(self) -> np.ndarray: """ Read and return a |numpy-array| with the forces in reduced coordinates Shape (num_steps, natom, 3) """ return self.read_value("fred") - def read_cart_stress_tensors(self): + def read_cart_stress_tensors(self) -> tuple[np.ndarray, np.ndarray]: """ Return the stress tensors (nstep x 3 x 3) in cartesian coordinates (GPa) and the list of pressures in GPa unit. @@ -810,13 +980,13 @@ def read_cart_stress_tensors(self): # Abinit stores 6 unique components of this symmetric 3x3 tensor: # Given in order (1,1), (2,2), (3,3), (3,2), (3,1), (2,1). c = self.read_value("strten") - tensors = np.empty((self.num_steps, 3, 3), dtype=np.float) + tensors = np.empty((self.num_steps, 3, 3), dtype=float) for step in range(self.num_steps): - for i in range(3): tensors[step, i,i] = c[step, i] - for p, (i, j) in enumerate(((2,1), (2,0), (1,0))): - tensors[step, i,j] = c[step, 3+p] - tensors[step, j,i] = c[step, 3+p] + for i in range(3): tensors[step, i, i] = c[step, i] + for p, (i, j) in enumerate(((2, 1), (2, 0), (1, 0))): + tensors[step, i, j] = c[step, 3+p] + tensors[step, j, i] = c[step, 3+p] tensors *= abu.HaBohr3_GPa pressures = np.empty(self.num_steps) diff --git a/abipy/dynamics/tests/test_hist.py b/abipy/dynamics/tests/test_hist.py index df5203616..bf1ba05ae 100644 --- a/abipy/dynamics/tests/test_hist.py +++ b/abipy/dynamics/tests/test_hist.py @@ -71,6 +71,10 @@ def test_hist_api(self): assert hist.plot(show=False) assert hist.plot_energies(show=False) + if self.has_plotly(): + assert hist.plotly(template="plotly_dark", show=False) + assert hist.plotly_energies(show=False) + # Test notebook generation. if self.has_nbformat(): hist.write_notebook(nbpath=self.get_tmpname(text=True)) diff --git a/abipy/electrons/arpes.py b/abipy/electrons/arpes.py index 016a606ad..5e6a1abd7 100644 --- a/abipy/electrons/arpes.py +++ b/abipy/electrons/arpes.py @@ -36,7 +36,10 @@ def model_from_ebands(cls, ebands, tmesh=(0, 300, 600), poorman_polaron=False): #aw: [nwr, ntemp, max_nbcalc, nkcalc, nsppol] array #aw_meshes: [max_nbcalc, nkcalc, nsppol] array with energy mesh in eV from abipy.tools.numtools import lorentzian - from scipy.integrate import cumtrapz + try: + from scipy.integrate import cumulative_trapezoid as cumtrapz + except ImportError: + from scipy.integrate import cumtrapz for spin in ebands.spins: for ik, kpt in enumerate(ebands.kpoints): for band in range(ebands.nband_sk[spin, ik]): diff --git a/abipy/electrons/bse.py b/abipy/electrons/bse.py index bfaf1a944..38c191e85 100644 --- a/abipy/electrons/bse.py +++ b/abipy/electrons/bse.py @@ -1,5 +1,7 @@ # coding: utf-8 """Classes for the analysis of BSE calculations""" +from __future__ import annotations + import os import itertools import numpy as np @@ -10,11 +12,13 @@ from monty.string import marquee, is_string from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt from abipy.core.func1d import Function1D +from abipy.core.structure import Structure from abipy.core.kpoints import Kpoint, KpointList from abipy.core.mixins import AbinitNcFile, Has_Structure, NotebookWriter from abipy.iotools import ETSF_Reader from abipy.tools.plotting import set_axlims from abipy.tools import duck +from abipy.tools.typing import Figure from abipy.abio.robots import Robot from abipy.electrons.ebands import RobotWithEbands @@ -55,7 +59,7 @@ def __init__(self, mdf, structure): self._all_tensors = all_tensors - def to_array(self, red_coords=True): + def to_array(self, red_coords=True) -> np.ndarray: """ Return |numpy-array| with a copy of the data. @@ -91,7 +95,7 @@ def to_func1d(self, red_coords=True): return all_funcs @add_fig_kwargs - def plot(self, ax=None, *args, **kwargs): + def plot(self, ax=None, *args, **kwargs) -> Figure: """ Plot all the components of the tensor. @@ -121,7 +125,7 @@ def plot(self, ax=None, *args, **kwargs): return fig - def plot_ax(self, ax, what, red_coords, *args, **kwargs): + def plot_ax(self, ax, what, red_coords, *args, **kwargs) -> list: """ Helper function to plot data on the axis ax. @@ -153,7 +157,7 @@ def plot_ax(self, ax, what, red_coords, *args, **kwargs): return f.plot_ax(ax, *args, **kwargs) -class DielectricFunction(object): +class DielectricFunction: """ This object stores the frequency-dependent macroscopic dielectric function computed for different q-directions in reciprocal space. @@ -181,7 +185,7 @@ def __init__(self, structure, qpoints, wmesh, emacros_q, info): assert len(self.qpoints) == len(emacros_q) self.info = info - self.emacros_q, em_avg = [], np.zeros(len(wmesh), dtype=np.complex) + self.emacros_q, em_avg = [], np.zeros(len(wmesh), dtype=complex) for emq in emacros_q: em_avg += emq self.emacros_q.append(Function1D(wmesh, emq)) @@ -191,10 +195,10 @@ def __init__(self, structure, qpoints, wmesh, emacros_q, info): # TODO: One should take into account the star of q, but I need the symops self.emacro_avg = Function1D(wmesh, em_avg / self.num_qpoints) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0, with_info=False): + def to_string(self, verbose=0, with_info=False) -> str: """String representation.""" lines = [] app = lines.append @@ -211,12 +215,12 @@ def __iter__(self): return itertools.izip(self.qpoints, self.emacros_q) @property - def num_qpoints(self): + def num_qpoints(self) -> int: """Number of q-points.""" return len(self.qpoints) @property - def qfrac_coords(self): + def qfrac_coords(self) -> np.ndarray: """|numpy-array| with the fractional coordinates of the q-points.""" return self.qpoints.frac_coords @@ -231,7 +235,7 @@ def qfrac_coords(self): # return self.info["calc_type"] @add_fig_kwargs - def plot(self, ax=None, **kwargs): + def plot(self, ax=None, **kwargs) -> Figure: """ Plot the MDF. @@ -266,7 +270,7 @@ def plot(self, ax=None, **kwargs): return fig - def plot_ax(self, ax, qpoint=None, **kwargs): + def plot_ax(self, ax, qpoint=None, **kwargs) -> list: """ Helper function to plot data on the axis ax. @@ -316,22 +320,22 @@ class MdfFile(AbinitNcFile, Has_Structure, NotebookWriter): .. inheritance-diagram:: MdfFile """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> MdfFile: """Initialize the object from a Netcdf file""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = MdfReader(filepath) # TODO Add electron Bands. #self._ebands = r.read_ebands() - def __str__(self): + def __str__(self) -> str: """String representation.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append @@ -345,12 +349,12 @@ def to_string(self, verbose=0): return "\n".join(lines) - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() @lazy_property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.reader.read_structure() @@ -375,12 +379,12 @@ def qpoints(self): return self.reader.qpoints @property - def qfrac_coords(self): + def qfrac_coords(self) -> np.ndarray: """|numpy-array| with the fractional coordinates of the q-points.""" return self.qpoints.frac_coords @lazy_property - def params(self): + def params(self) -> dict: """ Dictionary with the parameters that are usually tested for convergence. Used to build Pandas dataframes in Robots. @@ -395,7 +399,7 @@ def get_mdf(self, mdf_type="exc"): "rpa": self.rpanlf_mdf, "gwrpa": self.gwnlf_mdf}[mdf_type.lower()] - def plot_mdfs(self, cplx_mode="Im", mdf_type="all", qpoint=None, **kwargs): + def plot_mdfs(self, cplx_mode="Im", mdf_type="all", qpoint=None, **kwargs) -> Figure: """ Plot the macroscopic dielectric function. @@ -460,7 +464,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot_mdfs(cplx_mode="Re", mdf_type="all", qpoint=None, show=False) yield self.plot_mdfs(cplx_mode="Im", mdf_type="all", qpoint=None, show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -497,22 +501,22 @@ def __init__(self, path): self._structure = self.read_structure() @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure @lazy_property - def qpoints(self): + def qpoints(self) -> KpointList: """List of q-points (ndarray).""" # Read the fractional coordinates and convert them to KpointList. return KpointList(self.structure.reciprocal_lattice, frac_coords=self.read_value("qpoints")) @lazy_property - def wmesh(self): + def wmesh(self) -> np.ndarray: """The frequency mesh in eV.""" return self.read_value("wmesh") - def read_params(self): + def read_params(self) -> dict: """Dictionary with the parameters of the run.""" # TODO: Add more info. # soenergy replaced by mbpt_sciss @@ -546,7 +550,7 @@ def read_gwnlf_mdf(self): return DielectricFunction(self.structure, self.qpoints, self.wmesh, emacros_q, info) -class MdfPlotter(object): +class MdfPlotter: """ Class for plotting Macroscopic dielectric functions. @@ -576,7 +580,8 @@ def add_mdf(self, label, mdf): self._mdfs[label] = mdf @add_fig_kwargs - def plot(self, ax=None, cplx_mode="Im", qpoint=None, xlims=None, ylims=None, fontsize=12, **kwargs): + def plot(self, ax=None, cplx_mode="Im", qpoint=None, xlims=None, ylims=None, + fontsize=8, **kwargs) -> Figure: """ Get a matplotlib plot showing the MDFs. @@ -632,7 +637,7 @@ def plot(self, ax=None, cplx_mode="Im", qpoint=None, xlims=None, ylims=None, fon # ) -class MultipleMdfPlotter(object): +class MultipleMdfPlotter: """ Class for plotting multipe macroscopic dielectric functions extracted from several MDF.nc files @@ -667,10 +672,10 @@ def __init__(self): # [label][mdf_type] --> DielectricFunction self._mdfs = OrderedDict() - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, **kwargs): + def to_string(self, **kwargs) -> str: """String representation.""" lines = [] app = lines.append @@ -706,7 +711,8 @@ def add_mdf_file(self, label, obj): self._mdfs[label][mdf_type] = obj.get_mdf(mdf_type=mdf_type) @add_fig_kwargs - def plot(self, mdf_type="exc", qview="avg", xlims=None, ylims=None, fontsize=8, **kwargs): + def plot(self, mdf_type="exc", qview="avg", xlims=None, ylims=None, + fontsize=8, **kwargs) -> Figure: """ Plot all macroscopic dielectric functions (MDF) stored in the plotter @@ -802,7 +808,8 @@ def plot(self, mdf_type="exc", qview="avg", xlims=None, ylims=None, fontsize=8, @add_fig_kwargs def plot_mdftype_cplx(self, mdf_type, cplx_mode, qpoint=None, ax=None, xlims=None, ylims=None, - with_legend=True, with_xlabel=True, with_ylabel=True, fontsize=8, **kwargs): + with_legend=True, with_xlabel=True, with_ylabel=True, + fontsize=8, **kwargs) -> Figure: """ Helper function to plot data corresponds to ``mdf_type``, ``cplx_mode``, ``qpoint``. @@ -913,7 +920,7 @@ class MdfRobot(Robot, RobotWithEbands): """ EXT = "MDF" - def plot(self, **kwargs): + def plot(self, **kwargs) -> Figure: """Wraps plot method of :class:`MultipleMdfPlotter`. kwargs are passed to plot.""" return self.get_multimdf_plotter().plot(**kwargs) @@ -934,7 +941,7 @@ def get_multimdf_plotter(self, cls=None): return plotter - def get_dataframe(self, with_geo=False, abspath=False, funcs=None, **kwargs): + def get_dataframe(self, with_geo=False, abspath=False, funcs=None, **kwargs) -> pd.DataFrame: """ Build and return |pandas-DataFrame| with the most import BSE results and the filenames as index. @@ -990,7 +997,7 @@ def get_dataframe(self, with_geo=False, abspath=False, funcs=None, **kwargs): # return fig - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. diff --git a/abipy/electrons/charges.py b/abipy/electrons/charges.py index d942e7bc6..cad2c8846 100644 --- a/abipy/electrons/charges.py +++ b/abipy/electrons/charges.py @@ -1,21 +1,20 @@ # coding: utf-8 -"""HirshfeldCharges.""" -from abipy.core.mixins import Has_Structure -from abipy.core.fields import Density -from abipy.electrons.denpot import DensityFortranFile -from pymatgen.command_line.bader_caller import BaderAnalysis -from pymatgen.io.abinit.pseudos import Pseudo -from pymatgen.core.units import bohr_to_angstrom -from monty.dev import requires -from monty.os.path import which +"""Hirshfeld Charges.""" +from __future__ import annotations import numpy as np import os -import tempfile - -import logging -logger = logging.getLogger(__name__) +from shutil import which +from monty.dev import requires +from pymatgen.command_line.bader_caller import BaderAnalysis +from pymatgen.io.abinit.pseudos import Pseudo +from pymatgen.core.units import bohr_to_angstrom +from abipy.core.structure import Structure +from abipy.core.mixins import Has_Structure +from abipy.core.fields import Density +from abipy.core.globals import get_workdir +from abipy.electrons.denpot import DensityFortranFile __all__ = [ "HirshfeldCharges", @@ -47,7 +46,7 @@ def __init__(self, electron_charges, structure, reference_charges=None): self.reference_charges = np.array(reference_charges) @property - def structure(self): + def structure(self) -> Structure: return self._structure @property @@ -161,7 +160,7 @@ def from_files(cls, density_path, pseudopotential_paths, with_core=True, workdir r = psp8_get_densities(ppath) rhoc[specie] = [r.rmesh * bohr_to_angstrom, r.aecore / (4.0 * np.pi) / (bohr_to_angstrom ** 3)] - workdir = tempfile.mkdtemp() if workdir is None else workdir + workdir = get_workdir(workdir) # extrapolate the core density on the density grid core_density = Density.ae_core_density_on_mesh(density, structure, rhoc, **kwargs) diff --git a/abipy/electrons/denpot.py b/abipy/electrons/denpot.py index 8f5709246..fbf431748 100644 --- a/abipy/electrons/denpot.py +++ b/abipy/electrons/denpot.py @@ -1,18 +1,23 @@ # coding: utf-8 """Density/potential files in netcdf/fortran format.""" +from __future__ import annotations + import os -import tempfile +#import tempfile #import numpy as np from monty.string import marquee from monty.termcolor import cprint from monty.functools import lazy_property +from abipy.core.globals import get_workdir from abipy.core.mixins import (AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter, AbinitFortranFile, CubeFile) -from abipy.flowtk import Cut3D +from abipy.core.structure import Structure from abipy.core.fields import FieldReader +from abipy.electrons.ebands import ElectronBands, ElectronsReader from abipy.abio.inputs import Cut3DInput -from abipy.electrons.ebands import ElectronsReader +from abipy.flowtk import Cut3D + __all__ = [ @@ -33,23 +38,23 @@ class Cut3dDenPotNcFile(AbinitNcFile, Has_Structure): .. rubric:: Inheritance Diagram .. inheritance-diagram:: Cut3dDenPotNcFile """ - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = FieldReader(filepath) self.field = self.reader.read_field() @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.field.structure - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" return {} @@ -64,21 +69,21 @@ class _NcFileWithField(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBand field_name = None @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str): """Initialize the object from a Netcdf file""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = _DenPotNcReader(filepath) @lazy_property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object.""" return self.reader.read_ebands() @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure @@ -88,8 +93,8 @@ def xc(self): return self.reader.read_abinit_xcfunc() @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() return od @@ -102,15 +107,15 @@ def field(self): """ return getattr(self, self.__class__.field_name) - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() - def __str__(self): + def __str__(self) -> str: """String representation.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append @@ -140,7 +145,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.structure.plot(show=False) yield self.ebands.plot(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -183,7 +188,7 @@ def density(self): """Density object.""" return self.reader.read_density() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" s = super().to_string(verbose=verbose) @@ -267,6 +272,8 @@ def vhxc(self): class PotNcFile(_NcFileWithField): """ + POT file produced by the GS part containing the total KS potential in real space. + .. rubric:: Inheritance Diagram .. inheritance-diagram:: PotNcFile """ @@ -278,6 +285,26 @@ def vks(self): return self.reader.read_vks() +class DfptPotNcFile(_NcFileWithField): + """ + POT file produced by the DFPT part containing the + first order derivative of the KS potential in real space. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: DfptPotNcFile + """ + field_name = "first_order_potential" + + #@lazy_property + #def vk1s(self): + # """ + # First order derivative of KS potential. + # Includes derivative of Hartree + XC potential + sum of local pseudo-potential terms. + # except derivative of non-local part. + # """ + # return self.reader.read_vks1() + + class DensityFortranFile(AbinitFortranFile): """ Class representing the _DEN fortran file containing density. @@ -291,12 +318,12 @@ def _convert(self, cut3d_input, workdir=None): """ Internal function to run a conversion using cut3d. """ - workdir = os.path.abspath(tempfile.mkdtemp() if workdir is None else workdir) + workdir = get_workdir(workdir) outfile, converted_file = Cut3D().cut3d(cut3d_input, workdir) return converted_file - def get_cube(self, out_filepath, workdir=None): + def get_cube(self, out_filepath, workdir=None) -> CubeFile: """ Runs cut3d to convert the density to the cube format @@ -418,7 +445,7 @@ def get_hirshfeld(self, structure, all_el_dens_paths=None, fhi_all_el_path=None, else: cut3d_input = Cut3DInput.hirshfeld_from_fhi_path(self.filepath, structure, fhi_all_el_path) - workdir = os.path.abspath(tempfile.mkdtemp() if workdir is None else workdir) + workdir = get_workdir(workdir) cut3d = Cut3D() outfile, converted_file = cut3d.cut3d(cut3d_input, workdir) @@ -433,7 +460,7 @@ def get_density(self, workdir=None): Args: workdir: directory in which cut3d is executed. """ - workdir = os.path.abspath(tempfile.mkdtemp() if workdir is None else workdir) + workdir = get_workdir(workdir) output_filepath = os.path.join(workdir, "field_CUT3DDENPOT.nc") # FIXME Converters with nspden > 1 won't work since cut3d asks for the ispden index. cut3d_input = Cut3DInput(infile_path=self.filepath, output_filepath=output_filepath, diff --git a/abipy/electrons/ebands.py b/abipy/electrons/ebands.py index 93c738685..4201947a4 100644 --- a/abipy/electrons/ebands.py +++ b/abipy/electrons/ebands.py @@ -1,5 +1,7 @@ # coding: utf-8 """Classes to analyse electronic structures.""" +from __future__ import annotations + import os import copy import itertools @@ -10,27 +12,35 @@ import numpy as np import pandas as pd import pymatgen.core.units as units +import abipy.core.abinit_units as abu from collections import OrderedDict, namedtuple from collections.abc import Iterable +from typing import Any from monty.string import is_string, list_strings, marquee from monty.termcolor import cprint from monty.json import MontyEncoder from monty.collections import AttrDict, dict2namedtuple from monty.functools import lazy_property from monty.bisect import find_le, find_gt -from pymatgen.util.serialization import pmg_serialize from pymatgen.electronic_structure.core import Spin as PmgSpin +from abipy.tools.serialization import pmg_serialize from abipy.core.func1d import Function1D from abipy.core.mixins import Has_Structure, NotebookWriter from abipy.core.kpoints import (Kpoint, KpointList, Kpath, IrredZone, KSamplingInfo, KpointsReaderMixin, - Ktables, has_timrev_from_kptopt, map_grid2ibz) #, kmesh_from_mpdivs) + Ktables, has_timrev_from_kptopt, map_grid2ibz, kmesh_from_mpdivs) from abipy.core.structure import Structure from abipy.iotools import ETSF_Reader from abipy.tools import duck +from abipy.tools.typing import Figure from abipy.tools.numtools import gaussian +from abipy.tools.decorators import memoized_method +from abipy.tools.context_managers import Timer from abipy.tools.plotting import (set_axlims, add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, - get_ax3d_fig_plt, rotate_ticklabels, set_visible, plot_unit_cell, set_ax_xylabels) + get_ax3d_fig_plt, rotate_ticklabels, set_visible, plot_unit_cell, set_ax_xylabels, get_figs_plotly, + get_fig_plotly, add_plotly_fig_kwargs, PlotlyRowColDesc, plotly_klabels, plotly_set_lims) +from abipy.core.mixins import TextFile +from abipy.abio.robots import Robot __all__ = [ @@ -42,6 +52,20 @@ ] +SUBSCRIPT_UNICODE = { + "0": "₀", + "1": "₁", + "2": "₂", + "3": "₃", + "4": "₄", + "5": "₅", + "6": "₆", + "7": "₇", + "8": "₈", + "9": "₉", + } + + class Electron(namedtuple("Electron", "spin kpoint band eig occ kidx")): """ Single-particle state. @@ -51,7 +75,7 @@ class Electron(namedtuple("Electron", "spin kpoint band eig occ kidx")): spin: spin index (C convention, i.e >= 0) kpoint: |Kpoint| object. band: band index. (C convention, i.e >= 0) - eig: KS eigenvalue. + eig: KS eigenvalue in eV occ: Occupation factor. kidx: Index of the k-point in the initial array. @@ -59,40 +83,43 @@ class Electron(namedtuple("Electron", "spin kpoint band eig occ kidx")): Energies are in eV. """ - def __eq__(self, other): + def __eq__(self, other) -> bool: if other is None: return False return self.spin == other.spin and self.kpoint == other.kpoint and self.band == other.band - def __ne__(self, other): + def __ne__(self, other) -> bool: return not (self == other) - def __str__(self): + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: return "spin: %d, kpt: %s, band: %d, eig: %.3f, occ: %.3f" % ( - self.spin, self.kpoint, self.band, self.eig, self.occ) + self.spin, self.kpoint.to_string(verbose=verbose), self.band, self.eig, self.occ) @property - def skb(self): + def skb(self) -> tuple: """Tuple with (spin, kpoint, band).""" return self.spin, self.kpoint, self.band - def copy(self): + def copy(self) -> Electron: """Shallow copy.""" return self.__class__(**{f: copy.copy(getattr(self, f)) for f in self._fields}) @classmethod - def get_fields(cls, exclude=()): + def get_fields(cls, exclude=()) -> tuple: fields = list(cls._fields) for e in exclude: fields.remove(e) return tuple(fields) - def as_dict(self): + def as_dict(self) -> dict: """Convert self into a dict.""" return super()._asdict() - def to_strdict(self, fmt=None): - """Ordered dictionary mapping fields --> strings.""" + def to_strdict(self, fmt=None) -> dict: + """Dictionary mapping fields --> strings.""" d = self.as_dict() for k, v in d.items(): if np.iscomplexobj(v): @@ -111,12 +138,12 @@ def to_strdict(self, fmt=None): return d @property - def tips(self): + def tips(self) -> dict: """Dictionary with the description of the fields.""" return self.__class__.TIPS() @classmethod - def TIPS(cls): + def TIPS(cls) -> dict: """ Class method that returns a dictionary with the description of the fields. The string are extracted from the class doc string. @@ -158,7 +185,7 @@ def num_leadblanks(string): return _TIPS -class ElectronTransition(object): +class ElectronTransition: """ This object describes an electronic transition between two single-particle states. """ @@ -177,23 +204,23 @@ def __init__(self, in_state, out_state, all_kinds=None): # Provide default. self.all_kinds = all_kinds - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = []; app = lines.append app("Energy: %.3f (eV)" % self.energy) - app("Initial state: %s" % str(self.in_state)) - app("Final state: %s" % str(self.out_state)) + app("Initial state: %s" % self.in_state.to_string(verbose=verbose)) + app("Final state: %s" % self.out_state.to_string(verbose=verbose)) return "\n".join(lines) - def __eq__(self, other): + def __eq__(self, other) -> bool: if other is None: return False return self.in_state == other.in_state and self.out_state == other.out_state - def __ne__(self, other): + def __ne__(self, other) -> bool: return not (self == other) @lazy_property @@ -202,12 +229,12 @@ def energy(self): return self.out_state.eig - self.in_state.eig @lazy_property - def qpoint(self): + def qpoint(self) -> Kpoint: """k_final - k_initial""" return self.out_state.kpoint - self.in_state.kpoint @lazy_property - def is_direct(self): + def is_direct(self) -> bool: """True if direct transition.""" return self.in_state.kpoint == self.out_state.kpoint @@ -223,20 +250,20 @@ class Smearing(AttrDict): ] @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict): """ Makes Smearing obey the general json interface used in pymatgen for easier serialization. """ return cls(**{k: d[k] for k in cls._MANDATORY_KEYS}) @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: """ Makes Smearing obey the general json interface used in pymatgen for easier serialization. """ return self - def to_json(self): + def to_json(self) -> str: """ Returns a JSON_ string representation of the MSONable object. """ @@ -265,17 +292,19 @@ def __init__(self, *args, **kwargs): raise ValueError("Mandatory key %s must be provided" % str(mkey)) def __str__(self): - return "smearing scheme: %s, tsmear_eV: %.3f, occopt: %d" % (self.scheme, self.tsmear_ev, self.occopt) + return "smearing scheme: %s (occopt %d), tsmear_eV: %.3f, tsmear Kelvin: %.1f" % ( + self.scheme, self.occopt, self.tsmear_ev, self.tsmear_ev / abu.kb_eVK ) @property - def has_metallic_scheme(self): + def has_metallic_scheme(self) -> bool: """True if we are using a metallic scheme for occupancies.""" return self.occopt in [3, 4, 5, 6, 7, 8] class StatParams(namedtuple("StatParams", "mean stdev min max")): """Named tuple with statistical parameters.""" - def __str__(self): + + def __str__(self) -> str: return "mean = %.3f, stdev = %.3f, min = %.3f, max = %.3f (eV)" % ( self.mean, self.stdev, self.min, self.max) @@ -315,7 +344,7 @@ class ElectronBands(Has_Structure): # because the CBM obtained with the NSCF band structure run will be likely above the Ef computed previously. @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> ElectronBands: """ Initialize an instance of |ElectronBands| from the netCDF file ``filepath``. """ @@ -325,12 +354,26 @@ def from_file(cls, filepath): else: raise NotImplementedError("ElectronBands can only be initialized from nc files") - assert new.__class__ == cls + assert new.__class__ is cls return new @classmethod - def from_dict(cls, d): - """Reconstruct object from the dictionary in MSONable format produced by as_dict.""" + def from_binary_string(cls, bstring) -> ElectronBands: + """ + Build object from a binary string with the netcdf data. + Useful for implementing GUIs in which widgets returns binary data. + """ + workdir = tempfile.mkdtemp() + fd, tmp_path = tempfile.mkstemp(suffix=".nc") + with open(tmp_path, "wb") as fh: + fh.write(bstring) + return cls.from_file(tmp_path) + + @classmethod + def from_dict(cls, d: dict) -> ElectronBands: + """ + Reconstruct object from the dictionary in MSONable format produced by as_dict. + """ d = d.copy() kd = d["kpoints"].copy() kd.pop("@module") @@ -341,14 +384,20 @@ def from_dict(cls, d): # Needed to support old dictionaries if "nspden" not in d: d["nspden"] = 1 if "nspinor" not in d: d["nspinor"] = 1 + + smearing = d['smearing'] + if smearing is not None: + # Handle metallic occupation scheme + smearing = Smearing.from_dict(smearing) + return cls(Structure.from_dict(d["structure"]), kpoints, d["eigens"], d["fermie"], d["occfacts"], d["nelect"], d["nspinor"], d["nspden"], - nband_sk=d["nband_sk"], smearing=d["smearing"], + nband_sk=d["nband_sk"], smearing=smearing, linewidths=d.get("linewidths", None) ) @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: """Return dictionary with JSON serialization.""" linewidths = None if not self.has_linewidths else self.linewidths.tolist() return dict( @@ -366,7 +415,7 @@ def as_dict(self): ) @classmethod - def as_ebands(cls, obj): + def as_ebands(cls, obj: Any) -> ElectronBands: """ Return an instance of |ElectronBands| from a generic object `obj`. Supports: @@ -384,69 +433,72 @@ def as_ebands(cls, obj): with open(obj, "rb") as fh: return cls.as_ebands(pickle.load(fh)) - from abipy.abilab import abiopen - with abiopen(obj) as abifile: - return abifile.ebands + if obj.endswith("_EBANDS.nc"): + return cls.from_file(obj) + + from abipy.abilab import abiopen, abifile_subclass_from_filename + try: + _ = abifile_subclass_from_filename(obj) + use_abiopen = True + except ValueError: + # This is needed to treat the case in which we are trying to read ElectronBands + # from a nc file that is not known to AbiPy. + use_abiopen = False + + if use_abiopen: + with abiopen(obj) as abifile: + return abifile.ebands + else: + return cls.from_file(obj) elif hasattr(obj, "ebands"): # object with ebands return obj.ebands - raise TypeError("Don't know how to extract ebands from object %s" % type(obj)) + raise TypeError("Don't know how to extract ebands from object `%s`" % type(obj)) @classmethod - def from_mpid(cls, material_id, api_key=None, endpoint=None, - nelect=None, has_timerev=True, nspinor=1, nspden=None, line_mode=True): + def from_mpid(cls, material_id, + nelect=None, has_timerev=True, + nspinor=1, nspden=None, line_mode=True) -> ElectronBands: """ - Read bandstructure data corresponding to a materials project ``material_id``. + Read band structure data corresponding to a materials project ``material_id``. and return Abipy ElectronBands object. Return None if bands are not available. Args: material_id (str): Materials Project material_id (a string, e.g., mp-1234). - api_key (str): A String API key for accessing the MaterialsProject - REST interface. Please apply on the Materials Project website for one. - If this is None, the code will check if there is a `PMG_MAPI_KEY` in - your .pmgrc.yaml. If so, it will use that environment - This makes easier for heavy users to simply add - this environment variable to their setups and MPRester can - then be called without any arguments. - endpoint (str): Url of endpoint to access the MaterialsProject REST interface. - Defaults to the standard Materials Project REST address, but - can be changed to other urls implementing a similar interface. nelect: Number of electrons in the unit cell. + If None, this value is automatically computed using the Fermi level (if metal) + or the VBM indices reported in the JSON document sent by the MP database. + It is recommended to pass nelect explictly if this quantity is known in the caller. nspinor: Number of spinor components. line_mode (bool): If True, fetch a BandStructureSymmLine object (default). If False, return the uniform band structure. """ - # Get pytmatgen structure and convert it to abipy structure + material_id = str(material_id) + if not material_id.startswith("mp-"): + raise ValueError("Materials project ID should start with mp-") + + # Get pytmatgen structure and convert it to an AbiPy structure from abipy.core import restapi - with restapi.get_mprester(api_key=api_key, endpoint=endpoint) as rest: + with restapi.get_mprester() as rest: + + if getattr(rest, "get_structure_by_material_id") is None: + raise RuntimeError("from_mpid requires mp-api, please install it with `pip install mp-api`") + pmgb = rest.get_bandstructure_by_material_id(material_id=material_id, line_mode=line_mode) if pmgb is None: return None - # Structure is set to None so we have to perform another request and patch the object. - structure = rest.get_structure_by_material_id(material_id, final=True) - if pmgb.structure is None: pmgb.structure = structure - - if nelect is None: - # Get nelect from valence band maximum index. - if pmgb.is_metal(): - cprint("Nelect must be specified if metallic bands.", "red") - return None - else: - d = pmgb.get_vbm() - iv_up = max(d["band_index"][PmgSpin.up]) - nelect = (iv_up + 1) * 2 - #print("iv_up", iv_up, "nelect: ", nelect) - if pmgb.is_spin_polarized: - iv_down = max(d["band_index"][PmgSpin.down]) - assert iv_down == iv_up + if pmgb.structure is None: + # Structure is set to None so we have to perform another request and patch the object. + structure = rest.get_structure_by_material_id(material_id, final=True) + pmgb.structure = structure #ksampling = KSamplingInfo.from_kbounds(kbounds) return cls.from_pymatgen(pmgb, nelect, weights=None, has_timerev=has_timerev, ksampling=None, smearing=None, nspinor=nspinor, nspden=nspden) - def to_json(self): + def to_json(self) -> str: """ Returns a JSON string representation of the MSONable object. """ @@ -458,15 +510,14 @@ def __init__(self, structure, kpoints, eigens, fermie, occfacts, nelect, nspinor Args: structure: |Structure| object. kpoints: |KpointList| instance. - eigens: Array-like object with the eigenvalues (eV) stored as [s, k, b] - where s: spin , k: kpoint, b: band index + eigens: Array-like object with the eigenvalues (eV) stored as [s, k, b] where s: spin , k: kpoint, b: band index fermie: Fermi level in eV. occfacts: Occupation factors (same shape as eigens) nelect: Number of valence electrons in the unit cell. nspinor: Number of spinor components nspden: Number of independent density components. nband_sk: Array-like object with the number of bands treated at each [spin,kpoint] - If not given, nband_sk is initialized from eigens. + If not given, nband_sk is initialized from eigens. smearing: :class:`Smearing` object storing information on the smearing technique. linewidths: Array-like object with the linewidths (eV) stored as [s, k, b] """ @@ -477,6 +528,7 @@ def __init__(self, structure, kpoints, eigens, fermie, occfacts, nelect, nspinor self._occfacts = np.atleast_3d(occfacts) assert self._eigens.shape == self._occfacts.shape self._linewidths = None + if linewidths is not None: self._linewidths = np.reshape(linewidths, self._eigens.shape) @@ -490,23 +542,69 @@ def __init__(self, structure, kpoints, eigens, fermie, occfacts, nelect, nspinor self.nband_sk.shape = (self.nsppol, self.nkpt) self.kpoints = kpoints - assert self.nkpt == len(self.kpoints) - assert isinstance(self.kpoints, KpointList) + if self.nkpt != len(self.kpoints): + raise ValueError(f"{self.nkpt=} != {len(self.kpoints)=}") + + if not isinstance(self.kpoints, KpointList): + raise TypeError(f"{type(self.kpoints)=} is not an instance of KpointList") self.smearing = {} if smearing is None else smearing self.nelect = float(nelect) self.fermie = float(fermie) + # Now I try to understand if we are dealing with a semiconductor or a metal + # by using meta variables and the input fermie. + # The algorithm may fail if we are dealing with a semimetal but in the internal implementation + # we only discern between systems with/without an energy gap. + # Note that in the case of NSCF calculations the fermie is taken from the previous SCF run + # hence we assume the user used the same value of occopt both in the SCF and in the NSCF run + # although the NSCF run does not need occopt. + # This is automatically enforced if you use AbiPy flows but it's not guaranteed if the user + # uses his/her own input files. + + if self.smearing and self.smearing.occopt == 1 and self.nsppol == 1 and self.nspden == 1: + # This is the simplest case as the calculation has been done assuming a non-magnetic semiconductor + # so there must be a gap in single-particle theory. + # On the other hand, in a NSCF run with a k-path it may happen that the HOMO energy + # taken from the GS SCF run underestimates the real HOMO level. + # For instance, the GS-SCF may have been done with a shifted k-mesh whereas + # the true HOMO derived from the k-path is at Gamma. + # Calling set_fermie_to_vbm should fix this. + + self.is_metal = False + self.set_fermie_to_vbm() + + else: + #print("This is a wannabe metal") + # This flag is true if the system must be metallic in single particle theory + is_bloch_metal = self.nsppol == 1 and self.nspinor == 1 and self.nelect % 2 != 0 + + self.is_metal = True + if not is_bloch_metal: + # Use the input fermie to understand if there's an energy gap. + max_occ = 2.0 / (self.nsppol * self.nspinor) + trial_occs = np.where(self.eigens > self.fermie, 0, max_occ) + self.is_metal = False + + for ik in range(self.nkpt): + nele_k = trial_occs[:, ik].sum() + #print(nele_k) + if nele_k != self.nelect: + self.is_metal = True + break + @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure @lazy_property def _auto_klabels(self): - # Find the k-point names in the pymatgen database. - # We'll use _auto_klabels to label the point in the matplotlib plot - # if klabels are not specified by the user. + """ + Find the k-point names in the pymatgen database. + We'll use _auto_klabels to label the point in the matplotlib plot + if klabels are not specified by the user. + """ _auto_klabels = OrderedDict() # If the first or the last k-point are not recognized in findname_in_hsym_stars @@ -529,13 +627,14 @@ def _auto_klabels(self): def __repr__(self): """String representation (short version)""" - return "<%s, nk=%d, %s, id=%s>" % (self.__class__.__name__, self.nkpt, self.structure.formula, id(self)) + #return "<%s, nk=%d, %s, id=%s>" % (self.__class__.__name__, self.nkpt, self.structure.formula, id(self)) + return "<%s, nk=%d, %s>" % (self.__class__.__name__, self.nkpt, self.structure.formula) def __str__(self): """String representation""" return self.to_string() - def __add__(self, other): + def __add__(self, other) -> ElectronBandsPlotter: """self + other returns a |ElectronBandsPlotter|.""" if not isinstance(other, (ElectronBands, ElectronBandsPlotter)): raise TypeError("Cannot add %s to %s" % (type(self), type(other))) @@ -555,6 +654,20 @@ def __add__(self, other): __radd__ = __add__ + def get_plotter_with(self, self_key, other_key, other_ebands): + """ + Build and |ElectronBandsPlotter| from self and other, use self_key and other_key as keywords + """ + plotter = ElectronBandsPlotter() + plotter.add_ebands(self_key, self) + plotter.add_ebands(other_key, other_ebands) + + return plotter + + #def get_panel(self, **kwargs): + # from abipy.panels.core import PanelWithElectronBands + # return PanelWithElectronBands(ebands=self).get_panel(**kwargs) + # Handy variables used to loop @property def spins(self): @@ -562,7 +675,7 @@ def spins(self): return range(self.nsppol) @property - def nband(self): + def nband(self) -> int: try: return self._nband except AttributeError: @@ -576,12 +689,12 @@ def kidxs(self): return range(self.nkpt) @property - def eigens(self): + def eigens(self) -> np.ndarray: """Eigenvalues in eV. |numpy-array| with shape [nspin, nkpt, mband].""" return self._eigens @property - def linewidths(self): + def linewidths(self) -> np.ndarray: """linewidths in eV. |numpy-array| with shape [nspin, nkpt, mband].""" return self._linewidths @@ -593,12 +706,12 @@ def linewidths(self, linewidths): self._linewidths = linewidths @property - def has_linewidths(self): + def has_linewidths(self) -> bool: """True if bands with linewidths.""" return getattr(self, "_linewidths", None) is not None @property - def occfacts(self): + def occfacts(self) -> np.ndarray: """Occupation factors. |numpy-array| with shape [nspin, nkpt, mband].""" return self._occfacts @@ -608,12 +721,12 @@ def reciprocal_lattice(self): return self.structure.reciprocal_lattice @property - def shape(self): + def shape(self) -> tuple: """Shape of the array with the eigenvalues.""" return self.nsppol, self.nkpt, self.mband @property - def has_metallic_scheme(self): + def has_metallic_scheme(self) -> bool: """True if we are using a metallic scheme for occupancies.""" if self.smearing: return self.smearing.has_metallic_scheme @@ -621,24 +734,37 @@ def has_metallic_scheme(self): cprint("ebands.smearing is not defined, assuming has_metallic_scheme = False", "red") return False - def set_fermie_to_vbm(self): + def set_fermie_to_vbm(self) -> float: """ Set the Fermi energy to the valence band maximum (VBM). Useful when the initial fermie energy comes from a GS-SCF calculation that may underestimate the Fermi energy because e.g. the IBZ sampling is shifted whereas the true VMB is at Gamma. - Return: New fermi energy in eV. + Return: New Fermi energy in eV. .. warning: Assume spin-unpolarized band energies. """ + if self.nsppol == 2: + raise ValueError(f"set_fermie_to_vbm assumes nsppol == 1 while it is: {self.nsppol}") + if self.nspden != 1: + raise ValueError(f"set_fermie_to_vbm assumes nspden == 1 while it is: {self.nspden}") + iv = int(self.nelect * self.nspinor) // 2 - 1 + if iv >= self.mband: + iv = self.mband - 1 + cprint("mband = {self.mband} is not large enough to include the VBM", "red") + new_fermie = self.eigens[:, :, iv].max() return self.set_fermie(new_fermie) - def set_fermie_from_edos(self, edos, nelect=None): + #def set_fermie_to_midgap(self) -> float: + # new_fermie = + # return self.set_fermie(new_fermie) + + def set_fermie_from_edos(self, edos, nelect=None) -> float: """ Set the Fermi level using the integrated DOS computed in edos. @@ -655,7 +781,7 @@ def set_fermie_from_edos(self, edos, nelect=None): return self.set_fermie(new_fermie) - def set_fermie(self, new_fermie): + def set_fermie(self, new_fermie: float) -> float: """Set the new fermi energy. Return new value""" self.fermie = new_fermie # TODO change occfacts @@ -671,8 +797,7 @@ def with_points_along_path(self, frac_bounds=None, knames=None, dist_tol=1e-12): frac_bounds: [M, 3] array with the vertexes of the k-path in reduced coordinates. If None, the k-path is automatically selected from the structure. knames: List of strings with the k-point labels defining the k-path. It has precedence over frac_bounds. - dist_tol: A point is considered to be on the path if its distance from the line - is less than dist_tol. + dist_tol: A point is considered to be on the path if its distance from the line is less than dist_tol. Return: namedtuple with the following attributes:: @@ -737,40 +862,28 @@ def with_points_along_path(self, frac_bounds=None, knames=None, dist_tol=1e-12): return dict2namedtuple(ebands=new_ebands, ik_new2prev=ik_new2prev) - #def select_bands(self, bands, kinds=None): - # """Build new ElectronBands object by selecting bands via band_slice (slice object).""" - # bands = np.array(bands) - # kinds = np.array(kinds) if kinds is not None else np.array(range(self.nkpt)) - # # This won't work because I need a KpointList object. - # new_kpoints = self.kpoints[kinds] - # new_eigens = self.eigens[:, kinds, bands].copy() - # new_occfacts = self.occupation[:, kinds, bands].copy() - # new_linewidths = None if not self.linewidths else self.linewidths[:, kinds, bands].copy() - - # return self.__class__(self.structure, new_kpoints, new_eigens, self.fermie, new_occfacts, - # self.nelect, self.nspinor, self.nspden, - # smearing=self.smearing, linewidths=new_linewidths) - @classmethod def empty_with_ibz(cls, ngkpt, structure, fermie, nelect, nsppol, nspinor, nspden, mband, - shiftk=(0, 0, 0), kptopt=1, smearing=None, linewidths=None): + shiftk=(0, 0, 0), kptopt=1, + smearing=None, linewidths=None) -> ElectronBands: + """Build an empty ElectronBands instance with k-points in the IBZ.""" + from abipy.abio.factories import gs_input from abipy.data.hgh_pseudos import HGH_TABLE - gsinp = gs_input(structure, HGH_TABLE, spin_mode="unpolarized") - ibz = gsinp.abiget_ibz(ngkpt=ngkpt, shiftk=shiftk, kptopt=kptopt) - ksampling = KSamplingInfo.from_mpdivs(ngkpt, shiftk, kptopt) + gs_inp = gs_input(structure, HGH_TABLE, spin_mode="unpolarized") + ibz = gs_inp.abiget_ibz(ngkpt=ngkpt, shiftk=shiftk, kptopt=kptopt) - kpoints = IrredZone(structure.reciprocal_lattice, ibz.points, weights=ibz.weights, - names=None, ksampling=ksampling) + ksampling = KSamplingInfo.from_mpdivs(ngkpt, shiftk, kptopt) + ibz_kpoints = IrredZone(structure.reciprocal_lattice, ibz.points, weights=ibz.weights, names=None, ksampling=ksampling) - new_eigens = np.zeros((nsppol, len(kpoints), mband)) + new_eigens = np.zeros((nsppol, len(ibz_kpoints), mband)) new_occfacts = np.zeros_like(new_eigens) - return cls(structure, kpoints, new_eigens, fermie, new_occfacts, + return cls(structure, ibz_kpoints, new_eigens, fermie, new_occfacts, nelect, nspinor, nspden, smearing=smearing, linewidths=linewidths) - def get_dict4pandas(self, with_geo=True, with_spglib=True): + def get_dict4pandas(self, with_geo=True, with_spglib=True) -> dict: """ Return a :class:`OrderedDict` with the most important parameters: @@ -789,7 +902,6 @@ def get_dict4pandas(self, with_geo=True, with_spglib=True): ("nsppol", self.nsppol), ("nspinor", self.nspinor), ("nspden", self.nspden), ("nkpt", self.nkpt), ("nband", self.nband_sk.min()), ("nelect", self.nelect), ("fermie", self.fermie), - ]) # Add info on structure. @@ -828,17 +940,17 @@ def get_dict4pandas(self, with_geo=True, with_spglib=True): return odict @lazy_property - def has_bzmesh(self): + def has_bzmesh(self) -> bool: """True if the k-point sampling is homogeneous.""" return isinstance(self.kpoints, IrredZone) @lazy_property - def has_bzpath(self): + def has_bzpath(self) -> bool: """True if the bands are computed on a k-path.""" return isinstance(self.kpoints, Kpath) @lazy_property - def kptopt(self): + def kptopt(self) -> int: """The value of the kptopt input variable.""" try: return self.kpoints.ksampling.kptopt @@ -847,23 +959,58 @@ def kptopt(self): return 1 @lazy_property - def has_timrev(self): + def has_timrev(self) -> bool: """True if time-reversal symmetry is used in the BZ sampling.""" return has_timrev_from_kptopt(self.kptopt) - @lazy_property - def supports_fermi_surface(self): + def get_bz2ibz_bz_points(self, require_gamma_centered=False): + """ + Return named tupled with mapping bz2ibz and the list of k-points in the BZ. + + Args: + require_gamma_centered: True if the k-mesh should be Gamma-centered + """ + err_msg = self.isnot_ibz_sampling(require_gamma_centered=require_gamma_centered) + if err_msg: + raise TypeError(err_msg) + + if not self.kpoints.is_mpmesh: + raise ValueError("Only Monkhorst-Pack meshes are supported") + + ngkpt, shifts = self.kpoints.mpdivs_shifts + #print(f"{ngkpt = }, {shifts =}") + # TODO: Handle shifts + + bz2ibz = map_grid2ibz(self.structure, self.kpoints.frac_coords, ngkpt, self.has_timrev) + bz_kpoints = kmesh_from_mpdivs(ngkpt, shifts) + + return dict2namedtuple(bz2ibz=bz2ibz, ngkpt=ngkpt, shifts=shifts, bz_kpoints=bz_kpoints) + + def isnot_ibz_sampling(self, require_gamma_centered=False) -> str: """ - True if the kpoints used for the energies can be employed to visualize Fermi surface. - Fermi surface viewers require gamma-centered k-mesh. + Test whether the k-points in the band structure represent an IBZ with an associated k-mesh + Return string with error message if the condition is not fullfilled. + + Args: + require_gamma_centered: True if the k-mesh should be Gamma-centered """ - if self.kpoints.is_mpmesh: + errors = [] + eapp = errors.append + + if not self.kpoints.is_ibz: + eapp("Expecting an IBZ sampling but got type `%s`" % type(self.kpoints)) + + if not self.kpoints.is_mpmesh: + eapp("Note that homogeneous k-meshes are required.\nksampling:` %s`" % str(self.kpoints.ksampling)) + + if self.kpoints.is_mpmesh and require_gamma_centered: mpdivs, shifts = self.kpoints.mpdivs_shifts - if shifts is not None and np.all(shifts == 0.0): - return True - return False + if shifts is not None and not np.all(shifts == 0.0): + eapp(f"k-mesh should be gamma-centered but shifts: {shifts}") - def kindex(self, kpoint): + return "\n".join(errors) + + def kindex(self, kpoint) -> int: """ The index of the k-point in the internal list of k-points. Accepts: |Kpoint| instance or integer. @@ -880,11 +1027,14 @@ def skb_iter(self): for band in range(self.nband_sk[spin, ik]): yield spin, ik, band - def deepcopy(self): + def deepcopy(self) -> ElectronBands: """Deep copy of the ElectronBands object.""" - return copy.deepcopy(self) + new = copy.deepcopy(self) + # Don't know why but we need to copy the smearing manually. + new.smearing = Smearing(**self.smearing) + return new - def degeneracies(self, spin, kpoint, bands_range, tol_ediff=1.e-3): + def degeneracies(self, spin, kpoint, bands_range, tol_ediff=1.e-3) -> list: """ Returns a list with the indices of the degenerate bands. @@ -925,7 +1075,7 @@ def degeneracies(self, spin, kpoint, bands_range, tol_ediff=1.e-3): deg_ebands.append((e0, bs)) return deg_ebands - def enemin(self, spin=None, band=None): + def enemin(self, spin=None, band=None) -> float: """Compute the minimum of the eigenvalues.""" spin_range = self.spins if spin is not None: @@ -948,7 +1098,7 @@ def enemin(self, spin=None, band=None): emin = min(emin, e) return emin - def enemax(self, spin=None, band=None): + def enemax(self, spin=None, band=None) -> float: """Compute the maximum of the eigenvalues.""" spin_range = self.spins if spin is not None: @@ -971,7 +1121,7 @@ def enemax(self, spin=None, band=None): emax = max(emax, e) return emax - def dispersionless_states(self, erange=None, deltae=0.05, kfact=0.9): + def dispersionless_states(self, erange=None, deltae=0.05, kfact=0.9) -> list[Electron]: """ This function detects dispersionless states. A state is dispersionless if there are more that (nkpt * kfact) energies @@ -1004,7 +1154,8 @@ def dispersionless_states(self, erange=None, deltae=0.05, kfact=0.9): return dless_states - def get_dataframe(self, e0="fermie"): + #@memoized_method(maxsize=5, typed=False) + def get_dataframe(self, e0="fermie", brange=None, ene_range=None) -> pd.DataFrame: """ Return a |pandas-DataFrame| with the following columns: @@ -1028,31 +1179,64 @@ def get_dataframe(self, e0="fermie"): - `fermie`: shift all eigenvalues to have zero energy at the Fermi energy (`self.fermie`). - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV - None: Don't shift energies, equivalent to e0=0 - The Fermi energy is saved in frame.fermie + The Fermi energy is saved in df.fermie + brange: If not None, only bands such as ``brange[0] <= band_index < brange[1]`` are included. + ene_range: If not None, only bands whose energy in inside [erange[0], [erange[1]] are included. + brange and ene_range are mutually exclusive. Note that e0 is taken into account. + when computing the energy. """ - rows = [] + if brange and ene_range: + raise ValueError("brange and ene_range are mutually exclusive") + e0 = self.get_e0(e0) + + if ene_range: + # Compute brange from ene_range + min_band, max_band = self.mband, -1 + for spin in self.spins: + for k, kpoint in enumerate(self.kpoints): + e_ks = self.eigens[spin, k] - e0 + bands = np.where((e_ks >= ene_range[0]) & (e_ks <= ene_range[1]))[0] + if bands.size: + min_band = min(min_band, int(bands[0])) + max_band = max(max_band, int(bands[-1])) + #raise ValueError(f"No band found in ene_range: {ene_range} with e0: {e0}") + + if max_band == min_band: max_band += 1 + if min_band > max_band: + # Wrong interval provided by user --> Show everything + min_band, max_band = 0, self.mband + + brange = (min_band, max_band) + #print(min_band, max_band) + + rows = [] for spin in self.spins: for k, kpoint in enumerate(self.kpoints): - for band in range(self.nband_sk[spin,k]): - eig = self.eigens[spin,k,band] - e0 + bands = range(self.nband_sk[spin, k]) if brange is None else \ + range(brange[0], brange[1]) + + for band in bands: + eig = self.eigens[spin, k, band] - e0 rows.append(OrderedDict([ ("spin", spin), ("kidx", k), ("band", band), - ("eig", eig), + ("eig", float(eig)), ("occ", self.occfacts[spin, k, band]), ("kpoint", self.kpoints[k]), ])) - frame = pd.DataFrame(rows, columns=list(rows[0].keys())) - frame.fermie = e0 - return frame + df = pd.DataFrame(rows, columns=list(rows[0].keys())) + df.fermie = e0 + + return df @add_fig_kwargs - def boxplot(self, ax=None, e0="fermie", brange=None, swarm=False, **kwargs): + def boxplot(self, ax=None, e0="fermie", brange=None, ene_range=None, swarm=False, **kwargs) -> Figure: """ - Use seaborn_ to draw a box plot to show distributions of eigenvalues with respect to the band index. + Use seaborn to draw a box plot to show the distributions of the eigenvalues + with respect to the band index. Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -1061,35 +1245,75 @@ def boxplot(self, ax=None, e0="fermie", brange=None, swarm=False, **kwargs): - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV. - None: Don't shift energies, equivalent to ``e0 = 0``. brange: Only bands such as ``brange[0] <= band_index < brange[1]`` are included in the plot. - swarm: True to show the datapoints on top of the boxes + ene_range: If not None, only bands whose energy in inside [erange[0], [erange[1]] are included. + brange and ene_range are mutually exclusive. Note that e0 is taken into account. + when computing the energy window. + swarm: True to show the datapoints on top of the boxes. kwargs: Keyword arguments passed to seaborn boxplot. Return: |matplotlib-Figure| """ - # Get the dataframe and select bands - frame = self.get_dataframe(e0=e0) - if brange is not None: - frame = frame[(frame["band"] >= brange[0]) & (frame["band"] < brange[1])] + df = self.get_dataframe(e0=e0, brange=brange, ene_range=ene_range) ax, fig, plt = get_ax_fig_plt(ax=ax) ax.grid(True) import seaborn as sns hue = None if self.nsppol == 1 else "spin" - ax = sns.boxplot(x="band", y="eig", data=frame, hue=hue, ax=ax, **kwargs) + ax = sns.boxplot(x="band", y="eig", data=df, hue=hue, ax=ax, **kwargs) if swarm: - sns.swarmplot(x="band", y="eig", data=frame, hue=hue, color=".25", ax=ax) + sns.swarmplot(x="band", y="eig", data=df, hue=hue, color=".25", ax=ax) + + return fig + + @add_plotly_fig_kwargs + def boxplotly(self, e0="fermie", brange=None, ene_range=None, swarm=False, fig=None, rcd=None, **kwargs): + """ + Use ployly to draw a box plot to show the distributions of the eigenvalues + with respect to the band index. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV. + - None: Don't shift energies, equivalent to ``e0 = 0``. + brange: Only bands such as ``brange[0] <= band_index < brange[1]`` are included in the plot. + ene_range: If not None, only bands whose energy in inside [erange[0], [erange[1]] are included. + brange and ene_range are mutually exclusive. Note that e0 is taken into account. + when computing the energy window. + swarm: True to show the datapoints on top of the boxes. + fig: plotly figure or None if a new figure should be created. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) + of the subplot in the grid. + kwargs: Keyword arguments passed to plotly px.box. + + Returns: |plotly.graph_objects.Figure| + """ + df = self.get_dataframe(e0=e0, brange=brange, ene_range=ene_range) + + import plotly.express as px + hue = None if self.nsppol == 1 else "spin" + points = 'outliers' if not swarm else "all" + px_fig = px.box(df, x="band", y="eig", color=hue, points=points, **kwargs) + + if rcd is None: return px_fig + + # Add px_fig traces to input fig with subplot. + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax + for trace in px_fig.data: + fig.add_trace(trace, row=ply_row, col=ply_col) return fig @classmethod def from_pymatgen(cls, pmg_bands, nelect, weights=None, has_timerev=True, - ksampling=None, smearing=None, nspinor=1, nspden=None): + ksampling=None, smearing=None, nspinor=1, nspden=None) -> ElectronBands: """ - Convert a pymatgen bandstructure object to an Abipy |ElectronBands| object. + Convert a pymatgen band structure object to an Abipy |ElectronBands| object. Args: - pmg_bands: pymatgen bandstructure object. + pmg_bands: pymatgen band structure object. nelect: Number of electrons in unit cell. weights: List of K-points weights (normalized to one, same order as pmg_bands.kpoints). This argument is optional but recommended when ``pmg_bands`` represents an IBZ sampling. @@ -1105,7 +1329,7 @@ def from_pymatgen(cls, pmg_bands, nelect, weights=None, has_timerev=True, .. warning:: - The Abipy bandstructure contains more information than the pymatgen object so + The Abipy band structure contains more information than the pymatgen object so the conversion is not complete, especially if you rely on the default values. Please read carefylly the docstring and the code and use the optional arguments to pass additional data required by AbiPy if you need a complete conversion. @@ -1133,12 +1357,50 @@ def from_pymatgen(cls, pmg_bands, nelect, weights=None, has_timerev=True, if nsppol == 2: abipy_eigens[1] = np.array(pmg_bands.bands[PmgSpin.down]).T.copy() + fermie = pmg_bands.efermi + #print("fermie energy from pymatgen bands:") + # Compute occupation factors. Note that pmg bands don't have occfact so # I have to compute them from the eigens assuming T=0) atol = 1e-4 - abipy_occfacts = np.where(abipy_eigens <= pmg_bands.efermi + atol, 1, 0) + abipy_occfacts = np.where(abipy_eigens <= fermie + atol, 1, 0) if nsppol == 1: abipy_occfacts *= 2 + if nelect is None: + if pmg_bands.is_metal(): + nelect = np.rint(abipy_occfacts.sum() / nkpt) + cprint(f"Using approximated method to get nelect in metals: {nelect}", color="yellow") + #raise ValueError("Nelect must be specified if metallic bands.") + + else: + # + # Get nelect from valence band maximum index. + # + # - "band_index": A dict with spin keys pointing to a list of the + # indices of the band containing the VBM (please note that you + # can have several bands sharing the VBM) {Spin.up:[], + # Spin.down:[]} + + d = pmg_bands.get_vbm() + + iv_up = max(d["band_index"][PmgSpin.up]) + homo_up = abipy_eigens[0, :, iv_up].max() + homo = homo_up + + nelect = (iv_up + 1) * 2 + #print("iv_up", iv_up, "nelect: ", nelect) + + if pmg_bands.is_spin_polarized: + vbands_down = d["band_index"][PmgSpin.down] + iv_down = None + if vbands_down: + iv_down = max(vbands_down) + homo_down = abipy_eigens[1, :, iv_down].max() + homo = max(homo_up, homo_down) + nelect = np.count_nonzero(abipy_eigens[:,0,:] <= homo) + + #cprint("Using approximated method to get nelect in metals: {nelect}", color="yellow") + reciprocal_lattice = pmg_bands.structure.lattice.reciprocal_lattice frac_coords = np.array([k.frac_coords for k in pmg_bands.kpoints]) @@ -1157,12 +1419,12 @@ def from_pymatgen(cls, pmg_bands, nelect, weights=None, has_timerev=True, for kpoint in abipy_kpoints: name = abipy_structure.findname_in_hsym_stars(kpoint) - return cls(abipy_structure, abipy_kpoints, abipy_eigens, pmg_bands.efermi, abipy_occfacts, + return cls(abipy_structure, abipy_kpoints, abipy_eigens, fermie, abipy_occfacts, nelect, nspinor, nspden, smearing=smearing) def to_pymatgen(self): """ - Return a pymatgen bandstructure object from an Abipy |ElectronBands| object. + Return a pymatgen band structure object from an Abipy |ElectronBands| object. """ from pymatgen.electronic_structure.bandstructure import BandStructure, BandStructureSymmLine assert np.all(self.nband_sk == self.nband_sk[0, 0]) @@ -1180,12 +1442,14 @@ def to_pymatgen(self): if self.kpoints.is_path: labels_dict = {k.name: k.frac_coords for k in self.kpoints if k.name is not None} return BandStructureSymmLine(self.kpoints.frac_coords, eigenvals, self.reciprocal_lattice, self.fermie, - labels_dict, coords_are_cartesian=False, structure=self.structure, projections=None) + labels_dict, coords_are_cartesian=False, + structure=self.structure, projections=None) else: return BandStructure(self.kpoints.frac_coords, eigenvals, self.reciprocal_lattice, self.fermie, - labels_dict=None, coords_are_cartesian=False, structure=self.structure, projections=None) + labels_dict=None, coords_are_cartesian=False, + structure=self.structure, projections=None) - def _electron_state(self, spin, kpoint, band): + def _electron_state(self, spin, kpoint, band) -> Electron: """ Build an instance of :class:`Electron` from the spin, kpoint and band index """ @@ -1200,7 +1464,7 @@ def _electron_state(self, spin, kpoint, band): ) @property - def lomos(self): + def lomos(self) -> list[Electron]: """lomo states for each spin channel as a list of nsppol :class:`Electron`.""" lomos = self.nsppol * [None] for spin in self.spins: @@ -1209,7 +1473,7 @@ def lomos(self): return lomos - def lomo_sk(self, spin, kpoint): + def lomo_sk(self, spin, kpoint) -> Electron: """ Returns the LOMO state for the given spin, kpoint. @@ -1219,7 +1483,7 @@ def lomo_sk(self, spin, kpoint): """ return self._electron_state(spin, kpoint, 0) - def homo_sk(self, spin, kpoint): + def homo_sk(self, spin, kpoint) -> Electron: """ Returns the HOMO state for the given spin, kpoint. @@ -1232,7 +1496,7 @@ def homo_sk(self, spin, kpoint): b = find_le(self.eigens[spin,k,:], self.fermie + self.pad_fermie) return self._electron_state(spin, k, b) - def lumo_sk(self, spin, kpoint): + def lumo_sk(self, spin, kpoint) -> Electron: """ Returns the LUMO state for the given spin, kpoint. @@ -1246,7 +1510,7 @@ def lumo_sk(self, spin, kpoint): return self._electron_state(spin, k, b) @property - def homos(self): + def homos(self) -> list[Electron]: """homo states for each spin channel as a list of nsppol :class:`Electron`.""" homos = self.nsppol * [None] @@ -1254,7 +1518,14 @@ def homos(self): blist, enes = [], [] for k in self.kidxs: # Find rightmost value less than or equal to fermie. - b = find_le(self.eigens[spin,k,:], self.fermie + self.pad_fermie) + # Well, it's possible to have all eigens > fermie for particular k-points e.g. Al. + try: + b = find_le(self.eigens[spin,k,:], self.fermie + self.pad_fermie) + except ValueError: + #print("fermie + pad:", self.fermie + self.pad_fermie) + #print("eigens[spin,k,:]", self.eigens[spin,k,:]) + continue + blist.append(b) enes.append(self.eigens[spin,k,b]) @@ -1267,7 +1538,7 @@ def homos(self): return homos @property - def lumos(self): + def lumos(self) -> list[Electron]: """ lumo states for each spin channel as a list of nsppol :class:`Electron`. """ @@ -1292,33 +1563,44 @@ def lumos(self): return lumos - #def is_metal(self, spin) - # """True if this spin channel is metallic.""" - # if not self.has_metallic_scheme: return False - # for k in self.kidxs: - # # Find leftmost value greater than x. - # b = find_gt(self.eigens[spin,k,:], self.fermie) - # if self.eigens[spin,k,b] < self.fermie + 0.01: - # return True - - #def is_semimetal(self, spin) - # """True if this spin channel is semi-metal.""" - # fun_gaps = self.fundamental_gaps + #def get_nkpts_in_ewin(self, e0: float, ewin_ev: float = 1e-4): + # """Return the number of k-points inside an energy window centered at e0 of width `ewin_ev`.""" + # count = 0 # for spin in self.spins: - # if abs(fun_gaps.ene) < TOL_EGAP + # for ik in self.kidxs: + # if any(abs(self.eigens[spin, ik] - e0) < tol_ev): count += 1 + # return count + + def get_edge_state(self, vbm_or_cbm, spin=None): + + if spin is None: + # Returm max/min over spins (if any) + if vbm_or_cbm == "vbm": + ord_states = sorted(self.homos, key=lambda state: state.eig) + return ord_states[-1] + if vbm_or_cbm == "cbm": + ord_states = sorted(self.lumos, key=lambda state: state.eig) + return ord_states[0] + + raise ValueError(f"Invalid value for vbm_or_cbm: {vbm_or_cbm}") + + else: + if vbm_or_cbm == "vbm": return self.homos[spin] + if vbm_or_cbm == "cbm": return self.lumos[spin] + raise ValueError(f"Invalid value for vbm_or_cbm: {vbm_or_cbm}") @property - def bandwidths(self): + def bandwidths(self) -> list[float]: """The bandwidth for each spin channel i.e. the energy difference (homo - lomo).""" return [self.homos[spin].eig - self.lomos[spin].eig for spin in self.spins] @property - def fundamental_gaps(self): + def fundamental_gaps(self) -> List[ElectronTransition]: """List of :class:`ElectronTransition` with info on the fundamental gaps for each spin.""" return [ElectronTransition(self.homos[spin], self.lumos[spin]) for spin in self.spins] @property - def direct_gaps(self): + def direct_gaps(self) -> List[ElectronTransition]: """List of `nsppol` :class:`ElectronTransition` with info on the direct gaps for each spin.""" dirgaps = self.nsppol * [None] for spin in self.spins: @@ -1329,7 +1611,7 @@ def direct_gaps(self): gaps.append(lumo_sk.eig - homo_sk.eig) # Find the index of the k-point where the direct gap is located. - # If there multiple k-points along the path, prefer the one in the center + # If there are multiple k-points along the path, prefer the one in the center # If not possible e.g. direct at G with G-X-L-G path avoid points on the right border of the graph gaps = np.array(gaps) kinds = np.where(gaps == gaps.min())[0] @@ -1341,29 +1623,41 @@ def direct_gaps(self): return dirgaps - def get_gaps_string(self, with_latex=True): + def get_gaps_string(self, with_latex=True, unicode=False) -> str: """ Return string with info about fundamental and direct gap (if not metallic scheme) Args: - with_latex: True to get latex symbols for the gap names else text. + with_latex: True to get latex symbols for the gap names and formula else text. + unicode: True to get unicode symbols for the formula else text. """ enough_bands = (self.mband > self.nspinor * self.nelect // 2) - dg_name, fg_name = "direct gap", "fundamental gap" + if with_latex: dg_name, fg_name = "$E^{dir}_{gap}$", "$E^{fund}_{gap}$" + formula = self.structure.latex_formula + else: + dg_name, fg_name = "direct gap", "fundamental gap" + formula = self.structure.formula - if enough_bands and not self.has_metallic_scheme: + if unicode: + import re + numl = re.findall(r'\d', formula) + for s in numl: + formula = formula.replace(s, SUBSCRIPT_UNICODE[s]) + + #if enough_bands and not self.has_metallic_scheme: + if enough_bands and not self.is_metal: if self.nsppol == 1: s = "%s: %s = %.2f, %s = %.2f (eV)" % ( - self.structure.latex_formula, + formula, dg_name, self.direct_gaps[0].energy, fg_name, self.fundamental_gaps[0].energy) else: dgs = [t.energy for t in self.direct_gaps] fgs = [t.energy for t in self.fundamental_gaps] - s = "%s: %s = %.2f (%.2f), %s = %.2f (%.2f) (eV)" % ( - self.structure.latex_formula, + s = "%s: %s = %.2f spin ↑ (%.2f spin ↓), %s = %.2f spin ↑ (%.2f spin ↓) (eV)" % ( + formula, dg_name, dgs[0], dgs[1], fg_name, fgs[0], fgs[1]) else: @@ -1371,7 +1665,7 @@ def get_gaps_string(self, with_latex=True): return s - def get_kpoints_and_band_range_for_edges(self): + def get_kpoints_and_band_range_for_edges(self) -> tuple: """ Find the reduced coordinates and the band indice associate to the band edges. Important: Call set_fermie_to_vbm() to set the Fermi level to the VBM before calling this method. @@ -1380,6 +1674,7 @@ def get_kpoints_and_band_range_for_edges(self): """ from collections import defaultdict k0_list, effmass_bands_f90 = [], [] + for spin in self.spins: d = defaultdict(lambda: [np.inf, -np.inf]) homo, lumo = self.homos[spin], self.lumos[spin] @@ -1398,13 +1693,16 @@ def get_kpoints_and_band_range_for_edges(self): k0_list.append(k) effmass_bands_f90.append(v) + # Set small values to zero. k0_list = np.reshape(k0_list, (-1, 3)) + k0_list = np.where(np.abs(k0_list) > 1e-12, k0_list, 0.0) + effmass_bands_f90 = np.reshape(effmass_bands_f90, (-1, 2)) #print("k0_list:\n", k0_list, "\neffmass_bands_f90:\n", effmass_bands_f90) return k0_list, effmass_bands_f90 - def to_string(self, title=None, with_structure=True, with_kpoints=False, verbose=0): + def to_string(self, title=None, with_structure=True, with_kpoints=False, verbose=0) -> str: """ Human-readable string with useful info such as band gaps, position of HOMO, LOMO... @@ -1428,40 +1726,51 @@ def to_string(self, title=None, with_structure=True, with_kpoints=False, verbose def indent(s): return " " + s.replace("\n", "\n ") - if not self.has_metallic_scheme: + #if not self.has_metallic_scheme: + if not self.is_metal: enough_bands = (self.mband > self.nspinor * self.nelect // 2) for spin in self.spins: if self.nsppol == 2: app(">>> For spin %s" % spin) if enough_bands: # This can fail so we have to catch the exception. try: - app("Direct gap:\n%s" % indent(str(self.direct_gaps[spin]))) - app("Fundamental gap:\n%s" % indent(str(self.fundamental_gaps[spin]))) + s = indent(self.direct_gaps[spin].to_string(verbose=verbose)) + app(f"Direct gap:\n{s}") + s = indent(self.fundamental_gaps[spin].to_string(verbose=verbose)) + app(f"Fundamental gap:\n{s}") except Exception as exc: app("WARNING: Cannot compute direct and fundamental gap.") if verbose: app("Exception:\n%s" % str(exc)) app("Bandwidth: %.3f (eV)" % self.bandwidths[spin]) if verbose: - app("Valence minimum located at:\n%s" % indent(str(self.lomos[spin]))) + lomo = self.lomos[spin] + s = indent(lomo.to_string(verbose=verbose)) + app(f"Valence minimum located at kpt index {lomo.kidx}:\n{s}") - app("Valence maximum located at:\n%s" % indent(str(self.homos[spin]))) + homo = self.homos[spin] + s = indent(homo.to_string(verbose=verbose)) + app(f"Valence maximum located at kpt index {homo.kidx}:\n{s}") try: # Cannot assume enough states for this! - app("Conduction minimum located at:\n%s" % indent(str(self.lumos[spin]))) - app("") + lumo = self.lumos[spin] + s = indent(lumo.to_string(verbose=verbose)) + app(f"Conduction minimum located at kpt index {lumo.kidx}:\n{s}\n") except Exception: pass - app("TIP: Call set_fermie_to_vbm() to set the Fermi level to the VBM if this is a non-magnetic semiconductor\n") + #app("TIP: Call set_fermie_to_vbm() to set the Fermi level to the VBM if this is a non-magnetic semiconductor\n") + + if not verbose: + app("TIP: Use `--verbose` to print k-point coordinates with more digits") if with_kpoints: app(self.kpoints.to_string(verbose=verbose, title="K-points")) return "\n".join(lines) - def new_with_irred_kpoints(self, prune_step=None): + def new_with_irred_kpoints(self, prune_step=None) -> ElectronBands: """ Return a new |ElectronBands| object in which only the irreducible k-points are kept. This method is mainly used to prepare the band structure interpolation as the interpolator @@ -1484,26 +1793,23 @@ def new_with_irred_kpoints(self, prune_step=None): new_kpoints = KpointList(self.structure.reciprocal_lattice, new_kcoords, weights=None, names=None, ksampling=self.kpoints.ksampling) - # Extract eigevanlues and occupation factors associated to irred k-points. + # Extract eigenvalues and occupation factors associated to irred k-points. new_eigens = self.eigens[:, irred_map, :].copy() new_occfacts = self.occfacts[:, irred_map, :].copy() return self.__class__(self.structure, new_kpoints, new_eigens, self.fermie, new_occfacts, - self.nelect, self.nspinor, self.nspden) + self.nelect, self.nspinor, self.nspden, smearing=self.smearing) - def spacing(self, axis=None): + def spacing(self, axis=None) -> StatParams: """ Compute the statistical parameters of the energy spacing, i.e. e[b+1] - e[b] - - Returns: - ``namedtuple`` with the statistical parameters in eV """ ediff = self.eigens[:, :, 1:] - self.eigens[:, :, :self.mband-1] return StatParams(mean=ediff.mean(axis=axis), stdev=ediff.std(axis=axis), min=ediff.min(axis=axis), max=ediff.max(axis=axis)) - def statdiff(self, other, axis=None, numpy_op=np.abs): + def statdiff(self, other, axis=None, numpy_op=np.abs) -> StatParams: """ Compare the eigenenergies of two bands and compute the statistical parameters: mean, standard deviation, min and max @@ -1539,7 +1845,7 @@ def plot_dos(method, step, width): width=ipw.FloatSlider(value=0.2, min=1e-6, max=1, step=0.05, description="Gaussian broadening (eV)"), ) - def get_edos(self, method="gaussian", step=0.1, width=0.2): + def get_edos(self, method: str="gaussian", step: float=0.05, width: float=0.1) -> ElectronDos: """ Compute the electronic DOS on a linear mesh. @@ -1570,7 +1876,7 @@ def get_edos(self, method="gaussian", step=0.1, width=0.2): dos[spin] += weight * gaussian(mesh, width, center=e) else: - raise NotImplementedError("Method %s is not supported" % method) + raise NotImplementedError(f"{method=} is not supported") # Use fermie from Abinit if we are not using metallic scheme for occopt. fermie = None @@ -1581,7 +1887,7 @@ def get_edos(self, method="gaussian", step=0.1, width=0.2): #print("ebands.fermie", self.fermie, "edos.fermie", edos.fermie) return edos - def compare_gauss_edos(self, widths, step=0.1): + def compare_gauss_edos(self, widths, step=0.1) -> ElectronDosPlotter: """ Compute the electronic DOS with the Gaussian method for different values of the broadening. Return plotter object. @@ -1595,14 +1901,13 @@ def compare_gauss_edos(self, widths, step=0.1): edos_plotter = ElectronDosPlotter() for width in widths: edos = self.get_edos(method="gaussian", step=0.1, width=width) - label = r"$\sigma = %s$ (eV)" % width - edos_plotter.add_edos(label, edos) + edos_plotter.add_edos(r"$\sigma = %s$ (eV)" % width, edos) return edos_plotter @add_fig_kwargs def plot_transitions(self, omega_ev, qpt=(0, 0, 0), atol_ev=0.1, atol_kdiff=1e-4, - ylims=None, ax=None, alpha=0.4, **kwargs): + ylims=None, ax=None, alpha=0.4, **kwargs) -> Figure: """ Plot energy bands with arrows signaling possible k --> k + q indipendent-particle transitions of energy ``omega_ev`` connecting occupied to empty states. @@ -1616,8 +1921,6 @@ def plot_transitions(self, omega_ev, qpt=(0, 0, 0), atol_ev=0.1, atol_kdiff=1e-4 or scalar e.g. `left`. If left (right) is None, default values are used alpha: The alpha blending value, between 0 (transparent) and 1 (opaque) ax: |matplotlib-Axes| or None if a new figure should be created. - - Returns: |matplotlib-Figure| """ ax, fig, plt = get_ax_fig_plt(ax=ax) e0 = self.get_e0("fermie") @@ -1658,12 +1961,13 @@ def plot_transitions(self, omega_ev, qpt=(0, 0, 0), atol_ev=0.1, atol_kdiff=1e-4 y = self.eigens[spin, ik, v_k] - e0 # http://matthiaseisen.com/matplotlib/shapes/arrow/ p = FancyArrowPatch((ik, y), (ik + dx, y + dy), - connectionstyle='arc3', mutation_scale=20, - alpha=alpha, **arrow_opts) + connectionstyle='arc3', mutation_scale=20, + alpha=alpha, **arrow_opts) ax.add_patch(p) return fig - def get_ejdos(self, spin, valence, conduction, method="gaussian", step=0.1, width=0.2, mesh=None): + def get_ejdos(self, spin, valence, conduction, + method="gaussian", step=0.1, width=0.2, mesh=None) -> Function1D: r""" Compute the join density of states at q == 0. @@ -1729,13 +2033,13 @@ def get_ejdos(self, spin, valence, conduction, method="gaussian", step=0.1, widt jdos += fact * gaussian(mesh, width, center=ec-ev) else: - raise NotImplementedError("Method %s is not supported" % str(method)) + raise NotImplementedError(f"{method=} is not supported") return Function1D(mesh, jdos) @add_fig_kwargs def plot_ejdosvc(self, vrange, crange, method="gaussian", step=0.1, width=0.2, colormap="jet", - cumulative=True, ax=None, alpha=0.7, fontsize=12, **kwargs): + cumulative=True, ax=None, alpha=0.7, fontsize=12, **kwargs) -> Figure: """ Plot the decomposition of the joint-density of States (JDOS). @@ -1749,7 +2053,7 @@ def plot_ejdosvc(self, vrange, crange, method="gaussian", step=0.1, width=0.2, c method: String defining the method. step: Energy step (eV) of the linear mesh. width: Standard deviation (eV) of the gaussian. - colormap: Have a look at the colormaps here and decide which one you like: + colormap: Color map. Have a look at the colormaps here and decide which one you like: http://matplotlib.sourceforge.net/examples/pylab_examples/show_colormaps.html cumulative: True for cumulative plots (default). ax: |matplotlib-Axes| or None if a new figure should be created. @@ -1782,15 +2086,15 @@ def plot_ejdosvc(self, vrange, crange, method="gaussian", step=0.1, width=0.2, c # Plot data for this spin. if cumulative: - cumulative = np.zeros(len(tot_jdos)) + acc = np.zeros(len(tot_jdos)) num_plots, i = len(jdos_vc), 0 for (v, c), jdos in jdos_vc.items(): label = r"$v=%s \rightarrow c=%s, \sigma=%s$" % (v, c, s) color = cmap(float(i) / num_plots) x, y = jdos.mesh, jdos.values - ax.plot(x, cumulative + y, lw=lw, label=label, color=color) - ax.fill_between(x, cumulative, cumulative + y, facecolor=color, alpha=alpha) - cumulative += jdos.values + ax.plot(x, acc + y, lw=lw, label=label, color=color) + ax.fill_between(x, acc, acc + y, facecolor=color, alpha=alpha) + acc += jdos.values i += 1 else: num_plots, i = len(jdos_vc), 0 @@ -1817,6 +2121,7 @@ def apply_scissors(self, scissors): """ if self.nsppol == 1 and not isinstance(scissors, Iterable): scissors = [scissors] + if self.nsppol == 2 and len(scissors) != 2: raise ValueError("Expecting two scissors operators for spin up and down") @@ -1852,9 +2157,9 @@ def apply_scissors(self, scissors): @add_fig_kwargs def plot(self, spin=None, band_range=None, klabels=None, e0="fermie", ax=None, ylims=None, - points=None, with_gaps=False, max_phfreq=None, fontsize=8, **kwargs): + points=None, with_gaps=False, max_phfreq=None, fontsize=8, **kwargs) -> Figure: r""" - Plot the electronic band structure. + Plot the electronic band structure with matplotlib. Args: spin: Spin index. None to plot both spins. @@ -1870,8 +2175,14 @@ def plot(self, spin=None, band_range=None, klabels=None, e0="fermie", ax=None, y ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used points: Marker object with the position and the size of the marker. - Used for plotting purpose e.g. QP energies, energy derivatives... + Used for plotting purpose e.g. QP energies, energy derivatives etc. with_gaps: True to add markers and arrows showing the fundamental and the direct gap. + IMPORTANT: If the gaps are now showed correctly in a non-magnetic semiconductor, + call `ebands.set_fermie_to_vbm()` to align the Fermi level at the top of the valence + bands before executing `ebands.plot(). + The Fermi energy stored in the object, indeed, comes from the GS calculation + that produced the DEN file. If the k-mesh used for the GS and the CBM is e.g. at Gamma, + the Fermi energy will be underestimated and a manual aligment is needed. max_phfreq: Max phonon frequency in eV to activate scatterplot showing possible phonon absorption/emission processes based on energy-conservation alone. All final states whose energy is within +- max_phfreq of the initial state are included. @@ -1888,13 +2199,9 @@ def plot(self, spin=None, band_range=None, klabels=None, e0="fermie", ax=None, y if band_range is None: band_list = list(range(self.mband)) else: - # This does not work in py2.7 because range is not a class - #if not isinstance(band_range, range): - # band_list = list(band_range) band_list = list(range(band_range[0], band_range[1], 1)) e0 = self.get_e0(e0) - ax, fig, plt = get_ax_fig_plt(ax=ax) # Decorate the axis (e.g add ticks and labels). @@ -1904,7 +2211,7 @@ def plot(self, spin=None, band_range=None, klabels=None, e0="fermie", ax=None, y # Plot the band energies. for spin in spin_list: opts = {"color": "black", "linewidth": 2.0} if spin == 0 else \ - {"color": "red", "linewidth": 2.0} + {"color": "red", "linewidth": 2.0} # This to pass kwargs to plot_ax and avoid both lw and linewidth in opts if "lw" in kwargs: opts.pop("linewidth") opts.update(kwargs) @@ -1914,7 +2221,7 @@ def plot(self, spin=None, band_range=None, klabels=None, e0="fermie", ax=None, y self.plot_ax(ax, e0, spin=spin, band=band, **opts) if points is not None: - ax.scatter(points.x, np.array(points.y) - e0, s=np.abs(points.s), marker="o", c="b") + ax.scatter(points.x, np.array(points.y) - e0, s=np.abs(points.s), **points.scatter_kwargs) if with_gaps and (self.mband > self.nspinor * self.nelect // 2): # Show fundamental and direct gaps for each spin. @@ -1985,99 +2292,363 @@ def plot(self, spin=None, band_range=None, klabels=None, e0="fermie", ax=None, y return fig - @add_fig_kwargs - def plot_scatter3d(self, band, spin=0, e0="fermie", colormap="jet", ax=None, **kwargs): + @add_plotly_fig_kwargs + def plotly(self, spin=None, band_range=None, klabels=None, e0="fermie", fig=None, rcd=None, ylims=None, + points=None, with_gaps=False, max_phfreq=None, fontsize=12, **kwargs): r""" - Use matplotlib ``scatter3D`` to produce a scatter plot of the eigenvalues in 3D. - The color of the points gives the energy of the state wrt to the Fermi level. + Plot the electronic band structure with plotly. Args: - band: Band index - spin: Spin index. + spin: Spin index. None to plot both spins. + band_range: Tuple specifying the minimum and maximum band to plot (default: all bands are plotted) + klabels: dictionary whose keys are tuple with the reduced + coordinates of the k-points. The values are the labels. e.g. + ``klabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0):"L"}``. e0: Option used to define the zero of energy in the band structure plot. Possible values: - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). - - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV - - None: Don't shift energies, equivalent to ``e0 = 0`` - colormap: Have a look at the colormaps here and decide which one you like: - - ax: matplotlib :class:`Axes3D` or None if a new figure should be created. + - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to e0=0 + fig: plotly figure or None if a new figure should be created. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` + points: Marker object with the position and the size of the marker. + Used for plotting purpose e.g. QP energies, energy derivatives. + with_gaps: True to add markers and arrows showing the fundamental and the direct gap. + IMPORTANT: If the gaps are now showed correctly in a non-magnetic semiconductor, + call `ebands.set_fermie_to_vbm()` to align the Fermi level at the top of the valence + bands before executing `ebands.plot(). + The Fermi energy stored in the object, indeed, comes from the GS calculation + that produced the DEN file. If the k-mesh used for the GS and the CBM is e.g. at Gamma, + the Fermi energy will be underestimated and a manual aligment is needed. + max_phfreq: Max phonon frequency in eV to activate scatterplot showing + possible phonon absorption/emission processes based on energy-conservation alone. + All final states whose energy is within +- max_phfreq of the initial state are included. + By default, the four electronic states defining the fundamental and the direct gaps + are considered as initial state (not available for metals). + fontsize: fontsize for legends and titles + kwargs: Passed to fig.add_scatter method. + + Returns: |plotly.graph_objects.Figure| """ - kcart_coords = self.kpoints.get_cart_coords() - c = self.eigens[spin, :, band] - self.get_e0(e0) + # Select spins + spin_list = self.spins if spin is None else [spin] - ax, fig, plt = get_ax3d_fig_plt(ax) - cmap = plt.get_cmap(colormap) - #ax.scatter3D(xs, ys, zs, s=6, alpha=0.8, marker=',', facecolors=cmap(N), lw=0) - p = ax.scatter3D(kcart_coords[:, 0], kcart_coords[:, 1], zs=kcart_coords[:, 2], zdir='z', - s=20, c=c, depthshade=True, cmap=cmap) + # Select the band range. + if band_range is None: + band_list = list(range(self.mband)) + else: + band_list = list(range(band_range[0], band_range[1], 1)) - #self.structure.plot_bz(ax=ax, pmg_path=False, with_labels=False, show=False, linewidth=0) - from pymatgen.electronic_structure.plotter import plot_wigner_seitz - plot_wigner_seitz(self.structure.reciprocal_lattice, ax=ax, linewidth=1) - ax.set_xlabel("$K_x$") - ax.set_ylabel("$K_y$") - ax.set_zlabel("$K_z$") - fig.colorbar(p) + e0 = self.get_e0(e0) + fig, _ = get_fig_plotly(fig=fig) + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax - #ax.set_title(structure.composition.formula) - ax.set_axis_off() + # Decorate the axis (e.g add ticks and labels). + self.decorate_plotly(fig, klabels=klabels, iax=iax) + plotly_set_lims(fig, ylims, "y") - return fig + # Plot the band energies. + for spin in spin_list: + lw = kwargs.pop("lw", 2.0) + line_opts = {"color": "black", "width": lw} if spin == 0 else {"color": "red", "width": lw} - def decorate_ax(self, ax, **kwargs): - """ - Add k-labels, title and unit name to axis ax. + for ib, band in enumerate(band_list): + if ib != 0: kwargs.pop("label", None) + self.plotly_traces(fig, e0, rcd=rcd, spin=spin, band=band, line_opts=line_opts, **kwargs) - Args: - title: - fontsize - klabels: - klabel_size: - """ - title = kwargs.pop("title", None) - fontsize = kwargs.pop("fontsize", 12) - if title is not None: ax.set_title(title, fontsize=fontsize) + if points is not None: + fig.add_scatter(x=points.x, y=np.array(points.y) - e0, mode='markers', showlegend=False, row=ply_row, + col=ply_col, marker=dict(color='blue', size=np.abs(points.s), opacity=0.6, line_width=0)) - ax.grid(True) - ax.set_ylabel("Energy (eV)") - ax.set_xlabel("Wave Vector") + if with_gaps and (self.mband > self.nspinor * self.nelect // 2): + # Show fundamental and direct gaps for each spin. + from plotly.figure_factory import create_quiver + for spin in self.spins: + f_gap = self.fundamental_gaps[spin] + d_gap = self.direct_gaps[spin] + # Need arrows only if fundamental and direct gaps for this spin are different. + need_arrows = f_gap != d_gap - # Set ticks and labels. - klabels = kwargs.pop("klabels", None) - ticks, labels = self._make_ticks_and_labels(klabels) - if ticks: - # Don't show label if previous k-point is the same. - for il in range(1, len(labels)): - if labels[il] == labels[il-1]: labels[il] = "" - #print("ticks", ticks, "\nlabels", labels) - ax.set_xticks(ticks, minor=False) - ax.set_xticklabels(labels, fontdict=None, minor=False, size=kwargs.pop("klabel_size", "large")) - #print("ticks", len(ticks), ticks) - ax.set_xlim(ticks[0], ticks[-1]) + arrow_opts = {"color": "gray"} if spin == 0 else {"color": "orange"} + scatter_opts = {"color": "blue"} if spin == 0 else {"color": "green"} + scatter_opts.update(opacity=0.9, size=12, line_width=2) - def get_e0(self, e0): - """ - e0: Option used to define the zero of energy in the band structure plot. Possible values: - - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). - - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV - - None: Don't shift energies, equivalent to ``e0 = 0``. - """ - if e0 is None: - return 0.0 - elif is_string(e0): - if e0 == "fermie": - return self.fermie - elif e0 == "None": - return 0.0 - else: - raise ValueError("Wrong value for e0: %s" % e0) - else: - # Assume number + # Fundamental gap. + mgap = -1 + for ik1, ik2 in f_gap.all_kinds: + posA = (ik1, f_gap.in_state.eig - e0) + posB = (ik2, f_gap.out_state.eig - e0) + mgap = max(mgap, posA[1], posB[1]) + fig.add_scatter(x=[posA[0], posB[0]], y=[posA[1], posB[1]], mode='markers', name='', + showlegend=False, marker=scatter_opts, row=ply_row, col=ply_col) + if need_arrows: + figcq = create_quiver(x=[posA[0]], y=[posA[1]], u=[posB[0]-posA[0]], v=[posB[1]-posA[1]], + name='', scale=1, arrow_scale=0.2, showlegend=False, hoverinfo='none', + marker=arrow_opts, line=dict(width=2)) + fig.add_trace(figcq.data[-1], row=ply_row, col=ply_col) + + if d_gap != f_gap: + # Direct gap. + for ik1, ik2 in d_gap.all_kinds: + posA = (ik1, d_gap.in_state.eig - e0) + posB = (ik2, d_gap.out_state.eig - e0) + mgap = max(mgap, posA[1], posB[1]) + fig.add_scatter(x=[posA[0],posB[0]], y=[posA[1],posB[1]], mode='markers', name='', + showlegend=False, marker=scatter_opts, row=ply_row, col=ply_col) + if need_arrows: + figcq = create_quiver(x=[posA[0]], y=[posA[1]], u=[posB[0]-posA[0]], v=[posB[1]-posA[1]], + name='', scale=1, arrow_scale=0.2, showlegend=False, hoverinfo='none', + marker=arrow_opts, line=dict(width=2)) + fig.add_trace(figcq.data[-1], row=ply_row, col=ply_col) + + # Try to set nice limits if not given by user. + if ylims is None: + plotly_set_lims(fig, (-mgap - 5, +mgap + 5), "y") + + gaps_string = self.get_gaps_string(with_latex=False, unicode=True) + if gaps_string: + if fig.layout.annotations == (): + fig.layout.annotations = [dict(text=gaps_string, font_size=fontsize, x=0, xref='paper', + xanchor='left', y=1, yref='paper', yanchor='bottom', showarrow=False)] + else: + fig.layout.annotations[iax-1].text = gaps_string + fig.layout.annotations[iax-1].font.size = fontsize + + if max_phfreq is not None and (self.mband > self.nspinor * self.nelect // 2): + # Add markers showing phonon absorption/emission processes. + for spin in self.spins: + #scatter_opts = {"color": "steelblue"} if spin == 0 else {"color": "teal"} + scatter_opts = dict(opacity=0.4, size=8) + items = (["fundamental_gaps", "direct_gaps"], ["in_state", "out_state"]) + items = list(enumerate(itertools.product(*items))) + for i, (gap_name, state_name) in items: + # Use getattr to extract gaps, equivalent to: + # gap = self.fundamental_gaps[spin] + # e_start = gap.out_state.eig + gap = getattr(self, gap_name)[spin] + e_start = getattr(gap, state_name).eig + scatter_opts["color"] = i / len(items) + scatter_opts["colorscale"] = "dense" if spin == 0 else "Burgyl" + + for band in range(self.mband): + eks = self.eigens[spin, :, band] + where = np.where(np.abs(e_start - eks) <= max_phfreq)[0] + if not np.any(where): continue + fig.add_scatter(x=where, y=eks[where] - e0, mode='markers', + marker=scatter_opts, showlegend=False, row=ply_row, col=ply_col) + + return fig + + @add_fig_kwargs + def plot_split(self, ylims_list: list, + hspace: float = 0.1, ratio: float = 0.5, **kwargs) -> Figure: + """ + Plot electronic bands with broken y-axis. + Based on: https://matplotlib.org/stable/gallery/subplots_axes_and_figures/broken_axis.html + + Args: + ylims_list: List of tuples. Each tuple defines the y-limits for the subplots. + hspace: space between Axes. + ratio: proportion of vertical to horizontal extent of the slanted line. + kwargs: keyword arguments passed to self.plot method. + """ + import matplotlib.pyplot as plt + num_axis = len(ylims_list) + + fig, ax_list = plt.subplots(num_axis, 1, sharex=True) + ax_list = np.flip(ax_list) + # Adjust space between Axes + fig.subplots_adjust(hspace=hspace) + + for ix, (ax, ylims) in enumerate(zip(ax_list, ylims_list)): + # Plot the same data on all Axes + self.plot(ax=ax, show=False, **kwargs) + # Zoom-in / limit the view to different portions of the data. + ax.set_ylim(ylims[0], ylims[1]) + + # Hide the spines between axis. + if ix == 0 or (num_axis > 2 and ix != num_axis - 1): + ax.spines.top.set_visible(False) + ax.xaxis.tick_bottom() + set_visible(ax, False, *["title"]) + + if ix == num_axis - 1 or (num_axis > 2 and ix != num_axis - 1): + ax.spines.bottom.set_visible(False) + ax.xaxis.tick_top() + ax.tick_params(labeltop=False) # don't put tick labels at the top + set_visible(ax, False, *["legend", "xlabel", "yabel"]) + + # Now, let's turn towards the cut-out slanted lines. + # We create line objects in axes coordinates, in which (0,0), (0,1), + # (1,0), and (1,1) are the four corners of the Axes. + # The slanted lines themselves are markers at those locations, such that the + # lines keep their angle and position, independent of the Axes size or scale + # Finally, we need to disable clipping. + plt_kws = dict(marker=[(-1, -ratio), (1, ratio)], markersize=12, + linestyle="none", color='k', mec='k', mew=1, clip_on=False) + + for ix, ax in enumerate(ax_list): + if ix == 0: + ax.plot([0, 1], [1, 1], transform=ax.transAxes, **plt_kws) + else: + ax.plot([0, 1], [0, 0], transform=ax.transAxes, **plt_kws) + + return fig + + # TODO: Is this really useful? + @add_fig_kwargs + def plot_scatter3d(self, band, spin=0, e0="fermie", colormap="jet", ax=None, **kwargs) -> Figure: + r""" + Use matplotlib ``scatter3D`` to produce a scatter plot of the eigenvalues in 3D. + The color of the points gives the energy of the state wrt to the Fermi level. + + Args: + band: Band index + spin: Spin index. + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0``. + colormap: Color map. Have a look at the colormaps here and decide which one you like: + + ax: matplotlib :class:`Axes3D` or None if a new figure should be created. + """ + kcart_coords = self.kpoints.get_cart_coords() + c = self.eigens[spin, :, band] - self.get_e0(e0) + + ax, fig, plt = get_ax3d_fig_plt(ax) + cmap = plt.get_cmap(colormap) + #ax.scatter3D(xs, ys, zs, s=6, alpha=0.8, marker=',', facecolors=cmap(N), lw=0) + p = ax.scatter3D(kcart_coords[:, 0], kcart_coords[:, 1], zs=kcart_coords[:, 2], zdir='z', + s=20, c=c, depthshade=True, cmap=cmap) + + #self.structure.plot_bz(ax=ax, pmg_path=False, with_labels=False, show=False, linewidth=0) + from pymatgen.electronic_structure.plotter import plot_wigner_seitz + plot_wigner_seitz(self.structure.reciprocal_lattice, ax=ax, linewidth=1) + ax.set_xlabel("$K_x$") + ax.set_ylabel("$K_y$") + ax.set_zlabel("$K_z$") + fig.colorbar(p) + + #ax.set_title(structure.composition.formula) + ax.set_axis_off() + + return fig + + def decorate_ax(self, ax, **kwargs) -> None: + """ + Add k-labels, title and unit name to axis ax. + + Args: + title: + fontsize + klabels: + klabel_size: + """ + title = kwargs.pop("title", None) + fontsize = kwargs.pop("fontsize", 12) + if title is not None: ax.set_title(title, fontsize=fontsize) + + ax.grid(True) + ax.set_ylabel("Energy (eV)") + ax.set_xlabel("Wave Vector") + + # Set ticks and labels. + klabels = kwargs.pop("klabels", None) + ticks, labels = self._make_ticks_and_labels(klabels) + if ticks: + # Don't show label if previous k-point is the same. + for il in range(1, len(labels)): + if labels[il] == labels[il-1]: labels[il] = "" + #print("ticks", ticks, "\nlabels", labels) + ax.set_xticks(ticks, minor=False) + ax.set_xticklabels(labels, fontdict=None, minor=False, size=kwargs.pop("klabel_size", "large")) + #print("ticks", len(ticks), ticks) + ax.set_xlim(ticks[0], ticks[-1]) + + def decorate_plotly(self, fig, **kwargs) -> None: + """ + Add q-labels and unit name to figure ``fig``. + Use units="" to add k-labels without unit name. + + Args: + klabels: + klabel_size: + iax: An int, use iax=n to decorate the nth axis when the fig has subplots. + """ + iax = kwargs.pop("iax", 1) + xaxis = 'xaxis%u' % iax + + fig.layout[xaxis].title.text = "Wave Vector" + fig.layout['yaxis%u' % iax].title.text = "Energy (eV)" + + # Set ticks and labels. + klabels = kwargs.pop("klabels", None) + ticks, labels = self._make_ticks_and_labels(klabels) + if ticks: + labels = plotly_klabels(labels) + fig.layout[xaxis].tickvals = ticks + fig.layout[xaxis].ticktext = labels + fig.layout[xaxis].tickfont.size = kwargs.pop("klabel_size", 16) + fig.layout[xaxis].range = (ticks[0], ticks[-1]) + + def add_fundgap_span(self, ax_or_axlist, spin, span_dir="v", fontsize=8, **kwargs) -> None: + """ + Show gap as filled area. + + Args: + ax_or_axlist: + spin: + spand_dir: + """ + ks_lumo = self.lumos[spin] + ks_homo = self.homos[spin] + + kwargs.setdefault("alpha", 0.5) + kwargs.setdefault("color", "grey") + + if duck.is_listlike(ax_or_axlist): + # recursion + for ax in ax_or_axlist: + self.add_fundgap_span(ax, spin, span_dir=span_dir, **kwargs) + else: + ax = ax_or_axlist + f = getattr(ax, "axvspan" if span_dir == "v" else "axhspan") + rectangle = f(ks_homo.eig, ks_lumo.eig, **kwargs) + #xy = rectangle.get_xy() + #rx, ry = xy[0,:] + #cx = rx + xy[1,0]/2 + #cy = ry + xy[1,1]/2 + #ax.annotate("KS gap", (cx, cy), color='black', weight='bold', + # fontsize=4, ha='center', va='center') + #(x0, y0), (x1, y1) = rectangle.get_path()[0].get_extents().get_points() + #ax.text((x0 + x1) / 2, (y0 + y1) / 2, "KS band gap", + # ha="center", va="center", fontsize=fontsize, color="red") + + def get_e0(self, e0): + """ + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0``. + """ + if e0 is None: + return 0.0 + elif is_string(e0): + if e0 == "fermie": + return self.fermie + elif e0 == "None": + return 0.0 + else: + raise ValueError("Wrong value for e0: %s" % e0) + else: + # Assume number return e0 - def plot_ax(self, ax, e0, spin=None, band=None, **kwargs): + def plot_ax(self, ax, e0, spin=None, band=None, **kwargs) -> list: """ - Helper function to plot the energies for (spin, band) on the axis ax. + Helper function to plot the energies for (spin, band) on the axis ax with matplotlib. Args: ax: |matplotlib-Axes|. @@ -2104,8 +2675,8 @@ def plot_ax(self, ax, e0, spin=None, band=None, **kwargs): for band in band_range: yy = self.eigens[spin, :, band] - e0 - # Set label only at the first iteration lines.extend(ax.plot(xx, yy, label=label, **kwargs)) + # Set label only at the first iteration label = None if with_linewidths: @@ -2116,6 +2687,56 @@ def plot_ax(self, ax, e0, spin=None, band=None, **kwargs): return lines + def plotly_traces(self, fig, e0, rcd=None, spin=None, band=None, showlegend=False, line_opts=None, **kwargs): + """ + Helper function to plot the energies for (spin, band) on figure ``fig`` with plotly. + + Args: + fig: |plotly.graph_objects.Figure|. + e0: Option used to define the zero of energy in the band structure plot. + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. + spin: Spin index. If None, all spins are plotted. + band: Band index, If None, all bands are plotted. + showlegend: Determines whether or not an item corresponding to this trace is shown in the legend. + line_opts: Dict of linestyle options passed to |plotly.graph_objects.scatter.Line| + kwargs: Passed to fig.add_scatter method. + """ + spin_range = range(self.nsppol) if spin is None else [spin] + band_range = range(self.mband) if band is None else [band] + + label = kwargs.pop("label", '') + # Handle linewidths + with_linewidths = kwargs.pop("with_linewidths", True) and self.has_linewidths + if with_linewidths: + lw_opts = kwargs.pop("lw_opts", dict(opacity=0.6)) + lw_fact = lw_opts.pop("fact", 2.0) + + marker_opts = kwargs.pop("marker", None) + xx = np.arange(self.nkpt) + e0 = self.get_e0(e0) + for spin in spin_range: + for band in band_range: + yy = self.eigens[spin, :, band] - e0 + + # Set label only at the first iteration + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col = rcd.ply_row, rcd.ply_col + if marker_opts: + fig.add_scatter(x=xx, y=yy, mode="lines+markers", name=label, showlegend=showlegend, line=line_opts, + marker=marker_opts, legendgroup=label, **kwargs, row=ply_row, col=ply_col) + else: + fig.add_scatter(x=xx, y=yy, mode="lines", name=label, showlegend=showlegend, line=line_opts, + legendgroup=label, **kwargs, row=ply_row, col=ply_col) + showlegend = False + + if with_linewidths: + w = self.linewidths[spin, :, band] * lw_fact / 2 + lw_opts.update({'color': "black" if spin == 0 else "red"}) + fig.add_scatter(x=xx, y=yy - w, mode='lines', line=lw_opts, name='', + showlegend=False, row=ply_row, col=ply_col) + fig.add_scatter(x=xx, y=yy + w, mode='lines', line=lw_opts, name='', + showlegend=False, fill='tonexty', row=ply_row, col=ply_col) + def _make_ticks_and_labels(self, klabels): """Return ticks and labels from the mapping qlabels.""" if klabels is not None: @@ -2134,15 +2755,16 @@ def _make_ticks_and_labels(self, klabels): @add_fig_kwargs def plot_with_edos(self, edos, klabels=None, ax_list=None, e0="fermie", points=None, - with_gaps=False, max_phfreq=None, ylims=None, width_ratios=(2, 1), **kwargs): + with_gaps=False, max_phfreq=None, ylims=None, + width_ratios=(2, 1), **kwargs) -> Figure: r""" - Plot the band structure and the DOS. + Plot the band structure and the DOS with matplotlib. Args: edos: An instance of |ElectronDos|. klabels: dictionary whose keys are tuple with the reduced coordinates of the k-points. The values are the labels. e.g. ``klabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. - ax_list: The axes for the bandstructure plot and the DOS plot. If ax_list is None, a new figure + ax_list: The axes for the band structure plot and the DOS plot. If ax_list is None, a new figure is created and the two axes are automatically generated. ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used @@ -2157,7 +2779,6 @@ def plot_with_edos(self, edos, klabels=None, ax_list=None, e0="fermie", points=N * ``edos_fermie``: Use the Fermi energy computed from the DOS to define the zero of energy in both subplots. * Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV * None: Don't shift energies, equivalent to ``e0 = 0`` - points: Marker object with the position and the size of the marker. Used for plotting purpose e.g. QP energies, energy derivatives... with_gaps: True to add markers and arrows showing the fundamental and the direct gap. @@ -2209,11 +2830,79 @@ def plot_with_edos(self, edos, klabels=None, ax_list=None, e0="fermie", points=N return fig + @add_plotly_fig_kwargs + def plotly_with_edos(self, edos, klabels=None, fig=None, band_rcd=None, dos_rcd=None, e0="fermie", points=None, + with_gaps=False, max_phfreq=None, ylims=None, width_ratios=(2, 1), **kwargs): + r""" + Plot the band structure and the DOS with plotly. + + Args: + edos: An instance of |ElectronDos|. + klabels: dictionary whose keys are tuple with the reduced coordinates of the k-points. + The values are the labels. e.g. ``klabels = {(0.0,0.0,0.0): "$\Gamma$", (0.5,0,0): "L"}``. + fig: The |plotly.graph_objects.Figure| with two distinct plots for the band structure plot and the DOS plot. + If fig is None, a new figure is created. + band_rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) + of the band subplot in the grid. + dos_rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the dos subplot in the grid. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` + e0: Option used to define the zero of energy in the band structure plot. Possible values:: + + * ``fermie``: shift all eigenvalues and the DOS to have zero energy at the Fermi energy. + Note that, by default, the Fermi energy is taken from the band structure object + i.e. the Fermi energy computed at the end of the SCF file that produced the density. + This should be ok in semiconductors. In metals, however, a better value of the Fermi energy + can be obtained from the DOS provided that the k-sampling for the DOS is much denser than + the one used to compute the density. See ``edos_fermie``. + * ``edos_fermie``: Use the Fermi energy computed from the DOS to define the zero of energy in both subplots. + * Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + * None: Don't shift energies, equivalent to ``e0 = 0`` + points: Marker object with the position and the size of the marker. + Used for plotting purpose e.g. QP energies, energy derivatives... + with_gaps: True to add markers and arrows showing the fundamental and the direct gap. + max_phfreq: Max phonon frequency in eV to activate scatterplot showing + possible phonon absorption/emission processes based on energy-conservation alone. + All final states whose energy is within +- max_phfreq of the initial state are included. + By default, the four electronic states defining the fundamental and the direct gaps + are considered as initial state (not available for metals). + width_ratios: Defines the ratio between the band structure plot and the dos plot. + + Return: |plotly.graph_objects.Figure| + """ + if fig is None: + # Build fig. + fig, _ = get_figs_plotly(nrows=1, ncols=2, sharex=False, sharey=True, + horizontal_spacing=0.02, column_widths=width_ratios) + band_rcd = PlotlyRowColDesc(0, 0, 1, 2) + dos_rcd = PlotlyRowColDesc(0, 1, 1, 2) + + # Define the zero of energy. + e0 = self.get_e0(e0) if e0 != "edos_fermie" else edos.fermie + #if not kwargs: kwargs = {"color": "black", "linewidth": 2.0} + + # Plot the band structure + self.plotly(e0=e0, fig=fig, rcd=band_rcd, ylims=ylims, klabels=klabels, points=points, + with_gaps=with_gaps, max_phfreq=max_phfreq, show=False) + + # Plot the DOS + if self.nsppol == 1: + opts = {"color": "black", "width": 2.0} + edos.plotly_traces(fig, e0, exchange_xy=True, rcd=dos_rcd, line_opts=opts) + else: + for spin in self.spins: + opts = {"color": "black", "width": 2.0} if spin == 0 else \ + {"color": "red", "width": 2.0} + edos.plotly_traces(fig, e0, spin=spin, exchange_xy=True, rcd=dos_rcd, line_opts=opts) + + plotly_set_lims(fig, ylims, "y") + + return fig + @add_fig_kwargs def plot_lws_vs_e0(self, ax=None, e0="fermie", function=lambda x: x, exchange_xy=False, - xlims=None, ylims=None, fontsize=12, **kwargs): + xlims=None, ylims=None, fontsize=12, **kwargs) -> Figure: r""" - Plot electronic linewidths vs KS energy. + Plot electronic linewidths vs KS energy with matplotlib. Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -2242,8 +2931,6 @@ def plot_lws_vs_e0(self, ax=None, e0="fermie", function=lambda x: x, exchange_xy e0mesh = np.array(e0mesh) - e0 kw_linestyle = kwargs.pop("linestyle", "o") - #kw_lw = kwargs.pop("lw", 1) - #kw_lw = kwargs.pop("markersize", 5) kw_color = kwargs.pop("color", "red") kw_label = kwargs.pop("label", None) @@ -2264,7 +2951,7 @@ def plot_lws_vs_e0(self, ax=None, e0="fermie", function=lambda x: x, exchange_xy return fig - def to_xmgrace(self, filepath): + def to_xmgrace(self, filepath: str) -> None: """ Write xmgrace_ file with band structure energies and labels for high-symmetry k-points. @@ -2343,20 +3030,171 @@ def w(s): if not is_stream: f.close() + @memoized_method(maxsize=5, typed=False) + def get_ifermi_dense_bs(self, interpolation_factor, with_velocities, nworkers=1): + """ + Use ifermi and BoltzTraP2 to interpolate KS energies (assumes ebands in the IBZ). + + Args: + interpolation_factor: + with_velocities: Interpolate velocities in the full BZ. + + .. note:: + + Store results in per-instance cache via memoized_method. + """ + err_msg = self.isnot_ibz_sampling() + if err_msg: + raise ValueError(err_msg) + + try: + from ifermi.interpolate import FourierInterpolator + except ImportError: + raise ImportError("Cannot import ifermi package.\nPlease install the package " + + "following the instructions given at: https://github.com/fermisurfaces/IFermi") + + # interpolate the energies onto a dense k-point mesh + bs = self.to_pymatgen() + interpolator = FourierInterpolator(bs) + + #nworkers = 1 # Use 1 worker because it does not seem to scale well on my Mac. + with Timer(footer=f"BoltzTraP2 interpolation with {interpolation_factor=} and {with_velocities=}"): + if with_velocities: + dense_bs, velocities = interpolator.interpolate_bands(interpolation_factor=interpolation_factor, + return_velocities=with_velocities, + nworkers=nworkers) + else: + dense_bs = interpolator.interpolate_bands(interpolation_factor=interpolation_factor, + return_velocities=with_velocities, + nworkers=nworkers) + velocities = None + + return dict2namedtuple(dense_bs=dense_bs, velocities=velocities, interpolator=interpolator) + + def get_ifermi_fs(self, interpolation_factor=8, mu=0.0, eref="fermie", wigner_seitz=True, + calculate_dimensionality=False, with_velocities=False, nworkers=1): + """ + Use ifermi package to visualize the (interpolated) Fermi surface. + Requires netcdf file with energies in the IBZ. + See also + + Args: + interpolation_factor: The factor by which the band structure will be interpolated. + mu: Energy offset from the reference energy determing by `eref`. + eref: Defines the energy reference. Possible values: `fermie`, `cbm`, `vbm`. + The energy of the isosurface is given by: `eref` + `mu`. + wigner_seitz: Controls whether the cell is the Wigner-Seitz cell + or the reciprocal unit cell parallelepiped. + calculate_dimensionality: + with_velocities: Generate the Fermi surface and calculate the group velocity + at the center of each triangular face. + + Returns: + + example:: + + r = ebands.get_ifermi_fs() + r.fs_plotter.get_plot(plot_type="plotly").show() + """ + r = self.get_ifermi_dense_bs(interpolation_factor, with_velocities, nworkers=nworkers) + + from ifermi.surface import FermiSurface + from ifermi.plot import FermiSurfacePlotter #, save_plot, show_plot FermiSlicePlotter, + + eref = eref.lower() + if eref == "fermie": + edge_state = None + abs_isoenergy = self.fermie + + elif eref in ("vbm", "cbm"): + + if eref == "vbm" and mu >= 0.0: + cprint("WARNING: when eref == 'vbm', mu is expected to be < 0", color="red") + if eref == "cbm" and mu <= 0.0: + cprint("WARNING: when eref == 'cbm', mu is expected to be > 0", color="red") + + edge_state = self.get_edge_state(eref) + mu = -self.fermie + edge_state.eig + mu + abs_isoenergy = edge_state.eig + mu + + else: + raise ValueError(f"Invalid value for eref: {eref}") + + # generate the Fermi surface + with Timer(footer=f"Building Fermi surface with {wigner_seitz=}, {eref=} and {mu=} (eV)"): + from ifermi.kpoints import kpoints_from_bandstructure + dense_kpoints = kpoints_from_bandstructure(r.dense_bs) if r.velocities else None + + fs = FermiSurface.from_band_structure( + r.dense_bs, mu=mu, wigner_seitz=wigner_seitz, + calculate_dimensionality=False, + property_data=r.velocities, + property_kpoints=dense_kpoints, + ) + + fs_plotter = FermiSurfacePlotter(fs) + + return dict2namedtuple(fs=fs, fs_plotter=fs_plotter, dense_bs=r.dense_bs, velocities=r.velocities, + interpolator=r.interpolator, edge_state=edge_state, abs_isoenergy=abs_isoenergy) + + #def get_ifermi_slices(self, interpolation_factor=5, mu=0, eref="cbm", wigner_seitz=True, + # with_velocities=False): + + # r = self.get_ifermi_fs(interpolation_factor=interpolation_factor, mu=mu, eref=eref, + # wigner_seitz=wigner_seitz, with_velocities=with_velocities) + + # #plane_normals = [(1, 0, 0), ] + # plane_normals = [(1, 0, 0), (0, 1, 0), (0, 0, 1)] + # #plane_normals += [(1, 1, 0), (0, 1, 1), (1, 1, 1)] + # #plane_normals = [(1, 1, 1),] + # print("edge_state:", r.edge_state.kpoint) + # distance = r.edge_state.kpoint.norm / units.bohr_to_ang / (2 * np.pi) + # #distance = r.edge_state.kpoint.norm / units.bohr_to_ang + + # print("matrix1", r.edge_state.kpoint.lattice.matrix) + # print("matrix2", r.fs.structure.lattice.reciprocal_lattice.matrix) + # print("distance:", distance) + # #distance = 0 + # print("reciprocal_lattice:\n", self.structure.reciprocal_lattice.as_dict(verbosity=1)) + # from ifermi.plot import FermiSlicePlotter + + # expose_web = True + # from abipy.tools.plotting import MplExposer, PanelExposer + # if expose_web: + # e = PanelExposer(title=f"e-Bands of {self.structure.formula}") + # else: + # e = MplExposer(verbose=1) + + # with e: + # for plane_normal in plane_normals: + # fermi_slice = r.fs.get_fermi_slice(plane_normal=plane_normal, distance=distance) + # slice_plotter = FermiSlicePlotter(fermi_slice) + # plt = slice_plotter.get_plot() + # fig = plt.gcf() + # fig.suptitle(f"Plane normal to {plane_normal} at distance {distance:.3f} from the Γ-point") + # e(fig) + def to_bxsf(self, filepath): """ Export the full band structure to ``filepath`` in BXSF format suitable for the visualization of isosurfaces with xcrysden_ (xcrysden --bxsf FILE). Require k-points in IBZ and gamma-centered k-mesh. """ + if err_msg := self.isnot_ibz_sampling(require_gamma_centered=True): + raise ValueError(err_msg) + self.get_ebands3d().to_bxsf(filepath) + #@memoized_method(maxsize=5, typed=False) def get_ebands3d(self): + if err_msg := self.isnot_ibz_sampling(): + raise ValueError(err_msg) + return ElectronBands3D(self.structure, self.kpoints, self.has_timrev, self.eigens, self.fermie) def derivatives(self, spin, band, order=1, acc=4): """ - Compute the derivative of the eigenvalues wrt to k. + Compute the derivative of the eigenvalues wrt to k using finite difference. Args: spin: Spin index @@ -2373,22 +3211,28 @@ def derivatives(self, spin, band, order=1, acc=4): #ebranch = 0.5 * units.Ha_to_eV * np.array([(k.norm * units.bohr_to_ang)**2 for k in self.kpoints]) # Compute derivatives by finite differences. - ders_onlines = self.kpoints.finite_diff(ebranch, order=order, acc=acc) - return ders_onlines + return self.kpoints.finite_diff(ebranch, order=order, acc=acc) else: raise NotImplementedError("Derivatives on homogeneous k-meshes are not supported yet") - def effective_masses(self, spin, band, acc=4): - """ - Compute the effective masses for the given ``spin`` and ``band`` index. - Use finite difference with accuracy ``acc``. + #def effective_masses(self, spin, band, acc=4): + # """ + # Compute the effective masses for the given ``spin`` and ``band`` index. + # Use finite difference with accuracy ``acc``. - Returns: - |numpy-array| of size self.nkpt with effective masses. + # Returns: + # |numpy-array| of size self.nkpt with effective masses. + # """ + # ders2 = self.derivatives(spin, band, order=2, acc=acc) * (units.eV_to_Ha / units.bohr_to_ang**2) + # return 1. / ders2 + + def get_effmass_analyzer(self): + """" + Return an instance of EffMassAnalyzer to compute effective masses with finite differences """ - ders2 = self.derivatives(spin, band, order=2, acc=acc) * (units.eV_to_Ha / units.bohr_to_ang**2) - return 1. / ders2 + from abipy.electrons.effmass_analyzer import EffMassAnalyzer + return EffMassAnalyzer(self, copy=True) def get_effmass_line(self, spin, kpoint, band, acc=4): """ @@ -2400,13 +3244,13 @@ def get_effmass_line(self, spin, kpoint, band, acc=4): band: Band index. acc: accuracy """ - warnings.warn("This code is still under development. API may change!") + warnings.warn("You may want to use `emana = ebands.get_effmass_analyzer()` for a more flexible API.") if not self.kpoints.is_path: raise ValueError("get_effmass_line requires k-points along a path. Got:\n %s" % repr(self.kpoints)) # We have to understand if the k-point is a vertex or not. - # If it is a vertex, we have to compute the left and right derivative - # If kpt is inside the line, left and right derivatives are supposed to be equal + # If it is a vertex, we have to compute the left and right derivative. + # If kpt is inside the line, left and right derivatives are supposed to be equal. from abipy.tools.derivatives import finite_diff for ik in self.kpoints.get_all_kindices(kpoint): @@ -2442,6 +3286,7 @@ def get_effmass_line(self, spin, kpoint, band, acc=4): app("emass_left: %.3f, emass_right: %.3f" % (em_left, em_right)) else: app("emass: %.3f" % em_left) + print("\n".join(lines)) def _eigens_hvers_iline(self, spin, band, iline): @@ -2460,23 +3305,24 @@ def interpolate(self, lpratio=5, knames=None, vertices_names=None, line_density= """ Interpolate energies in k-space along a k-path and, optionally, in the IBZ for DOS calculations. Note that the interpolation will likely fail if there are symmetrical k-points in the input set of k-points - so it's recommended to call this method with energies obtained in the IBZ. + so it is highly recommended to call this method with energies obtained in the IBZ. Args: lpratio: Ratio between the number of star functions and the number of ab-initio k-points. The default should be OK in many systems, larger values may be required for accurate derivatives. - knames: List of strings with the k-point labels for the k-path. Has precedence over vertices_names. + knames: List of strings with the k-point labels for the k-path. Has precedence over ``vertices_names``. vertices_names: Used to specify the k-path for the interpolated band structure - It's a list of tuple, each tuple is of the form (kfrac_coords, kname) where + It is a list of tuple, each tuple is of the form (kfrac_coords, kname) where kfrac_coords are the reduced coordinates of the k-point and kname is a string with the name of the k-point. Each point represents a vertex of the k-path. ``line_density`` defines the density of the sampling. If None, the k-path is automatically generated according to the point group of the system. line_density: Number of points in the smallest segment of the k-path. + If 0, use list of k-points given in vertices_names kmesh: Used to activate the interpolation on the homogeneous mesh for DOS (uses spglib_ API). kmesh is given by three integers and specifies mesh numbers along reciprocal primitive axis. is_shift: three integers (spglib_ API). When is_shift is not None, the kmesh is shifted along - the axis in half of adjacent mesh points irrespective of the mesh numbers. None means unshited mesh. + the axis in half of adjacent mesh points irrespective of the mesh numbers. None means unshifted mesh. bstart, bstop: Select the range of band to be used in the interpolation filter_params: TO BE described. verbose: Verbosity level @@ -2490,8 +3336,7 @@ def interpolate(self, lpratio=5, knames=None, vertices_names=None, line_density= interpolator: |SkwInterpolator| object. """ # Get symmetries from abinit spacegroup (read from file). - abispg = self.structure.abi_spacegroup - if abispg is None: + if (abispg := self.structure.abi_spacegroup) is None: abispg = self.structure.spgset_abi_spacegroup(has_timerev=self.has_timrev) fm_symrel = [s for (s, afm) in zip(abispg.symrel, abispg.symafm) if afm == 1] @@ -2502,8 +3347,7 @@ def interpolate(self, lpratio=5, knames=None, vertices_names=None, line_density= # Build interpolator. from abipy.core.skw import SkwInterpolator - cell = (self.structure.lattice.matrix, self.structure.frac_coords, - self.structure.atomic_numbers) + cell = (self.structure.lattice.matrix, self.structure.frac_coords, self.structure.atomic_numbers) skw = SkwInterpolator(lpratio, self.kpoints.frac_coords, self.eigens[:,:,bstart:bstop], self.fermie, self.nelect, cell, fm_symrel, self.has_timrev, @@ -2526,7 +3370,7 @@ def interpolate(self, lpratio=5, knames=None, vertices_names=None, line_density= self.nelect, self.nspinor, self.nspden, smearing=self.smearing) ebands_kmesh = None if kmesh is not None: - # Get kpts and weights in IBZ. + # Get kpts and weights in the IBZ. kdos = Ktables(self.structure, kmesh, is_shift, self.has_timrev) eigens_kmesh = skw.interp_kpts(kdos.ibz).eigens @@ -2542,8 +3386,30 @@ def interpolate(self, lpratio=5, knames=None, vertices_names=None, line_density= return dict2namedtuple(ebands_kpath=ebands_kpath, ebands_kmesh=ebands_kmesh, interpolator=skw) + def get_collinear_mag(self) -> float: + """ + Calculates the total collinear magnetization in Bohr magneton as the difference + between the spin up and spin down densities. + Note that we assume an IBZ sampling. + + Returns: + float: the total magnetization. + + Raises: ValueError if total magnetization is undefined e.g. nspinor 2. + """ + if self.nsppol == 1: + if self.nspinor == 1 or (self.nspinor == 2 and self.nspden == 1): + return 0.0 + else: + raise ValueError("Cannot calculate collinear magnetization for nsppol: {}, " + "nspinor {}, nspden {}".format(self.nsppol, self.nspinor, self.nspden)) + else: + rhoup = np.sum(self.kpoints.weights[:, None] * self.occfacts[0]) + rhoudown = np.sum(self.kpoints.weights[:, None] * self.occfacts[1]) + return rhoup - rhoudown + -def dataframe_from_ebands(ebands_objects, index=None, with_spglib=True): +def dataframe_from_ebands(ebands_objects, index=None, with_spglib=True) -> pd.DataFrame: """ Build a pandas dataframe with the most important results available in a list of band structures. @@ -2560,8 +3426,7 @@ def dataframe_from_ebands(ebands_objects, index=None, with_spglib=True): # Use OrderedDict to have columns ordered nicely. odict_list = [(ebands.get_dict4pandas(with_spglib=with_spglib)) for ebands in ebands_list] - return pd.DataFrame(odict_list, index=index, - columns=list(odict_list[0].keys()) if odict_list else None) + return pd.DataFrame(odict_list, index=index, columns=list(odict_list[0].keys()) if odict_list else None) class ElectronBandsPlotter(NotebookWriter): @@ -2584,8 +3449,9 @@ class ElectronBandsPlotter(NotebookWriter): .. inheritance-diagram:: ElectronBandsPlotter """ # Used in iter_lineopt to generate matplotlib linestyles. - _LINE_COLORS = ["b", "r", "g", "m", "y", "k"] + _LINE_COLORS = ["blue", "red", "green", "magenta", "yellow", "black"] _LINE_STYLES = ["-", ":", "--", "-.",] + _LINE_STYLES_PLOTLY = ['solid', "dot", 'dash', 'dashdot',] _LINE_WIDTHS = [2,] def __init__(self, key_ebands=None, key_edos=None, edos_kwargs=None): @@ -2620,7 +3486,7 @@ def __str__(self): def __len__(self): return len(self.ebands_dict) - def add_plotter(self, other): + def add_plotter(self, other) -> ElectronBandsPlotter: """Merge two plotters, return new plotter.""" if not isinstance(other, self.__class__): raise TypeError("Don't know to add %s to %s" % (other.__class__, self.__class__)) @@ -2630,7 +3496,7 @@ def add_plotter(self, other): return self.__class__(key_ebands=key_ebands, key_edos=key_edos) - def to_string(self, func=str, verbose=0): + def to_string(self, func=str, verbose=0) -> str: """String representation.""" lines = [] app = lines.append @@ -2643,21 +3509,20 @@ def to_string(self, func=str, verbose=0): return "\n".join(lines) - def get_ebands_frame(self, with_spglib=True): + def get_ebands_frame(self, with_spglib=True) -> pd.DataFrame: """ Build a |pandas-DataFrame| with the most important results available in the band structures. Useful to analyze band-gaps. """ - return dataframe_from_ebands(list(self.ebands_dict.values()), - index=list(self.ebands_dict.keys()), with_spglib=with_spglib) + return dataframe_from_ebands(list(self.ebands_dict.values()), index=list(self.ebands_dict.keys()), with_spglib=with_spglib) @property - def ebands_list(self): + def ebands_list(self) -> List[ElectronBands]: """"List of |ElectronBands| objects.""" return list(self.ebands_dict.values()) @property - def edoses_list(self): + def edoses_list(self) -> List[ElectronDos]: """"List of |ElectronDos| objects.""" return list(self.edoses_dict.values()) @@ -2666,7 +3531,12 @@ def iter_lineopt(self): for o in itertools.product(self._LINE_WIDTHS, self._LINE_STYLES, self._LINE_COLORS): yield {"linewidth": o[0], "linestyle": o[1], "color": o[2]} - def add_ebands(self, label, bands, edos=None, edos_kwargs=None): + def iter_lineopt_plotly(self): + """Generates plotly linestyles.""" + for o in itertools.product(self._LINE_WIDTHS, self._LINE_STYLES_PLOTLY, self._LINE_COLORS): + yield {"line_width": o[0], "line_dash": o[1], "line_color": o[2]} + + def add_ebands(self, label, bands, edos=None, edos_kwargs=None) -> None: """ Adds a band structure and optionally an edos to the plotter. @@ -2684,7 +3554,7 @@ def add_ebands(self, label, bands, edos=None, edos_kwargs=None): if edos is not None: self.edoses_dict[label] = ElectronDos.as_edos(edos, edos_kwargs) - def bands_statdiff(self, ref=0): + def bands_statdiff(self, ref=0) -> str: """ Compare the reference bands with index ref with the other bands stored in the plotter. """ @@ -2709,19 +3579,25 @@ def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. """ - for mname in ("gridplot", "boxplot"): - yield getattr(self, mname)(show=False) + for meth_name in ("gridplot", "boxplot"): + yield getattr(self, meth_name)(show=False) + + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + """ + for meth_name in ("gridplot", "boxplot"): + yield getattr(self, meth_name)(show=False) @add_fig_kwargs def combiplot(self, e0="fermie", ylims=None, width_ratios=(2, 1), fontsize=8, - linestyle_dict=None, **kwargs): + linestyle_dict=None, **kwargs) -> Figure: """ - Plot the band structure and the DOS on the same figure. + Plot the band structure and the DOS on the same figure with matplotlib. Use ``gridplot`` to plot band structures on different figures. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values:: - - `fermie`: shift all eigenvalues to have zero energy at the Fermi energy (ebands.fermie) Note that, by default, the Fermi energy is taken from the band structure object i.e. the Fermi energy computed at the end of the SCF file that produced the density. @@ -2732,15 +3608,12 @@ def combiplot(self, e0="fermie", ylims=None, width_ratios=(2, 1), fontsize=8, Available only if plotter contains dos objects. - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV - None: Don't shift energies, equivalent to e0=0 - ylims: Set the data limits for the y-axis. Accept tuple e.g. `(left, right)` or scalar e.g. `left`. If left (right) is None, default values are used width_ratios: Defines the ratio between the band structure plot and the dos plot. Used when there are DOS stored in the plotter. - fontsize: fontsize for titles and legend. + fontsize: fontsize for legend. linestyle_dict: Dictionary mapping labels to matplotlib linestyle options. - - Returns: |matplotlib-Figure|. """ import matplotlib.pyplot as plt from matplotlib.gridspec import GridSpec @@ -2807,17 +3680,97 @@ def combiplot(self, e0="fermie", ylims=None, width_ratios=(2, 1), fontsize=8, return fig - def plot(self, *args, **kwargs): - """An alias for combiplot.""" - if "align" in kwargs or "xlim" in kwargs or "ylim" in kwargs: - raise ValueError("align|xlim|ylim options are not supported anymore.") - return self.combiplot(*args, **kwargs) + # An alias for combiplot. + plot = combiplot + + @add_plotly_fig_kwargs + def combiplotly(self, e0="fermie", ylims=None, width_ratios=(2, 1), fontsize=12, + linestyle_dict=None, **kwargs): + """ + Plot the band structure and the DOS on the same figure with plotly. + Use ``gridplotly`` to plot band structures on different figures. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values:: + - `fermie`: shift all eigenvalues to have zero energy at the Fermi energy (ebands.fermie) + Note that, by default, the Fermi energy is taken from the band structure object + i.e. the Fermi energy computed at the end of the SCF file that produced the density. + This should be ok in semiconductors. In metals, however, a better value of the Fermi energy + can be obtained from the DOS provided that the k-sampling for the DOS is much denser than + the one used to compute the density. See `edos_fermie`. + - ``edos_fermie``: Use the Fermi energy computed from the DOS to define the zero of energy in both subplots. + Available only if plotter contains dos objects. + - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to e0=0 + ylims: Set the data limits for the y-axis. Accept tuple e.g. `(left, right)` + width_ratios: Defines the ratio between the band structure plot and the dos plot. + Used when there are DOS stored in the plotter. + fontsize: fontsize for titles and legend. + linestyle_dict: Dictionary mapping labels to linestyle options passed to |plotly.graph_objects.scatter|. + + Returns: |plotly.graph_objects.Figure| + """ + if self.edoses_dict: + # Bands and DOS will share the y-axis + nrows, ncols = (1, 2) + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=[], sharex=False, sharey=True, + horizontal_spacing=0.02, column_widths=width_ratios) + else: + nrows, ncols = (1, 1) + fig, _ = get_fig_plotly() + + plotly_set_lims(fig, ylims, 'y') + + # Plot ebands. + my_kwargs, opts_label = kwargs.copy(), {} + i = -1 + nkpt_list = [ebands.nkpt for ebands in self.ebands_dict.values()] + if any(nk != nkpt_list[0] for nk in nkpt_list): + cprint("WARNING: Bands have different number of k-points:\n%s" % str(nkpt_list), "yellow") + + for (label, ebands), lineopt in zip(self.ebands_dict.items(), self.iter_lineopt_plotly()): + i += 1 + if linestyle_dict is not None and label in linestyle_dict: + my_kwargs.update(linestyle_dict[label]) + else: + my_kwargs.update(lineopt) + + opts_label[label] = my_kwargs.copy() + + # Get energy zero. + mye0 = self.edoses_dict[label].fermie if e0 == "edos_fermie" else ebands.get_e0(e0) + + # Use relative paths if label is a file. + if os.path.isfile(label): label = os.path.relpath(label) + + rcd = PlotlyRowColDesc(0, 0, nrows, ncols) + ebands.plotly_traces(fig, mye0, spin=None, band=None, rcd=rcd, showlegend=True, label=label, **my_kwargs) + + # Set ticks and labels, legends. + if i == 0: + ebands.decorate_plotly(fig, iax=rcd.iax) + + fig.layout.legend.font.size = fontsize + fig.layout.title.font.size = fontsize + + # Add DOSes + if self.edoses_dict: + rcd = PlotlyRowColDesc(0, 1, nrows, ncols) + for label, edos in self.edoses_dict.items(): + print(label) + ebands = self.edoses_dict[label] + mye0 = ebands.get_e0(e0) if e0 != "edos_fermie" else edos.fermie + edos.plotly_traces(fig, mye0, rcd=rcd, exchange_xy=True, trace_name=label, **opts_label[label]) + + return fig + + plotly = combiplotly @add_fig_kwargs def gridplot(self, e0="fermie", with_dos=True, with_gaps=False, max_phfreq=None, - ylims=None, fontsize=8, **kwargs): + ylims=None, fontsize=8, **kwargs) -> Figure: """ - Plot multiple electron bandstructures and optionally DOSes on a grid. + Plot multiple electron bandstructures and optionally DOSes on a grid with matplotlib. Args: eb_objects: List of objects from which the band structures are extracted. @@ -2825,7 +3778,7 @@ def gridplot(self, e0="fermie", with_dos=True, with_gaps=False, max_phfreq=None, or one of the abipy object with an ``ebands`` attribute or a |ElectronBands| object. edos_objects: List of objects from which the electron DOSes are extracted. Accept filepaths or |ElectronDos| objects. If edos_objects is not None, - each subplot in the grid contains a band structure with DOS else a simple bandstructure plot. + each subplot in the grid contains a band structure with DOS else a simple band structure plot. e0: Option used to define the zero of energy in the band structure plot. Possible values:: - ``fermie``: shift all eigenvalues and the DOS to have zero energy at the Fermi energy. @@ -2840,7 +3793,7 @@ def gridplot(self, e0="fermie", with_dos=True, with_gaps=False, max_phfreq=None, - None: Don't shift energies, equivalent to e0=0 with_dos: True if DOS should be printed. - with_gaps: True to add markesr and arrows showing the fundamental and the direct gap. + with_gaps: True to add markers and arrows showing the fundamental and the direct gap. max_phfreq: Max phonon frequency in eV to activate scatterplot showing possible phonon absorptions/emission processes based on energy-conservation alone. All final states whose energy is within +- max_phfreq of the initial state are included. @@ -2848,7 +3801,7 @@ def gridplot(self, e0="fermie", with_dos=True, with_gaps=False, max_phfreq=None, are considered as initial state (not available for metals). ylims: Set the data limits for the y-axis. Accept tuple e.g. ```(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used - fontsize: fontsize for titles and legend. + fontsize: fontsize for subtitles. Returns: |matplotlib-Figure| """ @@ -2871,7 +3824,7 @@ def gridplot(self, e0="fermie", with_dos=True, with_gaps=False, max_phfreq=None, for i, (ebands, ax) in enumerate(zip(ebands_list, ax_list)): irow, icol = divmod(i, ncols) - ebands.plot(ax=ax, e0=e0, with_gaps=with_gaps, max_phfreq=max_phfreq, show=False) + ebands.plot(ax=ax, e0=e0, with_gaps=with_gaps, max_phfreq=max_phfreq, fontsize=fontsize, show=False) set_axlims(ax, ylims, "y") # This to handle with_gaps = True title = ax.get_title() @@ -2907,8 +3860,104 @@ def gridplot(self, e0="fermie", with_dos=True, with_gaps=False, max_phfreq=None, return fig + @add_plotly_fig_kwargs + def gridplotly(self, e0="fermie", with_dos=True, with_gaps=False, max_phfreq=None, + ylims=None, fontsize=12, **kwargs): + """ + Plot multiple electron bandstructures and optionally DOSes on a grid with plotly. + + Args: + eb_objects: List of objects from which the band structures are extracted. + Each item in eb_objects is either a string with the path of the netcdf file, + or one of the abipy object with an ``ebands`` attribute or a |ElectronBands| object. + edos_objects: List of objects from which the electron DOSes are extracted. + Accept filepaths or |ElectronDos| objects. If edos_objects is not None, + each subplot in the grid contains a band structure with DOS else a simple band structure plot. + e0: Option used to define the zero of energy in the band structure plot. Possible values:: + + - ``fermie``: shift all eigenvalues and the DOS to have zero energy at the Fermi energy. + Note that, by default, the Fermi energy is taken from the band structure object + i.e. the Fermi energy computed at the end of the SCF file that produced the density. + This should be ok in semiconductors. In metals, however, a better value of the Fermi energy + can be obtained from the DOS provided that the k-sampling for the DOS is much denser than + the one used to compute the density. See `edos_fermie`. + - ``edos_fermie``: Use the Fermi energy computed from the DOS to define the zero of energy in both subplots. + Available only if edos_objects is not None + - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to e0=0 + + with_dos: True if DOS should be printed. + with_gaps: True to add markers and arrows showing the fundamental and the direct gap. + max_phfreq: Max phonon frequency in eV to activate scatterplot showing + possible phonon absorptions/emission processes based on energy-conservation alone. + All final states whose energy is within +- max_phfreq of the initial state are included. + By default, the four electronic states defining the fundamental and the direct gaps + are considered as initial state (not available for metals). + ylims: Set the data limits for the y-axis. Accept tuple e.g. ```(left, right)`` + fontsize: fontsize for subtitles. + + Returns: |plotly.graph_objects.Figure| + """ + titles = list(self.ebands_dict.keys()) + ebands_list, edos_list = self.ebands_list, self.edoses_list + + nrows, ncols = 1, 1 + numeb = len(ebands_list) + + if not edos_list or not with_dos: + # Plot grid with bands only. + if numeb > 1: + ncols = 2 + nrows = numeb // ncols + numeb % ncols + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=list(range(1, numeb+1)), + sharex=False, sharey=True) + + for i, ebands in enumerate(ebands_list): + irow, icol = divmod(i, ncols) + band_rcd = PlotlyRowColDesc(irow, icol, nrows, ncols) + ebands.plotly(e0=e0, fig=fig, rcd=band_rcd, with_gaps=with_gaps, max_phfreq=max_phfreq, + fontsize=fontsize, show=False) + plotly_set_lims(fig, ylims, 'y') + # This to handle with_gaps = True + if not with_gaps: + fig.layout.annotations[i].text = titles[i] + fig.layout.annotations[i].font.size = fontsize + if (irow, icol) != (0, 0): + fig.layout['yaxis%u' % band_rcd.iax].title.text = "" + else: + # Special treatment required for phbands with DOS. + numeb *= 2 + ncols = 4 + nrows = numeb // ncols + numeb % ncols + # Plot grid with bands + DOS. + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=list(range(1, numeb + 1)), + column_widths=[2, 1]*2, horizontal_spacing=0.02, sharex=False, sharey=True) + # all sub_fig in the same row will share y + + for i, (ebands, edos) in enumerate(zip(ebands_list, edos_list)): + # Align bands and DOS. + irow, icol = divmod(i, 2) + band_rcd = PlotlyRowColDesc(irow, icol * 2, nrows, ncols) + dos_rcd = PlotlyRowColDesc(irow, icol * 2 + 1, nrows, ncols) + plotly_set_lims(fig, ylims, 'y', iax=i*2+1) + + # Define the zero of energy and plot + mye0 = ebands.get_e0(e0) if e0 != "edos_fermie" else edos.fermie + ebands.plotly_with_edos(edos, fig=fig, band_rcd=band_rcd, dos_rcd=dos_rcd, e0=mye0, with_gaps=with_gaps, + max_phfreq=max_phfreq, show=False) + + # This to handle with_gaps = True + if not with_gaps: + fig.layout.annotations[i * 2].text = titles[i] + fig.layout.annotations[i * 2 + 1].text = '' + fig.layout.annotations[i * 2].font.size = fontsize + if i % 2 != 0: + fig.layout['yaxis%u' % band_rcd.iax].title.text = "" + + return fig + @add_fig_kwargs - def boxplot(self, e0="fermie", brange=None, swarm=False, fontsize=8, **kwargs): + def boxplot(self, e0="fermie", brange=None, swarm=False, fontsize=8, **kwargs) -> Figure: """ Use seaborn_ to draw a box plot to show distributions of eigenvalues with respect to the band index. Band structures are drawn on different subplots. @@ -2931,9 +3980,8 @@ def boxplot(self, e0="fermie", brange=None, swarm=False, fontsize=8, **kwargs): ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, sharex=False, sharey=True, squeeze=False) - ax_list = ax_list.ravel() - - # don't show the last ax if numeb is odd. + ax_list = ax_list.ravel() + # don't show the last ax if num_plots is odd. if num_plots % ncols != 0: ax_list[-1].axis("off") for (label, ebands), ax in zip(self.ebands_dict.items(), ax_list): @@ -2943,7 +3991,7 @@ def boxplot(self, e0="fermie", brange=None, swarm=False, fontsize=8, **kwargs): return fig @add_fig_kwargs - def combiboxplot(self, e0="fermie", brange=None, swarm=False, ax=None, **kwargs): + def combiboxplot(self, e0="fermie", brange=None, swarm=False, ax=None, **kwargs) -> Figure: """ Use seaborn_ to draw a box plot comparing the distributions of the eigenvalues Band structures are drawn on the same plot. @@ -2960,18 +4008,16 @@ def combiboxplot(self, e0="fermie", brange=None, swarm=False, ax=None, **kwargs) kwargs: Keyword arguments passed to seaborn boxplot. """ spin_polarized = False - frames = [] + df_list = [] for label, ebands in self.ebands_dict.items(): # Get the dataframe, select bands and add column with label - frame = ebands.get_dataframe(e0=e0) - if brange is not None: - frame = frame[(frame["band"] >= brange[0]) & (frame["band"] < brange[1])] - frame["label"] = label - frames.append(frame) + df = ebands.get_dataframe(e0=e0, brange=brange) + df["label"] = label + df_list.append(df) if ebands.nsppol == 2: spin_polarized = True - # Merge frames ignoring index (not meaningful) - data = pd.concat(frames, ignore_index=True) + # Merge dataframes ignoring index (not meaningful) + data = pd.concat(df_list, ignore_index=True) import seaborn as sns if not spin_polarized: @@ -2996,7 +4042,8 @@ def combiboxplot(self, e0="fermie", brange=None, swarm=False, ax=None, **kwargs) return fig @add_fig_kwargs - def plot_band_edges(self, e0="fermie", epad_ev=1.0, set_fermie_to_vbm=True, colormap="viridis", fontsize=8, **kwargs): + def plot_band_edges(self, e0="fermie", epad_ev=1.0, set_fermie_to_vbm=True, + colormap="viridis", fontsize=8, **kwargs) -> Figure: """ Plot the band edges for electrons and holes on two separated plots for all ebands in ebands_dict. Useful for comparing band structures obtained with/without SOC or bands obtained with different settings. @@ -3037,7 +4084,7 @@ def plot_band_edges(self, e0="fermie", epad_ev=1.0, set_fermie_to_vbm=True, colo else: raise ValueError("Wrong ix: %s" % ix) - # Defin ylims and energy shift. + # Define ylims and energy shift. this_e0 = ebands.get_e0(e0) ylims = (ymin - this_e0, ymax - this_e0) ebands.plot(ax=ax, e0=e0, color=cmap(float(iband) / nb), ylims=ylims, @@ -3149,7 +4196,7 @@ def plot_callback(plot_type, e0): e0=["fermie", "0.0"], ) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -3163,7 +4210,7 @@ def write_notebook(self, nbpath=None): #nbv.new_markdown_cell("# This is a markdown cell"), nbv.new_code_cell("plotter = abilab.ElectronBandsPlotter.pickle_load('%s')" % tmpfile), nbv.new_code_cell("print(plotter)"), - nbv.new_code_cell("frame = plotter.get_ebands_frame()\ndisplay(frame)"), + nbv.new_code_cell("df = plotter.get_ebands_frame()\ndisplay(frame)"), nbv.new_code_cell("ylims = (None, None)"), nbv.new_code_cell("plotter.gridplot(ylims=ylims);"), nbv.new_code_cell("plotter.combiplot(ylims=ylims);"), @@ -3191,11 +4238,11 @@ class ElectronsReader(ETSF_Reader, KpointsReaderMixin): .. rubric:: Inheritance Diagram .. inheritance-diagram:: ElectronReader """ - def read_ebands(self): + def read_ebands(self) -> ElectronBands: """ Returns an instance of |ElectronBands|. Main entry point for client code """ - return ElectronBands( + ebands = ElectronBands( structure=self.read_structure(), kpoints=self.read_kpoints(), eigens=self.read_eigenvalues(), @@ -3206,33 +4253,35 @@ def read_ebands(self): nspden=self.read_nspden(), nband_sk=self.read_nband_sk(), smearing=self.read_smearing(), - ) + ) + + return ebands - def read_nband_sk(self): + def read_nband_sk(self) -> np.ndarray: """|numpy-array| with the number of bands indexed by [s, k].""" return self.read_value("number_of_states") - def read_nspinor(self): + def read_nspinor(self) -> int: """Number of spinors.""" return self.read_dimvalue("number_of_spinor_components") - def read_nsppol(self): + def read_nsppol(self) -> int: """Number of independent spins (collinear case).""" return self.read_dimvalue("number_of_spins") - def read_nspden(self): + def read_nspden(self) -> int: """Number of spin-density components""" # FIXME: default 1 is needed for SIGRES files (abinit8) return self.read_dimvalue("number_of_components", default=1) - def read_tsmear(self): + def read_tsmear(self) -> float: return self.read_value("smearing_width") def read_eigenvalues(self): """Eigenvalues in eV.""" return units.ArrayWithUnit(self.read_value("eigenvalues"), "Ha").to("eV") - def read_occupations(self): + def read_occupations(self) -> np.ndarray: """Occupancies.""" return self.read_value("occupations") @@ -3240,11 +4289,14 @@ def read_fermie(self): """Fermi level in eV.""" return units.Energy(self.read_value("fermi_energy"), "Ha").to("eV") - def read_nelect(self): - """Number of valence electrons.""" + def read_nelect(self) -> float: + """ + Number of valence electrons. Note that it's a float because we may have added + extra fractional charge to the unit cell with a compensanting background. + """ return self.read_value("number_of_electrons") - def read_smearing(self): + def read_smearing(self) -> Smearing: """Returns a :class:`Smearing` instance with info on the smearing technique.""" occopt = int(self.read_value("occopt")) scheme = self.read_string("smearing_scheme") @@ -3256,21 +4308,29 @@ def read_smearing(self): ) -class ElectronDos(object): +class ElectronDos: """ This object stores the electronic density of states. It is usually created by calling the get_edos method of |ElectronBands|. """ - def __init__(self, mesh, spin_dos, nelect, fermie=None): + def __init__(self, mesh, spin_dos, nelect, fermie=None, spin_idos=None): """ Args: mesh: array-like object with the mesh points in eV. - spin_dos: array-like object with the DOS value for the different spins. - spin_dos[1, nw] if spin-unpolarized. - spin_dos[2, nw] if spin-polarized case. + spin_dos: array-like object with the DOS for the different spins (even if spin-unpolarized calculation). + Shape is: + (1, nw) if spin-unpolarized. + (2, nw) if spin-polarized. nelect: Number of electrons in the unit cell. fermie: Fermi level in eV. If None, fermie is obtained from the idos integral. + spin_idos: array-like object with the IDOS for the different spins (even if spin-unpolarized calculation). + Shape is: + (1, nw) if spin-unpolarized. + (2, nw) if spin-polarized case. + + This argument is usually used when we have an IDOS computed with a more accurate method e.g. + tetrahedron integration so that we can use these values instead of integrating the input DOS. .. note:: @@ -3279,25 +4339,39 @@ def __init__(self, mesh, spin_dos, nelect, fermie=None): spin_dos = np.atleast_2d(spin_dos) self.nsppol = len(spin_dos) self.nelect = nelect + if spin_idos is not None: + spin_idos = np.atleast_2d(spin_idos) + assert len(spin_idos) == self.nsppol # Save DOS and IDOS for each spin. sumv = np.zeros(len(mesh)) self.spin_dos, self.spin_idos = [], [] - for values in spin_dos: + for ispin, values in enumerate(spin_dos): sumv += values f = Function1D(mesh, values) self.spin_dos.append(f) - self.spin_idos.append(f.integral()) + # Compute IDOS or take it from spin_idos. + if spin_idos is None: + self.spin_idos.append(f.integral()) + else: + self.spin_idos.append(Function1D(mesh, spin_idos[ispin])) # Total DOS and IDOS. if self.nsppol == 1: sumv = 2 * sumv self.tot_dos = Function1D(mesh, sumv) - self.tot_idos = self.tot_dos.integral() + if spin_idos is None: + # Compute IDOS from DOS + self.tot_idos = self.tot_dos.integral() + else: + # Get IDOS from input (e.g. tetra) + if self.nsppol == 1: sumv = 2 * spin_idos[0] + if self.nsppol == 2: sumv = spin_idos[0] + spin_idos[1] + self.tot_idos = Function1D(mesh, sumv) if fermie is not None: self.fermie = float(fermie) else: - # *Compute* fermie from nelect. Note that this value could differ + # *Compute* fermie from nelect. Note that this value may differ # from the one stored in ElectronBands (coming from the SCF run) # The accuracy of self.fermie depends on the number of k-points used for the DOS # and the parameters used to call ebands.get_edos. @@ -3307,10 +4381,10 @@ def __init__(self, mesh, spin_dos, nelect, fermie=None): print("tot_idos values:\n", self.tot_idos) raise - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append app("nsppol: %d, nelect: %s" % (self.nsppol, self.nelect)) @@ -3318,7 +4392,7 @@ def to_string(self, verbose=0): return "\n".join(lines) @classmethod - def as_edos(cls, obj, edos_kwargs): + def as_edos(cls, obj: Any, edos_kwargs: dict) -> ElectronDos: """ Return an instance of |ElectronDos| from a generic object ``obj``. Supports: @@ -3342,9 +4416,17 @@ def as_edos(cls, obj, edos_kwargs): from abipy.abilab import abiopen with abiopen(obj) as abifile: - return abifile.ebands.get_edos(**edos_kwargs) + if hasattr(abifile, "ebands"): + return abifile.ebands.get_edos(**edos_kwargs) + elif hasattr(abifile, "edos"): + # This to handle e.g. the _EDOS file. + return abifile.edos + else: + raise TypeError("Don't know how to extract ElectronDos object from: `%s`" % str(obj)) + elif hasattr(obj, "ebands"): return obj.ebands.get_edos(**edos_kwargs) + elif hasattr(obj, "get_edos"): return obj.get_edos(**edos_kwargs) @@ -3369,7 +4451,7 @@ def dos_idos(self, spin=None): else: return self.spin_dos[spin], self.spin_idos[spin] - def find_mu(self, nelect, spin=None): + def find_mu(self, nelect, spin=None) -> float: """ Finds the chemical potential given the number of electrons. """ @@ -3400,7 +4482,7 @@ def find_mu(self, nelect, spin=None): return mu @lazy_property - def up_minus_down(self): + def up_minus_down(self) -> Function1D: """ Function1D with dos_up - dos_down """ @@ -3409,7 +4491,7 @@ def up_minus_down(self): else: return self.spin_dos[0] - self.spin_dos[1] - def get_e0(self, e0): + def get_e0(self, e0) -> float: """ e0: Option used to define the zero of energy in the band structure plot. Possible values: - `fermie`: shift all eigenvalues to have zero energy at the Fermi energy (`self.fermie`). @@ -3433,16 +4515,17 @@ def get_e0(self, e0): # Assume number return float(e0) - def plot_ax(self, ax, e0, spin=None, what="dos", fact=1.0, exchange_xy=False, **kwargs): + def plot_ax(self, ax, e0, spin=None, what="dos", fact=1.0, normalize=False, exchange_xy=False, **kwargs) -> list: """ - Helper function to plot the DOS data on the axis ``ax``. + Helper function to plot the DOS data on the matplotlib axis ``ax``. Args: ax: |matplotlib-Axes|. e0: Option used to define the zero of energy in the band structure plot. spin: selects the spin component, None for total DOS, IDOS. what: string selecting what will be plotted. "dos" for DOS, "idos" for IDOS - fact: Multiplication factor for DOS/IDOS. Usually +-1 for spin DOS + fact: Multiplication factor for DOS/IDOS. Usually +-1 for spin DOS. + normalize: True if values should be normalized to one. exchange_xy: True to exchange x-y axis. kwargs: Options passed to matplotlib ``ax.plot`` @@ -3457,16 +4540,52 @@ def plot_ax(self, ax, e0, spin=None, what="dos", fact=1.0, exchange_xy=False, ** f = w2f[what] xx, yy = f.mesh - e0, f.values * fact + if normalize: yy /= yy.max() + if exchange_xy: xx, yy = yy, xx lines = [] lines.extend(ax.plot(xx, yy, **kwargs)) return lines + def plotly_traces(self, fig, e0, spin=None, what="dos", fact=1.0, exchange_xy=False, rcd=None, trace_name='', + showlegend=False, line_opts=None, **kwargs): + """ + Helper function to plot the DOS data on the ``fig`` with plotly. + + Args: + fig: |plotly.graph_objects.Figure|. + e0: Option used to define the zero of energy in the band structure plot. + spin: selects the spin component, None for total DOS, IDOS. + what: string selecting what will be plotted. "dos" for DOS, "idos" for IDOS + fact: Multiplication factor for DOS/IDOS. Usually +-1 for spin DOS + exchange_xy: True to exchange x-y axis. + rcd: PlotlyRowColDesc object used to specify the (row, col) of the subplot in the grid. + trace_name: Name of the trace. + showlegend: Determines whether or not an item corresponding to this trace is shown in the legend. + line_opts: Dict of linestyle options passed to |plotly.graph_objects.scatter.Line| + kwargs: Options passed to fig.add_scatter method. + """ + dosf, idosf = self.dos_idos(spin=spin) + e0 = self.get_e0(e0) + + w2f = {"dos": dosf, "idos": idosf} + if what not in w2f: + raise ValueError("Unknown value for what: `%s`" % str(what)) + f = w2f[what] + + xx, yy = f.mesh - e0, f.values * fact + if exchange_xy: xx, yy = yy, xx + rcd = PlotlyRowColDesc.from_object(rcd) + ply_row, ply_col = rcd.ply_row, rcd.ply_col + fig.add_scatter(x=xx, y=yy, mode='lines', name=trace_name, showlegend=showlegend, legendgroup=trace_name, + line=line_opts, **kwargs, row=ply_row, col=ply_col) + @add_fig_kwargs - def plot(self, e0="fermie", spin=None, ax=None, exchange_xy=False, xlims=None, ylims=None, **kwargs): + def plot(self, e0="fermie", spin=None, ax=None, exchange_xy=False, + xlims=None, ylims=None, **kwargs) -> Figure: """ - Plot electronic DOS + Plot electronic DOS with matplotlib. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values: @@ -3503,10 +4622,54 @@ def plot(self, e0="fermie", spin=None, ax=None, exchange_xy=False, xlims=None, y return fig + @add_plotly_fig_kwargs + def plotly(self, e0="fermie", spin=None, fig=None, exchange_xy=False, xlims=None, ylims=None, + trace_name='', showlegend=False, **kwargs): + """ + Plot electronic DOS with plotly. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0``. + spin: Selects the spin component, None if total DOS is wanted. + fig: |plotly.graph_objects.Figure|. + exchange_xy: True to exchange x-y axis. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)``. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)``. + trace_name: Name of the trace. + showlegend: Determines whether or not an item corresponding to this trace is shown in the legend. + kwargs: Options passed to fig.add_scatter method. + + Return: |plotly.graph_objects.Figure| + """ + fig, _ = get_fig_plotly(fig=fig) + e0 = self.get_e0(e0) + + for spin in range(self.nsppol): + opts = {"color": "black", "width": 1.0} if spin == 0 else \ + {"color": "red", "width": 1.0} + # opts.update(kwargs) + spin_sign = +1 if spin == 0 else -1 + x, y = self.spin_dos[spin].mesh - e0, spin_sign * self.spin_dos[spin].values + if exchange_xy: x, y = y, x + fig.add_scatter(x=x, y=y, mode='lines', name=trace_name, showlegend=showlegend, line=opts, **kwargs) + + xlabel, ylabel = 'Energy (eV)', 'DOS (states/eV)' + if exchange_xy: xlabel, ylabel = ylabel, xlabel + fig.layout.xaxis.title = xlabel + fig.layout.yaxis.title = ylabel + plotly_set_lims(fig, xlims, "x") + plotly_set_lims(fig, ylims, "y") + + return fig + @add_fig_kwargs - def plot_dos_idos(self, e0="fermie", ax_list=None, xlims=None, height_ratios=(1, 2), **kwargs): + def plot_dos_idos(self, e0="fermie", ax_list=None, xlims=None, + height_ratios=(1, 2), **kwargs) -> Figure: """ - Plot electronic DOS and Integrated DOS on two different subplots. + Plot electronic DOS and Integrated DOS on two different subplots with matplotlib. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values: @@ -3545,6 +4708,7 @@ def plot_dos_idos(self, e0="fermie", ax_list=None, xlims=None, height_ratios=(1, for spin in range(self.nsppol): opts = {"color": "black", "linewidth": 1.0} if spin == 0 else \ {"color": "red", "linewidth": 1.0} + opts.update(kwargs) # Plot Total dos if unpolarized. if self.nsppol == 1: spin = None self.plot_ax(ax_list[0], e0, spin=spin, what="idos", **opts) @@ -3552,10 +4716,48 @@ def plot_dos_idos(self, e0="fermie", ax_list=None, xlims=None, height_ratios=(1, return fig + @add_plotly_fig_kwargs + def plotly_dos_idos(self, e0="fermie", fig=None, xlims=None, height_ratios=(1, 2), **kwargs): + """ + Plot electronic DOS and Integrated DOS on two different subplots with plotly. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0``. + fig: The |plotly.graph_objects.Figure| with two distinct plots for the DOS and IDOS plot. + If fig is None, a new figure is created. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)``. + height_ratios: + kwargs: Options passed to plotly_traces method. + + Return: |plotly.graph_objects.Figure| + """ + if fig is None: + fig, _ = get_figs_plotly(nrows=2, ncols=1, sharex=True, sharey=False, + vertical_spacing=0.05, row_heights=height_ratios) + plotly_set_lims(fig, xlims, "x") + fig.layout['yaxis1'].title = {'text': "TOT IDOS"} + fig.layout['yaxis2'].title = {'text': "TOT DOS"} + fig.layout['xaxis2'].title = {'text': 'Energy (eV)'} + + for spin in range(self.nsppol): + opts = {"color": "black", "width": 1.0} if spin == 0 else \ + {"color": "red", "width": 1.0} + # Plot Total dos if unpolarized. + if self.nsppol == 1: spin = None + rcd = PlotlyRowColDesc(0, 0, 2, 1) + self.plotly_traces(fig, e0, spin=spin, what="idos", rcd=rcd, line_opts=opts, **kwargs) + rcd = PlotlyRowColDesc(1, 0, 2, 1) + self.plotly_traces(fig, e0, spin=spin, what="dos", rcd=rcd, line_opts=opts, **kwargs) + + return fig + @add_fig_kwargs - def plot_up_minus_down(self, e0="fermie", ax=None, xlims=None, **kwargs): + def plot_up_minus_down(self, e0="fermie", ax=None, xlims=None, **kwargs) -> Figure: """ - Plot Dos_up -Dow_down + Plot Dos_up - Dow_down with matplotlib. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values: @@ -3587,6 +4789,51 @@ def plot_up_minus_down(self, e0="fermie", ax=None, xlims=None, **kwargs): return fig + @add_plotly_fig_kwargs + def plotly_up_minus_down(self, e0="fermie", fig=None, xlims=None, **kwargs): + """ + Plot Dos_up - Dow_down with plotly. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0`` + fig: |plotly.graph_objects.Figure| or None if a new figure should be created. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)``. + kwargs: Options passed to fig.add_scatter method. + + Return: |plotly.graph_objects.Figure| + """ + dos_diff = self.up_minus_down + idos_diff = dos_diff.integral() + + e0 = self.get_e0(e0) + if not kwargs: + line_opts = {"color": "black", "width": 1.0} + + fig, _ = get_fig_plotly(fig=fig) + fig.add_scatter(x=dos_diff.mesh - e0, y=dos_diff.values, mode='lines', name='DOS',showlegend=False, + line=line_opts, **kwargs) + fig.add_scatter(x=idos_diff.mesh - e0, y=idos_diff.values, mode='lines', name='IDOS',showlegend=False, + line=line_opts, **kwargs) + + plotly_set_lims(fig, xlims, "x") + fig.layout.xaxis.title = 'Energy (eV)' + fig.layout.yaxis.title = 'Dos_up - Dos_down (states/eV)' + + return fig + + def to_pymatgen(self): + """ + Return a pymatgen DOS object from an Abipy |ElectronDos| object. + """ + from pymatgen.electronic_structure.dos import Dos + den = {s: d.values for d, s in zip(self.spin_dos, [PmgSpin.up, PmgSpin.down])} + pmg_dos = Dos(energies=self.spin_dos[0].mesh, densities=den, efermi=self.fermie) + + return pmg_dos + class ElectronDosPlotter(NotebookWriter): """ @@ -3612,11 +4859,11 @@ def __len__(self): return len(self.edoses_dict) @property - def edos_list(self): + def edos_list(self) -> List[ElectronDos]: """List of DOSes""" return list(self.edoses_dict.values()) - def add_edos(self, label, edos, edos_kwargs=None): + def add_edos(self, label, edos, edos_kwargs=None) -> None: """ Adds a DOS for plotting. @@ -3632,9 +4879,10 @@ def add_edos(self, label, edos, edos_kwargs=None): @add_fig_kwargs def combiplot(self, what_list="dos", spin_mode="automatic", e0="fermie", - ax_list=None, xlims=None, fontsize=8, **kwargs): + ax_list=None, xlims=None, fontsize=8, **kwargs) -> Figure: """ - Plot the the DOSes on the same figure. Use ``gridplot`` to plot DOSes on different figures. + Plot the the DOSes on the same figure with matplotlib. + Use ``gridplot`` to plot DOSes on different figures with matplotlib. Args: what_list: Selects quantities to plot e.g. ["dos", "idos"] to plot DOS and integrated DOS. @@ -3649,7 +4897,7 @@ def combiplot(self, what_list="dos", spin_mode="automatic", e0="fermie", ax_list: List of |matplotlib-Axes| or None if a new figure should be created. xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used - fontsize (int): fontsize for titles and legend + fontsize (int): fontsize for legend Return: |matplotlib-Figure| """ @@ -3700,11 +4948,92 @@ def combiplot(self, what_list="dos", spin_mode="automatic", e0="fermie", # An alias for combiplot. plot = combiplot + @add_plotly_fig_kwargs + def combiplotly(self, what_list="dos", spin_mode="automatic", e0="fermie", + ax_list=None, xlims=None, fontsize=12, **kwargs): + """ + Plot the the DOSes on the same figure with plotly. + Use ``gridplotly`` to plot DOSes on different figures with plotly. + + Args: + what_list: Selects quantities to plot e.g. ["dos", "idos"] to plot DOS and integrated DOS. + "dos" for DOS only and "idos" for IDOS only + spin_mode: "total" for total (I)DOS, "resolved" for plotting individual contributions. + Meaningful only if nsppol == 2. + "automatic" to use "resolved" if at least one DOS is polarized. + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0`` + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + fontsize (int): fontsize for legend + + Return: |plotly.graph_objects.Figure| + """ + if spin_mode == "automatic": + spin_mode = "resolved" if any(edos.nsppol == 2 for edos in self.edoses_dict.values()) else "total" + + what_list = list_strings(what_list) + nrows, ncols = len(what_list), 1 + + import plotly.colors as pcolors + # l2color = pcolors.qualitative.Light24 + # ten colors + l2color = pcolors.DEFAULT_PLOTLY_COLORS + + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=[], sharex=True, sharey=False) + + can_use_basename = self._can_use_basenames_as_labels() + for i, what in enumerate(what_list): + rcd = PlotlyRowColDesc(i, 0, nrows, ncols) + for j, (label, edos) in enumerate(self.edoses_dict.items()): + if can_use_basename: + label = os.path.basename(label) + else: + # Use relative paths if label is a file. + if os.path.isfile(label): label = os.path.relpath(label) + + # Note to have the same color of the same label. + opt = {"color": l2color[j]} + + # Here I handle spin and spin_mode. + if edos.nsppol == 1 or spin_mode == "total": + # Plot total values + if i==0: + edos.plotly_traces(fig, e0=e0, what=what, spin=None, rcd=rcd, trace_name=label, showlegend=True, + line_opts=opt) + else: + edos.plotly_traces(fig, e0=e0, what=what, spin=None, rcd=rcd, trace_name=label, line_opts=opt) + elif spin_mode == "resolved": + # Plot spin resolved quantiies with sign. + for spin in range(edos.nsppol): + fact = 1 if spin == 0 else -1 + if (i == 0) & (spin==0) : + edos.plotly_traces(fig, e0=e0, what=what, spin=spin, fact=fact, rcd=rcd, + trace_name=label, line_opts=opt, showlegend=True) + else: + edos.plotly_traces(fig, e0=e0, what=what, spin=spin, fact=fact, rcd=rcd, + trace_name=label, line_opts=opt) + else: + raise ValueError("Wrong value for spin_mode: `%s`:" % str(spin_mode)) + + fig.layout.legend.font.size = fontsize + plotly_set_lims(fig, xlims, "x") + fig.layout['yaxis'+str(rcd.iax)].title = {'text': 'DOS (states/eV)' if what == "dos" else "IDOS"} + if i == len(what_list) - 1: + fig.layout['xaxis' + str(rcd.iax)].title = {'text': 'Energy (eV)'} + + return fig + + # An alias for combiplotly. + plotly = combiplotly + @add_fig_kwargs def gridplot(self, what="dos", spin_mode="automatic", e0="fermie", - sharex=True, sharey=True, xlims=None, fontsize=8, **kwargs): + sharex=True, sharey=True, xlims=None, fontsize=8, **kwargs) -> Figure: """ - Plot multiple DOSes on a grid. + Plot multiple DOSes on a grid with matplotlib. Args: what: "dos" to plot DOS, "idos" for integrated DOS. @@ -3727,7 +5056,7 @@ def gridplot(self, what="dos", spin_mode="automatic", e0="fermie", sharex, sharey: True if x (y) axis should be shared. xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used - fontsize: Label and title fontsize. + fontsize: Axis_label and subtitle fontsize. Return: |matplotlib-Figure| """ @@ -3774,15 +5103,92 @@ def gridplot(self, what="dos", spin_mode="automatic", e0="fermie", ax.grid(True) ax.set_title(label, fontsize=fontsize) set_axlims(ax, xlims, "x") - if (irow, icol) == (0, 0): - ax.set_ylabel('DOS (states/eV)' if what == "dos" else "IDOS") + if icol == 0: + ax.set_ylabel('DOS (states/eV)' if what == "dos" else "IDOS", fontsize=fontsize) if irow == nrows - 1: - ax.set_xlabel("Energy (eV)") + ax.set_xlabel("Energy (eV)", fontsize=fontsize) #ax.legend(loc="best", shadow=True, fontsize=fontsize) return fig + @add_plotly_fig_kwargs + def gridplotly(self, what="dos", spin_mode="automatic", e0="fermie", + sharex=True, sharey=True, xlims=None, fontsize=12, **kwargs): + """ + Plot multiple DOSes on a grid with plotly. + + Args: + what: "dos" to plot DOS, "idos" for integrated DOS. + spin_mode: "total" for total (I)DOS, "resolved" for plotting individual contributions. + Meaningful only if nsppol == 2. + "automatic" to use "resolved" if at least one DOS is polarized. + e0: Option used to define the zero of energy in the band structure plot. Possible values:: + + - ``fermie``: shift all eigenvalues and the DOS to have zero energy at the Fermi energy. + Note that, by default, the Fermi energy is taken from the band structure object + i.e. the Fermi energy computed at the end of the SCF file that produced the density. + This should be ok in semiconductors. In metals, however, a better value of the Fermi energy + can be obtained from the DOS provided that the k-sampling for the DOS is much denser than + the one used to compute the density. See ``edos_fermie``. + - ``edos_fermie``: Use the Fermi energy computed from the DOS to define the zero of energy in both subplots. + Available only if edos_objects is not None + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0``. + + sharex, sharey: True if x (y) axis should be shared. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + fontsize: Axis_label and subtitle fontsize. + + Return: |plotly.graph_objects.Figure| + """ + if spin_mode == "automatic": + spin_mode = "resolved" if any(edos.nsppol == 2 for edos in self.edoses_dict.values()) else "total" + + titles = list(self.edoses_dict.keys()) + edos_list = self.edos_list + + nrows, ncols = 1, 1 + numeb = len(edos_list) + if numeb > 1: + ncols = 2 + nrows = numeb // ncols + numeb % ncols + + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=titles, sharex=sharex, sharey=sharey) + + import plotly.colors as pcolors + # ten colors + l2color = pcolors.DEFAULT_PLOTLY_COLORS + + for i, (label, edos) in enumerate(self.edoses_dict.items()): + irow, icol = divmod(i, ncols) + rcd = PlotlyRowColDesc(irow, icol, nrows, ncols) + + # Here I handle spin and spin_mode. + if edos.nsppol == 1 or spin_mode == "total": + opts = {"color": "black", "width": 1.0} + edos.plotly_traces(fig, e0=e0, what=what, spin=None, rcd=rcd, trace_name=label, line_opts=opts) + + elif spin_mode == "resolved": + # Plot spin resolved quantiies with sign. + # Note to have the same color of the same label for both spins. + opts = {"color": l2color[i], "width": 1.0} + for spin in range(edos.nsppol): + fact = 1 if spin == 0 else -1 + edos.plotly_traces(fig, e0=e0, what=what, spin=spin, rcd=rcd, trace_name=label, line_opts=opts) + else: + raise ValueError("Wrong value for spin_mode: `%s`:" % str(spin_mode)) + + fig.layout.annotations[rcd.iax-1].font.size = fontsize + plotly_set_lims(fig, xlims, "x") + if icol == 0: + fig.layout['yaxis'+str(rcd.iax)].title = {'text': 'DOS (states/eV)' if what == "dos" else "IDOS" + , "font": {"size" : fontsize}} + if irow == nrows - 1: + fig.layout['xaxis' + str(rcd.iax)].title = {'text': 'Energy (eV)', "font": {"size" : fontsize}} + + return fig + def ipw_select_plot(self): # pragma: no cover """ Return an ipython widget with controllers to select the plot. @@ -3804,7 +5210,14 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.combiplot(show=False) yield self.gridplot(show=False) - def write_notebook(self, nbpath=None): + #def yield_plotly_figs(self, **kwargs): # pragma: no cover + # """ + # This function *generates* a predefined list of plotly figures with minimal input from the user. + # """ + # yield self.combiplotly(show=False) + # yield self.gridplotly(show=False) + + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -3825,7 +5238,7 @@ def write_notebook(self, nbpath=None): return self._write_nb_nbpath(nb, nbpath) - def _can_use_basenames_as_labels(self): + def _can_use_basenames_as_labels(self) -> bool: """ Return True if all labels represent valid files and the basenames are unique In this case one can use the file basename instead of the full path in the plots. @@ -3891,7 +5304,7 @@ def __init__(self, structure, ibz, has_timrev, eigens, fermie): #else: @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure @@ -3907,7 +5320,7 @@ def bands(self): def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = [] app = lines.append @@ -3917,7 +5330,7 @@ def to_string(self, verbose=0): return "\n".join(lines) - def add_ucell_scalars(self, name, scalars): + def add_ucell_scalars(self, name, scalars) -> None: """ Add scalar quantities given in the unit cell. @@ -3927,7 +5340,7 @@ def add_ucell_scalars(self, name, scalars): """ self.ucell_scalars[name] = np.reshape(scalars, self.ucdata_shape) - def add_ibz_scalars(self, name, scalars, inshape="skb"): + def add_ibz_scalars(self, name, scalars, inshape="skb") -> None: """ Add scalar quantities given in the IBZ i.e. symmetrize values to get array in unit cell. @@ -4009,7 +5422,7 @@ def xcrysden_view(self): # pragma: no cover from abipy.iotools.visualizer import Xcrysden return Xcrysden(tmp_filepath)() - def to_bxsf(self, filepath, unit="eV"): + def to_bxsf(self, filepath: str, unit: str="eV") -> str: """ Export the full band structure to ``filepath`` in BXSF format suitable for the visualization of the Fermi surface with xcrysden_ (use ``xcrysden --bxsf FILE``). @@ -4029,7 +5442,7 @@ def to_bxsf(self, filepath, unit="eV"): self.ucdata_sbk, self.fermie, unit=unit) return filepath - def get_e0(self, e0): + def get_e0(self, e0) -> float: """ e0: Option used to define the zero of energy in the band structure plot. Possible values: - `fermie`: shift all eigenvalues to have zero energy at the Fermi energy (`self.fermie`). @@ -4050,9 +5463,9 @@ def get_e0(self, e0): return e0 @add_fig_kwargs - def plot_isosurfaces(self, e0="fermie", cmap=None, verbose=0, **kwargs): + def plot_isosurfaces(self, e0="fermie", cmap=None, verbose=0, **kwargs) -> Figure: """ - Plot isosurface with matplotlib_ + Plot isosurface with matplotlib. .. warning:: @@ -4069,9 +5482,9 @@ def plot_isosurfaces(self, e0="fermie", cmap=None, verbose=0, **kwargs): except ImportError: try: from skimage.measure import marching_cubes - except ImportError: + except ImportError as exc: raise ImportError("scikit-image not installed.\n" - "Please install with it with `conda install scikit-image` or `pip install scikit-image`") + "Please install with it with `conda install scikit-image` or `pip install scikit-image`") from exc e0 = self.get_e0(e0) isobands = self.get_isobands(e0) @@ -4166,9 +5579,10 @@ def mvplot_isosurfaces(self, e0="fermie", verbose=0, figure=None, show=True): # return figure @add_fig_kwargs - def plot_contour(self, band, spin=0, plane="xy", elevation=0, ax=None, fontsize=8, **kwargs): + def plot_contour(self, band, spin=0, plane="xy", elevation=0, + ax=None, fontsize=8, **kwargs) -> Figure: """ - Contour plot with matplotlib_. + Contour plot with matplotlib. Args: band: Band index @@ -4263,35 +5677,52 @@ class ElectronBands3D(Bands3D): # pass -class RobotWithEbands(object): +class RobotWithEbands: """ Mixin class for robots associated to files with |ElectronBands|. """ - def combiplot_ebands(self, **kwargs): + def combiplot_ebands(self, **kwargs) -> Figure: """Wraps combiplot method of |ElectronBandsPlotter|. kwargs passed to combiplot.""" return self.get_ebands_plotter().combiplot(**kwargs) - def gridplot_ebands(self, **kwargs): + def combiplotly_ebands(self, **kwargs) -> Figure: + """Wraps combiplotly method of |ElectronBandsPlotter|. kwargs passed to combiplotly.""" + return self.get_ebands_plotter().combiplotly(**kwargs) + + def gridplot_ebands(self, **kwargs) -> Figure: """Wraps gridplot method of |ElectronBandsPlotter|. kwargs passed to gridplot.""" return self.get_ebands_plotter().gridplot(**kwargs) - def boxplot_ebands(self, **kwargs): + def gridplotly_ebands(self, **kwargs): + """Wraps gridplotly method of |ElectronBandsPlotter|. kwargs passed to gridplotly.""" + return self.get_ebands_plotter().gridplotly(**kwargs) + + def boxplot_ebands(self, **kwargs) -> Figure: """Wraps boxplot method of |ElectronBandsPlotter|. kwargs passed to boxplot.""" return self.get_ebands_plotter().boxplot(**kwargs) - def combiboxplot_ebands(self, **kwargs): + def combiboxplot_ebands(self, **kwargs) -> Figure: """Wraps combiboxplot method of |ElectronDosPlotter|. kwargs passed to combiboxplot.""" return self.get_ebands_plotter().combiboxplot(**kwargs) - def combiplot_edos(self, **kwargs): + def combiplot_edos(self, **kwargs) -> Figure: """Wraps combiplot method of |ElectronDosPlotter|. kwargs passed to combiplot.""" return self.get_edos_plotter().combiplot(**kwargs) - def gridplot_edos(self, **kwargs): + #def combiplotly_edos(self, **kwargs): + # """Wraps combiplotly method of |ElectronDosPlotter|. kwargs passed to combiplotly.""" + # return self.get_edos_plotter().combiplotly(**kwargs) + + def gridplot_edos(self, **kwargs) -> Figure: """Wraps gridplot method of |ElectronDosPlotter|. kwargs passed to gridplot.""" return self.get_edos_plotter().gridplot(**kwargs) - def get_ebands_plotter(self, kselect=None, filter_abifile=None, cls=None): + #def gridplotly_edos(self, **kwargs): + # """Wraps gridplotly method of |ElectronDosPlotter|. kwargs passed to gridplotly.""" + # return self.get_edos_plotter().gridplotly(**kwargs) + + def get_ebands_plotter(self, kselect=None, + filter_abifile=None, cls=None) -> ElectronBandsPlotter: """ Build and return an instance of |ElectronBandsPlotter| or a subclass if ``cls`` is not None. @@ -4314,7 +5745,7 @@ def get_ebands_plotter(self, kselect=None, filter_abifile=None, cls=None): return plotter - def get_edos_plotter(self, cls=None, filter_abifile=None, **kwargs): + def get_edos_plotter(self, cls=None, filter_abifile=None, **kwargs) -> ElectronDosPlotter: """ Build and return an instance of |ElectronDosPlotter| or a subclass is cls is not None. @@ -4339,7 +5770,7 @@ def get_edos_plotter(self, cls=None, filter_abifile=None, **kwargs): # return dataframe_from_ebands(self.ncfiles, index=list(self.keys()), with_spglib=with_spglib) @add_fig_kwargs - def plot_egaps(self, sortby=None, hue=None, fontsize=6, **kwargs): + def plot_egaps(self, sortby=None, hue=None, fontsize=6, **kwargs) -> Figure: """ Plot the convergence of the direct and fundamental gaps wrt to the ``sortby`` parameter. Values can optionally be grouped by ``hue``. @@ -4431,7 +5862,7 @@ def get_xy(item, spin, all_xvals, all_abifiles): return fig - def get_ebands_code_cells(self, title=None): + def get_ebands_code_cells(self, title=None) -> list: """Return list of notebook cells.""" nbformat, nbv = self.get_nbformat_nbv() title = "## Code to compare multiple ElectronBands objects" if title is None else str(title) @@ -4444,7 +5875,8 @@ def get_ebands_code_cells(self, title=None): ] @add_fig_kwargs - def gridplot_with_hue(self, hue, ylims=None, fontsize=8, sharex=False, sharey=False, **kwargs): + def gridplot_with_hue(self, hue, ylims=None, fontsize=8, + sharex=False, sharey=False, **kwargs) -> Figure: """ Plot multiple electron bandstructures on a grid. Group bands by ``hue``. @@ -4500,3 +5932,128 @@ def gridplot_with_hue(self, hue, ylims=None, fontsize=8, sharex=False, sharey=Fa set_axlims(ax, ylims, "y") return fig + + + +def find_yaml_section_in_lines(lines, tag): + + magic = f"--- !{tag}" + in_doc, buf = False, [] + + for line in lines: + if line.startswith("#"): + for i, c in enumerate(line): + if c != "#": break + line = line[i:] + + if line.startswith(magic): + in_doc = True + continue + + if in_doc and line.startswith("..."): + in_doc = False + break + + if in_doc: + buf.append(line.strip()) + + if not buf: + raise ValueError(f"Cannot fine Yaml tag: `{magic}`") + + import ruamel.yaml as yaml + return yaml.YAML(typ='safe', pure=True).load("\n".join(buf)) + + +class EdosFile(TextFile): + """ + This object provides an interface to the _EDOS file + (electron DOS usually computed with the tetrahedron method). + The EdosFile has an ElectronDos edos object. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: EdosFile + """ + + def __init__(self, filepath: str): + """ + Parses the EDOS file and construct self.edos object.""" + + super().__init__(filepath) + + # Fortran implementation (eV units). See edos_write in m_ebands.F90. + # + # write(unt,"(a)")"# Energy DOS_TOT IDOS_TOT DOS[spin=UP] IDOS[spin=UP] ..." + # do iw=1,edos%nw + # write(unt,'(es17.8)',advance='no')(edos%mesh(iw) - efermi) * cfact + # do spin=0,edos%nsppol + # write(unt,'(2es17.8)',advance='no')max(edos%dos(iw,spin) / cfact, tol30), max(edos%idos(iw,spin), tol30) + # end do + # write(unt,*) + # end do + + header = [] + data = [] + + for line in self: + if line.startswith("#"): + header.append(line) + else: + line = line.strip() + if not line: continue + data.append([float(v) for v in line.split()]) + + self.header_string = "".join(header) + self.edos_params = find_yaml_section_in_lines(header, "EDOS_PARAMS") + #print(self.edos_params) + nelect = float(self.edos_params["nelect"]) + data = np.array(data).T.copy() + mesh = data[0] + + if len(data) == 5: + # Spin unpolarized case. + spin_dos = data[3] + spin_idos = data[4] + elif len(data) == 7: + # Spin unpolarized case. + spin_dos = data[[3, 5]] + spin_idos = data[[4, 6]] + else: + raise ValueError("Don't know how to interpret %d columns in %s" % (len(data), filepath)) + + #print(mesh.shape, spin_dos.shape, spin_idos.shape) + self.edos = ElectronDos(mesh, spin_dos, nelect, fermie=None, spin_idos=spin_idos) + + def to_string(self, verbose=0) -> str: + """String representation.""" + lines = [self.header_string]; app = lines.append + app(self.edos.to_string(verbose=verbose)) + + return "\n".join(lines) + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + yield self.edos.plot(show=False) + yield self.edos.plot_dos_idos(show=False) + if self.edos.nsppol == 2: + yield self.edos.plot_up_minus_down(show=False) + + +class EdosRobot(Robot): + """ + This robot analyzes the results contained in multiple EDOS files. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: EdosRobot + """ + EXT = "EDOS" + + #def yield_figs(self, **kwargs): # pragma: no cover + # """ + # This function *generates* a predefined list of matplotlib figures with minimal input from the user. + # Used in abiview.py to get a quick look at the results. + # """ + # yield self.plot_lattice_convergence(show=False) + # yield self.plot_gsr_convergence(show=False) + # for fig in self.get_ebands_plotter().yield_figs(): yield fig diff --git a/abipy/electrons/effmass_analyzer.py b/abipy/electrons/effmass_analyzer.py index 167e22a18..f6810209d 100644 --- a/abipy/electrons/effmass_analyzer.py +++ b/abipy/electrons/effmass_analyzer.py @@ -1,139 +1,189 @@ # coding: utf-8 """ -Objects to compute electronic effective masses via finite differences starting from an |ElectronBands| object. +This module provides objects to compute electronic effective masses +via finite differences starting from a GSR file with KS energies defined +along segments passing through the k-point of interest. """ +from __future__ import annotations import numpy as np import pandas as pd -import pymatgen.core.units as units +import abipy.core.abinit_units as abu -from collections import OrderedDict +from typing import List, Union from monty.termcolor import cprint +from abipy.core.structure import Structure from abipy.core.mixins import Has_Structure, Has_ElectronBands from abipy.tools.derivatives import finite_diff from abipy.tools.printing import print_dataframe -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_visible +from abipy.tools.typing import Figure +from abipy.electrons.ebands import ElectronBands +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_visible, set_grid_legend class EffMassAnalyzer(Has_Structure, Has_ElectronBands): """ This objects provides a high-level API to compute electronic effective masses - via finite differences starting from an |ElectronBands| object. + with finite differences starting from a netcdf file with an |ElectronBands| object. Usage example: .. code-block:: python - emana = EffmassAnalyzer.from_file("out_GSR.nc") + from abipy.electrons.effmass_analyzer import EffMassAnalyzer + emana = EffMassAnalyzer.from_file("out_GSR.nc") print(emana) + emana.select_vbm() - #emana.select_kpoint_band(kpoint=[0, 0, 0], band=3) - emans.plot_emass() + emana.summarize() + emana.plot_emass() + + # Alternatively, one can use: + emana.select_cbm() + emana.select_band_edges() + emana.summarize() + emana.plot_emass() + + or the most flexible API: + + emana.select_kpoint_band(kpoint=[0, 0, 0], band=3) + emana.summarize() + emana.plot_emass() .. rubric:: Inheritance Diagram .. inheritance-diagram:: EffMassAnalyzer """ @classmethod - def from_file(cls, filepath): - """Initialize the object from a netcdf file with an ebands object.""" - from abipy.abilab import abiopen - with abiopen(filepath) as ncfile: - return cls(ncfile.ebands, copy=False) - - def __init__(self, ebands, copy=True): - """Initialize the object from an ebands object with k-points along a path.""" + def from_file(cls, filepath: str) -> EffMassAnalyzer: + """ + Initialize the object from a netcdf file providing an |ElectronBands| object, usually a GSR file. + """ + ebands = ElectronBands.as_ebands(filepath) + return cls(ebands, copy=False) + + def __init__(self, ebands: ElectronBands, copy: bool = True): + """ + Initialize the object from an ebands object with energies along segments. + """ if not ebands.kpoints.is_path: - raise ValueError("EffmassAnalyzer requires k-points along a path. Got:\n %s" % repr(ebands.kpoints)) + raise ValueError("EffmassAnalyzer requires k-points along a k-path but got:\n %s" % repr(ebands.kpoints)) # Copy ebands before changing fermie because we don't want side effects! self._ebands = ebands.deepcopy() if copy else ebands self._ebands.set_fermie_to_vbm() self.segments = [] - def __repr__(self): + def __repr__(self) -> str: """Invoked by repr""" return repr(self.ebands) - def __str__(self): + def __str__(self) -> str: """Invoked by str""" return self.ebands.to_string() - def to_string(self, verbose): + def to_string(self, verbose: int = 0) -> str: """ - Human-readable string with useful info such as band gaps, position of HOMO, LOMO... + Human-readable string with info such as band gaps, position of HOMO, LOMO, etc. Args: verbose: Verbosity level. """ return self.ebands.to_string(with_structure=True, with_kpoints=True, verbose=verbose) - def select_kpoint_band(self, kpoint, band, spin=0, etol_ev=1e-3): + @property + def structure(self) -> Structure: + """|Structure| object.""" + return self.ebands.structure + + @property + def ebands(self) -> ElectronBands: + """|ElectronBands| object.""" + return self._ebands + + def select_kpoint_band(self, kpoint, band: int, spin: int = 0, degtol_ev: float = 1e-3) -> int: """ Construct line segments based on the k-point ``kpoint`` and the band index ``band``. This is the most flexible interface and allows one to include extra bands - by increasing the value of `etol_ev`. + by increasing the value of `degtol_ev`. Args: - kpoint: Fractional coordinates or |Kpoint| object. - band: Band index + kpoint: Fractional coordinates or |Kpoint| object or index of the k-point. + band: Band index. spin: Spin index. - etol_ev: Include all bands at this k-point whose energy differ from the one at - (kpoint, band) less that ``etol_ev`` in eV. + degtol_ev: Include all bands at this k-point whose energy differ from the one at + (kpoint, band) less that ``degtol_ev`` in eV. + + Return: Number of segments. """ # Find all k-indices associated to the input kpoint. ik_indices = self.kpoints.get_all_kindices(kpoint) ik = ik_indices[0] - # Find band indices of "degenerate" states within tolerance etol_ev. + # Find band indices of "degenerate" states within tolerance degtol_ev. e0 = self.ebands.eigens[spin, ik, band] - band_inds_k = [be[0] for be in enumerate(self.ebands.eigens[spin, ik]) if abs(be[1] - e0) <= etol_ev] + band_inds_k = [be[0] for be in enumerate(self.ebands.eigens[spin, ik]) if abs(be[1] - e0) <= degtol_ev] band_inds_k = len(ik_indices) * [band_inds_k] - self._build_segments(spin, ik_indices, band_inds_k) + return self._build_segments(spin, ik_indices, band_inds_k) - def select_cbm(self, spin=0, etol_ev=1e-3): - """Select conduction band minimum.""" - ik_indices, band_inds_k = self._select(["cbm"], spin, etol_ev) - self._build_segments(spin, ik_indices, band_inds_k) + def select_cbm(self, spin: int = 0, degtol_ev: float = 1e-3) -> int: + """ + Select the conduction band minimum for the given spin. Return: Number of segments. + """ + ik_indices, band_inds_k = self._select(["cbm"], spin, degtol_ev) + return self._build_segments(spin, ik_indices, band_inds_k) - def select_vbm(self, spin=0, etol_ev=1e-3): - """Select valence band maximum.""" - ik_indices, band_inds_k = self._select(["vbm"], spin, etol_ev) - self._build_segments(spin, ik_indices, band_inds_k) + def select_vbm(self, spin: int = 0, degtol_ev: float = 1e-3) -> int: + """ + Select the valence band maximum for the given spin, Return: Number of segments. + """ + ik_indices, band_inds_k = self._select(["vbm"], spin, degtol_ev) + return self._build_segments(spin, ik_indices, band_inds_k) - def select_band_edges(self, spin=0, etol_ev=1e-3): - """Select conduction band minimum and valence band maximum.""" - ik_indices, band_inds_k = self._select(["cbm", "vbm"], spin, etol_ev) - self._build_segments(spin, ik_indices, band_inds_k) + def select_band_edges(self, spin: int = 0, degtol_ev: float = 1e-3) -> int: + """ + Select conduction band minimum and valence band maximum. Return: Number of segments. + """ + ik_indices, band_inds_k = self._select(["cbm", "vbm"], spin, degtol_ev) + return self._build_segments(spin, ik_indices, band_inds_k) - def _select(self, what_list, spin, etol_ev): + def _select(self, what_list, spin, degtol_ev): + """ + Low-level method to select the electronic states + """ ik_indices, band_inds_k = [], [] if "vbm" in what_list: + # Find band indices and k-indices for the valence band maximum homo = self.ebands.homos[spin] - homo_iks = self.kpoints.get_all_kindices(homo.kpoint) + homo_iks = self.kpoints.get_all_kindices(homo.kpoint).tolist() + #homo_iks = np.flatnonzero(np.abs(self.ebands.eigens[spin, :, homo.band] - homo.eig) < 1e-4) ik = homo_iks[0] e0 = self.ebands.eigens[spin, ik, homo.band] - homo_bands = [be[0] for be in enumerate(self.ebands.eigens[spin, ik]) if abs(be[1] - e0) <= etol_ev] + homo_bands = [be[0] for be in enumerate(self.ebands.eigens[spin, ik]) if abs(be[1] - e0) <= degtol_ev] ik_indices.extend(homo_iks) for i in range(len(homo_iks)): band_inds_k.append(homo_bands) if "cbm" in what_list: + # Find band indices and k-indices for the conduction band minimum lumo = self.ebands.lumos[spin] + band = lumo.band lumo_iks = self.kpoints.get_all_kindices(lumo.kpoint) + #lumo_iks = np.flatnonzero(abs(self.ebands.eigens[spin, :, lumo.band] - lumo.eig) < 1e-4) + #print("lumo_iks:", lumo_iks) ik = lumo_iks[0] e0 = self.ebands.eigens[spin, ik, lumo.band] - lumo_bands = [be[0] for be in enumerate(self.ebands.eigens[spin, ik]) if abs(be[1] - e0) <= etol_ev] + lumo_bands = [be[0] for be in enumerate(self.ebands.eigens[spin, ik]) if abs(be[1] - e0) <= degtol_ev] ik_indices.extend(lumo_iks) for i in range(len(lumo_iks)): band_inds_k.append(lumo_bands) return ik_indices, band_inds_k - def _build_segments(self, spin, ik_indices, band_inds_k): + def _build_segments(self, spin, ik_indices, band_inds_k) -> int: """ - Build list of segments. + Build list of segments. Return: Number of segments Args: spin: Spin index. @@ -148,51 +198,47 @@ def _build_segments(self, spin, ik_indices, band_inds_k): raise RuntimeError("len(ik_indices) %s != len(band_inds_k) %s" % (dims[0], dims[1])) self.segments = [] + for ik, bids in zip(ik_indices, band_inds_k): for iline, line in enumerate(self.kpoints.lines): if line[-1] >= ik >= line[0]: break else: + #print("line[-1]", line[-1], "ik", ik, "line[0]", line[0]) raise ValueError("Cannot find k-index `%s` in lines: `%s`" % (ik, self.kpoints.lines)) - #print("line[-1]", line[-1], "ik", ik, "line[0]", line[0]) self.segments.append(Segment(ik, spin, line, bids, self.ebands)) - @property - def ebands(self): - """|ElectronBands| object.""" - return self._ebands + return len(self.segments) - @property - def structure(self): - """|Structure| object.""" - return self.ebands.structure - - def _consistency_check(self): + def _consistency_check(self) -> None: if not self.segments: methods = ", ".join(["select_cbm", "select_vbm", "select_band_edges", "select_kpoint_band"]) raise RuntimeError("You must call one among: `%s`\nto build segments before analyzing data." % methods) - def summarize(self, acc=4): + def summarize(self, acc_list=None) -> None: + """ + Compute effective masses with different accuracies and print results in tabular format. + Useful to understand if results are sensitive to the number of points in the finite difference. + Note however that numerical differentiation is performed with the same delta_k step. + """ self._consistency_check() for segment in self.segments: - df = segment.get_dataframe_with_accuracies(acc_list=[acc]) - title = "k: %s, spin: %s, nbands: %d" % (repr(segment.k0), segment.spin, segment.nb) - #label="direction: %s" % segment.kdir.tos(m="fracart") if ib == 0 else None) + df = segment.get_dataframe_with_accuracies(acc_list=acc_list) + title = "k: %s, spin: %s, nbands in segment: %d, step: %.3f Ang-1\n(reduced/cart) direction: %s\n" % ( + repr(segment.k0), segment.spin, segment.nb, segment.dk, segment.kdir.tos(m="fracart", scale=True)) print_dataframe(df, title=title) - #print("") - - #def print_segments(self): - # self._consistency_check() - # for segment in self.segments @add_fig_kwargs - def plot_emass(self, acc=4, fontsize=6, colormap="viridis", **kwargs): + def plot_emass(self, acc=4, units="eV", sharey=False, fontsize=6, + colormap="viridis", verbose=0, **kwargs) -> Figure: """ - Plot electronic dispersion and quadratic curve based on the + Plot electronic dispersion and quadratic approximant based on the effective masses computed along each segment. Args: - acc: + acc: Accuracy of finite diff. + units: Units for band energies. "eV" or "meV". + sharey: True if y axis (energies) should be shared. fontsize: legend and title fontsize. colormap: matplotlib colormap """ @@ -201,16 +247,21 @@ def plot_emass(self, acc=4, fontsize=6, colormap="viridis", **kwargs): # Build grid of plots for this spin. num_plots, ncols, nrows = len(self.segments), 1, 1 if num_plots > 1: - ncols = 2 + ncols = 1 nrows = (num_plots // ncols) + (num_plots % ncols) ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, - sharex=False, sharey=True, squeeze=False) + sharex=False, sharey=sharey, squeeze=False) ax_list = ax_list.ravel() for iseg, (segment, ax) in enumerate(zip(self.segments, ax_list)): + if verbose: + print(f"== SEGMENT NUMBER: {iseg}") + print(segment) + print(2 * "\n") + irow, icol = divmod(iseg, ncols) - segment.plot_emass(ax=ax, acc=acc, fontsize=fontsize, colormap=colormap, show=False) + segment.plot_emass(ax=ax, acc=acc, units=units, fontsize=fontsize, colormap=colormap, show=False) if iseg != 0: set_visible(ax, False, "ylabel") if irow != nrows - 1: set_visible(ax, False, "xticklabels") @@ -220,14 +271,12 @@ def plot_emass(self, acc=4, fontsize=6, colormap="viridis", **kwargs): return fig @add_fig_kwargs - def plot_all_segments(self, ax=None, colormap="viridis", fontsize=8, **kwargs): + def plot_all_segments(self, ax=None, colormap="viridis", fontsize=8, **kwargs) -> Figure: """ Args: colormap: matplotlib colormap fontsize: legend and title fontsize. - - Return: |matplotlib-Figure| """ self._consistency_check() @@ -235,34 +284,34 @@ def plot_all_segments(self, ax=None, colormap="viridis", fontsize=8, **kwargs): cmap = plt.get_cmap(colormap) markers = ["o", "s", "x", "D", "+", "v", ">", "<"] * 8 - ax.grid(True) - ax.set_ylabel('Energy (eV)') pad = 0 for iseg, segment in enumerate(self.segments): color = cmap(float(iseg / len(self.segments))) for ib in range(segment.nb): ax.plot(segment.kpoint_indices + pad, segment.energies_bk[ib], linestyle=":", marker=markers[ib], markersize=2, color=color, - label="direction: %s" % segment.kdir.tos(m="fracart") if ib == 0 else None) + label="direction: %s" % segment.kdir.tos(m="fracart", scale=True) if ib == 0 else None) pad += 10 - ax.legend(loc="best", fontsize=fontsize, shadow=True) #title = "k: %s, spin: %s, nband: %d" % (repr(self.efm_kpoint), self.spin, segment.nb) - #ax.set_title(title, fontsize=fontsize) + set_grid_legend(ax, fontsize, ylabel='Energy (eV)') #, title=title) return fig class Segment: """ - .. attribute:: Z - - Atomic number + This object stores the KS energies along a particular segment in k-space passing through k0. + Provides methods to compute effective masses at k0 via finite differences. """ - def __init__(self, ik, spin, line, band_inds, ebands): + def __init__(self, ik: int, spin: int, line, band_inds: List[int], ebands: ElectronBands): """ Args: - kpoint_indices (list(int)): the kpoint indices of the segment + ik: index of the k0 k-point in ebands.eigens + spin: spin index + line: indices of k-points forming the segment (index in ebands.kpoints list) + band_inds: List of bands in ebands.eigens. + ebands: |ElectronBands| object. """ self.ik = ik self.spin = spin @@ -288,91 +337,95 @@ def __init__(self, ik, spin, line, band_inds, ebands): self.energies_bk.append(ebands.eigens[spin, line, band]) self.energies_bk = np.reshape(self.energies_bk, (len(band_inds), len(line))) - self.nb = len(self.energies_bk) + self.nb, self.nk = self.energies_bk.shape self.ebands = ebands - def __repr__(self): + def __repr__(self) -> str: return "k0: %s, kdir: %s, dk: %.3f (Ang-1)" % (repr(self.k0), repr(self.kdir), self.dk) - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = []; app = lines.append app("k-point: %s, nband: %s, spin: %d" % (self.k0.to_string(verbose=verbose), self.nb, self.spin)) return "\n".join(lines) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def get_fd_emass_d2(self, enes_kline, acc): + def get_fd_emass_d2(self, enes_kline, acc: int) -> tuple: + # Note the use of self.kpos so that the stencil is centered on the kpos index if we have points of both sides. d2 = finite_diff(enes_kline, self.dk, order=2, acc=acc, index=self.kpos) - emass = 1. / (d2.value * (units.eV_to_Ha / units.bohr_to_ang ** 2)) + emass = 1. / (d2.value * (abu.eV_Ha / abu.Bohr_Ang ** 2)) return emass, d2 - def get_dataframe_with_accuracies(self, acc_list=(2, 4, 6, 8)): + def get_dataframe_with_accuracies(self, acc_list=None) -> pd.DataFrame: """ - Build and return a |pandas-Dataframe| with effective masses computed with different accuracies (npts) + Build and return a |pandas-Dataframe| with the effective masses computed with different accuracies (npts) """ + if acc_list is None: + acc_list = (2, 4, 6, 8) if self.kpos_type == "central" else (1, 2, 3, 4, 5, 6) + rows = [] for acc in acc_list: - emass_dict = OrderedDict() + emass_dict = {} for ib, enes_kline in enumerate(self.energies_bk): - emass, d2 = self.get_fd_emass_d2(enes_kline, acc) - emass_dict["m%d" % ib] = emass - - od = OrderedDict([ - ("acc", acc), ("npts", d2.npts), - ]) - od.update(emass_dict) - rows.append(od) - - return pd.DataFrame(rows, columns=list(rows[0].keys())) + #print("enes_kline", enes_kline) + try: + emass, d2 = self.get_fd_emass_d2(enes_kline, acc) + emass_dict["effm_b%d" % ib] = emass + except (ValueError, KeyError) as exc: + cprint(exc, color="red") + #emass_dict["effm_b%d" % ib] = None + pass + + if emass_dict: + od = {"accuracy": acc, "npts": d2.npts} + od.update(emass_dict) + rows.append(od) + + return pd.DataFrame(rows, columns=list(rows[0].keys())).set_index('accuracy') @add_fig_kwargs - def plot_emass(self, acc=4, ax=None, fontsize=8, colormap="viridis", **kwargs): + def plot_emass(self, acc: int = 4, units="eV", ax=None, fontsize: int = 8, + colormap: str = "viridis", **kwargs) -> Figure: """ + Plot band dispersion and quadratic approximation. Args: acc: + units: Units for band energies. "eV" or "meV". ax: |matplotlib-Axes| or None if a new figure should be created. fontsize: legend and title fontsize. colormap: matplotlib colormap - - Return: |matplotlib-Figure| """ ax, fig, plt = get_ax_fig_plt(ax=ax) - ax.grid(True) cmap = plt.get_cmap(colormap) + ufact = {"ev": 1, "mev": 1000}[units.lower()] + for ib, enes_kline in enumerate(self.energies_bk): # Plot KS-DFT points. xs = range(len(enes_kline)) - ax.scatter(xs, enes_kline, marker="o", color=cmap(float(ib) / self.nb)) + ax.scatter(xs, enes_kline * ufact, marker="o", alpha=0.8, s=8, color=cmap(float(ib) / self.nb)) # Compute effective masses try: + #print("enes_kline", enes_kline) emass, d2 = self.get_fd_emass_d2(enes_kline, acc) except Exception as exc: - cprint("Eception for segment: %s" % str(self), "red") - raise exc + cprint("Exception for segment: %s" % str(self), "red") + continue - ys = ((self.kmk0_2 * units.bohr_to_ang ** 2) / (2 * emass)) * units.Ha_to_eV + self.energies_bk[ib, self.kpos] - label = r"$m^*$ = %.3f, %d-pts %s finite-diff" % (emass, d2.npts, d2.mode) - ax.plot(xs, ys, linestyle="--", color=cmap(float(ib) / self.nb), label=label) + ys = ((self.kmk0_2 * abu.Bohr_Ang ** 2) / (2 * emass)) * \ + abu.Ha_eV + self.energies_bk[ib, self.kpos] - ax.legend(loc="best", fontsize=fontsize, shadow=True) - title = r"${\bf k}_0$: %s, direction: %s" % (repr(self.k0), self.kdir.tos(m="fracart")) - ax.set_title(title, fontsize=fontsize) - ax.set_ylabel('Energy (eV)') + label = r"$m^*$ = %.3f, %d-pts %s finite-diff" % (emass, d2.npts, d2.mode) + ax.plot(xs, ys * ufact, linestyle="--", color=cmap(float(ib) / self.nb), label=label) - return fig + ax.axvline(self.kpos, c="r", ls=":", lw=2) + title = r"${\bf k}_0$: %s, direction: %s, step: %.3f $\AA^{-1}$" % ( + repr(self.k0), self.kdir.tos(m="fracart", scale=True), self.dk) + set_grid_legend(ax, fontsize, ylabel=f'Energy ({units})', title=title) -#class MultipleEffMassAnalyzer: -# -# @classmethod -# def from_files(cls, filepaths): -# """Initialize the object from a list of files providing an |ElectronBands| object.""" -# return cls([ElectronBands.from_file(f, copy=False) for f in list_strings(filepaths)]) -# -# def __init__(self, eband_list) -# self.eband_list = eband_list + return fig diff --git a/abipy/electrons/eskw.py b/abipy/electrons/eskw.py index cb7508bca..8d991414f 100644 --- a/abipy/electrons/eskw.py +++ b/abipy/electrons/eskw.py @@ -24,7 +24,7 @@ class EskwFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter): .. inheritance-diagram:: EskwFile """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str): """Initialize the object from a netcdf_ file.""" return cls(filepath) diff --git a/abipy/electrons/fatbands.py b/abipy/electrons/fatbands.py index 165d3b59a..1098b8c7d 100644 --- a/abipy/electrons/fatbands.py +++ b/abipy/electrons/fatbands.py @@ -1,5 +1,6 @@ # coding: utf-8 """Classes for the analysis of electronic fatbands and projected DOSes.""" +from __future__ import annotations import traceback import numpy as np @@ -11,9 +12,12 @@ from monty.string import marquee from pymatgen.core.periodic_table import Element from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter -from abipy.electrons.ebands import ElectronsReader +from abipy.core.structure import Structure +from abipy.electrons.ebands import ElectronBands, ElectronsReader from abipy.tools.numtools import gaussian -from abipy.tools.plotting import set_axlims, get_axarray_fig_plt, add_fig_kwargs +from abipy.tools.typing import Figure +from abipy.tools.plotting import (set_axlims, get_axarray_fig_plt, add_fig_kwargs, get_figs_plotly, + add_plotly_fig_kwargs, PlotlyRowColDesc, plotly_set_lims) def gaussians_dos(dos, mesh, width, values, energies, weights): @@ -52,6 +56,7 @@ class FatBandsFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, N # Markers used for up/down bands (collinear spin) marker_spin = {0: "^", 1: "v"} + marker_spin_plotly = {0: 5, 1: 6} # \U starts an eight-character Unicode escape. raw strings do not work in python2.7 # and we need a latex symbol to avoid errors in matplotlib --> replace myuparrow --> uparrow @@ -83,13 +88,13 @@ class FatBandsFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, N #klabel_size = None @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> FatBandsFile: """Initialize the object from a netcdf_ file""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) - self.reader = r = ElectronsReader(filepath) + self.r = self.reader = r = ElectronsReader(filepath) # Initialize the electron bands from file self._ebands = r.read_ebands() @@ -114,7 +119,7 @@ def __init__(self, filepath): self.xredsph_extra = r.read_value("xredsph_extra") if self.natsph_extra != 0: raise NotImplementedError("natsph_extra is not implemented, " - "but it's just a matter of using natom + natsph_extra") + "but it's just a matter of using natom + natsph_extra") # This is a tricky part. Note the following: # If usepaw == 0, lmax_type gives the max l included in the non-local part of Vnl @@ -128,7 +133,7 @@ def __init__(self, filepath): self.lmax_type[:] = self.mbesslang - 1 self.typat = r.read_value("atom_species") - 1 # F --> C - self.lmax_atom = np.empty(self.natom, dtype=np.int) + self.lmax_atom = np.empty(self.natom, dtype=int) for iat in range(self.natom): self.lmax_atom[iat] = self.lmax_type[self.typat[iat]] # lsize is used to dimension arrays that depend on L. @@ -196,20 +201,20 @@ def _read_wal_sbk(self, key="dos_fractions"): if self.natsph == self.natom and np.all(self.iatsph == np.arange(self.natom)): # All atoms have been calculated and the order if ok. - wal_sbk = np.reshape(self.reader.read_value(key), wshape) + wal_sbk = np.reshape(self.r.read_value(key), wshape) else: - # Need to tranfer data. Note np.zeros. + # Need to transfer data. Note np.zeros. wal_sbk = np.zeros(wshape) if self.natsph == self.natom and np.any(self.iatsph != np.arange(self.natom)): print("Will rearrange filedata since iatsp != [1, 2, ...])") - filedata = np.reshape(self.reader.read_value(key), wshape) + filedata = np.reshape(self.r.read_value(key), wshape) for i, iatom in enumerate(self.iatsph): wal_sbk[iatom] = filedata[i] else: print("natsph < natom. Will set to zero the PJDOS contributions for the atoms that are not included.") assert self.natsph < self.natom - filedata = np.reshape(self.reader.read_value(key), + filedata = np.reshape(self.r.read_value(key), (self.natsph, self.mbesslang, self.nsppol, self.mband, self.nkpt)) for i, iatom in enumerate(self.iatsph): wal_sbk[iatom] = filedata[i] @@ -243,20 +248,20 @@ def _read_walm_sbk(self, key="dos_fraction_m"): if self.natsph == self.natom and np.all(self.iatsph == np.arange(self.natom)): # All atoms have been calculated and the order if ok. - walm_sbk = np.reshape(self.reader.read_value(key), wshape) + walm_sbk = np.reshape(self.r.read_value(key), wshape) else: - # Need to tranfer data. Note np.zeros. + # Need to transfer data. Note np.zeros. walm_sbk = np.zeros(wshape) if self.natsph == self.natom and np.any(self.iatsph != np.arange(self.natom)): print("Will rearrange filedata since iatsp != [1, 2, ...])") - filedata = np.reshape(self.reader.read_value(key), wshape) + filedata = np.reshape(self.r.read_value(key), wshape) for i, iatom in enumerate(self.iatsph): walm_sbk[iatom] = filedata[i] else: print("natsph < natom. Will set to zero the PJDOS contributions for the atoms that are not included.") assert self.natsph < self.natom - filedata = np.reshape(self.reader.read_value(key), + filedata = np.reshape(self.r.read_value(key), (self.natsph, self.mbesslang**2, self.nsppol, self.mband, self.nkpt)) for i, iatom in enumerate(self.iatsph): walm_sbk[iatom] = filedata[i] @@ -271,30 +276,30 @@ def _read_walm_sbk(self, key="dos_fraction_m"): return walm_sbk @property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object.""" return self._ebands @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() return od - def close(self): + def close(self) -> None: """Called at the end of the ``with`` context manager.""" - return self.reader.close() + return self.r.close() def __str__(self): """String representation""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = []; app = lines.append @@ -327,7 +332,7 @@ def to_string(self, verbose=0): if verbose > 1: app("") - app(self.hdr.to_string(verbose=verbose, title="Abinit Header")) + app(self.hdr.to_str(verbose=verbose, title="Abinit Header")) return "\n".join(lines) @@ -421,9 +426,19 @@ def eb_plotax_kwargs(self, spin): #klabel_size=self.klabel_size, ) + def eb_plotly_kwargs(self, spin): + """ + Dictionary with the options passed to ``ebands.plot_ax`` + when plotting a band line with spin index ``spin``. + Subclasses can redefine the implementation to customize the plots. + """ + return dict(width=self.linewidth, color=self.linecolor), \ + dict(marker = dict(size=self.marker_size+5, symbol=self.marker_spin_plotly[spin])) + #klabel_size=self.klabel_size, + @add_fig_kwargs def plot_fatbands_siteview(self, e0="fermie", view="inequivalent", fact=1.0, fontsize=12, - ylims=None, blist=None, **kwargs): + ylims=None, blist=None, **kwargs) -> Figure: """ Plot fatbands for each atom in the unit cell. By default, only the **inequivalent** atoms are shown. @@ -511,22 +526,22 @@ def plot_fatbands_siteview(self, e0="fermie", view="inequivalent", fact=1.0, fon @add_fig_kwargs def plot_fatbands_lview(self, e0="fermie", fact=1.0, ax_mat=None, lmax=None, - ylims=None, blist=None, fontsize=12, **kwargs): + ylims=None, blist=None, fontsize=12, **kwargs) -> Figure: """ - Plot the electronic fatbands grouped by L. + Plot the electronic fatbands grouped by L with matplotlib. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values: - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy. - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV - None: Don't shift energies, equivalent to ``e0 = 0`` - fact: float used to scale the stripe size. + fact: float used to scale the stripe size. ax_mat: Matrix of axes, if None a new figure is produced. lmax: Maximum L included in plot. None means full set available on file. ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used blist: List of band indices for the fatband plot. If None, all bands are included - fontsize: legend and title fontsize. + fontsize: Legend fontsize. Returns: |matplotlib-Figure| """ @@ -576,9 +591,95 @@ def plot_fatbands_lview(self, e0="fermie", fact=1.0, ax_mat=None, lmax=None, ax_mat[0, 0].legend(loc="best", fontsize=fontsize, shadow=True) return fig + @add_plotly_fig_kwargs + def plotly_fatbands_lview(self, e0="fermie", fact=1.0, fig=None, lmax=None, + ylims=None, blist=None, fontsize=12, band_and_dos=0, **kwargs): + """ + Plot the electronic fatbands grouped by L with plotly. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy. + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0`` + fact: float used to scale the stripe size. + fig: The fig to plot on. None if a new figure should be created. + lmax: Maximum L included in plot. None means full set available on file. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` + blist: List of band indices for the fatband plot. If None, all bands are included + fontsize: Legend and subtitle fontsize. + band_and_dos : Define if both band and dos will be plotted on the same ``fig``. + If 0 (default), only plot band on the created figure (when fig==None); + If 1, plot band on odd_col of ``fig`` + + Returns: |plotly.graph_objects.Figure| + """ + mylsize = self.lsize if lmax is None else lmax + 1 + nrows, ncols = self.nsppol, mylsize + # Build fig with subplots. + if fig is None: + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=list(range(1, nrows * ncols + 1)), + sharex=True, sharey=True, horizontal_spacing=0.02) + + ebands = self.ebands + e0 = ebands.get_e0(e0) + x = np.arange(self.nkpt) + mybands = range(ebands.mband) if blist is None else blist + + for spin in range(self.nsppol): + for l in range(mylsize): + rcd = PlotlyRowColDesc(spin, l+band_and_dos*l, nrows, ncols*(1+band_and_dos)) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax + + line_opts, marker_opts = self.eb_plotly_kwargs(spin) + ebands.plotly_traces(fig, e0, rcd=rcd, spin=spin, line_opts=line_opts, **marker_opts) + + if self.nsppol == 2: + title = r"$%s , %s$" % (self.l2tex[l].replace('$',''), self.spin2tex[spin].replace('$','')) + else: + title = "%s" % self.l2tex[l] + ebands.decorate_plotly(fig, iax=iax) + fig.layout.annotations[iax - 1].text = title + fig.layout.annotations[iax - 1].font.size = fontsize + + if l != 0: + yaxis = 'yaxis%u' % iax + fig.layout[yaxis].title.text = "" + # Only the first column show labels. + + for ib, band in enumerate(mybands): + yup = ebands.eigens[spin, :, band] - e0 + ydown = yup + for symbol in self.symbols: + wlk = self.get_wl_symbol(symbol, spin=spin, band=band) * (fact / 2) + w = wlk[l] + y1, y2 = yup + w, ydown - w + # Add width around each band. Only the [0,0] plot show the legend. + fill_line_opts = {'color': self.symbol2color[symbol], 'width': 0.1} + fig.add_scatter(x=x, y=yup, mode='lines', line=fill_line_opts, opacity=self.alpha, + name='', showlegend=False, legendgroup=symbol, row=ply_row, col=ply_col) + fig.add_scatter(x=x, y=y1, mode='lines', line=fill_line_opts, opacity=self.alpha, + name='', showlegend=False, legendgroup=symbol, fill='tonexty', row=ply_row, col=ply_col) + fig.add_scatter(x=x, y=ydown, mode='lines', line=fill_line_opts, opacity=self.alpha, + name='', showlegend=False, legendgroup=symbol, row=ply_row, col=ply_col) + if (l, spin, ib) == (0, 0, 0): + fig.add_scatter(x=x, y=y2, mode='lines', line=fill_line_opts, opacity=self.alpha, + name=symbol, showlegend=True, legendgroup=symbol, fill='tonexty', + row=ply_row, col=ply_col) + else: + fig.add_scatter(x=x, y=y2, mode='lines', line=fill_line_opts, opacity=self.alpha, + name='', showlegend=False, legendgroup=symbol, fill='tonexty', + row=ply_row, col=ply_col) + yup, ydown = y1, y2 + + plotly_set_lims(fig, ylims, "y", iax=iax) + + fig.layout.legend.font.size = fontsize + return fig + @add_fig_kwargs def plot_fatbands_mview(self, iatom, e0="fermie", fact=1.0, lmax=None, - ylims=None, blist=None, **kwargs): + ylims=None, blist=None, **kwargs) -> Figure: """ Plot the electronic fatbands grouped by LM. @@ -661,10 +762,10 @@ def plot_fatbands_mview(self, iatom, e0="fermie", fact=1.0, lmax=None, return fig @add_fig_kwargs - def plot_fatbands_typeview(self, e0="fermie", fact=1.0, lmax=None, ax_mat=None, ylims=None, - blist=None, fontsize=8, **kwargs): + def plot_fatbands_typeview(self, e0="fermie", fact=1.0, lmax=None, l_list=None, ax_mat=None, ylims=None, + blist=None, fontsize=8, **kwargs) -> Figure: """ - Plot the electronic fatbands grouped by atomic type. + Plot the electronic fatbands grouped by atomic type with matplotlib. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values: @@ -673,11 +774,12 @@ def plot_fatbands_typeview(self, e0="fermie", fact=1.0, lmax=None, ax_mat=None, - None: Don't shift energies, equivalent to ``e0 = 0`` fact: float used to scale the stripe size. lmax: Maximum L included in plot. None means full set available on file. + l_list: List of L values to plot. None to plot all L up to lmax. ax_mat: Matrix of axis. None if a new figure should be created. ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used blist: List of band indices for the fatband plot. If None, all bands are included - fontsize: legend and title fontsize. + fontsize: Legend fontsize. Returns: |matplotlib-Figure| """ @@ -711,6 +813,7 @@ def plot_fatbands_typeview(self, e0="fermie", fact=1.0, lmax=None, ax_mat=None, yup = ebands.eigens[spin, :, band] - e0 ydown = yup for l in range(min(self.lmax_symbol[symbol] + 1, mylsize)): + if l_list is not None and l not in l_list: continue # Add width around each band. w = wl_sbk[l, spin, band] y1, y2 = yup + w, ydown - w @@ -725,8 +828,92 @@ def plot_fatbands_typeview(self, e0="fermie", fact=1.0, lmax=None, ax_mat=None, ax_mat[0, 0].legend(loc="best", fontsize=fontsize, shadow=True) return fig + @add_plotly_fig_kwargs + def plotly_fatbands_typeview(self, e0="fermie", fact=1.0, lmax=None, fig=None, ylims=None, + blist=None, fontsize=12, band_and_dos=0, **kwargs): + """ + Plot the electronic fatbands grouped by atomic type with plotly. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy. + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0`` + fact: float used to scale the stripe size. + lmax: Maximum L included in plot. None means full set available on file. + fig: The fig to plot on. None if a new figure should be created. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` + blist: List of band indices for the fatband plot. If None, all bands are included + fontsize: Legend and subtitle fontsize. + band_and_dos : Define if both band and dos will be plotted on the same ``fig``. + If 0(default), only plot band on the created figure (when fig==None); + If 1, plot band on odd_col of ``fig`` + + Returns: |plotly.graph_objects.Figure| + """ + mylsize = self.lsize if lmax is None else lmax + 1 + + nrows, ncols = self.nsppol, self.ntypat + # Build fig with (nsppol, ntypat) subplots. + if fig is None: + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=list(range(1, nrows*ncols+1)), + sharex=True, sharey=True, horizontal_spacing=0.02) + + ebands = self.ebands + e0 = ebands.get_e0(e0) + x = np.arange(self.nkpt) + mybands = range(ebands.mband) if blist is None else blist + + for itype, symbol in enumerate(self.symbols): + wl_sbk = self.get_wl_symbol(symbol) * (fact / 2) + for spin in range(self.nsppol): + rcd = PlotlyRowColDesc(spin, itype+band_and_dos*itype, nrows, ncols*(1+band_and_dos)) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax + + line_opts, marker_opts = self.eb_plotly_kwargs(spin) + ebands.plotly_traces(fig, e0, rcd=rcd, spin=spin, line_opts=line_opts, **marker_opts) + + title = (r"$\text{type=%s, }%s$" % (symbol, self.spin2tex[spin].replace('$','')) if self.nsppol == 2 + else "type=%s" % symbol) + ebands.decorate_plotly(fig, iax=iax) + fig.layout.annotations[iax - 1].text = title + fig.layout.annotations[iax - 1].font.size = fontsize + if itype != 0: + yaxis = 'yaxis%u' % iax + fig.layout[yaxis].title.text = "" + + # Plot fatbands for given (symbol, spin) and all angular momenta. + for band in mybands: + yup = ebands.eigens[spin, :, band] - e0 + ydown = yup + for l in range(min(self.lmax_symbol[symbol] + 1, mylsize)): + # Add width around each band. + w = wl_sbk[l, spin, band] + y1, y2 = yup + w, ydown - w + fill_line_opts = {'color': self.l2color[l], 'width': 0.1} + fig.add_scatter(x=x, y=yup, mode='lines', line=fill_line_opts, name='', + opacity=self.alpha, showlegend=False, legendgroup=l, row=ply_row, col=ply_col) + fig.add_scatter(x=x, y=y1, mode='lines', line=fill_line_opts, name='', opacity=self.alpha, + showlegend=False, legendgroup=l, fill='tonexty', row=ply_row, col=ply_col) + fig.add_scatter(x=x, y=ydown, mode='lines', line=fill_line_opts, name='', + opacity=self.alpha, showlegend=False, legendgroup=l, row=ply_row, col=ply_col) + if (itype, spin, band) == (0, 0, 0): + fig.add_scatter(x=x, y=y2, mode='lines', line=fill_line_opts, name=self.l2tex[l], + opacity=self.alpha, showlegend=True, legendgroup=l, fill='tonexty', + row=ply_row, col=ply_col) + else: + fig.add_scatter(x=x, y=y2, mode='lines', line=fill_line_opts, name='', opacity=self.alpha, + showlegend=False, legendgroup=l, fill='tonexty', row=ply_row, col=ply_col) + # Note: could miss a label in the other plots if lmax is not large enough! + yup, ydown = y1, y2 + + plotly_set_lims(fig, ylims, "y", iax=iax) + + fig.layout.legend.font.size = fontsize + return fig + @add_fig_kwargs - def plot_spilling(self, e0="fermie", fact=1.0, ax_list=None, ylims=None, blist=None, **kwargs): + def plot_spilling(self, e0="fermie", fact=1.0, ax_list=None, ylims=None, blist=None, **kwargs) -> Figure: """ Plot the electronic fatbands @@ -832,7 +1019,7 @@ def plot_spilling(self, e0="fermie", fact=1.0, ax_list=None, ylims=None, blist=N # # Dos fractions contains: [ndosfraction, nsppol, mband, nkpt]. # # where the first dimension stores: (up,up up,down down,up down,down sigma_x sigma_y sigma_z) - # w_sbk = self.reader.read_value("dos_fractions") + # w_sbk = self.r.read_value("dos_fractions") # term2idx = {"up-up":0, "up-down":1, "down-up":2, "down-down":3, "sigma_x":4, "sigma_y":5, "sigma_z":6} # # TODO: To be tested. @@ -930,12 +1117,21 @@ def get_dos_integrator(self, method, step, width): self._cached_dos_integrators[key] = intg return intg + #def get_projected_magnetisation(self): + # """ + # Final projected magnetisation as a numpy array with the shape (nkpoints, nbands, + # natoms, norbitals, 3). Where the last axis is the contribution in the 3 + # cartesian directions. This attribute is only set if spin-orbit coupling + # (LSORBIT = True) or non-collinear magnetism (LNONCOLLINEAR = True) is turned + # on in the INCAR. + # """ + @add_fig_kwargs def plot_pjdos_lview(self, e0="fermie", lmax=None, method="gaussian", step=0.1, width=0.2, stacked=True, combined_spins=True, ax_mat=None, exchange_xy=False, - with_info=True, with_spin_sign=True, xlims=None, ylims=None, fontsize=8, **kwargs): + with_info=True, with_spin_sign=True, xlims=None, ylims=None, fontsize=8, **kwargs) -> Figure: """ - Plot the PJ-DOS on a linear mesh. + Plot the PJ-DOS on a linear mesh with matplotlib. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values: @@ -956,7 +1152,7 @@ def plot_pjdos_lview(self, e0="fermie", lmax=None, method="gaussian", step=0.1, xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used ylims: Same meaning as ``xlims`` but for the y-axis - fontsize: Legend and label fontsize + fontsize: Legend and subtitle fontsize Returns: |matplotlib-Figure| """ @@ -1086,12 +1282,182 @@ def plot_pjdos_lview(self, e0="fermie", lmax=None, method="gaussian", step=0.1, return fig + @add_plotly_fig_kwargs + def plotly_pjdos_lview(self, e0="fermie", lmax=None, method="gaussian", step=0.1, width=0.2, + stacked=True, combined_spins=True, fig=None, exchange_xy=False, with_info=True, + with_spin_sign=True, xlims=None, ylims=None, fontsize=12, band_and_dos=0, **kwargs): + """ + Plot the PJ-DOS on a linear mesh with plotly. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy. + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0`` + lmax: Maximum L included in plot. None means full set available on file. + method: String defining the method for the computation of the DOS. + step: Energy step (eV) of the linear mesh. + width: Standard deviation (eV) of the gaussian. + stacked: True if DOS partial contributions should be stacked on top of each other. + combined_spins: Define how up/down DOS components should be plotted when nsppol==2. + If True, up/down DOSes are plotted on the same figure (positive values for up, + negative values for down component) + If False, up/down components are plotted on different axes. + fig: The fig to plot on. None if a new figure should be created. + exchange_xy: True if the dos should be plotted on the x axis instead of y. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + ylims: Same meaning as ``xlims`` but for the y-axis + fontsize: Legend and subtitle fontsize. + band_and_dos : Define if both band and dos will be plotted on the same ``fig``. + If 0(default), only plot dos on the created figure (when fig==None); + If 1, plot dos on even_col of ``fig`` + + Returns: |plotly.graph_objects.Figure| + """ + try: + intg = self.get_dos_integrator(method, step, width) + except Exception: + msg = traceback.format_exc() + msg += ("Error while trying to compute the DOS.\n" + "Verify that the k-points form a homogenous sampling of the BZ.\n" + "Returning None\n") + cprint(msg, "red") + return None + + # Get energy mesh from total DOS and define the zero of energy + # Note that the mesh is not not spin-dependent. + e0 = self.ebands.get_e0(e0) + mesh = intg.mesh.copy() + mesh -= e0 + edos, symbols_lso = intg.edos, intg.symbols_lso + + mylsize = self.lsize if lmax is None else lmax + 1 + nrows = self.nsppol if not combined_spins else 1 + ncols = mylsize + # Build fig with subplots. + if fig is None: + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=list(range(1, nrows * ncols + 1)), + sharex=True, sharey=True, horizontal_spacing=0.02) + + # If spins are plotted on the same graph (combined_spins), aliased_axis is set to True + # and comb_s is set to 2 so that [spin=0]//comb_s == [spin=1]//comb_s + if self.nsppol == 2 and combined_spins: + aliased_axis = True + comb_s = 2 + else: + aliased_axis = False + comb_s = 1 + + spin_sign = +1 + if not stacked: + # Plot PJDOS as lines. + for isymb, symbol in enumerate(self.symbols): + for spin in range(self.nsppol): + if with_spin_sign: spin_sign = +1 if spin == 0 else -1 + # Loop over the columns of the grid. + for l in range(min(self.lmax_symbol[symbol] + 1, mylsize)): + rcd = PlotlyRowColDesc(spin//comb_s, l+band_and_dos*(l+1), nrows, ncols*(1+band_and_dos)) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax + + # Plot total DOS. + x, y = mesh, spin_sign * edos.spin_dos[spin].values + if exchange_xy: x, y = y, x + label = "Tot" + if ((l, spin, isymb) == (0, 0, 0)) & with_info: + showlegend = True + else: + showlegend = False + fig.add_scatter(x=x, y=y, mode='lines', line={'color': 'black'}, name=label, + showlegend=showlegend, legendgroup=label, row=ply_row, col=ply_col) + + # Plot PJ-DOS(l, spin) + x, y = mesh, spin_sign * symbols_lso[symbol][l, spin] + if exchange_xy: x, y = y, x + label = symbol + fig.add_scatter(x=x, y=y, mode='lines', line={'color': self.symbol2color[symbol]}, name=label, + showlegend=showlegend, legendgroup=label, row=ply_row, col=ply_col) + + plotly_set_lims(fig, xlims, "x", iax=iax) + plotly_set_lims(fig, ylims, "y", iax=iax) + + else: + # Plot stacked PJDOS + # Loop over the columns of the grid. + ls_stackdos = intg.ls_stackdos + spin_sign = +1 + zerodos = np.zeros(len(mesh)) + for l in range(mylsize): + for spin in self.ebands.spins: + if with_spin_sign: spin_sign = +1 if spin == 0 else -1 + rcd = PlotlyRowColDesc(spin//comb_s, l+band_and_dos*(l+1), nrows, ncols*(1+band_and_dos)) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax + + # Plot total DOS. + x, y = mesh, spin_sign * edos.spin_dos[spin].values + if exchange_xy: x, y = y, x + label = "Tot" + if ((l, spin) == (0, 0)) & with_info: + showlegend = True + else: + showlegend = False + fig.add_scatter(x=x, y=y, mode='lines', line={'color': 'black'}, name=label, + showlegend=showlegend, legendgroup=label, row=ply_row, col=ply_col) + + # Plot cumulative PJ-DOS(l, spin) + stack = ls_stackdos[(l, spin)] * spin_sign + for isymb, symbol in enumerate(self.symbols): + yup = stack[isymb] + ydown = stack[isymb-1] if isymb != 0 else zerodos + label = "%s (stacked)" % symbol if (l, spin) == (0, 0) else None + fill = 'tonextx' if not exchange_xy else 'tonexty' + fill_line_opts = {'color': self.symbol2color[symbol], 'width': 0.1} + x1, x2, y1, y2 = mesh, mesh, ydown, yup + if exchange_xy: x1, x2, y1, y2 = y1, y2, x1, x2 + fig.add_scatter(x=x1, y=y1, mode='lines', line=fill_line_opts, name='', + showlegend=False, legendgroup=l, row=ply_row, col=ply_col) + fig.add_scatter(x=x2, y=y2, mode='lines', line=fill_line_opts, name=label, opacity=self.alpha, + showlegend=showlegend, legendgroup=symbol, fill=fill, row=ply_row, col=ply_col) + + plotly_set_lims(fig, xlims, "x", iax=iax) + plotly_set_lims(fig, ylims, "y", iax=iax) + + # Decorate axis. + for spin in range(self.nsppol): + if aliased_axis and spin == 1: break # Don't repeat yourself! + + for l in range(mylsize): + rcd = PlotlyRowColDesc(spin//comb_s, l+band_and_dos*(l+1), nrows, ncols*(1+band_and_dos)) + iax = rcd.iax + if with_info: + if combined_spins: + title = self.l2tex[l] + else: + if self.nsppol == 2: + title = r"$%s , %s$" % (self.l2tex[l].replace('$',''), self.spin2tex[spin].replace('$','')) + else: + title = self.l2tex[l] + fig.layout.annotations[iax - 1].text = title + else: + fig.layout.annotations[iax - 1].text = '' + fig.layout.annotations[iax - 1].font.size = fontsize + + if with_info: + fig.layout['xaxis%u' % iax].title = dict(text="Energy (eV)") + # Display y labels only on the first plot. + if l == 0: + if exchange_xy: + fig.layout['xaxis%u' % iax].title = dict(text='DOS (states/eV)') + else: + fig.layout['yaxis%u' % iax].title = dict(text='DOS (states/eV)') + fig.layout.legend.font.size = fontsize + return fig + @add_fig_kwargs - def plot_pjdos_typeview(self, e0="fermie", lmax=None, method="gaussian", step=0.1, width=0.2, + def plot_pjdos_typeview(self, e0="fermie", lmax=None, l_list=None, method="gaussian", step=0.1, width=0.2, stacked=True, combined_spins=True, ax_mat=None, exchange_xy=False, - with_info=True, with_spin_sign=True, xlims=None, ylims=None, fontsize=8, **kwargs): + with_info=True, with_spin_sign=True, xlims=None, ylims=None, fontsize=8, **kwargs) -> Figure: """ - Plot the PJ-DOS on a linear mesh. + Plot the PJ-DOS on a linear mesh with matplotlib. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values: @@ -1099,6 +1465,7 @@ def plot_pjdos_typeview(self, e0="fermie", lmax=None, method="gaussian", step=0. - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV - None: Don't shift energies, equivalent to ``e0 = 0`` lmax: Maximum L included in plot. None means full set available on file. + l_list: List of L values to plot. None to plot all L up to lmax. method: String defining the method for the computation of the DOS. step: Energy step (eV) of the linear mesh. width: Standard deviation (eV) of the gaussian. @@ -1112,7 +1479,7 @@ def plot_pjdos_typeview(self, e0="fermie", lmax=None, method="gaussian", step=0. xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used ylims: Same meaning as ``xlims`` but for the y-axis - fontsize: Legend and label fontsize. + fontsize: Legend and subtitle fontsize. Returns: |matplotlib-Figure| """ @@ -1165,6 +1532,7 @@ def plot_pjdos_typeview(self, e0="fermie", lmax=None, method="gaussian", step=0. ax.plot(x, y, color="k", label=label if with_info else None) for l in range(min(self.lmax_symbol[symbol] + 1, mylsize)): + if l_list is not None and l not in l_list: continue # Plot PJ-DOS(l, spin) x, y = mesh, spin_sign * symbols_lso[symbol][l, spin] if exchange_xy: x, y = y, x @@ -1194,6 +1562,7 @@ def plot_pjdos_typeview(self, e0="fermie", lmax=None, method="gaussian", step=0. # Plot cumulative PJ-DOS(l, spin) stack = intg.get_lstack_symbol(symbol, spin) * spin_sign for l in range(min(self.lmax_symbol[symbol] + 1, mylsize)): + if l_list is not None and l not in l_list: continue yup = stack[l] ydown = stack[l-1] if l != 0 else zerodos label = "%s (stacked)" % self.l2tex[l] if (isymb, spin) == (0, 0) else None @@ -1241,12 +1610,180 @@ def plot_pjdos_typeview(self, e0="fermie", lmax=None, method="gaussian", step=0. return fig + @add_plotly_fig_kwargs + def plotly_pjdos_typeview(self, e0="fermie", lmax=None, method="gaussian", step=0.1, width=0.2, + stacked=True, combined_spins=True, fig=None, exchange_xy=False, with_info=True, + with_spin_sign=True, xlims=None, ylims=None, fontsize=12, band_and_dos=0, **kwargs): + """ + Plot the PJ-DOS on a linear mesh with plotly. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy. + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0`` + lmax: Maximum L included in plot. None means full set available on file. + method: String defining the method for the computation of the DOS. + step: Energy step (eV) of the linear mesh. + width: Standard deviation (eV) of the gaussian. + stacked: True if DOS partial contributions should be stacked on top of each other. + combined_spins: Define how up/down DOS components should be plotted when nsppol==2. + If True, up/down DOSes are plotted on the same figure (positive values for up, + negative values for down component) + If False, up/down components are plotted on different axes. + fig: The fig to plot on. None if a new figure should be created. + exchange_xy: True if the dos should be plotted on the x axis instead of y. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + ylims: Same meaning as ``xlims`` but for the y-axis + fontsize: Legend and subtitle fontsize. + band_and_dos : Define if both band and dos will be plotted on the same ``fig``. + If 0(default), only plot dos on the created figure (when fig==None); + If 1, plot dos on even_col of ``fig`` + + Returns: |plotly.graph_objects.Figure| + """ + mylsize = self.lsize if lmax is None else lmax + 1 + + try: + intg = self.get_dos_integrator(method, step, width) + except Exception: + msg = traceback.format_exc() + msg += ("Error while trying to compute the DOS.\n" + "Verify that the k-points form a homogenous sampling of the BZ.\n" + "Returning None\n") + cprint(msg, "red") + return None + + # Get energy mesh from total DOS and define the zero of energy + # Note that the mesh is not not spin-dependent. + e0 = self.ebands.get_e0(e0) + mesh = intg.mesh.copy() + mesh -= e0 + edos, symbols_lso = intg.edos, intg.symbols_lso + + nrows = self.nsppol if not combined_spins else 1 + ncols = self.ntypat + # Build fig with subplots. + if fig is None: + fig, _ = get_figs_plotly(nrows=nrows, ncols=ncols, subplot_titles=list(range(1, nrows * ncols + 1)), + sharex=True, sharey=True, horizontal_spacing=0.02) + + # If spins are plotted on the same graph (combined_spins), aliased_axis is set to True + # and comb_s is set to 2 so that [spin=0]//comb_s == [spin=1]//comb_s + if self.nsppol == 2 and combined_spins: + aliased_axis = True + comb_s = 2 + else: + aliased_axis = False + comb_s = 1 + + spin_sign = +1 + if not stacked: + for spin in range(self.nsppol): + if with_spin_sign: spin_sign = +1 if spin == 0 else -1 + # Loop over the columns of the grid. + for isymb, symbol in enumerate(self.symbols): + rcd = PlotlyRowColDesc(spin//comb_s, isymb+band_and_dos*(isymb+1), nrows, ncols*(1+band_and_dos)) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax + + # Plot total DOS. + x, y = mesh, spin_sign * edos.spin_dos[spin].values + if exchange_xy: x, y = y, x + label = "Tot" + if ((spin, isymb) == (0, 0)) & with_info: + showlegend = True + else: + showlegend = False + fig.add_scatter(x=x, y=y, mode='lines', line={'color': 'black'}, name=label, showlegend=showlegend, + legendgroup=label, row=ply_row, col=ply_col) + + for l in range(min(self.lmax_symbol[symbol] + 1, mylsize)): + # Plot PJ-DOS(l, spin) + x, y = mesh, spin_sign * symbols_lso[symbol][l, spin] + if exchange_xy: x, y = y, x + label = self.l2tex[l] + fig.add_scatter(x=x, y=y, name=label , showlegend=showlegend, legendgroup=l, + mode='lines', line={'color': self.l2color[l]}, row=ply_row, col=ply_col) + + plotly_set_lims(fig, xlims, "x", iax=iax) + plotly_set_lims(fig, ylims, "y", iax=iax) + + else: + # Plot stacked PJDOS + # Loop over the columns of the grid. + #ls_stackdos = intg.ls_stackdos + spin_sign = +1 + zerodos = np.zeros(len(mesh)) + for spin in range(self.nsppol): + if with_spin_sign: spin_sign = +1 if spin == 0 else -1 + for isymb, symbol in enumerate(self.symbols): + rcd = PlotlyRowColDesc(spin//comb_s, isymb+band_and_dos*(isymb+1), nrows, ncols*(1+band_and_dos)) + ply_row, ply_col, iax = rcd.ply_row, rcd.ply_col, rcd.iax + + # Plot total DOS. + x, y = mesh, spin_sign * edos.spin_dos[spin].values + if exchange_xy: x, y = y, x + label = "Tot" + if ((spin, isymb) == (0, 0)) & with_info: + showlegend = True + else: + showlegend = False + fig.add_scatter(x=x, y=y, mode='lines', line={'color': 'black'}, name=label, showlegend=showlegend, + legendgroup=label, row=ply_row, col=ply_col) + + # Plot cumulative PJ-DOS(l, spin) + stack = intg.get_lstack_symbol(symbol, spin) * spin_sign + for l in range(min(self.lmax_symbol[symbol] + 1, mylsize)): + yup = stack[l] + ydown = stack[l-1] if l != 0 else zerodos + label = r"%s (stacked)" % self.l2tex[l].replace('$','') if (isymb, spin) == (0, 0) else None + fill = 'tonextx' if not exchange_xy else 'tonexty' + fill_line_opts = {'color': self.l2color[l], 'width': 0.1} + x1, x2, y1, y2 = mesh, mesh, ydown, yup + if exchange_xy: x1, x2, y1, y2 = y1, y2, x1, x2 + fig.add_scatter(x=x1, y=y1, mode='lines', line=fill_line_opts, name='', + showlegend=False, legendgroup=l, row=ply_row, col=ply_col) + fig.add_scatter(x=x2, y=y2, mode='lines', line=fill_line_opts, name=label, opacity=self.alpha, + showlegend=showlegend, legendgroup=l, fill=fill, row=ply_row, col=ply_col) + + plotly_set_lims(fig, xlims, "x", iax=iax) + plotly_set_lims(fig, ylims, "y", iax=iax) + + # Decorate axis. + for spin in range(self.nsppol): + if aliased_axis and spin == 1: break # Don't repeat yourself! + + for isymb, symbol in enumerate(self.symbols): + rcd = PlotlyRowColDesc(spin//comb_s, isymb+band_and_dos*(isymb+1), nrows, ncols*(1+band_and_dos)) + iax = rcd.iax + if with_info: + if combined_spins: + title = "Type: %s" % symbol + else: + title = r"%s , %s" % (symbol, self.spin2tex[spin].replace('$','')) if self.nsppol == 2 else symbol + fig.layout.annotations[iax - 1].text = title + else: + fig.layout.annotations[iax - 1].text = '' + fig.layout.annotations[iax - 1].font.size = fontsize + + # Display y labels only on the first plot. + if with_info: + fig.layout['xaxis%u' % iax].title = dict(text="Energy (eV)") + if isymb == 0: + if exchange_xy: + fig.layout['xaxis%u' % iax].title = dict(text='DOS (states/eV)') + else: + fig.layout['yaxis%u' % iax].title = dict(text='DOS (states/eV)') + + fig.layout.legend.font.size = fontsize + return fig + @add_fig_kwargs def plot_fatbands_with_pjdos(self, e0="fermie", fact=1.0, lmax=None, blist=None, view="type", pjdosfile=None, edos_kwargs=None, stacked=True, width_ratios=(2, 1), - fontsize=8, ylims=None, **kwargs): + fontsize=8, ylims=None, **kwargs) -> Figure: """ - Compute the fatbands and the PJDOS on the same figure, a.k.a the Sistine Chapel. + Compute the fatbands and the PJDOS on the same figure with matplotlib, a.k.a the Sistine Chapel. Args: e0: Option used to define the zero of energy in the band structure plot. Possible values: @@ -1260,7 +1797,7 @@ def plot_fatbands_with_pjdos(self, e0="fermie", fact=1.0, lmax=None, blist=None, edos_kwargs: stacked: True if DOS partial contributions should be stacked on top of each other. width_ratios: Defines the ratio between the band structure plot and the dos plot. - fontsize: Legend and label fontsize. + fontsize: Legend fontsize. ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used @@ -1309,14 +1846,16 @@ def plot_fatbands_with_pjdos(self, e0="fermie", fact=1.0, lmax=None, blist=None, # Plot bands on fatbands_axmat and PJDOS on pjdos_axmat. if view == "lview": - self.plot_fatbands_lview(e0=e0, fact=fact, lmax=lmax, blist=blist, ax_mat=fatbands_axmat, ylims=ylims, show=False) + self.plot_fatbands_lview(e0=e0, fact=fact, lmax=lmax, blist=blist, ax_mat=fatbands_axmat, + fontsize=fontsize, ylims=ylims, show=False) pjdosfile.plot_pjdos_lview(e0=e0, lmax=lmax, ax_mat=pjdos_axmat, exchange_xy=True, stacked=stacked, combined_spins=False, fontsize=fontsize, with_info=False, with_spin_sign=False, show=False, ylims=ylims, **edos_kwargs) elif view == "type": - self.plot_fatbands_typeview(e0=e0, fact=fact, lmax=lmax, blist=blist, ax_mat=fatbands_axmat, ylims=ylims, show=False) + self.plot_fatbands_typeview(e0=e0, fact=fact, lmax=lmax, blist=blist, ax_mat=fatbands_axmat, + fontsize=fontsize, ylims=ylims, show=False) pjdosfile.plot_pjdos_typeview(e0=e0, lmax=lmax, ax_mat=pjdos_axmat, exchange_xy=True, stacked=stacked, combined_spins=False, fontsize=fontsize, with_info=False, with_spin_sign=False, show=False, ylims=ylims, @@ -1337,8 +1876,77 @@ def plot_fatbands_with_pjdos(self, e0="fermie", fact=1.0, lmax=None, blist=None, if closeit: pjdosfile.close() return fig + @add_plotly_fig_kwargs + def plotly_fatbands_with_pjdos(self, e0="fermie", fact=1.0, lmax=None, blist=None, view="type", + pjdosfile=None, edos_kwargs=None, stacked=True, width_ratios=(2, 1), + fontsize=12, ylims=None, **kwargs): + """ + Compute the fatbands and the PJDOS on the same figure with plotly, a.k.a the Sistine Chapel. + + Args: + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy. + - Number e.g ``e0 = 0.5``: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to ``e0 = 0`` + fact: float used to scale the stripe size. + lmax: Maximum L included in plot. None means full set available on file. + blist: List of band indices for the fatband plot. If None, all bands are included + pjdosfile: FATBANDS file used to compute the PJDOS. If None, the PJDOS is taken from self. + edos_kwargs: + stacked: True if DOS partial contributions should be stacked on top of each other. + width_ratios: Defines the ratio between the band structure plot and the dos plot. + fontsize: Legend and subtitle fontsize. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` + + Returns: |plotly.graph_objects.Figure| + """ + closeit = False + if pjdosfile is not None: + if not isinstance(pjdosfile, FatBandsFile): + # String --> open the file here and close it before returning. + pjdosfile = FatBandsFile(pjdosfile) + closeit = True + else: + # Compute PJDOS from self. + pjdosfile = self + + if not pjdosfile.ebands.kpoints.is_ibz: + cprint("DOS requires k-points in the IBZ but got pjdosfile: %s" % repr(pjdosfile), "yellow") + cprint("Returning None", "yellow") + return None + + if edos_kwargs is None: edos_kwargs = {} + + # Define number of columns depending on view + mylsize = self.lsize if lmax is None else lmax + 1 + #ncols = dict(type=self.ntypat, lview=self.lsize)[view] + ncols = dict(type=self.ntypat, lview=mylsize)[view] + # Build fig with subplots for bands(at odd_col) and dos(at even_col). + fig, _ = get_figs_plotly(nrows=self.nsppol, ncols=ncols*2, subplot_titles=list(range(1, self.nsppol*ncols*2 + 1)), + sharex=True, sharey=True, horizontal_spacing=0.02, column_widths=width_ratios*ncols) + + # Plot bands and PJDOS on fig with kwargs 'band_and_dos=1' . + if view == "lview": + self.plotly_fatbands_lview(e0=e0, fact=fact, lmax=lmax, blist=blist, fig=fig, ylims=ylims, + fontsize=fontsize, band_and_dos=1, show=False) + pjdosfile.plotly_pjdos_lview(e0=e0, lmax=lmax, fig=fig, exchange_xy=True, stacked=stacked, + combined_spins=False, fontsize=fontsize, with_info=False, + with_spin_sign=False, ylims=ylims, band_and_dos=1, show=False, **edos_kwargs) + + elif view == "type": + self.plotly_fatbands_typeview(e0=e0, fact=fact, lmax=lmax, blist=blist, fig=fig, ylims=ylims, + fontsize=fontsize, band_and_dos=1, show=False) + pjdosfile.plotly_pjdos_typeview(e0=e0, lmax=lmax, fig=fig, exchange_xy=True, stacked=stacked, + combined_spins=False, fontsize=fontsize, with_info=False, + with_spin_sign=False, ylims=ylims, band_and_dos=1, show=False, **edos_kwargs) + else: + raise ValueError("Don't know how to handle view=%s" % str(view)) + + if closeit: pjdosfile.close() + return fig + @add_fig_kwargs - def plot_pawdos_terms(self, lmax=None, method="gaussian", step=0.1, width=0.2, xlims=None, *kwargs): + def plot_pawdos_terms(self, lmax=None, method="gaussian", step=0.1, width=0.2, xlims=None, *kwargs) -> Figure: """ Plot ... @@ -1454,7 +2062,7 @@ def plot_pawdos_terms(self, lmax=None, method="gaussian", step=0.1, width=0.2, x # #stacked=True, # ax=None, exchange_xy=False, xlims=None, # #with_info=True, - # **kwargs): + # **kwargs) -> Figure: # """ # Plot the PJ-DOS on a linear mesh. @@ -1503,7 +2111,7 @@ def plot_pawdos_terms(self, lmax=None, method="gaussian", step=0.1, width=0.2, x # # Read data from file. # # Dos fractions contains: [ndosfraction, nsppol, mband, nkpt]. # # where the first dimension stores: (up,up up,down down,up down,down sigma_x sigma_y sigma_z) - # w_sbk = self.reader.read_value("dos_fractions") + # w_sbk = self.r.read_value("dos_fractions") # term2idx = {"up-up":0, "up-down":1, "down-up":2, "down-down":3, "sigma_x":4, "sigma_y":5, "sigma_z":6} # spin0 = 0 @@ -1533,7 +2141,6 @@ def yield_figs(self, **kwargs): # pragma: no cover This function *generates* a predefined list of matplotlib figures with minimal input from the user. Used in abiview.py to get a quick look at the results. """ - #for fig in self.yield_ebands_figs(): yield fig if self.ebands.kpoints.is_path: yield self.ebands.kpoints.plot(show=False) yield self.plot_fatbands_lview(show=False) @@ -1542,12 +2149,24 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot_pjdos_lview(show=False) yield self.plot_pjdos_typeview(show=False) - def get_panel(self): + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + """ + if self.ebands.kpoints.is_path: + yield self.ebands.kpoints.plotly(show=False) + yield self.plotly_fatbands_lview(show=False) + yield self.plotly_fatbands_typeview(show=False) + else: + yield self.plotly_pjdos_lview(show=False) + yield self.plotly_pjdos_typeview(show=False) + + def get_panel(self, **kwargs): """ Build panel with widgets to interact with the |FatbandsFile| either in a notebook or in panel app. """ from abipy.panels.fatbands import FatBandsFilePanel - return FatBandsFilePanel(self).get_panel() + return FatBandsFilePanel(self).get_panel(**kwargs) def write_notebook(self, nbpath=None): """ diff --git a/abipy/electrons/fold2bloch.py b/abipy/electrons/fold2bloch.py index d383824e7..d981e886f 100644 --- a/abipy/electrons/fold2bloch.py +++ b/abipy/electrons/fold2bloch.py @@ -1,18 +1,23 @@ # coding: utf-8 """Fold2Bloch netcdf file.""" +from __future__ import annotations + import os import numpy as np +import pymatgen.core.units as units from monty.string import marquee from monty.functools import lazy_property from monty.collections import dict2namedtuple from monty.termcolor import cprint -import pymatgen.core.units as units from pymatgen.core.lattice import Lattice +from abipy.core.structure import Structure from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter from abipy.core.kpoints import KpointList, is_diagonal, find_points_along_path +from abipy.core.globals import get_workdir from abipy.tools.plotting import set_axlims, add_fig_kwargs, get_ax_fig_plt -from abipy.electrons.ebands import ElectronsReader +from abipy.tools.typing import Figure +from abipy.electrons.ebands import ElectronBands, ElectronsReader from abipy.tools.numtools import gaussian @@ -31,7 +36,7 @@ class Fold2BlochNcfile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBand .. inheritance-diagram:: Fold2BlochNcfile """ @classmethod - def from_wfkpath(cls, wfkpath, folds, workdir=None, manager=None, mpi_procs=1, verbose=0): + def from_wfkpath(cls, wfkpath, folds, workdir=None, manager=None, mpi_procs=1, verbose=0) -> Fold2BlochNcfile: """ Run fold2bloch in workdir. @@ -49,8 +54,7 @@ def from_wfkpath(cls, wfkpath, folds, workdir=None, manager=None, mpi_procs=1, v fold2bloch = flowtk.Fold2Bloch(manager=manager, verbose=verbose) # Create temporary directory and link to the WFK file - import tempfile - workdir = tempfile.mkdtemp() if workdir is None else workdir + workdir = get_workdir(workdir) wfkpath = os.path.abspath(wfkpath) link = os.path.join(workdir, os.path.basename(wfkpath)) os.symlink(wfkpath, link) @@ -60,7 +64,7 @@ def from_wfkpath(cls, wfkpath, folds, workdir=None, manager=None, mpi_procs=1, v return cls(ncpath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = ElectronsReader(filepath) @@ -86,10 +90,10 @@ def __init__(self, filepath): self.uf_kpoints = KpointList(self.pc_lattice.reciprocal_lattice, self.uf_kfrac_coords) self.uf_nkpt = len(self.uf_kpoints) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append @@ -118,33 +122,33 @@ def to_string(self, verbose=0): return "\n".join(lines) @property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object with folded band energies.""" return self._ebands @property - def structure(self): + def structure(self) -> Structure: """|Structure| object defining the supercell.""" return self.ebands.structure - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() return od @lazy_property - def uf_eigens(self): + def uf_eigens(self) -> np.ndarray: """[nsppol, nk_unfolded, nband] |numpy-array| with unfolded eigenvalues in eV.""" # nctkarr_t("unfolded_eigenvalues", "dp", "max_number_of_states, nk_unfolded, number_of_spins") return self.reader.read_value("unfolded_eigenvalues") * units.Ha_to_eV @lazy_property - def uf_weights(self): + def uf_weights(self) -> np.ndarray: """[nss, nk_unfolded, nband] array with spectral weights. nss = max(nspinor, nsppol).""" # nctkarr_t("spectral_weights", "dp", "max_number_of_states, nk_unfolded, nsppol_times_nspinor") return self.reader.read_value("spectral_weights") @@ -172,14 +176,18 @@ def get_spectral_functions(self, step=0.01, width=0.02): e = self.uf_eigens[spin, ik, band] sfw[spin, ik] += self.uf_weights[spin, ik, band] * gaussian(mesh, width, center=e) - from scipy.integrate import cumtrapz + try : + from scipy.integrate import cumulative_trapezoid as cumtrapz + except ImportError: + from scipy.integrate import cumtrapz + int_sfw = cumtrapz(sfw, x=mesh, initial=0.0) return dict2namedtuple(mesh=mesh, sfw=sfw, int_sfw=int_sfw) @add_fig_kwargs def plot_unfolded(self, kbounds, klabels, ylims=None, dist_tol=1e-12, verbose=0, - colormap="afmhot", facecolor="black", ax=None, fontsize=12, **kwargs): + colormap="afmhot", facecolor="black", ax=None, fontsize=8, **kwargs) -> Figure: r""" Plot unfolded band structure with spectral weights. @@ -245,7 +253,7 @@ def yield_figs(self, **kwargs): # pragma: no cover print("TODO: Add call to plot_unfolded") yield self.ebands.plot(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If `nbpath` is None, a temporay file in the current working directory is created. Return path to the notebook. diff --git a/abipy/electrons/gsr.py b/abipy/electrons/gsr.py index b9bb03c55..1d285a795 100644 --- a/abipy/electrons/gsr.py +++ b/abipy/electrons/gsr.py @@ -2,12 +2,15 @@ """ Interface to the GSR.nc_ file storing the Ground-state results and the electron band structure. """ +from __future__ import annotations + import numpy as np import pandas as pd import pymatgen.core.units as units import abipy.core.abinit_units as abu from collections import OrderedDict +from typing import Optional from tabulate import tabulate from monty.string import list_strings, marquee from monty.termcolor import cprint @@ -16,10 +19,11 @@ from pymatgen.core.units import ArrayWithUnit from pymatgen.entries.computed_entries import ComputedEntry, ComputedStructureEntry from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter +from abipy.core.structure import Structure from abipy.tools.plotting import add_fig_kwargs, get_axarray_fig_plt -from abipy.tools.tensors import Stress +from abipy.tools.typing import Figure from abipy.abio.robots import Robot -from abipy.electrons.ebands import ElectronsReader, RobotWithEbands +from abipy.electrons.ebands import ElectronsReader, RobotWithEbands, ElectronBands __all__ = [ @@ -44,14 +48,15 @@ class GsrFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, Notebo .. rubric:: Inheritance Diagram .. inheritance-diagram:: GsrFile """ + @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> GsrFile: """Initialize the object from a netcdf_ file.""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) - self.reader = r = GsrReader(filepath) + self.reader = self.r = r = GsrReader(filepath) # Initialize the electron bands from file self._ebands = r.read_ebands() @@ -64,7 +69,7 @@ def __str__(self): """String representation.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = []; app = lines.append @@ -90,37 +95,39 @@ def to_string(self, verbose=0): return "\n".join(lines) @property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object.""" return self._ebands @lazy_property - def is_scf_run(self): + def is_scf_run(self) -> bool: """True if the GSR has been produced by a SCF run.""" # NOTE: We use kptopt to understand if we have a SCF/NSCF run # In principle one should use iscf but it's not available in the GSR. - #return int(self.reader.read_value("kptopt")) >= 0 - return abs(self.cart_stress_tensor[0, 0] - _INVALID_STRESS_TENSOR) > 0.1 + if "kptopt" in self.r.rootgrp.variables: + return int(self.r.read_value("kptopt")) >= 0 + else: + return abs(self.cart_stress_tensor[0, 0] - _INVALID_STRESS_TENSOR) > 0.1 @lazy_property def ecut(self): """Cutoff energy in Hartree (Abinit input variable)""" - return units.Energy(self.reader.read_value("ecut"), "Ha") + return units.Energy(self.r.read_value("ecut"), "Ha") @lazy_property def pawecutdg(self): """Cutoff energy in Hartree for the PAW double grid (Abinit input variable)""" - return units.Energy(self.reader.read_value("pawecutdg"), "Ha") + return units.Energy(self.r.read_value("pawecutdg"), "Ha") @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure @lazy_property def energy(self): """Total energy in eV.""" - return units.Energy(self.reader.read_value("etotal"), "Ha").to("eV") + return units.Energy(self.r.read_value("etotal"), "Ha").to("eV") @lazy_property def energy_per_atom(self): @@ -129,51 +136,75 @@ def energy_per_atom(self): @lazy_property def cart_forces(self): - """Cartesian forces in eV / Ang""" - return self.reader.read_cart_forces() + """ + Cartesian forces in eV / Ang. None if forces are not available. + """ + if self.is_scf_run: + return self.r.read_cart_forces() + return None @lazy_property def max_force(self): - """Max cart force in eV / Ang""" - fmods = np.sqrt([np.dot(force, force) for force in self.cart_forces]) + """ + Max absolute cartesian force in eV/Ang. None if forces are not available. + """ + cart_forces = self.cart_forces + if cart_forces is None: return None + + fmods = np.sqrt([np.dot(force, force) for force in cart_forces]) return fmods.max() def force_stats(self, **kwargs): """ Return a string with information on the forces. + Return None if forces are not available. """ - fmods = np.sqrt([np.dot(force, force) for force in self.cart_forces]) + cart_forces = self.cart_forces + if cart_forces is None: return None + + fmods = np.sqrt([np.dot(force, force) for force in cart_forces]) imin, imax = fmods.argmin(), fmods.argmax() s = "\n".join([ - "fsum: %s" % self.cart_forces.sum(axis=0), + "fsum: %s" % cart_forces.sum(axis=0), "mean: %s, std %s" % (fmods.mean(), fmods.std()), - "minimum at site %s, cart force: %s" % (self.structure.sites[imin], self.cart_forces[imin]), - "maximum at site %s, cart force: %s" % (self.structure.sites[imax], self.cart_forces[imax]), + "minimum at site %s, cart force: %s" % (self.structure.sites[imin], cart_forces[imin]), + "maximum at site %s, cart force: %s" % (self.structure.sites[imax], cart_forces[imax]), ]) table = [["Site", "Cartesian Force", "Length"]] for i, fmod in enumerate(fmods): - table.append([self.structure.sites[i], self.cart_forces[i], fmod]) + #table.append([self.structure.sites[i], cart_forces[i], fmod]) + table.append([str(self.structure.sites[i]), str(cart_forces[i]), str(fmod)]) s += "\n" + tabulate(table) return s @lazy_property def cart_stress_tensor(self): - """Stress tensor in GPa.""" - return self.reader.read_cart_stress_tensor() + """ + Stress tensor in GPa. Return None if not available e.g. if NSCF run. + """ + if self.is_scf_run: + return self.r.read_cart_stress_tensor() + return None @lazy_property def pressure(self): - """Pressure in GPa.""" - pressure = - self.cart_stress_tensor.trace() / 3 - return units.FloatWithUnit(pressure, unit="GPa", unit_type="pressure") + """ + Pressure in GPa. Return None if not available e.g. if NSCF run. + """ + if self.is_scf_run: + pressure = - self.cart_stress_tensor.trace() / 3 + return units.FloatWithUnit(pressure, unit="GPa", unit_type="pressure") + return None @lazy_property def residm(self): - """Maximum of the residuals""" - return self.reader.read_value("residm") + """ + Maximum of the residuals + """ + return self.r.read_value("residm") @lazy_property def xc(self): @@ -181,15 +212,15 @@ def xc(self): :class:`XcFunc` object with info on the exchange-correlation functional. Use libxc convention :cite:`Marques2012`. """ - return self.reader.read_abinit_xcfunc() + return self.r.read_abinit_xcfunc() @lazy_property def energy_terms(self): """:class:`EnergyTerms` with the different contributions to the total energy in eV.""" - return self.reader.read_energy_terms(unit="eV") + return self.r.read_energy_terms(unit="eV") @lazy_property - def params(self): + def params(self) -> dict: """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() od["ecut"] = float(self.ecut) @@ -197,11 +228,11 @@ def params(self): # od["pawecutdg"] = float(self.pawecutdg) return od - def close(self): - self.reader.close() + def close(self) -> None: + self.r.close() # FIXME: This is deprecated. Must keep it to avoid breaking ScfTask.get_results - def as_dict(self): + def as_dict(self) -> dict: return {} def get_computed_entry(self, inc_structure=True, parameters=None, data=None): @@ -231,19 +262,30 @@ def get_computed_entry(self, inc_structure=True, parameters=None, data=None): return ComputedEntry(self.structure.composition, self.energy, parameters=parameters, data=data) - def get_panel(self): + def get_panel(self, **kwargs): """ Build panel with widgets to interact with the |GsrFile| either in a notebook or in panel app. """ from abipy.panels.gsr import GsrFilePanel - return GsrFilePanel(self).get_panel() + return GsrFilePanel(self).get_panel(**kwargs) def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. """ - for fig in self.yield_structure_figs(**kwargs): yield fig + verbose = kwargs.get("verbose", 0) for fig in self.yield_ebands_figs(**kwargs): yield fig + if verbose: + for fig in self.yield_structure_figs(**kwargs): yield fig + + def yield_plotly_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of plotly figures with minimal input from the user. + """ + verbose = kwargs.get("verbose", 0) + for fig in self.yield_ebands_plotly_figs(**kwargs): yield fig + if verbose: + for fig in self.yield_structure_plotly_figs(**kwargs): yield fig def write_notebook(self, nbpath=None): """ @@ -251,10 +293,21 @@ def write_notebook(self, nbpath=None): working directory is created. Return path to the notebook. """ nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + first_char = "" if self.has_panel() else "#" nb.cells.extend([ nbv.new_code_cell("gsr = abilab.abiopen('%s')" % self.filepath), nbv.new_code_cell("print(gsr)"), + + # Add panel GUI but comment the python code if panel is not available. + nbv.new_markdown_cell("## Panel dashboard"), + nbv.new_code_cell(f"""\ +# Execute this cell to display the panel GUI (requires panel package). +# To display the dashboard inside the browser use `abiopen.py FILE --panel`. + +{first_char}abilab.abipanel() +{first_char}gsr.get_panel() +"""), nbv.new_code_cell("gsr.ebands.plot();"), nbv.new_code_cell("gsr.ebands.kpoints.plot();"), nbv.new_code_cell("# gsr.ebands.plot_transitions(omega_ev=3.0, qpt=(0, 0, 0), atol_ev=0.1);"), @@ -315,7 +368,7 @@ def __str__(self): __repr__ = __str__ - def to_string(self, verbose=0, with_doc=True): + def to_string(self, verbose: int = 0, with_doc: bool = True) -> str: """String representation, with documentation if with_doc.""" lines = [str(self.table)] if with_doc: @@ -349,8 +402,7 @@ class GsrReader(ElectronsReader): """ def read_cart_forces(self, unit="eV ang^-1"): """ - Read and return a |numpy-array| with the cartesian forces in unit ``unit``. - Shape (natom, 3) + Read and return a |numpy-array| with the cartesian forces in unit ``unit``. Shape (natom, 3) """ return ArrayWithUnit(self.read_value("cartesian_forces"), "Ha bohr^-1").to(unit) @@ -362,7 +414,7 @@ def read_cart_stress_tensor(self): # Abinit stores 6 unique components of this symmetric 3x3 tensor: # Given in order (1,1), (2,2), (3,3), (3,2), (3,1), (2,1). c = self.read_value("cartesian_stress_tensor") - tensor = np.empty((3, 3), dtype=np.float) + tensor = np.empty((3, 3), dtype=float) if np.ma.is_masked(c[()]): # NSCF @@ -374,6 +426,7 @@ def read_cart_stress_tensor(self): tensor[j, i] = c[3 + p] tensor *= abu.HaBohr3_GPa + from abipy.tools.tensors import Stress return Stress(tensor) def read_energy_terms(self, unit="eV"): @@ -401,14 +454,14 @@ class GsrRobot(Robot, RobotWithEbands): """ EXT = "GSR" - def get_dataframe(self, with_geo=True, abspath=False, funcs=None, **kwargs): + def get_dataframe(self, with_geo=True, abspath=False, with_paths=True, funcs=None, **kwargs) -> pd.DataFrame: """ - Return a |pandas-DataFrame| with the most important GS results. - and the filenames as index. + Return a |pandas-DataFrame| with the most important GS results and the filenames as index. Args: with_geo: True if structure info should be added to the dataframe - abspath: True if paths in index should be absolute. Default: Relative to getcwd(). + abspath: True if paths in the index should be absolute. Default: Relative to getcwd(). + with_paths: False if filepaths should not be added kwargs: attrs: @@ -420,9 +473,8 @@ def get_dataframe(self, with_geo=True, abspath=False, funcs=None, **kwargs): # Add attributes specified by the users # TODO add more columns attrs = [ - "energy", "pressure", "max_force", - "ecut", "pawecutdg", - "tsmear", "nkpt", + "energy", "energy_per_atom", "pressure", "max_force", + "ecut", "pawecutdg", "tsmear", "nkpt", "nsppol", "nspinor", "nspden", ] + kwargs.pop("attrs", []) @@ -447,8 +499,10 @@ def get_dataframe(self, with_geo=True, abspath=False, funcs=None, **kwargs): if funcs is not None: d.update(self._exec_funcs(funcs, gsr)) rows.append(d) - row_names = row_names if not abspath else self._to_relpaths(row_names) - return pd.DataFrame(rows, index=row_names, columns=list(rows[0].keys())) + index = None + if with_paths: + index = row_names if not abspath else self._to_relpaths(row_names) + return pd.DataFrame(rows, index=index, columns=list(rows[0].keys())) def get_eos_fits_dataframe(self, eos_names="murnaghan"): """ @@ -503,9 +557,9 @@ def get_eos_fits_dataframe(self, eos_names="murnaghan"): dataframe = pd.DataFrame(rows, index=index, columns=list(rows[0].keys()) if rows else None) return dict2namedtuple(fits=fits, dataframe=dataframe) - def get_energyterms_dataframe(self, iref=None): + def get_energyterms_dataframe(self, iref: Optional[int] = None) -> pd.DataFrame: """ - Build and return with the different contributions to the total energy in eV + Build and return dataframe with the different contributions to the total energy in eV Args: iref: Index of the abifile used as reference: the energies of the @@ -531,7 +585,7 @@ def get_energyterms_dataframe(self, iref=None): return df @add_fig_kwargs - def gridplot_eos(self, eos_names="all", fontsize=6, **kwargs): + def gridplot_eos(self, eos_names="all", fontsize=6, **kwargs) -> Figure: """ Plot multiple EOS on a grid with captions showing the final results. @@ -563,39 +617,34 @@ def gridplot_eos(self, eos_names="all", fontsize=6, **kwargs): return fig @add_fig_kwargs - def plot_gsr_convergence(self, sortby=None, hue=None, fontsize=6, - items=("energy", "pressure", "max_force"), **kwargs): + def plot_gsr_convergence(self, sortby=None, hue=None, fontsize=8, + items=("energy", "pressure", "max_force"), **kwargs) -> Figure: """ Plot the convergence of the most important quantities available in the GSR file - wrt to the ``sortby`` parameter. Values can optionally be grouped by ``hue``. + wrt to the ``sortby`` parameter. Values can be optionally grouped by ``hue``. Args: sortby: Define the convergence parameter, sort files and produce plot labels. Can be None, string or function. If None, no sorting is performed. If string and not empty it's assumed that the abifile has an attribute with the same name and `getattr` is invoked. - If callable, the output of sortby(abifile) is used. + If callable, the output of `sortby(abifile)` is used. hue: Variable that define subsets of the data, which will be drawn on separate lines. Accepts callable or string If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. - If callable, the output of hue(abifile) is used. + If callable, the output of `hue(abifile)` is used. items: List of GSR attributes (or callables) to be analyzed. fontsize: legend and label fontsize. Returns: |matplotlib-Figure| - Example: + Example:: - robot.plot_gsr_convergence(sortby="nkpt", hue="tsmear") + gsr.plot_gsr_convergence(sortby="ecut") + gsr.plot_gsr_convergence(sortby="nkpt", hue="tsmear") """ - return self.plot_convergence_items(items, sortby=sortby, hue=hue, fontsize=fontsize, show=False, **kwargs) - - #def get_phasediagram_results(self): - # from abipy.core.restapi import PhaseDiagramResults - # entries = [] - # for label, gsr in self.items(): - # entries.append(gsr.get_computed_entry(inc_structure=True, parameters=None, data=None)) - # return PhaseDiagramResults(entries) + return self.plot_convergence_items(items, sortby=sortby, hue=hue, + fontsize=fontsize, show=False, **kwargs) def yield_figs(self, **kwargs): # pragma: no cover """ @@ -606,14 +655,14 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot_gsr_convergence(show=False) for fig in self.get_ebands_plotter().yield_figs(): yield fig - def get_panel(self): + def get_panel(self, **kwargs): """ Build panel with widgets to interact with the |GsrRobot| either in a notebook or in panel app. """ from abipy.panels.gsr import GsrRobotPanel - return GsrRobotPanel(self).get_panel() + return GsrRobotPanel(robot=self).get_panel(**kwargs) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. diff --git a/abipy/electrons/gw.py b/abipy/electrons/gw.py index 25a56e568..cf114aee9 100644 --- a/abipy/electrons/gw.py +++ b/abipy/electrons/gw.py @@ -1,8 +1,9 @@ # coding: utf-8 """Classes for the analysis of GW calculations.""" +from __future__ import annotations + import sys import copy -import warnings import numpy as np import pandas as pd @@ -17,16 +18,16 @@ from abipy.core.func1d import Function1D from abipy.core.kpoints import Kpoint, KpointList, Kpath, IrredZone, has_timrev_from_kptopt from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter +from abipy.core.structure import Structure from abipy.iotools import ETSF_Reader from abipy.tools.plotting import (ArrayPlotter, add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, Marker, - set_axlims, set_visible, rotate_ticklabels) + set_axlims, set_visible, rotate_ticklabels, set_ax_xylabels, set_grid_legend) +from abipy.tools.typing import Figure from abipy.tools import duck from abipy.abio.robots import Robot from abipy.electrons.ebands import ElectronBands, RobotWithEbands from abipy.electrons.scissors import Scissors -import logging -logger = logging.getLogger(__name__) __all__ = [ "QPState", @@ -58,48 +59,38 @@ class QPState(namedtuple("QPState", "spin kpoint band e0 qpe qpe_diago vxcme sig Energies are in eV. """ @property - def qpeme0(self): - """E_QP - E_0""" + def qpeme0(self) -> complex: + """E_QP - E_0 in eV""" return self.qpe - self.e0 @property - def re_qpe(self): + def re_qpe(self) -> float: """Real part of the QP energy.""" return self.qpe.real @property - def imag_qpe(self): + def imag_qpe(self) -> float: """Imaginay part of the QP energy.""" return self.qpe.imag @property - def skb(self): + def skb(self) -> tuple: """Tuple with (spin, kpoint, band)""" return self.spin, self.kpoint, self.band - #def __str__(self): - # return self.to_string() - - #def to_string(self, verbose=0, title=None): - # """ - # String representation with verbosity level ``verbose`` and optional ``title``. - # """ - # s = str(self.get_dataframe()) - # return "\n".join([marquee(title, mark="="), s]) if title is not None else s - - def copy(self): - """Return Shallow copy.""" + def copy(self) -> QPState: + """Return shallow copy.""" d = {f: copy.copy(getattr(self, f)) for f in self._fields} return self.__class__(**d) @classmethod - def get_fields(cls, exclude=()): + def get_fields(cls, exclude=()) -> tuple: fields = list(cls._fields) + ["qpeme0"] for e in exclude: fields.remove(e) return tuple(fields) - def as_dict(self, **kwargs): + def as_dict(self, **kwargs) -> dict: """ Convert self into a dictionary. """ @@ -107,7 +98,7 @@ def as_dict(self, **kwargs): od["qpeme0"] = self.qpeme0 return od - def to_strdict(self, fmt=None): + def to_strdict(self, fmt=None) -> dict: """ Ordered dictionary mapping fields --> strings. """ @@ -131,12 +122,12 @@ def to_strdict(self, fmt=None): return d @property - def tips(self): + def tips(self) -> str: """Bound method of self that returns a dictionary with the description of the fields.""" return self.__class__.TIPS() @classmethod - def TIPS(cls): + def TIPS(cls) -> str: """ Class method that returns a dictionary with the description of the fields. The string are extracted from the class doc string. @@ -178,7 +169,7 @@ def num_leadblanks(string): return _TIPS @classmethod - def get_fields_for_plot(cls, with_fields, exclude_fields): + def get_fields_for_plot(cls, with_fields, exclude_fields) -> list: """ Return list of QPState fields to plot from input arguments. """ @@ -214,14 +205,14 @@ def __init__(self, *args, **kwargs): super().__init__(*args) self.is_e0sorted = kwargs.get("is_e0sorted", False) - def __repr__(self): + def __repr__(self) -> str: return "<%s at %s, len=%d>" % (self.__class__.__name__, id(self), len(self)) - def __str__(self): + def __str__(self) -> str: """String representation.""" return self.to_string() - def to_table(self): + def to_table(self) -> list[list[str]]: """Return a table (list of list of strings).""" header = QPState.get_fields(exclude=["spin", "kpoint"]) table = [header] @@ -231,26 +222,26 @@ def to_table(self): return tabulate(table, tablefmt="plain") - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" return self.to_table() - def copy(self): + def copy(self) -> QPList: """Copy of self.""" return self.__class__([qp.copy() for qp in self], is_e0sorted=self.is_e0sorted) - def sort_by_e0(self): + def sort_by_e0(self) -> QPList: """Return a new object with the E0 energies sorted in ascending order.""" return self.__class__(sorted(self, key=lambda qp: qp.e0), is_e0sorted=True) - def get_e0mesh(self): + def get_e0mesh(self) -> np.ndarray: """Return the E0 energies.""" if not self.is_e0sorted: - raise ValueError("QPState corrections are not sorted. Use sort_by_e0") + raise ValueError("QPState corrections are not sorted. Use sort_by_e0.") return np.array([qp.e0 for qp in self]) - def get_field(self, field): + def get_field(self, field) -> np.ndarray: """|numpy-array| containing the values of field.""" return np.array([getattr(qp, field) for qp in self]) @@ -261,15 +252,15 @@ def get_skb_field(self, skb, field): return getattr(qp, field) return None - def get_qpenes(self): + def get_qpenes(self) -> np.ndarray: """Return an array with the :class:`QPState` energies.""" return self.get_field("qpe") - def get_qpeme0(self): + def get_qpeme0(self) -> np.ndarray: """Return an arrays with the :class:`QPState` corrections.""" return self.get_field("qpeme0") - def merge(self, other, copy=False): + def merge(self, other, copy=False) -> QPList: """ Merge self with other. Return new :class:`QPList` object @@ -286,7 +277,7 @@ def merge(self, other, copy=False): @add_fig_kwargs def plot_qps_vs_e0(self, with_fields="all", exclude_fields=None, fermie=None, - ax_list=None, sharey=False, xlims=None, fontsize=12, **kwargs): + ax_list=None, sharey=False, xlims=None, fontsize=12, **kwargs) -> Figure: """ Plot the QP results as function of the initial KS energy. @@ -302,12 +293,6 @@ def plot_qps_vs_e0(self, with_fields="all", exclude_fields=None, fermie=None, Returns: |matplotlib-Figure| """ - # TODO: This is to maintain the old API. - fermi = kwargs.pop("fermi", None) - if fermi is not None: - fermie = fermi - warnings.warn("fermi keyword argument have been renamed fermie. Old arg will be removed in version 0.4") - fields = QPState.get_fields_for_plot(with_fields, exclude_fields) if not fields: return None @@ -331,6 +316,9 @@ def plot_qps_vs_e0(self, with_fields="all", exclude_fields=None, fermie=None, e0mesh -= fermie kw_linestyle = kwargs.pop("linestyle", "o") + if "marker" in kwargs: + kw_linestyle = "" + kw_color = kwargs.pop("color", None) kw_label = kwargs.pop("label", None) @@ -343,7 +331,10 @@ def plot_qps_vs_e0(self, with_fields="all", exclude_fields=None, fermie=None, yy = qps.get_field(field) # TODO real and imag? - ax.plot(e0mesh, yy.real, kw_linestyle, color=kw_color, label=kw_label, **kwargs) + #print("kwargs:", kwargs) + #print("field:", field, e0mesh.shape, yy.real.shape) + #ax.plot(e0mesh, yy.real, kw_linestyle, color=kw_color, label=kw_label, **kwargs) + ax.scatter(e0mesh, yy.real, color=kw_color, label=kw_label, **kwargs) set_axlims(ax, xlims, "x") if kw_label: @@ -356,8 +347,8 @@ def plot_qps_vs_e0(self, with_fields="all", exclude_fields=None, fermie=None, def build_scissors(self, domains, bounds=None, k=3, plot=False, **kwargs): """ - Construct a scissors operator by interpolating the QPState corrections - as function of the initial energies E0. + Construct a scissors operator by interpolating the corrections + as function of the initial KS energies e0. Args: domains: list in the form [ [start1, stop1], [start2, stop2] @@ -446,86 +437,148 @@ def build_scissors(self, domains, bounds=None, k=3, plot=False, **kwargs): plt.legend(bbox_to_anchor=(0.9, 0.2)) plt.show() - # Return the object. return sciss -class SelfEnergy(object): +class SelfEnergy: """ - This object stores the values of the electron-electron self-energy - and the associated spectral function as function of frequency + This object stores e-e self-energy along the real-axis frequency domain with + the associated spectral function A(w) and, optionally, the values along + the imaginary axis. Energies are in eV. """ + # Symbols used in matplotlib plots. - latex_symbol = dict( - re=r"$\Re{\Sigma(\omega)}$", - im=r"$\Im{\Sigma(\omega)}$", - spfunc=r"$A(\omega)}$", + latex_symbols = dict( + re=r"$\Re{\Sigma_{nk}(\omega)}$", + im=r"$\Im{\Sigma_{nk}(\omega)}$", + spfunc=r"$A_{nk}(\omega)}$", ) - def __init__(self, spin, kpoint, band, wmesh, sigmaxc_values, spfunc_values): + def __init__(self, spin, kpoint, band, wmesh, sigxc_values, spfunc_values, + iw_mesh=None, c_iw_values=None, tau_mp_mesh=None, c_tau_mp_values=None): + """ + Args: + spin: + kpoint: + band: + wmesh: + sigxc_values + spfunc_values + iw_mesh: Frequency mesh along the imag axis in eV + c_iw_values: Values of Sigma_c(iw) + tau_mp_mesh + c_tau_mp_values + """ self.spin, self.kpoint, self.band = spin, kpoint, band + self.wmesh = np.array(wmesh) - self.xc = Function1D(self.wmesh, sigmaxc_values) + self.xc = Function1D(self.wmesh, sigxc_values) + + #self.spfunc = None + #if spfunc_values is not None: self.spfunc = Function1D(self.wmesh, spfunc_values) - assert len(sigmaxc_values) == len(spfunc_values) + assert len(sigxc_values) == len(spfunc_values) + + # Optionally, store Sigma(iw) + self.c_iw = None + if iw_mesh is not None and c_iw_values is not None: + self.c_iw = Function1D(iw_mesh, c_iw_values) + + # Optionally, store Sigma(itau) for positive and negative imag times. + self.c_tau = None + if tau_mp_mesh is not None and c_tau_mp_values is not None: + self.c_tau = Function1D(tau_mp_mesh, c_tau_mp_values) + + #@property + #def has_c_iw(self) -> bool: + # return self.c_iw is not None + + #@property + #def has_c_tau(self) -> bool: + # return self.c_tau is not None - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0, title=None): - """String representation.""" + def to_string(self, verbose=0, title=None) -> str: + """ + String representation. + """ lines = []; app = lines.append if title is not None: app(marquee(title, mark="=")) app("K-point: %s, band: %d, spin: %d" % (repr(self.kpoint), self.band, self.spin)) - app("Number of frequencies: %d, from %.1f to %.1f (eV)" % (len(self.wmesh), self.wmesh[0], self.wmesh[-1])) + app("Number of real frequencies: %d, from %.1f to %.1f (eV)" % (len(self.wmesh), self.wmesh[0], self.wmesh[-1])) + if self.c_iw is not None: + iw_mesh = self.c_iw.mesh + app("Number of imaginary frequencies: %d, from %.1f to %.1f (eV)" % ( + len(iw_mesh), iw_mesh[0], iw_mesh[-1])) + if self.c_tau is not None: + tau_mesh = self.c_tau.mesh + app("Number of imaginary times: %d, from %.1f to %.1f (a.u.)" % ( + len(tau_mesh), tau_mesh[0], tau_mesh[-1])) return "\n".join(lines) - def plot_ax(self, ax, what="a", fontsize=12, **kwargs): + def _get_ys(self, what: str) -> dict: + """ + Return the name of the array to plot from what. + """ + return dict( + re=self.xc.values.real, + im=self.xc.values.imag, + spfunc=self.spfunc.values, + )[what] + + def plot_ax(self, ax, what="a", fontsize=8, **kwargs) -> list: """ Helper function to plot data on the axis ax with fontsize Args: ax: |matplotlib-Axes| or None if a new figure should be created. - what: + what: "a" for spectral function, + "s" for self-energy i.e. Re/Im on the same ax. + "sre" for Re(Sigma) only. + "sim" for Im(Sigma) only. fontsize: legend and title fontsize. Return: List of lines. """ - #if not kwargs: kwargs = {"color": "black", "linewidth": 2.0} lines = [] extend = lines.extend - ax.grid(True) - if what == "s": + if what in {"s", "sre", "sim"}: f = self.xc label = kwargs.get("label", r"$\Sigma(\omega)$") - extend(f.plot_ax(ax, cplx_mode="re", label="Re " + label)) - extend(f.plot_ax(ax, cplx_mode="im", label="Im " + label)) - #ax.set_ylabel('Energy (eV)') + if what in {"s", "sre"}: + extend(f.plot_ax(ax, cplx_mode="re", label="Re " + label)) + if what in {"s", "sim"}: + extend(f.plot_ax(ax, cplx_mode="im", label="Im " + label)) elif what == "a": f = self.spfunc label = kwargs.get("label", r"$A(\omega)$") extend(f.plot_ax(ax, label=label)) + else: raise ValueError("Don't know how to handle what option %s" % str(what)) - #ax.set_xlabel(r"$\omega - \espilon_{KS} (eV)") + #ax.set_ylabel('Energy (eV)') + ax.grid(True) ax.legend(loc="best", fontsize=fontsize, shadow=True) return lines @add_fig_kwargs def plot(self, ax_list=None, what_list=("re", "im", "spfunc"), fermie=None, - xlims=None, fontsize=12, **kwargs): + xlims=None, fontsize=8, **kwargs) -> Figure: """ - Plot the real/imaginary part of self-energy as well as the spectral function + Plot the real/imaginary part of the self-energy as well as the spectral function. + along the real frequency axis. Args: ax_list: List of |matplotlib-Axes| for plot. If None, new figure is produced. what_list: List of strings selecting the quantity to plot. - fermie: Value of the Fermi level used in plot. None for absolute e0s. + fermie: Value of the Fermi level used in plot. None for absolute energies xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used. fontsize: legend and label fontsize. @@ -547,29 +600,84 @@ def plot(self, ax_list=None, what_list=("re", "im", "spfunc"), fermie=None, kw_label = kwargs.pop("label", None) for i, (what, ax) in enumerate(zip(what_list, ax_list)): ax.grid(True) - ax.set_ylabel(self.latex_symbol[what]) + ax.set_ylabel(self.latex_symbols[what]) if (i == len(ax_list) - 1): ax.set_xlabel(xlabel) - ax.plot(wmesh, self._get_ys(what), - color=kw_color, - label=kw_label if i == 0 else None, - ) + ax.plot(wmesh, self._get_ys(what), color=kw_color, label=kw_label if i == 0 else None) set_axlims(ax, xlims, "x") if i == 0 and kw_label: ax.legend(loc="best", shadow=True, fontsize=fontsize) if "title" not in kwargs: - title = "K-point: %s, band: %d, spin: %d" % (repr(self.kpoint), self.band, self.spin) + title = "k-point: %s, band: %d, spin: %d" % (repr(self.kpoint), self.band, self.spin) fig.suptitle(title, fontsize=fontsize) return fig - def _get_ys(self, what): - """Return array to plot from what string.""" - return dict( - re=self.xc.values.real, - im=self.xc.values.imag, - spfunc=self.spfunc.values, - )[what] + def plot_reima_rw(self, ax_list, with_xlabels=False, **kwargs) -> list: + """ + Plot Re/Im (Sigma(w)) and the spectral function A(w) on `ax_list` with w on the real-axis. + """ + if len(ax_list) != 3: + raise ValueError(f"Expecting ax_list of len = 3, got: {len(ax_list)}") + + xlabel = r"$\omega$ (eV)" if with_xlabels else "" + + # Plot Sigma(w) along the real axis. + l0 = self.xc.plot_ax(ax_list[0], cplx_mode="re", **kwargs) + set_ax_xylabels(ax_list[0], xlabel, r"$\Re{\Sigma}(\omega)$ (eV)") + l1 = self.xc.plot_ax(ax_list[1], cplx_mode="im", **kwargs) + set_ax_xylabels(ax_list[1], xlabel, r"$\Im{\Sigma}(\omega)$ (eV)") + + # Plot A(w) + l2 = self.spfunc.plot_ax(ax_list[2], **kwargs) + set_ax_xylabels(ax_list[2], r"$\omega$ (eV)", r"$A(\omega)$ (1/eV)") + + return [l0, l1, l2] + + def plot_reimc_iw(self, ax_list, with_xlabels=False, **kwargs) -> list: + """ + Plot Re/Im (Sigma_c(iw)) of the correlated part on the imaginary-axis on `ax_list`. + """ + if len(ax_list) != 2: + raise ValueError(f"Expecting ax_list of len = 2, got: {len(ax_list)}") + + xlabel = r"$i\omega$ (eV)" if with_xlabels else "" + + l0 = self.c_iw.plot_ax(ax_list[0], cplx_mode="re", **kwargs) + set_ax_xylabels(ax_list[0], xlabel, r"$\Re{\Sigma_c}(i\omega)$ (eV)") + self.c_iw.plot_ax(ax_list[1], cplx_mode="im", **kwargs) + l1 = set_ax_xylabels(ax_list[1], r"$i\omega$ (eV)", r"$\Im{\Sigma_c}(i\omega)$ (eV)") + + return [l0, l1] + + def plot_reimc_tau(self, ax_list, with_xlabels=False, **kwargs) -> list: + """ + Plot Re/Im (Sigma_c(i tau)) of the correlated part on the imaginary-axis on `ax_list`. + """ + if len(ax_list) != 2: + raise ValueError(f"Expecting ax_list of len = 2, got: {len(ax_list)}") + + xlabel = r"$i\tau$ (a.u.)" if with_xlabels else "" + + l0 = self.c_tau.plot_ax(ax_list[0], cplx_mode="re", **kwargs) + set_ax_xylabels(ax_list[0], xlabel, r"$\Re{\Sigma_c}(i\tau)$ (eV)") + self.c_tau.plot_ax(ax_list[1], cplx_mode="im", **kwargs) + l1 = set_ax_xylabels(ax_list[1], r"$i\tau$ (a.u.)", r"$\Im{\Sigma_c}(i\tau)$ (eV)") + + return [l0, l1] + + #@add_fig_kwargs + #def plot_other(self, other: SelfEnergy, **kwargs) -> Figure: + # """ + # """ + # what_list = ["re", "im", "spfunc"] + # ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=len(what_list), ncols=1, + # sharex=True, sharey=False, squeeze=False) + # ax_list = np.array(ax_list).ravel() + + # #for i, (what, ax) in enumerate(zip(what_list, ax_list)): + # return fig + class SigresFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter): @@ -588,32 +696,34 @@ class SigresFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter) """ # Markers used for up/down bands. marker_spin = {0: "^", 1: "v"} + color_spin = {0: "k", 1: "r"} @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> SigresFile: """Initialize an instance from file.""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): """Read data from the netcdf file path.""" super().__init__(filepath) # Keep a reference to the SigresReader. - self.reader = reader = SigresReader(self.filepath) + self.reader = self.r = reader = SigresReader(self.filepath) self._structure = reader.read_structure() self.gwcalctyp = reader.gwcalctyp self.ibz = reader.ibz - self.gwkpoints = reader.gwkpoints - self.nkcalc = len(self.gwkpoints) + #self.sigma_kpoints = reader.sigma_kpoints + self.nkcalc = len(self.sigma_kpoints) - self.gwbstart_sk = reader.gwbstart_sk - self.gwbstop_sk = reader.gwbstop_sk - self.min_gwbstart = reader.min_gwbstart - self.max_gwbstart = reader.max_gwbstart - self.min_gwbstop = reader.min_gwbstop - self.max_gwbstop = reader.max_gwbstop + self.bstart_sk = reader.bstart_sk + self.bstop_sk = reader.bstop_sk + + self.min_bstart = reader.min_bstart + self.max_bstart = reader.max_bstart + self.min_bstop = reader.min_bstop + self.max_bstop = reader.max_bstop self._ebands = ebands = reader.ks_bands @@ -626,8 +736,8 @@ def __init__(self, filepath): @property def sigma_kpoints(self): - """The K-points where QP corrections have been calculated.""" - return self.gwkpoints + """The k-points where QP corrections have been calculated.""" + return self.r.sigma_kpoints def get_marker(self, qpattr): """ @@ -650,21 +760,25 @@ def get_marker(self, qpattr): return Marker(*(x, y, s)) @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies e.g ecuteps""" + def params(self) -> dict: + """ + dictionary with parameters that might be subject to convergence studies e.g ecuteps + """ od = self.get_ebands_params() - od.update(self.reader.read_params()) + od.update(self.r.read_params()) return od - def close(self): + def close(self) -> None: """Close the netcdf file.""" - self.reader.close() + self.r.close() - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): - """String representation with verbosity level ``verbose``.""" + def to_string(self, verbose: int = 0) -> str: + """ + String representation with verbosity level ``verbose``. + """ lines = []; app = lines.append app(marquee("File Info", mark="=")) @@ -675,12 +789,13 @@ def to_string(self, verbose=0): app(self.ebands.to_string(title="Kohn-Sham bands", with_structure=False)) app("") + # GW Section. # TODO: Finalize the implementation: add GW metadata. app(marquee("QP direct gaps", mark="=")) - for kgw in self.gwkpoints: + for kcalc in self.sigma_kpoints: for spin in range(self.nsppol): - qp_dirgap = self.get_qpgap(spin, kgw) - app("QP_dirgap: %.3f (eV) for K-point: %s, spin: %s" % (qp_dirgap, repr(kgw), spin)) + qp_dirgap = self.get_qpgap(spin, kcalc) + app("QP_dirgap: %.3f (eV) for k-point: %s, spin: %s" % (qp_dirgap, repr(kcalc), spin)) #ks_dirgap = app("") @@ -693,68 +808,76 @@ def to_string(self, verbose=0): app("".join(strio)) app("") - # TODO: Fix header. - #if verbose > 1: - # app("") - # app(marquee("Abinit Header", mark="=")) - # app(self.hdr.to_string(verbose=verbose)) - return "\n".join(lines) @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure @property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| with the KS energies.""" return self._ebands @property - def has_spectral_function(self): - """True if file contains spectral function data.""" - return self.reader.has_spfunc + def has_spectral_function(self) -> bool: + """True if sigres file contains the spectral function.""" + return self.r.has_spfunc @lazy_property - def qplist_spin(self): + def qplist_spin(self) -> tuple: """Tuple of :class:`QPList` objects indexed by spin.""" - return self.reader.read_allqps() + return self.r.read_allqps() - def get_qplist(self, spin, kpoint, ignore_imag=False): + def get_qplist(self, spin, kpoint, ignore_imag=False) -> QPList: """Return :class`QPList` for the given (spin, kpoint)""" - return self.reader.read_qplist_sk(spin, kpoint, ignore_imag=ignore_imag) + return self.r.read_qplist_sk(spin, kpoint, ignore_imag=ignore_imag) - def get_qpcorr(self, spin, kpoint, band, ignore_imag=False): + def get_qpcorr(self, spin, kpoint, band, ignore_imag=False) -> QPState: """Returns the :class:`QPState` object for the given (s, k, b)""" - return self.reader.read_qp(spin, kpoint, band, ignore_imag=ignore_imag) + return self.r.read_qp(spin, kpoint, band, ignore_imag=ignore_imag) @lazy_property - def qpgaps(self): + def qpgaps(self) -> np.ndarray: """|numpy-array| of shape [nsppol, nkibz] with the QP direct gaps in eV.""" - return self.reader.read_qpgaps() + return self.r.read_qpgaps() def get_qpgap(self, spin, kpoint, with_ksgap=False): - """Return the QP gap in eV at the given (spin, kpoint)""" - k = self.reader.kpt2fileindex(kpoint) + """ + Return the QP gap in eV at the given (spin, kpoint) + """ + ik = self.r.kpt2ibz(kpoint) if not with_ksgap: - return self.qpgaps[spin, k] + return self.qpgaps[spin, ik] else: - return self.qpgaps[spin, k], self.ksgaps[spin, k] + return self.qpgaps[spin, ik], self.ksgaps[spin, ik] - def read_sigee_skb(self, spin, kpoint, band): + def read_sigee_skb(self, spin, kpoint, band) -> SelfEnergy: """" - Read self-energy(w) for (spin, kpoint, band) - Return: :class:`SelfEnergy` object + Read self-energy for (spin, kpoint, band). """ - ik = self.reader.kpt2fileindex(kpoint) - kpoint = self.ibz[ik] - wmesh, sigxc_values = self.reader.read_sigmaw(spin, ik, band) - wmesh, spf_values = self.reader.read_spfunc(spin, ik, band) + ik_ibz = self.r.kpt2ibz(kpoint) + kpoint = self.ibz[ik_ibz] + wmesh, sigxc_values = self.r.read_sigmaw(spin, ik_ibz, band) + + spf_values = None + if self.r.has_spfunc: + _, spf_values = self.r.read_spfunc(spin, ik_ibz, band) - return SelfEnergy(spin, kpoint, band, wmesh, sigxc_values, spf_values) + iw_mesh, c_iw_values = None, None + if self.r.nomega_i > 0: + # Read Sigma_c(iw) if available. + # sigcmesi(b1gw:b2gw, nkibz, nomega_i, nsppol*nsig_ab)) + iw_mesh = self.r.read_value("omega_i")[:, 1] + ib_gw = band - self.min_bstart + var = self.r.read_variable("sigcmesi") + c_iw_values = var[spin, :, ik_ibz, ib_gw, 0] + 1j*var[spin, :, ik_ibz, ib_gw, 1] - def print_qps(self, precision=3, ignore_imag=True, file=sys.stdout): + return SelfEnergy(spin, kpoint, band, wmesh, sigxc_values, spf_values, + iw_mesh=iw_mesh, c_iw_values=c_iw_values) + + def print_qps(self, precision=3, ignore_imag=True, file=sys.stdout) -> None: """ Print QP results to stream ``file``. @@ -765,16 +888,17 @@ def print_qps(self, precision=3, ignore_imag=True, file=sys.stdout): """ from abipy.tools.printing import print_dataframe keys = "band e0 qpe qpe_diago vxcme sigxme sigcmee0 vUme ze0".split() - for gwkpoint in self.gwkpoints: + for kcalc in self.sigma_kpoints: for spin in range(self.nsppol): - df_sk = self.get_dataframe_sk(spin, gwkpoint, ignore_imag=ignore_imag)[keys] - print_dataframe(df_sk, title="K-point: %s, spin: %s" % (repr(gwkpoint), spin), + df_sk = self.get_dataframe_sk(spin, kcalc, ignore_imag=ignore_imag)[keys] + print_dataframe(df_sk, title="K-point: %s, spin: %s" % (repr(kcalc), spin), precision=precision, file=file) - def get_points_from_ebands(self, ebands_kpath, dist_tol=1e-12, size=24, verbose=0): + def get_points_from_ebands(self, ebands_kpath, dist_tol=1e-12, size=24, verbose=0) -> Marker: """ - Generate object storing the QP energies lying on the k-path used by ebands_kpath. - Mainly used to plot the QP energies in ebands.plot when the QP energies are interpolated with the SKW method. + Generate Marker object storing the QP energies lying on the k-path used by ebands_kpath. + Mainly used to plot the QP energies in ebands.plot when the QP energies + are interpolated with the SKW method. Args: ebands_kpath: |ElectronBands| object with the QP energies along an arbitrary k-path. @@ -783,8 +907,6 @@ def get_points_from_ebands(self, ebands_kpath, dist_tol=1e-12, size=24, verbose= size: The marker size in points**2 verbose: Verbosity level - Return: - Example:: r = sigres.interpolate(lpratio=5, @@ -799,7 +921,7 @@ def get_points_from_ebands(self, ebands_kpath, dist_tol=1e-12, size=24, verbose= raise TypeError("Expecting band structure with a Kpath, got %s" % type(kpath)) if verbose: print("Input kpath\n", ebands_kpath.kpoints) - print("gwkpoints included in GW calculation\n", self.gwkpoints) + print("sigma_kpoints included in GW calculation\n", self.sigma_kpoints) print("lines\n", kpath.lines) print("kpath.frac_bounds:\n", kpath.frac_bounds) print("kpath.cart_bounds:\n", kpath.frac_bounds) @@ -807,8 +929,8 @@ def get_points_from_ebands(self, ebands_kpath, dist_tol=1e-12, size=24, verbose= # Construct the stars of the k-points for all k-points included in the GW calculation. # In principle, the input k-path is arbitrary and not necessarily in the IBZ used for GW # so we have to build the k-stars and find the k-points lying along the path and keep - # track of the mapping kpt --> star --> kgw - gw_stars = [kpoint.compute_star(self.structure.abi_spacegroup.fm_symmops) for kpoint in self.gwkpoints] + # track of the mapping kpt --> star --> kcalc + gw_stars = [kpoint.compute_star(self.structure.abi_spacegroup.fm_symmops) for kpoint in self.sigma_kpoints] cart_coords, back2istar = [], [] for istar, gw_star in enumerate(gw_stars): cart_coords.extend([k.cart_coords for k in gw_star]) @@ -822,7 +944,7 @@ def get_points_from_ebands(self, ebands_kpath, dist_tol=1e-12, size=24, verbose= return Marker() # Read complex GW energies from file. - qp_arr = self.reader.read_value("egw", cmode="c") + qp_arr = self.r.read_value("egw", cmode="c") # Each marker is a list of tuple(x, y, value) x, y, s = [], [], [] @@ -833,11 +955,11 @@ def get_points_from_ebands(self, ebands_kpath, dist_tol=1e-12, size=24, verbose= # The k-point used in the GW calculation. gwk = gw_stars[istar].base_point # Indices needed to access SIGRES arrays (we have to live with this format) - ik_ibz = self.reader.kpt2fileindex(gwk) - ik_b = self.reader.gwkpt2seqindex(gwk) + ik_ibz = self.r.kpt2ibz(gwk) + ik_b = self.r.kpt2ikcalc(gwk) for spin in range(self.nsppol): # Need to select bands included in the GW calculation. - for qpe in qp_arr[spin, ik_ibz, self.gwbstart_sk[spin, ik_b]:self.gwbstop_sk[spin, ik_b]]: + for qpe in qp_arr[spin, ik_ibz, self.bstart_sk[spin, ik_b]:self.bstop_sk[spin, ik_b]]: # Assume the path is properly normalized. x.append((dalong_path / kpath_lenght) * (len(kpath) - 1)) y.append(qpe.real) @@ -846,7 +968,7 @@ def get_points_from_ebands(self, ebands_kpath, dist_tol=1e-12, size=24, verbose= return Marker(*(x, y, s)) @add_fig_kwargs - def plot_qpgaps(self, ax=None, plot_qpmks=True, fontsize=8, **kwargs): + def plot_qpgaps(self, ax=None, plot_qpmks=True, fontsize=8, **kwargs) -> Figure: """ Plot the KS and the QP direct gaps for all the k-points and spins available on file. @@ -863,12 +985,13 @@ def plot_qpgaps(self, ax=None, plot_qpmks=True, fontsize=8, **kwargs): xs = np.arange(self.nkcalc) # Add xticklabels from k-points. - tick_labels = [repr(k) for k in self.gwkpoints] + tick_labels = [repr(k) for k in self.sigma_kpoints] ax.set_xticks(xs) ax.set_xticklabels(tick_labels, fontdict=None, rotation=30, minor=False, size="x-small") for spin in range(self.nsppol): - qp_gaps, ks_gaps = map(np.array, zip(*[self.get_qpgap(spin, kgw, with_ksgap=True) for kgw in self.gwkpoints])) + qp_gaps, ks_gaps = map(np.array, zip(*[self.get_qpgap(spin, kcalc, with_ksgap=True) + for kcalc in self.sigma_kpoints])) if not plot_qpmks: # Plot QP gaps ax.plot(xs, qp_gaps, marker=self.marker_spin[spin], @@ -886,7 +1009,7 @@ def plot_qpgaps(self, ax=None, plot_qpmks=True, fontsize=8, **kwargs): ax.set_ylabel("QP-KS gap (eV)") else: ax.set_ylabel("QP direct gap (eV)") - #ax.set_title("k:%s" % (repr(kgw)), fontsize=fontsize) + #ax.set_title("k:%s" % (repr(kcalc)), fontsize=fontsize) if label: ax.legend(loc="best", fontsize=fontsize, shadow=True) @@ -894,9 +1017,9 @@ def plot_qpgaps(self, ax=None, plot_qpmks=True, fontsize=8, **kwargs): @add_fig_kwargs def plot_qps_vs_e0(self, with_fields="all", exclude_fields=None, e0="fermie", - xlims=None, sharey=False, ax_list=None, fontsize=8, **kwargs): + xlims=None, sharey=False, ax_list=None, fontsize=8, **kwargs) -> Figure: """ - Plot QP result in SIGRES file as function of the KS energy. + Plot QP result in the SIGRES file as function of the KS energy. Args: with_fields: The names of the qp attributes to plot as function of eKS. @@ -929,12 +1052,12 @@ def plot_qps_vs_e0(self, with_fields="all", exclude_fields=None, e0="fermie", return fig @add_fig_kwargs - def plot_spectral_functions(self, include_bands=None, fontsize=8, **kwargs): + def plot_spectral_functions(self, include_bands=None, fontsize=8, ax_list=None, **kwargs) -> Figure: """ Plot the spectral function for all k-points, bands and spins available in the SIGRES file. Args: - include_bands: List of bands to include. Nonee means all. + include_bands: List of bands to include. None means all. fontsize: Legend and title fontsize. Returns: |matplotlib-Figure| @@ -944,26 +1067,28 @@ def plot_spectral_functions(self, include_bands=None, fontsize=8, **kwargs): # Build grid of plots. nrows, ncols = len(self.sigma_kpoints), 1 - ax_list = None ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=nrows, ncols=ncols, sharex=True, sharey=False, squeeze=False) ax_list = np.array(ax_list).ravel() - for ik_gw, (kgw, ax) in enumerate(zip(self.sigma_kpoints, ax_list)): + for ikcalc, (kcalc, ax) in enumerate(zip(self.sigma_kpoints, ax_list)): for spin in range(self.nsppol): - for band in range(self.gwbstart_sk[spin, ik_gw], self.gwbstop_sk[spin, ik_gw]): + for band in range(self.bstart_sk[spin, ikcalc], self.bstop_sk[spin, ikcalc]): if include_bands and band not in include_bands: continue - sigw = self.read_sigee_skb(spin, kgw, band) - label = r"$A(\omega)$: band: %d, spin: %d" % (spin, band) + sigw = self.read_sigee_skb(spin, kcalc, band) + label = r"$A(\omega)$: band: %d, spin: %d" % (band, spin) sigw.plot_ax(ax, what="a", label=label, fontsize=fontsize, **kwargs) - ax.set_title("K-point: %s" % repr(sigw.kpoint), fontsize=fontsize) - #if ik_gw == len(self.sigma_kpoints) - 1: + # Show KS gap as filled area. + #self.ebands.add_fundgap_span(ax, spin) + + ax.set_title("k-point: %s" % repr(sigw.kpoint), fontsize=fontsize) + ax.set_ylabel(r"$A(\omega)$ (1/eV)") return fig @add_fig_kwargs - def plot_eigvec_qp(self, spin=0, kpoint=None, band=None, **kwargs): + def plot_eigvec_qp(self, spin=0, kpoint=None, band=None, **kwargs) -> Figure: """ Args: @@ -979,17 +1104,17 @@ def plot_eigvec_qp(self, spin=0, kpoint=None, band=None, **kwargs): plotter = ArrayPlotter() if kpoint is None: for kpoint in self.ibz: - ksqp_arr = self.reader.read_eigvec_qp(spin, kpoint, band=band) + ksqp_arr = self.r.read_eigvec_qp(spin, kpoint, band=band) plotter.add_array(repr(kpoint), ksqp_arr) return plotter.plot(show=False, **kwargs) else: - ksqp_arr = self.reader.read_eigvec_qp(spin, kpoint, band=band) + ksqp_arr = self.r.read_eigvec_qp(spin, kpoint, band=band) plotter.add_array(repr(kpoint), ksqp_arr) return plotter.plot(show=False, **kwargs) @add_fig_kwargs - def plot_qpbands_ibz(self, e0="fermie", colormap="jet", ylims=None, fontsize=8, **kwargs): + def plot_qpbands_ibz(self, e0="fermie", colormap="jet", ylims=None, fontsize=8, **kwargs) -> Figure: r""" Plot the KS band structure in the IBZ with the QP energies. @@ -1003,7 +1128,7 @@ def plot_qpbands_ibz(self, e0="fermie", colormap="jet", ylims=None, fontsize=8, Returns: |matplotlib-Figure| """ # Map sigma_kpoints to ebands.kpoints - kcalc2ibz = np.empty(self.nkcalc, dtype=np.int) + kcalc2ibz = np.empty(self.nkcalc, dtype=int) for ikc, sigkpt in enumerate(self.sigma_kpoints): kcalc2ibz[ikc] = self.ebands.kpoints.index(sigkpt) @@ -1019,26 +1144,26 @@ def plot_qpbands_ibz(self, e0="fermie", colormap="jet", ylims=None, fontsize=8, cmap = plt.get_cmap(colormap) # Read QP energies: Fortran egw(nbnds,nkibz,nsppol) - qpes = self.reader.read_value("egw", cmode="c") # * units.Ha_to_eV - band_range = (self.reader.max_gwbstart, self.reader.min_gwbstop) + qpes = self.r.read_value("egw", cmode="c") # * units.Ha_to_eV + band_range = (self.r.max_bstart, self.r.min_bstop) - nb = self.reader.min_gwbstop - self.reader.min_gwbstart + nb = self.r.min_bstop - self.r.min_bstart for spin, ax in zip(range(self.nsppol), ax_list): # Plot KS bands in the band range included in self-energy calculation. self.ebands.plot(ax=ax, e0=e0, spin=spin, band_range=band_range, show=False) # Extract QP in IBZ yvals = qpes[spin, kcalc2ibz, :].real - e0 # Add (scattered) QP energies for the calculated k-points. - for band in range(self.reader.max_gwbstart, self.reader.min_gwbstop): + for band in range(self.r.max_bstart, self.r.min_bstop): ax.scatter(kcalc2ibz, yvals[:, band], - color=cmap(band / nb), alpha=0.6, marker="o", s=20, + color=cmap(band / nb), alpha=0.6, marker="o", s=20, ) set_axlims(ax, ylims, "y") return fig @add_fig_kwargs - def plot_ksbands_with_qpmarkers(self, qpattr="qpeme0", e0="fermie", fact=1000, ax=None, **kwargs): + def plot_ksbands_with_qpmarkers(self, qpattr="qpeme0", e0="fermie", fact=1000, ax=None, **kwargs) -> Figure: """ Plot the KS energies as function of k-points and add markers whose size is proportional to the QPState attribute ``qpattr`` @@ -1056,7 +1181,7 @@ def plot_ksbands_with_qpmarkers(self, qpattr="qpeme0", e0="fermie", fact=1000, a """ ax, fig, plt = get_ax_fig_plt(ax=ax) - gwband_range = self.min_gwbstart, self.max_gwbstop + gwband_range = self.min_bstart, self.max_bstop self.ebands.plot(band_range=gwband_range, e0=e0, ax=ax, show=False, **kwargs) e0 = self.ebands.get_e0(e0) @@ -1071,7 +1196,7 @@ def plot_ksbands_with_qpmarkers(self, qpattr="qpeme0", e0="fermie", fact=1000, a return fig - def get_dataframe(self, ignore_imag=False): + def get_dataframe(self, ignore_imag=False) -> pd.DataFrame: """ Returns |pandas-DataFrame| with QP results for all k-points included in the GW calculation @@ -1080,46 +1205,94 @@ def get_dataframe(self, ignore_imag=False): """ df_list = [] for spin in range(self.nsppol): - for gwkpoint in self.gwkpoints: - df_sk = self.get_dataframe_sk(spin, gwkpoint, ignore_imag=ignore_imag) + for kcalc in self.sigma_kpoints: + df_sk = self.get_dataframe_sk(spin, kcalc, ignore_imag=ignore_imag) df_list.append(df_sk) return pd.concat(df_list) # FIXME: To maintain previous interface. - to_dataframe = get_dataframe + #to_dataframe = get_dataframe - def get_dataframe_sk(self, spin, kpoint, index=None, ignore_imag=False, with_params=True): + def get_dataframe_sk(self, spin, kpoint, index=None, ignore_imag=False, with_params=True) -> pd.Dataframe: """ - Returns |pandas-DataFrame| with QP results for the given (spin, k-point). + Returns |pandas-DataFrame| with the QP results for the given (spin, k-point). Args: ignore_imag: Only real part is returned if ``ignore_imag``. - with_params: True to include convergence paramenters. + with_params: True to include convergence parameters. """ rows, bands = [], [] + ikcalc = self.r.kpt2ikcalc(kpoint) + # bstart and bstop depends on kpoint. - ik_gw = self.reader.gwkpt2seqindex(kpoint) - for band in range(self.gwbstart_sk[spin, ik_gw], self.gwbstop_sk[spin, ik_gw]): + for band in range(self.bstart_sk[spin, ikcalc], self.bstop_sk[spin, ikcalc]): bands.append(band) # Build dictionary with the QP results. - qpstate = self.reader.read_qp(spin, kpoint, band, ignore_imag=ignore_imag) + qpstate = self.r.read_qp(spin, kpoint, band, ignore_imag=ignore_imag) d = qpstate.as_dict() - # Add other entries that may be useful when comparing different calculations. if with_params: + # Add other entries that may be useful when comparing different calculations. d.update(self.params) rows.append(d) - import pandas as pd index = len(bands) * [index] if index is not None else bands return pd.DataFrame(rows, index=index, columns=list(rows[0].keys())) - #def plot_matrix_elements(self, mel_name, spin, kpoint, *args, **kwargs): - # matrix = self.reader.read_mel(mel_name, spin, kpoint): - # return plot_matrix(matrix, *args, **kwargs) + @add_fig_kwargs + def plot_sigma_imag_axis(self, kpoint, spin=0, ax_list=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the self-energy along the imaginary frequency axis. + Requires GW calculations with analytic continuation + + Args: + kpoint: + spin: Spin index. + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + fontsize: Legend and title fontsize. + + Returns: |matplotlib-Figure| + """ + # On disk we have the following arrays: + # Matrix elements of $\Sigma_c$ along the imaginary axis. + # Only used in case of analytical continuation. + # NB: Values in the netcdf file are in eV + + # sigcmesi(b1gw:b2gw, nkibz, nomega_i, nsppol*nsig_ab)) + # nctkarr_t('sigxcmesi', "dp", 'cplex, nbgw, number_of_kpoints, nomega_i, ndim_sig'),& + # nctkarr_t('sigcmesi', "dp",'cplex, nbgw, number_of_kpoints, nomega_i, ndim_sig'),& + # nctkarr_t('omega_i', "dp", 'cplex, nomega_i')]) + + var = self.r.read_variable("sigcmesi") + wmesh_ev = self.r.read_value("omega_i")[:, 1] + + ikcalc = self.r.kpt2ikcalc(kpoint) + ik_ibz = self.r.kpt2ibz(kpoint) + + #sigma_band = {} + #for band in range(self.bstart_sk[spin, ikcalc], self.bstop_sk[spin, ikcalc]): + # sigma_band[band] = self.read_sigee_skb(spin, kpoint, band) + + nrows, ncols = 2, 1 + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + ax_list = np.array(ax_list).ravel() + re_ax, im_ax = ax_list + + for band in range(self.bstart_sk[spin, ikcalc], self.bstop_sk[spin, ikcalc]): + ib_gw = band - self.min_bstart + sigma = var[spin, :, ik_ibz, ib_gw, 0] + 1j*var[spin, :, ik_ibz, ib_gw, 1] + re_ax.plot(wmesh_ev, sigma.real, label=f"band: {band}") + im_ax.plot(wmesh_ev, sigma.imag, label=f"band: {band}") + + re_ax.set_ylabel(r"$\Re{\Sigma_c}(i\omega)$ (eV)") + im_ax.set_ylabel(r"$\Im{\Sigma_c}(i\omega)$ (eV)") + set_grid_legend(ax_list, fontsize, xlabel=r"$i\omega$ (eV)") + + return fig #def plot_mlda_to_qps(self, spin, kpoint, *args, **kwargs): - # matrix = self.reader.read_mlda_to_qps(spin, kpoint) + # matrix = self.r.read_mlda_to_qps(spin, kpoint) # return plot_matrix(matrix, *args, **kwargs) def interpolate(self, lpratio=5, ks_ebands_kpath=None, ks_ebands_kmesh=None, ks_degatol=1e-4, @@ -1171,14 +1344,14 @@ def interpolate(self, lpratio=5, ks_ebands_kpath=None, ks_ebands_kmesh=None, ks_ # TODO: Consistency check. errlines = [] eapp = errlines.append - if len(self.gwkpoints) != len(self.ibz): + if len(self.sigma_kpoints) != len(self.ibz): eapp("QP energies should be computed for all k-points in the IBZ but nkibz != nkptgw") - if len(self.gwkpoints) == 1: + if len(self.sigma_kpoints) == 1: eapp("QP Interpolation requires nkptgw > 1.") - #if (np.any(self.gwbstop_sk[0, 0] != self.gwbstop_sk): + #if (np.any(self.bstop_sk[0, 0] != self.bstop_sk): # cprint("Highest bdgw band is not constant over k-points. QP Bands will be interpolated up to...") - #if (np.any(self.gwbstart_sk[0, 0] != self.gwbstart_sk): - #if (np.any(self.gwbstart_sk[0, 0] != 0): + #if (np.any(self.bstart_sk[0, 0] != self.bstart_sk): + #if (np.any(self.bstart_sk[0, 0] != 0): if errlines: raise ValueError("\n".join(errlines)) @@ -1202,27 +1375,31 @@ def interpolate(self, lpratio=5, ks_ebands_kpath=None, ks_ebands_kmesh=None, ks_ # Find the band range for the interpolation. bstart, bstop = 0, ks_ebands_kpath.nband - bstop = min(bstop, self.min_gwbstop) - if ks_ebands_kpath.nband < self.min_gwbstop: + bstop = min(bstop, self.min_bstop) + if ks_ebands_kpath.nband < self.min_bstop: cprint("Number of bands in KS band structure smaller than the number of bands in GW corrections", "red") cprint("Highest GW bands will be ignored", "red") + if not ks_ebands_kpath.kpoints.is_path: + cprint("Energies in ks_ebands_kpath should be along a k-path!", "red") + # Interpolate QP energies if ks_ebands_kpath is None else interpolate QP corrections # and re-apply them on top of the KS band structure. - gw_kcoords = [k.frac_coords for k in self.gwkpoints] + gw_kcoords = [k.frac_coords for k in self.sigma_kpoints] # Read GW energies from file (real part) and compute corrections if ks_ebands_kpath. - egw_rarr = self.reader.read_value("egw", cmode="c").real + # This is the section in which the fileoformat (SIGRES.nc, GWR.nc) enters into play... + egw_rarr = self.r.read_value("egw", cmode="c").real if ks_ebands_kpath is not None: if ks_ebands_kpath.structure != self.structure: cprint("sigres.structure and ks_ebands_kpath.structures differ. Check your files!", "red") - egw_rarr -= self.reader.read_value("e0") + egw_rarr -= self.r.read_value("e0") - # Note there's no guarantee that the gwkpoints and the corrections have the same k-point index. + # Note there's no guarantee that the sigma_kpoints and the corrections have the same k-point index. # Be careful because the order of the k-points and the band range stored in the SIGRES file may differ ... qpdata = np.empty(egw_rarr.shape) - for gwk in self.gwkpoints: - ik_ibz = self.reader.kpt2fileindex(gwk) + for gwk in self.sigma_kpoints: + ik_ibz = self.r.kpt2ibz(gwk) for spin in range(self.nsppol): qpdata[spin, ik_ibz, :] = egw_rarr[spin, ik_ibz, :] @@ -1231,7 +1408,7 @@ def interpolate(self, lpratio=5, ks_ebands_kpath=None, ks_ebands_kmesh=None, ks_ cell = (self.structure.lattice.matrix, self.structure.frac_coords, self.structure.atomic_numbers) qpdata = qpdata[:, :, bstart:bstop] # Old sigres files do not have kptopt. - has_timrev = has_timrev_from_kptopt(self.reader.read_value("kptopt", default=1)) + has_timrev = has_timrev_from_kptopt(self.r.read_value("kptopt", default=1)) skw = SkwInterpolator(lpratio, gw_kcoords, qpdata, self.ebands.fermie, self.ebands.nelect, cell, fm_symrel, has_timrev, @@ -1250,13 +1427,12 @@ def interpolate(self, lpratio=5, ks_ebands_kpath=None, ks_ebands_kmesh=None, ks_ kpts_kpath = Kpath(self.structure.reciprocal_lattice, kfrac_coords, weights=None, names=knames) occfacts_kpath = np.zeros(eigens_kpath.shape) - # Finding the new Fermi level of the interpolated bands is not trivial, in particular if metallic. + # Finding the new Fermi level of the interpolated bands is not trivial, in particular if metals # because one should first interpolate the QP bands on a mesh. Here I align the QP bands # at the HOMO of the KS bands. homos = ks_ebands_kpath.homos if ks_ebands_kpath is not None else self.ebands.homos qp_fermie = max([eigens_kpath[e.spin, e.kidx, e.band] for e in homos]) - #qp_fermie = self.ebands.fermie - #qp_fermie = 0.0 + #qp_fermie = self.ebands.fermie; qp_fermie = 0.0 qp_ebands_kpath = ElectronBands(self.structure, kpts_kpath, eigens_kpath, qp_fermie, occfacts_kpath, self.ebands.nelect, self.ebands.nspinor, self.ebands.nspden, @@ -1271,18 +1447,19 @@ def interpolate(self, lpratio=5, ks_ebands_kpath=None, ks_ebands_kmesh=None, ks_ ks_ebands_kmesh.nband, bstop)) if ks_ebands_kpath.structure != self.structure: cprint("sigres.structure and ks_ebands_kpath.structures differ. Check your files!", "red") - #raise ValueError("sigres.structure and ks_ebands_kmesh.structures differ. Check your files!") + if not ks_ebands_kmesh.kpoints.is_ibz: + cprint("Energies in ks_ebands_kmesh should be given in the IBZ", "red") - # K-points and weight for DOS are taken from ks_ebands_kmesh + # K-points and weights for DOS are taken from ks_ebands_kmesh. dos_kcoords = [k.frac_coords for k in ks_ebands_kmesh.kpoints] dos_weights = [k.weight for k in ks_ebands_kmesh.kpoints] - # Interpolate QP corrections from bstart to bstop + # Interpolate QP corrections from bstart to bstop. ref_eigens = ks_ebands_kmesh.eigens[:, :, bstart:bstop] qp_corrs = skw.interp_kpts_and_enforce_degs(dos_kcoords, ref_eigens, atol=ks_degatol).eigens eigens_kmesh = qp_corrs if only_corrections else ref_eigens + qp_corrs - # Build new ebands object with k-mesh + # Build new ebands object with k-mesh. kpts_kmesh = IrredZone(self.structure.reciprocal_lattice, dos_kcoords, weights=dos_weights, names=None, ksampling=ks_ebands_kmesh.kpoints.ksampling) occfacts_kmesh = np.zeros(eigens_kmesh.shape) @@ -1304,8 +1481,8 @@ def yield_figs(self, **kwargs): # pragma: no cover """ yield self.plot_qpgaps(show=False) yield self.plot_qps_vs_e0(show=False) - yield self.plot_qpbands_ibz(show=False) - yield self.plot_ksbands_with_qpmarkers(show=False) + #yield self.plot_qpbands_ibz(show=False) + #yield self.plot_ksbands_with_qpmarkers(show=False) if self.has_spectral_function: yield self.plot_spectral_functions(include_bands=None, show=False) @@ -1341,6 +1518,7 @@ class SigresReader(ETSF_Reader): .. rubric:: Inheritance Diagram .. inheritance-diagram:: SigresReader + """ # See 70gw/m_sigma_results.F90 @@ -1356,149 +1534,154 @@ class SigresReader(ETSF_Reader): # "ze0", #] - integer :: b1gw,b2gw ! min and Max gw band indeces over spin and k-points (used to dimension) - integer :: gwcalctyp ! Flag defining the calculation type. - integer :: nkptgw ! No. of points calculated - integer :: nkibz ! No. of irreducible k-points. - integer :: nbnds ! Total number of bands - integer :: nomega_r ! No. of real frequencies for the spectral function. - integer :: nomega_i ! No. of frequencies along the imaginary axis. - integer :: nomega4sd ! No. of real frequencies to evaluate the derivative of $\Sigma(E)$. - integer :: nsig_ab ! 1 if nspinor=1,4 for noncollinear case. - integer :: nsppol ! No. of spin polarizations. - integer :: usepawu ! 1 if we are using LDA+U as starting point (only for PAW) - - real(dp) :: deltae ! Frequency step for the calculation of d\Sigma/dE - real(dp) :: maxomega4sd ! Max frequency around E_ks for d\Sigma/dE. - real(dp) :: maxomega_r ! Max frequency for spectral function. - real(dp) :: scissor_ene ! Scissor energy value. zero for None. - - integer,pointer :: maxbnd(:,:) - ! maxbnd(nkptgw,nsppol) - ! Max band index considered in GW for this k-point. - - integer,pointer :: minbnd(:,:) - ! minbnd(nkptgw,nsppol) - ! Min band index considered in GW for this k-point. - - real(dp),pointer :: degwgap(:,:) - ! degwgap(nkibz,nsppol) - ! Difference btw the QPState and the KS optical gap. - - real(dp),pointer :: egwgap(:,:) - ! egwgap(nkibz,nsppol)) - ! QPState optical gap at each k-point and spin. - - real(dp),pointer :: en_qp_diago(:,:,:) - ! en_qp_diago(nbnds,nkibz,nsppol)) - ! QPState energies obtained from the diagonalization of the Hermitian approximation to Sigma (QPSCGW) - - real(dp),pointer :: e0(:,:,:) - ! e0(nbnds,nkibz,nsppol) - ! KS eigenvalues for each band, k-point and spin. In case of self-consistent? - - real(dp),pointer :: e0gap(:,:) - ! e0gap(nkibz,nsppol), - ! KS gap at each k-point, for each spin. - - real(dp),pointer :: omega_r(:) - ! omega_r(nomega_r) - ! real frequencies used for the self energy. - - real(dp),pointer :: kptgw(:,:) - ! kptgw(3,nkptgw) - ! ! TODO there is a similar array in sigma_parameters - ! List of calculated k-points. - - real(dp),pointer :: sigxme(:,:,:) - ! sigxme(b1gw:b2gw,nkibz,nsppol*nsig_ab)) - ! Diagonal matrix elements of $\Sigma_x$ i.e $\$ - - real(dp),pointer :: vxcme(:,:,:) - ! vxcme(b1gw:b2gw,nkibz,nsppol*nsig_ab)) - ! $\$ matrix elements of vxc (valence-only contribution). - - real(dp),pointer :: vUme(:,:,:) - ! vUme(b1gw:b2gw,nkibz,nsppol*nsig_ab)) - ! $\$ for LDA+U. - - complex(dpc),pointer :: degw(:,:,:) - ! degw(b1gw:b2gw,nkibz,nsppol)) - ! Difference between the QPState and the KS energies. - - complex(dpc),pointer :: dsigmee0(:,:,:) - ! dsigmee0(b1gw:b2gw,nkibz,nsppol*nsig_ab)) - ! Derivative of $\Sigma_c(E)$ calculated at the KS eigenvalue. - - complex(dpc),pointer :: egw(:,:,:) - ! egw(nbnds,nkibz,nsppol)) - ! QPState energies, $\epsilon_{nks}^{QPState}$. - - complex(dpc),pointer :: eigvec_qp(:,:,:,:) - ! eigvec_qp(nbnds,nbnds,nkibz,nsppol)) - ! Expansion of the QPState amplitude in the KS basis set. - - complex(dpc),pointer :: hhartree(:,:,:,:) - ! hhartree(b1gw:b2gw,b1gw:b2gw,nkibz,nsppol*nsig_ab) - ! $\$ - - complex(dpc),pointer :: sigcme(:,:,:,:) - ! sigcme(b1gw:b2gw,nkibz,nomega_r,nsppol*nsig_ab)) - ! $\$ at each nomega_r frequency - - complex(dpc),pointer :: sigmee(:,:,:) - ! sigmee(b1gw:b2gw,nkibz,nsppol*nsig_ab)) - ! $\Sigma_{xc}E_{KS} + (E_{QPState}- E_{KS})*dSigma/dE_KS - - complex(dpc),pointer :: sigcmee0(:,:,:) - ! sigcmee0(b1gw:b2gw,nkibz,nsppol*nsig_ab)) - ! Diagonal mat. elements of $\Sigma_c(E)$ calculated at the KS energy $E_{KS}$ - - complex(dpc),pointer :: sigcmesi(:,:,:,:) - ! sigcmesi(b1gw:b2gw,nkibz,nomega_i,nsppol*nsig_ab)) - ! Matrix elements of $\Sigma_c$ along the imaginary axis. - ! Only used in case of analytical continuation. - - complex(dpc),pointer :: sigcme4sd(:,:,:,:) - ! sigcme4sd(b1gw:b2gw,nkibz,nomega4sd,nsppol*nsig_ab)) - ! Diagonal matrix elements of \Sigma_c around the zeroth order eigenvalue (usually KS). - - complex(dpc),pointer :: sigxcme(:,:,:,:) - ! sigxme(b1gw:b2gw,nkibz,nomega_r,nsppol*nsig_ab)) - ! $\$ at each real frequency frequency. - - complex(dpc),pointer :: sigxcmesi(:,:,:,:) - ! sigxcmesi(b1gw:b2gw,nkibz,nomega_i,nsppol*nsig_ab)) - ! Matrix elements of $\Sigma_{xc}$ along the imaginary axis. - ! Only used in case of analytical continuation. - - complex(dpc),pointer :: sigxcme4sd(:,:,:,:) - ! sigxcme4sd(b1gw:b2gw,nkibz,nomega4sd,nsppol*nsig_ab)) - ! Diagonal matrix elements of \Sigma_xc for frequencies around the zeroth order eigenvalues. - - complex(dpc),pointer :: ze0(:,:,:) - ! ze0(b1gw:b2gw,nkibz,nsppol)) - ! renormalization factor. $(1-\dfrac{\partial\Sigma_c} {\partial E_{KS}})^{-1}$ - - complex(dpc),pointer :: omega_i(:) - ! omegasi(nomega_i) - ! Frequencies along the imaginary axis used for the analytical continuation. - - complex(dpc),pointer :: omega4sd(:,:,:,:) - ! omega4sd(b1gw:b2gw,nkibz,nomega4sd,nsppol). - ! Frequencies used to evaluate the Derivative of Sigma. - """ - def __init__(self, path): + # integer :: b1gw,b2gw ! min and Max gw band indeces over spin and k-points (used to dimension) + # integer :: gwcalctyp ! Flag defining the calculation type. + # integer :: nkptgw ! No. of points calculated + # integer :: nkibz ! No. of irreducible k-points. + # integer :: nbnds ! Total number of bands + # integer :: nomega_r ! No. of real frequencies for the spectral function. + # integer :: nomega_i ! No. of frequencies along the imaginary axis. + # integer :: nomega4sd ! No. of real frequencies to evaluate the derivative of $\Sigma(E)$. + # integer :: nsig_ab ! 1 if nspinor=1,4 for noncollinear case. + # integer :: nsppol ! No. of spin polarizations. + # integer :: usepawu ! 1 if we are using LDA+U as starting point (only for PAW) + + # real(dp) :: deltae ! Frequency step for the calculation of d\Sigma/dE + # real(dp) :: maxomega4sd ! Max frequency around E_ks for d\Sigma/dE. + # real(dp) :: maxomega_r ! Max frequency for spectral function. + # real(dp) :: scissor_ene ! Scissor energy value. zero for None. + + # integer,pointer :: maxbnd(:,:) + # ! maxbnd(nkptgw,nsppol) + # ! Max band index considered in GW for this k-point. + + # integer,pointer :: minbnd(:,:) + # ! minbnd(nkptgw,nsppol) + # ! Min band index considered in GW for this k-point. + + # real(dp),pointer :: degwgap(:,:) + # ! degwgap(nkibz,nsppol) + # ! Difference btw the QPState and the KS optical gap. + + # real(dp),pointer :: egwgap(:,:) + # ! egwgap(nkibz,nsppol)) + # ! QPState optical gap at each k-point and spin. + + # real(dp),pointer :: en_qp_diago(:,:,:) + # ! en_qp_diago(nbnds,nkibz,nsppol)) + # ! QPState energies obtained from the diagonalization of the Hermitian approximation to Sigma (QPSCGW) + + # real(dp),pointer :: e0(:,:,:) + # ! e0(nbnds,nkibz,nsppol) + # ! KS eigenvalues for each band, k-point and spin. In case of self-consistent? + + # real(dp),pointer :: e0gap(:,:) + # ! e0gap(nkibz,nsppol), + # ! KS gap at each k-point, for each spin. + + # real(dp),pointer :: omega_r(:) + # ! omega_r(nomega_r) + # ! real frequencies used for the self energy. + + # real(dp),pointer :: kptgw(:,:) + # ! kptgw(3,nkptgw) + # ! ! TODO there is a similar array in sigma_parameters + # ! List of calculated k-points. + + # real(dp),pointer :: sigxme(:,:,:) + # ! sigxme(b1gw:b2gw,nkibz,nsppol*nsig_ab)) + # ! Diagonal matrix elements of $\Sigma_x$ i.e $\$ + + # real(dp),pointer :: vxcme(:,:,:) + # ! vxcme(b1gw:b2gw,nkibz,nsppol*nsig_ab)) + # ! $\$ matrix elements of vxc (valence-only contribution). + + # real(dp),pointer :: vUme(:,:,:) + # ! vUme(b1gw:b2gw,nkibz,nsppol*nsig_ab)) + # ! $\$ for LDA+U. + + # complex(dpc),pointer :: degw(:,:,:) + # ! degw(b1gw:b2gw,nkibz,nsppol)) + # ! Difference between the QPState and the KS energies. + + # complex(dpc),pointer :: dsigmee0(:,:,:) + # ! dsigmee0(b1gw:b2gw,nkibz,nsppol*nsig_ab)) + # ! Derivative of $\Sigma_c(E)$ calculated at the KS eigenvalue. + + # complex(dpc),pointer :: egw(:,:,:) + # ! egw(nbnds,nkibz,nsppol)) + # ! QPState energies, $\epsilon_{nks}^{QPState}$. + + # complex(dpc),pointer :: eigvec_qp(:,:,:,:) + # ! eigvec_qp(nbnds,nbnds,nkibz,nsppol)) + # ! Expansion of the QPState amplitude in the KS basis set. + + # complex(dpc),pointer :: hhartree(:,:,:,:) + # ! hhartree(b1gw:b2gw,b1gw:b2gw,nkibz,nsppol*nsig_ab) + # ! $\$ + + # complex(dpc),pointer :: sigcme(:,:,:,:) + # ! sigcme(b1gw:b2gw,nkibz,nomega_r,nsppol*nsig_ab)) + # ! $\$ at each nomega_r frequency + + # complex(dpc),pointer :: sigmee(:,:,:) + # ! sigmee(b1gw:b2gw,nkibz,nsppol*nsig_ab)) + # ! $\Sigma_{xc}E_{KS} + (E_{QPState}- E_{KS})*dSigma/dE_KS + + # complex(dpc),pointer :: sigcmee0(:,:,:) + # ! sigcmee0(b1gw:b2gw,nkibz,nsppol*nsig_ab)) + # ! Diagonal mat. elements of $\Sigma_c(E)$ calculated at the KS energy $E_{KS}$ + + # complex(dpc),pointer :: sigcmesi(:,:,:,:) + # ! sigcmesi(b1gw:b2gw,nkibz,nomega_i,nsppol*nsig_ab)) + # ! Matrix elements of $\Sigma_c$ along the imaginary axis. + # ! Only used in case of analytical continuation. + + # complex(dpc),pointer :: sigcme4sd(:,:,:,:) + # ! sigcme4sd(b1gw:b2gw,nkibz,nomega4sd,nsppol*nsig_ab)) + # ! Diagonal matrix elements of \Sigma_c around the zeroth order eigenvalue (usually KS). + + # complex(dpc),pointer :: sigxcme(:,:,:,:) + # ! sigxme(b1gw:b2gw,nkibz,nomega_r,nsppol*nsig_ab)) + # ! $\$ at each real frequency frequency. + + # complex(dpc),pointer :: sigxcmesi(:,:,:,:) + # ! sigxcmesi(b1gw:b2gw,nkibz,nomega_i,nsppol*nsig_ab)) + # ! Matrix elements of $\Sigma_{xc}$ along the imaginary axis. + # ! Only used in case of analytical continuation. + + # complex(dpc),pointer :: sigxcme4sd(:,:,:,:) + # ! sigxcme4sd(b1gw:b2gw,nkibz,nomega4sd,nsppol*nsig_ab)) + # ! Diagonal matrix elements of \Sigma_xc for frequencies around the zeroth order eigenvalues. + + # complex(dpc),pointer :: ze0(:,:,:) + # ! ze0(b1gw:b2gw,nkibz,nsppol)) + # ! renormalization factor. $(1-\dfrac{\partial\Sigma_c} {\partial E_{KS}})^{-1}$ + + # complex(dpc),pointer :: omega_i(:) + # ! omegasi(nomega_i) + # ! Frequencies along the imaginary axis used for the analytical continuation. + + # complex(dpc),pointer :: omega4sd(:,:,:,:) + # ! omega4sd(b1gw:b2gw,nkibz,nomega4sd,nsppol). + # ! Frequencies used to evaluate the Derivative of Sigma. + + def __init__(self, path: str): self.ks_bands = ElectronBands.from_file(path) self.nsppol = self.ks_bands.nsppol super().__init__(path) + # Read number of frequencies for Sigma along the real axis. try: self.nomega_r = self.read_dimvalue("nomega_r") except self.Error: self.nomega_r = 0 - #self.nomega_i = self.read_dim("nomega_i") + # Read Number of frequencies for Sigma along the imag axis. + try: + self.nomega_i = self.read_dimvalue("nomega_i") + except self.Error: + self.nomega_i = 0 # Save important quantities needed to simplify the API. self.structure = self.read_structure() @@ -1510,22 +1693,22 @@ def __init__(self, path): self.ibz = self.ks_bands.kpoints # 2) The K-points where QPState corrections have been calculated. - gwred_coords = self.read_redc_gwkpoints() - self.gwkpoints = KpointList(self.structure.reciprocal_lattice, gwred_coords) + gwred_coords = self.read_value("kptgw") + self.sigma_kpoints = KpointList(self.structure.reciprocal_lattice, gwred_coords) # Find k-point name - for kpoint in self.gwkpoints: + for kpoint in self.sigma_kpoints: kpoint.set_name(self.structure.findname_in_hsym_stars(kpoint)) - # minbnd[nkptgw,nsppol] gives the minimum band index computed + # minbnd[nkptgw, nsppol] gives the minimum band index computed # Note conversion between Fortran and python convention. - self.gwbstart_sk = self.read_value("minbnd") - 1 - self.gwbstop_sk = self.read_value("maxbnd") + self.bstart_sk = self.read_value("minbnd") - 1 + self.bstop_sk = self.read_value("maxbnd") # min and Max band index for GW corrections. - self.min_gwbstart = np.min(self.gwbstart_sk) - self.max_gwbstart = np.max(self.gwbstart_sk) + self.min_bstart = np.min(self.bstart_sk) + self.max_bstart = np.max(self.bstart_sk) - self.min_gwbstop = np.min(self.gwbstop_sk) - self.max_gwbstop = np.max(self.gwbstop_sk) + self.min_bstop = np.min(self.bstop_sk) + self.max_bstop = np.max(self.bstop_sk) self._egw = self.read_value("egw", cmode="c") @@ -1551,22 +1734,16 @@ def __init__(self, path): # Self-consistent case self._en_qp_diago = self.read_value("en_qp_diago") - # - self._eigvec_qp = self.read_value("eigvec_qp", cmode="c") - #self._mlda_to_qp - #def is_selfconsistent(self, mode): - # return self.gwcalctyp - @property - def has_spfunc(self): + def has_spfunc(self) -> bool: """True if self contains the spectral function.""" - return self.nomega_r + return self.nomega_r > 0 - def kpt2fileindex(self, kpoint): + def kpt2ibz(self, kpoint) -> int: """ - Helper function that returns the index of kpoint in the netcdf file. + Helper function that returns the index of kpoint in the IBZ. Accepts |Kpoint| instance or integer Raise: @@ -1580,20 +1757,28 @@ def kpt2fileindex(self, kpoint): if duck.is_intlike(kpoint): return int(kpoint) return self.ibz.index(kpoint) - def gwkpt2seqindex(self, gwkpoint): + #def get_ikcalc_kpoint(self, kpoint) -> tuple(int, Kpoint): + # """ + # Return the ikcalc index and the Kpoint + # """ + # ikcalc = self.kpt2ikcalc(kpoint) + # kpoint = self.sigma_kpoints[ikcalc] + # return ikcalc, kpoint + + def kpt2ikcalc(self, kpoint) -> int: """ This function returns the index of the GW k-point in (0:nkptgw) Used to access data in the arrays that are dimensioned [0:nkptgw] e.g. minbnd. """ - if duck.is_intlike(gwkpoint): - return int(gwkpoint) + if duck.is_intlike(kpoint): + return int(kpoint) else: - return self.gwkpoints.index(gwkpoint) + return self.sigma_kpoints.index(kpoint) - def read_redc_gwkpoints(self): - return self.read_value("kptgw") + #def read_redc_sigma_kpoints(self): + # return self.read_value("kptgw") - def read_allqps(self, ignore_imag=False): + def read_allqps(self, ignore_imag=False) -> tuple: """ Return list with ``nsppol`` items. Each item is a :class:`QPList` with the QP results @@ -1604,41 +1789,39 @@ def read_allqps(self, ignore_imag=False): for spin in range(self.nsppol): qps = [] - for gwkpoint in self.gwkpoints: - ik = self.gwkpt2seqindex(gwkpoint) - for band in range(self.gwbstart_sk[spin, ik], self.gwbstop_sk[spin, ik]): - qps.append(self.read_qp(spin, gwkpoint, band, ignore_imag=ignore_imag)) + for kcalc in self.sigma_kpoints: + ikcalc = self.kpt2ikcalc(kcalc) + for band in range(self.bstart_sk[spin, ikcalc], self.bstop_sk[spin, ikcalc]): + qps.append(self.read_qp(spin, kcalc, band, ignore_imag=ignore_imag)) qps_spin[spin] = QPList(qps) return tuple(qps_spin) - def read_qplist_sk(self, spin, kpoint, ignore_imag=False): + def read_qplist_sk(self, spin, kpoint, ignore_imag=False) -> QPList: """ - Read and return :class:`QPList` object for the given spin, kpoint. + Read and return QPList object for the given spin, kpoint. Args: ignore_imag: Only real part is returned if ``ignore_imag``. """ - ik = self.gwkpt2seqindex(kpoint) - bstart, bstop = self.gwbstart_sk[spin, ik], self.gwbstop_sk[spin, ik] + ikcalc = self.kpt2ikcalc(kpoint) + bstart, bstop = self.bstart_sk[spin, ikcalc], self.bstop_sk[spin, ikcalc] return QPList([self.read_qp(spin, kpoint, band, ignore_imag=ignore_imag) for band in range(bstart, bstop)]) - #def read_qpene(self, spin, kpoint, band) - def read_qpenes(self): return self._egw[:, :, :] - def read_qp(self, spin, kpoint, band, ignore_imag=False): + def read_qp(self, spin, kpoint, band, ignore_imag=False) -> QPState: """ - Return :class`QPState` for the given (spin, kpoint, band). + Return QPState for the given (spin, kpoint, band). Only real part is returned if ``ignore_imag``. """ - ik_file = self.kpt2fileindex(kpoint) + ik_file = self.kpt2ibz(kpoint) # Must shift band index (see fortran code that allocates with mdbgw) - ib_gw = band - self.min_gwbstart + ib_gw = band - self.min_bstart def ri(a): return np.real(a) if ignore_imag else a @@ -1658,44 +1841,46 @@ def ri(a): ze0=ri(self._ze0[spin, ik_file, ib_gw]), ) - def read_qpgaps(self): + def read_qpgaps(self) -> np.ndarray: """Read the QP gaps. Returns [nsppol, nkibz] array with QP gaps in eV.""" return self.read_value("egwgap") - def read_ksgaps(self): + def read_ksgaps(self) -> np.ndarray: """Read the KS gaps. Returns [nsppol, nkibz] array with KS gaps in eV.""" return self.read_value("e0gap") - def read_e0(self, spin, kfile, band): + def read_e0(self, spin, kfile, band) -> float: return self.ks_bands.eigens[spin, kfile, band] - def read_sigmaw(self, spin, kpoint, band): - """Returns the real and the imaginary part of the self energy.""" + def read_sigmaw(self, spin, kpoint, band) -> tuple: + """ + Returns the real and the imaginary part of the self energy. + """ if not self.has_spfunc: raise ValueError("%s does not contain spectral function data." % self.path) - ik = self.kpt2fileindex(kpoint) + ik = self.kpt2ibz(kpoint) # Must shift band index (see fortran code that allocates with mdbgw) - ib_gw = band - self.min_gwbstart - #ib_gw = band - self.gwbstart_sk[spin, self.gwkpt2seqindex(kpoint)] + ib_gw = band - self.min_bstart + #ib_gw = band - self.bstart_sk[spin, self.kpt2ikcalc(kpoint)] return self._omega_r, self._sigxcme[spin,:, ik, ib_gw] - def read_spfunc(self, spin, kpoint, band): + def read_spfunc(self, spin, kpoint, band) -> tuple[np.ndarray]: """ - Returns the spectral function. + Compute and return the mesh and the spectral function A(w). one/pi * ABS(AIMAG(Sr%sigcme(ib,ikibz,io,is))) / ( (REAL(Sr%omega_r(io)-Sr%hhartree(ib,ib,ikibz,is)-Sr%sigxcme(ib,ikibz,io,is)))**2 & +(AIMAG(Sr%sigcme(ib,ikibz,io,is)))**2) / Ha_eV,& """ if not self.has_spfunc: - raise ValueError("%s does not contain spectral function data" % self.path) + raise ValueError("%s does not contain the spectral function" % self.path) - ik = self.kpt2fileindex(kpoint) + ik = self.kpt2ibz(kpoint) # Must shift band index (see fortran code that allocates with mdbgw) - ib_gw = band - self.min_gwbstart - #ib_gw = band - self.gwbstart_sk[spin, self.gwkpt2seqindex(kpoint)] + ib_gw = band - self.min_bstart + #ib_gw = band - self.bstart_sk[spin, self.kpt2ikcalc(kpoint)] aim_sigc = np.abs(self._sigcme[spin,:,ik,ib_gw].imag) den = np.zeros(self.nomega_r) @@ -1711,25 +1896,31 @@ def read_eigvec_qp(self, spin, kpoint, band=None): Returns for the given spin, kpoint and band. If band is None, is returned. """ - ik = self.kpt2fileindex(kpoint) + ik = self.kpt2ibz(kpoint) + # + # TODO + #eigvec_qp = self.read_value("eigvec_qp", cmode="c") + # eigvec_qp(nbnds,nbnds,nkibz,nsppol)) + eigvec_qp = self.read_variable("eigvec_qp") if band is not None: - return self._eigvec_qp[spin, ik, :, band] + return eigvec_qp[spin, ik, :, band, 0] + 1j * eigvec_qp[spin, ik, :, band, 1] else: - return self._eigvec_qp[spin, ik, :, :] + return eigvec_qp[spin, ik, :, :, 0] + 1j * eigvec_qp[spin, ik, :, :, 1] - def read_params(self): + def read_params(self) -> dict: """ Read the parameters of the calculation. - Returns: OrderedDict with the value of the parameters. + Returns dict with the value of the parameters. """ param_names = [ - "ecutwfn", "ecuteps", "ecutsigx", "scr_nband", "sigma_nband", + "ecutwfn", "ecuteps", "ecutsigx", + "scr_nband", "sigma_nband", "gwcalctyp", "scissor_ene", ] # Read data and convert to scalar to avoid problems with pandas dataframes. # Old sigres files may not have all the metadata. - params = OrderedDict() + params = {} for pname in param_names: v = self.read_value(pname, default=None) params[pname] = v if v is None else np.asarray(v).item() @@ -1741,14 +1932,14 @@ def read_params(self): #def read_mlda_to_qp(self, spin, kpoint, band=None): # """Returns the unitary transformation KS --> QPS""" - # ik = self.kpt2fileindex(kpoint) + # ik = self.kpt2ibz(kpoint) # if band is not None: # return self._mlda_to_qp[spin,ik,:,band] # else: # return self._mlda_to_qp[spin,ik,:,:] #def read_qprhor(self): - # """Returns the QPState density in real space.""" + # """Returns the QP density in real space.""" class SigresRobot(Robot, RobotWithEbands): @@ -1782,17 +1973,17 @@ def __init__(self, *args): # Different values of bstart_ks are difficult to handle # Because the high-level API assumes an absolute global index # Should decide how to treat this case: either raise or interpret band as an absolute band index. - if any(np.any(nc.gwbstart_sk != nc0.gwbstart_sk) for nc in self.abifiles): - wapp("Comparing ncfiles with different values of gwbstart_sk") - if any(np.any(nc.gwbstop_sk != nc0.gwbstop_sk) for nc in self.abifiles): - wapp("Comparing ncfiles with different values of gwbstop_sk") + if any(np.any(nc.bstart_sk != nc0.bstart_sk) for nc in self.abifiles): + wapp("Comparing ncfiles with different values of bstart_sk") + if any(np.any(nc.bstop_sk != nc0.bstop_sk) for nc in self.abifiles): + wapp("Comparing ncfiles with different values of bstop_sk") if warns: for w in warns: cprint(w, color="yellow") - def _check_dims_and_params(self): - """Test that nsppol, sigma_kpoints, tlist are consistent.""" + def _check_dims_and_params(self) -> None: + """Test that nsppol, sigma_kpoints, are consistent.""" if not len(self.abifiles) > 1: return 0 @@ -1820,7 +2011,8 @@ def merge_dataframes_sk(self, spin, kpoint, **kwargs): if i == 0: table = frame else: - table = table.append(frame) + #table = table.append(frame) + table = pd.concat([table, frame], ignore_index=True) return table @@ -1851,7 +2043,7 @@ def get_qpgaps_dataframe(self, spin=None, kpoint=None, with_geo=False, abspath=F rows, row_names = [], [] for label, sigres in self.items(): row_names.append(label) - d = OrderedDict() + d = {} for aname in attrs: d[aname] = getattr(sigres, aname, None) @@ -1872,11 +2064,84 @@ def get_qpgaps_dataframe(self, spin=None, kpoint=None, with_geo=False, abspath=F row_names = row_names if not abspath else self._to_relpaths(row_names) return pd.DataFrame(rows, index=row_names, columns=list(rows[0].keys())) + def get_fit_gaps_vs_ecuteps(self, spin, kpoint, plot_qpmks=True, slice_data=None, fontsize=12): + """ + Fit QP direct gaps as a function of ecuteps using Eq. 16 of http://dx.doi.org/10.1063/1.4900447 + to extrapolate results for ecuteps --> +oo. + + Args: + spin: Spin index (0 or 1) + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or k-point index. + plot_qpmks: If False, plot QP_gap else (QP_gap - KS_gap) i.e. gap correction + slice_data: Python slice object. Used to downsample data points. + None to use all files of the SigResRobot. + fontsize: legend and label fontsize. + + Return: TODO + """ + # Make sure that nsppol, sigma_kpoints are consistent. + self._check_dims_and_params() + + # Get dimensions and index of the k-point in the sigma_nk array. + nc0 = self.abifiles[0] + nsppol, sigma_kpoints = nc0.nsppol, nc0.sigma_kpoints + ik = nc0.r.kpt2ikcalc(kpoint) + kcalc = nc0.sigma_kpoints[ik] + + # Order files by ecuteps + labels, ncfiles, params = self.sortby("ecuteps", unpack=True) + ecuteps_vals = np.array(params) + + # Get QP and KS gaps ordered by ecuteps_vals. + qp_gaps, ks_gaps = map(np.array, zip(*[ncfile.get_qpgap(spin, kcalc, with_ksgap=True) + for ncfile in ncfiles])) + ydata = qp_gaps if not plot_qpmks else qp_gaps - ks_gaps + + if slice_data is not None: + # Allow user to select a subset of data points via python slice + ecuteps_vals = ecuteps_vals[slice_data] + ydata = ydata[slice_data] + + # Fit results as a function of ecuteps + from scipy.optimize import curve_fit + def func(x, a, b, c): + return a * x**(-1.5) + b * x**(-2.5) + c + + popt, pcov = curve_fit(func, ecuteps_vals, ydata) + + ax, fig, plt = get_ax_fig_plt(ax=None) + ax.plot(ecuteps_vals, ydata, 'ro', label='ab-initio data') + min_ecuteps, max_ecuteps = ecuteps_vals.min(), ecuteps_vals.max() + 20 + xs = np.linspace(min_ecuteps, max_ecuteps, num=50) + # Change label depending on plot_qpmks + what = r"\Delta E_g" if plot_qpmks else r"E_g" + ax.plot(xs, func(xs, *popt), 'b-', + label=rf'fit: $B_3$=%5.3f, $B_5$=%5.3f, ${what} (\infty)$=%5.3f' % tuple(popt)) + ax.hlines(popt[-1], min_ecuteps, max_ecuteps, color="k") + ax.legend(loc="best", fontsize=fontsize, shadow=True) + ax.grid(True) + ax.set_xlabel('ecuteps (Ha)') + ax.set_ylabel(f'${what}$ (eV)') + #ax.set_ylabel('$\Delta E(E_c^{\chi})$ (eV)') + #ax.title(r'$\Delta E(E_c^{\chi}) = \Delta E_g (\infty) + B_3 * E_c^{\chi (-3/2)} + B_5* E_c^{\chi (-5/2)} $') + + #if show: + plt.show() + + return dict2namedtuple( + fig=fig, + func=func, + ecuteps_vals=ecuteps_vals, + ydata=ydata, + popt=popt, + pcov=pcov, + ) + # An alias to have a common API for robots. get_dataframe = get_qpgaps_dataframe @add_fig_kwargs - def plot_qpgaps_convergence(self, plot_qpmks=True, sortby=None, hue=None, sharey=False, fontsize=8, **kwargs): + def plot_qpgaps_convergence(self, plot_qpmks=True, sortby=None, hue=None, sharey=False, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the direct QP gaps for all the k-points available in the robot. @@ -1901,6 +2166,7 @@ def plot_qpgaps_convergence(self, plot_qpmks=True, sortby=None, hue=None, sharey nc0 = self.abifiles[0] nsppol, sigma_kpoints = nc0.nsppol, nc0.sigma_kpoints + # Build grid with (nkpt, 1) plots. ncols, nrows = 1, len(sigma_kpoints) ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, @@ -1912,13 +2178,13 @@ def plot_qpgaps_convergence(self, plot_qpmks=True, sortby=None, hue=None, sharey else: groups = self.group_and_sortby(hue, sortby) - for ik, (kgw, ax) in enumerate(zip(sigma_kpoints, ax_list)): + for ik, (kcalc, ax) in enumerate(zip(sigma_kpoints, ax_list)): for spin in range(nsppol): - ax.set_title("QP dirgap k:%s" % (repr(kgw)), fontsize=fontsize) + ax.set_title("QP dirgap k:%s" % (repr(kcalc)), fontsize=fontsize) - # Extract QP dirgap for [spin, kgw, itemp] + # Extract QP dirgap for [spin, ikcalc, itemp] if hue is None: - qp_gaps, ks_gaps = map(np.array, zip(*[ncfile.get_qpgap(spin, kgw, with_ksgap=True) + qp_gaps, ks_gaps = map(np.array, zip(*[ncfile.get_qpgap(spin, kcalc, with_ksgap=True) for ncfile in ncfiles])) yvals = qp_gaps if not plot_qpmks else qp_gaps - ks_gaps @@ -1932,7 +2198,7 @@ def plot_qpgaps_convergence(self, plot_qpmks=True, sortby=None, hue=None, sharey ax.set_xticklabels(params, fontsize=fontsize) else: for g in groups: - qp_gaps, ks_gaps = map(np.array, zip(*[ncfile.get_qpgap(spin, kgw, with_ksgap=True) + qp_gaps, ks_gaps = map(np.array, zip(*[ncfile.get_qpgap(spin, kcalc, with_ksgap=True) for ncfile in g.abifiles])) yvals = qp_gaps if not plot_qpmks else qp_gaps - ks_gaps label = "%s: %s" % (self._get_label(hue), g.hvalue) @@ -1955,9 +2221,10 @@ def plot_qpgaps_convergence(self, plot_qpmks=True, sortby=None, hue=None, sharey @add_fig_kwargs def plot_qpdata_conv_skb(self, spin, kpoint, band, sortby=None, hue=None, - fontsize=8, **kwargs): + fontsize=8, **kwargs) -> Figure: """ - For each file in the robot, plot the convergence of the QP results for given (spin, kpoint, band) + For each file in the SIGRES robot, plot the convergence of the QP results + for given (spin, kpoint, band) Args: spin: Spin index. @@ -1994,18 +2261,18 @@ def plot_qpdata_conv_skb(self, spin, kpoint, band, sortby=None, hue=None, ax_list = ax_list.ravel() nc0 = self.abifiles[0] - ik = nc0.reader.gwkpt2seqindex(kpoint) + ik = nc0.r.kpt2ikcalc(kpoint) kpoint = nc0.sigma_kpoints[ik] # Sort and read QP data. if hue is None: labels, ncfiles, params = self.sortby(sortby, unpack=True) - qplist = [ncfile.reader.read_qp(spin, kpoint, band) for ncfile in ncfiles] + qplist = [ncfile.r.read_qp(spin, kpoint, band) for ncfile in ncfiles] else: groups = self.group_and_sortby(hue, sortby) qplist_group = [] for g in groups: - lst = [ncfile.reader.read_qp(spin, kpoint, band) for ncfile in g.abifiles] + lst = [ncfile.r.read_qp(spin, kpoint, band) for ncfile in g.abifiles] qplist_group.append(lst) for i, (ax, what) in enumerate(zip(ax_list, what_list)): @@ -2043,7 +2310,7 @@ def plot_qpdata_conv_skb(self, spin, kpoint, band, sortby=None, hue=None, @add_fig_kwargs def plot_qpfield_vs_e0(self, field, sortby=None, hue=None, fontsize=8, - sharey=False, colormap="jet", e0="fermie", **kwargs): + sharey=False, colormap="jet", e0="fermie", **kwargs) -> Figure: """ For each file in the robot, plot one of the attributes of :class:`QpState` as a function of the KS energy. @@ -2093,7 +2360,7 @@ def plot_qpfield_vs_e0(self, field, sortby=None, hue=None, fontsize=8, @add_fig_kwargs def plot_selfenergy_conv(self, spin, kpoint, band, sortby=None, hue=None, - colormap="jet", xlims=None, fontsize=8, **kwargs): + colormap="jet", xlims=None, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the e-e self-energy wrt to the ``sortby`` parameter. Values can be optionally grouped by `hue`. @@ -2128,8 +2395,7 @@ def plot_selfenergy_conv(self, spin, kpoint, band, sortby=None, hue=None, lnp_list = self.sortby(sortby) for i, (label, ncfile, param) in enumerate(lnp_list): sigma = ncfile.read_sigee_skb(spin, kpoint, band) - fig = sigma.plot(ax_list=ax_list, - label=label, color=cmap(i/len(lnp_list)), show=False) + fig = sigma.plot(ax_list=ax_list, label=label, color=cmap(i/len(lnp_list)), show=False) ax_list = fig.axes else: # group_and_sortby and build (3, ngroups) subplots @@ -2143,8 +2409,8 @@ def plot_selfenergy_conv(self, spin, kpoint, band, sortby=None, hue=None, for i, (nclabel, ncfile, param) in enumerate(g): sigma = ncfile.read_sigee_skb(spin, kpoint, band) fig = sigma.plot(ax_list=ax_mat[:, ig], - label="%s: %s" % (self._get_label(sortby), param), - color=cmap(i / len(g)), show=False) + label="%s: %s" % (self._get_label(sortby), param), + color=cmap(i / len(g)), show=False) if ig != 0: for ax in ax_mat[:, ig]: diff --git a/abipy/electrons/gwr.py b/abipy/electrons/gwr.py new file mode 100644 index 000000000..cc089b12d --- /dev/null +++ b/abipy/electrons/gwr.py @@ -0,0 +1,1693 @@ +# coding: utf-8 +""" +Objects to analyze and visualize the results of GWR calculations. +""" +from __future__ import annotations + +import dataclasses +import numpy as np +import pandas as pd +import abipy.core.abinit_units as abu + +from collections.abc import Iterable +from typing import Union, Any +from monty.functools import lazy_property +from monty.string import list_strings, marquee +from monty.termcolor import cprint +from abipy.core.structure import Structure +from abipy.core.kpoints import Kpoint, KpointList, Kpath, IrredZone, has_timrev_from_kptopt +from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter +from abipy.iotools import ETSF_Reader +from abipy.tools import duck +from abipy.tools.typing import Figure, KptSelect +from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, Marker, + set_axlims, set_ax_xylabels, set_visible, rotate_ticklabels, set_grid_legend, hspan_ax_line, Exposer) +from abipy.tools.numtools import data_from_cplx_mode +from abipy.electrons.ebands import ElectronBands, RobotWithEbands +from abipy.electrons.gw import SelfEnergy, QPState, QPList #, SigresFile, SigresRobot +from abipy.abio.robots import Robot +from abipy.abio.enums import GWR_TASK + +__all__ = [ + "GwrFile", + "GwrRobot", + "TchimVsSus", +] + + +class _MyQpkindsList(list): + """Returned by find_qpkinds.""" + + +@dataclasses.dataclass(kw_only=True) +class MinimaxMesh: + """ + The minimax mesh reported in the GWR file. + """ + ntau: int # Number of points. + tau_mesh: np.ndarray # tau points. + tau_wgs: np.ndarray # tau weights for integration. + iw_mesh: np.ndarray # omega points along the imag. axis. + iw_wgs: np.ndarray # omega weights for integration. + cosft_wt: np.ndarray # weights for cosine transform (tau --> omega). + cosft_tw: np.ndarray # weights for cosine transform (omega --> tau). + sinft_wt: np.ndarray # weights for sine transform (tau --> omega). + + min_transition_energy_eV: float # Minimum transition energy. + max_transition_energy_eV: float # Maximum transition energy. + eratio: float + ft_max_err_t2w_cos: float + ft_max_err_w2t_cos: float + ft_max_err_t2w_sin: float + cosft_duality_error: float + regterm: float # Regularization term. + + @classmethod + def from_ncreader(cls, reader: ETSF_Reader) -> MinimaxMesh: + """ + Build minimax mesh from a netcdf reader. + """ + d = {} + for field in dataclasses.fields(cls): + name = field.name + if name == "ntau": + value = reader.read_dimvalue(name) + else: + value = reader.read_value(name) + if field.type == "float": + value = float(value) + d[name] = value + + return cls(**d) + + @add_fig_kwargs + def plot_ft_weights(self, other: MinimaxMesh, self_name="self", other_name="other", + with_sinft=False, fontsize=6, **kwargs): + """ + Plot the Fourier transformt weights of two minimax meshes (self and other) + """ + if self.ntau != other.ntau: + raise ValueError("Cannot compare minimax meshes with different ntau") + + import matplotlib.pyplot as plt + nrows, ncols = (4, 2) if with_sinft else (3, 2) + fig, ax_mat = plt.subplots(nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False, + figsize=(12, 8), + #subplot_kw={'xticks': [], 'yticks': []}, + ) + + I_mat = np.eye(self.ntau) + select_irow = { + 0: [(self.cosft_wt @ self.cosft_tw) - I_mat, + (other.cosft_wt @ other.cosft_tw) - I_mat], # , other.cosft_wt @ other.cosft_tw], + 1: [self.cosft_wt, other.cosft_wt], # self.cosft_wt - other.cosft_wt], + 2: [self.cosft_tw, other.cosft_tw], # self.cosft_tw - other.cosft_tw], + 3: [self.sinft_tw, other.sinft_tw], # self.sinft_tw - other.sinft_tw], + } + + label_irow = { + 0: [f"(cosft_wt @ cosft_tw) - I ({self_name})", f"(cosft_wt @ cosft_tw) - I ({other_name})"], + 1: [f"cosft_wt ({self_name})", f"cosft_wt ({other_name})"], + 2: [f"cosft_tw ({self_name})", f"cosft_tw ({other_name})"], + 3: [f"sinft_tw ({self_name})", f"sinft_tw ({other_name})"], + } + + for irow in range(nrows): + for iax, (ax, data, label) in enumerate(zip(ax_mat[irow], select_irow[irow], label_irow[irow])): + im = ax.matshow(data, cmap='seismic') + fig.colorbar(im, ax=ax) + ax.set_title(label, fontsize=fontsize) + + return fig + + +class GwrFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter): + """ + This object provides an high-level interface to the GWR.nc file produced by the GWR code. + """ + + # Markers used for up/down bands. + marker_spin = {0: "^", 1: "v"} + + color_spin = {0: "k", 1: "r"} + + @classmethod + def from_file(cls, filepath: str) -> GwrFile: + """Initialize an instance from filepath.""" + return cls(filepath) + + def __init__(self, filepath: str): + """Read data from the netcdf filepath.""" + super().__init__(filepath) + self.r = self.reader = GwrReader(self.filepath) + + @property + def structure(self) -> Structure: + """|Structure| object.""" + return self.r.structure + + @property + def ebands(self) -> ElectronBands: + """|ElectronBands| with the KS energies.""" + return self.r.bands + + @property + def sigma_kpoints(self) -> KpointList: + """The k-points where QP corrections have been calculated.""" + return self.r.sigma_kpoints + + @property + def nkcalc(self) -> int: + """Number of k-points in sigma_kpoints""" + return self.r.nkcalc + + @lazy_property + def ks_dirgaps(self) -> np.ndarray: + """KS direct gaps in eV. Shape: [nsppol, nkcalc]""" + return self.r.read_value("ks_gaps") * abu.Ha_eV + + @lazy_property + def qpz0_dirgaps(self) -> np.ndarray: + """ + QP direct gaps in eV computed with the Z factor at the KS energy + Shape: [nsppol, nkcalc] + """ + return self.r.read_value("qpz_gaps") * abu.Ha_eV + + @lazy_property + def minimax_mesh(self) -> MinimaxMesh: + """Object storing minimax mesh and weights.""" + return MinimaxMesh.from_ncreader(self.r) + + @lazy_property + def qplist_spin(self) -> tuple[QPList]: + """Tuple of QPList objects indexed by spin.""" + return self.r.read_allqps() + + def find_qpkinds(self, qp_kpoints) -> _MyQpkindsList: + """ + Find kpoints for QP corrections from user input. + Return list of (kpt, ikcalc) tuples where kpt is a |Kpoint| and + ikcalc is the index in the nkcalc array.. + """ + if isinstance(qp_kpoints, _MyQpkindsList): + return qp_kpoints + + if isinstance(qp_kpoints, Kpoint): + qp_kpoints = [qp_kpoints] + + if qp_kpoints is None or (duck.is_string(qp_kpoints) and qp_kpoints == "all"): + # qp_kpoints in (None, "all") + items = self.sigma_kpoints, list(range(self.nkcalc)) + + elif duck.is_intlike(qp_kpoints): + # qp_kpoints = 1 + ikc = int(qp_kpoints) + items = [self.sigma_kpoints[ikc]], [ikc] + + elif isinstance(qp_kpoints, Iterable): + # either [0, 1] or [[0, 0.5, 0]] + # note possible ambiguity with [0, 0, 0] that is treated as list of integers. + if duck.is_intlike(qp_kpoints[0]): + ik_list = duck.list_ints(qp_kpoints) + items = [self.sigma_kpoints[ikc] for ikc in ik_list], ik_list + else: + ik_list = [self.r.kpt2ikcalc(kpt) for kpt in qp_kpoints] + qp_kpoints = [self.sigma_kpoints[ikc] for ikc in ik_list] + items = qp_kpoints, ik_list + else: + raise TypeError("Don't know how to interpret `%s`" % (type(qp_kpoints))) + + # Check indices + errors = [] + eapp = errors.append + for ikc in items[1]: + if ikc >= self.nkcalc: + eapp("K-point index %d >= nkcalc %d, check input qp_kpoints" % (ikc, self.nkcalc)) + if errors: + raise ValueError("\n".join(errors)) + + return _MyQpkindsList(zip(items[0], items[1])) + + @lazy_property + def params(self) -> dict: + """ + dict with parameters that might be subject to convergence studies e.g ecuteps. + """ + minimax_mesh = self.minimax_mesh + r = self.r + return dict( + gwr_ntau=r.read_dimvalue("ntau"), + nband=self.ebands.nband, + ecuteps=r.read_value("ecuteps"), + ecutsigx=r.read_value("ecutsigx"), + ecut=r.read_value("ecut"), + gwr_boxcutmin=r.read_value("gwr_boxcutmin"), + nkpt=self.ebands.nkpt, + symchi=r.read_value("symchi"), + symsigma=r.read_value("symsigma"), + regterm=minimax_mesh.regterm, + ) + + def close(self) -> None: + """Close the netcdf file.""" + self.r.close() + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosity level ``verbose``.""" + lines = []; app = lines.append + + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + app(self.structure.to_string(verbose=verbose, title="Structure")) + app("") + app(self.ebands.to_string(title="KS Electron Bands", with_structure=False)) + app("") + + # GWR section. + + app(marquee("GWR parameters", mark="=")) + app("gwr_task: %s" % self.r.gwr_task) + + if self.r.gwr_task == GWR_TASK.RPA_ENERGY: + pass + #d = self.get_rpa_ene_dict() + + else: + app("Number of k-points in Sigma_{nk}: %d" % (len(self.r.sigma_kpoints))) + app("Number of bands included in e-e self-energy sum: %d" % (self.nband)) + keys = self.params.keys() if verbose else ["ecuteps", "ecutsigx", "ecut", "gwr_boxcutmin"] + for k in keys: + app("%s: %s" % (k, self.params[k])) + if verbose: + app(marquee("k-points in Sigma_nk", mark="=")) + app(self.r.sigma_kpoints.to_string(title=None, pre_string="\t")) + app("") + + app(marquee("QP direct gaps in eV", mark="=")) + app(str(self.get_dirgaps_dataframe(with_params=False))) + app("") + + #app(str(self.minimax_mesh)) + + return "\n".join(lines) + + #def get_qpgap(self, spin, kpoint, with_ksgap=False): + # """ + # Return the QP gap in eV at the given (spin, kpoint) + # """ + # ik = self.reader.kpt2fileindex(kpoint) + # if not with_ksgap: + # return self.qpgaps[spin, ik] + # else: + # return self.qpgaps[spin, ik], self.ksgaps[spin, ik] + + def get_dirgaps_dataframe(self, with_params: bool=True, with_geo: bool=False) -> pd.DataFrame: + """ + Return a pandas DataFrame with the QP direct gaps in eV. + + Args: + with_params: True if GWR parameters should be included. + with_geo: True if geometry info should be included. + """ + d = {} + d["kpoint"] = [k.frac_coords for k in self.sigma_kpoints] * self.nsppol + d["kname"] = [k.name for k in self.sigma_kpoints] * self.nsppol + d["ks_dirgaps"] = self.ks_dirgaps.ravel() + d["qpz0_dirgaps"] = self.qpz0_dirgaps.ravel() + #d["qp_pade_dirgaps"] = self.qp_pade_dirgaps.ravel() + d["spin"] = [0] * len(self.sigma_kpoints) + if self.nsppol == 2: d["spin"].extend([1] * len(self.sigma_kpoints)) + + if with_params: + for k, v in self.params.items(): + d[k] = [v] * len(self.sigma_kpoints) * self.nsppol + + if with_geo: + d.update(**self.structure.get_dict4pandas(with_spglib=True)) + + return pd.DataFrame(d) + + def get_dataframe_sk(self, spin: int, kpoint: KptSelect, index=None, + ignore_imag=False, with_params=True, with_geo=False) -> pd.Dataframe: + """ + Returns |pandas-DataFrame| with the QP results for the given (spin, k-point). + + Args: + spin: + kpoint: + index: + ignore_imag: Only real part is returned if ``ignore_imag``. + with_params: True if GWR parameters should be included. + with_geo: True if geometry info should be included. + """ + rows, bands = [], [] + + if with_geo: + geo_dict = self.structure.get_dict4pandas(with_spglib=True) + + qp_list = self.r.read_qplist_sk(spin, kpoint, ignore_imag=ignore_imag) + for qp in qp_list: + bands.append(qp.band) + d = qp.as_dict() + + # Add other entries that may be useful when comparing different calculations. + if with_params: + d.update(self.params) + if with_geo: + d.update(**geo_dict) + + rows.append(d) + + index = len(bands) * [index] if index is not None else bands + return pd.DataFrame(rows, index=index, columns=list(rows[0].keys())) + + def _get_include_bands(self, include_bands: Any, spin: int) -> Union[set, None]: + """ + Helper function to return include_bands for given spin. + """ + if include_bands is None: + return None + + if duck.is_listlike(include_bands) or isinstance(include_bands, set): + return set(include_bands) + + if duck.is_string(include_bands): + if include_bands == "all": + return None + if include_bands == "gap": + lumo_band = self.ebands.lumos[spin].band + homo_band = self.ebands.homos[spin].band + return set(range(homo_band, lumo_band + 1)) + + raise ValueError(f"Invalid value for include_bands: {include_bands}") + + def get_rpa_ene_dict(self) -> dict: + """ + Read RPA energies computed for different ecut_chi (all in Ha) + """ + # nctkarr_t("ecut_chi", "dp", "ncut") + # nctkarr_t("ec_rpa_ecut", "dp", "ncut") + d = {} + for key in ("ecut_chi", "ec_rpa_ecut", "ec_mp2_ecut"): + d[key] = self.r.read_value(key) + + # Extrapolate value for ecut --> oo. + xs = d["ecut_chi"] ** (-3/2.0) + for key in ("ec_rpa_ecut", "ec_mp2_ecut"): + ys = d[key] + coef = np.polyfit(xs, ys, 1) + # poly1d_fn is a function which takes in x and returns an estimate for y + poly1d_fn = np.poly1d(coef) + extrap_value = poly1d_fn(0.0) + #print(f"{extrap_value=}") + d[key + "_inf"] = extrap_value + + #print(d) + return d + + @add_fig_kwargs + def plot_sigma_imag_axis(self, kpoint: KptSelect, + spin=0, include_bands="gap", with_tau=True, + fontsize=8, ax_mat=None, **kwargs) -> Figure: + """ + Plot Sigma_nk(iw) along the imaginary axis for given k-point, spin and list of bands. + + Args: + kpoint: k-point in self-energy. Accepts |Kpoint|, vector or index. + spin: Spin index. + include_bands: List of bands to include. None means all. + with_tau: + fontsize: Legend and title fontsize. + ax_mat: + + Returns: |matplotlib-Figure| + """ + nrows, ncols = (2, 2) if with_tau else (1, 2) + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=not with_tau, + sharey=False, squeeze=False) + ax_mat = np.array(ax_mat) + + # Read Sigma_nk in sigma_of_band + ikcalc, kpoint = self.r.get_ikcalc_kpoint(kpoint) + include_bands = self._get_include_bands(include_bands, spin) + sigma_of_band = self.r.read_sigma_bdict_sikcalc(spin, ikcalc, include_bands) + + # Plot Sigmac_nk(iw) + re_ax, im_ax = ax_list = ax_mat[0] + style = dict(marker="o") + for band, sigma in sigma_of_band.items(): + sigma.c_iw.plot_ax(re_ax, cplx_mode="re", label=f"Re band: {band}", **style) + sigma.c_iw.plot_ax(im_ax, cplx_mode="im", label=f"Im band: {band}", **style) + + re_ax.set_ylabel(r"$\Re{\Sigma_c}(i\omega)$ (eV)") + im_ax.set_ylabel(r"$\Im{\Sigma_c}(i\omega)$ (eV)") + set_grid_legend(ax_list, fontsize, xlabel=r"$i\omega$ (eV)") + + if with_tau: + # Plot Sigmac_nk(itau) + re_ax, im_ax = ax_list = ax_mat[1] + style = dict(marker="o") + for band, sigma in sigma_of_band.items(): + sigma.c_tau.plot_ax(re_ax, cplx_mode="re", label=f"Re band: {band}", **style) + sigma.c_tau.plot_ax(im_ax, cplx_mode="im", label=f"Im band: {band}", **style) + + re_ax.set_ylabel(r"$\Re{\Sigma_c}(i\tau)$ (eV)") + im_ax.set_ylabel(r"$\Im{\Sigma_c}(i\tau)$ (eV)") + set_grid_legend(ax_list, fontsize, xlabel=r"$i\tau$ (a.u.)") + + fig.suptitle(r"$\Sigma_{nk}$" + f" at k-point: {kpoint}, spin: {spin}", fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_sigma_real_axis(self, kpoint: KptSelect, spin=0, include_bands="gap", + fontsize=8, ax_mat=None, **kwargs) -> Figure: + """ + Plot Sigma_nk(w) along the real-axis for given k-point, spin and set of bands. + + Args: + kpoint: k-point in self-energy. Accepts |Kpoint|, vector or index. + spin: Spin index. + include_bands: List of bands to include. None means all. + fontsize: Legend and title fontsize. + ax_mat: + """ + nrows, ncols = 1, 2 + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + ax_mat = np.array(ax_mat) + + ikcalc, kpoint = self.r.get_ikcalc_kpoint(kpoint) + include_bands = self._get_include_bands(include_bands, spin) + sigma_of_band = self.r.read_sigma_bdict_sikcalc(spin, ikcalc, include_bands) + nwr = self.r.nwr + + ax_list = re_ax, im_ax = ax_mat[0] + # Show KS gap as filled area. + self.ebands.add_fundgap_span(ax_list, spin) + + for band, sigma in sigma_of_band.items(): + ib = band - self.r.min_bstart + e0 = self.r.e0_kcalc[spin, ikcalc, ib] + + ys = sigma.xc.values.real + l = sigma.xc.plot_ax(re_ax, cplx_mode="re", label=f"Re band: {band}") + point_style = dict(color=l[0].get_color(), marker="^", markersize=5.0) + re_ax.plot(e0, ys[nwr//2], **point_style) + + ys = sigma.xc.values.imag + l = sigma.xc.plot_ax(im_ax, cplx_mode="im", label=f"Im band: {band}") + point_style = dict(color=l[0].get_color(), marker="^", markersize=5.0) + im_ax.plot(e0, ys[nwr//2], **point_style) + + re_ax.set_ylabel(r"$\Re{\Sigma_{xc}(\omega)}$ (eV)") + im_ax.set_ylabel(r"$\Im{\Sigma_{xc}(\omega)}$ (eV)") + set_grid_legend(ax_list, fontsize=fontsize, xlabel=r"$\omega$ (eV)") + + fig.suptitle(r"$\Sigma_{nk}(\omega)$" + f" at k-point: {kpoint}", fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_qps_vs_e0(self, with_fields="all", exclude_fields=None, e0="fermie", + xlims=None, sharey=False, ax_list=None, fontsize=8, **kwargs) -> Figure: + """ + Plot QP results stored in the GWR file as function of the KS energy. + + Args: + with_fields: The names of the qp attributes to plot as function of eKS. + Accepts: List of strings or string with tokens separated by blanks. + See :class:`QPState` for the list of available fields. + exclude_fields: Similar to ``with_fields`` but excludes fields + e0: Option used to define the zero of energy in the band structure plot. Possible values: + - `fermie`: shift all eigenvalues to have zero energy at the Fermi energy (`self.fermie`). + - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV + - None: Don't shift energies, equivalent to e0=0 + ax_list: List of |matplotlib-Axes| for plot. If None, new figure is produced. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + sharey: True if y-axis should be shared. + fontsize: Legend and title fontsize. + + Returns: |matplotlib-Figure| + """ + with_fields = QPState.get_fields_for_plot(with_fields, exclude_fields) + + # Because qplist does not have the fermi level. + fermie = self.ebands.get_e0(e0) if e0 is not None else None + for spin in range(self.nsppol): + fig = self.qplist_spin[spin].plot_qps_vs_e0( + with_fields=with_fields, exclude_fields=exclude_fields, fermie=fermie, + xlims=xlims, sharey=sharey, ax_list=ax_list, fontsize=fontsize, + marker=self.marker_spin[spin], show=False, **kwargs) + ax_list = fig.axes + + return fig + + @add_fig_kwargs + def plot_spectral_functions(self, include_bands=None, ax_list=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the spectral function A_{nk}(w) for all k-points, bands and + spins available in the GWR file. + + Args: + include_bands: List of bands to include. None means all. + ax_list: + fontsize: Legend and title fontsize. + + Returns: |matplotlib-Figure| + """ + # Build grid of plots. + nrows, ncols = len(self.sigma_kpoints), 1 + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + ax_list = np.array(ax_list).ravel() + + for ikcalc, (kcalc, ax) in enumerate(zip(self.sigma_kpoints, ax_list)): + for spin in range(self.nsppol): + include_bands_ks = self._get_include_bands(include_bands, spin) + sigma_of_band = self.r.read_sigma_bdict_sikcalc(spin, ikcalc, include_bands_ks) + + for band, sigma in sigma_of_band.items(): + label = r"$A(\omega)$: band: %d, spin: %d" % (band, spin) + l = sigma.plot_ax(ax, what="a", label=label, fontsize=fontsize) + # Show position of the KS energy as vertical line. + ib = band - self.r.min_bstart + ax.axvline(self.r.e0_kcalc[spin, ikcalc, ib], + lw=1, color=l[0].get_color(), ls="--") + + # Show KS gap as filled area. + self.ebands.add_fundgap_span(ax, spin) + + ax.set_xlabel(r"$\omega$ (eV)") + ax.set_ylabel(r"$A(\omega)$ (1/eV)") + ax.set_title("k-point: %s" % repr(kcalc), fontsize=fontsize) + + return fig + + #@add_fig_kwargs + #def plot_sparsity(self, what, origin="lower", **kwargs): + # x_mat + # ax.spy(mat, precision=0.1, markersize=5, origin=origin) + + #@add_fig_kwargs + #def plot_mat(self, what, origin="lower", **kwargs): + # x_mat + # ax.spy(mat, precision=0.1, markersize=5, origin=origin) + + #def get_panel(self, **kwargs): + # """ + # Build panel with widgets to interact with the GWR.nc either in a notebook or in panel app. + # """ + # from abipy.panels.gwr import GwrFilePanel + # return GwrFilePanel(self).get_panel(**kwargs) + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + verbose = kwargs.pop("verbose", 0) + + include_bands = "all" if verbose else "gaps" + yield self.plot_spectral_functions(include_bands=include_bands, show=False) + + # TODO + for spin in range(self.nsppol): + for ik, kpoint in enumerate(self.sigma_kpoints): + kws = dict(spin=spin, include_bands = "gaps", show=False) + yield self.plot_sigma_imag_axis(ik, **kws) + yield self.plot_sigma_real_axis(ik, **kws) + + def write_notebook(self, nbpath=None, title=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=title) + + nb.cells.extend([ + nbv.new_code_cell("ncfile = abilab.abiopen('%s')" % self.filepath), + nbv.new_code_cell("print(ncfile)"), + ]) + + return self._write_nb_nbpath(nb, nbpath) + + +class GwrReader(ETSF_Reader): + r""" + This object provides methods to read data from the GWR.nc file. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GwrReader + """ + + def __init__(self, path: str): + super().__init__(path) + + # Save important quantities needed to simplify the API. + self.bands = ElectronBands.from_file(path) + self.structure = self.read_structure() + + self.nsppol = self.bands.nsppol + self.nwr = self.read_dimvalue("nwr") + self.nkcalc = self.read_dimvalue("nkcalc") + self.smat_bsize1 = self.read_dimvalue("smat_bsize1") + self.smat_bsize2 = self.read_dimvalue("smat_bsize2") + char_list = self.read_value("gwr_task") + for i, ch in enumerate(reversed(char_list)): + if not ch: break + i = len(char_list) + i + self.gwr_task = "".join(c.decode("utf-8") for c in char_list[:i]) + self.sig_diago = bool(self.read_value("sig_diago")) + + # The k-points where QP corrections have been calculated. + kcalc_red_coords = self.read_value("kcalc") + self.sigma_kpoints = KpointList(self.structure.reciprocal_lattice, kcalc_red_coords) + # Find k-point name + for kpoint in self.sigma_kpoints: + kpoint.set_name(self.structure.findname_in_hsym_stars(kpoint)) + + # Read mapping kcalc --> IBZ and convert to C indexing. + # nctkarr_t("kcalc2ibz", "int", "nkcalc, six") & + self.kcalc2ibz = self.read_variable("kcalc2ibz")[0,:] - 1 + + # Note conversion between Fortran and python convention. + self.bstart_sk = self.read_value("bstart_ks") - 1 + self.bstop_sk = self.read_value("bstop_ks") + # min band index for GW corrections over spins and k-points + self.min_bstart = np.min(self.bstart_sk) + + @lazy_property + def iw_mesh(self) -> np.ndarray: + """Frequency mesh in eV along the imaginary axis.""" + return self.read_value("iw_mesh") * abu.Ha_eV + + @lazy_property + def tau_mesh(self) -> np.ndarray: + """Tau mesh in a.u.""" + return self.read_value("tau_mesh") + + @lazy_property + def wr_step(self) -> float: + """Frequency-mesh along the real axis in eV.""" + return self.read_value("wr_step") * abu.Ha_eV + + @lazy_property + def e0_kcalc(self) -> np.ndarray: + # nctkarr_t("e0_kcalc", "dp", "smat_bsize1, nkcalc, nsppol"), & + return self.read_value("e0_kcalc") * abu.Ha_eV + + def get_ikcalc_kpoint(self, kpoint) -> tuple(int, Kpoint): + """ + Return the ikcalc index and the Kpoint + """ + ikcalc = self.kpt2ikcalc(kpoint) + kpoint = self.sigma_kpoints[ikcalc] + return ikcalc, kpoint + + def kpt2ikcalc(self, kpoint) -> int: + """ + Returns the index of the k-point in the sigma_kpoints array. + Used to access data in the arrays that are dimensioned [0:nkcalc] + """ + if duck.is_intlike(kpoint): + return int(kpoint) + else: + return self.sigma_kpoints.index(kpoint) + + def get_wr_mesh(self, e0: float) -> np.ndarray: + """ + The frequency mesh in eV is linear and centered around KS e0. + """ + nwr = self.nwr + return np.linspace(start=e0 - self.wr_step * (nwr // 2), + stop=e0 + self.wr_step * (nwr // 2), num=nwr) + + def read_sigee_skb(self, spin, kpoint, band) -> SelfEnergy: + """" + Read self-energy for (spin, kpoint, band). + """ + ikcalc, kpoint = self.get_ikcalc_kpoint(kpoint) + ib = band - self.min_bstart + ib2 = 0 if self.sig_diago else ib + + e0 = self.e0_kcalc[spin, ikcalc, ib] + wmesh = self.get_wr_mesh(e0) + + # nctkarr_t("sigxc_rw_diag", "dp", "two, nwr, smat_bsize1, nkcalc, nsppol"), & + sigxc_values = self.read_variable("sigxc_rw_diag")[spin,ikcalc,ib,:,:] * abu.Ha_eV + sigxc_values = sigxc_values[:,0] + 1j *sigxc_values[:,1] + + # nctkarr_t("spfunc_diag", "dp", "nwr, smat_bsize1, nkcalc, nsppol") & + spf_values = self.read_variable("spfunc_diag")[spin,ikcalc,ib,:] / abu.Ha_eV + + # nctkarr_t("sigc_iw_mat", "dp", "two, ntau, smat_bsize1, smat_bsize2, nkcalc, nsppol"), & + sigc_iw = self.read_value("sigc_iw_mat", cmode="c") * abu.Ha_eV + c_iw_values = sigc_iw[spin,ikcalc,ib2,ib] + + # nctkarr_t("sigc_it_mat", "dp", "two, two, ntau, smat_bsize1, smat_bsize2, nkcalc, nsppol"), & + sigc_tau = self.read_value("sigc_it_mat", cmode="c") * abu.Ha_eV + c_tau_pm = sigc_tau[spin,ikcalc,ib2,ib] + tau_mp_mesh = np.concatenate((-self.tau_mesh[::-1], self.tau_mesh)) + c_tau_mp_values = np.concatenate((c_tau_pm[::-1,1], c_tau_pm[:,0])) + + return SelfEnergy(spin, kpoint, band, wmesh, sigxc_values, spf_values, + iw_mesh=self.iw_mesh, c_iw_values=c_iw_values, + tau_mp_mesh=tau_mp_mesh, c_tau_mp_values=c_tau_mp_values) + + def read_sigma_bdict_sikcalc(self, spin: int, ikcalc: int, include_bands) -> dict[int, SelfEnergy]: + """ + Return dict of self-energy objects for given (spin, ikcalc) indexed by the band index. + """ + sigma_of_band = {} + for band in range(self.bstart_sk[spin, ikcalc], self.bstop_sk[spin, ikcalc]): + if include_bands and band not in include_bands: continue + sigma_of_band[band] = self.read_sigee_skb(spin, ikcalc, band) + return sigma_of_band + + def read_allqps(self, ignore_imag=False) -> tuple[QPList]: + """ + Return list with ``nsppol`` items. Each item is a :class:`QPList` with the QP results + + Args: + ignore_imag: Only real part is returned if ``ignore_imag``. + """ + qps_spin = self.nsppol * [None] + + for spin in range(self.nsppol): + qps = [] + for kpoint in self.sigma_kpoints: + ikcalc = self.kpt2ikcalc(kpoint) + qps.extend(self.read_qplist_sk(spin, kpoint, ignore_imag=ignore_imag)) + + qps_spin[spin] = QPList(qps) + + return tuple(qps_spin) + + def read_qplist_sk(self, spin, kpoint, ignore_imag=False) -> QPList: + """ + Read and return a QPList object for the given spin, kpoint. + + Args: + ignore_imag: Only real part is returned if ``ignore_imag``. + """ + ikcalc, kpoint = self.get_ikcalc_kpoint(kpoint) + + def ri(a): + return np.real(a) if ignore_imag else a + + # TODO: Finalize the implementation. + #sigxme = sigx_mat + sigxme = 0.0 + #self._sigxme[spin, ikcalc, ib], + qp_list = QPList() + for band in range(self.bstart_sk[spin, ikcalc], self.bstop_sk[spin, ikcalc]): + ib = band - self.min_bstart + + qpe = self.read_variable("qpz_ene")[spin, ikcalc, ib] * abu.Ha_meV + qpe = qpe[0] + 1j*qpe[1] + + ze0 = self.read_variable("ze0_kcalc")[spin, ikcalc, ib] + ze0 = ze0[0] + 1j*ze0[1] + + # TODO Finalize the implementation + qp_list.append(QPState( + spin=spin, + kpoint=kpoint, + band=band, + e0=self.e0_kcalc[spin, ikcalc, ib], + qpe=ri(qpe), + qpe_diago=0.0, + #vxcme=self._vxcme[spin, ikcalc, ib], + vxcme=0.0, + sigxme=sigxme, + #sigcmee0=ri(self._sigcmee0[spin, ikcalc, ib]), + sigcmee0=0.0, + vUme=0.0, + ze0=ri(ze0), + )) + return qp_list + + +class GwrRobot(Robot, RobotWithEbands): + """ + This robot analyzes the results contained in multiple GWR.nc files. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GwrRobot + """ + # Try to have API similar to SigresRobot + EXT = "GWR" + + # matplotlib option to fill convergence window. + HATCH = "/" + + def __init__(self, *args): + super().__init__(*args) + if len(self.abifiles) in (0, 1): return + + # Check dimensions and self-energy states and issue warning. + warns = []; wapp = warns.append + nc0 : GwrFile = self.abifiles[0] + same_nsppol, same_nkcalc = True, True + if any(nc.nsppol != nc0.nsppol for nc in self.abifiles): + same_nsppol = False + wapp("Comparing ncfiles with different values of nsppol.") + if any(nc.r.nkcalc != nc0.r.nkcalc for nc in self.abifiles): + same_nkcalc = False + wapp("Comparing ncfiles with different number of k-points in self-energy. Doh!") + + if same_nsppol and same_nkcalc: + # FIXME + # Different values of bstart_ks are difficult to handle + # Because the high-level API assumes an absolute global index + # Should decide how to treat this case: either raise or interpret band as an absolute band index. + if any(np.any(nc.r.bstart_sk != nc0.r.bstart_sk) for nc in self.abifiles): + wapp("Comparing ncfiles with different values of bstart_sk") + if any(np.any(nc.r.bstop_sk != nc0.r.bstop_sk) for nc in self.abifiles): + wapp("Comparing ncfiles with different values of bstop_sk") + + if warns: + for w in warns: + cprint(w, color="yellow") + + def _check_dims_and_params(self) -> None: + """ + Test nsppol, sigma_kpoints. + """ + if not len(self.abifiles) > 1: + return + + nc0: GwrFile = self.abifiles[0] + errors = [] + eapp = errors.append + + if any(nc.nsppol != nc0.nsppol for nc in self.abifiles[1:]): + eapp("Files with different values of `nsppol`") + + if any(nc.nkcalc != nc0.nkcalc for nc in self.abifiles[1:]): + cprint("Files with different values of `nkcalc`", color="yellow") + + for nc in self.abifiles[1:]: + for k0, k1 in zip(nc0.sigma_kpoints, nc.sigma_kpoints): + if k0 != k1: + cprint("Files with different values of `sigma_kpoints`\n"+ + "Specify the kpoint via reduced coordinates and not via the index", "yellow") + break + + if errors: + raise ValueError("Cannot compare multiple GWR.nc files. Reason:\n %s" % "\n".join(errors)) + + def get_dataframe_sk(self, spin, kpoint, with_params=True, ignore_imag=False) -> pd.DataFrame: + """ + Return |pandas-Dataframe| with QP results for this spin, k-point + + Args: + spin: Spin index + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or index. + with_params: True to add convergence parameters. + ignore_imag: only real part is returned if ``ignore_imag``. + """ + df_list = []; app = df_list.append + for label, ncfile in self.items(): + df = ncfile.get_dataframe_sk(spin, kpoint, index=None, + with_params=with_params, ignore_imag=ignore_imag) + app(df) + + return pd.concat(df_list) + + def get_dirgaps_dataframe(self, sortby="kname", with_params=True) -> pd.DataFrame: + """ + Returns |pandas-DataFrame| with QP direct gaps for all the files treated by the GWR robot. + + Args: + sortby: Name to sort by. + with_params: False to exclude calculation parameters from the dataframe. + """ + with_geo = self.has_different_structures() + + df_list = []; app = df_list.append + for _, ncfile in self.items(): + app(ncfile.get_dirgaps_dataframe(with_params=with_params, with_geo=with_geo)) + + df = pd.concat(df_list) + if sortby and sortby in df: df = df.sort_values(sortby) + return df + + def get_dataframe(self, sortby="kname", with_params=True, ignore_imag=False) -> pd.DataFrame: + """ + Return |pandas-Dataframe| with QP results for all k-points, bands and spins + present in the files treated by the GWR robot. + + Args: + sortby: Name to sort by. + with_params: True to add parameters. + ignore_imag: only real part is returned if ``ignore_imag``. + """ + df_list = []; app = df_list.append + for _, ncfile in self.items(): + for spin in range(ncfile.nsppol): + for ikc, _ in enumerate(ncfile.sigma_kpoints): + app(ncfile.get_dataframe_sk(spin, ikc, with_params=with_params, + ignore_imag=ignore_imag)) + + df = pd.concat(df_list) + if sortby and sortby in df: df = df.sort_values(sortby) + return df + + def get_rpa_ene_dataframe(self, with_params=True) -> pd.DataFrame: + """ + Return |pandas-Dataframe| with RPA energies for all the files + treated by the GWR robot. + + Args: + with_params: True to add parameters. + """ + keys = ["ec_rpa_ecut_inf", "ec_mp2_ecut_inf"] + dict_list = [] + for _, ncfile in self.items(): + d = ncfile.get_rpa_ene_dict() + d = {k: d[k] for k in keys} + if with_params: + d.update(ncfile.params) + dict_list.append(d) + + df = pd.DataFrame(dict_list) + #if sortby and sortby in df: df = df.sort_values(sortby) + return df + + @add_fig_kwargs + def plot_selfenergy_conv(self, spin, kpoint, band, axis="wreal", sortby=None, hue=None, + colormap="viridis", xlims=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the convergence of the e-e self-energy wrt to the ``sortby`` parameter. + Values can be optionally grouped by `hue`. + + Args: + spin: Spin index. + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or index. + band: Band index. + axis: "wreal": to plot Sigma(w) and A(w) along the real axis. + "wimag": to plot Sigma(iw) + "tau": to plot Sigma(itau)) along the imag axis. + sortby: Define the convergence parameter, sort files and produce plot labels. + Can be None, string or function. If None, no sorting is performed. + If string and not empty it's assumed that the abifile has an attribute + with the same name and `getattr` is invoked. + If callable, the output of sortby(abifile) is used. + hue: Variable that define subsets of the data, which will be drawn on separate lines. + Accepts callable or string + If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. + If callable, the output of hue(abifile) is used. + colormap: matplotlib color map. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + fontsize: Legend and title fontsize. + + Returns: |matplotlib-Figure| + """ + import matplotlib.pyplot as plt + cmap = plt.get_cmap(colormap) + + # Make sure nsppol and sigma_kpoints are consistent. + self._check_dims_and_params() + ebands0 = self.abifiles[0].ebands + + if hue is None: + # Build grid depends on axis. + nrows = {"wreal": 3, "wimag": 2, "tau": 2}[axis] + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=1, + sharex=True, sharey=False, squeeze=False) + ax_list = np.array(ax_list).ravel() + + lnp_list = self.sortby(sortby) + for ix, (nclabel, ncfile, param) in enumerate(lnp_list): + label = "%s: %s" % (self._get_label(sortby), param) + kws = dict(label=label or nclabel, color=cmap(ix / len(lnp_list))) + sigma = ncfile.r.read_sigee_skb(spin, kpoint, band) + + if axis == "wreal": + # Plot Sigma(w) along the real axis. + sigma.plot_reima_rw(ax_list, **kws) + elif axis == "wimag": + # Plot Sigma(iw) along the imaginary axis. + sigma.plot_reimc_iw(ax_list, **kws) + elif axis == "tau": + # Plot Sigma(itau) along the imaginary axis. + sigma.plot_reimc_tau(ax_list, **kws) + + if axis == "wreal": ebands0.add_fundgap_span(ax_list, spin) + set_grid_legend(ax_list, fontsize) + + else: + # group_and_sortby and build (3, ngroups) subplots + groups = self.group_and_sortby(hue, sortby) + nrows = {"wreal": 3, "wimag": 2, "tau": 2}[axis] + ncols = len(groups) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + for ig, g in enumerate(groups): + subtitle = "%s: %s" % (self._get_label(hue), g.hvalue) + ax_list = ax_mat[:,ig] + ax_list[0].set_title(subtitle, fontsize=fontsize) + + for ix, (nclabel, ncfile, param) in enumerate(g): + kws = dict(label="%s: %s" % (self._get_label(sortby), param), color=cmap(ix / len(g))) + sigma = ncfile.r.read_sigee_skb(spin, kpoint, band) + + if axis == "wreal": + lines = sigma.plot_reima_rw(ax_list, **kws) + if ix == 0: + # Show position of KS energy as vertical line. + ikcalc, _ = ncfile.r.get_ikcalc_kpoint(kpoint) + ib = band - ncfile.r.min_bstart + for ax, l in zip(ax_list, lines): + ax.axvline(ncfile.r.e0_kcalc[spin, ikcalc, ib], lw=1, color=l[0].get_color(), ls="--") + + elif axis == "wimag": + # Plot Sigma_c(iw) along the imaginary axis. + sigma.plot_reimc_iw(ax_list, **kws) + + elif axis == "tau": + # Plot Sigma(itau) along the imaginary axis. + sigma.plot_reimc_tau(ax_list, **kws) + + if axis == "wreal": ebands0.add_fundgap_span(ax_list, spin) + set_grid_legend(ax_list, fontsize) + for ax in ax_list: + set_axlims(ax, xlims, "x") + + if ig != 0: + set_visible(ax_mat[:, ig], False, "ylabel") + + _, kpoint = self.abifiles[0].r.get_ikcalc_kpoint(kpoint) + fig.suptitle(r"$\Sigma_{nk}$" + f" at k-point: {kpoint}, band: {band}, spin: {spin}", + fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_qpgaps_convergence(self, qp_kpoints="all", qp_type="qpz0", sortby=None, hue=None, abs_conv=0.01, + plot_qpmks=True, fontsize=8, **kwargs) -> Figure: + """ + Plot the convergence of the direct QP gaps for all the k-points and spins treated by the GWR robot. + + Args: + qp_kpoints: List of k-points in self-energy. Accept integers (list or scalars), list of vectors, + or "all" to plot all k-points. + qp_type: "qpz0" for linear qp equation with Z factor computed at KS e0, + "otms" for on-the-mass-shell values. + sortby: Define the convergence parameter, sort files and produce plot labels. + Can be None, string or function. If None, no sorting is performed. + If string and not empty it's assumed that the abifile has an attribute + with the same name and `getattr` is invoked. + If callable, the output of sortby(abifile) is used. + hue: Variable that define subsets of the data, which will be drawn on separate lines. + Accepts callable or string + If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. + If callable, the output of hue(abifile) is used. + abs_conv: If not None, show absolute convergence window. + plot_qpmks: If False, plot QP_gap, KS_gap else (QP_gap - KS_gap) + fontsize: legend and label fontsize. + + Returns: |matplotlib-Figure| + """ + # Make sure nsppol and sigma_kpoints are the same. + self._check_dims_and_params() + + nc0 = self.abifiles[0] + nsppol = nc0.nsppol + qpkinds = nc0.find_qpkinds(qp_kpoints) + if len(qpkinds) > 10: + cprint("More that 10 k-points in file. Only 10 k-points will be shown. Specify kpt index expliclty", "yellow") + qpkinds = qpkinds[:10] + + # Build grid with (nkpt, 1) plots. + nrows, ncols = len(qpkinds), 1 + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + if hue is None: + labels, ncfiles, xs = self.sortby(sortby, unpack=True) + else: + groups = self.group_and_sortby(hue, sortby) + + #if qp_type not in {"qpz0", "otms"}: + if qp_type not in {"qpz0", }: + raise ValueError("Invalid qp_type: %s" % qp_type) + + name = "QP dirgap" if not plot_qpmks else "QP - KS dirgap" + name = "%s (%s)" % (name, qp_type.upper()) + + for ix, ((kpt, ikc), ax_row) in enumerate(zip(qpkinds, ax_mat)): + ax = ax_row[0] + for spin in range(nsppol): + ax.set_title("%s k:%s" % (name, repr(kpt)), fontsize=fontsize) + + # Extract QP dirgap for [spin, ikcalc] + if hue is None: + if qp_type == "qpz0": yvals = [ncfile.qpz0_dirgaps[spin, ikc] for ncfile in ncfiles] + #if qp_type == "otms": yvals = [ncfile.qp_dirgaps_otms_t[spin, ikc, itemp] for ncfile in ncfiles] + if plot_qpmks: + yvals = np.array(yvals) - np.array([ncfile.ks_dirgaps[spin, ikc] for ncfile in ncfiles]) + + lines = self.plot_xvals_or_xstr_ax(ax, xs, yvals, fontsize, marker=nc0.marker_spin[spin], + **kwargs) + hspan_ax_line(ax, lines[0], abs_conv, self.HATCH) + + else: + for g in groups: + if qp_type == "qpz0": yvals = [ncfile.qpz0_dirgaps[spin, ikc] for ncfile in g.abifiles] + #if qp_type == "otms": yvals = [ncfile.qp_dirgaps_otms_t[spin, ikc, itemp] for ncfile in g.abifiles] + if plot_qpmks: + yvals = np.array(yvals) - np.array([ncfile.ks_dirgaps[spin, ikc] for ncfile in g.abifiles]) + + label = "%s: %s" % (self._get_label(hue), g.hvalue) + lines = ax.plot(g.xvalues, yvals, marker=nc0.marker_spin[spin], label=label) + + hspan_ax_line(ax, lines[0], abs_conv, self.HATCH) + + ax.grid(True) + if ix == len(qpkinds) - 1: + ax.set_ylabel("%s (eV)" % name) + ax.set_xlabel("%s" % self._get_label(sortby)) + if sortby is None: rotate_ticklabels(ax, 15) + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + return fig + + @add_fig_kwargs + def plot_qpdata_conv_skb(self, spin, kpoint, band, + sortby=None, hue=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the convergence of the QP results for given (spin, kpoint, band). + + Args: + spin: Spin index. + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or index. + band: Band index. + sortby: Define the convergence parameter, sort files and produce plot labels. + Can be None, string or function. If None, no sorting is performed. + If string and not empty it's assumed that the abifile has an attribute + with the same name and `getattr` is invoked. + If callable, the output of sortby(abifile) is used. + hue: Variable that define subsets of the data, which will be drawn on separate lines. + Accepts callable or string + If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. + If callable, the output of hue(abifile) is used. + fontsize: legend and label fontsize. + + Returns: |matplotlib-Figure| + """ + # Make sure that nsppol and sigma_kpoints are consistent. + self._check_dims_and_params() + + # TODO: Add more quantities DW, Fan(0) + # TODO: Decide how to treat complex quantities, avoid annoying ComplexWarning + # TODO: Format for g.hvalue + # Treat fundamental gaps + # Quantities to plot. + what_list = ["re_qpe", "imag_qpe", "ze0"] + + # Build grid plot. + nrows, ncols = len(what_list), 1 + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + ax_list = np.array(ax_list).ravel() + + nc0: GwrFile = self.abifiles[0] + ikc = nc0.kpt2ikcalc(kpoint) + kpoint = nc0.sigma_kpoints[ikc] + + # Sort and read QP data. + if hue is None: + labels, ncfiles, params = self.sortby(sortby, unpack=True) + qplist = [ncfile.reader.read_qp(spin, kpoint, band) for ncfile in ncfiles] + else: + groups = self.group_and_sortby(hue, sortby) + qplist_group = [] + for g in groups: + lst = [ncfile.reader.read_qp(spin, kpoint, band) for ncfile in g.abifiles] + qplist_group.append(lst) + + for ix, (ax, what) in enumerate(zip(ax_list, what_list)): + if hue is None: + # Extract QP data. + #yvals = [getattr(qp, what)[itemp] for qp in qplist] + if not duck.is_string(params[0]): + ax.plot(params, yvals, marker=nc0.marker_spin[spin]) + else: + # Must handle list of strings in a different way. + xn = range(len(params)) + ax.plot(xn, yvals, marker=nc0.marker_spin[spin]) + ax.set_xticks(xn) + ax.set_xticklabels(params, fontsize=fontsize) + else: + for g, qplist in zip(groups, qplist_group): + # Extract QP data. + yvals = [getattr(qp, what)[itemp] for qp in qplist] + label = "%s: %s" % (self._get_label(hue), g.hvalue) + ax.plot(g.xvalues, yvals, marker=nc0.marker_spin[spin], + label=label if ix == 0 else None) + + ax.grid(True) + ax.set_ylabel(what) + if ix == len(what_list) - 1: + ax.set_xlabel("%s" % self._get_label(sortby)) + if sortby is None: rotate_ticklabels(ax, 15) + if ix == 0 and hue is not None: + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + if "title" not in kwargs: + title = "QP results spin: %s, k:%s, band: %s, T = %.1f K" % ( + spin, repr(kpoint), band, nc0.tmesh[itemp]) + fig.suptitle(title, fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_qpfield_vs_e0(self, field, reim="real", function=lambda x: x, sortby=None, hue=None, + fontsize=8, colormap="jet", e0="fermie", **kwargs) -> Figure: + """ + For each file in the GWR robot, plot one of the attributes of :class:`QpTempStat + as a function of the KS energy. + + Args: + field (str): String defining the attribute to plot. + reim: Plot the real or imaginary part + function: Apply a function to the results before plotting + sortby: Define the convergence parameter, sort files and produce plot labels. + Can be None, string or function. If None, no sorting is performed. + If string and not empty it's assumed that the abifile has an attribute + with the same name and `getattr` is invoked. + If callable, the output of sortby(abifile) is used. + hue: Variable that define subsets of the data, which will be drawn on separate lines. + Accepts callable or string + If string, it is assumed that the abifile has an attribute with the same name and getattr is invoked. + If callable, the output of hue(abifile) is used. + colormap: matplotlib color map. + fontsize: legend and label fontsize. + e0: Option used to define the zero of energy in the band structure plot. + + .. note:: + + For the meaning of the other arguments, see other robot methods. + + Returns: |matplotlib-Figure| + """ + import matplotlib.pyplot as plt + cmap = plt.get_cmap(colormap) + + if hue is None: + lnp_list = self.sortby(sortby) + ax_list = None + for i, (label, ncfile, param) in enumerate(lnp_list): + if sortby is not None: + label = "%s: %s" % (self._get_label(sortby), param) + fig = ncfile.plot_qps_vs_e0(with_fields=list_strings(field), + reim=reim, function=function, e0=e0, ax_list=ax_list, + color=cmap(i / len(lnp_list)), fontsize=fontsize, + label=label, show=False) + ax_list = fig.axes + else: + # group_and_sortby and build (ngroups,) subplots + groups = self.group_and_sortby(hue, sortby) + nrows, ncols = 1, len(groups) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=True, squeeze=False) + for ig, g in enumerate(groups): + subtitle = "%s: %s" % (self._get_label(hue), g.hvalue) + ax_mat[0, ig].set_title(subtitle, fontsize=fontsize) + for i, (nclabel, ncfile, param) in enumerate(g): + fig = ncfile.plot_qps_vs_e0(with_fields=list_strings(field), + reim=reim, function=function, + e0=e0, ax_list=ax_mat[:, ig], color=cmap(i / len(g)), fontsize=fontsize, + label="%s: %s" % (self._get_label(sortby), param), show=False) + + if ig != 0: + set_visible(ax_mat[:, ig], False, "ylabel") + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + verbose = kwargs.pop("verbose", 0) + yield self.plot_qpgaps_convergence(qp_kpoints="all", show=False) + + # Visualize the convergence of the self-energy for + # all the k-points and the most important bands. + nc0: GwrFile = self.abifiles[0] + + for spin in range(nc0.nsppol): + for ikcalc in range(nc0.nkcalc): + ik_ibz = nc0.r.kcalc2ibz[ikcalc] + band_v = nc0.ebands.homo_sk(spin, ik_ibz).band + band_c = nc0.ebands.lumo_sk(spin, ik_ibz).band + for band in range(band_v, band_c + 1): + for axis in ("wreal", "wimag", "tau"): + yield self.plot_selfenergy_conv(spin, ikcalc, band, axis=axis, show=False) + + def write_notebook(self, nbpath=None, title=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=title) + + args = [(l, f.filepath) for l, f in self.items()] + nb.cells.extend([ + nbv.new_code_cell("robot = abilab.SigEPhRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), + nbv.new_code_cell("robot.get_params_dataframe()"), + nbv.new_code_cell("# data = robot.get_dataframe()\ndata"), + nbv.new_code_cell("robot.plot_qpgaps_convergence(itemp=0, sortby=None, hue=None);"), + nbv.new_code_cell("""\ +nc0 = robot.abifiles[0] +for spin in range(nc0.nsppol): + for ikc, sigma_kpoint in enumerate(nc0.sigma_kpoints): + for band in range(nc0.r.bstart_sk[spin, ikc], nc0.bstop_sk[spin, ikc]): + robot.plot_qpdata_conv_skb(spin, sigma_kpoint, band, itemp=0, sortby=None, hue=None);"""), + + nbv.new_code_cell("""\ +#nc0 = robot.abifiles[0] +#for spin in range(nc0.nsppol): +# for ikc, sigma_kpoint in enumerate(nc0.sigma_kpoints): +# for band in range(nc0.r.bstart_sk[spin, ikc], nc0.bstop_sk[spin, ikc]): +# robot.plot_selfenergy_conv(spin, sigma_kpoint, band, itemp=0, sortby=None);"),"""), + ]) + + # Mixins. + nb.cells.extend(self.get_baserobot_code_cells()) + nb.cells.extend(self.get_ebands_code_cells()) + + return self._write_nb_nbpath(nb, nbpath) + + + +#class GwrSigresComparator: +# """ +# This object provides a high-level API to compare the results stored in +# a GWR.nc and a SIGRES.nc file (usually produced with the AC method). +# """ +# +# def __init__(self, gwr_filepaths, sigres_filepaths): +# """ +# Args: +# gwr_filepaths: Path(s) of the GWR.nc file. +# sigres_filepaths: Path(s) of the SIGRES.nc file. +# """ +# self.gwr_robot = GwrRobot.from_files(gwr_filepaths) +# self.sigres_robot = SigresRobot.from_files(sigres_filepaths) +# +# def __enter__(self): +# return self +# +# def __exit__(self, exc_type, exc_val, exc_tb): +# """ +# Activated at the end of the with statement. It automatically closes the files. +# """ +# self.gwr_robot.close() +# self.sigres_robot.close() +# +# def __str__(self) -> str: +# return self.to_string() +# +# def to_string(self, verbose: int = 0) -> str: +# """String representation with verbosity level ``verbose``.""" +# lines = []; app = lines.append +# app(self.gwr_robot.to_string(verbose=verbose)) +# app("") +# app(self.sigres_robot.to_string(verbose=verbose)) +# return "\n".join(lines) + + +def _find_g(gg, gvecs): + for ig, g_sus in enumerate(gvecs): + if all(gg == g_sus): return ig + raise ValueError(f"Cannot find g-vector: {gg}") + + + +class TchimVsSus: + """ + Object used to compare the polarizability computed in the GWR code with the one + produced by the legacy algorithm based on the Adler-Wiser expression. + + Example: + + gpairs = [ + ((0, 0, 0), (1, 0, 0)), + ((1, 0, 0), (0, 1, 0)), + ] + qpoint_list = [ + [0, 0, 0], + [0.5, 0.5, 0], + ] + + with TchimVsSus("runo_DS3_TCHIM.nc", "AW_CD/runo_DS3_SUS.nc") as o + o.expose_qpoints_gpairs(qpoint_list, gpairs, exposer="mpl") + """ + def __init__(self, tchim_filepath: str, sus_filepath: str): + """ + Args: + tchim_filepath: TCHIM filename. + sus_filepath: SUS filename. + """ + from abipy.electrons.scr import SusFile + self.sus_file = SusFile(sus_filepath) + self.tchi_reader = ETSF_Reader(tchim_filepath) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """ + Activated at the end of the with statement. It automatically closes the files. + """ + self.sus_file.close() + self.tchi_reader.close() + + def find_tchim_qpoint(self, qpoint) -> tuple[int, np.ndarray]: + """ + Find the index of the q-point in the IBZ. Return index and q-points. + """ + tchi_qpoints = self.tchi_reader.read_variable("qibz") + + if duck.is_intlike(qpoint): + return qpoint, tchi_qpoints + + for tchi_iq, tchi_qq in enumerate(tchi_qpoints): + if np.all(abs(tchi_qq - qpoint) < 1e-6): + return tchi_iq, tchi_qpoints + + raise ValueError(f"Cannot find {qpoint=} in TCHIM file") + + @add_fig_kwargs + def plot_qpoint_gpairs(self, qpoint, gpairs, + fontsize=8, spins=(0, 0), with_title=True, **kwargs) -> Figure: + """ + Plot the Fourier components of the polarizability for given q-point and list of (g, g') pairs. + + Args: + qpoint: q-point or q-point index. + gpairs: List of (g,g') pairs + """ + gpairs = np.array(gpairs) + + sus_reader = self.sus_file.reader + _, sus_iq = sus_reader.find_kpoint_fileindex(qpoint) + + # int reduced_coordinates_plane_waves_dielectric_function(number_of_qpoints_dielectric_function, + # number_of_coefficients_dielectric_function, number_of_reduced_dimensions) ; + # SUSC file uses Gamma-centered G-spere so read at iq = 0 + susc_iwmesh = sus_reader.read_value("frequencies_dielectric_function", cmode="c").imag + susc_gvecs = sus_reader.read_variable("reduced_coordinates_plane_waves_dielectric_function")[0] + + tchi_iq, _ = self.find_tchim_qpoint(qpoint) + tchi_iwmesh = self.tchi_reader.read_value("iw_mesh") + tchi_gvecs = self.tchi_reader.read_variable("gvecs")[tchi_iq] + + # Find indices of gpairs in the two files + sus_inds = [(_find_g(g1, susc_gvecs), _find_g(g2, susc_gvecs)) for g1, g2 in gpairs] + chi_inds = [(_find_g(g1, tchi_gvecs), _find_g(g2, tchi_gvecs)) for g1, g2 in gpairs] + + if sus_reader.path.endswith("SUS.nc"): + sus_var_name = "polarizability" + elif sus_reader.path.endswith("SCR.nc"): + sus_var_name = "inverse_dielectric_function" + else: + raise ValueError(f"Cannot detect varname for file: {sus_reader.path}") + + # Build grid of plots. + num_plots, ncols, nrows = 2 * len(gpairs), 1, 1 + if num_plots > 1: + ncols = 2 + nrows = (num_plots // ncols) + (num_plots % ncols) + + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + + for i, ((g1, g2), (sus_ig1, sus_ig2), (chi_ig1, chi_ig2)) in enumerate(zip(gpairs, sus_inds, chi_inds)): + ax_re, ax_im = ax_mat[i] + + # number_of_qpoints_dielectric_function, number_of_frequencies_dielectric_function, + # number_of_spins, number_of_spins, number_of_coefficients_dielectric_function, + # number_of_coefficients_dielectric_function, complex) + sus_data = sus_reader.read_variable(sus_var_name)[sus_iq, :, 0, 0, sus_ig2, sus_ig1] + sus_data = sus_data[:, 0] + 1j * sus_data[:, 1] + + # nctkarr_t("mats", "dp", "two, mpw, mpw, ntau, nqibz, nsppol") + tchi_data = self.tchi_reader.read_variable("mats")[0, tchi_iq, :, chi_ig2, chi_ig1, :] + tchi_data = tchi_data[:, 0] + 1j * tchi_data[:, 1] + + style = dict(markersize=4) + ax_re.plot(susc_iwmesh[1:], sus_data[1:].real, ls="--", marker="o", label="AW Re", **style) + ax_re.plot(tchi_iwmesh, tchi_data[0:].real, ls=":", marker="^", label="minimax Re", **style) + ax_re.grid(True) + + ax_im.plot(susc_iwmesh[1:], sus_data[1:].imag, ls="--", marker="o", label="AW Im", **style) + ax_im.plot(tchi_iwmesh, tchi_data[0:].imag, ls=":", marker="^", label="minimax Im", **style) + ax_im.grid(True) + + tex_g1, tex_g2, tex_qpt = r"${\bf{G}}_1$", r"${\bf{G}}_2$", r"${\bf{q}}$" + ax_re.set_title(f"{tex_g1}: {g1}, {tex_g2}: {g2}, {tex_qpt}: {qpoint}", fontsize=fontsize) + ax_im.set_title(f"{tex_g1}: {g1}, {tex_g2}: {g2}, {tex_qpt}: {qpoint}", fontsize=fontsize) + + ax_re.legend(loc="best", fontsize=fontsize, shadow=True) + ax_im.legend(loc="best", fontsize=fontsize, shadow=True) + + #if i == 0: + ax_re.set_ylabel(r'$\Re{\chi^0_{\bf{G}_1 \bf{G}_2}(i\omega)}$') + ax_im.set_ylabel(r'$\Im{\chi^0_{\bf{G}_1 \bf{G}_2}(i\omega)}$') + + if i == len(gpairs) - 1: + ax_re.set_xlabel(r'$i \omega$ (Ha)') + ax_im.set_xlabel(r'$i \omega$ (Ha)') + + # The two files may store chi on different meshes. + # Here we select the min value for comparison purposes. + w_max = min(susc_iwmesh[-1], tchi_iwmesh[-1]) + 5 + xlims = [0, w_max] + xlims = [-0.2, 7] + + set_axlims(ax_re, xlims, "x") + set_axlims(ax_im, xlims, "x") + + if with_title: + tex1 = r"$\chi^0(i\omega)$" + tex2 = r"$\chi^0(i\tau) \rightarrow\chi^0(i\omega)$" + fig.suptitle(f"Comparison between Adler-Wiser {tex1} and minimax {tex2}\nLeft: real part. Right: imag part", + fontsize=fontsize) + + return fig + + def expose_qpoints_gpairs(self, qpoint_list, gpairs, exposer="mpl"): + """ + Plot the Fourier components of the polarizability for a list of q-points and, + for each q-point, a list of (g, g') pairs. + + Args: + qpoint_list: List of q-points to consider. + gpairs: List of (g,g') pairs. + exposer: "mpl" for matplotlib, "panel" for web interface. + """ + with Exposer.as_exposer(exposer) as e: + for qpoint in qpoint_list: + e(self.plot_qpoint_gpairs(qpoint, gpairs, show=False)) + return e + + @add_fig_kwargs + def plot_matdiff(self, qpoint, iw_index: int, npwq=101, with_susmat=False, + cmap="jet", fontsize=8, spins=(0, 0), **kwargs) -> Figure: + """ + Plot G-G' matrix with the absolute value of chi_AW and chi_GWR for given q-point and omega index. + + Args: + qpoint: q-point or q-point index. + iw_index: Frequency index. + with_susmat: True to add additional subplot with absolute value of susmat_{g,g'}. + """ + sus_reader = self.sus_file.reader + _, sus_iq = sus_reader.find_kpoint_fileindex(qpoint) + + # int reduced_coordinates_plane_waves_dielectric_function(number_of_qpoints_dielectric_function, + # number_of_coefficients_dielectric_function, number_of_reduced_dimensions) ; + # SUSC file uses Gamma-centered G-spere so read at iq = 0 + susc_iwmesh = sus_reader.read_value("frequencies_dielectric_function", cmode="c").imag + susc_gvecs = sus_reader.read_variable("reduced_coordinates_plane_waves_dielectric_function")[0] + + tchi_iq, qibz = self.find_tchim_qpoint(qpoint) + tchi_iwmesh = self.tchi_reader.read_value("iw_mesh") + tchi_gvecs = self.tchi_reader.read_variable("gvecs")[tchi_iq] + #FIXME: Requires new format + npwq = self.tchi_reader.read_variable("chinpw_qibz")[tchi_iq] + #npwq = min(npwq, len(tchi_gvecs)) + tchi_gvecs = tchi_gvecs[:npwq] + + # Find indices of tchi_gvecs in susc_gvecs to remap matrix + ig_tchi2sus = np.array([_find_g(g1, susc_gvecs) for g1 in tchi_gvecs]) + + if sus_reader.path.endswith("SUS.nc"): + sus_var_name = "polarizability" + elif sus_reader.path.endswith("SCR.nc"): + sus_var_name = "inverse_dielectric_function" + else: + raise ValueError(f"Cannot detect varname for file: {sus_reader.path}") + + # Read full matrix from file, extract smaller submatrix using sus_index, chi_inds + # + # number_of_qpoints_dielectric_function, number_of_frequencies_dielectric_function, + # number_of_spins, number_of_spins, number_of_coefficients_dielectric_function, + # number_of_coefficients_dielectric_function, complex) + sus_data = sus_reader.read_variable(sus_var_name)[sus_iq, iw_index, 0, 0] + sus_data = (sus_data[:,:, 0] + 1j * sus_data[:,:,1]).T.copy() + + # TODO: Very inefficient for large npwq. + sus_mat = np.zeros((npwq, npwq), dtype=complex) + for ig2 in range(npwq): + ig2_sus = ig_tchi2sus[ig2] + for ig1 in range(npwq): + ig1_sus = ig_tchi2sus[ig1] + sus_mat[ig1,ig2] = sus_data[ig1_sus,ig2_sus] + sus_data = sus_mat + + # nctkarr_t("mats", "dp", "two, mpw, mpw, ntau, nqibz, nsppol") + tchi_data = self.tchi_reader.read_variable("mats")[0, tchi_iq, iw_index] + tchi_data = (tchi_data[:,:,0] + 1j * tchi_data[:,:,1]).T.copy() + tchi_data = tchi_data[:npwq,:npwq] + + # compute and visualize diff mat + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=1, ncols=2 if with_susmat else 1, + squeeze=False) + ax_list = ax_list.ravel() + + import matplotlib.colors as colors + mat = data_from_cplx_mode("abs", tchi_data - sus_data) + ax = ax_list[0] + im = ax.matshow(mat, cmap=cmap, norm=colors.LogNorm(vmin=mat.min(), vmax=mat.max())) + fig.colorbar(im, ax=ax) + qq = qibz[tchi_iq] + qq_str = "[%.2f, %.2f, %.2f]" % (qq[0], qq[1], qq[2]) + q_info = r"at ${\bf{q}}: %s$" % qq_str + ww_ev = susc_iwmesh[iw_index] * abu.Ha_eV + w_info = r", $i\omega$: %.2f eV" % ww_ev + label = r"$|\chi^0_{AW}({\bf{G}}_1,{\bf{G}}_2) - \chi^0_{GWR}({\bf{G}}_1,{\bf{G}}_2))|$ " + q_info + w_info + ax.set_title(label, fontsize=10) + + if with_susmat: + mat = data_from_cplx_mode("abs", sus_data) + ax = ax_list[1] + im = ax.matshow(mat, cmap=cmap, norm=colors.LogNorm(vmin=mat.min(), vmax=mat.max())) + fig.colorbar(im, ax=ax) + label = r"$|\chi^0_{AW}(\bf{G}_1,\bf{G}_2)|$" + ax.set_title(label, fontsize=10) + + return fig diff --git a/abipy/electrons/lobster.py b/abipy/electrons/lobster.py index bd40ab2a0..479e74b79 100644 --- a/abipy/electrons/lobster.py +++ b/abipy/electrons/lobster.py @@ -1,5 +1,7 @@ # coding: utf-8 """Tools to analyze the output files produced by Lobster.""" +from __future__ import annotations + import os import re import glob @@ -13,13 +15,12 @@ from monty.functools import lazy_property from pymatgen.core.periodic_table import Element from pymatgen.electronic_structure.core import OrbitalType -from pymatgen.io.vasp.outputs import Vasprun -from pymatgen.io.vasp.inputs import Potcar from pymatgen.io.abinit.pseudos import Pseudo from abipy.core.func1d import Function1D from abipy.core.mixins import BaseFile, NotebookWriter from abipy.electrons.gsr import GsrFile from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_visible, set_ax_xylabels +from abipy.tools.typing import Figure from abipy.tools import duck @@ -61,14 +62,14 @@ class _LobsterFile(BaseFile, NotebookWriter): "4f_z(x^2-y^2)": {"style": dict(color="orange", ls="-", lw=1), "latex": "4f_{z(x^2-y^2)}"}, } - def __str__(self): + def __str__(self) -> str: return self.to_string() - def close(self): + def close(self) -> None: """Needed by ABC.""" #@add_fig_kwargs - #def plot_with_ebands(self, ebands, fontsize=12, **kwargs): + #def plot_with_ebands(self, ebands, fontsize=12, **kwargs) -> Figure: # """ # Plot bands + (COHP|COOP|DOSCAR) depending on the content of the file. @@ -159,21 +160,21 @@ class CoxpFile(_LobsterFile): """ @property - def site_pairs_total(self): + def site_pairs_total(self) -> list: """ List of site pairs available for the total COP """ return list(self.total.keys()) @property - def site_pairs_partial(self): + def site_pairs_partial(self) -> list: """ List of site pairs available for the partial COP """ return list(self.partial.keys()) @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> CoxpFile: """ Generates an instance of CoxpFile from the files produce by Lobster. Accepts gzipped files. @@ -248,7 +249,7 @@ def from_file(cls, filepath): spins = [0, 1][:n_spin] - data = np.fromstring(f.read(), dtype=np.float, sep=' ').reshape([n_en_steps, 1+n_spin*n_column_groups*2]) + data = np.fromstring(f.read(), dtype=float, sep=' ').reshape([n_en_steps, 1+n_spin*n_column_groups*2]) # Initialize and fill results new.energies = data[:, 0] @@ -344,7 +345,7 @@ def functions_pair(self): results[pair][spin] = Function1D(self.energies, pair_data[spin]['single']) return results - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation with verbosity level `verbose`.""" lines = []; app = lines.append if verbose: @@ -369,7 +370,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot(what="i", show=False) @add_fig_kwargs - def plot(self, what="d", spin=None, ax=None, exchange_xy=False, fontsize=12, **kwargs): + def plot(self, what="d", spin=None, ax=None, exchange_xy=False, fontsize=12, **kwargs) -> Figure: """ Plot COXP averaged values (DOS or IDOS depending on what). @@ -422,7 +423,7 @@ def plot(self, what="d", spin=None, ax=None, exchange_xy=False, fontsize=12, **k @add_fig_kwargs def plot_average_pairs(self, with_site_index, what="single", exchange_xy=False, - fontsize=8, **kwargs): + fontsize=8, **kwargs) -> Figure: """ Plot COXP total overlap for all sites containg `with_site_index` and average sum (multiplied by the number of pairs) @@ -504,7 +505,7 @@ def plot_average_pairs(self, with_site_index, what="single", exchange_xy=False, @add_fig_kwargs def plot_site_pairs_total(self, from_site_index, what="single", exchange_xy=False, ax=None, - fontsize=8, **kwargs): + fontsize=8, **kwargs) -> Figure: """ Plot COXP total overlap (DOS or IDOS) for all sites listed in `from_site_index` @@ -575,7 +576,7 @@ def get_labelstyle_from_spin_pair(self, spin, pair): @add_fig_kwargs def plot_site_pairs_partial(self, from_site_index, what="single", exchange_xy=True, ax=None, - fontsize=8, **kwargs): + fontsize=8, **kwargs) -> Figure: """ Plot partial crystal orbital projections (DOS or IDOS) for all sites listed in `from_site_index` @@ -766,11 +767,13 @@ def dataframe(self): return pd.DataFrame(rows, columns=list(rows[0].keys())) @add_fig_kwargs - def plot(self, ax=None, **kwargs): + def plot(self, ax=None, **kwargs) -> Figure: """Barplot with average values.""" ax, fig, plt = get_ax_fig_plt(ax=ax) import seaborn as sns - sns.barplot(x="average", y="pair", hue="spin", data=self.dataframe, ax=ax) + df = self.dataframe.copy() + df["pair"] = df["type0"] + "-" + df["type1"] + sns.barplot(x="average", y="pair", hue="spin", data=df, ax=ax) return fig def yield_figs(self, **kwargs): # pragma: no cover @@ -844,7 +847,7 @@ def from_file(cls, filepath): # extract np array for total dos tdos_data = np.fromiter((d for l in dos_data[6:6+n_energies] for d in l.split()), - dtype=np.float).reshape((n_energies, 1+2*n_spin)) + dtype=float).reshape((n_energies, 1+2*n_spin)) new.energies = tdos_data[:,0].copy() new.total_dos = {} @@ -867,7 +870,7 @@ def from_file(cls, filepath): # extract np array for partial dos pdos_data = np.fromiter((d for l in dos_data[i_first_line+1:i_first_line+1+n_energies] for d in l.split()), - dtype=np.float).reshape((n_energies, 1+n_spin*len(orbitals))) + dtype=float).reshape((n_energies, 1+n_spin*len(orbitals))) for i_orb, orb in enumerate(orbitals): for i_spin, spin in enumerate(spins): @@ -897,7 +900,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot_pdos_site(site_index, show=False) @add_fig_kwargs - def plot(self, spin=None, ax=None, exchange_xy=False, fontsize=12, **kwargs): + def plot(self, spin=None, ax=None, exchange_xy=False, fontsize=12, **kwargs) -> Figure: """ Plot DOS. @@ -932,7 +935,7 @@ def plot(self, spin=None, ax=None, exchange_xy=False, fontsize=12, **kwargs): return fig @add_fig_kwargs - def plot_pdos_site(self, site_index, ax=None, exchange_xy=False, fontsize=8, **kwargs): + def plot_pdos_site(self, site_index, ax=None, exchange_xy=False, fontsize=8, **kwargs) -> Figure: """ Plot projected DOS @@ -1163,6 +1166,10 @@ def from_dir(cls, dirpath, dE=0.01, **kwargs): Returns: A LobsterInput. """ + # These two libraries take a long time to import on HPC (07/02/24) so moved to method instead of header + from pymatgen.io.vasp.outputs import Vasprun + from pymatgen.io.vasp.inputs import Potcar + # Try to determine the code used for the calculation dft_code = None if os.path.isfile(os.path.join(dirpath, 'vasprun.xml')): @@ -1299,7 +1306,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot(show=False) @add_fig_kwargs - def plot(self, entries=("coop", "cohp", "doscar"), spin=None, **kwargs): + def plot(self, entries=("coop", "cohp", "doscar"), spin=None, **kwargs) -> Figure: """ Plot COOP + COHP + DOSCAR. @@ -1329,7 +1336,7 @@ def plot(self, entries=("coop", "cohp", "doscar"), spin=None, **kwargs): @add_fig_kwargs def plot_coxp_with_dos(self, from_site_index, what="cohp", with_orbitals=False, exchange_xy=True, - fontsize=8, **kwargs): + fontsize=8, **kwargs) -> Figure: """ Plot COHP (COOP) for all sites in from_site_index and Lobster DOS on len(from_site_index) + 1 subfigures. @@ -1370,7 +1377,7 @@ def plot_coxp_with_dos(self, from_site_index, what="cohp", with_orbitals=False, return fig #@add_fig_kwargs - #def plot_with_ebands(self, ebands, entries=("coop", "cohp", "doscar"), **kwargs): + #def plot_with_ebands(self, ebands, entries=("coop", "cohp", "doscar"), **kwargs) -> Figure: # """ # Plot bands + COHP, COOP, DOSCAR. diff --git a/abipy/electrons/lruj.py b/abipy/electrons/lruj.py new file mode 100644 index 000000000..4a0b73b38 --- /dev/null +++ b/abipy/electrons/lruj.py @@ -0,0 +1,402 @@ +# coding: utf-8 +"""Classes to analyse LRUJ results.""" +from __future__ import annotations + +import dataclasses +import numpy as np +import pandas as pd +from pathlib import Path +#from typing import Any +#from monty.string import is_string, list_strings, marquee +from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter +from abipy.iotools import ETSF_Reader +from abipy.tools.iotools import yaml_safe_load +from abipy.core.structure import Structure +from abipy.tools.typing import Figure, PathLike +from abipy.tools.plotting import (set_axlims, add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, + get_ax3d_fig_plt, rotate_ticklabels, set_visible, plot_unit_cell, set_ax_xylabels, get_figs_plotly) + + + +#class LrujFile(AbinitNcFile, Has_Header, Has_Structure): #, Has_ElectronBands, NotebookWriter): +# """ +# File containing the results of a ground-state calculation. +# +# Usage example: +# +# .. code-block:: python +# +# with GsrFile("foo_GSR.nc") as gsr: +# print("energy: ", gsr.energy) +# gsr.ebands.plot() +# +# .. rubric:: Inheritance Diagram +# .. inheritance-diagram:: LrujFile +# """ +# +# @classmethod +# def from_file(cls, filepath: str) -> GsrFile: +# """Initialize the object from a netcdf_ file.""" +# return cls(filepath) +# +# def __init__(self, filepath: str): +# super().__init__(filepath) +# self.r = r = EtsfReader(filepath) + + +#=============================================================================================================== +#=============================================================================================================== +@dataclasses.dataclass(kw_only=True) +class LrujResults: + """ + This object stores the results produced by lruj. + """ + natom: int + npert: int + ndata: int + pawujat: int + macro_uj: int + diem_token: str + diem: float + alphas: np.ndarray + occ_unscr: np.ndarray + occ_scr: np.ndarray + chi0_coefficients: dict + chi_coefficients: dict + maxdeg: int + dmatpuopt: int + pert_name: str + parname: str + metric: str + fit_df: pd.DataFrame + + @classmethod + def from_file(cls, filepath: PathLike): + """ + Extract results from the main ouput file produced by lruj. + """ + with open(filepath, "rt") as fh: + lines = [line.lstrip() for line in fh] + + # Extract the Yaml document with the chi/chi0 coefficients + in_doc = False + yaml_lines = [] + for i, line in enumerate(lines): + + if line.startswith("--- !LRUJ_Abipy_Plots"): + in_doc = True + continue + + if in_doc and line.startswith("..."): + data = yaml_safe_load("".join(yaml_lines)) + break + + if in_doc: + yaml_lines.append(line) + + natom = data['natom'] + ndata = data['ndata'] + pawujat = data['pawujat'] + macro_uj = data['macro_uj'] + diem_token = data['diem_token'] + diem = data['diem'] + npert = ndata - 1 + if macro_uj==4: + pert_name = r"$\beta$" + metric = r"M $(n^{\uparrow} - n^{\downarrow})$" + parname = 'J' + else: + pert_name = r"$\alpha$" + metric = r"N $(n^{\uparrow} + n^{\downarrow})$" + parname = 'U' + + chi0_coefficients = {} + chi_coefficients = {} + for k, v in data.items(): + magic = "chi0_coefficients_degree" + if k.startswith(magic): + degree = int(k.replace(magic, "")) + chi0_coefficients[degree] = v + magic = "chi_coefficients_degree" + if k.startswith(magic): + degree = int(k.replace(magic, "")) + chi_coefficients[degree] = v + + #print(f"{chi_coefficients=}") + + def find(header, dtype=None): + for i, line in enumerate(lines): + if line.startswith(header): + after = line.replace(header, "", 1).strip() + if dtype: after = dtype(after) + return i, after + raise ValueError(f"Cannot find {header=} in {filepath=}") + + _, maxdeg = find("Maximum degree of polynomials analyzed:", dtype=int) + _, dmatpuopt = find("Value of dmatpuopt:", dtype=int) + + # Parse the section with perturbations and occupations. + """ + Perturbations Occupations + -------------- ----------------------------- + alpha [eV] Unscreened Screened + -------------- ----------------------------- + 0.0000000000 8.6380182458 8.6380182458 + -0.1500000676 8.6964981922 8.6520722003 + + -OR- + + Perturbations Magnetizations + --------------- ----------------------------- + beta [eV] Unscreened Screened + --------------- ----------------------------- + + """ + i, _ = find("Perturbations",dtype=None) + i += 4 + vals = [] + for ipert in range(ndata): + vals.append([float(t) for t in lines[i+ipert].split()]) + vals = np.reshape(vals, (ndata, 3)) + alphas, occ_unscr, occ_scr = vals[:,0], vals[:,1], vals[:,2] + """ + RMS Errors + --------------------------------------- + Regression Chi0 [eV^-1] Chi [eV^-1] J [eV] | Chi0 [eV^-1] Chi [eV^-1] J [eV] + --------------------------------------------------------|--------------------------------------- + Linear: -0.8594082 -0.0949434 9.3689952 | 0.0023925 0.0000878 0.1139297 + Quadratic: -0.8574665 -0.0955791 9.2963099 | 0.0023777 0.0000129 0.0681722 + Cubic: -0.8007858 -0.0952726 9.2474220 | 0.0001546 0.0000015 0.0200543 + ************************************************************************************************* + """ + i, _ = find("Regression Chi0 [eV^-1]") + i += 2 + keys = ["Chi0", "Chi", "HP", "rms_Chi0", "rms_Chi", "rms_HP"] + dict_list = [] + for irow in range(maxdeg): + l = lines[i+irow].replace("|", " ") + tokens = l.split() + d = dict(zip(keys, [float(t) for t in tokens[-6:]])) + d["degree"] = irow + 1 + dict_list.append(d) + + fit_df = pd.DataFrame(dict_list) + + # Build instance from locals dict. + _data = locals() + return cls(**{k: _data[k] for k in [field.name for field in dataclasses.fields(cls)]}) + +#=============================================================================================================== +#=============================================================================================================== + @add_fig_kwargs + def plot(self, ax=None, degrees="all", inset=True, insetdegree=1, insetlocale="lower left", + ptcolor0='k', ptcolor='k', gradcolor1='#3575D5',gradcolor2='#FDAE7B', + ptitle="default", fontsize=12, **kwargs) -> Figure: + """ + Plot + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + degrees: List of degrees to plot. If None, no polynomials are plotted. + ptcolor0: Color of unscreened response data points (default: black) + ptcolor: Color of screened response data points (default: black) + gradcolor1: Hex code of linear regression color (default: Blue #3575D5) + gradcolor2: Hex code of color of regression of maximum degree in list (default: Salmon #FDAE7B) + ptitle: Plot title (default: "Linear Response for atom ) + inset: Plots inset with LR parameter for polynomial fit of degree (default: True) + insetdegree: Degree of polynomial fit information printed in the inset (default: 1) + insetlocale: Position of inset in the plot. Standard matplotlob locations. (default: "lower left") + """ + import seaborn as sns + sns.set() + ax, fig, plt = get_ax_fig_plt(ax=ax) + + # Plot data + yshift = self.occ_unscr[np.where(self.alphas == 0.0000)] * (self.diem - 1.0) + data0 = 1.0/self.diem * (self.occ_unscr + yshift) + ax.scatter(self.alphas, data0, s=70, color=ptcolor0, facecolors='none', linewidths=2, label="Unscreened") + ax.scatter(self.alphas, self.occ_scr, s=70, color=ptcolor, label="Screened") + ax.axvline(x=0.0, color="white", linestyle="--", lw=0.5) + + # Generate mesh for polynomial functions + xstart, xstop = 1.1 * self.alphas.min(), 1.1 * self.alphas.max() + xs = np.arange(xstart, xstop, step=0.01) + + # Prepare colors and coefficients for polynomials the use wants to plot + if degrees == "all": + degrees = self.chi0_coefficients.keys() + + def hex_to_RGB(hex_str): + return [int(hex_str[i:i+2], 16) for i in range(1,6,2)] + + def get_color_gradient(c1, c2, n): + assert n > 1 + c1_rgb = np.array(hex_to_RGB(c1))/255 + c2_rgb = np.array(hex_to_RGB(c2))/255 + mix_pcts = [x/(n-1) for x in range(n)] + rgb_colors = [((1-mix)*c1_rgb + (mix*c2_rgb)) for mix in mix_pcts] + return ["#" + "".join([format(int(round(val*255)), "02x") for val in item]) for item in rgb_colors] + + linecolors=get_color_gradient(gradcolor1,gradcolor2,len(degrees)) + + # Plot polynomial functions + def poly0(coeffs): + return lambda x: 1.0/self.diem * (sum((coeff*x**i for i,coeff in enumerate(coeffs))) + yshift) + + def poly(coeffs): + return lambda x: sum((coeff*x**i for i,coeff in enumerate(coeffs))) + + for degree in degrees: + polynomial0=poly0(self.chi0_coefficients[degree]) + polynomial=poly(self.chi_coefficients[degree]) + if degree == 1: + Labelstring='Linear' + elif degree == 2: + Labelstring='Quadratic' + elif degree == 3: + Labelstring='Cubic' + else: + Labelstring=' '.join(['Degree',str(degree)]) + + if insetdegree==degree: + deginfo = ' '.join(['Parameters for',Labelstring,'fit']) + insetcolor = linecolors[degree-1] + + ax.plot(xs,polynomial0(xs),color=linecolors[degree-1],linewidth=2.0,linestyle='dashed') + ax.plot(xs,polynomial(xs),color=linecolors[degree-1],linewidth=2.0,label=Labelstring) + + ax.legend(loc="best", fontsize=fontsize, shadow=True) + if ptitle=="default": + ptitle=' '.join(["Linear Response",self.parname,"on atom",str(self.pawujat)]) + plt.title(ptitle) + ax.grid(True) + ax.set_xlabel(' '.join([self.pert_name,"(eV)"])) + ax.set_ylabel(self.metric) + + # Generate inset with numerical information on LR + if inset: + from matplotlib.offsetbox import AnchoredText + select = self.fit_df["degree"] == insetdegree + def dfvalue(keywo): + tablevalue = self.fit_df[select][keywo] + return "%.4f" % tablevalue.values[0] + + X0str = ' '.join([r"$\chi_0$","=",dfvalue("Chi0"),r"$\pm$",dfvalue("rms_Chi0"),r"[eV]$^{-1}$"]) + Xstr = ' '.join([r"$\chi$","=",dfvalue("Chi"),r"$\pm$",dfvalue("rms_Chi"),r"[eV]$^{-1}$"]) + HPstr = ' '.join([self.parname,"=",dfvalue("HP"),r"$\pm$",dfvalue("rms_HP"),r"[eV]"]) + insettxt = '\n'.join([deginfo,X0str,Xstr,HPstr]) + parambox = AnchoredText(insettxt,loc=insetlocale) + parambox.patch.set_linewidth(2) + parambox.patch.set_edgecolor(insetcolor) + parambox.patch.set_facecolor('white') + ax.add_artist(parambox) + + return fig + + + +#=============================================================================================================== +#=============================================================================================================== +class LrujAnalyzer: + """ + Analyzes multiple sets of LRUJ files. + """ + def __init__(self, manager=None, verbose=0): + self.ncfiles_of_key = {} + self.results_of_key = {} + self.manager = manager + self.verbose = verbose + + #def __str__(self): + # return self.to_string() + + #def to_string(self, verbose: int = 0) -> str: + # lines = [] + # app = lines.append + # return "\n".join(lines) + + #@classmethod + #def from_dir(cls, key: str, directory: PathLike) -> None: + # new = cls() + # new.scan_dir(key, directory) + # return new + + #def walk_dir(self, key: str, top: PathLike) -> None: + # nc_paths = None + # self.add_ncpaths(key, nc_paths) + + def add_ncpaths(self, key: str, nc_paths: list[str]) -> None: + self.ncfiles_of_key[key] = nc_paths + self.results_of_key[key] = None + self.run() + + def run(self, workdir=None) -> None: + """ + Invoke lruj + """ + from abipy.flowtk.wrappers import Lruj + from abipy.core.globals import get_workdir + workdir = Path(get_workdir(workdir)) + for key, nc_paths in self.ncfiles_of_key.items(): + if self.results_of_key[key] is not None: continue + wdir = workdir / f"run_{key}" + wdir.mkdir() + Lruj(manager=self.manager, verbose=self.verbose).run(nc_paths, workdir=wdir) + self.results_of_key[key] = LrujResults.from_file(wdir / "lruj.stdout") + + @add_fig_kwargs + def plot(self, **kwargs) -> Figure: + """ + Plot + + Args: + """ + keys = self.results_of_key.keys() + + # Build grid of plots. + num_plots, ncols, nrows = len(keys), 1, 1 + if num_plots > 1: + ncols = 2 + nrows = (num_plots // ncols) + (num_plots % ncols) + + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=True, squeeze=False) + ax_list = ax_list.ravel() + # don't show the last ax if num_plots is odd. + if num_plots % ncols != 0: ax_list[-1].axis("off") + + for ix, (key, ax) in enumerate(zip(keys, ax_list)): + res = self.results_of_key[key] + res.plot(ax=ax, show=False, title=key) + + return fig + + +#class LrujInputGenerator +# +# def __init__(self, gs_input, elements, site_inds=None, dmatpuopt=3): +# self.dmatpuopt = dmatpuopt +# self.gs_input = gs_input.copy() +# self.gs_input.set_vars( +# chkprim=0, # Will complain otherwise with AFII magnetic state +# chksymbreak=0, # Don't check for symmetry breaking +# # DFT+U +# usepawu=1, # Alert Abinit to use of DFT+U +# lpawu=[2, 2, 1], # Subspaces of interest: Ni 3d, O 2p +# upawu="*0.0", # Raw (non-corrected) XC functional required to establish U(J) +# jpawu="*0.0", +# dmatpuopt=self.dmatpuopt, # PAW projector for density matrix +# ) +# +# def gen_inputs(self, macro_uj, alphas, supercells): +# #supercells = np.respahe(supercells, (-1, +# for supercell in supercells: +# for alpha in alphas: +# if alpha == 0.0: continue +# gs_input.new_with_vars( +# macro_uj=macro_uj, +# pawujat=1, # Label of perturbed atom +# pawujv1=f"{alpha} eV", # List of perturbation strengths +# prtwf=0, +# prtebands 0 # Don't print ebands +# ) diff --git a/abipy/electrons/optic.py b/abipy/electrons/optic.py index 09e99672e..c116e477e 100644 --- a/abipy/electrons/optic.py +++ b/abipy/electrons/optic.py @@ -2,16 +2,19 @@ """ Objects to read and analyze optical properties stored in the optic.nc file produced by optic executable. """ +from __future__ import annotations + import numpy as np import abipy.core.abinit_units as abu from collections import OrderedDict from monty.string import marquee, list_strings from monty.functools import lazy_property +from abipy.core.structure import Structure from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims, data_from_cplx_mode from abipy.abio.robots import Robot -from abipy.electrons.ebands import ElectronsReader, RobotWithEbands +from abipy.electrons.ebands import ElectronBands, ElectronsReader, RobotWithEbands ALL_CHIS = OrderedDict([ ("linopt", { @@ -25,7 +28,10 @@ "longname": "Second Harmonic Generation", "rank": 3, "terms": ["shg_inter2w", "shg_inter1w", "shg_intra2w", - "shg_intra1w", "shg_intra1wS", "shg_chi2tot"], + "shg_intra1w", "shg_intra1wS", "shg_chi2tot", + "shg_inter2w_AR", "shg_inter1w_AR", "shg_intra2w_AR", + "shg_intra1w_AR", "shg_intra1wS_AR", "shg_chi2tot_AR", + "shg_chi2full"], } #"latex": r"\chi(-2\omega, \omega, \omega)" ), @@ -110,11 +116,11 @@ class OpticNcFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, No """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> OpticNcFile: """Initialize the object from a netcdf file.""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = OpticReader(filepath) @@ -127,6 +133,11 @@ def __init__(self, filepath): for key in keys: setattr(self, key, self.reader.read_value(key)) + # Number of bands in sum over states + # This variable was added in Abinit v9.6.2. + # In previous version nband_sum was assumed to be the max number of bands found in the external files. + self.nband_sum = self.reader.read_value("nband_sum", default=self.ebands.nband) + @lazy_property def wmesh(self): """ @@ -135,11 +146,11 @@ def wmesh(self): """ return self.reader.read_value("wmesh") - def __str__(self): + def __str__(self) -> str: """String representation.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = []; app = lines.append @@ -159,6 +170,7 @@ def to_string(self, verbose=0): app("domega: %s [Ha], %.3f (eV)" % (self.domega, self.domega * abu.Ha_eV)) app("do_antiresonant %s, do_ep_renorm %s" % (self.do_antiresonant, self.do_ep_renorm)) app("Number of temperatures: %d" % self.reader.ntemp) + app("Number of bands in sum-over-states: %d" % self.nband_sum) # Show available tensors and computed components. for key, info in ALL_CHIS.items(): @@ -173,27 +185,27 @@ def to_string(self, verbose=0): return "\n".join(lines) @lazy_property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object.""" return self.reader.read_ebands() @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure @lazy_property - def has_linopt(self): + def has_linopt(self) -> bool: """True if the ncfile contains Second Harmonic Generation tensor.""" return "linopt" in self.reader.computed_components @lazy_property - def has_shg(self): + def has_shg(self) -> bool: """True if the ncfile contains Second Harmonic Generation tensor.""" return "shg" in self.reader.computed_components @lazy_property - def has_leo(self): + def has_leo(self) -> bool: """True if the ncfile contains the Linear Electro-optic tensor""" return "leo" in self.reader.computed_components @@ -202,18 +214,18 @@ def has_leo(self): # """:class:`XcFunc object with info on the exchange-correlation functional.""" # return self.reader.read_abinit_xcfunc() - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() @lazy_property - def params(self): + def params(self) -> dict: """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() return od @staticmethod - def get_linopt_latex_label(what, comp): + def get_linopt_latex_label(what: str, comp: str) -> str: """ Return latex label for linear-optic quantities. Used in plots. """ @@ -228,7 +240,7 @@ def get_linopt_latex_label(what, comp): #eels:r"EELS_{%s}" % comp, )[what] - def get_chi2_latex_label(self, key, what, comp): + def get_chi2_latex_label(self, key: str, what: str, comp: str) -> str: """ Build latex label for chi2-related quantities. Used in plots. """ @@ -402,7 +414,7 @@ class OpticReader(ElectronsReader): .. rubric:: Inheritance Diagram .. inheritance-diagram:: OpticReader """ - def __init__(self, filepath): + def __init__(self, filepath: str) -> None: super().__init__(filepath) self.ntemp = self.read_dimvalue("ntemp") @@ -470,7 +482,14 @@ def read_tensor3_terms(self, key, components, itemp=0): od = OrderedDict([(comp, OrderedDict()) for comp in components]) for chiname in ALL_CHIS[key]["terms"]: #print("About to read:", chiname) - var = self.read_variable(chiname) + + try: + var = self.read_variable(chiname) + except self.Error as exc: + # This to support new terms added ina shg + if key != "shg": + raise exc + for comp in components: try: ijkp = self.computed_components[key].index(comp) @@ -519,7 +538,8 @@ def plot_linopt_convergence(self, components="all", what_list=("re", "im"), "all" if all components available on file should be plotted on the same ax. what_list: List of quantities to plot. "re" for real part, "im" for imaginary. Accepts also "abs", "angle". - sortby: Define the convergence parameter, sort files and produce plot labels. Can be None, string or function. + sortby: Define the convergence parameter, sort files and produce plot labels. + Can be None, string or function. If None, no sorting is performed. If string, it's assumed that the ncfile has an attribute with the same name and getattr is invoked. If callable, the output of callable(ncfile) is used. diff --git a/abipy/electrons/psps.py b/abipy/electrons/psps.py index c9c4e3573..e12a1eb41 100644 --- a/abipy/electrons/psps.py +++ b/abipy/electrons/psps.py @@ -1,20 +1,30 @@ # coding: utf-8 -"""PSPS file with tabulated data.""" +""" +Interface to the PSPS.nc file containing the splined form factors computed by ABINIT. +""" +from __future__ import annotations + +import os import numpy as np +import pandas as pd +#from typing import List, Any from collections import OrderedDict from monty.bisect import find_gt +from monty.string import marquee # list_strings, from monty.functools import lazy_property -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt from abipy.iotools import ETSF_Reader -from abipy.core.mixins import AbinitNcFile - -import logging -logger = logging.getLogger(__name__) +from abipy.core.structure import Structure +from abipy.core.mixins import AbinitNcFile, NotebookWriter +from abipy.abio.robots import Robot +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_visible +from abipy.tools.typing import Figure -def mklabel(fsym, der, arg): - """mklabel(f, 2, x) --> $f''(x)$""" +def _mklabel(fsym: str, der: int, arg: str) -> str: + """ + mklabel(f, 2, x) --> $f''(x)$ + """ if der == 0: return "$%s(%s)$" % (fsym, arg) else: @@ -22,7 +32,7 @@ def mklabel(fsym, der, arg): return "$%s(%s)$" % (fsym, arg) -def rescale(arr, scale=1.0): +def _rescale(arr, scale=1.0): if scale is None: return arr, 0.0 @@ -31,7 +41,7 @@ def rescale(arr, scale=1.0): return fact * arr, fact -def dataframe_from_pseudos(pseudos, index=None): +def dataframe_from_pseudos(pseudos, index=None) -> pd.DataFrame: """ Build pandas dataframe with the most important info associated to a list of pseudos or a list of objects that can be converted into pseudos. @@ -45,11 +55,10 @@ def dataframe_from_pseudos(pseudos, index=None): from abipy.flowtk import PseudoTable pseudos = PseudoTable.as_table(pseudos) - import pandas as pd - attname = ["Z_val", "l_max", "l_local", "nlcc_radius", "xc", "supports_soc", "type"] + attr_names = ["Z_val", "l_max", "l_local", "nlcc_radius", "xc", "supports_soc", "type"] rows = [] for p in pseudos: - row = OrderedDict([(k, getattr(p, k, None)) for k in attname]) + row = OrderedDict([(k, getattr(p, k, None)) for k in attr_names]) row["ecut_normal"], row["pawecutdg_normal"] = None, None if p.has_hints: hint = p.hint_for_accuracy(accuracy="normal") @@ -60,10 +69,14 @@ def dataframe_from_pseudos(pseudos, index=None): return pd.DataFrame(rows, index=index, columns=list(rows[0].keys()) if rows else None) -class PspsFile(AbinitNcFile): +_LW = 1.0 + +_Q2VQ_LATEX = r"$f(q) = q^2 V(q) = -\frac{Z_v}{\pi} + q^2 4\pi\int (\frac{\sin(2\pi q r)}{2\pi q r})(r^2 V(r)+r Z_v) dr$" + + +class PspsFile(AbinitNcFile, NotebookWriter): """ - Netcdf file with the tables used in Abinit to apply the - pseudopotential part of the KS Hamiltonian. + Netcdf file with the tables used in Abinit to apply the pseudopotential part of the KS Hamiltonian. Usage example: @@ -73,28 +86,79 @@ class PspsFile(AbinitNcFile): psps.plot_tcore_rspace() """ linestyles_der = ["-", "--", '-.', ':', ":", ":"] + color_der = ["black", "red", "green", "orange", "cyan"] @classmethod - def from_file(cls, filepath): - """Initialize the object from a Netcdf file""" + def from_file(cls, filepath: str) -> PspsFile: + """Initialize the object from a filepath.""" return cls(filepath) - def __init__(self, filepath): + @classmethod + def from_abinit_run(cls, pseudo, ecut, vloc_rcut=None, workdir=None) -> PspsFile: + """ + Initialize the object from a filepath or a Pseudo object by invoking + abinit with cutoff energy `ecut`. + + Args: + vloc_rcut: Radial cutoff in Bohr (Abinit input variable) + """ + from abipy.flowtk.pseudos import Pseudo + pseudo = Pseudo.as_pseudo(pseudo) + structure = Structure.boxed_atom(pseudo) + + from abipy.abio.factories import gs_input + inp = gs_input(structure, pseudo, + kppa=1, ecut=ecut, pawecutdg=None, accuracy="normal", spin_mode="unpolarized", + smearing="fermi_dirac:0.1 eV", charge=0.0) + + inp.set_vars(prtpsps=-1, # Print PSPS.nc and exit immediately + vloc_rcut=vloc_rcut, + ) + + from abipy.flowtk import AbinitTask + task = AbinitTask.temp_shell_task(inp, workdir=workdir) + retcode = task.start_and_wait(autoparal=False) #, exec_args=["--dry-run"]) + #if retcode != 0: + # print("task.workdir:", task.workdir, "returned retcode", retcode) + + return cls(os.path.join(task.outdir.path_in("out_PSPS.nc"))) + + def __init__(self, filepath: str): super().__init__(filepath) - self.reader = r = PspsReader(filepath) + self.reader = PspsReader(filepath) + + # TODO + #self.ecut = self.reader.read_value("ecut") - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() @lazy_property - def params(self): + def params(self) -> dict: """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" return {} + def __str__(self) -> str: + """String representation.""" + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """String representation.""" + lines = []; app = lines.append + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + + if verbose > 1: + app("") + #app(self.hdr.to_string(verbose=verbose, title="Abinit Header")) + + return "\n".join(lines) + @add_fig_kwargs - def plot(self, **kwargs): + def plot(self, **kwargs) -> Figure: """ Driver routine to plot several quantities on the same graph. @@ -107,7 +171,7 @@ def plot(self, **kwargs): "plot_tcore_rspace", "plot_tcore_qspace", "plot_ffspl", - "plot_vlocq", + "plot_q2vq", ] ax_list, fig, plt = get_axarray_fig_plt(None, nrows=2, ncols=2, @@ -120,69 +184,74 @@ def plot(self, **kwargs): return fig @add_fig_kwargs - def plot_tcore_rspace(self, ax=None, ders=(0, 1, 2, 3), rmax=3.0, **kwargs): + def plot_tcore_rspace(self, ax=None, ders=(0, 1, 2, 3), scale=1.0, rmax=3.0, **kwargs) -> Figure: """ - Plot the model core and its derivatives in real space. + Plot the model core charge and its derivatives in real space. Args: ax: |matplotlib-Axes| or None if a new figure should be created. - ders: Tuple used to select the derivatives to be plotted. + ders: Tuple selecting the derivatives to be plotted. + scale: 1.0 if all derivatives should be scaled to 1 else None. rmax: Max radius for plot in Bohr. None is full grid is wanted. Returns: |matplotlib-Figure| """ - ax, fig, plt = get_ax_fig_plt(ax=ax) + if not isinstance(ders, (list, tuple)): ders = [ders] - linewidth = kwargs.pop("linewidth", 2.0) rmeshes, coresd = self.reader.read_coresd(rmax=rmax) + ax, fig, plt = get_ax_fig_plt(ax=ax) - scale = None - scale = 1.0 for rmesh, mcores in zip(rmeshes, coresd): for der, values in enumerate(mcores): if der not in ders: continue - yvals, fact, = rescale(values, scale=scale) - ax.plot(rmesh, yvals, color=self.color_der[der], linewidth=linewidth, - linestyle=self.linestyles_der[der], - label=mklabel("\\tilde{n}_c", der, "r") + " x %.4f" % fact) + yvals, fact, = _rescale(values, scale=scale) + ax.plot(rmesh, yvals, + color=kwargs.get("color", self.color_der[der]), + linewidth=kwargs.get("linewidth", _LW), + linestyle=kwargs.get("linestyle", self.linestyles_der[der]), + label=_mklabel(r"\tilde{n}_c", der, "r") + " x %.4f" % fact + ) ax.grid(True) - ax.set_xlabel("r [Bohr]") + ax.set_xlabel("r (Bohr)") ax.set_title("Model core in r-space") - if kwargs.get("with_legend", False): ax.legend(loc="best") + if kwargs.get("with_legend", False): + ax.legend(loc="best") return fig @add_fig_kwargs - def plot_tcore_qspace(self, ax=None, ders=(0,), with_fact=True, with_qn=0, **kwargs): + def plot_tcore_qspace(self, ax=None, ders=(0,), with_fact=True, + with_qn=0, scale=1.0, **kwargs) -> Figure: """ - Plot the model core in q space + Plot the model core charge in q space. Args: ax: |matplotlib-Axes| or None if a new figure should be created. - ders: Tuple used to select the derivatives to be plotted. + ders: Tuple selecting the derivatives to be plotted. + scale: 1.0 if all derivatives should be scaled to 1 else None. with_qn: Returns: |matplotlib-Figure| """ + if not isinstance(ders, (list, tuple)): ders = [ders] + ax, fig, plt = get_ax_fig_plt(ax=ax) color = kwargs.pop("color", "black") - linewidth = kwargs.pop("linewidth", 2.0) + linewidth = kwargs.pop("linewidth", _LW) qmesh, tcore_spl = self.reader.read_tcorespl() - #print(qmesh, tcore_spl) ecuts = 2 * (np.pi * qmesh)**2 + lines = [] - scale = 1.0 - scale = None for atype, tcore_atype in enumerate(tcore_spl): for der, values in enumerate(tcore_atype): - if der == 1: der = 2 + #_ider = {0: 0, 1: 2}[der] if der not in ders: continue - yvals, fact = rescale(values, scale=scale) + yvals, fact = _rescale(values, scale=scale) - label = mklabel("\\tilde{n}_{c}", der, "q") + label = _mklabel("\\tilde{n}_{c}", der, "q") if with_fact: label += " x %.4f" % fact line, = ax.plot(ecuts, yvals, color=color, linewidth=linewidth, @@ -190,174 +259,357 @@ def plot_tcore_qspace(self, ax=None, ders=(0,), with_fact=True, with_qn=0, **kwa lines.append(line) if with_qn and der == 0: - yvals, fact = rescale(qmesh * values, scale=scale) + yvals, fact = _rescale(qmesh * values, scale=scale) line, ax.plot(ecuts, yvals, color=color, linewidth=linewidth, - label=mklabel("q f", der, "q") + " x %.4f" % fact) - + label=_mklabel("q f", der, "q") + " x %.4f" % fact) lines.append(line) ax.grid(True) - ax.set_xlabel("Ecut [Hartree]") + ax.set_xlabel("Ecut (Hartree)") ax.set_title("Model core in q-space") - if kwargs.get("with_legend", False): ax.legend(loc="best") + if kwargs.get("with_legend", False): + ax.legend(loc="best") return fig @add_fig_kwargs - def plot_vlocq(self, ax=None, ders=(0,), with_qn=0, with_fact=True, **kwargs): - """ + def plot_q2vq(self, ax=None, ders=(0,), with_qn=0, with_fact=True, + scale=None, **kwargs) -> Figure: + r""" Plot the local part of the pseudopotential in q space. + q2vq(mqgrid) = q^2 V(q) + = -\frac{Zv}{\pi} + + q^2 4\pi\int[(\frac{\sin(2\pi q r)}{2\pi q r})(r^2 V(r)+r Zv)dr]. + Args: ax: |matplotlib-Axes| or None if a new figure should be created. ders: Tuple used to select the derivatives to be plotted. + scale: 1.0 if all derivatives should be scaled to 1 else None. with_qn: Returns: |matplotlib-Figure| """ + if not isinstance(ders, (list, tuple)): ders = [ders] + ax, fig, plt = get_ax_fig_plt(ax=ax) color = kwargs.pop("color", "black") - linewidth = kwargs.pop("linewidth", 2.0) + linewidth = kwargs.pop("linewidth", _LW) qmesh, vlspl = self.reader.read_vlspl() ecuts = 2 * (np.pi * qmesh)**2 - scale = 1.0 - scale = None for atype, vl_atype in enumerate(vlspl): for der, values in enumerate(vl_atype): - if der == 1: der = 2 if der not in ders: continue - - yvals, fact = rescale(values, scale=scale) - label = mklabel("v_{loc}", der, "q") + #_ider = {0: 0, 1: 2}[der] + yvals, fact = _rescale(values, scale=scale) + label = _mklabel("q^2 v_{loc}", der, "q") if with_fact: label += " x %.4f" % fact ax.plot(ecuts, yvals, color=color, linewidth=linewidth, linestyle=self.linestyles_der[der], label=label) - if with_qn and der == 0: - yvals, fact = rescale(qmesh * values, scale=scale) - ax.plot(ecuts, yvals, color=color, linewidth=linewidth, - label="q*f(q) x %2.f" % fact) + #if with_qn and der == 0: + # yvals, fact = _rescale(qmesh * values, scale=scale) + # ax.plot(ecuts, yvals, color=color, linewidth=linewidth, label="q*f(q) x %2.f" % fact) + + #if der == 0: + # z_val = self.reader.zion_typat[atype] + # ax.axhline(y=-z_val / np.pi, linewidth=1, color='k', linestyle="dashed") ax.grid(True) - ax.set_xlabel("Ecut [Hartree]") + ax.set_xlabel("Ecut (Hartree)") ax.set_title("Vloc(q)") - if kwargs.get("with_legend", False): ax.legend(loc="best") + if kwargs.get("with_legend", False): + ax.legend(loc="best") return fig @add_fig_kwargs - def plot_ffspl(self, ax=None, ecut_ffnl=None, ders=(0,), with_qn=0, with_fact=False, **kwargs): + def plot_ffspl(self, ax=None, ecut_ffnl=None, ders=(0,), l_select=None, + with_qn=0, with_fact=False, scale=None, **kwargs) -> Figure: """ Plot the nonlocal part of the pseudopotential in q-space. Args: ax: |matplotlib-Axes| or None if a new figure should be created. ecut_ffnl: Max cutoff energy for ffnl plot (optional) + scale: 1.0 if all derivatives should be scaled to 1 else None. ders: Tuple used to select the derivatives to be plotted. with_qn: Returns: |matplotlib-Figure| """ + if not isinstance(ders, (list, tuple)): ders = [ders] + if l_select is not None: + if not isinstance(l_select, (list, tuple)): l_select = [l_select] + ax, fig, plt = get_ax_fig_plt(ax=ax) color = kwargs.pop("color", "black") - linewidth = kwargs.pop("linewidth", 2.0) + linewidth = kwargs.pop("linewidth", _LW) color_l = {-1: "black", 0: "red", 1: "blue", 2: "green", 3: "orange"} linestyles_n = ["solid", '-', '--', '-.', ":"] - scale = None l_seen = set() + # vlspl has shape [ntypat, 2, mqgrid_vl] qmesh, vlspl = self.reader.read_vlspl() - all_projs = self.reader.read_projectors() + for itypat, projs_type in enumerate(all_projs): # Loop over the projectors for this atom type. for p in projs_type: + if l_select is not None and p.l not in l_select: continue + print("Printing:", p) + for der, values in enumerate(p.data): - if der == 1: der = 2 if der not in ders: continue - #yvals, fact = rescale(values, scale=scale) + #_ider = {0: 0, 1: 2}[der] + #yvals, fact = _rescale(values, scale=scale) + label = None if p.l not in l_seen: l_seen.add(p.l) - label = mklabel("v_{nl}", der, "q") + ", l=%d" % p.l + label = _mklabel("v_{nl}", der, "q") + ", l=%d" % p.l - stop = len(p.ecuts) + stop = len(p.ecuts) + 1 if ecut_ffnl is not None: stop = find_gt(p.ecuts, ecut_ffnl) #values = p.ekb * p.values - vlspl[itypat, 0, :] - values = vlspl[itypat, 0, :] + p.sign_sqrtekb * p.values + #values = vlspl[itypat, der] + p.sign_sqrtekb * p.values + #values = p.sign_sqrtekb * p.values + values = p.data[der] #print(values.min(), values.max()) - ax.plot(p.ecuts[:stop], values[:stop], color=color_l[p.l], linewidth=linewidth, + ax.plot(p.ecuts[:stop], values[:stop], + color=color_l[p.l], linewidth=linewidth, linestyle=linestyles_n[p.n], label=label) ax.grid(True) - ax.set_xlabel("Ecut [Hartree]") - ax.set_title("ffnl(q)") - if kwargs.get("with_legend", False): ax.legend(loc="best") + ax.set_xlabel("Ecut (Hartree)") + #ax.set_title("ffnl(q)") + if kwargs.get("with_legend", False): + ax.legend(loc="best") + + #ax.axvline(x=self.ecut, linewidth=linewidth, color='k', linestyle="solid") + #ax.axhline(y=0, linewidth=linewidth, color='k', linestyle="solid") - ax.axhline(y=0, linewidth=linewidth, color='k', linestyle="solid") fig.tight_layout() return fig + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + yield self.plot(show=False) + + def write_notebook(self, nbpath=None): + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + nb.cells.extend([ + #nbv.new_markdown_cell("# This is a markdown cell"), + nbv.new_code_cell("psps = abilab.abiopen(%s)" % self.filepath), + ]) + + return self._write_nb_nbpath(nb, nbpath) + + +class PspsRobot(Robot): + """ + This robot analyzes the results contained in multiple PSPS.nc files. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: PspsRobot + """ + + EXT = "PSPS" + + @classmethod + def from_abinit_run(cls, pseudos, ecut) -> PspsRobot: + """ + Initialize the object from a list of filepaths or Pseudo objects + """ + filepaths = [] + for p in pseudos: + with PspsFile.from_abinit_run(p, ecut) as psps: + filepaths.append(psps.filepath) + + return cls.from_files(filepaths) + + @classmethod + def from_vloc_rcut_list(cls, pseudo, vloc_rcut_list, ecut) -> PspsRobot: + """ + Initialize the object by computing the form factors for the same pseudo + with different values of `vloc_rcut_list` in Bohr. + """ + filepaths = [] + for vloc_rcut in vloc_rcut_list: + with PspsFile.from_abinit_run(pseudo, ecut, vloc_rcut=vloc_rcut) as psps: + filepaths.append(psps.filepath) + + return cls.from_files(filepaths) + + def _mkcolor(self, count, cmap="jet"): + npseudos = len(self) + if npseudos <= 2: + return {0: "red", 1: "blue", 2: "green"}[count] + else: + import matplotlib.pyplot as plt + cmap = plt.get_cmap(cmap) + return cmap(float(count) / (npseudos - 1)) + @add_fig_kwargs - def compare(self, others, **kwargs): - """Produce matplotlib plot comparing self with another list of pseudos ``others``.""" - if not isinstance(others, (list, tuple)): - others = [others] + def plot_tcore_rspace(self, ders=(0, 1, 2, 3), scale=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the model core charge and its derivatives in r-space. - ax_list, fig, plt = get_axarray_fig_plt(None, nrows=2, ncols=2, - sharex=False, sharey=False, squeeze=True) - ax_list = ax_list.ravel() - #fig.suptitle("%s vs %s" % (self.basename, ", ".join(o.basename for o in others))) - - def mkcolor(count): - npseudos = 1 + len(others) - if npseudos <= 2: - return {0: "red", 1: "blue"}[count] - else: - cmap = plt.get_cmap("jet") - return cmap(float(count) / (1 + len(others))) - - ic = 0; ax = ax_list[ic] - self.plot_tcore_rspace(ax=ax, color=mkcolor(0), show=False, with_legend=False) - for count, other in enumerate(others): - other.plot_tcore_rspace(ax=ax, color=mkcolor(count+1), show=False, with_legend=False) - - ic += 1; ax = ax_list[ic] - self.plot_tcore_qspace(ax=ax, with_qn=0, color=mkcolor(0), show=False) - for count, other in enumerate(others): - other.plot_tcore_qspace(ax=ax, with_qn=0, color=mkcolor(count+1), show=False) - - ic += 1; ax = ax_list[ic] - self.plot_vlocq(ax=ax, with_qn=0, color=mkcolor(0), show=False) - for count, other in enumerate(others): - other.plot_vlocq(ax=ax, with_qn=0, color=mkcolor(count+1), show=False) - - ic += 1; ax = ax_list[ic] - self.plot_ffspl(ax=ax, with_qn=0, color=mkcolor(0), show=False) - for count, other in enumerate(others): - other.plot_ffspl(ax=ax, with_qn=0, color=mkcolor(count+1), show=False) + Args: + fontsize: fontsize for subtitles. + + Returns: |matplotlib-Figure| + """ + nrows, ncols = len(self), len(ders) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + + fig.suptitle(f"Model core in r-space") + for i, (label, psps) in enumerate(self.items()): + kws = dict(color=self._mkcolor(i), show=False) + for j, der in enumerate(ders): + ax = ax_mat[i,j] + psps.plot_tcore_rspace(ax=ax, ders=der, with_legend=False, scale=scale, **kws) + ax.set_title(f"$rho_M^{der}(r)$", fontsize=fontsize) if i == 0 else ax.set_title("") + if i != len(self) - 1: set_visible(ax, False, "xlabel") + + return fig + + @add_fig_kwargs + def plot_tcore_qspace(self, ders=(0, 1), with_qn=0, scale=None, + fontsize=8, **kwargs) -> Figure: + """ + Plot the model core charge and its derivatives in q-space. + + Args: + fontsize: fontsize for subtitles. + + Returns: |matplotlib-Figure| + """ + nrows, ncols = len(self), len(ders) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + + fig.suptitle(f"Model core in q-space") + for i, (label, psps) in enumerate(self.items()): + kws = dict(color=self._mkcolor(i), show=False) + for j, der in enumerate(ders): + #_ider = {0: 0, 1: 2}[der] + ax = ax_mat[i,j] + psps.plot_tcore_qspace(ax=ax, ders=der, with_qn=with_qn, scale=scale, **kws) + ax.set_title(f"$rho_M^{der}(q)$", fontsize=fontsize) if i == 0 else ax.set_title("") + if i != len(self) - 1: set_visible(ax, False, "xlabel") + + return fig + + @add_fig_kwargs + def plot_q2vq(self, ders=(0, 1), with_qn=0, with_fact=True, scale=None, + fontsize=8, **kwargs) -> Figure: + """ + Plot the local part of the pseudopotential in q space. + """ + nrows, ncols = len(self), len(ders) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + + fig.suptitle(_Q2VQ_LATEX) + for i, (label, psps) in enumerate(self.items()): + kws = dict(color=self._mkcolor(i), show=False) + for j, der in enumerate(ders): + #_ider = {0: 0, 1: 2}[der] + ax = ax_mat[i,j] + psps.plot_q2vq(ax=ax, ders=der, with_qn=with_qn, scale=scale, **kws) + _ = "$f(q)$" if der == 0 else "$f''(q)$" + ax.set_title(_, fontsize=fontsize) if i == 0 else ax.set_title("") + if i != len(self) - 1: set_visible(ax, False, "xlabel") return fig + @add_fig_kwargs + def plot_ffspl(self, ecut_ffnl=None, ders=(0, 1), with_qn=0, + scale=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the nonlocal part of the pseudopotential in q-space. + """ + l_select = [0, 1, 2] + nrows, ncols = len(self), len(l_select) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + + fig.suptitle(f"ffnl in q-space") + for i, (label, psps) in enumerate(self.items()): + kws = dict(color=self._mkcolor(i), show=False) + for j, l in enumerate(l_select): + ax = ax_mat[i,j] + psps.plot_ffspl(ax=ax, ders=ders, l_select=l, with_qn=with_qn, scale=scale, **kws) + #ax.set_title(f"$ff_{nl}{der}(q)$", fontsize=fontsize) if i == 0 else ax.set_title("") + if i != len(self) - 1: set_visible(ax, False, "xlabel") + + #fig.suptitle(r"$V_{loc} in q-space$") + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + verbose = kwargs.get("verbose", 0) + kws = dict(show=False, tight_layout=True) + yield self.plot_ffspl(**kws) + yield self.plot_q2vq(**kws) + yield self.plot_tcore_rspace(**kws) + yield self.plot_tcore_qspace(**kws) + + #def yield_plotly_figs(self, **kwargs): # pragma: no cover + # """ + # This function *generates* a predefined list of plotly figures with minimal input from the user. + # """ + # verbose = kwargs.get("verbose", 0) + # for fig in self.yield_ebands_plotly_figs(**kwargs): yield fig + # if verbose: + # for fig in self.yield_structure_plotly_figs(**kwargs): yield fig + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + args = [(l, f.filepath) for l, f in self.items()] + nb.cells.extend([ + #nbv.new_markdown_cell("# This is a markdown cell"), + nbv.new_code_cell("robot = abilab.PspsRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), + ]) + + return self._write_nb_nbpath(nb, nbpath) + class PspsReader(ETSF_Reader): """ This object reads the results stored in the PSPS file produced by ABINIT. - It provides helper function to access the most important quantities. + It provides helper functions to access the most important quantities. """ - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) - # Get important quantities. + # Get important dimensions. self.usepaw, self.useylm = self.read_value("usepaw"), self.read_value("useylm") assert self.usepaw == 0 and self.useylm == 0 self.ntypat = self.read_dimvalue("ntypat") @@ -367,17 +619,9 @@ def __init__(self, filepath): self.znucl_typat = self.read_value("znucltypat") self.zion_typat = self.read_value("ziontypat") - # TODO - #self.psps_files = [] - #for strng in r.read_value("filpsp"): - # s = "".join(strng) - # print(s) - # self.psps_files.append(s) - #print(self.psps_files) - - def read_coresd(self, rmax=None): + def read_coresd(self, rmax=None) -> tuple[np.ndarray, np.ndarray]: """ - Read the core charges and derivatives for the different types of atoms. + Read the core charges and real-space derivatives for the different types of atoms. Args: rmax: Maximum radius in Bohr. If None, data on the full grid is returned. @@ -388,7 +632,7 @@ def read_coresd(self, rmax=None): (np.zeros. np.zeros) if core charge is not present - xccc1d[ntypat6,n1xccc*(1-usepaw)] + xccc1d[ntypat, n1xccc*(1-usepaw)] Norm-conserving psps only The component xccc1d(n1xccc,1,ntypat) is the pseudo-core charge @@ -410,67 +654,60 @@ def read_coresd(self, rmax=None): rvals, step = np.linspace(0, rc, num=npts, retstep=True) ir_stop = -1 if rmax is not None: - # Truncate mesh + # Truncate the mesh ir_stop = min(int(rmax / step), npts) + 1 #print(rmax, step, ir_stop, npts) rmeshes.append(rvals[:ir_stop]) - coresd.append(all_coresd[itypat, :, :ir_stop]) + coresd.append(all_coresd[itypat,:,:ir_stop]) return rmeshes, coresd - def read_tcorespl(self): + def read_tcorespl(self) -> tuple[np.ndarray, np.ndarray]: """ Returns: - qmesh: Linear q-mesh in G-space - tcorespl: - - tcorespl[ntypat, 2, mqgrid_vl] - Gives the pseudo core density in reciprocal space on a regular grid. - Only if has_tcore + qmesh: Linear q-mesh in q-space. + tcorespl: array of shape [ntypat, 2, mqgrid_vl] with the pseudo core density in reciprocal space on a regular grid. + Only if pseudo has_tcore """ return self.read_value("qgrid_vl"), self.read_value("nc_tcorespl") - def read_vlspl(self): + def read_vlspl(self) -> tuple[np.ndarray, np.ndarray]: """ Returns: qmesh: Linear q-mesh in G-space - vlspl: - - vlspl[2, ntypat, mqgrid_vl] - Gives, on the radial grid, the local part of each type of psp. + vlspl: numpy array of shape [ntypat, two, mqgrid_vl] with the local part of each type of psp in q-space """ return self.read_value("qgrid_vl"), self.read_value("vlspl") - def read_projectors(self): + def read_projectors(self) -> tuple[VnlProjector, ...]: """ - ffspl(ntypat, lnmax, 2, mqgrid_ff] - Gives, on the radial grid, the different non-local projectors, - in both the norm-conserving case, and the PAW case + ffspl[ntypat, lnmax, 2, mqgrid_ff] + Gives, on the radial grid, the {n,l} non-local projectors both for NC and PAW. """ - # ekb(dimekb,ntypat*(1-usepaw)) + # ekb(dimekb, ntypat*(1-usepaw)) + # ffspl[ntypat, lnmax, 2, mqgrid_ff] ekb = self.read_value("ekb") qgrid_ff = self.read_value("qgrid_ff") ffspl = self.read_value("ffspl") - #print("qgrid", qgrid_ff.min(), qgrid_ff.max()) projs = self.ntypat * [None] for itypat in range(self.ntypat): projs_type = [] ln_list = self.get_lnlist_for_type(itypat) for i, ln in enumerate(ln_list): - #print(ffspl[itypat, i, :, :]) - p = VnlProjector(itypat, ln, ekb[itypat, i], qgrid_ff, ffspl[itypat, i, :, :]) + p = VnlProjector(itypat, ln, ekb[itypat, i], qgrid_ff, ffspl[itypat, i]) projs_type.append(p) - projs[itypat] = projs_type return projs - def get_lnlist_for_type(self, itypat): - """Return a list of (l, n) indices for this atom type.""" - # indlmn(6,lmn_size,ntypat)=array giving l,m,n,lm,ln,s for i=lmn - indlmn_type = self.indlmn[itypat, :, :] + def get_lnlist_for_type(self, itypat: int) -> list: + """ + Return a list of (l, n) indices for this atom type. + """ + # indlmn(6,lmn_size,ntypat) = array giving l,m,n,lm,ln,s for i=lmn + indlmn_type = self.indlmn[itypat,:,:] iln0 = 0; ln_list = [] for ilmn in range(self.lmnmax): @@ -484,12 +721,15 @@ def get_lnlist_for_type(self, itypat): return ln_list -class VnlProjector(object): - """Data and parameters associated to a non-local projector.""" +class VnlProjector: + """ + Data and parameters associated to a non-local projector. + """ + def __init__(self, itypat, ln, ekb, qmesh, data): """ Args: - itypat: + itypat: Type atom index (C index >= 0) ln: Tuple with l and n. ekb: KB energy in Hartree. qmesh: Mesh of q-points. @@ -499,24 +739,22 @@ def __init__(self, itypat, ln, ekb, qmesh, data): self.l, self.n, self.ekb = ln[0], ln[1], ekb self.qmesh, self.data = qmesh, data - assert len(self.qmesh) == len(self.values) - assert len(self.qmesh) == len(self.der2) + assert len(self.qmesh) == len(self.data[0]) - @property - def values(self): - """Values of the projector in q-space.""" - return self.data[0, :] + def __str__(self) -> str: + return self.to_string() - @property - def der2(self): - """Second order derivative.""" - return self.data[1, :] + def to_string(self, verbose: int = 0) -> str: + """String representation.""" + lines = []; app = lines.append + app(f"Projector: l: {self.l}, n: {self.n}, ekb: {self.ekb} (Ha)") + return "\n".join(lines) @property - def ecuts(self): - """List of cutoff energies corresponding to self.qmesh.""" + def ecuts(self) -> np.ndarray: + """List of cutoff energies in Ha corresponding to self.qmesh.""" return 2 * (np.pi * self.qmesh)**2 @property - def sign_sqrtekb(self): + def sign_sqrtekb(self) -> np.ndarray: return np.sign(self.ekb) * np.sqrt(np.abs(self.ekb)) diff --git a/abipy/electrons/scissors.py b/abipy/electrons/scissors.py index d7ef28ec4..2189497cb 100644 --- a/abipy/electrons/scissors.py +++ b/abipy/electrons/scissors.py @@ -88,7 +88,7 @@ def __init__(self, func_list, domains, residues, bounds=None): raise NotImplementedError("Only constant boundaries are implemented") # This counter stores the number of points that are out of bounds. - self.out_bounds = np.zeros(3, np.int) + self.out_bounds = np.zeros(3, dtype=int) def apply(self, eig): """Correct the eigenvalue eig (eV units).""" diff --git a/abipy/electrons/scr.py b/abipy/electrons/scr.py index 9aa73b8cf..1888fdda7 100644 --- a/abipy/electrons/scr.py +++ b/abipy/electrons/scr.py @@ -1,5 +1,7 @@ # coding: utf-8 """Objects to analyze the screening files produced by the GW code (optdriver 3).""" +from __future__ import annotations + import numpy as np import pymatgen.core.units as pmgu @@ -11,21 +13,20 @@ from monty.bisect import index as bs_index from abipy.core.func1d import Function1D from abipy.core.kpoints import KpointList +from abipy.core.structure import Structure from abipy.core.gsphere import GSphere from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, NotebookWriter from abipy.electrons.ebands import ElectronBands from abipy.iotools import ETSF_Reader from abipy.tools.plotting import ArrayPlotter, data_from_cplx_mode, add_fig_kwargs, get_ax_fig_plt, set_axlims +from abipy.tools.typing import Figure from abipy.tools import duck -import logging -logger = logging.getLogger(__name__) - _COLOR_CMODE = dict(re="red", im="blue", abs="black", angle="green") -def _latex_symbol_cplxmode(symbol, cplx_mode): +def _latex_symbol_cplxmode(symbol: str, cplx_mode: str) -> str: """Latex label to be used to plot ``symbol`` in ``cplx_mode``.""" return {"re": r"$\Re(" + symbol + ")$", "im": r"$\Im(" + symbol + ")$", @@ -50,22 +51,22 @@ class ScrFile(AbinitNcFile, Has_Header, Has_Structure, NotebookWriter): .. inheritance-diagram:: ScrFile """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> ScrFile: """Initialize the object from a Netcdf file""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = ScrReader(filepath) - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append @@ -91,7 +92,7 @@ def to_string(self, verbose=0): return "\n".join(lines) @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.reader.structure @@ -101,7 +102,7 @@ def kpoints(self): return self.reader.kpoints @lazy_property - def ebands(self): + def ebands(self) -> ElectronBands: """ |ElectronBands| object with the single-particle energies used to compute the screening. """ @@ -112,48 +113,48 @@ def ebands(self): return ebands @property - def ng(self): + def ng(self) -> int: """Number of G-vectors in screening matrices.""" return self.reader.ng @property - def wpoints(self): + def wpoints(self) -> np.ndarray: """ Array of complex numbers with the frequencies of the dielectric function in Hartree. """ return self.reader.wpoints @property - def nw(self): + def nw(self) -> int: """Total number of frequencies.""" return self.reader.nw @property - def nrew(self): + def nrew(self) -> int: """Number of real frequencies.""" return self.reader.nrew @property - def nimw(self): + def nimw(self) -> int: """Number of imaginary frequencies.""" return self.reader.nimw @property - def netcdf_name(self): + def netcdf_name(self) -> str: """The netcdf_ name associated to the data on disk.""" return self.reader.netcdf_name @lazy_property - def params(self): + def params(self) -> dict: """ - |AttrDict| with the most important parameters used to compute the screening + dict with the most important parameters used to compute the screening keys can be accessed with the dot notation i.e. ``params.zcut``. """ #od = self.get_ebands_params() return self.reader.read_params() @add_fig_kwargs - def plot_emacro(self, cplx_mode="re-im", ax=None, xlims=None, fontsize=12, **kwargs): + def plot_emacro(self, cplx_mode="re-im", ax=None, xlims=None, fontsize=12, **kwargs) -> Figure: r""" Plot the macroscopic dielectric function with local-field effects. @@ -190,7 +191,7 @@ def plot_emacro(self, cplx_mode="re-im", ax=None, xlims=None, fontsize=12, **kwa return fig @add_fig_kwargs - def plot_eelf(self, ax=None, xlims=None, fontsize=12, **kwargs): + def plot_eelf(self, ax=None, xlims=None, fontsize=12, **kwargs) -> Figure: r""" Plot electron energy loss function. @@ -228,7 +229,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot_emacro(show=False) yield self.plot_eelf(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to nbpath. If ``nbpath`` is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -253,6 +254,10 @@ def write_notebook(self, nbpath=None): return self._write_nb_nbpath(nb, nbpath) +class SusFile(ScrFile): + pass + + class ScrReader(ETSF_Reader): """ This object reads the results stored in the SCR (Screening) file produced by ABINIT. @@ -265,7 +270,7 @@ class ScrReader(ETSF_Reader): .. rubric:: Inheritance Diagram .. inheritance-diagram:: ScrReader """ - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) # Read and store important quantities. @@ -302,7 +307,7 @@ def __init__(self, filepath): if nfound > 1: raise RuntimeError("Find multiple netcdf arrays (%s) in netcdf file!" % str(netcdf_names)) - def read_params(self): + def read_params(self) -> AttrDict: """ Read the most important parameters used to compute the screening i.e. the parameters that may be subject to convergence studies. @@ -322,7 +327,7 @@ def convert(arr): return AttrDict({k: convert(self.read_value(k)) for k in keys}) - def read_emacro_lf(self, kpoint=(0, 0, 0)): + def read_emacro_lf(self, kpoint=(0, 0, 0)) -> Function1D: """ Read the macroscopic dielectric function *with* local field effects 1 / em1_{0,0)(kpoint, omega). @@ -336,7 +341,7 @@ def read_emacro_lf(self, kpoint=(0, 0, 0)): return Function1D(np.real(self.wpoints[:self.nrew]).copy(), emacro) - def read_emacro_nlf(self, kpoint=(0, 0, 0)): + def read_emacro_nlf(self, kpoint=(0, 0, 0)) -> Function1D: """ Read the macroscopic dielectric function *without* local field effects e_{0,0)(kpoint, omega). @@ -355,7 +360,7 @@ def read_emacro_nlf(self, kpoint=(0, 0, 0)): return Function1D(np.real(self.wpoints[:self.nrew]).copy(), e[:, 0, 0]) - def read_eelf(self, kpoint=(0, 0, 0)): + def read_eelf(self, kpoint=(0, 0, 0)) -> Function1D: """ Read electron energy loss function @@ -378,7 +383,7 @@ def read_wggmat(self, kpoint, spin1=0, spin2=0, cls=None): cls = _AwggMatrix.class_from_netcdf_name(self.netcdf_name) if cls is None else cls var = self.rootgrp.variables["reduced_coordinates_plane_waves_dielectric_function"] - # Use ik=0 because the basis set is not k-dependent. + # Use ik = 0 because the basis set is not k-dependent. ik0 = 0 gvecs = var[ik0, :] #print("gvecs", gvecs) @@ -417,11 +422,11 @@ def read_wslice(self, kpoint, ig1=0, ig2=0, spin1=0, spin2=0): return values[:, 0] + 1j * values[:, 1] -class _AwggMatrix(object): +class _AwggMatrix: r""" Base class for two-point functions expressed in reciprocal space i.e. a complex matrix :math:`A_{G,G'}(\omega)` where G, G' are reciprocal - lattice vectors defines inside the G-sphere. + lattice vectors defined inside the G-sphere. This class is not supposed to be instantiated directly. @@ -433,6 +438,7 @@ class _AwggMatrix(object): nwim: """ netcdf_name = "_AwggMatrix" + latex_name = "Unknown" def __init__(self, wpoints, gsphere, wggmat, inord="C"): @@ -444,7 +450,7 @@ def __init__(self, wpoints, gsphere, wggmat, inord="C"): inord: storage order of ``wggmat``. If inord == "F", ``wggmat`` is in in Fortran column-major order. Default: "C" i.e. C row-major order. """ - self.wpoints = np.array(wpoints, dtype=np.complex) + self.wpoints = np.array(wpoints, dtype=complex) self.gsphere = gsphere self.wggmat = np.reshape(wggmat, (self.nw, self.ng, self.ng)) @@ -471,7 +477,7 @@ def __init__(self, wpoints, gsphere, wggmat, inord="C"): "followed by imaginary points but got: %s" % str(self.wpoints)) @classmethod - def class_from_netcdf_name(cls, netcdf_name): + def class_from_netcdf_name(cls, netcdf_name: str): """Return the subclass associated to the given netcdf name.""" nfound = 0 for subclass in all_subclasses(cls): @@ -486,10 +492,10 @@ def class_from_netcdf_name(cls, netcdf_name): return out_cls - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = [] app = lines.append @@ -511,12 +517,12 @@ def kpoint(self): return self.gsphere.kpoint @property - def ng(self): + def ng(self) -> int: """Number of G-vectors.""" return len(self.gsphere) @property - def nw(self): + def nw(self) -> int: """Total number of frequencies.""" return len(self.wpoints) @@ -574,7 +580,7 @@ def latex_label(self, cplx_mode): return _latex_symbol_cplxmode(self.latex_name, cplx_mode) @add_fig_kwargs - def plot_freq(self, gvec1, gvec2=None, waxis="real", cplx_mode="re-im", ax=None, fontsize=12, **kwargs): + def plot_freq(self, gvec1, gvec2=None, waxis="real", cplx_mode="re-im", ax=None, fontsize=8, **kwargs) -> Figure: r""" Plot the frequency dependence of :math:`W_{G1, G2}(\omega)` @@ -627,7 +633,7 @@ def plot_freq(self, gvec1, gvec2=None, waxis="real", cplx_mode="re-im", ax=None, return fig @add_fig_kwargs - def plot_gg(self, cplx_mode="abs", wpos=None, **kwargs): + def plot_gg(self, cplx_mode="abs", wpos=None, **kwargs) -> Figure: r""" Use matplotlib imshow to plot :math:`W_{GG'}` matrix @@ -817,7 +823,7 @@ class InverseDielectricFunction(_AwggMatrix): # def eval_em1(self, omegas, zcut): # omegas = np.array(omegas) # -# wggmat = np.empty((len(omegas), self.ng, self.ng), dtype=np.complex) +# wggmat = np.empty((len(omegas), self.ng, self.ng), dtype=complex) # for i, w in enumerate(omegas): # # Add shift but only along the real axis. # delta = 0.0 if w.imag != 0 else 1j * zcut diff --git a/abipy/electrons/tests/test_charges.py b/abipy/electrons/tests/test_charges.py index 8477c5d49..24d0deeec 100644 --- a/abipy/electrons/tests/test_charges.py +++ b/abipy/electrons/tests/test_charges.py @@ -24,7 +24,7 @@ def test_bader_charges(self): si_structure = abilab.Structure.from_file(abidata.cif_file("si.cif")) bc = BaderCharges([-4,-4], si_structure, [-4,-4]) bc.structure - self.assertArrayAlmostEqual(bc.net_charges, [0,0]) + self.assert_almost_equal(bc.net_charges, [0,0]) def test_bader_generation(self): if not self.which("bader"): diff --git a/abipy/electrons/tests/test_denpot.py b/abipy/electrons/tests/test_denpot.py index fad03390c..ccc3eab6c 100644 --- a/abipy/electrons/tests/test_denpot.py +++ b/abipy/electrons/tests/test_denpot.py @@ -19,6 +19,8 @@ def test_silicon_density_ncfile(self): assert str(denc.xc) == "LDA_XC_TETER93" assert denc.params["nsppol"] == 1 + assert np.all(denc.reader.read_ngfft3() == np.array([18, 18, 18])) + # Kpoint sampling # kptopt1 1 ngkpt1 8 8 8 nshiftk1 1 shiftk1 0 0 0 assert denc.ebands.kpoints.is_mpmesh diff --git a/abipy/electrons/tests/test_ebands.py b/abipy/electrons/tests/test_ebands.py index c7b3c705b..5334f35ec 100644 --- a/abipy/electrons/tests/test_ebands.py +++ b/abipy/electrons/tests/test_ebands.py @@ -19,7 +19,7 @@ def test_smearing_info(self): sm = Smearing(scheme=None, occopt=3, tsmear_ev=0.0) repr(sm); str(sm) - self.assertMSONable(sm, test_if_subclass=False) + self.assert_msonable(sm, test_is_subclass=False) assert sm.has_metallic_scheme assert Smearing.as_smearing(sm) is sm assert Smearing.as_smearing(sm).occopt == 3 @@ -64,7 +64,7 @@ def test_reader(self): assert not smearing.has_metallic_scheme assert smearing.scheme == "none" - self.assertMSONable(smearing, test_if_subclass=False) + self.assert_msonable(smearing, test_is_subclass=False) assert len(smearing.to_json()) @@ -93,10 +93,12 @@ def test_nickel_ebands_spin(self): same = ni_ebands_kmesh.deepcopy() assert same.structure == ni_ebands_kmesh.structure + assert same.smearing.occopt == ni_ebands_kmesh.smearing.occopt - ni_edos = ni_ebands_kmesh.get_edos() + ni_edos = ni_ebands_kmesh.get_edos(step=0.1, width=0.2) repr(ni_edos); str(ni_edos) assert ni_edos.to_string(verbose=2) + self.assert_almost_equal(ni_ebands_kmesh.get_collinear_mag(), 0.6501439036904575) # Get ElectronDosPlotter with nsppol == 2 and test matplotlib methods. edos_plotter = ni_ebands_kmesh.compare_gauss_edos(widths=[0.2, 0.4], step=0.2) @@ -125,12 +127,26 @@ def test_nickel_ebands_spin(self): # Serialization self.serialize_with_pickle(ni_ebands_kpath, test_eq=False) - self.assertMSONable(ni_ebands_kpath, test_if_subclass=False) + self.assert_msonable(ni_ebands_kpath, test_is_subclass=False) assert len(ni_ebands_kpath.to_json()) + self.assert_msonable(ni_ebands_kmesh, test_is_subclass=False) + #d = ni_ebands_kmesh.as_dict() + from monty.json import MontyDecoder #, MSONable + import json + assert ni_ebands_kmesh.smearing is not None + new = json.loads(ni_ebands_kmesh.to_json(), cls=MontyDecoder) + assert new.smearing is not None + assert new.smearing.has_metallic_scheme + assert new.smearing.occopt == ni_ebands_kmesh.smearing.occopt + str(new) + od = ni_ebands_kmesh.get_dict4pandas(with_spglib=False) assert od["nsppol"] == 2 and od["nspinor"] == 1 and od["nspden"] == 2 + with self.assertRaises(ValueError): + ni_ebands_kpath.get_dataframe(brange=[1, 2], ene_range=[0, 10]) + df = ni_ebands_kpath.get_dataframe() ni_ebands_kpath.to_xmgrace(self.get_tmpname(text=True)) ni_ebands_kpath.to_xmgrace(sys.stdout) @@ -192,6 +208,10 @@ def test_nickel_ebands_spin(self): assert ni_ebands_kmesh.boxplot(brange=[5, 10], show=False, title="Boxplot for up and down spin and 10 > band >= 5") + if self.has_plotly(): + assert ni_ebands_kmesh.boxplotly(brange=[5, 10], show=False, + title="Boxplot for up and down spin and 10 > band >= 5") + # Test Abipy --> Pymatgen converter. pmg_bands_kpath = ni_ebands_kpath.to_pymatgen() assert hasattr(pmg_bands_kpath, "get_branch") # Should be BandStructureSymmLine @@ -245,7 +265,7 @@ def test_silicon_ebands(self): # Serialization self.serialize_with_pickle(si_ebands_kmesh, test_eq=False) - self.assertMSONable(si_ebands_kmesh, test_if_subclass=False) + self.assert_msonable(si_ebands_kmesh, test_is_subclass=False) assert len(si_ebands_kmesh.to_json()) dless_states = si_ebands_kmesh.dispersionless_states() @@ -258,19 +278,24 @@ def test_silicon_ebands(self): self.assert_almost_equal(estats.max, 11.855874158768694) repr(estats); str(estats) + assert si_ebands_kmesh.get_collinear_mag() == 0 + with self.assertRaises(NotImplementedError): si_ebands_kmesh.get_edos(method="tetrahedron") - si_edos = si_ebands_kmesh.get_edos() + edos_kwargs = dict(step=0.1, width=0.2) + si_edos = si_ebands_kmesh.get_edos(**edos_kwargs) repr(si_edos); str(si_edos) assert ElectronDos.as_edos(si_edos, {}) is si_edos assert si_edos == si_edos and not (si_edos != si_edos) - edos_samevals = ElectronDos.as_edos(si_ebands_kmesh, {}) - assert ElectronDos.as_edos(si_ebands_kmesh, {}) == si_edos - assert ElectronDos.as_edos(abidata.ref_file("si_scf_GSR.nc"), {}) == si_edos + edos_samevals = ElectronDos.as_edos(si_ebands_kmesh, edos_kwargs) + assert ElectronDos.as_edos(si_ebands_kmesh, edos_kwargs=edos_kwargs) == si_edos + assert ElectronDos.as_edos(abidata.ref_file("si_scf_GSR.nc"), edos_kwargs=edos_kwargs) == si_edos with self.assertRaises(TypeError): ElectronDos.as_edos({}, {}) + assert si_ebands_kmesh.to_pymatgen() + mu = si_edos.find_mu(8) imu = si_edos.tot_idos.find_mesh_index(mu) self.assert_almost_equal(si_edos.tot_idos[imu][1], 8, decimal=2) @@ -319,6 +344,9 @@ def test_silicon_ebands(self): if self.has_ipywidgets(): assert si_ebands_kmesh.ipw_edos_widget() + #if self.has_panel(): + # assert si_ebands_kmesh.get_panel() + # Test Abipy --> Pymatgen converter. pmg_bands_kmesh = si_ebands_kmesh.to_pymatgen() assert pmg_bands_kmesh.efermi == si_ebands_kmesh.fermie @@ -448,6 +476,10 @@ def test_ebands_skw_interpolation(self): # Export it in BXSF format. r.ebands_kmesh.to_bxsf(self.get_tmpname(text=True)) + # This just to call interpolate with line_density 0 + r = si_ebands_kmesh.interpolate(lpratio=5, vertices_names=vertices_names, line_density=0, + verbose=1) + def test_derivatives(self): """Testing computation of effective masses.""" ebands = ElectronBands.from_file(abidata.ref_file("si_nscf_GSR.nc")) @@ -461,25 +493,26 @@ def test_derivatives(self): new_eigens[spin, :, band] = branch ebands._eigens = new_eigens - effm_lines = ebands.effective_masses(spin=0, band=0, acc=2) - + #effm_lines = ebands.effective_masses(spin=0, band=0, acc=2) # Flatten structure (.flatten does not work in this case) - values = [] - for arr in effm_lines: - values.extend(arr) - - self.assert_almost_equal(np.array(values), 1.0) + #values = [] + #for arr in effm_lines: + # values.extend(arr) + #self.assert_almost_equal(np.array(values), 1.0) - em = ebands.get_effmass_line(spin=0, kpoint=(0, 0, 0), band=0) - repr(em); str(em) + ebands.get_effmass_line(spin=0, kpoint=(0, 0, 0), band=0) + #repr(em); str(em) #self.assert_almost_equal(np.array(values), 1.0) + emana = ebands.get_effmass_analyzer() + repr(emana); str(emana) + def test_fermi_surface(self): """Testing Fermi surface tools.""" with abilab.abiopen(abidata.ref_file("mgb2_kmesh181818_FATBANDS.nc")) as fbnc_kmesh: ebands = fbnc_kmesh.ebands str(ebands) - assert ebands.supports_fermi_surface + assert not ebands.isnot_ibz_sampling() ebands.to_bxsf(self.get_tmpname(text=True)) # Test Ebands3d @@ -487,6 +520,20 @@ def test_fermi_surface(self): repr(eb3d); str(eb3d) assert eb3d.to_string(verbose=2) + if self.has_ifermi(): + # Test interface with ifermi package. + kwargs = dict(interpolation_factor=1, with_velocities=True) + first = ebands.get_ifermi_dense_bs(**kwargs) + second = ebands.get_ifermi_dense_bs(**kwargs) + # Test memoized_method + assert first is second + assert first.dense_bs is second.dense_bs + assert first.velocities is second.velocities + + r = ebands.get_ifermi_fs(**kwargs) + assert hasattr(r, "fs") and hasattr(r, "fs_plotter") + #r = ebands.get_ifermi_fs(interpolation_factor=1, cache=r) + if self.has_matplotlib(): assert eb3d.plot_contour(band=4, spin=0, plane="xy", elevation=0, show=False) if self.has_skimage(): @@ -497,7 +544,7 @@ def test_fermi_surface(self): assert eb3d.mvplot_isosurfaces(verbose=1, show=False) #assert eb3d.mvplot_cutplanes(band=4, spin=0, show=False) - def test_frame_from_ebands(self): + def test_dataframe_from_ebands(self): """Testing dataframe_from_ebands.""" gsr_kmesh = abidata.ref_file("si_scf_GSR.nc") si_ebands_kmesh = ElectronBands.as_ebands(gsr_kmesh) @@ -514,27 +561,51 @@ class ElectronBandsFromRestApi(AbipyTest): def test_from_mpid(self): """Testing interpolation of SnO2 band energies from MP database.""" - #mpid = "mp-149" - #mpid = "mp-856" - mpid = "mp-3079" - ebands = abilab.ElectronBands.from_mpid(mpid) - # Use prune_step to remove k-points (too many k-points on a k-path can cause numerical instabilities) - ebands = ebands.new_with_irred_kpoints(prune_step=2) - # Interpolate on k-path + kmesh. - # Results are very sensitive to the value of lpratio. The default is not enough in this case!! - r = ebands.interpolate(lpratio=50, kmesh=[10, 10, 10]) - - new_fermie = r.ebands_kpath.set_fermie_to_vbm() - assert new_fermie == r.ebands_kpath.fermie - assert not r.ebands_kpath.supports_fermi_surface - - edos = r.ebands_kmesh.get_edos() - new_fermie = r.ebands_kpath.set_fermie_from_edos(edos) - assert new_fermie == edos.fermie - if self.has_matplotlib(): - # Plot bands + dos using interpolated energies. - assert r.ebands_kpath.plot_with_edos(edos, show=False) + if self.test_mprester(): + with self.assertRaises(ValueError): + abilab.ElectronBands.from_mpid("foobar") + + #mpid = "mp-149" + #mpid = "mp-856" + mpid = "mp-3079" + ebands = abilab.ElectronBands.from_mpid(mpid) + # Use prune_step to remove k-points (too many k-points on a k-path can cause numerical instabilities) + ebands = ebands.new_with_irred_kpoints(prune_step=2) + # Interpolate on k-path + kmesh. + # Results are very sensitive to the value of lpratio. The default is not enough in this case!! + r = ebands.interpolate(lpratio=50, kmesh=[10, 10, 10]) + + new_fermie = r.ebands_kpath.set_fermie_to_vbm() + assert new_fermie == r.ebands_kpath.fermie + assert r.ebands_kpath.isnot_ibz_sampling() + + edos = r.ebands_kmesh.get_edos(step=0.1, width=0.2) + new_fermie = r.ebands_kpath.set_fermie_from_edos(edos) + assert new_fermie == edos.fermie + + if self.has_matplotlib(): + # Plot bands + dos using interpolated energies. + assert r.ebands_kpath.plot_with_edos(edos, show=False) + + + def test_ebands_from_mpid_magnetic_semiconductor_nelect_automatically_computed(self): + """https://github.com/abinit/abipy/issues/232""" + + if self.test_mprester(): + ebands = ElectronBands.from_mpid('mp-565814') + assert ebands.nsppol == 2 + self.assert_almost_equal(ebands.direct_gaps[0].energy, 3.6776999999999997) + self.assert_almost_equal(ebands.direct_gaps[1].energy, 2.0054000000000003) + self.assert_almost_equal(ebands.nelect, 368.0) + self.assert_almost_equal(ebands.fermie, 3.1562566) + assert str(ebands.to_string(verbose=1)) + + #def test_ebands_from_mpid_metal(self): + # # This is Al but it's disabled because it takes ~ 77s + # # nsppol: 1, nkpt: 1016, mband: 96, nspinor: 1, nspden: 1 + # ebands = ElectronBands.from_mpid('mp-134', line_mode=True) + # assert ebands.nelect == 3 class ElectronBandsPlotterTest(AbipyTest): @@ -571,6 +642,16 @@ def test_ebands_plotter(self): assert plotter.plot_band_edges(epad_ev=2.0, show=False) assert plotter.animate(show=False) + if self.has_plotly(): + assert plotter.combiplotly(title="Silicon band structure", show=False) + # Alias for combiplot + assert plotter.plotly(e0=2, width_ratios=(3, 1), fontsize=12, show=False) + #plotter.combiboxplotly(title="Silicon band structure", swarm=True, show=False) + assert plotter.gridplotly(title="Silicon band structure", with_gaps=True, show=False) + #assert plotter.boxplotly(title="Silicon band structure", swarm=True, show=False) + #assert plotter.plotly_band_edges(epad_ev=2.0, show=False) + #assert plotter.animate(show=False) + if self.has_ipywidgets(): assert plotter.ipw_select_plot() is not None @@ -590,7 +671,12 @@ def test_api(self): """Testing ElelectronDosPlotter API.""" gsr_path = abidata.ref_file("si_scf_GSR.nc") gs_bands = ElectronBands.from_file(gsr_path) - si_edos = gs_bands.get_edos() + + with open(gsr_path, "rb") as fh: + same_gsr_bands = ElectronBands.from_binary_string(fh.read()) + assert same_gsr_bands.structure == gs_bands.structure + + si_edos = gs_bands.get_edos(step=0.1, width=0.2) plotter = ElectronDosPlotter() plotter.add_edos("edos1", si_edos) diff --git a/abipy/electrons/tests/test_effmass_analyzer.py b/abipy/electrons/tests/test_effmass_analyzer.py index 39671a7ff..b81d26f90 100644 --- a/abipy/electrons/tests/test_effmass_analyzer.py +++ b/abipy/electrons/tests/test_effmass_analyzer.py @@ -16,14 +16,15 @@ def test_api(self): with self.assertRaises(RuntimeError): emana.summarize() - emana.select_kpoint_band((0, 0, 0), band=3, spin=0, etol_ev=0.1) + emana.select_kpoint_band((0, 0, 0), band=3, spin=0, degtol_ev=0.1) emana.summarize() - emana.select_band_edges() - emana.select_cbm() - emana.select_vbm(etol_ev=1e-3) + assert emana.select_band_edges() > 0 + assert emana.select_cbm() > 0 + assert emana.select_vbm(degtol_ev=1e-3) > 0 emana.summarize() + # extract segment. segment = emana.segments[0] repr(segment); str(segment) assert segment.to_string(verbose=2) diff --git a/abipy/electrons/tests/test_fatbands.py b/abipy/electrons/tests/test_fatbands.py index 98475f763..46996226a 100644 --- a/abipy/electrons/tests/test_fatbands.py +++ b/abipy/electrons/tests/test_fatbands.py @@ -36,6 +36,12 @@ def test_MgB2_fatbands(self): assert fbnc_kpath.plot_fatbands_siteview(e0=None, view="inequivalent", fact=2.0, bdist=[1, 2, 3], show=False) + if self.has_plotly(): + assert fbnc_kpath.plotly_fatbands_typeview(show=False) + assert fbnc_kpath.plotly_fatbands_lview(show=False) + #assert fbnc_kpath.plotly_fatbands_siteview(e0=None, view="inequivalent", + # fact=2.0, bdist=[1, 2, 3], show=False) + if self.has_nbformat(): fbnc_kpath.write_notebook(nbpath=self.get_tmpname(text=True)) @@ -62,6 +68,14 @@ def test_MgB2_fatbands(self): #assert fbnc_kpath.plot_pjdos_spinor() is None assert fbnc_kpath.plot_fatbands_mview(iatom=0) is None + if self.has_plotly(): + assert fbnc_kmesh.plotly_pjdos_typeview(show=False) + assert fbnc_kmesh.plotly_pjdos_lview(stacked=True, show=False) + assert fbnc_kmesh.plotly_pjdos_lview(stacked=False, show=False) + assert fbnc_kpath.plotly_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, view="type", show=False) + assert fbnc_kpath.plotly_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, view="lview", show=False) + #assert fbnc_kpath.plotly_spilling(e0=0, tight_layout=True, show=False) + fbnc_kpath.close() fbnc_kmesh.close() diff --git a/abipy/electrons/tests/test_gsr.py b/abipy/electrons/tests/test_gsr.py index 02ee97226..66c6af9a8 100644 --- a/abipy/electrons/tests/test_gsr.py +++ b/abipy/electrons/tests/test_gsr.py @@ -56,7 +56,7 @@ def test_read_Si2(self): r.print_tree() for group in r.walk_tree(): - print("group: " + str(group)) + assert str(group) # Initialize pymatgen structure from GSR. structure = r.read_structure() @@ -65,33 +65,44 @@ def test_read_Si2(self): class GSRFileTestCase(AbipyTest): - def test_gsr_silicon(self): - """spin unpolarized GSR file""" + def test_scf_gsr_silicon(self): + """spin unpolarized GSR file produced by a GS SCF calculation.""" + filepath = abidata.ref_file("si_scf_GSR.nc") + + # Init GSR from binary string. + with open(filepath, "rb") as fh: + same_gsr = GsrFile.from_binary_string(fh.read()) + same_structure = same_gsr.structure + same_gsr.close() - with GsrFile(abidata.ref_file("si_scf_GSR.nc")) as gsr: + with GsrFile(filepath) as gsr: assert gsr.basename == "si_scf_GSR.nc" assert gsr.relpath == os.path.relpath(abidata.ref_file("si_scf_GSR.nc")) assert gsr.filetype assert gsr.filestat() assert len(gsr.ncdump()) - repr(gsr); str(gsr) + assert repr(gsr) + assert str(gsr) assert gsr.to_string(verbose=2) assert gsr.abinit_version == "8.0.6" - str(gsr.ebands) + assert str(gsr.ebands) assert gsr.filepath == abidata.ref_file("si_scf_GSR.nc") assert gsr.nsppol == 1 assert gsr.mband == 8 and gsr.nband == 8 and gsr.nelect == 8 and len(gsr.kpoints) == 29 assert gsr.mband == gsr.hdr.mband + assert gsr.is_scf_run assert "nelect" in gsr.hdr and gsr.nelect == gsr.hdr.nelect self.assert_almost_equal(gsr.energy.to("Ha"), -8.86527676798556) self.assert_almost_equal(gsr.energy_per_atom * len(gsr.structure), gsr.energy) + assert gsr.structure.formula == same_structure.formula assert gsr.params["nband"] == 8 assert gsr.params["nkpt"] == 29 # Test energy_terms eterms = gsr.energy_terms - repr(eterms); str(eterms) + assert repr(eterms) + assert str(eterms) assert eterms.to_string(with_doc=True) self.assert_almost_equal(eterms.e_xc.to("Ha"), -3.51815936301812) self.assert_almost_equal(eterms.e_nonlocalpsp.to("Ha"), 1.91660690901782) @@ -120,7 +131,7 @@ def test_gsr_silicon(self): # Test pymatgen computed_entries for inc_structure in (True, False): e = gsr.get_computed_entry(inc_structure=inc_structure) - str(e) + assert str(e) d = e.as_dict() if inc_structure: assert "structure" in d assert d["energy"] == gsr.energy @@ -136,6 +147,23 @@ def test_gsr_silicon(self): if self.has_panel(): assert hasattr(gsr.get_panel(), "show") + def test_nscf_gsr_silicon(self): + """spin unpolarized GSR file produced by a GS NSCF calculation.""" + filepath = abidata.ref_file("si_nscf_GSR.nc") + + with GsrFile(filepath) as gsr: + assert gsr.basename == "si_nscf_GSR.nc" + assert not gsr.is_scf_run + assert str(gsr) + assert gsr.pressure is None + assert gsr.cart_forces is None + assert gsr.max_force is None + assert gsr.force_stats() is None + assert gsr.cart_stress_tensor is None + + with self.assertRaises(ValueError): + gsr.ebands.get_edos() + class GsrRobotTest(AbipyTest): @@ -149,10 +177,11 @@ def test_gsr_robot(self): assert "gsr0" in robot.keys() assert "gsr0" in robot.labels assert robot.EXT == "GSR" - repr(robot); str(robot) + assert repr(robot) + assert str(robot) assert robot.to_string(verbose=2) - # Cannot have same label + # Cannot have same label with self.assertRaises(ValueError): robot.add_file("gsr0", gsr_ibz) @@ -169,6 +198,8 @@ def test_gsr_robot(self): assert robot.is_sortable("ebands.nkpt") # gsr.ebands.nkpt assert robot.is_sortable("ecut") # in gsr.params + assert robot.getattr_alleq("nsppol") == 1 + dfs = robot.get_structure_dataframes() assert dfs.lattice is not None assert dfs.coords is not None @@ -194,9 +225,18 @@ def test_gsr_robot(self): assert robot.plot_gsr_convergence(show=False) assert robot.plot_gsr_convergence(sortby="nkpt", hue="tsmear", show=False) + + #assert robot.plot_convergence("energy_per_atom", sortby="nkpt", hue=None, abs_tol=1e-3, show=False) + #assert robot.plot_convergence("energy_per_atom", sortby="nkpt", hue="tsmear", abs_tol=1e-3, show=False) + y_vars = ["energy", "structure.lattice.a", "structure.volume"] assert robot.plot_convergence_items(y_vars, sortby="nkpt", hue="tsmear", show=False) + # TODO + #abs_tols = {"energy": 1e-3,, "structure.lattice.a": 1e-2,, "structure.volume": 1e-1} + #assert robot.plot_convergence_items(y_vars, sortby="nkpt", hue=None, abs_tols, show=False) + #assert robot.plot_convergence_items(y_vars, sortby="nkpt", hue="tsmear", abs_tols, show=False) + assert robot.plot_egaps(show=False) assert robot.plot_egaps(sortby="nkpt", hue="tsmear") assert robot.gridplot_with_hue("structure.formula", show=False) @@ -204,11 +244,11 @@ def test_gsr_robot(self): if self.has_panel(): assert hasattr(robot.get_panel(), "show") - # Get pandas dataframe. + # Get pandas dataframe. df = robot.get_dataframe() assert "energy" in df self.assert_equal(df["ecut"].values, 6.0) - self.assert_almost_equal(df["energy"].values, -241.2364683) + self.assert_almost_equal(df["energy"].values, -241.2364683, decimal=4) df_params = robot.get_params_dataframe() assert "nband" in df_params @@ -225,7 +265,7 @@ def test_gsr_robot(self): assert robot.plot_xy_with_hue(df, x="nkpt", y="pressure", hue="a", show=False) # Note: This is not a real EOS since we have a single volume. - # But testing is better than not testing. + # But testing something is better than not testing. r = robot.get_eos_fits_dataframe() assert hasattr(r, "fits") and hasattr(r, "dataframe") diff --git a/abipy/electrons/tests/test_gw.py b/abipy/electrons/tests/test_gw.py index 5eb06156f..7f3d7ad62 100644 --- a/abipy/electrons/tests/test_gw.py +++ b/abipy/electrons/tests/test_gw.py @@ -15,7 +15,7 @@ def setUp(self): self.sigres = sigres = abilab.abiopen(abidata.ref_file("tgw1_9o_DS4_SIGRES.nc")) repr(self.sigres); str(self.sigres) assert self.sigres.to_string(verbose=2) - self.qplist = sigres.get_qplist(spin=0, kpoint=sigres.gwkpoints[0]) + self.qplist = sigres.get_qplist(spin=0, kpoint=sigres.sigma_kpoints[0]) def tearDown(self): self.sigres.close() @@ -48,7 +48,7 @@ def test_qplist(self): with self.assertRaises(ValueError): qplist.merge(qplist) - other_qplist = self.sigres.get_qplist(spin=0, kpoint=self.sigres.gwkpoints[1]) + other_qplist = self.sigres.get_qplist(spin=0, kpoint=self.sigres.sigma_kpoints[1]) qpl_merge = qplist.merge(other_qplist) assert all(qp in qpl_merge for qp in qplist) @@ -60,8 +60,8 @@ def test_qplist(self): #qp.to_string(verbose=2, title="QP State") assert str(qp.tips) assert qp.spin == 0 - assert qp.kpoint == self.sigres.gwkpoints[0] - assert qp.kpoint is self.sigres.gwkpoints[0] + assert qp.kpoint == self.sigres.sigma_kpoints[0] + assert qp.kpoint is self.sigres.sigma_kpoints[0] self.assert_equal(qp.re_qpe + 1j * qp.imag_qpe, qp.qpe) self.assert_almost_equal(qp.e0, -5.04619941555265, decimal=5) @@ -89,7 +89,7 @@ def test_base(self): # In this run IBZ = kptgw assert len(sigres.ibz) == 6 - assert sigres.gwkpoints == sigres.ibz + assert sigres.sigma_kpoints == sigres.ibz # No spectral function assert not sigres.reader.has_spfunc with self.assertRaises(ValueError): @@ -112,7 +112,7 @@ def test_base(self): ik = 2 df = sigres.get_dataframe_sk(spin=0, kpoint=ik) - same_df = sigres.get_dataframe_sk(spin=0, kpoint=sigres.gwkpoints[ik]) + same_df = sigres.get_dataframe_sk(spin=0, kpoint=sigres.sigma_kpoints[ik]) assert np.all(df["qpe"] == same_df["qpe"]) @@ -120,7 +120,7 @@ def test_base(self): df_real = sigres.get_dataframe_sk(spin=0, kpoint=ik, ignore_imag=True) assert np.all(df["qpe"].to_numpy().real == df_real["qpe"]) - full_df = sigres.to_dataframe() + full_df = sigres.get_dataframe() marker = sigres.get_marker("qpeme0") assert marker and len(marker.x) diff --git a/abipy/electrons/tests/test_optic.py b/abipy/electrons/tests/test_optic.py index 6b1b1bd5c..d3855163f 100644 --- a/abipy/electrons/tests/test_optic.py +++ b/abipy/electrons/tests/test_optic.py @@ -23,6 +23,7 @@ def test_opticfile(self): self.assert_almost_equal(optic.tolerance, 0.002) assert optic.reader.ntemp == 1 assert optic.params["nspden"] == 1 + assert optic.nband_sum == optic.nband assert optic.has_linopt assert optic.reader.computed_components["linopt"] == ["xx", "zz"] diff --git a/abipy/electrons/tests/test_psps.py b/abipy/electrons/tests/test_psps.py index 3de33027d..d6df52ef5 100644 --- a/abipy/electrons/tests/test_psps.py +++ b/abipy/electrons/tests/test_psps.py @@ -4,7 +4,7 @@ import abipy.core from abipy.core.testing import AbipyTest -from abipy.electrons.psps import PspsFile +from abipy.electrons.psps import PspsFile, PspsRobot class PspsFileTestCase(AbipyTest): @@ -19,6 +19,20 @@ def test_psps_nc_silicon(self): assert r.usepaw == 0 and r.ntypat == 1 assert not psps.params + robot = PspsRobot.from_files([psps.filepath]) + repr(psps); print(psps) + + all_projs = psps.reader.read_projectors() + for itypat, p_list in enumerate(all_projs): + for p in p_list: + assert p.to_string(verbose=1) + if self.has_matplotlib(): - psps.plot(what="all", with_qn=True, show=False) - psps.compare(psps, show=False) + # psps plots. + assert psps.plot(what="all", with_qn=True, show=False) + + # robot plots. + assert robot.plot_tcore_rspace(ders=(0, 1, 2, 3), with_qn=0, scale=None, fontsize=8, show=False) + assert robot.plot_tcore_qspace(ders=(0, 1), with_qn=0, scale=None, fontsize=8, show=False) + assert robot.plot_q2vq(ders=(0, 1), with_qn=0, with_fact=True, scale=None, fontsize=8, show=False) + assert robot.plot_ffspl(ecut_ffnl=None, ders=(0, 1), with_qn=0, scale=None, fontsize=8, show=False) diff --git a/abipy/electrons/tests/test_scissors.py b/abipy/electrons/tests/test_scissors.py index 6b415f59f..304b5bf59 100644 --- a/abipy/electrons/tests/test_scissors.py +++ b/abipy/electrons/tests/test_scissors.py @@ -58,9 +58,9 @@ def test_builder(self): builder.build(domains_spin=[[-10, 6.02], [6.1, 20]]) # Test pickle. - tmp_path = self.get_tmpname(suffix=".pickle") - builder.pickle_dump(tmp_path) - new = ScissorsBuilder.pickle_load(tmp_path) + #tmp_path = self.get_tmpname(suffix=".pickle") + #builder.pickle_dump(tmp_path) + #new = ScissorsBuilder.pickle_load(tmp_path) if self.has_matplotlib(): # To plot the QP results as function of the KS energy: diff --git a/abipy/electrons/tests/test_scr.py b/abipy/electrons/tests/test_scr.py index 756ecf3ef..95ab69801 100644 --- a/abipy/electrons/tests/test_scr.py +++ b/abipy/electrons/tests/test_scr.py @@ -24,7 +24,7 @@ def test_awggmat_api(self): wpoints = [0, 1, 2, 3j, 4j] nw = len(wpoints) - data = np.empty((nw, ng, ng), dtype=np.complex) + data = np.empty((nw, ng, ng), dtype=complex) f = _AwggMatrix(wpoints, gsphere, data, inord="C") repr(f); str(f) diff --git a/abipy/embedding/embedding_ifc.py b/abipy/embedding/embedding_ifc.py new file mode 100644 index 000000000..e541f6fd3 --- /dev/null +++ b/abipy/embedding/embedding_ifc.py @@ -0,0 +1,257 @@ +from __future__ import annotations + +import numpy as np +import os, shutil + +from phonopy import Phonopy +from pymatgen.io.phonopy import get_pmg_structure,get_phonopy_structure + +from abipy.core.abinit_units import eV_to_THz +from abipy.core.structure import Structure +from abipy.dfpt.converters import phonopy_to_abinit +from abipy.embedding.utils_ifc import accoustic_sum,map_two_structures_coords,clean_structure + + +class Embedded_phonons(Phonopy): + """ + Defines a Phonopy object implementing the Interatomic Force Constants embedding method defined in: + + https://pubs.acs.org/doi/10.1021/acs.chemmater.3c00537 + https://iopscience.iop.org/article/10.1088/1367-2630/16/7/073026/meta + https://journals.aps.org/prmaterials/abstract/10.1103/PhysRevMaterials.5.084603 + """ + # Inherits from Phonopy class + def __init__(self,stru_pristine,stru_defect,stru_emb,ifc_emb,nac_params) : + """ + :param stru_pristine: Supercell pristine structure + :param stru_defect: Supercell defect structure + :param stru_emb: Supercell embedded structure + :param ifc_emb: Interatomic force constant associated to the supercell embedded structure + :param nac_params : Non-analytical parameters associated to the supercell embedded structure, in phonopy format. + """ + super().__init__(unitcell=get_phonopy_structure(stru_emb), + supercell_matrix=[1,1,1], + primitive_matrix=np.eye(3),) + self.force_constants=ifc_emb + self.nac_params=nac_params + self.stru_pristine=stru_pristine + self.stru_defect=stru_defect + self.stru_emb=stru_emb + + @classmethod + def from_phonopy_instances(cls, + phonopy_pristine, + phonopy_defect, + structure_defect_wo_relax, + main_defect_coords_in_pristine, + main_defect_coords_in_defect, + substitutions_list:list=None, #index in pristine,specie ex: [0,"Eu"] + vacancies_list:list=None, # index in pristine ex: [13,14] + interstitial_list:list=None, # species, cart_coord ex: [['Eu',[0,0,0]],['Ce','[0,0,3]']] + tol_mapping=0.01, + cut_off_mode='auto',rc_1=None,rc_2=None, + factor_ifc=1, + verbose=0, + asr=True) -> Phonopy : + """ + Args: + phonopy_pristine: Phonopy object of the pristine structure + phonopy_defect: Phonopy object of the defect structure + structure_defect_wo_relax: Supercell structure associated to the defect structure, but without relaxation. Needed for an easier mapping. + Should corresponds to order of phonopy_defect structure! + main_defect_coords_in_pristine: Main coordinates of the defect in pristine structure, if defect complex, can be set to the + center of mass of the complex + main_defect_coords_in_defect : Main coordinates of the defect in defect structure, if defect complex, can be set to the + center of mass of the complex + substitutions_list: List of substitutions infos [index,specie], ex : [[0, "Eu"],[1,"N"]] + vacancies_list: List of indices where the vacancies are, ex: [13,14] + interstitial_list: List of interstitial infos [specie, cart_coord], ex [['Eu',[0,0,0]],['Ce','[0,0,3]']] + tol_mapping: Tolerance in angstrom for the mapping between structures + cut_off_mode: Cut off mode for the radii of the sphere centered around the defect (rc_2). if 'auto' : the code tries to find the largest sphere + inscribed in the defect supercell. If 'manual' : rc_1 and rc_2 should be provided. + rc_1: Radii of the sphere centered around the defect outside which the IFCs are set to zero, allows to get sparse matrix. + rc_2: Radii of the sphere centered around the defect where the IFCs of the defect computation are included + factor_ifc: Multiply the IFCs inside the sphere of radii rc_2 by factor_ifc, usefull to introduce fictious high-frequency local mode + verbose : Print explicitely all the IFCs replacements + asr: If True, re-enforce acoustic sum rule after IFCs embedding, following eq. (S4) of https://pubs.acs.org/doi/10.1021/acs.chemmater.3c00537 + + Returns: + A new phonopy object with the embedded structure and embedded IFCs. + """ + + ######################## + # Structures manipulations and mapping + ######################## + + stru_defect=get_pmg_structure(phonopy_defect.supercell) + stru_pristine=get_pmg_structure(phonopy_pristine.supercell) + + stru_emb=stru_pristine.copy() + + + if vacancies_list is not None: + stru_emb.remove_sites(indices=vacancies_list) + + if substitutions_list is not None: + for sub in substitutions_list: + stru_emb.replace(sub[0],sub[1]) + + if interstitial_list is not None: + for inter in interstitial_list: + stru_emb.append(species=inter[0],coords=inter[1],coords_are_cartesian=True) + + stru_emb=clean_structure(stru_emb,defect_coord=main_defect_coords_in_pristine) + structure_defect_wo_relax=clean_structure(structure_defect_wo_relax,defect_coord=main_defect_coords_in_defect) + + mapping=map_two_structures_coords(structure_defect_wo_relax,stru_emb,tol=tol_mapping) + + ######################## + # Init of the IFCs + ######################## + + ifc_pristine=phonopy_pristine.force_constants + ifc_defect=phonopy_defect.force_constants + + # in case of IFC with vacancy, remove ifcs of the vac site + if vacancies_list is not None: + ifc_pristine=np.delete(ifc_pristine,vacancies_list,0) + + ifc_pristine=np.delete(ifc_pristine,vacancies_list,1) + + # interstitial + if interstitial_list is not None: + for inter in interstitial_list: + ifc_pristine=np.append(ifc_pristine,np.zeros(shape=[1,len(ifc_pristine),3,3]),axis=0) + + ifc_pristine=np.append(ifc_pristine,np.zeros(shape=[len(ifc_pristine),1,3,3]),axis=1) + + ######################## + # Print infos + ######################## + + print(f"Number of atoms in the pristine supercell : {len(stru_pristine)}") + print(f"Number of atoms in the defective supercell : {len(stru_defect)}") + + print("Defect infos") + if substitutions_list is not None: + print(" Substitutions:") + for sub in substitutions_list: + print(f" {sub[0]}, {stru_pristine[sub[0]].coords}, {stru_pristine[sub[0]].species} replaced by {sub[1]}") + + if vacancies_list is not None: + print(" Vacancies:" ) + for vac in vacancies_list: + print(f" {vac}, {stru_pristine[vac].coords}, {stru_pristine[vac].species} removed") + + if interstitial_list is not None: + print(" Interstitials:") + for inter in interstitial_list: + print(f" {inter[0]}, {inter[1]} added") + + print(f"Mapping after structure manipulation : {len(mapping)}/{len(stru_defect)}") + + ######################## + # change the IFCs + ######################## + + ifc_emb=np.zeros(shape=np.shape(ifc_pristine)) + + if cut_off_mode=='auto': + rc_1=100000 # very large value to include all the ifcs, no sparse matrix. + rc_2=0.99*min(np.array(structure_defect_wo_relax.lattice.abc)/2) # largest sphere inscribed in defect supercell, + # 0.99 to avoid problem with atoms at the border + if cut_off_mode=='manual': + rc_1=rc_1 + rc_2=rc_2 + + # Set to zero if 2 atoms distance is bigger than rc_1 + + for i,atom1 in enumerate(stru_emb): + for j,atom2 in enumerate(stru_emb): + dist_ij=np.sqrt(sum((atom1.coords-atom2.coords)**2)) + + if dist_ij > rc_1: + ifc_emb[i][j]=np.zeros(shape=(3,3)) + + else: + ifc_emb[i][j]=ifc_pristine[i][j] + + # Set to doped phonons if 2 atoms are separated from defect by distance < R_c2 + print(f"\n Set IFC to explicit defect phonons calculations if both atoms are separated from defect by a distance < R_c2 = {round(rc_2,3)}") + + for i,atom1 in enumerate(stru_emb): + for j,atom2 in enumerate(stru_emb): + # structure centered around defect!!!, main defect is at [0,0,0] + dist_1_from_defect=np.sqrt(sum((atom1.coords)**2)) + dist_2_from_defect=np.sqrt(sum((atom2.coords)**2)) + + if dist_1_from_defect < rc_2 and dist_2_from_defect < rc_2: + + if verbose > 0: + print(f"\n \n Atomic pair : {i,atom1} - {j,atom2} \n") + print(f"atom1 : Dist. from. defect = {dist_1_from_defect}") + print(f"atom2 : Dist. from. defect = {dist_2_from_defect}") + + print(f"Replacing pristine cell IFC = \n {ifc_pristine[i][j]}" ) + print(f"by defect cell IFC = \n {ifc_defect[mapping.index(i)][mapping.index(j)]}" ) + print(f"Diff IFC = \n {ifc_pristine[i][j]-ifc_defect[mapping.index(i)][mapping.index(j)]}" ) + + ifc_emb[i][j]=factor_ifc*ifc_defect[mapping.index(i)][mapping.index(j)] + + # enforce ASR + if asr==True: + print(f"\n Enforce ASR") + for alpha in [0,1,2]: + for beta in [0,1,2]: + for i,atom1 in enumerate(stru_emb): + ifc_emb[i][i][alpha,beta] = -(accoustic_sum(ifc_emb,i)[alpha,beta]-ifc_emb[i][i][alpha,beta]) + + ######################## + # change the nac params + ######################## + + if phonopy_pristine.nac_params is not None: + # Simply copy the nac params from the pristine + nac_params_emb=phonopy_pristine.nac_params.copy() + + if vacancies_list is not None: + nac_params_emb["born"]=np.delete(nac_params_emb["born"],vacancies_list,0) + else: + nac_params_emb=None + + ######################## + + print("\n Embedding procedure done") + + return cls(stru_pristine,stru_defect,stru_emb,ifc_emb,nac_params_emb) + + def get_gamma_freq_with_vec_abipy_fmt(self): + """ + Compute with phonopy the Gamma phonons freq and vectors and returns them in abipy format + such that ph_vec[iband][iatom] gives vector of iband,iatom + + Returns: + phonons frequencies, phonon eigenvectors + """ + + ph_freq_phonopy,ph_vec_phonopy=self.get_frequencies_with_eigenvectors(q=[0,0,0]) + + ph_freq = ph_freq_phonopy / (eV_to_THz) # put it in eV + ph_vec = ph_vec_phonopy.transpose().reshape(3*len(self.supercell),len(self.supercell),3) + + return ph_freq, ph_vec + + def to_ddb(self,embedded_ddb_path='out_DDB',workdir=None): + """ + Call the converter to go from phonopy to a DDB + + Args: + embedded_ddb_path: filepath where to save the DDB + workdir: work directory for the conversion + """ + ddb_sc = phonopy_to_abinit(unit_cell=get_pmg_structure(self.supercell), supercell_matrix=[1,1,1], qpt_list=[[0,0,0]], + out_ddb_path=embedded_ddb_path, force_constants=self.force_constants, + born=self.nac_params, primitive_matrix=np.eye(3), symprec=1e-5, + tolsym=None,workdir=workdir,nsym=1) + + return ddb_sc diff --git a/abipy/embedding/tests/test_embedding_ifc.py b/abipy/embedding/tests/test_embedding_ifc.py new file mode 100644 index 000000000..252bab1a3 --- /dev/null +++ b/abipy/embedding/tests/test_embedding_ifc.py @@ -0,0 +1,215 @@ +"""Tests for embedding.embedding_ifc module""" +import abipy.data as abidata +from abipy.core.testing import AbipyTest +from abipy.abilab import abiopen + +from abipy.dfpt.ddb import DdbFile +import tempfile +import os + +from abipy.dfpt.converters import ddb_ucell_to_phonopy_supercell +from abipy.core.kpoints import kmesh_from_mpdivs + +from abipy.embedding.utils_ifc import localization_ratio +from abipy.embedding.embedding_ifc import Embedded_phonons +from pymatgen.io.phonopy import get_pmg_structure,get_phonopy_structure + + +try: + import phonopy +except ImportError: + Phonopy = None + + +class Embedding_ifcTest(AbipyTest): + + def test_embedding_vacancy(self): + + self.skip_if_not_phonopy() + tmp_dir = tempfile.mkdtemp() + + # open a 4x4x4 q-mesh ddb of CaO + ddb_pristine = DdbFile(abidata.ref_file("refs/embedding_ifc/CaO_444_DDB")) + + ## interpolate on a 3x3x3 q-mesh + + qpts=kmesh_from_mpdivs(mpdivs=[3,3,3],shifts=[0,0,0],order="unit_cell") + ddb_pristine_333=ddb_pristine.anaget_interpolated_ddb(qpt_list=qpts) + + + + ph_pristine=ddb_ucell_to_phonopy_supercell(unit_ddb=ddb_pristine_333,nac=True) + + + ddb_defect = DdbFile(abidata.ref_file("refs/embedding_ifc/CaO_16at_vacancy_DDB")) + ph_defect=ddb_defect.anaget_phonopy_ifc() + + ######## + + # index of the vac. = 8 (in defect structure), this is found manually + idefect_defect_stru=8 + + # We need first to create the defect structure without relax + structure_defect_wo_relax=ddb_pristine.structure.copy() + structure_defect_wo_relax.make_supercell(2) + + main_defect_coords_in_defect=structure_defect_wo_relax.cart_coords[idefect_defect_stru] + + structure_defect_wo_relax.remove_sites(indices=[idefect_defect_stru]) + structure_defect_wo_relax.sort() + + # + idefect_pristine_stru=27 + main_defect_coords_in_pristine=get_pmg_structure(ph_pristine.supercell).cart_coords[idefect_pristine_stru] + + + ph_emb=Embedded_phonons.from_phonopy_instances( + phonopy_pristine=ph_pristine, + phonopy_defect=ph_defect, + structure_defect_wo_relax=structure_defect_wo_relax, + main_defect_coords_in_pristine=main_defect_coords_in_pristine, + main_defect_coords_in_defect=main_defect_coords_in_defect, + substitutions_list=None, + vacancies_list=[27], + interstitial_list=None, + factor_ifc=3, # increasing ifc, this will induce a fictious local mode above the bulk frequencies + cut_off_mode='auto', + verbose=0, + asr=True,) + + #test the conversion to ddb + ph_emb.to_ddb(tmp_dir+"out_DDB") + ddb_emb = DdbFile(tmp_dir+"out_DDB") + + modes=ddb_emb.anaget_phmodes_at_qpoint([0,0,0]) + freqs_anaddb=modes.phfreqs[0] + freqs_phonopy,vecs=ph_emb.get_gamma_freq_with_vec_abipy_fmt() + + self.assert_almost_equal(freqs_anaddb[-1],7.31410150e-02,decimal=5) + self.assert_almost_equal(freqs_phonopy[-1],7.31411352e-02,decimal=5) + self.assert_almost_equal(max(abs(freqs_anaddb-freqs_phonopy)),0,decimal=5) + + ratio=localization_ratio(vecs) + + self.assert_almost_equal(ratio[-1],7.41692860,decimal=5) + + + + def test_embedding_substitution(self): + + self.skip_if_not_phonopy() + tmp_dir = tempfile.mkdtemp() + + ddb_pristine = DdbFile(abidata.ref_file("refs/embedding_ifc/SrCl2_DDB")) + + ## interpolate on a 6x6x6 q-mesh + + qpts=kmesh_from_mpdivs(mpdivs=[6,6,6],shifts=[0,0,0],order="unit_cell") + ddb_pristine_666=ddb_pristine.anaget_interpolated_ddb(qpt_list=qpts) + + + + ph_pristine=ddb_ucell_to_phonopy_supercell(unit_ddb=ddb_pristine_666,nac=False) + + # test with phonopy loading + ph_defect = phonopy.load(supercell_filename=abidata.ref_file("refs/embedding_ifc/SrCl2_Eu_POSCAR"), + force_sets_filename=abidata.ref_file("refs/embedding_ifc/SrCl2_Eu_FORCE_SETS")) + + + ######## + # We need first to create the defect structure without relax + structure_defect_wo_relax=ddb_pristine.structure.copy() + structure_defect_wo_relax.make_supercell(3) + structure_defect_wo_relax.replace(0,'Eu') + structure_defect_wo_relax.sort() + + # index of the sub. = 26 (in defect structure), this is found manually + idefect_defect_stru=26 + main_defect_coords_in_defect=structure_defect_wo_relax.cart_coords[idefect_defect_stru] + + # index of the sub. = 0 (in pristine structure), this is found manually + idefect_pristine_stru=0 + main_defect_coords_in_pristine=get_pmg_structure(ph_pristine.supercell).cart_coords[idefect_pristine_stru] + + + ph_emb=Embedded_phonons.from_phonopy_instances( + phonopy_pristine=ph_pristine, + phonopy_defect=ph_defect, + structure_defect_wo_relax=structure_defect_wo_relax, + main_defect_coords_in_pristine=main_defect_coords_in_pristine, + main_defect_coords_in_defect=main_defect_coords_in_defect, + substitutions_list=[[idefect_pristine_stru,"Eu"]], + vacancies_list=None, + interstitial_list=None, + cut_off_mode='auto', + verbose=0, + asr=True,) + + + freqs,vecs=ph_emb.get_gamma_freq_with_vec_abipy_fmt() + + self.assert_almost_equal(freqs[-1],0.026440349386134484,decimal=5) + + ratio=localization_ratio(vecs) + + self.assert_almost_equal(ratio[446],21.65624596304,decimal=5) + + + def test_embedding_interstitial(self): + + self.skip_if_not_phonopy() + tmp_dir = tempfile.mkdtemp() + + ddb_pristine = DdbFile(abidata.ref_file("refs/embedding_ifc/C_conv_DDB")) + + + qpts=kmesh_from_mpdivs(mpdivs=[3,3,3],shifts=[0,0,0],order="unit_cell") + ddb_unit_333=ddb_pristine.anaget_interpolated_ddb(qpt_list=qpts,) + + ph_pristine=ddb_ucell_to_phonopy_supercell(unit_ddb=ddb_unit_333, + nac=False,) + + + # test with phonopy loading + ddb_defect = DdbFile(abidata.ref_file("refs/embedding_ifc/C_interstitial_DDB")) + ph_defect=ddb_defect.anaget_phonopy_ifc() + + ######## + + ### model of the split-interstitial as one vacancy + 2 inter. + + stru=abiopen(abidata.ref_file("refs/embedding_ifc/C_sc.cif")) + stru.remove_sites(indices=[14]) + stru.append(species="C",coords=[0.600, 0.5000, 0.2500]) + stru.append(species="C",coords=[0.400, 0.5000, 0.2500]) + structure_defect_wo_relax=stru + + # main defect is + main_defect_coords_in_pristine=get_pmg_structure(ph_pristine.supercell)[31].coords + main_defect_coords_in_defect=main_defect_coords_in_pristine + + ph_emb=Embedded_phonons.from_phonopy_instances(phonopy_pristine=ph_pristine, + phonopy_defect=ph_defect, + structure_defect_wo_relax=structure_defect_wo_relax, + main_defect_coords_in_pristine=main_defect_coords_in_pristine, + main_defect_coords_in_defect=main_defect_coords_in_defect, + vacancies_list=[31], + interstitial_list=[['C',[4.2885, 3.5737, 1.7869]], + ['C',[2.8590, 3.5737, 1.7869]] + ], + verbose=1, + cut_off_mode='auto', + factor_ifc=1, + asr=True) + + + + freqs,vecs=ph_emb.get_gamma_freq_with_vec_abipy_fmt() + + self.assert_almost_equal(freqs[-1],0.212826358519,decimal=5) + + ratio=localization_ratio(vecs) + + self.assert_almost_equal(ratio[650],78.76445591,decimal=5) + + diff --git a/abipy/embedding/utils_ifc.py b/abipy/embedding/utils_ifc.py new file mode 100644 index 000000000..9d5955b79 --- /dev/null +++ b/abipy/embedding/utils_ifc.py @@ -0,0 +1,203 @@ +from phonopy import Phonopy +import numpy as np + +from pymatgen.io.phonopy import get_pmg_structure,get_phonopy_structure + +from abipy.core.abinit_units import eV_to_THz +from abipy.dfpt.converters import phonopy_to_abinit +import os,shutil +## Usefull functions to be used in embedding_ifc ### + +def stru_0_1_to_minus_05_05(structure): + """ + translate the structure so that the frac_coords go from [0,1] to [-0.5,0,5] + """ + + new_stru = structure.copy() + for site in new_stru: + if site.frac_coords[0] >= 0.5: + site.frac_coords[0] = site.frac_coords[0] - 1 + + if site.frac_coords[1] >= 0.5: + site.frac_coords[1] = site.frac_coords[1] - 1 + + if site.frac_coords[2] >= 0.5: + site.frac_coords[2] = site.frac_coords[2] - 1 + return new_stru + +def frac_coords_05_to_minus05(stru): + """ + Move atoms that are close to frac_coord = 0.5 to -0.5 + Needed for atoms that are at -0.5 in the perfect supercell but move to for instance 0.498 after relaxation + """ + new_stru = stru.copy() + for i, atom in enumerate(new_stru): + if atom.frac_coords[0] > 0.495: + atom.frac_coords[0] = -0.5 + if atom.frac_coords[1] > 0.495: + atom.frac_coords[1] = -0.5 + if atom.frac_coords[2] > 0.495: + atom.frac_coords[2] = -0.5 + + return new_stru + +def center_wrt_defect(structure,defect_coord): + """ + Center the structure around defect_coord. Defect is now at [0,0,0] + """ + + new_stru = structure.copy() +# site = structure[index_in_structure] + new_stru.translate_sites(indices=np.arange(0, len(structure)), + vector=-defect_coord,frac_coords=False, + to_unit_cell=False) + return new_stru + + +def clean_structure(structure,defect_coord): + """ + Apply successively : + center_wrt_defect(), stru_0_1_to_minus_05_05(), frac_coords_05_to_minus05() + Usefull to match structures after clean_structure() + """ + stru=structure.copy() + stru=center_wrt_defect(stru,defect_coord) + stru=stru_0_1_to_minus_05_05(stru) + stru=frac_coords_05_to_minus05(stru) + return stru + + +def map_two_structures_coords(stru_1, stru_2,tol=0.1): + """ + Returns a mapping between two structures based on + the coordinates, within a given tolerance in Angstrom. + stru_1 should be a subset of the superset structure stru_2 + """ + + cart_1 = stru_1.cart_coords + cart_2 = stru_2.cart_coords + mapping = [] + for i, site_1 in enumerate(stru_1): # subset structure + for j, site_2 in enumerate(stru_2): # superset structure + if max(abs(cart_1[i] - cart_2[j])) < tol: + mapping.append(j) + + if len(mapping)!= len(stru_1): + print(f"Mapping incomplete : only {len(mapping)}/{len(stru_1)} atoms mapped.") + return mapping + +def accoustic_sum(Hessian_matrix, atom_label): + Sum_hessian=np.zeros((3,3)) + for m in range(len(Hessian_matrix[0])): + Sum_hessian += Hessian_matrix[m][atom_label] + + return Sum_hessian + + +def inverse_participation_ratio(eigenvectors): + """ + Compute equation (10) of https://pubs.acs.org/doi/10.1021/acs.chemmater.3c00537 + for a given q-point, eigenvectors shape=(nbands,natoms,3) + """ + # for a given q-point, eigenvectors shape=(nbands,natoms,3) + ipr=[] + for iband in range(len(eigenvectors)): + sum_atoms=0 + for iatom in range(len(eigenvectors[iband])): + sum_atoms += np.dot(eigenvectors[iband,iatom],eigenvectors[iband,iatom])**2 + ipr.append(1/sum_atoms) + return np.array(ipr).real + +def localization_ratio(eigenvectors): + """ + See equation (10) of https://pubs.acs.org/doi/10.1021/acs.chemmater.3c00537 + for a given q-point, eigenvectors shape=(nbands,natoms,3) + """ + ipr=inverse_participation_ratio(eigenvectors) + return len(eigenvectors[0])/ipr + + +def vesta_phonon(eigenvectors,in_path,ibands=None, + scale_vector=20,width_vector=0.3,color_vector=[255,0,0],centered=True, + factor_keep_vectors=0.1, + out_path="VESTA_FILES"): + """ + Draw the phonons eigenvectors on a vesta file. + Inspired from https://github.com/AdityaRoy-1996/Phonopy_VESTA/tree/master + + Args: + eigenvectors: phonons eigenvectors for given q-point with shape (nbands,natom,3) + in_path : path where the initial vesta structure in stored, the structure should be consistent + with the eigenvectors provided. + ibands: list of indices of the bands to include, if not provided, all the bands + scale_vector : scaling factor of the vector modulus + width_vector : vector width + color_vector : color in rgb format + centered : center the vesta structure around [0,0,0] + factor_keep_vectors : draw only the eigenvectors with magnitude > factor_keep_vectors * max(magnitude) + out_path : path where .vesta files with vector are stored + """ + + vesta = open(in_path,'r').read() + nbands = len(eigenvectors) + natoms = len(eigenvectors[0]) + + if ibands is None : + ibands = range(nbands) + + if os.path.isdir(out_path): + shutil.rmtree(out_path) + os.mkdir(out_path) + else : + os.mkdir(out_path) + + path=out_path + + for iband in ibands : + towrite = vesta.split('VECTR')[0] + towrite += 'VECTR\n' + + magnitudes=[] + for iatom in range(natoms) : + magnitudes.append(np.sqrt(eigenvectors[iband][iatom][0]**2+eigenvectors[iband][iatom][1]**2+eigenvectors[iband][iatom][2]**2)) + for iatom in range(natoms) : + if magnitudes[iatom] > factor_keep_vectors * max(np.real(magnitudes)): + towrite += '%5d' %(iatom + 1) + towrite += '%10.5f' %(eigenvectors[iband][iatom][0] * int(scale_vector)) + towrite += '%10.5f' %(eigenvectors[iband][iatom][1] * int(scale_vector)) + towrite += '%10.5f' %(eigenvectors[iband][iatom][2] * int(scale_vector)) + towrite += '\n' + towrite += '%5d' %(iatom + 1) + ' 0 0 0 0\n 0 0 0 0 0\n' + + towrite += '0 0 0 0 0\n' + towrite += 'VECTT\n' + + for atom in range(natoms) : + towrite += '%5d' %(atom + 1) + towrite += f' {width_vector} {color_vector[0]} {color_vector[1]} {color_vector[2]} 0\n' + + towrite += '0 0 0 0 0\n' + towrite += 'SPLAN' + towrite += vesta.split('SPLAN')[1] + towrite += 'VECTS 1.00000' + + + filename = path + f'/{iband:05}_' + filename += '.vesta' + + open(filename, 'w').write(towrite) + + if centered==True: + + with open(filename, 'r') as file: + file_contents = file.read() + search_word="BOUND\n 0 1 0 1 0 1\n 0 0 0 0 0" + replace_word="BOUND\n -0.5 0.5 -0.5 0.5 -0.5 0.5\n 0 0 0 0 0" + + updated_contents = file_contents.replace(search_word, replace_word) + + with open(filename, 'w') as file: + file.write(updated_contents) + + print(f"Vesta files created and stored in : \n {os.getcwd()}/{out_path}") + return diff --git a/abipy/eph/a2f.py b/abipy/eph/a2f.py index 8db645ce7..28890d779 100644 --- a/abipy/eph/a2f.py +++ b/abipy/eph/a2f.py @@ -6,20 +6,34 @@ Warning: Work in progress, DO NOT USE THIS CODE. """ +from __future__ import annotations + +import itertools import numpy as np +import pandas as pd import pymatgen.core.units as units import abipy.core.abinit_units as abu from collections import OrderedDict -from scipy.integrate import cumtrapz, simps +try: + from scipy.integrate import cumulative_trapezoid as cumtrapz +except ImportError: + from scipy.integrate import cumtrapz +try: + from scipy.integrate import simpson as simps +except ImportError: + from scipy.integrate import simps +#from typing import Any from monty.string import marquee, list_strings from monty.functools import lazy_property +from abipy.core.structure import Structure from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter from abipy.core.kpoints import Kpath from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims, set_visible, rotate_ticklabels) from abipy.tools import duck -from abipy.electrons.ebands import ElectronDos, RobotWithEbands +from abipy.tools.typing import Figure +from abipy.electrons.ebands import ElectronBands, ElectronDos, RobotWithEbands from abipy.dfpt.phonons import PhononBands, PhononDos, RobotWithPhbands from abipy.abio.robots import Robot from abipy.eph.common import BaseEphReader @@ -33,7 +47,7 @@ } -class A2f(object): +class A2f: """ Eliashberg function a2F(w). Energies are in eV. """ @@ -79,7 +93,7 @@ def __init__(self, mesh, values_spin, values_spin_nu, ngqpt, meta): #self.lambdaw ? @lazy_property - def iw0(self): + def iw0(self) -> int: """ Index of the first point in the mesh whose value is >= 0 Integrals are performed with wmesh[iw0 + 1, :] i.e. unstable modes are neglected. @@ -89,10 +103,10 @@ def iw0(self): else: raise ValueError("Cannot find zero in energy mesh") - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, title=None, verbose=0): + def to_string(self, title: str = None, verbose: int = 0) -> str: """ String representation with verbosity level ``verbose`` and an optional ``title``. """ @@ -100,7 +114,6 @@ def to_string(self, title=None, verbose=0): app("Eliashberg Function" if not title else str(title)) # TODO: Add ElectronDos - #app("Isotropic lambda: %.3f" % (self.lambda_iso)) app("Isotropic lambda: %.2f, omega_log: %.3f (eV), %.3f (K)" % ( self.lambda_iso, self.omega_log, self.omega_log * abu.eV_to_K)) app("Q-mesh: %s" % str(self.ngqpt)) @@ -121,12 +134,12 @@ def to_string(self, title=None, verbose=0): return "\n".join(lines) @lazy_property - def lambda_iso(self): + def lambda_iso(self) -> float: """Isotropic lambda.""" return self.get_moment(n=0) @lazy_property - def omega_log(self): + def omega_log(self) -> float: r""" Logarithmic moment of alpha^2F: exp((2/\lambda) \int dw a2F(w) ln(w)/w) """ @@ -138,7 +151,7 @@ def omega_log(self): return np.exp(1.0 / self.lambda_iso * integral) - def get_moment(self, n, spin=None, cumulative=False): + def get_moment(self, n: int, spin=None, cumulative: bool = False) -> float: r""" Computes the moment of a2F(w) i.e. $\int dw [a2F(w)/w] w^n$ From Allen PRL 59 1460 (See also Grimvall, Eq 6.72 page 175) @@ -156,7 +169,7 @@ def get_moment(self, n, spin=None, cumulative=False): return vals if cumulative else vals[-1].copy() - def get_moment_nu(self, n, nu, spin=None, cumulative=False): + def get_moment_nu(self, n: int, nu: int, spin=None, cumulative: bool = False) -> float: r""" Computes the moment of a2F(w) i.e. $\int dw [a2F(w)/w] w^n$ From Allen PRL 59 1460 (See also Grimvall, Eq 6.72 page 175) @@ -174,23 +187,20 @@ def get_moment_nu(self, n, nu, spin=None, cumulative=False): return vals if cumulative else vals[-1].copy() - def get_mcmillan_tc(self, mustar): + def get_mcmillan_tc(self, mustar: float) -> float: """ - Computes the critical temperature with the McMillan equation and the input mustar. - - Return: Tc in Kelvin. + Computes the critical temperature Tc in K computed with the McMillan equation + and the input mustar. """ tc = (self.omega_log / 1.2) * \ np.exp(-1.04 * (1.0 + self.lambda_iso) / (self.lambda_iso - mustar * (1.0 + 0.62 * self.lambda_iso))) return tc * abu.eV_to_K - def get_mustar_from_tc(self, tc): + def get_mustar_from_tc(self, tc: float) -> float: """ - Return the value of mustar that gives the critical temperature ``tc`` in the McMillan equation. - - Args: - tc: Critical temperature in Kelvin. + Return the value of mustar that gives the critical temperature ``tc`` in Kelving + in the McMillan equation. """ l = self.lambda_iso num = l + (1.04 * (1 + l) / np.log(1.2 * abu.kb_eVK * tc / self.omega_log)) @@ -199,7 +209,7 @@ def get_mustar_from_tc(self, tc): @add_fig_kwargs def plot(self, what="a2f", units="eV", exchange_xy=False, ax=None, - xlims=None, ylims=None, label=None, fontsize=12, **kwargs): + xlims=None, ylims=None, label=None, fontsize=8, **kwargs) -> Figure: """ Plot a2F(w) or lambda(w) depending on the value of `what`. @@ -263,7 +273,7 @@ def plot(self, what="a2f", units="eV", exchange_xy=False, ax=None, return fig @add_fig_kwargs - def plot_with_lambda(self, units="eV", ax=None, xlims=None, fontsize=12, **kwargs): + def plot_with_lambda(self, units="eV", ax=None, xlims=None, fontsize=8, **kwargs) -> Figure: """ Plot a2F(w) and lambda(w) on the same figure. @@ -280,15 +290,15 @@ def plot_with_lambda(self, units="eV", ax=None, xlims=None, fontsize=12, **kwarg for i, what in enumerate(["a2f", "lambda"]): this_ax = ax if i == 0 else ax.twinx() self.plot(what=what, ax=this_ax, units=units, fontsize=fontsize, xlims=xlims, show=False, **kwargs) - if i: + if i > 0: this_ax.yaxis.set_label_position("right") - this_ax.grid(True) + this_ax.grid(False) return fig @add_fig_kwargs - def plot_nuterms(self, units="eV", ax_mat=None, with_lambda=True, fontsize=12, - xlims=None, ylims=None, label=None, **kwargs): + def plot_nuterms(self, units="eV", ax_mat=None, with_lambda=True, fontsize=8, + xlims=None, ylims=None, label=None, **kwargs) -> Figure: """ Plot a2F(w), lambda(w) and optionally the individual contributions due to the phonon branches. @@ -317,8 +327,8 @@ def plot_nuterms(self, units="eV", ax_mat=None, with_lambda=True, fontsize=12, lax_nu = [ax.twinx() for ax in ax_mat.flat] # Share axis after creation. Based on # https://stackoverflow.com/questions/42973223/how-share-x-axis-of-two-subplots-after-they-are-created - lax_nu[0].get_shared_x_axes().join(*lax_nu) - lax_nu[0].get_shared_y_axes().join(*lax_nu) + #lax_nu[0].get_shared_x_axes().join(*lax_nu) + #lax_nu[0].get_shared_y_axes().join(*lax_nu) for i, ax in enumerate(lax_nu): if i == 2: continue ax.set_yticklabels([]) @@ -333,7 +343,7 @@ def plot_nuterms(self, units="eV", ax_mat=None, with_lambda=True, fontsize=12, lambda_style = a2f_style.copy() lambda_style["color"] = "red" - import itertools + for idir, iatom in itertools.product(range(3), range(self.natom)): nu = idir + 3 * iatom ax = ax_mat[iatom, idir] @@ -372,7 +382,7 @@ def plot_nuterms(self, units="eV", ax_mat=None, with_lambda=True, fontsize=12, return fig @add_fig_kwargs - def plot_a2(self, phdos, atol=1e-12, **kwargs): + def plot_a2(self, phdos, atol=1e-12, **kwargs) -> Figure: """ Grid with 3 plots showing: a2F(w), F(w), a2F(w). Requires phonon DOS. @@ -408,7 +418,7 @@ def plot_a2(self, phdos, atol=1e-12, **kwargs): return fig @add_fig_kwargs - def plot_tc_vs_mustar(self, start=0.1, stop=0.3, num=50, ax=None, **kwargs): + def plot_tc_vs_mustar(self, start=0.1, stop=0.3, num=50, ax=None, **kwargs) -> Figure: """ Plot Tc(mustar) @@ -434,7 +444,7 @@ def plot_tc_vs_mustar(self, start=0.1, stop=0.3, num=50, ax=None, **kwargs): return fig -class A2Ftr(object): +class A2Ftr: """ Transport Eliashberg function a2F(w). Energies are in eV. """ @@ -453,7 +463,7 @@ def __init__(self, mesh, vals_in, vals_out): self.mesh = mesh @lazy_property - def iw0(self): + def iw0(self) -> int: """ Index of the first point in the mesh whose value is >= 0 Integrals are performed with wmesh[iw0 + 1, :] i.e. unstable modes are neglected. @@ -483,19 +493,19 @@ class A2fFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter): .. inheritance-diagram:: A2fFile """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> A2fFile: """Initialize the object from a netcdf_ file.""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = A2fReader(filepath) - def __str__(self): + def __str__(self) -> str: """String representation.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append @@ -515,32 +525,39 @@ def to_string(self, verbose=0): if verbose: app("Has transport a2Ftr(w): %s" % self.has_a2ftr) app("") + + def print_a2f(a2f, title): + app(title) + app("Isotropic lambda: %.2f, omega_log: %.3f (eV), %.3f (K)" % ( + a2f.lambda_iso, a2f.omega_log, a2f.omega_log * abu.eV_to_K)) + for mu in (0.1, 0.16): + tc = a2f.get_mcmillan_tc(mu) + app(f"Tc[mu={mu}]: {tc} (K)") + a2f = self.a2f_qcoarse - app("a2f(w) on the %s q-mesh (ddb_ngqpt|eph_ngqpt)" % str(a2f.ngqpt)) - app("Isotropic lambda: %.2f, omega_log: %.3f (eV), %.3f (K)" % ( - a2f.lambda_iso, a2f.omega_log, a2f.omega_log * abu.eV_to_K)) + print_a2f(a2f, "a2f(w) on the %s q-mesh (ddb_ngqpt|eph_ngqpt)" % str(a2f.ngqpt)) #app(self.a2f_qcoarse.to_string(title=title, verbose=verbose)) app("") a2f = self.a2f_qintp - app("a2f(w) Fourier interpolated on the %s q-mesh (ph_ngqpt)" % str(a2f.ngqpt)) - app("Isotropic lambda: %.2f, omega_log: %.3f (eV), %.3f (K)" % ( - a2f.lambda_iso, a2f.omega_log, a2f.omega_log * abu.eV_to_K)) + print_a2f(a2f, "a2f(w) Fourier interpolated on the %s q-mesh (ph_ngqpt)" % str(a2f.ngqpt)) + #app("Isotropic lambda: %.2f, omega_log: %.3f (eV), %.3f (K)" % ( + # a2f.lambda_iso, a2f.omega_log, a2f.omega_log * abu.eV_to_K)) #app(self.a2f_qintp.to_string(title=title, verbose=verbose)) return "\n".join(lines) @lazy_property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object.""" return self.reader.read_ebands() @lazy_property - def edos(self): + def edos(self) -> ElectronDos: """|ElectronDos| object with e-DOS computed by Abinit.""" return self.reader.read_edos() @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure @@ -553,8 +570,8 @@ def phbands(self): return self.reader.read_phbands_qpath() @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() # Add EPH parameters. od.update(self.reader.common_eph_params) @@ -582,7 +599,7 @@ def get_a2f_qsamp(self, qsamp): raise ValueError("Invalid value for qsamp `%s`" % str(qsamp)) @lazy_property - def has_a2ftr(self): + def has_a2ftr(self) -> bool: """True if the netcdf file contains transport data.""" return "a2ftr_qcoarse" in self.reader.rootgrp.variables @@ -610,10 +627,17 @@ def get_a2ftr_qsamp(self, qsamp): if qsamp == "qintp": return self.a2ftr_qintp raise ValueError("Invalid value for qsamp `%s`" % str(qsamp)) - def close(self): + def close(self) -> None: """Close the file.""" self.reader.close() + def get_panel(self, **kwargs): + """ + Build panel with widgets to interact with the A2fFile either in a notebook or in panel app. + """ + from abipy.panels.a2f import A2fFilePanel + return A2fFilePanel(ncfile=self).get_panel(**kwargs) + #def interpolate(self, ddb, lpratio=5, vertices_names=None, line_density=20, filter_params=None, verbose=0): # """ # Interpolate the phonon linewidths on a k-path and, optionally, on a k-mesh. @@ -670,7 +694,7 @@ def close(self): @add_fig_kwargs def plot_eph_strength(self, what_list=("phbands", "gamma", "lambda"), ax_list=None, - ylims=None, label=None, fontsize=12, **kwargs): + ylims=None, label=None, fontsize=8, **kwargs) -> None: """ Plot phonon bands with EPH coupling strength lambda(q, nu) and lambda(q, nu) These values have been Fourier interpolated by Abinit. @@ -732,9 +756,10 @@ def plot_eph_strength(self, what_list=("phbands", "gamma", "lambda"), ax_list=No return fig @add_fig_kwargs - def plot(self, what="gamma", units="eV", scale=None, alpha=0.6, ylims=None, ax=None, colormap="jet", **kwargs): + def plot(self, what="gamma", units="eV", scale=None, alpha=0.6, ylims=None, + ax=None, colormap="jet", **kwargs) -> Figure: """ - Plot phonon bands with gamma(q, nu) or lambda(q, nu) depending on the vaue of `what`. + Plot phonon bands with gamma(q, nu) or lambda(q, nu) depending on the value of `what`. Args: what: ``lambda`` for eph coupling strength, ``gamma`` for phonon linewidths. @@ -794,7 +819,7 @@ def plot(self, what="gamma", units="eV", scale=None, alpha=0.6, ylims=None, ax=N return fig @add_fig_kwargs - def plot_a2f_interpol(self, units="eV", ylims=None, fontsize=8, **kwargs): + def plot_a2f_interpol(self, units="eV", ylims=None, fontsize=8, **kwargs) -> Figure: """ Compare ab-initio a2F(w) with interpolated values. @@ -828,7 +853,7 @@ def plot_a2f_interpol(self, units="eV", ylims=None, fontsize=8, **kwargs): return fig @add_fig_kwargs - def plot_with_a2f(self, what="gamma", units="eV", qsamp="qintp", phdos=None, ylims=None, **kwargs): + def plot_with_a2f(self, what="gamma", units="eV", qsamp="qcoarse", phdos=None, ylims=None, **kwargs) -> Figure: """ Plot phonon bands with lambda(q, nu) + a2F(w) + phonon DOS. @@ -909,11 +934,12 @@ def yield_figs(self, **kwargs): # pragma: no cover This function *generates* a predefined list of matplotlib figures with minimal input from the user. Used in abiview.py to get a quick look at the results. """ - yield self.plot(show=False) + #yield self.plot(show=False) #yield self.plot_eph_strength(show=False) - yield self.plot_with_a2f(show=False) + #yield self.plot_with_a2f(show=False) - for qsamp in ["qcoarse", "qintp"]: + #for qsamp in ["qcoarse", "qintp"]: + for qsamp in ["qcoarse",]: a2f = self.get_a2f_qsamp(qsamp) yield a2f.plot_with_lambda(title="q-sampling: %s (%s)" % (str(a2f.ngqpt), qsamp), show=False) @@ -924,7 +950,7 @@ def yield_figs(self, **kwargs): # pragma: no cover #if self.has_a2ftr: # ncfile.a2ftr.plot(); - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -963,9 +989,10 @@ class A2fRobot(Robot, RobotWithEbands, RobotWithPhbands): linestyle_qsamp = dict(qcoarse="--", qintp="-") marker_qsamp = dict(qcoarse="^", qintp="o") - all_qsamps = ["qcoarse", "qintp"] + #all_qsamps = ["qcoarse", "qintp"] + all_qsamps = ["qcoarse",] - def get_dataframe(self, abspath=False, with_geo=False, with_params=True, funcs=None): + def get_dataframe(self, abspath=False, with_geo=False, with_params=True, funcs=None) -> pd.DataFrame: """ Build and return a |pandas-DataFrame| with the most important results. @@ -1007,13 +1034,12 @@ def get_dataframe(self, abspath=False, with_geo=False, with_params=True, funcs=N if funcs is not None: d.update(self._exec_funcs(funcs, ncfile)) rows.append(d) - import pandas as pd row_names = row_names if not abspath else self._to_relpaths(row_names) return pd.DataFrame(rows, index=row_names, columns=list(rows[0].keys())) @add_fig_kwargs def plot_lambda_convergence(self, what="lambda", sortby=None, hue=None, ylims=None, fontsize=8, - colormap="jet", **kwargs): + colormap="jet", **kwargs) -> Figure: """ Plot the convergence of the lambda(q, nu) parameters wrt to the ``sortby`` parameter. @@ -1077,7 +1103,7 @@ def plot_lambda_convergence(self, what="lambda", sortby=None, hue=None, ylims=No @add_fig_kwargs def plot_a2f_convergence(self, sortby=None, hue=None, qsamps="all", xlims=None, - fontsize=8, colormap="jet", **kwargs): + fontsize=8, colormap="jet", **kwargs) -> Figure: """ Plot the convergence of the Eliashberg function wrt to the ``sortby`` parameter. @@ -1147,7 +1173,7 @@ def plot_a2f_convergence(self, sortby=None, hue=None, qsamps="all", xlims=None, @add_fig_kwargs def plot_a2fdata_convergence(self, sortby=None, hue=None, qsamps="all", what_list=("lambda_iso", "omega_log"), - fontsize=8, **kwargs): + fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the isotropic lambda and omega_log wrt the ``sortby`` parameter. @@ -1223,7 +1249,7 @@ def plot_a2fdata_convergence(self, sortby=None, hue=None, qsamps="all", what_lis return fig @add_fig_kwargs - def gridplot_a2f(self, xlims=None, fontsize=8, sharex=True, sharey=True, **kwargs): + def gridplot_a2f(self, xlims=None, fontsize=8, sharex=True, sharey=True, **kwargs) -> Figure: """ Plot grid with a2F(w) and lambda(w) for all files treated by the robot. @@ -1302,12 +1328,12 @@ def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. """ - yield self.plot_lambda_convergence(show=False) + #yield self.plot_lambda_convergence(show=False) yield self.plot_a2f_convergence(show=False) yield self.plot_a2fdata_convergence(show=False) yield self.gridplot_a2f(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -1343,7 +1369,7 @@ class A2fReader(BaseEphReader): .. rubric:: Inheritance Diagram .. inheritance-diagram:: A2fReader """ - def read_edos(self): + def read_edos(self) -> ElectronDos: """ Read the |ElectronDos| used to compute EPH quantities. """ @@ -1363,7 +1389,7 @@ def read_edos(self): return ElectronDos(mesh, spin_dos, nelect, fermie=fermie) - def read_phbands_qpath(self): + def read_phbands_qpath(self) -> PhononBands: """ Read and return a |PhononBands| object with frequencies computed along the q-path. """ diff --git a/abipy/eph/common.py b/abipy/eph/common.py index db6050e48..bbd08ebb6 100644 --- a/abipy/eph/common.py +++ b/abipy/eph/common.py @@ -2,6 +2,8 @@ """ Objects common to the other eph modules. """ +from __future__ import annotations + import numpy as np import abipy.core.abinit_units as abu @@ -90,7 +92,7 @@ def glr_frohlich(qpoint, becs_cart, epsinf_cart, phdispl_cart_bohr, phfreqs_ha, xred = structure.frac_coords # Acoustic modes are included --> assume BECS fullfill charge neutrality - glr_nu = np.empty(natom3, dtype=np.complex) + glr_nu = np.empty(natom3, dtype=complex) for nu in range(natom3): if phfreqs_ha[nu] < EPH_WTOL or q_eps_q < tol_qnorm: continue num = 0.0j @@ -100,5 +102,5 @@ def glr_frohlich(qpoint, becs_cart, epsinf_cart, phdispl_cart_bohr, phfreqs_ha, glr_nu[nu] = num / (q_eps_q * np.sqrt(2.0 * phfreqs_ha[nu])) fact = 1 - if (qdamp is not None): fact = np.exp(-qpoint.norm**2/(4*qdamp)) + if qdamp is not None: fact = np.exp(-qpoint.norm**2/(4*qdamp)) return fact * glr_nu * 4j * np.pi / (structure.volume*abu.Ang_Bohr**3) diff --git a/abipy/eph/cumulant.py b/abipy/eph/cumulant.py new file mode 100644 index 000000000..e8d1617b7 --- /dev/null +++ b/abipy/eph/cumulant.py @@ -0,0 +1,416 @@ +# coding: utf-8 +""" +This module contains objects for postprocessing e-ph calculations +using the results stored in the out_EPH_CUMULANT.nc file. +""" +from __future__ import annotations + +import numpy as np +import pandas as pd +import abipy.core.abinit_units as abu + +from scipy.fft import fft, fftfreq,fftshift,ifft +from collections import OrderedDict, namedtuple +from collections.abc import Iterable +from tabulate import tabulate +from monty.string import marquee, list_strings +from monty.functools import lazy_property +from monty.termcolor import cprint +from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter +from abipy.core.kpoints import Kpoint, KpointList, Kpath, IrredZone, has_timrev_from_kptopt, find_points_along_path +from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims, set_visible, + rotate_ticklabels, ax_append_title, set_ax_xylabels, linestyles) +from abipy.tools import duck +from abipy.tools.numtools import gaussian +from abipy.electrons.ebands import ElectronBands, ElectronDos, RobotWithEbands, ElectronBandsPlotter, ElectronDosPlotter +from abipy.abio.robots import Robot +from abipy.eph.common import BaseEphReader +from abipy.eph.sigeph import SigEPhFile,EphSelfEnergy, SigmaPhReader, QpTempState + + +__all__ = [ + "CumulantQpTempState", + "CumulantEPhFile", + "CumulantPhReader", + "CumulantSelfEnergy", +] + + +class CumulantQpTempState(QpTempState): + """ + Quasi-particle result for given (spin, kpoint, band). + + .. Attributes: + + spin: Spin index (C convention, i.e >= 0) + kpoint: |Kpoint| object. + band: band index. Global index in the band structure. (C convention, i.e >= 0). + tmesh: Temperature mesh in Kelvin. + e0: Initial KS energy. + qpe: Quasiparticle energy (complex) computed with the linearized perturbative approach (Z factor). + ze0: Renormalization factor Z computed at e = e0. + fan0: Fan term (complex) evaluated at e_KS + dw: Debye-Waller (static, real) + qpe_oms: Quasiparticle energy (real) in the on-the-mass-shell approximation: + qpe_oms = e0 + Sigma(e0) + + .. note:: + + Energies are in eV. + """ + + + def set_energies(self, wmesh, vals_wr, vals_e0ks, ntemp, nwr): + # Determination of the QP energies + for it in range(ntemp): + # Checking where Re Sigma(w) crosses with w => e^QP = e^KS ( set to 0.0 ) + Sigma( e^QP ) + idx = np.argwhere(np.diff(np.sign(vals_wr[it,nwr//4:3*nwr//4].real - wmesh[nwr//4:3*nwr//4] + self.e0))).flatten() + self.qpe[it] = self.e0 + vals_wr[it,idx] + # On-the-mass-shell QP energy = e^QP = e^KS ( set to 0.0 ) + Sigma(e^KS) + self.qpe_oms[it] = self.e0 + vals_e0ks[it] + + + +class CumulantEPhFile(SigEPhFile): + """ + This file contains the Green's Function using the cumulant expansion from a self-energy eph calculation, the |ElectronBands| on the k-mesh. + Provides methods to analyze and plot results. + + Usage example: + + .. code-block:: python + + SigmaEphFile = SigEPhFile("out_SIGEPH.nc") + with CumulantEPhFile("out_EPH_CUMULANT.nc", SigmaEphFile) as ncfile: + print(ncfile) + ncfile.ebands.plot() + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: CumulantEPhFile + """ + + @classmethod + def from_file(cls, filepath: str) -> CumulantEPhFile: + """Initialize the object from a netcdf file.""" + return cls(filepath) + + + def __init__(self, filepath): + self._filepath = filepath + self.reader = r = CumulantPhReader(filepath) + self.nkcalc = r.nkcalc + self.ntemp = r.ntemp + self.nqbz = r.nqbz + self.nqibz = r.nqibz + self.ngqpt = r.ngqpt + + + self.symsigma = -1 + + + def __str__(self): + """String representation.""" + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation.""" + lines = []; app = lines.append + + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + ##app("") + ##app(self.structure.to_string(verbose=verbose, title="Structure")) + #app("") + #app(self.ebands.to_string(with_structure=False, verbose=verbose, title="KS Electron Bands")) + app("") + # SigmaEPh section. + app(marquee("CumulantEPh calculation", mark="=")) + app("Number of k-points in Sigma_{nk}: %d" % (self.nkcalc)) + # These variables have added recently + sigma_ngkpt = self.reader.read_value("sigma_ngkpt", default=None) + sigma_erange = self.reader.read_value("sigma_erange", default=None) + #dvdb_add_lr = self.reader.read_value("dvdb_add_lr", default=None) + #app("sigma_ngkpt: %s, sigma_erange: %s" % (sigma_ngkpt, sigma_erange)) + app("Max bstart: %d, min bstop: %d" % (self.reader.max_bstart, self.reader.min_bstop)) + app("Initial ab-initio q-mesh:\n\tngqpt: %s, with nqibz: %s" % (str(self.ngqpt), self.nqibz)) + #eph_ngqpt_fine = self.reader.read_value("eph_ngqpt_fine") + #if np.all(eph_ngqpt_fine == 0): eph_ngqpt_fine = self.ngqpt + #app("q-mesh for self-energy integration (eph_ngqpt_fine): %s" % (str(eph_ngqpt_fine))) + #app("k-mesh for electrons:") + #app("\t" + self.ebands.kpoints.ksampling.to_string(verbose=verbose)) + #app("Number of bands included in e-ph self-energy sum: %d" % (self.nbsum)) + #app("zcut: %.5f (Ha), %.3f (eV)" % (self.zcut, self.zcut * abu.Ha_eV)) + app("Number of temperatures: %d, from %.1f to %.1f (K)" % (self.ntemp, self.tmesh[0], self.tmesh[-1])) + #app("symsigma: %s" % (self.symsigma)) + #app("Has Eliashberg function: %s" % (self.has_eliashberg_function)) + #app("Has Spectral function: %s" % (self.has_spectral_function)) + + # Build Table with direct gaps. Only the results for the first and the last T are shown if not verbose. + #if verbose: + # it_list = list(range(self.ntemp)) + #else: + # it_list = [0, -1] if self.ntemp != 1 else [0] + #app("\nPrinting QP results for %d temperatures. Use --verbose to print all results." % len(it_list)) + + # QP corrections + #for it in it_list: + # app("\nKS, QP (Z factor) and on-the-mass-shell (OTMS) direct gaps in eV for T = %.1f K:" % self.tmesh[it]) + # data = [] + # for ikc, kpoint in enumerate(self.sigma_kpoints): + # for spin in range(self.nsppol): + # ks_gap = self.ks_dirgaps[spin, ikc] + # qp_gap = self.qp_dirgaps_t[spin, ikc, it] + # oms_gap = self.qp_dirgaps_otms_t[spin, ikc, it] + # data.append([spin, repr(kpoint), ks_gap, qp_gap, qp_gap - ks_gap, oms_gap, oms_gap - ks_gap]) + # app(str(tabulate(data, + # headers=["Spin", "k-point", "KS_gap", "QPZ0_gap", "QPZ0 - KS", "OTMS_gap", "OTMS - KS"], + # floatfmt=".3f"))) + # app("") + #else: + # Print info on Lifetimes? + + #if verbose > 1: + # app("K-points and bands included in self-energy corrections:") + # for spin in range(self.nsppol): + # for ikc, kpoint in enumerate(self.sigma_kpoints): + # post = "ikc: %d" % (ikc if self.nsppol == 1 else "ikc: %d, spin: %d" % (ikc, spin)) + # app("\t%s: bstart: %d, bstop: %d, %s" % ( + # repr(kpoint), self.bstart_sk[spin, ikc], self.bstop_sk[spin, ikc], post)) + + return "\n".join(lines) + + def get_cumulant_skb(self, spin, kpoint, band): + """"Return e-ph self-energy for the given (spin, kpoint, band).""" + return self.reader.read_cumulant_skb(spin, kpoint, band) + + + + +class CumulantPhReader(SigmaPhReader): + """ + Reads data from file and constructs objects. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: CumulantPhReader + """ + + def __init__(self, path: str): + super().__init__(path) + + # Check if the cumulant function exists + # It is an optional output, mostly for debuging + # If it exists, then G(t) and time_mesh also exists + variables = self.read_varnames() + if "ct_vals" in variables: + self.ct_vals_exists = True + else: + self.ct_vals_exists = False + + def read_cumulant_skb(self, spin, kpoint, band): + """ + Returns the e-ph self energy for the given (spin, k-point, band). + + Args: + spin: Spin index + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or index. + band: band index. + + Return: :class:`EphSelfEnergy` object. + """ + if self.nwr == 0: + raise ValueError("%s does not contain spectral function data." % self.path) + + spin, ikc, ib, kpoint = self.get_sigma_skb_kpoint(spin, kpoint, band) + + # Abinit fortran (Ha units) + # real(dp) :: wrmesh_b(nwr, max_nbcalc, nkcalc, nsppol) + # Frequency mesh along the real axis (Ha units) used for the different bands + wmesh = self.read_variable("wrmesh_b")[spin, ikc, ib, :] * abu.Ha_eV + + # Set time mesh, cumulant function and green's function in time domain as None ( default ) + time_mesh =ct_vals = gt_vals = None + if self.ct_vals_exists: + # For debugging proposes read time mesh, cumulant function and green's function in time domain + + # real(dp) :: time_mesh(nwr, ntemp, max_nbcalc, nkcalc, nsppol) + # Time mesh (ps units) + time_mesh = self.read_variable("time_mesh")[spin,ikc,ib,:,:] + + # complex(dpc) :: ct_vals(complex, nwr, ntemp, max_nbcalc, nkcalc, nsppol) + # Cumulant function with respect to time + ct_vals = self.read_variable("ct_vals")[spin,ikc,ib,:,:,:] + ct_vals = ct_vals[:, :, 0] + 1j* ct_vals[:, :, 1] + + # complex(dpc) :: gt_vals(complex, nwr, ntemp, max_nbcalc, nkcalc, nsppol) + # Green's function with respect to time + gt_vals = self.read_variable("gt_vals")[spin,ikc,ib,:,:,:] + gt_vals = gt_vals[:,:, 0] + 1j*gt_vals[:, :, 1] + + # complex(dpc) :: gw_vals(nwr, ntemp, max_nbcalc, nkcalc, nsppol) + # Green's function in frequency domain + gw_vals = self.read_variable("gw_vals")[spin,ikc,ib,:,:,:] / abu.Ha_eV + gw_vals = gw_vals[:, :, 0] + 1j * gw_vals[:, :, 1] + + # Spectral function obtained from the Gren's function in frequency domain + spfunccumul_wr = -1.0*gw_vals[:, :].imag/np.pi + + # Read QP data. Note band instead of ib index. + qp = self.read_qp(spin, ikc, band) + + return CumulantSelfEnergy(wmesh, qp, gw_vals, spfunccumul_wr, time_mesh = time_mesh, ct_vals= ct_vals, gt_vals= gt_vals) + + + def read_qp(self, spin, kpoint, band, ignore_imag=False): + """ + Return :class:`QpTempState` for the given (spin, kpoint, band) + (NB: band is a global index i.e. unshifted) + Only real part is returned if ``ignore_imag``. + """ + spin, ikc, ibc, kpoint = self.get_sigma_skb_kpoint(spin, kpoint, band) + + # Quasi-particle energies set initially to zero + qpe = np.zeros((self.ntemp),dtype = complex) + qpe_oms = np.zeros((self.ntemp)) + + # Fan and Debbye-Waller self-energies set to zero + fan0 = np.zeros((self.ntemp),dtype = complex) + dw = np.zeros((self.ntemp)) + + # Renormalization of the Quasi-Particle set to zero + ze0 = 0.0 + + # real(dp) :: ks_enes( max_nbcalc, nkcalc, nsppol ) + # Kohn-Sham eigenvalues + e0 = self.read_variable("ks_enes")[spin, ikc, ibc] * abu.Ha_eV + + + return CumulantQpTempState(spin=spin, kpoint=kpoint, band=band, tmesh=self.tmesh, + e0=e0, qpe = qpe, ze0=ze0, fan0=fan0, dw=dw, qpe_oms = qpe_oms) + + + + + + +class CumulantSelfEnergy(EphSelfEnergy): + + + def __init__(self, wmesh, qp, gw_vals, spfunccumul_wr, time_mesh = None, ct_vals = None, gt_vals = None, + vals_e0ks=None, dvals_de0ks=None, dw_vals=None, + frohl_vals_e0ks=None, frohl_dvals_de0ks=None, frohl_spfunc_wr=None): + + # Set dimensions + ntemp = len(qp.tmesh) + nwr = len(wmesh) + + # In case of debugging, seting: + # Green's function in time domain, cumulant function and time mesh + self.gt_vals = gt_vals + self.ct_vals = ct_vals + self.time_mesh = time_mesh + + # Set Debye-Waller to zero, probably is the same as Dyson-Migdal since it is added + # separately from the cumulant calculation + dw_vals = np.zeros((ntemp)) + + # Calculation of the self-energy (vals_wr) + # Calculation of the self-energy evaluated at the KS energy (vals_e0ks) + # Calculation of the derivative of the self-energy evaluated at the KS energy (dvals_de0ks) + self.gw = gw_vals + vals_wr, vals_e0ks, dvals_de0ks = self.calculate_sigma_skb_fromgw(wmesh, qp, gw_vals) + + # Setting spectral function and Gre + self.spfunccumul_wr = spfunccumul_wr + + # Calculating QP energies + qp.set_energies(wmesh, vals_wr, vals_e0ks, ntemp, nwr) + + super().__init__(wmesh, qp, vals_e0ks, dvals_de0ks, dw_vals, vals_wr, spfunccumul_wr, + frohl_vals_e0ks=None, frohl_dvals_de0ks=None, frohl_spfunc_wr=None) + + + def calculate_sigma_skb_fromgw(self, wmesh, qp, gw_vals): + + # Initial setting + nwr = len(wmesh) + ntemp = len(qp.tmesh) + sigma = np.zeros((ntemp,nwr),dtype=complex) + e0ks = np.zeros((ntemp)) + de0ks = np.zeros((ntemp)) + + # Identify the index of the KS energy is located ( probably at nwr//2 ) + idx_e0 = np.argmin( np.abs(wmesh - qp.e0)) + + for it in range(ntemp): + # Use Dyson equations to determine self-energy, only good for energies close to KS + sigma[it,:] = wmesh[:]- qp.e0 - 1/gw_vals[it,:] + # Evaluate the self-energy at KS energy + e0ks[it] = sigma[it,idx_e0].real + # The derivative of the self-energy evaluated at the KS energy. + de0ks[it] = np.gradient(sigma[it,:].real, wmesh[1]-wmesh[0])[idx_e0] + return sigma, e0ks, de0ks + + @classmethod + def calculate_gw_from_sigeph_skb(cls, sigeph, time_tol = 1e-4): + + # Initialization + wmesh_init = sigeph.wmesh + sigma = sigeph.vals_wr + sigma0 = sigeph.vals_e0ks.real + e0 = sigeph.qp.e0 + nwr = sigeph.nwr + ntemp = sigeph.ntemp + qpe = np.zeros((ntemp),dtype = complex) + qpe_oms = np.zeros((ntemp)) + fan0 = np.zeros((ntemp),dtype = complex) + dw = np.zeros((ntemp)) + ze0 = 0.0 + qp = CumulantQpTempState(spin=sigeph.spin, kpoint=sigeph.kpoint, band=sigeph.band, tmesh=sigeph.tmesh, + e0=sigeph.qp.e0, qpe = qpe, ze0=ze0, fan0=fan0, dw=dw, qpe_oms = qpe_oms) + + + # Frequency mesh step + w_step = wmesh_init[1] - wmesh_init[0] + # Shift frequency mesh to set the KS energy close to 0.0, with principal value offseting the mesh slightly. + wmesh = wmesh_init - e0 - 0.5 * w_step + # Create the time mesh + t = np.linspace(0.0,1,nwr)*2*np.pi/w_step + # Time mesh step + t_step = t[1] - t[0] + gw = np.zeros((ntemp,nwr), dtype=complex) + + for itemp in range(ntemp): + #time_max = np.log(time_tol)/ ( -1.0 * np.abs(sigeph.vals_e0ks[itemp].imag)) + #Give warning if time_max < 2*np.pi/w_step + + + beta = np.abs( sigma[itemp].imag)/np.pi + + # Calculate the part of the cumulant function that can be Fourier Transformed + c1= fft((beta/(wmesh**2)),nwr)*w_step + + # The odd indexes give negative values + c1[1::2] = -1.0 * c1[1::2] + + # Other terms of the cumulant function + c2 = - 1j * t * sigma0 + c3 = -1.0 * np.trapz(beta/wmesh**2,x=wmesh) * np.ones(nwr) + + # Calculation of the cumulant function + Ct = c1 + c2 + c3 + + # Green's Function in time domain calculated with the cumulant function + Gt = -1j * np.exp(Ct) + + # Green's function in frequency domain + gw_temp = fftshift(ifft(Gt,nwr))*nwr*t_step + R = 0.5* Gt[0]*t_step + gw[itemp,:] = gw_temp - R + + # Spectral Function + spfunc = -1.0 * gw.imag / np.pi + + + return cls( wmesh_init, qp, gw, spfunc, time_mesh = t, ct_vals = c1+c2+c3, gt_vals = Gt ) + + diff --git a/abipy/eph/eph_plotter.py b/abipy/eph/eph_plotter.py index 1a968d74a..33a390f68 100644 --- a/abipy/eph/eph_plotter.py +++ b/abipy/eph/eph_plotter.py @@ -2,6 +2,8 @@ """ Objects to plot electronic, vibrational and e-ph properties. """ +from __future__ import annotations + import numpy as np from abipy.tools.plotting import (add_fig_kwargs, get_axarray_fig_plt, set_axlims, set_visible, ax_share) @@ -10,9 +12,10 @@ from abipy.dfpt.ddb import DdbFile from abipy.dfpt.phonons import PhbstFile, PhdosFile from abipy.eph.sigeph import SigEPhFile +from abipy.tools.typing import Figure -class EphPlotter(object): +class EphPlotter: """ This object provides methods to plot electron and phonons for a single system. An EphPlotter has: @@ -29,7 +32,7 @@ class EphPlotter(object): .. inheritance-diagram:: EphPlotter """ @classmethod - def from_ddb(cls, ddb, ebands_kpath, ebands_kmesh=None, **kwargs): + def from_ddb(cls, ddb, ebands_kpath, ebands_kmesh=None, **kwargs) -> EphPlotter: """ Build the object from the ddb file, invoke anaddb to get phonon properties. This entry point is needed to have phonon plots with LO-TO splitting @@ -60,7 +63,7 @@ def __init__(self, ebands_kpath, phbst_file, phdos_file, ebands_kmesh=None): self.phdos_file = PhdosFile(phdos_file) @add_fig_kwargs - def plot(self, eb_ylims=None, **kwargs): + def plot(self, eb_ylims=None, **kwargs) -> Figure: """ Plot electrons with possible (phonon-mediated) scattering channels for the CBM and VBM. Also plot phonon band structure and phonon PJDOS. @@ -101,7 +104,7 @@ def plot(self, eb_ylims=None, **kwargs): return fig @add_fig_kwargs - def plot_phonons_occ(self, temps=(100, 200, 300, 400), **kwargs): + def plot_phonons_occ(self, temps=(100, 200, 300, 400), **kwargs) -> Figure: """ Plot phonon band structure with markers proportional to the occupation of each phonon mode for different temperatures. @@ -130,7 +133,7 @@ def plot_phonons_occ(self, temps=(100, 200, 300, 400), **kwargs): return fig @add_fig_kwargs - def plot_linewidths_sigeph(self, sigeph, eb_ylims=None, **kwargs): + def plot_linewidths_sigeph(self, sigeph, eb_ylims=None, **kwargs) -> Figure: """ Plot e-bands + e-DOS + Im(Sigma_{eph}) + phonons + gkq^2 diff --git a/abipy/eph/gkq.py b/abipy/eph/gkq.py index 99caa39f7..67de9c1cf 100644 --- a/abipy/eph/gkq.py +++ b/abipy/eph/gkq.py @@ -2,39 +2,45 @@ Interface to the GKQ.nc file storing the e-ph matrix elements in the atomic representation (idir, ipert) for a single q-point. This file is produced by the eph code with eph_task -4. + To analyze the e-ph scattering potentials, use v1qavg and eph_task 15 or -15 """ +from __future__ import annotations + import numpy as np +import pandas as pd import abipy.core.abinit_units as abu from collections import OrderedDict from monty.string import marquee from monty.functools import lazy_property +from abipy.core.structure import Structure from abipy.core.kpoints import Kpoint from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt from abipy.tools import duck +from abipy.tools.typing import Figure, PathLike from abipy.abio.robots import Robot -from abipy.electrons.ebands import ElectronsReader, RobotWithEbands +from abipy.electrons.ebands import ElectronBands, ElectronsReader, RobotWithEbands from abipy.eph.common import glr_frohlich, EPH_WTOL class GkqFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter): @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: PathLike): """Initialize the object from a netcdf_ file.""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: PathLike): super().__init__(filepath) - self.reader = GkqReader(filepath) + self.r = GkqReader(filepath) - def __str__(self): + def __str__(self) -> str: """String representation.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation.""" lines = []; app = lines.append @@ -44,8 +50,10 @@ def to_string(self, verbose=0): app(self.structure.to_string(verbose=verbose, title="Structure")) app("") app(self.ebands.to_string(with_structure=False, verbose=verbose, title="Electronic Bands")) - app("qpoint: %s" % str(self.qpoint)) - app("Macroscopic dielectric tensor in Cartesian coordinates") + app("qpoint in g(k,q): %s" % str(self.qpoint)) + app("uses_interpolated_dvdb: %s" % str(self.uses_interpolated_dvdb)) + app("phonon frequencies in Ha %s:" % str(self.phfreqs_ha)) + app("Macroscopic dielectric tensor in Cartesian coordinates:") app(str(self.epsinf_cart)) app("") app("Born effective charges in Cartesian coordinates:") @@ -54,139 +62,236 @@ def to_string(self, verbose=0): app(str(bec)) app("") - app(r"Fulfillment of charge neutrality, F_{ij} = \sum_{atom} Z^*_{ij,atom}") + app(r"Fulfillment of charge neutrality, F_{ij} = \sum_{atom} Z^*_{ij,atom}:") f = np.sum(self.becs_cart, axis=0) app(str(f) + "\n") return "\n".join(lines) - def close(self): - self.reader.close() + def close(self) -> None: + self.r.close() @lazy_property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object.""" - return self.reader.read_ebands() + return self.r.read_ebands() @lazy_property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure @lazy_property - def uses_interpolated_dvdb(self): + def uses_interpolated_dvdb(self) -> bool: """True if the matrix elements have been computed with an interpolated potential.""" - return int(self.reader.read_value("interpolated")) == 1 + return int(self.r.read_value("interpolated")) == 1 @lazy_property - def params(self): + def params(self) -> dict: """Dict with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() return od @lazy_property - def qpoint(self): + def qpoint(self) -> Kpoint: """Q-point object.""" - return Kpoint(self.reader.read_value('qpoint'), self.structure.reciprocal_lattice) + return Kpoint(self.r.read_value('qpoint'), self.structure.reciprocal_lattice) @lazy_property - def phfreqs_ha(self): + def phfreqs_ha(self) -> np.ndarray: """(3 * natom) array with phonon frequencies in Ha.""" - return self.reader.read_value("phfreqs") + return self.r.read_value("phfreqs") @lazy_property - def phdispl_cart_bohr(self): - """(natom3_nu, natom3) complex array with phonon displacement in cartesian coordinates in Bohr.""" - return self.reader.read_value("phdispl_cart", cmode="c") + def phdispl_cart_bohr(self) -> np.ndarray: + """(natom3_nu, natom3) complex array with the phonon displacement in cartesian coordinates in Bohr.""" + return self.r.read_value("phdispl_cart", cmode="c") @lazy_property - def phdispl_red(self): - """(natom3_nu, natom3) complex array with phonon displacement in reduced coordinates.""" - return self.reader.read_value("phdispl_red", cmode="c") + def phdispl_red(self) -> np.ndarray: + """(natom3_nu, natom3) complex array with the phonon displacement in reduced coordinates.""" + return self.r.read_value("phdispl_red", cmode="c") @lazy_property - def becs_cart(self): + def becs_cart(self) -> np.ndarray: """(natom, 3, 3) array with the Born effective charges in Cartesian coordinates.""" - return self.reader.read_value("becs_cart").transpose(0, 2, 1).copy() + return self.r.read_value("becs_cart").transpose(0, 2, 1).copy() @lazy_property - def epsinf_cart(self): + def epsinf_cart(self) -> np.ndarray: """(3, 3) array with electronic macroscopic dielectric tensor in Cartesian coordinates.""" - return self.reader.read_value("emacro_cart").T.copy() + return self.r.read_value("emacro_cart").T.copy() @lazy_property - def eigens_kq(self): + def eigens_kq(self) -> np.ndarray: """(spin, nkpt, mband) array with eigenvalues on the k+q grid in eV.""" - return self.reader.read_value("eigenvalues_kq") * abu.Ha_eV + return self.r.read_value("eigenvalues_kq") * abu.Ha_eV + + @staticmethod + def _check_mode(mode: str) -> None: + """Check whether mode is allowed.""" + allowed_modes = ("atom", "phonon") + if mode not in allowed_modes: + raise ValueError(f"Invalid {mode=}, it should be in {allowed_modes=}") + + def read_gkq_kpoint(self, kpoint, mode: str = "phonon") -> np.ndarray: + """ + Read e-ph matrix stored on disk for all spins and the given k-point - def read_all_gkq(self, mode="phonon"): + Args: + kpoint: + mode: "phonon" for e-ph matrix elements in phonon representation, + "atom" for e-ph matrix elements in the atomic representation (idir, iatom). + + Return: complex array with shape: (nsppol, 3*natom, mband, mband) + m_kq, n_k <-- band indices. """ - Read all eph matrix stored on disk. + self._check_mode(mode) + + def read_all_gkq(self, mode: str = "phonon") -> np.ndarray: + """ + Read all e-ph matrix stored on disk. Args: - mode: "phonon" if for eph matrix elements in phonon representation, - "atom" for perturbation along (idir, iatom). + mode: "phonon" for e-ph matrix elements in phonon representation, + "atom" for e-ph matrix elements in the atomic representation (idir, iatom). - Return: (nsppol, nkpt, 3*natom, mband, mband) complex array. + Return: complex array with shape: (nsppol, nkpt, 3*natom, mband, mband) + m_kq, n_k <-- band indices. """ - if mode not in ("atom", "phonon"): - raise ValueError("Invalid mode: %s" % mode) - - # Read e-ph matrix element in the atomic representation (idir, ipert) - # Fortran array on disk has shape: - # nctkarr_t('gkq', "dp", & - # 'complex, max_number_of_states, max_number_of_states, number_of_phonon_modes, number_of_kpoints, number_of_spins') - gkq_atm = self.reader.read_value("gkq", cmode="c") - if mode == "atom": return gkq_atm - - # Convert from atomic to phonon representation. - # May use np.einsum for better efficiency but oh well! + self._check_mode(mode) + + # Read the e-ph matrix element in the atomic representation (idir, ipert). Fortran array on disk has shape: + # nctkarr_t('gkq', "dp", + # 'complex, max_number_of_states, max_number_of_states, number_of_phonon_modes, number_of_kpoints, number_of_spins') + # The first band index in Fortran refers to m_kq, the second one to n_k. + # hence we have to transpose the (nb_kq, nb_k) submatrix written by ABINIT. + gkq_atm = self.r.read_value("gkq", cmode="c").transpose(0, 1, 2, 4, 3).copy() + if mode == "atom": + return gkq_atm + + # Convert from atomic to phonon representation. May use np.einsum for better efficiency but oh well! nband = gkq_atm.shape[-1] - nb2 = nband ** 2 assert nband == gkq_atm.shape[-2] and nband == self.ebands.nband - natom = len(self.structure) - natom3 = natom * 3 + nb2, natom3 = nband ** 2, 3 * len(self.structure) phfreqs_ha, phdispl_red = self.phfreqs_ha, self.phdispl_red - gkq_nu = np.empty_like(gkq_atm) - cwork = np.empty((natom3, nb2), dtype=np.complex) + + gkq_nu, cwork = np.empty_like(gkq_atm), np.empty((natom3, nb2), dtype=complex) for spin in range(self.ebands.nsppol): for ik in range(self.ebands.nkpt): - g = np.reshape(gkq_atm[spin, ik], (-1, nb2)) + gc = np.reshape(gkq_atm[spin, ik], (-1, nb2)) for nu in range(natom3): - if phfreqs_ha[nu] > EPH_WTOL: - cwork[nu] = np.dot(phdispl_red[nu], g) / np.sqrt(2.0 * phfreqs_ha[nu]) - else: - cwork[nu] = 0.0 + cwork[nu] = np.dot(phdispl_red[nu], gc) / np.sqrt(2.0 * phfreqs_ha[nu]) if (phfreqs_ha[nu] > EPH_WTOL) else 0.0 gkq_nu[spin, ik] = np.reshape(cwork, (natom3, nband, nband)) return gkq_nu - #def get_averaged_gkq(self, spin, ik, band_k, band_kq, tol_deg=1e-3): - # natom3 = len(self.structure) * 3 - # e_k = self.ebands.eigens[spin, ik, band_k]) - # e_kq = self.eigens_kq[spin, ik, band_kq] - # e_k, ndeg_k, bids_k = _find_deg(spin, ik, self.ebands.eigens) - # e_kq, ndeg_kq, bids_kq = _find_deg(spin, ik, self.eigens_kq) - # - # gkq2_nu = np.zeros(natom3)) - # ncvar = abifile.reader.read_variable("gkq") - # for ib_k in bids_k: - # - # for ib_kq in bids_kq: - # gkq_atm = ncvar[spin, ik, :, ib_k, ib_kq] - # gkq_atm = gkq_atm[:, 0] + 1j * gkq_atm[:, 1] - # - # # Transform the gkk matrix elements from (atom, red_direction) basis to phonon-mode basis. - # gkq_nu = np.zeros(natom3), dtype=np.complex) - # for nu in range(natom3): - # if self.phfreqs_ha[nu] < eph_wtol: continue - # gkq_nu[nu] = np.dot(self.phdispl_red[nu], gkq_atm) / np.sqrt(2.0 * self.phfreqs_ha[nu]) - # gkq2_nu += np.abs(gkq_nu[nu]) ** 2 - # - # return np.sqrt(gkq2_nu) + def get_absg_kpoint(self, kpoint, eps_mev: float=0.01) -> tuple[np.ndarray, np.ndarray, int, Kpoint]: + """ + Args: + kpoint: |Kpoint| object or list/tuple with reduced coordinates or integer with the index + eps_mev: Tolerance in mev used to detect degeneracies + """ + if duck.is_intlike(kpoint): + ik = kpoint + kpoint = self.kpoints[ik] + else: + kpoint = Kpoint.as_kpoint(kpoint, self.structure.reciprocal_lattice) + ik = self.kpoints.index(kpoint) + + eps_ha = eps_mev / abu.Ha_meV + eps_ev = eps_ha * abu.Ha_eV + + nsppol = self.ebands.nsppol + natom3 = len(self.structure) * 3 + nb = self.ebands.nband + + phfreqs_ha = self.phfreqs_ha + eigens_k = self.ebands.eigens + eigens_kq = self.eigens_kq + + # (nsppol, nkpt, 3*natom, mband, mband) real array. + absg = np.abs(self.read_all_gkq(mode="phonon")) * abu.Ha_meV + absgk = absg[:,ik].copy() + absg_unsym = absg[:,ik].copy() + absg_sym = np.zeros_like(absgk) + + # Average over phonons. + for spin in range(nsppol): + g2_mn = np.zeros((nb, nb), dtype=float) + for nu in range(natom3): + w_1 = phfreqs_ha[nu] + g2_mn[:], nn = 0.0, 0 + for mu in range(natom3): + w_2 = phfreqs_ha[mu] + if abs(w_1 - w_2) >= eps_ha: continue + nn += 1 + g2_mn += absgk[spin,mu,:,:] ** 2 + absg_sym[spin,nu,:,:] = np.sqrt(g2_mn / nn) + + # Average over k electrons. + absg = absg_sym.copy() + g2_nu = np.zeros((natom3), dtype=float) + for spin in range(nsppol): + for jbnd in range(nb): + for ibnd in range(nb): + w_1 = eigens_k[spin, ik, ibnd] + g2_nu[:], nn = 0.0, 0 + for pbnd in range(nb): + w_2 = eigens_k[spin, ik, pbnd] + if abs(w_2 - w_1) >= eps_ev: continue + nn += 1 + # MG FIXME: Why absgk and not absg here as done below for k+q? + g2_nu += absgk[spin,:,jbnd,pbnd] ** 2 + absg_sym[spin,:,jbnd,ibnd] = np.sqrt(g2_nu / nn) + + # Average over k+q electrons. + absgk = absg_sym.copy() + for spin in range(nsppol): + for ibnd in range(nb): + for jbnd in range(nb): + w_1 = eigens_kq[spin, ik, jbnd] + g2_nu[:], nn = 0.0, 0 + for pbnd in range(nb): + w_2 = eigens_kq[spin, ik, pbnd] + if abs(w_2 - w_1) >= eps_ev: continue + nn += 1 + g2_nu += absgk[spin,:,pbnd,ibnd] ** 2 + absg_sym[spin,:,jbnd,ibnd] = np.sqrt(g2_nu / nn) + + return absg_sym, absg_unsym, ik, kpoint + + def get_qe_dataframe(self, kpoint) -> pd.DataFrame: + """ + Build and return a dataframe with |g(k,q)|^2 for the given k-point and all bands. + + Args: + kpoint: + """ + absg, absg_unsym, ik, kpoint = self.get_absg_kpoint(kpoint) + + # Now insert absg array in a pandas dataframe. + # Flatten the array, get the indices and combine indices and values into a DataFrame + shape, ndim = absg.shape, absg.ndim + indices = np.indices(shape).reshape(ndim, -1).T + df = pd.DataFrame(indices, columns=["spin", "imode", "m_kq", "n_k"]) + df["|g|[meV]"] = absg.flatten() + df["ik"] = ik + + # Add columns with phonon frequencies and electron energies in meV at k and k+q. + imodes = df["imode"].to_numpy() + df["omega(q)[meV]"] = (self.phfreqs_ha * abu.Ha_meV)[imodes] + spin_inds, mkq_inds, nk_inds = df["spin"].to_numpy(), df["m_kq"].to_numpy(), df["n_k"].to_numpy() + #print(self.ebands.eigens[spin_inds,ik,nk_inds].shape) + df["e_nk[eV]"] = self.ebands.eigens[spin_inds, ik, nk_inds] + df["e_mkq[eV]"] = self.eigens_kq[spin_inds, ik, mkq_inds] + + # Reorder the columns and drop the index + new_order = ["n_k", "m_kq", "spin", "imode", "e_nk[eV]", "e_mkq[eV]", "omega(q)[meV]", "|g|[meV]"] + return df[new_order].reset_index(drop=True) @add_fig_kwargs - def plot(self, mode="phonon", with_glr=True, fontsize=8, colormap="viridis", sharey=True, **kwargs): + def plot(self, mode="phonon", with_glr=True, fontsize=8, colormap="viridis", sharey=True, **kwargs) -> Figure: """ Plot the gkq matrix elements for a given q-point. @@ -215,7 +320,7 @@ def plot(self, mode="phonon", with_glr=True, fontsize=8, colormap="viridis", sha if with_glr and mode == "phonon": # Add horizontal bar with matrix elements computed from Verdi's model (only G = 0, \delta_nm in bands). dcart_bohr = self.phdispl_cart_bohr - #dcart_bohr = self.reader.read_value("phdispl_cart_qvers", cmode="c").real + #dcart_bohr = self.r.read_value("phdispl_cart_qvers", cmode="c").real gkq_lr = glr_frohlich(self.qpoint, self.becs_cart, self.epsinf_cart, dcart_bohr, self.phfreqs_ha, self.structure) # self.phdispl_cart_bohr, self.phfreqs_ha, self.structure) @@ -256,7 +361,7 @@ def plot(self, mode="phonon", with_glr=True, fontsize=8, colormap="viridis", sha return fig @add_fig_kwargs - def plot_diff_with_other(self, other, mode="phonon", ax_list=None, labels=None, fontsize=8, **kwargs): + def plot_diff_with_other(self, other, mode="phonon", ax_list=None, labels=None, fontsize=8, **kwargs) -> Figure: """ Produce scatter plot and histogram to compare the gkq matrix elements stored in two files. @@ -304,20 +409,17 @@ def plot_diff_with_other(self, other, mode="phonon", ax_list=None, labels=None, xs = np.arange(len(data)) ax = ax_list[0] - ax.scatter(xs, data, alpha=0.9, s=30, label=labels[0], - facecolors='none', edgecolors='orange') + ax.scatter(xs, data, alpha=0.9, s=30, label=labels[0], facecolors='none', edgecolors='orange') data = other_gkq[absdiff_gkq > threshold].ravel() - ax.scatter(xs, data, alpha=0.3, s=10, marker="x", label=labels[1], - facecolors="g", edgecolors="none") + ax.scatter(xs, data, alpha=0.3, s=10, marker="x", label=labels[1], facecolors="g", edgecolors="none") ax.grid(True) ax.set_xlabel("Matrix element index") ylabel = r"$|g^{atm}_{\bf q}|$" if mode == "atom" else r"$|g_{\bf q}|$ (meV)" ax.set_ylabel(ylabel) ax.set_title(r"qpt: %s, $\Delta$ > %.1E (%.1f %%)" % ( - repr(self.qpoint), threshold, 100 * nshown / ntot), - fontsize=fontsize) + repr(self.qpoint), threshold, 100 * nshown / ntot), fontsize=fontsize) ax.legend(loc="best", fontsize=fontsize, shadow=True) ax = ax_list[1] @@ -402,9 +504,16 @@ def _check_qpoints_equal(self): if abifile.qpoint != ref_qpoint: raise ValueError("Found different qpoint in %s" % str(abifile.filepath)) + #@add_fig_kwargs + #def plot_gkq2_qpath(self, band_kq, band_k, kpoint=0, with_glr=False, qdamp=None, nu_list=None, # spherical_average=False, + # ax=None, fontsize=8, eph_wtol=EPH_WTOL, **kwargs): + # ncols, nrows = 2, len(self) - 1 + # num_plots = ncols * nrows + # ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + @add_fig_kwargs def plot_gkq2_qpath(self, band_kq, band_k, kpoint=0, with_glr=False, qdamp=None, nu_list=None, # spherical_average=False, - ax=None, fontsize=8, eph_wtol=EPH_WTOL, **kwargs): + ax=None, fontsize=8, eph_wtol=EPH_WTOL, kq_labels=False, **kwargs) -> Figure: r""" Plot the magnitude of the electron-phonon matrix elements for a given set of (band_kq, band, k) as a function of the q-point. @@ -418,6 +527,7 @@ def plot_gkq2_qpath(self, band_kq, band_k, kpoint=0, with_glr=False, qdamp=None, nu_list: List of phonons modes to be selected (starts at 0). None to select all modes. ax: |matplotlib-Axes| or None if a new figure should be created. fontsize: Label and title fontsize. + kq_labels: If True, use the label associated to k+q instead of q. Return: |matplotlib-Figure| """ @@ -428,32 +538,36 @@ def plot_gkq2_qpath(self, band_kq, band_k, kpoint=0, with_glr=False, qdamp=None, kpoint = Kpoint.as_kpoint(kpoint, self.abifiles[0].structure.reciprocal_lattice) ik = self.kpoints.index(kpoint) - # Assume abifiles are already ordered according to q-path. + # Assume abifiles in the robot are already ordered according to q-path. xs = list(range(len(self.abifiles))) natom3 = len(self.abifiles[0].structure) * 3 nsppol = self.abifiles[0].nsppol nqpt = len(self.abifiles) - gkq_snuq = np.empty((nsppol, natom3, nqpt), dtype=np.complex) - if with_glr: gkq_lr = np.empty((nsppol, natom3, nqpt), dtype=np.complex) + gkq_snuq = np.empty((nsppol, natom3, nqpt), dtype=complex) + if with_glr: gkq_lr = np.empty((nsppol, natom3, nqpt), dtype=complex) - # TODO: Should take into account possible degeneracies in k and kq... + # TODO: Should take into account possible degeneracies in k and k+q and phonon modes. xticks, xlabels = [], [] for iq, abifile in enumerate(self.abifiles): qpoint = abifile.qpoint #d3q_fact = one if not spherical_average else np.sqrt(4 * np.pi) * qpoint.norm - name = qpoint.name if qpoint.name is not None else abifile.structure.findname_in_hsym_stars(qpoint) - if qpoint.name is not None: + if kq_labels: + name = abifile.structure.findname_in_hsym_stars(kpoint + qpoint) + else: + name = qpoint.name if qpoint.name is not None else abifile.structure.findname_in_hsym_stars(qpoint) + + if name is not None: xticks.append(iq) xlabels.append(name) phfreqs_ha, phdispl_red = abifile.phfreqs_ha, abifile.phdispl_red - ncvar = abifile.reader.read_variable("gkq") + ncvar = abifile.r.read_variable("gkq") for spin in range(nsppol): gkq_atm = ncvar[spin, ik, :, band_k, band_kq] gkq_atm = gkq_atm[:, 0] + 1j * gkq_atm[:, 1] - # Transform the gkk matrix elements from (atom, red_direction) basis to phonon-mode basis. + # Transform the gkq matrix elements from (atom, red_direction) basis to phonon-mode basis. gkq_snuq[spin, :, iq] = 0.0 for nu in range(natom3): if phfreqs_ha[nu] < eph_wtol: continue @@ -493,22 +607,8 @@ def plot_gkq2_qpath(self, band_kq, band_k, kpoint=0, with_glr=False, qdamp=None, return fig - #@add_fig_kwargs - #def plot_gkq2_qpath_with_robots(self, other_robots, all_labels, band_kq, band_k, kpoint=0, ax=None, **kwargs): - # if not isinstance(other_robots, (list, tuple)): - # raise TypeError("other_robots should be a list. Received: %s" % type(other_robots)) - # if len(all_labels) /= 1 + len(other_robots): - # raise ValueError("len(all_labels) should be equal to 1 + len(other_robots)") - - # ax, fig, plt = get_ax_fig_plt(ax=ax) - # #self.plot_gkq2_qpath(self, band_kq, band_k, kpoint=kpoint, - # # with_glr=False, qdamp=None, nu_list=None, # spherical_average=False, - # # ax=ax, fontsize=8, eph_wtol=EPH_WTOL, **kwargs): - - # return fig - @add_fig_kwargs - def plot_gkq2_diff(self, iref=0, **kwargs): + def plot_gkq2_diff(self, iref=0, **kwargs) -> Figure: """ Wraps gkq.plot_diff_with_other Produce scatter and histogram plot to compare the gkq matrix elements stored in all the files diff --git a/abipy/eph/gpath.py b/abipy/eph/gpath.py new file mode 100644 index 000000000..8a220aff9 --- /dev/null +++ b/abipy/eph/gpath.py @@ -0,0 +1,706 @@ +""" +This module contains objects for analyzing +the PATH.nc file with the e-ph matrix elements along a k/q path +""" +from __future__ import annotations + +import dataclasses +import numpy as np +import pandas as pd +import abipy.core.abinit_units as abu + +from monty.string import marquee +from monty.functools import lazy_property +#from monty.termcolor import cprint +from abipy.core.structure import Structure +from abipy.core.kpoints import Kpath +from abipy.core.mixins import AbinitNcFile, Has_Structure, NotebookWriter +from abipy.tools.typing import PathLike +#from abipy.tools.numtools import nparr_to_df +from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims, set_visible, + rotate_ticklabels, ax_append_title, set_ax_xylabels, linestyles, Marker, set_grid_legend, set_axlims) +from abipy.electrons.ebands import ElectronBands, RobotWithEbands +from abipy.dfpt.phonons import PhononBands +from abipy.dfpt.phtk import NonAnalyticalPh +from abipy.tools.typing import Figure +from abipy.abio.robots import Robot +from abipy.eph.common import BaseEphReader + + +def k2s(k_vector, fmt=".3f", threshold = 1e-8) -> str: + k_vector = np.asarray(k_vector) + k_vector[np.abs(k_vector) < threshold] = 0 + + return "[" + ", ".join(f"{x:.3f}" for x in k_vector) + "]" + + +class GpathFile(AbinitNcFile, Has_Structure, NotebookWriter): + """ + This file stores the e-ph matrix elements along a k/q path + and provides methods to analyze and plot results. + + Usage example: + + .. code-block:: python + + with GpathFile("out_GPATH.nc") as gpath: + print(gpath) + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GpathFile + """ + + @classmethod + def from_file(cls, filepath: PathLike) -> GpathFile: + """Initialize the object from a netcdf file.""" + return cls(filepath) + + def __init__(self, filepath: PathLike): + super().__init__(filepath) + self.r = GpathReader(filepath) + + @property + def structure(self) -> Structure: + """|Structure| object.""" + return self.r.structure + + @lazy_property + def ebands_k(self) -> ElectronBands: + """Electron bands along the k path.""" + return self.r.read_ebands_which_fixed("q") + + @lazy_property + def ebands_kq(self) -> ElectronBands: + """Electron bands along the k+q path as a function of q.""" + return self.r.read_ebands_which_fixed("k") + + @lazy_property + def phbands(self) -> PhononBands: + """Phonon bands along the q-path (nq_path points).""" + return self.r.read_phbands() + + def close(self) -> None: + """Close the file.""" + self.r.close() + + @lazy_property + def params(self) -> dict: + """dict with the convergence parameters, e.g. ``nbsum``.""" + #od = OrderedDict([ + # ("nbsum", self.nbsum), + # ("nqibz", self.r.nqibz), + #]) + ## Add EPH parameters. + #od.update(self.r.common_eph_params) + + od = {} + return od + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int=0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = []; app = lines.append + + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + app(self.structure.to_string(verbose=verbose, title="Structure")) + + app("") + if self.r.eph_fix_korq == "k": + app(self.ebands_kq.to_string(with_structure=False, verbose=verbose, title="Electronic Bands (kq)")) + if self.r.eph_fix_korq == "q": + app(self.ebands_k.to_string(with_structure=False, verbose=verbose, title="Electronic Bands (k)")) + + #app(f"gstore_cplex: {self.r.cplex}") + #app(f"gstore_qptopt: {self.r.qptopt}") + + return "\n".join(lines) + + @staticmethod + def _get_which_g_list(which_g: str) -> list[str]: + all_choices = ["avg", "raw"] + if which_g == "all": + return all_choices + + if which_g not in all_choices: + raise ValueError(f"Invalid {which=}, should be in {all_choices=}") + + return [which_g] + + def _get_band_range(self, band_range): + return (self.r.bstart, self.r.bstop) if band_range is None else band_range + + @add_fig_kwargs + def plot_g_qpath(self, band_range=None, which_g="avg", with_qexp: int=0, scale=1, gmax_mev=250, + ph_modes=None, with_phbands=True, with_ebands=False, + ax_mat=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the averaged |g(k,q)| in meV units along the q-path + + Args: + band_range: Band range that will be averaged over (python convention). + which_g: "avg" to plot the symmetrized |g|, "raw" for unsymmetrized |g|."all" for both. + with_qexp: Multiply |g(q)| by |q|^{with_qexp}. + scale: Scaling factor for the marker size used when with_phbands is True. + gmax_mev: Show results up to gmax in meV. + ph_modes: List of ph branch indices to show (start from 0). If None all modes are shown. + with_phbands: False if phonon bands should now be displayed. + with_ebands: False if electron bands should now be displayed. + ax_mat: List of |matplotlib-Axes| or None if a new figure should be created. + fontsize: fontsize for legends and titles + """ + which_g_list = self._get_which_g_list(which_g) + nrows, ncols = len(which_g_list) + int((np.array([with_ebands, with_phbands]) == True).sum()), self.r.nsppol + + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False) + marker_color = "gold" + band_range = self._get_band_range(band_range) + + #facts_q, g_label, g_units = self.get_info(which_g, with_qexp) + facts_q = np.ones(len(self.phbands.qpoints)) if with_qexp == 0 else \ + np.array([qpt.norm for qpt in self.phbands.qpoints]) ** with_qexp + + q_label = r"$|q|^{%d}$" % with_qexp if with_qexp else "" + g_units = "(meV)" if with_qexp == 0 else r"(meV $\AA^-{%s}$)" % with_qexp + + for spin in range(self.r.nsppol): + g_nuq_avg, g_nuq_raw = self.r.get_gnuq_average_spin(spin, band_range) + ax_cnt = -1 + + for which_g in which_g_list: + # Select ys according to which_g and multiply by facts_q + g_nuq = dict(avg=g_nuq_avg, raw=g_nuq_raw)[which_g] * facts_q[None,:] + + # Plot g_nu(q) + ax_cnt += 1 + ax = ax_mat[ax_cnt, spin] + for nu in range(self.r.natom3): + if ph_modes is not None and nu not in ph_modes: continue + ax.plot(g_nuq[nu], label=f"{nu=}") + self.phbands.decorate_ax(ax, units="meV") + g_label = r"$|g^{\text{%s}}_{\mathbf{q}}|$ %s" % (which_g, q_label) + set_grid_legend(ax, fontsize, ylabel="%s %s" % (g_label, g_units)) + + if gmax_mev is not None and with_qexp == 0: + set_axlims(ax, [0, gmax_mev], "y") + + if with_phbands: + # Plot phonons bands + averaged g(q) as markers + ax_cnt += 1 + x, y, s = [], [], [] + for iq, qpoint in enumerate(self.phbands.qpoints): + omegas_nu = self.phbands.phfreqs[iq,:] + for w, g2 in zip(omegas_nu, g_nuq_avg[:,iq], strict=True): + x.append(iq); y.append(w); s.append(scale * g2) + + label = r'$|g^{\text{avg}}_{\mathbf{q}}|$' if with_qexp == 0 else \ + r'$|g^{\text{avg}}_{\mathbf{q}}| |q|^{%s}$' % with_qexp + + points = Marker(x, y, s, color=marker_color, edgecolors='gray', alpha=0.8, label=label) + + ax = ax_mat[ax_cnt, spin] + self.phbands.plot(ax=ax, points=points, show=False) + set_grid_legend(ax, fontsize) #, xlabel=r"Wavevector $\mathbf{q}$") + + if with_ebands: + # Plot phonons bands + g(q) as markers + ax_cnt += 1 + ax = ax_mat[ax_cnt, spin] + self.ebands_kq.plot(ax=ax, spin=spin, band_range=band_range, with_gaps=False, show=False) + + # Add title. + if (kpt_name := self.structure.findname_in_hsym_stars(self.r.eph_fix_wavec)) is None: + qpt_name = k2s(self.r.eph_fix_wavec) + + fig.suptitle(f"k = {kpt_name}" + f" m, n = {band_range[0]} - {band_range[1] - 1}") + + return fig + + @add_fig_kwargs + def plot_g_kpath(self, band_range=None, which_g="avg", scale=1, gmax_mev=250, ph_modes=None, + with_ebands=True, ax_mat=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the averaged |g(k,q)| in meV units along the k-path + + Args: + band_range: Band range that will be averaged over (python convention). + which_g: "avg" to plot the symmetrized |g|, "raw" for unsymmetrized |g|."all" for both. + scale: Scaling factor for the marker size used when with_phbands is True. + gmax_mev: Show results up to gmax in meV. + ph_modes: List of ph branch indices to show (start from 0). If None all modes are show. + with_ebands: False if electron bands should now be displayed. + ax_mat: List of |matplotlib-Axes| or None if a new figure should be created. + fontsize: fontsize for legends and titles + """ + which_g_list = self._get_which_g_list(which_g) + nrows, ncols = len(which_g_list) + int((np.array([with_ebands]) == True).sum()), self.r.nsppol + + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False) + marker_color = "gold" + band_range = self._get_band_range(band_range) + + for spin in range(self.r.nsppol): + g_nuk_avg, g_nuk_raw = self.r.get_gnuk_average_spin(spin, band_range) + ax_cnt = -1 + + for which_g in which_g_list: + # Select ys according to which_g + g_nuk = dict(avg=g_nuk_avg, raw=g_nuk_raw)[which_g] + + # Plot g_nu(q) + ax_cnt += 1 + ax = ax_mat[ax_cnt, spin] + for nu in range(self.r.natom3): + if ph_modes is not None and nu not in ph_modes: continue + ax.plot(g_nuk[nu], label=f"{which_g} {nu=}") + + self.ebands_k.decorate_ax(ax, units="meV") + set_grid_legend(ax, fontsize, ylabel=r"$|g^{\text{%s}}_{\mathbf{k}}|$ (meV)" % (which_g)) + if gmax_mev is not None: + set_axlims(ax, [0, gmax_mev], "y") + + if with_ebands: + # Plot electron bands + ax_cnt += 1 + ax = ax_mat[ax_cnt, spin] + self.ebands_k.plot(ax=ax, spin=spin, band_range=band_range, with_gaps=False, show=False) + set_grid_legend(ax, fontsize) #, xlabel=r"Wavevector $\mathbf{q}$") + + if (qpt_name := self.structure.findname_in_hsym_stars(self.r.eph_fix_wavec)) is None: + qpt_name = k2s(self.r.eph_fix_wavec) + + fig.suptitle(f"q = {qpt_name}" + f" m, n = {band_range[0]} - {band_range[1] - 1}") + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + if self.r.eph_fix_korq == "k": + plt_kwargs = dict(with_phbands=True, with_ebands=True, show=False) + yield self.plot_g_qpath(with_qexp=1, **plt_kwargs) + yield self.plot_g_qpath(with_qexp=0, **plt_kwargs) + #yield self.ebands_kq.plot(show=False) + #yield self.phbands.plot(show=False) + + if self.r.eph_fix_korq == "q": + plt_kwargs = dict(with_ebands=True, show=False) + yield self.plot_g_kpath(**plt_kwargs) + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + nb.cells.extend([ + nbv.new_code_cell("gpath = abilab.abiopen('%s')" % self.filepath), + nbv.new_code_cell("print(gpath)"), + nbv.new_code_cell("gpath.ebands.plot();"), + nbv.new_code_cell("gpath.phbands.plot();"), + ]) + + return self._write_nb_nbpath(nb, nbpath) + + +class GpathReader(BaseEphReader): + """ + Reads data from file and constructs objects. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GpathReader + """ + def __init__(self, filepath: PathLike): + super().__init__(filepath) + + # Read important dimensions. + self.nsppol = self.read_dimvalue("nsppol") + self.natom = self.read_dimvalue("natom") + self.natom3 = self.read_dimvalue("natom3") + self.nb_in_g = self.read_dimvalue("nb_in_g") + self.nk_path = self.read_dimvalue("nk_path") + self.nq_path = self.read_dimvalue("nq_path") + + self.structure = self.read_structure() + + # eigens are in Ha, phfreq are in eV for historical reason + self.phfreqs_ha = self.read_value("phfreqs") + self.all_eigens_k = self.read_value("all_eigens_k") + self.all_eigens_kq = self.read_value("all_eigens_kq") + + # Read important variables. + self.eph_fix_korq = self.read_string("eph_fix_korq") + if self.eph_fix_korq not in {"k", "q"}: + raise ValueError(f"Invalid value for {self.eph_fix_korq=}") + self.eph_fix_wavec = self.read_value("eph_fix_wavevec") + self.dbdb_add_lr = self.read_value("dvdb_add_lr") + #self.used_ftinterp = self.read_value("used_ftinterp") + #self.completed = self.read_value("gstore_completed") + + # Note conversion Fortran --> C for the bstart index. + nband = self.read_dimvalue("nband") + self.bstart = self.read_value("bstart") - 1 + self.bstop = self.read_value("bstop") + self.band_range = [self.bstart, self.bstop] + + def read_ebands_which_fixed(self, which_fixed: str): + """ + Overrides method of superclass as we cannot rely of the etsf-io file format, + and we have to build the ebands manually. + """ + nspinor = self.read_dimvalue("nspinor") + nspden = self.read_dimvalue("nspden") + nelect = self.read_value("nelect") + fermie = self.read_value("fermie") * abu.Ha_eV + + structure = self.read_structure() + kpath_frac_coords = self.read_value("kpoints") + qpath_frac_coords = self.read_value("qpoints") + + # eigens are in Ha + if which_fixed == "k": + frac_coords = kpath_frac_coords + qpath_frac_coords + all_eigens = self.all_eigens_kq * abu.Ha_eV + elif which_fixed == "q": + frac_coords = kpath_frac_coords + all_eigens = self.all_eigens_k * abu.Ha_eV + else: + raise ValueError(f"Invalid value {which_fixed=}") + + occfacts = np.zeros_like(all_eigens) + path = Kpath(structure.lattice.reciprocal_lattice, frac_coords) + + #print(f"Before ElectronBands {len(path)=}, {all_eigens.shape=}") + #print(path) + + return ElectronBands(structure, path, all_eigens, fermie, occfacts, nelect, nspinor, nspden) + + def read_phbands(self) -> PhononBands: + """ + Read the phonon band structure along the q-path. + """ + amu_list = self.read_value("atomic_mass_units") + atomic_numbers = self.read_value("atomic_numbers") + amu = {at: a for at, a in zip(atomic_numbers, amu_list)} + + # phfreqs are in eV for historical reason + phfreqs = self.read_value("phfreqs") + # Complex array with the Cartesian displacements in **Angstrom** + phdispl_cart = self.read_value("phdispl_cart", cmode="c") * abu.Bohr_Ang + + structure = self.read_structure() + qpath_frac_coords = self.read_value("qpoints") + + path_qq = Kpath(structure.lattice.reciprocal_lattice, qpath_frac_coords, weights=None, names=None, ksampling=None) + + non_anal_ph = NonAnalyticalPh.from_ncreader(self) if "non_analytical_directions" in self.rootgrp.variables else None + + return PhononBands(structure=structure, qpoints=path_qq, phfreqs=phfreqs, phdispl_cart=phdispl_cart, amu=amu, + non_anal_ph=non_anal_ph, + # TODO ? + #epsinf=epsinf, + #zcart=zcart, + ) + + def get_gnuq_average_spin(self, spin: int, band_range: list|tuple|None, eps_mev: float=0.01) -> tuple: + """ + Average e-matrix elements over phonon modes, and k- k+q electrons when the matrix elements + have been computed along a q-path. + + Args: + spin: spin index + band_range: Band range that will be averaged over (python convention). + eps_mev: Tolerance in meV used to detect degeneracies for phonons and electrons. + + Return: + tuple with two numpy array + """ + # Consistency check + if self.nk_path != 1: + raise ValueError(f"{self.nk_path=} != 1. In this case, one cannot ask for q-dependent g(k,q)!") + + # Tolerences to detect degeneracies. + eps_ha = eps_mev / abu.Ha_meV + eps_ev = eps_ha * abu.Ha_eV + + # Number of m, n bands in g_mn, the first band starts at bstart. + nb_in_g = self.nb_in_g + bstart, bstop = self.bstart, self.bstop + nsppol, natom3 = self.nsppol, self.natom3 + + # double all_eigens_k(nsppol, nk_path, nband) ; + # double all_eigens_kq(nsppol, nq_path, nband) ; + all_eigens_k, all_eigens_kq = self.all_eigens_k, self.all_eigens_kq # eV units + phfreqs_ha = self.phfreqs_ha # Ha units + + # Now read the e-ph matrix elements. On disk we have + # n-index, m-index + # double gkq2_nu(nsppol, nk_path, nq_path, natom3, nb_in_g, nb_in_g) ; + # gkq2_nu:_FillValue = -1. ; + # + # in Ha^2 with nk_path == 1 + # m-index, n-index + # In memory we want: (nq_path, natom3, nb_in_g, nb_in_g) + + absg = np.sqrt(self.read_variable("gkq2_nu")[spin, 0][:].transpose(0, 1, 3, 2).copy()) * abu.Ha_meV + absg_raw = absg.copy() + + # Average over degenerate phonon modes. + absg_avg = np.zeros_like(absg) + for iq in range(self.nq_path): + for nu in range(natom3): + # Sum the squared values of absg over the degenerate phonon mu indices. + mask_nu = np.abs(phfreqs_ha[iq, :] - phfreqs_ha[iq, nu]) < eps_ha + g2_mn = np.sum(absg[iq, mask_nu, :, :]**2, axis=0) + # Compute the symmetrized value and divide by the number of degenerate ph-modes for this iq. + absg_avg[iq, nu, :, :] = np.sqrt(g2_mn / np.sum(mask_nu)) + + # MG FIXME: Note the difference with a similar function in gkq here I use absg and not absgk + # Average over degenerate k electrons taking bstart into account. + absg = absg_avg.copy() + g2_nu = np.zeros((natom3), dtype=float) + for iq in range(self.nq_path): + for m_kq in range(nb_in_g): + for n_k in range(nb_in_g): + w_1 = all_eigens_k[spin, 0, n_k + bstart] + g2_nu[:], nn = 0.0, 0 + for bsum_k in range(nb_in_g): + w_2 = all_eigens_k[spin, 0, bsum_k + bstart] + if abs(w_2 - w_1) >= eps_ev: continue + nn += 1 + g2_nu += absg[iq,:,m_kq,bsum_k] ** 2 + absg_avg[iq,:,m_kq,n_k] = np.sqrt(g2_nu / nn) + + # Average over degenerate k+q electrons taking bstart into account. + absg = absg_avg.copy() + for iq in range(self.nq_path): + for n_k in range(nb_in_g): + for m_kq in range(nb_in_g): + w_1 = all_eigens_kq[spin, iq, m_kq + bstart] + g2_nu[:], nn = 0.0, 0 + for bsum_kq in range(nb_in_g): + w_2 = all_eigens_kq[spin, iq, bsum_kq + bstart] + if abs(w_2 - w_1) >= eps_ev: continue + nn += 1 + g2_nu += absg[iq,:,bsum_kq,n_k] ** 2 + absg_avg[iq,:,m_kq,n_k] = np.sqrt(g2_nu / nn) + + # Transpose the data: (nq_path, natom3, nb_in_g, nb_in_g) -> (natom3, nq_path, nb_in_g, nb_in_g) + absg_avg, absg_raw = absg_avg.transpose(1, 0, 2, 3).copy(), absg_raw.transpose(1, 0, 2, 3).copy() + + # Slice the last two band dimensions if band_range is given in input. + nb = nb_in_g + if band_range is not None: + nb = band_range[1] - band_range[0] + b0, b1 = band_range[0] - bstart, band_range[1] - bstart + absg_avg, absg_raw = absg_avg[..., b0:b1, b0:b1], absg_raw[..., b0:b1, b0:b1] + + # Average over bands 1/n_b**2 sum_{mn} + return np.sum(absg_avg, axis=(-2, -1)) / nb**2, np.sum(absg_raw, axis=(-2, -1)) / nb**2 + + def get_gnuk_average_spin(self, spin: int, band_range: list|tuple|None, eps_mev: float=0.01) -> tuple: + """ + Average g elements over phonon modes, and k- k+q electrons when the matrix elements + have been computed along a k-path. + + Args: + spin: spin index + band_range: Band range that will be averaged over (python convention). + eps_mev: Tolerance in meV used to detect degeneracies for phonons and electrons. + + Return: + tuple with two numpy array + """ + # Consistency check + if self.nq_path != 1: + raise ValueError(f"{self.nq_path=} != 1. In this case, one cannot ask for l-dependent g(k,q)!") + + # Tolerences to detect degeneracies. + eps_ha = eps_mev / abu.Ha_meV + eps_ev = eps_ha * abu.Ha_eV + + # Number of m, n bands in g_mn, the first band starts at bstart. + nb_in_g = self.nb_in_g + bstart, bstop = self.bstart, self.bstop + nsppol, natom3 = self.nsppol, self.natom3 + + # double all_eigens_k(nsppol, nk_path, nband) ; + # double all_eigens_kq(nsppol, nq_path, nband) ; + all_eigens_k, all_eigens_kq = self.all_eigens_k, self.all_eigens_kq # eV units + phfreqs_ha = self.phfreqs_ha # Ha units + + # Now read the e-ph matrix elements. On disk we have + # n-index, m-index + # double gkq2_nu(nsppol, nk_path, nq_path, natom3, nb_in_g, nb_in_g) ; + # gkq2_nu:_FillValue = -1. ; + # + # in Ha^2 with nq_path == 1 + # m-index, n-index + # In memory we want: (nk_path, natom3, nb_in_g, nb_in_g) + + absg = np.sqrt(self.read_variable("gkq2_nu")[spin, :, 0, :, :,:][:].transpose(0, 1, 3, 2).copy()) * abu.Ha_meV + absg_raw = absg.copy() + + # Average over degenerate phonon modes for this q + iq = 0 + absg_avg = np.zeros_like(absg) + for ik in range(self.nk_path): + for nu in range(natom3): + # Sum the squared values of absg over the degenerate phonon mu indices. + mask_nu = np.abs(phfreqs_ha[iq, :] - phfreqs_ha[iq, nu]) < eps_ha + g2_mn = np.sum(absg[ik, mask_nu, :, :]**2, axis=0) + # Compute the symmetrized value and divide by the number of degenerate ph-modes for this iq. + absg_avg[ik, nu, :, :] = np.sqrt(g2_mn / np.sum(mask_nu)) + + # MG FIXME: Note the difference with a similar function in gkq here I use absg and not absgk + # Average over degenerate k electrons taking bstart into account. + absg = absg_avg.copy() + g2_nu = np.zeros((natom3), dtype=float) + for ik in range(self.nk_path): + for m_kq in range(nb_in_g): + for n_k in range(nb_in_g): + w_1 = all_eigens_k[spin, ik, n_k + bstart] + g2_nu[:], nn = 0.0, 0 + for bsum_k in range(nb_in_g): + w_2 = all_eigens_k[spin, ik, bsum_k + bstart] + if abs(w_2 - w_1) >= eps_ev: continue + nn += 1 + g2_nu += absg[ik,:,m_kq,bsum_k] ** 2 + absg_avg[ik,:,m_kq,n_k] = np.sqrt(g2_nu / nn) + + # Average over degenerate k+q electrons taking bstart into account. + absg = absg_avg.copy() + for n_k in range(nb_in_g): + for m_kq in range(nb_in_g): + w_1 = all_eigens_kq[spin, 0, m_kq + bstart] + g2_nu[:], nn = 0.0, 0 + for bsum_kq in range(nb_in_g): + w_2 = all_eigens_kq[spin, 0, bsum_kq + bstart] + if abs(w_2 - w_1) >= eps_ev: continue + nn += 1 + g2_nu += absg[ik,:,bsum_kq,n_k] ** 2 + absg_avg[ik,:,m_kq,n_k] = np.sqrt(g2_nu / nn) + + # Transpose the data: (nk_path, natom3, nb_in_g, nb_in_g) -> (natom3, nk_path, nb_in_g, nb_in_g) + absg_avg, absg_raw = absg_avg.transpose(1, 0, 2, 3).copy(), absg_raw.transpose(1, 0, 2, 3).copy() + + # Slice the last two band dimensions if band_range is given in input. + nb = nb_in_g + if band_range is not None: + nb = band_range[1] - band_range[0] + b0, b1 = band_range[0] - bstart, band_range[1] - bstart + absg_avg, absg_raw = absg_avg[..., b0:b1, b0:b1], absg_raw[..., b0:b1, b0:b1] + + # Average over bands 1/n_b**2 sum_{mn} + return np.sum(absg_avg, axis=(-2, -1)) / nb**2, np.sum(absg_raw, axis=(-2, -1)) / nb**2 + + +class GpathRobot(Robot, RobotWithEbands): + """ + This robot analyzes the results contained in multiple GPATH.nc files. + + Usage example: + + .. code-block:: python + + robot = GpathRobot.from_files([ + "t04o_GPATH.nc", + "t05o_GPATH.nc", + ]) + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GpathRobot + """ + EXT = "GPATH" + + @add_fig_kwargs + def plot_g_qpath(self, which_g="avg", gmax_mev=250, ph_modes=None, + colormap="jet", **kwargs) -> Figure: + """ + Compare the g-matrix along a q-path. + + Args + which_g: "avg" to plot the symmetrized |g|, "raw" for unsymmetrized |g|."all" for both. + gmax_mev: Show results up to gmax in me + ph_modes: List of ph branch indices to show (start from 0). If None all modes are show. + colormap: Color map. Have a look at the colormaps here and decide which one you like: + http://matplotlib.sourceforge.net/examples/pylab_examples/show_colormaps.html + """ + nsppol, nq_path, natom3, eph_fix_wavec, eph_fix_korq = self.getattrs_alleq( + "nsppol", "nq_path", "natom3", "eph_fix_wavec", "eph_fix_korq" + ) + xs = np.arange(nq_path) + + nrows, ncols = 1, nsppol + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False) + cmap = plt.get_cmap(colormap) + + # TODO: Compute common band range. + band_range = None + ref_ifile= 0 + #q_label = r"$|q|^{%d}$" % with_qexp if with_qexp else "" + #g_units = "(meV)" if with_qexp == 0 else r"(meV $\AA^-{%s}$)" % with_qexp + + for spin in range(nsppol): + ax_cnt = 0 + ax = ax_mat[ax_cnt, spin] + + for ifile, gpath in enumerate(self.abifiles): + g_nuq_avg, g_nuq_raw = gpath.r.get_gnuq_average_spin(spin, band_range) + # Select ys according to which_g and multiply by facts_q + g_nuq = dict(avg=g_nuq_avg, raw=g_nuq_raw)[which_g] # * facts_q[None,:] + + for nu in range(natom3): + if ph_modes is not None and nu not in ph_modes: continue + color = cmap(nu / natom3) + if ifile == ref_ifile: + ax.scatter(xs, g_nuq[nu], color=color, label=f"{nu=}", marker="o") + gpath.phbands.decorate_ax(ax, units="meV") + #g_label = r"$|g^{\text{%s}}_{\mathbf{q}}|$ %s" % (which_g, q_label) + #set_grid_legend(ax, fontsize, ylabel="%s %s" % (g_label, g_units)) + else: + ax.plot(g_nuq[nu], color=color, label=f"{nu=}") + + #if gmax_mev is not None and with_qexp == 0: + if gmax_mev is not None: + set_axlims(ax, [0, gmax_mev], "y") + + return fig + + #@add_fig_kwargs + #def plot_g_kpath(self, **kwargs) --> Figure + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + #for fig in self.get_ebands_plotter().yield_figs(): yield fig + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporary file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + args = [(l, f.filepath) for l, f in self.items()] + nb.cells.extend([ + #nbv.new_markdown_cell("# This is a markdown cell"), + nbv.new_code_cell("robot = abilab.GstoreRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), + #nbv.new_code_cell("ebands_plotter = robot.get_ebands_plotter()"), + ]) + + # Mixins + #nb.cells.extend(self.get_baserobot_code_cells()) + #nb.cells.extend(self.get_ebands_code_cells()) + + return self._write_nb_nbpath(nb, nbpath) diff --git a/abipy/eph/gstore.py b/abipy/eph/gstore.py new file mode 100644 index 000000000..db4c66526 --- /dev/null +++ b/abipy/eph/gstore.py @@ -0,0 +1,566 @@ +""" +This module contains objects for postprocessing e-ph calculations +using the results stored in the GSTORE.nc file. + +For a theoretical introduction see :cite:`Giustino2017` +""" +from __future__ import annotations + +import dataclasses +import numpy as np +import pandas as pd +#import abipy.core.abinit_units as abu + +from monty.string import marquee #, list_strings +from monty.functools import lazy_property +from monty.termcolor import cprint +from abipy.core.structure import Structure +from abipy.core.kpoints import kpoints_indices +from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, Has_Header #, NotebookWriter +from abipy.tools.typing import PathLike +from abipy.tools.numtools import BzRegularGridInterpolator, nparr_to_df +#from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims, set_visible, +# rotate_ticklabels, ax_append_title, set_ax_xylabels, linestyles) +#from abipy.tools import duck +from abipy.electrons.ebands import ElectronBands, RobotWithEbands +#from abipy.tools.typing import Figure +from abipy.abio.robots import Robot +from abipy.eph.common import BaseEphReader + + +def _allclose(arr_name, array1, array2, verbose: int, rtol=1e-5, atol=1e-8) -> bool: + """ + Wraps numpy allclose. + """ + if np.allclose(array1, array2, rtol=rtol, atol=atol): + if verbose: + cprint(f"The arrays for {arr_name} are almost equal within the tolerances {rtol=}, {atol=}", color="green") + return True + + if verbose: + cprint(f"The arrays for {arr_name} are not almost equal within the tolerances {rtol=}, {atol=}", color="red") + + #differing_indices = np.where(~np.isclose(array1, array2, atol=atol)) + #for index in zip(*differing_indices): + # print(f"Difference at index {index}: array1 = {array1[index]}, array2 = {array2[index]}, difference = {abs(array1[index] - array2[index])}") + return False + + +class GstoreFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands): # , NotebookWriter): + """ + This file stores the e-ph matrix elements produced by the EPH code of Abinit + and provides methods to analyze and plot results. + + Usage example: + + .. code-block:: python + + with GstoreFile("out_GSTORE.nc") as gstore: + print(gstore) + + for spin in range(gstore.nsppol): + # Extract the object storing the g for this spin. + gqk = gstore.gqk_spin[spin] + print(gqk) + + # Get a Dataframe with g(k, q) for all modes and bands. + df = gqk.get_gdf_at_qpt_kpt([1/2, 0, 0], [0, 0, 0]) + print(df) + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GstoreFile + """ + @classmethod + def from_file(cls, filepath: PathLike) -> GstoreFile: + """Initialize the object from a netcdf file.""" + return cls(filepath) + + def __init__(self, filepath: PathLike): + super().__init__(filepath) + self.r = GstoreReader(filepath) + + @lazy_property + def ebands(self) -> ElectronBands: + """|ElectronBands| object.""" + return self.r.read_ebands() + + @property + def structure(self) -> Structure: + """|Structure| object.""" + return self.ebands.structure + + def close(self) -> None: + """Close the file.""" + self.r.close() + + @lazy_property + def gqk_spin(self) -> list: + return [Gqk.from_gstore(self, spin) for spin in range(self.nsppol)] + + @lazy_property + def params(self) -> dict: + """dict with the convergence parameters, e.g. ``nbsum``.""" + #od = OrderedDict([ + # ("nbsum", self.nbsum), + # ("zcut", self.zcut), + # ("symsigma", self.symsigma), + # ("nqbz", self.r.nqbz), + # ("nqibz", self.r.nqibz), + #]) + ## Add EPH parameters. + #od.update(self.r.common_eph_params) + + od = {} + return od + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = []; app = lines.append + + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + app(self.structure.to_string(verbose=verbose, title="Structure")) + + app("") + app(self.ebands.to_string(with_structure=False, verbose=verbose, title="Electronic Bands")) + if verbose > 1: + app("") + app(self.hdr.to_string(verbose=verbose, title="Abinit Header")) + + app(f"nsppol: {self.r.nsppol}") + app(f"gstore_completed: {bool(self.r.completed)}") + app(f"gstore_cplex: {self.r.cplex}") + app(f"gstore_kzone: {self.r.kzone}") + app(f"gstore_kfilter: {self.r.kfilter}") + app(f"gstore_gmode: {self.r.gmode}") + app(f"gstore_qzone: {self.r.qzone}") + app(f"gstore_with_vk: {self.r.with_vk}") + app(f"gstore_kptopt: {self.r.kptopt}") + app(f"gstore_qptopt: {self.r.qptopt}") + for spin in range(self.r.nsppol): + app(f"gstore_brange_spin[{spin}]: {self.r.brange_spin[spin]}") + app(f"gstore_erange_spin[{spin}]: {self.r.erange_spin[spin]}") + app(f"gstore_glob_spin_nq[{spin}]: {self.r.glob_spin_nq[spin]}") + + return "\n".join(lines) + + def check_unfilled_entries_in_gvals(self): + """ + """ + r = self.r + cplex = r.cplex + for spin in range(self.nsppol): + # nctkarr_t("gvals", "dp", "gstore_cplex, nb_kq, nb_k, natom3, glob_nk, glob_nq) + variable = r.read_variable("gvals", path=f"gqk_spin{spin+1}") + fill_value = variable._FillValue + # Read the data + data = variable[:] + missing_entries = np.where(data == fill_value) + # Print the indices of missing entries + print("Missing entries found at indices:", missing_entries) + + if self.r.kfilter == "none": + raise ValueError("when kfilter == 'none' all the entries in gvals should have been written!") + + +@dataclasses.dataclass(kw_only=True) +class Gqk: + """ + This object stores the e-ph matrix elements (g or g^2) and the matrix elements + of the velocity operator for a given spin. + """ + cplex: int # 1 if |g|^2 is stored + # 2 if complex valued g (mind the gauge) + spin: int # Spin index. + nb: int # Number of bands + bstart: int + #bstop: int + + glob_nk: int # Total number of k/q points in global matrix. + glob_nq: int # Note that k-points/q-points can be filtered. + # Use kzone, qzone and kfilter to interpret these dimensions. + + gstore: GstoreFile + + gvals: np.ndarray | None + g2: np.ndarray | None + vk_cart_ibz: np.ndarray | None + vkmat_cart_ibz: np.ndarray | None + + @classmethod + def from_gstore(cls, gstore: GstoreFile, spin: int): + """ + Build an istance from a GstoreFile and the spin index. + """ + ncr = gstore.r + path = f"gqk_spin{spin+1}" + cplex = ncr.read_dimvalue("gstore_cplex") + nb = ncr.read_dimvalue("nb", path=path) + glob_nk = ncr.read_dimvalue("glob_nk", path=path) + glob_nq = ncr.read_dimvalue("glob_nq", path=path) + + # Read e-ph matrix elements + # nctkarr_t("gvals", "dp", "gstore_cplex, nb_kq, nb_k, natom3, glob_nk, glob_nq) + # Have to transpose the (nb_kq, nb_k) submatrix written by Fortran. + g2, gvals = None, None + if cplex == 1: + g2 = ncr.read_value("gvals", path=path).transpose(0, 1, 2, 4, 3, 5).copy() + + elif cplex == 2: + gvals = ncr.read_value("gvals", path=path).transpose(0, 1, 2, 4, 3, 5).copy() + gvals = gvals[...,0] + 1j*gvals[...,1] + + vk_cart_ibz, vkmat_cart_ibz = None, None + if ncr.with_vk == 1: + # nctk_def_arrays(spin_ncid, nctkarr_t("vk_cart_ibz", "dp", "three, nb, gstore_nkibz")) + vk_cart_ibz = ncr.read_value("vk_cart_ibz", path=path) + + if ncr.with_vk == 2: + # Full (nb x nb) matrix. + # Have to transpose (nb_kq, nb_k) submatrix written by Fortran. + # nctk_def_arrays(spin_ncid, nctkarr_t("vkmat_cart_ibz", "dp", "two, three, nb, nb, gstore_nkibz")) + vkmat_cart_ibz = ncr.read_value("vkmat_cart_ibz", path=path).transpose(0, 1, 3, 2, 4).copy() + vkmat_cart_ibz = vkmat_cart_ibz[...,0] + 1j*vkmat_cart_ibz[...,1] + + # Note conversion between Fortran and python indexing. + bstart = ncr.read_value("bstart", path=path) - 1 + #bstop = ncr.read_value("stop", path=path) + + data = locals() + return cls(**{k: data[k] for k in [field.name for field in dataclasses.fields(Gqk)]}) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = []; app = lines.append + + app(marquee(f"Gqk for spin: {self.spin}", mark="=")) + app(f"cplex: {self.cplex}") + app(f"nb: {self.nb}") + app(f"bstart: {self.bstart}") + app(f"glob_nk: {self.glob_nk}") + app(f"glob_nq: {self.glob_nq}") + + return "\n".join(lines) + + @property + def structure(self): + return self.gstore.structure + + def get_dataframe(self, what: str = "g2") -> pd.DataFrame: + """ + Build and return a dataframe with all the |g(k,q)|^2 if what == "g2" or + all |v_nk|^2 if what == "v2". + """ + if what == "g2": + g2 = self.g2 if self.g2 is not None else np.abs(self.gvals) ** 2 + df = nparr_to_df("g2", g2, ["iq", "ik", "imode", "m_kq", "n_k"]) + + elif what == "v2": + if self.vk_cart_ibz is None: + raise ValueError("vk_cart_ibz is not available in GSTORE!") + # Compute the squared norm of each vector + v2 = np.sum(self.vk_cart_ibz ** 2, axis=2) + df = nparr_to_df("v2", v2, ["ik", "n_k"]) + + else: + raise ValueError(f"Invalid {what=}") + + #df["m_kq"] += bstart_mkq + #df["n_k"] += bstart_nk + + return df + + def get_g2q_interpolator_kpoint(self, kpoint, method="linear", check_mesh=1): + """ + """ + r = self.gstore.r + + # Find the index of the kpoint. + ik_g, kpoint = r.find_ik_glob_kpoint(kpoint, self.spin) + + # Compute indices of qpoints in the ngqpt mesh. + ngqpt, shifts = r.ngqpt, [0, 0, 0] + q_indices = kpoints_indices(r.qbz, ngqpt, check_mesh=check_mesh) + + natom3 = 3 * len(self.structure) + nb = self.nb + nx, ny, nz = ngqpt + + # (glob_nq, glob_nk, natom3, m_kq, n_k) + g2 = self.g2 if self.g2 is not None else np.abs(self.gvals) ** 2 + g2_qph_mn = g2[:,ik_g] + + # Insert g2 in g2_grid + g2_grid = np.empty((nb, nb, natom3, nx, ny, nz)) + for nu in range(natom3): + for g2_mn, q_inds in zip(g2_qph_mn[:,nu], q_indices): + ix, iy, iz = q_inds + g2_grid[:, :, nu, ix, iy, iz] = g2_mn + + return BzRegularGridInterpolator(self.structure, shifts, g2_grid, method=method) + + def get_g_qpt_kpt(self, qpoint, kpoint, what) -> np.ndarray: + """ + Return numpy array with e-ph matrix elements the for the given (qpoint, kpoint) pair. + + Args: + what="g2" for |g(k,q)|^2, "g" for g(k,q) + """ + # Find the internal indices of (qpoint, kpoint) + iq_g, qpoint = self.gstore.r.find_iq_glob_qpoint(qpoint, self.spin) + ik_g, kpoint = self.gstore.r.find_ik_glob_kpoint(kpoint, self.spin) + if what == "g2": + g2 = self.g2 if self.g2 is not None else np.abs(self.gvals) ** 2 + return g2[iq_g, ik_g] + if what == "g": + if self.cplex != 2: + raise ValueError("Gstore file stores g2 instead of complex g") + return self.gvals[iq_g, ik_g] + + raise ValueError(f"Invalid {what=}") + + def get_gdf_at_qpt_kpt(self, qpoint, kpoint, what="g2") -> pd.DataFrame: + """ + Build and return a dataframe with the |g(k,q)|^2 for the given (qpoint, kpoint) pair. + + Args: + what="g2" for |g(k,q)|^2, "g" for g(k,q) + """ + g2_slice = self.get_g_qpt_kpt(qpoint, kpoint, what) + df = nparr_to_df(what, g2_slice, ["imode", "m_kq", "n_k"]) + #df["m_kq"] += bstart_mkq + #df["n_k"] += bstart_nk + + return df + + def neq(self, other: Gqk, verbose: int) -> int: + """ + Helper function to compare two GQK objects. + """ + # This dimensions must agree in order to have a meaningfull comparison. + # so raise immediately if not equal. + aname_list = ["cplex", "spin", "nb", "glob_nk", "glob_nq"] + + for aname in aname_list: + val1, val2 = getattr(self, aname), getattr(other, aname) + + if isinstance(val1, (str, int, float)): + eq = val1 == val2 + elif isinstance(val1, np.ndarray): + eq = np.allclose(val1, val2) + else: + raise TypeError(f"Don't know how to handle comparison for type: {type(val1)}") + + if not eq: + raise RuntimeError(f"Different values of {aname=}, {val1=}, {val2=}") + + ierr = 0 + kws = dict(verbose=verbose) # , atol= rtol) + + # Compare v_nk or v_mn_k. + if self.vk_cart_ibz is not None: + if not _allclose("vk_cart_ibz", self.vk_cart_ibz, other.vk_cart_ibz, **kws): ierr += 1 + + if self.vkmat_cart_ibz is not None: + if not _allclose("vkmat_cart_ibz", self.vkmat_cart_ibz, other.vkmat_cart_ibz, **kws): ierr += 1 + + # Compare g or g^2. + if self.g2 is not None: + if not _allclose("g2", self.g2, other.g2, **kws): ierr += 1 + + if self.gvals is not None: + if not _allclose("gvals", self.gvals, other.gvals, **kws): ierr += 1 + + return ierr + + +class GstoreReader(BaseEphReader): + """ + Reads data from file and constructs objects. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GstoreReader + """ + def __init__(self, filepath: PathLike): + super().__init__(filepath) + + # Read important dimensions. + self.nsppol = self.read_dimvalue("number_of_spins") + self.cplex = self.read_dimvalue("gstore_cplex") + self.nkbz = self.read_dimvalue("gstore_nkbz") + self.nkibz = self.read_dimvalue("gstore_nkibz") + self.nqbz = self.read_dimvalue("gstore_nqbz") + self.nqibz = self.read_dimvalue("gstore_nqibz") + + # Read important variables. + self.completed = self.read_value("gstore_completed") + self.done_spin_qbz = self.read_value("gstore_done_qbz_spin") + self.with_vk = self.read_value("gstore_with_vk") + self.qptopt = self.read_value("gstore_qptopt") + self.kptopt = self.read_value("kptopt") + self.kzone = self.read_string("gstore_kzone") + self.qzone = self.read_string("gstore_qzone") + self.kfilter = self.read_string("gstore_kfilter") + self.gmode = self.read_string("gstore_gmode") + + # Note conversion Fortran --> C for the isym index. + self.brange_spin = self.read_value("gstore_brange_spin") + self.brange_spin[:,0] -= 1 + self.erange_spin = self.read_value("gstore_erange_spin") + # Total number of k/q points for each spin after filtering (if any) + self.glob_spin_nq = self.read_value("gstore_glob_nq_spin") + self.glob_nk_spin = self.read_value("gstore_glob_nk_spin") + + # K-points and q-points in the IBZ + self.kibz = self.read_value("reduced_coordinates_of_kpoints") + self.qibz = self.read_value("gstore_qibz") + + # K-points and q-points in the BZ + self.kbz = self.read_value("gstore_kbz") + self.qbz = self.read_value("gstore_qbz") + self.ngqpt = self.read_value("gstore_ngqpt") + + # Mapping BZ --> IBZ. Note conversion Fortran --> C for the isym index. + # nctkarr_t("gstore_kbz2ibz", "i", "six, gstore_nkbz"), & + # nctkarr_t("gstore_qbz2ibz", "i", "six, gstore_nqbz"), & + self.kbz2ibz = self.read_value("gstore_kbz2ibz") + self.kbz2ibz[:,0] -= 1 + + self.qbz2ibz = self.read_value("gstore_qbz2ibz") + self.qbz2ibz[:,0] -= 1 + + # Mapping q/k points in gqk --> BZ. Note conversion Fortran --> C for indexing. + # nctkarr_t("gstore_qglob2bz", "i", "gstore_max_nq, number_of_spins"), & + # nctkarr_t("gstore_kglob2bz", "i", "gstore_max_nk, number_of_spins") & + self.qglob2bz = self.read_value("gstore_qglob2bz") + self.qglob2bz -= 1 + self.kglob2bz = self.read_value("gstore_kglob2bz") + self.kglob2bz -= 1 + + def find_iq_glob_qpoint(self, qpoint, spin: int): + """ + Find the internal index of the qpoint needed to access the gvals array. + """ + qpoint = np.asarray(qpoint) + for iq_g, iq_bz in enumerate(self.qglob2bz[spin]): + if np.allclose(qpoint, self.qbz[iq_bz]): + #print(f"Found {qpoint = } with index {iq_g = }") + return iq_g, qpoint + + raise ValueError(f"Cannot find {qpoint = } in GSTORE.nc") + + def find_ik_glob_kpoint(self, kpoint, spin: int): + """Find the internal indices of the kpoint needed to access the gvals array.""" + kpoint = np.asarray(kpoint) + for ik_g, ik_bz in enumerate(self.kglob2bz[spin]): + if np.allclose(kpoint, self.kbz[ik_bz]): + #print(f"Found {kpoint = } with index {ik_g = }") + return ik_g, kpoint + + raise ValueError(f"Cannot find {kpoint = } in GSTORE.nc") + + # TODO: This fix to read groups should be imported in pymatgen. + @lazy_property + def path2group(self) -> dict: + return self.rootgrp.groups + + +class GstoreRobot(Robot, RobotWithEbands): + """ + This robot analyzes the results contained in multiple GSTORE.nc files. + + Usage example: + + .. code-block:: python + + robot = GstoreRobot.from_files([ + "t04o_GSTORE.nc", + "t05o_GSTORE.nc", + ]) + + robot.neq(verbose=1) + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GstoreRobot + """ + EXT = "GSTORE" + + def neq(self, ref_basename: str | None = None, verbose: int = 0) -> int: + """ + Compare all GSTORE.nc files stored in the GstoreRobot + """ + # Find reference gstore. By default the first file in the robot is used. + ref_gstore = self._get_ref_abifile_from_basename(ref_basename) + + exc_list = [] + ierr = 0 + for other_gstore in self.abifiles: + if ref_gstore.filepath == other_gstore.filepath: + continue + print("Comparing: ", ref_gstore.basename, " with: ", other_gstore.basename) + try: + ierr += self._neq_two_gstores(ref_gstore, other_gstore, verbose) + cprint("EQUAL", color="green") + except Exception as exc: + exc_list.append(str(exc)) + + for exc in exc_list: + cprint(exc, color="red") + + return ierr + + @staticmethod + def _neq_two_gstores(gstore1: GstoreFile, gstore2: GstoreFile, verbose: int) -> int: + """ + Helper function to compare two GSTORE files. + """ + # These quantities must be the same to have a meaningfull comparison. + aname_list = ["structure", "nsppol", "cplex", "nkbz", "nkibz", + "nqbz", "nqibz", "completed", "kzone", "qzone", "kfilter", "gmode", + "brange_spin", "erange_spin", "glob_spin_nq", "glob_nk_spin", + ] + + for aname in aname_list: + self._compare_attr_name(aname, gstore1, gstore2) + + # Now compare the gkq objects for each spin. + ierr = 0 + for spin in range(gstore1.nsppol): + gqk1, gqk2 = gstore1.gqk_spin[spin], gstore2.gqk_spin[spin] + ierr += gqk1.neq(gqk2, verbose) + + return ierr + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + #for fig in self.get_ebands_plotter().yield_figs(): yield fig + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporary file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + args = [(l, f.filepath) for l, f in self.items()] + nb.cells.extend([ + #nbv.new_markdown_cell("# This is a markdown cell"), + nbv.new_code_cell("robot = abilab.GstoreRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), + #nbv.new_code_cell("ebands_plotter = robot.get_ebands_plotter()"), + ]) + + # Mixins + #nb.cells.extend(self.get_baserobot_code_cells()) + #nb.cells.extend(self.get_ebands_code_cells()) + + return self._write_nb_nbpath(nb, nbpath) diff --git a/abipy/eph/gwan.py b/abipy/eph/gwan.py new file mode 100644 index 000000000..0135c7080 --- /dev/null +++ b/abipy/eph/gwan.py @@ -0,0 +1,524 @@ +""" +This module contains objects for analyzing +the GWAN.nc file with the e-ph vertex in the Wannier representation. + +For a theoretical introduction see :cite:`Giustino2017` +""" +from __future__ import annotations + +import dataclasses +import numpy as np +import pandas as pd +#import abipy.core.abinit_units as abu + +from monty.string import marquee #, list_strings +from monty.functools import lazy_property +from monty.termcolor import cprint +from abipy.core.structure import Structure +from abipy.core.kpoints import kpoints_indices +from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, Has_Header #, NotebookWriter +from abipy.tools.typing import PathLike +from abipy.tools.numtools import BzRegularGridInterpolator, nparr_to_df +#from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims, set_visible, +# rotate_ticklabels, ax_append_title, set_ax_xylabels, linestyles) +#from abipy.tools import duck +from abipy.electrons.ebands import ElectronBands, RobotWithEbands +#from abipy.tools.typing import Figure +from abipy.abio.robots import Robot +from abipy.eph.common import BaseEphReader + + +class GwanFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands): # , NotebookWriter): + """ + This file stores the e-ph matrix elements in the wannier representation + and provides methods to analyze and plot results. + + Usage example: + + .. code-block:: python + + with GwanFile("out_GWAN.nc") as gwan: + print(gwan) + + for spin in range(gwan.nsppol): + # Extract the object storing the g for this spin. + #gqk = gstore.gqk_spin[spin] + #print(gqk) + + # Get a Dataframe with g(k, q) for all modes and bands. + #df = gqk.get_gdf_at_qpt_kpt([1/2, 0, 0], [0, 0, 0]) + #print(df) + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GwanFile + """ + @classmethod + def from_file(cls, filepath: PathLike) -> GwanFile: + """Initialize the object from a netcdf file.""" + return cls(filepath) + + def __init__(self, filepath: PathLike): + super().__init__(filepath) + self.r = GwanReader(filepath) + + @lazy_property + def ebands(self) -> ElectronBands: + """|ElectronBands| object.""" + return self.r.read_ebands() + + @property + def structure(self) -> Structure: + """|Structure| object.""" + return self.ebands.structure + + def close(self) -> None: + """Close the file.""" + self.r.close() + + #@lazy_property + #def gqk_spin(self) -> list: + # return [Gqk.from_gstore(self, spin) for spin in range(self.nsppol)] + + @lazy_property + def params(self) -> dict: + """dict with the convergence parameters, e.g. ``nbsum``.""" + #od = OrderedDict([ + # ("nbsum", self.nbsum), + # ("nqibz", self.r.nqibz), + #]) + ## Add EPH parameters. + #od.update(self.r.common_eph_params) + + od = {} + return od + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = []; app = lines.append + + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + app(self.structure.to_string(verbose=verbose, title="Structure")) + + app("") + app(self.ebands.to_string(with_structure=False, verbose=verbose, title="Electronic Bands")) + if verbose > 1: + app("") + app(self.hdr.to_string(verbose=verbose, title="Abinit Header")) + + app(f"nsppol: {self.r.nsppol}") + app(f"gstore_completed: {bool(self.r.completed)}") + app(f"gstore_cplex: {self.r.cplex}") + app(f"gstore_kptopt: {self.r.kptopt}") + app(f"gstore_qptopt: {self.r.qptopt}") + #for spin in range(self.r.nsppol): + # app(f"gstore_brange_spin[{spin}]: {self.r.brange_spin[spin]}") + # app(f"gstore_erange_spin[{spin}]: {self.r.erange_spin[spin]}") + # app(f"gstore_glob_spin_nq[{spin}]: {self.r.glob_spin_nq[spin]}") + + return "\n".join(lines) + + #def write_epw_hdf5(self, filepath: PathLike) -> None: + + +@dataclasses.dataclass(kw_only=True) +class Gqk: + """ + This object stores the e-ph matrix elements (g or g^2) and the matrix elements + of the velocity operator for a given spin. + """ + cplex: int # 1 if |g|^2 is stored + # 2 if complex valued g (mind the gauge) + spin: int # Spin index. + nb: int # Number of bands + bstart: int + #bstop: int + + glob_nk: int # Total number of k/q points in global matrix. + glob_nq: int # Note that k-points/q-points can be filtered. + # Use kzone, qzone and kfilter to interpret these dimensions. + + gstore: GstoreFile + + gvals: np.ndarray | None + g2: np.ndarray | None + vk_cart_ibz: np.ndarray | None + vkmat_cart_ibz: np.ndarray | None + + @classmethod + def from_gstore(cls, gstore: GstoreFile, spin: int): + """ + Build an istance from a GstoreFile and the spin index. + """ + ncr = gstore.r + path = f"gqk_spin{spin+1}" + cplex = ncr.read_dimvalue("gstore_cplex") + nb = ncr.read_dimvalue("nb", path=path) + glob_nk = ncr.read_dimvalue("glob_nk", path=path) + glob_nq = ncr.read_dimvalue("glob_nq", path=path) + + # Read e-ph matrix elements + # nctkarr_t("gvals", "dp", "gstore_cplex, nb_kq, nb_k, natom3, glob_nk, glob_nq) + # Have to transpose the (nb_kq, nb_k) submatrix written by Fortran. + g2, gvals = None, None + if cplex == 1: + g2 = ncr.read_value("gvals", path=path).transpose(0, 1, 2, 4, 3, 5).copy() + + elif cplex == 2: + gvals = ncr.read_value("gvals", path=path).transpose(0, 1, 2, 4, 3, 5).copy() + gvals = gvals[...,0] + 1j*gvals[...,1] + + vk_cart_ibz, vkmat_cart_ibz = None, None + if ncr.with_vk == 1: + # nctk_def_arrays(spin_ncid, nctkarr_t("vk_cart_ibz", "dp", "three, nb, gstore_nkibz")) + vk_cart_ibz = ncr.read_value("vk_cart_ibz", path=path) + + if ncr.with_vk == 2: + # Full (nb x nb) matrix. + # Have to transpose (nb_kq, nb_k) submatrix written by Fortran. + # nctk_def_arrays(spin_ncid, nctkarr_t("vkmat_cart_ibz", "dp", "two, three, nb, nb, gstore_nkibz")) + vkmat_cart_ibz = ncr.read_value("vkmat_cart_ibz", path=path).transpose(0, 1, 3, 2, 4).copy() + vkmat_cart_ibz = vkmat_cart_ibz[...,0] + 1j*vkmat_cart_ibz[...,1] + + # Note conversion between Fortran and python indexing. + bstart = ncr.read_value("bstart", path=path) - 1 + #bstop = ncr.read_value("stop", path=path) + + data = locals() + return cls(**{k: data[k] for k in [field.name for field in dataclasses.fields(Gqk)]}) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = []; app = lines.append + + app(marquee(f"Gqk for spin: {self.spin}", mark="=")) + app(f"cplex: {self.cplex}") + app(f"nb: {self.nb}") + app(f"bstart: {self.bstart}") + app(f"glob_nk: {self.glob_nk}") + app(f"glob_nq: {self.glob_nq}") + + return "\n".join(lines) + + @property + def structure(self): + return self.gstore.structure + + def get_dataframe(self, what: str = "g2") -> pd.DataFrame: + """ + Build and return a dataframe with all the |g(k,q)|^2 if what == "g2" or + all |v_nk|^2 if what == "v2". + """ + if what == "g2": + g2 = self.g2 if self.g2 is not None else np.abs(self.gvals) ** 2 + df = nparr_to_df("g2", g2, ["iq", "ik", "imode", "m_kq", "n_k"]) + + elif what == "v2": + if self.vk_cart_ibz is None: + raise ValueError("vk_cart_ibz is not available in GSTORE!") + # Compute the squared norm of each vector + v2 = np.sum(self.vk_cart_ibz ** 2, axis=2) + df = nparr_to_df("v2", v2, ["ik", "n_k"]) + + else: + raise ValueError(f"Invalid {what=}") + + #df["m_kq"] += bstart_mkq + #df["n_k"] += bstart_nk + + return df + + def get_g2q_interpolator_kpoint(self, kpoint, method="linear", check_mesh=1): + """ + """ + r = self.gstore.r + + # Find the index of the kpoint. + ik_g, kpoint = r.find_ik_glob_kpoint(kpoint, self.spin) + + # Compute indices of qpoints in the ngqpt mesh. + ngqpt, shifts = r.ngqpt, [0, 0, 0] + q_indices = kpoints_indices(r.qbz, ngqpt, check_mesh=check_mesh) + + natom3 = 3 * len(self.structure) + nb = self.nb + nx, ny, nz = ngqpt + + # (glob_nq, glob_nk, natom3, m_kq, n_k) + g2 = self.g2 if self.g2 is not None else np.abs(self.gvals) ** 2 + g2_qph_mn = g2[:,ik_g] + + # Insert g2 in g2_grid + g2_grid = np.empty((nb, nb, natom3, nx, ny, nz)) + for nu in range(natom3): + for g2_mn, q_inds in zip(g2_qph_mn[:,nu], q_indices): + ix, iy, iz = q_inds + g2_grid[:, :, nu, ix, iy, iz] = g2_mn + + return BzRegularGridInterpolator(self.structure, shifts, g2_grid, method=method) + + def get_g_qpt_kpt(self, qpoint, kpoint, what) -> np.ndarray: + """ + Return numpy array with e-ph matrix elements the for the given (qpoint, kpoint) pair. + + Args: + what="g2" for |g(k,q)|^2, "g" for g(k,q) + """ + # Find the internal indices of (qpoint, kpoint) + iq_g, qpoint = self.gstore.r.find_iq_glob_qpoint(qpoint, self.spin) + ik_g, kpoint = self.gstore.r.find_ik_glob_kpoint(kpoint, self.spin) + if what == "g2": + g2 = self.g2 if self.g2 is not None else np.abs(self.gvals) ** 2 + return g2[iq_g, ik_g] + if what == "g": + if self.cplex != 2: + raise ValueError("Gstore file stores g2 instead of complex g") + return self.gvals[iq_g, ik_g] + + raise ValueError(f"Invalid {what=}") + + def get_gdf_at_qpt_kpt(self, qpoint, kpoint, what="g2") -> pd.DataFrame: + """ + Build and return a dataframe with the |g(k,q)|^2 for the given (qpoint, kpoint) pair. + + Args: + what="g2" for |g(k,q)|^2, "g" for g(k,q) + """ + g2_slice = self.get_g_qpt_kpt(qpoint, kpoint, what) + df = nparr_to_df(what, g2_slice, ["imode", "m_kq", "n_k"]) + #df["m_kq"] += bstart_mkq + #df["n_k"] += bstart_nk + + return df + + def neq(self, other: Gqk, verbose: int) -> int: + """ + Helper function to compare two GQK objects. + """ + # This dimensions must agree in order to have a meaningfull comparison. + # so raise immediately if not equal. + aname_list = ["cplex", "spin", "nb", "glob_nk", "glob_nq"] + + for aname in aname_list: + val1, val2 = getattr(self, aname), getattr(other, aname) + + if isinstance(val1, (str, int, float)): + eq = val1 == val2 + elif isinstance(val1, np.ndarray): + eq = np.allclose(val1, val2) + else: + raise TypeError(f"Don't know how to handle comparison for type: {type(val1)}") + + if not eq: + raise RuntimeError(f"Different values of {aname=}, {val1=}, {val2=}") + + ierr = 0 + kws = dict(verbose=verbose) # , atol= rtol) + + # Compare v_nk or v_mn_k. + if self.vk_cart_ibz is not None: + if not _allclose("vk_cart_ibz", self.vk_cart_ibz, other.vk_cart_ibz, **kws): ierr += 1 + + if self.vkmat_cart_ibz is not None: + if not _allclose("vkmat_cart_ibz", self.vkmat_cart_ibz, other.vkmat_cart_ibz, **kws): ierr += 1 + + # Compare g or g^2. + if self.g2 is not None: + if not _allclose("g2", self.g2, other.g2, **kws): ierr += 1 + + if self.gvals is not None: + if not _allclose("gvals", self.gvals, other.gvals, **kws): ierr += 1 + + return ierr + + +class GstoreReader(BaseEphReader): + """ + Reads data from file and constructs objects. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GstoreReader + """ + def __init__(self, filepath: PathLike): + super().__init__(filepath) + + # Read important dimensions. + self.nsppol = self.read_dimvalue("number_of_spins") + self.cplex = self.read_dimvalue("gstore_cplex") + self.nkbz = self.read_dimvalue("gstore_nkbz") + self.nkibz = self.read_dimvalue("gstore_nkibz") + self.nqbz = self.read_dimvalue("gstore_nqbz") + self.nqibz = self.read_dimvalue("gstore_nqibz") + + # Read important variables. + self.completed = self.read_value("gstore_completed") + self.done_spin_qbz = self.read_value("gstore_done_qbz_spin") + self.with_vk = self.read_value("gstore_with_vk") + self.qptopt = self.read_value("gstore_qptopt") + self.kptopt = self.read_value("kptopt") + self.kzone = self.read_string("gstore_kzone") + self.qzone = self.read_string("gstore_qzone") + self.kfilter = self.read_string("gstore_kfilter") + self.gmode = self.read_string("gstore_gmode") + + # Note conversion Fortran --> C for the isym index. + self.brange_spin = self.read_value("gstore_brange_spin") + self.brange_spin[:,0] -= 1 + self.erange_spin = self.read_value("gstore_erange_spin") + # Total number of k/q points for each spin after filtering (if any) + self.glob_spin_nq = self.read_value("gstore_glob_nq_spin") + self.glob_nk_spin = self.read_value("gstore_glob_nk_spin") + + # K-points and q-points in the IBZ + self.kibz = self.read_value("reduced_coordinates_of_kpoints") + self.qibz = self.read_value("gstore_qibz") + + # K-points and q-points in the BZ + self.kbz = self.read_value("gstore_kbz") + self.qbz = self.read_value("gstore_qbz") + self.ngqpt = self.read_value("gstore_ngqpt") + + # Mapping BZ --> IBZ. Note conversion Fortran --> C for the isym index. + # nctkarr_t("gstore_kbz2ibz", "i", "six, gstore_nkbz"), & + # nctkarr_t("gstore_qbz2ibz", "i", "six, gstore_nqbz"), & + self.kbz2ibz = self.read_value("gstore_kbz2ibz") + self.kbz2ibz[:,0] -= 1 + + self.qbz2ibz = self.read_value("gstore_qbz2ibz") + self.qbz2ibz[:,0] -= 1 + + # Mapping q/k points in gqk --> BZ. Note conversion Fortran --> C for indexing. + # nctkarr_t("gstore_qglob2bz", "i", "gstore_max_nq, number_of_spins"), & + # nctkarr_t("gstore_kglob2bz", "i", "gstore_max_nk, number_of_spins") & + self.qglob2bz = self.read_value("gstore_qglob2bz") + self.qglob2bz -= 1 + self.kglob2bz = self.read_value("gstore_kglob2bz") + self.kglob2bz -= 1 + + def find_iq_glob_qpoint(self, qpoint, spin: int): + """ + Find the internal index of the qpoint needed to access the gvals array. + """ + qpoint = np.asarray(qpoint) + for iq_g, iq_bz in enumerate(self.qglob2bz[spin]): + if np.allclose(qpoint, self.qbz[iq_bz]): + #print(f"Found {qpoint = } with index {iq_g = }") + return iq_g, qpoint + + raise ValueError(f"Cannot find {qpoint = } in GSTORE.nc") + + def find_ik_glob_kpoint(self, kpoint, spin: int): + """Find the internal indices of the kpoint needed to access the gvals array.""" + kpoint = np.asarray(kpoint) + for ik_g, ik_bz in enumerate(self.kglob2bz[spin]): + if np.allclose(kpoint, self.kbz[ik_bz]): + #print(f"Found {kpoint = } with index {ik_g = }") + return ik_g, kpoint + + raise ValueError(f"Cannot find {kpoint = } in GSTORE.nc") + + # TODO: This fix to read groups should be imported in pymatgen. + @lazy_property + def path2group(self) -> dict: + return self.rootgrp.groups + + +class GstoreRobot(Robot, RobotWithEbands): + """ + This robot analyzes the results contained in multiple GSTORE.nc files. + + Usage example: + + .. code-block:: python + + robot = GstoreRobot.from_files([ + "t04o_GSTORE.nc", + "t05o_GSTORE.nc", + ]) + + robot.neq(verbose=1) + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GstoreRobot + """ + EXT = "GSTORE" + + def neq(self, ref_basename: str | None = None, verbose: int = 0) -> int: + """ + Compare all GSTORE.nc files stored in the GstoreRobot + """ + # Find reference gstore. By default the first file in the robot is used. + ref_gstore = self._get_ref_abifile_from_basename(ref_basename) + + exc_list = [] + ierr = 0 + for other_gstore in self.abifiles: + if ref_gstore.filepath == other_gstore.filepath: + continue + print("Comparing: ", ref_gstore.basename, " with: ", other_gstore.basename) + try: + ierr += self._neq_two_gstores(ref_gstore, other_gstore, verbose) + cprint("EQUAL", color="green") + except Exception as exc: + exc_list.append(str(exc)) + + for exc in exc_list: + cprint(exc, color="red") + + return ierr + + @staticmethod + def _neq_two_gstores(gstore1: GstoreFile, gstore2: GstoreFile, verbose: int) -> int: + """ + Helper function to compare two GSTORE files. + """ + # These quantities must be the same to have a meaningfull comparison. + aname_list = ["structure", "nsppol", "cplex", "nkbz", "nkibz", + "nqbz", "nqibz", "completed", "kzone", "qzone", "kfilter", "gmode", + "brange_spin", "erange_spin", "glob_spin_nq", "glob_nk_spin", + ] + + for aname in aname_list: + self._compare_attr_name(aname, gstore1, gstore2) + + # Now compare the gkq objects for each spin. + ierr = 0 + for spin in range(gstore1.nsppol): + gqk1, gqk2 = gstore1.gqk_spin[spin], gstore2.gqk_spin[spin] + ierr += gqk1.neq(gqk2, verbose) + + return ierr + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + #for fig in self.get_ebands_plotter().yield_figs(): yield fig + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporary file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + args = [(l, f.filepath) for l, f in self.items()] + nb.cells.extend([ + #nbv.new_markdown_cell("# This is a markdown cell"), + nbv.new_code_cell("robot = abilab.GstoreRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), + #nbv.new_code_cell("ebands_plotter = robot.get_ebands_plotter()"), + ]) + + # Mixins + #nb.cells.extend(self.get_baserobot_code_cells()) + #nb.cells.extend(self.get_ebands_code_cells()) + + return self._write_nb_nbpath(nb, nbpath) diff --git a/abipy/eph/rta.py b/abipy/eph/rta.py new file mode 100644 index 000000000..6872412ce --- /dev/null +++ b/abipy/eph/rta.py @@ -0,0 +1,882 @@ +# coding: utf-8 +""" +RTA.nc file. +""" +from __future__ import annotations + +import numpy as np +import abipy.core.abinit_units as abu + +from monty.functools import lazy_property +#from monty.termcolor import cprint +from monty.string import marquee, list_strings +from abipy.core.structure import Structure +from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter +from abipy.electrons.ebands import ElectronBands, ElectronsReader, RobotWithEbands +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt +from abipy.tools.typing import Figure +from abipy.abio.robots import Robot + + +__all__ = [ + "RtaFile", + "RtaRobot", +] + + +def eh2s(eh) -> str: + return {0: "n", 1: "p"}[eh] + + +def irta2s(irta) -> str: + """Return RTA type from irta index.""" + return {0: "SERTA", 1: "MRTA"}[irta] + + +def style_for_irta(irta, with_marker=False) -> dict: + """ + Return dict with linestyle to plot SERTA/MRTA results + """ + if irta == 0: + opts = dict(linewidth=1.0, linestyle="dotted") + if with_marker: opts["marker"] = "^" + elif irta == 1: + opts = dict(linewidth=1.0, linestyle="solid") + if with_marker: opts["marker"] = "v" + else: + raise ValueError("Invalid value for irta: %s" % irta) + + return opts + + +def transptens2latex(what, component) -> str: + return { + "sigma": r"$\sigma_{%s}$" % component, + "seebeck": "$S_{%s}$" % component, + "kappa": r"$\kappa^{\mathcal{e}}_{%s}$" % component, + "pi": r"$\Pi_{%s}$" % component, + "zte": r"$\text{ZT}^e_{%s}$" % component, + }[what] + + +def edos_infos(edos_intmeth, edos_broad) -> str: + s = {1: "Gaussian smearing Method", + 2: "Linear Tetrahedron Method", + -2: "Linear Tetrahedron Method with Blochl's corrections", + }[edos_intmeth] + if (edos_intmeth == 1): s = "%s with broadening: %.1f (meV)" % edos_broad * abu.Ha_to_meV + + return s + + +def irta2latextau(irta, with_dollars=False) -> str: + s = r"\tau^{\mathbf{%s}}}" % irta2s(irta) + if with_dollars: s = "$%s$" % s + return s + + +def x2_grid(what_list) -> tuple: + """ + Build (x, 2) grid of plots or just (1, 1) depending of the length of what_list. + + Return: (num_plots, ncols, nrows, what_list) + """ + what_list = list_strings(what_list) + num_plots, ncols, nrows = len(what_list), 1, 1 + if num_plots > 1: + ncols = 2 + nrows = (num_plots // ncols) + (num_plots % ncols) + + return num_plots, ncols, nrows, what_list + + +class RtaFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter): + + @classmethod + def from_file(cls, filepath: str) -> RtaFile: + """Initialize the object from a netcdf file.""" + return cls(filepath) + + def __init__(self, filepath: str): + super().__init__(filepath) + self.reader = RtaReader(filepath) + + self.nrta = self.reader.read_dimvalue("nrta") + + #self.fermi = self.ebands.fermie * abu.eV_Ha + #self.transport_ngkpt = self.reader.read_value("transport_ngkpt") + #self.transport_extrael = self.reader.read_value("transport_extrael") + #self.transport_fermie = self.reader.read_value("transport_fermie") + self.sigma_erange = self.reader.read_value("sigma_erange") + #self.ebands.kpoints.ksampling.mpdivs + + # Get position of CBM and VBM for each spin in eV + # nctkarr_t('vb_max', "dp", "nsppol") + self.vb_max_spin = self.reader.read_value("vb_max") * abu.Ha_to_eV + self.cb_min_spin = self.reader.read_value("cb_min") * abu.Ha_to_eV + + # Get metadata for k-integration (coming from edos%ncwrite) + self.edos_intmeth = int(self.reader.read_value("edos_intmeth")) + self.edos_broad = self.reader.read_value("edos_broad") + + # Store also the e-mesh n eV as it's often needed in the plotting routines. + # Several quantities are defined on this mesh. + self.edos_mesh_eV = self.reader.read_value("edos_mesh") * abu.Ha_to_eV + + @property + def ntemp(self) -> int: + """Number of temperatures.""" + return len(self.tmesh) + + @property + def tmesh(self) -> np.ndarray: + """Mesh with Temperatures in Kelvin.""" + return self.reader.tmesh + + @lazy_property + def assume_gap(self) -> bool: + """True if we are dealing with a semiconductor. More precisely if all(sigma_erange) > 0.""" + return bool(self.reader.rootgrp.variables["assume_gap"]) + + @lazy_property + def has_ibte(self) -> bool: + """True if file contains IBTE results.""" + return "ibte_sigma" in self.reader.rootgrp.variables + + @lazy_property + def ebands(self) -> ElectronBands: + """|ElectronBands| object.""" + return self.reader.read_ebands() + + @property + def structure(self) -> Structure: + """|Structure| object.""" + return self.ebands.structure + + @lazy_property + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" + od = self.get_ebands_params() + return od + + def __str__(self) -> str: + """String representation.""" + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation.""" + lines = []; app = lines.append + + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + app(self.structure.to_string(verbose=verbose, title="Structure")) + app("") + app(self.ebands.to_string(with_structure=False, verbose=verbose, title="KS Electron Bands")) + app("") + + # Transport section. + app(marquee("Transport calculation", mark="=")) + app("") + #app("edos_intmeth: %d" % self.edos_intmeth) + #app("edos_broad: %d (meV): " % (self.edos_broad * 1000)) + app(edos_infos(self.edos_intmeth, self.edos_broad)) + app("mesh step for energy integrals: %.1f (meV) " % ((self.edos_mesh_eV[1] - self.edos_mesh_eV[0]) * 1000)) + app("") + + components = ("xx", "yy", "zz") if verbose == 0 else ("xx", "yy", "zz", "xy", "xz", "yx") + for component in components: + for irta in range(self.nrta): + app("Mobility (%s Cartesian components), RTA type: %s" % (component, irta2s(irta))) + app("Temperature [K] Electrons (cm^2/Vs) Holes (cm^2/Vs)") + for itemp in range(self.ntemp): + temp = self.tmesh[itemp] + mobility_mu_e = self.get_mobility_mu(eh=0, itemp=itemp, component=component, irta=irta) + mobility_mu_h = self.get_mobility_mu(eh=1, itemp=itemp, component=component, irta=irta) + app("%14.1lf %18.6lf %18.6lf" % (temp, mobility_mu_e, mobility_mu_h)) + app("") + + return "\n".join(lines) + + def get_mobility_mu(self, eh, itemp, component='xx', ef=None, irta=0, spin=0): + """ + Get the mobility at the chemical potential Ef + + Args: + eh: 0 for electrons, 1 for holes. + itemp: Index of the temperature. + component: Cartesian component to plot: "xx", "yy" "xy" ... + ef: Value of the doping in eV. + The default None uses the chemical potential at the temperature item as computed by Abinit. + spin: Spin index. + """ + if ef is None: ef = self.reader.read_value('transport_mu_e')[itemp] + emesh, mobility = self.reader.read_mobility(eh, itemp, component, spin, irta=irta) + + from scipy import interpolate + f = interpolate.interp1d(emesh, mobility) + return f(ef) + + #def get_mobility_mu_dataframe(self, eh=0, component='xx', itemp=0, spin=0, **kwargs): + + #def _select_itemps_labels(self, obj): + # for it, temp in enumerate(self.tmesh): + + def _add_vline_at_bandedge(self, ax, spin, cbm_or_vbm, **kwargs): + my_kwargs = dict(ymin=0, ymax=1, linewidth=1, linestyle="--") + my_kwargs.update(kwargs) + #from matplotlib.pyplot import text + + if cbm_or_vbm in ("cbm", "both"): + x = self.cb_min_spin[spin] + ax.axvline(x=x, color="red", **my_kwargs) # label="CBM", + #ax.text(x, 5, "CBM", rotation=90, verticalalignment='center', fontsize=8) + + if cbm_or_vbm in ("vbm", "both"): + x = self.vb_max_spin[spin] + ax.axvline(x=x, color="blue", **my_kwargs) # label="VBM", + #ax.text(x, 5, "VBM", rotation=90, verticalalignment='center', fontsize=8) + + @add_fig_kwargs + def plot_edos(self, ax=None, fontsize=8, **kwargs) -> Figure: + """ + Plot electron DOS + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + fontsize (int): fontsize for titles and legend + + Return: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax=ax) + + # Total DOS, spin up and spin down components in nsppol_plus1. + # nctkarr_t("edos_dos", "dp", "edos_nw, nsppol_plus1") + dos = self.reader.read_value("edos_dos") / abu.Ha_to_eV + + # Plot total DOS. + ax.plot(self.edos_mesh_eV, dos[0], label="Total DOS", color="black", linewidth=1.0) + + #idos = self.reader.read_value("edos_idos") + #ax.plot(self.edos_mesh_eV, idos[0], label="Total IDOS", color="black", linewidth=1.0) + + if self.nsppol == 2: + ax.plot(self.edos_mesh_eV, + dos[1], color="red", linewidth=1, label="up") + ax.plot(self.edos_mesh_eV, - dos[2], color="blue", linewidth=1, label="down") + + for spin in range(self.nsppol): + self._add_vline_at_bandedge(ax, spin, "both") + + ax.grid(True) + ax.set_xlabel('Energy (eV)') + ax.set_ylabel('States/eV p.u.c') + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + if "title" not in kwargs: + title = r"$\frac{1}{N_k} \sum_{nk} \delta(\epsilon - \epsilon_{nk})$" + fig.suptitle(title, fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_tau_isoe(self, ax_list=None, colormap="jet", fontsize=8, **kwargs) -> Figure: + r""" + Plot tau(e). Energy-dependent scattering rate defined by: + + $\tau(\epsilon) = \frac{1}{N_k} \sum_{nk} \tau_{nk}\,\delta(\epsilon - \epsilon_{nk})$ + + Two differet subplots for SERTA and MRTA. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + colormap: + fontsize (int): fontsize for titles and legend + + Return: |matplotlib-Figure| + """ + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=self.nrta, ncols=1, + sharex=True, sharey=True, squeeze=False) + ax_list = ax_list.ravel() + cmap = plt.get_cmap(colormap) + + # nctkarr_t('tau_dos', "dp", "edos_nw, ntemp, nsppol, nrta") + tau_dos = self.reader.read_value("tau_dos") + + for irta, ax in enumerate(ax_list): + for spin in range(self.nsppol): + spin_sign = +1 if spin == 0 else -1 + for it, temp in enumerate(self.tmesh): + # Convert to femtoseconds + ys = spin_sign * tau_dos[irta, spin, it] * abu.Time_Sec * 1e+15 + ax.plot(self.edos_mesh_eV , ys, c=cmap(it / self.ntemp), + label="T = %dK" % temp if spin == 0 else None) + + ax.grid(True) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + if irta == (len(ax_list) - 1): + ax.set_xlabel('Energy (eV)') + ax.set_ylabel(r"$\tau(\epsilon)\, (fms)$") + + self._add_vline_at_bandedge(ax, spin, "both") + + ax.text(0.1, 0.9, irta2s(irta), fontsize=fontsize, + horizontalalignment='center', verticalalignment='center', transform=ax.transAxes, + bbox=dict(alpha=0.5)) + + if "title" not in kwargs: + title = r"$\tau(\epsilon) = \frac{1}{N_k} \sum_{nk} \tau_{nk}\,\delta(\epsilon - \epsilon_{nk})$" + fig.suptitle(title, fontsize=fontsize) + + return fig + + #@add_fig_kwargs + #def plot_vv_dos(self, component="xx", spin=0, ax=None, fontsize=8, **kwargs): + + @add_fig_kwargs + def plot_vvtau_dos(self, component="xx", spin=0, ax=None, colormap="jet", fontsize=8, **kwargs) -> Figure: + r""" + Plot (v_i * v_j * tau) DOS. + + $\frac{1}{N_k} \sum_{nk} v_i v_j \delta(\epsilon - \epsilon_{nk})$ + + Args: + component: Cartesian component to plot: "xx", "yy" "xy" ... + ax: |matplotlib-Axes| or None if a new figure should be created. + colormap: matplotlib colormap. + fontsize (int): fontsize for titles and legend + + Return: |matplotlib-Figure| + """ + i, j = abu.s2itup(component) + + ax, fig, plt = get_ax_fig_plt(ax=ax) + cmap = plt.get_cmap(colormap) + + for irta in range(self.nrta): + # nctkarr_t('vvtau_dos', "dp", "edos_nw, three, three, ntemp, nsppol, nrta") + var = self.reader.read_variable("vvtau_dos") + for itemp, temp in enumerate(self.tmesh): + vvtau_dos = var[irta, spin, itemp, j, i, :] / (2 * abu.Ha_s) + label = "T = %dK" % temp + if (itemp == 0): label = "%s (%s)" % (label, irta2s(irta)) + if (irta == 0 and itemp > 0): label = None + ax.plot(self.edos_mesh_eV, vvtau_dos, c=cmap(itemp / self.ntemp), label=label, **style_for_irta(irta)) + + # This to plot the vv dos along without tau + #if itemp == 1: + # # nctkarr_t('vv_dos', "dp", "edos_nw, three, three, nsppol"), & + # vv_dos_var = self.reader.read_variable("vv_dos") + # vv_dos = vv_dos_var[spin, j, i] # / (2 * abu.Ha_s) + # ax.plot(self.edos_mesh_eV, vv_dos, c=cmap(itemp / self.ntemp), label='VVDOS' % temp) + + self._add_vline_at_bandedge(ax, spin, "both") + + ax.grid(True) + ax.set_xlabel('Energy (eV)') + ax.set_ylabel(r'$v_{%s} v_{%s} \tau$ DOS' % (component[0], component[1])) + ax.set_yscale('log') + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + if "title" not in kwargs: + vvt = r'v_{%s} v_{%s} \tau' % (component[0], component[1]) + title = r"$\frac{1}{N_k} \sum_{nk} %s\,\delta(\epsilon - \epsilon_{nk})$" % vvt + fig.suptitle(title, fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_mobility(self, eh=0, irta=0, component='xx', spin=0, ax=None, + colormap='jet', fontsize=8, yscale="log", **kwargs) -> Figure: + """ + Read the mobility from the netcdf file and plot it + + Args: + component: Component to plot: "xx", "yy" "xy" ... + ax: |matplotlib-Axes| or None if a new figure should be created. + colormap: matplotlib colormap. + fontsize (int): fontsize for titles and legend + + Return: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax=ax) + cmap = plt.get_cmap(colormap) + + # nctkarr_t('mobility',"dp", "three, three, edos_nw, ntemp, two, nsppol, nrta") + mu_var = self.reader.read_variable("mobility") + i, j = abu.s2itup(component) + + for irta in range(self.nrta): + for itemp, temp in enumerate(self.tmesh): + mu = mu_var[irta, spin, eh, itemp, :, j, i] + label = "T = %dK" % temp + if (itemp == 0): label = "%s (%s)" % (label, irta2s(irta)) + if (irta == 0 and itemp > 0): label = None + ax.plot(self.edos_mesh_eV, mu, c=cmap(itemp / self.ntemp), label=label, **style_for_irta(irta)) + + self._add_vline_at_bandedge(ax, spin, "cbm" if eh == 0 else "vbm") + + ax.grid(True) + ax.set_xlabel('Fermi level (eV)') + ax.set_ylabel(r'%s-mobility $\mu_{%s}(\epsilon_F)$ (cm$^2$/Vs)' % (eh2s(eh), component)) + ax.set_yscale(yscale) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_transport_tensors_mu(self, component="xx", spin=0, + what_list=("sigma", "seebeck", "kappa", "pi"), + colormap="jet", fontsize=8, **kwargs) -> Figure: + """ + Plot selected Cartesian components of transport tensors as a function + of the chemical potential mu at the given temperature. + + Args: + ax_list: |matplotlib-Axes| or None if a new figure should be created. + fontsize: fontsize for legends and titles + + Return: |matplotlib-Figure| + """ + i, j = abu.s2itup(component) + + num_plots, ncols, nrows, what_list = x2_grid(what_list) + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + ax_list = ax_list.ravel() + # don't show the last ax if numeb is odd. + if num_plots % ncols != 0: ax_list[-1].axis("off") + + cmap = plt.get_cmap(colormap) + + for iax, (what, ax) in enumerate(zip(what_list, ax_list)): + irow, icol = divmod(iax, ncols) + # nctkarr_t('seebeck', "dp", "three, three, edos_nw, ntemp, nsppol, nrta") + what_var = self.reader.read_variable(what) + + for irta in range(self.nrta): + for itemp, temp in enumerate(self.tmesh): + ys = what_var[irta, itemp, spin, :, j, i] + label = "T = %dK" % temp + if itemp == 0: label = "%s (%s)" % (label, irta2s(irta)) + if irta == 0 and itemp > 0: label = None + ax.plot(self.edos_mesh_eV, ys, c=cmap(itemp / self.ntemp), label=label, **style_for_irta(irta)) + + ax.grid(True) + ax.set_ylabel(transptens2latex(what, component)) + + ax.legend(loc="best", fontsize=fontsize, shadow=True) + if irow == nrows - 1: + ax.set_xlabel(r"$\mu$ (eV)") + + self._add_vline_at_bandedge(ax, spin, "both") + + if "title" not in kwargs: + fig.suptitle("Transport tensors", fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_ibte_vs_rta_rho(self, component="xx", fontsize=8, ax=None, **kwargs) -> Figure: + """ + Plot resistivity computed with SERTA, MRTA and IBTE + """ + #if not self.has_ibte: + # cprint("Netcdf file does not contain IBTE results", "magenta") + # return None + + i = j = 0 + rta_vals = self.reader.read_value("resistivity") + serta_t = rta_vals[0, :, j, i] + mrta_t = rta_vals[1, :, j, i] + ibte_vals = self.reader.read_value("ibte_rho") + ibte_t = ibte_vals[:, j, i] + + ax, fig, plt = get_ax_fig_plt(ax=ax) + ax.grid(True) + ax.plot(self.tmesh, serta_t, label="serta") + ax.plot(self.tmesh, mrta_t, label="mrta") + ax.plot(self.tmesh, ibte_t, label="ibte") + ax.set_xlabel("Temperature (K)") + ax.set_ylabel(r"Resistivity ($\mu\Omega\;cm$)") + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + Return figures plotting the transport data + """ + yield self.plot_ibte_vs_rta_rho(show=False) + #yield self.plot_tau_isoe(show=False) + #yield self.plot_transport_tensors_mu(show=False) + #yield self.plot_edos(show=False) + #yield self.plot_vvtau_dos(show=False) + #yield self.plot_mobility(show=False, title="Mobility") + #if self.has_ibte: + # yield self.plot_ibte_vs_rta_rho(show=False) + + def close(self) -> None: + """Close the file.""" + self.reader.close() + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + nb.cells.extend([ + nbv.new_code_cell("ncfile = abilab.abiopen('%s')" % self.filepath), + nbv.new_code_cell('components = ("xx", "yy", "zz", "xy", "xz", "yx")'), + nbv.new_code_cell("print(ncfile)"), + nbv.new_code_cell("ncfile.plot_edos();"), + nbv.new_code_cell("ncfile.plot_vvtau_dos();"), + nbv.new_code_cell(""" +for component in components: + ncfile.plot_mobility(component=component, spin=0); +"""), + ]) + + return self._write_nb_nbpath(nb, nbpath) + + +class RtaReader(ElectronsReader): + """ + This class reads the results stored in the RTA.nc file + It provides helper function to access the most important quantities. + """ + def __init__(self, filepath: str): + super().__init__(filepath) + + self.nsppol = self.read_dimvalue('nsppol') + self.tmesh = self.read_value("kTmesh") / abu.kb_HaK + + #def read_vvdos_tau(self, itemp, component='xx', spin=0, irta=0): + # """ + # Read the group velocity density of states times lifetime for different temperatures + # The vvdos_tau array has 4 dimensions (ntemp, 3, 3, nsppolplus1, nw) + + # 1. the number of temperatures + # 2. 3x3 components of the tensor + # 3. the spin polarization + 1 for the sum + # 4. the number of frequencies + # """ + # # nctkarr_t('vvtau_dos', "dp", "edos_nw, three, three, ntemp, nsppol, nrta") + # i, j = abu.s2itup(component) + # emesh = self.read_value("edos_mesh") * abu.Ha_eV + # vals = self.read_variable("vvtau_dos") + # vvtau_dos = vals[irta, spin, itemp, j, i, :] / (2 * abu.Ha_s) + + # return emesh, vvtau_dos + + #def read_dos(self): + # """ + # Read the density of states (in eV units) + # """ + # # Total DOS, spin up and spin down component. + # # nctkarr_t("edos_dos", "dp", "edos_nw, nsppol_plus1") + # emesh = self.read_value("edos_mesh") * abu.Ha_to_eV + # dos = self.read_value("edos_dos") / abu.Ha_to_eV + # idos = self.read_value("edos_idos") + + # #return ElectronDos(mesh, spin_dos, nelect) + # return emesh, dos, idos + + #def read_onsager(self, itemp): + # """ + # Read the Onsager coefficients computed in the transport driver in Abinit + # """ + # # nctkarr_t('L0', "dp", "edos_nw, three, three, ntemp, nsppol, nrta"), & + # L0 = np.moveaxis(self.read_variable("L0")[itemp,:], [0,1,2,3], [3,2,0,1]) + # L1 = np.moveaxis(self.read_variable("L1")[itemp,:], [0,1,2,3], [3,2,0,1]) + # L2 = np.moveaxis(self.read_variable("L2")[itemp,:], [0,1,2,3], [3,2,0,1]) + + # return L0, L1, L2 + + #def read_transport(self, itemp): + # # nctkarr_t('sigma', "dp", "edos_nw, three, three, ntemp, nsppol, nrta"), & + # sigma = np.moveaxis(self.read_variable("sigma")[itemp,:], [0,1,2,3], [3,2,0,1]) + # kappa = np.moveaxis(self.read_variable("kappa")[itemp,:], [0,1,2,3], [3,2,0,1]) + # seebeck = np.moveaxis(self.read_variable("seebeck")[itemp,:], [0,1,2,3], [3,2,0,1]) + # pi = np.moveaxis(self.read_variable("pi")[itemp,:], [0,1,2,3], [3,2,0,1]) + # return sigma, kappa, seebeck, pi + + def read_mobility(self, eh, itemp, component, spin, irta=0): + """ + Read mobility from the RTA.nc file + The mobility is computed separately for electrons and holes. + """ + # nctkarr_t('mobility',"dp", "three, three, edos_nw, ntemp, two, nsppol, nrta") + i, j = abu.s2itup(component) + wvals = self.read_variable("edos_mesh") + #wvals = self.read_value("edos_mesh") * abu.Ha_eV + mobility = self.read_variable("mobility")[irta, spin, eh, itemp, :, j, i] + + return wvals, mobility + + +class RtaRobot(Robot, RobotWithEbands): + """ + This robot analyzes the results contained in multiple RTA.nc files. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: RtaRobot + """ + + EXT = "RTA" + + #def get_mobility_mu_dataframe(self, eh=0, component='xx', itemp=0, spin=0, **kwargs): + + @add_fig_kwargs + def plot_mobility_kconv(self, eh=0, bte=('serta', 'mrta', 'ibte'), mode="full", component='xx', itemp=0, + spin=0, fontsize=14, ax=None, **kwargs) -> Figure: + """ + Plot the convergence of the mobility as a function of the number of k-points, + for different transport formalisms included in the computation. + + Args: + eh: 0 for electrons, 1 for holes. + bte: list of transport formalism to plot (serta, mrta, ibte) + mode: mode for the convergence plot. 'full': normal plot of the mobility + 'relative': plot of the mobility relative to + the value obtained with the densest grid + component: Cartesian component to plot ('xx', 'xy', ...) + itemp: temperature index. + spin: Spin index. + fontsize: fontsize for legends and titles + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| + """ + bte = list(list_strings(bte)) + + if 'ibte' in bte and not self.all_have_ibte: + print("At least some IBTE results are missing ! Will remove ibte from the bte list") + bte.remove('ibte') + + ax, fig, plt = get_ax_fig_plt(ax=ax) + ax.grid(True) + i, j = abu.s2itup(component) + irta = 0 + + res, temps = [], [] + for ncfile in self.abifiles: + kptrlatt = ncfile.reader.read_value("kptrlatt") + kptrlattx = kptrlatt[0, 0] + kptrlatty = kptrlatt[1, 1] + kptrlattz = kptrlatt[2, 2] + + mob_serta, mob_mrta, mob_ibte = -1, -1, -1 + if 'serta' in bte: + mob_serta = ncfile.reader.read_variable("mobility_mu")[0, itemp, spin, eh, j, i] + if 'mrta' in bte: + mob_mrta = ncfile.reader.read_variable("mobility_mu")[1, itemp, spin, eh, j, i] + if 'ibte' in bte: + mob_ibte = ncfile.reader.read_variable("ibte_mob")[itemp, spin, eh, j, i] + + res.append([kptrlattx, mob_serta, mob_mrta, mob_ibte]) + temps.append(ncfile.tmesh[itemp]) + + res.sort(key=lambda t: t[0]) + res = np.array(res) + #print(res) + + size = 14 + if mode == 'relative': + ylabel = r"Relative %s mobility (%%)" % {0: "electron", 1: "hole"}[eh] + elif mode == 'full': + ylabel = r"%s mobility (cm$^2$/(V$\cdot$s))" % {0: "Electron", 1: "Hole"}[eh] + ax.set_ylabel(ylabel, size=size) + + from fractions import Fraction + ratio1 = Fraction(kptrlatty, kptrlattx) + ratio2 = Fraction(kptrlattz, kptrlattx) + text1 = '' if ratio1.numerator == ratio1.denominator else \ + r'$\frac{{{0}}}{{{1}}}$'.format(ratio1.numerator, ratio1.denominator) + text2 = '' if ratio2.numerator == ratio2.denominator else \ + r'$\frac{{{0}}}{{{1}}}$'.format(ratio2.numerator, ratio2.denominator) + + ax.set_xlabel(r'Homogeneous $N_k \times$ ' + text1 + r'$N_k \times$ ' + text2 + r'$N_k$ $\mathbf{k}$-point grid', + size=size) + + ax.set_title(component+" component, T = {0} K".format(ncfile.tmesh[itemp]),size=size) + + if mode == 'relative': + for ires in [1,2,3]: + res[:,ires] = 100*(res[:,ires]-res[-1,ires])/res[-1,ires] + + if 'serta' in bte: + ax.plot(res[:,0], res[:,1], '-ob', label='SERTA') + if 'mrta' in bte: + ax.plot(res[:,0], res[:,2], '-or', label='MRTA') + if 'ibte' in bte: + ax.plot(res[:,0], res[:,3], '-og', label='IBTE') + + ax.set_xticks(res[:,0].astype(float)) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + return fig + + @lazy_property + def assume_gap(self) -> bool: + """True if we are dealing with a semiconductor. More precisely if all(sigma_erange) > 0.""" + return all(abifile.assume_gap for abifile in self.abifiles) + + @lazy_property + def all_have_ibte(self) -> bool: + """True if all files contain IBTE results.""" + return all(abifile.has_ibte for abifile in self.abifiles) + + def get_same_tmesh(self): + """ + Check whether all files have the same T-mesh. Return common tmesh else raise RuntimeError. + """ + for i in range(len(self)): + if not np.all(self.abifiles[0].tmesh == self.abifiles[i].tmesh): + raise RuntimeError("Found different T-mesh in RTA files.") + + return self.abifiles[0].tmesh + + #@add_fig_kwargs + #def plot_mobility_erange_conv(self, eh=0, component='xx', itemp=0, spin=0, fontsize=8, ax=None, **kwargs): + + #@add_fig_kwargs + #def plot_transport_tensors_mu_kconv(self, eh=0, component='xx', itemp=0, spin=0, fontsize=8, ax=None, **kwargs): + + #@add_fig_kwargs + #def plot_transport_tensors_mu_kconv(self, eh=0, component='xx', itemp=0, spin=0, fontsize=8, ax=None, **kwargs): + + def plot_ibte_vs_rta_rho(self, component="xx", fontsize=8, **kwargs) -> Figure: + """ + """ + nrows = 1 # xx + ncols = len(self) # SERTA, MRTA, IBTE + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=True, squeeze=False) + ax_list = ax_list.ravel() + + for abifile, ax in zip(self.abifiles, ax_list): + abifile.plot_ibte_vs_rta_rho(component="xx", fontsize=fontsize, ax=ax, show=False) + + return fig + + def plot_ibte_mrta_serta_conv(self, what="resistivity", fontsize=8, **kwargs) -> Figure: + """ + """ + #num_plots, ncols, nrows, what_list = x2_grid(what_list) + nrows = 1 # xx + ncols = 3 # SERTA, MRTA, IBTE + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=True, squeeze=False) + ax_list = ax_list.ravel() + # don't show the last ax if numeb is odd. + #if num_plots % ncols != 0: ax_list[-1].axis("off") + + i = j = 0 + from collections import defaultdict + data = defaultdict(list) + for abifile in self.abifiles: + rta_vals = abifile.reader.read_value("resistivity") + data["serta"].append(rta_vals[0, :, j, i]) + data["mrta"].append(rta_vals[1, :, j, i]) + ibte_vals = abifile.reader.read_value("ibte_rho") + data["ibte"].append(ibte_vals[:, j, i]) + + tmesh = self.get_same_tmesh() + keys = ["serta", "mrta", "ibte"] + for ix, (key, ax) in enumerate(zip(keys, ax_list)): + ax.grid(True) + ax.set_title(key.upper(), fontsize=fontsize) + for ifile, ys in enumerate(data[key]): + ax.plot(tmesh, ys, marker="o", label=self.labels[ifile]) + ax.set_xlabel("Temperature (K)") + if ix == 0: + ax.set_ylabel(r"Resistivity ($\mu\Omega\;cm$)") + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + #yield self.plot_lattice_convergence(show=False) + #if self.all_have_ibte: + yield self.plot_ibte_mrta_serta_conv(show=False) + yield self.plot_ibte_vs_rta_rho(show=False) + + # Determine the independent component. For the time being, + # only consider the cubic case separately + abifile = self.abifiles[0] + if 'cubic' in abifile.structure.spget_summary(): + components = ['xx'] + else: + components = ['xx','yy','zz'] + + # Determine the type of carriers for which the mobility is computed + eh_list = [] + if abifile.sigma_erange[0] > 0: + eh_list.append(1) + if abifile.sigma_erange[1] > 0: + eh_list.append(0) + + for eh in eh_list: + for comp in components: + yield self.plot_mobility_kconv(eh=eh, component=comp, itemp=0, spin=0, show=False) + + #def get_panel(self): + # """ + # Build panel with widgets to interact with the |RtaRobot| either in a notebook or in a panel app. + # """ + # from abipy.panels.transportfile import TransportRobotPanel + # return TransportRobotPanel(self).get_panel() + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + args = [(l, f.filepath) for l, f in self.items()] + nb.cells.extend([ + #nbv.new_markdown_cell("# This is a markdown cell"), + nbv.new_code_cell("robot = abilab.RtaRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), + #nbv.new_code_cell("ebands_plotter = robot.get_ebands_plotter()"), + ]) + + # Mixins + #nb.cells.extend(self.get_baserobot_code_cells()) + #nb.cells.extend(self.get_ebands_code_cells()) + + return self._write_nb_nbpath(nb, nbpath) + + +if __name__ == "__main__": + import sys + robot = RtaRobot.from_files(sys.argv[1:]) + print(robot) + + #import matplotlib.pyplot as plt + #plt.figure(0, figsize=(14,9)) + #plt.tick_params(labelsize=14) + #ax = plt.gca() + + robot.plot_mobility_kconv(ax=None, color='k') + + #fileslist = ['conv_fine/k27x27x27/q27x27x27/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k30x30x30/q30x30x30/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k144x144x144/q144x144x144/Sio_DS1_TRANSPORT.nc',] + + #plot_mobility_kconv(ax, fileslist, color='k', marker='o', label=r'$N_{{q_{{x,y,z}}}}$ = $N_{{k_{{x,y,z}}}}$') + + #fileslist = ['conv_fine/k27x27x27/q54x54x54/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k66x66x66/q132x132x132/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k72x72x72/q144x144x144/Sio_DS1_TRANSPORT.nc'] + + #plot_mobility_kconv(ax, fileslist, color='r', marker='x', label=r'$N_{{q_{{x,y,z}}}}$ = $2 N_{{k_{{x,y,z}}}}$') + + #plt.legend(loc='best',fontsize=14) + #plt.show() diff --git a/abipy/eph/sigeph.py b/abipy/eph/sigeph.py index ac456bf0a..efc142f93 100644 --- a/abipy/eph/sigeph.py +++ b/abipy/eph/sigeph.py @@ -1,13 +1,12 @@ # coding: utf-8 """ -This module contains objects for the postprocessing of Sigma_eph calculations. +This module contains objects for postprocessing e-ph calculations +using the results stored in the SIGEPH.nc file. For a theoretical introduction see :cite:`Giustino2017` - -Warning: - - Work in progress, DO NOT USE THIS CODE """ +from __future__ import annotations + import tempfile import pickle import os @@ -21,16 +20,19 @@ from monty.string import marquee, list_strings from monty.functools import lazy_property from monty.termcolor import cprint +from abipy.core.structure import Structure from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter -from abipy.core.kpoints import Kpoint, KpointList, Kpath, IrredZone, has_timrev_from_kptopt +from abipy.core.kpoints import Kpoint, KpointList, Kpath, IrredZone, has_timrev_from_kptopt, find_points_along_path from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims, set_visible, rotate_ticklabels, ax_append_title, set_ax_xylabels, linestyles) from abipy.tools import duck from abipy.tools.numtools import gaussian from abipy.electrons.ebands import ElectronBands, ElectronDos, RobotWithEbands, ElectronBandsPlotter, ElectronDosPlotter +from abipy.tools.typing import Figure from abipy.abio.robots import Robot from abipy.eph.common import BaseEphReader + __all__ = [ "QpTempState", "QpTempList", @@ -57,9 +59,9 @@ class QpTempState(namedtuple("QpTempState", "spin kpoint band tmesh e0 qpe ze0 f band: band index. Global index in the band structure. (C convention, i.e >= 0). tmesh: Temperature mesh in Kelvin. e0: Initial KS energy. - qpe: Quasiparticle energy (complex) computed with the perturbative approach. - ze0: Renormalization factor computed at e = e0. - fan0: Fan term (complex) at e_KS + qpe: Quasiparticle energy (complex) computed with the linearized perturbative approach (Z factor). + ze0: Renormalization factor Z computed at e = e0. + fan0: Fan term (complex) evaluated at e_KS dw: Debye-Waller (static, real) qpe_oms: Quasiparticle energy (real) in the on-the-mass-shell approximation: qpe_oms = e0 + Sigma(e0) @@ -123,16 +125,16 @@ def _repr_html_(self): def __str__(self): return self.to_string() - def to_string(self, verbose=0, title=None): + def to_string(self, verbose=0, title=None) -> str: """ String representation with verbosity level ``verbose`` and optional ``title``. """ s = str(self.get_dataframe()) return "\n".join([marquee(title, mark="="), s]) if title is not None else s - def get_dataframe(self, index=None, with_spin=True, params=None): + def get_dataframe(self, index=None, with_spin=True, params=None) -> pd.DataFrame: """ - Build pandas dataframe with QP data + Build pandas dataframe with QP results Args: index: dataframe index. @@ -198,7 +200,7 @@ def get_fields_for_plot(cls, vs, with_fields, exclude_fields): return fields @add_fig_kwargs - def plot(self, with_fields="all", exclude_fields=None, ax_list=None, label=None, fontsize=12, **kwargs): + def plot(self, with_fields="all", exclude_fields=None, ax_list=None, label=None, fontsize=8, **kwargs) -> Figure: """ Plot the QP results as function of temperature. @@ -270,7 +272,7 @@ def tmesh(self): return [] @property - def ntemp(self): + def ntemp(self) -> int: """Number of temperatures.""" return len(self.tmesh) @@ -281,7 +283,7 @@ def __str__(self): """String representation.""" return self.to_string() - def to_string(self, verbose=0, title=None): + def to_string(self, verbose=0, title=None) -> str: """String representation.""" lines = []; app = lines.append app(marquee("QpTempList", mark="=")) @@ -306,7 +308,11 @@ def get_e0mesh(self): def get_field_itemp(self, field, itemp): """|numpy-array| containing the values of field at temperature ``itemp``""" - return np.array([getattr(qp, field)[itemp] for qp in self]) + #return np.array([getattr(qp, field)[itemp] for qp in self]) + if field in {"tmesh", "qpe", "ze0", "fan0", "dw", "qpe_oms"}: + return np.array([getattr(qp, field)[itemp] for qp in self]) + else: + return np.array([getattr(qp, field) for qp in self]) #def get_skb_field(self, skb, field): # """Return the value of field for the given spin kp band tuple, None if not found""" @@ -343,13 +349,13 @@ def merge(self, other, copy=False): @add_fig_kwargs def plot_vs_e0(self, itemp_list=None, with_fields="all", reim="real", function=lambda x: x, exclude_fields=None, fermie=None, colormap="jet", ax_list=None, xlims=None, ylims=None, - exchange_xy=False, fontsize=12, **kwargs): + exchange_xy=False, fontsize=8, **kwargs) -> Figure: """ - Plot the QP results as a function of the initial KS energy. + Plot QP results as a function of the initial KS energy. Args: itemp_list: List of integers to select a particular temperature. None for all - with_fields: The names of the qp attributes to plot as function of e0. + with_fields: The names of the QP attributes to plot as function of e0. Accepts: List of strings or string with tokens separated by blanks. See :class:`QPState` for the list of available fields. reim: Plot the real or imaginary part @@ -412,6 +418,7 @@ def plot_vs_e0(self, itemp_list=None, with_fields="all", reim="real", function=l ax.set_xlabel(ylabel_mask % field, fontsize=fontsize) has_legend = False + # Plot different temperatures. for itemp in itemp_list: yt = qps.get_field_itemp(field, itemp) @@ -438,10 +445,10 @@ def plot_vs_e0(self, itemp_list=None, with_fields="all", reim="real", function=l return fig -class EphSelfEnergy(object): +class EphSelfEnergy: r""" Electron self-energy due to phonon interaction :math:`\Sigma_{nk}(\omega,T)` - Actually these are the diagonal matrix elements in the KS basis set. + Actually this object stores the diagonal matrix elements in the KS basis set. """ # Symbols used in matplotlib plots. latex_symbol = dict( @@ -457,7 +464,7 @@ def __init__(self, wmesh, qp, vals_e0ks, dvals_de0ks, dw_vals, vals_wr, spfunc_w wmesh: Frequency mesh in eV. qp: :class:`QpTempState` instance. vals_e0ks: complex [ntemp] array with Sigma_eph(omega=eKS, kT) - dvals_de0ks: complex [ntemp] arrays with d Sigma_eph(omega, kT) / d omega (omega=eKS) + dvals_de0ks: complex [ntemp] arrays with derivative d Sigma_eph(omega, kT) / d omega (omega=eKS) dw_vals: [ntemp] array with Debye-Waller term (static) vals_wr: [ntemp, nwr] complex array with Sigma_eph(omega, kT). enk_KS corresponds to nwr//2 + 1. spfunc_wr: [ntemp, nwr] real array with spectral function. @@ -488,7 +495,7 @@ def __init__(self, wmesh, qp, vals_e0ks, dvals_de0ks, dw_vals, vals_wr, spfunc_w def __str__(self): return self.to_string() - def to_string(self, verbose=0, title=None): + def to_string(self, verbose=0, title=None) -> str: """String representation.""" lines = []; app = lines.append if title is not None: app(marquee(title, mark="=")) @@ -543,20 +550,21 @@ def _get_itemps_labels(self, itemps): else: raise ValueError("Invalid value for itemps: `%s`" % str(itemps)) else: - itemps = np.array(itemps, dtype=np.int) + itemps = np.array(itemps, dtype=int) itemps = [itemps] if itemps.size == 1 else itemps.tolist() if not all(self.ntemp > it >= 0 for it in itemps): raise ValueError("Invalid list of temperature indices. ntemp is %d, received itemps:\n\t%s" % ( - self.ntemp, str(itemps))) + self.ntemp, str(itemps))) return itemps, ["T=%.1f K" % self.tmesh[it] for it in itemps] @add_fig_kwargs def plot_tdep(self, itemps="all", zero_energy="e0", colormap="jet", ax_list=None, - what_list=("re", "im", "spfunc"), with_frohl=False, xlims=None, fontsize=8, **kwargs): + what_list=("re", "im", "spfunc"), with_frohl=False, + xlims=None, ylims= None, fontsize=8, **kwargs) -> Figure: """ Plot the real/imaginary part of self-energy as well as the spectral function for - the different temperatures with a color map. + the different temperatures with a colormap. Args: itemps: List of temperature indices. "all" to plot'em all. @@ -564,9 +572,14 @@ def plot_tdep(self, itemps="all", zero_energy="e0", colormap="jet", ax_list=None colormap: matplotlib color map. ax_list: List of |matplotlib-Axes|. If None, new figure is produced. what_list: List of strings selecting the quantity to plot. + "re" for real part, "im" for imaginary part, "spfunc" for spectral function A(omega). with_frohl: Visualize Frohlich contribution (if present). xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used. + ylims: Set the data limits for the y-axis. Accept list ( for real, imaginary or spectral function) of tuples e.g. ``[(left, right)]`` + or tuple e.g. ``(left, right)`` for all graphics + or scalar e.g. ``left``. If left (right) is None, default values are used for all graphics. + fontsize: legend and label fontsize. kwargs: Keyword arguments passed to ax.plot @@ -582,6 +595,29 @@ def plot_tdep(self, itemps="all", zero_energy="e0", colormap="jet", ax_list=None kw_color = kwargs.get("color", None) kw_label = kwargs.get("label", None) + if not isinstance(ax_list,np.ndarray): + ax_list = np.array([ax_list]) + #try: + # len(xlims) + #except TypeError: + # xlims = [xlims] + try: + len(ylims) + except TypeError: + ylims = [ylims] + + #if not any(isinstance(i, list) for i in xlims) or any(isinstance(i, tuple) for i in xlims) or any(isinstance(i, np.ndarray) for i in xlims): + # xlims = [xlims] + + if not any(isinstance(i, list) for i in ylims) or any(isinstance(i, tuple) for i in ylims) or any(isinstance(i, np.ndarray) for i in ylims): + ylims = [ylims] + + #while len(xlims) < len(what_list): + # xlims.append(xlims[-1]) + + while len(ylims) < len(what_list): + ylims.append(ylims[-1]) + for ix, (what, ax) in enumerate(zip(what_list, ax_list)): ax.grid(True) ax.set_ylabel(self.latex_symbol[what]) @@ -600,7 +636,10 @@ def plot_tdep(self, itemps="all", zero_energy="e0", colormap="jet", ax_list=None ) if ix == 0: ax.legend(loc="best", shadow=True, fontsize=fontsize) + #xl = xlims[ix] + yl = ylims[ix] set_axlims(ax, xlims, "x") + set_axlims(ax, yl, "y") if "title" not in kwargs: title = "K-point: %s, band: %d, spin: %d" % (repr(self.kpoint), self.band, self.spin) @@ -608,19 +647,24 @@ def plot_tdep(self, itemps="all", zero_energy="e0", colormap="jet", ax_list=None return fig + # Alias for plot_tdep plot = plot_tdep @add_fig_kwargs - def plot_qpsolution(self, itemp=0, ax_list=None, xlims=None, fontsize=8, **kwargs): + def plot_qpsolution(self, itemp=0, solve=False, with_int_aw=True, + ax_list=None, xlims=None, fontsize=8, **kwargs) -> Figure: """ - Graphical representation of the QP solution(s) along the real axis. + Graphical representation of the QP solution(s) along the real axis including the + approximated solution obtained with the linearized equation and the on-the-mass-shell approach. Produce two subplots: 1. Re/Imag part and intersection with omega - eKs - 2. A(w) + 2. A(w) + int^w A(w')dw' + OTMS Args: - itemp: List of temperature indices. "all" to plot'em all. + itemp: Temperature index. + solve: If True, solve the non-linear QP equation. Requires shapely package. + with_int_aw: Plot cumulative integral of A(w). ax_list: List of |matplotlib-Axes|. If None, new figure is produced. xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` or scalar e.g. ``left``. If left (right) is None, default values are used. @@ -633,45 +677,94 @@ def plot_qpsolution(self, itemp=0, ax_list=None, xlims=None, fontsize=8, **kwarg xs, xlabel = self._get_wmesh_xlabel("e0") ax0, ax1 = ax_list + # Plot Sigma(w) ax0.grid(True) ax0.plot(xs, self.vals_wr[itemp].real, label=r"$\Re(\Sigma)$") ax0.plot(xs, self.vals_wr[itemp].imag, ls="--", label=r"$\Im(\Sigma)$") - ls = linestyles["dashed"] - ax0.plot(xs, self.wmesh - self.qp.e0, color="k", lw=1, ls=ls, label=r"$\omega - \epsilon^0$") + ax0.plot(xs, self.wmesh - self.qp.e0, color="b", lw=1, + ls=linestyles["dashed"], label=r"$\omega - \epsilon^0$") - # Add linearized solution + # Add linearized QP solution sig0 = self.vals_wr[itemp][self.nwr // 2 + 1] aa = self.dvals_de0ks[itemp].real ze0 = self.qp.ze0[itemp].real line = sig0.real + aa * xs - ls = linestyles["densely_dotted"] - ax0.plot(xs, line, color="k", lw=1, ls=ls, - label=r"$\Re(\Sigma^0) + \dfrac{\partial\Sigma}{\partial\omega}(\omega - \epsilon^0$)") - - x0 = self.qp.qpe[itemp].real - self.qp.e0 - y0 = sig0.real + aa * x0 - scatter_opts = dict(color="blue", marker="o", alpha=1.0, s=50, zorder=100, edgecolor='black') - ax0.scatter(x0, y0, label="Linearized solution", **scatter_opts) + ax0.plot(xs, line, color="k", lw=1, ls=linestyles["densely_dotted"], + label=r"$\Re(\Sigma^0) + \dfrac{\partial\Sigma}{\partial\omega}(\omega - \epsilon^0$)") + + lins_x0 = self.qp.qpe[itemp].real - self.qp.e0 + y0 = sig0.real + aa * lins_x0 + scatter_opts = dict(color="blue", marker="o", alpha=0.8, s=50, zorder=100, edgecolor='black') + ax0.scatter(lins_x0, y0, label="Linearized solution", **scatter_opts) text = r"$Z = %.2f$" % ze0 - #ax0.annotate(text, (x0 + 0.2, y0), textcoords='data', size=8) - ax0.annotate(text, (0.02, sig0.real - 0.02), textcoords='data', size=8) + ax0.annotate(text, (lins_x0 + 0.02, y0 + 0.1), textcoords="data", size=8) - ax0.set_ylabel(r"$\Sigma(\omega)\,$(eV)") + ax0.set_ylabel(r"$\Sigma(\omega - \epsilon^0)\,$(eV)") ax0.legend(loc="best", fontsize=fontsize, shadow=True) set_axlims(ax0, xlims, "x") + data = { + "OTMS": sig0.real, + "Linearized": lins_x0, + } + + if solve: + # Solve the non-linear QP equation (may give multiple solutions). + try: + from shapely.geometry import LineString + except ImportError as exc: + raise ImportError("shapely package is required when solve=True. Install it with pip or conda.") from exc + + first_line = LineString(np.column_stack((xs, self.vals_wr[itemp].real))) + second_line = LineString(np.column_stack((xs, self.wmesh - self.qp.e0))) + intersection = first_line.intersection(second_line) + sol_xs, sol_ys = intersection.xy + for i, (x, y) in enumerate(zip(sol_xs, sol_ys)): + data[f"NonLinear_#{i}"] = x + + df = pd.DataFrame.from_dict(data, orient='index') + print("QP corrections computed with different approximations. All in eV") + print(df) + #ax0.table(cellText=df.values, colLabels=df.keys(), loc='center') + ymin = min(self.vals_wr[itemp].real.min(), self.vals_wr[itemp].imag.min()) ymin = ymin - abs(ymin) * 0.2 ymax = max(self.vals_wr[itemp].real.max(), self.vals_wr[itemp].imag.max()) ymax = ymax + abs(ymax) * 0.2 set_axlims(ax0, [ymin, ymax], "y") + # Plot Dyson-Migdal A(w) ax1.grid(True) - ax1.plot(xs, self.spfunc_wr[itemp]) + ys = self.spfunc_wr[itemp] + ax1.plot(xs, ys) + + # Plot Linearized A(w) (Z factor) + #x0 = self.qp.qpe[itemp].real - self.qp.e0 + #ys = ze0 / np.pi * np.abs(sig0.imag) / ((xs - x0) ** 2 + sig0.imag ** 2) + #ax1.plot(xs, ys) + + # Plot on the mass shell energy as vertical line + ax1.axvline(sig0.real, lw=1, color="red", ls="--") + ax1.annotate("OTMS", (sig0.real + 0.02, 5.0), textcoords='data', size=8) + ax1.set_xlabel(xlabel) - ax1.set_ylabel(r"$A(\omega)\,$(1/eV)") + ax1.set_ylabel(r"$A(\omega - \epsilon^0)\,$(1/eV)") set_axlims(ax1, xlims, "x") + if with_int_aw: + # Instantiate a second ax sharing the same x-axis + ax2 = ax1.twinx() + try : + from scipy.integrate import cumulative_trapezoid as cumtrapz + except ImportError: + from scipy.integrate import cumtrapz + + integral = cumtrapz(ys, x=xs, initial=0.0) + color = "black" + ax2.plot(xs, integral, color=color, ls="-.", lw=1) + ax2.set_ylabel(r"$\int^{\omega - \epsilon^0} A(\omega')\,d\omega'$", color=color) + set_axlims(ax2, xlims, "x") + if "title" not in kwargs: title = "K-point: %s, band: %d, spin: %d, T=%.1f K" % ( repr(self.kpoint), self.band, self.spin, self.tmesh[itemp]) @@ -680,7 +773,7 @@ def plot_qpsolution(self, itemp=0, ax_list=None, xlims=None, fontsize=8, **kwarg return fig -class A2feph(object): +class A2feph: r""" Eliashberg function :math:`\alpha^2F_{nk}(\omega)` obained within the adiabatic approximation (phonon freqs in Sigma are ignored) @@ -710,7 +803,7 @@ def __init__(self, mesh, gkq2, fan, dw, spin, kpoint, band): self.spin, self.kpoint, self.band = spin, kpoint, band @add_fig_kwargs - def plot(self, ax=None, units="meV", what="fandw", exchange_xy=False, with_ahc_zpr=False, fontsize=12, **kwargs): + def plot(self, ax=None, units="meV", what="fandw", exchange_xy=False, with_ahc_zpr=False, fontsize=8, **kwargs) -> Figure: """ Plot the Eliashberg function. @@ -743,7 +836,7 @@ def get_xy(x, y): if with_ahc_zpr: from scipy.integrate import cumtrapz integral = cumtrapz(sig_tot, x=self.wmesh, initial=True) #/ 2.0 - print("ZPR: ", integral[-1]) + #print("ZPR: ", integral[-1]) xs, ys = get_xy(wmesh, integral) ax2 = ax.twinx() ax2.plot(xs, ys, label=r"$ZPR(\omega)$", **kwargs) @@ -791,13 +884,13 @@ class SigEPhFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter) color_spin = {0: "k", 1: "r"} @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> SigEPhFile: """Initialize the object from a netcdf file.""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) - self.reader = r = SigmaPhReader(filepath) + self.reader = self.r = r = SigmaPhReader(filepath) # Get important dimensions. self.nkcalc = r.nkcalc @@ -805,6 +898,7 @@ def __init__(self, filepath): self.nqbz = r.nqbz self.nqibz = r.nqibz self.ngqpt = r.ngqpt + self.ddb_ngqpt = r.ddb_ngqpt self.symsigma = r.read_value("symsigma") # 4 for FAN+DW, -4 for Fan Imaginary part @@ -814,9 +908,9 @@ def __init__(self, filepath): self.zcut = r.read_value("eta") self.nbsum = int(r.read_value("nbsum")) - self.bstart_sk = self.reader.bstart_sk - self.nbcalc_sk = self.reader.nbcalc_sk - self.bstop_sk = self.reader.bstop_sk + self.bstart_sk = self.r.bstart_sk + self.nbcalc_sk = self.r.nbcalc_sk + self.bstop_sk = self.r.bstop_sk """ def get_fundamental_gaps(self): @@ -825,7 +919,7 @@ def get_fundamental_gaps(self): ib_homo = ib_lumo - 1 # nctkarr_t("qp_enes", "dp", "two, ntemp, max_nbcalc, nkcalc, nsppol") - qpes = self.reader.read_value("qp_enes", cmode="c").real * abu.Ha_eV + qpes = self.r.read_value("qp_enes", cmode="c").real * abu.Ha_eV for spin in range(self.nsppol): for ikc, kpoint in enumerate(self.sigma_kpoints): qpes[spin, ikc, :, :] @@ -840,7 +934,7 @@ def difference_matrix(a): ik_homo = self.sigkpt2index(kset.in_state.kpoint) ik_lumo = self.sigkpt2index(kset.out_state.kpoint) # nctkarr_t("qp_enes", "dp", "two, ntemp, max_nbcalc, nkcalc, nsppol") - qpes = self.reader.read_value("qp_enes", cmode="c") * units.Ha_eV + qpes = self.r.read_value("qp_enes", cmode="c") * units.Ha_eV qpes[spin, ik_homo, ib_homo].real qpes[spin, ik_lumo, ib_lumo].real """ @@ -849,8 +943,8 @@ def __str__(self): """String representation.""" return self.to_string() - def to_string(self, verbose=0): - """String representation.""" + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosity level ``verbose``.""" lines = []; app = lines.append app(marquee("File Info", mark="=")) @@ -866,43 +960,47 @@ def to_string(self, verbose=0): app("Calculation type: Imaginary part of SigmaEPh") else: app("Calculation type: Real + Imaginary part of SigmaEPh") - app("Number of k-points computed: %d" % (self.nkcalc)) + app("Number of k-points in Sigma_{nk}: %d" % (self.nkcalc)) # These variables have added recently - sigma_ngkpt = self.reader.read_value("sigma_ngkpt", default=None) - sigma_erange = self.reader.read_value("sigma_erange", default=None) - #dvdb_add_lr = self.reader.read_value("dvdb_add_lr", default=None) + sigma_ngkpt = self.r.read_value("sigma_ngkpt", default=None) + sigma_erange = self.r.read_value("sigma_erange", default=None) + #dvdb_add_lr = self.r.read_value("dvdb_add_lr", default=None) app("sigma_ngkpt: %s, sigma_erange: %s" % (sigma_ngkpt, sigma_erange)) - app("Max bstart: %d, min bstop: %d" % (self.reader.max_bstart, self.reader.min_bstop)) - app("Ab-initio q-mesh: nqibz: %s, nqbz: %s, ngqpt: %s" % (self.nqibz, self.nqbz, str(self.ngqpt))) - eph_ngqpt_fine = self.reader.read_value("eph_ngqpt_fine") + app("Max bstart: %d, min bstop: %d" % (self.r.max_bstart, self.r.min_bstop)) + app("Initial ab-initio q-mesh:\n\tddb_ngqpt: %s " % str(self.ddb_ngqpt)) + eph_ngqpt_fine = self.r.read_value("eph_ngqpt_fine") + if np.all(eph_ngqpt_fine == 0): eph_ngqpt_fine = self.ngqpt app("q-mesh for self-energy integration (eph_ngqpt_fine): %s" % (str(eph_ngqpt_fine))) - app("K-mesh for electrons:") - app(self.ebands.kpoints.ksampling.to_string(verbose=verbose)) - app("Number of bands included in self-energy: %d" % (self.nbsum)) - app("zcut: %.5f [Ha], %.3f (eV)" % (self.zcut, self.zcut * abu.Ha_eV)) + app("k-mesh for electrons:") + app("\t" + self.ebands.kpoints.ksampling.to_string(verbose=verbose)) + app("Number of bands included in e-ph self-energy sum: %d" % (self.nbsum)) + app("zcut: %.5f (Ha), %.3f (eV)" % (self.zcut, self.zcut * abu.Ha_eV)) app("Number of temperatures: %d, from %.1f to %.1f (K)" % (self.ntemp, self.tmesh[0], self.tmesh[-1])) app("symsigma: %s" % (self.symsigma)) app("Has Eliashberg function: %s" % (self.has_eliashberg_function)) app("Has Spectral function: %s" % (self.has_spectral_function)) - # Build Table with direct gaps. Only the results for the first and the last T are shown if not verbose. + # Build table with direct gaps. Only the results for the first and the last T are shown if not verbose. if verbose: it_list = list(range(self.ntemp)) else: it_list = [0, -1] if self.ntemp != 1 else [0] + app("\nPrinting QP results for %d temperatures. Use --verbose to print all results." % len(it_list)) if not self.imag_only: # QP corrections for it in it_list: - app("\nKS and QP direct gaps for T = %.1f K:" % self.tmesh[it]) + app("\nKS, QP (Z factor) and on-the-mass-shell (OTMS) direct gaps in eV for T = %.1f K:" % self.tmesh[it]) data = [] for ikc, kpoint in enumerate(self.sigma_kpoints): for spin in range(self.nsppol): ks_gap = self.ks_dirgaps[spin, ikc] qp_gap = self.qp_dirgaps_t[spin, ikc, it] - #qp_gap_adb = self.qp_dirgaps_adb_t[spin, ikc, it] - data.append([spin, repr(kpoint), ks_gap, qp_gap, qp_gap - ks_gap]) - app(str(tabulate(data, headers=["Spin", "k-point", "KS_gap", "QP_gap", "QP - KS"], floatfmt=".3f"))) + oms_gap = self.qp_dirgaps_otms_t[spin, ikc, it] + data.append([spin, repr(kpoint), ks_gap, qp_gap, qp_gap - ks_gap, oms_gap, oms_gap - ks_gap]) + app(str(tabulate(data, + headers=["Spin", "k-point", "KS_gap", "QPZ0_gap", "QPZ0 - KS", "OTMS_gap", "OTMS - KS"], + floatfmt=".3f"))) app("") #else: # Print info on Lifetimes? @@ -918,38 +1016,38 @@ def to_string(self, verbose=0): return "\n".join(lines) @lazy_property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object.""" - return self.reader.read_ebands() + return self.r.read_ebands() @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure - def close(self): + def close(self) -> None: """Close the file.""" - self.reader.close() + self.r.close() @lazy_property - def has_spectral_function(self): + def has_spectral_function(self) -> bool: """True if file contains spectral function data.""" - return self.reader.nwr != 0 + return self.r.nwr != 0 @lazy_property - def has_eliashberg_function(self): + def has_eliashberg_function(self) -> bool: """True if file contains Eliashberg functions.""" - return self.reader.gfw_nomega > 0 + return self.r.gfw_nomega > 0 @property def sigma_kpoints(self): """The K-points where QP corrections have been calculated.""" - return self.reader.sigma_kpoints + return self.r.sigma_kpoints @property def tmesh(self): """Temperature mesh in Kelvin.""" - return self.reader.tmesh + return self.r.tmesh @lazy_property def kcalc2ibz(self): @@ -957,19 +1055,23 @@ def kcalc2ibz(self): Return a mapping of the kpoints at which the self energy was calculated and the ibz i.e. the list of k-points in the band structure used to construct the self-energy. """ + # nctkarr_t("kcalc2ibz", "int", "nkcalc, six") + kcalc2ibz_map = self.r.read_value("kcalc2ibz") + return kcalc2ibz_map[0] - 1 + # TODO: This field is not available in the netcdf file. - if (len(self.sigma_kpoints) == len(self.ebands.kpoints) and - all(k1 == k2 for (k1, k2) in zip(self.sigma_kpoints, self.ebands.kpoints))): - return np.arange(len(self.sigma_kpoints)) + #if (len(self.sigma_kpoints) == len(self.ebands.kpoints) and + # all(k1 == k2 for (k1, k2) in zip(self.sigma_kpoints, self.ebands.kpoints))): + # return np.arange(len(self.sigma_kpoints)) - # Generic case - # Map sigma_kpoints to ebands.kpoints - kcalc2ibz = np.empty(self.nkcalc, dtype=np.int) - for ikc, sigkpt in enumerate(self.sigma_kpoints): - kcalc2ibz[ikc] = self.ebands.kpoints.index(sigkpt) + ## Generic case + ## Map sigma_kpoints to ebands.kpoints + #kcalc2ibz = np.empty(self.nkcalc, dtype=int) + #for ikc, sigkpt in enumerate(self.sigma_kpoints): + # kcalc2ibz[ikc] = self.ebands.kpoints.index(sigkpt) - #assert np.all(kcalc2ibz == self.reader.read_value("kcalc2ibz")[0] - 1) - return kcalc2ibz + ##assert np.all(kcalc2ibz == self.r.read_value("kcalc2ibz")[0] - 1) + #return kcalc2ibz @lazy_property def ibz2kcalc(self): @@ -977,7 +1079,7 @@ def ibz2kcalc(self): Mapping IBZ --> K-points in self-energy. Set to -1 if IBZ k-point not present. """ - ibz2kcalc = np.ones(len(self.ebands.kpoints), dtype=np.int) + ibz2kcalc = -np.ones(len(self.ebands.kpoints), dtype=int) for ikc, ik_ibz in enumerate(self.kcalc2ibz): ibz2kcalc[ik_ibz] = ikc return ibz2kcalc @@ -987,32 +1089,45 @@ def ks_dirgaps(self): """ |numpy-array| of shape [nsppol, nkcalc] with the KS gaps in eV ordered as kcalc. """ - return self.reader.read_value("ks_gaps") * abu.Ha_eV + return self.r.read_value("ks_gaps") * abu.Ha_eV @lazy_property def qp_dirgaps_t(self): """ - |numpy-array| of shape [nsppol, nkcalc, ntemp] with the QP gaps in eV ordered as kcalc. + |numpy-array| of shape [nsppol, nkcalc, ntemp] with the QP direct gap in eV ordered as kcalc. + QP energies are computed with the linearized QP equation (Z factor) + """ + return self.r.read_value("qp_gaps") * abu.Ha_to_eV + + @lazy_property + def qp_dirgaps_otms_t(self): + """ + |numpy-array| of shape [nsppol, nkcalc, ntemp] with the QP direct gap in eV ordered as kcalc. + QP energies are computed with the on-the-mass-shell approximation """ - return self.reader.read_value("qp_gaps") * abu.Ha_to_eV + try: + return self.r.read_value("qpoms_gaps") * abu.Ha_to_eV + except Exception: + #cprint("Reading old deprecated sigeph file!", "yellow") + return self.r.read_value("qpadb_enes") * abu.Ha_to_eV @lazy_property def mu_e(self): """mu_e[ntemp] chemical potential (eV) of electrons for the different temperatures.""" - return self.reader.read_value("mu_e") * abu.Ha_eV + return self.r.read_value("mu_e") * abu.Ha_eV @lazy_property - def edos(self): + def edos(self) -> ElectronDos: """ |ElectronDos| object computed by Abinit with the input WFK file without doping (if any). Since this field is optional, None is returned if netcdf variable is not present """ - if "edos_mesh" not in self.reader.rootgrp.variables: return None + if "edos_mesh" not in self.r.rootgrp.variables: return None # See m_ebands.edos_ncwrite for fileformat - mesh = self.reader.read_value("edos_mesh") * abu.Ha_eV + mesh = self.r.read_value("edos_mesh") * abu.Ha_eV # nctkarr_t("edos_dos", "dp", "edos_nw, nsppol_plus1"), & # dos(nw,0:nsppol) Total DOS, spin up and spin down component. - spin_dos = self.reader.read_value("edos_dos") / abu.Ha_eV + spin_dos = self.r.read_value("edos_dos") / abu.Ha_eV nelect = self.ebands.nelect fermie = self.ebands.fermie @@ -1023,7 +1138,7 @@ def sigkpt2index(self, kpoint): Returns the index of the self-energy k-point in sigma_kpoints Used to access data in the arrays that are dimensioned with [0:nkcalc] """ - return self.reader.sigkpt2index(kpoint) + return self.r.sigkpt2index(kpoint) def find_qpkinds(self, qp_kpoints): """ @@ -1053,7 +1168,7 @@ def find_qpkinds(self, qp_kpoints): ik_list = duck.list_ints(qp_kpoints) items = [self.sigma_kpoints[ikc] for ikc in ik_list], ik_list else: - ik_list = [self.reader.sigkpt2index(kpt) for kpt in qp_kpoints] + ik_list = [self.r.sigkpt2index(kpt) for kpt in qp_kpoints] qp_kpoints = [self.sigma_kpoints[ikc] for ikc in ik_list] items = qp_kpoints, ik_list else: @@ -1071,23 +1186,23 @@ def find_qpkinds(self, qp_kpoints): return _MyQpkindsList(zip(items[0], items[1])) @lazy_property - def params(self): - """:class:`OrderedDict` with the convergence parameters, e.g. ``nbsum``.""" + def params(self) -> dict: + """dict with the convergence parameters, e.g. ``nbsum``.""" od = OrderedDict([ ("nbsum", self.nbsum), ("zcut", self.zcut), ("symsigma", self.symsigma), - # TODO: Remove? - ("nqbz", self.reader.nqbz), - ("nqibz", self.reader.nqibz), + ("nqbz", self.r.nqbz), + ("nqibz", self.r.nqibz), ]) # Add EPH parameters. - od.update(self.reader.common_eph_params) + od.update(self.r.common_eph_params) return od def get_sigeph_skb(self, spin, kpoint, band): - return self.reader.read_sigeph_skb(spin, kpoint, band) + """"Return e-ph self-energy for the given (spin, kpoint, band).""" + return self.r.read_sigeph_skb(spin, kpoint, band) #def get_arpes_plotter(self): # from abipy.electrons.arpes import ArpesPlotter @@ -1098,7 +1213,7 @@ def get_sigeph_skb(self, spin, kpoint, band): # arpes_ebands = self.ebands.select_bands(range(minb, maxb), kinds=kinds) # return ArpesPlotter(arpes_ebands, aw, aw_meshes, self.tmesh) - def get_dataframe(self, itemp=None, with_params=True, with_spin="auto", ignore_imag=False): + def get_dataframe(self, itemp=None, with_params=True, with_spin="auto", ignore_imag=False) -> pd.DataFrame: """ Returns |pandas-Dataframe| with QP results for all k-points, bands and spins included in the calculation. @@ -1117,45 +1232,33 @@ def get_dataframe(self, itemp=None, with_params=True, with_spin="auto", ignore_i return pd.concat(df_list) - def get_gaps_dataframe(self, itemp=None, with_params=False, ignore_imag=False): + def get_dirgaps_dataframe(self, kpoint, itemp=None, spin=0, with_params=False) -> pd.DataFrame: """ - Returns |pandas-DataFrame| with QP results for the VBM and CBM. + Returns |pandas-DataFrame| with QP direct gaps at the given k-point Args: - with_params: False to exclude calculation parameters from the dataframe. + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or index. itemp: Temperature index, if None all temperatures are returned. - ignore_imag: Only real part is returned if ``ignore_imag``. + spin: Spin index + with_params: False to exclude calculation parameters from the dataframe. """ - ebands = self.ebands - # Assume non magnetic semiconductor. - #iv = int(ebands.nelect) // 2 - 1 - - #enough_bands = (ebands.mband > ebands.nspinor * ebands.nelect // 2) - #if enough_bands and not ebands.has_metallic_scheme: - spin = 0 - - gap = ebands.direct_gaps[spin] - #kpoint = gap.kpoint - #gap.in_state.band - #gap.out_state.band - #fgap = ebands.fundamental_gaps[spin].energy - #ignore_imag = True - #ikc = self.sigkpt2index(kpoint) - - with_spin = self.nsppol == 2 + ikc = self.sigkpt2index(kpoint) + it_list = list(range(self.ntemp)) if itemp is None else [int(itemp)] + rows = [] - for state in (gap.in_state, gap.out_state): - # Read QP data. - qp = self.reader.read_qp(spin, state.kpoint, state.band, ignore_imag=ignore_imag) - # Convert to dataframe and add other entries useful when comparing different calculations. - rows.append(qp.get_dataframe(with_spin=with_spin, params=self.params if with_params else None)) + for it in it_list: + d = dict(T=self.tmesh[it], + ks_gap=self.ks_dirgaps[spin, ikc], + qp_gap=self.qp_dirgaps_t[spin, ikc, it], + otms_gap=self.qp_dirgaps_otms_t[spin, ikc, it]) - df = pd.concat(rows) - if itemp is not None: df = df[df["tmesh"] == self.tmesh[itemp]] - return df + if with_params: d.update(self.params) + rows.append(d) + + return pd.DataFrame(rows) def get_dataframe_sk(self, spin, kpoint, itemp=None, index=None, - with_params=False, with_spin="auto", ignore_imag=False): + with_params=False, with_spin="auto", ignore_imag=False) -> pd.DataFrame: """ Returns |pandas-DataFrame| with QP results for the given (spin, k-point). @@ -1173,7 +1276,7 @@ def get_dataframe_sk(self, spin, kpoint, itemp=None, index=None, rows = [] for band in range(self.bstart_sk[spin, ikc], self.bstop_sk[spin, ikc]): # Read QP data. - qp = self.reader.read_qp(spin, ikc, band, ignore_imag=ignore_imag) + qp = self.r.read_qp(spin, ikc, band, ignore_imag=ignore_imag) # Convert to dataframe and add other entries useful when comparing different calculations. rows.append(qp.get_dataframe(with_spin=with_spin, params=self.params if with_params else None)) @@ -1192,7 +1295,6 @@ def get_linewidth_dos(self, method="gaussian", e0="fermie", step=0.1, width=0.2) Returns: |ElectronDos| object. """ - ebands = self.ebands ntemp = self.ntemp tmesh = self.tmesh @@ -1215,7 +1317,7 @@ def get_linewidth_dos(self, method="gaussian", e0="fermie", step=0.1, width=0.2) for i, ik in enumerate(self.kcalc2ibz): weight = ebands.kpoints.weights[ik] for band in range(self.bstart_sk[spin, i], self.bstop_sk[spin, i]): - qp = self.reader.read_qp(spin,i,band) + qp = self.r.read_qp(spin,i,band) e0 = qp.e0 for it in range(ntemp): linewidth = abs(qp.fan0.imag[it]) @@ -1226,81 +1328,98 @@ def get_linewidth_dos(self, method="gaussian", e0="fermie", step=0.1, width=0.2) # TODO: Specialized object with ElectronDos list? return [ElectronDos(mesh, dos_t, nelect, fermie=fermie) for dos_t in dos] - def get_qp_array(self,ks_ebands_kpath=None,mode="qp"): + def get_qp_array(self, ks_ebands_kpath=None, mode="qp", rta_type="mrta"): """ Get the lifetimes in an array with spin, kpoint and band dimensions + + Args: + rta_type: "serta" for SERTA linewidths or "mrta" for MRTA linewidths. """ if mode == "qp": # Read QP energies from file (real + imag part) and compute corrections if ks_ebands_kpath. # nctkarr_t("qp_enes", "dp", "two, ntemp, max_nbcalc, nkcalc, nsppol") - qpes = self.reader.read_value("qp_enes", cmode="c") * abu.Ha_eV + qpes = self.r.read_value("qp_enes", cmode="c") * abu.Ha_eV + elif mode == "ks+lifetimes": - qpes_im = self.reader.read_value("vals_e0ks", cmode="c").imag * abu.Ha_to_eV - qpes_re = self.reader.read_value("ks_enes") * abu.Ha_to_eV + # nctkarr_t("ks_enes", "dp", "max_nbcalc, nkcalc, nsppol") + # nctkarr_t("vals_e0ks", "dp", "two, ntemp, max_nbcalc, nkcalc, nsppol") + qpes_re = self.r.read_value("ks_enes") * abu.Ha_to_eV + + if rta_type == "serta": + qpes_im = self.r.read_value("vals_e0ks", cmode="c").imag * abu.Ha_to_eV + elif rta_type == "mrta": + qpes_im = self.r.read_value("linewidth_mrta") * abu.Ha_to_eV + else: + raise ValueError("Invalid rta_type: `%s`" % rta_type) + qpes = qpes_re[:,:,:,np.newaxis] + 1j * qpes_im + else: - raise ValueError("Invalid interpolation mode: %s can be either 'qp' or 'ks+lifetimes'") + raise ValueError("Invalid interpolation mode: %s can be either 'qp' or 'ks+lifetimes'" % mode) if ks_ebands_kpath is not None: if ks_ebands_kpath.structure != self.structure: cprint("sigres.structure and ks_ebands_kpath.structures differ. Check your files!", "red") + # MG FIXME: Not sure this part is OK # nctkarr_t("ks_enes", "dp", "max_nbcalc, nkcalc, nsppol") - ks_enes = self.reader.read_value("ks_enes") * abu.Ha_to_eV + ks_enes = self.r.read_value("ks_enes") * abu.Ha_to_eV for itemp in range(self.ntemp): qpes[:, :, :, itemp] -= ks_enes # Note there's no guarantee that the sigma_kpoints and the corrections have the same k-point index. # Be careful because the order of the k-points and the band range stored in the SIGRES file may differ ... # HM: Map the bands from sigeph to the electron bandstructure - nkpoints = len(self.sigma_kpoints) - nbands = self.reader.bstop_sk.max() - qpes_new = np.zeros((self.nsppol,nkpoints,nbands,self.ntemp),dtype=np.complex) + nkibz = len(self.ebands.kpoints) + if nkibz != len(self.sigma_kpoints): + cprint("SIGPEH file does not contain QP data for all the k-points in the IBZ!", "yellow") + + nband = self.r.bstop_sk.max() + qpes_new = np.zeros((self.nsppol, nkibz, nband, self.ntemp), dtype=complex) + for spin in range(self.nsppol): - for i,ik in enumerate(self.kcalc2ibz): - for nb,band in enumerate(range(self.bstart_sk[spin, i], self.bstop_sk[spin, i])): - qpes_new[spin,ik,band] = qpes[spin,ik,nb] + for ikc, ikibz in enumerate(self.kcalc2ibz): + for ibc, band in enumerate(range(self.bstart_sk[spin, ikc], self.bstop_sk[spin, ikc])): + qpes_new[spin, ikibz, band] = qpes[spin, ikc, ibc] return qpes_new - def get_lifetimes_boltztrap(self, basename, workdir=None): + def get_lifetimes_boltztrap(self, basename, rta_type="mrta", workdir=None): """ - Get basename.tau and basename.energy text files to be used in Boltztrap code - for transport calculations + Produce basename.tau and basename.energy text files to be used + in Boltztrap code for transport calculations. Args: basename: The basename of the files to be produced workdir: Directory where files will be produced. None for current working directory. """ - #TODO move this to AbipyBoltztrap class workdir = os.getcwd() if workdir is None else str(workdir) # get the lifetimes as an array - qpes = self.get_qp_array(mode='ks+lifetimes') + qpes = self.get_qp_array(mode='ks+lifetimes', rta_type=rta_type) # read from this class - nspn = self.nspden - nkpt = self.nkpt + nkibz = self.nkpt kpoints = self.kpoints - bstart = self.reader.max_bstart - bstop = self.reader.min_bstop + bstart = self.r.max_bstart + bstop = self.r.min_bstop ntemp = self.ntemp tmesh = self.tmesh - fermie = self.ebands.fermie * abu.eV_Ry + fermie_ry = self.ebands.fermie * abu.eV_Ry struct = self.ebands.structure def write_file(filename, tag, function, T=None): """Function to write files for BoltzTraP""" with open(os.path.join(workdir, filename), 'wt') as f: ttag = ' for T=%12.6lf' % T if T else '' - f.write('BoltzTraP %s file generated by abipy%s.\n' % (tag,ttag)) - f.write('%5d %5d %20.12e ! nk, nspin : lifetimes below in s \n' % (nkpt, nspn, fermie)) - for ispin in range(nspn): - for ik in range(nkpt): + f.write('BoltzTraP %s file generated by abipy%s.\n' % (tag, ttag)) + f.write('%5d %5d %20.12e ! nk, nspin : lifetimes below in s \n' % (nkibz, self.nsppol, fermie_ry)) + for ispin in range(self.nsppol): + for ik in range(nkibz): kpt = kpoints[ik] fmt = '%20.12e ' * 3 + '%d !kpt nband\n' % (bstop - bstart) f.write(fmt % tuple(kpt)) - for ibnd in range(bstart,bstop): - f.write('%20.12e\n' % (function(qpes[ispin,ik,ibnd,itemp]))) + for ibnd in range(bstart, bstop): + f.write('%20.12e\n' % (function(qpes[ispin, ik, ibnd, itemp]))) # write tau for itemp in range(ntemp): @@ -1365,13 +1484,17 @@ def interpolate(self, itemp_list=None, lpratio=5, mode="qp", ks_ebands_kpath=Non Returns: class:`TdepElectronBands`. """ - # TODO: Consistency check. + # Consistency check. errlines = [] eapp = errlines.append - if len(self.sigma_kpoints) != len(self.ebands.kpoints): - eapp("QP energies should be computed for all k-points in the IBZ but nkibz != nkptgw") if len(self.sigma_kpoints) == 1: eapp("QP Interpolation requires nkptgw > 1.") + + # NB: it's possible to compute QP on a submesh with sigma_ngkpt (default is 0, 0, 0) + sigma_ngkpt = self.r.read_value("sigma_ngkpt", default=None) + if len(self.sigma_kpoints) != len(self.ebands.kpoints) and np.all(sigma_ngkpt == 0): + eapp("QP energies should be computed for all k-points in the IBZ but nkibz != nkptgw") + #if (np.any(self.bstop_sk[0, 0] != self.gwbstop_sk): # cprint("Highest bdgw band is not constant over k-points. QP Bands will be interpolated up to...") #if (np.any(self.gwbstart_sk[0, 0] != self.gwbstart_sk): @@ -1385,7 +1508,7 @@ def interpolate(self, itemp_list=None, lpratio=5, mode="qp", ks_ebands_kpath=Non if ks_ebands_kpath is None: # Generate k-points for interpolation. Will interpolate all bands available in the sigeph file. - bstart, bstop = self.reader.max_bstart, self.reader.min_bstop + bstart, bstop = self.r.max_bstart, self.r.min_bstop if vertices_names is None: vertices_names = [(k.frac_coords, k.name) for k in self.structure.hsym_kpoints] kpath = Kpath.from_vertices_and_names(self.structure, vertices_names, line_density=line_density) @@ -1400,8 +1523,8 @@ def interpolate(self, itemp_list=None, lpratio=5, mode="qp", ks_ebands_kpath=Non # Find the band range for the interpolation. bstart, bstop = 0, ks_ebands_kpath.nband # FIXME what about bstart? - bstop = min(bstop, self.reader.min_bstop) - if ks_ebands_kpath.nband < self.reader.min_bstop: + bstop = min(bstop, self.r.min_bstop) + if ks_ebands_kpath.nband < self.r.min_bstop: cprint("Number of bands in KS band structure smaller than the number of bands in GW corrections", "red") cprint("Highest GW bands will be ignored", "red") @@ -1414,18 +1537,20 @@ def interpolate(self, itemp_list=None, lpratio=5, mode="qp", ks_ebands_kpath=Non # and re-apply them on top of the KS band structure. gw_kcoords = [k.frac_coords for k in self.sigma_kpoints] - qpes = self.get_qp_array(ks_ebands_kpath=ks_ebands_kpath,mode=mode) + # MG FIXME: Not sure this part is OK + qpes = self.get_qp_array(ks_ebands_kpath=ks_ebands_kpath, mode="qp") # Build interpolator for QP corrections. from abipy.core.skw import SkwInterpolator cell = (self.structure.lattice.matrix, self.structure.frac_coords, self.structure.atomic_numbers) - has_timrev = has_timrev_from_kptopt(self.reader.read_value("kptopt")) + has_timrev = has_timrev_from_kptopt(self.r.read_value("kptopt")) qp_ebands_kpath_t, qp_ebands_kmesh_t, interpolators_t = [], [], [] itemp_list = list(range(self.ntemp)) if itemp_list is None else duck.list_ints(itemp_list) for itemp in itemp_list: skw_reim = [] for reim in ("real", "imag"): + # nctkarr_t("qp_enes", "dp", "two, ntemp, max_nbcalc, nkcalc, nsppol") qpdata = qpes[:, :, bstart:bstop, itemp] qpdata = getattr(qpdata, reim).copy() @@ -1494,13 +1619,16 @@ def interpolate(self, itemp_list=None, lpratio=5, mode="qp", ks_ebands_kpath=Non ks_ebands_kmesh, qp_ebands_kmesh_t, interpolators_t) @add_fig_kwargs - def plot_qpgaps_t(self, qp_kpoints=0, ax_list=None, plot_qpmks=True, fontsize=8, **kwargs): + def plot_qpgaps_t(self, qp_kpoints=0, qp_type="qpz0", ax_list=None, plot_qpmks=True, + fontsize=8, **kwargs) -> Figure: """ Plot the KS and the QP(T) direct gaps for all the k-points available in the SIGEPH file. Args: qp_kpoints: List of k-points in self-energy. Accept integers (list or scalars), list of vectors, or None to plot all k-points. + qp_type: "qpz0" for linearized QP equation with Z factor at KS e0, + "otms" for on-the-mass-shell results. ax_list: List of |matplotlib-Axes| or None if a new figure should be created. plot_qpmks: If False, plot QP_gap, KS_gap else (QP_gap - KS_gap) fontsize: legend and title fontsize. @@ -1516,17 +1644,24 @@ def plot_qpgaps_t(self, qp_kpoints=0, ax_list=None, plot_qpmks=True, fontsize=8, ax_list = np.array(ax_list).ravel() label = kwargs.pop("label", None) + if qp_type not in {"qpz0", "otms"}: + raise ValueError("Invalid qp_type: `%s`" % qp_type) + for ix, ((kpt, ikc), ax) in enumerate(zip(qpkinds, ax_list)): for spin in range(self.nsppol): if not plot_qpmks: # Plot QP_{spin,kpt}(T) - ax.plot(self.tmesh, self.qp_dirgaps_t[spin, ikc], marker=self.marker_spin[spin], - label=label, **kwargs) #label="QP gap") + if qp_type == "qpz0": values = self.qp_dirgaps_t[spin, ikc] + if qp_type == "otms": values = self.qp_dirgaps_otms_t[spin, ikc] + ax.plot(self.tmesh, values, marker=self.marker_spin[spin], label=label, **kwargs) # Add KS gap (assumed at T=0). ax.scatter(0, self.ks_dirgaps[spin, ikc]) #, label="KS gap %s" % label) else: # Plot QP_{spin,kpt}(T) - KS_gap - ax.plot(self.tmesh, self.qp_dirgaps_t[spin, ikc] - self.ks_dirgaps[spin, ikc], + if qp_type == "qpz0": values = self.qp_dirgaps_t[spin, ikc] + if qp_type == "otms": values = self.qp_dirgaps_otms_t[spin, ikc] + + ax.plot(self.tmesh, values - self.ks_dirgaps[spin, ikc], marker=self.marker_spin[spin], label=label) ax.grid(True) @@ -1536,14 +1671,14 @@ def plot_qpgaps_t(self, qp_kpoints=0, ax_list=None, plot_qpmks=True, fontsize=8, ax.set_ylabel("QP - KS gap (eV)") else: ax.set_ylabel("QP direct gap (eV)") - ax.set_title("k:%s" % (repr(kpt)), fontsize=fontsize) + ax.set_title("k:%s (%s)" % (repr(kpt), qp_type.upper()), fontsize=fontsize) if label: ax.legend(loc="best", fontsize=fontsize, shadow=True) return fig @add_fig_kwargs - def plot_qpdata_t(self, spin, kpoint, band_list=None, fontsize=12, **kwargs): + def plot_qpdata_t(self, spin, kpoint, band_list=None, fontsize=8, **kwargs) -> Figure: """ Plot the QP results as function T for a given (spin, k-point) and all bands. @@ -1566,7 +1701,7 @@ def plot_qpdata_t(self, spin, kpoint, band_list=None, fontsize=12, **kwargs): ax_list = np.array(ax_list).ravel() # Read all QPs for this (spin, kpoint) and all bands. - qp_list = self.reader.read_qplist_sk(spin, kpoint) + qp_list = self.r.read_qplist_sk(spin, kpoint) for ix, (ax, what) in enumerate(zip(ax_list, what_list)): # Plot QP(T) @@ -1590,12 +1725,12 @@ def plot_qpdata_t(self, spin, kpoint, band_list=None, fontsize=12, **kwargs): @lazy_property def qplist_spin(self): """Tuple of :class:`QpTempList` objects indexed by spin.""" - return self.reader.read_allqps() + return self.r.read_allqps() @add_fig_kwargs def plot_qps_vs_e0(self, itemp_list=None, with_fields="all", reim="real", function=lambda x: x, exclude_fields=None, e0="fermie", - colormap="jet", xlims=None, ylims=None, ax_list=None, fontsize=8, **kwargs): + colormap="jet", xlims=None, ylims=None, ax_list=None, fontsize=8, **kwargs) -> Figure: """ Plot the QP results in the SIGEPH file as function of the initial KS energy. @@ -1607,8 +1742,8 @@ def plot_qps_vs_e0(self, itemp_list=None, with_fields="all", reim="real", reim: Plot the real or imaginary part function: Apply a function to the results before plotting exclude_fields: Similar to ``with_field`` but excludes fields. - e0: Option used to define the zero of energy in the band structure plot. Possible values: - - `fermie`: shift all eigenvalues to have zero energy at the Fermi energy (`self.fermie`). + e0: Option used to define the zero of energy. Possible values: + - `fermie`: shift energies to have zero energy at the Fermi level. - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV - None: Don't shift energies, equivalent to e0=0 ax_list: List of |matplotlib-Axes| for plot. If None, new figure is produced. @@ -1637,7 +1772,7 @@ def plot_qps_vs_e0(self, itemp_list=None, with_fields="all", reim="real", return fig @add_fig_kwargs - def plot_qpbands_ibzt(self, itemp_list=None, e0="fermie", colormap="jet", ylims=None, fontsize=8, **kwargs): + def plot_qpbands_ibzt(self, itemp_list=None, e0="fermie", colormap="jet", ylims=None, fontsize=8, **kwargs) -> Figure: r""" Plot the KS band structure in the IBZ with the QP(T) energies. @@ -1665,8 +1800,8 @@ def plot_qpbands_ibzt(self, itemp_list=None, e0="fermie", colormap="jet", ylims= cmap = plt.get_cmap(colormap) # Read QP energies: nctkarr_t("qp_enes", "dp", "two, ntemp, max_nbcalc, nkcalc, nsppol") - qpes = self.reader.read_value("qp_enes", cmode="c") * abu.Ha_eV - band_range = (self.reader.max_bstart, self.reader.min_bstop) + qpes = self.r.read_value("qp_enes", cmode="c") * abu.Ha_eV + band_range = (self.r.max_bstart, self.r.min_bstop) for spin, ax in zip(range(self.nsppol), ax_list): # Plot KS bands in the band range included in self-energy calculation. @@ -1687,105 +1822,471 @@ def plot_qpbands_ibzt(self, itemp_list=None, e0="fermie", colormap="jet", ylims= return fig @add_fig_kwargs - def plot_lws_vs_e0(self, itemp_list=None, ax=None, e0="fermie", exchange_xy=False, - colormap="jet", xlims=None, ylims=None, fontsize=8, **kwargs): + def plot_lws_vs_e0(self, rta_type="serta", itemp_list=None, ax=None, + colormap="jet", fontsize=8, **kwargs) -> Figure: r""" - Plot electron linewidths vs KS energy at temperature ``itemp`` + Plot phonon-induced linewidths vs KS energy for different temperatures. Args: + rta_type: "serta" for SERTA linewidths or "mrta" for MRTA linewidths. itemp_list: List of temperature indices to interpolate. None for all. ax: |matplotlib-Axes| or None if a new figure should be created. - e0: Option used to define the zero of energy in the band structure plot. Possible values: - - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (``self.fermie``). - - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV - - None: Don't shift energies, equivalent to e0=0 - function: Apply this function to the values before plotting - exchange_xy: True to exchange x-y axis. colormap: matplotlib color map. - xlims, ylims: Set the data limits for the x-axis or the y-axis. Accept tuple e.g. ``(left, right)`` - or scalar e.g. ``left``. If left (right) is None, default values are used fontsize: fontsize for titles and legend. Returns: |matplotlib-Figure| """ - # This is a bit slow if several k-points but data is scattered due to symsigma. ax, fig, plt = get_ax_fig_plt(ax=ax) - if "markersize" not in kwargs: kwargs["markersize"] = 2 - return self.plot_qps_vs_e0(itemp_list=itemp_list, with_fields="fan0", reim="imag", - function=abs, e0=e0, colormap=colormap, xlims=xlims, ylims=ylims, - exchange_xy=exchange_xy, ax_list=[ax], fontsize=fontsize, show=False, - **kwargs) + itemp_list = list(range(self.ntemp)) if itemp_list is None else duck.list_ints(itemp_list) + cmap = plt.get_cmap(colormap) + #if "markersize" not in kwargs: kwargs["markersize"] = 4 + + r = self.r + ks_enes = r.read_value("ks_enes") * abu.Ha_eV + + if rta_type == "serta": + lws_arr = r.read_value("vals_e0ks")[..., 1] + elif rta_type == "mrta": + lws_arr = r.read_value("linewidth_mrta") + else: + raise ValueError("Invalid rta_type: `%s`" % rta_type) + + ks_list, lws = [], [] + for it, itemp in enumerate(itemp_list): + for spin in range(self.nsppol): + for ikc, kpoint in enumerate(self.sigma_kpoints): + nb = r.nbcalc_sk[spin, ikc] + if it == 0: ks_list.extend(ks_enes[spin, ikc, :nb]) + lws.extend(lws_arr[spin, ikc, :nb, itemp]) + + nt = len(itemp_list) + ks_enes = np.reshape(np.array(ks_list), (self.nsppol, -1)) + lws = np.reshape(np.array(lws), (nt, self.nsppol, -1)) + + marker = kwargs.pop("marker", "o") + s = kwargs.pop("s", 20) + kw_color = kwargs.pop("color", None) + kw_label = kwargs.pop("label", None) + + for spin in range(self.nsppol): + spin_sign = +1 if spin == 0 else -1 + xs = ks_enes[spin].ravel() + for it, itemp in enumerate(itemp_list): + ys = spin_sign * lws[it, spin].ravel() + ax.scatter(xs, ys, + label=kw_label if kw_label is not None else + ("T = %.1f K" % self.tmesh[itemp] if spin == 0 else None), + color=kw_color if kw_color is not None else cmap(itemp / self.ntemp), + alpha=0.6, marker=marker, s=s, + ) + + ax.set_xlabel("Energy (eV)") + ax.set_ylabel("Linewidth") + ax.grid(True) + ax.legend(loc="best", fontsize=fontsize, shadow=True) + ax.set_title(rta_type.upper()) + + return fig @add_fig_kwargs - def plot_tau_vtau(self, itemp=0, ax_list=None, **kwargs): + def plot_tau_vtau(self, rta_type="serta", itemp_list=None, ax_list=None, + colormap="jet", fontsize=8, **kwargs) -> Figure: + """ + Plot transport lifetimes, group velocities and mean free path (v * tau). + as a function of the KS energy for a given relaxation time approximation. + + Args: + rta_type: "serta" for SERTA linewidths or "mrta" for MRTA linewidths. + itemp_list: List of temperature indices to interpolate. None for all. + ax_list: List of |matplotlib-Axes| for plot. If None, new figure is produced. + colormap: matplotlib color map. + fontsize: fontsize for titles and legend. + kwargs: Optional Keyword arguments. + + Returns: |matplotlib-Figure| + """ + itemp_list = list(range(self.ntemp)) if itemp_list is None else duck.list_ints(itemp_list) + + # Build grid with (3, 1) plots. + nrows, ncols = 3, 1 + ax_mat, fig, plt = get_axarray_fig_plt(ax_list, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=True) - r = self.reader + cmap = plt.get_cmap(colormap) + + # Read data from netcdf file: + # + # KS energies for nk states in Sigma_nk in Hartree units. + # nctkarr_t("ks_enes", "dp", "max_nbcalc, nkcalc, nsppol") + # # Diagonal elements of velocity operator in cartesian coordinates for all states in Sigma_nk. # nctkarr_t("vcar_calc", "dp", "three, max_nbcalc, nkcalc, nsppol")])) - # nctkarr_t("ks_enes", "dp", "max_nbcalc, nkcalc, nsppol") + # + # Diagonal matrix elements of self-energy in the KS basis set (imag gives SERTA linewidths) # nctkarr_t("vals_e0ks", "dp", "two, ntemp, max_nbcalc, nkcalc, nsppol") - v_var = r.read_variable("vcar_calc") - ks_enes_var = r.read_variable("ks_enes") - vals_e0ks_var = r.read_variable("vals_e0ks") + # + # lifetimes with MRTA + # nctkarr_t("linewidth_mrta", "dp", "ntemp, max_nbcalc, nkcalc, nsppol") + + r = self.r + ks_enes = r.read_value("ks_enes") * abu.Ha_eV + vcart = r.read_value("vcar_calc") + + if rta_type == "serta": + lws = r.read_value("vals_e0ks")[..., 1] + elif rta_type == "mrta": + lws = r.read_value("linewidth_mrta") + else: + raise ValueError("Invalid rta_type: `%s`" % rta_type) - ks_enes, taus, vels = [], [], [] - for spin in range(self.nsppol): - for ikc, kpoint in enumerate(self.sigma_kpoints): - nb = r.nbcalc_sk[spin, ikc] - ks_enes.extend(ks_enes_var[spin, ikc, :nb] * abu.Ha_eV) - # TODO: times conversion fact! - asimag = np.abs(vals_e0ks_var[spin, ikc, :nb, itemp, 1]) - asimag = np.where(asimag > 1e-8, asimag, 1e-8) - print(asimag) - taus.extend(1.0 / (2.0 * asimag)) - vels.extend(np.linalg.norm(v_var[spin, ikc, :nb, :], axis=-1)) - - ks_enes = np.reshape(np.array(ks_enes), (self.nsppol, -1)) - taus = np.reshape(np.array(taus), (self.nsppol, -1)) - vels = np.reshape(np.array(vels), (self.nsppol, -1)) - #ks_enes, taus, vels = [np.reshape(a, (self.nsppol, -1)) for a in map(np.array, (ks_enes, taus, vels))] - - #v = np.linalg.norm(v, axis=-1) - #nctkarr_t("vals_e0ks", "dp", "two, ntemp, max_nbcalc, nkcalc, nsppol"), & - #tau_var = r.read_variable("vals_e0ks")[..., itemp, 1] - #tau = 1.0 / (2.0 * np.abs(tau)) # TODO: times conversion fact! - #ks_enes = r.read_value("ks_enes") * abu.Ha_eV + def taus_from_lw(arr): + """Return transport lifetime from linewidth.""" + # TODO: times conversion fact! + asimag = np.abs(arr) + asimag = np.where(asimag > 1e-8, asimag, 1e-8) + return 1.0 / (2.0 * asimag) - nrows, ncols = 3, 1 - axmat, fig, plt = get_axarray_fig_plt(ax_list, nrows=nrows, ncols=ncols, - sharex=True, sharey=False, squeeze=True) + ks_list, vels, taus = [], [], [] + for it, itemp in enumerate(itemp_list): + for spin in range(self.nsppol): + for ikc, kpoint in enumerate(self.sigma_kpoints): + nb = r.nbcalc_sk[spin, ikc] + if it == 0: ks_list.extend(ks_enes[spin, ikc, :nb]) + taus.extend(taus_from_lw(lws[spin, ikc, :nb, itemp])) + vels.extend(np.linalg.norm(vcart[spin, ikc, :nb, :], axis=-1)) + + nt = len(itemp_list) + ks_enes = np.reshape(np.array(ks_list), (self.nsppol, -1)) + taus = np.reshape(np.array(taus), (nt, self.nsppol, -1)) + vels = np.reshape(np.array(vels), (nt, self.nsppol, -1)) data = { - 0: dict(vals=taus, ylabel="Tau"), - 1: dict(vals=vels, ylabel="Group velocity"), - 2: dict(vals=vels * taus, ylabel="Tau V"), + 0: dict(vals=taus, ylabel=r"$\tau}$"), + 1: dict(vals=vels, ylabel=r"$v$"), + 2: dict(vals=vels * taus, ylabel=r"$v\,\tau$"), } - for ix, ax in enumerate(axmat): + for ix, ax in enumerate(ax_mat): d = data[ix] for spin in range(self.nsppol): - xs, ys = ks_enes[spin].ravel(), d["vals"][spin].ravel() - ax.scatter(xs, ys) - if ix == len(axmat) - 1: - ax.set_xlabel("Energy (eV)") - if spin == 0: - ax.set_ylabel(d["ylabel"]) + spin_sign = +1 if spin == 0 else -1 + xs = ks_enes[spin].ravel() + for it, itemp in enumerate(itemp_list): + ys = spin_sign * d["vals"][it, spin].ravel() + ax.scatter(xs, ys, + label="T = %.1f K" % self.tmesh[itemp] if (ix == 0 and spin == 0) else None, + color=cmap(itemp / self.ntemp), alpha=kwargs.get("alpha", 0.6), + marker=kwargs.get("marker", "o"), s=kwargs.get("s", 20), + ) + + if ix == len(ax_mat) - 1: ax.set_xlabel("Energy (eV)") + if spin == 0: ax.set_ylabel(d["ylabel"]) + ax.grid(True) - #ax.legend(loc="best", fontsize=fontsize, shadow=True) + if ix == 0: ax.legend(loc="best", fontsize=fontsize, shadow=True) + + fig.suptitle(rta_type.upper()) + + return fig + + @add_fig_kwargs + def plot_scratew_skb(self, spin, kpoint, band, rta_type="serta", + ax=None, colormap="jet", fontsize=8, **kwargs) -> Figure: + """ + Plot the spectral decomposition of the scattering rate for a single (spin, kpoint, state) + as a function of the phonon energy for all temperatures. + + Args: + spin: Spin index (C convention, i.e >= 0). + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or integer defining the k-point in the kcalc array + band: band index. C convention so decremented by -1 wrt Fortran index. + rta_type: "serta" for SERTA linewidths or "mrta" for MRTA linewidths. + itemp_list: List of integers to select a particular temperature. None means all + ax: |matplotlib-Axes| or None if a new figure should be created. + colormap: matplotlib color map. + fontsize: legend and label fontsize. + kwargs: Keyword arguments passed to ax.plot + + Returns: |matplotlib-Figure| + """ + spin, ikc, ib, kpoint = self.r.get_sigma_skb_kpoint(spin, kpoint, band) + irta = {"serta": 0, "mrta": 1}[rta_type] + + # In Fortran, we have the netcdf variable: + # nctkarr_t("scratew", "dp", "phmesh_size, ntemp, max_nbcalc, two, nkcalc, nsppol") + var = self.r.read_variable("scratew") + vals_tw = var[spin, ikc, irta, ib] + phmesh = self.r.read_value("phmesh") + phmesh_mev = phmesh * abu.Ha_meV + + ax, fig, plt = get_ax_fig_plt(ax=ax) + other_ax = ax.twinx() + cmap = plt.get_cmap(colormap) + from scipy.integrate import cumtrapz + + for itemp, yw in enumerate(vals_tw): + color = cmap(itemp / len(self.tmesh)) + integ = cumtrapz(yw, x=phmesh, initial=0.0) * abu.Ha_THz + yw = yw * abu.Ha_THz / abu.Ha_meV + + ax.plot(phmesh_mev, yw, + color=color, label="T = %.1f K" % self.tmesh[itemp], + ) + + other_ax.plot(phmesh_mev, integ, + color=color, + ) + + ax.grid(True) + ax.set_xlabel(r"$\omega$ (meV)") + ax.set_ylabel(r"$\partial_\omega \tau^{-1}_{nk}$") + other_ax.set_ylabel(r"$\tau^{-1}_{nk}(\omega)$ (THz)") + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + if "title" not in kwargs: + ax.set_title("K-point: %s, band: %d, spin: %d (%s)" % (repr(kpoint), band, spin, rta_type.upper())) + + return fig + + @add_fig_kwargs + def plot_scratew(self, cbm_or_vbm, kt_fact=3/2, ewin_mev=1.0, spin=0, rta_type="serta", + ax=None, colormap="jet", fontsize=8, **kwargs) -> Figure: + """ + Plot the spectral decomposition of the scattering rate + as a function of the phonon energy for all temperatures. + + Args: + cbm_or_vbm: + kt_fact + ewin_mev: + spin: Spin index (C convention, i.e >= 0). + rta_type: "serta" for SERTA linewidths or "mrta" for MRTA linewidths. + ax: |matplotlib-Axes| or None if a new figure should be created. + colormap: matplotlib color map. + fontsize: legend and label fontsize. + kwargs: Keyword arguments passed to ax.plot + + Returns: |matplotlib-Figure| + """ + irta = {"serta": 0, "mrta": 1}[rta_type] + + # Find the (n, k) states inside the energy window of half width `ewin_mev` + # The window is centered around e0 where e0 depends on the band edge and the temperature. + ebands = self.ebands + if cbm_or_vbm == "cbm": + edge = ebands.lumos[spin] + sign = +1 + + elif cbm_or_vbm == "vbm": + edge = ebands.homos[spin] + sign = -1 + + print(f"Using {cbm_or_vbm} edge:", edge) + + # Compute erange for the different temperatures. + erange_itemp = [] + for kt_ev in self.r.ktmesh_ev: + e0 = edge.eig + sign * kt_ev * kt_fact + erange_itemp.append((e0 - ewin_mev / 1000, e0 + ewin_mev / 1000)) + + erange_itemp = np.array(erange_itemp) + + # Extract weights for the kcalc k-points from the weights in the IBZ (kpoint_weights) + weights_ibz = self.r.read_value("kpoint_weights") + weights_kcalc = [weights_ibz[ik_ibz] for ik_ibz in self.kcalc2ibz] + + # These are the KS eigenvalues for the kcalc k-points. + # nctkarr_t("ks_enes", "dp", "max_nbcalc, nkcalc, nsppol") + enes_ikc_b = self.r.read_variable("ks_enes")[spin] * abu.Ha_eV + + # In Fortran, we have the netcdf variable: + # nctkarr_t("scratew", "dp", "phmesh_size, ntemp, max_nbcalc, two, nkcalc, nsppol") + var = self.r.read_variable("scratew") + vals_kc_btw = var[spin, :, irta] + phmesh = self.r.read_value("phmesh") + phmesh_mev = phmesh * abu.Ha_meV + + data_tw = np.zeros((len(erange_itemp), len(phmesh))) + states_counter_t = np.zeros(len(erange_itemp)) + + for ikc, kpoint in enumerate(self.sigma_kpoints): + nb = self.r.nbcalc_sk[spin, ikc] + wtk = weights_kcalc[ikc] + # Find the e_nk inside the energy window and accumulate f(w) with IBZ weights. + for b, e in enumerate(enes_ikc_b[ikc, :nb]): + for itemp, erange in enumerate(erange_itemp): + if erange[1] >= e >= erange[0]: + #data_tw[itemp] += var[spin, ikc, irta] * wtk + data_tw[itemp] += vals_kc_btw[ikc, b, itemp] * wtk + states_counter_t[itemp] += 1 + + #for itemp, count in enumerate(states_counter_t): + # data_tw[itemp] /= count + + # Now plot the results. + ax, fig, plt = get_ax_fig_plt(ax=ax) + other_ax = ax.twinx() + cmap = plt.get_cmap(colormap) + from scipy.integrate import cumtrapz + + for itemp, yw in enumerate(data_tw): + print("Number of nk states found in energy window:", states_counter_t[itemp]) + color = cmap(itemp / len(self.tmesh)) + integ = cumtrapz(yw, x=phmesh, initial=0.0) * abu.Ha_THz + yw = yw * abu.Ha_THz / abu.Ha_meV + + ax.plot(phmesh_mev, yw, + color=color, label="T = %.1f K" % self.tmesh[itemp], + ) + + other_ax.plot(phmesh_mev, integ, + color=color, + ) + + ax.grid(True) + ax.set_xlabel(r"$\omega$ (meV)") + ax.set_ylabel(r"$\partial_\omega \tau^{-1}_{avg}$") + other_ax.set_ylabel(r"$\tau^{-1}_{avg}(\omega)$ (THz)") + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + #if "title" not in kwargs: + # ax.set_title(title) + + return fig + + @add_fig_kwargs + def plot_qpsolution_skb(self, spin, kpoint, band, itemp=0, with_int_aw=True, + ax_list=None, xlims=None, fontsize=8, **kwargs) -> Figure: + """ + Graphical representation of the QP solution(s) along the real axis including the + approximated solution obtained with the linearized equation and the on-the-mass-shell approach. + + Produce two subplots: + 1. Re/Imag part and intersection with omega - eKs + 2. A(w) + int^w A(w')dw' + OTMS + + Args: + spin: Spin index (C convention, i.e >= 0). + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or integer defining the k-point in the kcalc array + band: band index. C convention so decremented by -1 wrt Fortran index. + itemp: Temperature index. + with_int_aw: Plot cumulative integral of A(w). + ax_list: List of |matplotlib-Axes|. If None, new figure is produced. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + fontsize: legend and label fontsize. + kwargs: Keyword arguments passed to ax.plot + + Returns: |matplotlib-Figure| + """ + sigma = self.get_sigeph_skb(spin=spin, kpoint=kpoint, band=band) + return sigma.plot_qpsolution(itemp=itemp, with_int_aw=with_int_aw, + ax_list=ax_list, xlims=xlims, fontsize=fontsize, **kwargs) + + @add_fig_kwargs + def plot_qpsolution_sk(self, spin, kpoint, itemp=0, with_int_aw=True, + ax_list=None, xlims=None, fontsize=8, **kwargs) -> Figure: + """ + Produce grid of plots with graphical representation of the QP solution(s) along the real axis + for all computed bands at given spin and kpoint. See also plot_qpsolution_skb + + Args: + spin: Spin index (C convention, i.e >= 0). + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or integer defining the k-point in the kcalc array + band: band index. C convention so decremented by -1 wrt Fortran index. + itemp: Temperature index. + with_int_aw: Plot cumulative integral of A(w). + ax_list: List of |matplotlib-Axes|. If None, new figure is produced. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + fontsize: legend and label fontsize. + + Returns: |matplotlib-Figure| + """ + ikc = self.r.sigkpt2index(kpoint) + bmin, bmax = self.bstart_sk[spin, ikc], self.bstop_sk[spin, ikc] + + # Build grid plot. + nrows, ncols = (bmax - bmin), 2 + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + + for ib, band in enumerate(range(bmin ,bmax)): + self.plot_qpsolution_skb(spin, ikc, band, itemp=itemp, with_int_aw=with_int_aw, + ax_list=ax_mat[ib], xlims=xlims, fontsize=fontsize, show=False) + if ib != 0: + for ax in ax_mat[ib]: + set_visible(ax, False, "legend", "xlabel", "ylabel") return fig @add_fig_kwargs - def plot_a2fw_skb(self, spin, kpoint, band, what="auto", ax=None, fontsize=12, units="meV", **kwargs): + def plot_qpsolution_sklineb(self, spin, kbounds, band, itemp=0, with_int_aw=True, dist_tol=1e-6, + xlims=None, fontsize=8, **kwargs) -> Figure: + """ + Produce grid of plots with graphical representation of the QP solution(s) along the real axis + given spin and band and all (computed) kpoints along the segment defined by kbounds. + See also plot_qpsolution_skb + + Args: + spin: Spin index (C convention, i.e >= 0). + kbounds: List of two items defining the segment in k-space. + Accept two strings with the name of the k-points e.g. ["G", "X"] where G stands for Gamma + or two vectors with fractional coords e.g. [[0,0,0], [0.5,0,0]] + band: band index. C convention so decremented by -1 wrt Fortran index. + itemp: Temperature index. + with_int_aw: Plot cumulative integral of A(w). + dist_tol: A point is considered to be on the path if its distance from the line + is less than dist_tol. + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + fontsize: legend and label fontsize. + + Returns: |matplotlib-Figure| + """ + if not len(kbounds) == 2: + raise ValueError("kbounds must contain 2 items. Got `%s`" % str(kbounds)) + + # Find kpoints in self.kcalc along input segment. + cart_bounds = [] + for ik in range(2): + if duck.is_string(kbounds[ik]): + k = Kpoint.from_name_and_structure(kbounds[ik], self.structure) + else: + # Assume frac_coords + k = Kpoint(kbounds[ik], self.structure.reciprocal_lattice) + cart_bounds.append(k.cart_coords) + cart_bounds = np.reshape(np.array(cart_bounds), (2, 3)) + + # r.ikfound is a numpy array with the indices of the points lying on the path. Empty if no point is found. + # Points are already ordered according to the distance along the path. + cart_coords = self.sigma_kpoints.get_cart_coords() + r = find_points_along_path(cart_bounds, cart_coords, dist_tol=dist_tol) + if len(r.ikfound) == 0: + raise ValueError("Cannot find k-points in Sigma_nk along segment: `%s`" % str(kbounds)) + + # Build grid plot. + nrows, ncols = len(r.ikfound), 2 + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + + for ix, ikcalc in enumerate(r.ikfound): + self.plot_qpsolution_skb(spin, ikcalc, band, itemp=itemp, with_int_aw=with_int_aw, + ax_list=ax_mat[ix], xlims=xlims, fontsize=fontsize, show=False) + + return fig + + @add_fig_kwargs + def plot_a2fw_skb(self, spin, kpoint, band, what="auto", ax=None, fontsize=12, units="meV", **kwargs) -> Figure: """ Plot the Eliashberg function a2F_{n,k,spin}(w) (gkq2/Fan-Migdal/DW/Total contribution) for a given (spin, kpoint, band) Args: spin: Spin index - kpoint: K-point in self-energy. Accepts |Kpoint|, vector or index. - band: Band index. + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or integer defining the k-point in the kcalc array + band: band index. C convention so decremented by -1 wrt Fortran index. what: fandw for FAN, DW. gkq2 for $|gkq|^2$. Auto for automatic selection based on imag_only units: Units for phonon plots. Possible values in ("eV", "meV", "Ha", "cm-1", "Thz"). Case-insensitive. ax: |matplotlib-Axes| or None if a new figure should be created. @@ -1794,17 +2295,17 @@ def plot_a2fw_skb(self, spin, kpoint, band, what="auto", ax=None, fontsize=12, u Returns: |matplotlib-Figure| """ if not self.has_eliashberg_function: - cprint("SIGEPH file does not have Eliashberg function", "red") + cprint("SIGEPH file does not contain Eliashberg function", "red") return None if what == "auto": what = "gkq2" if self.imag_only else "fandw" - a2f = self.reader.read_a2feph_skb(spin, kpoint, band) + a2f = self.r.read_a2feph_skb(spin, kpoint, band) return a2f.plot(ax=ax, units=units, what=what, fontsize=fontsize, show=False) @add_fig_kwargs - def plot_a2fw_skb_sum(self, what="auto", ax=None, exchange_xy=False, fontsize=12, **kwargs): + def plot_a2fw_skb_sum(self, what="auto", ax=None, exchange_xy=False, fontsize=8, **kwargs) -> Figure: """ Plot the sum of the Eliashberg functions a2F_{n,k,spin}(w) (gkq2/Fan-Migdal/DW/Total contribution) over the k-points and bands for which self-energy matrix elements have been computed. @@ -1838,13 +2339,13 @@ def plot_a2fw_skb_sum(self, what="auto", ax=None, exchange_xy=False, fontsize=12 # 1: gkk^2 with delta(en - em) # 2:3 (Fan-Migdal/DW contribution) # Access arrays directly instead of using read_a2feph_skb because it's gonna be faster. - #a2f = self.reader.read_a2feph_skb(spin, kpoint, band) - wmesh = self.reader.read_value("gfw_mesh") * abu.Ha_eV - vals = self.reader.read_value("gfw_vals") * abu.Ha_eV # TODO check units + #a2f = self.r.read_a2feph_skb(spin, kpoint, band) + wmesh = self.r.read_value("gfw_mesh") * abu.Ha_eV + vals = self.r.read_value("gfw_vals") * abu.Ha_eV # TODO check units xlabel = "Energy (eV)" for spin in range(self.nsppol): - asum = np.zeros(self.reader.gfw_nomega) + asum = np.zeros(self.r.gfw_nomega) spin_sign = +1 if spin == 0 else -1 for ikc, kpoint in enumerate(self.sigma_kpoints): # This is not an integral in the BZ. @@ -1876,7 +2377,7 @@ def plot_a2fw_skb_sum(self, what="auto", ax=None, exchange_xy=False, fontsize=12 #def plot_sigeph_vcbm(self, units="meV", sharey=True, fontsize=8, **kwargs): @add_fig_kwargs - def plot_a2fw_all(self, units="meV", what="auto", sharey=False, fontsize=8, **kwargs): + def plot_a2fw_all(self, units="meV", what="auto", sharey=False, fontsize=8, **kwargs) -> Figure: """ Plot the Eliashberg function a2F_{n,k,spin}(w) (gkq2/Fan-Migdal/DW/Total contribution) for all k-points, spin and the VBM/CBM for these k-points. @@ -1893,7 +2394,7 @@ def plot_a2fw_all(self, units="meV", what="auto", sharey=False, fontsize=8, **kw # Build plot grid with (CBM, VBM) on each col. k-points along rows num_plots, ncols, nrows = self.nkcalc * 2, 2, self.nkcalc - axmat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, sharex=True, sharey=sharey, squeeze=False) marker_spin = {0: "^", 1: "v"} @@ -1906,38 +2407,47 @@ def plot_a2fw_all(self, units="meV", what="auto", sharey=False, fontsize=8, **kw count += 1 # Assume non magnetic semiconductor. iv = int(self.nelect) // 2 - 1 - ax = axmat[ikc, 0] + ax = ax_mat[ikc, 0] self.plot_a2fw_skb(spin, kpoint, iv, ax=ax, fontsize=fontsize, units=units, what=what, show=False) ax.set_title("k:%s, band:%d" % (repr(kpoint), iv), fontsize=fontsize) - ax = axmat[ikc, 1] + ax = ax_mat[ikc, 1] self.plot_a2fw_skb(spin, kpoint, iv + 1, ax=ax, fontsize=fontsize, units=units, what=what, show=False) ax.set_title("k:%s, band:%d" % (repr(kpoint), iv + 1), fontsize=fontsize) if count != 0: - for ax in axmat[ikc]: + for ax in ax_mat[ikc]: set_visible(ax, False, "legend") # Show legend only for the first ax. - for i, ax in enumerate(axmat.ravel()): + for i, ax in enumerate(ax_mat.ravel()): if i != 0: set_visible(ax, False, "legend") # Show x(y)labels only if first column (last row) for irow in range(nrows): for icol in range(ncols): - ax = axmat[irow, icol] + ax = ax_mat[irow, icol] if icol != 0: set_visible(ax, False, "ylabel") if irow != nrows - 1: set_visible(ax, False, "xlabel") return fig + def get_panel(self, **kwargs): + """ + Build panel with widgets to interact with the |SigEPhFile| either in a notebook or in panel app. + """ + from abipy.panels.sigeph import SigEPhFilePanel + return SigEPhFilePanel(self).get_panel(**kwargs) + def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. Used in abiview.py to get a quick look at the results. """ verbose = kwargs.pop("verbose", 0) + if self.imag_only: - yield self.plot_qps_vs_e0(with_fields="fan0", reim="imag", function=abs, show=False) - yield self.plot_tau_vtau(show=False) + for rta_type in ("serta", "mrta"): + yield self.plot_lws_vs_e0(rta_type=rta_type, title=rta_type, show=False) + yield self.plot_tau_vtau(rta_type=rta_type, title=rta_type, show=False) else: yield self.plot_qpbands_ibzt(show=False) @@ -1946,13 +2456,15 @@ def yield_figs(self, **kwargs): # pragma: no cover if i > 2 and not verbose: print("File contains more than 3 k-points. Only the first three k-points are displayed.") break - yield self.plot_qpgaps_t(qp_kpoints=qp_kpt, show=False) + yield self.plot_qpgaps_t(qp_kpoints=qp_kpt, qp_type="qpz0", show=False) + yield self.plot_qpgaps_t(qp_kpoints=qp_kpt, qp_type="otms", show=False) + yield self.plot_qps_vs_e0(show=False) if self.edos is not None: yield self.edos.plot(show=False) - def write_notebook(self, nbpath=None, title=None): + def write_notebook(self, nbpath=None, title=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -1962,17 +2474,18 @@ def write_notebook(self, nbpath=None, title=None): nb.cells.extend([ nbv.new_code_cell("ncfile = abilab.abiopen('%s')" % self.filepath), nbv.new_code_cell("print(ncfile)"), - nbv.new_code_cell("ncfile.ebands.plot();"), - #nbv.new_code_cell("ncfile.get_dirgaps_dataframe()"), - #nbv.new_code_cell("ncfile.get_dataframe()"), - nbv.new_code_cell("ncfile.plot_qpgaps_t();"), + nbv.new_code_cell("ncfile.ebands.plot(with_gaps=True);"), + #nbv.new_code_cell("ncfile.get_dirgaps_dataframe(kpoint=0)"), + #nbv.new_code_cell("ncfile.get_dataframe(kpoint=0)"), + nbv.new_code_cell("ncfile.plot_qpgaps_t(qptype='qpz0');"), + nbv.new_code_cell("ncfile.plot_qpgaps_t(qptype='otms');"), nbv.new_code_cell("#ncfile.plot_qpgaps_t(plot_qpmks=True);"), nbv.new_code_cell("ncfile.plot_qps_vs_e0();"), nbv.new_code_cell("""\ for spin in range(ncfile.nsppol): for sigma_kpoint in ncfile.sigma_kpoints: ncfile.plot_qpdata_t(spin, sigma_kpoint, band_list=None, fontsize=12);"""), - nbv.new_code_cell("#df = ncfile.get_dataframe_sk(spin=0, kpoint=(0, 0, 0))"), + nbv.new_code_cell("#ncfile.get_dataframe_sk(spin=0, kpoint=(0, 0, 0))"), ]) return self._write_nb_nbpath(nb, nbpath) @@ -2017,8 +2530,10 @@ def __init__(self, *args): for w in warns: cprint(w, color="yellow") - def _check_dims_and_params(self): - """Test that nsppol, sigma_kpoints, tlist are consistent.""" + def _check_dims_and_params(self) -> None: + """ + Test that nsppol, sigma_kpoints, tlist are consistent. + """ if not len(self.abifiles) > 1: return @@ -2030,12 +2545,14 @@ def _check_dims_and_params(self): eapp("Files with different values of `nsppol`") if any(nc.nkcalc != nc0.nkcalc for nc in self.abifiles[1:]): - eapp("Files with different values of `nkcalc`") - else: - for nc in self.abifiles[1:]: - for k0, k1 in zip(nc0.sigma_kpoints, nc.sigma_kpoints): - if k0 != k1: - eapp("Files with different values of `sigma_kpoints`") + cprint("Files with different values of `nkcalc`", color="yellow") + + for nc in self.abifiles[1:]: + for k0, k1 in zip(nc0.sigma_kpoints, nc.sigma_kpoints): + if k0 != k1: + cprint("Files with different values of `sigma_kpoints`\n" + + "Specify the kpoint via reduced coordinates and not via the index", "yellow") + break if any(not np.allclose(nc.tmesh, nc0.tmesh) for nc in self.abifiles[1:]): eapp("Files with different tmesh") @@ -2043,9 +2560,9 @@ def _check_dims_and_params(self): if errors: raise ValueError("Cannot compare multiple SIGEPH.nc files. Reason:\n %s" % "\n".join(errors)) - def get_dataframe_sk(self, spin, kpoint, with_params=True, ignore_imag=False): + def get_dataframe_sk(self, spin, kpoint, with_params=True, ignore_imag=False) -> pd.DataFrame: """ - Return |pandas-Dataframe| with qp results for this spin, k-point + Return |pandas-Dataframe| with QP results for this spin, k-point Args: spin: Spin index @@ -2058,9 +2575,27 @@ def get_dataframe_sk(self, spin, kpoint, with_params=True, ignore_imag=False): df = ncfile.get_dataframe_sk(spin, kpoint, index=None, with_params=with_params, ignore_imag=ignore_imag) app(df) + + return pd.concat(df_list) + + def get_dirgaps_dataframe(self, kpoint, itemp=None, spin=0, with_params=True) -> pd.DataFrame: + """ + Returns |pandas-DataFrame| with QP direct gaps at the given k-point for all the files in the robot + + Args: + kpoint: K-point in self-energy. Accepts |Kpoint|, vector or index. + itemp: Temperature index, if None all temperatures are returned. + spin: Spin index + with_params: False to exclude calculation parameters from the dataframe. + """ + df_list = []; app = df_list.append + for label, ncfile in self.items(): + df = ncfile.get_dirgaps_dataframe(kpoint, itemp=itemp, spin=spin, with_params=with_params) + app(df) + return pd.concat(df_list) - def get_dataframe(self, with_params=True, with_spin="auto", ignore_imag=False): + def get_dataframe(self, with_params=True, with_spin="auto", ignore_imag=False) -> pd.DataFrame: """ Return |pandas-Dataframe| with QP results for all k-points, bands and spins present in the files treated by the robot. @@ -2083,7 +2618,7 @@ def get_dataframe(self, with_params=True, with_spin="auto", ignore_imag=False): @add_fig_kwargs def plot_selfenergy_conv(self, spin, kpoint, band, itemp=0, sortby=None, hue=None, - colormap="jet", xlims=None, fontsize=8, **kwargs): + colormap="viridis", xlims=None, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the EPH self-energy wrt to the ``sortby`` parameter. Values can be optionally grouped by `hue`. @@ -2117,10 +2652,11 @@ def plot_selfenergy_conv(self, spin, kpoint, band, itemp=0, sortby=None, hue=Non if hue is None: ax_list = None lnp_list = self.sortby(sortby) - for ix, (label, ncfile, param) in enumerate(lnp_list): - sigma = ncfile.reader.read_sigeph_skb(spin, kpoint, band) + for ix, (nclabel, ncfile, param) in enumerate(lnp_list): + label = "%s: %s" % (self._get_label(sortby), param) or nclabel + sigma = ncfile.r.read_sigeph_skb(spin, kpoint, band) fig = sigma.plot_tdep(itemps=itemp, ax_list=ax_list, - label=label, color=cmap(ix / len(lnp_list)), show=False) + label=label, color=cmap(ix / len(lnp_list)), show=False) ax_list = fig.axes else: # group_and_sortby and build (3, ngroups) subplots @@ -2132,10 +2668,10 @@ def plot_selfenergy_conv(self, spin, kpoint, band, itemp=0, sortby=None, hue=Non subtitle = "%s: %s" % (self._get_label(hue), g.hvalue) ax_mat[0, ig].set_title(subtitle, fontsize=fontsize) for ix, (nclabel, ncfile, param) in enumerate(g): - sigma = ncfile.reader.read_sigeph_skb(spin, kpoint, band) + sigma = ncfile.r.read_sigeph_skb(spin, kpoint, band) fig = sigma.plot_tdep(itemps=itemp, ax_list=ax_mat[:, ig], - label="%s: %s" % (self._get_label(sortby), param), - color=cmap(ix / len(g)), show=False) + label="%s: %s" % (self._get_label(sortby), param), + color=cmap(ix / len(g)), show=False) if ig != 0: for ax in ax_mat[:, ig]: @@ -2147,13 +2683,16 @@ def plot_selfenergy_conv(self, spin, kpoint, band, itemp=0, sortby=None, hue=Non return fig @add_fig_kwargs - def plot_qpgaps_t(self, qp_kpoints=0, plot_qpmks=True, sortby=None, hue=None, fontsize=8, **kwargs): + def plot_qpgaps_t(self, qp_kpoints=0, qp_type="qpz0", plot_qpmks=True, sortby=None, hue=None, + fontsize=8, **kwargs) -> Figure: """ Compare the QP(T) direct gaps for all the k-points available in the robot. Args: qp_kpoints: List of k-points in self-energy. Accept integers (list or scalars), list of vectors, or None to plot all k-points. + qp_type: "qpz0" for linearized QP equation with Z factor compute at KS e0, + "otms" for on-the-mass-shell results. plot_qpmks: If False, plot QP_gap, KS_gap else (QP_gap - KS_gap) sortby: Define the convergence parameter, sort files and produce plot labels. Can be None, string or function. If None, no sorting is performed. @@ -2171,7 +2710,7 @@ def plot_qpgaps_t(self, qp_kpoints=0, plot_qpmks=True, sortby=None, hue=None, fo if hue is None: ax_list = None for ix, ((label, ncfile, param), lineopt) in enumerate(zip(self.sortby(sortby), self.iter_lineopt())): - fig = ncfile.plot_qpgaps_t(qp_kpoints=qp_kpoints, ax_list=ax_list, + fig = ncfile.plot_qpgaps_t(qp_kpoints=qp_kpoints, qp_type=qp_type, ax_list=ax_list, plot_qpmks=plot_qpmks, label=label, show=False, fontsize=fontsize, **lineopt) #label=label if ix == 0 else None, show=False, fontsize=fontsize, **lineopt) ax_list = fig.axes @@ -2185,7 +2724,7 @@ def plot_qpgaps_t(self, qp_kpoints=0, plot_qpmks=True, sortby=None, hue=None, fo sharex=True, sharey=False, squeeze=False) for ig, g in enumerate(groups): for ix, (nclabel, ncfile, param) in enumerate(g): - fig = ncfile.plot_qpgaps_t(qp_kpoints=qpkinds, ax_list=ax_mat[:, ig], + fig = ncfile.plot_qpgaps_t(qp_kpoints=qpkinds, qp_type=qp_type, ax_list=ax_mat[:, ig], plot_qpmks=plot_qpmks, label="%s: %s" % (self._get_label(sortby), param), fontsize=fontsize, show=False) #, **lineopt) @@ -2203,8 +2742,8 @@ def plot_qpgaps_t(self, qp_kpoints=0, plot_qpmks=True, sortby=None, hue=None, fo return fig @add_fig_kwargs - def plot_qpgaps_convergence(self, qp_kpoints="all", itemp=0, sortby=None, hue=None, - plot_qpmks=True, fontsize=8, **kwargs): + def plot_qpgaps_convergence(self, qp_kpoints="all", itemp=0, qp_type="qpz0", sortby=None, hue=None, + plot_qpmks=True, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the direct QP gaps at given temperature for all the k-points and spins treated by the robot. @@ -2213,6 +2752,8 @@ def plot_qpgaps_convergence(self, qp_kpoints="all", itemp=0, sortby=None, hue=No qp_kpoints: List of k-points in self-energy. Accept integers (list or scalars), list of vectors, or "all" to plot all k-points. itemp: Temperature index. + qp_type: "qpz0" for linear qp equation with Z factor computed at KS e0, + "otms" for on-the-mass-shell values. sortby: Define the convergence parameter, sort files and produce plot labels. Can be None, string or function. If None, no sorting is performed. If string and not empty it's assumed that the abifile has an attribute @@ -2248,7 +2789,12 @@ def plot_qpgaps_convergence(self, qp_kpoints="all", itemp=0, sortby=None, hue=No else: groups = self.group_and_sortby(hue, sortby) - name = "QP dirgap" if not plot_qpmks else "QP-KS dirgap" + if qp_type not in {"qpz0", "otms"}: + raise ValueError("Invalid qp_type: %s" % qp_type) + + name = "QP dirgap" if not plot_qpmks else "QP - KS dirgap" + name = "%s (%s)" % (name, qp_type.upper()) + for ix, ((kpt, ikc), ax) in enumerate(zip(qpkinds, ax_list)): for spin in range(nsppol): ax.set_title("%s k:%s, T = %.1f K" % ( @@ -2256,7 +2802,8 @@ def plot_qpgaps_convergence(self, qp_kpoints="all", itemp=0, sortby=None, hue=No # Extract QP dirgap for [spin, kpt, itemp] if hue is None: - yvals = [ncfile.qp_dirgaps_t[spin, ikc, itemp] for ncfile in ncfiles] + if qp_type == "qpz0": yvals = [ncfile.qp_dirgaps_t[spin, ikc, itemp] for ncfile in ncfiles] + if qp_type == "otms": yvals = [ncfile.qp_dirgaps_otms_t[spin, ikc, itemp] for ncfile in ncfiles] if plot_qpmks: yvals = np.array(yvals) - np.array([ncfile.ks_dirgaps[spin, ikc] for ncfile in ncfiles]) @@ -2271,7 +2818,8 @@ def plot_qpgaps_convergence(self, qp_kpoints="all", itemp=0, sortby=None, hue=No else: for g in groups: - yvals = [ncfile.qp_dirgaps_t[spin, ikc, itemp] for ncfile in g.abifiles] + if qp_type == "qpz0": yvals = [ncfile.qp_dirgaps_t[spin, ikc, itemp] for ncfile in g.abifiles] + if qp_type == "otms": yvals = [ncfile.qp_dirgaps_otms_t[spin, ikc, itemp] for ncfile in g.abifiles] if plot_qpmks: yvals = np.array(yvals) - np.array([ncfile.ks_dirgaps[spin, ikc] for ncfile in g.abifiles]) label = "%s: %s" % (self._get_label(hue), g.hvalue) @@ -2289,7 +2837,7 @@ def plot_qpgaps_convergence(self, qp_kpoints="all", itemp=0, sortby=None, hue=No @add_fig_kwargs def plot_qpdata_conv_skb(self, spin, kpoint, band, - itemp=0, sortby=None, hue=None, fontsize=8, **kwargs): + itemp=0, sortby=None, hue=None, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the QP results at the given temperature for given (spin, kpoint, band) @@ -2334,12 +2882,12 @@ def plot_qpdata_conv_skb(self, spin, kpoint, band, # Sort and read QP data. if hue is None: labels, ncfiles, params = self.sortby(sortby, unpack=True) - qplist = [ncfile.reader.read_qp(spin, kpoint, band) for ncfile in ncfiles] + qplist = [ncfile.r.read_qp(spin, kpoint, band) for ncfile in ncfiles] else: groups = self.group_and_sortby(hue, sortby) qplist_group = [] for g in groups: - lst = [ncfile.reader.read_qp(spin, kpoint, band) for ncfile in g.abifiles] + lst = [ncfile.r.read_qp(spin, kpoint, band) for ncfile in g.abifiles] qplist_group.append(lst) for ix, (ax, what) in enumerate(zip(ax_list, what_list)): @@ -2378,8 +2926,8 @@ def plot_qpdata_conv_skb(self, spin, kpoint, band, return fig @add_fig_kwargs - def plot_qpfield_vs_e0(self, field, itemp=0, reim="real", function=lambda x: x, sortby=None, hue=None, fontsize=8, - colormap="jet", e0="fermie", **kwargs): + def plot_qpfield_vs_e0(self, field, itemp=0, reim="real", function=lambda x: x, sortby=None, hue=None, + fontsize=8, colormap="jet", e0="fermie", **kwargs) -> Figure: """ For each file in the robot, plot one of the attributes of :class:`QpTempState` at temperature `itemp` as a function of the KS energy. @@ -2396,7 +2944,7 @@ def plot_qpfield_vs_e0(self, field, itemp=0, reim="real", function=lambda x: x, If callable, the output of sortby(abifile) is used. hue: Variable that define subsets of the data, which will be drawn on separate lines. Accepts callable or string - If string, it's assumed that the abifile has an attribute with the same name and getattr is invoked. + If string, it is assumed that the abifile has an attribute with the same name and getattr is invoked. If callable, the output of hue(abifile) is used. colormap: matplotlib color map. fontsize: legend and label fontsize. @@ -2443,20 +2991,90 @@ def plot_qpfield_vs_e0(self, field, itemp=0, reim="real", function=lambda x: x, return fig + @add_fig_kwargs + def plot_lws_vs_e0(self, rta_type="serta", itemp_list=None, colormap="jet", + fontsize=8, **kwargs) -> Figure: + r""" + Plot phonon-induced linewidths vs KS energy for different temperatures for all files in the robot. + + Args: + rta_type: "serta" for SERTA linewidths or "mrta" for MRTA linewidths. + itemp_list: List of temperature indices to interpolate. None for all. + colormap: matplotlib color map. + fontsize: fontsize for titles and legend. + + Returns: |matplotlib-Figure| + """ + ntemp_list = np.array([ncfile.ntemp for ncfile in self.abifiles]) + ntemp = ntemp_list[0] + + # Consistency check + if any(ntemp != ntemp_list): + cprint("Cannot compare SIGEPH files with different number of Temperatures!", "yellow") + return None + for ncfile in self.abifiles: + if np.any(np.abs(ncfile.tmesh - self.abifiles[0].tmesh) > 1): + cprint("Cannot compare SIGEPH files with different Temperatures!", "yellow") + return None + + itemp_list = list(range(ntemp)) if itemp_list is None else duck.list_ints(itemp_list) + + num_plots, ncols, nrows = ntemp, 1, 1 + if num_plots > 1: + ncols = 2 + nrows = (num_plots // ncols) + (num_plots % ncols) + + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=True, squeeze=False) + ax_list = np.array(ax_list).ravel() + # don't show the last ax if num_plots is odd. + if num_plots % ncols != 0: ax_list[-1].axis("off") + cmap = plt.get_cmap(colormap) + + import itertools + marker = itertools.cycle(("o", ',', '+', '.', '*')) + + for itemp, ax in enumerate(ax_list): + for ifile, ncfile in enumerate(self.abifiles): + ncfile.plot_lws_vs_e0(itemp_list=[itemp], rta_type=rta_type, ax=ax, + marker=next(marker), label=ncfile.basename, + show=False) + + if itemp != 0: + set_visible(ax, False, "xlabel", "ylabel", "legend") + + ax.set_title("T = %.1f K" % self.abifiles[0].tmesh[itemp]) + + fig.suptitle(rta_type.upper()) + + return fig + def yield_figs(self, **kwargs): # pragma: no cover """ This function *generates* a predefined list of matplotlib figures with minimal input from the user. """ verbose = kwargs.pop("verbose", 0) - itemp = 0 - for i, qp_kpt in enumerate(self.abifiles[0].sigma_kpoints): - if i > 5 and not verbose: - print("File contains more than 5 k-points. Only the first five k-points are displayed.") - break - yield self.plot_qpgaps_convergence(qp_kpoints=qp_kpt, itemp=itemp, show=False) - yield self.plot_qpgaps_t(qp_kpoints=qp_kpt, show=False) - def write_notebook(self, nbpath=None, title=None): + imag_only = all(ncfile.imag_only for ncfile in self.abifiles) + + if imag_only: + #print("imag_only") + for rta_type in ("serta", "mrta"): + yield self.plot_lws_vs_e0(rta_type=rta_type, show=False) + #yield self.plot_tau_vtau(rta_type=rta_type, show=False) + + else: + itemp = 0 + enough = 5 + for i, qp_kpt in enumerate(self.abifiles[0].sigma_kpoints): + if i > enough and not verbose: + print(f"File contains more than {enough} k-points. Only the first {enough} k-points are displayed.") + break + for qp_type in ("qpz0", "otms"): + yield self.plot_qpgaps_convergence(qp_kpoints=qp_kpt, qp_type=qp_type, itemp=itemp, show=False) + yield self.plot_qpgaps_t(qp_kpoints=qp_kpt, qp_type=qp_type, show=False) + + def write_notebook(self, nbpath=None, title=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -2493,7 +3111,7 @@ def write_notebook(self, nbpath=None, title=None): return self._write_nb_nbpath(nb, nbpath) -class TdepElectronBands(object): # pragma: no cover +class TdepElectronBands: # pragma: no cover """ A list of |ElectronBands| (T) with a real part renormalized by the E-PH sel-energy. Imaginary part is stored in a specialized array. @@ -2529,19 +3147,19 @@ def __init__(self, tmesh, ks_ebands_kpath, qp_ebands_kpath_t, assert len(self.qp_ebands_kmesh_t) == self.ntemp @lazy_property - def has_kpath(self): + def has_kpath(self) -> bool: """True if interpolated bands on the k-path are available.""" return bool(self.qp_ebands_kpath_t) @lazy_property - def has_kmesh(self): + def has_kmesh(self) -> bool: """True if interpolated bands on the k-mesh are available.""" return bool(self.qp_ebands_kmesh_t) def __str__(self): return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation with verbosiy level ``verbose``.""" lines = [] app = lines.append @@ -2555,7 +3173,7 @@ def to_string(self, verbose=0): return "\n".join(lines) @classmethod - def pickle_load(cls, filepath): + def pickle_load(cls, filepath: str): """Loads the object from a pickle file.""" with open(filepath, "rb") as fh: new = pickle.load(fh) @@ -2578,7 +3196,7 @@ def pickle_dump(self, filepath=None): @add_fig_kwargs def plot_itemp_with_lws_vs_e0(self, itemp, ax_list=None, width_ratios=(2, 1), - function=lambda x: x, fact=10.0, **kwargs): + function=lambda x: x, fact=10.0, **kwargs) -> Figure: """ Plot bandstructure with linewidth at temperature ``itemp`` and linewidth vs the KS energies. @@ -2588,6 +3206,7 @@ def plot_itemp_with_lws_vs_e0(self, itemp, ax_list=None, width_ratios=(2, 1), is created and the two axes are automatically generated. width_ratios: Defines the ratio between the band structure plot and the dos plot. function: Apply this function to the values before plotting. + fact: Return: |matplotlib-Figure| """ @@ -2620,7 +3239,7 @@ def plot_itemp_with_lws_vs_e0(self, itemp, ax_list=None, width_ratios=(2, 1), return fig @add_fig_kwargs - def plot_itemp(self, itemp, ax=None, e0="fermie", ylims=None, fontsize=12, fact=2.0, **kwargs): + def plot_itemp(self, itemp, ax=None, e0="fermie", ylims=None, fontsize=12, fact=2.0, **kwargs) -> Figure: """ Plot band structures with linewidth at temperature ``itemp``. @@ -2654,12 +3273,11 @@ def plot_itemp(self, itemp, ax=None, e0="fermie", ylims=None, fontsize=12, fact= return fig @add_fig_kwargs - def plot(self, e0="fermie", ylims=None, fontsize=8, **kwargs): + def plot(self, e0="fermie", ylims=None, fontsize=8, **kwargs) -> Figure: """ Plot grid of band structures with linewidth (one plot for each temperature). Args: - e0: Option used to define the zero of energy in the band structure plot. Possible values: - ``fermie``: shift all eigenvalues to have zero energy at the Fermi energy (`self.fermie`). - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV @@ -2690,7 +3308,7 @@ def plot(self, e0="fermie", ylims=None, fontsize=8, **kwargs): @add_fig_kwargs def plot_lws_vs_e0(self, itemp_list=None, ax=None, e0="fermie", function=lambda x: x, exchange_xy=False, - colormap="jet", xlims=None, ylims=None, fontsize=8, **kwargs): + colormap="jet", xlims=None, ylims=None, fontsize=8, **kwargs) -> Figure: r""" Plot electron linewidths vs KS energy at temperature ``itemp`` @@ -2740,7 +3358,7 @@ def plot_lws_vs_e0(self, itemp_list=None, ax=None, e0="fermie", function=lambda return fig - def get_ebands_plotter(self, edos_kwargs=None, with_edos=True): + def get_ebands_plotter(self, edos_kwargs=None, with_edos=True) -> ElectronBandsPlotter: """ Build and return |ElectronBandsPlotter| with KS and QP(T) results @@ -2754,18 +3372,18 @@ def get_ebands_plotter(self, edos_kwargs=None, with_edos=True): ebands_plotter = ElectronBandsPlotter() if self.ks_ebands_kpath is not None: ebands_plotter.add_ebands("KS", self.ks_ebands_kpath, - edos=self.ks_ebands_kmesh if with_edos else None, - edos_kwargs=edos_kwargs) + edos=self.ks_ebands_kmesh if with_edos else None, + edos_kwargs=edos_kwargs) for itemp in range(self.ntemp): label = "T = %.1f K" % self.tmesh[itemp] ebands_plotter.add_ebands(label, self.qp_ebands_kpath_t[itemp], - edos=self.qp_ebands_kmesh_t[itemp] if (self.has_kmesh and with_edos) else None, - edos_kwargs=edos_kwargs) + edos=self.qp_ebands_kmesh_t[itemp] if (self.has_kmesh and with_edos) else None, + edos_kwargs=edos_kwargs) return ebands_plotter - def get_edos_plotter(self, edos_kwargs=None): + def get_edos_plotter(self, edos_kwargs=None) -> ElectronDosPlotter: """ Build and return |ElectronDosPlotter| with KS and QP(T) results. @@ -2793,7 +3411,7 @@ class SigmaPhReader(BaseEphReader): .. rubric:: Inheritance Diagram .. inheritance-diagram:: SigmaPhReader """ - def __init__(self, path): + def __init__(self, path: str): super().__init__(path) self.nsppol = self.read_dimvalue("nsppol") @@ -2804,11 +3422,12 @@ def __init__(self, path): self.nqbz = self.read_dimvalue("nqbz") self.nqibz = self.read_dimvalue("nqibz") self.ngqpt = self.read_value("ngqpt") + self.ddb_ngqpt = self.read_value("ddb_ngqpt") # T mesh and frequency meshes. - self.ktmesh = self.read_value("kTmesh") - self.tmesh = self.ktmesh / abu.kb_HaK - self.ktmesh *= abu.Ha_eV + self.ktmesh_ha = self.read_value("kTmesh") + self.tmesh = self.ktmesh_ha / abu.kb_HaK + self.ktmesh_ev = self.ktmesh_ha * abu.Ha_eV # The K-points where QP corrections have been calculated. structure = self.read_structure() @@ -2834,16 +3453,24 @@ def __init__(self, path): def get_sigma_skb_kpoint(self, spin, kpoint, band): """ - Check k-point, band and spin index. Raise ValueError if invalid. + This method receives in input easy-to-use indices/arguments such as + the reduced coordinates of the k-point and/or the "global" band index the user would expect + if all bands were treated and returns the indices needed to access the internal netcdf arrays. + It also performs some basic consistency checks. + + Raises: ValueError if invalid input. + + Returns: (spin, ikcalc, band_kcalc, kpoint) where ikcalc and band_kcalc are the internal netcdf indices """ ikc = self.sigkpt2index(kpoint) + # Consistency check. if not (len(self.sigma_kpoints) > ikc >= 0): - raise ValueError("Invalid k-point index %d. should be in [0, %d[" % (ikc, len(self.sigma_kpoints))) + raise ValueError("Invalid k-point index `%d`. should be in [0, %d[" % (ikc, len(self.sigma_kpoints))) if not (self.nsppol > spin >= 0): - raise ValueError("Invalid spin index %d. should be in [0, %d[" % (ikc, self.nsppol)) + raise ValueError("Invalid spin index `%d`. should be in [0, %d[" % (ikc, self.nsppol)) if not (self.bstop_sk[spin, ikc] > band >= self.bstart_sk[spin, ikc]): - raise ValueError("Invalid band index %d. should be in [%d, %d[" % ( + raise ValueError("Invalid band index `%d`. should be in [%d, %d[" % ( band, self.bstart_sk[spin, ikc], self.bstop_sk[spin, ikc])) return spin, ikc, band - self.bstart_sk[spin, ikc], self.sigma_kpoints[ikc] @@ -2851,13 +3478,13 @@ def get_sigma_skb_kpoint(self, spin, kpoint, band): def sigkpt2index(self, sigma_kpoint): """ Returns the index of the self-energy k-point in sigma_kpoints - Used to access data in the arrays that are dimensioned [0:nkcalc] + Used to access data in the arrays that are dimensioned as [0:nkcalc]. sigma_kpoint can be either an integer or list with reduced coordinates. """ if duck.is_intlike(sigma_kpoint): ikc = int(sigma_kpoint) if self.nkcalc > ikc >= 0: return ikc - raise ValueError("kpoint index should be in [0, %d] but received: %d" % (self.nkcalc, ikc)) + raise ValueError("kpoint index should be in [0, %d[ but received: %d" % (self.nkcalc, ikc)) else: return self.sigma_kpoints.index(sigma_kpoint) @@ -2987,7 +3614,7 @@ def ri(a): try: var = self.read_variable("qpoms_enes") except Exception: - cprint("Reading old deprecated sigeph file!", "yellow") + #cprint("Reading old deprecated sigeph file!", "yellow") var = self.read_variable("qpadb_enes") qpe_oms = var[spin, ikc, ibc, :, 0] * abu.Ha_eV @@ -3010,18 +3637,8 @@ def ri(a): # nctkarr_t("ze0_vals", "dp", "ntemp, max_nbcalc, nkcalc, nsppol") ze0 = self.read_variable("ze0_vals")[spin, ikc, ibc] - return QpTempState( - spin=spin, - kpoint=kpoint, - band=band, - tmesh=self.tmesh, - e0=e0, - qpe=ri(qpe), - ze0=ze0, - fan0=ri(fan0), - dw=dw, - qpe_oms=qpe_oms, - ) + return QpTempState(spin=spin, kpoint=kpoint, band=band, tmesh=self.tmesh, + e0=e0, qpe=ri(qpe), ze0=ze0, fan0=ri(fan0), dw=dw, qpe_oms=qpe_oms) def read_allqps(self, ignore_imag=False): """ @@ -3041,3 +3658,5 @@ def read_allqps(self, ignore_imag=False): qps_spin[spin] = QpTempList(qps) return tuple(qps_spin) + + diff --git a/abipy/eph/tests/test_a2f.py b/abipy/eph/tests/test_a2f.py index 9f7e2c3dd..01bee3941 100644 --- a/abipy/eph/tests/test_a2f.py +++ b/abipy/eph/tests/test_a2f.py @@ -106,7 +106,7 @@ def test_a2f_robot(self): self.assert_equal(df_params["nspden"].values, 1) data = robot.get_dataframe(with_geo=True) - assert "lambda_qcoarse" in data and "omegalog_qintp" in data + #assert "lambda_qcoarse" in data and "omegalog_qintp" in data # Mixin phbands_plotter = robot.get_phbands_plotter() diff --git a/abipy/eph/tests/test_sigeph.py b/abipy/eph/tests/test_sigeph.py index 417e4325d..1eaa54611 100644 --- a/abipy/eph/tests/test_sigeph.py +++ b/abipy/eph/tests/test_sigeph.py @@ -115,6 +115,12 @@ def test_sigeph_file(self): assert sigma.wmesh.shape == (sigma.nwr,) if self.has_matplotlib(): assert sigma.plot_tdep(show=False) + assert sigeph.plot_qpsolution_skb(0, 0, 0, show=False) + assert sigeph.plot_qpsolution_sk(0, [0.5, 0, 0], show=False) + assert sigeph.plot_qpsolution_sklineb(spin=0, kbounds=["G", [0.5, 0, 0]], band=0, show=False) + + if self.has_panel(): + assert hasattr(sigeph.get_panel(), "show") # Test QpTempState qp = sigeph.reader.read_qp(spin=0, kpoint=0, band=3, ignore_imag=False) @@ -232,11 +238,10 @@ def test_sigeph_interpolation(self): sigeph.close() # TODO: Need new files with IBZ. - def test_sigeph_boltztrap(self): - """Test boltztrap interpolation""" - sigeph = abilab.abiopen(abidata.ref_file("diamond_444q_full_SIGEPH.nc")) - sigeph.get_lifetimes_boltztrap("diamond", workdir=self.mkdtemp()) - sigeph.close() + #def test_sigeph_boltztrap(self): + # """Test boltztrap interpolation""" + # with abilab.abiopen(abidata.ref_file("diamond_444q_full_SIGEPH.nc")) as sigeph: + # sigeph.get_lifetimes_boltztrap("diamond", workdir=self.mkdtemp()) def test_sigeph_robot(self): """Tests for SigEPhRobot.""" @@ -262,10 +267,9 @@ def test_sigeph_robot(self): assert robot.plot_qpgaps_convergence(itemp=0, sortby="nbsum", show=False) assert robot.plot_qpgaps_convergence(itemp=0, sortby="nbsum", hue="nqibz", show=False) + assert robot.plot_qpdata_conv_skb(spin=0, kpoint=(0, 0, 0), band=3, itemp=-1, show=False) assert robot.plot_qpdata_conv_skb(spin=0, kpoint=(0, 0, 0), band=3, - itemp=-1, show=False) - assert robot.plot_qpdata_conv_skb(spin=0, kpoint=(0, 0, 0), band=3, - itemp=0, sortby="nbsum", hue="nqibz", show=False) + itemp=0, sortby="nbsum", hue="nqibz", show=False) # Test plot_qpfield_vs_e0 assert robot.plot_qpfield_vs_e0("qpeme0", itemp=1, sortby=None, hue=None, diff --git a/abipy/eph/tests/test_transportfile.py b/abipy/eph/tests/test_transportfile.py index 76986685c..d37d70f57 100644 --- a/abipy/eph/tests/test_transportfile.py +++ b/abipy/eph/tests/test_transportfile.py @@ -18,8 +18,8 @@ def test_transportfile(self): si_transport.get_mobility_mu(0, 0) if self.has_matplotlib(): - assert si_transport.plot_dos(title="default values", show=False) - assert si_transport.plot_vvdos(colormap="viridis", component="yy", show=False) + assert si_transport.plot_edos(title="default values", show=False) + assert si_transport.plot_vvtau_dos(colormap="viridis", component="yy", show=False) assert si_transport.plot_mobility(colormap="viridis", component="yy", show=False) if self.has_nbformat(): diff --git a/abipy/eph/transportfile.py b/abipy/eph/transportfile.py index 17f3ade84..09c4244b5 100644 --- a/abipy/eph/transportfile.py +++ b/abipy/eph/transportfile.py @@ -1,15 +1,19 @@ # coding: utf-8 -"""TRANSPORT.nc file.""" +""" +TRANSPORT.nc file. + +Warning: This fileformat is deprecated and will be removed when Abinit 9.2 is released +""" import numpy as np import abipy.core.abinit_units as abu from monty.functools import lazy_property from monty.string import marquee -from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter -from abipy.electrons.ebands import ElectronsReader #, RobotWithEbands +from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter +from abipy.electrons.ebands import ElectronsReader, RobotWithEbands from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt -#from abipy.abio.robots import Robot +from abipy.abio.robots import Robot __all__ = [ @@ -17,7 +21,7 @@ ] -class TransportFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter): +class TransportFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter): @classmethod def from_file(cls, filepath): @@ -29,8 +33,10 @@ def __init__(self, filepath): self.reader = TransportReader(filepath) #self.fermi = self.ebands.fermie * abu.eV_Ha - #self.volume = self.ebands.structure.volume * abu.Ang_Bohr**3 self.tmesh = self.reader.tmesh + #self.transport_ngkpt = self.reader.read_value("transport_ngkpt") + #self.transport_extrael = self.reader.read_value("transport_extrael") + #self.transport_fermie = self.reader.read_value("transport_fermie") @property def ntemp(self): @@ -53,10 +59,39 @@ def params(self): od = self.get_ebands_params() return od + def __str__(self): + """String representation""" + return self.to_string() + + def to_string(self, verbose=0): + """String representation""" + lines = []; app = lines.append + + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + app(self.structure.to_string(verbose=verbose, title="Structure")) + app("") + app(self.ebands.to_string(with_structure=False, verbose=verbose, title="KS Electron Bands")) + app("") + + # Transport section. + app(marquee("Transport calculation", mark="=")) + app("Number of temperatures: %d" % self.ntemp) + app("Mobility:") + app("Temperature [K] Electrons [cm^2/Vs] Holes [cm^2/Vs]") + for itemp in range(self.ntemp): + temp = self.tmesh[itemp] + mobility_mu_e = self.get_mobility_mu(0, itemp) + mobility_mu_h = self.get_mobility_mu(1, itemp) + app("%14.1lf %18.6lf %18.6lf" % (temp, mobility_mu_e, mobility_mu_h)) + + return "\n".join(lines) + @add_fig_kwargs - def plot_dos(self, ax=None, **kwargs): + def plot_edos(self, ax=None, **kwargs): """ - Plot the density of states + Plot the electronic density of states Args: ax: |matplotlib-Axes| or None if a new figure should be created. @@ -65,16 +100,17 @@ def plot_dos(self, ax=None, **kwargs): """ ax, fig, plt = get_ax_fig_plt(ax=ax) wmesh, dos, idos = self.reader.read_dos() - ax.plot(wmesh, dos, **kwargs) + ax.plot(wmesh, dos[0], **kwargs) ax.grid(True) - ax.set_xlabel('Fermi level (eV)') - ax.set_ylabel('DOS') + ax.set_xlabel('Energy (eV)') + ax.set_ylabel('States/eV') + return fig @add_fig_kwargs - def plot_vvdos(self, component='xx', ax=None, colormap='jet', fontsize=8, **kwargs): + def plot_vvtau_dos(self, component='xx', ax=None, colormap='jet', fontsize=8, **kwargs): """ - Plot velocity * lifetime density of states + Plot velocity * lifetime density of states. Args: component: Component to plot: "xx", "yy" "xy" ... @@ -92,7 +128,7 @@ def plot_vvdos(self, component='xx', ax=None, colormap='jet', fontsize=8, **kwar ax.plot(wmesh, vvdos, c=cmap(itemp / self.ntemp), label='T = %dK' % temp) ax.grid(True) - ax.set_xlabel('Fermi level (eV)') + ax.set_xlabel('Energy (eV)') ax.set_ylabel('VVDOS') ax.set_yscale('log') ax.legend(loc="best", shadow=True, fontsize=fontsize) @@ -102,7 +138,7 @@ def plot_vvdos(self, component='xx', ax=None, colormap='jet', fontsize=8, **kwar @add_fig_kwargs def plot_mobility(self, component='xx', ax=None, colormap='jet', fontsize=8, **kwargs): """ - Read the Mobility from the netcdf file and plot it + Read the mobility from the netcdf file and plot it Args: component: Component to plot: "xx", "yy" "xy" ... @@ -140,46 +176,31 @@ def get_mobility_mu(self, eh, itemp, component='xx', ef=None, spin=0): """ from scipy import interpolate if ef is None: ef = self.reader.read_value('transport_mu_e')[itemp] - wmesh, mobility = self.reader.read_mobility(eh,itemp,component,spin) - f = interpolate.interp1d(wmesh,mobility) - return f(ef) - - def __str__(self): - """String representation""" - return self.to_string() + wmesh, mobility = self.reader.read_mobility(eh, itemp, component, spin) + f = interpolate.interp1d(wmesh, mobility) - def to_string(self, verbose=0): - """String representation""" - lines = []; app = lines.append + return f(ef) - app(marquee("File Info", mark="=")) - app(self.filestat(as_string=True)) - app("") - app(self.structure.to_string(verbose=verbose, title="Structure")) - app("") - app(self.ebands.to_string(with_structure=False, verbose=verbose, title="KS Electron Bands")) - app("") + #@add_fig_kwargs + #def plot_onsanger(self, nn=0, ax=None, **kwargs): + # """ + # Plot Onsanger - # Transport section. - app(marquee("Transport calculation", mark="=")) - app("Number of temperatures: %d" % self.ntemp) - app("Mobility:") - app("Temperature [K] Electrons [cm^2/Vs] Holes [cm^2/Vs]") - for itemp in range(self.ntemp): - temp = self.tmesh[itemp] - mobility_mu_e = self.get_mobility_mu(0, itemp) - mobility_mu_h = self.get_mobility_mu(1, itemp) - app("%14.1lf %18.6lf %18.6lf" % (temp, mobility_mu_e, mobility_mu_h)) + # Args: + # ax: |matplotlib-Axes| or None if a new figure should be created. - return "\n".join(lines) + # Return: |matplotlib-Figure| + # """ + # ax, fig, plt = get_ax_fig_plt(ax=ax) + # return fig def yield_figs(self, **kwargs): # pragma: no cover """ Return figures plotting the transport data """ - yield self.plot_dos(show=False) - yield self.plot_vvdos(show=False) - yield self.plot_mobility(show=False) + yield self.plot_edos(show=False, title="Density of states") + yield self.plot_vvtau_dos(show=False, title="VVDOS") + yield self.plot_mobility(show=False, title="Mobility") def close(self): """Close the file.""" @@ -193,10 +214,10 @@ def write_notebook(self, nbpath=None): nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) nb.cells.extend([ - nbv.new_code_cell("nfile = abilab.abiopen('%s')" % self.filepath), + nbv.new_code_cell("ncfile = abilab.abiopen('%s')" % self.filepath), nbv.new_code_cell("print(ncfile)"), - nbv.new_code_cell("ncfile.plot_dos();"), - nbv.new_code_cell("ncfile.plot_vvdos();"), + nbv.new_code_cell("ncfile.plot_edos();"), + nbv.new_code_cell("ncfile.plot_vvtau_dos();"), nbv.new_code_cell("ncfile.plot_mobility();"), ]) @@ -211,6 +232,7 @@ class TransportReader(ElectronsReader): def __init__(self, filepath): self.filepath = filepath super().__init__(filepath) + ktmesh = self.read_value("kTmesh") self.tmesh = ktmesh / abu.kb_HaK self.nsppol = self.read_dimvalue('nsppol') @@ -218,58 +240,66 @@ def __init__(self, filepath): def read_vvdos(self, component='xx', spin=1): """ Read the group velocity density of states - The vvdos_vals array has 3 dimensions (9,nsppolplus1,nw) + The vvdos_vals array has 3 dimensions (3, 3, nsppolplus1, nw) + 1. 3x3 components of the tensor 2. the spin polarization + 1 for the sum 3. the number of frequencies """ - i,j = abu.s2itup(component) + # nctkarr_t('vvdos_vals', "dp", "edos_nw, nsppol_plus1, three, three"), & + i, j = abu.s2itup(component) wmesh = self.read_variable("vvdos_mesh")[:] * abu.Ha_eV vals = self.read_variable("vvdos_vals") vvdos = vals[i,j,spin,:] + return wmesh, vvdos def read_vvdos_tau(self, itemp, component='xx', spin=1): """ - Read the group velocity density of states times lifetime for different temperatures - The vvdos_tau array has 4 dimensions (ntemp,9,nsppolplus1,nw) - 1. the number of temperatures - 2. 3x3 components of the tensor - 3. the spin polarization + 1 for the sum - 4. the number of frequencies + Read the group velocity density of states + The vvdos_vals array has 3 dimensions (3, 3, nsppolplus1, nw) + + 1. 3x3 components of the tensor + 2. the spin polarization + 1 for the sum + 3. the number of frequencies """ - i,j = abu.s2itup(component) + # nctkarr_t('vvdos_tau', "dp", "edos_nw, nsppol_plus1, three, three, ntemp"), & + i, j = abu.s2itup(component) wmesh = self.read_variable("vvdos_mesh")[:] * abu.Ha_eV vals = self.read_variable("vvdos_tau") vvdos_tau = vals[itemp,i,j,spin,:] / (2 * abu.Ha_s) + return wmesh, vvdos_tau - def read_dos(self, spin=0): + def read_dos(self): """ - Read the density of states + Read the density of states (in eV units) """ - vals = self.read_variable("edos_mesh") - wmesh = vals[:] - vals = self.read_variable("edos_dos") - dos = vals[spin,:] - vals = self.read_variable("edos_idos") - idos = vals[spin,:] + # Total DOS, spin up and spin down component. + # nctkarr_t("edos_dos", "dp", "edos_nw, nsppol_plus1") + wmesh = self.read_value("edos_mesh") * abu.Ha_to_eV + dos = self.read_value("edos_dos") / abu.Ha_to_eV + idos = self.read_value("edos_idos") return wmesh, dos, idos def read_onsager(self, itemp): """ Read the Onsager coefficients computed in the transport driver in Abinit """ + # nctkarr_t('L0', "dp", "edos_nw, nsppol, three, three, ntemp"), & L0 = np.moveaxis(self.read_variable("L0")[itemp,:], [0,1,2,3], [3,2,0,1]) L1 = np.moveaxis(self.read_variable("L1")[itemp,:], [0,1,2,3], [3,2,0,1]) L2 = np.moveaxis(self.read_variable("L2")[itemp,:], [0,1,2,3], [3,2,0,1]) + return L0, L1, L2 def read_transport(self, itemp): - sigma = np.moveaxis(self.read_variable("sigma")[itemp,:], [0,1,2,3],[3,2,0,1]) - kappa = np.moveaxis(self.read_variable("kappa")[itemp,:], [0,1,2,3],[3,2,0,1]) - seebeck = np.moveaxis(self.read_variable("seebeck")[itemp,:], [0,1,2,3],[3,2,0,1]) - pi = np.moveaxis(self.read_variable("pi")[itemp,:], [0,1,2,3],[3,2,0,1]) + # nctkarr_t('sigma', "dp", "edos_nw, nsppol, three, three, ntemp"), & + sigma = np.moveaxis(self.read_variable("sigma")[itemp,:], [0,1,2,3], [3,2,0,1]) + kappa = np.moveaxis(self.read_variable("kappa")[itemp,:], [0,1,2,3], [3,2,0,1]) + seebeck = np.moveaxis(self.read_variable("seebeck")[itemp,:], [0,1,2,3], [3,2,0,1]) + pi = np.moveaxis(self.read_variable("pi")[itemp,:], [0,1,2,3], [3,2,0,1]) + return sigma, kappa, seebeck, pi def read_mobility(self, eh, itemp, component, spin): @@ -277,26 +307,157 @@ def read_mobility(self, eh, itemp, component, spin): Read mobility from the TRANSPORT.nc file The mobility is computed separately for electrons and holes. """ - i,j = abu.s2itup(component) - wvals = self.read_variable("vvdos_mesh") + # nctkarr_t('mobility',"dp", "edos_nw, nsppol, three, three, ntemp, two"), & + i, j = abu.s2itup(component) + #wvals = self.read_variable("vvdos_mesh") + wvals = self.read_value("vvdos_mesh") mobility = self.read_variable("mobility")[eh,itemp,i,j,spin,:] + return wvals, mobility - def read_evk_diagonal(self): + #def read_evk_diagonal(self): + # """ + # Read the group velocities i.e the diagonal matrix elements. + # Return (nsppol, nkpt) |numpy-array| of real numbers. + # """ + # vels = self.read_variable("vred_diagonal") + # # Cartesian? Ha --> eV? + # return vels * (abu.Ha_to_eV / abu.Bohr_Ang) + + +class TransportRobot(Robot, RobotWithEbands): + """ + This robot analyzes the results contained in multiple TRANSPORT.nc files. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: TransportRobot + """ + + EXT = "TRANSPORT" + + @add_fig_kwargs + def plot_mobility_conv(self, eh=0, component='xx', itemp=0, spin=0, fontsize=14, ax=None, **kwargs): """ - Read the group velocities i.e the diagonal matrix elements. - Return (nsppol, nkpt) |numpy-array| of real numbers. + Plot the convergence of the mobility obtained in a list of files + + Args: + eh: 0 for electrons, 1 for holes + component: Component to plot ('xx', 'xy', ...) + itemp: Index of the temperature. + spin: Spin index. + fontsize: fontsize for legends and titles + ax: |matplotlib-Axes| or None if a new figure should be created. + + Returns: |matplotlib-Figure| """ - vels = self.read_variable("vred_diagonal") - # Cartesian? Ha --> eV? - return vels * (abu.Ha_to_eV / abu.Bohr_Ang) - - -#class TransportRobot(Robot, RobotWithEbands): -# """ -# This robot analyzes the results contained in multiple TRANSPORT.nc files. -# -# .. rubric:: Inheritance Diagram -# .. inheritance-diagram:: TransportRobot -# """ -# EXT = "TRANSPORT" + ax, fig, plt = get_ax_fig_plt(ax=ax) + ax.grid(True) + + i, j = abu.s2itup(component) + + res = [] + for ncfile in self.abifiles: + kptrlatt = ncfile.reader.read_value('kptrlatt') + kptrlattx = kptrlatt[0, 0] + kptrlatty = kptrlatt[1, 1] + kptrlattz = kptrlatt[2, 2] + #nkpt = ncfile.nkpt + mobility = ncfile.reader.read_value('mobility_mu')[itemp][i,j][spin][eh] + res.append([kptrlattx, mobility]) + + res.sort(key=lambda t: t[0]) + res = np.array(res) + + size = 14 + if eh == 0: + ax.set_ylabel(r'Electron mobility (cm$^2$/(V$\cdot$s))', size=size) + elif eh == 1: + ax.set_ylabel(r'Hole mobility (cm$^2$/(V$\cdot$s))', size=size) + else: + raise ValueError("Invalid value for eh argument: %s" % eh) + + from fractions import Fraction + ratio1 = Fraction(kptrlatty, kptrlattx) + ratio2 = Fraction(kptrlattz, kptrlattx) + text1 = '' if ratio1.numerator == ratio1.denominator else \ + r'$\frac{{{0}}}{{{1}}}$'.format(ratio1.numerator, ratio1.denominator) + text2 = '' if ratio2.numerator == ratio2.denominator else \ + r'$\frac{{{0}}}{{{1}}}$'.format(ratio2.numerator, ratio2.denominator) + + ax.set_xlabel(r'Homogeneous $N_k \times$ ' + text1 + r'$N_k \times$ ' + text2 + r'$N_k$ $\mathbf{k}$-point grid', + size=size) + + ax.plot(res[:,0], res[:,1], **kwargs) + + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + #yield self.plot_lattice_convergence(show=False) + #yield self.plot_gsr_convergence(show=False) + #for fig in self.get_ebands_plotter().yield_figs(): yield fig + #self.plot_mobility_conv(eh=0, component='xx', itemp=0, spin=0, fontsize=14, ax=None, **kwargs): + + #def get_panel(self): + # """ + # Build panel with widgets to interact with the |GsrRobot| either in a notebook or in panel app. + # """ + # from abipy.panels.transportfile import TransportRobotPanel + # return TransportRobotPanel(self).get_panel() + + def write_notebook(self, nbpath=None): + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + args = [(l, f.filepath) for l, f in self.items()] + nb.cells.extend([ + #nbv.new_markdown_cell("# This is a markdown cell"), + nbv.new_code_cell("robot = abilab.GsrRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), + #nbv.new_code_cell("ebands_plotter = robot.get_ebands_plotter()"), + ]) + + # Mixins + #nb.cells.extend(self.get_baserobot_code_cells()) + #nb.cells.extend(self.get_ebands_code_cells()) + + return self._write_nb_nbpath(nb, nbpath) + + +if __name__ == "__main__": + import sys + robot = TransportRobot.from_files(sys.argv[1:]) + print(robot) + + #import matplotlib.pyplot as plt + #plt.figure(0, figsize=(14,9)) + #plt.tick_params(labelsize=14) + #ax = plt.gca() + + robot.plot_mobility_conv(ax=None, color='k', marker='o', label=r'$N_{{q_{{x,y,z}}}}$ = $N_{{k_{{x,y,z}}}}$') + + #fileslist = ['conv_fine/k27x27x27/q27x27x27/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k30x30x30/q30x30x30/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k108x108x108/q108x108x108/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k120x120x120/q120x120x120/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k132x132x132/q132x132x132/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k144x144x144/q144x144x144/Sio_DS1_TRANSPORT.nc',] + + #plot_mobility_conv(ax, fileslist, color='k', marker='o', label=r'$N_{{q_{{x,y,z}}}}$ = $N_{{k_{{x,y,z}}}}$') + + #fileslist = ['conv_fine/k27x27x27/q54x54x54/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k30x30x30/q60x60x60/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k66x66x66/q132x132x132/Sio_DS1_TRANSPORT.nc', + # 'conv_fine/k72x72x72/q144x144x144/Sio_DS1_TRANSPORT.nc'] + + #plot_mobility_conv(ax, fileslist, color='r', marker='x', label=r'$N_{{q_{{x,y,z}}}}$ = $2 N_{{k_{{x,y,z}}}}$') + + #plt.legend(loc='best',fontsize=14) + #plt.show() diff --git a/abipy/eph/v1qavg.py b/abipy/eph/v1qavg.py index ac4eec000..f90737eb9 100644 --- a/abipy/eph/v1qavg.py +++ b/abipy/eph/v1qavg.py @@ -2,19 +2,22 @@ """ Tools to analyze the V1QAVG file produced by the E-PH code (eph_task +15 or -15) """ +from __future__ import annotations import numpy as np from collections import OrderedDict from monty.string import list_strings, marquee from monty.functools import lazy_property +from abipy.core.structure import Structure from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt +from abipy.tools.typing import Figure from abipy.core.mixins import AbinitNcFile, Has_Structure, NotebookWriter from abipy.core.kpoints import Kpath from abipy.abio.robots import Robot from abipy.iotools import ETSF_Reader -def _get_style(reim, what, marker=None, markersize=None, alpha=2.0): +def _get_style(reim, what, marker=None, markersize=None, alpha=1.0) -> str: lw = 1 symbol, linestyle, linewidth = { "v1scf_avg": (r"v1_{\bf q}", "-", lw), @@ -50,7 +53,7 @@ class V1qAvgFile(AbinitNcFile, Has_Structure, NotebookWriter): This option is usually used to visualize the ab-initio potentials and compare then with the model for the LR part. """ - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) self.reader = r = ETSF_Reader(filepath) # Read medadata @@ -64,33 +67,33 @@ def __init__(self, filepath): self.qdamp = r.read_value("qdamp") @lazy_property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.reader.read_structure() @lazy_property - def qpoints(self): - """List of Q-points.""" + def qpoints(self) -> Kpath: + """List of q-points.""" frac_coords = self.reader.read_value('qpoints') return Kpath(self.structure.reciprocal_lattice, frac_coords, ksampling=None) @lazy_property - def has_maxw(self): + def has_maxw(self) -> bool: """True if ncfile contains Max_r |W(R, r)|""" return "maxw" in self.reader.rootgrp.variables - def close(self): + def close(self) -> None: self.reader.close() @lazy_property - def params(self): + def params(self) -> dict: """Dict with parameters that might be subject to convergence studies.""" return {} - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append app(marquee("File Info", mark="=")) @@ -107,9 +110,10 @@ def to_string(self, verbose=0): return "\n".join(lines) - def make_ticks_and_labels(self): - """Find the k-point names in the pymatgen database.""" - + def make_ticks_and_labels(self) -> tuple: + """ + Find the k-point names in the pymatgen database. + """ od = OrderedDict() # If the first or the last k-point are not recognized in findname_in_hsym_stars # matplotlib won't show the full band structure along the k-path @@ -128,8 +132,37 @@ def make_ticks_and_labels(self): return list(od.keys()), list(od.values()) + #def xsf_write(self, idir=0, ipert=0, ispden=0): + # natom = len(self.structure) + # ip = idir + 3 * ipert + # r = self.reader + # ngfft = r.read_value("ngfft") + + # from abipy.tools.numtools import transpose_last3dims + # from abipy.iotools import xsf + + # def write(datar, filename): + # with open(filename, mode="wt") as fh: + # xsf.xsf_write_structure(fh, self.structure) + # xsf.xsf_write_data(fh, self.structure, datar, add_replicas=True, cplx_mode="abs") + + # # nctkarr_t("v1r_interpolated", "dp", "two, nfft, nspden, natom3") + # var = r.read_variable("v1r_interpolated") + # datar = var[ip, ispden, :, 0] + 1j * var[ip, ispden, :, 1] + # # Because we are reading Fortran data (z,y,x) and xsf_write_data expects (..., x, y, z) + # #print(datar.shape) + # datar = np.reshape(datar, np.flip(ngfft)) + # datar = transpose_last3dims(datar) + # write(datar, "v1r_interp_idir%d_ipert%d.xsf" % (idir, ipert)) + + # var = r.read_variable("v1r_lrmodel") + # datar = var[ip, ispden, :, 0] + 1j * var[ip, ispden, :, 1] + # datar = np.reshape(datar, np.flip(ngfft)) + # datar = transpose_last3dims(datar) + # write(datar, "v1r_lr_idir%d_ipert%d.xsf" % (idir, ipert)) + @add_fig_kwargs - def plot(self, what_list="all", ispden=0, fontsize=6, sharey=False, **kwargs): + def plot(self, what_list="all", ispden=0, fontsize=6, sharey=False, **kwargs) -> Figure: """ Plot @@ -184,12 +217,12 @@ def plot(self, what_list="all", ispden=0, fontsize=6, sharey=False, **kwargs): return fig @add_fig_kwargs - def plot_gvec(self, gvec, ispden=0, fontsize=6, sharey=False, **kwargs): + def plot_gvec(self, gvec, ispden=0, fontsize=6, sharey=False, **kwargs) -> Figure: """ Plot Args: - gvec + gvec: G vector in reduced coordinates. ispden: Spin density component to plot. fontsize: fontsize for legends and titles sharey: True to share y-axes. @@ -229,7 +262,7 @@ def plot_gvec(self, gvec, ispden=0, fontsize=6, sharey=False, **kwargs): # plot difference. ys = (data["v1scf_gsmall"][:, iat, idir, ispden, reim] - -data["v1lr_gsmall"][:, iat, idir, ispden, reim]) # * 10 + - data["v1lr_gsmall"][:, iat, idir, ispden, reim]) # * 10 ax.plot(xs, ys, **_get_style(reim, "v1scfmlr_gsmall")) ax.grid(True) @@ -253,7 +286,7 @@ def plot_gvec(self, gvec, ispden=0, fontsize=6, sharey=False, **kwargs): return fig @add_fig_kwargs - def plot_maxw(self, scale="semilogy", ax=None, fontsize=8, **kwargs): + def plot_maxw(self, scale="semilogy", ax=None, fontsize=8, **kwargs) -> Figure: """ Plot the decay of max_{r,idir,ipert} |W(R,r,idir,ipert)| @@ -268,8 +301,8 @@ def plot_maxw(self, scale="semilogy", ax=None, fontsize=8, **kwargs): ax, fig, plt = get_ax_fig_plt(ax=ax) # Fortran array: nctkarr_t("maxw", "dp", "nrpt, natom3") - maxw = self.reader.read_value("maxw") rmod = self.reader.read_value("rmod") + maxw = self.reader.read_value("maxw") data = np.max(maxw, axis=0) f = {"plot": ax.plot, "semilogy": ax.semilogy, "loglog": ax.loglog}[scale] f(rmod, data, marker="o", ls=":", lw=0, **kwargs) @@ -284,7 +317,7 @@ def plot_maxw(self, scale="semilogy", ax=None, fontsize=8, **kwargs): return fig @add_fig_kwargs - def plot_maxw_perts(self, scale="semilogy", sharey=False, fontsize=8, **kwargs): + def plot_maxw_perts(self, scale="semilogy", sharey=False, fontsize=8, **kwargs) -> Figure: """ Plot the decay of max_r |W(R,r,idir,ipert)| for the individual atomic perturbations. @@ -306,8 +339,8 @@ def plot_maxw_perts(self, scale="semilogy", sharey=False, fontsize=8, **kwargs): # Fortran array: nctkarr_t("maxw", "dp", "nrpt, natom3") nrpt = self.reader.read_dimvalue("nrpt") - maxw = np.reshape(self.reader.read_value("maxw"), (natom, 3, nrpt)) rmod = self.reader.read_value("rmod") + maxw = np.reshape(self.reader.read_value("maxw"), (natom, 3, nrpt)) for iatom, ax in enumerate(ax_list.ravel()): site = self.structure[iatom] @@ -347,7 +380,7 @@ def yield_figs(self, **kwargs): # pragma: no cover else: print("Use verbose to print the decay of W(r,R)") - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter notebook to ``nbpath``. If nbpath is None, a temporary file in the current working directory is created. Return path to the notebook. @@ -397,7 +430,7 @@ def qpoints(self): return self.abifiles[0].qpoints @add_fig_kwargs - def plot(self, ispden=0, vname="v1scf_avg", sharey=False, fontsize=8, **kwargs): + def plot(self, ispden=0, vname="v1scf_avg", sharey=False, fontsize=8, **kwargs) -> Figure: """ Plot @@ -454,7 +487,7 @@ def plot(self, ispden=0, vname="v1scf_avg", sharey=False, fontsize=8, **kwargs): return fig @add_fig_kwargs - def plot_maxw(self, ax=None, **kwargs): + def plot_maxw(self, ax=None, **kwargs) -> Figure: """ Plot @@ -481,7 +514,7 @@ def yield_figs(self, **kwargs): # pragma: no cover if all(abifile.has_maxw for abifile in self.abifiles): yield self.plot_maxw(self, show=False, **kwargs) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter notebook to `nbpath`. If nbpath is None, a temporary file in the current working directory is created. Return path to the notebook. diff --git a/abipy/eph/v1qnu.py b/abipy/eph/v1qnu.py index 2243aa11a..6bf4d72f6 100644 --- a/abipy/eph/v1qnu.py +++ b/abipy/eph/v1qnu.py @@ -4,14 +4,14 @@ """ import numpy as np -from collections import OrderedDict +#from collections import OrderedDict from monty.string import marquee from monty.functools import lazy_property -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt +#from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt from abipy.core.mixins import AbinitNcFile, Has_Structure, NotebookWriter -from abipy.core.kpoints import KpointList, Kpoint -from abipy.tools import duck -from abipy.iotools import Visualizer, xsf, ETSF_Reader #, cube +#from abipy.core.kpoints import Kpoint #KpointList, +#from abipy.tools import duck +from abipy.iotools import xsf, ETSF_Reader #, cube Visualizer, class V1qnuFile(AbinitNcFile, Has_Structure, NotebookWriter): @@ -55,96 +55,96 @@ def to_string(self, verbose=0): return "\n".join(lines) - @lazy_property - def qpoints(self): - return KpointList(self.structure.reciprocal_lattice, frac_coords=self.reader.read_value("qlist")) - - def _find_iqpt_qpoint(self, qpoint): - if duck.is_intlike(qpoint): - iq = qpoint - qpoint = self.qpoints[iq] - else: - qpoint = Kpoint.as_kpoint(qpoint, self.structure.reciprocal_lattice) - iq = self.qpoints.index(qpoint) - - return iq, qpoint - - def visualize_qpoint_nu(self, qpoint, nu, spin=0, appname="vesta"): - iq, qpoint = self._find_iqpt_qpoint(qpoint) - - # Fortran array nctkarr_t("v1_qnu", "dp", "two, nfft, nspden, natom3, nqlist")]) - v1_qnu = self.reader.read_variable("v1_qnu")[iq, nu, spin] - v1_qnu = v1_qnu[:, 0] + 1j * v1_qnu[:, 1] - #wqnu = self.reader.read_variable["phfreqs"][nu] - #v1_qnu /= np.sqrt(2 * wqnu) - datar = np.reshape(np.abs(v1_qnu), self.ngfft) - - visu = Visualizer.from_name(appname) - ext = "xsf" - if ext not in visu.supported_extensions(): - raise ValueError("Visualizer %s does not support XSF files" % visu) - from abipy.core.globals import abinb_mkstemp - _, filename = abinb_mkstemp(suffix="." + ext, text=True) - - with open(filename, mode="wt") as fh: - if ext == "xsf": - xsf.xsf_write_structure(fh, self.structure) - xsf.xsf_write_data(fh, self.structure, datar, add_replicas=True) - else: - raise NotImplementedError("extension %s is not supported." % ext) + #@lazy_property + #def qpoints(self): + # return KpointList(self.structure.reciprocal_lattice, frac_coords=self.reader.read_value("qlist")) - return visu(filename) + #def _find_iqpt_qpoint(self, qpoint): + # if duck.is_intlike(qpoint): + # iq = qpoint + # qpoint = self.qpoints[iq] + # else: + # qpoint = Kpoint.as_kpoint(qpoint, self.structure.reciprocal_lattice) + # iq = self.qpoints.index(qpoint) - @add_fig_kwargs - def plot_v1qnu_vs_lr(self, ax=None, fontsize=8, **kwargs): - """ - Plot the difference between the ab-initio v1_qnu and the potential obtained with Verdi's model + # return iq, qpoint - Args: - ax: |matplotlib-Axes| or None if a new figure should be created. - fontsize: Label and title fontsize. + def visualize_nu(self, nu, spin=0, appname="vesta"): + #iq, qpoint = self._find_iqpt_qpoint(qpoint) - Return: |matplotlib-Figure| - """ - # Fortran array nctkarr_t("v1_qnu", "dp", "two, nfft, nspden, natom3, nqlist")]) - v1_qnu = self.reader.read_value("v1_qnu", cmode="c") - v1lr_qnu = self.reader.read_value("v1lr_qnu", cmode="c") - - stats = OrderedDict([ - ("min", []), - ("max", []), - ("mean", []), - ("std", []), - ]) + def xsf_write(filename, datar): + with open(filename, mode="wt") as fh: + xsf.xsf_write_structure(fh, self.structure) + xsf.xsf_write_data(fh, self.structure, datar, add_replicas=True) - qnorms = [] - for iq, qpt in enumerate(self.qpoints): - qnorms.append(qpt.norm) - abs_diff = np.abs(v1_qnu[iq] - v1lr_qnu[iq]) - for key in stats.keys(): - stats[key].append(getattr(abs_diff, key)()) - - # Sort values by |q|. - qindex = np.arange(len(qnorms)) - items = sorted(list(zip(qnorms, qindex)), key=lambda t: t[0]) - qnorm = np.array([t[0] for t in items]) - qindex = np.array([t[1] for t in items]) - #print(qnorm, "\n", qindex) - for key in stats.keys(): - stats[key] = np.array(stats[key])[qindex] - - ax, fig, plt = get_ax_fig_plt(ax=ax) - for key, values in stats.items(): - ax.plot(values, label=key) - - ax.grid(True) - ax.set_xlabel(r"$|\bf{q}|$ 1/Ang") - #ax.set_ylabel(r"$|g_{\bf q}|$ (meV)") - ax.legend(loc="best", fontsize=fontsize, shadow=True) - #title = "band_kq: %s, band_k: %s, kpoint: %s" % (band_kq, band_k, repr(kpoint)) - #ax.set_title(title, fontsize=fontsize) - - return fig + from abipy.tools.numtools import transpose_last3dims + wqnu = self.reader.read_variable("phfreqs")[nu] + + for vname in ("v1_qnu", "v1lr_qnu"): + # Fortran array nctkarr_t("v1_qnu", "dp", "two, nfft, nspden, natom3")]) + datar = self.reader.read_variable(vname)[nu, spin] + datar = datar[:, 0] + 1j * datar[:, 1] + #datar /= np.sqrt(2 * wqnu) + datar = transpose_last3dims(datar) + datar = np.reshape(np.abs(datar), self.ngfft) + xsf_write("%s.xsf" % vname, datar) + + #visu = Visualizer.from_name(appname) + #ext = "xsf" + #if ext not in visu.supported_extensions(): + # raise ValueError("Visualizer %s does not support XSF files" % visu) + #from abipy.core.globals import abinb_mkstemp + #_, filename = abinb_mkstemp(suffix="." + ext, text=True) + + #@add_fig_kwargs + #def plot_v1qnu_vs_lr(self, ax=None, fontsize=8, **kwargs): + # """ + # Plot the difference between the ab-initio v1_qnu and the potential obtained with Verdi's model + + # Args: + # ax: |matplotlib-Axes| or None if a new figure should be created. + # fontsize: Label and title fontsize. + + # Return: |matplotlib-Figure| + # """ + # # Fortran array nctkarr_t("v1_qnu", "dp", "two, nfft, nspden, natom3, nqlist")]) + # v1_qnu = self.reader.read_value("v1_qnu", cmode="c") + # v1lr_qnu = self.reader.read_value("v1lr_qnu", cmode="c") + + # stats = OrderedDict([ + # ("min", []), + # ("max", []), + # ("mean", []), + # ("std", []), + # ]) + + # qnorms = [] + # for iq, qpt in enumerate(self.qpoints): + # qnorms.append(qpt.norm) + # abs_diff = np.abs(v1_qnu[iq] - v1lr_qnu[iq]) + # for key in stats.keys(): + # stats[key].append(getattr(abs_diff, key)()) + + # # Sort values by |q|. + # qindex = np.arange(len(qnorms)) + # items = sorted(list(zip(qnorms, qindex)), key=lambda t: t[0]) + # qnorm = np.array([t[0] for t in items]) + # qindex = np.array([t[1] for t in items]) + # #print(qnorm, "\n", qindex) + # for key in stats.keys(): + # stats[key] = np.array(stats[key])[qindex] + + # ax, fig, plt = get_ax_fig_plt(ax=ax) + # for key, values in stats.items(): + # ax.plot(values, label=key) + + # ax.grid(True) + # ax.set_xlabel(r"$|\bf{q}|$ 1/Ang") + # #ax.set_ylabel(r"$|g_{\bf q}|$ (meV)") + # ax.legend(loc="best", fontsize=fontsize, shadow=True) + # #title = "band_kq: %s, band_k: %s, kpoint: %s" % (band_kq, band_k, repr(kpoint)) + # #ax.set_title(title, fontsize=fontsize) + # return fig def yield_figs(self, **kwargs): # pragma: no cover """ @@ -166,3 +166,9 @@ def write_notebook(self, nbpath=None): ]) return self._write_nb_nbpath(nb, nbpath) + + +if __name__ == "__main__": + import sys + with V1qnuFile(sys.argv[1]) as ncfile: + ncfile.visualize_nu(nu=5) diff --git a/abipy/eph/varpeq.py b/abipy/eph/varpeq.py new file mode 100644 index 000000000..657ff60a4 --- /dev/null +++ b/abipy/eph/varpeq.py @@ -0,0 +1,1031 @@ +""" +This module contains objects for postprocessing polaron calculations +using the results stored in the VARPEQ.nc file. + +For a theoretical introduction see ... +""" +from __future__ import annotations + +import dataclasses +import numpy as np +import pandas as pd +import abipy.core.abinit_units as abu + +from collections import defaultdict +from monty.string import marquee #, list_strings +from monty.functools import lazy_property +from monty.termcolor import cprint +from abipy.core.func1d import Function1D +from abipy.core.structure import Structure +from abipy.core.kpoints import kpoints_indices, kmesh_from_mpdivs, map_grid2ibz, IrredZone +from abipy.core.mixins import AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter +from abipy.tools.typing import PathLike +from abipy.tools.plotting import (add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_axlims, set_visible, + rotate_ticklabels, ax_append_title, set_ax_xylabels, linestyles, Marker, set_grid_legend) +from abipy.electrons.ebands import ElectronBands, RobotWithEbands +from abipy.dfpt.phonons import PhononBands +from abipy.dfpt.ddb import DdbFile +from abipy.tools.typing import Figure +from abipy.tools.numtools import BzRegularGridInterpolator, gaussian +from abipy.iotools import bxsf_write +from abipy.abio.robots import Robot +from abipy.eph.common import BaseEphReader + + +#TODO Finalize the implementation. Look at Pedro's implementation for GFR +#from abipy.electrons.effmass_analyzer import EffMassAnalyzer +# +#class FrohlichAnalyzer: +# +# def __init__(self, gsr_kpath, ddb, verbose = 0, **anaddb_kwargs): +# """ +# """ +# ebands_kpath = ElectronBands.as_ebands(gsr_kpath) +# self.ddb = DdbFile.as_ddb(ddb) +# self.verbose = verbose +# +# r = self.ddb.anaget_epsinf_and_becs(verbose=verbose, return_input=True, **anaddb_kwargs) +# self.epsinf, self.becs = r.epsinf, r.becs +# +# self.diel_gen, diel_inp = self.ddb.anaget_dielectric_tensor_generator(verbose=verbose, return_input=True, **anaddb_kwargs) +# self.eps0_tensor = self.diel_gen.tensor_at_frequency(0.0) +# +# # Spherical average of eps_inf and eps_0 (real part only) +# einf_savg, e0_savg = self.epsinf.trace() / 3, self.eps0_tensor.real.trace() / 3 +# +# self.kappa = 1 / (1/einf_savg - 1/e0_savg) +# +# self.emana = EffMassAnalyzer(ebands_kpath) +# +# def __str__(self) -> str: +# return self.to_string() +# +# def to_string(self, verbose: int = 0) -> str: +# """String representation with verbosity level verbose""" +# lines = [] +# app = lines.append +# +# app("epsilon_infinity in Cartesian coordinates:") +# app(str(self.epsinf)) +# app("BECS:") +# app(str(self.becs)) +# app("eps0 tensor:") +# app(str(self.eps0_tensor)) +# app(f"kappa = {self.kappa}") +# +# return "\n".join(lines) +# +# def analyze_band_edges(self): +# self.emana.select_cbm() +# self.emana.summarize() +# self.emana.plot_emass() +# self.emana.select_vbm() +# self.emana.summarize() +# self.emana.plot_emass() +# #self.emana.select_band_edges() + + +@dataclasses.dataclass(kw_only=True) +class Entry: + name: str + latex: str + info: str + utype: str + #color: str + + +# NB: All quantities are in atomic units! +_ALL_ENTRIES = [ + Entry(name="E_pol", latex=r'$E_{pol}$', info="Formation energy", utype="energy"), + Entry(name="E_el", latex=r'$E_{el}$', info="Electronic part", utype="energy"), + Entry(name="E_ph", latex=r'$E_{ph}$', info="Phonon part", utype="energy"), + Entry(name="elph", latex=r'$E_{elph}$', info="e-ph term", utype="energy"), + Entry(name="epsilon", latex=r"$\varepsilon$", info="Polaron eigenvalue", utype="energy"), + Entry(name="gsr", latex=r"$|\nabla|$", info="||gradient||", utype="gradient"), +] + +# Convert to dictionary: name --> Entry +_ALL_ENTRIES = {e.name: e for e in _ALL_ENTRIES} + + +class VarpeqFile(AbinitNcFile, Has_Structure, Has_ElectronBands, NotebookWriter): + """ + This file stores the results of a VARPEQ calculations: SCF cycle, A_nk, B_qnu + and provides methods to analyze and plot results. + + Usage example: + + .. code-block:: python + + from abipy.eph.varpeq import VarpeqFile + with VarpeqFile("out_VARPEQ.nc") as varpeq: + print(varpeq) + varpeq.plot_scf_cycle() + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: VarpeqFile + """ + + @classmethod + def from_file(cls, filepath: PathLike) -> VarpeqFile: + """Initialize the object from a netcdf file.""" + return cls(filepath) + + def __init__(self, filepath: PathLike): + super().__init__(filepath) + self.r = VarpeqReader(filepath) + + @lazy_property + def ebands(self) -> ElectronBands: + """|ElectronBands| object.""" + return self.r.read_ebands() + + @property + def structure(self) -> Structure: + """|Structure| object.""" + return self.ebands.structure + + def close(self) -> None: + """Close the file.""" + self.r.close() + + @lazy_property + def polaron_spin(self) -> list[Polaron]: + """List of polaron objects, one for each spin (if any).""" + return [Polaron.from_varpeq(self, spin) for spin in range(self.r.nsppol)] + + @lazy_property + def params(self) -> dict: + """dict with the convergence parameters, e.g. ``nbsum``.""" + r = self.r + + ksampling = self.ebands.kpoints.ksampling + ngkpt, shifts = ksampling.mpdivs, ksampling.shifts + nkbz = np.prod(ngkpt) + + od = dict([ + ("nkbz", nkbz), + ("ngkpt", ngkpt), + ("invsc_size", 1.0 / (nkbz * ((abu.Ang_Bohr * self.structure.lattice.volume) ** (1/3)))), + ("frohl_ntheta", r.frohl_ntheta), + ]) + return od + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = []; app = lines.append + + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + app(self.structure.to_string(verbose=verbose, title="Structure")) + app("") + app(self.ebands.to_string(with_structure=False, verbose=verbose, title="Electronic Bands")) + + app("") + app("VARPEQ parameters:") + app(f"varpeq_pkind: {self.r.varpeq_pkind}") + #app(f"gstore_cplex: {self.r.cplex}") + #app(f"gstore_kzone: {self.r.kzone}") + #app(f"gstore_kfilter: {self.r.kfilter}") + #app(f"gstore_kptopt: {self.r.kptopt}") + #app(f"gstore_qptopt: {self.r.qptopt}") + + for spin in range(self.nsppol): + polaron = self.polaron_spin[spin] + df = polaron.get_final_results_df() + app(f"Last SCF iteration. Energies in eV units") + app(str(df)) + app("") + + return "\n".join(lines) + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + for polaron in self.polaron_spin: + yield polaron.plot_scf_cycle(show=False) + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + nb.cells.extend([ + nbv.new_code_cell("varpeq = abilab.abiopen('%s')" % self.filepath), + nbv.new_code_cell("print(varpeq)"), + ]) + + return self._write_nb_nbpath(nb, nbpath) + + +@dataclasses.dataclass(kw_only=True) +class Polaron: + """ + This object stores the polaron coefficients A_kn, B_qnu for a given spin and all the nstate polaron states. + Provides methods to plot |A_nk|^2 or |B_qnu|^2 together with the band structures (fatbands-like plots). + """ + spin: int # Spin index. + nstates: int # Number of polaronic states. + nb: int # Number of bands in A_kn, + nk: int # Number of k-points in A_kn, (including filtering if any) + nq: int # Number of q-points in B_qnu (including filtering if any) + bstart: int # First band starts at bstart + bstop: int # Last band (python convention) + varpeq: VarpeqFile + + @classmethod + def from_varpeq(cls, varpeq: VarpeqFile, spin: int) -> Polaron: + """ + Build an istance from a VarpeqFile and the spin index. + """ + r = varpeq.r + nstates, nk, nq, nb = r.nstates, r.nk_spin[spin], r.nq_spin[spin], r.nb_spin[spin] + bstart, bstop = r.brange_spin[spin] + + data = locals() + return cls(**{k: data[k] for k in [field.name for field in dataclasses.fields(Polaron)]}) + + @property + def structure(self) -> Structure: + """Crystalline structure.""" + return self.varpeq.structure + + @property + def ebands(self) -> ElectronBands: + """Electron bands.""" + return self.varpeq.ebands + + @lazy_property + def kpoints(self) -> np.ndarray: + """Reduced coordinates of the k-points.""" + return self.varpeq.r.read_value("kpts_spin")[self.spin, :self.nk] + + @lazy_property + def qpoints(self) -> np.ndarray: + """Reduced coordinates of the q-points.""" + return self.varpeq.r.read_value("qpts_spin")[self.spin, :self.nq] + + @lazy_property + def a_kn(self) -> np.ndarray: + """A_{pnk} coefficients for this spin.""" + return self.varpeq.r.read_value("a_spin", cmode="c")[self.spin, :self.nstates, :self.nk, :self.nb] + + @lazy_property + def b_qnu(self) -> np.ndarray: + """B_{pqnu} coefficients for this spin.""" + return self.varpeq.r.read_value("b_spin", cmode="c")[self.spin, :self.nstates, :self.nq] + + @lazy_property + def scf_df_state(self) -> list[pd.DataFrame]: + """ + List of dataframes with the SCF iterations. One dataframe for each polaron. + NB: Energies are converted from Ha to eV. + """ + # int nstep2cv_spin(nsppol, nstates) ; + # Number of steps to convergence at each state for each spin + # double scf_hist_spin(nsppol, nstates, nstep, six) ; + # SCF optimization history at each state for each spin + # int cvflag_spin(nsppol, nstates) ; + # 0 --> calculation is not converged + # 1 --> calculation is converged + spin = self.spin + r = self.varpeq.r + nstep2cv = r.read_variable("nstep2cv_spin")[spin] + scf_hist = r.read_variable("scf_hist_spin")[spin] + cvflag = r.read_variable("cvflag_spin")[spin] + + def ufact_k(k): + """Convert energies to eV""" + entry = _ALL_ENTRIES[k] + if entry.utype == "energy": + return abu.Ha_eV + if entry.utype == "gradient": + return 1.0 + raise ValueError(f"Don't know how to convert {entry=}") + + # Build list of dataframe. + df_list = [] + for pstate in range(self.nstates): + n = nstep2cv[pstate] + dct = {k: scf_hist[pstate, :n, i] * ufact_k(k) for i, k in enumerate(_ALL_ENTRIES)} + df = pd.DataFrame(dct) + # Add metadata to the attrs dictionary + df.attrs["converged"] = bool(cvflag[pstate]) + df_list.append(df) + + return df_list + + def get_final_results_df(self, with_params: bool=False) -> pd.DataFrame: + """ + Return daframe with the last iteration for all polaronic states. + NB: Energies are in eV. + """ + row_list = [] + for pstate in range(self.nstates): + df = self.scf_df_state[pstate] + row = {"pstate": pstate, "spin": self.spin} + row.update(df.iloc[-1].to_dict()) + row["converged"] = df.attrs["converged"] + if with_params: + row.update(self.varpeq.params) + row_list.append(row) + + return pd.DataFrame(row_list) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int=0) -> str: + """ + String representation with verbosiy level verbose. + """ + lines = []; app = lines.append + + app(marquee(f"Ank for spin: {self.spin}", mark="=")) + app(f"nstates: {self.nstates}") + app(f"nk: {self.nk}") + app(f"nq: {self.nq}") + app(f"nb: {self.nb}") + app(f"bstart: {self.bstart}, bstop: {self.bstop}") + ksampling = self.ebands.kpoints.ksampling + ngkpt, shifts = ksampling.mpdivs, ksampling.shifts + app(f"ksampling: {str(ksampling)}") + ngqpt = self.varpeq.r.ngqpt + app(f"q-mesh: {ngqpt}") + if verbose: + for pstate in range(self.nstates): + app("For %d: 1/N_k sum_nk |A_nk|^2: %f" % (pstate, np.sum(np.abs(self.a_kn[pstate]) ** 2) / self.nk)) + + return "\n".join(lines) + + @lazy_property + def ngkpt_and_shifts(self) -> tuple: + """ + Return k-mesh divisions and shifts. + """ + ksampling = self.ebands.kpoints.ksampling + ngkpt, shifts = ksampling.mpdivs, ksampling.shifts + + if ngkpt is None: + raise ValueError("Non diagonal k-meshes are not supported!") + if len(shifts) > 1: + raise ValueError("Multiple k-shifts are not supported!") + + return ngkpt, shifts + + def get_title(self, with_gaps: bool=True) -> str: + """ + Return string with title for matplotlib plots. + """ + varpeq = self.varpeq + pre = "" if varpeq.ebands.nsppol == 1 else f"spin={self.spin}" + if not with_gaps: + return f"{pre}{varpeq.r.varpeq_pkind} polaron" + else: + gaps_string = varpeq.ebands.get_gaps_string() + return f"{pre}{varpeq.r.varpeq_pkind} polaron, {gaps_string}" + + def insert_a_inbox(self, fill_value=None) -> tuple: + """ + Return a_data, ngkpt, shifts where a_data is a + (nstates, nb, nkx, nky, nkz)) array with A_{pnk} with p the polaron index. + """ + # Need to know the shape of the k-mesh. + ngkpt, shifts = self.ngkpt_and_shifts + k_indices = kpoints_indices(self.kpoints, ngkpt) + nx, ny, nz = ngkpt + + shape = (self.nstates, self.nb, nx, ny, nz) + a_data = np.empty(shape, dtype=complex) if fill_value is None else np.full(shape, fill_value, dtype=complex) + + for ip in range(self.nstates): + for ib in range(self.nb): + for a_cplx, k_inds in zip(self.a_kn[ip,:,ib], k_indices, strict=True): + ix, iy, iz = k_inds + a_data[ip, ib, ix, iy, iz] = a_cplx + + return a_data, ngkpt, shifts + + def insert_b_inbox(self, fill_value=None) -> tuple: + """ + Return b_data, ngqpt, shifts where b_data is a + (nstates, nb, nqx, nqy, nqz)) array with B_{pqnu} with p the polaron index. + """ + # Need to know the shape of the q-mesh (always Gamma-centered) + ngqpt, shifts = self.varpeq.r.ngqpt, [0, 0, 0] + q_indices = kpoints_indices(self.qpoints, ngqpt) + + natom3 = 3 * len(self.structure) + nx, ny, nz = ngqpt + + shape = (self.nstates, natom3, nx, ny, nz) + b_data = np.empty(shape, dtype=complex) if fill_value is None else np.full(shape, fill_value, dtype=complex) + + for ip in range(self.nstates): + for nu in range(natom3): + for b_cplx, q_inds in zip(self.b_qnu[ip,:,nu], q_indices, strict=True): + ix, iy, iz = q_inds + b_data[ip, nu, ix, iy, iz] = b_cplx + + return b_data, ngqpt, shifts + + def get_a2_interpolator_state(self) -> BzRegularGridInterpolator: + """ + Build and return an interpolator for |A_nk|^2 for each polaronic state. + """ + a_data, ngkpt, shifts = self.insert_a_inbox() + + return [BzRegularGridInterpolator(self.structure, shifts, np.abs(a_data[pstate])**2, method="linear") + for pstate in range(self.nstates)] + + def get_b2_interpolator_state(self) -> BzRegularGridInterpolator: + """ + Build and return an interpolator for |B_qnu|^2 for each polaronic state. + """ + b_data, ngqpt, shifts = self.insert_b_inbox() + + return [BzRegularGridInterpolator(self.structure, shifts, np.abs(b_data[pstate])**2, method="linear") + for pstate in range(self.nstates)] + + def write_a2_bxsf(self, filepath: PathLike, fill_value=0.0) -> None: + r""" + Export \sum_n |A_{pnk}|^2 in BXSF format suitable for visualization with xcrysden (use ``xcrysden --bxsf FILE``). + Requires gamma-centered k-mesh. + + Args: + filepath: BXSF filename. + """ + # NB: the kmesh must be gamma-centered, multiple shifts are not supported. + # Init values with 0. This is relevant only if kfiltering is being used. + a_data, ngkpt, shifts = self.insert_a_inbox(fill_value=fill_value) + + # Compute \sum_n A^2_{pnk}. + a2_data = np.sum(np.abs(a_data)**2, axis=1) + fermie = a2_data.mean() + + bxsf_write(filepath, self.structure, 1, self.nstates, ngkpt, a2_data, fermie, unit="Ha") + + def write_b2_bxsf(self, filepath: PathLike, fill_value=0.0) -> None: + r""" + Export \sum_{\nu} |B_{q\nu}|^2 in BXSF format suitable for visualization with xcrysden (use ``xcrysden --bxsf FILE``). + + Args: + filepath: BXSF filename. + """ + # NB: qmesh must be gamma-centered, multiple shifts are not supported. + # Init values with 0. This is relevant only if kfiltering is being used. + b_data, ngqpt, shifts = self.insert_b_inbox(fill_value=fill_value) + + # Compute \sum_{\nu} B^2_{pq\nu}. + b2_data = np.sum((np.abs(b_data)**2), axis=1) + fermie = b2_data.mean() + + bxsf_write(filepath, self.structure, 1, self.nstates, ngqpt, b2_data, fermie, unit="Ha") + + #@add_fig_kwargs + #def plot_bz_sampling(self, what="kpoints", fold=False, + # ax=None, pmg_path=True, with_labels=True, **kwargs) -> Figure: + # """ + # Plots a 3D representation of the Brillouin zone with the sampling. + + # Args: + # what: "kpoints" or "qpoints" + # fold: whether the points should be folded inside the first Brillouin Zone. + # Defaults to False. + # """ + # bz_points = dict(kpoints=self.kpoints, qpoints=self.qpoints)[what] + # kws = dict(ax=ax, pmg_path=pmg_path, with_labels=with_labels, fold=fold, kpoints=bz_points) + + # return self.structure.plot_bz(show=False, **kws) + + @add_fig_kwargs + def plot_scf_cycle(self, ax_mat=None, fontsize=8, **kwargs) -> Figure: + """ + Plot the SCF cycle. + + Args: + ax_max: |matplotlib-Axes| or None if a new figure should be created. + fontsize: fontsize for legends and titles + """ + # Build grid of plots. + nrows, ncols = self.nstates, 2 + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False) + + for pstate in range(self.nstates): + df = self.scf_df_state[pstate] + niter = len(df) + xs = np.arange(1, niter + 1) + + for iax, ax in enumerate(ax_mat[pstate]): + # Create a twin Axes sharing the x-axis + #grad_ax = ax + grad_ax = ax.twinx() + + for ilab, (name, entry) in enumerate(_ALL_ENTRIES.items()): + # Convert energies to Hartree. Keep gradient as it is. + ys = df[name].to_numpy() + + _ax, energy_like = ax, True + if entry.utype == "gradient": + _ax, energy_like = grad_ax, False + + if iax == 0: + # Plot values linear scale. + _ax.plot(xs, ys, label=entry.latex) + else: + # Plot deltas in logscale. + _ax.plot(xs, np.abs(ys - ys[-1]), label=entry.latex) + _ax.set_yscale("log") + + _ax.set_xlim(1, niter) + + if energy_like: + ylabel = "Energy (eV)" if iax == 0 else r"$|\Delta E|$ (eV)" + else: + ylabel = r"$|\nabla|$" if iax == 0 else r"$|\Delta |\nabla|$" + + set_grid_legend(_ax, fontsize, xlabel="Iteration") #, ylabel=ylabel) + _ax.set_ylabel(ylabel) + + fig.suptitle(self.get_title(with_gaps=True)) + fig.tight_layout() + + return fig + + @add_fig_kwargs + def plot_ank_with_ebands(self, ebands_kpath, + ebands_kmesh=None, lpratio: int=5, method="gaussian", step: float=0.05, width: float=0.1, + nksmall: int=20, normalize: bool=False, with_title=True, + ax_mat=None, ylims=None, scale=10, marker_color="gold", fontsize=12, **kwargs) -> Figure: + """ + Plot electron bands with markers with size proportional to |A_nk|^2. + + Args: + ebands_kpath: ElectronBands or Abipy file providing an electronic band structure along a k-path. + ebands_kmesh: ElectronBands or Abipy file providing an electronic band structure with k in the IBZ. + nksmall: + normalize: Rescale the two DOS to plot them on the same scale. + lpratio: Ratio between the number of star functions and the number of ab-initio k-points. + The default should be OK in many systems, larger values may be required for accurate derivatives. + method: Integration scheme for DOS + step: Energy step (eV) of the linear mesh for DOS computation. + width: Standard deviation (eV) of the gaussian for DOS computation. + with_title: True to add title with chemical formula and gaps. + ax_mat: List of |matplotlib-Axes| or None if a new figure should be created. + ylims: Set the data limits for the y-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + scale: Scaling factor for |A_nk|^2. + marker_color: Color for markers. + fontsize: fontsize for legends and titles + """ + nrows, ncols = self.nstates, 2 + gridspec_kw = {'width_ratios': [2, 1]} + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=False, sharey=True, squeeze=False, gridspec_kw=gridspec_kw) + # Get interpolators for A_nk + a2_interp_state = self.get_a2_interpolator_state() + + # DEBUG SECTION + #ref_kn = np.abs(self.a_kn) ** 2 + #for ik, kpoint in enumerate(self.kpoints): + # interp = a2_interp_state[0].eval_kpoint(kpoint) + # print("MAX (A2 ref - A2 interp) at qpoint", kpoint) + # print((np.abs(ref_kn[ik] - interp)).max()) + + df = self.get_final_results_df() + + ebands_kpath = ElectronBands.as_ebands(ebands_kpath) + ymin, ymax = +np.inf, -np.inf + for pstate in range(self.nstates): + x, y, s = [], [], [] + for ik, kpoint in enumerate(ebands_kpath.kpoints): + enes_n = ebands_kpath.eigens[self.spin, ik, self.bstart:self.bstop] + for e, a2 in zip(enes_n, a2_interp_state[pstate].eval_kpoint(kpoint), strict=True): + x.append(ik); y.append(e); s.append(scale * a2) + ymin, ymax = min(ymin, e), max(ymax, e) + + points = Marker(x, y, s, color=marker_color, edgecolors='gray', alpha=0.8, label=r'$|A_{n\mathbf{k}}|^2$') + ax = ax_mat[pstate, 0] + ebands_kpath.plot(ax=ax, points=points, show=False) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + # Add energy and convergence status + with_info = True + if with_info: + data = (df[df["pstate"] == pstate]).to_dict(orient="list") + e_pol_ev, converged = float(data["E_pol"][0]), bool(data["converged"][0]) + title = f"Formation energy: {e_pol_ev:.3f} eV, {converged=}" + ax.set_title(title, fontsize=8) + + if pstate != self.nstates - 1: + set_visible(ax, False, *["legend", "xlabel"]) + + vertices_names = [(k.frac_coords, k.name) for k in ebands_kpath.kpoints] + + if ebands_kmesh is None: + print(f"Computing ebands_kmesh with star-function interpolation and {nksmall=} ...") + edos_ngkpt = self.structure.calc_ngkpt(nksmall) + r = self.ebands.interpolate(lpratio=lpratio, vertices_names=vertices_names, kmesh=edos_ngkpt) + ebands_kmesh = r.ebands_kmesh + + # Get electronic DOS from ebands_kmesh. + edos_kws = dict(method=method, step=step, width=width) + edos = ebands_kmesh.get_edos(**edos_kws) + edos_mesh = edos.spin_dos[self.spin].mesh + e0 = self.ebands.fermie + + ################## + # Compute A_nk DOS + ################## + # NB: A_nk does not necessarily have the symmetry of the lattice so we have to loop over the full BZ. + # Here we get the mapping BZ --> IBZ needed to obtain the KS eigenvalues e_nk from the IBZ for the DOS. + kmesh = ebands_kmesh.get_bz2ibz_bz_points() + + for pstate in range(self.nstates): + # Compute A^2(E) DOS with A_nk in the full BZ + ank_dos = np.zeros(len(edos_mesh)) + for ik_ibz, kpoint in zip(kmesh.bz2ibz, kmesh.bz_kpoints): + enes_n = ebands_kmesh.eigens[self.spin, ik_ibz, self.bstart:self.bstop] + a2_n = a2_interp_state[pstate].eval_kpoint(kpoint) + for e, a2 in zip(enes_n, a2_n): + ank_dos += a2 * gaussian(edos_mesh, width, center=e-e0) + ank_dos /= np.product(kmesh.ngkpt) + ank_dos = Function1D(edos_mesh, ank_dos) + print(f"For {pstate=}, A^2(E) integrates to:", ank_dos.integral_value, " Ideally, it should be 1.") + + ax = ax_mat[pstate, 1] + edos_opts = {"color": "black",} if self.spin == 0 else {"color": "red"} + edos.plot_ax(ax, e0, spin=self.spin, normalize=normalize, exchange_xy=True, label="eDOS(E)", **edos_opts) + ank_dos.plot_ax(ax, exchange_xy=True, normalize=normalize, label=r"$A^2$(E)", color=marker_color) + + # Computes A2(E) using only k-points in the IBZ. This is just for testing. + # A2_IBZ(E) should be equal to A2(E) only if A_nk fullfills the lattice symmetries. See notes above. + with_ibz_a2dos = True + if with_ibz_a2dos: + ank_dos = np.zeros(len(edos_mesh)) + for ik_ibz, kpoint in enumerate(ebands_kmesh.kpoints): + weight = kpoint.weight + enes_n = ebands_kmesh.eigens[self.spin, ik_ibz, self.bstart:self.bstop] + for e, a2 in zip(enes_n, a2_interp_state[pstate].eval_kpoint(kpoint), strict=True): + ank_dos += weight * a2 * gaussian(edos_mesh, width, center=e-e0) + ank_dos = Function1D(edos_mesh, ank_dos) + print(f"For {pstate=}, A2_IBZ(E) integrates to:", ank_dos.integral_value, " Ideally, it should be 1.") + ank_dos.plot_ax(ax, exchange_xy=True, normalize=normalize, label=r"$A^2_{IBZ}$(E)", color=marker_color, ls="--") + + set_grid_legend(ax, fontsize, xlabel="Arb. unit") + + if pstate != self.nstates - 1: + set_visible(ax, False, *["legend", "xlabel"]) + + if ylims is None: + # Automatic ylims. + ymin -= 0.1 * abs(ymin) + ymax += 0.1 * abs(ymax) + ylims = [ymin - e0, ymax - e0] + + for ax in ax_mat.ravel(): + set_axlims(ax, ylims, "y") + + if with_title: + fig.suptitle(self.get_title(with_gaps=True)) + + return fig + + @add_fig_kwargs + def plot_bqnu_with_ddb(self, ddb, with_phdos=True, anaddb_kwargs=None, **kwargs) -> Figure: + """ + High-level interface to plot phonon energies with markers with size proportional to |B_qnu|^2. + Similar to plot_bqnu_with_phbands but this function receives in input a DdbFile or a + path to a ddb file and automates the computation of the phonon bands by invoking anaddb. + + Args: + ddb: DdbFile or path to file. + with_phdos: True if phonon DOS should be computed and plotter. + anaddb_kwargs: Optional arguments passed to anaddb. + kwargs: Optional arguments passed to plot_bqnu_with_phbands. + """ + ddb = DdbFile.as_ddb(ddb) + anaddb_kwargs = {} if anaddb_kwargs is None else anaddb_kwargs + + with ddb.anaget_phbst_and_phdos_files(**anaddb_kwargs) as g: + phbst_file, phdos_file = g[0], g[1] + phbands_qpath = phbst_file.phbands + return self.plot_bqnu_with_phbands(phbands_qpath, + phdos_file=phdos_file if with_phdos else None, + ddb=ddb, **kwargs) + + @add_fig_kwargs + def plot_bqnu_with_phbands(self, phbands_qpath, + phdos_file=None, ddb=None, width=0.001, normalize: bool=True, + verbose=0, anaddb_kwargs=None, with_title=True, + ax_mat=None, scale=10, marker_color="gold", fontsize=12, **kwargs) -> Figure: + """ + Plot phonon energies with markers with size proportional to |B_qnu|^2. + + Args: + phbands_qpath: PhononBands or Abipy file providing a phonon band structure. + phdos_file: + ddb: DdbFile or path to file. + width: Standard deviation (eV) of the gaussian. + normalize: Rescale the two DOS to plot them on the same scale. + verbose: + anaddb_kwargs: Optional arguments passed to anaddb. + with_title: True to add title with chemical formula and gaps. + ax_mat: List of |matplotlib-Axes| or None if a new figure should be created. + scale: Scaling factor for |B_qnu|^2. + marker_color: Color for markers. + fontsize: fontsize for legends and titles. + """ + with_phdos = phdos_file is not None and ddb is not None + nrows, ncols, gridspec_kw = self.nstates, 1, None + if with_phdos: + ncols, gridspec_kw = 2, {'width_ratios': [2, 1]} + + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=False, sharey=True, squeeze=False, gridspec_kw=gridspec_kw) + + phbands_qpath = PhononBands.as_phbands(phbands_qpath) + + # Get interpolators for B_qnu + b2_interp_state = self.get_b2_interpolator_state() + + for pstate in range(self.nstates): + x, y, s = [], [], [] + for iq, qpoint in enumerate(phbands_qpath.qpoints): + omegas_nu = phbands_qpath.phfreqs[iq,:] + for w, b2 in zip(omegas_nu, b2_interp_state[pstate].eval_kpoint(qpoint), strict=True): + x.append(iq); y.append(w); s.append(scale * b2) + + ax = ax_mat[pstate, 0] + points = Marker(x, y, s, color=marker_color, edgecolors='gray', alpha=0.8, label=r'$|B_{\nu\mathbf{q}}|^2$') + phbands_qpath.plot(ax=ax, points=points, show=False) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + if pstate != self.nstates - 1: + set_visible(ax, False, *["legend", "xlabel"]) + + if not with_phdos: + if with_title: fig.suptitle(self.get_title(with_gaps=True)) + return fig + + #################### + # Compute B_qnu DOS + #################### + # NB: The B_qnu do not necessarily have the symmetry of the lattice so we have to loop over the full BZ. + # Add phdos and |B_qn| dos. Mesh is given in eV, values are in states/eV. + phdos = phdos_file.phdos + phdos_ngqpt = np.diagonal(phdos_file.qptrlatt) # Use same q-mesh as phdos + phdos_shifts = [0.0, 0.0, 0.0] + phdos_nqbz = np.product(phdos_ngqpt) + wmesh = phdos.mesh + + # Here we get the mapping BZ --> IBZ needed to obtain the ph frequencies omega_qnu from the IBZ for the DOS. + bz_qpoints = kmesh_from_mpdivs(phdos_ngqpt, phdos_shifts) + #bz2ibz = map_grid2ibz(self.structure, ibz_qpoints, phdos_ngqpt, has_timrev=True) + + #ibz = IrredZone.from_ngkpt(self.structure, phdos_ngqpt, phdos_shifts, kptopt=1) + + # Call anaddb (again) to get phonons on the nqpt mesh. + anaddb_kwargs = {} if anaddb_kwargs is None else anaddb_kwargs + phbands_qmesh = ddb.anaget_phmodes_at_qpoints(qpoints=bz_qpoints, ifcflag=1, verbose=verbose, **anaddb_kwargs) + if len(phbands_qmesh.qpoints) != np.product(phdos_ngqpt): + raise RuntimeError(f"{len(phbands_qmesh.qpoints)=} != {np.product(phdos_ngqpt)=}") + #print(phbands_qmesh.qpoints) + + for pstate in range(self.nstates): + # TODO New version using the BZ. Requires new VARPEQ.nc file with all symmetries + # The B_qnu do not necessarily have the symmetry of the lattice so we have to loop over the full BZ. + # Get mapping BZ --> IBZ needed to obtain the KS eigenvalues e_nk from the IBZ for the DOS + """ + bqnu_dos = np.zeros(len(wmesh)) + for iq_ibz, qpoint in zip(bz2ibz, bz_qpoints): + freqs_nu = phbands_qmesh.phfreqs[iq_ibz] + for w, b2 in zip(freqs_nu, b2_interp_state[pstate].eval_kpoint(qpoint), strict=True) + bqnu_dos += b2 gaussian(wmesh, width, center=w) + bqnu_dos /= np.product(phdos_ngqpt) + """ + + # Compute B2(E) using only q-points in the IBZ. This is just for testing. + # B2_IBZ(E) should be equal to B2(E) only if B_qnu fullfill the lattice symmetries. See notes above. + #with_ibz_b2dos = True + #if with_ibz_b2dos: + bqnu_dos = np.zeros(len(wmesh)) + for iq, qpoint in enumerate(phbands_qmesh.qpoints): + weight = qpoint.weight + #print(weight, 1.0/phdos_nqbz) + freqs_nu = phbands_qmesh.phfreqs[iq] + for w, b2 in zip(freqs_nu, b2_interp_state[pstate].eval_kpoint(qpoint), strict=True): + bqnu_dos += weight * b2 * gaussian(wmesh, width, center=w) + + bqnu_dos = Function1D(wmesh, bqnu_dos) + + ax = ax_mat[pstate, 1] + phdos.plot_ax(ax, exchange_xy=True, normalize=normalize, label="phDOS(E)", color="black") + bqnu_dos.plot_ax(ax, exchange_xy=True, normalize=normalize, label=r"$B^2$(E)", color=marker_color) + set_grid_legend(ax, fontsize, xlabel="Arb. unit") + + if pstate != self.nstates - 1: + set_visible(ax, False, *["legend", "xlabel"]) + + if with_title: + fig.suptitle(self.get_title(with_gaps=True)) + + return fig + + +class VarpeqReader(BaseEphReader): + """ + Reads data from file and constructs objects. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: VarpeqReader + """ + + def __init__(self, filepath: PathLike): + super().__init__(filepath) + + # Netcdf Variables + + # int eph_task ; + # int nkbz ; + # int nqbz ; + # int frohl_ntheta ; + # double varpeq_tolgrs ; + # double e_frohl ; + # char varpeq_pkind(fnlen) ; + # char varpeq_aseed(fnlen) ; + # int ngkpt(three) ; + # int gstore_ngqpt(three) ; + # int nk_spin(nsppol) ; + # int nq_spin(nsppol) ; + # int nb_spin(nsppol) ; + # int brange_spin(nsppol, two) ; + # int cvflag_spin(nsppol, nstates) ; + # int nstep2cv_spin(nsppol, nstates) ; + # double scf_hist_spin(nsppol, nstates, nstep, six) ; + # double kpts_spin(nsppol, max_nk, three) ; + # double qpts_spin(nsppol, max_nq, three) ; + # double cb_min_spin(nsppol) ; + # double vb_max_spin(nsppol) ; + # double a_spin(nsppol, nstates, max_nk, max_nb, two) ; + # double b_spin(nsppol, nstates, max_nq, natom3, two) ; + + # Read important dimensions. + self.nsppol = self.read_dimvalue("nsppol") + self.nstates = self.read_dimvalue("nstates") + self.nk_spin = self.read_value("nk_spin") + self.nq_spin = self.read_value("nq_spin") + #self.nkbz = self.read_dimvalue("nkbz") + #self.nqbz = self.read_dimvalue("nqbz") + self.varpeq_pkind = self.read_string("varpeq_pkind") + #self.varpeq_aseed = self.read_string("varpeq_aseed") + self.ngqpt = self.read_value("gstore_ngqpt") + self.frohl_ntheta = self.read_value("frohl_ntheta") + + # Read important variables. + #self.completed = self.read_value("gstore_completed") + #self.done_spin_qbz = self.read_value("gstore_done_qbz_spin") + #self.qptopt = self.read_value("gstore_qptopt") + #self.kptopt = self.read_value("kptopt") + #self.kzone = self.read_string("gstore_kzone") + #self.qzone = self.read_string("gstore_qzone") + #self.kfilter = self.read_string("gstore_kfilter") + #self.gmode = self.read_string("gstore_gmode") + + # Note conversion Fortran --> C for the isym index. + self.brange_spin = self.read_value("brange_spin") + self.brange_spin[:,0] -= 1 + self.nb_spin = self.brange_spin[:,1] - self.brange_spin[:,0] + + #self.erange_spin = self.read_value("gstore_erange_spin") + # Total number of k/q points for each spin after filtering (if any) + #self.glob_spin_nq = self.read_value("gstore_glob_nq_spin") + #self.glob_nk_spin = self.read_value("gstore_glob_nk_spin") + + +class VarpeqRobot(Robot, RobotWithEbands): + """ + This robot analyzes the results contained in multiple VARPEQ.nc files. + + Usage example: + + .. code-block:: python + + robot = VarpeqRobot.from_files([ + "out1_VARPEQ.nc", + "out2_VARPEQ.nc", + ]) + + print(robot) + df = robot.get_final_results_df() + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: VarpeqRobot + """ + + EXT = "VARPEQ" + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = []; app = lines.append + df = self.get_final_results_df() + lines.append(str(df)) + + return "\n".join(lines) + + def get_final_results_df(self, spin=None, sortby=None, with_params: bool=True) -> pd.DataFrame: + """ + Return dataframe with the last iteration for all polaronic states. + NB: Energies are in eV. + + Args: + spin: + sortby: Name to sort by. + with_params: + """ + df_list = [] + for abifile in self.abifiles: + if spin is None: + for polaron in abifile.polaron_spin: + df_list.append(polaron.get_final_results_df(with_params=with_params)) + else: + polaron = abifile.polaron_spin[spin] + df_list.append(polaron.get_final_results_df(with_params=with_params)) + + df = pd.concat(df_list) + if sortby and sortby in df: df = df.sort_values(sortby) + return df + + @add_fig_kwargs + def plot_kconv(self, colormap="jet", fontsize=12, **kwargs) -> Figure: + """ + Plot the convergence of the results wrt to the k-point sampling. + + Args: + colormap: Color map. Have a look at the colormaps here and decide which one you like: + fontsize: fontsize for legends and titles + """ + nsppol = self.getattr_alleq("nsppol") + + # Build grid of plots. + nrows, ncols = len(_ALL_ENTRIES), nsppol + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + cmap = plt.get_cmap(colormap) + for spin in range(nsppol): + df = self.get_final_results_df(spin=spin, sortby=None) + xs = df["invsc_size"] + xvals = np.linspace(0.0, 1.1 * xs.max(), 100) + + for ix, ylabel in enumerate(_ALL_ENTRIES): + ax = ax_mat[ix, spin] + ys = df[ylabel] + + # Plot ab-initio points. + ax.scatter(xs, ys, color="red", marker="o") + + # Plot fit using the first nn points. + for nn in range(1, len(xs)): + color = cmap((nn - 1) / len(xs)) + p = np.poly1d(np.polyfit(xs[:nn+1], ys[:nn+1], deg=1)) + ax.plot(xvals, p(xvals), color=color, ls="--") + + xlabel = "Inverse supercell size (Bohr$^-1$)" if ix == len(_ALL_ENTRIES) - 1 else None + set_grid_legend(ax, fontsize, xlabel=xlabel, ylabel=f"{ylabel} (eV)", legend=False) + ax.tick_params(axis='x', color='black', labelsize='20', pad=5, length=5, width=2) + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + Used in abiview.py to get a quick look at the results. + """ + #yield self.plot_scf_cycle(show=False) + yield self.plot_kconv() + + def write_notebook(self, nbpath=None) -> str: + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporary file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + args = [(l, f.filepath) for l, f in self.items()] + nb.cells.extend([ + nbv.new_code_cell("robot = abilab.VarpeqRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), + #nbv.new_code_cell("ebands_plotter = robot.get_ebands_plotter()"), + ]) + + return self._write_nb_nbpath(nb, nbpath) diff --git a/abipy/eph/wr.py b/abipy/eph/wr.py new file mode 100644 index 000000000..f6935fd3c --- /dev/null +++ b/abipy/eph/wr.py @@ -0,0 +1,265 @@ +# coding: utf-8 +""" +Object to analyze the results stored in the WR.nc file +""" +import numpy as np + +from monty.string import marquee +from monty.functools import lazy_property +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt #, get_axarray_fig_plt +from abipy.core.mixins import AbinitNcFile, Has_Structure, NotebookWriter +from abipy.iotools import ETSF_Reader + + +class WrNcFile(AbinitNcFile, Has_Structure, NotebookWriter): + + def __init__(self, filepath): + super().__init__(filepath) + self.reader = r = ETSF_Reader(filepath) + + # Read dimensions. + self.nfft = r.read_dimvalue("nfft") + self.nspden = r.read_dimvalue("nspden") + self.natom3 = len(self.structure) * 3 + self.method = r.read_value("method") + assert self.method == 0 + self.ngqpt = r.read_value("ngqpt") + self.rpt = r.read_value("rpt") + self.nrpt = len(self.rpt) + # FFT mesh. + self.ngfft = r.read_value("ngfft") + + def create_xsf(self, iatom=0, red_dir=(1, 0, 0), u=1.0, ispden=0): + + nfft, nrpt = self.nfft, self.nrpt + + nx, ny, nz = self.ngfft + nqx, nqy, nqz = self.ngqpt + box_shape = self.ngqpt * self.ngfft + box_size = np.product(box_shape) + print("ngqpt:", self.ngqpt) + print("nrpt:", self.nrpt) + print("Unit cell FFT shape:", self.ngfft) + print("Big box shape:", box_shape) + print("rpt:\n", self.rpt) + + # Get FFT points in reduced coordinates of the microcell. + # ix is the fastest index here because we are gonna access + # FFT values produced by Fortran via ifft + fft_inds = np.empty((nfft, 3), dtype=np.int64) + ifft = -1 + for iz in range(nz): + for iy in range(ny): + for ix in range(nx): + ifft += 1 + fft_inds[ifft, :] = [ix, iy, iz] + + def ig2gfft(ig, ng): + # Use the following indexing (N means ngfft of the adequate direction) + # 0 1 2 3 ... N/2 -(N-1)/2 ... -1 <= gc + # 1 2 3 4 ....N/2+1 N/2+2 ... N <= index ig + + #if ( ig <= 0 or ig > ng): + # # Wrong ig, returns huge. Parent code will likely crash with SIGSEV. + # gc = huge(1) + # return + + #if (ig > ng/2 + 1): + # gc = ig - ng -1 + #else + # gc = ig -1 + #return gc + raise NotImplementedError("Foo") + + # Find index of (r, R) in the bigbox + # Use C notation (z runs faster) + #box2fr = np.full((box_size, 2), np.inf, dtype=np.int64) + + #iffr2box = np.empty((nfft, nrpt), dtype=np.int64) + print("Building r-R dictionary") + d = {} + for ir, rpt in enumerate(self.rpt): + for ifft, fft_ijk in enumerate(fft_inds): + ijk = (fft_ijk - rpt * self.ngfft) % box_shape + key = tuple(map(int, ijk)) + d[key] = (ifft, ir) + #i, j, k = ijk + #box_iloc = k + j * box_shape[2] + i * (box_shape[2] * box_shape[1]) + #print(box_iloc, "(i, j, k): ", fft_ijk, "rpt:", rpt) + #box2fr[int(box_iloc)] = [ifft, ir] + #iffr2box[ifft, ir] = box_iloc + print("Done") + + #ip = 0 + #idir = ip % 3 + #iatom = (ip - idir) // 3 # + 1 + + # nctkarr_t("v1scf_rpt_sr", "dp", "two, nrpt, nfft, nspden, natom3") + # use iorder = "f" to transpose the last 3 dimensions since ETSF + # stores data in Fortran order while AbiPy uses C-ordering. + # (z,y,x) --> (x,y,z) + # datar = transpose_last3dims(datar) + wsr_var = self.reader.read_variable("v1scf_rpt_sr") + wlr_var = self.reader.read_variable("v1scf_rpt_lr") + + wsr = np.zeros(nfft, nrpt) + wlr = np.zeros(nfft, nrpt) + for idir, red_comp in enumerate(red_dir): + ip = idir + 3 * iatom + wsr += u * red_comp * wsr_var[ip, ispden, :, :, 0] + wlr += u * red_comp * wlr_var[ip, ispden, :, :, 0] + + print("wsr.shape:", wsr.shape) + print("Max |Re Wsr|:", np.max(np.abs(wsr.real)), "Max |Im Wsr|:", np.max(np.abs(wsr.imag))) + #print("Max |Re Wlr|:", np.max(np.abs(wlr.real)), "Max |Im Wlr|:", np.max(np.abs(wlr.imag))) + + r0 = np.array([0, 0, 0], dtype=np.int) + qgrid = np.where(self.ngqpt > 2, self.ngqpt, 0) + r0 = - (self.ngqpt - 1) // 2 + print("Origin of datagrid set at R0:", r0) + + # Build datagrid in the supercell using C indexing + # This is what xsf_write_data expects. + miss = [] + data_lr = np.empty(box_shape) + data_sr = np.empty(box_shape) + + print("Filling data array") + for ix in range(box_shape[0]): + for iy in range(box_shape[1]): + for iz in range(box_shape[2]): + y = np.array((ix, iy, iz), dtype=np.int) + x = (y + r0) % box_shape + key = tuple(map(int, x)) + try: + ifft, ir = d[key] + except KeyError: + #print("Cannot find r - R with key:", key) + miss.append(key) + continue + + data_lr[ix, iy, iz] = wlr[ifft, ir] + #data_sr[ix, iy, iz] = wsr[ifft, ir] + + if miss: + #print(d.keys()) + raise RuntimeError("Cannot find r-R points! nmiss:", len(miss)) + + super_structure = self.structure * self.ngqpt + + def dump_xsf(filename, data): + from abipy.iotools import xsf + xsf.xsf_write_structure_and_data_to_path(filename, super_structure, data, cplx_mode="abs") + + dump_xsf("foo_lr.xsf", data_lr) + dump_xsf("foo_sr.xsf", data_sr) + + @lazy_property + def structure(self): + """|Structure| object.""" + return self.reader.read_structure() + + def close(self): + self.reader.close() + + @lazy_property + def params(self): + """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + return {} + + def __str__(self): + return self.to_string() + + def to_string(self, verbose=0): + """String representation.""" + lines = []; app = lines.append + app(marquee("File Info", mark="=")) + app(self.filestat(as_string=True)) + app("") + app(self.structure.to_string(verbose=verbose, title="Structure")) + app("") + + return "\n".join(lines) + + @add_fig_kwargs + def plot_maxw(self, scale="semilogy", ax=None, fontsize=8, **kwargs): + """ + Plot the decay of max_{r,idir,ipert} `|W(R,r,idir,ipert)|` + for the long-range and the short-range part. + + Args: + scale: "semilogy", "loglog" or "plot". + ax: |matplotlib-Axes| or None if a new figure should be created. + fontsize: fontsize for legends and titles + + Return: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax=ax) + f = {"plot": ax.plot, "semilogy": ax.semilogy, "loglog": ax.loglog}[scale] + + rmod = self.reader.read_value("rmod") + + # Plot short-range part. + # normalize wrt the R=0 value + # Fortran array: nctkarr_t("maxw_sr", "dp", "nrpt, natom3") + maxw_sr = self.reader.read_value("maxw_sr") + data = np.max(maxw_sr, axis=0) + #data = data / data[0] + f(rmod, data, marker="o", ls=":", lw=0, label="SR", **kwargs) + + # Plot long-range part. + maxw_lr = self.reader.read_value("maxw_lr") + data = np.max(maxw_lr, axis=0) + #data = data / data[0] + f(rmod, data, marker="x", ls="-", lw=0, label="LR", **kwargs) + + # Plot the ratio + data = np.max(maxw_lr, axis=0) / np.max(maxw_sr, axis=0) + #f(rmod, data, marker="x", ls="-", lw=0, label="LR/SR", **kwargs) + + #rmod = self.reader.read_value("rmod_lrmodel") + #maxw = self.reader.read_value("maxw_lrmodel") + #data = np.max(maxw, axis=0) + #data = data / data[0] + #f(rmod, data, marker="x", ls="-", lw=0, label="W_LR_only", **kwargs) + + ax.grid(True) + ax.set_ylabel(r"$Max_{({\bf{r}}, idir, ipert)} \| W({\bf{r}}, {\bf{R}}, idir, ipert) \|$") + ax.set_xlabel(r"$\|{\bf{R}}\|$ (Bohr)") + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + #if kwargs.pop("with_title", True): + # ax.set_title("dvdb_add_lr %d, qdamp: %s, symv1scf: %d" % (self.dvdb_add_lr, self.qdamp, self.symv1scf), + # fontsize=fontsize) + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + This function *generates* a predefined list of matplotlib figures with minimal input from the user. + """ + yield self.plot_maxw(scale="semilogy") + + def write_notebook(self, nbpath=None): + """ + Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current + working directory is created. Return path to the notebook. + """ + nbformat, nbv, nb = self.get_nbformat_nbv_nb(title=None) + + nb.cells.extend([ + nbv.new_code_cell("ncfile = abilab.abiopen('%s')" % self.filepath), + nbv.new_code_cell("print(ncfile)"), + ]) + + #nb.cells.append(nbv.new_code_cell("ncfile.plot_diff_at_qpoint(qpoint=%d);" % iq)) + + return self._write_nb_nbpath(nb, nbpath) + + +if __name__ == "__main__": + import sys + ncfile = WrNcFile.from_file(sys.argv[1]) + + #print(ncfile) + ncfile.plot_maxw(scale="semilogy", ax=None, fontsize=8) + #ncfile.create_xsf(iatom=0, red_dict=(-1, +1, +1), u=0.1) diff --git a/abipy/examples/_runflows.py b/abipy/examples/_runflows.py index a7863348f..b56827701 100755 --- a/abipy/examples/_runflows.py +++ b/abipy/examples/_runflows.py @@ -2,22 +2,26 @@ """ This script runs all the python scripts located in this directory """ +from __future__ import annotations + import sys import os import argparse import shutil import tempfile +import abipy.tools.cli_parsers as cli from subprocess import call from abipy import __version__ from abipy import flowtk + def main(): def str_examples(): examples = """ Usage example:\n\n - runall.py => Run all scripts. + _runflows.py => Run all scripts. """ return examples @@ -35,27 +39,14 @@ def show_examples_and_exit(err_msg=None, error_code=1): help="set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") parser.add_argument('-m', '--mode', type=str, default="sequential", help="execution mode. Default is sequential.") - parser.add_argument('-e', '--exclude', type=str, default="", help="Exclude scripts. Comma-separated names") - parser.add_argument('-x', '--execute', default=False, action="store_true", help="Execute flows.") - - parser.add_argument('--keep-dirs', action="store_true", default=False, - help="Do not remove flowdirectories.") - + parser.add_argument('--keep-dirs', action="store_true", default=False, help="Do not remove flow directories.") parser.add_argument('-b', '--bail-on-failure', default=False, help="Exit at the first error.") - #parser.add_argument("scripts", nargs="+",help="List of scripts to be executed") - options = parser.parse_args() - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) + cli.set_loglevel(options.loglevel) # Find scripts. if options.exclude: @@ -70,6 +61,8 @@ def show_examples_and_exit(err_msg=None, error_code=1): path = os.path.join(root, fname) if path != __file__: scripts.append(path) + print("Executing: %d scripts with mode: `%s` and execute: `%s`" % ( + len(scripts), options.mode, options.execute)) # Run scripts according to mode. dirpaths, errors, retcode, cnt = [], [], 0, 0 @@ -81,7 +74,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): retcode += ret if ret != 0: - e = "python %s returned retcode !=0" % script + e = "python %s returned retcode != 0" % script print(e) errors.append(e) if options.bail_on_failure: diff --git a/abipy/examples/_runplots.py b/abipy/examples/_runplots.py index 9ae84c332..bb28a716c 100755 --- a/abipy/examples/_runplots.py +++ b/abipy/examples/_runplots.py @@ -6,6 +6,8 @@ Usage: _runplots.py [backend] """ +from __future__ import annotations + import sys import os import time @@ -36,37 +38,53 @@ def main(): parser.add_argument('-b', '--backend', type=str, default="Agg", help="matplotlib backend e.g. Agg for non-graphical display.") - parser.add_argument('-m', '--mode', type=str, default="automatic", help="execution mode. Either s (sequential) or a (automatic)") - parser.add_argument('-t', '--time', type=float, default=8, help="wait time seconds before running next demo.") + #parser.add_argument('-p', '--ply-show', type=bool, default=False, + # help="Show plotly figures in browser.") options = parser.parse_args() import matplotlib if options.backend: - print("Using ", options.backend, "matplotlib backend") + print("Using matplotlib backend: ", options.backend) matplotlib.use(options.backend) #change_matplotlib_backend(new_backend=options.backend) + #from abipy.tools.plotting import set_plotly_default_show + #print("Setting plotly_default_show to: ", options.ply_show) + #set_plotly_default_show(options.ply_show) + # Find scripts. root = os.path.join(os.path.dirname(__file__), "plot") scripts = [] for fname in os.listdir(root): - if fname.endswith(".py") and fname.startswith("plot_"): + if fname.endswith(".py") and fname.startswith("plot"): scripts.append(os.path.join(root, fname)) + #env = { + # "MPLBACKEND": options.backend, + #} + env = None + print(f"{env=}") + # Run scripts according to mode. if options.mode in ["s", "sequential"]: for script in scripts: - retcode = call(["python", script]) - if retcode != 0: break + print("About to execute", script) + args = ["python", script] + retcode = call(args, shell=False, env=env) + if retcode != 0: + print("Failure") + break elif options.mode in ["a", "automatic"]: for script in scripts: - p = Popen(["python", script]) + print("About to execute", script) + args = ["python", script] + p = Popen(args, shell=False, env=env) time.sleep(options.time) p.kill() retcode = 0 @@ -74,7 +92,8 @@ def main(): elif options.mode == "screenshot": processes = [] for script in scripts: - p = Popen(["python", script]) + args = ["python", script] + p = Popen(args, shell=False, env=env) processes.append(p) time.sleep(options.time) @@ -85,6 +104,8 @@ def main(): else: show_examples_and_exit(err_msg="Wrong value for mode: %s" % options.mode) + print("Final return code:", retcode) + return retcode diff --git a/abipy/examples/flows/README.txt b/abipy/examples/flows/README.txt index 15f171463..87eaf3d3c 100644 --- a/abipy/examples/flows/README.txt +++ b/abipy/examples/flows/README.txt @@ -9,7 +9,7 @@ Run the scripts to generate the directory with the flow, then use the :ref:`abir Alternatively, one can use the ``-s`` option to generate the flow and run it immediately with the scheduler. Use ``--help`` for further information on the available options. -Note that the figures can only show the initial configuration of the Flow. +Note that the figures can only show the **initial configuration of the Flow**. Additional Works generated at runtime won't be displayed. To visualize the entire Flow, you need to run the script and then use:: @@ -21,5 +21,5 @@ where `FLOWDIR` is the directory of the Flow. The following examples show how to use python and the AbiPy API to generate and run Abinit calculations in a semi-automatic way. - These examples are not supposed to produce physically meaningful results + These examples **are not supposed to produce physically meaningful results** as input parameters are usually underconverged. diff --git a/abipy/examples/flows/_under_develop/p.py b/abipy/examples/flows/_under_develop/p.py new file mode 100755 index 000000000..492b13c6d --- /dev/null +++ b/abipy/examples/flows/_under_develop/p.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python + +from abipy.electrons.effmass_analyzer import EffMassAnalyzer +import sys + +from monty.json import json, MontyEncoder +import numpy as np + +#carr = np.array([1j, 2j]) +#print(json.dumps(carr, cls=MontyEncoder)) + +emana = EffMassAnalyzer.from_file(sys.argv[1]) +print(emana) +#print(emana.kpoints) + +#emana.select_kpoint_band((0, 0, 0), band=7, etol_ev=0.1) +#emana.set_kpoint_band((0, 0, 0), band=3) +#emana.select_band_edges() +#emana.select_cbm() +emana.select_vbm(etol_ev=1e-1) + +emana.summarize() +emana.plot_all_segments() +emana.plot_emass(acc=4) + +#for segment in emana.segments: +# segment.get_effmass_line(acc=2) + +segment = emana.segments[0] +segment.plot_emass() +print(segment.get_dataframe_with_accuracies()) diff --git a/abipy/examples/flows/_under_develop/run_ebands_with_different_pseudos.py b/abipy/examples/flows/_under_develop/run_ebands_with_different_pseudos.py new file mode 100755 index 000000000..478657856 --- /dev/null +++ b/abipy/examples/flows/_under_develop/run_ebands_with_different_pseudos.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python +r""" +Band structure w/wo magnetization +================================= + +Calculation of the band structure of Fe with and without magnetization, +including L-projected (FATBANDS and FATDOS) +See also <~abinit/tutorial/Input/tspin_1.in> +""" +import os +import sys +import abipy.abilab as abilab +import abipy.flowtk as flowtk + + +CIF_STRING = """ +data_BaO +_audit_creation_method 'pos2cif.pl' +_cell_length_a 6.159607710989539 +_cell_length_b 6.159607710989539 +_cell_length_c 6.159607710989539 +_cell_angle_alpha 90 +_cell_angle_beta 90 +_cell_angle_gamma 90 +_symmetry_space_group_H-M 'P1' +_symmetry_Int_Tables_number '1' +_symmetry_cell_setting 'triclinic' +loop_ +_symmetry_equiv_pos_as_xyz +x,y,z + +loop_ +_atom_site_label +_atom_site_type_symbol +_atom_site_occupancy +_atom_site_fract_x +_atom_site_fract_y +_atom_site_fract_z +_atom_site_U_iso_or_equiv +Ba1 Ba 1.0000 0.25000 0.25000 0.25000 0.0000 +Ba2 Ba 1.0000 0.75000 0.75000 0.25000 0.0000 +Ba3 Ba 1.0000 0.75000 0.25000 0.75000 0.0000 +Ba4 Ba 1.0000 0.25000 0.75000 0.75000 0.0000 +O1 O 1.0000 0.50000 0.00000 0.00000 0.0000 +O2 O 1.0000 0.00000 0.50000 0.00000 0.0000 +O3 O 1.0000 0.00000 0.00000 0.50000 0.0000 +O4 O 1.0000 0.50000 0.50000 0.00000 0.0000 +O5 O 1.0000 0.50000 0.00000 0.50000 0.0000 +O6 O 1.0000 0.00000 0.50000 0.50000 0.0000 +""" + + +def build_flow(options): + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + # Create the Flow. + flow = flowtk.Flow(options.workdir, manager=options.manager) + + structure = abilab.Structure.from_string(CIF_STRING, fmt="cif", primitive=True) + + pseudos_list = [ + ("foo", "bar"), + ("foo1", "bar1"), + ] + + for pseudos in pseudos_list: + scf_input = abilab.AbinitInput(structure=structure, pseudos=pseudos) + + nval = structure.num_valence_electrons(pseudos) + nband = (nval / 2) + 10 + + # Global variables + scf_input.set_vars( + ecut=18, + nband=nband, + occopt=3, + tsmear=0.01, + ngkpt=[4, 4, 4], + shiftk=[0.5, 0.5, 0.5], + tolvrs=1e-8, + #paral_kgb=paral_kgb, + ) + + # Build a BandStructureWork from the scf_input with the given nsppol and add it to the flow + # L-projection (prtdos 3) is used by default. + work = flowtk.BandStructureWork.from_scf_input(scf_input, dos_ngkpt=(8, 8, 8), nb_extra=4) + flow.register_work(work) + + return flow + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/_under_develop/run_eph_sigma.py b/abipy/examples/flows/_under_develop/run_eph_sigma.py new file mode 100755 index 000000000..4d6f27570 --- /dev/null +++ b/abipy/examples/flows/_under_develop/run_eph_sigma.py @@ -0,0 +1,206 @@ +#!/usr/bin/env python +r""" +Computation of Phonons, BECS and Eps_inf for MgO +================================================== + +This example shows how to compute phonons with DFPT +Symmetries are taken into account: only q-points in the IBZ are generated. +The final results (out_DDB, out_DVDB) will be produced automatically at the end of the run +and saved in the ``outdata/`` directory of work[1]. +""" + +import sys +import os +import abipy.abilab as abilab +import abipy.data as abidata + +from abipy import flowtk + + +def make_scf_input(): + """ + This function constructs the input file for the GS calculation: + """ + + # Initialize MgO structure from abinit variables. + structure = abilab.Structure.from_abivars( + acell=3 * [4.252718 * abilab.units.ang_to_bohr], + rprim=[0.0000000000, 0.5000000000, 0.5000000000, + 0.5000000000, 0.0000000000, 0.5000000000, + 0.5000000000, 0.5000000000, 0.0000000000], + natom=2, + ntypat=2, + typat=[1, 2], + znucl=[12, 8], + xred=[0.0000000000, 0.0000000000, 0.0000000000, + 0.5000000000, 0.5000000000, 0.5000000000] + ) + + # NC pseudos assumed in currect working directory. + pseudos = ["Mg-sp-gw.psp8", "O.psp8"] + + # Input for GS part. + gs_inp = abilab.AbinitInput(structure, pseudos=pseudos) + + gs_inp.set_vars( + nband=16, + paral_kgb=0, + ecut=35.0, # Too low. Should be ~50 + ngkpt=[4, 4, 4], # Too coarse + #nshiftk=1, + shiftk=[0, 0, 0], # Gamma-centered mesh. Important to have the CBM/VBM! + tolvrs=1.0e-10, + diemac=9.0, + nstep=150, + nbdbuf=4, + #prtpot=1, # Print potential for Sternheimer + iomode=3, # Produce output files in netcdf format. + ) + + return gs_inp + + +def build_flow(options): + """ + Create a `Flow` for phonon calculations. The flow has two works. + + - work[0]: GS + NSCF along a k-path + - work[1]: DFPT work with phonons on a 4x4x4, BECS and eps_inf + """ + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + flow = flowtk.Flow(workdir=options.workdir) + + # Build input for GS calculation and create first work with 1 ScfTask. + gs_inp = make_scf_input() + work = flow.register_scf_task(gs_inp) + scf_task = work[0] + + # Build new input for NSCF calculation with k-path (automatically selected by AbiPy) + # Used to plot the KS band structure + nscf_kpath_inp = gs_inp.new_with_vars( + nband=16, + tolwfr=1e-18, + iscf=-2, + ) + nscf_kpath_inp.set_kpath(ndivsm=10) + work.register_nscf_task(nscf_kpath_inp, deps={scf_task: "DEN"}) + + # NSCF run with eph_ngkpt k-mesh to produce the WFK file for the EPH code. + nscf_eph_inp = gs_inp.new_with_vars( + tolwfr=1e-16, + iscf=-2, + prtpot=1, # Needed for the Sternheimer. + # This POT file is actually a copy of the GS POT file. + ) + + eph_ngkpt = [32, 32, 32] + nscf_eph_inp.set_kmesh( + ngkpt=eph_ngkpt, + shiftk=[0.0, 0.0, 0.0], + ) + work.register_nscf_task(nscf_eph_inp, deps={scf_task: "DEN"}) + nscf_eph_work = work[-1] + + # Q-mesh for phonons. In this case k-mesh == q-mesh + #ngkpt = [32, 32, 32] + ngqpt = [4, 4, 4] + + # Create work for phonon calculationwith a [4, 4, 4] q-mesh. + # Electric field and Born effective charges are also computed. + ph_work = flowtk.PhononWork.from_scf_task(scf_task, ngqpt, is_ngqpt=True, with_becs=True, with_quad=False) + + flow.register_work(ph_work) + + # Build template for self-energy calculation. See also v8/Input/t44.in + # The k-points must be in the WFK file + # + eph_inp = gs_inp.new_with_vars( + optdriver=7, # Enter EPH driver. + eph_task=4, # Activate computation of EPH self-energy. + eph_stern=1, # Use the sternheimer equations + ngkpt=eph_ngkpt, + ddb_ngqpt=ngqpt, # q-mesh used to produce the DDB file (must be consistent with DDB data) + symsigma=1, # Use symmetries in self-energy integration (IBZ_k instead of BZ) + # For more k-points... + nkptgw=1, + kptgw=[0, 0, 0], + bdgw=[9, 9], + #gw_qprange=-4, + nfreqsp=8000, + freqspmax="8.0 eV", + tmesh=[0, 200, 1], # (start, step, num) + zcut="0.01 eV", + ) + + # Set q-path for Fourier interpolation of phonons. + eph_inp.set_qpath(10) + + # Set q-mesh for phonons DOS. + eph_inp.set_phdos_qmesh(nqsmall=16, method="tetra") + + # Convergence of the q-mesh grid + # For each q-mesh check the frequency mesh and thus the time mesh density to obtain a stable spectral function + for eph_ngqpt_fine in [ [8, 8, 8], [16, 16, 16], [32, 32, 32]]: + # Create empty work to contain EPH tasks with this value of eph_ngqpt_fine + eph_work = flow.register_work(flowtk.Work()) + + for nfreq in [1000, 2000, 3000, 4000]: + + # EPH part requires the GS WFK, the DDB file with all perturbations + # and the database of DFPT potentials (already merged by PhononWork) + deps = {nscf_eph_work: ["WFK", "POT"], ph_work: ["DDB", "DVDB"]} + new_inp = eph_inp.new_with_vars(eph_ngqpt_fine=eph_ngqpt_fine, nfreqsp=nfreq) + eph_work.register_eph_task(new_inp, deps=deps) + + ce_inp = new_inp.new_with_vars( + eph_task=9, + tolcum=1e-3 + ) + # Cumulant expansion requires the SIGEPH output file obtained from the EPH calculation + deps = {nscf_eph_work: ["WFK", "POT"], ph_work: ["DDB", "DVDB"], eph_work[-1]: "SIGEPH"} + + eph_work.register_eph_task(ce_inp, deps=deps) + + # Create workflow for the EPH task + #eph_work.register_eph_task(eph_inp, deps=deps) + + #ce_inp = eph_inp.new_with_vars( + # eph_task=9, + # tolcum=1e-3 + # ) + + #deps = {nscf_eph_work: ["WFK","POT"], ph_work: ["DDB", "DVDB"], eph_work[0]: "SIGEPH"} + + #eph_work.register_eph_task(ce_inp, deps=deps) + + flow.allocate() + flow.use_smartio() + + return flow + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) + + diff --git a/abipy/examples/flows/_under_develop/run_eph_zpr.py b/abipy/examples/flows/_under_develop/run_eph_zpr.py new file mode 100755 index 000000000..8a84e4d90 --- /dev/null +++ b/abipy/examples/flows/_under_develop/run_eph_zpr.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python +import sys +import os +import abipy.abilab as abilab +import abipy.data as abidata + +from abipy import flowtk + + +def make_scf_input(scf_ngkpt, paral_kgb=0): + """ + This function constructs the input file for the GS calculation: + """ + + # Initialize MgO structure from abinit variables. + structure = abilab.Structure.from_abivars( + acell=3 * [4.252718 * abilab.units.ang_to_bohr], + rprim=[0.0000000000, 0.5000000000, 0.5000000000, + 0.5000000000, 0.0000000000, 0.5000000000, + 0.5000000000, 0.5000000000, 0.0000000000], + natom=2, + ntypat=2, + typat=[1, 2], + znucl=[12, 8], + xred=[0.0000000000, 0.0000000000, 0.0000000000, + 0.5000000000, 0.5000000000, 0.5000000000] + ) + + # Input for GS part. + # NC pseudos assumed in currect working directory. + #pseudos = ["Mg-sp-gw.psp8", "O.psp8"] + pseudos = abidata.pseudos("12mg.pspnc", "O.psp8") + + gs_inp = abilab.AbinitInput(structure, pseudos=pseudos) + + gs_inp.set_vars( + nband=12, + paral_kgb=paral_kgb, + ecut=35.0, # Too low. Should be ~50 + ngkpt=scf_ngkpt, # Too coarse + nshiftk=1, # Gamma-centered mesh. Important to have the CBM/VBM! + shiftk=[0, 0, 0], + tolvrs=1.0e-8, + diemac=9.0, + nstep=150, + nbdbuf=4, + prtpot=1, # Print potential for Sternheimer + #iomode=3, # Produce output files in netcdf format. + ) + + return gs_inp + + +def build_flow(options): + """ + Create a `Flow` for ZPR calculations. + """ + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(__file__).replace(".py", "").replace("run_", "flow_") + + flow = flowtk.Flow(workdir=options.workdir) + + # Build input for the GS calculation and register the first GS ScfTask. + gs_inp = make_scf_input(scf_ngkpt=[4, 4, 4]) + work = flow.register_scf_task(gs_inp) + scf_task = work[0] + + # Build input for NSCF calculation along k-path (automatically selected by AbiPy) + nscf_kpath_inp = gs_inp.make_ebands_input() + work.register_nscf_task(nscf_kpath_inp, deps={scf_task: "DEN"}) + + # This is the ab-initio q-mesh that should be COMMENSURATE with scf_ngkpt + ddb_ngqpt = [2, 2, 2] + + # Now we build the NSCF tasks with different k-meshes and empty states. + # Each NSCF task generates one of the WFK files used to build the EPH self-energy. + # These WFK files are then used to perform convergence tests with respect to + # the interpolated fine q-mesh. + # NOTE that in the EPH we are gonna use k_mesh = q_mesh + ngkpt_fine_list = [ + [8, 8, 8], + #[12, 12, 12], + #[32, 32, 32], + ] + + nscf_empty_states_tasks = [] + for ngkpt_fine in ngkpt_fine_list: + nscf_empty_kmesh_inp = gs_inp.new_with_vars( + ngkpt=ngkpt_fine, + #nband=630, # Too low. ~300 + #nbdbuf=30, # Reduces considerably the time needed to converge empty states! + nband=40, # Too low. ~300 + nbdbuf=5, # Reduces considerably the time needed to converge empty states! + tolwfr=1e-18, + iscf=-2, + ) + t = work.register_nscf_task(nscf_empty_kmesh_inp, deps={scf_task: "DEN"}) + nscf_empty_states_tasks.append(t) + + # Create work for phonon calculation on the coarse ddb_ngqpt q-mesh. + # Electric field and Born effective charges are computed. + ph_work = flowtk.PhononWork.from_scf_task(scf_task, qpoints=ddb_ngqpt, + is_ngqpt=True, with_becs=True, with_quad=False) + flow.register_work(ph_work) + + # Build template for e-ph self-energy calculation (real + imag part) + # The k-points must be in the WFK file + eph_template = gs_inp.new_with_vars( + optdriver=7, # EPH driver. + eph_task=4, # Activate computation of the EPH self-energy. + ddb_ngqpt=ddb_ngqpt, # Ab-initio q-mesh used to produce the DDB file. + #nkptgw=2, + #kptgw=[0, 0, 0, + # 0.5, 5, 0], + #bdgw=[1, 8, 1, 8], + #gw_qprange=1, + tmesh=[0, 200, 1], # (start, step, num) + zcut="0.01 eV", + # This to speed up the FFT. + mixprec=1, + boxcutmin=1.1, + ) + + # Set q-path for Fourier interpolation of phonons. + eph_template.set_qpath(10) + + # Set q-mesh for phonons DOS. + eph_template.set_phdos_qmesh(nqsmall=16, method="tetra") + + # Now we use the EPH template to perform a convergence study in which + # we change the dense q-mesh used to integrate the self-energy and the number of bands. + # The code will activate the Fourier interpolation of the DFPT potentials + # if eph_ngqpt_fine != ddb_ngqpt + + # Create empty work to contain EPH tasks with this value of eph_ngqpt_fine + eph_work = flow.new_work() + + for ngkpt_fine, nscf_task in zip(ngkpt_fine_list, nscf_empty_states_tasks): + new_inp = eph_template.new_with_vars( + ngkpt=ngkpt_fine, + eph_ngqpt_fine=ngkpt_fine, + ) #, nband=nband) + + # The EPH code requires the GS WFK, the DDB file with all perturbations + # and the DVDB file with the DFPT potentials (already merged by ph_work) + deps = {nscf_task: "WFK", ph_work: ["DDB", "DVDB"]} + eph_work.register_eph_task(new_inp, deps=deps) + + #flow.allocate() + return flow + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/_under_develop/run_eph_zpr_from_files.py b/abipy/examples/flows/_under_develop/run_eph_zpr_from_files.py new file mode 100755 index 000000000..a9ee5456a --- /dev/null +++ b/abipy/examples/flows/_under_develop/run_eph_zpr_from_files.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python +r""" +Convergence studies for e-ph ZPR from previous DFPT flow +======================================================== + +This example shows how to build a new Flow to converge the QP corrections due to e-ph +using the DDB/DVDB/POT files produced by a previous flow. + +More specifically, we perform NSCF calculations with different dense k-meshes and empty states. +Then we use these dense WFK files to compute the e-ph self-energy by varying the value of zcut and nband. +""" +import sys +import os +import itertools +import numpy as np +import abipy.abilab as abilab + +from abipy import flowtk + + +def build_flow(options): + """ + Create a `Flow` for ZPR convergene studies + """ + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(__file__).replace(".py", "").replace("run_", "flow_") + + # Recostruct previous DFPT flow from the pickle file. + # Assume flow in which: + # - w0/t0 is the SCF task producing DEN, POT files. + # - w1 is the PhononWork producing the DDB and the DVDB file in w1/outdir + + flow_workdir = options.extra + print(f"Reconstructing Flow from {flow_workdir} ...") + if not flow_workdir: + raise ValueError("Please specify the location of the DFPT flow with `--extra FLOWDIR`") + + prev_flow = flowtk.Flow.pickle_load(flow_workdir) + + scf_task = prev_flow[0][0] + gs_input = scf_task.input + gs_input.pop_vars(["autoparal", "max_ncpus"]) + dfpt_work = prev_flow[1] + + # Paths to output files. + ddb_filepath = dfpt_work.outdir.has_abiext("DDB") + dvdb_filepath = dfpt_work.outdir.has_abiext("DVDB") + den_filepath = scf_task.outdir.has_abiext("DEN") + pot_filepath = scf_task.outdir.has_abiext("POT") + + print(f""" +Creating ZPR flow from the following files: + + ddb_filepath = `{ddb_filepath}` + dvdb_filepath = `{dvdb_filepath}` + den_filepath = `{den_filepath}` + pot_filepath = `{pot_filepath}` +""") + + if any(not f for f in (ddb_filepath, dvdb_filepath, den_filepath)): + raise RuntimeError("DDB, DVDB and DEN file are required to build the ZPR flow.") + + if not pot_filepath: + raise RuntimeError("POT file is higly recommended for the Sternheimer method") + + # Get ab-initio coarse q-mesh from the DDB file. + with abilab.abiopen(ddb_filepath) as ddb: + ddb_ngqpt = ddb.guessed_ngqpt + #print(ddb) + + # Now we build NSCF tasks with different k-meshes and "enough" empty states. + # CHANGE this list according to your needs + ngkpt_fine_list = [ + [8, 8, 8], + #[12, 12, 12], + #[32, 32, 32], + ] + + # By default, all dense k-meshes are Gamma-centered. + num_kmesh = len(ngkpt_fine_list) + shiftk_fine_list = np.reshape(num_kmesh * [0, 0, 0], (-1, 3)) + nshiftk_list = [shift.shape[0] for shift in shiftk_fine_list] + + flow = flowtk.Flow(workdir=options.workdir) + + # Compute nband and nbdbuf for the NSCF run. + # Increase the number of GS-SCF bands by 50 + buffer + # This should be enough for convergence studies as we're gonna use Sternheimer in the EPH code. + gs_nband = gs_input["nband"] + nscf_nband = gs_nband + 50 + nbdbuf = max(int(nscf_nband * 0.1), 4) + nscf_nband += nbdbuf + + # Pack all NSCF calculations in nscf_work. + nscf_work = flow.new_work() + for i, ngkpt_fine in enumerate(ngkpt_fine_list): + + nscf_inp = gs_input.new_with_vars( + ngkpt=ngkpt_fine, + shiftk=shiftk_fine_list[i], + nband=nscf_nband, + nbdbuf=nbdbuf, # Reduces considerably the time needed to converge empty states! + tolwfr=1e-20, + iscf=-2, + ) + nscf_work.register_nscf_task(nscf_inp, deps={scf_task: "DEN"}) + + # Build template for e-ph self-energy calculations (real + imag part). + + eph_template = gs_input.new_with_vars( + optdriver=7, # EPH driver. + eph_task=4, # EPH self-energy (Re + Im) + ddb_ngqpt=ddb_ngqpt, # Ab-initio q-mesh used for the DDB file. + tmesh=[0, 100, 4], # T-mesh in Kelvin (start, step, num) + eph_stern=1, # Use Sternheimer equation + + ###################### + # k-points in Sigma_nk + + gw_qprange=0, # Compute the QP corrections only for the fundamental and the direct gap + # gw_qprange is handy as we don't need to specify kptgw and bdgw + # but keep in mind that the band edges are computed from the input WFK k-mesh + # so their position in the BZ MIGHT CHANGE + + #nkptgw=2, + #kptgw=[0, 0, 0, # NB: The k-points must be in the WFK file. + # 0.5, 0.5, 0], + #bdgw=[1, 8, 1, 8], + + ##################### + # Spectral function + #nfreqsp=8000, + #freqspmax="8.0 eV", + + ##################### + # Advanced options. + mixprec=1, # These two varables accelerats the FFT. + boxcutmin=1.1, + #symsigma=0, # Deactivate symmetries in self-energy integration (BZ instead of IBZ_k) + ) + + # Set q-path for Fourier interpolation of phonons. + eph_template.set_qpath(10) + + # Set q-mesh for phonons DOS. + eph_template.set_phdos_qmesh(nqsmall=16, method="tetra") + + # Now we use the EPH template to perform a convergence study in which + # we change the dense q-mesh used to integrate the self-energy and the number of bands. + # The code will activate the Fourier interpolation of the DFPT potentials + # if eph_ngqpt_fine != ddb_ngqpt + + nbsum_list = np.arange(gs_nband + 10, nscf_nband, step=10) + zcut_list = [f"{zc} meV" for zc in [1, 10, 50, 100]] + + print("Performing convergenge studies wrt BZ integration, nbands in Sigma sum and zcut:") + print("ngkpt_fine_list", ngkpt_fine_list) + print("shiftk_fine_list", shiftk_fine_list) + print("nbsum_list:", nbsum_list) + print("zcut_list:", zcut_list) + + for nscf_task in nscf_work: + # Create empty work to contain EPH tasks with this value of eph_ngqpt_fine + eph_work = flow.new_work() + kfine_dict = {k: nscf_task.input[k] for k in ("ngkpt", "nshiftk", "shiftk")} + + for nband_sum, zcut in itertools.product(nbsum_list, zcut_list): + + new_inp = eph_template.new_with_vars( + nband=nband_sum, + zcut=zcut, + eph_ngqpt_fine=kfine_dict["ngkpt"], + **kfine_dict, + ) + + # The EPH code requires the GS WFK, the DDB file with all perturbations + # and the DVDB file with the DFPT potentials (already merged by the previous Flow) + # The POT file is needed for the Sternheimer. + deps = { + nscf_task: "WFK", + ddb_filepath: "DDB", + dvdb_filepath: "DVDB", + pot_filepath: "POT", + } + + eph_work.register_eph_task(new_inp, deps=deps) + + return flow + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/_under_develop/run_ge_eph_pot.py b/abipy/examples/flows/_under_develop/run_ge_eph_pot.py new file mode 100755 index 000000000..afffab9c8 --- /dev/null +++ b/abipy/examples/flows/_under_develop/run_ge_eph_pot.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python +r""" +Flow to compute e-ph scattering potentials +========================================== + +This example shows how to compute e-ph scattering potentials +along a q-path, merge the POT files in the DVDB file and use the +DVDB and the DDB file to analyze the average over the unit cell of the +periodic part as a function of q +""" +import sys +import os +import abipy.abilab as abilab +import abipy.data as abidata + +from abipy import flowtk + + +def make_scf_input(ngkpt): + """ + This function constructs the input file for the GS calculation: + """ + structure = abilab.Structure.from_abistring( +""" +acell 1.0522E+01 1.0522E+01 1.0522E+01 +rprim 0.0 0.5 0.5 + 0.5 0.0 0.5 + 0.5 0.5 0.0 + +ntypat 1 +znucl 32 +natom 2 +typat 1 1 +xred 0.0 0.0 0.0 + 1/4 1/4 1/4 +""") + + pseudos = abidata.pseudos("Ge.psp8") + gs_inp = abilab.AbinitInput(structure, pseudos=pseudos) + + gs_inp.set_vars( + nband=16, + ecut=40.0, + ngkpt=ngkpt, + nshiftk=1, + shiftk=[0, 0, 0], + tolvrs=1.0e-8, + nstep=150, + paral_kgb=0, + ) + + return gs_inp + + +def build_flow(options): + """ + Create a `Flow` for phonon calculations. The flow has two works. + + The first work contains a single GS task that produces the WFK file used in DFPT + Then we have multiple Works that are generated automatically + in order to compute the dynamical matrix on a [2, 2, 2] mesh. + Symmetries are taken into account: only q-points in the IBZ are generated and + for each q-point only the independent atomic perturbations are computed. + """ + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + # Use 2x2x2 both for k-mesh and q-mesh + # Build input for GS calculation + scf_input = make_scf_input(ngkpt=(8, 8, 8)) + + # Create flow to compute all the independent atomic perturbations + # corresponding to a [4, 4, 4] q-mesh. + # Electric field and Born effective charges are also computed. + from abipy.flowtk.eph_flows import EphPotFlow + ngqpt = [4, 4, 4] + + qpath_list = [ + [+0.000, +0.000, +0.000], # name: $\Gamma$, weight: 0.000 + [+0.500, +0.000, +0.500], # name: X, weight: 0.000 + [+0.500, +0.250, +0.750], # name: W, weight: 0.000 + [+0.375, +0.375, +0.750], # name: K, weight: 0.000 + [+0.000, +0.000, +0.000], # name: $\Gamma$, weight: 0.000 + [+0.500, +0.500, +0.500], # name: L, weight: 0.000 + #[+0.625, +0.250, +0.625], # name: U, weight: 0.000 + #[+0.500, +0.250, +0.750], # name: W, weight: 0.000 + #[+0.500, +0.500, +0.500], # name: L, weight: 0.000 + #[+0.375, +0.375, +0.750], # name: K, weight: 0.000 + #[+0.625, +0.250, +0.625], # name: U, weight: 0.000 + #[+0.500, +0.000, +0.500], # name: X, weight: 0.000 + ] + + # Use small ndivsm to reduce computing time. + flow = EphPotFlow.from_scf_input(options.workdir, scf_input, + ngqpt, qpath_list, ndivsm=10, + with_quads=True, + with_becs=True) + + return flow + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/develop/run_gruneisen_phonopy_si.py b/abipy/examples/flows/_under_develop/run_gruneisen_phonopy_si.py similarity index 100% rename from abipy/examples/flows/develop/run_gruneisen_phonopy_si.py rename to abipy/examples/flows/_under_develop/run_gruneisen_phonopy_si.py diff --git a/abipy/examples/flows/_under_develop/run_gw.py b/abipy/examples/flows/_under_develop/run_gw.py new file mode 100755 index 000000000..7d0b6dbca --- /dev/null +++ b/abipy/examples/flows/_under_develop/run_gw.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python +r""" +G0W0 convergence study +====================== + +G0W0 convergence study wrt ecuteps and the number of bands in W. +""" +import sys +import os +import numpy as np + +import abipy.abilab as abilab +import abipy.data as abidata +import abipy.flowtk as flowtk + + +def build_flow(options): + + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + # Build the SCF input. + scf_inp = abilab.AbinitInput(structure=abidata.structure_from_ucell("SiC"), + pseudos=abidata.pseudos("14si.pspnc", "6c.pspnc")) + + ngkpt = [4, 4, 4] + shiftk = [0, 0, 0] + + print("Number of valence electrons in the unit cell:", scf_inp.num_valence_electrons) + + scf_inp.set_vars( + ecut=12, + nband=10, + ngkpt=ngkpt, + shiftk=shiftk, + tolvrs=1.e-4, + #paral_kgb=1, + #iomode=3, + ) + + #ebands_inp = scf_inp.make_ebands_input(ndivsm=15) + + # Build NSCF input on a k-mesh including empty states. + nscf_inp = scf_inp.new_with_vars( + nband=25, + #nbdbuf=10 + tolwfr=1.e-8, + iscf=-2 + ) + + flow = flowtk.Flow(workdir=options.workdir, manager=options.manager) + + # Band structure work to produce the WFK file with a NSCF run + empty states. + bands_work = flowtk.BandStructureWork(scf_inp, nscf_inp) # dos_inputs=[nscf_inp]) + flow.register_work(bands_work) + + # Compute screening by splitting all the q-points. + ecuteps_list = np.arange(2, 8, 2) + #ecuteps_list = [2] + max_ecuteps = max(ecuteps_list) + + for ecuteps in ecuteps_list: + scr_inp = nscf_inp.new_with_vars( + optdriver=3, + ecuteps=ecuteps, + nband=20, + ) + + scr_work = flowtk.ScreeningWork.from_nscf_task(bands_work.nscf_task, scr_inp) + + # Ii you alredy have a WFK file and you want to skip the SCF + NSCF part + # build the work using: + + #scr_work = ScreeningWork.from_wfk_file(wfk_filepath, scr_inp) + + scr_work.set_readme(f"SCR computation with ecuteps={ecuteps}") + flow.register_work(scr_work) + + # Do a convergence study wrt ecuteps, each work is connected to a + # different SCR file computed with a different value of nband. + # Build a list of sigma inputs with different ecuteps + + sigma_work = flow.new_work() + + # Input file for SIGMA + sigma_inp = scr_inp.new_with_vars( + optdriver=4, + nband=20, + ecuteps=max_ecuteps, + ecutsigx=scf_inp["ecut"], + #ecutsigx=(3.5 * scf_input["ecut"]), ! This is problematic + #gw_qprange + ) + + sigma_inp.set_kptgw(kptgw=[[0, 0, 0], [0.5, 0, 0]], bdgw=[1, 8]) + + sigma_work.register_sigma_task(sigma_inp, deps={bands_work.nscf_task: "WFK", scr_work: "SCR"}) + + #for scr_task in scr_work: + # sigma_conv = flowtk.SigmaConvWork(wfk_node=bands.nscf_task, scr_node=scr_task, + # sigma_inputs=sigma_inputs) + # flow.register_work(sigma_conv) + + return flow + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/develop/run_gwsoc.py b/abipy/examples/flows/_under_develop/run_gwsoc.py similarity index 100% rename from abipy/examples/flows/develop/run_gwsoc.py rename to abipy/examples/flows/_under_develop/run_gwsoc.py diff --git a/abipy/examples/flows/develop/run_optic_old.py b/abipy/examples/flows/_under_develop/run_optic_old.py similarity index 100% rename from abipy/examples/flows/develop/run_optic_old.py rename to abipy/examples/flows/_under_develop/run_optic_old.py diff --git a/abipy/examples/flows/develop/run_qha.py b/abipy/examples/flows/_under_develop/run_qha.py similarity index 82% rename from abipy/examples/flows/develop/run_qha.py rename to abipy/examples/flows/_under_develop/run_qha.py index e6ae022c8..7f3c6e4f7 100755 --- a/abipy/examples/flows/develop/run_qha.py +++ b/abipy/examples/flows/_under_develop/run_qha.py @@ -29,13 +29,13 @@ def build_flow(options): # Build input for GS calculation. scf_input = abilab.AbinitInput(structure, pseudos) - scf_input.set_vars(ecut=12, nband=8, tolvrs=1e-8) - scf_input.set_kmesh(ngkpt=[4, 4, 4], shiftk=[0, 0, 0]) + scf_input.set_vars(ecut=12, nband=4, tolvrs=1e-8) + scf_input.set_kmesh(ngkpt=[2, 2, 2], shiftk=[0, 0, 0]) - v0 = scf_input.structure.volume - volumes = [0.08 * v0, v0, v0 * 1.02] - return QhaFlow.from_scf_input(options.workdir, scf_input, volumes, - ngqpt=[2, 2, 2], with_becs=False, edos_ngkpt=(4, 4, 4)) + with_becs = False + ngqpt = [2, 2, 2] + return QhaFlow.from_scf_input(options.workdir, scf_input, ngqpt, with_becs, eps=0.005, + ) # , edos_ngkpt=(4, 4, 4)) # This block generates the thumbnails in the Abipy gallery. diff --git a/abipy/examples/flows/develop/run_qptdmscr.py b/abipy/examples/flows/_under_develop/run_qptdmscr.py similarity index 100% rename from abipy/examples/flows/develop/run_qptdmscr.py rename to abipy/examples/flows/_under_develop/run_qptdmscr.py diff --git a/abipy/examples/flows/develop/run_wyckoff.py b/abipy/examples/flows/_under_develop/run_wyckoff.py similarity index 100% rename from abipy/examples/flows/develop/run_wyckoff.py rename to abipy/examples/flows/_under_develop/run_wyckoff.py diff --git a/abipy/examples/flows/advanced/run_gwr_compare_chi.py b/abipy/examples/flows/advanced/run_gwr_compare_chi.py new file mode 100755 index 000000000..851b343e3 --- /dev/null +++ b/abipy/examples/flows/advanced/run_gwr_compare_chi.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +r""" +GWR flow with convergence studies +================================= + +This script computes the irreducbile polarizability with the GWR code +and the quartic scaling algorithm (Adler-Wiser exact expression in frequency domain) +using the same minimax mesh on the imaginary axis so that one can then compare the results +""" + +import os +import sys +import abipy.data as data +import abipy.abilab as abilab + +from abipy import flowtk + + +def build_flow(options): + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_","flow_") + + from abipy.data.gwr_structures import get_gwr_structure + symbol = "Si" + #symbol = "LiF" + #symbol = "Si" + #symbol = "C" + #symbol = "BN" + #symbol = "MgO" + #symbol = "GaAs" + #symbol = "ZnO" + structure = get_gwr_structure(symbol) + + from abipy.flowtk.psrepos import get_repo_from_name + #pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("stringent") + pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("standard") + + scf_input = abilab.AbinitInput(structure=structure, pseudos=pseudos) + scf_input.set_cutoffs_for_accuracy("normal") + ecut = scf_input["ecut"] + scf_input.set_scf_nband_semicond() + + # Global variables. + scf_input.set_vars( + tolvrs=1e-8, + paral_kgb=0, + npfft=1, + ) + scf_input.set_kmesh( + ngkpt=[2, 2, 2], + #ngkpt=[8, 8, 8], + shiftk=[0.0, 0.0, 0.0], # IMPORTANT: k-grid for GWR must be Gamma-centered. + ) + + # Get max number of PWs. + dims, _ = scf_input.abiget_dims_spginfo() + mpw = dims["mpw"] + #print(f"{mpw=}") + + flow = flowtk.Flow(workdir=options.workdir) + small_manager = options.manager.new_with_fixed_mpi_omp(4, 1) + + # GS-SCF run to get the DEN, followed by direct diago to obtain green_nband bands. + from abipy.flowtk.gwr_works import DirectDiagoWork, GWRChiCompareWork + green_nband = -1 # -1 this means full diago + diago_work = DirectDiagoWork.from_scf_input(scf_input, green_nband) + diago_work[0].set_manager(small_manager) + flow.register_work(diago_work) + + gwr_ntau_list = list(range(6, 34, 2)) + gwr_ntau_list = [6, 8] + + for gwr_ntau in gwr_ntau_list: + work = GWRChiCompareWork.from_scf_input(scf_input, gwr_ntau=gwr_ntau, nband=int(mpw*0.9), ecuteps=6, + den_node=diago_work[0], wfk_node=diago_work[1]) + flow.register_work(work) + + return flow + + +@flowtk.flow_main +def main(options): + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/advanced/run_gwr_compare_rpaec.py b/abipy/examples/flows/advanced/run_gwr_compare_rpaec.py new file mode 100755 index 000000000..a71e28057 --- /dev/null +++ b/abipy/examples/flows/advanced/run_gwr_compare_rpaec.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python +r""" +RPA flow with convergence studies +================================= + +This script computes the RPA energy with the GWR code +and the quartic scaling algorithm (Adler-Wiser exact expression in frequency domain) +so that one can then compare the results. +""" + +import os +import sys +import abipy.data as data +import abipy.abilab as abilab + +from abipy import flowtk + + +def build_flow(options): + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_","flow_") + + from abipy.data.gwr_structures import get_gwr_structure + symbol = "Si" + #symbol = "LiF" + #symbol = "Si" + #symbol = "C" + #symbol = "BN" + #symbol = "MgO" + #symbol = "GaAs" + #symbol = "ZnO" + structure = get_gwr_structure(symbol) + + from abipy.flowtk.psrepos import get_repo_from_name + #pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("stringent") + pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("standard") + + scf_input = abilab.AbinitInput(structure=structure, pseudos=pseudos) + scf_input.set_cutoffs_for_accuracy("normal") + ecut = scf_input["ecut"] + scf_input.set_scf_nband_semicond() + + # Global variables. + scf_input.set_vars( + tolvrs=1e-8, + paral_kgb=0, + npfft=1, + timopt=-1, + ) + scf_input.set_kmesh( + ngkpt=[1, 1, 1], + #ngkpt=[4, 4, 4], + #ngkpt=[8, 8, 8], + shiftk=[0.0, 0.0, 0.0], # IMPORTANT: k-grid for GWR must be Gamma-centered. + ) + + # Get max number of PWs. + dims, _ = scf_input.abiget_dims_spginfo() + mpw = dims["mpw"] + + flow = flowtk.Flow(workdir=options.workdir) + small_manager = options.manager.new_with_fixed_mpi_omp(4, 1) + + # GS-SCF run to get the DEN, followed by direct diago to obtain green_nband bands. + from abipy.flowtk.gwr_works import DirectDiagoWork, GWRRPAConvWork + green_nband = -1 # -1 this means full diago + diago_work = DirectDiagoWork.from_scf_input(scf_input, green_nband) + wfk_node = diago_work[1] + diago_work[0].set_manager(small_manager) + flow.register_work(diago_work) + + gwr_ntau_list = list(range(6, 34, 2)) + gwr_ntau_list = [6, 8] + nband = int(mpw*0.8) + ecuteps = 12 + + # GWR with different values of regterm + for gwr_regterm in (0.0, 1e-6): + work = GWRRPAConvWork.from_scf_input_ntaus(scf_input, gwr_ntau_list, + nband=nband, ecuteps=ecuteps, + den_node=diago_work[0], wfk_node=wfk_node, + gwr_kwargs=dict(gwr_regterm=gwr_regterm)) + flow.register_work(work) + + # RPA with quartic scaling. See also https://docs.abinit.org/tests/v67mbpt/Input/t19.abi + work = flow.new_work() + for gwr_ntau in gwr_ntau_list: + chi_input = scf_input.new_with_vars(optdriver=3, # Screening calculation. + gwcalctyp=1, # Gauss-Legendre frequency mesh on the imaginary axis. + gwrpacorr=1, # Exact integration over the coupling constant. + nfreqim=gwr_ntau, # No. of points along the imaginary axis for chi0. + nband=nband, + ecuteps=ecuteps, + ) + work.register_scr_task(chi_input, deps={wfk_node: "WFK"}) + + return flow + + +@flowtk.flow_main +def main(options): + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/advanced/run_gwr_compare_sigma.py b/abipy/examples/flows/advanced/run_gwr_compare_sigma.py new file mode 100755 index 000000000..c6646b097 --- /dev/null +++ b/abipy/examples/flows/advanced/run_gwr_compare_sigma.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python +r""" +GWR flow with convergence studies +================================= + +This script computes the G0W0 corrections with the GWR code +and the analytic continuation implemented in quartic scaling code in order to compare the results +""" + +import os +import sys +import abipy.data as data +import abipy.abilab as abilab +import abipy.core.abinit_units as abu + +from abipy import flowtk + + +def build_flow(options): + + from abipy.data.gwr_structures import get_gwr_structure + symbol = "Si" + #symbol = "LiF" + #symbol = "SiC" + #symbol = "C" + #symbol = "BN" + #symbol = "MgO" + #symbol = "GaAs" + #symbol = "ZnO" + structure = get_gwr_structure(symbol) + + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_","flow_") + + from abipy.flowtk.psrepos import get_repo_from_name + pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("standard") + #pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("stringent") + + scf_input = abilab.AbinitInput(structure=structure, pseudos=pseudos) + scf_input.set_cutoffs_for_accuracy("normal") + ecut = scf_input["ecut"] + scf_input.set_scf_nband_semicond() + + # Global variables. + scf_input.set_vars( + tolvrs=1e-8, + paral_kgb=0, + npfft=1, + timopt=-1, + ) + scf_input.set_kmesh( + #ngkpt=[1, 1, 1], + ngkpt=[2, 2, 2], + #ngkpt=[4, 4, 4], + #ngkpt=[8, 8, 8], + shiftk=[0.0, 0.0, 0.0], # IMPORTANT: k-grid for GWR must be Gamma-centered. + ) + + # Get max number of PWs. + #dims, _ = scf_input.abiget_dims_spginfo() + #mpw = dims["mpw"] + + flow = flowtk.Flow(workdir=options.workdir) + small_manager = options.manager.new_with_fixed_mpi_omp(4, 1) + + # GS-SCF run to get the DEN, followed by direct diago to obtain green_nband bands. + from abipy.flowtk.gwr_works import DirectDiagoWork, GWRSigmaConvWork + green_nband = -1 # -1 this means full diago + diago_work = DirectDiagoWork.from_scf_input(scf_input, green_nband) + diago_work[0].set_manager(small_manager) + flow.register_work(diago_work) + + # Build template for GWR. + ecuteps = 12 + nval = scf_input.num_valence_electrons // 2 + nband = nval * 100 + gwr_template = scf_input.make_gwr_qprange_input(gwr_ntau=6, nband=nband, ecuteps=ecuteps) + + # Define kptgw and bdgw + kptgw = [ # k-points in reduced coordinates + (0.0, 0.0, 0.0), + (0.5, 0.5, 0.0), # X + #(0.5 0.000 0.000), + ] + + nkptgw = len(kptgw) + bdgw = (nval, nval+1) * nkptgw + + sigma_kcalc_dict = dict( + nkptgw=nkptgw, + kptgw=kptgw, + bdgw=bdgw, + ) + + gwr_template.set_vars(**sigma_kcalc_dict) + + gwr_ntau_list = list(range(6, 34, 2)) + gwr_ntau_list = [6, 8] + gwr_ntau_list = [14, 20] + + # Conpute QP corrections without/with regularization term. + # 1) Change the value of one variable: + varname_values = ("gwr_ntau", gwr_ntau_list) + gwr_template["nband"] = nband + gwr_template["userra"] = 1e-6 + #gwr_template["userra"] = 0.0 + + wfk_node = diago_work[1] + gwr_work = GWRSigmaConvWork.from_varname_values( + varname_values, gwr_template, den_node=diago_work[0], wfk_node=wfk_node) + flow.register_work(gwr_work) + + # Create work for plasmon-pole calculation + chi_ppm_input = scf_input.new_with_vars(optdriver=3, + ecuteps=ecuteps, + nband=nband, + ) + + sigma_ppm_input = chi_ppm_input.new_with_vars(optdriver=4, + ecutsigx=gwr_template["ecutsigx"], + ) + sigma_ppm_input.set_vars(**sigma_kcalc_dict) + + work = flow.new_work() + scr_ppm_task = work.register_scr_task(chi_ppm_input, deps={wfk_node: "WFK"}) + work.register_sigma_task(sigma_ppm_input, deps={wfk_node: "WFK", scr_ppm_task: "SCR"}) + + use_ac = False + if use_ac: + # Create work for G0W0 AC calculation + #nfreqim 25 + #nomegasi 10 + #omegasimax 10 eV + ac_work = flow.new_work() + for gwr_ntau in gwr_ntau_list: + chi_ac_input = scf_input.new_with_vars(optdriver=3, + gwcalctyp=1, # Analytic continuation. + nfreqim=gwr_ntau, # This is equal to gwr_ntau + ecuteps=ecuteps, + nband=nband, + ) + + sigma_ac_input = chi_ac_input.new_with_vars(optdriver=4, + nomegasi=gwr_ntau, + omegasimax=0.2 * abu.eV_Ha * gwr_ntau, + ecutsigx=gwr_template["ecutsigx"], + ) + sigma_ac_input.set_vars(**sigma_kcalc_dict) + scr_ac_task = ac_work.register_scr_task(chi_ac_input, deps={wfk_node: "WFK"}) + ac_work.register_sigma_task(sigma_ac_input, deps={wfk_node: "WFK", scr_ac_task: "SCR"}) + + use_cd = True + if use_cd: + # Create work for G0W0 with contour deformation. + cd_work = flow.new_work() + chi_cd_input = scf_input.new_with_vars(optdriver=3, + gwcalctyp=2, # Contour deformation + nfreqre=50, + freqremax=1.5, + nfreqim=10, + ecuteps=ecuteps, + nband=nband, + ) + + sigma_cd_input = chi_cd_input.new_with_vars(optdriver=4, + ecutsigx=gwr_template["ecutsigx"], + #nfreqsp=200, + #freqspmax=2., + ) + sigma_cd_input.set_vars(**sigma_kcalc_dict) + scr_cd_task = cd_work.register_scr_task(chi_cd_input, deps={wfk_node: "WFK"}) + cd_work.register_sigma_task(sigma_cd_input, deps={wfk_node: "WFK", scr_cd_task: "SCR"}) + + return flow + + +@flowtk.flow_main +def main(options): + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/advanced/run_gwr_sigma_with_regterm.py b/abipy/examples/flows/advanced/run_gwr_sigma_with_regterm.py new file mode 100755 index 000000000..c01c486b0 --- /dev/null +++ b/abipy/examples/flows/advanced/run_gwr_sigma_with_regterm.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python +r""" +GWR flow with convergence studies +================================= + +This script uses the GWR code to compute the G0W0 corrections +with and without the regularization term in the minimax mesh. +in order to monitor the convergence and stability wrt gwr_ntau. +""" + +import os +import sys +import abipy.data as data +import abipy.abilab as abilab + +from abipy import flowtk + + +def build_flow(options): + + from abipy.data.gwr_structures import get_gwr_structure + symbol = "Si" + #symbol = "LiF" + #symbol = "Si" + #symbol = "C" + #symbol = "BN" + #symbol = "MgO" + structure = get_gwr_structure(symbol) + + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_","flow_") + + from abipy.flowtk.psrepos import get_repo_from_name + pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("stringent") + + scf_input = abilab.AbinitInput(structure=structure, pseudos=pseudos) + scf_input.set_cutoffs_for_accuracy("normal") + ecut = scf_input["ecut"] + scf_input.set_scf_nband_semicond() + + # Global variables. + scf_input.set_vars( + tolvrs=1e-8, + paral_kgb=0, + npfft=1, + ) + scf_input.set_kmesh( + #ngkpt=[2, 2, 2], + ngkpt=[4, 4, 4], + #ngkpt=[8, 8, 8], + shiftk=[0.0, 0.0, 0.0], # IMPORTANT: k-grid for GWR must be Gamma-centered. + ) + + # Get max number of PWs. + dims, _ = scf_input.abiget_dims_spginfo() + mpw = dims["mpw"] + + flow = flowtk.Flow(workdir=options.workdir) + small_manager = options.manager.new_with_fixed_mpi_omp(4, 1) + + # GS-SCF run to get the DEN, followed by direct diago to obtain green_nband bands. + from abipy.flowtk.gwr_works import DirectDiagoWork, GWRSigmaConvWork + green_nband = -1 # -1 this means full diago + diago_work = DirectDiagoWork.from_scf_input(scf_input, green_nband) + diago_work[0].set_manager(small_manager) + flow.register_work(diago_work) + + # Build template for GWR. + ecuteps = 12 + gwr_template = scf_input.make_gwr_qprange_input(gwr_ntau=6, nband=int(mpw * 0.9), ecuteps=ecuteps) + + ival = scf_input.num_valence_electrons // 2 + kptgw = [ # k-points in reduced coordinates + (0.0, 0.0, 0.0), + (0.5, 0.5, 0.0), # X + #(0.5 0.000 0.000 + ] + + nkptgw = len(kptgw) + bdgw = (ival, ival+1) * nkptgw + + gwr_template.set_vars( + nkptgw=nkptgw, + kptgw=kptgw, + bdgw=bdgw, + ) + + gwr_ntau_list = list(range(6, 34, 2)) + gwr_ntau_list = [6, 8] + + # 1) Change the value of one variable: + varname_values = ("gwr_ntau", gwr_ntau_list) + # or take the Cartesian product of two or more variables with e.g.: + # + #varname_values = [ + # ("gwr_ntau", gwr_ntau_list), + # #("userra", [0.0, 1e-6), # Compute QP corrections with/without regterm. + # #("ecuteps", [4, 6]), + #] + + # Conpute QP corrections without/with regularization term. + for userra in [0.0, 1e-6]: + gwr_template["userra"] = userra + gwr_work = GWRSigmaConvWork.from_varname_values( + varname_values, gwr_template, den_node=diago_work[0], wfk_node=diago_work[1]) + flow.register_work(gwr_work) + + return flow + + +@flowtk.flow_main +def main(options): + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/run_becs_and_epsilon_vs_kpts.py b/abipy/examples/flows/run_becs_and_epsilon_vs_kpts.py index 012a2aeb6..514dfa589 100755 --- a/abipy/examples/flows/run_becs_and_epsilon_vs_kpts.py +++ b/abipy/examples/flows/run_becs_and_epsilon_vs_kpts.py @@ -1,12 +1,12 @@ #!/usr/bin/env python r""" -Flow for Born effective charges and dielectric tensors with DFPT -================================================================ +Born effective charges and dielectric tensors with DFPT +======================================================= This example shows how to compute the Born effective charges and the dielectric tensors (e0, einf) of AlAs with AbiPy flows. We perform multiple calculations by varying the number of k-points -to analyze the convergence of the results wrt nkpt +in order to analyze the convergence of the results wrt nkpt. """ import sys import os @@ -37,8 +37,8 @@ def make_scf_input(ngkpt, paral_kgb=0): #shiftk=[0, 0, 0], paral_kgb=paral_kgb, tolvrs=1.0e-10, - ixc=1, diemac=9.0, + ixc=1, # This is needed because the pseudos have been generated with different XC #iomode=3, ) @@ -62,7 +62,7 @@ def build_flow(options): flow = flowtk.Flow(workdir=options.workdir) for ngkpt in [(2, 2, 2), (4, 4, 4), (8, 8, 8)]: - # Build input for GS calculation + # Build input for GS calculation with different k-meshes scf_input = make_scf_input(ngkpt=ngkpt) flow.register_scf_task(scf_input, append=True) diff --git a/abipy/examples/flows/run_conducwork.py b/abipy/examples/flows/run_conducwork.py new file mode 100755 index 000000000..de43a2b84 --- /dev/null +++ b/abipy/examples/flows/run_conducwork.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python +r""" +Conductivity in metals +====================== + +Flow to compute conductivity in metals +""" + +import os +import sys +import abipy.data as abidata +import abipy.abilab as abilab + +from abipy import flowtk +from abipy.abio.factories import conduc_kerange_from_inputs + + +def make_scf_input(structure, pseudos, ngkpt=(2,2,2), shiftk=(0,0,0), + **variables): + """Build and return SCF input given the structure and pseudopotentials""" + + scf_inp = abilab.AbinitInput(structure, pseudos=pseudos) + + # Global variables + scf_inp.set_vars(**variables) + + # Dataset 1 (GS run) + scf_inp.set_kmesh(ngkpt=ngkpt, shiftk=shiftk) + #scf_inp.set_vars(toldfe=1e-10) + + return scf_inp + + +def make_nscf_input(structure, pseudos, ngkpt=(2,2,2), shiftk=(0,0,0), + **variables): + """Build and return NSCF input given the structure and pseudopotentials""" + scf_inp = abilab.AbinitInput(structure, pseudos=pseudos) + + # Global variables + scf_inp.set_vars(**variables) + + # Dataset 1 (GS run) + scf_inp.set_kmesh(ngkpt=ngkpt, shiftk=shiftk) + scf_inp.set_vars(iscf=-2) + + return scf_inp + + +def build_flow(options): + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(__file__).replace(".py", "").replace("run_", "flow_") + + # Get structure and pseudos from the abipy database + structure = abidata.structure_from_ucell("Al") + pseudos = abidata.pseudos("13al.pspnc") + + # Variables + variables = dict( + ecut=20, + tsmear=0.05, + nband=12, + nbdbuf=2, + occopt=3, + iomode=1, + nstep=20 + ) + + ngkpt = [4, 4, 4] + ngkpt_fine = [8, 8, 8] + shiftk = [0.0, 0.0, 0.0] + ngqpt = [2, 2, 2] + tmesh = [0, 30, 11] # Conductivity at temp from 0K to 300K by increment of 30 + boxcutmin = 1.1 + mixprec = 1 + + # Kerange Variables + nbr_proc = 4 + ngqpt_fine = [16, 16, 16] # The sigma_ngkpt grid must be divisible by the qpt grid + sigma_ngkpt = [16, 16, 16] + einterp = [1, 5, 0, 0] # Star functions Interpolation + sigma_erange = [-0.3, -0.3, "eV"] # Negative value for metals + + flow = flowtk.Flow(workdir=options.workdir) + + # Create inputs Object + scf_input = make_scf_input(structure, pseudos, + tolvrs=1e-12, + ngkpt=ngkpt, + shiftk=shiftk, + **variables) + + nscf_input = make_nscf_input(structure, pseudos, + tolwfr=1e-18, + ngkpt=ngkpt_fine, + shiftk=shiftk, + **variables) + + # Create Work Object + # Work 0: SCF run + gs_work = flowtk.Work() + gs_work.register_scf_task(scf_input) + flow.register_work(gs_work) + + # Work 1: Compute DDB et DVDB + ph_work = flowtk.PhononWork.from_scf_task(gs_work[0], + qpoints=ngqpt, is_ngqpt=True, + tolerance={"tolvrs": 1e-8}) + flow.register_work(ph_work) + + # Work 2: Conductivity with Kerange + multi = conduc_kerange_from_inputs(scf_input=scf_input, + nscf_input=nscf_input, + tmesh=tmesh, + ddb_ngqpt=ngqpt, + eph_ngqpt_fine=ngqpt_fine, + sigma_ngkpt=sigma_ngkpt, + sigma_erange=sigma_erange, + einterp=einterp, + boxcutmin=boxcutmin, # 1.1 is the default value of the function + mixprec=mixprec # 1 is the default value of the function + ) + + # Here we can change multi to change the variable of a particular dataset + + conduc_work = flowtk.ConducWork.from_phwork(phwork=ph_work, # Linking the DDB and DVDB via a |PhononWork| + multi=multi, # The multidataset object + nbr_proc=nbr_proc, # Needed to parallelize the calculation + flow=flow, + with_kerange=True, # Using Kerange + omp_nbr_thread=1) # 1 is the default value of the function + # If you already have the DDB and DVDB, use from_filepath(ddb_path, dvdb_path, multi, ...) instead of from_phwork + + flow.register_work(conduc_work) + + return flow.allocate(use_smartio=True) + + +# This block generates the thumbnails in the Abipy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) + +############################################ diff --git a/abipy/examples/flows/run_effmass_dfpt.py b/abipy/examples/flows/run_effmass_dfpt.py index b0cfe241e..799d73683 100755 --- a/abipy/examples/flows/run_effmass_dfpt.py +++ b/abipy/examples/flows/run_effmass_dfpt.py @@ -6,7 +6,8 @@ Flow to compute effective masses with DFPT. Two options are available: - - EffMassDFPTWork --> Run DFPT calculation directly assuming the location of the band edges is already known. + - EffMassDFPTWork --> Run DFPT calculation directly assuming the location + of the band edges is already known. - EffMassAutoDFPTWork --> Run NSCF calculation to find band edges, then use DFPT. """ @@ -24,7 +25,7 @@ def make_scf_input(usepaw=0, nspinor=1): else: pseudos = abidata.pseudos("Si_r.psp8") if usepaw == 0 else abidata.pseudos("Si.GGA_PBE-JTH-paw.xml") - # https://docs.abinit.org/tests/v7/Input/t82.in + # See https://docs.abinit.org/tests/v7/Input/t82.in structure = dict( ntypat=1, natom=2, @@ -76,11 +77,16 @@ def build_flow(options): # effmass_bands_f90 defines the band range for each k in k0_list # Here we are interested in the effective masses at the Gamma point for the valence bands effmass_bands_f90 = [1, 4] if scf_input["nspinor"] == 1 else [1, 8] - work = EffMassDFPTWork.from_scf_input(scf_input, k0_list=(0, 0, 0), effmass_bands_f90=effmass_bands_f90) + work = EffMassDFPTWork.from_scf_input(scf_input, k0_list=(0, 0, 0), + effmass_bands_f90=effmass_bands_f90) flow.register_work(work) # or use this Work to detect band edges automatically but increase ndivsm and decrease tolwfr! - work = EffMassAutoDFPTWork.from_scf_input(scf_input, ndivsm=5, tolwfr=1e-12) + # you may want to use a negative value of ndivsm (e.g. -20) to use the pymatgen density_line + # convention. This is useful to avoid problems with high-symmetry + # k-paths containing very small segments. + # In this case, indeed, ndivsm > 0 (Abinit variable) can easily generate thousands of k-points. + work = EffMassAutoDFPTWork.from_scf_input(scf_input, ndivsm=-5, tolwfr=1e-12) flow.register_work(work) return flow diff --git a/abipy/examples/flows/run_effmass_finitediff.py b/abipy/examples/flows/run_effmass_finitediff.py index ec4b6a962..bd24eb1c8 100755 --- a/abipy/examples/flows/run_effmass_finitediff.py +++ b/abipy/examples/flows/run_effmass_finitediff.py @@ -3,7 +3,7 @@ Effective masses with finite difference ======================================= -Flow to compute effective masses with finite difference method. +Flow to compute effective masses with finite difference methods. Derivatives are computed along lines in k-space. """ @@ -67,13 +67,16 @@ def build_flow(options): flow = flowtk.Flow(workdir=options.workdir, manager=options.manager) # Multiple calculations with different step for finite difference. + # Use ndivsm != 0 at the first iteration to compute band structure along for i, step in enumerate((0.01, 0.005)): if i == 0: den_node = None work = EffMassLineWork.from_scf_input(scf_input, k0_list=(0, 0, 0), step=step, npts=10, red_dirs=[[1, 0, 0], [1, 1, 0]], - cart_dirs=[[1, 0, 0], [1, 1, 1], [1, 1, 0]], + #cart_dirs=[[1, 0, 0], [1, 1, 1], [1, 1, 0]], + ndivsm=-20 if i == 0 else 0, den_node=den_node) + # Will start from the DEN file produced in the first iteration. if i == 0: den_node = work[0] flow.register_work(work) diff --git a/abipy/examples/flows/run_elastic.py b/abipy/examples/flows/run_elastic.py index ace29aaff..d6b336e55 100755 --- a/abipy/examples/flows/run_elastic.py +++ b/abipy/examples/flows/run_elastic.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Flow for elastic constants and piezoelectric tensor with DFPT -============================================================= +Elastic constants and piezoelectric tensor with DFPT +==================================================== This example shows how to use AbiPy to calculate physical properties related to strain for an insulator. diff --git a/abipy/examples/flows/run_eos.py b/abipy/examples/flows/run_eos.py index 4ad905f7a..a2eefc752 100755 --- a/abipy/examples/flows/run_eos.py +++ b/abipy/examples/flows/run_eos.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Flow for Equation of State -========================== +Equation of state +================= Flow to compute the equation of state by fitting E(V) at T = 0. """ @@ -40,7 +40,7 @@ def build_flow(options): flow = flowtk.Flow(options.workdir, manager=options.manager) # Si is cubic and atomic positions are fixed by symmetry so we - # use move_atoms=False to compute E(V) with SCF-GS tasks instead of + # use move_atoms=False to compute E(V) with GS-SCF tasks instead of # performing a constant-volume optimization of the cell geometry. work = EosWork.from_scf_input(scf_input, move_atoms=False, ecutsm=0.5) flow.register_work(work) diff --git a/abipy/examples/flows/run_eph_al.py b/abipy/examples/flows/run_eph_al.py index dcfd16684..9f7ecc621 100755 --- a/abipy/examples/flows/run_eph_al.py +++ b/abipy/examples/flows/run_eph_al.py @@ -1,9 +1,9 @@ #!/usr/bin/env python r""" -Flow for E-PH calculations -========================== +Isotropic superconductivity +============================ -This flow computes the phonon linewidths and the Eliashberg function in Al. +This flow computes the phonon linewidths and the isotropic Eliashberg function in Al. """ import sys import os diff --git a/abipy/examples/flows/run_eph_mob.py b/abipy/examples/flows/run_eph_mob.py new file mode 100755 index 000000000..2a80775a4 --- /dev/null +++ b/abipy/examples/flows/run_eph_mob.py @@ -0,0 +1,144 @@ +#!/usr/bin/env python +r""" +Phonon-limited mobilities in semiconductors +=========================================== + +This flow computes the phonon-limited mobility in AlAs +using different dense k/q meshes. +""" +import sys +import os +import abipy.data as abidata +import abipy.abilab as abilab +import abipy.flowtk as flowtk +import abipy.core.abinit_units as abu + + +def build_flow(options): + + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + # Initialize the flow + flow = flowtk.Flow(workdir=options.workdir, manager=options.manager) + + # Initialize the tmesh, sigma_kerange, sigma_erange and dense k-meshes for the eph integrations + tmesh = [300, 300, 1] + sigma_kerange = [0, 0.5 * abu.eV_Ha] # 0.5 eV range for the WFK of electrons + sigma_erange = [0, 0.25 * abu.eV_Ha] # 0.25 eV range for the EPH computation for electrons + dense_kmeshes = [ + [30, 30, 30], + [40, 40, 40], + ] + + # Initialize the structure and pseudos + structure = abidata.structure_from_ucell("AlAs") + pseudos = abidata.pseudos("13al.981214.fhi", "33as.pspnc") + ecut = 2 + nband = 8 + + # Ground-state computation for 1) the phonons and 2) the WFK generation + scf_input = abilab.AbinitInput(structure, pseudos) + + scf_input.set_vars( + nband=nband, + ecut=ecut, + ngkpt=[4, 4, 4], + shiftk=[0, 0, 0], + tolvrs=1.0e-8, + diemac=9.0, + #prtden=1, + #iomode=3, + ) + + # Initialize the first work and add the ground-state task + work0 = flowtk.Work() + work0.register_scf_task(scf_input) + + # Band structure calculation to make sure everything is OK + # Also allows to compare the results obtained with abitk to + # check the SKW interpolation works properly. + bs_input = scf_input.make_ebands_input(tolwfr=1e-12, ndivsm=10, nb_extra=5) + bs_input.set_vars(nstep=100, nbdbuf=1) + work0.register_nscf_task(bs_input, deps={work0[0]: "DEN"}) + + # NSCF input for the WFK needed to interpolate with kerange + nscf_input = abilab.AbinitInput(structure, pseudos) + nscf_input.set_vars( + ecut=ecut, + nband=nband, + iscf=-2, + tolwfr=1e-20, + prtwf=1, + ngkpt=[16, 16, 16], # Should be dense enough so that the kerange interpolation works + shiftk=[0.0, 0.0, 0.0], + ) + + work0.register_nscf_task(nscf_input, deps={work0[0]: "DEN"}) + flow.register_work(work0) + + # Add the phonon work to the flow + # NB: with_quad is set to False because non-linear core correction is not yet supported. + ddb_ngqpt = [4, 4, 4] + ph_work = flowtk.PhononWork.from_scf_task(work0[0], qpoints=ddb_ngqpt, + is_ngqpt=True, with_becs=True, with_quad=False) + flow.register_work(ph_work) + + # We loop over the dense k-meshes + for i, sigma_ngkpt in enumerate(dense_kmeshes): + + # Use the kerange trick to generate a WFK file + multi = nscf_input.make_wfk_kerange_inputs(sigma_kerange=sigma_kerange, + sigma_ngkpt=sigma_ngkpt) + kerange_input, wfk_input = multi.split_datasets() + + work_eph = flowtk.Work() + work_eph.register_kerange_task(kerange_input, deps={work0[2]: "WFK"}) + work_eph.register_nscf_task(wfk_input, + deps={work0[0]: "DEN", work_eph[0]: "KERANGE.nc"}) + + # Generate the input file for transport calculations. + # Use ibte_prep = 1 to activate the iterative BTE. + eph_input = wfk_input.make_eph_transport_input(ddb_ngqpt=ddb_ngqpt, + sigma_erange=sigma_erange, + tmesh=tmesh, + eph_ngqpt_fine=sigma_ngkpt, + ibte_prep=1) + + # We compute the phonon dispersion in the EPH code to be able to check they are ok. + if i == 0: + eph_input.set_qpath(20) + + work_eph.register_eph_task(eph_input, + deps={work_eph[1]: "WFK", ph_work: ["DDB", "DVDB"]}) + + flow.register_work(work_eph) + + flow.allocate(use_smartio=True) + + return flow + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/run_eph_pot.py b/abipy/examples/flows/run_eph_pot.py index 9af65cdde..0bc16aa57 100755 --- a/abipy/examples/flows/run_eph_pot.py +++ b/abipy/examples/flows/run_eph_pot.py @@ -1,10 +1,10 @@ #!/usr/bin/env python r""" -Flow to compute e-ph scattering potentials -========================================== +e-ph scattering potentials +========================== This example shows how to compute e-ph scattering potentials -along a q-path, merge the POT files in the DVDB file and use the +along a q-path, merge the POT files in the DVDB file and finally use the DVDB and the DDB file to analyze the average over the unit cell of the periodic part as a function of q """ @@ -43,6 +43,7 @@ def make_scf_input(ngkpt): shiftk=[0, 0, 0], tolvrs=1.0e-8, nstep=150, + paral_kgb=0, ) return gs_inp @@ -70,7 +71,7 @@ def build_flow(options): # corresponding to a [4, 4, 4] q-mesh. # Electric field and Born effective charges are also computed. from abipy.flowtk.eph_flows import EphPotFlow - ngqpt = (2, 2, 2) + ngqpt = [2, 2, 2] qpath_list = [ +0.10000, +0.10000, +0.10000, # L -> G @@ -95,7 +96,7 @@ def build_flow(options): # Use small ndivsm to reduce computing time. flow = EphPotFlow.from_scf_input(options.workdir, scf_input, ngqpt, qpath_list, ndivsm=2, ddk_tolerance={"tolwfr": 1e-12}, - with_becs=True) + with_becs=True, with_quad=False) return flow diff --git a/abipy/examples/flows/run_fe_ebands.py b/abipy/examples/flows/run_fe_ebands.py index 08348bcf7..f9452a7be 100755 --- a/abipy/examples/flows/run_fe_ebands.py +++ b/abipy/examples/flows/run_fe_ebands.py @@ -3,7 +3,8 @@ Band structure w/wo magnetization ================================= -Calculation of the band structure of Fe with and without magnetization. +Calculation of the band structure of Fe with and without magnetization, +including L-projected (FATBANDS and FATDOS) See also <~abinit/tutorial/Input/tspin_1.in> """ import os @@ -13,13 +14,13 @@ import abipy.flowtk as flowtk -def make_scf_nscf_inputs(nsppol, paral_kgb=1): +def make_scf_input(nsppol, paral_kgb=1): """ - Generate two input files for the GS and the NSCF run for given `nsppol`. + Generate input file for GS and given `nsppol`. """ # Fe normal bcc structure for test of a ferromagnetic calculation - multi = abilab.MultiDataset(structure=data.structure_from_ucell("Fe-fm"), - pseudos=data.pseudos("26fe.pspnc"), ndtset=2) + scf_input = abilab.AbinitInput(structure=data.structure_from_ucell("Fe-fm"), + pseudos=data.pseudos("26fe.pspnc")) # Global variables global_vars = dict( @@ -30,23 +31,16 @@ def make_scf_nscf_inputs(nsppol, paral_kgb=1): tsmear=0.01, paral_kgb=paral_kgb, ) + if nsppol == 2: global_vars.update(spinat=[0.0, 0.0, 4.0]) - multi.set_vars(global_vars) - - # Dataset 1 (GS run) - multi[0].set_kmesh(ngkpt=[4,4,4], shiftk=[0.5,0.5,0.5]) - multi[0].set_vars(tolvrs=1e-6) - - # Dataset 2 (NSCF run) - multi[1].set_kpath(ndivsm=4) - multi[1].set_vars(tolwfr=1e-8) + scf_input.set_vars(global_vars) - # Generate two input files for the GS and the NSCF run - scf_input, nscf_input = multi.split_datasets() + scf_input.set_kmesh(ngkpt=[4, 4, 4], shiftk=[0.5, 0.5, 0.5]) + scf_input.set_vars(tolvrs=1e-6) - return scf_input, nscf_input + return scf_input def build_flow(options): @@ -57,10 +51,11 @@ def build_flow(options): # Create the Flow. flow = flowtk.Flow(options.workdir, manager=options.manager) - # Create the task defining the calculation and run and register it in the flow for nsppol in [1, 2]: - scf_input, nscf_input = make_scf_nscf_inputs(nsppol) - work = flowtk.BandStructureWork(scf_input, nscf_input) + # Build a BandStructureWork from the scf_input with the given nsppol and add it to the flow + # L-projection (prtdos 3) is used by default. + scf_input = make_scf_input(nsppol) + work = flowtk.BandStructureWork.from_scf_input(scf_input, dos_ngkpt=(8, 8, 8)) flow.register_work(work) return flow diff --git a/abipy/examples/flows/run_flexoelectric.py b/abipy/examples/flows/run_flexoelectric.py new file mode 100755 index 000000000..9ec0059be --- /dev/null +++ b/abipy/examples/flows/run_flexoelectric.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python +r""" +Flexoelectric Tensor +===================== + +This example shows how to compute the dynamical matrix of GaP on a user-defined q-mesh +including Born effective charges, the macroscopic dielectric matric and the dynamical quadrupoles Q*. +The final results (out_DDB, out_DVDB) will be produced automatically at the end of the run +and saved in ``flow_phonons_with_quad/outdata/``. + +The Q* tensor may be needed to improve the accuracy of the Fourier interpolation of the phonon frequencies, +especially in the long-wavelength limit |q| --> 0. +This example is based on +Note that only selected features are compatible with dynamical quadrupoles. +Please consult + +https://docs.abinit.org/tests/tutorespfn/Input/tlw_1.abi +""" + +import sys +import os +import abipy.abilab as abilab +import abipy.data as abidata + +from abipy import flowtk + + +def build_flow(options): + """ + Create a `Flow` for phonon calculations including + eps_inf, Born effective charges and dynamical quadrupoles + """ + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + pseudos = abidata.pseudos("14si.fhi") + + # Initialize the structure from an abinit string + # Other approaches (e.g. from cif files) are available as well. + structure = abilab.Structure.from_abistring(""" +#Definition of the unit cell +#*************************** +acell 10.102 10.6 9.4 +rprim 0.0000000000 0.5000000000 0.500000000 + 0.5000000000 0.0000000000 0.500000000 + 0.5000000000 0.5000000000 0.000000000 + + +#Definition of the atom types and positions +#****************************************** +ntypat 1 +znucl 14 +natom 2 +typat 2*1 +xred + 0.0500000 -0.0500000 0.0000000 + 0.2000000 0.3000000 0.2000000 +""") + # Build input for GS calculation + scf_input = abilab.AbinitInput(structure, pseudos=pseudos) + + # We use parameters similar to the ones in https://docs.abinit.org/tests/tutorespfn/Input/tlw_4.abi + scf_input.set_vars( + nband=4, + ecut=4.0, + ngkpt=[4, 4, 4], + shiftk=[ + [0.5, 0.5, 0.5], + [0.5, 0.0, 0.0], + [0.0, 0.5, 0.0], + [0.0, 0.0, 0.5], + ], + diemac=13.0, + nstep=100, + #tolvrs=1.0e-10, + tolvrs=1.0e-18, # This is the value used in tlw_4.abi + # but it is not always possible to reach this precision in more complex systems. + useylm=1, + ixc=7 + #iomode=3, + #paral_kgb=1, + ) + + # At the time of writing, Flexoelectric calculations are implemented only for + # NC LDA scalar-relativistic pseudos without non-linear core corrections. + # This section shows how to use the Pseudo API to perform this kind of check + # before runnnig the calculation. + for pseudo in scf_input.pseudos: + # print(pseudo) + if not pseudo.isnc: + raise RuntimeError("Only NC pseudos are compatible with Q*") + if pseudo.has_nlcc: + raise RuntimeError("NLCC is not compatible with Q*") + #if pseudo.xc.type != "LDA": + # raise RuntimeError("Only LDA is compatible with Q*") + + # Initialize the flow + flow = flowtk.Flow(workdir=options.workdir, manager=options.manager) + + # Compute phonons on the ddb_ngqpt q-mesh. + # Include Born effective charges and dynamical quadrupoles via `with_quad=True`. + # + ddb_ngqpt = [1, 1, 1] + #ddb_ngqpt = [4, 4, 4] + ph_work = flowtk.PhononWork.from_scf_input(scf_input, qpoints=ddb_ngqpt, + is_ngqpt=True, with_becs=True, with_flexoe=True) + + # Add the phonon work to the flow + flow.register_work(ph_work) + + return flow + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/run_frohlich_zpr.py b/abipy/examples/flows/run_frohlich_zpr.py index ffd94d9ce..2d8c73ed4 100755 --- a/abipy/examples/flows/run_frohlich_zpr.py +++ b/abipy/examples/flows/run_frohlich_zpr.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Estimate the ZPR at band edges with the generalized Frohlich model -================================================================== +e-ph ZPR at the band edges with the generalized Frohlich model +============================================================== Flow to estimate the zero-point renormalization at the band edges using the generalized Frohlich model. The flow uses DFPT to compute diff --git a/abipy/examples/flows/run_frohlich_zpr_from_ddb.py b/abipy/examples/flows/run_frohlich_zpr_from_ddb.py index c024cdbfd..911a19a03 100755 --- a/abipy/examples/flows/run_frohlich_zpr_from_ddb.py +++ b/abipy/examples/flows/run_frohlich_zpr_from_ddb.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Estimate the ZPR of band edges with generalized Frohlich mode -============================================================= +e-ph ZPR of band edges with generalized Frohlich model +====================================================== Flow to estimate the zero-point renormalization at the band edges using the generalized Frohlich model. The flow uses DFPT to compute diff --git a/abipy/examples/flows/run_from_files.py b/abipy/examples/flows/run_from_files.py index 088d73d7a..f18856dd5 100755 --- a/abipy/examples/flows/run_from_files.py +++ b/abipy/examples/flows/run_from_files.py @@ -3,7 +3,7 @@ Starting a Flow from external files =================================== -This example shows how to build a flow for Nscf calculations +This example shows how to build a flow for NSCF calculations in which the dependency is given by an external density file. """ import sys @@ -67,10 +67,9 @@ def build_flow(options): # Note that the file must exist when the work is created # Use the standard approach based on tasks and works if # there's a node who needs a file produced in the future. - work = flowtk.Work() + work = flow.new_work() den_filepath = abidata.ref_file("si_DEN.nc") work.register_nscf_task(nscf_input, deps={den_filepath: "DEN"}) - flow.register_work(work) return flow diff --git a/abipy/examples/flows/run_gaas_ebands_soc.py b/abipy/examples/flows/run_gaas_ebands_soc.py index 9f5a5ef98..7994d1541 100755 --- a/abipy/examples/flows/run_gaas_ebands_soc.py +++ b/abipy/examples/flows/run_gaas_ebands_soc.py @@ -1,10 +1,10 @@ #!/usr/bin/env python r""" -Band structure with/without spin-orbit -====================================== +Band structure with/without SOC +================================ This example shows how to compute the band structure of GaAs with and without spin-orbit term. -We essentially build two BandStructureWork inside a loop over nspinor in [1, 2] +We build two BandStructureWork objects inside a loop over nspinor in [1, 2] nspinor = 1 corresponds to a standard collinear calculation for non-magnetic systems while nspinor = 2 gives us the non-collinear case with spinor wavefunctions required for the treatment of SOC. Some of the variables in the input files must be changed depending on the value of nspinor. diff --git a/abipy/examples/flows/run_gkq.py b/abipy/examples/flows/run_gkq.py index 6387eda8b..5dfdcd185 100755 --- a/abipy/examples/flows/run_gkq.py +++ b/abipy/examples/flows/run_gkq.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Flow to compute e-ph matrix elements along a q-path -=================================================== +e-ph matrix elements along a q-path +=================================== This example shows how to compute the e-ph matrix elements in AlAs along a q-path with AbiPy flows. The final results are stored in the GKQ.nc file (one file for q-point) in the outdata of each task. diff --git a/abipy/examples/flows/run_gruneisen_abinit.py b/abipy/examples/flows/run_gruneisen_abinit.py index 3391a6b4e..9a117de4b 100755 --- a/abipy/examples/flows/run_gruneisen_abinit.py +++ b/abipy/examples/flows/run_gruneisen_abinit.py @@ -49,14 +49,13 @@ def build_flow(options): 0.5, 0.0, 0.0, 0.5, 0.5, 0.5], diemac=12.0, - iomode=3, + #iomode=3, tolvrs=1.0e-18, ) + # NB: k-mesh in gs_inp and ngqpt q-mesh must be commensurate. from abipy.flowtk.gruneisen import GruneisenWork voldelta = gs_inp.structure.volume * 0.02 - - # k-mesh and q-mesh must be commensurate. work = GruneisenWork.from_gs_input(gs_inp, voldelta, ngqpt=[2, 2, 2], with_becs=False) flow.register_work(work) diff --git a/abipy/examples/flows/run_gs_vs_kpts.py b/abipy/examples/flows/run_gs_vs_kpts.py new file mode 100755 index 000000000..ad2a13696 --- /dev/null +++ b/abipy/examples/flows/run_gs_vs_kpts.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +r""" +Convergence studiy with different k-meshes +========================================== + +In this example, +""" +import sys +import os + +import abipy.abilab as abilab +import abipy.flowtk as flowtk +import abipy.data as abidata + + +def build_flow(options): + """ + Build and return a flow for GS properties with different k-meshes + """ + # Set working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + structure = abilab.Structure.from_file(abidata.cif_file("gan2.cif")) + pseudos = abidata.pseudos("Ga.oncvpsp", "N.oncvpsp") + + scf_input = abilab.AbinitInput(structure, pseudos) + + scf_input.set_vars( + ecut=15, # Too low. + nstep=50, # Increase default + tolvrs=1e-8, + ) + + flow = flowtk.Flow(workdir=options.workdir) + + from abipy.flowtk.gs_works import GsKmeshConvWork + nksmall_list = [2, 4, 6, 8] + flow.register_work(GsKmeshConvWork.from_scf_input(scf_input, nksmall_list)) + + return flow + + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) + diff --git a/abipy/examples/flows/run_gwconv_ecuteps.py b/abipy/examples/flows/run_gwconv_ecuteps.py index 1c859b816..0b5874aa1 100755 --- a/abipy/examples/flows/run_gwconv_ecuteps.py +++ b/abipy/examples/flows/run_gwconv_ecuteps.py @@ -113,7 +113,8 @@ def build_flow(options): sigma_inputs = list(sig_inp.generate(ecuteps=ecuteps_list)) for scr_task in scr_work: - sigma_conv = flowtk.SigmaConvWork(wfk_node=bands.nscf_task, scr_node=scr_task, sigma_inputs=sigma_inputs) + sigma_conv = flowtk.SigmaConvWork(wfk_node=bands.nscf_task, scr_node=scr_task, + sigma_inputs=sigma_inputs) flow.register_work(sigma_conv) return flow diff --git a/abipy/examples/flows/run_gwr_g0w0.py b/abipy/examples/flows/run_gwr_g0w0.py new file mode 100755 index 000000000..03591b7fb --- /dev/null +++ b/abipy/examples/flows/run_gwr_g0w0.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python +r""" +GWR flow with convergence studies +================================= + +This script shows how to compute the G0W0 corrections in silicon. +More specifically, we build a flow to analyze the convergence of the QP corrections +wrt to the number of bands in the self-energy. More complicated convergence studies +can be implemented on the basis of this example. +""" + +import os +import sys +import abipy.data as data +import abipy.abilab as abilab + +from abipy import flowtk + + +def build_flow(options): + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_","flow_") + + #from abipy.flowtk.psrepos import get_repo_from_name + #pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("stringent") + + scf_input = abilab.AbinitInput(structure=data.cif_file("si.cif"), + pseudos=data.pseudos("14si.pspnc")) + + # Global variables. + scf_input.set_vars( + ecut=6, + tolvrs=1e-8, + nband=4, + paral_kgb=1, + ) + scf_input.set_kmesh( + ngkpt=[2, 2, 2], + shiftk=[0.0, 0.0, 0.0], # IMPORTANT: k-grid for GWR must be Gamma-centered. + ) + + flow = flowtk.Flow(workdir=options.workdir) + + # GS-SCF run to get the DEN, followed by direct diago to obtain green_nband bands. + from abipy.flowtk.gwr_works import DirectDiagoWork, GWRSigmaConvWork + green_nband = -1 # -1 this means full diago + diago_work = DirectDiagoWork.from_scf_input(scf_input, green_nband) + flow.register_work(diago_work) + + # Build template for GWR. + gwr_template = scf_input.make_gwr_qprange_input(gwr_ntau=6, nband=8, ecuteps=4) + + # Two possibilities: + # 1) Change the value of one variable: + + varname_values = ("nband", [8, 12, 14]) + + # or take the Cartesian product of two or more variables with e.g.: + # + #varname_values = [ + # ("gwr_ntau", [6, 8]), + # ("ecuteps", [2, 4]), + #] + + gwr_work = GWRSigmaConvWork.from_varname_values( + varname_values, gwr_template, den_node=diago_work[0], wfk_node=diago_work[1]) + flow.register_work(gwr_work) + + return flow + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/run_ht_si_bsemdf.py b/abipy/examples/flows/run_ht_si_bsemdf.py index 99dc632d3..b9a19e04d 100755 --- a/abipy/examples/flows/run_ht_si_bsemdf.py +++ b/abipy/examples/flows/run_ht_si_bsemdf.py @@ -1,6 +1,6 @@ #!/usr/bin/env python r""" -Bethe-Salpeter Flow with factory functions +Bethe-Salpeter flow with factory functions ========================================== Calculation of the BSE spectrum with the High-throuhput interface (factory functions). diff --git a/abipy/examples/flows/run_ht_si_ebands.py b/abipy/examples/flows/run_ht_si_ebands.py index 76f5f0740..80d9afe06 100755 --- a/abipy/examples/flows/run_ht_si_ebands.py +++ b/abipy/examples/flows/run_ht_si_ebands.py @@ -1,6 +1,6 @@ #!/usr/bin/env python r""" -Band structure Flow with factory functions +Band structure flow with factory functions ========================================== This example show how to build a flow to compute the band structure and the DOS of silicon. diff --git a/abipy/examples/flows/run_ht_si_g0w0ppm.py b/abipy/examples/flows/run_ht_si_g0w0ppm.py index 6baff6bbd..17e427a75 100755 --- a/abipy/examples/flows/run_ht_si_g0w0ppm.py +++ b/abipy/examples/flows/run_ht_si_g0w0ppm.py @@ -1,6 +1,6 @@ #!/usr/bin/env python r""" -G0W0 Flow with factory functions +G0W0 flow with factory functions ================================ G0W0 corrections with the HT interface. diff --git a/abipy/examples/flows/run_ldaus.py b/abipy/examples/flows/run_ldaus.py index 0aee091dc..550857348 100755 --- a/abipy/examples/flows/run_ldaus.py +++ b/abipy/examples/flows/run_ldaus.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Flow for LDA+U calculations -=========================== +LDA+U calculations +================== This example shows how to compute the LDA+U band structure of NiO with PAW for several values of U-J. diff --git a/abipy/examples/flows/run_lumi_Eu_doped_SLA.py b/abipy/examples/flows/run_lumi_Eu_doped_SLA.py new file mode 100755 index 000000000..31ddaede6 --- /dev/null +++ b/abipy/examples/flows/run_lumi_Eu_doped_SLA.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python +r""" +Delta SCF constrained occupation method calculation, to determine luminescent properties. +========================================================================================= + +This example shows how to compute the luminescent properties of Eu doped phosphor. +It uses a 36 atoms cell of SrLiAl3N4. Two non-equivalent Sr sites are availabe for Eu, resulting +in two independent LumiWork. The creation of the supercells is done with make_doped_supercell(). + +Steps, for each structure: +1) Relaxation in the ground state +2) Relaxation in the excited state, starting from the relaxed ground state. Created at run-time +3) Scf computation in the relaxed/unrelaxed ground/excited state (4 computations). + +Even if we use minimal settings, the workflow takes around one hour to run on one core. +Filepaths of the 6 runs are stored in outdata/lumi.json of each work +A quick post-processing is automatically done at the end of a LumiWork +and stored in outdata/Delta_SCF.json of each work, with relevant luminescent properties +(ZPL energy, Stoke Shift, \Delta Q,...), see abipy/lumi/delta_scf.py +""" + +import sys +import os +import abipy.abilab as abilab +import abipy.flowtk as flowtk +import abipy.data as abidata +from abipy.core.structure import Structure +from abipy.flowtk.lumi_works import LumiWork + +def get_non_eq_sites(structure,replaced_atom): + ### return a list of positions of non-equivalent sites for the replaced atom. ### + irred=structure.spget_equivalent_atoms().eqmap # mapping from inequivalent sites to atoms sites + positions=structure.get_symbol2indices()[replaced_atom] # get indices of the replaced atom + + index_different_sites=[] + + for i in positions: + if len(irred[i]) != 0: + index_different_sites.append(irred[i][0]) + + return(index_different_sites) + + +def make_doped_supercell(prim_structure,supercell_size,replaced_atom,dopant_atom): + #return a list of doped supercell structure, one for each non-equivalent site of the replaced atom + my_structure=prim_structure.copy() + my_structure.make_supercell(supercell_size) + + list_ineq_pos=get_non_eq_sites(my_structure,replaced_atom) + + doped_structure_list=[] + + for pos in list_ineq_pos: + final_structure=my_structure.copy() + final_structure.replace(pos,dopant_atom) + doped_structure_list.append(final_structure) + + return doped_structure_list + + +def scf_inp(structure): + pseudos = abidata.pseudos("Eu.xml", "Sr.xml","Al.xml","N.xml","Li.xml") + + gs_scf_inp = abilab.AbinitInput(structure=structure, pseudos=pseudos) + gs_scf_inp.set_vars(ecut=10, + pawecutdg=20, + chksymbreak=0, + diemac=5, + prtwf=0, + nstep=300, + toldfe=1e-10, + chkprim=0, + nbdbuf=5 # help convergence + ) + + + # Set DFT+U and spinat parameters according to chemical symbols. + #symb2spinat = {"Eu": [0, 0, 7]} + #symb2luj = {"Eu": {"lpawu": 3, "upawu": 7, "jpawu": 0.7}} + + #gs_scf_inp.set_usepawu(usepawu=1, symb2luj=symb2luj) + #gs_scf_inp.set_spinat_from_symbols(symb2spinat, default=(0, 0, 0)) + + ### Setting of the occupations, for spin up-dn in the ground/excited state + ### Only valid for Eu doped + n_val = gs_scf_inp.num_valence_electrons + n_cond = round(15) + + spin_up_gs = f"\n{int((n_val - 7) / 2)}*1 7*1 {n_cond}*0" + spin_up_ex = f"\n{int((n_val - 7) / 2)}*1 6*1 0 1 {n_cond - 1}*0" + spin_dn = f"\n{int((n_val - 7) / 2)}*1 7*0 {n_cond}*0" + + nsppol = 2 + shiftk = [0, 0, 0] + ngkpt = [1, 1, 1] + + # Build SCF input for the ground state configuration. + gs_scf_inp.set_kmesh_nband_and_occ(ngkpt, shiftk, nsppol, [spin_up_gs, spin_dn]) + # Build SCF input for the excited configuration. + exc_scf_inp = gs_scf_inp.deepcopy() + exc_scf_inp.set_kmesh_nband_and_occ(ngkpt, shiftk, nsppol, [spin_up_ex, spin_dn]) + + return gs_scf_inp,exc_scf_inp + + + +def relax_kwargs(): + + # Dictionary with input variables to be added for performing structural relaxations. + relax_kwargs = dict( + ecutsm=0.5, + toldff=1e-4, # TOO HIGH, just for testing purposes. + tolmxf=1e-3, # TOO HIGH, just for testing purposes. + ionmov=2, + chkdilatmx=0, + ) + + relax_kwargs_gs=relax_kwargs.copy() + relax_kwargs_gs['optcell']=0 # in the ground state, allow relaxation of the cell + + relax_kwargs_ex=relax_kwargs.copy() + relax_kwargs_ex['optcell']=0 # in the excited state, no relaxation of the cell + + return relax_kwargs_gs, relax_kwargs_ex + + +def build_flow(options): + + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + flow = flowtk.Flow(options.workdir, manager=options.manager) + + #Construct the two structures (2 non-eq. sites for Sr) from the primitive cell of SLA (SrAlLi3N4) + + #prim_structure=structure.Structure.from_file('SLA_prim.cif') + prim_structure=Structure.from_file(abidata.cif_file("SLA_prim.cif")) + supercell_matrix=[1,1,1] # Too small, just for test + strus=prim_structure.make_doped_supercells(supercell_matrix,'Sr','Eu') + + + ####### Delta SCF part of the flow ####### + + # Create one LumiWork per structure + for stru in strus: + gs_scf_inp, exc_scf_inp = scf_inp(stru) + relax_kwargs_gs, relax_kwargs_ex = relax_kwargs() + lumi_work=LumiWork.from_scf_inputs(gs_scf_inp, exc_scf_inp, relax_kwargs_gs, relax_kwargs_ex) + flow.register_work(lumi_work) + + return flow + + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == '__main__': + sys.exit(main()) + diff --git a/abipy/examples/flows/run_lumi_NV_center.py b/abipy/examples/flows/run_lumi_NV_center.py new file mode 100755 index 000000000..f7b48c0cc --- /dev/null +++ b/abipy/examples/flows/run_lumi_NV_center.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python +r""" +Delta SCF constrained occupation method calculation, to determine luminescent properties. +========================================================================================= + +This example shows how to compute the luminescent properties of the NV- center in diamond. +It uses a 64 atoms supercell, where one C atom was replaced by one N atom and one vacancy was created. +See Fig.3 of https://doi.org/10.1103/PhysRevB.104.045303 for the setting of electron occupation +in the ground/excited state. +Steps: +1) Relaxation in the ground state +2) Relaxation in the excited state, starting from the relaxed ground state. Created at run-time +3) Scf computation in the relaxed/unrelaxed ground/excited state (4 computations). + +Even if we use minimal settings, the workflow takes a few minutes to run on one core. +Filepaths of the 6 runs are stored in /w0/outdata/lumi.json +A quick post-processing is automatically done at the end of a LumiWork +and stored in /w0/outdata/Delta_SCF.json, with relevant luminescent properties +(ZPL energy, Stoke Shift, \Delta Q,...), see abipy/lumi/delta_scf.py +""" + +import sys +import os +import abipy.abilab as abilab +import abipy.flowtk as flowtk +import abipy.data as abidata +from abipy.core.structure import Structure +from abipy.flowtk.lumi_works import LumiWork + + +def scf_inp(structure): + pseudos = abidata.pseudos("N.psp8", "C.psp8") + + gs_scf_inp = abilab.AbinitInput(structure=structure, pseudos=pseudos) + gs_scf_inp.set_vars(ecut=10, ### too low, just for example! + chksymbreak=0, + diemac=5, + prtwf=0, + nstep=300, + toldfe=1e-10, + chkprim=0, + cellcharge=-1 ### Negatively charged NV center + ) + + ### Setting of the occupations, for spin up-dn in the ground/excited state + ### Only valid for NV center in this particular cell. + n_val = gs_scf_inp.num_valence_electrons + n_cond = round(10) + + spin_up_gs = f"\n{int((n_val - 3) / 2)}*1 1 1 1 {n_cond}*0" + spin_up_ex = f"\n{int((n_val - 3) / 2)}*1 1 1 1 {n_cond}*0" + spin_dn_gs = f"\n{int((n_val - 3) / 2)}*1 1 0 0 {n_cond}*0" + spin_dn_ex = f"\n{int((n_val - 3) / 2)}*1 0 0.5 0.5 {n_cond}*0" + + nsppol = 2 + + #Dealing with supercell, Gamma only calculation + shiftk = [0, 0, 0] + ngkpt = [1, 1, 1] + + # Build SCF input for the ground state configuration. + gs_scf_inp.set_kmesh_nband_and_occ(ngkpt, shiftk, nsppol, [spin_up_gs, spin_dn_gs]) + # Build SCF input for the excited configuration. + exc_scf_inp = gs_scf_inp.deepcopy() + exc_scf_inp.set_kmesh_nband_and_occ(ngkpt, shiftk, nsppol, [spin_up_ex, spin_dn_ex]) + + return gs_scf_inp,exc_scf_inp + + +def relax_kwargs(): + + # Dictionary with input variables to be added for performing structural relaxations. + relax_kwargs = dict( + ecutsm=0.5, + toldff=1e-5, # TOO HIGH, just for testing purposes. + tolmxf=1e-4, # TOO HIGH, just for testing purposes. + ionmov=2, + chkdilatmx=0, + ) + # Relaxation settings could be different between excited and ground state... + relax_kwargs_gs=relax_kwargs.copy() + relax_kwargs_gs['optcell']=0 # in the ground state, no relaxation of the cell + # Could be different! + + relax_kwargs_ex=relax_kwargs.copy() + relax_kwargs_ex['optcell']=0 # in the excited state, no relaxation of the cell + + return relax_kwargs_gs, relax_kwargs_ex + + +def build_flow(options): + + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + flow = flowtk.Flow(options.workdir, manager=options.manager) + + #Construct the structure + + stru=Structure.from_file(abidata.cif_file("NV_center_64_at_sc.cif")) + + ####### Delta SCF part of the flow ####### + + gs_scf_inp,exc_scf_inp = scf_inp(stru) + + relax_kwargs_gs, relax_kwargs_ex = relax_kwargs() + lumi_work=LumiWork.from_scf_inputs(gs_scf_inp, exc_scf_inp, relax_kwargs_gs, relax_kwargs_ex,four_points=True) + + flow.register_work(lumi_work) + + return flow + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/abipy/examples/flows/run_mgb2_edoses.py b/abipy/examples/flows/run_mgb2_edoses.py index e5453d725..7ff7fe7f9 100755 --- a/abipy/examples/flows/run_mgb2_edoses.py +++ b/abipy/examples/flows/run_mgb2_edoses.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Flow for convergence studies of e-DOS wrt ngkpt -=============================================== +Convergence studies of e-DOS wrt ngkpt +====================================== This examples shows how to build a Flow to compute the band structure and the electron DOS of MgB2 with different k-point samplings. @@ -61,9 +61,6 @@ def build_flow(options): table = abilab.PseudoTable(abidata.pseudos("12mg.pspnc", "5b.pspnc")) pseudos = table.get_pseudos_for_structure(structure) - nval = structure.num_valence_electrons(pseudos) - #print(nval) - inputs = make_scf_nscf_inputs(structure, pseudos) scf_input, nscf_input, dos_inputs = inputs[0], inputs[1], inputs[2:] diff --git a/abipy/examples/flows/run_mgb2_phonons_nkpt_tsmear.py b/abipy/examples/flows/run_mgb2_phonons_nkpt_tsmear.py index 1160bee6e..4388324df 100755 --- a/abipy/examples/flows/run_mgb2_phonons_nkpt_tsmear.py +++ b/abipy/examples/flows/run_mgb2_phonons_nkpt_tsmear.py @@ -1,9 +1,9 @@ #!/usr/bin/env python r""" -Flow to analyze the convergence of phonons in metals wrt ngkpt and tsmear -========================================================================= +Convergence of phonons in metals wrt ngkpt and tsmear +===================================================== -This examples shows how to build a Flow to compute the +This examples shows how to build a flow to compute the phonon band structure in a metallic system (MgB2) with different k-point samplings and values of the electronic smearing tsmear """ @@ -15,7 +15,7 @@ from abipy import flowtk -def make_scf_input(structure, ngkpt, tsmear, pseudos, paral_kgb=1): +def make_scf_input(structure, ngkpt, tsmear, pseudos, paral_kgb=0): """Build and return Ground-state input for MgB2 given ngkpt and tsmear.""" scf_inp = abilab.AbinitInput(structure, pseudos=pseudos) @@ -52,14 +52,13 @@ def build_flow(options): # Build work of GS task. Each gs_task uses different (ngkpt, tsmear) values # and represent the starting point of the phonon works. - scf_work = flowtk.Work() + scf_work = flow.new_work() ngkpt_list = [[4, 4, 4], [8, 8, 8]] #, [12, 12, 12]] tsmear_list = [0.01, 0.02] # , 0.04] for ngkpt in ngkpt_list: for tsmear in tsmear_list: scf_input = make_scf_input(structure, ngkpt, tsmear, pseudos) scf_work.register_scf_task(scf_input) - flow.register_work(scf_work) # This call uses the information reported in the GS task to # compute all the independent atomic perturbations corresponding to a [2, 2, 2] q-mesh. diff --git a/abipy/examples/flows/run_nonlinear.py b/abipy/examples/flows/run_nonlinear.py index 07451b3c3..f694d158e 100755 --- a/abipy/examples/flows/run_nonlinear.py +++ b/abipy/examples/flows/run_nonlinear.py @@ -1,11 +1,10 @@ #!/usr/bin/env python r""" -Flow for Non-linear optic with DFPT -=================================== +Non-linear optical properties with DFPT +======================================= Flow to compute non-linear optical properties with DFPT (static limit). """ - import sys import os import abipy.flowtk as flowtk @@ -13,8 +12,7 @@ from abipy import abilab - -minimum_abinit_version = "8.5.2" +# NB: This flow requires abinit >= "8.5.2" def make_scf_input(ecut=10, ngkpt=(8, 8, 8)): @@ -49,7 +47,7 @@ def make_scf_input(ecut=10, ngkpt=(8, 8, 8)): kptopt=1, ) - gs_inp.set_mnemonics(True) + #gs_inp.set_mnemonics(True) return gs_inp @@ -66,7 +64,6 @@ def build_flow(options): if os.getenv("READTHEDOCS", False): __name__ = None import tempfile - # Temporarily disabled in v8.8.2 options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) build_flow(options).graphviz_imshow() @@ -78,8 +75,6 @@ def main(options): flow_main is a decorator implementing the command line interface. Command line args are stored in `options`. """ - # Temporarily disabled in v8.8.2 - #return 0 return build_flow(options) diff --git a/abipy/examples/flows/run_optic.py b/abipy/examples/flows/run_optic.py index 06b6f26ce..5aa4c7640 100755 --- a/abipy/examples/flows/run_optic.py +++ b/abipy/examples/flows/run_optic.py @@ -3,7 +3,7 @@ Optic Flow ========== -This example shows how to create a flow to compute optical spectra with Optic +This example shows how to create a Flow to compute optical spectra with Optic (independent particle approximation, no local field effects) and perform a convergence study with respect to the k-point sampling. """ diff --git a/abipy/examples/flows/run_phfrozen_ebands.py b/abipy/examples/flows/run_phfrozen_ebands.py index ad4f92460..ad5f7c455 100755 --- a/abipy/examples/flows/run_phfrozen_ebands.py +++ b/abipy/examples/flows/run_phfrozen_ebands.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Flow for e-Bands with frozen phonon -=================================== +e-Bands with frozen phonon +========================== Electronic band structure of silicon in a distorted geometry (frozen phonon at q=0) """ diff --git a/abipy/examples/flows/run_phonons.py b/abipy/examples/flows/run_phonons.py index c38f35847..9f380131d 100755 --- a/abipy/examples/flows/run_phonons.py +++ b/abipy/examples/flows/run_phonons.py @@ -1,13 +1,14 @@ #!/usr/bin/env python r""" -Flow for phonons with DFPT -========================== +Phonons with DFPT +================= This example shows how to compute the phonon band structure of AlAs with AbiPy flows. Symmetries are taken into account: only q-points in the IBZ are generated and for each q-point only the independent atomic perturbations are computed. -The final results (out_DDB, out_DVDB) will be produced automatically at the end of the run -and saved in ``flow_phonons/outdata/``. + +The final results (out_DDB, out_DVDB) are produced automatically at the end of the run +and saved in ``flow_phonons/w1/outdata/``. """ import sys @@ -119,7 +120,7 @@ def main(options): # # Now open the final DDB file with: # -# abiopen.py flow_phonons/outdata/out_DDB +# abiopen.py flow_phonons/w1/outdata/out_DDB # # and invoke anaddb to compute the phonon band structure and the phonon DOS with: # diff --git a/abipy/examples/flows/run_phonons_with_quad.py b/abipy/examples/flows/run_phonons_with_quad.py new file mode 100755 index 000000000..75c36ddeb --- /dev/null +++ b/abipy/examples/flows/run_phonons_with_quad.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python +r""" +Phonons + dynamical quadrupoles +=============================== + +This example shows how to compute the dynamical matrix of GaP on a user-defined q-mesh +including Born effective charges, the macroscopic dielectric matric and the dynamical quadrupoles Q*. +The final results (out_DDB, out_DVDB) will be produced automatically at the end of the run +and saved in ``flow_phonons_with_quad/outdata/``. + +The Q* tensor may be needed to improve the accuracy of the Fourier interpolation of the phonon frequencies, +especially in the long-wavelength limit |q| --> 0. + +This example is based on +Note that only selected features are compatible with dynamical quadrupoles. +Please consult +""" + +import sys +import os +import abipy.abilab as abilab +import abipy.data as abidata + +from abipy import flowtk + + +def build_flow(options): + """ + Create a `Flow` for phonon calculations including + eps_inf, Born effective charges and dynamical quadrupoles + """ + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + pseudos = abidata.pseudos("31-Ga.LDA.fhi", "15-P.LDA.fhi") + + # Initialize the structure from an abinit string + # Other approaches (e.g. from cif files) are available as well. + structure = abilab.Structure.from_abistring(""" + acell 1.0 1.0 1.0 + rprim 0.0 5.023016083002 5.023016083002 + 5.023016083002 0.0 5.023016083002 + 5.023016083002 5.023016083002 0.0 + + # Definition of the atom types and positions + # ****************************************** + ntypat 2 + znucl 31 15 + natom 2 + typat 1 2 + xred + 0.0000000 0.0000000 0.0000000 + 0.2500000 0.2500000 0.2500000 +""") + + # Build input for GS calculation + scf_input = abilab.AbinitInput(structure, pseudos=pseudos) + + # We use parameters similar to the ones in https://docs.abinit.org/tests/tutorespfn/Input/tlw_4.abi + scf_input.set_vars( + nband=4, + ecut=5.0, + ngkpt=[4, 4, 4], + shiftk=[ + [0.5, 0.5, 0.5], + [0.5, 0.0, 0.0], + [0.0, 0.5, 0.0], + [0.0, 0.0, 0.5], + ], + diemac=12.0, + nstep=100, + tolvrs=1.0e-10, + #tolvrs=1.0e-18, # This is the value used in tlw_4.abi + # but it is not always possible to reach this precision in more complex systems. + #useylm=1, + #ixc=7 + #iomode=3, + #paral_kgb=1, + ) + + # At the time of writing, Q* calculations are implemented only for + # NC scalar-relativistic pseudos without non-linear core correction. + # This section shows how to use the Pseudo API to perform this kind of check + # before runnnig the calculation. + for pseudo in scf_input.pseudos: + # print(pseudo) + if not pseudo.isnc: + raise RuntimeError("Only NC pseudos are compatible with Q*") + if pseudo.has_nlcc: + raise RuntimeError("NLCC is not compatible with Q*") + + # Initialize the flow + flow = flowtk.Flow(workdir=options.workdir, manager=options.manager) + + # Compute phonons on the ddb_ngqpt q-mesh. + # Include Born effective charges and dynamical quadrupoles via `with_quad=True`. + # + #ddb_ngqpt = [1, 1, 1] + ddb_ngqpt = [2, 2, 2] + ph_work = flowtk.PhononWork.from_scf_input(scf_input, qpoints=ddb_ngqpt, is_ngqpt=True, + with_becs=True, with_quad=True, ndivsm=5) + + # Add the phonon work to the flow + flow.register_work(ph_work) + + return flow + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/run_phonopy_si.py b/abipy/examples/flows/run_phonopy_si.py index 1203fb798..462aae929 100755 --- a/abipy/examples/flows/run_phonopy_si.py +++ b/abipy/examples/flows/run_phonopy_si.py @@ -1,10 +1,13 @@ #!/usr/bin/env python r""" -Phonopy + Abinit Flow -===================== +Phonopy with AbiPy flow +======================= -This example shows how to compute phonon frequencies with phonopy (supercells and finite-difference method). -This approach could be useful to obtain vibrational properties with XC functionals for which DFPT is not yet implemented. +This example shows how to compute phonon frequencies with phonopy +(supercells and finite-difference method). + +This approach could be useful to obtain vibrational properties with XC functionals +for which DFPT is not yet implemented. .. warning: diff --git a/abipy/examples/flows/run_raman_bse.py b/abipy/examples/flows/run_raman_bse.py index 2d92ac68c..1241d9827 100755 --- a/abipy/examples/flows/run_raman_bse.py +++ b/abipy/examples/flows/run_raman_bse.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Raman Flow with BSE and frozen phonon -===================================== +Raman with BSE and frozen phonon +================================ This script shows how to perform a Raman calculation with excitonic effects included with the BSE formalism. diff --git a/abipy/examples/flows/run_raman_optic.py b/abipy/examples/flows/run_raman_optic.py index b7f4fe5eb..409edda50 100755 --- a/abipy/examples/flows/run_raman_optic.py +++ b/abipy/examples/flows/run_raman_optic.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Raman Flow with independent-particle approximation (optic) -========================================================== +Raman with independent-particle approximation (optic) +===================================================== This script shows how to perform a Raman calculation with excitonic effects included with the BSE formalism. diff --git a/abipy/examples/flows/run_relax.py b/abipy/examples/flows/run_relax.py index bb10386fd..35be07502 100755 --- a/abipy/examples/flows/run_relax.py +++ b/abipy/examples/flows/run_relax.py @@ -1,6 +1,6 @@ #!/usr/bin/env python r""" -Relaxation Flow +Relaxation flow =============== This script shows how to perform a structural relaxation in two steps: @@ -27,8 +27,8 @@ def make_ion_ioncell_inputs(paral_kgb=0): global_vars = dict( ecut=4, - ngkpt=[4,4,4], - shiftk=[0,0,0], + ngkpt=[4, 4, 4], + shiftk=[0, 0, 0], nshiftk=1, chksymbreak=0, paral_kgb=paral_kgb, @@ -65,6 +65,8 @@ def make_ion_ioncell_inputs(paral_kgb=0): ntime=3, # To test the restart ) + #print(multi) + ion_inp, ioncell_inp = multi.split_datasets() return ion_inp, ioncell_inp diff --git a/abipy/examples/flows/run_relax_and_ebands.py b/abipy/examples/flows/run_relax_and_ebands.py index 4a1f83c75..315a66fbc 100755 --- a/abipy/examples/flows/run_relax_and_ebands.py +++ b/abipy/examples/flows/run_relax_and_ebands.py @@ -1,9 +1,10 @@ #!/usr/bin/env python r""" -Flow for Relaxation + Bands -=========================== +Relaxation + bands +================== -This script shows how to perform a structural relaxation and a band structure calculation +This script shows how to perform a structural relaxation +followed by a band structure calculation WARNING: The API could change! """ diff --git a/abipy/examples/flows/run_relax_vs_kpts.py b/abipy/examples/flows/run_relax_vs_kpts.py index 62a089041..e5b302da5 100755 --- a/abipy/examples/flows/run_relax_vs_kpts.py +++ b/abipy/examples/flows/run_relax_vs_kpts.py @@ -1,11 +1,11 @@ #!/usr/bin/env python r""" -Relaxation of GaN with different K-meshes -========================================= +Relaxation with different k-meshes +================================== In this example, we employ the relaxation algorithms implemented in Abinit (``ionmov`` and ``optcell``) to find the equilibrium configuration of GaN (atomic positions and lattice vectors). -The relaxation is done with different k-meshes to monitor the convergence of the results. +The relaxation is performed with different k-meshes to monitor the convergence of the results. You will observe a change of the equilibrium parameters with respect to the k-point mesh. Note the we are using pseudopotentials generated with the GGA which tends to diff --git a/abipy/examples/flows/run_relax_vs_kpts_tsmear.py b/abipy/examples/flows/run_relax_vs_kpts_tsmear.py index eb4f24b43..6a5561ba4 100755 --- a/abipy/examples/flows/run_relax_vs_kpts_tsmear.py +++ b/abipy/examples/flows/run_relax_vs_kpts_tsmear.py @@ -1,7 +1,7 @@ #!/usr/bin/env python r""" -Relaxation of GaN with different K-meshes -========================================= +Relaxation of Al with different k-meshes and tsmear +=================================================== In this example, we employ the relaxation algorithms implemented in Abinit (``ionmov`` and ``optcell``) to find the equilibrium configuration of GaN (atomic positions and lattice vectors). @@ -24,7 +24,8 @@ def relax_input(tsmear, nksmall): """ Crystalline aluminum: optimization of the lattice parameter - at fixed number of k points and broadening. Similar to tbase4_1.in with minor + at fixed number of k-points and broadening. + Similar to tbase4_1.in with minor modifications. """ #structure = abilab.Structure.fcc() inp = abilab.AbinitInput(structure=abidata.ucells.structure_from_ucell("Al"), diff --git a/abipy/examples/flows/run_screening.py b/abipy/examples/flows/run_screening.py new file mode 100755 index 000000000..5e8b1f4ae --- /dev/null +++ b/abipy/examples/flows/run_screening.py @@ -0,0 +1,132 @@ +#!/usr/bin/env python +r""" +Screening computation with different parameters +=============================================== + +This examples shows how to compute the SCR file with different number of bands +and different values of ecuteps in order to prepare further GW convergence studies. +Each screening calculation is automatically parallelized over q-points and the +partial SCR files are then merged with the mrgscr utility. +The total SCR file is available in the outdata directory of the ScreeningWork. +""" +import sys +import os +import numpy as np + +import abipy.abilab as abilab +import abipy.data as abidata +import abipy.flowtk as flowtk + + +def build_flow(options): + + # Working directory (default is the name of the script with '.py' removed and "run_" replaced by "flow_") + if not options.workdir: + options.workdir = os.path.basename(sys.argv[0]).replace(".py", "").replace("run_", "flow_") + + + # Initialize structure from string and a minimalistic variables: + # natom, acell, rprimd and xred_symbols. + + structure = abilab.Structure.from_abistring(""" +natom 2 +acell 3*10.26 # Experimental lattice constants +rprim 0.0 0.5 0.5 # FCC primitive vectors (to be scaled by acell) + 0.5 0.0 0.5 + 0.5 0.5 0.0 + +xred_symbols + 0.0 0.0 0.0 Si + 0.25 0.25 0.25 Si +""") + + # Build the SCF input. + scf_inp = abilab.AbinitInput(structure=structure, pseudos=abidata.pseudos("14si.pspnc")) + + #nscf_nband_list = np.arange(2, 8, 2) + nscf_nband_list = [25] + max_nscf_nband = max(nscf_nband_list) + + #ecuteps_list = np.arange(2, 8, 2) + ecuteps_list = [2] + max_ecuteps = max(ecuteps_list) + + print("Number of valence electrons in the unit cell:", scf_inp.num_valence_electrons) + + scf_inp.set_vars( + ecut=4, + nband=8, + ngkpt=[4, 4, 4], + shiftk=[0, 0, 0], + tolvrs=1e-8, + timopt=-1, # TODO: Add abirun.py option to extract timing data. + #paral_kgb=1, + #iomode=3, + ) + + #ebands_inp = scf_inp.make_ebands_input(ndivsm=15) + + # Build NSCF input on a k-mesh including empty states. + nscf_inp = scf_inp.new_with_vars( + nband=max_nscf_nband, + #nbdbuf=10 + tolwfr=1e-20, # Too high. Should be ~1e-20 + iscf=-2 + ) + + flow = flowtk.Flow(workdir=options.workdir, manager=options.manager) + + # Band structure work to produce the WFK file with a NSCF run + empty states. + bands_work = flowtk.BandStructureWork(scf_inp, nscf_inp) # dos_inputs=[nscf_inp]) + flow.register_work(bands_work) + + for ecuteps in ecuteps_list: + for nscf_nband in nscf_nband_list: + + scr_inp = nscf_inp.new_with_vars( + optdriver=3, + ecuteps=ecuteps, + nband=nscf_nband, + ) + + # Compute SCR file by splitting all the q-points. + scr_work = flowtk.ScreeningWork.from_nscf_task(bands_work.nscf_task, scr_inp) + + # IMPORTANT: + # If you alredy have a WFK file and you want to skip the SCF + NSCF part + # build the scr_work using `from_wkf_filepath` instead of `from_nscf_task` e.g.: + + #scr_work = ScreeningWork.from_wfk_file(wfk_filepath, scr_inp) + + flow.register_work(scr_work) + + # This part is optional: + # 1) set_readme sets the string that will be used to generate a human readable README.md file + # 2) set_abipy_meta_json can be used to defined metadata that will be written to abipy_meta.json. + scr_work.set_readme(f"SCR computation with ecuteps={ecuteps} and nband={nscf_nband}") + scr_work.set_abipy_meta_json(dict(ecuteps=ecuteps, nband=nscf_nband)) + + return flow + + +# This block generates the thumbnails in the AbiPy gallery. +# You can safely REMOVE this part if you are using this script for production runs. +if os.getenv("READTHEDOCS", False): + __name__ = None + import tempfile + options = flowtk.build_flow_main_parser().parse_args(["-w", tempfile.mkdtemp()]) + build_flow(options).graphviz_imshow() + + +@flowtk.flow_main +def main(options): + """ + This is our main function that will be invoked by the script. + flow_main is a decorator implementing the command line interface. + Command line args are stored in `options`. + """ + return build_flow(options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/examples/flows/run_si_ebands.py b/abipy/examples/flows/run_si_ebands.py index bd2237a61..ce4ab03fc 100755 --- a/abipy/examples/flows/run_si_ebands.py +++ b/abipy/examples/flows/run_si_ebands.py @@ -1,6 +1,6 @@ #!/usr/bin/env python r""" -Band structure Flow +Band structure flow =================== Flow to compute the band structure of silicon. diff --git a/abipy/examples/flows/run_si_g0w0.py b/abipy/examples/flows/run_si_g0w0.py index 7df36ed1f..8642e08ab 100755 --- a/abipy/examples/flows/run_si_g0w0.py +++ b/abipy/examples/flows/run_si_g0w0.py @@ -1,6 +1,6 @@ #!/usr/bin/env python r""" -G0W0 Flow with convergence study wrt nband +G0W0 flow with convergence study wrt nband ========================================== This script shows how to compute the G0W0 corrections in silicon. @@ -13,6 +13,7 @@ import sys import abipy.data as data import abipy.abilab as abilab + from abipy import flowtk @@ -24,7 +25,8 @@ def make_inputs(ngkpt, paral_kgb=1): # Dataset 3: calculation of the screening # Dataset 4-5-6: Self-Energy matrix elements (GW corrections) with different values of nband - multi = abilab.MultiDataset(structure=data.cif_file("si.cif"), pseudos=data.pseudos("14si.pspnc"), ndtset=6) + multi = abilab.MultiDataset(structure=data.cif_file("si.cif"), + pseudos=data.pseudos("14si.pspnc"), ndtset=6) # This grid is the most economical, but does not contain the Gamma point. scf_kmesh = dict( diff --git a/abipy/examples/flows/run_sic_relax.py b/abipy/examples/flows/run_sic_relax.py index 4867aa23d..d88ab4495 100755 --- a/abipy/examples/flows/run_sic_relax.py +++ b/abipy/examples/flows/run_sic_relax.py @@ -1,6 +1,6 @@ #!/usr/bin/env python r""" -Relaxation Flow +Relaxation flow =============== This example shows how to build a very simple Flow for the structural relaxation of SiC. @@ -44,10 +44,10 @@ def build_flow(options): # K-points sampling shiftk = [ - [0.5,0.5,0.5], - [0.5,0.0,0.0], - [0.0,0.5,0.0], - [0.0,0.0,0.5] + [0.5, 0.5, 0.5], + [0.5, 0.0, 0.0], + [0.0, 0.5, 0.0], + [0.0, 0.0, 0.5] ] relax_inp.set_kmesh(ngkpt=[4, 4, 4], shiftk=shiftk) diff --git a/abipy/examples/plot/README.txt b/abipy/examples/plot/README.txt index e916827a2..a57b9618f 100644 --- a/abipy/examples/plot/README.txt +++ b/abipy/examples/plot/README.txt @@ -3,16 +3,27 @@ AbiPy Gallery ============= -There are a variety of ways to use the AbiPy post-processing tools, -and most of them are illustrated in the examples in this directory. +There are a variety of ways to use the AbiPy post-processing tools, +and some of them are illustrated in the examples in this directory. +These examples represent an excellent starting point if you need to implement +a customized script to solve your particular problem. +Keep in mind, however, that simple visualization tasks can be easily +automated by just issuing in the terminal:: -Remember that one can also generate a jupyter notebook directly from the command line with -the :ref:`abiopen.py` script and the command:: + abiopen.py FILE --expose - abiopen.py FILE -nb +to generate a predefined list of **matplotlib** plots. +To activate the plotly version (if available) use: -issue +.. code-block:: shell - abiopen.py FILE --expose + abiopen.py FILE --plotly + +Note also that one can generate jupyter-lab notebooks directly from the command line with +abiopen.py_ and the command:: + + abiopen.py FILE -nb + +Add `--classic-notebook` if you prefer classic jupyter notebooks. -to generate plots automatically or use one of the options of :ref:`abiview.py` to plot the results automatically. +Finally, use one of the options of the abiview.py_ script to plot the results automatically. diff --git a/abipy/examples/plot/advanced/plot_eph_flow.py b/abipy/examples/plot/advanced/plot_eph_flow.py new file mode 100755 index 000000000..b9a37ca9b --- /dev/null +++ b/abipy/examples/plot/advanced/plot_eph_flow.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python +r""" +Alas mobility +============= + +This example shows how to plot the electronic band structure, +phonon dispersion, electron linewidths and +the convergence of the electron mobility in the case of AlAs +(see example e-ph mobility flow). +Only electrons are considered, but the script can easily be +extended to holes (and combination of e/h as well). +""" +#%% + +import numpy as np +import matplotlib as mlp +import matplotlib.pyplot as plt +from abipy.abilab import abiopen +import glob +from abipy.eph.rta import RtaRobot + +root = "../../flows/flow_eph_mob/" + +fz = 13 # Fontsize for text, labels,... +mz = 2 # Markersize for dots (linewidths plot) + +fig, axes = plt.subplots(2, 2) +plt.subplots_adjust(wspace=0.35, hspace=0.33) + +axes[0, 0].text(-0.1,1.05, '(a)', size=fz, transform=axes[0, 0].transAxes) +axes[1, 0].text(-0.1,1.05, '(b)', size=fz, transform=axes[1, 0].transAxes) +axes[0, 1].text(-0.1,1.05, '(c)', size=fz, transform=axes[0, 1].transAxes) +axes[1, 1].text(-0.1,1.05, '(d)', size=fz, transform=axes[1, 1].transAxes) + +### +### Upper left : electronic band structure +### + +# Open the GSR file containing the BS +with abiopen(root + "w0/t1/outdata/out_GSR.nc") as abifile: + ebands = abifile.ebands + formula = abifile.structure.formula + +# Add the title to the whole figure containing the pretty formula +pretty_formula = "".join([i for i in formula if i != str(1) and i != " "]) # Remove '1's and spaces +fig.suptitle(pretty_formula) + +# Plot the bands (keep only the grid on the x-axis) +ebands.plot(ax=axes[0,0], show=False, linewidth=1.5, ylims=(-3, 6), ax_grid=False) + +# Set label +axes[0, 0].set_ylabel('Energy (eV)', fontsize=fz) +axes[0, 0].set_xlabel(None) + +### +### Lower left : phonon dispersion +### + +# Open the DDB file and get phonon dispersion +# Can be used to check the phonon dispersion obtained with the e-ph code +with abiopen(root + "w1/outdata/out_DDB") as abifile: + phbst, phdos = abifile.anaget_phbst_and_phdos_files(ndivsm=10) + +# Plot phonon dispersion (keep only the grid on the x-axis) +phbst.phbands.plot(ax=axes[1,0], show=False, units="mev", linewidth=1.5, ax_grid=False) + +# Set label +axes[1, 0].set_ylabel('Frequency (meV)', fontsize=fz) +axes[1, 0].set_xlabel(None) + +### +### Upper right : linewidths +### + +# We get the linewidths for the densest mesh computed +# We open the SIGEPH file corresponding to this task +with abiopen(root + 'w3/t2/outdata/out_SIGEPH.nc') as abifile: + # First within SERTA + qparray = abifile.get_qp_array(mode="ks+lifetimes", rta_type="serta") + qparray = qparray[np.nonzero(qparray)] + eigs = qparray.real - np.min(qparray.real) # 0 to CBM + lws = 2000*qparray.imag # Factor or 2x1000 to get from linewidths to 1/tau in meV + + # Then within MRTA + qparray_mrta = abifile.get_qp_array(mode="ks+lifetimes", rta_type="mrta") + qparray_mrta = qparray_mrta[np.nonzero(qparray_mrta)] + eigs_mrta = qparray_mrta.real - np.min(qparray_mrta.real) # 0 to CBM + lws_mrta = 2000*qparray_mrta.imag + +# Plot 1/tau +axes[0, 1].plot(eigs, lws, 'ob', markersize=mz, label='SERTA') +axes[0, 1].plot(eigs_mrta, lws_mrta, 'xr', markersize=mz, label='MRTA') + +axes[0, 1].set_xticks([0, 0.25], ['0', '0.25']) + +# Set the axis labels and legend +axes[0, 1].set_xlabel(r'$\varepsilon_{n\mathbf{k}} - \varepsilon_{\mathrm{CBM}}$ (eV)', labelpad=2, fontsize=fz) +axes[0, 1].set_ylabel(r'$\tau_{n\mathbf{k}}^{-1}$ (meV)', fontsize=fz) +axes[0, 1].legend(loc='best', labelcolor='linecolor') + + +### +### Lower right : convergence of the mobility +### + +# First we find all the RTA.nc files +abifiles = glob.glob(root+'w*/t*/outdata/*RTA.nc') + +# We create a robot with these files and plot the mobilities +robot = RtaRobot.from_files(abifiles) +robot.plot_mobility_kconv(ax=axes[1, 1], eh=0, bte=["ibte", "mrta", "serta"], show=False, ax_grid=False) + +# Tune the plot +axes[1, 1].set_title(None) +axes[1, 1].legend(fontsize=fz, framealpha=0.5) +axes[1, 1].set_xlabel('$N_k \\times$ $N_k \\times$ $N_k$ $\\mathbf{k}$-point grid', fontsize=fz) +axes[1, 1].set_ylabel(r'$\mu_e$'+' (cm$^2$/(V$\\cdot$s))', fontsize=fz) + +# Reactivate the grid on the x-axis for the band structures +axes[0, 0].grid(True, axis='x') +axes[1, 0].grid(True, axis='x') + +# We save the figure in pdf format +fig.savefig(pretty_formula + ".pdf", bbox_inches='tight') diff --git a/abipy/examples/plot/plot_eph_from_mp.py b/abipy/examples/plot/advanced/plot_eph_from_mp.py similarity index 100% rename from abipy/examples/plot/plot_eph_from_mp.py rename to abipy/examples/plot/advanced/plot_eph_from_mp.py diff --git a/abipy/examples/plot/plot_fermisurface.py b/abipy/examples/plot/advanced/plot_fermisurface.py similarity index 100% rename from abipy/examples/plot/plot_fermisurface.py rename to abipy/examples/plot/advanced/plot_fermisurface.py diff --git a/abipy/examples/plot/develop/plot_ederivatives.py b/abipy/examples/plot/develop/plot_ederivatives.py deleted file mode 100755 index 9c643f443..000000000 --- a/abipy/examples/plot/develop/plot_ederivatives.py +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python -r""" -Effective masses -================ - -This example shows how to compute and plot the derivatives of the -KS eigenvalues along a high symmetry path in K-space. -""" -from abipy.abilab import abiopen -import abipy.data as abidata - -gsr_file = abiopen(abidata.ref_file("si_nscf_GSR.nc")) - -kpath = gsr_file.kpoints - -#print("ds", kpath.ds) -#for vers in kpath.versors: -# print("versors", vers) -print(kpath) -#print(kpath.lines) - -#branch = bands.get_branch(spin=0, band=3) -#ders = kpath.finite_diff(branch, order=1) -#ders = kpath.finite_diff(branch, order=2) -#print("order2",ders) - -ebands = gsr_file.ebands - -xys = ebands.derivatives(spin=0, band=0, order=1) -print("xys\n", xys) -#xys = ebands.derivatives(spin=0, band=1, order=1) -#xys = ebands.derivatives(spin=0, band=2, order=1) -#xys = ebands.derivatives(spin=0, band=3, order=1) - -#ebands.plot() - -emasses = ebands.effective_masses(spin=0, band=0, acc=2) -print("emasses", emasses) - -#emasses = ebands.effmass(spin=0, kpoint=[0,0,0], bands=0, acc=2) -#print("emasses", emasses) - -#emasses = ebands.effective_masses(spin=0, band=3, acc=2) -#print("emasses", emasses) - -#emasses = ebands.effective_masses(spin=0, band=4, acc=2) -#print("emasses", emasses) - -gsr_file.close() diff --git a/abipy/examples/plot/plot_a2f.py b/abipy/examples/plot/plot_a2f.py index 8d49d19b2..dca5b456b 100755 --- a/abipy/examples/plot/plot_a2f.py +++ b/abipy/examples/plot/plot_a2f.py @@ -4,28 +4,29 @@ =================== This example shows how to plot the Eliashberg function a2F(w) -and the e-ph coupling strenght in metals. +and the total e-ph coupling strenght in metals. """ from abipy import abilab import abipy.data as abidata -phdos_path = abidata.ref_file("al_161616q_PHDOS.nc") +a2file = abilab.abiopen(abidata.ref_file("al_888k_161616q_A2F.nc")) + +#print(a2file) +#a2file.phbands.plot() +#a2file.a2f_qintp.plot() +#with_lambda = False +#fig = a2file.a2f_qcoarse.plot_nuterms(with_lambda=with_lambda, show=False) +#a2file.a2f_qintp.plot_nuterms(axmat=fig.axes, with_lambda=with_lambda) -with abilab.abiopen(abidata.ref_file("al_888k_161616q_A2F.nc")) as ncfile: - print(ncfile) - #ncfile.phbands.plot() - #ncfile.a2f_qintp.plot() - #with_lambda = False - #fig = ncfile.a2f_qcoarse.plot_nuterms(with_lambda=with_lambda, show=False) - #ncfile.a2f_qintp.plot_nuterms(axmat=fig.axes, with_lambda=with_lambda) +#a2file.plot() - #ncfile.plot() - ncfile.plot_with_a2f(phdos=phdos_path) +phdos_path = abidata.ref_file("al_161616q_PHDOS.nc") +a2file.plot_with_a2f(phdos=phdos_path) - ncfile.plot_eph_strength(what="gamma") - #ncfile.plot_eph_strength(what="lambda") +a2file.plot_eph_strength(what="gamma") +#a2file.plot_eph_strength(what="lambda") - ncfile.plot_a2f_interpol() +a2file.plot_a2f_interpol() - # Grid with 3 plots (a2F, F, a2F) with F taken from PHDOS file. - #ncfile.a2f_qintp.plot_a2(phdos_path) +# Grid with 3 plots (a2F, F, a2F) with F taken from PHDOS file. +#a2file.a2f_qintp.plot_a2(phdos_path) diff --git a/abipy/examples/plot/plot_bz.py b/abipy/examples/plot/plot_bz.py index 9cddde692..371840cd9 100755 --- a/abipy/examples/plot/plot_bz.py +++ b/abipy/examples/plot/plot_bz.py @@ -4,19 +4,28 @@ ============== This example shows how to display the Brillouin zone -with pymatgen and matplotlib. +with matplotlib or plotly. """ + +#%% +# Open the WKF file and extract the crystalline structure. + from abipy.abilab import abiopen import abipy.data as abidata -# Open the WKF file. wfk_file = abiopen(abidata.ref_file("si_scf_WFK.nc")) - -# Extract the crystalline structure. structure = wfk_file.structure -# Visualize the BZ. +#%% +# To visualize the BZ with matplotlib, use: + structure.plot_bz() -# Close the wfk file +#%% +# For the plotly version, use: + +structure.plotly_bz() + +#%% +# Remember to close the wfk file with: wfk_file.close() diff --git a/abipy/examples/plot/plot_convergence.py b/abipy/examples/plot/plot_convergence.py new file mode 100755 index 000000000..8dd9d6abf --- /dev/null +++ b/abipy/examples/plot/plot_convergence.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python +r""" +Plot convergence +================ + +This example shows how to plot the convergence of +scalar quantities wrt to one independent variable. +For instance, the convergence of the energy per atom +with the cutoff energy ecut. +""" + +#%% +# Let's assume we have the total energy per atom +# and the pressure in GPa as a function of ecut +# stored in three python lists: + +ecut_list = [35., 40., 45., 50., 55., 60., 65.] + +energy_per_atom_ev = [ +-444.29611271, -444.3113239, -444.3124781, +-444.31251066, -444.31254606, -444.31256315, -444.31258609, +] + +pressure_gpa = [ +-17.56316746, -16.00634717, -15.80295881, +-15.79975677, -15.79858973, -15.79811464, -15.79929941, +] + +#%% +# To plot energy vs ecut with a convergence window of 1e-3 +# centered around our best estimate i.e. the value obtained +# with the highest ecut, use the high-level API `from_xy_label_vals`: + +from abipy.tools.plotting import ConvergenceAnalyzer + +ca = ConvergenceAnalyzer.from_xy_label_vals("ecut (Ha)", ecut_list, + "E/natom (eV)", energy_per_atom_ev, tols=1e-3) + +print(ca) +ca.plot() + +#%% +# To analyze the convergence of two or more quantities, use the low-level API +# that expects two dictionaries mapping the y-label used in the plot to +# (1) the list of values and (2) the associated absolute tolerance as in: + +yvals_dict = { + "E/natom (eV)": energy_per_atom_ev, + "P (GPa)": pressure_gpa, +} + +ytols_dict = { + "E/natom (eV)": 1e-3, + "P (GPa)": 1e-1, +} + +ca = ConvergenceAnalyzer("ecut (Ha)", ecut_list, yvals_dict, ytols_dict) + +#print(ca) +#ca.plot() + +#%% +# To specify multiple convergence criteria, replace scalars with tuples as in: + +ytols_dict = { + "E/natom (eV)": (1e-3, 1e-4), + "P (GPa)": (1e-1, 1e-2), +} + +ca = ConvergenceAnalyzer("ecut (Ha)", ecut_list, yvals_dict, ytols_dict) +#print(ca) +ca.plot() + + +#%% +# Finally, if you have a (xlsf or csv) file with columns named e.g.: `ecut`, `energy_per_atom`, `pressure` +# and you want to plot the results with ConvergenceAnalyzer, use the `from_file` method +# with a `ytols_dict` whose keys define the columns in tabular data: + +ytols_dict = { + "ecut": (1e-3, 1e-4), + "pressure": (1e-1, 1e-2), +} +#ca = ConvergenceAnalyzer.from_file(filepath, ytols_dict) + +# To change the x/y-labels in the plot, use: +#ca.set_label("ecut", "ecut (Ha)") +#ca.set_label("energy_per_atom", "E/natom (eV)") +#ca.set_label("pressure", "P (GPa)") + +#print(ca) +#ca.plot() diff --git a/abipy/examples/plot/plot_ddb_asr.py b/abipy/examples/plot/plot_ddb_asr.py index 271753048..e95d99286 100755 --- a/abipy/examples/plot/plot_ddb_asr.py +++ b/abipy/examples/plot/plot_ddb_asr.py @@ -1,25 +1,62 @@ #!/usr/bin/env python r""" -Phonon Bands with/without ASR -============================= +Phonon bands with/without the ASR +================================= This example shows how to plot a phonon band structure -with and without imposing the acoustic sum rule at the Gamma point. +with and without enforcing the acoustic sum rule (ASR). +Both matplotlib and plotly are supported. + +.. important:: + + Note that a **manager.yml** configuration file and an abinit installation are required + to run this script as AbiPy needs to invoke anaddb to compute phonons from the DDB file. """ + +#%% +# Open the DDB file with: + from abipy import abilab import abipy.data as abidata -# Open DDB file filepath = abidata.ref_file("mp-1009129-9x9x10q_ebecs_DDB") ddb = abilab.abiopen(filepath) -# This method computes the phonon bands and DOS by calling anaddb -# with different values of asr and returns a PhononBandsPlotter object. -plotter = ddb.anacompare_asr(asr_list=(0, 2)) +#%% +# The ``ddb.anacompare_asr`` method computes the phonon bands and the DOS by calling anaddb +# with different values of asr and returns a PhononBandsPlotter object: +# To make the computation faster, we use the **advanced** options dipdip -1. +# This option should produce results similar to dipdip 1 yet make sure to test +# the effect of this variable before using it in production. + +plotter = ddb.anacompare_asr(asr_list=(0, 2), dipdip=-1) +print(plotter) + +#%% +# To plot the bands on the same figure with matplotlib, use: + plotter.combiplot() -# Set nqsmall to 0 to disable DOS computation. -plotter = ddb.anacompare_asr(asr_list=(0, 2), nqsmall=0, ndivsm=10) +#%% +# For the plotly version, use: + +plotter.combiplotly() + +#%% +# To disable the DOS computation, set ``nqsmall` to 0: + +plotter = ddb.anacompare_asr(asr_list=(0, 2), nqsmall=0, ndivsm=10, dipdip=-1) + +#%% +# To plot the bands on different subplots with matplotlib, use: + plotter.gridplot() +#%% +# For the plotly version, use: +plotter.gridplotly() + +#%% +# Finally, remember to close the file with: + ddb.close() diff --git a/abipy/examples/plot/plot_den.py b/abipy/examples/plot/plot_den.py index d34c61ff6..50d1b40ea 100755 --- a/abipy/examples/plot/plot_den.py +++ b/abipy/examples/plot/plot_den.py @@ -15,8 +15,9 @@ # The DEN file has a `Density`, a `Structure` and an `ElectronBands` object print(ncfile.structure) +#%% # To plot the KS eigenvalues. -#ncfile.ebands.plot() +ncfile.ebands.plot() density = ncfile.density print(density) @@ -24,14 +25,17 @@ # To visualize the total charge wih vesta #visu = density.visualize("vesta"); visu() +#%% # To plot the density along the line connecting # the first and the second in the structure: density.plot_line(point1=0, point2=1) +#%% # alternatively, one can define the line in terms of two points # in fractional coordinates: density.plot_line(point1=[0, 0, 0], point2=[2.25, 2.25, 2.25], num=300) +#%% # To plot the density along the lines connect the firt atom in the structure # and all the neighbors within a sphere of radius 3 Angstrom: density.plot_line_neighbors(site_index=0, radius=3) diff --git a/abipy/examples/plot/plot_ebands.py b/abipy/examples/plot/plot_ebands.py index e4fee0048..7a038d5d7 100755 --- a/abipy/examples/plot/plot_ebands.py +++ b/abipy/examples/plot/plot_ebands.py @@ -10,21 +10,37 @@ from abipy.abilab import abiopen import abipy.data as abidata +#%% # Here we use one of the GSR files shipped with abipy. # Replace filename with the path to your GSR file or your WFK file. + filename = abidata.ref_file("si_nscf_GSR.nc") +#%% # Open the GSR file and extract the band structure. # (alternatively one can use the shell and `abiopen.py OUT_GSR.nc -nb` # to open the file in a jupyter notebook. + with abiopen(filename) as ncfile: ebands = ncfile.ebands -# Plot the band energies. Note that the labels for the k-points -# are found automatically in an internal database. -# Show fundamental and direct gaps. -#ebands.plot(with_gaps="fd", title="Silicon band structure") +#%% +# Plot the band energies with matplotlib. +# Note that the labels for the k-points are found automatically in an internal database. +# Use `with_gaps` to show fundamental and direct gaps. + ebands.plot(with_gaps=True, title="Silicon band structure") -# Plot the BZ and the k-point path. +#%% +# For the plotly version, use: + +ebands.plotly(with_gaps=True, title="Silicon band structure") + +# .. warning: +# +# Note that, for the time being, ``with_gaps`` is incompatible with the ``title`` argument. + +#%% +# Plot the BZ and the k-point path with matplotlib + ebands.kpoints.plot() diff --git a/abipy/examples/plot/plot_ebands_boxplot.py b/abipy/examples/plot/plot_ebands_boxplot.py index 868b68875..f0562b848 100755 --- a/abipy/examples/plot/plot_ebands_boxplot.py +++ b/abipy/examples/plot/plot_ebands_boxplot.py @@ -1,9 +1,9 @@ #!/usr/bin/env python r""" -Seaborn boxplot -=============== +Electron bands box plot +======================= -This example shows how to use seaborn to draw a box plot +This example shows how to use seaborn or plotly to draw a box plot showing the distributions of eigenvalues with respect to the band index. """ from abipy.abilab import abiopen @@ -14,7 +14,10 @@ with abiopen(abidata.ref_file("si_scf_GSR.nc")) as gsr: ebands = gsr.ebands -import matplotlib.pyplot as plt -# `swarm=True` to show the datapoints on top of the boxes +#%% +# Use `swarm=True` to show the datapoints on top of the boxes ebands.boxplot(swarm=True) -plt.show() + +#%% +# For the plotly version, use: +ebands.boxplotly() diff --git a/abipy/examples/plot/plot_ebands_edos.py b/abipy/examples/plot/plot_ebands_edos.py index 0c0c74a3a..5452a4f87 100755 --- a/abipy/examples/plot/plot_ebands_edos.py +++ b/abipy/examples/plot/plot_ebands_edos.py @@ -19,12 +19,18 @@ with abiopen(abidata.ref_file("si_scf_GSR.nc")) as gs_file: gs_ebands = gs_file.ebands +#%% # Compute the DOS with the Gaussian method (use default values for # the broadening and the step of the linear mesh. + edos = gs_ebands.get_edos() -# Plot bands and DOS. -nscf_ebands.plot_with_edos(edos, e0=None, with_gaps=True) +#%% +# To plot bands and DOS with matplotlib use: + +nscf_ebands.plot_with_edos(edos, with_gaps=True, title="Si Electron bands + DOS") + +#%% +# For the plotly version use: -print("nscf_ebands.efermi", nscf_ebands.fermie) -print("gs_ebands.efermi", gs_ebands.fermie) +nscf_ebands.plotly_with_edos(edos, with_gaps=True, title="Si Electron bands + DOS") diff --git a/abipy/examples/plot/plot_ebands_grid.py b/abipy/examples/plot/plot_ebands_grid.py index 28330414a..5271b16d1 100755 --- a/abipy/examples/plot/plot_ebands_grid.py +++ b/abipy/examples/plot/plot_ebands_grid.py @@ -22,17 +22,29 @@ frame = plotter.get_ebands_frame() print(frame) +#%% +# To create a grid plot use: plotter.gridplot(with_gaps=True) -#plotter.animate() +#%% +# Plotly version: +plotter.gridplotly(with_gaps=True) + +#%% # To plot a grid with band structures + DOS, use the optional argument `edos_objects` # The first subplot gets the band dispersion from eb_objects[0] and the DOS from edos_objects[0] # edos_kwargs is an optional dictionary passed to `get_dos` to compute the DOS. +# + eb_objects = 2 * [ref_file("si_nscf_GSR.nc")] edos_objects = 2 * [ref_file("si_scf_GSR.nc")] -# sphinx_gallery_thumbnail_number = 2 plotter = ElectronBandsPlotter() plotter.add_ebands("Si", ref_file("si_nscf_GSR.nc"), edos=ref_file("si_scf_GSR.nc")) plotter.add_ebands("Same data", ref_file("si_nscf_GSR.nc"), edos=ref_file("si_scf_GSR.nc")) +# sphinx_gallery_thumbnail_number = 2 plotter.gridplot() + +#%% +# Plotly version: +plotter.gridplotly() diff --git a/abipy/examples/plot/plot_ebands_spin.py b/abipy/examples/plot/plot_ebands_spin.py index 92f91ffb6..ad90935d3 100755 --- a/abipy/examples/plot/plot_ebands_spin.py +++ b/abipy/examples/plot/plot_ebands_spin.py @@ -25,31 +25,52 @@ # Plot band energies on k-path ni_ebands_kpath.plot(ylims=elims, title="Ni band structure") +#%% +# Plot energies on k-path + DOS with plotly +ni_ebands_kpath.plotly(ylims=elims, title="Ni band structure") + # Compute DOS with Gaussian method. ni_edos = ni_ebands_kmesh.get_edos() -# Plot energies on k-path + DOS +#%% +# Plot energies on k-path + DOS with matplotlib ni_ebands_kpath.plot_with_edos(ni_edos, ylims=elims, title="Ni band structure + DOS") +#%% +# Plot energies on k-path + DOS with plotly +ni_ebands_kpath.plotly_with_edos(ni_edos, ylims=elims, + title="Ni band structure + DOS") + # Plot electronic DOS. #ni_edos.plot_dos_idos(xlims=elims) #ni_edos.plot(xlims=elims) #ni_edos.plot_up_minus_down(xlims=elims) - -# Boxplot for 10 > band >= 5 +#%% +# matplotlib box plot for 10 > band >= 5 ni_ebands_kpath.boxplot(brange=[5, 10], title="Boxplot for up and down spin and 10 > band >= 5") +#%% +# For the plotly version, use: +ni_ebands_kpath.boxplotly(brange=[5, 10], + title="Boxplot for up and down spin and 10 > band >= 5") -# Use ElectronBandsPlotter to analyze multiple ElectronBands object + +#%% +# Now we use ElectronBandsPlotter to analyze multiple ElectronBands object plotter = abilab.ElectronBandsPlotter() plotter.add_ebands("k-mesh", ni_ebands_kmesh) plotter.add_ebands("k-path", ni_ebands_kpath) +# Energy window in eV around the Fermi level. ylims = [-10, 5] + #plotter.combiplot(ylims=ylims) plotter.gridplot(ylims=ylims) + +plotter.gridplotly(ylims=ylims) + #plotter.boxplot(brange=[5, 10]) plotter.combiboxplot(brange=[5, 10]) diff --git a/abipy/examples/plot/plot_edos.py b/abipy/examples/plot/plot_edos.py index d19d7b5dd..b2c89be4e 100755 --- a/abipy/examples/plot/plot_edos.py +++ b/abipy/examples/plot/plot_edos.py @@ -17,8 +17,18 @@ # Compute the DOS with the Gaussian method (default) edos = gs_ebands.get_edos(method="gaussian", step=0.01, width=0.1) -# Plot electron DOS and IDOS +#%% +# To plot electron DOS with matplotlib use: edos.plot(title="Silicon DOS") -# Plot electron DOS and IDOS +#%% +# For the plotly version use: +edos.plotly(title="Silicon DOS") + +#%% +# To plot electron DOS and IDOS with matplotlib use: edos.plot_dos_idos(title="DOS and Integrated DOS") + +#%% +# For the plotly version use: +edos.plotly_dos_idos(title="DOS and Integrated DOS") diff --git a/abipy/examples/plot/plot_edos_grid.py b/abipy/examples/plot/plot_edos_grid.py new file mode 100755 index 000000000..2d242ae5e --- /dev/null +++ b/abipy/examples/plot/plot_edos_grid.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +r""" +ElectronDosPlotter +================== + +This example shows how to plot several Electron Dos on a grid +using the results stored in the ni_666k_GSR.nc file. +""" + +#%% +# We start by defining a list with the paths to the GSR.nc files +# In this case, for simplicity, we use the same file but we must +# use different labels when adding them to the plotter with the add_edos method. + +from abipy import abilab +import abipy.data as abidata + +edos_paths = [abidata.ref_file("ni_666k_GSR.nc")] + +plotter = abilab.ElectronDosPlotter() +plotter.add_edos("Ni", edos_paths[0]) +plotter.add_edos("Same Ni", edos_paths[0]) + +#%% +# To visualize the results on a grid with matplotlib, use: +plotter.gridplot(title="Electron DOS on grid") + +#%% +# Plotly version: +plotter.gridplotly(title="Electron DOS on grid") + diff --git a/abipy/examples/plot/plot_edos_vs_broad.py b/abipy/examples/plot/plot_edos_vs_broad.py index c5ae3a112..8b8948cbe 100755 --- a/abipy/examples/plot/plot_edos_vs_broad.py +++ b/abipy/examples/plot/plot_edos_vs_broad.py @@ -4,7 +4,8 @@ ================ This example shows how to compute and plot multiple -electron DOSes obtained with different values of the gaussian broadening. +electron DOSes obtained with different values +of the gaussian broadening. """ import abipy.data as abidata @@ -20,19 +21,29 @@ edos_plotter = gs_bands.compare_gauss_edos(widths, step=0.1) +title = "e-DOS of Si for different Gaussian broadenings" + # Invoke ElectronDosPlotter methods to plot results. -edos_plotter.combiplot(title="e-DOS as function of the Gaussian broadening") +edos_plotter.combiplot(title=title) + +edos_plotter.gridplot(title=f"{title} (gridplot version)") -edos_plotter.gridplot(title="gridplot version") +# Now we read the band structure of Nickel (spin-polarized) with abilab.abiopen(abidata.ref_file("ni_666k_GSR.nc")) as gsr: ni_ebands_kmesh = gsr.ebands -edos_plotter = ni_ebands_kmesh.compare_gauss_edos(widths=[0.1, 0.2, 0.3], step=0.2) +widths = [0.1, 0.2, 0.3] +edos_plotter = ni_ebands_kmesh.compare_gauss_edos(widths=widths, step=0.2) + +title = "e-DOS of Ni for different Gaussian broadenings" + +edos_plotter.combiplot(dos_mode="idos+dos", title=title) + +edos_plotter.combiplot(dos_mode="dos", spin_mode="resolved", + title=f"{title} (spin-resolved)") -title = "e-DOS as function of the Gaussian broadening" -edos_plotter.combiplot(dos_mode="idos+dos") -edos_plotter.combiplot(dos_mode="dos", spin_mode="resolved") +edos_plotter.gridplot(title=f"{title} (gridplot version)") -edos_plotter.gridplot(title="gridplot version") -edos_plotter.gridplot(spin_mode="resolved") +edos_plotter.gridplot(spin_mode="resolved", + title=f"{title} (gridplot version, spin-resolved)") diff --git a/abipy/examples/plot/plot_efatbands.py b/abipy/examples/plot/plot_efatbands.py index 8810a1979..df5798b7d 100755 --- a/abipy/examples/plot/plot_efatbands.py +++ b/abipy/examples/plot/plot_efatbands.py @@ -7,54 +7,115 @@ using the FATBANDS.nc files produced by abinit with prtdos 3. See also PhysRevLett.86.4656 """ + +#%% +# Open the file (alternatively one can use the shell and `abiopen.py FILE -nb` +# to open the file in a jupyter notebook) +# Note that this file has been produced on a k-path so it's not suitable for DOS calculations. + import abipy.abilab as abilab import abipy.data as abidata -# Open the file (alternatively one can use the shell and `abiopen.py FILE -nb` -# to open the file in a jupyter notebook -# This file has been produced on a k-path so it's not suitable for DOS calculations. fbnc_kpath = abilab.abiopen(abidata.ref_file("mgb2_kpath_FATBANDS.nc")) +# To customize the matplotlib marker and its size, use: +fbnc_kpath.marker_spin = {0: "o", 1: "v"} +fbnc_kpath.marker_size = 2 + +#%% # Print file info (dimensions, variables ...) # Note that prtdos = 3, so LM decomposition is not available. -print(fbnc_kpath) +print(fbnc_kpath) +#%% # Plot the k-points belonging to the path. -fbnc_kpath.ebands.kpoints.plot() +#fbnc_kpath.ebands.kpoints.plotly() +#%% # NC files have contributions up to L=4 (g channel) # but here we are intererested in s,p,d terms only so # we use the optional argument lmax lmax = 2 +#%% # Plot the electronic fatbands grouped by atomic type. -fbnc_kpath.plot_fatbands_typeview(lmax=lmax, tight_layout=True) +# Can use l_list to select only particular l-values +fbnc_kpath.plot_fatbands_typeview(lmax=lmax, tight_layout=True, l_list=None) + +#%% +# For the plotly version use: + +#fbnc_kpath.plotly_fatbands_typeview(lmax=lmax) + +#%% # Plot the electronic fatbands grouped by L. -fbnc_kpath.plot_fatbands_lview(lmax=lmax, tight_layout=True) -# Now we read another FATBANDS file produced on 18x18x18 k-mesh +#fbnc_kpath.plot_fatbands_lview(lmax=lmax, tight_layout=True) + +#%% +# For the plotly version use: + +#fbnc_kpath.plotly_fatbands_lview(lmax=lmax) + +#%% +# Now we read another FATBANDS file produced on a 18x18x18 k-mesh +# This file can be used to plot the projected-DOS + fbnc_kmesh = abilab.abiopen(abidata.ref_file("mgb2_kmesh181818_FATBANDS.nc")) +#%% +# Let's print the object + print(fbnc_kmesh) #fbnc_kmesh.ebands.kpoints.plot() +#%% # Plot the L-PJDOS grouped by atomic type. + fbnc_kmesh.plot_pjdos_typeview(lmax=lmax, tight_layout=True) +#%% +# For the plotly version use: + +fbnc_kmesh.plotly_pjdos_typeview(lmax=lmax) + +#%% # Plot the L-PJDOS grouped by L. + fbnc_kmesh.plot_pjdos_lview(lmax=lmax, tight_layout=True) +#%% +# For the plotly version use: + +fbnc_kmesh.plotly_pjdos_lview(lmax=lmax) + +#%% # Now we use the two netcdf files to produce plots with fatbands + PJDOSEs. # The data for the DOS is taken from pjdosfile. # sphinx_gallery_thumbnail_number = 6 -fbnc_kpath.plot_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, lmax=lmax, - view="type", tight_layout=True) +fbnc_kpath.plot_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, + lmax=lmax, view="type", tight_layout=True) + +#%% +# For the plotly version use: + +fbnc_kpath.plotly_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, + lmax=lmax, view="type") + +#%% # fatbands + PJDOS grouped by L -fbnc_kpath.plot_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, lmax=lmax, - view="lview", tight_layout=True) -fbnc_kpath.close() -fbnc_kmesh.close() +fbnc_kpath.plot_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, + lmax=lmax, view="lview", tight_layout=True) + +#%% +# For the plotly version use: + +fbnc_kpath.plotly_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, + lmax=lmax, view="lview") + +#fbnc_kpath.close() +#fbnc_kmesh.close() diff --git a/abipy/examples/plot/plot_efatbands_spin.py b/abipy/examples/plot/plot_efatbands_spin.py index 09ca4c190..b29fa2c21 100755 --- a/abipy/examples/plot/plot_efatbands_spin.py +++ b/abipy/examples/plot/plot_efatbands_spin.py @@ -6,16 +6,21 @@ This example shows how to plot the L-projected fatbands of Ni using the results stored in the FATBANDS.nc files produced with prtdos 3. """ -import abipy.abilab as abilab -import abipy.data as abidata +#%% # Open the file (alternatively one can use the shell and `abiopen.py FILE -nb` # to open the file in a jupyter notebook # This file has been produced on a k-path so it's not suitable for DOS calculations. + +import abipy.abilab as abilab +import abipy.data as abidata + fbnc_kpath = abilab.abiopen(abidata.ref_file("ni_kpath_FATBANDS.nc")) +#%% # NC files have contributions up to L = 4 (g channel) # but here we are intererested in s,p,d terms only so we use the optional argument lmax + lmax = 2 # Energy limits in eV for plots. The pseudo contains semi-core states but @@ -29,30 +34,78 @@ # Plot the k-points belonging to the path. #fbnc_kpath.ebands.kpoints.plot() +#%% # Plot the electronic fatbands grouped by atomic type. + fbnc_kpath.plot_fatbands_typeview(ylims=elims, lmax=lmax, tight_layout=True) +#%% +# For the plotly version use: + +fbnc_kpath.plotly_fatbands_typeview(ylims=elims, lmax=lmax) + +#%% # Plot the electronic fatbands grouped by L. + fbnc_kpath.plot_fatbands_lview(ylims=elims, lmax=lmax, tight_layout=True) +#%% +# For the plotly version use: + +fbnc_kpath.plotly_fatbands_lview(ylims=elims, lmax=lmax) + +#%% # Now we read another FATBANDS file produced on 18x18x18 k-mesh + fbnc_kmesh = abilab.abiopen(abidata.ref_file("ni_666k_FATBANDS.nc")) +#%% # Plot the L-PJDOS grouped by atomic type. + fbnc_kmesh.plot_pjdos_typeview(xlims=elims, lmax=lmax, tight_layout=True) +#%% +# For the plotly version use: + +fbnc_kmesh.plotly_pjdos_typeview(xlims=elims, lmax=lmax) + +#%% # Plot the L-PJDOS grouped by L. + fbnc_kmesh.plot_pjdos_lview(xlims=elims, lmax=lmax, tight_layout=True) +#%% +# For the plotly version use: + +fbnc_kmesh.plotly_pjdos_lview(xlims=elims, lmax=lmax) + +#%% # Now we use the two netcdf files to produce plots with fatbands + PJDOSEs. # The data for the DOS is taken from pjdosfile. -fbnc_kpath.plot_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, ylims=elims, - lmax=lmax, view="type", tight_layout=True) +fbnc_kpath.plot_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, + ylims=elims, lmax=lmax, view="type", tight_layout=True) + +#%% +# For the plotly version use: + +fbnc_kpath.plotly_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, + ylims=elims, lmax=lmax, view="type") + +#%% # fatbands + PJDOS grouped by L -fbnc_kpath.plot_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, ylims=elims, - lmax=lmax, view="lview", tight_layout=True) +fbnc_kpath.plot_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, + ylims=elims, lmax=lmax, view="lview", tight_layout=True) + +#%% +# For the plotly version use: + +fbnc_kpath.plotly_fatbands_with_pjdos(pjdosfile=fbnc_kmesh, + ylims=elims, lmax=lmax, view="lview") + +#%% # Close files. + fbnc_kpath.close() fbnc_kmesh.close() diff --git a/abipy/examples/plot/plot_effmass.py b/abipy/examples/plot/plot_effmass.py new file mode 100755 index 000000000..462a3655e --- /dev/null +++ b/abipy/examples/plot/plot_effmass.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +r""" +Effective masses with finite diff +================================= + +This example shows how to use finite differences to compute +effective masses and plot the data. +""" + +#%% +# Initialize the EffMassAnalyzer from a GSR file with energies +# computed along segments passing through the k-points of interest. +# +# Clearly the accuracy of the finite difference results strongly depends +# on the spacing between the points along the path. +# The GSR file used in this example is not accurate enough! + +import abipy.data as abidata +from abipy.electrons.effmass_analyzer import EffMassAnalyzer + +emana = EffMassAnalyzer.from_file(abidata.ref_file("si_nscf_GSR.nc")) +print(emana) + +#%% +# Before computing the effective masses, we have to select the k-points. + +emana.select_vbm() + +# Alternatively, one can use: + +#emana.select_cbm() +#emana.select_band_edges() + +# or the most flexible API: + +#emana.select_kpoint_band((0, 0, 0), band=3, spin=0, degtol_ev=0.1) + +#%% +# Compute effective masses with different accuracies and print results in tabular format. +# Useful to understand if results are sensitive to the number of points in the finite difference. +# Note however that numerical differentiation is performed with the same delta_k step. + +emana.summarize() + +#%% +# Print the results to terminal with: + +# extract segment. +segment = emana.segments[0] +#repr(segment); str(segment) +#assert segment.to_string(verbose=2) +df = segment.get_dataframe_with_accuracies(acc_list=(2, 4)) +print(df) + +#assert len(emana.segments) == 1 +#for segment in emana.segments[0]: +# segment.get_effmass_line(acc=2) + +#%% +# Plot electronic dispersion and quadratic approximant based on the +# effective masses computed along each segment. + +emana.plot_emass(acc=4) + +#emana.plot_all_segments() +#emana.segments[0].plot_emass() diff --git a/abipy/examples/plot/plot_funcs.py b/abipy/examples/plot/plot_funcs.py index 892d9ab30..26fb6e383 100755 --- a/abipy/examples/plot/plot_funcs.py +++ b/abipy/examples/plot/plot_funcs.py @@ -3,7 +3,8 @@ Function1D object ================= -This example shows how to use the Function1D object to analyze and plot results. +This example shows how to use the Function1D object +to analyze and plot results. """ import numpy as np import matplotlib.pyplot as plt diff --git a/abipy/examples/plot/plot_gruneisen.py b/abipy/examples/plot/plot_gruneisen.py index 7351b87b4..37974a135 100755 --- a/abipy/examples/plot/plot_gruneisen.py +++ b/abipy/examples/plot/plot_gruneisen.py @@ -4,15 +4,14 @@ ==================== This example shows how to analyze the Gruneisen parameters -computed by anaddb via finite difference. See also v8/Input/t45.in +computed by anaddb via finite difference. +See also v8/Input/t45.in """ -from __future__ import print_function, division - import abipy.data as abidata from abipy import abilab # Open the file with abiopen -# (alternatively one can use the shell and `abiopen.py OUT_GRUNS.nc -nb` +# Alternatively one can use the shell and `abiopen.py OUT_GRUNS.nc -nb` # to open the file in a jupyter notebook. ncfile = abilab.abiopen(abidata.ref_file("mg2si_GRUNS.nc")) @@ -25,7 +24,8 @@ ncfile.plot_gruns_bs(title="Gruneisen along high-symmetry path.") -ncfile.plot_phbands_with_gruns(fill_with="gruns_fd", title="Gruneisen parameters with finite differences.", with_doses=None) +ncfile.plot_phbands_with_gruns(fill_with="gruns_fd", + title="Gruneisen parameters with finite differences.", with_doses=None) ncfile.plot_gruns_scatter(units='cm-1',title="Scatter plot with Gruneisen parameters") diff --git a/abipy/examples/plot/plot_hist.py b/abipy/examples/plot/plot_hist.py index d815a3f75..5ab44bc9b 100755 --- a/abipy/examples/plot/plot_hist.py +++ b/abipy/examples/plot/plot_hist.py @@ -4,23 +4,42 @@ ===================== This example shows how to analyze the results of a -structure relaxation run using the HIST.nc file. +structure relaxation using the HIST.nc file. """ from abipy.abilab import abiopen import abipy.data as abidata +#%% # Open the HIST file. # (alternatively one can use the shell and `abiopen.py OUT_HIST.nc -nb` # to open the file in jupyter notebook. + hist = abiopen(abidata.ref_file("sic_relax_HIST.nc")) +#%% # The structure at the end of the structural relaxation. + print(hist.final_structure) -# Plot the evolution of the lattice parameters, forces, etotal, ... +#%% +# Plot the evolution of the lattice parameters, forces, etotal, etc. + hist.plot(tight_layout=True) +#%% +# To plot the same results with plotly and the "dark" template, use: + +hist.plotly(template="plotly_dark") +# sphinx_gallery_thumbnail_number = 2 + +#%% # Plot the total energy at the different relaxation steps. -hist.plot_energies(tight_layout=True) + +hist.plot_energies() + +#%% +# For the plotly version use: +hist.plotly_energies() + hist.close() diff --git a/abipy/examples/plot/plot_ifcs.py b/abipy/examples/plot/plot_ifcs.py new file mode 100755 index 000000000..58925d5a3 --- /dev/null +++ b/abipy/examples/plot/plot_ifcs.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python +r""" +Interatomic Force Constants +============================ + +This example shows how to plot the longitudinal part +of the Interatomic Force Constants in real-space +starting from a DDB file. + +See e.g. + +.. important:: + + Note that a **manager.yml** configuration file and an abinit installation are required + to run this script as AbiPy needs to invoke anaddb to compute the IFCs from the DDB file. +""" + +#%% +# Open the DDB file for AlAs + +import os +import abipy.data as abidata + +from abipy import abilab + +filepath = os.path.join(abidata.dirpath, "refs", "alas_phonons", "trf2_3_DDB") +ddb = abilab.abiopen(filepath) + +#%% +# Call anaddb to compute the Interatomic Force Constants +# Default args are: asr=2, chneut=1, dipdip=1. + +ifc = ddb.anaget_ifc() + +#%% +# Plot the total longitudinal IFCs in local coordinates, + +ifc.plot_longitudinal_ifc(title="Total Longitudinal IFCs") + +#%% +# Plot the short range longitudinal IFCs in local coordinates, + +ifc.plot_longitudinal_ifc_short_range(title="Longitudinal SR-IFCs") + +#%% +# Plot the Ewald part of the IFCs in local coordinates, + +ifc.plot_longitudinal_ifc_ewald(title="Longitudinal LR-IFCs") diff --git a/abipy/examples/plot/plot_kpath_from_ibz.py b/abipy/examples/plot/plot_kpath_from_ibz.py index cda17b31d..811c7f20f 100755 --- a/abipy/examples/plot/plot_kpath_from_ibz.py +++ b/abipy/examples/plot/plot_kpath_from_ibz.py @@ -4,7 +4,7 @@ =============== This example shows how to extract energies along a k-path -from a calculation done with a (relatively dense) IBZ sampling. +from a calculation done with a (dense) IBZ sampling. """ from abipy.abilab import abiopen import abipy.data as abidata @@ -18,7 +18,7 @@ print(ebands_ibz.kpoints) # Build new ebands with energies along G-X-L-G path. -# Smooth bands require dense meshes. +# Smooth bands require dense k-meshes. r = ebands_ibz.with_points_along_path(knames=["G", "X", "L", "G"]) print(r.ebands) diff --git a/abipy/examples/plot/plot_lruj.py b/abipy/examples/plot/plot_lruj.py new file mode 100755 index 000000000..c93b92b64 --- /dev/null +++ b/abipy/examples/plot/plot_lruj.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +r""" +Plot the LRUJ results +===================== + +This example shows how to parse the output file produced by lruj and plot the results + + +See also https://docs.abinit.org/tutorial/lruj/#43-execution-of-the-lruj-post-processinng-utility +""" +from abipy.electrons.lruj import LrujAnalyzer, LrujResults +import abipy.data as abidata +import os + +# Initialize LrujResults from the main output file of lruj +outfile = abidata.ref_file("lruj_data/lruj.out") +lr = LrujResults.from_file(outfile) + +#%% +# Plot the fits. + +lr.plot(degrees="all", insetdegree=4, ptcolor0='blue', ptitle="Hello World", fontsize=9) + +#filepaths = [ +# "tlruj_2.o_DS1_LRUJ.nc", +# "tlruj_2.o_DS2_LRUJ.nc", +# "tlruj_2.o_DS3_LRUJ.nc", +# "tlruj_2.o_DS4_LRUJ.nc", +#] +# +#root = "tutorial_tlruj_1-tlruj_2-tlruj_3/" +#filepaths = [os.path.join(root, p) for p in filepaths] +# +#lruj = LrujAnalyzer(verbose=1) +#lruj.add_ncpaths("foo", filepaths) +#lruj.add_ncpaths("bar", filepaths) + +#print(lruj) +#lruj.plot() diff --git a/abipy/examples/plot/plot_lumi_1D_Eu_doped.py b/abipy/examples/plot/plot_lumi_1D_Eu_doped.py new file mode 100755 index 000000000..3840f00aa --- /dev/null +++ b/abipy/examples/plot/plot_lumi_1D_Eu_doped.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python +r""" +Luminescent properties (1D-CCM) +=============================== + +This example shows how to post-process the results of a LumiWork +following a one-dimensional configuration coordinate model (1D-CCM). +Based on a Eu-doped phosphor SrAlLi3N4:Eu presenting two non-equivalent sites for Eu +See example/flows/run_lumi_Eu_doped_SLA.py +""" + +#%% +# Read the 4 points netcdf file produced by the two LumiWork + +from abipy.lumi.deltaSCF import DeltaSCF +import abipy.data as abidata +import pandas as pd +import abipy.abilab as abilab + +SLA_site_1 = DeltaSCF.from_four_points_file([abidata.ref_file("site_1_relaxed_gs_out_GSR.nc"), + abidata.ref_file("site_1_unrelaxed_ex_out_GSR.nc"), + abidata.ref_file("site_1_relaxed_ex_out_GSR.nc"), + abidata.ref_file("site_1_unrelaxed_gs_out_GSR.nc")]) + +SLA_site_2 = DeltaSCF.from_four_points_file([abidata.ref_file("site_2_relaxed_gs_out_GSR.nc"), + abidata.ref_file("site_2_unrelaxed_ex_out_GSR.nc"), + abidata.ref_file("site_2_relaxed_ex_out_GSR.nc"), + abidata.ref_file("site_2_unrelaxed_gs_out_GSR.nc")]) + +#%% +# To plot the luminescence lineshape following the one effective phonon mode model at 0K + +SLA_site_1.plot_lineshape_1D_zero_temp(energy_range=[0.5,3],max_m=20,phonon_width=0.02, + with_omega_cube='True', + normalized='Area'); + +#%% +# To get a panda dataframe with the main restults : +dataframes=[] +df_1=SLA_site_1.get_dataframe('Site_1') +df_2=SLA_site_2.get_dataframe('Site_2') + +pd.concat([df_1,df_2]) + + +#%% +# To plot the magnitude of the displacements +SLA_site_1.plot_delta_R_distance(defect_symbol="Eu") + +# %% +# To draw the configuration coordinates diagram. +SLA_site_1.draw_displaced_parabolas(scale_eff_freq=2.5); +SLA_site_2.draw_displaced_parabolas(scale_eff_freq=2.5); + + +# %% diff --git a/abipy/examples/plot/plot_lumi_1D_nv_center.py b/abipy/examples/plot/plot_lumi_1D_nv_center.py new file mode 100755 index 000000000..06086b846 --- /dev/null +++ b/abipy/examples/plot/plot_lumi_1D_nv_center.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python +r""" +Luminescent properties (1D-CCM) +=============================== + +This example shows how to post-process the results of a LumiWork +following a one-dimensional configuration coordinate model (1D-CCM). +Based on NV- center in diamond (64 atoms supercell) +""" + +#%% +# Read the 4 points netcdf file produced by a LumiWork + +from abipy.lumi.deltaSCF import DeltaSCF +import abipy.data as abidata +import abipy.abilab as abilab + + +NV_center = DeltaSCF.from_four_points_file([abidata.ref_file("relaxed_gs_out_GSR.nc"), + abidata.ref_file("unrelaxed_ex_out_GSR.nc"), + abidata.ref_file("relaxed_ex_out_GSR.nc"), + abidata.ref_file("unrelaxed_gs_out_GSR.nc")]) + +# %% +# To draw the configuration coordinates diagram. + +NV_center.draw_displaced_parabolas(scale_eff_freq=4); + +#%% +# To plot the luminescence lineshape following the one effective phonon mode model at 0K + +NV_center.plot_lineshape_1D_zero_temp(energy_range=[0.5,3],max_m=20,phonon_width=0.02, + with_omega_cube='True', + normalized='Sum'); + +#%% +# To get a panda dataframe with the main restults : +NV_center.get_dataframe() + +#%% +# To plot the magnitude of the displacements/forces, from the N atom. + +NV_center.plot_delta_R_distance(defect_symbol="N"); +NV_center.plot_delta_F_distance(defect_symbol="N"); + +#%% +# To visualise displacements in 3D + +NV_center.displacements_visu(); + +#%% +# To plot the four band structures associated to each point +# nscf_files are obtained in a LumiWork by activating the BS computations + +nscf_files=[abidata.ref_file("relaxed_gs_nscf_GSR.nc"), + abidata.ref_file("unrelaxed_ex_nscf_GSR.nc"), + abidata.ref_file("relaxed_ex_nscf_GSR.nc"), + abidata.ref_file("unrelaxed_gs_nscf_GSR.nc")] +NV_center.plot_four_BandStructures(nscf_files, ylims=[-4,4]); + +# %% diff --git a/abipy/examples/plot/plot_phbands_and_dos.py b/abipy/examples/plot/plot_phbands_and_dos.py index ee85601a0..9553d6e68 100755 --- a/abipy/examples/plot/plot_phbands_and_dos.py +++ b/abipy/examples/plot/plot_phbands_and_dos.py @@ -1,33 +1,66 @@ #!/usr/bin/env python r""" -Phonon Band structures -====================== +Phonon band structures with LO-TO +================================= This example shows how to plot the phonon band structure of AlAs. +without the LO-TO splitting. See tutorial/lesson_rf2.html """ + +#%% +# Open the PHBST file produced by anaddb and get the phonon bands. +# Note that the treatment of the LO-TO splitting for q--> 0 requires +# additional steps. See `plot_phonons_lo_to.py`. + from abipy.abilab import abiopen import abipy.data as abidata -# Open the PHBST file produced by anaddb and get the phonon bands. with abiopen(abidata.ref_file("trf2_5.out_PHBST.nc")) as ncfile: phbands = ncfile.phbands +#%% # Read the Phonon DOS from the netcd file produced by anaddb (prtdos 2) + with abiopen(abidata.ref_file("trf2_5.out_PHDOS.nc")) as ncfile: phdos = ncfile.phdos -# plot phonon bands and DOS with LO-TO. -# `plot_phonons_lo_to.py` shows how to treat the LO-TO splitting. +#%% +# Plot phonon bands and DOS with matplotib: + phbands.plot(title="AlAs Phonon bands and DOS in eV") -# plot phonon bands with DOS. +#%% +# For the plotly version use: + +phbands.plotly(title="AlAs Phonon bands and DOS in eV") + +#%% +# To plot phonon bands and phonon DOS with matplotlib use: + phbands.plot_with_phdos(phdos, units="cm-1", title="AlAs Phonon bands + DOS in cm-1") -# plot phonon DOS. -phdos.plot(units="cm-1", title="Phonon DOS and IDOS in cm-1") +#%% +# For the plotly version use: + +phbands.plotly_with_phdos(phdos, units="cm-1", + title="AlAs Phonon bands + DOS in cm-1") + +#%% +# Plot the phonon band structure with different color for each line (matplotlib version). -# Plot the phonon band structure with different color for each line. phbands.plot_colored_matched(units="cm-1", title="AlAs with different color for each line.") + + +#%% +# Use seaborn and matplotlib to draw a box plot showing the distribution +# of the phonon frequencies with respect to the mode index. + +phbands.boxplot(units="meV") + +#%% +# For the plotly version use: + +phbands.boxplotly(units="meV") diff --git a/abipy/examples/plot/plot_phbands_grid.py b/abipy/examples/plot/plot_phbands_grid.py index 4c380f5e3..b42da6032 100755 --- a/abipy/examples/plot/plot_phbands_grid.py +++ b/abipy/examples/plot/plot_phbands_grid.py @@ -3,32 +3,59 @@ Multiple phonon bands ===================== -This example shows how to plot several phonon band structures on a grid. +This example shows how to plot several phonon +band structures on a grid. We use two files produced by anaddb: - trf2_5.out_PHBST.nc: phonon frequencies on a q-path in the BZ (used to plot the band dispersion) - trf2_5.out_PHDOS.nc: phonon DOS compute with anaddb. +1) trf2_5.out_PHBST.nc: phonon frequencies on a q-path in the BZ + (used to plot the band dispersion) +2) trf2_5.out_PHDOS.nc: phonon DOS compute with anaddb. See also tutorial/lesson_rf2.html """ + +#%% +# We start by defining a list with the paths to the PHBST.nc files +# In this case, for simplicity, we use the same file but we must +# use different labels when adding them to the plotter with the add_phbands method. + from abipy import abilab import abipy.data as abidata -# To plot a grid with two band structures: phbst_paths = 2 * [abidata.ref_file("trf2_5.out_PHBST.nc")] plotter = abilab.PhononBandsPlotter() plotter.add_phbands("AlAs", phbst_paths[0]) plotter.add_phbands("Same AlAs", phbst_paths[1]) -#plotter.combiplot(title="CombiPlot in eV") +#%% +# At this point, we can use the plotter methods to plot the data: +# To produce a grid plot: + plotter.gridplot(units="eV", title="GridPlot in eV") + +#%% +# For the plotly version, use: + +plotter.gridplotly(units="eV", title="GridPlotly in eV") + +#%% +# To produce a box plot with matplotly, use: + plotter.boxplot(units="cm-1", title="BoxPlot in cm-1") + plotter.combiboxplot(units="Ha", title="CombiboxPlot in Ha") -# To plot a grid with band structures + DOS, use the optional argument `phdos` of add_phbands -# The first subplot gets the band dispersion from phbst_paths[0] and the dos from phdos_paths[0] +#plotter.boxplotly(units="eV", title="GridPlot in eV") +#plotter.combiplot(title="CombiPlot in eV") + +#%% +# To plot a grid with band structures + DOS, use the +# optional argument `phdos` of add_phbands +# The first subplot gets the band dispersion from phbst_paths[0] +# and the dos from phdos_paths[0] + phbst_paths = 3 * [abidata.ref_file("trf2_5.out_PHBST.nc")] phdos_paths = 3 * [abidata.ref_file("trf2_5.out_PHDOS.nc")] @@ -37,5 +64,14 @@ plotter.add_phbands("Same-data", phbst_paths[1], phdos=phdos_paths[1]) plotter.add_phbands("Same-data2", phbst_paths[2], phdos=phdos_paths[2]) -#plotter.combiplot(title="Bands + DOS in eV with combiplot") +#%% +# To visualize the results on a grid with matplotlib, use: + plotter.gridplot(units="cm-1", tight_layout=True, title="Bands + DOS in cm-1 with gridplot") + +#plotter.combiplot(title="Bands + DOS in eV with combiplot") + +#%% +# For the plotly version: + +plotter.gridplotly(units="cm-1", title="Bands + DOS in cm-1 with gridplot") diff --git a/abipy/examples/plot/plot_phbands_nkpt_tsmear.py b/abipy/examples/plot/plot_phbands_nkpt_tsmear.py index c9bb42e55..187c0a390 100755 --- a/abipy/examples/plot/plot_phbands_nkpt_tsmear.py +++ b/abipy/examples/plot/plot_phbands_nkpt_tsmear.py @@ -1,19 +1,24 @@ #!/usr/bin/env python r""" -Multiple phonon bands -========================= +Multiple phonon bands with DDB robot +==================================== This example shows how to plot several phonon band structures on a grid. -We use two files produced by anaddb: +.. important:: - trf2_5.out_PHBST.nc: phonon frequencies on a q-path in the BZ (used to plot the band dispersion) - trf2_5.out_PHDOS.nc: phonon DOS compute with anaddb. + Note that a **manager.yml** file and an abinit installation are required + to run this script as AbiPy needs to invoke anaddb to compute phonons from the DDB file. """ + +#%% +# We start by defining a list of DDB files: +# obtained with the same structure but different k-mesh and tmear: + from abipy import abilab import abipy.data as abidata - import os + paths = [ #"mgb2_444k_0.01tsmear_DDB", #"mgb2_444k_0.02tsmear_DDB", @@ -28,18 +33,37 @@ paths = [os.path.join(abidata.dirpath, "refs", "mgb2_phonons_nkpt_tsmear", f) for f in paths] -robot = abilab.DdbRobot() -for i, path in enumerate(paths): - robot.add_file(path, path) +#%% +# Now we initialize the DdbRobot from this list of paths: + +robot = abilab.DdbRobot.from_files(paths) +print(robot.keys()) + +#%% +# Now we change the keys associated to the different files +# by defining a function that computes the new label from the +# info reported in the ddb object. +# These lables are then used to generate the legend in the matplotlib plot. robot.remap_labels(lambda ddb: "nkpt: %s, tsmear: %.2f" % (ddb.header["nkpt"], ddb.header["tsmear"])) +print(robot.keys()) + +#%% +# Invoke anaddb to build a PhononBands plotter. +# We use a small q-mesh for the ph-DOS to speedup the computation: r = robot.anaget_phonon_plotters(nqsmall=2) +#%% +# To group the results by tsmear use: + r.phbands_plotter.gridplot_with_hue("tsmear") +#%% +# If Phonon DOSes are wanted, use: + r.phbands_plotter.gridplot_with_hue("tsmear", with_dos=True) -#r.phbands_plotter.gridplot_with_hue("nkpt") +#r.phbands_plotter.gridplot() robot.close() diff --git a/abipy/examples/plot/plot_phdos_grid.py b/abipy/examples/plot/plot_phdos_grid.py new file mode 100755 index 000000000..9d835a332 --- /dev/null +++ b/abipy/examples/plot/plot_phdos_grid.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +r""" +Projected phonon DOS +==================== + +This example shows how to plot several phonon DOS on a grid. +We phonon DOS file produced by anaddb: + + trf2_5.out_PHDOS.nc: phonon DOS compute with anaddb. + +See also tutorial/lesson_rf2.html +""" + +#%% +# We start by defining a list with the paths to the PHDOS.nc files +# In this case, for simplicity, we use the same file but we must +# use different labels when adding them to the plotter with the add_phdos method. + +from abipy import abilab +import abipy.data as abidata + +phdos_paths = [abidata.ref_file("trf2_5.out_PHDOS.nc")] + +plotter = abilab.PhononDosPlotter() +plotter.add_phdos("AlAs", phdos_paths[0]) +plotter.add_phdos("Same AlAs", phdos_paths[0]) + +#%% +# To visualize the results on a grid with matplotlib, use: +plotter.gridplot(units="cm-1", tight_layout=True, title="Phonon DOS in cm-1 on grid") + +#%% +# For the plotly version: +plotter.gridplotly(units="cm-1", title="Phonon DOS in cm-1 on grid") diff --git a/abipy/examples/plot/plot_phonon_fatbands.py b/abipy/examples/plot/plot_phonon_fatbands.py index 21fc52268..e2585dff5 100755 --- a/abipy/examples/plot/plot_phonon_fatbands.py +++ b/abipy/examples/plot/plot_phonon_fatbands.py @@ -13,14 +13,22 @@ with abiopen(abidata.ref_file("trf2_5.out_PHBST.nc")) as ncfile: phbands = ncfile.phbands -# Plot the phonon band structure. +# Plot the phonon band structure with matplotlib. phbands.plot_fatbands(title="AlAs phonon fatbands without LO-TO splitting") -# Plot the phonon band structure + PJDOS +# For the plotly version, use: +phbands.plotly_fatbands(title="AlAs phonon fatbands without LO-TO splitting") + +# Provide the PHDOS file path produced by anaddb. # sphinx_gallery_thumbnail_number = 2 phdos_path = abidata.ref_file("trf2_5.out_PHDOS.nc") + +# Plot the phonon band structure + PJDOS with matplotlib. phbands.plot_fatbands(units="Thz", phdos_file=phdos_path, title="AlAs phonon fatbands with PJDOS") +# For the plotly version, use: +phbands.plotly_fatbands(units="Thz", phdos_file=phdos_path, title="AlAs phonon fatbands with PJDOS") + # Plot contributions to the phonon displacement at the Gamma point grouped by atom type. phbands.plot_phdispl(qpoint=(0, 0, 0), units="meV", title=r"phonon displacements at $\Gamma$") diff --git a/abipy/examples/plot/plot_phonon_pjdos.py b/abipy/examples/plot/plot_phonon_pjdos.py index 627b9fa72..7eca85309 100755 --- a/abipy/examples/plot/plot_phonon_pjdos.py +++ b/abipy/examples/plot/plot_phonon_pjdos.py @@ -3,23 +3,41 @@ Projected phonon DOS ==================== -This example shows how to plot the projected phonon DOS of AlAs. +This example shows how to plot the projected phonon DOS (PJDOS) of AlAs. See tutorial/lesson_rf2.html """ -from abipy.abilab import abiopen -import abipy.data as abidata +#%% # Read the Phonon DOS from the netcdf file produced by anaddb with prtdos 2 # (alternatively one can use the shell and `abiopen.py OUT_PHDOS.nc -nb` # to open the file in a jupyter notebook. -with abiopen(abidata.ref_file("trf2_5.out_PHDOS.nc")) as phdos_file: - # Plot PJDOS. - phdos_file.plot_pjdos_type(units="cm-1", title="AlAs type-projected phonon DOS") +from abipy.abilab import abiopen +import abipy.data as abidata + +phdos_file = abiopen(abidata.ref_file("trf2_5.out_PHDOS.nc")) + +#%% +# To plot the PJDOS with matplotlib, use: + +phdos_file.plot_pjdos_type(units="cm-1", title="AlAs type-projected phonon DOS") + +#%% +# For the plotly version, use: + +phdos_file.plotly_pjdos_type(units="cm-1", title="AlAs type-projected phonon DOS") + +#%% +# To have the projection along the cartesian directions (summed over atomic types), use + +phdos_file.plot_pjdos_cartdirs_type(units="Thz", stacked=True, + title="Type-projected ph-DOS decomposed along the three Cartesian directions.") + +#%% +# To plot the PJDOS for all the inequivalent sites, use: - # To have the projection along the cartesian directions (summed over atomic types) - phdos_file.plot_pjdos_cartdirs_type(units="Thz", stacked=True, - title="Type-projected ph-DOS decomposed along the three Cartesian directions.") +phdos_file.plot_pjdos_cartdirs_site(view="inequivalent", stacked=True) - # To plot the PJDOS for all the inequivalent sites. - phdos_file.plot_pjdos_cartdirs_site(view="inequivalent", stacked=True) +#%% +# Remember to close the file +phdos_file.close() diff --git a/abipy/examples/plot/plot_phonons_infrared.py b/abipy/examples/plot/plot_phonons_infrared.py index 1ecb528c9..4f49194dc 100755 --- a/abipy/examples/plot/plot_phonons_infrared.py +++ b/abipy/examples/plot/plot_phonons_infrared.py @@ -31,6 +31,10 @@ tgen.plot(component="diag", reim="re", gamma_ev=gamma_ev, title="Real part, diagonal components") +tgen.plotly(component="diag", reim="re", gamma_ev=gamma_ev, title="Real part, diagonal components") + tgen.plot(component="diag", reim="im", gamma_ev=gamma_ev, title="Imaginary part, diagonal components") +tgen.plotly(component="diag", reim="im", gamma_ev=gamma_ev, title="Imaginary part, diagonal components") + ddb.close() diff --git a/abipy/examples/plot/plot_phonons_lo_to.py b/abipy/examples/plot/plot_phonons_lo_to.py index 14ff9aa3b..ea120c64a 100755 --- a/abipy/examples/plot/plot_phonons_lo_to.py +++ b/abipy/examples/plot/plot_phonons_lo_to.py @@ -1,28 +1,40 @@ #!/usr/bin/env python r""" -Phonon Bands with LO-TO -======================= +Phonon bands with LO-TO from PHBST.nc +===================================== This example shows how to plot the phonon band structure of AlAs -including the LO-TO splitting. See tutorial/lesson_rf2.html +including the LO-TO splitting. +These resultas tutorial/lesson_rf2.html """ -from abipy.abilab import abiopen -import abipy.data as abidata +#%% # Open PHBST file produced by anaddb and extract the phonon bands object. # (alternatively one can use the shell and `abiopen.py OUT_PHBST.nc -nb` # to open the file in a jupyter notebook. + +from abipy.abilab import abiopen +import abipy.data as abidata + with abiopen(abidata.ref_file("ZnSe_hex_886.out_PHBST.nc")) as ncfile: phbands = ncfile.phbands +#%% # Phonon frequencies with non analytical contributions, if calculated, are saved # in the anaddb.nc file produced by anaddb. The results should be fetched from there # and added to the phonon bands. -phbands.read_non_anal_from_file(abidata.ref_file("ZnSe_hex_886.anaddb.nc")) - # Notice that all the directions starting from or arriving at gamma that are used # in the path should explicitely calculated, even if the values are the same. +phbands.read_non_anal_from_file(abidata.ref_file("ZnSe_hex_886.anaddb.nc")) + +#%% # Plot the phonon frequencies. Note that the labels for the q-points # are found automatically by searching in an internal database. + phbands.plot(title="ZnSe with LO-TO splitting") + +#%% +# For the plotly version, use: + +phbands.plotly(title="ZnSe with LO-TO splitting") diff --git a/abipy/examples/plot/plot_phonons_msqd.py b/abipy/examples/plot/plot_phonons_msqd.py index 3efad0a6c..6b5489363 100755 --- a/abipy/examples/plot/plot_phonons_msqd.py +++ b/abipy/examples/plot/plot_phonons_msqd.py @@ -1,11 +1,12 @@ #!/usr/bin/env python r""" -Projected phonon DOS -==================== +Debye-Waller and generalized phonon DOS +======================================= This example shows how to plot the generalized phonon DOS with the mean square displacement tensor in cartesian coords and how to calculate Debye Waller factors as a function of temperature. + See :cite:`Lee1995` for the further details about the internal implementation and :cite:`Trueblood1996` for the different conventions used by crystallographers. """ @@ -21,7 +22,8 @@ # Invoke anaddb to compute phonon bands and dos. #dos_method = "gaussian" dos_method = "tetra" -phbst_file, phdos_file = ddb.anaget_phbst_and_phdos_files(nqsmall=4, dos_method=dos_method, ndivsm=1, mpi_procs=2) +phbst_file, phdos_file = ddb.anaget_phbst_and_phdos_files(nqsmall=4, dos_method=dos_method, + ndivsm=1, mpi_procs=2) # Extract msqd_dos msqd_dos = phdos_file.msqd_dos diff --git a/abipy/examples/plot/plot_phthermo.py b/abipy/examples/plot/plot_phthermo.py index 2b9080a2f..492beb6c9 100755 --- a/abipy/examples/plot/plot_phthermo.py +++ b/abipy/examples/plot/plot_phthermo.py @@ -1,33 +1,49 @@ #!/usr/bin/env python r""" -Thermodinamic properties +Thermodynamic properties ======================== -This example shows how to compute and plot thermodinamic properties within +This example shows how to compute and plot thermodynamic properties within the harmonic approximation using the phonon DOS produced by anaddb. """ -from __future__ import print_function - from abipy.abilab import abiopen import abipy.data as abidata +#%% # Read the Phonon DOS from the netcd file produced by anaddb (prtdos 2) + ncfile = abiopen(abidata.ref_file("trf2_5.out_PHDOS.nc")) phdos = ncfile.phdos +#%% # Print crystalline structure and zero-point energy. + print(ncfile.structure) zpe = phdos.zero_point_energy print("Zero point energy:", zpe, zpe.to("J"), zpe.to("Ha")) +#%% # Compute free energy from 2 to 300 K (20 points) # By default, energies are is eV and thermodynamic quantities are given # on a per-unit-cell basis. + f = phdos.get_free_energy(tstart=2, tstop=300, num=20) #f.plot() +#%% # Plot U, F, S, Cv as a function of T. # Use J/mol units, results are divided by formula_units. + phdos.plot_harmonic_thermo(units="Jmol", formula_units=1) +#%% +# Plotly version with dark template. + +phdos.plotly_harmonic_thermo(units="Jmol", formula_units=1, + title=f"Thermodinamic properties of {ncfile.structure.formula}", + template="plotly_dark", + ) + +#%% +# Remember to close the file: ncfile.close() diff --git a/abipy/examples/plot/plot_speed_of_sound.py b/abipy/examples/plot/plot_speed_of_sound.py index 5311f3726..76f9a9367 100755 --- a/abipy/examples/plot/plot_speed_of_sound.py +++ b/abipy/examples/plot/plot_speed_of_sound.py @@ -7,9 +7,13 @@ along selected directions by linear least-squares fit. For a command line interface use: - abiview.py ddb_vs input_DDB +.. code-block:: bash + + abiview.py ddb_vs DDB_FILE """ -from __future__ import print_function + +#%% +# Initialize object from DDB file. import os import abipy.data as abidata @@ -17,13 +21,21 @@ from abipy import abilab from abipy.dfpt.vsound import SoundVelocity -# Initialize object from DDB file. ddb_path = os.path.join(abidata.dirpath, "refs", "si_sound_vel", "Si_DDB") sv = SoundVelocity.from_ddb(ddb_path) +#%% # Get pandas dataframe with results. + df = sv.get_dataframe() abilab.print_dataframe(df) -# Plot fit +#%% +# Plot fit with matplotlib + sv.plot() + +#%% +# Plot fit with plotly + +sv.plotly(template="plotly_dark") diff --git a/abipy/examples/plot/plot_structure.py b/abipy/examples/plot/plot_structure.py deleted file mode 100755 index fa92ab66d..000000000 --- a/abipy/examples/plot/plot_structure.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env python -r""" -Unit cell -========= - -This example shows how to display the unit cell with matplotlib. -""" -from abipy.abilab import abiopen -import abipy.data as abidata - -# Extract structure from netcdf file. -with abiopen(abidata.ref_file("sio2_kpath_GSR.nc")) as gsr: - structure = gsr.structure - -# Visualize sites structure. -structure.plot(color_scheme="Jmol") - -# Wrap sites into first unit cell. -# sphinx_gallery_thumbnail_number = 2 -structure.plot(to_unit_cell=True) diff --git a/abipy/examples/plot/plotly_phbands_and_dos.py b/abipy/examples/plot/plotly_phbands_and_dos.py new file mode 100755 index 000000000..14994565e --- /dev/null +++ b/abipy/examples/plot/plotly_phbands_and_dos.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +r""" +Phonon Band structures (Plotly version) +======================================= + +This example shows how to plot the phonon band structure of AlAs with plotly. +See tutorial/lesson_rf2.html +""" +from abipy.abilab import abiopen +import abipy.data as abidata + +# Open the PHBST file produced by anaddb and get the phonon bands. +with abiopen(abidata.ref_file("trf2_5.out_PHBST.nc")) as ncfile: + phbands = ncfile.phbands + +# Read the Phonon DOS from the netcd file produced by anaddb (prtdos 2) +with abiopen(abidata.ref_file("trf2_5.out_PHDOS.nc")) as ncfile: + phdos = ncfile.phdos + +#%% +# plot phonon bands and DOS. +# `plot_phonons_lo_to.py` shows how to treat the LO-TO splitting. + +phbands.plotly(title="AlAs Phonon bands and DOS in eV") + +#%% +# plot phonon bands with DOS. + +phbands.plotly_with_phdos(phdos, units="cm-1", title="AlAs Phonon bands + DOS in cm-1") + +#%% +# plot phonon DOS. + +phdos.plotly(units="cm-1", title="Phonon DOS and IDOS in cm-1") + +# Plot the phonon band structure with different color for each line. +#phbands.plot_colored_matched(units="cm-1", +# title="AlAs with different color for each line.") + +# sphinx_gallery_thumbnail_path = '_static/plotly_logo.png' diff --git a/abipy/examples/tests/test_plots.py b/abipy/examples/tests/_test_plots.py similarity index 51% rename from abipy/examples/tests/test_plots.py rename to abipy/examples/tests/_test_plots.py index 9df66dbd9..ddac35bc9 100644 --- a/abipy/examples/tests/test_plots.py +++ b/abipy/examples/tests/_test_plots.py @@ -11,34 +11,23 @@ class TestPlots(AbipyTest): - #def test_plots_with_runtests(self): - # """Running _runplots script.""" - # if not self.has_matplotlib(): - # raise unittest.SkipTest("matplotlib is not installed") - # script = os.path.abspath(os.path.join(root, "..", "_runplots.py")) - # assert os.path.exists(script) - # assert os.system(script + " --backend Agg") - def test_plots_with_exec(self): - """Running plot script with exec.""" + """ + Running plot scripts in example/plots directory with exec. + """ + # Travis issue #if os.environ.get("TRAVIS"): # raise unittest.SkipTest("Skipping plot examples on TRAVIS") - # Travis issue if not self.has_matplotlib(): raise unittest.SkipTest("matplotlib is not installed") - #0 file /home/travis/build/abinit/abipy/abipy/examples/tests/../plot/plot_qpconverge.py - # Traceback (most recent call last): - # File "/home/travis/build/abinit/abipy/abipy/examples/tests/test_plots.py", line 29, in test_plots - # exec(fh.read()) - # File "", line 16, in - # File "", line 16, in - #NameError: name 'abidata' is not defined - if sys.version[0:3] >= '3.4': - raise unittest.SkipTest("Weird behaviour of exec when Python version >= 3.4") - import matplotlib.pyplot as plt + from abipy.tools.plotting import set_plotly_default_show + ply_show = False + ply_show = True + print("Setting plotly_default_show to: ", ply_show) + set_plotly_default_show(ply_show) plot_dir = os.path.join(root, "..", "plot") count, errors = 0, [] @@ -46,8 +35,8 @@ def test_plots_with_exec(self): if not (fname.endswith(".py") and fname.startswith("plot_")): continue count += 1 path = os.path.join(plot_dir, fname) + print("About to execute:", path) try: - #execfile(path) with open(path, "rt") as fh: exec(fh.read(), {}, {}) except Exception: @@ -57,8 +46,4 @@ def test_plots_with_exec(self): print("Tested ", count, "plot scripts") assert count > 0 if errors: - #for i, e in enumerate(errors): - # print(80 * "*") - # print(i, e) - # print(80 * "*") raise RuntimeError("\n\n".join(str(e) for e in errors)) diff --git a/abipy/flowtk/__init__.py b/abipy/flowtk/__init__.py index 373b84d71..dee72d42c 100644 --- a/abipy/flowtk/__init__.py +++ b/abipy/flowtk/__init__.py @@ -6,6 +6,8 @@ from pymatgen.io.abinit.abiobjects import * from pymatgen.io.abinit.pseudos import Pseudo, PseudoTable, PseudoParser from pymatgen.io.abinit.netcdf import NetcdfReader + +from .abiinspect import GroundStateScfCycle, D2DEScfCycle, yaml_read_kpoints, yaml_read_irred_perts from .launcher import PyFlowScheduler, PyLauncher from .qadapters import show_qparams, all_qtypes from .wrappers import Mrgscr, Mrgddb, Cut3D, Fold2Bloch @@ -16,12 +18,11 @@ from .flows import (Flow, G0W0WithQptdmFlow, bandstructure_flow, PhononFlow, phonon_conv_flow, g0w0_flow, NonLinearCoeffFlow) from .abitimer import AbinitTimerParser, AbinitTimerSection -from pymatgen.io.abinit.abiinspect import GroundStateScfCycle, D2DEScfCycle, yaml_read_kpoints, yaml_read_irred_perts - from .events import EventsParser, autodoc_event_handlers #from abipy.flowtk.works import * #from abipy.flowtk.gs_works import EosWork -from abipy.flowtk.dfpt_works import ElasticWork, NscfDdksWork +from .dfpt_works import ElasticWork, NscfDdksWork +from .gw_works import ScreeningWork def flow_main(main): # pragma: no cover @@ -100,8 +101,6 @@ def execute(): retcode = flow.make_scheduler().start() if retcode == 0: retcode = 0 if flow.all_ok else 1 - elif options.batch: - retcode = flow.batch() else: # Default behaviour. retcode = flow.build_and_pickle_dump() @@ -126,8 +125,24 @@ def build_flow_main_parser(): """ Build and return the parser used in the abipy/data/runs scripts. """ + + epilog = """\ +====================================================================================================== +Usage example: + + script.py => Build flow without submitting it. + script.py -s => Build flow and start the scheduler + nohup script.py -s > log 2> err & => Build flow, start the scheduler in background + This is the recommended approach for long-running calculations. + Thanks to `nohup`, it is possible to disconnect the terminal + without killing the scheduler. + +====================================================================================================== +""" + import argparse - parser = argparse.ArgumentParser() + parser = argparse.ArgumentParser(epilog=epilog, + formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument('--loglevel', default="ERROR", type=str, help="set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") @@ -138,13 +153,13 @@ def build_flow_main_parser(): "working directory first then ~/.abinit/abipy/manager.yml.") parser.add_argument("-s", '--scheduler', action="store_true", default=False, help="Run the flow with the scheduler") - parser.add_argument("-b", '--batch', action="store_true", default=False, help="Run the flow in batch mode") - parser.add_argument("-r", "--remove", default=False, action="store_true", help="Remove old flow workdir") + parser.add_argument("-r", "--remove", default=False, action="store_true", help="Remove old flow workdir (if any)") parser.add_argument("-p", "--plot", default=False, action="store_true", help="Plot flow with networkx.") parser.add_argument("-g", "--graphviz", default=False, action="store_true", help="Plot flow with graphviz.") parser.add_argument("-d", "--dry-run", default=False, action="store_true", help="Don't write directory with flow.") parser.add_argument("-a", "--abivalidate", default=False, action="store_true", help="Call Abinit to validate input files.") parser.add_argument("-t", "--tempdir", default=False, action="store_true", help="Execute flow in temporary directory.") parser.add_argument("--prof", action="store_true", default=False, help="Profile code wth cProfile ") + parser.add_argument("-e", "--extra", default=None, help="Extra argument passed to the script.") return parser diff --git a/abipy/flowtk/abiinspect.py b/abipy/flowtk/abiinspect.py index 8a5782290..a928fafc6 100644 --- a/abipy/flowtk/abiinspect.py +++ b/abipy/flowtk/abiinspect.py @@ -1,2 +1,818 @@ -# flake8: noqa -from pymatgen.io.abinit.abiinspect import * +# pylint: disable=no-member, chained-comparison, unnecessary-comprehension, not-callable +""" +This module provides objects to inspect the status of the Abinit tasks at run-time. +by extracting information from the main output file (text format). +""" +from __future__ import annotations + +import os +from collections import OrderedDict +from collections.abc import Iterable, Iterator, Mapping +from typing import Union + +import numpy as np +from monty.collections import AttrDict +from monty.functools import lazy_property +from tabulate import tabulate +from abipy.tools.iotools import yaml_safe_load +from abipy.tools.plotting import (add_fig_kwargs, get_axarray_fig_plt, + get_figs_plotly, plotly_set_lims, add_plotly_fig_kwargs) +from abipy.tools.typing import Figure + + +def straceback() -> str: + """Returns a string with the traceback.""" + import traceback + return traceback.format_exc() + + +def _magic_parser(stream, magic: str) -> dict: + """ + Parse the section with the SCF cycle + + Returns: + dict where the key are the name of columns and + the values are list of numbers. Note if no section was found. + + .. warning:: + + The parser is very fragile and should be replaced by YAML. + """ + # Example (SCF cycle, similar format is used for phonons): + # + # iter Etot(hartree) deltaE(h) residm vres2 + # ETOT 1 -8.8604027880849 -8.860E+00 2.458E-02 3.748E+00 + + # At SCF step 5 vres2 = 3.53E-08 < tolvrs= 1.00E-06 =>converged. + in_doc, fields = 0, None + + for line in stream: + line = line.strip() + + if line.startswith(magic): + # print("Found magic token in line:", line) + keys = line.split() + fields = OrderedDict((k, []) for k in keys) + + if fields is not None: + # print(line) + in_doc += 1 + if in_doc == 1: + continue + + # End of the section or empty SCF cycle + if not line or line.startswith("prteigrs"): + break + + # print("Try to parse line:", line) + tokens = list(map(float, line.split()[1:])) + assert len(tokens) == len(keys) + for l, v in zip(fields.values(), tokens): + l.append(v) + + # Convert values to numpy arrays. + if fields: + return OrderedDict([(k, np.array(v)) for k, v in fields.items()]) + return None + + +def plottable_from_outfile(filepath: str): + """ + Factory function that returns a plottable object by inspecting the main output file of abinit + Returns None if it is not able to detect the class to instantiate. + """ + # TODO + # Figure out how to detect the type of calculations + # without having to parse the input. Possible approach: YAML doc + # with YamlTokenizer(filepath) as r: + # doc = r.next_doc_with_tag("!CalculationType") + # d = yaml.safe_load(doc.text_notag) + # calc_type = d["calculation_type"] + + # ctype2class = { + # "Ground State": GroundStateScfCycle, + # "Phonon": PhononScfCycle, + # "Relaxation": Relaxation, + # } + # obj = ctype2class.get(calc_type, None) + + obj = GroundStateScfCycle + if obj is not None: + return obj.from_file(filepath) + return None + + +# Use log scale for these variables. +_VARS_SUPPORTING_LOGSCALE = set(["residm", "vres2", "nres2"]) + +# Hard-coded y-range for selected variables. +_VARS_WITH_YRANGE = { + "deltaE(h)": (-1e-3, +1e-3), + "deltaE(Ha)": (-1e-3, +1e-3), +} + + +class ScfCycle(Mapping): + """ + It essentially consists of a dictionary mapping string + to list of floats containing the data at the different iterations. + + .. attribute:: + + num_iterations: Number of iterations performed. + """ + + MAGIC = "Must be defined by the subclass." "" + + def __init__(self, fields: dict) -> None: + """ + Args: + fields: Dictionary with label --> list of numerical values. + """ + self.fields = fields + all_lens = [len(lst) for lst in self.values()] + self.num_iterations = all_lens[0] + assert all(n == self.num_iterations for n in all_lens) + + def __getitem__(self, slice): + return self.fields.__getitem__(slice) + + def __iter__(self): + return self.fields.__iter__() + + def __len__(self) -> int: + return len(self.fields) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation.""" + rows = [[it + 1] + list(map(str, (v[it] for k, v in self.items()))) for it in range(self.num_iterations)] + + return tabulate(rows, headers=["Iter"] + list(self.keys())) + + @property + def last_iteration(self) -> dict: + """Returns a dictionary with the values of the last iteration.""" + return {k: v[-1] for k, v in self.items()} + + @classmethod + def from_file(cls, filepath: str) -> ScfCycle: + """Read the first occurrence of ScfCycle from file.""" + with open(filepath, "rt") as stream: + return cls.from_stream(stream) + + @classmethod + def from_stream(cls, stream) -> Union[ScfCycle, None]: + """ + Read the first occurrence of ScfCycle from stream. + + Returns: + None if no `ScfCycle` entry is found. + """ + fields = _magic_parser(stream, magic=cls.MAGIC) + + if fields: + fields.pop("iter") + return cls(fields) + + return None + + @add_fig_kwargs + def plot(self, ax_list=None, fontsize=8, **kwargs) -> Figure: + """ + Uses matplotlib to plot the evolution of the SCF cycle. + + Args: + ax_list: List of axes. If None a new figure is produced. + fontsize: legend fontsize. + kwargs: keyword arguments are passed to ax.plot + + Returns: matplotlib figure + """ + # Build grid of plots. + num_plots, ncols, nrows = len(self), 1, 1 + if num_plots > 1: + ncols = 2 + nrows = num_plots // ncols + num_plots % ncols + + ax_list, fig, plot = get_axarray_fig_plt( + ax_list, nrows=nrows, ncols=ncols, sharex=True, sharey=False, squeeze=False + ) + ax_list = np.array(ax_list).ravel() + + iter_num = np.array(list(range(self.num_iterations))) + 1 + label = kwargs.pop("label", None) + + for i, ((key, values), ax) in enumerate(zip(self.items(), ax_list)): + ax.grid(True) + ax.set_xlabel("Iteration Step") + ax.set_xticks(iter_num, minor=False) + ax.set_ylabel(key) + + xx, yy = iter_num, values + if self.num_iterations > 1: + # Don't show the first iteration since it's not very useful. + xx, yy = xx[1:], values[1:] + + if not kwargs and label is None: + ax.plot(xx, yy, "-o", lw=2.0) + else: + ax.plot(xx, yy, label=label if i == 0 else None, **kwargs) + + if key in _VARS_SUPPORTING_LOGSCALE and np.all(yy > 1e-22): + ax.set_yscale("log") + + if key in _VARS_WITH_YRANGE: + ymin, ymax = _VARS_WITH_YRANGE[key] + val_min, val_max = np.min(yy), np.max(yy) + if abs(val_max - val_min) > abs(ymax - ymin): + ax.set_ylim(ymin, ymax) + + if label is not None: + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + # Get around a bug in matplotlib. + if num_plots % ncols != 0: + ax_list[-1].plot(xx, yy, lw=0.0) + ax_list[-1].axis("off") + + return fig + + @add_plotly_fig_kwargs + def plotly(self, fontsize=12, **kwargs): + """ + Uses plotly to plot the evolution of the SCF cycle. + + Args: + fontsize: legend fontsize. + kwargs: keyword arguments are passed to go.Scatter. + + Returns: plotly figure + """ + # Build grid of plots. + num_plots, ncols, nrows = len(self), 1, 1 + if num_plots > 1: + ncols = 2 + nrows = num_plots // ncols + num_plots % ncols + + # Build fig. + fig, go = get_figs_plotly(nrows=nrows, ncols=ncols, sharex=True, sharey=False) + + iter_num = np.array(list(range(self.num_iterations))) + 1 + + for i, (key, values) in enumerate(self.items()): + row, col = divmod(i, ncols) + row += 1 + col += 1 + + xx, yy = iter_num, values + if self.num_iterations > 1: + # Don't show the first iteration since it's not very useful. + xx, yy = xx[1:], values[1:] + + trace = go.Scatter(x=xx, y=yy, mode="lines+markers", showlegend=False, **kwargs) + fig.add_trace(trace, row=row, col=col) + fig.update_xaxes(title_text="Iteration Step", row=row, col=col) + fig.update_yaxes(title_text=key, row=row, col=col) + + if key in _VARS_SUPPORTING_LOGSCALE and np.all(yy > 1e-22): + fig.update_yaxes(type="log", row=row, col=col) + + if key in _VARS_WITH_YRANGE: + ymin, ymax = _VARS_WITH_YRANGE[key] + val_min, val_max = np.min(yy), np.max(yy) + if abs(val_max - val_min) > abs(ymax - ymin): + plotly_set_lims(fig, (ymin, ymax), "y", iax=i + 1) + + fig.layout.legend.font.size = fontsize + fig.layout.title.font.size = fontsize + + return fig + + +class GroundStateScfCycle(ScfCycle): + """ + Result of the Ground State self-consistent cycle. + """ + + MAGIC = "iter Etot(hartree)" + + @property + def last_etotal(self) -> float: + """The total energy at the last iteration.""" + return self["Etot(hartree)"][-1] + + +class D2DEScfCycle(ScfCycle): + """Result of the Phonon self-consistent cycle.""" + + MAGIC = "iter 2DEtotal(Ha)" + + @property + def last_etotal(self) -> float: + """The 2-nd order derivative of the energy at the last iteration.""" + return self["2DEtotal(Ha)"][-1] + + +class PhononScfCycle(D2DEScfCycle): + """Iterations of the DFPT SCF cycle for phonons.""" + + +class CyclesPlotter: + """Relies on the plot method of cycle objects to build multiple subfigures.""" + + def __init__(self): + """Initialize object.""" + self.labels = [] + self.cycles = [] + + def items(self): + """To iterate over (label, cycle).""" + return zip(self.labels, self.cycles) + + def add_label_cycle(self, label, cycle): + """Add new cycle to the plotter with label `label`.""" + self.labels.append(label) + self.cycles.append(cycle) + + @add_fig_kwargs + def combiplot(self, fontsize=8, **kwargs) -> Figure: + """ + Compare multiple cycels on a grid: one subplot per quantity, + all cycles on the same subplot. + + Args: + fontsize: Legend fontsize. + """ + ax_list = None + for i, (label, cycle) in enumerate(self.items()): + fig = cycle.plot( + ax_list=ax_list, + label=label, + fontsize=fontsize, + lw=2.0, + marker="o", + linestyle="-", + show=False, + ) + ax_list = fig.axes + + return fig + + def slideshow(self, **kwargs): + """ + Produce slides show of the different cycles. One plot per cycle. + """ + for label, cycle in self.items(): + cycle.plot(title=label, tight_layout=True) + + +class Relaxation(Iterable): + """ + A list of :class:`GroundStateScfCycle` objects. + + .. attribute:: + + num_iterations: Number of iterations performed. + + .. note:: + + Forces, stresses and crystal structures are missing. + This object is mainly used to analyze the behavior of the Scf cycles + during the structural relaxation. A more powerful and detailed analysis + can be obtained by using the HIST.nc file. + """ + + def __init__(self, cycles: list[GroundStateScfCycle]) -> None: + """ + Args + cycles: list of `GroundStateScfCycle` objects. + """ + self.cycles = cycles + self.num_iterations = len(self.cycles) + + def __iter__(self) -> Iterator[GroundStateScfCycle]: + return self.cycles.__iter__() + + def __len__(self) -> int: + return self.cycles.__len__() + + def __getitem__(self, slice) -> Union[GroundStateScfCycle, list[GroundStateScfCycle]]: + return self.cycles[slice] + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """String representation.""" + lines = [] + app = lines.append + for i, cycle in enumerate(self): + app("") + app("RELAXATION STEP: %d" % (i + 1)) + app(cycle.to_string(verbose=verbose)) + + return "\n".join(lines) + + @classmethod + def from_file(cls, filepath: str) -> Union[Relaxation, None]: + """Initialize the object from the Abinit main output file.""" + with open(filepath, "rt") as stream: + return cls.from_stream(stream) + + @classmethod + def from_stream(cls, stream) -> Union[Relaxation, None]: + """ + Extract data from stream. Returns None if some error occurred. + """ + cycles = [] + while True: + scf_cycle = GroundStateScfCycle.from_stream(stream) + if scf_cycle is None: + break + cycles.append(scf_cycle) + + return cls(cycles) if cycles else None + + @lazy_property + def history(self) -> dict: + """ + dictionary of lists with the evolution of + the data as function of the relaxation step. + """ + history = {} + for cycle in self: + d = cycle.last_iteration + for k, v in d.items(): + if k in history: + history[k].append(v) + else: + history[k] = [v] + + # Convert to numpy arrays. + for k, v in history.items(): + history[k] = np.array(v) + + return history + + def slideshow(self, **kwargs): + """ + Uses matplotlib to plot the evolution of the structural relaxation. + + Args: + ax_list: List of axes. If None a new figure is produced. + + Returns: `matplotlib` figure + """ + for i, cycle in enumerate(self.cycles): + cycle.plot( + title="Relaxation step %s" % (i + 1), + tight_layout=kwargs.pop("tight_layout", True), + show=kwargs.pop("show", True), + ) + + @add_fig_kwargs + def plot(self, ax_list=None, fontsize=8, **kwargs) -> Figure: + """ + Plot relaxation history i.e. the results of the last iteration of each SCF cycle. + + Args: + ax_list: List of axes. If None a new figure is produced. + fontsize: legend fontsize. + kwargs: keyword arguments are passed to ax.plot + + Returns: matplotlib figure + """ + history = self.history + + # Build grid of plots. + num_plots, ncols, nrows = len(history), 1, 1 + if num_plots > 1: + ncols = 2 + nrows = num_plots // ncols + num_plots % ncols + + ax_list, fig, plot = get_axarray_fig_plt( + ax_list, nrows=nrows, ncols=ncols, sharex=True, sharey=False, squeeze=False + ) + ax_list = np.array(ax_list).ravel() + + iter_num = np.array(list(range(self.num_iterations))) + 1 + label = kwargs.pop("label", None) + + for i, ((key, values), ax) in enumerate(zip(history.items(), ax_list)): + ax.grid(True) + ax.set_xlabel("Relaxation Step") + ax.set_xticks(iter_num, minor=False) + ax.set_ylabel(key) + + xx, yy = iter_num, values + if not kwargs and label is None: + ax.plot(xx, yy, "-o", lw=2.0) + else: + ax.plot(xx, yy, label=label if i == 0 else None, **kwargs) + + if key in _VARS_SUPPORTING_LOGSCALE and np.all(yy > 1e-22): + ax.set_yscale("log") + + if key in _VARS_WITH_YRANGE: + ymin, ymax = _VARS_WITH_YRANGE[key] + val_min, val_max = np.min(yy), np.max(yy) + if abs(val_max - val_min) > abs(ymax - ymin): + ax.set_ylim(ymin, ymax) + + if label is not None: + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + # Get around a bug in matplotlib. + if num_plots % ncols != 0: + ax_list[-1].plot(xx, yy, lw=0.0) + ax_list[-1].axis("off") + + return fig + + +# TODO +# class HaydockIterations(Iterable): +# """This object collects info on the different steps of the Haydock technique used in the Bethe-Salpeter code""" +# @classmethod +# def from_file(cls, filepath): +# """Initialize the object from file.""" +# with open(filepath, "rt") as stream: +# return cls.from_stream(stream) +# +# @classmethod +# def from_stream(cls, stream): +# """Extract data from stream. Returns None if some error occurred.""" +# cycles = [] +# while True: +# scf_cycle = GroundStateScfCycle.from_stream(stream) +# if scf_cycle is None: break +# cycles.append(scf_cycle) +# +# return cls(cycles) if cycles else None +# +# #def __init__(self): +# +# def plot(self, **kwargs): +# """ +# Uses matplotlib to plot the evolution of the structural relaxation. +# ============== ============================================================== +# kwargs Meaning +# ============== ============================================================== +# title Title of the plot (Default: None). +# how True to show the figure (Default). +# savefig 'abc.png' or 'abc.eps'* to save the figure to a file. +# ============== ============================================================== +# Returns: +# `matplotlib` figure +# """ +# import matplotlib.pyplot as plt +# title = kwargs.pop("title", None) +# show = kwargs.pop("show", True) +# savefig = kwargs.pop("savefig", None) +# if title: fig.suptitle(title) +# if savefig is not None: fig.savefig(savefig) +# if show: plt.show() +# return fig + + +################## +# Yaml parsers. +################## + + +class YamlTokenizerError(Exception): + """Exceptions raised by :class:`YamlTokenizer`.""" + + +class YamlTokenizer(Iterator): + """ + Provides context-manager support so you can use it in a with statement. + """ + + Error = YamlTokenizerError + + def __init__(self, filename: str): + """ + Args: + filename: Filename + """ + # The position inside the file. + self.linepos = 0 + self.filename = filename + + try: + self.stream = open(filename, "rt") # pylint: disable=R1732 + except IOError as exc: + # Look for associated error file. + root, ext = os.path.splitext(self.filename) + errfile = root + ".err" + if os.path.exists(errfile) and errfile != self.filename: + print("Found error file: %s" % errfile) + with open(errfile, "rt") as fh: + print(fh.read()) + raise exc + + def __iter__(self): + return self + + def __enter__(self): + return self + + def __exit__(self, type, value, traceback): + self.close() + + def __del__(self): + self.close() + + def close(self) -> None: + """Close the stream.""" + try: + self.stream.close() + except Exception: + print("Exception in YAMLTokenizer.close()") + print("Python traceback:") + print(straceback()) + + def seek(self, offset, whence=0): + """ + seek(offset[, whence]) -> None. Move to new file position. + + Argument offset is a byte count. Optional argument whence defaults to + 0 (offset from start of file, offset should be >= 0); other values are 1 + (move relative to current position, positive or negative), and 2 (move + relative to end of file, usually negative, although many platforms allow + seeking beyond the end of a file). If the file is opened in text mode, + only offsets returned by tell() are legal. Use of other offsets causes + undefined behavior. + Note that not all file objects are seekable. + """ + assert offset == 0 + self.linepos = 0 + return self.stream.seek(offset, whence) + + # Python 3 compatibility + def __next__(self): + return self.next() + + def next(self): + """ + Returns the first YAML document in stream. + + .. warning:: + + Assume that the YAML document are closed explicitely with the sentinel '...' + """ + in_doc, lines, doc_tag = None, [], None + + for i, line in enumerate(self.stream): + self.linepos += 1 + # print(i, line) + + if line.startswith("---"): + # Include only lines in the form: + # "--- !tag" + # "---" + # Other lines are spurious. + in_doc = False + l = line[3:].strip().lstrip() + + if l.startswith("!"): + # "--- !tag" + doc_tag = l + in_doc = True + elif not l: + # "---" + in_doc = True + doc_tag = None + + if in_doc: + lineno = self.linepos + + if in_doc: + lines.append(line) + + if in_doc and line.startswith("..."): + return YamlDoc(text="".join(lines), lineno=lineno, tag=doc_tag) + + raise StopIteration("Cannot find next YAML document in %s" % self.filename) + + def all_yaml_docs(self) -> list: + """ + Returns a list with all the YAML docs found in stream. + Seek the stream before returning. + + .. warning:: + + Assume that all the YAML docs (with the exception of the last one) + are closed explicitely with the sentinel '...' + """ + docs = [doc for doc in self] + self.seek(0) + return docs + + def next_doc_with_tag(self, doc_tag: str): + """ + Returns the next document with the specified tag. Empty string is no doc is found. + """ + while True: + try: + doc = next(self) + if doc.tag == doc_tag: + return doc + + except StopIteration: + raise + + def all_docs_with_tag(self, doc_tag: str) -> list: + """ + Returns all the documents with the specified tag. + """ + docs = [] + + while True: + try: + doc = self.next_doc_with(doc_tag) + docs.append(doc) + + except StopIteration: + break + + self.seek(0) + return docs + + +def yaml_read_kpoints(filename: str, doc_tag: str = "!Kpoints") -> np.ndarray: + """Read the K-points from file. Return numpy array""" + with YamlTokenizer(filename) as r: + doc = r.next_doc_with_tag(doc_tag) + d = yaml_safe_load(doc.text_notag) + + return np.array(d["reduced_coordinates_of_qpoints"]) + + +def yaml_read_irred_perts(filename: str, doc_tag="!IrredPerts") -> list[AttrDict]: + """Read the list of irreducible perturbations from file.""" + with YamlTokenizer(filename) as r: + doc = r.next_doc_with_tag(doc_tag) + d = yaml_safe_load(doc.text_notag) + + return [AttrDict(**pert) for pert in d["irred_perts"]] + + +class YamlDoc: + """ + Handy object that stores that YAML document, its main tag and the + position inside the file. + """ + + __slots__ = [ + "text", + "lineno", + "tag", + ] + + def __init__(self, text: str, lineno: int, tag=None): + """ + Args: + text: String with the YAML document. + lineno: The line number where the document is located. + tag: The YAML tag associate to the document. + """ + # Sanitize strings: use "ignore" to skip invalid characters in .encode/.decode like + if isinstance(text, bytes): + text = text.decode("utf-8", "ignore") + text = text.rstrip().lstrip() + self.text = text + self.lineno = lineno + if isinstance(tag, bytes): + tag = tag.decode("utf-8", "ignore") + self.tag = tag + + def __str__(self): + return self.text + + def __eq__(self, other): + if other is None: + return False + return self.text == other.text and self.lineno == other.lineno and self.tag == other.tag + + def __ne__(self, other): + return not (self == other) + + @property + def text_notag(self) -> str: + """ + Returns the YAML text without the tag. + Useful if we don't have any constructor registered for the tag + (we used the tag just to locate the document). + """ + if self.tag is not None: + return self.text.replace(self.tag, "") + return self.text + + def as_dict(self) -> dict: + """Use Yaml to parse the text (without the tag) and returns a dictionary.""" + return yaml_safe_load(self.text_notag) diff --git a/abipy/flowtk/abiobjects.py b/abipy/flowtk/abiobjects.py index a7fb83796..a4eda6813 100644 --- a/abipy/flowtk/abiobjects.py +++ b/abipy/flowtk/abiobjects.py @@ -1,4 +1,6 @@ # flake8: noqa +from __future__ import annotations + import collections from pymatgen.core.units import Energy @@ -22,7 +24,7 @@ def __new__(cls, l, u, j, unit): return super().__new__(cls, l, u, j, unit) -class LdauParams(object): +class LdauParams: """ This object stores the parameters for LDA+U calculations with the PAW method It facilitates the specification of the U-J parameters in the Abinit input file. @@ -52,10 +54,10 @@ def __init__(self, usepawu, structure): self._params = {} @property - def symbols_by_typat(self): - return [specie.symbol for specie in self.structure.types_of_specie] + def symbols_by_typat(self) -> list: + return [specie.symbol for specie in self.structure.species_by_znucl] - def luj_for_symbol(self, symbol, l, u, j, unit="eV"): + def luj_for_symbol(self, symbol, l, u, j, unit="eV") -> None: """ Args: symbol: Chemical symbol of the atoms on which LDA+U should be applied. @@ -72,7 +74,7 @@ def luj_for_symbol(self, symbol, l, u, j, unit="eV"): self._params[symbol] = LujForSpecie(l=l, u=u, j=j, unit=unit) - def to_abivars(self): + def to_abivars(self) -> dict: """Returns a dict with the Abinit variables.""" lpawu, upawu, jpawu = [], [], [] @@ -97,7 +99,7 @@ def to_abivars(self): jpawu=" ".join(map(str, jpawu)) + " eV") -class LexxParams(object): +class LexxParams: """ This object stores the parameters for local exact exchange calculations with the PAW method It facilitates the specification of the LEXX parameters in the Abinit input file. @@ -123,10 +125,10 @@ def __init__(self, structure): self._lexx_for_symbol = {} @property - def symbols_by_typat(self): - return [specie.symbol for specie in self.structure.types_of_specie] + def symbols_by_typat(self) -> list: + return [specie.symbol for specie in self.structure.species_by_znucl] - def lexx_for_symbol(self, symbol, l): + def lexx_for_symbol(self, symbol, l) -> None: """ Enable LEXX for the given chemical symbol and the angular momentum l @@ -143,7 +145,7 @@ def lexx_for_symbol(self, symbol, l): self._lexx_for_symbol[symbol] = l - def to_abivars(self): + def to_abivars(self) -> dict: """Returns a dict with the Abinit variables.""" lexx_typat = [] diff --git a/abipy/flowtk/abiphonopy.py b/abipy/flowtk/abiphonopy.py index 20b832538..398fc3b6b 100644 --- a/abipy/flowtk/abiphonopy.py +++ b/abipy/flowtk/abiphonopy.py @@ -1,16 +1,13 @@ # coding: utf-8 -"""Interface between phonopy and abipy workflow model.""" +"""Interface between phonopy and the AbiPy workflow model.""" +from __future__ import annotations import os import numpy as np -try: - from phonopy import Phonopy, file_IO - from phonopy.interface.vasp import read_vasp_from_strings - from phonopy.interface.abinit import parse_set_of_forces -except ImportError: - import warnings - warnings.warn("phonopy is required by abiphonopy. Install it with conda or pip install phonopy") +from phonopy import Phonopy, file_IO +from phonopy.interface.vasp import read_vasp_from_strings +from phonopy.interface.abinit import parse_set_of_forces from abipy.core.structure import Structure from abipy.flowtk.works import Work @@ -24,7 +21,7 @@ ] -def atoms_from_structure(structure): +def atoms_from_structure(structure: Structure): """ Convert a pymatgen Structure into a phonopy Atoms object. """ @@ -32,9 +29,9 @@ def atoms_from_structure(structure): return read_vasp_from_strings(s, symbols=None) -def structure_from_atoms(atoms): +def structure_from_atoms(atoms) -> Structure: """ - Convert a phonopy Atoms object into a pymatgen Structure. + Convert a phonopy Atoms object into a abipy Structure. """ return Structure(lattice=atoms.cell, species=atoms.symbols, @@ -68,12 +65,12 @@ class PhonopyWork(Work): """ @classmethod - def from_gs_input(cls, gsinp, scdims, phonopy_kwargs=None, displ_kwargs=None): + def from_gs_input(cls, gs_inp, scdims, phonopy_kwargs=None, displ_kwargs=None) -> PhonopyWork: """ Build the work from an :class:`AbinitInput` object representing a GS calculations. Args: - gsinp::class:`AbinitInput` object representing a GS calculation in the initial unit cell. + gs_inp::class:`AbinitInput` object representing a GS calculation in the initial unit cell. scdims: Number of unit cell replicas along the three reduced directions. phonopy_kwargs: (Optional) dictionary with arguments passed to Phonopy constructor. displ_kwargs: (Optional) dictionary with arguments passed to generate_displacements. @@ -85,7 +82,7 @@ def from_gs_input(cls, gsinp, scdims, phonopy_kwargs=None, displ_kwargs=None): new.cpdata2dst = None # Initialize phonon. Supercell matrix has (3, 3) shape. - unitcell = atoms_from_structure(gsinp.structure) + unitcell = atoms_from_structure(gs_inp.structure) new.scdims = scdims = np.array(scdims) if scdims.shape != (3,): raise ValueError("Expecting 3 int in scdims but got %s" % str(scdims)) @@ -98,9 +95,9 @@ def from_gs_input(cls, gsinp, scdims, phonopy_kwargs=None, displ_kwargs=None): phonon.generate_displacements(**displ_kwargs) # distance=0.01, # Obtain supercells containing respective displacements (list of Atoms objects). - for atoms in phonon.get_supercells_with_displacements(): + for atoms in phonon.supercells_with_displacements: sc_struct = structure_from_atoms(atoms) - sc_gsinp = gsinp.new_with_structure(sc_struct, scdims=new.scdims) + sc_gsinp = gs_inp.new_with_structure(sc_struct, scdims=new.scdims) sc_gsinp.pop_tolerances() sc_gsinp.pop_vars(["ionmov", "optcell", "ntime"]) sc_gsinp.set_vars(toldff=1.e-6) @@ -124,9 +121,10 @@ def on_all_ok(self): structure.to(filename=self.outdir.path_in("POSCAR")) # Write yaml file with displacements. - supercell = phonon.get_supercell() - displacements = phonon.get_displacements() - #directions = phonon.get_displacement_directions() + #supercell = phonon.get_supercell() + supercell = phonon.supercell + #displacements = phonon.get_displacements() + displacements = phonon.displacements file_IO.write_disp_yaml(displacements, supercell, # directions=directions, filename=self.outdir.path_in('disp.yaml')) @@ -202,14 +200,14 @@ class PhonopyGruneisenWork(Work): numpy arrays with the number of cells in the supercell along the three reduced directions. """ @classmethod - def from_gs_input(cls, gsinp, voldelta, scdims, phonopy_kwargs=None, displ_kwargs=None): + def from_gs_input(cls, gs_inp, voldelta, scdims, phonopy_kwargs=None, displ_kwargs=None) -> PhonopyGruneisenWork: """ Build the work from an :class:`AbinitInput` object representing a GS calculations. Args: - gsinp: :class:`AbinitInput` object representing a GS calculation in the initial unit cell. + gs_inp: :class:`AbinitInput` object representing a GS calculation in the initial unit cell. voldelta: Absolute increment for unit cell volume. The three volumes are: - [v0 - voldelta, v0, v0 + voldelta] where v0 is taken from gsinp.structure. + [v0 - voldelta, v0, v0 + voldelta] where v0 is taken from gs_inp.structure. scdims: Number of unit cell replicas along the three reduced directions. phonopy_kwargs: (Optional) dictionary with arguments passed to Phonopy constructor. displ_kwargs: (Optional) dictionary with arguments passed to generate_displacements. @@ -227,7 +225,7 @@ def from_gs_input(cls, gsinp, voldelta, scdims, phonopy_kwargs=None, displ_kwarg new.displ_kwargs = displ_kwargs if displ_kwargs is not None else {} # Build three tasks for structural optimization at constant volume. - v0 = gsinp.structure.volume + v0 = gs_inp.structure.volume if voldelta <= 0: raise ValueError("voldelta must be > 0 but got %s" % voldelta) volumes = [v0 - voldelta, v0, v0 + voldelta] @@ -236,9 +234,9 @@ def from_gs_input(cls, gsinp, voldelta, scdims, phonopy_kwargs=None, displ_kwarg for vol in volumes: # Build new structure - new_lattice = gsinp.structure.lattice.scale(vol) - new_structure = Structure(new_lattice, gsinp.structure.species, gsinp.structure.frac_coords) - new_input = gsinp.new_with_structure(new_structure) + new_lattice = gs_inp.structure.lattice.scale(vol) + new_structure = Structure(new_lattice, gs_inp.structure.species, gs_inp.structure.frac_coords) + new_input = gs_inp.new_with_structure(new_structure) # Set variables for structural optimization at constant volume. new_input.pop_tolerances() new_input.set_vars(optcell=3, ionmov=3, tolvrs=1e-10, toldff=1.e-6) @@ -262,9 +260,9 @@ def add_phonopy_works_and_build(self): """ for i, task in enumerate(self): relaxed_structure = task.get_final_structure() - gsinp = task.input.new_with_structure(relaxed_structure) + gs_inp = task.input.new_with_structure(relaxed_structure) - work = PhonopyWork.from_gs_input(gsinp, self.scdims, + work = PhonopyWork.from_gs_input(gs_inp, self.scdims, phonopy_kwargs=self.phonopy_kwargs, displ_kwargs=self.displ_kwargs) diff --git a/abipy/flowtk/abitimer.py b/abipy/flowtk/abitimer.py index 6093e3363..b563d3d97 100644 --- a/abipy/flowtk/abitimer.py +++ b/abipy/flowtk/abitimer.py @@ -1,2 +1,11 @@ # flake8: noqa -from pymatgen.io.abinit.abitimer import AbinitTimerParserError, AbinitTimerParser, AbinitTimerSection +from pymatgen.core import __version__ as pmg_version +from pymatgen.io.abinit.abitimer import AbinitTimerParser, AbinitTimerSection + +#print(f"{pmg_version=}") +#if pmg_version < '2023.7.10': + +try: + from pymatgen.io.abinit.abitimer import AbinitTimerParserError as AbinitTimerParseError +except ImportError: + from pymatgen.io.abinit.abitimer import AbinitTimerParseError diff --git a/abipy/flowtk/db.py b/abipy/flowtk/db.py deleted file mode 100644 index 5bcd57f8c..000000000 --- a/abipy/flowtk/db.py +++ /dev/null @@ -1,166 +0,0 @@ -# coding: utf-8 -# Copyright (c) Pymatgen Development Team. -# Distributed under the terms of the MIT License. -""" -Objects and helper function used to store the results in a MongoDb database -""" -import collections -import copy - -from .utils import as_bool - - -#def mongo_getattr(rec, key): -# """ -# Get value from dict using MongoDB dot-separated path semantics. -# For example: -# -# >>> assert mongo_getattr({'a': {'b': 1}, 'x': 2}, 'a.b') == 1 -# >>> assert mongo_getattr({'a': {'b': 1}, 'x': 2}, 'x') == 2 -# >>> assert mongo_getattr({'a': {'b': 1}, 'x': 2}, 'a.b.c') is None -# -# :param rec: mongodb document -# :param key: path to mongo value -# :param default: default to return if not found -# :return: value, potentially nested, or default if not found -# :raise: AttributeError, if record is not a dict or key is not found. -# """ -# if not isinstance(rec, collections..abc.Mapping): -# raise AttributeError('input record must act like a dict') -# if not rec: -# raise AttributeError('Empty dict') -# -# if not '.' in key: -# return rec.get(key) -# -# for key_part in key.split('.'): -# if not isinstance(rec, collections.abc.Mapping): -# raise AttributeError('not a mapping for rec_part %s' % key_part) -# if not key_part in rec: -# raise AttributeError('key %s not in dict %s' % key) -# rec = rec[key_part] -# -# return rec - - -def scan_nestdict(d, key): - """ - Scan a nested dict d, and return the first value associated to the given key. - Returns None if key is not found. - - >>> d = {0: 1, 1: {"hello": {"world": {None: [1,2,3]}}}, "foo": [{"bar": 1}, {"color": "red"}]} - >>> assert scan_nestdict(d, 1) == {"hello": {"world": {None: [1,2,3]}}} - >>> assert scan_nestdict(d, "hello") == {"world": {None: [1,2,3]}} - >>> assert scan_nestdict(d, "world") == {None: [1,2,3]} - >>> assert scan_nestdict(d, None) == [1,2,3] - >>> assert scan_nestdict(d, "color") == "red" - """ - if isinstance(d, (list, tuple)): - for item in d: - res = scan_nestdict(item, key) - if res is not None: - return res - return None - - if not isinstance(d, collections.abc.Mapping): - return None - - if key in d: - return d[key] - else: - for v in d.values(): - res = scan_nestdict(v, key) - if res is not None: - return res - return None - - -class DBConnector(object): - - #DEFAULTS = dict( - # database="abinit", - # collection=None, - # port=None, - # host=None, - # user=None, - # password=None, - #} - - @classmethod - def autodoc(cls): - return """ - enabled: # yes or no (default yes) - database: # Name of the mongodb database (default abinit) - collection: # Name of the collection (default test) - host: # host address e.g. 0.0.0.0 (default None) - port: # port e.g. 8080 (default None) - user: # user name (default None) - password: # password for authentication (default None) - """ - - def __init__(self, **kwargs): - if not kwargs: - self.enabled = False - return - - self.enabled = as_bool(kwargs.pop("enabled", True)) - self.dbname = kwargs.pop("database", "abinit") - self.collection = kwargs.pop("collection", "test") - self.host = kwargs.pop("host", None) - self.port = kwargs.pop("port", None) - self.user = kwargs.pop("user", None) - self.password = kwargs.pop("password", None) - - if kwargs: - raise ValueError("Found invalid keywords in the database section:\n %s" % kwargs.keys()) - - def __bool__(self): - return self.enabled - - __nonzero__ = __bool__ - - def __repr__(self): - return "<%s object at %s>" % (self.__class__.__name__, id(self)) - - #def __str__(self): - # return str(self.config) - - def deepcopy(self): - return copy.deepcopy(self) - - def set_collection_name(self, value): - """Set the name of the collection, return old value""" - old = self.collection - self.collection = str(value) - return old - - def get_collection(self, **kwargs): - """ - Establish a connection with the database. - - Returns MongoDb collection - """ - from pymongo import MongoClient - - if self.host and self.port: - client = MongoClient(host=self.config.host, port=self.config.port) - else: - client = MongoClient() - db = client[self.dbname] - - # Authenticate if needed - if self.user and self.password: - db.autenticate(self.user, password=self.password) - - return db[self.collection] - - -if __name__ == "__main__": - connector = DBConnector() - print(connector.get_collection()) - #connector.set_collection_name("foo") - print(connector) - print(connector.get_collection()) - - #import unittest - #unittest.main() diff --git a/abipy/flowtk/dfpt_works.py b/abipy/flowtk/dfpt_works.py index 8f60a1661..f8d8c7a66 100644 --- a/abipy/flowtk/dfpt_works.py +++ b/abipy/flowtk/dfpt_works.py @@ -1,13 +1,21 @@ # coding: utf-8 -"""Work subclasses related to DFTP.""" +""" +Work subclasses related to DFTP. +""" +from __future__ import annotations +from abipy.tools.typing import TYPE_CHECKING +from .tasks import ScfTask from .works import Work, MergeDdb +if TYPE_CHECKING: # needed to avoid circular imports + from abipy.abio.inputs import AbinitInput + class ElasticWork(Work, MergeDdb): """ This Work computes the elastic constants and (optionally) the piezoelectric tensor. - It consists of Response function calculations for: + It consists of response function calculations for: * rigid-atom elastic tensor * rigid-atom piezoelectric tensor @@ -26,8 +34,9 @@ class ElasticWork(Work, MergeDdb): The Phonon tasks and the elastic task will read the DDK produced at the beginning """ @classmethod - def from_scf_input(cls, scf_input, with_relaxed_ion=True, with_piezo=False, with_dde=False, - tolerances=None, den_deps=None, manager=None): + def from_scf_input(cls, scf_input: AbinitInput, + with_relaxed_ion=True, with_piezo=False, with_dde=False, + tolerances=None, den_deps=None, manager=None) -> ElasticWork: """ Args: scf_input: @@ -99,7 +108,7 @@ def from_scf_input(cls, scf_input, with_relaxed_ion=True, with_piezo=False, with return new - def on_all_ok(self): + def on_all_ok(self): # pragma: no cover """ This method is called when all the tasks of the Work reach S_OK. Ir runs `mrgddb` in sequential on the local machine to produce @@ -122,16 +131,17 @@ class NscfDdksWork(Work): """ @classmethod - def from_scf_task(cls, scf_task, ddk_ngkpt, ddk_shiftk, ddk_nband, manager=None): + def from_scf_task(cls, scf_task : ScfTask, + ddk_ngkpt, ddk_shiftk, ddk_nband, manager=None) -> NscfDdksWork: """ Build NscfDdksWork from a scf_task. + Args: scf_task: GS task. Must produce the DEN file required for the NSCF run. ddk_ngkpt: k-mesh used for the NSCF run and the non self-consistent DDK tasks. ddk_shiftk: k-mesh shifts ddk_nband: Number of bands (occupied + empty) used in the NSCF task and the DDKs tasks. manager: TaskManager instance. Use default if None. - Return: NscfDdksWork instance """ new = cls(manager=manager) diff --git a/abipy/flowtk/effmass_works.py b/abipy/flowtk/effmass_works.py index dd897509c..063496d48 100644 --- a/abipy/flowtk/effmass_works.py +++ b/abipy/flowtk/effmass_works.py @@ -1,17 +1,19 @@ # coding: utf-8 """Work subclasses related to effective mass calculations.""" +from __future__ import annotations import numpy as np import os from monty.json import jsanitize from abipy.core.kpoints import build_segments +from abipy.abio.inputs import AbinitInput from .nodes import Node from .works import Work, PhononWork from .flows import Flow -def _get_red_dirs_from_opts(red_dirs, cart_dirs, reciprocal_lattice): +def _get_red_dirs_from_opts(red_dirs, cart_dirs, reciprocal_lattice) -> np.ndarray: """ Helper function to compute the list of directions from user input. Return numpy array. """ @@ -30,16 +32,17 @@ class EffMassLineWork(Work): """ Work for the computation of effective masses via finite differences along a k-line. Useful for cases such as NC+SOC where DFPT is not implemented or if one is interested - in non-parabolic behaviour. + in the non-parabolic behaviour of the energy dispersion. .. rubric:: Inheritance Diagram .. inheritance-diagram:: EffMassLineWork """ @classmethod - def from_scf_input(cls, scf_input, k0_list, step=0.01, npts=15, - red_dirs=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], cart_dirs=None, - den_node=None, manager=None): + def from_scf_input(cls, scf_input: AbinitInput, + k0_list, step=0.01, npts=15, + red_dirs=[[1, 0, 0], [0, 1, 0], [0, 0, 1]], ndivsm=-20, + cart_dirs=None, den_node=None, manager=None) -> EffMassLineWork: """ Build the Work from an |AbinitInput| representing a GS-SCF calculation. @@ -53,6 +56,9 @@ def from_scf_input(cls, scf_input, k0_list, step=0.01, npts=15, den_node: Path to the DEN file or Task object producing a DEN file. Can be used to avoid the initial SCF calculation if a DEN file is already available. If None, a GS calculation is performed. + ndivsm: if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. manager: |TaskManager| instance. Use default if None. """ if npts < 3: @@ -72,6 +78,11 @@ def from_scf_input(cls, scf_input, k0_list, step=0.01, npts=15, scf_task = new.register_scf_task(scf_input) if den_node is None else Node.as_node(den_node) new.register_nscf_task(nscf_input, deps={scf_task: "DEN"}) + + if ndivsm != 0: + ebands_inp = scf_input.make_ebands_input(ndivsm=ndivsm) + new.register_nscf_task(ebands_inp, deps={scf_task: "DEN"}) + return new @@ -85,7 +96,9 @@ class EffMassDFPTWork(Work): """ @classmethod - def from_scf_input(cls, scf_input, k0_list, effmass_bands_f90, den_node=None, manager=None): + def from_scf_input(cls, scf_input: AbinitInput, + k0_list, effmass_bands_f90, + ngfft=None, den_node=None, manager=None) -> EffMassDFPTWork: """ Build the Work from an |AbinitInput| representing a GS-SCF calculation. @@ -94,12 +107,13 @@ def from_scf_input(cls, scf_input, k0_list, effmass_bands_f90, den_node=None, ma k0_list: List with the reduced coordinates of the k-points where effective masses are wanted. effmass_bands_f90: (nkpt, 2) array with band range for effmas computation. WARNING: Assumes Fortran convention with indices starting from 1. + ngfft: FFT divisions (3 integers). Used to enforce the same FFT mesh in the NSCF run as the one used for GS. den_node: Path to the DEN file or Task object producing a DEN file. Can be used to avoid the initial SCF calculation if a DEN file is already available. If None, a GS calculation is performed. manager: |TaskManager| instance. Use default if None. """ - multi = scf_input.make_dfpt_effmass_input(k0_list, effmass_bands_f90) + multi = scf_input.make_dfpt_effmass_inputs(k0_list, effmass_bands_f90, ngfft=ngfft) nscf_input, effmass_input = multi[0], multi[1] new = cls(manager=manager) @@ -112,6 +126,7 @@ def from_scf_input(cls, scf_input, k0_list, effmass_bands_f90, den_node=None, ma nscf_task = new.register_nscf_task(nscf_input, deps={scf_task: "DEN"}) new.register_effmass_task(effmass_input, deps={scf_task: "DEN", nscf_task: "WFK"}) + return new @@ -128,14 +143,22 @@ class EffMassAutoDFPTWork(Work): """ @classmethod - def from_scf_input(cls, scf_input, ndivsm=15, tolwfr=1e-20, manager=None): + def from_scf_input(cls, scf_input: AbinitInput, + ndivsm=15, tolwfr=1e-20, den_node=None, manager=None) -> EffMassAutoDFPTWork: """ Build the Work from an |AbinitInput| representing a GS-SCF calculation. Args: scf_input: |AbinitInput| for GS-SCF used as template to generate the other inputs. - ndivsm: Number of divisions used to sample the smallest segment of the k-path. + ndivsm: if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. + This option is the recommended one if the k-path contains two high symmetry k-points that are very close + as ndivsm > 0 may produce a very large number of wavevectors. tolwfr: Tolerance on residuals for NSCF calculation + den_node: Path to the DEN file or Task object producing a DEN file. + Can be used to avoid the initial SCF calculation if a DEN file is already available. + If None, a GS calculation is performed. manager: |TaskManager| instance. Use default if None. """ if scf_input.get("nsppol", 1) != 1: @@ -146,11 +169,14 @@ def from_scf_input(cls, scf_input, ndivsm=15, tolwfr=1e-20, manager=None): new.scf_input = scf_input.deepcopy() # Need SCF run to get DEN file. - new.scf_task = new.register_scf_task(new.scf_input) + if den_node is None: + new.den_node = new.register_scf_task(new.scf_input) + else: + new.den_node = Node.as_node(den_node) # Perform NSCF run along k-path that will be used to find band extrema. bands_input = scf_input.make_ebands_input(ndivsm=ndivsm, tolwfr=tolwfr) - new.bands_task = new.register_nscf_task(bands_input, deps={new.scf_task: "DEN"}) + new.bands_task = new.register_nscf_task(bands_input, deps={new.den_node: "DEN"}) return new @@ -167,10 +193,12 @@ def on_all_ok(self): ebands.set_fermie_to_vbm() # Find k0_list and effmass_bands_f90 k0_list, effmass_bands_f90 = ebands.get_kpoints_and_band_range_for_edges() + den_ngfft = gsr.reader.read_ngfft3() # Create the work for effective mass computation with DFPT and add it to the flow. # Keep a reference in generated_effmass_dfpt_work. - work = EffMassDFPTWork.from_scf_input(self.scf_input, k0_list, effmass_bands_f90, den_node=self.scf_task) + work = EffMassDFPTWork.from_scf_input(self.scf_input, k0_list, effmass_bands_f90, + ngfft=den_ngfft, den_node=self.den_node) self.generated_effmass_dfpt_work = work self.flow.register_work(work) @@ -188,9 +216,11 @@ class FrohlichZPRFlow(Flow): """ @classmethod - def from_scf_input(cls, workdir, scf_input, ddb_node=None, ndivsm=15, tolwfr=1e-20, metadata=None, manager=None): + def from_scf_input(cls, workdir: str, scf_input: AbinitInput, + ddb_node=None, ndivsm=15, tolwfr=1e-20, + metadata=None, manager=None) -> FrohlichZPRFlow: """ - Build the Work from an |AbinitInput| representing a GS-SCF calculation. + Build the Flow from an |AbinitInput| representing a GS-SCF calculation. Final results are stored in the "zprfrohl_results.json" in the outdata directory of the flow. Args: diff --git a/abipy/flowtk/eph_flows.py b/abipy/flowtk/eph_flows.py index b9c6f0c58..198c7f68a 100644 --- a/abipy/flowtk/eph_flows.py +++ b/abipy/flowtk/eph_flows.py @@ -2,9 +2,13 @@ """ Flows for electron-phonon calculations (high-level interface) """ +from __future__ import annotations + import numpy as np from abipy.core.kpoints import kpath_from_bounds_and_ndivsm +from abipy.abio.inputs import AbinitInput +from .nodes import Node from .works import Work, PhononWork, PhononWfkqWork from .flows import Flow @@ -22,8 +26,11 @@ class EphPotFlow(Flow): """ @classmethod - def from_scf_input(cls, workdir, scf_input, ngqpt, qbounds, - ndivsm=5, with_becs=True, ddk_tolerance=None, prepgkk=0, manager=None): + def from_scf_input(cls, workdir: str, scf_input: AbinitInput, + ngqpt, qbounds, + ndivsm=5, with_becs=True, with_quad=True, dvdb_add_lr_list=(0, 1, 2), + ddb_filepath=None, dvdb_filepath=None, + ddk_tolerance=None, prepgkk=0, manager=None) -> EphPotFlow: """ Build the flow from an input file representing a GS calculation. @@ -36,8 +43,14 @@ def from_scf_input(cls, workdir, scf_input, ngqpt, qbounds, If `ndivsm` is 0, the code assumes that `qbounds` contains the full list of q-points and no pre-processing is performed. ndivsm: Number of points in the smallest segment of the path defined by `qbounds`. - Use 0 to pass list of q-points. + Use 0 to pass full list of q-points. with_becs: Activate calculation of Electric field and Born effective charges. + with_quad: Activate calculation of dynamical quadrupoles. Require `with_becs` + Note that only selected features are compatible with dynamical quadrupoles. + Please consult + dvdb_add_lr_list: List of dvdb_add_lr values to consider in the interpolation. + ddb_filepath, dvdb_filepath: Paths to the DDB/DVDB files that will be used + to bypass the DFPT computation on the `ngqpt` mesh. ddk_tolerance: dict {"varname": value} with the tolerance used in the DDK run if `with_becs`. prepgkk: 1 to activate computation of all 3 * natom perts (debugging option). manager: |TaskManager| object. @@ -47,10 +60,21 @@ def from_scf_input(cls, workdir, scf_input, ngqpt, qbounds, # First work with GS run. scf_task = flow.register_scf_task(scf_input)[0] - # Second work to compute phonons on the input nqgpt q-mesh. - work_qmesh = PhononWork.from_scf_task(scf_task, qpoints=ngqpt, is_ngqpt=True, - with_becs=with_becs, ddk_tolerance=ddk_tolerance) - flow.register_work(work_qmesh) + if dvdb_filepath or ddb_filepath: + # Use input files to bypass computation of work_qmesh. + if not (dvdb_filepath and ddb_filepath): + raise ValueError("Both dvdb_filepath and ddb_filepath must be specified.") + work_qmesh = None + # TODO Should check that ddb.qmesh == ngqpt + ddb_node = Node.as_node(ddb_filepath) + dvdb_node = Node.as_node(dvdb_filepath) + + else: + # Second work to compute phonons on the input nqgpt q-mesh. + work_qmesh = PhononWork.from_scf_task(scf_task, qpoints=ngqpt, is_ngqpt=True, + with_becs=with_becs, with_quad=with_quad, + ddk_tolerance=ddk_tolerance) + flow.register_work(work_qmesh) if ndivsm > 0: # Generate list of q-points from qbounds and ndivsm. @@ -84,13 +108,24 @@ def from_scf_input(cls, workdir, scf_input, ngqpt, qbounds, if eph_task == -15: # Use DVDB with ab-initio POTS along q-path to produce V1QAVG - deps = {work_qmesh: "DDB", work_qpath: "DVDB"} + if work_qmesh is not None: + deps = {work_qmesh: "DDB", work_qpath: "DVDB"} + else: + deps = {ddb_node: "DDB", work_qpath: "DVDB"} + + eph_work.register_eph_task(eph_inp, deps=deps) + elif eph_task == 15: # Use q-mesh to interpolate along the same q-path as above. - deps = {work_qmesh: ["DDB", "DVDB"]} - eph_inp.set_vars(ph_nqpath=len(qpath_list), ph_qpath=qpath_list) + # use dvdb_add_lr to deactivate/activate the treatment of the LR part. + if work_qmesh is not None: + deps = {work_qmesh: ["DDB", "DVDB"]} + else: + deps = {ddb_node: "DDB", dvdb_node: "DVDB"} - eph_work.register_eph_task(eph_inp, deps=deps) + for dvdb_add_lr in dvdb_add_lr_list: + new_inp = eph_inp.new_with_vars(dvdb_add_lr=dvdb_add_lr, ph_qpath=qpath_list) + eph_work.register_eph_task(new_inp, deps=deps) flow.register_work(eph_work) @@ -101,15 +136,17 @@ class GkqPathFlow(Flow): r""" This flow computes the gkq e-ph matrix elements for a list of q-points (usually a q-path). The results are stored in the GKQ.nc files for the different q-points. These files can be used to analyze the behaviour - of the e-ph matrix elements as a function of qpts with the the objects provided by the abipy.eph.gkq module. + of the e-ph matrix elements as a function of qpts with the objects provided by the abipy.eph.gkq module. It is also possible to compute the e-ph matrix elements using the interpolated DFPT potentials if test_ft_interpolation is set to True. """ @classmethod - def from_scf_input(cls, workdir, scf_input, ngqpt, qbounds, - ndivsm=5, with_becs=True, ddk_tolerance=None, - test_ft_interpolation=False, prepgkk=0, manager=None): + def from_scf_input(cls, workdir: str, scf_input: AbinitInput, + ngqpt, qbounds, + ndivsm=5, with_becs=True, with_quad=True, dvdb_add_lr_list=(0, 1, 2), + ddb_filepath=None, dvdb_filepath=None, + ddk_tolerance=None, test_ft_interpolation=False, prepgkk=0, manager=None) -> GkqPathFlow: """ Build the flow from an input file representing a GS calculation. @@ -124,10 +161,17 @@ def from_scf_input(cls, workdir, scf_input, ngqpt, qbounds, ndivsm: Number of points in the smallest segment of the path defined by `qbounds`. Use 0 to pass list of q-points. with_becs: Activate calculation of Electric field and Born effective charges. + with_quad: Activate calculation of dynamical quadrupoles. Require `with_becs` + Note that only selected features are compatible with dynamical quadrupoles. + Please consult + dvdb_add_lr_list: List of dvdb_add_lr values to consider in the interpolation. + ddb_filepath, dvdb_filepath: Paths to the DDB/DVDB files that will be used + to bypass the DFPT computation on the `ngqpt` mesh. ddk_tolerance: dict {"varname": value} with the tolerance used in the DDK run if `with_becs`. test_ft_interpolation: True to add an extra Work in which the GKQ files are computed using the interpolated DFPT potentials and the q-mesh defined by `ngqpt`. The quality of the interpolation depends on the convergence of the BECS, epsinf and `ngqpt`. + and the treatment of the LR part of the e-ph scattering potentials. prepgkk: 1 to activate computation of all 3 * natom perts (debugging option). manager: |TaskManager| object. """ @@ -136,10 +180,22 @@ def from_scf_input(cls, workdir, scf_input, ngqpt, qbounds, # First work with GS run. scf_task = flow.register_scf_task(scf_input)[0] - # Second work to compute phonons on the input nqgpt q-mesh. - work_qmesh = PhononWork.from_scf_task(scf_task, qpoints=ngqpt, is_ngqpt=True, - with_becs=with_becs, ddk_tolerance=ddk_tolerance) - flow.register_work(work_qmesh) + if dvdb_filepath or ddb_filepath: + # Use input files to bypass computation of work_qmesh. + if not (dvdb_filepath and ddb_filepath): + raise ValueError("Both dvdb_filepath and ddb_filepath must be specified.") + work_qmesh = None + # TODO Should check that ddb.qmesh == ngqpt + ddb_node = Node.as_node(ddb_filepath) + dvdb_node = Node.as_node(dvdb_filepath) + + else: + + # Second work to compute phonons on the input nqgpt q-mesh. + work_qmesh = PhononWork.from_scf_task(scf_task, qpoints=ngqpt, is_ngqpt=True, + with_becs=with_becs, with_quad=with_quad, + ddk_tolerance=ddk_tolerance) + flow.register_work(work_qmesh) if ndivsm > 0: # Generate list of q-points from qbounds and ndivsm. @@ -173,7 +229,7 @@ def make_eph_input(scf_inp, ngqpt, qpt): prtphdos=0, ) - # Now we compute matrix elements fully ab-initio for each q-point. + # Now we compute e-ph matrix elements fully ab-initio for each q-point. eph_work = Work() qseen = set() @@ -182,7 +238,11 @@ def make_eph_input(scf_inp, ngqpt, qpt): if qpt in qseen: continue qseen.add(qpt) t = eph_work.register_eph_task(make_eph_input(scf_input, ngqpt, qpt), deps=task.deps) - t.add_deps({work_qmesh: "DDB", work_qpath: "DVDB"}) + + if work_qmesh is not None: + t.add_deps({work_qmesh: "DDB", work_qpath: "DVDB"}) + else: + t.add_deps({ddb_node: "DDB", work_qpath: "DVDB"}) flow.register_work(eph_work) @@ -190,17 +250,25 @@ def make_eph_input(scf_inp, ngqpt, qpt): # with interpolated potentials along the q-path. # The potentials are interpolated using the input ngqpt q-mesh. if test_ft_interpolation: - inteph_work = Work() - qseen = set() - for task in work_qpath.phonon_tasks: - qpt = tuple(task.input["qpt"]) - if qpt in qseen: continue - qseen.add(qpt) - eph_inp = make_eph_input(scf_input, ngqpt, qpt) - # Note eph_use_ftinterp 1 to force the interpolation of the DFPT potentials with eph_task -2. - eph_inp["eph_use_ftinterp"] = 1 - t = inteph_work.register_eph_task(eph_inp, deps=task.deps) - t.add_deps({work_qmesh: ["DDB", "DVDB"]}) - flow.register_work(inteph_work) + + for dvdb_add_lr in dvdb_add_lr_list: + inteph_work = Work() + qseen = set() + for task in work_qpath.phonon_tasks: + qpt = tuple(task.input["qpt"]) + if qpt in qseen: continue + qseen.add(qpt) + eph_inp = make_eph_input(scf_input, ngqpt, qpt) + # Note eph_use_ftinterp 1 to force the interpolation + # of the DFPT potentials with eph_task -2. + eph_inp.set_vars(eph_use_ftinterp=1, dvdb_add_lr=dvdb_add_lr) + t = inteph_work.register_eph_task(eph_inp, deps=task.deps) + + if work_qmesh is not None: + t.add_deps({work_qmesh: ["DDB", "DVDB"]}) + else: + t.add_deps({ddb_node: "DDB", dvdb_node: "DVDB"}) + + flow.register_work(inteph_work) return flow diff --git a/abipy/flowtk/events.py b/abipy/flowtk/events.py index 66911b39c..34eb161ac 100644 --- a/abipy/flowtk/events.py +++ b/abipy/flowtk/events.py @@ -3,6 +3,8 @@ This module defines the events signaled by abinit during the execution. It also provides a parser to extract these events form the main output file and the log file. """ +from __future__ import annotations + import sys import os.path import datetime @@ -12,15 +14,17 @@ import logging import numpy as np +from ruamel.yaml import YAML, yaml_object +from typing import Union, Iterator from monty.string import indent, is_string from monty.fnmatch import WildCard from monty.termcolor import colored from monty.inspect import all_subclasses -from monty.json import MontyDecoder +from monty.json import MontyDecoder, MSONable from pymatgen.core.structure import Structure -from monty.json import MSONable -from pymatgen.util.serialization import pmg_serialize -from pymatgen.io.abinit.abiinspect import YamlTokenizer +from abipy.tools.serialization import pmg_serialize +from abipy.tools.iotools import yaml_safe_load, yaml_unsafe_load +from .abiinspect import YamlTokenizer logger = logging.getLogger(__name__) @@ -36,13 +40,17 @@ ] -def straceback(): +_yaml = YAML() + + +def straceback() -> str: """Returns a string with the traceback.""" import traceback return traceback.format_exc() class AbinitEvent(yaml.YAMLObject): +#class AbinitEvent(yaml.YAMLObject, MSONable): """ Example (YAML syntax):: @@ -87,14 +95,14 @@ class AbinitEvent(yaml.YAMLObject): """ color = None - def __init__(self, src_file, src_line, message): + def __init__(self, src_file: str, src_line: int, message: str): """ Basic constructor for :class:`AbinitEvent`. Args: - message: String with human-readable message providing info on the event. src_file: String with the name of the Fortran file where the event is raised. src_line Integer giving the line number in src_file. + message: String with human-readable message providing info on the event. """ #print("src_file", src_file, "src_line", src_line) self.message = message @@ -102,19 +110,27 @@ def __init__(self, src_file, src_line, message): self.src_line = src_line @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: # This is needed because the events printed in the main output file do not define scr_file and src_line + + #d = super().as_dict() + #if not d.get("src_file"): + # d["src_file"] = "Unknown" + #if not d.get("src_line"): + # d["src_line"] = 0 + #return d + src_file = getattr(self, "src_file", "Unknown") src_line = getattr(self, "src_line", 0) return dict(message=self.message, src_file=src_file, src_line=src_line, yaml_tag=self.yaml_tag) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> AbinitEvent: cls = as_event_class(d.get("yaml_tag")) return cls(**{k: v for k, v in d.items() if k != "yaml_tag" and not k.startswith("@")}) @property - def header(self): + def header(self) -> str: try: return "<%s at %s:%s>" % (self.name, self.src_file, self.src_line) except AttributeError: @@ -135,7 +151,7 @@ def __ne__(self, other): return not self.__eq__(other) @property - def name(self): + def name(self) -> str: """Name of the event (class name)""" return self.__class__.__name__ @@ -163,12 +179,14 @@ def correct(self, task): return 0 +@yaml_object(_yaml) class AbinitComment(AbinitEvent): """Base class for Comment events""" yaml_tag = '!COMMENT' color = "blue" +@yaml_object(_yaml) class AbinitError(AbinitEvent): """Base class for Error events""" yaml_tag = '!ERROR' @@ -182,12 +200,14 @@ class AbinitYamlError(AbinitError): """ +@yaml_object(_yaml) class AbinitBug(AbinitEvent): """Base class for Bug events""" yaml_tag = '!BUG' color = "red" +@yaml_object(_yaml) class AbinitWarning(AbinitEvent): """ Base class for Warning events (the most important class). @@ -212,16 +232,19 @@ class AbinitYamlWarning(AbinitCriticalWarning): ############################### +@yaml_object(_yaml) class ScfConvergenceWarning(AbinitCriticalWarning): """Warning raised when the GS SCF cycle did not converge.""" yaml_tag = '!ScfConvergenceWarning' +@yaml_object(_yaml) class NscfConvergenceWarning(AbinitCriticalWarning): """Warning raised when the GS NSCF cycle did not converge.""" yaml_tag = '!NscfConvergenceWarning' +@yaml_object(_yaml) class RelaxConvergenceWarning(AbinitCriticalWarning): """Warning raised when the structural relaxation did not converge.""" yaml_tag = '!RelaxConvergenceWarning' @@ -233,11 +256,13 @@ class RelaxConvergenceWarning(AbinitCriticalWarning): # yaml_tag = u'!PhononConvergenceWarning' +@yaml_object(_yaml) class QPSConvergenceWarning(AbinitCriticalWarning): """Warning raised when the QPS iteration (GW) did not converge.""" yaml_tag = '!QPSConvergenceWarning' +@yaml_object(_yaml) class HaydockConvergenceWarning(AbinitCriticalWarning): """Warning raised when the Haydock method (BSE) did not converge.""" yaml_tag = '!HaydockConvergenceWarning' @@ -262,7 +287,7 @@ class EventReport(collections.abc.Iterable, MSONable): stat: information about a file as returned by os.stat """ - def __init__(self, filename, events=None): + def __init__(self, filename: str, events=None): """ List of ABINIT events. @@ -271,7 +296,10 @@ def __init__(self, filename, events=None): events: List of Event objects """ self.filename = os.path.abspath(filename) - self.stat = os.stat(self.filename) + try: + self.stat = os.stat(self.filename) + except FileNotFoundError: + self.stat = None self.start_datetime, self.end_datetime = None, None self._events = [] @@ -281,16 +309,16 @@ def __init__(self, filename, events=None): for ev in events: self.append(ev) - def __len__(self): + def __len__(self) -> int: return len(self._events) - def __iter__(self): + def __iter__(self) -> Iterator[AbinitEvent]: return self._events.__iter__() - def __getitem__(self, slice): + def __getitem__(self, slice) -> Union[AbinitEvent, list[AbinitEvent]]: return self._events[slice] - def __str__(self): + def __str__(self) -> str: #has_colours = stream_has_colours(stream) has_colours = True @@ -310,12 +338,12 @@ def __str__(self): return "\n".join(lines) - def append(self, event): + def append(self, event: AbinitEvent) -> None: """Add an event to the list.""" self._events.append(event) self._events_by_baseclass[event.baseclass].append(event) - def set_run_completed(self, boolean, start_datetime, end_datetime): + def set_run_completed(self, boolean, start_datetime, end_datetime) -> None: """Set the value of _run_completed.""" self._run_completed = boolean @@ -339,7 +367,7 @@ def run_etime(self): return self.end_datetime - self.start_datetime @property - def run_completed(self): + def run_completed(self) -> bool: """True if the calculation terminated.""" try: return self._run_completed @@ -347,32 +375,32 @@ def run_completed(self): return False @property - def comments(self): + def comments(self) -> list[AbinitComment]: """List of comments found.""" return self.select(AbinitComment) @property - def errors(self): + def errors(self) -> list[Union[AbinitError, AbinitBug]]: """List of errors + bugs found.""" return self.select(AbinitError) + self.select(AbinitBug) @property - def warnings(self): + def warnings(self) -> list[AbinitWarning]: """List of warnings found.""" return self.select(AbinitWarning) @property - def num_warnings(self): + def num_warnings(self) -> int: """Number of warnings reported.""" return len(self.warnings) @property - def num_errors(self): + def num_errors(self) -> int: """Number of errors reported.""" return len(self.errors) @property - def num_comments(self): + def num_comments(self) -> int: """Number of comments reported.""" return len(self.comments) @@ -393,11 +421,11 @@ def get_events_of_type(self, event_class): return [ev for ev in self if type(ev) == event_class] @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return dict(filename=self.filename, events=[e.as_dict() for e in self._events]) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> EventReport: return cls(filename=d["filename"], events=[AbinitEvent.from_dict(e) for e in d["events"]]) @@ -405,13 +433,13 @@ class EventsParserError(Exception): """Base class for the exceptions raised by :class:`EventsParser`.""" -class EventsParser(object): +class EventsParser: """ Parses the output or the log file produced by ABINIT and extract the list of events. """ Error = EventsParserError - def parse(self, filename, verbose=0): + def parse(self, filename: str, verbose: int = 0) -> EventReport: """ Parse the given file. Return :class:`EventReport`. """ @@ -420,21 +448,28 @@ def parse(self, filename, verbose=0): report = EventReport(filename) w = WildCard("*Error|*Warning|*Comment|*Bug|*ERROR|*WARNING|*COMMENT|*BUG") - import warnings - warnings.simplefilter('ignore', yaml.error.UnsafeLoaderWarning) + #import warnings + #warnings.simplefilter('ignore', yaml.error.UnsafeLoaderWarning) + with YamlTokenizer(filename) as tokens: for doc in tokens: if w.match(doc.tag): #print("got doc.tag", doc.tag,"--") try: + doc.text = doc.text.replace('\n \n', '\n') #print(doc.text) - event = yaml.load(doc.text) # Can't use ruamel safe_load! - #yaml.load(doc.text, Loader=ruamel.yaml.Loader) + # OLD VERSION + #event = yaml.load(doc.text) # Can't use ruamel safe_load! + + #event = yaml_safe_load(doc.text) # Can't use ruamel safe_load! + event = yaml_unsafe_load(doc.text) # Can't use ruamel safe_load! + # FIXME: This new (recommend) API does not reproduce yaml.load behavior. bug in ruamel? + #event = yaml.YAML(typ='unsafe', pure=True).load(dox.text) #print(event.yaml_tag, type(event)) except Exception: #raise # Wrong YAML doc. Check tha doc tag and instantiate the proper event. - message = "Malformatted YAML document at line: %d\n" % doc.lineno + message = "In EventsParser.parse(): Malformatted YAML document at line: %d\n" % doc.lineno message += doc.text # This call is very expensive when we have many exceptions due to malformatted YAML docs. @@ -461,7 +496,7 @@ def parse(self, filename, verbose=0): report.set_run_completed(run_completed, start_datetime, end_datetime) return report - def report_exception(self, filename, exc): + def report_exception(self, filename, exc) -> EventReport: """ This method is used when self.parser raises an Exception so that we can report a customized :class:`EventReport` object with info the exception. @@ -519,7 +554,7 @@ def __init__(self): return super().__init__() @classmethod - def cls2str(cls): + def cls2str(cls) -> str: lines = [] app = lines.append @@ -532,16 +567,16 @@ def cls2str(cls): return "\n".join(lines) - def __str__(self): + def __str__(self) -> str: return "<%s>" % self.__class__.__name__ - def can_handle(self, event): + def can_handle(self, event: AbinitEvent) -> bool: """True if this handler is associated to the given :class:`AbinitEvent`""" return self.event_class == event.__class__ # TODO: defined CorrectionRecord object and provide helper functions to build it - def count(self, task): + def count(self, task) -> int: """ Return the number of times the event associated to this handler has been already fixed in the :class:`Task`. @@ -549,7 +584,7 @@ def count(self, task): return len([c for c in task.corrections if c["event"]["@class"] == self.event_class]) @abc.abstractmethod - def handle_task_event(self, task, event): + def handle_task_event(self, task, event: AbinitEvent) -> int: """ Method to handle Abinit events. @@ -562,20 +597,18 @@ def handle_task_event(self, task, event): """ @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: """ Basic implementation of as_dict if __init__ has no arguments. Subclasses may need to overwrite. """ - d = {} return d @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict): """ Basic implementation of from_dict if __init__ has no arguments. Subclasses may need to overwrite. """ - return cls() @classmethod @@ -628,11 +661,11 @@ def __init__(self, handler, actions, event, reset=False): self.reset = reset @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return dict(handler=self.handler.as_dict(), actions=self.actions, event=self.event.as_dict(), reset=self.reset) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> Correction: dec = MontyDecoder() return cls(handler=dec.process_decoded(d['handler']), actions=d['actions'], event=dec.process_decoded(d['event']), reset=d['reset']) @@ -646,7 +679,6 @@ def from_dict(cls, d): # """Base class for handlers associated to ABINIT bugs.""" # event_class = AbinitBug - class ErrorHandler(EventHandler): """Base class for handlers associated to ABINIT errors.""" event_class = AbinitError @@ -656,7 +688,7 @@ class ErrorHandler(EventHandler): # Public API -def autodoc_event_handlers(stream=sys.stdout): +def autodoc_event_handlers(stream=sys.stdout) -> None: """ Print to the given string, the documentation for the events and the associated handlers. @@ -721,11 +753,11 @@ def __init__(self, max_dilatmx=1.3): self.max_dilatmx = max_dilatmx @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return {'max_dilatmx': self.max_dilatmx} @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> DilatmxErrorHandler: return cls(max_dilatmx=d['max_dilatmx']) def handle_task_event(self, task, event): @@ -748,21 +780,22 @@ def handle_task_event(self, task, event): return self.FIXED - def handle_input_event(self, abiinput, outdir, event): + def handle_input_event(self, abi_input, outdir, event): try: - old_abiinput = abiinput.deepcopy() + old_abiinput = abi_input.deepcopy() # Read the last structure dumped by ABINIT before aborting. filepath = outdir.has_abiext("DILATMX_STRUCT.nc") last_structure = Structure.from_file(filepath) - abiinput.set_structure(last_structure) + abi_input.set_structure(last_structure) #FIXME restart from DEN files not always working with interpolation - return Correction(self, self.compare_inputs(abiinput, old_abiinput), event, reset=True) - # return Correction(self, self.compare_inputs(abiinput, old_abiinput), event, event=False) + return Correction(self, self.compare_inputs(abi_input, old_abiinput), event, reset=True) + # return Correction(self, self.compare_inputs(abi_input, old_abiinput), event, event=False) except Exception as exc: logger.warning('Error while trying to apply the handler {}.'.format(str(self)), exc) return None +@yaml_object(_yaml) class TolSymError(AbinitError): """ Class of errors raised by Abinit when it cannot detect the symmetries of the system. @@ -785,11 +818,11 @@ def __init__(self, max_nfixes=3): self.max_nfixes = max_nfixes @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return {'max_nfixes': self.max_nfixes} @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> TolSymErrorHandler: return cls(max_nfixes=d['max_nfixes']) def handle_task_event(self, task, event): @@ -805,18 +838,19 @@ def handle_task_event(self, task, event): task.log_correction(event, "Increasing tolsym from %s to %s" % (old_tolsym, new_tolsym)) return self.FIXED - def handle_input_event(self, abiinput, outdir, event): + def handle_input_event(self, abi_input, outdir, event): try: - old_abiinput = abiinput.deepcopy() - old_tolsym = abiinput["tolsym"] + old_abiinput = abi_input.deepcopy() + old_tolsym = abi_input["tolsym"] new_tolsym = 1e-6 if old_tolsym is None else old_tolsym * 10 - abiinput.set_vars(tolsym=new_tolsym) - return Correction(self, self.compare_inputs(abiinput, old_abiinput), event, reset=False) + abi_input.set_vars(tolsym=new_tolsym) + return Correction(self, self.compare_inputs(abi_input, old_abiinput), event, reset=False) except Exception as exc: logger.warning('Error while trying to apply the handler {}.'.format(str(self)), exc) return None +@yaml_object(_yaml) class MemanaError(AbinitError): """ Class of errors raised by the memory analyzer. @@ -838,16 +872,17 @@ def handle_task_event(self, task, event): task.log_correction(event, "Find MemanaError. Setting mem_test to 0 in input file.") return self.FIXED - def handle_input_event(self, abiinput, outdir, event): + def handle_input_event(self, abi_input, outdir, event): try: - old_abiinput = abiinput.deepcopy() - abiinput.set_vars(mem_test=0) - return Correction(self, self.compare_inputs(abiinput, old_abiinput), event, reset=False) + old_abiinput = abi_input.deepcopy() + abi_input.set_vars(mem_test=0) + return Correction(self, self.compare_inputs(abi_input, old_abiinput), event, reset=False) except Exception as exc: logger.warning('Error while trying to apply the handler {}.'.format(str(self)), exc) return None +@yaml_object(_yaml) class MemoryError(AbinitError): """ This error occurs when a checked allocation fails in Abinit @@ -868,7 +903,7 @@ def handle_task_event(self, task, event): task.manager.increase_resources() return self.FIXED - def handle_input_event(self, abiinput, outdir, event): + def handle_input_event(self, abi_input, outdir, event): """ Shouldn't do anything on the input """ diff --git a/abipy/flowtk/finitediff_works.py b/abipy/flowtk/finitediff_works.py new file mode 100644 index 000000000..6b5f3f61d --- /dev/null +++ b/abipy/flowtk/finitediff_works.py @@ -0,0 +1,235 @@ +# coding: utf-8 +"""Work subclasses related to GS calculations.""" +from __future__ import annotations + +import json +import pickle +import numpy as np + +from monty.json import MSONable +from monty.string import list_strings #, marquee +from pymatgen.analysis.eos import EOS +from abipy.core.structure import Structure +from abipy.tools.numtools import build_mesh +from abipy.abio.inputs import AbinitInput +from abipy.tools.serialization import HasPickleIO +from abipy.electrons.gsr import GsrRobot +#from abipy.tools.serialization import mjson_write, pmg_serialize +from .works import Work + + +class FiniteDiffForcesData(HasPickleIO): + + def __init__(self, + iatom, + step, + mesh_type, + deltas, + ix0, + energies_ev, + structures, + cart_forces_list, + cart_stress_tensor_list, + ): + self.iatom = iatom + self.step = step + self.mesh_type = mesh_type + self.deltas = deltas + self.ix0 = ix0 + self.energies_ev = energies_ev + self.structures = structures + self.cart_forces_list = cart_forces_list + self.cart_stress_tensor_list = cart_stress_tensor_list + + def get_results_nn_name(self, nn_name: str, with_delta: bool) -> dict: + """ + Args: + nn_names: String or list of strings defining the NN potential. See also CalcBuilder. + """ + from abipy.ml.aseml import CalcBuilder + calc = CalcBuilder(nn_name).get_calculator() + energies_ev, forces_list, stress_list = [], [], [] + for structure in self.structures: + atoms = structure.to_ase_atoms(calc=calc) + energies_ev.append(float(atoms.get_potential_energy())) + forces_list.append(atoms.get_forces()) + stress_list.append(atoms.get_stress(voigt=False)) + + return dict(energies_ev=np.array(energies_ev), + forces_list=np.array(forces_list), + stress_list=np.array(stress_list), + ) + + #def compare_with_nn_names(self, nn_names): + # for nn_name in list_strings(nn_names): + # d = self.get_results_nn_name(nn_name) + + + +class FiniteDiffForcesWork(Work): + """ + Work for the computation of forces with finite difference. + """ + + @classmethod + def from_scf_input(cls, scf_input, iatom, direction, + frac_coords=True, num_points=5, step=0.01, mesh_type="centered", manager=None): + """ + Build the work an AbinitInput representing a SCF-GS calculation. + + Args: + scf_input: AbinitInput for SCF-GS used as template to generate the other inputs. + iatom: Index of the atom to displace. + frac_coords: + Boolean stating whether the vector corresponds to fractional or + Cartesian coordinates. + num_points: + step: + mesh_type: Generate a linear mesh of step `step` that is centered on x0 if + mesh_type == "centered" or a mesh that starts/ends at x0 if mesh_type is `>`/`<`. + manager: TaskManager instance. Use default manager if None. + """ + work = cls(manager=manager) + + work.iatom = int(iatom) + work.step = float(step) + work.mesh_type = mesh_type + work.deltas, work.ix0 = build_mesh(0.0, num_points, step, mesh_type) + + structure = scf_input.structure + norm = structure.lattice.norm(direction, frac_coords=frac_coords) + versor = np.array(direction) / norm + + for delta in work.deltas: + vector = delta * versor + new_structure = structure.copy() + new_structure.translate_sites([work.iatom], delta * versor, frac_coords=frac_coords, to_unit_cell=False) + new_input = scf_input.new_with_structure(new_structure) + work.register_scf_task(new_input) + + return work + + def get_data(self) -> FiniteDiffForcesData: + """ + Read data from the GSR files, and produce a JSON file + in the outdata directory of the work. + """ + energies_ev, cart_forces_list, cart_stress_tensor_list = [], [], [] + for task in self: + with task.open_gsr() as gsr: + energies_ev.append(float(gsr.energy)) + cart_forces_list.append(np.array(gsr.cart_forces)) + cart_stress_tensor_list.append(np.array(gsr.cart_stress_tensor)) + + return FiniteDiffForcesData( + iatom=self.iatom, + step=self.step, + mesh_type=self.mesh_type, + deltas=self.deltas, + ix0=self.ix0, + energies_ev=energies_ev, + structures=[task.input.structure for task in self], + cart_forces_list=cart_forces_list, + cart_stress_tensor_list=cart_stress_tensor_list, + ) + + def on_all_ok(self): + """ + This method is called when all tasks reach S_OK. + """ + data = self.get_data() + data.pickle_dump(self.outdir.path) + #mjson_write(data, self.outdir.path_in("forces.json")) + return super().on_all_ok() + + + +#class FiniteDiffStressWork(Work): +# """ +# Work for the computation of the stress tensor with finite difference +# """ +# +# @classmethod +# def from_scf_input(cls, scf_input, delta=1e-4, ecutsm=0.5, manager=None): +# """ +# Build a EosWork from an AbinitInput representing a SCF-GS calculation. +# +# Args: +# scf_input: AbinitInput for SCF-GS used as template to generate the other inputs. +# delta: +# ecutsm: Value of ecutsm input variable. If `scf_input` does not provide ecutsm, this +# value will be used else the vale in `scf_input`. +# manager: TaskManager instance. Use default if None. +# +# Return: EosWork instance. +# """ +# scf_input = scf_input.deepcopy() +# +# if "ecutsm" not in scf_input: +# scf_input.set_vars(ecutsm=ecutsm) +# print("Input does not define ecutsm input variable.\n", +# "A default value of %s will be added to all the EOS inputs" % ecutsm) +# +# new_work = cls(manager=manager) +# self.unstrained_task = new_work.register_scf_task(scf_input) +# +# voigt_inds = [(0, 0)] +# +# self.delta = float(delta) +# self.tasks_voigt = {} +# for voigt in voigt_inds: +# self.tasks_voigt[voigt] = defaultdict(list) +# for isign in (-1, +1): +# # Apply strain to the lattice. +# strain = np.zeros((3, 3)) +# strain[voigt] = float(isign) * delta +# new_structure = scf_input.structure.deepcopy() +# new_structure.apply_strain(strain) +# new_input = scf_input.new_with_structure(new_structure) +# +# # Perform GS calculations with strained cell. +# task = new_work.register_scf_task(new_input) +# self.tasks_voigt[voigt].append(task) +# +# return new_work +# +# def get_data(self): +# """ +# This method is called when all tasks reach S_OK. +# It reads the energies and the volumes from the GSR file, computes the EOS and produce a +# JSON file `eos_data.json` in outdata. +# """ +# with self.unstrained_task.open_gsr() as gsr0: +# e0, v0 = gsr0.energy, gsr0.structure.volume +# cart_stress_tensor = gsr0.cart_stress_tensor +# +# fd_tensor = np.empty((3, 3)) +# for voigt in voigt_inds: +# tasks = self.tasks_voigt[voigt] +# energies_ev, volumes = np.empty(len(tasks), np.empty(len(tasks)) +# for i, task in enumerate(task): +# with task.open_gsr() as gsr: +# energies_ev[i] = float(gsr.energy)) +# +# d = (e_plus - e_minus) / (2 * self.delta * v0) +# fd_tensor[voigt] = d +# fd_tensor[voigt[1], voigt[0]] = d +# +# data = { +# "dfpt_cart_stress_tensor": cart_stress_tensor, +# "finite_diff_cart_stress_tensor": fd_cart_stress_tensor, +# } +# +# with open(self.outdir.path_in("stress.json"), "wt") as fh: +# json.dump(data, fh, indent=4, sort_keys=True) +# +# return data +# +# def on_all_ok(self): +# """ +# This method is called when all tasks reach S_OK. It reads the energies +# and the volumes from the GSR file, computes the EOS and produce a +# JSON file `eos_data.json` in outdata. +# """ +# self.compute_and_write_stress() +# return dict(returncode=0, message="EOS computed and file written") diff --git a/abipy/flowtk/flows.py b/abipy/flowtk/flows.py index 0ac4f67a3..f470612a5 100644 --- a/abipy/flowtk/flows.py +++ b/abipy/flowtk/flows.py @@ -4,6 +4,8 @@ Flows are the final objects that can be dumped directly to a pickle file on disk Flows are executed using abirun (abipy). """ +from __future__ import annotations + import os import sys import time @@ -11,13 +13,15 @@ import warnings import shutil import tempfile +import json import numpy as np +import pandas as pd from io import StringIO from pprint import pprint +from typing import Any, Union, Iterator, Generator from tabulate import tabulate from pydispatch import dispatcher -from collections import OrderedDict from monty.collections import dict2namedtuple from monty.string import list_strings, is_string, make_banner from monty.operator import operator_from_str @@ -26,18 +30,25 @@ from monty.termcolor import cprint, colored, cprint_map, get_terminal_size from monty.inspect import find_top_pyfile from monty.json import MSONable -from pymatgen.util.serialization import pmg_pickle_load, pmg_pickle_dump, pmg_serialize -from pymatgen.core.units import Memory -from pymatgen.util.io_utils import AtomicFile +from pymatgen.core.units import Memory, UnitError +from abipy.tools.iotools import AtomicFile +from abipy.tools.serialization import pmg_pickle_load, pmg_pickle_dump, pmg_serialize +from abipy.tools.typing import Figure, TYPE_CHECKING +from abipy.core.globals import get_workdir from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt from abipy.tools.printing import print_dataframe +from abipy.tools.serialization import mjson_loads from abipy.flowtk import wrappers from .nodes import Status, Node, NodeError, NodeResults, Dependency, GarbageCollector, check_spectator -from .tasks import ScfTask, TaskManager, FixQueueCriticalError +from .tasks import Task, ScfTask, TaskManager, FixQueueCriticalError from .utils import File, Directory, Editor from .works import NodeContainer, Work, BandStructureWork, PhononWork, BecWork, G0W0Work, QptdmWork, DteWork from .events import EventsParser +if TYPE_CHECKING: # needed to avoid circular imports + from abipy.abio.inputs import AbinitInput + + __author__ = "Matteo Giantomassi" __copyright__ = "Copyright 2013, The Materials Project" __version__ = "0.1" @@ -52,7 +63,7 @@ ] -def as_set(obj): +def as_set(obj: Any) -> set: """ Convert obj into a set, returns None if obj is None. @@ -75,7 +86,7 @@ class FlowResults(NodeResults): #} @classmethod - def from_node(cls, flow): + def from_node(cls, flow) -> FlowResults: """Initialize an instance from a Work instance.""" new = super().from_node(flow) @@ -113,6 +124,7 @@ class Flow(Node, NodeContainer, MSONable): build_and_pickle_dump: """ VERSION = "0.1" + PICKLE_FNAME = "__AbinitFlow__.pickle" Error = FlowError @@ -121,7 +133,7 @@ class Flow(Node, NodeContainer, MSONable): @classmethod def from_inputs(cls, workdir, inputs, manager=None, pickle_protocol=-1, task_class=ScfTask, - work_class=Work, remove=False): + work_class=Work, remove=False) -> Flow: """ Construct a simple flow from a list of inputs. The flow contains a single Work with @@ -154,7 +166,7 @@ def from_inputs(cls, workdir, inputs, manager=None, pickle_protocol=-1, task_cla return flow.allocate() @classmethod - def as_flow(cls, obj): + def as_flow(cls, obj: Any) -> Flow: """Convert obj into a Flow. Accepts filepath, dict, or Flow object.""" if isinstance(obj, cls): return obj if is_string(obj): @@ -234,8 +246,12 @@ def __init__(self, workdir, manager=None, pickle_protocol=-1, remove=False): self.on_all_ok_num_calls = 0 + # The status of the flow is computed dynamically using the status of the nodes + # if _status is None unless one explicitly set this value with set_status. + self._status = None + @pmg_serialize - def as_dict(self, **kwargs): + def as_dict(self, **kwargs) -> dict: """ JSON serialization, note that we only need to save a string with the working directory since the object will be @@ -247,16 +263,29 @@ def as_dict(self, **kwargs): to_dict = as_dict @classmethod - def from_dict(cls, d, **kwargs): + def from_dict(cls, d: dict, **kwargs) -> Flow: """Reconstruct the flow from the pickle file.""" return cls.pickle_load(d["workdir"], **kwargs) @classmethod - def temporary_flow(cls, manager=None): + def temporary_flow(cls, workdir=None, manager=None) -> Flow: """Return a Flow in a temporary directory. Useful for unit tests.""" - return cls(workdir=tempfile.mkdtemp(), manager=manager) + workdir = get_workdir(workdir) + return cls(workdir=workdir, manager=manager) - def set_workdir(self, workdir, chroot=False): + def set_status(self, status, msg: str) -> None: + """ + Set and return the status of the flow + + Args: + status: Status object or string representation of the status + msg: string with human-readable message used in the case of errors. + """ + status = Status.as_status(status) + self._status = status + self.history.info(f"Status set to `{status}` due to: `{msg}`)") + + def set_workdir(self, workdir: str, chroot=False) -> None: """ Set the working directory. Cannot be set more than once unless chroot is True """ @@ -270,7 +299,7 @@ def set_workdir(self, workdir, chroot=False): self.tmpdir = Directory(os.path.join(self.workdir, "tmpdata")) self.wdir = Directory(self.workdir) - def reload(self): + def reload(self) -> None: """ Reload the flow from the pickle file. Used when we are monitoring the flow executed by the scheduler. In this case, indeed, the flow might have been changed @@ -280,7 +309,7 @@ def reload(self): self = new @classmethod - def pickle_load(cls, filepath, spectator_mode=True, remove_lock=False): + def pickle_load(cls, filepath: str, spectator_mode=True, remove_lock=False) -> Flow: """ Loads the object from a pickle file and performs initial setup. @@ -295,6 +324,7 @@ def pickle_load(cls, filepath, spectator_mode=True, remove_lock=False): remove_lock: True to remove the file lock if any (use it carefully). """ + filepath = os.path.expanduser(filepath) if os.path.isdir(filepath): # Walk through each directory inside path and find the pickle database. for dirpath, dirnames, filenames in os.walk(filepath): @@ -337,7 +367,7 @@ def pickle_load(cls, filepath, spectator_mode=True, remove_lock=False): from_file = pickle_load @classmethod - def pickle_loads(cls, s): + def pickle_loads(cls, s: str) -> Flow: """Reconstruct the flow from a string.""" strio = StringIO() strio.write(s) @@ -345,21 +375,27 @@ def pickle_loads(cls, s): flow = pmg_pickle_load(strio) return flow - def get_panel(self): + def change_manager(self, new_manager: Any) -> TaskManager: + """Change the manager at runtime.""" + for work in self: + work.set_manager(new_manager) + return new_manager + + def get_panel(self, **kwargs): """Build panel with widgets to interact with the |Flow| either in a notebook or in panel app.""" from abipy.panels.flows import FlowPanel - return FlowPanel(self).get_panel() + return FlowPanel(self).get_panel(**kwargs) - def __len__(self): + def __len__(self) -> int: return len(self.works) - def __iter__(self): + def __iter__(self) -> Iterator[Work]: return self.works.__iter__() - def __getitem__(self, slice): + def __getitem__(self, slice) -> Union[Work, list[Work]]: return self.works[slice] - def set_pyfile(self, pyfile): + def set_pyfile(self, pyfile: str) -> None: """ Set the path of the python script used to generate the flow. @@ -367,14 +403,13 @@ def set_pyfile(self, pyfile): flow.set_pyfile(__file__) """ - # TODO: Could use a frame hack to get the caller outside abinit - # so that pyfile is automatically set when we __init__ it! self._pyfile = os.path.abspath(pyfile) @property - def pyfile(self): + def pyfile(self) -> Union[str, None]: """ - Absolute path of the python script used to generate the flow. Set by `set_pyfile` + Absolute path of the python script used to generate the flow. + None if unset. Set by `set_pyfile` """ try: return self._pyfile @@ -382,16 +417,16 @@ def pyfile(self): return None @property - def pid_file(self): + def pid_file(self) -> str: """The path of the pid file created by PyFlowScheduler.""" return os.path.join(self.workdir, "_PyFlowScheduler.pid") @property - def has_scheduler(self): + def has_scheduler(self) -> bool: """True if there's a scheduler running the flow.""" return os.path.exists(self.pid_file) - def check_pid_file(self): + def check_pid_file(self) -> int: """ This function checks if we are already running the |Flow| with a :class:`PyFlowScheduler`. Raises: Flow.Error if the pid file of the scheduler exists. @@ -418,7 +453,7 @@ def check_pid_file(self): Exiting""" % self.pid_file) @property - def pickle_file(self): + def pickle_file(self) -> str: """The path of the pickle file.""" return os.path.join(self.workdir, self.PICKLE_FNAME) @@ -432,10 +467,6 @@ def mongo_id(self, value): raise RuntimeError("Cannot change mongo_id %s" % self.mongo_id) self._mongo_id = value - #def mongodb_upload(self, **kwargs): - # from abiflows.core.scheduler import FlowUploader - # FlowUploader().upload(self, **kwargs) - def validate_json_schema(self): """Validate the JSON schema. Return list of errors.""" errors = [] @@ -468,44 +499,44 @@ def mongo_assimilate(self): return {} @property - def works(self): + def works(self) -> list[Work]: """List of |Work| objects contained in self..""" return self._works @property - def all_ok(self): - """True if all the tasks in works have reached `S_OK`.""" + def all_ok(self) -> bool: + """True if all the works in the flow have reached `S_OK`.""" all_ok = all(work.all_ok for work in self) if all_ok: all_ok = self.on_all_ok() return all_ok @property - def num_tasks(self): + def num_tasks(self) -> int: """Total number of tasks""" return len(list(self.iflat_tasks())) @property - def errored_tasks(self): - """List of errored tasks.""" - etasks = [] + def errored_tasks(self) -> set[Task]: + """Set errored tasks.""" + tasks = [] for status in [self.S_ERROR, self.S_QCRITICAL, self.S_ABICRITICAL]: - etasks.extend(list(self.iflat_tasks(status=status))) + tasks.extend(list(self.iflat_tasks(status=status))) - return set(etasks) + return set(tasks) @property - def num_errored_tasks(self): + def num_errored_tasks(self) -> int: """The number of tasks whose status is `S_ERROR`.""" return len(self.errored_tasks) @property - def unconverged_tasks(self): + def unconverged_tasks(self) -> int: """List of unconverged tasks.""" return list(self.iflat_tasks(status=self.S_UNCONVERGED)) @property - def num_unconverged_tasks(self): + def num_unconverged_tasks(self) -> int: """The number of tasks whose status is `S_UNCONVERGED`.""" return len(self.unconverged_tasks) @@ -523,7 +554,7 @@ def status_counter(self): return counter @property - def ncores_reserved(self): + def ncores_reserved(self) -> int: """ Returns the number of cores reserved in this moment. A core is reserved if the task is not running but @@ -532,24 +563,24 @@ def ncores_reserved(self): return sum(work.ncores_reserved for work in self) @property - def ncores_allocated(self): + def ncores_allocated(self) -> int: """ - Returns the number of cores allocated in this moment. + Returns the number of cores allocated at this moment. A core is allocated if it's running a task or if we have - submitted a task to the queue manager but the job is still pending. + submitted a task to the queue manager but the job is still in pending state. """ return sum(work.ncores_allocated for work in self) @property - def ncores_used(self): + def ncores_used(self) -> int: """ - Returns the number of cores used in this moment. + Returns the number of cores used at this moment. A core is used if there's a job that is running on it. """ return sum(work.ncores_used for work in self) @property - def has_chrooted(self): + def has_chrooted(self) -> str: """ Returns a string that evaluates to True if we have changed the workdir for visualization purposes e.g. we are using sshfs. @@ -561,7 +592,7 @@ def has_chrooted(self): except AttributeError: return "" - def chroot(self, new_workdir): + def chroot(self, new_workdir: str) -> None: """ Change the workir of the |Flow|. Mainly used for allowing the user to open the GUI on the local host @@ -577,9 +608,9 @@ def chroot(self, new_workdir): new_wdir = os.path.join(self.workdir, "w" + str(i)) work.chroot(new_wdir) - def groupby_status(self): + def groupby_status(self) -> dict: """ - Returns a ordered dictionary mapping the task status to + Returns dictionary mapping the task status to the list of named tuples (task, work_index, task_index). """ Entry = collections.namedtuple("Entry", "task wi ti") @@ -589,14 +620,26 @@ def groupby_status(self): d[task.status].append(Entry(task, wi, ti)) # Sort keys according to their status. - return OrderedDict([(k, d[k]) for k in sorted(list(d.keys()))]) + return {k: d[k] for k in sorted(list(d.keys()))} - def groupby_task_class(self): + def groupby_work_class(self) -> dict: + """ + Returns a dictionary mapping the work class to the list of works in the flow + """ + class2works = {} + for work in self: + cls = work.__class__ + if cls not in class2works: class2works[cls] = [] + class2works[cls].append(work) + + return class2works + + def groupby_task_class(self) -> dict: """ Returns a dictionary mapping the task class to the list of tasks in the flow """ # Find all Task classes - class2tasks = OrderedDict() + class2tasks = {} for task in self.iflat_tasks(): cls = task.__class__ if cls not in class2tasks: class2tasks[cls] = [] @@ -604,7 +647,7 @@ def groupby_task_class(self): return class2tasks - def iflat_nodes(self, status=None, op="==", nids=None): + def iflat_nodes(self, status=None, op="==", nids=None) -> Generator[None]: """ Generators that produces a flat sequence of nodes. if status is not None, only the tasks with the specified status are selected. @@ -640,13 +683,14 @@ def iflat_nodes(self, status=None, op="==", nids=None): if nids and task.node_id not in nids: continue if op(task.status, status): yield task - def node_from_nid(self, nid): + def node_from_nid(self, nid: int) -> Node: """Return the node in the `Flow` with the given `nid` identifier""" for node in self.iflat_nodes(): if node.node_id == nid: return node raise ValueError("Cannot find node with node id: %s" % nid) - def iflat_tasks_wti(self, status=None, op="==", nids=None): + def iflat_tasks_wti(self, status=None, op="==", + nids=None) -> Generator[tuple[Task,int,int]]: """ Generator to iterate over all the tasks of the `Flow`. Yields: @@ -661,7 +705,7 @@ def iflat_tasks_wti(self, status=None, op="==", nids=None): """ return self._iflat_tasks_wti(status=status, op=op, nids=nids, with_wti=True) - def iflat_tasks(self, status=None, op="==", nids=None): + def iflat_tasks(self, status=None, op="==", nids=None) -> Generator[Task]: """ Generator to iterate over all the tasks of the |Flow|. @@ -675,7 +719,7 @@ def iflat_tasks(self, status=None, op="==", nids=None): def _iflat_tasks_wti(self, status=None, op="==", nids=None, with_wti=True): """ - Generators that produces a flat sequence of task. + Generator that produces a flat sequence of task. if status is not None, only the tasks with the specified status are selected. nids is an optional list of node identifiers used to filter the tasks. @@ -709,7 +753,7 @@ def _iflat_tasks_wti(self, status=None, op="==", nids=None, with_wti=True): else: yield task - def abivalidate_inputs(self): + def abivalidate_inputs(self) -> tuple: """ Run ABINIT in dry mode to validate all the inputs of the flow. @@ -738,8 +782,10 @@ def abivalidate_inputs(self): return isok, tuples - def check_dependencies(self): - """Test the dependencies of the nodes for possible deadlocks.""" + def check_dependencies(self) -> None: + """ + Test the dependencies of the nodes for possible deadlocks and raise RuntimeError + """ deadlocks = [] for task in self.iflat_tasks(): @@ -778,7 +824,7 @@ def find_deadlocks(self): return dict2namedtuple(deadlocked=deadlocked, runnables=runnables, running=running) - def check_status(self, **kwargs): + def check_status(self, **kwargs) -> None: """ Check the status of the works in self. @@ -793,31 +839,15 @@ def check_status(self, **kwargs): self.show_status(**kwargs) @property - def status(self): - """The status of the |Flow| i.e. the minimum of the status of its tasks and its works""" - return min(work.get_all_status(only_min=True) for work in self) - - #def restart_unconverged_tasks(self, max_nlauch, excs): - # nlaunch = 0 - # for task in self.unconverged_tasks: - # try: - # self.history.info("Flow will try restart task %s" % task) - # fired = task.restart() - # if fired: - # nlaunch += 1 - # max_nlaunch -= 1 - - # if max_nlaunch == 0: - # self.history.info("Restart: too many jobs in the queue, returning") - # self.pickle_dump() - # return nlaunch, max_nlaunch + def status(self) -> Status: + """Gives the status of the Flow.""" + if self._status is None: + # Take the minimum of the status of its tasks and its works + return min(work.get_all_status(only_min=True) for work in self) - # except task.RestartError: - # excs.append(straceback()) + return self._status - # return nlaunch, max_nlaunch - - def fix_abicritical(self): + def fix_abicritical(self) -> int: """ This function tries to fix critical events originating from ABINIT. Returns the number of tasks that have been fixed. @@ -828,7 +858,7 @@ def fix_abicritical(self): return count - def fix_queue_critical(self): + def fix_queue_critical(self) -> int: """ This function tries to fix critical events originating from the queue submission system. @@ -845,7 +875,7 @@ def fix_queue_critical(self): return count - def show_info(self, **kwargs): + def show_info(self, **kwargs) -> None: """ Print info on the flow i.e. total number of tasks, works, tasks grouped by class. @@ -873,7 +903,8 @@ def show_info(self, **kwargs): stream.write("\n".join(lines)) - def compare_abivars(self, varnames, nids=None, wslice=None, printout=False, with_colors=False): + def compare_abivars(self, varnames, nids=None, wslice=None, + printout=False, with_colors=False) -> pd.DataFrame: """ Print the input of the tasks to the given stream. @@ -892,7 +923,7 @@ def compare_abivars(self, varnames, nids=None, wslice=None, printout=False, with index.append(task.pos_str) dstruct = task.input.structure.as_dict(fmt="abivars") - od = OrderedDict() + od = {} for vname in varnames: value = task.input.get(vname, None) if value is None: # maybe in structure? @@ -903,14 +934,13 @@ def compare_abivars(self, varnames, nids=None, wslice=None, printout=False, with od["status"] = task.status.colored if with_colors else str(task.status) rows.append(od) - import pandas as pd df = pd.DataFrame(rows, index=index) if printout: print_dataframe(df, title="Input variables:") return df - def get_dims_dataframe(self, nids=None, printout=False, with_colors=False): + def get_dims_dataframe(self, nids=None, printout=False, with_colors=False) -> pd.DataFrame: """ Analyze output files produced by the tasks. Print pandas DataFrame with dimensions. @@ -951,6 +981,18 @@ def get_dims_dataframe(self, nids=None, printout=False, with_colors=False): return df + def write_fix_flow_script(self) -> None: + """ + Write python script in the flow workdir that can be used by expert + users to change the input variables of the task according to their status. + """ + path_py = os.path.join(self.workdir, "_fix_flow.py") + with open(path_py, "wt") as fh: + fh.write(_FIX_FLOW_SCRIPT) + import stat + st = os.stat(path_py) + os.chmod(path_py, st.st_mode | stat.S_IEXEC) + def compare_structures(self, nids=None, with_spglib=False, what="io", verbose=0, precision=3, printout=False, with_colors=False): """ @@ -1030,7 +1072,7 @@ def push_data(post, task, structure, cart_forces, pressure): return dfs def compare_ebands(self, nids=None, with_path=True, with_ibz=True, with_spglib=False, verbose=0, - precision=3, printout=False, with_colors=False): + precision=3, printout=False, with_colors=False) -> tuple: """ Analyze electron bands produced by the tasks. Return pandas DataFrame and |ElectronBandsPlotter|. @@ -1094,7 +1136,7 @@ def compare_ebands(self, nids=None, with_path=True, with_ibz=True, with_spglib=F return df, ebands_plotter def compare_hist(self, nids=None, with_spglib=False, verbose=0, - precision=3, printout=False, with_colors=False): + precision=3, printout=False, with_colors=False) -> tuple: """ Analyze HIST nc files produced by the tasks. Print pandas DataFrame with final results. Return: (df, hist_plotter) @@ -1141,7 +1183,7 @@ def compare_hist(self, nids=None, with_spglib=False, verbose=0, return df, robot - def show_summary(self, **kwargs): + def show_summary(self, **kwargs) -> None: """ Print a short summary with the status of the flow and a counter task_status --> number_of_tasks @@ -1165,7 +1207,20 @@ def show_summary(self, **kwargs): stream.write("%s, num_tasks=%s, all_ok=%s\n" % (str(self), self.num_tasks, self.all_ok)) stream.write("\n") - def show_status(self, **kwargs): + def get_dataframe(self, as_dict=False) -> pd.DataFrame: + """ + Return pandas dataframe task info or dictionary if as_dict is True. + This function should be called after flow.get_status to update the status. + """ + rows = [] + for work in self: + dict_list = work.get_dataframe(as_dict=True) + rows.extend(dict_list) + + if as_dict: return rows + return pd.DataFrame(rows) + + def show_status(self, return_df=False, **kwargs): """ Report the status of the works and the status of the different tasks on the specified stream. @@ -1174,11 +1229,17 @@ def show_status(self, **kwargs): nids: List of node identifiers. By defaults all nodes are shown wslice: Slice object used to select works. verbose: Verbosity level (default 0). > 0 to show only the works that are not finalized. + + Return: + data_task dictionary with mapping: task --> dict(report=report, timedelta=timedelta) """ stream = kwargs.pop("stream", sys.stdout) nids = as_set(kwargs.pop("nids", None)) wslice = kwargs.pop("wslice", None) verbose = kwargs.pop("verbose", 0) + + #start_time = time.now() + wlist = None if wslice is not None: # Convert range to list of work indices. @@ -1187,11 +1248,14 @@ def show_status(self, **kwargs): #has_colours = stream_has_colours(stream) has_colours = True red = "red" if has_colours else None + data_task = {} for i, work in enumerate(self): if nids and work.node_id not in nids: continue print("", file=stream) - cprint_map("Work #%d: %s, Finalized=%s" % (i, work, work.finalized), cmap={"True": "green"}, file=stream) + name = "" + if hasattr(work, "_name"): name = ", work_name=%s" % work._name + cprint_map("Work #%d: %s, Finalized=%s %s" % (i, work, work.finalized, name), cmap={"True": "green"}, file=stream) if wlist is not None and i in wlist: continue if verbose == 0 and work.finalized: print(" Finalized works are not shown. Use verbose > 0 to force output.", file=stream) @@ -1221,13 +1285,20 @@ def show_status(self, **kwargs): if timedelta is not None: stime = str(timedelta) + "Q" + if return_df: + # Add new entry to data_task + data_task[task] = dict(report=report, stime=stime, timedelta=timedelta) + events = "|".join(2*["NA"]) if report is not None: - events = '{:>4}|{:>3}'.format(*map(str, ( - report.num_warnings, report.num_comments))) + events = '{:>4}|{:>3}'.format(*map(str, (report.num_warnings, report.num_comments))) - para_info = '{:>4}|{:>3}|{:>3}'.format(*map(str, ( - task.mpi_procs, task.omp_threads, "%.1f" % task.mem_per_proc.to("Gb")))) + try: + para_info = '{:>4}|{:>3}|{:>3}'.format(*map(str, ( + task.mpi_procs, task.omp_threads, "%.1f" % task.mem_per_proc.to("GB")))) + except (KeyError, UnitError): + para_info = '{:>4}|{:>3}|{:>3}'.format(*map(str, ( + task.mpi_procs, task.omp_threads, "%.1f" % task.mem_per_proc.to("Gb")))) task_info = list(map(str, [task.__class__.__name__, (task.num_launches, task.num_restarts, task.num_corrections), stime, task.node_id])) @@ -1244,11 +1315,9 @@ def show_status(self, **kwargs): task_name = colored(task_name, red) if has_colours: - table.append([task_name, task.status.colored, qinfo, - para_info, events] + task_info) + table.append([task_name, task.status.colored, qinfo, para_info, events] + task_info) else: - table.append([task_name, str(task.status), qinfo, events, - para_info] + task_info) + table.append([task_name, str(task.status), qinfo, events, para_info] + task_info) # Print table and write colorized line with the total number of errors. print(tabulate(table, headers=headers, tablefmt="grid"), file=stream) @@ -1259,6 +1328,18 @@ def show_status(self, **kwargs): if self.all_ok: cprint("\nall_ok reached\n", "green", file=stream) + if return_df: + rows = [] + for task, data in data_task.items(): + d = task.get_dataframe(as_dict=True) + # Add extra info from report + report = data["report"] + d["num_warnings"] = report.num_warnings if report is not None else -1 + d["num_comments"] = report.num_comments if report is not None else -1 + rows.append(d) + + return pd.DataFrame(rows) + def show_events(self, status=None, nids=None, stream=sys.stdout): """ Print the Abinit events (ERRORS, WARNIING, COMMENTS) to stdout @@ -1267,17 +1348,23 @@ def show_events(self, status=None, nids=None, stream=sys.stdout): status: if not None, only the tasks with this status are select nids: optional list of node identifiers used to filter the tasks. stream: File-like object, Default: sys.stdout + + Return: + data_task dictionary with mapping: task --> report """ nrows, ncols = get_terminal_size() + data_task = {} for task in self.iflat_tasks(status=status, nids=nids): report = task.get_event_report() + data_task[task] = report if report: print(make_banner(str(task), width=ncols, mark="="), file=stream) print(report, file=stream) - #report = report.filter_types() - def show_corrections(self, status=None, nids=None, stream=sys.stdout): + return data_task + + def show_corrections(self, status=None, nids=None, stream=sys.stdout) -> int: """ Show the corrections applied to the flow at run-time. @@ -1300,7 +1387,8 @@ def show_corrections(self, status=None, nids=None, stream=sys.stdout): if not count: print("No correction found.", file=stream) return count - def show_history(self, status=None, nids=None, full_history=False, metadata=False, stream=sys.stdout): + def show_history(self, status=None, nids=None, full_history=False, + metadata=False, stream=sys.stdout) -> None: """ Print the history of the flow to stream @@ -1314,7 +1402,7 @@ def show_history(self, status=None, nids=None, full_history=False, metadata=Fals nrows, ncols = get_terminal_size() works_done = [] - # Loop on the tasks and show the history of the work is not in works_done + # Loop on the tasks and show the history of the work if not in works_done for task in self.iflat_tasks(status=status, nids=nids): work = task.work @@ -1333,7 +1421,7 @@ def show_history(self, status=None, nids=None, full_history=False, metadata=Fals cprint(make_banner(str(self), width=ncols, mark="="), file=stream, **self.status.color_opts) print(self.history.to_string(metadata=metadata), file=stream) - def show_inputs(self, varnames=None, nids=None, wslice=None, stream=sys.stdout): + def show_inputs(self, varnames=None, nids=None, wslice=None, stream=sys.stdout) -> None: """ Print the input of the tasks to the given stream. @@ -1383,7 +1471,7 @@ def show_inputs(self, varnames=None, nids=None, wslice=None, stream=sys.stdout): stream.writelines(lines) - def listext(self, ext, stream=sys.stdout): + def listext(self, ext, stream=sys.stdout) -> None: """ Print to the given `stream` a table with the list of the output files with the given `ext` produced by the flow. @@ -1405,7 +1493,7 @@ def listext(self, ext, stream=sys.stdout): else: print("No output file with extension %s has been produced by the flow" % ext, file=stream) - def select_tasks(self, nids=None, wslice=None, task_class=None): + def select_tasks(self, nids=None, wslice=None, task_class=None) -> list[Task]: """ Return a list with a subset of tasks. @@ -1437,7 +1525,8 @@ def select_tasks(self, nids=None, wslice=None, task_class=None): return tasks - def get_task_scfcycles(self, nids=None, wslice=None, task_class=None, exclude_ok_tasks=False): + def get_task_scfcycles(self, nids=None, wslice=None, task_class=None, + exclude_ok_tasks=False) -> list[Task]: """ Return list of (taks, scfcycle) tuples for all the tasks in the flow with a SCF algorithm e.g. electronic GS-SCF iteration, DFPT-SCF iterations etc. @@ -1455,7 +1544,7 @@ def get_task_scfcycles(self, nids=None, wslice=None, task_class=None, exclude_ok tasks_cycles = [] for task in self.select_tasks(nids=nids, wslice=wslice): - # Fileter + # Filter if task.status not in select_status or task.cycle_class is None: continue if task_class is not None and not task.isinstance(task_class): @@ -1470,7 +1559,7 @@ def get_task_scfcycles(self, nids=None, wslice=None, task_class=None, exclude_ok return tasks_cycles - def show_tricky_tasks(self, verbose=0, stream=sys.stdout): + def show_tricky_tasks(self, verbose=0, stream=sys.stdout) -> None: """ Print list of tricky tasks i.e. tasks that have been restarted or launched more than once or tasks with corrections. @@ -1534,28 +1623,14 @@ def inspect(self, nids=None, wslice=None, **kwargs): def get_results(self, **kwargs): results = self.Results.from_node(self) - results.update(self.get_dict_for_mongodb_queries()) return results - def get_dict_for_mongodb_queries(self): - """ - This function returns a dictionary with the attributes that will be - put in the mongodb document to facilitate the query. - Subclasses may want to replace or extend the default behaviour. - """ - d = {} - return d - # TODO - all_structures = [task.input.structure for task in self.iflat_tasks()] - all_pseudos = [task.input.pseudos for task in self.iflat_tasks()] - - def look_before_you_leap(self): + def look_before_you_leap(self) -> str: """ This method should be called before running the calculation to make sure that the most important requirements are satisfied. - Return: - List of strings with inconsistencies/errors. + Return: string with inconsistencies/errors. """ errors = [] @@ -1564,56 +1639,9 @@ def look_before_you_leap(self): except self.Error as exc: errors.append(str(exc)) - if self.has_db: - try: - self.manager.db_connector.get_collection() - except Exception as exc: - errors.append(""" - ERROR while trying to connect to the MongoDB database: - Exception: - %s - Connector: - %s - """ % (exc, self.manager.db_connector)) - return "\n".join(errors) - @property - def has_db(self): - """True if flow uses `MongoDB` to store the results.""" - return self.manager.has_db - - def db_insert(self): - """ - Insert results in the `MongDB` database. - """ - assert self.has_db - # Connect to MongoDb and get the collection. - coll = self.manager.db_connector.get_collection() - print("Mongodb collection %s with count %d", coll, coll.count()) - - start = time.time() - for work in self: - for task in work: - results = task.get_results() - pprint(results) - results.update_collection(coll) - results = work.get_results() - pprint(results) - results.update_collection(coll) - print("MongoDb update done in %s [s]" % time.time() - start) - - results = self.get_results() - pprint(results) - results.update_collection(coll) - - # Update the pickle file to save the mongo ids. - self.pickle_dump() - - for d in coll.find(): - pprint(d) - - def tasks_from_nids(self, nids): + def tasks_from_nids(self, nids) -> list[Task]: """ Return the list of tasks associated to the given list of node identifiers (nids). @@ -1626,7 +1654,7 @@ def tasks_from_nids(self, nids): n2task = {task.node_id: task for task in self.iflat_tasks()} return [n2task[n] for n in nids if n in n2task] - def wti_from_nids(self, nids): + def wti_from_nids(self, nids) -> list[Task]: """Return the list of (w, t) indices from the list of node identifiers nids.""" return [task.pos for task in self.tasks_from_nids(nids)] @@ -1665,7 +1693,7 @@ def open_files(self, what="o", status=None, op="==", nids=None, editor=None): def parse_timing(self, nids=None): """ Parse the timer data in the main output file(s) of Abinit. - Requires timopt /= 0 in the input file (usually timopt = -1) + Requires timopt /= 0 in the input file, usually timopt = -1. Args: nids: optional list of node identifiers used to filter the tasks. @@ -1681,6 +1709,7 @@ def parse_timing(self, nids=None): read_ok = parser.parse(paths) if read_ok: return parser + return None def show_abierrors(self, nids=None, stream=sys.stdout): @@ -1778,7 +1807,7 @@ def debug(self, status=None, nids=None, stream=sys.stdout): print(make_banner(str(task), width=ncols, mark="="), file=stream) ntasks += 1 - # Start with error files. + # Start with error files. for efname in ["qerr_file", "stderr_file",]: err_file = getattr(task, efname) if err_file.exists: @@ -1799,7 +1828,7 @@ def debug(self, status=None, nids=None, stream=sys.stdout): except Exception as exc: s = str(exc) - count = 0 # count > 0 means we found some useful info that could explain the failures. + count = 0 # count > 0 means we found some useful info that could explain the failures. if s is not None: cprint(s, color="red", file=stream) count += 1 @@ -1824,12 +1853,15 @@ def debug(self, status=None, nids=None, stream=sys.stdout): break if not count: - cprint("Houston, we could not find any error message that can explain the problem", + cprint(""" +Houston, we could not find any error message that can explain the problem. +Use the `abirun.py FLOWDIR history` command to print the log files of the different nodes. +""", color="magenta", file=stream) print("Number of tasks analyzed: %d" % ntasks, file=stream) - def cancel(self, nids=None): + def cancel(self, nids=None) -> int: """ Cancel all the tasks that are in the queue. nids is an optional list of node identifiers used to filter the tasks. @@ -1863,26 +1895,26 @@ def cancel(self, nids=None): return num_cancelled - def get_njobs_in_queue(self, username=None): + def get_njobs_in_queue(self, username=None) -> int: """ - returns the number of jobs in the queue, None when the number of jobs cannot be determined. + Returns the number of jobs in the queue, None when the number of jobs cannot be determined. Args: username: (str) the username of the jobs to count (default is to autodetect) """ return self.manager.qadapter.get_njobs_in_queue(username=username) - def rmtree(self, ignore_errors=False, onerror=None): + def rmtree(self, ignore_errors=False, onerror=None) -> None: """Remove workdir (same API as shutil.rmtree).""" if not os.path.exists(self.workdir): return shutil.rmtree(self.workdir, ignore_errors=ignore_errors, onerror=onerror) - def rm_and_build(self): + def rm_and_build(self) -> None: """Remove the workdir and rebuild the flow.""" self.rmtree() self.build() - def build(self, *args, **kwargs): + def build(self, *args, **kwargs) -> None: """Make directories and files of the `Flow`.""" # Allocate here if not done yet! if not self.allocated: self.allocate() @@ -1905,6 +1937,7 @@ def build(self, *args, **kwargs): " 1) Change the workdir of the new flow.\n" " 2) remove the old directory either with `rm -r` or by calling the method flow.rmtree()\n" % (node_id, nodeid_path, self.node_id)) + #print(msg) raise RuntimeError(msg) else: @@ -1914,6 +1947,20 @@ def build(self, *args, **kwargs): if self.pyfile and os.path.isfile(self.pyfile): shutil.copy(self.pyfile, self.workdir) + # Add README.md file if set + readme_md = getattr(self, "readme_md", None) + if readme_md is not None: + with open(os.path.join(self.workdir, "README.md"), "wt") as fh: + fh.write(readme_md) + + # Add abipy_meta.json file if set + data = getattr(self, "abipy_meta_json", None) + if data is not None: + self.write_json_in_workdir("abipy_meta.json", data) + + # Write fix_flow.py script for advanced users. + self.write_fix_flow_script() + for work in self: work.build(*args, **kwargs) @@ -1967,11 +2014,11 @@ def pickle_dumps(self, protocol=None): """ strio = StringIO() pmg_pickle_dump(self, strio, - protocol=self.pickle_protocol if protocol is None - else protocol) + protocol=self.pickle_protocol if protocol is None else protocol) return strio.getvalue() - def register_task(self, input, deps=None, manager=None, task_class=None, append=False): + def register_task(self, input: AbinitInput, + deps=None, manager=None, task_class=None, append=False) -> Work: """ Utility function that generates a `Work` made of a single task @@ -2003,12 +2050,12 @@ def register_task(self, input, deps=None, manager=None, task_class=None, append= return work - def register_work(self, work, deps=None, manager=None, workdir=None): + def new_work(self, deps=None, manager=None, workdir=None) -> Work: """ - Register a new |Work| and add it to the internal list, taking into account possible dependencies. + Helper function to add a new empty |Work| and add it to the internal list. + Client code is responsible for filling the new work. Args: - work: |Work| object. deps: List of :class:`Dependency` objects specifying the dependency of this node. An empy list of deps implies that this node has no dependencies. manager: The |TaskManager| responsible for the submission of the task. @@ -2018,9 +2065,25 @@ def register_work(self, work, deps=None, manager=None, workdir=None): Returns: The registered |Work|. """ + work = Work() + return self.register_work(work, deps=deps, manager=manager, workdir=workdir) + + def register_work(self, work: Work, deps=None, manager=None, workdir=None) -> Work: + """ + Register a new |Work| and add it to the internal list, taking into account possible dependencies. + + Args: + work: |Work| object. + deps: List of :class:`Dependency` objects specifying the dependency of this node. + An empy list of deps implies that this node has no dependencies. + manager: The |TaskManager| responsible for the submission of the task. + If manager is None, we use the `TaskManager` specified during the creation of the work. + workdir: The name of the directory used for the |Work|. + + Returns: The registered |Work|. + """ if getattr(self, "workdir", None) is not None: # The flow has a directory, build the name of the directory of the work. - work_workdir = None if workdir is None: work_workdir = os.path.join(self.workdir, "w" + str(len(self))) else: @@ -2031,6 +2094,9 @@ def register_work(self, work, deps=None, manager=None, workdir=None): if manager is not None: work.set_manager(manager) + if any(work.node_id == w.node_id for w in self): + raise ValueError(f"{work=} is already registered in the flow.") + self.works.append(work) if deps: @@ -2054,6 +2120,7 @@ def register_work_from_cbk(self, cbk_name, cbk_data, deps, work_class, manager=N Returns: The |Work| that will be finalized by the callback. """ + # TODO: Can be removed! # TODO: pass a Work factory instead of a class # Directory of the Work. work_workdir = os.path.join(self.workdir, "w" + str(len(self))) @@ -2077,14 +2144,14 @@ def register_work_from_cbk(self, cbk_name, cbk_data, deps, work_class, manager=N return work @property - def allocated(self): + def allocated(self) -> int: """Numer of allocations. Set by `allocate`.""" try: return self._allocated except AttributeError: return 0 - def allocate(self, workdir=None, use_smartio=False): + def allocate(self, workdir=None, use_smartio: bool=False, build: bool=False) -> Flow: """ Allocate the `Flow` i.e. assign the `workdir` and (optionally) the |TaskManager| to the different tasks in the Flow. @@ -2092,9 +2159,7 @@ def allocate(self, workdir=None, use_smartio=False): Args: workdir: Working directory of the flow. Must be specified here if we haven't initialized the workdir in the __init__. - - Return: - self + build: True to build the flow and save status to pickle file. """ if workdir is not None: # We set the workdir of the flow here @@ -2121,6 +2186,9 @@ def allocate(self, workdir=None, use_smartio=False): if use_smartio: self.use_smartio() + if build: + self.build_and_pickle_dump() + return self def use_smartio(self): @@ -2168,7 +2236,7 @@ def use_smartio(self): return self - def show_dependencies(self, stream=sys.stdout): + def show_dependencies(self, stream=sys.stdout) -> None: """ Writes to the given stream the ASCII representation of the dependency tree. """ @@ -2198,13 +2266,16 @@ def on_all_ok(self): if self.on_all_ok_num_calls > 0: return True self.on_all_ok_num_calls += 1 - `implement_logic_to_create_new_work` + ##################################### + # implement_logic_to_create_new_work + ##################################### self.register_work(work) self.allocate() self.build_and_pickle_dump() - return False # The scheduler will keep on running the flow. + # The scheduler will keep on running the flow. + return False """ return True @@ -2244,15 +2315,6 @@ def finalize(self): self.finalized = True - if self.has_db: - self.history.info("Saving results in database.") - try: - self.flow.db_insert() - self.finalized = True - except Exception: - self.history.critical("MongoDb insertion failed.") - return 2 - # Here we remove the big output files if we have the garbage collector # and the policy is set to "flow." if self.gc is not None and self.gc.policy == "flow": @@ -2262,7 +2324,7 @@ def finalize(self): return 0 - def set_garbage_collector(self, exts=None, policy="task"): + def set_garbage_collector(self, exts=None, policy="task") -> None: """ Enable the garbage collector that will remove the big output files that are not needed. @@ -2286,7 +2348,7 @@ def set_garbage_collector(self, exts=None, policy="task"): for task in work: task.set_gc(gc) - def connect_signals(self): + def connect_signals(self) -> None: """ Connect the signals within the `Flow`. The `Flow` is responsible for catching the important signals raised from its works. @@ -2323,9 +2385,8 @@ def connect_signals(self): # Register the callbacks for the Tasks. #self.show_receivers() - def disconnect_signals(self): + def disconnect_signals(self) -> None: """Disable the signals within the `Flow`.""" - # Disconnect the signals inside each Work. for work in self: work.disconnect_signals() @@ -2333,7 +2394,7 @@ def disconnect_signals(self): for cbk in self._callbacks: cbk.disable() - def show_receivers(self, sender=None, signal=None): + def show_receivers(self, sender=None, signal=None) -> None: sender = sender if sender is not None else dispatcher.Any signal = signal if signal is not None else dispatcher.Any print("*** live receivers ***") @@ -2341,7 +2402,7 @@ def show_receivers(self, sender=None, signal=None): print("receiver -->", rec) print("*** end live receivers ***") - def set_spectator_mode(self, mode=True): + def set_spectator_mode(self, mode=True) -> None: """ When the flow is in spectator_mode, we have to disable signals, pickle dump and possible callbacks A spectator can still operate on the flow but the new status of the flow won't be saved in @@ -2387,7 +2448,7 @@ def rapidfire(self, check_status=True, max_nlaunch=-1, max_loops=1, sleep_time=5 def single_shot(self, check_status=True, **kwargs): """ - Use :class:`PyLauncher` to submits one task. + Use :class:`PyLauncher` to submit one task. kwargs contains the options passed to the launcher. Return: Number of tasks submitted. @@ -2423,24 +2484,6 @@ def make_scheduler(self, **kwargs): sched.add_flow(self) return sched - def batch(self, timelimit=None): - """ - Run the flow in batch mode, return exit status of the job script. - Requires a manager.yml file and a batch_adapter adapter. - - Args: - timelimit: Time limit (int with seconds or string with time given with the slurm convention: - "days-hours:minutes:seconds"). If timelimit is None, the default value specified in the - `batch_adapter` entry of `manager.yml` is used. - """ - from .launcher import BatchLauncher - # Create a batch dir from the flow.workdir. - prev_dir = os.path.join(*self.workdir.split(os.path.sep)[:-1]) - prev_dir = os.path.join(os.path.sep, prev_dir) - workdir = os.path.join(prev_dir, os.path.basename(self.workdir) + "_batch") - - return BatchLauncher(workdir=workdir, flows=self).submit(timelimit=timelimit) - def make_light_tarfile(self, name=None): """Lightweight tarball file. Mainly used for debugging. Return the name of the tarball file.""" name = os.path.basename(self.workdir) + "-light.tar.gz" if name is None else name @@ -2453,7 +2496,7 @@ def make_tarfile(self, name=None, max_filesize=None, exclude_exts=None, exclude_ Args: name: Name of the tarball file. Set to os.path.basename(`flow.workdir`) + "tar.gz"` if name is None. max_filesize (int or string with unit): a file is included in the tar file if its size <= max_filesize - Can be specified in bytes e.g. `max_files=1024` or with a string with unit e.g. `max_filesize="1 Mb"`. + Can be specified in bytes e.g. `max_files=1024` or with a string with unit e.g. `max_filesize="1 MB"`. No check is done if max_filesize is None. exclude_exts: List of file extensions to be excluded from the tar file. exclude_dirs: List of directory basenames to be excluded. @@ -2465,7 +2508,15 @@ def make_tarfile(self, name=None, max_filesize=None, exclude_exts=None, exclude_ def any2bytes(s): """Convert string or number to memory in bytes.""" if is_string(s): - return int(Memory.from_string(s).to("b")) + try: + # latest pymatgen version (as of july 2024) + mem = int(Memory.from_str(s.upper()).to("B")) + except (KeyError, UnitError): # For backward compatibility with older pymatgen versions + try: + mem = int(Memory.from_str(s.replace("B", "b")).to("b")) + except AttributeError: # For even older pymatgen versions + mem = int(Memory.from_string(s.replace("B", "b")).to("b")) + return mem else: return int(s) @@ -2526,6 +2577,87 @@ def filter(tarinfo): os.chdir(back) return name + def explain(self, what="all", nids=None, verbose=0) -> str: + """ + Return string with the docstrings of the works/tasks in the Flow grouped by class. + + Args: + what: "all" to print all nodes, "works" for Works only, "tasks" for tasks only. + nids: list of node identifiers used to filter works or tasks. + verbose: Verbosity level + """ + black_list = { + ".. rubric:: Inheritance Diagram", + ".. inheritance-diagram:", + } + + def polish_doc(doc: str, node_type) -> str: + """Remove all lines in black_list""" + new_lines = [l for l in doc.splitlines() if not any(bad in l for bad in black_list)] + s = "\n".join(new_lines) + color_node = dict(work="green", task="magenta") + s = colored(s, color=color_node[node_type]) + return s + + explain_works = what in {"all", "works"} + explain_tasks = what in {"all", "tasks"} + nids = as_set(nids) + + lines = []; app = lines.append + + if explain_works: + app("") + cls2works = self.groupby_work_class() + for work_cls, works in cls2works.items(): + if nids and not any(work.node_id in nids for work in works): continue + s = f"work name: {work_cls.__name__}, declared in module: {work_cls.__module__}" + app(make_banner(s, mark="=")) + app(polish_doc(work_cls.__doc__, "work")) + app("Works belonging to this class (%d):" % len(works)) + for work in works: + app(4 * " " + str(work) + ", status: " + work.status.colored) + + if explain_tasks: + app("") + cls2tasks = self.groupby_task_class() + for task_cls, tasks in cls2tasks.items(): + if nids and not any(task.node_id in nids for task in tasks): continue + s = f"Task name: {task_cls.__name__}, declared in module: {task_cls.__module__}" + app(make_banner(s, mark="=")) + app(polish_doc(task_cls.__doc__, "task")) + app("Tasks belonging to this class (%s):" % len(tasks)) + for task in tasks: + app(4 * " " + str(task) + ", status: " + task.status.colored) + + return "\n".join(lines) + + def show_autoparal(self, nids=None, verbose=0) -> None: + """ + Print to terminal the autoparal configurations for each task in the Flow. + + Args: + nids: list of node identifiers used to filter works or tasks. + verbose: Verbosity level + """ + print("") + for task in self.iflat_tasks(): + if nids and task.node_id not in nids: continue + json_path = os.path.join(task.workdir, "autoparal.json") + if not os.path.exists(json_path): + if verbose: print("Cannot find:", json_path) + continue + + with open(json_path, "rt") as fh: + d = json.load(fh) + + optimal_conf = d.pop("optimal_conf") + paral_hints = mjson_loads(json.dumps(d)) + df = paral_hints.get_dataframe() + print("Task:", task, ", status:", task.status.colored) + print(df) + print("info:", paral_hints.info) + print("optimal:", optimal_conf) + def get_graphviz(self, engine="automatic", graph_attr=None, node_attr=None, edge_attr=None): """ Generate flow graph in the DOT language. @@ -2542,7 +2674,7 @@ def get_graphviz(self, engine="automatic", graph_attr=None, node_attr=None, edge from graphviz import Digraph fg = Digraph("flow", #filename="flow_%s.gv" % os.path.basename(self.relworkdir), - engine="fdp" if engine == "automatic" else engine) + engine="fdp" if engine == "automatic" else engine) # Set graph attributes. https://www.graphviz.org/doc/info/ fg.attr(label=repr(self)) @@ -2560,7 +2692,7 @@ def node_kwargs(node): color=node.color_hex, fontsize="8.0", label=(str(node) if not hasattr(node, "pos_str") else - node.pos_str + "\n" + node.__class__.__name__), + node.pos_str + "\n" + node.__class__.__name__), ) edge_kwargs = dict(arrowType="vee", style="solid") @@ -2619,7 +2751,7 @@ def node_kwargs(node): return fg @add_fig_kwargs - def graphviz_imshow(self, ax=None, figsize=None, dpi=300, fmt="png", **kwargs): + def graphviz_imshow(self, ax=None, figsize=None, dpi=300, fmt="png", **kwargs) -> Figure: """ Generate flow graph in the DOT language and plot it with matplotlib. @@ -2645,10 +2777,9 @@ def graphviz_imshow(self, ax=None, figsize=None, dpi=300, fmt="png", **kwargs): @add_fig_kwargs def plot_networkx(self, mode="network", with_edge_labels=False, ax=None, arrows=False, - node_size="num_cores", node_label="name_class", layout_type="spring", **kwargs): + node_size="num_cores", node_label="name_class", layout_type="spring", **kwargs) -> Figure: """ - Use networkx to draw the flow with the connections among the nodes and - the status of the tasks. + Use networkx to draw the flow with the connections among the nodes and the status of the tasks. Args: mode: `networkx` to show connections, `status` to group tasks by status. @@ -2698,8 +2829,7 @@ def plot_networkx(self, mode="network", with_edge_labels=False, ax=None, arrows= i = [dep.node for dep in child.deps].index(work) edge_labels[(work, child)] = "+".join(child.deps[i].exts) - # Get positions for all nodes using layout_type. - # e.g. pos = nx.spring_layout(g) + # Get positions for all nodes using layout_type e.g. pos = nx.spring_layout(g) pos = getattr(nx, layout_type + "_layout")(g) # Select function used to compute the size of the node @@ -2769,7 +2899,7 @@ def make_node_label(node): ax.axis("off") return fig - def write_open_notebook(flow, foreground): + def write_open_notebook(self, foreground) -> int: """ Generate an ipython notebook and open it in the browser. Return system exit code. @@ -2781,24 +2911,24 @@ def write_open_notebook(flow, foreground): nb.cells.extend([ #nbf.new_markdown_cell("This is an auto-generated notebook for %s" % os.path.basename(pseudopath)), nbf.new_code_cell("""\ - import sys, os - import numpy as np +import sys, os +import numpy as np - %matplotlib notebook - from IPython.display import display +%matplotlib notebook +from IPython.display import display - # This to render pandas DataFrames with https://github.com/quantopian/qgrid - #import qgrid - #qgrid.nbinstall(overwrite=True) # copies javascript dependencies to your /nbextensions folder +# This to render pandas DataFrames with https://github.com/quantopian/qgrid +#import qgrid +#qgrid.nbinstall(overwrite=True) # copies javascript dependencies to your /nbextensions folder - from abipy import abilab +from abipy import abilab - # Tell AbiPy we are inside a notebook and use seaborn settings for plots. - # See https://seaborn.pydata.org/generated/seaborn.set.html#seaborn.set - abilab.enable_notebook(with_seaborn=True) - """), +# Tell AbiPy we are inside a notebook and use seaborn settings for plots. +# See https://seaborn.pydata.org/generated/seaborn.set.html#seaborn.set +abilab.enable_notebook(with_seaborn=True) +"""), - nbf.new_code_cell("flow = abilab.Flow.pickle_load('%s')" % flow.workdir), + nbf.new_code_cell("flow = abilab.Flow.pickle_load('%s')" % self.workdir), nbf.new_code_cell("if flow.num_errored_tasks: flow.debug()"), nbf.new_code_cell("flow.check_status(show=True, verbose=0)"), nbf.new_code_cell("flow.show_dependencies()"), @@ -2819,7 +2949,7 @@ def write_open_notebook(flow, foreground): with io.open(nbpath, 'wt', encoding="utf8") as fh: nbformat.write(nb, fh) - from monty.os.path import which + from shutil import which has_jupyterlab = which("jupyter-lab") is not None appname = "jupyter-lab" if has_jupyterlab else "jupyter notebook" if not has_jupyterlab: @@ -2859,6 +2989,10 @@ def __init__(self, workdir, scf_input, nscf_input, scr_input, sigma_inputs, mana """ super().__init__(workdir, manager=manager) + # TODO: Remove this class as it's not compatible with the computation of the q-points + # that is not performed at the level of the Abinit parser. + warnings.warn("DeprecationWarning: G0W0WithQptdmFlow is deprecated and will be removed in abipy v0.9.2") + # Register the first work (GS + NSCF calculation) bands_work = self.register_work(BandStructureWork(scf_input, nscf_input)) @@ -2909,11 +3043,12 @@ def cbk_qptdm_workflow(self, cbk): return work +# TODO: Remove class FlowCallbackError(Exception): """Exceptions raised by FlowCallback.""" -class FlowCallback(object): +class FlowCallback: """ This object implements the callbacks executed by the |Flow| when particular conditions are fulfilled. See on_dep_ok method of |Flow|. @@ -2961,7 +3096,7 @@ def __call__(self): try: func = getattr(self.flow, self.func_name) except AttributeError as exc: - raise self.Error(str(exc)) + raise self.Error(str(exc)) from exc return func(self) @@ -2991,8 +3126,13 @@ def handle_sender(self, sender): return sender in [d.node for d in self.deps] -# Factory functions. -def bandstructure_flow(workdir, scf_input, nscf_input, dos_inputs=None, manager=None, flow_class=Flow, allocate=True): +#################### +# Factory functions +#################### + +def bandstructure_flow(workdir: str, scf_input: AbinitInput, nscf_input: AbinitInput, + dos_inputs=None, manager=None, + flow_class=Flow, allocate=True): """ Build a |Flow| for band structure calculations. @@ -3018,7 +3158,10 @@ def bandstructure_flow(workdir, scf_input, nscf_input, dos_inputs=None, manager= return flow -def g0w0_flow(workdir, scf_input, nscf_input, scr_input, sigma_inputs, manager=None, flow_class=Flow, allocate=True): +def g0w0_flow(workdir: str, + scf_input: AbinitInput, nscf_input: AbinitInput, + scr_input: AbinitInput, sigma_inputs, + manager=None, flow_class=Flow, allocate=True): """ Build a |Flow| for one-shot $G_0W_0$ calculations. @@ -3041,25 +3184,22 @@ def g0w0_flow(workdir, scf_input, nscf_input, scr_input, sigma_inputs, manager=N return flow +# TODO: Move it to dfpt_works + class PhononFlow(Flow): """ This Flow provides a high-level interface to compute phonons with DFPT The flow consists of - 1) One workflow for the GS run. + 1) One workflow for the GS part. - 2) nqpt works for phonon calculations. Each work contains - nirred tasks where nirred is the number of irreducible phonon perturbations - for that particular q-point. - - .. note: - - For a much more flexible interface, use the DFPT works defined in works.py - For instance, EPH calculations are much easier to implement by connecting a single - work that computes all the q-points with the EPH tasks instead of using PhononFlow. + 2) A second workflow to compute phonons on the ph_ngqpt q-mesh. Each work contains + Only the irreducible phonon perturbations are espliclty computed. """ @classmethod - def from_scf_input(cls, workdir, scf_input, ph_ngqpt, with_becs=True, manager=None, allocate=True): + def from_scf_input(cls, workdir: str, scf_input: AbinitInput, ph_ngqpt, + with_becs=True, with_quad=False, with_flexoe=False, + manager=None, allocate=True) -> PhononFlow: """ Create a `PhononFlow` for phonon calculations from an `AbinitInput` defining a ground-state run. @@ -3070,6 +3210,10 @@ def from_scf_input(cls, workdir, scf_input, ph_ngqpt, with_becs=True, manager=No electrons. e.g if ngkpt = (8, 8, 8). ph_ngqpt = (4, 4, 4) is a valid choice whereas ph_ngqpt = (3, 3, 3) is not! with_becs: True if Born effective charges are wanted. + with_quad: Activate calculation of dynamical quadrupoles. + Note that only selected features are compatible with dynamical quadrupoles. + Please consult + with_flexoe: True to activate computation of flexoelectric tensor. manager: |TaskManager| object. Read from `manager.yml` if None. allocate: True if the flow should be allocated before returning. @@ -3088,17 +3232,9 @@ def from_scf_input(cls, workdir, scf_input, ph_ngqpt, with_becs=True, manager=No if any(scf_ngkpt % ph_ngqpt != 0): raise ValueError("ph_ngqpt %s should be a sub-mesh of scf_ngkpt %s" % (ph_ngqpt, scf_ngkpt)) - # Get the q-points in the IBZ from Abinit - qpoints = scf_input.abiget_ibz(ngkpt=ph_ngqpt, shiftk=(0, 0, 0), kptopt=1).points - - # Create a PhononWork for each q-point. Add DDK and E-field if q == Gamma and with_becs. - for qpt in qpoints: - if np.allclose(qpt, 0) and with_becs: - ph_work = BecWork.from_scf_task(scf_task) - else: - ph_work = PhononWork.from_scf_task(scf_task, qpoints=qpt) - - flow.register_work(ph_work) + ph_work = PhononWork.from_scf_task(scf_task, ph_ngqpt, is_ngqpt=True, with_becs=with_becs, + with_quad=with_quad, with_flexoe=with_flexoe) + flow.register_work(ph_work) if allocate: flow.allocate() @@ -3111,7 +3247,8 @@ def open_final_ddb(self): Return: :class:`DdbFile` object, None if file could not be found or file is not readable. """ - ddb_path = self.outdir.has_abiext("DDB") + ph_work = self[1] + ddb_path = ph_work.outdir.has_abiext("DDB") if not ddb_path: if self.status == self.S_OK: self.history.critical("%s reached S_OK but didn't produce a GSR file in %s" % (self, self.outdir)) @@ -3124,23 +3261,6 @@ def open_final_ddb(self): self.history.critical("Exception while reading DDB file at %s:\n%s" % (ddb_path, str(exc))) return None - def finalize(self): - """This method is called when the flow is completed.""" - # Merge all the out_DDB files found in work.outdir. - ddb_files = list(filter(None, [work.outdir.has_abiext("DDB") for work in self])) - - # Final DDB file will be produced in the outdir of the work. - out_ddb = self.outdir.path_in("out_DDB") - desc = "DDB file merged by %s on %s" % (self.__class__.__name__, time.asctime()) - - mrgddb = wrappers.Mrgddb(manager=self.manager, verbose=0) - mrgddb.merge(self.outdir.path, ddb_files, out_ddb=out_ddb, description=desc) - print("Final DDB file available at %s" % out_ddb) - - # Call the method of the super class. - retcode = super().finalize() - return retcode - class NonLinearCoeffFlow(Flow): """ @@ -3150,8 +3270,10 @@ class NonLinearCoeffFlow(Flow): nirred tasks where nirred is the number of irreducible perturbations for that particular q-point. """ + @classmethod - def from_scf_input(cls, workdir, scf_input, manager=None, allocate=True): + def from_scf_input(cls, workdir: str, scf_input: AbinitInput, + manager=None, allocate=True) -> NonLinearCoeffFlow: """ Create a `NonlinearFlow` for second order susceptibility calculations from an `AbinitInput` defining a ground-state run. @@ -3161,9 +3283,6 @@ def from_scf_input(cls, workdir, scf_input, manager=None, allocate=True): scf_input: |AbinitInput| object with the parameters for the GS-SCF run. manager: |TaskManager| object. Read from `manager.yml` if None. allocate: True if the flow should be allocated before returning. - - Return: - :class:`NonlinearFlow` object. """ flow = cls(workdir, manager=manager) @@ -3171,7 +3290,6 @@ def from_scf_input(cls, workdir, scf_input, manager=None, allocate=True): scf_task = flow[0][0] nl_work = DteWork.from_scf_task(scf_task) - flow.register_work(nl_work) if allocate: flow.allocate() @@ -3198,7 +3316,7 @@ def open_final_ddb(self): self.history.critical("Exception while reading DDB file at %s:\n%s" % (ddb_path, str(exc))) return None - def finalize(self): + def finalize(self) -> int: """This method is called when the flow is completed.""" # Merge all the out_DDB files found in work.outdir. ddb_files = list(filter(None, [work.outdir.has_abiext("DDB") for work in self])) @@ -3213,20 +3331,18 @@ def finalize(self): print("Final DDB file available at %s" % out_ddb) # Call the method of the super class. - retcode = super().finalize() - print("retcode", retcode) - #if retcode != 0: return retcode - return retcode + return super().finalize() -def phonon_conv_flow(workdir, scf_input, qpoints, params, manager=None, allocate=True): +def phonon_conv_flow(workdir: str, scf_input: AbinitInput, qpoints, params, + manager=None, allocate=True): """ Create a |Flow| to perform convergence studies for phonon calculations. Args: workdir: Working directory of the flow. scf_input: |AbinitInput| object defining a GS-SCF calculation. - qpoints: List of list of lists with the reduced coordinates of the q-point(s). + qpoints: List with the reduced coordinates of the q-point(s). params: To perform a converge study wrt ecut: params=["ecut", [2, 4, 6]] manager: |TaskManager| object responsible for the submission of the jobs. @@ -3250,3 +3366,89 @@ def phonon_conv_flow(workdir, scf_input, qpoints, params, manager=None, allocate if allocate: flow.allocate() return flow + + +_FIX_FLOW_SCRIPT = """\ +#!/usr/bin/env python +''' +WARNING WARNING WARNING + +This script changes the input variables of particular tasks and resets certain tasks +so that it's possible to fix errors before starting a new scheduler. + +This is an advanced script and you are supposed to be familiar with the Abipy API. +Very bad things will happen if you don't use this script properly. + +DO NOT RUN THIS SCRIPT IF THE SCHEDULER IS STILL RUNNING YOUR FLOW. +YOU HAVE BEEN WARNED! +''' + +import sys +import argparse + +import abipy.flowtk as flowtk + +def main(): + + # Build the main parser. + parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter) + parser.add_argument('flowdir', help="File or directory containing the ABINIT flow") + parser.add_argument('--remove-lock', default=False, action="store_true", + help="Remove the lock on the pickle file used to save the status of the flow.") + parser.add_argument('--apply', default=False, action="store_true", help="Apply changes to the flow.") + + options = parser.parse_args() + + # Read the flow from the pickle file + flow = flowtk.Flow.pickle_load(options.flowdir, remove_lock=options.remove_lock) + + # List with the id of the tasks that will be changed. + nids = [] + + for task in flow.iflat_tasks(): + + # Select tasks according to class and status + # Clearly, you will need to customize this part. + if task.__class__.__name__ == "PhononTask" and task.status in (task.S_UNCONVERGED, task.S_ERROR): + + nids.append(task.node_id) + + # Here we operate on the AbinitInput of the task. + # In this particular case, we want to use toldfe instead of tolvrs. + # Again, you will need to customize this part. + + # Remove all the tolerance variables present in the input. + task.input.pop_tolerances() + + # Set new stopping criterion + task.input["toldfe"] = 1e-8 + task.input["nstep"] = 1000 + task.input["prtwf"] = 0 + + if options.apply: + print(f"Resetting {len(nids)} tasks modified by the user.") + + if nids: + for task in flow.iflat_tasks(nids=nids): + task.reset() + + print("Writing new pickle file.") + + flow.build_and_pickle_dump() + + else: + print(f"Dry run mode. {len(nids)} tasks have been modified in memory.") + + if nids: + for task in flow.iflat_tasks(nids=nids): + print(task) + + print("Use --apply to reset these tasks and update the pickle file.") + print("Then restart the scheduler with `nohup abirun.py FLOWDIR scheduler ...`") + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) +""" diff --git a/abipy/flowtk/gruneisen.py b/abipy/flowtk/gruneisen.py index 670999793..57d7c225e 100644 --- a/abipy/flowtk/gruneisen.py +++ b/abipy/flowtk/gruneisen.py @@ -1,9 +1,11 @@ # coding: utf-8 """ -Work for computing Grüneisen parameters with finite differences on DFPT phonons +Work for computing the Grüneisen parameters with finite differences of DFPT phonons. WARNING: This code must be tested more carefully. """ +from __future__ import annotations + import numpy as np from abipy.core.structure import Structure @@ -12,7 +14,7 @@ class GruneisenWork(Work): """ - This work computes the Grüneisen parameters (derivative of frequencies wrt Volume) + This work computes the Grüneisen parameters (derivative of frequencies wrt volume) using finite differences and the phonons obtained with the DFPT part of Abinit. The Anaddb input file needed to compute Grüneisen parameters will be generated in the outdata directory of the flow. @@ -25,8 +27,9 @@ class GruneisenWork(Work): """ @classmethod - def from_gs_input(cls, gs_inp, voldelta, ngqpt, tolerance=None, with_becs=False, - ddk_tolerance=None, workdir=None, manager=None): + def from_gs_input(cls, gs_inp, voldelta, ngqpt, + tolerance=None, with_becs=False, + ddk_tolerance=None, workdir=None, manager=None) -> GruneisenWork: """ Build the work from an |AbinitInput| representing a GS calculations. @@ -84,7 +87,7 @@ def on_all_ok(self): self.add_phonon_works_and_build() return super().on_all_ok() - def add_phonon_works_and_build(self): + def add_phonon_works_and_build(self) -> None: """ Get relaxed structures from the tasks, build Phonons works with new structures. Add works to the flow and build new directories. @@ -131,6 +134,9 @@ def add_phonon_works_and_build(self): with open(self.flow.outdir.path_in("anaddb_gruns.files"), "wt") as fh: fh.write("\n".join(files_file)) + #task = AbinitTask.temp_shell_task(anaddb_inp, workdir=work.outdir, manager=self.manager) + #task.start_and_wait(autoparal=False) + #with_ebands = False #if with_ebands: # bands_work = Work(manager=self.manager) diff --git a/abipy/flowtk/gs_works.py b/abipy/flowtk/gs_works.py index 983c5eaae..b0491d6f2 100644 --- a/abipy/flowtk/gs_works.py +++ b/abipy/flowtk/gs_works.py @@ -1,14 +1,133 @@ # coding: utf-8 """Work subclasses related to GS calculations.""" +from __future__ import annotations + import json -from .works import Work +from pymatgen.analysis.eos import EOS from abipy.core.structure import Structure +from abipy.abio.inputs import AbinitInput +from abipy.electrons.gsr import GsrRobot +from .works import Work + +__all__ = [ + "GsKmeshConvWork" + "GsKmeshTsmearConvWork", + "EosWork", +] + + +class GsKmeshConvWork(Work): + """ + This work performs convergence studies of GS properties + with respect to the k-mesh + + It produces ... + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GsKmeshConvWork + """ + + @classmethod + def from_scf_input(cls, scf_input: AbinitInput, nksmall_list: list) -> GsKmeshConvWork: + """ + Build the work from a `scf_input` for a GS SCF run and a list + with the smallest number of divisions for the k-mesh. + """ + work = cls() + for nksmall in nksmall_list: + new_inp = scf_input.deepcopy() + new_inp.set_autokmesh(nksmall) + work.register_scf_task(new_inp) + + return work + + def on_all_ok(self): # pragma: no cover + """ + This method is called when all tasks in the GsKmeshTsmearConvWork have reached S_OK. + """ + with GsrRobot.from_work(self) as gsr_robot: + df = gsr_robot.get_dataframe(with_geo=False) + # Write excel file. + basename = self.__class__.__name__ + df.to_excel(self.outdir.path_in(f"{basename}.xlsx")) + + with gsr_robot.get_pyscript(self.outdir.path_in("gsr_robot.py")) as script: + script.add_text(""" +# Quantities that should be tested for convergence. +abs_conv = { +"energy_per_atom": 1e-3, +"pressure": 1e-2, +"max_force": 1e-4, +} +items = abs_conv.keys() + +robot.plot_convergence_items(items, sortby="nkpt", abs_conv=abs_conv) +""") + + return super().on_all_ok() + + + +class GsKmeshTsmearConvWork(Work): + """ + This work performs convergence studies of GS properties + with respect to the k-mesh and the electronic smearing. + + It produces ... + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GsKmeshTsmearConvWork + """ + + @classmethod + def from_scf_input(cls, scf_input: AbinitInput, nksmall_list: list, tsmear_list: list) -> GsKmeshTsmearConvWork: + """ + Build the work from a `scf_input` for a GS SCF run including `occopt` + and a list with the smallest number of divisions for the k-mesh. + """ + occopt = scf_input.get("occopt", default=None) + if occopt is None or occopt <= 0: + raise ValueError(f"scf_input should define occopt but found: {occopt}") + + work = cls() + for tsmear in tsmear_list: + for nksmall in nksmall_list: + new_inp = scf_input.new_with_vars(tsmear=tsmear) + new_inp.set_autokmesh(nksmall) + work.register_scf_task(new_inp) + + return work + + def on_all_ok(self): # pragma: no cover + """ + This method is called when all tasks in the GsKmeshTsmearConvWork have reached S_OK. + """ + with GsrRobot.from_work(self) as gsr_robot: + df = gsr_robot.get_dataframe(with_geo=False) + # Write excel file. + basename = self.__class__.__name__ + df.to_excel(self.outdir.path_in(f"{basename}.xlsx")) + + with gsr_robot.get_pyscript(self.outdir.path_in("gsr_robot.py")) as script: + script.add_text(""" +# Quantities that should be tested for convergence. +abs_conv = { +"energy_per_atom": 1e-3, +"pressure": 1e-2, +"max_force": 1e-4, +} +items = abs_conv.keys() + +robot.plot_convergence_items(items, sortby="nkpt", hue="tsmear", abs_conv=abs_conv) +""") + + return super().on_all_ok() class EosWork(Work): """ - Work for the computation of the Equation of State + Work to compute the Equation of State. The EOS is obtained by computing E(V) for several volumes around the input V0, The initial volumes are obtained by rescaling the input lattice vectors so that length proportions and angles are preserved. @@ -23,16 +142,20 @@ class EosWork(Work): `eos_data.json` file produced in the `outdata` directory. The file contains the energies, the volumes and the values of V0, B0, B1 obtained with different EOS models. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: EosWork """ @classmethod - def from_scf_input(cls, scf_input, npoints=4, deltap_vol=0.25, ecutsm=0.5, move_atoms=True, - manager=None): + def from_scf_input(cls, scf_input: AbinitInput, + npoints=4, deltap_vol=0.25, ecutsm=0.5, move_atoms=True, + manager=None) -> EosWork: """ - Build a EosWork from an AbinitInput representing a SCF-GS calculation. + Build an EosWork from an AbinitInput for GS-SCF. Args: - scf_input: AbinitInput for SCF-GS used as template to generate the other inputs. + scf_input: AbinitInput for GS-SCF used as template to generate the other inputs. npoints: Number of volumes generated on the right (left) of the equilibrium volume The total number of points is therefore 2 * n + 1. deltap_vol: Step of the linear mesh given in relative percentage of the equilibrium volume @@ -42,8 +165,6 @@ def from_scf_input(cls, scf_input, npoints=4, deltap_vol=0.25, ecutsm=0.5, move_ move_atoms: If True, a structural relaxation of ions is performed for each volume This is needed if the atomic positions are non fixed by symmetry. manager: TaskManager instance. Use default if None. - - Return: EosWork instance. """ new_work = cls(manager=manager) @@ -81,19 +202,28 @@ def from_scf_input(cls, scf_input, npoints=4, deltap_vol=0.25, ecutsm=0.5, move_ return new_work - def getnwrite_eosdata(self, write_json=True): + @classmethod + def from_inputs(cls, inputs: list[AbinitInput], manager=None) -> EosWork: """ - This method is called when all tasks reach S_OK. It reads the energies - and the volumes from the GSR file, computes the EOS and produce a - JSON file `eos_data.json` in outdata. + Advanced interface to build an EosWork from an list of AbinitInputs. + """ + new_work = cls(manager=manager) + new_work.input_volumes = [inp.structure.lattice.volume for inp in inputs] + for scf_inp in inputs: + new_work.register_scf_task(scf_inp) + + return new_work + + def get_and_write_eosdata(self, write_json=True) -> dict: + """ + Compute the EOS and produce a JSON file `eos_data.json` in outdata. """ energies_ev, volumes = [], [] for task in self: with task.open_gsr() as gsr: - volumes.append(float(gsr.structure.volume)) energies_ev.append(float(gsr.energy)) + volumes.append(float(gsr.structure.volume)) - from pymatgen.analysis.eos import EOS eos_data = {"input_volumes_ang3": self.input_volumes, "volumes_ang3": volumes, "energies_ev": energies_ev} @@ -112,102 +242,11 @@ def getnwrite_eosdata(self, write_json=True): return eos_data - def on_all_ok(self): - """ - This method is called when all tasks reach S_OK. It reads the energies - and the volumes from the GSR file, computes the EOS and produce a - JSON file `eos_data.json` in outdata. - """ - self.getnwrite_eosdata() - return dict(returncode=0, message="EOS computed and file written") - - -#class FiniteDiffStressWork(Work): -# """ -# Work for the computation of the stress tensor -# """ -# -# @classmethod -# def from_scf_input(cls, scf_input, delta=1e-4, ecutsm=0.5, manager=None): -# """ -# Build a EosWork from an AbinitInput representing a SCF-GS calculation. -# -# Args: -# scf_input: AbinitInput for SCF-GS used as template to generate the other inputs. -# delta: -# ecutsm: Value of ecutsm input variable. If `scf_input` does not provide ecutsm, this -# value will be used else the vale in `scf_input`. -# manager: TaskManager instance. Use default if None. -# -# Return: EosWork instance. -# """ -# scf_input = scf_input.deepcopy() -# -# if "ecutsm" not in scf_input: -# scf_input.set_vars(ecutsm=ecutsm) -# print("Input does not define ecutsm input variable.\n", -# "A default value of %s will be added to all the EOS inputs" % ecutsm) -# -# new_work = cls(manager=manager) -# self.unstrained_task = new_work.register_scf_task(scf_input) -# -# voigt_inds = [(0, 0)] -# -# self.delta = float(delta) -# self.tasks_voigt = {} -# for voigt in voigt_inds: -# self.tasks_voigt[voigt] = defaultdict(list) -# for isign in (-1, +1): -# # Apply strain to the lattice. -# strain = np.zeros((3, 3)) -# strain[voigt] = float(isign) * delta -# new_structure = scf_input.structure.deepcopy() -# new_structure.apply_strain(strain) -# new_input = scf_input.new_with_structure(new_structure) -# -# # Perform GS calculations with strained cell. -# task = new_work.register_scf_task(new_input) -# self.tasks_voigt[voigt].append(task) -# -# return new_work -# -# def compute_and_write_stress(self): -# """ -# This method is called when all tasks reach S_OK. -# It reads the energies and the volumes from the GSR file, computes the EOS and produce a -# JSON file `eos_data.json` in outdata. -# """ -# with self.unstrained_task.open_gsr() as gsr0: -# e0, v0 = gsr0.energy, gsr0.structure.volume -# cart_stress_tensor = gsr0.cart_stress_tensor -# -# fd_tensor = np.empty((3, 3)) -# for voigt in voigt_inds: -# tasks = self.tasks_voigt[voigt] -# energies_ev, volumes = np.empty(len(tasks), np.empty(len(tasks)) -# for i, task in enumerate(task): -# with task.open_gsr() as gsr: -# energies_ev[i] = float(gsr.energy)) -# -# d = (e_plus - e_minus) / (2 * self.delta * v0) -# fd_tensor[voigt] = d -# fd_tensor[voigt[1], voigt[0]] = d -# -# data = { -# "dfpt_cart_stress_tensor": cart_stress_tensor, -# "finite_diff_cart_stress_tensor": fd_cart_stress_tensor, -# } -# -# with open(self.outdir.path_in("stress.json"), "wt") as fh: -# json.dump(data, fh, indent=4, sort_keys=True) -# -# return data -# -# def on_all_ok(self): -# """ -# This method is called when all tasks reach S_OK. It reads the energies -# and the volumes from the GSR file, computes the EOS and produce a -# JSON file `eos_data.json` in outdata. -# """ -# self.compute_and_write_stress() -# return dict(returncode=0, message="EOS computed and file written") + def on_all_ok(self): # pragma: no cover + """ + This method is called when all tasks have reached S_OK. + It reads the energies and the volumes from the GSR file, computes the EOS + and produce a JSON file `eos_data.json` in outdata. + """ + self.get_and_write_eosdata() + return super().on_all_ok() diff --git a/abipy/flowtk/gw_works.py b/abipy/flowtk/gw_works.py new file mode 100644 index 000000000..a6a25e6f5 --- /dev/null +++ b/abipy/flowtk/gw_works.py @@ -0,0 +1,114 @@ +# coding: utf-8 +""" +Works and Flows for GW calculations with the quartic-scaling implementation. +""" +from __future__ import annotations + +import os +#import numpy as np + +from . import wrappers +from .nodes import Node +from .tasks import NscfTask +from .works import Work + + +class ScreeningWork(Work): + """ + This work parallelizes the calculation of the q-points of the screening. + It also provides the callback `on_all_ok` that calls the mrgscr tool + to merge all the partial SCR files produced. + + The final SCR file is available in the `outdata` directory of the work. + To use this SCR file as dependency of other tasks, use the syntax: + + deps={scr_work: "SCR"} + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: ScreeningWork + """ + + @classmethod + def from_nscf_task(cls, nscf_task: NscfTask, scr_input, manager=None) -> ScreeningWork: + """ + Construct a `ScreeningWork` from a |NscfTask| object. + + Args: + nscf_task: |NscfTask| object which produced the WFK file with empty states + scr_input: |AbinitInput| object representing a SCREENING calculation. + manager: |TaskManager| object. + """ + if not isinstance(nscf_task, NscfTask): + raise TypeError("task `%s` does not inherit from NscfTask" % nscf_task) + + new = cls(manager=manager) + + # Call abinit to get the list of q-points for the dielectric matrix + scr_ibz = scr_input.abiget_scr_ibz() + + # Now we can register the task for the different q-points + for qpoint in scr_ibz.points: + new.register_scr_task(scr_input.new_with_vars(nqptdm=1, qptdm=qpoint), + deps={nscf_task: "WFK"}) + + return new + + @classmethod + def from_wfk_filepath(cls, wfk_filepath, scr_input, manager=None) -> ScreeningWork: + """ + Construct a `ScreeningWork` from a WFK filepath and a screening input. + + WARNING: the parameters reported in `scr_input` e.g. k-mesh, nband, ecut etc + must be consisten with those used to generate the WFK file. + No consistencty check is done at this level. You have been warned! + + Args: + wfk_filepath: Path to the WFK file. + scr_input: |AbinitInput| object representing a SCREENING calculation. + manager: |TaskManager| object. + """ + new = cls(manager=manager) + wfk_node = Node.as_node(wfk_filepath) + + # Get list of q-points for the dielectric matrix + scr_ibz = scr_input.abiget_scr_ibz() + + # Now we can register the task for the different q-points + for qpoint in scr_ibz.points: + new.register_scr_task(scr_input.new_with_vars(nqptdm=1, qptdm=qpoint), + deps={wfk_node: "WFK"}) + + return new + + def merge_scr_files(self, remove_scrfiles=True, verbose=0) -> str: + """ + This method is called when all the q-points have been computed. + It runs `mrgscr` in sequential on the local machine to produce + the final SCR file in the outdir of the `Work`. + If remove_scrfiles is True, the partial SCR files are removed after the merge. + """ + scr_files = list(filter(None, [task.outdir.has_abiext("SCR") for task in self])) + + self.history.info("Will call mrgscr to merge %s SCR files:\n" % len(scr_files)) + assert len(scr_files) == len(self) + + mrgscr = wrappers.Mrgscr(manager=self[0].manager, verbose=verbose) + final_scr = mrgscr.merge_qpoints(self.outdir.path, scr_files, out_prefix="out") + + if remove_scrfiles: + for scr_file in scr_files: + try: + os.remove(scr_file) + except IOError: + pass + + return final_scr + + def on_all_ok(self): # pragma: no cover + """ + This method is called when all the q-points have been computed. + It runs `mrgscr` in sequential on the local machine to produce + the final SCR file in the outdir of the `Work`. + """ + final_scr = self.merge_scr_files() + return self.Results(node=self, returncode=0, message="mrgscr done", final_scr=final_scr) diff --git a/abipy/flowtk/gwr_works.py b/abipy/flowtk/gwr_works.py new file mode 100644 index 000000000..0009e341f --- /dev/null +++ b/abipy/flowtk/gwr_works.py @@ -0,0 +1,254 @@ +# coding: utf-8 +""" +Works and Flows for GWR calculations (GW with supercells). + +NB: An Abinit build with Scalapack is required to run GWR. +""" +from __future__ import annotations + +import os + +from abipy.abio.inputs import AbinitInput, RUNL, GWR_TASK +from abipy.electrons.gwr import GwrRobot +from abipy.tools.iotools import make_executable +from .nodes import Node +from .tasks import TaskManager +from .works import Work + + +class DirectDiagoWork(Work): + """ + This work performs the direct diagonalization of the KS Hamiltonian + using the density produced by a GS-SCF run and produces a WFK file with + empty states in the outdir of the second task. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: DirectDiagoWork + """ + + @classmethod + def from_scf_input(cls, scf_input: AbinitInput, green_nband: int, + manager: TaskManager=None) -> DirectDiagoWork: + """ + Build object from an input representing a GS-SCF calculation. + + Args: + scf_input: Input for the GS-SCF calculation. + green_nband: Number of bands to compute in the direct diagonalization. + A negative value activate full diagonalization with nband equal to + the number of PWs. + """ + work = cls(manager=manager) + work.green_nband = green_nband + gwr_task = GWR_TASK.HDIAGO_FULL if green_nband < 0 else GWR_TASK.HDIAGO + work.scf_task = work.register_scf_task(scf_input) + diago_input = scf_input.new_with_vars(optdriver=RUNL.GWR, gwr_task=gwr_task) + work.diago_task = work.register_gwr_task(diago_input, deps={work.scf_task: "DEN"}) + + return work + + +class _BaseGWRWork(Work): + + @classmethod + def from_varname_values(cls, varname_values: tuple, gwr_template: AbinitInput, + den_node: Node, wfk_node: Node, + manager: TaskManager = None): + """ + Generate the work by changing the values of selected variables in a template for GWR calculations. + + Args: + varname_values: Tuple or List of tuples. See examples below. + gwr_template: GWR input to be used as template to generate other inputs. + den_node: The Node who produced the DEN file. + wfk_node: The Node who produced the WFK file. + manager: Abipy Task Manager. + + Example: + + varname_values = ("nband", [8, 12, 14]) + Work.from_varname_values(varname_values, gwr_template, den_node, wfk_node) + + or: + + varname_values = [ + ("nband", [8, 12]), + ("gwr_ntau", [6, 8]), + ] + + Work.from_varname_values(varname_values, gwr_template, den_node, wfk_node) + """ + work = cls(manager=manager) + for new_inp in gwr_template.news_varname_values(varname_values): + work.register_gwr_task(new_inp, deps={den_node: "DEN", wfk_node: "WFK"}) + + return work + + +class GWRSigmaConvWork(_BaseGWRWork): + """ + This work performs multiple QP calculations with the GWR code + and produces `xlsx` files in its `outdata` directory + with the QP results obtained with the different parameters. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GWRSigmaConvWork + """ + + def on_all_ok(self): + """ + Generate `qp_dirgaps.csv` file in the `outdata` directory. + """ + with GwrRobot.from_files(self.get_all_outdata_files_with_ext("_GWR.nc")) as gwr_robot: + dirgaps_df = gwr_robot.get_dirgaps_dataframe() + dirgaps_df.to_csv(self.outdir.path_in("dirgaps.csv")) + qpdata_df = gwr_robot.get_dataframe() + qpdata_df.to_csv(self.outdir.path_in("qpdata.csv")) + + with gwr_robot.get_pyscript(self.outdir.path_in("gwr_robot.py")) as script: + script.add_text(""" +#robot.plot_selfenergy_conv(spin=0, kpoint=?, band=?, axis="wreal", sortby=None, hue=None) +#robot.plot_qpgaps_convergence(qp_kpoints="all", qp_type="qpz0", sortby=None, hue=None) +""") + + return super().on_all_ok() + + + +class GWRChiCompareWork(_BaseGWRWork): + """ + This work computes the irreducibile polarizability along the imaginary axis + using the GWR code and the quartic-scaling algorithm using the same minimax mesh + so that one can compare the two quantities. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: GWRChiCompareConvWork + """ + + @classmethod + def from_scf_input(cls, scf_input: AbinitInput, gwr_ntau, nband, ecuteps, + den_node: Node, wfk_node: Node, + gwr_kwargs=None, scr_kwargs=None, + manager: TaskManager = None): + """ + Build Work from an input for GS-SCF calculation + + Args: + scf_input: input for GS run. + gwr_ntau: Number of points in minimax mesh. + nband: Number of bands to build G and chi. + ecuteps: Cutoff energy for chi. + den_node: The Node who produced the DEN file. + wfk_node: The Node who produced the WFK file. + gwr_kwargs: Extra kwargs used to build the GWR input. + scr_kwargs: Extra kwargs used to build the SCR input. + manager: Abipy Task Manager. + """ + gwr_input = scf_input.make_gwr_qprange_input(gwr_ntau=gwr_ntau, nband=nband, + ecuteps=ecuteps, gwr_task=GWR_TASK.CHI0) + gwr_input.set_vars(prtsuscep=1, iomode=3) + if gwr_kwargs is not None: gwr_input.set_vars(**gwr_kwargs) + + chi_input = scf_input.new_with_vars(optdriver=3, + gwcalctyp=1, # Analytic continuation. + nfreqim=gwr_ntau, + ecuteps=ecuteps, + nband=nband, + prtsuscep=1, + iomode=3, + userie=4242, # Magic number to use the minimax mesh in the SCR driver. + # with nfreqim points. + ) + if scr_kwargs is not None: chi_input.set_vars(**scr_kwargs) + + work = cls(manager=manager) + work.register_scr_task(chi_input, deps={wfk_node: "WFK"}) + work.register_gwr_task(gwr_input, deps={den_node: "DEN", wfk_node: "WFK"}) + return work + + def on_all_ok(self): + """ + Write python script to compare chi0 matrix elements. + """ + sus_path = self[0].outdir.path_in("out_SUS.nc") + tchi_path = self[1].outdir.path_in("out_TCHIM.nc") + + py_text = f"""\ +#!/usr/bin/env python + +import seaborn as sns +sns.set(context="paper", style='darkgrid', palette='deep', + font='sans-serif', font_scale=0.8, color_codes=False, rc=None) + +from abipy.electrons.gwr import TchimVsSus +o = TchimVsSus("{tchi_path}", "{sus_path}") + +gpairs = [ + ((0, 0, 0), (0, 0, 0)), + ((0, 0, 0), (1, 0, 0)), + ((1, 0, 0), (1, 0, 0)), + ((1, 0, 0), (0, 1, 0)), + ((0, 0, 0), (2, 0, 0)), +] + +qpoint_list = [ + [0, 0, 0], + [0.5, 0, 0], +] + +o.expose_qpoints_gpairs(qpoint_list, gpairs, exposer="mpl") + +#o.plot_matdiff(qpoint=0, iw_index=0) +""" + py_path = os.path.join(self.workdir, "plot_tchi_sus.py") + with open(py_path, "wt") as fh: + fh.write(py_text) + make_executable(py_path) + + return super().on_all_ok() + + +class GWRRPAConvWork(_BaseGWRWork): + """ + This work computes the RPA correlated energy for different number + of points in the minimax mesh. + """ + + @classmethod + def from_scf_input_ntaus(cls, scf_input: AbinitInput, gwr_ntau_list, nband, ecuteps, + den_node: Node, wfk_node: Node, + gwr_kwargs=None, manager: TaskManager=None): + """ + Build Work from an input for GS-SCF calculation + + Args: + scf_input: input for GS run. + gwr_ntau_list: List with number of points in minimax mesh. + nband: Number of bands to build G and chi. + ecuteps: Cutoff energy for chi. + den_node: The Node who produced the DEN file. + wfk_node: The Node who produced the WFK file. + gwr_kwargs: Extra kwargs used to build the GWR input. + manager: Abipy Task Manager. + """ + work = cls(manager=manager) + for gwr_ntau in gwr_ntau_list: + gwr_input = scf_input.make_gwr_qprange_input(gwr_ntau=gwr_ntau, nband=nband, + ecuteps=ecuteps, gwr_task=GWR_TASK.RPA_ENERGY) + if gwr_kwargs is not None: gwr_input.set_vars(**gwr_kwargs) + work.register_gwr_task(gwr_input, deps={den_node: "DEN", wfk_node: "WFK"}) + + return work + + def on_all_ok(self): + """ + Generate `gwr_robot.py` script in the `outdata` directory. + """ + with GwrRobot.from_files(self.get_all_outdata_files_with_ext("_GWR.nc")) as gwr_robot: + with gwr_robot.get_pyscript(self.outdir.path_in("gwr_robot.py")) as script: + script.add_text(""" +df = robot.get_rpa_ene_dataframe() +print(df) +""") + + return super().on_all_ok() diff --git a/abipy/flowtk/launcher.py b/abipy/flowtk/launcher.py index 6c5be4ada..f24f30add 100644 --- a/abipy/flowtk/launcher.py +++ b/abipy/flowtk/launcher.py @@ -1,77 +1,89 @@ # coding: utf-8 -# Copyright (c) Pymatgen Development Team. -# Distributed under the terms of the MIT License. """Tools for the submission of Tasks.""" +from __future__ import annotations +import abc import os import time -import ruamel.yaml as yaml -import pickle +import datetime +import pandas as pd +import apscheduler from collections import deque -from datetime import timedelta from io import StringIO +from queue import Queue, Empty +from typing import Optional +from shutil import which from monty.io import get_open_fds from monty.string import boxed, is_string -from monty.os.path import which -from monty.collections import AttrDict, dict2namedtuple +from monty.collections import AttrDict #, dict2namedtuple from monty.termcolor import cprint -from .utils import as_bool, File, Directory -from . import qutils as qu -from pymatgen.util.io_utils import ask_yesno - -try: - import apscheduler - has_apscheduler = True - has_sched_v3 = apscheduler.version >= "3.0.0" -except ImportError: - has_apscheduler = False +from monty.functools import lazy_property +from abipy.tools.iotools import yaml_safe_load, ask_yesno +from abipy.tools.typing import TYPE_CHECKING +from .utils import as_bool import logging logger = logging.getLogger(__name__) +#try: +# has_sched_v3 = apscheduler.version >= "3.0.0" +#except AttributeError: +# has_sched_v3 = False + +if TYPE_CHECKING: # needed to avoid circular imports + from .tasks import Task + #from .works import Work + from .flows import Flow + + __all__ = [ "ScriptEditor", "PyLauncher", "PyFlowScheduler", + "MultiFlowScheduler", ] -def straceback(): +def straceback() -> str: """Returns a string with the traceback.""" import traceback return traceback.format_exc() -class ScriptEditor(object): - """Simple editor that simplifies the writing of shell scripts""" + +class ScriptEditor: + """ + Simple editor to simplify the writing of shell scripts + """ + _shell = '/bin/bash' def __init__(self): self._lines = [] @property - def shell(self): + def shell(self) -> str: return self._shell - def _add(self, text, pre=""): + def _add(self, text, pre="") -> None: if is_string(text): self._lines.append(pre + text) else: self._lines.extend([pre + t for t in text]) - def reset(self): + def reset(self) -> None: """Reset the editor.""" try: del self._lines except AttributeError: pass - def shebang(self): + def shebang(self) -> None: """Adds the shebang line.""" self._lines.append('#!' + self.shell) - def declare_var(self, key, val): + def declare_var(self, key: str, val: str) -> None: """Declare a env variable. If val is None the variable is unset.""" if val is not None: line = "export " + key + '=' + str(val) @@ -80,44 +92,44 @@ def declare_var(self, key, val): self._add(line) - def declare_vars(self, d): + def declare_vars(self, d: dict) -> None: """Declare the variables defined in the dictionary d.""" for k, v in d.items(): self.declare_var(k, v) - def export_envar(self, key, val): + def export_envar(self, key: str, val: str) -> None: """Export an environment variable.""" line = "export " + key + "=" + str(val) self._add(line) - def export_envars(self, env): + def export_envars(self, env: dict) -> None: """Export the environment variables contained in the dict env.""" for k, v in env.items(): self.export_envar(k, v) - def add_emptyline(self): + def add_emptyline(self) -> None: """Add an empty line.""" self._add("", pre="") - def add_comment(self, comment): + def add_comment(self, comment: str) -> None: """Add a comment""" self._add(comment, pre="# ") - def load_modules(self, modules): + def load_modules(self, modules: list[str]) -> None: """Load the list of specified modules.""" for module in modules: self.load_module(module) - def load_module(self, module): + def load_module(self, module: str) -> None: self._add('module load ' + module + " 2>> mods.err") - def add_line(self, line): + def add_line(self, line: str) -> None: self._add(line) - def add_lines(self, lines): + def add_lines(self, lines: list[str]) -> None: self._add(lines) - def get_script_str(self, reset=True): + def get_script_str(self, reset=True) -> str: """Returns a string with the script and reset the editor if reset is True""" s = "\n".join(l for l in self._lines) if reset: @@ -129,11 +141,14 @@ class PyLauncherError(Exception): """Error class for PyLauncher.""" -class PyLauncher(object): - """This object handle the submission of the tasks contained in a |Flow|.""" +class PyLauncher: + """ + This object handle the submission of the tasks contained in a |Flow|. + """ + Error = PyLauncherError - def __init__(self, flow, **kwargs): + def __init__(self, flow: Flow, **kwargs) -> None: """ Initialize the object @@ -196,10 +211,8 @@ def rapidfire(self, max_nlaunch=-1, max_loops=1, sleep_time=5): num_launched, do_exit, launched = 0, False, [] for count in range(max_loops): - if do_exit: - break - if count > 0: - time.sleep(sleep_time) + if do_exit: break + if count > 0: time.sleep(sleep_time) tasks = self.fetch_tasks_to_run() @@ -210,8 +223,7 @@ def rapidfire(self, max_nlaunch=-1, max_loops=1, sleep_time=5): # Preventive test. tasks = [t for t in tasks if t not in launched] - if not tasks: - continue + if not tasks: continue for task in tasks: fired = task.start() @@ -220,7 +232,7 @@ def rapidfire(self, max_nlaunch=-1, max_loops=1, sleep_time=5): num_launched += 1 if num_launched >= max_nlaunch > 0: - logger.info('num_launched >= max_nlaunch, going back to sleep') + logger.info('num_launched >= max_nlaunch, breaking submission loop') do_exit = True break @@ -229,7 +241,7 @@ def rapidfire(self, max_nlaunch=-1, max_loops=1, sleep_time=5): return num_launched - def fetch_tasks_to_run(self): + def fetch_tasks_to_run(self) -> list[Task]: """ Return the list of tasks that can be submitted. Empty list if no task has been found. @@ -246,7 +258,7 @@ class PyFlowSchedulerError(Exception): """Exceptions raised by `PyFlowScheduler`.""" -class PyFlowScheduler(object): +class BaseScheduler(metaclass=abc.ABCMeta): """ This object schedules the submission of the tasks in a |Flow|. There are two types of errors that might occur during the execution of the jobs: @@ -267,17 +279,19 @@ class PyFlowScheduler(object): #. The number of jobs launched becomes greater than (`safety_ratio` * total_number_of_tasks). #. The scheduler will send an email to the user (specified by `mailto`) every `remindme_s` seconds. - If the mail cannot be sent, the scheduler will shutdown automatically. + If the mail cannot be sent, the scheduler will automatically shutdown. This check prevents the scheduler from being trapped in an infinite loop. """ # Configuration file. YAML_FILE = "scheduler.yml" + USER_CONFIG_DIR = os.path.join(os.path.expanduser("~"), ".abinit", "abipy") Error = PyFlowSchedulerError @classmethod - def autodoc(cls): + def autodoc(cls) -> str: + """Return string with scheduler options.""" i = cls.__init__.__doc__.index("Args:") return cls.__init__.__doc__[i+5:] @@ -310,82 +324,80 @@ def __init__(self, **kwargs): fix_qcritical: "yes" if the launcher should try to fix QCritical Errors (DEFAULT: "no") rmflow: If "yes", the scheduler will remove the flow directory if the calculation completed successfully. (DEFAULT: "no") - killjobs_if_errors: "yes" if the scheduler should try to kill all the runnnig jobs + killjobs_if_errors: "yes" if the scheduler should try to kill all the running jobs before exiting due to an error. (DEFAULT: "yes") """ - # Options passed to the scheduler. + self.init_kwargs = kwargs.copy() + + # Options passed to the apscheduler scheduler. self.sched_options = AttrDict( weeks=kwargs.pop("weeks", 0), days=kwargs.pop("days", 0), hours=kwargs.pop("hours", 0), minutes=kwargs.pop("minutes", 0), seconds=kwargs.pop("seconds", 0), - #start_date=kwargs.pop("start_date", None), ) if all(not v for v in self.sched_options.values()): - raise self.Error("Wrong set of options passed to the scheduler.") + raise self.Error("Please specify at least one option among: seconds, minutes, hours ...") self.mailto = kwargs.pop("mailto", None) self.verbose = int(kwargs.pop("verbose", 0)) self.use_dynamic_manager = as_bool(kwargs.pop("use_dynamic_manager", False)) self.max_njobs_inqueue = kwargs.pop("max_njobs_inqueue", 200) self.max_ncores_used = kwargs.pop("max_ncores_used", None) - self.contact_resource_manager = as_bool(kwargs.pop("contact_resource_manager", False)) self.remindme_s = float(kwargs.pop("remindme_s", 1 * 24 * 3600)) self.max_num_pyexcs = int(kwargs.pop("max_num_pyexcs", 0)) self.max_num_abierrs = int(kwargs.pop("max_num_abierrs", 0)) self.safety_ratio = int(kwargs.pop("safety_ratio", 5)) - #self.max_etime_s = kwargs.pop("max_etime_s", ) + #self.max_etime_s = kwargs.pop("max_etime_s", 14 * 3600) self.max_nlaunches = kwargs.pop("max_nlaunches", -1) self.debug = kwargs.pop("debug", 0) self.fix_qcritical = as_bool(kwargs.pop("fix_qcritical", False)) self.rmflow = as_bool(kwargs.pop("rmflow", False)) self.killjobs_if_errors = as_bool(kwargs.pop("killjobs_if_errors", True)) - self.customer_service_dir = kwargs.pop("customer_service_dir", None) - if self.customer_service_dir is not None: - self.customer_service_dir = Directory(self.customer_service_dir) - self._validate_customer_service() + # TODO: Add abinit_options, anaddb_options, exec_options if kwargs: - raise self.Error("Unknown arguments %s" % kwargs) - - if not has_apscheduler: - raise RuntimeError("Install apscheduler with pip") - - if has_sched_v3: - logger.warning("Using scheduler v>=3.0.0") - from apscheduler.schedulers.blocking import BlockingScheduler - self.sched = BlockingScheduler() - else: - from apscheduler.scheduler import Scheduler - self.sched = Scheduler(standalone=True) + raise self.Error("Unknown arguments `%s`" % str(kwargs)) + + # Register the callaback in the scheduler + #if has_sched_v3: + logger.warning("Using scheduler v >= 3.0.0") + from apscheduler.schedulers.blocking import BlockingScheduler + self.sched = BlockingScheduler() + self.sched.add_job(self.callback, "interval", **self.sched_options) + #else: + # from apscheduler.scheduler import Scheduler + # self.sched = Scheduler(standalone=True) + # self.sched.add_interval_job(self.callback, **self.sched_options) self.nlaunch = 0 self.num_reminders = 1 + self.start_time = None # Used to keep track of the exceptions raised while the scheduler is running self.exceptions = deque(maxlen=self.max_num_pyexcs + 10) # Used to push additional info during the execution. - self.history = deque(maxlen=100) + self.history = deque(maxlen=200) @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> BaseScheduler: """Read the configuration parameters from a Yaml file.""" with open(filepath, "rt") as fh: - return cls(**yaml.safe_load(fh)) + return cls(**yaml_safe_load(fh)) @classmethod - def from_string(cls, s): + def from_string(cls, s: str) -> BaseScheduler: """Create an istance from string s containing a YAML dictionary.""" stream = StringIO(s) stream.seek(0) - return cls(**yaml.safe_load(stream)) + return cls(**yaml_safe_load(stream)) @classmethod - def from_user_config(cls): + def from_user_config(cls) -> BaseScheduler: """ Initialize the :class:`PyFlowScheduler` from the YAML file 'scheduler.yml'. Search first in the working directory and then in the configuration directory of abipy. @@ -395,70 +407,98 @@ def from_user_config(cls): """ # Try in the current directory. path = os.path.join(os.getcwd(), cls.YAML_FILE) - if os.path.exists(path): return cls.from_file(path) # Try in the configuration directory. path = os.path.join(cls.USER_CONFIG_DIR, cls.YAML_FILE) - if os.path.exists(path): return cls.from_file(path) - raise cls.Error("Cannot locate %s neither in current directory nor in %s" % (cls.YAML_FILE, path)) + raise cls.Error(f""" +Cannot locate {cls.YAML_FILE} neither in current directory nor in {path}. + +An example of scheduler.yml is given below: - def __str__(self): +{cls.get_default_scheduler()} +""") + + @classmethod + def get_default_scheduler(cls) -> str: + return """ +weeks: 0 # number of weeks to wait (DEFAULT: 0). +days: 0 # number of days to wait (DEFAULT: 0). +hours: 0 # number of hours to wait (DEFAULT: 0). +minutes: 0 # number of minutes to wait (DEFAULT: 0). +seconds: 0 # number of seconds to wait (DEFAULT: 0). +mailto: null # The scheduler will send an email to `mailto` every `remindme_s` seconds. (DEFAULT: None i.e. not used). +verbose: 0 # (int) verbosity level. (DEFAULT: 0) +use_dynamic_manager: no # "yes" if the |TaskManager| must be re-initialized from file before launching the jobs. (DEFAULT: "no") +max_njobs_inqueue: 200 # Limit on the number of jobs that can be present in the queue. (DEFAULT: 200) +max_ncores_used: null # Maximum number of cores that can be used by the scheduler. (DEFAULT: None) +remindme_s: 1 # The scheduler will send an email to the user specified by `mailto` every `remindme_s` seconds. (int, DEFAULT: 1 day). +max_num_pyexcs: 0 # The scheduler will exit if the number of python exceptions is > max_num_pyexcs (int, DEFAULT: 0) +max_num_abierrs: 0 # The scheduler will exit if the number of errored tasks is > max_num_abierrs (int, DEFAULT: 0) +safety_ratio: 5 # The scheduler will exits if the number of jobs launched becomes greater than safety_ratio` * total_number_of_tasks_in_flow. (int, DEFAULT: 5) +max_nlaunches: -1 # Maximum number of tasks launched in a single iteration of the scheduler. (DEFAULT: -1 i.e. no limit) +debug: 0 # Debug level. Use 0 for production (int, DEFAULT: 0) +fix_qcritical: no # "yes" if the launcher should try to fix QCritical Errors (DEFAULT: "no") +rmflow: no # If "yes", the scheduler will remove the flow directory if the calculation completed successfully. (DEFAULT: "no") +killjobs_if_errors: yes # "yes" if the scheduler should try to kill all the running jobs before exiting due to an error. (DEFAULT: "yes") +""" + + def __str__(self) -> str: """String representation.""" lines = [self.__class__.__name__ + ", Pid: %d" % self.pid] app = lines.append - app("Scheduler options: %s" % str(self.sched_options)) - - if self.flow is not None: - app(80 * "=") - app(str(self.flow)) + app("Scheduler options:\n%s" % str(self.sched_options)) return "\n".join(lines) - @property - def pid(self): - """The pid of the process associated to the scheduler.""" - try: - return self._pid - except AttributeError: - self._pid = os.getpid() - return self._pid + @abc.abstractmethod + def add_flow(self, flow: Flow, **kwargs) -> None: + """ + Add a flow to the scheduler. + """ - @property - def pid_file(self): + @abc.abstractmethod + def start(self) -> int: """ - Absolute path of the file with the pid. - The file is located in the workdir of the flow + Starts the scheduler. Returns 0 if success. """ - return self._pid_file - @property - def flow(self): - """`Flow`.""" - try: - return self._flow - except AttributeError: - return None + @abc.abstractmethod + def callback(self): + """The function that will be executed by the scheduler.""" + + @lazy_property + def pid(self) -> int: + """The pid of the process associated to the scheduler.""" + return os.getpid() @property - def num_excs(self): + def num_excs(self) -> int: """Number of exceptions raised so far.""" return len(self.exceptions) def get_delta_etime(self): """Returns a `timedelta` object representing with the elapsed time.""" - return timedelta(seconds=(time.time() - self.start_time)) + return datetime.timedelta(seconds=(time.time() - self.start_time)) - def add_flow(self, flow): - """ - Add a flow to the scheduler. - """ - if hasattr(self, "_flow"): - raise self.Error("Only one flow can be added to the scheduler.") + def cancel_jobs_if_requested(self, flow: Flow) -> None: + """Cancel all the jobs in the flow""" + if not self.killjobs_if_errors: return + cprint("killjobs_if_errors set to 'yes'. Killing jobs before aborting the flow.", "yellow") + + try: + num_cancelled = 0 + for task in flow.iflat_tasks(): + num_cancelled += task.cancel() + cprint("Killed %d tasks" % num_cancelled, "yellow") + except Exception as exc: + cprint("Exception while trying to kill jobs:\n%s" % str(exc), "red") + + def _accept_flow(self, flow: Flow) -> None: # Check if we are already using a scheduler to run this flow flow.check_pid_file() @@ -467,87 +507,130 @@ def add_flow(self, flow): # Build dirs and files (if not yet done) flow.build() - with open(flow.pid_file, "wt") as fh: - fh.write(str(self.pid)) + errors = flow.look_before_you_leap() + if errors: + raise self.Error(str(errors)) - self._pid_file = flow.pid_file - self._flow = flow + def restart_unconverged(self, flow: Flow, max_nlaunch, excs): + if max_nlaunch <= 0: return 0 + + for task in flow.unconverged_tasks: + try: + logger.info("Trying to restart task: `%s`" % repr(task)) + fired = task.restart() + if fired: + self.nlaunch += 1 + max_nlaunch -= 1 + if max_nlaunch <= 0: + logger.info("Restart: too many jobs in the queue, returning") + flow.pickle_dump() + return 0 + + except task.RestartError: + excs.append(straceback()) + + return max_nlaunch + + def try_to_fix_flow(self, flow: Flow) -> None: + + # Temporarily disabled by MG because I don't know if fix_critical works after the + # introduction of the new qadapters + # reenabled by MsS disable things that do not work at low level + # fix only prepares for restarting, and sets to ready + if self.fix_qcritical: + nfixed = flow.fix_queue_critical() + if nfixed: print("Fixed %d QCritical error(s)" % nfixed) + + nfixed = flow.fix_abicritical() + if nfixed: print("Fixed %d AbiCritical error(s)" % nfixed) + + def check_deadlocks(self, flow: Flow) -> list[str]: + err_lines = [] + + g = flow.find_deadlocks() + if g.deadlocked: + # Check the flow again so that status are updated. + flow.check_status() + + g = flow.find_deadlocks() + print("deadlocked:", len(g.deadlocked), ", runnables:", len(g.runnables), ", running:", len(g.running)) + if g.deadlocked and not g.runnables and not g.running: + err_lines.append("No runnable job with deadlocked tasks:\n%s." % str(g.deadlocked)) - def _validate_customer_service(self): + if not g.runnables and not g.running: + # Check the flow again so that status are updated. + flow.check_status() + g = flow.find_deadlocks() + if not g.runnables and not g.running: + err_lines.append("No task is running and cannot find other tasks to submit.") + + return err_lines + + def send_email(self, msg: str, tag=None) -> int: """ - Validate input parameters if customer service is on then - create directory for tarball files with correct premissions for user and group. + Send an e-mail before completing the shutdown. + Returns 0 if success. Relies on _send_email method provided by subclass. """ - direc = self.customer_service_dir - if not direc.exists: - mode = 0o750 - print("Creating customer_service_dir %s with mode %s" % (direc, mode)) - direc.makedirs() - os.chmod(direc.path, mode) + try: + return self._send_email(msg, tag) + except Exception: + self.exceptions.append(straceback()) + return -2 + - if self.mailto is None: - raise RuntimeError("customer_service_dir requires mailto option in scheduler.yml") +class PyFlowScheduler(BaseScheduler): - def _do_customer_service(self): + @property + def pid_file(self) -> str: """ - This method is called before the shutdown of the scheduler. - If customer_service is on and the flow didn't completed successfully, - a lightweight tarball file with inputs and the most important output files - is created in customer_servide_dir. + Absolute path of the file with the pid. + The file is located in the workdir of the flow """ - if self.customer_service_dir is None: return - doit = self.exceptions or not self.flow.all_ok - doit = True - if not doit: return + return self._pid_file - prefix = os.path.basename(self.flow.workdir) + "_" + @property + def flow(self) -> Flow: + """`Flow`.""" + try: + return self._flow + except AttributeError: + return None - import tempfile, datetime - suffix = str(datetime.datetime.now()).replace(" ", "-") - # Remove milliseconds - i = suffix.index(".") - if i != -1: suffix = suffix[:i] - suffix += ".tar.gz" + def add_flow(self, flow: Flow) -> None: + """ + Add a flow to the scheduler. + """ + if hasattr(self, "_flow"): + raise self.Error(f"Only one Flow can be added to a {self.__class__.__name__} scheduler.") - #back = os.getcwd() - #os.chdir(self.customer_service_dir.path) + self._accept_flow(flow) - _, tmpname = tempfile.mkstemp(suffix="_" + suffix, prefix=prefix, - dir=self.customer_service_dir.path, text=False) + with open(flow.pid_file, "wt") as fh: + fh.write(str(self.pid)) - print("Dear customer,\n We are about to generate a tarball in\n %s" % tmpname) - self.flow.make_light_tarfile(name=tmpname) - #os.chdir(back) + self._pid_file = flow.pid_file + self._flow = flow - def start(self): + def start(self) -> int: """ - Starts the scheduler in a new thread. Returns 0 if success. - In standalone mode, this method will block until there are no more scheduled jobs. + Starts the scheduler. Returns 0 if success. + This method blocks until the flow is completed or some exception is raised. """ self.history.append("Started on %s" % time.asctime()) self.start_time = time.time() - if not has_apscheduler: - raise RuntimeError("Install apscheduler with pip") - - if has_sched_v3: - self.sched.add_job(self.callback, "interval", **self.sched_options) - else: - self.sched.add_interval_job(self.callback, **self.sched_options) - - errors = self.flow.look_before_you_leap() - if errors: - self.exceptions.append(errors) - return 1 - - # Try to run the job immediately. If something goes wrong return without initializing the scheduler. - self._runem_all() + flow = self.flow + if flow is not None: + # Try to run the job immediately. + # If something goes wrong return without initializing the scheduler. + self._runem_all() - if self.exceptions: - self.cleanup() - self.send_email(msg="Error while trying to run the flow for the first time!\n %s" % self.exceptions) - return 1 + if self.exceptions: + self.cleanup() + self.send_email(msg="Error while trying to run the flow for the first time!\n %s" % self.exceptions) + return 1 + # Start the scheduler loop. try: self.sched.start() return 0 @@ -555,92 +638,61 @@ def start(self): except KeyboardInterrupt: self.shutdown(msg="KeyboardInterrupt from user") if ask_yesno("Do you want to cancel all the jobs in the queue? [Y/n]"): - print("Number of jobs cancelled:", self.flow.cancel()) + print("Number of jobs cancelled:", flow.cancel()) - self.flow.pickle_dump() + flow.pickle_dump() return -1 - def _runem_all(self): + def _runem_all(self) -> None: """ This function checks the status of all tasks, tries to fix tasks that went unconverged, abicritical, or queuecritical - and tries to run all the tasks that can be submitted.+ + and tries to run all the tasks that can be submitted. """ excs = [] flow = self.flow + if flow is None: return - # Allow to change the manager at run-time if self.use_dynamic_manager: - from pymatgen.io.abinit.tasks import TaskManager - new_manager = TaskManager.from_user_config() - for work in flow: - work.set_manager(new_manager) + # Allow to change the manager at run-time + from .tasks import TaskManager + flow.change_manager(TaskManager.from_user_config()) - nqjobs = 0 - if self.contact_resource_manager: # and flow.TaskManager.qadapter.QTYPE == "shell": - # This call is expensive and therefore it's optional (must be activate in manager.yml) - nqjobs = flow.get_njobs_in_queue() - if nqjobs is None: - nqjobs = 0 - if flow.manager.has_queue: - logger.warning('Cannot get njobs_inqueue') - else: - # Here we just count the number of tasks in the flow who are running. - # This logic breaks down if there are multiple schedulers runnig - # but it's easy to implement without having to contact the resource manager. - nqjobs = (len(list(flow.iflat_tasks(status=flow.S_RUN))) + - len(list(flow.iflat_tasks(status=flow.S_SUB)))) + # Here we just count the number of tasks in the flow that are in RUNNING or SUBMITTED status. + # This logic clearly breaks down if there are multiple schedulers running on the same machine + # but it's easy to implement without having to contact the resource manager + # by calling `flow.get_njobs_in_queue()` that is quite expensive (and the sysadmin won't be happy!) + nqjobs = (len(list(flow.iflat_tasks(status=flow.S_RUN))) + + len(list(flow.iflat_tasks(status=flow.S_SUB)))) if nqjobs >= self.max_njobs_inqueue: - print("Too many jobs in the queue: %s. No job will be submitted." % nqjobs) + print(f"Too many jobs in the queue: {nqjobs} >= {self.max_njobs_inqueue}.\n", + "No job will be submitted.") flow.check_status(show=False) return - if self.max_nlaunches == -1: - max_nlaunch = self.max_njobs_inqueue - nqjobs - else: - max_nlaunch = min(self.max_njobs_inqueue - nqjobs, self.max_nlaunches) + max_nlaunch = self.max_njobs_inqueue - nqjobs if self.max_nlaunches == -1 else \ + min(self.max_njobs_inqueue - nqjobs, self.max_nlaunches) # check status. flow.check_status(show=False) - # This check is not perfect, we should make a list of tasks to sumbit - # and select only the subset so that we don't exceeed mac_ncores_used - # Many sections of this code should be rewritten. + # This check is not perfect, we should make a list of tasks to submit + # and then select a subset so that we don't exceeed max_ncores_used + # Many sections of this code should be rewritten though. #if self.max_ncores_used is not None and flow.ncores_used > self.max_ncores_used: if self.max_ncores_used is not None and flow.ncores_allocated > self.max_ncores_used: - print("Cannot exceed max_ncores_used %s" % self.max_ncores_used) + print("Cannot exceed max_ncores_used %s" % self.max_ncores_used, + ", ncores_allocated:", flow.ncores_allocated) return - # Try to restart the unconverged tasks - # TODO: do not fire here but prepare for fireing in rapidfire - for task in self.flow.unconverged_tasks: - try: - logger.info("Flow will try restart task %s" % task) - fired = task.restart() - if fired: - self.nlaunch += 1 - max_nlaunch -= 1 - if max_nlaunch == 0: - logger.info("Restart: too many jobs in the queue, returning") - flow.pickle_dump() - return - - except task.RestartError: - excs.append(straceback()) - - # Temporarily disable by MG because I don't know if fix_critical works after the - # introduction of the new qadapters - # reenabled by MsS disable things that do not work at low level - # fix only prepares for restarting, and sets to ready - if self.fix_qcritical: - nfixed = flow.fix_queue_critical() - if nfixed: print("Fixed %d QCritical error(s)" % nfixed) + # Try to restart unconverged tasks. + max_nlaunch = self.restart_unconverged(flow, max_nlaunch, excs) + if max_nlaunch <= 0: return - nfixed = flow.fix_abicritical() - if nfixed: print("Fixed %d AbiCritical error(s)" % nfixed) + self.try_to_fix_flow(flow) - # update database + # Update the pickle file. flow.pickle_dump() # Submit the tasks that are ready. @@ -653,7 +705,6 @@ def _runem_all(self): except Exception: excs.append(straceback()) - # check status. flow.show_status() if excs: @@ -668,30 +719,30 @@ def callback(self): # All exceptions raised here will trigger the shutdown! s = straceback() self.exceptions.append(s) - # This is useful when debugging - #try: - # print("Exception in callback, will cancel all tasks") - # for task in self.flow.iflat_tasks(): - # task.cancel() - #except Exception: - # pass - + #self.cancel_jobs_if_requested(self.flow) self.shutdown(msg="Exception raised in callback!\n" + s) def _callback(self): """The actual callback.""" - if self.debug: - # Show the number of open file descriptors - print(">>>>> _callback: Number of open file descriptors: %s" % get_open_fds()) + if self.debug: print(">>>>> _callback: Number of open file descriptors: %s" % get_open_fds()) self._runem_all() - all_ok = self.flow.all_ok - #if all_ok: all_ok = self.flow.on_all_ok() + flow = self.flow + all_ok = flow.all_ok - # Mission accomplished. Shutdown the scheduler. if all_ok: + # Mission accomplished. Shutdown the scheduler. + print("Calling flow.finalize() ...") + flow.finalize() + if self.rmflow: + print("Flow directory will be removed...") + try: + flow.rmtree() + except Exception: + logger.warning("Ignoring exception while trying to remove flow dir.") + return self.shutdown(msg="All tasks have reached S_OK. Will shutdown the scheduler and exit") # Handle failures. @@ -702,16 +753,14 @@ def _callback(self): if delta_etime.total_seconds() > self.num_reminders * self.remindme_s: self.num_reminders += 1 - msg = ("Just to remind you that the scheduler with pid %s, flow %s\n has been running for %s " % - (self.pid, self.flow, delta_etime)) + msg = ("Just to remind you that the scheduler with pid %s, flow %s has been running for %s " % + (self.pid, flow, delta_etime)) retcode = self.send_email(msg, tag="[REMINDER]") if retcode: - # Cannot send mail, shutdown now! - msg += ("\nThe scheduler tried to send an e-mail to remind the user\n" + + msg += ("\nThe scheduler tried to send an e-mail to remind the user," + " but send_email returned %d. Error is not critical though!" % retcode) print(msg) - #err_lines.append(msg) #if delta_etime.total_seconds() > self.max_etime_s: # err_lines.append("\nExceeded max_etime_s %s. Will shutdown the scheduler and exit" % self.max_etime_s) @@ -725,54 +774,30 @@ def _callback(self): # Paranoid check: disable the scheduler if we have submitted # too many jobs (it might be due to some bug or other external reasons # such as race conditions between difference callbacks!) - if self.nlaunch > self.safety_ratio * self.flow.num_tasks: + if self.nlaunch > self.safety_ratio * flow.num_tasks: msg = "Too many jobs launched %d. Total number of tasks = %s, Will shutdown the scheduler and exit" % ( - self.nlaunch, self.flow.num_tasks) + self.nlaunch, flow.num_tasks) err_lines.append(boxed(msg)) # Count the number of tasks with status == S_ERROR. - if self.flow.num_errored_tasks > self.max_num_abierrs: + if flow.num_errored_tasks > self.max_num_abierrs: msg = "Number of tasks with ERROR status %s > %s. Will shutdown the scheduler and exit" % ( - self.flow.num_errored_tasks, self.max_num_abierrs) + flow.num_errored_tasks, self.max_num_abierrs) err_lines.append(boxed(msg)) - # Test on the presence of deadlocks. - g = self.flow.find_deadlocks() - if g.deadlocked: - # Check the flow again so that status are updated. - self.flow.check_status() - - g = self.flow.find_deadlocks() - #print("deadlocked:\n", g.deadlocked, "\nrunnables:\n", g.runnables, "\nrunning\n", g.running) - print("deadlocked:", len(g.deadlocked), ", runnables:", len(g.runnables), ", running:", len(g.running)) - if g.deadlocked and not g.runnables and not g.running: - err_lines.append("No runnable job with deadlocked tasks:\n%s." % str(g.deadlocked)) - - if not g.runnables and not g.running: - # Check the flow again so that status are updated. - self.flow.check_status() - g = self.flow.find_deadlocks() - if not g.runnables and not g.running: - err_lines.append("No task is running and cannot find other tasks to submit.") + # Test for deadlocks. + errors = self.check_deadlocks(flow) + if errors: + err_lines.extend(errors) # Something wrong. Quit if err_lines: - # Cancel all jobs. - if self.killjobs_if_errors: - cprint("killjobs_if_errors set to 'yes' in scheduler file. Will kill jobs before exiting.", "yellow") - try: - num_cancelled = 0 - for task in self.flow.iflat_tasks(): - num_cancelled += task.cancel() - cprint("Killed %d tasks" % num_cancelled, "yellow") - except Exception as exc: - cprint("Exception while trying to kill jobs:\n%s" % str(exc), "red") - + self.cancel_jobs_if_requested(flow) self.shutdown("\n".join(err_lines)) return len(self.exceptions) - def cleanup(self): + def cleanup(self) -> None: """Cleanup routine: remove the pid file and save the pickle database""" try: os.remove(self.pid_file) @@ -782,11 +807,13 @@ def cleanup(self): # Save the final status of the flow. self.flow.pickle_dump() - def shutdown(self, msg): + def shutdown(self, msg: str) -> None: """Shutdown the scheduler.""" + flow = self.flow + all_ok = flow.all_ok + try: self.cleanup() - self.history.append("Completed on: %s" % time.asctime()) self.history.append("Elapsed time: %s" % self.get_delta_etime()) @@ -794,12 +821,11 @@ def shutdown(self, msg): print(">>>>> shutdown: Number of open file descriptors: %s" % get_open_fds()) retcode = self.send_email(msg) - if self.debug: - print("send_mail retcode", retcode) + if self.debug: print("send_mail retcode", retcode) # Write file with the list of exceptions: if self.exceptions: - dump_file = os.path.join(self.flow.workdir, "_exceptions") + dump_file = os.path.join(flow.workdir, "_exceptions") with open(dump_file, "wt") as fh: fh.writelines(self.exceptions) fh.write("Shutdown message:\n%s" % msg) @@ -810,10 +836,10 @@ def shutdown(self, msg): app("Completed on: %s" % time.asctime()) app("Elapsed time: %s" % str(self.get_delta_etime())) - if self.flow.all_ok: + if all_ok: app("Flow completed successfully") else: - app("Flow %s didn't complete successfully" % repr(self.flow.workdir)) + app("Flow %s didn't complete successfully" % repr(flow.workdir)) app("use `abirun.py FLOWDIR debug` to analyze the problem.") app("Shutdown message:\n%s" % msg) @@ -821,502 +847,418 @@ def shutdown(self, msg): print("\n".join(lines)) print("") - self._do_customer_service() - - if self.flow.all_ok: - print("Calling flow.finalize()...") - self.flow.finalize() - #print("finalized:", self.flow.finalized) - if self.rmflow: - app("Flow directory will be removed...") - try: - self.flow.rmtree() - except Exception: - logger.warning("Ignoring exception while trying to remove flow dir.") - finally: # Shutdown the scheduler thus allowing the process to exit. logger.debug('This should be the shutdown of the scheduler') # Unschedule all the jobs before calling shutdown #self.sched.print_jobs() - if not has_sched_v3: - for job in self.sched.get_jobs(): - self.sched.unschedule_job(job) - #self.sched.print_jobs() + #if not has_sched_v3: + # #self.sched.print_jobs() + # for job in self.sched.get_jobs(): + # self.sched.unschedule_job(job) + # self.sched.shutdown() + #else: + self.sched.shutdown(wait=False) - self.sched.shutdown() # Uncomment the line below if shutdown does not work! #os.system("kill -9 %d" % os.getpid()) - def send_email(self, msg, tag=None): - """ - Send an e-mail before completing the shutdown. - Returns 0 if success. - """ - try: - return self._send_email(msg, tag) - except Exception: - self.exceptions.append(straceback()) - return -2 - - def _send_email(self, msg, tag): - if self.mailto is None: - return -1 + def _send_email(self, msg: str, tag) -> int: + if self.mailto is None: return -1 header = msg.splitlines() app = header.append - app("Submitted on: %s" % time.ctime(self.start_time)) app("Completed on: %s" % time.asctime()) app("Elapsed time: %s" % str(self.get_delta_etime())) - app("Number of errored tasks: %d" % self.flow.num_errored_tasks) - app("Number of unconverged tasks: %d" % self.flow.num_unconverged_tasks) + # Add the status of the flow. + flow = self.flow + app("Number of errored tasks: %d" % flow.num_errored_tasks) + app("Number of unconverged tasks: %d" % flow.num_unconverged_tasks) strio = StringIO() strio.writelines("\n".join(header) + 4 * "\n") - - # Add the status of the flow. - self.flow.show_status(stream=strio) + flow.show_status(stream=strio) if self.exceptions: # Report the list of exceptions. strio.writelines(self.exceptions) if tag is None: - tag = " [ALL OK]" if self.flow.all_ok else " [WARNING]" + tag = " [ALL OK]" if flow.all_ok else " [WARNING]" - return sendmail(subject=self.flow.name + tag, text=strio.getvalue(), mailto=self.mailto) + return sendmail(subject=flow.name + tag, text=strio.getvalue(), mailto=self.mailto) -def sendmail(subject, text, mailto, sender=None): - """ - Sends an e-mail with unix sendmail. +class MultiFlowScheduler(BaseScheduler): - Args: - subject: String with the subject of the mail. - text: String with the body of the mail. - mailto: String or list of string with the recipients. - sender: string with the sender address. - If sender is None, username@hostname is used. + # TODO: history, logging, shutdown better treatment of exceptions.... - Returns: - Exit status - """ - def user_at_host(): - from socket import gethostname - return os.getlogin() + "@" + gethostname() + def __init__(self, sqldb_path, **kwargs): + super().__init__(**kwargs) + self.flows = [] - # Body of the message. - try: - sender = user_at_host() if sender is None else sender - except OSError: - sender = 'abipyscheduler@youknowwhere' + self.completed_flows = [] + self.errored_flows = [] + self._errored_flow_ids = [] - if is_string(mailto): mailto = [mailto] + self.incoming_flow_queue = Queue() - from email.mime.text import MIMEText - mail = MIMEText(text) - mail["Subject"] = subject - mail["From"] = sender - mail["To"] = ", ".join(mailto) - - msg = mail.as_string() + import threading + self._lock = threading.Lock() - # sendmail works much better than the python interface. - # Note that sendmail is available only on Unix-like OS. - from subprocess import Popen, PIPE - import sys - - sendmail = which("sendmail") - if sendmail is None: return -1 - if sys.version_info[0] < 3: - p = Popen([sendmail, "-t"], stdin=PIPE, stderr=PIPE) - else: - # msg is string not bytes so must use universal_newlines - p = Popen([sendmail, "-t"], stdin=PIPE, stderr=PIPE, universal_newlines=True) - - outdata, errdata = p.communicate(msg) - return len(errdata) - - -def __test_sendmail(): - retcode = sendmail("sendmail_test", text="hello\nworld", mailto="nobody@nowhere.com") - print("Retcode", retcode) - assert retcode == 0 - - -class BatchLauncherError(Exception): - """Exceptions raised by :class:`BatchLauncher`.""" + self.sqldb_path = sqldb_path + self.create_sqldb() + def add_flow(self, flow: Flow, user_message, priority=None) -> None: + """ + Add a flow to the scheduler. + """ + # TODO: Should check the pid file + self._accept_flow(flow) + flow.set_user_message(user_message) + self.incoming_flow_queue.put(flow) + + def register_flow_exception(self, flow_idx, exc) -> None: + flow = self.flows[flow_idx] + self.history.append(f"Exception for {repr(flow)}") + self.history.append(straceback()) + self._errored_flow_ids.append(flow_idx) + + def handle_flow_exception(self) -> None: + if not self._errored_flow_ids: return + for idx in self._errored_flow_ids: + flow = self.flows[idx] + self.errored_flows.append(flow) + + self.flows = [flow for (idx, flow) in self.flows if idx not in set(self._errored_flow_ids)] + self._errored_flow_ids = [] + + def start(self) -> int: + """ + Starts the scheduler. Returns 0 if success. + This method blocks until the flow is completed or some exception is raised. + """ + self.history.append("Started on %s" % time.asctime()) + self.start_time = time.time() + self.sched.start() -class BatchLauncher(object): - """ - This object automates the execution of multiple flow. It generates a job script - that uses abirun.py to run each flow stored in self with a scheduler. - The execution of the flows is done in sequential but each scheduler will start - to submit the tasks of the flow in autoparal mode. + # TODO + #def stop(self): + #def restart(self): - The `BatchLauncher` is pickleable, hence one can reload it, check if all flows are completed - and rerun only those that are not completed due to the timelimit. - """ - PICKLE_FNAME = "__BatchLauncher__.pickle" + def sql_connect(self): + import sqlite3 + con = sqlite3.connect(self.sqldb_path, check_same_thread=True, + detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES) + con.row_factory = sqlite3.Row + return con - Error = BatchLauncherError + def create_sqldb(self) -> None: + if os.path.exists(self.sqldb_path): + return - @classmethod - def from_dir(cls, top, workdir=None, name=None, manager=None, max_depth=2): - """ - Find all flows located withing the directory `top` and build the `BatchLauncher`. + with self._lock, self.sql_connect() as con: + # Create table + cur = con.cursor() + cur.execute("""CREATE TABLE flows ( + status TEXT NOT NULL, + formula TEXT NOT NULL, + workdir TEXT NOT NULL, + pyfile TEXT NOT NULL, + flow_id PRIMARY KEY, + upload_date TIMESTAMP, + end_date TIMESTAMP DEFAULT NULL, + user_message TEXT NOT NULL + ); + """) + con.close() + + def get_incoming_flows(self) -> list[Flow]: + flows = [] + while True: + try: + in_flow = self.incoming_flow_queue.get_nowait() + flows.append(in_flow) + except Empty: + break - Args: - top: Top level directory or list of directories. - workdir: Batch workdir. - name: - manager: |TaskManager| object. If None, the manager is read from `manager.yml` - In this case the YAML file must provide the entry `batch_manager` that defined - the queue adapter used to submit the batch script. - max_depth: Search in directory only if it is N or fewer levels below top - """ - from .flows import Flow - - def find_pickles(dirtop): - # Walk through each directory inside path and find the pickle database. - paths = [] - for dirpath, dirnames, filenames in os.walk(dirtop): - fnames = [f for f in filenames if f == Flow.PICKLE_FNAME] - paths.extend([os.path.join(dirpath, f) for f in fnames]) - return paths - - if is_string(top): - pickle_paths = find_pickles(top) + if flows: + def get_record(flow): + formula = flow[0][0].input.structure.formula + return (str(flow.status), formula, flow.workdir, os.path.basename(flow.pyfile), + flow.node_id, datetime.datetime.now(), None, flow.user_message) + + with self.sql_connect() as con: + cur = con.cursor() + values = [get_record(flow) for flow in flows] + cur.executemany("INSERT INTO flows VALUES (?, ?, ?, ?, ?, ?, ?, ?)", values) + con.close() + + return flows + + def get_dataframe(self) -> pd.DataFrame: + with self.sql_connect() as con: + df = pd.read_sql_query("SELECT * FROM flows", con) + #print("dtype", df["upload_date"].dtype) + return df + + def get_json_status(self) -> dict: + # https://stackoverflow.com/questions/25455067/pandas-dataframe-datetime-index-doesnt-survive-json-conversion-and-reconversion + status = dict( + dataframe=self.get_dataframe().to_json() #, date_format='iso'#date_unit='ns'), + ) + return status + + def get_flow_and_status_by_nodeid(self, node_id): + from abipy.flowtk.flows import Flow + with self.sql_connect() as con: + cur = con.cursor() + cur.execute("SELECT workdir, status FROM flows WHERE flow_id = ?", [node_id]) + row = cur.fetchone() + con.close() + + if row and os.path.exists(row["workdir"]): + return Flow.from_file(row["workdir"]), row["status"] else: - # List of directories. - pickle_paths = [] - for p in top: - pickle_paths.extend(find_pickles(p)) + return None, None - #workdir = os.path.join(top, "batch") if workdir is None else workdir - workdir = "batch" if workdir is None else workdir - new = cls(workdir, name=name, manager=manager) + def get_sql_rows_with_node_ids(self, node_id_list): + with self.sql_connect() as con: + cur = con.cursor() + query = "SELECT * FROM flows WHERE flow_id IN (%s)" % ','.join('?' * len(node_id_list)) + cur.execute(query, node_id_list) + rows = cur.fetchall() + con.close() + return rows - for path in pickle_paths: - new.add_flow(path) + def groupby_status(self): + from collections import defaultdict + d = defaultdict(list) - return new + with self.sql_connect() as con: + cur = con.cursor() + cur.execute("SELECT * FROM flows") + rows = cur.fetchall() - @classmethod - def pickle_load(cls, filepath): - """ - Loads the object from a pickle file. - - Args: - filepath: Filename or directory name. It filepath is a directory, we - scan the directory tree starting from filepath and we - read the first pickle database. Raise RuntimeError if multiple - databases are found. - """ - if os.path.isdir(filepath): - # Walk through each directory inside path and find the pickle database. - for dirpath, dirnames, filenames in os.walk(filepath): - fnames = [f for f in filenames if f == cls.PICKLE_FNAME] - if fnames: - if len(fnames) == 1: - filepath = os.path.join(dirpath, fnames[0]) - break # Exit os.walk - else: - err_msg = "Found multiple databases:\n %s" % str(fnames) - raise RuntimeError(err_msg) - else: - err_msg = "Cannot find %s inside directory %s" % (cls.PICKLE_FNAME, filepath) - raise ValueError(err_msg) - - with open(filepath, "rb") as fh: - new = pickle.load(fh) + con.close() - # new.flows is a list of strings with the workdir of the flows (see __getstate__). - # Here we read the Flow from the pickle file so that we have - # and up-to-date version and we set the flow in visitor_mode - from .flows import Flow - flow_workdirs, new.flows = new.flows, [] - for flow in map(Flow.pickle_load, flow_workdirs): - new.add_flow(flow) + for row in rows: + d[row["status"]].append(row) - return new + return d - def pickle_dump(self): - """Save the status of the object in pickle format.""" - with open(os.path.join(self.workdir, self.PICKLE_FNAME), mode="wb") as fh: - pickle.dump(self, fh) + def remove_flows_with_status(self, status): + if status == "Running": + raise ValueError("You cannot remove a flow that is in `Running` mode!") + + count = 0 + with self._lock, self.sql_connect() as con: + cur = con.cursor() + cur.execute("DELETE FROM flows WHERE status = ?", [status]) + rows = cur.fetchall() + if rows is None: + con.close() + return 0 - def __getstate__(self): - """ - Return state is pickled as the contents for the instance. + for row in rows: + workdir = row["workdir"] + if not os.path.exists(workdir): continue + os.rmdir(workdir) + count += 1 - Here we replace the flow objects with their workdir because we are observing - the flows and we want to have the updated version when we reload the `BatchLauncher` from pickle. - """ - d = {k: v for k, v in self.__dict__.items() if k not in ["flows"]} - d["flows"] = [flow.workdir for flow in self.flows] - return d + con.close() + return count - def __init__(self, workdir, name=None, flows=None, manager=None, timelimit=None): - """ - Args: - workdir: Working directory - name: Name assigned to the `BatchLauncher`. - flows: List of |Flow| objects. - manager: |TaskManager| object responsible for the submission of the jobs. - If manager is None, the object is initialized from the yaml file - located either in the working directory or in the user configuration dir. - timelimit: Time limit (int with seconds or string with time given with - the slurm convention: "days-hours:minutes:seconds". - If timelimit is None, the default value specified in the `batch_adapter` is taken. - """ - self.workdir = os.path.abspath(workdir) + def callback(self): + """The function that will be executed by the scheduler.""" + #locked = self._lock.acquire(blocking=False, timeout=-1) + #if not locked: return + #with self._lock: - if not os.path.exists(self.workdir): - os.makedirs(self.workdir) - else: - pass - #raise RuntimeError("Directory %s already exists. Use BatchLauncher.pickle_load()" % self.workdir) + new_flows = self.get_incoming_flows() + if new_flows: + self.flows.extend(new_flows) - self.name = os.path.basename(self.workdir) if name is None else name - self.script_file = File(os.path.join(self.workdir, "run.sh")) - self.qerr_file = File(os.path.join(self.workdir, "queue.qerr")) - self.qout_file = File(os.path.join(self.workdir, "queue.qout")) - self.log_file = File(os.path.join(self.workdir, "run.log")) - self.batch_pidfile = File(os.path.join(self.workdir, "batch.pid")) + if not self.flows: return + excs = [] - from .tasks import TaskManager - manager = TaskManager.as_manager(manager) + # check status. + for flow in self.flows: + flow.check_status(show=False) - # Extract the qadapater to be used for the batch script. - try: - self.qadapter = qad = manager.batch_adapter - except AttributeError: - raise RuntimeError("Your manager.yml file does not define an entry for the batch_adapter") + # Here we just count the number of tasks in the flow that are in RUNNING or SUBMITTED status. + # This logic clearly breaks down if there are multiple schedulers running on the same machine + # but it's easy to implement without having to contact the resource manager + # by calling `flow.get_njobs_in_queue()` that is quite expensive (and the sysadmin won't be happy!) + nqjobs = 0 + for flow in self.flows: + nqjobs += (len(list(flow.iflat_tasks(status=flow.S_RUN))) + + len(list(flow.iflat_tasks(status=flow.S_SUB)))) - if qad is None: - raise RuntimeError("Your manager.yml file does not define an entry for the batch_adapter") + if nqjobs >= self.max_njobs_inqueue: + print(f"Too many jobs in the queue: {nqjobs} >= {self.max_njobs_inqueue}.\n", + "No job will be submitted.") + for flow in self.flows: + flow.check_status(show=False) + return - # Set mpi_procs to 1 just to be on the safe side - # Then allow the user to change the timelimit via __init__ - qad.set_mpi_procs(1) - if timelimit is not None: - self.set_timelimit(timelimit) - # FIXME: Remove me! - self.set_timelimit(36000) + max_nlaunch = self.max_njobs_inqueue - nqjobs if self.max_nlaunches == -1 else \ + min(self.max_njobs_inqueue - nqjobs, self.max_nlaunches) - # Initialize list of flows. - if flows is None: flows = [] - if not isinstance(flows, (list, tuple)): flows = [flows] - self.flows = flows + # This check is not perfect, we should make a list of tasks to submit + # and then select a subset so that we don't exceeed max_ncores_used + # Many sections of this code should be rewritten though. + #if self.max_ncores_used is not None and flow.ncores_used > self.max_ncores_used: + ncores_allocated = sum(flow.ncores_allocated for flow in self.flows) + if self.max_ncores_used is not None and ncores_allocated > self.max_ncores_used: + print("Cannot exceed max_ncores_used %s" % self.max_ncores_used, + ", ncores_allocated:", ncores_allocated) + return - def set_timelimit(self, timelimit): - """ - Set the timelimit of the batch launcher. + # Try to restart unconverged tasks. + for flow in self.flows: + max_nlaunch = self.restart_unconverged(flow, max_nlaunch, excs) + if max_nlaunch <= 0: return - Args: - timelimit: Time limit (int with seconds or string with time given - with the slurm convention: "days-hours:minutes:seconds". - """ - self.qad.set_timelimit(qu.timelimit_parser(timelimit)) + for flow in self.flows: + self.try_to_fix_flow(flow) + # Update the pickle file. + flow.pickle_dump() - def to_string(self, **kwargs): - lines = [] - lines.extend(str(self.qadapter).splitlines()) + #with self.handle_flow_exceptions: for i, flow in enumerate(self.flows): - lines.append("Flow [%d] " % i + str(flow)) + # Submit the tasks that are ready. + try: + if max_nlaunch > 0: + nlaunch = PyLauncher(flow).rapidfire(max_nlaunch=max_nlaunch, sleep_time=10) + self.nlaunch += nlaunch + max_nlaunch -= nlaunch + if nlaunch: + cprint("[%s] Number of launches: %d" % (time.asctime(), nlaunch), "yellow") - return "\n".join(lines) + except Exception as exc: + self.register_flow_exception(i, exc) - def __str__(self): - return self.to_string() + self.handle_flow_exception() - def add_flow(self, flow): - """ - Add a flow. Accept filepath or |Flow| object. Return 1 if flow was added else 0. - """ - from .flows import Flow - flow = Flow.as_flow(flow) + for flow in self.flows: + flow.show_status() - if flow in self.flows: - raise self.Error("Cannot add same flow twice!") + #if max_nlaunch <= 0: return - if not flow.allocated: - # Set the workdir of the flow here. Create a dir in self.workdir with name flow.name - flow_workdir = os.path.join(self.workdir, os.path.basename(flow.name)) - if flow_workdir in (flow.workdir for flow in self.flows): - raise self.Error("Two flows have the same name and hence the same workdir!") - flow.allocate(workdir=flow_workdir) + self.update_flows_and_slqdb() - # Check if we are already using a scheduler to run this flow - flow.check_pid_file() - flow.set_spectator_mode(False) + def update_flows_and_slqdb(self): - flow.check_status(show=False) + done = [] + for i, flow in enumerate(self.flows): + if flow.all_ok: + flow.finalize() + done.append(i) - #if flow.all_ok: - # print("flow.all_ok: Ignoring %s" % flow) - # return 0 + if done: + for i in done: + flow = self.flows[i] + self.completed_flows.append(flow) + self.flows = [self.flows[i] for i in range(len(self.flows)) if i not in set(done)] - self.flows.append(flow) - #print("Flow %s added to the BatchLauncher" % flow) + locked = [] + for i, flow in enumerate(self.flows): + errs = self.check_deadlocks(flow) + if errs: + msg = "\n".join(errs) + locked.append(i) + flow.set_status(flow.S_ERROR, msg) - return 1 + if locked: + for i in locked: + flow = self.flows[i] + self.errored_flows.append(flow) - def submit(self, **kwargs): - """ - Submit a job script that will run the schedulers with `abirun.py`. + self.flows = [self.flows[i] for i in range(len(self.flows)) if i not in set(locked)] - Args: - verbose: Verbosity level - dry_run: Don't submit the script if dry_run. Default: False + with self._lock, self.sql_connect() as con: + now = datetime.datetime.now() + cur = con.cursor() + query = "UPDATE flows SET status = ?, end_date = ? WHERE flow_id = ?" - Returns: - namedtuple with attributes: - retcode: Return code as returned by the submission script. - qjob: :class:`QueueJob` object. - num_flows_inbatch: Number of flows executed by the batch script + values = [(str(flow.S_RUN), now, flow.node_id) for flow in self.flows] - Return code of the job script submission. - """ - verbose, dry_run = kwargs.pop("verbose", 0), kwargs.pop("dry_run", False) + if self.completed_flows: + values.extend([(str(flow.status), now, flow.node_id) for flow in self.completed_flows]) + self.completed_flows = [] - if not self.flows: - print("Cannot submit an empty list of flows!") - return 0 + if self.errored_flows: + values.extend([(str(flow.S_ERROR), now, flow.node_id) for flow in self.errored_flows]) + self.errored_flows = [] - if hasattr(self, "qjob"): - # This usually happens when we have loaded the object from pickle - # and we have already submitted to batch script to the queue. - # At this point we need to understand if the previous batch job - # is still running before trying to submit it again. There are three cases: - # - # 1) The batch script has completed withing timelimit and therefore - # the pid_file has been removed by the script. In this case, we - # should not try to submit it again. - - # 2) The batch script has been killed due to timelimit (other reasons are possible - # but we neglect them). In this case the pid_file exists but there's no job with - # this pid runnig and we can resubmit it again. - - # 3) The batch script is still running. - print("BatchLauncher has qjob %s" % self.qjob) - - if not self.batch_pid_file.exists: - print("It seems that the batch script reached the end. Wont' try to submit it again") - return 0 + cur.executemany(query, values) - msg = ("Here I have to understand if qjob is in the queue." - " but I need an abstract API that can retrieve info from the queue id") - raise RuntimeError(msg) + con.close() - # TODO: Temptative API - if self.qjob.in_status("Running|Queued"): - print("Job is still running. Cannot submit") - else: - del self.qjob - script, num_flows_inbatch = self._get_script_nflows() +def print_flowsdb_file(filepath: str) -> None: + """ + Print flows.db file to terminal. + """ + import sqlite3 + from abipy.tools.printing import print_dataframe + with sqlite3.connect(filepath) as con: + df = pd.read_sql_query("SELECT * FROM flows", con) + #print(type(df["upload_date"])) + print_dataframe(df, title=filepath) - if num_flows_inbatch == 0: - print("All flows have reached all_ok! Batch script won't be submitted") - return 0 - if verbose: - print("*** submission script ***") - print(script) +def sendmail(subject: str, text: str, mailto: str, + sender: Optional[str] = None) -> int: + """ + Sends an e-mail with unix sendmail. - # Write the script. - self.script_file.write(script) - self.script_file.chmod(0o740) + Args: + subject: String with the subject of the mail. + text: String with the body of the mail. + mailto: String or list of string with the recipients. + sender: string with the sender address. If sender is None, username@hostname is used. - # Builf the flow. - for flow in self.flows: - flow.build_and_pickle_dump() + Returns: Exit status + """ + def user_at_host(): + from socket import gethostname + return os.getlogin() + "@" + gethostname() + + # Body of the message. + try: + sender = user_at_host() if sender is None else sender + except OSError: + sender = 'abipyscheduler@youknowwhere' - # Submit the task and save the queue id. - if dry_run: return -1 + if is_string(mailto): mailto = [mailto] - print("Will submit %s flows in batch script" % len(self.flows)) - self.qjob, process = self.qadapter.submit_to_queue(self.script_file.path) + from email.mime.text import MIMEText + mail = MIMEText(text) + mail["Subject"] = subject + mail["From"] = sender + mail["To"] = ", ".join(mailto) - # Save the queue id in the pid file - # The file will be removed by the job script if execution is completed. - self.batch_pidfile.write(str(self.qjob.qid)) + msg = mail.as_string() - self.pickle_dump() - process.wait() + # sendmail works much better than the python interface. + # Note that sendmail is available only on Unix-like OS. + from subprocess import Popen, PIPE - return dict2namedtuple(retcode=process.returncode, qjob=self.qjob, - num_flows_inbatch=num_flows_inbatch) + _sendmail = which("sendmail") + if _sendmail is None: return -1 + # msg is string not bytes so must use universal_newlines + p = Popen([_sendmail, "-t"], stdin=PIPE, stderr=PIPE, universal_newlines=True) - def _get_script_nflows(self): - """ - Write the submission script. Return (script, num_flows_in_batch) - """ - flows_torun = [f for f in self.flows if not f.all_ok] - if not flows_torun: - return "", 0 - - executable = [ - 'export _LOG=%s' % self.log_file.path, - 'date1=$(date +"%s")', - 'echo Running abirun.py in batch mode > ${_LOG}', - " ", - ] - app = executable.append - - # Build list of abirun commands and save the name of the log files. - self.sched_logs, num_flows = [], len(flows_torun) - for i, flow in enumerate(flows_torun): - - logfile = os.path.join(self.workdir, "log_" + os.path.basename(flow.workdir)) - - app("echo Starting flow %d/%d on: `date` >> ${LOG}" % (i+1, num_flows)) - app("\nabirun.py %s scheduler > %s" % (flow.workdir, logfile)) - app("echo Returning from abirun on `date` with retcode $? >> ${_LOG}") - - assert logfile not in self.sched_logs - self.sched_logs.append(logfile) - - # Remove the batch pid_file and compute elapsed time. - executable.extend([ - " ", - "# Remove batch pid file", - 'rm %s' % self.batch_pidfile.path, - " ", - "# Compute elapsed time", - 'date2=$(date +"%s")', - 'diff=$(($date2-$date1))', - 'echo $(($diff / 60)) minutes and $(($diff % 60)) seconds elapsed. >> ${_LOG}' - ]) - - return self.qadapter.get_script_str( - job_name=self.name, - launch_dir=self.workdir, - executable=executable, - qout_path=self.qout_file.path, - qerr_path=self.qerr_file.path, - ), num_flows - - def show_summary(self, **kwargs): - """ - Show a summary with the status of the flows. - """ - for flow in self.flows: - flow.show_summary() + outdata, errdata = p.communicate(msg) + return len(errdata) - def show_status(self, **kwargs): - """ - Report the status of the flows. - Args: - stream: File-like object, Default: sys.stdout - verbose: Verbosity level (default 0). > 0 to show only the works that are not finalized. - """ - for flow in self.flows: - flow.show_status(**kwargs) +#def _test_sendmail(): +# retcode = sendmail("sendmail_test", text="hello\nworld", mailto="nobody@nowhere.com") +# print("Retcode", retcode) +# assert retcode == 0 diff --git a/abipy/flowtk/lumi_works.py b/abipy/flowtk/lumi_works.py new file mode 100644 index 000000000..ea4a08d66 --- /dev/null +++ b/abipy/flowtk/lumi_works.py @@ -0,0 +1,376 @@ +# coding: utf-8 +"""Work subclasses for the computation of luminiscent properties.""" +from __future__ import annotations + +from .works import Work +from abipy.abilab import abiopen +from abipy.lumi.deltaSCF import DeltaSCF + + +class LumiWork(Work): + """ + This Work implements Fig 1 of https://arxiv.org/abs/2010.00423. + + Client code is responsible for the preparation of the supercell and + of the GS SCF input files with the fixed electronic occupations associated to the two configurations. + By default, the work computes the two relaxed structures and the four total energies + corresponding to the Ag, Ag*, Ae*, Ae configurations. Optionally, one can activate the computation of + four electronic band structures. See docstring of from_scf_inputs for further info. + """ + + @classmethod + def from_scf_inputs(cls, gs_scf_inp, ex_scf_inp, relax_kwargs_gs, relax_kwargs_ex, ndivsm=0, nb_extra=10, + tolwfr=1e-12, four_points=True, meta=None, manager=None) -> LumiWork: + """ + Args: + gs_scf_inp: |AbinitInput| representing a GS SCF run for the ground-state. + ex_scf_inp: |AbinitInput| representing a GS SCF run for the excited-state. + relax_kwargs_gs: Dictonary with input variables to be added to gs_scf_inp + when generating input files for ground state structural relaxations. + relax_kwargs_ex: Dictonary with input variables to be added to ex_scf_inp + when generating input files for excited state structural relaxations. + ndivsm: Activates the computation of band structure if different from zero. + if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. + This option is the recommended one if the k-path contains two high symmetry k-points that are very close + as ndivsm > 0 may produce a very large number of wavevectors. + nb_extra: Number of extra bands added to the input nband when computing band structures (ndivsm != 0). + tolwfr: Tolerance of the residuals used for the NSCF band structure calculations. + four_points : if True, compute the two relaxations and the four points energies. + If false, only the two relaxations. + meta : dict corresponding to the metadata of a lumiwork (supercell size, dopant type,...) + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + new = cls(manager=manager) + + # Templates for GS SCF calculations. + new.gs_scf_inp = gs_scf_inp + new.ex_scf_inp = ex_scf_inp + + # Save paramenters for the generation of input files at runtime. + new.relax_kwargs_gs = relax_kwargs_gs + new.relax_kwargs_ex = relax_kwargs_ex + + new.four_points = four_points + new.ndivsm = int(ndivsm) + new.tolwfr = tolwfr + new.nb_extra = int(nb_extra) + new.meta=meta + + # Relaxation for the Ag configuration.` + new.gs_relax_task = new.register_relax_task(gs_scf_inp.new_with_vars(relax_kwargs_gs)) + + # Internal counter used in on_all_ok to drive the differ steps of the calculations. + new.iteration_step = 0 + + # JSON-compatible dictionary storing the most important results of the Work. (relaxations and 4 pts results + # are separated) + # Results will be stored in the `lumi_4pts.json` file in the outdata directory of the Work + # so that one can easily implement additional post-processing tools. + new.json_data = {} + + return new + + def on_all_ok(self): + """ + This method is called when all the works in the flow have reached S_OK. + + This is the section in which we implement most of the workflow logic at runtime. + since we need to generate input files with relaxed structures. + """ + # Get Ag relaxed structure + #with self.gs_relax_task.open_gsr() as gsr: + # ag_relaxed_structure = gsr.structure + with abiopen(self.gs_relax_task.output_file.path) as relax_gs_abo: + ag_relaxed_structure = relax_gs_abo.final_structure + + if self.iteration_step == 0: + print("in iteration step 0") + self.iteration_step += 1 + + # Relax geometry with excited configuration starting from Ag*. + relax_ex_inp=self.ex_scf_inp.new_with_vars(self.relax_kwargs_ex) + relax_ex_inp_2 = relax_ex_inp.new_with_structure(ag_relaxed_structure) + self.ex_relax_task = self.register_relax_task(relax_ex_inp_2)#,deps={self.gs_relax_task: "DEN"}) + + # if only the two relaxation, go to results writing step directly + if self.four_points==False: + self.iteration_step = 2 + + return self.postpone_on_all_ok() + + elif self.iteration_step == 1: + print("in iteration step 1") + self.iteration_step += 1 + + ##### SCF task for each configuration and optionnaly their electronic band structures #### + + # Build GS SCF input for the Ag configuration: + # use same structure as Ag with ground occupation factors. + ag_scf_inp = self.gs_scf_inp.new_with_structure(ag_relaxed_structure) + self.ag_scf_task = self.register_scf_task((ag_scf_inp),deps={self.gs_relax_task: "DEN"}) + + # Build GS SCF input for the Ag* configuration: + # use same structure as Ag but with excited occupation factors. + agstar_scf_inp = self.ex_scf_inp.new_with_structure(ag_relaxed_structure) + self.agstar_scf_task = self.register_scf_task((agstar_scf_inp),deps={self.gs_relax_task: "DEN"}) + + # Get Aestar relaxed structure. + #with self.ex_relax_task.open_gsr() as gsr: + # aestar_relaxed_structure = gsr.structure + with abiopen(self.ex_relax_task.output_file.path) as relax_ex_abo: + aestar_relaxed_structure = relax_ex_abo.final_structure + + # Build ex SCF input for the Aestar configuration: + # use same structure as Aestar with excited occupation factors. + aestar_scf_inp = self.ex_scf_inp.new_with_structure(aestar_relaxed_structure) + self.aestar_scf_task = self.register_scf_task((aestar_scf_inp),deps={self.ex_relax_task: "DEN"}) + + # Build GS SCF task for the Ae configuration: + # use same structure as Aestar but with ground occupation factors. + ae_scf_inp = self.gs_scf_inp.new_with_structure(aestar_relaxed_structure) + self.ae_scf_task = self.register_scf_task((ae_scf_inp),deps={self.ex_relax_task: "DEN"}) + + if self.ndivsm != 0: + # Compute band structure for Ag configuration. + self.ag_scf_task.add_ebands_task_to_work(self, ndivsm=self.ndivsm, + tolwfr=self.tolwfr, nb_extra=self.nb_extra) + + # Compute band structure for Agstar configuration. + self.agstar_scf_task.add_ebands_task_to_work(self, ndivsm=self.ndivsm, + tolwfr=self.tolwfr, nb_extra=self.nb_extra) + + # Compute band structure for aestar configuration. + self.aestar_scf_task.add_ebands_task_to_work(self, ndivsm=self.ndivsm, + tolwfr=self.tolwfr, nb_extra=self.nb_extra) + + # Compute band structure for Ae configuration. + self.ae_scf_task.add_ebands_task_to_work(self, ndivsm=self.ndivsm, + tolwfr=self.tolwfr, nb_extra=self.nb_extra) + + return self.postpone_on_all_ok() + + elif self.iteration_step == 2: + + print("in iteration step 2") + self.iteration_step += 1 + ##### Writing the results in json files ##### + + self.json_data["meta"] = self.meta + + #with self.gs_relax_task.open_gsr() as gsr: + self.json_data["gs_relax_filepath"]=self.gs_relax_task.gsr_path + + #with self.ex_relax_task.open_gsr() as gsr: + self.json_data["ex_relax_filepath"]=self.ex_relax_task.gsr_path + + if self.four_points == True: + # Get Ag total energy. + #with self.ag_scf_task.open_gsr() as gsr: + self.json_data["Ag_gsr_filepath"] = self.ag_scf_task.gsr_path + + # Get Agstar total energy. + #with self.ex_relax_task.open_gsr() as gsr: + self.json_data["Agstar_gsr_filepath"] = self.agstar_scf_task.gsr_path + + # Get Aestar total energy. + #with self.aestar_scf_task.open_gsr() as gsr: + self.json_data["Aestar_gsr_filepath"] = self.aestar_scf_task.gsr_path + + # Get Aestar total energy. + #with self.ae_scf_task.open_gsr() as gsr: + self.json_data["Ae_gsr_filepath"] = self.ae_scf_task.gsr_path + + # Write json file in the outdir of the work + self.write_json_in_outdir("lumi.json", self.json_data) + + # Build deltascf results + delta_scf = DeltaSCF.from_four_points_file([self.ag_scf_task.gsr_path, + self.agstar_scf_task.gsr_path, + self.aestar_scf_task.gsr_path, + self.ae_scf_task.gsr_path]) + + # Create dict with all post-processed results + d = delta_scf.get_dict_results() + + # save d in json format. + self.write_json_in_outdir("Delta_SCF.json", d) + + return super().on_all_ok() + + +class LumiWork_relaxations(Work): + """ + This Work implements the ground and excited state relaxations only. + + The relaxations run simultaneously. No task creation at run-time. + """ + + @classmethod + def from_scf_inputs(cls, gs_scf_inp, ex_scf_inp, relax_kwargs_gs, relax_kwargs_ex, meta=None, manager=None): + """ + Args: + gs_scf_inp: |AbinitInput| representing a GS SCF run for the ground-state. + ex_scf_inp: |AbinitInput| representing a GS SCF run for the excited-state. + relax_kwargs_gs: Dictonary with input variables to be added to gs_scf_inp + when generating input files for ground state structural relaxations. + relax_kwargs_ex: Dictonary with input variables to be added to ex_scf_inp + when generating input files for excited state structural relaxations. + meta : dict corresponding to the metadata of a lumiwork (supercell size, dopant type,...) + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + new = cls(manager=manager) + + # Templates for GS SCF calculations. + new.gs_scf_inp = gs_scf_inp + new.ex_scf_inp = ex_scf_inp + + # Save paramenters for the generation of input files at runtime. + new.relax_kwargs_gs = relax_kwargs_gs + new.relax_kwargs_ex = relax_kwargs_ex + + new.meta=meta + + # Relaxation for the Ag configuration. + new.gs_relax_task = new.register_relax_task(gs_scf_inp.new_with_vars(relax_kwargs_gs)) + new.ex_relax_task = new.register_relax_task(ex_scf_inp.new_with_vars(relax_kwargs_ex)) + + new.json_data = {} + + return new + + def on_all_ok(self): + """ + This method is called when all the works in the flow have reached S_OK. + + """ + self.json_data["meta"] = self.meta + + # with self.gs_relax_task.open_gsr() as gsr: + self.json_data["gs_relax_filepath"] = self.gs_relax_task.gsr_path + + # with self.ex_relax_task.open_gsr() as gsr: + self.json_data["ex_relax_filepath"] = self.ex_relax_task.gsr_path + + # Write json file in the outdir of the work + self.write_json_in_outdir("lumi_relaxations.json", self.json_data) + + return super().on_all_ok() + + +class LumiWorkFromRelax(Work): + """ + Same as LumiWork, without the relaxations. Typically used after a LumiWork_relaxations work. + The two relaxed structures (in ground and excited state) are given as input. No creation at run-time + + """ + @classmethod + def from_scf_inputs(cls, gs_scf_inp, ex_scf_inp, gs_structure, ex_structure, ndivsm=0, nb_extra=10, + tolwfr=1e-12, meta=None ,manager=None): + """ + Args: + gs_scf_inp: |AbinitInput| representing a GS SCF run for the ground-state. + exc_scf_inp: |AbinitInput| representing a GS SCF run for the excited-state. + gs_structure: object representing the relaxed ground state structure + ex_structure: object representing the excited ground state structure + ndivsm: Activates the computation of band structure if different from zero. + if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. + This option is the recommended one if the k-path contains two high symmetry k-points that are very close + as ndivsm > 0 may produce a very large number of wavevectors. + nb_extra: Number of extra bands added to the input nband when computing band structures (ndivsm != 0). + tolwfr: Tolerance of the residuals used for the NSCF band structure calculations. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + new = cls(manager=manager) + + new.meta=meta + new.gs_structure=gs_structure + new.ex_structure=ex_structure + + # Templates for GS SCF calculations. + new.gs_scf_inp = gs_scf_inp + new.ex_scf_inp = ex_scf_inp + + new.ndivsm = int(ndivsm) + new.tolwfr = tolwfr + new.nb_extra = int(nb_extra) + + # JSON-compatible dictionary storing the most important results of the Work. (relaxations and 4 pts results + # are separated) + # Results will be stored in the `lumi_4pts.json` or 'lumi_relax.json file in the outdata directory of the Work + # so that one can easily implement additional post-processing tools. + new.json_data = {} + + # Build GS SCF input for the Ag configuration: + # use same structure as Ag but with ground occupation factors + ag_scf_inp = new.gs_scf_inp.new_with_structure(gs_structure) + new.ag_scf_task = new.register_scf_task(ag_scf_inp) + + # Build GS SCF input for the Ag* configuration: + # use same structure as Ag but with excited occupation factors. + agstar_scf_inp = new.ex_scf_inp.new_with_structure(gs_structure) + new.agstar_scf_task = new.register_scf_task(agstar_scf_inp) + + # Build ex SCF input for the Aestar configuration: + aestar_scf_inp = new.ex_scf_inp.new_with_structure(ex_structure) + new.aestar_scf_task = new.register_scf_task(aestar_scf_inp) + + # Build GS SCF input for the Ag* configuration: + # use same structure as Ag but with excited occupation factors. + ae_scf_inp = new.gs_scf_inp.new_with_structure(ex_structure) + new.ae_scf_task = new.register_scf_task(ae_scf_inp) + + if new.ndivsm != 0: + # Compute band structure for Ag configuration. + new.ag_scf_task.add_ebands_task_to_work(new, ndivsm=new.ndivsm, + tolwfr=new.tolwfr, nb_extra=new.nb_extra) + # Compute band structure for Ag* configuration. + new.agstar_scf_task.add_ebands_task_to_work(new, ndivsm=new.ndivsm, + tolwfr=new.tolwfr, nb_extra=new.nb_extra) + # Compute band structure for aestar configuration. + new.aestar_scf_task.add_ebands_task_to_work(new, ndivsm=new.ndivsm, + tolwfr=new.tolwfr, nb_extra=new.nb_extra) + # Compute band structure for Ae configuration. + new.ae_scf_task.add_ebands_task_to_work(new, ndivsm=new.ndivsm, + tolwfr=new.tolwfr, nb_extra=new.nb_extra) + + return new + + def on_all_ok(self): + + self.json_data["meta"] = self.meta + + # Get Ag total energy. + # with self.ag_scf_task.open_gsr() as gsr: + self.json_data["Ag_gsr_filepath"] = self.ag_scf_task.gsr_path + + # Get Agstar total energy. + # with self.ex_relax_task.open_gsr() as gsr: + self.json_data["Agstar_gsr_filepath"] = self.agstar_scf_task.gsr_path + + # Get Aestar total energy. + # with self.aestar_scf_task.open_gsr() as gsr: + self.json_data["Aestar_gsr_filepath"] = self.aestar_scf_task.gsr_path + + # Get Aestar total energy. + # with self.ae_scf_task.open_gsr() as gsr: + self.json_data["Ae_gsr_filepath"] = self.ae_scf_task.gsr_path + + # Write json file in the outdir of the work + self.write_json_in_outdir("lumi.json", self.json_data) + + # Build deltascf results + delta_scf = DeltaSCF.from_four_points_file([self.ag_scf_task.gsr_path, + self.agstar_scf_task.gsr_path, + self.aestar_scf_task.gsr_path, + self.ae_scf_task.gsr_path]) + + # Create dict with all post-processed results + d = delta_scf.get_dict_results() + # save d in json format. + self.write_json_in_outdir("Delta_SCF.json", d) + + return super().on_all_ok() \ No newline at end of file diff --git a/abipy/flowtk/mocks.py b/abipy/flowtk/mocks.py index 0431c2da8..3ab50d0ea 100644 --- a/abipy/flowtk/mocks.py +++ b/abipy/flowtk/mocks.py @@ -1,12 +1,13 @@ # coding: utf-8 """Mock objects for unit tests.""" +from __future__ import annotations from .nodes import Status -from .tasks import AbinitTask +from .tasks import Task, AbinitTask from .flows import Flow -def change_task_start(task, mocked_status="Error"): +def change_task_start(task: Task, mocked_status="Error"): """Return a AbinitTaskMockedStart object.""" task.__class__ = AbinitTaskMockedStart task.mocked_status = Status.as_status(mocked_status) @@ -20,7 +21,7 @@ def start(self, **kwargs): return 1 -def infinite_flow(flow): +def infinite_flow(flow: Flow): """Return an InfiniteFlow.""" flow.__class__ = InfiniteFlow return flow diff --git a/abipy/flowtk/nodes.py b/abipy/flowtk/nodes.py index 42f47f4ad..119233bb4 100644 --- a/abipy/flowtk/nodes.py +++ b/abipy/flowtk/nodes.py @@ -1,7 +1,8 @@ # coding: utf-8 """ -This module defines the Node class that is inherited by Task, Work and Flow objects. +This module defines the Node base class inherited by Task, Work and Flow objects. """ +from __future__ import annotations import sys import os @@ -9,10 +10,13 @@ import collections import abc import numpy as np +import pandas as pd from collections import OrderedDict from pprint import pprint -from pymatgen.util.io_utils import AtomicFile +from typing import Any, Union +from monty.json import jsanitize + from pydispatch import dispatcher from monty.termcolor import colored from monty.serialization import loadfn @@ -21,13 +25,19 @@ from monty.collections import AttrDict, Namespace from monty.functools import lazy_property from monty.json import MSONable -from pymatgen.util.serialization import json_pretty_dump, pmg_serialize +from abipy.tools.serialization import json_pretty_dump, pmg_serialize +from abipy.tools.iotools import AtomicFile +#from abipy.tools.typing import TYPE_CHECKING from .utils import File, Directory, Dirviz, irdvars_for_ext, abi_extensions import logging logger = logging.getLogger(__name__) +#if TYPE_CHECKING: # needed to avoid circular imports +# from .tasks import Task +# from .works import Work +# from .flows import Flow def _2attrs(item): return item if item is None or isinstance(list, tuple) else (item,) @@ -62,6 +72,7 @@ class Status(int): # Execution completed successfully. (11, "Completed", "green", None, None), ] + _STATUS2STR = OrderedDict([(t[0], t[1]) for t in _STATUS_INFO]) _STATUS2COLOR_OPTS = OrderedDict([(t[0], {"color": t[2], "on_color": t[3], "attrs": _2attrs(t[4])}) for t in _STATUS_INFO]) @@ -73,13 +84,13 @@ def __str__(self): return self._STATUS2STR[self] @classmethod - def as_status(cls, obj): + def as_status(cls, obj: Any) -> Status: """Convert obj into Status.""" if obj is None: return None return obj if isinstance(obj, cls) else cls.from_string(obj) @classmethod - def from_string(cls, s): + def from_string(cls, s: str) -> str: """Return a `Status` instance from its string representation.""" for num, text in cls._STATUS2STR.items(): if text == s: @@ -88,26 +99,26 @@ def from_string(cls, s): raise ValueError("Wrong string %s" % s) @classmethod - def all_status_strings(cls): + def all_status_strings(cls) -> list[str]: """List of strings with all possible values status.""" return [info[1] for info in cls._STATUS_INFO] @property - def is_critical(self): + def is_critical(self) -> bool: """True if status is critical.""" return str(self) in ("AbiCritical", "QCritical", "Unconverged", "Error") @property - def color_opts(self): + def color_opts(self) -> dict: return self._STATUS2COLOR_OPTS[self] @property - def colored(self): + def colored(self) -> str: """Return colorized text used to print the status if the stream supports it.""" return colored(str(self), **self.color_opts) -class Dependency(object): +class Dependency: """ This object describes the dependencies among the nodes of a calculation. @@ -150,21 +161,21 @@ def __str__(self): return "node %s will produce: %s " % (str(self.node), str(self.exts)) @property - def info(self): + def info(self) -> str: return str(self.node) @property - def node(self): + def node(self) -> Node: """The |Node| associated to the dependency.""" return self._node @property - def status(self): + def status(self) -> Status: """The status of the dependency, i.e. the status of the |Node|.""" return self.node.status @lazy_property - def products(self): + def products(self) -> list[Product]: """List of output files produces by self.""" _products = [] for ext in self.exts: @@ -195,18 +206,18 @@ def apply_getters(self, task): else: raise ValueError("Wrong getter %s" % getter) - def connecting_vars(self): + def connecting_vars(self) -> dict: """ Returns a dictionary with the variables that must be added to the input file in order to connect this |Node| to its dependencies. """ - vars = {} + dvars = {} for prod in self.products: - vars.update(prod.connecting_vars()) + dvars.update(prod.connecting_vars()) - return vars + return dvars - def get_filepaths_and_exts(self): + def get_filepaths_and_exts(self) -> tuple[list, list]: """Returns the paths of the output files produced by self and its extensions""" filepaths = [prod.filepath for prod in self.products] exts = [prod.ext for prod in self.products] @@ -214,12 +225,12 @@ def get_filepaths_and_exts(self): return filepaths, exts -class Product(object): +class Product: """ A product represents an output file produced by ABINIT instance. This file is needed to start another `Task` or another `Work`. """ - def __init__(self, ext, path): + def __init__(self, ext: str, path: str): """ Args: ext: ABINIT file extension @@ -232,7 +243,7 @@ def __init__(self, ext, path): self.file = File(path) @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> Product: """Build a :class:`Product` instance from a filepath.""" # Find the abinit extension. for i in range(len(filepath)): @@ -248,11 +259,11 @@ def __str__(self): return "File=%s, Extension=%s, " % (self.file.path, self.ext) @property - def filepath(self): + def filepath(self) -> str: """Absolute path of the file.""" return self.file.path - def connecting_vars(self): + def connecting_vars(self) -> dict: """ Returns a dictionary with the ABINIT variables that must be used to make the code use this file. @@ -262,12 +273,14 @@ def connecting_vars(self): class GridFsFile(AttrDict): """Information on a file that will stored in the MongoDb gridfs collection.""" + def __init__(self, path, fs_id=None, mode="b"): super().__init__(path=path, fs_id=fs_id, mode=mode) class NodeResults(dict, MSONable): """Dictionary used to store the most important results produced by a |Node|.""" + JSON_SCHEMA = { "type": "object", "properties": { @@ -359,16 +372,16 @@ def json_dump(self, filename): def json_load(cls, filename): return cls.from_dict(loadfn(filename)) - def validate_json_schema(self): - import validictory - d = self.as_dict() - try: - validictory.validate(d, self.JSON_SCHEMA) - return True - except ValueError as exc: - pprint(d) - print(exc) - return False + #def validate_json_schema(self): + # import validictory + # d = self.as_dict() + # try: + # validictory.validate(d, self.JSON_SCHEMA) + # return True + # except ValueError as exc: + # pprint(d) + # print(exc) + # return False def update_collection(self, collection): """ @@ -419,6 +432,7 @@ def check_spectator(node_method): Decorator for |Node| methods. Raise `SpectatorNodeError`. """ from functools import wraps + @wraps(node_method) def wrapper(*args, **kwargs): node = args[0] @@ -489,6 +503,7 @@ class Node(metaclass=abc.ABCMeta): def __init__(self): self._in_spectator_mode = False + # Node identifier. self._node_id = get_newnode_id() @@ -504,6 +519,19 @@ def __init__(self): # Actions performed to fix abicritical events. self._corrections = NodeCorrections() + # String in markdown syntax that may be used to add extra info in human-readable format. + # If set, a README.md file will be produced in the working directory of the node. + self.readme_md = None + + # A string with a message that may be set by the user + # Mainly used for building a columns in the SQLite Table when using AbiPy workers. + # Use set_user_message to set this variable. + self._user_message = "" + + # This object can be used to store metadata about the node + # The content will be saved in json format in the working directory of the node. + self.abipy_meta_json = None + # Set to true if the node has been finalized. self._finalized = False self._status = self.S_INIT @@ -532,7 +560,7 @@ def __repr__(self): # return super().__setattr__(name,value) @lazy_property - def color_hex(self): + def color_hex(self) -> str: """Node color as Hex Triplet https://en.wikipedia.org/wiki/Web_colors#Hex_triplet""" def clamp(x): return max(0, min(int(x), 255)) @@ -555,7 +583,7 @@ def isinstance(self, class_or_string): return self.__class__.__name__.lower() == class_or_string.lower() @classmethod - def as_node(cls, obj): + def as_node(cls, obj: Any) -> Union[Node, None]: """ Convert obj into a Node instance. @@ -575,7 +603,7 @@ def as_node(cls, obj): raise TypeError("Don't know how to convert %s to Node instance." % obj) @property - def name(self): + def name(self) -> str: """ The name of the node (only used for facilitating its identification in the user interface). @@ -592,7 +620,7 @@ def name(self): return os.path.basename(self.workdir) @property - def relworkdir(self): + def relworkdir(self) -> str: """Return a relative version of the workdir""" if getattr(self, "workdir", None) is None: return None @@ -602,41 +630,67 @@ def relworkdir(self): # current working directory may not be defined! return self.workdir - def set_name(self, name): + def set_name(self, name: str) -> None: """Set the name of the Node.""" self._name = name @property - def node_id(self): + def node_id(self) -> int: """Node identifier.""" return self._node_id + def set_readme(self, md_string: str) -> None: + """ + Set the value of readme_md. + """ + self.readme_md = str(md_string) + + def set_abipy_meta_json(self, data: dict) -> None: + """ + Set the value of abipy_meta_json + """ + self.abipy_meta_json = jsanitize(data, strict=False) + if not isinstance(self.abipy_meta_json, dict): + raise TypeError(f"abipy_meta_json should be a dict but got {type(self.abipy_meta_json)}") + + def set_user_message(self, user_message: str) -> None: + """ + Set the value of user_message + """ + self._user_message = str(user_message) + + @property + def user_message(self) -> str: + return self._user_message + @check_spectator - def set_node_id(self, node_id): + def set_node_id(self, node_id: int) -> None: """Set the node identifier. Use it carefully!""" self._node_id = node_id @property - def finalized(self): + def finalized(self) -> bool: """True if the `Node` has been finalized.""" return self._finalized @finalized.setter - def finalized(self, boolean): + def finalized(self, boolean: bool) -> None: self._finalized = boolean self.history.info("Finalized set to %s" % self._finalized) @property - def in_spectator_mode(self): + def in_spectator_mode(self) -> bool: + """True if we are in spectator mode.""" return self._in_spectator_mode @in_spectator_mode.setter - def in_spectator_mode(self, mode): + def in_spectator_mode(self, mode: bool) -> None: + """Set the value of in_spectator_mode""" self._in_spectator_mode = bool(mode) #self.history.info("in_spectator_mode set to %s" % mode) @property - def corrections(self): + def corrections(self) -> list[dict]: """ List of dictionaries with infornation on the actions performed to solve `AbiCritical` Events. Each dictionary contains the `AbinitEvent` who triggered the correction and @@ -645,10 +699,11 @@ def corrections(self): return self._corrections @property - def num_corrections(self): + def num_corrections(self) -> int: + """Number of corrections performed.""" return len(self.corrections) - def log_correction(self, event, action): + def log_correction(self, event, action: str) -> None: """ This method should be called once we have fixed the problem associated to this event. It adds a new entry in the correction history of the node. @@ -667,30 +722,30 @@ def log_correction(self, event, action): )) @property - def is_file(self): + def is_file(self) -> bool: """True if this node is a file""" return isinstance(self, FileNode) @property - def is_task(self): + def is_task(self) -> bool: """True if this node is a Task""" from .tasks import Task return isinstance(self, Task) @property - def is_work(self): + def is_work(self) -> bool: """True if this node is a Work""" from .works import Work return isinstance(self, Work) @property - def is_flow(self): + def is_flow(self) -> bool: """True if this node is a Flow""" from .flows import Flow return isinstance(self, Flow) @property - def deps(self): + def deps(self) -> list[Dependency]: """ List of :class:`Dependency` objects defining the dependencies of this `Node`. Empty list if this |Node| does not have dependencies. @@ -698,7 +753,7 @@ def deps(self): return self._deps @check_spectator - def add_deps(self, deps): + def add_deps(self, deps) -> None: """ Add a list of dependencies to the |Node|. @@ -731,7 +786,7 @@ def add_deps(self, deps): for dep in (d for d in deps if d.node.is_file): dep.node.add_filechild(self) - def merge_deps(self): + def merge_deps(self) -> None: """ Group all extensions associated to the same node in a single list. Useful for cases in which we may end up with the same node appearing more than once @@ -744,7 +799,7 @@ def merge_deps(self): self._deps = [Dependency(node, exts) for node, exts in node2exts.items()] @check_spectator - def remove_deps(self, deps): + def remove_deps(self, deps) -> None: """ Remove a list of dependencies from the |Node|. @@ -764,18 +819,18 @@ def remove_deps(self, deps): task.remove_deps(deps) @property - def deps_status(self): + def deps_status(self) -> list: """Returns a list with the status of the dependencies.""" if not self.deps: return [self.S_OK] return [d.status for d in self.deps] - def depends_on(self, other): + def depends_on(self, other: Node) -> bool: """True if this node depends on the other node.""" return other in [d.node for d in self.deps] - def find_parent_with_ext(self, ext): + def find_parent_with_ext(self, ext: str) -> Node: """ Return the parent (usually a |Task|) that produces the file with extension `ext`. Raises ValueError if multiple parents are found. @@ -792,11 +847,11 @@ def find_parent_with_ext(self, ext): return parent - def get_parents(self): + def get_parents(self) -> list[Node]: """Return the list of nodes in the |Flow| required by this |Node|""" return [d.node for d in self.deps] - def get_children(self): + def get_children(self) -> list[Node]: """ Return the list of nodes in the |Flow| that depends on this |Node| @@ -816,7 +871,7 @@ def get_children(self): if task.depends_on(self): children.append(task) return children - def str_deps(self): + def str_deps(self) -> str: """Return the string representation of the dependencies of the node.""" lines = [] app = lines.append @@ -827,7 +882,7 @@ def str_deps(self): return "\n".join(lines) - def get_vars_dataframe(self, *varnames): + def get_vars_dataframe(self, *varnames) -> pd.DataFrame: """ Return pandas DataFrame with the value of the variables specified in `varnames`. Can be used for task/works/flow. It's recursive! @@ -837,7 +892,6 @@ def get_vars_dataframe(self, *varnames): flow.get_vars_dataframe("ecut", "ngkpt") work.get_vars_dataframe("acell", "usepawu") """ - import pandas as pd if self.is_task: df = pd.DataFrame([{v: self.input.get(v, None) for v in varnames}], index=[self.name], columns=varnames) df["class"] = self.__class__.__name__ @@ -887,7 +941,7 @@ def gc(self): return None @property - def event_handlers(self): + def event_handlers(self) -> list: """ The list of handlers registered for this node. If the node is not a `Flow` and does not have its own list of @@ -907,7 +961,7 @@ def event_handlers(self): return self.flow._event_handlers @check_spectator - def install_event_handlers(self, categories=None, handlers=None): + def install_event_handlers(self, categories=None, handlers=None) -> None: """ Install the `EventHandlers for this `Node`. If no argument is provided the default list of handlers is installed. @@ -933,7 +987,7 @@ def install_event_handlers(self, categories=None, handlers=None): self._event_handlers = handlers - def show_event_handlers(self, stream=sys.stdout, verbose=0): + def show_event_handlers(self, stream=sys.stdout, verbose=0) -> None: """Print to `stream` the event handlers installed for this flow.""" lines = ["List of event handlers installed:"] for handler in self.event_handlers: @@ -945,7 +999,7 @@ def show_event_handlers(self, stream=sys.stdout, verbose=0): stream.write("\n".join(lines)) stream.write("\n") - def send_signal(self, signal): + def send_signal(self, signal) -> None: """ Send signal from this node to all connected receivers unless the node is in spectator mode. @@ -962,6 +1016,28 @@ def send_signal(self, signal): self.history.debug("Node %s broadcasts signal %s" % (self, signal)) dispatcher.send(signal=signal, sender=self) + def write_json_in_outdir(self, filename: str, data: dict) -> str: + """ + Write data to json file of basename filename inside the outdir directory of the node. + Support MSONable objects. Return path of json file. + """ + data = jsanitize(data, strict=False) + path = self.outdir.path_in(filename) + json_pretty_dump(data, path) + + return path + + def write_json_in_workdir(self, filename: str, data: dict) -> str: + """ + Write data to json file of basename filename inside the outdir directory of the node. + Support MSONable objects. Return path of json file. + """ + data = jsanitize(data, strict=False) + path = os.path.join(self.workdir, filename) + json_pretty_dump(data, path) + + return path + ########################## ### Abstract protocol #### ########################## @@ -984,7 +1060,7 @@ class FileNode(Node): """ color_rgb = np.array((102, 51, 255)) / 255 - def __init__(self, filename): + def __init__(self, filename: str): super().__init__() self.filepath = os.path.abspath(filename) @@ -997,7 +1073,7 @@ def __init__(self, filename): self._filechildren = [] - def __repr__(self): + def __repr__(self) -> str: try: return "<%s, node_id=%s, rpath=%s>" % ( self.__class__.__name__, self.node_id, os.path.relpath(self.filepath)) @@ -1006,35 +1082,34 @@ def __repr__(self): return "<%s, node_id=%s, path=%s>" % (self.__class__.__name__, self.node_id, self.filepath) @lazy_property - def basename(self): + def basename(self) -> str: """Basename of the file.""" return os.path.basename(self.filepath) @property - def products(self): + def products(self) -> list[Product]: return [Product.from_file(self.filepath)] - def opath_from_ext(self, ext): + def opath_from_ext(self, ext: str) -> str: return self.filepath @property - def status(self): + def status(self) -> Status: return self.S_OK if os.path.exists(self.filepath) else self.S_ERROR - def check_status(self): + def check_status(self) -> Status: return self.status def get_results(self, **kwargs): results = super().get_results(**kwargs) - #results.register_gridfs_files(filepath=self.filepath) return results - def add_filechild(self, node): + def add_filechild(self, node: Node) -> None: """Add a node (usually Task) to the children of this FileNode.""" self._filechildren.append(node) @property - def filechildren(self): + def filechildren(self) -> list: """List with the children (nodes) of this FileNode.""" return self._filechildren @@ -1067,7 +1142,7 @@ def _abiopen_abiext(self, abiext): return self.abiopen() -class HistoryRecord(object): +class HistoryRecord: """ A `HistoryRecord` instance represents an entry in the :class:`NodeHistory`. @@ -1159,13 +1234,13 @@ def __init__(self, level, pathname, lineno, msg, args, exc_info, func=None): i = self.asctime.find(".") if i != -1: self.asctime = self.asctime[:i] - def __repr__(self): + def __repr__(self) -> str: return '<%s, %s, %s, %s,\n"%s">' % (self.__class__.__name__, self.levelno, self.pathname, self.lineno, self.msg) - def __str__(self): + def __str__(self) -> str: return self.get_message(metadata=False) - def get_message(self, metadata=False, asctime=True): + def get_message(self, metadata=False, asctime=True) -> str: """ Return the message after merging any user-supplied arguments with the message. @@ -1189,12 +1264,12 @@ def get_message(self, metadata=False, asctime=True): return msg @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return {'level': self.levelno, 'pathname': self.pathname, 'lineno': self.lineno, 'msg': self.msg, 'args': self.args, 'exc_info': self.exc_info, 'func': self.func_name} @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> HistoryRecord: return cls(level=d['level'], pathname=d['pathname'], lineno=int(d['lineno']), msg=d['msg'], args=d['args'], exc_info=d['exc_info'], func=d['func']) @@ -1202,30 +1277,30 @@ def from_dict(cls, d): class NodeHistory(collections.deque): """Logger-like object""" - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, metadata=False): + def to_string(self, metadata=False) -> str: """Returns a string with the history. Set metadata to True to have info on function and module.""" return "\n".join(rec.get_message(metadata=metadata) for rec in self) - def info(self, msg, *args, **kwargs): + def info(self, msg: str, *args, **kwargs) -> None: """Log 'msg % args' with the info severity level""" self._log("INFO", msg, args, kwargs) - def warning(self, msg, *args, **kwargs): + def warning(self, msg: str, *args, **kwargs) -> None: """Log 'msg % args' with the warning severity level""" self._log("WARNING", msg, args, kwargs) - def critical(self, msg, *args, **kwargs): + def critical(self, msg: str, *args, **kwargs) -> None: """Log 'msg % args' with the critical severity level""" self._log("CRITICAL", msg, args, kwargs) - def debug(self, msg, *args, **kwargs): + def debug(self, msg: str, *args, **kwargs) -> None: """Log 'msg % args' with the critical severity level""" self._log("DEBUG", msg, args, kwargs) - def _log(self, level, msg, args, exc_info=None, extra=None): + def _log(self, level: str, msg: str, args, exc_info=None, extra=None) -> None: """Low-level logging routine which creates a :class:`HistoryRecord`.""" if exc_info and not isinstance(exc_info, tuple): exc_info = sys.exc_info() @@ -1237,7 +1312,7 @@ class NodeCorrections(list): """Iterable storing the correctios performed by the :class:`EventHandler`""" #TODO # Correction should have a human-readable message - # and a list of operatins in JSON format (Modder?) so that + # and a list of operations in JSON format (Modder?) so that # we can read them and re-apply the corrections to another task if needed. #def count_event_class(self, event_class): @@ -1249,7 +1324,7 @@ class NodeCorrections(list): #def _find(self, event_class) -class GarbageCollector(object): +class GarbageCollector: """This object stores information on the """ def __init__(self, exts, policy): self.exts, self.policy = set(exts), policy @@ -1263,7 +1338,7 @@ def __init__(self, exts, policy): _COUNTER_FILE = os.path.join(os.path.expanduser("~"), ".abinit", "abipy", "nodecounter") -def init_counter(): +def init_counter() -> None: global _COUNTER # Make dir and file if not present. @@ -1281,7 +1356,7 @@ def init_counter(): _COUNTER = int(s) -def get_newnode_id(): +def get_newnode_id() -> int: """ Returns a new node identifier used for |Task|, |Work| and |Flow| objects. @@ -1290,6 +1365,9 @@ def get_newnode_id(): The id is unique inside the same python process so be careful when Works and Tasks are constructed at run-time or when threads are used. """ + #import uuid + #return uuid.uuid4() + init_counter() global _COUNTER @@ -1297,7 +1375,7 @@ def get_newnode_id(): return _COUNTER -def save_lastnode_id(): +def save_lastnode_id() -> None: """Save the id of the last node created.""" init_counter() diff --git a/abipy/flowtk/psrepos.py b/abipy/flowtk/psrepos.py new file mode 100644 index 000000000..268a6d614 --- /dev/null +++ b/abipy/flowtk/psrepos.py @@ -0,0 +1,581 @@ +""" +This module provides an API to deal with pseudopotential repositories. +A repo is a collection of versioned pseudopotentials files installed within the same root directory. +A repo has a unique name that encodes the XC functional, relativity type, the kind of pseudopotential and the version. +The default root is $HOME/.abinit/pseudos although it is possible to change it via the ABIPY_PSREPOS_ROOT env variable + +Note that all pseudos in a repo share the same XC functional, the type e.g. NC or PAW and the +treatment of relativistic corrections although one might have multiple pseudos for the same element. + +Due to this ambiguity, a repo cannot be directly used for running calculations in an automatic fashion +hence the user is supposed to specify both the `repo_name` and the `table_name` when constructing a `PseudoTable`. + +High-level API: + + from abipy.flowtk.psrepos import get_oncvpsp_pseudos + pseudos = get_oncvpsp_pseudos(xc_name="PBE", version="0.4") + + +Low-level API: + + from abipy.flowtk.psrepos import get_repo_from_name + repo = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4") + pseudos = repo.get_pseudos("standard") + print(pseudos) +""" +from __future__ import annotations + +import os +import time +import abc +import json +import posixpath +import tempfile +import shutil +import hashlib +import requests + +from typing import Optional +from urllib.parse import urlsplit +from monty.termcolor import cprint, colored +from pymatgen.io.abinit.pseudos import Pseudo, PseudoTable +from abipy.tools.decorators import memoized_method +from tqdm import tqdm + + +def get_oncvpsp_pseudos(xc_name: str, version: str, relativity_type: str = "SR", accuracy: str = "standard") -> PseudoTable: + """ + High-level API that returns a PseudoTable of ONCVPSP pseudos for a given xc functional and version. + + Args: + xc_name: Name of the XC functional. + version: Version string e.g. "0.4". + relativity_type: SR for scalar-relativistic, FR for fully-relativistic with SOC. + accuracy: "standard" or "stringent". + """ + ps_generator, project_name = OncvpspRepo.ps_generator, OncvpspRepo.project_name + repo_name = f"{ps_generator}-{xc_name}-{relativity_type}-{project_name}v{version}" + + return get_repo_from_name(repo_name).get_pseudos(accuracy) + + +# Installation directory. +REPOS_ROOT = os.environ.get("ABIPY_PSREPOS_ROOT", + default=os.path.join(os.path.expanduser("~"), ".abinit", "pseudos")) + + +def get_repos_root() -> str: + """ + Return the path to the installation directory. Create directory if needed. + """ + if not os.path.exists(REPOS_ROOT): + os.mkdir(REPOS_ROOT) + + return REPOS_ROOT + + +def encode_pseudopath(filepath: str) -> str: + for repo in _ALL_REPOS: + if filepath.startswith(repo.dirpath): + return filepath.replace(repo.dirpath, f"@{repo.name}", 1) + return filepath + + +def decode_pseudopath(filepath: str) -> str: + for repo in _ALL_REPOS: + start = f"@{repo.name}" + if filepath.startswith(start): + return filepath.replace(start, repo.dirpath, 1) + return filepath + + +def download_repo_from_url(url: str, save_dirpath: str, + chunk_size: int = 2 * 1024**2, verbose: int = 0) -> None: + """ + Dowload file from url. + + Args: + url: The url from which the targz is taken. + save_dirpath: The directory in which the tarball is unpacked. + chunk_size: Chunk size used for downloading the file. + verbose: Verbosity level + """ + path = urlsplit(url).path + filename = posixpath.basename(path) + #print(path, filename) + + # stream = True is required by the iter_content below + with requests.get(url, stream=True) as r: + #tmp_dir = tempfile.mkdtemp() + with tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None) as tmp_dir: + tmp_filepath = os.path.join(tmp_dir, filename) + if verbose: + print("Writing temporary file:", tmp_filepath) + + total_size_in_bytes = int(r.headers.get('content-length', 0)) + progress_bar = tqdm(total=total_size_in_bytes, unit='iB', unit_scale=True) + + with open(tmp_filepath, 'wb') as fd: + for chunk in r.iter_content(chunk_size=chunk_size): + fd.write(chunk) + progress_bar.update(len(chunk)) + + progress_bar.close() + if total_size_in_bytes != 0 and progress_bar.n != total_size_in_bytes: + raise RuntimeError(f"Something went wrong while donwloading url: {url}") + + shutil.unpack_archive(tmp_filepath, extract_dir=tmp_dir) + + dirpaths = [os.path.join(tmp_dir, basen) for basen in os.listdir(tmp_dir) if basen != filename] + + if len(dirpaths) != 1: + raise RuntimeError(f"Expecting single directory, got {dirpaths}") + if not os.path.isdir(dirpaths[0]): + raise RuntimeError(f"Expecting single directory, got {dirpaths}") + + if verbose: print(f"Moving {dirpaths[0]} to {save_dirpath}") + shutil.move(dirpaths[0], save_dirpath) + + +def md5_for_filepath(filepath: str) -> str: + """ + Compute and return the md5 of a file. + """ + with open(filepath, "rt") as fh: + text = fh.read() + m = hashlib.md5(text.encode("utf-8")) + return m.hexdigest() + + +def get_repo_from_name(repo_name: str) -> PseudosRepo: + """ + Return a PseudosRepo from its name ``repo_name``. + Raises KeyError if ``repo_name`` is not registered. + """ + for repo in _ALL_REPOS: + if repo.name == repo_name: + return repo + else: + all_names = [repo.name for repo in _ALL_REPOS] + raise KeyError(f"Couldn't find {repo_name} in the list of registered repos:\n{all_names}") + + +def get_installed_repos_and_root(dirpath: Optional[str] = None) -> tuple[list[PseudosRepo], str]: + """ + Return (all_repos, dirpath) + """ + dirpath = REPOS_ROOT if not dirpath else dirpath + if not os.path.exists(dirpath): os.makedirs(dirpath) + dir_basenames = [name for name in os.listdir(dirpath) if os.path.isdir(os.path.join(dirpath, name))] + dirname2repo = {repo.name: repo for repo in _ALL_REPOS} + return [dirname2repo[dirname] for dirname in dir_basenames if dirname in dirname2repo], dirpath + + +class Citation: + + def __init__(self, title: str, doi: str): + self.title = title + self.doi = doi + + def __str__(self): + return f"{self.title}\ndoi:{self.doi}" + + #def __hash__(self) -> int: + # return hash(self.doi) + + #def __eq__(self, other): + # return self.doi == other.doi + + +class PseudosRepo(abc.ABC): + """ + Base abstract class for a Pseudopotential repository that is essentially a collection. + of pseudopotential files with some metadata and some external files that allow us to + construct a PseudoTable object. + """ + + #accuracies = ["standard", "stringent"] + + def __init__(self, ps_generator: str, xc_name: str, relativity_type: str, project_name: str, + version: str, url: str): + """ + Args: + ps_generator: Name of the pseudopotential generator. + xc_name: XC functional. + relativity_type: SR for scalar-relativistic or FR for fully relativistic. + project_name: Name of the project associated to this repository. + version: Version string. + url: URL from which the targz will be taken. + """ + if relativity_type not in {"SR", "FR"}: + raise ValueError(f"Invalid {relativity_type=}") + + self.ps_generator = ps_generator + self.xc_name = xc_name + self.version = version + self.project_name = project_name + self.relativity_type = relativity_type + self.url = url + + def to_rowdict(self, verbose: int = 0) -> dict: + """ + Return dict with metadata, useful to build DataFrames. + """ + row = dict( + ps_generator=self.ps_generator, + ps_type=self.ps_type, + xc_name=self.xc_name, + relativity_type=self.relativity_type, + project_name=self.project_name, + version=self.version, + installed=self.is_installed(), + name=self.name, + ) + + if verbose: + row.update(url=self.url) + + return row + + def __repr__(self) -> str: + return self.name + + def __str__(self) -> str: + lines = [self.name] + app = lines.append + return "\n".join(lines) + + def __eq__(self, other): + return self.name == other.name + + @property + def isnc(self) -> bool: + """True if norm-conserving repo.""" + return self.ps_type == "NC" + + @property + def ispaw(self) -> bool: + """True if PAW repo.""" + return self.ps_type == "PAW" + + @property + def table_names(self) -> list[str]: + """ + List of strings with the name of tables provided by this repository. + """ + if not self.is_installed(): return [] + # TODO: Should read table_names from directory + table_names = ["standard", "stringent"] + return table_names + + @property + def dirpath(self) -> str: + """Absolute path to the directory with the pseudopotentials.""" + return os.path.join(REPOS_ROOT, self.name) + + def is_installed(self) -> bool: + """True if the repo is already installed in REPOS_ROOT.""" + return os.path.exists(os.path.join(REPOS_ROOT, self.name)) + + def install(self, verbose: int = 0) -> None: + """ + Install the repository in the standard location relative to the `REPOS_ROOT` directory. + """ + print(f"Downloading repository from: {self.url} ...") + print(f"Installing {repr(self)} in: {self.dirpath}") + start = time.time() + if not os.path.exists(REPOS_ROOT): os.mkdir(REPOS_ROOT) + download_repo_from_url(self.url, self.dirpath, verbose=verbose) + self.validate_checksums(verbose) + print(f"Installation completed successfully in {time.time() - start:.2f} [s]") + + ##################### + # Abstract interface. + ##################### + + @abc.abstractmethod + def validate_checksums(self, verbose: int) -> None: + """Validate md5 checksums after download.""" + + @property + @abc.abstractmethod + def ps_type(self) -> str: + """Pseudopotential type e.g. NC or PAW""" + + @property + @abc.abstractmethod + def name(self): + """The name of repository built from the metadata. Must be unique""" + + @abc.abstractmethod + def get_citations(self) -> list[Citation]: + """Return list of citations for this repository.""" + + @abc.abstractmethod + def get_pseudos(self, table_name: str) -> PseudoTable: + """ + Build and return the PseudoTable associated to the given table_name + """ + + +class OncvpspRepo(PseudosRepo): + """ + A repo containing ONCVPSP pseudopotentials. + """ + ps_generator, project_name = "ONCVPSP", "PD" + + @classmethod + def from_github(cls, xc_name: str, relativity_type: str, version: str) -> OncvpspRepo: + """ + Build an OncvpsRepo from a github repository. + """ + if relativity_type == "FR": + # https://github.com/PseudoDojo/ONCVPSP-PBE-FR-PDv0.4/archive/refs/heads/master.zip + sub_url = f"{cls.ps_generator}-{xc_name}-FR-{cls.project_name}v{version}" + elif relativity_type == "SR": + # https://github.com/PseudoDojo/ONCVPSP-PBE-PDv0.4/archive/refs/heads/master.zip + sub_url = f"{cls.ps_generator}-{xc_name}-{cls.project_name}v{version}" + else: + raise ValueError(f"Invalid {relativity_type=}") + + url = f"https://github.com/PseudoDojo/{sub_url}/archive/refs/heads/master.zip" + return cls(cls.ps_generator, xc_name, relativity_type, cls.project_name, version, url) + + @property + def ps_type(self) -> str: + return "NC" + + @property + def name(self) -> str: + # ONCVPSP-PBEsol-PDv0.4/ + # ONCVPSP-PBE-FR-PDv0.4/ + return f"{self.ps_generator}-{self.xc_name}-{self.relativity_type}-{self.project_name}v{self.version}" + + def get_citations(self) -> list[Citation]: + """List of Citations.""" + return [ + Citation( + title="The PseudoDojo: Training and grading a 85 element optimized norm-conserving pseudopotential table", + doi="https://doi.org/10.1016/j.cpc.2018.01.012"), + ] + + def validate_checksums(self, verbose: int) -> None: + """ + Compare checksums given in the djson file with the ones computed from file after the donwload. + """ + print(f"\nValidating md5 checksums of {repr(self)}...") + djson_paths = [os.path.join(self.dirpath, jfile) for jfile in ("standard.djson", "stringent.djson")] + + seen = set() + errors = [] + for djson_path in djson_paths: + with open(djson_path, "rt") as fh: + djson = json.load(fh) + + for symbol, d in djson["pseudos_metadata"].items(): + bname = d["basename"] + if bname in seen: continue + seen.add(bname) + ref_md5 = d["md5"] + this_path = os.path.join(self.dirpath, symbol, bname) + this_md5 = md5_for_filepath(this_path) + if ref_md5 != this_md5: + errors.append(f"Different md5 checksums for {this_path}") + else: + if verbose: + print(f"MD5 checksum for {this_path} is OK") + + if errors: + cprint("Checksum test: FAILED", color="red") + errstr = "\n".join(errors) + raise ValueError(f"Checksum test failed for the following pseudos:\n{errstr}\n" + f"Data is corrupted. Try to download {repr(self)} again") + else: + cprint("Checksum test: OK", color="green") + + @memoized_method() + def get_pseudos(self, table_name: str) -> PseudoTable: + """ + Build and return the PseudoTable associated to the given table_name. + Note that we use a per-instance cache to store the results. + """ + djson_path = os.path.join(self.dirpath, f"{table_name}.djson") + pseudos = [] + with open(djson_path, "rt") as fh: + djson = json.load(fh) + for symbol, d in djson["pseudos_metadata"].items(): + bname = d["basename"] + pseudo_path = os.path.join(self.dirpath, symbol, bname) + #print(f"Reading pseudo from {pseudo_path}") + # FIXME: Bug if ~ in pseudo_path + pseudo_path = os.path.expanduser(pseudo_path) + pseudo = Pseudo.from_file(pseudo_path) + # Attach a fake dojo_report + # TODO: This part should be rationalized/rewritten + hints = d["hints"] + dojo_report = {"hints": hints} + pseudo.dojo_report = dojo_report + #print(f"pseudo.filepath after {pseudo.filepath}") + pseudos.append(pseudo) + + return PseudoTable(pseudos) + + +class JthRepo(PseudosRepo): + """ + A Repo containing JTH PAW pseudos. + """ + ps_generator, project_name = "ATOMPAW", "JTH" + + @classmethod + def from_abinit_website(cls, xc_name: str, relativity_type: str, version: str) -> JthRepo: + # https://www.abinit.org/ATOMICDATA/JTH-LDA-atomicdata.tar.gz + # ATOMPAW-LDA-JTHv0.4 + #url = f"https://www.abinit.org/ATOMICDATA/JTH-{xc_name}-atomicdata.tar.gz" + url = f"https://abinit.github.io/abinit_web/ATOMICDATA/JTH-{xc_name}-atomicdata.tar.gz" # TODO New url + return cls(cls.ps_generator, xc_name, relativity_type, cls.project_name, version, url) + + @property + def ps_type(self) -> str: + return "PAW" + + @property + def name(self) -> str: + # ATOMPAW-LDA-JTHv0.4 + return f"{self.ps_generator}-{self.xc_name}-{self.project_name}v{self.version}" + + def validate_checksums(self, verbose: int) -> None: + print(f"\nValidating md5 checksums of {repr(self)} ...") + cprint("WARNING: JTH-PAW repository does not support md5 checksums!!!", color="red") + + @memoized_method() + def get_pseudos(self, table_name: str) -> PseudoTable: + """ + Build and return the PseudoPotential table associated to the given table_name + """ + if table_name != "standard": + raise ValueError(f"JTH table does not support {table_name=}") + + # Read the list of pseudopotential paths (relative to dirpath) + txt_path = os.path.join(self.dirpath, f"{table_name}.txt") + with open(txt_path, "rt") as fh: + relpaths = fh.readlines() + relpaths = [l for l in relpaths if l.strip()] + + pseudos = [] + for rpath in relpaths: + pseudo = Pseudo.from_file(os.path.join(self.dirpath, rpath)) + # TODO: Get hints + pseudos.append(pseudo) + + return PseudoTable(pseudos) + + def get_citations(self) -> list[Citation]: + return [ + Citation( + title="Generation of Projector Augmented-Wave atomic data: A 71 element validated table in the XML format", + doi="https://www.sciencedirect.com/science/article/abs/pii/S0010465513004359?via%3Dihub"), + ] + + +def repos_from_names(repo_names: list[str]) -> list[PseudosRepo]: + """ + Return list of PP Repos from a list of repo_names + """ + id2repo = {repo.name: repo for repo in _ALL_REPOS} + # This will fail if we have received an invalid repo_name + return [id2repo[repo_name] for repo_name in repo_names] + + +def repo_from_name(repo_name: str) -> PseudosRepo: + """ + Return PseudosRepo from its name ``repo_name``. + """ + id2repo = {repo.name: repo for repo in _ALL_REPOS} + # This will fail if we have received an invalid repo_name. + return id2repo[repo_name] + + +def tabulate_repos(repos: list[PseudosRepo], exclude: Optional[list[str]] = None, + with_citations: bool = False, verbose: int = 0) -> str: + """ + Return string with info on a list of PseudosRepo. + + Args: + repos: List of PseudosRepo + exclude: List of keys to exclude + with_citations: True if citations should be reported. + verbose: Verbosity level. + """ + bool2color = {True: "green", False: "red"} + + rows = [] + for i, repo in enumerate(repos): + d = repo.to_rowdict(verbose=verbose) + if exclude: + d = {k: d[k] for k in d if k not in exclude} + + if i == 0: + headers = list(d.keys()) + + if "installed" in d: + d["installed"] = colored(d["installed"], bool2color[d["installed"]]) + + rows.append(list(d.values())) + + from tabulate import tabulate + s = tabulate(rows, headers) + if not with_citations: return s + + lines = [s, ""] + + proj2citations = {} + for repo in repos: + proj2citations[repo.project_name] = repo.get_citations() + + for projname, citations in proj2citations.items(): + lines.append(f"References for the {projname} project:") + for i, citation in enumerate(citations): + lines.append(f"\t- {citation.doi}") + + return "\n".join(lines) + + +############################################################# +# Here we register the repositories and build _ALL_REPOS list +############################################################# + +def get_all_registered_repos(): + return _ALL_REPOS[:] + + +_mk_onc = OncvpspRepo.from_github + +_ONCVPSP_REPOS = [ + _mk_onc(xc_name="PBEsol", relativity_type="SR", version="0.4"), + _mk_onc(xc_name="PBEsol", relativity_type="FR", version="0.4"), + _mk_onc(xc_name="PBE", relativity_type="SR", version="0.4"), + #_mk_onc(xc_name="PBE", relativity_type="FR", version="0.4"), FIXME: checksum fails + _mk_onc(xc_name="LDA", relativity_type="SR", version="0.3"), #FIXME: djrepo is not easy to regenerate + _mk_onc(xc_name="LDA", relativity_type="SR", version="0.4"), + #_mk_onc(xc_name="LDA", relativity_type="FR", version="0.4"), +] + +_mk_jth = JthRepo.from_abinit_website + +_PAW_REPOS = [ + _mk_jth(xc_name="LDA", relativity_type="SR", version="1.1"), + _mk_jth(xc_name="PBE", relativity_type="SR", version="1.1"), +] + +_ALL_REPOS = _ONCVPSP_REPOS + _PAW_REPOS + +# Make sure repo name is unique. +_repo_names = [_repo.name for _repo in _ALL_REPOS] +if len(set(_repo_names)) != len(_repo_names): + raise RuntimeError(f"Found duplicated repo_names in ALL_REPOS:\nids: {_repo_names}") + + +if __name__ == "__main__": + pseudos = get_repo_from_name("ONCVPSP-PBE-SR-PDv0.4").get_pseudos("standard") + print(pseudos) diff --git a/abipy/flowtk/qadapters.py b/abipy/flowtk/qadapters.py index a6b98890b..87fe2f640 100644 --- a/abipy/flowtk/qadapters.py +++ b/abipy/flowtk/qadapters.py @@ -11,6 +11,7 @@ of the run before submitting the job (Abinit provides the autoparal option that allows one to get a list of parallel configuration and their expected efficiency). """ +from __future__ import annotations import sys import os @@ -24,17 +25,19 @@ from collections import namedtuple from subprocess import Popen, PIPE -from pymatgen.util.io_utils import AtomicFile +from typing import Optional, Any from monty.string import is_string, list_strings from monty.collections import AttrDict from monty.functools import lazy_property from monty.inspect import all_subclasses from monty.io import FileLock from monty.json import MSONable -from pymatgen.core.units import Memory +from pymatgen.core.units import Memory, UnitError +from abipy.tools.iotools import AtomicFile from .utils import Condition from .launcher import ScriptEditor from .qjobs import QueueJob +from .qutils import any2mb import logging logger = logging.getLogger(__name__) @@ -61,13 +64,13 @@ class SubmitResults(namedtuple("SubmitResult", "qid, out, err, process")): """ -class MpiRunner(object): +class MpiRunner: """ This object provides an abstraction for the mpirunner provided by the different MPI libraries. It's main task is handling the different syntax and options supported by the different mpirunners. """ - def __init__(self, name, type=None, options=""): + def __init__(self, name: str, type=None, options: str = ""): """ Args: name (str): Name of the mpirunner e.g. mpirun, mpiexec, srun ... @@ -78,13 +81,20 @@ def __init__(self, name, type=None, options=""): self.type = None self.options = str(options) - def string_to_run(self, qad, executable, stdin=None, stdout=None, stderr=None, exec_args=None): + def string_to_run(self, qad: QueueAdapter, executable: str, + in_file: Optional[str] = None, + stdin: Optional[str] = None, + stdout: Optional[str] = None, + stderr: Optional[str] = None, + exec_args: Optional[list[str]] = None + ) -> str: """ Build and return a string with the command required to launch `executable` with the qadapter `qad`. Args - qad: Qadapter instance. + qad: QueueAdapter instance. executable (str): Executable name or path + in_file (str): Name of the input file passed to the executable as first argument. stdin (str): Name of the file to be used as standard input. None means no redirection. stdout (str): Name of the file to be used as standard output. None means no redirection. stderr (str): Name of the file to be used as standard error. None means no redirection. @@ -97,6 +107,9 @@ def string_to_run(self, qad, executable, stdin=None, stdout=None, stderr=None, e stdout = "> " + stdout if stdout is not None else "" stderr = "2> " + stderr if stderr is not None else "" + if in_file: + executable = f"{executable} {in_file}" + if exec_args: executable = executable + " " + " ".join(list_strings(exec_args)) @@ -120,7 +133,7 @@ def string_to_run(self, qad, executable, stdin=None, stdout=None, stderr=None, e "--exe `which " + executable + "` ", stdin, stdout, stderr]) else: if qad.mpi_procs != 1: - raise ValueError("Cannot use mpi_procs > when mpi_runner basename=%s" % basename) + raise ValueError(f"Cannot use mpi_procs `{qad.mpi_procs}` when mpi_runner: `{basename}`") cmd = " ".join([executable, stdin, stdout, stderr]) return cmd @@ -151,7 +164,7 @@ class OmpEnv(AttrDict): ] @classmethod - def as_ompenv(cls, obj): + def as_ompenv(cls, obj: Any) -> OmpEnv: """Convert an object into a OmpEnv""" if isinstance(obj, cls): return obj if obj is None: return cls() @@ -176,12 +189,12 @@ def __init__(self, *args, **kwargs): if err_msg: raise ValueError(err_msg) - def export_str(self): + def export_str(self) -> str: """Return a string with the bash statements needed to setup the OMP env.""" return "\n".join("export %s=%s" % (k, v) for k, v in self.items()) -class Hardware(object): +class Hardware: """ This object collects information on the hardware available in a given queue. @@ -203,7 +216,7 @@ def __init__(self, **kwargs): # Convert memory to megabytes. m = str(kwargs.pop("mem_per_node")) - self.mem_per_node = int(Memory.from_string(m).to("Mb")) + self.mem_per_node = any2mb(m) if self.mem_per_node <= 0 or self.sockets_per_node <= 0 or self.cores_per_socket <= 0: raise ValueError("invalid parameters: %s" % kwargs) @@ -220,48 +233,55 @@ def __str__(self): return "\n".join(lines) @property - def num_cores(self): + def num_cores(self) -> int: """Total number of cores available""" return self.cores_per_socket * self.sockets_per_node * self.num_nodes @property - def cores_per_node(self): + def cores_per_node(self) -> int: """Number of cores per node.""" return self.cores_per_socket * self.sockets_per_node @property - def mem_per_core(self): + def mem_per_core(self) -> float: """Memory available on a single node.""" return self.mem_per_node / self.cores_per_node - def can_use_omp_threads(self, omp_threads): + def can_use_omp_threads(self, omp_threads: int) -> bool: """True if omp_threads fit in a node.""" return self.cores_per_node >= omp_threads - def divmod_node(self, mpi_procs, omp_threads): + def divmod_node(self, mpi_procs: int, omp_threads: int) -> tuple[int, int]: """Use divmod to compute (num_nodes, rest_cores)""" return divmod(mpi_procs * omp_threads, self.cores_per_node) - def as_dict(self): + def as_dict(self) -> dict: + try: + # old pymatgen + mem_per_node = str(Memory(val=self.mem_per_node, unit='Mb')) + except: + mem_per_node = str(Memory(val=self.mem_per_node, unit='MB')) + return {'num_nodes': self.num_nodes, 'sockets_per_node': self.sockets_per_node, 'cores_per_socket': self.cores_per_socket, - 'mem_per_node': str(Memory(val=self.mem_per_node, unit='Mb'))} + 'mem_per_node': mem_per_node} @classmethod - def from_dict(cls, dd): - return cls(num_nodes=dd['num_nodes'], - sockets_per_node=dd['sockets_per_node'], - cores_per_socket=dd['cores_per_socket'], - mem_per_node=dd['mem_per_node']) + def from_dict(cls, d: dict) -> Hardware: + return cls(num_nodes=d['num_nodes'], + sockets_per_node=d['sockets_per_node'], + cores_per_socket=d['cores_per_socket'], + mem_per_node=d['mem_per_node']) -class _ExcludeNodesFile(object): +class _ExcludeNodesFile: """ This file contains the list of nodes to be excluded. Nodes are indexed by queue name. """ DIRPATH = os.path.join(os.path.expanduser("~"), ".abinit", "abipy") + FILEPATH = os.path.join(DIRPATH, "exclude_nodes.json") def __init__(self): @@ -271,11 +291,11 @@ def __init__(self): with open(self.FILEPATH, "w") as fh: json.dump({}, fh) - def read_nodes(self, qname): - with open(self.FILEPATH, "w") as fh: + def read_nodes(self, qname: str): + with open(self.FILEPATH, "r") as fh: return json.load(fh).get(qname, []) - def add_nodes(self, qname, nodes): + def add_nodes(self, qname, nodes) -> None: nodes = (nodes,) if not isinstance(nodes, (tuple, list)) else nodes with FileLock(self.FILEPATH): with AtomicFile(self.FILEPATH, mode="w+") as fh: @@ -291,7 +311,7 @@ def add_nodes(self, qname, nodes): _EXCL_NODES_FILE = _ExcludeNodesFile() -def show_qparams(qtype, stream=sys.stdout): +def show_qparams(qtype: str, stream=sys.stdout): """Print to the given stream the template of the :class:`QueueAdapter` of type `qtype`.""" for cls in all_subclasses(QueueAdapter): if cls.QTYPE == qtype: return stream.write(cls.QTEMPLATE) @@ -299,7 +319,7 @@ def show_qparams(qtype, stream=sys.stdout): raise ValueError("Cannot find class associated to qtype %s" % qtype) -def all_qtypes(): +def all_qtypes() -> list: """Return sorted list with all qtypes supported.""" return sorted([cls.QTYPE for cls in all_subclasses(QueueAdapter)]) @@ -368,14 +388,15 @@ class QueueAdapter(MSONable, metaclass=abc.ABCMeta): MaxNumLaunchesError = MaxNumLaunchesError @classmethod - def all_qtypes(cls): + def all_qtypes(cls) -> list[str]: """Return sorted list with all qtypes supported.""" return sorted([subcls.QTYPE for subcls in all_subclasses(cls)]) @classmethod - def autodoc(cls): + def autodoc(cls) -> str: return """ # Dictionary with info on the hardware available on this queue. + hardware: num_nodes: # Number of nodes available on this queue (integer, MANDATORY). sockets_per_node: # Number of sockets per node (integer, MANDATORY). @@ -384,6 +405,7 @@ def autodoc(cls): # `num_nodes * sockets_per_node * cores_per_socket`. # Dictionary with the options used to prepare the enviroment before submitting the job + job: setup: # List of commands (strings) executed before running (DEFAULT: empty) omp_env: # Dictionary with OpenMP environment variables (DEFAULT: empty i.e. no OpenMP) @@ -392,16 +414,17 @@ def autodoc(cls): shell_env: # Dictionary with shell environment variables. mpi_runner: # MPI runner. Possible values in ["mpirun", "mpiexec", "srun", None] # DEFAULT: None i.e. no mpirunner is used. - mpi_runner_options # String with optional options passed to the `mpi_runner` e.g. "--bind-to None" + mpi_runner_options: # String with optional options passed to the `mpi_runner` e.g. "--bind-to None" shell_runner: # Used for running small sequential jobs on the front-end. Set it to None # if mpirun or mpiexec are not available on the fron-end. If not # given, small sequential jobs are executed with `mpi_runner`. - shell_runner_options # Similar to mpi_runner_options but for the runner used on the front-end. + shell_runner_options: # Similar to mpi_runner_options but for the runner used on the front-end. pre_run: # List of commands (strings) executed before the run (DEFAULT: empty) post_run: # List of commands (strings) executed after the run (DEFAULT: empty) -# dictionary with the name of the queue and optional parameters +# dictionary with the name of the queue and other optional parameters # used to build/customize the header of the submission script. + queue: qtype: # String defining the qapapter type e.g. slurm, shell ... qname: # Name of the submission queue (string, MANDATORY) @@ -412,32 +435,40 @@ def autodoc(cls): # Use ``qverbatim`` to pass additional options that are not included in the template. # dictionary with the constraints that must be fulfilled in order to run on this queue. + limits: - min_cores: # Minimum number of cores (integer, DEFAULT: 1) - max_cores: # Maximum number of cores (integer, MANDATORY). Hard limit to hint_cores: - # it's the limit beyond which the scheduler will not accept the job (MANDATORY). - hint_cores: # The limit used in the initial setup of jobs. - # Fix_Critical method may increase this number until max_cores is reached - min_mem_per_proc: # Minimum memory per MPI process in Mb, units can be specified e.g. 1.4 Gb - # (DEFAULT: hardware.mem_per_core) - max_mem_per_proc: # Maximum memory per MPI process in Mb, units can be specified e.g. `1.4Gb` - # (DEFAULT: hardware.mem_per_node) - timelimit: # Initial time-limit. Accepts time according to slurm-syntax i.e: - # "days-hours" or "days-hours:minutes" or "days-hours:minutes:seconds" or - # "minutes" or "minutes:seconds" or "hours:minutes:seconds", - timelimit_hard: # The hard time-limit for this queue. Same format as timelimit. - # Error handlers could try to submit jobs with increased timelimit - # up to timelimit_hard. If not specified, timelimit_hard == timelimit - condition: # MongoDB-like condition (DEFAULT: empty, i.e. not used) - allocation: # String defining the policy used to select the optimal number of CPUs. - # possible values are in ["nodes", "force_nodes", "shared"] - # "nodes" means that we should try to allocate entire nodes if possible. - # This is a soft limit, in the sense that the qadapter may use a configuration - # that does not fulfill this requirement. In case of failure, it will try to use the - # smallest number of nodes compatible with the optimal configuration. - # Use `force_nodes` to enfore entire nodes allocation. - # `shared` mode does not enforce any constraint (DEFAULT: shared). - max_num_launches: # Limit to the number of times a specific task can be restarted (integer, DEFAULT: 5) + min_cores: # Minimum number of cores (integer, DEFAULT: 1) + max_cores: # Maximum number of cores (integer, MANDATORY). Hard limit to hint_cores: + # it's the limit beyond which the scheduler will not accept the job (MANDATORY). + hint_cores: # The limit used in the initial setup of jobs. + # Fix_Critical method may increase this number until max_cores is reached + min_mem_per_proc: # Minimum memory per MPI process in MB, units can be specified e.g. 1.4 GB + # (DEFAULT: hardware.mem_per_core) + max_mem_per_proc: # Maximum memory per MPI process in MB, units can be specified e.g. `1.4GB` + # (DEFAULT: hardware.mem_per_node) + timelimit: # Initial time-limit. Accepts time according to slurm-syntax i.e: + # "days-hours" or "days-hours:minutes" or "days-hours:minutes:seconds" or + # "minutes" or "minutes:seconds" or "hours:minutes:seconds", + timelimit_hard: # The hard time-limit for this queue. Same format as timelimit. + # Error handlers could try to submit jobs with increased timelimit + # up to timelimit_hard. If not specified, timelimit_hard == timelimit + condition: # MongoDB-like condition (DEFAULT: empty, i.e. not used) + allocation: # String defining the policy used to select the optimal number of CPUs. + # possible values are in ["nodes", "force_nodes", "shared"] + # "nodes" means that we should try to allocate entire nodes if possible. + # This is a soft limit, in the sense that the qadapter may use a configuration + # that does not fulfill this requirement. In case of failure, it will try to use the + # smallest number of nodes compatible with the optimal configuration. + # Use `force_nodes` to enforce entire nodes allocation. + # `shared` mode does not enforce any constraint (DEFAULT: shared). + max_num_launches: # Limit to the number of times a specific task can be restarted (integer, DEFAULT: 5) + limits_for_task_class: # Dictionary mapping Task class names to a dictionary with limits to be used + # for this particular Task. Example (mind white spaces): + # + # limits_for_task_class: { + # NscfTask: {min_cores: 1, max_cores: 10}, + # KerangeTask: {min_cores: 1, max_cores: 1, max_mem_per_proc: 1 GB}, + # } """ def __init__(self, **kwargs): @@ -468,8 +499,8 @@ def __init__(self, **kwargs): priority is a non-negative integer used to order the qadapters. The :class:`TaskManager` will try to run jobs on the qadapter with the highest priority if possible """ - # TODO - #task_classes + # Keep a reference to the input kwargs + self.kwargs = kwargs # Make defensive copies so that we can change the values at runtime. kwargs = copy.deepcopy(kwargs) @@ -498,7 +529,7 @@ def __init__(self, **kwargs): # Final consistency check. self.validate_qparams() - def as_dict(self): + def as_dict(self) -> dict: """ Provides a simple though not complete dict serialization of the object (OMP missing, not all limits are kept in the dictionary, ... other things to be checked) @@ -515,7 +546,9 @@ def as_dict(self): 'queue': {'qtype': self.QTYPE, 'qname': self._qname, 'qnodes': self.qnodes, - 'qparams': self._qparams}, + 'qparams': self._qparams, + 'mail_type': self.mail_type, + 'mail_user': self.mail_user}, 'limits': {'timelimit_hard': self._timelimit_hard, 'timelimit': self._timelimit, 'min_cores': self.min_cores, @@ -531,7 +564,7 @@ def as_dict(self): } @classmethod - def from_dict(cls, dd): + def from_dict(cls, dd: dict) -> QueueAdapter: priority = dd.pop('priority') hardware = dd.pop('hardware') queue = dd.pop('queue') @@ -550,7 +583,7 @@ def from_dict(cls, dd): raise ValueError("Found unknown keywords:\n%s" % list(dd.keys())) return qa - def validate_qparams(self): + def validate_qparams(self) -> None: """ Check if the keys specified by the user in qparams are supported. @@ -572,7 +605,16 @@ def validate_qparams(self): if err_msg: raise ValueError(err_msg) - def _parse_limits(self, d): + def update_limits(self, d: dict) -> None: + """ + Update the `limits` section using the data from dict `d`. + """ + # This changes the initial kwargs but this is required for serialization purposes. + new_limits = self.kwargs["limits"] + new_limits.update(d) + self._parse_limits(new_limits) + + def _parse_limits(self, d: dict) -> None: # Time limits. self.set_timelimit(qu.timelimit_parser(d.pop("timelimit"))) tl_hard = d.pop("timelimit_hard",None) @@ -599,10 +641,21 @@ def _parse_limits(self, d): if self.allocation not in ("nodes", "force_nodes", "shared"): raise ValueError("Wrong value for `allocation` option") + # Handle limits_for_task_class and perform very basic validation. + self.limits_for_task_class = d.pop("limits_for_task_class", {}) + if self.limits_for_task_class: + if not isinstance(self.limits_for_task_class, dict): + raise TypeError(f"In limits_for_task_class: Expecting dictionary TaskClassName -> dict with limits" + f"Got {type(self.limits_for_task_class)}") + for k, v in self.limits_for_task_class.items(): + if not isinstance(v, dict): + raise TypeError(f"In limits_for_task_class: Expecting dictionary with limits" + f"Got {type(v)}") + if d: raise ValueError("Found unknown keyword(s) in limits section:\n %s" % list(d.keys())) - def _parse_job(self, d): + def _parse_job(self, d: dict) -> None: setup = d.pop("setup", None) if is_string(setup): setup = [setup] self.setup = setup[:] if setup is not None else [] @@ -638,13 +691,16 @@ def _parse_job(self, d): if d: raise ValueError("Found unknown keyword(s) in job section:\n %s" % list(d.keys())) - def _parse_queue(self, d): + def _parse_queue(self, d: dict) -> None: # Init params qparams = d.pop("qparams", None) self._qparams = copy.deepcopy(qparams) if qparams is not None else {} self.set_qname(d.pop("qname", "")) self.qnodes = d.pop("qnodes", "standard") + self.mail_type = d.pop("mail_type", "") + self.mail_user = d.pop("mail_user", "") + if self.qnodes not in ["standard", "shared", "exclusive"]: raise ValueError("Nodes must be either in standard, shared or exclusive mode " "while qnodes parameter was {}".format(self.qnodes)) @@ -661,36 +717,36 @@ def __str__(self): return "\n".join(lines) @property - def qparams(self): + def qparams(self) -> dict: """Dictionary with the parameters used to construct the header.""" return self._qparams @lazy_property - def supported_qparams(self): + def supported_qparams(self) -> list: """ - Dictionary with the supported parameters that can be passed to the + List with the supported parameters that can be passed to the queue manager (obtained by parsing QTEMPLATE). """ import re return re.findall(r"\$\$\{(\w+)\}", self.QTEMPLATE) @property - def has_mpi(self): + def has_mpi(self) -> bool: """True if we are using MPI""" return bool(self.mpi_runner) @property - def has_omp(self): + def has_omp(self) -> bool: """True if we are using OpenMP threads""" return hasattr(self, "omp_env") and bool(getattr(self, "omp_env")) @property - def num_cores(self): + def num_cores(self) -> int: """Total number of cores employed""" return self.mpi_procs * self.omp_threads @property - def omp_threads(self): + def omp_threads(self) -> int: """Number of OpenMP threads.""" if self.has_omp: return self.omp_env["OMP_NUM_THREADS"] @@ -698,42 +754,42 @@ def omp_threads(self): return 1 @property - def pure_mpi(self): + def pure_mpi(self) -> bool: """True if only MPI is used.""" return self.has_mpi and not self.has_omp @property - def pure_omp(self): + def pure_omp(self) -> bool: """True if only OpenMP is used.""" return self.has_omp and not self.has_mpi @property - def hybrid_mpi_omp(self): + def hybrid_mpi_omp(self) -> bool: """True if we are running in MPI+Openmp mode.""" return self.has_omp and self.has_mpi @property - def run_info(self): + def run_info(self) -> str: """String with info on the run.""" return "MPI: %d, OMP: %d" % (self.mpi_procs, self.omp_threads) - def deepcopy(self): + def deepcopy(self) -> QueueAdapter: """Deep copy of the object.""" return copy.deepcopy(self) - def record_launch(self, queue_id): # retcode): - """Save submission""" + def record_launch(self, queue_id) -> None: + """Save submission, return number of launches""" self.launches.append( AttrDict(queue_id=queue_id, mpi_procs=self.mpi_procs, omp_threads=self.omp_threads, mem_per_proc=self.mem_per_proc, timelimit=self.timelimit)) return len(self.launches) - def remove_launch(self, index): + def remove_launch(self, index: int) -> None: """Remove launch with the given index.""" self.launches.pop(index) @property - def num_launches(self): + def num_launches(self) -> int: """Number of submission tried with this adapter so far.""" return len(self.launches) @@ -745,7 +801,7 @@ def last_launch(self): else: return None - def validate(self): + def validate(self) -> None: """Validate the parameters of the run. Raises self.Error if invalid parameters.""" errors = [] app = errors.append @@ -771,60 +827,60 @@ def validate(self): if errors: raise self.Error(str(self) + "\n".join(errors)) - def set_omp_threads(self, omp_threads): + def set_omp_threads(self, omp_threads: int) -> None: """Set the number of OpenMP threads.""" self.omp_env["OMP_NUM_THREADS"] = omp_threads @property - def mpi_procs(self): + def mpi_procs(self) -> int: """Number of CPUs used for MPI.""" return self._mpi_procs - def set_mpi_procs(self, mpi_procs): + def set_mpi_procs(self, mpi_procs: int) -> None: """Set the number of MPI processes to mpi_procs""" self._mpi_procs = mpi_procs @property - def qname(self): + def qname(self) -> str: """The name of the queue.""" return self._qname - def set_qname(self, qname): + def set_qname(self, qname: str) -> None: """Set the name of the queue.""" self._qname = qname - # todo this assumes only one wall time. i.e. the one in the mananager file is the one always used. + # todo this assumes only one wall time. i.e. the one in the manager file is the one always used. # we should use the standard walltime to start with but also allow to increase the walltime @property - def timelimit(self): + def timelimit(self) -> float: """Returns the walltime in seconds.""" return self._timelimit @property - def timelimit_hard(self): + def timelimit_hard(self) -> float: """Returns the walltime in seconds.""" return self._timelimit_hard - def set_timelimit(self, timelimit): + def set_timelimit(self, timelimit: float) -> None: """Set the start walltime in seconds, fix method may increase this one until timelimit_hard is reached.""" self._timelimit = timelimit - def set_timelimit_hard(self, timelimit_hard): + def set_timelimit_hard(self, timelimit_hard: float) -> None: """Set the maximal possible walltime in seconds.""" self._timelimit_hard = timelimit_hard @property - def mem_per_proc(self): + def mem_per_proc(self) -> float: """The memory per process in megabytes.""" return self._mem_per_proc @property - def master_mem_overhead(self): + def master_mem_overhead(self) -> float: """The memory overhead for the master process in megabytes.""" return self._master_mem_overhead - def set_mem_per_proc(self, mem_mb): + def set_mem_per_proc(self, mem_mb: float) -> None: """ Set the memory per process in megabytes. If mem_mb <=0, min_mem_per_proc is used. """ @@ -846,23 +902,26 @@ def set_master_mem_overhead(self, mem_mb): self._master_mem_overhead = int(mem_mb) @property - def total_mem(self): + def total_mem(self) -> Memory: """Total memory required by the job in megabytes.""" - return Memory(self.mem_per_proc * self.mpi_procs + self.master_mem_overhead, "Mb") + try: + mem = Memory(self.mem_per_proc * self.mpi_procs + self.master_mem_overhead, "MB") + except UnitError: + mem = Memory(self.mem_per_proc * self.mpi_procs + self.master_mem_overhead, "Mb") + return mem @abc.abstractmethod - def cancel(self, job_id): + def cancel(self, job_id: int) -> int: """ Cancel the job. Args: job_id: Job identifier. - Returns: - Exit status. + Returns: Exit status. """ - def can_run_pconf(self, pconf): + def can_run_pconf(self, pconf) -> bool: """True if the qadapter in principle is able to run the :class:`ParalConf` pconf""" if not self.hint_cores >= pconf.num_cores >= self.min_cores: return False if not self.hw.can_use_omp_threads(self.omp_threads): return False @@ -872,7 +931,7 @@ def can_run_pconf(self, pconf): return self.condition(pconf) - def distribute(self, mpi_procs, omp_threads, mem_per_proc): + def distribute(self, mpi_procs, omp_threads, mem_per_proc) -> tuple[int, int]: """ Returns (num_nodes, mpi_per_node) @@ -937,7 +996,7 @@ class Distrib(namedtuple("Distrib", "num_nodes mpi_per_node exact")): raise self.Error("Cannot distribute mpi_procs %d, omp_threads %d, mem_per_proc %s" % (mpi_procs, omp_threads, mem_per_proc)) - def optimize_params(self, qnodes=None): + def optimize_params(self, qnodes=None) -> dict: """ This method is called in get_subs_dict. Return a dict with parameters to be added to qparams Subclasses may provide a specialized version. @@ -945,7 +1004,7 @@ def optimize_params(self, qnodes=None): #logger.debug("optimize_params of baseclass --> no optimization available!!!") return {} - def get_subs_dict(self, qnodes=None): + def get_subs_dict(self, qnodes=None) -> dict: """ Return substitution dict for replacements into the template Subclasses may want to customize this method. @@ -958,7 +1017,7 @@ def get_subs_dict(self, qnodes=None): #print("subs_dict:", subs_dict) return subs_dict - def _make_qheader(self, job_name, qout_path, qerr_path): + def _make_qheader(self, job_name, qout_path, qerr_path) -> str: """Return a string with the options that are passed to the resource manager.""" # get substitution dict for replacements into the template subs_dict = self.get_subs_dict() @@ -982,8 +1041,9 @@ def _make_qheader(self, job_name, qout_path, qerr_path): return '\n'.join(clean_template) - def get_script_str(self, job_name, launch_dir, executable, qout_path, qerr_path, - stdin=None, stdout=None, stderr=None, exec_args=None): + def get_script_str(self, job_name: str, launch_dir: str, + executable: str, qout_path: str, qerr_path: str, + in_file: str=None, stdin=None, stdout=None, stderr=None, exec_args=None) -> str: """ Returns a (multi-line) String representing the queue script, e.g. PBS script. Uses the template_file along with internal parameters to create the script. @@ -1018,7 +1078,7 @@ def get_script_str(self, job_name, launch_dir, executable, qout_path, qerr_path, # stderr is redirected to mods.err file. # module load 2>> mods.err se.add_comment("Load Modules") - se.add_line("module purge") + se.add_line("module --force purge") se.load_modules(self.modules) se.add_emptyline() @@ -1041,7 +1101,7 @@ def get_script_str(self, job_name, launch_dir, executable, qout_path, qerr_path, # Construct the string to run the executable with MPI and mpi_procs. if is_string(executable): - line = self.mpi_runner.string_to_run(self, executable, + line = self.mpi_runner.string_to_run(self, executable, in_file=in_file, stdin=stdin, stdout=stdout, stderr=stderr, exec_args=exec_args) se.add_line(line) else: @@ -1055,7 +1115,7 @@ def get_script_str(self, job_name, launch_dir, executable, qout_path, qerr_path, return qheader + se.get_script_str() + "\n" - def submit_to_queue(self, script_file): + def submit_to_queue(self, script_file: str) -> QueueJob: """ Public API: wraps the concrete implementation _submit_to_queue @@ -1083,7 +1143,7 @@ def submit_to_queue(self, script_file): return QueueJob.from_qtype_and_id(self.QTYPE, s.qid, self.qname), s.process @abc.abstractmethod - def _submit_to_queue(self, script_file): + def _submit_to_queue(self, script_file: str): """ Submits the job to the queue, probably using subprocess or shutil This method must be provided by the concrete classes and will be called by submit_to_queue @@ -1095,7 +1155,7 @@ def _submit_to_queue(self, script_file): queue_id, process """ - def get_njobs_in_queue(self, username=None): + def get_njobs_in_queue(self, username=None) -> int: """ returns the number of jobs in the queue, probably using subprocess or shutil to call a command like 'qstat'. returns None when the number of jobs cannot be determined. @@ -1118,7 +1178,7 @@ def get_njobs_in_queue(self, username=None): return njobs @abc.abstractmethod - def _get_njobs_in_queue(self, username): + def _get_njobs_in_queue(self, username: str): """ Concrete Subclasses must implement this method. Return (njobs, process) """ @@ -1212,13 +1272,14 @@ class ShellAdapter(QueueAdapter): $${qverbatim} """ - def cancel(self, job_id): + def cancel(self, job_id: int) -> int: return os.system("kill -9 %d" % job_id) - def _submit_to_queue(self, script_file): - # submit the job, return process and pid. + def _submit_to_queue(self, script_file: str) -> SubmitResults: + # Submit the job, return process and pid. process = Popen(("/bin/bash", script_file), stderr=PIPE) - return SubmitResults(qid=process.pid, out='no out in shell submission', err='no err in shell submission', process=process) + return SubmitResults(qid=process.pid, out='no out in shell submission', + err='no err in shell submission', process=process) def _get_njobs_in_queue(self, username): return None, None @@ -1261,35 +1322,35 @@ class SlurmAdapter(QueueAdapter): $${qverbatim} """ - def set_qname(self, qname): + def set_qname(self, qname: str) -> None: super().set_qname(qname) if qname: self.qparams["partition"] = qname - def set_mpi_procs(self, mpi_procs): + def set_mpi_procs(self, mpi_procs: int) -> None: """Set the number of CPUs used for MPI.""" super().set_mpi_procs(mpi_procs) self.qparams["ntasks"] = mpi_procs - def set_omp_threads(self, omp_threads): + def set_omp_threads(self, omp_threads: int) -> None: super().set_omp_threads(omp_threads) self.qparams["cpus_per_task"] = omp_threads - def set_mem_per_proc(self, mem_mb): + def set_mem_per_proc(self, mem_mb: float) -> None: """Set the memory per process in megabytes""" super().set_mem_per_proc(mem_mb) self.qparams["mem_per_cpu"] = self.mem_per_proc # Remove mem if it's defined. #self.qparams.pop("mem", None) - def set_timelimit(self, timelimit): + def set_timelimit(self, timelimit: float) -> None: super().set_timelimit(timelimit) self.qparams["time"] = qu.time2slurm(timelimit) - def cancel(self, job_id): + def cancel(self, job_id: int) -> int: return os.system("scancel %d" % job_id) - def optimize_params(self, qnodes=None): + def optimize_params(self, qnodes=None) -> dict: params = {} if self.allocation == "nodes": # run on the smallest number of nodes compatible with the configuration @@ -1318,13 +1379,10 @@ def optimize_params(self, qnodes=None): # self.qparams.pop("mem", None) #return {} - def _submit_to_queue(self, script_file): + def _submit_to_queue(self, script_file: str) -> SubmitResults: """Submit a job script to the queue.""" - if sys.version_info[0] < 3: - process = Popen(['sbatch', script_file], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['sbatch', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) + # need string not bytes so must use universal_newlines + process = Popen(['sbatch', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() @@ -1338,6 +1396,7 @@ def _submit_to_queue(self, script_file): except Exception: # probably error parsing job code logger.critical('Could not parse job id following slurm...') + return SubmitResults(qid=queue_id, out=out, err=err, process=process) def exclude_nodes(self, nodes): @@ -1355,13 +1414,10 @@ def exclude_nodes(self, nodes): except (KeyError, IndexError): raise self.Error('qadapter failed to exclude nodes') - def _get_njobs_in_queue(self, username): - if sys.version_info[0] < 3: - process = Popen(['squeue', '-o "%u"', '-u', username], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['squeue', '-o "%u"', '-u', username], stdout=PIPE, stderr=PIPE, - universal_newlines=True) + def _get_njobs_in_queue(self, username: str): + # need string not bytes so must use universal_newlines + process = Popen(['squeue', '-o "%u"', '-u', username], stdout=PIPE, stderr=PIPE, + universal_newlines=True) out, err = process.communicate() njobs = None @@ -1400,7 +1456,7 @@ class PbsProAdapter(QueueAdapter): $${qverbatim} """ - def set_qname(self, qname): + def set_qname(self, qname: str) -> None: super().set_qname(qname) if qname: self.qparams["queue"] = qname @@ -1414,7 +1470,7 @@ def set_mem_per_proc(self, mem_mb): super().set_mem_per_proc(mem_mb) #self.qparams["mem"] = self.mem_per_proc - def cancel(self, job_id): + def cancel(self, job_id: int) -> int: return os.system("qdel %d" % job_id) def optimize_params(self, qnodes=None): @@ -1586,7 +1642,7 @@ def _get_select_with_master_mem_overhead_exclusive(self, ret_dict=False, memory_ pot_ncpus_all_slaves = chunks_slaves*ncpus_per_slave if pot_ncpus_all_slaves >= self.mpi_procs-1: explicit_last_slave = True - chunks_slaves = chunks_slaves-1 + chunks_slaves = chunks_slaves - 1 chunk_last_slave = 1 ncpus_master = 1 ncpus_last_slave = self.mpi_procs - 1 - chunks_slaves*ncpus_per_slave @@ -1683,11 +1739,8 @@ def _get_select_standard(self, ret_dict=False, memory_policy='mem'): def _submit_to_queue(self, script_file): """Submit a job script to the queue.""" - if sys.version_info[0] < 3: - process = Popen(['qsub', script_file], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['qsub', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) + # need string not bytes so must use universal_newlines + process = Popen(['qsub', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() # grab the return code. PBS returns 0 if the job was successful @@ -1702,11 +1755,8 @@ def _submit_to_queue(self, script_file): return SubmitResults(qid=queue_id, out=out, err=err, process=process) def _get_njobs_in_queue(self, username): - if sys.version_info[0] < 3: - process = Popen(['qstat', '-a', '-u', username], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['qstat', '-a', '-u', username], stdout=PIPE, stderr=PIPE, universal_newlines=True) + # need string not bytes so must use universal_newlines + process = Popen(['qstat', '-a', '-u', username], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() njobs = None @@ -1833,16 +1883,13 @@ def set_timelimit(self, timelimit): # Same convention as pbspro e.g. [hours:minutes:]seconds self.qparams["walltime"] = qu.time2pbspro(timelimit) - def cancel(self, job_id): + def cancel(self, job_id: int) -> int: return os.system("qdel %d" % job_id) def _submit_to_queue(self, script_file): """Submit a job script to the queue.""" - if sys.version_info[0] < 3: - process = Popen(['qsub', script_file], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['qsub', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) + # need string not bytes so must use universal_newlines + process = Popen(['qsub', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() # grab the returncode. SGE returns 0 if the job was successful @@ -1862,11 +1909,8 @@ def exclude_nodes(self, nodes): raise self.Error('qadapter failed to exclude nodes, not implemented yet in sge') def _get_njobs_in_queue(self, username): - if sys.version_info[0] < 3: - process = Popen(['qstat', '-u', username], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['qstat', '-u', username], stdout=PIPE, stderr=PIPE, universal_newlines=True) + # need string not bytes so must use universal_newlines + process = Popen(['qstat', '-u', username], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() njobs = None @@ -1928,16 +1972,13 @@ def set_mem_per_proc(self, mem_mb): def exclude_nodes(self, nodes): raise self.Error('qadapter failed to exclude nodes, not implemented yet in moad') - def cancel(self, job_id): + def cancel(self, job_id: int) -> int: return os.system("canceljob %d" % job_id) def _submit_to_queue(self, script_file): """Submit a job script to the queue.""" - if sys.version_info[0] < 3: - process = Popen(['msub', script_file], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['msub', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) + # need string not bytes so must use universal_newlines + process = Popen(['msub', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() queue_id = None @@ -1953,11 +1994,8 @@ def _submit_to_queue(self, script_file): return SubmitResults(qid=queue_id, out=out, err=err, process=process) def _get_njobs_in_queue(self, username): - if sys.version_info[0] < 3: - process = Popen(['showq', '-s -u', username], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['showq', '-s -u', username], stdout=PIPE, stderr=PIPE, universal_newlines=True) + # need string not bytes so must use universal_newlines + process = Popen(['showq', '-s -u', username], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() njobs = None @@ -2028,7 +2066,7 @@ def set_timelimit(self, timelimit): super().set_timelimit(timelimit) self.qparams["wall_clock_limit"] = qu.time2loadlever(timelimit) - def cancel(self, job_id): + def cancel(self, job_id: int) -> int: return os.system("llcancel %d" % job_id) def bgsize_rankspernode(self): @@ -2048,13 +2086,10 @@ def optimize_params(self, qnodes=None): return {"bg_size": bg_size} - def _submit_to_queue(self, script_file): + def _submit_to_queue(self, script_file: str): """Submit a job script to the queue.""" - if sys.version_info[0] < 3: - process = Popen(['llsubmit', script_file], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['llsubmit', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) + # need string not bytes so must use universal_newlines + process = Popen(['llsubmit', script_file], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() # grab the return code. llsubmit returns 0 if the job was successful @@ -2073,12 +2108,9 @@ def _submit_to_queue(self, script_file): return SubmitResults(qid=queue_id, out=out, err=err, process=process) - def _get_njobs_in_queue(self, username): - if sys.version_info[0] < 3: - process = Popen(['llq', '-u', username], stdout=PIPE, stderr=PIPE) - else: - # need string not bytes so must use universal_newlines - process = Popen(['llq', '-u', username], stdout=PIPE, stderr=PIPE, universal_newlines=True) + def _get_njobs_in_queue(self, username: str): + # need string not bytes so must use universal_newlines + process = Popen(['llq', '-u', username], stdout=PIPE, stderr=PIPE, universal_newlines=True) out, err = process.communicate() njobs = None diff --git a/abipy/flowtk/qha.py b/abipy/flowtk/qha.py index 5de04ebed..aaebffaa5 100644 --- a/abipy/flowtk/qha.py +++ b/abipy/flowtk/qha.py @@ -2,147 +2,235 @@ """ Workflows for calculations within the quasi-harmonic approximation. """ +from __future__ import annotations + import numpy as np -from monty.json import jsanitize +from abipy.tools.serialization import mjson_write # mjson_load, mjson_loads, +from abipy.dfpt.deformation_utils import generate_deformations from abipy.flowtk.works import Work, PhononWork +from abipy.flowtk.tasks import RelaxTask from abipy.flowtk.flows import Flow -class RelaxAndPhononWork(Work): +class RelaxAndAddPhononWorks(Work): """ - This work performs a structural relaxation for different volumes, then it uses - the relaxed structures to compute phonons, BECS and the dielectric tensor with DFPT. + This work performs a structural relaxation of the initial structure, then a set of distorted + structures is genenerated and the relaxed structures are used + to compute phonons, BECS and the dielectric tensor with DFPT. .. rubric:: Inheritance Diagram - .. inheritance-diagram:: RelaxAndPhononWork + .. inheritance-diagram:: RelaxAndAddPhononWorks """ @classmethod - def from_scf_input(cls, scf_input, volumes, ngqpt, with_becs, optcell, ionmov, edos_ngkpt=None): + def from_scf_input(cls, scf_input, eps, ngqpt, with_becs: bool, optcell: int, ionmov: int, + edos_ngkpt=None) -> RelaxAndAddPhononWorks: """ - Build the work from an |AbinitInput| for GS-SCF calculation. + Build the work from an |AbinitInput| representing a GS-SCF calculation. Args: scf_input: |AbinitInput| for GS-SCF used as template to generate the other inputs. - volumes: List of volumes in Ang**3 with_becs: Activate calculation of Electric field and Born effective charges. optcell, ionmov: Abinit input variables. edos_ngkpt: Three integers defining the the k-sampling for the computation of the - electron DOS with the relaxed structures. Useful for metals or small gap semiconductors + electron DOS with the relaxed structures. Useful for metals in which the electronic contribution should be included. None disables the computation of the e-DOS. """ work = cls() + + # Save attributes in work work.initial_scf_input = scf_input - work.ngqpt = np.reshape(ngqpt, (3,)) - work.edos_ngkpt = edos_ngkpt if edos_ngkpt is None else np.reshape(edos_ngkpt, (3,)) - work.volumes = np.array(volumes) + work.eps = eps + work.ngqpt = ngqpt work.with_becs = with_becs + work.edos_ngkpt = edos_ngkpt if edos_ngkpt is None else np.reshape(edos_ngkpt, (3,)) # Create input for relaxation and register the relaxation task. - relax_template = scf_input.deepcopy() + work.relax_template = relax_template = scf_input.deepcopy() relax_template.pop_tolerances() - relax_template.set_vars(tolvrs=1e-10, toldff=1.e-6, optcell=optcell, ionmov=ionmov) + relax_template.set_vars(tolvrs=1e-8, toldff=1.e-6, optcell=optcell, ionmov=ionmov) if optcell is not None and optcell != 0: relax_template.set_vars_ifnotin(ecutsm=0.5, dilatmx=1.05) - # Construct len(volumes) works. Each work performs a structural relaxation - # at fixed volume followed by a DFPT calculation with the relaxed structure. - work.relax_tasks_vol = [] - for new_volume in work.volumes: - new_structure = relax_template.structure.scale_lattice(new_volume) - new_input = relax_template.new_with_structure(new_structure) - task = work.register_relax_task(new_input) - work.relax_tasks_vol.append(task) - - work.ph_works_vol = len(volumes) * [None] - work.edos_work = None + work.initial_relax_task = work.register_relax_task(relax_template) return work + def on_ok(self, sender): + """ + This method is called when one task reaches status `S_OK`. + It executes on_all_ok when all tasks in self have reached `S_OK`. + """ + if sender == self.initial_relax_task: + # Get relaxed structure and build deformed structures. + relaxed_structure = sender.get_final_structure() + self.deformed_structures_dict = generate_deformations(relaxed_structure, eps=self.eps) + + # Add new tasks to relax the deformed structures at fixed cell. + for structure in self.deformed_structures_dict.values(): + new_input = self.relax_template.new_with_structure(structure, optcell=0) + self.register_relax_task(new_input) + + self.flow.allocate(build=True) + + return super().on_ok(sender) + def on_all_ok(self): """ This callback is called when all tasks in the Work reach status `S_OK`. - Here are add a new PhononWork for each volume using the relaxed structure. + Here we add a new PhononWork for each volume using the relaxed structure. """ if self.edos_ngkpt is not None: self.edos_work = Work() - # Build phonon works for the different volumes. - for ivol, task in enumerate(self.relax_tasks_vol): + # Build phonon works for the different relaxed structures. + self.ph_works = [] + start = 1 + for task, def_name in zip(self[start:], self.deformed_structures_dict.keys(), strict=True): relaxed_structure = task.get_final_structure() scf_input = self.initial_scf_input.new_with_structure(relaxed_structure) ph_work = PhononWork.from_scf_input(scf_input, self.ngqpt, is_ngqpt=True, tolerance=None, with_becs=self.with_becs, ddk_tolerance=None) - self.ph_works_vol[ivol] = ph_work - # Add e-DOS calculation. + ph_work.set_name(def_name) + self.ph_works.append(ph_work) + self.flow.register_work(ph_work) + + # Add electron DOS calculation. if self.edos_ngkpt is not None: edos_input = scf_input.make_edos_input(self.edos_ngkpt) self.edos_work.register_nscf_task(edos_input, deps={ph_work[0]: "DEN"}) - self.flow.register_work(ph_work) - if self.edos_ngkpt is not None: self.flow.register_work(self.edos_work) - self.flow.allocate() - self.flow.build_and_pickle_dump() + self.flow.allocate(build=True) return super().on_all_ok() +class ThermalRelaxTask(RelaxTask): + + def _on_ok(self): + results = super()._on_ok() + # Check for convergence. + #if not self.collinear_done: + # self.input.set_vars(strtarget=strtarget) + # self.finalized = False + # self.restart() + + return results + + +class ThermalRelaxWork(Work): + """ + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: ThermalRelaxWork + """ + + @classmethod + def from_relax_input(cls, relax_input, qha, temperatures, pressures): + """ + """ + work = cls() + + work.temperatures = temperatures + work.pressures = pressures + #work.qha = qha + + for pressure in pressures: + for temperature in temperatures: + strtarget = qha.get_strtarget(temperature, pressure) + new_input = relax_input.new_with_vars(strtarget=strtarget) + work.register_relax_task(new_input) + + return work + + def on_all_ok(self): + """ + Implement the post-processing step at the end of the Work. + """ + return super().on_all_ok() + + class QhaFlow(Flow): """ + Flow for QHA calculations. .. rubric:: Inheritance Diagram .. inheritance-diagram:: QhaFlow """ @classmethod - def from_scf_input(cls, workdir, scf_input, volumes, ngqpt, with_becs, - edos_ngkpt=None, metadata=None, manager=None): + def from_scf_input(cls, workdir, scf_input, ngqpt, with_becs, eps=0.005, + edos_ngkpt=None, manager=None) -> QhaFlow: """ - Build a |Flow| for QHA calculations from an |AbinitInput| for GS-SCF calculations. + Build a flow for QHA calculations from an |AbinitInput| for GS-SCF calculations. Args: - workdir: Working directory. + workdir: Working directory of the flow. scf_input: |AbinitInput| for GS-SCF run used as template to generate the other inputs. - volumes: List of volumes in Ang**3. ngqpt: Three integers defining the q-mesh for phonon calculation. with_becs: Activate calculation of Electric field and Born effective charges. + eps: edos_ngkpt: Three integers defining the the k-sampling for the computation of the electron DOS with the relaxed structures. Useful for metals or small gap semiconductors in which the electronic contribution should be included. None disables the computation of the e-DOS. - metadata: Dictionary with metadata to be be added to the final JSON file. manager: |TaskManager| instance. Use default if None. """ - ngqpt = np.reshape(ngqpt, 3) flow = cls(workdir=workdir, manager=manager) - flow.metadata = jsanitize(metadata) if metadata is not None else None - work = RelaxAndPhononWork.from_scf_input(scf_input, volumes, ngqpt, - with_becs=with_becs, optcell=3, ionmov=3, edos_ngkpt=edos_ngkpt) - flow.relax_and_phonon_work = work - flow.register_work(work) + new_work = RelaxAndAddPhononWorks.from_scf_input(scf_input, eps, ngqpt, + with_becs=with_becs, optcell=2, ionmov=2, + edos_ngkpt=edos_ngkpt) + flow.register_work(new_work) + flow.relax_and_add_phonon_works = new_work return flow + #def on_all_ok(self): + # if self.on_all_ok_num_calls > 0: return True + # self.on_all_ok_num_calls += 1 + + # print(f"In on_all_ok with {self.on_all_ok_num_calls =}") + + # # implement_logic_to_create_new_work + # #for work in self.relax_and_add_phonon_works.ph_works + + # """ + # self.register_work(work) + # self.allocate() + # self.build_and_pickle_dump() + # """ + + # #from abipy.dfpt.qha_approximation import QHA_App + # #qha = QHA_App.from_files_app_ddb(cls, ddb_paths, phdos_paths) + + # # The scheduler will keep on running the flow. + # return False + def finalize(self): """ This method is called when the flow is completed. It performs some basic post-processing of the results to facilitate further analysis. """ - d = {} - if self.metadata is not None: d.update({"metadata": self.metadata}) + data = {} + #work = self[0] + #data = dict( + # initial_structure=work.initial_structure, + # relaxed_structure=work.final_structure, + # relaxed_structure_energy_eV=work.initial_structure, + # initial_deformed_structures=work.initial_structure, + # relaxed_deformed_structures_energy_ev=work.initial_structure, + #) - #QHA.from_files(cls, gsr_paths, phdos_paths) + # QHA.from_files(cls, gsr_paths, phdos_paths) # Build list of strings with path to the relevant output files ordered by V. - d["gsr_relax_paths"] = [task.gsr_path for task in self.relax_and_phonon_work.relax_tasks_vol] - d["ddb_paths"] = [ph_work.outdir.has_abiext("DDB") for ph_work in self.relax_and_phonon_work.ph_works_vol] - d["gsr_edos_path"] = [] - if self.relax_and_phonon_work.edos_ngkpt is not None: - d["gsr_edos_paths"] = [task.gsr_path for task in self.relax_and_phonon_work.edos_work] + #data["gsr_relax_paths"] = [task.gsr_path for task in self.relax_and_phonon_work.relax_tasks_vol] + data["ddb_paths"] = [ph_work.outdir.has_abiext("DDB") for ph_work in self.relax_and_add_phonon_works.ph_works] + #data["gsr_edos_path"] = [] + #if self.relax_and_phonon_work.edos_ngkpt is not None: + # data["gsr_edos_paths"] = [task.gsr_path for task in self.relax_and_phonon_work.edos_work] - from abipy import abilab #entries = [] #items = zip(self.relax_and_phonon_work.relax_tasks_vol, self.relax_and_phonon_work.ph_works_vol) #for ivol, (relax_task, ph_work) in enumerate(items): @@ -162,16 +250,8 @@ def finalize(self): # entry["gsr_edos_path"] = task.gsr_path # entries.append(entry) - #d["entries_for_each_volume"] = entries - - abilab.mjson_write(d, self.outdir.path_in("qha.json"), indent=4) + #data["entries_for_each_volume"] = entries - #pyscript = """ - #from abipy import abilab - #from abipy.qha import Qha - #data = abilab.mjson_read("qha.json") - #data - #qha = from_files(gsr_files_paths, phdos_files_paths): - #""" + mjson_write(data, self.outdir.path_in("qha_data.json"), indent=4) return super().finalize() diff --git a/abipy/flowtk/qjobs.py b/abipy/flowtk/qjobs.py index 03bb07a2d..a38e47f60 100644 --- a/abipy/flowtk/qjobs.py +++ b/abipy/flowtk/qjobs.py @@ -6,6 +6,7 @@ The main goal indeed is providing a simplified common interface for different resource managers without having to rely on external libraries. """ +from __future__ import annotations import shlex @@ -69,8 +70,8 @@ def __str__(self): return self._STATUS_TABLE[self] @classmethod - def from_string(cls, s): - """Return a :class:`JobStatus` instance from its string representation.""" + def from_string(cls, s: str) -> JobStatus: + """Return an instance from its string representation.""" for num, text in cls._STATUS_TABLE.items(): if text == s: return cls(num) else: @@ -79,10 +80,10 @@ def from_string(cls, s): return cls.from_string("UNKNOWN") -class QueueJob(object): +class QueueJob: """ - This object provides methods to contact the resource manager to get info on the status - of the job and useful statistics. This is an abstract class. + This object provides methods to contact the resource manager to get info + on the status of the job and useful statistics. This is an abstract class. """ QTYPE = None @@ -101,7 +102,7 @@ class QueueJob(object): S_NODEFAIL = JobStatus.from_string("NODEFAIL") @staticmethod - def from_qtype_and_id(qtype, queue_id, qname=None): + def from_qtype_and_id(qtype: str, queue_id, qname=None): """ Return a new istance of the appropriate subclass. @@ -142,27 +143,27 @@ def __bool__(self): #def is_terminated() @property - def is_completed(self): + def is_completed(self) -> bool: return self.status == self.S_COMPLETED @property - def is_running(self): + def is_running(self) -> bool: return self.status == self.S_RUNNING @property - def is_failed(self): + def is_failed(self) -> bool: return self.status == self.S_FAILED @property - def timeout(self): + def timeout(self) -> bool: return self.status == self.S_TIMEOUT @property - def has_node_failures(self): + def has_node_failures(self) -> bool: return self.status == self.S_NODEFAIL @property - def unknown_status(self): + def unknown_status(self) -> bool: return self.status == self.S_UNKNOWN def set_status_exitcode_signal(self, status, exitcode, signal): @@ -216,7 +217,7 @@ def likely_code_error(self): return False - def received_signal(self, sig_name): + def received_signal(self, sig_name: str) -> bool: if self.signal is None: return False # Get the numeric value from signal and compare it with self.signal import signal @@ -327,7 +328,7 @@ def get_info(self, **kwargs): self.set_status_exitcode_signal(JobStatus.from_string(status), exitcode, signal) return AttrDict(exitcode=exitcode, signal=signal, status=status) - def get_stats(self, **kwargs): + def get_stats(self, **kwargs) -> dict: cmd = "sacct --long --job %s --parsable2" % self.qid process = Popen(shlex.split(cmd), stdout=PIPE, stderr=PIPE) out, err = process.communicate() diff --git a/abipy/flowtk/qutils.py b/abipy/flowtk/qutils.py index 29fd23daf..00200ffcf 100644 --- a/abipy/flowtk/qutils.py +++ b/abipy/flowtk/qutils.py @@ -1,20 +1,24 @@ # coding: utf-8 """ -Collection of low-level tools that faciliate the interface with resource managers. +Collection of low-level tools to facilitate the interface with resource managers. The preferred way of importing this module is: import qutils as qu """ +from __future__ import annotations + +import os + +from subprocess import Popen, PIPE, run from monty.string import is_string -from pymatgen.core.units import Time, Memory +from pymatgen.core.units import Time, Memory, UnitError +from abipy.tools.typing import PathLike from abipy.tools import duck +from abipy.tools.text import rm_multiple_spaces -import logging -logger = logging.getLogger(__name__) - -def slurm_parse_timestr(s): +def slurm_parse_timestr(s: str) -> Time: """ A slurm time parser. Accepts a string in one the following forms: @@ -67,7 +71,7 @@ def slurm_parse_timestr(s): return Time((days*24 + hours)*3600 + minutes*60 + seconds, "s") -def time2slurm(timeval, unit="s"): +def time2slurm(timeval: float, unit="s") -> str: """ Convert a number representing a time value in the given unit (Default: seconds) to a string following the slurm convention: "days-hours:minutes:seconds". @@ -85,7 +89,7 @@ def time2slurm(timeval, unit="s"): return "%d-%d:%d:%d" % (days, hours, minutes, secs) -def time2pbspro(timeval, unit="s"): +def time2pbspro(timeval: float, unit="s") -> str: """ Convert a number representing a time value in the given unit (Default: seconds) to a string following the PbsPro convention: "hours:minutes:seconds". @@ -101,7 +105,7 @@ def time2pbspro(timeval, unit="s"): return "%d:%d:%d" % (hours, minutes, secs) -def time2loadlever(timeval, unit="s"): +def time2loadlever(timeval: float, unit="s") -> str: """ Convert a number representing a time value in the given unit (Default: seconds) to a string following the LoadLever convention. format hh:mm:ss (hours:minutes:seconds) @@ -128,6 +132,331 @@ def timelimit_parser(s): def any2mb(s): """Convert string or number to memory in megabytes.""" if is_string(s): - return int(Memory.from_string(s).to("Mb")) + try: + # latest pymatgen version (as of july 2024) + mem = int(Memory.from_str(s.upper()).to("MB")) + except (KeyError, UnitError): # For backward compatibility with older pymatgen versions + try: + mem = int(Memory.from_str(s.replace("B", "b")).to("Mb")) + except AttributeError: # For even older pymatgen versions + mem = int(Memory.from_string(s.replace("B", "b")).to("Mb")) + return mem else: return int(s) + + +def slurm_get_jobs() -> dict[int, dict]: + """ + Invoke squeue, parse output and return list of dictionaries with job info indexed by job id. + """ + # Based on https://gist.github.com/stevekm/7831fac98473ea17d781330baa0dd7aa + process = Popen(["squeue", "--me", "-o", '%all'], + stdout=PIPE, stderr=PIPE, shell=False, universal_newlines=True) + proc_stdout, proc_stderr = process.communicate() + + lines = proc_stdout.split('\n') + header_line = lines.pop(0) + header_cols = header_line.split('|') + entries = [] + error_lines = [] # do something with this later + for line in lines: + parts = line.split('|') + if len(parts) != len(header_cols): + error_lines.append((len(parts), line, parts)) + else: + d = {} + for i, key in enumerate(header_cols): + d[key] = parts[i] + if key == "JOBID": + d[key] = int(d[key]) + entries.append(d) + + return {e["JOBID"]: e for e in entries} + + +class SlurmJobArray: + """ + + Example: + + header = '''\ +#!/bin/bash + +#SBATCH --account=battab +#SBATCH --job-name=abiml_md +#SBATCH --time=0-16:0:0 +#SBATCH --partition=batch +#SBATCH --nodes=1 # 1 node has 128 cores +#SBATCH --ntasks-per-node=1 +#SBATCH --cpus-per-task=1 + +conda activate env3.10 +export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK +ulimit -s unlimited +''' + +command = "abiml.py md" +arr_options = ["--help", "--version"] +job_array = SlurmJobArray(header, command, arr_options) +print(job_array) +queue_id = job_array.sbatch("job_array.sh") + """ + + def __init__(self, header: str, command: str, arr_options: list[str]): + self.command = command + if not self.command.endswith(" "): self.command += " " + self.header = header + self.arr_options = arr_options + self.arr_options_str = rm_multiple_spaces("\n".join(arr_options)) + + def __str__(self): + # Add slurm array section. + lines = self.header.splitlines() + for il, line in enumerate(lines): + if line.startswith("#SBATCH"): + break + else: + raise ValueError("Cannot find line starting with #SBATCH") + + lines.insert(il, f"#SBATCH --array=0-{len(self.arr_options)-1}") + header = "\n".join(lines) + + select_opts = r""" +# multiline string +OPTS_STRING=" +%s +" + +# Convert the multiline string to an array +IFS=$'\n' read -rd '' -a OPTS_LIST <<< "$OPTS_STRING" + +# Index of the entry you want (0-based) +index=${SLURM_ARRAY_TASK_ID} + +# Check if the index is within the range of the array +OPTS="${OPTS_LIST[index]}" +echo "Running entry at index $index:\nwith OPTS=$OPTS" + +env +""" % (self.arr_options_str) + + end = f""" +{self.command} ${{OPTS}} > job_${{index}}.log 2> job_${{index}}.err + +# Remove the file with the Slurm job id +me=$(basename "$0") +rm ${{me}}.qid +""" + + return header + select_opts + end + + def sbatch(self, slurm_filepath: PathLike) -> int: + """ + Write slurm submission script to slurm_filepath and submits it. + Return Slurm JOB id. + """ + # Make sure no slurm job is already running by checking for a .qid file. + path_qid = slurm_filepath + ".qid" + if os.path.exists(path_qid): + with open(path_qid, "rt") as fh: + queue_id = int(fh.read().split("#")) + err_msg = f"Found slurm job ID {queue_id} in {path_qid}" + \ + "This usually indicates that a similar array job is already running\n" + \ + f"If this not the case, please remove {path_qid} and rerun the script." + raise RuntimeError(err_msg) + + with open(slurm_filepath, "wt") as fh: + fh.write(str(self)) + + queue_id = slurm_sbatch(slurm_filepath) + return queue_id + + +def slurm_write_and_sbatch(script_filepath: str, slurm_script_str: str) -> int: + """ + Write job script and submit it to the queue with Slurm sbatch. Return Slurm JOB ID. + """ + with open(script_filepath, "wt") as fh: + fh.write(slurm_script_str) + return slurm_sbatch(script_filepath) + + +def slurm_sbatch(slurm_filepath: PathLike) -> int: + """ + Submit a job script to the queue with Slurm sbatch. Return Slurm JOB ID. + """ + from monty.os import cd + dirpath = os.path.dirname(slurm_filepath) + #print("dirpath", dirpath) + with cd(dirpath): + + # need string not bytes so must use universal_newlines + slurm_filepath = str(slurm_filepath) + process = Popen(['sbatch', slurm_filepath], stdout=PIPE, stderr=PIPE, universal_newlines=True) + out, err = process.communicate() + + # grab the returncode. SLURM returns 0 if the job was successful + if process.returncode == 0: + try: + # output should of the form '2561553.sdb' or '352353.jessup' - just grab the first part for job id + queue_id = int(out.split()[3]) + path_qid = slurm_filepath + ".qid" + print(f"Job submission was successful and queue_id: {queue_id}") + print("Saving slurm job ID in:", path_qid) + with open(path_qid, "wt") as fh: + fh.write(str(queue_id) + " # Slurm job id") + return queue_id + + except Exception as exc: + # probably error parsing job code + print('Could not parse job id following slurm...') + raise exc + else: + raise RuntimeError(f"Error while submitting {slurm_filepath=} with {process.returncode=},\n{out=}\n{err=}") + + +def get_sacct_info(): + """ + Run the sacct command to get the job information + """ + try: + + result = run(['sacct', '--format=JobID,JobName,Partition,Account,AllocCPUS,State,ExitCode', '--noheader'], + stdout=PIPE, stderr=PIPE, text=True) + + # Check if the command was successful + if result.returncode != 0: + print(f"Error running sacct: {result.stderr}") + return None + + # Process the output + jobs_info = result.stdout.strip().split('\n') + jobs = [dict(zip(['JobID', 'JobName', 'Partition', 'Account', 'AllocCPUS', 'State', 'ExitCode'], job.split())) + for job in jobs_info] + return jobs + + except Exception as e: + print(f"An error occurred: {e}") + return None + + +def get_completed_job_info(job_id: int | str): + try: + # Define the fields we want to retrieve + fields = "JobID,JobName,Partition,Account,AllocCPUS,State,ExitCode,Start,End,Elapsed,TotalCPU,MaxRSS" + + # Run the sacct command with the specified fields for the given job ID + result = run( + ['sacct', '--jobs', str(job_id), '--format', fields, '--noheader', '--parsable2'], + stdout=PIPE, stderr=PIPE, text=True + ) + + # Check if the command was successful + if result.returncode != 0: + print(f"Error running sacct: {result.stderr}") + return None + + # Process the output + lines = result.stdout.strip().split('\n') + jobs = [dict(zip(fields.split(','), line.split('|'))) for line in lines] + return jobs + + except Exception as e: + print(f"An error occurred: {e}") + return None + + +def get_slurm_template(body: str) -> str: + """ + Return template for slurm submission that is supposed to be customized by the user. + """ + return f"""\ +#!/bin/bash +# +# Please CUSTOMIZE this section according to your cluster and the type of calculation +# +#SBATCH --job-name=my_job +#SBATCH --output=%j_%x.slurm.out +#SBATCH --error=%j_%x.slurm.err +#SBATCH --partition=debug +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=64 +#SBATCH --cpus-per-task=1 +#SBATCH --mem-per-cpu=2G +#SBATCH --time=2:00:00 +#SBATCH --account=htforft + +export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK + +# ------------------------------------------------------------------------------ +# Printing some information +# ------------------------------------------------------------------------------ + +echo "------------------- Job info -------------------" +echo "job_id : $SLURM_JOB_ID" +echo "jobname : $SLURM_JOB_NAME" +echo "queue : $SLURM_JOB_PARTITION" +echo "qos : $SLURM_JOB_QOS" +echo "account : $SLURM_JOB_ACCOUNT" +echo "submit dir : $SLURM_SUBMIT_DIR" +echo "number of mpi tasks: $SLURM_NTASKS tasks" +echo "OMP_NUM_THREADS : $OMP_NUM_THREADS" +echo "number of gpus : $SLURM_GPUS_ON_NODE" +echo "------------------- Node list ------------------" +echo $SLURM_JOB_NODELIST + +echo "---------------- Printing limits ---------------" +ulimit -s unlimited +ulimit -a + +# ------------------------------------------------------------------------------ +# Setting up the environment +# ------------------------------------------------------------------------------ + +echo "----------------- Environment ------------------" + +source $HOME/vasp.6.2.1/modules.sh +module list + +echo "--------------- Running the code ---------------" +echo -n "This run started on: " +date + +{body} + +echo -n "This run completed on: " +date +""" + + +def get_custodian_template() -> str: + return """\ +#!/usr/bin/env python + +from custodian.custodian import Custodian +from custodian.vasp.jobs import VaspJob +from custodian.vasp.handlers import VaspErrorHandler, UnconvergedErrorHandler + +# List of error handlers +handlers = [ + VaspErrorHandler(), # Handles common VASP errors + UnconvergedErrorHandler() # Handles unconverged calculations +] + +# Define the VASP job with appropriate command and parameters +jobs = [ + VaspJob( + #["mpirun", "vasp_std"], # Replace NCORES with the number of cores + #["mpirun", "-np", "1", "vasp_std"], # Replace NCORES with the number of cores + ["mpirun", "vasp_std"], # Replace NCORES with the number of cores + auto_npar=False, + final=True + ) +] + +# Create the Custodian instance with handlers and jobs +c = Custodian(handlers, jobs, max_errors=5) + +# Run the Custodian job +c.run() +""" \ No newline at end of file diff --git a/abipy/flowtk/scheduler_error_parsers.py b/abipy/flowtk/scheduler_error_parsers.py index bce680bca..8f3504bc3 100644 --- a/abipy/flowtk/scheduler_error_parsers.py +++ b/abipy/flowtk/scheduler_error_parsers.py @@ -1,4 +1,5 @@ # coding: utf-8 +# flake8: noqa """ Error handlers for errors originating from the Submission systems. """ diff --git a/abipy/flowtk/tasks.py b/abipy/flowtk/tasks.py index 30da9c0d0..46c6b5880 100644 --- a/abipy/flowtk/tasks.py +++ b/abipy/flowtk/tasks.py @@ -1,5 +1,7 @@ # coding: utf-8 """This module provides functions and classes related to Task objects.""" +from __future__ import annotations + import os import time import datetime @@ -7,28 +9,39 @@ import collections import abc import copy -import ruamel.yaml as yaml -from io import StringIO import numpy as np +import pandas as pd +#import ruamel.yaml as yaml +from io import StringIO from pprint import pprint from itertools import product +from typing import Any, Union from monty.string import is_string, list_strings from monty.termcolor import colored, cprint from monty.collections import AttrDict from monty.functools import lazy_property, return_none_if_raise from monty.json import MSONable from monty.fnmatch import WildCard -from pymatgen.core.units import Memory -from pymatgen.util.serialization import json_pretty_dump, pmg_serialize +from pymatgen.core.units import Memory, UnitError +from abipy.core.globals import get_workdir +from abipy.core.structure import Structure +from abipy.tools.serialization import json_pretty_dump, pmg_serialize +from abipy.tools.iotools import yaml_safe_load +from abipy.tools.typing import TYPE_CHECKING +from abipy.abio.enums import GWR_TASK from .utils import File, Directory, irdvars_for_ext, abi_splitext, FilepathFixer, Condition, SparseHistogram from .qadapters import make_qadapter, QueueAdapter, QueueAdapterError -from . import qutils as qu -from .db import DBConnector from .nodes import Status, Node, NodeError, NodeResults, FileNode #, check_spectator +from .abitimer import AbinitTimerParser +from . import qutils as qu from . import abiinspect from . import events -from .abitimer import AbinitTimerParser + +if TYPE_CHECKING: # Avoid circular dependencies + from abipy.abio.inputs import AbinitInput, OpticInput + from .works import Work + from .flows import Flow __author__ = "Matteo Giantomassi" @@ -51,8 +64,10 @@ "ElasticTask", "SigmaTask", "EphTask", + "KerangeTask", "OpticTask", "AnaddbTask", + "GwrTask", "set_user_config_taskmanager", ] @@ -62,13 +77,13 @@ # Tools and helper functions. -def straceback(): +def straceback() -> str: """Returns a string with the traceback.""" import traceback return traceback.format_exc() -def nmltostring(nml): +def nmltostring(nml: dict) -> str: """Convert a dictionary representing a Fortran namelist into a string.""" if not isinstance(nml, dict): raise ValueError("nml should be a dict !") @@ -92,12 +107,13 @@ def nmltostring(nml): class TaskResults(NodeResults): JSON_SCHEMA = NodeResults.JSON_SCHEMA.copy() + JSON_SCHEMA["properties"] = { "executable": {"type": "string", "required": True}, } @classmethod - def from_node(cls, task): + def from_node(cls, task: Task) -> TaskResults: """Initialize an instance from an |AbinitTask| instance.""" new = super().from_node(task) @@ -119,11 +135,10 @@ def from_node(cls, task): class ParalConf(AttrDict): """ - This object store the parameters associated to one - of the possible parallel configurations reported by ABINIT. - Essentially it is a dictionary whose values can also be accessed - as attributes. It also provides default values for selected keys - that might not be present in the ABINIT dictionary. + This object store the parameters associated to one of the possible + parallel configurations reported by ABINIT. + Essentially it is a dictionary whose values can also be accessed as attributes. + It also provides default values for selected keys that might not be present in the ABINIT dictionary. Example: @@ -166,35 +181,35 @@ def __init__(self, *args, **kwargs): if k not in self: self[k] = v - def __str__(self): + def __str__(self) -> str: stream = StringIO() pprint(self, stream=stream) return stream.getvalue() @property - def num_cores(self): + def num_cores(self) -> int: return self.mpi_procs * self.omp_threads @property - def mem_per_proc(self): + def mem_per_proc(self) -> float: return self.mem_per_cpu @property - def mpi_procs(self): + def mpi_procs(self) -> int: return self.mpi_ncpus @property - def omp_threads(self): + def omp_threads(self) -> int: return self.omp_ncpus @property - def speedup(self): + def speedup(self) -> float: """Estimated speedup reported by ABINIT.""" return self.efficiency * self.num_cores @property - def tot_mem(self): - """Estimated total memory in Mbs (computed from mem_per_proc)""" + def tot_mem(self) -> float: + """Estimated total memory in MBs (computed from mem_per_proc)""" return self.mem_per_proc * self.mpi_procs @@ -202,7 +217,7 @@ class ParalHintsError(Exception): """Base error class for `ParalHints`.""" -class ParalHintsParser(object): +class ParalHintsParser: Error = ParalHintsError @@ -210,10 +225,10 @@ def __init__(self): # Used to push error strings. self._errors = collections.deque(maxlen=100) - def add_error(self, errmsg): + def add_error(self, errmsg: str) -> None: self._errors.append(errmsg) - def parse(self, filename): + def parse(self, filename: str) -> ParalHints: """ Read the `AutoParal` section (YAML format) from filename. Assumes the file contains only one section. @@ -221,7 +236,7 @@ def parse(self, filename): with abiinspect.YamlTokenizer(filename) as r: doc = r.next_doc_with_tag("!Autoparal") try: - d = yaml.safe_load(doc.text_notag) + d = yaml_safe_load(doc.text_notag) return ParalHints(info=d["info"], confs=d["configurations"]) except Exception: import traceback @@ -235,18 +250,19 @@ class ParalHints(collections.abc.Iterable): """ Iterable with the hints for the parallel execution reported by ABINIT. """ + Error = ParalHintsError - def __init__(self, info, confs): + def __init__(self, info: dict, confs: list[dict]): self.info = info self._confs = [ParalConf(**d) for d in confs] @classmethod - def from_mpi_omp_lists(cls, mpi_procs, omp_threads): + def from_mpi_omp_lists(cls, mpi_procs: int, omp_threads: int) -> ParalHints: """ Build a list of Parallel configurations from two lists - containing the number of MPI processes and the number of OpenMP threads - i.e. product(mpi_procs, omp_threads). + with the number of MPI processes and the number of OpenMP threads i.e. product(mpi_procs, omp_threads). + The configuration have parallel efficiency set to 1.0 and no input variables. Mainly used for preparing benchmarks. """ @@ -262,48 +278,58 @@ def __getitem__(self, key): def __iter__(self): return self._confs.__iter__() - def __len__(self): + def __len__(self) -> int: return self._confs.__len__() - def __repr__(self): + def __repr__(self) -> str: return "\n".join(str(conf) for conf in self) - def __str__(self): + def __str__(self) -> str: return repr(self) @lazy_property - def max_cores(self): + def max_cores(self) -> int: """Maximum number of cores.""" return max(c.mpi_procs * c.omp_threads for c in self) @lazy_property - def max_mem_per_proc(self): + def max_mem_per_proc(self) -> float: """Maximum memory per MPI process.""" return max(c.mem_per_proc for c in self) @lazy_property - def max_speedup(self): + def max_speedup(self) -> float: """Maximum speedup.""" return max(c.speedup for c in self) @lazy_property - def max_efficiency(self): + def max_efficiency(self) -> float: """Maximum parallel efficiency.""" return max(c.efficiency for c in self) @pmg_serialize - def as_dict(self, **kwargs): + def as_dict(self, **kwargs) -> dict: return {"info": self.info, "confs": self._confs} @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> ParalHints: return cls(info=d["info"], confs=d["confs"]) - def copy(self): - """Shallow copy of self.""" + def copy(self) -> ParalHints: + """Shallow copy""" return copy.copy(self) - def select_with_condition(self, condition, key=None): + def get_dataframe(self) -> pd.DataFrame: + rows = [] + for conf in self: + d = conf.copy() + abi_vars = d.pop("vars") + d.update(**abi_vars) + rows.append(d) + + return pd.DataFrame(rows) + + def select_with_condition(self, condition, key=None) -> None: """ Remove all the configurations that do not satisfy the given condition. @@ -324,17 +350,17 @@ def select_with_condition(self, condition, key=None): self._confs = new_confs - def sort_by_efficiency(self, reverse=True): + def sort_by_efficiency(self, reverse=True) -> ParalHints: """Sort the configurations in place. items with highest efficiency come first""" self._confs.sort(key=lambda c: c.efficiency, reverse=reverse) return self - def sort_by_speedup(self, reverse=True): + def sort_by_speedup(self, reverse=True) -> ParalHints: """Sort the configurations in place. items with highest speedup come first""" self._confs.sort(key=lambda c: c.speedup, reverse=reverse) return self - def sort_by_mem_per_proc(self, reverse=False): + def sort_by_mem_per_proc(self, reverse=False) -> ParalHints: """Sort the configurations in place. items with lowest memory per proc come first.""" # Avoid sorting if mem_per_cpu is not available. if any(c.mem_per_proc > 0.0 for c in self): @@ -372,7 +398,7 @@ def multidimensional_optimization(self, priorities=("speedup", "efficiency")): # new_confs = [pconf for pconf in self if qadapter.can_run_pconf(pconf)] # return self.__class__(info=self.info, confs=new_confs) - def get_ordered_with_policy(self, policy, max_ncpus): + def get_ordered_with_policy(self, policy, max_ncpus) -> ParalHints: """ Sort and return a new list of configurations ordered according to the :class:`TaskPolicy` policy. """ @@ -396,7 +422,7 @@ def get_ordered_with_policy(self, policy, max_ncpus): logger.info("Applying vars_condition %s" % str(policy.vars_condition)) hints.select_with_condition(policy.vars_condition, key="vars") - # Undo change if no configuration fullfills the requirements. + # Undo change if no configuration fulfills the requirements. if not hints: hints = bkp_hints logger.warning("Empty list of configurations after policy.vars_condition") @@ -422,7 +448,7 @@ def get_ordered_with_policy(self, policy, max_ncpus): return hints -class TaskPolicy(object): +class TaskPolicy: """ This object stores the parameters used by the |TaskManager| to create the submission script and/or to modify the ABINIT variables @@ -431,7 +457,7 @@ class TaskPolicy(object): and the conditions used to select the optimal configuration for the parallel run """ @classmethod - def as_policy(cls, obj): + def as_policy(cls, obj: Any) -> TaskPolicy: """ Converts an object obj into a `:class:`TaskPolicy. Accepts: @@ -451,7 +477,7 @@ def as_policy(cls, obj): raise TypeError("Don't know how to convert type %s to %s" % (type(obj), cls)) @classmethod - def autodoc(cls): + def autodoc(cls) -> str: return """ autoparal: # (integer). 0 to disable the autoparal feature (DEFAULT: 1 i.e. autoparal is on) condition: # condition used to filter the autoparal configurations (Mongodb-like syntax). @@ -510,28 +536,33 @@ class FixQueueCriticalError(Exception): _USER_CONFIG_TASKMANAGER = None -def set_user_config_taskmanager(manager): - """Change the default manager returned by TaskManager.from_user_config.""" +def set_user_config_taskmanager(task_manager: TaskManager) -> None: + """ + Change the default manager returned by TaskManager.from_user_config. + """ global _USER_CONFIG_TASKMANAGER - _USER_CONFIG_TASKMANAGER = manager + _USER_CONFIG_TASKMANAGER = task_manager class TaskManager(MSONable): """ - A `TaskManager` is responsible for the generation of the job script and the submission - of the task, as well as for the specification of the parameters passed to the resource manager - (e.g. Slurm, PBS ...) and/or the run-time specification of the ABINIT variables governing the parallel execution. - A `TaskManager` delegates the generation of the submission script and the submission of the task to the :class:`QueueAdapter`. - A `TaskManager` has a :class:`TaskPolicy` that governs the specification of the parameters for the parallel executions. - Ideally, the TaskManager should be the **main entry point** used by the task to deal with job submission/optimization + A `TaskManager` is responsible for the generation of the job script, + the specification of the parameters passed to the resource manager (e.g. Slurm, PBS, etc). + and the submission of the task. + A `TaskManager` uses a `QueueAdapter` to perform most of this work + A `TaskManager` has a :class:`TaskPolicy` object that governs the specification of the parameters for + the parallel executions. + Ideally, the TaskManager should be the **main entry point** used by the task + to deal with job submission/optimization """ YAML_FILE = "manager.yml" + USER_CONFIG_DIR = os.path.join(os.path.expanduser("~"), ".abinit", "abipy") - ENTRIES = {"policy", "qadapters", "db_connector", "batch_adapter"} + ENTRIES = {"policy", "qadapters"} @classmethod - def autodoc(cls): + def autodoc(cls) -> str: s = """ # TaskManager configuration file (YAML Format) @@ -543,11 +574,6 @@ def autodoc(cls): - # qadapter_1 - # qadapter_2 -db_connector: - # Connection to MongoDB database (optional) - -batch_adapter: - # Adapter used to submit flows with batch script. (optional) ########################################## # Individual entries are documented below: @@ -559,7 +585,35 @@ def autodoc(cls): return s @classmethod - def from_user_config(cls): + def get_simple_manager(cls) -> str: + + return """ +qadapters: + # List of qadapters objects + - priority: 1 + queue: + qtype: shell # We are using the shell to "submit" jobs + qname: localhost + job: + mpi_runner: mpirun + pre_run: + # List of shell commands executed before running abinit + # Change this part according to your Abinit installation and the location of the shared libs + - export OMP_NUM_THREADS=1 + - export PATH=$HOME/git_repos/abinit/_build/src/98_main:$PATH + #- export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH + limits: + timelimit: 1:00:00 + max_cores: 2 + hardware: + num_nodes: 1 + sockets_per_node: 1 + cores_per_socket: 2 + mem_per_node: 4 GB +""" + + @classmethod + def from_user_config(cls) -> TaskManager: """ Initialize the |TaskManager| from the YAML file 'manager.yaml'. Search first in the working directory and then in the AbiPy configuration directory. @@ -571,39 +625,67 @@ def from_user_config(cls): if _USER_CONFIG_TASKMANAGER is not None: return _USER_CONFIG_TASKMANAGER + #manager_path = os.getenv("ABIPY_TASK_MANAGER_PATH") + #if manager_path is not None: + # _USER_CONFIG_TASKMANAGER = TaskManager.from_file(manager_path) + # return _USER_CONFIG_TASKMANAGER + # Try in the current directory then in user configuration directory. - path = os.path.join(os.getcwd(), cls.YAML_FILE) - if not os.path.exists(path): + try: + cwd = os.getcwd() + except FileNotFoundError: + # This error is triggered when running pytes with workers. + cwd = None + + if cwd is not None: + path = os.path.join(cwd, cls.YAML_FILE) + if not os.path.exists(path): + path = os.path.join(cls.USER_CONFIG_DIR, cls.YAML_FILE) + else: path = os.path.join(cls.USER_CONFIG_DIR, cls.YAML_FILE) if not os.path.exists(path): - raise RuntimeError(colored( - "\nCannot locate %s neither in current directory nor in %s\n" - "PLEASE READ THIS: !!!\n" - "To use AbiPy to run jobs this file must be present\n" - "It provides a description of the cluster/computer you are running on\n" - "Examples are provided in abipy/data/managers." % (cls.YAML_FILE, path), color="red")) + raise RuntimeError(colored(f""" + +Cannot locate `{cls.YAML_FILE}` neither in current directory nor in `{path}` + +!!! PLEASE READ THIS !!! + + To run AbiPy flows you need a manager.yaml describing your computer/cluster + as well as the job submission engine being used (shell, Slurm, PBS, etc). + + Examples are provided in the `abipy/data/managers` directory. + Use `abidoc.py manager` to access the documentation from the terminal. + See also https://abinit.github.io/abipy/workflows/manager_examples.html for examples. + +A minimalistic example of manager.yml for a laptop with the shell engine is reported below: + +{cls.get_simple_manager()} + +""", color="red")) _USER_CONFIG_TASKMANAGER = cls.from_file(path) return _USER_CONFIG_TASKMANAGER + @classmethod - def from_file(cls, filename): - """Read the configuration parameters from the Yaml file filename.""" + def from_file(cls, filepath: str) -> TaskManager: + """Read the configuration parameters from the Yaml file filepath.""" + filepath = os.path.expanduser(filepath) try: - with open(filename, "rt") as fh: - return cls.from_dict(yaml.safe_load(fh)) + with open(filepath, "rt") as fh: + return cls.from_dict(yaml_safe_load(fh)) except Exception as exc: - print("Error while reading TaskManager parameters from %s\n" % filename) + print(f"Error while reading TaskManager parameters from {filepath}\n") raise @classmethod - def from_string(cls, s): + def from_string(cls, s: str) -> TaskManager: """Create an instance from string s containing a YAML dictionary.""" - return cls.from_dict(yaml.safe_load(s)) + return cls.from_dict(yaml_safe_load(s)) @classmethod - def as_manager(cls, obj): + def as_manager(cls, obj: Any) -> TaskManager: """ Convert obj into TaskManager instance. Accepts string, filepath, dictionary, `TaskManager` object. If obj is None, the manager is initialized from the user config file. @@ -623,20 +705,19 @@ def as_manager(cls, obj): raise TypeError("Don't know how to convert type %s to TaskManager" % type(obj)) @classmethod - def from_dict(cls, d): + def from_dict(cls, d: dict) -> TaskManager: """Create an instance from a dictionary.""" return cls(**{k: v for k, v in d.items() if k in cls.ENTRIES}) @pmg_serialize - def as_dict(self): + def as_dict(self) -> dict: return copy.deepcopy(self._kwargs) def __init__(self, **kwargs): """ Args: policy:None - qadapters:List of qadapters in YAML format - db_connector:Dictionary with data used to connect to the database (optional) + qadapters: List of qadapters in YAML format """ # Keep a copy of kwargs self._kwargs = copy.deepcopy(kwargs) @@ -644,7 +725,7 @@ def __init__(self, **kwargs): self.policy = TaskPolicy.as_policy(kwargs.pop("policy", None)) # Initialize database connector (if specified) - self.db_connector = DBConnector(**kwargs.pop("db_connector", {})) + #self.db_connector = DBConnector(**kwargs.pop("db_connector", {})) # Build list of QAdapters. Neglect entry if priority == 0 or `enabled: no" qads = [] @@ -669,21 +750,15 @@ def __init__(self, **kwargs): self._qads, self._qadpos = tuple(qads), 0 - # Initialize the qadapter for batch script submission. - d = kwargs.pop("batch_adapter", None) - self.batch_adapter = None - if d: self.batch_adapter = make_qadapter(**d) - #print("batch_adapter", self.batch_adapter) - if kwargs: raise ValueError("Found invalid keywords in the taskmanager file:\n %s" % str(list(kwargs.keys()))) @lazy_property - def abinit_build(self): + def abinit_build(self) -> AbinitBuild: """:class:`AbinitBuild` object with Abinit version and options used to build the code""" return AbinitBuild(manager=self) - def to_shell_manager(self, mpi_procs=1): + def to_shell_manager(self, mpi_procs: int = 1) -> TaskManager: """ Returns a new |TaskManager| with the same parameters as self but replace the :class:`QueueAdapter` with a :class:`ShellAdapter` with mpi_procs so that we can submit the job without passing through the queue. @@ -728,30 +803,37 @@ def to_shell_manager(self, mpi_procs=1): return new - def new_with_fixed_mpi_omp(self, mpi_procs, omp_threads): + def new_with_fixed_mpi_omp(self, mpi_procs: int, omp_threads: int) -> TaskManager: """ Return a new `TaskManager` in which autoparal has been disabled. - The jobs will be executed with `mpi_procs` MPI processes and `omp_threads` OpenMP threads. - Useful for generating input files for benchmarks. + The Task will be executed with `mpi_procs` MPI processes and `omp_threads` OpenMP threads. + Useful for generating input files for benchmarks or enforcing a certain number of procs + if the Task does not support autoparal. """ new = self.deepcopy() new.policy.autoparal = 0 new.set_mpi_procs(mpi_procs) new.set_omp_threads(omp_threads) + + # Change min/max cores just to be consistent. + for qad in new._qads: + qad.min_cores = mpi_procs * omp_threads + qad.max_cores = mpi_procs * omp_threads + return new @property - def has_queue(self): + def has_queue(self) -> bool: """True if we are submitting jobs via a queue manager.""" return self.qadapter.QTYPE.lower() != "shell" @property - def qads(self): - """List of :class:`QueueAdapter` objects sorted according to priorities (highest comes first)""" + def qads(self) -> list[QueueAdapter]: + """List of :class:`QueueAdapter` objects sorted according to priorities (highest one comes first)""" return self._qads @property - def qadapter(self): + def qadapter(self) -> QueueAdapter: """The qadapter used to submit jobs.""" return self._qads[self._qadpos] @@ -820,7 +902,7 @@ def _use_qadpos_pconf(self, qadpos, pconf): #self.set_mem_per_proc(pconf.mem_per_proc) return pconf - def __str__(self): + def __str__(self) -> str: """String representation.""" lines = [] app = lines.append @@ -830,60 +912,51 @@ def __str__(self): app("[Qadapter %d]\n%s" % (i, str(qad))) app("Qadapter selected: %d" % self._qadpos) - if self.has_db: - app("[MongoDB database]:") - app(str(self.db_connector)) - return "\n".join(lines) @property - def has_db(self): - """True if we are using MongoDB database""" - return bool(self.db_connector) - - @property - def has_omp(self): + def has_omp(self) -> bool: """True if we are using OpenMP parallelization.""" return self.qadapter.has_omp @property - def num_cores(self): + def num_cores(self) -> int: """Total number of CPUs used to run the task.""" return self.qadapter.num_cores @property - def mpi_procs(self): + def mpi_procs(self) -> int: """Number of MPI processes.""" return self.qadapter.mpi_procs @property - def mem_per_proc(self): + def mem_per_proc(self) -> float: """Memory per MPI process.""" return self.qadapter.mem_per_proc @property - def omp_threads(self): + def omp_threads(self) -> int: """Number of OpenMP threads""" return self.qadapter.omp_threads - def deepcopy(self): + def deepcopy(self) -> TaskManager: """Deep copy of self.""" return copy.deepcopy(self) - def set_mpi_procs(self, mpi_procs): + def set_mpi_procs(self, mpi_procs: int) -> None: """Set the number of MPI processes to use.""" self.qadapter.set_mpi_procs(mpi_procs) - def set_omp_threads(self, omp_threads): + def set_omp_threads(self, omp_threads: int) -> None: """Set the number of OpenMp threads to use.""" self.qadapter.set_omp_threads(omp_threads) - def set_mem_per_proc(self, mem_mb): + def set_mem_per_proc(self, mem_mb: float) -> None: """Set the memory (in Megabytes) per CPU.""" self.qadapter.set_mem_per_proc(mem_mb) @property - def max_cores(self): + def max_cores(self) -> int: """ Maximum number of cores that can be used. This value is mainly used in the autoparal part to get the list of possible configurations. @@ -904,7 +977,7 @@ def cancel(self, job_id): """Cancel the job. Returns exit status.""" return self.qadapter.cancel(job_id) - def write_jobfile(self, task, **kwargs): + def write_jobfile(self, task: Task, **kwargs) -> str: """ Write the submission script. Return the path of the script @@ -922,7 +995,7 @@ def write_jobfile(self, task, **kwargs): executable=task.executable, qout_path=task.qout_file.path, qerr_path=task.qerr_file.path, - stdin=task.files_file.path, + in_file=task.input_file.path, stdout=task.log_file.path, stderr=task.stderr_file.path, exec_args=kwargs.pop("exec_args", []), @@ -934,15 +1007,14 @@ def write_jobfile(self, task, **kwargs): task.job_file.chmod(0o740) return task.job_file.path - def launch(self, task, **kwargs): + def launch(self, task: Task, **kwargs): """ Build the input files and submit the task via the :class:`Qadapter` Args: task: |Task| object. - Returns: - Process object. + Returns: Process object. """ if task.status == task.S_LOCKED: raise ValueError("You shall not submit a locked task!") @@ -977,10 +1049,6 @@ def launch(self, task, **kwargs): task.set_status(task.S_ERROR, msg="max_num_launches reached: %s" % str(exc)) raise - def get_collection(self, **kwargs): - """Return the MongoDB collection used to store the results.""" - return self.db_connector.get_collection(**kwargs) - def increase_mem(self): # OLD # with GW calculations in mind with GW mem = 10, @@ -990,7 +1058,7 @@ def increase_mem(self): try: self.qadapter.more_mem_per_proc() except QueueAdapterError: - # here we should try to switch to an other qadapter + # here we should try to switch to another qadapter raise ManagerIncreaseError('manager failed to increase mem') def increase_ncpus(self): @@ -1001,7 +1069,7 @@ def increase_ncpus(self): try: self.qadapter.more_cores() except QueueAdapterError: - # here we should try to switch to an other qadapter + # here we should try to switch to another qadapter raise ManagerIncreaseError('manager failed to increase ncpu') def increase_resources(self): @@ -1014,25 +1082,25 @@ def increase_resources(self): try: self.qadapter.more_mem_per_proc() except QueueAdapterError: - # here we should try to switch to an other qadapter + # here we should try to switch to another qadapter raise ManagerIncreaseError('manager failed to increase resources') def exclude_nodes(self, nodes): try: self.qadapter.exclude_nodes(nodes=nodes) except QueueAdapterError: - # here we should try to switch to an other qadapter + # here we should try to switch to another qadapter raise ManagerIncreaseError('manager failed to exclude nodes') def increase_time(self): try: self.qadapter.more_time() except QueueAdapterError: - # here we should try to switch to an other qadapter + # here we should try to switch to another qadapter raise ManagerIncreaseError('manager failed to increase time') -class AbinitBuild(object): +class AbinitBuild: """ This object stores information on the options used to build Abinit @@ -1061,18 +1129,18 @@ def __init__(self, workdir=None, manager=None): manager = TaskManager.as_manager(manager).to_shell_manager(mpi_procs=1) # Build a simple manager to run the job in a shell subprocess - import tempfile - workdir = tempfile.mkdtemp() if workdir is None else workdir + workdir = get_workdir(workdir) # Generate a shell script to execute `abinit -b` stdout = os.path.join(workdir, "run.abo") + script = manager.qadapter.get_script_str( job_name="abinit_b", launch_dir=workdir, executable="abinit", qout_path=os.path.join(workdir, "queue.qout"), qerr_path=os.path.join(workdir, "queue.qerr"), - #stdin=os.path.join(workdir, "run.files"), + #stdin=stdin, stdout=stdout, stderr=os.path.join(workdir, "run.err"), exec_args=["-b"], @@ -1157,9 +1225,12 @@ def yesno2bool(line): # Temporary hack for abinit v9 return True + print("self.info", self.info) + # Parse info. # flavor options were used in Abinit v8 for line in self.info.splitlines(): + print(line) if "Version" in line: self.version = line.split()[-1] if "TRIO flavor" in line: self.has_netcdf = "netcdf" in line @@ -1184,7 +1255,7 @@ def yesno2bool(line): # Temporary hack for abinit v9 #from abipy.core.testing import cmp_version #if cmp_version(self.version, "9.0.0", op=">="): - # self.has_netcdf = True + self.has_netcdf = True def __str__(self): lines = [] @@ -1201,13 +1272,13 @@ def version_ge(self, version_string): def compare_version(self, version_string, op): """Compare Abinit version to `version_string` with operator `op`""" - from pkg_resources import parse_version + from packaging.version import parse as parse_version from monty.operator import operator_from_str op = operator_from_str(op) return op(parse_version(self.version), parse_version(version_string)) -class FakeProcess(object): +class FakeProcess: """ This object is attached to a |Task| instance if the task has not been submitted This trick allows us to simulate a process that is still running so that @@ -1250,7 +1321,7 @@ def as_timedelta(cls, delta): return cls(delta.days, delta.seconds, delta.microseconds) -class TaskDateTimes(object): +class TaskDateTimes: """ Small object containing useful :class:`datetime.datatime` objects associated to important events. @@ -1340,7 +1411,8 @@ class Task(Node, metaclass=abc.ABCMeta): prefix = Prefix(pj("indata", "in"), pj("outdata", "out"), pj("tmpdata", "tmp")) del Prefix, pj - def __init__(self, input, workdir=None, manager=None, deps=None): + def __init__(self, input: AbinitInput, + workdir=None, manager=None, deps=None): """ Args: input: |AbinitInput| object. @@ -1391,8 +1463,10 @@ def __getstate__(self): return {k: v for k, v in self.__dict__.items() if k not in ["_process"]} #@check_spectator - def set_workdir(self, workdir, chroot=False): - """Set the working directory. Cannot be set more than once unless chroot is True""" + def set_workdir(self, workdir: str, chroot=False): + """ + Set the working directory. Cannot be set more than once unless chroot is True + """ if not chroot and hasattr(self, "workdir") and self.workdir != workdir: raise ValueError("self.workdir != workdir: %s, %s" % (self.workdir, workdir)) @@ -1401,7 +1475,6 @@ def set_workdir(self, workdir, chroot=False): # Files required for the execution. self.input_file = File(os.path.join(self.workdir, "run.abi")) self.output_file = File(os.path.join(self.workdir, "run.abo")) - self.files_file = File(os.path.join(self.workdir, "run.files")) self.job_file = File(os.path.join(self.workdir, "job.sh")) self.log_file = File(os.path.join(self.workdir, "run.log")) self.stderr_file = File(os.path.join(self.workdir, "run.err")) @@ -1415,20 +1488,29 @@ def set_workdir(self, workdir, chroot=False): self.outdir = Directory(os.path.join(self.workdir, "outdata")) self.tmpdir = Directory(os.path.join(self.workdir, "tmpdata")) - # stderr and output file of the queue manager. Note extensions. + # stderr and output file of the queue manager. Note file extensions. self.qerr_file = File(os.path.join(self.workdir, "queue.qerr")) self.qout_file = File(os.path.join(self.workdir, "queue.qout")) - def set_manager(self, manager): - """Set the |TaskManager| used to launch the Task.""" + def set_manager(self, manager: TaskManager) -> None: + """ + Set the |TaskManager| used to launch this Task. + Also, change the limits in the QueueAdapters if task class is found in `limits_for_task_class`. + """ self.manager = manager.deepcopy() + cls_name = self.__class__.__name__ + for qad in self.manager.qads: + tclass_limits = qad.limits_for_task_class.get(cls_name, None) + if tclass_limits: + qad.update_limits(tclass_limits) + @property - def work(self): + def work(self) -> Work: """The |Work| containing this `Task`.""" return self._work - def set_work(self, work): + def set_work(self, work: Work): """Set the |Work| associated to this |Task|.""" if not hasattr(self, "_work"): self._work = work @@ -1437,43 +1519,44 @@ def set_work(self, work): raise ValueError("self._work != work") @property - def flow(self): + def flow(self) -> Flow: """The |Flow| containing this |Task|.""" return self.work.flow @lazy_property - def pos(self): - """The position of the task in the |Flow|""" + def pos(self) -> int: + """The position of the task inside the |Flow|""" for i, task in enumerate(self.work): if self == task: return self.work.pos, i raise ValueError("Cannot find the position of %s in flow %s" % (self, self.flow)) @property - def pos_str(self): + def pos_str(self) -> str: """String representation of self.pos""" return "w" + str(self.pos[0]) + "_t" + str(self.pos[1]) @property - def num_launches(self): + def num_launches(self) -> int: """ Number of launches performed. This number includes both possible ABINIT restarts - as well as possible launches done due to errors encountered with the resource manager + and possible launches done due to errors encountered with the resource manager or the hardware/software.""" return sum(q.num_launches for q in self.manager.qads) @property - def input(self): - """AbinitInput object.""" + def input(self) -> AbinitInput: + """|AbinitInput| object.""" return self._input - def get_inpvar(self, varname, default=None): + def get_inpvar(self, varname: str, default=None): """Return the value of the ABINIT variable varname, None if not present.""" return self.input.get(varname, default) - def set_vars(self, *args, **kwargs): + def set_vars(self, *args, **kwargs) -> dict: """ - Set the values of the ABINIT variables in the input file. Return dict with old values. + Set the values of the ABINIT variables in the input file. + Return dict with old values. """ kwargs.update(dict(*args)) old_values = {vname: self.input.get(vname) for vname in kwargs} @@ -1489,20 +1572,20 @@ def initial_structure(self): """Initial structure of the task.""" return self.input.structure - def make_input(self, with_header=False): - """Construct the input file of the calculation.""" + def make_input(self, with_header=False) -> str: + """return string the input file of the calculation.""" s = str(self.input) if with_header: s = str(self) + "\n" + s return s - def ipath_from_ext(self, ext): + def ipath_from_ext(self, ext: str) -> str: """ Returns the path of the input file with extension ext. Use it when the file does not exist yet. """ return os.path.join(self.workdir, self.prefix.idata + "_" + ext) - def opath_from_ext(self, ext): + def opath_from_ext(self, ext: str) -> str: """ Returns the path of the output file with extension ext. Use it when the file does not exist yet. @@ -1511,12 +1594,12 @@ def opath_from_ext(self, ext): @property @abc.abstractmethod - def executable(self): + def executable(self) -> str: """ Path to the executable associated to the task (internally stored in self._executable). """ - def set_executable(self, executable): + def set_executable(self, executable: str) -> None: """Set the executable associate to this task.""" self._executable = executable @@ -1529,33 +1612,33 @@ def process(self): return FakeProcess() @property - def is_abinit_task(self): + def is_abinit_task(self) -> bool: """True if this task is a subclass of AbinitTask.""" return isinstance(self, AbinitTask) @property - def is_anaddb_task(self): + def is_anaddb_task(self) -> bool: """True if this task is a subclass of OpticTask.""" return isinstance(self, AnaddbTask) @property - def is_optic_task(self): + def is_optic_task(self) -> bool: """True if this task is a subclass of OpticTask.""" return isinstance(self, OpticTask) @property - def is_completed(self): + def is_completed(self) -> bool: """True if the task has been executed.""" return self.status >= self.S_DONE @property - def can_run(self): + def can_run(self) -> bool: """The task can run if its status is < S_SUB and all the other dependencies (if any) are done!""" all_ok = all(stat == self.S_OK for stat in self.deps_status) return self.status < self.S_SUB and self.status != self.S_LOCKED and all_ok #@check_spectator - def cancel(self): + def cancel(self) -> int: """Cancel the job. Returns 1 if job was cancelled.""" if self.queue_id is None: return 0 if self.status >= self.S_DONE: return 0 @@ -1570,19 +1653,20 @@ def cancel(self): self.reset() return 1 - def with_fixed_mpi_omp(self, mpi_procs, omp_threads): + def with_fixed_mpi_omp(self, mpi_procs: int, omp_threads: int) -> None: """ Disable autoparal and force execution with `mpi_procs` MPI processes and `omp_threads` OpenMP threads. Useful for generating benchmarks. + or for dealing with calculations that do not support autoparal. """ manager = self.manager if hasattr(self, "manager") else self.flow.manager self.manager = manager.new_with_fixed_mpi_omp(mpi_procs, omp_threads) - #def set_max_ncores(self, max_ncores): + #def set_max_ncores(self, max_ncores, om_threads): # """ # """ - # manager = self.manager if hasattr(self, "manager") else self.flow.manager - # self.manager = manager.new_with_max_ncores(mpi_procs, omp_threads) + # new_manager = self.manager.new_with_fixed_mpi_omp(mpi_procs, omp_threads) + # self.set_manager(new_manager) #@check_spectator def _on_done(self): @@ -1592,12 +1676,10 @@ def _on_done(self): def _on_ok(self): # Fix output file names. self.fix_ofiles() + self.finalized = True # Get results results = self.on_ok() - - self.finalized = True - return results #@check_spectator @@ -1608,15 +1690,13 @@ def on_ok(self): Returns: Dictionary that must contain at least the following entries: - returncode: - 0 on success. - message: - a string that should provide a human-readable description of what has been performed. + returncode: 0 on success. + message: a string that should provide a human-readable description of what has been performed. """ return dict(returncode=0, message="Calling on_all_ok of the base class!") #@check_spectator - def fix_ofiles(self): + def fix_ofiles(self) -> None: """ This method is called when the task reaches S_OK. It changes the extension of particular output files @@ -1637,8 +1717,7 @@ def _restart(self, submit=True): """ Called by restart once we have finished preparing the task for restarting. - Return: - True if task has been restarted + Return: True if task has been restarted """ self.set_status(self.S_READY, msg="Restarted on %s" % time.asctime()) @@ -1662,7 +1741,7 @@ def _restart(self, submit=True): return fired #@check_spectator - def restart(self): + def restart(self) -> int: """ Restart the calculation. Subclasses should provide a concrete version that performs all the actions needed for preparing the restart and then calls self._restart @@ -1674,7 +1753,7 @@ def restart(self): self.history.debug("Calling the **empty** restart method of the base class") return 0 - def poll(self): + def poll(self) -> int: """Check if child process has terminated. Set and return returncode attribute.""" self._returncode = self.process.poll() @@ -1683,7 +1762,7 @@ def poll(self): return self._returncode - def wait(self): + def wait(self) -> int: """Wait for child process to terminate. Set and return returncode attribute.""" self._returncode = self.process.wait() try: @@ -1694,7 +1773,7 @@ def wait(self): return self._returncode - def communicate(self, input=None): + def communicate(self, input=None) -> tuple: """ Interact with process: Send data to stdin. Read data from stdout and stderr, until end-of-file is reached. Wait for process to terminate. The optional input argument should be a string to be sent to the @@ -1708,14 +1787,14 @@ def communicate(self, input=None): return stdoutdata, stderrdata - def kill(self): + def kill(self) -> None: """Kill the child.""" self.process.kill() self.set_status(self.S_ERROR, "status set to ERROR by task.kill") self._returncode = self.process.returncode @property - def returncode(self): + def returncode(self) -> int: """ The child return code, set by poll() and wait() (and indirectly by communicate()). A None value indicates that the process hasn't terminated yet. @@ -1726,7 +1805,7 @@ def returncode(self): except AttributeError: return 0 - def reset(self): + def reset(self) -> int: """ Reset the task status. Mainly used if we made a silly mistake in the initial setup of the queue manager and we want to fix it and rerun the task. @@ -1780,36 +1859,40 @@ def set_qjob(self, qjob): self._qjob = qjob @property - def has_queue(self): + def has_queue(self) -> bool: """True if we are submitting jobs via a queue manager.""" return self.manager.qadapter.QTYPE.lower() != "shell" @property - def num_cores(self): + def num_cores(self) -> int: """Total number of CPUs used to run the task.""" return self.manager.num_cores @property - def mpi_procs(self): + def mpi_procs(self) -> int: """Number of CPUs used for MPI.""" return self.manager.mpi_procs @property - def omp_threads(self): + def omp_threads(self) -> int: """Number of CPUs used for OpenMP.""" return self.manager.omp_threads @property - def mem_per_proc(self): + def mem_per_proc(self) -> Memory: """Memory per MPI process.""" - return Memory(self.manager.mem_per_proc, "Mb") + try: + mem = Memory(self.manager.mem_per_proc, "MB") + except UnitError: # For older versions of pymatgen + mem = Memory(self.manager.mem_per_proc, "Mb") + return mem @property def status(self): """Gives the status of the task.""" return self._status - def lock(self, source_node): + def lock(self, source_node: None) -> None: """Lock the task, source is the |Node| that applies the lock.""" if self.status != self.S_INIT: raise ValueError("Trying to lock a task with status %s" % self.status) @@ -1817,7 +1900,7 @@ def lock(self, source_node): self._status = self.S_LOCKED self.history.info("Locked by node %s", source_node) - def unlock(self, source_node, check_status=True): + def unlock(self, source_node: None, check_status=True) -> None: """ Unlock the task, set its status to `S_READY` so that the scheduler can submit it. source_node is the |Node| that removed the lock @@ -1831,7 +1914,7 @@ def unlock(self, source_node, check_status=True): self.history.info("Unlocked by %s", source_node) #@check_spectator - def set_status(self, status, msg): + def set_status(self, status: Status, msg: str) -> Status: """ Set and return the status of the task. @@ -1868,8 +1951,12 @@ def set_status(self, status, msg): if changed: if status == self.S_SUB: self.datetimes.submission = datetime.datetime.now() - self.history.info("Submitted with MPI=%s, Omp=%s, Memproc=%.1f [Gb] %s " % ( - self.mpi_procs, self.omp_threads, self.mem_per_proc.to("Gb"), msg)) + try: + self.history.info("Submitted with MPI=%s, Omp=%s, Memproc=%.1f [GB] %s " % ( + self.mpi_procs, self.omp_threads, self.mem_per_proc.to("GB"), msg)) + except (KeyError, UnitError): + self.history.info("Submitted with MPI=%s, Omp=%s, Memproc=%.1f [Gb] %s " % ( + self.mpi_procs, self.omp_threads, self.mem_per_proc.to("Gb"), msg)) elif status == self.S_OK: self.history.info("Task completed %s", msg) @@ -1889,21 +1976,20 @@ def set_status(self, status, msg): self._on_done() if status == self.S_OK: - # Finalize the task. - if not self.finalized: - self._on_ok() - # here we remove the output files of the task and of its parents. + if not self.finalized: self._on_ok() + + # Note that _on_ok might have changed the status. + if self.status == self.S_OK: if self.gc is not None and self.gc.policy == "task": + # remove the output files of the task and of its parents. self.clean_output_files() - if self.status == self.S_OK: - # Because _on_ok might have changed the status. self.send_signal(self.S_OK) return status - def check_status(self): + def check_status(self) -> Status: """ This function checks the status of the task by inspecting the output and the error files produced by the application and by the queue manager. @@ -1959,10 +2045,10 @@ def check_status(self): return self.set_status(self.S_ABICRITICAL, msg=msg) if report is None: - return self.set_status(self.S_ERROR, msg="got None report!") + return self.set_status(self.S_ERROR, msg="Got None report!") if report.run_completed: - # Here we set the correct timing data reported by Abinit + # Here we set the correct timing data reported by Abinit self.datetimes.start = report.start_datetime self.datetimes.end = report.end_datetime @@ -2085,7 +2171,7 @@ def speed_up(self): """ return False - def out_to_in(self, out_file): + def out_to_in(self, out_file: str) -> str: """ Move an output file to the output data directory of the `Task` and rename the file so that ABINIT will read it as an input data file. @@ -2102,7 +2188,7 @@ def out_to_in(self, out_file): os.rename(out_file, dest) return dest - def inlink_file(self, filepath): + def inlink_file(self, filepath: str) -> None: """ Create a symbolic link to the specified file in the directory containing the input files of the task. @@ -2126,7 +2212,7 @@ def inlink_file(self, filepath): if os.path.realpath(infile) != filepath: raise self.Error("infile %s does not point to filepath %s" % (infile, filepath)) - def make_links(self): + def make_links(self) -> None: """ Create symbolic links to the output files produced by the other tasks. @@ -2139,7 +2225,7 @@ def make_links(self): filepaths, exts = dep.get_filepaths_and_exts() for path, ext in zip(filepaths, exts): - self.history.info("Need path %s with ext %s" % (path, ext)) + self.history.info(f"Need path `{path}` with extension: `{ext}`") dest = self.ipath_from_ext(ext) if not os.path.exists(path): @@ -2154,7 +2240,7 @@ def make_links(self): if path.endswith(".nc") and not dest.endswith(".nc"): # NC --> NC file dest += ".nc" - # Link path to dest if dest link does not exist. + # Link path to dest if dest link does not exist # else check that it points to the expected file. self.history.debug("Linking path %s --> %s" % (path, dest)) if not os.path.exists(dest): @@ -2170,7 +2256,7 @@ def make_links(self): def setup(self): """Public method called before submitting the task.""" - def _setup(self): + def _setup(self) -> None: """ This method calls self.setup after having performed additional operations such as the creation of the symbolic links needed to connect different tasks. @@ -2178,7 +2264,7 @@ def _setup(self): self.make_links() self.setup() - def get_event_report(self, source="log"): + def get_event_report(self, source="log") -> events.EventsParser: """ Analyzes the main logfile of the calculation for possible Errors or Warnings. If the ABINIT abort file is found, the error found in this file are added to @@ -2237,6 +2323,7 @@ def get_event_report(self, source="log"): self.set_status(self.S_ABICRITICAL, msg=msg) return parser.report_exception(ofile.path, exc) + # FIXME: Remove this API def get_results(self, **kwargs): """ Returns :class:`NodeResults` instance. @@ -2252,7 +2339,7 @@ def get_results(self, **kwargs): return self.Results.from_node(self) - def move(self, dest, is_abspath=False): + def move(self, dest, is_abspath=False) -> None: """ Recursively move self.workdir to another location. This is similar to the Unix "mv" command. The destination path must not already exist. If the destination already exists @@ -2266,23 +2353,23 @@ def move(self, dest, is_abspath=False): shutil.move(self.workdir, dest) - def in_files(self): + def in_files(self) -> list[str]: """Return all the input data files used.""" return self.indir.list_filepaths() - def out_files(self): + def out_files(self) -> list[str]: """Return all the output data files produced.""" return self.outdir.list_filepaths() - def tmp_files(self): + def tmp_files(self) -> list[str]: """Return all the input data files produced.""" return self.tmpdir.list_filepaths() - def path_in_workdir(self, filename): + def path_in_workdir(self, filename) -> str: """Create the absolute path of filename in the top-level working directory.""" return os.path.join(self.workdir, filename) - def rename(self, src_basename, dest_basename, datadir="outdir"): + def rename(self, src_basename, dest_basename, datadir="outdir") -> None: """ Rename a file located in datadir. @@ -2301,7 +2388,7 @@ def rename(self, src_basename, dest_basename, datadir="outdir"): os.rename(src, dest) #@check_spectator - def build(self, *args, **kwargs): + def build(self, *args, **kwargs) -> None: """ Creates the working directory and the input files of the |Task|. It does not overwrite files if they already exist. @@ -2311,15 +2398,32 @@ def build(self, *args, **kwargs): self.outdir.makedirs() self.tmpdir.makedirs() - # Write files file and input file. - if not self.files_file.exists: - self.files_file.write(self.filesfile_string) - self.input_file.write(self.make_input()) + + # Write input in JSON format so that we can read it if we need to change it + #with open(self.path_in_workdir("run.abi.json"), "wt") as fh: + # d = self.input.as_dict() + # json.write(d, fh, indent=4) + self.manager.write_jobfile(self) + # Add README.md file if set + readme_md = getattr(self, "readme_md", None) + if readme_md is not None: + with open(self.path_in_workdir("README.md"), "wt") as fh: + fh.write(readme_md) + + # Add abipy_meta.json file if set + data = getattr(self, "abipy_meta_json", None) + if data is None: data = {} + if hasattr(self.input, "as_dict"): + data["_input"] = self.input.as_dict() + else: + print("WARNING: Input object does not provide as_dict method!") + self.write_json_in_workdir("abipy_meta.json", data) + #@check_spectator - def rmtree(self, exclude_wildcard=""): + def rmtree(self, exclude_wildcard: str = "") -> str: """ Remove all files and directories in the working directory @@ -2340,7 +2444,7 @@ def rmtree(self, exclude_wildcard=""): if not w.match(fname): os.remove(filepath) - def remove_files(self, *filenames): + def remove_files(self, *filenames) -> str: """Remove all the files listed in filenames.""" filenames = list_strings(filenames) @@ -2350,7 +2454,7 @@ def remove_files(self, *filenames): filepath = os.path.join(dirpath, fname) os.remove(filepath) - def clean_output_files(self, follow_parents=True): + def clean_output_files(self, follow_parents=True) -> list[str]: """ This method is called when the task reaches S_OK. It removes all the output files produced by the task that are not needed by its children as well as the output files @@ -2409,7 +2513,7 @@ def setup(self): # noqa: E731,F811 """Base class does not provide any hook.""" #@check_spectator - def start(self, **kwargs): + def start(self, **kwargs) -> int: """ Starts the calculation by performing the following steps: @@ -2491,7 +2595,7 @@ def start(self, **kwargs): self._process = self.manager.launch(self, **kwargs) return 1 - def start_and_wait(self, *args, **kwargs): + def start_and_wait(self, *args, **kwargs) -> int: """ Helper method to start the task and wait for completion. @@ -2596,6 +2700,42 @@ def node_kwargs(node): return fg + def get_dataframe(self, as_dict: bool = False) -> Union[pd.DataFrame, dict]: + """ + Return pandas dataframe with task info or dictionary if as_dict is True. + This function should be called after task.get_status to update the status. + """ + from abipy.tools.duck import getattrd + task_attrs = [ + "node_id", "name", "status", "task_class", + "mpi_procs", "omp_threads", + "num_launches", "num_restarts", "num_corrections", + "queue_id", "qname", + ] + + def _getattr(task, aname): + if aname == "task_class": return getattrd(task, "__class__.__name__") + attr = getattr(task, aname) + if aname == "status": return str(attr) + return attr + + d = {aname: _getattr(self, aname) for aname in task_attrs} + + timedelta = self.datetimes.get_runtime() + d["task_runtime_s"] = timedelta.total_seconds() if timedelta else -1 + timedelta = self.datetimes.get_time_inqueue() + d["task_queue_time_s"] = timedelta.total_seconds() if timedelta else -1 + d["submission_datetime"] = self.datetimes.submission + d["start_datetime"] = self.datetimes.start + d["end_datetime"] = self.datetimes.end + + d["work_idx"] = self.pos[0] + d["task_widx"] = self.pos[1] + + if as_dict: return d + + return pd.DataFrame(d, index=[0]) + class DecreaseDemandsError(Exception): """ @@ -2605,12 +2745,12 @@ class DecreaseDemandsError(Exception): class AbinitTask(Task): """ - Base class defining an ABINIT calculation + Base class for ABINIT Tasks. """ Results = TaskResults @classmethod - def from_input(cls, input, workdir=None, manager=None): + def from_input(cls, input: AbinitInput, workdir=None, manager=None) -> AbinitTask: """ Create an instance of `AbinitTask` from an ABINIT input. @@ -2622,7 +2762,8 @@ def from_input(cls, input, workdir=None, manager=None): return cls(input, workdir=workdir, manager=manager) @classmethod - def temp_shell_task(cls, inp, mpi_procs=1, workdir=None, manager=None): + def temp_shell_task(cls, inp: AbinitInput, + mpi_procs=1, workdir=None, manager=None) -> AbinitTask: """ Build a Task with a temporary workdir. The task is executed via the shell with 1 MPI proc. Mainly used for invoking Abinit to get important parameters needed to prepare the real task. @@ -2631,8 +2772,7 @@ def temp_shell_task(cls, inp, mpi_procs=1, workdir=None, manager=None): mpi_procs: Number of MPI processes to use. """ # Build a simple manager to run the job in a shell subprocess - import tempfile - workdir = tempfile.mkdtemp() if workdir is None else workdir + workdir = get_workdir(workdir) if manager is None: manager = TaskManager.from_user_config() # Construct the task and run it @@ -2640,7 +2780,7 @@ def temp_shell_task(cls, inp, mpi_procs=1, workdir=None, manager=None): task.set_name('temp_shell_task') return task - def setup(self): + def setup(self) -> None: """ Abinit has the very *bad* habit of changing the file extension by appending the characters in [A,B ..., Z] to the output file, and this breaks a lot of code that relies of the use of a unique file extension. @@ -2667,7 +2807,7 @@ def rename_file(afile): self.history.info("\n".join(logs)) @property - def executable(self): + def executable(self) -> str: """Path to the executable required for running the Task.""" try: return self._executable @@ -2680,22 +2820,22 @@ def pseudos(self): return self.input.pseudos @property - def isnc(self): + def isnc(self) -> bool: """True if norm-conserving calculation.""" return self.input.isnc @property - def ispaw(self): + def ispaw(self) -> bool: """True if PAW calculation""" return self.input.ispaw @property - def is_gs_task(self): + def is_gs_task(self) -> bool: """True if task is GsTask subclass.""" return isinstance(self, GsTask) @property - def is_dfpt_task(self): + def is_dfpt_task(self) -> bool: """True if task is a DftpTask subclass.""" return isinstance(self, DfptTask) @@ -2705,17 +2845,14 @@ def cycle_class(self): Return the subclass of ScfCycle associated to the task or None if no SCF algorithm if associated to the task. """ - if isinstance(self, RelaxTask): - return abiinspect.Relaxation - elif isinstance(self, GsTask): - return abiinspect.GroundStateScfCycle - elif self.is_dfpt_task: - return abiinspect.D2DEScfCycle + if isinstance(self, RelaxTask): return abiinspect.Relaxation + if isinstance(self, GsTask): return abiinspect.GroundStateScfCycle + if self.is_dfpt_task: return abiinspect.D2DEScfCycle return None @property - def filesfile_string(self): + def filesfile_string(self) -> str: """String with the list of files and prefixes needed to execute ABINIT.""" lines = [] app = lines.append @@ -2732,8 +2869,7 @@ def filesfile_string(self): # Here we reorder the pseudos if the order is wrong. ord_pseudos = [] - znucl = [specie.number for specie in - self.input.structure.types_of_specie] + znucl = [specie.number for specie in self.input.structure.species_by_znucl] for z in znucl: for p in self.pseudos: @@ -2748,7 +2884,7 @@ def filesfile_string(self): return "\n".join(lines) - def set_pconfs(self, pconfs): + def set_pconfs(self, pconfs) -> None: """Set the list of autoparal configurations.""" self._pconfs = pconfs @@ -2766,7 +2902,16 @@ def uses_paral_kgb(self, value=1): # paral_kgb is used only in the GS part. return paral_kgb == value and isinstance(self, GsTask) - def _change_structure(self, new_structure): + def get_panel(self, **kwargs): + """ + Build panel with widgets to interact with the Task either in a notebook or in panel app. + This is the implementation provided by the base class. + Subclasses may provide specialized implementations. + """ + from abipy.panels.tasks import TaskPanel + return TaskPanel(task=self).get_panel(**kwargs) + + def _change_structure(self, new_structure: Structure) -> None: """Change the input structure.""" # Compare new and old structure for logging purpose. # TODO: Write method of structure to compare self and other and return a dictionary @@ -2801,7 +2946,7 @@ def _change_structure(self, new_structure): self.input.set_structure(new_structure) #assert self.input.structure == new_structure - def autoparal_run(self): + def autoparal_run(self) -> int: """ Find an optimal set of parameters for the execution of the task This method can change the ABINIT input variables and/or the @@ -2864,6 +3009,9 @@ def autoparal_run(self): self.history.critical("Error while parsing Autoparal section:\n%s" % straceback()) return 2 + if "paral_kgb" not in self.input: + self.input.set_vars(paral_kgb=pconfs.info.get("paral_kgb", 0)) + ###################################################### # Select the optimal configuration according to policy ###################################################### @@ -2877,7 +3025,7 @@ def autoparal_run(self): # Write autoparal configurations to JSON file. d = pconfs.as_dict() d["optimal_conf"] = optconf - json_pretty_dump(d, os.path.join(self.workdir, "autoparal.json")) + #json_pretty_dump(d, os.path.join(self.workdir, "autoparal.json")) ############## # Finalization @@ -2940,7 +3088,7 @@ def select_files(self, what="o"): return selected - def restart(self): + def restart(self) -> None: """ general restart used when scheduler problems have been taken care of """ @@ -2986,7 +3134,7 @@ def move_file(f): return self._restart(submit=False) #@check_spectator - def fix_abicritical(self): + def fix_abicritical(self) -> int: """ method to fix crashes/error caused by abinit @@ -3030,7 +3178,7 @@ def fix_abicritical(self): return 0 #@check_spectator - def fix_queue_critical(self): + def fix_queue_critical(self) -> int: """ This function tries to fix critical events originating from the queue submission system. @@ -3167,28 +3315,39 @@ def fix_queue_critical(self): return 0 - def parse_timing(self): + def parse_timing(self) -> Union[AbinitTimerParser, None]: """ Parse the timer data in the main output file of Abinit. Requires timopt /= 0 in the input file (usually timopt = -1) Return: :class:`AbinitTimerParser` instance, None if error. """ - parser = AbinitTimerParser() read_ok = parser.parse(self.output_file.path) if read_ok: return parser return None + def get_output_file(self): + """ + Parse the main output file in text format, return AbinitOutputFile object. + + example: + + with task.get_output_file() as out: + dims_dataset, spginfo_dataset = out.get_dims_spginfo_dataset(verbose=0) + """ + from abipy.abio.outputs import AbinitOutputFile + return AbinitOutputFile(self.output_file.path) + -class ProduceHist(object): +class ProduceHist: """ - Mixin class for a |Task| producing a HIST file. + Mixin class for a |Task| producing HIST files. Provide the method `open_hist` that reads and return a HIST file. """ @property - def hist_path(self): + def hist_path(self) -> str: """Absolute path of the HIST file. Empty string if file is not present.""" # Lazy property to avoid multiple calls to has_abiext. try: @@ -3219,11 +3378,12 @@ def open_hist(self): class GsTask(AbinitTask): """ - Base class for ground-state tasks. A ground state task produces a GSR file - Provides the method `open_gsr` that reads and returns a GSR file. + Base class for ground-state calculations. + A GsTask produces a GSR file and provides the `open_gsr` method to read a GSR.nc file. """ + @property - def gsr_path(self): + def gsr_path(self) -> str: """Absolute path of the GSR file. Empty string if file is not present.""" # Lazy property to avoid multiple calls to has_abiext. try: @@ -3235,7 +3395,7 @@ def gsr_path(self): def open_gsr(self): """ - Open the GSR file located in the in self.outdir. + Open the GSR file located in the outdir of the task Returns |GsrFile| object, None if file could not be found or file is not readable. """ gsr_path = self.gsr_path @@ -3252,11 +3412,65 @@ def open_gsr(self): self.history.critical("Exception while reading GSR file at %s:\n%s" % (gsr_path, str(exc))) return None + def change_ks_solver_params_if_needed(self, is_scf_cycle: bool) -> None: + """ + This method is called every time we perform a restart of the Task. + It changes some parameters governing the KS eigenvalue solver in order to facilitate + convergence without necessarily making the calculation faster. + Note that we operate on the algorithmic aspects without changing the physics or + the convergence criteria. + + Args: + is_scf_cycle: True if this is a SCF calculation else NSCF run. + """ + self.history.info("Changing some parameters of the KS solver as iteration did not converge...") + + # Increase number of iterations if below 30. + nstep = self.input.get("nstep", 30) + if nstep <= 30: + self.set_vars(nstep=50) + + # Deactivate RMM-DIIS if we are using it as CG/LOBPCG are more stable. + rmm_diis = self.input.get("rmm_diis", 0) + if rmm_diis != 0: + self.set_vars(rmm_diis=0) + + # Increase nnsclo if this is the first restart. + nnsclo = self.input.get("nnsclo", 0) + if self.num_restarts == 0 and nnsclo == 0: + self.setvars(nnsclo=2) + + # Increase nline gradually as this is gonna increase the wall-time. Don't go beyond 8. + nline = self.input.get("nline", 4) + if 8 > nline >= 4: + self.set_vars(nline=nline + 2) + + with self.open_gsr() as gsr: + ebands = gsr.ebands + + fundamental_gap_ev, direct_gap_ev = 0.0, 0.0 + if not gsr.ebands.is_metal: + fundamental_gap_ev = min(gap.energy for gap in gsr.ebands.fundamental_gaps) + direct_gap_ev = min(gap.energy for gap in gsr.ebands.direct_gaps) + + #if is_scf_cycle: + # # Try to understand if system has energy gap and change the value of diemac accordingly + # diemac = self.input.get("diemac", 1e6) + # if not gsr.ebands.is_metal: + # new_diemac = diemac_from_gap(gap) + # self.set_vars(diemac=diemac) + #else: + # # NSCF case. Perhaps the problem is due to nbdbuf that is too small + # nbdbuf = self.input.get("nbdbuf", 0) + # if nbdbuf <= 8 + # nbdbuf = 8 + # self.set_vars(nbdbuf=nbdbuf) + class ScfTask(GsTask): """ - Self-consistent ground-state calculations. - Provide support for in-place restart via (WFK|DEN) files + Task for self-consistent GS calculations. + Provide support for in-place restart via (WFK|DEN) files. """ CRITICAL_EVENTS = [ events.ScfConvergenceWarning, @@ -3282,6 +3496,9 @@ def restart(self): # Now we can resubmit the job. self.history.info("Will restart from %s", restart_file) + + #self.change_ks_solver_params_if_needed(self, is_scf_cycle=True) + return self._restart() def inspect(self, **kwargs): @@ -3301,16 +3518,26 @@ def inspect(self, **kwargs): return None - def get_results(self, **kwargs): - results = super().get_results(**kwargs) + def add_ebands_task_to_work(self, work, ndivsm=15, tolwfr=1e-20, nscf_nband=None, nb_extra=10): + """ + Generate an NSCF task for band structure calculation from a GS SCF task and add it to the work. - # Open the GSR file and add its data to results.out - with self.open_gsr() as gsr: - results["out"].update(gsr.as_dict()) - # Add files to GridFS - results.register_gridfs_files(GSR=gsr.filepath) + Args: + work: + ndivsm: if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. + This option is the recommended one if the k-path contains two high symmetry k-points that are very close + as ndivsm > 0 may produce a very large number of wavevectors. + tolwfr: Tolerance on residuals for NSCF calculation. + nscf_nband: Number of bands for NSCF calculation. If None, use nband + nb_extra - return results + return: NscfTask object. + """ + ebands_inp = self.input.make_ebands_input(ndivsm=ndivsm, tolwfr=tolwfr, + nscf_nband=nscf_nband, nb_extra=nb_extra) + + return work.register_nscf_task(ebands_inp, deps={self: "DEN"}) class CollinearThenNonCollinearScfTask(ScfTask): @@ -3340,7 +3567,9 @@ def _on_ok(self): class NscfTask(GsTask): """ - Non-Self-consistent GS calculation. Provide in-place restart via WFK files + Task for non-self-consistent GS calculations. + Provides in-place restart via the WFK file and a specialized setup method + that enforces the same ngfft FFT-mesh as the one used in the previous GS task. """ CRITICAL_EVENTS = [ events.NscfConvergenceWarning, @@ -3354,6 +3583,17 @@ def setup(self): (in principle, it's possible to interpolate inside Abinit but tests revealed some numerical noise Here we change the input file of the NSCF task to have the same FFT mesh. """ + + # Print a warning if nbdbuf is not specified since Abinit default is usually too small. + if "nbdbuf" not in self.input: + msg = """ +nbdbuf is not specified in input, using `nbdbuf = 2 * nspinor` that may be too small!" +As a consequence, the NSCF cycle may have problems to converge the last bands within nstep iterations. +To avoid this problem specify nbdbuf in the input file and adjust nband accordingly. +""" + cprint(msg, color="yellow") + self.history.warning(msg) + for dep in self.deps: if "DEN" in dep.exts: parent_task = dep.node @@ -3362,10 +3602,12 @@ def setup(self): raise RuntimeError("Cannot find parent node producing DEN file") with parent_task.open_gsr() as gsr: - den_mesh = 3 * [None] - den_mesh[0] = gsr.reader.read_dimvalue("number_of_grid_points_vector1") - den_mesh[1] = gsr.reader.read_dimvalue("number_of_grid_points_vector2") - den_mesh[2] = gsr.reader.read_dimvalue("number_of_grid_points_vector3") + if hasattr(gsr, "reader"): + den_mesh = gsr.reader.read_ngfft3() + else: + den_mesh = None + self.history.warning("Cannot read ngfft3 from file. Likely Fortran file!") + if self.ispaw: self.set_vars(ngfftdg=den_mesh) else: @@ -3389,18 +3631,10 @@ def restart(self): # Now we can resubmit the job. self.history.info("Will restart from %s", restart_file) - return self._restart() - - def get_results(self, **kwargs): - results = super().get_results(**kwargs) - # Read the GSR file. - with self.open_gsr() as gsr: - results["out"].update(gsr.as_dict()) - # Add files to GridFS - results.register_gridfs_files(GSR=gsr.filepath) + #self.change_ks_solver_params_if_needed(self, is_scf_cycle=False) - return results + return self._restart() class RelaxTask(GsTask, ProduceHist): @@ -3414,7 +3648,7 @@ class RelaxTask(GsTask, ProduceHist): color_rgb = np.array((255, 61, 255)) / 255 - def get_final_structure(self): + def get_final_structure(self) -> Structure: """Read the final structure from the GSR file.""" try: with self.open_gsr() as gsr: @@ -3521,29 +3755,18 @@ def inspect(self, **kwargs): else: raise ValueError("Wrong value for what %s" % what) - def get_results(self, **kwargs): - results = super().get_results(**kwargs) - - # Open the GSR file and add its data to results.out - with self.open_gsr() as gsr: - results["out"].update(gsr.as_dict()) - # Add files to GridFS - results.register_gridfs_files(GSR=gsr.filepath) - - return results - - def reduce_dilatmx(self, target=1.01): - actual_dilatmx = self.get_inpvar('dilatmx', 1.) - new_dilatmx = actual_dilatmx - min((actual_dilatmx-target), actual_dilatmx*0.05) + def reduce_dilatmx(self, target: float = 1.01) -> None: + actual_dilatmx = self.get_inpvar("dilatmx", 1.0) + new_dilatmx = actual_dilatmx - min((actual_dilatmx - target), actual_dilatmx * 0.05) self.set_vars(dilatmx=new_dilatmx) - def fix_ofiles(self): + def fix_ofiles(self) -> None: """ Note that ABINIT produces lots of out_TIM1_DEN files for each step. - Here we list all TIM*_DEN files, we select the last one and we rename it in out_DEN + Here we list all TIM*_DEN files, we select the last one and we rename it as out_DEN This change is needed so that we can specify dependencies with the syntax {node: "DEN"} - without having to know the number of iterations needed to converge the run in node! + without having to know the number of iterations needed to converge. """ super().fix_ofiles() @@ -3564,11 +3787,11 @@ class DfptTask(AbinitTask): """ Base class for DFPT tasks (Phonons, DdeTask, DdkTask, ElasticTask ...) Mainly used to implement methods that are common to DFPT calculations with Abinit. - Provide the method `open_ddb` that reads and return a Ddb file. + Implement `make_links`, provide restart capabilities and the method `open_ddb`. .. warning:: - This class should not be instantiated directly. + This class is not supposed to be instantiated directly. """ # TODO: # for the time being we don't discern between GS and PhononCalculations. @@ -3576,39 +3799,8 @@ class DfptTask(AbinitTask): events.ScfConvergenceWarning, ] - def __repr__(self): - # Get info about DFT perturbation from input file. - qpt = self.input.get("qpt", [0, 0, 0]) - rfphon = self.input.get("rfphon", 0) - rfatpol = self.input.get("rfatpol", [1, 1]) - rfelfd = self.input.get("rfelfd", 0) - rfstrs = self.input.get("rfstrs", 0) - rfdir = self.input.get("rfdir", [0, 0, 0]) - irdddk = self.input.get("irdddk", 0) - - dfpt_info = "" - if rfphon != 0: - dfpt_info = "qpt: {}, rfphon: {}, rfatpol: {}, rfdir: {}, irdddk: {}".format( - qpt, rfphon, rfatpol, rfdir, irdddk) - - elif rfelfd != 0: - dfpt_info = "qpt: {}, rfelfd: {} rfdir: {}, irdddk: {}".format( - qpt, rfelfd, rfdir, irdddk) - - elif rfstrs != 0: - dfpt_info = "qpt: {}, rfstrs: {}, rfdir: {}, irdddk: {}".format( - qpt, rfstrs, rfdir, irdddk) - - try: - return "<%s, node_id=%s, workdir=%s, %s>" % ( - self.__class__.__name__, self.node_id, self.relworkdir, dfpt_info) - except AttributeError: - # this usually happens when workdir has not been initialized - return "<%s, node_id=%s, workdir=None, %s>" % ( - self.__class__.__name__, self.node_id, dfpt_info) - @property - def ddb_path(self): + def ddb_path(self) -> str: """Absolute path of the DDB file. Empty string if file is not present.""" # Lazy property to avoid multiple calls to has_abiext. try: @@ -3637,18 +3829,38 @@ def open_ddb(self): self.history.critical("Exception while reading DDB file at %s:\n%s" % (ddb_path, str(exc))) return None - def make_links(self): + def make_links(self) -> None: """ Replace the default behaviour of make_links. More specifically, this method - implements the logic required to connect DFPT calculation to `DDK` files. + implements the logic required to connect DFPT calculation to e.g. `DDK` files. Remember that DDK is an extension introduced in AbiPy to deal with the - irdddk input variable and the fact that the 3 files with du/dk produced by Abinit - have a file extension constructed from the number of atom (e.g. 1WF[3natom +1]). + irdddk input variable and the fact that the three files with du/dk produced by Abinit + have a file extension constructed from the number of atoms (e.g. 1WF[3natom +1]). AbiPy uses the user-friendly syntax deps={node: "DDK"} to specify that the children will read the DDK from `node` but this also means that - we have to implement extract logic to handle this case at runtime. - """ + we have to implement extra logic to handle this case at runtime. + """ + natom = len(self.input.structure) + debug = False + + def output_paths_from_regex(task, reg_string): + import re + reg = re.compile(reg_string) + out_filepaths = [] + for path in task.outdir.list_filepaths(): + if reg.match(os.path.basename(path)): + out_filepaths.append(path) + return out_filepaths + + def my_symlink(src, dst): + if debug: print("linking", dst, " to ", src) + if os.path.exists(dst): + #if os.path.realpath(dst) != src: + # raise RuntimeError(f"{src} does not point to {dst}") + return + os.symlink(src, dst) + for dep in self.deps: for d in dep.exts: @@ -3668,7 +3880,34 @@ def make_links(self): infile = self.indir.path_in("in_1WF%d" % ddk_case) if out_ddk.endswith(".nc"): infile = infile + ".nc" - os.symlink(out_ddk, infile) + + my_symlink(out_ddk, infile) + + elif d == "DKDK": + # DKDK corresponds to ipert == dtset%natom + 10, see m_dfpt_looppert. + # In principle we can have 9 entries although d_ij = d_ji + # + # for (ipert > = dtset%natom + 10) we have: + # pertcase = idir + (ipert-dtset%natom-10)*9 + (dtset%natom+6)*3 + # and file extensions 1WFK[pertcase]. + # + ipert = natom + 10 + possible_pertcases = [idir + (ipert - natom - 10) * 9 + (natom + 6) * 3 for idir in range(1, 10)] + ext_list = ["1WF%d" % p for p in possible_pertcases] + + dkdk_task = dep.node + dkdk_filepaths = [] + for ext in ext_list: + p = dkdk_task.outdir.has_abiext(ext) + if p: dkdk_filepaths.append(p) + + if not dkdk_filepaths: + raise RuntimeError("%s didn't produce any DKDK file:" % dkdk_task) + + for out_path in dkdk_filepaths: + infile = self.indir.path_in(os.path.basename(out_path)) + infile = infile.replace("out_", "in_", 1) + my_symlink(out_path, infile) elif d in ("WFK", "WFQ"): gs_task = dep.node @@ -3685,9 +3924,9 @@ def make_links(self): # Ensure link has .nc extension if iomode 3 if out_wfk.endswith(".nc"): bname = bname + ".nc" - #print(d, out_wfk, "bname", bname) if not os.path.exists(self.indir.path_in(bname)): - os.symlink(out_wfk, self.indir.path_in(bname)) + infile = self.indir.path_in(bname) + my_symlink(out_wfk, infile) elif d == "DEN": gs_task = dep.node @@ -3697,27 +3936,31 @@ def make_links(self): infile = self.indir.path_in("in_DEN") if out_wfk.endswith(".nc"): infile = infile + ".nc" if not os.path.exists(infile): - os.symlink(out_wfk, infile) + my_symlink(out_wfk, infile) elif d == "1WF": - gs_task = dep.node - out_wfk = gs_task.outdir.has_abiext("1WF") - if not out_wfk: - raise RuntimeError("%s didn't produce the 1WF file" % gs_task) - dest = self.indir.path_in("in_" + out_wfk.split("_")[-1]) - if out_wfk.endswith(".nc"): dest = dest + ".nc" - if not os.path.exists(dest): - os.symlink(out_wfk, dest) + dfpt_task = dep.node + out_filepaths = output_paths_from_regex(dfpt_task, r"(\w+)_1WF(\d+)(\.nc)?") + + if not out_filepaths: + raise RuntimeError("%s didn't produce the 1WF file" % dfpt_task) + + for out_path in out_filepaths: + infile = self.indir.path_in(os.path.basename(out_path)) + infile = infile.replace("out_", "in_", 1) + my_symlink(out_path, infile) elif d == "1DEN": - gs_task = dep.node - out_wfk = gs_task.outdir.has_abiext("DEN") - if not out_wfk: - raise RuntimeError("%s didn't produce the 1DEN file" % gs_task) - dest = self.indir.path_in("in_" + out_wfk.split("_")[-1]) - if out_wfk.endswith(".nc"): dest = dest + ".nc" - if not os.path.exists(dest): - os.symlink(out_wfk, dest) + dfpt_task = dep.node + out_filepaths = output_paths_from_regex(dfpt_task, r"(\w+)_DEN(\d+)(\.nc)?") + + if not out_filepaths: + raise RuntimeError("%s didn't produce any 1DEN file" % dfpt_task) + + for out_path in out_filepaths: + infile = self.indir.path_in(os.path.basename(out_path)) + infile = infile.replace("out_", "in_", 1) + my_symlink(out_path, infile) else: raise ValueError("Don't know how to handle extension: %s" % str(dep.exts)) @@ -3766,31 +4009,31 @@ def restart(self): class DdeTask(DfptTask): - """Task for DDE calculations (perturbation wrt electric field).""" + """ + Task for DDE calculations (perturbation wrt electric field). + """ color_rgb = np.array((61, 158, 255)) / 255 - def get_results(self, **kwargs): - results = super().get_results(**kwargs) - return results.register_gridfs_file(DDB=(self.outdir.has_abiext("DDE"), "t")) - class DteTask(DfptTask): - """Task for DTE calculations.""" + """ + Task for DTE calculations. + """ + color_rgb = np.array((204, 0, 204)) / 255 - # @check_spectator def start(self, **kwargs): + """Disable autoparal mode before starting the task.""" kwargs['autoparal'] = False return super().start(**kwargs) - def get_results(self, **kwargs): - results = super().get_results(**kwargs) - return results.register_gridfs_file(DDB=(self.outdir.has_abiext("DDE"), "t")) - class DdkTask(DfptTask): - """Task for DDK calculations.""" + """ + Task for DDK calculations. + """ + color_rgb = np.array((0, 204, 204)) / 255 #@check_spectator @@ -3803,31 +4046,59 @@ def _on_ok(self): # See DfptTask.make_links self.outdir.symlink_abiext('1WF', 'DDK') - def get_results(self, **kwargs): - results = super().get_results(**kwargs) - return results.register_gridfs_file(DDK=(self.outdir.has_abiext("DDK"), "t")) + +class DkdkTask(DfptTask): + """ + Task for the computation of d2/dkdk wave functions + """ + + color_rgb = np.array((0, 122, 204)) / 255 class BecTask(DfptTask): """ Task for the calculation of Born effective charges. + """ + + color_rgb = np.array((122, 122, 255)) / 255 - bec_deps = {ddk_task: "DDK" for ddk_task in ddk_tasks} - bec_deps.update({scf_task: "WFK"}) + +class QuadTask(DfptTask): + """ + Task for the calculation of dynamical quadrupoles with DFPT. """ + color_rgb = np.array((122, 122, 255)) / 255 + def restart(self): + raise NotImplementedError("don't know how to restart dynamical quadrupoles") + + +class FlexoETask(DfptTask): + """ + Task for the calculation of flexoelectric tensor. + """ + + color_rgb = np.array((122, 122, 255)) / 255 + + def restart(self): + raise NotImplementedError("don't know how to restart Flexoelectric calculations.") + class EffMassTask(DfptTask): - """Task for effective mass calculations with DFPT.""" + """ + Task for effective mass calculations with DFPT. + """ + color_rgb = np.array((0, 122, 204)) / 255 class PhononTask(DfptTask): """ DFPT calculations for a single atomic perturbation. - Provide support for in-place restart via (1WF|1DEN) files + Implements in-place restart via (1WF|1DEN) files and `inspect` method. """ + color_rgb = np.array((0, 150, 250)) / 255 def inspect(self, **kwargs): @@ -3841,35 +4112,39 @@ def inspect(self, **kwargs): if "title" not in kwargs: kwargs["title"] = str(self) return scf_cycle.plot(**kwargs) - def get_results(self, **kwargs): - results = super().get_results(**kwargs) - return results.register_gridfs_files(DDB=(self.outdir.has_abiext("DDB"), "t")) - class ElasticTask(DfptTask): """ DFPT calculations for a single strain perturbation (uniaxial or shear strain). Provide support for in-place restart via (1WF|1DEN) files """ + color_rgb = np.array((255, 204, 255)) / 255 class EphTask(AbinitTask): """ - Class for electron-phonon calculations. + Task for electron-phonon calculations with the EPH code. """ + color_rgb = np.array((255, 128, 0)) / 255 +class KerangeTask(AbinitTask): + """ + Task for kerange calculations. + """ + + color_rgb = np.array((255, 128, 128)) / 255 + + class ManyBodyTask(AbinitTask): """ Base class for Many-body tasks (Screening, Sigma, Bethe-Salpeter) Mainly used to implement methods that are common to MBPT calculations with Abinit. - - .. warning:: - - This class should not be instantiated directly. + This class is not supposed to be instantiated directly. """ + def reduce_memory_demand(self): """ Method that can be called by the scheduler to decrease the memory demand of a specific task. @@ -3893,12 +4168,14 @@ def reduce_memory_demand(self): class ScrTask(ManyBodyTask): - """Tasks for SCREENING calculations """ + """ + SCREENING calculations with quartic GW code + """ color_rgb = np.array((255, 128, 0)) / 255 @property - def scr_path(self): + def scr_path(self) -> str: """Absolute path of the SCR file. Empty string if file is not present.""" # Lazy property to avoid multiple calls to has_abiext. try: @@ -3930,7 +4207,8 @@ def open_scr(self): class SigmaTask(ManyBodyTask): """ - Tasks for SIGMA calculations. Provides support for in-place restart via QPS files + Self-energy calculations with the quartic GW code. + Provides support for in-place restart via QPS files. """ CRITICAL_EVENTS = [ events.QPSConvergenceWarning, @@ -3960,8 +4238,8 @@ def restart(self): # """Plot graph showing the number of k-points computed and the wall-time used""" @property - def sigres_path(self): - """Absolute path of the SIGRES file. Empty string if file is not present.""" + def sigres_path(self) -> str: + """Absolute path of the SIGRES.nc file. Empty string if file is not present.""" # Lazy property to avoid multiple calls to has_abiext. try: return self._sigres_path @@ -4002,16 +4280,6 @@ def get_scissors_builder(self): else: raise RuntimeError("Cannot find SIGRES file!") - def get_results(self, **kwargs): - results = super().get_results(**kwargs) - - # Open the SIGRES file and add its data to results.out - with self.open_sigres() as sigres: - #results["out"].update(sigres.as_dict()) - results.register_gridfs_files(SIGRES=sigres.filepath) - - return results - class BseTask(ManyBodyTask): """ @@ -4095,7 +4363,7 @@ def restart(self): # return haydock_cycle.plot(**kwargs) @property - def mdf_path(self): + def mdf_path(self) -> str: """Absolute path of the MDF file. Empty string if file is not present.""" # Lazy property to avoid multiple calls to has_abiext. try: @@ -4123,25 +4391,66 @@ def open_mdf(self): self.history.critical("Exception while reading MDF file at %s:\n%s" % (mdf_path, str(exc))) return None - def get_results(self, **kwargs): - results = super().get_results(**kwargs) - with self.open_mdf() as mdf: - #results["out"].update(mdf.as_dict()) - #epsilon_infinity optical_gap - results.register_gridfs_files(MDF=mdf.filepath) +class GwrTask(AbinitTask): + """ + Class for calculations with the GWR code. + Provide `open_gwr` method to open GWR.nc + """ - return results + color_rgb = np.array((255, 128, 0)) / 255 + + def setup(self): + + #if self["gwr_task"] in (GWR_TASK.HDIAGO_FULL, ): + # print("To perform full diago, need to know mpw...") + # parent_scf_task = self.get_parents() + # dims, _ = parent_scf_task.abiget_dims_spginfo() + # nband = dims["mpw"] + + return super().setup() + + @property + def gwr_path(self) -> str: + """Absolute path of the GWR.nc file. Empty string if file is not present.""" + # Lazy property to avoid multiple calls to has_abiext. + try: + return self._gwr_path + except AttributeError: + path = self.outdir.has_abiext("GWR.nc") + if path: self._gwr_path = path + return path + + def open_gwr(self): + """ + Open the GWR file located in the in self.outdir. + Returns GwrFile object, None if file could not be found or file is not readable. + """ + gwr_path = self.gwr_path + + if not gwr_path: + self.history.critical("%s didn't produce a GWR.nc file in %s" % (self, self.outdir)) + return None + + # Open the GWR file + from abipy.electrons.gwr import GwrFile + try: + return GwrFile(gwr_path) + except Exception as exc: + self.history.critical("Exception while reading GWR.nc file at %s:\n%s" % (gwr_path, str(exc))) + return None class OpticTask(Task): """ - Task for the computation of optical spectra with optic i.e. - RPA without local-field effects and velocity operator computed from DDK files. + Task for the computation of optical spectra with optics tool + i.e. RPA without local-field effects and velocity operator computed from DDK files. """ + color_rgb = np.array((255, 204, 102)) / 255 - def __init__(self, optic_input, nscf_node, ddk_nodes, use_ddknc=False, workdir=None, manager=None): + def __init__(self, optic_input: OpticInput, nscf_node: Node, ddk_nodes: list[Node], + use_ddknc=False, workdir=None, manager=None): """ Create an instance of :class:`OpticTask` from n string containing the input. @@ -4169,13 +4478,13 @@ def __init__(self, optic_input, nscf_node, ddk_nodes, use_ddknc=False, workdir=N super().__init__(optic_input, workdir=workdir, manager=manager, deps=deps) - def set_workdir(self, workdir, chroot=False): + def set_workdir(self, workdir: str, chroot=False) -> None: """Set the working directory of the task.""" super().set_workdir(workdir, chroot=chroot) # Small hack: the log file of optics is actually the main output file. self.output_file = self.log_file - def set_vars(self, *args, **kwargs): + def set_vars(self, *args, **kwargs) -> None: """ Optic does not use `get` or `ird` variables hence we should never try to change the input when we connect this task @@ -4187,7 +4496,7 @@ def set_vars(self, *args, **kwargs): if "max_ncpus" in kwargs: self.input.set_vars(max_ncpus=kwargs["max_ncpus"]) @property - def executable(self): + def executable(self) -> str: """Path to the executable required for running the :class:`OpticTask`.""" try: return self._executable @@ -4195,8 +4504,10 @@ def executable(self): return "optic" @property - def filesfile_string(self): - """String with the list of files and prefixes needed to execute ABINIT.""" + def filesfile_string(self) -> str: + """ + String with the list of files and prefixes needed to execute ABINIT. + """ lines = [] app = lines.append @@ -4207,12 +4518,12 @@ def filesfile_string(self): return "\n".join(lines) @property - def wfk_filepath(self): + def wfk_filepath(self) -> None: """Returns (at runtime) the absolute path of the WFK file produced by the NSCF run.""" return self.nscf_node.outdir.has_abiext("WFK") @property - def ddk_filepaths(self): + def ddk_filepaths(self) -> list[str]: """Returns (at runtime) the absolute path of the DDK files produced by the DDK runs.""" # This to support new version of optic that used DDK.nc paths = [ddk_task.outdir.has_abiext("DDK.nc") for ddk_task in self.ddk_nodes] @@ -4222,8 +4533,10 @@ def ddk_filepaths(self): # This is deprecated and can be removed when new version of Abinit is released. return [ddk_task.outdir.has_abiext("1WF") for ddk_task in self.ddk_nodes] - def make_input(self): - """Construct and write the input file of the calculation.""" + def make_input(self) -> str: + """ + Construct and write the input file of the calculation. + """ # Set the file paths. all_files = {"ddkfile_" + str(n + 1): ddk for n, ddk in enumerate(self.ddk_filepaths)} all_files.update({"wfkfile": self.wfk_filepath}) @@ -4245,9 +4558,6 @@ def make_links(self): hence we don't need to create symbolic links. """ - def get_results(self, **kwargs): - return super().get_results(**kwargs) - def fix_abicritical(self): """ Cannot fix abicritical errors for optic @@ -4336,8 +4646,8 @@ def fix_queue_critical(self): elif isinstance(error, MemoryCancelError): # ask the qadapter to provide more resources, i.e. more cpu's so more total memory if the code - # scales this should fix the memeory problem - # increase both max and min ncpu of the autoparalel and rerun autoparalel + # scales this should fix the memory problem + # increase both max and min ncpu of the autoparal and rerun autoparal if self.mem_scales: try: self.manager.increase_ncpus() @@ -4502,7 +4812,9 @@ def autoparal_run(self): class AnaddbTask(Task): - """Task for Anaddb runs (post-processing of DFPT calculations).""" + """ + Task for Anaddb runs (post-processing of DFPT calculations). + """ color_rgb = np.array((204, 102, 255)) / 255 @@ -4512,7 +4824,7 @@ def __init__(self, anaddb_input, ddb_node, Create an instance of AnaddbTask from a string containing the input. Args: - anaddb_input: string with the anaddb variables. + anaddb_input: |AnaddbInput| object. ddb_node: The node that will produce the DDB file. Accept |Task|, |Work| or filepath. gkk_node: The node that will produce the GKK file (optional). Accept |Task|, |Work| or filepath. md_node: The node that will produce the MD file (optional). Accept |Task|, |Work| or filepath. @@ -4541,7 +4853,8 @@ def __init__(self, anaddb_input, ddb_node, @classmethod def temp_shell_task(cls, inp, ddb_node, mpi_procs=1, - gkk_node=None, md_node=None, ddk_node=None, workdir=None, manager=None): + gkk_node=None, md_node=None, ddk_node=None, + workdir=None, manager=None) -> AnaddbTask: """ Build a |AnaddbTask| with a temporary workdir. The task is executed via the shell with 1 MPI proc. Mainly used for post-processing the DDB files. @@ -4554,8 +4867,7 @@ def temp_shell_task(cls, inp, ddb_node, mpi_procs=1, See `AnaddbInit` for the meaning of the other arguments. """ # Build a simple manager to run the job in a shell subprocess - import tempfile - workdir = tempfile.mkdtemp() if workdir is None else workdir + workdir = get_workdir(workdir) if manager is None: manager = TaskManager.from_user_config() # Construct the task and run it @@ -4564,7 +4876,7 @@ def temp_shell_task(cls, inp, ddb_node, mpi_procs=1, workdir=workdir, manager=manager.to_shell_manager(mpi_procs=mpi_procs)) @property - def executable(self): + def executable(self) -> str: """Path to the executable required for running the |AnaddbTask|.""" try: return self._executable @@ -4572,7 +4884,7 @@ def executable(self): return "anaddb" @property - def filesfile_string(self): + def filesfile_string(self) -> str: """String with the list of files and prefixes needed to execute ABINIT.""" lines = [] app = lines.append @@ -4588,39 +4900,39 @@ def filesfile_string(self): return "\n".join(lines) @property - def ddb_filepath(self): + def ddb_filepath(self) -> str: """Returns (at runtime) the absolute path of the input DDB file.""" # This is not very elegant! A possible approach could to be path self.ddb_node.outdir! if isinstance(self.ddb_node, FileNode): return self.ddb_node.filepath path = self.ddb_node.outdir.has_abiext("DDB") - return path if path else "DDB_FILE_DOES_NOT_EXIST" + return path if path else None @property - def md_filepath(self): + def md_filepath(self) -> str: """Returns (at runtime) the absolute path of the input MD file.""" - if self.md_node is None: return "MD_FILE_DOES_NOT_EXIST" + if self.md_node is None: return None if isinstance(self.md_node, FileNode): return self.md_node.filepath path = self.md_node.outdir.has_abiext("MD") - return path if path else "MD_FILE_DOES_NOT_EXIST" + return path if path else None @property - def gkk_filepath(self): + def gkk_filepath(self) -> str: """Returns (at runtime) the absolute path of the input GKK file.""" - if self.gkk_node is None: return "GKK_FILE_DOES_NOT_EXIST" + if self.gkk_node is None: return None if isinstance(self.gkk_node, FileNode): return self.gkk_node.filepath path = self.gkk_node.outdir.has_abiext("GKK") - return path if path else "GKK_FILE_DOES_NOT_EXIST" + return path if path else None @property - def ddk_filepath(self): + def ddk_filepath(self) -> str: """Returns (at runtime) the absolute path of the input DKK file.""" - if self.ddk_node is None: return "DDK_FILE_DOES_NOT_EXIST" + if self.ddk_node is None: return None if isinstance(self.ddk_node, FileNode): return self.ddk_node.filepath path = self.ddk_node.outdir.has_abiext("DDK") - return path if path else "DDK_FILE_DOES_NOT_EXIST" + return path if path else None def setup(self): """Public method called before submitting the task.""" @@ -4631,38 +4943,48 @@ def make_links(self): hence we don't need to create symbolic links. """ + def outpath_from_ext(self, ext): + if ext == "anaddb.nc": + path = os.path.join(self.outdir.path, "anaddb.nc") + if os.path.isfile(path): return path + + path = self.outdir.has_abiext(ext) + if not path: + raise RuntimeError("Anaddb task `%s` didn't produce file with extension: `%s`" % (self, ext)) + + return path + def open_phbst(self): """Open PHBST file produced by Anaddb and returns |PhbstFile| object.""" from abipy.dfpt.phonons import PhbstFile - phbst_path = os.path.join(self.workdir, "run.abo_PHBST.nc") - if not phbst_path: - if self.status == self.S_OK: - self.history.critical("%s reached S_OK but didn't produce a PHBST file in %s" % (self, self.outdir)) - return None - - try: - return PhbstFile(phbst_path) - except Exception as exc: - self.history.critical("Exception while reading GSR file at %s:\n%s" % (phbst_path, str(exc))) - return None + phbst_path = self.outpath_from_ext("PHBST.nc") + return PhbstFile(phbst_path) def open_phdos(self): """Open PHDOS file produced by Anaddb and returns |PhdosFile| object.""" from abipy.dfpt.phonons import PhdosFile - phdos_path = os.path.join(self.workdir, "run.abo_PHDOS.nc") - if not phdos_path: - if self.status == self.S_OK: - self.history.critical("%s reached S_OK but didn't produce a PHBST file in %s" % (self, self.outdir)) - return None + phdos_path = self.outpath_from_ext("PHDOS.nc") + return PhdosFile(phdos_path) - try: - return PhdosFile(phdos_path) - except Exception as exc: - self.history.critical("Exception while reading GSR file at %s:\n%s" % (phdos_path, str(exc))) - return None + def make_input(self, with_header=False) -> str: + """return string the input file of the calculation.""" + inp = self.input.deepcopy() - def get_results(self, **kwargs): - return super().get_results(**kwargs) + ddb_filepath = self.ddb_filepath + if ddb_filepath: + inp["ddb_filepath"] = ddb_filepath + + gkk_filepath = self.gkk_filepath + if gkk_filepath: + inp["gkk_filepath"] = gkk_filepath + + ddk_filepath = self.ddk_filepath + if ddk_filepath: + inp["ddk_filepath"] = ddk_filepath + + s = str(inp) + if with_header: s = str(self) + "\n" + s + return s #class BoxcuttedPhononTask(PhononTask): diff --git a/abipy/flowtk/tests/test_abiinspect.py b/abipy/flowtk/tests/test_abiinspect.py new file mode 100644 index 000000000..340f5467a --- /dev/null +++ b/abipy/flowtk/tests/test_abiinspect.py @@ -0,0 +1,138 @@ +import os +import tempfile + +from abipy.core.testing import AbipyTest +from abipy.flowtk.abiinspect import * +import abipy.data as abidata + + +class YamlTokenizerTest(AbipyTest): + """Test YamlTokenizer.""" + + def test_base(self): + string = """--- +none: [~, null] +bool: [true, false, on, off] +int: 42 +float: 3.14159 +list: [LITE, RES_ACID, SUS_DEXT] +dict: {hp: 13, sp: 5} +... + +this is not a YAML document! +and the tokenizer will ignore it + +--- !Monster +name: Cave spider +hp: [2,6] # 2d6 +ac: 16 +attacks: [BITE, HURT] +... + +This is not a proper document since it does not start with --- +the end tag below is ignored +... +--- !Monster +name: Dragon +hp: [2,6] # 2d6 +ac: 32 +attacks: [BITE, HURT] +... + """ + # for i, line in enumerate(string.splitlines()): print(i, line) + fd, filename = tempfile.mkstemp(text=True) + + with open(filename, "w") as fh: + fh.write(string) + + doc_tags = [None, "!Monster", "!Monster"] + doc_linenos = [1, 13, 23] + + with YamlTokenizer(filename) as r: + # Iterate the docs + n = 0 + for i, doc in enumerate(r): + n += 1 + str(doc) + #print("doc", doc) + assert doc.tag == doc_tags[i] + assert doc.lineno == doc_linenos[i] + + assert n == len(doc_tags) + + # Read all docs present in the file. + r.seek(0) + all_docs = r.all_yaml_docs() + # print(all_docs) + assert len(all_docs) == 3 + + # We should be at the begining at the file. + assert all_docs == r.all_yaml_docs() + + # Find documents by tag. + r.seek(0) + monster = r.next_doc_with_tag("!Monster") + # print("monster",monster) + assert monster == all_docs[1] + + monster = r.next_doc_with_tag("!Monster") + assert monster == all_docs[2] + + # this should raise StopIteration + with self.assertRaises(StopIteration): + monster = r.next_doc_with_tag("!Monster") + + +class AbinitInpectTest(AbipyTest): + def test_scfcycle(self): + """Testing ScfCycle.""" + filepath = os.path.join(abidata.dirpath, "refs", "text_files", "mgb2_scf.abo") + cycle = GroundStateScfCycle.from_file(filepath) + str(cycle) + cycle.to_string(verbose=2) + + assert cycle.num_iterations == 6 + last = cycle.last_iteration + + assert last["Etot(hartree)"] == -7.1476241568657 and last["vres2"] == 3.879e-08 + assert list(cycle["vres2"]) == [ + 1.769e02, + 7.920e-01, + 1.570e-01, + 4.259e-03, + 4.150e-05, + 3.879e-08, + ] + + # Testing CyclesPlotter. + p = CyclesPlotter() + p.add_label_cycle("mgb2 SCF", cycle) + p.add_label_cycle("same SCF", cycle) + + if self.has_matplotlib(): + assert cycle.plot(show=False) + assert p.combiplot(show=False) + #p.slideshow() + + if self.has_plotly(): + assert cycle.plotly(show=False) + + def test_relaxation(self): + """Testing Relaxation object.""" + filepath = os.path.join(abidata.dirpath, "refs", "text_files", "sic_relax.abo") + relaxation = Relaxation.from_file(filepath) + str(relaxation) + assert len(relaxation) == 4 + + assert relaxation[0]["Etot(hartree)"][-1] == -8.8077409200473 + assert relaxation[-1]["Etot(hartree)"][-1] == -8.8234906607147 + + for scf_step in relaxation: + str(scf_step.num_iterations) + + if self.has_matplotlib(): + assert relaxation.plot(show=False) + #assert relaxation.slideshow(show=False) + + #if self.has_plotly(): + # assert relaxation.plotly(show=False) diff --git a/abipy/flowtk/tests/test_abiobjects.py b/abipy/flowtk/tests/test_abiobjects.py index 1b64f39b5..faa10ad67 100644 --- a/abipy/flowtk/tests/test_abiobjects.py +++ b/abipy/flowtk/tests/test_abiobjects.py @@ -23,9 +23,9 @@ def test_nio(self): self.serialize_with_pickle(luj_params, test_eq=False) atrue(avars["usepawu"] == 1) - aequal(avars["lpawu"], "-1 2"), - aequal(avars["upawu"], "0.0 8.0 eV") - aequal(avars["jpawu"], "0.0 0.8 eV") + aequal(avars["lpawu"], "2 -1"), + aequal(avars["upawu"], "8.0 0.0 eV") + aequal(avars["jpawu"], "0.8 0.0 eV") # Cannot add UJ for non-existent species. with self.assertRaises(ValueError): @@ -42,7 +42,7 @@ def test_nio(self): self.serialize_with_pickle(lexx_params, test_eq=False) aequal(avars["useexexch"], 1), - aequal(avars["lexexch"], "-1 2") + aequal(avars["lexexch"], "2 -1") # Cannot add LEXX for non-existent species. with self.assertRaises(ValueError): diff --git a/abipy/flowtk/tests/test_epw_flows.py b/abipy/flowtk/tests/test_epw_flows.py index e0ce03a32..0dcc27c80 100644 --- a/abipy/flowtk/tests/test_epw_flows.py +++ b/abipy/flowtk/tests/test_epw_flows.py @@ -9,16 +9,14 @@ class TestEphFlows(AbipyTest): def test_ephpot_flows(self): """Testing EphPotFlow.""" - self.skip_if_abinit_not_ge("8.11.0") - gs_inp = self.get_gsinput_alas_ngkpt(ngkpt=[4, 4, 4]) ngqpt = (2, 2, 2) qbounds = [[0, 0, 0], [0.5, 0, 0]] workdir = self.mkdtemp() - flow = EphPotFlow.from_scf_input(workdir, gs_inp, ngqpt, qbounds, ndivsm=2, with_becs=True, ddk_tolerance=None, - prepgkk=1) + flow = EphPotFlow.from_scf_input(workdir, gs_inp, ngqpt, qbounds, ndivsm=2, + with_becs=True, with_quad=False, ddk_tolerance=None, prepgkk=1) #assert len(work.relax_tasks) == 3 #assert all(t.input["dilatmx"] == 1.05 for t in work) @@ -26,19 +24,18 @@ def test_ephpot_flows(self): flow.allocate() flow.check_status() isok, checks = flow.abivalidate_inputs() + if not isok: flow.debug() assert isok - def test_gkqpath_flows(self): """Testing GkqPathFlow.""" - self.skip_if_abinit_not_ge("8.11.0") - gs_inp = self.get_gsinput_alas_ngkpt(ngkpt=[4, 4, 4]) ngqpt = (2, 2, 2) qbounds = [[0, 0, 0], [0.5, 0, 0]] workdir = self.mkdtemp() - flow = GkqPathFlow.from_scf_input(workdir, gs_inp, ngqpt, qbounds, ndivsm=2, with_becs=True, ddk_tolerance=None, + flow = GkqPathFlow.from_scf_input(workdir, gs_inp, ngqpt, qbounds, ndivsm=2, + with_becs=True, with_quad=False, ddk_tolerance=None, test_ft_interpolation=True, prepgkk=0) #assert len(work.relax_tasks) == 3 @@ -47,4 +44,5 @@ def test_gkqpath_flows(self): flow.allocate() flow.check_status() isok, checks = flow.abivalidate_inputs() + if not isok: flow.debug() assert isok diff --git a/abipy/flowtk/tests/test_events.py b/abipy/flowtk/tests/test_events.py index adbe62935..5f0a91546 100644 --- a/abipy/flowtk/tests/test_events.py +++ b/abipy/flowtk/tests/test_events.py @@ -22,9 +22,9 @@ def test_mgb2_outputs(self): # Analyze scf log parser = events.EventsParser() report = parser.parse(ref_file("mgb2_scf.log"), verbose=1) - self.assertMSONable(report) + self.assert_msonable(report) - print(report) + assert str(report) assert (report.num_errors, report.num_warnings, report.num_comments) == (0, 0, 0) assert report.run_completed fmt = "%a %b %d %H:%M:%S %Y" @@ -35,7 +35,7 @@ def test_mgb2_outputs(self): report = events.EventsParser().parse(ref_file("mgb2_nscf.log"), verbose=0) assert (report.num_errors, report.num_warnings, report.num_comments) == (0, 2, 0) print(report) - self.assertMSONable(report) + self.assert_msonable(report) #d = report.as_dict() #print(d) @@ -45,7 +45,7 @@ def test_mgb2_outputs(self): print(warning) assert warning == report[i] # Msonable is conflict with YAMLObject - #self.assertMSONable(warning, check_inst=False) + #self.assert_msonable(warning, check_inst=False) report = parser.report_exception(ref_file("mgb2_scf.log"), "exception") assert len(report.errors) == 1 @@ -72,7 +72,7 @@ def test_events(self): # Test pickle handler = cls() self.serialize_with_pickle(handler, test_eq=False) - self.assertMSONable(handler) + self.assert_msonable(handler) assert events.as_event_class(events.AbinitWarning) == events.AbinitWarning assert events.as_event_class('!WARNING') == events.AbinitWarning diff --git a/abipy/flowtk/tests/test_flows.py b/abipy/flowtk/tests/test_flows.py index 8588d82a1..b6ea271f6 100644 --- a/abipy/flowtk/tests/test_flows.py +++ b/abipy/flowtk/tests/test_flows.py @@ -6,8 +6,7 @@ from monty.functools import lazy_property from pymatgen.core.lattice import Lattice -from pymatgen.core.structure import Structure -from abipy.flowtk.launcher import BatchLauncher +from abipy.core.structure import Structure from abipy.flowtk.flows import * from abipy.flowtk.works import * from abipy.flowtk.tasks import * @@ -16,30 +15,9 @@ from abipy import flowtk -class FakeAbinitInput(object): - """Emulate an Abinit input.""" - @lazy_property - def pseudos(self): - return [abidata.pseudo("14si.pspnc")] - - @lazy_property - def structure(self): - coords = [] - coords.append([0, 0, 0]) - coords.append([0.75, 0.5, 0.75]) - lattice = Lattice([[3.8401979337, 0.00, 0.00], - [1.9200989668, 3.3257101909, 0.00], - [0.00, -2.2171384943, 3.1355090603]]) - return Structure(lattice, ["Si", "Si"], coords) - - def get(self, key, default=None): - """The real AbinitInput is a dict-like object.""" - if default is not None: return default - return key - - class FlowUnitTest(AbipyTest): """Provides helper function for testing Abinit flows.""" + MANAGER = """\ policy: autoparal: 1 @@ -56,11 +34,15 @@ class FlowUnitTest(AbipyTest): min_cores: 4 max_cores: 12 #condition: {"$eq": {omp_threads: 2}} + limits_for_task_class: { + DdkTask: {min_cores: 2, max_cores: 30}, + KerangeTask: {timelimit: 0:10:00, max_mem_per_proc: 1 GB}, + } hardware: num_nodes: 10 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB job: modules: - intel/compilerpro/13.0.1.117 @@ -70,16 +52,6 @@ class FlowUnitTest(AbipyTest): LD_LIBRARY_PATH: /home/user/NAPS/intel13/lib:$LD_LIBRARY_PATH mpi_runner: mpirun -# Connection to the MongoDb database (optional) -db_connector: - database: abinit - collection: test - #host: 0.0.0.0 - #port: 8080 - #user: gmatteo - #password: helloworld - -batch_adapter: *batch """ def setUp(self): """Initialization phase.""" @@ -91,11 +63,22 @@ def setUp(self): # Create the TaskManager. self.manager = TaskManager.from_string(self.MANAGER) + set_user_config_taskmanager(self.manager) + # Fake input file - self.fake_input = FakeAbinitInput() + from abipy.abio.inputs import AbinitInput + coords = [] + coords.append([0, 0, 0]) + coords.append([0.75, 0.5, 0.75]) + lattice = Lattice([[3.8401979337, 0.00, 0.00], + [1.9200989668, 3.3257101909, 0.00], + [0.00, -2.2171384943, 3.1355090603]]) + self.fake_input = AbinitInput(structure=Structure(lattice, ["Si", "Si"], coords), + pseudos=abidata.pseudo("14si.pspnc")) def tearDown(self): """Delete workdir""" + set_user_config_taskmanager(None) shutil.rmtree(self.workdir) @@ -108,18 +91,37 @@ def test_base(self): assert flow.isinstance(Flow) assert not flow.isinstance(None) assert not flow.has_scheduler + assert flow._status is None + + assert not flow.user_message + message = "My message" + flow.set_user_message(message) + assert flow.user_message == message + assert flow.readme_md is None + flow.set_readme("## hello flow") + assert flow.readme_md == "## hello flow" + assert not flow.abipy_meta_json + flow.set_abipy_meta_json(dict(message="hello flow")) + assert "message" in flow.abipy_meta_json + with self.assertRaises(TypeError): + flow.set_abipy_meta_json(["hello flow"]) # Build a work with a task work = flow.register_task(self.fake_input) assert work.is_work assert len(work.color_hex) == 7 assert work.color_hex.startswith("#") + work.set_readme("## hello work") + work.set_abipy_meta_json(dict(message="hello work")) + task0_w0 = work[0] + task0_w0.set_readme("## hello task0_w0") + task0_w0.set_abipy_meta_json(dict(message="hello task0_w0")) + assert task0_w0.is_task str(task0_w0.status.colored) assert len(flow) == 1 assert flow.num_tasks == 1 - assert flow.has_db #print(task0_w0.input_structure) str(task0_w0.make_input) @@ -130,7 +132,8 @@ def test_base(self): assert len(task0_w0.history) == 1 str(task0_w0.history) record = task0_w0.history.pop() - print(record, repr(record)) + repr(record) + str(record) assert record.get_message(asctime=False) == "Hello world" assert len(task0_w0.history) == 0 assert flow.select_tasks(nids=task0_w0.node_id)[0] == task0_w0 @@ -141,11 +144,26 @@ def test_base(self): # Build a workflow containing two tasks depending on task0_w0 work = Work() assert work.is_work - work.register(self.fake_input) - work.register(self.fake_input) + + ddk_task_with_custom_limits = work.register_ddk_task(self.fake_input) + kerange_task_with_custom_limits = work.register_kerange_task(self.fake_input) + + assert not hasattr(ddk_task_with_custom_limits, "manager") + + m = kerange_task_with_custom_limits.manager + assert m.policy.autoparal == 0 + assert m.mpi_procs == 1 + assert m.qads[0].max_mem_per_proc == 1024 + # This does not work as expected but the most importan thing is that + # autoparal has been set to 0 and the other values have been updated. + #assert m.qads[0].min_cores == 1 + #assert m.qads[0].max_cores == 1 + assert len(work) == 2 flow.register_work(work, deps={task0_w0: "WFK"}) + assert not hasattr(ddk_task_with_custom_limits, "manager") + assert flow.is_flow assert len(flow) == 2 @@ -157,6 +175,10 @@ def test_base(self): # Allocate internal tables flow.allocate() + assert hasattr(ddk_task_with_custom_limits, "manager") + assert ddk_task_with_custom_limits.manager.qads[0].min_cores == 2, "should have custom value" + assert ddk_task_with_custom_limits.manager.qads[0].max_cores == 30, "should have custom value" + # Check dependecies. #task0_w1 = flow[1][0] assert flow[1].depends_on(task0_w0) @@ -191,6 +213,9 @@ def test_base(self): # Save the flow in pickle format. flow.build_and_pickle_dump() + data = {"foo": 1, "structure": flow[0][0].input.structure} + flow[0][0].write_json_in_outdir("foo.json", data) + # Find the pickle file in workdir and recreate the flow. same_flow = Flow.pickle_load(self.workdir) assert same_flow == flow @@ -201,7 +226,7 @@ def test_base(self): #same_flow = Flow.pickle_loads(s) #aequal(same_flow, flow) - self.assertMSONable(flow) + self.assert_msonable(flow) flow.show_info() flow.show_summary() @@ -213,9 +238,24 @@ def test_base(self): # Test show_status flow.show_status() + df = flow.show_status(return_df=True) flow.show_tricky_tasks() flow.show_event_handlers() + assert task0_w0.pos == (0, 0) + d = task0_w0.get_dataframe(as_dict=True) + assert "status" in d + assert (d["work_idx"], d["task_widx"]) == task0_w0.pos + df = task0_w0.get_dataframe() + assert df["work_idx"][0] == task0_w0.pos[0] + assert df["task_widx"][0] == task0_w0.pos[1] + + work0 = flow[0] + d_list = work0.get_dataframe(as_dict=True) + assert "status" in d_list[0] + df = work0.get_dataframe() + assert "status" in df + df = flow.compare_abivars(varnames=["ecut", "natom"], printout=True, with_colors=True) assert "ecut" in df @@ -240,6 +280,13 @@ def test_base(self): if self.has_panel(): assert hasattr(flow.get_panel(), "show") + assert hasattr(flow[0].get_panel(), "show") + assert hasattr(flow[0][0].get_panel(), "show") + + flow.set_status(flow.S_ERROR, "This is a errored flow") + assert flow._status == flow.S_ERROR + assert flow.status == flow.S_ERROR + def test_workdir(self): """Testing if one can use workdir=None in flow.__init__ and then flow.allocate(workdir).""" @@ -299,13 +346,17 @@ def make_scf_nscf_inputs(): hello_flow = flowtk.Flow(workdir=self.mkdtemp()) hello_flow.register_scf_task(scf_input, append=True) hello_flow.register_nscf_task(nscf_input, deps={hello_flow[0][0]: "DEN"}, append=True) - #flow[0].get_graphviz_dirtree() #abilab.print_doc(flowtk.PhononWork) hello_flow = flowtk.Flow(workdir=self.mkdtemp()) hello_flow.register_scf_task(scf_input, append=True) + assert len(hello_flow) == 1 hello_flow.register_nscf_task(nscf_input, deps={hello_flow[0][0]: "DEN"}, append=False) + assert len(hello_flow) == 2 + empty_work = hello_flow.new_work() + assert len(empty_work) == 0 + assert len(hello_flow) == 3 @@ -364,54 +415,3 @@ def test_spectator(self): #with self.assertRaises(task.SpectatorError): task._on_done() #with self.assertRaises(task.SpectatorError): task.on_ok() #with self.assertRaises(task.SpectatorError): task._on_ok() - - -class TestBatchLauncher(FlowUnitTest): - - def test_batchlauncher(self): - """Testing BatchLauncher methods.""" - # Create the TaskManager. - manager = TaskManager.from_string(self.MANAGER) - print("batch_adapter", manager.batch_adapter) - assert manager.batch_adapter is not None - - def build_flow_with_name(name): - """Build a flow with workdir None and the given name.""" - flow = Flow(workdir=None, manager=self.manager) - flow.set_name(name) - - flow.register_task(self.fake_input) - work = Work() - work.register_scf_task(self.fake_input) - flow.register_work(work) - - return flow - - tmpdir = tempfile.mkdtemp() - batch = BatchLauncher(workdir=tmpdir, manager=manager) - str(batch) - - flow0 = build_flow_with_name("flow0") - flow1 = build_flow_with_name("flow1") - flow2_same_name = build_flow_with_name("flow1") - - batch.add_flow(flow0) - - # Cannot add the same flow twice. - with self.assertRaises(batch.Error): - batch.add_flow(flow0) - - batch.add_flow(flow1) - - # Cannot add two flows with the same name. - with self.assertRaises(batch.Error): - batch.add_flow(flow2_same_name) - - batch.submit(dry_run=True) - - for i, flow in enumerate([flow0, flow1]): - assert flow.workdir == os.path.join(batch.workdir, "flow%d" % i) - - batch.pickle_dump() - batch_from_pickle = BatchLauncher.pickle_load(batch.workdir) - assert all(f1 == f2 for f1, f2 in zip(batch.flows, batch_from_pickle.flows)) diff --git a/abipy/flowtk/tests/test_launcher.py b/abipy/flowtk/tests/test_launcher.py index 38e861a7c..3da3865d8 100644 --- a/abipy/flowtk/tests/test_launcher.py +++ b/abipy/flowtk/tests/test_launcher.py @@ -1,20 +1,60 @@ # coding: utf-8 -import unittest - from abipy.core.testing import AbipyTest -from abipy.flowtk.launcher import ScriptEditor +from abipy.flowtk.launcher import ScriptEditor, PyFlowScheduler, MultiFlowScheduler + + +def test_script_editor(): + """base tests for ScriptEditor""" + se = ScriptEditor() + se.shebang() + se.declare_var("FOO", "BAR") + se.add_emptyline() + se.add_comment("This is a comment") + se.declare_vars({"FOO1": "BAR1"}) + se.load_modules(["module1", "module2"]) + s = se.get_script_str() + assert "export FOO=BAR" in s + assert "export FOO1=BAR1" in s + assert "module load module1" in s + + +class PyFlowSchedulerTest(AbipyTest): + + def test_pyflowscheduler_api(self): + """Testing PyFlowScheduler API.""" + + assert "weeks:" in PyFlowScheduler.autodoc() + + with self.assertRaises(PyFlowScheduler.Error): + PyFlowScheduler() + with self.assertRaises(PyFlowScheduler.Error): + PyFlowScheduler(foo="bar") + + sched = PyFlowScheduler(seconds=2) + assert str(sched) + assert sched.sched_options.seconds == 2 + assert sched.flow is None + assert int(sched.pid) > 0 + assert sched.num_excs == 0 + assert not sched.rmflow + + #sched.start() + #assert sched.get_delta_etime() + + def test_multiflowscheduler_api(self): + sched = MultiFlowScheduler(seconds=2, sqldb_path="foobar.db") + assert str(sched) + assert sched.sched_options.seconds == 2 + assert not sched.get_incoming_flows() + assert not sched.get_incoming_flows() + #assert sched.get_flow_status_by_id(1) == (None, None) + assert not sched.groupby_status() -class ScriptEditorTest(AbipyTest): + #import threading + #thread threading.Thread(target=sched.start, demon=False) + #thread.start() + #assert sched.get_delta_etime() + #assert thread.is_alive() - def test_base(self): - "base test" - se = ScriptEditor() - se.shebang() - se.declare_var("FOO", "BAR") - se.add_emptyline() - se.add_comment("This is a comment") - se.declare_vars({"FOO1": "BAR1"}) - se.load_modules(["module1", "module2"]) - print(se.get_script_str()) diff --git a/abipy/flowtk/tests/test_psrepos.py b/abipy/flowtk/tests/test_psrepos.py new file mode 100644 index 000000000..3b6a43086 --- /dev/null +++ b/abipy/flowtk/tests/test_psrepos.py @@ -0,0 +1,147 @@ +""" +Tests for psrepos.py module +""" +import tempfile +import os + +from abipy.core.testing import AbipyTest +from abipy.flowtk.psrepos import (OncvpspRepo, get_repo_from_name, encode_pseudopath, decode_pseudopath, + download_repo_from_url, tabulate_repos, get_all_registered_repos, + get_installed_repos_and_root) + + +class TestPsRepos(AbipyTest): + + def test_encode_decode_filepath(self): + repo = get_repo_from_name("ONCVPSP-PBEsol-SR-PDv0.4") + if not repo.is_installed(): + raise self.SkipTest("ONCVPSP-PBEsol-SR-PDv0.4 should be installed") + + #self.assert_msonable(repo, test_is_subclass=True) + #print(repo.as_dict()) + #raise ValueError() + + filepath = os.path.join(repo.dirpath, "Ni/Ni-sp.psp8") + encoded = encode_pseudopath(filepath) + assert encoded == "@ONCVPSP-PBEsol-SR-PDv0.4/Ni/Ni-sp.psp8" + assert decode_pseudopath(encoded) == filepath + + #filepath_with_tilde = "~/.abinit/pseudos/ONCVPSP-PBEsol-SR-PDv0.4/Ni/Ni-sp.psp8" + #encoded = encode_pseudopath(filepath_with_tilde) + #assert encoded == "@ONCVPSP-PBEsol-SR-PDv0.4/Ni/Ni-sp.psp8" + + # Path of pseudos in directories that are not known to AbiPy should be left unchanged. + filepath = "/Users/gmatteo/MyTables/ONCVPSP-PBEsol-SR-PDv0.4/Ni/Ni-sp.psp8" + encoded = encode_pseudopath(filepath) + assert encoded == filepath + assert decode_pseudopath(encoded) == filepath + + # FIXME: Disable because very unstable. + #def test_download_repo(self): + # """Testing download_repo_from_url""" + # with tempfile.TemporaryDirectory() as tmp_dir: + # url = "https://file-examples-com.github.io/uploads/2017/02/zip_2MB.zip" + # download_repo_from_url(url, tmp_dir, chunk_size=2 * 1024**2, verbose=1) + + def test_base_api(self): + """Testing base API.""" + repo = OncvpspRepo(ps_generator="ONCVPSP", xc_name="PBE", relativity_type="SR", + project_name="PD", version="0.1", url="http://example.org") + + assert repo.xc_name == "PBE" and repo.version == "0.1" + assert repo.ps_type == "NC" + assert repr(repo) + assert str(repo) + assert repo.isnc and not repo.ispaw + assert repo.name == "ONCVPSP-PBE-SR-PDv0.1" + assert repo == repo + + assert not repo.is_installed() + d = repo.to_rowdict(verbose=2) + assert d["installed"] is False + assert d["version"] == "0.1" + + # For the time being, we don't test the installation procedure. + #repo.install() + + with self.assertRaises(ValueError): + OncvpspRepo(ps_generator="ONCVPSP", xc_name="PBE", relativity_type="Foo", + project_name="PD", version="0.1", url="http://example.org") + + def test_high_level_api(self): + + def check_url(url): + import requests + response = requests.head(url) + # 302 corresponds to redirection and it's returned by github. + if response.status_code not in (200, 302): + raise RuntimeError(f'url {url} returned {response.status_code}') + + repos = get_all_registered_repos() + assert repos + for repo in repos: + check_url(repo.url) + + installed_repos, root = get_installed_repos_and_root() + assert os.path.exists(root) + + def test_oncvpsp_api(self): + """Testing ONCVPSP API.""" + repo_sr = get_repo_from_name("ONCVPSP-PBEsol-SR-PDv0.4") + repo_fr = get_repo_from_name("ONCVPSP-PBEsol-FR-PDv0.4") + repos = [repo_sr, repo_fr] + assert repo_sr != repo_fr + assert repo_sr.relativity_type == "SR" + assert repo_fr.relativity_type == "FR" + assert all(repo.isnc and not repo.ispaw for repo in repos) + assert all(repo.xc_name == "PBEsol" for repo in repos) + assert all(repo.version == "0.4" for repo in repos) + assert all(repo.project_name == "PD" for repo in repos) + assert all(repo.ps_generator == "ONCVPSP" for repo in repos) + + assert tabulate_repos(repos, with_citations=True, verbose=1) + assert tabulate_repos(repos, exclude=["installed"], verbose=1) + + if repo_sr.is_installed(): + repo_sr.validate_checksums(verbose=1) + for table_name in ("standard", "stringent"): + pseudos = repo_sr.get_pseudos(table_name=table_name) + # Test memoized method. + same_pseudos = repo_sr.get_pseudos(table_name=table_name) + assert same_pseudos is pseudos + zmax = 56 # Ba + assert pseudos.is_complete(zmax=zmax) + assert pseudos.allnc + assert all(p.has_hints for p in pseudos) + assert all(not p.supports_soc for p in pseudos) + + if repo_fr.is_installed(): + repo_fr.validate_checksums(verbose=1) + for table_name in ("standard", "stringent"): + pseudos = repo_fr.get_pseudos(table_name=table_name) + # Test memoized method. + same_pseudos = repo_fr.get_pseudos(table_name=table_name) + assert same_pseudos is pseudos + zmax = 56 # Ba + assert pseudos.is_complete(zmax=zmax) + assert pseudos.allnc + assert all(p.has_hints for p in pseudos) + assert all(p.supports_soc for p in pseudos) + + with self.assertRaises(KeyError): + get_repo_from_name("ONCVPSP-PBEEsol-SR-PDv0.4") + + def test_atompaw_api(self): + """Testing ATOMPAW API.""" + repo_lda = get_repo_from_name("ATOMPAW-LDA-JTHv1.1") + repo_pbe = get_repo_from_name("ATOMPAW-PBE-JTHv1.1") + repos = [repo_lda, repo_pbe] + assert repo_lda != repo_pbe + assert repo_lda.xc_name == "LDA" + assert repo_pbe.xc_name == "PBE" + assert all(repo.version == "1.1" for repo in repos) + assert all(repo.ps_generator == "ATOMPAW" for repo in repos) + assert all(repo.project_name == "JTH" for repo in repos) + assert all(repo.ispaw and not repo.isnc for repo in repos) + + # TODO: Add additional tests once the JTH table fulfills the repo protocol. diff --git a/abipy/flowtk/tests/test_qadapters.py b/abipy/flowtk/tests/test_qadapters.py index 050d60ef3..7a4240170 100644 --- a/abipy/flowtk/tests/test_qadapters.py +++ b/abipy/flowtk/tests/test_qadapters.py @@ -10,6 +10,10 @@ from abipy.flowtk import qutils as qu +def safe_load(string): + return yaml.YAML(typ='safe', pure=True).load(string) + + class OmpEnvTest(AbipyTest): def test_base(self): assert OmpEnv(OMP_NUM_THREADS=1).OMP_NUM_THREADS == "1" @@ -40,7 +44,7 @@ def test_slurm_parse_timestr(self): @unittest.skipIf(sys.platform.startswith("win"), "Skipping for Windows") class QadapterTest(AbipyTest): - QDICT = yaml.safe_load("""\ + QDICT = safe_load("""\ priority: 1 queue: qtype: slurm @@ -61,7 +65,7 @@ class QadapterTest(AbipyTest): num_nodes: 3 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 8 Gb + mem_per_node: 8 GB """) def test_base(self): @@ -119,7 +123,7 @@ def test_base(self): aequal(new_script, script) # Test can_run and distribute - # The hardware has num_nodes=3, sockets_per_node=2, cores_per_socket=4, mem_per_node="8 Gb" + # The hardware has num_nodes=3, sockets_per_node=2, cores_per_socket=4, mem_per_node="8 GB" afalse(qad.can_run_pconf(ParalConf(mpi_ncpus=hw.num_cores+1, omp_ncpus=1, mem_per_cpu=0.1))) afalse(qad.can_run_pconf(ParalConf(mpi_ncpus=4, omp_ncpus=9, mem_per_cpu=0.1))) afalse(qad.can_run_pconf(ParalConf(mpi_ncpus=4, omp_ncpus=1, mem_per_cpu=10 * giga))) @@ -171,7 +175,7 @@ class MyAdapter(SlurmAdapter): @unittest.skipIf(sys.platform.startswith("win"), "Skipping for Windows") class ShellAdapterTest(AbipyTest): """Test suite for Shell adapter.""" - QDICT = yaml.safe_load("""\ + QDICT = safe_load("""\ priority: 1 queue: qname: localhost @@ -188,7 +192,7 @@ class ShellAdapterTest(AbipyTest): num_nodes: 1 sockets_per_node: 1 cores_per_socket: 1 - mem_per_node: 4 Gb + mem_per_node: 4 GB """) def test_methods(self): qad = make_qadapter(**self.QDICT) @@ -220,7 +224,7 @@ def test_methods(self): @unittest.skipIf(sys.platform.startswith("win"), "Skipping for Windows") class SlurmAdapterTest(AbipyTest): """Test suite for Slurm adapter.""" - QDICT = yaml.safe_load("""\ + QDICT = safe_load("""\ priority: 5 queue: qtype: slurm @@ -232,6 +236,10 @@ class SlurmAdapterTest(AbipyTest): timelimit: 10:00 min_cores: 3 max_cores: 16 + limits_for_task_class: { + ScfTask: {min_cores: 1, max_cores: 1}, + KerangeTask: {min_cores: 1, max_cores: 2}, + } job: mpi_runner: mpirun mpi_runner_options: --bind-to None @@ -249,7 +257,7 @@ class SlurmAdapterTest(AbipyTest): num_nodes: 2 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 8 Gb + mem_per_node: 8 GB """) def test_methods(self): @@ -264,6 +272,7 @@ def test_methods(self): assert (qad.mpi_procs, qad.omp_threads) == (3, 1) assert qad.priority == 5 and qad.num_launches == 0 and qad.last_launch is None + qad.set_mpi_procs(4) s = qad.get_script_str("job_name", "/launch_dir", "executable", "qout_path", "qerr_path", @@ -287,7 +296,7 @@ def test_methods(self): ulimit -s unlimited # Load Modules -module purge +module --force purge module load intel/compilerpro/13.0.1.117 2>> mods.err module load fftw3/intel/3.3 2>> mods.err @@ -302,11 +311,21 @@ def test_methods(self): #qad.set_omp_threads(1) #assert qad.has_omp + # Test limits_for_task_class and update limits API. + assert "ScfTask" in qad.limits_for_task_class + limits_for_task = qad.limits_for_task_class["KerangeTask"] + assert limits_for_task["min_cores"] == 1 + assert limits_for_task["max_cores"] == 2 + assert qad.max_cores == 16 + qad.update_limits(limits_for_task) + assert qad.min_cores == limits_for_task["min_cores"] + assert qad.max_cores == limits_for_task["max_cores"] + @unittest.skipIf(sys.platform.startswith("win"), "Skipping for Windows") class PbsProadapterTest(AbipyTest): """Test suite for PbsPro adapter.""" - QDICT = yaml.safe_load("""\ + QDICT = safe_load("""\ priority: 1 queue: qtype: pbspro @@ -323,8 +342,8 @@ class PbsProadapterTest(AbipyTest): num_nodes: 100 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 8 Gb""") - QDICT_SHARED = yaml.safe_load("""\ + mem_per_node: 8 GB""") + QDICT_SHARED = safe_load("""\ priority: 1 queue: qtype: pbspro @@ -344,8 +363,8 @@ class PbsProadapterTest(AbipyTest): num_nodes: 100 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 48000 Mb""") - QDICT_EXCLUSIVE = yaml.safe_load("""\ + mem_per_node: 48000 MB""") + QDICT_EXCLUSIVE = safe_load("""\ priority: 1 queue: qtype: pbspro @@ -365,14 +384,14 @@ class PbsProadapterTest(AbipyTest): num_nodes: 100 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 48000 Mb""") + mem_per_node: 48000 MB""") def test_methods(self): self.maxDiff = None aequal = self.assertEqual qad = make_qadapter(**self.QDICT) - self.assertMSONable(qad) + self.assert_msonable(qad) print(qad) print(qad.mpi_runner) @@ -439,7 +458,7 @@ def test_methods(self): qad_shared.set_mpi_procs(64) qad_shared.set_mem_per_proc(3500) qad_shared.set_master_mem_overhead(4000) - self.assertMSONable(qad_shared) + self.assert_msonable(qad_shared) aequal(qad_shared.get_select(), '1:ncpus=1:mem=7500mb:mpiprocs=1+' '63:ncpus=1:mem=3500mb:mpiprocs=1') @@ -449,7 +468,7 @@ def test_methods(self): qad_exclusive.set_mpi_procs(47) qad_exclusive.set_mem_per_proc(2000) qad_exclusive.set_master_mem_overhead(1) - self.assertMSONable(qad_exclusive) + self.assert_msonable(qad_exclusive) aequal(qad_exclusive.get_select(), '1:ncpus=23:mem=48000mb:mpiprocs=23+' '1:ncpus=24:mem=48000mb:mpiprocs=24') qad_exclusive.set_mpi_procs(48) diff --git a/abipy/flowtk/tests/test_qha.py b/abipy/flowtk/tests/test_qha.py index 3746cb588..609b2eeaf 100644 --- a/abipy/flowtk/tests/test_qha.py +++ b/abipy/flowtk/tests/test_qha.py @@ -10,10 +10,10 @@ def test_qhaflow(self): """Testing QhaFlow.""" workdir = self.mkdtemp() scf_input = self.get_gsinput_alas_ngkpt(ngkpt=[4, 4, 4]) - v0 = scf_input.structure.volume - volumes = [0.98 * v0, v0, v0 * 1.02] - flow = QhaFlow.from_scf_input(workdir, scf_input, volumes, ngqpt=[2, 2, 2], - with_becs=False, edos_ngkpt=[4, 4, 4], metadata={"mpi_id": 123}) + #v0 = scf_input.structure.volume + #volumes = [0.98 * v0, v0, v0 * 1.02] + flow = QhaFlow.from_scf_input(workdir, scf_input, ngqpt=[2, 2, 2], + with_becs=False, edos_ngkpt=[4, 4, 4]) #, metadata={"mpi_id": 123}) flow.allocate() flow.check_status() diff --git a/abipy/flowtk/tests/test_tasks.py b/abipy/flowtk/tests/test_tasks.py index fa9c872d2..759914d46 100644 --- a/abipy/flowtk/tests/test_tasks.py +++ b/abipy/flowtk/tests/test_tasks.py @@ -5,8 +5,7 @@ from abipy.flowtk.tasks import * from abipy.flowtk.tasks import TaskPolicy, ParalHints -test_dir = os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", - 'test_files', "abinit") +test_dir = os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", 'test_files', "abinit") class TaskManagerTest(AbipyTest): @@ -29,7 +28,7 @@ class TaskManagerTest(AbipyTest): num_nodes: 10 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB job: modules: - intel/compilerpro/13.0.1.117 @@ -38,44 +37,42 @@ class TaskManagerTest(AbipyTest): PATH: /home/user/tmp_intel13/src/98_main/:/home/user//NAPS/intel13/bin:$PATH LD_LIBRARY_PATH: /home/user/NAPS/intel13/lib:$LD_LIBRARY_PATH mpi_runner: mpirun - -# Connection to the MongoDb database (optional) -db_connector: - enabled: no - database: abinit - collection: test - #host: 0.0.0.0 - #port: 8080 - #user: gmatteo - #password: helloworld """ def test_base(self): """ Simple unit tests for Qadapter subclasses. A more complete coverage would require integration testing. """ - aequal, atrue, afalse = self.assertEqual, self.assertTrue, self.assertFalse # Initialize the object from YAML file. slurm_manager = TaskManager.from_string(self.MANAGER) repr(slurm_manager); str(slurm_manager) - aequal(slurm_manager.num_cores, 4) - aequal(slurm_manager.mpi_procs, 4) - aequal(slurm_manager.omp_threads, 1) - afalse(slurm_manager.has_db) + assert slurm_manager.num_cores == 4 + assert slurm_manager.mpi_procs == 4 + assert slurm_manager.omp_threads == 1 + assert slurm_manager.has_queue # Make a simple shell manager that will inherit the initial configuration. shell_manager = slurm_manager.to_shell_manager(mpi_procs=1) - aequal(shell_manager.mpi_procs, 1) - aequal(shell_manager.num_cores, 1) + assert shell_manager.mpi_procs == 1 + assert shell_manager.num_cores == 1 + assert not shell_manager.has_queue # check that the initial slurm_manger has not been modified - aequal(slurm_manager.num_cores, 4) + assert slurm_manager.num_cores == 4 # Test pickle self.serialize_with_pickle(slurm_manager, test_eq=False) - self.assertMSONable(slurm_manager) + self.assert_msonable(slurm_manager) + + fixed_manager = slurm_manager.new_with_fixed_mpi_omp(mpi_procs=5, omp_threads=2) + assert fixed_manager.policy.autoparal == 0 + assert fixed_manager.mpi_procs == 5 + assert fixed_manager.num_cores == 10 + for qad in fixed_manager.qads: + assert qad.min_cores == 10 + assert qad.max_cores == 10 class ParalHintsTest(AbipyTest): @@ -120,15 +117,14 @@ def test_base(self): ... """ tmpfile = self.tmpfile_write(s) - aequal = self.assertEqual # Parse the file with the configurations. confs = ParalHintsParser().parse(tmpfile) - print("all_confs:\n", confs) - aequal(confs.max_cores, 4) - aequal(confs.max_mem_per_proc, 15.77) - aequal(confs.max_speedup, 3.333333332) - aequal(confs.max_efficiency, 1.0) + str(confs) + assert confs.max_cores == 4 + assert confs.max_mem_per_proc == 15.77 + assert confs.max_speedup == 3.333333332 + assert confs.max_efficiency == 1.0 # Test as_dict, from_dict ParalHints.from_dict(confs.as_dict()) @@ -181,7 +177,7 @@ class AbinitBuildTest(AbipyTest): def test_abinit_build(self): from abipy.flowtk import AbinitBuild build = AbinitBuild() - print(build) + str(build) assert build.has_netcdf #assert not build.has_omp #assert build.has_mpi diff --git a/abipy/flowtk/tests/test_utils.py b/abipy/flowtk/tests/test_utils.py index 174e681e6..2e6a76c1d 100644 --- a/abipy/flowtk/tests/test_utils.py +++ b/abipy/flowtk/tests/test_utils.py @@ -1,4 +1,7 @@ # coding: utf-8 +import os +import abipy.data as abidata + from abipy.core.testing import AbipyTest from abipy.flowtk.utils import * @@ -13,6 +16,36 @@ # assert fixer.fix_paths('/foo/out_1DEN17') == {'/foo/out_1DEN17': '/foo/out_1DEN'} # assert fixer.fix_paths('/foo/out_1DEN5.nc') == {'/foo/out_1DEN5.nc': '/foo/out_1DEN.nc'} + + +class DirectorTest(AbipyTest): + + def test_directory_api(self): + path1 = os.path.join(abidata.dirpath, "refs", "si_ebands") + direc1 = Directory(path1) + assert repr(direc1) + assert str(direc1) + assert direc1 == direc1 + assert direc1 != Directory("/tmp") + assert direc1.path == path1 + assert direc1.relpath == os.path.relpath(path1) + assert direc1.basename == os.path.basename(path1) + p = direc1.path_join("foo", "bar") + assert p == os.path.join(direc1.path, "foo", "bar") + assert direc1.exists + + den_filepath = direc1.has_abiext("DEN") + assert den_filepath.endswith("si_DEN.nc") + assert direc1.need_abiext("DEN") == den_filepath + + with self.assertRaises(ValueError): + # There are multiple WFK.nc files in the same directory + direc1.has_abiext("WFK") + + with self.assertRaises(FileNotFoundError): + direc1.need_abiext("DDB") + + class RpnTest(AbipyTest): def test_mongodb_like_conditions(self): diff --git a/abipy/flowtk/utils.py b/abipy/flowtk/utils.py index 16b1ffcf4..55090f635 100644 --- a/abipy/flowtk/utils.py +++ b/abipy/flowtk/utils.py @@ -1,5 +1,7 @@ # coding: utf-8 """Tools and helper functions for abinit calculations""" +from __future__ import annotations + import os import re import collections @@ -7,6 +9,7 @@ import operator import numpy as np +from typing import Union, Optional from fnmatch import fnmatch from monty.collections import dict2namedtuple from monty.string import list_strings @@ -18,9 +21,9 @@ logger = logging.getLogger(__name__) -def as_bool(s): +def as_bool(s: Union[str, bool]) -> bool: """ - Convert a string into a boolean. + Convert a string into a boolean value. >>> assert as_bool(True) is True and as_bool("Yes") is True and as_bool("false") is False """ @@ -35,12 +38,12 @@ def as_bool(s): raise ValueError("Don't know how to convert type %s: %s into a boolean" % (type(s), s)) -class File(object): +class File: """ Very simple class used to store file basenames, absolute paths and directory names. Provides wrappers for the most commonly used functions defined in os.path. """ - def __init__(self, path): + def __init__(self, path: str): self._path = os.path.abspath(path) def __repr__(self): @@ -56,17 +59,17 @@ def __ne__(self, other): return not self.__eq__(other) @property - def path(self): + def path(self) -> str: """Absolute path of the file.""" return self._path @property - def basename(self): + def basename(self) -> str: """File basename.""" return os.path.basename(self.path) @property - def relpath(self): + def relpath(self) -> str: """Relative path.""" try: return os.path.relpath(self.path) @@ -75,35 +78,35 @@ def relpath(self): return self.path @property - def dirname(self): + def dirname(self) -> str: """Absolute path of the directory where the file is located.""" return os.path.dirname(self.path) @property - def exists(self): + def exists(self) -> bool: """True if file exists.""" return os.path.exists(self.path) @property - def isncfile(self): + def isncfile(self) -> bool: """True if self is a NetCDF file""" return self.basename.endswith(".nc") - def chmod(self, mode): + def chmod(self, mode: str) -> None: """Change the access permissions of a file.""" os.chmod(self.path, mode) - def read(self): + def read(self) -> str: """Read data from file.""" with open(self.path, "r") as f: return f.read() - def readlines(self): + def readlines(self) -> list[str]: """Read lines from files.""" with open(self.path, "r") as f: return f.readlines() - def write(self, string): + def write(self, string: str): """Write string to file.""" self.make_dir() with open(self.path, "w") as f: @@ -112,28 +115,28 @@ def write(self, string): else: return f.write(string) - def writelines(self, lines): + def writelines(self, lines: list[str]): """Write a list of strings to file.""" self.make_dir() with open(self.path, "w") as f: return f.writelines(lines) - def make_dir(self): + def make_dir(self) -> None: """Make the directory where the file is located.""" if not os.path.exists(self.dirname): os.makedirs(self.dirname) - def remove(self): + def remove(self) -> None: """Remove the file.""" try: os.remove(self.path) except Exception: pass - def move(self, dst): + def move(self, dst: str) -> None: """ - Recursively move a file or directory to another location. This is - similar to the Unix "mv" command. + Recursively move a file or directory to another location. + This is similar to the Unix "mv" command. """ shutil.move(self.path, dst) @@ -141,7 +144,7 @@ def get_stat(self): """Results from os.stat""" return os.stat(self.path) - def getsize(self): + def getsize(self) -> int: """ Return the size, in bytes, of path. Return 0 if the file is empty or it does not exist. @@ -150,12 +153,12 @@ def getsize(self): return os.path.getsize(self.path) -class Directory(object): +class Directory: """ Very simple class that provides helper functions wrapping the most commonly used functions defined in os.path. """ - def __init__(self, path): + def __init__(self, path: str): self._path = os.path.abspath(path) def __repr__(self): @@ -171,21 +174,21 @@ def __ne__(self, other): return not self.__eq__(other) @property - def path(self): + def path(self) -> str: """Absolute path of the directory.""" return self._path @property - def relpath(self): + def relpath(self) -> str: """Relative path.""" return os.path.relpath(self.path) @property - def basename(self): + def basename(self) -> str: """Directory basename.""" return os.path.basename(self.path) - def path_join(self, *p): + def path_join(self, *p) -> str: """ Join two or more pathname components, inserting '/' as needed. If any component is an absolute path, all previous path components will be discarded. @@ -193,11 +196,11 @@ def path_join(self, *p): return os.path.join(self.path, *p) @property - def exists(self): + def exists(self) -> bool: """True if file exists.""" return os.path.exists(self.path) - def makedirs(self): + def makedirs(self) -> None: """ Super-mkdir; create a leaf directory and all intermediate ones. Works like mkdir, except that any intermediate path segment (not @@ -206,17 +209,17 @@ def makedirs(self): if not self.exists: os.makedirs(self.path) - def rmtree(self): + def rmtree(self) -> None: """Recursively delete the directory tree""" shutil.rmtree(self.path, ignore_errors=True) - def copy_r(self, dst): + def copy_r(self, dst: str) -> None: """ Implements a recursive copy function similar to Unix's "cp -r" command. """ return copy_r(self.path, dst) - def clean(self): + def clean(self) -> None: """Remove all files in the directory tree while preserving the directory""" for path in self.list_filepaths(): try: @@ -224,11 +227,11 @@ def clean(self): except Exception: pass - def path_in(self, file_basename): + def path_in(self, file_basename: str) -> str: """Return the absolute path of filename in the directory.""" return os.path.join(self.path, file_basename) - def list_filepaths(self, wildcard=None): + def list_filepaths(self, wildcard: Optional[str] = None) -> list[str]: """ Return the list of absolute filepaths in the directory. @@ -241,7 +244,7 @@ def list_filepaths(self, wildcard=None): """ # Select the files in the directory. fnames = [f for f in os.listdir(self.path)] - filepaths = filter(os.path.isfile, [os.path.join(self.path, f) for f in fnames]) + filepaths = list(filter(os.path.isfile, [os.path.join(self.path, f) for f in fnames])) if wildcard is not None: # Filter using shell patterns. @@ -249,17 +252,35 @@ def list_filepaths(self, wildcard=None): filepaths = [path for path in filepaths if w.match(os.path.basename(path))] #filepaths = WildCard(wildcard).filter(filepaths) - return filepaths + return sorted(filepaths) + + def need_abiext(self, ext: str) -> str: + """ + Returns the absolute path of the ABINIT file with extension `ext`. + Support both Fortran files and netcdf files. In the later case, + we check whether a file with extension ext + ".nc" is present in the directory. + + Raises: FileNotFoundError if file cannot be found. + """ + path = self.has_abiext(ext, single_file=True) + if not path: + raise FileNotFoundError(f"Cannot find file with extension: `{ext}` in directory `{repr(self)}`") + + return path - def has_abiext(self, ext, single_file=True): + def has_abiext(self, ext: str, single_file: bool = True) -> str: """ - Returns the absolute path of the ABINIT file with extension ext. + Returns the absolute path of the ABINIT file with extension `ext`. Support both Fortran files and netcdf files. In the later case, - we check whether a file with extension ext + ".nc" is present - in the directory. Returns empty string is file is not present. + we check whether a file with extension ext + ".nc" is present in the directory. + Returns empty string is file is not present. + + Args: + ext: File extension. `.nc` is not needed unless you enforce netcdf format. + single_file: If None, allow for multiple matches and return the first one. Raises: - `ValueError` if multiple files with the given ext are found. + `ValueError` if multiple files with the given extention `ext` are found and `single_file` is True. This implies that this method is not compatible with multiple datasets. """ if ext != "abo": @@ -293,7 +314,7 @@ def has_abiext(self, ext, single_file=True): return files[0] if single_file else files - def symlink_abiext(self, inext, outext): + def symlink_abiext(self, inext: str, outext: str) -> int: """ Create a simbolic link (outext --> inext). The file names are implicitly given by the ABINIT file extension. @@ -310,30 +331,33 @@ def symlink_abiext(self, inext, outext): """ infile = self.has_abiext(inext) if not infile: - raise RuntimeError('no file with extension %s in %s' % (inext, self)) + raise RuntimeError('no file with extension `%s` in `%s`' % (inext, self)) for i in range(len(infile) - 1, -1, -1): if infile[i] == '_': break else: - raise RuntimeError('Extension %s could not be detected in file %s' % (inext, infile)) + raise RuntimeError('Extension `%s` could not be detected in file `%s`' % (inext, infile)) outfile = infile[:i] + '_' + outext + if infile.endswith(".nc") and not outfile.endswith(".nc"): + outfile = outfile + ".nc" if os.path.exists(outfile): if os.path.islink(outfile): if os.path.realpath(outfile) == infile: - logger.debug("link %s already exists but it's ok because it points to the correct file" % outfile) + logger.debug("Link `%s` already exists but it's OK because it points to the correct file" % outfile) return 0 else: - raise RuntimeError("Expecting link at %s already exists but it does not point to %s" % (outfile, infile)) + raise RuntimeError("Expecting link at `%s` already exists but it does not point to `%s`" % (outfile, infile)) else: - raise RuntimeError('Expecting link at %s but found file.' % outfile) + raise RuntimeError('Expecting link at `%s` but found file.' % outfile) os.symlink(infile, outfile) + return 0 - def rename_abiext(self, inext, outext): + def rename_abiext(self, inext: str, outext: str) -> int: """Rename the Abinit file with extension inext with the new extension outext""" infile = self.has_abiext(inext) if not infile: @@ -349,7 +373,7 @@ def rename_abiext(self, inext, outext): shutil.move(infile, outfile) return 0 - def copy_abiext(self, inext, outext): + def copy_abiext(self, inext: str, outext: str) -> int: """Copy the Abinit file with extension inext to a new file with the extension outext""" infile = self.has_abiext(inext) if not infile: @@ -365,7 +389,7 @@ def copy_abiext(self, inext, outext): shutil.copy(infile, outfile) return 0 - def remove_exts(self, exts): + def remove_exts(self, exts: Union[str, list[str]]) -> list[str]: """ Remove the files with the given extensions. Unlike rmtree, this function preserves the directory path. Return list with the absolute paths of the files that have been removed. @@ -462,6 +486,11 @@ def find_1den_files(self): # moving to the new approach requires some careful testing besides not all files support the get*_path syntax! _EXT2VARS = { + # File extension -> {varname: value} + # NB: Don't enforce the .nc file extension if Abinit supports both Fortran and netcdf files. + # For instance, use `in_POT` instead of `in_POT.nc` as this file can be produced in both formats. + # The in_POT syntax indeed can handle both cases as Abinit will first try to find a Fortran file + # with extension in_POT and then in_POT.nc if the file is not found. "DEN": {"irdden": 1}, "WFK": {"irdwfk": 1}, "WFQ": {"irdwfq": 1}, @@ -480,10 +509,17 @@ def find_1den_files(self): "EFMAS.nc": {"irdefmas": 1}, # Abinit does not implement getkden and irdkden but relies on irden "KDEN": {}, #{"irdkden": 1}, + "KERANGE.nc": {"getkerange_filepath": '"indata/in_KERANGE.nc"'}, + "POT": {"getpot_filepath" : '"indata/in_POT"'}, + "SIGEPH": {"getsigeph_filepath": '"indata/in_SIGEPH.nc"'}, + "DKDK": {}, # irddkdk is not defined. + #"DKDE": {"getdkde": 1}, + #"DELFD": {"getdelfd": 1}, + "GSTORE": {"getgstore_filepath": '"indata/in_GSTORE.nc"'}, } -def irdvars_for_ext(ext): +def irdvars_for_ext(ext) -> dict: """ Returns a dictionary with the ABINIT variables that must be used to read the file with extension ext. @@ -491,12 +527,12 @@ def irdvars_for_ext(ext): return _EXT2VARS[ext].copy() -def abi_extensions(): +def abi_extensions() -> list: """List with all the ABINIT extensions that are registered.""" return list(_EXT2VARS.keys())[:] -def abi_splitext(filename): +def abi_splitext(filename: str) -> tuple[str, str]: """ Split the ABINIT extension from a filename. "Extension" are found by searching in an internal database. @@ -515,7 +551,7 @@ def abi_splitext(filename): known_extensions = abi_extensions() - # This algorith fails if we have two files + # This algorithm fails if we have two files # e.g. HAYDR_SAVE, ANOTHER_HAYDR_SAVE for i in range(len(filename) - 1, -1, -1): ext = filename[i:] @@ -531,7 +567,7 @@ def abi_splitext(filename): return root, ext -class FilepathFixer(object): +class FilepathFixer: """ This object modifies the names of particular output files produced by ABINIT so that the file extension is preserved. @@ -545,7 +581,7 @@ class FilepathFixer(object): the initialization of the `AbinitFlow`. Unfortunately, ABINIT developers like to append extra stuff - to the initial extension and therefore we have to call + to the initial extension therefore we have to call `FilepathFixer` to fix the output files produced by the run. Example: @@ -565,18 +601,18 @@ def __init__(self): regs["1DEN"] = re.compile(r"(\w+_)1DEN(\d+)(\.nc)?$") @staticmethod - def _fix_1WF(match): + def _fix_1WF(match) -> str: root, pert, ncext = match.groups() if ncext is None: ncext = "" return root + "1WF" + ncext @staticmethod - def _fix_1DEN(match): + def _fix_1DEN(match) -> str: root, pert, ncext = match.groups() if ncext is None: ncext = "" return root + "1DEN" + ncext - def _fix_path(self, path): + def _fix_path(self, path: str) -> tuple: for ext, regex in self.regs.items(): head, tail = os.path.split(path) @@ -588,7 +624,7 @@ def _fix_path(self, path): return None, None - def fix_paths(self, paths): + def fix_paths(self, paths) -> dict: """ Fix the filenames in the iterable paths @@ -661,7 +697,7 @@ def _bop_divisible(num1, num2): def map2rpn(map, obj): """ - Convert a Mongodb-like dictionary to a RPN list of operands and operators. + Convert a Mongodb-like dictionary to an RPN list of operands and operators. Reverse Polish notation (RPN) is a mathematical notation in which every operator follows all of its operands, e.g. @@ -756,7 +792,7 @@ def evaluate_rpn(rpn): return vals_stack[0] -class Condition(object): +class Condition: """ This object receives a dictionary that defines a boolean condition whose syntax is similar to the one used in mongodb (albeit not all the operators available in mongodb are supported here). @@ -809,7 +845,7 @@ def __call__(self, obj): return False -class Editor(object): +class Editor: """ Wrapper class that calls the editor specified by the user or the one specified in the $EDITOR env variable. @@ -848,7 +884,7 @@ def user_wants_to_exit(): return answer.lower().strip() in ["n", "no"] -class SparseHistogram(object): +class SparseHistogram: def __init__(self, items, key=None, num=None, step=None): if num is None and step is None: @@ -890,7 +926,7 @@ def plot(self, ax=None, **kwargs): return fig -class Dirviz(object): +class Dirviz: #file_color = np.array((255, 0, 0)) / 255 #dir_color = np.array((0, 0, 255)) / 255 diff --git a/abipy/flowtk/works.py b/abipy/flowtk/works.py index 2bf53b402..bf8fcb2aa 100644 --- a/abipy/flowtk/works.py +++ b/abipy/flowtk/works.py @@ -2,6 +2,7 @@ """ Works for Abinit """ +from __future__ import annotations import os import shutil @@ -9,23 +10,36 @@ import abc import collections import numpy as np +import pandas as pd +from typing import Iterator, Union # Any from monty.collections import AttrDict from monty.itertools import chunks from monty.functools import lazy_property from monty.fnmatch import WildCard +from monty.dev import deprecated from pydispatch import dispatcher from pymatgen.core.units import EnergyArray -from . import wrappers -from .nodes import Dependency, Node, NodeError, NodeResults, FileNode #, check_spectator -from .tasks import (Task, AbinitTask, ScfTask, NscfTask, DfptTask, PhononTask, ElasticTask, DdkTask, EffMassTask, - BseTask, RelaxTask, DdeTask, BecTask, ScrTask, SigmaTask, TaskManager, - DteTask, EphTask, CollinearThenNonCollinearScfTask) - +from abipy.tools.typing import TYPE_CHECKING, Figure +from abipy.flowtk import wrappers +from .nodes import Dependency, Node, NodeError, NodeResults, FileNode, Status +from .tasks import (Task, AbinitTask, ScfTask, NscfTask, DfptTask, PhononTask, ElasticTask, DdkTask, + DkdkTask, QuadTask, FlexoETask, DdeTask, BecTask, + EffMassTask, BseTask, RelaxTask, ScrTask, SigmaTask, GwrTask, TaskManager, + DteTask, EphTask, KerangeTask, CollinearThenNonCollinearScfTask) from .utils import Directory -from .netcdf import ETSF_Reader, NetcdfReader +from .netcdf import NetcdfReader +try: + from .netcdf import ETSF_Reader +except ImportError: + from .netcdf import EtsfReader as ETSF_Reader from .abitimer import AbinitTimerParser +if TYPE_CHECKING: # needed to avoid circular imports + from .flows import Flow + from abipy.abio.inputs import AbinitInput + + __author__ = "Matteo Giantomassi" __copyright__ = "Copyright 2013, The Materials Project" __version__ = "0.1" @@ -45,14 +59,16 @@ "GKKPWork", "BecWork", "DteWork", + "ConducWork", ] class WorkResults(NodeResults): + JSON_SCHEMA = NodeResults.JSON_SCHEMA.copy() @classmethod - def from_node(cls, work): + def from_node(cls, work: Work) -> WorkResults: """Initialize an instance from a |Work| instance.""" new = super().from_node(work) @@ -80,22 +96,22 @@ class BaseWork(Node, metaclass=abc.ABCMeta): # interface modeled after subprocess.Popen @property @abc.abstractmethod - def processes(self): + def processes(self) -> list: """Return a list of objects that support the `subprocess.Popen` protocol.""" - def poll(self): + def poll(self) -> list: """ Check if all child processes have terminated. Set and return returncode attribute. """ return [task.poll() for task in self] - def wait(self): + def wait(self) -> list: """ Wait for child processed to terminate. Set and return returncode attribute. """ return [task.wait() for task in self] - def communicate(self, input=None): + def communicate(self, input=None) -> list[tuple]: """ Interact with processes: Send data to stdin. Read data from stdout and stderr, until end-of-file is reached. @@ -108,7 +124,7 @@ def communicate(self, input=None): return [task.communicate(input) for task in self] @property - def returncodes(self): + def returncodes(self) -> list[int]: """ The children return codes, set by poll() and wait() (and indirectly by communicate()). A None value indicates that the process hasn't terminated yet. @@ -117,7 +133,7 @@ def returncodes(self): return [task.returncode for task in self] @property - def ncores_reserved(self): + def ncores_reserved(self) -> int: """ Returns the number of cores reserved in this moment. A core is reserved if it's still not running but @@ -126,7 +142,7 @@ def ncores_reserved(self): return sum(task.manager.num_cores for task in self if task.status == task.S_SUB) @property - def ncores_allocated(self): + def ncores_allocated(self) -> int: """ Returns the number of CPUs allocated in this moment. A core is allocated if it's running a task or if we have @@ -135,14 +151,14 @@ def ncores_allocated(self): return sum(task.manager.num_cores for task in self if task.status in [task.S_SUB, task.S_RUN]) @property - def ncores_used(self): + def ncores_used(self) -> int: """ Returns the number of cores used in this moment. A core is used if there's a job that is running on it. """ return sum(task.manager.num_cores for task in self if task.status == task.S_RUN) - def fetch_task_to_run(self): + def fetch_task_to_run(self) -> Union[Task, None]: """ Returns the first task that is ready to run or None if no task can be submitted at present" @@ -164,7 +180,7 @@ def fetch_task_to_run(self): self.history.warning("Possible deadlock in fetch_task_to_run!") return None - def fetch_alltasks_to_run(self): + def fetch_alltasks_to_run(self) -> list[Task]: """ Returns a list with all the tasks that can be submitted. Empty list if not task has been found. @@ -175,10 +191,10 @@ def fetch_alltasks_to_run(self): def setup(self, *args, **kwargs): """Method called before submitting the calculations.""" - def _setup(self, *args, **kwargs): + def _setup(self, *args, **kwargs) -> None: self.setup(*args, **kwargs) - def connect_signals(self): + def connect_signals(self) -> None: """ Connect the signals within the work. The |Work| is responsible for catching the important signals raised from @@ -187,9 +203,10 @@ def connect_signals(self): for task in self: dispatcher.connect(self.on_ok, signal=task.S_OK, sender=task) - def disconnect_signals(self): + def disconnect_signals(self) -> None: """ - Disable the signals within the work. This function reverses the process of `connect_signals` + Disable the signals within the work. + This function reverses the process of `connect_signals` """ for task in self: try: @@ -198,10 +215,9 @@ def disconnect_signals(self): self.history.debug(str(exc)) @property - def all_ok(self): + def all_ok(self) -> bool: return all(task.status == task.S_OK for task in self) - #@check_spectator def on_ok(self, sender): """ This callback is called when one task reaches status `S_OK`. @@ -231,7 +247,6 @@ def on_ok(self, sender): return AttrDict(returncode=1, message="Not all tasks are OK!") - #@check_spectator def on_all_ok(self): """ This method is called once the `Work` is completed i.e. when all tasks have reached status S_OK. @@ -242,15 +257,14 @@ def on_all_ok(self): returncode: 0 on success. message: a string that should provide a human-readable description of what has been performed. """ - return dict(returncode=0, message="Calling on_all_ok of the base class!") + return dict(returncode=0, message=f"Calling on_all_ok of {self.__class__.__name__}") def get_results(self, **kwargs): """ Method called once the calculations are completed. The base version returns a dictionary task_name: TaskResults for each task in self. """ - results = self.Results.from_node(self) - return results + return self.Results.from_node(self) def get_graphviz(self, engine="automatic", graph_attr=None, node_attr=None, edge_attr=None): """ @@ -354,8 +368,8 @@ def node_kwargs(node): class NodeContainer(metaclass=abc.ABCMeta): """ Mixin classes for `Work` and `Flow` objects providing helper functions - to register tasks in the container. The helper function call the - `register` method of the container. + to register tasks in the container. + The helper function call the `register` method of the container. """ # Abstract protocol for containers @@ -367,8 +381,8 @@ def register_task(self, *args, **kwargs): # TODO: shall flow.register_task return a Task or a Work? # Helper functions to register Task subclasses. - def register_scf_task(self, *args, **kwargs): - """Register a Scf task.""" + def register_scf_task(self, *args, **kwargs) -> ScfTask: + """Register a SCF task.""" kwargs["task_class"] = ScfTask return self.register_task(*args, **kwargs) @@ -377,12 +391,12 @@ def register_collinear_then_noncollinear_scf_task(self, *args, **kwargs): kwargs["task_class"] = CollinearThenNonCollinearScfTask return self.register_task(*args, **kwargs) - def register_nscf_task(self, *args, **kwargs): - """Register a nscf task.""" + def register_nscf_task(self, *args, **kwargs) -> NscfTask: + """Register a NSCF task.""" kwargs["task_class"] = NscfTask task = self.register_task(*args, **kwargs) - # Make sure parent producing DEN file is given + # Make sure the parent producing the DEN file is given. if task.is_work: task = task[-1] den_parent = task.find_parent_with_ext("DEN") if den_parent is None: @@ -390,7 +404,7 @@ def register_nscf_task(self, *args, **kwargs): if task.input.get("usekden", 0) == 1: # Meta-GGA calculation --> Add KDEN if not explicitly given. - # Assuming prtkden already set to 1 + # Assuming prtkden is already set to 1 # TODO: Abinit should automatically set it to 1 if usekden --> I'm not gonna fix the input at this level kden_parent = task.find_parent_with_ext("KDEN") if kden_parent is None: @@ -398,75 +412,140 @@ def register_nscf_task(self, *args, **kwargs): return task - def register_relax_task(self, *args, **kwargs): + def register_relax_task(self, *args, **kwargs) -> RelaxTask: """Register a task for structural optimization.""" kwargs["task_class"] = RelaxTask return self.register_task(*args, **kwargs) - def register_phonon_task(self, *args, **kwargs): + def register_phonon_task(self, *args, **kwargs) -> PhononTask: """Register a phonon task.""" kwargs["task_class"] = PhononTask return self.register_task(*args, **kwargs) - def register_elastic_task(self, *args, **kwargs): + def register_elastic_task(self, *args, **kwargs) -> ElasticTask: """Register an elastic task.""" kwargs["task_class"] = ElasticTask return self.register_task(*args, **kwargs) - def register_ddk_task(self, *args, **kwargs): + def register_ddk_task(self, *args, **kwargs) -> DdkTask: """Register a DDK task.""" kwargs["task_class"] = DdkTask return self.register_task(*args, **kwargs) - def register_effmass_task(self, *args, **kwargs): + def register_dkdk_task(self, *args, **kwargs) -> DkdkTask: + """Register a DkdkTask task.""" + kwargs["task_class"] = DkdkTask + return self.register_task(*args, **kwargs) + + def register_quad_task(self, *args, **kwargs) -> QuadTask: + """Register a QuadTask task.""" + kwargs["task_class"] = QuadTask + return self.register_task(*args, **kwargs) + + def register_flexoe_task(self, *args, **kwargs) -> FlexoETask: + """Register a FlexETask task.""" + kwargs["task_class"] = FlexoETask + return self.register_task(*args, **kwargs) + + def register_effmass_task(self, *args, **kwargs) -> EffMassTask: """Register a effective mass task.""" kwargs["task_class"] = EffMassTask - # FIXME: Hack to run it in sequential because effmass task does not support parallelism. kwargs.update({"manager": TaskManager.from_user_config().new_with_fixed_mpi_omp(1, 1)}) - return self.register_task(*args, **kwargs) + task = self.register_task(*args, **kwargs) + task.history.info("Enforcing sequential execution as effmass task does not support MPI") + return task - def register_scr_task(self, *args, **kwargs): + def register_scr_task(self, *args, **kwargs) -> ScrTask: """Register a screening task.""" kwargs["task_class"] = ScrTask return self.register_task(*args, **kwargs) - def register_sigma_task(self, *args, **kwargs): + def register_sigma_task(self, *args, **kwargs) -> SigmaTask: """Register a sigma task.""" kwargs["task_class"] = SigmaTask return self.register_task(*args, **kwargs) - def register_dde_task(self, *args, **kwargs): + def register_gwr_task(self, *args, **kwargs) -> GwrTask: + """Register a sigma task.""" + kwargs["task_class"] = GwrTask + task = self.register_task(*args, **kwargs) + gwr_task = task.input["gwr_task"] + #if gwr_task = "" + + return task + + def register_dde_task(self, *args, **kwargs) -> DdeTask: """Register a Dde task.""" kwargs["task_class"] = DdeTask return self.register_task(*args, **kwargs) - def register_dte_task(self, *args, **kwargs): + def register_dte_task(self, *args, **kwargs) -> DteTask: """Register a Dte task.""" kwargs["task_class"] = DteTask + # DteTask sets autoparal to 0 but we need more procs + manager = TaskManager.from_user_config() + max_cores = manager.qadapter.max_cores + new_manager = manager.new_with_fixed_mpi_omp(max_cores, 1) + kwargs.update({"manager": new_manager}) return self.register_task(*args, **kwargs) - def register_bec_task(self, *args, **kwargs): + def register_bec_task(self, *args, **kwargs) -> BecTask: """Register a BEC task.""" kwargs["task_class"] = BecTask return self.register_task(*args, **kwargs) - def register_bse_task(self, *args, **kwargs): + def register_bse_task(self, *args, **kwargs) -> BseTask: """Register a Bethe-Salpeter task.""" kwargs["task_class"] = BseTask return self.register_task(*args, **kwargs) - def register_eph_task(self, *args, **kwargs): + def register_eph_task(self, *args, **kwargs) -> EphTask: """Register an electron-phonon task.""" kwargs["task_class"] = EphTask eph_inp = args[0] - seq_manager = TaskManager.from_user_config().new_with_fixed_mpi_omp(1, 1) - if eph_inp.get("eph_frohlichm", 0) != 0 or abs(eph_inp.get("eph_task", 0)) == 15: - # FIXME: Hack to run task in sequential if calculation does not support MPI with nprocs > 1. - kwargs.update({"manager": seq_manager}) + eph_task = eph_inp.get("eph_task", 0) + msg = "" + + if eph_inp.get("eph_frohlichm", 0) != 0 or abs(eph_task) == 15: + msg = "Enforcing sequential execution as MPI with nprocs > 1 is not supported" + kwargs.update({"manager": TaskManager.from_user_config().new_with_fixed_mpi_omp(1, 1)}) + + if eph_task == -4: + # Computation of imaginary part of Sigma_eph. + msg = "For an optimal memory distribution, the number of MPI procs should be a multiple of 3*natom." + manager = TaskManager.from_user_config() + min_cores = manager.qadapter.min_cores + max_cores = manager.qadapter.max_cores + natom3 = 3 * len(eph_inp.structure) + mpi_procs = max(max_cores - max_cores % natom3, min_cores) + kwargs.update({"manager": manager.new_with_fixed_mpi_omp(mpi_procs, 1)}) + + if eph_task == 9: + # Kubo spectral function from SIGEPH.nc file. + nkptgw = eph_inp.vars["nkptgw"] + manager = TaskManager.from_user_config() + max_cores = manager.qadapter.max_cores + mpi_procs = max_cores + msg = "Enforcing mpi_procs = max_cores as autoparal is not yet implemented" + if max_cores > nkptgw: + msg = "Enforcing mpi_procs = nkptgw" + mpi_procs = nkptgw + + kwargs.update({"manager": manager.new_with_fixed_mpi_omp(mpi_procs, 1)}) - return self.register_task(*args, **kwargs) + task = self.register_task(*args, **kwargs) + if msg: task.history.info(msg) + return task + + def register_kerange_task(self, *args, **kwargs) -> KerangeTask: + """Register a kerange task.""" + kwargs["task_class"] = KerangeTask + kwargs.update({"manager": TaskManager.from_user_config().new_with_fixed_mpi_omp(1, 1)}) + task = self.register_task(*args, **kwargs) + task.history.info("Enforcing sequential execution as Kerange is not MPI parallelized although it's fast.") + return task - def walknset_vars(self, task_class=None, *args, **kwargs): + def walknset_vars(self, task_class=None, *args, **kwargs) -> None: """ Set the values of the ABINIT variables in the input files of the nodes @@ -503,6 +582,7 @@ class Work(BaseWork, NodeContainer): .. rubric:: Inheritance Diagram .. inheritance-diagram:: Work """ + def __init__(self, workdir=None, manager=None): """ Args: @@ -510,7 +590,6 @@ def __init__(self, workdir=None, manager=None): manager: |TaskManager| object. """ super().__init__() - self._tasks = [] if workdir is not None: @@ -519,18 +598,18 @@ def __init__(self, workdir=None, manager=None): if manager is not None: self.set_manager(manager) - def set_manager(self, manager): - """Set the |TaskManager| to use to launch the |Task|.""" + def set_manager(self, manager: TaskManager) -> None: + """Set the |TaskManager| to be used to launch the |Task|.""" self.manager = manager.deepcopy() for task in self: task.set_manager(manager) @property - def flow(self): + def flow(self) -> Flow: """The flow containing this |Work|.""" return self._flow - def set_flow(self, flow): + def set_flow(self, flow: Flow) -> None: """Set the flow associated to this |Work|.""" if not hasattr(self, "_flow"): self._flow = flow @@ -539,19 +618,19 @@ def set_flow(self, flow): raise ValueError("self._flow != flow") @lazy_property - def pos(self): - """The position of self in the |Flow|""" + def pos(self) -> int: + """The position of work in the |Flow|""" for i, work in enumerate(self.flow): if self == work: return i raise ValueError("Cannot find the position of %s in flow %s" % (self, self.flow)) @property - def pos_str(self): + def pos_str(self) -> str: """String representation of self.pos""" return "w" + str(self.pos) - def set_workdir(self, workdir, chroot=False): + def set_workdir(self, workdir: str, chroot=False) -> None: """Set the working directory. Cannot be set more than once unless chroot is True""" if not chroot and hasattr(self, "workdir") and self.workdir != workdir: raise ValueError("self.workdir != workdir: %s, %s" % (self.workdir, workdir)) @@ -567,62 +646,87 @@ def set_workdir(self, workdir, chroot=False): self.tmpdir = Directory(os.path.join(self.workdir, "tmpdata")) self.wdir = Directory(self.workdir) - def chroot(self, new_workdir): + def chroot(self, new_workdir: str) -> None: self.set_workdir(new_workdir, chroot=True) for i, task in enumerate(self): new_tdir = os.path.join(self.workdir, "t" + str(i)) task.set_workdir(new_tdir, chroot=True) - def __len__(self): + def __len__(self) -> int: return len(self._tasks) - def __iter__(self): + def __iter__(self) -> Iterator[Task]: return self._tasks.__iter__() - def __getitem__(self, slice): + def __getitem__(self, slice) -> Union[Task, list[Task]]: return self._tasks[slice] - def chunks(self, chunk_size): + def postpone_on_all_ok(self): + """ + This method should be called when additional tasks are added to the Work at runtime. + e.g inside an on_all_ok method. This call triggers the allocations of new tasks + so that the scheduler will continue execution since new tasks have been added + and the finalized flag is set to False. + """ + self.flow.allocate() + self.flow.build_and_pickle_dump() + self.finalized = False + + return super().on_all_ok() + + def chunks(self, chunk_size) -> list[Task]: """Yield successive chunks of tasks of lenght chunk_size.""" for tasks in chunks(self, chunk_size): yield tasks - def ipath_from_ext(self, ext): + def ipath_from_ext(self, ext: str) -> str: """ - Returns the path of the output file with extension ext. + Returns the path of the input file with extension ext. Use it when the file does not exist yet. """ return self.indir.path_in("in_" + ext) - def opath_from_ext(self, ext): + def opath_from_ext(self, ext: str) -> str: """ Returns the path of the output file with extension ext. Use it when the file does not exist yet. """ return self.outdir.path_in("out_" + ext) + def get_all_outdata_files_with_ext(self, ext: str) -> list: + """ + Returns list with all the output files produced in outdata + with extension `ext`. + """ + paths = [] + for task in self: + p = task.outdir.has_abiext(ext) + if p: + paths.append(p) + return paths + @property - def processes(self): + def processes(self) -> list: return [task.process for task in self] @property - def all_done(self): + def all_done(self) -> bool: """True if all the |Task| objects in the |Work| are done.""" return all(task.status >= task.S_DONE for task in self) @property - def isnc(self): + def isnc(self) -> bool: """True if norm-conserving calculation.""" return all(task.isnc for task in self) @property - def ispaw(self): + def ispaw(self) -> bool: """True if PAW calculation.""" return all(task.ispaw for task in self) @property - def status_counter(self): + def status_counter(self) -> collections.Counter: """ Returns a `Counter` object that counts the number of task with given status (use the string representation of the status as key). @@ -634,7 +738,7 @@ def status_counter(self): return counter - def allocate(self, manager=None): + def allocate(self, manager=None) -> None: """ This function is called once we have completed the initialization of the |Work|. It sets the manager of each task (if not already done) @@ -665,7 +769,8 @@ def allocate(self, manager=None): if task.workdir != task_workdir: raise ValueError("task.workdir != task_workdir: %s, %s" % (task.workdir, task_workdir)) - def register(self, obj, deps=None, required_files=None, manager=None, task_class=None): + def register(self, obj: Union[AbinitInput, Task], + deps=None, required_files=None, manager=None, task_class=None) -> Task: """ Registers a new |Task| and add it to the internal list, taking into account possible dependencies. @@ -715,23 +820,34 @@ def register(self, obj, deps=None, required_files=None, manager=None, task_class # Needed by NodeContainer register_task = register - def path_in_workdir(self, filename): + def path_in_workdir(self, filename: str) -> str: """Create the absolute path of filename in the working directory.""" return os.path.join(self.workdir, filename) - def setup(self, *args, **kwargs): + def setup(self, *args, **kwargs) -> None: """ Method called before running the calculations. The default implementation is empty. """ - def build(self, *args, **kwargs): + def build(self, *args, **kwargs) -> None: """Creates the top level directory.""" # Create the directories of the work. self.indir.makedirs() self.outdir.makedirs() self.tmpdir.makedirs() + # Add README.md file if set + readme_md = getattr(self, "readme_md", None) + if readme_md is not None: + with open(self.path_in_workdir("README.md"), "wt") as fh: + fh.write(readme_md) + + # Add abipy_meta.json file if set + data = getattr(self, "abipy_meta_json", None) + if data is not None: + self.write_json_in_workdir("abipy_meta.json", data) + # Build dirs and files of each task. for task in self: task.build(*args, **kwargs) @@ -740,7 +856,7 @@ def build(self, *args, **kwargs): self.connect_signals() @property - def status(self): + def status(self) -> Status: """ Returns the status of the work i.e. the minimum of the status of the tasks. """ @@ -768,7 +884,7 @@ def get_all_status(self, only_min=False): else: return status_list - def check_status(self): + def check_status(self) -> None: """Check the status of the tasks.""" # Recompute the status of the tasks # Ignore OK and LOCKED tasks. @@ -776,13 +892,56 @@ def check_status(self): if task.status in (task.S_OK, task.S_LOCKED): continue task.check_status() - # Take into account possible dependencies. Use a list instead of generators + # Take into account possible dependencies. for task in self: if task.status == task.S_LOCKED: continue if task.status < task.S_SUB and all(status == task.S_OK for status in task.deps_status): task.set_status(task.S_READY, "Status set to Ready") - def rmtree(self, exclude_wildcard=""): + def has_different_structures(self, rtol=1e-05, atol=1e-08) -> str: + """ + Check if structures are equivalent, return string with info about differences (if any). + """ + if len(self) <= 1: return "" + formulas = set([task.input.structure.composition.formula for task in self]) + if len(formulas) != 1: + return "Found structures with different full formulas: %s" % str(formulas) + + lines = [] + s0 = self[0].input.structure + for task in self[1:]: + s1 = task.input.structure + if not np.allclose(s0.lattice.matrix, s1.lattice.matrix, rtol=rtol, atol=atol): + lines.append("Structures have different lattice:") + if not np.allclose(s0.frac_coords, s1.frac_coords, rtol=rtol, atol=atol): + lines.append("Structures have different atomic positions:") + + return "\n".join(lines) + + def get_panel(self, **kwargs): + """ + Build panel with widgets to interact with the Work either in a notebook or in panel app. + This is the implementation provided by the base class. + Subclasses may provide specialized implementations. + """ + from abipy.panels.works import WorkPanel + return WorkPanel(work=self).get_panel(**kwargs) + + def get_dataframe(self, as_dict=False) -> pd.DataFrame: + """ + Return pandas dataframe task info or dictionary if as_dict is True. + This function should be called after work.get_status to update the status. + """ + rows = [] + for task in self: + d = task.get_dataframe(as_dict=True) + rows.append(d) + + if as_dict: return rows + + return pd.DataFrame(rows) + + def rmtree(self, exclude_wildcard: str = "") -> None: """ Remove all files and directories in the working directory @@ -803,22 +962,22 @@ def rmtree(self, exclude_wildcard=""): if not w.match(fname): os.remove(path) - def rm_indatadir(self): + def rm_indatadir(self) -> None: """Remove all the indata directories.""" for task in self: task.rm_indatadir() - def rm_outdatadir(self): + def rm_outdatadir(self) -> None: """Remove all the indata directories.""" for task in self: task.rm_outatadir() - def rm_tmpdatadir(self): + def rm_tmpdatadir(self) -> None: """Remove all the tmpdata directories.""" for task in self: task.rm_tmpdatadir() - def move(self, dest, isabspath=False): + def move(self, dest, isabspath=False) -> None: """ Recursively move self.workdir to another location. This is similar to the Unix "mv" command. The destination path must not already exist. If the destination already exists @@ -832,7 +991,7 @@ def move(self, dest, isabspath=False): shutil.move(self.workdir, dest) - def submit_tasks(self, wait=False): + def submit_tasks(self, wait=False) -> None: """ Submits the task in self and wait. TODO: change name. @@ -843,7 +1002,7 @@ def submit_tasks(self, wait=False): if wait: for task in self: task.wait() - def start(self, *args, **kwargs): + def start(self, *args, **kwargs) -> None: """ Start the work. Calls build and _setup first, then submit the tasks. Non-blocking call unless wait is set to True @@ -859,7 +1018,7 @@ def start(self, *args, **kwargs): # Submit tasks (does not block) self.submit_tasks(wait=wait) - def read_etotals(self, unit="Ha"): + def read_etotals(self, unit="Ha") -> EnergyArray: """ Reads the total energy from the GSR file produced by the task. @@ -875,14 +1034,14 @@ def read_etotals(self, unit="Ha"): gsr_path = task.outdir.has_abiext("GSR") etot = np.inf if gsr_path: - with ETSF_Reader(gsr_path) as r: + with EtsfReader(gsr_path) as r: etot = r.read_value("etotal") etotals.append(etot) return EnergyArray(etotals, "Ha").to(unit) - def parse_timers(self): + def parse_timers(self) -> AbinitTimerParser: """ Parse the TIMER section reported in the ABINIT output files. @@ -901,11 +1060,50 @@ class BandStructureWork(Work): """ Work for band structure calculations. + The first task performs the GS-SCF calculations, the second one computes the band dispersion + along an high-symmetry k-path. Finally, we have a list of NSCF tasks computing the e-DOS. + .. rubric:: Inheritance Diagram .. inheritance-diagram:: BandStructureWork """ - def __init__(self, scf_input, nscf_input, dos_inputs=None, workdir=None, manager=None): + @classmethod + def from_scf_input(cls, scf_input: AbinitInput, + dos_ngkpt, nb_extra=10, ndivsm=-20, + dos_shiftk=(0, 0, 0), prtdos=3) -> BandStructureWork: + """ + Build a BandStructureWork from an |AbinitInput| representing a GS-SCF calculation. + + Args: + scf_input: Input for the GS-SCF run. + dos_ngkpt: K-mesh for e-DOS. Set it to None to skip this task. + nb_extra: Extra bands to be added to the input nband. + ndivsm: if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. + This option is the recommended one if the k-path contains two consecutive high symmetry k-points + that are very close as ndivsm > 0 may produce a very large number of wavevectors. + prtdos: By default, we compute L-projections with tetrahedron method. + Set prtdos to zero to deactivate L-projections. + """ + # Build input for NSCF along k-path. + nscf_input = scf_input.make_ebands_input(ndivsm=ndivsm, tolwfr=1e-20, nscf_nband=None, nb_extra=nb_extra, + nstep=100) + nscf_input["prtdos"] = prtdos + #if prtdos != 0: nscf_input.set_ratpsh(ratsph_mode) + + dos_input = None + if dos_ngkpt is not None: + # Build input for NSCF with k-mesh. + dos_input = scf_input.make_edos_input(dos_ngkpt, shiftk=dos_shiftk, tolwfr=1e-20, nb_extra=nb_extra, nstep=100) + dos_input["prtdos"] = prtdos + #if prtdos != 0: dos_input.set_ratpsh(ratsph_mode) + + return cls(scf_input, nscf_input, [dos_input]) + + + def __init__(self, scf_input: AbinitInput, nscf_input: AbinitInput, + dos_inputs=None, workdir=None, manager=None): """ Args: scf_input: Input for the SCF run @@ -932,7 +1130,7 @@ def __init__(self, scf_input, nscf_input, dos_inputs=None, workdir=None, manager dos_task = self.register_nscf_task(dos_input, deps={self.scf_task: "DEN"}) self.dos_tasks.append(dos_task) - def plot_ebands(self, **kwargs): + def plot_ebands(self, **kwargs) -> Figure: """ Plot the band structure. kwargs are passed to the plot method of |ElectronBands|. @@ -941,7 +1139,8 @@ def plot_ebands(self, **kwargs): with self.nscf_task.open_gsr() as gsr: return gsr.ebands.plot(**kwargs) - def plot_ebands_with_edos(self, dos_pos=0, method="gaussian", step=0.01, width=0.1, **kwargs): + def plot_ebands_with_edos(self, dos_pos=0, method="gaussian", + step=0.01, width=0.1, **kwargs) -> Figure: """ Plot the band structure and the DOS. @@ -963,7 +1162,7 @@ def plot_ebands_with_edos(self, dos_pos=0, method="gaussian", step=0.01, width=0 edos = dos_ebands.get_edos(method=method, step=step, width=width) return gs_ebands.plot_with_edos(edos, **kwargs) - def plot_edoses(self, dos_pos=None, method="gaussian", step=0.01, width=0.1, **kwargs): + def plot_edoses(self, dos_pos=None, method="gaussian", step=0.01, width=0.1, **kwargs) -> Figure: """ Plot the band structure and the DOS. @@ -1001,7 +1200,8 @@ class RelaxWork(Work): .. rubric:: Inheritance Diagram .. inheritance-diagram:: RelaxWork """ - def __init__(self, ion_input, ioncell_input, workdir=None, manager=None, target_dilatmx=None): + def __init__(self, ion_input: AbinitInput, ioncell_input: AbinitInput, + workdir=None, manager=None, target_dilatmx=None): """ Args: ion_input: Input for the relaxation of the ions (cell is fixed) @@ -1032,7 +1232,6 @@ def __init__(self, ion_input, ioncell_input, workdir=None, manager=None, target_ self.target_dilatmx = target_dilatmx - #@check_spectator def on_ok(self, sender): """ This callback is called when one task reaches status S_OK. @@ -1056,13 +1255,13 @@ def on_ok(self, sender): actual_dilatmx = self.ioncell_task.get_inpvar('dilatmx', 1.) if self.target_dilatmx < actual_dilatmx: self.ioncell_task.reduce_dilatmx(target=self.target_dilatmx) - self.history.info('Converging dilatmx. Value reduce from {} to {}.' + self.history.info('Converging dilatmx. Value reduced from {} to {}.' .format(actual_dilatmx, self.ioncell_task.get_inpvar('dilatmx'))) - self.ioncell_task.reset_from_scratch() + self.ioncell_task.restart() return super().on_ok(sender) - def plot_ion_relaxation(self, **kwargs): + def plot_ion_relaxation(self, **kwargs) -> Figure: """ Plot the history of the ion-cell relaxation. kwargs are passed to the plot method of |HistFile| @@ -1072,7 +1271,7 @@ def plot_ion_relaxation(self, **kwargs): with self.ion_task.open_hist() as hist: return hist.plot(**kwargs) if hist else None - def plot_ioncell_relaxation(self, **kwargs): + def plot_ioncell_relaxation(self, **kwargs) -> Figure: """ Plot the history of the ion-cell relaxation. kwargs are passed to the plot method of |HistFile| @@ -1085,7 +1284,7 @@ def plot_ioncell_relaxation(self, **kwargs): class G0W0Work(Work): """ - Work for general G0W0 calculations. + Work for generic G0W0 calculations. All input can be either single inputs or lists of inputs .. rubric:: Inheritance Diagram @@ -1180,14 +1379,15 @@ def __init__(self, wfk_node, scr_node, sigma_inputs, workdir=None, manager=None) class BseMdfWork(Work): """ - Work for simple BSE calculations in which the self-energy corrections + Work for BSE calculations in which the self-energy corrections are approximated by the scissors operator and the screening is modeled with the model dielectric function. .. rubric:: Inheritance Diagram .. inheritance-diagram:: BseMdfWork """ - def __init__(self, scf_input, nscf_input, bse_inputs, workdir=None, manager=None): + def __init__(self, scf_input: AbinitInput, nscf_input: AbinitInput, + bse_inputs, workdir=None, manager=None): """ Args: scf_input: Input for the SCF run. @@ -1213,7 +1413,7 @@ def __init__(self, scf_input, nscf_input, bse_inputs, workdir=None, manager=None def get_mdf_robot(self): """Builds and returns a :class:`MdfRobot` for analyzing the results in the MDF files.""" - from abilab.robots import MdfRobot + from abipy.electrons.bse import MdfRobot robot = MdfRobot() for task in self[2:]: mdf_path = task.outdir.has_abiext(robot.EXT) @@ -1231,7 +1431,9 @@ class QptdmWork(Work): .. rubric:: Inheritance Diagram .. inheritance-diagram:: QptdmWork """ - def create_tasks(self, wfk_file, scr_input): + + @deprecated(message="QptdmWork is deprecated and will be removed in abipy 1.0, use flowtk.ScreeningWork") + def create_tasks(self, wfk_file: str, scr_input: AbinitInput): """ Create the SCR tasks and register them in self. @@ -1274,7 +1476,7 @@ def create_tasks(self, wfk_file, scr_input): self.allocate() - def merge_scrfiles(self, remove_scrfiles=True): + def merge_scrfiles(self, remove_scrfiles=True) -> str: """ This method is called when all the q-points have been computed. It runs `mrgscr` in sequential on the local machine to produce @@ -1298,7 +1500,6 @@ def merge_scrfiles(self, remove_scrfiles=True): return final_scr - #@check_spectator def on_all_ok(self): """ This method is called when all the q-points have been computed. @@ -1311,12 +1512,13 @@ def on_all_ok(self): # TODO: MergeDdb --> DfptWork(Work) postpone it because it may break pickle. -class MergeDdb(object): +class MergeDdb: """ - Mixin class for Works that have to merge the DDB files produced by the tasks. + Mixin class for Works that need to merge the DDB files produced by the tasks in self. """ - def add_becs_from_scf_task(self, scf_task, ddk_tolerance, ph_tolerance): + def add_becs_from_scf_task(self, scf_task, ddk_tolerance, ph_tolerance, + with_quad=False, with_flexoe=False) -> tuple: """ Build tasks for the computation of Born effective charges and add them to the work. @@ -1324,8 +1526,12 @@ def add_becs_from_scf_task(self, scf_task, ddk_tolerance, ph_tolerance): scf_task: |ScfTask| object. ddk_tolerance: dict {"varname": value} with the tolerance used in the DDK run. None to use AbiPy default. ph_tolerance: dict {"varname": value} with the tolerance used in the phonon run. None to use AbiPy default. + with_quad: Activate calculation of dynamical quadrupoles. + Note that only selected features are compatible with dynamical quadrupoles. + Please consult + with_flexoe: True to activate computation of flexoelectric tensor. - Return: (ddk_tasks, bec_tasks) + Return: (ddk_tasks, bec_tasks, dkdk_task, quad_task) """ if not isinstance(scf_task, ScfTask): raise TypeError("task `%s` does not inherit from ScfTask" % scf_task) @@ -1343,16 +1549,48 @@ def add_becs_from_scf_task(self, scf_task, ddk_tolerance, ph_tolerance): bec_deps = {ddk_task: "DDK" for ddk_task in ddk_tasks} bec_deps.update({scf_task: "WFK"}) - bec_inputs = scf_task.input.make_bec_inputs(tolerance=ph_tolerance) + if with_flexoe: + bec_inputs = scf_task.input.make_strain_perts_inputs(tolerance=ph_tolerance, + phonon_pert=True, efield_pert=True, + prepalw=1) + + else: + bec_inputs = scf_task.input.make_bec_inputs(tolerance=ph_tolerance, + prepalw=1 if with_quad else 0) + bec_tasks = [] for bec_inp in bec_inputs: bec_task = self.register_bec_task(bec_inp, deps=bec_deps) bec_tasks.append(bec_task) - return ddk_tasks, bec_tasks + if with_quad or with_flexoe: + # Response function calculation of d2/dkdk wave function. + # See + dkdk_inp = scf_task.input.make_dkdk_input(tolerance=ddk_tolerance) + dkdk_task = self.register_dkdk_task(dkdk_inp, deps=bec_deps) + + quad_deps = bec_deps.copy() + quad_deps.update({dkdk_task: "DKDK"}) + quad_deps.update({bec_task: ["1DEN", "1WF"] for bec_task in bec_tasks}) + + if with_quad: + # Dynamic Quadrupoles calculation + quad_inp = scf_task.input.make_quad_input(tolerance=ph_tolerance) + quad_task = self.register_quad_task(quad_inp, deps=quad_deps) + + if with_flexoe: + #flexoe_inp = scf_task.input.make_flexoe_input(tolerance=ph_tolerance) + flexoe_inp = scf_task.input.new_with_vars( + optdriver=10, + lw_flexo=1, + kptopt=2, + useylm=1, + ) + + self.register_flexoe_task(flexoe_inp, deps=quad_deps) def merge_ddb_files(self, delete_source_ddbs=False, only_dfpt_tasks=True, - exclude_tasks=None, include_tasks=None): + exclude_tasks=None, include_tasks=None) -> str: """ This method is called when all the q-points have been computed. It runs `mrgddb` in sequential on the local machine to produce @@ -1403,7 +1641,7 @@ def merge_ddb_files(self, delete_source_ddbs=False, only_dfpt_tasks=True, return out_ddb - def merge_pot1_files(self, delete_source=True): + def merge_pot1_files(self, delete_source=False) -> Union[str, None]: """ This method is called when all the q-points have been computed. It runs `mrgdvdb` in sequential on the local machine to produce @@ -1437,7 +1675,7 @@ def merge_pot1_files(self, delete_source=True): out_dvdb = self.outdir.path_in("out_DVDB") if len(pot1_files) == 1: - # Avoid the merge. Just move the DDB file to the outdir of the work + # Avoid the merge. Just move the DVDB file to the outdir of the work shutil.copy(pot1_files[0], out_dvdb) else: # FIXME: The merge may require a non-negligible amount of memory if lots of qpts. @@ -1453,17 +1691,20 @@ class PhononWork(Work, MergeDdb): """ This work consists of nirred Phonon tasks where nirred is the number of irreducible atomic perturbations for a given set of q-points. - It provides the callback method (on_all_ok) that calls mrgddb (mrgdv) to merge - all the partial DDB (POT) files produced. The two files are available in the - output directory of the Work. + It provides the callback method (on_all_ok) that calls mrgddb and mrgdv to merge + all the partial DDB (POT) files produced. + The two files are available in the output directory of the Work. .. rubric:: Inheritance Diagram .. inheritance-diagram:: PhononWork """ @classmethod - def from_scf_task(cls, scf_task, qpoints, is_ngqpt=False, tolerance=None, with_becs=False, - ddk_tolerance=None, manager=None): + def from_scf_task(cls, scf_task: ScfTask, + qpoints, is_ngqpt=False, with_becs=False, + with_quad=False, with_flexoe=False, with_dvdb=True, + tolerance=None, ddk_tolerance=None, ndivsm=0, qptopt=1, + prtwf=-1, prepgkk=0, manager=None) -> PhononWork: """ Construct a `PhononWork` from a |ScfTask| object. The input file for phonons is automatically generated from the input of the ScfTask. @@ -1474,71 +1715,129 @@ def from_scf_task(cls, scf_task, qpoints, is_ngqpt=False, tolerance=None, with_b qpoints: q-points in reduced coordinates. Accepts single q-point, list of q-points or three integers defining the q-mesh if `is_ngqpt`. is_ngqpt: True if `qpoints` should be interpreted as divisions instead of q-points. + with_becs: Activate calculation of Electric field and Born effective charges. + with_quad: Activate calculation of dynamical quadrupoles. Require `with_becs` + Note that only selected features are compatible with dynamical quadrupoles. + Please consult + with_flexoe: True to activate computation of flexoelectric tensor. Require `with_becs` + with_dvdb: True to merge POT1 files associated to atomic perturbations in the DVDB file + at the end of the calculation tolerance: dict {"varname": value} with the tolerance to be used in the phonon run. None to use AbiPy default. - with_becs: Activate calculation of Electric field and Born effective charges. ddk_tolerance: dict {"varname": value} with the tolerance used in the DDK run if with_becs. None to use AbiPy default. + ndivsm: If different from zero, activate computation of electron band structure. + if > 0, it's the number of divisions for the smallest segment of the path (Abinit variable). + if < 0, it's interpreted as the pymatgen `line_density` parameter in which the number of points + in the segment is proportional to its length. Typical value: -20. + This option is the recommended one if the k-path contains two high symmetry k-points that are very close + as ndivsm > 0 may produce a very large number of wavevectors. + qptopt: Option for the generation of q-points. Default: 1 + prtwf: Controls the output of the first-order WFK. + By default we set it to -1 when q != 0 so that AbiPy is still able + to restart the DFPT task if the calculation is not converged (worst case scenario) + but we avoid the output of the 1-st order WFK if the calculation converged successfully. + Non-linear DFPT tasks should not be affected since they assume q == 0. + prepgkk: option to compute only the irreducible preturbations or all perturbations + for the chosen set of q-point. Default: 0 (irred. pret. only) manager: |TaskManager| object. """ if not isinstance(scf_task, ScfTask): raise TypeError("task `%s` does not inherit from ScfTask" % scf_task) if is_ngqpt: - qpoints = scf_task.input.abiget_ibz(ngkpt=qpoints, shiftk=[0, 0, 0], kptopt=1).points + qpoints = scf_task.input.abiget_ibz(ngkpt=qpoints, shiftk=[0, 0, 0], kptopt=qptopt).points qpoints = np.reshape(qpoints, (-1, 3)) new = cls(manager=manager) + new.with_dvdb = with_dvdb + + if (with_quad or with_flexoe) and not with_becs: + raise RuntimeError("with_quad or with_flexoe require with_becs") + if with_becs: - new.add_becs_from_scf_task(scf_task, ddk_tolerance, ph_tolerance=tolerance) + # Special treatment of q == 0. + new.add_becs_from_scf_task(scf_task, ddk_tolerance, ph_tolerance=tolerance, + with_quad=with_quad, with_flexoe=with_flexoe) for qpt in qpoints: - if with_becs and np.sum(qpt ** 2) < 1e-12: continue - multi = scf_task.input.make_ph_inputs_qpoint(qpt, tolerance=tolerance) + is_gamma = np.sum(qpt ** 2) < 1e-12 + if with_becs and is_gamma: continue + multi = scf_task.input.make_ph_inputs_qpoint(qpt, tolerance=tolerance, + prepgkk=prepgkk) for ph_inp in multi: + # Here we set the value of prtwf for the DFPT tasks if q != Gamma. + if not is_gamma: ph_inp.set_vars(prtwf=prtwf) new.register_phonon_task(ph_inp, deps={scf_task: "WFK"}) + new.ebands_task = None + if ndivsm != 0: + new.ebands_task = scf_task.add_ebands_task_to_work(new, ndivsm=ndivsm) + return new @classmethod - def from_scf_input(cls, scf_input, qpoints, is_ngqpt=False, tolerance=None, - with_becs=False, ddk_tolerance=None, manager=None): + def from_scf_input(cls, scf_input: AbinitInput, qpoints, is_ngqpt=False, with_becs=False, + with_quad=False, with_flexoe=False, with_dvdb=True, tolerance=None, + ddk_tolerance=None, ndivsm=0, qptopt=1, + prtwf=-1, prepgkk=0, manager=None) -> PhononWork: """ Similar to `from_scf_task`, the difference is that this method requires an input for SCF calculation. A new |ScfTask| is created and added to the Work. - This API should be used if the DDB of the GS task should be merged. + This API should be used if the DDB of the GS task with the forces should be merged. + This is needed for the computation of relaxed-atom elastic constants. """ if is_ngqpt: - qpoints = scf_input.abiget_ibz(ngkpt=qpoints, shiftk=[0, 0, 0], kptopt=1).points + qpoints = scf_input.abiget_ibz(ngkpt=qpoints, shiftk=[0, 0, 0], kptopt=qptopt).points qpoints = np.reshape(qpoints, (-1, 3)) new = cls(manager=manager) + new.with_dvdb = with_dvdb + # Create ScfTask scf_task = new.register_scf_task(scf_input) + if (with_quad or with_flexoe) and not with_becs: + raise RuntimeError("with_quad or with_flexoe require with_becs") + if with_becs: - new.add_becs_from_scf_task(scf_task, ddk_tolerance, ph_tolerance=tolerance) + # Special treatment of q == 0. + new.add_becs_from_scf_task(scf_task, ddk_tolerance, ph_tolerance=tolerance, + with_quad=with_quad, with_flexoe=with_flexoe) for qpt in qpoints: - if with_becs and np.sum(qpt ** 2) < 1e-12: continue - multi = scf_task.input.make_ph_inputs_qpoint(qpt, tolerance=tolerance) + is_gamma = np.sum(qpt ** 2) < 1e-12 + if with_becs and is_gamma: continue + multi = scf_task.input.make_ph_inputs_qpoint(qpt, tolerance=tolerance, + prepgkk=prepgkk) for ph_inp in multi: + # Here we set the value of prtwf for the DFPT tasks if q != Gamma. + if not is_gamma: ph_inp.set_vars(prtwf=prtwf) new.register_phonon_task(ph_inp, deps={scf_task: "WFK"}) + new.ebands_task = None + if ndivsm != 0: + new.ebands_task = scf_task.add_ebands_task_to_work(new, ndivsm=ndivsm) + return new - #@check_spectator def on_all_ok(self): """ This method is called when all the q-points have been computed. - Ir runs `mrgddb` in sequential on the local machine to produce + It runs `mrgddb` in sequential on the local machine to produce the final DDB file in the outdir of the |Work|. """ # Merge DDB files. - out_ddb = self.merge_ddb_files() - # Merge DVDB files. - out_dvdb = self.merge_pot1_files() + exclude_tasks = [] + if getattr(self, "ebands_task", None) is not None: + exclude_tasks = [self.ebands_task] + + out_ddb = self.merge_ddb_files(only_dfpt_tasks=False, exclude_tasks=exclude_tasks) + + if getattr(self, "with_dvdb", True): + # Merge DVDB files (use getattr to maintain backward compability with pickle). + out_dvdb = self.merge_pot1_files() return self.Results(node=self, returncode=0, message="DDB merge done") @@ -1547,7 +1846,7 @@ class PhononWfkqWork(Work, MergeDdb): """ This work computes phonons with DFPT on an arbitrary q-mesh (usually denser than the k-mesh for electrons) by computing WKQ files for each q-point. - The number of irreducible atomic perturbations for each q-point are taken into account. + The number of irreducible atomic perturbations for each q-point is taken into account. It provides the callback method (on_all_ok) that calls mrgddb (mrgdv) to merge all the partial DDB (POT) files produced. The two files are available in the output directory of the Work. The WKQ files are removed at runtime. @@ -1557,9 +1856,11 @@ class PhononWfkqWork(Work, MergeDdb): """ @classmethod - def from_scf_task(cls, scf_task, ngqpt, ph_tolerance=None, tolwfr=1.0e-22, nband=None, - with_becs=False, ddk_tolerance=None, shiftq=(0, 0, 0), is_ngqpt=True, remove_wfkq=True, - prepgkk=0, manager=None): + def from_scf_task(cls, scf_task: ScfTask, + ngqpt, ph_tolerance=None, tolwfr=1.0e-22, nband=None, + with_becs=False, with_quad=False, ddk_tolerance=None, shiftq=(0, 0, 0), + is_ngqpt=True, qptopt=1, remove_wfkq=True, + prepgkk=0, manager=None) -> PhononWfkqWork: """ Construct a `PhononWfkqWork` from a |ScfTask| object. The input files for WFQ and phonons are automatically generated from the input of the ScfTask. @@ -1569,6 +1870,9 @@ def from_scf_task(cls, scf_task, ngqpt, ph_tolerance=None, tolwfr=1.0e-22, nband scf_task: |ScfTask| object. ngqpt: three integers defining the q-mesh with_becs: Activate calculation of Electric field and Born effective charges. + with_quad: Activate calculation of dynamical quadrupoles. + Note that only selected features are compatible with dynamical quadrupoles. + Please consult ph_tolerance: dict {"varname": value} with the tolerance for the phonon run. None to use AbiPy default. tolwfr: tolerance used to compute WFQ. @@ -1577,6 +1881,7 @@ def from_scf_task(cls, scf_task, ngqpt, ph_tolerance=None, tolwfr=1.0e-22, nband shiftq: Q-mesh shift. Multiple shifts are not supported. is_ngqpt: the ngqpt is interpreted as a set of integers defining the q-mesh, otherwise is an explicit list of q-points + qptopt: Option for the generation of q-points. Default: 1 remove_wfkq: Remove WKQ files when the children are completed. prepgkk: 1 to activate computation of all 3*natom perts (debugging option). manager: |TaskManager| object. @@ -1589,9 +1894,10 @@ def from_scf_task(cls, scf_task, ngqpt, ph_tolerance=None, tolwfr=1.0e-22, nband if not isinstance(scf_task, ScfTask): raise TypeError("task `%s` does not inherit from ScfTask" % scf_task) - shiftq = np.reshape(shiftq, (3,)) + shiftq = np.reshape(shiftq, (3, )) + #print("ngqpt", ngqpt, "\nshiftq", shiftq) if is_ngqpt: - qpoints = scf_task.input.abiget_ibz(ngkpt=ngqpt, shiftk=shiftq, kptopt=1).points + qpoints = scf_task.input.abiget_ibz(ngkpt=ngqpt, shiftk=shiftq, kptopt=qptopt).points else: qpoints = np.reshape(ngqpt, (-1, 3)) @@ -1603,14 +1909,15 @@ def from_scf_task(cls, scf_task, ngqpt, ph_tolerance=None, tolwfr=1.0e-22, nband if with_becs: # Add DDK and BECS. - new.add_becs_from_scf_task(scf_task, ddk_tolerance, ph_tolerance) + new.add_becs_from_scf_task(scf_task, ddk_tolerance, ph_tolerance, with_quad=with_quad) # Get ngkpt, shift for electrons from input. # Won't try to skip WFQ if multiple shifts or off-diagonal kptrlatt ngkpt, shiftk = scf_task.input.get_ngkpt_shiftk() - try_to_skip_wfkq = True - if ngkpt is None or len(shiftk) > 1 and is_ngqpt: - try_to_skip_wfkq = True + #try_to_skip_wfkq = True + #if ngkpt is not None and len(shiftk) == 1 and not is_ngqpt: + # try_to_skip_wfkq = True + try_to_skip_wfkq = False # TODO: One could avoid kptopt 3 by computing WFK in the IBZ and then rotating. # but this has to be done inside Abinit. @@ -1625,6 +1932,7 @@ def from_scf_task(cls, scf_task, ngqpt, ph_tolerance=None, tolwfr=1.0e-22, nband elif try_to_skip_wfkq: # k = (i + shiftk) / ngkpt qinds = np.rint(qpt * ngqpt - shiftq) + #print("qpt", qpt, "\nqinds", qinds, "\nngkpt", ngkpt, "\nngqpt", ngqpt) f = (qinds * ngkpt) % ngqpt need_wfkq = np.any(f != 0) @@ -1635,6 +1943,7 @@ def from_scf_task(cls, scf_task, ngqpt, ph_tolerance=None, tolwfr=1.0e-22, nband if nband: nbdbuf = max(2, nband*0.1) nscf_inp.set_vars(nband=nband+nbdbuf, nbdbuf=nbdbuf) + wfkq_task = new.register_nscf_task(nscf_inp, deps={scf_task: ["DEN", "WFK"]}) new.wfkq_tasks.append(wfkq_task) @@ -1666,7 +1975,6 @@ def on_ok(self, sender): return super().on_ok(sender) - #@check_spectator def on_all_ok(self): """ This method is called when all the q-points have been computed. @@ -1674,7 +1982,7 @@ def on_all_ok(self): the final DDB file in the outdir of the |Work|. """ # Merge DDB files. - out_ddb = self.merge_ddb_files() + out_ddb = self.merge_ddb_files(only_dfpt_tasks=True) # Merge DVDB files. out_dvdb = self.merge_pot1_files() @@ -1685,7 +1993,7 @@ def on_all_ok(self): class GKKPWork(Work): """ This work computes electron-phonon matrix elements for all the q-points - present in a DVDB and DDB file + present in a DVDB and a DDB file .. rubric:: Inheritance Diagram .. inheritance-diagram:: GKKPWork @@ -1694,7 +2002,7 @@ class GKKPWork(Work): def from_den_ddb_dvdb(cls, inp, den_path, ddb_path, dvdb_path, mpiprocs=1, remove_wfkq=True, qpath=None, with_ddk=True, expand=True, manager=None): """ - Construct a `PhononWfkqWork` from a DDB and DVDB file. + Construct a `GKKPWork` from a DDB and DVDB file. For each q found, a WFQ task and an EPH task computing the matrix elements are created. """ import abipy.abilab as abilab @@ -1715,7 +2023,7 @@ def from_den_ddb_dvdb(cls, inp, den_path, ddb_path, dvdb_path, mpiprocs=1, remov # Create a WFK task kptopt = 1 if expand else 3 nscf_inp = inp.new_with_vars(iscf=-2, kptopt=kptopt) - wfk_task = new.register_nscf_task(nscf_inp, deps={den_file: "DEN"},manager=tm) + wfk_task = new.register_nscf_task(nscf_inp, deps={den_file: "DEN"}, manager=tm) new.wfkq_tasks.append(wfk_task) new.wfk_task = wfk_task @@ -1740,7 +2048,7 @@ def from_den_ddb_dvdb(cls, inp, den_path, ddb_path, dvdb_path, mpiprocs=1, remov fbz_nscf_inp = inp.new_with_vars(optdriver=8) fbz_nscf_inp.set_spell_check(False) fbz_nscf_inp.set_vars(wfk_task="wfk_fullbz") - tm_serial = manager.new_with_fixed_mpi_omp(1,1) + tm_serial = manager.new_with_fixed_mpi_omp(1, 1) wfk_task = new.register_nscf_task(fbz_nscf_inp, deps={wfk_task: "WFK", den_file: "DEN"}, manager=tm_serial) new.wfkq_tasks.append(wfk_task) @@ -1748,7 +2056,7 @@ def from_den_ddb_dvdb(cls, inp, den_path, ddb_path, dvdb_path, mpiprocs=1, remov if with_ddk: kptopt = 3 if expand else 1 - ddk_inp = inp.new_with_vars(optdriver=8,kptopt=kptopt) + ddk_inp = inp.new_with_vars(optdriver=8, kptopt=kptopt) ddk_inp.set_spell_check(False) ddk_inp.set_vars(wfk_task="wfk_ddk") ddk_task = new.register_nscf_task(ddk_inp, deps={wfk_task: "WFK", den_file: "DEN"}, manager=tm) @@ -1829,6 +2137,7 @@ def from_phononwfkq_work(cls, phononwfkq_work, nscf_vars={}, remove_wfkq=True, w wfq_path = os.path.join(os.path.dirname(wfk_path), infile) if not os.path.isfile(wfq_path): os.symlink(wfk_path, wfq_path) deps[FileNode(wfq_path)] = 'WFQ' + new.register_eph_task(eph_input, deps=deps) return new @@ -1860,6 +2169,8 @@ def on_ok(self, sender): return super().on_ok(sender) +# TODO: We may deprecate it and use PhononWork that is more general! + class BecWork(Work, MergeDdb): """ Work for the computation of the Born effective charges. @@ -1873,7 +2184,8 @@ class BecWork(Work, MergeDdb): """ @classmethod - def from_scf_task(cls, scf_task, ddk_tolerance=None, ph_tolerance=None, manager=None): + def from_scf_task(cls, scf_task: ScfTask, + ddk_tolerance=None, ph_tolerance=None, manager=None): """ Build tasks for the computation of Born effective charges from a ground-state task. @@ -1895,7 +2207,7 @@ def on_all_ok(self): the final DDB file in the outdir of the |Work|. """ # Merge DDB files. - out_ddb = self.merge_ddb_files() + out_ddb = self.merge_ddb_files(only_dfpt_tasks=True) return self.Results(node=self, returncode=0, message="DDB merge done") @@ -1910,7 +2222,8 @@ class DteWork(Work, MergeDdb): .. inheritance-diagram:: DteWork """ @classmethod - def from_scf_task(cls, scf_task, ddk_tolerance=None, manager=None): + def from_scf_task(cls, scf_task: ScfTask, + ddk_tolerance=None, manager=None) -> DteWork: """ Build a DteWork from a ground-state task. @@ -1947,10 +2260,25 @@ def from_scf_task(cls, scf_task, ddk_tolerance=None, manager=None): dde_tasks.append(dde_task) # DTE calculations - dte_deps = {scf_task: "WFK DEN"} + # Read WFK only and use it to compute the density on the fly + # to avoid possibe problems with paral_kgb 1 and MPI-FFT + #dte_deps = {scf_task: "WFK DEN"} + dte_deps = {scf_task: "WFK"} dte_deps.update({dde_task: "1WF 1DEN" for dde_task in dde_tasks}) - multi_dte = scf_task.input.make_dte_inputs() + # VT: Taken from dte_from_gsinput factory fct + # non-linear calculations do not accept more bands than those in the valence. Set the correct values. + # Do this as last, so not to interfere with the the generation of the other steps. + gs_inp = scf_task.input.deepcopy() + gs_inp.pop_irdvars() + nval = gs_inp.structure.num_valence_electrons(gs_inp.pseudos) + #nval -= gs_inp['charge'] # VT: commented out because KeyError + nband = int(round(nval / 2)) + gs_inp.set_vars(nband=nband) + gs_inp.pop('nbdbuf', None) + multi_dte = gs_inp.make_dte_inputs() + + #multi_dte = scf_task.input.make_dte_inputs() dte_tasks = [] for dte_inp in multi_dte: dte_task = new.register_dte_task(dte_inp, deps=dte_deps) @@ -1965,5 +2293,153 @@ def on_all_ok(self): the final DDB file in the outdir of the `Work`. """ # Merge DDB files. - out_ddb = self.merge_ddb_files() + out_ddb = self.merge_ddb_files(only_dfpt_tasks=True) return self.Results(node=self, returncode=0, message="DDB merge done") + + +class ConducWork(Work): + """ + Workflow for the computation of electrical conductivity. + + Can be called from: + 1. MultiDataset and PhononWork + 2. MultiDataset, DDB filepath and DVDB filepath. + + Can use Kerange Capability using withKerange=True + + This work consists of 3 tasks or 5 tasks with kerange: + + 1. SCF GS + 2. NSCF + 3. Kerange (Kerange only) + 4. WFK Interpolation (Kerange only) + 5. Electrical Conductivity Calculation. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: ConducWork + """ + + @classmethod + def from_phwork(cls, phwork, multi, nbr_proc=None, flow=None, with_kerange=False, + omp_nbr_thread=1, manager=None) -> ConducWork: + """ + Construct a ConducWork from a |PhononWork| and |MultiDataset|. + + Args: + phwork: |PhononWork| object calculating the DDB and DVDB files. + multi: |MultiDataset| object containing a list of 3 datasets or 5 with Kerange. + See abipy/abio/factories.py -> conduc_from_scf_nscf_inputs for details about multi. + nbr_proc: Required if with_kerange since autoparal doesn't work with optdriver=8. + flow: The flow calling the work. Used for with_fixed_mpi_omp. + with_kerange: True if using Kerange. + omp_nbr_thread : Number of omp_thread to use. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + # Verify phwork + if not isinstance(phwork, PhononWork): + raise TypeError("Work `%s` does not inherit from PhononWork" % phwork) + + # Verify Multi + if (not with_kerange) and (multi.ndtset != 3): #Without kerange, multi should contain 3 datasets + raise ValueError("""The |MultiDataset| object does not contain the expected number of dataset. + It should have 3 datasets and it had `%s`. You should generate + multi with the factory function conduc_from_scf_nscf_inputs""" % multi.ndtset) + if (with_kerange) and (multi.ndtset != 5): # With Kerange, multi should contain 5 datasets + raise ValueError("""The |MultiDataset| object does not contain the expected number of dataset. + It should have 5 datasets and it had `%s`. You should generate + multi with the factory function conduc_from_scf_nscf_inputs""" % multi.ndtset) + # Verify nbr_proc and flow are defined if with_kerange + if with_kerange and (flow is None or nbr_proc is None): + raise ValueError("""When using kerange, the argument flow and nbr_proc must be passed to the function from_filepath + flow = {}\n nbr_proc = {}""".format(flow, nbr_proc)) + + new = cls(manager=manager) + + new.register_task(multi[0]) + new.register_task(multi[1], deps={new[0]: "DEN"}) + taskNumber = 2 # To keep track of the task in new and multi + + if with_kerange: # Using Kerange + new.register_task(multi[2], deps={new[1]: "WFK"}) + new.register_task(multi[3], deps={new[0]: "DEN", new[1]: "WFK", new[2]: "KERANGE.nc"}) + taskNumber = 4 # We have 2 more dataset + + new.register_task(multi[taskNumber], deps={new[taskNumber-1]: "WFK", phwork: ["DDB","DVDB"]}) + + for task in new: + task.set_work(new) + + # Manual Paralellization since autoparal doesn't work with optdriver=8 (t2) + if flow is not None : + new.set_flow(flow) + if nbr_proc is not None: + for task in new[2:]: + task.with_fixed_mpi_omp(nbr_proc, omp_nbr_thread) + return new + + @classmethod + def from_filepath(cls, ddb_path, dvdb_path, multi, nbr_proc=None, flow=None, + with_kerange=False, omp_nbr_thread=1, manager=None) -> ConducWork: + """ + Construct a ConducWork from previously calculated DDB/DVDB file and |MultiDataset|. + + Args: + multi: a |MultiDataset| object containing a list of 3 datasets or 5 with Kerange. + See abipy/abio/factories.py -> conduc_from_scf_nscf_inputs for details about multi. + ddb_path: a string containing the path to the DDB file. + dvdb_path: a string containing the path to the DVDB file. + nbr_proc: Required if with_kerange since autoparal doesn't work with optdriver=8. + flow: The flow calling the work, only needed if with_kerange. + with_kerange: True if using Kerange. + omp_nbr_thread : Number of omp_thread to use. + manager: |TaskManager| of the task. If None, the manager is initialized from the config file. + """ + # Verify Multi + if (not with_kerange) and (multi.ndtset != 3): # Without kerange, multi should contain 4 datasets + raise ValueError("""The |MultiDataset| object does not contain the expected number of dataset. + It should have 4 datasets and it had `%s`. You should generate + multi with the factory function conduc_from_scf_nscf_inputs""" % multi.ndtset) + if (with_kerange) and (multi.ndtset != 5): # With Kerange, multi should contain 6 datasets + raise ValueError("""The |MultiDataset| object does not contain the expected number of dataset. + It should have 6 datasets and it had `%s`.You should generate + multi with the factory function conduc_from_scf_nscf_inputs""" % multi.ndtset) + # Make sure both file exists + if not os.path.exists(ddb_path): + raise ValueError("The DDB file doesn't exists : `%s`" % ddb_path) + + if not os.path.exists(dvdb_path): + raise ValueError("The DVDB file doesn't exists : `%s`" % dvdb_path) + + # Verify nbr_proc and flow are defined if with_kerange + if with_kerange and (flow is None or nbr_proc is None): + raise ValueError("""When using kerange, the argument flow and nbr_proc must be passed to the function from_filepath + flow = {}, nbr_proc = {}""".format(flow, nbr_proc)) + + new = cls(manager=manager) + + new.register_task(multi[0]) + new.register_task(multi[1], deps={new[0]: "DEN"}) + taskNumber = 2 # To keep track of the task in new and multi + + if with_kerange: # Using Kerange + new.register_task(multi[2], deps={new[1]: "WFK"}) + new.register_task(multi[3], deps={new[0]: "DEN", new[1]: "WFK", new[2]: "KERANGE.nc"}) + taskNumber = 4 # We have 2 more task + + #new.register_task(multi[taskNumber], deps=[Dependency(new[taskNumber-1], "WFK"), + # Dependency(ddb_path, "DDB"), + # Dependency(dvdb_path, "DVDB")]) + #new.register_task(multi[taskNumber], deps=[{new[taskNumber-1]: "WFK"},(ddb_path, "DDB"),(dvdb_path, "DVDB")]) + new.register_task(multi[taskNumber], deps={new[taskNumber-1]: "WFK", ddb_path: "DDB", dvdb_path: "DVDB"}) + + for task in new: + task.set_work(new) + + # Manual Paralellization since autoparal doesn't work with optdriver=8 (t2) + if flow is not None : + new.set_flow(flow) + if nbr_proc is not None: + for task in new[2:]: + task.with_fixed_mpi_omp(nbr_proc, omp_nbr_thread) + + return new diff --git a/abipy/flowtk/wrappers.py b/abipy/flowtk/wrappers.py index a1dc411c2..a60c75d2a 100644 --- a/abipy/flowtk/wrappers.py +++ b/abipy/flowtk/wrappers.py @@ -1,13 +1,13 @@ # coding: utf-8 """Wrappers for ABINIT main executables""" +from __future__ import annotations + import os import numpy as np from monty.string import list_strings from io import StringIO - -import logging -logger = logging.getLogger(__name__) +from abipy.core.globals import get_workdir __author__ = "Matteo Giantomassi" __copyright__ = "Copyright 2013, The Materials Project" @@ -21,6 +21,8 @@ "Mrgscr", "Mrgddb", "Mrgdvdb", + "Cut3D", + "Fold2Bloch", ] @@ -28,8 +30,10 @@ class ExecError(Exception): """Error class raised by :class:`ExecWrapper`""" -class ExecWrapper(object): - """Base class that runs an executable in a subprocess.""" +class ExecWrapper: + """ + Base class that runs an executable in a subprocess. + """ Error = ExecError def __init__(self, manager=None, executable=None, verbose=0): @@ -48,21 +52,21 @@ def __init__(self, manager=None, executable=None, verbose=0): assert os.path.basename(self.executable) == self.name self.verbose = int(verbose) - def __str__(self): + def __str__(self) -> str: return "%s" % self.executable @property - def name(self): + def name(self) -> str: return self._name - def execute(self, workdir, exec_args=None): + def execute(self, workdir, exec_args=None) -> int: # Try to execute binary without and with mpirun. try: return self._execute(workdir, with_mpirun=True, exec_args=exec_args) except self.Error: return self._execute(workdir, with_mpirun=False, exec_args=exec_args) - def _execute(self, workdir, with_mpirun=False, exec_args=None): + def _execute(self, workdir, with_mpirun=False, exec_args=None) -> int: """ Execute the executable in a subprocess inside workdir. @@ -95,12 +99,14 @@ def _execute(self, workdir, with_mpirun=False, exec_args=None): qjob, process = qadapter.submit_to_queue(script_file) self.stdout_data, self.stderr_data = process.communicate() self.returncode = process.returncode - #raise self.Error("%s returned %s\n cmd_str: %s" % (self, self.returncode, self.cmd_str)) return self.returncode class Mrgscr(ExecWrapper): + """ + Wraps the mrgddb Fortran executable. + """ _name = "mrgscr" def merge_qpoints(self, workdir, files_to_merge, out_prefix): @@ -144,9 +150,12 @@ def merge_qpoints(self, workdir, files_to_merge, out_prefix): class Mrgddb(ExecWrapper): + """ + Wraps the mrgddb Fortran executable. + """ _name = "mrgddb" - def merge(self, workdir, ddb_files, out_ddb, description, delete_source_ddbs=True): + def merge(self, workdir, ddb_files, out_ddb, description, delete_source_ddbs=True) -> str: """Merge DDB file, return the absolute path of the new database in workdir.""" # We work with absolute paths. ddb_files = [os.path.abspath(s) for s in list_strings(ddb_files)] @@ -198,9 +207,13 @@ def merge(self, workdir, ddb_files, out_ddb, description, delete_source_ddbs=Tru class Mrgdvdb(ExecWrapper): + """ + Wraps the mrgdvdb Fortran executable. + """ + _name = "mrgdv" - def merge(self, workdir, pot_files, out_dvdb, delete_source=True): + def merge(self, workdir, pot_files, out_dvdb, delete_source=True) -> str: """ Merge POT files containing 1st order DFPT potential return the absolute path of the new database in workdir. @@ -257,9 +270,12 @@ def merge(self, workdir, pot_files, out_dvdb, delete_source=True): class Cut3D(ExecWrapper): + """ + Wraps the cut3d Fortran executable. + """ _name = "cut3d" - def cut3d(self, cut3d_input, workdir): + def cut3d(self, cut3d_input, workdir) -> tuple[str, str]: """ Runs cut3d with a Cut3DInput @@ -279,7 +295,7 @@ def cut3d(self, cut3d_input, workdir): retcode = self._execute(workdir, with_mpirun=False) if retcode != 0: - raise RuntimeError("Error while running cut3d in %s." % workdir) + raise RuntimeError("Error while running cut3d in %s" % workdir) output_filepath = cut3d_input.output_filepath @@ -294,12 +310,13 @@ def cut3d(self, cut3d_input, workdir): class Fold2Bloch(ExecWrapper): - """Wrapper for fold2Bloch Fortran executable.""" + """ + Wraps the fold2Bloch Fortran executable. + """ _name = "fold2Bloch" - def unfold(self, wfkpath, folds, workdir=None): - import tempfile - workdir = tempfile.mkdtemp() if workdir is None else workdir + def unfold(self, wfkpath, folds, workdir=None) -> str: + workdir = get_workdir(workdir) self.stdin_fname = None self.stdout_fname, self.stderr_fname = \ @@ -327,3 +344,33 @@ def unfold(self, wfkpath, folds, workdir=None): raise RuntimeError("Cannot find *_FOLD2BLOCH.nc file in: %s" % str(os.listdir(workdir))) return os.path.join(workdir, filepaths[0]) + + +class Lruj(ExecWrapper): + """ + Wraps the lruj Fortran executable. + """ + _name = "lruj" + + def run(self, nc_paths: list[str], workdir=None) -> int: + """ + Execute lruj inside directory `workdir` to analyze `nc_paths`. + """ + workdir = get_workdir(workdir) + + self.stdin_fname = None + self.stdout_fname, self.stderr_fname = \ + map(os.path.join, 2 * [workdir], ["lruj.stdout", "lruj.stderr"]) + + # We work with absolute paths. + nc_paths = [os.path.abspath(s) for s in list_strings(nc_paths)] + + retcode = self.execute(workdir, exec_args=nc_paths) + if retcode != 0: + print("stdout:") + print(self.stdout_data) + print("stderr:") + print(self.stderr_data) + raise RuntimeError("Error while running lruj in %s" % workdir) + + return retcode diff --git a/abipy/gui/README.rst b/abipy/gui/README.rst deleted file mode 100644 index 4d916dc31..000000000 --- a/abipy/gui/README.rst +++ /dev/null @@ -1,15 +0,0 @@ -============ -gui examples -============ - -Below is a brief description of the different directories found here: - - * awx - contains generic widgets used to construct more complicated interfaces. - - * wxFormBuilder - wxFormBuilder input file used to design some of of the UI. - - * demo - Scripts showing the different widgets/applications - -If you add a new widget/application, add a new script in the demo directory. -Name the script following the conventions `demo_awx_[name_widget]` so that -run.py can import and run it automatically. diff --git a/abipy/gui/awx/__init__.py b/abipy/gui/awx/__init__.py deleted file mode 100644 index 920cb4dc5..000000000 --- a/abipy/gui/awx/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -#import os - -__all__ = [] - -#_MODS = [ -# "buttons.py", -# "core", -# "apps", -# "frames", -# "grids", -# "dialogs", -# "panels", -# "eggs", -# "func1dframe", -# "threads", -# "utils", -#] - -#_MODS = [os.path.join(os.path.dirname(__file__), f) for f in _MODS] - -#for _mod in _MODS: -# try: -# exec('from .' + _mod + ' import *') -# exec('__all__.extend(' + _mod + '.__all__)') -# exec('del ' + _mod) -# except ImportError: -# pass - -from abipy.gui.awx.buttons import * -from abipy.gui.awx.core import * -from abipy.gui.awx.apps import * -from abipy.gui.awx.frames import * -from abipy.gui.awx.grids import * -from abipy.gui.awx.dialogs import * -from abipy.gui.awx.panels import * -from abipy.gui.awx.eggs import * -from abipy.gui.awx.func1dframe import * -from abipy.gui.awx.threads import * -from abipy.gui.awx.utils import * diff --git a/abipy/gui/awx/apps.py b/abipy/gui/awx/apps.py deleted file mode 100644 index 8503a28dc..000000000 --- a/abipy/gui/awx/apps.py +++ /dev/null @@ -1,111 +0,0 @@ -from __future__ import print_function, division - -import abc -import sys -import wx - -#from abipy.gui.awx.dialogs import showErrorMessage - - -__all__ = [ - "App", -] - -def ExceptionHook(exctype, value, trace): - """ - Handler for all unhandled exceptions - Create a simple exception hook to handle and inform the user of - any unexpected errors that occur while the program is running: - - @param exctype: Exception Type - @param value: Error Value - @param trace: Trace back info - """ - # Format the traceback - import traceback - exc = traceback.format_exception(exctype, value, trace) - ftrace = "".join(exc) - app = wx.GetApp() - - if app: - msg = "An unexpected error has occurred: %s" % ftrace - parent = app.GetTopWindow() - parent.Raise() - wx.MessageBox(parent=parent, message=msg, caption=app.GetAppName(), style=wx.ICON_ERROR|wx.OK) - #showErrorMessage(parent=parent, message=None) - #app.Exit() - else: - sys.stderr.write(ftrace) - - -class App(wx.App): - __metaclass__ = abc.ABCMeta - - def __init__(self, *args, **kwargs): - wx.App.__init__(self, *args, **kwargs) - - # Initialize the logger - import logging - loglevel = "WARNING" - loglevel = "DEBUG" - loglevel = "CRITICAL" - - numeric_level = getattr(logging, loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % loglevel) - logging.basicConfig(level=numeric_level) - - # This catches events when the app is asked to activate by some other process - self.Bind(wx.EVT_ACTIVATE_APP, self.OnActivate) - - def OnInit(self): - # Handler for all unhandled exceptions - sys.excepthook = ExceptionHook - - # Enforce WXAgg as matplotlib backend to avoid nasty SIGSEGV in the C++ layer - # occurring when WX Guis produce plots with other backends. - import matplotlib - matplotlib.use('WXAgg') - return True - - @property - def appname(self): - """Name of the application.""" - return self.__class__.__name__ - - def __repr__(self): - return "<%s at %s>" % (self.appname, id(self)) - - def __str__(self): - return self.__repr__() - - def BringWindowToFront(self): - try: - # it's possible for this event to come when the frame is closed - self.GetTopWindow().Raise() - except: - pass - - def OnActivate(self, event): - # if this is an activate event, rather than something else, like iconize. - if event.GetActive(): - self.BringWindowToFront() - event.Skip() - - #@abc.abstractmethod - #def MacOpenFile(self, filename): - # """Called for files droped on dock icon, or opened via finders context menu""" - # #if filename.endswith(".py"): - # # return - # # Code to load filename. - # #self.log("%s dropped on app %s" % (filename, self.appname)) - # - #def MacReopenApp(self): - # """Called when the dock icon is clicked.""" - # self.BringWindowToFront() - - #def MacNewFile(self): - # pass - - #def MacPrintFile(self, filepath): - # pass diff --git a/abipy/gui/awx/buttons.py b/abipy/gui/awx/buttons.py deleted file mode 100644 index ae8b710da..000000000 --- a/abipy/gui/awx/buttons.py +++ /dev/null @@ -1,127 +0,0 @@ -from __future__ import division, print_function - -import io -#import wxversion -#wxversion.ensureMinimal('2.8') -import wx -from wx.lib import buttons - - -__all__ = [ - "DisclosureCtrl" -] - - -class DisclosureCtrl(buttons.GenBitmapTextToggleButton): - """Disclosure triangle button.""" - - bmp0 = (b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\r\x00\x00' - b'\x00\r\x08\x06\x00\x00\x00r\xeb\xe4|\x00\x00\x00\x04sBIT' - b'\x08\x08\x08\x08|\x08d\x88\x00\x00\x00\xd5IDAT(\x91\x9d' - b'\x921n\x83@\x10E\xdf.!\x96\x9c\x90P"\xd9\x86\x92\x82\x03p' - b'\x02h\xa9i9A\xe2\xb38)9\x02w\xc0\t\x94I\xa0H\xd2\xc7' - b'\x96(\x918\xc0\xa6Z\x17\x91\x05&_\x1a\xe9k4O\xfa3\x1a!' - b'\xa4\xc1\\Im>\xde\xdf\xd4l\xa8,K\x9e\x9fv\xeax\xf8\x99\x84' - b'\x85\x8e\xb7}|P\x00\xb6m\x13\x04\x01q\x1cc\xdd\xdd\x8bs\xd0' - b'\xd5\xdfF\xdf\xf7TUE\xdb\xb6\xbc\xbe\xecU\x18\x86\x98\xd7' - b'\x0b1\ni\r\xc3@Q\x14\xd4u\xcd\xf7\xd7\xa7r]\x97\xe5\xcd' - b'\xad\x18\x85\xb4\xba\xae#\xcfs|\xdf?\xf5\xe4\xc8<\x00\x8e' - b'\xe3\x90e\x19i\x9aN\xc7\xb3,\x8b(\x8a\xb8h\xa7Y\xd7' - b'\xf3<\x0f\xd34I\x92\x84\xd5zsv\xf8$!\r\x844h\x9aFi?Y\xff' - b'\xf9\xbd_\xd7\x8c7Z\xc0k\x8d8\x00\x00\x00\x00IEND\xaeB`\x82') - - bmp1 = (b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\r\x00\x00' - b'\x00\r\x08\x06\x00\x00\x00r\xeb\xe4|\x00\x00\x00\x04sBIT' - b'\x08\x08\x08\x08|\x08d\x88\x00\x00\x00\xc1IDAT(\x91\x9d\xd2;' - b'\x8e\xc20\x10\x80\xe1\x7fB\x0c\x95\xc1\xa5%\xc0)S\xb8I\xd2' - b'\xb8Le\x97\xf6\x99s\x81\xdd\xbdBN\xb2\xdb!Y\t\xac`\xbay|' - b'\xa3)F\xa49\xf0n4o\x8bOQ\x0b\xf0\xf3\xfd\xf5\xbb,\x0b\xeb' - b'\xba>\x1d\xec\xba\x8ey\x9e\x19\xc6I\x1a\x80a\x9cD)\xf5r' - b'\xbbR\x8aa\x9c\xa4:\xaf\x94\x821f\x17\x18c(\xa5<\xf2\x07' - b'\xba\xde\xee\xe2\xbd\xdfE\xde{\xae\xb7\xbbl\x10@J\t\xadu\x05' - b'\xb4\xd6\xa4\x94\xaaZ\x85\xf4\xf9"1\xc6j \xc6\x88>_\xe4)\x02' - b'\x08!`\xad\x05\xc0ZK\x08as\xee\x06\xa9\xe3Ir\xce\xb4mK\xce' - b'\x19u<\xc9\xbf\x08\xc09G\xdf\xf78\xe7\xf6\xda\xc8\'\xbf\xf7' - b'\x07\x13\x12\x18B\x17\x9fx\xa0\x00\x00\x00\x00IEND\xaeB`\x82') - - def __init__(self, parent, winid, label, *args, **kwds): - kwds["style"] = wx.BORDER_NONE|wx.BU_EXACTFIT - buttons.GenBitmapTextToggleButton.__init__(self, parent, winid, None, - label, *args, **kwds) - if isinstance(self.bmp0, type(b'')): - self.__class__.bmp0 = wx.BitmapFromImage(wx.ImageFromStream( - io.BytesIO(self.bmp0))) - self.__class__.bmp1 = wx.BitmapFromImage(wx.ImageFromStream( - io.BytesIO(self.bmp1))) - - self.SetBitmapLabel(self.bmp0) - self.SetBitmapSelected(self.bmp1) - if not label: - self.SetSize(self.bmp0.GetSize()) - else: - self.SetBestSize() - self.labelDelta = 0 - self.useFocusInd = False - self.SetToolTipString('Show') - self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) - - def OnEraseBackground(self, event): - pass - - def Notify(self): - wx.lib.buttons.GenBitmapTextToggleButton.Notify(self) - self.SetToolTipString("%s" % ('Show' if self.up else 'Hide')) - - def DoGetBestSize(self): - width, height, usemin = self._GetLabelSize() - return width + 5, height + 4 - - def OnPaint(self, event): - width, height = self.GetClientSizeTuple() - dc = wx.BufferedPaintDC(self) - bgcol = self.GetBackgroundColour() - brush = wx.Brush(bgcol, wx.SOLID) - defattr = self.GetDefaultAttributes() - if self.style & wx.BORDER_NONE and bgcol == defattr.colBg: - defattr = self.GetParent().GetDefaultAttributes() - if self.GetParent().GetBackgroundColour() == defattr.colBg: - if wx.Platform == "__WXMSW__": - if self.DoEraseBackground(dc): - brush = None - elif wx.Platform == "__WXMAC__": - brush.MacSetTheme(1) - else: - bgcol = self.GetParent().GetBackgroundColour() - brush = wx.Brush(bgcol, wx.SOLID) - if brush is not None: - dc.SetBackground(brush) - dc.Clear() - self.DrawLabel(dc, width, height) - - def DrawLabel(self, dc, width, height, center=False): - bmp = self.bmpLabel - if bmp is not None: - if self.bmpDisabled and not self.IsEnabled(): - bmp = self.bmpDisabled - if self.bmpFocus and self.hasFocus: - bmp = self.bmpFocus - if self.bmpSelected and not self.up: - bmp = self.bmpSelected - bmpwidth, bmpheight = bmp.GetWidth(), bmp.GetHeight() - hasmask = bmp.GetMask() is not None - else: - bmpwidth = bmpheight = 0 - - dc.SetFont(self.GetFont()) - color = (self.GetForegroundColour() if self.IsEnabled() else - wx.SystemSettings.GetColour(wx.SYS_COLOUR_GRAYTEXT)) - dc.SetTextForeground(color) - - label = self.GetLabel() - txtwidth, txtheight = dc.GetTextExtent(label) - # center bitmap and text - xpos = (width - bmpwidth - txtwidth) // 2 if center else 0 - if bmp is not None: - dc.DrawBitmap(bmp, xpos, (height - bmpheight) // 2, hasmask) - xpos += 5 - dc.DrawText(label, xpos + bmpwidth, (height - txtheight) // 2) diff --git a/abipy/gui/awx/console.py b/abipy/gui/awx/console.py deleted file mode 100644 index 0a56f62fa..000000000 --- a/abipy/gui/awx/console.py +++ /dev/null @@ -1,172 +0,0 @@ -from __future__ import print_function, division - -import wx - -__all__ = [ - "ConsoleEvent", - "ConsoleWindow", -] - -####################################################################### -# Events for the console widget -####################################################################### - -EVT_CONSOLE_TYPE = wx.NewEventType() -EVT_CONSOLE = wx.PyEventBinder(EVT_CONSOLE_TYPE, 1) - - -class ConsoleEvent(wx.PyEvent): - """ - This event is triggering for messages that - should be displayed within the console. - """ - def __init__(self, kind, msg): - wx.PyEvent.__init__(self) - self.SetEventType(EVT_CONSOLE_TYPE) - self.kind, self.msg = kind, msg - - -class ConsoleWindow(wx.TextCtrl): - """ - This serves as the primary console for displaying commands and initialization information. - The console window is color coded. To write to the console window, widgets should post console events. - """ - # Message kinds - INFO = "info" - DEBUG = "debug" - WARNING = "warning" - CRITICAL = "critical" - ERROR = 'error' - - ALL_KINDS =[INFO, DEBUG, WARNING, CRITICAL, ERROR] - - def __init__(self, parent): - """Creates the console window.""" - wx.TextCtrl.__init__(self, parent, -1, style=wx.TE_MULTILINE | wx.TE_READONLY | wx.NO_BORDER | wx.TE_RICH2) - - self.idPOPUP_CLEAR = wx.NewId() - - # "kind > %s\n", - self.format = {} - for kind in self.ALL_KINDS: - self.format[kind] = kind + "> %s\n" - - self.colors = {k: None for k in self.ALL_KINDS} - self.wxColors = {k: None for k in self.ALL_KINDS} - - # Set ourselves to receive all console events - self.Bind(EVT_CONSOLE, self.onConsoleEvent) - - # Set up the console menu handler - self.Bind(wx.EVT_RIGHT_DOWN, self.onRightClick, self) - - def displayBanner(self, **kwargs): - """Displays the application startup banner.""" - self.insertText('===============================================') - self.insertText("Welcome to program %s" % version) - self.insertText('===============================================') - self.insertText('') - - def insertText(self, text, kind=None): - """ - Writes text to the console window in the appropriate color for the kind of message. - """ - self.SetDefaultStyle(wx.TextAttr(self.getColor(kind))) - self.AppendText(self.format[kind] % text) - - def getColor(self, kind): - """Gets the wx color object for the specified text kind.""" - #config = utils.getApplicationConfiguration() - #current_color = config[kind + '_color'] - if kind is None: - return None - - wx_color = None - - #current_color = "error" - #if self.colors[kind] == current_color: - # wx_color = self.wxColors[kind] - #else: - # wx_color = apply(wx.Colour, current_color) - # self.colors[kind] = current_color - # self.wxColors[kind] = wx_color - - return wx_color - - def onConsoleEvent(self, event): - """ - Processes a console event by displaying the contents of the event to the console window. - """ - self.insertText(event.msg, event.kind) - - def onRightClick(self, event): - """Handles a right click by displaying the popupmenu at the click point.""" - menu = self.makePopupMenu() - self.PopupMenu(menu, event.GetPosition()) - - def makePopupMenu(self): - """Creates the popup menu for operations on the console window.""" - menu = wx.Menu() - menu.Append(self.idPOPUP_CLEAR, "Clear Console") - - self.Bind(wx.EVT_MENU, self.onClear, id=self.idPOPUP_CLEAR) - return menu - - def onClear(self, event): - """Processes a clearing of the console window event.""" - self.Clear() - - -class FrameWithConsole(wx.Frame): - """ - Simple frame with a Choice control and two buttons: OK, Cancel - Subclasses will usually redefine onOkButton. - """ - def __init__(self, parent, choices, **kwargs): - super(FrameWithConsole, self).__init__(parent, id=-1, **kwargs) - self.parent = parent - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - panel = wx.Panel(self, -1) - main_sizer.Add(panel, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL | wx.EXPAND, border=5) - - ok_button = wx.Button(self, wx.ID_OK, label='Ok') - ok_button.Bind(wx.EVT_BUTTON, self.onOkButton) - - close_button = wx.Button(self, wx.ID_CANCEL, label='Cancel') - close_button.Bind(wx.EVT_BUTTON, self.onCloseButton) - - hbox = wx.BoxSizer(wx.HORIZONTAL) - hbox.Add(ok_button) - hbox.Add(close_button, flag=wx.LEFT, border=5) - - main_sizer.Add(hbox, flag=wx.ALIGN_CENTER | wx.ALL | wx.EXPAND) - - splitter = wx.SplitterWindow(self, -1, style=wx.SP_3DSASH) - self.console = ConsoleWindow(splitter) - csplitter = wx.SplitterWindow(splitter, -1, style=wx.SP_3DSASH) - # Set the default control window size - splitter.SplitHorizontally(self.console, csplitter, 150) - - main_sizer.Add(splitter, 1, wx.EXPAND) - #main_sizer.Add(self.console, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL | wx.EXPAND, border=5) - - self.SetAutoLayout(True) - self.SetSizerAndFit(main_sizer) - - def onOkButton(self, event): - event = ConsoleEvent(kind="error", msg="Hello") - #print("Firing %s" % event) - wx.PostEvent(self.console, event) - - def onCloseButton(self, event): - self.Destroy() - - -if __name__ == "__main__": - app = wx.App() - frame = FrameWithConsole(None, -1) - frame.Show(True) - app.SetTopWindow(frame) - app.MainLoop() diff --git a/abipy/gui/awx/core.py b/abipy/gui/awx/core.py deleted file mode 100644 index 06b3dbf46..000000000 --- a/abipy/gui/awx/core.py +++ /dev/null @@ -1,157 +0,0 @@ -"""Core objects and helper functions.""" -from __future__ import print_function, division - -import os -import sys -import wx - -from monty.string import list_strings -#import abipy.tools.decorators as dec - - -#import logging -#logger = logging.getLogger(__name__) - - -__all__ = [ - "path_img", - "makeAboutBox", - "verbose", - "Panel", - "Frame", - "get_width_height", -] - -_DEBUG = True -_DEBUG = False - - -#if _DEBUG: -# verbose = dec.verbose -# -#else: -def verbose(func): - return func - - -#class Error(Exception): -# """Base class for exceptions raised by awx library""" - - -def path_img(filename): - """Returns the absolute path of an image.""" - dirname = os.path.dirname(__file__) - return os.path.join(dirname, "images", filename) - - -def makeAboutBox(codename, version, description, developers, website=None, icon_path=None): - - licence = """%(codename)s is free software; you can redistribute -it and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -%(codename)s is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -See the GNU General Public License for more details. You should have -received a copy of the GNU General Public License along with the code; -if not, write to the Free Software Foundation, Inc., 59 Temple Place, -Suite 330, Boston, MA 02111-1307 USA""" % {"codename": codename} - - # Make a template for the description - #desc = "\n".join(["\nwxPython Cookbook Chapter 5\n", - # "Platform Info: (%s,%s)", - # "License: Public Domain"]) - - ## Get the platform information - #py_version = [sys.platform, ", python ", sys.version.split()[0]] - #platform = list(wx.PlatformInfo[1:]) - #platform[0] += (" " + wx.VERSION_STRING) - #wx_info = ", ".join(platform) - - #info.SetDescription(desc % (py_version, wx_info)) - - info = wx.AboutDialogInfo() - - if icon_path is not None: - info.SetIcon(wx.Icon(icon_path, wx.BITMAP_TYPE_PNG)) - - info.SetName(codename) - info.SetVersion(version) - info.SetDescription(description) - info.SetCopyright('(C) Abipy group') - - if website is not None: - info.SetWebSite(website) - - info.SetLicence(licence) - - for dev in list_strings(developers): - info.AddDeveloper(dev) - - wx.AboutBox(info) - - -def get_width_height(window, string, pads=(10, 10)): - """ - Returns the width and the height (in pixels) of a string used in window. - Returns are padded with pads - - See http://docs.wxwidgets.org/2.8/wx_wxdc.html#wxdcgettextextent - """ - f = window.GetFont() - dc = wx.WindowDC(window) - dc.SetFont(f) - width, height = dc.GetTextExtent(string) - return width + pads[0], height + pads[1] - - -class MyWindow(object): - """ - Mixin class providing helper functions and commonly used callbacks. - - Attributes: - HELP_MSG: - string with a short help (will be displayed in MessageDialog in onHelp callback) - """ - HELP_MSG = "No help available" - - def getParentWithType(self, cls): - """ - Returns the first parent window of type cls. - - Raises: - RuntimeError if we have reached the head of the linked list. - """ - parent = self.GetParent() - - while True: - if parent is None: - raise RuntimeError("Cannot find parent with class %s, reached None parent!" % cls) - - if isinstance(parent, cls): - return parent - else: - parent = parent.GetParent() - - def onHelp(self, event): - """Short help.""" - dialog = wx.MessageDialog(self, self.HELP_MSG, " Quick Reference", wx.OK | wx.ICON_INFORMATION) - dialog.ShowModal() - dialog.Destroy() - - -class Panel(wx.Panel, MyWindow): - def __init__(self, parent, *args, **kwargs): - super(Panel, self).__init__(parent, *args, **kwargs) - - -class Frame(wx.Frame, MyWindow): - """Base class for frames.""" - - def __init__(self, parent, *args, **kwargs): - if "title" not in kwargs: - kwargs["title"] = self.__class__.__name__ - - super(Frame, self).__init__(parent, *args, **kwargs) diff --git a/abipy/gui/awx/dialogs.py b/abipy/gui/awx/dialogs.py deleted file mode 100644 index 3a0009a71..000000000 --- a/abipy/gui/awx/dialogs.py +++ /dev/null @@ -1,220 +0,0 @@ -from __future__ import print_function, division - -import os -import wx - -from monty.os.path import which -from monty.string import is_string - - -__all__ = [ - "showErrorMessage", - "askUser", - "showLicense", -] - - -# Helper functions. -def _straceback(): - """Returns a string with the traceback.""" - import traceback - return traceback.format_exc() - - -def askUser(parent, message): - """Open dialog with message, return user's answer.""" - ask = wx.MessageDialog(parent, message) - answer = ask.ShowModal() == wx.ID_OK - ask.Destroy() - return answer - - -class ErrorDialog(wx.MessageDialog): - def __init__(self, parent, message): - super(ErrorDialog, self).__init__(parent, message=message, caption='Error Message', - style=wx.YES_NO | wx.CANCEL | wx.NO_DEFAULT | wx.ICON_ERROR | wx.STAY_ON_TOP) - -def showErrorMessage(parent, message=None): - """ - Open a `MessageDialog` with an error message. - If message is None, the python traceback is used. - """ - if message is None: message = _straceback() - - message += "\n\n Do you want to send a bug report?" - dialog = ErrorDialog(parent, message) - - # Send mail if the user clicked YES. - if dialog.ShowModal() == wx.ID_YES: - mail = SendMail(parent) - mail.setSender(_user_at_host()) - mail.setSubject("Bug report") - mail.setBody(message) - mail.ShowModal() - mail.Destroy() - - dialog.Destroy() - - -def showLicense(parent=None, codename=None): - codename = "Abipy" if codename is None else codename - - license_text = """%(codename)s is free software; you can redistribute -it and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -%(codename)s is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -See the GNU General Public License for more details. You should have -received a copy of the GNU General Public License along with the code; -if not, write to the Free Software Foundation, Inc., 59 Temple Place, -Suite 330, Boston, MA 02111-1307 USA""" % {"codename": codename} - - dialog = License(parent, license_text) - dialog.ShowModal() - dialog.Destroy() - - -class License(wx.Dialog): - def __init__(self, parent, license_text, **kwargs): - wx.Dialog.__init__ (self, parent, id=-1, title="License") - - vsizer = wx.BoxSizer( wx.VERTICAL ) - - text = wx.TextCtrl( self, -1, license_text, style=wx.TE_MULTILINE | wx.TE_READONLY ) - vsizer.Add(text, 0, wx.ALL|wx.EXPAND, 5 ) - - vsizer.Add(wx.Button( self, wx.ID_OK), 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) - - self.SetSizerAndFit(vsizer) - - -class SendMail(wx.Dialog): - """This dialog allows the user to send an email with sendmail.""" - def __init__(self, parent, title="SendMail"): - super(SendMail, self).__init__(parent, -1, title, wx.DefaultPosition, wx.Size(400, 420)) - - panel = wx.Panel(self, -1) - vbox = wx.BoxSizer(wx.VERTICAL) - hbox1 = wx.BoxSizer(wx.HORIZONTAL) - hbox2 = wx.BoxSizer(wx.HORIZONTAL) - hbox3 = wx.BoxSizer(wx.HORIZONTAL) - st1 = wx.StaticText(panel, -1, 'From: ') - st2 = wx.StaticText(panel, -1, 'To: ') - st3 = wx.StaticText(panel, -1, 'Subject: ') - self.sender = wx.TextCtrl(panel, -1, size=(180, -1)) - self.mailto = wx.TextCtrl(panel, -1, size=(180, -1)) - self.subject = wx.TextCtrl(panel, -1, size=(180, -1)) - self.body = wx.TextCtrl(panel, -1, style=wx.TE_MULTILINE) - button_send = wx.Button(panel, 1, 'Send') - hbox1.Add(st1, 0, wx.LEFT, 10) - hbox1.Add(self.sender, 0, wx.LEFT, 20) - hbox2.Add(st2, 0, wx.LEFT, 10) - hbox2.Add(self.mailto, 0, wx.LEFT, 35) - hbox3.Add(st3, 0, wx.LEFT, 10) - hbox3.Add(self.subject, 0) - vbox.Add(hbox1, 0, wx.TOP, 10) - vbox.Add(hbox2, 0, wx.TOP, 10) - vbox.Add(hbox3, 0, wx.TOP, 10) - vbox.Add(self.body, 1, wx.EXPAND | wx.TOP | wx.RIGHT | wx.LEFT, 15) - vbox.Add(button_send, 0, wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, 20) - self.Bind(wx.EVT_BUTTON, self.onSend, id=1) - panel.SetSizer(vbox) - self.Centre() - - def setSender(self, s): - self.sender.SetValue(s) - - def setMailto(self, s): - self.mailto.SetValue(s) - - def setSubject(self, s): - self.subject.SetValue(s) - - def setBody(self, text): - self.body.SetValue(text) - - def onSend(self, event): - sender = self.sender.GetValue() - mailto = self.mailto.GetValue() - subject = self.subject.GetValue() - body = self.body.GetValue() - - header = 'From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n' % (sender, mailto, subject) - - try: - retcode = sendmail(subject, body, mailto, sender=sender) - - if retcode: - dialog = wx.MessageDialog(self, 'Email was not sent', 'Failure', wx.OK | wx.ICON_INFORMATION) - else: - dialog = wx.MessageDialog(self, 'Email was successfully sent', 'Success', wx.OK | wx.ICON_INFORMATION) - - dialog.ShowModal() - dialog.Destroy() - - except: - showErrorMessage(self) - - -def _user_at_host(): - from socket import gethostname - return os.getlogin() + "@" + gethostname() - - -def sendmail(subject, text, mailto, sender=None): - """ - Sends an e-mail with unix sendmail. - - Args: - subject: - String with the subject of the mail. - text: - String with the body of the mail. - mailto: - String or list of string with the recipients. - sender: - string with the sender address. - If sender is None, username@hostname is used. - - Returns: - exit status - """ - # Body of the message. - sender = _user_at_host() if sender is None else sender - if is_string(mailto): mailto = [mailto] - - from email.mime.text import MIMEText - - mail = MIMEText(text) - mail["Subject"] = subject - mail["From"] = sender - mail["To"] = ", ".join(mailto) - - msg = mail.as_string() - - # sendmail works much better than the python interface. - # Note that sendmail is available only on Unix-like OS. - from subprocess import Popen, PIPE - - sendmail = which("sendmail") - if sendmail is None: return -1 - - p = Popen([sendmail, "-t"], stdin=PIPE, stderr=PIPE) - - outdata, errdata = p.communicate(msg) - return len(errdata) - - -class MyApp(wx.App): - def OnInit(self): - dialog = SendMail(None) - dialog.ShowModal() - dialog.Destroy() - return True - - -if __name__ == "__main__": - MyApp(0).MainLoop() diff --git a/abipy/gui/awx/eggs.py b/abipy/gui/awx/eggs.py deleted file mode 100644 index c4c7a06a1..000000000 --- a/abipy/gui/awx/eggs.py +++ /dev/null @@ -1,462 +0,0 @@ -#!/usr/bin/env python -import wx -import random -import numpy as np - -from abipy.gui.awx.core import path_img - -__all__ = [ - "tetris_game", - "puzzle_game", -] - -# Taken from http://zetcode.com/wxpython/thetetrisgame/ -class Tetris(wx.Frame): - def __init__(self, parent, id, title): - wx.Frame.__init__(self, parent, id, title, size=(180, 380)) - - self.statusbar = self.CreateStatusBar() - self.statusbar.SetStatusText('0') - self.board = Board(self) - self.board.SetFocus() - self.board.start() - - self.Centre() - self.Show(True) - - -class Board(wx.Panel): - BoardWidth = 10 - BoardHeight = 22 - Speed = 300 - ID_TIMER = 1 - - def __init__(self, parent): - wx.Panel.__init__(self, parent) - - self.timer = wx.Timer(self, Board.ID_TIMER) - self.isWaitingAfterLine = False - self.curPiece = Shape() - self.nextPiece = Shape() - self.curX = 0 - self.curY = 0 - self.numLinesRemoved = 0 - self.board = [] - - self.isStarted = False - self.isPaused = False - - self.Bind(wx.EVT_PAINT, self.OnPaint) - self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) - self.Bind(wx.EVT_TIMER, self.OnTimer, id=Board.ID_TIMER) - - self.clearBoard() - - def shapeAt(self, x, y): - return self.board[(y * Board.BoardWidth) + x] - - def setShapeAt(self, x, y, shape): - self.board[(y * Board.BoardWidth) + x] = shape - - def squareWidth(self): - return self.GetClientSize().GetWidth() / Board.BoardWidth - - def squareHeight(self): - return self.GetClientSize().GetHeight() / Board.BoardHeight - - def start(self): - if self.isPaused: - return - - self.isStarted = True - self.isWaitingAfterLine = False - self.numLinesRemoved = 0 - self.clearBoard() - - self.newPiece() - self.timer.Start(Board.Speed) - - def pause(self): - if not self.isStarted: - return - - self.isPaused = not self.isPaused - statusbar = self.GetParent().statusbar - - if self.isPaused: - self.timer.Stop() - statusbar.SetStatusText('paused') - else: - self.timer.Start(Board.Speed) - statusbar.SetStatusText(str(self.numLinesRemoved)) - - self.Refresh() - - def clearBoard(self): - for i in range(Board.BoardHeight * Board.BoardWidth): - self.board.append(Tetrominoes.NoShape) - - def OnPaint(self, event): - - dc = wx.PaintDC(self) - - size = self.GetClientSize() - boardTop = size.GetHeight() - Board.BoardHeight * self.squareHeight() - - for i in range(Board.BoardHeight): - for j in range(Board.BoardWidth): - shape = self.shapeAt(j, Board.BoardHeight - i - 1) - if shape != Tetrominoes.NoShape: - self.drawSquare(dc, - 0 + j * self.squareWidth(), - boardTop + i * self.squareHeight(), shape) - - if self.curPiece.shape() != Tetrominoes.NoShape: - for i in range(4): - x = self.curX + self.curPiece.x(i) - y = self.curY - self.curPiece.y(i) - self.drawSquare(dc, 0 + x * self.squareWidth(), - boardTop + (Board.BoardHeight - y - 1) * self.squareHeight(), - self.curPiece.shape()) - - - def OnKeyDown(self, event): - if not self.isStarted or self.curPiece.shape() == Tetrominoes.NoShape: - event.Skip() - return - - keycode = event.GetKeyCode() - - if keycode in (ord('P'), ord('p')): - self.pause() - return - if self.isPaused: - return - elif keycode == wx.WXK_LEFT: - self.tryMove(self.curPiece, self.curX - 1, self.curY) - elif keycode == wx.WXK_RIGHT: - self.tryMove(self.curPiece, self.curX + 1, self.curY) - elif keycode == wx.WXK_DOWN: - self.tryMove(self.curPiece.rotatedRight(), self.curX, self.curY) - elif keycode == wx.WXK_UP: - self.tryMove(self.curPiece.rotatedLeft(), self.curX, self.curY) - elif keycode == wx.WXK_SPACE: - self.dropDown() - elif keycode == ord('D') or keycode == ord('d'): - self.oneLineDown() - else: - event.Skip() - - def OnTimer(self, event): - if event.GetId() == Board.ID_TIMER: - if self.isWaitingAfterLine: - self.isWaitingAfterLine = False - self.newPiece() - else: - self.oneLineDown() - else: - event.Skip() - - def dropDown(self): - newY = self.curY - while newY > 0: - if not self.tryMove(self.curPiece, self.curX, newY - 1): - break - newY -= 1 - - self.pieceDropped() - - def oneLineDown(self): - if not self.tryMove(self.curPiece, self.curX, self.curY - 1): - self.pieceDropped() - - def pieceDropped(self): - for i in range(4): - x = self.curX + self.curPiece.x(i) - y = self.curY - self.curPiece.y(i) - self.setShapeAt(x, y, self.curPiece.shape()) - - self.removeFullLines() - - if not self.isWaitingAfterLine: - self.newPiece() - - def removeFullLines(self): - numFullLines = 0 - - statusbar = self.GetParent().statusbar - - rowsToRemove = [] - - for i in range(Board.BoardHeight): - n = 0 - for j in range(Board.BoardWidth): - if not self.shapeAt(j, i) == Tetrominoes.NoShape: - n = n + 1 - - if n == 10: - rowsToRemove.append(i) - - rowsToRemove.reverse() - - for m in rowsToRemove: - for k in range(m, Board.BoardHeight): - for l in range(Board.BoardWidth): - self.setShapeAt(l, k, self.shapeAt(l, k + 1)) - - numFullLines = numFullLines + len(rowsToRemove) - - if numFullLines > 0: - self.numLinesRemoved = self.numLinesRemoved + numFullLines - statusbar.SetStatusText(str(self.numLinesRemoved)) - self.isWaitingAfterLine = True - self.curPiece.setShape(Tetrominoes.NoShape) - self.Refresh() - - def newPiece(self): - self.curPiece = self.nextPiece - statusbar = self.GetParent().statusbar - self.nextPiece.setRandomShape() - self.curX = Board.BoardWidth / 2 + 1 - self.curY = Board.BoardHeight - 1 + self.curPiece.minY() - - if not self.tryMove(self.curPiece, self.curX, self.curY): - self.curPiece.setShape(Tetrominoes.NoShape) - self.timer.Stop() - self.isStarted = False - statusbar.SetStatusText('Game over') - - def tryMove(self, newPiece, newX, newY): - for i in range(4): - x = newX + newPiece.x(i) - y = newY - newPiece.y(i) - if x < 0 or x >= Board.BoardWidth or y < 0 or y >= Board.BoardHeight: - return False - if self.shapeAt(x, y) != Tetrominoes.NoShape: - return False - - self.curPiece = newPiece - self.curX = newX - self.curY = newY - self.Refresh() - return True - - def drawSquare(self, dc, x, y, shape): - colors = ['#000000', '#CC6666', '#66CC66', '#6666CC', - '#CCCC66', '#CC66CC', '#66CCCC', '#DAAA00'] - - light = ['#000000', '#F89FAB', '#79FC79', '#7979FC', - '#FCFC79', '#FC79FC', '#79FCFC', '#FCC600'] - - dark = ['#000000', '#803C3B', '#3B803B', '#3B3B80', - '#80803B', '#803B80', '#3B8080', '#806200'] - - pen = wx.Pen(light[shape]) - pen.SetCap(wx.CAP_PROJECTING) - dc.SetPen(pen) - - dc.DrawLine(x, y + self.squareHeight() - 1, x, y) - dc.DrawLine(x, y, x + self.squareWidth() - 1, y) - - darkpen = wx.Pen(dark[shape]) - darkpen.SetCap(wx.CAP_PROJECTING) - dc.SetPen(darkpen) - - dc.DrawLine(x + 1, y + self.squareHeight() - 1, - x + self.squareWidth() - 1, y + self.squareHeight() - 1) - dc.DrawLine(x + self.squareWidth() - 1, - y + self.squareHeight() - 1, x + self.squareWidth() - 1, y + 1) - - dc.SetPen(wx.TRANSPARENT_PEN) - dc.SetBrush(wx.Brush(colors[shape])) - dc.DrawRectangle(x + 1, y + 1, self.squareWidth() - 2, - self.squareHeight() - 2) - - -class Tetrominoes(object): - NoShape = 0 - ZShape = 1 - SShape = 2 - LineShape = 3 - TShape = 4 - SquareShape = 5 - LShape = 6 - MirroredLShape = 7 - - -class Shape(object): - coordsTable = ( - ((0, 0), (0, 0), (0, 0), (0, 0)), - ((0, -1), (0, 0), (-1, 0), (-1, 1)), - ((0, -1), (0, 0), (1, 0), (1, 1)), - ((0, -1), (0, 0), (0, 1), (0, 2)), - ((-1, 0), (0, 0), (1, 0), (0, 1)), - ((0, 0), (1, 0), (0, 1), (1, 1)), - ((-1, -1), (0, -1), (0, 0), (0, 1)), - ((1, -1), (0, -1), (0, 0), (0, 1)) - ) - - def __init__(self): - self.coords = [[0,0] for i in range(4)] - self.pieceShape = Tetrominoes.NoShape - - self.setShape(Tetrominoes.NoShape) - - def shape(self): - return self.pieceShape - - def setShape(self, shape): - table = Shape.coordsTable[shape] - for i in range(4): - for j in range(2): - self.coords[i][j] = table[i][j] - - self.pieceShape = shape - - def setRandomShape(self): - self.setShape(random.randint(1, 7)) - - def x(self, index): - return self.coords[index][0] - - def y(self, index): - return self.coords[index][1] - - def setX(self, index, x): - self.coords[index][0] = x - - def setY(self, index, y): - self.coords[index][1] = y - - def minX(self): - m = self.coords[0][0] - for i in range(4): - m = min(m, self.coords[i][0]) - - return m - - def maxX(self): - m = self.coords[0][0] - for i in range(4): - m = max(m, self.coords[i][0]) - - return m - - def minY(self): - m = self.coords[0][1] - for i in range(4): - m = min(m, self.coords[i][1]) - - return m - - def maxY(self): - m = self.coords[0][1] - for i in range(4): - m = max(m, self.coords[i][1]) - - return m - - def rotatedLeft(self): - if self.pieceShape == Tetrominoes.SquareShape: - return self - - result = Shape() - result.pieceShape = self.pieceShape - for i in range(4): - result.setX(i, self.y(i)) - result.setY(i, -self.x(i)) - - return result - - def rotatedRight(self): - if self.pieceShape == Tetrominoes.SquareShape: - return self - - result = Shape() - result.pieceShape = self.pieceShape - for i in range(4): - result.setX(i, -self.y(i)) - result.setY(i, self.x(i)) - - return result - -def tetris_game(): - app = wx.App() - Tetris(None, -1, 'Tetris') - app.MainLoop() - - -class Puzzle(wx.Dialog): - - def __init__(self, *args, **kw): - super(Puzzle, self).__init__(*args, **kw) - - self.InitUI() - - def InitUI(self): - # convert image.png -crop 120x90 image%d.png - # image should be 360x270 - images = ["abipy" + str(i) + ".png" for i in range(9)] - images = map(path_img, images) - - self.pos = np.reshape(list(range(9)), (3,3)) - - self.sizer = wx.GridSizer(3, 3, 0, 0) - - numbers = list(range(8)) - random.shuffle(numbers) - - for i in numbers: - btn = wx.BitmapButton(self, i, wx.Bitmap(images[i])) - btn.Bind(wx.EVT_BUTTON, self.OnPressButton, btn) - self.sizer.Add(btn) - - self.empty = wx.BitmapButton(self, bitmap=wx.Bitmap(path_img('empty.png'))) - self.empty.Bind(wx.EVT_BUTTON, self.OnPressButton, self.empty) - self.sizer.Add(self.empty) - - self.SetSizerAndFit(self.sizer) - self.SetTitle('Puzzle') - self.Centre() - self.ShowModal() - self.Destroy() - - def OnPressButton(self, e): - - btn = e.GetEventObject() - - width = self.empty.GetSize().x - height = self.empty.GetSize().y - - btnX = btn.GetPosition().x - btnY = btn.GetPosition().y - emptyX = self.empty.GetPosition().x - emptyY = self.empty.GetPosition().y - - - if (((btnX == emptyX) and (emptyY - btnY) == height) - or ((btnX == emptyX) and (emptyY - btnY) == -height) - or ((btnY == emptyY) and (emptyX - btnX) == width) - or ((btnY == emptyY) and (emptyX - btnX) == -width)): - - self.ExchangeImages(btn) - - def ExchangeImages(self, btn): - bmp1 = self.empty.GetBitmapLabel() - bmp2 = btn.GetBitmapLabel() - - self.empty.SetBitmapLabel(bmp2) - btn.SetBitmapLabel(bmp1) - - self.empty = btn - - -def puzzle_game(): - ex = wx.App() - Puzzle(None) - ex.MainLoop() - - -if __name__ == "__main__": - #tetris_game() - puzzle_game() diff --git a/abipy/gui/awx/elements.py b/abipy/gui/awx/elements.py deleted file mode 100644 index f3977ee13..000000000 --- a/abipy/gui/awx/elements.py +++ /dev/null @@ -1,2644 +0,0 @@ -# -*- coding: utf-8 -*- -# elements.py - -# Copyright (c) 2005-2014, Christoph Gohlke -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the copyright holders nor the names of any -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -"""Properties of the chemical elements. - -Each chemical element is represented as an object instance. Physicochemical -and descriptive properties of the elements are stored as instance attributes. - -:Author: `Christoph Gohlke `_ - -:Version: 2013.03.18 - -Requirements ------------- -* `CPython 2.7 or 3.3 `_ - -References ----------- -(1) http://physics.nist.gov/PhysRefData/Compositions/ -(2) http://physics.nist.gov/PhysRefData/IonEnergy/tblNew.html -(3) http://en.wikipedia.org/wiki/%(element.name)s -(4) http://www.miranda.org/~jkominek/elements/elements.db - -Examples --------- ->>> from elements import ELEMENTS ->>> len(ELEMENTS) -109 ->>> str(ELEMENTS[109]) -'Meitnerium' ->>> ele = ELEMENTS['C'] ->>> ele.number, ele.symbol, ele.name, ele.eleconfig -(6, 'C', 'Carbon', '[He] 2s2 2p2') ->>> ele.eleconfig_dict -{(1, 's'): 2, (2, 'p'): 2, (2, 's'): 2} ->>> sum(ele.mass for ele in ELEMENTS) -14659.1115599 ->>> for ele in ELEMENTS: -... ele.validate() -... ele = eval(repr(ele)) - -""" - -from __future__ import division, print_function - -__version__ = '2013.03.18' -__docformat__ = 'restructuredtext en' -__all__ = ['ELEMENTS'] - - -class lazyattr(object): - """Lazy object attribute whose value is computed on first access.""" - __slots__ = ['func'] - - def __init__(self, func): - self.func = func - - def __get__(self, instance, owner): - result = self.func(instance) - if result is NotImplemented: - return getattr(super(owner, instance), self.func.__name__) - setattr(instance, self.func.__name__, result) - return result - - -class Element(object): - """Chemical element. - - Attributes - ---------- - number : int - Atomic number - symbol : str of length 1 or 2 - Chemical symbol - name : str - Name in english - group : int - Group in periodic table - period : int - Period in periodic table - block : int - Block in periodic table - series : int - Index to chemical series - protons : int - Number of protons - neutrons : int - Number of neutrons in the most abundant naturally occurring stable - isotope - nominalmass : int - Mass number of the most abundant naturally occurring stable isotope - electrons : int - Number of electrons - mass : float - Relative atomic mass. Ratio of the average mass of atoms - of the element to 1/12 of the mass of an atom of 12C - exactmass : float - Relative atomic mass calculated from the isotopic composition - eleneg : float - Electronegativity (Pauling scale) - covrad : float - Covalent radius in Angstrom - atmrad : - Atomic radius in Angstrom - vdwrad : float - Van der Waals radius in Angstrom - tboil : float - Boiling temperature in K - tmelt : float - Melting temperature in K - density : float - Density at 295K in g/cm3 respectively g/L - oxistates : str - Oxidation states - eleaffin : float - Electron affinity in eV - eleconfig : str - Ground state electron configuration - eleconfig_dict : dict - Ground state electron configuration (shell, subshell): electrons - eleshells : int - Number of electrons per shell - ionenergy : tuple - Ionization energies in eV - isotopes : dict - Isotopic composition. - keys: isotope mass number - values: Isotope(relative atomic mass, abundance) - - """ - def __init__(self, number, symbol, name, **kwargs): - self.number = number - self.symbol = symbol - self.name = name - self.electrons = number - self.protons = number - self.__dict__.update(kwargs) - - def __str__(self): - return self.name - - def __repr__(self): - ionenergy = [] - for i, j in enumerate(self.ionenergy): - if i and (i % 5 == 0): - ionenergy.append("\n" + " " * 15) - ionenergy.append("%s, " % j) - ionenergy = "".join(ionenergy) - - isotopes = [] - for massnum in sorted(self.isotopes): - iso = self.isotopes[massnum] - isotopes.append("%i: Isotope(%s, %s, %i)" % ( - massnum, iso.mass, iso.abundance, massnum)) - isotopes = ",\n ".join(isotopes) - - description = word_wrap(self.description, linelen=66, indent=0, - joinstr=""" "\n \"""") - description = """ e['%s'].description = (\n "%s\")""" % ( - self.symbol, description) - # return description - - result = [ - "Element(\n %i, '%s', '%s'" % ( - self.number, self.symbol, self.name), - "group=%s, period=%s, block='%s', series=%i" % ( - self.group, self.period, self.block, self.series), - "mass=%s, eleneg=%s, eleaffin=%s" % ( - self.mass, self.eleneg, self.eleaffin), - "covrad=%s, atmrad=%s, vdwrad=%s" % ( - self.covrad, self.atmrad, self.vdwrad), - "tboil=%s, tmelt=%s, density=%s" % ( - self.tboil, self.tmelt, self.density), - "eleconfig='%s'" % self.eleconfig, - "oxistates='%s'" % self.oxistates, - "ionenergy=(%s)" % ionenergy, - "isotopes={%s})" % isotopes - ] - return ",\n ".join(result) - - @lazyattr - def nominalmass(self): - """Return mass number of most abundant natural stable isotope.""" - nominalmass = 0 - maxabundance = 0 - for massnum, iso in self.isotopes.items(): - if iso.abundance > maxabundance: - maxabundance = iso.abundance - nominalmass = massnum - return nominalmass - - @lazyattr - def neutrons(self): - """Return number neutrons in most abundant natural stable isotope.""" - return self.nominalmass - self.protons - - @lazyattr - def exactmass(self): - """Return relative atomic mass calculated from isotopic composition.""" - return sum(iso.mass * iso.abundance for iso in self.isotopes.values()) - - @lazyattr - def eleconfig_dict(self): - """Return electron configuration as dict.""" - adict = {} - if self.eleconfig.startswith('['): - base = self.eleconfig.split(' ', 1)[0][1:-1] - adict.update(ELEMENTS[base].eleconfig_dict) - for e in self.eleconfig.split()[bool(adict):]: - adict[(int(e[0]), e[1])] = int(e[2:]) if len(e) > 2 else 1 - return adict - - @lazyattr - def eleshells(self): - """Return number of electrons in shell as tuple.""" - eleshells = [0, 0, 0, 0, 0, 0, 0] - for key, val in self.eleconfig_dict.items(): - eleshells[key[0] - 1] += val - return tuple(ele for ele in eleshells if ele) - - @lazyattr - def description(self): - """Return text description of element.""" - return _descriptions(self.symbol) - - def validate(self): - """Check consistency of data. Raise Error on failure.""" - assert self.period in PERIODS - assert self.group in GROUPS - assert self.block in BLOCKS - assert self.series in SERIES - - if self.number != self.protons: - raise ValueError( - "%s - atomic number must equal proton number" % self.symbol) - if self.protons != sum(self.eleshells): - raise ValueError( - "%s - number of protons must equal electrons" % self.symbol) - - mass = 0.0 - frac = 0.0 - for iso in self.isotopes.values(): - mass += iso.abundance * iso.mass - frac += iso.abundance - if abs(mass - self.mass) > 0.03: - raise ValueError( - "%s - average of isotope masses (%.4f) != mass (%.4f)" % ( - self.symbol, mass, self.mass)) - if abs(frac - 1.0) > 1e-9: - raise ValueError( - "%s - sum of isotope abundances != 1.0" % self.symbol) - - -class Isotope(object): - """Isotope massnumber, relative atomic mass, and abundance.""" - __slots__ = ['massnumber', 'mass', 'abundance'] - - def __init__(self, mass=0.0, abundance=1.0, massnumber=0): - self.mass = mass - self.abundance = abundance - self.massnumber = massnumber - - def __str__(self): - return "%i, %.4f, %.6f%%" % (self.massnumber, self.mass, - self.abundance * 100) - - def __repr__(self): - return "Isotope(%s, %s, %s)" % ( - repr(self.mass), repr(self.abundance), repr(self.massnumber)) - - -class ElementsDict(object): - """Ordered dict of Elements with lookup by number, symbol, and name.""" - def __init__(self, *elements): - self._list = [] - self._dict = {} - for element in elements: - if element.number > len(self._list) + 1: - raise ValueError("Elements must be added in order") - if element.number <= len(self._list): - self._list[element.number - 1] = element - else: - self._list.append(element) - self._dict[element.number] = element - self._dict[element.symbol] = element - self._dict[element.name] = element - - def __str__(self): - return "[%s]" % ", ".join(ele.symbol for ele in self._list) - - def __contains__(self, item): - return item in self._dict - - def __iter__(self): - return iter(self._list) - - def __len__(self): - return len(self._list) - - def __getitem__(self, key): - try: - return self._dict[key] - except KeyError: - try: - start, stop, step = key.indices(len(self._list)) - return self._list[slice(start - 1, stop - 1, step)] - except: - raise KeyError("key %s not found" % key) - - -ELEMENTS = ElementsDict( - Element( - 1, 'H', 'Hydrogen', - group=1, period=1, block='s', series=1, - mass=1.00794, eleneg=2.2, eleaffin=0.75420375, - covrad=0.32, atmrad=0.79, vdwrad=1.2, - tboil=20.28, tmelt=13.81, density=0.084, - eleconfig='1s', - oxistates='1*, -1', - ionenergy=(13.5984, ), - isotopes={1: Isotope(1.0078250321, 0.999885, 1), - 2: Isotope(2.014101778, 0.000115, 2)}), - Element( - 2, 'He', 'Helium', - group=18, period=1, block='s', series=2, - mass=4.002602, eleneg=0.0, eleaffin=0.0, - covrad=0.93, atmrad=0.49, vdwrad=1.4, - tboil=4.216, tmelt=0.95, density=0.1785, - eleconfig='1s2', - oxistates='*', - ionenergy=(24.5874, 54.416, ), - isotopes={3: Isotope(3.0160293097, 1.37e-06, 3), - 4: Isotope(4.0026032497, 0.99999863, 4)}), - Element( - 3, 'Li', 'Lithium', - group=1, period=2, block='s', series=3, - mass=6.941, eleneg=0.98, eleaffin=0.618049, - covrad=1.23, atmrad=2.05, vdwrad=1.82, - tboil=1615.0, tmelt=453.7, density=0.53, - eleconfig='[He] 2s', - oxistates='1*', - ionenergy=(5.3917, 75.638, 122.451, ), - isotopes={6: Isotope(6.0151223, 0.0759, 6), - 7: Isotope(7.016004, 0.9241, 7)}), - Element( - 4, 'Be', 'Beryllium', - group=2, period=2, block='s', series=4, - mass=9.012182, eleneg=1.57, eleaffin=0.0, - covrad=0.9, atmrad=1.4, vdwrad=0.0, - tboil=3243.0, tmelt=1560.0, density=1.85, - eleconfig='[He] 2s2', - oxistates='2*', - ionenergy=(9.3227, 18.211, 153.893, 217.713, ), - isotopes={9: Isotope(9.0121821, 1.0, 9)}), - Element( - 5, 'B', 'Boron', - group=13, period=2, block='p', series=5, - mass=10.811, eleneg=2.04, eleaffin=0.279723, - covrad=0.82, atmrad=1.17, vdwrad=0.0, - tboil=4275.0, tmelt=2365.0, density=2.46, - eleconfig='[He] 2s2 2p', - oxistates='3*', - ionenergy=(8.298, 25.154, 37.93, 59.368, 340.217, ), - isotopes={10: Isotope(10.012937, 0.199, 10), - 11: Isotope(11.0093055, 0.801, 11)}), - Element( - 6, 'C', 'Carbon', - group=14, period=2, block='p', series=1, - mass=12.0107, eleneg=2.55, eleaffin=1.262118, - covrad=0.77, atmrad=0.91, vdwrad=1.7, - tboil=5100.0, tmelt=3825.0, density=3.51, - eleconfig='[He] 2s2 2p2', - oxistates='4*, 2, -4*', - ionenergy=(11.2603, 24.383, 47.877, 64.492, 392.077, - 489.981, ), - isotopes={12: Isotope(12.0, 0.9893, 12), - 13: Isotope(13.0033548378, 0.0107, 13)}), - Element( - 7, 'N', 'Nitrogen', - group=15, period=2, block='p', series=1, - mass=14.0067, eleneg=3.04, eleaffin=-0.07, - covrad=0.75, atmrad=0.75, vdwrad=1.55, - tboil=77.344, tmelt=63.15, density=1.17, - eleconfig='[He] 2s2 2p3', - oxistates='5, 4, 3, 2, -3*', - ionenergy=(14.5341, 39.601, 47.488, 77.472, 97.888, - 522.057, 667.029, ), - isotopes={14: Isotope(14.0030740052, 0.99632, 14), - 15: Isotope(15.0001088984, 0.00368, 15)}), - Element( - 8, 'O', 'Oxygen', - group=16, period=2, block='p', series=1, - mass=15.9994, eleneg=3.44, eleaffin=1.461112, - covrad=0.73, atmrad=0.65, vdwrad=1.52, - tboil=90.188, tmelt=54.8, density=1.33, - eleconfig='[He] 2s2 2p4', - oxistates='-2*, -1', - ionenergy=(13.6181, 35.116, 54.934, 54.934, 77.412, - 113.896, 138.116, 739.315, 871.387, ), - isotopes={16: Isotope(15.9949146221, 0.99757, 16), - 17: Isotope(16.9991315, 0.00038, 17), - 18: Isotope(17.9991604, 0.00205, 18)}), - Element( - 9, 'F', 'Fluorine', - group=17, period=2, block='p', series=6, - mass=18.9984032, eleneg=3.98, eleaffin=3.4011887, - covrad=0.72, atmrad=0.57, vdwrad=1.47, - tboil=85.0, tmelt=53.55, density=1.58, - eleconfig='[He] 2s2 2p5', - oxistates='-1*', - ionenergy=(17.4228, 34.97, 62.707, 87.138, 114.24, - 157.161, 185.182, 953.886, 1103.089, ), - isotopes={19: Isotope(18.9984032, 1.0, 19)}), - Element( - 10, 'Ne', 'Neon', - group=18, period=2, block='p', series=2, - mass=20.1797, eleneg=0.0, eleaffin=0.0, - covrad=0.71, atmrad=0.51, vdwrad=1.54, - tboil=27.1, tmelt=24.55, density=0.8999, - eleconfig='[He] 2s2 2p6', - oxistates='*', - ionenergy=(21.5645, 40.962, 63.45, 97.11, 126.21, - 157.93, 207.27, 239.09, 1195.797, 1362.164, ), - isotopes={20: Isotope(19.9924401759, 0.9048, 20), - 21: Isotope(20.99384674, 0.0027, 21), - 22: Isotope(21.99138551, 0.0925, 22)}), - Element( - 11, 'Na', 'Sodium', - group=1, period=3, block='s', series=3, - mass=22.98977, eleneg=0.93, eleaffin=0.547926, - covrad=1.54, atmrad=2.23, vdwrad=2.27, - tboil=1156.0, tmelt=371.0, density=0.97, - eleconfig='[Ne] 3s', - oxistates='1*', - ionenergy=(5.1391, 47.286, 71.64, 98.91, 138.39, - 172.15, 208.47, 264.18, 299.87, 1465.091, - 1648.659, ), - isotopes={23: Isotope(22.98976967, 1.0, 23)}), - Element( - 12, 'Mg', 'Magnesium', - group=2, period=3, block='s', series=4, - mass=24.305, eleneg=1.31, eleaffin=0.0, - covrad=1.36, atmrad=1.72, vdwrad=1.73, - tboil=1380.0, tmelt=922.0, density=1.74, - eleconfig='[Ne] 3s2', - oxistates='2*', - ionenergy=(7.6462, 15.035, 80.143, 109.24, 141.26, - 186.5, 224.94, 265.9, 327.95, 367.53, - 1761.802, 1962.613, ), - isotopes={24: Isotope(23.9850419, 0.7899, 24), - 25: Isotope(24.98583702, 0.1, 25), - 26: Isotope(25.98259304, 0.1101, 26)}), - Element( - 13, 'Al', 'Aluminium', - group=13, period=3, block='p', series=7, - mass=26.981538, eleneg=1.61, eleaffin=0.43283, - covrad=1.18, atmrad=1.82, vdwrad=0.0, - tboil=2740.0, tmelt=933.5, density=2.7, - eleconfig='[Ne] 3s2 3p', - oxistates='3*', - ionenergy=(5.9858, 18.828, 28.447, 119.99, 153.71, - 190.47, 241.43, 284.59, 330.21, 398.57, - 442.07, 2085.983, 2304.08, ), - isotopes={27: Isotope(26.98153844, 1.0, 27)}), - Element( - 14, 'Si', 'Silicon', - group=14, period=3, block='p', series=5, - mass=28.0855, eleneg=1.9, eleaffin=1.389521, - covrad=1.11, atmrad=1.46, vdwrad=2.1, - tboil=2630.0, tmelt=1683.0, density=2.33, - eleconfig='[Ne] 3s2 3p2', - oxistates='4*, -4', - ionenergy=(8.1517, 16.345, 33.492, 45.141, 166.77, - 205.05, 246.52, 303.17, 351.1, 401.43, - 476.06, 523.5, 2437.676, 2673.108, ), - isotopes={28: Isotope(27.9769265327, 0.922297, 28), - 29: Isotope(28.97649472, 0.046832, 29), - 30: Isotope(29.97377022, 0.030871, 30)}), - Element( - 15, 'P', 'Phosphorus', - group=15, period=3, block='p', series=1, - mass=30.973761, eleneg=2.19, eleaffin=0.7465, - covrad=1.06, atmrad=1.23, vdwrad=1.8, - tboil=553.0, tmelt=317.3, density=1.82, - eleconfig='[Ne] 3s2 3p3', - oxistates='5*, 3, -3', - ionenergy=(10.4867, 19.725, 30.18, 51.37, 65.023, - 220.43, 263.22, 309.41, 371.73, 424.5, - 479.57, 560.41, 611.85, 2816.943, 3069.762, ), - isotopes={31: Isotope(30.97376151, 1.0, 31)}), - Element( - 16, 'S', 'Sulfur', - group=16, period=3, block='p', series=1, - mass=32.065, eleneg=2.58, eleaffin=2.0771029, - covrad=1.02, atmrad=1.09, vdwrad=1.8, - tboil=717.82, tmelt=392.2, density=2.06, - eleconfig='[Ne] 3s2 3p4', - oxistates='6*, 4, 2, -2', - ionenergy=(10.36, 23.33, 34.83, 47.3, 72.68, - 88.049, 280.93, 328.23, 379.1, 447.09, - 504.78, 564.65, 651.63, 707.14, 3223.836, - 3494.099, ), - isotopes={32: Isotope(31.97207069, 0.9493, 32), - 33: Isotope(32.9714585, 0.0076, 33), - 34: Isotope(33.96786683, 0.0429, 34), - 36: Isotope(35.96708088, 0.0002, 36)}), - Element( - 17, 'Cl', 'Chlorine', - group=17, period=3, block='p', series=6, - mass=35.453, eleneg=3.16, eleaffin=3.612724, - covrad=0.99, atmrad=0.97, vdwrad=1.75, - tboil=239.18, tmelt=172.17, density=2.95, - eleconfig='[Ne] 3s2 3p5', - oxistates='7, 5, 3, 1, -1*', - ionenergy=(12.9676, 23.81, 39.61, 53.46, 67.8, - 98.03, 114.193, 348.28, 400.05, 455.62, - 529.97, 591.97, 656.69, 749.75, 809.39, - 3658.425, 3946.193, ), - isotopes={35: Isotope(34.96885271, 0.7578, 35), - 37: Isotope(36.9659026, 0.2422, 37)}), - Element( - 18, 'Ar', 'Argon', - group=18, period=3, block='p', series=2, - mass=39.948, eleneg=0.0, eleaffin=0.0, - covrad=0.98, atmrad=0.88, vdwrad=1.88, - tboil=87.45, tmelt=83.95, density=1.66, - eleconfig='[Ne] 3s2 3p6', - oxistates='*', - ionenergy=(15.7596, 27.629, 40.74, 59.81, 75.02, - 91.007, 124.319, 143.456, 422.44, 478.68, - 538.95, 618.24, 686.09, 755.73, 854.75, - 918.0, 4120.778, 4426.114, ), - isotopes={36: Isotope(35.96754628, 0.003365, 36), - 38: Isotope(37.9627322, 0.000632, 38), - 40: Isotope(39.962383123, 0.996003, 40)}), - Element( - 19, 'K', 'Potassium', - group=1, period=4, block='s', series=3, - mass=39.0983, eleneg=0.82, eleaffin=0.501459, - covrad=2.03, atmrad=2.77, vdwrad=2.75, - tboil=1033.0, tmelt=336.8, density=0.86, - eleconfig='[Ar] 4s', - oxistates='1*', - ionenergy=(4.3407, 31.625, 45.72, 60.91, 82.66, - 100.0, 117.56, 154.86, 175.814, 503.44, - 564.13, 629.09, 714.02, 787.13, 861.77, - 968.0, 1034.0, 4610.955, 4933.931, ), - isotopes={39: Isotope(38.9637069, 0.932581, 39), - 40: Isotope(39.96399867, 0.000117, 40), - 41: Isotope(40.96182597, 0.067302, 41)}), - Element( - 20, 'Ca', 'Calcium', - group=2, period=4, block='s', series=4, - mass=40.078, eleneg=1.0, eleaffin=0.02455, - covrad=1.74, atmrad=2.23, vdwrad=0.0, - tboil=1757.0, tmelt=1112.0, density=1.54, - eleconfig='[Ar] 4s2', - oxistates='2*', - ionenergy=(6.1132, 11.71, 50.908, 67.1, 84.41, - 108.78, 127.7, 147.24, 188.54, 211.27, - 591.25, 656.39, 726.03, 816.61, 895.12, - 974.0, 1087.0, 1157.0, 5129.045, 5469.738, ), - isotopes={40: Isotope(39.9625912, 0.96941, 40), - 42: Isotope(41.9586183, 0.00647, 42), - 43: Isotope(42.9587668, 0.00135, 43), - 44: Isotope(43.9554811, 0.02086, 44), - 46: Isotope(45.9536928, 4e-05, 46), - 48: Isotope(47.952534, 0.00187, 48)}), - Element( - 21, 'Sc', 'Scandium', - group=3, period=4, block='d', series=8, - mass=44.95591, eleneg=1.36, eleaffin=0.188, - covrad=1.44, atmrad=2.09, vdwrad=0.0, - tboil=3109.0, tmelt=1814.0, density=2.99, - eleconfig='[Ar] 3d 4s2', - oxistates='3*', - ionenergy=(6.5615, 12.8, 24.76, 73.47, 91.66, - 11.1, 138.0, 158.7, 180.02, 225.32, - 225.32, 685.89, 755.47, 829.79, 926.0, ), - isotopes={45: Isotope(44.9559102, 1.0, 45)}), - Element( - 22, 'Ti', 'Titanium', - group=4, period=4, block='d', series=8, - mass=47.867, eleneg=1.54, eleaffin=0.084, - covrad=1.32, atmrad=2.0, vdwrad=0.0, - tboil=3560.0, tmelt=1935.0, density=4.51, - eleconfig='[Ar] 3d2 4s2', - oxistates='4*, 3', - ionenergy=(6.8281, 13.58, 27.491, 43.266, 99.22, - 119.36, 140.8, 168.5, 193.5, 193.2, - 215.91, 265.23, 291.497, 787.33, 861.33, ), - isotopes={46: Isotope(45.9526295, 0.0825, 46), - 47: Isotope(46.9517638, 0.0744, 47), - 48: Isotope(47.9479471, 0.7372, 48), - 49: Isotope(48.9478708, 0.0541, 49), - 50: Isotope(49.9447921, 0.0518, 50)}), - Element( - 23, 'V', 'Vanadium', - group=5, period=4, block='d', series=8, - mass=50.9415, eleneg=1.63, eleaffin=0.525, - covrad=1.22, atmrad=1.92, vdwrad=0.0, - tboil=3650.0, tmelt=2163.0, density=6.09, - eleconfig='[Ar] 3d3 4s2', - oxistates='5*, 4, 3, 2, 0', - ionenergy=(6.7462, 14.65, 29.31, 46.707, 65.23, - 128.12, 150.17, 173.7, 205.8, 230.5, - 255.04, 308.25, 336.267, 895.58, 974.02, ), - isotopes={50: Isotope(49.9471628, 0.0025, 50), - 51: Isotope(50.9439637, 0.9975, 51)}), - Element( - 24, 'Cr', 'Chromium', - group=6, period=4, block='d', series=8, - mass=51.9961, eleneg=1.66, eleaffin=0.67584, - covrad=1.18, atmrad=1.85, vdwrad=0.0, - tboil=2945.0, tmelt=2130.0, density=7.14, - eleconfig='[Ar] 3d5 4s', - oxistates='6, 3*, 2, 0', - ionenergy=(6.7665, 16.5, 30.96, 49.1, 69.3, - 90.56, 161.1, 184.7, 209.3, 244.4, - 270.8, 298.0, 355.0, 384.3, 1010.64, ), - isotopes={50: Isotope(49.9460496, 0.04345, 50), - 52: Isotope(51.9405119, 0.83789, 52), - 53: Isotope(52.9406538, 0.09501, 53), - 54: Isotope(53.9388849, 0.02365, 54)}), - Element( - 25, 'Mn', 'Manganese', - group=7, period=4, block='d', series=8, - mass=54.938049, eleneg=1.55, eleaffin=0.0, - covrad=1.17, atmrad=1.79, vdwrad=0.0, - tboil=2235.0, tmelt=1518.0, density=7.44, - eleconfig='[Ar] 3d5 4s2', - oxistates='7, 6, 4, 3, 2*, 0, -1', - ionenergy=(7.434, 15.64, 33.667, 51.2, 72.4, - 95.0, 119.27, 196.46, 221.8, 248.3, - 286.0, 314.4, 343.6, 404.0, 435.3, - 1136.2, ), - isotopes={55: Isotope(54.9380496, 1.0, 55)}), - Element( - 26, 'Fe', 'Iron', - group=8, period=4, block='d', series=8, - mass=55.845, eleneg=1.83, eleaffin=0.151, - covrad=1.17, atmrad=1.72, vdwrad=0.0, - tboil=3023.0, tmelt=1808.0, density=7.874, - eleconfig='[Ar] 3d6 4s2', - oxistates='6, 3*, 2, 0, -2', - ionenergy=(7.9024, 16.18, 30.651, 54.8, 75.0, - 99.0, 125.0, 151.06, 235.04, 262.1, - 290.4, 330.8, 361.0, 392.2, 457.0, - 485.5, 1266.1, ), - isotopes={54: Isotope(53.9396148, 0.05845, 54), - 56: Isotope(55.9349421, 0.91754, 56), - 57: Isotope(56.9353987, 0.02119, 57), - 58: Isotope(57.9332805, 0.00282, 58)}), - Element( - 27, 'Co', 'Cobalt', - group=9, period=4, block='d', series=8, - mass=58.9332, eleneg=1.88, eleaffin=0.6633, - covrad=1.16, atmrad=1.67, vdwrad=0.0, - tboil=3143.0, tmelt=1768.0, density=8.89, - eleconfig='[Ar] 3d7 4s2', - oxistates='3, 2*, 0, -1', - ionenergy=(7.881, 17.06, 33.5, 51.3, 79.5, - 102.0, 129.0, 157.0, 186.13, 276.0, - 305.0, 336.0, 376.0, 411.0, 444.0, - 512.0, 546.8, 1403.0, ), - isotopes={59: Isotope(58.9332002, 1.0, 59)}), - Element( - 28, 'Ni', 'Nickel', - group=10, period=4, block='d', series=8, - mass=58.6934, eleneg=1.91, eleaffin=1.15716, - covrad=1.15, atmrad=1.62, vdwrad=1.63, - tboil=3005.0, tmelt=1726.0, density=8.91, - eleconfig='[Ar] 3d8 4s2', - oxistates='3, 2*, 0', - ionenergy=(7.6398, 18.168, 35.17, 54.9, 75.5, - 108.0, 133.0, 162.0, 193.0, 224.5, - 321.2, 352.0, 384.0, 430.0, 464.0, - 499.0, 571.0, 607.2, 1547.0, ), - isotopes={58: Isotope(57.9353479, 0.680769, 58), - 60: Isotope(59.9307906, 0.262231, 60), - 61: Isotope(60.9310604, 0.011399, 61), - 62: Isotope(61.9283488, 0.036345, 62), - 64: Isotope(63.9279696, 0.009256, 64)}), - Element( - 29, 'Cu', 'Copper', - group=11, period=4, block='d', series=8, - mass=63.546, eleneg=1.9, eleaffin=1.23578, - covrad=1.17, atmrad=1.57, vdwrad=1.4, - tboil=2840.0, tmelt=1356.6, density=8.92, - eleconfig='[Ar] 3d10 4s', - oxistates='2*, 1', - ionenergy=(7.7264, 20.292, 26.83, 55.2, 79.9, - 103.0, 139.0, 166.0, 199.0, 232.0, - 266.0, 368.8, 401.0, 435.0, 484.0, - 520.0, 557.0, 633.0, 671.0, 1698.0, ), - isotopes={63: Isotope(62.9296011, 0.6917, 63), - 65: Isotope(64.9277937, 0.3083, 65)}), - Element( - 30, 'Zn', 'Zinc', - group=12, period=4, block='d', series=8, - mass=65.409, eleneg=1.65, eleaffin=0.0, - covrad=1.25, atmrad=1.53, vdwrad=1.39, - tboil=1180.0, tmelt=692.73, density=7.14, - eleconfig='[Ar] 3d10 4s2', - oxistates='2*', - ionenergy=(9.3942, 17.964, 39.722, 59.4, 82.6, - 108.0, 134.0, 174.0, 203.0, 238.0, - 274.0, 310.8, 419.7, 454.0, 490.0, - 542.0, 579.0, 619.0, 698.8, 738.0, - 1856.0, ), - isotopes={64: Isotope(63.9291466, 0.4863, 64), - 66: Isotope(65.9260368, 0.279, 66), - 67: Isotope(66.9271309, 0.041, 67), - 68: Isotope(67.9248476, 0.1875, 68), - 70: Isotope(69.925325, 0.0062, 70)}), - Element( - 31, 'Ga', 'Gallium', - group=13, period=4, block='p', series=7, - mass=69.723, eleneg=1.81, eleaffin=0.41, - covrad=1.26, atmrad=1.81, vdwrad=1.87, - tboil=2478.0, tmelt=302.92, density=5.91, - eleconfig='[Ar] 3d10 4s2 4p', - oxistates='3*', - ionenergy=(5.9993, 20.51, 30.71, 64.0, ), - isotopes={69: Isotope(68.925581, 0.60108, 69), - 71: Isotope(70.924705, 0.39892, 71)}), - Element( - 32, 'Ge', 'Germanium', - group=14, period=4, block='p', series=5, - mass=72.64, eleneg=2.01, eleaffin=1.232712, - covrad=1.22, atmrad=1.52, vdwrad=0.0, - tboil=3107.0, tmelt=1211.5, density=5.32, - eleconfig='[Ar] 3d10 4s2 4p2', - oxistates='4*', - ionenergy=(7.8994, 15.934, 34.22, 45.71, 93.5, ), - isotopes={70: Isotope(69.9242504, 0.2084, 70), - 72: Isotope(71.9220762, 0.2754, 72), - 73: Isotope(72.9234594, 0.0773, 73), - 74: Isotope(73.9211782, 0.3628, 74), - 76: Isotope(75.9214027, 0.0761, 76)}), - Element( - 33, 'As', 'Arsenic', - group=15, period=4, block='p', series=5, - mass=74.9216, eleneg=2.18, eleaffin=0.814, - covrad=1.2, atmrad=1.33, vdwrad=1.85, - tboil=876.0, tmelt=1090.0, density=5.72, - eleconfig='[Ar] 3d10 4s2 4p3', - oxistates='5, 3*, -3', - ionenergy=(9.7886, 18.633, 28.351, 50.13, 62.63, - 127.6, ), - isotopes={75: Isotope(74.9215964, 1.0, 75)}), - Element( - 34, 'Se', 'Selenium', - group=16, period=4, block='p', series=1, - mass=78.96, eleneg=2.55, eleaffin=2.02067, - covrad=1.16, atmrad=1.22, vdwrad=1.9, - tboil=958.0, tmelt=494.0, density=4.82, - eleconfig='[Ar] 3d10 4s2 4p4', - oxistates='6, 4*, -2', - ionenergy=(9.7524, 21.9, 30.82, 42.944, 68.3, - 81.7, 155.4, ), - isotopes={74: Isotope(73.9224766, 0.0089, 74), - 76: Isotope(75.9192141, 0.0937, 76), - 77: Isotope(76.9199146, 0.0763, 77), - 78: Isotope(77.9173095, 0.2377, 78), - 80: Isotope(79.9165218, 0.4961, 80), - 82: Isotope(81.9167, 0.0873, 82)}), - Element( - 35, 'Br', 'Bromine', - group=17, period=4, block='p', series=6, - mass=79.904, eleneg=2.96, eleaffin=3.363588, - covrad=1.14, atmrad=1.12, vdwrad=1.85, - tboil=331.85, tmelt=265.95, density=3.14, - eleconfig='[Ar] 3d10 4s2 4p5', - oxistates='7, 5, 3, 1, -1*', - ionenergy=(11.8138, 21.8, 36.0, 47.3, 59.7, - 88.6, 103.0, 192.8, ), - isotopes={79: Isotope(78.9183376, 0.5069, 79), - 81: Isotope(80.916291, 0.4931, 81)}), - Element( - 36, 'Kr', 'Krypton', - group=18, period=4, block='p', series=2, - mass=83.798, eleneg=0.0, eleaffin=0.0, - covrad=1.12, atmrad=1.03, vdwrad=2.02, - tboil=120.85, tmelt=116.0, density=4.48, - eleconfig='[Ar] 3d10 4s2 4p6', - oxistates='2*', - ionenergy=(13.9996, 24.359, 36.95, 52.5, 64.7, - 78.5, 110.0, 126.0, 230.39, ), - isotopes={78: Isotope(77.920386, 0.0035, 78), - 80: Isotope(79.916378, 0.0228, 80), - 82: Isotope(81.9134846, 0.1158, 82), - 83: Isotope(82.914136, 0.1149, 83), - 84: Isotope(83.911507, 0.57, 84), - 86: Isotope(85.9106103, 0.173, 86)}), - Element( - 37, 'Rb', 'Rubidium', - group=1, period=5, block='s', series=3, - mass=85.4678, eleneg=0.82, eleaffin=0.485916, - covrad=2.16, atmrad=2.98, vdwrad=0.0, - tboil=961.0, tmelt=312.63, density=1.53, - eleconfig='[Kr] 5s', - oxistates='1*', - ionenergy=(4.1771, 27.28, 40.0, 52.6, 71.0, - 84.4, 99.2, 136.0, 150.0, 277.1, ), - isotopes={85: Isotope(84.9117893, 0.7217, 85), - 87: Isotope(86.9091835, 0.2783, 87)}), - Element( - 38, 'Sr', 'Strontium', - group=2, period=5, block='s', series=4, - mass=87.62, eleneg=0.95, eleaffin=0.05206, - covrad=1.91, atmrad=2.45, vdwrad=0.0, - tboil=1655.0, tmelt=1042.0, density=2.63, - eleconfig='[Kr] 5s2', - oxistates='2*', - ionenergy=(5.6949, 11.03, 43.6, 57.0, 71.6, - 90.8, 106.0, 122.3, 162.0, 177.0, - 324.1, ), - isotopes={84: Isotope(83.913425, 0.0056, 84), - 86: Isotope(85.9092624, 0.0986, 86), - 87: Isotope(86.9088793, 0.07, 87), - 88: Isotope(87.9056143, 0.8258, 88)}), - Element( - 39, 'Y', 'Yttrium', - group=3, period=5, block='d', series=8, - mass=88.90585, eleneg=1.22, eleaffin=0.307, - covrad=1.62, atmrad=2.27, vdwrad=0.0, - tboil=3611.0, tmelt=1795.0, density=4.47, - eleconfig='[Kr] 4d 5s2', - oxistates='3*', - ionenergy=(6.2173, 12.24, 20.52, 61.8, 77.0, - 93.0, 116.0, 129.0, 146.52, 191.0, - 206.0, 374.0, ), - isotopes={89: Isotope(88.9058479, 1.0, 89)}), - Element( - 40, 'Zr', 'Zirconium', - group=4, period=5, block='d', series=8, - mass=91.224, eleneg=1.33, eleaffin=0.426, - covrad=1.45, atmrad=2.16, vdwrad=0.0, - tboil=4682.0, tmelt=2128.0, density=6.51, - eleconfig='[Kr] 4d2 5s2', - oxistates='4*', - ionenergy=(6.6339, 13.13, 22.99, 34.34, 81.5, ), - isotopes={90: Isotope(89.9047037, 0.5145, 90), - 91: Isotope(90.905645, 0.1122, 91), - 92: Isotope(91.9050401, 0.1715, 92), - 94: Isotope(93.9063158, 0.1738, 94), - 96: Isotope(95.908276, 0.028, 96)}), - Element( - 41, 'Nb', 'Niobium', - group=5, period=5, block='d', series=8, - mass=92.90638, eleneg=1.6, eleaffin=0.893, - covrad=1.34, atmrad=2.08, vdwrad=0.0, - tboil=5015.0, tmelt=2742.0, density=8.58, - eleconfig='[Kr] 4d4 5s', - oxistates='5*, 3', - ionenergy=(6.7589, 14.32, 25.04, 38.3, 50.55, - 102.6, 125.0, ), - isotopes={93: Isotope(92.9063775, 1.0, 93)}), - Element( - 42, 'Mo', 'Molybdenum', - group=6, period=5, block='d', series=8, - mass=95.94, eleneg=2.16, eleaffin=0.7472, - covrad=1.3, atmrad=2.01, vdwrad=0.0, - tboil=4912.0, tmelt=2896.0, density=10.28, - eleconfig='[Kr] 4d5 5s', - oxistates='6*, 5, 4, 3, 2, 0', - ionenergy=(7.0924, 16.15, 27.16, 46.4, 61.2, - 68.0, 126.8, 153.0, ), - isotopes={92: Isotope(91.90681, 0.1484, 92), - 94: Isotope(93.9050876, 0.0925, 94), - 95: Isotope(94.9058415, 0.1592, 95), - 96: Isotope(95.9046789, 0.1668, 96), - 97: Isotope(96.906021, 0.0955, 97), - 98: Isotope(97.9054078, 0.2413, 98), - 100: Isotope(99.907477, 0.0963, 100)}), - Element( - 43, 'Tc', 'Technetium', - group=7, period=5, block='d', series=8, - mass=97.907216, eleneg=1.9, eleaffin=0.55, - covrad=1.27, atmrad=1.95, vdwrad=0.0, - tboil=4538.0, tmelt=2477.0, density=11.49, - eleconfig='[Kr] 4d5 5s2', - oxistates='7*', - ionenergy=(7.28, 15.26, 29.54, ), - isotopes={98: Isotope(97.907216, 1.0, 98)}), - Element( - 44, 'Ru', 'Ruthenium', - group=8, period=5, block='d', series=8, - mass=101.07, eleneg=2.2, eleaffin=1.04638, - covrad=1.25, atmrad=1.89, vdwrad=0.0, - tboil=4425.0, tmelt=2610.0, density=12.45, - eleconfig='[Kr] 4d7 5s', - oxistates='8, 6, 4*, 3*, 2, 0, -2', - ionenergy=(7.3605, 16.76, 28.47, ), - isotopes={96: Isotope(95.907598, 0.0554, 96), - 98: Isotope(97.905287, 0.0187, 98), - 99: Isotope(98.9059393, 0.1276, 99), - 100: Isotope(99.9042197, 0.126, 100), - 101: Isotope(100.9055822, 0.1706, 101), - 102: Isotope(101.9043495, 0.3155, 102), - 104: Isotope(103.90543, 0.1862, 104)}), - Element( - 45, 'Rh', 'Rhodium', - group=9, period=5, block='d', series=8, - mass=102.9055, eleneg=2.28, eleaffin=1.14289, - covrad=1.25, atmrad=1.83, vdwrad=0.0, - tboil=3970.0, tmelt=2236.0, density=12.41, - eleconfig='[Kr] 4d8 5s', - oxistates='5, 4, 3*, 1*, 2, 0', - ionenergy=(7.4589, 18.08, 31.06, ), - isotopes={103: Isotope(102.905504, 1.0, 103)}), - Element( - 46, 'Pd', 'Palladium', - group=10, period=5, block='d', series=8, - mass=106.42, eleneg=2.2, eleaffin=0.56214, - covrad=1.28, atmrad=1.79, vdwrad=1.63, - tboil=3240.0, tmelt=1825.0, density=12.02, - eleconfig='[Kr] 4d10', - oxistates='4, 2*, 0', - ionenergy=(8.3369, 19.43, 32.93, ), - isotopes={102: Isotope(101.905608, 0.0102, 102), - 104: Isotope(103.904035, 0.1114, 104), - 105: Isotope(104.905084, 0.2233, 105), - 106: Isotope(105.903483, 0.2733, 106), - 108: Isotope(107.903894, 0.2646, 108), - 110: Isotope(109.905152, 0.1172, 110)}), - Element( - 47, 'Ag', 'Silver', - group=11, period=5, block='d', series=8, - mass=107.8682, eleneg=1.93, eleaffin=1.30447, - covrad=1.34, atmrad=1.75, vdwrad=1.72, - tboil=2436.0, tmelt=1235.1, density=10.49, - eleconfig='[Kr] 4d10 5s', - oxistates='2, 1*', - ionenergy=(7.5762, 21.49, 34.83, ), - isotopes={107: Isotope(106.905093, 0.51839, 107), - 109: Isotope(108.904756, 0.48161, 109)}), - Element( - 48, 'Cd', 'Cadmium', - group=12, period=5, block='d', series=8, - mass=112.411, eleneg=1.69, eleaffin=0.0, - covrad=1.48, atmrad=1.71, vdwrad=1.58, - tboil=1040.0, tmelt=594.26, density=8.64, - eleconfig='[Kr] 4d10 5s2', - oxistates='2*', - ionenergy=(8.9938, 16.908, 37.48, ), - isotopes={106: Isotope(105.906458, 0.0125, 106), - 108: Isotope(107.904183, 0.0089, 108), - 110: Isotope(109.903006, 0.1249, 110), - 111: Isotope(110.904182, 0.128, 111), - 112: Isotope(111.9027572, 0.2413, 112), - 113: Isotope(112.9044009, 0.1222, 113), - 114: Isotope(113.9033581, 0.2873, 114), - 116: Isotope(115.904755, 0.0749, 116)}), - Element( - 49, 'In', 'Indium', - group=13, period=5, block='p', series=7, - mass=114.818, eleneg=1.78, eleaffin=0.404, - covrad=1.44, atmrad=2.0, vdwrad=1.93, - tboil=2350.0, tmelt=429.78, density=7.31, - eleconfig='[Kr] 4d10 5s2 5p', - oxistates='3*', - ionenergy=(5.7864, 18.869, 28.03, 28.03, ), - isotopes={113: Isotope(112.904061, 0.0429, 113), - 115: Isotope(114.903878, 0.9571, 115)}), - Element( - 50, 'Sn', 'Tin', - group=14, period=5, block='p', series=7, - mass=118.71, eleneg=1.96, eleaffin=1.112066, - covrad=1.41, atmrad=1.72, vdwrad=2.17, - tboil=2876.0, tmelt=505.12, density=7.29, - eleconfig='[Kr] 4d10 5s2 5p2', - oxistates='4*, 2*', - ionenergy=(7.3439, 14.632, 30.502, 40.734, 72.28, ), - isotopes={112: Isotope(111.904821, 0.0097, 112), - 114: Isotope(113.902782, 0.0066, 114), - 115: Isotope(114.903346, 0.0034, 115), - 116: Isotope(115.901744, 0.1454, 116), - 117: Isotope(116.902954, 0.0768, 117), - 118: Isotope(117.901606, 0.2422, 118), - 119: Isotope(118.903309, 0.0859, 119), - 120: Isotope(119.9021966, 0.3258, 120), - 122: Isotope(121.9034401, 0.0463, 122), - 124: Isotope(123.9052746, 0.0579, 124)}), - Element( - 51, 'Sb', 'Antimony', - group=15, period=5, block='p', series=5, - mass=121.76, eleneg=2.05, eleaffin=1.047401, - covrad=1.4, atmrad=1.53, vdwrad=0.0, - tboil=1860.0, tmelt=903.91, density=6.69, - eleconfig='[Kr] 4d10 5s2 5p3', - oxistates='5, 3*, -3', - ionenergy=(8.6084, 16.53, 25.3, 44.2, 56.0, - 108.0, ), - isotopes={121: Isotope(120.903818, 0.5721, 121), - 123: Isotope(122.9042157, 0.4279, 123)}), - Element( - 52, 'Te', 'Tellurium', - group=16, period=5, block='p', series=5, - mass=127.6, eleneg=2.1, eleaffin=1.970875, - covrad=1.36, atmrad=1.42, vdwrad=2.06, - tboil=1261.0, tmelt=722.72, density=6.25, - eleconfig='[Kr] 4d10 5s2 5p4', - oxistates='6, 4*, -2', - ionenergy=(9.0096, 18.6, 27.96, 37.41, 58.75, - 70.7, 137.0, ), - isotopes={120: Isotope(119.90402, 0.0009, 120), - 122: Isotope(121.9030471, 0.0255, 122), - 123: Isotope(122.904273, 0.0089, 123), - 124: Isotope(123.9028195, 0.0474, 124), - 125: Isotope(124.9044247, 0.0707, 125), - 126: Isotope(125.9033055, 0.1884, 126), - 128: Isotope(127.9044614, 0.3174, 128), - 130: Isotope(129.9062228, 0.3408, 130)}), - Element( - 53, 'I', 'Iodine', - group=17, period=5, block='p', series=6, - mass=126.90447, eleneg=2.66, eleaffin=3.059038, - covrad=1.33, atmrad=1.32, vdwrad=1.98, - tboil=457.5, tmelt=386.7, density=4.94, - eleconfig='[Kr] 4d10 5s2 5p5', - oxistates='7, 5, 1, -1*', - ionenergy=(10.4513, 19.131, 33.0, ), - isotopes={127: Isotope(126.904468, 1.0, 127)}), - Element( - 54, 'Xe', 'Xenon', - group=18, period=5, block='p', series=2, - mass=131.293, eleneg=0.0, eleaffin=0.0, - covrad=1.31, atmrad=1.24, vdwrad=2.16, - tboil=165.1, tmelt=161.39, density=4.49, - eleconfig='[Kr] 4d10 5s2 5p6', - oxistates='2, 4, 6', - ionenergy=(12.1298, 21.21, 32.1, ), - isotopes={124: Isotope(123.9058958, 0.0009, 124), - 126: Isotope(125.904269, 0.0009, 126), - 128: Isotope(127.9035304, 0.0192, 128), - 129: Isotope(128.9047795, 0.2644, 129), - 130: Isotope(129.9035079, 0.0408, 130), - 131: Isotope(130.9050819, 0.2118, 131), - 132: Isotope(131.9041545, 0.2689, 132), - 134: Isotope(133.9053945, 0.1044, 134), - 136: Isotope(135.90722, 0.0887, 136)}), - Element( - 55, 'Cs', 'Caesium', - group=1, period=6, block='s', series=3, - mass=132.90545, eleneg=0.79, eleaffin=0.471626, - covrad=2.35, atmrad=3.34, vdwrad=0.0, - tboil=944.0, tmelt=301.54, density=1.9, - eleconfig='[Xe] 6s', - oxistates='1*', - ionenergy=(3.8939, 25.1, ), - isotopes={133: Isotope(132.905447, 1.0, 133)}), - Element( - 56, 'Ba', 'Barium', - group=2, period=6, block='s', series=4, - mass=137.327, eleneg=0.89, eleaffin=0.14462, - covrad=1.98, atmrad=2.78, vdwrad=0.0, - tboil=2078.0, tmelt=1002.0, density=3.65, - eleconfig='[Xe] 6s2', - oxistates='2*', - ionenergy=(5.2117, 100.004, ), - isotopes={130: Isotope(129.90631, 0.00106, 130), - 132: Isotope(131.905056, 0.00101, 132), - 134: Isotope(133.904503, 0.02417, 134), - 135: Isotope(134.905683, 0.06592, 135), - 136: Isotope(135.90457, 0.07854, 136), - 137: Isotope(136.905821, 0.11232, 137), - 138: Isotope(137.905241, 0.71698, 138)}), - Element( - 57, 'La', 'Lanthanum', - group=3, period=6, block='f', series=9, - mass=138.9055, eleneg=1.1, eleaffin=0.47, - covrad=1.69, atmrad=2.74, vdwrad=0.0, - tboil=3737.0, tmelt=1191.0, density=6.16, - eleconfig='[Xe] 5d 6s2', - oxistates='3*', - ionenergy=(5.5769, 11.06, 19.175, ), - isotopes={138: Isotope(137.907107, 0.0009, 138), - 139: Isotope(138.906348, 0.9991, 139)}), - Element( - 58, 'Ce', 'Cerium', - group=3, period=6, block='f', series=9, - mass=140.116, eleneg=1.12, eleaffin=0.5, - covrad=1.65, atmrad=2.7, vdwrad=0.0, - tboil=3715.0, tmelt=1071.0, density=6.77, - eleconfig='[Xe] 4f 5d 6s2', - oxistates='4, 3*', - ionenergy=(5.5387, 10.85, 20.2, 36.72, ), - isotopes={136: Isotope(135.90714, 0.00185, 136), - 138: Isotope(137.905986, 0.00251, 138), - 140: Isotope(139.905434, 0.8845, 140), - 142: Isotope(141.90924, 0.11114, 142)}), - Element( - 59, 'Pr', 'Praseodymium', - group=3, period=6, block='f', series=9, - mass=140.90765, eleneg=1.13, eleaffin=0.5, - covrad=1.65, atmrad=2.67, vdwrad=0.0, - tboil=3785.0, tmelt=1204.0, density=6.48, - eleconfig='[Xe] 4f3 6s2', - oxistates='4, 3*', - ionenergy=(5.473, 10.55, 21.62, 38.95, 57.45, ), - isotopes={141: Isotope(140.907648, 1.0, 141)}), - Element( - 60, 'Nd', 'Neodymium', - group=3, period=6, block='f', series=9, - mass=144.24, eleneg=1.14, eleaffin=0.5, - covrad=1.64, atmrad=2.64, vdwrad=0.0, - tboil=3347.0, tmelt=1294.0, density=7.0, - eleconfig='[Xe] 4f4 6s2', - oxistates='3*', - ionenergy=(5.525, 10.72, ), - isotopes={142: Isotope(141.907719, 0.272, 142), - 143: Isotope(142.90981, 0.122, 143), - 144: Isotope(143.910083, 0.238, 144), - 145: Isotope(144.912569, 0.083, 145), - 146: Isotope(145.913112, 0.172, 146), - 148: Isotope(147.916889, 0.057, 148), - 150: Isotope(149.920887, 0.056, 150)}), - Element( - 61, 'Pm', 'Promethium', - group=3, period=6, block='f', series=9, - mass=144.912744, eleneg=1.13, eleaffin=0.5, - covrad=1.63, atmrad=2.62, vdwrad=0.0, - tboil=3273.0, tmelt=1315.0, density=7.22, - eleconfig='[Xe] 4f5 6s2', - oxistates='3*', - ionenergy=(5.582, 10.9, ), - isotopes={145: Isotope(144.912744, 1.0, 145)}), - Element( - 62, 'Sm', 'Samarium', - group=3, period=6, block='f', series=9, - mass=150.36, eleneg=1.17, eleaffin=0.5, - covrad=1.62, atmrad=2.59, vdwrad=0.0, - tboil=2067.0, tmelt=1347.0, density=7.54, - eleconfig='[Xe] 4f6 6s2', - oxistates='3*, 2', - ionenergy=(5.6437, 11.07, ), - isotopes={144: Isotope(143.911995, 0.0307, 144), - 147: Isotope(146.914893, 0.1499, 147), - 148: Isotope(147.914818, 0.1124, 148), - 149: Isotope(148.91718, 0.1382, 149), - 150: Isotope(149.917271, 0.0738, 150), - 152: Isotope(151.919728, 0.2675, 152), - 154: Isotope(153.922205, 0.2275, 154)}), - Element( - 63, 'Eu', 'Europium', - group=3, period=6, block='f', series=9, - mass=151.964, eleneg=1.2, eleaffin=0.5, - covrad=1.85, atmrad=2.56, vdwrad=0.0, - tboil=1800.0, tmelt=1095.0, density=5.25, - eleconfig='[Xe] 4f7 6s2', - oxistates='3*, 2', - ionenergy=(5.6704, 11.25, ), - isotopes={151: Isotope(150.919846, 0.4781, 151), - 153: Isotope(152.921226, 0.5219, 153)}), - Element( - 64, 'Gd', 'Gadolinium', - group=3, period=6, block='f', series=9, - mass=157.25, eleneg=1.2, eleaffin=0.5, - covrad=1.61, atmrad=2.54, vdwrad=0.0, - tboil=3545.0, tmelt=1585.0, density=7.89, - eleconfig='[Xe] 4f7 5d 6s2', - oxistates='3*', - ionenergy=(6.1498, 12.1, ), - isotopes={152: Isotope(151.919788, 0.002, 152), - 154: Isotope(153.920862, 0.0218, 154), - 155: Isotope(154.922619, 0.148, 155), - 156: Isotope(155.92212, 0.2047, 156), - 157: Isotope(156.923957, 0.1565, 157), - 158: Isotope(157.924101, 0.2484, 158), - 160: Isotope(159.927051, 0.2186, 160)}), - Element( - 65, 'Tb', 'Terbium', - group=3, period=6, block='f', series=9, - mass=158.92534, eleneg=1.2, eleaffin=0.5, - covrad=1.59, atmrad=2.51, vdwrad=0.0, - tboil=3500.0, tmelt=1629.0, density=8.25, - eleconfig='[Xe] 4f9 6s2', - oxistates='4, 3*', - ionenergy=(5.8638, 11.52, ), - isotopes={159: Isotope(158.925343, 1.0, 159)}), - Element( - 66, 'Dy', 'Dysprosium', - group=3, period=6, block='f', series=9, - mass=162.5, eleneg=1.22, eleaffin=0.5, - covrad=1.59, atmrad=2.49, vdwrad=0.0, - tboil=2840.0, tmelt=1685.0, density=8.56, - eleconfig='[Xe] 4f10 6s2', - oxistates='3*', - ionenergy=(5.9389, 11.67, ), - isotopes={156: Isotope(155.924278, 0.0006, 156), - 158: Isotope(157.924405, 0.001, 158), - 160: Isotope(159.925194, 0.0234, 160), - 161: Isotope(160.92693, 0.1891, 161), - 162: Isotope(161.926795, 0.2551, 162), - 163: Isotope(162.928728, 0.249, 163), - 164: Isotope(163.929171, 0.2818, 164)}), - Element( - 67, 'Ho', 'Holmium', - group=3, period=6, block='f', series=9, - mass=164.93032, eleneg=1.23, eleaffin=0.5, - covrad=1.58, atmrad=2.47, vdwrad=0.0, - tboil=2968.0, tmelt=1747.0, density=8.78, - eleconfig='[Xe] 4f11 6s2', - oxistates='3*', - ionenergy=(6.0215, 11.8, ), - isotopes={165: Isotope(164.930319, 1.0, 165)}), - Element( - 68, 'Er', 'Erbium', - group=3, period=6, block='f', series=9, - mass=167.259, eleneg=1.24, eleaffin=0.5, - covrad=1.57, atmrad=2.45, vdwrad=0.0, - tboil=3140.0, tmelt=1802.0, density=9.05, - eleconfig='[Xe] 4f12 6s2', - oxistates='3*', - ionenergy=(6.1077, 11.93, ), - isotopes={162: Isotope(161.928775, 0.0014, 162), - 164: Isotope(163.929197, 0.0161, 164), - 166: Isotope(165.93029, 0.3361, 166), - 167: Isotope(166.932045, 0.2293, 167), - 168: Isotope(167.932368, 0.2678, 168), - 170: Isotope(169.93546, 0.1493, 170)}), - Element( - 69, 'Tm', 'Thulium', - group=3, period=6, block='f', series=9, - mass=168.93421, eleneg=1.25, eleaffin=0.5, - covrad=1.56, atmrad=2.42, vdwrad=0.0, - tboil=2223.0, tmelt=1818.0, density=9.32, - eleconfig='[Xe] 4f13 6s2', - oxistates='3*, 2', - ionenergy=(6.1843, 12.05, 23.71, ), - isotopes={169: Isotope(168.934211, 1.0, 169)}), - Element( - 70, 'Yb', 'Ytterbium', - group=3, period=6, block='f', series=9, - mass=173.04, eleneg=1.1, eleaffin=0.5, - covrad=1.74, atmrad=2.4, vdwrad=0.0, - tboil=1469.0, tmelt=1092.0, density=9.32, - eleconfig='[Xe] 4f14 6s2', - oxistates='3*, 2', - ionenergy=(6.2542, 12.17, 25.2, ), - isotopes={168: Isotope(167.933894, 0.0013, 168), - 170: Isotope(169.934759, 0.0304, 170), - 171: Isotope(170.936322, 0.1428, 171), - 172: Isotope(171.9363777, 0.2183, 172), - 173: Isotope(172.9382068, 0.1613, 173), - 174: Isotope(173.9388581, 0.3183, 174), - 176: Isotope(175.942568, 0.1276, 176)}), - Element( - 71, 'Lu', 'Lutetium', - group=3, period=6, block='d', series=9, - mass=174.967, eleneg=1.27, eleaffin=0.5, - covrad=1.56, atmrad=2.25, vdwrad=0.0, - tboil=3668.0, tmelt=1936.0, density=9.84, - eleconfig='[Xe] 4f14 5d 6s2', - oxistates='3*', - ionenergy=(5.4259, 13.9, ), - isotopes={175: Isotope(174.9407679, 0.9741, 175), - 176: Isotope(175.9426824, 0.0259, 176)}), - Element( - 72, 'Hf', 'Hafnium', - group=4, period=6, block='d', series=8, - mass=178.49, eleneg=1.3, eleaffin=0.0, - covrad=1.44, atmrad=2.16, vdwrad=0.0, - tboil=4875.0, tmelt=2504.0, density=13.31, - eleconfig='[Xe] 4f14 5d2 6s2', - oxistates='4*', - ionenergy=(6.8251, 14.9, 23.3, 33.3, ), - isotopes={174: Isotope(173.94004, 0.0016, 174), - 176: Isotope(175.9414018, 0.0526, 176), - 177: Isotope(176.94322, 0.186, 177), - 178: Isotope(177.9436977, 0.2728, 178), - 179: Isotope(178.9458151, 0.1362, 179), - 180: Isotope(179.9465488, 0.3508, 180)}), - Element( - 73, 'Ta', 'Tantalum', - group=5, period=6, block='d', series=8, - mass=180.9479, eleneg=1.5, eleaffin=0.322, - covrad=1.34, atmrad=2.09, vdwrad=0.0, - tboil=5730.0, tmelt=3293.0, density=16.68, - eleconfig='[Xe] 4f14 5d3 6s2', - oxistates='5*', - ionenergy=(7.5496, ), - isotopes={180: Isotope(179.947466, 0.00012, 180), - 181: Isotope(180.947996, 0.99988, 181)}), - Element( - 74, 'W', 'Tungsten', - group=6, period=6, block='d', series=8, - mass=183.84, eleneg=2.36, eleaffin=0.815, - covrad=1.3, atmrad=2.02, vdwrad=0.0, - tboil=5825.0, tmelt=3695.0, density=19.26, - eleconfig='[Xe] 4f14 5d4 6s2', - oxistates='6*, 5, 4, 3, 2, 0', - ionenergy=(7.864, ), - isotopes={180: Isotope(179.946706, 0.0012, 180), - 182: Isotope(181.948206, 0.265, 182), - 183: Isotope(182.9502245, 0.1431, 183), - 184: Isotope(183.9509326, 0.3064, 184), - 186: Isotope(185.954362, 0.2843, 186)}), - Element( - 75, 'Re', 'Rhenium', - group=7, period=6, block='d', series=8, - mass=186.207, eleneg=1.9, eleaffin=0.15, - covrad=1.28, atmrad=1.97, vdwrad=0.0, - tboil=5870.0, tmelt=3455.0, density=21.03, - eleconfig='[Xe] 4f14 5d5 6s2', - oxistates='7, 6, 4, 2, -1', - ionenergy=(7.8335, ), - isotopes={185: Isotope(184.9529557, 0.374, 185), - 187: Isotope(186.9557508, 0.626, 187)}), - Element( - 76, 'Os', 'Osmium', - group=8, period=6, block='d', series=8, - mass=190.23, eleneg=2.2, eleaffin=1.0778, - covrad=1.26, atmrad=1.92, vdwrad=0.0, - tboil=5300.0, tmelt=3300.0, density=22.61, - eleconfig='[Xe] 4f14 5d6 6s2', - oxistates='8, 6, 4*, 3, 2, 0, -2', - ionenergy=(8.4382, ), - isotopes={184: Isotope(183.952491, 0.0002, 184), - 186: Isotope(185.953838, 0.0159, 186), - 187: Isotope(186.9557479, 0.0196, 187), - 188: Isotope(187.955836, 0.1324, 188), - 189: Isotope(188.9581449, 0.1615, 189), - 190: Isotope(189.958445, 0.2626, 190), - 192: Isotope(191.961479, 0.4078, 192)}), - Element( - 77, 'Ir', 'Iridium', - group=9, period=6, block='d', series=8, - mass=192.217, eleneg=2.2, eleaffin=1.56436, - covrad=1.27, atmrad=1.87, vdwrad=0.0, - tboil=4700.0, tmelt=2720.0, density=22.65, - eleconfig='[Xe] 4f14 5d7 6s2', - oxistates='6, 4*, 3, 2, 1*, 0, -1', - ionenergy=(8.967, ), - isotopes={191: Isotope(190.960591, 0.373, 191), - 193: Isotope(192.962924, 0.627, 193)}), - Element( - 78, 'Pt', 'Platinum', - group=10, period=6, block='d', series=8, - mass=195.078, eleneg=2.28, eleaffin=2.1251, - covrad=1.3, atmrad=1.83, vdwrad=1.75, - tboil=4100.0, tmelt=2042.1, density=21.45, - eleconfig='[Xe] 4f14 5d9 6s', - oxistates='4*, 2*, 0', - ionenergy=(8.9588, 18.563, ), - isotopes={190: Isotope(189.95993, 0.00014, 190), - 192: Isotope(191.961035, 0.00782, 192), - 194: Isotope(193.962664, 0.32967, 194), - 195: Isotope(194.964774, 0.33832, 195), - 196: Isotope(195.964935, 0.25242, 196), - 198: Isotope(197.967876, 0.07163, 198)}), - Element( - 79, 'Au', 'Gold', - group=11, period=6, block='d', series=8, - mass=196.96655, eleneg=2.54, eleaffin=2.30861, - covrad=1.34, atmrad=1.79, vdwrad=1.66, - tboil=3130.0, tmelt=1337.58, density=19.32, - eleconfig='[Xe] 4f14 5d10 6s', - oxistates='3*, 1', - ionenergy=(9.2255, 20.5, ), - isotopes={197: Isotope(196.966552, 1.0, 197)}), - Element( - 80, 'Hg', 'Mercury', - group=12, period=6, block='d', series=8, - mass=200.59, eleneg=2.0, eleaffin=0.0, - covrad=1.49, atmrad=1.76, vdwrad=0.0, - tboil=629.88, tmelt=234.31, density=13.55, - eleconfig='[Xe] 4f14 5d10 6s2', - oxistates='2*, 1', - ionenergy=(10.4375, 18.756, 34.2, ), - isotopes={196: Isotope(195.965815, 0.0015, 196), - 198: Isotope(197.966752, 0.0997, 198), - 199: Isotope(198.968262, 0.1687, 199), - 200: Isotope(199.968309, 0.231, 200), - 201: Isotope(200.970285, 0.1318, 201), - 202: Isotope(201.970626, 0.2986, 202), - 204: Isotope(203.973476, 0.0687, 204)}), - Element( - 81, 'Tl', 'Thallium', - group=13, period=6, block='p', series=7, - mass=204.3833, eleneg=2.04, eleaffin=0.377, - covrad=1.48, atmrad=2.08, vdwrad=1.96, - tboil=1746.0, tmelt=577.0, density=11.85, - eleconfig='[Xe] 4f14 5d10 6s2 6p', - oxistates='3, 1*', - ionenergy=(6.1082, 20.428, 29.83, ), - isotopes={203: Isotope(202.972329, 0.29524, 203), - 205: Isotope(204.974412, 0.70476, 205)}), - Element( - 82, 'Pb', 'Lead', - group=14, period=6, block='p', series=7, - mass=207.2, eleneg=2.33, eleaffin=0.364, - covrad=1.47, atmrad=1.81, vdwrad=2.02, - tboil=2023.0, tmelt=600.65, density=11.34, - eleconfig='[Xe] 4f14 5d10 6s2 6p2', - oxistates='4, 2*', - ionenergy=(7.4167, 15.032, 31.937, 42.32, 68.8, ), - isotopes={204: Isotope(203.973029, 0.014, 204), - 206: Isotope(205.974449, 0.241, 206), - 207: Isotope(206.975881, 0.221, 207), - 208: Isotope(207.976636, 0.524, 208)}), - Element( - 83, 'Bi', 'Bismuth', - group=15, period=6, block='p', series=7, - mass=208.98038, eleneg=2.02, eleaffin=0.942363, - covrad=1.46, atmrad=1.63, vdwrad=0.0, - tboil=1837.0, tmelt=544.59, density=9.8, - eleconfig='[Xe] 4f14 5d10 6s2 6p3', - oxistates='5, 3*', - ionenergy=(7.2855, 16.69, 25.56, 45.3, 56.0, - 88.3, ), - isotopes={209: Isotope(208.980383, 1.0, 209)}), - Element( - 84, 'Po', 'Polonium', - group=16, period=6, block='p', series=5, - mass=208.982416, eleneg=2.0, eleaffin=1.9, - covrad=1.46, atmrad=1.53, vdwrad=0.0, - tboil=0.0, tmelt=527.0, density=9.2, - eleconfig='[Xe] 4f14 5d10 6s2 6p4', - oxistates='6, 4*, 2', - ionenergy=(8.414, ), - isotopes={209: Isotope(208.982416, 1.0, 209)}), - Element( - 85, 'At', 'Astatine', - group=17, period=6, block='p', series=6, - mass=209.9871, eleneg=2.2, eleaffin=2.8, - covrad=1.45, atmrad=1.43, vdwrad=0.0, - tboil=610.0, tmelt=575.0, density=0.0, - eleconfig='[Xe] 4f14 5d10 6s2 6p5', - oxistates='7, 5, 3, 1, -1*', - ionenergy=(), - isotopes={210: Isotope(209.987131, 1.0, 210)}), - Element( - 86, 'Rn', 'Radon', - group=18, period=6, block='p', series=2, - mass=222.0176, eleneg=0.0, eleaffin=0.0, - covrad=0.0, atmrad=1.34, vdwrad=0.0, - tboil=211.4, tmelt=202.0, density=9.23, - eleconfig='[Xe] 4f14 5d10 6s2 6p6', - oxistates='2*', - ionenergy=(10.7485, ), - isotopes={222: Isotope(222.0175705, 1.0, 222)}), - Element( - 87, 'Fr', 'Francium', - group=1, period=7, block='s', series=3, - mass=223.0197307, eleneg=0.7, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=950.0, tmelt=300.0, density=0.0, - eleconfig='[Rn] 7s', - oxistates='1*', - ionenergy=(4.0727, ), - isotopes={223: Isotope(223.0197307, 1.0, 223)}), - Element( - 88, 'Ra', 'Radium', - group=2, period=7, block='s', series=4, - mass=226.025403, eleneg=0.9, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=1413.0, tmelt=973.0, density=5.5, - eleconfig='[Rn] 7s2', - oxistates='2*', - ionenergy=(5.2784, 10.147, ), - isotopes={226: Isotope(226.0254026, 1.0, 226)}), - Element( - 89, 'Ac', 'Actinium', - group=3, period=7, block='f', series=10, - mass=227.027747, eleneg=1.1, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=3470.0, tmelt=1324.0, density=10.07, - eleconfig='[Rn] 6d 7s2', - oxistates='3*', - ionenergy=(5.17, 12.1, ), - isotopes={227: Isotope(227.027747, 1.0, 227)}), - Element( - 90, 'Th', 'Thorium', - group=3, period=7, block='f', series=10, - mass=232.0381, eleneg=1.3, eleaffin=0.0, - covrad=1.65, atmrad=0.0, vdwrad=0.0, - tboil=5060.0, tmelt=2028.0, density=11.72, - eleconfig='[Rn] 6d2 7s2', - oxistates='4*', - ionenergy=(6.3067, 11.5, 20.0, 28.8, ), - isotopes={232: Isotope(232.0380504, 1.0, 232)}), - Element( - 91, 'Pa', 'Protactinium', - group=3, period=7, block='f', series=10, - mass=231.03588, eleneg=1.5, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=4300.0, tmelt=1845.0, density=15.37, - eleconfig='[Rn] 5f2 6d 7s2', - oxistates='5*, 4', - ionenergy=(5.89, ), - isotopes={231: Isotope(231.0358789, 1.0, 231)}), - Element( - 92, 'U', 'Uranium', - group=3, period=7, block='f', series=10, - mass=238.02891, eleneg=1.38, eleaffin=0.0, - covrad=1.42, atmrad=0.0, vdwrad=1.86, - tboil=4407.0, tmelt=1408.0, density=18.97, - eleconfig='[Rn] 5f3 6d 7s2', - oxistates='6*, 5, 4, 3', - ionenergy=(6.1941, ), - isotopes={234: Isotope(234.0409456, 5.5e-05, 234), - 235: Isotope(235.0439231, 0.0072, 235), - 238: Isotope(238.0507826, 0.992745, 238)}), - Element( - 93, 'Np', 'Neptunium', - group=3, period=7, block='f', series=10, - mass=237.048167, eleneg=1.36, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=4175.0, tmelt=912.0, density=20.48, - eleconfig='[Rn] 5f4 6d 7s2', - oxistates='6, 5*, 4, 3', - ionenergy=(6.2657, ), - isotopes={237: Isotope(237.0481673, 1.0, 237)}), - Element( - 94, 'Pu', 'Plutonium', - group=3, period=7, block='f', series=10, - mass=244.064198, eleneg=1.28, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=3505.0, tmelt=913.0, density=19.74, - eleconfig='[Rn] 5f6 7s2', - oxistates='6, 5, 4*, 3', - ionenergy=(6.026, ), - isotopes={244: Isotope(244.064198, 1.0, 244)}), - Element( - 95, 'Am', 'Americium', - group=3, period=7, block='f', series=10, - mass=243.061373, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=2880.0, tmelt=1449.0, density=13.67, - eleconfig='[Rn] 5f7 7s2', - oxistates='6, 5, 4, 3*', - ionenergy=(5.9738, ), - isotopes={243: Isotope(243.0613727, 1.0, 243)}), - Element( - 96, 'Cm', 'Curium', - group=3, period=7, block='f', series=10, - mass=247.070347, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=1620.0, density=13.51, - eleconfig='[Rn] 5f7 6d 7s2', - oxistates='4, 3*', - ionenergy=(5.9914, ), - isotopes={247: Isotope(247.070347, 1.0, 247)}), - Element( - 97, 'Bk', 'Berkelium', - group=3, period=7, block='f', series=10, - mass=247.070299, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=1258.0, density=13.25, - eleconfig='[Rn] 5f9 7s2', - oxistates='4, 3*', - ionenergy=(6.1979, ), - isotopes={247: Isotope(247.070299, 1.0, 247)}), - Element( - 98, 'Cf', 'Californium', - group=3, period=7, block='f', series=10, - mass=251.07958, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=1172.0, density=15.1, - eleconfig='[Rn] 5f10 7s2', - oxistates='4, 3*', - ionenergy=(6.2817, ), - isotopes={251: Isotope(251.07958, 1.0, 251)}), - Element( - 99, 'Es', 'Einsteinium', - group=3, period=7, block='f', series=10, - mass=252.08297, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=1130.0, density=0.0, - eleconfig='[Rn] 5f11 7s2', - oxistates='3*', - ionenergy=(6.42, ), - isotopes={252: Isotope(252.08297, 1.0, 252)}), - Element( - 100, 'Fm', 'Fermium', - group=3, period=7, block='f', series=10, - mass=257.095099, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=1800.0, density=0.0, - eleconfig='[Rn] 5f12 7s2', - oxistates='3*', - ionenergy=(6.5, ), - isotopes={257: Isotope(257.095099, 1.0, 257)}), - Element( - 101, 'Md', 'Mendelevium', - group=3, period=7, block='f', series=10, - mass=258.098425, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=1100.0, density=0.0, - eleconfig='[Rn] 5f13 7s2', - oxistates='3*', - ionenergy=(6.58, ), - isotopes={258: Isotope(258.098425, 1.0, 258)}), - Element( - 102, 'No', 'Nobelium', - group=3, period=7, block='f', series=10, - mass=259.10102, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=1100.0, density=0.0, - eleconfig='[Rn] 5f14 7s2', - oxistates='3, 2*', - ionenergy=(6.65, ), - isotopes={259: Isotope(259.10102, 1.0, 259)}), - Element( - 103, 'Lr', 'Lawrencium', - group=3, period=7, block='d', series=10, - mass=262.10969, eleneg=1.3, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=1900.0, density=0.0, - eleconfig='[Rn] 5f14 6d 7s2', - oxistates='3*', - ionenergy=(4.9, ), - isotopes={262: Isotope(262.10969, 1.0, 262)}), - Element( - 104, 'Rf', 'Rutherfordium', - group=4, period=7, block='d', series=8, - mass=261.10875, eleneg=0.0, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=0.0, density=0.0, - eleconfig='[Rn] 5f14 6d2 7s2', - oxistates='*', - ionenergy=(6.0, ), - isotopes={261: Isotope(261.10875, 1.0, 261)}), - Element( - 105, 'Db', 'Dubnium', - group=5, period=7, block='d', series=8, - mass=262.11415, eleneg=0.0, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=0.0, density=0.0, - eleconfig='[Rn] 5f14 6d3 7s2', - oxistates='*', - ionenergy=(), - isotopes={262: Isotope(262.11415, 1.0, 262)}), - Element( - 106, 'Sg', 'Seaborgium', - group=6, period=7, block='d', series=8, - mass=266.12193, eleneg=0.0, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=0.0, density=0.0, - eleconfig='[Rn] 5f14 6d4 7s2', - oxistates='*', - ionenergy=(), - isotopes={266: Isotope(266.12193, 1.0, 266)}), - Element( - 107, 'Bh', 'Bohrium', - group=7, period=7, block='d', series=8, - mass=264.12473, eleneg=0.0, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=0.0, density=0.0, - eleconfig='[Rn] 5f14 6d5 7s2', - oxistates='*', - ionenergy=(), - isotopes={264: Isotope(264.12473, 1.0, 264)}), - Element( - 108, 'Hs', 'Hassium', - group=8, period=7, block='d', series=8, - mass=269.13411, eleneg=0.0, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=0.0, density=0.0, - eleconfig='[Rn] 5f14 6d6 7s2', - oxistates='*', - ionenergy=(), - isotopes={269: Isotope(269.13411, 1.0, 269)}), - Element( - 109, 'Mt', 'Meitnerium', - group=9, period=7, block='d', series=8, - mass=268.13882, eleneg=0.0, eleaffin=0.0, - covrad=0.0, atmrad=0.0, vdwrad=0.0, - tboil=0.0, tmelt=0.0, density=0.0, - eleconfig='[Rn] 5f14 6d7 7s2', - oxistates='*', - ionenergy=(), - isotopes={268: Isotope(268.13882, 1.0, 268)})) - - -PERIODS = {1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'P', 7: 'Q'} - -BLOCKS = {'s': '', 'g': '', 'f': '', 'd': '', 'p': ''} - -GROUPS = { - 1: ('IA', 'Alkali metals'), - 2: ('IIA', 'Alkaline earths'), - 3: ('IIIB', ''), - 4: ('IVB', ''), - 5: ('VB', ''), - 6: ('VIB', ''), - 7: ('VIIB', ''), - 8: ('VIIIB', ''), - 9: ('VIIIB', ''), - 10: ('VIIIB', ''), - 11: ('IB', 'Coinage metals'), - 12: ('IIB', ''), - 13: ('IIIA', 'Boron group'), - 14: ('IVA', 'Carbon group'), - 15: ('VA', 'Pnictogens'), - 16: ('VIA', 'Chalcogens'), - 17: ('VIIA', 'Halogens'), - 18: ('VIIIA', 'Noble gases')} - -SERIES = { - 1: 'Nonmetals', - 2: 'Noble gases', - 3: 'Alkali metals', - 4: 'Alkaline earth metals', - 5: 'Metalloids', - 6: 'Halogens', - 7: 'Poor metals', - 8: 'Transition metals', - 9: 'Lanthanides', - 10: 'Actinides'} - - -def _descriptions(symbol): - """Delay load descriptions.""" - e = ELEMENTS - e['H'].description = ( - "Colourless, odourless gaseous chemical element. Lightest and " - "most abundant element in the universe. Present in water and in " - "all organic compounds. Chemically reacts with most elements. " - "Discovered by Henry Cavendish in 1776.") - e['He'].description = ( - "Colourless, odourless gaseous nonmetallic element. Belongs to " - "group 18 of the periodic table. Lowest boiling point of all " - "elements and can only be solidified under pressure. Chemically " - "inert, no known compounds. Discovered in the solar spectrum in " - "1868 by Lockyer.") - e['Li'].description = ( - "Socket silvery metal. First member of group 1 of the periodic " - "table. Lithium salts are used in psychomedicine.") - e['Be'].description = ( - "Grey metallic element of group 2 of the periodic table. Is toxic " - "and can cause severe lung diseases and dermatitis. Shows high " - "covalent character. It was isolated independently by F. Wohler " - "and A.A. Bussy in 1828.") - e['B'].description = ( - "An element of group 13 of the periodic table. There are two " - "allotropes, amorphous boron is a brown power, but metallic boron " - "is black. The metallic form is hard (9.3 on Mohs' scale) and a " - "bad conductor in room temperatures. It is never found free in " - "nature. Boron-10 is used in nuclear reactor control rods and " - "shields. It was discovered in 1808 by Sir Humphry Davy and by " - "J.L. Gay-Lussac and L.J. Thenard.") - e['C'].description = ( - "Carbon is a member of group 14 of the periodic table. It has " - "three allotropic forms of it, diamonds, graphite and fullerite. " - "Carbon-14 is commonly used in radioactive dating. Carbon occurs " - "in all organic life and is the basis of organic chemistry. Carbon " - "has the interesting chemical property of being able to bond with " - "itself, and a wide variety of other elements.") - e['N'].description = ( - "Colourless, gaseous element which belongs to group 15 of the " - "periodic table. Constitutes ~78% of the atmosphere and is an " - "essential part of the ecosystem. Nitrogen for industrial purposes " - "is acquired by the fractional distillation of liquid air. " - "Chemically inactive, reactive generally only at high temperatures " - "or in electrical discharges. It was discovered in 1772 by D. " - "Rutherford.") - e['O'].description = ( - "A colourless, odourless gaseous element belonging to group 16 of " - "the periodic table. It is the most abundant element present in " - "the earth's crust. It also makes up 20.8% of the Earth's " - "atmosphere. For industrial purposes, it is separated from liquid " - "air by fractional distillation. It is used in high temperature " - "welding, and in breathing. It commonly comes in the form of " - "Oxygen, but is found as Ozone in the upper atmosphere. It was " - "discovered by Priestley in 1774.") - e['F'].description = ( - "A poisonous pale yellow gaseous element belonging to group 17 of " - "the periodic table (The halogens). It is the most chemically " - "reactive and electronegative element. It is highly dangerous, " - "causing severe chemical burns on contact with flesh. Fluorine was " - "identified by Scheele in 1771 and first isolated by Moissan in " - "1886.") - e['Ne'].description = ( - "Colourless gaseous element of group 18 on the periodic table " - "(noble gases). Neon occurs in the atmosphere, and comprises " - "0.0018% of the volume of the atmosphere. It has a distinct " - "reddish glow when used in discharge tubes and neon based lamps. " - "It forms almost no chemical compounds. Neon was discovered in " - "1898 by Sir William Ramsey and M.W. Travers.") - e['Na'].description = ( - "Soft silvery reactive element belonging to group 1 of the " - "periodic table (alkali metals). It is highly reactive, oxidizing " - "in air and reacting violently with water, forcing it to be kept " - "under oil. It was first isolated by Humphrey Davy in 1807.") - e['Mg'].description = ( - "Silvery metallic element belonging to group 2 of the periodic " - "table (alkaline-earth metals). It is essential for living " - "organisms, and is used in a number of light alloys. Chemically " - "very reactive, it forms a protective oxide coating when exposed " - "to air and burns with an intense white flame. It also reacts with " - "sulphur, nitrogen and the halogens. First isolated by Bussy in " - "1828.") - e['Al'].description = ( - "Silvery-white lustrous metallic element of group 3 of the " - "periodic table. Highly reactive but protected by a thin " - "transparent layer of the oxide which quickly forms in air. There " - "are many alloys of aluminum, as well as a good number of " - "industrial uses. Makes up 8.1% of the Earth's crust, by weight. " - "Isolated in 1825 by H.C. Oersted.") - e['Si'].description = ( - "Metalloid element belonging to group 14 of the periodic table. " - "It is the second most abundant element in the Earth's crust, " - "making up 25.7% of it by weight. Chemically less reactive than " - "carbon. First identified by Lavoisier in 1787 and first isolated " - "in 1823 by Berzelius.") - e['P'].description = ( - "Non-metallic element belonging to group 15 of the periodic " - "table. Has a multiple allotropic forms. Essential element for " - "living organisms. It was discovered by Brandt in 1669.") - e['S'].description = ( - "Yellow, nonmetallic element belonging to group 16 of the " - "periodic table. It is an essential element in living organisms, " - "needed in the amino acids cysteine and methionine, and hence in " - "many proteins. Absorbed by plants from the soil as sulphate ion.") - e['Cl'].description = ( - "Halogen element. Poisonous greenish-yellow gas. Occurs widely in " - "nature as sodium chloride in seawater. Reacts directly with many " - "elements and compounds, strong oxidizing agent. Discovered by " - "Karl Scheele in 1774. Humphrey David confirmed it as an element " - "in 1810.") - e['Ar'].description = ( - "Monatomic noble gas. Makes up 0.93% of the air. Colourless, " - "odorless. Is inert and has no true compounds. Lord Rayleigh and " - "Sir william Ramsey identified argon in 1894.") - e['K'].description = ( - "Soft silvery metallic element belonging to group 1 of the " - "periodic table (alkali metals). Occurs naturally in seawater and " - "a many minerals. Highly reactive, chemically, it resembles sodium " - "in its behavior and compounds. Discovered by Sir Humphry Davy in " - "1807.") - e['Ca'].description = ( - "Soft grey metallic element belonging to group 2 of the periodic " - "table. Used a reducing agent in the extraction of thorium, " - "zirconium and uranium. Essential element for living organisms.") - e['Sc'].description = ( - "Rare soft silvery metallic element belonging to group 3 of the " - "periodic table. There are ten isotopes, nine of which are " - "radioactive and have short half-lives. Predicted in 1869 by " - "Mendeleev, isolated by Nilson in 1879.") - e['Ti'].description = ( - "White metallic transition element. Occurs in numerous minerals. " - "Used in strong, light corrosion-resistant alloys. Forms a passive " - "oxide coating when exposed to air. First discovered by Gregor in " - "1789.") - e['V'].description = ( - "Soft and ductile, bright white metal. Good resistance to " - "corrosion by alkalis, sulphuric and hydrochloric acid. It " - "oxidizes readily about 933K. There are two naturally occurring " - "isotopes of vanadium, and 5 radioisotopes, V-49 having the " - "longest half-life at 337 days. Vanadium has nuclear applications, " - "the foil is used in cladding titanium to steel, and " - "vanadium-gallium tape is used to produce a superconductive " - "magnet. Originally discovered by Andres Manuel del Rio of Mexico " - "City in 1801. His discovery went unheeded, however, and in 1820, " - "Nils Gabriel Sefstron of Sweden rediscovered it. Metallic " - "vanadium was isolated by Henry Enfield Roscoe in 1867. The name " - "vanadium comes from Vanadis, a goddess of Scandinavian mythology. " - "Silvery-white metallic transition element. Vanadium is essential " - "to Ascidians. Rats and chickens are also known to require it. " - "Metal powder is a fire hazard, and vanadium compounds should be " - "considered highly toxic. May cause lung cancer if inhaled.") - e['Cr'].description = ( - "Hard silvery transition element. Used in decorative " - "electroplating. Discovered in 1797 by Vauquelin.") - e['Mn'].description = ( - "Grey brittle metallic transition element. Rather " - "electropositive, combines with some non-metals when heated. " - "Discovered in 1774 by Scheele.") - e['Fe'].description = ( - "Silvery malleable and ductile metallic transition element. Has " - "nine isotopes and is the fourth most abundant element in the " - "earth's crust. Required by living organisms as a trace element " - "(used in hemoglobin in humans.) Quite reactive, oxidizes in moist " - "air, displaces hydrogen from dilute acids and combines with " - "nonmetallic elements.") - e['Co'].description = ( - "Light grey transition element. Some meteorites contain small " - "amounts of metallic cobalt. Generally alloyed for use. Mammals " - "require small amounts of cobalt salts. Cobalt-60, an artificially " - "produced radioactive isotope of Cobalt is an important " - "radioactive tracer and cancer-treatment agent. Discovered by G. " - "Brandt in 1737.") - e['Ni'].description = ( - "Malleable ductile silvery metallic transition element. " - "Discovered by A.F. Cronstedt in 1751.") - e['Cu'].description = ( - "Red-brown transition element. Known by the Romans as 'cuprum.' " - "Extracted and used for thousands of years. Malleable, ductile and " - "an excellent conductor of heat and electricity. When in moist " - "conditions, a greenish layer forms on the outside.") - e['Zn'].description = ( - "Blue-white metallic element. Occurs in multiple compounds " - "naturally. Five stable isotopes are six radioactive isotopes have " - "been found. Chemically a reactive metal, combines with oxygen and " - "other non-metals, reacts with dilute acids to release hydrogen.") - e['Ga'].description = ( - "Soft silvery metallic element, belongs to group 13 of the " - "periodic table. The two stable isotopes are Ga-69 and Ga-71. " - "Eight radioactive isotopes are known, all having short " - "half-lives. Gallium Arsenide is used as a semiconductor. Corrodes " - "most other metals by diffusing into their lattice. First " - "identified by Francois Lecoq de Boisbaudran in 1875.") - e['Ge'].description = ( - "Lustrous hard metalloid element, belongs to group 14 of the " - "periodic table. Forms a large number of organometallic compounds. " - "Predicted by Mendeleev in 1871, it was actually found in 1886 by " - "Winkler.") - e['As'].description = ( - "Metalloid element of group 15. There are three allotropes, " - "yellow, black, and grey. Reacts with halogens, concentrated " - "oxidizing acids and hot alkalis. Albertus Magnus is believed to " - "have been the first to isolate the element in 1250.") - e['Se'].description = ( - "Metalloid element, belongs to group 16 of the periodic table. " - "Multiple allotropic forms exist. Chemically resembles sulphur. " - "Discovered in 1817 by Jons J. Berzelius.") - e['Br'].description = ( - "Halogen element. Red volatile liquid at room temperature. Its " - "reactivity is somewhere between chlorine and iodine. Harmful to " - "human tissue in a liquid state, the vapour irritates eyes and " - "throat. Discovered in 1826 by Antoine Balard.") - e['Kr'].description = ( - "Colorless gaseous element, belongs to the noble gases. Occurs in " - "the air, 0.0001% by volume. It can be extracted from liquid air " - "by fractional distillation. Generally not isolated, but used with " - "other inert gases in fluorescent lamps. Five natural isotopes, " - "and five radioactive isotopes. Kr-85, the most stable radioactive " - "isotope, has a half-life of 10.76 years and is produced in " - "fission reactors. Practically inert, though known to form " - "compounds with Fluorine.") - e['Rb'].description = ( - "Soft silvery metallic element, belongs to group 1 of the " - "periodic table. Rb-97, the naturally occurring isotope, is " - "radioactive. It is highly reactive, with properties similar to " - "other elements in group 1, like igniting spontaneously in air. " - "Discovered spectroscopically in 1861 by W. Bunsen and G.R. " - "Kirchoff.") - e['Sr'].description = ( - "Soft yellowish metallic element, belongs to group 2 of the " - "periodic table. Highly reactive chemically. Sr-90 is present in " - "radioactive fallout and has a half-life of 28 years. Discovered " - "in 1798 by Klaproth and Hope, isolated in 1808 by Humphry Davy.") - e['Y'].description = ( - "Silvery-grey metallic element of group 3 on the periodic table. " - "Found in uranium ores. The only natural isotope is Y-89, there " - "are 14 other artificial isotopes. Chemically resembles the " - "lanthanoids. Stable in the air below 400 degrees, celsius. " - "Discovered in 1828 by Friedrich Wohler.") - e['Zr'].description = ( - "Grey-white metallic transition element. Five natural isotopes " - "and six radioactive isotopes are known. Used in nuclear reactors " - "for a Neutron absorber. Discovered in 1789 by Martin Klaproth, " - "isolated in 1824 by Berzelius.") - e['Nb'].description = ( - "Soft, ductile grey-blue metallic transition element. Used in " - "special steels and in welded joints to increase strength. " - "Combines with halogens and oxidizes in air at 200 degrees " - "celsius. Discovered by Charles Hatchett in 1801 and isolated by " - "Blomstrand in 1864. Called Columbium originally.") - e['Mo'].description = ( - "Silvery-white, hard metallic transition element. It is " - "chemically unreactive and is not affected by most acids. It " - "oxidizes at high temperatures. There are seven natural isotopes, " - "and four radioisotopes, Mo-93 being the most stable with a " - "half-life of 3500 years. Molybdenum is used in almost all " - "high-strength steels, it has nuclear applications, and is a " - "catalyst in petroleum refining. Discovered in 1778 by Carl " - "Welhelm Scheele of Sweden. Impure metal was prepared in 1782 by " - "Peter Jacob Hjelm. The name comes from the Greek word molybdos " - "which means lead. Trace amounts of molybdenum are required for " - "all known forms of life. All molybdenum compounds should be " - "considered highly toxic, and will also cause severe birth " - "defects.") - e['Tc'].description = ( - "Radioactive metallic transition element. Can be detected in some " - "stars and the fission products of uranium. First made by Perrier " - "and Segre by bombarding molybdenum with deutrons, giving them " - "Tc-97. Tc-99 is the most stable isotope with a half-life of " - "2.6*10^6 years. Sixteen isotopes are known. Organic technetium " - "compounds are used in bone imaging. Chemical properties are " - "intermediate between rhenium and manganese.") - e['Ru'].description = ( - "Hard white metallic transition element. Found with platinum, " - "used as a catalyst in some platinum alloys. Dissolves in fused " - "alkalis, and is not attacked by acids. Reacts with halogens and " - "oxygen at high temperatures. Isolated in 1844 by K.K. Klaus.") - e['Rh'].description = ( - "Silvery white metallic transition element. Found with platinum " - "and used in some platinum alloys. Not attacked by acids, " - "dissolves only in aqua regia. Discovered in 1803 by W.H. " - "Wollaston.") - e['Pd'].description = ( - "Soft white ductile transition element. Found with some copper " - "and nickel ores. Does not react with oxygen at normal " - "temperatures. Dissolves slowly in hydrochloric acid. Discovered " - "in 1803 by W.H. Wollaston.") - e['Ag'].description = ( - "White lustrous soft metallic transition element. Found in both " - "its elemental form and in minerals. Used in jewellery, tableware " - "and so on. Less reactive than silver, chemically.") - e['Cd'].description = ( - "Soft bluish metal belonging to group 12 of the periodic table. " - "Extremely toxic even in low concentrations. Chemically similar to " - "zinc, but lends itself to more complex compounds. Discovered in " - "1817 by F. Stromeyer.") - e['In'].description = ( - "Soft silvery element belonging to group 13 of the periodic " - "table. The most common natural isotope is In-115, which has a " - "half-life of 6*10^4 years. Five other radioisotopes exist. " - "Discovered in 1863 by Reich and Richter.") - e['Sn'].description = ( - "Silvery malleable metallic element belonging to group 14 of the " - "periodic table. Twenty-six isotopes are known, five of which are " - "radioactive. Chemically reactive. Combines directly with chlorine " - "and oxygen and displaces hydrogen from dilute acids.") - e['Sb'].description = ( - "Element of group 15. Multiple allotropic forms. The stable form " - "of antimony is a blue-white metal. Yellow and black antimony are " - "unstable non-metals. Used in flame-proofing, paints, ceramics, " - "enamels, and rubber. Attacked by oxidizing acids and halogens. " - "First reported by Tholden in 1450.") - e['Te'].description = ( - "Silvery metalloid element of group 16. Eight natural isotopes, " - "nine radioactive isotopes. Used in semiconductors and to a degree " - "in some steels. Chemistry is similar to Sulphur. Discovered in " - "1782 by Franz Miller.") - e['I'].description = ( - "Dark violet nonmetallic element, belongs to group 17 of the " - "periodic table. Insoluble in water. Required as a trace element " - "for living organisms. One stable isotope, I-127 exists, in " - "addition to fourteen radioactive isotopes. Chemically the least " - "reactive of the halogens, and the most electropositive metallic " - "halogen. Discovered in 1812 by Courtois.") - e['Xe'].description = ( - "Colourless, odourless gas belonging to group 18 on the periodic " - "table (the noble gases.) Nine natural isotopes and seven " - "radioactive isotopes are known. Xenon was part of the first " - "noble-gas compound synthesized. Several others involving Xenon " - "have been found since then. Xenon was discovered by Ramsey and " - "Travers in 1898.") - e['Cs'].description = ( - "Soft silvery-white metallic element belonging to group 1 of the " - "periodic table. One of the three metals which are liquid at room " - "temperature. Cs-133 is the natural, and only stable, isotope. " - "Fifteen other radioisotopes exist. Caesium reacts explosively " - "with cold water, and ice at temperatures above 157K. Caesium " - "hydroxide is the strongest base known. Caesium is the most " - "electropositive, most alkaline and has the least ionization " - "potential of all the elements. Known uses include the basis of " - "atomic clocks, catalyst for the hydrogenation of some organic " - "compounds, and in photoelectric cells. Caesium was discovered by " - "Gustav Kirchoff and Robert Bunsen in Germany in 1860 " - "spectroscopically. Its identification was based upon the bright " - "blue lines in its spectrum. The name comes from the latin word " - "caesius, which means sky blue. Caesium should be considered " - "highly toxic. Some of the radioisotopes are even more toxic.") - e['Ba'].description = ( - "Silvery-white reactive element, belonging to group 2 of the " - "periodic table. Soluble barium compounds are extremely poisonous. " - "Identified in 1774 by Karl Scheele and extracted in 1808 by " - "Humphry Davy.") - e['La'].description = ( - "(From the Greek word lanthanein, to line hidden) Silvery " - "metallic element belonging to group 3 of the periodic table and " - "oft considered to be one of the lanthanoids. Found in some " - "rare-earth minerals. Twenty-five natural isotopes exist. La-139 " - "which is stable, and La-138 which has a half-life of 10^10 to " - "10^15 years. The other twenty-three isotopes are radioactive. It " - "resembles the lanthanoids chemically. Lanthanum has a low to " - "moderate level of toxicity, and should be handled with care. " - "Discovered in 1839 by C.G. Mosander.") - e['Ce'].description = ( - "Silvery metallic element, belongs to the lanthanoids. Four " - "natural isotopes exist, and fifteen radioactive isotopes have " - "been identified. Used in some rare-earth alloys. The oxidized " - "form is used in the glass industry. Discovered by Martin .H. " - "Klaproth in 1803.") - e['Pr'].description = ( - "Soft silvery metallic element, belongs to the lanthanoids. Only " - "natural isotope is Pr-141 which is not radioactive. Fourteen " - "radioactive isotopes have been artificially produced. Used in " - "rare-earth alloys. Discovered in 1885 by C.A. von Welsbach.") - e['Nd'].description = ( - "Soft bright silvery metallic element, belongs to the " - "lanthanoids. Seven natural isotopes, Nd-144 being the only " - "radioactive one with a half-life of 10^10 to 10^15 years. Six " - "artificial radioisotopes have been produced. The metal is used in " - "glass works to color class a shade of violet-purple and make it " - "dichroic. One of the more reactive rare-earth metals, quickly " - "reacts with air. Used in some rare-earth alloys. Neodymium is " - "used to color the glass used in welder's glasses. Neodymium is " - "also used in very powerful, permanent magnets (Nd2Fe14B). " - "Discovered by Carl F. Auer von Welsbach in Austria in 1885 by " - "separating didymium into its elemental components Praseodymium " - "and neodymium. The name comes from the Greek words 'neos didymos' " - "which means 'new twin'. Neodymium should be considered highly " - "toxic, however evidence would seem to show that it acts as little " - "more than a skin and eye irritant. The dust however, presents a " - "fire and explosion hazard.") - e['Pm'].description = ( - "Soft silvery metallic element, belongs to the lanthanoids. " - "Pm-147, the only natural isotope, is radioactive and has a " - "half-life of 252 years. Eighteen radioisotopes have been " - "produced, but all have very short half-lives. Found only in " - "nuclear decay waste. Pm-147 is of interest as a beta-decay " - "source, however Pm-146 and Pm-148 have to be removed from it " - "first, as they generate gamma radiation. Discovered by J.A. " - "Marinsky, L.E. Glendenin and C.D. Coryell in 1947.") - e['Sm'].description = ( - "Soft silvery metallic element, belongs to the lanthanoids. Seven " - "natural isotopes, Sm-147 is the only radioisotope, and has a " - "half-life of 2.5*10^11 years. Used for making special alloys " - "needed in the production of nuclear reactors. Also used as a " - "neutron absorber. Small quantities of samarium oxide is used in " - "special optical glasses. The largest use of the element is its " - "ferromagnetic alloy which produces permanent magnets that are " - "five times stronger than magnets produced by any other material. " - "Discovered by Francois Lecoq de Boisbaudran in 1879.") - e['Eu'].description = ( - "Soft silvery metallic element belonging to the lanthanoids. " - "Eu-151 and Eu-153 are the only two stable isotopes, both of which " - "are Neutron absorbers. Discovered in 1889 by Sir William Crookes.") - e['Gd'].description = ( - "Soft silvery metallic element belonging to the lanthanoids. " - "Seven natural, stable isotopes are known in addition to eleven " - "artificial isotopes. Gd-155 and Gd-157 and the best neutron " - "absorbers of all elements. Gadolinium compounds are used in " - "electronics. Discovered by J.C.G Marignac in 1880.") - e['Tb'].description = ( - "Silvery metallic element belonging to the lanthanoids. Tb-159 is " - "the only stable isotope, there are seventeen artificial isotopes. " - "Discovered by G.G. Mosander in 1843.") - e['Dy'].description = ( - "Metallic with a bright silvery-white lustre. Dysprosium belongs " - "to the lanthanoids. It is relatively stable in air at room " - "temperatures, it will however dissolve in mineral acids, evolving " - "hydrogen. It is found in from rare-earth minerals. There are " - "seven natural isotopes of dysprosium, and eight radioisotopes, " - "Dy-154 being the most stable with a half-life of 3*10^6 years. " - "Dysprosium is used as a neutron absorber in nuclear fission " - "reactions, and in compact disks. It was discovered by Paul Emile " - "Lecoq de Boisbaudran in 1886 in France. Its name comes from the " - "Greek word dysprositos, which means hard to obtain.") - e['Ho'].description = ( - "Relatively soft and malleable silvery-white metallic element, " - "which is stable in dry air at room temperature. It oxidizes in " - "moist air and at high temperatures. It belongs to the " - "lanthanoids. A rare-earth metal, it is found in the minerals " - "monazite and gadolinite. It possesses unusual magnetic " - "properties. One natural isotope, Ho-165 exists, six radioisotopes " - "exist, the most stable being Ho-163 with a half-life of 4570 " - "years. Holmium is used in some metal alloys, it is also said to " - "stimulate the metabolism. Discovered by Per Theodor Cleve and " - "J.L. Soret in Switzerland in 1879. The name homium comes from the " - "Greek word Holmia which means Sweden. While all holmium compounds " - "should be considered highly toxic, initial evidence seems to " - "indicate that they do not pose much danger. The metal's dust " - "however, is a fire hazard.") - e['Er'].description = ( - "Soft silvery metallic element which belongs to the lanthanoids. " - "Six natural isotopes that are stable. Twelve artificial isotopes " - "are known. Used in nuclear technology as a neutron absorber. It " - "is being investigated for other possible uses. Discovered by Carl " - "G. Mosander in 1843.") - e['Tm'].description = ( - "Soft grey metallic element that belongs to the lanthanoids. One " - "natural isotope exists, Tm-169, and seventeen artificial isotopes " - "have been produced. No known uses for the element. Discovered in " - "1879 by Per Theodor Cleve.") - e['Yb'].description = ( - "Silvery metallic element of the lanthanoids. Seven natural " - "isotopes and ten artificial isotopes are known. Used in certain " - "steels. Discovered by J.D.G. Marignac in 1878.") - e['Lu'].description = ( - "Silvery-white rare-earth metal which is relatively stable in " - "air. It happens to be the most expensive rare-earth metal. Its " - "found with almost all rare-earth metals, but is very difficult to " - "separate from other elements. Least abundant of all natural " - "elements. Used in metal alloys, and as a catalyst in various " - "processes. There are two natural, stable isotopes, and seven " - "radioisotopes, the most stable being Lu-174 with a half-life of " - "3.3 years. The separation of lutetium from Ytterbium was " - "described by Georges Urbain in 1907. It was discovered at " - "approximately the same time by Carl Auer von Welsbach. The name " - "comes from the Greek word lutetia which means Paris.") - e['Hf'].description = ( - "Silvery lustrous metallic transition element. Used in tungsten " - "alloys in filaments and electrodes, also acts as a neutron " - "absorber. First reported by Urbain in 1911, existence was finally " - "established in 1923 by D. Coster, G.C. de Hevesy in 1923.") - e['Ta'].description = ( - "Heavy blue-grey metallic transition element. Ta-181 is a stable " - "isotope, and Ta-180 is a radioactive isotope, with a half-life in " - "excess of 10^7 years. Used in surgery as it is unreactive. Forms " - "a passive oxide layer in air. Identified in 1802 by Ekeberg and " - "isolated in 1820 by Jons J. Berzelius.") - e['W'].description = ( - "White or grey metallic transition element,formerly called " - "Wolfram. Forms a protective oxide in air and can be oxidized at " - "high temperature. First isolated by Jose and Fausto de Elhuyer in " - "1783.") - e['Re'].description = ( - "Silvery-white metallic transition element. Obtained as a " - "by-product of molybdenum refinement. Rhenium-molybdenum alloys " - "are superconducting.") - e['Os'].description = ( - "Hard blue-white metallic transition element. Found with platinum " - "and used in some alloys with platinum and iridium.") - e['Ir'].description = ( - "Very hard and brittle, silvery metallic transition element. It " - "has a yellowish cast to it. Salts of iridium are highly colored. " - "It is the most corrosion resistant metal known, not attacked by " - "any acid, but is attacked by molten salts. There are two natural " - "isotopes of iridium, and 4 radioisotopes, the most stable being " - "Ir-192 with a half-life of 73.83 days. Ir-192 decays into " - "Platinum, while the other radioisotopes decay into Osmium. " - "Iridium is used in high temperature apparatus, electrical " - "contacts, and as a hardening agent for platinumpy. Discovered in " - "1803 by Smithson Tennant in England. The name comes from the " - "Greek word iris, which means rainbow. Iridium metal is generally " - "non-toxic due to its relative unreactivity, but iridium compounds " - "should be considered highly toxic.") - e['Pt'].description = ( - "Attractive greyish-white metal. When pure, it is malleable and " - "ductile. Does not oxidize in air, insoluble in hydrochloric and " - "nitric acid. Corroded by halogens, cyandies, sulphur and alkalis. " - "Hydrogen and Oxygen react explosively in the presence of " - "platinumpy. There are six stable isotopes and three " - "radioisotopes, the most stable being Pt-193 with a half-life of " - "60 years. Platinum is used in jewelry, laboratory equipment, " - "electrical contacts, dentistry, and anti-pollution devices in " - "cars. PtCl2(NH3)2 is used to treat some forms of cancer. " - "Platinum-Cobalt alloys have magnetic properties. It is also used " - "in the definition of the Standard Hydrogen Electrode. Discovered " - "by Antonio de Ulloa in South America in 1735. The name comes from " - "the Spanish word platina which means silver. Platinum metal is " - "generally not a health concern due to its unreactivity, however " - "platinum compounds should be considered highly toxic.") - e['Au'].description = ( - "Gold is gold colored. It is the most malleable and ductile metal " - "known. There is only one stable isotope of gold, and five " - "radioisotopes of gold, Au-195 being the most stable with a " - "half-life of 186 days. Gold is used as a monetary standard, in " - "jewelry, dentistry, electronics. Au-198 is used in treating " - "cancer and some other medical conditions. Gold has been known to " - "exist as far back as 2600 BC. Gold comes from the Anglo-Saxon " - "word gold. Its symbol, Au, comes from the Latin word aurum, which " - "means gold. Gold is not particularly toxic, however it is known " - "to cause damage to the liver and kidneys in some.") - e['Hg'].description = ( - "Heavy silvery liquid metallic element, belongs to the zinc " - "group. Used in thermometers, barometers and other scientific " - "apparatus. Less reactive than zinc and cadmium, does not displace " - "hydrogen from acids. Forms a number of complexes and " - "organomercury compounds.") - e['Tl'].description = ( - "Pure, unreacted thallium appears silvery-white and exhibits a " - "metallic lustre. Upon reacting with air, it begins to turn " - "bluish-grey and looks like lead. It is very malleable, and can be " - "cut with a knife. There are two stable isotopes, and four " - "radioisotopes, Tl-204 being the most stable with a half-life of " - "3.78 years. Thallium sulphate was used as a rodenticide. Thallium " - "sulphine's conductivity changes with exposure to infrared light, " - "this gives it a use in infrared detectors. Discovered by Sir " - "William Crookes via spectroscopy. Its name comes from the Greek " - "word thallos, which means green twig. Thallium and its compounds " - "are toxic and can cause cancer.") - e['Pb'].description = ( - "Heavy dull grey ductile metallic element, belongs to group 14. " - "Used in building construction, lead-place accumulators, bullets " - "and shot, and is part of solder, pewter, bearing metals, type " - "metals and fusible alloys.") - e['Bi'].description = ( - "White crystalline metal with a pink tinge, belongs to group 15. " - "Most diamagnetic of all metals and has the lowest thermal " - "conductivity of all the elements except mercury. Lead-free " - "bismuth compounds are used in cosmetics and medical procedures. " - "Burns in the air and produces a blue flame. In 1753, C.G. Junine " - "first demonstrated that it was different from lead.") - e['Po'].description = ( - "Rare radioactive metallic element, belongs to group 16 of the " - "periodic table. Over 30 known isotopes exist, the most of all " - "elements. Po-209 has a half-life of 103 years. Possible uses in " - "heating spacecraft. Discovered by Marie Curie in 1898 in a sample " - "of pitchblende.") - e['At'].description = ( - "Radioactive halogen element. Occurs naturally from uranium and " - "thorium decay. At least 20 known isotopes. At-210, the most " - "stable, has a half-life of 8.3 hours. Synthesized by nuclear " - "bombardment in 1940 by D.R. Corson, K.R. MacKenzie and E. Segre " - "at the University of California.") - e['Rn'].description = ( - "Colorless radioactive gaseous element, belongs to the noble " - "gases. Of the twenty known isotopes, the most stable is Rn-222 " - "with a half-life of 3.8 days. Formed by the radioactive decay of " - "Radium-226. Radon itself decays into Polonium. Used in " - "radiotherapy. As a noble gas, it is effectively inert, though " - "radon fluoride has been synthesized. First isolated in 1908 by " - "Ramsey and Gray.") - e['Fr'].description = ( - "Radioactive element, belongs to group 1 of the periodic table. " - "Found in uranium and thorium ores. The 22 known isotopes are all " - "radioactive, with the most stable being Fr-223. Its existence was " - "confirmed in 1939 by Marguerite Perey.") - e['Ra'].description = ( - "Radioactive metallic transuranic element, belongs to group 2 of " - "the periodic table. Most stable isotope, Ra-226 has a half-life " - "of 1602 years, which decays into radon. Isolated from pitchblende " - "in 1898 Marie and Pierre Curie.") - e['Ac'].description = ( - "Silvery radioactive metallic element, belongs to group 3 of the " - "periodic table. The most stable isotope, Ac-227, has a half-life " - "of 217 years. Ac-228 (half-life of 6.13 hours) also occurs in " - "nature. There are 22 other artificial isotopes, all radioactive " - "and having very short half-lives. Chemistry similar to " - "lanthanumpy. Used as a source of alpha particles. Discovered by " - "A. Debierne in 1899.") - e['Th'].description = ( - "Grey radioactive metallic element. Belongs to actinoids. Found " - "in monazite sand in Brazil, India and the US. Thorium-232 has a " - "half-life of 1.39x10^10 years. Can be used as a nuclear fuel for " - "breeder reactors. Thorium-232 captures slow Neutrons and breeds " - "uranium-233. Discovered by Jons J. Berzelius in 1829.") - e['Pa'].description = ( - "Radioactive metallic element, belongs to the actinoids. The most " - "stable isotope, Pa-231 has a half-life of 2.43*10^4 years. At " - "least 10 other radioactive isotopes are known. No practical " - "applications are known. Discovered in 1917 by Lise Meitner and " - "Otto Hahn.") - e['U'].description = ( - "White radioactive metallic element belonging to the actinoids. " - "Three natural isotopes, U-238, U-235 and U-234. Uranium-235 is " - "used as the fuel for nuclear reactors and weapons. Discovered by " - "Martin H. Klaproth in 1789.") - e['Np'].description = ( - "Radioactive metallic transuranic element, belongs to the " - "actinoids. Np-237, the most stable isotope, has a half-life of " - "2.2*10^6 years and is a by product of nuclear reactors. The other " - "known isotopes have mass numbers 229 through 236, and 238 through " - "241. Np-236 has a half-life of 5*10^3 years. First produced by " - "Edwin M. McMillan and P.H. Abelson in 1940.") - e['Pu'].description = ( - "Dense silvery radioactive metallic transuranic element, belongs " - "to the actinoids. Pu-244 is the most stable isotope with a " - "half-life of 7.6*10^7 years. Thirteen isotopes are known. Pu-239 " - "is the most important, it undergoes nuclear fission with slow " - "neutrons and is hence important to nuclear weapons and reactors. " - "Plutonium production is monitored down to the gram to prevent " - "military misuse. First produced by Gleen T. Seaborg, Edwin M. " - "McMillan, J.W. Kennedy and A.C. Wahl in 1940.") - e['Am'].description = ( - "Radioactive metallic transuranic element, belongs to the " - "actinoids. Ten known isotopes. Am-243 is the most stable isotope, " - "with a half-life of 7.95*10^3 years. Discovered by Glenn T. " - "Seaborg and associates in 1945, it was obtained by bombarding " - "Uranium-238 with alpha particles.") - e['Cm'].description = ( - "Radioactive metallic transuranic element. Belongs to actinoid " - "series. Nine known isotopes, Cm-247 has a half-life of 1.64*10^7 " - "years. First identified by Glenn T. Seaborg and associates in " - "1944, first produced by L.B. Werner and I. Perlman in 1947 by " - "bombarding americium-241 with Neutrons. Named for Marie Curie.") - e['Bk'].description = ( - "Radioactive metallic transuranic element. Belongs to actinoid " - "series. Eight known isotopes, the most common Bk-247, has a " - "half-life of 1.4*10^3 years. First produced by Glenn T. Seaborg " - "and associates in 1949 by bombarding americium-241 with alpha " - "particles.") - e['Cf'].description = ( - "Radioactive metallic transuranic element. Belongs to actinoid " - "series. Cf-251 has a half life of about 700 years. Nine isotopes " - "are known. Cf-252 is an intense Neutron source, which makes it an " - "intense Neutron source and gives it a use in Neutron activation " - "analysis and a possible use as a radiation source in medicine. " - "First produced by Glenn T. Seaborg and associates in 1950.") - e['Es'].description = ( - "Appearance is unknown, however it is most probably metallic and " - "silver or gray in color. Radioactive metallic transuranic element " - "belonging to the actinoids. Es-254 has the longest half-life of " - "the eleven known isotopes at 270 days. First identified by Albert " - "Ghiorso and associates in the debris of the 1952 hydrogen bomb " - "explosion. In 1961 the first microgram quantities of Es-232 were " - "separated. While einsteinium never exists naturally, if a " - "sufficient amount was assembled, it would pose a radiation " - "hazard.") - e['Fm'].description = ( - "Radioactive metallic transuranic element, belongs to the " - "actinoids. Ten known isotopes, most stable is Fm-257 with a " - "half-life of 10 days. First identified by Albert Ghiorso and " - "associates in the debris of the first hydrogen-bomb explosion in " - "1952.") - e['Md'].description = ( - "Radioactive metallic transuranic element. Belongs to the " - "actinoid series. Only known isotope, Md-256 has a half-life of " - "1.3 hours. First identified by Glenn T. Seaborg, Albert Ghiorso " - "and associates in 1955. Alternative name Unnilunium has been " - "proposed. Named after the 'inventor' of the periodic table, " - "Dmitri Mendeleev.") - e['No'].description = ( - "Radioactive metallic transuranic element, belongs to the " - "actinoids. Seven known isotopes exist, the most stable being " - "No-254 with a half-life of 255 seconds. First identified with " - "certainty by Albert Ghiorso and Glenn T. Seaborg in 1966. " - "Unnilbium has been proposed as an alternative name.") - e['Lr'].description = ( - "Appearance unknown, however it is most likely silvery-white or " - "grey and metallic. Lawrencium is a synthetic rare-earth metal. " - "There are eight known radioisotopes, the most stable being Lr-262 " - "with a half-life of 3.6 hours. Due to the short half-life of " - "lawrencium, and its radioactivity, there are no known uses for " - "it. Identified by Albert Ghiorso in 1961 at Berkeley. It was " - "produced by bombarding californium with boron ions. The name is " - "temporary IUPAC nomenclature, the origin of the name comes from " - "Ernest O. Lawrence, the inventor of the cyclotron. If sufficient " - "amounts of lawrencium were produced, it would pose a radiation " - "hazard.") - e['Rf'].description = ( - "Radioactive transactinide element. Expected to have similar " - "chemical properties to those displayed by hafnium. Rf-260 was " - "discovered by the Joint Nuclear Research Institute at Dubna " - "(U.S.S.R.) in 1964. Researchers at Berkeley discovered Unq-257 " - "and Unq-258 in 1964.") - e['Db'].description = ( - "Also known as Hahnium, Ha. Radioactive transactinide element. " - "Half-life of 1.6s. Discovered in 1970 by Berkeley researchers. So " - "far, seven isotopes have been discovered.") - e['Sg'].description = ( - "Half-life of 0.9 +/- 0.2 s. Discovered by the Joint Institute " - "for Nuclear Research at Dubna (U.S.S.R.) in June of 1974. Its " - "existence was confirmed by the Lawrence Berkeley Laboratory and " - "Livermore National Laboratory in September of 1974.") - e['Bh'].description = ( - "Radioactive transition metal. Half-life of approximately 1/500 " - "s. Discovered by the Joint Institute for Nuclear Research at " - "Dubna (U.S.S.R.) in 1976. Confirmed by West German physicists at " - "the Heavy Ion Research Laboratory at Darmstadt.") - e['Hs'].description = ( - "Radioactive transition metal first synthesized in 1984 by a " - "German research team led by Peter Armbruster and Gottfried " - "Muenzenberg at the Institute for Heavy Ion Research at Darmstadt.") - e['Mt'].description = ( - "Half-life of approximately 5 ms. The creation of this element " - "demonstrated that fusion techniques could indeed be used to make " - "new, heavy nuclei. Made and identified by physicists of the Heavy " - "Ion Research Laboratory, Darmstadt, West Germany in 1982. Named " - "in honor of Lise Meitner, the Austrian physicist.") - return e[symbol].description - - -def sqlite_script(): - """Return SQL script to create sqlite database of elements. - - Examples - -------- - >>> import sqlite3 - >>> con = sqlite3.connect(':memory:') - >>> cur = con.executescript(sqlite_script()) - >>> con.commit() - >>> for r in cur.execute("SELECT name FROM element WHERE number=6"): - ... str(r[0]) - 'Carbon' - >>> con.close() - - """ - sql = [""" - CREATE TABLE "period" ( - "number" TINYINT NOT NULL PRIMARY KEY, - "label" CHAR NOT NULL UNIQUE, - "description" VARCHAR(64) - ); - CREATE TABLE "group" ( - "number" TINYINT NOT NULL PRIMARY KEY, - "label" VARCHAR(8) NOT NULL, - "description" VARCHAR(64) - ); - CREATE TABLE "block" ( - "label" CHAR NOT NULL PRIMARY KEY, - "description" VARCHAR(64) - ); - CREATE TABLE "series" ( - "id" TINYINT NOT NULL PRIMARY KEY, - "label" VARCHAR(32) NOT NULL, - "description" VARCHAR(256) - ); - CREATE TABLE "element" ( - "number" TINYINT NOT NULL PRIMARY KEY, - "symbol" VARCHAR(2) UNIQUE NOT NULL, - "name" VARCHAR(16) UNIQUE NOT NULL, - "period" TINYINT NOT NULL, - --FOREIGN KEY("period") REFERENCES "period"(number), - "group" TINYINT NOT NULL, - --FOREIGN KEY("group") REFERENCES "group"(number), - "block" CHAR NOT NULL, - --FOREIGN KEY("block") REFERENCES "block"(label), - "series" TINYINT NOT NULL, - --FOREIGN KEY("series") REFERENCES "series"(id), - "mass" REAL NOT NULL, - "eleneg" REAL, - "covrad" REAL, - "atmrad" REAL, - "vdwrad" REAL, - "tboil" REAL, - "tmelt" REAL, - "density" REAL, - "eleaffin" REAL, - "eleconfig" VARCHAR(32), - "oxistates" VARCHAR(32), - "description" VARCHAR(2048) - ); - CREATE TABLE "isotope" ( - "element" TINYINT NOT NULL, - --FOREIGN KEY ("element") REFERENCES "element"("number"), - "massnum" TINYINT NOT NULL, - "mass" REAL NOT NULL, - "abundance" REAL NOT NULL, - PRIMARY KEY ("element", "massnum") - ); - CREATE TABLE "eleconfig" ( - "element" TINYINT NOT NULL, - --FOREIGN KEY ("element") REFERENCES "element"("number"), - "shell" TINYINT NOT NULL, - --FOREIGN KEY ("shell") REFERENCES "period"("number"), - "subshell" CHAR NOT NULL, - --FOREIGN KEY ("subshell") REFERENCES "block"("label"), - "count" TINYINT, - PRIMARY KEY ("element", "shell", "subshell") - ); - CREATE TABLE "ionenergy" ( - "element" TINYINT NOT NULL, - --FOREIGN KEY ("element") REFERENCES "element"("number"), - "number" TINYINT NOT NULL, - "energy" REAL NOT NULL, - PRIMARY KEY ("element", "number") - ); - """] - - for key, label in PERIODS.items(): - sql.append("""INSERT INTO "period" VALUES (%i, '%s', NULL);""" % ( - key, label)) - - for key, (label, descr) in GROUPS.items(): - sql.append("""INSERT INTO "group" VALUES (%i, '%s', '%s');""" % ( - key, label, descr)) - - for data in BLOCKS.items(): - sql.append("""INSERT INTO "block" VALUES ('%s', '%s');""" % data) - - for series in sorted(SERIES): - sql.append("""INSERT INTO "series" VALUES (%i, '%s', '');""" % ( - series, SERIES[series])) - - for ele in ELEMENTS: - sql.append(""" - INSERT INTO "element" VALUES (%i, '%s', '%s', %i, %i, '%s', %i, - %.10f, %.4f, %.4f, %.4f, %.4f, - %.4f, %.4f, %.4f, %.8f, - '%s', '%s', - '%s' - );""" % ( - ele.number, ele.symbol, ele.name, ele.period, ele.group, - ele.block, ele.series, ele.mass, ele.eleneg, - ele.covrad, ele.atmrad, ele.vdwrad, ele.tboil, ele.tmelt, - ele.density, ele.eleaffin, ele.eleconfig, ele.oxistates, - word_wrap( - ele.description.replace("'", "\'\'").replace("\"", "\"\""), - linelen=74, indent=0, joinstr="\n "))) - - for ele in ELEMENTS: - for iso in ele.isotopes.values(): - sql.append( - """INSERT INTO "isotope" VALUES (%i, %i, %.10f, %.8f);""" % ( - ele.number, iso.massnumber, iso.mass, iso.abundance)) - - for ele in ELEMENTS: - for (shell, subshell), count in ele.eleconfig_dict.items(): - sql.append( - """INSERT INTO "eleconfig" VALUES (%i, %i, '%s', %i);""" % ( - ele.number, shell, subshell, count)) - - for ele in ELEMENTS: - for i, ionenergy in enumerate(ele.ionenergy): - sql.append("""INSERT INTO "ionenergy" VALUES (%i, %i, %.4f);""" % ( - ele.number, i + 1, ionenergy)) - - return '\n'.join(sql).replace(" ", "") - - -def word_wrap(text, linelen=80, indent=0, joinstr="\n"): - """Return string, word wrapped at linelen.""" - if len(text) < linelen: - return text - result = [] - line = [] - llen = -indent - for word in text.split(): - llen += len(word) + 1 - if llen < linelen: - line.append(word) - else: - result.append(" ".join(line)) - line = [word] - llen = len(word) - if line: - result.append(" ".join(line)) - return joinstr.join(result) - - -if __name__ == "__main__": - for ele in ELEMENTS: - print(repr(ele), '\n') - import doctest - doctest.testmod(verbose=False) - diff --git a/abipy/gui/awx/elements_gui.py b/abipy/gui/awx/elements_gui.py deleted file mode 100644 index d0e5737d3..000000000 --- a/abipy/gui/awx/elements_gui.py +++ /dev/null @@ -1,944 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# elements_gui.py - -# Copyright (c) 2005-2014, Christoph Gohlke -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the copyright holders nor the names of any -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -"""Periodic Table of Elements - A user interface for elements.py. - -:Author: `Christoph Gohlke `_ - -:Version: 2013.03.18 - -Requirements ------------- - -* `CPython 2.7 `_ -* `wxPython 2.8 `_ -* `Elements.py 2013.03.18 `_ - -""" -from __future__ import division, print_function - -import sys -import math -import io -import webbrowser - -import wxversion -#wxversion.ensureMinimal('2.8') -import wx -from wx.lib import fancytext, buttons, rcsizer - -from elements import ELEMENTS, SERIES - -from abipy.gui.awx.panels import ListCtrlFromTable -try: - from pseudo_dojo.refdata.nist import database as nist -except ImportError: - pass - - -class MainApp(wx.App): - """Main application.""" - - name = "Periodic Table of Elements" - version = "2012.04.05" - website = "http://www.lfd.uci.edu/~gohlke/" - copyright = ("Christoph Gohlke\n" - "Laboratory for Fluorescence Dynamics\n" - "University of California, Irvine") - icon = "elements" - - def OnInit(self): - _ = wx.LogNull() - wx.InitAllImageHandlers() - mainframe = WxPeriodicTable(None, -1) - self.SetTopWindow(mainframe) - if wx.Platform != "__WXMAC__": - mainframe.Centre() - mainframe.ApplyLayout(False) - mainframe.Show() - return 1 - - -class ElementButton(buttons.GenToggleButton): - """Button representing chemical element.""" - - def __init__(self, *args, **kwds): - buttons.GenToggleButton.__init__(self, *args, **kwds) - self.color = wx.Colour(255, 255, 255) - self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) - self.Bind(wx.EVT_RIGHT_DOWN, self.onRightDown) - - @property - def Z(self): - """Atomic number corresponding to this button.""" - return self.GetId() - 100 - - def OnEraseBackground(self, event): - pass - - def SetButtonColour(self, color): - self.color = color - - def OnPaint(self, event): - width, height = self.GetClientSizeTuple() - dc = wx.BufferedPaintDC(self) - brush = wx.Brush(self.GetBackgroundColour(), wx.SOLID) - if wx.Platform == "__WXMAC__": - brush.MacSetTheme(1) # kThemeBrushDialogBackgroundActive - dc.SetBackground(brush) - dc.SetPen(wx.TRANSPARENT_PEN) - dc.SetBrush(wx.Brush(self.color if self.up else 'WHITE', wx.SOLID)) - dc.Clear() - dc.DrawRectanglePointSize((1, 1), (width - 2, height - 2)) - if self.up: - self.DrawBezel(dc, 0, 0, width - 1, height - 1) - self.DrawLabel(dc, width, height) - if (self.hasFocus and self.useFocusInd): - self.DrawFocusIndicator(dc, width, height) - - def DrawLabel(self, dc, width, height): - font = self.GetFont() - font.SetWeight(wx.FONTWEIGHT_BOLD) - dc.SetFont(font) - - if self.IsEnabled(): - dc.SetTextForeground(self.GetForegroundColour()) - else: - dc.SetTextForeground(wx.SystemSettings.GetColour( - wx.SYS_COLOUR_GRAYTEXT)) - - label = self.GetLabel() - txtwidth, txtheight = dc.GetTextExtent(label) - xpos = (width - txtwidth) // 2 - ypos = (height*0.75 - txtheight) // 2 - 1 - dc.DrawText(label, xpos, ypos) - - font.SetWeight(wx.FONTWEIGHT_LIGHT) - font.SetPointSize((font.GetPointSize()*6) // 8) - dc.SetFont(font) - label = "%i" % (self.GetId() - 100) - txtwidth, txtheight = dc.GetTextExtent(label) - dc.DrawText(label, (width-txtwidth)//2, 4+ypos+(height-txtheight)//2) - - def makePopupMenu(self): - """Build and return the popup menu.""" - menu = wx.Menu() - - self.ID_POPUP_NIST_LDA = wx.NewId() - menu.Append(self.ID_POPUP_NIST_LDA, "NIST SCF data (LDA)") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_POPUP_NIST_LDA, self.onNistLda), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu - - def onRightDown(self, event): - """Called when right button is pressed.""" - popup_menu = self.makePopupMenu() - self.PopupMenu(popup_menu, event.GetPosition()) - - def onNistLda(self, event): - """ - Show the LDA levels of the neutral atom. - (useful to decide if semicore states should be included in the valence). - """ - try: - entry = nist.get_neutral_entry(self.Z) - except KeyError: - return - - table = entry.to_table() - frame = wx.Frame(self, title="LDA levels for atom %s (NIST database) " % entry.symbol) - ListCtrlFromTable(frame, table) - frame.Show() - - -class PeriodicPanel(wx.Panel): - """Periodic table of elements panel.""" - - layout = """ - . 1 . . . . . . . . . . . . . . . . 18 . - 1 H 2 . . . . . . . . . . 13 14 15 16 17 He . - 2 Li Be . . . . . . . . . . B C N O F Ne . - 3 Na Mg 3 4 5 6 7 8 9 10 11 12 Al Si P S Cl Ar . - 4 K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr . - 5 Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe . - 6 Cs Ba * Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn . - 7 Fr Ra ** Rf Db Sg Bh Hs Mt . . . . . . . . . . - . . . . . . . . . . . . . . . . . . . . - . . . * La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu . - . . . ** Ac Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr . - """ - # Class used to instanciates the buttons in the panel. - element_button_class = ElementButton - - def __init__(self, *args, **kwds): - kwds["style"] = wx.TAB_TRAVERSAL - wx.Panel.__init__(self, *args, **kwds) - rows = len(self.layout.splitlines()) - 2 - cols = len(self.layout.splitlines()[1].split()) - self.sizer = wx.FlexGridSizer(rows, cols, 0, 0) - self.buttons = list(range(0, len(ELEMENTS))) - self.selected = -1 - - self.info = ElementPanel(self, -1, pos=(0, 0)) - - # create element buttons - buttonsize = math.ceil(float(self.info.GetSize()[0] + 4) / 9.0) - if buttonsize < 30: - buttonsize = 30 - for row in self.layout.splitlines()[1:-1]: - for col in row.split(): - if col == '.': - self.sizer.Add((SPACER, SPACER)) - elif col[0] in '123456789*': - static = wx.StaticText(self, -1, col, - style=wx.ALIGN_CENTER|wx.ALIGN_BOTTOM) - self.sizer.Add(static, 0, - (wx.ALL|wx.ALIGN_CENTER_HORIZONTAL| - wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE), SPACER//2) - else: - ele = ELEMENTS[col] - button = self.element_button_class(self, ele.number+100, ele.symbol, - size=(buttonsize, buttonsize)) - self.buttons[ele.number - 1] = button - button.SetBezelWidth(1) - button.SetToolTipString(ele.name) - col = COLORS[ele.series] - button.SetButtonColour(wx.Colour(col[0], col[1], col[2])) - self.sizer.Add(button, 0, (wx.LEFT|wx.BOTTOM| - wx.FIXED_MINSIZE|wx.ALIGN_CENTER_HORIZONTAL| - wx.ALIGN_CENTER_VERTICAL), 0) - self.Bind(wx.EVT_BUTTON, self.OnSelect, button) - - self.SetAutoLayout(True) - self.SetSizer(self.sizer) - self.sizer.SetSizeHints(self) - self.sizer.Fit(self) - - # position element info panel - cw = self.sizer.GetColWidths() - rh = self.sizer.GetRowHeights() - self.info.Move((sum(cw[:3])+cw[3]//2, (rh[0]-SPACER)//2-1)) - - # legend of chemical series - self.legendpos = (sum(cw[:13]), (rh[0]-SPACER)//2-1) - self.legendsize = (sum(cw[13:17]) + cw[17]//2, -1) - self.legend = wx.StaticText(self, -1, " Alkaline earth metals ", - style=wx.ALIGN_CENTER, pos=self.legendpos, size=self.legendsize) - self.legend.SetToolTipString("Chemical series") - - # blinking element button - self.highlight = False - self.timer = wx.Timer(self) - self.timer.Start(750) - self.Bind(wx.EVT_TIMER, self.OnTimer) - - def AddCtrl(self, ctrl, pos=200): - self.sizer.Remove(pos) - self.sizer.Insert(pos, ctrl, 0, (wx.ALL|wx.ALIGN_CENTER_HORIZONTAL| - wx.ALIGN_BOTTOM|wx.FIXED_MINSIZE), 0) - self.Layout() - - def OnTimer(self, evt): - button = self.buttons[self.selected] - button.SetToggle(button.up) - - def OnSelect(self, evt): - self.GetParent().SetSelection(evt.GetId() - 101) - - def SetSelection(self, select): - """Set active element.""" - if self.selected == select: - return - # reset old selection - self.buttons[self.selected].SetToggle(False) - # highlight new selection - self.selected = select - self.buttons[select].SetToggle(True) - ele = ELEMENTS[select + 1] - col = COLORS[ele.series] - self.legend.SetBackgroundColour(wx.Colour(col[0], col[1], col[2])) - self.legend.SetLabel(SERIES[ele.series]) - self.legend.Move(self.legendpos) - self.legend.SetSize(self.legendsize) - self.info.SetSelection(select) - - -class ElementPanel(wx.Panel): - """Element information panel.""" - - def __init__(self, *args, **kwds): - kwds["style"] = wx.NO_BORDER | wx.TAB_TRAVERSAL - wx.Panel.__init__(self, *args, **kwds) - self.selected = -1 - - # create controls - self.number = wx.StaticText(self, -1, "808", - style=wx.ALIGN_RIGHT) - self.position = wx.StaticText(self, -1, "6, 88, 9", - style=wx.ALIGN_LEFT) - self.symbol = wx.StaticText(self, -1, "Mm", - style=wx.ALIGN_CENTER_HORIZONTAL) - self.name = wx.StaticText(self, -1, "Praseodymium ", - style=wx.ALIGN_CENTER_HORIZONTAL) - self.mass = wx.StaticText(self, -1, "123.4567890 ", - style=wx.ALIGN_CENTER_HORIZONTAL) - self.massnumber = wx.StaticText(self, -1, "123 A ", - style=wx.ALIGN_RIGHT) - self.protons = wx.StaticText(self, -1, "123 P ", - style=wx.ALIGN_RIGHT) - self.neutrons = wx.StaticText(self, -1, "123 N ", - style=wx.ALIGN_RIGHT) - self.electrons = wx.StaticText(self, -1, "123 e ", - style=wx.ALIGN_RIGHT) - self.eleshell = wx.StaticText(self, -1, "2, 8, 18, 32, 32, 15, 2", - style=wx.ALIGN_LEFT) - self.eleconfig = StaticFancyText(self, -1, - "[Xe] 4f14 5d10" - " 6s2 6p6 ", - style=wx.ALIGN_LEFT) - self.oxistates = wx.StaticText(self, -1, "1*, 2, 3, 4, 5, 6, -7 ") - self.atmrad = wx.StaticText(self, -1, "1.234 A ", - style=wx.ALIGN_RIGHT) - self.ionpot = wx.StaticText(self, -1, "123.4567890 eV ") - self.eleneg = wx.StaticText(self, -1, "123.45678 ") - - # set control properties - font = self.GetFont() - font.SetWeight(wx.FONTWEIGHT_BOLD) - self.number.SetFont(font) - self.name.SetFont(font) - font.SetPointSize(font.GetPointSize() * 1.9) - self.symbol.SetFont(font) - - self.number.SetToolTipString("Atomic number") - self.position.SetToolTipString("Group, Period, Block") - self.symbol.SetToolTipString("Symbol") - self.name.SetToolTipString("Name") - self.mass.SetToolTipString("Relative atomic mass") - self.eleshell.SetToolTipString("Electrons per shell") - self.massnumber.SetToolTipString("Mass number (most abundant isotope)") - self.protons.SetToolTipString("Protons") - self.neutrons.SetToolTipString("Neutrons (most abundant isotope)") - self.electrons.SetToolTipString("Electrons") - self.eleconfig.SetToolTipString("Electron configuration") - self.oxistates.SetToolTipString("Oxidation states") - self.atmrad.SetToolTipString("Atomic radius") - self.ionpot.SetToolTipString("Ionization potentials") - self.eleneg.SetToolTipString("Electronegativity") - - # layout - sizer = rcsizer.RowColSizer() - sizer.col_w = SPACER - sizer.row_h = SPACER - sizer.Add(self.number, row=0, col=0, - flag=wx.ALIGN_CENTER_HORIZONTAL|wx.FIXED_MINSIZE) - sizer.Add(self.position, row=0, col=1, - flag=wx.ALIGN_LEFT|wx.FIXED_MINSIZE) - sizer.Add(self.symbol, row=1, col=0, rowspan=2, colspan=2, - flag=(wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL| - wx.FIXED_MINSIZE)) - sizer.Add(self.name, row=3, col=0, colspan=2, - flag=wx.ALIGN_CENTER_HORIZONTAL|wx.FIXED_MINSIZE) - sizer.Add(self.mass, row=4, col=0, colspan=2, - flag=wx.ALIGN_CENTER_HORIZONTAL|wx.FIXED_MINSIZE) - sizer.Add(self.massnumber, row=0, col=2, - flag=wx.ALIGN_RIGHT|wx.FIXED_MINSIZE) - sizer.Add(self.protons, row=1, col=2, - flag=wx.ALIGN_RIGHT|wx.FIXED_MINSIZE) - sizer.Add(self.neutrons, row=2, col=2, - flag=wx.ALIGN_RIGHT|wx.FIXED_MINSIZE) - sizer.Add(self.electrons, row=3, col=2, - flag=wx.ALIGN_RIGHT|wx.FIXED_MINSIZE) - sizer.Add(self.atmrad, row=4, col=2, - flag=wx.ALIGN_RIGHT|wx.FIXED_MINSIZE) - sizer.Add(self.eleconfig, row=0, col=4, flag=wx.ADJUST_MINSIZE) - sizer.Add(self.eleshell, row=1, col=4, flag=wx.ADJUST_MINSIZE) - sizer.Add(self.oxistates, row=2, col=4, flag=wx.ADJUST_MINSIZE) - sizer.Add(self.ionpot, row=3, col=4, flag=wx.ADJUST_MINSIZE) - sizer.Add(self.eleneg, row=4, col=4, flag=wx.ADJUST_MINSIZE) - - self.SetAutoLayout(True) - self.SetSizer(sizer) - sizer.Fit(self) - sizer.SetSizeHints(self) - self.Layout() - - def SetSelection(self, select): - """Set active element.""" - if self.selected == select: - return - self.Freeze() - self.selected = select - ele = ELEMENTS[select + 1] - - self.number.SetLabel("%i" % ele.number) - self.position.SetLabel("%i, %i, %s" % ( - ele.group, ele.period, ele.block)) - self.mass.SetLabel("%.10g" % ele.mass) - self.eleshell.SetLabel(', '.join("%i" % i for i in ele.eleshells)) - self.massnumber.SetLabel('%i A ' % ele.nominalmass) - self.protons.SetLabel('%i P ' % ele.protons) - self.neutrons.SetLabel('%i N ' % ele.neutrons) - self.electrons.SetLabel('%i e ' % ele.electrons) - self.oxistates.SetLabel(ele.oxistates) - self.atmrad.SetLabel(_u("%.10g \xc5 ") % ele.atmrad if ele.atmrad else - "") - self.eleneg.SetLabel("%.10g" % ele.eleneg if ele.eleneg else "") - self.ionpot.SetLabel( - "%.10g eV" % ele.ionenergy[0] if ele.ionenergy else "") - self.symbol.SetLabel(ele.symbol) - self.name.SetLabel(ele.name) - - label = [] - for orb in ele.eleconfig.split(): - if not orb.startswith('[') and len(orb) > 2: - orb = orb[:2] + '' + orb[2:] + '' - label.append(orb) - label.append(" ") # fix ADJUST_MINSIZE - self.eleconfig.SetLabel(' '.join(label)) - - self.Thaw() - self.Layout() - - -class DetailsPanel(wx.Panel): - """Element details panel.""" - - def __init__(self, *args, **kwds): - kwds["style"] = wx.NO_BORDER|wx.TAB_TRAVERSAL - wx.Panel.__init__(self, *args, **kwds) - self.selected = -1 - - # create controls - cb_style = wx.CB_READONLY|wx.CB_SORT - if wx.Platform == "__WXMAC__": - cb_style = wx.CB_READONLY - - - self.names = LabeledCtrl(self, wx.ComboBox, "Element Name", - choices=[p.name for p in ELEMENTS], - style=cb_style, size=(1, -1)) - self.symbols = LabeledCtrl(self, wx.ComboBox, "Symbol", '', - choices=[p.symbol for p in ELEMENTS], - style=cb_style, size=(1, -1)) - self.numbers = LabeledCtrl(self, wx.ComboBox, "Number", - choices=["%s" % p.number for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.mass = LabeledCtrl(self, wx.ComboBox, "Relative Atomic Mass", - choices=["%-.10g" % p.mass for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.atmrad = LabeledCtrl(self, wx.ComboBox, - _u("Atomic Radius (\xc5)"), - choices=["%-.10g" % p.atmrad for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.covrad = LabeledCtrl(self, wx.ComboBox, - _u("Covalent Radius (\xc5)"), - choices=["%-.10g" % p.covrad for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.vdwrad = LabeledCtrl(self, wx.ComboBox, - _u("V.d.Waals Radius (\xc5)"), - choices=["%-.10g" % p.vdwrad for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.eleneg = LabeledCtrl(self, wx.ComboBox, "Electronegativity", - choices=["%-.10g" % p.eleneg for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.eleconfig = LabeledCtrl(self, wx.ComboBox, "e- Config", - choices=[p.eleconfig for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.eleshells = LabeledCtrl(self, wx.ComboBox, "Electrons per Shell", - choices=[', '.join("%i" % i for i in p.eleshells) - for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.oxistates = LabeledCtrl(self, wx.ComboBox, "Oxidation States", - choices=[p.oxistates for p in ELEMENTS], - style=wx.CB_READONLY, size=(1, -1)) - self.ionpot = LabeledCtrl(self, wx.Choice, - "Ionization Potentials (eV)", choices=[], size=(1, -1)) - self.isotopes = LabeledCtrl(self, wx.Choice, "Isotopes", - choices=[], size=(1, -1)) - - # layout - sizer = wx.BoxSizer(wx.VERTICAL) - sizer_top = wx.BoxSizer(wx.HORIZONTAL) - sizer_left = wx.BoxSizer(wx.VERTICAL) - sizer_right = wx.BoxSizer(wx.VERTICAL) - sizer_num = wx.BoxSizer(wx.HORIZONTAL) - style = wx.RIGHT|wx.BOTTOM|wx.EXPAND|wx.ADJUST_MINSIZE - sizer_left.Add(self.names, 0, style, SPACER) - sizer_left.Add(self.mass, 0, style, SPACER) - sizer_left.Add(self.atmrad, 0, style, SPACER) - sizer_left.Add(self.covrad, 0, style, SPACER) - sizer_left.Add(self.vdwrad, 0, style, SPACER) - sizer_left.Add(self.eleneg, 0, style, SPACER) - sizer_top.Add(sizer_left, 1, wx.LEFT|wx.RIGHT, 0) - style = wx.BOTTOM|wx.EXPAND|wx.ADJUST_MINSIZE - sizer_num.Add(self.symbols, 1, style, 0) - sizer_num.Add((SPACER, 5), 0, 0, 0) - sizer_num.Add(self.numbers, 1, style, 0) - sizer_right.Add(sizer_num, 0, style, SPACER) - sizer_right.Add(self.eleconfig, 0, style, SPACER) - sizer_right.Add(self.eleshells, 0, style, SPACER) - sizer_right.Add(self.oxistates, 0, style, SPACER) - sizer_right.Add(self.ionpot, 0, style, SPACER) - sizer_right.Add(self.isotopes, 0, style, SPACER) - sizer_top.Add(sizer_right, 1, wx.TOP|wx.RIGHT, 0) - sizer.Add(sizer_top, 1, - wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND|wx.ADJUST_MINSIZE, SPACER) - self.SetAutoLayout(True) - self.SetSizerAndFit(sizer, True) - sizer.SetSizeHints(self) - self.Layout() - - # bind events - self.Bind(wx.EVT_COMBOBOX, self.OnSelectName, self.names.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelectSymbol, self.symbols.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.numbers.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.mass.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.atmrad.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.covrad.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.vdwrad.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.eleshells.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.eleneg.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.eleconfig.ctrl) - self.Bind(wx.EVT_COMBOBOX, self.OnSelect, self.oxistates.ctrl) - - def SetSelection(self, select): - """Set active element.""" - if self.selected == select: - return - self.selected = select - ele = ELEMENTS[select+1] - - self.names.ctrl.SetStringSelection(ele.name) - self.symbols.ctrl.SetStringSelection(ele.symbol) - self.numbers.ctrl.SetSelection(select) - self.mass.ctrl.SetSelection(select) - self.eleconfig.ctrl.SetSelection(select) - self.atmrad.ctrl.SetSelection(select) - self.covrad.ctrl.SetSelection(select) - self.vdwrad.ctrl.SetSelection(select) - self.eleneg.ctrl.SetSelection(select) - self.eleshells.ctrl.SetSelection(select) - self.oxistates.ctrl.SetSelection(select) - - self.isotopes.ctrl.Clear() - for index, massnum in enumerate(sorted(ele.isotopes)): - iso = ele.isotopes[massnum] - self.isotopes.ctrl.Append("%3i: %8.4f , %8.4f%%" % ( - massnum, iso.mass, iso.abundance*100.0)) - if massnum == ele.nominalmass: - self.isotopes.ctrl.SetSelection(index) - - self.ionpot.ctrl.Clear() - for ion in ele.ionenergy: - self.ionpot.ctrl.Append("%8.4f" % ion) - self.ionpot.ctrl.SetSelection(0) - - def OnSelect(self, evt): - self.SetSelection(evt.GetSelection()) - event = SelectionEvent(pteEVT_ELE_CHANGED, self.GetId(), self.selected) - self.GetEventHandler().ProcessEvent(event) - evt.Skip() - - def OnSelectName(self, evt): - name = self.names.ctrl.GetValue() - self.SetSelection(ELEMENTS[name].number - 1) - event = SelectionEvent(pteEVT_ELE_CHANGED, self.GetId(), self.selected) - self.GetEventHandler().ProcessEvent(event) - evt.Skip() - - def OnSelectSymbol(self, evt): - name = self.symbols.ctrl.GetValue() - self.SetSelection(ELEMENTS[name].number - 1) - event = SelectionEvent(pteEVT_ELE_CHANGED, self.GetId(), self.selected) - self.GetEventHandler().ProcessEvent(event) - evt.Skip() - - -class DecriptionPanel(wx.Panel): - """Element description panel.""" - - def __init__(self, *args, **kwds): - kwds["style"] = wx.NO_BORDER|wx.TAB_TRAVERSAL - wx.Panel.__init__(self, *args, **kwds) - self.selected = -1 - - self.description = wx.TextCtrl(self, -1, " \n \n", - style=wx.TE_MULTILINE|wx.TE_READONLY) - font = self.description.GetFont() - font.SetPointSize((font.GetPointSize() + 1)) - self.description.SetFont(font) - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(self.description, 1, - wx.TOP|wx.LEFT|wx.RIGHT|wx.BOTTOM|wx.EXPAND|wx.FIXED_MINSIZE, - SPACER) - - self.SetAutoLayout(True) - self.SetSizerAndFit(sizer, True) - sizer.SetSizeHints(self) - self.Layout() - - def SetSelection(self, select): - """Set active element.""" - if self.selected == select: - return - self.selected = select - - ele = ELEMENTS[select + 1] - self.description.SetValue(ele.description) - - -class LabeledCtrl(wx.BoxSizer): - """BoxSizer containing label, control, and unit.""" - - def __init__(self, parent, control, label, unit=None, space=" ", - *args, **kwds): - wx.BoxSizer.__init__(self, wx.HORIZONTAL) - self.label = wx.StaticText(parent, -1, label + space) - self.ctrl = control(parent, -1, *args, **kwds) - self.Add(self.label, 0, wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) - self.Add(self.ctrl, 1, (wx.LEFT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL| - wx.ALIGN_RIGHT|wx.ADJUST_MINSIZE), 0) - if unit: - self.unit = wx.StaticText(parent, -1, unit) - self.Add(self.unit, 0, - wx.RIGHT|wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE, 0) - else: - self.unit = None - - -class StaticFancyText(fancytext.StaticFancyText): - """StaticFancyText with SetLabel function.""" - - def SetLabel(self, label): - bmp = fancytext.RenderToBitmap( - label, wx.Brush(self.GetBackgroundColour(), wx.SOLID)) - self.SetBitmap(bmp) - - -class DisclosureCtrl(buttons.GenBitmapTextToggleButton): - """Disclosure triangle button.""" - - bmp0 = (b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\r\x00\x00' - b'\x00\r\x08\x06\x00\x00\x00r\xeb\xe4|\x00\x00\x00\x04sBIT' - b'\x08\x08\x08\x08|\x08d\x88\x00\x00\x00\xd5IDAT(\x91\x9d' - b'\x921n\x83@\x10E\xdf.!\x96\x9c\x90P"\xd9\x86\x92\x82\x03p' - b'\x02h\xa9i9A\xe2\xb38)9\x02w\xc0\t\x94I\xa0H\xd2\xc7' - b'\x96(\x918\xc0\xa6Z\x17\x91\x05&_\x1a\xe9k4O\xfa3\x1a!' - b'\xa4\xc1\\Im>\xde\xdf\xd4l\xa8,K\x9e\x9fv\xeax\xf8\x99\x84' - b'\x85\x8e\xb7}|P\x00\xb6m\x13\x04\x01q\x1cc\xdd\xdd\x8bs\xd0' - b'\xd5\xdfF\xdf\xf7TUE\xdb\xb6\xbc\xbe\xecU\x18\x86\x98\xd7' - b'\x0b1\ni\r\xc3@Q\x14\xd4u\xcd\xf7\xd7\xa7r]\x97\xe5\xcd' - b'\xad\x18\x85\xb4\xba\xae#\xcfs|\xdf?\xf5\xe4\xc8<\x00\x8e' - b'\xe3\x90e\x19i\x9aN\xc7\xb3,\x8b(\x8a\xb8h\xa7Y\xd7' - b'\xf3<\x0f\xd34I\x92\x84\xd5zsv\xf8$!\r\x844h\x9aFi?Y\xff' - b'\xf9\xbd_\xd7\x8c7Z\xc0k\x8d8\x00\x00\x00\x00IEND\xaeB`\x82') - - bmp1 = (b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\r\x00\x00' - b'\x00\r\x08\x06\x00\x00\x00r\xeb\xe4|\x00\x00\x00\x04sBIT' - b'\x08\x08\x08\x08|\x08d\x88\x00\x00\x00\xc1IDAT(\x91\x9d\xd2;' - b'\x8e\xc20\x10\x80\xe1\x7fB\x0c\x95\xc1\xa5%\xc0)S\xb8I\xd2' - b'\xb8Le\x97\xf6\x99s\x81\xdd\xbdBN\xb2\xdb!Y\t\xac`\xbay|' - b'\xa3)F\xa49\xf0n4o\x8bOQ\x0b\xf0\xf3\xfd\xf5\xbb,\x0b\xeb' - b'\xba>\x1d\xec\xba\x8ey\x9e\x19\xc6I\x1a\x80a\x9cD)\xf5r' - b'\xbbR\x8aa\x9c\xa4:\xaf\x94\x821f\x17\x18c(\xa5<\xf2\x07' - b'\xba\xde\xee\xe2\xbd\xdfE\xde{\xae\xb7\xbbl\x10@J\t\xadu\x05' - b'\xb4\xd6\xa4\x94\xaaZ\x85\xf4\xf9"1\xc6j \xc6\x88>_\xe4)\x02' - b'\x08!`\xad\x05\xc0ZK\x08as\xee\x06\xa9\xe3Ir\xce\xb4mK\xce' - b'\x19u<\xc9\xbf\x08\xc09G\xdf\xf78\xe7\xf6\xda\xc8\'\xbf\xf7' - b'\x07\x13\x12\x18B\x17\x9fx\xa0\x00\x00\x00\x00IEND\xaeB`\x82') - - def __init__(self, parent, winid, label, *args, **kwds): - kwds["style"] = wx.BORDER_NONE|wx.BU_EXACTFIT - buttons.GenBitmapTextToggleButton.__init__(self, parent, winid, None, - label, *args, **kwds) - if isinstance(self.bmp0, type(b'')): - self.__class__.bmp0 = wx.BitmapFromImage(wx.ImageFromStream( - io.BytesIO(self.bmp0))) - self.__class__.bmp1 = wx.BitmapFromImage(wx.ImageFromStream( - io.BytesIO(self.bmp1))) - - self.SetBitmapLabel(self.bmp0) - self.SetBitmapSelected(self.bmp1) - if not label: - self.SetSize(self.bmp0.GetSize()) - else: - self.SetBestSize() - self.labelDelta = 0 - self.useFocusInd = False - self.SetToolTipString('Show') - self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) - - def OnEraseBackground(self, event): - pass - - def Notify(self): - wx.lib.buttons.GenBitmapTextToggleButton.Notify(self) - self.SetToolTipString("%s" % ('Show' if self.up else 'Hide')) - - def DoGetBestSize(self): - width, height, usemin = self._GetLabelSize() - return width + 5, height + 4 - - def OnPaint(self, event): - width, height = self.GetClientSizeTuple() - dc = wx.BufferedPaintDC(self) - brush = None - bgcol = self.GetBackgroundColour() - brush = wx.Brush(bgcol, wx.SOLID) - defattr = self.GetDefaultAttributes() - if self.style & wx.BORDER_NONE and bgcol == defattr.colBg: - defattr = self.GetParent().GetDefaultAttributes() - if self.GetParent().GetBackgroundColour() == defattr.colBg: - if wx.Platform == "__WXMSW__": - if self.DoEraseBackground(dc): - brush = None - elif wx.Platform == "__WXMAC__": - brush.MacSetTheme(1) - else: - bgcol = self.GetParent().GetBackgroundColour() - brush = wx.Brush(bgcol, wx.SOLID) - if brush is not None: - dc.SetBackground(brush) - dc.Clear() - self.DrawLabel(dc, width, height) - - def DrawLabel(self, dc, width, height, center=False): - bmp = self.bmpLabel - if bmp is not None: - if self.bmpDisabled and not self.IsEnabled(): - bmp = self.bmpDisabled - if self.bmpFocus and self.hasFocus: - bmp = self.bmpFocus - if self.bmpSelected and not self.up: - bmp = self.bmpSelected - bmpwidth, bmpheight = bmp.GetWidth(), bmp.GetHeight() - hasmask = bmp.GetMask() is not None - else: - bmpwidth = bmpheight = 0 - - dc.SetFont(self.GetFont()) - color = (self.GetForegroundColour() if self.IsEnabled() else - wx.SystemSettings.GetColour(wx.SYS_COLOUR_GRAYTEXT)) - dc.SetTextForeground(color) - - label = self.GetLabel() - txtwidth, txtheight = dc.GetTextExtent(label) - # center bitmap and text - xpos = (width - bmpwidth - txtwidth) // 2 if center else 0 - if bmp is not None: - dc.DrawBitmap(bmp, xpos, (height - bmpheight) // 2, hasmask) - xpos += 5 - dc.DrawText(label, xpos + bmpwidth, (height - txtheight) // 2) - - -class SelectionEvent(wx.PyCommandEvent): - """Notification of changed element.""" - - def __init__(self, evtType, winid, sel): - wx.PyCommandEvent.__init__(self, evtType, winid) - self.selection = sel - - def SetSelection(self, select): - self.selection = select - - def GetSelection(self): - return self.selection - - -class WxPeriodicTable(wx.Frame): - """Main application window.""" - - # Class used to instanciate the panel with the elements. - periodic_panel_class = PeriodicPanel - - def __init__(self, *args, **kwds): - kwds["style"] = (wx.DEFAULT_DIALOG_STYLE | wx.MINIMIZE_BOX | wx.TAB_TRAVERSAL) - wx.Frame.__init__(self, *args, **kwds) - self.selected = -1 - - self.SetTitle(MainApp.name) - icon = wx.EmptyIcon() - #icon.CopyFromBitmap(wx.Bitmap(MainApp.icon + '.png', - # wx.BITMAP_TYPE_ANY)) - self.SetIcon(icon) - self.SetBackgroundColour(wx.SystemSettings_GetColour( - wx.SYS_COLOUR_3DFACE)) - - # create menu - self.menu = wx.MenuBar() - self.SetMenuBar(self.menu) - menu = wx.Menu() - menu.Append(wx.ID_EXIT, "Exit", "Exit the application", wx.ITEM_NORMAL) - self.menu.Append(menu, "File") - menu = wx.Menu() - menu.Append(wx.ID_COPY, - "Copy\tCtrl+C", "Copy selected element to the clipboard", - wx.ITEM_NORMAL) - self.menu.Append(menu, "Edit") - menu = wx.Menu() - menu.Append(wx.ID_VIEW_DETAILS, "Details", "Show or hide details", - wx.ITEM_CHECK) - self.menu.Append(menu, "View") - menu = wx.Menu() - menu.Append(wx.ID_ABOUT, "About...", - "Display information about the program", wx.ITEM_NORMAL) - self.menu.Append(menu, "Help") - - # create panels and controls - self.notebook = wx.Notebook(self, -1, style=0) - self.description = DecriptionPanel(self.notebook, -1) - self.details = DetailsPanel(self.notebook, -1) - - self.table = self.periodic_panel_class(self, id=-1) - - self.disclose = DisclosureCtrl(self.table, -1, '') - self.table.AddCtrl(self.disclose) - self.notebook.AddPage(self.description, "Description") - self.notebook.AddPage(self.details, "Properties") - - # event bindings - self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT) - self.Bind(wx.EVT_MENU, self.OnCopy, id=wx.ID_COPY) - self.Bind(wx.EVT_MENU, self.OnDetails, id=wx.ID_VIEW_DETAILS) - self.Bind(wx.EVT_MENU, self.OnAbout, id=wx.ID_ABOUT) - self.Bind(EVT_ELE_CHANGED, self.OnSelect, self.table) - self.Bind(EVT_ELE_CHANGED, self.OnSelect, self.details) - self.Bind(wx.EVT_BUTTON, self.OnDetails, self.disclose) - - # create sizers - self.sizer = wx.BoxSizer(wx.VERTICAL) - self.sizer.Add(self.table, 1, (wx.LEFT|wx.TOP|wx.RIGHT|wx.EXPAND| - wx.ALIGN_CENTER_HORIZONTAL| wx.EXPAND|wx.ADJUST_MINSIZE), BORDER-5) - self.sizer.Add((BORDER, BORDER)) - self.sizer.Add(self.notebook, 0, (wx.LEFT|wx.RIGHT|wx.BOTTOM| - wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL| - wx.ADJUST_MINSIZE), BORDER) - - self.notebook.SetSelection(1) - self.SetAutoLayout(True) - self.SetSizerAndFit(self.sizer, True) - self.sizer.SetSizeHints(self) - self.ApplyLayout(True) - self.SetSelection(0) - - def ApplyLayout(self, show=False): - self.show_info = show - self.sizer.Show(2, show, True) - self.SetAutoLayout(True) - self.SetSizerAndFit(self.sizer, True) - self.sizer.SetSizeHints(self) - self.Layout() - self.menu.Check(wx.ID_VIEW_DETAILS, show) - self.disclose.SetToggle(self.show_info) - - def OnDetails(self, evt): - self.ApplyLayout(not self.show_info) - - def OnEraseBackground(self, event): - pass - - def OnCopy(self, evt): - dobj = wx.TextDataObject() - dobj.SetText(repr(ELEMENTS[self.selected + 1])) - if wx.TheClipboard.Open(): - wx.TheClipboard.SetData(dobj) - wx.TheClipboard.Close() - - def OnAbout(self, evt): - info = wx.AboutDialogInfo() - info.Name = MainApp.name - info.Version = MainApp.version - info.Copyright = MainApp.copyright - info.WebSite = MainApp.website - wx.AboutBox(info) - - def OnWebsite(self, evt): - webbrowser.open(MainApp.website) - - def OnWikipedia(self, evt): - webbrowser.open("http://en.wikipedia.org/wiki/%s" % ( - ELEMENTS[self.selected].name), 1) - - def OnWebElements(self, evt): - webbrowser.open("http://www.webelements.com/%s/" % ( - ELEMENTS[self.selected].name.lower())) - - def OnSelect(self, evt): - self.SetSelection(evt.GetSelection()) - - def SetSelection(self, select): - """Set active element.""" - if self.selected != select: - self.selected = select - self.description.SetSelection(select) - self.table.SetSelection(select) - self.details.SetSelection(select) - - def OnExit(self, evt): - self.Close() - if __name__ == "__main__": - sys.exit(0) - else: - return self.selected - - -pteEVT_ELE_CHANGED = wx.NewEventType() -EVT_ELE_CHANGED = wx.PyEventBinder(pteEVT_ELE_CHANGED, 1) - -SPACER = 12 if wx.Platform == "__WXMAC__" else 10 -BORDER = 22 if wx.Platform == "__WXMAC__" else 10 - -COLORS = { - 1: (0x99, 0xff, 0x99), # Nonmetals - 2: (0xc0, 0xff, 0xff), # Noble gases - 3: (0xff, 0x99, 0x99), # Alkali metals - 4: (0xff, 0xde, 0xad), # Alkaline earth metals - 5: (0xcc, 0xcc, 0x99), # Metalloids - 6: (0xff, 0xff, 0x99), # Halogens - 7: (0xcc, 0xcc, 0xcc), # Poor metals - 8: (0xff, 0xc0, 0xc0), # Transition metals - 9: (0xff, 0xbf, 0xff), # Lanthanides - 10: (0xff, 0x99, 0xcc), # Actinides -} - -_u = (lambda x: x.decode('latin-1')) if sys.version[0] == '2' else str - -if __name__ == "__main__": - MainApp(0).MainLoop() diff --git a/abipy/gui/awx/frames.py b/abipy/gui/awx/frames.py deleted file mode 100644 index 53ccd67a3..000000000 --- a/abipy/gui/awx/frames.py +++ /dev/null @@ -1,59 +0,0 @@ -"""Collections of simple frames used to solve typical (simple) problems.""" -from __future__ import print_function, division - -import wx - -from abipy.gui.awx.core import Frame as awxFrame - -__all__ = [ - "FrameWithChoice", -] - - -class FrameWithChoice(wx.Frame): - """ - Simple frame with a Choice control and two buttons: OK, Cancel - Subclasses will usually redefine onOkButton. - """ - def __init__(self, parent, choices, **kwargs): - super(FrameWithChoice, self).__init__(parent, id=-1, **kwargs) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - panel = wx.Panel(self, -1) - - self.wxchoices = wx.Choice(panel, -1, wx.DefaultPosition, wx.DefaultSize, list(choices), 0) - self.wxchoices.SetSelection(0) - - main_sizer.Add(self.wxchoices, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL | wx.EXPAND, border=5) - - ok_button = wx.Button(panel, wx.ID_OK, label='Ok') - ok_button.Bind(wx.EVT_BUTTON, self.onOkButton) - - close_button = wx.Button(panel, wx.ID_CANCEL, label='Cancel') - close_button.Bind(wx.EVT_BUTTON, self.onCloseButton) - - hbox = wx.BoxSizer(wx.HORIZONTAL) - - hbox.Add(ok_button, 0, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, border=5) - hbox.Add(close_button, 0, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, border=5) - main_sizer.Add(hbox, 0, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, border=5) - - panel.SetSizerAndFit(main_sizer) - #self.SetSizerAndFit(main_sizer) - - def getChoice(self): - """Returns the string selected by the user.""" - return self.wxchoices.GetStringSelection() - - def onOkButton(self, event): - print("In onOkButton with choice selected %s" % self.wxchoices.GetStringSelection()) - - def onCloseButton(self, event): - self.Destroy() - - -if __name__ == "__main__": - app = wx.App() - FrameWithChoice(None, ["hello", "ciao"]).Show() - app.MainLoop() diff --git a/abipy/gui/awx/func1dframe.py b/abipy/gui/awx/func1dframe.py deleted file mode 100644 index 21a2d37b7..000000000 --- a/abipy/gui/awx/func1dframe.py +++ /dev/null @@ -1,96 +0,0 @@ -from __future__ import print_function, division - -import wx -import inspect -import warnings - -from dialogs import showErrorMessage - -__all__ = [ - "Func1dPlotFrame", -] - - -class Func1dPlotFrame(wx.Frame): - """ - Simple Frame that allows the user to have access to the method - of a `Function1D` objects and plot the results with wxmplot. - """ - - def __init__(self, parent, func1d, **kwargs): - """ - Args: - parent: - wx parent window. - func1d: - `Function1d` object. - """ - super(Func1dPlotFrame, self).__init__(parent=parent, **kwargs) - self.func1d = func1d - self.BuildUi() - - # Store PlotFrames in this list. - self._pframes = [] - - def BuildUi(self): - panel = wx.Panel(self, id=-1, size=wx.Size(500, 300)) - - bSizer10 = wx.BoxSizer(wx.VERTICAL) - - # Get the methods of the objects. - obj_methods = ["None"] - obj_methods += [t[0] for t in inspect.getmembers(self.func1d, predicate=inspect.ismethod) - if not t[0].startswith("_")] - sorted(obj_methods) - - self.method_choice = wx.Choice(panel, -1, wx.DefaultPosition, wx.DefaultSize, obj_methods, 0) - self.method_choice.SetSelection(0) - bSizer10.Add(self.method_choice, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND, 5) - - fgSizer4 = wx.FlexGridSizer(0, 2, 0, 0) - fgSizer4.SetFlexibleDirection(wx.BOTH) - fgSizer4.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) - - self.replot_checkbox = wx.CheckBox(panel, id=-1, label="Replot") - self.replot_checkbox.SetValue(True) - fgSizer4.Add(self.replot_checkbox, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - - self.plot_button = wx.Button(panel, -1, u"Plot", wx.DefaultPosition, wx.DefaultSize, 0) - fgSizer4.Add(self.plot_button, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - - bSizer10.Add(fgSizer4, 0, 0, 5) - - self.SetSizerAndFit(bSizer10) - - self.plot_button.Bind(wx.EVT_BUTTON, self.OnClick) - - def OnClick(self, event): - method = self.method_choice.GetStringSelection() - - try: - from wxmplot import PlotFrame - except ImportError: - #warnings.warn("Error while importing wxmplot. Some features won't be available") - raise - - plotframe = None - if self.replot_checkbox.GetValue() and len(self._pframes): - plotframe = self._pframes[-1] - - try: - if method == "None": - g = self.func1d - else: - g = getattr(self.func1d, method)() - - if plotframe is None: - plotframe = PlotFrame(self) - self._pframes.append(plotframe) - plotframe.plot(g.mesh, g.values, label=method, draw_legend=True) - plotframe.Show() - else: - plotframe.oplot(g.mesh, g.values, label=method, draw_legend=True) - - except: - showErrorMessage(self) - diff --git a/abipy/gui/awx/grids.py b/abipy/gui/awx/grids.py deleted file mode 100644 index 18d729216..000000000 --- a/abipy/gui/awx/grids.py +++ /dev/null @@ -1,440 +0,0 @@ -from __future__ import print_function, division - -import sys -import wx - -import wx.grid as gridlib - -__all__ = [ - "SimpleGrid", - "SimpleGridFrame", -] - -class CopyPasteGrid(gridlib.Grid): - """ - A Copy&Paste enabled grid class - taken from http://wxpython-users.1045709.n5.nabble.com/copy-and-pasting-selections-in-wx-grid-cells-td2353289.html - """ - def __init__(self, parent, **kwargs): - super(CopyPasteGrid, self).__init__(parent, **kwargs) - wx.EVT_KEY_DOWN(self, self.OnKey) - - def selection(self): - # Show cell selection - # If selection is cell... - if self.GetSelectedCells(): - print("Selected cells " + str(self.GetSelectedCells())) - # If selection is block... - if self.GetSelectionBlockTopLeft(): - print("Selection block top left " + str(self.GetSelectionBlockTopLeft())) - if self.GetSelectionBlockBottomRight(): - print("Selection block bottom right " + str(self.GetSelectionBlockBottomRight())) - - # If selection is col... - if self.GetSelectedCols(): - print("Selected cols " + str(self.GetSelectedCols())) - - # If selection is row... - if self.GetSelectedRows(): - print("Selected rows " + str(self.GetSelectedRows())) - - def currentcell(self): - # Show cursor position - row = self.GetGridCursorRow() - col = self.GetGridCursorCol() - cell = (row, col) - print("Current cell " + str(cell)) - - def OnKey(self, event): - # If Ctrl+C is pressed... - if event.ControlDown() and event.GetKeyCode() == 67: - print("Ctrl+C") - self.selection() - # Call copy method - self.copy() - - # If Ctrl+V is pressed... - if event.ControlDown() and event.GetKeyCode() == 86: - print("Ctrl+V") - self.currentcell() - # Call paste method - self.paste() - - # If Supr is pressed - if event.GetKeyCode() == 127: - print("Supr") - # Call delete method - self.delete() - - # Skip other Key events - if event.GetKeyCode(): - event.Skip() - return - - def copy(self): - print("Copy method") - # Number of rows and cols - rows = self.GetSelectionBlockBottomRight()[0][0] - self.GetSelectionBlockTopLeft()[0][0] + 1 - cols = self.GetSelectionBlockBottomRight()[0][1] - self.GetSelectionBlockTopLeft()[0][1] + 1 - - # data variable contain text that must be set in the clipboard - data = '' - - # For each cell in selected range append the cell value in the data variable - # Tabs '\t' for cols and '\r' for rows - for r in range(rows): - for c in range(cols): - data = data + str(self.GetCellValue(self.GetSelectionBlockTopLeft()[0][0] + r, self.GetSelectionBlockTopLeft()[0][1] + c)) - if c < cols - 1: - data = data + '\t' - data = data + '\n' - # Create text data object - clipboard = wx.TextDataObject() - # Set data object value - clipboard.SetText(data) - # Put the data in the clipboard - if wx.TheClipboard.Open(): - wx.TheClipboard.SetData(clipboard) - wx.TheClipboard.Close() - else: - wx.MessageBox("Can't open the clipboard", "Error") - - def paste(self): - print("Paste method") - clipboard = wx.TextDataObject() - if wx.TheClipboard.Open(): - wx.TheClipboard.GetData(clipboard) - wx.TheClipboard.Close() - else: - wx.MessageBox("Can't open the clipboard", "Error") - data = clipboard.GetText() - table = [] - y = -1 - # Convert text in a array of lines - for r in data.splitlines(): - y = y +1 - x = -1 - # Convert c in a array of text separated by tab - for c in r.split('\t'): - x = x +1 - self.SetCellValue(self.GetGridCursorRow() + y, self.GetGridCursorCol() + x, c) - - def delete(self): - print("Delete method") - # Number of rows and cols - rows = self.GetSelectionBlockBottomRight()[0][0] - self.GetSelectionBlockTopLeft()[0][0] + 1 - cols = self.GetSelectionBlockBottomRight()[0][1] - self.GetSelectionBlockTopLeft()[0][1] + 1 - # Clear cells contents - for r in range(rows): - for c in range(cols): - self.SetCellValue(self.GetSelectionBlockTopLeft()[0][0] + r, self.GetSelectionBlockTopLeft()[0][1] + c, '') - - - -#class SimpleGrid(gridlib.Grid): -class SimpleGrid(CopyPasteGrid): - - def __init__(self, parent, table, row_labels=None, col_labels=None, **kwargs): - """ - Args: - parent: - parent window. - table: - List of string lists. - row_labels: - List of strings used to name the rows. - col_labels: - List of strings used to name the col. - """ - super(SimpleGrid, self).__init__(parent, id=-1, **kwargs) - self.log = sys.stdout - - self.moveTo = None - self.Bind(wx.EVT_IDLE, self.OnIdle) - - self.nrows = nrows = len(table) - dims = {len(row) for row in table} - if len(dims) == 1: - self.ncols = ncols = list(dims)[0] - else: - raise ValueError("Each row must have the same number of columns but dims %s" % str(dims)) - - self.CreateGrid(nrows, ncols) - - attr = gridlib.GridCellAttr() - attr.SetTextColour(wx.BLACK) - attr.SetBackgroundColour(wx.WHITE) - attr.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.NORMAL)) - - self.SetGridCellAttr(attr) - - if row_labels is not None: - assert len(row_labels) == nrows - for i, label in enumerate(row_labels): - self.SetRowLabelValue(i, label) - - if col_labels is not None: - assert len(col_labels) == ncols - for i, label in enumerate(col_labels): - self.SetColLabelValue(i, label) - self.SetColLabelAlignment(wx.ALIGN_LEFT, wx.ALIGN_BOTTOM) - - # Cell formatting - for r, row in enumerate(table): - for c, col in enumerate(row): - self.SetCellValue(r, c, table[r][c]) - self.SetReadOnly(r, c, True) - - self.AutoSize() - self.ForceRefresh() - - # test all the events - self.Bind(gridlib.EVT_GRID_CELL_LEFT_CLICK, self.OnCellLeftClick) - self.Bind(gridlib.EVT_GRID_CELL_RIGHT_CLICK, self.OnCellRightClick) - self.Bind(gridlib.EVT_GRID_CELL_LEFT_DCLICK, self.OnCellLeftDClick) - self.Bind(gridlib.EVT_GRID_CELL_RIGHT_DCLICK, self.OnCellRightDClick) - - self.Bind(gridlib.EVT_GRID_LABEL_LEFT_CLICK, self.OnLabelLeftClick) - self.Bind(gridlib.EVT_GRID_LABEL_RIGHT_CLICK, self.OnLabelRightClick) - self.Bind(gridlib.EVT_GRID_LABEL_LEFT_DCLICK, self.OnLabelLeftDClick) - self.Bind(gridlib.EVT_GRID_LABEL_RIGHT_DCLICK, self.OnLabelRightDClick) - - self.Bind(gridlib.EVT_GRID_ROW_SIZE, self.OnRowSize) - self.Bind(gridlib.EVT_GRID_COL_SIZE, self.OnColSize) - - self.Bind(gridlib.EVT_GRID_RANGE_SELECT, self.OnRangeSelect) - self.Bind(gridlib.EVT_GRID_CELL_CHANGE, self.OnCellChange) - self.Bind(gridlib.EVT_GRID_SELECT_CELL, self.OnSelectCell) - - self.Bind(gridlib.EVT_GRID_EDITOR_SHOWN, self.OnEditorShown) - self.Bind(gridlib.EVT_GRID_EDITOR_HIDDEN, self.OnEditorHidden) - self.Bind(gridlib.EVT_GRID_EDITOR_CREATED, self.OnEditorCreated) - - def SetGridCellAttr(self, attr): - """ - Set cell attributes for the whole row. - - Args: - attr: - `gridlib.GridCellAttr` - """ - # Note that GridCellAttr objects are reference counted, so attr.IncRef - # should be called every time Grid.Set*Attr(attr) is called. This is - # required to keep the Grid.Delete* methods from unexpectedly deleting the - # GridCellAttr object. - for row in range(self.nrows): - attr.IncRef() - self.SetRowAttr(row, attr) - self.AutoSize() - self.ForceRefresh() - - def OnCellLeftClick(self, evt): - self.log.write("OnCellLeftClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnCellRightClick(self, evt): - self.log.write("OnCellRightClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnCellLeftDClick(self, evt): - self.log.write("OnCellLeftDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnCellRightDClick(self, evt): - self.log.write("OnCellRightDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnLabelLeftClick(self, evt): - self.log.write("OnLabelLeftClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnLabelRightClick(self, evt): - self.log.write("OnLabelRightClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnLabelLeftDClick(self, evt): - self.log.write("OnLabelLeftDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnLabelRightDClick(self, evt): - self.log.write("OnLabelRightDClick: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnRowSize(self, evt): - self.log.write("OnRowSize: row %d, %s\n" % (evt.GetRowOrCol(), evt.GetPosition())) - evt.Skip() - - def OnColSize(self, evt): - self.log.write("OnColSize: col %d, %s\n" % (evt.GetRowOrCol(), evt.GetPosition())) - evt.Skip() - - def OnRangeSelect(self, evt): - if evt.Selecting(): - msg = 'Selected' - else: - msg = 'Deselected' - self.log.write("OnRangeSelect: %s top-left %s, bottom-right %s\n" % - (msg, evt.GetTopLeftCoords(), evt.GetBottomRightCoords())) - evt.Skip() - - - def OnCellChange(self, evt): - self.log.write("OnCellChange: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - - # Show how to stay in a cell that has bad data. We can't just - # call SetGridCursor here since we are nested inside one so it - # won't have any effect. Instead, set coordinates to move to in - # idle time. - value = self.GetCellValue(evt.GetRow(), evt.GetCol()) - - if value == 'no good': - self.moveTo = evt.GetRow(), evt.GetCol() - - def OnIdle(self, evt): - if self.moveTo is not None: - self.SetGridCursor(self.moveTo[0], self.moveTo[1]) - self.moveTo = None - - evt.Skip() - - def OnSelectCell(self, evt): - if evt.Selecting(): - msg = 'Selected' - else: - msg = 'Deselected' - self.log.write("OnSelectCell: %s (%d,%d) %s\n" % (msg, evt.GetRow(), evt.GetCol(), evt.GetPosition())) - - # Another way to stay in a cell that has a bad value... - row = self.GetGridCursorRow() - col = self.GetGridCursorCol() - - if self.IsCellEditControlEnabled(): - self.HideCellEditControl() - self.DisableCellEditControl() - - value = self.GetCellValue(row, col) - - if value == 'no good 2': - return # cancels the cell selection - - evt.Skip() - - def OnEditorShown(self, evt): - if evt.GetRow() == 6 and evt.GetCol() == 3 and \ - wx.MessageBox("Are you sure you wish to edit this cell?", - "Checking", wx.YES_NO) == wx.NO: - evt.Veto() - return - - self.log.write("OnEditorShown: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnEditorHidden(self, evt): - if evt.GetRow() == 6 and evt.GetCol() == 3 and \ - wx.MessageBox("Are you sure you wish to finish editing this cell?", - "Checking", wx.YES_NO) == wx.NO: - evt.Veto() - return - - self.log.write("OnEditorHidden: (%d,%d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetPosition())) - evt.Skip() - - def OnEditorCreated(self, evt): - self.log.write("OnEditorCreated: (%d, %d) %s\n" % (evt.GetRow(), evt.GetCol(), evt.GetControl())) - - #def InstallGridHint(grid, rowcolhintcallback): - # prev_rowcol = [None,None] - # def OnMouseMotion(evt): - # # evt.GetRow() and evt.GetCol() would be nice to have here, - # # but as this is a mouse event, not a grid event, they are not - # # available and we need to compute them by hand. - # x, y = grid.CalcUnscrolledPosition(evt.GetPosition()) - # row = grid.YToRow(y) - # col = grid.XToCol(x) - # if (row,col) != prev_rowcol and row >= 0 and col >= 0: - # prev_rowcol[:] = [row,col] - # hinttext = rowcolhintcallback(row, col) - # if hinttext is None: - # hinttext = '' - # grid.GetGridWindow().SetToolTipString(hinttext) - # evt.Skip() - # wx.EVT_MOTION(grid.GetGridWindow(), OnMouseMotion) - - -class SimpleGridFrame(wx.Frame): - def __init__(self, parent, table, row_labels=None, col_labels=None, labels_from_table=False, **kwargs): - """ - Args: - labels_from_table: - If True row_labes and col_labels are taken from the table. Not compatible with `row_labels` and `col_labels`. - """ - super(SimpleGridFrame, self).__init__(parent, -1, **kwargs) - - if labels_from_table: - # Extract labes from table and extract the subtable. - assert not row_labels and not col_labels - col_labels = table[0][1:] - row_labels, new_table = [], [] - for row in table[1:]: - row_labels.append(row[0]) - new_table.append(row[1:]) - table = new_table - - self.makeToolBar() - - self.panel = panel = wx.Panel(self, -1) - self.grid = SimpleGrid(panel, table, row_labels=row_labels, col_labels=col_labels) - - self.main_sizer = main_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.Add(self.grid, 1, wx.EXPAND | wx.ALL, 5) - - panel.SetSizerAndFit(main_sizer) - - def makeToolBar(self): - """Creates the tool bar.""" - self.toolbar = toolbar = self.CreateToolBar() - - self.font_picker = wx.FontPickerCtrl(toolbar, -1) - toolbar.AddControl(control=self.font_picker) - toolbar.Realize() - - #menu_bar = wx.MenuBar() - # Associate menu/toolbar items with their handlers. - #self.ID_ = wx.NewId() - #menu_handlers = [ - # (self.ID_FONT_CHANGED, self.onFontChanged), - #] - #for combo in menu_handlers: - # mid, handler = combo[:2] - # self.Bind(wx.EVT_MENU, handler, id=mid) - - self.Bind(wx.EVT_FONTPICKER_CHANGED, self.OnFontPickerChanged, self.font_picker) - - def OnFontPickerChanged(self, event): - """Change the Font.""" - font = self.font_picker.GetSelectedFont() - attr = gridlib.GridCellAttr() - attr.SetFont(font) - self.grid.SetGridCellAttr(attr) - self.main_sizer.Fit(self.panel) - - -#class DemoSimpleGrid(wx.Frame): -# def __init__(self, parent): -# wx.Frame.__init__(self, parent, -1, "Simple Grid Demo") -# -# row_labels = ["row1", "row2"] -# col_labels = ["col1", "col2", "col3"] -# -# table = [ -# ["1", "2", "3"], -# ["4", "5", "6"] -# ] -# self.grid = SimpleGrid(self, table, row_labels, col_labels) -# -# -#if __name__ == '__main__': -# app = wx.App() -# frame = DemoSimpleGrid(None) -# frame.Show(True) -# app.MainLoop() diff --git a/abipy/gui/awx/images/abipy.png b/abipy/gui/awx/images/abipy.png deleted file mode 100644 index 502146a75..000000000 Binary files a/abipy/gui/awx/images/abipy.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy0.png b/abipy/gui/awx/images/abipy0.png deleted file mode 100644 index 9078fcee2..000000000 Binary files a/abipy/gui/awx/images/abipy0.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy1.png b/abipy/gui/awx/images/abipy1.png deleted file mode 100644 index f52c34f76..000000000 Binary files a/abipy/gui/awx/images/abipy1.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy2.png b/abipy/gui/awx/images/abipy2.png deleted file mode 100644 index 76e708453..000000000 Binary files a/abipy/gui/awx/images/abipy2.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy3.png b/abipy/gui/awx/images/abipy3.png deleted file mode 100644 index 735dde273..000000000 Binary files a/abipy/gui/awx/images/abipy3.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy4.png b/abipy/gui/awx/images/abipy4.png deleted file mode 100644 index 243214420..000000000 Binary files a/abipy/gui/awx/images/abipy4.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy5.png b/abipy/gui/awx/images/abipy5.png deleted file mode 100644 index 142d9a992..000000000 Binary files a/abipy/gui/awx/images/abipy5.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy6.png b/abipy/gui/awx/images/abipy6.png deleted file mode 100644 index fd91fb90a..000000000 Binary files a/abipy/gui/awx/images/abipy6.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy7.png b/abipy/gui/awx/images/abipy7.png deleted file mode 100644 index c156f9e74..000000000 Binary files a/abipy/gui/awx/images/abipy7.png and /dev/null differ diff --git a/abipy/gui/awx/images/abipy8.png b/abipy/gui/awx/images/abipy8.png deleted file mode 100644 index 810f5ed2b..000000000 Binary files a/abipy/gui/awx/images/abipy8.png and /dev/null differ diff --git a/abipy/gui/awx/images/browse.png b/abipy/gui/awx/images/browse.png deleted file mode 100644 index 33989fccd..000000000 Binary files a/abipy/gui/awx/images/browse.png and /dev/null differ diff --git a/abipy/gui/awx/images/bs.png b/abipy/gui/awx/images/bs.png deleted file mode 100644 index 661f7424e..000000000 Binary files a/abipy/gui/awx/images/bs.png and /dev/null differ diff --git a/abipy/gui/awx/images/bz.png b/abipy/gui/awx/images/bz.png deleted file mode 100644 index b4c905483..000000000 Binary files a/abipy/gui/awx/images/bz.png and /dev/null differ diff --git a/abipy/gui/awx/images/chk.png b/abipy/gui/awx/images/chk.png deleted file mode 100644 index ee4b4b90b..000000000 Binary files a/abipy/gui/awx/images/chk.png and /dev/null differ diff --git a/abipy/gui/awx/images/crystal.png b/abipy/gui/awx/images/crystal.png deleted file mode 100644 index 585f64b25..000000000 Binary files a/abipy/gui/awx/images/crystal.png and /dev/null differ diff --git a/abipy/gui/awx/images/dos.png b/abipy/gui/awx/images/dos.png deleted file mode 100644 index 9aae5cc84..000000000 Binary files a/abipy/gui/awx/images/dos.png and /dev/null differ diff --git a/abipy/gui/awx/images/empty.png b/abipy/gui/awx/images/empty.png deleted file mode 100644 index 0587a3332..000000000 Binary files a/abipy/gui/awx/images/empty.png and /dev/null differ diff --git a/abipy/gui/awx/images/env.png b/abipy/gui/awx/images/env.png deleted file mode 100644 index 40387dd65..000000000 Binary files a/abipy/gui/awx/images/env.png and /dev/null differ diff --git a/abipy/gui/awx/images/in.png b/abipy/gui/awx/images/in.png deleted file mode 100644 index 52345a294..000000000 Binary files a/abipy/gui/awx/images/in.png and /dev/null differ diff --git a/abipy/gui/awx/images/jdos.png b/abipy/gui/awx/images/jdos.png deleted file mode 100644 index d45cdc844..000000000 Binary files a/abipy/gui/awx/images/jdos.png and /dev/null differ diff --git a/abipy/gui/awx/images/log.png b/abipy/gui/awx/images/log.png deleted file mode 100644 index ff440c162..000000000 Binary files a/abipy/gui/awx/images/log.png and /dev/null differ diff --git a/abipy/gui/awx/images/log_evt.png b/abipy/gui/awx/images/log_evt.png deleted file mode 100644 index 8b086c19c..000000000 Binary files a/abipy/gui/awx/images/log_evt.png and /dev/null differ diff --git a/abipy/gui/awx/images/out.png b/abipy/gui/awx/images/out.png deleted file mode 100644 index 707a2a647..000000000 Binary files a/abipy/gui/awx/images/out.png and /dev/null differ diff --git a/abipy/gui/awx/images/out_evt.png b/abipy/gui/awx/images/out_evt.png deleted file mode 100644 index 64dee5097..000000000 Binary files a/abipy/gui/awx/images/out_evt.png and /dev/null differ diff --git a/abipy/gui/awx/images/qpmarkers.png b/abipy/gui/awx/images/qpmarkers.png deleted file mode 100644 index 23d6f9540..000000000 Binary files a/abipy/gui/awx/images/qpmarkers.png and /dev/null differ diff --git a/abipy/gui/awx/images/qpresults.png b/abipy/gui/awx/images/qpresults.png deleted file mode 100644 index 31bc0865b..000000000 Binary files a/abipy/gui/awx/images/qpresults.png and /dev/null differ diff --git a/abipy/gui/awx/images/qpscissor.png b/abipy/gui/awx/images/qpscissor.png deleted file mode 100644 index e5973fac7..000000000 Binary files a/abipy/gui/awx/images/qpscissor.png and /dev/null differ diff --git a/abipy/gui/awx/images/refresh.png b/abipy/gui/awx/images/refresh.png deleted file mode 100644 index 4e43d91f7..000000000 Binary files a/abipy/gui/awx/images/refresh.png and /dev/null differ diff --git a/abipy/gui/awx/images/run.png b/abipy/gui/awx/images/run.png deleted file mode 100644 index b67f43e9b..000000000 Binary files a/abipy/gui/awx/images/run.png and /dev/null differ diff --git a/abipy/gui/awx/images/script.png b/abipy/gui/awx/images/script.png deleted file mode 100644 index aa965d71d..000000000 Binary files a/abipy/gui/awx/images/script.png and /dev/null differ diff --git a/abipy/gui/awx/images/struct.png b/abipy/gui/awx/images/struct.png deleted file mode 100644 index e7f1ee6ae..000000000 Binary files a/abipy/gui/awx/images/struct.png and /dev/null differ diff --git a/abipy/gui/awx/images/term.png b/abipy/gui/awx/images/term.png deleted file mode 100644 index b9ed6d921..000000000 Binary files a/abipy/gui/awx/images/term.png and /dev/null differ diff --git a/abipy/gui/awx/images/timer.png b/abipy/gui/awx/images/timer.png deleted file mode 100644 index b225030eb..000000000 Binary files a/abipy/gui/awx/images/timer.png and /dev/null differ diff --git a/abipy/gui/awx/images/vers.png b/abipy/gui/awx/images/vers.png deleted file mode 100644 index afbc85214..000000000 Binary files a/abipy/gui/awx/images/vers.png and /dev/null differ diff --git a/abipy/gui/awx/images/wave.png b/abipy/gui/awx/images/wave.png deleted file mode 100644 index 63e55146e..000000000 Binary files a/abipy/gui/awx/images/wave.png and /dev/null differ diff --git a/abipy/gui/awx/images/wfk.png b/abipy/gui/awx/images/wfk.png deleted file mode 100644 index 530b2bf15..000000000 Binary files a/abipy/gui/awx/images/wfk.png and /dev/null differ diff --git a/abipy/gui/awx/panels.py b/abipy/gui/awx/panels.py deleted file mode 100644 index 7f212db0e..000000000 --- a/abipy/gui/awx/panels.py +++ /dev/null @@ -1,609 +0,0 @@ -"""Collections on controls.""" -from __future__ import print_function, division - -import wx -import collections -import numpy as np - -from monty.collections import AttrDict - -__all__ = [ - "LinspaceControl", - "ArangeControl", - "IntervalControl", - "RowMultiCtrl", - "TableMultiCtrl", - "ListCtrlFromTable", - "FoldPanelMgr", -] - - -class LinspaceControl(wx.Panel): - """ - This control merges two `SpinCtrlDouble` and a `SpinCtrl` to allow - the user to specify a range using the `numpy.linspace` syntax. - """ - # Default parameters passed to SpinCtrl and SpinCtrlDouble. - SPIN_DEFAULTS = dict(value=str(50), min=0, max=10000, initial=0) - - SPIN_DOUBLE_DEFAULTS = dict(value=str(0.0), min=0, max=10000, initial=0, inc=1) - - def __init__(self, parent, start=None, stop=None, num=1, **kwargs): - """ - value (string) Default value (as text). - min (float) Minimal value. - max (float) Maximal value. - initial (float) Initial value. - inc (float) Increment value. - """ - super(LinspaceControl, self).__init__(parent, id=-1, **kwargs) - - text_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - ctrl_opts = text_opts - - main_sizer = wx.BoxSizer(wx.HORIZONTAL) - - # start - text = wx.StaticText(self, -1, "Start:") - text.Wrap(-1) - text.SetToolTipString("The starting value of the sequence.") - - p = self.SPIN_DOUBLE_DEFAULTS.copy() - if start is not None: - p["value"] = str(start) - - self.start_ctrl = wx.SpinCtrlDouble(self, -1, **p) - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.start_ctrl, **ctrl_opts) - - # stop - text = wx.StaticText(self, -1, "Stop:") - text.Wrap(-1) - text.SetToolTipString("The end value of the sequence") - - p = self.SPIN_DOUBLE_DEFAULTS.copy() - if stop is not None: - p["value"] = str(stop) - - self.stop_ctrl = wx.SpinCtrlDouble(self, -1, **p) - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.stop_ctrl, **ctrl_opts) - - # num - text = wx.StaticText(self, -1, "Num:") - text.Wrap(-1) - text.SetToolTipString("Number of samples to generate.") - - p = self.SPIN_DEFAULTS.copy() - if num is not None: - p["value"] = str(num) - - self.num_ctrl = wx.SpinCtrl(self, -1, **p) - # FIXME: - # There's a problem since the text entered in the SpinCtrl is processed - # only when the widget looses focus. I tried the solution discussed at - # https://groups.google.com/forum/#!topic/wxpython-users/Gud8PI6n-4E - # but it didn't work on my Mac - #txtctrl = self.num_ctrl.GetChildren[0] - #txtctrl.WindowStyle |= wx.TE_PROCESS_ENTER - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.num_ctrl, **ctrl_opts) - - self.SetSizerAndFit(main_sizer) - - def getValues(self): - """Returns the numpy array built with numpy.linspace.""" - # FIXME Values are not updated if I edit the string in the SpinCtrl - p = dict(start=self.start_ctrl.GetValue(), - stop=self.stop_ctrl.GetValue(), - num=self.num_ctrl.GetValue()) - - return np.linspace(**p) - - -class ArangeControl(wx.Panel): - """ - This control merges three `SpinCtrlDouble` controls to allow - the user to specify a range using the `numpy.arange` syntax. - """ - # Default parameters passed to SpinCtrlDouble. - SPIN_DOUBLE_DEFAULTS = dict(value=str(0.0), min=0, max=10000, initial=0, inc=1) - - def __init__(self, parent, start=None, stop=None, step=None, **kwargs): - """ - """ - super(ArangeControl, self).__init__(parent, id=-1, **kwargs) - - text_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - ctrl_opts = text_opts - - main_sizer = wx.BoxSizer(wx.HORIZONTAL) - - # start - text = wx.StaticText(self, -1, "Start:") - text.Wrap(-1) - text.SetToolTipString("Start of interval. The interval includes this value.") - - p = self.SPIN_DOUBLE_DEFAULTS.copy() - if start is not None: - p["value"] = str(start) - - self.start_ctrl = wx.SpinCtrlDouble(self, -1, **p) - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.start_ctrl, **ctrl_opts) - - # stop - text = wx.StaticText(self, -1, "Stop:") - text.Wrap(-1) - text.SetToolTipString("""\ -End of interval. The interval does not include this value, except -in some cases where `step` is not an integer and floating point round-off affects the length of `out`.""") - - p = self.SPIN_DOUBLE_DEFAULTS.copy() - if stop is not None: - p["value"] = str(stop) - - self.stop_ctrl = wx.SpinCtrlDouble(self, -1, **p) - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.stop_ctrl, **ctrl_opts) - - # step - text = wx.StaticText(self, -1, "Step:") - text.Wrap(-1) - text.SetToolTipString("""\ -Spacing between values. For any output `out`, this is the distance between two adjacent values, out[i+1] - out[i].""") - - p = self.SPIN_DOUBLE_DEFAULTS.copy() - if step is not None: - p["value"] = str(step) - - self.step_ctrl = wx.SpinCtrlDouble(self, -1, **p) - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.step_ctrl, **ctrl_opts) - - self.SetSizerAndFit(main_sizer) - - def getValues(self): - """Returns the numpy array built with numpy.linspace.""" - p = dict(start=self.start_ctrl.GetValue(), - stop=self.stop_ctrl.GetValue(), - step=self.step_ctrl.GetValue()) - - return np.arange(**p) - - -class IntervalControl(wx.Panel): - """ - This control merges two `SpinCtrlDouble` controls, a `SpinCtrl` and a combo box - to allow the user to specify a numerical interval - """ - # Default parameters passed to SpinCtrl and SpinCtrlDouble. - SPIN_DEFAULTS = dict(value=str(50), min=0, max=10000, initial=0) - - SPIN_DOUBLE_DEFAULTS = dict(value=str(0.0), min=0, max=10000, initial=0, inc=0.1) - - def __init__(self, parent, start, step, num=5, choices=None, **kwargs): - """ - Args: - start: Initial value - step: Step used to generate the mesh - num: Number of points - """ - super(IntervalControl, self).__init__(parent, id=-1, **kwargs) - - text_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - ctrl_opts = text_opts - - main_sizer = wx.BoxSizer(wx.HORIZONTAL) - - # start - text = wx.StaticText(self, -1, "Start:") - text.Wrap(-1) - text.SetToolTipString("Start of interval. The interval includes this value.") - - p = self.SPIN_DOUBLE_DEFAULTS.copy() - p["value"] = str(start) - - self.start_ctrl = wx.SpinCtrlDouble(self, -1, **p) - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.start_ctrl, **ctrl_opts) - - # step - text = wx.StaticText(self, -1, "Step:") - text.Wrap(-1) - text.SetToolTipString("""\ -Spacing between values. For any output `out`, this is the distance between two adjacent values, out[i+1] - out[i].""") - - p = self.SPIN_DOUBLE_DEFAULTS.copy() - p["value"] = str(step) - - self.step_ctrl = wx.SpinCtrlDouble(self, -1, **p) - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.step_ctrl, **ctrl_opts) - - # num - text = wx.StaticText(self, -1, "Num:") - text.Wrap(-1) - text.SetToolTipString("Number of samples to generate.") - - p = self.SPIN_DEFAULTS.copy() - if num is not None: - p["value"] = str(num) - - self.num_ctrl = wx.SpinCtrl(self, -1, **p) - # FIXME: - # There's a problem since the text entered in the SpinCtrl is processed - # only when the widget looses focus. I tried the solution discussed at - # https://groups.google.com/forum/#!topic/wxpython-users/Gud8PI6n-4E - # but it didn't work on my Mac - #txtctrl = self.num_ctrl.GetChildren[0] - #txtctrl.WindowStyle |= wx.TE_PROCESS_ENTER - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.num_ctrl, **ctrl_opts) - - # Combo box to select the interval type. - text = wx.StaticText(self, -1, "Interval type:") - text.SetToolTipString("""\ -Select the interval type: -centered if values are centered on start, -> if the lower bound of the interval is start, < if the uppper bound is start.""") - - if choices is None: choices = ["centered", ">", "<"] - self.interval_type = wx.ComboBox( - self, id=-1, name='Interval type type', choices=choices, value=choices[0], style=wx.CB_READONLY) - - main_sizer.Add(text, **text_opts) - main_sizer.Add(self.interval_type, **ctrl_opts) - - self.SetSizerAndFit(main_sizer) - - def getValues(self): - """Returns a numpy array with the interval.""" - start = self.start_ctrl.GetValue() - step = self.step_ctrl.GetValue() - num = self.num_ctrl.GetValue() - int_type = self.interval_type.GetValue() - - assert num > 0 - if num == 1: - return np.array(start) - - if int_type in [">", "<"]: - sign = 1 if int_type == ">" else -1 - values = [start + i * sign * step for i in range(num)] - if int_type == "<": - values.reverse() - - elif int_type == "centered": - v_left = [start - i * step for i in range(1, num)] - v_left.reverse() - v_right = [start + i * step for i in range(num)] - values = v_left + v_right - - else: - raise ValueError("Wrong int_type %s" % int_type) - - #print("values", values) - return np.array(values) - - -class RowMultiCtrl(wx.Panel): - """A panel with control widgets for integer, floats, ... placed on a row.""" - # Default parameters passed to SpinCtrl and SpinCtrlDouble. - SPIN_DEFAULTS = dict(value="0", min=0, max=10000, initial=1) - - SPIN_DOUBLE_DEFAULTS = dict(value="0.0", min=-10000, max=10000, initial=0.0, inc=0.1) - - def __init__(self, parent, ctrl_params): - """ - Args: - ctrl_params: - List whose items are in the form (label: params) - where label is the name of the Spin button and - and params is a dictionary with the arguments used - to build the controller. Available keys are listed below. - Note that dtype must be specified. - - =========== ============================================================ - dtype "f" for floats, "i" for integers, "cbox" for combo box - tooltip tooltip of the controller - choices list of possible choices (used if dtype == cbox, mandatory - style used if dtype == "cbox" - =========== ============================================================ - - Example: - RowMultiCtrl(parent, ctrl_params=[ - ("I'm an integer", dict(dtype="i", value="-1", tooltip="hello integer)), - ("I'm a float", dict(dtype="f", value=str(1/3.))), - ]) - """ - super(RowMultiCtrl, self).__init__(parent, -1) - - # Accepts lists or tuples as well. - if isinstance(ctrl_params, (list, tuple)): - ctrl_params = collections.OrderedDict(ctrl_params) - - self.ctrl_params = ctrl_params - self.ctrls = collections.OrderedDict() - - self.main_sizer = main_sizer = wx.BoxSizer(wx.HORIZONTAL) - - for label, params in ctrl_params.items(): - params = AttrDict(**params) - - dtype = params.pop("dtype", None) - if dtype is None: - raise ValueError("dtype must be specified") - - txt = wx.StaticText(self, -1, label) - txt.Wrap(-1) - - # Set the tooltip - tooltip = params.get("tooltip", None) - if tooltip is not None: - txt.SetToolTipString(tooltip) - - # Create the controller and save it in self.ctrls - if dtype == "f": - # Initialize default values then update them with the values in params. - opts = self.SPIN_DOUBLE_DEFAULTS.copy() - for k in opts: - if k in params: - opts[k] = params[k] - - # Make sure value is a string and create the Ctrl - opts["value"] = str(opts["value"]) - ctrl = wx.SpinCtrlDouble(self, id=-1, **opts) - - elif dtype == "i": - # Initialize default values then update them with the values in params. - opts = self.SPIN_DEFAULTS.copy() - for k in opts: - if k in params: - opts[k] = params[k] - - # Make sure value is a string and create the Ctrl - opts["value"] = str(opts["value"]) - ctrl = wx.SpinCtrl(self, id=-1, **opts) - - elif dtype == "cbox": - # Combo box - if not hasattr(params, "choices"): - raise ValueError("choices must be specified if dtype == cbox") - choices = params.choices - ctrl = wx.ComboBox(self, id=-1, choices=choices, value=choices[0], - style=params.get("style", wx.CB_READONLY)) - else: - raise ValueError("Wrong dtype %s" % str(dtype)) - - self.ctrls[label] = ctrl - - hsizer = wx.BoxSizer(wx.HORIZONTAL) - hsizer.Add(txt, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - hsizer.Add(ctrl, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - main_sizer.Add(hsizer) - - self.SetSizerAndFit(main_sizer) - - def GetParams(self): - """Return the parameters selected by the user in a `OrderedDict`""" - tuples = [(label, ctrl.GetValue()) for label, ctrl in self.ctrls.items()] - return collections.OrderedDict(tuples) - - def SetParams(self, d): - """ - Set the value of the controllers from a dictionary - Returns the difference between the number of controllers - and the number of keys in kwargs that have been set - """ - for k, v in d.items(): - self.ctrls[k].SetValue(v) - - -class TableMultiCtrl(wx.Panel): - """ - A panel with a table of control widgets for integer, floats, .... - """ - def __init__(self, parent, nrows, ctrls, rowmctrl_class=None): - """ - Args: - nrows: - Number of rows - ctrls: - List whose items are in the form (dtype: param). See RowMultiCtrl - rowmctrl_class: - Subclass of RowMultiCtrl used to customize the behaviour of the - widget (optional) - """ - super(TableMultiCtrl, self).__init__(parent, -1) - - # Allow the user to customize RowMultiCtrl - self.rowmctrl_class = RowMultiCtrl if rowmctrl_class is None else rowmctrl_class - - self.main_sizer = wx.BoxSizer(wx.VERTICAL) - - self.ctrl_list, self.ctrls = [], ctrls - for row in range(nrows): - rowmc = self.rowmctrl_class(self, ctrls) - self.main_sizer.Add(rowmc, 1, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) - self.ctrl_list.append(rowmc) - - self.SetSizerAndFit(self.main_sizer) - - def __getitem__(self, item): - return self.ctrl_list.__getitem__(item) - - def __iter__(self): - return self.ctrl_list.__iter__() - - def __len__(self): - return len(self.ctrl_list) - - def removeRow(self, index=-1): - """Remove row with the give index (default: last row).""" - if index == -1: index = len(self) - 1 - if index >= len(self) or len(self) == 0: return - #print("removing row with index: %s/%s" % (index, len(self))) - - self.main_sizer.Hide(index) - self.main_sizer.Remove(index) - self.ctrl_list.pop(index) - self.main_sizer.Layout() - - def appendRow(self): - """Add a new row.""" - rowmc = self.rowmctrl_class(self, self.ctrls) - self.main_sizer.Add(rowmc, 1, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL) - self.ctrl_list.append(rowmc) - self.main_sizer.Layout() - - def GetParams(self): - """Return the parameters selected by the user in a list of `AttrDict` dictionary""" - olist = [] - for row in self.ctrl_list: - olist.append(row.GetParams()) - - return olist - - def SetParams(self, ilist): - """ - Set the value of the controllers from a list of dictionaries - """ - assert len(ilist) == len(self.ctrl_list) - for i, d in enumerate(ilist): - ctrl = self.ctrl_list[i] - ctrl.SetParams(d) - - -import wx.lib.mixins.listctrl as listmix -from abipy.gui.awx.core import get_width_height - - -class ListCtrlFromTable(wx.ListCtrl, listmix.ColumnSorterMixin, listmix.ListCtrlAutoWidthMixin): - """ - This ListCtrl displays a list of strings. Support column sorting. - """ - def __init__(self, parent, table, **kwargs): - """ - Args: - parent: - Parent window. - table: - Table of strings (List of lists). The first item contains the names of the columns. - kwargs: - enumrows: - If True, the first column will contain the row index (default) - """ - enumrows = kwargs.pop("enumrows", True) - super(ListCtrlFromTable, self).__init__(parent, id=-1, style=wx.LC_REPORT | wx.BORDER_SUNKEN, **kwargs) - - # Make sure we have a list of strings - for i, row in enumerate(table): - table[i] = map(str, row) - - columns = table[0] - if enumrows: - columns = ["#"] + columns - - for (index, col) in enumerate(columns): - self.InsertColumn(index, col) - - # Used to store the Max width in pixels for the data in the column. - column_widths = [get_width_height(self, s)[0] for s in columns] - - # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py - self.itemDataMap = {} - - for (index, entry) in enumerate(table[1:]): - if enumrows: - entry = [str(index)] + entry - self.Append(entry) - self.itemDataMap[index] = entry - self.SetItemData(index, index) - - w = [get_width_height(self, s)[0] for s in entry] - column_widths = map(max, zip(w, column_widths)) - - for (index, col) in enumerate(columns): - self.SetColumnWidth(index, column_widths[index]) - - # Now that the list exists we can init the other base class, see wx/lib/mixins/listctrl.py - listmix.ColumnSorterMixin.__init__(self, len(columns)) - listmix.ListCtrlAutoWidthMixin.__init__(self) - - def GetListCtrl(self): - """Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py""" - return self - - -import wx.lib.foldpanelbar as foldpanel - -class FoldPanelMgr(foldpanel.FoldPanelBar): - """ - Fold panel that manages a collection of Panels - - The FoldPanelBar is a custom container class that allows multiple controls - to be grouped together into FoldPanelItem controls that allow them to be expanded - or contracted by clicking on its CaptionBar. - The FoldPanelBar doesn't work with layouts based on a Sizer and as such its API can get a little cumbersome, - because it requires you to add each control one by one and set its layout by using various flags. - This recipe shows how to create a custom FoldPanelBar that works with Panel objects. - This class will allow for you to modularize your code into Panel classes and then just add them to the FoldPanelBar - instead of directly adding everything to the FoldPanelBar itself. - """ - def __init__(self, parent, *args, **kwargs): - super(FoldPanelMgr, self).__init__(parent, *args, **kwargs) - - def addPanel(self, pclass, title="", collapsed=False): - """ - Add a panel to the manager - @param pclass: Class constructor (callable) - @keyword title: foldpanel title - @keyword collapsed: start with it collapsed @return: pclass instance - """ - fpitem = self.AddFoldPanel(title, collapsed=collapsed) - wnd = pclass(fpitem) - best = wnd.GetBestSize() - wnd.SetSize(best) - self.AddFoldPanelWindow(fpitem, wnd) - - return wnd - - -if __name__ == "__main__": - app = wx.App() - frame = wx.Frame(None) - - #table = [["ciao", "values"], [1,2], ["3", "4"]] - #ctrl = ListCtrlFromTable(frame, table) - - #panel = LinspaceControl(frame) - #panel = ArangeControl(frame, start=10, stop=15, step=1) - - #panel = IntervalControl(frame, start=10, step=1, num=2) - - #panel = RowMultiCtrl(frame, [ - # ("hello", dict(dtype="f", tooltip="Tooltip for hello", value=1/3.0)), - # ("integer", dict(dtype="i")), - # ("combo", dict(dtype="cbox", choices=["default", "another"])), - #]) - - panel = TableMultiCtrl(frame, 1, [ - ("hello", dict(dtype="f", tooltip="Tooltip for hello")), - ("integer", dict(dtype="i", value=-1)), - ]) - panel.appendRow() - panel.removeRow() - - frame.Show() - app.MainLoop() diff --git a/abipy/gui/awx/threads.py b/abipy/gui/awx/threads.py deleted file mode 100644 index b2db3f400..000000000 --- a/abipy/gui/awx/threads.py +++ /dev/null @@ -1,70 +0,0 @@ -"""Inspired to http://wiki.wxpython.org/LongRunningTasks.""" -from __future__ import print_function, division - -import time -import wx - -from threading import Thread - -__all__ = [ -"WorkerThread", -] - -# Define notification event for thread completion -EVT_THREAD_RESULT_ID = wx.NewId() - -def EVT_THREAD_RESULT(win, func): - """Define Thread_Result Event.""" - win.Connect(-1, -1, EVT_THREAD_RESULT_ID, func) - - -class ThreadResultEvent(wx.PyEvent): - """Simple event to carry arbitrary result data.""" - - def __init__(self, **data): - """Init Result Event.""" - wx.PyEvent.__init__(self) - self.SetEventType(EVT_THREAD_RESULT_ID) - self.data = data - - -class WorkerThread(Thread): - """Worker Thread Class that executes processing.""" - - def __init__(self, notify_window, group=None, target=None, name=None, *args, **kwargs): - """Init Worker Thread Class.""" - super(WorkerThread,self).__init__(group=group, target=target, name=name, args=args, kwargs=kwargs) - - self._notify_window = notify_window - self._want_abort = 0 - - def start(self): - """Start Worker Thread.""" - super(WorkerThread, self).start() - - def run(self): - """Run Worker Thread.""" - # This is the code executing in the new thread. Simulation of - # a long process (well, 10s here) as a simple loop - you will - # need to structure your processing so that you periodically - # peek at the abort variable - retcode = super(WorkerThread, self).run() - - #while True: - # time.sleep(1) - # if self._want_abort: - # # Use a result of None to acknowledge the abort (of - # # course you can use whatever you'd like or even a separate event type) - # wx.PostEvent(self._notify_window, ThreadResultEvent(retcode="abort")) - # return - - # Here's where the result would be returned (this is an - # example fixed result of the number 10, but it could be any Python object) - wx.PostEvent(self._notify_window, ThreadResultEvent(retcode=retcode)) - return retcode - - def abort(self): - """Abort worker thread.""" - # Method for use by main thread to signal an abort - self._want_abort = 1 - diff --git a/abipy/gui/awx/utils.py b/abipy/gui/awx/utils.py deleted file mode 100755 index e9f93778f..000000000 --- a/abipy/gui/awx/utils.py +++ /dev/null @@ -1,112 +0,0 @@ -""" -Utilities and helper functions. -""" -from __future__ import division, print_function - -import wx - -__all__ = [ - -] - -def getApplicationConfigDirectory(): - """Returns the directory for application configuration information.""" - app = getApplication() - return app.getConfigDirectory() - - -def getApplicationConfiguration(): - """Returns the application configuration object.""" - app = getApplication() - return app.getConfiguration() - - -def beautifySize(size): - """Returns a string representing the size in bytes in a more human readable way.""" - if size / 1073741824: - return "%(size)0.2f GBytes" % {'size': (float(size) / 1073741824.0)} - elif size / 1048576: - return "%(size)0.2f MBytes" % {'size': (float(size) / 1048576.0)} - elif size / 1024: - return "%(size)0.2f KBytes" % {'size': (float(size) / 1024.0)} - else: - return "%(size)s Bytes" % {'size': size} - - -def addHorizontalSpaceTool(toolbar, width): - """Adds horizontal space in a portable manner.""" - space = wx.StaticText(toolbar, -1, "") - space.SetSize((width, -1)) - toolbar.AddControl(space) - - -def addLineSeparator(toolbar, height): - """Adds a line separator to a toolbar.""" - addHorizontalSpaceTool(toolbar, 3) - line = wx.StaticLine(toolbar, -1, style=wx.LI_VERTICAL) - line.SetSize((-1, height)) - toolbar.AddControl(line) - addHorizontalSpaceTool(toolbar, 3) - - -def getColumnText(list, index, col): - """Gets the text from the specified column entry in a list.""" - item = list.GetItem(index, col) - return item.GetText() - - -def getSelected(list): - """Gets the selected items from a list object.""" - selected = [] - item = -1 - while 1: - item = list.GetNextItem(item, wx.LIST_NEXT_ALL, wx.LIST_STATE_SELECTED) - if item == -1: - break - selected.append(item) - return selected - - -def setListColumnAlignment(list, col, align): - """Sets the column alignment for a column in a list.""" - item_info = list.GetColumn(col) - item_info.SetAlign(align) - list.SetColumn(col, item_info) - - -def colorToTuple(color): - """Coverts a color object to a tuple RGB tuple representing the color.""" - return (color.Red(), color.Green(), color.Blue()) - - -def isStrOrUnicode(value): - """Returns true if the value is either a string or a unicode type.""" - return isinstance(value, str) or isinstance(value, unicode) - - -def is_string(s): - """True if s behaves like a string (duck typing test).""" - try: - dummy = s + " " - return True - except TypeError: - return False - - -def straceback(color=None): - """ - Returns a string with the traceback. - - Use ANSII color formatting for output in terminal if color is not None. - """ - import traceback - s = traceback.format_exc() - - if color is not None: - try: - from termcolor import colored - return colored(s, color) - except ImportError: - return s - else: - return s diff --git a/abipy/gui/baseviewer.py b/abipy/gui/baseviewer.py deleted file mode 100644 index 8493b22e2..000000000 --- a/abipy/gui/baseviewer.py +++ /dev/null @@ -1,233 +0,0 @@ -import os -import wx -import abc -import wx.lib.agw.flatnotebook as fnb -import abipy.gui.awx as awx - -from monty.string import list_strings - - -class MultiViewerFrame(awx.Frame, metaclass=abc.ABCMeta): - """ - Base class for Viewers that can handle the multiple netcdf files - of the same type. A `MultiViewerFrame` has a notebook where - each page provides tools to interact with the data stored in the netcd file - Concrete classes should provide the method that open a new file and creates - a new page (specific to the file type) that will be added to the notebook. - - Concrete classes must also define the following (class) attributes. - - .. attributes: - - VERSION: - String with the version of the visualizer e.g "0.1" - HELP_MSG: - Multi line string with a Quick help. For example a list of shortcuts - or a brief description of the usage of the GUI. - """ - def __init__(self, parent, filepaths=(), **kwargs): - """ - Args: - parent: - parent window. - filepaths: - String or list of strings with the path of the netcdf files to open - Empty tuple if no file should be opened during the initialization of the frame. - """ - super(MultiViewerFrame, self).__init__(parent, -1, title=self.codename, **kwargs) - - # This combination of options for config seems to work on my Mac. - self.config = wx.FileConfig(appName=self.codename, localFilename=self.codename + ".ini", - style=wx.CONFIG_USE_LOCAL_FILE) - - # Build menu, toolbar and status bar. - self.makeMenu() - self.makeToolBar() - self.statusbar = self.CreateStatusBar() - - # Open netcdf files. - filepaths, exceptions = list_strings(filepaths), [] - filepaths = map(os.path.abspath, filepaths) - - # Create the notebook (each file will have its own tab). - panel = wx.Panel(self, -1) - - try: - style = fnb.FNB_NO_X_BUTTON | fnb.FNB_NAV_BUTTONS_WHEN_NEEDED - except AttributeError: - style = fnb.FNB_NO_X_BUTTON - - self.notebook = fnb.FlatNotebook(panel, -1, style=style) - - for path in filepaths: - self.read_file(path) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(self.notebook, 1, wx.EXPAND, 5) - panel.SetSizerAndFit(sizer) - - @abc.abstractproperty - def codename(self): - """The name of the viewer.""" - - @property - def active_tab(self): - """Returns the active tab. None if notebook is empty.""" - return self.notebook.GetCurrentPage() - - def makeMenu(self): - """ - Method of the base class that provides a base menu - that can be extended by the subclass. - """ - menu_bar = wx.MenuBar() - - file_menu = wx.Menu() - file_menu.Append(wx.ID_OPEN, "&Open", help="Open an existing file in a new tab") - file_menu.Append(wx.ID_CLOSE, "&Close", help="Close the file associated to the active tab") - file_menu.Append(wx.ID_EXIT, "&Quit", help="Exit the application") - - file_history = self.file_history = wx.FileHistory(8) - file_history.Load(self.config) - recent = wx.Menu() - file_history.UseMenu(recent) - file_history.AddFilesToMenu() - file_menu.AppendMenu(-1, "&Recent Files", recent) - self.Bind(wx.EVT_MENU_RANGE, self.OnFileHistory, id=wx.ID_FILE1, id2=wx.ID_FILE9) - menu_bar.Append(file_menu, "File") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (wx.ID_OPEN, self.OnOpen), - (wx.ID_CLOSE, self.OnClose), - (wx.ID_EXIT, self.OnExit), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu_bar - - def makeHelpMenu(self): - """ - Method of the base class that provides a base help menu - that can be extended by the subclass. - """ - help_menu = wx.Menu() - - self.ID_HELP_QUICKREF = wx.NewId() - help_menu.Append(self.ID_HELP_QUICKREF, "Quick Reference ", help="Quick reference for " + self.codename) - help_menu.Append(wx.ID_ABOUT, "About " + self.codename, help="Info on the application") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_HELP_QUICKREF, self.onQuickRef), - (wx.ID_ABOUT, self.OnAboutBox), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return help_menu - - @abc.abstractmethod - def makeToolBar(self): - """To be provided by the concrete class.""" - - @abc.abstractmethod - def addFileTab(self, parent, filepath): - """ - This method must be provided by the subclass. - It receives a string with the file path, opens the file - and adds a new tab to the notebook. - - Example:: - - wfk = abiopen(filepath) - tab = WfkFileTab(self.notebook, wfk) - self.notebook.AddPage(tab, os.path.basename(filepath)) - """ - - def read_file(self, filepath): - """Open netcdf file, create new tab and save the file in the history.""" - self.statusbar.PushStatusText("Reading %s" % filepath) - try: - self.addFileTab(self, filepath) - # don't know why but this does not work! - self.notebook.Refresh() - self.notebook.SetSelection(self.notebook.GetPageCount()) - self.AddFileToHistory(filepath) - except: - awx.showErrorMessage(self) - - def OnOpen(self, event): - """Open FileDialog to allow the user to select a file.""" - # intercept possible problems when determining the current directory (e.g. it has been deleted) - try: - def_dir = os.getcwd() - except OSError: - def_dir = os.path.expanduser('~') - # Show the dialog and retrieve the user response. - # If it is the OK response, process the data. - dialog = wx.FileDialog(self, message="Choose a netcdf file", defaultDir=def_dir, - wildcard="Netcdf files (*.nc)|*.nc", - style=wx.OPEN | wx.CHANGE_DIR) - - if dialog.ShowModal() == wx.ID_CANCEL: return - self.read_file(dialog.GetPath()) - - def OnClose(self, event): - """ - Remove the active tab from the notebook and - close the corresponding netcdf file, - """ - notebook = self.notebook - if notebook.GetPageCount() == 0: return - idx = notebook.GetSelection() - if idx == -1: return None - - # Close the file - tab = notebook.GetPage(idx) - - # Remove tab. - notebook.DeletePage(idx) - notebook.Refresh() - #notebook.SendSizeEvent() - - def OnExit(self, event): - """Exits the application.""" - # Close open netcdf files. - #try: - # for index in range(self.notebook.GetPageCount()): - # tab = self.notebook.GetPage(index) - # try: - # tab.wfk.close() - # except: - # pass - #finally: - self.Destroy() - - def OnAboutBox(self, event): - """"Info on the application.""" - awx.makeAboutBox(codename=self.codename, version=self.VERSION, - description="", developers="M. Giantomassi") - - def onQuickRef(self, event=None): - """Show a dialog with a brief description of the commands.""" - dialog = wx.MessageDialog(self, self.HELP_MSG, self.codename + " Quick Reference", - wx.OK | wx.ICON_INFORMATION) - dialog.ShowModal() - dialog.Destroy() - - def AddFileToHistory(self, filepath): - """Add the absolute filepath to the file history.""" - self.file_history.AddFileToHistory(filepath) - self.file_history.Save(self.config) - self.config.Flush() - - def OnFileHistory(self, event): - fileNum = event.GetId() - wx.ID_FILE1 - filepath = self.file_history.GetHistoryFile(fileNum) - self.read_file(filepath) diff --git a/abipy/gui/demo/demo_converter.py b/abipy/gui/demo/demo_converter.py deleted file mode 100755 index 1d7591784..000000000 --- a/abipy/gui/demo/demo_converter.py +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env python -from abipy.gui.wxapps import wxapp_converter - -wxapp_converter().MainLoop() diff --git a/abipy/gui/demo/demo_dirbrowser.py b/abipy/gui/demo/demo_dirbrowser.py deleted file mode 100755 index cdb404ea8..000000000 --- a/abipy/gui/demo/demo_dirbrowser.py +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env python -import os -import abipy -import abipy.data - -import abipy.gui.wxapps as wxapps - -wxapps.wxapp_dirbrowser(abipy.data.dirpath).MainLoop() - diff --git a/abipy/gui/demo/demo_fftprof.py b/abipy/gui/demo/demo_fftprof.py deleted file mode 100755 index f904c946b..000000000 --- a/abipy/gui/demo/demo_fftprof.py +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env python -import abipy.gui.wxapps as wxapps - -wxapps.wxapp_fftprof().MainLoop() diff --git a/abipy/gui/demo/demo_gsrviewer.py b/abipy/gui/demo/demo_gsrviewer.py deleted file mode 100755 index 13018d42e..000000000 --- a/abipy/gui/demo/demo_gsrviewer.py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env python -import abipy.data as abidata - -from abipy.gui.wxapps import wxapp_gsrviewer - -gsr_filepath = abidata.ref_file("si_nscf_GSR.nc") - -wxapp_gsrviewer(gsr_filepath).MainLoop() diff --git a/abipy/gui/demo/demo_kpoints.py b/abipy/gui/demo/demo_kpoints.py deleted file mode 100755 index 5497d428c..000000000 --- a/abipy/gui/demo/demo_kpoints.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env python -import wx - -import abipy.data as abidata - -from abipy.abilab import abiopen -from abipy.gui.kpoints import KpointsPanel - -gsr = abiopen(abidata.ref_file("si_nscf_GSR.nc")) - -app = wx.App() -frame = wx.Frame(None, -1) -KpointsPanel(frame, gsr.structure, gsr.kpoints) -app.SetTopWindow(frame) -frame.Show() -app.MainLoop() -gsr.close() diff --git a/abipy/gui/demo/demo_listbrowser.py b/abipy/gui/demo/demo_listbrowser.py deleted file mode 100755 index ba2e9a031..000000000 --- a/abipy/gui/demo/demo_listbrowser.py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env python -import abipy -import abipy.data - -import abipy.gui.wxapps as wxapps - -wxapps.wxapp_listbrowser(dirpaths=abipy.data.dirpath).MainLoop() - diff --git a/abipy/gui/demo/demo_mdfviewer.py b/abipy/gui/demo/demo_mdfviewer.py deleted file mode 100755 index d64aee8be..000000000 --- a/abipy/gui/demo/demo_mdfviewer.py +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env python -import abipy.data as abidata -from abipy.gui.wxapps import wxapp_mdfviewer - -mdf_filenames = abidata.ref_file("tbs_4o_DS2_MDF.nc") - -wxapp_mdfviewer(mdf_filenames).MainLoop() diff --git a/abipy/gui/demo/demo_oncvguy.py b/abipy/gui/demo/demo_oncvguy.py deleted file mode 100755 index 976cd659a..000000000 --- a/abipy/gui/demo/demo_oncvguy.py +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env python -#from abipy.gui.wxapps import wxapp_oncvpsp -from abipy.gui.oncvgui import wxapp_oncvpsp - -wxapp_oncvpsp().MainLoop() diff --git a/abipy/gui/demo/demo_periodic_table.py b/abipy/gui/demo/demo_periodic_table.py deleted file mode 100755 index 15b8a2f0f..000000000 --- a/abipy/gui/demo/demo_periodic_table.py +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env python -import wx -from abipy.gui.awx.elements_gui import WxPeriodicTable - -app = wx.App() -frame = WxPeriodicTable(None) -app.SetTopWindow(frame) -frame.Show() -app.MainLoop() diff --git a/abipy/gui/demo/demo_sigresviewer.py b/abipy/gui/demo/demo_sigresviewer.py deleted file mode 100755 index e11d0c5c9..000000000 --- a/abipy/gui/demo/demo_sigresviewer.py +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env python -import abipy -import abipy.data - -from abipy.gui.wxapps import wxapp_sigresviewer - -app = wxapp_sigresviewer(abipy.data.ref_file("tgw1_9o_DS4_SIGRES.nc")) -app.MainLoop() diff --git a/abipy/gui/demo/demo_wfkviewer.py b/abipy/gui/demo/demo_wfkviewer.py deleted file mode 100755 index 36c1a7b96..000000000 --- a/abipy/gui/demo/demo_wfkviewer.py +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env python -import os -import abipy.data as abidata - -from abipy.gui.wxapps import wxapp_wfkviewer - -wfk_filename = abidata.WFK_NCFILES[0] - -wxapp_wfkviewer(wfk_filename).MainLoop() diff --git a/abipy/gui/demo/demo_wxncview.py b/abipy/gui/demo/demo_wxncview.py deleted file mode 100755 index 01fa96494..000000000 --- a/abipy/gui/demo/demo_wxncview.py +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python -import abipy.data as abidata - -from abipy.gui.wxapps import wxapp_ncview - -wxapp_ncview(filepaths=abidata.WFK_NCFILES[0]).MainLoop() diff --git a/abipy/gui/demo/rundemos.py b/abipy/gui/demo/rundemos.py deleted file mode 100755 index cade824d7..000000000 --- a/abipy/gui/demo/rundemos.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function - -import sys -import os -import time -import argparse - -from subprocess import call, Popen - -def str_examples(): - examples = ( - "Usage example:\n" - "run.py => Run all demo scripts.\n" - "run.py -m automatic -t 7 => Run all tests, close the demo after 7 seconds.\n" - ) - return examples - - -def show_examples_and_exit(err_msg=None, error_code=1): - """Display the usage of the script.""" - sys.stderr.write(str_examples()) - if err_msg: - sys.stderr.write("Fatal Error\n" + err_msg + "\n") - sys.exit(error_code) - - -def main(): - parser = argparse.ArgumentParser(epilog=str_examples(),formatter_class=argparse.RawDescriptionHelpFormatter) - - parser.add_argument('-m', '--mode', type=str, default="automatic", - help="execution mode. Either s (sequential) or a (automatic)") - - parser.add_argument('-t', '--time', type=float, default=5, - help="wait time seconds before running next demo.") - - options = parser.parse_args() - - # Find scripts. - dirpath = os.path.dirname(__file__) - scripts = [] - for fname in os.listdir(dirpath): - if fname.endswith(".py") and fname.startswith("demo_"): - scripts.append(os.path.join(dirpath, fname)) - - python = "pythonw" - python = "python.app" - print("Using python:", python) - - # Run scripts depending on mode. - if options.mode in ["s", "sequential"]: - for script in scripts: - retcode = call([python, script]) - if retcode != 0: break - - elif options.mode in ["a", "automatic"]: - for script in scripts: - p = Popen([python, script]) - time.sleep(options.time) - p.kill() - retcode = 0 - - elif options.mode == "screenshot": - processes = [] - for script in scripts: - p = Popen([python, script]) - processes.append(p) - - time.sleep(options.time) - for p in processes: - p.kill() - retcode = 0 - - else: - show_examples_and_exit(err_msg="Wrong value for mode: %s" % options.mode) - - return retcode - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/abipy/gui/editor.py b/abipy/gui/editor.py deleted file mode 100644 index 527708a0e..000000000 --- a/abipy/gui/editor.py +++ /dev/null @@ -1,196 +0,0 @@ -"""Frames for text visualization.""" - -import os -import wx -import tempfile -import wx.lib.agw.flatnotebook as fnb -import abipy.gui.awx as awx - -from monty.fnmatch import WildCard -from wx.py.editor import EditorFrame, EditorNotebookFrame - -__all__ = [ - "SimpleTextViewer", - "TextNotebookFrame", -] - - -def add_size(kwargs, size=(800, 600)): - """Add size to kwargs if not present.""" - if "size" not in kwargs: - kwargs["size"] = size - - return kwargs - - -class SimpleTextViewer(awx.Frame): - """Very simple frame that displays text (string ) in read-only mode.""" - def __init__(self, parent, text, **kwargs): - super(SimpleTextViewer, self).__init__(parent, **add_size(kwargs)) - wx.TextCtrl(self, -1, text, style=wx.TE_MULTILINE | wx.TE_LEFT | wx.TE_READONLY) - - -class MyEditorFrame(EditorFrame): - def __init__(self, parent, filename, **kwargs): - super(MyEditorFrame, self).__init__(parent, filename=filename, **add_size(kwargs)) - - @classmethod - def from_text(cls, parent, text, **kwargs): - """Hack so that we can open a string in the Editor.""" - fd, filename = tempfile.mkstemp(text=True) - - with open(filename, "w") as fh: - fh.write(text) - - return cls(parent, filename, **kwargs) - - -class TextNotebookFrame(awx.Frame): - """ - This frame receives a list of strings and displays them in a notebook (read-only mode) - """ - def __init__(self, parent, text_list, page_names, num_dirs=2, **kwargs): - """ - Args: - parent: - Parent Widget. - text_list: - List of strings. Each string is displayed in its own page in the notebook. - page_names: - List of strings giving the name of the tab for each string in text_list. - num_dirs: - Maximum number of directories that will be shown in the tab. - """ - super(TextNotebookFrame, self).__init__(parent, **add_size(kwargs)) - - # Add the pages to the notebook with the name to show on the tab - if not isinstance(text_list, (list, tuple)): - text_list = [text_list] - - if not isinstance(page_names, (list, tuple)): - page_names = [page_names] - - assert len(page_names) == len(text_list) - - # Here we create a panel and a notebook on the panel - nb_panel = awx.Panel(self) - - try: - style = fnb.FNB_X_ON_TAB | fnb.FNB_NAV_BUTTONS_WHEN_NEEDED - except AttributeError: - style = fnb.FNB_X_ON_TAB - - nb = fnb.FlatNotebook(nb_panel, style=style) - - for page_name, text in zip(page_names, text_list): - page = wx.TextCtrl(nb, -1, text, style=wx.TE_MULTILINE|wx.TE_LEFT|wx.TE_READONLY) - - if num_dirs > 0: - tokens = page_name.split(os.path.sep) - page_name = os.path.join(*tokens[-num_dirs:]) - - nb.AddPage(page, text=page_name) - - # Finally, put the notebook in a sizer for the nb_panel to manage the layout - sizer = wx.BoxSizer() - sizer.Add(nb, 1, wx.EXPAND) - - nb_panel.SetSizerAndFit(sizer) - - @classmethod - def from_files_and_dir(cls, parent, filenames=None, dirpath=None, walk=True, wildcard=""): - """ - Static constructure that reads the content of the files/directory specified in input. - - Args: - filenames: - List of files to show in the botebook. Defaults to an empty list. - dirpath: - Directory to scan for additional files. - walk: - Used only if dirpath is not None. - If True, we scan all the files contained within dirpath and - we add them to the list if their name match the regular expression - given in wildcard. - wildcard: - String with regular expressions separated by `|`. - Only the files matching one of the regular expressions will be showed. - example: wildcard='*.nc|*.txt' shows only the files whose extension is in ['nc', 'txt']. - """ - wildcard = WildCard(wildcard) - - if filenames is None: - filenames = [] - - filenames = wildcard.filter(filenames) - - if dirpath is not None: - if not walk: - filenames += wildcard.filter(os.listdir(dirpath)) - - else: - for root, dirnames, fnames in os.walk(dirpath): - for fname in fnames: - if wildcard.match(fname): - filenames.append(os.path.join(root, fname)) - - #frame = EditorNotebookFrame(parent) - #frame.notebook.DeletePage(0) - #for fname in filenames: - # frame.bufferCreate(filename=fname) - #return frame - - # Open the files and read the content in a string - text_list = [] - for fname in filenames: - with open(fname, "r") as fh: - # Sanitize strings: use "ignore" to skip invalid characters in .encode/.decode like - s = fh.read().decode("utf-8", "ignore") - text_list.append(s) - - return cls(parent, text_list, page_names=filenames) - - -def wxapp_showfiles(filenames=None, dirpath=None, walk=True, wildcard=None): - """ - Standalone applications that reads the content of the files specified - in input and show them in a notebook. - - Args: - filenames: - List of files to show in the notebook. Defaults to an empty list. - dirpath: - Directory to scan for additional files. - walk: - Used only if dirpath is not None. - If True, we scan all the files contained within dirpath and - we add them to the list if their name match the regular expression - given in wildcard. - wildcard: - String with regular expressions separated by |. - Only the files matching one of the regular expressions will be showed. - example: wildcard="*.nc|*.txt" shows only the files whose extension is in ["nc", "txt"]. - - Returns: - `wxpython` application. - """ - app = awx.App() - frame = TextNotebookFrame.from_files_and_dir(None, filenames=filenames, dirpath=dirpath, walk=walk, wildcard=wildcard) - frame.Show() - return app - - -if __name__ == "__main__": - app = awx.App() - frame = EditorNotebookFrame() - #frame = wx.Frame(None, -1) - #notebook = EditorNotebook(frame) - for filename in ["editor.py", "__init__.py"]: - frame.bufferCreate(filename=filename) - - #Editor(frame) - frame.Show() - #frame = EditorFrame() - #frame.bufferCreate(file.path) - #frame = EditorNotebookFrame(filename=file.path) - app.MainLoop() diff --git a/abipy/gui/electronswx.py b/abipy/gui/electronswx.py deleted file mode 100644 index 818c6953f..000000000 --- a/abipy/gui/electronswx.py +++ /dev/null @@ -1,532 +0,0 @@ -import os -import wx -import collections -import abipy.gui.awx as awx - -from monty.collections import AttrDict -from abipy.electrons import ElectronBands - - -def showElectronDosFrame(parent, filepath): - """ - Read the electron bands from file filepath and shows an `ElectronDosFrame`. - """ - bands = ElectronBands.from_file(filepath) - title = "File: %s" % os.path.relpath(filepath) - ElectronDosFrame(parent, bands, title=title).Show() - - -def showElectronBandsPlot(parent, filepath): - """ - Read the electron bands from file filepath and plot the bands. - """ - ebands = ElectronBands.from_file(filepath) - title = "File: %s" % os.path.relpath(filepath) - ebands.plot(title=title) - - -def showElectronJdosFrame(parent, filepath): - """ - Read the electron bands from file filepath and shows an `ElectronJdosFrame`. - """ - ebands = ElectronBands.from_file(filepath) - ElectronJdosFrame(parent, ebands).Show() - - -class DosPanel(awx.Panel): - """ - Base class defining a panel with controls for specifying the DOS parameters (step, width). - """ - DEFAULT_WIDTH = 0.2 - DEFAULT_STEP = 0.1 - - def __init__(self, parent, **kwargs): - super(DosPanel, self).__init__(parent, -1, **kwargs) - self.BuildUi() - - def BuildUi(self): - main_sizer = wx.BoxSizer(wx.HORIZONTAL) - - label = wx.StaticText(self, -1, "Broadening [eV]:") - label.Wrap(-1) - self.width_ctrl = wx.SpinCtrlDouble(self, id=-1, value=str(self.DEFAULT_WIDTH), min=self.DEFAULT_WIDTH/1000, inc=0.1) - - main_sizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - main_sizer.Add(self.width_ctrl, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - label = wx.StaticText(self, -1, "Mesh step [eV]:") - label.Wrap(-1) - self.step_ctrl = wx.SpinCtrlDouble(self, id=-1, value=str(self.DEFAULT_STEP), min=self.DEFAULT_STEP/1000, inc=0.1) - - main_sizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - main_sizer.Add(self.step_ctrl, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - self.SetSizerAndFit(main_sizer) - - def GetParams(self): - """Return the parameters for the computation of the DOS in a `AttrDict`.""" - return AttrDict( - width=float(self.width_ctrl.GetValue()), - step=float(self.step_ctrl.GetValue()), - ) - - -class PhononDosPanel(DosPanel): - """Panel for the specification of the phonon DOS parameters.""" - DEFAULT_WIDTH = 0.002 - DEFAULT_STEP = 0.001 - - -class ElectronDosPanel(DosPanel): - """Panel for the specification of the electron DOS parameters.""" - DEFAULT_WIDTH = 0.2 - DEFAULT_STEP = 0.1 - - -class ElectronDosDialog(wx.Dialog): - """Dialog that asks the user to enter the parameters for the electron DOS.""" - def __init__(self, parent, **kwargs): - if "title" not in kwargs: kwargs["title"] = "Select DOS parameters" - super(ElectronDosDialog, self).__init__(parent, -1, **kwargs) - - vbox = wx.BoxSizer(wx.VERTICAL) - - self.panel = ElectronDosPanel(self) - - hbox = wx.BoxSizer(wx.HORIZONTAL) - - ok_button = wx.Button(self, wx.ID_OK, label='Ok') - close_button = wx.Button(self, wx.ID_CANCEL, label='Cancel') - - hbox.Add(ok_button) - hbox.Add(close_button, flag=wx.LEFT, border=5) - - vbox.Add(self.panel, proportion=0, flag=wx.ALL | wx.EXPAND, border=5) - vbox.Add(hbox, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10) - - self.SetSizerAndFit(vbox) - - def GetParams(self): - """Return a parameters in a `AttrDict`.""" - return self.panel.GetParams() - - -class EbandsDosDialog(wx.Dialog): - """ - Dialog that asks the user to select two files with Ebands and Edos - and enter the parameters for the electron DOS. - """ - def __init__(self, parent, filepaths, **kwargs): - if "title" not in kwargs: kwargs["title"] = "Select paramater forEbands with DOS plot" - super(EbandsDosDialog, self).__init__(parent, -1, **kwargs) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - # Use relative paths to save space. - choices = map(os.path.relpath, filepaths) - - band_label = wx.StaticText(self, -1, "File for bands:"); band_label.Wrap(-1) - self.bandsfile_cbox = wx.ComboBox(self, id=-1, name='Bands file', choices=choices, value=choices[0], style=wx.CB_READONLY) - - hbox0 = wx.BoxSizer(wx.HORIZONTAL) - hbox0.Add(band_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - hbox0.Add(self.bandsfile_cbox) - main_sizer.Add(hbox0, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10) - - dos_label = wx.StaticText(self, -1, "File for DOS:"); dos_label.Wrap(-1) - self.dosfile_cbox = wx.ComboBox(self, id=-1, name='Bands file', choices=choices, value=choices[0], style=wx.CB_READONLY) - - hbox1 = wx.BoxSizer(wx.HORIZONTAL) - hbox1.Add(dos_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - hbox1.Add(self.dosfile_cbox) - main_sizer.Add(hbox1, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10) - - self.dos_panel = ElectronDosPanel(self) - - ok_button = wx.Button(self, wx.ID_OK, label='Ok') - close_button = wx.Button(self, wx.ID_CANCEL, label='Cancel') - - hbox2 = wx.BoxSizer(wx.HORIZONTAL) - hbox2.Add(ok_button) - hbox2.Add(close_button, flag=wx.LEFT, border=5) - - main_sizer.Add(self.dos_panel, proportion=0, flag=wx.ALL | wx.EXPAND, border=5) - main_sizer.Add(hbox2, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10) - - self.SetSizerAndFit(main_sizer) - - def getEdosParams(self): - """Return a parameters in a `AttrDict`.""" - return self.dos_panel.GetParams() - - def getBandsDosIndex(self): - """Return the index of the files for Bands and Dos selected by the user`.""" - ipath = self.bandsfile_cbox.GetSelection() - imesh = self.dosfile_cbox.GetSelection() - # Default values if no item is selected.: - if ipath == wx.NOT_FOUND: ipath = 0 - if imesh == wx.NOT_FOUND: imesh = 0 - - return ipath, imesh - -class ElectronDosFrame(awx.Frame): - """ - This frames allows the user to select the parameters and to compute the Electron DOS. - """ - def __init__(self, parent, bands, **kwargs): - """ - Args: - bands: - `ElectronBands` instance. - parent: - WX parent window. - """ - if "title" not in kwargs: - kwargs["title"] = "Electron DOS" - - if "size" not in kwargs: - kwargs["size"] = (600, 100) - - super(ElectronDosFrame, self).__init__(parent, id=-1, **kwargs) - self.bands = bands - - self.BuildUi() - - # Store PlotFrames in this list. - self._pframes = [] - - def BuildUi(self): - main_sizer = wx.BoxSizer(wx.VERTICAL) - - panel = awx.Panel(self, -1) - - self.dos_panel = ElectronDosPanel(panel) - main_sizer.Add(self.dos_panel, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - - dos_button = wx.Button(panel, -1, "Compute DOS") - self.Bind(wx.EVT_BUTTON, self.OnClick, dos_button) - - self.replot_checkbox = wx.CheckBox(panel, id=-1, label="Replot") - self.replot_checkbox.SetValue(True) - - hsizer = wx.BoxSizer(wx.HORIZONTAL) - - hsizer.Add(dos_button, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - hsizer.Add(self.replot_checkbox, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - main_sizer.Add(hsizer, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - - panel.SetSizerAndFit(main_sizer) - - def OnClick(self, event): - p = self.dos_panel.GetParams() - if p.step == 1234: - awx.tetris_game() - - try: - edos = self.bands.get_edos(step=p.step, width=p.width) - except: - awx.showErrorMessage(self) - return - - tot_dos, tot_idos = edos.dos_idos() - label = "$\sigma = %s, step = %s$" % (p.width, p.step) - - try: - from wxmplot import PlotApp, PlotFrame - except ImportError: - pass - - plotframe = None - if self.replot_checkbox.GetValue() and len(self._pframes): - plotframe = self._pframes[-1] - - if plotframe is None: - plotframe = PlotFrame(parent=self) - plotframe.plot(tot_dos.mesh, tot_dos.values, label=label, draw_legend=True) - plotframe.Show() - self._pframes.append(plotframe) - else: - plotframe.oplot(tot_dos.mesh, tot_dos.values, label=label, draw_legend=True) - - -class ElectronJdosPanel(awx.Panel): - """ - This panel allows the user to specify the parameters for the - calculation of the Electron JDOS. - """ - DEFAULT_STEP = 0.1 - DEFAULT_WIDTH = 0.2 - - def __init__(self, parent, nsppol, mband): - """ - Args: - parent: - WX parent window. - nsppol: - Number of spins. - mband: - Maximum number of bands - - """ - super(ElectronJdosPanel, self).__init__(parent, -1) - - self.nsppol = nsppol - self.mband = mband - - self.BuildUi() - - def BuildUi(self): - main_sizer = wx.BoxSizer(wx.VERTICAL) - - sz1 = wx.BoxSizer(wx.HORIZONTAL) - - spin_label = wx.StaticText(self, -1, "Spin:") - spin_label.Wrap(-1) - self.spin_cbox = wx.ComboBox(self, id=-1, choices=map(str, range(self.nsppol)), style=wx.CB_READONLY) - - sz1.Add(spin_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - sz1.Add(self.spin_cbox, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - - label = wx.StaticText(self, -1, "Broadening [eV]:") - label.Wrap(-1) - self.width_ctrl = wx.SpinCtrlDouble(self, id=-1, value=str(self.DEFAULT_WIDTH), min=self.DEFAULT_WIDTH/1000, inc=0.1) - - sz1.Add(label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - sz1.Add(self.width_ctrl, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - - label = wx.StaticText(self, -1, "Mesh step [eV]:") - label.Wrap(-1) - self.step_ctrl = wx.SpinCtrlDouble(self, id=-1, value=str(self.DEFAULT_STEP), min=self.DEFAULT_STEP/1000, inc=0.1) - - sz1.Add(label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - sz1.Add(self.step_ctrl, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - - main_sizer.Add(sz1) - - start_label = wx.StaticText(self, -1, "Start:") - start_label.Wrap(-1) - stop_label = wx.StaticText(self, -1, "Stop:") - stop_label.Wrap(-1) - - self.vstart = wx.ComboBox(self, id=-1, choices=map(str, range(self.mband))) - self.vstop = wx.ComboBox(self, id=-1, choices=map(str, range(self.mband))) - - val_sizer = wx.GridSizer(rows=2, cols=2, vgap=5, hgap=5) - val_sizer.AddMany((start_label, self.vstart)) - val_sizer.AddMany((stop_label, self.vstop)) - - val_sb = wx.StaticBox(self, label="Valence bands") - val_boxsizer = wx.StaticBoxSizer(val_sb, wx.VERTICAL) - val_boxsizer.Add(val_sizer) - - start_label = wx.StaticText(self, -1, "Start:") - start_label.Wrap(-1) - stop_label = wx.StaticText(self, -1, "Stop:") - stop_label.Wrap(-1) - - self.cstart = wx.ComboBox(self, id=-1, choices=map(str, range(self.mband))) - self.cstop = wx.ComboBox(self, id=-1, choices=map(str, range(self.mband))) - - cond_sizer = wx.GridSizer(rows=2, cols=2, vgap=5, hgap=5) - cond_sizer.AddMany((start_label, self.cstart)) - cond_sizer.AddMany((stop_label, self.cstop)) - - cond_sb = wx.StaticBox(self, label="Conduction bands") - cond_boxsizer = wx.StaticBoxSizer(cond_sb, wx.VERTICAL) - cond_boxsizer.Add(cond_sizer) - - hsizer = wx.BoxSizer(wx.HORIZONTAL) - hsizer.AddMany((val_boxsizer, cond_boxsizer)) - - main_sizer.Add(hsizer, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - self.SetSizerAndFit(main_sizer) - - def GetParams(self): - """Returns the parameter for the JDOS calculation in a `AttrDict`""" - vstart = int(self.vstart.GetValue()) - vstop = int(self.vstop.GetValue()) - vrange = range(vstart, vstop) - if vstart == vstop: vrange = vstart - - cstart = int(self.cstart.GetValue()) - cstop = int(self.cstop.GetValue()) - crange = range(cstart, cstop) - if cstart == cstop: crange = cstart - - return AttrDict( - vrange=vrange, - crange=crange, - spin=int(self.spin_cbox.GetValue()), - step=float(self.step_ctrl.GetValue()), - width=float(self.width_ctrl.GetValue()), - cumulative=True, - ) - - -class ElectronJdosDialog(wx.Dialog): - """ - Dialog that asks the user to enter the parameters for the electron JDOS. - """ - def __init__(self, parent, nsppol, mband, **kwargs): - """ - Args: - parent: - Parent window. - nsppol: - Number of spins. - mband - Maximum number of bands. - """ - super(ElectronJdosDialog, self).__init__(parent, -1, **kwargs) - - self.SetSize((250, 200)) - self.SetTitle("Select JDOS parameters") - - vbox = wx.BoxSizer(wx.VERTICAL) - - self.panel = ElectronJdosPanel(self, nsppol, mband) - - hbox = wx.BoxSizer(wx.HORIZONTAL) - - ok_button = wx.Button(self, wx.ID_OK, label='Ok') - close_button = wx.Button(self, wx.ID_CANCEL, label='Cancel') - - hbox.Add(ok_button) - hbox.Add(close_button, flag=wx.LEFT, border=5) - - vbox.Add(self.panel, proportion=1, flag=wx.ALL | wx.EXPAND, border=5) - vbox.Add(hbox, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10) - - self.SetSizerAndFit(vbox) - - def GetParams(self): - """Return a parameters in a `AttrDict`.""" - return self.panel.GetParams() - - -class ElectronJdosFrame(awx.Frame): - """ - Frame for the computation of the JDOS. - """ - def __init__(self, parent, bands, **kwargs): - """ - Args: - parent: - WX parent window. - bands: - `ElectronBands` instance. - """ - if "title" not in kwargs: - kwargs["title"] = "Electron JDOS" - - super(ElectronJdosFrame, self).__init__(parent, id=-1, **kwargs) - self.bands = bands - - self.BuildUi() - - def BuildUi(self): - self.jdos_panel = ElectronJdosPanel(self, self.bands.nsppol, self.bands.mband) - - jdos_button = wx.Button(self, -1, "Compute JDOS", (20, 100)) - self.Bind(wx.EVT_BUTTON, self.OnClick, jdos_button) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(self.jdos_panel, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5) - sizer.Add(jdos_button, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5) - - self.SetSizerAndFit(sizer) - - def OnClick(self, event): - p = self.jdos_panel.GetParams() - try: - self.bands.plot_ejdosvc(vrange=p.vrange, crange=p.crange, step=p.step, width=p.width, - cumulative=p.cumulative) - except: - awx.showErrorMessage(self) - - -class BandsCompareDialog(wx.Dialog): - """ - Dialog that asks the user to select two files with Ebands and Edos - and enter the parameters for the electron DOS. - """ - def __init__(self, parent, filepaths, **kwargs): - if "title" not in kwargs: kwargs["title"] = "Select files to compare" - super(BandsCompareDialog, self).__init__(parent, -1, **kwargs) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - static_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Files"), wx.VERTICAL) - - self.check_boxes = collections.OrderedDict() - - # Use relative paths to save space. - self.filepaths = map(os.path.relpath, filepaths) - - for path in self.filepaths: - assert path not in self.check_boxes - cbox = wx.CheckBox(self, -1, path, wx.DefaultPosition, wx.DefaultSize, 0) - cbox.SetValue(True) - static_sizer.Add(cbox, 0, wx.ALL | wx.EXPAND, 5) - self.check_boxes[path] = cbox - - main_sizer.Add(static_sizer, 1, wx.EXPAND, 5) - - # Add buttons to (select|deselect) all checkboxes. - hbox1 = wx.BoxSizer(wx.HORIZONTAL) - - all_button = wx.Button(self, -1, "Select all", wx.DefaultPosition, wx.DefaultSize, 0) - all_button.Bind(wx.EVT_BUTTON, self.OnSelectAll) - hbox1.Add(all_button, 0, wx.ALL, 5) - - deselect_button = wx.Button(self, -1, "Deselect all", wx.DefaultPosition, wx.DefaultSize, 0) - deselect_button.Bind(wx.EVT_BUTTON, self.OnDeselectAll) - hbox1.Add(deselect_button, 0, wx.ALL, 5) - - main_sizer.Add(hbox1, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) - - ok_button = wx.Button(self, wx.ID_OK, label='Ok') - close_button = wx.Button(self, wx.ID_CANCEL, label='Cancel') - - hbox2 = wx.BoxSizer(wx.HORIZONTAL) - hbox2.Add(ok_button) - hbox2.Add(close_button, flag=wx.LEFT, border=5) - - main_sizer.Add(hbox2, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=10) - - self.SetSizerAndFit(main_sizer) - - def OnSelectAll(self, event): - for cbox in self.check_boxes.values(): - cbox.SetValue(True) - - def OnDeselectAll(self, event): - for cbox in self.check_boxes.values(): - cbox.SetValue(False) - - def GetSelectedFilepaths(self): - """ - Return the list of filepaths selected by the user. - Main entry point for client code. - """ - selected = [] - - for path, cbox in self.check_boxes.items(): - if cbox.GetValue(): - selected.append(path) - - return selected - - def GetSelectedIndices(self): - """ - Return the list of selected indices by the user. - Main entry point for client code. - """ - selected = [] - - for i, cbox in enumerate(self.check_boxes.values()): - if cbox.GetValue(): - selected.append(i) - - return selected diff --git a/abipy/gui/events.py b/abipy/gui/events.py deleted file mode 100644 index 06311fd27..000000000 --- a/abipy/gui/events.py +++ /dev/null @@ -1,195 +0,0 @@ -import os -import wx -import wx.lib.agw.flatnotebook as fnb -import abipy.gui.awx as awx - -from collections import OrderedDict -from monty.string import list_strings, is_string -from abipy.flowtk import EventsParser - - -class AbinitEventsPanel(awx.Panel): - """ - Panel with a TreeCtrl that allows the user to navigate - the events (WARNINGS/COMMENTS/ERRORS) reported by ABINIT - in the main output file or in the log file. - """ - def __init__(self, parent, filepath, **kwargs): - super(AbinitEventsPanel, self).__init__(parent, -1, **kwargs) - - self.filepath = os.path.abspath(filepath) - - parser = EventsParser() - self.events = events = parser.parse(self.filepath) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - vbox = wx.BoxSizer(wx.VERTICAL) - panel1 = awx.Panel(self, -1) - panel2 = awx.Panel(self, -1) - - self.tree = tree = wx.TreeCtrl(panel1, 1, wx.DefaultPosition, (-1, -1), wx.TR_HIDE_ROOT | wx.TR_HAS_BUTTONS) - - root = self.tree.AddRoot('Events') - - err_tree = tree.AppendItem(root, "%d Errors" % events.num_errors) - warn_tree = tree.AppendItem(root, "%d Warnings" % events.num_warnings) - com_tree = tree.AppendItem(root, "%d Comments" % events.num_comments) - - for e in self.events.errors: - tree.AppendItem(err_tree, "line: " + str(e.lineno), data=wx.TreeItemData(e.message)) - - for w in self.events.warnings: - tree.AppendItem(warn_tree, "line: " + str(w.lineno), data=wx.TreeItemData(w.message)) - - for c in self.events.comments: - tree.AppendItem(com_tree, "line: " + str(c.lineno), data=wx.TreeItemData(c.message)) - - tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged, id=1) - - self.display = wx.StaticText(panel2, -1, '', (10, 10), style=wx.ALIGN_LEFT) - - vbox.Add(self.tree, 1, wx.EXPAND) - main_sizer.Add(panel1, 1, wx.EXPAND) - main_sizer.Add(panel2, 1, wx.EXPAND) - panel1.SetSizerAndFit(vbox) - - self.SetSizerAndFit(main_sizer) - self.Centre() - - @property - def has_events(self): - return len(self.events) > 0 - - def OnSelChanged(self, event): - item = event.GetItem() - proxy = self.tree.GetItemData(item) - if proxy is None: return - data = proxy.GetData() - self.display.SetLabel(data) - - -class AbinitEventsFrame(awx.Frame): - """ - Frame with an EventsPanel - """ - def __init__(self, parent, filepath, **kwargs): - filepath = os.path.abspath(filepath) - - if "title" not in kwargs: - kwargs["title"] = "Abinit Events: %s" % os.path.basename(filepath) - - super(AbinitEventsFrame, self).__init__(parent, **kwargs) - - self.event_panel = AbinitEventsPanel(self, filepath) - - -class AbiOutLogDirCtrl(wx.GenericDirCtrl): - - def __init__(self, *args, **kwargs): - if "filter" not in kwargs: - kwargs["filter"] = "All files (*.*)|*.*|ABINIT output files (*.abo)|*.out| ABINIT log files (*.log)|*.log" - if "dir" not in kwargs: - kwargs["dir"] = os.getcwd() - if "style" not in kwargs: - kwargs["style"] = wx.TR_MULTIPLE - - super(AbiOutLogDirCtrl, self).__init__(*args, **kwargs) - - self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnItemActivated) - #self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnRightClick) - - def OnItemActivated(self, event): - path = self.GetFilePath() - if not path: return - EventFrame(self, path).Show() - - #def OnRightClick(self, event): - # path = self.GetFilePath() - # if not path: return - # print("in right with path %s" % path) - - -class AbinitEventsNotebookFrame(awx.Frame): - """ - This frame receives a list of filenames and displays the ABINIT events in a notebook. - """ - def __init__(self, parent, filenames, num_dirs=2, **kwargs): - """ - Args: - parent: - Parent Widget. - filenames: - List of filenames. - num_dirs: - Maximum number of directories that will be shown in the tab. - """ - if "title" not in kwargs: - kwargs["title"] = "Abinit Events" - - super(AbinitEventsNotebookFrame, self).__init__(parent, **kwargs) - - filenames = list_strings(filenames) - - # Remove inexistent files. - filenames = filter(os.path.exists, filenames) - - if not filenames: - return - - # Here we create a panel and a notebook on the panel - panel = awx.Panel(self) - - nb = fnb.FlatNotebook(panel) - - for fname in filenames: - page = AbinitEventsPanel(nb, fname) - page_name = fname - - if num_dirs > 0: - tokens = page_name.split(os.path.sep) - page_name = os.path.join(*tokens[-num_dirs:]) - - # Add only files for which we have events. - #if page.has_events: - - # Add the pages to the notebook with the name to show on the tab - nb.AddPage(page, text=page_name) - - # Finally, put the notebook in a sizer for the panel to manage the layout - sizer = wx.BoxSizer() - sizer.Add(nb, 1, wx.EXPAND) - - panel.SetSizerAndFit(sizer) - - -def wxapp_events(root): - """ - Start up the AbinitOutputViewer application. - - Args: - root: - Can be: None, filename, directory name or list of filenames. - None means that we just open the browser without accessing any file. - If root is a directory, we locate all the output files - starting from root and we visualize them in the main Frame. - """ - if root is None: - filenames = [] - - elif is_string(root): - root = os.path.abspath(root) - if os.path.isdir(root): - filenames = [os.path.join(root, f) for f in os.listdir(root) if f.endswith(".abo")] - else: - filenames = [root] - else: - filenames = root - - class AbiEventsViewerApp(awx.App): - def OnInit(self): - frame = AbinitEventsNotebookFrame(None, filenames) - self.SetTopWindow(frame) - frame.Show() - return True - - return AbiEventsViewerApp() diff --git a/abipy/gui/fftprof.py b/abipy/gui/fftprof.py deleted file mode 100644 index 35603bef1..000000000 --- a/abipy/gui/fftprof.py +++ /dev/null @@ -1,309 +0,0 @@ -import wx - -from collections import OrderedDict -from abipy.gui import awx - -from abipy.tools.fftprof import FFTProf -from abipy.gui.editor import SimpleTextViewer -from .awx.panels import LinspaceControl - - -FFTALGS = OrderedDict([ - (112, "Goedecker"), - (312, "FFTW3"), - (412, "Goedecker-2002"), - (512, "MKL-DFTI"), -]) - - -class FftalgsPanel(wx.Panel): - def __init__(self, parent): - wx.Panel.__init__(self, parent, id=-1) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - static_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "FFT Libraries"), wx.VERTICAL) - grid_sizer = wx.GridSizer(0, 2, 0, 0) - - self.check_boxes = OrderedDict() - - for fftalg, fft_name in FFTALGS.items(): - cbox = wx.CheckBox(self, -1, fft_name) - if fftalg == 112: - cbox.SetValue(True) - else: - cbox.SetValue(False) - - self.check_boxes[fftalg] = cbox - grid_sizer.Add(cbox, 0, wx.ALL, 5) - - static_sizer.Add(grid_sizer, 0, wx.ALL | wx.EXPAND, 5) - main_sizer.Add(static_sizer, 1, wx.EXPAND, 5) - - self.SetSizerAndFit(main_sizer) - - def GetValues(self): - """Returns a list with the fftalgs selected by the user.""" - fftalgs = [] - for (fftalg, cbox) in self.check_boxes.items(): - if cbox.GetValue(): - fftalgs.append(fftalg) - - if not fftalgs: - fftalgs = [112] - - return fftalgs - - -class ControlPanel(wx.Panel): - """ - !! &CONTROL - !! tasks = string specifying the tasks to perform i.e. the routines that should be tested or profiled. - !! allowed values: - !! fourdp --> Test FFT transforms of density and potentials on the full box. - !! fourwf --> Test FFT transforms of wavefunctions using the zero-padded algorithm. - !! gw_fft --> Test the FFT transforms used in the GW code. - !! all --> Test all FFT routines (DEFAULT) - !! fftalgs = list of fftalg values (used to select the FFT libraries to use, see abinit doc for more info) - !! ncalls = integer defining the number of calls for each tests. The final Wall time and CPU time - !! are computed by averaging the final results over ncalls executions. - !! max_nthreads = Maximum number of threads (DEFAULT 1, meaningful only if the code - !! uses threaded external libraries or OpenMP parallelization) - !! ndat = integer specifying how many FFT transforms should be executed for each call to the FFT routine - !! (same meaning as the ndat input variable passed to fourwf) - !! necut = Used if tasks = "bench". Specifies the number of cutoff energies to profile (see also ecut_arth) - !! ecut_arth = Used if tasks = "bench". Used to generate an arithmetic progression of cutoff energies - !! whose starting value is ecut_arth(1) and whose step is ecut_arth(2) - """ - BENCHMARKS = ["bench_fourwf", "bench_fourdp", "bench_rhotwg"] - - def __init__(self, parent): - wx.Panel.__init__(self, parent, id=-1) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - hsz1 = wx.BoxSizer(wx.HORIZONTAL) - - text = wx.StaticText(self, -1, "Tasks:") - text.Wrap(-1) - text.SetToolTipString("Select the routines for the benchmark.") - self.task_choice = wx.Choice(self, -1, wx.DefaultPosition, wx.DefaultSize, self.BENCHMARKS, 0) - self.task_choice.SetSelection(0) - - hsz1.Add(text, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - hsz1.Add(self.task_choice, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - text = wx.StaticText(self, -1, "ndat:") - text.Wrap(-1) - text.SetToolTipString("Number of FFT transform per call.") - self.ndat_ctrl = wx.SpinCtrl(self, -1, value="1", min=1) - - hsz1.Add(text, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - hsz1.Add(self.ndat_ctrl, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - text = wx.StaticText(self, -1, "ncalls:") - text.Wrap(-1) - text.SetToolTipString("Number of calls (used to get mean results)") - self.ncalls_ctrl = wx.SpinCtrl(self, -1, value="5", min=1) - - hsz1.Add(text, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - hsz1.Add(self.ncalls_ctrl, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - text = wx.StaticText(self, -1, "max_nthreads:") - text.Wrap(-1) - text.SetToolTipString("Maximum number of OpenMP threads") - self.max_nthreads_ctrl = wx.SpinCtrl(self, -1, value="1", min=1) - - hsz1.Add(text, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - hsz1.Add(self.max_nthreads_ctrl, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - main_sizer.Add(hsz1, 1, wx.EXPAND, 5) - - # Control to read the range of cutoff energies. - self.ecut_linspace = LinspaceControl(self, start=dict(value="20"), stop=dict(value="120"), num=dict(value="10")) - - static_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Ecut list:"), wx.VERTICAL) - static_sizer.Add(self.ecut_linspace, 0, wx.ALL | wx.EXPAND, 5) - - # Control to specify fftalgs. - self.fftalgs = FftalgsPanel(self) - - #vsz1 = wx.BoxSizer(wx.VERTICAL) - #vsz1.Add(static_sizer, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - #vsz1.Add(self.fftalgs, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - #main_sizer.Add(vsz1, 1, wx.EXPAND, 5) - - main_sizer.Add(static_sizer, 1, wx.EXPAND, 5) - main_sizer.Add(self.fftalgs, 1, wx.EXPAND, 5) - - self.SetSizerAndFit(main_sizer) - - def GetNamelist(self): - """ - Build and returns a string with whe &CONTROL Fortran NAMELIST. - """ - ecut_list = self.ecut_linspace.getValues() - if len(ecut_list) <= 1: - return awx.showErrorMessage(self, message="Ecut list is empty or contains only one item!") - step = ecut_list[1] - ecut_list[0] - - d = OrderedDict( - tasks="'" + self.task_choice.GetStringSelection() + "'", - fftalgs=",".join(str(v) for v in self.fftalgs.GetValues()), - ncalls=self.ncalls_ctrl.GetValue(), - max_nthreads=self.max_nthreads_ctrl.GetValue(), - ndat=self.ndat_ctrl.GetValue(), - necut=len(ecut_list), - ecut_arth="%s, %s" % (ecut_list[0], step) - ) - - namelist = ["&CONTROL"] - for k, v in d.items(): - namelist.append(k + " = " + str(v) + ",") - namelist.append("/") - - return "\n".join(namelist) - - -class KpointChoice(wx.Choice): - def __init__(self, parent): - choices = map(str, [ - (0.1, 0.2, 0.3), - (0.0, 0.0, 0.0), - (1 / 2, 0, 0), - (0, 0, 1 / 2), - (1 / 2, 0, 1 / 2), - (0, 1 / 2, 0), - (1 / 2, 1 / 2, 0), - (0, 1 / 2, 1 / 2), - (1 / 2, 1 / 2, 1 / 2), - ]) - - wx.Choice.__init__(self, parent, -1, choices=choices) - self.SetSelection(0) - - def GetStringSelection(self): - s = super(KpointChoice, self).GetStringSelection() - return s.replace("(", "").replace(")", "") - - -class SystemPanel(wx.Panel): - """ - !! ecut = cutoff energy for wavefunctions (real, Hartree units) - !! rprimd = Direct lattice vectors in Bohr. (3,3) matrix in Fortran column-major order - !! kpoint = real(3) vector specifying the reduced coordinates of the k-point of the wavefunction (used if tasks = "fourwf"). - !! The value of the k-point defines the storage scheme (istwfk) of the u(G) coefficients and therefore - !! the FFT algorithm used to perform the transform u(G) <--> u(R) in fourwf. - !! osc_ecut = cutoff energy (Hartree) for the oscillator matrix elements computed in the GW code - !! Corresponds to the input variables (ecuteps, ecutsigx) used in the main code. - !! nsym =Number of symmetry operations (DEFAULT 1) - !! symrel(3,3,nsym) = Symmetry operation in real space used to select the FFT mesh in the routine getng (default: Identity matrix) - """ - - def __init__(self, parent): - wx.Panel.__init__(self, parent, id=-1) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - hsz1 = wx.BoxSizer(wx.HORIZONTAL) - - text = wx.StaticText(self, -1, "kpoint:") - text.Wrap(-1) - text.SetToolTipString("K-point used in the FFT of the wavefunctions (istwfk).") - self.kpoint_choice = KpointChoice(self) - - hsz1.Add(text, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - hsz1.Add(self.kpoint_choice, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - main_sizer.Add(hsz1, 1, wx.EXPAND, 5) - - self.SetSizerAndFit(main_sizer) - - def GetNamelist(self): - """ - Build and returns a string with whe &SYSTEM Fortran NAMELIST. - """ - d = OrderedDict( - ecut=10, - rprimd="20, 0, 0, 0, 20, 0, 0, 0, 20", - kpoint=self.kpoint_choice.GetStringSelection() - #osc_ecut= TODO why here and not in control? - #nsym= - #symrel= - ) - - namelist = ["&SYSTEM"] - for k, v in d.items(): - namelist.append(k + " = " + str(v) + ",") - namelist.append("/") - - return "\n".join(namelist) - - -class FFTProfFrame(awx.Frame): - def __init__(self, parent, **kwargs): - super(FFTProfFrame, self).__init__(parent, -1, **kwargs) - - panel = wx.Panel(self, -1) - - self.control = ControlPanel(panel) - self.system = SystemPanel(panel) - - start_button = wx.Button(panel, -1, label='Start Benchmark') - start_button.Bind(wx.EVT_BUTTON, self.OnStartButton) - - show_button = wx.Button(panel, -1, label='Show Input') - show_button.Bind(wx.EVT_BUTTON, self.OnShowInput) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.Add(self.control, 1, wx.EXPAND, 5) - main_sizer.Add(self.system, 1, wx.EXPAND, 5) - - hsz = wx.BoxSizer(wx.HORIZONTAL) - hsz.Add(start_button, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) - hsz.Add(show_button, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) - - main_sizer.Add(hsz, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) - - panel.SetSizerAndFit(main_sizer) - - def MakeInput(self): - """Build the input file for FFTPROF.""" - fft_input = self.control.GetNamelist() + "\n" - fft_input += self.system.GetNamelist() + "\n" - return fft_input - - def OnShowInput(self, event): - """Show the fftprof input in an external window.""" - fft_input = self.MakeInput() - SimpleTextViewer(self, fft_input).Show() - - def OnStartButton(self, event): - """Run the benchmark and plot the results with `matplotlib`.""" - fft_input = self.MakeInput() - #return - - # Run FFTPROF. - try: - fftprof = FFTProf(fft_input) - returncode = fftprof.run() - - if returncode != 0: - raise RunTimeError("fftprof exited with returncode %s" % returncode) - - # Analyze the results. - fftprof.plot() - - except: - return awx.showErrorMessage(self) - - -def wxapp_fftprof(): - """Stand alone application.""" - app = awx.App() - frame = FFTProfFrame(None) - frame.Show() - return app - - -if __name__ == "__main__": - wxapp_fftprof().MainLoop() diff --git a/abipy/gui/flowviewer.py b/abipy/gui/flowviewer.py deleted file mode 100644 index fd353ae7e..000000000 --- a/abipy/gui/flowviewer.py +++ /dev/null @@ -1,1018 +0,0 @@ -import os -import wx -import time -import fnmatch - -import abipy.gui.awx as awx -import wx.lib.agw.flatnotebook as fnb - -from collections import OrderedDict -from monty.dev import get_ncpus -from abipy.gui.events import AbinitEventsFrame, AbinitEventsNotebookFrame -from abipy.gui.timer import MultiTimerFrame, AbinitTimerFrame -from abipy.gui.browser import FileListFrame, DirBrowserFrame, frame_from_filepath, frameclass_from_filepath -from abipy.gui.editor import TextNotebookFrame, SimpleTextViewer -import abipy.flowtk as flowtk - - -def yaml_manager_dialog(parent): - """ - Open a dialog that allows the user to select a YAML file with the taskmanager. - Returns the new manager or None if the user clicked CANCEL or the specifed file is not valid. - """ - dialog = wx.FileDialog(parent, message="Choose a taskmanager.yml file", defaultDir=os.getcwd(), - wildcard="YAML files (*.yml)|*.yml", - style=wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR) - - # Show the dialog and retrieve the user response. - # If it is the OK response, process the data. - if dialog.ShowModal() == wx.ID_CANCEL: return None - filepath = dialog.GetPath() - dialog.Destroy() - - try: - return flowtk.TaskManager.from_file(filepath) - except: - awx.showErrorMessage(parent) - return None - - -class FlowViewerFrame(awx.Frame): - VERSION = "0.1" - - # Time in second after which we check the status of the tasks. - REFRESH_INTERVAL = 120 - - HELP_MSG = """\ -Quick help: - - Task list: - - Left-Click: Open directory with output files. - Right-Click: display popup menu with choices. - -Also, these key bindings can be used -(For Mac OSX, replace 'Ctrl' with 'Apple'): - - Ctrl-Q: quit""" - - def __init__(self, parent, flow, **kwargs): - """ - Args: - parent: - Parent window. - flow: - `AbinitFlow` with the list of `Workflow` objects. - """ - if "title" not in kwargs: - kwargs["title"] = self.codename - - super(FlowViewerFrame, self).__init__(parent, -1, **kwargs) - - # This combination of options for config seems to work on my Mac. - self.config = wx.FileConfig(appName=self.codename, localFilename=self.codename + ".ini", - style=wx.CONFIG_USE_LOCAL_FILE) - - # Build menu, toolbar and status bar. - self.SetMenuBar(self.makeMenu()) - self.makeToolBar() - self.statusbar = self.CreateStatusBar() - self.Centre() - - self.flow = flow - - # Disable launch mode if we already executing the flow with the scheduler. - self.check_launcher_file() - - # Build UI - self.panel = panel = wx.Panel(self, -1) - self.main_sizer = main_sizer = wx.BoxSizer(wx.VERTICAL) - - # Here we create a panel and a notebook on the panel - self.notebook = FlowNotebook(panel, self.flow) - main_sizer.Add(self.notebook, 1, wx.EXPAND, 5) - - submit_button = wx.Button(panel, -1, label='Submit') - submit_button.Bind(wx.EVT_BUTTON, self.OnSubmitButton) - - text = wx.StaticText(panel, -1, "Max nlaunch:") - text.Wrap(-1) - text.SetToolTipString("Maximum number of tasks that can be submitted. Use -1 for unlimited launches.") - self.max_nlaunch = wx.SpinCtrl(panel, -1, value=str(get_ncpus()), min=-1) - - hsizer = wx.BoxSizer(wx.HORIZONTAL) - hsizer.Add(submit_button, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - hsizer.Add(text, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - hsizer.Add(self.max_nlaunch, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - main_sizer.Add(hsizer, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - - panel.SetSizerAndFit(main_sizer) - - # Register this event when the GUI is IDLE - # Not used anymore since the Yaml parser - # is very slow when we use the pure python version. - self.last_refresh = time.time() - #self.Bind(wx.EVT_IDLE, self.OnIdle) - - @property - def codename(self): - """String with the code name.""" - return "Flow Viewer" - - def makeToolBar(self): - """Create toolbar.""" - self.toolbar = toolbar = self.CreateToolBar() - toolbar.SetToolBitmapSize(wx.Size(48, 48)) - - def bitmap(path): - return wx.Bitmap(awx.path_img(path)) - - self.ID_SHOW_INPUTS = wx.NewId() - self.ID_SHOW_OUTPUTS = wx.NewId() - self.ID_SHOW_LOGS = wx.NewId() - self.ID_SHOW_JOB_SCRIPTS = wx.NewId() - self.ID_SHOW_JOB_OUTERRS = wx.NewId() - self.ID_BROWSE = wx.NewId() - self.ID_SHOW_MAIN_EVENTS = wx.NewId() - self.ID_SHOW_LOG_EVENTS = wx.NewId() - self.ID_SHOW_TIMERS = wx.NewId() - self.ID_CHECK_STATUS = wx.NewId() - - toolbar.AddSimpleTool(self.ID_SHOW_INPUTS, bitmap("in.png"), "Visualize the input file(s) of the workflow.") - toolbar.AddSimpleTool(self.ID_SHOW_OUTPUTS, bitmap("out.png"), "Visualize the output file(s) of the workflow..") - toolbar.AddSimpleTool(self.ID_SHOW_LOGS, bitmap("log.png"), "Visualize the log file(s) of the workflow.") - toolbar.AddSimpleTool(self.ID_SHOW_JOB_SCRIPTS, bitmap("script.png"), "Visualize the script(s).") - toolbar.AddSimpleTool(self.ID_SHOW_JOB_OUTERRS, bitmap("script.png"), "Visualize the script(s).") - toolbar.AddSimpleTool(self.ID_BROWSE, bitmap("browse.png"), "Browse all the files of the workflow.") - toolbar.AddSimpleTool(self.ID_SHOW_MAIN_EVENTS, bitmap("out_evt.png"), "Show the ABINIT events reported in the main output files.") - toolbar.AddSimpleTool(self.ID_SHOW_LOG_EVENTS, bitmap("log_evt.png"), "Show the ABINIT events reported in the log files.") - toolbar.AddSimpleTool(self.ID_SHOW_TIMERS, bitmap("timer.png"), "Show the ABINIT timers in the abo files.") - - toolbar.AddSeparator() - - toolbar.AddSimpleTool(self.ID_CHECK_STATUS, bitmap("refresh.png"), "Check the status of the workflow(s).") - - #toolbar.AddSeparator() - #self.file_selector = FileSelector(toolbar, self) - #toolbar.AddControl(control=self.file_selector) - - toolbar.Realize() - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_SHOW_INPUTS, self.OnShowInputs), - (self.ID_SHOW_OUTPUTS, self.OnShowOutputs), - (self.ID_SHOW_LOGS, self.OnShowLogs), - (self.ID_SHOW_JOB_SCRIPTS, self.OnShowJobScripts), - (self.ID_SHOW_JOB_OUTERRS, self.OnShowJobOutErrs), - (self.ID_BROWSE, self.OnBrowse), - (self.ID_SHOW_MAIN_EVENTS, self.OnShowMainEvents), - (self.ID_SHOW_LOG_EVENTS, self.OnShowLogEvents), - (self.ID_SHOW_TIMERS, self.OnShowTimers), - (self.ID_CHECK_STATUS, self.OnCheckStatusButton), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - def makeMenu(self): - """Make the menu bar.""" - menu_bar = wx.MenuBar() - - file_menu = wx.Menu() - file_menu.Append(wx.ID_OPEN, "&Open", help="Open an existing flow in a new frame") - file_menu.Append(wx.ID_CLOSE, "&Close", help="Close the file associated to the active tab") - file_menu.Append(wx.ID_EXIT, "&Quit", help="Exit the application") - - file_history = self.file_history = wx.FileHistory(8) - file_history.Load(self.config) - recent = wx.Menu() - file_history.UseMenu(recent) - file_history.AddFilesToMenu() - file_menu.AppendMenu(-1, "&Recent Files", recent) - self.Bind(wx.EVT_MENU_RANGE, self.OnFileHistory, id=wx.ID_FILE1, id2=wx.ID_FILE9) - menu_bar.Append(file_menu, "File") - - flow_menu = wx.Menu() - - #self.ID_FLOW_CHANGE_MANAGER = wx.NewId() - #flow_menu.Append(self.ID_FLOW_CHANGE_MANAGER, "Change TaskManager", help="") - - self.ID_FLOW_OPEN_OUTFILES = wx.NewId() - flow_menu.Append(self.ID_FLOW_OPEN_OUTFILES, "Open output files", help="") - - self.ID_FLOW_TREE_VIEW = wx.NewId() - flow_menu.Append(self.ID_FLOW_TREE_VIEW, "Tree view", help="Tree view of the tasks") - - menu_bar.Append(flow_menu, "Flow") - - help_menu = wx.Menu() - help_menu.Append(wx.ID_ABOUT, "About " + self.codename, help="Info on the application") - menu_bar.Append(help_menu, "Help") - - self.ID_HELP_QUICKREF = wx.NewId() - help_menu.Append(self.ID_HELP_QUICKREF, "Quick Reference ", help="Quick reference for " + self.codename) - help_menu.Append(wx.ID_ABOUT, "About " + self.codename, help="Info on the application") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (wx.ID_OPEN, self.OnOpen), - (wx.ID_CLOSE, self.OnClose), - (wx.ID_EXIT, self.OnExit), - (wx.ID_ABOUT, self.OnAboutBox), - # - #(self.ID_FLOW_CHANGE_MANAGER, self.onChangeManager), - (self.ID_FLOW_OPEN_OUTFILES, self.onOpenOutFiles), - (self.ID_FLOW_TREE_VIEW, self.onTaskTreeView), - # - (self.ID_HELP_QUICKREF, self.onQuickRef), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu_bar - - def check_launcher_file(self, with_dialog=True): - """ - Disable the launch button if we have a sheduler running, - since we don't want to have processes modifying the flow. - """ - self.disabled_launcher = False - pid_files = fnmatch.filter(os.listdir(self.flow.workdir), "*.pid") - - if pid_files: - pid_file = os.path.join(self.flow.workdir, pid_files[0]) - if not os.path.exists(pid_file): return - self.disabled_launcher = True - - with open(pid_file, "r") as fh: - pid = int(fh.readline()) - - message = ("Found pid file %s associated to an already running scheduler with pid %d. " - "Job submission has been disabled." % (pid_file, pid)) - - if with_dialog: - dialog = wx.MessageDialog(None, message=message, caption='Flow is being executed by a scheduler', - style=wx.OK | wx.ICON_EXCLAMATION) - dialog.ShowModal() - dialog.Destroy() - - else: - self.statusbar.PushStatusText(message) - - def OnSubmitButton(self, event): - """Submit up to max_nlauch tasks.""" - if self.disabled_launcher: return - max_nlaunch = int(self.max_nlaunch.GetValue()) - nlaunch = flowtk.PyLauncher(self.flow).rapidfire(max_nlaunch=max_nlaunch) - - self.statusbar.PushStatusText("Submitted %d tasks" % nlaunch) - - def GetSelectedWork(self): - """ - Return the selected workflow namely that the - workflow associated to the active tab. None if list is empty. - """ - return self.notebook.GetSelectedWork() - - def OnIdle(self, event): - """Function executed when the GUI is idle.""" - now = time.time() - if (now - self.last_refresh) > self.REFRESH_INTERVAL: - self.check_launcher_file(with_dialog=False) - self.CheckStatusAndRedraw() - self.last_refresh = time.time() - - def OnCheckStatusButton(self, event): - """Callback triggereed by the checkstatus button.""" - self.CheckStatusAndRedraw() - - def CheckStatusAndRedraw(self): - """Check the status of all the workflows and redraw the panel.""" - self.statusbar.PushStatusText("Checking status...") - - self.flow.check_status() - - # Count the number of tasks with given status. - counter = self.flow.status_counter - - # Save the active tab so that we can set it afterwards. - old_selection = self.notebook.GetSelection() - - # Build new notebook and redraw the panel - main_sizer = self.main_sizer - main_sizer.Hide(0) - main_sizer.Remove(0) - new_notebook = FlowNotebook(self, self.flow) - main_sizer.Insert(0, new_notebook, 1, wx.EXPAND, 5) - self.notebook = new_notebook - - self.panel.Layout() - - # Reinstate the old selection - self.notebook.SetSelection(old_selection) - - # Write number of jobs with given status. - message = ", ".join("%s: %s" % (k, v) for (k, v) in counter.items()) - self.statusbar.PushStatusText(message) - - def read_file(self, filepath): - self.statusbar.PushStatusText("Reading %s" % filepath) - - try: - flow = flowtk.AbinitFlow.pickle_load(filepath) - self.AddFileToHistory(filepath) - return flow - except: - awx.showErrorMessage(self) - return None - - def OnOpen(self, event): - dialog = wx.FileDialog( - self, message="Choose a __workflow__.pickle file", defaultDir=os.getcwd(), - wildcard="pickle files (*.pickle)|*.pickle", - style=wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR) - - # Show the dialog and retrieve the user response. - # If it is the OK response, process the data. - if dialog.ShowModal() == wx.ID_CANCEL: return - - filepath = dialog.GetPath() - dialog.Destroy() - - # Add to the history. - self.file_history.AddFileToHistory(filepath) - self.file_history.Save(self.config) - self.config.Flush() - flow = self.read_file(filepath) - - if flow is not None: - # Open new frame. - FlowViewerFrame(self, flow).Show() - - def AddFileToHistory(self, filepath): - """Add the absolute filepath to the file history.""" - self.file_history.AddFileToHistory(filepath) - self.file_history.Save(self.config) - self.config.Flush() - - def OnFileHistory(self, event): - fileNum = event.GetId() - wx.ID_FILE1 - filepath = self.file_history.GetHistoryFile(fileNum) - self.file_history.AddFileToHistory(filepath) - self.read_file(filepath) - - def OnClose(self, event): - print("onclose") - #self.flow.pickle_dump() - #self.Close() - - def OnExit(self, event): - """Save the status of the flow in the database and exit the GUI.""" - print("onexit") - #self.flow.pickle_dump() - self.Close() - - def OnAboutBox(self, event): - """"Info on the application.""" - awx.makeAboutBox(codename=self.codename, version=self.VERSION, - description="", developers="M. Giantomassi") - - def onQuickRef(self, event=None): - dialog = wx.MessageDialog(self, self.HELP_MSG, self.codename + " Quick Reference", - wx.OK | wx.ICON_INFORMATION) - dialog.ShowModal() - dialog.Destroy() - - def OnShowInputs(self, event): - """Show all the input files of the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - TextNotebookFrame.from_files_and_dir(self, dirpath=work.workdir, walk=True, wildcard="*.abi").Show() - - def OnShowOutputs(self, event): - """Show all the output files of the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - TextNotebookFrame.from_files_and_dir(self, dirpath=work.workdir, walk=True, wildcard="*.abo").Show() - - def OnShowJobScripts(self, event): - """Show all the job script files of the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - TextNotebookFrame.from_files_and_dir(self, dirpath=work.workdir, walk=True, wildcard="*.sh").Show() - - def OnShowJobOutErrs(self, event): - """Show all the queue output/error files files of the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - TextNotebookFrame.from_files_and_dir(self, dirpath=work.workdir, walk=True, wildcard="*.qout|*.qerr").Show() - - def OnShowLogs(self, event): - """Show all the log files of the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - TextNotebookFrame.from_files_and_dir(self, dirpath=work.workdir, walk=True, wildcard="*.log").Show() - - def OnBrowse(self, event): - """Browse all the output files produced by the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - FileListFrame(self, dirpaths=work.workdir).Show() - #DirBrowserFrame(self, dir=work.workdir).Show() - - def OnShowMainEvents(self, event): - """Browse all the main events of the tasks in the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - AbinitEventsNotebookFrame(self, filenames=[task.output_file.path for task in work]).Show() - - def OnShowLogEvents(self, event): - """Browse all the log events of the tasks in the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - AbinitEventsNotebookFrame(self, [task.log_file.path for task in work]).Show() - - def OnShowTimers(self, event): - """Analyze the timing data of all the output files of the selected `Workflow`.""" - work = self.GetSelectedWork() - if work is None: return - timers = work.parse_timers() - # Build the frame for analyzing multiple timers. - MultiTimerFrame(self, timers).Show() - - def onTaskTreeView(self, event): - TaskTreeView(self, self.flow).Show() - - #def onChangeManager(self, event): - # #ChangeTaskManager(self, self.flow).Show() - # new_manager = yaml_manager_dialog(self) - # if new_manager is None: return - # print(new_manager) - # #status_selected = upper() - # #status = None if status_selected == "ALL" else status_selected - # # Change the manager of the errored tasks. - # #for task in flow.iflat_tasks(status="S_ERROR"): - # # task.reset() - # # task.set_manager(new_manager) - - def onOpenOutFiles(self, event): - FileSelectorFrame(parent=self, viewer=self).Show() - - -class FlowNotebook(fnb.FlatNotebook): - """ - Notebook class - """ - def __init__(self, parent, flow): - try: - style = fnb.FNB_NO_X_BUTTON | fnb.FNB_NAV_BUTTONS_WHEN_NEEDED - except AttributeError: - style = fnb.FNB_NO_X_BUTTON - - super(FlowNotebook, self).__init__(parent, id=-1, style=style) - - self.flow = flow - for work in flow: - tab = TabPanel(self, work) - self.AddPage(tab, text=os.path.basename(work.workdir)) - - def GetSelectedWork(self): - """ - Return the selected workflow namely that the workflow associated to the - active tab. None is list is empy. - """ - # FIXME: If we want to allow the user to remove some tab we have - # to remove the corresponding work from workflows. - # Easy if workflow_viewer can only read data but it might be source - # of bugs if we want to modify the object e.g. by submitting the calculation. - # For the time-being, use this assertion to prevent users from removing pages. - if self.GetPageCount() != len(self.flow): - return awx.showErrorMessage(self, message="Bad user has removed pages from the notebook!") - - idx = self.GetSelection() - if idx == -1: return None - try: - return self.flow[idx] - except IndexError: - return None - - -class TabPanel(wx.Panel): - """ - Notebook tab. - """ - def __init__(self, parent, work, **kwargs): - wx.Panel.__init__(self, parent=parent, id=-1, **kwargs) - - # List Control with the individual tasks of the workflow. - task_listctrl = TaskListCtrl(self, work) - - label = wx.StaticText(self, -1, "Workflow class %s, status: %s, finalized: %s" % ( - work.__class__.__name__, work.status, work.finalized)) - label.Wrap(-1) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.Add(label, 0, wx.ALIGN_LEFT, 5) - main_sizer.Add(task_listctrl, 1, wx.EXPAND, 5) - - self.SetSizerAndFit(main_sizer) - - -class TaskListCtrl(wx.ListCtrl): - """ - ListCtrl with the list of task in the `Workflow`. - """ - def __init__(self, parent, work, **kwargs): - """ - Args: - parent: - Parent window. - work: - `Workflow` containig the List of `Task` instances. - """ - super(TaskListCtrl, self).__init__(parent, id=-1, style=wx.LC_REPORT | wx.BORDER_SUNKEN, **kwargs) - - self.work = work - - columns = ["Task", "Status", "Queue_id", - "Errors", "Warnings", "Comments", - "MPI", "OMP", - "num_restarts", "Task Class", - ] - - for index, col in enumerate(columns): - self.InsertColumn(index, col) - - # Used to store the Max width in pixels for the data in the column. - column_widths = [awx.get_width_height(self, s)[0] for s in columns] - - for task in work: - events = map(str, 3*["N/A"]) - - try: - report = task.get_event_report() - if report is not None: - events = map(str, [report.num_errors, report.num_warnings, report.num_comments]) - except: - pass - - cpu_info = [task.mpi_procs, task.omp_threads] - entry = map(str, [task.name, str(task.status), task.queue_id] + - events + - cpu_info + - [task.num_restarts, task.__class__.__name__] - ) - w = [awx.get_width_height(self, s)[0] for s in entry] - column_widths = map(max, zip(w, column_widths)) - - self.Append(entry) - - # Set the width in pixel for each column. - for index, col in enumerate(columns): - self.SetColumnWidth(index, column_widths[index]) - - self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnRightClick) - self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) - - def OnRightClick(self, event): - currentItem = event.m_itemIndex - if currentItem == -1: return - - # Open the popup menu then destroy it to avoid mem leak. - task = self.work[currentItem] - menu = TaskPopupMenu(parent=self, task=task) - self.PopupMenu(menu, event.GetPoint()) - menu.Destroy() - - def OnItemActivated(self, event): - """ - Browse the outdir of the task - """ - currentItem = event.m_itemIndex - task = self.work[currentItem] - FileListFrame(self, dirpaths=task.outdir.path, title=task.outdir.relpath).Show() - - -# Callbacks - -def show_task_main_output(parent, task): - """Show the main output file of the task.""" - file = task.output_file - - if file.exists: - frame_from_filepath(parent, file.path).Show() - else: - awx.showErrorMessage(parent=parent, message="Output file %s does not exist" % file.path) - - -def show_task_log(parent, task): - """Show the log file of the task.""" - file = task.log_file - - if file.exists: - frame_from_filepath(parent, file.path).Show() - else: - awx.showErrorMessage(parent=parent, message="Output file %s does not exist" % file.path) - - -def show_task_main_events(parent, task): - """Show the events reported in the main output file.""" - file = task.output_file - - if file.exists: - AbinitEventsFrame(parent, file.path).Show() - else: - awx.showErrorMessage(parent=parent, message="Output file %s does not exist" % file.path) - - -def show_task_log_events(parent, task): - """Show the events reported in the log file.""" - file = task.log_file - - if file.exists: - AbinitEventsFrame(parent, file.path).Show() - else: - awx.showErrorMessage(parent=parent, message="Log file %s does not exist" % file.path) - - -def browse_indir(parent, task): - """Open a window that allows the user to browse the input files in indir.""" - FileListFrame(parent, dirpaths=task.indir.path).Show() - - -def browse_outdir(parent, task): - """Open a window that allows the user to browse the output files in outdir.""" - FileListFrame(parent, dirpaths=task.outdir.path).Show() - - -def browse_tmpdir(parent, task): - """Open a window that allows the user to browse the output files in outdir.""" - FileListFrame(parent, dirpaths=task.tmpdir.path).Show() - - -def show_history(parent, task): - """Show the history of the task.""" - text = "\n".join(task.history) - SimpleTextViewer(parent, text).Show() - - -def show_timer(parent, task): - """Show timing data of the k.""" - try: - frame = AbinitTimerFrame(parent, task.output_file.path) - frame.Show() - except awx.Error as exc: - awx.showErrorMessage(parent, str(exc)) - - -def check_status_and_pickle(task): - """Check the status of the task and update the pickle database.""" - task.flow.check_status() - task.flow.pickle_dump() - - -def task_restart(parent, task): - """Restart the task.""" - task.restart() - check_status_and_pickle(task) - - -def task_reset(parent, task): - """Reset the status of the task.""" - task.reset() - check_status_and_pickle(task) - - -def task_set_status(parent, task): - """Reset the status of the task.""" - choices = [str(s) for s in flowtk.Node.ALL_STATUS] - dialog = wx.SingleChoiceDialog(parent, message="Select new status", caption="", choices=choices) - if dialog.ShowModal() == wx.ID_CANCEL: return None - status = choices[dialog.GetSelection()] - dialog.Destroy() - - task.set_status(status, info_msg="Status changed by user on %s" % time.asctime()) - #task.reset() - check_status_and_pickle(task) - - -def task_show_deps(parent, task): - """Show the dependencies of the task.""" - text = task.str_deps() - SimpleTextViewer(parent, text).Show() - - -def task_inspect(parent, task): - """Inspect the results at runtime.""" - if hasattr(task, "inspect"): - task.inspect() - - -class TaskPopupMenu(wx.Menu): - """ - A `TaskPopupMenu` has a list of callback functions indexed by the menu title. - The signature of the callback function is func(parent, task) where parent is - the wx Window that will become the parent of the new frame created by the callback. - and task is a `Task` instance. - """ - MENU_TITLES = OrderedDict([ - ("output", show_task_main_output), - ("log", show_task_log), - ("main events", show_task_main_events), - ("log events", show_task_log_events), - ("browse indir", browse_indir), - ("browse outdir", browse_outdir), - ("browse tmpdir", browse_tmpdir), - ("history", show_history), - ("restart", task_restart), - ("reset", task_reset), - ("dependencies", task_show_deps), - ("inspect", task_inspect), - ("set status", task_set_status), - ("timer", show_timer), - ]) - - def __init__(self, parent, task): - super(TaskPopupMenu, self).__init__() - self.parent, self.task = parent, task - - self._make_menu() - - def _make_menu(self): - """Build the menu""" - self.menu_title_by_id = OrderedDict() - - for title in self.MENU_TITLES: - self.menu_title_by_id[wx.NewId()] = title - - for (id, title) in self.menu_title_by_id.items(): - # Register menu handlers with EVT_MENU, on the menu. - self.Append(id, title) - wx.EVT_MENU(self, id, self.OnMenuSelection) - - def _get_callback(self, title): - return self.MENU_TITLES[title] - - def OnMenuSelection(self, event): - title = self.menu_title_by_id[event.GetId()] - callback = self._get_callback(title) - #print("Calling callback %s on task %s" % (callback, self.task)) - try: - callback(self.parent, self.task) - except: - awx.showErrorMessage(parent=self.parent) - -#class ChangeTaskManager(awx.Frame): -# def __init__(self, parent, flow, **kwargs) -# super(ChangeTaskManager, self).__init__(self, parent, **kwargs) -# -# -# def onOkButton(self, event): -# new_manager = yaml_manager_dialog(self) -# if new_manager is None: return -# print(new_manager) -# #status_selected = upper() -# #status = None if status_selected == "ALL" else status_selected -# # Change the manager of the errored tasks. -# #for task in flow.iflat_tasks(status="S_ERROR"): -# # task.reset() -# # task.set_manager(new_manager) - - -class TaskStatusTreePanel(awx.Panel): - """ - Panel with a TreeCtrl that allows the user to navigate the tasks grouped by status. - """ - def __init__(self, parent, flow, **kwargs): - super(TaskStatusTreePanel, self).__init__(parent, -1, **kwargs) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - vbox = wx.BoxSizer(wx.VERTICAL) - panel1 = awx.Panel(self, -1) - panel2 = awx.Panel(self, -1) - - self.tree = tree = wx.TreeCtrl(panel1, 1, wx.DefaultPosition, (-1, -1), wx.TR_HIDE_ROOT | wx.TR_HAS_BUTTONS) - - root = self.tree.AddRoot('Task Status') - - # entry = collections.namedtuple("Entry", "task wi ti") - #print(status2entries) - self.status2entries = flow.groupby_status() - - self.status_nodes = [] - for status, entries in self.status2entries.items(): - node = tree.AppendItem(root, "%d %s tasks" % (len(entries), str(status)), data=wx.TreeItemData(status)) - self.status_nodes.append(node) - for entry in entries: - tree.AppendItem(node, "Task: " + str(entry.task), data=wx.TreeItemData(entry)) - - tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.onSelChanged) - tree.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.onItemRightClick) - - self.display = wx.StaticText(panel2, -1, '', (10, 10), style=wx.ALIGN_LEFT) - - vbox.Add(self.tree, 1, wx.EXPAND) - main_sizer.Add(panel1, 1, wx.EXPAND) - main_sizer.Add(panel2, 1, wx.EXPAND) - panel1.SetSizerAndFit(vbox) - - self.SetSizerAndFit(main_sizer) - self.Centre() - - def onSelChanged(self, event): - node = event.GetItem() - if node in self.status_nodes: return - - proxy = self.tree.GetItemData(node) - if proxy is None: return - entry = proxy.GetData() - - task = entry.task - s = str(task) - s += "\nHistory:\n" + task.str_history - - self.display.SetLabel(s) - - def onItemRightClick(self, event): - node = event.GetItem() - proxy = self.tree.GetItemData(node) - if proxy is None: return - - if node in self.status_nodes: - status = proxy.GetData() - print("received set of tasks with status %s" % status) - popup_menu = self.makePopupMenuStatus() - self.PopupMenu(popup_menu, event.GetPoint()) - popup_menu.Destroy() - - #print("click") - #print("event", dir(event)) - - def makePopupMenuStatus(self): - self.ID_POPUP_CHANGE_MANAGER = wx.NewId() - menu = wx.Menu() - menu.Append(self.ID_POPUP_CHANGE_MANAGER, "Change manager") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_POPUP_CHANGE_MANAGER, self.onChangeManager), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu - - def onChangeManager(self, event): - print("changer manager") - node = self.tree.GetSelection() - status = self.tree.GetItemData(node).GetData() - print("status", status) - - entries = self.status2entries[status] - - new_manager = yaml_manager_dialog(self) - for e in entries: - e.task.reset() - e.task.set_manager(new_manager) - - #self.flow.build_and_pickle_dump() - - -class TaskTreeView(awx.Frame): - """ - A frame with a TaskStatusTreePanel. - """ - def __init__(self, parent, flow, **kwargs): - if "title" not in kwargs: - kwargs["title"] = "Task tree view: %s" % flow.workdir - - super(TaskTreeView, self).__init__(parent, **kwargs) - - panel = TaskStatusTreePanel(self, flow) - - -class FileSelector(awx.Panel): -#class FileSelector(wx.Control): - """ - Control that allows the user to select multiple output files of the same type (either inside - a `Workflow` on in the entire `Flow`. The open button will open a viewer to analyze - the multiple files selected. - """ - def __init__(self, parent, viewer, **kwargs): - super(FileSelector, self).__init__(parent, -1, **kwargs) - self.viewer = viewer - panel = self #wx.Panel(self, -1) - - wcards = ["*GSR.nc", "*WFK-etsf.nc", "*SIGRES.nc", "*MDF.nc"] - - self.wcards_cbox = wx.ComboBox(panel, id=-1, name='File type', choices=wcards, value=wcards[0], style=wx.CB_READONLY) - - smodes = ["Selected Workflow", "Entire Flow"] - self.select_rbox = wx.RadioBox(panel, id=1, name="Selection Mode", choices=smodes, style=wx.RA_SPECIFY_ROWS) - - open_button = wx.Button(panel, -1, label='Open files') - open_button.Bind(wx.EVT_BUTTON, self.onOpenButton) - - #main_sizer = wx.BoxSizer(wx.HORIZONTAL) - main_sizer = wx.GridBagSizer(10, 10) - - #vsizer = wx.BoxSizer(wx.VERTICAL) - #vsizer.Add(self.wcards_cbox, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - #vsizer.Add(open_button, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - #main_sizer.Add(vsizer) - #main_sizer.Add(self.select_rbox, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - - main_sizer.Add(self.wcards_cbox, (0, 0), (1,1), wx.ALIGN_CENTER) - main_sizer.Add(open_button, (1, 0), (1,1), wx.ALIGN_CENTER) - main_sizer.Add(self.select_rbox, (0, 1), (3,3), wx.EXPAND) - - panel.SetSizerAndFit(main_sizer) - - def getWildCard(self): - """Returns a string with the Abinit extension selected by the user.""" - return self.wcards_cbox.GetValue() - - def getSelectionMode(self): - """Returns a string with the selection mode selected by the user.""" - index = self.select_rbox.GetSelection() - return self.select_rbox.GetString(index) - - def onOpenButton(self, event): - wcard = self.getWildCard() - smode = self.getSelectionMode() - print("wcard", wcard, "smode", smode) - - # Find the filepaths according to smode. - filepaths = [] - - if smode == "Selected Workflow": - work = self.viewer.GetSelectedWork() - for task in work: - filepaths.extend(task.outdir.list_filepaths(wildcard=wcard)) - - elif smode == "Entire Flow": - for work in self.viewer.flow: - for task in work: - filepaths.extend(task.outdir.list_filepaths(wildcard=wcard)) - - else: - return awx.showErrorMessage(self, "Wrong value of smode: %s" % smode) - - if not filepaths: - return awx.showErrorMessage(self, "Cannot find any file matching the specified shell pattern") - - print("filepaths", filepaths) - - # Get the viewer class associated to these files, build the frame and show it. - frame_class = frameclass_from_filepath(filepaths[0]) - if frame_class is None: return - frame_class(self, filepaths).Show() - - -class FileSelectorFrame(wx.Frame): - def __init__(self, parent, viewer, **kwargs): - super(FileSelectorFrame, self).__init__(parent, -1, **kwargs) - - panel = wx.Panel(self, -1) - file_selector = FileSelector(panel, viewer) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.Add(file_selector, 1, wx.EXPAND , 5) - panel.SetSizerAndFit(main_sizer) - - -#class StatusSelectorFrame(wx.Frame): -# def __init__(self, parent, viewer, **kwargs): -# super(StatusSelectorFrame, self).__init__(parent, -1, **kwargs) -# -# panel = wx.Panel(self, -1) -# -# #choices = ["S_OK", "*WFK-etsf.nc", "*SIGRES.nc", "*MDF.nc"] -# -# #self.status_cbox = wx.ComboBox(panel, id=-1, name='File type', choices=choices, value=choices[0], style=wx.CB_READONLY) -# -# #smodes = ["Selected Workflow", "Entire Flow"] -# #self.select_rbox = wx.RadioBox(panel, id=1, name="Selection Mode", choices=smodes, style=wx.RA_SPECIFY_ROWS) -# -# #open_button = wx.Button(panel, -1, label='Open files') -# #open_button.Bind(wx.EVT_BUTTON, self.onOpenButton) -# -# main_sizer = wx.BoxSizer(wx.VERTICAL) -# main_sizer.Add(file_selector, 1, wx.EXPAND , 5) -# panel.SetSizerAndFit(main_sizer) -# -# def getSelectedStatus(self): -# return self.choices_cbox.GetValue() - - -def wxapp_flow_viewer(works): - """Standalone application for `FlowViewerFrame`.""" - app = awx.App() - FlowViewerFrame(None, works).Show() - return app diff --git a/abipy/gui/kpoints.py b/abipy/gui/kpoints.py deleted file mode 100644 index a9396ea1f..000000000 --- a/abipy/gui/kpoints.py +++ /dev/null @@ -1,251 +0,0 @@ -"""Collection of widgets that allow the user to interact with list of K-points.""" - -import wx -import wx.lib.newevent - -import abipy.gui.awx as awx -import wx.lib.mixins.listctrl as listmix - - -class KpointsListCtrl(wx.ListCtrl, listmix.ColumnSorterMixin): - """ - ListCtrl that allows the user to interact with a list of k-points. - Support column sorting. - """ - def __init__(self, parent, kpoints, **kwargs): - """ - Args: - parent: - Parent window. - kpoints: - List of `Kpoint` instances. - """ - super(KpointsListCtrl, self).__init__(parent, id=-1, style=wx.LC_REPORT | wx.BORDER_SUNKEN, **kwargs) - - self.kpoints = kpoints - - columns = ["#", 'Reduced coordinates', 'Weight', 'Name'] - - for (index, col) in enumerate(columns): - self.InsertColumn(index, col) - - # Used to store the Max width in pixels for the data in the column. - column_widths = [awx.get_width_height(self, s)[0] for s in columns] - - # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py - self.itemDataMap = {} - - for (index, kpt) in enumerate(self.kpoints): - entry = ["%d\t\t" % index, - "[%.5f, %.5f, %.5f]\t\t" % tuple(c for c in kpt.frac_coords), - "%.3f\t\t" % kpt.weight, - "%s" % kpt.name, - ] - self.Append(entry) - self.itemDataMap[index] = entry - self.SetItemData(index, index) - - w = [awx.get_width_height(self, s)[0] for s in entry] - column_widths = map(max, zip(w, column_widths)) - - for (index, col) in enumerate(columns): - self.SetColumnWidth(index, column_widths[index]) - - # Now that the list exists we can init the other base class, see wx/lib/mixins/listctrl.py - listmix.ColumnSorterMixin.__init__(self, len(columns)) - - def GetListCtrl(self): - """Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py""" - return self - - def getSelectedKpoint(self): - """ - Returns the kpoint selected by the user. - None if no selection has been done. - """ - # Get selected index, map to index in kpoints and return the kpoint. - item = self.GetFirstSelected() - if item == -1: return None - index = self.GetItemData(item) - return self.kpoints[index] - - -class KpointsPanel(awx.Panel): - """ - A panel with a list of k-points and a structure. - Provides popup menus for retrieving information on a single k-point. - """ - def __init__(self, parent, structure, kpoints, **kwargs): - """ - Args: - parent: - Parent window. - structure: - `Structure` object. - kpoints: - `KpointList` object. - """ - super(KpointsPanel, self).__init__(parent, **kwargs) - - self.klist_ctrl = KpointsListCtrl(self, kpoints) - self.structure = structure - - self.klist_ctrl.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.onRightClick) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.Add(self.klist_ctrl, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5) - self.SetSizerAndFit(main_sizer) - - def onRightClick(self, event): - """Generate the popup menu.""" - popup_menu = self.makePopupMenu() - self.PopupMenu(popup_menu, event.GetPoint()) - popup_menu.Destroy() - - def getSelectedKpoint(self): - return self.klist_ctrl.getSelectedKpoint() - - def makePopupMenu(self): - """ - Build and return a popup menu. Subclasses can extend or replace this base method. - """ - self.ID_POPUP_LITTLEGROUP = wx.NewId() - self.ID_POPUP_STAR = wx.NewId() - - menu = wx.Menu() - menu.Append(self.ID_POPUP_LITTLEGROUP, "Little group") - menu.Append(self.ID_POPUP_STAR, "Show star") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_POPUP_LITTLEGROUP, self.onLittleGroup), - (self.ID_POPUP_STAR, self.onShowStar), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu - - def onLittleGroup(self, event): - """Show a table with the character table of the little group.""" - kpoint = self.klist_ctrl.getSelectedKpoint() - if kpoint is None: return - ltk = self.structure.abi_spacegroup.find_little_group(kpoint) - table, header = ltk.bilbao_character_table() - awx.SimpleGridFrame(self, table, title=header, labels_from_table=True).Show() - - def onShowStar(self, event): - """Show a new `KpointsFrame` with the list of points in the star of the selected k-point.""" - kpoint = self.klist_ctrl.getSelectedKpoint() - if kpoint is None: return - star = kpoint.compute_star(self.structure.abi_spacegroup.fm_symmops) - KpointsFrame(self, self.structure, star, title="Star of point: " + str(star.base_point)).Show() - - -class KpointsFrame(awx.Frame): - """A frame with a `KpointsPanel`.""" - def __init__(self, parent, structure, kpoints, **kwargs): - """ - Args: - parent: - Parent window. - structure: - `Structure` object. - kpoints: - `KpointList` object. - """ - super(KpointsFrame, self).__init__(parent, **kwargs) - - self.panel = KpointsPanel(self, structure, kpoints) - - -class SpinKpointBandPanel(awx.Panel): - """ - This panel shows information on the k-points and the set of bands, spins. - Useful if we want to allow the user to select the set of indices (spin, kpt_idx, band). - """ - # Command event used to signal that the spin-kpoint-band has been selected. - SkbActivatedEvent, MYEVT_SKB_ACTIVATED = wx.lib.newevent.NewCommandEvent() - - def __init__(self, parent, structure, nsppol, kpoints, mband, bstart=0, **kwargs): - """ - Args: - structure: - Structure object. - nsppol: - Number of spins. - kpoints: - List of `Kpoint` instances. - mband: - Maximum band index. - bstart: - First band index. - """ - super(SpinKpointBandPanel, self).__init__(parent, style=wx.LC_REPORT | wx.BORDER_SUNKEN, **kwargs) - - self.parent = parent - self.nsppol, self.mband = nsppol, mband - self.bstart = bstart - - # Build UI - main_sizer = wx.BoxSizer(wx.VERTICAL) - - hsizer1 = wx.BoxSizer(wx.HORIZONTAL) - - band_label = wx.StaticText(self, -1, "Band:", wx.DefaultPosition, wx.DefaultSize, 0) - band_label.Wrap(-1) - hsizer1.Add(band_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - - self.band_cbox = wx.ComboBox(self, -1, choices=map(str, range(self.bstart, self.mband))) - hsizer1.Add(self.band_cbox, 0, wx.ALL, 5) - - spin_label = wx.StaticText(self, -1, "Spin:", wx.DefaultPosition, wx.DefaultSize, 0) - spin_label.Wrap(-1) - hsizer1.Add(spin_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5) - - self.spin_cbox = wx.ComboBox(self, -1, choices=map(str, range(self.nsppol))) - hsizer1.Add(self.spin_cbox, 0, wx.ALL, 5) - - main_sizer.Add(hsizer1, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) - - hsizer2 = wx.BoxSizer(wx.HORIZONTAL) - - kpoint_label = wx.StaticText(self, -1, "Kpoint:", wx.DefaultPosition, wx.DefaultSize, 0) - kpoint_label.Wrap(-1) - hsizer2.Add(kpoint_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) - - self.kpanel = KpointsPanel(self, structure, kpoints) - klist_ctrl = self.kpanel.klist_ctrl - - hsizer2.Add(self.kpanel, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5) - main_sizer.Add(hsizer2, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 5) - - self.SetSizerAndFit(main_sizer) - - # Connect the events whose callback will be set by the client code. - klist_ctrl.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) - #klist_ctrl.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnRightClick) - #klist_ctrl.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected) - - def getSelectedKpoint(self): - return self.kpanel.getSelectedKpoint() - - def GetSKB(self): - """Returns the tuple (spin, kpoint, band) selected by the user.""" - spin = int(self.spin_cbox.GetValue()) - kpoint = self.getSelectedKpoint() - band = int(self.band_cbox.GetValue()) - - # Default values if no item is selected.: - if spin == wx.NOT_FOUND: spin = 0 - if band == wx.NOT_FOUND: band = 0 - - return spin, kpoint, band - - def OnItemActivated(self, event): - """Fire SkbActivatedEvent.""" - #print("Firing SkbActivatedEvent") - event = self.SkbActivatedEvent(id=-1, skb=self.GetSKB()) - wx.PostEvent(self.parent, event) diff --git a/abipy/gui/mandelbrot.py b/abipy/gui/mandelbrot.py deleted file mode 100755 index c5a10afd0..000000000 --- a/abipy/gui/mandelbrot.py +++ /dev/null @@ -1,261 +0,0 @@ -#!/usr/bin/env python -"""MANDELBROT SET""" - -import numpy as np - -def mandelbrot(extent=None, ndivs=(1000,1000), iterations=100): - """ - Based on http://cyrille.rossant.net/mandelbrot-set/ - - Args: - extent: - (x_min, x_max, y_min, y_max)) - (nx,ny): - Number of points sampled along x and y. - iterations: - number of iterations - """ - if extent is None: - extent = (-2, 1, -1.5, 1.5) - - x_min, x_max, y_min, y_max = extent - nx, ny = ndivs - - # x, y are matrices containing the real and imaginary parts of all z values in the grid - xvals = np.linspace(x_min, x_max, nx) - yvals = np.linspace(y_min, y_max, ny) - - x, y = np.meshgrid(xvals, yvals) - - # we define c as c=x+iy, c is a nx x ny matrix. - c = x + 1j*y - - # initially, z=c, we copy so that z and c are different objects in memory - z = c.copy() - - # m is used to plot the fractal - m = np.zeros((nx, ny)) - - # iterations - for n in range(iterations): - print("Completed %d %%" % (100 * n/iterations)) - - # indices of the numbers c such that |z(c)|<=10, with z = z_n - indices = (np.abs(z) <= 10) - - # update z - z[indices] = z[indices]**2 + c[indices] - - # update the values in m - m[indices] = n - - return xvals, yvals, m - - -import wx -from wxmplot import ImageFrame, ImagePanel - - -class MyPanel(ImagePanel): - """Pass""" - def __init__(self, parent, **kwargs): - super(MyPanel, self).__init__(parent, **kwargs) - - #def onLeftUp(self, event=None): - # super(MyPanel, self).onLeftUp(event=event) - # print("onLeftUp") - # print(self.zoom_ini) - - def zoom_leftup(self, event=None): - super(MyPanel, self).zoom_leftup(event=event) - print("zoom_leftup", self.zoom_lims[-1]) - - #def redraw(self, col='int'): - # print("in redraw") - # super(MyPanel, self).redraw(col=col) - - def set_viewlimits(self, axes=None, autoscale=False): - super(MyPanel, self).set_viewlimits(axes=None, autoscale=False) - - xmin, xmax = self.axes.get_xlim() - ymin, ymax = self.axes.get_ylim() - print(xmin, xmax) - print(ymin, ymax) - - #x, y, m = mandelbrot(density=100) - #self.clear() - #self.display(m) - - #def lasso_leftup(self, event=None): - # """leftup event handler for lasso mode""" - # print("in lasso") - - #def zoom_motion(self, event=None): - # print("zoom_motion") - # super(MyPanel, self).zoom_motion(event=event) - # print(self.zoom_ini) - - -class FractalsFrame(ImageFrame): - def __init__(self, parent, **kwargs): - super(FractalsFrame, self).__init__(parent, **kwargs) - - ndivs = (1000,1000) - x, y, m = mandelbrot(ndivs=ndvis) - #print("x",x[0]) - #print("y",x[0]) - - self.display(m) # x=x[0], y=x[0]) - - self.panel.__class__ = MyPanel - -""" -An example of how to use wx or wxagg in an application with the new -toolbar - comment out the setA_toolbar line for no toolbar -""" - -# Used to guarantee to use at least Wx2.8 -import wxversion -wxversion.ensureMinimal('2.8') - - - -import matplotlib - -from mandelbrot import mandelbrot -import matplotlib.pyplot as plt - -# uncomment the following to use wx rather than wxagg -#matplotlib.use('WX') -#from matplotlib.backends.backend_wx import FigureCanvasWx as FigureCanvas - -# comment out the following to use wx rather than wxagg -matplotlib.use('WXAgg') -from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas -from matplotlib.backends.backend_wx import NavigationToolbar2Wx -from matplotlib.figure import Figure - - -class MyNavigationToolbar(NavigationToolbar2Wx): - - def __init__(self, frame): - super(MyNavigationToolbar, self).__init__(frame.canvas) - self.frame = frame - - def release_zoom(self, event): - super(MyNavigationToolbar, self).release_zoom(event) - print("in release_zoom",event) - - ax = self.canvas.figure.get_axes()[0] - xmin, xmax = ax.get_xlim() - ymin, ymax = ax.get_ylim() - print("xlim",xmin, xmax) - print("ylim",ymin, ymax) - - extent = (xmin, xmax, ymin, ymax) - self.frame.imshow_fractal(extent=extent) - - self.canvas.draw() - self.canvas.Refresh(eraseBackground=False) - - -class ConfPanel(wx.Panel): - - def __init__(self, parent, **kwargs): - super(ConfPanel, self).__init__(parent, -1, **kwargs) - self.BuildUi() - - def BuildUi(self): - main_sizer = wx.BoxSizer(wx.VERTICAL) - - # Get a list of the colormaps in matplotlib. Ignore the ones that end with - # '_r' because these are simply reversed versions of ones that don't end with '_r' - colormap_list = sorted(m for m in plt.cm.datad if not m.endswith("_r")) - self.cmap_choice = wx.Choice(self, choices=colormap_list) - - main_sizer.Add(self.cmap_choice, 0, wx.LEFT, 5) - - self.SetSizerAndFit(main_sizer) - - -class CanvasFrame(wx.Frame): - - def __init__(self, parent): - wx.Frame.__init__(self, parent, -1, 'CanvasFrame', size=(550,350)) - - #main_sizer = wx.BoxSizer(wx.VERTICAL) - #self.conf_panel = ConfPanel(self) - #main_sizer.Add(self.conf_panel, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - - self.SetBackgroundColour(wx.NamedColour("WHITE")) - self.figure = Figure() - self.axes = self.figure.add_subplot(111) - - self.cmap = plt.cm.hot - self.ndivs = (1000, 1000) - - self.canvas = FigureCanvas(self, -1, self.figure) - - self.sizer = sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW) - - self.toolbar = MyNavigationToolbar(self) - self.toolbar.Realize() - - # On Windows platform, default window size is incorrect, so set toolbar width to figure width. - tw, th = self.toolbar.GetSizeTuple() - fw, fh = self.canvas.GetSizeTuple() - # By adding toolbar in sizer, we are able to put it at the bottom - # of the frame - so appearance is closer to GTK version. - self.toolbar.SetSize(wx.Size(fw, th)) - sizer.Add(self.toolbar, 0, wx.LEFT | wx.EXPAND) - - # Update the axes menu on the toolbar - self.toolbar.update() - - self.SetSizerAndFit(sizer) - - # Compute fractal and show picture. - self.imshow_fractal() - - def imshow_fractal(self, extent=None): - xvals, yvals, data = mandelbrot(extent=extent, ndivs=self.ndivs) - - if extent is None: - extent = (xvals[0], xvals[-1], yvals[0], yvals[-1]) - - self.axes.imshow(np.log(data), cmap=plt.cm.hot, origin="lower", extent=extent) - - # Save values - self.xvals, self.yvals, self.data = xvals, yvals, data - - #def onclick(self, event): - # print('button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%( - # event.button, event.x, event.y, event.xdata, event.ydata)) - - -def wxapp_fractals(): - app = wx.App() - #frame = FractalsFrame(None) - frame = CanvasFrame(None) - app.SetTopWindow(frame) - frame.Show() - return app - - -if __name__ == "__main__": - import sys - wxapp_fractals().MainLoop() - sys.exit(0) - - x, y, m = mandelbrot() - - # we plot log(m) - import matplotlib.pyplot as plt - fig = plt.imshow(np.log(m), cmap=plt.cm.hot, extent=extent) - - plt.title('Mandelbrot Set') - plt.xlabel('Re(z)') - plt.ylabel('Im(z)') - - plt.show() diff --git a/abipy/gui/mdfviewer.py b/abipy/gui/mdfviewer.py deleted file mode 100644 index 9e3fa4d3b..000000000 --- a/abipy/gui/mdfviewer.py +++ /dev/null @@ -1,366 +0,0 @@ -import os -import wx -import wx.lib.agw.flatnotebook as fnb -import abipy.gui.awx as awx - -from wx.py.shell import Shell -from monty.string import marquee -from abipy.abilab import abiopen -from abipy.electrons.bse import MdfPlotter -from abipy.iotools.visualizer import Visualizer -from abipy.gui.kpoints import KpointsPanel -from abipy.gui import mixins as mix -from abipy.gui.baseviewer import MultiViewerFrame - - -# TODO Add ebands to MDF.nc -class MdfViewerFrame(MultiViewerFrame, mix.Has_Structure, mix.Has_MultipleEbands, mix.Has_Tools, mix.Has_NetcdfFiles): -#class MdfViewerFrame(MultiViewerFrame, mix.Has_Structure, mix.Has_Tools, mix.Has_NetcdfFiles): - VERSION = "0.1" - - HELP_MSG = """Quick help: - - Toolbar: - Click the button to plot the spectrum (averaged over the q-points) - Use the combo boxes to select the type of spectrum and the quantity to plot. - - Qpoint list: - - Right-Click: display popup menu with choices. - Select: plot the spectra for this qpoint. - -Also, these key bindings can be used -(For Mac OSX, replace 'Ctrl' with 'Apple'): - - Ctrl-Q: quit -""" - @property - def codename(self): - return "MdfViewer" - - @property - def active_mdf_file(self): - """The active MDF file i.e. the MDF associated to the active tab.""" - return self.active_tab.mdf_file - - @property - def structure(self): - """`Structure` associated to the active tab.""" - return self.active_mdf_file.structure - - @property - def ebands(self): - """`ElectronBands` associated to the active tab.""" - return self.active_mdf_file.ebands - - @property - def ebands_list(self): - """List of `ElectronBands`.""" - ebands_list = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - ebands_list.append(tab.mdf_file.ebands) - return ebands_list - - @property - def ebands_filepaths(self): - """ - Return a list with the absolute paths of the files - from which the `ElectronBands` have been read. - """ - paths = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - paths.append(tab.mdf_file.filepath) - return paths - - @property - def nc_filepaths(self): - """String with the absolute paths of the netcdf files.""" - paths = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - paths.append(tab.mdf_file.filepath) - return paths - - @property - def mdf_filepaths(self): - """ - Return a list with the absolute paths of the files - from which the `MDF_Files` have been read. - """ - paths = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - paths.append(tab.mdf_file.filepath) - return paths - - @property - def mdf_files_list(self): - """List of `MDF_Files`.""" - mdf_lists = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - mdf_lists.append(tab.mdf_file) - return mdf_lists - - def makeMenu(self): - """Creates the main menu.""" - # Base menu. - menu_bar = super(MdfViewerFrame, self).makeMenu() - - # Add Mixin menus. - menu_bar.Append(self.CreateStructureMenu(), "Structure") - #menu_bar.Append(self.CreateEbandsMenu(), "Ebands") - menu_bar.Append(self.CreateMdfMenu(), "Mdf") - menu_bar.Append(self.CreateToolsMenu(), "Tools") - menu_bar.Append(self.CreateNetcdfMenu(), "Netcdf") - - # Help menu - help_menu = self.makeHelpMenu() - menu_bar.Append(help_menu, "Help") - - self.SetMenuBar(menu_bar) - - def CreateMdfMenu(self): - # MDF Menu ID's - self.ID_MDF_PLOT_AVERAGE = wx.NewId() - self.ID_MDF_COMPARE = wx.NewId() - - menu = wx.Menu() - menu.Append(self.ID_MDF_PLOT_AVERAGE, "Plot averaged MDF", "Plot the average of the macroscopic dielectric function") - self.Bind(wx.EVT_MENU, self.onPlotAveragedMdf, id=self.ID_MDF_PLOT_AVERAGE) - - menu.AppendSeparator() - - menu.Append(self.ID_MDF_COMPARE, "Compare MDF", "Compare multiple macroscopic dielectric functions") - self.Bind(wx.EVT_MENU, self.OnMdfCompare, id=self.ID_MDF_COMPARE) - - return menu - - def onPlotAveragedMdf(self, event): - """Plot the average of the macroscopic dielectric function""" - mdf_type = self.getMdfType() - cplx_mode = self.getCplxMode() - #print(mdf_type, cplx_mode) - - mdf_file = self.active_mdf_file - mdf_file.plot_mdfs(cplx_mode=cplx_mode, mdf_type=mdf_type) - - def OnMdfCompare(self, event): - """Compare multiple averaged macroscopic dielectric functions""" - mdf_type = self.getMdfType() - cplx_mode = self.getCplxMode() - - if mdf_type == "ALL": - return awx.showErrorMessage(self, "ALL is not supported by Compare. Please use EXC, RPA, GWRPA") - - plotter = MdfPlotter() - for path, mdf_file in zip(self.mdf_filepaths, self.mdf_files_list): - label = os.path.relpath(path) - mdf = mdf_file.get_mdf(mdf_type) - plotter.add_mdf(label, mdf) - - plotter.plot(cplx_mode, qpoint=None) - - def makeToolBar(self): - """Creates the toolbar.""" - self.toolbar = toolbar = self.CreateToolBar() - toolbar.SetToolBitmapSize(wx.Size(48, 48)) - - def bitmap(path): - return wx.Bitmap(awx.path_img(path)) - - artBmp = wx.ArtProvider.GetBitmap - toolbar.AddSimpleTool(wx.ID_OPEN, artBmp(wx.ART_FILE_OPEN, wx.ART_TOOLBAR), "Open") - toolbar.AddSeparator() - - # Button to plot the averaged MDD - # TODO: Change icon. - toolbar.AddSimpleTool(self.ID_MDF_PLOT_AVERAGE, bitmap("wave.png"), "Plot averaged MDF") - - # Combo box with the list of MDF types - mdf_types = ["ALL", "EXC", "RPA", "GWRPA"] - self.mdftype_cbox = wx.ComboBox(toolbar, id=-1, name='MDF type', choices=mdf_types, value="ALL", style=wx.CB_READONLY) - self.mdftype_cbox.SetToolTipString("Select the type of MDF spectra to plot.") - toolbar.AddControl(control=self.mdftype_cbox, label="MDF Type:") - - # Combo box with the list of complex modes - cplx_modes = ["Re-Im", "Re", "Im"] - self.cplx_cbox = wx.ComboBox(toolbar, id=-1, name='COMPLEX mode', choices=cplx_modes, value="Re-Im", style=wx.CB_READONLY) - self.cplx_cbox.SetToolTipString("Select the component of the MDF spectra to plot (real or imaginary part).") - toolbar.AddControl(control=self.cplx_cbox, label="Complex Mode:") - - toolbar.Realize() - - def addFileTab(self, parent, filepath): - """Open a file and add a new tab to the notebook.""" - mdf_file = abiopen(filepath) - tab = MdfFileTab(self.notebook, mdf_file) - self.notebook.AddPage(tab, os.path.basename(filepath)) - - # List to events triggered by the popup menu in the qpoints_table. - qpanel = tab.qpoints_panel - self.Bind(qpanel.MYEVT_COMPARE_SPECTRAQ, self.onCompareSpectraQ) - - def getMdfType(self): - """Return the sting with the MDF type selected by the user.""" - mdf_type = self.mdftype_cbox.GetStringSelection() - if not mdf_type: mdf_type = "ALL" - return mdf_type - - def getCplxMode(self): - """Return the sting with the complex mode used for plotting the spectra.""" - cplx_mode = self.cplx_cbox.GetStringSelection() - if not cplx_mode: cplx_mode = "Re-Im" - return cplx_mode - - def onCompareSpectraQ(self, event): - """ - Compare different MDF(q) spectra (provided that we have multiple tabs in the notebook). - This callback is executed when MdfQpointsPanel fires CompareSpectraQEvent. - """ - qpoint = event.qpoint - mdf_type = self.getMdfType() - cplx_mode = self.getCplxMode() - - if mdf_type == "ALL": - return awx.showErrorMessage(self, "ALL is not supported by Compare. Please use EXC, RPA, GWRPA") - - plotter = MdfPlotter() - - # Extract the type of MDF we are interested in - for path, mdf_file in zip(self.mdf_filepaths, self.mdf_files_list): - label = os.path.relpath(path) - mdf = mdf_file.get_mdf(mdf_type) - plotter.add_mdf(label, mdf) - - plotter.plot(cplx_mode, qpoint=qpoint) - - -class MdfQpointsPanel(KpointsPanel): - """Extend KpointsPanel adding popupmenus""" - - # Command event used to signal that the we should compare multiple spectra (fixed q, move along files). - CompareSpectraQEvent, MYEVT_COMPARE_SPECTRAQ = wx.lib.newevent.NewCommandEvent() - - def __init__(self, parent, mdf_file, **kwargs): - KpointsPanel.__init__(self, parent, mdf_file.structure, mdf_file.qpoints) - self.parent = parent - self.mdf_file = mdf_file - - # Connect the events fired by klist_ctrl. - self.klist_ctrl.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onQpointActivated) - - def makePopupMenu(self): - """Build the popup menu.""" - # Menu of the base class - menu = super(MdfQpointsPanel, self).makePopupMenu() - - # Add other options - self.ID_POPUP_MDF_QCOMPARE = wx.NewId() - menu.Append(self.ID_POPUP_MDF_QCOMPARE, "Compare spectra(q)") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_POPUP_MDF_QCOMPARE, self.onCompareSpectraQ), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu - - @property - def viewer_frame(self): - """The parent frame `MdfViewerFrame`.""" - try: - return self._viewer_frame - - except AttributeError: - self._viewer_frame = self.getParentWithType(MdfViewerFrame) - return self._viewer_frame - - def onQpointActivated(self, event): - """Plot MDF(q) for the selected q-point.""" - qpoint = self.getSelectedKpoint() - if qpoint is None: return - - # Get the options from the ViewerFrame. - mdf_type = self.viewer_frame.getMdfType() - cplx_mode = self.viewer_frame.getCplxMode() - - #print(qpoint) - self.mdf_file.plot_mdfs(cplx_mode=cplx_mode, mdf_type=mdf_type, qpoint=qpoint) - - def onCompareSpectraQ(self, event): - """ - Get the selected q-point and fire CompareSpectraQEvent. - The parent frame will detect the event and will compare the - different MDF spectra (provided that we have multiple tabs in the notebook. - """ - qpoint = self.getSelectedKpoint() - if qpoint is None: return - # Post the event. - event = self.CompareSpectraQEvent(id=-1, qpoint=qpoint) - wx.PostEvent(self.parent, event) - - -class MdfFileTab(awx.Panel): - """Tab showing information on a single MDF file.""" - def __init__(self, parent, mdf_file, **kwargs): - """ - Args: - parent: - parent window. - mdf_file: - """ - super(MdfFileTab, self).__init__(parent, -1, **kwargs) - self.mdf_file = mdf_file - - splitter = wx.SplitterWindow(self, id=-1, style=wx.SP_3D) - splitter.SetSashGravity(0.95) - - self.qpoints_panel = MdfQpointsPanel(splitter, mdf_file) - - # Add Python shell - msg = "MDF_object is accessible via the mdf_file variable. Use mdf_file. to access the list of methods." - msg = marquee(msg, width=len(msg) + 8, mark="#") - msg = "#"*len(msg) + "\n" + msg + "\n" + "#"*len(msg) + "\n" - - # FIXME : CGContextRestoreGState: invalid context 0x0 - pyshell = Shell(splitter, introText=msg, locals={"mdf_file": mdf_file}) - splitter.SplitHorizontally(self.qpoints_panel, pyshell) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(splitter, 1, wx.EXPAND, 5) - self.SetSizerAndFit(sizer) - - @property - def statusbar(self): - return self.viewer_frame.statusbar - - @property - def viewer_frame(self): - """The parent frame `MdfViewerFrame`.""" - try: - return self._viewer_frame - - except AttributeError: - self._viewer_frame = self.getParentWithType(MdfViewerFrame) - return self._viewer_frame - - -class MdfViewerApp(awx.App): - pass - - -def wxapp_mdfviewer(mdf_filepaths): - """Standalone application.""" - app = MdfViewerApp() - frame = MdfViewerFrame(None, filepaths=mdf_filepaths) - app.SetTopWindow(frame) - frame.Show() - return app - diff --git a/abipy/gui/mixins.py b/abipy/gui/mixins.py deleted file mode 100644 index 79c94605d..000000000 --- a/abipy/gui/mixins.py +++ /dev/null @@ -1,513 +0,0 @@ -import abc -import os -import wx -import wx.lib.dialogs as wxdg -import abipy.gui.awx as awx -import abipy.gui.electronswx as ewx - -from monty.os.path import which -from abipy.core.mixins import NcDumper -from abipy.iotools.visualizer import Visualizer -from abipy.electrons.ebands import ElectronBandsPlotter, ElectronDosPlotter -from abipy.gui.structure import StructureConverterFrame -from abipy.gui.converter import ConverterFrame -from abipy.gui.wxncview import NcViewerFrame -from abipy.dfpt.phonons import PhononBandsPlotter, PhononDosPlotter -from abipy.abilab import abiopen -from abipy.iotools import ETSF_Reader - - -class Has_Structure(metaclass=abc.ABCMeta): - """ - Mixin class that provides a menu and callbacks - for analyzing the crystalline structure. - """ - @abc.abstractproperty - def structure(self): - """Structure object.""" - - def CreateStructureMenu(self): - """Creates the structure menu.""" - # Structure Menu ID's - self.ID_STRUCT_CONVERT = wx.NewId() - self.ID_STRUCT_VISUALIZE = wx.NewId() - self.ID_STRUCT_SHOWBZ = wx.NewId() - - menu = wx.Menu() - menu.Append(self.ID_STRUCT_CONVERT, "Convert", "Convert structure data to cif, POSCAR ...") - self.Bind(wx.EVT_MENU, self.OnStructureConvert, id=self.ID_STRUCT_CONVERT) - - menu.Append(self.ID_STRUCT_SHOWBZ, "Show BZ", "Visualize the first Brillouin zone with matplotlib.") - self.Bind(wx.EVT_MENU, self.OnStructureShowBz, id=self.ID_STRUCT_SHOWBZ) - - # Make sub-menu with the list of supported visualizers. - visu_menu = wx.Menu() - self._id2visuname = {} - - available_visus = [visu.name for visu in Visualizer.get_available()] - - for appname in available_visus: - _id = wx.NewId() - visu_menu.Append(_id, appname) - self._id2visuname[_id] = appname - self.Bind(wx.EVT_MENU, self.OnStructureVisualize, id=_id) - - menu.AppendMenu(-1, 'Visualize', visu_menu) - return menu - - def OnStructureConvert(self, event): - """Open new frame that allows the user to convert the structure.""" - StructureConverterFrame(self, self.structure).Show() - - def OnStructureVisualize(self, event): - """"Call the visualizer to visualize the crystalline structure.""" - appname = self._id2visuname[event.GetId()] - - try: - visu = self.structure.visualize(appname=appname) - thread = awx.WorkerThread(self, target=visu) - thread.start() - - except Exception: - awx.showErrorMessage(self) - - def OnStructureShowBz(self, event): - """"Visualize the Brillouin zone with matplotlib.""" - self.structure.show_bz() - - -class Has_Ebands(metaclass=abc.ABCMeta): - """ - Mixin class that provides a menu and callbacks for analyzing electron bands. - """ - @abc.abstractproperty - def ebands(self): - """`ElectronBands` object.""" - - def CreateEbandsMenu(self): - """Creates the ebands menu.""" - # Ebands Menu ID's - self.ID_EBANDS_GETINFO = wx.NewId() - self.ID_EBANDS_PLOT = wx.NewId() - self.ID_EBANDS_DOS = wx.NewId() - self.ID_EBANDS_JDOS = wx.NewId() - #self.ID_EBANDS_FSURF = wx.NewId() - #self.ID_EBANDS_SCISSORS = wx.NewId() - - menu = wx.Menu() - - menu.Append(self.ID_EBANDS_GETINFO, "Get Info", "Show info on the band structure") - self.Bind(wx.EVT_MENU, self.OnEbandsGetInfo, id=self.ID_EBANDS_GETINFO) - - menu.Append(self.ID_EBANDS_PLOT, "Plot ebands", "Plot electron bands with matplotlib") - self.Bind(wx.EVT_MENU, self.OnEbandsPlot, id=self.ID_EBANDS_PLOT) - - menu.Append(self.ID_EBANDS_DOS, "DOS", "Compute the electron DOS") - self.Bind(wx.EVT_MENU, self.OnEbandsDos, id=self.ID_EBANDS_DOS) - - menu.Append(self.ID_EBANDS_JDOS, "JDOS", "Compute the electron Joint DOS") - self.Bind(wx.EVT_MENU, self.OnEbandsJdos, id=self.ID_EBANDS_JDOS) - - # TODO - #menu.Append(self.ID_EBANDS_FSURF, "Fermi surface", "Visualize the Fermi surface with Xcrysden") - #self.Bind(wx.EVT_MENU, self.OnFermiSurface, id=self.ID_EBANDS_FSURF) - - # TODO - #menu.Append(self.ID_EBANDS_SCISSORS, "Apply scissors", "Apply a scissors operator") - #self.Bind(wx.EVT_MENU, self.OnApplyScissors, id=self.ID_EBANDS_SCISSORS) - - return menu - - def OnEbandsGetInfo(self, event): - """Shows info on the bandstructure.""" - s = self.ebands.info - caption = "Ebands info" - wxdg.ScrolledMessageDialog(self, s, caption=caption, style=wx.MAXIMIZE_BOX).Show() - - def OnEbandsPlot(self, event): - """Plot band energies with matplotlib.""" - self.ebands.plot() - - def OnEbandsDos(self, event): - """Open Frame for the computation of the DOS.""" - ewx.ElectronDosFrame(self, bands=self.ebands).Show() - - def OnEbandsJdos(self, event): - """Open Frame for the computation of the JDOS.""" - ewx.ElectronJdosFrame(self, bands=self.ebands).Show() - - def OnFermiSurface(self, event): - """Visualize the Fermi surface with Xcrysden.""" - try: - visu = self.ebands.export_bxsf(".bxsf") - - thread = awx.WorkerThread(self, target=visu) - thread.start() - - except Exception: - awx.showErrorMessage(self) - - #def OnApplyScissors(self, event): - # """ - # Read the scissors operator from a pickle file, apply it to the electron bands and save the results. - # """ - # Get the scissors operator from file - # Apply the scissors. - # new_ebands = self.ebands.apply_scissors(self, scissors) - # new_ebands.plot() - # new_ebands.pickle_dump() - - -class Has_MultipleEbands(Has_Ebands): - """ - Mixin class that provides a menu and callbacks - for analyzing and comparing multiple electron bands. - """ - def CreateEbandsMenu(self): - """Creates the ebands menu.""" - menu = super(Has_MultipleEbands, self).CreateEbandsMenu() - menu.AppendSeparator() - - # Multiple Ebands Menu ID's - self.ID_MULTI_EBANDS_PLOT = wx.NewId() - self.ID_MULTI_EBANDS_DOS = wx.NewId() - #self.ID_MULTI_EBANDS_JDOS = wx.NewId() - self.ID_MULTI_EBANDS_BANDSWITHDOS = wx.NewId() - - menu.Append(self.ID_MULTI_EBANDS_PLOT, "Compare ebands", "Plot multiple electron bands") - self.Bind(wx.EVT_MENU, self.OnCompareEbands, id=self.ID_MULTI_EBANDS_PLOT) - menu.Append(self.ID_MULTI_EBANDS_DOS, "Compare DOSes", "Compare multiple electron DOSes") - self.Bind(wx.EVT_MENU, self.OnCompareEdos, id=self.ID_MULTI_EBANDS_DOS) - #menu.Append(self.ID_MULTI_EBANDS_JDOS, "Compare JDOSes", "Compare multiple electron JDOSes") - #self.Bind(wx.EVT_MENU, self.OnCompareJdos, id=self.ID_MULTI_EBANDS_JDOS) - - menu.Append(self.ID_MULTI_EBANDS_BANDSWITHDOS, "Plot bands and DOS", "Plot electron bands and DOS on the same figure") - self.Bind(wx.EVT_MENU, self.onPlotEbandsWithDos, id=self.ID_MULTI_EBANDS_BANDSWITHDOS) - - return menu - - @abc.abstractproperty - def ebands_list(self): - """Return a list of `ElectronBands`.""" - - @abc.abstractproperty - def ebands_filepaths(self): - """ - Return a list with the absolute paths of the files - from which the `ElectronBands` have been read. - """ - - def OnCompareEbands(self, event): - """Plot multiple electron bands""" - plotter = ElectronBandsPlotter() - for path, ebands in zip(self.ebands_filepaths, self.ebands_list): - label = os.path.relpath(path) - plotter.add_ebands(label, ebands) - - try: - print(plotter.bands_statdiff()) - except: - pass - plotter.plot() - - def OnCompareEdos(self, event): - """Plot multiple electron DOSes""" - # Open dialog to get DOS parameters. - dialog = ewx.ElectronDosDialog(self) - if dialog.ShowModal() == wx.ID_CANCEL: return - dos_params = dialog.GetParams() - - plotter = ElectronDosPlotter() - for path, ebands in zip(self.ebands_filepaths, self.ebands_list): - try: - edos = ebands.get_edos(**dos_params) - label = os.path.relpath(path) - plotter.add_edos(label, edos) - except: - awx.showErrorMessage(self) - - plotter.plot() - - #def OnCompareJdos(self, event): - #"""Plot multiple electron JDOSes""" - # Open dialog to get DOS parameters. - #dialog = ElectronJdosDialog(self, nsppol, mband) - #jdos_params = dialog.GetParams() - - #plotter = ElectronBandsPlotter() - #for ebands in self.ebands_list: - # jos = ebands.get_jdos(**jdos_params) - # plotter.add_edos(label, edos) - # - #plotter.plot() - - def onPlotEbandsWithDos(self, event): - """Plot electron bands with DOS. Requires the specification of two files.""" - # Open dialog to get files and DOS parameters. - dialog = ewx.EbandsDosDialog(self, self.ebands_filepaths) - if dialog.ShowModal() == wx.ID_CANCEL: return - - try: - dos_params = dialog.getEdosParams() - ipath, idos = dialog.getBandsDosIndex() - - ebands_path = self.ebands_list[ipath] - ebands_mesh = self.ebands_list[idos] - - edos = ebands_mesh.get_edos(**dos_params) - ebands_path.plot_with_edos(edos) - except: - awx.showErrorMessage(self) - - -class Has_Tools(object): - """ - Mixin class that provides a menu with external tools. - """ - def CreateToolsMenu(self): - """Create the tools menu.""" - # Tools Menu ID's - self.ID_TOOLS_UNIT_CONVERTER = wx.NewId() - self.ID_TOOLS_PERIODIC_TABLE = wx.NewId() - - menu = wx.Menu() - menu.Append(self.ID_TOOLS_PERIODIC_TABLE, "Periodic table", "Periodic Table") - self.Bind(wx.EVT_MENU, self.OnTools_PeriodicTable, id=self.ID_TOOLS_PERIODIC_TABLE) - - menu.Append(self.ID_TOOLS_UNIT_CONVERTER, "Unit converter", "Unit Converter") - self.Bind(wx.EVT_MENU, self.OnTools_UnitConverter, id=self.ID_TOOLS_UNIT_CONVERTER) - - return menu - - def OnTools_PeriodicTable(self, event): - """Open new frame with the periodic table.""" - from awx.elements_gui import WxPeriodicTable - WxPeriodicTable(self).Show() - - def OnTools_UnitConverter(self, event): - """Open new frame with the unit converter.""" - ConverterFrame(self).Show() - - -class Has_NetcdfFiles(metaclass=abc.ABCMeta): - """ - Mixin class that provides a menu and callbacks - for analyzing and comparing netcdf files. - """ - @abc.abstractproperty - def nc_filepaths(self): - """List of absolute paths of the netcdf file.""" - - def CreateNetcdfMenu(self): - """Creates the ebands menu.""" - # Netcdf Menu ID's - self.ID_NETCDF_WXNCVIEW = wx.NewId() - self.ID_NETCDF_NCDUMP = wx.NewId() - self.ID_NETCDF_NCVIEW = wx.NewId() - - menu = wx.Menu() - - menu.Append(self.ID_NETCDF_WXNCVIEW, "wxncview", "Call wxncview") - self.Bind(wx.EVT_MENU, self.OnNetcdf_WxNcView, id=self.ID_NETCDF_WXNCVIEW) - - menu.Append(self.ID_NETCDF_NCDUMP, "ncdump", "Show the output of ncdump") - self.Bind(wx.EVT_MENU, self.OnNetcdf_NcDump, id=self.ID_NETCDF_NCDUMP) - - menu.Append(self.ID_NETCDF_NCVIEW, "ncview", "Call ncview") - self.Bind(wx.EVT_MENU, self.OnNetcdf_NcView, id=self.ID_NETCDF_NCVIEW) - - return menu - - def OnNetcdf_NcDump(self, event): - """Call ncdump and show results in a dialog.""" - for path in self.nc_filepaths: - s = NcDumper().dump(path) - caption = "ncdump output for %s" % path - wxdg.ScrolledMessageDialog(self, s, caption=caption, style=wx.MAXIMIZE_BOX).Show() - - def OnNetcdf_NcView(self, event): - """Call ncview in an subprocess.""" - if which("ncview") is None: - return awx.showErrorMessage(self, "Cannot find ncview in $PATH") - - for path in self.nc_filepaths: - def target(): - os.system("ncview %s" % path) - - thread = awx.WorkerThread(self, target=target) - thread.start() - - def OnNetcdf_WxNcView(self, event): - """Open wxncview frame.""" - NcViewerFrame(self, filepaths=self.nc_filepaths).Show() - - -class Has_Phbands(metaclass=abc.ABCMeta): - """ - Mixin class that provides a menu and callbacks for analyzing phonon bands. - """ - @abc.abstractproperty - def phbands(self): - """`PhononBands` object.""" - - def CreatePhbandsMenu(self): - """Creates the ebands menu.""" - # Ebands Menu ID's - self.ID_PHBANDS_ADD_DOS = wx.NewId() - self.ID_PHBANDS_ADD_LO_TO = wx.NewId() - self.ID_PHBANDS_PLOT = wx.NewId() - self.ID_PHBANDS_DOS = wx.NewId() - self.ID_MULTI_PHBANDS_BANDSWITHDOS = wx.NewId() - - menu = wx.Menu() - - menu.Append(self.ID_PHBANDS_ADD_DOS, "Add phdos data", "Add the phonon dos data from a PHDOS.nc file") - self.Bind(wx.EVT_MENU, self.OnAddDos, id=self.ID_PHBANDS_ADD_DOS) - - menu.Append(self.ID_PHBANDS_ADD_LO_TO, "Add LO-TO data", "Add the LO-TO splitting data from a PHDOS.nc file") - self.Bind(wx.EVT_MENU, self.OnAddLoTo, id=self.ID_PHBANDS_ADD_LO_TO) - - menu.Append(self.ID_PHBANDS_PLOT, "Plot phbands", "Plot phonon bands with matplotlib") - self.Bind(wx.EVT_MENU, self.OnPhbandsPlot, id=self.ID_PHBANDS_PLOT) - - menu.Append(self.ID_PHBANDS_DOS, "DOS", "Plot the phonon DOS") - self.Bind(wx.EVT_MENU, self.OnPhbandsDos, id=self.ID_PHBANDS_DOS) - - menu.Append(self.ID_MULTI_PHBANDS_BANDSWITHDOS, "Plot bands and DOS", "Plot phonon bands and DOS on the same figure") - self.Bind(wx.EVT_MENU, self.onPlotPhbandsWithDos, id=self.ID_MULTI_PHBANDS_BANDSWITHDOS) - - return menu - - def OnAddDos(self, event): - """Add PHDOS data to the active tab""" - dialog = wx.FileDialog(self, message="Choose a PHDOS.nc file", defaultDir=os.getcwd(), - wildcard="Netcdf files (*.nc)|*.nc", - style=wx.OPEN | wx.CHANGE_DIR) - - if dialog.ShowModal() == wx.ID_CANCEL: return - phdos = abiopen(dialog.GetPath()) - - self.active_tab.phdos_file = phdos - - def OnAddLoTo(self, event): - """Add LO-TO splitting data to the phbands in the active tab""" - dialog = wx.FileDialog(self, message="Choose an anaddb.nc file", defaultDir=os.getcwd(), - wildcard="Netcdf files (*.nc)|*.nc", - style=wx.OPEN | wx.CHANGE_DIR) - - if dialog.ShowModal() == wx.ID_CANCEL: return - - self.phbands.read_non_anal_from_file(dialog.GetPath()) - - def OnPhbandsPlot(self, event): - """Plot phonon frequencies with matplotlib.""" - self.phbands.plot() - - def OnPhbandsDos(self, event): - """Open Frame for the computation of the DOS.""" - if not self.phdos: - awx.showErrorMessage(self, message="PHDOS data should be loaded using the menu Phband->Add phdos data") - else: - plotter = PhononDosPlotter() - try: - label = os.path.relpath(self.active_phdos_file.filepath) - plotter.add_phdos(label, self.phdos) - except: - awx.showErrorMessage(self) - plotter.plot() - - def onPlotPhbandsWithDos(self, event): - """Plot phonon bands with DOS""" - - try: - if not self.phdos: - awx.showErrorMessage(self, message="PHDOS data should be loaded using the menu Phband->Add phdos data") - else: - self.phbands.plot_with_phdos(self.phdos) - except: - awx.showErrorMessage(self) - - @abc.abstractproperty - def phdos(self): - """PHDOS data for the active tab if it has been added. None otherwise""" - - -class Has_MultiplePhbands(Has_Phbands): - """ - Mixin class that provides a menu and callbacks - for analyzing and comparing multiple phonon bands. - """ - def CreatePhbandsMenu(self): - """Creates the ebands menu.""" - menu = super(Has_MultiplePhbands, self).CreatePhbandsMenu() - menu.AppendSeparator() - - # Multiple Ebands Menu ID's - self.ID_MULTI_PHBANDS_PLOT = wx.NewId() - self.ID_MULTI_PHBANDS_DOS = wx.NewId() - - menu.Append(self.ID_MULTI_PHBANDS_PLOT, "Compare phbands", "Plot multiple phonon bands") - self.Bind(wx.EVT_MENU, self.OnComparePhbands, id=self.ID_MULTI_PHBANDS_PLOT) - menu.Append(self.ID_MULTI_PHBANDS_DOS, "Compare DOSes", "Compare multiple phonon DOSes") - self.Bind(wx.EVT_MENU, self.OnComparePhdos, id=self.ID_MULTI_PHBANDS_DOS) - - return menu - - @abc.abstractproperty - def phbands_list(self): - """Return a list of `PhononBands`.""" - - @abc.abstractproperty - def phbands_filepaths(self): - """ - Return a list with the absolute paths of the files - from which the `PhononBands` have been read. - """ - - @abc.abstractproperty - def phdos_list(self): - """Return a list of `PhononDos`.""" - - @abc.abstractproperty - def phdos_filepaths(self): - """ - Return a list with the absolute paths of the files - from which the `PhononDos` have been read. - """ - - def OnComparePhbands(self, event): - """Plot multiple phonon bands""" - - dialog = ewx.BandsCompareDialog(self, self.phbands_filepaths) - if dialog.ShowModal() == wx.ID_CANCEL: return - - try: - selected = dialog.GetSelectedIndices() - - except: - awx.showErrorMessage(self) - - plotter = PhononBandsPlotter() - - for i in selected: - label = os.path.relpath(self.phbands_filepaths[i]) - plotter.add_phbands(label, self.phbands_list[i]) - - try: - print(plotter.bands_statdiff()) - except: - pass - plotter.plot() - - def OnComparePhdos(self, event): - """Plot multiple phonon DOSes""" - - plotter = PhononDosPlotter() - for path, phdos in zip(self.phdos_filepaths, self.phdos_list): - try: - label = os.path.relpath(path) - plotter.add_phdos(label, phdos) - except: - awx.showErrorMessage(self) - - plotter.plot() diff --git a/abipy/gui/oncvgui.py b/abipy/gui/oncvgui.py deleted file mode 100755 index cdfb59cb4..000000000 --- a/abipy/gui/oncvgui.py +++ /dev/null @@ -1,2853 +0,0 @@ -#!/usr/bin/env python -"""Gui for the oncvpsp norm-conserving pseudopotential generator.""" -import os -import copy -import time -import shutil -import abc -import sys -import wx -import wx.lib.mixins.listctrl as listmix -import numpy as np - -from collections import OrderedDict -from monty.dev import get_ncpus -from monty.collections import AttrDict -from pymatgen.core.periodic_table import Element -from abipy.gui.editor import TextNotebookFrame, SimpleTextViewer -from abipy.gui.oncvtooltips import oncv_tip -from abipy.gui import mixins as mix -from abipy.gui import awx -from abipy.gui.awx.elements_gui import WxPeriodicTable, PeriodicPanel, ElementButton -from abipy.flowtk import Pseudo - -try: - from pseudo_dojo.core.dojoreport import DojoReport - from pseudo_dojo.refdata.nist import database as nist - from pseudo_dojo.ppcodes.ppgen import OncvGenerator - from pseudo_dojo.ppcodes.oncvpsp import OncvOutputParser, MultiPseudoGenDataPlotter -except ImportError as exc: - print("Error while trying to import pseudo_dojo modules:\n%s" % str(exc)) - #raise - -# TODO -# Change oncvpsp so that -# 1) we always write the logarithmic derivative -# 2) better error handling - - -_char2l = { - "s": 0, - "p": 1, - "d": 2, - "f": 3, - "g": 4, - "h": 5, - "i": 6, -} - -def char2l(char): - return _char2l[char] - - -def all_symbols(): - return [e.symbol for e in Element] - - -def add_size(kwargs, size=(800, 600)): - """Add size to kwargs if not present.""" - if "size" not in kwargs: - kwargs["size"] = size - - return kwargs - - - -def my_periodic_table(parent): - """ - A periodic table that allows the user to select the element - before starting the pseudopotential generation. - """ - class MyElementButton(ElementButton): - - def makePopupMenu(self): - # Get the menu of the super class. - menu = super(MyElementButton, self).makePopupMenu() - - self.ID_POPUP_ONCVPSP = wx.NewId() - menu.Append(self.ID_POPUP_ONCVPSP, "Generate NC pseudo with oncvpsp") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_POPUP_ONCVPSP, self.onOncvpsp), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu - - def onOncvpsp(self, event): - """Open a frame for the initialization of oncvpsp.""" - frame = OncvParamsFrame(self, self.Z) - frame.Show() - - class MyPeriodicPanel(PeriodicPanel): - element_button_class = MyElementButton - - def OnSelect(self, event): - # Get the atomic number Z, open a dialog to get basic configuration parameters from the user. - # The dialog will then generate the main Frame for the pseudo generation. - super(MyPeriodicPanel, self).OnSelect(event) - z = event.GetId() - 100 - print("select", z) - - class MyPeriodicTable(WxPeriodicTable): - periodic_panel_class = MyPeriodicPanel - - return MyPeriodicTable(parent) - - -class OncvParamsFrame(awx.Frame): - """ - This frame allows the user to specify the most important parameters - to generate the pseudopotential once the chemical element has been selected. - """ - - HELP_MSG = """\ -Quick help: - Use this window to select the AE reference configuration and how - to separate states into core and valence. -""" - - def __init__(self, parent, z, **kwargs): - super(OncvParamsFrame, self).__init__(parent, **kwargs) - self.element = Element.from_Z(z) - self.buildUI() - - def buildUI(self): - # Build controller with the dimensions. - panel = wx.Panel(self, -1) - self.wxdims = awx.RowMultiCtrl(self, ctrl_params=OrderedDict([ - ("nc", dict(dtype="i", tooltip="Number of core states")), - ("nv", dict(dtype="i", tooltip="Number of valence states")), - ("lmax", dict(dtype="i", tooltip="Maximum angular momentum for pseudo")) - ])) - - # Initialize the quantum numbers of the AE atom with the ground-state configuration. - # E.g., The electronic structure for Fe is represented as: - # [(1, "s", 2), (2, "s", 2), (2, "p", 6), (3, "s", 2), (3, "p", 6), (3, "d", 6), (4, "s", 2)] - ele_struct = self.element.full_electronic_structure - - ctrls = OrderedDict([ - ("n", dict(dtype="i")), - ("l", dict(dtype="i")), - ("f", dict(dtype="f"))]) - - self.wxaeconf = awx.TableMultiCtrl(self, nrows=len(ele_struct), ctrls=ctrls) - - for wxrow, (n, lchar, f) in zip(self.wxaeconf, ele_struct): - row = OrderedDict() - row["n"], row["l"], row["f"] = n, char2l(lchar), f - wxrow.SetParams(row) - - add_button = wx.Button(self, -1, "Add row") - add_button.Bind(wx.EVT_BUTTON, self.onAddButton) - del_button = wx.Button(self, -1, "Delete row") - del_button.Bind(wx.EVT_BUTTON, self.onDelButton) - hsz = wx.BoxSizer(wx.HORIZONTAL) - hsz.Add(add_button) - hsz.Add(del_button) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - main_sizer.Add(hsz, 0,flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - main_sizer.Add(self.wxdims, 0, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - main_sizer.Add(self.wxaeconf, 0, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - help_button = wx.Button(self, wx.ID_HELP) - help_button.Bind(wx.EVT_BUTTON, self.onHelp) - main_sizer.Add(help_button, 0, flag=wx.ALL | wx.ALIGN_RIGHT) - - self.SetSizerAndFit(main_sizer) - - def get_oncv_params(self): - """Return the basic dimensions used in oncvpsp.""" - print(self.wxaeconf.GetParams()) - return AttrDict( - dims=self.wxdims.GetParams(), - ) - - def show_nist_lda_levels(self): - # Get the LDA levels of the neutral atom. - # (useful to decide if semicore states should be included in the valence). - entry = nist.get_neutral_entry(symbol=self.element.symbol) - frame = awx.Frame(self) - awx.ListCtrlFromTable(frame, table=entry.to_table()) - frame.Show() - - def onAddButton(self, event): - """Add a new row.""" - self.get_oncv_params() - - def onDelButton(self, event): - """Delete last row.""" - self.show_nist_lda_levels() - - -class WxOncvFrame(awx.Frame, mix.Has_Tools): - """The main frame of the GUI""" - VERSION = "0.1" - - HELP_MSG = """\ -This window shows a template input file with the variables -used to generated the pseudopotential. The `optimize` buttons -allows you to scan a set of possible values for the generation of the pseudopotential. -""" - - def __init__(self, parent, filepath=None): - super(WxOncvFrame, self).__init__(parent, id=-1, title=self.codename) - - # This combination of options for config seems to work on my Mac. - self.config = wx.FileConfig(appName=self.codename, localFilename=self.codename + ".ini", - style=wx.CONFIG_USE_LOCAL_FILE) - - # Build menu, toolbar and status bar. - self.SetMenuBar(self.makeMenu()) - self.statusbar = self.CreateStatusBar() - self.Centre() - self.makeToolBar() - #self.toolbar.Enable(False) - - self.input_file = None - if filepath is not None: - if os.path.exists(filepath): - self.input_file = os.path.abspath(filepath) - self.BuildUI(notebook=OncvNotebook.from_file(self, filepath)) - else: - # Assume symbol - self.BuildUI(notebook=OncvNotebook.from_symbol(self, filepath)) - else: - self.BuildUI() - - @property - def codename(self): - """Name of the application.""" - return "WxOncvGui" - - def BuildUI(self, notebook=None): - """Build user-interface.""" - old_selection = None - if hasattr(self, "main_sizer"): - # Remove old notebook - main_sizer = self.main_sizer - main_sizer.Hide(0) - main_sizer.Remove(0) - - # Save the active tab so that we can set it afterwards. - old_selection = self.notebook.GetSelection() - del self.notebook - else: - self.main_sizer = main_sizer = wx.BoxSizer(wx.VERTICAL) - - if notebook is not None: - self.notebook = notebook - else: - # Default is, of course, silicon. - self.notebook = OncvNotebook.from_symbol(self, "Si") - - main_sizer.Add(self.notebook, flag=wx.EXPAND) - self.SetSizerAndFit(main_sizer) - main_sizer.Layout() - - # Reinstate the old selection - if old_selection is not None: - self.notebook.SetSelection(old_selection) - - def AddFileToHistory(self, filepath): - """Add the absolute filepath to the file history.""" - self.file_history.AddFileToHistory(filepath) - self.file_history.Save(self.config) - self.config.Flush() - - def onFileHistory(self, event): - fileNum = event.GetId() - wx.ID_FILE1 - filepath = self.file_history.GetHistoryFile(fileNum) - self.file_history.AddFileToHistory(filepath) - - self.BuildUI(notebook=OncvNotebook.from_file(self, filepath)) - - def makeMenu(self): - """Creates the main menu.""" - menu_bar = wx.MenuBar() - - file_menu = wx.Menu() - file_menu.Append(wx.ID_OPEN, "&Open", help="Open an input file") - file_menu.Append(wx.ID_SAVE, "&Save", help="Save the input file") - file_menu.Append(wx.ID_CLOSE, "&Close", help="Close the Gui") - #file_menu.Append(wx.ID_EXIT, "&Quit", help="Exit the application") - - # Make sub-menu with the list of supported visualizers. - symbol_menu = wx.Menu() - self._id2symbol = {} - - for symbol in all_symbols(): - _id = wx.NewId() - symbol_menu.Append(_id, symbol) - self._id2symbol[_id] = symbol - self.Bind(wx.EVT_MENU, self.onNewNotebookFromSymbol, id=_id) - - file_menu.AppendMenu(-1, 'Template from element', symbol_menu) - - file_history = self.file_history = wx.FileHistory(8) - file_history.Load(self.config) - recent = wx.Menu() - file_history.UseMenu(recent) - file_history.AddFilesToMenu() - file_menu.AppendMenu(-1, "&Recent Files", recent) - self.Bind(wx.EVT_MENU_RANGE, self.onFileHistory, id=wx.ID_FILE1, id2=wx.ID_FILE9) - menu_bar.Append(file_menu, "File") - - # Add Mixin menus. - menu_bar.Append(self.CreateToolsMenu(), "Tools") - - help_menu = wx.Menu() - help_menu.Append(wx.ID_HELP, "Help ", help="Quick help") - help_menu.Append(wx.ID_ABOUT, "About " + self.codename, help="Info on the application") - menu_bar.Append(help_menu, "Help") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (wx.ID_OPEN, self.onOpen), - (wx.ID_CLOSE, self.onClose), - #(wx.ID_EXIT, self.onExit), - (wx.ID_SAVE, self.onSave), - (wx.ID_HELP, self.onHelp), - (wx.ID_ABOUT, self.onAbout), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu_bar - - def makeToolBar(self): - """Creates the toolbar.""" - self.toolbar = toolbar = self.CreateToolBar() - self.toolbar.SetToolBitmapSize(wx.Size(48, 48)) - - def bitmap(path): - return wx.Bitmap(awx.path_img(path)) - - self.ID_SHOW_INPUT = wx.NewId() - self.ID_RUN_INPUT = wx.NewId() - - toolbar.AddSimpleTool(self.ID_SHOW_INPUT, bitmap("in.png"), "Visualize the input file") - toolbar.AddSimpleTool(self.ID_RUN_INPUT, bitmap("run.png"), "Run the input file.") - - toolbar.Realize() - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_SHOW_INPUT, self.onShowInput), - (self.ID_RUN_INPUT, self.onRunInput), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - def onNewNotebookFromSymbol(self, event): - symbol = self._id2symbol[event.GetId()] - self.BuildUI(notebook=OncvNotebook.from_symbol(self, symbol)) - - def onShowInput(self, event): - """Show the input file in a new frame.""" - text = self.notebook.makeInputString() - SimpleTextViewer(self, text=text, title="Oncvpsp Input").Show() - - def onRunInput(self, event): - """Build a new generator from the input file, and add it to the queue.""" - text = self.notebook.makeInputString() - try: - psgen = OncvGenerator(text, calc_type=self.notebook.calc_type) - except: - return awx.showErrorMessage(self) - - frame = PseudoGeneratorsFrame(self, [psgen], title="Run Input") - frame.launch_psgens() - frame.Show() - - def onOpen(self, event): - """Open a file""" - dialog = wx.FileDialog(self, message="Choose an input file", style=wx.OPEN) - if dialog.ShowModal() == wx.ID_CANCEL: return - - filepath = dialog.GetPath() - dialog.Destroy() - - # Add to the history. - self.file_history.AddFileToHistory(filepath) - self.file_history.Save(self.config) - self.config.Flush() - - self.BuildUI(notebook=OncvNotebook.from_file(self, filepath)) - - def onSave(self, event): - """Save a file""" - dialog = wx.FileDialog(self, message="Save file as...", style=wx.SAVE | wx.OVERWRITE_PROMPT, - wildcard="Dat files (*.dat)|*.dat") - if dialog.ShowModal() == wx.ID_CANCEL: return - - filepath = dialog.GetPath() - dialog.Destroy() - - # Add to the history. - self.file_history.AddFileToHistory(filepath) - self.file_history.Save(self.config) - self.config.Flush() - - with open(filepath, "w") as fh: - fh.write(self.notebook.makeInputString()) - - def onClose(self, event): - """ Respond to the "Close" menu command.""" - self.Destroy() - - def onAbout(self, event): - return awx.makeAboutBox( - codename=self.codename, - version=self.VERSION, - description="oncvgui is a front-end for the pseudopotential generator oncvpsp", - developers=["Matteo Giantomassi"], - website="http://www.mat-simresearch.com/") - - -class OptimizationFrame(awx.Frame, metaclass=abc.ABCMeta): - """Base class for optimization frames.""" - def __init__(self, parent, **kwargs): - super(OptimizationFrame, self).__init__(parent, **kwargs) - - # All optimization buttons are disabled when we start an optimization. - #self.main_frame.notebook.enable_all_optimize_buttons(False) - #self.main_frame.Enable(False) - #self.Bind(wx.EVT_WINDOW_DESTROY, self.onDestroy) - - @property - def main_frame(self): - return self.getParentWithType(WxOncvFrame) - - def onDestroy(self, event): - """Enable all optimize_buttons before destroying the Frame.""" - #self.main_frame.notebook.enable_all_optimize_buttons(True) - return super(OptimizationFrame, self).Destroy() - - def onCloseButton(self, event): - self.onDestroy(event) - - def onOkButton(self, event): - """ - Get input from user, generate new input files by changing some parameters - and open a new frame for running the calculations. - """ - # Build the PseudoGenerators and open a new frame to run them. - psgens = [] - for inp in self.build_new_inps(): - try: - psgen = OncvGenerator(str(inp), calc_type=self.notebook.calc_type) - psgens.append(psgen) - except: - return awx.showErrorMessage(self) - - frame = PseudoGeneratorsFrame(self, psgens, title=self.opt_type) - frame.launch_psgens() - frame.Show() - - def make_buttons(self, parent=None): - """ - Build the three buttons (Generate, Cancel, Help), binds them and return the sizer. - """ - parent = self if parent is None else parent - - add_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - gen_button = wx.Button(parent, wx.ID_OK, label='Generate') - gen_button.Bind(wx.EVT_BUTTON, self.onOkButton) - - close_button = wx.Button(parent, wx.ID_CANCEL, label='Cancel') - close_button.Bind(wx.EVT_BUTTON, self.onCloseButton) - - help_button = wx.Button(parent, wx.ID_HELP) - help_button.Bind(wx.EVT_BUTTON, self.onHelp) - - hbox = wx.BoxSizer(wx.HORIZONTAL) - hbox.Add(gen_button, **add_opts) - hbox.Add(close_button, **add_opts) - hbox.Add(help_button, **add_opts) - - return hbox - - @abc.abstractproperty - def opt_type(self): - """Human-readable string describing the optimization type.""" - - @abc.abstractmethod - def build_new_inps(self): - """Returns a list of new inputs.""" - - -class LlocOptimizationFrame(OptimizationFrame): - """ - This frame allows the user to optimize the parameters for the local part of the pseudopotential - """ - HELP_MSG = """\ -This window allows you to change/optimize the parameters governing the local part""" - - def __init__(self, parent, notebook, **kwargs): - """ - Args: - notebook: - `OncvNotebool` containing the parameters of the template. - """ - super(LlocOptimizationFrame, self).__init__(parent, **kwargs) - - # Save reference to the input panel. - self.notebook = notebook - - panel = wx.Panel(self, -1) - main_sizer = wx.BoxSizer(wx.VERTICAL) - add_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - - #self.fcfact_ctl = awx.IntervalControl(self, start=0.25, num=6, step=0.05, choices=[">", "centered", "<"]) - #check_l.SetToolTipString("Enable/Disable optimization for this l-channel") - #main_sizer.Add(self.fcfact_ctl, 1, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - buttons_sizer = self.make_buttons() - main_sizer.Add(buttons_sizer, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - self.SetSizerAndFit(main_sizer) - - @property - def opt_type(self): - return "lloc optimization" - - def build_new_inps(self): - # Generate new list of inputs. - base_inp = self.notebook.makeInput() - return base_inp.optimize_vloc() - - -class Rc5OptimizationFrame(OptimizationFrame): - """ - This frame allows the user to optimize the parameters for the local part of the pseudopotential - """ - HELP_MSG = """\ -This window allows you to change/optimize the rc5 parameter""" - - def __init__(self, parent, notebook, **kwargs): - """ - Args: - notebook: - `OncvNotebool` containing the parameters of the template. - """ - super(Rc5OptimizationFrame, self).__init__(parent, **kwargs) - - # Save reference to the input panel. - self.notebook = notebook - - panel = wx.Panel(self, -1) - main_sizer = wx.BoxSizer(wx.VERTICAL) - add_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - - self.rc5_ctlr = awx.IntervalControl(self, start=0.25, num=6, step=0.05, choices=[">", "centered", "<"]) - main_sizer.Add(self.rc5_ctlr, 1, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - buttons_sizer = self.make_buttons() - main_sizer.Add(buttons_sizer, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - self.SetSizerAndFit(main_sizer) - - @property - def opt_type(self): - return "rc5 optimization" - - def build_new_inps(self): - # Generate new list of inputs. - base_inp = self.notebook.makeInput() - # TODO - return base_inp.optimize_rc5() - - -class DeblOptimizationFrame(OptimizationFrame): - """ - This frame allows the user to optimize the VKB projectors - """ - - HELP_MSG = """\ -This window allows you to optimize the parameters used to construct the VKB projectors.""" - - def __init__(self, parent, notebook, **kwargs): - """ - Args: - notebook: - Notebook containing the parameters of the template. - """ - super(DeblOptimizationFrame, self).__init__(parent, **kwargs) - - # Save reference to the input panel. - self.notebook = notebook - lmax = notebook.lmax - - panel = wx.Panel(self, -1) - main_sizer = wx.BoxSizer(wx.VERTICAL) - add_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - - # Build list of controls to allow the user to select the list of - # debl for the different l-channels. One can disable l-channels via checkboxes. - self.checkbox_l = [None] * (lmax + 1) - self.debl_range_l = [None] * (lmax + 1) - - debl_l = notebook.makeInput().debl_l - - for l in range(lmax + 1): - sbox_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Angular Channel L=%d" % l), wx.VERTICAL) - vsz = wx.BoxSizer(wx.HORIZONTAL) - - self.checkbox_l[l] = check_l = wx.CheckBox(self, -1) - check_l.SetToolTipString("Enable/Disable optimization for this l-channel") - check_l.SetValue(True) - self.debl_range_l[l] = debl_range_l = awx.IntervalControl(self, start=debl_l[l], num=3, step=0.5) - - vsz.Add(check_l, **add_opts) - vsz.Add(debl_range_l, **add_opts) - - sbox_sizer.Add(vsz, 1, wx.ALL, 5) - main_sizer.Add(sbox_sizer, 1, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - buttons_sizer = self.make_buttons() - main_sizer.Add(buttons_sizer, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - self.SetSizerAndFit(main_sizer) - - @property - def opt_type(self): - return "Vkb optimization" - - def build_new_inps(self): - # Get the list of angular channels activated and the corresponding arrays. - l_list, deblvals_list = [], [] - for l, (checkbox, wxrange) in enumerate(zip(self.checkbox_l, self.debl_range_l)): - if checkbox.IsChecked(): - l_list.append(l) - deblvals_list.append(wxrange.getValues()) - - # Generate new list of inputs. - base_inp = self.notebook.makeInput() - new_inps = [] - for l, new_debls in zip(l_list, deblvals_list): - new_inps.extend(base_inp.optimize_debls_for_l(l=l, new_debls=new_debls)) - - return new_inps - - -class FcfactOptimizationFrame(OptimizationFrame): - """ - This frame allows the user to optimize the model core charge - """ - - HELP_MSG = """\ -This window allows you to change/optimize the parameters governing the model core charge""" - - def __init__(self, parent, notebook, **kwargs): - """ - Args: - notebook: - Notebook containing the parameters of the template. - """ - super(FcfactOptimizationFrame, self).__init__(parent, **kwargs) - - # Save reference to the input panel. - self.notebook = notebook - - panel = wx.Panel(self, -1) - main_sizer = wx.BoxSizer(wx.VERTICAL) - add_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - - self.fcfact_ctl = awx.IntervalControl(self, start=0.25, num=6, step=0.05, choices=[">", "centered", "<"]) - #check_l.SetToolTipString("Enable/Disable optimization for this l-channel") - main_sizer.Add(self.fcfact_ctl, 1, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - buttons_sizer = self.make_buttons() - main_sizer.Add(buttons_sizer, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - self.SetSizerAndFit(main_sizer) - - @property - def opt_type(self): - return "fcfact optimization" - - def build_new_inps(self): - fcfact_list = self.fcfact_ctl.getValues() - print(fcfact_list) - - # Generate new list of inputs. - base_inp = self.notebook.makeInput() - return base_inp.optimize_modelcore(fcfact_list, add_icmod0=True) - - -class QcutOptimizationFrame(OptimizationFrame): - """ - This frame allows the user to select the l-channels and - the list of values of qcut_l to be analyzed. - """ - - HELP_MSG = """\ -This window allows you to change/optimize the value of the qcut parameters for -the different angular channel. Use the checkboxes to select the l-channel(s) to be -analyzed, and the other controls to specify the list of qc values to test. -""" - - def __init__(self, parent, notebook, **kwargs): - """ - Args: - notebook: - Notebook containing the parameters of the template. - """ - super(QcutOptimizationFrame, self).__init__(parent, **kwargs) - - # Save reference to the input panel. - self.notebook = notebook - lmax = notebook.lmax - - panel = wx.Panel(self, -1) - main_sizer = wx.BoxSizer(wx.VERTICAL) - add_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - - # Build list of controls to allow the user to select the list of - # qcuts for the different l-channels. One can disable l-channels via checkboxes. - self.checkbox_l = [None] * (lmax + 1) - self.wxqcut_range_l = [None] * (lmax + 1) - - qcut_l = notebook.makeInput().qcut_l - - for l in range(lmax + 1): - sbox_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Angular Channel L=%d" % l), wx.VERTICAL) - vsz = wx.BoxSizer(wx.HORIZONTAL) - - self.checkbox_l[l] = check_l = wx.CheckBox(self, -1) - check_l.SetToolTipString("Enable/Disable optimization for this l-channel") - check_l.SetValue(True) - - self.wxqcut_range_l[l] = qcrange_l = awx.IntervalControl(self, start=qcut_l[l], num=4, step=0.5) - - vsz.Add(check_l, **add_opts) - vsz.Add(qcrange_l, **add_opts) - - sbox_sizer.Add(vsz, 1, wx.ALL, 5) - main_sizer.Add(sbox_sizer, 1, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - buttons_sizer = self.make_buttons() - main_sizer.Add(buttons_sizer, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - self.SetSizerAndFit(main_sizer) - - @property - def opt_type(self): - return "Qcut optimization" - - def build_new_inps(self): - # Get the list of angular channels activated and the corresponding arrays. - l_list, qcvals_list = [], [] - for l, (checkbox, wxrange) in enumerate(zip(self.checkbox_l, self.wxqcut_range_l)): - if checkbox.IsChecked(): - l_list.append(l) - qcvals_list.append(wxrange.getValues()) - #print("\nl_list:", l_list, "\nqcvals_list", qcvals_list) - - # Generate new list of inputs. - base_inp = self.notebook.makeInput() - new_inps = [] - for l, new_qcuts in zip(l_list, qcvals_list): - new_inps.extend(base_inp.optimize_qcuts_for_l(l=l, new_qcuts=new_qcuts)) - - return new_inps - - -class RcOptimizationFrame(OptimizationFrame): - """ - This frame allows the user to select the l-channels and - the list of values of rc_l to be analyzed. - """ - - HELP_MSG = """\ -This window allows you to change/optimize the value of the rc parameters (core radius) -for the different angular channel.""" - - def __init__(self, parent, notebook, **kwargs): - """ - Args: - notebook: - Notebook containing the parameters of the template. - """ - super(RcOptimizationFrame, self).__init__(parent, **kwargs) - - panel = wx.Panel(self, -1) - main_sizer = wx.BoxSizer(wx.VERTICAL) - - # Save reference to the input panel. - self.notebook = notebook - lmax = notebook.lmax - - # Build list of controls to allow the user to select the list of - # qcut values for the different l-channels. - # One can disable particular l-channels via checkboxes. - self.checkbox_l = [None] * (lmax + 1) - self.wxrc_range_l = [None] * (lmax + 1) - - rc_l = notebook.makeInput().rc_l - - add_opts = dict(flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - for l in range(lmax + 1): - sbox_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Angular Channel L=%d" % l), wx.VERTICAL) - vsz = wx.BoxSizer(wx.HORIZONTAL) - - self.checkbox_l[l] = check_l = wx.CheckBox(self, -1) - check_l.SetToolTipString("Enable/Disable optimization for this l-channel") - check_l.SetValue(True) - - self.wxrc_range_l[l] = qcrange_l = awx.IntervalControl(self, start=rc_l[l], num=4, step=0.05) - - vsz.Add(check_l, **add_opts) - vsz.Add(qcrange_l, **add_opts) - - sbox_sizer.Add(vsz, 1, wx.ALL, 5) - main_sizer.Add(sbox_sizer, 1, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - buttons_sizer = self.make_buttons() - main_sizer.Add(buttons_sizer, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - self.SetSizerAndFit(main_sizer) - - @property - def opt_type(self): - return "Rc optimization" - - def build_new_inps(self): - l_list, rc_list = [], [] - for l, (checkbox, wxrange) in enumerate(zip(self.checkbox_l, self.wxrc_range_l)): - if checkbox.IsChecked(): - l_list.append(l) - rc_list.append(wxrange.getValues()) - - # Generate new list of inputs. - base_inp = self.notebook.makeInput() - new_inps = [] - for l, new_rcs in zip(l_list, rc_list): - new_inps.extend(base_inp.optimize_rcs_for_l(l, new_rcs)) - - return new_inps - - -def empty_field(tag, oncv_dims=None): - """Returns an empty field.""" - # Get the subclass from tag, initialize data with None and call __init__ - cls = _FIELD_LIST[tag] - data = cls.make_empty_data(oncv_dims=oncv_dims) - - return cls(tag, data, oncv_dims) - - -class Field(object): - # Flags used to define the type of field - # Subclasses should define the class attribute type - FTYPE_ROW = 1 - FTYPE_TABLE = 2 - FTYPE_RAGGED = 3 - - # TODO: Change convention cbox --> slist - parser_for_dtype = dict( - i=int, - f=float, - cbox=str, - ) - - def __init__(self, tag, data, oncv_dims): - """ - Args: - - tag: - Tag used to identify the field. - data: - Accepts Ordered dict or List of ordered dicts with varname=value. - - oncv_dims: - Dictionary with all the dimensions of the calculation. - """ - #print("tag", tag, "data", data, "oncv_dims", oncv_dims) - self.oncv_dims = AttrDict(**oncv_dims) - self.tag = tag - self.data = data - - @classmethod - def make_empty_data(cls, oncv_dims=None): - """Initialize data and fill it with None.""" - if cls.ftype == cls.FTYPE_ROW: - data = OrderedDict([(k, v.get("value")) for k, v in cls.WXCTRL_PARAMS.items()]) - - elif cls.ftype == cls.FTYPE_TABLE: - nrows = cls.nrows_from_dims(oncv_dims) - data = nrows * [None] - for i in range(nrows): - data[i] = OrderedDict([(k, v.get("value")) for k, v in cls.WXCTRL_PARAMS.items()]) - - else: - raise NotImplementedError(str(cls.ftype)) - - return data - - #@property - #def filepos(self): - # for pos, field in enumerate(_FIELD_LIST): - # if isinstance(self, field): - # return pos - # else: - # raise ValueError("Cannot find position of class:" % self.__class__.__name__) - - @property - def nrows(self): - """ - Number of rows i.e. the number of lines in the section - as specified in the input file. - """ - if self.ftype == self.FTYPE_ROW: - return 1 - elif self.ftype == self.FTYPE_TABLE: - return len(self.data) - else: - raise NotImplementedError() - - #@property - #def cols_per_row(self): - # if self.type == self.FTYPE_RAGGED: - # raise NotImplementedError() - - def __str__(self): - """Returns a string with the input variables.""" - lines = [] - app = lines.append - - # Some fields have a single row but we need a list in the loop below. - entries = self.data - if self.ftype == self.FTYPE_ROW: - entries = [self.data] - - for i, entry in enumerate(entries): - if i == 0: - # Put comment with the name of the variables only once. - app("# " + " ".join((str(k) for k in entry.keys()))) - app(" ".join(str(v) for v in entry.values())) - - return "\n".join(lines) - - def has_var(self, key): - """Return True if variable belongs to self.""" - if self.ftype == self.FTYPE_ROW: - return key in self.data - else: - return key in self.data[0] - - def set_var(self, key, value): - """Set the value of a variable.""" - assert self.has_var(key) - if self.ftype == self.FTYPE_ROW: - self.data[key] = value - - elif self.ftype == self.FTYPE_TABLE: - for r in range(self.nrows): - self.data[r][key] = value - - else: - raise NotImplementedError() - - def set_vars(self, ord_vars): - """ - Set the value of the variables inside a field - - Args: - ord_vars: - OrderedDict or list of OrderedDict (depending on field_idx). - """ - assert len(ord_vars) == len(self.data) - - if self.ftype == self.FTYPE_ROW: - #assert isinstance(ord_vars, OrderedDict) - for k, v in ord_vars.items(): - self.data[k] = v - - elif self.ftype == self.FTYPE_TABLE: - # List of ordered dicts. - for i, od in enumerate(ord_vars): - for k, v in od.items(): - self.data[i][k] = v - - else: - raise NotImplementedError() - - def set_vars_from_lines(self, lines): - """The the value of the variables from a list of strings.""" - #print("About to read: ", type(self), "\nlines=\n", "\n".join(lines)) - okeys = self.WXCTRL_PARAMS.keys() - odtypes = [v["dtype"] for v in self.WXCTRL_PARAMS.values()] - parsers = [self.parser_for_dtype[ot] for ot in odtypes] - #print("okeys", okeys, "odtypes", odtypes) - - if self.ftype == self.FTYPE_ROW: - assert len(lines) == 1 - tokens = lines[0].split() - #print("row tokens", tokens) - #if self.__class__ == VlocalField: tokens[-1] = int(tokens[-1]) - - for key, p, tok in zip(okeys, parsers, tokens): - #print(key) - try: - self.data[key] = p(tok) - except Exception: - print("Exception while trying to convert: key= %s, tok= %s" % (key, tok)) - raise - - elif self.ftype == self.FTYPE_TABLE: - assert len(lines) == self.nrows - for i in range(self.nrows): - tokens = lines[i].split() - #print("table tokens: ", tokens) - for key, p, tok in zip(okeys, parsers, tokens): - self.data[i][key] = p(tok) - - else: - raise NotImplementedError() - - def get_vars(self): - return self.data - - @classmethod - def from_wxctrl(cls, wxctrl, tag, oncv_dims): - """Build the object from a wxpython widget.""" - # Get the variables from the controller - ord_vars = wxctrl.GetParams() - # Build empty field and set its variables. - new = empty_field(tag, oncv_dims) - new.set_vars(ord_vars) - - return new - - def make_wxctrl(self, parent, **kwargs): - """"Build the wx controller associated to this field.""" - if self.ftype == self.FTYPE_ROW: - return awx.RowMultiCtrl(parent, self._customize_wxctrl(**kwargs)) - - elif self.ftype == self.FTYPE_TABLE: - return awx.TableMultiCtrl(parent, self.nrows, self._customize_wxctrl(**kwargs)) - - else: - # Ragged case e.g. test configurations: - #dims - raise NotImplementedError() - - def _customize_wxctrl(self, **kwargs): - """ - Start with the default parameters for the wx controller - and override them with those given in kwargs - """ - # Make a deep copy since WXTRL_PARAMS is mutable. - ctrl_params = copy.deepcopy(self.WXCTRL_PARAMS) - - for label, params in ctrl_params.items(): - value = kwargs.pop("label", None) - if value is not None: - params["value"] = str(value) - - return ctrl_params - - -class RowField(Field): - """A field made of a single row.""" - ftype = Field.FTYPE_ROW - - -class TableField(Field): - """A field made of multiple rows, all with the same number of columns.""" - ftype = Field.FTYPE_TABLE - - @classmethod - def nrows_from_dims(cls, oncv_dims): - """Return the number of rows from a dictionary with the dimensions.""" - raise NotImplementedError("Subclasses should define nrows_from_dims") - - def get_col(self, colname): - """Returns an array with the values of column colname.""" - col = [None] * len(self.data) - for i, row in enumerate(self.data): - col[i] = row[colname] - - return col - - -class RaggedField(Field): - """ - A field made of ragged rows, i.e. multiple rows with different number of columns. - """ - ftype = Field.FTYPE_RAGGED - - @classmethod - def nrows_from_dims(cls, oncv_dims): - """Return the number of rows from a dictionary with the dimensions.""" - raise NotImplementedError("Subclasses should define nrows_from_dims") - - @classmethod - def ncols_of_rows(cls, oncv_dims): - """Return the number of columns in each row from a dictionary with the dimensions.""" - raise NotImplementedError("Subclasses should define nrows_from_dims") - - -def add_tooltips(cls): - """Class decorator that add tooltips to WXCTRL_PARAMS.""" - d = cls.WXCTRL_PARAMS - for key, params in d.items(): - params["tooltip"] = oncv_tip(key) - - return cls - - -@add_tooltips -class AtomConfField(RowField): - name = "ATOMIC CONFIGURATION" - - WXCTRL_PARAMS = OrderedDict([ - ("atsym", dict(dtype="cbox", choices=all_symbols())), - ("z", dict(dtype="i")), - ("nc", dict(dtype="i", value=0, tooltip="number of core states"),), - ("nv", dict(dtype="i", value=0, tooltip="number of valence states")), - #("iexc", dict(dtype="i", value=4, tooltip="xc functional")), - # GGA-PBE - #("iexc", dict(dtype="f", value=4, tooltip="xc functional")), - #("iexc", dict(dtype="cbox", value="4", choices=["-001013", "4"], tooltip="xc functional")), - # LDA - ("iexc", dict(dtype="cbox", value="4", choices=["-001012", "4"], tooltip="xc functional")), - # PBEsol - #("iexc", dict(dtype="cbox", value="4", choices=["-116133", "4"], tooltip="xc functional")), - ("psfile", dict(dtype="cbox", value="psp8", choices=["psp8", "upf", "both"]))]) - - -@add_tooltips -class RefConfField(TableField): - name = "REFERENCE CONFIGURATION" - - WXCTRL_PARAMS = OrderedDict([ - ("n", dict(dtype="i")), - ("l", dict(dtype="i")), - ("f", dict(dtype="f"))]) - - #@classmethod - #def neutral_from_symbol(cls, symbol): - # # TODO - # element = periodic_table.Element(symbol) - # # E.g., The electronic structure for Fe is represented as: - # # [(1, "s", 2), (2, "s", 2), (2, "p", 6), (3, "s", 2), (3, "p", 6), (3, "d", 6), (4, "s", 2)] - # #new = empty_field(cls.tag, oncv_dims=dict(nc)) - # for row, (n, lchar, f) in zip(new, element.full_electronic_structure): - # row["n"], row["l"], row["f"] = n, periodic_table.char2l(lchar), f - # return new - - @classmethod - def nrows_from_dims(cls, oncv_dims): - return oncv_dims["nv"] + oncv_dims["nc"] - - @property - def nrows(self): - return self.oncv_dims["nv"] + self.oncv_dims["nc"] - - -@add_tooltips -class PseudoConfField(TableField): - name = "PSEUDOPOTENTIAL AND OPTIMIZATION" - - WXCTRL_PARAMS = OrderedDict([ - ("l", dict(dtype="i", value=0)), - ("rc", dict(dtype="f", value=3.0)), - ("ep", dict(dtype="f", value=0.0)), - ("ncon", dict(dtype="i", value=4)), - ("nbas", dict(dtype="i", value=7)), - ("qcut", dict(dtype="f", value=6.0))]) - - @classmethod - def nrows_from_dims(cls, oncv_dims): - return oncv_dims["lmax"] + 1 - - @property - def nrows(self): - return self.oncv_dims["lmax"] + 1 - - -@add_tooltips -class LmaxField(RowField): - name = "LMAX" - - WXCTRL_PARAMS = OrderedDict([ - ("lmax", dict(dtype="i", value=2))]) - - -@add_tooltips -class VlocalField(RowField): - name = "LOCAL POTENTIAL" - - WXCTRL_PARAMS = OrderedDict([ - ("lloc", dict(dtype="i", value=4)), - ("lpopt", dict(dtype="i", value=5)), - ("rc5", dict(dtype="f", value=3.0)), - ("dvloc0", dict(dtype="f", value=0))]) - - -@add_tooltips -class VkbConfsField(TableField): - name = "VANDERBILT-KLEINMAN-BYLANDER PROJECTORs" - - WXCTRL_PARAMS = OrderedDict([ - ("l", dict(dtype="i", value=0)), - ("nproj", dict(dtype="i", value=2)), - ("debl", dict(dtype="f", value=1.0))]) - - @classmethod - def nrows_from_dims(cls, oncv_dims): - return oncv_dims["lmax"] + 1 - - @property - def nrows(self): - return self.oncv_dims["lmax"] + 1 - - -@add_tooltips -class ModelCoreField(RowField): - name = "MODEL CORE CHARGE" - - WXCTRL_PARAMS = OrderedDict([ - ("icmod", dict(dtype="i", value=0)), - ("fcfact", dict(dtype="f", value=0.25)), - ("rcfact", dict(dtype="f", value=0.0)), - ]) - - -@add_tooltips -class LogDerField(RowField): - name = "LOG DERIVATIVE ANALYSIS" - - WXCTRL_PARAMS = OrderedDict([ - ("epsh1", dict(dtype="f", value=-12.0)), - ("epsh2", dict(dtype="f", value=+12.0)), - ("depsh", dict(dtype="f", value=0.02))]) - - -@add_tooltips -class RadGridField(RowField): - name = "OUTPUT GRID" - - WXCTRL_PARAMS = OrderedDict([ - ("rlmax", dict(dtype="f", value=6.0, step=1.0)), - ("drl", dict(dtype="f", value=0.01))]) - - -#@add_tooltips -#class TestConfigsField(RaggedField): - # name = "TEST CONFIGURATIONS" - # WXCTRL_PARAMS = OrderedDict([ - # ("ncnf", dict(dtype="i", value="0")), - # ("nvcnf", dict(dtype="i", value="0")), - # ("n", dict(dtype="i")), - # ("l", dict(dtype="i")), - # ("f", dict(dtype="f"))]) - - #@classmethod - #def from_oxidation_states(cls, symbol, only_common=True): - # """ - # Initialize the test configurations with the most common oxidation states. - - # Args: - # symbol: - # Chemical symbol.:w - # only_common: - # If False all the known oxidations states are considered, else only - # the most common ones. - # """ - # element = periodic_table.Element(symbol) - - # if only_common: - # oxi_states = element.common_oxidation_states - # else: - # oxi_states = element.oxidation_states - - # for oxi in oxi_states: - # # Get the electronic configuration of atom with Z = Z + oxi - # if oxi == 0: - # continue - # oxiele = periodic_table.Element.from_Z(element.Z + oxi) - - # # Here we found the valence configuration by comparing - # # the full configuration of oxiele and the one of the initial element. - - - # return new - - #@property - #def nrows(self): - # return self.oncv_dims["ncnf"] - - #@classmethod - #def nrows_from_dims(cls, oncv_dims): - # return oncv_dims["ncnf"] - - #@property - #def nlines_for_row(self, row): - - -# List with the field in the same order as the one used in the input file. -_FIELD_LIST = [ - AtomConfField, - RefConfField, - LmaxField, - PseudoConfField, - VlocalField, - VkbConfsField, - ModelCoreField, - LogDerField, - RadGridField, - #TestConfigsField, -] - -_NFIELDS = len(_FIELD_LIST) - - -class OncvInput(object): - """ - This object stores the variables needed for generating a pseudo with oncvsps. - One can initialize this object either from a prexisting file - or programmatically from the input provided by the user in a GUI. - - An input consistst of _NFIELDS fields. Each field is either a OrderedDict - or a list of ordered dicts with the input variables. - """ - @classmethod - def from_file(cls, filepath): - """Initialize the object from an external input file.""" - # Read input lines: ignore empty lines or line starting with # - lines = [] - with open(filepath) as fh: - for line in fh: - line = line.strip() - if line and not line.startswith("#"): - lines.append(line) - - # Read dimensions - # nc and nv from the first line. - tokens = lines[0].split() - atsym, z, nc, nv = tokens[0:4] - z, nc, nv = map(int, (z, nc, nv)) - - # Read lmax and ncfn - lmax = int(lines[nc + nv + 1]) - #print("lmax = ",lmax) - - # TODO - # number of tests and number of rows for the different configurations. - ncnf = 0 - - # Initialize the object - new = OncvInput(oncv_dims=dict(atsym=atsym, nc=nc, nv=nv, lmax=lmax, ncnf=ncnf)) - - # TODO - # Fill it - start = 0 - for field in new: - stop = start + field.nrows - #print(type(field)) - field.set_vars_from_lines(lines[start:stop]) - start = stop - - return new - - @classmethod - def from_symbol(cls, symbol): - """ - Return a tentative input file for generating a pseudo for the given chemical symbol - - .. note: - Assume default values that might not be optimal. - """ - nc, nv, lmax = 0, 0, 0 - #atom = nist.get_neutral_entry(symbol=symbol) - #for state in atom.states: - # lmax = max(lmax, state.l) - - # E.g., The electronic structure for Fe is represented as: - # [(1, "s", 2), (2, "s", 2), (2, "p", 6), (3, "s", 2), (3, "p", 6), (3, "d", 6), (4, "s", 2)] - element = Element[symbol] - for (n, lchar, f) in element.full_electronic_structure: - nc += 1 - lmax = max(lmax, char2l(lchar)) - - # FIXME - lmax = 1 - lmax = 2 - #lmax = 3 - - ncnf = 0 - oncv_dims = dict(atsym=symbol, nc=nc, nv=nv, lmax=lmax, ncnf=ncnf) - - new = cls(oncv_dims) - - field = new.fields[_FIELD_LIST.index(RefConfField)] - for row, (n, lchar, f) in zip(field.data, element.full_electronic_structure): - row["n"], row["l"], row["f"] = n, char2l(lchar), f - - return new - - def __init__(self, oncv_dims, fields=None): - """ - Initialize the object from a dict with the fundamental dimensions. - If fields is None, we create an empty dict, else we use fields. - """ - self.dims = AttrDict(**oncv_dims) - #print("oncv_dims", self.dims) - - if fields is None: - # Default fields. - self.fields = _NFIELDS * [None] - for i in range(_NFIELDS): - self.fields[i] = empty_field(i, self.dims) - - header = self.fields[_FIELD_LIST.index(AtomConfField)] - header.set_var("atsym", self.dims.atsym) - header.set_var("z", Element[self.dims.atsym].Z) - header.set_var("nc", self.dims.nc) - header.set_var("nv", self.dims.nv) - - else: - self.fields = fields - - # 1) ATOM CONFIGURATION - # atsym, z, nc, nv, iexc psfile - # O 8 1 2 3 psp8 - # - # 2) REFERENCE CONFIGURATION - # n, l, f (nc+nv lines) - # 1 0 2.0 - # 2 0 2.0 - # 2 1 4.0 - # - # 3) LMAX FIELD - # lmax - # 1 - # 4) PSEUDOPOTENTIAL AND OPTIMIZATION - # l, rc, ep, ncon, nbas, qcut (lmax+1 lines, l's must be in order) - # 0 1.60 0.00 4 7 8.00 - # 1 1.60 0.00 4 7 8.00 - # - # 5) LOCAL POTENTIAL - # lloc, lpopt, rc(5), dvloc0 - # 4 5 1.4 0.0 - # - # 6) VANDERBILT-KLEINMAN-BYLANDER PROJECTORs - # l, nproj, debl (lmax+1 lines, l's in order) - # 0 2 1.50 - # 1 2 1.00 - # - # 7) MODEL CORE CHARGE - # icmod, fcfact - # 0 0.0 - # - # 8) LOG DERIVATIVE ANALYSIS - # epsh1, epsh2, depsh - # -2.0 2.0 0.02 - # - # 9) OUTPUT GRID - # rlmax, drl - # 4.0 0.01 - - # TODO - # 10) TEST CONFIGURATIONS - # ncnf - # 2 - # nvcnf (repeated ncnf times) - # n, l, f (nvcnf lines, repeated follwing nvcnf's ncnf times) - # 2 - # 2 0 2.0 - # 2 1 3.0 - # - # 2 - # 2 0 1.0 - # 2 1 4.0 - #ncnf = 2 - #nvcnf = 2 - - @property - def lmax(self): - return self.dims.lmax - - def __iter__(self): - return self.fields.__iter__() - - def __str__(self): - """Returns a string with the input variables.""" - lines = [] - app = lines.append - - for i, field in enumerate(self): - # FIXME This breaks the output parser!!!!! - #pre = "\n#" if i > 0 else "" - #app(pre + field.name) - app(str(field)) - - s = "\n".join(lines) - # FIXME needed to bypass problems with tests - return s + "\n 0\n" - - def __setitem__(self, key, value): - ncount = 0 - for f in self.fields: - if f.has_var(key): - ncount += 1 - f.set_var(key, value) - - assert ncount == 1 - - def deepcopy(self): - """Deep copy of the input.""" - return copy.deepcopy(self) - - def optimize_vloc(self): - """Produce a list of new input files by changing the lloc option for vloc.""" - # Test all possible vloc up to lmax - inps, new = [], self.deepcopy() - for il in range(self.lmax+1): - new["lloc"] = il - inps.append(new.deepcopy()) - - # Add option for smooth polynomial - new["lloc"] = 4 - inps.append(new) - - return inps - - def optimize_modelcore(self, fcfact_list, add_icmod0=True): - """Produce a list of new input files by changing the icmod option for model core.""" - inps, new = [], self.deepcopy() - - if add_icmod0: - new["icmod"] = 0 - inps.append(new.deepcopy()) - - for fcfact in fcfact_list: - new["icmod"] = 1 - new["fcfact"] = fcfact - inps.append(new.deepcopy()) - - return inps - - @property - def qcut_l(self): - """List with the values of qcuts as function of l.""" - i = _FIELD_LIST.index(PseudoConfField) - return self.fields[i].get_col("qcut") - - @property - def debl_l(self): - """List with the values of debl as function of l.""" - i = _FIELD_LIST.index(VkbConfsField) - return self.fields[i].get_col("debl") - - @property - def rc_l(self): - """List with the values of rc as function of l.""" - i = _FIELD_LIST.index(PseudoConfField) - return self.fields[i].get_col("rc") - - def optimize_qcuts_for_l(self, l, new_qcuts): - """ - Returns a list of new input objects in which the qcut parameter for - the given l has been replaced by the values listed in new_qcuts. - - Args: - l: - Angular momentum - new_qcuts: - Iterable with the new values of qcut. - The returned list will have len(new_qcuts) input objects. - """ - # Find the field with the configuration parameters. - i = _FIELD_LIST.index(PseudoConfField) - - # Find the row with the given l. - for irow, row in enumerate(self.fields[i].data): - if row["l"] == l: - break - else: - raise ValueError("Cannot find l %s in the PseudoConfField" % l) - - # This is the dict we want to change - inps = [] - for qc in new_qcuts: - new_inp = self.deepcopy() - new_inp.fields[i].data[irow]["qcut"] = qc - inps.append(new_inp) - - return inps - - def optimize_rcs_for_l(self, l, new_rcs): - """ - Returns a list of new input objects in which the rc parameter for - the given l has been replaced by the values listed in new_rcs. - - Args: - l: - Angular momentum - new_rcs: - Iterable with the new values of rcs. - The returned list will have len(new_rcs) input objects. - """ - # Find the field with the configuration parameters. - i = _FIELD_LIST.index(PseudoConfField) - - # Find the row with the given l. - for irow, row in enumerate(self.fields[i].data): - if row["l"] == l: - break - else: - raise ValueError("Cannot find l %s in the PseudoConfField" % l) - - # This is the dict we want to change - inps = [] - for rc in new_rcs: - new_inp = self.deepcopy() - new_inp.fields[i].data[irow]["rc"] = rc - inps.append(new_inp) - - return inps - - def optimize_debls_for_l(self, l, new_debls): - """ - Returns a list of new input objects in which the debls parameter for - the given l has been replaced by the values listed in new_debls. - - Args: - l: - Angular momentum - new_debls: - Iterable with the new values of debls. - The returned list will have len(new_debls) input objects. - """ - # Find the field with the configuration parameters. - i = _FIELD_LIST.index(VkbConfsField) - - # Find the row with the given l. - for irow, row in enumerate(self.fields[i].data): - if row["l"] == l: - break - else: - raise ValueError("Cannot find l %s in the VkbConfsField" % l) - - # This is the dict we want to change - inps = [] - for debl in new_debls: - new_inp = self.deepcopy() - new_inp.fields[i].data[irow]["debl"] = debl - inps.append(new_inp) - - return inps - - -class OncvNotebook(wx.Notebook): - - @classmethod - def from_file(cls, parent, filename): - inp = OncvInput.from_file(filename) - new = cls(parent, inp.dims) - - for field in inp: - wxctrl = new.wxctrls[field.__class__] - wxctrl.SetParams(field.data) - - return new - - @classmethod - def from_symbol(cls, parent, symbol): - inp = OncvInput.from_symbol(symbol) - new = cls(parent, inp.dims) - - for field in inp: - wxctrl = new.wxctrls[field.__class__] - wxctrl.SetParams(field.data) - - return new - - #def fromInput(cls) - - def __init__(self, parent, oncv_dims): - super(OncvNotebook, self).__init__(parent) - - # Build tabs - self.oncv_dims = oncv_dims - self.ae_tab = AeConfTab(self, oncv_dims) - self.ps_tab = PsConfTab(self, oncv_dims) - self.pstests_tab = PsTestsTab(self, oncv_dims) - - # Add tabs - self.AddPage(self.ae_tab, "AE config") - self.AddPage(self.ps_tab, "PP config") - self.AddPage(self.pstests_tab, "Tests") - - @property - def tabs(self): - return (self.ae_tab, self.ps_tab, self.pstests_tab) - - @property - def wxctrls(self): - d = {} - for tab in self.tabs: - d.update(tab.wxctrls) - return d - - @property - def calc_type(self): - return self.ae_tab.calctype_cbox.GetValue() - - @property - def lmax(self): - # TODO: property or method? - return self.ps_tab.wxctrls[LmaxField].GetParams()["lmax"] - - def getElement(self): - symbol = self.ae_tab.wxctrls[AtomConfField].GetParams()["atsym"] - return Element[symbol] - - def makeInput(self): - """Build an OncvInput instance from the values specified in the controllers.""" - inp = OncvInput(self.oncv_dims) - - for cls, wxctrl in self.wxctrls.items(): - i = _FIELD_LIST.index(cls) - inp.fields[i].set_vars(wxctrl.GetParams()) - - return inp - - def makeInputString(self): - """Return a string with the input passed to the pp generator.""" - return str(self.makeInput()) - - -class AeConfTab(awx.Panel): - def __init__(self, parent, oncv_dims): - super(AeConfTab, self).__init__(parent) - - # Set the dimensions and build the widgets. - self.oncv_dims = oncv_dims - self.buildUI() - - def buildUI(self): - self.main_sizer = main_sizer = wx.BoxSizer(wx.VERTICAL) - - stext = wx.StaticText(self, -1, "Calculation type:") - choices = ["scalar-relativistic", "fully-relativistic", "non-relativistic"] - self.calctype_cbox = wx.ComboBox( - self, id=-1, name='Calculation type', choices=choices, value=choices[0], style=wx.CB_READONLY) - - add_opts = dict(proportion=0, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - sizer_addopts = dict(proportion=0, flag=wx.ALL, border=5) - - hbox0 = wx.BoxSizer(wx.HORIZONTAL) - hbox0.Add(stext, **add_opts) - hbox0.Add(self.calctype_cbox) - - main_sizer.Add(hbox0, **add_opts) - - #(list_of_classes_on_row, show) - layout = [ - AtomConfField, - RefConfField, - RadGridField, - ] - - # Each field has a widget that returns the variables in a dictionary - self.wxctrls = {} - self.sbox_sizers = {} - #self.sboxes = {} - - for cls in layout: - i = _FIELD_LIST.index(cls) - f = empty_field(i, self.oncv_dims) - wxctrl = f.make_wxctrl(self) - sbox = wx.StaticBox(self, -1, f.name + ":") - sbox_sizer = wx.StaticBoxSizer(sbox, wx.VERTICAL) - #sbox_sizer = wx.BoxSizer(wx.VERTICAL) - sbox_sizer.Add(wxctrl, **sizer_addopts) - #sz = wx.FlexGridSizer(wx.VERTICAL) - #sz.Add(sbox_sizer) - - self.wxctrls[cls] = wxctrl - self.sbox_sizers[cls] = sbox_sizer - #self.sboxes[cls] = sz - - main_sizer.Add(sbox_sizer, **add_opts) - - lda_levels_button = wx.Button(self, -1, "LDA levels (NIST)") - lda_levels_button.Bind(wx.EVT_BUTTON, self.onShowLdaLevels) - main_sizer.Add(lda_levels_button, **add_opts) - - add_button = wx.Button(self, -1, "Add level") - add_button.action = "add" - add_button.Bind(wx.EVT_BUTTON, self.onAddRemoveLevel) - main_sizer.Add(add_button, **add_opts) - - remove_button = wx.Button(self, -1, "Remove level") - remove_button.action = "remove" - remove_button.Bind(wx.EVT_BUTTON, self.onAddRemoveLevel) - main_sizer.Add(remove_button, **add_opts) - - self.SetSizerAndFit(main_sizer) - - @property - def atomconf(self): - return self.wxctrls[AtomConfField].GetParams() - - @property - def nc(self): - return self.atomconf["nc"] - - @property - def nv(self): - return self.atomconf["nv"] - - @property - def symbol(self): - return self.atomconf["atsym"] - - def get_core(self): - # E.g., The electronic structure for Fe is represented as: - # [(1, "s", 2), (2, "s", 2), (2, "p", 6), (3, "s", 2), (3, "p", 6), (3, "d", 6), (4, "s", 2)] - core = [] - refconf = self.wxctrls[RefConfField] - for ic in range(self.nc): - d = refconf[ic].GetParams() - t = [d[k] for k in ("n", "l", "f")] - core.append(tuple(t)) - - return core - - def get_valence(self): - valence = [] - refconf = self.wxctrls[RefConfField] - for iv in range(self.nc, self.nc + self.nv): - d = refconf[iv].GetParams() - t = [d[k] for k in ("n", "l", "f")] - valence.append(tuple(t)) - - return valence - - def onAddRemoveLevel(self, event): - button = event.GetEventObject() - sbox_sizer = self.sbox_sizers[RefConfField] - old = self.wxctrls[RefConfField] - sbox_sizer.Hide(0) - sbox_sizer.Remove(0) - - if button.action == "add": - old.appendRow() - elif button.action == "remove": - old.removeRow() - - sizer_addopts = dict(proportion=0, flag=wx.ALL, border=5) - sbox_sizer.Insert(0, old, **sizer_addopts) - - #self.sboxes[RefConfField].Layout() - sbox_sizer.Show(0) - sbox_sizer.Layout() - #self.main_sizer.Layout() - self.Layout() - self.Fit() - - #frame = self.GetParent().GetParent() - #frame.fSizer.Layout() - #frame.Fit() - - def onShowLdaLevels(self, event): - # Get the LDA levels of the neutral atom. - # (useful to decide if semicore states should be included in the valence). - entry = nist.get_neutral_entry(self.symbol) - frame = awx.Frame(self, title="LDA levels for neutral %s (NIST database)" % self.symbol) - awx.ListCtrlFromTable(frame, table=entry.to_table()) - frame.Show() - - -class PsConfTab(awx.Panel): - def __init__(self, parent, oncv_dims): - super(PsConfTab, self).__init__(parent) - - self.notebook = parent - - # Set the dimensions and build the widgets. - self.oncv_dims = oncv_dims - self.buildUI() - - def buildUI(self): - sizer_addopts = dict(proportion=0, flag=wx.ALL, border=5) - add_opts = dict(proportion=0, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=5) - - self.main_sizer = main_sizer = wx.BoxSizer(wx.VERTICAL) - - # list_of_classes - layout = [ - LmaxField, - PseudoConfField, - VkbConfsField, - VlocalField, - ModelCoreField, - ] - - # FieldClass: [(label, OptimizationFrame), ....] - fields_with_optimization = { - PseudoConfField: [ - ("Change rc", RcOptimizationFrame), - ("Change qcut", QcutOptimizationFrame), - ], - VlocalField: [ - ("Change lloc", LlocOptimizationFrame), - ("Change rc5", Rc5OptimizationFrame), - ], - ModelCoreField: [("Change fcfact", FcfactOptimizationFrame)], - VkbConfsField: [("Change debl", DeblOptimizationFrame)], - } - - # Each field has a widget that returns the variables in a dictionary - self.wxctrls = {} - - # Keep an internal list of buttons so that we can disable them easily. - self.all_optimize_buttons = [] - self.sboxes = {} - - for cls in layout: - i = _FIELD_LIST.index(cls) - f = empty_field(i, self.oncv_dims) - wxctrl = f.make_wxctrl(self) - - sbox_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, f.name + ":"), wx.VERTICAL) - #sbox_sizer = wx.BoxSizer(wx.VERTICAL) - sbox_sizer.Add(wxctrl, **sizer_addopts) - - self.sboxes[cls] = sbox_sizer - self.wxctrls[cls] = wxctrl - - # add optimization button if the field supports it. - if f.__class__ in fields_with_optimization: - hsz = wx.BoxSizer(wx.HORIZONTAL) - for label, opt_frame in fields_with_optimization[f.__class__]: - optimize_button = wx.Button(self, -1, label) - optimize_button.Bind(wx.EVT_BUTTON, self.onOptimize) - optimize_button.field_class = f.__class__ - optimize_button.opt_frame = opt_frame - - self.all_optimize_buttons.append(optimize_button) - hsz.Add(optimize_button, 0, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, border=5) - - sbox_sizer.Add(hsz, 0, flag=wx.ALL | wx.ALIGN_CENTER_HORIZONTAL) - - main_sizer.Add(sbox_sizer, **add_opts) - - #self.old_lmax = self.lmax_ctrl.GetParams()["lmax"] - #self.wxctrls[LmaxField].Bind( - - add_button = wx.Button(self, -1, "Add row") - add_button.Bind(wx.EVT_BUTTON, self.onLmaxChanged) - main_sizer.Add(add_button) - - self.SetSizerAndFit(main_sizer) - - @property - def lmax_ctrl(self): - return self.wxctrls[LmaxField] - - def onLmaxChanged(self, event): - #self.wxctrls[PseudoConfField].appendRow() - #self.wxctrls[VkbConfsField].appendRow() - - #main_sizer = self.main_sizer - #main_sizer.Hide(1) - #main_sizer.Remove(1) - #main_sizer.Insert(1, self.wxctrls[PseudoConfField], 0, wx.EXPAND | wx.ALL, 5) - - #for sbox in self.sboxes.values(): - # sbox.Layout() - self.main_sizer.Layout() - - def onOptimize(self, event): - button = event.GetEventObject() - #self.enable_all_optimize_buttons(False) - opt_frame = button.opt_frame - - try: - opt_frame(self, notebook=self.notebook).Show() - finally: - self.enable_all_optimize_buttons(True) - - def enable_all_optimize_buttons(self, enable=True): - """Enable/disable the optimization buttons.""" - for button in self.all_optimize_buttons: - button.Enable(enable) - - -class PsTestsTab(awx.Panel): - def __init__(self, parent, oncv_dims): - super(PsTestsTab, self).__init__(parent) - self.notebook = parent - - self.main_sizer = main_sizer = wx.BoxSizer(wx.VERTICAL) - add_opts = dict(proportion=0, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL | wx.EXPAND, border=5) - - layout = [ - LogDerField, - ] - - self.wxctrls = {} - - for cls in layout: - i = _FIELD_LIST.index(cls) - f = empty_field(i, oncv_dims) - wxctrl = f.make_wxctrl(self) - self.wxctrls[cls] = wxctrl - sbox_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, f.name + ":"), wx.VERTICAL) - sbox_sizer.Add(wxctrl, **add_opts) - main_sizer.Add(sbox_sizer, **add_opts) - - self.conf_txtctrl = wx.TextCtrl(self, -1, "#TEST CONFIGURATIONS\n 0", style=wx.TE_MULTILINE | wx.TE_LEFT) - main_sizer.Add(self.conf_txtctrl, **add_opts) - - common_button = wx.Button(self, -1, label='Common Oxidation States') - common_button.Bind(wx.EVT_BUTTON, self.addOxiStates) - common_button.test_mode = "common_oxis" - - all_button = wx.Button(self, -1, label='All Oxidation States') - all_button.Bind(wx.EVT_BUTTON, self.addOxiStates) - all_button.test_mode = "all_oxis" - - hsz = wx.BoxSizer(wx.HORIZONTAL) - hsz.Add(common_button, **add_opts) - hsz.Add(all_button, **add_opts) - main_sizer.Add(hsz, **add_opts) - - self.SetSizerAndFit(main_sizer) - - def conftests_str(self): - return self.conf_txtctrl.GetValue() - - def addOxiStates(self, event): - button = event.GetEventObject() - test_mode = button.test_mode - - element = self.notebook.getElement() - - if test_mode == "common_oxis": - oxi_states = element.common_oxidation_states - title = "(common oxidation states)" - elif test_mode == "all_oxis": - oxi_states = element.oxidation_states - title = "(all oxidation states)" - else: - raise ValueError("Wrong test_mode %s" % test_mode) - - self.conf_txtctrl.Clear() - self.conf_txtctrl.WriteText("# TEST CONFIGURATIONS" + title + "\n") - - core_aeatom = self.notebook.ae_tab.get_core() - val_aeatom = self.notebook.ae_tab.get_valence() - print("core", core_aeatom) - print("val", val_aeatom) - - """ - # TEST CONFIGURATIONS - # ncnf - 3 - # - # nvcnf (repeated ncnf times) - # n, l, f (nvcnf lines, repeated follwing nvcnf's ncnf times) - 2 - 2 0 2.0 - 2 1 3.0 - # - 2 - 2 0 1.0 - 2 1 4.0 - # - 2 - 2 0 1.0 - 2 1 3.0 - """ - test_confs = [] - - for oxi in oxi_states: - #self.conf_txtctrl.WriteText(str(oxi) + "\n") - - # Get the electronic configuration of atom with Z = Z + oxi - if oxi == 0: continue - - # Here we found the valence configuration by comparing - # the full configuration of oxiele and the one of the initial element. - oxi_element = Element.from_Z(element.Z - oxi) - oxi_estruct = oxi_element.full_electronic_structure - oxi_estruct = [(t[0], char2l(t[1]), t[2]) for t in oxi_estruct] - - if oxi < 0: - test_conf = [t for t in oxi_estruct if t not in core_aeatom] - else: - test_conf = [t for t in oxi_estruct if t not in core_aeatom] - - self.conf_txtctrl.WriteText(str(oxi) + "\n") - self.conf_txtctrl.WriteText(str(oxi_element) + "\n") - self.conf_txtctrl.WriteText(str(test_conf) + "\n") - - self.conf_txtctrl.WriteText("# ncnf\n" + str(len(test_confs)) + "\n") - self.conf_txtctrl.WriteText("""\ -# -# nvcnf (repeated ncnf times) -# n, l, f (nvcnf lines, repeated follwing nvcnf's ncnf times)\n""") - - #for test in test_confs: - # self.conf_txtctrl.WriteText(len(test) + "\n") - # for row in test: - # self.conf_txtctrl.WriteText(str(row) + "\n") - - self.main_sizer.Layout() - - -# Event posted when we start an optimization. -#EVT_OPTIMIZATION_TYPE = wx.NewEventType() -#EVT_OPTIMIZATION = wx.PyEventBinder(EVT_CONSOLE_TYPE, 1) -# -#class OptimizationEvent(wx.PyEvent): -# """ -# This event is triggered when we start/end the optimization process -# """ -# def __init__(self, kind, msg): -# wx.PyEvent.__init__(self) -# self.SetEventType(EVT_OPTIMIZATION_TYPE) -# self.kind, self.msg = kind, msg -# -# #@classmethod -# #def start_optimization(cls, msg) -# #@classmethod -# #def end_optimization(cls, msg) -# #wx.PostEvent(self.console, event) - - -class PseudoGeneratorListCtrl(wx.ListCtrl, listmix.ColumnSorterMixin, listmix.ListCtrlAutoWidthMixin): - """ - ListCtrl that allows the user to interact with a list of pseudogenerators. Supports column sorting - """ - # List of columns - _COLUMNS = ["#", 'status', "max_ecut", "atan_logder_err", "max_psexc_abserr", "herm_err", "warnings"] - - def __init__(self, parent, psgens=(), **kwargs): - """ - Args: - parent: - Parent window. - psgens: - List of `PseudoGenerator` instances. - """ - super(PseudoGeneratorListCtrl, self).__init__( - parent, id=-1, style=wx.LC_REPORT | wx.BORDER_SUNKEN, **kwargs) - - self.psgens = psgens if psgens else [] - - for index, col in enumerate(self._COLUMNS): - self.InsertColumn(index, col) - - # Used to store the Max width in pixels for the data in the column. - column_widths = [awx.get_width_height(self, s)[0] for s in self._COLUMNS] - - # Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py - self.itemDataMap = {} - - for index, psgen in enumerate(self.psgens): - entry = self.make_entry(index, psgen) - self.Append(entry) - self.SetItemData(index, index) - self.itemDataMap[index] = entry - - w = [awx.get_width_height(self, s)[0] for s in entry] - column_widths = map(max, zip(w, column_widths)) - - for index, col in enumerate(self._COLUMNS): - self.SetColumnWidth(index, column_widths[index]) - - # Now that the list exists we can init the other base class, see wx/lib/mixins/listctrl.py - listmix.ColumnSorterMixin.__init__(self, len(self._COLUMNS)) - listmix.ListCtrlAutoWidthMixin.__init__(self) - - self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onItemActivated) - self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.onRightClick) - - @property - def notebook(self): - """Reference to the Wx window with the input file.""" - try: - return self._notebook - except AttributeError: - parent = self.GetParent() - cls = WxOncvFrame - - while True: - if parent is None: - raise RuntimeError("Cannot find parent with class %s, reached None parent!" % cls) - - if isinstance(parent, cls): - break - else: - parent = parent.GetParent() - - # The input we need is an attribute of WxOncvFrame. - self._notebook = parent.notebook - return self._notebook - - @staticmethod - def make_entry(index, psgen): - """Returns the entry associated to the generator psgen with the given index.""" - max_ecut = None - max_atan_logder_l1err = None - max_psexc_abserr = None - herm_err = None - - if psgen.results is None and psgen.status == psgen.S_OK: - psgen.check_status() - - if psgen.results is not None: - max_ecut = psgen.results.max_ecut - max_atan_logder_l1err = psgen.results.max_atan_logder_l1err - max_psexc_abserr = psgen.results.max_psexc_abserr - herm_err = psgen.results.herm_err - - return [ - "%d\t\t" % index, - "%s" % psgen.status, - "%s" % max_ecut, - "%s" % max_atan_logder_l1err, - "%s" % max_psexc_abserr, - "%s" % herm_err, - "%s" % len(psgen.warnings), - ] - - def doRefresh(self): - """Refresh the panel and redraw it.""" - column_widths = [awx.get_width_height(self, s)[0] for s in self._COLUMNS] - - for index, psgen in enumerate(self.psgens): - entry = self.make_entry(index, psgen) - self.SetItemData(index, index) - self.itemDataMap[index] = entry - - w = [awx.get_width_height(self, s)[0] for s in entry] - column_widths = map(max, zip(w, column_widths)) - - for index, col in enumerate(self._COLUMNS): - self.SetColumnWidth(index, column_widths[index]) - - def add_psgen(self, psgen): - """Add a PseudoGenerator to the list.""" - index = len(self.psgens) - entry = self.make_entry(index, psgen) - self.Append(entry) - self.SetItemData(index, index) - self.itemDataMap[index] = entry - - # Add it to the list and update column widths. - self.psgens.append(psgen) - self.doRefresh() - - def GetListCtrl(self): - """Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py""" - return self - - def getSelectedPseudoGen(self): - """ - Returns the PseudoGenerators selected by the user. - None if no selection has been done. - """ - # Get selected index, map to index in psgens and return the object. - item = self.GetFirstSelected() - if item == -1: return None - index = self.GetItemData(item) - return self.psgens[index] - - def onItemActivated(self, event): - """Call psgen.plot_results.""" - psgen = self.getSelectedPseudoGen() - if psgen is None: return - psgen.plot_results() - - def onPlotSubMenu(self, event): - """Called by plot submenu.""" - psgen = self.getSelectedPseudoGen() - if psgen is None or psgen.plotter is None: - return - - key = self._id2plotdata[event.GetId()] - psgen.plotter.plot_key(key) - - def onRightClick(self, event): - """Generate the popup menu.""" - popup_menu = self.makePopupMenu() - self.PopupMenu(popup_menu, event.GetPoint()) - popup_menu.Destroy() - - def makePopupMenu(self): - """ - Build and return a popup menu. Subclasses can extend or replace this base method. - """ - self.ID_POPUP_STDIN = wx.NewId() - self.ID_POPUP_STDOUT = wx.NewId() - self.ID_POPUP_STDERR = wx.NewId() - self.ID_POPUP_CHANGE_INPUT = wx.NewId() - self.ID_POPUP_COMPUTE_HINTS = wx.NewId() - self.ID_POPUP_COMPUTE_GBRV = wx.NewId() - self.ID_POPUP_COMPUTE_PSPS = wx.NewId() - self.ID_POPUP_SAVE_PSGEN = wx.NewId() - - menu = wx.Menu() - - # Make sub-menu with the list of supported quantities - plot_submenu = wx.Menu() - - # TODO: this list could be taken from the class or from the plotter instance. - all_keys = [ - "radial_wfs", - "projectors", - "densities", - "potentials", - "der_potentials", - "atan_logders", - "ene_vs_ecut", - ] - - self._id2plotdata = {} - - for aqt in all_keys: - _id = wx.NewId() - plot_submenu.Append(_id, aqt) - self._id2plotdata[_id] = aqt - self.Bind(wx.EVT_MENU, self.onPlotSubMenu, id=_id) - menu.AppendMenu(-1, 'Plot', plot_submenu) - - menu.Append(self.ID_POPUP_STDIN, "Show standard input") - menu.Append(self.ID_POPUP_STDOUT, "Show standard output") - menu.Append(self.ID_POPUP_STDERR, "Show standard error") - menu.Append(self.ID_POPUP_CHANGE_INPUT, "Use these variables as new template") - menu.Append(self.ID_POPUP_COMPUTE_HINTS, "Compute hints for ecut") - #menu.Append(self.ID_POPUP_COMPUTE_GBRV, "Perform GBRV tests") - menu.Append(self.ID_POPUP_COMPUTE_PSPS, "Get PSPS.nc file and plot data") - menu.Append(self.ID_POPUP_SAVE_PSGEN, "Save PS generation") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_POPUP_STDIN, self.onShowStdin), - (self.ID_POPUP_STDOUT, self.onShowStdout), - (self.ID_POPUP_STDERR, self.onShowStderr), - (self.ID_POPUP_CHANGE_INPUT, self.onChangeInput), - (self.ID_POPUP_COMPUTE_HINTS, self.onComputeHints), - #(self.ID_POPUP_COMPUTE_GBRV, self.onGBRV), - (self.ID_POPUP_COMPUTE_PSPS, self.onPsps), - (self.ID_POPUP_SAVE_PSGEN, self.onSavePsgen), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu - - def onChangeInput(self, event): - """Change the template input file.""" - psgen = self.getSelectedPseudoGen() - if psgen is None: return - - # Change the parameters in the notebook using those in psgen.stdin_path - if not os.path.exists(psgen.stdin_path): - return awx.showErrorMessage(self, "Input file %s does not exist" % psgen.stdin_path) - - main_frame = self.notebook.GetParent() - new_notebook = OncvNotebook.from_file(main_frame, psgen.stdin_path) - main_frame.BuildUI(notebook=new_notebook) - - def onComputeHints(self, event): - psgen = self.getSelectedPseudoGen() - if psgen is None: return - print("workdir", psgen.workdir) - - # Change the parameters in the notebook using those in psgen.stdin_path - #if not os.path.exists(psgen.stdin_path): - # return awx.showErrorMessage(self, "Input file %s does not exist" % psgen.stdin_path) - from abipy import abilab - from pseudo_dojo.dojo.dojo_workflows import PPConvergenceFactory - factory = PPConvergenceFactory() - - print("pseudo", psgen.pseudo) - workdir = os.path.join("HINTS_", psgen.pseudo.name) - flow = abilab.AbinitFlow(workdir, pickle_protocol=0) - - work = factory.work_for_pseudo(psgen.pseudo, ecut_slice=slice(4, None, 1), nlaunch=2) - flow.register_work(work) - flow.allocate() - flow.build_and_pickle_dump() - scheduler = abilab.PyFlowScheduler.from_user_config() - scheduler.add_flow(flow) - scheduler.start() - - def onSavePsgen(self, event): - # Update the notebook - self.onChangeInput(event) - - psgen = self.getSelectedPseudoGen() - if psgen is None: return - - main_frame = self.notebook.GetParent() - input_file = main_frame.input_file - - if input_file is None: - raise NotImplementedError() - - dirpath = os.path.dirname(input_file) - basename = os.path.basename(input_file).replace(".in", "") - - ps_dest = os.path.join(dirpath, basename + ".psp8") - upf_dest = os.path.join(dirpath, basename + ".upf") - out_dest = os.path.join(dirpath, basename + ".out") - djrepo_dest = os.path.join(dirpath, basename + ".djrepo") - - exists = [] - for f in [input_file, ps_dest, upf_dest, out_dest, djrepo_dest]: - if os.path.exists(f): exists.append(os.path.basename(f)) - - if exists: - msg = "File(s):\n%s already exist.\nDo you want to owerwrite them?" % "\n".join(exists) - answer = awx.askUser(self, msg) - if not answer: return - - # Update the input file, then copy the pseudo file and the output file. - with open(input_file, "wt") as fh: - fh.write(self.notebook.makeInputString()) - - print(psgen.pseudo.path) - shutil.copy(psgen.pseudo.path, ps_dest) - upf_src = psgen.pseudo.path.replace(".psp8", ".upf") - if os.path.exists(upf_src): - shutil.copy(upf_src, upf_dest) - shutil.copy(psgen.stdout_path, out_dest) - - # Parse the output file - onc_parser = OncvOutputParser(out_dest) - onc_parser.scan() - if not onc_parser.run_completed: - raise RuntimeError("oncvpsp output is not complete. Exiting") - - # Build dojoreport - pseudo = Pseudo.from_file(ps_dest) - report = DojoReport.empty_from_pseudo(pseudo, onc_parser.hints, devel=False) - report.json_write() - - def onGBRV(self, event): - psgen = self.getSelectedPseudoGen() - if psgen is None: return - - # Change the parameters in the notebook using those in psgen.stdin_path - #if not os.path.exists(psgen.stdin_path): - # return awx.showErrorMessage(self, "Input file %s does not exist" % psgen.stdin_path) - from abipy import abilab - from pseudo_dojo.dojo.dojo_workflows import GbrvFactory - factory = GbrvFactory() - - flow = abilab.AbinitFlow(workdir="GBRV", pickle_protocol=0) - print("pseudo", psgen.pseudo) - for struct_type in ["fcc", "bcc"]: - work = factory.relax_and_eos_work(psgen.pseudo, struct_type) - flow.register_work(work) - - flow.allocate() - flow.build_and_pickle_dump() - scheduler = abilab.PyFlowScheduler.from_user_config() - scheduler.add_flow(flow) - scheduler.start() - - def onPsps(self, event): - psgen = self.getSelectedPseudoGen() - if psgen is None: return - - with psgen.pseudo.open_pspsfile(ecut=30) as psps: - print("Printing data from:", psps.filepath) - psps.plot(ecut_ffnl=60) - - #def onAddToHistory(self, event): - # psgen = self.getSelectedPseudoGen() - # if psgen is None: return - # # Add it to history. - # self.history.append(psgen) - - def _showStdfile(self, event, stdfile): - """ - Helper function used to access the std files - of the PseudoGenerator selected by the user. - """ - psgen = self.getSelectedPseudoGen() - if psgen is None: return - call = dict( - stdin=psgen.get_stdin, - stdout=psgen.get_stdout, - stderr=psgen.get_stderr, - )[stdfile] - - SimpleTextViewer(self, text=call()).Show() - - def onShowStdin(self, event): - """Open a frame with the input file.""" - self._showStdfile(event, "stdin") - - def onShowStdout(self, event): - """Open a frame with the output file.""" - self._showStdfile(event, "stdout") - - def onShowStderr(self, event): - """Open a frame with the stderr file.""" - self._showStdfile(event, "stderr") - - def plot_columns(self, **kwargs): - """Use matplotlib to plot the values reported in the columns.""" - keys = self._COLUMNS[2:] - table = OrderedDict([(k, []) for k in keys]) - - for index, psgen in enumerate(self.psgens): - entry = self.make_entry(index, psgen) - for k, v in zip(keys, entry[2:]): - #print("k", k, "v", v) - try: - v = float(v) - except ValueError: - # This happens if the run is not completed. - v = None - - table[k].append(v) - - # Return immediately if all entries are None i.e. - # if all calculations are still running. - count = 0 - for items in table.values(): - if all(item is None for item in items): count += 1 - if count == len(table): return - - import matplotlib.pyplot as plt - - # Build grid of plots. - fig, ax_list = plt.subplots(nrows=len(table), ncols=1, sharex=False, squeeze=True) - - for key, ax in zip(table.keys(), ax_list): - ax.grid(True) - ax.set_title(key) - row = table[key] - xs = np.arange(len(row)) - ys = np.array(table[key]).astype(np.double) - # Use mask to exclude None values from the plot. - mask = np.isfinite(ys) - line, = ax.plot(xs[mask], ys[mask], linewidth=2, markersize=10, marker="o") - - plt.show() - - -class PseudoGeneratorsPanel(awx.Panel): - """ - A panel with a list control providing info on the status pseudogenerators - Provides popup menus for interacting with the generators. - """ - def __init__(self, parent, psgens=(), **kwargs): - """ - Args: - parent: - Parent window. - psgens: - List of `PseudoGenerator` objects. - """ - super(PseudoGeneratorsPanel, self).__init__(parent, **kwargs) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - self.psgen_list_ctrl = PseudoGeneratorListCtrl(self, psgens) - - main_sizer.Add(self.psgen_list_ctrl, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5) - self.SetSizerAndFit(main_sizer) - - @property - def psgens(self): - return self.psgen_list_ctrl.psgens - - def plot_columns(self, **kwargs): - self.psgen_list_ctrl.plot_columns(**kwargs) - - -class PseudoGeneratorsFrame(awx.Frame): - """ - This frame contains a list of pseudopotential generators, - It provides controls to run the calculation, and inspect/plot the results. - """ - REFRESH_INTERVAL = 120 - - HELP_MSG = """\ -This window allows you to generate and analyze multiple pseudopotentials. -""" - - def __init__(self, parent, psgens=(), **kwargs): - """ - Args: - psgens: - List of `PseudoGenerators`. - """ - super(PseudoGeneratorsFrame, self).__init__(parent, -1, **add_size(kwargs)) - - # Build menu, toolbar and status bar. - self.makeToolBar() - self.statusbar = self.CreateStatusBar() - self.Centre() - - self.panel = panel = wx.Panel(self, -1) - self.main_sizer = main_sizer = wx.BoxSizer(wx.VERTICAL) - - self.psgens_wxlist = PseudoGeneratorsPanel(panel, psgens) - main_sizer.Add(self.psgens_wxlist, 1, wx.ALL | wx.EXPAND, 5) - - submit_button = wx.Button(panel, -1, label='Submit') - submit_button.Bind(wx.EVT_BUTTON, self.OnSubmitButton) - - text = wx.StaticText(panel, -1, "Max nlaunch:") - text.Wrap(-1) - text.SetToolTipString("Maximum number of tasks that can be submitted. Use -1 for unlimited launches.") - self.max_nlaunch = wx.SpinCtrl(panel, -1, value=str(get_ncpus()), min=-1) - - help_button = wx.Button(panel, wx.ID_HELP) - help_button.Bind(wx.EVT_BUTTON, self.onHelp) - main_sizer.Add(help_button, 0, flag=wx.ALL | wx.ALIGN_RIGHT) - - hsizer = wx.BoxSizer(wx.HORIZONTAL) - hsizer.Add(submit_button, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) - hsizer.Add(text, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) - hsizer.Add(self.max_nlaunch, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) - hsizer.Add(help_button, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) - - main_sizer.Add(hsizer, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) - panel.SetSizerAndFit(main_sizer) - - # Register this event when the GUI is IDLE - self.last_refresh = time.time() - self.Bind(wx.EVT_IDLE, self.OnIdle) - - @property - def psgens(self): - """List of PseudoGenerators.""" - return self.psgens_wxlist.psgens - - def launch_psgens(self): - return self.psgens_wxlist.psgen_list_ctrl.launch_psges() - - def makeToolBar(self): - """Create toolbar.""" - self.toolbar = toolbar = self.CreateToolBar() - toolbar.SetToolBitmapSize(wx.Size(48, 48)) - - def bitmap(path): - return wx.Bitmap(awx.path_img(path)) - - self.ID_SHOW_INPUTS = wx.NewId() - self.ID_SHOW_OUTPUTS = wx.NewId() - self.ID_SHOW_ERRS = wx.NewId() - self.ID_CHECK_STATUS = wx.NewId() - self.ID_MULTI_PLOTTER = wx.NewId() - self.ID_PLOT_COLUMNS = wx.NewId() - - toolbar.AddSimpleTool(self.ID_SHOW_INPUTS, bitmap("in.png"), "Visualize the input file(s) of the generators.") - toolbar.AddSimpleTool(self.ID_SHOW_OUTPUTS, bitmap("out.png"), "Visualize the output file(s) of the generators.") - toolbar.AddSimpleTool(self.ID_SHOW_ERRS, bitmap("log.png"), "Visualize the errors file(s) of the generators.") - toolbar.AddSimpleTool(self.ID_MULTI_PLOTTER, bitmap("log.png"), "Multi plotter.") - toolbar.AddSimpleTool(self.ID_PLOT_COLUMNS, bitmap("log.png"), "Plot columns.") - toolbar.AddSeparator() - toolbar.AddSimpleTool(self.ID_CHECK_STATUS, bitmap("refresh.png"), "Check the status of the workflow(s).") - - toolbar.Realize() - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_SHOW_INPUTS, self.onShowInputs), - (self.ID_SHOW_OUTPUTS, self.onShowOutputs), - (self.ID_SHOW_ERRS, self.onShowErrors), - (self.ID_CHECK_STATUS, self.onCheckStatus), - (self.ID_MULTI_PLOTTER, self.onMultiPlotter), - (self.ID_PLOT_COLUMNS, self.onPlotColumns), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - def OnSubmitButton(self, event): - """ - Called when Run button is pressed. - Run the calculation in a subprocess in non-blocking mode and add it to - the list containing the generators in executions - Submit up to max_nlauch tasks (-1 to run'em all) - """ - self.launch_psgens() - - def launch_psgens(self): - max_nlaunch = int(self.max_nlaunch.GetValue()) - - nlaunch = 0 - for psgen in self.psgens: - nlaunch += psgen.start() - if nlaunch == max_nlaunch: - break - - self.statusbar.PushStatusText("Submitted %d tasks" % nlaunch) - - def onCheckStatus(self, event): - """ - Callback triggered by the checkstatus button. - Check the status of the `PseudoGenerators` and refresh the panel. - """ - self.checkStatusAndRedraw() - - def checkStatusAndRedraw(self): - """Check the status of all the workflows and redraw the panel.""" - self.statusbar.PushStatusText("Checking status...") - start = time.time() - - for psgen in self.psgens: - psgen.check_status() - self.statusbar.PushStatusText("Check completed in %.1f [s]" % (time.time() - start)) - - # Redraw the panel - main_sizer = self.main_sizer - main_sizer.Hide(0) - main_sizer.Remove(0) - new_psgen_wxlist = PseudoGeneratorsPanel(self.panel, self.psgens) - main_sizer.Insert(0, new_psgen_wxlist, 1, wx.ALL | wx.EXPAND, 5) - self.psgen_wxlist = new_psgen_wxlist - - self.panel.Layout() - - # Write number of jobs with given status. - #message = ", ".join("%s: %s" % (k, v) for (k, v) in counter.items()) - #self.statusbar.PushStatusText(message) - - def OnIdle(self, event): - """Function executed when the GUI is idle.""" - now = time.time() - if (now - self.last_refresh) > self.REFRESH_INTERVAL: - self.checkStatusAndRedraw() - self.last_refresh = time.time() - - def onShowInputs(self, event): - """Show all input files.""" - TextNotebookFrame(self, text_list=[psgen.get_stdin() for psgen in self.psgens], - page_names=["PSGEN # %d" % i for i in range(len(self.psgens))]).Show() - - def onShowOutputs(self, event): - """Show all output files.""" - TextNotebookFrame(self, text_list=[psgen.get_stdout() for psgen in self.psgens], - page_names=["PSGEN # %d" % i for i in range(len(self.psgens))]).Show() - - def onShowErrors(self, event): - """Show all error files.""" - TextNotebookFrame(self, text_list=[psgen.get_stderr() for psgen in self.psgens], - page_names=["PSGEN # %d" % i for i in range(len(self.psgens))]).Show() - - def onPlotColumns(self, event): - self.psgens_wxlist.plot_columns() - - def onMultiPlotter(self, event): - """Open a dialog that allows the user to plot the results of multiple generators.""" - multi_plotter = MultiPseudoGenDataPlotter() - - # Add psgen only if run is OK. - for i, psgen in enumerate(self.psgens): - if psgen.status == psgen.S_OK: - multi_plotter.add_psgen(label="%d" % i, psgen=psgen) - - # Return immediately if no calculation is OK. - if not len(multi_plotter): - return - - keys = list(multi_plotter.keys()) - - class MyFrame(awx.FrameWithChoice): - """Get a string with the quantity to plot and call multi_plotter.plot_key""" - def onOkButton(self, event): - multi_plotter.plot_key(key=self.getChoice()) - - MyFrame(self, choices=keys, title="MultiPlotter").Show() - - -def wxapp_oncvpsp(filepath=None): - """Standalone application.""" - class OncvApp(awx.App): - def OnInit(self): - # Enforce WXAgg as matplotlib backend to avoid nasty SIGSEGV in the C++ layer - # occurring when WX Guis produce plots with other backends. - import matplotlib - matplotlib.use('WXAgg') - - frame = WxOncvFrame(None, filepath) - #frame = my_periodic_table(None) - #frame = OncvParamsFrame(None, z=12) - frame.Show(True) - self.SetTopWindow(frame) - return True - - app = OncvApp() - return app - -if __name__ == "__main__": - import sys - #onc_inp = OncvInput.from_file("08_O.dat") - #print(onc_inp) - - #print("optimizing qcut") - #for inp in onc_inp.optimize_qcuts_for_l(l=0, new_qcuts=[1, 9]): - # a = 1 - # #print("new model\n", inp) - - #for inp in onc_inp.optimize_vloc(): - # print("new\n", inp) - #for inp in onc_inp.optimize_modelcore(): - # print("new model\n", inp) - #sys.exit(0) - try: - filepaths = sys.argv[1:] - except IndexError: - filepaths = None - - if filepaths is not None: - if filepaths[0] == "table": - for symbol in all_symbols(): - path = symbol + ".dat" - if os.path.exists(path): - print("Will open file %s" % path) - wxapp_oncvpsp(path).MainLoop() - else: - for filepath in filepaths: - #print(filepath) - wxapp_oncvpsp(filepath).MainLoop() - else: - wxapp_oncvpsp().MainLoop() - - #app = awx.App() - #frame = QcutOptimizationFrame(None, lmax=1) - #frame.Show() - #app.MainLoop() - diff --git a/abipy/gui/oncvtooltips.py b/abipy/gui/oncvtooltips.py deleted file mode 100644 index 85e91e5a2..000000000 --- a/abipy/gui/oncvtooltips.py +++ /dev/null @@ -1,83 +0,0 @@ -"""Tooltips for oncv GUI.""" - -def oncv_tip(key): - """Tip for variable key.""" - return _ONCVTIPS[key] - - -_ONCVTIPS = dict( -atsym="Atomic symbol", -z="Atomic number", -nc="Number of core states", -nv="Number of valence states", -iexc="""\ -Exchange-correlation functional: - 1-Wigner - 2-Hedin-Lundquist - 3-Perdew-Wang-Ceperly-Alder - 4-Perdew-Burke-Enzerhof""", -psfile="Format of pseudopotential file, psp8 for ABINIT, upf for PWSCF", -n="Principal quantum number", -l="Angular momentum", -f="Occupancy (MUST be >0)", -lmax="Maximum angular momentum for which psp is calculated (<=3)", -rc="Core radius for this l", -ep="""\ -Energy at which psp is generated (eigenvalue inserted for occupied -state in reference configuration, positive energy must be specified -for barrier-confined "scattering" state for unoccupied l <=lmax. -A small positive energy is usually good (0.1-0.25 Ha).""", -ncon="""\ -Number of constraints for pseudo wave function to match all-electron wave function at rc, -value + ncon-1 derivatives, must be between 3 and 5 ("M" in the paper, Eq.(6))""", -nbas="Number of basis functions. Must be between ncon+2 and ncon+5 (`N` in the paper, Eqs.(4-5))", -qcut="Wave vector defining `residual energy` in the RRKJ method (`q_c` in the paper, Eq.(1)", -lloc="""\ -Angular momentum whose semi-local psp is taken as local. -lloc=4 denotes a smooth polynomial continuation of the all-electron potential. -If lloc<=lmax, remaining data are ignored, but must be there (zeros are OK).""", -lpopt="""\ -Type of polynomial continuation for lloc=4. values 1-5 permitted. - 1) match 2 derivatives, r^0,2,4 - 2) match 2 derivatives, r^0,4,6 - 3) match 3 derivatives, r^0,4,5,6 - 4) match 3 derivatives, r^0,4,6,8 - 5) match 3 derivatives, r^0,2,4,6""", -rc5="Info not available", -dvloc0="""\ -Shift of r=0 potential from basic continuation (Ha) for lloc=4 -depends on lpopt above as follows, with x=(r/rc) - 1) dvloc0*(1-x^2)^3 - 2) dvloc0*(1-x^4)^3 - 3-5) dvloc0*(1-x^4)^4""", -nproj="Number of projectors, 1 or 2. Automatically set to 0 for l=lloc", -debl="""\ -Energy added to basic psp energy ep for 2nd projector, automatically reset to match 2nd projector with 2nd bound state -at this l when it is occupied (i.e., the psp is generated for a corresponding-l shallow core state)""", -icmod="""\ - 0: no non-linear core correction charge. - 1: smooth monotonic polynomial model core charge fit at "matching" rc following reference 35.""", -fcfact="""\ -Radius for above determined by rho_core(r)=fcfact*rho_pseudo_valence(r). -Values 0.25-0.5 are usually good (look at plots)""", -epsh1="""\ -Lower energy limit for `phase-shift-like` log-derivative plot, -should be below the nearest core level for this l to make sure -there are no ghosts, but -2.0 Ha usually is OK""", -epsh2="Upper energy limit, 2.0 usually good", -depsh="Energy mesh interval for plot, 0.02 usually good enough", -rcfact="rcfact scales the crossover radius to determine the range of the Teter function.", -rlmax="""\ -Maximum radius for Abinit psp code 8 format output. -Must be greater than maximum rc (including lloc=4 rc), but also determines -range of diagnostic plots, so ~2*rcmax is usually good""", -drl="""\ -Mesh spacing of linear radial mesh for Abinit output. -0.02 is good for "softer" psps, 0.01 is probably better with 1st row, 3d's, or semi-core psps.""", -ncnf="""\ -Number of test configurations (<=4). -The reference config is always run first as a consistency check. -Core always is the reference core configuration""", -) -# nvcnf (repeated ncnf times) number of valence states in this test configuration -# n, l, f (nvcnf lines, repeated follwing nvcnf's ncnf times) diff --git a/abipy/gui/popupmenus.py b/abipy/gui/popupmenus.py deleted file mode 100644 index 2ce8e5fe6..000000000 --- a/abipy/gui/popupmenus.py +++ /dev/null @@ -1,308 +0,0 @@ -"""Collections of Popup menus associated to filenames.""" -import wx -import wx.lib.dialogs as wxdg -import abipy.gui.awx as awx -import abipy.gui.electronswx as ewx - -from collections import OrderedDict -from abipy.abilab import abifile_subclass_from_filename, abiopen -from abipy.core.mixins import NcDumper, get_filestat -from abipy.abio.outputs import AbinitLogFile, AbinitOutputFile -from abipy.iotools.visualizer import Visualizer -from abipy.waves import WfkFile -from abipy.electrons import SigresFile, GsrFile -from abipy.electrons.bse import MdfFile -from abipy.gui.events import AbinitEventsFrame -from abipy.gui.timer import AbinitTimerFrame -from abipy.gui.editor import SimpleTextViewer, MyEditorFrame -from abipy.gui.wxncview import NcViewerFrame - - -__all__ = [ - "popupmenu_for_filename", -] - - -def popupmenu_for_filename(parent, filename): - """ - Factory function that returns the appropriate popup menu. - - Args: - parent: - The parent wx window. Used to connect the children created - by the popupmenu to the calling window. - """ - menu = PopupMenu.from_filename(filename) - - if menu is not None: - menu.set_target(filename) - menu.set_parent(parent) - - return menu - -#-------------------------------------------------------------------------------------------------- -# Callbacks - - -def showNcdumpMessage(parent, filepath): - """Open a dialog with the output of ncdump.""" - title = "ncdump output for file %s" % filepath - text = NcDumper().dump(filepath) - # TODO: Get a decent wxpython editor somewhere - #SimpleTextViewer(parent, text, title=title).Show() - MyEditorFrame.from_text(parent, text, title=title).Show() - -def openWxncview(parent, filepath): - """Open a dialog with the output of ncdump.""" - title = "wxncview: %s" % filepath - text = NcDumper().dump(filepath) - NcViewerFrame(parent, filepath, title=title).Show() - - -def showFileStat(parent, filepath): - """Open a dialog reporting file stats.""" - caption = "Info on file %s" % filepath - stat_dict = get_filestat(filepath) - msg = str(stat_dict) - style = wx.DEFAULT_FRAME_STYLE - wxdg.ScrolledMessageDialog(parent, msg, caption=caption, size=(600, 600), style=style).Show() - - -def showAbinitEventsFrame(parent, filepath): - """Open a dialog reporting file stats.""" - AbinitEventsFrame(parent, filepath).Show() - - -def showAbinitTimerFrame(parent, filepath): - """Open a dialog reporting file stats.""" - try: - frame = AbinitTimerFrame(parent, filepath) - frame.Show() - except awx.Error as exc: - awx.showErrorMessage(parent, str(exc)) - - -def showStructure(parent, filepath): - ncfile = abiopen(filepath) - visu_classes = Visualizer.get_available(ext="xsf") - if not visu_classes: - print("Not visualizer found for extension xsf") - return - vname = visu_classes[0].name - - visu = ncfile.structure.visualize(vname) - - thread = awx.WorkerThread(parent, target=visu) - thread.start() - - - -class PopupMenu(wx.Menu): - """ - Base class for popup menus. `A PopupMenu` has a list of callback functions - indexed by the menu title. The signature of the callback function is func(parent, filename) where - filename is the name of the file selected in the Widget and parent is the wx - Window that will become the parent of the new frame created by the callback. - """ - MENU_TITLES = OrderedDict([ - ]) - - HANDLED_FILES = [] - - def __init__(self): - super(PopupMenu, self).__init__() - self._make_menu() - - @staticmethod - def from_filename(filename): - """ - Static factory function that instanciates the appropriate subclass of `NcFilePopupMenu` - Returns None if the extesion of filename is not supported. - """ - # Find the AbinitNcFile subclass associated to files. - try: - file_class = abifile_subclass_from_filename(filename) - except KeyError: - if filename.endswith(".nc"): NcFilePopupMenu() - return None - - # Check whether a subclass handles this file.. - # Fallback to a simple PopupMenu if no match. - def allsubclasses(cls): - """Returns the set of subclasses of cls.""" - children = [cls] - for sc in cls.__subclasses__(): - if sc.__subclasses__(): - for k in sc.__subclasses__(): - children.extend(allsubclasses(k)) - else: - children.append(sc) - return set(children) - - for cls in allsubclasses(PopupMenu): - if cls.handle_file_class(file_class): - return cls() - else: - if filename.endswith(".nc"): NcFilePopupMenu() - return PopupMenu() - - @classmethod - def handle_file_class(cls, file_class): - """True if the popupmenu is associated to file_class.""" - return file_class in cls.HANDLED_FILES - - def _make_menu(self): - """Build the menu taking into account the options of the superclasses.""" - base_classes = list(self.__class__.__bases__) + [self.__class__] - base_classes.reverse() - - assert not hasattr(self, "menu_title_by_id") - assert not hasattr(self, "menu_titles") - self.menu_title_by_id, self.menu_titles = OrderedDict(), OrderedDict() - - for cls in base_classes: - try: - menus = cls.MENU_TITLES - except AttributeError as exc: - awx.WARNING("exc ",exc," for cls", cls) - continue - - self.menu_titles.update(menus) - - for title in menus: - self.menu_title_by_id[wx.NewId()] = title - - # Add sentinel for Menu separator. - self.menu_title_by_id["separator_" + str(len(self.menu_titles))] = None - - for (id, title) in self.menu_title_by_id.items(): - if title is None: - sepid = int(id.split("_")[-1]) - if sepid != len(self.menu_titles): - self.AppendSeparator() - else: - # Register menu handlers with EVT_MENU, on the menu. - self.Append(id, title) - wx.EVT_MENU(self, id, self.OnMenuSelection) - - def set_parent(self, parent): - """Set the parent window.""" - self._parent = parent - - @property - def parent(self): - """Returns the parent window.""" - try: - return self._parent - except AttributeError: - awx.WARNING("Popup menu doesn't have parent") - return None - - def set_target(self, target): - """Set the target of the callback.""" - self._target = target - - @property - def target(self): - """The target of the callback.""" - try: - return self._target - except AttributeError: - return None - - def _get_callback(self, title): - return self.menu_titles[title] - - def OnMenuSelection(self, event): - title = self.menu_title_by_id[event.GetId()] - callback = self._get_callback(title) - #print("Calling callback %s on target %s" % (callback, self.target)) - try: - callback(parent=self.parent, filepath=self.target) - except: - awx.showErrorMessage(parent=self.parent) - - -class AbinitTextFilePopupMenu(PopupMenu): - """ - """ - MENU_TITLES = OrderedDict([ - ("events", showAbinitEventsFrame), - ("properties", showFileStat), - ("timer", showAbinitTimerFrame), - ]) - - HANDLED_FILES = [AbinitLogFile, AbinitOutputFile] - - -class NcFilePopupMenu(PopupMenu): - """ - Base class for popup menus. `A PopupMenu` has a list of callback functions - indexed by the menu title and a list of `AbinitNcFile` associated to it. - The signature of the callback function is func(filename, parent) where - filename is the name of the file selected in the Widget and parent is the wx - Window that will become the parent of the new frame created by the callback. - - How to subclass PopupMenu: - - 1. Define a new class that inherits from NcFilePopupMenu. - - 2. Define the callbacks in the class variable MENU_TITLES. - Use OrderedDict to have a fixed ordering of the labels. - - 3. Define the class variable HANDLED_FILES with the list of - `AbinitNcFile` subclasses associated to the popupmenu. - - 4. Done (most of the work is indeed done in the base class and in - the factory function popupmenu_for_filename. - """ - MENU_TITLES = OrderedDict([ - ("structure", showStructure), - ("ncdump", showNcdumpMessage), - ("wxncview", openWxncview), - ("properties", showFileStat), - ]) - - HANDLED_FILES = [] - - -class EbandsPopupMenu(NcFilePopupMenu): - """Popup menu for Netcdf files that contain the electron band structure.""" - MENU_TITLES = OrderedDict([ - ("ePlot", ewx.showElectronBandsPlot), - ("eDos", ewx.showElectronDosFrame), - ("eJdos", ewx.showElectronJdosFrame), - ]) - - HANDLED_FILES = [WfkFile, GsrFile] - - -def showQPData(parent, filepath): - sigres = abiopen(filepath) - qps_spin = sigres.qplist_spin - assert len(qps_spin) == 1 - qps_spin[0].plot_qps_vs_e0() - - -class SigResPopupMenu(NcFilePopupMenu): - """Popup menu for SIGRES files.""" - MENU_TITLES = OrderedDict([ - ("qpDataPlot", showQPData), - ]) - - HANDLED_FILES = [SigresFile] - - -def showEXCMDF(parent, filepath): - mdf_file = MdfFile(filepath) - mdf_file.plot_mdfs() - - -class MDFPopupMenu(NcFilePopupMenu): - """Popup menu for MDF files.""" - MENU_TITLES = OrderedDict([ - ("mdfPlot", showEXCMDF), - ]) - - HANDLED_FILES = [MdfFile] - diff --git a/abipy/gui/sigresviewer.py b/abipy/gui/sigresviewer.py deleted file mode 100644 index fa8599d9b..000000000 --- a/abipy/gui/sigresviewer.py +++ /dev/null @@ -1,349 +0,0 @@ -import os -import wx -import wx.lib.agw.flatnotebook as fnb -import abipy.gui.awx as awx - -from monty.string import marquee -from monty.collections import AttrDict -from wx.py.shell import Shell -from abipy.abilab import abiopen -from abipy.electrons import SigresPlotter -from abipy.gui.scissors import ScissorsBuilderFrame -from abipy.gui.baseviewer import MultiViewerFrame -from abipy.gui import mixins as mix -from abipy.gui.kpoints import SpinKpointBandPanel - - -class SigresViewerFrame(MultiViewerFrame, mix.Has_Structure, mix.Has_MultipleEbands, mix.Has_Tools, mix.Has_NetcdfFiles): - VERSION = "0.1" - - HELP_MSG = """Quick help: - - Kpoint list: - - Left-Click: to visualize table with QP results for the selected spin, k-point - Right-Click: display popup menu with choices. - -Also, these key bindings can be used -(For Mac OSX, replace 'Ctrl' with 'Apple'): - - Ctrl-Q: quit -""" - - @property - def codename(self): - return "SigmaResultsViewer" - - @property - def active_sigres(self): - """The active SIGRES file i.e. the SIGRES associated to the active tab.""" - return self.active_tab.sigres - - @property - def structure(self): - """`Structure` associated to the active tab.""" - return self.active_sigres.structure - - @property - def ebands(self): - """The electron bands associated to the active SIGRES file.""" - return self.active_sigres.ebands - - @property - def ebands_list(self): - """List of `ElectronBands`.""" - ebands_list = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - ebands_list.append(tab.sigres.ebands) - return ebands_list - - @property - def ebands_filepaths(self): - """ - Return a list with the absolute paths of the files - from which the `ElectronBands` have been read. - """ - paths = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - paths.append(tab.sigres.filepath) - return paths - - @property - def nc_filepaths(self): - """String with the absolute path of the netcdf file.""" - paths = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - paths.append(tab.sigres.filepath) - return paths - - @property - def sigres_filepaths(self): - """ - Return a list with the absolute paths of the files - from which the `SigresFile` have been read. - """ - paths = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - paths.append(tab.sigres.filepath) - return paths - - def makeMenu(self): - """Creates the main menu.""" - # Base menu - menu_bar = super(SigresViewerFrame, self).makeMenu() - - # Add mixin menus. - menu_bar.Append(self.CreateStructureMenu(), "Structure") - menu_bar.Append(self.CreateEbandsMenu(), "Ebands") - menu_bar.Append(self.CreateQpDataMenu(), "QP Data") - menu_bar.Append(self.CreateToolsMenu(), "Tools") - menu_bar.Append(self.CreateNetcdfMenu(), "Netcdf") - - # Help menu - help_menu = self.makeHelpMenu() - menu_bar.Append(help_menu, "Help") - - self.SetMenuBar(menu_bar) - - def CreateQpDataMenu(self): - """Build and return the QP menu.""" - # Structure Menu ID's - self.ID_QPGAPS_COMPARE = wx.NewId() - self.ID_QPENES_COMPARE = wx.NewId() - - menu = wx.Menu() - menu.Append(self.ID_QPGAPS_COMPARE, "Compare QP-gaps", "Compare QP gaps") - self.Bind(wx.EVT_MENU, self.OnQpGapsCompare, id=self.ID_QPGAPS_COMPARE) - - menu.Append(self.ID_QPENES_COMPARE, "Compare QP-enes", "Compare QP energies") - self.Bind(wx.EVT_MENU, self.OnQpEnesCompare, id=self.ID_QPENES_COMPARE) - - return menu - - def OnQpGapsCompare(self, event): - """Compare the QP gaps reported in the SIGRES files.""" - # Instanciate the plotter and add the filepaths to the plotter. - plotter = SigresPlotter() - plotter.add_files(self.sigres_filepaths) - - # Plot the convergence of the QP gaps. - plotter.plot_qpgaps(title="Convergence of QP gaps", hspan=0.05) - - def OnQpEnesCompare(self, event): - """Compare the QP energies reported in the SIGRES files.""" - # Instanciate the plotter and add the filepaths to the plotter. - plotter = SigresPlotter() - plotter.add_files(self.sigres_filepaths) - - # Plot the convergence of the QP energies. - plotter.plot_qpenes(title="Convergence of QP energies", hspan=0.05) - - def makeToolBar(self): - """Creates the toolbar.""" - self.toolbar = toolbar = self.CreateToolBar() - toolbar.SetToolBitmapSize(wx.Size(48, 48)) - - def bitmap(path): - return wx.Bitmap(awx.path_img(path)) - - self.ID_SCISSORS = wx.NewId() - self.ID_PLOTQPSE0 = wx.NewId() - self.ID_PLOTKSWITHMARKS = wx.NewId() - - artBmp = wx.ArtProvider.GetBitmap - #toolbar.AddSimpleTool(wx.ID_OPEN, artBmp(wx.ART_FILE_OPEN, wx.ART_TOOLBAR), "Open") - toolbar.AddSimpleTool(self.ID_PLOTQPSE0, bitmap("qpresults.png"), "Plot QPState Results.") - toolbar.AddSimpleTool(self.ID_PLOTKSWITHMARKS, bitmap("qpmarkers.png"), "Plot KS energies with QPState markers.") - toolbar.AddSimpleTool(self.ID_SCISSORS, bitmap("qpscissor.png"), "Build energy-dependent scissors from GW correction.") - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.ID_PLOTQPSE0, self.OnPlotQpsE0), - (self.ID_PLOTKSWITHMARKS, self.OnPlotKSwithQPmarkers), - (self.ID_SCISSORS, self.OnScissors), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - self.toolbar.Realize() - - def addFileTab(self, parent, filepath): - """Open a SIGRES file and create a new tab in the notebook.""" - gsr = abiopen(filepath) - tab = SigresFileTab(self.notebook, gsr) - self.notebook.AddPage(tab, os.path.basename(filepath)) - - def OnPlotQpsE0(self, event): - """Plot QPState results as function of the KS energy.""" - if self.active_sigres is None: return - self.active_sigres.plot_qps_vs_e0() - - def OnPlotKSwithQPmarkers(self, event): - """Plot KS energies with QPState markers.""" - if self.active_sigres is None: return - sigres = self.active_sigres - - band_range = (sigres.min_gwbstart, sigres.max_gwbstop) - try: - EbandsWithMarkersPlotFrame(self, sigres.ebands, band_range=band_range).Show() - except: - awx.showErrorMessage(self) - - def OnScissors(self, event): - """Build the scissors operator.""" - if self.active_sigres is None: return - ScissorsBuilderFrame(self, self.active_sigres.filepath).Show() - - - -class SigresFileTab(wx.Panel): - """Tab showing information on a single SIGRES file.""" - def __init__(self, parent, sigres, **kwargs): - """ - Args: - parent: - parent window. - sigres: - `SigresFile` object - """ - super(SigresFileTab, self).__init__(parent, -1, **kwargs) - self.sigres = sigres - - splitter = wx.SplitterWindow(self, style=wx.SP_LIVE_UPDATE) - splitter.SetSashGravity(0.95) - - self.skb_panel = SpinKpointBandPanel(splitter, sigres.structure, sigres.nsppol, sigres.gwkpoints, sigres.max_gwbstop, - bstart=sigres.min_gwbstart) - - # Set the callback for double click on k-point row.. - self.Bind(self.skb_panel.MYEVT_SKB_ACTIVATED, self.onShowQPTable) - - # Add Python shell - msg = "SIGRES_File object is accessible via the sigres variable. Use sigres. to access the list of methods." - msg = marquee(msg, width=len(msg) + 8, mark="#") - msg = "#"*len(msg) + "\n" + msg + "\n" + "#"*len(msg) + "\n" - - pyshell = Shell(splitter, introText=msg, locals={"sigres": sigres}) - splitter.SplitHorizontally(self.skb_panel, pyshell) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(splitter, 1, wx.EXPAND, 5) - self.SetSizerAndFit(sizer) - - @property - def statusbar(self): - return self.viewer_frame.statusbar - - @property - def viewer_frame(self): - """The parent frame `WfkViewerFrame`.""" - try: - return self._viewer_frame - - except AttributeError: - self._viewer_frame = self.getParentWithType(SigresViewerFrame) - return self._viewer_frame - - def onShowQPTable(self, event): - """Show a table with the QP results for the selected spin, kpoint, band.""" - spin, kpoint, band = event.skb - qplist = self.sigres.get_qplist(spin, kpoint) - table = qplist.to_table() - title = "spin: %d, kpoint: %s" % (spin, kpoint) - - awx.SimpleGridFrame(self, table, labels_from_table=True, title=title).Show() - - -class EbandsWithMarkersPlotFrame(awx.Frame): - - def __init__(self, parent, ebands, **kwargs): - """ - Args: - parent: - Parent window - ebands: - `ElectronBands` object. - """ - self.band_range = kwargs.pop("band_range", None) - - super(EbandsWithMarkersPlotFrame, self).__init__(parent, -1, **kwargs) - self.SetTitle("Select parameters") - - self.ebands = ebands - - if not ebands.markers: - raise awx.Error("Found empty markers dictionary in ebands %s" % repr(ebands)) - - self.BuildUi() - - def BuildUi(self): - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - hsizer1 = wx.BoxSizer( wx.HORIZONTAL ) - - marker_label = wx.StaticText(self, -1, "Available Markers:") - marker_label.Wrap(-1) - hsizer1.Add(marker_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) - - marker_choices = list(self.ebands.markers.keys()) - self.marker_choice = wx.Choice( self, -1, wx.DefaultPosition, wx.DefaultSize, marker_choices, 0 ) - self.marker_choice.SetSelection(0) - hsizer1.Add(self.marker_choice, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) - - scale_label = wx.StaticText(self, -1, "Scale Factor:") - scale_label.Wrap(-1) - hsizer1.Add(scale_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.BOTTOM|wx.LEFT, 5 ) - - self.scale_ctrl = wx.SpinCtrlDouble(self, id=-1, value=str(50), min=0.0, max=1.e+10, inc=50) - self.scale_ctrl.SetToolTipString("Multiplicative factor used to render the markers more visible.") - hsizer1.Add( self.scale_ctrl, 0, wx.ALL, 5 ) - - main_sizer.Add( hsizer1, 0, wx.ALIGN_CENTER_HORIZONTAL, 5 ) - - hsizer2 = wx.BoxSizer( wx.HORIZONTAL ) - - ok_button = wx.Button(self, wx.ID_OK, label='Ok') - cancel_button = wx.Button(self, wx.ID_CANCEL, label='Cancel') - - ok_button.Bind(wx.EVT_BUTTON, self.OnOkButton) - cancel_button.Bind(wx.EVT_BUTTON, self.OnCloseButton) - - hsizer2.Add(ok_button, 0, wx.ALL, 5 ) - hsizer2.Add(cancel_button, 0, wx.ALL, 5 ) - - main_sizer.Add( hsizer2, 0, wx.ALIGN_CENTER_HORIZONTAL, 5 ) - - self.SetSizerAndFit(main_sizer) - - def OnCloseButton(self, event): - self.Destroy() - - def GetParams(self): - return AttrDict( - qpattr=self.marker_choice.GetStringSelection(), - fact=float(self.scale_ctrl.GetValue())) - - def OnOkButton(self, event): - p = self.GetParams() - with_marker = p.qpattr + ":" + str(p.fact) - - self.ebands.plot(marker=with_marker, band_range=self.band_range) - - -class SigresViewerApp(awx.App): - pass - - -def wxapp_sigresviewer(sigres_filepaths): - app = SigresViewerApp() - frame = SigresViewerFrame(None, filepaths=sigres_filepaths) - app.SetTopWindow(frame) - frame.Show() - return app diff --git a/abipy/gui/wfkviewer.py b/abipy/gui/wfkviewer.py deleted file mode 100644 index 2e157f6bb..000000000 --- a/abipy/gui/wfkviewer.py +++ /dev/null @@ -1,225 +0,0 @@ -import os -import wx -import abipy.gui.awx as awx - -from wx.py.shell import Shell -from monty.string import marquee -from abipy.abilab import abiopen -from abipy.iotools.visualizer import Visualizer -from abipy.gui import mixins as mix -from abipy.gui.kpoints import SpinKpointBandPanel -from abipy.gui.baseviewer import MultiViewerFrame - - -class WfkViewerFrame(MultiViewerFrame, mix.Has_Structure, mix.Has_MultipleEbands, mix.Has_Tools, mix.Has_NetcdfFiles): - VERSION = "0.1" - - HELP_MSG = """Quick help: - - Kpoint list: - - Left-Click: to visualize u(r)^2 for the selected spin, k-point, band - Right-Click: display popup menu with choices. - -Also, these key bindings can be used -(For Mac OSX, replace 'Ctrl' with 'Apple'): - - Ctrl-Q: quit -""" - @property - def codename(self): - return "WfkViewer" - - @property - def active_wfk(self): - """The active WFK file i.e. the WFK associated to the active tab.""" - return self.active_tab.wfk - - @property - def structure(self): - """`Structure` associated to the active tab.""" - return self.active_wfk.structure - - @property - def ebands(self): - """`ElectronBands` associated to the active tab.""" - return self.active_wfk.ebands - - @property - def ebands_list(self): - """List of `ElectronBands`.""" - ebands_list = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - ebands_list.append(tab.wfk.ebands) - return ebands_list - - @property - def ebands_filepaths(self): - """ - Return a list with the absolute paths of the files - from which the `ElectronBands` have been read. - """ - paths = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - paths.append(tab.wfk.filepath) - return paths - - @property - def nc_filepaths(self): - """String with the absolute path of the active netcdf file.""" - paths = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - paths.append(tab.wfk.filepath) - return paths - - def makeMenu(self): - """Creates the main menu.""" - # Base menu. - menu_bar = super(WfkViewerFrame, self).makeMenu() - - # Add Mixin menus. - menu_bar.Append(self.CreateStructureMenu(), "Structure") - menu_bar.Append(self.CreateEbandsMenu(), "Ebands") - menu_bar.Append(self.CreateToolsMenu(), "Tools") - menu_bar.Append(self.CreateNetcdfMenu(), "Netcdf") - - # Help menu - help_menu = self.makeHelpMenu() - menu_bar.Append(help_menu, "Help") - - #self.menu_bar = menu_bar - self.SetMenuBar(menu_bar) - - def makeToolBar(self): - """Creates the toolbar.""" - self.toolbar = toolbar = self.CreateToolBar() - toolbar.SetToolBitmapSize(wx.Size(48, 48)) - - def bitmap(path): - return wx.Bitmap(awx.path_img(path)) - - artBmp = wx.ArtProvider.GetBitmap - toolbar.AddSimpleTool(wx.ID_OPEN, artBmp(wx.ART_FILE_OPEN, wx.ART_TOOLBAR), "Open") - toolbar.AddSeparator() - - # Combo box with the list of visualizers - avail_visunames = [visu.name for visu in Visualizer.get_available()] - value = avail_visunames[0] if avail_visunames else "None" - self.visualizer_cbox = wx.ComboBox(toolbar, id=-1, name='visualizer', choices=avail_visunames, value=value, style=wx.CB_READONLY) - toolbar.AddControl(control=self.visualizer_cbox) - - toolbar.Realize() - - def addFileTab(self, parent, filepath): - wfk = abiopen(filepath) - tab = WfkFileTab(self.notebook, wfk) - self.notebook.AddPage(tab, os.path.basename(filepath)) - - def GetVisualizer(self): - """Returns a string with the visualizer selected by the user.""" - return self.visualizer_cbox.GetValue() - - -class WfkFileTab(awx.Panel): - """Tab showing information on a single WFK file.""" - def __init__(self, parent, wfk, **kwargs): - """ - Args: - parent: - parent window. - wfk: - """ - super(WfkFileTab, self).__init__(parent, -1, **kwargs) - self.wfk = wfk - - splitter = wx.SplitterWindow(self, id=-1, style=wx.SP_3D) - splitter.SetSashGravity(0.95) - - self.skb_panel = skb_panel = SpinKpointBandPanel(splitter, wfk.structure, wfk.nsppol, wfk.kpoints, wfk.mband) - - # Set the callback for double click on k-point row.. - self.Bind(skb_panel.MYEVT_SKB_ACTIVATED, self.onVisualizeSKB) - - # Add Python shell - msg = "WFK_File object is accessible via the wfk variable. Use wfk. to access the list of methods." - msg = marquee(msg, width=len(msg) + 8, mark="#") - msg = "#"*len(msg) + "\n" + msg + "\n" + "#"*len(msg) + "\n" - - # FIXME : CGContextRestoreGState: invalid context 0x0 - pyshell = Shell(splitter, introText=msg,locals={"wfk": self.wfk}) - splitter.SplitHorizontally(self.skb_panel, pyshell) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(splitter, 1, wx.EXPAND, 5) - self.SetSizerAndFit(sizer) - - @property - def statusbar(self): - return self.viewer_frame.statusbar - - def GetVisualizer(self): - """Returns a string with the visualizer selected by the user.""" - return self.viewer_frame.GetVisualizer() - - def onVisualizeSKB(self, event): - """ - Calls the visualizer to visualize the specified wavefunction. - Use the approach described in http://wiki.wxpython.org/LongRunningTasks - to make the Gui responsive one can use - """ - #print("in new" ,event.skb) - spin, kpoint, band = event.skb - - appname = self.GetVisualizer() - if appname == "None": return - - self.statusbar.PushStatusText("Visualizing wavefunction (spin=%d, kpoint=%s, band=%d)" % (spin, kpoint, band)) - try: - visu = self.wfk.visualize_ur2(spin, kpoint, band, appname=appname) - thread = awx.WorkerThread(self, target=visu) - thread.start() - - except: - awx.showErrorMessage(self) - - #def _visualize_skb(self, spin, kpoint, band): - # """Calls the visualizer to visualize the specified wavefunction.""" - # # To make the Gui responsive one can use the approach described in - # # http://wiki.wxpython.org/LongRunningTasks - # appname = self.GetVisualizer() - # if appname == "None": return - # - # self.statusbar.PushStatusText("Visualizing wavefunction (spin=%d, kpoint=%s, band=%d)" % (spin, kpoint, band)) - # try: - # visu = self.wfk.visualize_ur2(spin, kpoint, band, appname=appname) - # thread = awx.WorkerThread(self, target=visu) - # thread.start() - # - # except: - # awx.showErrorMessage(self) - - @property - def viewer_frame(self): - """The parent frame `WfkViewerFrame`.""" - try: - return self._viewer_frame - - except AttributeError: - self._viewer_frame = self.getParentWithType(WfkViewerFrame) - return self._viewer_frame - - -class WfkViewerApp(awx.App): - pass - - -def wxapp_wfkviewer(wfk_filepaths): - app = WfkViewerApp() - frame = WfkViewerFrame(None, filepaths=wfk_filepaths) - app.SetTopWindow(frame) - frame.Show() - return app - diff --git a/abipy/gui/wxFormBuilder/checkboxpanel.fbp b/abipy/gui/wxFormBuilder/checkboxpanel.fbp deleted file mode 100644 index 144548f5f..000000000 --- a/abipy/gui/wxFormBuilder/checkboxpanel.fbp +++ /dev/null @@ -1,464 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - - 1000 - none - 0 - MyProject1 - - . - - 1 - 1 - 1 - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - - 1 - 1 - impl_virtual - - - 0 - wxID_ANY - - - MyPanel2 - - 500,300 - - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - main_sizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - wxID_ANY - Files - - static_sizer - wxVERTICAL - none - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Entry1 - - 0 - - - 0 - - 1 - checkbox1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Entry2 - - 0 - - - 0 - - 1 - checkbox2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - hsizer - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Select all - - 0 - - - 0 - - 1 - all_button - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Deselect all - - 0 - - - 0 - - 1 - empty_button - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/abipy/gui/wxFormBuilder/converter.fbp b/abipy/gui/wxFormBuilder/converter.fbp deleted file mode 100644 index 51d58c8e2..000000000 --- a/abipy/gui/wxFormBuilder/converter.fbp +++ /dev/null @@ -1,630 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - - 1000 - none - 0 - MyProject1 - - . - - 1 - 1 - 1 - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - - 1 - 1 - impl_virtual - - - 0 - wxID_ANY - - - panel - - 500,300 - - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - main_sizer - wxVERTICAL - none - - 5 - wxALIGN_CENTER_HORIZONTAL|wxEXPAND - 0 - - - hsz1 - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - From: - - 0 - - - 0 - - 1 - m_staticText1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - - 0 - - 1 - from_textctrl - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - from_unit_choice - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - hsz2 - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Unit type: - - 0 - - - 0 - - 1 - m_staticText2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - unit_type_choiche - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - convert_button - - 0 - - - 0 - - 1 - button - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/abipy/gui/wxFormBuilder/fftprof.fbp b/abipy/gui/wxFormBuilder/fftprof.fbp deleted file mode 100644 index 7979ebcbf..000000000 --- a/abipy/gui/wxFormBuilder/fftprof.fbp +++ /dev/null @@ -1,620 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - - 1000 - none - 0 - MyProject2 - - . - - 1 - 1 - 1 - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - - 1 - 1 - impl_virtual - - - 0 - wxID_ANY - - - panel - - 500,300 - - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bSizer2 - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - bSizer3 - wxHORIZONTAL - none - - 5 - wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - ndat: - - 0 - - - 0 - - 1 - ndat - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 4 - 10 - - 0 - - 0 - - 0 - - 1 - m_spinCtrl1 - 1 - - - protected - 1 - - Resizable - 1 - - wxSP_ARROW_KEYS - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - MyLabel - - 0 - - - 0 - - 1 - m_staticText2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 10 - - 0 - - 0 - - 0 - - 1 - m_spinCtrl2 - 1 - - - protected - 1 - - Resizable - 1 - - wxSP_ARROW_KEYS - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizer5 - wxHORIZONTAL - none - - 5 - wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Task: - - 0 - - - 0 - - 1 - m_staticText4 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choice3 - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/abipy/gui/wxFormBuilder/jdos_panel.fbp b/abipy/gui/wxFormBuilder/jdos_panel.fbp deleted file mode 100644 index 632405a45..000000000 --- a/abipy/gui/wxFormBuilder/jdos_panel.fbp +++ /dev/null @@ -1,1402 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - - 1000 - none - 0 - MyProject2 - - . - - 1 - 1 - 1 - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - - 1 - 1 - impl_virtual - - - 0 - wxID_ANY - - -1,-1 - MyPanel1 - - -1,-1 - - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - main_sizer - wxVERTICAL - none - - 5 - wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND - 0 - - - hsizer1 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Broadening [eV]: - - 0 - - - 0 - - 1 - broad_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Standard deviation of the gaussian - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - width_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Step [eV]: - - 0 - - - 0 - - 1 - step_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Linear step for the mesh - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - step_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL - 0 - - - hsizer2 - wxHORIZONTAL - none - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Valence bands - - sbSizer1 - wxVERTICAL - none - - - 5 - wxEXPAND|wxALL|wxALIGN_CENTER_HORIZONTAL - 1 - - 2 - wxHORIZONTAL - - - 0 - - fgSizer1 - wxFLEX_GROWMODE_NONE - none - 0 - 0 - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Start: - - 0 - - - 0 - - 1 - vstart_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - First occupied band index - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - vstart_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Stop: - - 0 - - - 0 - - 1 - cstart_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - Last occupied bands index (excluded) - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - cstart_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Conduction bands - - sbSizer3 - wxVERTICAL - none - - - 5 - wxEXPAND|wxALL|wxALIGN_CENTER_HORIZONTAL - 1 - - 2 - wxHORIZONTAL - - - 0 - - fgSizer2 - wxFLEX_GROWMODE_NONE - none - 0 - 0 - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Start: - - 0 - - - 0 - - 1 - cstart_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - cstart_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Stop: - - 0 - - - 0 - - 1 - cstop_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - cstop_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - - hsizer3 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Spin: - - 0 - - - 0 - - 1 - spin_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - spin_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/abipy/gui/wxFormBuilder/plotmarkers.fbp b/abipy/gui/wxFormBuilder/plotmarkers.fbp deleted file mode 100644 index 2d594899a..000000000 --- a/abipy/gui/wxFormBuilder/plotmarkers.fbp +++ /dev/null @@ -1,626 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - - 1000 - none - 0 - MyProject1 - - . - - 1 - 1 - 1 - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - - 1 - 1 - impl_virtual - - - 0 - wxID_ANY - - - MyPanel1 - - 500,300 - - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - main_sizer - wxVERTICAL - none - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - hsizer1 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Available Markers: - - 0 - - - 0 - - 1 - marker_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - marker_choice - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Scale Factor: - - 0 - - - 0 - - 1 - scale_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 10 - - 0 - - 0 - - 0 - - 1 - m_spinCtrl1 - 1 - - - protected - 1 - - Resizable - 1 - - wxSP_ARROW_KEYS - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - hsizer2 - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - OK - - 0 - - - 0 - - 1 - ok_button - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Cancel - - 0 - - - 0 - - 1 - cancel_button - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/abipy/gui/wxFormBuilder/scissorsparams.fbp b/abipy/gui/wxFormBuilder/scissorsparams.fbp deleted file mode 100644 index 02290fab3..000000000 --- a/abipy/gui/wxFormBuilder/scissorsparams.fbp +++ /dev/null @@ -1,942 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - - 1000 - none - 0 - MyProject1 - - . - - 1 - 1 - 1 - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - - 1 - 1 - impl_virtual - - - 0 - wxID_ANY - - - MyPanel1 - - 500,300 - - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - main_sizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - wxID_ANY - Domain #1 - - static_boxsizer - wxVERTICAL - none - - - 5 - wxEXPAND - 1 - - - vsizer1 - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - 4 - wxHORIZONTAL - 1 - - 0 - - flexgrid_sizer1 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 5 - wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Emin: - - 0 - - - 0 - - 1 - stext1 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 100 - - 0 - - 0 - - 0 - - 1 - min_slider - 1 - - - protected - 1 - - Resizable - 1 - - wxSL_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 50 - - - wxSUNKEN_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Bound_type: - - 0 - - - 0 - - 1 - stext2 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - minbound_choice - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_HORIZONTAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Emax: - - 0 - - - 0 - - 1 - stext3 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 100 - - 0 - - 0 - - 0 - - 1 - max_slider - 1 - - - protected - 1 - - Resizable - 1 - - wxSL_HORIZONTAL - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 50 - - - wxSUNKEN_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Bound_type: - - 0 - - - 0 - - 1 - stext4 - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - maxbound_choice - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxALIGN_CENTER_HORIZONTAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Fit Data - - 0 - - - 0 - - 1 - fit_button - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/abipy/gui/wxFormBuilder/skb_panel.fbp b/abipy/gui/wxFormBuilder/skb_panel.fbp deleted file mode 100644 index 11f3834eb..000000000 --- a/abipy/gui/wxFormBuilder/skb_panel.fbp +++ /dev/null @@ -1,645 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - - 1000 - none - 0 - MyProject2 - - . - - 1 - 1 - 1 - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - - 1 - 1 - impl_virtual - - - 0 - wxID_ANY - - - MyPanel2 - - -1,-1 - - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - main_sizer - wxVERTICAL - none - - 5 - wxALIGN_CENTER_HORIZONTAL - 0 - - - hsizer1 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Band Index: - - 0 - - - 0 - - 1 - band_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - band_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Spin Index: - - 0 - - - 0 - - 1 - spin_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - spin_cbox - 1 - - - protected - 1 - - Resizable - -1 - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - Combo! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND|wxALIGN_CENTER_HORIZONTAL - 1 - - - hsizer2 - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Kpoint: - - 0 - - - 0 - - 1 - kpoint_label - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - kpoint_listctrl - 1 - - - protected - 1 - - Resizable - 1 - - wxLC_ICON - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - wxSUNKEN_BORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/abipy/gui/wxapps.py b/abipy/gui/wxapps.py deleted file mode 100644 index 3e6f6f4ce..000000000 --- a/abipy/gui/wxapps.py +++ /dev/null @@ -1,51 +0,0 @@ -"""This module import all WxWidgets applications provides by Abipy in a single namespace.""" - -from .events import wxapp_events -from .browser import wxapp_dirbrowser, wxapp_listbrowser -from .scissors import wxapp_scissors -from .wfkviewer import wxapp_wfkviewer -from .sigresviewer import wxapp_sigresviewer -from .comparison import wxapp_comparison -from .editor import wxapp_showfiles -from .converter import wxapp_converter -from .structure import wxapp_structure_converter -from .fftprof import wxapp_fftprof -from .flowviewer import wxapp_flow_viewer -from .gsrviewer import wxapp_gsrviewer -from .mdfviewer import wxapp_mdfviewer -from .wxncview import wxapp_ncview -#from .oncvgui import wxapp_oncvpsp -from .phbstviewer import wxapp_phbstviewer - - -# Map abinit file extensions to WX Applications. -_EXT2APP = { - "WFK-etsf.nc": wxapp_wfkviewer, - "SIGRES.nc": wxapp_sigresviewer, - "GSR.nc": wxapp_gsrviewer, - "MDF.nc": wxapp_mdfviewer, - "PHBST.nc": wxapp_phbstviewer, - #".abi": MyEditorApp, - #".abo": MyEditorApp, - #".log": MyEditorApp, - #".sh": MyEditorApp, - #".err": MyEditorApp, - #".files": MyEditorApp, -} - - -def file2appcls(filepath): - import os - ext = filepath.split("_")[-1] - try: - return _EXT2APP[ext] - - except KeyError: - root, ext = os.path.splitext(filepath) - try: - return _EXT2APP[ext] - except KeyError: - # No frame registered for the file. - # Open NcViewer if we have a netcdf file else None - if filepath.endswith(".nc"): return wxapp_ncview - return None diff --git a/abipy/gui/wxncview.py b/abipy/gui/wxncview.py deleted file mode 100644 index 02b4d79b0..000000000 --- a/abipy/gui/wxncview.py +++ /dev/null @@ -1,1030 +0,0 @@ -import os -import collections -import wx -import netCDF4 -import numpy as np -import abipy.gui.awx as awx -import wx.lib.mixins.listctrl as listmix -import wx.lib.agw.flatnotebook as fnb -import wx.lib.dialogs as wxdg -import wx.lib.newevent - -from monty.string import list_strings - - -#def ndcontract_var(var): -# """ -# Remove fake dimensions from a Netcdf Variable. -# -# Returns: -# data: -# ndarray -# dimensions: -# list with the name of the dimensions in data. -# """ -# shape, dimensions = [], [] -# for num, name in zip(var.shape, var.dimensions): -# if num > 1: -# shape.append(num) -# dimensions.append(name) -# -# # Reshape array. -# data = np.reshape(var[:], shape) -# -# return data, dimensions - - -class AttrDict(dict): - """ - Allows to access dict keys as obj.foo in addition to the traditional way - obj['foo']" - """ - def __init__(self, *args, **kwargs): - super(AttrDict, self).__init__(*args, **kwargs) - self.__dict__ = self - - def copy(self): - newd = super(AttrDict, self).copy() - return self.__class__(**newd) - - -class SimpleTextViewer(awx.Frame): - """Very simple frame that displays text (string) in read-only mode.""" - def __init__(self, parent, text, **kwargs): - super(SimpleTextViewer, self).__init__(parent, **kwargs) - wx.TextCtrl(self, -1, text, style=wx.TE_MULTILINE|wx.TE_LEFT|wx.TE_READONLY) - - -# Command event used to signal that the value of the selected variable/dimension -# should be plotted as function of the file index. -CompareEvent, EVT_COMPARE = wx.lib.newevent.NewCommandEvent() - -def getSelected(wxlist): - """Gets the selected items from a list object.""" - selected = [] - - item = -1 - while True: - item = wxlist.GetNextItem(item, wx.LIST_NEXT_ALL, wx.LIST_STATE_SELECTED) - if item == -1: break - selected.append(item) - - return selected - - -def getColumnText(wxlist, index, col): - """Gets the text from the specified column entry in a list.""" - item = wxlist.GetItem(index, col) - return item.GetText() - - -class NcViewerFrame(wx.Frame): - """ - This frame allows the user to inspect the dimensions - and the variables reported in a netcdf file. - """ - def __init__(self, parent, filepaths=(), **kwargs): - """ - Args: - parent: - parent window. - filepaths: - String or list of strings with the path of the nc files to open - Empty tuple if no file should be opened during the initialization of the frame. - """ - if "size" not in kwargs: - kwargs["size"] = (1200, 800) - - super(NcViewerFrame, self).__init__(parent, id=-1, **kwargs) - - # This combination of options for config seems to work on my Mac. - self.config = wx.FileConfig(appName=self.codename, localFilename=self.codename + ".ini", - style=wx.CONFIG_USE_LOCAL_FILE) - - # Build menu, toolbar and status bar. - self.makeMenu() - self.makeToolBar() - self.statusbar = self.CreateStatusBar() - - # Open netcdf files. - filepaths, datasets = list_strings(filepaths), [] - filepaths = map(os.path.abspath, filepaths) - - for path in filepaths: - datasets.append(netCDF4.Dataset(path, mode="r")) - self.AddFileToHistory(path) - - # Create the notebook (each file will have its own tab). - panel = wx.Panel(self, -1) - try: - self.notebook = fnb.FlatNotebook(panel, -1, style=fnb.FNB_NAV_BUTTONS_WHEN_NEEDED) - except AttributeError: - self.notebook = fnb.FlatNotebook(panel, -1) - - for path, dataset in zip(filepaths, datasets): - tab = NcFileTab(self.notebook, dataset) - self.notebook.AddPage(tab, os.path.basename(path)) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(self.notebook, 1, wx.EXPAND, 5) - panel.SetSizerAndFit(sizer) - - self.Bind(wx.EVT_CLOSE, self.OnExit) - - # Intercept the command event associated to variable/dimension comparison. - self.Bind(EVT_COMPARE, self.OnCompare) - - @property - def codename(self): - """Name of the application.""" - return "wxncview" - - @property - def num_tabs(self): - """Number of tabs in the notebook.""" - return self.notebook.GetPageCount() - - @property - def datasets(self): - """List of Netcdf4 `Dataset`""" - datasets = [] - for page in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(page) - datasets.append(tab.dataset) - return datasets - - def makeMenu(self): - """Creates the main menu.""" - self.menu_bar = wx.MenuBar() - - self.menu_bar.Append(self.createFileMenu(), "&File") - self.menu_bar.Append(self.createPlotMenu(), "&Plot") - self.menu_bar.Append(self.createHelpMenu(), "&Help") - - self.SetMenuBar(self.menu_bar) - - def createFileMenu(self): - """Creates the file menu.""" - file_menu = wx.Menu() - - # File Menu ID's - self.idOPEN = wx.NewId() - self.idCLOSE = wx.NewId() - self.idEXIT = wx.NewId() - - file_menu.Append(self.idOPEN, "&Open", "Open netcdf file") - file_menu.Append(self.idCLOSE, "&Close", "Close netcdf file") - - file_history = self.file_history = wx.FileHistory(8) - file_history.Load(self.config) - recent = wx.Menu() - file_history.UseMenu(recent) - file_history.AddFilesToMenu() - file_menu.AppendMenu(-1, "&Recent Files", recent) - self.Bind(wx.EVT_MENU_RANGE, self.OnFileHistory, id=wx.ID_FILE1, id2=wx.ID_FILE9) - - file_menu.AppendSeparator() - file_menu.Append(self.idEXIT, "E&xit", "Exit wxnciew") - - self.Bind(wx.EVT_MENU, self.OnOpen, id=self.idOPEN) - self.Bind(wx.EVT_MENU, self.OnClose, id=self.idCLOSE) - self.Bind(wx.EVT_MENU, self.OnExit, id=self.idEXIT) - return file_menu - - def createPlotMenu(self): - """Creates the plot menu.""" - # Plot Menu ID's - plot_menu = wx.Menu() - - # Options for 2D-plots - self.twod_menu = twod_menu = wx.Menu() - for plot_mode in ["line", "scatter"]: - _id = wx.NewId() - twod_menu.AppendRadioItem(_id, plot_mode) - plot_menu.AppendMenu(-1, '2-D plots', twod_menu) - - # Options for image plots - self.image_menu = image_menu = wx.Menu() - for image_mode in ["intensity", "contour", "rgb"]: - _id = wx.NewId() - image_menu.AppendRadioItem(_id, image_mode) - plot_menu.AppendMenu(-1, 'Image mode', image_menu) - - # Options for complex data. - self.cplx_menu = cplx_menu = wx.Menu() - for cplx_mode in ["None", "Abs", "Real", "Imag"]: - _id = wx.NewId() - cplx_menu.AppendRadioItem(_id, cplx_mode) - plot_menu.AppendMenu(-1, 'Complex', cplx_menu) - - return plot_menu - - def createHelpMenu(self): - """Create the help menu.""" - # Help Menu ID's - self.idABOUT = wx.NewId() - - help_menu = wx.Menu() - help_menu.Append(self.idABOUT, "&About", "About wxncview") - self.Bind(wx.EVT_MENU, self.OnAbout, id=self.idABOUT) - - return help_menu - - def makeToolBar(self): - """Creates the toolbar.""" - self.toolbar = self.CreateToolBar() - self.toolbar.SetToolBitmapSize(wx.Size(32, 32)) - - #bitmap = icons.connect.getBitmap() - #self.toolbar.AddSimpleTool(self.idTOOL_CONNECT, bitmap, shortHelpString=_("Normal Connect")) - #bitmap = icons.quick_connect.getBitmap() - - #self.dir_entry_box = wx.ComboBox(self.toolbar, self.idTOOL_ENTRYBOX, - # size=wx.Size(350, -1), style=wx.CB_DROPDOWN) - #self.binary_button = wx.RadioButton(self.toolbar, self.idTOOL_BINARY, _("BINARY")) - #self.ascii_button = wx.RadioButton(self.toolbar, self.idTOOL_ASCII, _("ASCII")) - #config = utils.getApplicationConfiguration() - #if config['transfer_type'] == protocol.ProtocolInterface.BINARY: - # self.binary_button.SetValue(True) - #else: - # self.ascii_button.SetValue(True) - - #utils.addHorizontalSpaceTool(self.toolbar, 75) - #self.toolbar.AddControl(self.dir_entry_box) - #utils.addHorizontalSpaceTool(self.toolbar, 5) - #self.toolbar.AddControl(self.binary_button) - #utils.addHorizontalSpaceTool(self.toolbar, 5) - #self.toolbar.AddControl(self.ascii_button) - - #self.Bind(wx.EVT_TOOL, self.onConnect, id=self.idTOOL_CONNECT) - #self.Bind(wx.EVT_COMBOBOX, self.onComboSelect, id=self.idTOOL_ENTRYBOX) - self.toolbar.Realize() - - def AddFileToHistory(self, filepath): - """Add the absolute filepath to the file history.""" - self.file_history.AddFileToHistory(filepath) - self.file_history.Save(self.config) - self.config.Flush() - - def GetPlotOptions(self): - """Returns a dictionary with the options specified in the PlotMenu""" - d = AttrDict() - - for radio in self.twod_menu.GetMenuItems(): - if radio.IsChecked(): d["plot_mode"] = radio.GetItemLabel() - - for radio in self.image_menu.GetMenuItems(): - if radio.IsChecked(): d["image_mode"] = radio.GetItemLabel() - - for radio in self.cplx_menu.GetMenuItems(): - if radio.IsChecked(): d["cplx_mode"] = radio.GetItemLabel() - - return d - - def OnAbout(self, event): - """Displays the about window box.""" - # TODO - #about = aboutwin.AboutWindow(self) - #ret = about.ShowModal() - - #awx.makeAboutBox(codename=self.codename, version=self.VERSION, - # description="", developers="M. Giantomassi") - - def read_file(self, filepath): - """Open a netcdf file, create new tab and save the file in the history.""" - try: - notebook = self.notebook - dataset = netCDF4.Dataset(filepath, mode="r") - tab = NcFileTab(notebook, dataset) - notebook.AddPage(tab, os.path.basename(filepath)) - # don't know why but this does not work! - notebook.Refresh() - notebook.SetSelection(notebook.GetPageCount()) - self.AddFileToHistory(filepath) - except: - raise - - def OnOpen(self, event): - """Open FileDialog to allow the user to select a netcdf file.""" - dialog = wx.FileDialog(self, wildcard="*.nc") - if dialog.ShowModal() == wx.ID_CANCEL: return - - filepath = os.path.abspath(dialog.GetPath()) - self.read_file(filepath) - - def OnClose(self, event): - """ - Remove the active tab from the notebook and - close the corresponding netcdf file, - """ - notebook = self.notebook - if notebook.GetPageCount() == 0: return - idx = notebook.GetSelection() - if idx == -1: return None - - # Close the file - tab = notebook.GetPage(idx) - tab.dataset.close() - - # Remove tab. - notebook.DeletePage(idx) - notebook.Refresh() - - def OnExit(self, event): - """Close the netcdf files and exit the application.""" - try: - for index in range(self.notebook.GetPageCount()): - tab = self.notebook.GetPage(index) - try: - tab.dataset.close() - except: - pass - finally: - self.Destroy() - - def OnFileHistory(self, event): - """Open one of the file listed in the file_history.""" - fileNum = event.GetId() - wx.ID_FILE1 - filepath = self.file_history.GetHistoryFile(fileNum) - self.read_file(filepath) - - def OnCompare(self, event): - """ - Callback triggered by the `compare` option in the popup menu of the panels - Plote the netcdf variable/dimension as function of the file index. - """ - # Get the name of the variable. - name, obj = event.name, event.obj - - # Define the function to use the get the value of the dimension/variable. - if isinstance(obj, netCDF4.Variable): - def extract(dataset, name): - return dataset.variables[name][:] - - elif isinstance(obj, netCDF4.Dimension): - def extract(dataset, name): - return np.array(len(dataset.dimensions[name])) - - else: - raise ValueError("Don't know how to handle %s" % repr(obj)) - - # Extract data. Make sure all the shapes are equal. - data, shape = [], None - for dataset in self.datasets: - v = extract(dataset, name) - data.append(v) - if shape is None: - shape = v.shape - else: - assert shape == v.shape - - # Plot data. Two Branches for scalars and arrays. - opts = self.GetPlotOptions() - - is_scalar = not shape or (len(shape) == 1 and shape[0] == 1) - #print(shape) - - from wxmplot import PlotFrame - if is_scalar: - frame = PlotFrame(parent=self) - xx = range(len(self.datasets)) - - if opts.plot_mode == "line": - frame.plot(xx, data) - else: - frame.scatterplot(xx, data) - - frame.set_xlabel("File index") - frame.set_ylabel(name) - - frame.Show() - - else: - # Open new frame to allow the user to specify how to handle the array. - ArrayComparisonFrame(self, name, data).Show() - - -class NcFileTab(wx.Panel): - """Tab showing information on the netcdf file.""" - def __init__(self, parent, dataset, **kwargs): - """ - Args: - parent: - parent window. - dataset: - Netcdf4 `Dataset`. - """ - super(NcFileTab, self).__init__(parent, -1, **kwargs) - self.dataset = dataset - - splitter = wx.SplitterWindow(self, -1, style=wx.SP_3DSASH) - - self.dims_panel = DimsPanel(splitter, dataset) - self.vars_panel = VarsPanel(splitter, dataset) - splitter.SplitVertically(self.dims_panel, self.vars_panel) - splitter.SetSashGravity(0.1) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(splitter, 1, wx.EXPAND, 5) - self.SetSizerAndFit(sizer) - - -class BasePanel(wx.Panel, listmix.ColumnSorterMixin): - """Mixin class providing helper functions.""" - - @property - def viewer_frame(self): - try: - return self._viewer_frame - except AttributeError: - self._viewer_frame = self.getParentWithType(NcViewerFrame) - return self._viewer_frame - - def makePopupMenu(self): - """ - Creates a popup menu containing the list of supported actions for local file objects. - """ - # Popup IDs - self.idPOPUP_GETINFO = wx.NewId() - self.idPOPUP_COMPARE = wx.NewId() - - menu = wx.Menu() - menu.Append(self.idPOPUP_GETINFO, "Get Info") - self.Bind(wx.EVT_MENU, self.OnGetInfo, id=self.idPOPUP_GETINFO) - - if self.viewer_frame.num_tabs > 1: - menu.Append(self.idPOPUP_COMPARE, "Compare") - self.Bind(wx.EVT_MENU, self.OnCompare, id=self.idPOPUP_COMPARE) - - return menu - - def OnRightClick(self, event): - """Creates a popup menu at the location of the right click.""" - menu = self.makePopupMenu() - self.PopupMenu(menu, event.GetPosition()) - - def OnColClick(self, event): - event.Skip() - - def GetListCtrl(self): - """Used by the ColumnSorterMixin, see wx/lib/mixins/listctrl.py""" - return self.list - - def GetPlotOptions(self): - """ - Dictionary with the options for the plots taken from - the MenuBar of the parent `NcViewerFrame` - """ - frame = self.ncview_frame - return frame.GetPlotOptions() - - @property - def ncview_frame(self): - """The parent frame `NcViewFrame`.""" - try: - return self._ncview_frame - - except AttributeError: - parent = self.GetParent() - while True: - if parent is None: - raise RuntimeError("Cannot find NcViewerFrame, got None parent!") - - if isinstance(parent, NcViewerFrame): - break - else: - parent = parent.GetParent() - - self._ncview_frame = parent - return self._ncview_frame - - def getParentWithType(self, cls): - """ - Returns the first parent window of type cls. - - Raises: - RuntimeError if we have reached the head of the linked list. - """ - parent = self.GetParent() - - while True: - if parent is None: - raise RuntimeError("Cannot find parent with class %s, reached None parent!" % cls) - - if isinstance(parent, cls): - return parent - else: - parent = parent.GetParent() - - -class DimsPanel(BasePanel): - """Panel with the netcdf dimensions.""" - def __init__(self, parent, dataset, **kwargs): - """ - Args: - parent: - Parent window. - dataset: - Netcdf4 `Dataset`. - """ - super(DimsPanel, self).__init__(parent, -1, **kwargs) - self.dataset = dataset - - text = wx.StaticText(self, -1, "Number of dimensions: %d" % len(dataset.dimensions)) - - columns = ["name", "value"] - self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER) - - for col, name in enumerate(columns): - self.list.InsertColumn(col, name) - - # Used to store the Max width in pixels for the data in the column. - column_widths = [awx.get_width_height(self, s)[0] for s in columns] - - self.id2entry = {} - for idx, (name, dim) in enumerate(dataset.dimensions.items()): - entry = map(str, [name, len(dim)]) - self.list.Append(entry) - self.list.SetItemData(idx, idx) - self.id2entry[idx] = entry - - w = [awx.get_width_height(self, s)[0] for s in entry] - column_widths = map(max, zip(w, column_widths)) - - for index, col in enumerate(columns): - self.list.SetColumnWidth(index, column_widths[index]) - - # Now that the list exists we can init the other base class, see wx/lib/mixins/listctrl.py - self.itemDataMap = self.id2entry - listmix.ColumnSorterMixin.__init__(self, len(columns)) - self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick, self.list) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(text, 0, wx.EXPAND, 5) - sizer.Add(self.list, 1, wx.EXPAND, 5) - self.SetSizerAndFit(sizer) - - # Connect the events. - self.list.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnRightClick) - self.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) - - def OnItemActivated(self, event): - """NoP""" - - def OnCompare(self, event): - """Trigger CompareEvent.""" - item = getSelected(self.list)[0] - name = getColumnText(self.list, item, 0) - dim = self.dataset.dimensions[name] - - # Create and post the event to trigger the refresh of the GUI - event = CompareEvent(id=-1, name=name, obj=dim) - wx.PostEvent(self.viewer_frame, event) - - def OnGetInfo(self, event): - """Show extra information on the selected variables.""" - selected = getSelected(self.list) - - lines = [] - for item in selected: - var_name = getColumnText(self.list, item, 0) - var = self.dataset.dimensions[var_name] - lines.append(str(var)) - #lines.append(ncvar_info(var)) - - wxdg.ScrolledMessageDialog(self, "\n".join(lines), caption="Variable Metadata", style=wx.MAXIMIZE_BOX).Show() - - -class VarsPanel(BasePanel): - """ - Panel with the netcdf variables. - Provides popup menu to inspect/plot the selected variable. - """ - def __init__(self, parent, dataset, **kwargs): - """ - Args: - parent: - Parent window. - dataset: - Netcdf4 `Dataset`. - """ - super(VarsPanel, self).__init__(parent, -1, **kwargs) - - self.dataset = dataset - - text = wx.StaticText(self, -1, "Number of variables: %d" % len(dataset.variables)) - - columns = ["name", "dtype", "shape", "value", "dimensions"] - self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER) - - for col, name in enumerate(columns): - self.list.InsertColumn(col, name) - - # Used to store the Max width in pixels for the data in the column. - column_widths = [awx.get_width_height(self, s)[0] for s in columns] - - self.id2entry = {} - for idx, (name, var) in enumerate(dataset.variables.items()): - # Show the value of scalars. - if not var.shape: - value = str(var[:]).replace("[", "").replace("]", "").strip() - else: - value = "[...]" - - entry = map(str, [name, var.dtype, var.shape, value, var.dimensions]) - self.list.Append(entry) - self.list.SetItemData(idx, idx) - self.id2entry[idx] = entry - - w = [awx.get_width_height(self, s)[0] for s in entry] - column_widths = map(max, zip(w, column_widths)) - - for index, col in enumerate(columns): - self.list.SetColumnWidth(index, column_widths[index]) - - # Now that the list exists we can init the other base class, see wx/lib/mixins/listctrl.py - self.itemDataMap = self.id2entry - listmix.ColumnSorterMixin.__init__(self, len(columns)) - self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick, self.list) - - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(text, 0, wx.EXPAND, 5) - sizer.Add(self.list, 1, wx.EXPAND, 5) - self.SetSizerAndFit(sizer) - - # Connect the events whose callback will be set by the client code. - self.list.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnRightClick) - self.list.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) - - def makePopupMenu(self): - """ - Creates a popup menu containing the list of - supported actions for local file objects. - """ - # Menu of the base class - menu = super(VarsPanel, self).makePopupMenu() - - self.idPOPUP_VAR_SHOW = wx.NewId() - menu.Append(self.idPOPUP_VAR_SHOW, "Show") - - # Extend base class. - #menu.AppendSeparator() - - self.idPOPUP_VAR_EXPORT = wx.NewId() - menu.Append(self.idPOPUP_VAR_EXPORT, "Export") - - # Extra Popup IDs for arrays - #self.idPOPUP_ARR_SLICE = wx.NewId() - #menu.Append(self.idPOPUP_ARR_SLICE, "Slice array") - #self.Bind(wx.EVT_MENU, self.OnArraySlice, id=self.idPOPUP_ARR_SLICE) - - # Associate menu/toolbar items with their handlers. - menu_handlers = [ - (self.idPOPUP_VAR_SHOW, self.onVarShow), - (self.idPOPUP_VAR_EXPORT, self.onVarExport), - ] - - for combo in menu_handlers: - mid, handler = combo[:2] - self.Bind(wx.EVT_MENU, handler, id=mid) - - return menu - - #def GetNameVarFromEvent(self, event): - # currentItem = event.m_itemIndex - # entry = self.id2entry[self.list.GetItemData(currentItem)] - # name = entry[0] - # return name, self.dataset.variables[name] - - def OnGetInfo(self, event): - """Show extra information on the selected variables.""" - selected = getSelected(self.list) - - lines = [] - for item in selected: - name = getColumnText(self.list, item, 0) - var = self.dataset.variables[name] - lines.append(str(var)) - #lines.append(ncvar_info(var)) - - wxdg.ScrolledMessageDialog(self, "\n".join(lines), caption="Variable Metadata", style=wx.MAXIMIZE_BOX).Show() - - def onVarShow(self, event): - item = getSelected(self.list)[0] - name = getColumnText(self.list, item, 0) - var = self.dataset.variables[name] - text = str(var[:]) - SimpleTextViewer(self, text=text).Show() - - def onVarExport(self, event): - """Export the selected variable to txt format and save it to file.""" - item = getSelected(self.list)[0] - name = getColumnText(self.list, item, 0) - var = self.dataset.variables[name] - - dialog = wx.FileDialog(self, message="Save text file", defaultDir="", defaultFile="", - wildcard="", style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) - - if dialog.ShowModal() == wx.ID_CANCEL: return - - # save the current contents in the file - path = dialog.GetPath() - - # Save self to a text file. See :func:`np.savetext` for the description of the variables - np.savetxt(path, var[:], fmt='%.18e') - - def OnCompare(self, event): - """Trigger CompareEvent.""" - item = getSelected(self.list)[0] - name = getColumnText(self.list, item, 0) - var = self.dataset.variables[name] - - # Create and post the event to trigger the comparison. - event = CompareEvent(id=-1, name=name, obj=var) - wx.PostEvent(self.viewer_frame, event) - - def OnItemActivated(self, event): - """Use `wxmplot` to plot the selected variables.""" - selected = getSelected(self.list) - for item in selected: - name = getColumnText(self.list, item, 0) - var = self.dataset.variables[name] - self.plot_variable(name, var, self.dataset) - - def plot_variable(self, var_name, var, dataset): - """ - Use `wxmplot` to plot the selected variables. - - Args: - var_name: - Name of the variable - var: - Netcdf4 `Variable`. - dataset: - Netcdf4 `Dataset`. - """ - # Remove fake dimensions. - shape, dimensions = [], [] - for num, name in zip(var.shape, var.dimensions): - if num > 1: - shape.append(num) - dimensions.append(name) - - # Get data to plot. - data = np.reshape(var[:], shape) - opts = self.GetPlotOptions() - - cplx_mode = opts.cplx_mode - if cplx_mode != "None": - if shape[-1] != 2: - err_msg = "cplx_mode: %s. Expecting 2 as last dimensions but got %d" % ( - cplx_mode, shape[-1]) - raise ValueError(err_msg) - # Convert to complex then change shape and dimensions - data = data[..., 0] + 1j*data[..., 1] - shape = shape[:-1] - dimensions = dimensions[:-1] - if cplx_mode == "Abs": - data = np.abs(data) - elif cplx_mode == "Real": - data = data.real - elif cplx_mode == "Imag": - data = data.imag - else: - raise ValueError("Wrong value for cplx_mode %s" % cplx_mode) - - # Plotting a scalar? - if not shape: return - ndim = len(shape) - - if ndim == 1: - # Vector - dim_name = dimensions[0] - xx = range(len(dataset.dimensions[dim_name])) - - from wxmplot import PlotFrame - frame = PlotFrame(parent=self) - if opts.plot_mode == "line": - frame.plot(xx, data) - else: - frame.scatterplot(xx, data) - - frame.set_xlabel(dim_name) - frame.set_ylabel(var_name) - - frame.Show() - - elif ndim == 2: - # Two dimensional array. - dim_namex, dim_namey = dimensions - xx, yy = range(len(dataset.dimensions[dim_namex])), range(len(dataset.dimensions[dim_namey])) - - mode = opts.image_mode - - if False: - # 3d plot - import matplotlib.pyplot as plt - from mpl_toolkits.mplot3d import Axes3D - fig = plt.figure() - ax = Axes3D(fig) - X, Y = np.meshgrid(xx, yy, sparse=False, indexing='ij') - print(X.shape, Y.shape, data.shape) - ax.plot_surface(X, Y, data) # rstride=8, cstride=8, alpha=0.3) - plt.show() - - from wxmplot import ImageFrame - frame = ImageFrame(parent=self) - frame.display(data, title=var_name, style=mode, x=xx, y=yy, xlabel=dim_namex, ylabel=dim_namey) - frame.Show() - - else: - raise NotImplementedError() - - #def OnArraySlice(self, event): - # print("Onslice") - # item = getSelected(self.list)[0] - # name = getColumnText(self.list, item, 0) - # var = self.dataset.variables[name] - # ArraySlicerFrame(self, name, var).Show() - - -class ArrayComparisonFrame(wx.Frame): - """This frame allows the user to specify how to handle array comparison.""" - - def __init__(self, parent, name, data, **kwargs): - super(ArrayComparisonFrame, self).__init__(parent, -1, **kwargs) - self.name, self.data = name, data - self.panel = ArrayComparisonPanel(self) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - hsizer = wx.BoxSizer(wx.HORIZONTAL) - - plot_button = wx.Button(self, -1, "Plot") - hsizer.Add(plot_button, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) - plot_button.Bind(wx.EVT_BUTTON, self.onPlotData) - - main_sizer.Add(hsizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) - main_sizer.Add(self.panel, 1, wx.EXPAND, 5) - - self.SetSizerAndFit(main_sizer) - - def onPlotData(self, event): - operators = self.panel.GetSelectedOperators() - - from wxmplot import PlotFrame - frame = PlotFrame(parent=self) - - xx = range(len(self.data)) - - for oname, op in operators.items(): - #print(oname) - values = [op(arr) for arr in self.data] - - frame.oplot(xx, values, label=oname) - #if opts.plot_mode == "line": - # frame.oplot(xx, values) - #else: - # frame.scatterplot(xx, values) - - frame.set_xlabel("File index") - frame.set_ylabel(self.name) - - frame.Show() - - -class ArrayComparisonPanel(wx.Panel): - """A panel with checkboxes used to select the scalar quantities to compare.""" - def __init__(self, parent, **kwargs): - """ - Args: - parent: - Parent window. - """ - super(ArrayComparisonPanel, self).__init__(parent, -1, **kwargs) - - main_sizer = wx.BoxSizer(wx.VERTICAL) - - static_sizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Array contractions"), wx.VERTICAL) - - operators = [ - ("max", np.max), - ("min", np.min), - ("mean", np.mean), - ("std", np.std), - #("median", np.median), - ] - - self.operators = collections.OrderedDict(operators) - self.check_boxes = collections.OrderedDict() - - for oname, _ in self.operators.items(): - cbox = wx.CheckBox(self, -1, oname, wx.DefaultPosition, wx.DefaultSize, 0) - cbox.SetValue(True) - static_sizer.Add(cbox, 0, wx.ALL | wx.EXPAND, 5) - self.check_boxes[oname] = cbox - - main_sizer.Add(static_sizer, 1, wx.EXPAND, 5) - - # Add buttons to (select|deselect) all checkboxes. - hsizer = wx.BoxSizer(wx.HORIZONTAL) - - all_button = wx.Button(self, -1, "Select all") - all_button.Bind(wx.EVT_BUTTON, self.OnSelectAll) - hsizer.Add(all_button, 0, wx.ALL, 5) - - deselect_button = wx.Button(self, -1, "Deselect all") - deselect_button.Bind(wx.EVT_BUTTON, self.OnDeselectAll) - hsizer.Add(deselect_button, 0, wx.ALL, 5) - - main_sizer.Add(hsizer, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) - - self.SetSizerAndFit(main_sizer) - - def OnSelectAll(self, event): - """Select all the check boxes.""" - for cbox in self.check_boxes.values(): - cbox.SetValue(True) - - def OnDeselectAll(self, event): - """Deselect all the check boxes.""" - for cbox in self.check_boxes.values(): - cbox.SetValue(False) - - def GetSelectedOperators(self): - """ - Return the list of operators selected by the user. - """ - ops = collections.OrderedDict() - - for oname, cbox in self.check_boxes.items(): - if cbox.GetValue(): - ops[oname] = self.operators[oname] - - return ops - - -#class ArraySlicerFrame(wx.Frame): -# -# def __init__(self, parent, name, var, **kwargs): -# super(ArraySlicerFrame, self).__init__(parent, -1, **kwargs) -# self.name, self.var = name, var -# -# self.panel_1d = Slice1dPanel(self, name, var) -# #self.panel_2d = Slice1dPanel(self, name, arr) -# #self.panel_3d = Slice1dPanel(self, name, arr) -# -# main_sizer = wx.BoxSizer(wx.VERTICAL) -# main_sizer.Add(self.panel_1d, 1, wx.EXPAND, 5) -# self.SetSizer(main_sizer) -# -# -#class Slice1dPanel(wx.Panel): -# """A panel plotting for 1D slices.""" -# def __init__(self, parent, name, var, **kwargs): -# """ -# Args: -# parent: -# Parent window. -# """ -# super(Slice1dPanel, self).__init__(parent, -1, **kwargs) -# self.name, self.var = name, var -# -# label = wx.StaticText(self, -1, "Axis:") -# label.Wrap(-1) -# self.axis_choice = wx.ComboBox(self, -1, choices=var.dimensions) -# -# hsz1 = wx.BoxSizer(wx.HORIZONTAL) -# hsz1.Add(label, 0, wx.ALL, 5) -# hsz1.Add(self.axis_choice, 1, wx.ALL, 5) -# -# plot_button = wx.Button(self, -1, "Plot") -# plot_button.Bind(wx.EVT_BUTTON, self.onPlotButton) -# #hsizer = wx.BoxSizer(wx.HORIZONTAL) -# #hsizer.Add(plot_button, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) -# -# main_sizer = wx.BoxSizer(wx.VERTICAL) -# main_sizer.Add(hsz1, 0.4, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND, 5) -# main_sizer.Add(plot_button, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) -# self.SetSizerAndFit(main_sizer) -# -# def onPlotButton(self, event): -# var = self.var -# axis = var.dimensions.index(self.axis_choice.GetValue()) -# indices = var.shape -# #frame = PlotFrame(parent=self) -# #xx = range(len(self.var)) -# #frame.oplot(xx, values, label=oname) -# #frame.set_xlabel("File index") -# #frame.set_ylabel(self.name) -# #frame.Show() - - -def wxapp_ncview(filepaths=()): - """Standalone application.""" - app = wx.App() - frame = NcViewerFrame(None, filepaths=filepaths) - app.SetTopWindow(frame) - frame.Show() - - return app diff --git a/abipy/integration_tests/TODO.md b/abipy/integration_tests/TODO.md index d6226d3f5..c6098c2ce 100644 --- a/abipy/integration_tests/TODO.md +++ b/abipy/integration_tests/TODO.md @@ -2,6 +2,32 @@ TODO list: ## High priority +* Add new section to manager.yml that allows users to customize limits according + to task.__class__.__name__. + Possible Yaml syntax for `task_class_limits`: + + limits: + min_cores: 1 + max_cores: 1000 + timelimit: 2:0:0 + + task_class_limits: + # TaskClassName --> dict with new limits + # Accept absolute values or `scale_name` syntax to scale `name` (mutually exclusive) + # If a new limit is not specified, the global value is used. + # + KerangeTask: {max_cores: 2, timelimit: 0:5:0} + + You should be able to specify the Qadapter as well. + +* Recheck autoparal code in abinit. For the DFPT part, the computation of the weights is clearly + wrong because with nkpt 128 Abinit suggests to use nprocs 130 !!!!!! + +* Implement Task modifier i.e. operations that change the input file if some condition occurs. + This extra logic is require to handle problematic cases in which for instance the ScfTask does not converge + and modification in the input file are required + For instance, one may need to increase nline and/or diemac before restarting. + * Use angdeg instead of rprimd in structure_to_abivars if hex or rhomboedral lattice (tricky because input settings should be preserved) @@ -17,7 +43,7 @@ TODO list: * Improve exception handling in NetcdfReader -* Read forces in read_structure ? Fix problem MSONable and ArrayWithUnit +* Read forces in read_structure ? Fix problem with MSONable and ArrayWithUnit/complex numbers * Automate CHANGELOG creation. @@ -26,23 +52,45 @@ TODO list: * Refactor wrappers for mrgddb and mrgdvdb (problems with subprocess when merging large number of partial files (likely due to Popen with large stderr/stdout) -* Move to new version of APSscheduler - * BECS: 3x3 Tensor is not symmetric. Remove get_voigt_dataframe +* Parse stderr to detect runtime errors such as + + forrtl: severe (24): end-of-file during read, unit 5, file /proc/59090/fd/0 + Image PC Routine Line Source + abinit 0000000008914AC2 for__io_return Unknown Unknown + abinit 000000000894378D for_read_seq_fmt Unknown Unknown + abinit 000000000194409E Unknown Unknown Unknown + abinit 000000000042C671 Unknown Unknown Unknown + abinit 000000000042C30E Unknown Unknown Unknown + libc-2.17.so 00002AAAB5DD8505 __libc_start_main Unknown Unknown + abinit 000000000042C229 Unknown Unknown Unknown + + + and kill the scheduler else the code gets stuck here (issue reported on lemaitre3) + +* Remove/check the usage of line_density. Use ndivsm < 0 to activate line_density a la pymatgen. + +* Check whether it's possible to reduce the memory of the SIGRES file wihouth brealing backward compatibility. + eigvec_qp = self.read_variable("eigvec_qp") scales quite badly with nands + +* Migrate to pyproject.toml. Implement script to generate requirements.yml + Very likely `conda install --file requirements-optional.txt` is now broken to the introduction of `-r`. + + ## Medium priority * Add support for PSML/UPF format * Add support for new Abinit9 interface (getden_path, getwfk_path, pp_dirpath and pseudos) - but remember that strings in the input should not be too long. + but remember that strings in the input should not be too long. Use common root for pseudos, what about getwfk_path? Need to refactor treatment of string lengths in Abinit! -* Add DOS to GSR file (useful if tetra) Create Dosfile ? Fortran exec? +* Interface abitk with AbiPy to compute DOS with tetra. * videos in README (atom and hydrogen) or screenshot based on jupyterlab -* Refactor/improve Visualizer +* Refactor/improve Visualizer. See also jsmol, nglview and crystaltoolkit * add possibility of changing amu in anaddb/abinit and API to "mix" DDB files phonon group velocities (requires extension in netcdf files). @@ -100,7 +148,7 @@ TODO list: * Add option max_num_launchers in scheduler.yml * Add extra metadata to netcdf files (try to propagate info on space group from parser to crystal_t - as well as Abinit input as string) + as well as Abinit input as string). Input file has been added in Abini9 (input_string) * Improvement in the dilatmx error handler: @@ -120,11 +168,10 @@ TODO list: * Remove GUI code. -* nbjsmol (build system, refactor API?) - * fatbands with SOC (waiting for Matthieu's refactoring) * Improvements in SKW. Finalize baseclass for ElectronInterpolator + Average degenerate states. * context manager to change variables (e.g. autoparal) @@ -132,7 +179,7 @@ TODO list: * Replace SIGRES with new fileformat based on SIGEPH (long-term project) -* Update spack recipe, add support for EasyBuild, revamp homebrew (?) +* Update spack recipe and EasyBuild * Classification of phonons/electrons diff --git a/abipy/integration_tests/conftest.py b/abipy/integration_tests/conftest.py index 637f3830f..ceae0eb3a 100644 --- a/abipy/integration_tests/conftest.py +++ b/abipy/integration_tests/conftest.py @@ -1,7 +1,11 @@ """Configuration file for pytest.""" +from __future__ import annotations + import os import pytest -import yaml +#import yaml +import ruamel.yaml as yaml +from abipy.tools.iotools import yaml_safe_load_path, yaml_dump import copy import abipy.flowtk as flowtk @@ -21,8 +25,10 @@ #USER_CONFIG_DIR = os.path.dirname(__file__) # Read the base configuration from file -with open(os.path.join(USER_CONFIG_DIR, "manager.yml")) as fh: - base_conf = yaml.safe_load(fh) +#with open(os.path.join(USER_CONFIG_DIR, "manager.yml")) as fh: +# base_conf = yaml.safe_load(fh) + +base_conf = yaml_safe_load_path(os.path.join(USER_CONFIG_DIR, "manager.yml")) # Build list of configurations. _manager_confs = [] @@ -33,7 +39,7 @@ newd["policy"]["autoparal"] = autoparal _manager_confs.append(newd) -_manager_confs = [yaml.dump(d) for d in _manager_confs] +_manager_confs = [yaml_dump(d) for d in _manager_confs] #_manager_confs = [base_conf] diff --git a/abipy/integration_tests/itest_ebands.py b/abipy/integration_tests/itest_ebands.py index 8f24177ac..3c63ceb30 100644 --- a/abipy/integration_tests/itest_ebands.py +++ b/abipy/integration_tests/itest_ebands.py @@ -1,6 +1,8 @@ """ Integration tests for flows (require pytest, ABINIT and a properly configured environment) """ +from __future__ import annotations + import pytest import os import numpy as np @@ -10,6 +12,7 @@ from abipy.core.testing import has_matplotlib +import pytest def make_scf_nscf_inputs(tvars, pp_paths, nstep=50): """ @@ -123,6 +126,8 @@ def itest_unconverged_scf(fwp, tvars): flow.debug() raise RuntimeError() + assert flow.explain(verbose=1) + # Test inspect methods if has_matplotlib(): assert t0.inspect(show=False) @@ -150,7 +155,7 @@ def itest_unconverged_scf(fwp, tvars): #dt = t0.datetimes #assert (dt.submission, dt.start, dt.end) == (None, None, None) - +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_bandstructure_flow(fwp, tvars): """ Testing band-structure flow with one dependency: SCF -> NSCF. @@ -397,7 +402,7 @@ def itest_htc_bandstructure(fwp, tvars): assert not gsr.ebands.has_bzpath gsr.ebands.get_edos() - +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_metagga_ebands_flow(fwp, tvars): """ Test band structure calculation with meta-GGA diff --git a/abipy/integration_tests/itest_flows_from_files.py b/abipy/integration_tests/itest_flows_from_files.py index 6206ffb9f..a4346e0fe 100644 --- a/abipy/integration_tests/itest_flows_from_files.py +++ b/abipy/integration_tests/itest_flows_from_files.py @@ -1,6 +1,8 @@ """ Integration tests for flows/works/tasks that rely on external files e.g. DEN --> NscfTask. """ +from __future__ import annotations + import os import abipy.data as abidata import abipy.abilab as abilab diff --git a/abipy/integration_tests/itest_frohlich_zpr.py b/abipy/integration_tests/itest_frohlich_zpr.py index aedb566d1..982b3969a 100644 --- a/abipy/integration_tests/itest_frohlich_zpr.py +++ b/abipy/integration_tests/itest_frohlich_zpr.py @@ -1,12 +1,12 @@ """Integration tests for phonon flows.""" +from __future__ import annotations -#import numpy as np import abipy.data as abidata import abipy.abilab as abilab -#import abipy.flowtk as flowtk from abipy.dfpt.ddb import DdbFile +import pytest def make_scf_input(usepaw=0): """Returns the GS input file""" @@ -45,7 +45,7 @@ def make_scf_input(usepaw=0): return scf_input - +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_frohlich_zpr_flow(fwp, tvars): """ """ diff --git a/abipy/integration_tests/itest_gw.py b/abipy/integration_tests/itest_gw.py index 2a53dca73..9dfbc22b7 100644 --- a/abipy/integration_tests/itest_gw.py +++ b/abipy/integration_tests/itest_gw.py @@ -1,4 +1,5 @@ """Integration tests for GW flows.""" +from __future__ import annotations import abipy.data as abidata import abipy.abilab as abilab @@ -6,6 +7,7 @@ #from abipy.core.testing import has_abinit, has_matplotlib +import pytest def make_g0w0_inputs(ngkpt, tvars): """ @@ -93,6 +95,7 @@ def make_g0w0_inputs(ngkpt, tvars): return multi.split_datasets() +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_g0w0_flow(fwp, tvars): """Test flow for G0W0 calculations.""" scf, nscf, scr, sig = make_g0w0_inputs(ngkpt=[2, 2, 2], tvars=tvars) @@ -155,63 +158,7 @@ def itest_g0w0_flow(fwp, tvars): #assert flow.validate_json_schema() -def itest_g0w0qptdm_flow(fwp, tvars): - """Integration test for G0W0WithQptdmFlow.""" - scf, nscf, scr, sig = make_g0w0_inputs(ngkpt=[2, 2, 2], tvars=tvars) - - flow = flowtk.G0W0WithQptdmFlow(fwp.workdir, scf, nscf, scr, sig, manager=fwp.manager) - - # Enable garbage collector at the flow level. - # Note that here we have tp use this policy because tasks are created dynamically - #flow.set_garbage_collector(policy="task") - flow.set_garbage_collector(policy="flow") - - assert len(flow) == 3 - bands_work = flow[0] - scr_work = flow[1] - sigma_work = flow[2] - - assert scr_work.depends_on(bands_work.nscf_task) - assert not scr_work.depends_on(bands_work.scf_task) - - for sigma_task in sigma_work: - #print("sigma_task.deps", sigma_task.deps) - assert sigma_task.depends_on(bands_work.nscf_task) - assert not sigma_task.depends_on(bands_work.scf_task) - assert sigma_task.depends_on(scr_work) - - flow.build_and_pickle_dump(abivalidate=True) - flow.show_dependencies() - # This call is needed to connect the node and enable - # the callbacks, otherwise the scheduler enters a deadlock. - flow.connect_signals() - - # Run the flow. - fwp.scheduler.add_flow(flow) - assert fwp.scheduler.start() == 0 - assert not fwp.scheduler.exceptions - - flow.show_status() - assert all(work.finalized for work in flow) - if not flow.all_ok: - flow.debug() - raise RuntimeError() - - # Test set_garbage_collector - # The WFK|SCR file should have been removed because we call set_garbage_collector - #assert not scf_task.outdir.has_abiext("WFK") - #assert not nscf_task.outdir.has_abiext("WFK") - #assert not scr_task.outdir.has_abiext("SCR") - #assert not scr_task.outdir.has_abiext("SUS") - - # The SCR file produced by scr_work should have been removed - assert not scr_work.outdir.has_abiext("SCR") - - #assert flow.validate_json_schema() - - flow.finalize() - - +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_htc_g0w0(fwp, tvars): """Testing G0W0Work.""" structure = abilab.Structure.from_file(abidata.cif_file("si.cif")) diff --git a/abipy/integration_tests/itest_handlers.py b/abipy/integration_tests/itest_handlers.py index 0bd13b792..a1894af61 100644 --- a/abipy/integration_tests/itest_handlers.py +++ b/abipy/integration_tests/itest_handlers.py @@ -1,3 +1,4 @@ +from __future__ import annotations import pytest import abipy.data as abidata @@ -19,6 +20,7 @@ def itest_tolsymerror_handler(fwp): at the level of the symmetry finder and autoparal fails because it cannot find the parallel configurations. """ + pytest.xfail("tolsymerror_handler has been disabled because this problem has been fixed in v9.") structure = dict( acell=(1.0, 1.0, 1.0), xred=[ @@ -45,6 +47,7 @@ def itest_tolsymerror_handler(fwp): ecut=4, tolmxf=5e-05, nshiftk=1, + #tolsym=1e-10, ) flow = flowtk.Flow(workdir=fwp.workdir, manager=fwp.manager) diff --git a/abipy/integration_tests/itest_optic.py b/abipy/integration_tests/itest_optic.py index 20a56125b..746a1571b 100644 --- a/abipy/integration_tests/itest_optic.py +++ b/abipy/integration_tests/itest_optic.py @@ -1,4 +1,5 @@ """Optical spectra with Optic.""" +from __future__ import annotations import pytest import abipy.data as abidata diff --git a/abipy/integration_tests/itest_phonons.py b/abipy/integration_tests/itest_phonons.py index 86896f217..443c74167 100644 --- a/abipy/integration_tests/itest_phonons.py +++ b/abipy/integration_tests/itest_phonons.py @@ -1,10 +1,12 @@ """Integration tests for phonon flows.""" +from __future__ import annotations import os import numpy as np import abipy.data as abidata import abipy.abilab as abilab import abipy.flowtk as flowtk + from abipy.core.testing import has_matplotlib import logging @@ -133,9 +135,9 @@ def itest_phonon_flow(fwp, tvars): assert atask.status == atask.S_OK # These output files should be produced in the task workdir. - # Actually they should be in outdir but anaddb uses different conventions. - assert len(atask.wdir.list_filepaths(wildcard="*PHBST.nc")) == 1 - assert len(atask.wdir.list_filepaths(wildcard="*PHDOS.nc")) == 1 + # Actually they should be in the outdir but anaddb uses different conventions. + assert len(atask.outdir.list_filepaths(wildcard="*PHBST.nc")) == 1 + assert len(atask.outdir.list_filepaths(wildcard="*PHDOS.nc")) == 1 def itest_phonon_restart(fwp): @@ -160,7 +162,8 @@ def itest_phonon_restart(fwp): tolvrs=1.0e-5, ) - multi = abilab.MultiDataset(structure=structure, pseudos=abidata.pseudos("13al.981214.fhi", "33as.pspnc"), + multi = abilab.MultiDataset(structure=structure, + pseudos=abidata.pseudos("13al.981214.fhi", "33as.pspnc"), ndtset=1 + len(qpoints)) multi.set_vars(global_vars) @@ -179,7 +182,7 @@ def itest_phonon_restart(fwp): #kptopt 2 # Automatic generation of k points, taking # i == 0 --> restart from WFK - if i == 1: multi[i+1].set_vars(prtwf=-1, nstep=5) # Restart with WFK and smart- io. + if i == 1: multi[i+1].set_vars(prtwf=-1, nstep=5) # Restart with WFK and smart-io. if i == 2: multi[i+1].set_vars(prtwf=0, nstep=8) # Restart from 1DEN. Too long --> disabled. all_inps = multi.split_datasets() @@ -219,7 +222,6 @@ def phonon_flow(workdir, scf_input, ph_inputs, with_nscf=False, with_ddk=False, Returns: :class:`Flow` object """ - logger.critical("phonon_flow is deprecated and could give wrong results") if with_dde: with_ddk = True @@ -251,7 +253,8 @@ def phonon_flow(workdir, scf_input, ph_inputs, with_nscf=False, with_ddk=False, dde_input.set_vars(qpt=[0, 0, 0], rfddk=1, rfelfd=2) dde_input_idir = dde_input.deepcopy() dde_input_idir.set_vars(rfdir=[1, 1, 1]) - dde_task = flow.register_task(dde_input, deps={scf_task: 'WFK', ddk_task: 'DDK'}, task_class=flowtk.DdeTask)[0] + dde_task = flow.register_task(dde_input, deps={scf_task: 'WFK', ddk_task: 'DDK'}, + task_class=flowtk.DdeTask)[0] if not isinstance(ph_inputs, (list, tuple)): ph_inputs = [ph_inputs] @@ -283,7 +286,6 @@ def phonon_flow(workdir, scf_input, ph_inputs, with_nscf=False, with_ddk=False, raise logger.info(irred_perts) - w.rmtree() # Now we can build the final list of works: diff --git a/abipy/integration_tests/itest_phonopy.py b/abipy/integration_tests/itest_phonopy.py index ee62ecd13..ceb539012 100644 --- a/abipy/integration_tests/itest_phonopy.py +++ b/abipy/integration_tests/itest_phonopy.py @@ -1,9 +1,12 @@ """ Integration tests for flows (require pytest, ABINIT and a properly configured environment) """ +from __future__ import annotations + import os import unittest -import numpy.testing.utils as nptu +#import numpy.testing.utils as nptu +import numpy.testing as nptu import abipy.data as abidata import abipy.flowtk as flowtk import abipy.flowtk.abiphonopy as abiph diff --git a/abipy/integration_tests/itest_relaxations.py b/abipy/integration_tests/itest_relaxations.py index a642761df..29a26b277 100644 --- a/abipy/integration_tests/itest_relaxations.py +++ b/abipy/integration_tests/itest_relaxations.py @@ -1,4 +1,5 @@ """Integration tests for structural relaxations.""" +from __future__ import annotations import numpy as np import pytest @@ -8,6 +9,7 @@ from abipy.core.testing import has_matplotlib +import pytest def ion_relaxation(tvars, ntime=50): structure = abilab.Structure.from_file(abidata.cif_file("si.cif")) @@ -43,13 +45,14 @@ def ion_relaxation(tvars, ntime=50): return inp - +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_atomic_relaxation(fwp, tvars): """Test atomic relaxation with automatic restart.""" # Build the flow flow = flowtk.Flow(fwp.workdir, manager=fwp.manager) ion_input = ion_relaxation(tvars, ntime=2) + ion_input["chksymtnons"] = 0 work = flow.register_task(ion_input, task_class=flowtk.RelaxTask) flow.allocate() @@ -152,6 +155,7 @@ def make_ion_ioncell_inputs(tvars, dilatmx, scalevol=1, ntime=50): return ion_inp, ioncell_inp +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_relaxation_with_restart_from_den(fwp, tvars): """Test structural relaxations with automatic restart from DEN files.""" # Build the flow @@ -187,6 +191,7 @@ def itest_relaxation_with_restart_from_den(fwp, tvars): flow.rmtree() +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_dilatmx_error_handler(fwp, tvars): """ Test cell relaxation with automatic restart in the presence of dilatmx error. @@ -219,6 +224,7 @@ def itest_dilatmx_error_handler(fwp, tvars): assert t0.corrections[0]["event"]["@class"] == "DilatmxError" +@pytest.mark.skip(reason="there is currently no way to test this on the testfarm (builder scope_gnu_12.2_abipy )") def itest_relaxation_with_target_dilatmx(fwp, tvars): """Test structural relaxations with automatic restart from DEN files.""" # Build the flow @@ -248,4 +254,9 @@ def itest_relaxation_with_target_dilatmx(fwp, tvars): assert relax_work[1].input["dilatmx"] == 1.03 + # check that when decreasing the dilatmx it actually takes the previously relaxed + # structure and does not start from scratch again: the lattice should not be the same. + assert not np.allclose(relax_work.ion_task.get_final_structure().lattice_vectors(), + relax_work.ioncell_task.input.structure.lattice_vectors()) + flow.rmtree() diff --git a/abipy/integration_tests/itest_scheduler.py b/abipy/integration_tests/itest_scheduler.py index 4dd75c4d8..f28c5dbde 100644 --- a/abipy/integration_tests/itest_scheduler.py +++ b/abipy/integration_tests/itest_scheduler.py @@ -1,5 +1,6 @@ #!/usr/bin/env python """Integration tests for the scheduler.""" +from __future__ import annotations import abipy.data as abidata import abipy.abilab as abilab @@ -83,7 +84,7 @@ def itest_flow_with_deadlocks(fwp): def itest_flow_without_runnable_tasks(fwp): """ - Test the behaviour of the scheduler when we ignore errrors and + Test the behaviour of the scheduler when we ignore errors and all the task that can be executed have been submitted. The scheduler should detect this condition and exit. """ @@ -112,4 +113,3 @@ def itest_flow_without_runnable_tasks(fwp): g = flow.find_deadlocks() assert not g.deadlocked and not g.runnables and not g.running - #assert 0 diff --git a/abipy/integration_tests/pytest.ini b/abipy/integration_tests/pytest.ini index dd0cbccd8..9e297f7bb 100644 --- a/abipy/integration_tests/pytest.ini +++ b/abipy/integration_tests/pytest.ini @@ -1,7 +1,7 @@ -[pytest] -python_files=itest_*.py +[pytest] +python_files=itest_*.py python_classes=Itest python_functions=itest -addopts = -rf --basetemp=_integration_tests_ +addopts = -rf --basetemp=_integration_tests_ #-f loop on fail mode #looponfailroots (pathlist) directories to check for changes diff --git a/abipy/iotools/__init__.py b/abipy/iotools/__init__.py index 86464664c..56c133748 100644 --- a/abipy/iotools/__init__.py +++ b/abipy/iotools/__init__.py @@ -1,7 +1,13 @@ # coding: utf-8 # flake8: noqa +from __future__ import annotations + import numpy as np -import pymatgen.io.abinit.netcdf as ionc +from pymatgen.io.abinit.netcdf import as_etsfreader +try: + from pymatgen.io.abinit.netcdf import ETSF_Reader +except ImportError: + from pymatgen.io.abinit.netcdf import EtsfReader as ETSF_Reader from monty.functools import lazy_property from pymatgen.core.periodic_table import Element @@ -9,10 +15,10 @@ from .visualizer import * -as_etsfreader = ionc.as_etsfreader +#as_etsfreader = ionc.as_etsfreader -class ETSF_Reader(ionc.ETSF_Reader): +class ETSF_Reader(ETSF_Reader): """ Provides high-level API to read data from netcdf files written following the ETSF-IO specifications described in :cite:`Caliste2008` @@ -26,6 +32,10 @@ def read_structure(self): from abipy.core.structure import Structure return Structure.from_file(self.path) + def typeidx_from_symbol(self, symbol: str) -> int: + """Returns the type index from the chemical symbol. Note python convention.""" + return self.chemical_symbols.index(symbol) + # Must overwrite implementation of pymatgen.io.abinit.netcdf # due to a possible bug introduced by initial whitespaces in symbol @lazy_property @@ -40,7 +50,7 @@ def chemical_symbols(self): return symbols - def read_string(self, varname): + def read_string(self, varname: str): """ Args: varname: Name of the variable @@ -65,7 +75,7 @@ def none_if_masked_array(self, arr): """Return None if arr is a MaskedArray else None.""" return None if np.ma.is_masked(arr) else arr - def read_amu_symbol(self): + def read_amu_symbol(self) -> dict: """ Read atomic masses and return dictionary element_symbol --> amu. @@ -84,3 +94,13 @@ def read_amu_symbol(self): amu_symbol = {Element.from_Z(n).symbol: v for n, v in amu_z.items()} return amu_symbol + + def read_ngfft3(self) -> np.array: + """ + Return the number of FFT divisions. + """ + ngfft3 = 3 * [None] + ngfft3[0] = self.read_dimvalue("number_of_grid_points_vector1") + ngfft3[1] = self.read_dimvalue("number_of_grid_points_vector2") + ngfft3[2] = self.read_dimvalue("number_of_grid_points_vector3") + return np.array(ngfft3, int) diff --git a/abipy/iotools/cube.py b/abipy/iotools/cube.py index 2566abe91..c67c94d7d 100644 --- a/abipy/iotools/cube.py +++ b/abipy/iotools/cube.py @@ -3,6 +3,7 @@ Tools for writing cube files. See http://paulbourke.net/dataformats/cube/ and http://www.gaussian.com/g_tech/g_ur/u_cubegen.htm """ +from __future__ import annotations import numpy as np @@ -17,7 +18,7 @@ ] -def cube_write_structure_mesh(file, structure, mesh): +def cube_write_structure_mesh(file, structure, mesh) -> None: fwrite = file.write fwrite("Density generated from abipy\n") fwrite("in the cube file format\n") @@ -33,7 +34,7 @@ def cube_write_structure_mesh(file, structure, mesh): fwrite('{:d} {:.10f} {:.10f} {:.10f} {:.10f}\n'.format(site.specie.Z, 0.0, cc[0], cc[1], cc[2])) -def cube_write_data(file, data, mesh): +def cube_write_data(file, data, mesh) -> None: fwrite = file.write data_bohrs = data * (bohr_to_angstrom ** 3) for ix in range(mesh.nx): @@ -42,8 +43,8 @@ def cube_write_data(file, data, mesh): fwrite('{:.5e}\n'.format(data_bohrs[ix, iy, iz])) -def cube_read_structure_mesh_data(file): - with open(file, 'r') as fh: +def cube_read_structure_mesh_data(filepath: str) -> tuple: + with open(filepath, 'r') as fh: # The two first lines are comments for ii in range(2): fh.readline() diff --git a/abipy/iotools/tests/test_xsf.py b/abipy/iotools/tests/test_xsf.py index 4e4508349..8b655af43 100644 --- a/abipy/iotools/tests/test_xsf.py +++ b/abipy/iotools/tests/test_xsf.py @@ -16,7 +16,6 @@ def setUp(self): def test_xsf_write_structure(self): """Testing crystalline structures in the XSF format.""" tmp_file = tempfile.TemporaryFile(mode="w+") - xsf_write_structure(tmp_file, self.mgb2) xsf_string = \ @@ -41,13 +40,17 @@ def test_xsf_write_data(self): """Testing XSF file with datasets.""" # 2 x 3 x 2 grid without pbc stored in fortran mode. data = np.reshape(np.arange(12), (2,3,2)).T + + xsf_write_structure_and_data_to_path(self.get_tmpname(), self.mgb2, data, add_replicas=True) + tmp_file = tempfile.TemporaryFile(mode="w+") + xsf_write_data(tmp_file, self.mgb2, data, add_replicas=True) xsf_string = \ """BEGIN_BLOCK_DATAGRID_3D data - BEGIN_DATAGRID_3Dgrid#1 + BEGIN_DATAGRID_3D_UNKNOWN 3 4 3 0.000000 0.000000 0.000000 2.672554 1.543000 0.000000 @@ -75,7 +78,7 @@ def test_xsf_write_data(self): self.assertMultiLineEqual(tmp_file.read(), xsf_string) # Complex array will raise TypeError since we should specify the type. - cplx_data = np.array(data, dtype=np.complex) + cplx_data = np.array(data, dtype=complex) # cplx_mode must be specified when data is a complex array with self.assertRaises(TypeError): @@ -102,7 +105,7 @@ def test_bxsf_write(self): tmp_file = tempfile.TemporaryFile(mode="w+") nsppol, nband, ndivs, fermie = 1, 2, (2,2,2), 0.0 - energies = np.arange(nsppol * nband * np.product(ndivs)) + energies = np.arange(nsppol * nband * np.prod(ndivs)) bxsf_write(tmp_file, self.mgb2, nsppol, nband, ndivs, energies, fermie, unit="Ha") xsf_string = \ diff --git a/abipy/iotools/visualizer.py b/abipy/iotools/visualizer.py index ce1ce52ba..27f329bf3 100644 --- a/abipy/iotools/visualizer.py +++ b/abipy/iotools/visualizer.py @@ -1,11 +1,12 @@ # coding: utf-8 """Classes used to execute a visualizer within the Python interpreter.""" +from __future__ import annotations import sys import os import abc -from monty.os.path import which +from shutil import which from monty.termcolor import cprint from monty.functools import lazy_property @@ -15,12 +16,12 @@ ] -def is_macosx(): +def is_macosx() -> bool: """True if we are running on Mac.""" return "darwin" in sys.platform -def find_loc(app_name): +def find_loc(app_name) -> str: """ Returns the location of the application from its name. None if not found. """ @@ -30,7 +31,7 @@ def find_loc(app_name): return path -def _find_loc(app_name): # pragma: no cover +def _find_loc(app_name) -> str: # pragma: no cover # Try command line version path = which(app_name) if path is not None: return path @@ -80,7 +81,7 @@ class Visualizer(metaclass=abc.ABCMeta): Error = VisualizerError - def __init__(self, filepath): + def __init__(self, filepath: str): """ Args: filepath: Name of the file to visualize @@ -99,7 +100,9 @@ def __call__(self): # pragma: no cover """ from subprocess import call if not self.is_macosx_app: - cprint("Executing: %s %s %s" % (self.binpath, self.cmdarg, self.filepath), "yellow") + cprint("Executing: binpath=%s, cmdarg=%s, filepath=%s" % (self.binpath, self.cmdarg, self.filepath), "yellow") + if self.binpath is None: + raise RuntimeError("binpath is None, please make sure that executable can be found in $PATH") return call([self.binpath, self.cmdarg, self.filepath]) else: @@ -120,17 +123,17 @@ def cmdarg(self): return " " @lazy_property - def binpath(self): + def binpath(self) -> str: """Absolute path of the binary. None if app is not found""" return find_loc(self.name) @property - def is_available(self): + def is_available(self) -> bool: """True is the visualizer is available on the local machine.""" return self.binpath is not None @classmethod - def get_available(cls, ext=None): + def get_available(cls, ext=None) -> list: """ List of visualizers available on the local host. If ext is not None, only the visualizers supporting this extension are returned. @@ -140,13 +143,13 @@ def get_available(cls, ext=None): return [v for v in visus if v.support_ext(ext)] @classmethod - def support_ext(cls, ext): + def support_ext(cls, ext) -> bool: """True if visualizer supports the extension ext.""" if ext.startswith("."): ext = ext[1:] return any(e == ext for e, _ in cls.EXTS) @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str): """ Initialize a subclass of :class:`Visualizer` from filepath, the application is chosen automatically depending on the file extension. @@ -167,7 +170,7 @@ def from_file(cls, filepath): return avail_visus[0](filepath) @classmethod - def supported_extensions(cls): + def supported_extensions(cls) -> list: """List of file extensions supported by the visualizer.""" return [e for (e, args) in cls.EXTS] diff --git a/abipy/iotools/xsf.py b/abipy/iotools/xsf.py index 168ead39c..c90579157 100644 --- a/abipy/iotools/xsf.py +++ b/abipy/iotools/xsf.py @@ -1,20 +1,22 @@ # coding: utf-8 """Tools for writing Xcrysden files.""" +from __future__ import annotations import numpy as np -from pymatgen.core.units import Energy, EnergyArray #, ArrayWithUnit +from pymatgen.core.units import Energy, EnergyArray from abipy.tools.numtools import transpose_last3dims, add_periodic_replicas __all__ = [ + "xsf_write_structure_and_data_to_path", "xsf_write_structure", "xsf_write_data", "bxsf_write", ] -def xsf_write_structure(file, structures): +def xsf_write_structure(file, structures: list) -> None: """ Write the crystalline structure in the Xcrysden format (XSF) @@ -64,16 +66,41 @@ def xsf_write_structure(file, structures): fwrite(' %20.14f %20.14f %20.14f\n' % tuple(cart_forces[a])) -def xsf_write_data(file, structure, data, add_replicas=True, cplx_mode=None): +def xsf_write_structure_and_data_to_path(filepath, structure, datar, **kwargs) -> None: + """Simplified interface to write structure and data to filepath in XSF format.""" + with open(filepath, mode="wt") as fh: + xsf_write_structure(fh, structure) + xsf_write_data(fh, structure, datar, **kwargs) + + +#def xsf_write_structure_and_multidata(filepath, structure, multi_datar, tags=None, **kwargs) -> None: +# """ +# """ +# multi_datar = np.array(multi_datar, ndmin=4) +# if tags is not None: +# if len(tags) != len(multi_datar): +# raise ValueError(f"tags and multi_datar should have same length but {len(tags)} != {len(multi_datar)}") +# +# with open(filepath, mode="wt") as fh: +# xsf_write_structure(fh, structure) +# for i, datar in enumerate(multi_datar): +# tag = tags[i] if tags is not None else f"data_{i}" +# xsf_write_data(fh, structure, multi_datar[i], tag=tag, **kwargs) + + + +def xsf_write_data(file, structure, data, add_replicas=True, cplx_mode=None, + idname="data", tag="_UNKNOWN") -> None: + #idname="data", tag="_grid") -> None: """ Write data in the Xcrysden format (XSF) Args: file: file-like object. structure: :class:`Structure` object. - data: array-like object in C-order, i.e data[nx,ny,nz] + data: array-like object in C-order, i.e data[nx, ny, nz] or data[ngrids, nx, ny, nz] add_replicas: If True, data is padded with redundant data points. - in order to have a periodic 3D array of shape=(nx+1,ny+1,nz+1). + in order to have a periodic 3D array of shape: (nx+1, ny+1, nz+1). cplx_mode: string defining the data to print when data is a complex array. Possible choices are (case-insensitive): @@ -115,14 +142,17 @@ def xsf_write_data(file, structure, data, add_replicas=True, cplx_mode=None): fdata = transpose_last3dims(data) fgrid = fdata.shape[-3:] - cell = structure.lattice_vectors(space="r") + cell = structure.lattice.matrix origin = np.zeros(3) fwrite('BEGIN_BLOCK_DATAGRID_3D\n') - fwrite(' data\n') + fwrite(f' {idname}\n') for dg in range(ngrids): - fwrite(" BEGIN_DATAGRID_3Dgrid#" + str(dg+1) + "\n") + if ngrids != 1: + fwrite(f" BEGIN_DATAGRID_3D{tag}#{dg+1}" + "\n") + else: + fwrite(f" BEGIN_DATAGRID_3D{tag}" + "\n") fwrite('%d %d %d\n' % shape[-3:]) fwrite('%f %f %f\n' % tuple(origin)) @@ -140,7 +170,7 @@ def xsf_write_data(file, structure, data, add_replicas=True, cplx_mode=None): fwrite('END_BLOCK_DATAGRID_3D\n') -def bxsf_write(file, structure, nsppol, nband, ndivs, ucdata_sbk, fermie, unit="eV"): +def bxsf_write(file, structure, nsppol, nband, ngkpt, ucdata_sbk, fermie, unit="eV") -> None: """ Write band structure data in the Xcrysden format (XSF) @@ -149,9 +179,9 @@ def bxsf_write(file, structure, nsppol, nband, ndivs, ucdata_sbk, fermie, unit=" structure: :class:`Structure` object. nsppol: Number of spins. nband: Number of bands. - ndivs: Number of divisions of the full k-mesh. - ucdata_sbk: Array [nsppol, nband, ndivs[0], ndivs[1], mpdvis[2]] with energies - in the unic cell mesh in unit `unit`. + ngkpt: Number of divisions of the full k-mesh. + ucdata_sbk: Array [nsppol, nband, ngkpt[0], ngkpt[1], ngkpt[2]] with energies + in the unit cell mesh in unit `unit`. fermie: Fermi energy. unit=Unit of input `ucdata_sbk` and `fermie`. Energies will be converted to Hartree before writing. @@ -171,11 +201,11 @@ def bxsf_write(file, structure, nsppol, nband, ndivs, ucdata_sbk, fermie, unit=" ucdata_sbk = EnergyArray(ucdata_sbk, unit).to("Ha") fermie = Energy(fermie, unit).to("Ha") - ucdata_sbk = np.reshape(ucdata_sbk, (nsppol, nband, np.product(ndivs))) + ucdata_sbk = np.reshape(ucdata_sbk, (nsppol, nband, np.prod(ngkpt))) close_it = False if not hasattr(file, "write"): - file = open(file, mode="w") + file = open(str(file), mode="wt") close_it = True fw = file.write @@ -193,11 +223,11 @@ def bxsf_write(file, structure, nsppol, nband, ndivs, ucdata_sbk, fermie, unit=" fw(' BEGIN_BANDGRID_3D\n') fw(str(nsppol * nband) + "\n") # Number of bands written. - fw("%d %d %d\n" % tuple(ndivs)) # Number of division in the full BZ mesh. - fw("0 0 0\n") # Unshifted meshes are not supported. + fw("%d %d %d\n" % tuple(ngkpt)) # Number of division in the full BZ mesh. + fw("0 0 0\n") # NB: Unshifted meshes are not supported. # Reciprocal lattice vectors in Ang^{-1} - gcell = structure.lattice_vectors("g") + gcell = structure.lattice.reciprocal_lattice.matrix for i in range(3): fw('%f %f %f\n' % tuple(gcell[i])) diff --git a/abipy/gui/__init__.py b/abipy/lumi/__init__.py similarity index 100% rename from abipy/gui/__init__.py rename to abipy/lumi/__init__.py diff --git a/abipy/lumi/deltaSCF.py b/abipy/lumi/deltaSCF.py new file mode 100644 index 000000000..602459c02 --- /dev/null +++ b/abipy/lumi/deltaSCF.py @@ -0,0 +1,785 @@ +from __future__ import annotations + +import numpy as np +import json +import os, shutil +import pandas as pd + +from abipy.core.structure import Structure +from abipy.abilab import abiopen +import math +from mpmath import coth +try: + from scipy.integrate import simpson as simps +except ImportError: + from scipy.integrate import simps +from abipy.tools.plotting import get_ax_fig_plt, add_fig_kwargs,get_axarray_fig_plt +import abipy.core.abinit_units as abu + +class DeltaSCF(): + """ + Object to post-process the results from a LumiWork, following a one-effective phonon mode model (1D-CCM). + For equations, notations and formalism, please refer to : + https://doi.org/10.1103/PhysRevB.96.125132 + https://doi.org/10.1002/adom.202100649 + """ + + @classmethod + def from_json_file(cls,json_path): + """ Create the object from a json file containing the path to netcdf files, produced at the end of a LumiWork""" + + with open(json_path) as f: + + data = json.load(f) + + if 'meta' in data: + meta = data['meta'] + else: + meta=None + + gs_relax_path=data["gs_relax_filepath"] + ex_relax_path=data["ex_relax_filepath"] + + with abiopen(gs_relax_path) as gsr_file: + structure_gs=gsr_file.structure + with abiopen(ex_relax_path) as gsr_file: + structure_ex=gsr_file.structure + + include_four_points='Ag_gsr_filepath' in data # True if the json file contains the four points paths + + if include_four_points: + Ag_path=data['Ag_gsr_filepath'] + Agstar_path=data['Agstar_gsr_filepath'] + Aestar_path=data['Aestar_gsr_filepath'] + Ae_path = data['Ae_gsr_filepath'] + + with abiopen(Ag_path) as gsr_file: + Ag_energy = gsr_file.energy + with abiopen(Agstar_path) as gsr_file: + Agstar_energy = gsr_file.energy + forces_ex=gsr_file.cart_forces + with abiopen(Aestar_path) as gsr_file: + Aestar_energy = gsr_file.energy + with abiopen(Ae_path) as gsr_file: + Ae_energy = gsr_file.energy + forces_gs=gsr_file.cart_forces + + + else: + with abiopen(gs_relax_path) as gsr_file: + Ag_energy = gsr_file.energy + with abiopen(ex_relax_path) as gsr_file: + Agstar_energy = gsr_file.energy + + Ae_energy=None + Agstar_energy=None + + + return cls(structuregs=structure_gs, + structureex=structure_ex, + forces_gs=forces_gs, + forces_ex=forces_ex, + ag_energy=Ag_energy, + ag_star_energy=Agstar_energy, + ae_star_energy=Aestar_energy, + ae_energy=Ae_energy, + meta=meta) + + @classmethod + def from_four_points_file(cls,filepaths): + """ + Create the object from a list of netcdf files in the order (Ag,Agstar,Aestar,Ae). + Ag: Ground state at relaxed ground state atomic positions. + Agstar: Excited state at relaxed ground state atomic positions. + Aestar: Excited state at relaxed excited state atomic positions. + Ae: Ground state at relaxed excited state atomic positions. + + Args: + filepaths: list of netcdf files in the order [Ag,Agstar,Aestar,Ae] + + Returns: + A DeltaSCF object + + """ + energies=[] + structures=[] + forces=[] + for path in filepaths: + with abiopen(path) as gsr_file: + energies.append(gsr_file.energy) + structures.append(gsr_file.structure) + forces.append(gsr_file.cart_forces) + return cls(structuregs=structures[0], + structureex=structures[2], + forces_gs=forces[3], + forces_ex=forces[1], + ag_energy=energies[0], + ag_star_energy=energies[1], + ae_star_energy=energies[2], + ae_energy=energies[3],) + + @classmethod + def from_relax_file(cls,filepaths): + """ Create the object from the two relaxation files (relax_gs, relax_ex). + Give only acccess to structural relaxation induced by the transition + and to E_zpl + """ + energies=[] + structures=[] + forces=[] + for path in filepaths: + with abiopen(path) as gsr_file: + energies.append(gsr_file.energy) + structures.append(gsr_file.structure) + forces.append(gsr_file.cart_forces) + + return cls(structuregs=structures[0], + structureex=structures[1], + forces_gs=None, + forces_ex=None, + ag_energy=energies[0], + ag_star_energy=None, + ae_star_energy=energies[1], + ae_energy=None,) + + + def __init__(self,structuregs,structureex,forces_gs,forces_ex, + ag_energy,ag_star_energy,ae_star_energy,ae_energy,meta=None): + """ + :param structuregs: relaxed ground state structure + :param structureex: relaxed excited state structure + :param forces_gs: forces in the gs + :param forces_ex: forces in the ex + :param ag_energy + :param ag_star_energy + :param ae_star_energy + :param ae_energy + :param meta : dict. of meta data of the lumiwork (can be the supercell size, ecut,...) + """ + + self.structuregs=structuregs + self.structureex=structureex + self.forces_gs=forces_gs + self.forces_ex=forces_ex + self.ag_energy=ag_energy + self.ag_star_energy=ag_star_energy + self.ae_star_energy=ae_star_energy + self.ae_energy=ae_energy + self.meta=meta + + + def structure_gs(self): + """ Ground state relaxed structure """ + + return self.structuregs + + def structure_ex(self): + """ Excited state relaxed structure """ + + return self.structureex + + def natom(self): + """Number of atoms in the structure.""" + return len(self.structuregs) + + def diff_pos(self): + """ + Difference between gs and ex structures in Angström, (n_atoms,3) shape + """ + return (self.structureex.cart_coords - self.structuregs.cart_coords) + + def diff_pos_mass_weighted(self): + """ + Difference between gs and ex structures in Angström, weighted by the squared atomic masses (n_atoms,3) shape + """ + return np.einsum('i,ij->ij',np.array(self.amu_list()),self.diff_pos()) + + def defect_index(self,defect_symbol): + """ + Defect index in the structure from its symbol, ex defect_index("Eu"). + """ + index=self.structuregs.get_symbol2indices()[defect_symbol][0] + return index + + def get_dict_per_atom(self,index,defect_symbol): + """" + Dict. with relevant properties per atom. + """ + stru=self.structuregs + def_index=self.defect_index(defect_symbol=defect_symbol) + d={} + d["symbol"]=stru.species[index].name + d["mass "]=self.amu_list()[index] + d[r"$\Delta R$"]=(sum(self.diff_pos()[index]**2))**(0.5) + d[r"$\Delta Q^2$"]=self.amu_list()[index]*sum(self.diff_pos()[index]**2) + d[r"$\Delta F$"]=(sum(self.forces_gs[index]**2))**(0.5) + d["dist. from defect"]=stru[index].distance(other=stru[def_index]) + + return d + + def get_dataframe_atoms(self,defect_symbol): + """ + Panda dataframe with relevant properties per atom. + Units : [ (mass,amu), (deltaR,Angstrom), (DeltaQ^2,amu.Angstrom^2), (DeltaF,eV/Angstrom) ] + """ + list_of_dict=[] + for index,atom in enumerate(self.structuregs): + d=self.get_dict_per_atom(index,defect_symbol) + list_of_dict.append(d) + + return pd.DataFrame(list_of_dict) + + def get_dict_per_specie(self,specie): + stru=self.structuregs + indices=stru.indices_from_symbol(specie.name) + dr_sp=[] + for index in indices: + dr_sp.append(sum(self.diff_pos()[index]**2)) + d={} + d["symbol"]=specie.name + d["mass"]=specie.atomic_mass + d[r"$\Delta R^2$"]=sum(dr_sp) + d[r"$\Delta Q^2$"]=specie.atomic_mass*sum(dr_sp) + + return d + + def get_dataframe_species(self): + """ + Panda dataframe with relevant properties per species. + """ + list_of_dict=[] + for index,specie in enumerate(self.structuregs.types_of_species): + d=self.get_dict_per_specie(specie) + list_of_dict.append(d) + + return pd.DataFrame(list_of_dict) + + + def delta_r(self): + """ + Total Delta_R (Angstrom) + """ + d_r_squared=np.sum(self.diff_pos()**2) + return(np.sqrt(d_r_squared)) + + def amu_list(self): + """ + List of masses (amu) + """ + amu_list=[] + for atom in self.structuregs.species: + amu_list.append(atom.atomic_mass) + return(amu_list) + + def delta_q(self,unit='atomic'): + """ + Total Delta_Q + + Args: + unit: amu^1/2.Angstrom if unit = 'atomic', kg^1/2.m if 'SI' + + """ + sq_Q_matrix = np.zeros((self.natom(), 3)) + for a in np.arange(self.natom()): + for i in np.arange(3): + sq_Q_matrix[a, i] = self.amu_list()[a] * self.diff_pos()[a, i] ** 2 + delta_Q = np.sqrt(np.sum(sq_Q_matrix)) + + if unit == 'SI': + return (delta_Q* 1e-10 * np.sqrt(1.66053892173E-27)) + else: + return(delta_Q) + + def effective_mass(self): + """ + Effective mass M + """ + M = self.delta_q() ** 2 / self.delta_r() ** 2 + return (M) + + def E_zpl(self): + """ + Zero-phonon line energy (eV) + """ + return (self.ae_star_energy - self.ag_energy) + + def E_em(self): + """ + Emission energy(eV) + """ + return(self.ae_star_energy-self.ae_energy) + + def E_abs(self): + """ + Absorption energy(eV) + """ + return(self.ag_star_energy-self.ag_energy) + + def E_FC_ex(self,unit='eV'): + """ + Franck condon energy in excited state (eV) + = Relaxation energy between Ag* and Ae* states + """ + e_fc=self.ag_star_energy - self.ae_star_energy + if unit == 'SI': + return 1.602176565e-19*e_fc + else: + return e_fc + + def E_FC_gs(self,unit='eV'): + """ + Franck condon energy in ground state (eV) + = Relaxation energy between Ae and Ag states + """ + e_fc=self.ae_energy - self.ag_energy + if unit == 'SI': + return 1.602176565e-19*e_fc + else: + return e_fc + + def Stoke_shift(self): + """ + Stokes shift (eV) + """ + return(self.E_FC_ex()+self.E_FC_gs()) + + def eff_freq_gs(self): + """ + Phonon effective frequency of the ground state (eV) + """ + omega_g=np.sqrt(2*self.E_FC_gs(unit='SI')/(self.delta_q(unit='SI'))**2) + return(abu.hbar_eVs*omega_g) + + def eff_freq_ex(self): + """ + Phonon effective frequency of the excited state (eV) + """ + omega_e=np.sqrt(2*self.E_FC_ex(unit='SI')/(self.delta_q(unit='SI'))**2) + return(abu.hbar_eVs*omega_e) + + def S_em(self): + """ + Total Huang-Rhys factor for emission following the 1D-CCM + """ + S = (self.E_FC_gs()) / (self.eff_freq_gs()) + return (S) + + def S_abs(self): + """ + Total Huang-Rhys factor for absorption following the 1D-CCM + """ + S = (self.E_FC_ex()) / (self.eff_freq_ex()) + return (S) + + def FWHM_1D(self,T=0): + """ + Full width at half-maximum following a semi-classical approx in the 1D-CCM + (eq.20-21 of https://doi.org/10.1103/PhysRevB.96.125132) + + Args: + T: Temperature + """ + w_0 = np.sqrt(8*np.log(2))*(self.S_em()/np.sqrt(self.S_abs()))*self.eff_freq_gs() + if T==0: + return w_0 + else : + k_b = abu.kb_eVK + w_T = w_0 * np.sqrt(coth(self.eff_freq_ex() / (2 * k_b * T))) + return w_T + + def FC_factor_approx(self,n): + """ + FC factor between initial vib. state m=0 to final vib. state n + approx of same eff frequency in gs and ex and T = 0K. + See eq. (9) of https://doi.org/10.1002/adom.202100649 + """ + return np.exp(self.S_em()) * self.S_em() ** n / math.factorial(n) + + def lineshape_1D_zero_temp(self,energy_range=[0.5,5],max_m=25,phonon_width=0.01,with_omega_cube=True,normalized='Area'): + """ + Compute the emission lineshape following the effective phonon 1D-CCM at T=0K. + See eq. (9) of https://doi.org/10.1002/adom.202100649. + + Args: + energy_range: Energy range at which the intensities are computed, ex : [0.5,5] + max_m: Maximal vibrational state m considered + phonon_width: fwhm of each phonon peak, in eV + with_omega_cube: Considered or not the omega^3 dependence of the intensity + normalized: Normalisation procedure. 'Area' if Area under the curve = 1. 'Sum' if maximum of the curve = 1. + + Returns: + E_x = Energies at which the intensities are computed + I = Intensities + """ + n_x = 10000 # + E_x = np.linspace(energy_range[0], energy_range[1], n_x) + + list_n = np.arange(0, max_m) + A = np.zeros(n_x) + sigma = phonon_width / (2.35482) + for n in list_n: + #gaussian_1D = np.zeros(n_x) + fc_factor=self.FC_factor_approx(n) + #f=np.exp(self.S_em())*self.S_em()**m[i]/math.factorial(m[i]) + arg_exp=-((self.E_zpl() - self.eff_freq_gs() * n - E_x) ** 2 / (2 * (sigma) ** 2)) + gaussian_1D = fc_factor * (1 / (sigma * np.sqrt(2 * np.pi))) * np.exp(arg_exp) + A += gaussian_1D + + if with_omega_cube==True: + A=A*E_x**3 + + if normalized=="Area": + C = 1 / (simps(A, x=E_x)) + if normalized=="Sum": + C=1/(max(A)) + + return E_x, C*A + + @add_fig_kwargs + def plot_lineshape_1D_zero_temp(self,energy_range=[0.5,5],max_m=25,phonon_width=0.01,with_omega_cube="True", + normalized='Area', ax=None, **kwargs): + """ + Plot the the emission lineshape following the effective phonon 1D-CCM at T=0K. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + energy_range: Energy range at which the intensities are computed, ex : [0.5,5] + max_m: Maximal vibrational state m considered + phonon_width: fwhm of each phonon peak, in eV + with_omega_cube: Considered or not the omega^3 dependence of the intensity + normlized: Normalisation procedure. 'Area' if Area under the curve = 1. 'Sum' if maximum of the curve = 1. + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax=ax) + + x,y=self.lineshape_1D_zero_temp(energy_range,max_m,phonon_width,with_omega_cube, + normalized) + ax.plot(x,y, **kwargs) + ax.set_xlabel(r'Energy (eV)') + ax.set_ylabel(r'Intensity ') + return fig + + + def get_dict_results(self): + d=dict([ + (r'E_em',self.E_em()), + (r'E_abs' ,self.E_abs()), + (r'E_zpl',self.E_zpl()), + (r'E_fc_gs',self.E_FC_gs()), + (r'E_fc_ex',self.E_FC_ex()), + (r'Delta_S',self.Stoke_shift()), + (r'Delta_R ',self.delta_r()), + (r'Delta_Q',self.delta_q()), + (r'Eff_freq_gs',self.eff_freq_gs()), + (r'Eff_freq_ex',self.eff_freq_ex()), + (r'S_em',self.S_em()), + (r'S_abs',self.S_abs()), + ]) + return d + + def get_dataframe(self,label=None): + """ + Panda dataframe with the main results of a LumiWork : transition energies, delta Q, Huang Rhys factor,... + Units used are Angstrom, eV, amu. + DeltaSCF object should be instantiated with the four points files, not with relax files only. + """ + rows=[] + index=[] + d=self.get_dict_results() + rows.append(d) + index.append(label) + + return pd.DataFrame(rows,index=index) + + def draw_displacements_vesta(self,in_path, mass_weighted = False, + scale_vector=20,width_vector=0.3,color_vector=[255,0,0],centered=True, + factor_keep_vectors=0.1, + out_path="VESTA_FILES",out_filename="gs_ex_relaxation"): + r""" + Draw the ground state to excited state atomic relaxation on a vesta structure. + + Args: + in_path : path where the initial .vesta structure in stored, should correspond to the ground state relaxed structure. + mass_weighted : If True, weight the displacements by the atomic masses. Draw the \Delta Q in that case. + scale_vector : scaling factor of the vector modulus + width_vector : vector width + color_vector : color in rgb format + centered : center the vesta structure around [0,0,0] + factor_keep_vectors : draw only the eigenvectors with magnitude > factor_keep_vectors * max(magnitude) + out_path : path where .vesta files with vector are stored + """ + + vesta = open(in_path,'r').read() + natoms = len(self.structure_gs()) + + + if os.path.isdir(out_path): + shutil.rmtree(out_path) + os.mkdir(out_path) + else : + os.mkdir(out_path) + + path=out_path + + towrite = vesta.split('VECTR')[0] + towrite += 'VECTR\n' + + magnitudes=[] + displacements=self.diff_pos() + if mass_weighted == True: + displacements=self.diff_pos_mass_weighted() + + for iatom in range(natoms) : + magnitudes.append(np.sqrt(displacements[iatom][0]**2 + displacements[iatom][1]**2 + displacements[iatom][2]**2)) + + for iatom in range(natoms) : + if magnitudes[iatom] > factor_keep_vectors * max(np.real(magnitudes)): + towrite += '%5d' %(iatom + 1) + towrite += '%10.5f' %(displacements[iatom][0] * (scale_vector)) + towrite += '%10.5f' %(displacements[iatom][1] * (scale_vector)) + towrite += '%10.5f' %(displacements[iatom][2] * (scale_vector)) + towrite += '\n' + towrite += '%5d' %(iatom + 1) + ' 0 0 0 0\n 0 0 0 0 0\n' + + towrite += '0 0 0 0 0\n' + towrite += 'VECTT\n' + + for atom in range(natoms) : + towrite += '%5d' %(atom + 1) + towrite += f' {width_vector} {color_vector[0]} {color_vector[1]} {color_vector[2]} 0\n' + + towrite += '0 0 0 0 0\n' + towrite += 'SPLAN' + towrite += vesta.split('SPLAN')[1] + towrite += 'VECTS 1.00000' + + + filename = path + '/'+out_filename + filename += '.vesta' + + open(filename, 'w').write(towrite) + + if centered==True: + + with open(filename, 'r') as file: + file_contents = file.read() + search_word="BOUND\n 0 1 0 1 0 1\n 0 0 0 0 0" + replace_word="BOUND\n -0.5 0.5 -0.5 0.5 -0.5 0.5\n 0 0 0 0 0" + + updated_contents = file_contents.replace(search_word, replace_word) + + with open(filename, 'w') as file: + file.write(updated_contents) + + print(f"Vesta files created and stored in : \n {os.getcwd()}/{out_path}") + + @add_fig_kwargs + def displacements_visu(self, a_g=10, **kwargs): + """ + Make a 3d visualisation of the displacements induced by the electronic transition = + Difference between ground state and excited state atomic positions. + The colors of the atoms are based on Delta_Q_^2 per atom. + + Args: + a_g : coefficient that multiplies the displacement magnitudes + + Returns: |matplotlib-Figure| + """ + pos_gs=self.structuregs.cart_coords + pos_ex=self.structureex.cart_coords + # make the grid + x = pos_ex[:, 0] + y = pos_ex[:, 1] + z = pos_ex[:, 2] + + # Make the direction data for the arrows + u =(pos_ex[:, 0]-pos_gs[:, 0]) + v =(pos_ex[:, 1]-pos_gs[:, 1]) + w =(pos_ex[:, 2]-pos_gs[:, 2]) + + M = self.amu_list()*(u**2+v**2+w**2) + + ax, fig, plt = get_ax_fig_plt(ax=None) + ax = fig.add_subplot(111, projection='3d') + + ax.quiver(x, y, z,u*a_g,v*a_g,w*a_g, color='k',linewidths=1,**kwargs) + sc = ax.scatter(x, y, z, c=M, marker='o', s=60, cmap="jet",**kwargs) + + clb = plt.colorbar(sc) + clb.set_label(r'$\Delta Q^2$ per atom') + + return fig + + @add_fig_kwargs + def plot_delta_R_distance(self, defect_symbol,colors=["k","r","g","b","c","m"],ax=None, **kwargs): + r""" + Plot \DeltaR vs distance from defect for each atom, colored by species. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + defect_symbol: defect_symbol, defect location will be the reference + colors: list of colors for the species + + Returns: |matplotlib-Figure| + """ + + symbols=self.structuregs.symbol_set + dfs = [] + xs = [] + ys = [] + df=self.get_dataframe_atoms(defect_symbol=defect_symbol) + + for i, symbol in enumerate(symbols): + dfs.append(df.loc[df['symbol'] == symbol]) + xs.append(dfs[i]["dist. from defect"]) + ys.append(dfs[i]["$\\Delta R$"]) + + ax, fig, plt = get_ax_fig_plt(ax=ax) + for i, symbol in enumerate(symbols): + ax.stem(xs[i], ys[i], label=symbol, linefmt=colors[i], markerfmt="o" + colors[i],**kwargs) + ax.set_xlabel(r'Distance from defect ($\AA$)') + ax.set_ylabel(r'$\Delta R $ ($\AA$)') + ax.legend() + + return fig + + @add_fig_kwargs + def plot_delta_F_distance(self, defect_symbol,colors=["k","r","g","b","c","m"],ax=None, **kwargs): + r""" + Plot \DeltaF vs distance from defect for each atom, colored by species. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + defect_symbol: defect_symbol, defect location will be the reference + colors: list of colors for the species + + Returns: |matplotlib-Figure| + """ + + symbols=self.structuregs.symbol_set + dfs = [] + xs = [] + ys = [] + df=self.get_dataframe_atoms(defect_symbol=defect_symbol) + + for i, symbol in enumerate(symbols): + dfs.append(df.loc[df['symbol'] == symbol]) + xs.append(dfs[i]["dist. from defect"]) + ys.append(dfs[i]["$\\Delta F$"]) + + ax, fig, plt = get_ax_fig_plt(ax=ax) + for i, symbol in enumerate(symbols): + ax.stem(xs[i], ys[i], label=symbol, linefmt=colors[i], markerfmt="o" + colors[i],**kwargs) + ax.set_xlabel(r'Distance from defect ($\AA$)') + ax.set_ylabel(r'$\Delta F$ ($eV/\AA$)') + ax.legend() + + return fig + + @add_fig_kwargs + def plot_four_BandStructures(self, nscf_files, ax_mat=None, ylims=(-5, 5), **kwargs): + """ + plot the 4 band structures. + nscf_files is the list of Ag, Agstar, Aestar, Ae nscf gsr file paths. + """ + ebands = [] + for file in nscf_files: + with abiopen(file) as f: + ebands.append(f.ebands) + + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=1, ncols=4, + sharex=True, sharey=True, squeeze=False) + + titles = [r'$A_g$', r'$A_g^*$', r'$A_e^*$', r'$A_e$'] + e0 = ebands[0].fermie + + for i,eband in enumerate(ebands): + eband.plot_ax(ax=ax_mat[0,i],spin=0, e0=e0,color="k",**kwargs) + eband.plot_ax(ax=ax_mat[0,i],spin=1, e0=e0,color="r",**kwargs) + eband.decorate_ax(ax=ax_mat[0,i],title=titles[i]) + + ax_mat[0,0].set_ylim(ylims) + ax_mat[0,1].set_ylabel("") + ax_mat[0,2].set_ylabel("") + ax_mat[0,3].set_ylabel("") + + return fig + + @add_fig_kwargs + def draw_displaced_parabolas(self,ax=None,scale_eff_freq=4,font_size=8, **kwargs): + """ + Draw the four points diagram with relevant transition energies. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + scale_eff_freq: scaling factor to adjust the parabolas curvatures. + font_size: font size for the annotations + + Returns: |matplotlib-Figure| + """ + ax, fig, plt = get_ax_fig_plt(ax=ax) + + delta_Q=self.delta_q() + E_zpl=self.E_zpl() + omega_gs_sq=scale_eff_freq*2*self.E_FC_gs()/self.delta_q()**2 + omega_ex_sq=scale_eff_freq*2*self.E_FC_ex()/self.delta_q()**2 + + new_FC_gs=omega_gs_sq*delta_Q**2*0.5 + new_FC_ex=omega_ex_sq*delta_Q**2*0.5 + + Qs=np.linspace(-delta_Q*0.2,delta_Q*1.5,1000) + + E_gs=0.5*omega_gs_sq.real*(Qs)**2+0 # ref at (0,0) + E_ex=0.5*omega_ex_sq.real*(Qs-delta_Q)**2+ self.E_zpl()# min at (delta_Q,ae_energy) + + # parabolas + ax.plot(Qs,E_gs,'k',zorder=1) + ax.plot(Qs,E_ex,'k',zorder=1) + + # points + xs=np.array([0,0,delta_Q,delta_Q]) + ys=np.array([0,E_zpl+new_FC_ex,E_zpl,new_FC_gs]) + + ax.scatter(xs,ys,s=50,color='k',zorder=2) + + # arrows + ax.annotate("", xy=(0, E_zpl+0.95*new_FC_ex), xytext=(0, 0), + arrowprops=dict(arrowstyle="->",color="b",lw=1)) + ax.annotate(r' $E_{abs}$='+format(self.E_abs(),".2f")+' eV ', xy=(0,(E_zpl+new_FC_ex)/2),ha='left',fontsize=font_size) + + ax.annotate("", xy=(delta_Q, new_FC_gs*1.05), xytext=(delta_Q, E_zpl), + arrowprops=dict(arrowstyle="->",color="r",lw=1)) + ax.annotate(r' $E_{em}$='+format(self.E_em(),".2f")+' eV ', xy=(delta_Q,E_zpl-(E_zpl-new_FC_gs)/2),ha='left',fontsize=font_size) + + ax.annotate("", xy=(delta_Q, E_zpl), xytext=(delta_Q, E_zpl+new_FC_ex*1.5), + arrowprops=dict(arrowstyle="-",color="k",lw=0.3,ls='--')) + ax.annotate(r' $E_{FC,e}$='+format(self.E_FC_ex(),".2f")+' eV ', xy=(delta_Q,E_zpl+new_FC_ex/2),ha='left',fontsize=font_size) + + ax.annotate("", xy=(delta_Q, new_FC_gs), xytext=(delta_Q, -new_FC_gs*0.5), + arrowprops=dict(arrowstyle="-",color="k",lw=0.3,ls='--')) + ax.annotate(r' $E_{FC,g}$='+format(self.E_FC_gs(),".2f")+' eV ', xy=(delta_Q,new_FC_gs/2),ha='left',fontsize=font_size) + + ax.annotate("", xy=(0, 0), xytext=(delta_Q*1.1, 0), + arrowprops=dict(arrowstyle="-",color="k",lw=0.3,ls='--')) + ax.annotate("", xy=(0, E_zpl+new_FC_ex), xytext=(delta_Q*1.1, E_zpl+new_FC_ex), + arrowprops=dict(arrowstyle="-",color="k",lw=0.3,ls='--')) + + ax.annotate("", xy=(0, -new_FC_gs*0.2), xytext=(delta_Q, -new_FC_gs*0.2), + arrowprops=dict(arrowstyle="<->",color="k",lw=0.6)) + ax.annotate(r'$\Delta Q$ ='+format(self.delta_q(),".2f"), xy=(delta_Q/2, -new_FC_gs*0.4),ha='center',fontsize=font_size) + + ax.set_ylim(-new_FC_gs*1.5,E_zpl+2*new_FC_ex) + ax.set_xlim(-0.5*delta_Q,2*delta_Q) + + ax.annotate("", xy=(-0.4*delta_Q, -new_FC_gs), xytext=(-0.4*delta_Q, E_zpl+2*new_FC_ex), + arrowprops=dict(arrowstyle="<-",color="k",lw=1.5)) + ax.text(x=-0.45*delta_Q,y=(E_zpl+new_FC_ex)/2, s='Energy (eV)',fontsize=10,rotation=90,ha='center') + + ax.annotate("", xy=(-0.5*delta_Q, -new_FC_gs*0.6), xytext=(+1.4*delta_Q, -new_FC_gs*0.6), + arrowprops=dict(arrowstyle="<-",color="k",lw=1.5)) + ax.text(x=0.7*delta_Q,y=-new_FC_gs, s='Configuration coordinate Q',fontsize=10,ha='center') + + ax.axis('off') + + return fig diff --git a/abipy/lumi/lineshape.py b/abipy/lumi/lineshape.py new file mode 100644 index 000000000..e62584e41 --- /dev/null +++ b/abipy/lumi/lineshape.py @@ -0,0 +1,445 @@ +import numpy as np +import abipy.core.abinit_units as abu + +from numpy import fft +from scipy import signal +try: + from scipy.integrate import simpson as simps +except ImportError: + from scipy.integrate import simps + +from pymatgen.io.phonopy import get_pmg_structure +from abipy.tools.plotting import get_ax_fig_plt,add_fig_kwargs +from abipy.embedding.utils_ifc import clean_structure + +class Lineshape(): + """ + + Object representing a luminescent lineshape, following a multi-phonon mode model (multiD-CCM). + For 1D-CCM, use plot_lineshape_1D_zero_temp() function of the abipy/lumi/deltaSCF module. + + For equations, notations and formalism, please refer to : + https://doi.org/10.1103/PhysRevB.96.125132 + https://doi.org/10.1002/adom.202100649 + https://pubs.acs.org/doi/full/10.1021/acs.chemmater.3c00537 + + In the 1D-CCM, the vibronic peaks are the ones from a fictious phonon mode that connects + the atomic relaxation between the ground state and excited state. + Within this model, the global shape (fwhm) is well represented if the total Huang-Rhys + factor is large enough (gaussian shaped spectrum). However, if vibronic + peaks are present in the experimental spectrum, this model is not able to correctly + reproduce them as it assumes a fictious phonon mode. + + In the multiD-CCM, the atomic relaxation is projected along the phonon eigenvectors of the system, + allowing a phonon-projected decomposition of the relaxation. + Better agreement with experimental vibronic peaks is expected. + """ + + @classmethod + def from_phonopy_phonons(cls,E_zpl,phonopy_ph,dSCF_structure, + use_forces=True,dSCF_displacements=None,dSCF_forces=None,coords_defect_dSCF=None,tol=0.3): + r""" + Different levels of approximations for the phonons and force/displacements: + See discussion in the supplementary informations of + https://pubs.acs.org/doi/full/10.1021/acs.chemmater.3c00537, section (1). + + - size_supercell deltaSCF = size_supercell phonons (phonons of the bulk structure or phonons of defect structure). + Use of the forces or the displacemements is allowed. + + - size_supercell dSCF < size_bulk_supercell phonons (bulk) + Use of the forces only. + + - size_supercell dSCF < size__defect_supercell phonons (embedding) + Use of the forces only + + The code first extracts the eigenmodes of the phonopy object. + Then, it tries performs a structure matching between the phonopy + structure and the dSCF structure (critical part) in order to put the displacements/forces on the right atoms. + + Args: + E_zpl: Zero-phonon line energy in eV + phonopy_ph: Phonopy object containing eigenfrequencies and eigenvectors + dSCF_structure: Delta_SCF structure + dSCF_displacements: Dispalcements \Delta R induced by the electronic transition + dSCF_forces: Dispalcements \Delta F induced by the electronic transition + coords_defect_dSCF: Main coordinates of the defect in defect structure, if defect complex, can be set to the + center of mass of the complex + tol: tolerance in Angstrom applied for the matching between the dSCF structure and phonon structure + + Returns: A lineshape object + """ + + ph_modes = phonopy_ph.get_frequencies_with_eigenvectors(q=[0, 0, 0]) + ph_freq_phonopy, ph_vec_phonopy = ph_modes + + freqs = ph_freq_phonopy * (1/ abu.eV_to_THz) # THz to eV + vecs = ph_vec_phonopy.transpose() # + + dSCF_structure=clean_structure(dSCF_structure,coords_defect_dSCF) + + phonon_supercell=get_pmg_structure(phonopy_ph.supercell) + phonon_supercell=clean_structure(phonon_supercell,coords_defect_dSCF) + + if use_forces==False: + forces=None + displacements=get_displacements_on_phonon_supercell(dSCF_supercell=dSCF_structure, + phonon_supercell=phonon_supercell, + displacements_dSCF=dSCF_displacements, + tol=tol) + + if use_forces==True: + displacements=None + forces=get_forces_on_phonon_supercell(dSCF_supercell=dSCF_structure, + phonon_supercell=phonon_supercell, + forces_dSCF=dSCF_forces, + tol=tol) + + return cls(E_zpl=E_zpl, + ph_eigvec=vecs, + ph_eigfreq=freqs, + structure=phonon_supercell, + use_forces=use_forces, + forces=forces, + displacements=displacements) + + + def __init__(self, E_zpl, ph_eigvec, ph_eigfreq, structure, + forces,displacements,use_forces): + """ + + Args: + E_zpl: Zero-phonon line energy in eV + ph_eigvec: phonon eigenvectors, shape : (3 * N_atoms, 3 * N_atoms) + ph_eigfreq: phonon eigenfrequencies, shape : (3 * N_atoms), in eV + structure: Structure object + forces : Forces acting on the atoms in the ground state, with atomic positions of the relaxed excited state, in eV/Ang + displacements : Atomic relaxation induced by the electronic transition, in Ang + use_forces : True in order to use the forces, False to use the displacements + """ + self.E_zpl = E_zpl + self.ph_eigvec = ph_eigvec + self.ph_eigfreq = ph_eigfreq + self.structure = structure + self.use_forces=use_forces + self.forces = forces + self.displacements = displacements + + def n_modes(self): + """ + Number of phonon modes + """ + return len(self.ph_eigfreq) + + def mass_list(self): + """ + List of masses of the atoms in the structure, in amu unit + """ + # + amu_list = np.zeros(len(self.structure)) + for i, atom in enumerate(self.structure.species): + amu_list[i] = atom.atomic_mass + return (amu_list) + + def Delta_Q_nu(self): + """ + List of Delta_Q_nu of the atoms in the structure, in SI unit + """ + Q_nu = np.zeros(self.n_modes()) + + masses = np.repeat(self.mass_list(), 3) * 1.66053892173E-27 # amu to kg + ph_eigvector = self.ph_eigvec + ph_eigfreq= self.ph_eigfreq * (abu.eV_s) # eV to rad/s + + if self.use_forces==True: + delta_forces=self.forces.flatten() * ((abu.eV_Ha)*(abu.Ha_J)/(1e-10)) # eV/Angstrom to Newtons (Joules/meter) + for i in range(self.n_modes()): + if self.ph_eigfreq[i] < 1e-5 :# discard phonon freq with too low freq (avoid division by nearly 0) + Q_nu[i] = 0 + else: + Q_nu[i] = (1/ph_eigfreq[i]**2) * np.sum( delta_forces/np.sqrt(masses) * np.real(ph_eigvector[i]) ) + # equation (7) of Alkauskas, A. (2014) New Journal of Physics, 16(7), 073026. + else: + displacements = self.displacements.flatten() * (1e-10) # in meters + for i in range(self.n_modes()): + Q_nu[i] = np.sum(np.sqrt(masses) * displacements * np.real(ph_eigvector[i])) + # equation (6) of Alkauskas, A. (2014) New Journal of Physics, 16(7), 073026.` + + Q_nu[0:3]=0 # acoustic modes are set to 0 + return Q_nu + + + def S_nu(self): + """ + Partial Huang-Rhys factors + """ + omega = (abu.eV_s) * self.ph_eigfreq # eV to [rad/s] + Delta_Q = self.Delta_Q_nu() + hbar = abu.hbar_eVs*((abu.eV_Ha)*(abu.Ha_J)) # hbar in SI + S_nu = omega * Delta_Q ** 2 / (2 * hbar) + return (S_nu) + + def S_tot(self): + """ + Total Huang-Rhys factor = sum of the S_nu. + """ + return (np.sum(self.S_nu())) + + def Delta_Q(self): + """ + Total Delta_Q + """ + return (np.sqrt(np.sum(self.Delta_Q_nu() ** 2))) + + def p_nu(self): + """ + Contribution of each mode, eq. (11) of https://doi.org/10.1002/adom.202100649 + """ + return (self.Delta_Q_nu() / self.Delta_Q()) ** 2 + + def eff_freq_multiD(self): + """ + Effective coupling frequency, eq. (13) of https://doi.org/10.1002/adom.202100649 + """ + w = np.sqrt(np.sum(self.p_nu() * self.ph_eigfreq ** 2)) + return (w) + + def S_hbarOmega(self, broadening): + """ + Return (Energy,spectral decomposition S(hw)) + + Args: + broadening: fwhm of the gaussian broadening in meV + """ + n_step = 100001 + S = np.zeros(n_step) + sigma = broadening / (1000 * 2.35482) + freq_eV = self.ph_eigfreq + omega = np.linspace(0, 1.1 * max(freq_eV), n_step) + S_nu = self.S_nu() + + for k in np.arange(self.n_modes()): + S += S_nu[k] * (1 / (sigma * np.sqrt(2 * np.pi))) * np.exp(-((omega - freq_eV[k]) ** 2 / (2 * sigma ** 2))) + return (omega, S) + + #### Generating function #### + + def Bose_einstein(self, T, freq): + """ + Bose Einstein average occupation number + + Args: + T: Temperature in K + freq: frequency in eV + """ + k_b = abu.kb_eVK # in eV/K + + if T == 0: + n = 0 + else: + n = 1 / (np.exp(freq / (k_b * T)) - 1) + + return n + + def G_t(self, T, S_nu, omega_nu): + """ + Generation function. + Eq. (3) of https://pubs.acs.org/doi/full/10.1021/acs.chemmater.3c00537 + + Args: + T: Temperature in K + S_nu: Parial Huang-Rhys factors + omega_nu: phonon frequencies + """ + n_step = 10001 + t = np.linspace(-1e-11, +1e-11, n_step) # time in the fourier domain + + freq = omega_nu + freq_SI = freq * (abu.eV_s) # in SI rad/sec + + S=np.zeros(n_step, dtype=complex) + C_plus=np.zeros(n_step, dtype=complex) + C_minus=np.zeros(n_step, dtype=complex) + + for i in range(len(S_nu)): + S += S_nu[i] * np.exp(-1j * freq_SI[i] * t) + C_plus += self.Bose_einstein(T, freq[i]) * S_nu[i] * np.exp(+1j * freq_SI[i] * t) + C_minus += self.Bose_einstein(T, freq[i]) * S_nu[i] * np.exp(-1j * freq_SI[i] * t) + + index_0 = int((len(t) - 1) / 2) + C_0=2*C_plus[index_0] + S_0=S[index_0] + + G_t = np.exp(S-S_0+C_plus+C_minus-2*C_0) + + return (t, G_t) + + def A_hw(self, T, lamb=5, w=1, model='multi-D'): + """ + Lineshape function + Eq. (2) of https://pubs.acs.org/doi/full/10.1021/acs.chemmater.3c00537 + Returns (Energy in eV, Lineshape function ) + + Args: + T: Temperature in K + lamb: Lorentzian broadening applied to the vibronic peaks, in meV + w: Gaussian broadening applied to the vibronic peaks, in meV + model: 'multi-D' for full phonon decomposition, 'one-D' for 1D-CCM PL spectrum. + """ + if model == 'multi-D': + t, G_t = self.G_t(T, S_nu=self.S_nu(), omega_nu=self.ph_eigfreq) + + elif model == 'one-D': + t, G_t = self.G_t(T, S_nu=np.array([np.sum(self.S_nu())]), omega_nu=np.array([self.eff_freq_multiD()])) + + n_step = len(t) + Lambda = abu.eV_s*0.001/(np.pi*2) * lamb # meV to Hz + delta_t = t[-1] - t[0] + + fourier = fft.fft(G_t * np.exp(-Lambda * np.abs(t))) + freq = 2 * np.pi * n_step * fft.fftfreq(G_t.size) / delta_t + # freq change + freq_2 = np.zeros(n_step) + fourier_2 = np.zeros(n_step, dtype=complex) + + freq_2[0:n_step // 2] = freq[n_step // 2 + 1:] + freq_2[n_step // 2] = freq[0] + freq_2[n_step // 2 + 1:] = freq[1:n_step // 2 + 1] + + fourier_2[0:n_step // 2] = fourier[n_step // 2 + 1:] + fourier_2[n_step // 2] = fourier[0] + fourier_2[n_step // 2 + 1:] = fourier[1:n_step // 2 + 1] + + hbar_eV = abu.hbar_eVs # in eV*s + En = hbar_eV * freq_2 + E_x = En + self.E_zpl + + sigma = w / (2.35482 * 1000) + gaussian = (1 / (sigma * np.sqrt(2 * np.pi))) * np.exp(-((En) ** 2 / (2 * (sigma) ** 2))) + A_conv = signal.fftconvolve(np.abs(fourier_2), gaussian, mode='same') + + return (E_x, A_conv) + + def L_hw(self, T=0, lamb=5, w=1, model='multi-D'): + """ + Normalized Luminescence intensity (area under the curve = 1) + Eq. (1) of https://pubs.acs.org/doi/full/10.1021/acs.chemmater.3c00537 + Returns (Energy in eV, Luminescence intensity) + + Args: + T: Temperature in K + lamb: Lorentzian broadening applied to the vibronic peaks, in meV + w: Gaussian broadening applied to the vibronic peaks, in meV + model: 'multi-D' for full phonon decomposition, 'one-D' for 1D-CCM PL spectrum. + """ + + E_x, A = self.A_hw(T, lamb, w, model) + C = 1 / (simps(A * E_x ** 3, x=E_x)) + I = C * A * E_x ** 3 # intensity prop to energy CUBE + return E_x, I + + ##### Plot functions ###### + + @add_fig_kwargs + def plot_spectral_function(self,broadening=1,ax=None,with_S_nu=False,**kwargs): + """ + Plot the Huang-Rhys spectral function S_hbarOmega + + Args: + broadening: fwhm of the gaussian broadening in meV + with_S_nu: True to add stem lines associated to the individuals partial Huang-Rhys factors + """ + + + ax, fig, plt = get_ax_fig_plt(ax=ax) + S_nu=self.S_nu() + omega_nu=self.ph_eigfreq + S_x,S_y=self.S_hbarOmega(broadening=broadening) + + ax.plot(S_x,S_y,**kwargs) + ax.set_xlabel('Phonon energy (eV)') + ax.set_ylabel(r'$S(\hbar\omega)$ (1/eV)') + + if with_S_nu==True: + ax2=ax.twinx() + markerline, stemlines, baseline = ax2.stem(omega_nu,S_nu,markerfmt='o',basefmt="k") + plt.setp(markerline,'color',color) + plt.setp(stemlines, 'color', plt.getp(markerline, 'color')) + plt.setp(stemlines, 'linestyle', 'dotted') + ax2.set_ylabel(r'$S_{\nu}$') + + return fig + + @add_fig_kwargs + def plot_emission_spectrum(self,unit='eV',T=0,lamb=3,w=3,ax=None,**kwargs): + """ + Plot the Luminescence intensity + + Args: + unit: 'eV', 'cm-1', or 'nm' + T: Temperature in K + lamb: Lorentzian broadening applied to the vibronic peaks, in meV + w: Gaussian broadening applied to the vibronic peaks, in meV + """ + + ax, fig, plt = get_ax_fig_plt(ax=ax) + + x_eV,y_eV=self.L_hw(T=T,lamb=lamb,w=w) # in eV + + x_cm=x_eV*8065.73 + y_cm=y_eV/8065.73 + + x_nm=1239.84193/x_eV + y_nm=y_eV*(x_eV**2/1239.84193) + + + if unit=='eV': + ax.plot(x_eV,y_eV,**kwargs) + ax.set_xlabel('Photon energy (eV)') + ax.set_ylabel(r'$L(\hbar\omega)$ (1/eV)') + + + elif unit=='cm-1': + ax.plot(x_cm,y_cm,**kwargs) + ax.set_xlabel(r'Photon energy ($cm^{-1}$)') + ax.set_ylabel(r'$L(\hbar\omega)$ (1/$cm^{-1}$)') + + elif unit=='nm': + ax.plot(x_nm,y_nm,**kwargs) + ax.set_xlabel(r'Photon wavelength (nm))') + ax.set_ylabel(r'Intensity (a.u.)') + + return fig + + +def get_forces_on_phonon_supercell(dSCF_supercell,phonon_supercell,forces_dSCF,tol): + forces_in_supercell = np.zeros(shape=(len(phonon_supercell), 3)) + mapping=get_matching_dSCF_phonon_spcell(dSCF_supercell,phonon_supercell,tol) + for i in range(len(mapping)): + forces_in_supercell[mapping[i]]=forces_dSCF[i] + + return forces_in_supercell + +def get_displacements_on_phonon_supercell(dSCF_supercell,phonon_supercell,displacements_dSCF,tol): + displacements_in_supercell=np.zeros(shape=(len(phonon_supercell), 3)) + mapping=get_matching_dSCF_phonon_spcell(dSCF_supercell,phonon_supercell,tol) + for i in range(len(mapping)): + displacements_in_supercell[mapping[i]]=displacements_dSCF[i] + + return displacements_in_supercell + +def get_matching_dSCF_phonon_spcell(dSCF_spcell,phonon_spcell,tol): + dSCF_spcell_cart=dSCF_spcell.cart_coords + phonon_spcell_cart=phonon_spcell.cart_coords + # perform the matching + mapping = [] + for i, site_1 in enumerate(dSCF_spcell): # subset structure + for j, site_2 in enumerate(phonon_spcell): # superset structure + if max(abs(dSCF_spcell_cart[i] - phonon_spcell_cart[j])) < tol : + mapping.append(j) + + if len(mapping)==len(dSCF_spcell): + print("Mapping between delta SCF supercell and phonon supercell succeeded. ",len(mapping),"/",len(dSCF_spcell)) + if len(mapping)!=len(dSCF_spcell): + print("Caution... Mapping between delta SCF supercell and phonon supercell did not succeed. ",len(mapping),"/",len(dSCF_spcell)) + + return mapping diff --git a/abipy/lumi/tests/test_deltaSCF.py b/abipy/lumi/tests/test_deltaSCF.py new file mode 100644 index 000000000..fb19ee267 --- /dev/null +++ b/abipy/lumi/tests/test_deltaSCF.py @@ -0,0 +1,43 @@ +"""Tests for lumi.deltaSCF module""" +import abipy.data as abidata +from abipy.core.testing import AbipyTest +from abipy.lumi.deltaSCF import DeltaSCF + +class DeltaSCFTest(AbipyTest): + + def test_deltaSCF(self): + """Testing DeltaSCF""" + + delta_SCF=DeltaSCF.from_four_points_file([abidata.ref_file("site_1_relaxed_gs_out_GSR.nc"), + abidata.ref_file("site_1_unrelaxed_ex_out_GSR.nc"), + abidata.ref_file("site_1_relaxed_ex_out_GSR.nc"), + abidata.ref_file("site_1_unrelaxed_gs_out_GSR.nc")]) + + self.assert_equal(delta_SCF.natom(),36) + self.assert_equal(delta_SCF.defect_index('Eu'),0) + + self.assert_almost_equal(delta_SCF.delta_r(),0.182233396654827,decimal=5) + self.assert_almost_equal(delta_SCF.delta_q(),0.8974717558835328,decimal=5) + self.assert_almost_equal(delta_SCF.effective_mass(),24.254126571027456,decimal=5) + + self.assert_almost_equal(delta_SCF.E_zpl(),1.7086385000075097,decimal=5) + self.assert_almost_equal(delta_SCF.FWHM_1D(),0.19142848424536402,decimal=5) + + if self.has_matplotlib(): + assert delta_SCF.plot_lineshape_1D_zero_temp(show=False) + assert delta_SCF.plot_delta_R_distance(defect_symbol='Eu',show=False) + assert delta_SCF.plot_delta_F_distance(defect_symbol='Eu',show=False) + assert delta_SCF.displacements_visu(show=False) + assert delta_SCF.plot_lineshape_1D_zero_temp(show=False) + assert delta_SCF.draw_displaced_parabolas(show=False) + + nscf_files=[abidata.ref_file("relaxed_gs_nscf_GSR.nc"), + abidata.ref_file("unrelaxed_ex_nscf_GSR.nc"), + abidata.ref_file("relaxed_ex_nscf_GSR.nc"), + abidata.ref_file("unrelaxed_gs_nscf_GSR.nc")] + + + assert delta_SCF.plot_four_BandStructures(nscf_files,show=False) + + + diff --git a/abipy/lumi/tests/test_lineshape.py b/abipy/lumi/tests/test_lineshape.py new file mode 100644 index 000000000..2d4578915 --- /dev/null +++ b/abipy/lumi/tests/test_lineshape.py @@ -0,0 +1,90 @@ +"""Tests for lumi.lineshape module""" +import abipy.data as abidata +import phonopy + +from pymatgen.io.phonopy import get_pmg_structure +from abipy.core.testing import AbipyTest +from abipy.lumi.deltaSCF import DeltaSCF +from abipy.embedding.embedding_ifc import Embedded_phonons +from abipy.dfpt.ddb import DdbFile +from abipy.lumi.lineshape import Lineshape +from abipy.dfpt.converters import ddb_ucell_to_phonopy_supercell +from abipy.core.kpoints import kmesh_from_mpdivs + +class DeltaSCFTest(AbipyTest): + + def test_deltaSCF(self): + """Testing DeltaSCF""" + + Delta_333=DeltaSCF.from_four_points_file([abidata.ref_file("A_g_out_GSR.nc"), + abidata.ref_file("A_g_starout_GSR.nc"), + abidata.ref_file("A_e_starout_GSR.nc"), + abidata.ref_file("A_e_out_GSR.nc"),]) + + # open initial DDB file + ddb_pristine = DdbFile(abidata.ref_file("refs/embedding_ifc/SrCl2_DDB")) + + ## interpolate on a different q-meshes + qgrids=[ + [3,3,3], # test same size dSCF scell than phonon scell + [4,4,4], # test same size dSCF scell smaller phonon scell + ] + qpts_s=[kmesh_from_mpdivs(mpdivs=qgrid, shifts=[0,0,0], order="unit_cell") for qgrid in qgrids] + + ddb_pristine_s=[ddb_pristine.anaget_interpolated_ddb(qpt_list=qpts) for qpts in qpts_s] + + ## folding procedure + ph_pristine=[ddb_ucell_to_phonopy_supercell(unit_ddb=ddb_pristine,nac=False) for ddb_pristine in ddb_pristine_s] + + ph_defect = phonopy.load(supercell_filename=abidata.ref_file("refs/embedding_ifc/SrCl2_Eu_POSCAR"), + force_sets_filename=abidata.ref_file("refs/embedding_ifc/SrCl2_Eu_FORCE_SETS")) + + ######## + # We need first to create the defect structure without relax + structure_defect_wo_relax=ddb_pristine.structure.copy() + structure_defect_wo_relax.make_supercell(3) + structure_defect_wo_relax.replace(0,'Eu') + structure_defect_wo_relax.sort() + + # index of the sub. = 26 (in defect structure), this is found manually + idefect_defect_stru=26 + main_defect_coords_in_defect=structure_defect_wo_relax.cart_coords[idefect_defect_stru] + + # index of the sub. = 0 (in pristine structure), this is found manually + idefect_pristine_stru=0 + main_defect_coords_in_pristine=get_pmg_structure(ph_pristine[0].supercell).cart_coords[idefect_pristine_stru] + + + ph_emb_s=[Embedded_phonons.from_phonopy_instances( + phonopy_pristine=ph, + phonopy_defect=ph_defect, + structure_defect_wo_relax=structure_defect_wo_relax, + main_defect_coords_in_pristine=main_defect_coords_in_pristine, + main_defect_coords_in_defect=main_defect_coords_in_defect, + substitutions_list=[[idefect_pristine_stru,"Eu"]], + vacancies_list=None, + interstitial_list=None, + cut_off_mode='auto', + rc_2=0, + rc_1=100000, + verbose=0, + asr=True,) for ph in ph_pristine ] + + idefect_dSCF=0 + coords_defect_dSCF=Delta_333.structuregs.cart_coords[idefect_dSCF] + + lineshapes=[Lineshape.from_phonopy_phonons(E_zpl=Delta_333.E_zpl(), + phonopy_ph=ph, + dSCF_structure=Delta_333.structure_gs(), + use_forces=True, + dSCF_displacements=Delta_333.diff_pos(), + dSCF_forces=Delta_333.forces_gs, + coords_defect_dSCF=coords_defect_dSCF) for ph in ph_emb_s] + + + self.assert_almost_equal(lineshapes[0].S_tot(),4.697242297808644, decimal=5) + self.assert_almost_equal(lineshapes[1].S_tot(),5.030138903884942, decimal=5) + + if self.has_matplotlib(): + assert lineshapes[0].plot_emission_spectrum(show=False) + diff --git a/abipy/gui/demo/__init__ b/abipy/ml/__init__.py similarity index 100% rename from abipy/gui/demo/__init__ rename to abipy/ml/__init__.py diff --git a/abipy/ml/aseml.py b/abipy/ml/aseml.py new file mode 100644 index 000000000..907a0ae51 --- /dev/null +++ b/abipy/ml/aseml.py @@ -0,0 +1,3645 @@ +""" +Objects to perform ASE calculations with machine-learned potentials. +""" +from __future__ import annotations + +import sys +import os +import io +import time +import contextlib +import json +import dataclasses +import stat +import numpy as np +import pandas as pd +import abipy.core.abinit_units as abu +import ase + +from pathlib import Path +from inspect import isclass +from multiprocessing import Pool +from typing import Type, Any, Optional, Union +from enum import IntEnum +from tabulate import tabulate +from monty.string import marquee, list_strings +from monty.functools import lazy_property +from monty.json import MontyEncoder +from monty.collections import AttrDict +from pymatgen.core import Structure as PmgStructure +from pymatgen.io.ase import AseAtomsAdaptor +from ase import units +from ase.atoms import Atoms +from ase.io.trajectory import write_traj, Trajectory +from ase.io import read +from ase.optimize.optimize import Optimizer +from ase.calculators.calculator import Calculator +from ase.io.vasp import write_vasp_xdatcar, write_vasp +from ase.neb import NEB +from ase.md.npt import NPT +from ase.md.nptberendsen import NPTBerendsen, Inhomogeneous_NPTBerendsen +from ase.md.nvtberendsen import NVTBerendsen +from ase.md.velocitydistribution import (MaxwellBoltzmannDistribution, Stationary, ZeroRotation) +from ase.stress import voigt_6_to_full_3x3_strain +from ase.calculators.calculator import PropertyNotImplementedError +from abipy.core import Structure +from abipy.tools.iotools import workdir_with_prefix, PythonScript, yaml_safe_load_path +from abipy.tools.typing import Figure, PathLike +from abipy.tools.printing import print_dataframe +from abipy.tools.serialization import HasPickleIO, mjson_write +from abipy.tools.context_managers import Timer +from abipy.tools.parallel import get_max_nprocs # , pool_nprocs_pmode +from abipy.abio.enums import StrEnum, EnumMixin +from abipy.core.mixins import TextFile # , NotebookWriter +from abipy.tools.plotting import (set_axlims, add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_grid_legend, + set_ax_xylabels, linear_fit_ax) +from abipy.ml.tools import get_energy_step +from pymatgen.io.vasp.outputs import Vasprun + +_CELLPAR_KEYS = ["a", "b", "c", "angle(b,c)", "angle(a,c)", "angle(a,b)"] + + +ASENEB_METHODS = ['aseneb', 'eb', 'improvedtangent', 'spline', 'string'] + + +class RX_MODE(EnumMixin, StrEnum): # StrEnum added in 3.11 + """ + Relaxation mode string flags. + """ + no = "no" + ions = "ions" + cell = "cell" + + +def to_ase_atoms(structure: PmgStructure, calc=None) -> Atoms: + """Convert pymatgen structure to ASE atoms. Optionally, attach a calculator.""" + structure = Structure.as_structure(structure) + atoms = AseAtomsAdaptor.get_atoms(structure) + if calc: + atoms.calc = calc + return atoms + + +def get_atoms(obj: Any) -> Atoms: + """Return ASE Atoms from object.""" + if isinstance(obj, str): + return to_ase_atoms(Structure.from_file(obj)) + if isinstance(obj, PmgStructure): + return to_ase_atoms(obj) + if isinstance(obj, Atoms): + return obj + raise TypeError(f"Don't know how to construct Atoms object from {type(obj)}") + + +def abisanitize_atoms(atoms: Atoms, **kwargs) -> Atoms: + """ + Call abisanitize, return new Atoms instance. + """ + structure = Structure.as_structure(atoms) + new_structure = structure.abi_sanitize(**kwargs) + return to_ase_atoms(get_atoms(new_structure), calc=atoms.calc) + + +def fix_atoms(atoms: Atoms, + fix_inds: list[int] | None = None, + fix_symbols: list[str] | None = None) -> None: + """ + Fix atoms by indices and/or by symbols. + + Args: + atoms: ASE atoms + fix_inds: List of site indices to fix. None to ignore constraint. + fix_symbols: List of chemical elements to fix. None to ignore the constraint. + """ + from ase.constraints import FixAtoms + cs = []; app = cs.append + if fix_inds is not None: + app(FixAtoms(indices=fix_inds)) + if fix_symbols is not None: + fix_symbols = set(fix_symbols) + app(FixAtoms(mask=[atom.symbol in fix_symbols for atom in atoms])) + if cs: + atoms.set_constraint(constraint=cs) + + +_FMT2FNAME = { + "poscar": "POSCAR", + "abinit": "run.abi", + #"qe": "qe.in", +} + + +def write_atoms(atoms: Atoms, workdir, verbose: int, + formats=None, prefix=None, postfix=None) -> list[tuple[Path, str]]: + """ + Write atoms to file(s), return list with (Path, fmt) tuples. + + Args: + atoms: ASE atoms + workdir: Working directory. + verbose: Verbosity level. + formats: List of strings with file formats. If None all known formats are used. + prefix: String to be prepended to filenames. + prefix: String to be appended to filenames. + """ + workdir = Path(workdir) + structure = Structure.as_structure(atoms) + fmt2fname = _FMT2FNAME + if formats is not None: + fmt2fname = {k: _FMT2FNAME[k] for k in list_strings(formats)} + + outpath_fmt = [] + for fmt, fname in fmt2fname.items(): + if prefix: fname = prefix + fname + if postfix: fname = fname + postfix + outpath = workdir / fname + if verbose > 1: print(f"Writing atoms to: {outpath:} with {fmt=}") + with open(outpath, "wt") as fh: + fh.write(structure.convert(fmt=fmt)) + outpath_fmt.append((outpath, fmt)) + return outpath_fmt + + +def print_atoms(atoms: Atoms, title=None, cart_forces=None, stream=sys.stdout) -> None: + """ + Print atoms object to stream. + + Args: + atoms: ASE atoms. + title: Optional string with the title. + cart_forces: np.array with cart_forces to print. + stream: Output stream + """ + def pf(*args): + print(*args, file=stream) + + scaled_positions = atoms.get_scaled_positions() + if title is not None: + pf(title) + if cart_forces is None: + pf("Frac coords:") + else: + pf("Frac coords and cart forces:") + + for ia, (atom, frac_coords) in enumerate(zip(atoms, scaled_positions)): + if cart_forces is None: + pf("\t", frac_coords) + else: + pf("\t", frac_coords, cart_forces[ia]) + + +def diff_two_structures(label1, structure1, label2, structure2, fmt, file=sys.stdout): + """ + Diff two structures using format `fmt`and print results to `file`. + """ + lines1 = Structure.as_structure(structure1).convert(fmt=fmt).splitlines() + lines2 = Structure.as_structure(structure2).convert(fmt=fmt).splitlines() + pad = max(max(len(l) for l in lines1), len(label1), len(label2)) + print(label1.ljust(pad), " | ", label2, file=file) + for l1, l2 in zip(lines1, lines2): + print(l1.ljust(pad), " | ", l2, file=file) + + +class AseTrajectoryPlotter: + """ + Plot an ASE trajectory with matplotlib. + """ + def __init__(self, traj: Trajectory): + self.traj = traj + self.natom = len(traj[0]) + self.traj_size = len(traj) + + @classmethod + def from_file(cls, filepath: PathLike) -> AseTrajectoryPlotter: + """Initialize an instance from file filepath""" + return cls(read(filepath, index=":")) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level verbose.""" + lines = [f"ASE trajectory with {len(self.traj)} configuration(s)."] + app = lines.append + if len(self.traj) == 1: + first = AseResults.from_atoms(self.traj[0]) + app(first.to_string(verbose=verbose)) + else: + first, last = AseResults.from_atoms(self.traj[0]), AseResults.from_atoms(self.traj[-1]) + app("First configuration:") + app(first.to_string(verbose=verbose)) + app("Last configuration:") + app(last.to_string(verbose=verbose)) + + return "\n".join(lines) + + @add_fig_kwargs + def plot(self, fontsize=8, xlims=None, **kwargs) -> Figure: + """ + Plot energies, force stats, and pressure as a function of the trajectory index. + """ + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=3, ncols=1, + sharex=True, sharey=False, squeeze=True) + + # Plot total energy in eV. + energies = [float(atoms.get_potential_energy()) for atoms in self.traj] + ax = ax_list[0] + marker = "o" + ax.plot(energies, marker=marker) + ax.set_ylabel('Energy (eV)') + + # Plot Force stats. + forces_traj = np.reshape([atoms.get_forces() for atoms in self.traj], (self.traj_size, self.natom, 3)) + fmin_steps, fmax_steps, fmean_steps, fstd_steps = [], [], [], [] + for forces in forces_traj: + fmods = np.sqrt([np.dot(force, force) for force in forces]) + fmean_steps.append(fmods.mean()) + fstd_steps.append(fmods.std()) + fmin_steps.append(fmods.min()) + fmax_steps.append(fmods.max()) + + markers = ["o", "^", "v", "X"] + ax = ax_list[1] + ax.plot(fmin_steps, label="min |F|", marker=markers[0]) + ax.plot(fmax_steps, label="max |F|", marker=markers[1]) + ax.plot(fmean_steps, label="mean |F|", marker=markers[2]) + #ax.plot(fstd_steps, label="std |F|", marker=markers[3]) + ax.set_ylabel('F stats (eV/A)') + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + # Plot pressure. + voigt_stresses_traj = np.reshape([atoms.get_stress() for atoms in self.traj], (self.traj_size, 6)) + pressures = [-sum(vs[0:3])/3 for vs in voigt_stresses_traj] + ax = ax_list[2] + ax.plot(pressures, marker=marker) + ax.set_ylabel('Pressure (GPa)') + + for ix, ax in enumerate(ax_list): + set_axlims(ax, xlims, "x") + ax.grid(True) + if ix == len(ax_list) - 1: + ax.set_xlabel('Trajectory index', fontsize=fontsize) + + return fig + + @add_fig_kwargs + def plot_lattice(self, ax_list=None, fontsize=8, xlims=None, **kwargs) -> Figure: + """ + Plot lattice lengths/angles/volume as a function the of the trajectory index. + + Args: + ax_list: List of axis or None if a new figure should be created. + fontsize: fontsize for legends and titles + xlims: Set the data limits for the x-axis. Accept tuple e.g. ``(left, right)`` + or scalar e.g. ``left``. If left (right) is None, default values are used. + """ + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=3, ncols=1, + sharex=True, sharey=False, squeeze=False) + ax_list = ax_list.ravel() + + def cell_dict(atoms): + return dict(zip(_CELLPAR_KEYS, atoms.cell.cellpar())) + + cellpar_list = [cell_dict(atoms) for atoms in self.traj] + df = pd.DataFrame(cellpar_list) + #print(df) + + # plot lattice parameters. + ax = ax_list[0] + markers = ["o", "^", "v"] + for i, label in enumerate(["a", "b", "c"]): + ax.plot(df[label].values, label=label, marker=markers[i]) + ax.set_ylabel("abc (A)") + + # plot lattice angles. + ax = ax_list[1] + for i, label in enumerate(["angle(b,c)", "angle(a,c)", "angle(a,b)"]): + ax.plot(df[label].values, label=label, marker=markers[i]) + ax.set_ylabel(r"$\alpha\beta\gamma$ (degree)") + + # plot lattice volume. + ax = ax_list[2] + volumes = [atoms.get_volume() for atoms in self.traj] + marker = "o" + ax.plot(volumes, label="Volume", marker=marker) + ax.set_ylabel(r'$V\, (A^3)$') + + for ix, ax in enumerate(ax_list): + set_axlims(ax, xlims, "x") + if ix == len(ax_list) - 1: + ax.set_xlabel('Trajectory index', fontsize=fontsize) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + return fig + + +def get_fstats(cart_forces: np.ndarray) -> dict: + """ + Return dictionary with statistics on the Cartesian forces. + """ + fmods = np.array([np.linalg.norm(f) for f in cart_forces]) + #fmods = np.sqrt(np.einsum('ij, ij->i', cart_forces, cart_forces)) + #return AttrDict( + return dict( + fmin=fmods.min(), + fmax=fmods.max(), + fmean=fmods.mean(), + fstd=fmods.std(), + drift=np.linalg.norm(cart_forces.sum(axis=0)), + ) + + +@dataclasses.dataclass +class AseResults(HasPickleIO): + """ + Container with the results produced by an ASE calculator. + """ + atoms: Atoms + ene: float + stress: np.ndarray # 3x3 matrix with stress tensor. + forces: np.ndarray + magmoms: np.ndarray # None if calculator does not provide magmoms. + + @classmethod + def from_traj_inds(cls, trajectory: Trajectory, *inds) -> AseResults: + """Build list of AseResults from a trajectory and list of indices.""" + return [cls.from_atoms(trajectory[i]) for i in inds] + + @classmethod + def from_atoms(cls, atoms: Atoms, calc=None, with_stress=True, with_magmoms=True) -> AseResults: + """Build the object from an atoms instance with a calculator.""" + if calc is not None: + atoms.calc = calc + + stress = -np.eye(3) + if with_stress: + try: + stress_voigt = atoms.get_stress() + stress = voigt_6_to_full_3x3_strain(stress_voigt) + except PropertyNotImplementedError: + stress = -np.eye(3) + + magmoms = None + if with_magmoms: + try: + magmoms = atoms.get_magnetic_moments() + except PropertyNotImplementedError: + pass + + results = cls(atoms=atoms.copy(), + ene=float(atoms.get_potential_energy()), + stress=stress, + forces=atoms.get_forces(), + magmoms=magmoms) + + if calc is not None: + atoms.calc = None + return results + + @property + def pressure(self) -> float: + return -self.stress.trace() / 3 + + def get_voigt_stress(self): + """xx, yy, zz, yz, xz, xy""" + from ase.stress import full_3x3_to_voigt_6_stress + return full_3x3_to_voigt_6_stress(self.stress) + + @property + def volume(self) -> float: + """Volume of the unit cell in Ang^3.""" + return self.atoms.get_volume() + + def __str__(self): + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosity level `verbose`.""" + lines = []; app = lines.append + + app(f"Energy: {self.ene} (eV)") + app(f"Pressure: {self.pressure} (Gpa)") + + fstats = self.get_fstats() + for k, v in fstats.items(): + app(f"{k} = {v} (eV/Ang)") + + # if verbose: + if True: + app('Forces (eV/Ang):') + positions = self.atoms.get_positions() + data = dict( + x=positions[:,0], + y=positions[:,1], + z=positions[:,2], + fx=self.forces[:,0], + fy=self.forces[:,1], + fz=self.forces[:,2], + ) + # Add magmoms if available. + if self.magmoms is not None: + data["magmoms"] = self.magmoms + + df = pd.DataFrame(data) + app(df.to_string()) + + app('Stress tensor:') + for row in self.stress: + app(str(row)) + + return "\n".join(lines) + + def get_fstats(self) -> dict: + """ + Return dictionary with statistics on forces. + """ + return get_fstats(self.forces) + + def get_dict4pandas(self, with_geo=True, with_fstats=True) -> dict: + """ + Dictionary with results used to build pandas dataframe. + """ + d = {k: getattr(self, k) for k in ["ene", "volume", "pressure"]} + if with_geo: + d.update(dict(zip(_CELLPAR_KEYS, self.atoms.cell.cellpar()))) + if with_fstats: + d.update(self.get_fstats()) + + return d + + +def zip_sort(xs, ys): + isort = xs.argsort() + return xs[isort].copy(), ys[isort].copy() + + +def diff_stats(xs, ys): + abs_diff = np.abs(ys - xs) + return AttrDict( + MAE=abs_diff.mean(), + ADIFF_MIN=abs_diff.min(), + ADIFF_MAX=abs_diff.max(), + ADIFF_STD=abs_diff.std(), + ) + + +class AseResultsComparator(HasPickleIO): + """ + This object allows one to compare energies, forces and stresses computed + for the same structure but with different methods e.g. results obtained + with different ML potentials. + """ + + ALL_VOIGT_COMPS = "xx yy zz yz xz xy".split() + + @classmethod + def from_ase_results(cls, keys: list[str], results_list: list[list[AseResults]]): + """ + Build object from list of keys and list of AseResults. + """ + if len(keys) != len(results_list): + raise ValueError(f"{len(keys)=} != {len(results_list)=}") + + # Extract energies. + ene_list = [] + for i in range(len(keys)): + ene_list.append(np.array([r.ene for r in results_list[i]])) + + # Extract forces. + forces_list = [] + for i in range(len(keys)): + forces_list.append(np.array([r.forces for r in results_list[i]])) + + # Extract stress. + stress_list = [] + for i in range(len(keys)): + stress_list.append(np.array([r.get_voigt_stress() for r in results_list[i]])) + + structure = Structure.as_structure(results_list[0][0].atoms) + + return cls(structure, keys, np.array(ene_list), np.array(forces_list), np.array(stress_list)) + + def __init__(self, structure, keys, ene_list, forces_list, stress_list): + """ + Args: + structure: Structure object. + keys: List of strings, each string is associated to a different set of energies/forces/stresses. + ene_list: array of shape (nkeys, nsteps) + forces_list: array of shape (nkeys,nsteps,natom,3) with Cartesian forces. + stress_list: array of shape (nkeys, nsteps, 6) with stress in Voigt notation. + """ + self.structure = structure + self.keys = keys + self.ene_list = ene_list # [nkeys, nsteps] + self.forces_list = forces_list # [nkeys, nsteps, natom, 3] + self.stress_list = stress_list # [nkeys, nsteps, 6] + + # Consistency check + nkeys = len(self) + if self.ene_list.shape != (nkeys, self.nsteps): + raise ValueError(f"{self.ene_list.shape=} != ({nkeys=}, {self.nsteps=})") + if self.forces_list.shape != (nkeys, self.nsteps, self.natom, 3): + raise ValueError(f"{self.forces_list.shape=} != ({nkeys=}, {self.nsteps=}, {self.natom=}, 3)") + if self.stress_list.shape != (nkeys, self.nsteps, 6): + raise ValueError(f"{self.stress_list.shape=} != ({nkeys=}, {self.nsteps=}, 6)") + + # Index of the reference key. + self.iref = 0 + + def __len__(self): + return len(self.keys) + + @lazy_property + def nsteps(self) -> int: + """Number of steps in the trajectory.""" + return self.forces_list.shape[1] + + @lazy_property + def natom(self) -> int: + """Number of atoms.""" + return len(self.structure) + + def pickle_dump_and_write_script(self, workdir: PathLike) -> None: + """ + Write pickle file for object persistence and python script. + """ + workdir = Path(str(workdir)) + self.pickle_dump(workdir) + + py_path = workdir / "analyze.py" + print("Writing python script to analyze the results in:", str(py_path)) + with PythonScript(py_path) as script: + script.add_text(""" +def main(): + from abipy.ml.aseml import AseResultsComparator + c = AseResultsComparator.pickle_load(".") + with_stress = True + from abipy.tools.plotting import Exposer + exposer = "mpl" # or "panel" + symbol = None + with Exposer.as_exposer(exposer) as e: + e(c.plot_energies(show=False)) + e(c.plot_forces(delta_mode=False, symbol=symbol, show=False)) + #e(c.plot_forces(delta_mode=True, symbol=symbol, show=False)) + e(c.plot_energies_traj(delta_mode=True, show=False)) + e(c.plot_energies_traj(delta_mode=False, show=False)) + if with_stress: + e(c.plot_stresses(delta_mode=True, show=False)) + e(c.plot_forces_traj(delta_mode=True, show=False)) + e(c.plot_stress_traj(delta_mode=True, show=False)) +""").add_main() + + def get_key_pairs(self) -> list[tuple]: + """ + Return list with (key_ref, key) tuple. + """ + return [(self.keys[self.iref], key) for ik, key in enumerate(self.keys) if ik != self.iref] + + def inds_of_keys(self, key1: str, key2: str) -> tuple[int,int]: + """Tuple with the indices of key1, key2""" + ik1 = self.keys.index(key1) + ik2 = self.keys.index(key2) + return ik1, ik2 + + def idir_from_direction(self, direction: str) -> int: + """Index from direction string.""" + idir = {"x": 0, "y": 1, "z": 2}[direction] + return idir + + def ivoigt_from_comp(self, voigt_comp: str) -> int: + iv = "xx yy zz yz xz xy".split().index(voigt_comp) + return iv + + def get_aligned_energies_traj(self, istep=-1) -> np.ndarray: + """ + Return energies in eV aligned with respect to self.iref key. + Use the energy at the `istep` step index. + """ + out_ene_list = self.ene_list.copy() + for i in range(len(self)): + if i == self.iref: continue + shift = self.ene_list[i,istep] - self.ene_list[self.iref,istep] + out_ene_list[i] -= shift + + return out_ene_list + + def xy_energies_for_keys(self, key1: str, key2: str, sort=True) -> tuple: + """ + Return (xs, ys) sorted arrays with aligned energies for (key1, key2). + """ + aligned_ene_list = self.get_aligned_energies_traj() + ik1, ik2 = self.inds_of_keys(key1, key2) + xs = aligned_ene_list[ik1] + ys = aligned_ene_list[ik2] + + return zip_sort(xs, ys) if sort else (xs, ys) + + def xy_forces_for_keys(self, key1, key2, direction, symbol=None, site_inds=None) -> tuple: + """ + Return (xs, ys), sorted arrays with forces along the cart direction for (key1, key2). + + Args: + symbol: If not None, select only forces for this atomic specie. + site_inds: List of site indices to consider. None if all sites should be included. + """ + idir = self.idir_from_direction(direction) + ik1, ik2 = self.inds_of_keys(key1, key2) + + if symbol is not None and site_inds is not None: + raise ValueError("symbol and site_inds are mutually exclusive!") + + if symbol is not None: + inds = np.array(self.structure.indices_from_symbol(symbol)) + if len(inds) == 0: + raise ValueError(f"Cannot find chemical {symbol=} in structure!") + xs = self.forces_list[ik1,:,inds,idir].flatten() + ys = self.forces_list[ik2,:,inds,idir].flatten() + + elif site_inds is not None: + site_inds = np.array(site_inds) + xs = self.forces_list[ik1,:,site_inds,idir].flatten() + ys = self.forces_list[ik2,:,site_inds,idir].flatten() + + else: + xs = self.forces_list[ik1,:,:,idir].flatten() + ys = self.forces_list[ik2,:,:,idir].flatten() + + return zip_sort(xs, ys) + + def traj_forces_for_keys(self, key1, key2) -> tuple: + """ + Return arrays with the cart direction of forces along the trajectory for (key1, key2). + """ + ik1, ik2 = self.inds_of_keys(key1, key2) + xs, ys = self.forces_list[ik1], self.forces_list[ik2] + + return xs, ys + + def xy_stress_for_keys(self, key1, key2, voigt_comp, sort=True) -> tuple: + """ + Return xs, ys sorted arrays with the stress along the voigt component for (key1, key2). + """ + # (nkeys, self.nsteps, 6) + iv = self.ivoigt_from_comp(voigt_comp) + ik1, ik2 = self.inds_of_keys(key1, key2) + xs = self.stress_list[ik1,:,iv].flatten() + ys = self.stress_list[ik2,:,iv].flatten() + + return zip_sort(xs, ys) if sort else (xs, ys) + + def get_forces_dataframe(self) -> pd.DataFrame: + """ + Return dataFrame with columns (fx, fy, fz, isite, istep, key) + """ + # [nkeys, nsteps, natom, 3] + d_list = [] + for ik, key in enumerate(self.keys): + f_traj = self.forces_list[ik] + for istep in range(self.nsteps): + for iatom in range(self.natom): + fx, fy, fz = f_traj[istep, iatom,:] + d = dict(fx=fx, fy=fy, fz=fz, iatom=iatom, istep=istep, key=key) + d_list.append(d) + + df = pd.DataFrame(d_list).sort_values(by=["istep", "iatom"], ignore_index=True) + return df + + def get_stress_dataframe(self) -> pd.DataFrame: + """ + Return DataFrame with columns [sxx,syy,szz, ... ,istep,key] + """ + # [nkeys, nsteps, 6] + d_list = [] + for ik, key in enumerate(self.keys): + stress_traj = self.stress_list[ik] + for istep in range(self.nsteps): + d = {comp: stress_traj[istep, ic] for ic, comp in enumerate(self.ALL_VOIGT_COMPS)} + d.update(istep=istep, key=key) + d_list.append(d) + + df = pd.DataFrame(d_list).sort_values(by=["istep"], ignore_index=True) + return df + + #def get_rdf(self): + # try: + # from pymatgen.analysis.diffusion.aimd import RadialDistributionFunction, RadialDistributionFunctionFast + # except ImportError as exc: + # raise ImportError("pymatgen-analysis-diffusion. Try `pip install pymatgen-analysis-diffusion`.") from exc + + # rdf = RadialDistributionFcuntion.from_species( + # structures: list, + # ngrid: int = 101, + # rmax: float = 10.0, + # cell_range: int = 1, + # sigma: float = 0.1, + # species: tuple | list = ("Li", "Na"), + # reference_species: tuple | list | None = None, + # ) + + @add_fig_kwargs + def plot_energies(self, fontsize=8, **kwargs): + """ + Compare energies aligned wrt to self.iref entry + """ + key_pairs = self.get_key_pairs() + nrows, ncols = 1, len(key_pairs) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False, + #subplot_kw=dict(box_aspect=1) #, layout="constrained", + #aspect='equal', adjustable='box', + ) + irow = 0 + for icol, (key1, key2) in enumerate(key_pairs): + xs, ys = self.xy_energies_for_keys(key1, key2) + stats = diff_stats(xs, ys) + ax = ax_mat[irow, icol] + ax.scatter(xs, ys, marker="o") + ax.grid(True) + ax.set_xlabel(f"{key1} energy", fontsize=fontsize) + ax.set_ylabel(f"{key2} energy", fontsize=fontsize) + linear_fit_ax(ax, xs, ys, fontsize=fontsize, with_label=True) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + if irow == 0: + ax.set_title(f"{key1}/{key2} MAE: {stats.MAE:.6f}", fontsize=fontsize) + + if "title" not in kwargs: fig.suptitle(f"Energies in eV for {self.structure.latex_formula}") + return fig + + @add_fig_kwargs + def plot_forces(self, symbol=None, site_inds=None, fontsize=8, **kwargs): + """ + Parity plot for forces. + + Args: + symbol: If not None, select only forces for this atomic specie. + site_inds: List of site indices to consider. None if all sites should be included. + """ + key_pairs = self.get_key_pairs() + nrows, ncols = 3, len(key_pairs) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False, + #subplot_kw=dict(box_aspect=1), # layout="constrained", + #aspect='equal', adjustable='box', + ) + + for icol, (key1, key2) in enumerate(key_pairs): + for irow, direction in enumerate(("x", "y", "z")): + ax = ax_mat[irow, icol] + ax.grid(True) + + xs, ys = self.xy_forces_for_keys(key1, key2, direction, symbol=symbol, site_inds=site_inds) + stats = diff_stats(xs, ys) + ax.scatter(xs, ys, marker="o") + linear_fit_ax(ax, xs, ys, fontsize=fontsize, with_label=True) + + ax.legend(loc="best", shadow=True, fontsize=fontsize) + f_tex = f"$F_{direction}$" + if icol == 0: + ax.set_ylabel(f"{key2} {f_tex}", fontsize=fontsize) + if irow == 2: + ax.set_xlabel(f"{key1} {f_tex}", fontsize=fontsize) + symb = "" if symbol is None else f"{symbol=}" + ax.set_title(f"{key1}/{key2} MAE: {stats.MAE:.6f} {symb}", fontsize=fontsize) + + if "title" not in kwargs: fig.suptitle(f"Cartesian forces in eV/Ang for {self.structure.latex_formula}") + return fig + + @add_fig_kwargs + def plot_stresses(self, fontsize=6, **kwargs): + """ + Compare stress components. + """ + key_pairs = self.get_key_pairs() + nrows, ncols = 6, len(key_pairs) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False, + #subplot_kw=dict(box_aspect=1), # layout="constrained", + #aspect='equal', adjustable='box', + ) + + for icol, (key1, key2) in enumerate(key_pairs): + for irow, voigt_comp in enumerate(self.ALL_VOIGT_COMPS): + xs, ys = self.xy_stress_for_keys(key1, key2, voigt_comp) + stats = diff_stats(xs, ys) + ax = ax_mat[irow, icol] + ax.scatter(xs, ys, marker="o") + linear_fit_ax(ax, xs, ys, fontsize=fontsize, with_label=True) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + ax.grid(True) + s_tex = r"$\sigma_{%s}$" % voigt_comp + if icol == 0: + ax.set_ylabel(f"{key2} {s_tex}", fontsize=fontsize) + if irow == (len(self.ALL_VOIGT_COMPS) - 1): + ax.set_xlabel(f"{key1} {s_tex}", fontsize=fontsize) + ax.set_title(f"{key1}/{key2} MAE: {stats.MAE:.6f}", fontsize=fontsize) + + if "title" not in kwargs: fig.suptitle(f"Stresses in (eV/Ang$^3$) for {self.structure.latex_formula}") + return fig + + @add_fig_kwargs + def plot_energies_traj(self, delta_mode=True, fontsize=6, markersize=2, **kwargs): + """ + Plot energies along the trajectory. + + Args: + delta_mode: True to plot differences instead of absolute values. + """ + key_pairs = self.get_key_pairs() + nrows, ncols = 1, len(key_pairs) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False, + #subplot_kw=dict(box_aspect=1), layout="constrained", + ) + + for icol, (key1, key2) in enumerate(key_pairs): + e1, e2 = self.xy_energies_for_keys(key1, key2, sort=False) + stats = diff_stats(e1, e2) + + ax = ax_mat[0, icol] + if delta_mode: + # Plot delta energy along the trajectory. + ax.plot(np.abs(e1 - e2), marker="o", markersize=markersize) + ax.set_yscale("log") + else: + ax.plot(e1, marker="o", color="red", label=key1, markersize=markersize) + ax.plot(e2, marker="o", color="blue", label=key2, markersize=markersize) + + set_grid_legend(ax, fontsize, xlabel='trajectory', + ylabel=r"$|\Delta_E|$" if delta_mode else "$E$", + grid=True, legend_loc="upper left", + title=f"{key1}/{key2} MAE: {stats.MAE:.6f} eV") + + head = r"$\Delta$-Energy in eV" if delta_mode else "Energy in eV" + if "title" not in kwargs: fig.suptitle(f"{head} for {self.structure.latex_formula}") + + return fig + + @add_fig_kwargs + def plot_forces_traj(self, delta_mode=True, symbol=None, fontsize=6, markersize=2, **kwargs): + """ + Plot forces along the trajectory. + + Args: + delta_mode: True to plot differences instead of absolute values. + symbol: If not None, select only forces for this atomic species + """ + # Fx,Fy,Fx along rows, pairs along columns. + key_pairs = self.get_key_pairs() + nrows, ncols = 3, len(key_pairs) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False, + #subplot_kw=dict(box_aspect=1), layout="constrained", + ) + + atom1_cmap = plt.get_cmap("viridis") + atom2_cmap = plt.get_cmap("jet") + marker_idir = {0: ">", 1: "<", 2: "^"} + + if symbol is None: + inds = np.array(self.structure.indices_from_symbol(symbol)) + if len(inds) == 0: + raise ValueError(f"Cannot find chemical {symbol=} in structure!") + + for icol, (key1, key2) in enumerate(key_pairs): + # Arrays of shape: [nsteps, natom, 3] + f1_tad, f2_tad = self.traj_forces_for_keys(key1, key2) + for idir, direction in enumerate(("x", "y", "z")): + last_row = idir == 2 + fp_tex = f"F_{direction}" + xs, ys = self.xy_forces_for_keys(key1, key2, direction, symbol=symbol) + stats = diff_stats(xs, ys) + ax = ax_mat[idir, icol] + symb = "" if symbol is None else f"{symbol=}" + ax.set_title(f"{key1}/{key2} MAE: {stats.MAE:.6f} {symb}", fontsize=fontsize) + + zero_values = False + for iatom in range(self.natom): + # Select atoms by symbol + if symbol is not None and iatom not in inds: continue + if delta_mode: + # Plot delta of forces along the trajectory. + style = dict(marker=marker_idir[idir], markersize=markersize, + color=atom1_cmap(float(iatom) / self.natom)) + abs_delta = np.abs(f1_tad[:,iatom,idir] - f2_tad[:,iatom,idir]) + zero_values = zero_values or np.any(abs_delta == 0.0) + ax.plot(abs_delta, **style, label=f"$\Delta {fp_tex}$" if iatom == 0 else None) + else: + f1_style = dict(marker=marker_idir[idir], markersize=markersize, + color=atom1_cmap(float(iatom) / self.natom)) + f2_style = dict(marker=marker_idir[idir], markersize=markersize, + color=atom2_cmap(float(iatom) / self.natom)) + with_label = (iatom, idir) == (0,0) + ax.plot(f1_tad[:,iatom,idir], **f1_style, + label=f"${key1}\, {fp_tex}$" if with_label else None) + ax.plot(f2_tad[:,iatom,idir], **f2_style, + label=f"${key2}\, {fp_tex}$" if with_label else None) + + if delta_mode: + ax.set_yscale("log" if not zero_values else "symlog") + + set_grid_legend(ax, fontsize, xlabel='trajectory' if last_row else None, + grid=True, legend=not delta_mode, legend_loc="upper left", + ylabel=f"$|\Delta {fp_tex}|$" if delta_mode else f"${fp_tex}$") + + head = r"$\Delta$-forces in eV/Ang" if delta_mode else r"Forces in eV/Ang" + if "title" not in kwargs: fig.suptitle(f"{head} for {self.structure.latex_formula}") + + return fig + + @add_fig_kwargs + def plot_stress_traj(self, delta_mode=True, markersize=2, fontsize=6, **kwargs): + """ + Plot stresses along the trajectory. + + Args: + delta_mode: True to plot differences instead of absolute values. + """ + # Sxx,Syy,Szz,... along rows, pairs along columns. + key_pairs = self.get_key_pairs() + nrows, ncols = 6, len(key_pairs) + ax_mat, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False, + #subplot_kw=dict(box_aspect=1), layout="constrained", + ) + + marker_voigt = {"xx": ">", "yy": "<", "zz": "^", "yz": 1, "xz": 2, "xy":3} + + for icol, (key1, key2) in enumerate(key_pairs): + # Plot (delta of) stresses along the trajectory. + for iv, voigt_comp in enumerate(self.ALL_VOIGT_COMPS): + xs, ys = self.xy_stress_for_keys(key1, key2, voigt_comp) + stats = diff_stats(xs, ys) + last_row = iv == len(self.ALL_VOIGT_COMPS) - 1 + ax = ax_mat[iv, icol] + ax.set_title(f"{key1}/{key2} MAE: {stats.MAE:.6f}", fontsize=fontsize) + voigt_comp_tex = "{" + voigt_comp + "}" + s1, s2 = self.xy_stress_for_keys(key1, key2, voigt_comp, sort=False) + s_style = dict(marker=marker_voigt[voigt_comp], markersize=markersize) + + if delta_mode: + abs_delta_stress = np.abs(s1 - s2) + ax.plot(abs_delta_stress, **s_style, label=f"$|\Delta \sigma_{voigt_comp_tex}|$") + ax.set_yscale("log") + else: + ax.plot(s1, **s_style, label=f"${key1}\,\sigma_{voigt_comp_tex}$" if iv == 0 else None) + ax.plot(s2, **s_style, label=f"${key2}\,\sigma_{voigt_comp_tex}$" if iv == 0 else None) + #ax.set_ylim(-1, +1) + + set_grid_legend(ax, fontsize, xlabel='trajectory' if last_row else None, + grid=True, legend=not delta_mode, legend_loc="upper left", + ylabel=f"$|\Delta \sigma_{voigt_comp_tex}|$ " if delta_mode else r"$\sigma$ ") + + head = r"$\Delta \sigma$ (eV/Ang$^3$)" if delta_mode else "Stress tensor (eV/Ang$^3$)" + if "title" not in kwargs: fig.suptitle(f"{head} for {self.structure.latex_formula}") + + return fig + + +class AseRelaxation: + """ + Container with the results produced by the ASE calculator. + """ + def __init__(self, dyn, r0, r1, traj_path): + self.dyn = dyn + self.r0, self.r1 = r0, r1 + self.traj_path = str(traj_path) + + @lazy_property + def traj(self): + """ASE trajectory.""" + if self.traj_path is None: + raise RuntimeError("Cannot read ASE traj as traj_path is None") + return read(self.traj_path, index=":") + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """ + String representation with verbosity level verbose + """ + lines = [] + app = lines.append + app(">>> BEGIN INFO ON INITIAL STRUCTURE:") + s0 = Structure.as_structure(self.r0.atoms) + app(str(s0)) + app(s0.spget_summary()) + app("<<< END INFO ON INITIAL STRUCTURE") + app("") + app("") + app(">>> BEGIN INFO ON FINAL STRUCTURE:") + app("Relaxed structure:") + s1 = Structure.as_structure(self.r1.atoms) + app(str(s1)) + app(s1.spget_summary()) + app("<<< END INFO ON FINAL STRUCTURE") + + return "\n".join(lines) + + def summarize(self, tags=None, mode="smart", stream=sys.stdout): + """ + """ + if self.traj_path is None: return + r0, r1 = self.r0, self.r1 + #r0, r1 = AseResults.from_traj_inds(self.traj, 0, -1) + if tags is None: tags = ["unrelaxed", "relaxed"], + df = dataframe_from_results_list(tags, [r0, r1], mode=mode) + print_dataframe(df, end="\n", file=stream) + + +def dataframe_from_results_list(index: list, results_list: list[AseResults], + mode="smart") -> pd.DataFrame: + assert len(index) == len(results_list) + df = pd.DataFrame([r.get_dict4pandas() for r in results_list], index=index) + + if mode == "smart": + # Remove columns with the same values e.g. geometry params. + def is_unique(s): + a = s.to_numpy() + return (a[0] == a).all() + + for k in (["volume",] + _CELLPAR_KEYS): + if k in df and is_unique(df[k]): + df.drop(columns=k, inplace=True) + + return df + + +def ase_optimizer_cls(s: str | Optimizer) -> Type | list[str]: + """ + Return an ASE Optimizer subclass from string `s`. + If s == "__all__", return list with all Optimizer subclasses supported by ASE. + """ + from ase import optimize + def is_ase_optimizer(key: str) -> bool: + return isclass(obj := getattr(optimize, key)) and issubclass(obj, Optimizer) + + valid_keys = [key for key in dir(optimize) if is_ase_optimizer(key)] + + if s == "__all__": + return valid_keys + + if isinstance(s, Optimizer): + return s + + if s not in valid_keys: + raise ValueError(f"Unknown optimizer {s}, must be one of {valid_keys}") + + return getattr(optimize, s) + + +def relax_atoms(atoms: Atoms, relax_mode: str, optimizer: str, fmax: float, pressure: float, + verbose: int, steps: int = 500, + opt_kwargs=None, traj_path=None, calculator=None) -> AseRelaxation: + """ + Relax atoms using an ASE calculator and ASE algorithms. + + Args: + atoms: ASE atoms. + relax_mode: "ions" to relax ions only, "cell" for ions + cell, "no" for no relaxation. + optimizer: name of the ASE optimizer to use. + fmax: tolerance for relaxation convergence. Here fmax is a sum of force and stress forces. + pressure: Target pressure. + verbose: whether to print stdout. + steps: max number of steps for relaxation. + opt_kwargs (dict): kwargs for the ASE optimizer class. + traj_path: + calculator: + """ + from ase.constraints import ExpCellFilter + #from ase.filters import FrechetCellFilter + RX_MODE.validate(relax_mode) + if relax_mode == RX_MODE.no: + raise ValueError(f"Invalid {relax_mode:}") + + opt_kwargs = opt_kwargs or {} + if traj_path is not None: + opt_kwargs["trajectory"] = str(traj_path) + + if calculator is not None: + atoms.calc = calculator + + # Run relaxation + opt_class = ase_optimizer_cls(optimizer) + stream = sys.stdout if verbose else io.StringIO() + def pf(*args, **kwargs): + print(*args, file=stream, **kwargs) + + with contextlib.redirect_stdout(stream): + pf(f"Relaxation parameters: fmax: {fmax}, relax_mode: {relax_mode}, steps: {steps}, optimizer: {optimizer}") + if atoms.constraints and verbose > 1: + # Print constraints. + pf(f"Number of constraints: {len(atoms.constraints)}") + for c in atoms.constraints: + pf("\t", c) + pf("") + + r0 = AseResults.from_atoms(atoms) + + dyn = opt_class(ExpCellFilter(atoms, scalar_pressure=pressure), **opt_kwargs) if relax_mode == RX_MODE.cell else \ + opt_class(atoms, **opt_kwargs) + + t_start = time.time() + converged = dyn.run(fmax=fmax, steps=steps) + t_end = time.time() + pf('Relaxation completed in %2.4f sec\n' % (t_end - t_start)) + if not converged: + raise RuntimeError("ASE relaxation didn't converge") + + r1 = AseResults.from_atoms(atoms) + + return AseRelaxation(dyn, r0, r1, traj_path) + + +def silence_tensorflow() -> None: + """ + Silence every unnecessary warning from tensorflow. + """ + # https://stackoverflow.com/questions/35911252/disable-tensorflow-debugging-information + import logging + logging.getLogger('tensorflow').setLevel(logging.ERROR) + os.environ["KMP_AFFINITY"] = "noverbose" + os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' + try: + import tensorflow as tf + tf.get_logger().setLevel('ERROR') + tf.autograph.set_verbosity(3) + except (ModuleNotFoundError, ImportError): + pass + + +class CORRALGO(IntEnum): + """ + Enumerate the different algorithms used to correct the ML forces/stresses. + """ + none = 0 + delta = 1 + one_point = 2 + #two_points = 3 + + @classmethod + def from_string(cls, string: str): + """Build instance from string.""" + try: + enum = getattr(cls, string) + return enum + except AttributeError as exc: + raise ValueError(f'Error: {string} is not a valid value') + + +class _MyCalculator: + """ + Add __abi_forces_list and __abi_stress_list internal attributes to an ASE calculator. + Extend `calculate` method so that ML forces and stresses can be corrected. + """ + + def __init__(self, *args, **kwargs): + #print("In _MyMlCalculatorInit with args:", args, ", kwargs:", kwargs) + super().__init__(*args, **kwargs) + + from collections import deque + maxlen = 2 + self.__correct_forces_algo = CORRALGO.none + self.__correct_stress_algo = CORRALGO.none + self.__abi_forces_list = deque(maxlen=maxlen) + self.__abi_stress_list = deque(maxlen=maxlen) + self.__abi_atoms_list = deque(maxlen=maxlen) + self.__ml_forces_list = deque(maxlen=maxlen) + self.__ml_stress_list = deque(maxlen=maxlen) + self.__verbose = 0 + + def set_correct_forces_algo(self, new_algo: int) -> int: + """Set the correction algorithm for forces.""" + assert new_algo in CORRALGO + old_algo = self.__correct_forces_algo + self.__correct_forces_algo = new_algo + return old_algo + + @property + def correct_forces_algo(self) -> int: + """Correction algorithm for forces.""" + return self.__correct_forces_algo + + def set_correct_stress_algo(self, new_algo: int) -> int: + """Set the correction algorithm for the stress.""" + assert new_algo in CORRALGO + old_algo = self.__correct_stress_algo + self.__correct_stress_algo = new_algo + return old_algo + + @property + def correct_stress_algo(self) -> int: + """Correction algorithm for the stress.""" + return self.__correct_stress_algo + + def store_abi_forstr_atoms(self, abi_forces, abi_stress, atoms): + """ + Stores a copy of the ab-initio forces, stress tensor and atoms + in the internal buffers. Also compute and store the corresponding ML values. + """ + # Store copies in internal buffers. + abi_forces = np.asarray(abi_forces).copy() + self.__abi_forces_list.append(abi_forces) + abi_stress = np.asarray(abi_stress).copy() + self.__abi_stress_list.append(abi_stress) + self.__abi_atoms_list.append(atoms.copy()) + + # Compute ML forces and stresses for the input atoms. + old_forces_algo = self.set_correct_forces_algo(CORRALGO.none) + old_stress_algo = self.set_correct_stress_algo(CORRALGO.none) + self.reset() + ml_forces = self.get_forces(atoms=atoms) + ml_stress = self.get_stress(atoms=atoms) + if ml_stress.ndim == 1: + ml_stress = voigt_6_to_full_3x3_strain(ml_stress) + self.reset() + self.__ml_forces_list.append(ml_forces) + self.__ml_stress_list.append(ml_stress) + self.reset() + self.set_correct_forces_algo(old_forces_algo) + self.set_correct_stress_algo(old_stress_algo) + + if self.__verbose: + def fmt_vec3(vec3) -> str: + return "{:.6e} {:.6e} {:.6e}".format(*vec3) + def fmt_vec6(vec6) -> str: + return "{:.6e} {:.6e} {:.6e} {:.6e} {:.6e} {:.6e}".format(*vec6) + + from ase.stress import full_3x3_to_voigt_6_stress + print("abi_stress6:", fmt_vec6(full_3x3_to_voigt_6_stress(abi_stress))) + print("ml_stress6: ", fmt_vec6(full_3x3_to_voigt_6_stress(ml_stress))) + for iat in range(len(atoms)): + print(f"abi_fcart_{iat=}:", fmt_vec3(abi_forces[iat])) + print(f"ml_fcart_{iat=} :", fmt_vec3(ml_forces[iat])) + + def get_abi_ml_forces(self, pos=-1): + """Return the ab-initio and the ML forces or (None, None) if not available.""" + if not self.__abi_forces_list: return (None, None) + return self.__abi_forces_list[pos], self.__ml_forces_list[pos] + + def get_abi_ml_stress(self, pos=-1): + """Return the ab-initio and the ML stress or (None, None) if not available.""" + if not self.__abi_stress_list: return (None, None) + return self.__abi_stress_list[pos], self.__ml_stress_list[pos] + + def calculate( + self, + atoms: Atoms | None = None, + properties: list | None = None, + system_changes: list | None = None, + ): + """ + Perform calculation for an input Atoms. + + Args: + atoms (ase.Atoms): ase Atoms object + properties (list): list of properties to calculate + system_changes (list): monitor which properties of atoms were + changed for new calculation. If not, the previous calculation + results will be loaded. + """ + #print("In super.calculate") + super().calculate(atoms=atoms, properties=properties, system_changes=system_changes) + + if self.correct_forces_algo != CORRALGO.none: + if self.__verbose: print(f"Applying ab-initio correction to the ml_forces with {self.correct_forces_algo=}") + forces = self.results["forces"] + abi_forces, ml_forces = self.get_abi_ml_forces() + if abi_forces is not None: + # Change forces only if have invoked store_abi_forstr_atoms + if self.correct_forces_algo == CORRALGO.delta: + # Apply delta correction to forces. + alpha = 1.0 + delta_forces = (abi_forces - ml_forces)/alpha + if self.__verbose > 1: print("Updating forces with delta_forces:\n", abi_forces) + forces += delta_forces + print(f"{delta_forces=}") + #AA: TODO: save the delta in list and call method... + dict = {'delta_forces': delta_forces,} + with open('delta_forces.json', 'a') as outfile: + json.dump(dict, outfile, indent=1, cls=MontyEncoder) + + elif self.correct_forces_algo == CORRALGO.one_point: + forces += abi_forces + else: + raise ValueError(f"Invalid {self.correct_forces_algo=}") + + self.results.update(forces=forces) + + if self.correct_stress_algo != CORRALGO.none: + if self.__verbose: print(f"Applying ab-initio correction to the ml_stress with {self.correct_stress_algo=}") + stress = self.results["stress"] + abi_stress, ml_stress = self.get_abi_ml_stress() + if abi_stress is not None: + # Change stresses only if have invoked store_abi_forstr_atoms + if self.correct_stress_algo == CORRALGO.delta: + # Apply delta correction to stress. + delta_stress = abi_stress - ml_stress + if self.__verbose > 1: print("Updating stress with delta_stress:\n", delta_stress) + stress += delta_stress + elif self.correct_stress_algo == CORRALGO.one_point: + stress += abi_stress + else: + raise ValueError(f"Invalid {self.correct_stress_algo=}") + self.results.update(stress=stress) + + +def as_calculator(obj) -> Calculator: + """Build an ASE calculator.""" + if isinstance(obj, Calculator): + return obj + + # Assume string + return CalcBuilder(obj).get_calculator() + + +def find_spec_nn() -> list[str]: + # https://stackoverflow.com/questions/14050281/how-to-check-if-a-python-module-exists-without-importing-it + import importlib.util + installed = [] + for nn_name in CalcBuilder.ALL_NN_TYPES: + nn_spec = importlib.util.find_spec(nn_name) + if nn_spec is not None: + installed.append(nn_name) + + return installed + + +def get_installed_nn_names(verbose=0, printout=True) -> tuple[list[str], list[str]]: + """ + Return list of strings with the names of the nn potentials installed in the environment + """ + installed, versions = [], [] + from importlib import import_module + + for name in CalcBuilder.ALL_NN_TYPES: + try: + mod = import_module(name) + installed.append(name) + try: + v = mod.__version__ + except AttributeError: + v = "0.0.0" + versions.append(v) + + except ImportError as exc: + if verbose: print(exc) + + if printout: + print("The following NN potentials are installed in the environment:", sys.executable, end=2*"\n") + table = [t for t in zip(installed, versions)] + print(tabulate(table, headers=["Package", "Version"])) + print("") + + return installed, versions + + +def install_nn_names(nn_names="all", update=False, verbose=0) -> None: + """ + Install NN potentials in the environment using pip. + + Args: + nn_names: List of NN potentisl to install. + update: True if packages should be updated. + verbose: Verbosity level. + """ + def pip_install(nn_name) -> int: + from subprocess import call + cmd = f"python -m pip install {nn_name}" + #print("About to execute", cmd) + try: + retcode = call(cmd, shell=True) + if retcode < 0: + print(f"`{cmd=}` was terminated by signal", -retcode, file=sys.stderr) + else: + print(f"`{cmd=}` returned", retcode, file=sys.stderr) + except OSError as exc: + print(f"`{cmd=}` failed:", exc, file=sys.stderr) + + return retcode + + black_list = [ + "alignn", + ] + + nn_names == list_strings(nn_names) + if "all" in nn_names: nn_names = CalcBuilder.ALL_NN_TYPES + installed, versions = get_installed_nn_names(verbose=verbose, printout=False) + + for name in nn_names: + print(f"About to install nn_name={name} ...") + if name in black_list: + print("Cannot install {name} with pip!") + continue + if name in installed: + if not update: + print("{name} is already installed!. Use update to update the package") + continue + print("Upgrading: {name}") + if name not in CalcBuilder.ALL_NN_TYPES: + print(f"Ignoring unknown {name=}") + continue + + pip_install(name) + + +class CalcBuilder: + """ + Factory class to build an ASE calculator with a ML potential as backend. + Supports different backends defined by `name` string. + Possible formats are: + + 1) nn_type e.g. m3gnet. See ALL_NN_TYPES for available keys. + 2) nn_type:model_name + 3) nn_type@model_path e.g.: mace:FILEPATH + 4) nn_type@calc_kwargs.yaml e.g.: mace:calc_kwargs.yaml. + """ + + ALL_NN_TYPES = [ + "emt", + "m3gnet", + "matgl", + "chgnet", + "alignn", + "mace", + "mace_mp", + "pyace", + "nequip", + "metatensor", + "deepmd", + "orb", + "sevenn", + ] + + def __init__(self, name: str, dftd3_args=None, **kwargs): + """ + name: Model name. + kwargs: optional arguments are stored in calc_kwargs + """ + self.name = name + + # Extract nn_type and model_name from name + self.nn_type, self.model_name, self.model_path = name, None, None + self.calc_kwargs = {} + + if ":" in name: + self.nn_type, last = name.split(":") + if last.endswith(".yaml") or last.endswith(".yml"): + print("Reading Calculator kwargs from file:", last) + self.calc_kwargs = yaml_safe_load_path(last) + print("calc_kwargs:", self.calc_kwargs) + else: + self.model_name = last + + elif "@" in name: + self.nn_type, self.model_path = name.split("@") + self.model_path = os.path.expandvars(os.path.expanduser(self.model_path)) + + if self.nn_type not in self.ALL_NN_TYPES: + raise ValueError(f"Invalid {name=}, it should be in {self.ALL_NN_TYPES=}") + + # Handle DFTD3. + self.dftd3_args = dftd3_args + if self.dftd3_args and not isinstance(dftd3_args, dict): + # Load parameters from Yaml file. + self.dftd3_args = yaml_safe_load_path(self.dftd3_args) + + if self.dftd3_args: + print("Activating dftd3 with arguments:", self.dftd3_args) + + self._model = None + self.calc_kwargs.update(kwargs) + + def __str__(self): + if self.model_name is not None: + return f"{self.__class__.__name__} nn_type: {self.nn_type}, model_name: {self.model_name}" + + return f"{self.__class__.__name__} nn_type: {self.nn_type}" + + # pickle support. + def __getstate__(self): + return dict(name=self.name) + + def __setstate__(self, d): + self.name = d["name"] + self._model = None + + def reset(self) -> None: + self._model = None + + def get_calculator(self, with_delta: bool = True, reset: bool = False) -> Calculator: + """ + Return an ASE calculator with ML potential. + + Args: + with_delta: False if the calculator should not include delta corrections. + reset: True if the internal cache for the model should be reset. + """ + #if reset: self.reset() + self.reset() + + if self.nn_type == "emt": + # Set the calculator (EMT for testing purposes) + from ase.calculators.emt import EMT + class MyEMTCalculator(_MyCalculator, EMTCalculator): + """Add abi_forces and abi_stress""" + + return MyEMTCalculator(**self.calc_kwargs) + + elif self.nn_type == "m3gnet": + # m3gnet legacy version. + if self._model is None: + silence_tensorflow() + try: + from m3gnet.models import Potential, M3GNet, M3GNetCalculator + except ImportError as exc: + raise ImportError("m3gnet not installed. Try `pip install m3gnet`.") from exc + + if self._model is None: + assert self.model_name is None + self._model = Potential(M3GNet.load()) + + class MyM3GNetCalculator(_MyCalculator, M3GNetCalculator): + """Add abi_forces and abi_stress""" + + # Use same value of stress_weight as in Relaxer at: + # https://github.com/materialsvirtuallab/m3gnet/blob/main/m3gnet/models/_dynamics.py + cls = MyM3GNetCalculator if with_delta else M3GNetCalculator + calc = cls(potential=self._model, stress_weight=0.01, **self.calc_kwargs) + + elif self.nn_type == "matgl": + # See https://github.com/materialsvirtuallab/matgl + try: + import matgl + from matgl.ext.ase import M3GNetCalculator + except ImportError as exc: + raise ImportError("matgl not installed. Try `pip install matgl`.") from exc + + if self._model is None: + if self.model_path is not None: + self._model = matgl.load_model(self.model_path) + else: + #model_name = "M3GNet-MP-2021.2.8-PES" if self.model_name is None else self.model_name + model_name = "M3GNet-MP-2021.2.8-DIRECT-PES" if self.model_name is None else self.model_name + print("Using model_name:", model_name) + self._model = matgl.load_model(model_name) + + class MyM3GNetCalculator(_MyCalculator, M3GNetCalculator): + """Add abi_forces and abi_stress""" + + cls = MyM3GNetCalculator if with_delta else M3GNetCalculator + # stress_weight (float): conversion factor from GPa to eV/A^3, if it is set to 1.0, the unit is in GPa + # here we use 1 / 160.21766208 as in + # https://github.com/materialsvirtuallab/matgl/blob/main/src/matgl/ext/ase.py + calc = cls(potential=self._model, stress_weight=1/abu.eVA3_GPa, **self.calc_kwargs) + + elif self.nn_type == "chgnet": + try: + from chgnet.model.dynamics import CHGNetCalculator + from chgnet.model.model import CHGNet + except ImportError as exc: + raise ImportError("chgnet not installed. Try `pip install chgnet`.") from exc + + if self._model is None: + assert self.model_name is None + if self.model_path is not None: + self._model = CHGNet.from_file(self.model_path) + elif self.model_name is not None: + self._model = CHGNet.load(model_name=self.model_name) + else: + # Default model with model_name="MPtrj-efsm" + self._model = CHGNet.load() + + class MyCHGNetCalculator(_MyCalculator, CHGNetCalculator): + """Add abi_forces and abi_stress""" + + # This calculator by default returns stress in eV/Ang^3 as expected by ASE + # https://github.com/CederGroupHub/chgnet/blob/main/chgnet/model/dynamics.py + cls = MyCHGNetCalculator if with_delta else CHGNetCalculator + calc = cls(model=self._model, **self.calc_kwargs) + + elif self.nn_type == "alignn": + try: + from alignn.ff.ff import AlignnAtomwiseCalculator, default_path # , get_figshare_model_ff + except ImportError as exc: + raise ImportError("alignn not installed. See https://github.com/usnistgov/alignn") from exc + + class MyAlignnCalculator(_MyCalculator, AlignnAtomwiseCalculator): + """Add abi_forces and abi_stress""" + + def get_forces(self, *args, **kwargs): + """Path get_forces method of ALIGNN calculator so that we always return 2d array (natom, 3)""" + forces = super().get_forces(*args, **kwargs) + #print("alignn, forces.shape", forces.shape) + forces = np.reshape(forces, (-1, 3)) + return forces + + #if self.model_path is not None: + # get_figshare_model_ff(model_name=self.model_path) + + # This calculator by default uses + # stress_wt=1.0, + # force_multiplier=1.0, + # and it's therefore compatible with ASE. See ForceField + # https://github.com/usnistgov/alignn/blob/main/alignn/ff/ff.py + + model_name = default_path() if self.model_name is None else self.model_name + cls = MyAlignnCalculator if with_delta else AlignnAtomwiseCalculator + calc = cls(path=model_name, **self.calc_kwargs) + + elif self.nn_type == "pyace": + try: + from pyace import PyACECalculator + except ImportError as exc: + raise ImportError("pyace not installed. See https://pacemaker.readthedocs.io/en/latest/pacemaker/install/") from exc + + class MyPyACECalculator(_MyCalculator, PyACECalculator): + """Add abi_forces and abi_stress""" + + if self.model_path is None: + raise RuntimeError("PyACECalculator requires model_path e.g. nn_name='pyace@FILEPATH'") + + cls = MyPyACECalculator if with_delta else PyACECalculator + calc = cls(basis_set=self.model_path, **self.calc_kwargs) + + elif self.nn_type == "mace": + try: + from mace.calculators import MACECalculator + except ImportError as exc: + raise ImportError("mace not installed. See https://github.com/ACEsuit/mace") from exc + + class MyMACECalculator(_MyCalculator, MACECalculator): + """Add abi_forces and abi_stress""" + + #print("Using MACE model_path:", self.model_path) + if self.model_path is None: + raise RuntimeError("MACECalculator requires model_path e.g. nn_name='mace@FILEPATH'") + + cls = MyMACECalculator if with_delta else MACECalculator + calc = cls(model_paths=self.model_path, device="cpu", **self.calc_kwargs) #, default_dtype='float32') + + elif self.nn_type == "mace_mp": + try: + from mace.calculators import MACECalculator + from mace.calculators import mace_mp + except ImportError as exc: + raise ImportError("mace not installed. See https://github.com/ACEsuit/mace") from exc + + #class MyMACECalculator(_MyCalculator, MACECalculator): + # """Add abi_forces and abi_stress""" + + model = self.calc_kwargs.pop("model", "medium") + print("calc_kwargs:", self.calc_kwargs) + + calc = mace_mp(model=model, + #cls=MyMACECalculator, + #dispersion=False, default_dtype="float32", device='cuda' + **self.calc_kwargs + ) + #calc.__class__ = MyMACECalculator + + elif self.nn_type == "nequip": + try: + from nequip.ase.nequip_calculator import NequIPCalculator + except ImportError as exc: + raise ImportError("nequip not installed. See https://github.com/mir-group/nequip") from exc + + class MyNequIPCalculator(_MyCalculator, NequIPCalculator): + """Add abi_forces and abi_stress""" + + if self.model_path is None: + raise RuntimeError("NequIPCalculator requires model_path e.g. nn_name='nequip:FILEPATH'") + + cls = MyNequIPCalculator if with_delta else NequIPCalculator + calc = cls.from_deployed_model(model_path=self.model_path, species_to_type_name=None, **self.calc_kwargs) + + elif self.nn_type == "metatensor": + try: + from metatensor.torch.atomistic.ase_calculator import MetatensorCalculator + except ImportError as exc: + raise ImportError("metatensor not installed. See https://github.com/lab-cosmo/metatensor") from exc + + class MyMetatensorCalculator(_MyCalculator, MetatensorCalculator): + """Add abi_forces and abi_stress""" + + if self.model_path is None: + raise RuntimeError("MetaTensorCalculator requires model_path e.g. nn_name='metatensor:FILEPATH'") + + cls = MyMetatensorCalculator if with_delta else MetatensorCalculator + calc = cls(self.model_path, **self.calc_kwargs) + + elif self.nn_type == "deepmd": + try: + from deepmd.calculator import DP + except ImportError as exc: + raise ImportError("deepmd not installed. See https://tutorials.deepmodeling.com/") from exc + + class MyDpCalculator(_MyCalculator, DP): + """Add abi_forces and abi_stress""" + + if self.model_path is None: + raise RuntimeError("DeepMD calculator requires model_path e.g. nn_name='deepmd:FILEPATH'") + + cls = MyDpCalculator if with_delta else DP + calc = cls(self.model_path, **self.calc_kwargs) + + elif self.nn_type == "orb": + try: + from orb_models.forcefield import pretrained + from orb_models.forcefield.calculator import ORBCalculator + except ImportError as exc: + raise ImportError("orb not installed. See https://github.com/orbital-materials/orb-models") from exc + + + class MyOrbCalculator(_MyCalculator, ORBCalculator): + """Add abi_forces and abi_stress""" + + model_name = "orb-v1" if self.model_name is None else self.model_name + # Mapping model_name --> function returning the model e.g. {"orb-v1": orb_v1} + f = pretrained.ORB_PRETRAINED_MODELS[model_name] + model = f() + + cls = MyOrbCalculator if with_delta else OrbCalculator + calc = cls(model, **self.calc_kwargs) + + elif self.nn_type == "sevenn": + try: + from sevenn.sevennet_calculator import SevenNetCalculator + except ImportError as exc: + raise ImportError("sevenn not installed. See https://github.com/MDIL-SNU/SevenNet") from exc + + class MySevenNetCalculator(_MyCalculator, SevenNetCalculator): + """Add abi_forces and abi_stress""" + + # 7net-0, SevenNet-0, 7net-0_22May2024, 7net-0_11July2024 ... + # model_name = "7net-0" if self.model_name is None else self.model_name + # SevenNet-0 (11July2024) + # This model was trained on MPtrj. We suggest starting with this model as we found that it performs better + # than the previous SevenNet-0 (22May2024). + # Check Matbench Discovery leaderborad for this model's performance on materials discovery. For more information, click here. + + model_name = "SevenNet-0" if self.model_name is None else self.model_name + cls = MySevenNetCalculator if with_delta else SevenNetCalculator + calc = MySevenNetCalculator(model=model_name, **self.calc_kwargs) + + else: + raise ValueError(f"Invalid {self.nn_type=}") + + # Include DFTD3 vDW corrections on top of ML potential. + if self.dftd3_args is not None: + from ase.calculators.dftd3 import DFTD3 + calc = DFTD3(dft=calc, **self.dftd3_args) + + return calc + + +class MlBase(HasPickleIO): + """ + Base class for all Ml subclasses providing helper methods to + perform typical tasks such as writing files in the workdir + and object persistence via pickle. + """ + + def __init__(self, workdir, fig_ext: str = ".pdf", prefix=None, exist_ok=False): + """ + Build directory with `prefix` if `workdir` is None else create it. + If exist_ok is False (the default), a FileExistsError is raised if the target directory already exists. + + Args: + fig_ext: File extension for matplotlib figures. + """ + self.workdir = workdir_with_prefix(workdir, prefix, exist_ok=exist_ok) + self.basename_info = [] + self.fig_ext = fig_ext + + def __str__(self): + # Delegated to the subclass. + return self.to_string() + + def add_basename_info(self, basename: str, info: str) -> None: + """ + Register basename with info in the internal buffer used to generate + the README.md file in _finalize. Print WARNING if basename is already registered. + """ + if any(basename == t[0] for t in self.basename_info): + print(f"WARNING: {basename=} already in basename_info!") + self.basename_info.append((basename, info)) + + def mkdir(self, basename: str, info: str) -> Path: + """Create directory in workdir, return Path object.""" + self.add_basename_info(basename, info) + dirpath = self.workdir / basename + dirpath.mkdir() + return dirpath + + def get_path(self, basename: str, info: str) -> Path: + """Return Path in workdir.""" + self.add_basename_info(basename, info) + return self.workdir / str(basename) + + def savefig(self, basename: str, fig, info: str) -> None: + """Save matplotlib figure in workdir.""" + basename = basename + self.fig_ext + self.add_basename_info(basename, info) + fig.savefig(self.workdir / basename) + + def write_traj(self, basename: str, traj, info: str) -> None: + """Write ASE trajectory in workdir.""" + self.add_basename_info(basename, info) + with open(self.workdir / basename, "wb") as fd: + write_traj(fd, traj) + + def write_json(self, basename: str, data, info: str, indent=4, stream=None, **kwargs) -> None: + """Write data in JSON format and mirror output to `stream`.""" + self.add_basename_info(basename, info) + with open(self.workdir / basename, "wt") as fh: + json.dump(data, fh, indent=indent, cls=MontyEncoder, **kwargs) + + if stream is not None: + # Print JSON to stream as well. + print("", file=stream) + print(marquee(info, mark="="), file=stream) + print(json.dumps(data, cls=MontyEncoder, indent=4), file=stream, end="\n") + + def write_df(self, df, basename: str, info: str, fmt="csv") -> None: + """Write dataframe to file.""" + self.add_basename_info(basename, info) + filepath = self.workdir / basename + if fmt == "csv": + df.to_csv(filepath) + else: + raise ValueError(f"Invalid format {fmt=}") + + def write_script(self, basename: str, text: str, info: str) -> Path: + """ + Write text script to basename file. + """ + self.add_basename_info(basename, info) + _, ext = os.path.splitext(basename) + shebang = { + ".py": "#!/usr/bin/env python", + ".sh": "#!/bin/bash", + }[ext] + + header = "" + if "python" in shebang: + header = """ +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +""" + path = self.workdir / basename + with path.open("wt") as fh: + fh.write(f"""\ +{shebang} + +# {info} + +{header} + +{text} +""") + path.chmod(path.stat().st_mode | stat.S_IEXEC) + return path + + def _finalize(self) -> None: + """ + Called at the end of the `run` method to write the README.md file in the workdir. + """ + if self.basename_info: + # Generate README.md file. + md_lines = ["## Directory content\n",] + for path, info in self.basename_info: + path = os.path.basename(str(path)) + md_lines.append(f"- `{path}`: {info}") + + md_str = "\n".join(md_lines) + with open(self.workdir / "README.md", "wt") as fh: + fh.write(md_str) + print("\n", md_str, end=2*"\n") + + # Print WARNINGs if files do not exist. + for basename, _ in self.basename_info: + p = self.workdir / basename + if not p.exists(): + print(f"WARNING: Cannot find `{basename}` in {self.workdir}") + + print("\nResults available in:", self.workdir) + + +class MlRelaxer(MlBase): + """ + Relax structure with ASE and ML-potential. + """ + + @classmethod + def from_abinit_yaml_file(cls, filepath: str, workdir=None, prefix=None) -> MlRelaxer: + """ + Build object from a YAML file produced by ABINIT in hybrid relaxation mode. + """ + # Read yaml file produced by Abinit: + # + # iteration_state: {dtset: 1, itime: 1, icycle: 1, } + # comment : Summary of ground state results + # lattice_vectors: + # - [ -5.1690735, -5.1690735, 0.0000000, ] + # - [ -5.1690735, 0.0000000, -5.1690735, ] + # - [ 0.0000000, -5.1690735, -5.1690735, ] + # lattice_lengths: [ 7.31017, 7.31017, 7.31017, ] + # lattice_angles: [ 60.000, 60.000, 60.000, ] # degrees, (23, 13, 12) + # lattice_volume: 2.7622826E+02 + # convergence: {deltae: -1.926E-11, res2: 3.761E-10, residm: 1.588E-05, diffor: null, } + # etotal : -8.46248947E+00 + # entropy : 0.00000000E+00 + # fermie : 1.42500714E-01 + # cartesian_stress_tensor: # hartree/bohr^3 + # - [ 3.06384355E-06, 0.00000000E+00, 0.00000000E+00, ] + # - [ 0.00000000E+00, 3.06384355E-06, 0.00000000E+00, ] + # - [ 0.00000000E+00, 0.00000000E+00, 3.06384355E-06, ] + # pressure_GPa: -9.0141E-02 + # xred : + # - [ 5.0000E-01, 5.0000E-01, 5.0000E-01, Si] + # - [ 2.5000E-01, 2.5000E-01, 2.5000E-01, Si] + # cartesian_forces: # hartree/bohr + # - [ 5.08705549E-32, 5.08705549E-32, -1.52611665E-31, ] + # - [ -5.08705549E-32, -5.08705549E-32, 1.52611665E-31, ] + # force_length_stats: {min: 1.68718543E-31, max: 1.68718543E-31, mean: 1.68718543E-31, } + # format_version: 1 + # natom: 2 + # ionmov: 1 + # optcell: 2 + # nn_name: matgl + # prtvol: 1 + + doc = yaml_safe_load_path(filepath) #; print(doc) + + format_version = doc.pop("format_version") + natom = doc.pop("natom") + ntypat = doc.pop("ntypat") + typat = np.array(doc.pop("typat"), dtype=int) + znucl = np.array(doc.pop("znucl"), dtype=float) + rprim = np.array(doc.pop("lattice_vectors")) + xred = np.array(doc.pop("xred")) + xred = np.array(xred[:,:3], dtype=float) + # Read forces and stress in a.u. and convert. + abi_cart_forces = np.array(doc.pop("cartesian_forces")) * abu.Ha_eV / abu.Bohr_Ang + abi_cart_stresses = np.array(doc.pop("cartesian_stress_tensor")) * abu.Ha_eV / (abu.Bohr_Ang**3) + + ionmov = doc.pop("ionmov") + optcell = doc.pop("optcell") + iatfix = doc.pop("iatfix") # [3,natom] array or None if unconstrained. + strtarget = np.array(doc.pop("strtarget"), dtype=float) + nn_name = doc.get("nn_name", "chgnet") + verbose = doc.pop("prtvol") + + structure = Structure.from_abivars( + acell=3*[1.0], + rprim=rprim, + typat=typat, + xred=xred, + ntypat=ntypat, + znucl=znucl, + ) #; print(structure) + + atoms = structure.to_ase_atoms() + if iatfix is not None: + raise NotImplementedError() + #aseml.fix_atoms(atoms, fix_inds=fix_inds, fix_symbols=fix_symbols) + + ###################################################################### + # Consistency check as not all the Abinit options are supported by ASE + ###################################################################### + relax_mode = RX_MODE.cell if optcell != 0 else RX_MODE.ions + + allowed_optcells = (0, 2) + if optcell not in allowed_optcells: + raise ValueError(f"{optcell=} not in {allowed_optcells=}") + + # Target pressure is taken from strtarget. + # The components of the stress tensor are stored in a.u. according to: + # (1,1) → 1; (2,2) → 2; (3,3) → 3; (2,3) → 4; (3,1) → 5; (1,2) → 6. + pressure = -strtarget[0] * abu.HaBohr3_GPa + if np.any(strtarget[:3] != strtarget[0]): + raise ValueError(f"Only hydrostatic stress in strtarget is supported. {strtarget=}") + if np.any(strtarget[3:] != 0.0): + raise ValueError(f"Off diagonal components in strtarget are not supported. {strtarget=}") + + # Set internal parameters according to YAML file and build object. + fmax, steps, optimizer = 0.01, 500, "BFGS" + + new = cls(atoms, relax_mode, fmax, pressure, steps, optimizer, nn_name, verbose, + workdir=workdir, prefix=prefix) + + # Set delta forces and delta stress if the script is called by ABINIT. + + return new + + def write_output_file_for_abinit(self) -> Path: + """ + Write output file with results in a format that can be parsed by ABINIT. + Return path to the output file. + """ + filepath = self.get_path("ABI_MLRELAXER.out", "Output file for hybrid relaxation with ABINIT.") + format_version = 1 + + def fmt_vec3(vec) -> str: + return "{:.12e} {:.12e} {:.12e}".format(*vec) + + with open(filepath, "wt") as fh: + fh.write("%i # format_version\n" % format_version) + fh.write("%i # natom\n" % len(self.atoms)) + # Write lattice vectors. + rprimd = self.atoms.cell.array * abu.Ang_Bohr + for i in range(3): + fh.write("%s # lattice vector %i\n" % (fmt_vec3(rprimd[i]), i+1)) + # Write relaxed fractional coordinates. + fh.write("xred\n") + for atom in self.atoms: + fh.write(fmt_vec3(atom.scaled_position) + "\n") + + return filepath + + def __init__(self, atoms: Atoms, relax_mode, fmax, pressure, steps, optimizer, nn_name, verbose, + workdir, prefix=None): + """ + Args: + atoms: ASE atoms to relax. + relax_mode: + fmax: tolerance for relaxation convergence. Here fmax is a sum of force and stress forces. + pressure: Target pressure. + steps: max number of steps for relaxation. + optimizer: name of the ASE optimizer to use for relaxation. + nn_name: String defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + """ + super().__init__(workdir, prefix) + self.atoms = atoms + self.relax_mode = relax_mode + RX_MODE.validate(relax_mode) + self.fmax = fmax + self.steps = steps + self.optimizer = optimizer + self.pressure = pressure + self.nn_name = nn_name + self.verbose = verbose + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + return f"""\ + +{self.__class__.__name__} parameters: + + relax_mode = {self.relax_mode} + fmax = {self.fmax} + steps = {self.steps} + optimizer = {self.optimizer} + pressure = {self.pressure} + nn_name = {self.nn_name} + workdir = {self.workdir} + verbose = {self.verbose} + +=== ATOMS === + +{self.atoms} + +""" + + def run(self): + """Run structural relaxation.""" + workdir = self.workdir + self.atoms.calc = CalcBuilder(self.nn_name).get_calculator() + # TODO: Here I should add the ab-initio forces/stress to the calculator to correct the ML ones + + print(f"Relaxing structure with relax mode: {self.relax_mode} ...") + relax_kws = dict(calculator=self.atoms.calc, + optimizer=self.optimizer, + relax_mode=self.relax_mode, + fmax=self.fmax, + pressure=self.pressure, + steps=self.steps, + traj_path=self.get_path("relax.traj", "ASE relaxation trajectory"), + verbose=1, + ) + + relax = relax_atoms(self.atoms, **relax_kws) + relax.summarize(tags=["unrelaxed", "relaxed"]) + + print(relax.to_string(verbose=self.verbose)) + + # Write files with final structure and dynamics. + formats = ["poscar",] + outpath_fmt = write_atoms(self.atoms, workdir, self.verbose, formats=formats) + for outp, fmt in outpath_fmt: + self.add_basename_info(outp.name, f"Final structure in {fmt} format.") + + label = "xdatcar with structural relaxation" + write_vasp_xdatcar(self.get_path("XDATCAR", label), relax.traj, label=label) + + # Write output file for Abinit + self.write_output_file_for_abinit() + + self._finalize() + return relax + + +def restart_md(traj_filepath, atoms, verbose) -> tuple[bool, int]: + """ + Try to restart a MD run from an existent trajectory file. + Return: (restart_bool, len_traj) + """ + traj_filepath = str(traj_filepath) + if not os.path.exists(traj_filepath): + if verbose: print("Starting MD run from scratch.") + return False, 0 + + print(f"Restarting MD run from the last image of the trajectory file: {traj_filepath}") + traj = read(traj_filepath, index=":") + last = traj[-1] + if verbose: + print("input_cell:\n", atoms.cell) + print("last_cell:\n", last.cell) + print("input_positions:\n", atoms.positions) + print("last_positions:\n", last.positions) + print("input_velocites:\n", atoms.get_velocities()) + print("last_velocites:\n", last.get_velocities()) + + atoms.set_cell(last.cell, scale_atoms=False, apply_constraint=True) + atoms.set_positions(last.positions) + atoms.set_velocities(last.get_velocities()) + #atoms.set_initial_magnetic_moments(magmoms=None) + return True, len(traj) + + +class AseMdLog(TextFile): + """ + Postprocessing tool for the log file produced by ASE MD. + + .. rubric:: Inheritance Diagram + .. inheritance-diagram:: AseMdLog + """ + + time_key = "Time[ps]" + + @lazy_property + def df(self) -> pd.DataFrame: + """ + DataFrame with the results. + """ + # Here we implement the logic required to take into account a possible restart. + begin_restart = False + d = {} + add_time = 0.0 + with open(self.filepath, mode="rt") as fh: + for i, line in enumerate(fh): + if i == 0: + # Extract column names from the header and init dict. + columns = line.split() + d = {c: [] for c in columns} + continue + + if line.startswith(self.time_key): + # Found new header denoting restart. + begin_restart = True + continue + + if begin_restart: + # First iteration after restart. Set add_time and kkip it. + begin_restart = False + add_time = d[self.time_key][-1] + continue + + tokens = [float(tok) for tok in line.split()] + tokens[0] += add_time + for c, v in zip(columns, tokens): + d[c].append(v) + + return pd.DataFrame(d) + + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosity level verbose.""" + return "=== Summary statistics ===\n" + self.df.describe().to_string() + + @add_fig_kwargs + def plot(self, **kwargs) -> Figure: + """ + Plot all the keys in the dataframe. + """ + ynames = [k for k in self.df.keys() if k != self.time_key] + axes = self.df.plot.line(x=self.time_key, y=ynames, subplots=True, grid=True) + return axes[0].get_figure() + + @add_fig_kwargs + def histplot(self, **kwargs) -> Figure: + """ + Histogram plot. + """ + ynames = [k for k in self.df.keys() if k != self.time_key] + + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=len(ynames), ncols=1, + sharex=False, sharey=False, squeeze=True) + + for yname, ax in zip(ynames, ax_list): + self.df.plot.hist(column=[yname], ax=ax, grid=True) + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + Generate a predefined list of matplotlib figures with minimal input from the user. + """ + yield self.plot(show=False) + yield self.histplot(show=False) + + +class MlMd(MlBase): + """ + Perform MD calculations with ASE and ML potential. + """ + + def __init__(self, atoms: Atoms, temperature, pressure, timestep, steps, loginterval, + ensemble, nn_name, verbose, workdir, prefix=None): + """ + Args: + atoms: ASE atoms. + temperature: Temperature in K + pressure: + timestep: + steps: Number of steps. + loginterval: + ensemble: + nn_name: String defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + workdir: Working directory. + prefix: + """ + super().__init__(workdir, prefix, exist_ok=True) + self.atoms = atoms + self.temperature = temperature + self.pressure = pressure + self.timestep = timestep + self.steps = steps + self.loginterval = loginterval + self.ensemble = ensemble + self.nn_name = nn_name + self.verbose = verbose + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + return f"""\ + +{self.__class__.__name__} parameters: + + temperature = {self.temperature} K + pressure = {self.pressure} + timestep = {self.timestep} fs + steps = {self.steps} + loginterval = {self.loginterval} + ensemble = {self.ensemble} + nn_name = {self.nn_name} + workdir = {self.workdir} + verbose = {self.verbose} + +=== ATOMS === + +{self.atoms} + +""" + + def run(self) -> None: + """Run MD""" + workdir = self.workdir + traj_file = self.get_path("md.traj", "ASE MD trajectory") + logfile = self.get_path("md.aselog", "ASE MD log file") + + # Write JSON files with parameters. + md_dict = dict( + temperature=self.temperature, + timestep=self.timestep, + pressure=self.pressure, + steps=self.steps, + loginterval=self.loginterval, + ensemble=self.ensemble, + nn_name=self.nn_name, + workdir=str(self.workdir), + verbose=self.verbose, + ) + self.write_json("md.json", md_dict, info="JSON file with ASE MD parameters") + + append_trajectory, len_traj = restart_md(traj_file, self.atoms, self.verbose) + self.atoms.calc = CalcBuilder(self.nn_name).get_calculator() + #forces = self.atoms.get_forces() + + if not append_trajectory: + print("Setting momenta corresponding to the input temperature using MaxwellBoltzmannDistribution.") + MaxwellBoltzmannDistribution(self.atoms, temperature_K=self.temperature) + else: + prev_steps = self.steps + self.steps = self.steps - (len_traj * self.loginterval) + if self.steps <= 0: + raise RuntimeError(f"Have already performed {prev_steps} iterations!") + + md = MolecularDynamics( + atoms=self.atoms, + ensemble=self.ensemble, + temperature=self.temperature, # K + timestep=self.timestep, # fs, + pressure=self.pressure, + trajectory=str(traj_file), # save trajectory to md.traj + logfile=str(logfile), # log file for MD + loginterval=self.loginterval, # interval for record the log + append_trajectory=append_trajectory, # If True, the new structures are appended to the trajectory + ) + + self.write_script("ase_diffusion_coeff.py", text=f"""\ +from ase.md.analysis import DiffusionCoefficient +from ase.io import read + +# For an MD simulation with timestep of N, and images written every M iterations, our timestep here is N * M. +timestep = {self.timestep} * {self.loginterval} +traj = read("{str(traj_file)}", index=":") +dc = DiffusionCoefficient(traj, timestep, atom_indices=None, molecule=False) +dc.calculate(ignore_n_images=0, number_of_segments=1) +dc.print_data() +dc.plot(ax=None, show=True) +""", info="Python script to compute and visualize diffusion coefficients with ASE.") + + self.write_script("plot_energies.py", text=f"""\ +from abipy.ml.aseml import AseMdLog +log = AseMdLog("{str(logfile)}") +log.plot(savefig=None) +""", info="Python script to visualize energies vs time.") + + md.run(steps=self.steps) + + +class _MlNebBase(MlBase): + """ + Base class for Neb calculations + """ + + def postprocess_images(self, images): + """ + post-process ASE NEB calculation. + See + """ + from ase.neb import NEBTools + nebtools = NEBTools(images) + + # get the actual maximum force at this point in the simulation. + max_force = nebtools.get_fmax() + # get the calculated barrier and the energy change of the reaction. + ef, de = nebtools.get_barrier() + + neb_data = dict(max_force=float(max_force), + energies_images=[float(image.get_potential_energy()) for image in images], + barrier_with_fit=float(ef), + energy_change_with_fit=float(de), + ) + + # get the barrier without any interpolation between highest images. + ef, de = nebtools.get_barrier(fit=False) + neb_data.update(barrier_without_fit=float(ef), + energy_change_without_fit=float(de), + nn_name=str(self.nn_name), + ) + + self.write_json("neb_data.json", neb_data, info="JSON document with NEB results", + stream=sys.stdout if self.verbose else None) + + # create a figure like that coming from ase-gui. + self.savefig("neb_barrier", nebtools.plot_band(), info="Figure with NEB barrier") + return neb_data + + def read_neb_data(self) -> dict: + """ + Read results from the JSON file produced by postprocess_images + """ + with open(self.workdir / 'neb_data.json', "rt") as fh: + return json.load(fh) + + +class MlGsList(_MlNebBase): + """ + Perform ground-state calculations for a list of atoms with ASE and ML-potential. + Inherits from _MlNebBase so that we can reuse postprocess_images and read_neb_data. + """ + + def __init__(self, atoms_list: list[Atoms], nn_name, verbose, + workdir, prefix=None): + """ + Args: + atoms_list: List of ASE atoms + nn_name: String defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + """ + super().__init__(workdir, prefix) + self.atoms_list = atoms_list + self.nn_name = nn_name + self.verbose = verbose + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + return f"""\ + +{self.__class__.__name__} parameters: + + nn_name = {self.nn_name} + workdir = {self.workdir} + verbose = {self.verbose} + +""" + + def run(self) -> None: + """Run list of GS calculations.""" + workdir = self.workdir + + results = [] + for ind, atoms in enumerate(self.atoms_list): + write_vasp(self.workdir / f"IND_{ind}_POSCAR", atoms, label=None) + atoms.calc = CalcBuilder(self.nn_name).get_calculator() + results.append(AseResults.from_atoms(atoms)) + + write_vasp_xdatcar(self.workdir / "XDATCAR", self.atoms_list, label="XDATCAR with list of atoms.") + + self.postprocess_images(self.atoms_list) + self._finalize() + + +class MlNeb(_MlNebBase): + """ + Perform NEB calculation with ASE and ML potential. + """ + + def __init__(self, initial_atoms: Atoms, final_atoms: Atoms, + nimages, neb_method, climb, optimizer, relax_mode, fmax, pressure, + nn_name, verbose, workdir, prefix=None): + """ + Args: + initial_atoms: initial ASE atoms. + final_atoms: final ASE atoms. + nimages: Number of images. + neb_method: + climb: + optimizer: name of the ASE optimizer to use for relaxation. + relax_mode: "ions" to relax ions only, "cell" for ions + cell, "no" for no relaxation. + fmax: tolerance for relaxation convergence. Here fmax is a sum of force and stress forces. + pressure: Target pressure + nn_name: String defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + workdir: + prefix: + """ + super().__init__(workdir, prefix) + self.initial_atoms = get_atoms(initial_atoms) + self.final_atoms = get_atoms(final_atoms) + self.nimages = nimages + self.neb_method = neb_method + if self.neb_method not in ASENEB_METHODS: + raise ValueError(f"{self.neb_method} not in {ASENEB_METHODS}") + self.climb = climb + self.optimizer = optimizer + self.relax_mode = relax_mode + RX_MODE.validate(self.relax_mode) + self.fmax = fmax + self.pressure = pressure + self.nn_name = nn_name + self.verbose = verbose + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + s = f"""\ + +{self.__class__.__name__} parameters: + + nimages = {self.nimages} + neb_method = {self.neb_method} + climb = {self.climb} + optimizer = {self.optimizer} + pressure = {self.pressure} + relax_mode = {self.relax_mode} + fmax = {self.fmax} + nn_name = {self.nn_name} + workdir = {self.workdir} + verbose = {self.verbose} + +=== INITIAL ATOMS === + +{self.initial_atoms} + +=== FINAL ATOMS === + +{self.final_atoms} + +""" + if verbose: + #s += scompare_two_atoms("initial image", self.initial_atoms, "final image", self.final_atoms) + file = io.StringIO() + diff_two_structures("initial image", self.initial_atoms, + "final image", self.final_atoms, fmt="poscar", file=file) + s += "\n" + file.getvalue() + return s + + def run(self) -> None: + """Run NEB""" + workdir = self.workdir + initial_atoms, final_atoms = self.initial_atoms, self.final_atoms + calculator = CalcBuilder(self.nn_name).get_calculator() + + if self.relax_mode != RX_MODE.no: + relax_kws = dict(calculator=calculator, + optimizer=self.optimizer, + relax_mode=self.relax_mode, + fmax=self.fmax, + pressure=self.pressure, + verbose=self.verbose, + ) + + print(f"Relaxing initial image with relax mode: {self.relax_mode} ...") + relax = relax_atoms(initial_atoms, + traj_path=self.get_path("initial_relax.traj", "ASE Relaxation of the first image"), + **relax_kws) + + relax.summarize(tags=["initial_unrelaxed", "initial_relaxed"]) + + print(f"Relaxing final image with relax mode: {self.relax_mode} ...") + relax = relax_atoms(final_atoms, + traj_path=self.get_path("final_relax.traj", "ASE Relaxation of the last image"), + **relax_kws) + + relax.summarize(tags=["final_unrelaxed", "final_relaxed"]) + + # Generate several instances of the calculator. It is probably fine to have just one, but just in case... + calculators = [CalcBuilder(self.nn_name).get_calculator() for i in range(self.nimages)] + neb = make_ase_neb(initial_atoms, final_atoms, self.nimages, calculators, self.neb_method, self.climb, + method='linear', mic=False) + + write_vasp_xdatcar(workdir / "INITIAL_NEB_XDATCAR", neb.images, + label="XDATCAR with initial NEB images.") + + # Optimize + opt_class = ase_optimizer_cls(self.optimizer) + nebtraj_file = str(workdir / "neb.traj") + logfile = self.get_path("neb.log", "Log file of NEB calculation.") + optimizer = opt_class(neb, trajectory=nebtraj_file, logfile=logfile) + print("Starting NEB algorithm with optimizer:", opt_class, "...") + optimizer.run(fmax=self.fmax) + + # To read the last nimages atoms e.g. 5: read('neb.traj@-5:') + images = ase.io.read(f"{str(nebtraj_file)}@-{self.nimages}:") + write_vasp_xdatcar(workdir / "FINAL_NEB_XDATCAR", images, + label="XDATCAR with final NEB images.") + + # write vasp poscar files for each image in vasp_neb + dirpath = self.mkdir("VASP_NEB", info="Directory with POSCAR files for each NEB image.") + for im, image in enumerate(images): + subdir = dirpath / str(im).zfill(2) + subdir.mkdir() + ase.io.write(subdir / "POSCAR", image, format="vasp") + + neb_data = self.postprocess_images(images) + + self.write_script("ase_gui.sh", text=f"""\ +# To visualize the results, use: + +ase gui "{nebtraj_file}@-{self.nimages}" + +# then select `tools->neb` in the gui. +""", info="Shell script to visualize NEB results with ase gui") + + self.write_script("ase_nebplot.sh", text=f"""\ +# This command create a series of plots showing the progression of the neb relaxation + +ase nebplot --share-x --share-y --nimages {self.nimages} "{nebtraj_file}" +""", info="Shell script to create a series of plots showing the progression of the neb relaxation") + + self._finalize() + + +class MultiMlNeb(_MlNebBase): + """ + Perform a multi-NEB calculation with ASE and ML potential. + """ + + def __init__(self, atoms_list: list[Atoms], nimages, neb_method, climb, optimizer, relax_mode, fmax, pressure, + nn_name, verbose, workdir, prefix=None): + """ + Args: + atoms_list: List of ASE atoms. + nimages: Number of NEB images. + neb_method: + climb: + optimizer: + relax_mode: "ions" to relax ions only, "cell" for ions + cell, "no" for no relaxation. + fmax: tolerance for relaxation convergence. Here fmax is a sum of force and stress forces. + pressure: + nn_name: String defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + workdir: + prefix: + """ + super().__init__(workdir, prefix) + self.atoms_list = atoms_list + self.nimages = nimages + self.neb_method = neb_method + self.climb = climb + self.optimizer = optimizer + self.relax_mode = relax_mode + RX_MODE.validate(self.relax_mode) + self.fmax = fmax + self.pressure = pressure + self.nn_name = nn_name + self.verbose = verbose + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + s = f"""\ + +{self.__class__.__name__} parameters: + + nimages = {self.nimages} + neb_method = {self.neb_method} + climb = {self.climb} + optimizer = {self.optimizer} + relax_mode = {self.relax_mode} + fmax = {self.fmax} + pressure = {self.pressure} + nn_name = {self.nn_name} + workdir = {self.workdir} + verbose = {self.verbose} +""" + return s + + def run(self) -> None: + """ + Run multi NEB calculations. + """ + workdir = self.workdir + atoms_list = self.atoms_list + camp_dirs = [workdir / f"CAMP_{i}" for i in range(len(atoms_list) - 1)] + + energies = [] + for i in range(len(atoms_list) - 1): + ml_neb = MlNeb(atoms_list[i], atoms_list[i+1], + self.nimages, self.neb_method, self.climb, self.optimizer, + self.relax_mode, self.fmax, self.pressure, self.nn_name, self.verbose, camp_dirs[i]) + ml_neb.run() + + # Read energies from json files and remove first/last point depending on CAMP index.. + data = ml_neb.read_neb_data() + enes = data['energies_images'] + if i == 0: enes = enes[:-1] + if i == len(camp_dirs) - 1: enes = enes[1:] + energies.extend(enes) + + #print("energies", energies) + ax, fig, plt = get_ax_fig_plt() + ax.plot(energies, marker="o") + ax.set_xlabel('Path index') + ax.set_ylabel('Energy [eV]') + ef = max(energies) - energies[0] + er = max(energies) - energies[-1] + de = energies[-1] - energies[0] + ax.set_title(r'$E_\mathrm{{f}} \approx$ {:.3f} eV; ' + r'$E_\mathrm{{r}} \approx$ {:.3f} eV; ' + r'$\Delta E$ = {:.3f} eV'.format(ef, er, de)) + self.savefig("neb_barrier", fig, info="Figure with NEB barrier") + + self._finalize() + + +def make_ase_neb(initial: Atoms, final: Atoms, nimages: int, + calculators: list, neb_method: str, climb: bool, + method='linear', mic=False) -> NEB: + """ + Make a NEB band consisting of nimages. See https://databases.fysik.dtu.dk/ase/ase/neb.html + + Args: + initial: First point. + final: Last point. + nimages: Number of images. + calculators: List of ASE calculators. + neb_method: String defining NEB algorithm. + climb: True to use a climbing image. + method: str + Method by which to interpolate: 'linear' or 'idpp'. + linear provides a standard straight-line interpolation, while idpp uses an image-dependent pair potential. + mic: Map movement into the unit cell by using the minimum image convention. + """ + images = [initial] + images += [initial.copy() for i in range(nimages - 2)] + images += [final] + + apply_constraint = None + if initial.constraints: + if not final.constraints: + raise RuntimeError("Both initial and final points should have constraints!") + if len(initial.constraints) != len(final.constraints): + raise RuntimeError("different number of constraints in initial and final") + for ci, cf in zip(initial.constraints, final.constraints): + if ci.__class__ != cf.__class__: + raise RuntimeError(f"Constraints in initial and final points should belong to the same class: {ci}, {cf}") + apply_constraint = True + + # Set calculators + for image, calculator in zip(images, calculators): #, strict=True): + image.calc = calculator + + # Compute energy/forces for the extrema in order to have them in the trajectory. + _ = AseResults.from_traj_inds(images, 0, -1) + + neb = NEB(images, method=neb_method, climb=climb) + # Interpolate linearly the positions of the middle images + neb.interpolate(method=method, mic=mic, apply_constraint=apply_constraint) + + return neb + + +class MlOrderer(MlBase): + """ + Order a disordered structure using pymatgen and ML potential. + """ + def __init__(self, structure, max_ns, optimizer, relax_mode, fmax, pressure, steps, nn_name, verbose, + workdir, prefix=None): + """ + Args: + structure: Abipy Structure object or any object that can be converted to structure. + max_ns: + optimizer: + relax_mode: + fmax: + pressure: + steps: + nn_name: String defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + workdir: + prefix: + """ + super().__init__(workdir, prefix) + self.structure = Structure.as_structure(structure) + self.max_ns = max_ns + self.optimizer = optimizer + self.relax_mode = relax_mode + RX_MODE.validate(self.relax_mode) + self.fmax = fmax + self.pressure = pressure + self.steps = steps + self.nn_name = nn_name + self.verbose = verbose + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + s = f"""\ + +{self.__class__.__name__} parameters: + + max_ns = {self.max_ns} + optimizer = {self.optimizer} + relax_mode = {self.relax_mode} + fmax = {self.fmax} + pressure = {self.pressure} + steps = {self.steps} + nn_name = {self.nn_name} + workdir = {self.workdir} + verbose = {self.verbose} + + +=== STRUCTURE === + +{self.structure} + +""" + return s + + def run(self) -> None: + """ + Run MlOrderer. + """ + workdir = self.workdir + from pymatgen.core import Lattice + specie = {"Cu0+": 0.5, "Au0+": 0.5} + structure = Structure.from_spacegroup("Fm-3m", Lattice.cubic(3.677), [specie], [[0, 0, 0]]) + #structure = self.structure + #print(structure) + + # Each dict in d_list contains the following entries: + #{ + # "energy": output[0], + # "energy_above_minimum": (output[0] - lowest_energy) / num_atoms, + # "structure": s_copy.get_sorted_structure(), + #} + from pymatgen.transformations.standard_transformations import OrderDisorderedStructureTransformation + trans = OrderDisorderedStructureTransformation() + d_list = trans.apply_transformation(structure, return_ranked_list=max(self.max_ns, 2)) + print("Number of structures after OrderedDisordered:", len(d_list)) + if self.verbose > 2: + for d in d_list: + print(d) + + # Note that the OrderDisorderedTransformation (with a sufficiently large return_ranked_list parameter) + # returns all orderings, including duplicates without accounting for symmetry. + # A computed ewald energy is returned together with each structure. + # To eliminate duplicates, the best way is to use StructureMatcher's group_structures method + from pymatgen.analysis.structure_matcher import StructureMatcher + matcher = StructureMatcher() + + # Add ew_pos index to structures to faciliatate reindexing after sorting. + ew_structures = [d["structure"] for d in d_list] + for ew_pos, s in enumerate(ew_structures): + s.ew_pos = ew_pos + ew_energies = [d["energy"] for d in d_list] + ew_energies_above_minimum = [d["energy_above_minimum"] for d in d_list] + + groups = matcher.group_structures(ew_structures) + print("Number of structures after StructureMatcher:", len(groups)) + if self.verbose > 2: + for group in groups: + print(group[0]) + + calculator = CalcBuilder(self.nn_name).get_calculator() + + if self.relax_mode != RX_MODE.no: + print(f"Relaxing structures with relax mode: {self.relax_mode}") + relax_kws = dict(calculator=calculator, + optimizer=self.optimizer, + relax_mode=self.relax_mode, + fmax=self.fmax, + pressure=self.pressure, + return_trajectory=True, + verbose=self.verbose, + ) + + rows = [] + for group in groups: + s = group[0] + #print("s.ew_pos:", s.ew_pos) + #relax = relax_atoms(self.atoms, **relax_kws) + rel_s, trajectory = s.relax(**relax_kws) + r0, r1 = AseResults.from_traj_inds(trajectory, 0, -1) + df = dataframe_from_results_list(["unrelaxed", "relaxed"], [r0, r1]) + print(df, end=2*"\n") + + rows.append(dict( + ew_unrelaxed_energy=ew_energies[s.ew_pos], + unrelaxed_energy=r0.ene, + relaxed_energy=r1.ene, + relaxed_structure=rel_s, + #unrelaxed_pressure=r0.pressure + #relaxed_pressure=r1.pressure + )) + + df = pd.DataFrame(rows).sort_values("relaxed_energy") + print(df.drop("relaxed_structure", axis=1)) + + # TODO: Post-process + self._finalize() + + +class MlValidateWithAbinitio(_MlNebBase): + """ + Compare ab-initio energies, forces and stresses with ML results. + """ + + def __init__(self, filepaths, nn_names, traj_range, verbose, workdir, prefix=None): + """ + Args: + filepaths: List of file produced by the ab-initio code with energies, forces and stresses. + nn_names: String or list of strings defining the NN potential. See also CalcBuilder. + traj_range: Trajectory range. None to include all steps. + verbose: Verbosity level. + workdir: Working directory. + """ + super().__init__(workdir, prefix) + self.filepaths = list_strings(filepaths) + self.traj_range = traj_range + if self.traj_range is not None and not isinstance(self.traj_range, range): + raise TypeError(f"traj_range should be either None or range instance while got {type(traj_range)}") + + self.nn_names = list_strings(nn_names) + self.verbose = verbose + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + return f"""\ + +{self.__class__.__name__} parameters: + + filepaths = {self.filepaths} + traj_range = {self.traj_range} + nn_names = {self.nn_names} + workdir = {self.workdir} + verbose = {self.verbose} + +""" + + def get_abinitio_results(self) -> list[AseResults]: + results = [] + for filepath in self.filepaths: + results.extend(self._get_results_filepath(filepath)) + return results + + def _get_results_filepath(self, filepath) -> list[AseResults]: + """ + Extract ab-initio results from self.filepath according to the file extension. + Supports: + - ABINIT HIST.nc + - vasprun.xml + - ASE extended xyz. + """ + basename = os.path.basename(filepath) + abi_results = [] + from fnmatch import fnmatch + + if basename.endswith("_HIST.nc"): + # Abinit HIST file produced by a structural relaxation. + from abipy.dynamics.hist import HistFile + with HistFile(filepath) as hist: + # etotals in eV units. + etotals = hist.etotals + num_steps = len(hist.etotals) + if self.traj_range is None: self.traj_range = range(0, num_steps, 1) + print(f"Reading trajectory from {filepath=}, {num_steps=}, {self.traj_range=}") + forces_hist = hist.r.read_cart_forces(unit="eV ang^-1") + # GPa units. + stress_cart_tensors, pressures = hist.reader.read_cart_stress_tensors() + for istep, (structure, ene, stress, forces) in enumerate(zip(hist.structures, etotals, stress_cart_tensors, forces_hist)): + if istep not in self.traj_range: continue + magmoms = None + r = AseResults(atoms=get_atoms(structure), ene=float(ene), forces=forces, stress=stress, magmoms=magmoms) + abi_results.append(r) + + elif fnmatch(basename, "vasprun*.xml*"): + # Assume Vasprun file with structural relaxation or MD results. + #with warnings.catch_warnings(): + #warnings.simplefilter("ignore") + vasprun = Vasprun(filepath) + num_steps = len(vasprun.ionic_steps) + print(f"Reading trajectory from {filepath=}, {num_steps=}, {self.traj_range=}") + + for istep, step in enumerate(vasprun.ionic_steps): + #print(step.keys()) + if istep not in self.traj_range: continue + structure, forces, stress = step["structure"], step["forces"], step["stress"] + ene = get_energy_step(step) + magmoms = None + r = AseResults(atoms=get_atoms(structure), ene=float(ene), forces=forces, stress=stress, magmoms=magmoms) + abi_results.append(r) + + elif fnmatch(basename, "*.xyz"): + # Assume ASE extended xyz file. + atoms_list = read(filepath, index=":") + num_steps = len(atoms_list) + if self.traj_range is None: self.traj_range = range(0, num_steps, 1) + print(f"Reading trajectory from {filepath=}, {num_steps=}, {self.traj_range=}") + for istep, atoms in enumerate(atoms_list): + if istep not in self.traj_range: continue + r = AseResults.from_atoms(atoms) + abi_results.append(r) + + else: + raise ValueError(f"Don't know how to extract data from: {filepath=}") + + return abi_results + + def run(self, nprocs, print_dataframes=True) -> AseResultsComparator: + """ + Run calculation with nprocs processes. + """ + workdir = self.workdir + + labels = ["abinitio"] + abi_results = self.get_abinitio_results() + results_list = [abi_results] + ntasks = len(results_list) + + if nprocs <= 0 or nprocs is None: + nprocs = get_max_nprocs() + + #print(f"Using {nprocs=}") + #from abipy.relax_scanner import nprocs_for_ntasks + #nprocs = nprocs_for_ntasks(nprocs, ntasks, title="Begin relaxations") + #p = pool_nprocs_pmode(ntasks, pmode=pmode) + #using_msg = f"Reading {len(directories)} abiml directories {p.using_msg}" + + for nn_name in self.nn_names: + # Use ML to compute quantities with the same ab-initio trajectory. + labels.append(nn_name) + if nprocs == 1: + calc = as_calculator(nn_name) + items = [AseResults.from_atoms(res.atoms, calc=calc) for res in abi_results] + else: + func = _GetAseResults(nn_name) + with Pool(processes=nprocs) as pool: + items = pool.map(func, abi_results) + + results_list.append(items) + + comp = AseResultsComparator.from_ase_results(labels, results_list) + comp.pickle_dump_and_write_script(self.workdir) + + if print_dataframes: + # Write dataframes to disk in CSV format. + forces_df = comp.get_forces_dataframe() + self.write_df(forces_df, "cart_forces.csv", info="CSV file with cartesian forces.") + stress_df = comp.get_stress_dataframe() + self.write_df(stress_df, "voigt_stress.csv", info="CSV file with cartesian stresses in Voigt notation") + + self._finalize() + return comp + + +class _GetAseResults: + """ + Callable class used to parallelize the computation of AseResults with multiprocessing + """ + + def __init__(self, nn_name): + self.nn_name = nn_name + self.calc = None + + def __call__(self, abi_res): + if self.calc is None: + self.calc = as_calculator(self.nn_name) + return AseResults.from_atoms(abi_res.atoms, calc=self.calc) + + +class MolecularDynamics: + """ + Molecular dynamics class + Based on https://github.com/materialsvirtuallab/m3gnet/blob/main/m3gnet/models/_dynamics.py + """ + + def __init__( + self, + atoms: Atoms, + ensemble: str = "nvt", + temperature: int = 300, + timestep: float = 1.0, + pressure: float = 1.01325 * units.bar, + taut: Optional[float] = None, + taup: Optional[float] = None, + compressibility_au: Optional[float] = None, + trajectory: Optional[Union[str, Trajectory]] = None, + logfile: Optional[str] = None, + loginterval: int = 1, + append_trajectory: bool = False, + ): + """ + Args: + atoms (Atoms): atoms to run the MD + ensemble (str): choose from 'nvt' or 'npt'. NPT is not tested, use with extra caution + temperature (float): temperature for MD simulation, in K + timestep (float): time step in fs + pressure (float): pressure in eV/A^3 + taut (float): time constant for Berendsen temperature coupling + taup (float): time constant for pressure coupling + compressibility_au (float): compressibility of the material in A^3/eV + trajectory (str or Trajectory): Attach trajectory object + logfile (str): open this file for recording MD outputs + loginterval (int): write to log file every interval steps + append_trajectory (bool): Whether to append to prev trajectory + """ + self.atoms = atoms + + if taut is None: + taut = 100 * timestep * units.fs + if taup is None: + taup = 1000 * timestep * units.fs + + if compressibility_au is None: + # The compressibility of the material, water 4.57E-5 bar-1, in bar-1 + compressibility_au = 4.57E-5 / (1e5 * units.Pascal) + + self.ensemble = ensemble.lower() + + if self.ensemble == "nvt": + + self.dyn = NVTBerendsen( + self.atoms, + timestep * units.fs, + temperature_K=temperature, + taut=taut, + trajectory=trajectory, + logfile=logfile, + loginterval=loginterval, + append_trajectory=append_trajectory, + ) + + #elif self.ensemble == "npt": + elif self.ensemble == "inhomo_npt_berendsen": + """ + Berendsen (constant N, P, T) molecular dynamics. + This dynamics scale the velocities and volumes to maintain a constant + pressure and temperature. The size of the unit cell is allowed to change + independently in the three directions, but the angles remain constant. + + NPT with Inhomogeneous_NPTBerendsen thermo/barostat + This is a more flexible scheme that fixes three angles of the unit + cell but allows three lattice parameter to change independently. + """ + if append_trajectory: + raise NotImplementedError("append_trajectory with Inhomogeneous_NPTBerendsen") + + self.dyn = Inhomogeneous_NPTBerendsen( + self.atoms, + timestep * units.fs, + temperature_K=temperature, + pressure_au=pressure, + taut=taut, + taup=taup, + compressibility_au=compressibility_au, + trajectory=trajectory, + logfile=logfile, + loginterval=loginterval, + # append_trajectory=append_trajectory, + # this option is not supported in ASE at this point (I have sent merge request there) + ) + + elif self.ensemble == "npt_berendsen": + """ + Berendsen (constant N, P, T) molecular dynamics. + This dynamics scale the velocities and volumes to maintain a constant + pressure and temperature. The shape of the simulation cell is not + altered, if that is desired use Inhomogenous_NPTBerendsen. + + This is a similar scheme to the Inhomogeneous_NPTBerendsen. + This is a less flexible scheme that fixes the shape of the + cell - three angles are fixed and the ratios between the three lattice constants. + """ + self.dyn = NPTBerendsen( + self.atoms, + timestep * units.fs, + temperature_K=temperature, + pressure_au=pressure, + taut=taut, + taup=taup, + compressibility_au=compressibility_au, + trajectory=trajectory, + logfile=logfile, + loginterval=loginterval, + append_trajectory=append_trajectory, + ) + + elif self.ensemble == "npt": + #elif self.ensemble == "npt_nhpr": + """ + Combined Nose-Hoover and Parrinello-Rahman dynamics, creating an NPT (or N,stress,T) ensemble. + + IMPORTANT: the cell matrix must be upper triangle (lattice vectors as row-vectors). + + * The ttime and pfactor are quite critical[4], too small values may + cause instabilites and/or wrong fluctuations in T / p. Too + large values cause an oscillation which is slow to die. Good + values for the characteristic times seem to be 25 fs for ttime, + and 75 fs for ptime (used to calculate pfactor), at least for + bulk copper with 15000-200000 atoms. But this is not well + tested, it is IMPORTANT to monitor the temperature and + stress/pressure fluctuations. + + pfactor: float + A constant in the barostat differential equation. If + a characteristic barostat timescale of ptime is + desired, set pfactor to ptime^2 * B + (where ptime is in units matching + eV, Å, u; and B is the Bulk Modulus, given in eV/Å^3). + Set to None to disable the barostat. + Typical metallic bulk moduli are of the order of + 100 GPa or 0.6 eV/A^3. + + WARNING: Not specifying pfactor sets it to None, disabling the + barostat. + """ + ttime = None + pfactor = None + if ttime is None: + ttime = 25 + if pfactor is None: + pfactor = 75** 2 * 10 + + self.dyn = NPT(self.atoms, + timestep * units.fs, + temperature_K=temperature, + externalstress=pressure, + ttime=ttime, + pfactor=pfactor, + trajectory=trajectory, + logfile=logfile, + loginterval=loginterval, + append_trajectory=append_trajectory, + ) + + else: + raise ValueError(f"{self.ensemble=} not supported") + + self.trajectory = trajectory + self.logfile = logfile + self.loginterval = loginterval + self.timestep = timestep + + def run(self, steps: int): + """ + Thin wrapper of ase MD run. + + Args: + steps (int): number of MD steps + """ + from ase.md import MDLogger + stress = self.ensemble not in ("nvt", ) + self.dyn.attach(MDLogger(self.dyn, self.atoms, '-', header=True, stress=stress, + peratom=True, mode="a"), interval=self.loginterval) + self.dyn.run(steps) + + +class GsMl(MlBase): + """ + Single point calculation of energy, forces and stress with ML potential. + """ + def __init__(self, atoms, nn_name, verbose, workdir, prefix=None): + super().__init__(workdir, prefix) + self.atoms = atoms + self.nn_name = nn_name + self.verbose = verbose + + def run(self): + """Run the calculation.""" + calc = CalcBuilder(self.nn_name).get_calculator() + self.atoms.calc = calc + res = AseResults.from_atoms(self.atoms) + print(res.to_string(verbose=self.verbose)) + + # Write json file GS results. + # To read the dictionary from json use: + # from abipy.tools.serialization import mjson_load + # data = mjson_load(self.workdir / "gs.json") + data = dict( + structure=Structure.as_structure(self.atoms), + ene=res.ene, + stress=res.stress, + forces=res.forces, + ) + mjson_write(data, self.workdir / "gs.json", indent=4) + + # Write ASE trajectory file with results. + with open(self.workdir / "gs.traj", "wb") as fd: + write_traj(fd, [self.atoms]) + + return 0 + + +class FrozenPhononMl(MlBase): + """ + Frozen-phonon calculations with ML potential. + """ + + @classmethod + def from_ddb_file(cls, ddb_filepath, qpoint, eta_list, nn_name, verbose, workdir, prefix=None, **anaddb_kwargs): + """ + """ + from abipy.dfpt.ddb import DdbFile + with DdbFile(ddb_filepath) as ddb: + # Call anaddb to get all phonon modes for this q-point. + phbands = ddb.anaget_phmodes_at_qpoint(qpoint=qpoint, verbose=verbose, **anaddb_kwargs) + + return cls(ddb.structure, qpoint, phbands.phdispl_cart, eta_list, nn_name, verbose, workdir, prefix=prefix) + + def __init__(self, structure, qpoint, phdispl_cart, eta_list, nn_name, verbose, workdir, prefix=None): + """ + Args: + qpoint: q-vector in reduced coordinate in reciprocal space. + displ_cart: displacement of the atoms in real space . + eta: pre-factor multiplying the displacement. Gives the value in Angstrom of the largest displacement. + """ + super().__init__(workdir, prefix) + self.initial_structure = structure + natom = len(structure) + self.nn_name = nn_name + self.verbose = verbose + # TODO: Should check that qpoint is [1/Nx, 1/Ny, 1/Nz] + self.qpoint = np.array(qpoint) + self.phdispl_cart = phdispl_cart + #self.phdispl_cart = np.reshape(phdispl_cart, (-1, 3*natom, 3*natom)) + self.eta_list = np.array(eta_list) + + def run(self): + """Run the calculation.""" + calc = CalcBuilder(self.nn_name).get_calculator() + + max_sc = np.ones(3, dtype=int) + for i, qf in enumerate(self.qpoint): + if qf != 0: max_sc[i] = np.round(1 / qf) + print(f"{max_sc =}") + + for displ_cart in self.phdispl_cart: + for eta in self.eta_list: + print(f"{eta=}") + print(f"{displ_cart.shape=}") + print(f"{displ_cart=}") + scell = self.initial_structure.frozen_phonon(self.qpoint, displ_cart, eta=eta, frac_coords=True, max_supercell=max_sc) + print(scell.scale_matrix) + print(scell.structure) + + scell.structure.to_ase_atoms() + atoms.calc = calc + res = AseResults.from_atoms(atoms) + #print(res.to_string(verbose=self.verbose)) + + # Write json file GS results. + # To read the dictionary from json use: + # from abipy.tools.serialization import mjson_load + # data = mjson_load(self.workdir / "gs.json") + #data = dict( + # structure=Structure.as_structure(self.atoms), + # ene=res.ene, + # stress=res.stress, + # forces=res.forces, + #) + #mjson_write(data, self.workdir / "gs.json", indent=4) + + ## Write ASE trajectory file with results. + #with open(self.workdir / "gs.traj", "wb") as fd: + # write_traj(fd, [self.atoms]) + + return 0 + + +class MlCompareNNs(MlBase): + """ + Compare energies, forces and stresses obtained with different ML potentials. + Also profile the time required. + """ + def __init__(self, atoms, nn_names, num_tests, rattle, stdev_rvol, verbose, workdir, prefix=None): + """ + Args: + atoms: ASE atoms + nn_names: String or list of strings defining the NN potential. See also CalcBuilder. + num_tests: Number of tests. + rattle: Displace atoms randomly with this stdev. + stdev_rvol: Scale volumes randomly around input v0 with stdev: v0*value + verbose: Verbosity level. + workdir: Working directory. + """ + super().__init__(workdir, prefix) + self.initial_atoms = atoms + self.nn_names = list_strings(nn_names) + self.num_tests = num_tests + self.rattle = rattle + self.stdev_rvol = stdev_rvol + self.verbose = verbose + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + return f"""\ + +{self.__class__.__name__} parameters: + + nn_names = {self.nn_names} + num_tests = {self.num_tests} + rattle = {self.rattle} + stdev_rvol = {self.stdev_rvol} + workdir = {self.workdir} + verbose = {self.verbose} + +=== ATOMS === + +{self.initial_atoms} + +""" + + def run(self, print_dataframes=True) -> AseResultsComparator: + """ + Run calculations. + """ + workdir = self.workdir + + # Build list of atoms + v0 = self.initial_atoms.cell.volume + vols = np.random.normal(loc=v0, scale=self.stdev_rvol * v0, size=self.num_tests) + atoms_list = [] + for it in range(self.num_tests): + atoms = self.initial_atoms.copy() + atoms.rattle(stdev=abs(self.rattle)) + atoms_list.append(Structure.as_structure(atoms).scale_lattice(vols[it]).to_ase_atoms()) + + labels, results_list = [], [] + for nn_name in self.nn_names: + labels.append(nn_name) + calc = as_calculator(nn_name) + with Timer(f"Computing GS properties for {len(atoms_list)} configurations with {nn_name=}...") as timer: + items = [AseResults.from_atoms(atoms, calc=calc) for atoms in atoms_list] + + results_list.append(items) + + comp = AseResultsComparator.from_ase_results(labels, results_list) + comp.pickle_dump_and_write_script(self.workdir) + + if print_dataframes: + # Write dataframes to disk in CSV format. + forces_df = comp.get_forces_dataframe() + self.write_df(forces_df, "cart_forces.csv", info="CSV file with cartesian forces.") + stress_df = comp.get_stress_dataframe() + self.write_df(stress_df, "voigt_stress.csv", info="CSV file with cartesian stresses in Voigt notation") + + self._finalize() + return comp + + +class MlCwfEos(MlBase): + """ + Compute EOS with different ML potentials. + """ + def __init__(self, elements, nn_names, verbose, workdir, prefix=None): + """ + Args: + atoms: ASE atoms + elements: String or List of strings with the chemical symbols to consider. + nn_names: String or list of strings defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + workdir: Working directory. + """ + super().__init__(workdir, prefix) + self.elements = list_strings(elements) + self.nn_names = list_strings(nn_names) + self.verbose = verbose + + self.configurations_set_name = { + "unaries-verification-PBE-v1": ["X/SC", "X/FCC", "X/BCC", "X/Diamond"], + "oxides-verification-PBE-v1": ["XO", "XO2", "XO3", "X2O", "X2O3", "X2O5"], + } + + root = Path("/Users/giantomassi/git_repos/acwf-verification-scripts/0-preliminary-do-not-run") + self.dirpath_set_name = { + "unaries-verification-PBE-v1": root / "unaries" / "xsfs-unaries-verification-PBE-v1", + "oxides-verification-PBE-v1": root / "oxides" / "xsfs-oxides-verification-PBE-v1", + } + + def to_string(self, verbose=0) -> str: + """String representation with verbosity level `verbose`.""" + return f"""\ + +{self.__class__.__name__} parameters: + + elements = {self.elements} + nn_names = {self.nn_names} + workdir = {self.workdir} + verbose = {self.verbose} +""" + + def run(self): + for nn_name in self.nn_names: + for set_name in self.configurations_set_name: + self.run_nn_name_set_name(nn_name, set_name) + + def run_nn_name_set_name(self, nn_name: str, set_name: str) -> dict: + print(f"Computing ML EOS with {nn_name=}, {set_name=} ...") + # This piece is taken from get_results.py + try: + from acwf_paper_plots.eosfit_31_adapted import BM, echarge + except ImportError as exc: + raise ImportError("ase not installed. Try `pip install ase`.") from exc + + calc = as_calculator(nn_name) + warning_lines = [] + + uuid_mapping = {} + all_missing_outputs = {} + completely_off = [] + failed_wfs = [] + all_eos_data = {} + all_stress_data = {} + all_BM_fit_data = {} + num_atoms_in_sim_cell = {} + + import uuid + for element in self.elements: + for configuration in self.configurations_set_name[set_name]: + my_uuid = uuid.uuid4().hex + uuid_mapping[f'{element}-{configuration}'] = { + 'structure': my_uuid, + 'eos_workflow': my_uuid + } + + #count = 7 + #increment = 0.02 + #return tuple(float(1 + i * increment - (count - 1) * increment / 2) for i in range(count)) + + conf = configuration.replace("X/", "") + filepath = self.dirpath_set_name[set_name] / f"{element}-{conf}.xsf" + v0_atoms = read(filepath, format='xsf') + v0 = v0_atoms.get_volume() + volumes = (v0 * np.array([0.94, 0.96, 0.98, 1.00, 1.02, 1.04, 1.06])).tolist() + energies, stresses = [], [] + + # Initialize to None if the outputs are not there + eos_data = None + stress_data = None + BM_fit_data = None + num_atoms = len(v0_atoms) + + try: + for volume in volumes: + #ase = structure.get_ase().copy() + #ase.set_cell(ase.get_cell() * float(scale_factor)**(1 / 3), scale_atoms=True) + atoms = to_ase_atoms(Structure.as_structure(v0_atoms).scale_lattice(volume)) + r = AseResults.from_atoms(atoms, calc=calc) + energies.append(r.ene) + stresses.append(r.stress.tolist()) + + eos_data = list(zip(volumes, energies)) + stress_data = list(zip(volumes, stresses)) + # This line disables the visualization of stress + stress_data = None + #for v, e in eos_data: print(v, e) + #except IndexError: + + # Check if the central point was completely off (i.e. the minimum of the energies is + # on the very left or very right of the volume range) + min_loc = np.array(energies).argmin() + if min_loc == 0: + # Side is whether the minimum occurs on the left side (small volumes) or right side (large volumes) + completely_off.append({'element': element, 'configuration': configuration, 'side': 'left'}) + elif min_loc == len(energies) - 1: + completely_off.append({'element': element, 'configuration': configuration, 'side': 'right'}) + + try: + min_volume, E0, bulk_modulus_internal, bulk_deriv, residuals = BM(np.array(eos_data)) + bulk_modulus_GPa = bulk_modulus_internal * echarge * 1.0e21 + #1 eV/Angstrom3 = 160.21766208 GPa + bulk_modulus_ev_ang3 = bulk_modulus_GPa / 160.21766208 + BM_fit_data = { + 'min_volume': min_volume, + 'E0': E0, + 'bulk_modulus_ev_ang3': bulk_modulus_ev_ang3, + 'bulk_deriv': bulk_deriv, + 'residuals': residuals[0] + } + if residuals[0] > 1.e-3: + warning_lines.append(f"WARNING! High fit residuals: {residuals[0]} for {element} {configuration}") + except ValueError as exc: + # If we cannot find a minimum + # Note that BM_fit_data was already set to None at the top + warning_lines.append(f"WARNING! Unable to fit for {element=} {configuration=}") + #print(str(exc)) + + except Exception as exc: + warning_lines.append(f"WARNING! Unable to compute E(V) for {element=} {configuration=}") + #print(str(exc)) + + all_eos_data[f'{element}-{configuration}'] = eos_data + num_atoms_in_sim_cell[f'{element}-{configuration}'] = num_atoms + if stress_data is None: + stress_data = list(zip(volumes, [None for _ in range(len(volumes))])) + all_stress_data[f'{element}-{configuration}'] = stress_data + all_BM_fit_data[f'{element}-{configuration}'] = BM_fit_data + + data = { + 'script_version': "0.0.4", + 'set_name': set_name, + # Mapping from strings like "He-X2O" to a dictionary with the UUIDs of the structure and the EOS workflow + 'uuid_mapping': uuid_mapping, + # A list of dictionaries with information on the workchains that did not finish with a 0 exit code + 'failed_wfs': failed_wfs, + # A dictionary that indicate for which elements and configurations there are missing outputs, + # (only for the workchains that still had enough volumes to be considered for a fit) + 'missing_outputs': all_missing_outputs, + # A list of dictionaries that indicate which elements and configurations have been computed completely + # off-centre (meaning that the minimum of all computed energies is on either of the two edges, i.e. for + # the smallest or largest volume) + 'completely_off': completely_off, + # Dictionary with the EOS data (volumes and energies datapoints). The keys are the same as the `uuid_mapping`. + # Values can be None. + 'eos_data': all_eos_data, + 'stress_data': all_stress_data, + # Birch-Murnaghan fit data. See above for the keys. Can be None. + 'BM_fit_data': all_BM_fit_data, + 'num_atoms_in_sim_cell': num_atoms_in_sim_cell + } + + # Print some statistics on the results + warning_lines.append("") + #warning_lines.append("Counter of states: " + str(Counter(states))) + good_cnt = len([eos_data for eos_data in data['eos_data'] if eos_data is not None]) + warning_lines.append("") + warning_lines.append(f"Minimum completely off for {len(completely_off)}/{good_cnt}") + warning_lines.append("Completely off systems (symbol indicates if the minimum is on the very left or right):") + for system in data['completely_off']: + warning_lines.append( + f"- {system['element']} {system['configuration']} " + f"({'<' if system['side'] == 'left' else '>'})" + ) + + SET_NAME = set_name + PLUGIN_NAME = nn_name + + fname = self.workdir / f"warnings-{SET_NAME}-{PLUGIN_NAME}.txt" + with open(fname, 'w') as fhandle: + for line in warning_lines: + fhandle.write(f"{line}\n") + print(line) + print(f"Warning log written to: '{fname}'.") + + # Output results to file + fname = self.workdir / f"results-{SET_NAME}-{PLUGIN_NAME}.json" + with open(fname, 'w') as fhandle: + json.dump(data, fhandle, indent=2, sort_keys=True) + print(f"Output results written to: '{fname}'.") + + return data diff --git a/abipy/ml/extxyz_generator.py b/abipy/ml/extxyz_generator.py new file mode 100644 index 000000000..9a2a14317 --- /dev/null +++ b/abipy/ml/extxyz_generator.py @@ -0,0 +1,293 @@ +""" +""" +from __future__ import annotations + +import os +import shutil +import abipy.core.abinit_units as abu +from pathlib import Path +from ase.calculators.singlepoint import SinglePointCalculator +from monty.string import list_strings # marquee, +from monty.termcolor import cprint +from ase.io import read +from ase.stress import full_3x3_to_voigt_6_stress +from ase.io import write +from pymatgen.io.vasp.outputs import Vasprun, Outcar +from pymatgen.io.vasp.sets import MatPESStaticSet # , MPStaticSet +from abipy.core import Structure +from abipy.electrons.gsr import GsrFile +from abipy.tools.typing import PathLike +import abipy.flowtk.qutils as qu +from abipy.ml.tools import get_energy_step + + +class ExtxyzIOWriter: + """ + Example: + + # To find all the vasprun.xml files starting from the a top-level directory, use: + + xyz_writer = ExtxyzIOWriter.from_top(".", "vasprun.xml") + print(xyz_writer) + xyz_writer.write("foo.xyz") + + # A similar syntax can be used for Abinit GSR files: + + ExtxyzIOWriter.from_top(".", "GSR.nc").write("foo.xyz") + + # To specify an explicit list of files, use: + + xyz_writer = ExtxyzIOWriter(["dir1/vasprun.xml", "dir2/vasprun.xml"]) + xyz_writer.write("foo.xyz") + """ + + SUPPORTED_EXTS = [ + "vasprun.xml", + "GSR.nc", + ] + + @classmethod + def from_top(cls, top: PathLike, ext: str): + """ + Scan for files with extension ext starting from the top directory top. + """ + from monty.os.path import find_exts + filepaths = find_exts(str(top), ext) + return cls(filepaths) + + def __init__(self, filepaths: list[PathLike]): + self.filepaths = list_strings(filepaths) + if not self.filepaths: + raise RuntimeError("Empty list of filepaths!") + + for ext in self.SUPPORTED_EXTS: + if all(f.endswith(ext) for f in self.filepaths): + self.ext = ext + break + else: + raise ValueError(f"Cannot detect extension from filepaths, should be in: {self.SUPPORTED_EXTS}") + + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = [] + for i, path in enumerate(self.filepaths): + lines.append(f"[{i}]: {path}") + return "\n".join(lines) + + def __str__(self) -> str: + return self.to_string() + + def write(self, xyz_filepath: PathLike, overwrite: bool = False): + """ + """ + if not overwrite and os.path.isfile(xyz_filepath): + raise RuntimeError(f"Cannot overwrite pre-existent file: {xyz_filepath=}, use overwrite=True to allow overwriting.") + + with open(xyz_filepath, "wt") as fh: + for atoms in self.yield_atoms(): + write(fh, atoms, format='extxyz', append=True) + + def yield_atoms(self): + """ + """ + for filepath in self.filepaths: + if self.ext == "vasprun.xml": + vasprun = Vasprun(filepath) + dirname = os.path.dirname(filepath) + outcar_path = os.path.join(dirname, "OUTCAR") + outcar = Outcar(outcar_path) if os.path.exists(outcar_path) else None + + ok = check_vasp_success(vasprun, outcar, verbose=1) + + last_step = vasprun.ionic_steps[-1] + structure, forces, stress = last_step["structure"], last_step["forces"], last_step["stress"] + energy = get_energy_step(last_step) + + elif self.ext == "GSR.nc": + with GsrFile(filepath) as gsr: + if not gsr.is_scf_run: + raise RuntimeError("GSR file was not produced by a SCF run!") + structure, forces, stress_gpa = gsr.structure, gsr.cart_forces, gsr.cart_stress_tensor + stress = stress_gpa / abu.eVA3_GPa + energy = float(gsr.energy) + + else: + raise ValueError(f"Format {self.ext=} is not supported!") + + atoms = structure.to_ase_atoms() + stress = full_3x3_to_voigt_6_stress(stress) + + # Attach calculator with results. + atoms.calc = SinglePointCalculator(atoms, + energy=energy, + free_energy=energy, + forces=forces, + stress=stress, + ) + yield atoms + + +def check_vasp_success(vasprun: Vasprun, outcar: Outcar | None, verbose: int = 1) -> bool: + """ + Check if a VASP calculation completed successfully. + + Returns: True if the calculation completed successfully, False otherwise. + """ + def my_print(*args, **kwargs): + if verbose: print(*args, **kwargs) + + try: + if not vasprun.converged: + my_print("Calculation did not converge.") + return False + + if outcar is not None: + if outcar.run_stats.get("Elapsed time (sec)"): + my_print("Calculation completed in {} seconds.".format(outcar.run_stats["Elapsed time (sec)"])) + else: + my_print("Elapsed time not found in OUTCAR.") + return False + + my_print("Calculation completed successfully.") + return True + + except Exception as e: + my_print(f"Error checking calculation status: {e}") + return False + + +class SinglePointRunner: + """ + + Usage example: + + .. code-block:: python + + traj_range = range(0, -1, 100) + runner = SinglePointRunner("out.traj", "outdir", traj_range) + runner.sbatch() + runner.collect_xyz("foo.xyz") + """ + slurm_script_name = "run.sh" + + custodian_script_name = "run_custodian.py" + + def __init__(self, traj_path: PathLike, traj_range: range, + topdir: PathLike = ".", code: str = "vasp", + vasp_set_cls=MatPESStaticSet, + verbose: int = 0): + """ + Args: + traj_path: Path to ASE trajectory file. + traj_range: + topdir: + code: + verbose: + """ + self.traj_path = traj_path + self.topdir = Path(str(topdir)).absolute() + self.traj_range = traj_range + if not isinstance(traj_range, range): + raise TypeError(f"Got {type(traj_range)} instead of range") + self.code = code + + err_lines = [] + slurm_body = "" + + if code == "vasp": + self.vasp_set_cls = vasp_set_cls + slurm_body = f"python {self.custodian_script_name}" + if not os.path.exists(self.custodian_script_name): + open(self.custodian_script_name, "wt").write(qu.get_custodian_template()) + err_lines.append(f"""\ +No custodian script: {self.custodian_script_name} has been found in {str(self.topdir)}. +A template that requires customization has been generated for you!""") + else: + self.custodian_script_str = open(self.custodian_script_name, "rt").read() + + if not os.path.exists(self.slurm_script_name): + open(self.slurm_script_name, "wt").write(qu.get_slurm_template(slurm_body)) + err_lines.append(f"""\ +No slurm submission script: {self.slurm_script_name} has been found in {str(self.topdir)}. +A template that requires customization has been generated for you!""") + else: + self.slurm_script_str = open(self.slurm_script_name, "rt").read() + + if err_lines: + raise RuntimeError("\n".join(err_lines)) + + self.verbose = int(verbose) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosiy level ``verbose``.""" + lines = [] + app = lines.append + + return "\n".join(lines) + + def sbatch(self, max_jobs: int = 100) -> list[int]: + """ + Submit max_jobs SinglePoint calculations with structures taken from the ASE trajectory file. + """ + if not self.topdir.exists(): self.topdir.mkdir() + + job_ids = [] + for index in self.traj_range: + workdir = self.topdir / f"SINGLEPOINT_{index}" + if workdir.exists(): + print(f"{str(workdir)} already exists. Ignoring it") + continue + + try: + atoms = read(self.traj_path, index=index) + except StopIteration as exc: + print(f"ASE trajectory does not have more that {index+1} configurations. Exiting sbatch loop!") + break + + structure = Structure.as_structure(atoms) + workdir.mkdir() + + if self.code == "vasp": + # Generate VASP input files using the Materials Project settings for a single-point calculation + + user_incar_settings = { + "NCORE": 2, + 'LWAVE': False, # Do not write WAVECAR + 'LCHARG': False, # Do not Write CHGCAR + } + vasp_input_set = self.vasp_set_cls(structure, user_incar_settings=user_incar_settings) + vasp_input_set.write_input(workdir) + with open(workdir / self.custodian_script_name, "wt") as fh: + fh.write(self.custodian_script_str) + + else: + raise ValueError(f"Unsupported {self.code=}") + + try: + job_id = qu.slurm_write_and_sbatch(workdir / "run.sh", self.slurm_script_str) + + except Exception as exc: + cprint(exc, "red") + cprint("Job sumbission failed. Will remove directory and exit sbatch loop.", color="red") + shutil.rmtree(workdir) + break + + job_ids.append(job_id) + if len(job_ids) == max_jobs: + print(f"Reached {max_jobs=}, will stop firing new jobs!") + + return job_ids + + def write_xyz(self, xyz_filepath: PathLike, dry_run=False) -> None: + """ + """ + ext = { + "vasp": "vasprun.xml", + "abinit": "GSR.nc", + }[self.code] + + writer = ExtxyzIOWriter.from_top(self.topdir, ext) + writer.write(xyz_filepath) diff --git a/abipy/ml/ml_phonopy.py b/abipy/ml/ml_phonopy.py new file mode 100644 index 000000000..7eeaf8993 --- /dev/null +++ b/abipy/ml/ml_phonopy.py @@ -0,0 +1,460 @@ +""" +Classes to compute vibrational properties with phonopy and ML potentials. +""" +from __future__ import annotations + +import numpy as np +import json +import abipy.core.abinit_units as abu + +from monty.dev import requires +from monty.string import list_strings, marquee +from monty.termcolor import cprint +from ase.calculators.calculator import Calculator +from ase.atoms import Atoms +from pymatgen.io.phonopy import get_phonopy_structure +from abipy.core.structure import Structure +from abipy.dfpt.ddb import DdbFile +from abipy.tools.context_managers import Timer +from abipy.ml.aseml import RX_MODE, CalcBuilder, AseResults, MlBase, relax_atoms, dataframe_from_results_list +try: + import phonopy + from phonopy import Phonopy + from phonopy.structure.atoms import PhonopyAtoms +except ImportError: + phonopy = None + Phonopy = None + + +def cprint_traceback(color="red") -> None: + """Print traceback.""" + import traceback + from monty.termcolor import cprint + cprint(traceback.format_exc(), color=color) + + +@requires(phonopy, "phonopy should be installed to calculate phonons") +def get_phonopy(structure: Structure, + supercell_matrix, + calculator: Calculator, + distance=0.01, + primitive_matrix=None, + remove_drift=True, + ) -> Phonopy: + """ + Args: + structure: Structure object. + supercell_matrix: Supercell matrix. + calculator: ASE calculator to be attached to the atoms. + distance: Distance of finite displacements in Angstrom. + primitive_matrix + remove_drift: True if the drift in the forces should be removed. + + Based on a similar implementation available at: https://github.com/modl-uclouvain/randomcarbon/blob/main/randomcarbon/run/phonon.py + """ + unitcell = Structure.as_structure(structure).get_phonopy_atoms() + + phonon = Phonopy(unitcell, supercell_matrix=supercell_matrix, primitive_matrix=primitive_matrix) + phonon.generate_displacements(distance=distance) + + forces_list = [] + nsc = len(phonon.supercells_with_displacements) + print(f"Calculating forces for {nsc} supercell configurations ...") + + for i, sc in enumerate(phonon.supercells_with_displacements): + a = Atoms(symbols=sc.symbols, + positions=sc.positions, + masses=sc.masses, + cell=sc.cell, + pbc=True, + calculator=calculator) + + + forces = a.get_forces() + if remove_drift: + drift_force = forces.sum(axis=0) + for force in forces: + force -= drift_force / forces.shape[0] + + forces_list.append(forces) + print(f"\t{i+1} of {nsc} completed ...") + + phonon.produce_force_constants(forces_list) + + return phonon + + +class MlPhonopyWithDDB(MlBase): + """ + Compute phonons with phonopy and a ML potential starting from a DDB file and compare the results. + """ + def __init__(self, ddb_filepath, + distance, asr, dipdip, line_density, qppa, + relax_mode, fmax, pressure, steps, optimizer, nn_names, + verbose, workdir, prefix=None, + supercell=None): + """ + Args: + ddb_filepath: DDB filepath. + distance: Distance of finite displacement in Angstrom. + asr: Enforce acoustic sum-rule. Abinit variable. + dipdip: Treatment of dipole-dipole term. Abinit variable. + line_density: Defines the a density of k-points per reciprocal atom to plot the phonon dispersion. + qppa: Defines the homogeneous q-mesh used for the DOS in units of q-points per atom. + relax_mode: "ions" to relax ions only, "cell" for ions + cell, "no" for no relaxation. + fmax: tolerance for relaxation convergence. Here fmax is a sum of force and stress forces. + pressure: Target pressure. + steps: max number of steps for relaxation. + optimizer: name of the ASE optimizer to use for relaxation. + nn_names: String or list of strings defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + workdir: Working directory, None to generate temporary directory automatically. + prefix: Prefix for workdir + supercell: with supercell dimensions. None to use the supercell from the DDB file. + """ + super().__init__(workdir, prefix) + + self.distance = float(distance) + self.asr = asr + self.dipdip = dipdip + self.relax_mode = relax_mode + RX_MODE.validate(self.relax_mode) + self.fmax = fmax + self.pressure = pressure + self.steps = steps + self.optimizer = optimizer + self.nn_names = list_strings(nn_names) + self.verbose = verbose + self.supercell = supercell + self.line_density = line_density + self.qppa = qppa + + self.ddb_filepath = ddb_filepath + with DdbFile(self.ddb_filepath) as ddb: + self.initial_atoms = ddb.structure.to_ase_atoms() + if self.supercell is None: + # Take supercell from the q-mesh used in the DDB. + self.supercell = np.eye(3) * ddb.guessed_ngqpt + + if self.supercell is None: + raise ValueError("Supercell must be specified in input!") + + self.abi_nac_params = {} + + def to_string(self, verbose=0): + """String representation with verbosity level `verbose`.""" + supercell = self.supercell.tolist() + s = f"""\ + +{self.__class__.__name__} parameters: + + ddb_path = {self.ddb_filepath} + supercell = {supercell} + distance = {self.distance} + qppa = {self.qppa} + asr = {self.asr} + dipdip = {self.dipdip} + line_density = {self.line_density} + relax_mode = {self.relax_mode} + fmax = {self.fmax} + steps = {self.steps} + optimizer = {self.optimizer} + pressure = {self.pressure} + nn_names = {self.nn_names} + workdir = {self.workdir} + verbose = {self.verbose} +""" + return s + + def run(self) -> None: + """ + Run MlPhonopyWithDDB. + """ + # Run anaddb computation and save results in self. + with DdbFile(self.ddb_filepath) as ddb, Timer(header="Starting anaddb ph-bands computation...") as timer: + if ddb.has_lo_to_data and self.dipdip != 0: + # according to the phonopy website 14.399652 is not the coefficient for abinit + # probably it relies on the other conventions in the output. + out = ddb.anaget_epsinf_and_becs() + self.abi_nac_params = {"born": out.becs.values, "dielectric": out.epsinf, "factor": 14.399652} + + # ab-initio phonons from the DDB. + with ddb.anaget_phbst_and_phdos_files( + qppa=self.qppa, line_density=self.line_density, + asr=self.asr, dipdip=self.dipdip, verbose=self.verbose) as g: + + phbst_file, phdos_file = g[0], g[1] + self.abi_phbands = phbst_file.phbands + # The q-points passed to phonopy. + self.py_qpoints = [[qpt.frac_coords for qpt in self.abi_phbands.qpoints]] + + data = {} + data["ddb"] = self.abi_phbands.get_phfreqs_stats_dict() + d_nn = data["nn_names"] = {} + for nn_name in self.nn_names: + try: + d = self._run_nn_name(nn_name) + d_nn[nn_name] = d + d_nn[nn_name]["exception"] = None + except Exception as exc: + #raise + cprint_traceback() + d_nn[nn_name] = {} + d_nn[nn_name]["exception"] = str(exc) + + self.write_json("data.json", data, info="JSON file with final results.") + self._finalize() + + def _run_nn_name(self, nn_name: str) -> None: + """ + Run calculation for a single NN potential. + """ + workdir = self.workdir + + calculator = CalcBuilder(nn_name).get_calculator() + atoms = self.initial_atoms.copy() + atoms.calc = calculator + natom = len(atoms) + + if self.relax_mode == RX_MODE.cell: + raise RuntimeError("One should not relax the cell when comparing ML phonons with a DDB file!") + + if self.relax_mode != RX_MODE.no: + print(f"Relaxing input DDB atoms with relax mode: {self.relax_mode}.") + relax_kws = dict(optimizer=self.optimizer, + relax_mode=self.relax_mode, + fmax=self.fmax, + pressure=self.pressure, + steps=self.steps, + traj_path=self.get_path(f"{nn_name}_relax.traj", "ASE relax trajectory"), + verbose=self.verbose, + ) + + relax = relax_atoms(atoms, **relax_kws) + relax.summarize(["DDB_initial", "DDB_relaxed"]) + #print(relax) + + # Call phonopy to compute phonons with finite difference and ML potential. + # Include non-analytical term if dipoles are available in the DDB file. + with Timer(header=f"Calling get_phonopy with {nn_name=}", footer=""): + phonon = get_phonopy(atoms, self.supercell, calculator, + distance=self.distance, primitive_matrix=None, remove_drift=True) + if self.abi_nac_params: + print("Including dipolar term in phonopy using BECS and eps_inf taken from DDB.") + phonon.nac_params = self.abi_nac_params + + # Save phonopy object in Yaml format. + phonon.save(filename=workdir / f"phonopy_params.yaml", settings={'force_constants': True}) + + from abipy.dfpt.phonons import PhononBands, PhononBandsPlotter + with Timer(header="Starting phonopy ph-band computation...", footer=""): + phonon.run_band_structure(self.py_qpoints, with_eigenvectors=True) + + plt = phonon.plot_band_structure() + plt.savefig(workdir / f"phonopy_{nn_name}_phbands{self.fig_ext}") + plt.close() + + bands_dict = phonon.get_band_structure_dict() + nqpt = 0 + py_phfreqs, py_displ_cart = [], [] + for q_list, w_list, eig_list in zip(bands_dict['qpoints'], bands_dict['frequencies'], bands_dict['eigenvectors']): + nqpt += len(q_list) + py_phfreqs.extend(w_list) + py_displ_cart.extend(eig_list) + + py_phfreqs = np.reshape(py_phfreqs, (nqpt, 3*natom)) / abu.eV_to_THz + py_displ_cart = np.reshape(py_displ_cart, (nqpt, 3*natom, 3*natom)) + + # Build abipy phonon bands from phonopy results. + py_phbands = PhononBands(self.abi_phbands.structure, self.abi_phbands.qpoints, py_phfreqs, + # FIXME: Use phononopy displacement + self.abi_phbands.phdispl_cart, + non_anal_ph=None, + amu=self.abi_phbands.amu, + epsinf=self.abi_phbands.epsinf, + zcart=self.abi_phbands.zcart, + ) + + # Compute diff stats. + mabs_wdiff_ev = np.abs(py_phbands.phfreqs - self.abi_phbands.phfreqs).mean() + + ph_plotter = PhononBandsPlotter(key_phbands=[ + (f"phonopy with {nn_name}", py_phbands), + ("ABINIT DDB", self.abi_phbands), + ]) + mae_str = f"MAE {1000 * mabs_wdiff_ev:.3f} meV" + print(mae_str) + latex_formula = self.abi_phbands.structure.latex_formula + ph_plotter.combiplot(show=False, title=f"{latex_formula}: {mae_str}", units="meV", + savefig=str(workdir / f"combiplot_{nn_name}.pdf")) + + data = dict( + mabs_wdiff_ev=mabs_wdiff_ev, + **py_phbands.get_phfreqs_stats_dict() + ) + + # Compute phonon DOS and generate file with figure. + #phonon.auto_total_dos(plot=True) + #plt.savefig(workdir / f"phonopy_{nn_name}_phdos{self.fig_ext}") + #plt.close() + + # Compute site-project phonon DOS and generate file with figure. + #phonon.auto_projected_dos(plot=True) + #plt.savefig(workdir / f"phonopy_{nn_name}_pjdos{self.fig_ext}") + #plt.close() + + #phonon.run_thermal_properties(t_step=10, t_max=1000, t_min=0) + #phonon.write_yaml_thermal_properties(filename=workdir / f"phonopy_{nn_name}_thermal_properties.yaml") + + return data + + +class MlPhonopy(MlBase): + """ + Compute phonons with phonopy and ML potential. + """ + def __init__(self, structure, supercell, distance, line_density, qppa, + relax_mode, fmax, pressure, steps, optimizer, nn_names, + verbose, workdir, prefix=None): + """ + Args: + structure: Structure object + supercell: Supercell dimensions. + distance: Distance of finite displacements in Angstrom. + line_density: Defines the a density of k-points per reciprocal atom to plot the phonon dispersion. + qppa: Defines the homogeneous q-mesh used for the DOS in units of q-points per atom. + relax_mode: "ions" to relax ions only, "cell" for ions + cell, "no" for no relaxation. + fmax: tolerance for relaxation convergence. Here fmax is a sum of force and stress forces. + pressure: Target pressure. + steps: max number of steps for relaxation. + optimizer: name of the ASE optimizer to use for relaxation. + nn_names: String or list of strings defining the NN potential. See also CalcBuilder. + verbose: Verbosity level. + workdir: Working directory, None to generate temporary directory automatically. + prefix: Prefix for workdir. + """ + super().__init__(workdir, prefix) + + self.initial_atoms = structure.to_ase_atoms() + + self.distance = float(distance) + #self.asr = asr + #self.dipdip = dipdip + self.relax_mode = relax_mode + RX_MODE.validate(self.relax_mode) + self.fmax = fmax + self.pressure = pressure + self.steps = steps + self.optimizer = optimizer + self.nn_names = list_strings(nn_names) + self.verbose = verbose + self.supercell = supercell + self.line_density = line_density + self.qppa = qppa + #self.abi_nac_params = {} + + def to_string(self, verbose=0): + """String representation with verbosity level `verbose`.""" + supercell = self.supercell.tolist() + s = f"""\ + +{self.__class__.__name__} parameters: + + supercell = {supercell} + distance = {self.distance} + qppa = {self.qppa} + line_density = {self.line_density} + relax_mode = {self.relax_mode} + fmax = {self.fmax} + steps = {self.steps} + optimizer = {self.optimizer} + pressure = {self.pressure} + nn_names = {self.nn_names} + workdir = {self.workdir} + verbose = {self.verbose} +""" + return s + + def run(self) -> None: + """Run calculation.""" + data = {} + d_nn = data["nn_names"] = {} + for nn_name in self.nn_names: + try: + d = self._run_nn_name(nn_name) + d_nn[nn_name] = d + d_nn[nn_name]["exception"] = None + except Exception as exc: + cprint_traceback() + d_nn[nn_name] = {} + d_nn[nn_name]["exception"] = str(exc) + + self.write_json("data.json", data, info="JSON file with final results.") + self._finalize() + + def _run_nn_name(self, nn_name: str) -> None: + """ + Run calculation for a single NN potential. + """ + workdir = self.workdir + + calculator = CalcBuilder(nn_name).get_calculator() + atoms = self.initial_atoms.copy() + atoms.calc = calculator + natom = len(atoms) + + if self.relax_mode != RX_MODE.no: + print(f"Relaxing input atoms with relax mode: {self.relax_mode}.") + relax_kws = dict(optimizer=self.optimizer, + relax_mode=self.relax_mode, + fmax=self.fmax, + pressure=self.pressure, + steps=self.steps, + traj_path=self.get_path(f"{nn_name}_relax.traj", "ASE relax trajectory"), + verbose=self.verbose, + ) + + relax = relax_atoms(atoms, **relax_kws) + relax.summarize(["initial", "relaxed"]) + print(relax) + + # Call phonopy to compute phonons with finite difference and ML potential. + # Include non-analytical term if dipoles are available in the DDB file. + with Timer(header=f"Calling get_phonopy with {nn_name=}", footer=""): + phonon = get_phonopy(atoms, self.supercell, calculator, + distance=self.distance, primitive_matrix=None, remove_drift=True) + + plt = phonon.auto_band_structure( + npoints=101, + with_eigenvectors=False, + with_group_velocities=False, + plot=True, + write_yaml=True, + filename=workdir / f"{nn_name}_band.yml", + ) + plt.savefig(workdir / f"phonopy_{nn_name}_phbands{self.fig_ext}") + plt.close() + + # Save phonopy object in Yaml format. + phonon.save(filename=workdir / f"phonopy_params.yaml", settings={'force_constants': True}) + + # Compute phonon DOS and generate file with figure. + phonon.auto_total_dos(plot=True) + plt.savefig(workdir / f"phonopy_{nn_name}_phdos{self.fig_ext}") + plt.close() + + # Compute site-project phonon DOS and generate file with figure. + #phonon.auto_projected_dos(plot=True) + #plt.savefig(workdir / f"phonopy_{nn_name}_pjdos{self.fig_ext}") + #plt.close() + + # Compute thermal properties. + phonon.run_thermal_properties(t_step=10, t_max=1000, t_min=0) + phonon.write_yaml_thermal_properties(filename=workdir / f"phonopy_{nn_name}_thermal_properties.yaml") + + phonon.plot_thermal_properties() + plt.savefig(workdir / f"phonopy_{nn_name}_thermal_properties{self.fig_ext}") + plt.close() + + return {} + diff --git a/abipy/ml/ml_relax.py b/abipy/ml/ml_relax.py new file mode 100644 index 000000000..8bff64045 --- /dev/null +++ b/abipy/ml/ml_relax.py @@ -0,0 +1,332 @@ +""" +""" +from __future__ import annotations + +import sys +import os +import time +import tempfile +import json +import numpy as np + +from pathlib import Path +from typing import Any +#from monty.string import marquee, list_strings # is_string, +from monty.json import MontyEncoder +from monty.collections import dict2namedtuple +from ase.atoms import Atoms +from ase.calculators.abinit import Abinit, AbinitProfile +from ase.constraints import ExpCellFilter +from ase.stress import full_3x3_to_voigt_6_stress, voigt_6_to_full_3x3_stress +from abipy.core.abinit_units import eV_Ha, Ang_Bohr +from abipy.core.structure import Structure, StructDiff +from abipy.tools.iotools import workdir_with_prefix +from abipy.tools.context_managers import Timer +from abipy.dynamics.hist import HistFile +from abipy.flowtk import PseudoTable +from abipy.ml.aseml import print_atoms, get_atoms, CalcBuilder, ase_optimizer_cls, abisanitize_atoms, RX_MODE + + +class RelaxationProfiler: + + def __init__(self, atoms: Any, pseudos, corr_algo,algorithm, xc_name, kppa, relax_mode: str, fmax: float, mpi_nprocs, + steps=500, verbose: int = 0, optimizer="BFGS", nn_name="chgnet", mpi_runner="mpirun"): + """ + Args: + atoms: ASE atoms, pymatgen structure or file with structure. + pseudos: List of pseudopotentials with cutoff hints. + xc_name: String defining the XC functional e.g. LDA or GGA. + corr_algo: Correction algorithm. + kppa: K-point per atom used for sampling the BZ. + relax_mode: String definining the relaxation mode e.g. "ions" or "cell" + fmax: Tolerance for structural relaxation in eV/Ang. + mpi_nprocs: Number of MPI procs used to run Abinit + steps: Max number of relaxation steps. + verbose: Verbosity level. + optimizer: String defining the ASE optimizer or Optimizer instance. + nn_name: String specifying the ML potential e.g. "m3gnet" or "chgnet". + mpi_runner: + """ + self.algorithm = algorithm + print (f"Algorithm: {self.algorithm}") + atoms = get_atoms(atoms) + self.initial_atoms = atoms.copy() + self.corr_algo = corr_algo + self.xc_name = xc_name + self.relax_mode = relax_mode + RX_MODE.validate(self.relax_mode) + self.fmax = fmax + self.steps = steps + self.verbose = verbose + self.ase_opt_cls = ase_optimizer_cls(optimizer) + self.nn_name = nn_name + self.scalar_pressure = 0.0 + + # Get pseudos and ecut + structure = Structure.as_structure(atoms) + pseudos = PseudoTable.as_table(pseudos).get_pseudos_for_structure(structure) + pp_paths = [p.filepath for p in pseudos] + + hints = [p.hint_for_accuracy("normal") for p in pseudos] + ecut = max(h.ecut for h in hints) * 27.3 # In ASE this is in eV (don't know why!) + #pawecutdg = max(h.pawecutdg for h in hints) if pseudos.allpaw else None + + # Automatic K-point sampling. + import pymatgen.io.abinit.abiobjects as aobj + kmesh = aobj.KSampling.automatic_density(structure, kppa, chksymbreak=0).to_abivars() + #print("Using kmesh:", kmesh) + + self.gs_kwargs = dict( + ecut=ecut, + # Smoothing PW cutoff energy (mandatory for cell optimization) + ecutsm=0.5 if self.relax_mode == RX_MODE.cell else 0, + tolvrs=1e-8, + expert_user=1, # Ignore warnings (chksymbreak, chksymtnons, chkdilatmx) + autoparal=1, + paral_kgb=1, + #npfft=1, + rmm_diis=1 if all(p.isnc for p in pseudos) else 0, + nstep=100, + prtwf=0, + pseudos=pp_paths, + **kmesh, + ) + + # Run fully ab-initio relaxation with abinit. + # TODO: Fix issue with ixc set by ASE. + self.relax_kwargs = dict( + ionmov=2, + #ionmov=22, + optcell=0 if self.relax_mode == RX_MODE.ions else 2, + tolmxf=self.fmax * eV_Ha * Ang_Bohr, + ntime=200, + ) + self.relax_kwargs.update(**self.gs_kwargs) + + argv = f"{mpi_runner} -n {mpi_nprocs} abinit".split() + self.abinit_profile = AbinitProfile(argv) + + #def __str__(self): + # return self.to_string() + + #def to_string(self, verbose=0) -> str: + + def _mkfilter(self, atoms: Atoms): + """Apply a filter to input atoms depending on the relaxation mode.""" + if self.relax_mode == RX_MODE.ions: + return atoms + elif self.relax_mode == RX_MODE.cell: + return ExpCellFilter(atoms, scalar_pressure=self.scalar_pressure) + + raise ValueError(f"Invalid value of {self.relax_mode=}") + + def ml_relax_opt(self, directory): + """ + Relax structure with ML potential only. Return ASE optimizer. + """ + print(f"\nBegin {self.nn_name} relaxation in {str(directory)}") + print("relax_mode:", self.relax_mode, "with fmax:", self.fmax) + directory.mkdir() + ml_calc = CalcBuilder(self.nn_name).get_calculator() + atoms = self.initial_atoms.copy() + atoms.calc = ml_calc + + opt_kws = dict( + trajectory=str(directory / f"opt.traj"), + #logfile=str(directory / f"log"), + ) + opt = self.ase_opt_cls(self._mkfilter(atoms), **opt_kws) + + with Timer() as timer: + opt.run(fmax=self.fmax, steps=self.steps) + if not opt.converged(): + raise RuntimeError("ml_relax_opt didn't converge!") + print('%s relaxation completed in %.2f sec after nsteps: %d\n' % (self.nn_name, timer.time, opt.nsteps)) + + return opt + + def abi_relax_atoms(self, directory, atoms=None, header="Begin ABINIT relaxation"): + """ + Relax structure with ABINIT. Return namedtuple with results. + """ + print(f"\n{header} in {str(directory)}") + print("relax_mode:", self.relax_mode, "with tolmxf:", self.relax_kwargs["tolmxf"]) + if atoms is None: + atoms = self.initial_atoms.copy() + + abinit = Abinit(profile=self.abinit_profile, directory=directory, **self.relax_kwargs) + atoms.calc = abinit + with Timer() as timer: + forces = atoms.get_forces() + + with HistFile(abinit.directory / "abinito_HIST.nc") as hist: + nsteps = hist.num_steps + energy = float(hist.final_energy) + atoms = get_atoms(hist.final_structure) + print('ABINIT relaxation completed in %.2f sec after nsteps: %d\n' % (timer.time, nsteps)) + + return dict2namedtuple( + atoms=atoms, + fmax=np.sqrt((forces ** 2).sum(axis=1).max()), + nsteps=nsteps, + energy=energy, + ) + + def abi_relax_atoms_with_ase(self, directory, header="Begin ABINIT+ASE relaxation"): + """ + Relax structure with ABINIT. Return ASE Optimizer + """ + print(f"\n{header} in {str(directory)}") + print("relax_mode:", self.relax_mode, "with tolmxf:", self.relax_kwargs["tolmxf"]) + + atoms = self.initial_atoms.copy() + abinit = Abinit(profile=self.abinit_profile, directory=directory, **self.gs_kwargs) + atoms.calc = abinit + + opt = self.ase_opt_cls(self._mkfilter(atoms)) + with Timer() as timer: + opt.run(fmax=self.fmax, steps=self.steps) + if not opt.converged(): + raise RuntimeError("Abinit+ASE optimizer didn't converge!") + print('%s relaxation completed in %.2f sec after nsteps: %d\n' % (self.nn_name, timer.time, opt.nsteps)) + return opt + + def abinit_run_gs_atoms(self, directory, atoms): + """ + Perform a GS calculation with ABINIT. Return namedtuple with results in ASE units. + """ + with Timer(header=f"\nBegin ABINIT GS in {str(directory)}", footer="ABINIT GS") as timer: + abinit = Abinit(profile=self.abinit_profile, directory=directory, **self.gs_kwargs) + forces = abinit.get_forces(atoms=atoms) + stress = abinit.get_stress(atoms=atoms) + energy = abinit.get_potential_energy(atoms=atoms) + print('ABINIT GS completed in %.2f sec\n' % (timer.time)) + + return dict2namedtuple(abinit=abinit, forces=forces, + stress=voigt_6_to_full_3x3_stress(stress), + fmax=np.sqrt((forces ** 2).sum(axis=1).max()), + energy=energy, + ) + + def run(self, workdir=None, prefix=None): + """ + Run the different steps of the benchmark. + """ + workdir = workdir_with_prefix(workdir, prefix) + + # Run relaxation with ML potential. + ml_opt = self.ml_relax_opt(workdir / "ml_relax") + + # Run fully ab-initio relaxation with abinit. + abi_relax = self.abi_relax_atoms(workdir / "abinit_relax") + + if False: + # Run relaxation with ASE optimizer and Abinit forces. + abiase_opt = self.abi_relax_atoms_with_ase(workdir / f"abiase_relax") + + # Compare structures + diff = StructDiff(["INITIAL", "ABINIT_RELAX", self.nn_name + "_RELAX"], + [self.initial_atoms, abi_relax.atoms, ml_opt.atoms]) + diff.tabulate() + + # Run hybrid relaxation (ML + abinit) + ml_calc = CalcBuilder(self.nn_name).get_calculator() + ml_calc.set_correct_forces_algo(self.corr_algo) + ml_calc.set_correct_stress_algo(self.corr_algo) + + print(f"\nBegin ABINIT + {self.nn_name} hybrid relaxation") + if self.xc_name == "PBE": + print(f"Starting from ML-optimized Atoms as {self.xc_name=}") + atoms = ml_opt.atoms.copy() + #AA + #atoms = abisanitize_atoms(atoms) + else: + print(f"Starting from initial Atoms as {self.xc_name=}") + atoms = self.initial_atoms.copy() + + count, abiml_nsteps, ml_nsteps = 0, 0, 0 + + count_max = 150 #AA: just playing with for testing delta_force convergance + t_start = time.time() + while count <= count_max: + count += 1 + # Compute ab-initio forces/stress. + directory = workdir / f"abiml_gs_count_{count}" + gs = self.abinit_run_gs_atoms(directory, atoms) + abiml_nsteps += 1 + print("Iteration:", count, "abi_fmax:", gs.fmax, ", fmax:", self.fmax) + print("abinit_stress_voigt", gs.stress_voigt) + #print_atoms(atoms, cart_forces=gs.forces) + print("abinit_energy", gs.energy ) + # Store ab-initio forces/stresses in the ML calculator and attach it to atoms. + ml_calc.store_abi_forstr_atoms(gs.forces, gs.stress, atoms) + atoms.calc = ml_calc + + opt_kws = dict( + trajectory=str(gs.abinit.directory / f"opt.traj"), + #logfile=str(abinit.directory / f"log_{count}"), + ) + opt = self.ase_opt_cls(self._mkfilter(atoms), **opt_kws) + opt.run(fmax=self.fmax, steps=self.steps) + opt_converged = opt.converged() + ml_nsteps += opt.nsteps + + atoms = opt.atoms.copy() + + final_mlabi_relax = None + if self.algorithm =='old': do_final_relax = opt_converged and opt.nsteps <= 1 + if self.algorithm == 'one-GS': do_final_relax = opt_converged + + if do_final_relax: + # Sanitize atoms at each step to avoid possibile issues when relaxing with Abinit. + #atoms = abisanitize_atoms(opt.atoms.copy()) + final_mlabi_relax = self.abi_relax_atoms(directory=workdir / "abiml_final_relax", + atoms=atoms, + header="Performing final structural relaxation with ABINIT", + ) + abiml_nsteps += final_mlabi_relax.nsteps + break + + print(f'ABINIT + {self.nn_name} relaxation completed in {time.time() - t_start :.2f} sec\n') + #print_atoms(atoms, title="Atoms after ABINIT + ML relaxation:") + + diff = StructDiff(["INITIAL", self.nn_name + "_RELAX", "ABINIT_RELAX", "ABI_ML"], + [self.initial_atoms, ml_opt.atoms, abi_relax.atoms, final_mlabi_relax.atoms]) + diff.tabulate() + print("With correction algo:", self.corr_algo) + print(f"GS steps to relax in pure ML-mode {ml_nsteps=}") + print(f"GS steps to relax in pure ABINIT mode {abi_relax.nsteps=}") + print(f"GS steps to relax in ABI + ML mode {abiml_nsteps=}") + print(f"Single point calculations performed in ABI + ML mode {count=}") + + # Write json file with output results. + with open(workdir / "data.json", "wt") as fh: + data = dict( + corr_algo=self.corr_algo, + xc_name=self.xc_name, + gs_kwargs=self.gs_kwargs, + relax_kwargs=self.relax_kwargs, + ml_nsteps=ml_nsteps, + abiml_nsteps=abiml_nsteps, + abi_nsteps=abi_relax.nsteps, + ml_relaxed_structure=Structure.as_structure(ml_opt.atoms), + abi_relaxed_structure=Structure.as_structure(abi_relax.atoms), + abiml_relaxed_structure=Structure.as_structure(final_mlabi_relax.atoms), + ) + json.dump(data, fh, indent=4, cls=MontyEncoder) + + +if __name__ == "__main__": + # Get pseudos + from abipy.flowtk.psrepos import get_oncvpsp_pseudos + xc_name = "PBE" + pseudos = get_oncvpsp_pseudos(xc_name=xc_name, version="0.4") + from ase.build import bulk + atoms = bulk('Si') + atoms.rattle(stdev=0.1, seed=42) + kppa = 200 + corr_algo = CORRALGO.from_string("delta") + algorithm = "öld" + prof = RelaxationProfiler(atoms, pseudos, corr_algo, algorithm, xc_name, kppa, + relax_mode="ions", fmax=0.001, mpi_nprocs=2, verbose=1) + prof.run() diff --git a/abipy/ml/relax_scanner.py b/abipy/ml/relax_scanner.py new file mode 100644 index 000000000..37e0e4c74 --- /dev/null +++ b/abipy/ml/relax_scanner.py @@ -0,0 +1,663 @@ +""" +Objects to perform ASE calculations with machine-learning potentials. +""" +from __future__ import annotations + +import sys +import os +import pickle +import json +import itertools +import warnings +import dataclasses +import shutil +import numpy as np +import pandas as pd + +from pathlib import Path +from multiprocessing import Pool +from monty.json import MontyEncoder +from monty.functools import lazy_property +from monty.collections import dict2namedtuple +from pymatgen.core.lattice import Lattice +from pymatgen.util.coord import pbc_shortest_vectors +from ase.io.vasp import write_vasp # write_vasp_xdatcar, +from abipy.core import Structure +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt #, get_axarray_fig_plt, +from abipy.tools.iotools import workdir_with_prefix, PythonScript, ShellScript +from abipy.tools.serialization import HasPickleIO +from abipy.tools.printing import print_dataframe +from abipy.ml.aseml import (relax_atoms, get_atoms, as_calculator, ase_optimizer_cls, RX_MODE, fix_atoms, + MlNeb, MlGsList, CalcBuilder, make_ase_neb) + + + +def nprocs_for_ntasks(nprocs, ntasks, title=None) -> int: + """ + Return the number of procs to be used in a multiprocessing Pool. + If negative or None, use all procs in the system. + """ + import os + if nprocs is None or nprocs <= 0: + nprocs = max(1, os.cpu_count()) + else: + nprocs = int(nprocs) + + nprocs = min(nprocs, ntasks) + if title is not None: + print(title) + print(f"Using multiprocessing pool with {nprocs=} for {ntasks=} ...") + return nprocs + + + +@dataclasses.dataclass +class Entry: + """ + Stores the relaxed structure with the associated energy and the Cartesian forces. + """ + isite: int # Index of the site being relaxed. + structure: Structure # pymatgen Structure + energy: float # Energy in eV + forces: np.ndarray # Forces in eV/Ang + + @classmethod + def from_atoms_and_calculator(cls, isite, atoms, calculator) -> Entry: + """ + Build an Entry from an Atoms object by attaching a calculator + to compute energy and forces at fixed geometry. + """ + structure = Structure.as_structure(atoms) + # NB: Keep sites within the unit cell so that we can compare entries in __eq__ + structure.translate_sites(range(len(structure)), np.zeros(3), to_unit_cell=True) + return cls(isite=isite, + structure=structure, + energy=float(calculator.get_potential_energy(atoms=atoms)), + forces=calculator.get_forces(atoms=atoms), + ) + + @classmethod + def from_traj(cls, isite, traj) -> Entry: + """ + Build an Entry by taking the last Atoms object from an ASE trajectory. + """ + atoms = traj[-1] + structure = Structure.as_structure(atoms) + # NB: Keep sites within the unit cell so that we can compare entries in __eq__ + structure.translate_sites(range(len(structure)), np.zeros(3), to_unit_cell=True) + return cls(isite=isite, + structure=structure, + energy=float(atoms.get_potential_energy()), + forces=atoms.get_forces(), + ) + + def __eq__(self, other: Entry) -> bool: + """ + Invoked by python to evaluate `self == other`. + """ + return abs(self.energy - other.energy) / len(self.structure) < 1e-4 and \ + np.abs(self.structure.lattice.matrix - other.structure.lattice.matrix).max() < 1e-3 and \ + all(np.abs(site1.frac_coords - site2.frac_coords).max() < 1e-3 + for site1, site2 in zip(self.structure, other.structure)) + + +@dataclasses.dataclass +class Pair: + """ + Stores info on a possible transition between two relaxed configurations. + """ + index1: int # Index of first configuration in entries + index2: int + ediff: float # Energy difference in eV + dist: float # Distance between sites in Ang. + frac_coords1: np.ndarray # Fractional coords of sites. + frac_coords2: np.ndarray + + def get_dict4pandas(self) -> dict: + """Useful to construct pandas DataFrames""" + return dataclasses.asdict(self) + + +class RelaxScanner(HasPickleIO): + """ + This object employs an ASE calculator to perform many + structural relaxations in which the initial configurations are obtained + by displacing or inserting an atom on a grid covering the unit cell. + The relaxed configurations are then compared with each other and only + the unique solutions (Entry objects) are kept and stored to disk in pickle format. + """ + + def __init__(self, structure, isite, mesh, nn_name, + relax_mode: str = "ions", fmax: float = 1e-3, steps=500, + verbose: int = 0, optimizer_name="BFGS", pressure=0.0, + workdir=None, prefix=None): + """ + Args: + structure: Structure object or any file supported by pymatgen providing a structure. + isite: Index of the site to be displaced or string with chemical element to be added. + mesh: Size of the mesh along the smallest lattice vector. + nn_name: String with the name of the NN potential e.g. "chgnet" or "m3gnet". + relax_mode: "ions" to relax ions only, "cell" for ions + cell, "no" for no relaxation. + fmax: total force tolerance for relaxation convergence. + Here fmax is a sum of force and stress forces. Defaults to 0.1. + steps: max number of steps for relaxation. + verbose: Verbosity level. + optimizer_name: name of the ASE optimizer class to use + pressure: Target pressure. + workdir: Working directory. + """ + self.initial_structure = Structure.as_structure(structure).copy() + + if str(isite).isdigit(): + self.isite = int(isite) + else: + # Assume isite is a chemical element to be added at the origin. + self.initial_structure.insert(0, isite, [0, 0, 0]) + self.isite = 0 + + assert len(self.initial_structure) > self.isite >= 0 + + # Compute 3d mesh + abc = np.array(self.initial_structure.lattice.abc) + delta = abc.min() / mesh + self.nx, self.ny, self.nz = [int(_) for _ in np.rint(abc / delta)] + + self.nn_name = nn_name + self.relax_mode = relax_mode + RX_MODE.validate(self.relax_mode) + self.fmax = fmax + self.steps = steps + self.verbose = verbose + self.optimizer_name = optimizer_name + self.pressure = pressure + + self.workdir = workdir_with_prefix(workdir, prefix) + + # Write pickle file for object persistence. + self.pickle_dump(self.workdir) + + def __str__(self) -> str: + return self.to_string() + + def to_string(self, verbose: int = 0) -> str: + """String representation with verbosity level `verbose`.""" + return f"""\ + +{self.__class__.__name__} parameters: + + site index = {self.isite} + nx = {self.nx} + ny = {self.ny} + nz = {self.nz} + relax_mode = {self.relax_mode} + fmax = {self.fmax} + steps = {self.steps} + optimizer = {self.optimizer_name} + pressure = {self.pressure} + calculator = {self.nn_name} + verbose = {self.verbose} + workdir = {str(self.workdir)} + +=== INITIAL STRUCTURE === + +{self.initial_structure} +""" + + def _make_directory(self, start, stop) -> Path: + """ + Create sub-directory inside the workdir to perform relaxations + for a subset of structures defined by `start` and `stop`. + Return path to directory. + """ + # Make sure we are not already running similar ranges. + top = str(self.workdir) + dirpaths = [name for name in os.listdir(top) if os.path.isdir(os.path.join(top, name)) + and name.startswith("start_")] + for dpath in dirpaths: + # Directory name has pattern: f"start:{start}-stop:{stop}" + tokens = dpath.split("-") + this_start = int(tokens[0].replace("start_", "")) + this_stop = int(tokens[1].replace("stop_", "")) + if start >= this_start and start < this_stop: + raise RuntimeError(f"{start=}, {stop=} range overlaps with {dpath=}") + + # Make sure we are not already running the same range. + newdir = self.workdir / f"start_{start}-stop_{stop}" + if newdir.exists(): + raise RuntimeError(f"{newdir=} already exists!") + + newdir.mkdir() + return newdir + + def get_atoms_with_frac_coords(self, frac_coords, with_fixed_atoms=True) -> Atoms: + """ + Return Atoms instance with frac_coords at site index `isite`. + By default, Fixed Contraints are applied to all atoms except isite. + """ + structure = self.initial_structure.copy() + structure._sites[self.isite].frac_coords = np.array(frac_coords) + atoms = get_atoms(structure) + if with_fixed_atoms: + fix_atoms(atoms, fix_inds=[i for i in range(len(atoms)) if i != self.isite]) + return atoms + + def get_structure_with_two_frac_coords(self, frac_coords1, frac_coords2) -> Structure: + """ + Return Structure instance with frac_coords at site index `isite`. + """ + new_structure = self.initial_structure.copy() + species = new_structure._sites[self.isite].species + new_structure._sites[self.isite].frac_coords = np.array(frac_coords1) + new_structure.insert(self.isite, species, np.array(frac_coords2)) + return new_structure + + def run_start_count(self, start: int, count: int) -> Path: + """ + Invoke ASE to relax `count` structures starting from index `start`. + Stores unique results in an internal list and save results to file in pickle format. + Return Path to the directory with the results. + + Args: + start: Index of initial structure. + count: Number of structures to relax. If < 0, all structures are considered. + """ + if count < 0: + count = self.nx * self.ny * self.nz + + stop = start + count + directory = self._make_directory(start, stop) + + calculator = as_calculator(self.nn_name) + + entries, errors = [], [] + for cnt, (ix, iy, iz) in enumerate(itertools.product(range(self.nx), range(self.ny), range(self.nz))): + if not (stop > cnt >= start): continue + + atoms = self.get_atoms_with_frac_coords((ix/self.nx, iy/self.ny, iz/self.nz)) + + if self.relax_mode == RX_MODE.no: + # Just GS energy, no relaxation. + entry = Entry.from_atoms_and_calculator(self.isite, atoms, calculator) + + else: + try: + # Relax atoms with constraints. + relax = relax_atoms(atoms, + relax_mode=self.relax_mode, + optimizer=self.optimizer_name, + fmax=self.fmax, + pressure=self.pressure, + verbose=self.verbose, + steps=self.steps, + traj_path=directory / "relax.traj", + calculator=calculator, + ) + + entry = Entry.from_traj(self.isite, relax.traj) + + except Exception: + entry = None + errors.append((ix, iy, iz)) + + # This is the part in which duplicated entries are discarded. + if entry is not None and entry not in entries: + entries.append(entry) + + if errors: + print(f"ASE relaxation raised {len(errors)} exception(s)!") + + # Save results in pickle format. + with open(directory / "entries.pickle", "wb") as fh: + pickle.dump(entries, fh) + + with open(directory / "COMPLETED", "wt") as fh: + fh.write("completed") + + return directory + + def run(self, nprocs) -> None: + """ + Main entry point for client code. + Run relaxations using a multiprocessing Pool with nprocs processors. + If nprocs is None or negative, the total number of CPUs in the system is used. + """ + py_path = self.workdir / "analyze.py" + print("Writing python script to analyze the results in:", py_path.name) + + with PythonScript(py_path) as script: + script.add_text(""" +def main(): + from abipy.tools.printing import print_dataframe + from abipy.ml.relax_scanner import RelaxScannerAnalyzer + rsa = RelaxScannerAnalyzer.from_topdir(".") + #print_dataframe(rsa.df) + #rsa.histplot() + + # Tolerances for pairs detection. + #ediff_tol, dist_tol = 1e-3, 3.5 # For max values. + ediff_tol, dist_tol = (0, 1e-3), (0.5, 3.5) # For ranges. + + # Find pairs and save them to file + rsa.pairs_enediff_dist(ediff_tol, dist_tol, neb_method=None, nprocs=-1) + + # Find pairs and compute static transition path. + # NO NEB HERE, just linear interpolation between final and end points + # followed by total energy calculations. + #rsa.pairs_enediff_dist(ediff_tol, dist_tol, neb_method="static", nprocs=-1) + + # Find pairs and compute transition path with NEB. + #rsa.pairs_enediff_dist(ediff_tol, dist_tol, neb_method="aseneb", nprocs=-1) +""").add_main() + + ntasks = self.nx * self.ny * self.nz + nprocs = nprocs_for_ntasks(nprocs, ntasks, title="Begin relaxations") + if nprocs == 1: + # Sequential execution. + self.run_start_count(0, -1) + else: + # Split ntasks across nprocs. + args_list = [] + div, rest = divmod(ntasks, nprocs) + for iproc in range(nprocs): + start, stop = iproc * div, (iproc + 1) * div + count = div + if iproc == nprocs - 1: + stop += rest + count = div + rest + args_list.append((self, start, count)) + + with Pool(processes=nprocs) as pool: + pool.map(_map_run_start_count, args_list) + + +def _map_run_start_count(args): + """Function passed to pool.map.""" + scanner, start, count = args + return scanner.run_start_count(start, count) + + +def _map_run_pair(kwargs): + """Function passed to pool.map.""" + self = kwargs.pop("self") + return self.run_pair(**kwargs) + + + +class RelaxScannerAnalyzer: + """ + Analyze the results produced by RelaxScanner. + The object is usually constructed by calling `from_topdir`: + + Example: + + from abipy.ml.relax_scanner import RelaxScannerAnalyzer + rsa = RelaxScannerAnalyzer.from_topdir(".") + + print_dataframe(rsa.df) + rsa.histplot() + rsa.pairs_enediff_dist(ediff_tol=1e-3, dist_tol=3.5, neb_method=None) + """ + + @classmethod + def from_topdir(cls, topdir: Path) -> RelaxScannerAnalyzer: + """ + Merge all entries starting from directory `topdir`. + """ + topdir = Path(topdir) + top = str(topdir) + dirpaths = [name for name in os.listdir(top) if os.path.isdir(os.path.join(top, name)) + and name.startswith("start_")] + + entries = [] + for dpath in dirpaths: + pickle_path = topdir / Path(dpath) / "entries.pickle" + completed_path = topdir / Path(dpath) / "COMPLETED" + if not (pickle_path.exists() and completed_path.exists()): continue + with open(pickle_path, "rb") as fh: + for e in pickle.load(fh): + if e in entries: continue + entries.append(e) + + if not entries: + raise ValueError(f"Entries is empty. Cannot find `entries.pickle` files in {topdir=}") + + # Reconstruct RelaxScanner instance from pickle file. + scanner = RelaxScanner.pickle_load(topdir) + return cls(entries, scanner) + + def __init__(self, entries: list[Entry], scanner: RelaxScanner, verbose: int = 0): + self.entries = entries + self.scanner = scanner + self.verbose = verbose + + # Look for VASP templates. + self.jobsh_path = self.workdir / "job.sh" + self.incar_path = self.workdir / "INCAR" + self.potcar_path = self.workdir / "POTCAR" + self.kpoints_path = self.workdir / "KPOINTS" + print("has_vasp_inputs", self.has_vasp_inputs()) + + def has_vasp_inputs(self) -> bool: + """Return True if all the input files required to run VASP exist.""" + return True + return self.jobsh_path.exists() and self.incar_path.exists() and \ + self.potcar_path.exists() and self.kpoints_path.exists() + + @property + def workdir(self): + return self.scanner.workdir + + #@property + #def initial_structure(self): + # return self.scanner.initial_structure + + @lazy_property + def df(self) -> pd.DataFrame: + """ + Dataframe with the total energy in eV and the relaxed coordinates + of the atomic site that has been relaxed. + """ + dict_list = [] + entries = self.entries + for entry in entries: + site = entry.structure[entry.isite] + x, y, z, fx, fy, fz = (*site.coords, *site.frac_coords) + fmods = np.array([np.linalg.norm(force) for force in entry.forces]) + dict_list.append(dict( + energy=entry.energy, + xcart0=x, xcart1=y, xcart2=z, + xred0=fx, xred1=fy, xred2=fz, + fmin=fmods.min(), fmax=fmods.max(), fmean=fmods.mean(), + )) + + df = pd.DataFrame(dict_list).sort_values(by="energy", ignore_index=True) + + # Add metadata + df.attrs['lattice_matrix'] = entries[0].structure.lattice.matrix + df.attrs['structure'] = entries[0].structure + return df + + def __str__(self): + return self.to_string() + + def to_string(self, verbose=0) -> str: + s = self.scanner.to_string(verbose=verbose) + return s + + @lazy_property + def lattice(self): + return Lattice(self.df.attrs["lattice_matrix"]) + + def pairs_enediff_dist(self, ediff_tol=1e-3, dist_tol=3.5, neb_method=None, nprocs=-1) -> list[Pair]: + """ + Find pairs (i.e. relaxed configurations) that differ in energy less than ediff_tol + and with relaxed sites that are less than dist_tol Angstrom apart + (minimum-image convention is applied). + + Args: + ediff_tol: Energy difference in eV. Tuple for range, scalar for max value. + dist_tol: Tolerance on site distance in Ang. Tuple for range, scalar for max value. + neb_method: None to print pairs only, "static" to compute energy profile along static path + or ASE neb method to perform NEB calculation. + nprocs: Number of processes for Multiprocessing parallelism. + + Return: list of Pair objects. + """ + def adiff_matrix(vec): + """Return matrix A_ij with all the differences |vec_i - vec_j|.""" + x = np.reshape(vec, (len(vec), 1)) + return np.abs(x - x.transpose()) + + energy = self.df["energy"].to_numpy(dtype=float) + aediff_mat = adiff_matrix(energy) + xreds = self.df[["xred0", "xred1", "xred2"]].to_numpy(dtype=float) + + # Define ranges + if isinstance(ediff_tol, (tuple, list)): + ediff_min, ediff_max = ediff_tol + else: + ediff_min, ediff_max = 0.0, float(ediff_tol) + + if isinstance(dist_tol, (tuple, list)): + dist_min, dist_max = dist_tol + else: + dist_min, dist_max = 0.0, float(dist_tol) + + # Find pairs. + pairs = [] + inds = np.triu_indices_from(aediff_mat) + for i, j in zip(inds[0], inds[1]): + if i == j or not (ediff_max >= aediff_mat[i,j] >= ediff_min): continue + _, d2 = pbc_shortest_vectors(self.lattice, xreds[i], xreds[j], return_d2=True) + dist = np.sqrt(float(d2)) + if not (dist_max >= dist >= dist_min): continue + pair = Pair(index1=i, index2=j, ediff=energy[j] - energy[i], dist=dist, + frac_coords1=xreds[i], frac_coords2=xreds[j]) + pairs.append(pair) + + print(f"Found {len(pairs)} pair(s) with {ediff_min=}, {ediff_max=} eV and {dist_min=}, {dist_max=} Ang.") + if not pairs: + print("Returning immediately from pairs_enediff_dist") + return pairs + + if neb_method is None: + # Build dataframe with pairs info. + df = pd.DataFrame([pair.get_dict4pandas() for pair in pairs]) + else: + # Compute the transition energy for each pair either by + # performing NEB or single point calculations along a linear path connecting the two sites. + nprocs = nprocs_for_ntasks(nprocs, len(pairs), + title=f"Computing transition energies for each pair with {neb_method=}") + + # Run'em all + if nprocs == 1: + d_list = [self.run_pair(pair, neb_method=neb_method) for pair in pairs] + else: + kws_list = [dict(self=self, pair=pair, neb_method=neb_method) for pair in pairs] + with Pool(processes=nprocs) as pool: + d_list = pool.map(_map_run_pair, kws_list) + + df = pd.DataFrame(d_list) + print(df) + + df["ediff_min"], df["ediff_max"] = ediff_min, ediff_max + df["distl_min"], df["dist_max"] = dist_min, dist_max + df = df.sort_values(by=["ediff", "dist"], ignore_index=True) + print_dataframe(df) + path = self.workdir / f"{neb_method=}_data.csv".replace("'", "") + print(f"Saving results to {path} in csv format.") + df.to_csv(path) + + return pairs + + def run_pair(self, pair: Pair, neb_method="static", nimages=14, climb=False) -> dict: + """ + Perform NEB calculation for the given pair. Return dictionary with results. + NB: Contraints are enforced during the NEB. + + Args: + pair: Info on Pair. + neb_method: One of the NEB methods implemented by ASE e.g. "aseneb" + or "static" to compute total energies along a static path. + nimages: Number of images + climb: True to use climbing images. + """ + # Get atoms with fixed constraints. + scanner = self.scanner + + delta_frac = pair.frac_coords2 - pair.frac_coords1 + initial_atoms = scanner.get_atoms_with_frac_coords(pair.frac_coords1) + final_atoms = scanner.get_atoms_with_frac_coords(pair.frac_coords2) + + relax_mode = "no" + pair_str = f"{pair.index1}-{pair.index2}" + calc_builder = CalcBuilder(scanner.nn_name) + + # TODO: Check mic + if neb_method == "static": + # Just total energy calculations with a fixed path. + calculators = [calc_builder.get_calculator() for i in range(nimages)] + neb = make_ase_neb(initial_atoms, final_atoms, nimages, + calculators, "aseneb", climb, + method='linear', mic=False) + + #from abipy.ase.neb import interpolate + #interpolate(images, mic=False, apply_constraint=False) + + # NB: It's not a NEB ML object but it provides a similar API. + my_workdir = self.workdir / f"GSLIST/pair_{pair_str}" + ml_neb = MlGsList(neb.images, scanner.nn_name, self.verbose, + workdir=my_workdir) + + # Write POSCAR file with the two sites so that we can visualize it with e.g. Vesta. + structure_with_two_sites = scanner.get_structure_with_two_frac_coords(pair.frac_coords1, pair.frac_coords2) + structure_with_two_sites.to(filename=str(my_workdir/ "TWO_SITES_POSCAR.vasp")) + + else: + # Real NEB stuff + my_workdir = self.workdir / f"NEB/pair_{pair_str}" + ml_neb = MlNeb(initial_atoms, final_atoms, + nimages, neb_method, climb, scanner.optimizer_name, + relax_mode, scanner.fmax, scanner.pressure, + scanner.nn_name, self.verbose, + workdir=my_workdir) + + if self.verbose: print(ml_neb.to_string(verbose=self.verbose)) + + ml_neb.run() + neb_data = ml_neb.read_neb_data() + + if self.has_vasp_inputs(): + # Create directories to run VASP. Note symlinks except for jobsh_path. + for ip in range(2): + directory = ml_neb.workdir / f"VASP_JOB_{ip}" + directory.mkdir() + atoms = initial_atoms if ip == 0 else final_atoms + write_vasp(directory / "POSCAR", atoms, label=None) + #shutil.copyfile(self.jobsh_path, directory / "job.sh") + (directory / "INCAR").symlink_to(self.incar_path) + (directory / "KPOINTS").symlink_to(self.kpoints_path) + (directory / "POTCAR").symlink_to(self.potcar_path) + (directory / "__INITIALIZED__").touch() + + # Build out_data dict. + out_data = pair.get_dict4pandas() + + # Add keys from neb_data. + keys = ["barrier_with_fit", "energy_change_with_fit", + "barrier_without_fit", "energy_change_without_fit" + ] + out_data.update({k: neb_data[k] for k in keys}) + out_data.update(dict(neb_method=neb_method, nimages=nimages, climb=climb)) + + return out_data + + @add_fig_kwargs + def histplot(self, ax=None, **kwargs): + """ + Plot histogram to show energy distribution. + """ + ax, fig, plt = get_ax_fig_plt(ax=ax) + import seaborn as sns + sns.histplot(self.df, x="energy", ax=ax) + return fig diff --git a/abipy/ml/tests/__init__.py b/abipy/ml/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/abipy/ml/tools.py b/abipy/ml/tools.py new file mode 100644 index 000000000..11664d53f --- /dev/null +++ b/abipy/ml/tools.py @@ -0,0 +1,99 @@ +""" +""" +from __future__ import annotations + +import os +import warnings +import numpy as np + +from fnmatch import fnmatch +from monty.string import list_strings +from abipy.core.structure import Structure +from abipy.dynamics.hist import HistFile + + +def get_energy_step(step: dict) -> float: + """ + Copied from final_energy property in vasp.outputs. + + Addresses a bug in vasprun.xml. See https://www.vasp.at/forum/viewtopic.php?f=3&t=16942 + """ + final_istep = step + total_energy = final_istep["e_0_energy"] + final_estep = final_istep["electronic_steps"][-1] + electronic_energy_diff = final_estep["e_0_energy"] - final_estep["e_fr_energy"] + total_energy_bugfix = np.round(electronic_energy_diff + final_istep["e_fr_energy"], 8) + if np.abs(total_energy - total_energy_bugfix) > 1e-7: + return total_energy_bugfix + return total_energy + + +def get_structures_labels_from_file(filepath: str) -> tuple[list[Structure], dict]: + """ + Read energies, forces, stresses and magmoms from an external file. + Return list of structures and dict with results. + """ + basename = os.path.basename(str(filepath)) + + if basename.endswith("_HIST.nc"): + with HistFile(filepath) as hist: + structures = hist.reader.read_all_structures() + # etotals per atom in eV. + energies_per_atom = [float(e) / hist.r.natom for e in hist.etotals] + cart_forces = hist.r.read_cart_forces(unit="eV ang^-1") + # GPa units. + stress_cart_tensors, pressures = hist.r.read_cart_stress_tensors() + labels = { + "energies": energies_per_atom, + "forces": cart_forces, + "stresses": stress_cart_tensors, + #"magmoms": None, + } + + elif fnmatch(basename, "vasprun*.xml*"): + from pymatgen.io.vasp.outputs import Vasprun + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + vasprun = Vasprun(filepath) + + structures = vasprun.structures + natom = len(structures[0]) + energies_per_atom, forces, stresses, magmoms = [], [], [], [] + for step in vasprun.ionic_steps: + energies_per_atom.append(get_energy_step(step) / natom) + forces.append(step["forces"]) + stresses.append(step["stress"]) + + labels = { + "energies": energies_per_atom, + "forces": forces, + "stresses": stresses, + #"magmoms": None, + } + + else: + raise ValueError(f"Don't know how to extract data from: {filepath=}") + + return structures, labels + + +def get_structures_labels_from_files(filepaths) -> tuple[list[Structure], dict]: + """ + Read energies, forces, stresses and magmoms from an external file. + Return list of structures and dict with results. + """ + for i, path in enumerate(list_strings(filepaths)): + this_structures, this_labels = get_structures_labels_from_file(path) + if i == 0: + structures, labels = this_structures, this_labels + else: + structures += this_structures + for k in labels: + if labels[k] is None: continue + labels[k] += this_labels[k] + + #for s in structures: print(s) + #for k, v in labels.items(): print(k, v) + + return structures, labels + diff --git a/abipy/panels/a2f.py b/abipy/panels/a2f.py new file mode 100644 index 000000000..c59c26d80 --- /dev/null +++ b/abipy/panels/a2f.py @@ -0,0 +1,93 @@ +"""Panels to interact with A2F files.""" +from __future__ import annotations + +#import param +import panel as pn +import panel.widgets as pnw + +from .core import (PanelWithElectronBands, ply, mpl, dfc, depends_on_btn_click) + + +class A2fFilePanel(PanelWithElectronBands): + """ + Panel with widgets to interact with a |GsrFile|. + """ + def __init__(self, ncfile, **params): + PanelWithElectronBands.__init__(self, ebands=ncfile.ebands, **params) + self.ncfile = ncfile + + self.a2f_view_btn = pnw.Button(name="Plot a2F", button_type='primary') + + def get_a2f_view(self) -> pn.Row: + """ + Return Row with widgets to visualize the structure. + """ + return pn.Row( + self.pws_col(["## Visualize a2F", + "a2f_view_btn", + ]), + self.on_view_a2f, + ) + + @depends_on_btn_click('a2f_view_btn') + def on_view_a2f(self): + """Visualize a2f function.""" + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + ncfile = self.ncfile + + a2f = ncfile.a2f_qcoarse + ca(f"## A2F") + fig = a2f.plot_with_lambda(units="eV", **self.mpl_kwargs) + ca(mpl(fig)) + + ca(f"## A2F + nu") + fig = a2f.plot_nuterms(units="eV", ax_mat=None, with_lambda=True, fontsize=12, + xlims=None, ylims=None, label=None, **self.mpl_kwargs) + ca(mpl(fig)) + + for what in ("gamma", "lambda"): + ca(f"## Phbands with {what}") + fig = ncfile.plot(what=what, units="eV", scale=None, alpha=0.6, ylims=None, + ax=None, colormap="jet", **self.mpl_kwargs) + ca(mpl(fig)) + + return col + + def get_panel(self, as_dict=False, **kwargs): + """ + Return tabs with widgets to interact with the A2F file. + """ + d = {} + + #d["Summary"] = self.get_summary_view_for_abiobj(self.gsr) + d["a2F"] = self.get_a2f_view() + d["e-Bands"] = self.get_plot_ebands_view() + + #tabs_dict = self.ncfile.phbands.get_panel(as_dict=True) + #for k, v in tabs_dict.items(): + # d[k] = v + + kpoints = self.ncfile.ebands.kpoints + if kpoints.is_ibz: + # Add DOS tab but only if k-sampling. + d["e-DOS"] = self.get_plot_edos_view() + d["SKW"] = self.get_skw_view() + + if not self.ncfile.ebands.isnot_ibz_sampling(): + d["Ifermi"] = self.get_ifermi_view() + #d["fsviewer"] = self.get_fsviewer_view() + + d["Structure"] = self.get_structure_view() + d["NcFile"] = self.ncfile.get_ncfile_view() + + # TODO + #d["Global"] = pn.Row( + # pn.Column("# Global options", + # *self.pws("units", "mpi_procs", "verbose"), + # ), + # self.get_software_stack()) + #)) + + if as_dict: return d + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) diff --git a/abipy/panels/assets/img/abinit_favicon.ico b/abipy/panels/assets/img/abinit_favicon.ico new file mode 100644 index 000000000..42e56dc65 Binary files /dev/null and b/abipy/panels/assets/img/abinit_favicon.ico differ diff --git a/abipy/panels/assets/img/abinit_logo.png b/abipy/panels/assets/img/abinit_logo.png new file mode 100644 index 000000000..7cb4ab2ce Binary files /dev/null and b/abipy/panels/assets/img/abinit_logo.png differ diff --git a/abipy/panels/assets/img/abipy_logo.png b/abipy/panels/assets/img/abipy_logo.png new file mode 100644 index 000000000..055c128d6 Binary files /dev/null and b/abipy/panels/assets/img/abipy_logo.png differ diff --git a/abipy/panels/core.py b/abipy/panels/core.py index ca460e52b..885c16667 100644 --- a/abipy/panels/core.py +++ b/abipy/panels/core.py @@ -1,195 +1,1715 @@ -""""Base classes and mixins for AbiPy panels.""" +""""Basic tools and mixin classes for AbiPy panels.""" +from __future__ import annotations -#import abc +import io +import sys +import tempfile +import functools +import textwrap +import time +import traceback +import shutil import param +import numpy as np +import pandas as pd +import bokeh.models.widgets as bkw import panel as pn import panel.widgets as pnw -import bokeh.models.widgets as bkw from monty.functools import lazy_property +from monty.termcolor import cprint +from abipy.core import abinit_units as abu +from abipy.core.structure import Structure +from abipy.tools.plotting import push_to_chart_studio +from abipy.tools.decorators import Appender + +from abipy.tools.plotting import mpl_to_ply + +_ABINIT_TEMPLATE_NAME = "FastList" + +def set_abinit_template(template_name: str): + global _ABINIT_TEMPLATE_NAME + _ABINIT_TEMPLATE_NAME = template_name + + +def get_abinit_template_cls_kwds() -> tuple: + cls = get_template_cls_from_name(_ABINIT_TEMPLATE_NAME) + kwds = dict(header_background="#ff8c00", # Dark orange + favicon="/assets/img/abinit_favicon.ico", + logo="/assets/img/abipy_logo.png", # TODO: Need new panel version to fix logo alignment in FastLIst. + #sidebar_footer (str): Can be used to insert additional HTML. + # For example a menu, some additional info, links etc. + #enable_theme_toggle=False, # If True a switch to toggle the Theme is shown. Default is True. + ) + + return cls, kwds + + +def open_html(html_string: str, browser: str = None) -> None: + """ + Open a string with an HTML document in browser. + """ + import tempfile + import webbrowser + with tempfile.NamedTemporaryFile(mode="wt", suffix=".html", delete=False) as tmpfile: + tmpfile.write(html_string) + webbrowser.get(browser).open_new_tab(f"file://{tmpfile.name}") + + +def abipanel(panel_template: str = "FastList"): + """ + Activate panel extensions used by AbiPy. Return panel module. + + Args: + panel_template: String with the name of the panel template to be used by default. + """ + try: + import panel as pn + except ImportError as exc: + cprint("Use `conda install panel` or `pip install panel` to install the python package.", "red") + raise exc + + set_abinit_template(panel_template) + + #pn.extension(loading_spinner='dots', loading_color='#00aa41') + + pn.extension(notifications=True) + #pn.config.notifications = True + #pn.state.notifications.position = 'top-right' + + extensions = [ + "plotly", + #"katex", + "mathjax", + "terminal", + "tabulator", + "ace", # NB: This enters in conflict with Abipy Book + #"gridstack", + #"ipywidgets", + ] + + css_files = [ + # FIXME + #pn.io.resources.CSS_URLS['font-awesome'], + ] + + #pn.extension(loading_spinner='petal', loading_color='#00aa41') + #print("loading extensions:", extensions) + + #import os + #abipy_css = os.path.join(os.path.dirname(__file__), "assets", "css", "abipy.css") + + pn.extension(*extensions, css_files=css_files) #, css_files=[abipy_css]) + #pn.extension(template='fast', theme='dark') + + pn.config.js_files.update({ + # This for copy to clipboard. + "clipboard": "https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js", + # This for the jsmol viewer. + "jsmol": "https://chemapps.stolaf.edu/jmol/jsmol/JSmol.min.js", + }) + + #pn.extension('ipywidgets') + + #pn.config.js_files.update({ + # 'ngl': 'https://cdn.jsdelivr.net/gh/arose/ngl@v2.0.0-dev.33/dist/ngl.js', + #}) + #pn.extension(comms='ipywidgets') + #pn.config.sizing_mode = "stretch_width" + + #pn.config.css_files.extend([ + # "https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css", + #]) + + #css = """ + # .pnx-file-upload-area input[type=file] { + # width: 100%; + # height: 100%; + # border: 3px dashed #9E9E9E; + # background: transparent; + # border-radius: 5px; + # text-align: left; + # margin: auto; + # } + #""" + + #css = open(abipy_css, "rt").read() + #pn.config.raw_css.append(css) + + return pn + + +def gen_id(n: int = 1, pre: str = "uuid-"): + """ + Generate ``n`` universally unique identifiers prepended with ``pre`` string. + Return string if n == 1 or list of strings if n > 1 + """ + # The HTML4 spec says: + # ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, + # digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods ("."). + import uuid + if n == 1: + return pre + str(uuid.uuid4()) + elif n > 1: + return [pre + str(uuid.uuid4()) for i in range(n)] + else: + raise ValueError("n must be > 0 but got %s" % str(n)) + + +def get_template_cls_from_name(name: str): + """ + Return panel template from string. + Support name in the form `FastList` as well as `FastListTemplate`. + """ + # Example: pn.template.FastGridTemplate or pn.template.GoldenTemplate + if hasattr(pn.template, name): + return getattr(pn.template, name) + + try_name = name + "Template" + if hasattr(pn.template, try_name): + return getattr(pn.template, try_name) + + raise ValueError(f""" +Don't know how to return panel template from string: `{name}`. +Possible templates are: {list(pn.template.__dict__.keys())} +""") + + +add_mp_rest_docstring = Appender(""" +NB: Requires a String API key for accessing the MaterialsProject REST interface. +Please apply on the Materials Project website for one. +If this is None, the code will check if there is a `PMG_MAPI_KEY` in your .pmgrc.yaml. +If so, it will use that environment +This makes easier for heavy users to simply add this environment variable to their setups and MPRester can +then be called without any arguments. +""", indents=0) + + +def depends_on_btn_click(btn_name: str, + show_doc: bool = True, + show_shared_wdg_warning: bool = True, + show_exc: bool = True): + """ + This decorator is used for callbacks triggered by a button of name `btn_name` + + Args: + btn_name: String with the name of the button. + show_doc: If True, a Markdown pane with the doc string is returned the first time. + show_shared_warning: + show_exc: If True, a Markdown pane with the backtrace is returned if an exception is raised. + """ + def decorator(func): + @functools.wraps(func) + def decorated(*args, **kwargs): + self = args[0] + btn = getattr(self, btn_name) + if btn.clicks == 0: + if show_doc and self._enable_show_doc: + doc = getattr(self, func.__name__).__doc__ + if doc is None: + doc = f"\nNo docstring found for function `{func.__name__}`\n" + doc = textwrap.dedent(doc) + doc = f"## Description\n\n{doc}\n\n" + #print(doc) + objects = [my_md(doc)] + if show_shared_wdg_warning and self._enable_show_shared_wdg_warning: + warning = pn.pane.Alert(SHARED_WIDGETS_WARNING, alert_type="danger") + objects.append(warning) + return pn.Column(*objects, sizing_mode="stretch_width") + else: + return None + + with ButtonContext(btn): + return func(*args, **kwargs) + + f = pn.depends(f"{btn_name}.clicks")(decorated) + if show_exc: f = show_exception(f) + return f + + return decorator + + +def show_exception(func): + """ + This decorator returns a Markdown pane with the backtrace + if the function raises an exception. + """ + @functools.wraps(func) + def decorated(*args, **kwargs): + try: + return func(*args, **kwargs) + except Exception as exc: + s = traceback.format_exc() + print(s) + return pn.pane.Markdown(f"```shell\n{s}\n```", sizing_mode="stretch_both") + + return decorated + + +class HTMLwithClipboardBtn(pn.pane.HTML): + """ + Receives an HTML string and returns an HTML pane with a button that allows users + to copy the content to the system clipboard. + Requires call to abipanel to load the JS extension. + """ + + # This counter is shared by all the instances. + # We use it so that the js script is included only once. + #_init_counter = [0] + + def __init__(self, object=None, btn_cls=None, **params): + super().__init__(object=object, **params) + + #self._init_counter[0] += 1 + my_id = gen_id() + btn_cls = "bk bk-btn bk-btn-default" if btn_cls is None else str(btn_cls) + + # Build new HTML string with js section if first call. + new_text = f""" +
    {self.object}
    +
    + +
    + +""" + if True: # self._init_counter[0] == 1: + #new_text += " " + # $(document).ready(function() { + new_text += """ """ + + self.object = new_text + + +def mpl(fig, sizing_mode='stretch_width', with_controls=False, with_divider=True, **kwargs) -> pn.Column: + """ + Helper function returning a panel Column with a matplotly pane followed by + a divider and (optionally) controls to customize the figure. + """ + col = pn.Column(sizing_mode=sizing_mode); ca = col.append + + #try: + # import ipympl + # has_ipympl = True + #except ImportError: + # has_ipympl = False + + #if "interactive" not in kwargs and has_ipympl: # "ipympl" in sys.modules: + # print("mpl in interactive mode") + # kwargs["interactive"] = True + + if "tight" not in kwargs: kwargs["tight"] = True + + mpl_pane = pn.pane.Matplotlib(fig, **kwargs) + ca(mpl_pane) + + if with_controls: + ca(pn.Accordion(("matplotlib controls", mpl_pane.controls(jslink=True)))) + ca(pn.layout.Divider()) + + if with_divider: + ca(pn.layout.Divider()) + + return col + +def ply(fig, sizing_mode='stretch_both', with_chart_studio=False, with_help=False, + with_divider=True, with_controls=False) -> pn.Column: + """ + Helper function returning a panel Column with a plotly pane, buttons to push the figure + to plotly chart studio and, optionally, controls to customize the figure. + """ + col = pn.Column(sizing_mode=sizing_mode); ca = col.append + + config = dict( + responsive=True, + #showEditInChartStudio=True, + showLink=True, + plotlyServerURL="https://chart-studio.plotly.com", + ) + + plotly_fig = mpl_to_ply(fig) + + plotly_pane = pn.pane.Plotly(plotly_fig, config=config) + ca(plotly_pane) + if with_chart_studio: + md = pn.pane.Markdown(""" -def sizing_mode_select(name="sizing_mode", value="scale_both"): +The button on the left allows you to **upload the figure** to the +plotly [chart studio server](https://plotly.com/chart-studio-help/) +so that it is possible to share the figure or customize it via the chart studio editor. +In order to use this feature, you need to create a free account following the instructions +reported [in this page](https://plotly.com/chart-studio-help/how-to-sign-up-to-plotly/). +Then **add the following section** to your $HOME/.pmgrc.yaml configuration file: + +```yaml +PLOTLY_USERNAME: john_doe # Replace with your username +PLOTLY_API_KEY: secret # To get your api_key go to: profile > settings > regenerate key +``` + +so that AbiPy can authenticate your user on the chart studio portal before pushing the figure to the cloud. +If everything is properly configured, a new window is automatically created in your browser. +""") + + btn = pnw.Button(name="Upload figure to chart studio server") + + def push_to_cs(event): + with ButtonContext(btn): + push_to_chart_studio(fig) + + btn.on_click(push_to_cs) + + if with_help: + acc = pn.Accordion(("Help", md)) + ca(pn.Row(btn, acc)) + else: + ca(pn.Row(btn)) + + if with_controls: + ca(pn.Accordion(("plotly controls", plotly_pane.controls(jslink=True)))) + + if with_divider: + ca(pn.layout.Divider()) + + return col + + +def dfc(df: pd.DataFrame, + #wdg_type: str = "dataframe", + wdg_type: str ="tabulator", # More recent version. Still problematic + with_export_btn=True, with_controls=False, with_divider=True, transpose=False, **kwargs): + """ + Helper function returning a panel Column with a DataFrame or Tabulator widget followed by + a divider and (optionally) controls to customize the figure. + + Note that not all the options work as exected. See comments below. + """ + if "disabled" not in kwargs: kwargs["disabled"] = True + #if "sizing_mode" not in kwargs: kwargs["sizing_mode"] = "stretch_both" + if "sizing_mode" not in kwargs: kwargs["sizing_mode"] = "scale_width" + if transpose: + df = df.transpose() + + if wdg_type == "dataframe": + if "auto_edit" not in kwargs: kwargs["auto_edit"] = False + w = pnw.DataFrame(df, **kwargs) + elif wdg_type == "tabulator": + w = pnw.Tabulator(df, **kwargs) + else: + raise ValueError(f"Don't know how to handle widget type: `{wdg_type}`") + + col = pn.Column(sizing_mode='stretch_both'); ca = col.append + ca(w) + + if with_export_btn: + # Define callbacks with closure. + def to_xlsx(): + """ + Based on https://panel.holoviz.org/gallery/simple/file_download_examples.html + NB: This requires xlsxwriter package else pandas raises ModuleNotFoundError. + """ + output = io.BytesIO() + writer = pd.ExcelWriter(output, engine='xlsxwriter') + df.to_excel(writer, sheet_name="DataFrame") + writer.save() # Important! + output.seek(0) + return output + + def to_latex(): + """Convert DataFrame to latex string.""" + output = io.StringIO() + df.to_latex(buf=output) + output.seek(0) + return output + + def to_md(): + """Convert DataFrame to markdown string.""" + output = io.StringIO() + df.to_markdown(buf=output) + output.seek(0) + return output + + def to_json(): + """Convert DataFrame to json string.""" + output = io.StringIO() + df.to_json(path_or_buf=output) + output.seek(0) + return output + + d = dict( + xlsx=pnw.FileDownload(filename="data.xlsx", callback=to_xlsx), + tex=pnw.FileDownload(filename="data.tex", callback=to_latex), + md=pnw.FileDownload(filename="data.md", callback=to_md), + json=pnw.FileDownload(filename="data.json", callback=to_json), + ) + + # For the time being we use a Row with buttons. + #ca(pn.Row(*d.values(), sizing_mode="scale_width")) + ca(pn.Card(*d.values(), title="Export table", collapsed=True, + sizing_mode='stretch_width', header_color="blue", + )) + + #def download(event): + # file_download = d[event.new] + # #print(f'Clicked menu item: "{event.new}"') + # print(file_download) + # #file_download._clicks = -1 + # file_download._transfer() + # return file_download.callback() + + # FIXME: Menu button occupies less space but the upload does not work + #menu_btn = pnw.MenuButton(name='Export table', items=list(d.keys())) + #menu_btn.on_click(download) + #ca(menu_btn) + + if with_controls: + ca(pn.Accordion(("dataframe controls", w.controls(jslink=True)))) + + if with_divider: + ca(pn.layout.Divider()) + + return col + + +def my_md(string: str, **kwargs) -> pn.pane.Markdown: + """ + Return a Markdown pane from `string`. + Extra kwargs are passed to pane.Markdown. + The string can contain links to Abinit variables in the wikilink format. + + .. example:: + + The anaddb variable [[dipdip@anaddb]] has the same meaning as the Abinit variable [[dipdip]]. """ - Widget to select the value of sizing_mode. See https://panel.holoviz.org/user_guide/Customization.html + import re + WIKILINK_RE = r'\[\[([^\[]+)\]\]' + from abipy.abio.abivar_database.variables import get_codevars + vars_code = get_codevars() + + def repl(match): + var_name = match.group(1).strip() + codename = "abinit" + i = var_name.find("@") + if i != -1: + var_name, codename = var_name[:i], var_name[i+1:] + try: + var = vars_code[codename][var_name] + return var.html_link() + except: + return f"WRONG LINK for {var_name}" + + string = re.sub(WIKILINK_RE, repl, string) + + # TODO: Latex + extra_extensions = [ + "markdown.extensions.admonition", + #'pymdownx.arithmatex', + #'pymdownx.details', + #"pymdownx.tabbed", + ] + + md = pn.pane.Markdown(string, **kwargs) + md.extensions.extend(extra_extensions) + + return md + + +class ButtonContext(): + """ + A context manager for buttons triggering computations on the server. + + This manager disables the button when we __enter__ and changes the name of the button to "running". + It reverts to the initial state of the button once __exit__ is invoked, showing the Exception type + in a "red" button if an exception is raised during the computation. + + This a very important tool because we need to disable the button when we start the computation + to prevent the user from triggering multiple callbacks while the server is still working. + At the same time, whathever happens in the callback, the button should go back to "clickable" mode + when the callback returns so that the user can try to change the parameters and rerun. + + Note also that we want to provide some graphical feedback to the user if something goes wrong. + At present we don't expose the python traceback on the client. + It would be nice but we need panel machinery to do that. + Moreover this is not the recommended approach for security reasons so we just change the "color" + of the button and use the string representation of the exception as button name. """ - return pn.widgets.Select(name=name, value=value, options=["fixed", - "stretch_width", "stretch_height", "stretch_both", - "scale_height", "scale_width", "scale_both"]) + + def __init__(self, btn: pnw.Button): + self.btn = btn + self.prev_name, self.prev_type = btn.name, btn.button_type + + def __enter__(self): + # Disable the button. + self.btn.name = "Running ..." + self.btn.button_type = "warning" + self.btn.loading = True + self.btn.disabled = True + return self.btn + + def __exit__(self, exc_type, exc_value, traceback): + # First of all, reenable the button so that the user can stil interact with the GUI. + self.btn.disabled = False + self.btn.loading = False + + if exc_type: + # Exception --> signal to the user that something went wrong for 2 seconds. + self.btn.name = str(exc_type) + self.btn.button_type = "danger" + time.sleep(2) + + # Back to the original button state. + self.btn.name, self.btn.button_type = self.prev_name, self.prev_type + + +class Loading(): + """ + A context manager for setting the loading attribute of a panel object. + """ + + def __init__(self, panel_obj, err_wdg=None, width=70): + self.panel_obj = panel_obj + self.err_wdg = err_wdg + if err_wdg is not None: self.err_wdg.object = "" + self.width = int(width) + + def __enter__(self): + self.panel_obj.loading = True + return self.panel_obj + + def __exit__(self, exc_type, exc_value, traceback): + self.panel_obj.loading = False + + if self.err_wdg is not None: + if exc_type: + self.err_wdg.object = "```sh\n%s\n```" % textwrap.fill(str(exc_value), width=self.width) + + +class ActiveBar(): + """ + A context manager that sets progress.active to True on entry and False when we exit. + """ + + def __init__(self, progress, err_wdg=None, width=70): + self.progress = progress + self.err_wdg = err_wdg + if err_wdg is not None: self.err_wdg.object = "" + self.width = int(width) + + def __enter__(self): + self.progress.active = True + return self.progress + + def __exit__(self, exc_type, exc_value, traceback): + self.progress.active = False + + if exc_type: + # Change the color to signal the user that something bad happened. + self.progress.bar_color = "danger" + + if self.err_wdg is not None: + from textwrap import fill + self.err_wdg.object = "```sh\n%s\n```" % fill(str(exc_value), width=self.width) + + +SHARED_WIDGETS_WARNING = """ +Note some of the widgets are **shared by the different tabs**. +If you change the value of a variables in the active tab, +the same value will **automagically** appear in all the other tabs sharing the same +widget yet results/figures are not automatically recomputed.""" + +#In other words, if you change some variable in the active tab and then you move to another tab, +#the results/figures (if any) are stil computed with the **old input** hence you will have to +#recompute the new results by clicking the button.""" class AbipyParameterized(param.Parameterized): + """ + Base class for AbiPy panels. Provides helper functions for typical operations needed for + building dashboard and basic parameters supported by the subclasses. + """ verbose = param.Integer(0, bounds=(0, None), doc="Verbosity Level") - mpi_procs = param.Integer(1, bounds=(1, None), doc="Number of MPI processes used when runnin Fortran code") - #fontsize = + mpi_procs = param.Integer(1, bounds=(1, None), doc="Number of MPI processes used for running Fortran code.") + + plotly_template = param.ObjectSelector(default="plotly", + objects=["plotly", "plotly_white", "plotly_dark", "ggplot2", + "seaborn", "simple_white", "none"]) + + # This flag is set to True if we are serving apps from the Abinit server. + # It is used to impose limitations on what users can do and select the options that should be exposed. + # For instance, structure_viewer == "Vesta" does not make sense in we are not serving from a local server. + # + has_remote_server = param.Boolean(False) + + warning = pn.pane.Markdown(SHARED_WIDGETS_WARNING, name="warning") + + def __init__(self, **params): + + super().__init__(**params) + if self.has_remote_server: + self.param.mpi_procs.bounds = (1, 1) + print("Changing mpi_procs.bounds") + print("self.param.mpi_procs:", self.param.mpi_procs.bounds) + + # This internal variables are used to enable/disable the output of the docstring and the warning message. + self._enable_show_doc = True + self._enable_show_shared_wdg_warning = True - #def get_global_widgets(self): - # return pn.Column(self.verbose, self.mpi_procs) + #def abiopen(self, filepath): + # from abipy.abilab import abiopen + # try: + # abiobj = abiopen(filepath) + # return abiobj + # finally: + # self._abiopened_files.append(filepath) + + def disable_show_messages(self, show_doc=False, show_shared_wdg_warning=False): + """ + Context manager to disable the output of the docstring and the warning message. + + with self.disable_show_messages(): + pn.Row("## Callback with no info message", self.on_plot_phbands_and_phdos) + + """ + from abipy.tools.context_managers import temporary_change_attributes + return temporary_change_attributes(self, + _enable_show_doc=show_doc, + _enable_show_shared_wdg_warning=show_shared_wdg_warning, + ) + + @pn.depends("plotly_template") + def on_plotly_template(self): + """ + Change the default plotly template. + NB: It's not a good idea to expose this option when running the server as + other users will be affected by this change hence this function is just for + internal use. + """ + import plotly.io as pio + pio.templates.default = self.plotly_template @lazy_property - def fig_kwargs(self): - """Default arguments passed to AbiPy plot methods.""" + def mpl_kwargs(self) -> dict: + """Default arguments passed to AbiPy matplotlib plot methods.""" return dict(show=False, fig_close=True) + def pws_col(self, keys, **kwargs) -> pn.Column: + return pn.Column(*self.pws(keys), **kwargs) + + def pws_row(self, keys, **kwargs) -> pn.Row: + return pn.Row(*self.pws(keys), **kwargs) + + def wdg_box(self, keys, **kwargs) -> pn.WidgetBox: + return pn.WidgetBox(*self.pws(keys), **kwargs) + + def pws(self, keys): + """ + Helper function returning the list of parameters and widgets defined in self from a list of strings. + Accepts also widget or parameter instances. + """ + items, miss = [], [] + for k in keys: + if isinstance(k, str): + if k in self.param: + items.append(self.param[k]) + elif hasattr(self, k): + items.append(getattr(self, k)) + elif k.startswith("#"): + # Markdown string + items.append(k) + #items.append(pn.layout.Divider(margin=(-20, 0, 0, 0))) + else: + miss.append(k) + else: + # Assume widget instance. + items.append(k) + + #for item in items: print("item", item, "of type:", type(item)) + if miss: + raise ValueError(f"Cannot find `{str(miss)}` in param or in attribute space") + + return items + + def get_summary_view_for_abiobj(self, abiobj, **kwargs): + text = abiobj.to_string(verbose=self.verbose) + + view = pnw.Terminal(output=f"\n\n{text}", + #height=1200, # Need this one else the terminal is not show properly + sizing_mode='stretch_both', + ) + #view = pn.Row(bkw.PreText(text=text, sizing_mode="scale_both")) + return view + + def wdg_exts_with_get_panel(self, name='File extensions supported:'): + """ + Return Select widget with the list of file extensions implementing a get_panel method. + """ + from abipy.abilab import extcls_supporting_panel + exts = [e[0] for e in extcls_supporting_panel(as_table=False)] + return pnw.Select(name=name, options=exts) + + @staticmethod + def html_with_clipboard_btn(html_str: str, **kwargs): + if hasattr(html_str, "_repr_html_"): + html_str = html_str._repr_html_() + + return HTMLwithClipboardBtn(html_str, **kwargs) + + @staticmethod + def get_software_stack() -> pn.Column: + """Return column with version of python packages in tabular format.""" + from abipy.abilab import software_stack + return pn.Column("## Software stack:", + #pn.layout.Divider(margin=(-20, 0, 0, 0)), + dfc(software_stack(as_dataframe=True), with_export_btn=False), + sizing_mode="scale_width", + ) + + @staticmethod + def get_fileinput_section(file_input) -> pn.Column: + # All credits go to: + # https://github.com/MarcSkovMadsen/awesome-panel/blob/master/application/pages/styling/fileinput_area.py + # + css_style = """ + """ + + return pn.Column(pn.pane.HTML(css_style, width=0, height=0, sizing_mode="stretch_width", margin=0), + file_input, sizing_mode="stretch_width") + @staticmethod - def _mp(fig): - return pn.pane.Matplotlib(fig, sizing_mode="scale_width") + def get_abifile_from_file_input(file_input, use_structure=False): + #print("filename", file_input.filename, "\nvalue", file_input.value) + workdir = tempfile.mkdtemp() + + fd, tmp_path = tempfile.mkstemp(suffix=file_input.filename) + with open(tmp_path, "wb") as fh: + fh.write(file_input.value) + + from abipy.abilab import abiopen + abifile = abiopen(tmp_path) + if use_structure: + abifile = Structure.as_structure(abifile) + # Remove the file since it's not needed anymore. + shutil.rmtree(tmp_path, ignore_errors=True) + + return abifile + + def get_ebands_from_file_input(self, file_input, remove=True): + """ + Read and return an |ElectronBands| object from a file_input widget. + Return None if the file does not provide an ebands object. + Remove the file if remove == True. + """ + with self.get_abifile_from_file_input(file_input) as abifile: + ebands = getattr(abifile, "ebands", None) + if remove: abifile.remove() + return ebands @staticmethod - def _df(df, disabled=True, sizing_mode="scale_width"): - return pn.widgets.DataFrame(df, disabled=disabled, sizing_mode=sizing_mode) + def get_alert_data_transfer() -> pn.pane.Alert: + # https://discourse.holoviz.org/t/max-upload-size/2121/5 + return pn.pane.Alert(""" +Please note that this web interface is not designed to handle **large data transfer**. +To post-process the data stored in a big file e.g. a WFK.nc file, +we strongly suggest executing the **abigui.py** script on the same machine where the file is hosted. +Also, note that examples of post-processing scripts are available in the +[AbiPy gallery](https://abinit.github.io/abipy/gallery/index.html). + +Last but not least, keep in mind that **the file extension matters** when uploading a file +so don't change the default extension used by ABINIT. +Also, use `.abi` for ABINIT input files and `.abo` for the main output file. +""", alert_type="info") + + @staticmethod + def get_template_cls_from_name(template): + return get_template_cls_from_name(template) + + def get_abinit_template_cls_kwds(self): + return get_abinit_template_cls_kwds() + + def get_template_from_tabs(self, tabs, template, **tabs_kwargs): + """ + This method receives panel Tabs or a dictionary, + include them in a template and return the template instance. + """ + if isinstance(tabs, dict): + if "sizing_mode" not in tabs_kwargs: tabs_kwargs["sizing_mode"] = "stretch_width" + tabs = pn.Tabs(*tabs.items(), **tabs_kwargs) + + if template is None or str(template) == "None": + #tabs.append(return_to_top_html()) + return tabs + + cls = get_template_cls_from_name(template) + #cls, kwargs = get_abinit_template_cls_kwds() + + kwargs = dict( + # A title to show in the header. Also added to the document head meta settings and as the browser tab title. + title=self.__class__.__name__, + header_background="#ff8c00", # Dark orange + favicon="/assets/img/abinit_favicon.ico", + logo="/assets/img/abipy_logo.png", # TODO: Need new panel version to fix logo alignment in FastLIst. + #sidebar_footer (str): Can be used to insert additional HTML. For example a menu, some additional info, links etc. + #enable_theme_toggle=False, # If True a switch to toggle the Theme is shown. Default is True. + ) + + template = cls(**kwargs) + if hasattr(template.main, "append"): + template.main.append(tabs) + #template.main.append(return_to_top_html()) + else: + # Assume main area acts like a GridSpec + template.main[:,:] = tabs + + return template + + +def return_to_top_html(): + print("In return to top") + + # + + html = r""" + + + + + +""" + + return pn.pane.HTML(html, width=0, height=0) + + +class PanelWithStructure(AbipyParameterized): + """ + A paremeterized object with a |Structure| object. + """ + + structure_viewer = param.ObjectSelector(default="jsmol", + objects=["jsmol", "vesta", "xcrysden", "vtk", "crystalk", "ngl", + "matplotlib", "plotly", "ase_atoms", "mayavi"]) + + def __init__(self, structure: Structure, **params): + + super().__init__(**params) + self.structure = structure + + if self.has_remote_server: + # Change the list of allowed visualizers. + self.param.structure_viewer.objects = ["jsmol", "crystalk", "ngl", "matplotlib", "plotly", "ase_atoms"] + + self.view_structure_btn = pnw.Button(name="View structure", button_type='primary') + + @depends_on_btn_click('view_structure_btn', show_shared_wdg_warning=False) + def on_view_structure(self): + """Visualize input structure.""" + v = self.structure_viewer + + if v == "jsmol": + return jsmol_html(self.structure) + + #pn.extension(comms='ipywidgets') #, js_files=js_files) + #view = self.structure.get_jsmol_view() + #from ipywidgets_bokeh import IPyWidget + #view = IPyWidget(widget=view) #, width=800, height=300) + #import ipywidgets as ipw + #from IPython.display import display + #display(view) + #return pn.Row(display(view)) + #return pn.ipywidget(view) + #return pn.panel(view) + #return pn.pane.IPyWidget(view) + #print(view) + #view = pn.Column(view, sizing_mode='stretch_width') + #return view + + if v == "crystalk": + view = self.structure.get_crystaltk_view() + return pn.panel(view) + + if v == "plotly": + return ply(self.structure.plotly(show=False)) + + if v == "ngl": + from pymatgen.io.babel import BabelMolAdaptor + from pymatgen.io.xyz import XYZ + # string_data = self.structure.to(fmt="xyz") + + #writer = BabelMolAdaptor(self) + #string_data = str(XYZ(self.structure)) + #adapt = BabelMolAdaptor.from_string(string_data, file_format="xyz") + ##pdb_string = + #print(pdb_string) + + #from awesome_panel_extesions.pane.widgets.ngl_viewer import NGLViewer + #view = NGLViewer() + + #view.pdb_string = pdb_string + return view + + #js_files = {'ngl': 'https://cdn.jsdelivr.net/gh/arose/ngl@v2.0.0-dev.33/dist/ngl.js'} + #pn.extension(comms='ipywidgets', js_files=js_files) + #view = self.structure.get_ngl_view() + #return pn.panel(view) + + #pn.config.js_files["ngl"]="https://cdn.jsdelivr.net/gh/arose/ngl@v2.0.0-dev.33/dist/ngl.js" + #pn.extension() + + html = """
    + """ + + ngl_pane = pn.pane.HTML(html, height=500, width=500) + return pn.Row(ngl_pane) + view = self.structure.get_ngl_view() + + #return self.structure.crystaltoolkitview() + #import nglview as nv + #view = nv.demo(gui=False) + + if v == "ase_atoms": + return mpl(self.structure.plot_atoms(rotations="default", **self.mpl_kwargs)) + + return self.structure.visualize(appname=self.structure_viewer) + + def get_structure_view(self) -> pn.Row: + """ + Return Row with widgets to visualize the structure. + """ + return pn.Row( + self.pws_col(["## Visualize structure", + "structure_viewer", + "view_structure_btn", + ]), + pn.Column(self.on_view_structure, self.get_structure_info()) + ) + + def get_structure_info(self) -> pn.Column: + """ + Return Column with lattice parameters, angles and atomic positions grouped by type. + """ + return get_structure_info(self.structure) + + +def get_structure_info(structure: Structure) -> pn.Column: + """ + Return Column with lattice parameters, angles and atomic positions grouped by type. + """ + col = pn.Column(sizing_mode='scale_width'); ca = col.append; cext = col.extend + + d = structure.get_dict4pandas(with_spglib=True) + + keys = index = [#"formula", "natom", "volume", + "abi_spg_number", + "spglib_symb", "spglib_num", "spglib_lattice_type"] + df_spg = pd.Series(data=d, index=index).to_frame() + cext(["# Spacegroup:", dfc(df_spg, with_export_btn=False)]) + + # Build dataframe with lattice lenghts. + rows = []; keys = ("a", "b", "c") + rows.append({k: d[k] * abu.Ang_Bohr for k in keys}) + rows.append({k: d[k] for k in keys}) + df_len = pd.DataFrame(rows, index=["Å", "Bohr"]).transpose().rename_axis("Lattice lenghts") + + # Build dataframe with lattice angles. + rows = []; keys = ("alpha", "beta", "gamma") + rows.append({k: d[k] for k in keys}) + rows.append({k: np.radians(d[k]) for k in keys}) + df_ang = pd.DataFrame(rows, index=["Degrees", "Radians"]).transpose().rename_axis("Lattice angles") + + cext(["# Lattice lengths:", dfc(df_len, with_export_btn=False)]) + cext(["# Lattice angles:", dfc(df_ang, with_export_btn=False)]) + #row = pn.Row(dfc(df_len, with_export_btn=False), dfc(df_ang, with_export_btn=False), sizing_mode="scale_width") + #ca(row) + + # Build dataframe with atomic positions grouped by element symbol. + symb2df = structure.get_symb2coords_dataframe() + accord = pn.Accordion(sizing_mode='stretch_width') + for symb, df in symb2df.items(): + accord.append((f"Coordinates of {symb} sites:", dfc(df, with_export_btn=False))) + ca(accord) + + return col + + +class NcFileViewer(AbipyParameterized): + """ + This class implements toool to inspect dimensions and variables stored in a netcdf file. + + Relyes on the API provided by `AbinitNcFile` defined in core.mixins.py + """ + + nc_path = param.String("/", doc="nc group") + + def __init__(self, ncfile, **params): + super().__init__(**params) + self.ncfile = ncfile + self.netcdf_info_btn = pnw.Button(name="Show info", button_type='primary') + + def get_ncfile_view(self) -> pn.Column: + return pn.Column( + self.netcdf_info_btn, + self.on_netcdf_info_btn, + sizing_mode='stretch_width', + ) + + @depends_on_btn_click('netcdf_info_btn') + def on_netcdf_info_btn(self) -> pn.Column: + """ + This Tab allows one to + """ + # TODO: Finalize the implementation. + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + #nc_grpname = pnw.Select(name="nc group name", options=["/"]) + input_string = self.ncfile.get_input_string() + ca(f"## Input String") + ca(bkw.PreText(text=input_string)) + + #ca(f"## Global attributes") + # Get dataframe with dimensions. + dims_df = self.ncfile.get_dims_dataframe(path=self.nc_path) + ca(f"## Dimensions in nc group: {self.nc_path}") + ca(dfc(dims_df)) + #ca(f"## Variables") -#class PanelWithNcFile(AbipyParameterized): #, metaclass=abc.ABCMeta): -# """ -# This frame allows the user to inspect the dimensions and the variables reported in a netcdf file. -# Tab showing information on the netcdf file. -# """ + return col -class PanelWithElectronBands(AbipyParameterized): #, metaclass=abc.ABCMeta): +class PanelWithElectronBands(PanelWithStructure): + """ + Provide widgets and views for operating on |ElectronBands| object. + """ # Bands plot - with_gaps = pnw.Checkbox(name='Show gaps') + with_gaps = param.Boolean(False) + with_kpoints_plot = param.Boolean(False) + #ebands_ylims #ebands_e0 # e0: Option used to define the zero of energy in the band structure plot. Possible values: # - `fermie`: shift all eigenvalues to have zero energy at the Fermi energy (`self.fermie`). # - Number e.g e0=0.5: shift all eigenvalues to have zero energy at 0.5 eV # - None: Don't shift energies, equivalent to e0=0 - set_fermie_to_vbm = pnw.Checkbox(name="Set Fermie to VBM") + set_fermie_to_vbm = param.Boolean(False, label="Set Fermi energy to VBM") + + # e-DOS plot. + edos_method = param.ObjectSelector(default="gaussian", label="Integration method for e-DOS", + objects=["gaussian", "tetra"]) + edos_step_ev = param.Number(0.1, bounds=(1e-6, None), step=0.1, label='e-DOS step in eV') + edos_width_ev = param.Number(0.2, step=0.05, bounds=(1e-6, None), label='e-DOS Gaussian broadening in eV') + + # SKW interpolation of the KS band energies (Abipy version). + skw_lpratio = param.Integer(5, bounds=(1, None), label="SKW lpratio") + skw_line_density = param.Integer(20, label="SKW line density") + skw_ebands_kpath = None + skw_ebands_kpath_fileinput = param.FileSelector(path="*.nc") + + # Fermi surface. + fs_viewer = param.ObjectSelector(default="matplotlib", objects=["matplotlib", "xcrysden"]) + + # Ifermi UI. + ifermi_wigner_seitz = param.Boolean(True, label="Use Wigner Seitz cell", + doc="Controls whether the cell is the Wigner-Seitz cell" + + "or the reciprocal unit cell parallelepiped.") + ifermi_interpolation_factor = param.Integer(default=8, label="Interpolation factor", bounds=(1, None), + doc="The factor by which the band structure will be interpolated.") + + ifermi_eref = param.ObjectSelector(default="fermie", label="Energy reference", + objects=["fermie", "cbm", "vbm"]) + + ifermi_with_velocities = param.Boolean(True, label="Compute group velocities", + doc="Generate the Fermi surface and calculate the group velocity at the center of each triangular face") + ifermi_offset_eV = param.Number(default=0.0, label="Energy offset (eV) from energy reference", + doc="Energy offset from the Fermi energy at which the isosurface is calculated.") + ifermi_plot_type = param.ObjectSelector(default="plotly", label="Plot type", objects=["plotly", "matplotlib"]) + + # These are used to implement plots in which we need to upload an additional file + # For instance bands + edos. + # For the max size of file see: https://github.com/holoviz/panel/issues/1559 + ebands_kpath = None + ebands_kpath_fileinput = param.FileSelector(path="*.nc") + ebands_kmesh = None + ebands_kmesh_fileinput = param.FileSelector(path=".nc") + + effmass_accuracy = param.Integer(default=4, bounds=(1, None), label="Finite difference accuracy") + effmass_degtol_ev = param.Number(default=1e-3, bounds=(0, None), label="Window in eV above/below the CBM/VBM") + effmass_spin = param.ObjectSelector(default=0, objects=[0, 1], label="Spin index") - plot_ebands_btn = pnw.Button(name="Plot e-bands", button_type='primary') + def __init__(self, ebands, **params): - # DOS plot. - edos_method = pnw.Select(name="e-DOS method", options=["gaussian", "tetra"]) - edos_step = pnw.Spinner(name='e-DOS step (eV)', value=0.1, step=0.05, start=1e-6, end=None) - edos_width = pnw.Spinner(name='e-DOS Gaussian broadening (eV)', value=0.2, step=0.05, start=1e-6, end=None) - plot_edos_btn = pnw.Button(name="Plot e-DOS", button_type='primary') + self.ebands = ebands + PanelWithStructure.__init__(self, structure=ebands.structure, **params) - # Fermi surface plot. - fs_viewer = pnw.Select(name="FS viewer", options=["matplotlib", "xcrysden"]) - plot_fermi_surface_btn = pnw.Button(name="Plot Fermi surface", button_type='primary') + # Create buttons + self.plot_ebands_btn = pnw.Button(name="Plot e-bands", button_type='primary') + self.plot_edos_btn = pnw.Button(name="Plot e-DOS", button_type='primary') + self.plot_skw_btn = pnw.Button(name="Plot SKW interpolant", button_type='primary') - #@abc.abstractproperty - #def ebands(self): - # """Returns the |ElectronBands| object.""" + # Fermi surface plotter. + #objects = [None, "matplotlib", "xcrysden"] + #if self.has_remote_server: objects = [None, "matplotlib"] + #self.plot_fs_viewer_btn = pnw.Button(name="Plot SKW interpolant", button_type='primary') - def get_plot_ebands_widgets(self): - """Widgets to plot ebands.""" - return pn.Column(self.with_gaps, self.set_fermie_to_vbm, self.plot_ebands_btn) + self.plot_ifermi_btn = pnw.Button(name="Plot Fermi surface", button_type='primary') + #self.ifermi_plane_normal = pnw.LiteralInput(name='Plane normal (list)', value=[0, 0, 0], type=list, + # placeholder="Enter normal in reduced coordinates") + #self.ifermi_distance = pn.widgets.RangeSlider( + # name='distance', start=0, end=2 * max(ebands.structure.reciprocal_lattice.abc), + # value=(0, 0), step=0.01) - @param.depends('plot_ebands_btn.clicks') - def on_plot_ebands_btn(self): - """Button triggering ebands plot.""" - if self.plot_ebands_btn.clicks == 0: return - if self.set_fermie_to_vbm.value: + #ebands_kpath_fileinput = pnw.FileInput(accept=".nc") + #ebands_kmesh_fileinput = pnw.FileInput(accept=".nc") + + self.plot_effmass_btn = pnw.Button(name="Plot effective masses", button_type='primary') + if ebands.nsppol != 2: + self.param.effmass_spin.objects = [0] + + @staticmethod + def _get_ebands_from_bstring(bstring): + from abipy.electrons import ElectronBands + return ElectronBands.from_binary_string(bstring) + + @pn.depends("ebands_kpath_fileinput", watch=True) + def get_ebands_kpath(self): + """ + Receives the netcdf file selected by the user as binary string. + """ + self.ebands_kpath = self._get_ebands_from_bstring(self.ebands_kpath_fileinput) + + @pn.depends("ebands_kmesh_fileinput", watch=True) + def get_ebands_kmesh(self): + """ + Receives the netcdf file selected by the user as binary string. + """ + self.ebands_kmesh = self._get_ebands_from_bstring(self.ebands_kmesh_fileinput) + + @pn.depends("skw_ebands_kpath_fileinput", watch=True) + def get_skw_ebands_kpath(self): + """ + Receives the netcdf file selected by the user as binary string. + """ + self.skw_ebands_kpath = self._get_ebands_from_bstring(self.skw_ebands_kpath_fileinput) + + def get_plot_ebands_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["### e-Bands Plot Options", + "with_gaps", "set_fermie_to_vbm", "with_kpoints_plot", "plot_ebands_btn", + ]), + self.on_plot_ebands_btn + ) + + @depends_on_btn_click('plot_ebands_btn') + def on_plot_ebands_btn(self) -> pn.Column: + """ + This Tab allows one to plot the KS energies stored in the netcdf file + as well as the associated list of **k**-points in the Brillouin. + """ + if self.set_fermie_to_vbm: self.ebands.set_fermie_to_vbm() - fig1 = self.ebands.plot(e0="fermie", ylims=None, - with_gaps=self.with_gaps.value, max_phfreq=None, fontsize=8, **self.fig_kwargs) - - fig2 = self.ebands.kpoints.plot(**self.fig_kwargs) - row = pn.Row(self._mp(fig1), self._mp(fig2)) #, sizing_mode='scale_width') - text = bkw.PreText(text=self.ebands.to_string(verbose=self.verbose)) - return pn.Column(row, text, sizing_mode='scale_width') - - def get_plot_edos_widgets(self): - """Widgets to compute e-DOS.""" - return pn.Column(self.edos_method, self.edos_step, self.edos_width, self.plot_edos_btn) - - @param.depends('plot_edos_btn.clicks') - def on_plot_edos_btn(self): - """Button triggering edos plot.""" - if self.plot_edos_btn.clicks == 0: return - edos = self.ebands.get_edos(method=self.edos_method.value, step=self.edos_step.value, width=self.edos_width.value) - fig = edos.plot(**self.fig_kwargs) - return pn.Row(self._mp(fig), sizing_mode='scale_width') - - def get_plot_fermi_surface_widgets(self): - """Widgets to compute e-DOS.""" - return pn.Column(self.fs_viewer, self.plot_fermi_surface_btn) - - @param.depends('plot_fermi_surface_btn.clicks') - def on_plot_fermi_surface_btn(self): - if self.plot_fermi_surface_btn.clicks == 0: return - - # Cache eb3d - if hasattr(self, "_eb3d"): - eb3d = self._eb3d - else: - # Build ebands in full BZ. - eb3d = self._eb3d = self.ebands.get_ebands3d() + sz_mode = "stretch_width" + col = pn.Column(sizing_mode=sz_mode); ca = col.append + ca("## Electronic band structure:") + fig1 = self.ebands.plotly(e0="fermie", ylims=None, with_gaps=self.with_gaps, max_phfreq=None, show=False) + ca(ply(fig1)) + + nkpt = len(self.ebands.kpoints) + ktype = "IBZ sampling" if self.ebands.kpoints.is_ibz else "**k**-path" + max_nkpt = 2000 + + if self.with_kpoints_plot: + ca(f"## Brillouin zone and {ktype}:") + if nkpt < max_nkpt: + kpath_pane = ply(self.ebands.kpoints.plotly(show=False), with_divider=False) + df_kpts = dfc(self.ebands.kpoints.get_highsym_datataframe(), with_divider=False) + ca(pn.Row(kpath_pane, df_kpts, sizing_mode=sz_mode)) + else: + ca(f"k-points won't be shown as nkpt: {nkpt} is greater than {max_nkpt}") + ca(pn.layout.Divider()) + + return col + + def get_plot_edos_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## E-DOS Options", "edos_method", "edos_step_ev", + "edos_width_ev", "plot_edos_btn"]), + self.on_plot_edos_btn + ) + + @depends_on_btn_click('plot_edos_btn') + def on_plot_edos_btn(self) -> pn.Row: + """ + Button triggering edos plot. + """ + edos = self.ebands.get_edos(method=self.edos_method, step=self.edos_step_ev, width=self.edos_width_ev) + + return pn.Row(ply(edos.plotly(show=False)), sizing_mode='scale_width') + + def get_skw_view(self) -> pn.Row: + """ + Column with widgets to use SKW. + """ + wdg = pn.Param( + self.param['skw_ebands_kpath_fileinput'], + widgets={'skw_ebands_kpath_fileinput': pn.widgets.FileInput} + ) + + return pn.Row( + self.pws_col(["## SKW options", + "skw_lpratio", "skw_line_density", "with_gaps", + "## Upload GSR.nc file with *ab-initio* energies along a k-path to compare with", wdg, + "plot_skw_btn", + ]), + self.on_plot_skw_btn) + + @depends_on_btn_click('plot_skw_btn') + def on_plot_skw_btn(self) -> pn.Column: + """ + Button triggering SKW plot. + """ + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + intp = self.ebands.interpolate(lpratio=self.skw_lpratio, line_density=self.skw_line_density, + kmesh=None, is_shift=None, bstart=0, bstop=None, filter_params=None, + verbose=self.verbose) + + ca("## SKW interpolated bands along an automatically selected high-symmetry **k**-path") + ca(ply(intp.ebands_kpath.plotly(with_gaps=self.with_gaps, show=False))) + + if self.skw_ebands_kpath is not None: + ca("## Input bands taken from file uploaded by user:") + ca(ply(self.skw_ebands_kpath.plotly(with_gaps=self.with_gaps, show=False))) + + # Use line_density 0 to interpolate on the same set of k-points given in self.skw_ebands_kpath + vertices_names = [] + for kpt in self.skw_ebands_kpath.kpoints: + vertices_names.append((kpt.frac_coords, kpt.name)) + + intp = self.ebands.interpolate(lpratio=self.skw_lpratio, vertices_names=vertices_names, line_density=0, + kmesh=None, is_shift=None, bstart=0, bstop=None, filter_params=None, + verbose=self.verbose) + + plotter = self.skw_ebands_kpath.get_plotter_with("Input", "Interpolated", intp.ebands_kpath) + ca("## Input bands vs SKW interpolated bands:") + ca(ply(plotter.combiplotly(show=False))) + + return col + + def get_effmass_view(self) -> pn.Row: + """ + Return Row with widgets to compute effective masses with finite diff. + """ + return pn.Row( + self.pws_col(["### Effective masses options", + "effmass_accuracy", + "effmass_degtol_ev", + "effmass_spin", + "plot_effmass_btn", + ]), + self.on_plot_effmass_btn + ) + + @depends_on_btn_click('plot_effmass_btn') + def on_plot_effmass_btn(self) -> pn.Column: + """ + Compute and visualize effective masses with finite differences. + + Note that the quality of the results strongly depend on the step i.e. + the separation between two consecutive points along the k-path. + The accuracy option allows one to change the number of points for the finite difference. + """ + emana = self.ebands.get_effmass_analyzer() + acc = self.effmass_accuracy + degtol_ev = self.effmass_degtol_ev + spin = self.effmass_spin + + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + if emana.select_vbm(): + ca(f"## Effective masses at the VBM with accuracy {acc}:") + for segment in emana.segments: + ca(mpl(segment.plot_emass(acc=acc, spin=spin, degtol_ev=degtol_ev, show=False))) + ca("### effmass wrt accuracy and step: %.3f Ang-1" % segment.dk) + df = segment.get_dataframe_with_accuracies() + ca(dfc(df, with_export_btn=False)) + + if emana.select_cbm(): + ca(f"## Effective masses at the CBM with accuracy {acc}:") + for segment in emana.segments: + ca(mpl(segment.plot_emass(acc=acc, spin=spin, degtol_ev=degtol_ev, show=False))) + ca("### effmass wrt accuracy and step: %.3f Ang-1" % segment.dk) + df = segment.get_dataframe_with_accuracies() + ca(dfc(df, with_export_btn=False)) + + return col + + def get_ifermi_view(self): + """ + Widgets to visualize the Fermi surface with ifermi package. + """ + controls = self.pws_col([ + "ifermi_offset_eV", "ifermi_eref", "ifermi_wigner_seitz", "ifermi_interpolation_factor", + "ifermi_with_velocities", # "ifermi_plane_normal", "ifermi_distance", + "ifermi_plot_type", "plot_ifermi_btn", + ]) - if self.fs_viewer.value == "matplotlib": - # Use matplotlib to plot isosurfaces corresponding to the Fermi level (default) - # Warning: requires skimage package, rendering could be slow. - fig = eb3d.plot_isosurfaces(e0="fermie", cmap=None, **self.fig_kwargs) - return pn.Row(self._mp(fig), sizing_mode='scale_width') + return pn.Row(pn.Column("## ifermi options", controls), self.on_plot_ifermi_btn) + @depends_on_btn_click('plot_ifermi_btn') + def on_plot_ifermi_btn(self): + """ + This Tab allows you to interpolate KS energies defined in the IBZ + and visualize isosurfaces in the BZ using the [ifermi](https://fermisurfaces.github.io/IFermi/) package. + + The energy of the isosurface is given by: `energy_reference` + `energy_offset`. + + * use `fermie` with zero offset to visualize the Fermi surface in metals. + * for electron pockets in semiconductors, use `cbm` with a positive offset e.g. 0.1 eV. + * for hole pockets in semiconductors, use `vbm` and a negative offset e.g. -0.1 eV. + """ + # interpolate the energies onto a dense k-point mesh + r = self.ebands.get_ifermi_fs(interpolation_factor=self.ifermi_interpolation_factor, + mu=self.ifermi_offset_eV, + eref=self.ifermi_eref, + wigner_seitz=self.ifermi_wigner_seitz, + calculate_dimensionality=False, + with_velocities=self.ifermi_with_velocities, + ) + + plt = r.fs_plotter.get_plot(plot_type=self.ifermi_plot_type) + + if self.ifermi_plot_type == "plotly": + fig = ply(plt, sizing_mode="stretch_both") + elif self.ifermi_plot_type == "matplotlib": + fig = plt.gcf() + plt.close(fig=fig) + fig = mpl(fig) + else: + raise NotImplementedError(f"{self.ifermi_plot_type}") + + col = pn.Column(sizing_mode="stretch_width") + ca = col.append + if self.ifermi_wigner_seitz: + ca("## Energy isosurface in the Wigner-Seitz unit cell") else: - raise ValueError("Invalid choice: %s" % self.fs_viewer.value) + ca("## Energy isosurface in the reciprocal unit cell parallelepiped") + ca(fig) + + ene_range = [-3, 3] + fig = self.ebands.boxplotly(e0=r.abs_isoenergy, ene_range=ene_range, show=False) + ca(f""" +## Energy boxplot: + +- Energy zero set at the absolute isoenergy: {r.abs_isoenergy:.3f} (eV) +- Energy range around zero: {ene_range} (eV) +""") + ca(ply(fig, sizing_mode="stretch_both")) + + # TODO: This requires more testing + #ifermi_plane_normal = self.ifermi_plane_normal.value + #if any(c != 0 for c in ifermi_plane_normal): + # print("fs_plane normal:", ifermi_plane_normal) + # print("abc reciprocal", self.ebands.structure.reciprocal_lattice.abc) + # from ifermi.plot import FermiSlicePlotter + # for distance in self.ifermi_distance.value: + # # generate Fermi slice along the (0 0 1) plane going through the Γ-point. + # ca(f"## Fermi slice along the {ifermi_plane_normal} plane going through the Γ-point at distance: {distance}") + # fermi_slice = r.fs.get_fermi_slice(plane_normal=ifermi_plane_normal, distance=distance) + # slice_plotter = FermiSlicePlotter(fermi_slice) + # plt = slice_plotter.get_plot() + # fig = plt.gcf() + # plt.close(fig=fig) + # fig = mpl(fig) + # ca(fig) + + #ca(pn.layout.Divider()) + #ca("## Powered by [ifermi](https://fermisurfaces.github.io/IFermi/)") + + return col - #elif self.fs_viewer.value == "xcrysden": - # Alternatively, it's possible to export the data in xcrysden format - # and then use `xcrysden --bxsf mgb2.bxsf` - #eb3d.to_bxsf("mgb2.bxsf") - # If you have mayavi installed, try: - #eb3d.mvplot_isosurfaces() + #@depends_on_btn_click('plot_fs_viewer_btn') + #def on_plot_fs_viewer_btn(self): + + # # Get eb3d (memoized) + # eb3d = self._eb3d = self.ebands.get_ebands3d() + + # if self.fs_viewer == "matplotlib": + # # Use matplotlib to plot isosurfaces corresponding to the Fermi level (default) + # # Warning: requires skimage package, rendering could be slow. + # fig = eb3d.plot_isosurfaces(e0="fermie", cmap=None, **self.mpl_kwargs) + # return pn.Row(mpl(fig), sizing_mode='scale_width') + + # elif self.fs_viewer == "xcrysden": + # # Alternatively, it's possible to export the data in xcrysden format + # # and then use `xcrysden --bxsf mgb2.bxsf` + # #eb3d.to_bxsf("mgb2.bxsf") + # # If you have mayavi installed, try: + # #eb3d.mvplot_isosurfaces() + # raise NotImplementedError(f"Invalid choice for fs_viewer: {self.fs_viewer}") + + # else: + # raise ValueError(f"Invalid choice for fs_viewer: {self.fs_viewer}") + + #def get_fsviewer_view(self): + # """ + # Widgets to visualize the Fermi surface with ifermi + # """ + # #return pn.Row(pn.Column("## FS Viewer options", self.fs_viewer, plot_fs_viewer_btn), + # # self.on_plot_fs_viewer_btn) + + # return pn.Row( + # self.pws_col(["## FS Viewer options", + # "fs_viewer", "plot_fs_viewer_btn" + # ]), + # self.on_plot_fs_viewer_btn) class BaseRobotPanel(AbipyParameterized): - """pass""" + """ + Base class for panels with AbiPy robot. + """ + + def __init__(self, robot, **params): + self.robot = robot + self.compare_params_btn = pnw.Button(name="Compare structures", button_type='primary') + self.transpose_params = pnw.Checkbox(name='Transpose table', value=True) + + super().__init__(**params) + + @depends_on_btn_click("compare_params_btn") + def on_compare_params_btn(self): + """ + Compare lattice parameters and atomic positions. + """ + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + transpose = self.transpose_params.value + dfs = self.robot.get_structure_dataframes() + ca("# Lattice dataframe") + ca(dfc(dfs.lattice, transpose=transpose)) -class PanelWithEbandsRobot(BaseRobotPanel): #, metaclass=abc.ABCMeta): + ca("# Parameters dataframe") + ca(dfc(self.robot.get_params_dataframe(), transpose=transpose)) + + accord = pn.Accordion(sizing_mode='stretch_width') + accord.append(("Atomic positions", dfc(dfs.coords, transpose=transpose))) + ca(accord) + + return col + + # TODO: widgets to change robot labels. + def get_compare_params_widgets(self): + """ + """ + return pn.Row(pn.Column( + self.compare_params_btn, self.transpose_params), + self.on_compare_params_btn, + sizing_mode="scale_both") + + +class PanelWithEbandsRobot(BaseRobotPanel): """ - Mixin class for panels with a robot that owns a list of of |ElectronBands| + Mixin class for panels with a robot that owns a list of of |ElectronBands|. """ - # Widgets to plot ebands. - ebands_plotter_mode = pnw.Select(name="Plot Mode", value="gridplot", - options=["gridplot", "combiplot", "boxplot", "combiboxplot"]) # "animate", - ebands_plotter_btn = pnw.Button(name="Plot", button_type='primary') - ebands_df_checkbox = pnw.Checkbox(name='With Ebands DataFrame', value=False) + def __init__(self, robot, **params): + + BaseRobotPanel.__init__(self, robot=robot, **params) - # Widgets to plot edos. - edos_plotter_mode = pnw.Select(name="Plot Mode", value="gridplot", - options=["gridplot", "combiplot"]) - edos_plotter_btn = pnw.Button(name="Plot", button_type='primary') + # Widgets to plot ebands. + self.ebands_plotter_mode = pnw.Select(name="Plot Mode", value="gridplot", + options=["gridplot", "combiplot", "boxplot", "combiboxplot"]) # "animate", + self.ebands_plotter_btn = pnw.Button(name="Plot", button_type='primary') + self.ebands_df_checkbox = pnw.Checkbox(name='With Ebands DataFrame', value=False) - def get_ebands_plotter_widgets(self): + # Widgets to plot edos. + self.edos_plotter_mode = pnw.Select(name="Plot Mode", value="gridplot", options=["gridplot", "combiplot"]) + self.edos_plotter_btn = pnw.Button(name="Plot", button_type='primary') + + def get_ebands_plotter_widgets(self) -> pn.Column: return pn.Column(self.ebands_plotter_mode, self.ebands_df_checkbox, self.ebands_plotter_btn) - @param.depends("ebands_plotter_btn.clicks") - def on_ebands_plotter_btn(self): - if self.ebands_plotter_btn.clicks == 0: return + @depends_on_btn_click("ebands_plotter_btn") + def on_ebands_plotter_btn(self) -> pn.Row: + """ + Plot the electronic density of states. + """ ebands_plotter = self.robot.get_ebands_plotter() plot_mode = self.ebands_plotter_mode.value - plotfunc = getattr(ebands_plotter, plot_mode, None) - if plotfunc is None: + plot_func = getattr(ebands_plotter, plot_mode, None) + if plot_func is None: raise ValueError("Don't know how to handle plot_mode: %s" % plot_mode) - fig = plotfunc(**self.fig_kwargs) - col = pn.Column(self._mp(fig), sizing_mode='scale_width') + fig = plot_func(**self.mpl_kwargs) + col = pn.Column(mpl(fig), sizing_mode='scale_width') + if self.ebands_df_checkbox.value: df = ebands_plotter.get_ebands_frame(with_spglib=True) - col.append(self._df(df)) + col.append(dfc(df)) return pn.Row(col, sizing_mode='scale_width') - def get_edos_plotter_widgets(self): + def get_edos_plotter_widgets(self) -> pn.Column: return pn.Column(self.edos_plotter_mode, self.edos_plotter_btn) - @param.depends("edos_plotter_btn.clicks") - def on_edos_plotter_btn(self): - if self.edos_plotter_btn.clicks == 0: return + @depends_on_btn_click("edos_plotter_btn") + def on_edos_plotter_btn(self) -> pn.Row: + """ + Plot the electronic density of states. + """ edos_plotter = self.robot.get_edos_plotter() plot_mode = self.edos_plotter_mode.value - plotfunc = getattr(edos_plotter, plot_mode, None) - if plotfunc is None: + plot_func = getattr(edos_plotter, plot_mode, None) + if plot_func is None: raise ValueError("Don't know how to handle plot_mode: %s" % plot_mode) - fig = plotfunc(**self.fig_kwargs) - return pn.Row(pn.Column(self._mp(fig)), sizing_mode='scale_width') + fig = plot_func(**self.mpl_kwargs) + + return pn.Row(pn.Column(mpl(fig)), sizing_mode='scale_width') + + +def jsmol_html(structure, supercell=(1, 1, 1), width=700, height=700, color="black", spin="false") -> pn.Column: + + cif_str = structure.write_cif_with_spglib_symms(None, ret_string=True) #, symprec=symprec + + # There's a bug in boken when we use strings with several '" quotation marks + # To bypass the problem I create a json list of strings and then I use a js variable + # to recreate the cif file by joining the tokens with: var string = elements.join('\n'); + import json + lines = cif_str.split("\n") + lines = json.dumps(lines, indent=4) + #print("lines:", lines) + + jsmol_div_id = gen_id() + jsmol_app_name = "js1" + supercell = "{" + ",".join(str(s) for s in supercell) + "}" + #supercell = "{2, 2, 2}" + + # http://wiki.jmol.org/index.php/Jmol_JavaScript_Object/Functions#getAppletHtml + + html = f""" + + +
    +""" + + #print(html) + return pn.Column(pn.pane.HTML(html, sizing_mode="stretch_width"), sizing_mode="stretch_width") diff --git a/abipy/panels/ddb.py b/abipy/panels/ddb.py index 105d4282d..2b15fe44f 100644 --- a/abipy/panels/ddb.py +++ b/abipy/panels/ddb.py @@ -1,160 +1,1128 @@ -""""Panels for DDB files.""" +"""Panel objects to operate on DDB files.""" +from __future__ import annotations + +import sys import param import panel as pn import panel.widgets as pnw -import bokeh.models.widgets as bkw -from abipy.panels.core import AbipyParameterized +from abipy.core.structure import Structure +from abipy.panels.core import (AbipyParameterized, PanelWithStructure, BaseRobotPanel, + mpl, ply, dfc, depends_on_btn_click, Loading, ActiveBar) +from abipy.dfpt.ddb import PhononBandsPlotter, DdbFile, DdbRobot +from abipy.tools.decorators import Appender + + +add_lr_docstring = Appender(""" +The variables [[dipdip@anaddb]], [[dipquad@anaddb]] and [[quadquad@anaddb]] +define the treatment of the long-range part (LR) of the IFCs in the Fourier interpolation +of the dynamical matrix in semiconductors. +See XXX + +By default, anaddb includes all the three different LR terms (DD, DQ, QQ) +to improve the quality of the Fourier interpolation **under the assumption** that +the DDB file contains the Born effective charges, the macroscopic dielectric tensor +and the dynamical quadrupoles. + +This means that, in the majority of the cases, there is no need to change the default value +of [[dipdip@anaddb]], [[dipquad@anaddb]] and [[quadquad@anaddb]] unless +you want to disable them for testing purposes. +Note, however, that the fact these options are activated by default does not necessarily mean +that anaddb can take advantage of them. +Please look at the output in the **Summary** Tab to understand if your DDB file +contains the required entries. +""", indents=0) -class DdbFilePanel(AbipyParameterized): + +class PanelWithAnaddbParams(param.Parameterized): """ - A panel to analyze a |DdbFile|. - Provides widgets to invoke anaddb and visualize the results. + Base class providing widgets to invoke Anaddb via AbiPy. + Used, for instance, by DdbFilePanel and DdbRobotPanel so that we don't have to + repeat the same parameters over and over again. """ - verbose = param.Integer(0, bounds=(0, None), doc="Verbosity Level") - mpi_procs = param.Integer(1, bounds=(1, None), doc="Number of MPI processes used in anaddb") - nqsmall = param.Integer(10, bounds=(1, None), doc="Number of divisions for smallest vector to generate Q-mesh") - ndivsm = param.Integer(2, bounds=(1, None), doc="Number of divisions for smallest segment in q-path") + nqsmall = param.Integer(10, bounds=(1, None), label="nqsmall (q-mesh for BZ integration)", + doc="Number of divisions for smallest vector to generate the q-mesh") + + ndivsm = param.Integer(5, bounds=(None, None), label="ndivsm (density of q-path)", + doc="Number of divisions for smallest vector to generate the q-path") + lo_to_splitting = param.ObjectSelector(default="automatic", objects=["automatic", True, False]) + chneut = param.ObjectSelector(default=1, objects=[0, 1, 2], doc="Abinit variable") - dipdip = param.ObjectSelector(default=1, objects=[0, 1], doc="Abinit variable") + + dipdip = param.ObjectSelector(default=1, objects=[0, 1, -1], doc="Abinit variable") + + dipquad = param.ObjectSelector(default=1, objects=[0, 1], doc="Abinit variable") + + quadquad = param.ObjectSelector(default=1, objects=[0, 1], doc="Abinit variable") + asr = param.ObjectSelector(default=2, objects=[0, 1, 2], doc="Abinit variable") + units = param.ObjectSelector(default="eV", objects=["eV", "meV", "Ha", "cm-1", "Thz"], doc="Energy units") - dos_method = param.ObjectSelector(default="tetra", objects=["tetra", "gaussian"], doc="Integration method for DOS") - temp_range = pnw.RangeSlider(name="T-range", start=0.0, end=1000, value=(0.0, 300.0), step=20) + dos_method = param.ObjectSelector(default="tetra", objects=["tetra", "gaussian"], label="Integration method for PDOS") + #temp_range = param.Range(default=(200.0, 400.0), bounds=(0, 1000), label="Temperature range in K.") - gamma_ev = param.Number(1e-4, bounds=(1e-20, None), doc="Phonon linewidth in eV") - w_range = pnw.RangeSlider(name="Frequency range (eV)", start=0.0, end=1.0, - value=(0.0, 0.1), step=0.001) - get_epsinf_btn = pnw.Button(name="Compute", button_type='primary') - plot_phbands_btn = pnw.Button(name="Plot Bands and DOS", button_type='primary') - plot_eps0w_btn = pnw.Button(name="Plot eps0(omega)", button_type='primary') + eps0_gamma_ev = param.Number(1e-4, bounds=(1e-20, None), label="Phonon linewidth in eV") + #eps0_wrange = param.Range(default=(0.0, 0.1), bounds=(0.0, 1.0), label="Frequency range (eV)") - plot_vsound_btn = pnw.Button(name="Calculate speed of sound", button_type='primary') + ifc_yscale = param.ObjectSelector(default="log", label="Scale for IFCs", + objects=["log", "linear", "symlog", "logit"]) - def __init__(self, ddb, **params): + def __init__(self, **params): super().__init__(**params) + # FIXME + self.nqsmall_list = pnw.LiteralInput(name='nqmall_list (python syntax)', value=[10, 20, 30], type=list) + #nqqpt = pnw.LiteralInput(name='nsmalls (list)', value=[10, 20, 30], type=list) + + self.eps0_wrange = pnw.EditableRangeSlider(name="Frequency range (eV)", value=(0.0, 0.1), + start=0.0, end=1.0, step=0.01) + + self.temp_range = pnw.EditableRangeSlider(name='T-range in K', value=(100.0, 400), + start=0, end=1000, step=50) + + # Base buttons + self.plot_without_asr_dipdip_btn = pnw.Button(name="Compute phonons with/wo ASR and DIPDIP", + button_type='primary') + + #if self.has_remote_serve: + # self.param.nqsmall.bounds = (1, 50) + # self.param.ndivsm.bounds = (-30, 30) + + def kwargs_for_anaget_phbst_and_phdos_files(self, **extra_kwargs) -> dict: + """ + Return the parameters required to invoke anaget_phbst_and_phdos_files + Additional kwargs can be specified in extra_kwargs if needed. + """ + d = dict(nqsmall=self.nqsmall, qppa=None, ndivsm=self.ndivsm, + line_density=None, asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, + dipquad=self.dipquad, quadquad=self.quadquad, + dos_method=self.dos_method, lo_to_splitting=self.lo_to_splitting, + verbose=self.verbose, mpi_procs=self.mpi_procs) + + if extra_kwargs: d.update(extra_kwargs) + + return d + + +class DdbFilePanel(PanelWithStructure, PanelWithAnaddbParams): + """ + A panel to analyze a |DdbFile|. + Provides widgets to invoke anaddb and visualize the results. + """ + + vsound_num_points = param.Integer(20, bounds=(1, None), label="Number of q-points") + + vsound_qpt_norm = param.Number(0.1, bounds=(0, None), label="Norm of the largest q-point") + + def __init__(self, ddb: DdbFile, **params): + PanelWithStructure.__init__(self, structure=ddb.structure, **params) + PanelWithAnaddbParams.__init__(self) self.ddb = ddb - @param.depends('get_epsinf_btn.clicks') - def get_epsinf(self): - """Compute eps_infinity and Born effective charges.""" - if self.get_epsinf_btn.clicks == 0: return + # Add buttons + self.get_epsinf_btn = pnw.Button(name="Compute", button_type='primary') + self.plot_phbands_btn = pnw.Button(name="Plot Bands and DOS", button_type='primary') + self.plot_eps0w_btn = pnw.Button(name="Plot eps0(omega)", button_type='primary') + + self.plot_vsound_btn = pnw.Button(name="Calculate speed of sound", button_type='primary') + self.plot_ifc_btn = pnw.Button(name="Compute IFC(R)", button_type='primary') + self.plot_phbands_quad_btn = pnw.Button(name="Plot PHbands with/without quadrupoles", button_type='primary') + self.plot_dos_vs_qmesh_btn = pnw.Button(name="Plot PHDos vs Qmesh", button_type='primary') + self.compute_elastic_btn = pnw.Button(name="Compute Elastic", button_type='primary') + + self.stacked_pjdos = pnw.Checkbox(name="Stacked PJDOS", value=True) + self.with_qpath = pnw.Checkbox(name="Show q-path with plotly", value=True) + def get_becs_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## Born effective charges options", + "asr", "chneut", "dipdip", "eps0_gamma_ev", "get_epsinf_btn", + ]), + self.get_epsinf + ) + + @depends_on_btn_click('get_epsinf_btn') + def get_epsinf(self) -> pn.Column: + """ + Compute eps_infinity and Born effective charges from DDB. + """ epsinf, becs = self.ddb.anaget_epsinf_and_becs(chneut=self.chneut, mpi_procs=self.mpi_procs, verbose=self.verbose) - gen = self.ddb.anaget_dielectric_tensor_generator(asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, - mpi_procs=self.mpi_procs, verbose=self.verbose) + gen, inp = self.ddb.anaget_dielectric_tensor_generator(asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, + mpi_procs=self.mpi_procs, verbose=self.verbose, + return_input=True) + + # Fill column + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + eps0 = gen.tensor_at_frequency(w=0, gamma_ev=self.eps0_gamma_ev) + + df_kwargs = {} + def m(s): + return pn.pane.Markdown(s) + #return pn.Row(pn.pane.LaTeX(s, style={'font-size': '18pt'}), sizing_mode="stretch_width") + + #ca(m(f"$$\epsilon_0$$ in Cart. coords. Computed with gamma_eV: {self.eps0_gamma_ev:.2f}")) + ca(m(r"## Cartesian coordinates of $$\epsilon_0$$ tensor")) + ca(dfc(eps0.get_dataframe(cmode="real"), **df_kwargs)) + ca(m(r"## Cartesian coordinates of $$\epsilon_\infty$$ tensor")) + ca(dfc(epsinf.get_dataframe(), **df_kwargs)) + ca("## Born effective charges in Cartesian coordinates:") + ca(dfc(becs.get_voigt_dataframe(), **df_kwargs)) + ca("## Anaddb input file") + ca(self.html_with_clipboard_btn(inp)) - eps0 = gen.tensor_at_frequency(w=0, gamma_ev=self.gamma_ev) - #eps0 = pnw.DataFrame(eps0.get_dataframe()) - return pn.Column(epsinf, eps0, becs) + #pn.state.notifications.success('This is a success notification.', duration=0) + #pn.state.notifications.send('Fire!!!', background='red', icon='') + #return pn.io.notifications.NotificationArea.demo() - @param.depends('plot_eps0w_btn.clicks') - def plot_eps0w(self): - """Compute eps0(omega) and plot the results.""" - if self.plot_eps0w_btn.clicks == 0: return - gen = self.ddb.anaget_dielectric_tensor_generator(asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, - mpi_procs=self.mpi_procs, verbose=self.verbose) - ws = self.w_range.value + return col + + def get_eps0_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## epsilon_0", + "asr", "chneut", "dipdip", "eps0_gamma_ev", "eps0_wrange", "plot_eps0w_btn", + ]), + self.plot_eps0w + ) + + @depends_on_btn_click('plot_eps0w_btn') + def plot_eps0w(self) -> pn.Column: + """ + Compute eps0(omega) from DDB and plot the results. + """ + gen, inp = self.ddb.anaget_dielectric_tensor_generator(asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, + mpi_procs=self.mpi_procs, verbose=self.verbose, + return_input=True) + ws = self.eps0_wrange.value w_max = ws[1] if w_max == 1.0: w_max = None # Will compute w_max in plot routine from ph freqs. def p(component, reim): - return gen.plot(w_min=ws[0], w_max=w_max, gamma_ev=self.gamma_ev, num=500, component=component, - reim=reim, units=self.units, **self.fig_kwargs) - - # Build grid - gspec = pn.GridSpec(sizing_mode='scale_width') - gspec[0, 0] = p("diag", "re") - gspec[0, 1] = p("diag", "im") - gspec[1, 0] = p("offdiag", "re") - gspec[1, 1] = p("offdiag", "im") - gspec[2, :] = gen.get_oscillator_dataframe(reim="all", tol=1e-6) - - return gspec - - @param.depends('plot_phbands_btn.clicks') - def plot_phbands_and_phdos(self, event=None): - """Compute phonon bands and ph-DOSes and plot the results.""" - if self.plot_phbands_btn.clicks == 0: return - #self.plot_phbands_btn.button_type = "warning" - - print("Computing phbands") - with self.ddb.anaget_phbst_and_phdos_files( - nqsmall=self.nqsmall, qppa=None, ndivsm=self.ndivsm, - line_density=None, asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, - dos_method=self.dos_method, lo_to_splitting=self.lo_to_splitting, - verbose=self.verbose, mpi_procs=self.mpi_procs) as g: + fig = gen.plotly(w_min=ws[0], w_max=w_max, gamma_ev=self.eps0_gamma_ev, num=500, component=component, + reim=reim, units=self.units, show=False) + return ply(fig, with_help=False) + + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + # Add figures + ca("## epsilon(w):") + ca(p("diag", "re")) + ca(p("diag", "im")) + ca(p("offdiag", "re")) + ca(p("offdiag", "im")) + + #gspec[2, :] = gen.get_oscillator_dataframe(reim="all", tol=1e-6) + # TODO: FIX + # TypeError: Object of type complex is not JSON serializable + #dfc(gen.get_oscillator_dataframe(reim="all", tol=1e-6)) + ca("## Oscillator matrix elements:") + ca(gen.get_oscillator_dataframe(reim="all", tol=1e-6)) + # Add HTML pane with input. + ca("## Anaddb input file") + ca(self.html_with_clipboard_btn(inp)) + + return col + def get_phbands_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## PH-bands options", + "nqsmall", "ndivsm", "asr", "chneut", + "dipdip", "dipquad", "quadquad", + "lo_to_splitting", "dos_method", + "stacked_pjdos", "with_qpath", "temp_range", + pn.layout.Divider(), + "plot_phbands_btn", + ]), + self.on_plot_phbands_and_phdos + ) + + @depends_on_btn_click('plot_phbands_btn') + @add_lr_docstring + def on_plot_phbands_and_phdos(self) -> pn.Column: + """ + This Tab provides widgets to compute: + + - Phonon dispersion along a high-symmetry **q**-path + - Total phonon DOS and atom-projected phonon DOSes + - Thermodynamic properties in the Harmonic approximation + + Important + + Note that **anaddb** uses the **q**-mesh found in the DDB file to build the + interatomic force constants (IFCs) in real space and then compute phonon quantities + at arbitrary **q**-points by Fourier interpolation. + + """ + # Computing phbands + kwargs = self.kwargs_for_anaget_phbst_and_phdos_files(return_input=True) + + with self.ddb.anaget_phbst_and_phdos_files(**kwargs) as g: phbst_file, phdos_file = g phbands, phdos = phbst_file.phbands, phdos_file.phdos - print("Computing phbands completed") - # Build grid - gspec = pn.GridSpec(sizing_mode='scale_width') - gspec[0, 0] = phbands.plot_with_phdos(phdos, units=self.units, **self.fig_kwargs) - gspec[0, 1] = phdos_file.plot_pjdos_type(units=self.units, exchange_xy=True, **self.fig_kwargs) - gspec[1, 0] = phdos_file.msqd_dos.plot(units=self.units, **self.fig_kwargs) + # Fill column + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + ca("## Phonon band structure and DOS:") + ca(ply(phbands.plotly_with_phdos(phdos, units=self.units, show=False))) + + if self.with_qpath.value: + ca("## Brillouin zone and q-path:") + qpath_pane = ply(phbands.qpoints.plotly(show=False), with_divider=False) + df_qpts = phbands.qpoints.get_highsym_datataframe() + ca(pn.Row(qpath_pane, df_qpts)) + ca(pn.layout.Divider()) + + ca("## Type-projected phonon DOS:") + ca(ply(phdos_file.plotly_pjdos_type(units=self.units, stacked=self.stacked_pjdos.value, show=False))) + + ca("## Thermodynamic properties in the harmonic approximation:") temps = self.temp_range.value - gspec[1, 1] = phdos.plot_harmonic_thermo(tstart=temps[0], tstop=temps[1], num=50, **self.fig_kwargs) - #msqd_dos.plot_tensor(**self.fig_kwargs) - #self.plot_phbands_btn.button_type = "primary" + ca(ply(phdos.plotly_harmonic_thermo(tstart=temps[0], tstop=temps[1], num=50, show=False))) + #ca(mpl(phdos_file.msqd_dos.plot(units=self.units, **self.mpl_kwargs))) + #msqd_dos.plot_tensor(**self.mpl_kwargs) - return gspec + # Add Anaddb input file + ca("## Anaddb input file") + ca(self.html_with_clipboard_btn(g.input)) - @param.depends('plot_vsound_btn.clicks') - def plot_vsound(self): + return col + + def get_vsound_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## Speed of sound options", + "vsound_num_points", "vsound_qpt_norm", + "asr", "chneut", "dipdip", "dipquad", "quadquad", + "plot_vsound_btn", + ]), + self.plot_vsound + ) + + @depends_on_btn_click('plot_vsound_btn') + @add_lr_docstring + def plot_vsound(self) -> pn.Column: """ - Compute the speed of sound by fitting phonon frequencies - along selected directions by linear least-squares fit. + This Tab provides widgets to compute the speed of sound by fitting + the **first three** phonon branches along selected **q**-directions by + linear least-squares fit. """ - if self.plot_vsound_btn.clicks == 0: return + col = pn.Column(sizing_mode="stretch_width"); ca = col.append + from abipy.dfpt.vsound import SoundVelocity - sv = SoundVelocity.from_ddb(self.ddb.filepath, num_points=20, qpt_norm=0.1, - ignore_neg_freqs=True, asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, - verbose=self.verbose, mpi_procs=self.mpi_procs) + sv, inp = SoundVelocity.from_ddb(self.ddb.filepath, num_points=self.vsound_num_points, qpt_norm=self.vsound_qpt_norm, + ignore_neg_freqs=True, asr=self.asr, chneut=self.chneut, + dipdip=self.dipdip, dipquad=self.dipquad, quadquad=self.quadquad, + verbose=self.verbose, mpi_procs=self.mpi_procs, return_input=True) + + ca("## Linear least-squares fit") + ca(ply(sv.plotly(show=False))) + ca("## Speed of sound computed along different q-directions in reduced coords") + ca(dfc(sv.get_dataframe())) + ca("## Anaddb input file") + ca(self.html_with_clipboard_btn(inp)) + + return col + + def get_asr_dipdip_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## ASR & DIPDIP options", + "nqsmall", "ndivsm", "dos_method", "plot_without_asr_dipdip_btn", + ]), + self.plot_without_asr_dipdip + ) + + @depends_on_btn_click('plot_without_asr_dipdip_btn') + def plot_without_asr_dipdip(self) -> pn.Column: + """ + This Tab provides widgets to compare phonon bands and DOSes computed with/without + enforcing the acoustic sum rule and the treatment of the dipole-dipole interaction in the dynamical matrix. + Requires DDB file with eps_inf, BECS. + """ + asr_plotter = self.ddb.anacompare_asr(asr_list=(0, 2), chneut_list=(1, ), dipdip=1, dipquad=1, quadquad=1, + lo_to_splitting=self.lo_to_splitting, + nqsmall=self.nqsmall, ndivsm=self.ndivsm, + dos_method=self.dos_method, ngqpt=None, + verbose=self.verbose, mpi_procs=self.mpi_procs) + + dipdip_plotter = self.ddb.anacompare_dipdip(chneut_list=(1,), asr=2, lo_to_splitting=self.lo_to_splitting, + nqsmall=self.nqsmall, ndivsm=self.ndivsm, + dos_method=self.dos_method, ngqpt=None, + verbose=self.verbose, mpi_procs=self.mpi_procs) + + # Fill column + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + ca("## Phonon bands and DOS with/wo acoustic sum rule:") + ca(ply(asr_plotter.combiplotly(show=False))) + ca("## Phonon bands and DOS with/without the treatment of the dipole-dipole interaction:") + ca(ply(dipdip_plotter.combiplotly(show=False))) + + return col + + def get_dos_vs_qmesh_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## DOS vs q-mesh options", + "nqsmall_list", "dos_method", + "asr", "chneut", "dipdip", "dipquad", "quadquad", "temp_range", + "plot_dos_vs_qmesh_btn", + ]), + self.plot_dos_vs_qmesh + ) + + @depends_on_btn_click('plot_dos_vs_qmesh_btn') + @add_lr_docstring + def plot_dos_vs_qmesh(self) -> pn.Column: + """ + This Tab provides widgets to compare phonon DOSes and thermodynamic properties + obtained using different q-meshes specifined via `nqsmall_list`. + """ + r = self.ddb.anacompare_phdos(self.nqsmall_list.value, asr=self.asr, chneut=self.chneut, + dipdip=self.dipdip, dipquad=self.dipquad, quadquad=self.quadquad, + dos_method=self.dos_method, ngqpt=None, + verbose=self.verbose, num_cpus=1, stream=sys.stdout) + + #r.phdoses: List of |PhononDos| objects + + # Fill column + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + ca("## Phonon DOSes obtained with different q-meshes:") + ca(ply(r.plotter.combiplotly(show=False))) + + ca("## Convergence of termodynamic properties.") + temps = self.temp_range.value + #ca(mpl(r.plotter.plot_harmonic_thermo(tstart=temps[0], tstop=temps[1], num=50, + # units=self.units, **self.mpl_kwargs))) + ca(ply(r.plotter.plotly_harmonic_thermo(tstart=temps[0], tstop=temps[1], num=50, + units=self.units, show=False))) + + return col + + def get_quadrupoles_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## Quadrupoles options", + "asr", "chneut", "dipdip", "lo_to_splitting", "ndivsm", "dos_method", + "plot_phbands_quad_btn", + ]), + self.plot_phbands_quad + ) + + @depends_on_btn_click('plot_phbands_quad_btn') + def plot_phbands_quad(self) -> pn.Column: + """ + This Tab provides widgets to compare phonon bands and DOSes computed with/without the inclusion + of the dipole-quadrupole and quadrupole-quadrupole terms in the dynamical matrix. + Requires DDB file with eps_inf, BECS and dynamical quadrupoles. + """ + plotter = self.ddb.anacompare_quad(asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, + lo_to_splitting=self.lo_to_splitting, + nqsmall=0, ndivsm=self.ndivsm, dos_method=self.dos_method, ngqpt=None, + verbose=self.verbose, mpi_procs=self.mpi_procs) + + # Fill column + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + ca("## Phonon Bands obtained with different q-meshes:") + ca(ply(plotter.combiplotly(show=False))) + + return col + + def get_ifcs_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## IFCs options", + "asr", "dipdip", "chneut", "ifc_yscale", "plot_ifc_btn", + ]), + self.on_plot_ifc + ) + + @depends_on_btn_click('plot_ifc_btn') + def on_plot_ifc(self): + """ + Plot the Interatomic Force Constants in real space. + """ + ifc, inp = self.ddb.anaget_ifc(asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, return_input=True) + + kwds = self.mpl_kwargs.copy() + kwds["yscale"] = self.ifc_yscale + #print(kwds) + + # Fill column + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + ca(mpl(ifc.plot_longitudinal_ifc(title="Longitudinal IFCs", **kwds))) + ca(mpl(ifc.plot_longitudinal_ifc_short_range(title="Longitudinal IFCs short range", **kwds))) + ca(mpl(ifc.plot_longitudinal_ifc_ewald(title="Longitudinal IFCs Ewald", **kwds))) + ca("## Anaddb input file") + ca(self.html_with_clipboard_btn(inp)) + + return col + + def get_elastic_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## Elastic options", + "asr", "chneut", "compute_elastic_btn", + ]), + self.on_compute_elastic_btn + ) + + @depends_on_btn_click('compute_elastic_btn') + def on_compute_elastic_btn(self) -> pn.Column: + """ + Call anaddb to compute elastic and piezoelectric tensors. Require DDB with strain terms. + + By default, this method sets the anaddb input variables automatically + by looking at the 2nd-order derivatives available in the DDB file. + This behaviour can be changed by setting explicitly the value of: + `relaxed_ion` and `piezo`. + """ + + edata, inp = self.ddb.anaget_elastic(relaxed_ion="automatic", piezo="automatic", + dde=False, stress_correction=False, asr=self.asr, chneut=self.chneut, + mpi_procs=1, verbose=self.verbose, return_input=True) + + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + #print(edata) + #edata.elastic_relaxed + #edata.elastic_relaxed.compliance_tensor + #edata.get_elastic_properties_dataframe(properties_as_index=True) + #edata.get_elastic_voigt_dataframe(tol=1e-5) + #edata.piezo_relaxed + + # This will open a new tab in the browser with the ELATE webpage + #html = edata.elastic_relaxed.get_elate_html(sysname="FooBar") + #return pn.Template(html).show() + + ca("## Anaddb input file") + ca(self.html_with_clipboard_btn(inp)) + + return col + + def get_panel(self, as_dict=False, **kwargs): + """ + Return tabs with widgets to interact with the DDB file. + """ + ddb = self.ddb + d = {} + d["Summary"] = self.get_summary_view_for_abiobj(self.ddb) + + # Note how we build tabs according to the content of the DDB. + if ddb.has_at_least_one_atomic_perturbation(): + d["PH-bands"] = self.get_phbands_view() + + if ddb.has_bec_terms(select="at_least_one"): + d["BECs"] = self.get_becs_view() + + if ddb.has_epsinf_terms(select="at_least_one_diagoterm"): + d["eps0"] = self.get_eps0_view() + + if ddb.has_at_least_one_atomic_perturbation(): + d["Speed of sound"] = self.get_vsound_view() + d["DOS vs q-mesh"] = self.get_dos_vs_qmesh_view() + + if ddb.has_lo_to_data(): + d["ASR & DIPDIP"] = self.get_asr_dipdip_view() + if ddb.has_quadrupole_terms(): + d["Quadrupoles"] = self.get_quadrupoles_view() + + d["IFCs"] = self.get_ifcs_view() + + if self.ddb.has_strain_terms(): + d["Elastic"] = self.get_elastic_view() + + d["Structure"] = self.get_structure_view() + d["Global"] = pn.Row( + self.pws_col(["## Global options", "units", "mpi_procs", "verbose"]), + self.get_software_stack() + ) + + if as_dict: return d + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) + + +class PanelWithFileInput(AbipyParameterized): + + info_str = """ +Post-process the data stored in one of the ABINIT output files (*GSR.nc*, *DDB*, *FATBANDS.nc*, etc) +""" + + def __init__(self, use_structure=False, **params): + + super().__init__(**params) + + self.use_structure = use_structure + help_md = pn.pane.Markdown(f""" +## Description + +{self.info_str} + +Use the **Choose File** to upload one of the files supported by this app. +Drop one of of the files supported by AbiPy onto the FileInput area or +click the **Choose File** button to upload +Keep in mind that the **file extension matters**! +Also, avoid uploading big files (size > XXX). +""") + + self.main_area = pn.Column(help_md, sizing_mode="stretch_width") + self.abifile = None + + self.file_input = pnw.FileInput(height=60, css_classes=["pnx-file-upload-area"]) + self.file_input.param.watch(self.on_file_input, "value") + + self.mpid_input = pnw.TextInput(name='mp-id', placeholder='Enter e.g. mp-149 for Silicon and press ⏎') + self.mpid_input.param.watch(self.on_mpid_input, "value") + self.mpid_err_wdg = pn.pane.Markdown("") + #self.mp_progress = pn.indicators.Progress(name='Fetching data from the MP website', bar_color="warning", + # active=False, width=200, height=10, align="center") + + def on_file_input(self, event) -> None: + + with Loading(self.main_area): + new_abifile = self.get_abifile_from_file_input(self.file_input, use_structure=self.use_structure) - # Insert results in grid. - gspec = pn.GridSpec(sizing_mode='scale_width') - gspec[0, :1] = sv.get_dataframe() - gspec[1, :1] = sv.plot(**self.fig_kwargs) + if self.abifile is not None: + self.abifile.remove() - return gspec + self.abifile = new_abifile + self.main_area.objects = [self.abifile.get_panel()] + + def on_mpid_input(self, event) -> None: + + with Loading(self.mpid_input, err_wdg=self.mpid_err_wdg): + self.abifile = Structure.from_mpid(self.mpid_input.value) + + self.main_area.objects = [self.abifile.get_panel()] + + def get_panel(self): + + if self.use_structure: + title = "Structure Analyzer" + msg = "## Upload (or drag & drop) **any file** with a structure (*.nc*, *.abi*, *.cif*, *.xsf*, POSCAR):" + else: + title = "Output File Analyzer" + msg = "## Upload (or drag & drop) **any file** supported by AbiPy. See list below:" + + col = pn.Column( + msg, + self.get_fileinput_section(self.file_input), + self.wdg_exts_with_get_panel(), + sizing_mode="stretch_width") + + if self.use_structure: + col.extend([ + "## or get the structure from the [Materials Project](https://materialsproject.org/) database:", + pn.Row(self.mpid_input, pn.Column(self.mpid_err_wdg), sizing_mode="stretch_width"), + ]) + + main = pn.Column(col, self.main_area, sizing_mode="stretch_width") + + cls, kwds = self.get_abinit_template_cls_kwds() + + return cls(main=main, title=title, **kwds) + + +class PanelWithStructureInput(PanelWithFileInput): + + info_str = """ +This app allows users to upload a file with structure info and operate on it. +""" + + def __init__(self, **params): + super().__init__(use_structure=True, **params) + + +class DdbPanelWithFileInput(AbipyParameterized): + + info_str = """ +This app allows users to upload a DDB file with the dynamical matrix, compute +phonon-related properties such as band structures, DOS, infrared absorption and visualize +the results. +""" + + def __init__(self, **params): + + super().__init__(**params) + + help_md = pn.pane.Markdown(f""" +## Description + +{self.info_str} +""") + + self.main_area = pn.Column(help_md, + self.get_alert_data_transfer(), + sizing_mode="stretch_width") + self.abifile = None + + self.file_input = pnw.FileInput(height=60, css_classes=["pnx-file-upload-area"]) + self.file_input.param.watch(self.on_file_input, "value") + + self.mpid_input = pnw.TextInput(name='mp-id', placeholder='Enter e.g. mp-149 for Silicon and press ⏎') + self.mpid_input.param.watch(self.on_mpid_input, "value") + self.mpid_err_wdg = pn.pane.Markdown("") + #self.mp_progress = pn.indicators.Progress(name='Fetching data from the MP website', bar_color="warning", + # active=False, width=200, height=10, align="center") + + def on_file_input(self, event) -> None: + + with Loading(self.main_area): + self.mpid_err_wdg.object = "" + new_abifile = self.get_abifile_from_file_input(self.file_input) + + if self.abifile is not None: + self.abifile.remove() + + self.abifile = new_abifile + self.main_area.objects = [self.abifile.get_panel()] + + def on_mpid_input(self, event): + + from abipy.dfpt.ddb import DdbFile + with Loading(self.mpid_input, err_wdg=self.mpid_err_wdg): + self.abifile = DdbFile.from_mpid(self.mpid_input.value) + self.main_area.objects = [self.abifile.get_panel()] + + def get_panel(self): + + col = pn.Column( + "## Upload (or drag & drop) a DDB file:", + self.get_fileinput_section(self.file_input), + "## or get the DDB from the [Materials Project](https://materialsproject.org/) database (*if available*):", + pn.Row(self.mpid_input, pn.Column(self.mpid_err_wdg), sizing_mode="stretch_width"), + sizing_mode="stretch_width") + + main = pn.Column(col, self.main_area, sizing_mode="stretch_width") + cls, kwds = self.get_abinit_template_cls_kwds() + + return cls(main=main, title="DDB Analyzer", **kwds) + + +class CompareDdbWithMP(AbipyParameterized): + + info_str = """ +This app alllows users to upload a DDB file and compare it with the one available on the MP. +""" + + def __init__(self, **params): + + super().__init__(**params) + + help_md = pn.pane.Markdown(f""" +## Description + +{self.info_str} +""") + + self.main_area = pn.Column(help_md, + self.get_alert_data_transfer(), + sizing_mode="stretch_width") + + self.file_input = pnw.FileInput(height=60, css_classes=["pnx-file-upload-area"]) + self.file_input.param.watch(self.on_file_input, "value") + + self.mp_progress = pn.indicators.Progress(name='Fetching DDB from the MP website', bar_color="warning", + active=False, width=100, height=10, align="center") + self.mp_err_wdg = pn.pane.Markdown("") + + def on_file_input(self, event) -> None: + abinit_ddb = self.get_abifile_from_file_input(self.file_input) + from abipy.dfpt.ddb import DdbFile, DdbRobot + + # Match Abinit structure with MP. + mp = abinit_ddb.structure.mp_match() + + with ActiveBar(self.mp_progress, err_wdg=self.mp_err_wdg), Loading(self.main_area): + mpid_list = [mp_id for mp_id in mp.ids if mp_id != "this"] + ddb_robot = DdbRobot.from_mpid_list(mpid_list) + ddb_robot.add_file("Yours DDB", abinit_ddb) + + self.main_area.objects = [DdbRobotPanel(ddb_robot).get_panel()] def get_panel(self): + col = pn.Column( + "## Upload (or drag & drop) a DDB file:", + self.get_fileinput_section(self.file_input), + pn.Row("## Fetching data from the MP website: ", self.mp_progress, self.mp_err_wdg, + sizing_mode="stretch_width"), + sizing_mode="stretch_width") + + main = pn.Column(col, self.main_area, sizing_mode="stretch_width") + cls, kwds = self.get_abinit_template_cls_kwds() + + return cls(main=main, title="Compare with MP DDB", **kwds) + + +class DdbRobotPanel(BaseRobotPanel, PanelWithAnaddbParams): + """ + A panel to analyze multiple DdbFiles via the low-level API provided by DdbRobot. + Provides widgets to invoke anaddb and visualize the results. + """ + def __init__(self, robot: DdbRobot, **params): + BaseRobotPanel.__init__(self, robot=robot, **params) + PanelWithAnaddbParams.__init__(self) + + # Buttons + self.plot_combiplot_btn = pnw.Button(name="Compute", button_type='primary') + self.combiplot_check_btn = pnw.CheckButtonGroup(name='Check Button Group', + value=['combiplot'], options=['combiplot', 'gridplot']) + + def kwargs_for_anaget_phbst_and_phdos_files(self, **extra_kwargs) -> dict: + """Extend method of base class to handle lo_to_splitting""" + kwargs = super().kwargs_for_anaget_phbst_and_phdos_files(**extra_kwargs) + + if kwargs["lo_to_splitting"] == "automatic": + if any(not ddb.has_lo_to_data() for ddb in self.robot.abifiles): + kwargs["lo_to_splitting"] = False + if self.verbose: + print("Setting lo_to_splitting to False since at least one DDB file does not have LO-TO data.") + + return kwargs + + @depends_on_btn_click('plot_combiplot_btn') + def plot_combiplot(self, **kwargs) -> pn.Column: + """Plot phonon band structures.""" + kwargs = self.kwargs_for_anaget_phbst_and_phdos_files() + + #TODO: Recheck lo-to automatic. + r = self.robot.anaget_phonon_plotters(**kwargs) + #r = self.robot.anaget_phonon_plotters() + + # Fill column + col = pn.Column(sizing_mode='stretch_both'); ca = col.append + + if "combiplot" in self.combiplot_check_btn.value: + ca("## Combiplot:") + ca(ply(r.phbands_plotter.combiplotly(units=self.units, show=False))) + + if "gridplot" in self.combiplot_check_btn.value: + ca("## Gridplot:") + # FIXME implement with_dos = True + ca(ply(r.phbands_plotter.gridplotly(units=self.units, with_dos=False, show=False))) + + #if "temp_range" in self.combiplot_check_btn.value: + #temps = self.temp_range.value + #ca("## Thermodynamic properties in the harmonic approximation:") + ##ca(phdos.plot_harmonic_thermo(tstart=temps[0], tstop=temps[1], num=50, **self.mpl_kwargs)) + #ca(ply(phdos.plotly_harmonic_thermo(tstart=temps[0], tstop=temps[1], num=50, show=False))) + + return col + + #@param.depends('get_epsinf_btn.clicks') + #def get_epsinf(self): + # """Compute eps_infinity and Born effective charges from DDB.""" + # if self.get_epsinf_btn.clicks == 0: return + + # with ButtonContext(self.get_epsinf_btn): + # epsinf, becs = self.ddb.anaget_epsinf_and_becs(chneut=self.chneut, + # mpi_procs=self.mpi_procs, verbose=self.verbose) + + # gen, inp = self.ddb.anaget_dielectric_tensor_generator(asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, + # mpi_procs=self.mpi_procs, verbose=self.verbose, + # return_input=True) + + # # Fill column + # col = pn.Column(sizing_mode='stretch_width'); ca = col.append + # df_kwargs = dict(auto_edit=False, autosize_mode="fit_viewport") + # #l = pn.pane.LaTeX + + # eps0 = gen.tensor_at_frequency(w=0, gamma_ev=self.eps0_gamma_ev) + # ca(r"## $\epsilon^0$ in Cart. coords (computed with Gamma_eV):") + # ca(dfc(eps0.get_dataframe(cmode="real"), **df_kwargs)) + # ca(r"## $\epsilon^\infty$ in Cart. coords:") + # ca(dfc(epsinf.get_dataframe(), **df_kwargs)) + # ca("## Born effective charges in Cart. coords:") + # ca(dfc(becs.get_voigt_dataframe(), **df_kwargs)) + # ca("## Anaddb input file") + # ca(self.html_with_clipboard_btn(inp)) + + # return col + + #@param.depends('plot_eps0w_btn.clicks') + #def plot_eps0w(self): + # """Compute eps0(omega) from DDB and plot the results.""" + # if self.plot_eps0w_btn.clicks == 0: return + + # with ButtonContext(self.plot_eps0w_btn): + # gen, inp = self.ddb.anaget_dielectric_tensor_generator(asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, + # mpi_procs=self.mpi_procs, verbose=self.verbose, + # return_input=True) + # ws = self.eps0_wrange.value + # w_max = ws[1] + # if w_max == 1.0: w_max = None # Will compute w_max in plot routine from ph freqs. + + # def p(component, reim): + # return gen.plot(w_min=ws[0], w_max=w_max, gamma_ev=self.eps0_gamma_ev, num=500, component=component, + # reim=reim, units=self.units, **self.mpl_kwargs) + + # # Build grid + # gspec = pn.GridSpec(sizing_mode='scale_width') + # gspec[0, 0] = p("diag", "re") + # gspec[0, 1] = p("diag", "im") + # gspec[1, 0] = p("offdiag", "re") + # gspec[1, 1] = p("offdiag", "im") + # gspec[2, :] = gen.get_oscillator_dataframe(reim="all", tol=1e-6) + # # Add HTML pane with input. + # gspec[3, 0] = pn.pane.HTML(inp._repr_html_()) + # ca(self.html_with_clipboard_btn(inp)) + + # return gspec + + #@param.depends('plot_phbands_btn.clicks') + #def on_plot_phbands_and_phdos(self, event=None): + # """Compute phonon bands and DOSes from DDB and plot the results.""" + # if self.plot_phbands_btn.clicks == 0: return + + # with ButtonContext(self.plot_phbands_btn): + # # Computing phbands + # with self.ddb.anaget_phbst_and_phdos_files( + # nqsmall=self.nqsmall, qppa=None, ndivsm=self.ndivsm, + # line_density=None, asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, + # dos_method=self.dos_method, lo_to_splitting=self.lo_to_splitting, + # verbose=self.verbose, mpi_procs=self.mpi_procs, return_input=True) as g: + + # phbst_file, phdos_file = g + # phbands, phdos = phbst_file.phbands, phdos_file.phdos + + # # Fill column + # col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + # ca("## Phonon band structure and DOS:") + # ca(ply(phbands.plotly_with_phdos(phdos, units=self.units, show=False))) + # #ca(mpl(phbands.plot_with_phdos(phdos, units=self.units, **self.mpl_kwargs))) + # #ca(mpl(phdos_file.plot_pjdos_type(units=self.units, exchange_xy=True, **self.mpl_kwargs))) + # #ca(mpl(phdos_file.msqd_dos.plot(units=self.units, **self.mpl_kwargs))) + # temps = self.temp_range.value + # ca("## Thermodynamic properties in the harmonic approximation:") + # #ca(phdos.plot_harmonic_thermo(tstart=temps[0], tstop=temps[1], num=50, **self.mpl_kwargs)) + # ca(ply(phdos.plotly_harmonic_thermo(tstart=temps[0], tstop=temps[1], num=50, show=False))) + # #msqd_dos.plot_tensor(**self.mpl_kwargs) + # #self.plot_phbands_btn.button_type = "primary" + + # # Add HTML pane with input + # ca("## Anaddb input file") + # ca(self.html_with_clipboard_btn(inp)) + + # return col + + #@param.depends('plot_vsound_btn.clicks') + #def plot_vsound(self): + # """ + # Compute the speed of sound by fitting phonon frequencies + # along selected directions by linear least-squares fit. + # """ + # if self.plot_vsound_btn.clicks == 0: return + + # with ButtonContext(self.plot_vsound_btn): + # from abipy.dfpt.vsound import SoundVelocity + # sv = SoundVelocity.from_ddb(self.ddb.filepath, num_points=20, qpt_norm=0.1, + # ignore_neg_freqs=True, asr=self.asr, chneut=self.chneut, dipdip=self.dipdip, + # verbose=self.verbose, mpi_procs=self.mpi_procs) + + # # Insert results in grid. + # gspec = pn.GridSpec(sizing_mode='scale_width') + # gspec[0, :1] = sv.get_dataframe() + # gspec[1, :1] = sv.plot(**self.mpl_kwargs) + + # return gspec + + # THIS OK but I don't think it's very useful + @depends_on_btn_click('plot_without_asr_dipdip_btn') + def plot_without_asr_dipdip(self) -> pn.Column: + """ + Compare phonon bands and DOSes computed with/without the acoustic sum rule + and the treatment of the dipole-dipole interaction in the dynamical matrix. + Requires DDB file with eps_inf, BECS. + """ + asr_plotter = PhononBandsPlotter() + dipdip_plotter = PhononBandsPlotter() + + for label, ddb in self.robot.items(): + asr_p = ddb.anacompare_asr(asr_list=(0, 2), chneut_list=(1, ), dipdip=1, + lo_to_splitting=self.lo_to_splitting, + nqsmall=self.nqsmall, ndivsm=self.ndivsm, + dos_method=self.dos_method, ngqpt=None, + verbose=self.verbose, mpi_procs=self.mpi_procs, + pre_label=label) + + asr_plotter.append_plotter(asr_p) + + dipdip_p = ddb.anacompare_dipdip(chneut_list=(1,), asr=2, lo_to_splitting=self.lo_to_splitting, + nqsmall=self.nqsmall, ndivsm=self.ndivsm, + dos_method=self.dos_method, ngqpt=None, + verbose=self.verbose, mpi_procs=self.mpi_procs, + pre_label=label) + + dipdip_plotter.append_plotter(dipdip_p) + + # Fill column + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + + ca("## Phonon bands and DOS with/wo the acoustic sum rule:") + ca(ply(asr_plotter.combiplotly(show=False))) + ca("## Phonon bands and DOS with/without the treatment of the dipole-dipole interaction:") + ca(ply(dipdip_plotter.combiplotly(show=False))) + + return col + + def get_panel(self, as_dict=False, **kwargs): """Return tabs with widgets to interact with the DDB file.""" - tabs = pn.Tabs(); app = tabs.append - row = pn.Row(bkw.PreText(text=self.ddb.to_string(verbose=self.verbose), sizing_mode="scale_both")) - app(("Summary", row)) - app(("Ph-bands", pn.Row( - pn.Column("# PH-bands options", - *[self.param[k] for k in ("nqsmall", "ndivsm", "asr", "chneut", "dipdip", "lo_to_splitting")], - self.temp_range, self.plot_phbands_btn), - self.plot_phbands_and_phdos) - )) - app(("BECs", pn.Row( - pn.Column("# Born effective charges options", - *[self.param[k] for k in ("asr", "chneut", "dipdip", "gamma_ev")], self.get_epsinf_btn), - self.get_epsinf) - )) - app(("eps0", pn.Row( - pn.Column("# epsilon_0", - *[self.param[k] for k in ("asr", "chneut", "dipdip", "gamma_ev")], - self.w_range, self.plot_eps0w_btn), - self.plot_eps0w) - )) - app(("Speed of Sound", pn.Row( - pn.Column("# Speed of sound options", - *[self.param[k] for k in ("asr", "chneut", "dipdip")], - self.plot_vsound_btn), - self.plot_vsound) - )) - app(("Global", pn.Column("# Global parameters", *[self.param[k] for k in ("units", "mpi_procs", "verbose")]))) - - return tabs + robot = self.robot + + d = {} + d["Summary"] = self.get_summary_view_for_abiobj(robot) + d["Params"] = self.get_compare_params_widgets() + + d["Plot"] = pn.Row( + self.pws_col(["# PH-bands options", + "nqsmall", "ndivsm", "asr", "chneut", "dipdip", + "lo_to_splitting", "dos_method", "temp_range", + "combiplot_check_btn", "plot_combiplot_btn", + ]), + self.plot_combiplot + ) + #app(("PH-bands", pn.Row( + # pn.Column("# PH-bands options", + # *self.pws("nqsmall", "ndivsm", "asr", "chneut", "dipdip", + # "lo_to_splitting", "dos_method", "temp_range", "plot_phbands_btn", + # self.helpc("on_plot_phbands_and_phdos")), + # ), + # self.on_plot_phbands_and_phdos) + #)) + #app(("BECs", pn.Row( + # pn.Column("# Born effective charges options", + # *self.pws("asr", "chneut", "dipdip", "eps0_gamma_ev", "get_epsinf_btn", + # self.helpc("get_epsinf")), + # ), + # self.get_epsinf) + #)) + #app(("eps0", pn.Row( + # pn.Column("# epsilon_0", + # *self.pws("asr", "chneut", "dipdip", "eps0_gamma_ev", "eps0_wrange", "plot_eps0w_btn", + # self.helpc("plot_eps0w")), + # ), + # self.plot_eps0w) + #)) + #app(("Speed of sound", pn.Row( + # pn.Column("# Speed of sound options", + # *self.pws("asr", "chneut", "dipdip", "plot_vsound_btn", + # self.helpc("plot_vsound")), + # ), + # self.plot_vsound) + #)) + #d["ASR & DIPDIP"] = pn.Row( + # self.pws_col(["## ASR & DIPDIP options", "nqsmall", "ndivsm", "dos_method", "plot_without_asr_dipdip_btn", + # self.helpc("plot_without_asr_dipdip")]), + # self.plot_without_asr_dipdip + #) + #app(("DOS vs q-mesh", pn.Row( + # pn.Column("# DOS vs q-mesh options", + # *self.pws("asr", "chneut", "dipdip", "dos_method", "nqsmall_list", "plot_dos_vs_qmesh_btn", + # self.helpc("plot_dos_vs_qmesh")), + # ), + # self.plot_dos_vs_qmesh) + #)) + #app(("Quadrupoles", pn.Row( + # pn.Column("# Quadrupoles options", + # *self.pws("asr", "chneut", "dipdip", "lo_to_splitting", "ndivsm", "dos_method", "plot_phbands_quad_btn", + # self.helpc("plot_phbands_quad")), + # ), + # self.plot_phbands_quad) + #)) + #app(("IFCs", pn.Row( + # pn.Column("# IFCs options", + # *self.pws("asr", "dipdip", "chneut", "plot_ifc_btn", + # self.helpc("on_plot_ifc")), + # ), + # self.on_plot_ifc) + #)) + d["Global"] = pn.Row( + self.pws_col(["## Global options", "units", "mpi_procs", "verbose"]), + self.get_software_stack() + ) + + if as_dict: return d + + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) + + +class RobotWithFileInput(AbipyParameterized): + + info_str = """ +This app allows users to create an AbiPy robot to post-process +a set of ABINIT output files of the same type. + """ + + def __init__(self, **params): + + help_md = pn.pane.Markdown(f""" +## Description + + {self.info_str} +""") + + super().__init__(**params) + + self.main_area = pn.Column(help_md, + self.get_alert_data_transfer(), + sizing_mode="stretch_width") + self.robot = None + import os + top = os.getcwd() + top = "/Users/gmatteo/git_repos/abipy/abipy/data/refs/mgb2_phonons_nkpt_tsmear" + top = "~" + self.file_selector = pnw.FileSelector(top) + self.robot_files_btn = pnw.Button(name="Load files", button_type='primary', sizing_mode="stretch_width") + self.robot_files_btn.on_click(self.on_load_files) + + #@depends_on_btn_click("robot_files_btn") + def on_load_files(self, event): + if not self.file_selector.value: return + #self.mpid_err_wdg.object = "" + #new_abifile = self.get_abifile_from_file_input(self.file_input) + #print("in on_load_files") + #print(self.file_selector.value) + + # This should be executed only if server mode: TODO + #if self.robot is not None: + # self.robot.remove() + + from abipy.abilab import abirobot + self.robot = abirobot(self.file_selector.value) + + self.main_area.objects = [self.robot.get_panel()] + + def get_panel(self): + + # Add help section explaining how to use the filesector. See: + # https://panel.holoviz.org/reference/widgets/FileSelector.html + help_md = pn.pane.Markdown(""" +Back (◀): Goes to the previous directory + +Forward (▶): Returns to the last directory after navigating back + +Up (⬆): Goes one directory up. + +Address bar: Display the directory to navigate to + +Enter (⬇): Navigates to the directory in the address bar + +Reload (↻): Reloads the contents of the current directory + +To navigate to a subfolder click on a directory in the file selector and then +hit the down arrow (⬇) in the navigation bar. +Files and folders may be selected by selecting them in the browser on the left and moving them +to the right with the arrow buttons. +""") + col = pn.Column( + "# Select files (all with the same extension e.g. *_DDB:)", + self.file_selector, + pn.Row(self.robot_files_btn, pn.Accordion(("Help", help_md), sizing_mode="stretch_width"), + sizing_mode="stretch_width"), + pn.layout.Divider(), + sizing_mode="stretch_width") + + main = pn.Column(col, self.main_area, sizing_mode="stretch_width") + cls, kwds = self.get_abinit_template_cls_kwds() + + return cls(main=main, title="Robot Analyzer", **kwds) diff --git a/abipy/panels/electrons.py b/abipy/panels/electrons.py new file mode 100644 index 000000000..6dce92751 --- /dev/null +++ b/abipy/panels/electrons.py @@ -0,0 +1,170 @@ +"""" +AbiPy panels for electronic properties. +""" +from __future__ import annotations + +import param +import panel as pn +import panel.widgets as pnw + +from abipy.panels.core import AbipyParameterized, ActiveBar, Loading, ply, mpl, depends_on_btn_click + + +class CompareEbandsWithMP(AbipyParameterized): + + with_gaps = param.Boolean(True) + + ylims_ev = param.Range(default=(-10, +10), doc="Energy window around the Fermi energy.") + + info_str = """ +This app alllows users to upload two files with KS energies. +""" + + def __init__(self, **params): + + super().__init__(**params) + + help_md = pn.pane.Markdown(f""" +## Description + +{self.info_str} +""") + + self.main_area = pn.Column(help_md, + self.get_alert_data_transfer(), + sizing_mode="stretch_width") + + self.replot_btn = pnw.Button(name="Replot", button_type='primary') + + self.file_input = pnw.FileInput(height=60, css_classes=["pnx-file-upload-area"]) + self.file_input.param.watch(self.on_file_input, "value") + self.mp_progress = pn.indicators.Progress(name='Fetching data from the MP website', bar_color="warning", + active=False, width=200, height=10, align="center") + + def on_file_input(self, event): + self.abinit_ebands = self.get_ebands_from_file_input(self.file_input) + + # Match Abinit structure with MP + mp = self.abinit_ebands.structure.mp_match() + if not mp.structures: + raise RuntimeError("No structure found in the MP database") + + # Get structures from MP as AbiPy ElectronBands. + from abipy.electrons.ebands import ElectronBands + self.mp_ebands_list = [] + with ActiveBar(self.mp_progress): + for mp_id in mp.ids: + if mp_id == "this": continue + eb = ElectronBands.from_mpid(mp_id) + self.mp_ebands_list.append(eb) + + self.update_main() + + def update_main(self): + with Loading(self.main_area): + col = self.pws_col(["## Plot options", "with_gaps", "ylims_ev", "replot_btn"]) + ca = col.append + + ca("## Abinit Electronic band structure:") + ylims = self.ylims_ev + ca(ply(self.abinit_ebands.plotly(e0="fermie", ylims=ylims, with_gaps=self.with_gaps, show=False))) + + for mp_ebands in self.mp_ebands_list: + ca("## MP Electronic band structure:") + ca(ply(mp_ebands.plotly(e0="fermie", ylims=ylims, with_gaps=self.with_gaps, show=False))) + + #self.main_area.objects = [col] + self.main_area.objects = col.objects + + @depends_on_btn_click('replot_btn') + def on_replot_btn(self): + self.update_main() + + def get_panel(self): + col = pn.Column( + "## Upload a *nc* file with energies along a **k**-path (possibly a *GSR.nc* file):", + self.get_fileinput_section(self.file_input), + pn.Row("## Fetching data from the MP website: ", self.mp_progress, + sizing_mode="stretch_width"), + sizing_mode="stretch_width") + + main = pn.Column(col, self.main_area, sizing_mode="stretch_width") + + cls, kwds = self.get_abinit_template_cls_kwds() + + return cls(main=main, title="Compare with MP Ebands", **kwds) + + +class SkwPanelWithFileInput(AbipyParameterized): + + lpratio = param.Integer(default=5, bounds=(1, None), + doc="Ratio between number of k-points and number of star-functions") + + info_str = """ +This app allows users to upload two files with KS energies. +The first file contains the energies in the IBZ used for the SKW interpolation (NB: this file is required). +The second (optional) file contains the energies along a k-path. +The interpolated energies are then compared with the ab-initio ones on the k-path. +The user can change the SKW intepolation parameters to gauge the quality of the SKW fit. +""" + + def __init__(self, **params): + + super().__init__(**params) + + help_md = pn.pane.Markdown(f""" +## Description + +{self.info_str} +""") + + self.main_area = pn.Column(help_md, + self.get_alert_data_transfer(), + sizing_mode="stretch_width") + + self.ibz_file_input = pnw.FileInput(height=60, css_classes=["pnx-file-upload-area"]) + self.ibz_file_input.param.watch(self.on_ibz_file_input, "value") + self.ebands_ibz = None + + self.kpath_file_input = pnw.FileInput(height=60, css_classes=["pnx-file-upload-area"]) + self.kpath_file_input.param.watch(self.on_kpath_file_input, "value") + self.ebands_kpath = None + + def on_ibz_file_input(self, event): + self.ebands_ibz = self.get_ebands_from_file_input(self.ibz_file_input) + self.update_main_area() + + def on_kpath_file_input(self, event): + self.ebands_kpath = self.get_ebands_from_file_input(self.kpath_file_input) + self.update_main_area() + + def update_main_area(self) -> None: + + with Loading(self.main_area): + + if self.ebands_kpath is None or self.ebands_ibz is None: return + + # SKW interpolation + r = self.ebands_ibz.interpolate(lpratio=self.lpratio, filter_params=None) + + # Build plotter. + plotter = self.ebands_kpath.get_plotter_with("Ab-initio", "SKW interp", r.ebands_kpath) + + mpl_pane = mpl(plotter.combiplot(**self.mpl_kwargs)) + + col = pn.Column(mpl_pane, sizing_mode="stretch_width") + + self.main_area.objects = [col] + + def get_panel(self): + col = pn.Column( + "## Upload (or drag & drop) any *nc* file with energies in the IBZ (_possibly a *GSR.nc* file_):", + self.get_fileinput_section(self.ibz_file_input), + "## Upload (or drag & drop) any *nc* file with energies along a **k**-path (_possibly a *GSR.nc* file_):", + self.get_fileinput_section(self.kpath_file_input), + sizing_mode="stretch_width") + + main = pn.Column(col, self.main_area, sizing_mode="stretch_width") + cls, kwds = self.get_abinit_template_cls_kwds() + + return cls(main=main, title="SKW Analyzer", **kwds) diff --git a/abipy/panels/fatbands.py b/abipy/panels/fatbands.py index 0ec6fc85f..c0953f660 100644 --- a/abipy/panels/fatbands.py +++ b/abipy/panels/fatbands.py @@ -1,60 +1,111 @@ """Panels for interacting with FATBANDS.nc files.""" -import param +from __future__ import annotations + +#import param import panel as pn import panel.widgets as pnw -import bokeh.models.widgets as bkw -from .core import PanelWithElectronBands, PanelWithEbandsRobot +from abipy.electrons.fatbands import FatBandsFile +from .core import PanelWithElectronBands, ply, mpl, dfc, depends_on_btn_click #, PanelWithEbandsRobot class FatBandsFilePanel(PanelWithElectronBands): """ Panel with widgets to interact with a |FatBandsFile|. """ - def __init__(self, ncfile, **params): - super().__init__(**params) + + def __init__(self, ncfile: FatBandsFile, **params): + PanelWithElectronBands.__init__(self, ebands=ncfile.ebands, **params) self.ncfile = ncfile - @property - def ebands(self): - """|ElectronBands|.""" - return self.ncfile.ebands + # Create buttons + self.plot_fatbands_btn = pnw.Button(name="Plot fatbands", button_type='primary') + self.plot_fatdos_btn = pnw.Button(name="Plot fatdos", button_type='primary') + + @depends_on_btn_click('plot_fatbands_btn') + def on_plot_fatbands_btn(self) -> pn.Column: + """ + Plot fatbands grouped by atomic type and angular momentum l + """ + sz_mode = "stretch_width" + col = pn.Column(sizing_mode=sz_mode); ca = col.append + + # Plot the electronic fatbands grouped by atomic type. + ca("## Electronic fatbands grouped by atomic type") + fig = self.ncfile.plotly_fatbands_typeview(e0="fermie", fact=1.0, lmax=None, fig=None, ylims=None, + blist=None, fontsize=12, band_and_dos=0, show=False) + ca(ply(fig)) + + # Plot the electronic fatbands grouped by l + ca("## Electronic fatbands grouped by angular momentum l") + fig = self.ncfile.plotly_fatbands_lview(e0="fermie", fact=1.0, lmax=None, fig=None, ylims=None, + blist=None, fontsize=12, band_and_dos=0, show=False) + ca(ply(fig)) + + return col + + @depends_on_btn_click('plot_fatdos_btn') + def on_plot_fatdos_btn(self) -> pn.Column: + """ + Plot PJDOS grouped by atomic type and angular momentum l + """ + sz_mode = "stretch_width" + col = pn.Column(sizing_mode=sz_mode); ca = col.append - def get_panel(self): + # Plot the L-PJDOS grouped by atomic type. + lmax = 2 + ca("## Electronic fatdos grouped by atomic type:") + fig = self.ncfile.plotly_pjdos_typeview(lmax=lmax, show=False) + ca(ply(fig)) + + # Plot the L-PJDOS grouped by L. + ca("## Electronic fatdos grouped by L:") + fig = self.ncfile.plotly_pjdos_lview(lmax=lmax, show=False) + ca(ply(fig)) + + return col + + def get_panel(self, as_dict=False, **kwargs): """Return tabs with widgets to interact with the FATBANDS.nc file.""" - tabs = pn.Tabs(); app = tabs.append - app(("Summary", pn.Row(bkw.PreText(text=self.ncfile.to_string(verbose=self.verbose), - sizing_mode="scale_both")))) - app(("e-Bands", pn.Row(self.get_plot_ebands_widgets(), self.on_plot_ebands_btn))) + d = {} + + d["Summary"] = self.get_summary_view_for_abiobj(self.ncfile) + d["e-Bands"] = self.get_plot_ebands_view() if self.ncfile.ebands.kpoints.is_ibz: - # Add DOS tab only if k-sampling. - app(("e-DOS", pn.Row(self.get_plot_edos_widgets(), self.on_plot_edos_btn))) + # Add DOS tab but only if we have a k-sampling. + d["e-DOS"] = self.get_plot_edos_view() - # Plot the L-PJDOS grouped by atomic type. - #self.ncfile.plot_pjdos_typeview(lmax=lmax, **self.fig_kwargs) - # Plot the L-PJDOS grouped by L. - #self.ncfile.plot_pjdos_lview(lmax=lmax, **self.fig_kwargs) + d["FatDos"] = pn.Row( + self.pws_col(["## Fatdos", "plot_fatdos_btn"]), + self.on_plot_fatdos_btn + ) - # Fermi surface requires a gamma-centered k-mesh - if self.ncfile.ebands.supports_fermi_surface: - app(("Fermi Surface", pn.Row(self.get_plot_fermi_surface_widgets(), self.on_plot_fermi_surface_btn))) + if not self.ebands.isnot_ibz_sampling(): + d["ifermi"] = self.get_ifermi_view() - elif self.ncfile.ebands.kpoints.is_path: + elif self.ebands.kpoints.is_path: # NC files have contributions up to L=4 (g channel) # but here we are intererested in s,p,d terms only so # we use the optional argument lmax lmax = 2 - # Plot the electronic fatbands grouped by atomic type. - #self.ncfile.plot_fatbands_typeview(lmax=lmax, **self.fig_kwargs) - # Plot the electronic fatbands grouped by L. - #self.ncfile.plot_fatbands_lview(lmax=lmax, **self.fig_kwargs) + d["FatBands"] = pn.Row( + self.pws_col(["## Fatbands", "plot_fatbands_btn"]), + self.on_plot_fatbands_btn + ) + + d["EffMass"] = self.get_effmass_view() else: raise ValueError("Neither a IBZ nor k-path!") - return tabs + d["Structure"] = self.get_structure_view() + d["NcFile"] = self.ncfile.get_ncfile_view() + + if as_dict: return d + + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) #class FatbandsRobotPanel(PanelWithEbandsRobot): @@ -72,13 +123,12 @@ def get_panel(self): # def on_gsr_dataframe_btn(self): # if self.gsr_dataframe_btn.clicks == 0: return # df = self.robot.get_dataframe(with_geo=True) -# return pn.Column(self._df(df), sizing_mode='stretch_width') +# return pn.Column(dfc(df), sizing_mode='stretch_width') # # def get_panel(self): # """Return tabs with widgets to interact with the |GsrRobot|.""" # tabs = pn.Tabs(); app = tabs.append -# app(("Summary", pn.Row(bkw.PreText(text=self.robot.to_string(verbose=self.verbose), -# sizing_mode="scale_both")))) +# app["Summary"] = self.get_summary_view_for_abiobj(self.robot) # app(("e-Bands", pn.Row(self.get_ebands_plotter_widgets(), self.on_ebands_plotter_btn))) # # # Add e-DOS tab only if all ebands have k-sampling. diff --git a/abipy/panels/flows.py b/abipy/panels/flows.py index d86e5966a..95d5e9181 100644 --- a/abipy/panels/flows.py +++ b/abipy/panels/flows.py @@ -1,191 +1,219 @@ -""""Panels for AbiPy flows.""" +""""Panels to interact with AbiPy flows.""" +from __future__ import annotations + import param import panel as pn import panel.widgets as pnw -import bokeh.models.widgets as bkw +#import bokeh.models.widgets as bkw + +from panel.viewable import Viewer +from abipy.panels.core import mpl, ply, dfc, depends_on_btn_click +from abipy.panels.nodes import NodeParameterized +from abipy.flowtk.tasks import AbinitTask +from abipy.flowtk.flows import Flow + + +class WorkTaskSelector(Viewer): + + task = param.ClassSelector(class_=AbinitTask, doc="Task object") + + def __init__(self, flow: Flow, **params): + self._wstr2work = {f"w{i} ({work.__class__.__name__}, len: {len(work)})": work + for (i, work) in enumerate(flow.works)} + options = list(self._wstr2work.keys()) + self.work_select = pnw.Select(name="Select a Work", value=options[0], options=options) + + options = [f"t{i} ({task.__class__.__name__}, {str(task.status)})" + for (i, task) in enumerate(flow[0])] + self.task_select = pnw.Select(name="Select a Task in the Work", value=options[0], options=options) + + super().__init__(**params) -from io import StringIO -from abipy.panels.core import AbipyParameterized + self.layout = pn.Column(self.work_select, self.task_select) + self.sync_widgets() + def __panel__(self): + return self.layout -class FlowPanel(AbipyParameterized): + @pn.depends('work_select.value', watch=True) + def update_work(self) -> None: + self.work = self._wstr2work[self.work_select.value] + self.task_select.options = [f"t{i} ({task.__class__.__name__}, {str(task.status)})" + for (i, task) in enumerate(self.work)] + self.task = self.work[0] + + @pn.depends('task_select.value', watch=True) + def sync_widgets(self) -> None: + self.work = self._wstr2work[self.work_select.value] + task_idx = int(self.task_select.value[1:].split()[0]) + self.task = self.work[task_idx] + + +class FlowPanel(NodeParameterized): """ + Provides widgets and callbacks to interact with an AbiPy Flow. """ - verbose = pn.widgets.IntSlider(start=0, end=10, step=1, value=0) - - engine = pn.widgets.Select(value="fdp", - options=['dot', 'neato', 'twopi', 'circo', 'fdp', 'sfdp', 'patchwork', 'osage']) - dirtree = pn.widgets.Checkbox(name='Dirtree', value=False) - graphviz_btn = pn.widgets.Button(name="Show graph", button_type='primary') - - status_btn = pn.widgets.Button(name="Show status", button_type='primary') - history_btn = pn.widgets.Button(name="Show history", button_type='primary') - debug_btn = pn.widgets.Button(name="Debug", button_type='primary') - events_btn = pn.widgets.Button(name="Events", button_type='primary') - corrections_btn = pn.widgets.Button(name="Corrections", button_type='primary') - handlers_btn = pn.widgets.Button(name="Handlers", button_type='primary') - - vars_text = pn.widgets.TextInput(name='Abivars', placeholder='Enter list of variables separated by comma') - vars_btn = pn.widgets.Button(name="Show Variables", button_type='primary') - - dims_btn = pn.widgets.Button(name="Show Dimensions", button_type='primary') - - structures_btn = pn.widgets.Button(name="Show Structures", button_type='primary') - structures_io_checkbox = pn.widgets.CheckBoxGroup( - name='Input/Output Structure', value=['output'], options=['input', 'output'], inline=True) - - # Widgets to plot ebands. - ebands_btn = pn.widgets.Button(name="Show Ebands", button_type='primary') - ebands_plotter_mode = pnw.Select(name="Plot Mode", value="gridplot", - options=["gridplot", "combiplot", "boxplot", "combiboxplot"]) # "animate", - ebands_plotter_btn = pnw.Button(name="Plot", button_type='primary') - ebands_df_checkbox = pnw.Checkbox(name='With Ebands DataFrame', value=False) - ebands_ksamp_checkbox = pn.widgets.CheckBoxGroup( - name='Input/Output Structure', value=["with_path", "with_ibz"], options=['with_path', 'with_ibz'], inline=True) - - #TODO: Implement widget for selected_nids(flow, options), - #radio_group = pn.widgets.RadioButtonGroup( - # name='Radio Button Group', options=['Biology', 'Chemistry', 'Physics'], button_type='success') - - def __init__(self, flow, **params): - super().__init__(**params) - self.flow = flow - @param.depends('status_btn.clicks') - def on_status_btn(self): - if self.status_btn.clicks == 0: return - stream = StringIO() - self.flow.show_status(stream=stream, verbose=self.verbose.value) - return pn.Row(bkw.PreText(text=stream.getvalue())) - - @param.depends('history_btn.clicks') - def on_history_btn(self): - if self.history_btn.clicks == 0: return - stream = StringIO() - #flow.show_history(status=options.task_status, nids=selected_nids(flow, options), - # full_history=options.full_history, metadata=options.metadata) - self.flow.show_history(stream=stream) - return pn.Row(bkw.PreText(text=stream.getvalue())) - - @param.depends('graphviz_btn.clicks') - def on_graphviz_btn(self): + def __init__(self, flow: Flow, **params): + NodeParameterized.__init__(self, node=flow, **params) + + self.structures_btn = pnw.Button(name="Show Structures", button_type='primary') + self.structures_io_checkbox = pnw.CheckBoxGroup( + name='Input/Output Structure', value=['output'], options=['input', 'output'], inline=True) + + self.wt_selector = WorkTaskSelector(flow) + self.task_btn = pnw.Button(name="Analyze Task", button_type='primary') + + def get_task_view(self) -> pn.Column: + wbox = pn.WidgetBox + + return pn.Column( + wbox("## Select Work and Task", + self.wt_selector, + self.task_btn, + ), + pn.layout.Divider(), + self.on_task_btn, + sizing_mode='stretch_width', + ) + + @depends_on_btn_click("task_btn") + def on_task_btn(self) -> pn.Column: """ + Return panel associated to the selected task. """ - if self.graphviz_btn.clicks == 0: return - node = self.flow - if self.dirtree.value: - graph = node.get_graphviz_dirtree(engine=self.engine.value) - else: - graph = node.get_graphviz(engine=self.engine.value) - return pn.Column(graph) - - @param.depends('debug_btn.clicks') - def on_debug_btn(self): - if self.debug_btn.clicks == 0: return - #TODO https://github.com/ralphbean/ansi2html ? - stream = StringIO() - #flow.debug(status=options.task_status, nids=selected_nids(flow, options)) - self.flow.debug(stream=stream) - return pn.Row(bkw.PreText(text=stream.getvalue())) - - @param.depends('events_btn.clicks') - def on_events_btn(self): - if self.events_btn.clicks == 0: return - stream = StringIO() - self.flow.show_events(stream=stream) - #flow.show_events(status=options.task_status, nids=selected_nids(flow, options)) - return pn.Row(bkw.PreText(text=stream.getvalue())) - - @param.depends('corrections_btn.clicks') - def on_corrections_btn(self): - if self.corrections_btn.clicks == 0: return - stream = StringIO() - self.flow.show_corrections(stream=stream) - #flow.show_corrections(status=options.task_status, nids=selected_nids(flow, options)) - return pn.Row(bkw.PreText(text=stream.getvalue())) - - @param.depends('handlers_btn.clicks') - def on_handlers_btn(self): - #if self.handlers_btn.clicks == 0: return - stream = StringIO() - #if options.doc: - # flowtk.autodoc_event_handlers() - #else: - #show_events(self, status=None, nids=None, stream=sys.stdout): - self.flow.show_event_handlers(verbose=self.verbose.value, stream=stream) - return pn.Row(bkw.PreText(text=stream.getvalue())) - - @param.depends('vars_btn.clicks') - def on_vars_btn(self): - if self.vars_btn.clicks == 0: return - if not self.vars_text.value: return - varnames = [s.strip() for s in self.vars_text.value.split(",")] - df = self.flow.compare_abivars(varnames=varnames, # nids=selected_nids(flow, options), - printout=False, with_colors=False) - return pn.Row(self._df(df)) - - @param.depends('dims_btn.clicks') - def on_dims_btn(self): - if self.dims_btn.clicks == 0: return - df = self.flow.get_dims_dataframe(# nids=selected_nids(flow, options), - printout=False, with_colors=False) - return pn.Row(self._df(df), sizing_mode="scale_width") - - @param.depends('structures_btn.clicks') - def on_structures_btn(self): - if self.structures_btn.clicks == 0: return + task = self.wt_selector.task + return pn.Column( + f"## {repr(task)}", + task.get_panel(), + sizing_mode="stretch_width", + ) + + @depends_on_btn_click("structures_btn") + def on_structures_btn(self) -> pn.Row: what = "" if "input" in self.structures_io_checkbox.value: what += "i" if "output" in self.structures_io_checkbox.value: what += "o" dfs = self.flow.compare_structures(nids=None, # select_nids(flow, options), what=what, - verbose=self.verbose.value, with_spglib=False, printout=False, + verbose=self.verbose, with_spglib=False, printout=False, with_colors=False) - return pn.Row(self._df(dfs.lattice), sizing_mode="scale_width") + return pn.Row(dfc(dfs.lattice), sizing_mode="scale_width") - @param.depends('ebands_plotter_btn.clicks') - def on_ebands_btn(self): - if self.ebands_plotter_btn.clicks == 0: return + def get_panel(self, as_dict=False, **kwargs): + """Return tabs with widgets to interact with the flow.""" - df, ebands_plotter = self.flow.compare_ebands( - nids=None, # select_nids(flow, options), - with_path="with_path" in self.ebands_ksamp_checkbox.value, - with_ibz="with_ibz" in self.ebands_ksamp_checkbox.value, - verbose=self.verbose.value, - with_spglib=False - ) + d = super().get_panel(as_dict=True) - if ebands_plotter is None: - return + #row = pn.Row(bkw.PreText(text=self.ddb.to_string(verbose=self.verbose), sizing_mode="scale_both")) + d["Task"] = self.get_task_view() + #d["Work"] = self.get_work_view() + #d["Structures"] = pn.Row(pn.Column(self.structures_io_checkbox, self.structures_btn), self.on_structures_btn) + ###ws = pn.Column(self.ebands_plotter_mode, self.ebands_ksamp_checkbox, self.ebands_df_checkbox, self.ebands_plotter_btn) + ###d["Ebands"] = pn.Row(ws, self.on_ebands_btn) + #d["Browse"] = self.get_workdir_view() - plot_mode = self.ebands_plotter_mode.value - plotfunc = getattr(ebands_plotter, plot_mode, None) - if plotfunc is None: - raise ValueError("Don't know how to handle plot_mode: %s" % plot_mode) + if as_dict: return d - fig = plotfunc(**self.fig_kwargs) - col = pn.Column(self._mp(fig)) - if self.ebands_df_checkbox.value: - col.append(self._df(df)) + return self.get_template_from_tabs(d, template=kwargs.get("template", None), closable=False) - return pn.Row(col) #, sizing_mode='scale_width') - def get_panel(self): - """Return tabs with widgets to interact with the flow.""" - tabs = pn.Tabs(); app = tabs.append - #row = pn.Row(bkw.PreText(text=self.ddb.to_string(verbose=self.verbose.value), sizing_mode="scale_both")) - app(("Status", pn.Row(self.status_btn, self.on_status_btn))) - app(("History", pn.Row(self.history_btn, self.on_history_btn))) - app(("Events", pn.Row(self.events_btn, self.on_events_btn))) - app(("Corrections", pn.Row(self.corrections_btn, self.on_corrections_btn))) - app(("Handlers", pn.Row(self.handlers_btn, self.on_handlers_btn))) - app(("Structures", pn.Row(pn.Column(self.structures_io_checkbox, self.structures_btn), self.on_structures_btn))) - ws = pn.Column(self.ebands_plotter_mode, self.ebands_ksamp_checkbox, self.ebands_df_checkbox, self.ebands_plotter_btn) - app(("Ebands", pn.Row(ws, self.on_ebands_btn))) - app(("Abivars", pn.Row(pn.Column(self.vars_text, self.vars_btn), self.on_vars_btn))) - app(("Dims", pn.Row(pn.Column(self.dims_btn), self.on_dims_btn))) - app(("Debug", pn.Row(self.debug_btn, self.on_debug_btn))) - app(("Graphviz", pn.Row(pn.Column(self.engine, self.dirtree, self.graphviz_btn), - self.on_graphviz_btn))) - return tabs +class JsPane(pn.pane.HTML): + """ + Based on: https://discourse.holoviz.org/t/how-to-make-a-dynamic-link-in-panel/2137 + """ + def __init__(self): + super().__init__(width=0, height=0, margin=0, sizing_mode="fixed") + + def execute_js(self, script: str) -> None: + script = f'' + self.object = script + self.object = "" + + +class FlowMultiPageApp(): + + def __init__(self, flow: Flow, template, spectator_mode=True, **kwargs): + + if spectator_mode: + # We are in read-only mode so we have to disable signals to avoid side effects and callbacks + flow.set_spectator_mode() + + self.flow = flow + self.template = template + + self.wt_selector = WorkTaskSelector(flow) + goto_work_btn = pnw.Button(name="Go to Work", button_type='primary') + goto_work_btn.on_click(self.on_goto_work_bnt) + goto_task_btn = pnw.Button(name="Go to Task", button_type='primary') + goto_task_btn.on_click(self.on_goto_task_bnt) + self.new_tab = pnw.Checkbox(value=True, name="Open in new Tab") + self.js_panel = JsPane() + + self.sidebar = pn.WidgetBox( + self.wt_selector, + self.new_tab, + pn.layout.Divider(), + goto_work_btn, + goto_task_btn, + self.js_panel, + ) + + def handle_home(): + app = FlowPanel(self.flow).get_panel(template=template) + if hasattr(app, "sidebar"): + app.sidebar.append(self.sidebar) + #app.header.append(self.sidebar) + + return app + + # url --> handler + self.routes = { + "/": handle_home, + r"/w\d+/?": self.handle_wt, + r"/w\d+/t\d+": self.handle_wt, + } + + def on_goto_work_bnt(self, event) -> None: + work = self.wt_selector.work + url = "/w%d" % work.pos + code = f"window.open('{url}')" if self.new_tab.value else f"window.location.href='{url}'" + self.js_panel.execute_js(code) + + def on_goto_task_bnt(self, event) -> None: + task = self.wt_selector.task + url = "/w%d/t%d" % (task.pos[0], task.pos[1]) + code = f"window.open('{url}')" if self.new_tab.value else f"window.location.href='{url}'" + self.js_panel.execute_js(code) + + def handle_wt(self): + # URL example: /w1/t5/w\d+/t\d+ + #print("in handle_wt with pn.state.app_url:", pn.state.app_url) + tokens = pn.state.app_url.split("/") + work_idx = int(tokens[1][1:]) + task_idx = None + if tokens[2].startswith("t"): + task_idx = int(tokens[2][1:]) + + #print("got request with work_idx:", work_idx, "task_idx:", task_idx) + #from abipy.panels.core import abipanel + #abipanel() + + if task_idx is None: + work = self.flow[work_idx] + app = work.get_panel(template=self.template, title=repr(work)) + else: + task = self.flow[work_idx][task_idx] + app = task.get_panel(template=self.template, title=repr(task)) + + if hasattr(app, "sidebar"): + app.sidebar.append(self.sidebar) + #app.header.append(self.sidebar) + + #app.title = title + + return app + + def serve(self, **serve_kwargs): + return pn.serve(self.routes, **serve_kwargs) \ No newline at end of file diff --git a/abipy/panels/gsr.py b/abipy/panels/gsr.py index d03ee96b7..ba1542048 100644 --- a/abipy/panels/gsr.py +++ b/abipy/panels/gsr.py @@ -1,72 +1,91 @@ -"""Panels for interacting with GSR files.""" -import param +"""Panels to interact with GSR files.""" +from __future__ import annotations + +#import param import panel as pn import panel.widgets as pnw -import bokeh.models.widgets as bkw -from .core import PanelWithElectronBands, PanelWithEbandsRobot +from abipy.electrons.gsr import GsrFile, GsrRobot +from .core import (PanelWithElectronBands, + PanelWithEbandsRobot, ply, mpl, dfc, depends_on_btn_click) class GsrFilePanel(PanelWithElectronBands): """ Panel with widgets to interact with a |GsrFile|. """ - def __init__(self, gsr, **params): - super().__init__(**params) - self.gsr = gsr - - @property - def ebands(self): - """|ElectronBands|.""" - return self.gsr.ebands - - def get_panel(self): - """Return tabs with widgets to interact with the DDB file.""" - tabs = pn.Tabs(); app = tabs.append - app(("Summary", pn.Row(bkw.PreText(text=self.gsr.to_string(verbose=self.verbose), - sizing_mode="scale_both")))) - app(("e-Bands", pn.Row(self.get_plot_ebands_widgets(), self.on_plot_ebands_btn))) - - # Add DOS tab only if k-sampling. - kpoints = self.gsr.ebands.kpoints + def __init__(self, ncfile: GsrFile, **params): + PanelWithElectronBands.__init__(self, ebands=ncfile.ebands, **params) + self.ncfile = ncfile + + def get_panel(self, as_dict=False, **kwargs): + """Return tabs with widgets to interact with the GSR file.""" + d = {} + + d["Summary"] = self.get_summary_view_for_abiobj(self.ncfile) + d["e-Bands"] = self.get_plot_ebands_view() + + kpoints = self.ncfile.ebands.kpoints if kpoints.is_ibz: - app(("e-DOS", pn.Row(self.get_plot_edos_widgets(), self.on_plot_edos_btn))) + # Add DOS tab but only if k-sampling. + d["e-DOS"] = self.get_plot_edos_view() + d["SKW"] = self.get_skw_view() + + if not self.ncfile.ebands.isnot_ibz_sampling(): + d["Ifermi"] = self.get_ifermi_view() + #d["fsviewer"] = self.get_fsviewer_view() - if self.gsr.ebands.supports_fermi_surface: - # Fermi surface requires gamma-centered k-mesh - app(("Fermi Surface", pn.Row(self.get_plot_fermi_surface_widgets(), self.on_plot_fermi_surface_btn))) + if kpoints.is_path: + d["EffMass"] = self.get_effmass_view() - return tabs + d["Structure"] = self.get_structure_view() + d["NcFile"] = self.ncfile.get_ncfile_view() + + # TODO + #d["Global"] = pn.Row( + # pn.Column("# Global options", + # *self.pws("units", "mpi_procs", "verbose"), + # ), + # self.get_software_stack()) + #)) + + if as_dict: return d + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) class GsrRobotPanel(PanelWithEbandsRobot): """ - A Panel to interoperate with multiple GSR files. + A Panel to interact with multiple GSR files. """ - gsr_dataframe_btn = pnw.Button(name="Compute", button_type='primary') + def __init__(self, robot: GsrRobot, **params): + PanelWithEbandsRobot.__init__(self, robot=robot, **params) - def __init__(self, robot, **params): - super().__init__(**params) - self.robot = robot + self.gsr_dataframe_btn = pnw.Button(name="Compute", button_type='primary') + self.transpose_gsr_dataframe = pnw.Checkbox(name='Transpose GSR dataframe') - @param.depends("gsr_dataframe_btn.clicks") - def on_gsr_dataframe_btn(self): - if self.gsr_dataframe_btn.clicks == 0: return + @depends_on_btn_click('gsr_dataframe_btn') + def on_gsr_dataframe_btn(self) -> pn.Column: df = self.robot.get_dataframe(with_geo=True) - return pn.Column(self._df(df), sizing_mode='stretch_width') + transpose = self.transpose_gsr_dataframe.value + + return pn.Column(dfc(df, transpose=transpose), sizing_mode='stretch_width') - def get_panel(self): + def get_panel(self, as_dict=False, **kwargs): """Return tabs with widgets to interact with the |GsrRobot|.""" - tabs = pn.Tabs(); app = tabs.append - app(("Summary", pn.Row(bkw.PreText(text=self.robot.to_string(verbose=self.verbose), - sizing_mode="scale_both")))) - app(("e-Bands", pn.Row(self.get_ebands_plotter_widgets(), self.on_ebands_plotter_btn))) + d = {} - # Add e-DOS tab only if all ebands have k-sampling. + d["Summary"] = self.get_summary_view_for_abiobj(self.robot) + d["Plot-eBands"] = pn.Row(self.get_ebands_plotter_widgets(), self.on_ebands_plotter_btn) + + # Add e-DOS tab but only if all ebands have k-sampling. if all(abifile.ebands.kpoints.is_ibz for abifile in self.robot.abifiles): - app(("e-DOS", pn.Row(self.get_edos_plotter_widgets(), self.on_edos_plotter_btn))) + d["Plot-eDOS"] = pn.Row(self.get_edos_plotter_widgets(), self.on_edos_plotter_btn) + + d["Dataframe"] = pn.Row( + pn.Column(self.transpose_gsr_dataframe, self.gsr_dataframe_btn), + self.on_gsr_dataframe_btn) - app(("GSR-DataFrame", pn.Row(self.gsr_dataframe_btn, self.on_gsr_dataframe_btn))) + if as_dict: return d - return tabs + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) diff --git a/abipy/panels/hist.py b/abipy/panels/hist.py index b019e07ae..9a2112ae9 100644 --- a/abipy/panels/hist.py +++ b/abipy/panels/hist.py @@ -1,68 +1,71 @@ """"Panels for HIST files.""" -import param +from __future__ import annotations + +#import param import panel as pn +import panel.widgets as pnw import bokeh.models.widgets as bkw -from abipy.panels.core import sizing_mode_select, AbipyParameterized - - -_what_list = ["pressure", "forces", "energy", "abc", "angles", "volume"] +from abipy.dynamics.hist import HistFile +from abipy.panels.core import AbipyParameterized, mpl, ply, depends_on_btn_click class HistFilePanel(AbipyParameterized): """ Panel with widgets to interact with a |HistFile|. """ - what_list = pn.widgets.CheckBoxGroup(name="Select", value=_what_list, options=_what_list, inline=False) - plot_relax_btn = pn.widgets.Button(name="Show relaxation", button_type="primary") - sizing_mode = sizing_mode_select(value="fixed") + def __init__(self, hist: HistFile, **params): + self.hist = hist - appname = pn.widgets.Select(name="Viewer", value="ovito", options=["ovito", "mayavi", "vtk"]) - to_unit_cell = pn.widgets.Checkbox(name="To unit cell") - view_relax_btn = pn.widgets.Button(name="View relaxation", button_type="primary") + _what_list = ["abc", "angles", "energy", "volume", "pressure", "forces"] + self.what_list = pnw.CheckBoxGroup(name="Select", value=_what_list, options=_what_list, inline=False) + self.plot_relax_btn = pnw.Button(name="Plot relaxation", button_type="primary") - def __init__(self, hist, **params): - super().__init__(**params) - self.hist = hist + self.appname = pnw.Select(name="Viewer", value="ovito", options=["ovito", "mayavi", "vtk"]) + self.to_unit_cell = pnw.Checkbox(name="To unit cell") + self.view_relax_btn = pnw.Button(name="View relaxation", button_type="primary") - def get_plot_relax_widgets(self): - """Widgets to visualize the structure relaxation.""" - return pn.Column(self.what_list, self.sizing_mode, self.plot_relax_btn) + super().__init__(**params) - @param.depends('plot_relax_btn.clicks') - def on_plot_relax_btn(self): + @depends_on_btn_click('plot_relax_btn') + def on_plot_relax_btn(self) -> pn.Column: """ Plot the evolution of structural parameters (lattice lengths, angles and volume) as well as pressure, info on forces and total energy. """ - if self.plot_relax_btn.clicks == 0: return + col = pn.Column(sizing_mode="stretch_width"); ca = col.append + for what in self.what_list.value: + #ca(f"## {what}") + ca(ply(self.hist.plotly(what, title=what, show=False))) - num_plots, nrows, ncols = len(self.what_list.value), 1, 1 - if num_plots > 1: - ncols = 2 - nrows = (num_plots // ncols) + (num_plots % ncols) + return col - box = pn.GridBox(nrows=nrows, ncols=ncols, sizing_mode=self.sizing_mode.value) #'scale_width') - for i, what in enumerate(self.what_list.value): - irow, icol = divmod(i, ncols) - box.append(self._mp(self.hist.plot(what, title=what, **self.fig_kwargs))) - - return box - #return pn.Column(box, box.controls(jslink=True)) - - @param.depends('view_relax_btn.clicks') + @depends_on_btn_click('view_relax_btn') def on_view_relax_btn(self): - if self.view_relax_btn.clicks == 0: return + """ + Visalize the structural relaxation with an external application. + """ return self.hist.visualize(appname=self.appname.value, to_unit_cell=self.to_unit_cell.value) - def get_panel(self): - """Return tabs with widgets to interact with the DDB file.""" - tabs = pn.Tabs() - tabs.append(("Summary", pn.Row(bkw.PreText(text=self.hist.to_string(verbose=self.verbose), - sizing_mode="scale_both")))) - tabs.append(("Relaxation", pn.Row(self.get_plot_relax_widgets(), self.on_plot_relax_btn))) - tabs.append(("Visualize", pn.Row(pn.Column(self.appname, self.to_unit_cell, self.view_relax_btn), - self.on_view_relax_btn))) + def get_panel(self, as_dict=False, **kwargs): + """Return tabs with widgets to interact with the HIST.nc file.""" + d = {} + + d["Summary"] = self.get_summary_view_for_abiobj(self.hist) + d["Plot"] = pn.Row( + self.pws_col(["## Plot Options", "what_list", "plot_relax_btn"]), + self.on_plot_relax_btn + ) + + if not self.has_remote_server: + # As we don't have visualizers that can work in remote server mode, + # this tab should not be created. + d["Visualize"] = pn.Row( + pn.Column(self.appname, self.to_unit_cell, self.view_relax_btn), + self.on_view_relax_btn + ) + + if as_dict: return d - return tabs + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) diff --git a/abipy/panels/nodes.py b/abipy/panels/nodes.py new file mode 100644 index 000000000..3b077419b --- /dev/null +++ b/abipy/panels/nodes.py @@ -0,0 +1,519 @@ +""""Panels to interact with AbiPy flows.""" +from __future__ import annotations + +import textwrap +import traceback + +import pandas as pd +import param +import bokeh.models.widgets as bkw +import panel as pn +import panel.widgets as pnw + +from abipy.panels.core import AbipyParameterized, Loading, ButtonContext, depends_on_btn_click, dfc, ply +from abipy.flowtk.nodes import Node +#from abipy import flowtk + + +class FilePathSelect(pnw.Select): + + @classmethod + def from_filepaths(cls, filepaths: list[str], + filter_files=True, **kwargs): + import os + items = [(os.path.basename(p), p) for p in filepaths ] + + if filter_files: + def filter_basename(name): + if name.startswith(".") or name.endswith(".pickle"): + return False + return True + + items = [t for t in items if filter_basename(t[0])] + + base2path = dict(items) + new = cls(options=list(base2path.keys()), **kwargs) + new._base2path = base2path + + return new + + @property + def filepath(self) -> str: + return self._base2path[self.value] + + def __bool__(self): + return bool(self._base2path) + +class NodeParameterized(AbipyParameterized): + """ + + """ + + def __init__(self, node: Node, **params): + super().__init__(**params) + self.node = node + + if node.is_flow: + self.flow = node + self.nids = [] + for work in node: + self.nids.append(work.node_id) + self.nids.extend([task.node_id for task in work]) + + elif node.is_work: + self.flow = self.node.flow + self.nids = [task.node_id for task in node] + + elif node.is_task: + self.flow = self.node.flow + self.nids = self.node.node_id + + else: + raise ValueError(f"Don't know how to handle type: `{type(node)}`") + + self.engine = pnw.Select(value="fdp", name="engine", + options=['dot', 'neato', 'twopi', 'circo', 'fdp', 'sfdp', 'patchwork', 'osage']) + self.dirtree = pnw.Checkbox(name='Dirtree', value=False) + self.graphviz_btn = pnw.Button(name="Show Graph", button_type='primary') + + self.status_btn = pnw.Button(name="Show Status", button_type='primary') + + self.history_btn = pnw.Button(name="Show history", button_type='primary') + self.debug_btn = pnw.Button(name="Debug", button_type='primary') + self.events_btn = pnw.Button(name="Show Events", button_type='primary') + self.corrections_btn = pnw.Button(name="Show Corrections", button_type='primary') + self.handlers_btn = pnw.Button(name="Show Handlers", button_type='primary') + self.vars_text = pnw.TextInput(name='Abivars', + placeholder='Enter list of variables separated by comma e.g. `ecut, natom`') + self.vars_btn = pnw.Button(name="Show Variables", button_type='primary') + #self.dims_btn = pnw.Button(name="Show Dimensions", button_type='primary') + + self.workdir_fileselector = pnw.FileSelector(node.workdir, only_files=True) + self.outdir_fileselector = pnw.FileSelector(node.outdir.path) + self.indir_fileselector = pnw.FileSelector(node.indir.path) + + # Create select widgets with the files in indir/outdir/workdir + # Use basenames as items but remember that we need to abspath when opening the file. + from abipy.flowtk.utils import Directory + self.filepath_select_dir = {} + for where in ("indir", "outdir", "workdir"): + directory = Directory(self.node.workdir) if where == "workdir" else getattr(self.node, where) + filepaths = directory.list_filepaths() + self.filepath_select_dir[where] = FilePathSelect.from_filepaths(filepaths) #, name=f"Files in {where}") + + def get_status_view(self) -> pn.Column: + return pn.Column( + f"## Show the status of: `{repr(self.node)}`", + pn.Row( + self.wdg_box(["verbose", "status_btn"]), + bkw.PreText(text=self.node.str_deps()), + ), + pn.layout.Divider(), + self.on_status_btn, + sizing_mode='stretch_width', + ) + + @depends_on_btn_click("status_btn") + def on_status_btn(self) -> None: + """ + Show the status of the node. + """ + term = pnw.Terminal( + output="\n\n", + height=1200, # Need this one else the terminal is not shown properly + sizing_mode='stretch_width', + ) + term.write("\n") + + if self.node.is_task: + return term + + # Here it's important to enforce verbose 1 else show_status + # does not analyze the tasks that are completed. + df = self.flow.show_status(nids=self.nids, stream=term, verbose=1, return_df=True) #self.verbose) + + return pn.Column( + StatusCards(df), + sizing_mode="stretch_width", + ) + + # TODO: Finalize the implementation. + # Generate heatmap with plotly + max_num_tasks = max(len(work) for work in self.flow) + y = [f"w{i}" for i in range(len(self.flow))] + x = [f"t{i}" for i in range(max_num_tasks)] + z = [] + for work in self.flow: + row = [None for i in range(max_num_tasks)] + for i, task in enumerate(work): + #row[i] = task.status + row[i] = task.mpi_procs + z.append(row) + + import plotly.graph_objects as go + fig = go.Figure(data=go.Heatmap( + x=x, y=y, z=z, + hoverongaps=False, transpose=False, colorscale="Viridis", + )) + fig.update_layout(title_text="Number of MPI procs", title_x=0.5) + + from abipy.tools.plotting import add_colorscale_dropwdowns + add_colorscale_dropwdowns(fig) + + return ply(fig) + + def get_history_view(self) -> pn.Column: + return pn.Column( + f"## Show the history of: `{repr(self.node)}`", + self.wdg_box(["verbose", "history_btn"]), + pn.layout.Divider(), + self.on_history_btn, + sizing_mode='stretch_width', + ) + + @depends_on_btn_click("history_btn") + def on_history_btn(self) -> None: + """ + Show the history of the node. + """ + term = pnw.Terminal( + output="\n\n", + height=1200, # Need this one else the terminal is not show properly + sizing_mode='stretch_width', + ) + + self.flow.show_history(nids=self.nids, + stream=term, + #status=options.task_status, + #full_history=options.full_history, + #metadata=options.metadata + ) + return term + + def get_graphviz_view(self) -> pn.Column: + return pn.Column( + f"## Graphviz options for node: `{repr(self.node)}`", + pn.WidgetBox(self.engine, self.dirtree, self.graphviz_btn), + pn.layout.Divider(), + self.on_graphviz_btn, + sizing_mode="stretch_width" + ) + + @depends_on_btn_click("graphviz_btn") + def on_graphviz_btn(self) -> None: + """ + Visualize node dependencies with [graphviz package](https://graphviz.readthedocs.io/en/stable/index.html) + """ + if self.dirtree.value: + graph = self.node.get_graphviz_dirtree(engine=self.engine.value) + else: + graph = self.node.get_graphviz(engine=self.engine.value) + + #self.flow.plot_networkx(mode="network", with_edge_labels=False, ax=None, arrows=False, + # node_size="num_cores", node_label="name_class", layout_type="spring", **kwargs): + + return pn.Column( + "## Dependency Graph:", + pn.pane.SVG(graph), + sizing_mode="stretch_width" + ) + + def get_debug_view(self) -> pn.Column: + return pn.Column( + f"## Debug node:`{repr(self.node)}`", + self.pws_col(["verbose", "debug_btn"]), + self.on_debug_btn, + pn.layout.Divider(), + sizing_mode='stretch_width', + ) + + #d["Corrections"] = pn.Row(self.corrections_btn, self.on_corrections_btn) + #d["Handlers"] = pn.Row(self.handlers_btn, self.on_handlers_btn) + + @depends_on_btn_click("debug_btn") + def on_debug_btn(self) -> None: + term = pnw.Terminal(output="\n\n", + height=1200, # Need this one else the terminal is not show properly + sizing_mode='stretch_width', + ) + self.flow.debug(stream=term, nids=self.nids) # status=options.task_status, + return term + + def get_events_view(self) -> pn.Column: + return pn.Column( + f"## Show the events of: `{repr(self.node)}`", + self.pws_col(["verbose", "events_btn"]), + self.on_events_btn, + pn.layout.Divider(), + sizing_mode='stretch_width', + ) + + @depends_on_btn_click("events_btn") + def on_events_btn(self) -> pnw.Terminal: + term = pnw.Terminal( + output="\n\n", + height=1200, # Need this one else the terminal is not show properly + sizing_mode='stretch_width', + ) + self.flow.show_events(stream=term, nids=self.nids) # status=options.task_status, + return term + + @depends_on_btn_click("corrections_btn") + def on_corrections_btn(self) -> pnw.Terminal: + term = pnw.Terminal( + output="\n\n", + height=1200, # Need this one else the terminal is not show properly + sizing_mode='stretch_width', + ) + self.flow.show_corrections(stream=term, nids=self.nids) + return term + + @depends_on_btn_click("handlers_btn") + def on_handlers_btn(self): + term = pnw.Terminal( + output="\n\n", + height=1200, # Need this one else the terminal is not show properly + sizing_mode='stretch_width', + ) + self.flow.show_event_handlers(stream=term, verbose=self.verbose) #, nids=self.nids, status=None, + return term + + def get_dims_and_vars_view(self) -> pn.Row: + row = pn.Row(pn.Column(self.vars_text, self.vars_btn), self.on_vars_btn) + return row + #d["Dims"] = pn.Row(pn.Column(self.dims_btn), self.on_dims_btn) + + @depends_on_btn_click("vars_btn") + def on_vars_btn(self): + if not self.vars_text.value: return + varnames = [s.strip() for s in self.vars_text.value.split(",")] + df = self.flow.compare_abivars(varnames=varnames, nids=self.nids, + printout=False, with_colors=False) + return pn.Row(dfc(df)) + + @depends_on_btn_click("dims_btn") + def on_dims_btn(self) -> pn.Row: + df = self.flow.get_dims_dataframe(nids=self.nids, printout=False, with_colors=False) + return pn.Row(dfc(df), sizing_mode="scale_width") + + def get_files_in_dir_view(self, where): + """ + Return None if no file is found + """ + select = self.filepath_select_dir[where] + if not select: return None + + btn = pnw.Button(name="Analyze", button_type='primary') + output_area = pn.Column(sizing_mode="stretch_width") + + from abipy.abilab import abiopen + #from .core import NcFileViewer + + def update_output_area(event): + with ButtonContext(btn), Loading(output_area): + try: + # Cannot close the file at this level because it may be needed by the new app. + abifile = abiopen(select.filepath) + output_area.objects = [abifile.get_panel()] + except Exception as exc: + #print(exc) + #if select.filepath.endswith(".nc"): + # # We have a nc file but it's not supported by abiopen. + # # Let's create a minimalistic view of the netcdf dims/vars + # #abifile = AbinitNcFile(select.filepath) + # NcFileViewer(self).get_ncfile_view(**kwargs) + # output_area.objects = [abifile.get_ncfile_view()] + #else: + obj = pn.pane.Markdown("```shell\n%s\n```" % traceback.format_exc()) + output_area.objects = [obj] + + btn.on_click(update_output_area) + + return pn.Column( + "## Select a file and click the button to analyze the data", + pn.WidgetBox(select, btn), + pn.layout.Divider(), + output_area, + sizing_mode="stretch_width" + ) + + #def on_workdir_selector_btn(self, event): + # """hello word""" + # filepaths = self.workdir_fileselector.value + # if not filepaths: + # objects = [pn.pane.Alert("## No file selected", altert_type="warning")] + + # else: + # from abipy.abilab import abiopen + # objects = [] + # for path in filepaths: + # try: + # abifile = abiopen(path) + # pn_obj = abifile.get_panel() + # except Exception: + # pn_obj = pn.pane.Alert(str(exc), altert_type="warning") + + # objects.append(pn_obj) + + # self.workdir_selector_output_area.objects = objects + + def get_panel(self, as_dict=False, **kwargs): + """ + Return tabs with widgets to interact with the flow. + """ + d = {} + + d["Status"] = self.get_status_view() + d["History"] = self.get_history_view() + d["Events"] = self.get_events_view() + for where in ("workdir", "outdir", "indir"): + if self.filepath_select_dir[where]: + view = self.get_files_in_dir_view(where) + if view is not None: d[where.capitalize()] = view + + d["Debug"] = self.get_debug_view() + + if not self.node.is_task: + d["Dims & Vars"] = self.get_dims_and_vars_view() + d["Graphviz"] = self.get_graphviz_view() + + if as_dict: return d + + return self.get_template_from_tabs(d, template=kwargs.get("template", None), closable=False) + + +class StatusCards(param.Parameterized): + + def __init__(self, df: pd.DataFrame, **params): + self.df = df + super().__init__(**params) + + # For each work_idx, compute the min/max index + # we need this dict in add_vrect to shadow the region associated to the work. + self.w_start_stop = {} + for w_idx in df["work_idx"].unique(): + lst = sorted(df.index[(df['work_idx'] == w_idx)].tolist()) + self.w_start_stop[w_idx] = (lst[0], lst[-1]) + + header_list = [ + "## DataFrame", + "## Task status histogram", + "## Task Timeline", + "## Task class histogram", + "## Runtime in seconds for each task in the flow (-1 if task is not running)", + "## Number of WARNINGs found in the log file of the Task", + "## Barplot with number of MPI procs", + ] + + #if len(df['status'].unique()) != 1: + # Show histogram with task status only if we have different status values. + + self.cards, self.done = {}, {} + for header in header_list: + card = pn.layout.Card(None, header=header, collapsed=True, sizing_mode="stretch_width") + # Compute stuff only when user opens the card. + card.param.watch(self.update_card, ['collapsed']) + self.cards[header] = card + self.done[header] = False + + # Compute this card + self.cards["## Task status histogram"].collapsed = False + + open_btn = pnw.Button(name="Open all cards", button_type='primary') + open_btn.on_click(self.open_all_cards) + close_btn = pnw.Button(name="Close all cards", button_type='primary') + close_btn.on_click(self.close_all_cards) + + self.layout = pn.Column(pn.Row(open_btn, close_btn), + *list(self.cards.values()), + sizing_mode="stretch_width" + ) + + def __panel__(self): + return self.layout + + def open_all_cards(self, event): + for card in self.cards.values(): + card.collapsed = False + + def close_all_cards(self, event): + for card in self.cards.values(): + card.collapsed = True + + def add_vrect_to_fig(self, fig): + """ + Add vertical rectangles to the plotly fig in order to group tasks belonging to the same Work. + """ + for w_idx, (x0, x1) in self.w_start_stop.items(): + fig.add_vrect(x0=x0, x1=x1, + annotation_text=f"w{w_idx}", annotation_position="top left", + fillcolor="grey", opacity=0.1, line_width=0) + return fig + + def update_card(self, event): + """ + This callback is triggered when the user opens/closes the card. + Here we compute and display the plot/table the first time the card is opened. + """ + header = event.obj.header + if self.done[header]: return + + card = self.cards[header] + has_pane = False + import plotly.express as px + df = self.df + + with Loading(card): + if header == "## Task status histogram": + fig = px.histogram(df, x="status") + + elif header == "## Task class histogram": + fig = px.histogram(df, x="task_class", color="status") + + elif header == "## Runtime in seconds for each task in the flow (-1 if task is not running)": + + fig = px.scatter(df, x=df.index, y="task_runtime_s", color="status", #, symbol="work_idx", #size= + hover_data =["num_warnings", "num_comments", "work_idx", "task_class"], + hover_name="name") + self.add_vrect_to_fig(fig) + + elif header == "## Number of WARNINGs found in the log file of the Task": + + fig = px.scatter(df, x=df.index, y="num_warnings", color="status", #, symbol="work_idx", #size= + hover_data=["task_runtime_s", "num_comments", "work_idx", "task_class"], + hover_name="name") + self.add_vrect_to_fig(fig) + + elif header == "## Barplot with number of MPI procs": + + fig = px.bar(df, x="work_idx", y="mpi_procs", color="task_widx", + #barmode="group", + #color="status", + #pattern_shape="task_class", + #pattern_shape="status", + #pattern_shape_sequence=[".", "x", "+"], + hover_data =["num_warnings", "num_comments", "task_class"], + hover_name="name") + + elif header == "## Task Timeline": + fig = px.timeline(df, x_start="start_datetime", x_end="end_datetime", y="name", + color="task_class", hover_name="name") + + elif header == "## DataFrame": + # Remove some columns as well as the index. + simple_df = df.drop(columns=["node_id", "queue_id", "qname", + "task_queue_time_s", "submission_datetime", + "start_datetime", "end_datetime", "task_widx"]) # "work_idx", + simple_df.set_index('name', inplace=True) + + pane = pnw.Tabulator(simple_df, groupby=['work_idx']) #, height=240) + has_pane = True + + else: + raise ValueError(f"No action registered for: `{header}`") + + if not has_pane: + pane = ply(fig, with_divider=False) + + card.objects = [pane] + self.done[header] = True diff --git a/abipy/panels/oncvpsp_gui.py b/abipy/panels/oncvpsp_gui.py new file mode 100644 index 000000000..06feb0adc --- /dev/null +++ b/abipy/panels/oncvpsp_gui.py @@ -0,0 +1,1261 @@ +#!/usr/bin/env python +from __future__ import annotations + +#import sys +import os +import functools +import itertools +import param +import panel as pn +import pandas as pd +import panel.widgets as pnw + +from monty.termcolor import cprint +from monty.string import list_strings +from abipy.panels.core import AbipyParameterized, depends_on_btn_click, mpl, dfc, ply, ButtonContext, Loading +from abipy.tools.numtools import build_mesh +from abipy.ppcodes.ppgen import OncvGenerator +#from abipy.ppcodes.oncv_parser import OncvParser + + +GE_ANNOTATED = """ +# Copied from ~oncvpsp/doc/32_Ge_annotated.dat + +# ATOM AND REFERENCE CONFIGURATION +# +### atsym atomic symbol +### z atomic number +### nc number of core states +### nv number of valence states +### iexc exchange-correlation functional: 1-Wigner, 2-Hedin-Lundquist, +### 3-Perdew-Zunger-Ceperly-Alder, 4-Perdew-Burke-Enzerhof +### psfile format of pseudopotential file, psp8 for ABINIT, upf for PWSCF +# +# atsym, z, nc, nv, iexc psfile + Ge 32.0 5 3 3 psp8 +# +# +### n principal quantum number +### l angular momentum +### f occupancy (MUST be >0) +# +# n, l, f (nc+nv lines) + 1 0 2.0 + 2 0 2.0 + 2 1 6.0 + 3 0 2.0 + 3 1 6.0 + 3 2 10.0 + 4 0 2.0 + 4 1 2.0 +# +# PSEUDOPOTENTIAL AND OPTIMIZATION +# +###lmax maximum angular momentum for which psp is calculated (<=3) +# +# lmax + 2 +# +# +### l angular momentum +### rc core radius for this l +### ep energy at which psp is generated (eigenvalue inserted for occupied +### state in reference configuration, positive energy must be specified +### for barrier-confined "scattering" state for unoccupied l <=lmax +### A small positive energy is usually good (0.1-0.25 Ha). +### ncon number of constraints for pseudo wave function to match all- +### electron wave function at rc, value + ncon-1 derivatives, +### must be between 3 and 5 ("M" in the paper, Eq.(6)) +### nbas number of basis functions. Must be between ncon+2 and ncon+5 +### ("N" in the paper, Eqs.(4-5)) +### qcut wave vector defining "residual energy" in the RRKJ method +### ("q_c" in the paper, Eq.(1) +# +# l, rc, ep, ncon, nbas, qcut (lmax+1 lines, l's must be in order) + 0 2.60 -0.00 4 8 5.00 + 1 2.60 -0.00 4 8 5.20 + 2 2.00 0.00 4 9 8.40 +# +# LOCAL POTENTIAL +# +### lloc angular momentum whose semi-local psp is taken as local. lloc=4 +### denotes a smooth polynomial continuation of the all-electron +### potential. If lloc<=lmax, remaining data are ignored, but +### must be there (zeros are OK). The rc corresponding to lloc +### MUST BE THE MINIMUM rc for lloc<=lmax, or <= the minumum for +### lloc=4 (usually the best choice) +### lpopt type of polynomial continuation for lloc=4. values 1-5 +### permitted. +### 1) match 2 derivatives, r^0,2,4 +### 2) match 2 derivatives, r^0,4,6 +### 3) match 3 derivatives, r^0,4,5,6 +### 4) match 3 derivatives, r^0,4,6,8 +### 5) match 3 derivatives, r^0,2,4,6 +### dvloc0 shift of r=0 potential from basic continuation (Ha) for lloc=4 +### depends on lpopt above as follows, with x=(r/rc) +### 1) dvloc0*(1-x^2)^3 +### 2) dvloc0*(1-x^4)^3 +### 3-5) dvloc0*(1-x^4)^4 +# +# lloc, lpopt, rc(5), dvloc0 + 4 5 2.0 0.0 +# +# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs +# +### l angular momentum +### nproj number of projectors, 1 or 2. automatically set to 0 for l=lloc +### debl energy added to basic psp energy ep for 2nd projector +### automatically reset to match 2nd projector with 2nd bound state +### at this l when it is occupied (ie., the psp is generated for a +### correcponding-l shallow core state) +# +# l, nproj, debl (lmax+1 lines, l's in order) + 0 2 1.50 + 1 2 1.50 + 2 2 1.50 +# +# MODEL CORE CHARGE +# +### icmod 0: no non-linear core correction charge. 1: smooth monotonic +### polynomial model core charge fit at "matching" rc following +### reference 35. For icmod = 2, 3, 4 see doc/core_correction.txt +### fcfact radius for above determined by rho_core(r)=fcfact*rho_pseudo_ +### valence(r) values 0.25-0.5 are usually good (look at plots) +### For icmod = 3, fcfact has a different meaning and a third +### artument rcfact is added (see core_correction.txt) +### For icmod = 4,, fcfact is ignored but must be present (0.0 OK) +# +# icmod, fcfact, (rcfact) + 0 0.25 +# +# LOG DERIVATIVE ANALYSIS +# +### epsh1 lower energy limit for "phase-shift-like" log-derivative plots +### should be below the nearest core level for this l to make sure +### there are no ghosts, but -2.0 Ha usually is OK When semi-cores +### are treated as valence, this should be below the lowest core +### energy +### epsh2 upper energy limit, 2.0 usually good +### depsh energy mesh interval for plot, 0.02 usually good enough +# +# epsh1, epsh2, depsh + -2.0 2.0 0.02 +# +# OUTPUT GRID +# +### rlmax maximum radius for Abinit psp code 8 format output. must be +### greater than maximum rc (including lloc=4 rc), but also determines +### range of diagnostic plots, so ~2-3*rcmax is usually good +### drl mesh spacing of linear radial mesh for Abinit output. 0.02 is good +### for "softer" psps, 0.01 is probably better with 1st row, 3d's, or +### semi-core psps. +# +# rlmax, drl + 4.0 0.01 +# +# TEST CONFIGURATIONS +# +### ncnf number of test configurations (<=4) The reference config is always +### run first as a consistency check. core always is the reference core +### configuration. The excitation energy of the configuration for the +### pseudo-atom will be compared with the all-electron result. +# ncnf + 4 +# +### n principal quantum number for all-electron atom +### l angular momentum +### f occupancy +# +# nvcnf (repeated ncnf times) +# number of valence states in this test configuration +# n, l, f (nvcnf lines, repeated follwing nvcnf's ncnf times) +# n l f + 3 + 3 2 10.00 + 4 0 1.00 + 4 1 2.00 +# + 3 + 3 2 10.00 + 4 0 2.00 + 4 1 1.00 +# + 3 + 3 2 10.00 + 4 0 1.00 + 4 1 1.00 +# + 3 + 3 2 10.00 + 4 0 1.00 + 4 2 1.00 +# +""" + +class Lparams(AbipyParameterized): + """ + Stores all the oncvpsp pseudization parameters for a given l. + """ + + l = param.Integer(None, bounds=(0, None)) + rc = param.Number(None, bounds=(0, None)) + ep = param.Number(None, bounds=(None, None)) + ncon = param.Integer(None, bounds=(0, 9)) + nbas = param.Integer(None, bounds=(0, 9)) + qcut = param.Number(None, bounds=(0, None)) + nproj = param.Integer(None, bounds=(1, 5,)) + debl = param.Number(None, bounds=(None, None)) + + + +class Nlf(AbipyParameterized): + """ + Stores the value of n, l and occupancy f. + """ + n = param.Integer(None, bounds=(1, None)) + l = param.Integer(None, bounds=(0, None)) + f = param.Number(None, bounds=(0.0, None)) + + + +class OncvInput(AbipyParameterized): + """ + A parametrized class with all the Oncvpsp input variables, + usually constructed from an external file. + """ + + atsym = param.String() + z = param.Integer(1, bounds=(1, None)) + nc = param.Integer(0, bounds=(0, None)) + nv = param.Integer(0, bounds=(0, None)) + iexc = param.Integer(0) + psfile = param.String("both") + + nlf_list = param.List() #[], item_type=Nlf) + lmax = param.Integer(0, bounds=(0, 4)) + lparams = param.List() #[], item_type=Lparams) + + lloc = param.Integer(4) + lpopt = param.Integer(5) + rc5 = param.Number(0.0) + dvloc0 = param.Number(0.0) + + icmod = param.Integer(0, bounds=(0, 3)) + fcfact = param.Number(0.0, bounds=(0, None)) + rcfact = param.Number(0.0, bounds=(0, None)) + + epsh1 = param.Number(-25) + epsh2 = param.Number(+25) + depsh = param.Number(0.02) + rlmax = param.Number(6.0) + drl = param.Number(0.1) + + nconf = param.Integer(0, bounds=(0, None)) + + @classmethod + def from_file(cls, path: str) -> OncvInput: + """ + Initialize the object from file. + """ + with open(path, "rt") as fh: + return cls.from_string(fh.read()) + + @classmethod + def from_string(cls, string: str) -> OncvInput: + """Build the object from a string.""" + + def parse_line(line: str, types: str): + """ + Helper function to parse line, convert each token according to + character in `types` and return list of values or value dependening on num char in types. + s -> str, i -> int, f -> float. + """ + try: + i = line.find("#") + if i != -1: + line = line[:i] + tokens = line.split() + + if len(tokens) != len(types): + raise ValueError(f"Expecting {len(types)} tokens but got {len(tokens)} tokens: `{tokens}`") + + outs = [] + for tok, typ in zip(tokens, types): + if typ == "s": + outs.append(str(tok)) + elif typ == "i": + fval = float(tok) + ival = int(fval) + if fval != ival: + raise TypeError(f"Expecting int in line {line}, got : `{tok}`") + outs.append(ival) + elif typ == "f": + outs.append(float(tok)) + else: + raise TypeError(f"Invalid type: `{typ}`") + + return outs if len(outs) > 1 else outs[0] + + except Exception as exc: + print(exc) + raise ValueError(f"Invalid line: `{line}`, expecting types: `{types}`") + + lines = [l for l in string.split("\n") if not l.startswith("#")] + lines = [l for l in lines if l.strip()] + + # atsym z nc nv iexc psfile + atsym, z, nc, nv, iexc, psfile = parse_line(lines.pop(0), "siiiis") + psfile = "both" + + nlf_list = [] + for i in range(nc + nv): + # n l f + n, l, f = parse_line(lines.pop(0), "iif") + nlf_list.append(Nlf(n=n, l=l, f=f)) + + lmax = parse_line(lines.pop(0), "i") + + params_l = {} + for i in range(lmax + 1): + # l rc ep ncon nbas qcut + l, rc, ep, ncon, nbas, qcut = parse_line(lines.pop(0), "iffiif") + assert i == l + params_l[l] = dict(l=l, rc=rc, ep=ep, ncon=ncon, nbas=nbas, qcut=qcut) + + # lloc lpopt rc5 dvloc0 + lloc, lpopt, rc5, dvloc0 = parse_line(lines.pop(0), "iiff") + + for l in range(lmax + 1): + # l nproj debl + l, nproj, debl = parse_line(lines.pop(0), "iif") + params_l[l].update(nproj=nproj, debl=debl) + + lparams = [Lparams(**d) for d in params_l.values()] + + # icmod fcfact [rcfact] + l = lines.pop(0) + rcfact = 0.0 + try: + icmod, fcfact, rcfact = parse_line(l, "iff") + except ValueError: + icmod, fcfact = parse_line(l, "if") + + # epsh1 epsh2 depsh + epsh1, epsh2, depsh = parse_line(lines.pop(0), "fff") + # rlmax drl + rlmax, drl = parse_line(lines.pop(0), "ff") + #nconf = parse_line(lines.pop(0), "i") + nconf = 0 + + locs = locals() + d = {k: locs[k]for k in [ + "atsym", + "z", + "nc", + "nv", + "iexc", + "psfile", + "nlf_list", + "lparams", + "lmax", + "lloc", + "lpopt", + "rc5", + "dvloc0", + "icmod", + "fcfact", + "rcfact", + "epsh1", + "epsh2", + "depsh", + "rlmax", + "drl", + "nconf", + ]} + + return cls(**d) + + + def __init__(self, **params): + super().__init__(**params) + + def __str__(self) -> str: + """String with the ONCVPSP input file.""" + lines = [] + app = lines.append + + app("# ATOM AND REFERENCE CONFIGURATION") + app("# atsym z nc nv iexc psfile") + app(f"{self.atsym} {self.z} {self.nc} {self.nv} {self.iexc} {self.psfile}") + app("# n l f (nc+nv lines)") + for i, nlf in enumerate(self.nlf_list): + tag = "# end core" if i + 1 == self.nc else "" + app(f"{nlf.n} {nlf.l} {nlf.f} {tag}") + + app("# PSEUDOPOTENTIAL AND OPTIMIZATION") + app("# lmax") + app(f"{self.lmax}") + app("# l rc ep ncon nbas qcut (lmax+1 lines, l's must be in order)") + for p in self.lparams: + app(f"{p.l} {p.rc:.2f} {p.ep:.2f} {p.ncon} {p.nbas} {p.qcut:.2f}") + app("# LOCAL POTENTIAL") + app("# lloc lpopt rc5 dvloc0") + app(f"{self.lloc} {self.lpopt} {self.rc5:.2f} {self.dvloc0}") + app("# VANDERBILT-KLEINMAN-BYLANDER PROJECTORs") + app("# l nproj debl (lmax+1 lines, l's in order") + for p in self.lparams: + app(f"{p.l} {p.nproj} {p.debl:.2f}") + + app("# MODEL CORE CHARGE") + app("# icmod fcfact rcfact") + app(f"{self.icmod} {self.fcfact:.2f} {self.rcfact:.2f}") + app("# LOG DERIVATIVE ANALYSIS") + app("# epsh1 epsh2 depsh") + app(f"{self.epsh1} {self.epsh2} {self.depsh}") + app("# OUTPUT GRID") + app("# rlmax drl") + app(f"{self.rlmax} {self.drl}") + app("# TEST CONFIGURATIONS") + app("# ncnf") + app(f"{self.nconf}") + + return "\n".join(lines) + + def get_min_rc(self) -> float: + """Return the minimum of rc(l) over l.""" + return min(p.rc for p in self.lparams) + + def find_lparam(self, l: int, what: str) -> tuple(int, float): + for i, p in enumerate(self.lparams): + if p.l == l: + return i, getattr(p, what) + + raise ValueError(f"Cannot find l: {l} in input with what: {what}") + + +def run_psgen(psgen: OncvGenerator, data: dict) -> dict: + """ + Helper function to run oncvpsp, parse the outputfiles and return dictionary with results + + Args: + psgen (OncvGenerator): [description] + data (dict): input dictionary with extra data to be added to the output dict + """ + # Init return values + max_ecut = None + max_atan_logder_l1err = None + max_psexc_abserr = None + herm_err = None + status = None + nwarns = None + nerrs = None + + try: + psgen.start() + retcode = psgen.wait() + + results = psgen.parser.get_results() + + if results is not None: + max_ecut = results.max_ecut + max_atan_logder_l1err = results.max_atan_logder_l1err + max_psexc_abserr = results.max_psexc_abserr + herm_err = results.herm_err + status = str(psgen.status) + nwarns = len(psgen.parser.warnings) + nerrs = len(psgen.parser.errors) + + except Exception as exc: + print("Exception in run_psgen", exc) + + d = dict( + status=status, + max_ecut=max_ecut, + max_atan_logder_l1err=max_atan_logder_l1err, + max_psexc_abserr=max_psexc_abserr, + herm_err=herm_err, + nwarns=nwarns, + nerrs=nerrs, + ) + + data = data.copy() + data.update(**d) + return data + +class OncvGui(AbipyParameterized): + calc_type = param.ObjectSelector(default="scalar-relativistic", + objects=["scalar-relativistic", "fully-relativistic", "non-relativistic"], + label="Relativistic effects") + + max_nprocs = param.Integer(max(os.cpu_count() // 2, 1), bounds=(1, None)) + + dpi = param.Integer(82, bounds=(24, None)) + + #in_filepath = param.String("", doc="The path to the oncvps input file.") + + qcut_num = param.Integer(2, bounds=(1, None)) + qcut_step = param.Number(1, bounds=(0, None)) + qcut_dir = param.Selector(["centered", ">", "<"]) + + rc_num = param.Integer(2, bounds=(1, None)) + rc_step = param.Number(0.1, bounds=(0, None)) + rc_dir = param.Selector(["centered", ">", "<"]) + + debl_num = param.Integer(2, bounds=(1, None)) + debl_step = param.Number(1.0, bounds=(0, None)) + debl_dir = param.Selector(["centered", ">", "<"]) + + rc5_num = param.Integer(2, bounds=(1, None)) + rc5_step = param.Number(0.1, bounds=(0, None)) + rc5_dir = param.Selector(["<", "centered", ">"]) + + dvloc0_num = param.Integer(2, bounds=(1, None)) + dvloc0_step = param.Number(0.5, bounds=(0, None)) + dvloc0_dir = param.Selector(["centered", "<", ">"]) + + fcfact_num = param.Integer(1, bounds=(1, None)) + fcfact_step = param.Number(0.2, bounds=(0, None)) + fcfact_dir = param.Selector(["centered", ">", "<"]) + + rcfact_num = param.Integer(1, bounds=(1, None)) + rcfact_step = param.Number(0.2, bounds=(0, None)) + rcfact_dir = param.Selector(["centered", ">", "<"]) + + ace_theme = param.ObjectSelector(default="chrome", + objects=pnw.CodeEditor.param.theme.objects, + doc="Theme of the editor") + + history_idx = param.Integer(default=-1, label="History index") + + @classmethod + def from_file(cls, path: str, plotlyFlag: bool) -> OncvGui: + """ + Build an instance from a file with the oncvpsp input variables. + """ + return cls(oncv_input=OncvInput.from_file(path), plotlyFlag=plotlyFlag, in_filepath=path) + + def __init__(self, oncv_input, plotlyFlag, in_filepath="", **params): + super().__init__(**params) + + self.ace_kwargs = dict(sizing_mode='stretch_both', print_margin=False, language='text', height=600, + theme="chrome", + #theme="dracula", + #max_length=150, + ) + + self.input_ace = pnw.CodeEditor(value=str(oncv_input), **self.ace_kwargs) + + # Add annotated example for documentation purposes. + self.annotated_example = pn.pane.HTML(f"
     {GE_ANNOTATED} 
    ") + + self.in_filepath = pnw.TextInput(value=in_filepath, placeholder='Enter the filepath...') + + self.out_area = pn.Column("## Oncvpsp output:", sizing_mode="stretch_width") + #self.out_runtests = pn.Column("## Basic tests:", sizing_mode="stretch_width") + + # Define buttons + self.execute_btn = pnw.Button(name="Execute", button_type='primary') + self.execute_btn.on_click(self.on_execute_btn) + + # This is the directory used to run oncvpsp when the user clicks execute_btn + #self._execute_stdout_path = None + + # List storing all the inputs. + self.input_history = [] + self.history_btn = pnw.Button(name="Compare", button_type='primary') + #self.history_btn.on_click(self.on_history_btn) + + self.rc_qcut_btn = pnw.Button(name="Execute", button_type='primary') + + self.plotlyFlag = plotlyFlag + + @param.depends("ace_theme") + def change_ace_theme(self): + #print("Changing theme") + self.input_ace.theme = self.ace_theme + + def get_oncv_input(self) -> OncvInput: + """ + Take the string from the ACE editor and build an oncv input + with the last changes done by the user + """ + return OncvInput.from_string(self.input_ace.value) + + def set_oncv_input_string(self, new_string: str) -> OncvInput: + """ + Update the string in the ACE editor, store previous string in history. + Return: OncvInput instance. + """ + #print("Updating input with new_string:\n", new_string) + self.input_history.append(self.input_ace.value) + self.input_ace.value = new_string + + return self.get_oncv_input() + + def starmap(self, func, list_of_args): + import time + time_start = time.time() + + # Don't use more procs than tasks. + _max_nprocs_ = self.max_nprocs + _max_nprocs_ = min(_max_nprocs_, len(list_of_args)) + + if _max_nprocs_ == 1: + values = [func(*args) for args in list_of_args] + else: + # TODO: Optimize, use better algo + # This Pool uses threads instead of multiprocessing + # Cannot use multiprocessing because we have side effects in psgen + from multiprocessing.dummy import Pool + with Pool(processes=self.max_nprocs) as pool: + values = pool.starmap(func, list_of_args) + + print(f"Done {len(list_of_args)} tasks in {time.time() - time_start:.2f} [s] with {_max_nprocs_} processe(s)") + return values + + def get_panel(self, as_dict=False, **kwargs): + """Return tabs with widgets""" + d = {} + + main = pn.Column( + pn.Row( + self.pws_col(["calc_type", "max_nprocs", + "dpi", "ace_theme", "execute_btn"]), + self.input_ace, + ), + pn.Card(self.annotated_example, title='Annotated example', collapsed=True, + header_color="blue", sizing_mode="stretch_width"), + sizing_mode="stretch_width", + ) + + d["Main"] = pn.Column(main, + #pn.layout.Divider(), + self.out_area, + #self.out_runtests, + sizing_mode="stretch_width", + ) + + d["Rc_qcut_opt"] = self.get_rc_qcut_opt_view() + d["History"] = self.get_history_view() + + if as_dict: return d + template = self.get_template_from_tabs(d, template=kwargs.get("template", None)) + #self.tabs = template + #print(self.tabs) + return template + + def get_history_view(self) -> pn.Row: + return pn.Row( + self.pws_col(["## History", + "history_idx", + "history_btn", + ]), + self.on_history_btn + ) + + @depends_on_btn_click('history_btn') + def on_history_btn(self) -> pn.Column: + #print("hello") + hist_len = len(self.input_history) + idx = self.history_idx + if hist_len == 0 or idx >= hist_len: + return pn.Column(f"hist_len == {hist_len}") + + ace_hist = pnw.CodeEditor(value=self.input_history[idx], **self.ace_kwargs) + + fromlines = self.input_history[idx].splitlines() + tolines = self.input_ace.value.splitlines() + from difflib import HtmlDiff + html_table = HtmlDiff().make_table(fromlines, tolines) #, fromdesc='', todesc='', context=False, numlines=5) + + return pn.Column( + f"## Input at history index: {idx}", + ace_hist, + pn.pane.HTML(html_table), + ) + + def get_rc_widgets(self, oncv_input: OncvInput) -> pn.WidgetBox: + """Return widgets to change the value of rc(l)""" + menu_items = [(f"l = {l}", str(l)) for l in range(oncv_input.lmax + 1)] + menu_button = pnw.MenuButton(name='Change rc(l)', items=menu_items, button_type='primary') + menu_button.on_click(self.on_change_rc) + rc_l = {p.l: p.rc for p in oncv_input.lparams} + help_str = f""" +Here one can change the value of rc(l). + +The present values of rc_l are: {rc_l} +""" + return pn.WidgetBox(menu_button, + *[self.param[k] for k in ("rc_num", "rc_step", "rc_dir")], + help_str) + + def get_qcut_widgets(self, oncv_input: OncvInput) -> pn.WidgetBox: + """Return widgets to change the value of qc(l)""" + menu_items = [(f"l = {l}", str(l)) for l in range(oncv_input.lmax + 1)] + menu_button = pnw.MenuButton(name='Change qcut(l)', items=menu_items, button_type='primary') + menu_button.on_click(self.on_change_qcut) + qc_l = {p.l: p.qcut for p in oncv_input.lparams} + help_str = f""" +Here one can change the value of qcut(l). + +The present values are: {qc_l} +""" + return pn.WidgetBox(menu_button, + *[self.param[k] for k in ("qcut_num", "qcut_step", "qcut_dir")], + help_str) + + def get_debl_widgets(self, oncv_input: OncvInput) -> pn.WidgetBox: + """Return widgets to change the value of debl(l)""" + menu_items = [(f"l = {l}", str(l)) for l in range(oncv_input.lmax + 1)] + menu_button = pnw.MenuButton(name='Change debl(l)', items=menu_items, button_type='primary') + menu_button.on_click(self.on_change_debl) + help_str = f""" +Here one can change the value of debl(l) with fixed nproj(l). +""" + return pn.WidgetBox(menu_button, + *[self.param[k] for k in ("debl_num", "debl_step", "debl_dir")], + help_str) + + def get_rc5_widgets(self, oncv_input: OncvInput) -> pn.WidgetBox: + """Return widgets to change the value of rc5""" + btn = pnw.Button(name="Run", button_type='primary') + btn.on_click(self.on_change_rc5) + help_str = f""" +Here one can change the value of rc5 for vloc. + +The present value of rc5 is {oncv_input.rc5} and min(rc) is: {oncv_input.get_min_rc()} +""" + return pn.WidgetBox(*[self.param[k] for k in ("rc5_num", "rc5_step", "rc5_dir")], + btn, + help_str) + + def get_dvloc0_widgets(self, oncv_input: OncvInput) -> pn.WidgetBox: + """Return widgets to change the value of dvloc0""" + btn = pnw.Button(name="Run", button_type='primary') + btn.on_click(self.on_change_dvloc0) + help_str = f""" +Here one can change the value of dvloc0 for vloc. + +The present value of dvloc0 is {oncv_input.dvloc0} with lpopt: {oncv_input.lpopt} +""" + return pn.WidgetBox(*[self.param[k] for k in ("dvloc0_num", "dvloc0_step", "dvloc0_dir")], + btn, + help_str) + + def get_rhomodel_widgets(self, oncv_input: OncvInput) -> pn.WidgetBox: + """Return widgets to change the parameters for the model core charge""" + btn = pnw.Button(name="Run", button_type='primary') + btn.on_click(self.on_change_rhomodel) + help_str = f""" +Here one can change the parameters for the model core charge. + +The present value of icmod is {oncv_input.icmod} with fcfact: {oncv_input.fcfact} and rcfact: {oncv_input.rcfact} +""" + keys = ("rcfact_num", "rcfact_step", "rcfact_dir", + "fcfact_num", "fcfact_step", "fcfact_dir") + return pn.WidgetBox(*[self.param[k] for k in keys], + btn, + help_str) + + def gridplot_psgens(self, psgens, titles, func_names="plot_atanlogder_econv") -> pn.GridBox: + """ + Return a GridBox with the figures obtained by calling `plotter.func_name` + for all the PseudoGenerators in psgens. + """ + # Generate plots with titles by calling `func_name`. + _m = functools.partial(mpl, with_divider=False, dpi=self.dpi) + func_names = list_strings(func_names) + figs = [] + for psgen, title in zip(psgens, titles): + plotter = psgen.parser.get_plotter() + if plotter is not None: + for func_name in func_names: + plot_func = getattr(plotter, func_name) + figs.append(_m(plot_func(show=False, title=title, fig_close=True))) + + # Insert the figures in a GridBox. + nfigs = len(figs) + nrows, ncols = 1, 1 + if nfigs > 1: + ncols = 2 if len(func_names) == 1 else len(func_names) + nrows = nfigs // ncols + nfigs % ncols + elif nfigs == 0: + nrows, ncols = 0, 0 + + return pn.GridBox(*figs, ncols=ncols, nrows=nrows) + + def on_change_qcut(self, event) -> None: + """ + Change the value of qcut(l), run oncvpsp and show the results. + """ + with ButtonContext(event.obj), Loading(self.out_area): + # Get initial qc(l) from input. + l = int(event.new) + oncv_input = self.get_oncv_input() + i0, qcut0 = oncv_input.find_lparam(l, "qcut") + + # Define list of qc to be tested and build list of OncvGenerator. + qcut_values, _ = build_mesh(qcut0, self.qcut_num, self.qcut_step, self.qcut_dir) + psgens = [] + + try: + for qcut in qcut_values: + oncv_input.lparams[i0].qcut = qcut + psgens.append(OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False)) + finally: + # Restore the initial value. + oncv_input.lparams[i0].qcut = qcut0 + + # Run each generator, get results, build pandas Dataframe and show it in out_area. + tasks = [(psgen, {"qcut": qcut}) for psgen, qcut in zip(psgens, qcut_values)] + d_list = self.starmap(run_psgen, tasks) + + dfw = self._build_table(tasks, d_list) + + head = pn.Row(pn.Column( + f"## Qcut optimization for l: {l}. Click the icon to update the input", + dfw + ), + self.get_qcut_widgets(oncv_input)) + + col = pn.Column(head, sizing_mode="stretch_width") + + # Add plots + grid = self.gridplot_psgens(psgens, [f"qc = {qc:.2f}" for qc in qcut_values]) + col.append(grid) + + self.out_area.objects = col.objects + + def _build_table(self, tasks, d_list): + """ + Build and return a Tabulator widget with the results. + Also, register callbacks so that it is possible to + update the input file by clicking on the icon in the last column. + """ + + df = pd.DataFrame(d_list, columns=list(d_list[0].keys())) + + # Sort results by max_ecut and add buttons to trigger callbacks + df = df.sort_values("max_ecut") + dfw = pn.widgets.Tabulator(df, buttons={'accept': ''}) + + def update_input(event): + #print(f'Clicked {event.column!r} on row {event.row}') + # Use the index to get the psgen as we have sorted along max_ecut + idx = dfw.value.index[event.row] + #print("select idx:", idx) + psgen = tasks[idx][0] + if event.column == "accept" and psgen.status == psgen.S_OK: + oncv_input = self.set_oncv_input_string(psgen.input_str) + self._update_out_area(psgen, oncv_input) + + dfw.on_click(update_input) + return dfw + + def on_change_debl(self, event) -> None: + """ + Change the value of debl(l), run oncvpsp and show the results. + """ + with ButtonContext(event.obj), Loading(self.out_area): + # Get initial qc(l) from input. + l = int(event.new) + oncv_input = self.get_oncv_input() + + # Define list of qc to be tested and build list of OncvGenerator. + i0, debl0 = oncv_input.find_lparam(l, "debl") + debl_values, _ = build_mesh(debl0, self.debl_num, self.debl_step, self.debl_dir) + psgens = [] + + try: + for debl in debl_values: + oncv_input.lparams[i0].debl = debl + psgens.append(OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False)) + finally: + # Restore the initial value. + oncv_input.lparams[i0].debl = debl0 + + # Run each generator, get results, build pandas Dataframe and show it in out_area. + tasks = [(psgen, {"debl": debl}) for psgen, debl in zip(psgens, debl_values)] + d_list = self.starmap(run_psgen, tasks) + + dfw = self._build_table(tasks, d_list) + + head = pn.Row(pn.Column( + f"## Debl optimization for l: {l}. Click the icon to update the input", + dfw, + ), + self.get_debl_widgets(oncv_input)) + + col = pn.Column(head, sizing_mode="stretch_width") + + # Add plots + grid = self.gridplot_psgens(psgens, [f"debl = {debl:.2f}" for debl in debl_values], + func_names=["plot_atan_logders"]) + col.append(grid) + + self.out_area.objects = col.objects + + def on_change_rc5(self, event) -> None: + """ + Change the value of rc5 for the local part, run oncvpsp and show the results. + """ + with ButtonContext(event.obj), Loading(self.out_area): + oncv_input = self.get_oncv_input() + + # Define list of qc to be tested and build list of OncvGenerator. + rc5 = oncv_input.rc5 + rc5_values, _ = build_mesh(rc5, self.rc5_num, self.rc5_step, self.rc5_dir) + psgens = [] + + try: + for new_rc in rc5_values: + oncv_input.rc5 = new_rc + psgens.append(OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False)) + finally: + # Restore the initial value. + oncv_input.rc5 = rc5 + + # Run each generator, get results, build pandas Dataframe and show it in out_area. + tasks = [(psgen, {"rc5": rc5}) for psgen, rc5 in zip(psgens, rc5_values)] + d_list = self.starmap(run_psgen, tasks) + + dfw = self._build_table(tasks, d_list) + + head = pn.Row(pn.Column( + f"## Rc5 optimization. Click the icon to update the input", + dfw, + ), + self.get_rc5_widgets(oncv_input)) + + col = pn.Column(head, sizing_mode="stretch_width") + + # Add plots + grid = self.gridplot_psgens(psgens, [f"rc5 = {rc5:.2f}" for rc5 in rc5_values], + func_names=["plot_atanlogder_econv", "plot_potentials"]) + col.append(grid) + + self.out_area.objects = col.objects + + def on_change_dvloc0(self, event) -> None: + """ + Change the value of dvloc0 for the local part, run oncvpsp and show the results. + """ + with ButtonContext(event.obj), Loading(self.out_area): + oncv_input = self.get_oncv_input() + + # Define list of qc to be tested and build list of OncvGenerator. + dvloc0 = oncv_input.dvloc0 + dvloc_values, _ = build_mesh(dvloc0, self.dvloc0_num, self.dvloc0_step, self.dvloc0_dir) + psgens = [] + + try: + for new_dvloc in dvloc_values: + oncv_input.dvloc0 = new_dvloc + psgens.append(OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False)) + finally: + # Restore the initial value. + oncv_input.dvloc0 = dvloc0 + + # Run each generator, get results, build pandas Dataframe and show it in out_area. + tasks = [(psgen, {"dvloc0": dvloc}) for psgen, dvloc in zip(psgens, dvloc_values)] + d_list = self.starmap(run_psgen, tasks) + + dfw = self._build_table(tasks, d_list) + + head = pn.Row(pn.Column( + f"## dvloc0 optimization. Click the icon to update the input", + dfw, + ), + self.get_dvloc0_widgets(oncv_input)) + + col = pn.Column(head, sizing_mode="stretch_width") + + # Add plots + grid = self.gridplot_psgens(psgens, [f"dvloc = {dvloc:.2f}" for dvloc in dvloc_values], + func_names=["plot_atanlogder_econv", "plot_potentials"]) + col.append(grid) + + self.out_area.objects = col.objects + + def on_change_rc(self, event) -> None: + """ + Change the value of rc(l), run oncvpsp and show the results. + """ + with ButtonContext(event.obj), Loading(self.out_area): + # Get initial rc(l) from input. + l = int(event.new) + oncv_input = self.get_oncv_input() + + # Define list of qc to be tested and build list of OncvGenerator. + i0, rc0 = oncv_input.find_lparam(l, "rc") + rc_values, _ = build_mesh(rc0, self.rc_num, self.rc_step, self.rc_dir) + psgens = [] + + try: + for rc in rc_values: + oncv_input.lparams[i0].rc = rc + psgens.append(OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False)) + finally: + # Restore the initial value. + oncv_input.lparams[i0].rc = rc0 + + # Run each generator, get results, build pandas Dataframe and show it in out_area. + tasks = [(psgen, {"rc": rc}) for psgen, rc in zip(psgens, rc_values)] + d_list = self.starmap(run_psgen, tasks) + + dfw = self._build_table(tasks, d_list) + + head = pn.Row(pn.Column( + f"## Rc optimization for l: {l}. Click the icon to update the input", + dfw, + ), + self.get_rc_widgets(oncv_input), + ) + + col = pn.Column(head, sizing_mode="stretch_width") + + # Add plots + grid = self.gridplot_psgens(psgens, [f"rc = {rc:.2f} for l: {l}" for rc in rc_values]) + col.append(grid) + + self.out_area.objects = col.objects + + def on_change_rhomodel(self, event) -> None: + """ + Change the parameters for the model core charge, run oncvpsp and show the results. + """ + with ButtonContext(event.obj), Loading(self.out_area): + # Get initial values from input. + oncv_input = self.get_oncv_input() + icmod = oncv_input.icmod + if icmod == 0: return + fcfact0 = oncv_input.fcfact + rcfact0 = oncv_input.rcfact + + # Define list of values to be tested and build list of OncvGenerator. + fcfact_values, _ = build_mesh(fcfact0, self.fcfact_num, self.fcfact_step, self.fcfact_dir) + rcfact_values, _ = build_mesh(rcfact0, self.rcfact_num, self.rcfact_step, self.rcfact_dir) + + psgens = [] + tasks = [] + titles = [] + + if icmod in (3, 4): + # fcfact x rcfact + for fc, rc in itertools.product(fcfact_values, rcfact_values): + try: + oncv_input.fcfact = fc + oncv_input.rcfact = rc + psgens.append(OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False)) + tasks.append((psgens[-1], {"fcfact": fc, "rcfact": rc})) + titles.append(f"fcfact: {fc}, rcfact: {rc}") + finally: + # Restore the initial value. + oncv_input.fcfact = fcfact0 + oncv_input.rcfact = rcfact0 + + elif icmod in (1, 2): + # Only fcfact is used here. + for fc in fcfact_values: + try: + oncv_input.fcfact = fc + psgens.append(OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False)) + tasks.append((psgens[-1], {"fcfact": fc})) + titles.append(f"fcfact: {fc}") + finally: + # Restore the initial value. + oncv_input.fcfact = fcfact0 + else: + raise ValueError(f"Invalid icmod: {icmod}") + + # Run each generator, get results, build pandas Dataframe and show it in out_area. + d_list = self.starmap(run_psgen, tasks) + + dfw = self._build_table(tasks, d_list) + + head = pn.Row(pn.Column( + f"## Rho model optimization for icmod: {icmod}. Click the icon to update the input", + dfw, + ), + self.get_rhomodel_widgets(oncv_input), + ) + + col = pn.Column(head, sizing_mode="stretch_width") + + # Add plots + grid = self.gridplot_psgens(psgens, titles, + func_names=["plot_densities", "plot_den_formfact"]) + col.append(grid) + + self.out_area.objects = col.objects + + def get_rc_qcut_opt_view(self) -> pn.Row: + oncv_input = self.get_oncv_input() + + menu_items = [(f"l = {l}", str(l)) for l in range(oncv_input.lmax + 1)] + menu_button = pnw.MenuButton(name='Change qcut(l)', items=menu_items, button_type='primary') + menu_button.on_click(self.on_change_rc_qcut) + qc_l = {p.l: p.qcut for p in oncv_input.lparams} + rc_l = {p.l: p.rc for p in oncv_input.lparams} + help_str = f""" +Here one can change the value of rc(l) and qcut(l). + +The present values of qc_l are: {qc_l} +The present values of rc_l are: {rc_l} +""" + self.rc_qcut_out_area = pn.Column(sizing_mode="stretch_width") + wbox = pn.WidgetBox(menu_button, + *[self.param[k] for k in ("qcut_num", "qcut_step", "qcut_dir")], + *[self.param[k] for k in ("rc_num", "rc_step", "rc_dir")], + help_str) + + return pn.Row(wbox, self.rc_qcut_out_area, sizing_mode="stretch_width") + + #@depends_on_btn_click('rc_qcut_btn') + def on_change_rc_qcut(self, event) -> None: + """ + Generate pseudos using a grid of (rc, qcut) values for given l. + """ + with ButtonContext(event.obj), Loading(self.rc_qcut_out_area): + # Get initial rc(l) from input. + l = int(event.new) + oncv_input = self.get_oncv_input() + + # Define list of qc to be tested and build list of OncvGenerator. + i0, rc0 = oncv_input.find_lparam(l, "rc") + rc_values, _ = build_mesh(rc0, self.rc_num, self.rc_step, self.rc_dir) + + # Define list of qc to be tested and build list of OncvGenerator. + i0, qcut0 = oncv_input.find_lparam(l, "qcut") + qcut_values, _ = build_mesh(qcut0, self.qcut_num, self.qcut_step, self.qcut_dir) + + def rq_prod(): + return itertools.product(rc_values, qcut_values) + + psgens = [] + try: + for rc, qcut in rq_prod(): + oncv_input.lparams[i0].rc = rc + oncv_input.lparams[i0].qcut = qcut + psgens.append(OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False)) + finally: + # Restore the initial value. + oncv_input.lparams[i0].rc = rc0 + oncv_input.lparams[i0].qcut = qcut0 + + # Run each generator, get results, build pandas Dataframe and show it in out_area. + tasks = [(psgen, {"rc": rc, "qcut": qcut}) for psgen, (rc, qcut) in zip(psgens, rq_prod())] + d_list = self.starmap(run_psgen, tasks) + + dfw = self._build_table(tasks, d_list) + + head = pn.Row(pn.Column( + f"## Rc/qcut optimization for l: {l}. Click the icon to update the input", + dfw, + ), + ) + + col = pn.Column(head, sizing_mode="stretch_width") + + # Add plots: + grid = self.gridplot_psgens(psgens, [f"rc = {rc:.2f}, qc = {qc:.2f} for l: {l}" + for rc, qc in rq_prod()]) + col.append(grid) + + self.rc_qcut_out_area.objects = col.objects + + #@depends_on_btn_click('execute_btn') + def on_execute_btn(self, event) -> None: + """ + Build a new generator from the input file, run it and update out_area. + """ + with ButtonContext(event.obj), Loading(self.out_area): + oncv_input = self.get_oncv_input() + psgen = OncvGenerator(input_str=str(oncv_input), calc_type=self.calc_type, use_mgga=False) + print("Running in workdir:", psgen.workdir) + psgen.start() + retcode = psgen.wait() + #psget.check_status() + + #if psgen.status != psgen.S_OK: + # cprint("oncvpsp returned %s. Exiting" % retcode, "red") + # return 1 + + #out_path = self._execute_stdout_path = psgen.stdout_path + + # Parse the output file + #onc_parser = OncvParser(out_path) + #onc_parser.scan() + #if not onc_parser.run_completed: + # cprint("oncvpsp output is not complete. Exiting", "red") + # return 1 + + ## Build the plotter and add figures to out_area. + #plotter = onc_parser.get_plotter() + + # TODO: + # Tranfer final output file. + + self._update_out_area(psgen, oncv_input) + + def _update_out_area(self, psgen, oncv_input: OncvInput) -> None: + with Loading(self.out_area): + #self.psgen_to_save = psgen + plotter = psgen.parser.get_plotter() + + if plotter is None: + self.out_area.objects = pn.Column("## Plotter is None") + return + + if self.plotlyFlag: + _m = functools.partial(ply, with_divider=False) + + else: + _m = functools.partial(mpl, with_divider=False, dpi=self.dpi) + + save_btn = pnw.Button(name="Save output", button_type='primary') + save_btn.on_click(self.on_save_btn) + + new_rows = [ + pn.Row(save_btn, self.in_filepath), + pn.layout.Divider(), + "## Pseudized Wavefunctions", + pn.Row(_m(plotter.plot_radial_wfs(show=False)), + self.get_rc_widgets(oncv_input), height=600), + pn.Row(_m(plotter.plot_radial_wfs(what="scattering_states", show=False)), height=600), + pn.layout.Divider(), + "## Logder and convergence profile", + pn.Row(_m(plotter.plot_atanlogder_econv(show=False)), + self.get_qcut_widgets(oncv_input), height=500), + pn.Row(pn.Spacer(), self.get_debl_widgets(oncv_input), align='end', height=300), + pn.layout.Divider(), + "## Pseudized local part", + pn.Row(_m(plotter.plot_potentials(show=False)), + self.get_rc5_widgets(oncv_input), height=400), + pn.Row(pn.Spacer(), self.get_dvloc0_widgets(oncv_input), align="end", height=300), + pn.layout.Divider(), + "## Model core charge", + pn.Row(_m(plotter.plot_densities(show=False)), + self.get_rhomodel_widgets(oncv_input), height=600), + pn.Row(_m(plotter.plot_den_formfact(show=False)), height=600), + pn.layout.Divider(), + "## Projectors", + pn.Row(_m(plotter.plot_projectors(show=False)), height=600), + pn.layout.Divider(), + ] + + self.out_area.objects = new_rows + #self.tabs[0].active = 1 + + def on_save_btn(self, event) -> None: + with ButtonContext(event.obj): + print("on_save_button") + #self._execute_stdout_path + out_path = self.in_filepath.value + if not out_path: + raise ValueError("out_path cannot be empty.") + + #self.psgen_to_save = psgen + + # TODO: Transfer final output file. + #shutil.copy(psgen.stdout_path, out_path) diff --git a/abipy/panels/outputs.py b/abipy/panels/outputs.py index cb06102c3..27ace78b0 100644 --- a/abipy/panels/outputs.py +++ b/abipy/panels/outputs.py @@ -1,28 +1,32 @@ """Panels for interacting with output files in text format.""" +from __future__ import annotations -import param import panel as pn -#import panel.widgets as pnw +import panel.widgets as pnw import bokeh.models.widgets as bkw -from abipy.panels.core import AbipyParameterized + +from abipy.panels.core import AbipyParameterized, Loading, mpl, ply, dfc class AbinitOutputFilePanel(AbipyParameterized): """ - Panel with widgets to interact with an Abinit output file. + Panel with widgets to interact with the main Abinit output file. """ def __init__(self, outfile, **params): super().__init__(**params) self.outfile = outfile - def _get_gridbox(self, what): - """Return GridBox with matplotlib for GS/DFPT SCF cycles.""" - if what == "GS": + def get_cycles_view(self, what: str) -> pn.GridBox: + """ + Return GridBox with matplotlib plots for the GS/DFPT SCF cycles + or None if no cycle is found. + """ + if what == "GS_SCF": cycles = self.outfile.get_all_gs_scf_cycles() - elif what == "DFPT": + elif what == "DFPT_D2DE": cycles = self.outfile.get_all_d2de_scf_cycles() else: - raise ValueError("Invalid value for what: %s" % what) + raise ValueError(f"Invalid value for what: `{what}`") if not cycles: return None @@ -31,28 +35,96 @@ def _get_gridbox(self, what): ncols = 2 nrows = (num_plots // ncols) + (num_plots % ncols) - box = pn.GridBox(nrows=nrows, ncols=ncols) #, sizing_mode='scale_both') + box = pn.GridBox(nrows=nrows, ncols=ncols, sizing_mode='stretch_width') + #box = pn.Column(sizing_mode="stretch_width") + for icycle, cycle in enumerate(cycles): - box.append(self._mp(cycle.plot(title="%s cycle #%d" % (what, icycle), **self.fig_kwargs))) + #box.append(mpl(cycle.plot(title="%s cycle #%d" % (what, icycle), **self.mpl_kwargs))) + f = ply(cycle.plotly(title="%s cycle #%d" % (what, icycle + 1), show=False)) + box.append(f) return box - def get_panel(self): + def get_outfile_view(self) -> pn.Column: + col = pn.Column(sizing_mode="stretch_width") + ca = col.append; cext = col.extend + + filepath = self.outfile.filepath + with open(filepath, "rt") as fh: + text = fh.read() + + ace = pnw.Ace(value=text, language='text', readonly=True, + sizing_mode='stretch_width', height=1200) + #sizing_mode='stretch_width', width=900) + cext([f"## Output {filepath}", ace, pn.layout.Divider()]) + + return col + + def get_panel(self, as_dict=False, **kwargs): """Return tabs with widgets to interact with the Abinit output file.""" - tabs = pn.Tabs(); app = tabs.append - app(("Summary", pn.Row(bkw.PreText(text=self.outfile.to_string(verbose=self.verbose), - sizing_mode="scale_both")))) - df = self.outfile.get_dims_spginfo_dataframe().transpose() + d = {} + + d["Summary"] = self.get_summary_view_for_abiobj(self.outfile) + #d["Output"] = self.get_outfile_view() + + df = self.outfile.get_dims_spginfo_dataframe() df.index.name = "Dataset" - app(("Dims", self._df(df))) + d["Dims"] = dfc(df, transpose=True) # Add tabs with plots for the GS/DFPT SCF cycles. - for what in ("GS", "DFPT"): - box = self._get_gridbox(what) + for what in ("GS_SCF", "DFPT_D2DE"): + box = self.get_cycles_view(what) if box is not None: - app(("%s Cycles" % what, box)) + d[f"{what} cycles"] = box #timer = self.get_timer() - #timer.plot_all(**self.fig_kwargs) + #timer.plot_all(**self.mpl_kwargs) + + if as_dict: return d + + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) + + +class AbinitOutputFilePanelWithFileInput(AbipyParameterized): + + info_str = """ +This application allows users to analyze the Abinit main output file +""" + + def __init__(self, **params): + super().__init__(**params) + + help_md = pn.pane.Markdown(f""" +## Description + +{self.info_str} +""") + + self.main_area = pn.Column(help_md, sizing_mode="stretch_width") + self.abifile = None + + self.file_input = pnw.FileInput(height=60, css_classes=["pnx-file-upload-area"]) + self.file_input.param.watch(self.on_file_input, "value") + + def on_file_input(self, event) -> None: + + with Loading(self.main_area): + new_abifile = self.get_abifile_from_file_input(self.file_input) + + if self.abifile is not None: + self.abifile.remove() + + self.abifile = new_abifile + self.main_area.objects = [self.abifile.get_panel()] + + def get_panel(self, **kwargs): + + col = pn.Column("## Upload (or drag & drop) an *.abo* file (main ABINIT output file):", + self.get_fileinput_section(self.file_input), + sizing_mode="stretch_width") + + main = pn.Column(col, self.main_area, sizing_mode="stretch_width") + + cls, cls_kwds = self.get_abinit_template_cls_kwds() - return tabs + return cls(main=main, title="Abo Analyzer", **cls_kwds) diff --git a/abipy/panels/phonons.py b/abipy/panels/phonons.py index 68cb64829..82dee6172 100644 --- a/abipy/panels/phonons.py +++ b/abipy/panels/phonons.py @@ -1,39 +1,46 @@ """"Panels for phonon-related objects.""" +from __future__ import annotations + import param import panel as pn import panel.widgets as pnw -from abipy.panels.core import AbipyParameterized +from abipy.panels.core import AbipyParameterized, mpl, ply, dfc, depends_on_btn_click class PhononBandsPlotterPanel(AbipyParameterized): - - phbands_plotter_mode = pnw.Select(name="Plot Mode", value="gridplot", - options=["gridplot", "combiplot", "boxplot", "combiboxplot"]) # "animate", - phbands_plotter_units = pnw.Select(name="Units", value="eV", - options=["eV", "meV", "Ha", "cm-1", "Thz"]) - phbands_plotter_btn = pnw.Button(name="Plot", button_type='primary') + """ + """ def __init__(self, plotter, **params): - super().__init__(**params) + + self.phbands_plotter_mode = pnw.Select(name="Plot Mode", value="gridplot", + options=["gridplot", "combiplot", "boxplot", "combiboxplot"]) # "animate", + self.phbands_plotter_units = pnw.Select(name="Units", value="eV", + options=["eV", "meV", "Ha", "cm-1", "Thz"]) + self.phbands_plotter_btn = pnw.Button(name="Plot", button_type='primary') + self.plotter = plotter + super().__init__(**params) - @param.depends("phbands_plotter_btn.clicks") - def on_phbands_plot_btn(self): - if self.phbands_plotter_btn.clicks == 0: return + @depends_on_btn_click('phbands_blotter_btn') + def on_phbands_plot_btn(self) -> pn.Row: plot_mode = self.phbands_plotter_mode.value plotfunc = getattr(self.plotter, plot_mode, None) if plotfunc is None: raise ValueError("Don't know how to handle plot_mode: %s" % plot_mode) - fig = plotfunc(units=self.phbands_plotter_units.value, **self.fig_kwargs) + fig = plotfunc(units=self.phbands_plotter_units.value, **self.mpl_kwargs) df = self.plotter.get_phbands_frame(with_spglib=True) - return pn.Row(pn.Column(self._mp(fig), self._df(df)), sizing_mode='scale_width') + return pn.Row(pn.Column(mpl(fig), dfc(df)), sizing_mode='scale_width') - def get_panel(self): + def get_panel(self, as_dict=False, **kwargs): """Return tabs with widgets to interact with the |PhononBandsPlotter|.""" - tabs = pn.Tabs() + d = {} + ws = pn.Column(self.phbands_plotter_mode, self.phbands_plotter_units, self.phbands_plotter_btn) - tabs.append(("PhbandsPlotter", pn.Row(ws, self.on_phbands_plot_btn, sizing_mode='scale_width'))) + d["PhbandsPlotter"] = pn.Row(ws, self.on_phbands_plot_btn, sizing_mode='scale_width') + + if as_dict: return d - return tabs + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) diff --git a/abipy/panels/sigeph.py b/abipy/panels/sigeph.py new file mode 100644 index 000000000..337a176ee --- /dev/null +++ b/abipy/panels/sigeph.py @@ -0,0 +1,86 @@ +"""Panels to interact with the SIGEPH file.""" +from __future__ import annotations + +import param +import panel as pn +import panel.widgets as pnw + +from abipy.eph.sigeph import SigEPhFile +from .core import PanelWithElectronBands, mpl, ply, depends_on_btn_click #, PanelWithEbandsRobot + + +class SigEPhFilePanel(PanelWithElectronBands): + """ + Panel with widgets to interact with a |SigEphFile|. + """ + def __init__(self, sigeph: SigEPhFile, **params): + PanelWithElectronBands.__init__(self, ebands=sigeph.ebands, **params) + self.sigeph = sigeph + + self.sigma_spin_select = pnw.Select(name="Spin index", options=list(range(sigeph.nsppol))) + self.sigma_kpoint_select = pnw.Select(name="Kpoint in Sigma_nk", + options={"[%d]: %s" % (ik, repr(k)): ik for ik, k in enumerate(sigeph.sigma_kpoints)}) + + self.plot_qpsolution_btn = pnw.Button(name="Plot Sigma_nk", button_type='primary') + #sigma_band_select = param.ObjectSelector(default=0, objects=[0], doc="Band index in sigma_nk") + + def plot_lws(self) -> pn.GridSpec: + # Insert results in grid. + gspec = pn.GridSpec(sizing_mode='scale_width') + for i, rta_type in enumerate(("serta", "mrta")): + fig = self.sigeph.plot_lws_vs_e0(rta_type=rta_type, **self.mpl_kwargs) + gspec[i, 0] = fig + fig = self.sigeph.plot_tau_vtau(rta_type=rta_type, **self.mpl_kwargs) + gspec[i, 1] = fig + + return gspec + + def plot_qpgaps(self) -> pn.GridSpec: + # Insert results in grid. + gspec = pn.GridSpec(sizing_mode='scale_width') + + for i, qp_kpt in enumerate(self.sigeph.sigma_kpoints): + fig = self.sigeph.plot_qpgaps_t(qp_kpoints=qp_kpt, qp_type="qpz0", **self.mpl_kwargs) + gspec[i, 0] = fig + fig = self.sigeph.plot_qpgaps_t(qp_kpoints=qp_kpt, qp_type="otms", **self.mpl_kwargs) + gspec[i, 1] = fig + + return gspec + + def plot_qps_vs_e0(self): + return mpl(self.sigeph.plot_qps_vs_e0(**self.mpl_kwargs)) + + @depends_on_btn_click('plot_qpsolution_btn') + def on_plot_qpsolution_sk(self): + fig = self.sigeph.plot_qpsolution_sk(self.sigma_spin_select.value, self.sigma_kpoint_select.value, + itemp=0, with_int_aw=True, + ax_list=None, xlims=None, fontsize=8, **self.mpl_kwargs) + return mpl(fig) + + def get_panel(self, as_dict=False, **kwargs): + """Return tabs with widgets to interact with the SIGEPH file.""" + d = {} + d["Summary"] = self.get_summary_view_for_abiobj(self.sigeph) + #app(("e-Bands", pn.Row(self.get_plot_ebands_widgets(), self.on_plot_ebands_btn))) + + # Build different tabs depending on the calculation type. + # TODO + #if self.sigeph.imag_only: + # d["LWS"] = self.plot_lws + + #else: + # d["QP-gaps"] = self.plot_qpgaps + # d["QP_vs_e0"] = self.plot_qps_vs_e0 + # d["QPSolution"] = pn.Row( + # pn.Column("## Quasiparticle solution", + # self.sigma_spin_select, + # self.sigma_kpoint_select, + # self.plot_qpsolution_btn), + # self.on_plot_qpsolution_sk + # ) + + #d["Structure"] = self.get_structure_view() + d["NcFile"] = self.sigeph.get_ncfile_view() + + if as_dict: return d + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) diff --git a/abipy/panels/structure.py b/abipy/panels/structure.py index 700f5cfba..f28a0ab4d 100644 --- a/abipy/panels/structure.py +++ b/abipy/panels/structure.py @@ -1,192 +1,638 @@ """"GUIs for structure.""" +from __future__ import annotations + +import os +import io import param import panel as pn +import numpy as np import panel.widgets as pnw import bokeh.models.widgets as bkw -from abipy.panels.core import AbipyParameterized +from abipy.core.structure import Structure +from abipy.panels.core import (AbipyParameterized, PanelWithStructure, dfc, mpl, ply, + depends_on_btn_click, Loading, add_mp_rest_docstring) +from abipy.tools.decorators import Appender + + +add_inp_docstring = Appender(""" +kprra (number of **k**-points per reciprocal atom) defines the **k**-mesh for electrons. +AbiPy automatically computes the variables [[ngkpt]], [[nshiftk]] and [[shiftk]] from kprra. +The pseudopotentials are taken from the [PseudoDojo project](http://www.pseudo-dojo.org/) +according to value of `XC type` and `Pseudos type` and recommended values for [[ecut]] +and [[pawecutdg]] and [[nband]] are automatically added to the input. -pn.config.js_files = { - '$': 'https://code.jquery.com/jquery-3.4.1.slim.min.js', - "clipboard": "https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js", -} +At the end of the page, there is a button to download a targz file with all the required input files. +""", indents=0) -class StructurePanel(AbipyParameterized): +def _make_targz_bytes(inp_or_multi, remove_dir=True): """ - Panel with widgets to interact with an AbiPy Structure + Return bytesIO with the targz file containing input and pseudos. """ - # Convert widgets. - output_format = pnw.Select(name="format", value="abinit", - options="abinit,cif,xsf,poscar,qe,siesta,wannier90,cssr,json".split(",")) - - # Spglib widgets - spglib_symprec = pnw.Spinner(name="symprec", value=0.01, start=0.0, end=None, step=0.01) - spglib_angtol = pnw.Spinner(name="angtol", value=5, start=0.0, end=None, step=1) - - # K-path widgets - kpath_format = pnw.Select(name="format", value="abinit", options=["abinit", "siesta", "wannier90"]) - line_density = pnw.Spinner(name="line density", value=10, step=5, start=0, end=None) - - # Viewer widgets. - viewer_btn = pnw.Button(name="View structure", button_type='primary') - viewer = pnw.Select(name="Viewer", value="vesta", - options=["vesta", "xcrysden", "vtk", "matplotlib", "mayavi"]) - - # Mp-match - mp_match_btn = pnw.Button(name="Connect to Materials Project", button_type='primary') - - # Mp-search - #mp_search_btn = pnw.Button(name="Connect to Materials Project", button_type='primary') - #mp_api_key - - # GS input generator widgets. - gs_input_btn = pnw.Button(name="Generate input", button_type='primary') - gs_type = pnw.Select(name="GS type", value="scf", options=["scf", "relax"]) - kppra = pnw.Spinner(name="kppra", value=1000, step=1000, start=0, end=None) - - label2mode = { - "unpolarized": 'unpolarized', - "polarized": 'polarized', - "anti-ferromagnetic": "afm", - "non-collinear with magnetism": "spinor", - "non-collinear, no magnetism": "spinor_nomag", - } - - spin_mode = pnw.Select(name="SpinMode", value="unpolarized", options=list(label2mode.keys())) - - def __init__(self, structure, **params): - super().__init__(**params) - self.structure = structure + targz_path = inp_or_multi.make_targz() + output = io.BytesIO() + with open(targz_path, "rb") as fh: + output.write(fh.read()) + output.seek(0) + + return output - @param.depends("output_format.value") + +class StructurePanel(PanelWithStructure): + """ + Panel with widgets to interact with an AbiPy Structure. + """ + + def __init__(self, structure: Structure, with_inputs: bool = True, **params): + """ + Args: + structure: |Structure| object. + with_inputs: True if tabs for generating input files should be shown. + """ + PanelWithStructure.__init__(self, structure=structure, **params) + + # Convert widgets. + self.output_format = pnw.Select(name="format", value="abinit", + options="abinit,cif,xsf,poscar,qe,siesta,wannier90,cssr,json".split(",")) + + # Spglib widgets + self.spglib_symprec = pnw.Spinner(name="symprec", value=0.01, start=0.0, end=None, step=0.01) + self.spglib_angtol = pnw.Spinner(name="angtol", value=5, start=0.0, end=None, step=1) + + # Abisanitize widgets + self.abisanitize_btn = pnw.Button(name="Run abisanitize", button_type='primary') + self.select_primitive = pnw.Select(name='Select primitive', + options=['primitive', 'primitive_standard', "no_primitive"]) + + # K-path widgets + self.kpath_format = pnw.Select(name="format", value="abinit", options=["abinit", "siesta", "wannier90"]) + self.line_density = pnw.Spinner(name="line density", value=10, step=5, start=0, end=None) + self.plot_kpath = pnw.Checkbox(name='Plot k-path', value=False) + + # MP-match + self.mp_match_btn = pnw.Button(name="Connect to Materials Project", button_type='primary') + + # MP-search + #mp_search_btn = pnw.Button(name="Connect to Materials Project", button_type='primary') + #mp_api_key + + # Widgets to control the generation of input files. + self.kppra = pnw.Spinner(name="kppra", value=1000, step=500, start=0, end=None) + self.smearing_type = pnw.Select(name="Smearing type", value=None, + options=[None, "gaussian", "fermi_dirac"]) + self.tsmear = pnw.Spinner(name="tsmear (Ha)", value=0.01, step=0.002, start=0.0, end=None) + + # TODO: nspinor 2 should trigger a check on the table. + from abipy.flowtk.psrepos import get_installed_repos_and_root + installed_repos, repos_root = get_installed_repos_and_root() + options = [repo.name for repo in installed_repos] + default_repo = "ONCVPSP-PBE-SR-PDv0.4" + default_repo = None if default_repo not in options else default_repo + self.repos_name = pnw.Select(name="PP repos", value=default_repo, options=options) + self.table_name = pnw.Select(name="Table name", value="standard", options=["standard", "stringent"]) + + # widgets for GS input generator + self.gs_type = pnw.Select(name="GS type", value="scf", options=["scf", "relax"]) + self.gs_input_btn = pnw.Button(name="Generate input", button_type='primary') + + # widgets for e-bands input generator. + self.ebands_input_btn = pnw.Button(name="Generate input", button_type='primary') + self.edos_kppra = pnw.Spinner(name="edos_kppra", value=0, step=500, start=0, end=None) + + # widgets for DFPT phonons input generator. + self.ph_input_btn = pnw.Button(name="Generate input", button_type='primary') + self.with_becs = pnw.Checkbox(name='BECS and epsilon_inf (semiconductors)', value=False) + #self.dfpt_ngqpt = pnw.LiteralInput(name='ngqpt (python list)', value=[None, None, None], type=list) + #self.dfpt_ngqpt = pnw.LiteralInput(name='ngqpt (python list)', value=[None, None, None], type=list) + + self.label2mode = { + "unpolarized": 'unpolarized', + "polarized": 'polarized', + "non-collinear SOC with magnetism": "spinor", + "non-collinear SOC, no magnetism": "spinor_nomag", + "collinear anti-ferromagnetic": "afm", + } + + self.spin_mode = pnw.Select(name="SpinMode", value="unpolarized", options=list(self.label2mode.keys())) + + @pn.depends("output_format.value") def convert(self): - return pn.Row(bkw.PreText(text=self.structure.convert(fmt=self.output_format.value)), - sizing_mode='stretch_width') + """Convert the input structure to one of the format selected by the user.""" + s = self.structure.convert(fmt=self.output_format.value) + return self.html_with_clipboard_btn(f"
     {s} 
    ") - @param.depends("spglib_symprec.value", "spglib_angtol.value") - def spglib_summary(self): + @pn.depends("spglib_symprec.value", "spglib_angtol.value") + def spglib_summary(self) -> pn.Row: + """Call spglib to find space group symmetries and Wyckoff positions.""" s = self.structure.spget_summary(symprec=self.spglib_symprec.value, angle_tolerance=self.spglib_angtol.value) return pn.Row(bkw.PreText(text=s, sizing_mode='stretch_width')) - @param.depends("kpath_format.value", "line_density.value") - def get_kpath(self): + @depends_on_btn_click('abisanitize_btn') + def on_abisanitize_btn(self) -> None: + """ + Returns a new structure in which: + + - Structure is refined. + - Reduced to primitive settings. + - Lattice vectors are exchanged if the triple product is negative + + **symprec**: + Symmetry precision used to refine the structure. + + **angle_tolerance**: + Tolerance on angles. + + **primitive**: + Returns most primitive structure found. + + **primitive_standard**: + Whether to convert to a primitive cell using the standards defined in Setyawan, W., & Curtarolo, S. (2010). + High-throughput electronic band structure calculations: Challenges and tools. + Computational Materials Science, 49(2), 299-312. doi:10.1016/j.commatsci.2010.05.010 + """ + primitive, primitive_standard = False, False + if self.select_primitive.value in ('primitive', 'primitive_standard'): + primitive = True + primitive_standard = self.select_primitive.value == 'primitive_standard' + else: + assert self.select_primitive.value == "no_primitive" + + #print("primitive", primitive, "primitive_standard", primitive_standard) + s = self.structure.abi_sanitize(symprec=self.spglib_symprec.value, + angle_tolerance=self.spglib_angtol.value, + primitive=primitive, primitive_standard=primitive_standard) + + return pn.Row( + pn.Column("## Input Structure:", bkw.PreText(text=str(self.structure), sizing_mode='stretch_width')), + pn.Column("## Sanitized:", bkw.PreText(text=str(s), sizing_mode='stretch_width')), + sizing_mode='stretch_width') + + @pn.depends("kpath_format.value", "line_density.value") + def get_kpath(self) -> pn.Column: + """ + Generate high-symmetry k-path from input structure in the ABINIT format. + """ + col = pn.Column(sizing_mode='stretch_width'); ca = col.append + s = self.structure.get_kpath_input_string(fmt=self.kpath_format.value, line_density=self.line_density.value) - return pn.Row(bkw.PreText(text=s, sizing_mode='stretch_width')) - - @param.depends("viewer_btn.clicks") - def view(self): - if self.viewer_btn.clicks == 0: return - #return self.structure.nglview() - #return self.structure.crystaltoolkitview() - #import nglview as nv - #view = nv.demo(gui=False) - - #view = self.structure.get_jsmol() - #from ipywidgets_bokeh import IPyWidget - #view = IPyWidget(view) - #from IPython.display import display - #display(view) - #view = pn.ipywidget(view) - #return pn.Row(view) - - #from bokeh.models import ColumnDataSource - #from bokeh.io import show, curdoc - #from bokeh.models.widgets import Button, TextInput - #from bokeh.layouts import layout, widgetbox - #from jsmol_bokeh_extension import JSMol - #script_source = ColumnDataSource() - - #info = dict( - # height="100%", - # width="100%", - # serverURL="https://chemapps.stolaf.edu/jmol/jsmol/php/jsmol.php", - # use="HTML5", - # j2sPath="https://chemapps.stolaf.edu/jmol/jsmol/j2s", - # script= - # "background black;load https://chemapps.stolaf.edu/jmol/jsmol-2013-09-18/data/caffeine.mol", - #) - - #applet = JSMol( - # width=600, - # height=600, - # script_source=script_source, - # info=info, - #) - - #button = Button(label='Execute') - #inp_script = TextInput(value='background white;') - - #def run_script(): - # script_source.data['script'] = [inp_script.value] - - #button.on_click(run_script) - #ly = layout([applet, widgetbox(button, inp_script)]) - #show(ly) - #curdoc().add_root(ly) - - return pn.Row(applet) - - return self.structure.visualize(appname=self.viewer.value) - - @param.depends("gs_input_btn.clicks") - def on_gs_input_btn(self): - if self.gs_input_btn.clicks == 0: return + ca(self.html_with_clipboard_btn(f"
     {s} 
    ")) + + if self.plot_kpath.value: + # FIXME: I don't know why but these calls open in a new tab. + ca("## Brillouin zone and **k**-path:") + kpath_pane = ply(self.structure.plotly_bz(pmg_path=True, show=False), with_divider=False) + df_kpts = dfc(self.structure.hsym_kpoints.get_highsym_datataframe(), with_divider=False) + ca(pn.Row(kpath_pane, df_kpts)) + ca(pn.layout.Divider()) + + return col + + def _get_pseudos_ecut_pawecutdg(self) -> tuple: + #from abipy.data.hgh_pseudos import HGH_TABLE + #return HGH_TABLE + from abipy.flowtk.psrepos import get_repo_from_name + repo = get_repo_from_name(self.repos_name.value) + pseudos = repo.get_pseudos(self.table_name.value) + ecut = 0 + pawecutdg = 0 + + for p in pseudos: + hint = p.hint_for_accuracy(accuracy="normal") + ecut = max(ecut, hint.ecut) + pawecutdg = max(pawecutdg, hint.pawecutdg) + + return pseudos, ecut, pawecutdg + + def _get_smearing(self): + smearing = None + if self.smearing_type.value is not None: + smearing = "%s:%s Ha" % (self.smearing_type.value, self.tsmear.value) + return smearing + + def _finalize(self, inp_or_multi, header=None, validate=False): + + # TODO chksymbreak should be set to 0 else Abinit may stop. + if validate: + if inp_or_multi.is_input: + this = inp_or_multi.deepcopy() + this.pop_vars("pseudos") + v = this.abivalidate() + v_list = [v] + else: + this = inp_or_multi.deepcopy() + this.pop_vars("pseudos") + v_list = this.abivalidate() + + count = 0 + for v in v_list: + if v.retcode != 0: + count += 1 + print(v.stderr_file.read()) + print(v.log_file.read()) + if count != 0: raise RuntimeError("") + + # Here we replace the absolute paths with their basenames + # so that we can create a targz file with the pseudos + # We do it at this level because absolute paths are needed for executing abinit. + inp_or_multi.set_vars(pseudos='"%s"' % ", ".join(p.basename for p in inp_or_multi.pseudos)) + + html = self.html_with_clipboard_btn(inp_or_multi._repr_html_()) + + pseudos = inp_or_multi.pseudos + nspinor = inp_or_multi.get("nspinor", 1) + if nspinor == 2 and any(not p.supports_soc for p in pseudos): + raise RuntimeError("The pseudopotential table selected does not support calculations with SOC!") + + def download_input(): + return _make_targz_bytes(inp_or_multi) + + file_download = pnw.FileDownload(filename="input.tar.gz", callback=download_input) + + alert = pn.pane.Alert( """ +This input file has been automatically generated by AbiPy. +Several input parameters have **default values** that might not be suitable for your particular calculation. +Please check the input variables and modify them according to your needs. + +Also note that running big calculations with lot of datasets is not the most efficient approach. +Examples of AbiPy scripts to automate calculations without datasets are available +[at this page](https://abinit.github.io/abipy/flow_gallery/index.html). +""", alert_type="danger") + + items = [html, file_download, pn.layout.Divider(), alert] + if header: items.insert(0, header) + + return pn.Column(*items, sizing_mode="stretch_width") + + def get_gs_input(self) -> AbinitInput: + """ + Return an AbinitInput for GS calculation from the parameters selected via the widgets. + """ from abipy.abio.factories import gs_input - from abipy.data.hgh_pseudos import HGH_TABLE + pseudos, ecut, pawecutdg = self._get_pseudos_ecut_pawecutdg() + + gs_inp = gs_input(structure=self.structure, + pseudos=pseudos, + kppa=self.kppra.value, + ecut=ecut, + pawecutdg=pawecutdg, + spin_mode=self.label2mode[self.spin_mode.value], + smearing=self._get_smearing(), + charge=0.0, + ) - gs_inp = gs_input( - self.structure, HGH_TABLE, kppa=self.kppra.value, ecut=8, - spin_mode=self.label2mode[self.spin_mode.value], - smearing=None) + gs_inp.set_mnemonics(False) gs_inp.pop_vars(("charge", "chksymbreak")) - gs_inp.set_vars(ecut="?? # depends on pseudos", nband="?? # depends on pseudos") + + # TODO: ecut, .... + #gs_inp.set_vars(#ecut="?? # depends on pseudos", + # #nband="?? # depends on pseudos", + # pseudos='"%s"' % ", ".join(p.basename for p in gs_inp.pseudos), + # ) + + return gs_inp + + @depends_on_btn_click('gs_input_btn') + @add_inp_docstring + def on_gs_input_btn(self): + """ + This Tab provides widgets to generate a minimalistic ABINIT input file + for ground-state calculations or structural relaxations. + In the case of relaxation runs, the following variables are automatically added: + + [[optcell]] = 2, [[ionmov]] = 2, [[ecutsm]] = 0.5 and [[dilatmx]] = 1.05. + """ + gs_inp = self.get_gs_input() if self.gs_type.value == "relax": gs_inp.set_vars(optcell=2, ionmov=2, ecutsm=0.5, dilatmx=1.05) - gs_inp.set_mnemonics(False) - return """ - -
    %s
    -""" % gs_inp._repr_html_() - - @param.depends("mp_match_btn.clicks") + return self._finalize(gs_inp) + + @depends_on_btn_click('ebands_input_btn') + @add_inp_docstring + def on_ebands_input_btn(self): + """ + This Tab provides widgets to generate a minimalistic ABINIT input file + for band structure calculations. + The first dataset performs a GS run to obtain the density file. + The second dataset reads the DEN file and performs a NSCF calculation on + a high-symmetry **k**-path generated automatically according to the input structure. + [[ndivsm]] and [[kptbounds]] + + Optionally, one can add a third dataset to compute the e-DOS via a NSCF run on a + much denser **k**-mesh. + """ + from abipy.abio.factories import ebands_input + + dos_kppa = self.edos_kppra.value + if dos_kppa == 0.0: dos_kppa = None + pseudos, ecut, pawecutdg = self._get_pseudos_ecut_pawecutdg() + + multi = ebands_input(structure=self.structure, + pseudos=pseudos, + kppa=self.kppra.value, + nscf_nband=None, + ndivsm=10, + ecut=ecut, + pawecutdg=pawecutdg, + scf_nband=None, + spin_mode=self.label2mode[self.spin_mode.value], + smearing=self._get_smearing(), + charge=0.0, + dos_kppa=dos_kppa, + ) + + # Add getwfk variables. + for inp in multi[1:]: + inp["getwfk"] = 1 + + multi.pop_vars(("charge", "chksymbreak")) + #multi.set_vars(#ecut="?? # depends on pseudos", + # #nband="?? # depends on pseudos", + # ) + + return self._finalize(multi) + + @depends_on_btn_click('ph_input_btn') + @add_inp_docstring + def on_ph_input_btn(self): + """ + This Tab provides widgets to generate a minimalistic ABINIT input file + for the DFPT computation of phonons, Born effective charges (BECS) + and macroscopic dieletric tensors. + """ + from abipy.abio.factories import phonons_from_gsinput + + gs_inp = self.get_gs_input() + ngkpt = np.array(gs_inp["ngkpt"]) + + # TODO Find an easy way to specify the q-mesh. + # Use ngqpt a la Samuel? + ph_ngqpt = [2, 2, 2] + #ph_nqpt = qscale * ngkpt + #any(ngkp % ph_ngqpt != 0): + + qpoints = gs_inp.abiget_ibz(ngkpt=ph_ngqpt, shiftk=[0, 0, 0], kptopt=1).points + + ndtset = 1 + len(qpoints) + qstart = 1 + with_becs = self.with_becs.value + if with_becs: + # Account for the DDK (2nd dataset) + ndtset += 1 + qstart = 2 + + multi = gs_inp.replicate(ndtset) + + if with_becs: + ddk_input = multi[qstart - 1] + ddk_input.set_vars( + rfelfd=2, # only the derivative of ground-state wavefunctions with respect to k + rfdir=[1, 1, 1], + nqpt=1, + qpt=(0, 0, 0), + kptopt=2, # 2 to take into account time-reversal symmetry. + iscf=-3, # The d/dk perturbation must be treated in a non-self-consistent way + getwfk=1, + comment="Response Function calculation: d/dk", + ) + ddk_input.pop_tolerances() + ddk_input.set_vars(tolwfr=1.0e-22) + + for qpt, ph_input in zip(qpoints, multi[qstart:]): + is_gamma = np.sum(qpt ** 2) < 1e-12 + #if with_becs and is_gamma: continue + ph_input.set_vars( + kptopt=2 if is_gamma else 3, # use time-reversal if Gamma + rfphon=1, # Will consider phonon-type perturbation + nqpt=1, # One wavevector is to be considered + qpt=qpt, # q-wavevector. + rfatpol=[1, len(gs_inp.structure)], + rfdir=[1, 1, 1], + getwfk=1, + rfelfd=3 if (with_becs and is_gamma) else None, + getddk=2 if (with_becs and is_gamma) else None, + prtwf=-1, + comment="Input file for PH calculation with DFPT.", + ) + ph_input.pop_tolerances() + ph_input.set_vars(tolvrs=1.0e-10) + + header = f""" +## BZ sampling + +- k-mesh for electrons: {ngkpt} +- qmesh for phonons: {ph_ngqpt} +""" + + #multi = phonons_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, with_ddk=True, + # with_dde=True, with_bec=False, + # ph_tol=None, ddk_tol=None, dde_tol=None, wfq_tol=None, + # qpoints_to_skip=None, manager=None) + + # Add getwfk variables. + #for inp in multi[1:]: + # inp["getwfk"] = 1 + + #multi.pop_vars(("charge", "chksymbreak")) + #multi.set_vars(#ecut="?? # depends on pseudos", + # #nband="?? # depends on pseudos", + # pseudos='"%s"' % ", ".join(p.basename for p in multi.pseudos), + # ) + + return self._finalize(multi, header=header) + + @depends_on_btn_click('mp_match_btn', show_shared_wdg_warning=False) + @add_mp_rest_docstring def on_mp_match_btn(self): - if self.mp_match_btn.clicks == 0: return - from abipy.core.structure import mp_match_structure - mp = mp_match_structure(self.structure, api_key=None, endpoint=None, final=True) + """ + Match your structure with the ones available in the MP database. + Produce table with lattice parameters and space group info. + """ + mp = self.structure.mp_match() if not mp.structures: - raise RuntimeError("No structure found in MP database") + return pn.Column("## No structure found in the MP database") - return pn.Column(self._df(mp.lattice_dataframe), sizing_mode='stretch_width') + return pn.Column(dfc(mp.lattice_dataframe, transpose=True), + sizing_mode='stretch_width') - #@param.depends("mp_search_btn.clicks") + #@depends_on_btn_click('mp_search_btn') #def on_mp_search_btn(self): - # if self.mp_search_btn.clicks == 0: return # from abipy.core.structure import mp_search # chemsys_formula_id = self.stucture.formula # mp = mp_search(chemsys_formula_id, api_key=None, endpoint=None, final=True) # if not mp.structures: # raise RuntimeError("No structure found in MP database") - # return pn.Column(self._df(mp.lattice_dataframe), sizing_mode='stretch_width') + # return pn.Column(dfc(mp.lattice_dataframe), sizing_mode='stretch_width') + + def get_panel(self, with_inputs=True, as_dict=False, **kwargs): + """ + Build panel with widgets to interact with the structure either in a notebook or in a bokeh app. + + Args: + with_inputs: True if tabs for generating input files should be shown. + """ + d = dict() + + d["Summary"] = self.get_summary_view_for_abiobj(self.structure) + d["Viewer"] = self.get_structure_view() + d["Spglib"] = pn.Row( + self.pws_col(['## Spglib options', + "spglib_symprec", "spglib_angtol", + ]), + self.spglib_summary + ) + d["AbiSanitize"] = pn.Row( + self.pws_col(['## Spglib options', + "spglib_symprec", "spglib_angtol", "select_primitive", "abisanitize_btn", + pn.layout.Divider(), + ]), + self.on_abisanitize_btn + ) + d["Kpath"] = pn.Row( + self.pws_col(['## K-path options', + "kpath_format", "line_density", "plot_kpath", + ]), + self.get_kpath + ) + d["Convert"] = pn.Row( + self.pws_col(["## Convert structure", "output_format", + ]), + self.convert + ) + + + if with_inputs: + # Add tabs to generate inputs from structure. + d["GS-input"] = pn.Row( + self.pws_col(['## Generate GS input', + "gs_type", "spin_mode", "kppra", "smearing_type", "tsmear", + "repos_name", "table_name", + "gs_input_btn", + ]), + self.on_gs_input_btn + ) + + d["Ebands-input"] = pn.Row( + self.pws_col(['## Generate Ebands input', + "spin_mode", "kppra", "edos_kppra", "smearing_type", "tsmear", + "repos_name", "table_name", + "ebands_input_btn", + ]), + self.on_ebands_input_btn + ) + d["PH-input"] = pn.Row( + self.pws_col(['## Generate phonon input', + "spin_mode", "kppra", "smearing_type", "tsmear", + "with_becs", + "repos_name", "table_name", + "ph_input_btn", + ]), + self.on_ph_input_btn + ) + + d["MP-match"] = pn.Column(self.on_mp_match_btn, + pn.layout.Divider(), + pn.Row(self.mp_match_btn, align="center"), + sizing_mode="stretch_width") + + if as_dict: return d + + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) + + +class InputFileGenerator(AbipyParameterized): + + abi_sanitize = param.Boolean(True, doc="Sanitize structure") + + info_str = """ +Generate ABINIT input files for performing basic: + + - GS calculations + - NSCF band structure calculations + - DFPT calculations for phonons including Born effective charges and dielectric constant + +starting from a crystalline structure provided by the user either via an external file +or through the Materials Project identifier (*mp-id*). +""" + + def __init__(self, **params): + + super().__init__(**params) + + # Spglib widgets + #self.spglib_symprec = pnw.Spinner(name="symprec", value=0.01, start=0.0, end=None, step=0.01) + #self.spglib_angtol = pnw.Spinner(name="angtol", value=5, start=0.0, end=None, step=1) + + help_md = pn.pane.Markdown(f""" +## Description + +{self.info_str} +""") + + self.main_area = pn.Column(help_md, + self.get_alert_data_transfer(), + sizing_mode="stretch_width") + + self.file_input = pnw.FileInput(height=60, css_classes=["pnx-file-upload-area"]) + self.file_input.param.watch(self.on_file_input, "value") + + self.mpid_input = pnw.TextInput(name='mp-id', placeholder='Enter e.g. mp-149 for Silicon and press ⏎') + self.mpid_input.param.watch(self.on_mpid_input, "value") + self.mpid_err_wdg = pn.pane.Markdown("") + + def _set_structure(self, structure): + if self.abi_sanitize: + structure = structure.abi_sanitize(symprec=1e-3, angle_tolerance=5, + primitive=True, primitive_standard=False) + self.input_structure = structure + + def on_file_input(self, event): + self.mpid_err_wdg.object = "" + #print("filename", self.file_input.filename) + if self.file_input.value is None: return None + #print("value", self.file_input.value) + import tempfile + workdir = tempfile.mkdtemp() + + fd, tmp_path = tempfile.mkstemp(suffix=self.file_input.filename) + with open(tmp_path, "wb") as fh: + fh.write(self.file_input.value) + + self._set_structure(Structure.from_file(tmp_path)) + + os.remove(tmp_path) + self.update_main_area() + + def on_mpid_input(self, event): + with Loading(self.mpid_input, err_wdg=self.mpid_err_wdg): + self._set_structure(Structure.from_mpid(self.mpid_input.value)) + + self.update_main_area() + + def update_main_area(self): + with Loading(self.main_area): + d = self.input_structure.get_panel(as_dict=True) + d = {k: d[k] for k in ("GS-input", "Ebands-input", "PH-input", "Summary")} + tabs = pn.Tabs(*d.items()) + self.main_area.objects = [tabs] def get_panel(self): - """Build panel with widgets to interact with the structure either in a notebook or in a bokeh app""" - tabs = pn.Tabs(); app = tabs.append - ws = pn.Column('# Spglib options', self.spglib_symprec, self.spglib_angtol) - app(("Spglib", pn.Row(ws, self.spglib_summary))) - ws = pn.Column('# K-path options', self.kpath_format, self.line_density) - app(("Kpath", pn.Row(ws, self.get_kpath))) - app(("Convert", pn.Row(pn.Column("# Convert structure", self.output_format), self.convert))) - app(("View", pn.Row(pn.Column("# Visualize structure", self.viewer, self.viewer_btn), self.view))) - ws = pn.Column('# Generate GS input', self.gs_type, self.spin_mode, self.kppra, self.gs_input_btn) - app(("GS-input", pn.Row(ws, self.on_gs_input_btn))) - app(("MP-match", pn.Row(pn.Column(self.mp_match_btn), self.on_mp_match_btn))) - - #return tabs - return pn.Column(tabs, pn.pane.HTML("")) + col = pn.Column( + "## Upload (or drag & drop) **any file** with a structure (*.nc*, *.abi*, *.cif*, *.xsf*, *POSCAR*):", + self.get_fileinput_section(self.file_input), + "## or get the structure from the [Materials Project](https://materialsproject.org/) database:", + pn.Row(self.mpid_input, pn.Column(self.mpid_err_wdg)), + "## Invoke abi_sanitize to refine structure", + self.param.abi_sanitize, + sizing_mode="stretch_width") + + main = pn.Column(col, self.main_area, sizing_mode="stretch_width") + cls, kwds = self.get_abinit_template_cls_kwds() + + return cls(main=main, title="Input File Generator", **kwds) diff --git a/abipy/panels/tasks.py b/abipy/panels/tasks.py new file mode 100644 index 000000000..91f8a0286 --- /dev/null +++ b/abipy/panels/tasks.py @@ -0,0 +1,119 @@ +"""Panels to interact with the AbiPy tasks.""" +from __future__ import annotations + +import panel as pn +#import panel.widgets as pnw + +from abipy.panels.viewers import AceViewer +#from abipy.panels.core import mpl, ply, dfc, depends_on_btn_click, Loading +from abipy.panels.nodes import NodeParameterized +from abipy.flowtk.tasks import AbinitTask + + +class TaskPanel(NodeParameterized): + """ + Provides widgets to interact with an AbiPy Task. + """ + + def __init__(self, task: AbinitTask, **params): + NodeParameterized.__init__(self, node=task, **params) + self.task = task + + #self.structures_btn = pnw.Button(name="Show Structures", button_type='primary') + #self.structures_io_checkbox = pnw.CheckBoxGroup( + # name='Input/Output Structure', value=['output'], options=['input', 'output'], inline=Tru + + def get_inputs_view(self): + """ + Show the input files of the task: input file, submission script and TaskManager + """ + file = self.task.job_file + text = file.read() if file.exists else "Cannot find job_file!" + job_file = pn.pane.Markdown(f"```shell\n{text}\n```") + + from .viewers import JSONViewer + json_view = JSONViewer(self.task.manager.as_dict()) + + def card(title, *items, collapsed=True): + return pn.Card(*items, + title=title, + collapsed=collapsed, + sizing_mode="stretch_width", + header_color="blue", + #header_background="blue", + ) + + return pn.Column( + f"## Input files of `{repr(self.task)}`", + card("Input file", self.html_with_clipboard_btn(self.task.input), collapsed=False), + pn.layout.Divider(), + card("Submission script", job_file), + pn.layout.Divider(), + card("TaskManager", json_view), + pn.layout.Divider(), + sizing_mode="stretch_width", + ) + + def get_errs_view(self): + """ + Show the error files of the task + Return None if no error is found so that we don't show this view in the GUI. + """ + col = pn.Column(sizing_mode="stretch_width"); cext = col.extend + + count = 0 + for fname in ("stderr_file", "mpiabort_file", "qerr_file", "qout_file"): + file = getattr(self.task, fname) + if file.exists: + text = file.read().strip() + if text: + cext([f"## {fname}", + pn.pane.Markdown(f"```shell\n{text}\n```"), + pn.layout.Divider() + ]) + count += 1 + + return col if count > 0 else None + + def get_main_text_outs_view(self) -> pn.Column: + """ + Show the main text output files of the task. + """ + col = pn.Column(f"## Main output and log file of `{repr(self.task)}`", + sizing_mode="stretch_width") + + for fname in ("output_file", "log_file"): + file = getattr(self.task, fname) + col.append(AceViewer(file.path)) + + return col + + #@depends_on_btn_click("structures_btn") + #def on_structures_btn(self): + # what = "" + # if "input" in self.structures_io_checkbox.value: what += "i" + # if "output" in self.structures_io_checkbox.value: what += "o" + # dfs = self.flow.compare_structures(nids=self.nids, + # what=what, + # verbose=self.verbose, with_spglib=False, printout=False, + # with_colors=False) + + # return pn.Row(dfc(dfs.lattice), sizing_mode="scale_width") + + def get_panel(self, as_dict=False, **kwargs): + """Return tabs with widgets to interact with the flow.""" + d = dict() + + # This stuff is computed lazyly when the tab is activated. + d["Inputs"] = self.get_inputs_view() + d["Output"] = self.get_main_text_outs_view() + view = self.get_errs_view() + if view is not None: d["ErrFiles"] = view + + super_d = super().get_panel(as_dict=True) + d.update(super_d) + ##d["Structures"] = pn.Row(pn.Column(self.structures_io_checkbox, self.structures_btn), self + + if as_dict: return d + + return self.get_template_from_tabs(d, template=kwargs.get("template", None)) \ No newline at end of file diff --git a/abipy/panels/viewers.py b/abipy/panels/viewers.py new file mode 100644 index 000000000..bdff53a66 --- /dev/null +++ b/abipy/panels/viewers.py @@ -0,0 +1,73 @@ +"""Viewer objects.""" +from __future__ import annotations + +import os +#import param +import panel as pn +import panel.widgets as pnw + +from panel.viewable import Viewer + + +class AceViewer(Viewer): + + def __init__(self, filepath: str, theme="terminal", height=1200, **params): + self.filepath = filepath + super().__init__(**params) + + basename = os.path.basename(filepath) + self.open_btn = pnw.Button(name=f"Open {basename}", button_type='primary') + self.open_btn.on_click(self.open_ace_editor) + + self.ace = pnw.CodeEditor(language='text', readonly=True, theme=theme, + sizing_mode='stretch_width', height=height, visible=False) + + self.controls = pn.Card(self.ace.param.height, self.ace.param.theme, self.ace.param.visible, + title="ACE controls", collapsed=True) + + self.layout = pn.Column(f"## File: {filepath}", + pn.Row(self.open_btn, self.controls), + self.ace, + pn.layout.Divider(), + sizing_mode="stretch_width") + + def open_ace_editor(self, event) -> None: + self.ace.visible = True + self.ace.value = open(self.filepath, "rt").read() + self.open_btn.name = "Reopen %s" % os.path.basename(self.filepath) + + def __panel__(self): + return self.layout + + +class JSONViewer(Viewer): + + def __init__(self, dictionary, theme="dark", hover_preview=True, depth=2, **params): + + super().__init__(**params) + + self.json = pn.pane.JSON(dictionary, + depth=depth, # -1 for full expansion + hover_preview=hover_preview, + theme=theme, + sizing_mode="stretch_width", + ) + + self.controls = pn.Card(self.json.param.depth, + self.json.param.hover_preview, + self.json.param.theme, + self.json.param.visible, + title="JSON controls", + collapsed=True, + #header_color="black", + #header_background="CornflowerBlue", + ) + + #self.controls = pn.Card(self.json.controls(jslink=True), title="JSON controls", collapsed=True) + + self.layout = pn.Column(self.controls, + self.json, + sizing_mode="stretch_width") + + def __panel__(self): + return self.layout diff --git a/abipy/panels/works.py b/abipy/panels/works.py new file mode 100644 index 000000000..8a2c4f964 --- /dev/null +++ b/abipy/panels/works.py @@ -0,0 +1,24 @@ +""""Panels to interact with the AbiPy tasks.""" +from __future__ import annotations + +import param +import panel as pn +import panel.widgets as pnw + +from abipy.panels.core import mpl, ply, dfc, depends_on_btn_click +from abipy.panels.nodes import NodeParameterized + + +class WorkPanel(NodeParameterized): + """ + Panel to interact with an AbiPy Work + """ + + def __init__(self, work, **params): + NodeParameterized.__init__(self, node=work, **params) + self.work = work + + #def get_panel(self, as_dict=False, **kwargs): + # """Return tabs with widgets to interact with the flow.""" + + # return super().get_panel(as_dict=as_dict, **kwargs) diff --git a/abipy/ppcodes/__init__.py b/abipy/ppcodes/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/abipy/ppcodes/base_parser.py b/abipy/ppcodes/base_parser.py new file mode 100644 index 000000000..0408c04e4 --- /dev/null +++ b/abipy/ppcodes/base_parser.py @@ -0,0 +1,58 @@ +# coding: utf-8 +""" +Base class for parsers +""" +from __future__ import annotations + +import abc +import os + + +class ParserError(Exception): + """Exceptions raised by Parser objects.""" + + +class BaseParser(metaclass=abc.ABCMeta): + """ + Abstract class defining the interface that must be provided + by the parsers used to extract results from the output file of + a pseudopotential generator a.k.a. ppgen + + Attributes: + + errors: List of strings with errors reported by the pp generator + warnings: List of strings with the warnings reported by the pp generator. + """ + + Error = ParserError + + def __init__(self, filepath: str) -> None: + self.filepath = os.path.abspath(filepath) + self.workdir = os.path.abspath(os.path.dirname(filepath)) + self.run_completed = False + self._errors = [] + self._warnings = [] + + @property + def errors(self) -> list[str]: + """ + List of strings with possible errors reported by the generator at run-time. + """ + return self._errors + + @property + def warnings(self) -> list[str]: + """ + List of strings with possible errors reported by the generator at run-time. + """ + return self._warnings + + @abc.abstractmethod + def get_results(self) -> dict: + """ + Return the most important results in a dictionary. + """ + + @abc.abstractmethod + def get_input_str(self) -> str: + """Returns a string with the input file.""" diff --git a/abipy/ppcodes/oncv_parser.py b/abipy/ppcodes/oncv_parser.py new file mode 100644 index 000000000..99a3fe394 --- /dev/null +++ b/abipy/ppcodes/oncv_parser.py @@ -0,0 +1,1011 @@ +# coding: utf-8 +""" +Classes and functions for parsing the ONCVPSP output file and plotting the results. +""" +from __future__ import annotations + +import os +import re +import tempfile +import numpy as np +import pandas as pd + +from collections import namedtuple, defaultdict +from typing import Union, Any +from dataclasses import dataclass +from monty.functools import lazy_property +from monty.collections import AttrDict, dict2namedtuple +from monty.termcolor import colored +from abipy.core.atom import NlkState, RadialFunction, RadialWaveFunction, l2char +from abipy.ppcodes.base_parser import BaseParser + + +# Object returned by self._grep +GrepResults = namedtuple("GrepResults", "data, start, stop") + +# Used to store ae and pp quantities (e.g wavefunctions) in a single object. +AePsNamedTuple = namedtuple("AePsNamedTuple", "ae, ps") + +ConvData = namedtuple("ConvData", "l energies values") + +AtanLogDer = namedtuple("AtanLogDer", "l, energies, values") + + +@dataclass +class AtomicLevel: + """ + Stores the energy levels of the AE isolated atom. + """ + nlk: NlkState + eig: float + occ: float + is_valence: bool + + + +class OncvParser(BaseParser): + """ + Object to read and extract data from the output file of oncvpsp. + + Attributes: + atsym + Z + nc + nv + iexc + psfile + + Example: + + parser = OncvParser(filename).scan() + + # To access data: + parser.radial_wavefunctions + + # To plot data with matplotlib. + p = parser.get_plotter() + p.plot_atanlogder_econv() + + """ + # TODO Improve fully-relativistic case. + + def scan(self, verbose: int = 0) -> OncvParser: + """ + Scan the output file, set `run_completed` attribute. + + Raises: self.Error if invalid file. + """ + try: + self._scan(verbose=verbose) + except Exception as exc: + raise self.Error(f"Exception while parsing: {self.filepath}") from exc + + #if not self.run_completed: + # cprint("oncvpsp output is not completed. Exiting", "red") + # return 1 + + #if self.errors: + # lines.append(f"# ERRORS ({len(self.errors)})") + # lines.extend([colored(s, "red") for s in self.errors]) + + return self + + @property + def is_metapsp(self): + return self.generator_type == "METAPSP" + + @property + def is_oncvpsp(self): + return self.generator_type == "ONCVPSP" + + def _scan(self, verbose: int = 0) -> OncvParser: + + if not os.path.exists(self.filepath): + raise self.Error(f"File {self.filepath} does not exist") + + # Read data and store it in lines + self.lines = [] + import io + with io.open(self.filepath, "rt", encoding="latin-1") as fh: + for i, line in enumerate(fh): + if i == 0: + self.generator_type = line.split()[0] + assert self.generator_type in ("ONCVPSP", "METAPSP") + + if self.generator_type == "METAPSP": + if i == 1: continue + + #print(f"{i=}: {line=}") + line = line.strip() + self.lines.append(line) + + if verbose and line.startswith("fcfact*="): + print(line) + + if line.startswith("DATA FOR PLOTTING"): + self.run_completed = True + + # lines that contain the word ERROR but do not seem to indicate an actual teminating error + acceptable_error_markers = [ + 'run_config: ERROR for fully non-local PS atom,' + ] + + if "ERROR" in line: + # Example: + # test_data: must have fcfact>0.0 for icmod= 1 + # ERROR: test_data found 1 errors; stopping + if line in acceptable_error_markers: + self._warnings.append("\n".join(self.lines[i-1:i+1])) + else: + self._errors.append("\n".join(self.lines[i-1:i+1])) + + if "WARNING" in line: + self._warnings.append("\n".join(self.lines[i:i+2])) + + if "GHOST(+)" in line: + # Testing for highly-localized positive-energy ghosts + # l /rc E Basis Diag. E Cutoff + + # 0 0.304263 4.808940 86.65 WARNING - GHOST(+) + self._warnings.append(line) + + if "GHOST(-)" in line: + self._errors.append(line) + + # Get gendate, calc_type and version + # scalar-relativistic version 2.1.1, 03/26/2014 + # scalar-relativistic version 3.0.0 10/10/2014 + toks = self.lines[1].replace(",", " ").split() + self.gendate = toks.pop(-1) + self.calc_type, self.version = toks[0], toks[2] + if self.is_metapsp: + if self.calc_type == "alpha": self.calc_type = "scalar-relativistic" + + #print(self.version) + self.major_version, self.minor_version, self.patch_level = tuple(map(int, self.version.split(".")))[:3] + #print(f"{self.major_version=}, {self.minor_version=}, {self.patch_level=}") + + # Read configuration (not very robust because we assume the user didn't change the template but oh well) + + # Also, handle atom with z > 100 in which atsym and z are not separated by white space e.g. + # + # atsym z nc nv iexc psfile + # Rf104.00 10 8 4 both + + header = "# atsym z nc nv iexc psfile" + for i, line in enumerate(self.lines): + + if line.startswith("# atsym"): + values = self.lines[i + 1].split() + if len(values) != 6: + # Rf104.00 10 8 4 both + l = values.pop(0) + atmsym, z = l[0:2], l[2:] + values.insert(0, z) + values.insert(0, atmsym) + #print(values) + + keys = header[1:].split() + # assert len(keys) == len(values) + # Store values in self. + for k, v in zip(keys, values): + # Convert nc and nv to int. + if k in ("nc", "nv", "iexc"): v = int(v) + if k in ("z", ): v = float(v) + setattr(self, k, v) + break + + # Parse pseudization options for the local part. + header = "# lloc, lpopt, rc(5), dvloc0" + self.rc5 = None + for i, line in enumerate(self.lines): + if line.startswith(header): + tokens = self.lines[i + 1].split() + #print("tokens", tokens) + self.lloc = int(tokens[0]) + self.lptopt = int(tokens[1]) + self.rc5 = float(tokens[2]) + self.dvloc0 = float(tokens[3]) + break + + if self.rc5 is None: + raise self.Error(f"Cannot find magic line starting with `{header}` in: {self.filepath}") + + # Parse ATOM and Reference configuration. Example: + """ + # + # n l f energy (Ha) + 1 0 2.00 -6.5631993D+01 + 2 0 2.00 -5.1265474D+00 + 2 1 6.00 -3.5117357D+00 + 3 0 2.00 -3.9736459D-01 + 3 1 2.00 -1.4998149D-01 + + full rel + in version 4, there no difference between FR and SR + in version 3, the FR version has: + + # n l f energy (Ha) + # n l f l+1/2 l-1/2 + 1 0 2.00 -2.4703720D+03 + 2 0 2.00 -4.2419865D+02 + + """ + if self.is_metapsp: + header = "# n l f MGGA eval (Ha) PBE delta" + + else: + if self.relativistic and self.major_version <= 3: + header = "# n l f l+1/2 l-1/2" + else: + header = "# n l f energy (Ha)" + + nc, nv = self.nc, self.nv + + self.atomic_levels = [] + + def parse_eigs(str_list): + """Convert string to float taking into account Fortran numbers in scientific notation.""" + return [float(s.replace("D+", "E+").replace("D-", "E-")) for s in tokens[3:]] + + for i, line in enumerate(self.lines): + if line.startswith(header): + # Parse core levels + beg, is_valence = i + 1, False + for c in range(nc): + tokens = self.lines[beg+c].split() + n, l, f = tokens[:3] + n, l, f = int(n), int(l), float(f) + eigs = parse_eigs(tokens[3:]) + + if not self.relativistic: + nlk = NlkState(n=n, l=l, k=None) + self.atomic_levels.append(AtomicLevel(nlk, eigs[0], f, is_valence)) + else: + kpa_list = [1, 2] if l != 0 else [1] + for ik, kpa in enumerate(kpa_list): + nlk = NlkState(n=n, l=l, k=kpa) + self.atomic_levels.append(AtomicLevel(nlk, eigs[ik], f, is_valence)) + + # Parse valence levels + beg, is_valence = i + nc + 1, True + for v in range(nv): + #print("lines[beg+v]", self.lines[beg+v]) + tokens = self.lines[beg+v].split() + n, l, f = tokens[:3] + n, l, f = int(n), int(l), float(f) + eigs = parse_eigs(tokens[3:]) + + if not self.relativistic: + nlk = NlkState(n=n, l=l, k=None) + self.atomic_levels.append(AtomicLevel(nlk, eigs[0], f, is_valence)) + else: + kpa_list = [1, 2] if l != 0 else [1] + for ik, kpa in enumerate(kpa_list): + nlk = NlkState(n=n, l=l, k=kpa) + self.atomic_levels.append(AtomicLevel(nlk, eigs[ik], f, is_valence)) + + break + else: + raise self.Error(f"Cannot find header:\n`{header}`\nin output file {self.filepath}") + + return self + + @lazy_property + def min_ghost_empty_ha(self): + ghost_ene = np.inf + for line in self.warnings: + if "GHOST(+)" not in line: continue + ghost_ene = min(ghost_ene, float(line.split()[2])) + + return None if ghost_ene == np.inf else ghost_ene + + @lazy_property + def lmax(self) -> int: + # Read lmax (not very robust because we assume the user didn't change the template but oh well) + header = "# lmax" + for i, line in enumerate(self.lines): + if line.startswith(header): + return int(self.lines[i+1]) + else: + raise self.Error(f"Cannot find line with `#lmax` in: {self.filepath}") + + def to_string(self, verbose: int = 0 ) -> str: + """ + String representation. + """ + lines = [] + app = lines.append + + if not hasattr(self, "calc_type"): + app("Object is empty. Call scan method to analyze output file") + return "\n".join(lines) + + if not self.run_completed: + app("completed: %s" % self.run_completed) + return "\n".join(lines) + + app(f"relativity: {self.calc_type}, oncvpsp version: {self.version}, date: {self.gendate}\n") + + df = self.get_atomic_levels_df() + app("# Atomic levels:") + app(str(df) + 2 * "\n") + app("# Peaks of radial wavefunctions:") + df = self.get_peaks_df() + app(str(df) + 2 * "\n") + + from pprint import pformat + app("# Results:\n") + app(pformat(self.get_results()) + 2*"\n") + + if self.warnings: + lines.append(f"# WARNINGS ({len(self.warnings)})") + lines.extend([colored(s, "magenta") for s in self.warnings]) + + if self.errors: + lines.append(f"# ERRORS ({len(self.errors)})") + lines.extend([colored(s, "red") for s in self.errors]) + + return "\n".join(lines) + + def __str__(self) -> str: + return self.to_string() + + @property + def relativistic(self) -> bool: + """True if fully-relativistic calculation.""" + return self.calc_type in ("fully-relativistic", "relativistic") + + @lazy_property + def rc_l(self) -> dict[int, float]: + """ + Core radii as a function of l extracted from the output file. + """ + rc_l = {} + header = "# l, rc," + for i, line in enumerate(self.lines): + if line.startswith(header): + beg = i + 1 + nxt = 0 + while True: + ln = self.lines[beg + nxt] + if ln.startswith("#"): break + tokens = ln.split() + #print("line:", ln, "\ntokens", tokens) + l, rc = int(tokens[0]), float(tokens[1]) + rc_l[l] = rc + nxt += 1 + + if not rc_l: + raise self.Error(f"Cannot find magic line starting with `{header}` in: {self.filepath}") + + return rc_l + + @lazy_property + def kinerr_nlk(self) -> dict[NlkState, namedtuple]: + """ + Dictionary with the error on the kinetic energy indexed by nlk. + """ + + # In relativistic mode we write data inside the following loops: + + #do l1=1,lmax+1 + # ll=l1-1 + # if(ll==0) then + # mkap=1 + # else + # mkap=2 + # end if + # do ikap=1,mkap + # if(ikap==1) then + # kap=-(ll+1) + # else + # kap= ll + # end if + + kinerr_nlk = {} + + if self.major_version > 3 or self.is_metapsp: + # Calculating optimized projector # 1 + # + # for l= 0 + + re_start = re.compile(r"^Calculating optimized projector #\s+(?P\d+)") + + else: + # Calculating first optimized projector for l= 0 + re_start = re.compile(r"^Calculating (?P(first|second)) optimized projector for l=\s+(?P\d+)") + # TODO: In FR mode, we have + #Calculating first optimized projector for l= 0 + #Calculating second optimized projector for l= 0 + + nlk = None + iproj_l_seen = set() + + for i, line in enumerate(self.lines): + m = re_start.match(line) + if m: + # Extract iproj and l. + if self.major_version > 3 or self.is_metapsp: + # for l= 0 + iproj = int(m.group("iproj")) + l = int(self.lines[i+2].split("=")[-1].strip()) + else: + iproj = m.group("iproj") + iproj = {"first": 0, "second": 1}[iproj] + l = int(m.group("l")) + + k = None + if self.relativistic: + k = 1 + if (iproj, l) in iproj_l_seen: k= 2 + iproj_l_seen.add((iproj, l)) + + # Use n index to store iprj index. + nlk = NlkState(n=iproj, l=l, k=k) + #print("nlk:", nlk) + continue + + # Now parse the following section associated to nlk + + #Energy error per electron Cutoff + # Ha eV Ha + # 0.01000 0.27211 27.01 + # 0.00100 0.02721 52.82 + # 0.00010 0.00272 66.22 + # 0.00001 0.00027 75.37 + + if line.startswith("Energy error per electron Cutoff"): + values_ha, ecuts = [], [] + for j in range(4): + tokens = self.lines[i+2+j].split() + #print("tokens:", tokens) + if not tokens: break + err_ha, err_ev, ecut = map(float, tokens) + values_ha.append(err_ha) + ecuts.append(ecut) + + if nlk is None: + raise self.Error("Cannot find nlk quantum numbers") + + self._check_nlk_key(nlk, kinerr_nlk, "kinerr_nlk") + + kinerr_nlk[nlk] = dict2namedtuple(ecuts=ecuts, values_ha=values_ha) + + if not kinerr_nlk: + raise self.Error(f"Cannot parse convergence profile in: {self.filepath}") + + return kinerr_nlk + + @staticmethod + def _check_nlk_key(nlk, d, dict_name) -> None: + + if nlk in d: + ks = "\n\t".join(str(k) for k in d) + raise RuntimeError(f"nlk state `{nlk}` is already in {dict_name}:\nKeys:\n\t{ks}") + + @lazy_property + def potentials(self) -> dict[int, RadialFunction]: + """ + Dict with radial functions with the non-local and local potentials indexed by l. + l = -1 corresponds to the local part (if present). + """ + #radii, charge, pseudopotentials (ll=0, 1, lmax) + #!p 0.0099448 4.7237412 -7.4449470 -14.6551019 + vl_data = self._grep("!p").data + lmax = len(vl_data[0]) - 3 + assert lmax == self.lmax + + # From 0 up to lmax + ionpots_l = {} + for l in range(lmax + 1): + ionpots_l[l] = RadialFunction("Ion Pseudopotential, l=%d" % l, vl_data[:, 0], vl_data[:, 2+l]) + + # Local part is stored with l == -1 if lloc=4, not present if lloc = l + vloc = self._grep("!L").data + if vloc is not None: + ionpots_l[-1] = RadialFunction("Local part, l=%d" % -1, vloc[:, 0], vloc[:, 1]) + + return ionpots_l + + @lazy_property + def densities(self) -> dict[str, RadialFunction]: + """ + Dictionary with charge densities on the radial mesh. + """ + # radii, charge, core charge, model core charge + # !r 0.0100642 4.7238866 53.4149287 0.0000000 + rho_data = self._grep("!r").data + + return dict( + rhoV=RadialFunction("Valence charge", rho_data[:, 0], rho_data[:, 1]), + rhoC=RadialFunction("Core charge", rho_data[:, 0], rho_data[:, 2]), + rhoM=RadialFunction("Model charge", rho_data[:, 0], rho_data[:, 3]) + ) + + @lazy_property + def kin_densities(self) -> dict[str, RadialFunction]: + """ + Dictionary with Kinetic energy densities on the radial mesh. + """ + if not self.is_metapsp: + raise ValueEror("kin_densities are only available in pseudos generated with metapsp") + + # Metagga taups and taumodps + #!t 0.0200249 2.9590E+02 6.4665E+02 + rho_data = self._grep("!t").data + + return dict( + tau_ps=RadialFunction("Tau Pseudo", rho_data[:, 0], rho_data[:, 1]), + tau_modps=RadialFunction("Tau Model + Pseudo", rho_data[:, 0], rho_data[:, 2]), + ) + + @lazy_property + def vtaus(self) -> dict[str, RadialFunction]: + """ + Dictionary with Vtau ptotentials on the radial mesh. + """ + if not self.is_metapsp: + raise ValueEror("kin_densities are only available in pseudos generated with metapsp") + + # plot " AePsNamedTuple: + """ + Read and set the radial wavefunctions for the bound states. + + Usage: + + ae_wfs, ps_wfs = self.radial_wfs.ae, self.radial_wfs.ps + + for nlk, ae_wf in ae_wfs.items(): + ps_wf, l, k = ps_wfs[nlk], nlk.l, nlk.k + """ + return self._get_radial_wavefunctions(what="bound_states") + + @property + def has_scattering_wfs(self) -> bool: + """ + True if pp generation included scattering states. + """ + return bool(self.scattering_wfs.ae) + + @lazy_property + def scattering_wfs(self) -> AePsNamedTuple: + """ + Read and set the scattering wavefunctions. + """ + return self._get_radial_wavefunctions(what="scattering_states") + + def _get_radial_wavefunctions(self, what: str) -> AePsNamedTuple: + # For scalar-relativistic bound states, we have + # + # n= 1, l= 0, all-electron wave function, pseudo w-f + # + # & 0 0.009945 -0.092997 0.015273 + + # For fully-relativistic bound states, we have: + # + # n= 1, l= 0 kap=-1, all-electron wave function, pseudo w-f + # + # & 0 0.009955 0.066338 0.000979 + + # For the scattering states (scalar and relativistic case) + # + # scattering, iprj= 2, l= 1, all-electron wave function, pseudo w-f + # + # scattering, iprj= 2, l= 1, kap= 1, all-electron wave function, pseudo w-f + + ae_waves, ps_waves = {}, {} + + #l_to_nlist = defaultdict(list) + #for level in self.atomic_levels: + # if not level.is_valence: continue + # l_to_nlist[level.nlk.l].append(level.nlk.n) + + beg = 0 + while True: + g = self._grep("&", beg=beg) + if g.data is None: break + beg = g.stop + 1 + + # Get header two lines above. + header = self.lines[g.start - 2] + + if what == "bound_states": + if header.startswith("scattering,"): + continue + elif what == "scattering_states": + if not header.startswith("scattering,"): + continue + header = header.replace("scattering,", "") + else: + raise ValueError(f"Invalid value of {what=}") + #print("header:", header) + + if not self.relativistic: + # n= 1, l= 0, all-electron wave function, pseudo w-f + n, l = header.split(",")[0:2] + n = int(n.split("=")[1]) + l = int(l.split("=")[1]) + # TODO + #if what == "bound_states" and l_to_nlist[l]: + # print(f"for {l=} {l_to_nlist[l]=}") + # n = l_to_nlist[l].pop(0) + kap = None + else: + # n= 1, l= 0, kap=-1, all-electron wave function, pseudo w-f + if self.major_version <= 2: header = header.replace("kap=", ", kap=") + n, l, kap = header.split(",")[0:3] + n = int(n.split("=")[1]) + l = int(l.split("=")[1]) + kap = int(kap.split("=")[1]) + + nlk = NlkState.from_nlkap(n=n, l=l, kap=kap) + #print("Got nlk state:", nlk) + + rmesh = g.data[:, 1] + ae_wf = g.data[:, 2] + ps_wf = g.data[:, 3] + + self._check_nlk_key(nlk, ae_waves, "ae_waves") + + ae_waves[nlk] = RadialWaveFunction(nlk, str(nlk), rmesh, ae_wf) + ps_waves[nlk] = RadialWaveFunction(nlk, str(nlk), rmesh, ps_wf) + + return AePsNamedTuple(ae=ae_waves, ps=ps_waves) + + @lazy_property + def projectors(self) -> dict[NlkState, RadialFunction]: + """ + Dict with projector wave functions indexed by nlk. + """ + # + #@ 0 0.009945 0.015274 -0.009284 + beg = 0 + magic = "@" + if self.major_version > 3 or self.is_metapsp: magic = "!J" + + # if(ikap==1) then + # write(6,'(a,i6,6(f12.6,1x))') '!J',-ll,rr(ii), & + # (vkb(ii,jj,l1,ikap),jj=1,nproj(l1)) + # else + # write(6,'(a,i6,6(f12.6,1x))') '!J',ll,rr(ii), & + # (vkb(ii,jj,l1,ikap),jj=1,nproj(l1)) + + projectors_nlk = {} + while True: + g = self._grep(magic, beg=beg) + if g.data is None: break + beg = g.stop + 1 + + rmesh = g.data[:, 1] + l = int(g.data[0, 0]) + + k = None + if self.relativistic: + k = 2 + if l <= 0: k = 1 + + for n in range(len(g.data[0]) - 2): + nlk = NlkState(n=n + 1, l=abs(l), k=k) + #print("Got projector with: %s" % str(nlk)) + + if nlk in projectors_nlk: + raise self.Error("nlk state `{nlk}` is already in projectors_nlk") + + projectors_nlk[nlk] = RadialWaveFunction(nlk, str(nlk), rmesh, g.data[:, n + 2]) + + return projectors_nlk + + @lazy_property + def atan_logders(self) -> AePsNamedTuple: + """ + Atan of the log derivatives for different l-values. + """ + #log derivativve data for plotting, l= 0 + #atan(r * ((d psi(r)/dr)/psi(r))), r= 1.60 + #l, energy, all-electron, pseudopotential + # + #! 0 2.000000 0.706765 0.703758 + ae_atan_logder_l, ps_atan_logder_l = {}, {} + + lstop = self.lmax + 1 + #if self.major_version > 3: + if self.major_version > 3 or self.is_metapsp: + lstop = min(self.lmax + 2, 4) + + if not self.relativistic: + l_list = list(range(lstop)) + else: + # Order with (l, -l) for plotting purposes. + l_list = [] + for l in range(lstop): + if l != 0: + l_list.extend((l, -l)) + else: + l_list.append(0) + + for l in l_list: + tag = "! %d" % l if l >= 0 else "! %d" % l + data = self._grep(tag=tag).data + if data is None: + raise self.Error(f"Cannot find logder for l: {l}") + assert l == int(data[0, 0]) + + ae_atan_logder_l[l] = AtanLogDer(l=l, energies=data[:, 1], values=data[:, 2]) + ps_atan_logder_l[l] = AtanLogDer(l=l, energies=data[:, 1], values=data[:, 3]) + + return AePsNamedTuple(ae=ae_atan_logder_l, ps=ps_atan_logder_l) + + @lazy_property + def kene_vs_ecut(self) -> dict[int, ConvData]: + """ + Dict with the convergence of the kinetic energy versus ecut for different l-values. + """ + #convergence profiles, (ll=0,lmax) + #!C 0 5.019345 0.010000 + #... + #!C 1 19.469226 0.010000 + # TODO: This does not take into account scattering states or n > 1 + conv_l = {} + + for l in range(self.lmax + 1): + data = self._grep(tag="!C %d" % l).data + conv_l[l] = ConvData(l=l, energies=data[:, 1], values=data[:, 2]) + + return conv_l + + @lazy_property + def hints(self) -> dict: + """ + Hints for the cutoff energy as provided by oncvpsp. + """ + # Extract the hints + hints = 3 * [-np.inf] + for i in range(3): + for l in range(self.lmax + 1): + hints[i] = max(hints[i], self.kene_vs_ecut[l].energies[-i-1]) + hints.reverse() + + # Truncate to the nearest int + hints = [np.rint(h) for h in hints] + # print("hints:", hints) + + return dict( + low={"ecut": hints[0], "pawecutdg": hints[0]}, + normal={"ecut": hints[1], "pawecutdg": hints[1]}, + high={"ecut": hints[2], "pawecutdg": hints[2]} + ) + + def get_results(self) -> AttrDict: + """ + Return the most important results extracted from the output file. + """ + # Init return values + #d = AttrDict( + # max_ecut=None, + # max_atan_logder_l1err=None, + # max_psexc_abserr=None, + # herm_err=None, + # nwarns=len(self.warnings) + # nerrs=len(self.errors) + #) + + # Get the max ecut estimated by oncvpsp. + # TODO: Should take into account scattering states. + max_ecut = max(self.kene_vs_ecut[l].energies[-1] for l in self.kene_vs_ecut) + + # Compute the l1 error in atag(logder) between AE and PS + try : + from scipy.integrate import cumulative_trapezoid as cumtrapz + except ImportError: + from scipy.integrate import cumtrapz + + max_l1err = 0.0 + for l in self.atan_logders.ae: + f1, f2 = self.atan_logders.ae[l], self.atan_logders.ps[l] + + abs_diff = np.abs(f1.values - f2.values) + integ = cumtrapz(abs_diff, x=f1.energies) / (f1.energies[-1] - f1.energies[0]) + max_l1err = max(max_l1err, integ[-1]) + + # Read Hermiticity error and compute the max value of PSP excitation error= + # Hermiticity error 4.8392D-05 + # PSP excitation error= 1.56D-10 + herm_tag, pspexc_tag = "Hermiticity error", "PSP excitation error=" + herm_err, max_psexc_abserr = None, -np.inf + + for line in self.lines: + i = line.find(herm_tag) + #print(line) + if i != -1: + if self.is_metapsp and "Npairs" in line: + continue + herm_err = float(line.split()[-1].replace("D", "E")) + + i = line.find(pspexc_tag) + if i != -1: + max_psexc_abserr = max(max_psexc_abserr, abs(float(line.split()[-1].replace("D", "E")))) + + return AttrDict( + max_ecut=max_ecut, + max_atan_logder_l1err=max_l1err, + max_psexc_abserr=max_psexc_abserr, + herm_err=herm_err, + nwarns=len(self.warnings), + nerrs=len(self.errors), + ) + + def find_string(self, s: str) -> int: + """ + Returns the index of the first line containing string s. + Raises self.Error if s cannot be found. + """ + for i, line in enumerate(self.lines): + if s in line: + return i + else: + raise self.Error(f"Cannot find `{s}` in lines") + + def get_input_str(self) -> str: + """String with the ONCVPSP input file.""" + try: + # oncvpsp 3.2.3 + i = self.find_string("") + j = self.find_string("") + return "\n".join(self.lines[i+1:j]) + "\n" + except self.Error: + # oncvpsp => 4 + i = self.find_string("Reference configufation results") + return "\n".join(self.lines[:i]) + + def get_psp8_str(self) -> Union[str, None]: + """ + Return string with the pseudopotential data in psp8 format. + Return None if field is not present. + """ + start, stop = None, None + for i, line in enumerate(self.lines): + if 'Begin PSPCODE8' in line: start = i + if start is not None and 'END_PSP' in line: + stop = i + break + + if start is None and stop is None: return None + ps_data = "\n".join(self.lines[start+1:stop]) + + if "" not in ps_data: + # oncvpsp <= 3.2.2 --> Append the input to ps_data (note XML markers) + # oncvpsp >= 3.2.3 --> Input is already there + ps_data += "\n\n\n" + self.get_input_str() + "\n" + + return ps_data + + def get_upf_str(self) -> Union[str, None]: + """ + Return string with the pseudopotential data in upf format. + Return None if field is not present. + """ + start, stop = None, None + for i, line in enumerate(self.lines): + if "Begin PSP_UPF" in line: start = i + if start is not None and 'END_PSP' in line: + stop = i + break + + if start is None and stop is None: return None + return "\n".join(self.lines[start+1:stop]) + + def get_plotter(self): # -> Union[OncvPlotter, None]: + """ + Return an instance of OncvPlotter or None + """ + from abipy.ppcodes.oncv_plotter import OncvPlotter + try: + return OncvPlotter(self) + except Exception as exc: + print(exc) + #raise exc + return None + + def _grep(self, tag: str, beg: int = 0) -> GrepResults: + """ + Finds the first field in the file with the specified tag. + `beg` gives the initial position in the file. + """ + data, stop, intag = [], None, -1 + + if beg >= len(self.lines): + raise ValueError(f"beg {beg} > len(lines) ({len(self.lines)})") + + for i, l in enumerate(self.lines[beg:]): + l = l.lstrip() + if l.startswith(tag): + if intag == -1: + intag = beg + i + data.append([float(c) for c in l.split()[1:]]) + else: + # Exit because we know there's only one section starting with 'tag' + if intag != -1: + stop = beg + i + break + + if not data: + return GrepResults(data=None, start=intag, stop=stop) + else: + return GrepResults(data=np.array(data), start=intag, stop=stop) + + def gnuplot(self) -> None: + """ + Plot the results with gnuplot. + Based on the `replot.sh` script provided by the oncvpsp code. + """ + outfile = self.filepath + base = os.path.basename(outfile) + gnufile = base + ".scr" + plotfile = base + ".plot" + temp = base + ".tmp" + + workdir = tempfile.mkdtemp() + print(f"Working in: {workdir}") + + from monty.os import cd + from subprocess import check_call + with cd(workdir): + check_call("awk 'BEGIN{out=0};/GNUSCRIPT/{out=0}; {if(out == 1) {print}}; \ + /DATA FOR PLOTTING/{out=1}' %s > %s" % (outfile, plotfile), shell=True) + check_call("awk 'BEGIN{out=0};/END_GNU/{out=0}; {if(out == 1) {print}}; \ + /GNUSCRIPT/{out=1}' %s > %s" % (outfile, temp), shell=True) + check_call('sed -e 1,1000s/t1/"%s"/ %s > %s' % (plotfile, temp, gnufile), shell=True) + + try: + check_call(["gnuplot", gnufile]) + except KeyboardInterrupt: + print("Received KeyboardInterrupt") + + os.rmdir(workdir) + + def get_atomic_levels_df(self) -> pd.DataFrame: + """ + Return pandas dataframe with the atomic levels. Columns: (n, l, k, eig, occ, is_valence) + """ + d_list = [] + from dataclasses import asdict + for level in self.atomic_levels: + data = asdict(level) + d = data.pop("nlk").get_dict4pandas() + d.update(**data) + d_list.append(d) + + return pd.DataFrame(d_list) + + def get_peaks_df(self) -> pd.DataFrame: + """ + Return pandas dataframe with the position of the last peak. + """ + d_list = [] + + def _push(typ, nkl, wf) -> None: + peaks = wf.get_peaks() + d = nlk.get_dict4pandas() + d.update({"type": typ, "name": str(nlk), "last_peak_au": peaks.xs[-1]}) + d_list.append(d) + + ae_wfs, ps_wfs = self.radial_wfs.ae, self.radial_wfs.ps + for nlk, ae_wf in ae_wfs.items(): + _push("AE", nlk, ae_wf) + _push("PS", nlk, ps_wfs[nlk]) + + return pd.DataFrame(d_list) diff --git a/abipy/ppcodes/oncv_plotter.py b/abipy/ppcodes/oncv_plotter.py new file mode 100644 index 000000000..ccbbcd921 --- /dev/null +++ b/abipy/ppcodes/oncv_plotter.py @@ -0,0 +1,1243 @@ +# coding: utf-8 +""" +Classes and functions for parsing the ONCVPSP output file and plotting the results. +""" +from __future__ import annotations + +import io +import os +import json +import tempfile +import numpy as np + +from typing import Any, Union, Optional +from shutil import which +from monty.collections import dict2namedtuple +from monty.termcolor import cprint +from scipy.interpolate import UnivariateSpline +from abipy.core.atom import l2char # NlkState, RadialFunction, RadialWaveFunction, +from abipy.core.mixins import NotebookWriter +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt, set_visible, set_axlims +from abipy.tools.typing import Figure +from abipy.tools.derivatives import finite_diff +from abipy.ppcodes.oncv_parser import OncvParser + + +class OncvPlotter(NotebookWriter): + """ + Plots the results produced by a pseudopotential generator. + """ + # TODO: Improve support for fully-relativistic case. + + # matplotlib options. + linewidth, markersize = 2, 2 + + linestyle_aeps = dict(ae="solid", ps="dashed") + + markers_aeps = dict(ae=".", ps="o") + + color_l = {0: "black", + 1: "red", + -1: "magenta", + 2: "blue", + -2: "cyan", + 3: "orange", + -3: "yellow", + } + + @classmethod + def from_file(cls, filepath: str) -> OncvPlotter: + """Build the plotter from an output file.""" + parser = OncvParser(filepath) + parser.scan() + if not parser.run_completed: + raise RuntimeError("oncvpsp output is not completed") + + return cls(parser) + + def __init__(self, parser: OncvParser): + self.parser = parser + + @staticmethod + def decorate_ax(ax, xlabel=None, ylabel=None, title=None, fontsize=8): + """ + Decorate a `matplotlib` Axis adding xlabel, ylabel, title, grid and legend + """ + if title: ax.set_title(title, fontsize=fontsize) + if xlabel: ax.set_xlabel(xlabel) + if ylabel: ax.set_ylabel(ylabel) + ax.grid(True) + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + def _mpl_opts_laeps(self, l: int, aeps: str) -> dict: + """ + Return dict with matplotlib ax.plot options to plot AE/PS quantities depending on l. + """ + return dict( + color=self.color_l[l], + linestyle=self.linestyle_aeps[aeps], + linewidth=self.linewidth, + #marker=self.markers_aeps[aeps], + markersize=self.markersize + ) + + def _add_rc_vlines_ax(self, ax, with_lloc=False) -> None: + """ + Add vertical lines to axis `ax` showing the core radii. axvline does not + directly store the x-intersect and cannot be converted by plotly, so this + is stored as a custom attribute on the matplotlib.Axes as a clean/nasty + workaround. + """ + if not hasattr(ax, "_custom_rc_lines"): + ax._custom_rc_lines = [] + + for l, rc in self.parser.rc_l.items(): + ax.axvline(rc, lw=2, color=self.color_l[l], ls="--") + ax._custom_rc_lines.append((rc, self.color_l[l])) + + if with_lloc: + color = "magenta" if self.parser.lloc == 4 else "k" + ax.axvline(self.parser.rc5, lw=2, color=color, ls="--") + ax._custom_rc_lines.append((self.parser.rc5, color)) + + @add_fig_kwargs + def plot_atan_logders(self, ax=None, with_xlabel=True, + fontsize: int = 8, **kwargs) -> Figure: + """ + Plot arctan of logder on axis ax. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ae, ps = self.parser.atan_logders.ae, self.parser.atan_logders.ps + ax, fig, plt = get_ax_fig_plt(ax) + + # Note that l can be negative if FR pseudo. This corresponds to ikap 2 in Fortran. + + for l, ae_alog in ae.items(): + ps_alog = ps[l] + + if not self.parser.relativistic: + lch = f"${l2char[abs(l)]}$" + else: + #lch = l2char[abs(l)] + lch = f"${l2char[abs(l)]}^+$" if l >= 0 else f"${l2char[abs(l)]}^-$" + + # Add pad to avoid overlapping curves. We only need to compare AE vs PS atan(logder) + pad = (abs(l) + 1) * 1.0 + + ae_line, = ax.plot(ae_alog.energies, ae_alog.values + pad, + label=f"AE {lch}", + **self._mpl_opts_laeps(l, "ae")) + + ps_line, = ax.plot(ps_alog.energies, ps_alog.values + pad, + label=f"PS {lch}", **self._mpl_opts_laeps(l, "ps")) + + xlabel = "Energy (Ha)" if with_xlabel else "" + #ylabel = "ATAN(LogDer)" + ylabel = r"$\phi(E) = \arctan(R * d \psi_E(r)/dr |_R)$" + + self.decorate_ax(ax, xlabel=xlabel, ylabel=ylabel, title="", + fontsize=fontsize, + ) + return fig + + def _get_ae_ps_wfs(self, what) -> tuple: + if what == "bound_states": + ae_wfs, ps_wfs = self.parser.radial_wfs.ae, self.parser.radial_wfs.ps + elif what == "scattering_states": + ae_wfs, ps_wfs = self.parser.scattering_wfs.ae, self.parser.scattering_wfs.ps + else: + raise ValueError(f"Invalid value for {what=}") + return ae_wfs, ps_wfs + + @add_fig_kwargs + def plot_radial_wfs(self, ax=None, what="bound_states", + fontsize: int = 8, **kwargs) -> Figure: + """ + Plot AE and PS radial wavefunctions on axis ax. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + what: "bound_states" or "scattering_states". + """ + ax, fig, plt = get_ax_fig_plt(ax) + + ae_wfs, ps_wfs = self._get_ae_ps_wfs(what) + + for nlk, ae_wf in ae_wfs.items(): + ps_wf, l, k = ps_wfs[nlk], nlk.l, nlk.k + + if what == "bound_states": + # Show position of the last peak. + s, marker = 10, "^" + ae_peaks = ae_wf.get_peaks() + style = dict(color=self.color_l[l], s=s, marker=marker) + + ax.scatter(ae_peaks.xs[-1], ae_peaks.ys[-1], color=self.color_l[l]) + ps_peaks = ps_wf.get_peaks() + style = dict(color=self.color_l[l], s=s, marker=marker) + ax.scatter(ps_peaks.xs[-1], ps_peaks.ys[-1], color=self.color_l[l]) + + ax.plot(ae_wf.rmesh, ae_wf.values, label=fr"AE { nlk.latex }", **self._mpl_opts_laeps(l, "ae")) + ax.plot(ps_wf.rmesh, ps_wf.values, label=fr"PS {nlk.latex}", **self._mpl_opts_laeps(l, "ps")) + + self.decorate_ax(ax, xlabel="r (Bohr)", ylabel=r"$\phi(r)$", + title="Wave Functions" if what == "bound_states" else "Scattering States", + fontsize=fontsize, + ) + + self._add_rc_vlines_ax(ax) + + return fig + + @add_fig_kwargs + def plot_projectors(self, ax=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot projectors on axis ax. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + linestyle_n = {1: "solid", 2: "dashed", 3: "dotted", 4: "dashdot"} + + for nlk, proj in self.parser.projectors.items(): + ax.plot(proj.rmesh, proj.values, + color=self.color_l.get(nlk.l, 'black'), + linestyle=linestyle_n[nlk.n], + linewidth=self.linewidth, + markersize=self.markersize, + label=f"Proj {nlk.n}, l={nlk.latex_l}", + ) + + self.decorate_ax(ax, xlabel="r (Bohr)", ylabel="$p(r)$", title="Projectors", + fontsize=fontsize, + ) + + self._add_rc_vlines_ax(ax) + + return fig + + @add_fig_kwargs + def plot_densities(self, ax=None, timesr2=False, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot AE, PS and model densities on axis ax. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + for name, rho in self.parser.densities.items(): + d = rho.values if not timesr2 else rho.values * rho.rmesh ** 2 + line, = ax.plot(rho.rmesh, d, label=name, + linewidth=self.linewidth, markersize=self.markersize) + + ylabel = "$n(r)$" if not timesr2 else "$r^2 n(r)$" + self.decorate_ax(ax, xlabel="r (Bohr)", ylabel=ylabel, + title="Charge densities", + fontsize=fontsize, + ) + return fig + + @add_fig_kwargs + def plot_der_densities(self, ax=None, order=1, acc=4, fontsize=8, **kwargs) -> Figure: + """ + Plot the radial derivatives of the densities on axis ax. + Used to analyze possible discontinuities or strong oscillations in r-space. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + for name, rho in self.parser.densities.items(): + # Only model core charge is shown. + if name != "rhoM": continue + + # Need linear mesh for finite_difference --> Spline input densities on lin_rmesh + lin_rmesh, h = np.linspace(rho.rmesh[0], rho.rmesh[-1], num=len(rho.rmesh) * 4, retstep=True) + spline = UnivariateSpline(rho.rmesh, rho.values, s=0) + lin_values = spline(lin_rmesh) + vder = finite_diff(lin_values, h, order=order, acc=acc) + ax.plot(lin_rmesh, vder, label="%s-order derivative of %s" % (order, name)) + + self.decorate_ax(ax, xlabel="r (Bohr)", ylabel="$D^%s \n(r)$" % order, + title="Derivative of the charge densities", + fontsize=fontsize, + ) + return fig + + @add_fig_kwargs + def plot_potentials(self, ax=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot v_l and v_loc potentials on axis ax. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + for l, pot in self.parser.potentials.items(): + ax.plot(pot.rmesh, pot.values, + label="$V_{loc}$" if l == -1 else "PS $V_{%s}$" % l2char[l], + **self._mpl_opts_laeps(l, "ae")) + + self.decorate_ax(ax, xlabel="r (Bohr)", ylabel="$v_l(r)$", + title="Ion Pseudopotentials", fontsize=fontsize, + ) + self._add_rc_vlines_ax(ax, with_lloc=True) + + return fig + + def plot_vtau(self, xscale="log", ax=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot v_tau and v_tau(model+pseudo) potentials on axis ax. + + Args: + xscale: "log" to plot vtau in log scale or "linear". For other options see matplotlib. + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + for key, pot in self.parser.vtaus.items(): + mode = "ae" if key == "vtau_ae" else "ps" + ax.plot(pot.rmesh, pot.values, + label=pot.name, + **self._mpl_opts_laeps(0, mode)) + + self.decorate_ax(ax, xlabel="r (Bohr)", ylabel="Vtaus (Ha / a_B)", + #title="Ion Pseudopotentials", + fontsize=fontsize, + ) + self._add_rc_vlines_ax(ax, with_lloc=True) + ax.set_xscale(xscale) + + return fig + + def plot_tau(self, ax=None, yscale="log", fontsize: int = 8, **kwargs) -> Figure: + """ + Plot kinetic energy densities tauPS and tau(M+PS) on axis ax. + + Args: + yscale: "log" to plot tau in log scale or "linear". For other options see matplotlib. + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + for key, den in self.parser.kin_densities.items(): + ax.plot(den.rmesh, den.values, + label=den.name) + #**self._mpl_opts_laeps(0, mode)) + + self.decorate_ax(ax, xlabel="r (Bohr)", ylabel="Kinetic energy densities", + #title="Ion Pseudopotentials", + fontsize=fontsize, + ) + self._add_rc_vlines_ax(ax, with_lloc=True) + ax.set_yscale(yscale) + + return fig + + @add_fig_kwargs + def plot_der_potentials(self, ax=None, order=1, acc=4, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot the derivatives of vl and vloc potentials on axis ax. + Used to analyze the derivative discontinuity introduced by the RRKJ method at rc. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + for l, pot in self.parser.potentials.items(): + # Need linear mesh for finite_difference hence spline input potentials on lin_rmesh. + lin_rmesh, h = np.linspace(pot.rmesh[0], pot.rmesh[-1], num=len(pot.rmesh) * 4, retstep=True) + spline = UnivariateSpline(pot.rmesh, pot.values, s=None) + lin_values = spline(lin_rmesh) + vder = finite_diff(lin_values, h, order=order, acc=acc) + + label = f"{order}-order derivative of Vloc" if l == -1 else \ + f"{order}-order derivative of PS l={l}" + + ax.plot(lin_rmesh, vder, label=label, **self._mpl_opts_laeps(l, "ae")) + + self.decorate_ax(ax, xlabel="r (Bohr)", ylabel=r"$D^%s \phi(r)$" % order, + title="Derivative of the ion Pseudopotentials", + fontsize=fontsize, + ) + self._add_rc_vlines_ax(ax, with_lloc=True) + + return fig + + @add_fig_kwargs + def plot_kene_vs_ecut(self, ax=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot the convergence of the kinetic energy wrt ecut on axis ax. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + for l, data in self.parser.kene_vs_ecut.items(): + ax.plot(data.energies, data.values, label="Conv l=%s" % l2char[l], + **self._mpl_opts_laeps(l, "ae")) + + for nlk, data in self.parser.kinerr_nlk.items(): + ax.plot(data.ecuts, data.values_ha, + **self._mpl_opts_laeps(nlk.l, "ps")) + + self.decorate_ax(ax, + xlabel="Ecut (Ha)", ylabel=r"$\Delta E_{kin}$ (Ha)", + title="", fontsize=fontsize, + ) + + ax.set_yscale("log") + + return fig + + @add_fig_kwargs + def plot_atanlogder_econv(self, ax_list=None, fontsize: int = 6, **kwargs) -> Figure: + """ + Plot atan(logder) and the convergence of kinetic energy on the same figure. + + Return: matplotlib Figure + """ + # Build grid of plots. + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=2, ncols=1, + sharex=False, sharey=False, squeeze=False) + ax_list = ax_list.ravel() + + self.plot_atan_logders(ax=ax_list[0], fontsize=fontsize, show=False) + ax_list[0].xaxis.set_label_position('top') + + self.plot_kene_vs_ecut(ax=ax_list[1], fontsize=fontsize, show=False) + + return fig + + @add_fig_kwargs + def plot_den_formfact(self, ecut=120, ax=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot the density form factor as a function of ecut in Ha. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + + Return: matplotlib Figure. + """ + ax, fig, plt = get_ax_fig_plt(ax) + + for name, rho in self.parser.densities.items(): + if name == "rhoC": continue + form = rho.get_intr2j0(ecut=ecut) / (4 * np.pi) + ax.plot(form.mesh, form.values, label=name, + linewidth=self.linewidth, markersize=self.markersize) + + intg = rho.r2f_integral()[-1] + #print("r2 f integral: ", intg) + #print("form_factor(0): ", name, form.values[0]) + + # Plot vloc(q) + #for l, pot in self.potentials.items(): + # if l != -1: continue + # form = pot.get_intr2j0(ecut=ecut) + # mask = np.where(np.abs(form.values) > 20); form.values[mask] = 20 + # line, = ax.plot(form.mesh, form.values, linewidth=self.linewidth, markersize=self.markersize) + # lines.append(line); legends.append("Vloc(q)") + + self.decorate_ax(ax, + xlabel="Ecut (Ha)", ylabel="$n(q)$", + fontsize=fontsize, title="Form factor, l=0 ", + ) + return fig + + @add_fig_kwargs + def plot_atomic_levels(self, ax=None, fontsize: int = 0, **kwargs) -> Figure: + """ + Plot atomic levels in Ha. + + Args: + ax: |matplotlib-Axes| or None if a new figure should be created. + + Return: matplotlib Figure. + """ + max_eval = max(e.eig for e in self.parser.atomic_levels if e.is_valence) + min_eval = min(e.eig for e in self.parser.atomic_levels if e.is_valence) + min_ene = min_eval - 1.0 + + # Filter the atomic_levels to be printed + atm_levels = [l for l in self.parser.atomic_levels if l.eig >= min_ene] + xs = [1] * len(atm_levels) + enes = [level.eig for level in atm_levels] + + figsize = (6.5, 12) + figsize = None + ax, fig, plt = get_ax_fig_plt(ax, figsize=figsize) + ax.scatter(xs, enes, s=90000, marker="_", linewidth=2, zorder=3) + + for xi, yi, level in zip(xs, enes, atm_levels): + text = f"{level.nlk.latex}" + f", occ={level.occ}" + #xy = .65*xi, yi + #xy = xi, yi + xy = xi, 0.95 * yi + ax.annotate(text, xy=xy, xytext=(8, 4), size=8, ha="center", va='top', textcoords="offset points") + + span_style = {} + span_style.setdefault("alpha", 0.2) + span_style.setdefault("color", "grey") + rectangle = ax.axhspan(min_eval, max_eval, **span_style) + + #import matplotlib.patches as patches + #p1 = patches.FancyArrowPatch((0, 0), (1, 1), arrowstyle='<->', mutation_scale=20) + #p2 = patches.FancyArrowPatch((1, 0), (0, 1), arrowstyle='<|-|>', mutation_scale=20) + + #ax.margins(0.1) + ax.set_ylabel('Eigenvalue (Ha)') + ax.set_title('Atomic energy levels') + ax.set_xticks([]) + #ax.yaxis.set_minor_locator(mpl.ticker.MaxNLocator(50)) + ax.grid(axis='y') + #ax.legend(loc="best", fontsize=fontsize, shadow=True) + + return fig + + def yield_figs(self, **kwargs): # pragma: no cover + """ + Generate a predefined list of matplotlib figures with minimal input from the user. + """ + verbose = kwargs.get("verbose", 0) + + yield self.plot_atanlogder_econv(show=False) + yield self.plot_potentials(show=False) + yield self.plot_der_potentials(show=False) + yield self.plot_radial_wfs(show=False) + if self.parser.has_scattering_wfs: + yield self.plot_radial_wfs(what="scattering_states", show=False) + yield self.plot_projectors(show=False) + yield self.plot_densities(show=False) + #yield self.plot_densities(timesr2=True, show=False) + yield self.plot_den_formfact(show=False) + yield self.plot_atomic_levels(show=False) + if verbose: + #yield self.plot_der_potentials(show=False) + for order in [1, 2, 3, 4]: + yield self.plot_der_densities(order=order, show=False) + + if self.parser.is_metapsp: + yield self.plot_vtau(show=False) + yield self.plot_tau(show=False) + + def write_notebook(self, nbpath=None): + return oncv_make_open_notebook(self.parser.filepath) + + +def oncv_make_open_notebook(outpath: str, + foreground: bool = False, + classic_notebook: bool = False, + no_browser: bool = False) -> int: # pragma: no cover + """ + Generate an ipython notebook and open it in the browser. + + Args: + foreground: By default, jupyter is executed in background and stdout, stderr are redirected + to devnull. Use foreground to run the process in foreground + classic_notebook: True to use the classic notebook instead of jupyter-lab (default) + no_browser: Start the jupyter server to serve the notebook but don't open the notebook in the browser. + Use this option to connect remotely from localhost to the machine running the kernel + + Return: system exit code. + + Raise: `RuntimeError` if jupyter executable is not in $PATH + """ + nbpath = oncv_write_notebook(outpath, nbpath=None) + + if not classic_notebook: + # Use jupyter-lab. + app_path = which("jupyter-lab") + if app_path is None: + raise RuntimeError(""" +Cannot find jupyter-lab application in $PATH. Install it with: + + conda install -c conda-forge jupyterlab + +or: + + pip install jupyterlab + +See also https://jupyterlab.readthedocs.io/ +""") + + else: + # Use classic notebook + app_path = which("jupyter") + if app_path is None: + raise RuntimeError(""" +Cannot find jupyter application in $PATH. Install it with: + + conda install -c conda-forge jupyter + +or: + + pip install jupyterlab + +See also https://jupyter.readthedocs.io/en/latest/install.html +""") + app_path = app_path + " notebook " + + if not no_browser: + if foreground: + return os.system("%s %s" % (app_path, nbpath)) + else: + fd, tmpname = tempfile.mkstemp(text=True) + print(tmpname) + cmd = "%s %s" % (app_path, nbpath) + print("Executing:", cmd, "\nstdout and stderr redirected to %s" % tmpname) + import subprocess + process = subprocess.Popen(cmd.split(), shell=False, stdout=fd, stderr=fd) + cprint("pid: %s" % str(process.pid), "yellow") + return 0 + + else: + # Based on https://github.com/arose/nglview/blob/master/nglview/scripts/nglview.py + notebook_name = os.path.basename(nbpath) + dirname = os.path.dirname(nbpath) + #print("nbpath:", nbpath) + + import socket + from abipy.tools.notebooks import find_free_port + username = os.getlogin() + hostname = socket.gethostname() + port = find_free_port() + + client_cmd = "ssh -NL localhost:{port}:localhost:{port} {username}@{hostname}".format( + username=username, hostname=hostname, port=port) + + print(f""" +Using port: {port} + +\033[32m In your local machine, run: \033[0m + + {client_cmd} + +\033[32m NOTE: you might want to replace {hostname} by full hostname with domain name \033[0m +\033[32m Then open your web browser, copy and paste the URL: \033[0m + +http://localhost:{port}/notebooks/{notebook_name} +""") + if not classic_notebook: + cmd = f'{app_path} {notebook_name} --no-browser --port {port} --notebook-dir {dirname}' + else: + cmd = f'{app_path} notebook {notebook_name} --no-browser --port {port} --notebook-dir {dirname}' + + print("Executing:", cmd) + print('NOTE: make sure to open `{}` in your local machine\n'.format(notebook_name)) + + return os.system(cmd) + + +def oncv_write_notebook(outpath: str, nbpath: Optional[str] = None) -> str: + """ + Write an ipython notebook to nbpath + If nbpath is None, a temporay file is created. + Return path to the notebook. + """ + outpath = os.path.abspath(outpath) + + import nbformat + nbf = nbformat.v4 + nb = nbf.new_notebook() + + nb.cells.extend([ + nbf.new_markdown_cell("## This is an auto-generated notebook for %s" % os.path.basename(outpath)), + nbf.new_code_cell("""\ +%matplotlib notebook + +# Use this magic for jupyterlab. +# For installation instructions, see https://github.com/matplotlib/jupyter-matplotlib +#%matplotlib widget + +"""), + + nbf.new_code_cell("""\ +# Parse output file +from abipy.ppcodes.oncv_parser import OncvParser +onc_parser = OncvParser('%s')""" % outpath), + + nbf.new_code_cell("""\ +# Parse the file and build the plotter +onc_parser.scan() +if not onc_parser.run_completed: + raise RuntimeError("Cannot parse output file") + +plotter = onc_parser.get_plotter()"""), + + nbf.new_markdown_cell(r"# AE and PS radial wavefunctions $\phi(r)$:"), + nbf.new_code_cell("fig = plotter.plot_radial_wfs(show=False)"), + nbf.new_markdown_cell("# Arctan of the logarithmic derivatives:"), + nbf.new_code_cell("fig = plotter.plot_atan_logders(show=False)"), + nbf.new_markdown_cell("# Convergence in $G$-space estimated by ONCVPSP:"), + nbf.new_code_cell("fig = plotter.plot_kene_vs_ecut(show=False)"), + nbf.new_markdown_cell("# Projectors:"), + nbf.new_code_cell("fig = plotter.plot_projectors(show=False)"), + nbf.new_markdown_cell("# Core-Valence-Model charge densities:"), + nbf.new_code_cell("fig = plotter.plot_densities(show=False)"), + nbf.new_markdown_cell("# Local potential and $l$-dependent potentials:"), + nbf.new_code_cell("fig = plotter.plot_potentials(show=False)"), + + #nbf.new_markdown_cell("# 1-st order derivative of $v_l$ and $v_{loc}$ computed via finite differences:"), + #nbf.new_code_cell("""fig = plotter.plot_der_potentials(order=1, show=False)"""), + #nbf.new_markdown_cell("# 2-nd order derivative of $v_l$ and $v_{loc}$ computed via finite differences:"), + #nbf.new_code_cell("""fig = plotter.plot_der_potentials(order=2, show=False)"""), + #nbf.new_markdown_cell("Model core charge and form factors computed by ABINIT"), + #nbf.new_code_cell("""\ +#with pseudo.open_pspsfile() as psps: +#psps.plot()"""), + ]) + + # Plot data + #plotter.plot_der_potentials() + #for order in [1,2,3,4]: + # plotter.plot_der_densities(order=order) + #plotter.plot_densities(timesr2=True) + #plotter.plot_den_formfact() + + if nbpath is None: + _, nbpath = tempfile.mkstemp(suffix='.ipynb', text=True) + + with io.open(nbpath, 'wt', encoding="utf8") as f: + nbformat.write(nb, f) + + return nbpath + + +class MultiOncvPlotter(NotebookWriter): + """ + Object for comparing and plotting multiple pseudos. + + Usage example: + + .. code-block:: python + + plotter = MultiOncvPlotter.from_files(filepaths) + plotter.plot_atan_logders() + """ + + @classmethod + def from_files(cls, files: list[str]) -> MultiOncvPlotter: + """ + Create an instance from a list of oncvpsp output files. + """ + new = cls() + for file in files: + new.add_file(file, file) + + return new + + def __init__(self): + self._plotters_dict = {} + + def add_file(self, label: str, filepath: str) -> None: + """ + Add a oncvps output file to the plotter with label + """ + if label in self._plotters_dict: + raise ValueError(f"Cannot overwrite label: {label}") + + parser = OncvParser(filepath) + parser.scan() + plotter = parser.get_plotter() + if plotter is not None: + self._plotters_dict[label] = plotter + + def __len__(self) -> int: + return len(self._plotters_dict) + + @property + def plotters(self) -> list[OncvPlotter]: + """"List of registered `Plotters`.""" + return list(self._plotters_dict.values()) + + @property + def labels(self) -> list[str]: + """List of labels.""" + return list(self._plotters_dict.keys()) + + def items(self): + """List of plotters.""" + return self._plotters_dict.items() + + def _get_ax_list(self, ax_list, sharex=True, sharey=False, ravel=True, layout="c"): + + if layout == "c": + num_plots, ncols, nrows = len(self), 1, len(self) + elif layout == "r": + num_plots, ncols, nrows = len(self), len(self), 1 + else: + raise ValueError(f"Invalid {layout=}") + + # Build grid of plots. + ax_list, fig, plt = get_axarray_fig_plt(ax_list, nrows=nrows, ncols=ncols, # figsize=(8, 8), + sharex=sharex, sharey=sharey, squeeze=False) + if ravel: + ax_list = ax_list.ravel() + + return ax_list, fig, plt + + @add_fig_kwargs + def plot_atan_logders(self, ax_list=None, with_xlabel=True, xlims=None, ylims=None, + fontsize: int = 8, **kwargs) -> Figure: + """ + Plot arctan of logder on ax_list for all pseudos. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=True) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_atan_logders(ax=ax, with_xlabel=with_xlabel, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + set_axlims(ax, xlims, "x") + set_axlims(ax, ylims, "y") + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_radial_wfs(self, ax_list=None, what="bound_states", + fontsize: int = 8, **kwargs) -> Figure: + """ + Plot AE and PS radial wavefunctions of ax_list for all pseudos. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + what: "bound_states" or "scattering_states". + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=True) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_radial_wfs(ax=ax, what=what, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_projectors(self, ax_list=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot projectors on ax_list for all pseudos. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=True) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_projectors(ax=ax, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_densities(self, ax_list=None, timesr2=False, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot AE, PS and model densities on ax_list for all pseudos. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + ax: |matplotlib-Axes| or None if a new figure should be created. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=False) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_densities(ax=ax, timesr2=timesr2, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_der_densities(self, ax_list=None, order=1, acc=4, fontsize=8, **kwargs) -> Figure: + """ + Plot the radial derivatives of the densities on ax_list for all pseudos. + Used to analyze possible discontinuities or strong oscillations in r-space. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=False) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_der_densities(ax=ax, order=order, acc=acc, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_potentials(self, ax_list=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot v_l and v_loc potentials on ax_list for all pseudos. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=False) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_potentials(ax=ax, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_der_potentials(self, ax_list=None, order=1, acc=4, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot the derivatives of vl and vloc potentials on ax_list for all pseudos. + Used to analyze the derivative discontinuity introduced by the RRKJ method at rc. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=False) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_der_potentials(ax=ax, order=order, acc=4, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_kene_vs_ecut(self, ax_list=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot the convergence of the kinetic energy wrt ecut on ax_list for all pseudos. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=True) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_kene_vs_ecut(ax=ax, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_atanlogder_econv(self, ax_mat=None, fontsize: int = 6, **kwargs) -> Figure: + """ + Plot atan(logder) and converge of kinetic energy on the same figure for all pseudos. + Return: matplotlib Figure + """ + num_plots, ncols, nrows = 2 * len(self), 2, len(self) + + # Build grid of plots. + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=True, sharey=False, squeeze=False) + + for i, (label, plotter) in enumerate(self.items()): + ax_list = ax_mat[i] + n = len(ax_list) + plotter.plot_atanlogder_econv(ax_list=ax_list, fontsize=fontsize, show=False) + for ax in ax_list: + ax.set_title(label, fontsize=fontsize) + if i != n - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_den_formfact(self, ecut=120, ax_list=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot the density form factor as a function of ecut in Ha on ax_list for all pseudos. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + + Return: matplotlib Figure. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=False) + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_den_formfact(ax=ax, ecut=ecut, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + if i != len(ax_list) - 1: + set_visible(ax, False, "legend", "xlabel", "ylabel") + + return fig + + @add_fig_kwargs + def plot_atomic_levels(self, ax_list=None, fontsize: int = 8, **kwargs) -> Figure: + """ + Plot atomic levels in Ha for all pseudos. + + Args: + ax_list: List of |matplotlib-Axes| or None if a new figure should be created. + + Return: matplotlib Figure. + """ + ax_list, fig, plt = self._get_ax_list(ax_list, sharex=False, sharey=True, layout="r") + + for i, (ax, (label, plotter)) in enumerate(zip(ax_list, self.items())): + plotter.plot_atomic_levels(ax=ax, fontsize=fontsize, show=False) + ax.set_title(label, fontsize=fontsize) + #if i != len(ax_list) - 1: + # set_visible(ax, False, "legend", "xlabel", "ylabel") + + def yield_figs(self, **kwargs): # pragma: no cover + """ + Generate a predefined list of matplotlib figures with minimal input from the user. + """ + verbose = kwargs.get("verbose", 0) + + yield self.plot_atan_logders(show=False) + yield self.plot_kene_vs_ecut(show=False) + yield self.plot_radial_wfs(show=False) + if any(plotter.parser.has_scattering_wfs for plotter in self.plotters): + yield self.plot_radial_wfs(what="scattering_states", show=False) + yield self.plot_potentials(show=False) + #if verbose: + yield self.plot_der_potentials(show=False) + yield self.plot_projectors(show=False) + yield self.plot_densities(show=False) + ##yield self.plot_densities(timesr2=True, show=False) + yield self.plot_den_formfact(show=False) + yield self.plot_atomic_levels(show=False) + #if verbose: + # for order in [1, 2, 3, 4]: + # yield self.plot_der_densities(order=order, show=False) + + def write_notebook(self, nbpath=None): + raise NotImplementedError("write_notebooks should be tested") + #return oncv_make_open_notebook(self.parser.filepath) + + +def psp8_get_densities(path, fc_file=None, ae_file=None, plot=False): + """ + Extract AE-core, AE-valence and PS-valence from a psp8 file. + Optionally write `.fc` and `.AE` file in format suitable for AIM and cut3d Hirshfeld code. + + Args: + path: path of the psp8 file + fc_file, ae_file: File-like object to `.fc.` and `.AE` file + Set to None if files are now wanted. + plot: If true, call matplotlib to plot densities. + + Return: + namedtuple with numpy arrays: (rmesh, psval, aeval, aecore) + Densities are multiplied by 4 pi i.e. int aecore * r**2 dr ~= N_core + + .. warning:: + + The densities do not integrate exactly to the number of core/valence electrons. + in particular the valence charge in elements with large Z as valence electrons are + more delocalized and the finite radial mesh does not capture the contribution due to the tail. + Client code is responsible for extrapolating the valence charge if needed. + The error in the integral of the core charge is usually much smaller and should be ok + for qualitative analysis. + """ + # From 64_psp/psp8in.F90 + # (1) title (character) line + # (2) znucl,zion,pspdat + # (3) pspcod,pspxc,lmax,lloc,mmax,r2well (r2well not used) + # (4) rchrg,fchrg,qchrg (fchrg /=0 if core charge, qchrg not used) + # (5) nproj(0:lmax) (several projectors allowed for each l) + # Then, for ll=0,lmax: + # if nproj(ll)>0 + # 1/, 1/, ... + # for irad=1,mmax: irad, r(irad), vbkb1(irad,ll), vbkb2(irad,ll), ... + # elif ll=lloc + # for irad=1,mmax: irad, r(irad), vloc(irad) + # end if + # + # If (lloc>lmax) + # for irad=1,mmax: irad, r(irad), vloc(irad) + # end if + # + # vbkb are Bloechl-Kleinman-Bylander projectors,(vpsp(r,ll)-vloc(r))*u(r,ll), + # unnormalized + # Note that an arbitrary local potential is allowed. Set lloc>lmax, and + # provide projectors for all ll<=lmax + # + # Finally, if fchrg>0, + # for irad=1,mmax: irad, r(irad), xccc(irad), + # xccc'(irac), xccc''(irad), xccc'''(irad), xccc''''(irad) + # + # Model core charge for nonlinear core xc correction, and 4 derivatives + from abipy.flowtk.pseudos import Pseudo + pseudo = Pseudo.from_file(path) + + from pymatgen.io.abinit.pseudos import _dict_from_lines + with open(path, "rt") as fh: + lines = [fh.readline() for _ in range(6)] + + header = _dict_from_lines(lines[1:3], [3, 6]) + + # Number of points on the linear mesh. + mmax = int(header["mmax"]) + + # Non-linear core correction parameters. + rchrg, fchrg, qchrg = [float(t) for t in lines[3].split()[:3]] + + # Read Number of projectors(l) and extension switch + nproj = [int(t) for t in lines[4].split()[:5]] + assert len(nproj) == 5 + tokens = lines[5].split() + extension_switch = int(tokens[0]) + + # Old format, Densities are not available. + if len(tokens) == 1 or tokens[1] == "extension_switch": + raise RuntimeError("psp8 file does not contain density records") + + den_flag = int(tokens[1]) + if den_flag != 1: + raise ValueError("Expecting den_flag 1 but got %s" % den_flag) + + # Read SOC projectors + has_soc = extension_switch in (2, 3) + if has_soc: + line = fh.readline() + # Start at l=1 + nproj_soc = [int(t) for t in line.split()[:4]] + nproj_soc.insert(0, 0) + #print("nproj_soc", nproj_soc) + raise NotImplementedError("SOC not tested") + + lmax = int(header["lmax"]) + lloc = int(header["lloc"]) + nso = 1 if not has_soc else 2 + + # Will now proceed at the reading of pots and projectors + # rad(:)=radial grid r(i) + # vpspll(:,1),...,vpspll(:,lnmax)=nonlocal projectors + # vloc(:)=local potential + + #for nn in range(nso): + # Skip projectors (scalar relativistic, always present). + for l, npl in enumerate(nproj): + #if npl == 0 and l != lloc: continue + if npl == 0: continue + line = fh.readline() # l, ekb[:npl] + l_file = int(line.split()[0]) + if l != l_file: + #print("For l=%s, npl=%s" % (l, npl), "wrong line", line) + raise RuntimeError("l != l_file (%s != %s)" % (l, l_file)) + + for ir in range(mmax): + line = fh.readline() + assert int(line.split()[0]) == ir + 1 + + # Skip local potential. + if lloc == 4: + lloc_file = int(fh.readline()) + assert lloc_file == lloc + for ir in range(mmax): + fh.readline() + + # Skip model core charge function and derivatives, if present. + if fchrg > 1e-15: + for ir in range(mmax): + fh.readline() + + # Read pseudo valence charge in real space on the linear mesh. + # [i, r, PS_val, AE_val, AE_core] + rmesh, psval, aeval, aecore = [np.empty(mmax) for _ in range(4)] + for ir in range(mmax): + l = fh.readline() + #print("denline", l) + findx, rad, v1, v2, v3 = l.split() + assert ir + 1 == int(findx) + rmesh[ir] = float(rad.replace("D", "E")) + psval[ir] = float(v1.replace("D", "E")) + aeval[ir] = float(v2.replace("D", "E")) + aecore[ir] = float(v3.replace("D", "E")) + + #fact = 1 / (4 * np.pi) + #aeval *= fact + #psval *= fact + #aecore *= fact + try: + from scipy.integrate import simpson as simps + except ImportError: + from scipy.integrate import simps + r2 = rmesh ** 2 + + meta = dict( + aeval_integral=simps(aeval * r2, x=rmesh), + psval_integral=simps(psval * r2, x=rmesh), + aecore_integral=simps(aecore * r2, x=rmesh), + aeden_integral=simps((aecore + aeval) * r2, x=rmesh), + symbol=pseudo.symbol, + Z=pseudo.Z, + Z_val=pseudo.Z_val, + l_max=pseudo.l_max, + md5=pseudo.md5, + ) + + if fc_file is not None: + # Write results to file in "fc" format. The files contains: + # header with number of points and unknown parameter (not used) + # for each point in the radial mesh: + # 4 columns with the radial r coordinate, the core density at r, + # and the first and second derivatives of the core density. + # See http://www.abinit.org/downloads/core_electron + #aeval_spline = UnivariateSpline(rmesh, aeval) + #psval_spline = UnivariateSpline(rmesh, psval) + aecore_spline = UnivariateSpline(rmesh, aecore) + f1 = aecore_spline.derivative(1) + f2 = aecore_spline.derivative(2) + header = "%d 0.0 %s %s %s # nr, dummy, symbol, Z, Z_val" % ( + mmax, pseudo.symbol, pseudo.Z, pseudo.Z_val) + print(header, file=fc_file) + for ir in range(mmax): + r = rmesh[ir] + print(4 * "%.14E " % (r, aecore[ir], f1(r), f2(r)), file=fc_file) + + print("\n\n", file=fc_file) + print(json.dumps(meta, indent=4), file=fc_file) + print("", file=fc_file) + + if ae_file is not None: + # Write results to file in "AE" format + # The files contains: + # header with number of points and unknown parameter (not used) + # then 2 columns with the radial r coordinate and the AE density at r + # See http://www.abinit.org/downloads/all_core_electron + header = "%d 0.0 %s %s %s # nr, dummy, symbol, Z, Z_val" % ( + mmax, pseudo.symbol, pseudo.Z, pseudo.Z_val) + print(header, file=ae_file) + for ir in range(mmax): + print(2 * "%.14E " % (rmesh[ir], aecore[ir] + aeval[ir]), file=ae_file) + + print("\n\n", file=ae_file) + print(json.dumps(meta, indent=4), file=ae_file) + print("", file=ae_file) + + if plot: + import matplotlib.pyplot as plt + fig = plt.figure() + ax = fig.add_subplot(1, 1, 1) + ax.plot(rmesh, r2 * aecore, label="AE core * r**2") + ax.plot(rmesh, r2 * psval, label="PS valence * r**2") + ax.plot(rmesh, r2 * aeval, label="AE valence * r**2") + ax.grid(True) + ax.legend(loc="best") + plt.show() + + return dict2namedtuple(rmesh=rmesh, psval=psval, aeval=aeval, aecore=aecore) diff --git a/abipy/ppcodes/ppgen.py b/abipy/ppcodes/ppgen.py new file mode 100644 index 000000000..ab3d8cf1e --- /dev/null +++ b/abipy/ppcodes/ppgen.py @@ -0,0 +1,397 @@ +# coding: utf-8 +"""Interface for pseudopotential generators.""" +from __future__ import annotations + +import abc +import os +import tempfile +import collections +import shutil +import time + +from typing import Union, Optional # Any, +from shutil import which +from monty.termcolor import cprint +from abipy.flowtk.pseudos import Pseudo +from abipy.ppcodes.oncv_parser import OncvParser + +import logging +logger = logging.getLogger(__name__) + + +# Possible status of the PseudoGenerator. + +_STATUS2STR = collections.OrderedDict([ + (1, "Initialized"), # PseudoGenerator has been initialized + (2, "Running"), # PseudoGenerator is running. + (3, "Done"), # Calculation done, This does not imply that results are OK + (4, "Error"), # PP generator error. + (5, "Completed"), # Execution completed successfully. +]) + + +class Status(int): + """ + An integer representing the status of the 'PseudoGenerator`. + """ + def __repr__(self) -> str: + return "<%s: %s, at %s>" % (self.__class__.__name__, str(self), id(self)) + + def __str__(self) -> str: + """String representation.""" + return _STATUS2STR[self] + + @classmethod + def as_status(cls, obj: Union[Status, str]) -> Status: + """Convert obj into Status.""" + if isinstance(obj, cls): + return obj + else: + # Assume string + return cls.from_string(obj) + + @classmethod + def from_string(cls, s: str) -> Status: + """Return an instance from its string representation.""" + for num, text in _STATUS2STR.items(): + if text == s: + return cls(num) + else: + raise ValueError(f"Wrong string: `{s}`") + + +class _PseudoGenerator(metaclass=abc.ABCMeta): + """ + This object receives a string with the input file and generates a pseudopotential. + It calls the pp generator in a subprocess to produce the results in a temporary directory. + It also provides an interface to validate/analyze/plot the results + produced by the pseudopotential code. + + Concrete classes must: + + 1) call super().__init__() in their constructor. + 2) the object should have the input file stored in self.input_str + + Attributes: + + workdir: Working directory (output results are produced in workdir) + status: Flag defining the status of the ps generator. + retcode: Return code of the code + parser: Output parser. None if results are not available because + the calculations is still running or errors + pseudo: + :class:`Pseudo` object. None if not available + """ + + # Possible status + S_INIT = Status.from_string("Initialized") + S_RUN = Status.from_string("Running") + S_DONE = Status.from_string("Done") + S_ERROR = Status.from_string("Error") + S_OK = Status.from_string("Completed") + + ALL_STATUS = [ + S_INIT, + S_RUN, + S_DONE, + S_ERROR, + S_OK, + ] + + # Basenames for stdin/stdout/stderr. + stdin_basename: str = "run.in" + stdout_basename: str = "run.out" + stderr_basename: str = "run.err" + + def __init__(self, workdir: Optional[str] = None) -> None: + # Set the initial status. + self.set_status(self.S_INIT) + self._parser = None + + if workdir is not None: + workdir = os.path.abspath(workdir) + if os.path.exists(workdir): + raise RuntimeError(f"workdir `{workdir}` already exists") + self.workdir = workdir + + else: + # Build a temporary directory + self.workdir = tempfile.mkdtemp(prefix=self.__class__.__name__) + + def __repr__(self) -> str: + return "<%s at %s>" % (self.__class__.__name__, self.workdir) + + def __str__(self) -> str: + return "<%s at %s, status=%s>" % (self.__class__.__name__, self.workdir, self.status) + + @property + def stdin_path(self) -> str: + """Absolute path of the standard input.""" + return os.path.join(self.workdir, self.stdin_basename) + + @property + def stdout_path(self) -> str: + """Absolute path of the standard output.""" + return os.path.join(self.workdir, self.stdout_basename) + + @property + def stderr_path(self) -> str: + """Absolute path of the standard error.""" + return os.path.join(self.workdir, self.stderr_basename) + + @property + def status(self) -> Status: + """The status of the job.""" + return self._status + + @property + def retcode(self) -> Union[int, None]: + """ + Return code of the subprocess. + None if not available because e.g. the job has not been started yet. + """ + try: + return self._retcode + except AttributeError: + return None + + @property + def parser(self): + return self._parser + + #@property + #def pseudo(self) -> Union[Pseudo, None]: + # """Pseudo object or None if not available""" + # try: + # return self._pseudo + # except AttributeError: + # return None + + @property + def executable(self) -> str: + """Name of the executable.""" + return self._executable + + @property + def input_str(self) -> str: + """String with the input file.""" + return self._input_str + + def start(self) -> int: + """" + Run the calculation in a subprocess (non-blocking interface) + Return 1 if calculation started, 0 otherwise. + """ + if self.status >= self.S_RUN: + return 0 + + with open(self.stdin_path, "w") as fh: + fh.write(self.input_str) + + # Start the calculation in a subprocess and return. + args = [self.executable, "<", self.stdin_path, ">", self.stdout_path, "2>", self.stderr_path] + self.cmd_str = " ".join(args) + + from subprocess import Popen, PIPE + self.process = Popen(self.cmd_str, shell=True, stdout=PIPE, stderr=PIPE, cwd=self.workdir) + self.set_status(self.S_RUN, info_msg="Start on %s" % time.asctime) + + return 1 + + def start_and_wait(self) -> int: + """ + Run the calculation in a subprocess, wait for it and return exit status. + """ + self.start() + retcode = self.wait() + return retcode + + def poll(self) -> int: + """ + Check if child process has terminated. Set and return returncode attribute. + """ + self._retcode = self.process.poll() + + if self._retcode is not None: + self.set_status(self.S_DONE) + + return self._retcode + + def wait(self) -> int: + """ + Wait for child process to terminate. Set and return returncode attribute. + """ + self._retcode = self.process.wait() + self.set_status(self.S_DONE) + + return self._retcode + + def kill(self) -> None: + """Kill the child.""" + self.process.kill() + self.set_status(self.S_ERROR) + self.errors.append("Process has beed killed by host code.") + self._retcode = self.process.returncode + + def set_status(self, status, info_msg=None): + """ + Set the status. + + Args: + status: Status object or string representation of the status + info_msg: string with human-readable message used in the case of errors (optional) + """ + assert status in _STATUS2STR + self._status = status + + if status == self.S_DONE: + self.check_status() + + return status + + def get_stdin(self) -> str: + return self.input_str + + def get_stdout(self) -> str: + """ + Returns a string with the stdout of the calculation. + """ + with open(self.stdout_path, "rt") as out: + return out.read() + + def get_stderr(self) -> str: + """ + Return string with the stderr of the calculation. + """ + with open(self.stderr_path, "rt") as err: + return err.read() + + def rmtree(self) -> int: + """ + Remove the temporary directory. Return exit status + """ + try: + shutil.rmtree(self.workdir) + return 0 + except Exception: + return 1 + + ### ABC PROTOCOL ### + + #@abc.abstractproperty + #def parser(self): + # return _ + + @abc.abstractmethod + def check_status(self): + """ + This function checks the status of the task by inspecting the output and the + error files produced by the application + """ + +#import enum +#class CalcType(enum.Enum): +# nor = "non-relativistic" +# sr = "scalar-relativistic" +# fr = "fully-relativistic" + + + +class OncvGenerator(_PseudoGenerator): + """ + This object receives an input file for oncvpsp, a string + that defines the type of calculation (scalar-relativistic, ...) + runs the code in a temporary directory and provides methods + to validate/analyze/plot the final results. + + Attributes: + + retcode: Retcode of oncvpsp + """ + + @classmethod + def from_file(cls, path: str, calc_type: str, use_mgga: bool, workdir: Optional[str] = None) -> OncvGenerator: + """ + Build the object from a file containing the input parameters. + """ + with open(path, "rt") as fh: + input_str = fh.read() + return cls(input_str, calc_type, use_mgga=use_mgga, workdir=workdir) + + def __init__(self, input_str: str, calc_type: str, use_mgga: bool, workdir: Optional[str] = None): + super().__init__(workdir=workdir) + + self._input_str = input_str + self.calc_type = calc_type + self.use_mgga = use_mgga + + if self.use_mgga: + if calc_type != "scalar-relativistic": + raise ValueError("Only scalar-relativistic pseudos are supported in metagga mode!") + self._executable = { + "scalar-relativistic": which("oncvpspm.x"), + }[calc_type] + + else: + self._executable = { + "non-relativistic": which("oncvpspnr.x"), + "scalar-relativistic": which("oncvpsp.x"), + "fully-relativistic": which("oncvpspr.x"), + }[calc_type] + + if self._executable is None: + msg = "Cannot find oncvpsp executable in $PATH. Use `export PATH=dir_with_oncvps_executable:$PATH`" + raise RuntimeError(msg) + + def check_status(self): + """ + Check the status of the run, set and return self.status attribute. + """ + if self._status == self.S_OK: + return self._status + + parser = self._parser = OncvParser(self.stdout_path) + + try: + parser.scan() + except parser.Error as exc: + cprint(str(exc), color="red") + self._status = self.S_ERROR + return self._status + + logger.info("run_completed:", parser.run_completed) + if self.status == self.S_DONE and not parser.run_completed: + logger.info("Run is not completed!") + self._status = self.S_ERROR + + if parser.run_completed: + logger.info("setting status to S_OK") + self._status = self.S_OK + + psp8_filepath = os.path.join(self.workdir, parser.atsym + ".psp8") + + # Write psp8 file. + psp8_str = parser.get_psp8_str() + if psp8_str is not None: + with open(psp8_filepath, "wt") as fh: + fh.write(psp8_str) + + # Add UPF string if present. + upf_str = parser.get_upf_str() + if upf_str is not None: + with open(psp8_filepath.replace(".psp8", ".upf"), "wt") as fh: + fh.write(upf_str) + + # Initialize self.pseudo from file. + pseudo = Pseudo.from_file(psp8_filepath) + + # Add md5 checksum to dojo_report + if pseudo.has_dojo_report: + pseudo.dojo_report["md5"] = pseudo.compute_md5() + pseudo.write_dojo_report(report=pseudo.dojo_report) + + if parser.errors: + logger.warning("setting status to S_ERROR") + self._status = self.S_ERROR + + return self._status diff --git a/abipy/ppcodes/tests/test_oncvpsp.py b/abipy/ppcodes/tests/test_oncvpsp.py new file mode 100644 index 000000000..ddb0992a7 --- /dev/null +++ b/abipy/ppcodes/tests/test_oncvpsp.py @@ -0,0 +1,597 @@ +"""Unit tests for oncvpsp""" + +import sys +import os +import numpy as np +import abipy.data as abidata + +from abipy.core.testing import AbipyTest +from abipy.core.atom import NlkState +from abipy.ppcodes.oncv_parser import OncvParser +from abipy.ppcodes.oncv_plotter import MultiOncvPlotter, psp8_get_densities + + +def filepath(basename): + return os.path.join(abidata.dirpath, "oncv_data", basename) + + +class OncvOutputParserTest(AbipyTest): + + def test_nonrelativistic_oxygen_v2(self): + """ + Parsing the non-relativistic output file produced by ONCVPSPS v2 + """ + # Non-relativistic results + p = OncvParser(filepath("08_O_nr.out")) + repr(p); str(p) + + p.scan(verbose=1) + repr(p); str(p) + assert p.run_completed + + assert p.calc_type == "non-relativistic" + assert not p.relativistic + assert p.version == "2.1.1" + assert p.major_version == 2 + assert p.minor_version == 1 + assert p.patch_level == 1 + + assert p.atsym == "O" + assert p.z == 8.00 + assert p.iexc == 3 + assert p.lmax == 1 + assert p.nc == 1 + assert p.nv == 2 + assert p.lmax == 1 + + rhov, rhoc, rhom = p.densities["rhoV"], p.densities["rhoC"], p.densities["rhoM"] + assert rhov.rmesh[0] == 0.0100642 + assert rhov.rmesh[-1] == 3.9647436 + assert rhoc.values[0] == 53.3293576 + assert all(rhom.values == 0.0) + + # Build the plotter + plotter = p.get_plotter() + repr(plotter); str(plotter) + self._call_plotter_methods(plotter) + + #if self.has_nbformat(): + + def test_scalar_relativistic_oxygen_v2(self): + """ + Parsing the scalar-relativistic output file produced by ONCVPSPS v2 + """ + # Scalar relativistic output + p = OncvParser(filepath("08_O_sr.out")) + p.scan(verbose=1) + repr(p); str(p) + assert p.run_completed + + assert not p.relativistic + assert p.calc_type == "scalar-relativistic" + assert p.version == "2.1.1" + + assert p.atsym == "O" + assert p.z == 8.00 + assert p.iexc == 3 + assert p.nc == 1 + assert p.nv == 2 + assert p.lmax == 1 + + #assert p.hints["low"]["ecut"] == + #assert p.hints["normal"]["ecut"] == + #assert p.hints["high"]["ecut"] == + + #results = p.get_results() + + # Test potentials + vloc = p.potentials[-1] + pl0 = {0: -7.4449470, 1: -14.6551019, -1: -9.5661177} + + for l, pot in p.potentials.items(): + assert (pot.rmesh[0], pot.rmesh[-1]) == (0.0099448, 3.9647436) + str(l) + assert pot.values[0] == pl0[l] + assert all(pot.rmesh == vloc.rmesh) + + # Test wavefunctions + ae_wfs, ps_wfs = p.radial_wfs.ae, p.radial_wfs.ps + + nlk = (1, 0, None) + ae10, ps10 = ae_wfs[nlk], ps_wfs[nlk] + assert ae10[0] == (0.009945, -0.092997) + assert ps10[0] == (0.009945, 0.015273) + assert ae10[-1] == (3.964744, 0.037697) + assert ps10[-1] == (3.964744, 0.037694) + + nlk = (2, 1, None) + ae21, ps21 = ae_wfs[nlk], ps_wfs[nlk] + assert ae21[0] == (0.009945, 0.001463) + assert ps21[0] == (0.009945, 0.000396) + + # Test projectors + prjs = p.projectors + assert prjs[(1, 0, None)][0] == (0.009945, 0.015274) + assert prjs[(2, 0, None)][0] == (0.009945, -0.009284) + assert prjs[(1, 0, None)][-1] == (3.964744, 0.037697) + assert prjs[(2, 0, None)][-1] == (3.964744, 0.330625) + + assert prjs[(1, 1, None)][0] == (0.009945, 0.000395) + assert prjs[(2, 1, None)][0] == (0.009945, -0.000282) + + # Test convergence data + c = p.kene_vs_ecut + assert c[0].energies[0] == 5.019345 + assert c[0].values[0] == 0.010000 + assert c[0].energies[-1] == 25.317286 + assert c[0].values[-1] == 0.000010 + assert c[1].energies[0] == 19.469226 + assert c[1].values[0] == 0.010000 + + # Test log derivatives + ae0, ps0 = p.atan_logders.ae[0], p.atan_logders.ps[0] + assert (ae0.energies[0], ae0.values[0]) == (2.000000, 0.706765) + assert (ps0.energies[0], ps0.values[0]) == (2.000000, 0.703758) + assert ae0.energies[-1] == -2.000000 + assert ps0.energies[-1] == -2.000000 + + ae1, ps1 = p.atan_logders.ae[1], p.atan_logders.ps[1] + assert (ae1.energies[0], ae1.values[0]) == (2.000000, -2.523018) + assert ps1.values[0] == -2.521334 + + # Build the plotter + plotter = p.get_plotter() + repr(plotter); str(plotter) + assert plotter is not None + self._call_plotter_methods(plotter) + + def test_relativistic_oxygen_v2(self): + """ + Parsing the fully-relativistic output file produced by ONCVPSPS v2 + """ + p = OncvParser(filepath("08_O_r.out")) + + p.scan(verbose=1) + repr(p); str(p) + assert p.run_completed + + assert p.relativistic + assert p.calc_type == "fully-relativistic" + assert p.version == "2.1.1" + + assert p.atsym == "O" + assert p.z == 8.00 + assert p.iexc == 3 + assert p.nc == 1 + assert p.nv == 2 + assert p.lmax == 1 + assert p.rc5 == 1.40 + assert p.rc_l[0] == 1.60 + assert p.rc_l[1] == 1.60 + + # TODO: Wavefunctions + + # Build the plotter + plotter = p.get_plotter() + repr(plotter); str(plotter) + self._call_plotter_methods(plotter) + + def test_scalar_relativistic_oxygen_v4(self): + """ + Parsing the scalar-relativistic output file produced by ONCVPSPS v4 + """ + # Scalar relativistic output + p = OncvParser(filepath("O_sr_v4.out")) + p.scan(verbose=1) + repr(p); str(p) + assert p.run_completed + + assert not p.relativistic + assert p.calc_type == "scalar-relativistic" + assert p.version == "4.0.1" + + assert p.atsym == "O" + assert p.z == 8.00 + assert p.iexc == -106131 + assert p.nc == 1 + assert p.nv == 2 + assert p.lmax == 2 + assert p.rc5 == 1.2 + assert p.rc_l[0] == 1.35000 + assert p.rc_l[1] == 1.45000 + assert p.rc_l[2] == 1.25000 + + assert p.get_input_str() + assert p.get_psp8_str() + assert p.get_upf_str() + + # Calculating optimized projector # 1 + # for l= 0 + nlk = NlkState(n=1, l=0, k=None) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [12.17, 21.67, 27.75, 32.41]) + + #Calculating optimized projector # 2 + # for l= 1 + nlk = NlkState(n=2, l=1, k=None) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [22.49, 30.35, 36.39, 41.55]) + + # Test potentials + vloc = p.potentials[-1] + pl0 = {0: -4.6445128, 1: -15.3234007, 2: 20.9698547, -1: -10.0124145} + + for l, pot in p.potentials.items(): + assert (pot.rmesh[0], pot.rmesh[-1]) == (0.0099582, 2.4161798) + str(l) + assert pot.values[0] == pl0[l] + assert all(pot.rmesh == vloc.rmesh) + + # Test wavefunctions + ae_wfs, ps_wfs = p.radial_wfs.ae, p.radial_wfs.ps + + nlk = (2, 0, None) + ae20, ps20 = ae_wfs[nlk], ps_wfs[nlk] + assert ae20[0] == (0.009958, -0.093703) + assert ps20[0] == (0.009958, 0.013614) + assert ae20[-1] == (5.998219, 0.002734) + assert ps20[-1] == (5.998219, 0.002734) + + nlk = (2, 1, None) + ae21, ps21 = ae_wfs[nlk], ps_wfs[nlk] + assert ae21[0] == (0.009958, 0.001474) + assert ps21[0] == (0.009958, 0.000456) + + # Test projectors + prjs = p.projectors + assert prjs[(1, 0, None)][0] == (0.009958, 0.090486) + assert prjs[(2, 0, None)][0] == (0.009958, -0.025921) + assert prjs[(1, 0, None)][-1] == (1.580056, -0.000000) + assert prjs[(2, 0, None)][-1] == (1.580056, -0.000000) + + assert prjs[(1, 1, None)][0] == (0.009958, 0.002057) + assert prjs[(2, 1, None)][0] == (0.009958, -0.000854) + + # Test convergence data + c = p.kene_vs_ecut + assert c[0].energies[0] == 12.172858 + assert c[0].values[0] == 0.010000 + assert c[0].energies[-1] == 32.408732 + assert c[0].values[-1] == 0.000010 + assert c[1].energies[0] == 23.772439 + assert c[1].values[0] == 0.010000 + + # Test log derivatives + ae0, ps0 = p.atan_logders.ae[0], p.atan_logders.ps[0] + assert (ae0.energies[0], ae0.values[0]) == (12.000000, -1.601062) + assert (ps0.energies[0], ps0.values[0]) == (12.000000, -1.611618) + + assert (ae0.energies[-1], ae0.values[-1]) == (-11.980000, 4.528242) + assert (ps0.energies[-1], ps0.values[-1]) == (-11.980000, 4.528290) + + ae1, ps1 = p.atan_logders.ae[1], p.atan_logders.ps[1] + assert (ae1.energies[0], ae1.values[0]) == (12.000000, 1.066272) + assert ps1.values[0] == 1.286771 + + # Build the plotter + plotter = p.get_plotter() + repr(plotter); str(plotter) + self._call_plotter_methods(plotter) + + def test_relativistic_oxygen_v4(self): + """ + Parsing the relativistic output file produced by ONCVPSPS v4 + """ + # Fully relativistic output + p = OncvParser(filepath("O_fr_v4.out")) + p.scan(verbose=1) + repr(p); str(p) + assert p.run_completed + assert p.is_oncvpsp and not p.is_metapsp + + assert p.relativistic + assert p.calc_type == "relativistic" + assert p.version == "4.0.1" + + assert p.atsym == "O" + assert p.z == 8.00 + assert p.iexc == 3 + assert p.nc == 1 + assert p.nv == 2 + assert p.lmax == 1 + assert p.rc5 == 1.4 + assert p.rc_l[0] == 1.6 + assert p.rc_l[1] == 1.6 + + assert p.get_input_str() + assert p.get_psp8_str() + assert p.get_upf_str() + + # Calculating optimized projector # 1 + # for l= 0 + nlk = NlkState(n=1, l=0, k=1) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [5.01, 14.64, 21.05, 25.33]) + + # Calculating optimized projector # 2 + # for l= 0 + nlk = NlkState(n=2, l=0, k=1) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [4.55, 15.25, 22.10, 26.79]) + + #Calculating optimized projector # 1 + # for l= 1 + nlk = NlkState(n=1, l=1, k=1) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [19.49, 24.68, 28.68, 35.11]) + + #Calculating optimized projector # 2 + # for l= 1 + nlk = NlkState(n=2, l=1, k=1) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [19.17, 25.12, 29.75, 41.34]) + + # Check values associated to Fortran ikap = 2 + + #Calculating optimized projector # 1 + # for l= 1 + nlk = NlkState(n=1, l=1, k=2) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [19.50, 24.69, 28.69, 35.19]) + + #Calculating optimized projector # 2 + #for l= 1 + nlk = NlkState(n=2, l=1, k=2) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [19.19, 25.13, 29.76, 41.40]) + + # Test potentials + vloc = p.potentials[-1] + #pl0 = {0: -4.6445128, 1: -15.3234007, 2: 20.9698547, -1: -10.0124145} + + #for l, pot in p.potentials.items(): + # assert (pot.rmesh[0], pot.rmesh[-1]) == (0.0099582, 2.4161798) + # str(l) + # assert pot.values[0] == pl0[l] + # assert all(pot.rmesh == vloc.rmesh) + + # Test wavefunctions + ae_wfs, ps_wfs = p.radial_wfs.ae, p.radial_wfs.ps + + # n= 2, l= 0, kap=-1, all-electron wave function, pseudo w-f + nlk = NlkState.from_nlkap(n=2, l=0, kap=-1) + ae20, ps20 = ae_wfs[nlk], ps_wfs[nlk] + assert ae20[0] == (0.020088, -0.172694) + assert ps20[0] == (0.020088, 0.030838) + assert ae20[-1] == (3.976916, 0.037123) + assert ps20[-1] == (3.976916, 0.037120) + + # scattering, iprj= 2, l= 0, kap=-1, all-electron wave function, pseudo w-f + ae_swfs, ps_swfs = p.scattering_wfs.ae, p.scattering_wfs.ps + nlk = NlkState.from_nlkap(n=2, l=0, kap=-1) + ae20, ps20 = ae_swfs[nlk], ps_swfs[nlk] + assert ae20[0] == (0.020088, -0.115970) + assert ps20[0] == (0.020088, 0.021593) + assert ae20[-1] == (3.976916, 0.315387) + assert ps20[-1] == (3.976916, 0.315347) + + #n= 2, l= 1, kap=-2, all-electron wave function, pseudo w-f + nlk = NlkState.from_nlkap(n=2, l=1, kap=-2) + ae21, ps21 = ae_wfs[nlk], ps_wfs[nlk] + assert ae21[0] == (0.020088, 0.005663) + assert ps21[0] == (0.020088, 0.001610) + assert ae21[-1] == (3.976916, 0.099985) + assert ps21[-1] == (3.976916, 0.099981) + + # Test projectors + # l rmesh p1 p2 + #!J 0 0.009976 0.069866 0.060936 + + prjs = p.projectors + + nlk_1 = NlkState(n=1, l=0, k=1) + assert prjs[nlk_1][0] == (0.009976, 0.069866) + assert prjs[nlk_1][-1] == (1.741907, -0.000000) + + nlk_2 = NlkState(n=2, l=0, k=1) + assert prjs[nlk_2][0] == (0.009976, 0.060936) + assert prjs[nlk_2][-1] == (1.741907, 0.000000) + + #!J -1 0.009976 0.001728 -0.000948 + nlk_1 = NlkState(n=1, l=1, k=1) + nlk_2 = NlkState(n=2, l=1, k=1) + #print(prjs.keys()) + assert prjs[nlk_1][0] == (0.009976, 0.001728) + assert prjs[nlk_2][0] == (0.009976, -0.000948) + + #!J 1 0.009976 0.001729 -0.000948 + nlk_1 = NlkState(n=1, l=1, k=2) + nlk_2 = NlkState(n=2, l=1, k=2) + assert prjs[nlk_1][0] == (0.009976, 0.001729) + assert prjs[nlk_2][0] == (0.009976, -0.000948) + + # Test convergence data + # convergence profiles, (ll=0,lmax), kappa average + c = p.kene_vs_ecut + assert c[0].energies[0] == 5.013968 + assert c[0].values[0] == 0.010000 + assert c[0].energies[-1] == 25.333857 + assert c[0].values[-1] == 0.000010 + assert c[1].energies[0] == 19.486256 + assert c[1].values[0] == 0.010000 + + # Test log derivatives + # log derivativve data for plotting, l= 0 + # atan(r * ((d psi(r)/dr)/psi(r))), r= 1.62 + # l, energy, all-electron, pseudopotential + + ae0, ps0 = p.atan_logders.ae[0], p.atan_logders.ps[0] + assert (ae0.energies[0], ae0.values[0]) == (2.000000, 0.588898) + assert (ps0.energies[0], ps0.values[0]) == (2.000000, 0.585331) + assert (ae0.energies[-1], ae0.values[-1]) == (-1.980000, 3.922676) + assert (ps0.energies[-1], ps0.values[-1]) == (-1.980000, 3.922364) + + # l = -1 + ae1, ps1 = p.atan_logders.ae[-1], p.atan_logders.ps[-1] + assert (ae1.energies[0], ae1.values[0]) == (2.000000, -2.633391) + assert (ps1.energies[0], ps1.values[0]) == (2.000000, -2.630644) + + # l = -2 + ae2, ps2 = p.atan_logders.ae[-2], p.atan_logders.ps[-2] + assert (ae2.energies[0], ae2.values[0]) == (2.000000, -0.713245) + assert (ps2.energies[0], ps2.values[0]) == (2.000000, -0.537181) + + ## Build the plotter + plotter = p.get_plotter() + repr(plotter); str(plotter) + self._call_plotter_methods(plotter) + + def test_multi_oncv_plotter(self): + """Testing MultiOncvPlotter.""" + paths = [filepath("O_fr_v4.out"), filepath("O_sr_v4.out")] + plotter = MultiOncvPlotter.from_files(paths) + assert len(plotter) == 2 + self._call_plotter_methods(plotter) + + def _call_plotter_methods(self, plotter): + if self.has_matplotlib(): + assert plotter.plot_atan_logders(show=False) + assert plotter.plot_radial_wfs(show=False) + assert plotter.plot_projectors(show=False) + assert plotter.plot_densities(show=False) + assert plotter.plot_der_densities(order=1, show=False) + assert plotter.plot_potentials(show=False) + assert plotter.plot_der_potentials(order=1, show=False) + assert plotter.plot_kene_vs_ecut(show=False) + assert plotter.plot_atanlogder_econv(show=False) + assert plotter.plot_den_formfact(ecut=20, show=False) + + if isinstance(plotter, OncvParser) and plotter.parser.is_metapsp: + assert plotter.plot_vtau(show=False) + assert plotter.plot_tau(show=False) + + #if self.has_plotly(): + + def test_psp8_get_densities(self): + """ + Testing get_densities from psp8 format. + """ + n = psp8_get_densities(filepath("Lu-sp.psp8"), + fc_file=sys.stdout, + ae_file=sys.stdout, plot=False) + assert len(n.rmesh) == 600 + + self.assert_almost_equal([n.rmesh[0], n.psval[0], n.aeval[0], n.aecore[0]], + np.fromstring("0.0000000000000E+00 5.9161585718320E-02 3.9966212837901E+03 3.9211427139394E+06", sep=" ")) + self.assert_almost_equal([n.rmesh[-1], n.psval[-1], n.aeval[-1], n.aecore[-1]], + np.fromstring("5.9900000000000E+00 4.1502186898788E-03 4.1500999839310E-03 4.6618962684673E-06", sep=" ")) + + with self.assertRaises(RuntimeError): + path = os.path.join(abidata.pseudo_dir, "O.psp8") + psp8_get_densities(path, plot=False) + + # TODO: SOC + + def test_scalar_relativistic_cooper_metagga(self): + """ + Parsing the scalar-relativistic output file produced by metapsp-1.0.1 + """ + # Scalar relativistic output + p = OncvParser(filepath("29_Cu_m.out")) + p.scan(verbose=1) + repr(p); str(p) + assert p.run_completed + assert not p.is_oncvpsp and p.is_metapsp + + assert not p.relativistic + assert p.calc_type == "scalar-relativistic" + assert p.version == "1.0.1" + + assert p.atsym == "Cu" + assert p.z == 29.00 + assert p.iexc == 5 + assert p.nc == 3 + assert p.nv == 4 + assert p.lmax == 2 + assert p.rc5 == 1.5 + assert p.rc_l[0] == 1.90000 + assert p.rc_l[1] == 2.10000 + assert p.rc_l[2] == 2.10000 + + # In this output, psfile is none + #assert p.get_input_str() + #assert p.get_psp8_str() + #assert p.get_upf_str() + + # Calculating optimized projector # 1 + # for l= 0 + nlk = NlkState(n=1, l=0, k=None) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [12.99, 16.73, 19.91, 22.56]) + + #Calculating optimized projector # 2 + # for l= 1 + nlk = NlkState(n=2, l=1, k=None) + ke = p.kinerr_nlk[nlk] + self.assert_almost_equal(ke.values_ha, [0.01000, 0.00100, 0.00010, 0.00001]) + self.assert_almost_equal(ke.ecuts, [14.68, 20.8 , 25.39, 29.03]) + + # Test potentials + vloc = p.potentials[-1] + pl0 = {0: -29.089934, 1: -31.848153, 2: -34.020455, -1: -27.027998} + + for l, pot in p.potentials.items(): + assert (pot.rmesh[0], pot.rmesh[-1]) == (0.009994, 3.088443) + str(l) + assert pot.values[0] == pl0[l] + assert all(pot.rmesh == vloc.rmesh) + + # Test wavefunctions + ae_wfs, ps_wfs = p.radial_wfs.ae, p.radial_wfs.ps + + nlk = (3, 2, None) + ae32, ps32 = ae_wfs[nlk], ps_wfs[nlk] + assert ae32[0] == (0.009994 , 0.000226) + assert ps32[0] == (0.009994 , 0.000007) + assert ae32[-1] == (5.987503 , 0.021621) + assert ps32[-1] == (5.987503 , 0.021621) + + # Test projectors + prjs = p.projectors + assert prjs[(1, 2, None)][0] == (0.009994, 0.000020) + assert prjs[(2, 2, None)][0] == (0.009994, -0.000010) + + # Test convergence data + c = p.kene_vs_ecut + assert c[0].energies[0] == 12.985434 + assert c[0].values[0] == 0.010000 + assert c[0].energies[-1] == 22.558500 + assert c[0].values[-1] == 0.000010 + assert c[1].energies[0] == 19.543935 + assert c[1].values[0] == 0.010000 + + # Test log derivatives + ae0, ps0 = p.atan_logders.ae[0], p.atan_logders.ps[0] + assert (ae0.energies[0], ae0.values[0]) == (5.000000, 1.148959) + assert (ps0.energies[0], ps0.values[0]) == (5.000000, 1.089880) + + assert (ae0.energies[-1], ae0.values[-1]) == (-4.980000, 7.624244) + assert (ps0.energies[-1], ps0.values[-1]) == (-4.980000, 7.624659) + + ae1, ps1 = p.atan_logders.ae[1], p.atan_logders.ps[1] + assert (ae1.energies[0], ae1.values[0]) == (5.000000, 2.803894) + assert ps1.values[0] == 3.285840 + + # Build the plotter + plotter = p.get_plotter() + repr(plotter); str(plotter) + self._call_plotter_methods(plotter) diff --git a/abipy/scripts/abicheck.py b/abipy/scripts/abicheck.py index 00c4e9d0d..8cf0c2a2e 100755 --- a/abipy/scripts/abicheck.py +++ b/abipy/scripts/abicheck.py @@ -3,12 +3,14 @@ This script checks that the options in ``manager.yml``, ``scheduler.yml``, and the environment on the local machine are properly configured. """ +from __future__ import annotations import sys import os import argparse import abipy.flowtk as flowtk import abipy.data as abidata +import abipy.tools.cli_parsers as cli from monty import termcolor from monty.termcolor import cprint @@ -34,7 +36,7 @@ def show_managers(options): return 0 -def get_epilog(): +def get_epilog() -> str: return """\ Usage example: abicheck.py ==> Test abipy installation and requirements. @@ -56,6 +58,8 @@ def get_parser(with_epilog=False): help='verbose, can be supplied multiple times to increase verbosity.') parser.add_argument('--no-colors', default=False, action="store_true", help='Disable ASCII colors.') parser.add_argument('--with-flow', default=False, action="store_true", help='Build and run small abipy flow for testing.') + parser.add_argument("-d", '--flow-dir', type=str, default=None, + help='Create AbiPy flow in this directory. If None, a default directory is used,') parser.add_argument("-m", '--show-managers', default=False, action="store_true", help="Print table with manager files provided by AbiPy.") @@ -84,13 +88,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): except Exception: show_examples_and_exit(error_code=1) - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) + cli.set_loglevel(options.loglevel) if options.no_colors: # Disable colors @@ -169,7 +167,7 @@ def make_scf_nscf_inputs(paral_kgb=0): def run_flow(options): """Run test flow, return exit code.""" import tempfile - workdir = tempfile.mkdtemp() + workdir = tempfile.mkdtemp(dir=options.flow_dir) cprint("Running small flow in workdir: %s" % workdir, "yellow") print() diff --git a/abipy/scripts/abicomp.py b/abipy/scripts/abicomp.py index 0509c5196..7502b3163 100755 --- a/abipy/scripts/abicomp.py +++ b/abipy/scripts/abicomp.py @@ -4,17 +4,19 @@ By default the script displays the results/plots in the shell. Use --ipython to start an ipython terminal or -nb to generate an ipython notebook. """ +from __future__ import annotations import sys import os import argparse import numpy as np +import abipy.tools.cli_parsers as cli from pprint import pprint from monty.functools import prof_main from monty.termcolor import cprint from abipy import abilab -from abipy.tools.plotting import get_ax_fig_plt, GenericDataFilesPlotter +from abipy.tools.plotting import get_ax_fig_plt, GenericDataFilesPlotter, FilesPlotter, Exposer def remove_disordered(structures, paths): @@ -36,14 +38,6 @@ def df_to_clipboard(options, df): df.to_clipboard() -def abiview_fields(options): - """Animate fields with Mayavi. Accept any file with density or potential ...""" - from abipy.display.mvtk import MayaviFieldAnimator - a = MayaviFieldAnimator(options.filepath) - a.volume_animate() - return 0 - - def abicomp_structure(options): """ Compare crystalline structures. Use `--group` to compare for similarity. @@ -235,7 +229,7 @@ def abicomp_xrd(options): Compare X-ray diffraction plots (requires FILES with structure). """ if len(options.paths) < 2: - print("You need more than one structure to compare!") + print("You need more than one structures to compare!") return 1 structures = [abilab.Structure.from_file(p) for p in options.paths] @@ -263,6 +257,15 @@ def abicomp_data(options): return 0 +def abicomp_png(options): + """ + Use matplotlib to plot multiple png files on a grid. + """ + plotter = FilesPlotter(options.paths) + plotter.plot() + return 0 + + def abicomp_ebands(options): """ Plot electron bands on a grid. @@ -320,8 +323,13 @@ def abicomp_edos(options): no_browser=options.no_browser) elif options.expose: - plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, - verbose=options.verbose) + if options.plotly: + # Plotly version. + plotter.plotly_expose(chart_studio=options.chart_studio, verbose=options.verbose) + else: + # Matplotlib version. + plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + verbose=options.verbose) else: # Optionally, print info on gaps and their location @@ -359,8 +367,14 @@ def abicomp_phbands(options): no_browser=options.no_browser) elif options.expose: - plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, - verbose=options.verbose) + if options.plotly: + # Plotly version. + plotter.plotly_expose(chart_studio=options.chart_studio, verbose=options.verbose) + else: + # Matplotlib version. + plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + verbose=options.verbose) + else: # Print pandas Dataframe. abilab.print_dataframe(plotter.get_phbands_frame()) @@ -374,7 +388,10 @@ def abicomp_phbands(options): # Select the plot method to call. if options.plot_mode == "panel": - plotter.get_panel().show() + pn = abilab.abipanel() + serve_kwargs = serve_kwargs_from_options(options) + app = plotter.get_panel(template=options.panel_template) + return pn.serve(app, **serve_kwargs) elif options.plot_mode != "None": plotfunc = getattr(plotter, options.plot_mode, None) @@ -398,8 +415,13 @@ def abicomp_phdos(options): plotter=plotter) elif options.expose: - plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, - verbose=options.verbose) + if options.plotly: + # Plotly version. + plotter.plotly_expose(chart_studio=options.chart_studio, verbose=options.verbose) + else: + # matplotlib version. + plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + verbose=options.verbose) elif options.notebook: plotter.make_and_open_notebook(foreground=options.foreground, @@ -537,29 +559,28 @@ def abicomp_gkq(options): """ if options.diff: robot = _build_robot(options, trim_paths=True) - robot.plot_gkq2_diff() else: return _invoke_robot(options) -def abicomp_wrmax(options): +def abicomp_v1qavg(options): """ - Compare multiple WRmax files with first order potential in real-space. + Compare multiple V1QAVG files with the average of the DFPT V1 potentials as function of q-point. """ return _invoke_robot(options) -def abicomp_v1qavg(options): +def abicomp_sigeph(options): """ - Compare multiple V1QAVG files with the average of the DFPT V1 potentials as function of q-point. + Compare multiple SIGEPH files storing the e-ph self-energy. """ return _invoke_robot(options) -def abicomp_sigeph(options): +def abicomp_rta(options): """ - Compare multiple SIGEPH files storing the e-ph self-energy. + Compare multiple RTA files. """ return _invoke_robot(options) @@ -571,8 +592,61 @@ def abicomp_abiwan(options): return _invoke_robot(options) +def abicomp_abiwan_ebands(options): + """ + Compare Wannier-interpolated band structure with ab-initio data. + """ + if len(options.paths) != 2: + raise ValueError("Two arguments with ABIWAN.nc and netcdf file with ElectronBands are required!") + from abipy.wannier90 import AbiwanFile + abiwan_path, ebands_path = options.paths[0], options.paths[1] + if not abiwan_path.endswith("ABIWAN.nc"): + abiwan_path, ebands_path = ebands_path, abiwan_path + + abiwan = AbiwanFile(abiwan_path) + print(abiwan) + + with Exposer.as_exposer("mpl") as e: + plot_kws = dict(show=False) + e(abiwan.hwan.plot(**plot_kws)) + e(abiwan.plot_with_ebands(ebands_path, **plot_kws)) + + return 0 + + +def abicomp_skw_ibz_kpath(options): + """ + Compare star-function-interpolated band structure with ab-initio band structure computed along a k-path. + """ + if len(options.paths) != 2: + raise ValueError("Two arguments with netcdf files providing ElectronBands are required!") + + ebands_kpath = abilab.ElectronBands.from_file(options.paths[0]) + ebands_kmesh = abilab.ElectronBands.from_file(options.paths[1]) + + if not ebands_kpath.kpoints.is_path: + ebands_kpath, ebands_kmesh = ebands_kmesh, ebands_kpath + + # Be permissive: exchange k-path and k-mesh if nededed. + if not ebands_kpath.kpoints.is_path: + raise ValueError("Need k-points along a k-path.") + if not ebands_kmesh.kpoints.is_mpmesh: + raise ValueError("Need k-points belonging to a k-mesh.") + + print("Interpolating band energies with lpratio:", options.lpratio) + print("If the fit is not optimal, try to increase lpratio") + vertices_names = [(k.frac_coords, k.name) for k in ebands_kpath.kpoints] + r = ebands_kmesh.interpolate(lpratio=options.lpratio, vertices_names=vertices_names, line_density=0) + + plotter = abilab.ElectronBandsPlotter() + plotter.add_ebands("ab-initio", ebands_kpath) + plotter.add_ebands("SKW interpolated", r.ebands_kpath) + plotter.combiplot() + + return 0 + def abicomp_pseudos(options): - """"Compare multiple pseudos Print table to terminal.""" + """"Compare multiple pseudos and print table to terminal.""" # Make sure entries in index are unique. index = [os.path.basename(p) for p in options.paths] if len(index) != len(set(index)): index = [os.path.relpath(p) for p in options.paths] @@ -582,7 +656,19 @@ def abicomp_pseudos(options): return 0 -def _build_robot(options, trim_paths=False): +def abicomp_psps(options): + """"Compare multiple PSPS.nc files.""" + return _invoke_robot(options) + + +def abicomp_gwr(options): + """ + Compare multiple GWR files. + """ + return _invoke_robot(options) + + +def _build_robot(options, trim_paths=True): """Build robot instance from CLI options.""" robot_cls = abilab.Robot.class_for_ext(options.command.upper()) @@ -626,20 +712,24 @@ def _invoke_robot(options): """ robot = _build_robot(options) + if options.expose_web: + options.expose = True + if options.notebook: robot.make_and_open_notebook(foreground=options.foreground, classic_notebook=options.classic_notebook, no_browser=options.no_browser) elif options.panel: - try: - import panel # noqa: F401 - except ImportError as exc: - cprint("Use `conda install panel` or `pip install panel` to install the python package.", "red") - raise exc + if not hasattr(robot, "get_panel"): + cprint(f"`{type(robot)} does not provide get_panel method", color="red") + return 1 - robot.get_panel().show() - return 0 + pn = abilab.abipanel() + + serve_kwargs = serve_kwargs_from_options(options) + app = robot.get_panel(template=options.panel_template) + return pn.serve(app, **serve_kwargs) elif options.print or options.expose: robot.trim_paths() @@ -655,19 +745,27 @@ def _invoke_robot(options): print(robot.to_string(verbose=options.verbose)) else: - cprint("%s does not provide `get_dataframe` method. Using `to_string`" % ( - robot.__class__.__name__), "yellow") + cprint("%s does not provide `get_dataframe` method. Using `to_string`" % (robot.__class__.__name__), "yellow") print(robot.to_string(verbose=options.verbose)) if not options.verbose: print("\nUse --verbose for more information") - if options.expose and hasattr(robot, "expose"): - robot.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, - verbose=options.verbose) + if options.expose: + + if options.plotly: + # plotly version. + if hasattr(robot, "plotly_expose"): + robot.plotly_expose(chart_studio=options.chart_studio, verbose=options.verbose) + else: + cprint("<%s> does not implement plotly_expose method" % type(robot), color="red") - #elif options.ipython: + elif hasattr(robot, "expose"): + # matplotlib version. + robot.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + verbose=options.verbose, use_web=options.expose_web) else: + # Default behaviour: use ipython import IPython robot.trim_paths() IPython.embed(header=repr(robot) + "\n\nType `robot` in the terminal and use to list its methods", @@ -796,6 +894,7 @@ def get_epilog(): abicomp.py edos *_WFK.nc -nb => Compare electron DOS in the jupyter notebook. abicomp.py optic DIR -nb => Compare optic results in the jupyter notebook. abicomp.py abiwan *_ABIWAN.nc --expose => Compare ABIWAN results, produce matplotlib figures. + abicomp.py abiwan_ebands out_ABIWAN.nc out_GSR.nc --expose => Compare Wannier-interpolated band structure with ab-initio results. ######### # Phonons @@ -839,6 +938,7 @@ def get_epilog(): abicomp.py getattr energy *_GSR.nc => Extract the `energy` attribute from a list of GSR files and print results. Use `--list` to get list of possible names. abicomp.py pseudos PSEUDO_FILES => Compare pseudopotential files. + abicomp.py psps *_PSPS.nc => Compare multiple PSPS.nc files produced with prtpsp 1. ############ # Text files @@ -950,11 +1050,16 @@ def get_parser(with_epilog=False): # Parent parser for commands supporting expose expose_parser = argparse.ArgumentParser(add_help=False) expose_parser.add_argument("-e", '--expose', default=False, action="store_true", - help='Execute robot.expose to produce a pre-defined list of matplotlib figures.') + help='Execute robot.expose to produce a pre-defined list of (matplotlib|plotly) figures.') expose_parser.add_argument("-s", "--slide-mode", default=False, action="store_true", help="Used if --expose to iterate over figures. Expose all figures at once if not given on the CLI.") expose_parser.add_argument("-t", "--slide-timeout", type=int, default=None, help="Close figure after slide-timeout seconds (only if slide-mode). Block if not specified.") + expose_parser.add_argument("-ply", "--plotly", default=False, action="store_true", + help='Generate plotly plots in browser instead of matplotlib. WARNING: Not all the features are supported.') + expose_parser.add_argument("-cs", "--chart-studio", default=False, action="store_true", + help="Push figure to plotly chart studio ." + + "Requires --plotly option and user account at https://chart-studio.plotly.com.") # Build the main parser. parser = argparse.ArgumentParser(epilog=get_epilog() if with_epilog else "", @@ -1012,6 +1117,9 @@ def get_parser(with_epilog=False): p_data.add_argument("-i", "--use-index", default=False, action="store_true", help="Use the row index as x-value in the plot. By default the plotter uses the first column as x-values") + # Subparser for png command. + p_png = subparsers.add_parser('png', parents=[copts_parser], help=abicomp_png.__doc__) + # Subparser for ebands command. p_ebands = subparsers.add_parser('ebands', parents=[copts_parser, ipy_parser, pandas_parser], help=abicomp_ebands.__doc__) @@ -1062,8 +1170,17 @@ def get_parser(with_epilog=False): # Parent parser for *robot* commands robot_parser = argparse.ArgumentParser(add_help=False) robot_parser.add_argument('--no-walk', default=False, action="store_true", help="Don't enter subdirectories.") - robot_parser.add_argument('--panel', default=False, action="store_true", + robot_parser.add_argument("-pn", '--panel', default=False, action="store_true", help="Open GUI in web browser, requires panel package. WARNING: Experimental") + robot_parser.add_argument("-pnt", "--panel-template", default="FastList", type=str, + help="Specify template for panel dasboard." + + "Possible values are: FastList, FastGrid, Golden, Bootstrap, Material, React, Vanilla." + + "Default: FastList" + ) + robot_parser.add_argument("--port", default=0, type=int, help="Allows specifying a specific port when serving panel app.") + robot_parser.add_argument("-ew", "--expose-web", default=False, action="store_true", + help="Generate matplotlib plots in $BROWSER instead of X-server.\n" + + "WARNING: Not all the features are supported.") robot_parents = [copts_parser, robot_ipy_parser, robot_parser, expose_parser, pandas_parser] p_gsr = subparsers.add_parser('gsr', parents=robot_parents, help=abicomp_gsr.__doc__) @@ -1076,15 +1193,28 @@ def get_parser(with_epilog=False): p_optic = subparsers.add_parser('optic', parents=robot_parents, help=abicomp_optic.__doc__) p_a2f = subparsers.add_parser('a2f', parents=robot_parents, help=abicomp_a2f.__doc__) p_sigeph = subparsers.add_parser('sigeph', parents=robot_parents, help=abicomp_sigeph.__doc__) + p_rta = subparsers.add_parser('rta', parents=robot_parents, help=abicomp_rta.__doc__) p_gkq = subparsers.add_parser('gkq', parents=robot_parents, help=abicomp_gkq.__doc__) p_gkq.add_argument('-d', '--diff', default=False, action="store_true", help='Plot difference between eph matrix elements.') p_v1qavg = subparsers.add_parser('v1qavg', parents=robot_parents, help=abicomp_v1qavg.__doc__) - p_wrmax = subparsers.add_parser('wrmax', parents=robot_parents, help=abicomp_wrmax.__doc__) + #p_wrmax = subparsers.add_parser('wrmax', parents=robot_parents, help=abicomp_wrmax.__doc__) p_abiwan = subparsers.add_parser('abiwan', parents=robot_parents, help=abicomp_abiwan.__doc__) + p_gwr = subparsers.add_parser('gwr', parents=robot_parents, help=abicomp_gwr.__doc__) + + # Subparser for abiwan_ebands command. + p_abiwan_ebands = subparsers.add_parser('abiwan_ebands', parents=[copts_parser], help=abicomp_abiwan_ebands.__doc__) + # Subparser for skw_ibz_kpath command. + p_skw_ibz_kpath = subparsers.add_parser('skw_ibz_kpath', parents=[copts_parser], help=abicomp_skw_ibz_kpath.__doc__) + p_skw_ibz_kpath.add_argument("-l", "--lpratio", default=5, + help="Ratio between the number of star functions and the number of ab-initio k-points." + + "The default should be OK in many systems, larger values may be required for accurate derivatives.") # Subparser for pseudos command. p_pseudos = subparsers.add_parser('pseudos', parents=[copts_parser], help=abicomp_pseudos.__doc__) + # Subparser for psps command. + p_pspsp = subparsers.add_parser('psps', parents=robot_parents, help=abicomp_psps.__doc__) + # Subparser for time command. p_time = subparsers.add_parser('time', parents=[copts_parser, ipy_parser], help=abicomp_time.__doc__) p_time.add_argument("-e", "--ext", default=".abo", help=("File extension for Abinit output files. " @@ -1104,6 +1234,31 @@ def get_parser(with_epilog=False): return parser +def serve_kwargs_from_options(options): + + #address = "localhost" + if options.no_browser: + print(""" +Use: + + ssh -N -f -L localhost:{port}:localhost:{port} username@your_remote_cluster + +for port forwarding. +""") + + import abipy.panels as mod + assets_path = os.path.join(os.path.dirname(mod.__file__), "assets") + + return dict( + debug=options.verbose > 0, + show=not options.no_browser, + port=options.port, + static_dirs={"/assets": assets_path}, + #address=address, + #websocket_origin="{address}:{port}", + ) + + @prof_main def main(): @@ -1122,13 +1277,11 @@ def show_examples_and_exit(err_msg=None, error_code=1): except Exception: show_examples_and_exit(error_code=1) - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) + # Plotly automatically activate expose mode. + if getattr(options, "plotly", None): options.expose = True + if getattr(options, "classic_notebook", None): options.notebook = True + + cli.set_loglevel(options.loglevel) if options.mpl_backend is not None: # Set matplotlib backend @@ -1141,8 +1294,15 @@ def show_examples_and_exit(err_msg=None, error_code=1): sns.set(context=options.seaborn, style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=False, rc=None) - if options.verbose > 2: - print(options) + ############################################################################################## + # Handle meta options i.e. options that set other options. + # OK, it's not very clean but I haven't find any parse API to express this kind of dependency. + ############################################################################################## + #if options.plotly: options.expose = True + #if options.expose_web: options.expose = True + #if options.classic_notebook: options.notebook = True + + if options.verbose > 2: print(options) # Dispatch return globals()["abicomp_" + options.command](options) diff --git a/abipy/scripts/abidoc.py b/abipy/scripts/abidoc.py index 34ebcb97a..e465b5a2b 100755 --- a/abipy/scripts/abidoc.py +++ b/abipy/scripts/abidoc.py @@ -2,6 +2,7 @@ """ Interface to the database of ABINIT input variables """ +from __future__ import annotations import sys import argparse @@ -23,7 +24,7 @@ def print_vlist(vlist, options): print("\nUse -v for more info") -def get_epilog(): +def get_epilog() -> str: return """\ Usage example: @@ -111,6 +112,10 @@ def get_parser(with_epilog=False): p_abibuild = subparsers.add_parser('abibuild', parents=[copts_parser], help="Show ABINIT build information and exit.") + # Subparser for links + p_urls = subparsers.add_parser('urls', parents=[copts_parser], + help="Produce Yaml file with varname --> ulrs.") + return parser @@ -140,7 +145,8 @@ def show_examples_and_exit(err_msg=None, error_code=1): # Get the dabase of variables for codename. from abipy.abio.abivar_database.variables import get_codevars - vdb = get_codevars()[options.codename] + codevars = get_codevars() + vdb = codevars[options.codename] if options.command == "man": abilab.abinit_help(options.varname) @@ -215,7 +221,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): else: print(flowtk.TaskManager.autodoc()) print("qtype supported: %s" % flowtk.all_qtypes()) - print("Use `abidoc.py manager slurm` to have the list of qparams for slurm.\n") + print("Use:\n\n\tabidoc.py manager slurm\n\nto show the list of qparams for slurm.\n") if qtype is not None: print("QPARAMS for %s" % qtype) @@ -231,6 +237,17 @@ def show_examples_and_exit(err_msg=None, error_code=1): else: print(abinit_build.info) + elif options.command == "urls": + d = {} + for codename in sorted(codevars.keys()): + variables = codevars[codename] + for varname, var in variables.items(): + key = var.abivarname + key.replace("@", "_") + d[key] = f"[{var.name}]({var.website_url})" + from ruamel.yaml import YAML + YAML().dump(d, sys.stdout) + else: raise ValueError("Don't know how to handle command %s" % options.command) diff --git a/abipy/scripts/abigui.py b/abipy/scripts/abigui.py new file mode 100755 index 000000000..08b8a4fae --- /dev/null +++ b/abipy/scripts/abigui.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python +""" +Script to start the panel-based AbiPy web GUI. +""" +from __future__ import annotations + +import sys +import os +import argparse +import panel as pn +import abipy.tools.cli_parsers as cli + +from pprint import pformat +from abipy.core.release import version + +def main(): + + def str_examples(): + return """\ +Usage example: + + abigui.py --verbose + abigui.py --num_procs 4 --has-remote-server => Options used for gui.abinit.org + +NB: To deploy the GUI, use the ~abipy/dev_scripts/deploy_abigui.sh script. +""" + + def show_examples_and_exit(err_msg=None, error_code=1): + """Display the usage of the script.""" + sys.stderr.write(str_examples()) + if err_msg: sys.stderr.write("Fatal Error\n" + err_msg + "\n") + sys.exit(error_code) + + def get_copts_parser(): + # Parent parser implementing common options. + p = argparse.ArgumentParser(add_help=False) + p.add_argument('-v', '--verbose', default=0, action='count', # -vv --> verbose=2 + help='Verbose, can be supplied multiple times to increase verbosity') + + p.add_argument('--loglevel', default="ERROR", type=str, + help="set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") + + from abipy.core.release import __version__ + p.add_argument('-V', '--version', action='version', version=__version__) + + return p + + copts_parser = get_copts_parser() + + #cli.customize_mpl(options) + + parents = [copts_parser, cli.pn_serve_parser()] #, plot_parser] + + # Build the main parser. + parser = argparse.ArgumentParser(epilog=str_examples(), parents=parents, + formatter_class=argparse.RawDescriptionHelpFormatter) + + # Parse command line. + try: + options = parser.parse_args() + except Exception as exc: + show_examples_and_exit(error_code=1) + + # loglevel is bound to the string value obtained from the command line argument. + # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug + import logging + numeric_level = getattr(logging, options.loglevel.upper(), None) + if not isinstance(numeric_level, int): + raise ValueError('Invalid log level: %s' % options.loglevel) + logging.basicConfig(level=numeric_level) + + from abipy.panels.core import abipanel, get_abinit_template_cls_kwds, AbipyParameterized + + # Load abipy/panel extensions and set the default template + #tmpl_kwds.update(dict( + # sidebar_width=240, + # #sidebar_width=280, + # #background_color="yellow", + #)) + abipanel(panel_template=options.panel_template) + + if options.has_remote_server: + print("Enforcing limitations on what the user can do on the abinit server") + AbipyParameterized.has_remote_server = options.has_remote_server + + # Import the apps and define routes for each page. + from abipy.panels.structure import InputFileGenerator + from abipy.panels.ddb import (PanelWithFileInput, PanelWithStructureInput, DdbPanelWithFileInput, CompareDdbWithMP, + RobotWithFileInput) + from abipy.panels.electrons import SkwPanelWithFileInput, CompareEbandsWithMP + from abipy.panels.outputs import AbinitOutputFilePanelWithFileInput as abo_cls + + intro = """ +![AbiPy Logo](assets/img/abipy_logo.png) + +# AbiPy Web App + +This web application exposes some of the capabilities of the [AbiPy package](https://github.com/abinit/abipy). +It consists of **multiple pages** each of which provides **specialized tools** to operate on a particular ABINIT file. + +To access the tools, click one of the links in the sidebar or, alternatively, use the links below. + +To **open/close** the sidebar, click on the Hamburger Menu Icon ☰ in the header. + +Note that the **file extension matters** as the GUI won't work properly if you upload files +with extensions that are not recognized by AbiPy. + +""" + tmpl_cls, tmpl_kwds = get_abinit_template_cls_kwds() + + if options.verbose: + print("Using default template:", tmpl_cls, "with kwds:\n", pformat(tmpl_kwds), "\n") + + # url --> (cls, title) + app_routes_titles = { + "/": (tmpl_cls, "AbiPy GUI Home"), + "/input_generator": (InputFileGenerator, "Abinit Input Generator"), + "/structure_analyzer": (PanelWithStructureInput, "Structure Analyzer"), + "/outfile": (PanelWithFileInput, "Output File Analyzer"), + "/ddb": (DdbPanelWithFileInput, "DDB File Analyzer"), + "/abo": (abo_cls, "Abo File Analyzer"), + "/ebands_vs_mp": (CompareEbandsWithMP, "Compare Ebands with MP"), + "/ddb_vs_mp": (CompareDdbWithMP, "Compare DDB with MP"), + #"/abilog": (PanelWithFileInput().get_panel(), "DDB File Analyzer"), + #"/state": (pn.state, "State"), + } + + if not options.has_remote_server: + # Add additional apps. + app_routes_titles.update({ + "/skw": (SkwPanelWithFileInput, "SKW Analyzer"), + "/robot": (RobotWithFileInput, "Robot Analyzer"), + }) + + app_routes = {k: v[0] for (k, v) in app_routes_titles.items()} + app_title = {k: v[1] for (k, v) in app_routes_titles.items()} + + for url, (cls, title) in app_routes_titles.items(): + if url in ("/", "/state"): continue + intro += f""" + +### [{title}]({url}) + +{cls.info_str} +""" + main_home = pn.Column(pn.pane.Markdown(intro, sizing_mode="stretch_both"), + sizing_mode="stretch_both") + + # Add links to sidebar of each app so that we can navigate easily. + links = "\n".join(f"- [{title}]({url})" for (url, title) in app_title.items()) + links = pn.Column(pn.pane.Markdown(links)) + + class AppBuilder: + + def __init__(self, app_cls, sidebar_links, app_kwargs=None): + self.app_cls = app_cls + self.sidebar_links = sidebar_links + self.app_kwargs = app_kwargs if app_kwargs else {} + + def build(self): + app = self.app_cls(**self.app_kwargs) + if hasattr(app, "get_panel"): + app = app.get_panel() + + if hasattr(app, "sidebar") and self.sidebar_links: + app.sidebar.append(self.sidebar_links) + #app.header.append(self.sidebar_links) + + return app + + for url, app_cls in app_routes.items(): + if url == "/": + app_kwargs = {"main": main_home} + app_kwargs.update(tmpl_kwds) + app_routes[url] = AppBuilder(app_cls, sidebar_links=links, app_kwargs=app_kwargs).build + elif url == "/state": + app_routes[url] = app_cls + else: + app_routes[url] = AppBuilder(app_cls, sidebar_links=links).build + + # Call pn.serve to serve the multipage app. + serve_kwargs = cli.get_pn_serve_kwargs(options) + + pn.serve(app_routes, **serve_kwargs) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/scripts/abiml.py b/abipy/scripts/abiml.py new file mode 100755 index 000000000..fd95e502e --- /dev/null +++ b/abipy/scripts/abiml.py @@ -0,0 +1,792 @@ +#!/usr/bin/env python +""" +Script to perform several types of calculations with ASE and ML potentials. +""" +from __future__ import annotations + +import sys +import os +import json +import click +import numpy as np +import abipy.ml.aseml as aseml +import abipy.tools.cli_parsers as cli + +from functools import wraps +from time import time +from abipy.core.structure import Structure +from abipy.tools.printing import print_dataframe + + +ASE_OPTIMIZERS = aseml.ase_optimizer_cls("__all__") + +DEFAULT_NN = "chgnet" + + +def _get_atoms_from_filepath(filepath): + if filepath.startswith("__mp-"): + print(f"Fetching structure for mp-id {filepath[2:]} from the materials project database.") + return aseml.get_atoms(Structure.from_mpid(filepath[2:])) + + return aseml.get_atoms(filepath) + + +def _get_structure_from_filepath(filepath) -> Structure: + if filepath.startswith("__mp-"): + print(f"Fetching structure for mp-id {filepath[2:]} from the materials project database.") + structure = Structure.from_mpid(filepath[2:]) + else: + structure = Structure.from_file(filepath) + + return structure + + +def set_default(ctx, param, filepath): + """ + To have config file for a single command: + Based on https://stackoverflow.com/questions/46358797/python-click-supply-arguments-and-options-from-a-configuration-file + """ + from abipy.tools.iotools import yaml_safe_load_path + if os.path.exists(filepath): + print("Reading CLI options from:", filepath) + config = yaml_safe_load_path(filepath) + print("Config options:\n", config) + ctx.default_map = config + return filepath + + +def herald(f): + @wraps(f) + def wrapper(*args, **kw): + verbose = kw.get("verbose", 0) + #print('func:%r args:[%r, %r]' % (f.__name__, args, kw)) + #raise ValueError() + if verbose > 3: + print('func:%r args:[%r, %r]' % (f.__name__, args, kw)) + print(f.__doc__, end=2*"\n") + print("Command line options:") + print(json.dumps(kw, indent=4), end="\n") + + # IMPORTANT: Set OMP_NUM_THREADS to 1 if env variable is not defined. + num_threads = cli.fix_omp_num_threads() + + t_start = time() + exit_code = f(*args, **kw) + t_end = time() + print('\n%s command completed in %2.4f sec\n' % (f.__name__, t_end - t_start)) + return exit_code + + return wrapper + + +def add_constraint_opts(f): + """Add CLI options to constrain atoms.""" + def mk_cbk(type): + def callback(ctx, param, value): + if value is None: return None + return [type(s) for s in value.split()] + return callback + + f = click.option("--fix-inds", "-fi", type=str, default=None, show_default=True, + callback=mk_cbk(int), + help='Fix atoms by indices e.g. `--fix-inds "0 1"` to fix the first two atoms.')(f) + f = click.option("--fix-symbols", "-fs", type=str, default=None, show_default=True, + callback=mk_cbk(str), + help='Fix atoms by chemical symbols e.g. `--fix-symbols "C O"`')(f) + return f + + +def add_relax_opts(f): + """Add CLI options for structural relaxations with ASE.""" + # fmax (float): total force tolerance for relaxation convergence. + # Here fmax is a sum of force and stress forces. Defaults to 0.1. + f = click.option("--relax-mode", "-r", default="ions", show_default=True, type=click.Choice(["no", "ions", "cell"]), + help='Relaxation mode.')(f) + f = click.option("--fmax", default=0.01, type=float, show_default=True, + help='Stopping criterion in eV/A')(f) + f = click.option("--pressure", default=0.0, type=float, show_default=True, help='Scalar pressure')(f) + f = click.option("--steps", default=500, type=int, show_default=True, + help="Max number of steps for ASE relaxation.")(f) + f = click.option("--optimizer", "-o", default="BFGS", show_default=True, type=click.Choice(ASE_OPTIMIZERS), + help="ASE optimizer class.")(f) + return f + + +def add_neb_opts(f): + """Add CLI options for NEB calculations with ASE.""" + f = click.option("--nimages", "-n", default=14, type=click.IntRange(3, None), show_default=True, + help='Number of NEB images including initial/final points. Must be >= 3')(f) + f = click.option("--relax-mode", "-r", default="ions", show_default=True, type=click.Choice(["no", "ions", "cell"]), + help="Relax initial and final structure. Use `cell` to relax ions and cell, " + + "`ions` to relax atomic positions only, `no` to disable relaxation")(f) + f = click.option("--fmax", default=0.03, type=float, show_default=True, help='Stopping criterion.')(f) + f = click.option("--pressure", default=0.0, type=float, show_default=True, help='Scalar pressure')(f) + f = click.option("--optimizer", "-o", default="BFGS", show_default=True, type=click.Choice(ASE_OPTIMIZERS), + help="ASE optimizer class.")(f) + f = click.option("--neb-method", "-m", default="aseneb", type=click.Choice(aseml.ASENEB_METHODS), + show_default=True, help="ASE NEB method")(f) + f = click.option("--climb", "-c", is_flag=True, help="Use a climbing image (default is no climbing image).")(f) + return f + + +def add_nprocs_opt(f): + """Add CLI options for multiprocessing.""" + f = click.option("-np", "--nprocs", default=-1, type=int, show_default=True, + help='Number of processes in multiprocessing pool. -1 to let Abipy select it automatically.')(f) + return f + + +def add_workdir_verbose_opts(f): + """Add workdir and verbose options to CLI subcommand.""" + f = click.option("--workdir", "-w", default=None, type=str, + help="Working directory. If not specified, a temporary directory is created.")(f) + f = click.option('-v', '--verbose', count=True, help="Verbosity level")(f) + return f + + +def add_nn_name_opt(f): + """Add CLI options to select the NN potential.""" + f = click.option("--nn-name", "-nn", default=DEFAULT_NN, show_default=True, + help=f"ML potential to be used. Supported values are: {aseml.CalcBuilder.ALL_NN_TYPES}")(f) + #f = click.option("--nn-name", "-nn", default=DEFAULT_NN, show_default=True, + # help=f"ML potential to be used.\n{aseml.CalcBuilder.DOC_NAME}")(f) + #f = click.option("--dftd3", , default="no", show_default=True, help=f"Activate DFD3.")(f) + return f + + +def add_nn_names_opt(f): + """Add CLI options to select multiple NN potentials.""" + f = click.option("-nns", '--nn-names', type=str, multiple=True, show_default=True, + help='ML potentials to use.', default=[DEFAULT_NN])(f) + return f + + +def _get_nn_names(nn_names: list[str]) -> list[str]: + """ + Pre-processing of nn-names option. + + --nn-names all --> return all NN names installed in this env. + --nn-names all-alignn-m3gnet --> return all NN names except alignn and m3gnet. + --nn-names chgnet- --> return all NN names except chgnet. + """ + if "all" in nn_names: + # Return all possibilities. + nn_installed, nn_versions = aseml.get_installed_nn_names(verbose=0, printout=False) + return nn_installed + + if any(n.startswith("all-") for n in nn_names): + # --nn-names all-alignn-m3gnet --> return all NN names except alignn and m3gnet + assert len(nn_names) == 1 + skip_names = nn_names[0].replace("all-", "").split("-") + return [s for s in aseml.CalcBuilder.ALL_NN_TYPES if s not in skip_names] + + if any(n.endswith("-") for n in nn_names): + # --nn-names chgnet- --> return all NN names except chgnet. + skip_names = [n[:-2] for n in nn_names if n.endswith("-")] + return [s for s in aseml.CalcBuilder.ALL_NN_TYPES if s not in skip_names] + + return nn_names + + +@click.group() +@click.pass_context +@click.option("--seaborn", "-sns", default=None, show_default=True, + help='Use seaborn settings. Accept value defining context in ("paper", "notebook", "talk", "poster").') +def main(ctx, seaborn): + """Script to perform calculations with ML potentials.""" + ctx.ensure_object(dict) + + if seaborn: + # Activate seaborn settings for plots + import seaborn as sns + sns.set(context=seaborn, style='darkgrid', palette='deep', + font='sans-serif', font_scale=1, color_codes=False, rc=None) + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@add_nn_name_opt +@add_relax_opts +@add_constraint_opts +@add_workdir_verbose_opts +@click.option('--config', default='abiml_relax.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def relax(ctx, filepath, nn_name, + relax_mode, fmax, pressure, steps, optimizer, + fix_inds, fix_symbols, + workdir, verbose): + """ + Structural relaxation with ASE and ML potential. + + Usage example: + + \b + abiml.py relax FILE --fmax 0.01 -r cell --optimizer FIRE -w OUT_DIR + abiml.py relax FILE --fix-inds "0 3" --fix-symbols "Si O" + + where `FILE` is any file supported by abipy/pymatgen e.g. netcdf files, Abinit input, POSCAR, xsf, etc. + or a string such as __mp-134 to fetch the structure from the MP database. + + To change the ML potential, use e.g.: + + abiml.py relax -nn m3gnet [...] + """ + atoms = _get_atoms_from_filepath(filepath) + aseml.fix_atoms(atoms, fix_inds=fix_inds, fix_symbols=fix_symbols) + + ml_relaxer = aseml.MlRelaxer(atoms, relax_mode, fmax, pressure, steps, optimizer, + nn_name, verbose, workdir, prefix="_abiml_relax_") + + print(ml_relaxer.to_string(verbose=verbose)) + ml_relaxer.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@add_workdir_verbose_opts +@click.option('--config', default='abiml_abinit_relax.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def abinit_relax(ctx, filepath, + workdir, verbose): + """ + Interact with ABINIT in hybrid relaxation mode. + """ + ml_relaxer = aseml.MlRelaxer.from_abinit_yaml_file(filepath) + print(ml_relaxer.to_string(verbose=verbose)) + ml_relaxer.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@add_nn_name_opt +@click.option('--temperature', "-t", default=600, type=float, show_default=True, help='Temperature in Kelvin') +@click.option('--pressure', "-p", default=1, type=float, show_default=True, help='Pressure in ???.') +@click.option('--timestep', "-ts", default=1, type=float, show_default=True, help='Timestep in fs.') +@click.option('--steps', "-s", default=1000, type=int, show_default=True, help='Number of timesteps.') +@click.option('--loginterval', "-l", default=100, type=int, show_default=True, help='Interval for record the log.') +@click.option('--ensemble', "-e", default="nvt", show_default=True, + type=click.Choice(["nvt", "npt", "npt_berendsen"]), help='Ensemble e.g. nvt, npt.') +@add_constraint_opts +@add_workdir_verbose_opts +@click.option('--config', default='abiml_md.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def md(ctx, filepath, nn_name, + temperature, pressure, timestep, steps, loginterval, ensemble, + fix_inds, fix_symbols, + workdir, verbose): + """ + MD simulation with ASE and ML potential. + + Usage example: + + \b + abiml.py md FILE --temperature 1200 --timestep 2 --steps 5000 --workdir OUT_DIR + abiml.py md FILE --fix-inds "0 3" --fix-symbols "Si O" + + where `FILE` is any file supported by abipy/pymatgen e.g. netcdf files, Abinit input, POSCAR, xsf, etc. + + To change the ML potential, use e.g.: + + abiml.py md -nn m3gnet [...] + + To restart a MD run, use --workdir to specify a pre-existent directory. + """ + # See https://github.com/materialsvirtuallab/m3gnet#molecular-dynamics + atoms = aseml.get_atoms(filepath) + aseml.fix_atoms(atoms, fix_inds=fix_inds, fix_symbols=fix_symbols) + + ml_md = aseml.MlMd(atoms, temperature, pressure, timestep, steps, loginterval, ensemble, nn_name, verbose, + workdir, prefix="_abiml_md_") + print(ml_md.to_string(verbose=verbose)) + ml_md.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepaths", nargs=2, type=str) +@add_nn_name_opt +@add_neb_opts +@add_constraint_opts +@add_workdir_verbose_opts +@click.option('--config', default='abiml_neb.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def neb(ctx, filepaths, nn_name, + nimages, relax_mode, fmax, pressure, optimizer, neb_method, climb, + fix_inds, fix_symbols, + workdir, verbose + ): + """ + NEB calculation with ASE and ML potential. + + Usage example: + + \b + abiml.py neb START_FILE END_FILE --nimages 6 --fmax=0.05 --optimizer FIRE -w OUT_DIR + abiml.py neb START_FILE END_FILE --neb-method improvedtangent --climb + abiml.py neb START_FILE END_FILE --fix-inds "0 3" --fix-symbols "Si O" + + where `FILE` is any file supported by abipy/pymatgen e.g. netcdf files, Abinit input, POSCAR, xsf, etc. + + To change the ML potential, use e.g.: + + abiml.py neb -nn m3gnet [...] + """ + initial_atoms = aseml.get_atoms(filepaths[0]) + aseml.fix_atoms(initial_atoms, fix_inds=fix_inds, fix_symbols=fix_symbols) + final_atoms = aseml.get_atoms(filepaths[1]) + aseml.fix_atoms(final_atoms, fix_inds=fix_inds, fix_symbols=fix_symbols) + + ml_neb = aseml.MlNeb(initial_atoms, final_atoms, + nimages, neb_method, climb, optimizer, relax_mode, fmax, pressure, + nn_name, verbose, workdir, prefix="_abiml_neb_") + print(ml_neb.to_string(verbose=verbose)) + ml_neb.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepaths", nargs=-1, type=str) # , help="Files with structures") +@add_nn_name_opt +@add_neb_opts +@add_constraint_opts +@add_workdir_verbose_opts +@click.option('--config', default='abiml_mneb.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def mneb(ctx, filepaths, nn_name, + nimages, relax_mode, fmax, pressure, optimizer, neb_method, climb, + fix_inds, fix_symbols, + workdir, verbose): + """ + Multi-NEB calculation with ASE and ML potential. + + Usage example: + + \b + abiml.py mneb FILE1 FILE2 FILE2 ... --nimages 6 --fmax=0.05 -w OUT_DIR + abiml.py mneb FILE1 FILE2 FILE2 ... --neb-method improvedtangent --climb + abiml.py mneb FILE1 FILE2 FILE2 ... --fix-inds "0 3" --fix-symbols "Si O" + + where `FILE` is any file supported by abipy/pymatgen e.g. netcdf files, Abinit input, POSCAR, xsf, etc. + + To change the ML potential, use e.g.: + + abiml.py mneb -nn m3gnet [...] + """ + # Fix atoms + atoms_list = [aseml.get_atoms(p) for p in filepaths] + for atoms in atoms_list: + aseml.fix_atoms(atoms, fix_inds=fix_inds, fix_symbols=fix_symbols) + + mneb = aseml.MultiMlNeb(atoms_list, nimages, neb_method, climb, optimizer, relax_mode, fmax, pressure, + nn_name, verbose, workdir, prefix="_abiml_mneb_") + print(mneb.to_string(verbose=verbose)) + mneb.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@add_nn_names_opt +@click.option("--supercell", "-s", nargs=3, type=int, default=(2, 2, 2), show_default=True, help="Supercell dimensions.") +@click.option("--distance", "-d", type=float, show_default=True, default=0.01, help="Displacement distance in Ang.") +#@click.option('--asr', type=int, default=2, show_default=True, help="Restore the acoustic sum rule on the interatomic force constants.") +#@click.option('--dipdip', type=int, default=1, show_default=True, help="Treatment of dipole-dipole interaction.") +@click.option('--line-density', "-ld", default=20, type=float, show_default=True, help="Line density to generate the q-path for PH bands.") +@click.option('--qppa', "-qppa", default=None, type=float, show_default=True, help="q-points per atom to generate the q-mesh for PH DOS.") +@add_relax_opts +@add_workdir_verbose_opts +@click.option('--config', default='abiml_ph.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def ph(ctx, filepath, nn_names, + supercell, distance, + #asr, dipdip, + line_density, qppa, + relax_mode, fmax, pressure, steps, optimizer, + workdir, verbose): + """ + Use phonopy and ML potential to compute phonons. + + Usage example: + + \b + abiml.py ph FILE --distance 0.03 --supercell 2 2 2 + + where `FILE` provides the crystalline structure + or a string such as __mp-134 to fetch the structure from the MP database. + + To specify the list of ML potential, use e.g.: + + abiml.py ph -nn-names m3gnet --nn-names chgnet [...] + + To use all NN potentials supported, use: + + -nn-names all [...] + """ + structure = _get_structure_from_filepath(filepath) + + from abipy.ml.ml_phonopy import MlPhonopy + supercell = np.eye(3) * np.array(supercell) + + nn_names = _get_nn_names(nn_names) + ml_ph = MlPhonopy(structure, supercell, + distance, + # asr, dipdip, + line_density, qppa, + relax_mode, fmax, pressure, steps, optimizer, nn_names, + verbose, workdir, prefix="_abiml_ph_", + ) + print(ml_ph.to_string(verbose=verbose)) + ml_ph.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("ddb_filepath", type=str) +@add_nn_names_opt +@click.option("--supercell", "-s", nargs=3, type=int, default=(-1, -1, -1), show_default=True, help="Supercell. If < 0, supercell is taken from DDB ngqpt.") +@click.option("--distance", "-d", type=float, show_default=True, default=0.01, help="Displacement distance in Ang.") +@click.option('--asr', type=int, default=2, show_default=True, help="Restore the acoustic sum rule on the interatomic force constants.") +@click.option('--dipdip', type=int, default=1, show_default=True, help="Treatment of dipole-dipole interaction.") +@click.option('--line-density', "-ld", default=20, type=float, show_default=True, help="Line density to generate the q-path for PH bands.") +@click.option('--qppa', "-qppa", default=None, type=float, show_default=True, help="q-points per atom to generate the q-mesh for PH DOS.") +@add_relax_opts +@add_workdir_verbose_opts +@click.option('--config', default='abiml_phddb.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def phddb(ctx, ddb_filepath, nn_names, + supercell, distance, asr, dipdip, line_density, qppa, + relax_mode, fmax, pressure, steps, optimizer, + workdir, verbose): + """ + Use phonopy and ML potential to compute phonons and compare with DDB. + + Usage example: + + \b + abiml.py phddb DDB_FILE --distance 0.03 --dipdip 0 --supercell 2 2 2 + + where `DDB_FILE` is an Abinit DDB file + or a string such as __mp-134 to fetch the DDB from the MP database. + + To specify the list of ML potential, use e.g.: + + abiml.py phddb -nn-names m3gnet --nn-names chgnet [...] + + To use all NN potentials supported, use: + + -nn-names all [...] + """ + if ddb_filepath.startswith("__mp-"): + print(f"Fetching DDB for mp-id {ddb_filepath[2:]} from the materials project database.") + from abipy.dfpt.ddb import DdbFile + with DdbFile.from_mpid(ddb_filepath[2:]) as ddb: + ddb_filepath = ddb.filepath + + from abipy.ml.ml_phonopy import MlPhonopyWithDDB + if any(s <= 0 for s in supercell): + supercell = None + else: + supercell = np.eye(3) * np.array(supercell) + + nn_names = _get_nn_names(nn_names) + ml_phddb = MlPhonopyWithDDB(ddb_filepath, + distance, asr, dipdip, line_density, qppa, + relax_mode, fmax, pressure, steps, optimizer, nn_names, + verbose, workdir, prefix="_abiml_phddb_", + supercell=supercell, + ) + print(ml_phddb.to_string(verbose=verbose)) + ml_phddb.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@add_nn_name_opt +@click.option("--max-ns", "-m", default=100, type=int, show_default=True, help='Max number of structures') +@add_relax_opts +@add_workdir_verbose_opts +@click.option('--config', default='abiml_order.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def order(ctx, filepath, nn_name, + max_ns, relax_mode, fmax, pressure, steps, optimizer, workdir, verbose): + """ + Generate ordered structures from CIF with partial occupancies. + + Usage example: + + \b + abiml.py order FILE --max-ns 10 --relax cell + + where `FILE` is any file supported by abipy/pymatgen e.g. netcdf files, Abinit input, POSCAR, xsf, etc. + + Based on: https://matgenb.materialsvirtuallab.org/2013/01/01/Ordering-Disordered-Structures.html + """ + ml_orderer = aseml.MlOrderer(filepath, max_ns, optimizer, relax_mode, fmax, pressure, + steps, nn_name, verbose, workdir, prefix="_abiml_order_") + print(ml_orderer.to_string(verbose=verbose)) + ml_orderer.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@add_nn_name_opt +@click.option("-isite", "--isite", required=True, + help='Index of atom to displace or string with the chemical element to be added to input structure.') +@click.option("--mesh", type=int, default=4, show_default=True, help='Mesh size along the smallest cell size.') +@add_relax_opts +@add_nprocs_opt +@add_workdir_verbose_opts +@click.option('--config', default='abiml_scan_relax.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def scan_relax(ctx, filepath, nn_name, + isite, mesh, + relax_mode, fmax, pressure, steps, optimizer, + nprocs, + workdir, verbose + ): + """ + Generate 3D mesh of (nx,ny,nz) initial positions and perform multiple relaxations + in which all atoms are fixed except the one initially placed at the mesh point. + + Usage example: + + \b + abiml.py scan-relax FILE -isite 0 --mesh 4 # Move first atom in the structure + abiml.py scan-relax FILE -isite H # Add H to the structure read from FILE. + + where `FILE` is any file supported by abipy/pymatgen e.g. netcdf files, Abinit input, POSCAR, xsf, etc. + + To change the ML potential, use e.g.: + + abiml.py scan-relax -nn m3gnet [...] + """ + structure = Structure.from_file(filepath) + + from abipy.ml.relax_scanner import RelaxScanner + scanner = RelaxScanner(structure, isite, mesh, nn_name, + relax_mode=relax_mode, fmax=fmax, steps=steps, verbose=verbose, + optimizer_name=optimizer, pressure=pressure, + workdir=workdir, prefix="_abiml_scan_relax_") + print(scanner) + scanner.run(nprocs=nprocs) + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument('filepaths', type=str, nargs=-1) +@add_nn_names_opt +@click.option("--traj_range", type=str, show_default=True, + help="Trajectory range e.g. `5` to select the first 5 iterations, `1:4` to select steps 1,2,3. `1:4:2 for 1,3", + default=None) +@click.option("--symbol", type=str, show_default=True, + help="Chemical symbol. If None all atoms are considered.", + default=None) +@click.option('--stress/--no-stress', default=True, show_default=True, help="Show parity-plot for stress tensor") +@click.option('--delta/--no-delta', default=False, show_default=True, help="Show parity-plot for delta mode") +@click.option('--traj/--no-traj', default=False, show_default=True, help="Show results along trajectory") +@click.option("-e", '--exposer', default="mpl", show_default=True, type=click.Choice(["mpl", "panel"]), + help='Plotting backend: mpl for matplotlib, panel for web-based, None to disable plotting.') +@add_nprocs_opt +@add_workdir_verbose_opts +@click.option('--config', default='abiml_validate.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def validate(ctx, + filepaths, + nn_names, + traj_range, + symbol, + stress, + delta, + traj, + exposer, + nprocs, + workdir, + verbose + ): + """ + Compare ab-initio energies, forces, and stresses with ML-computed ones. + + usage example: + + \b + abiml.py validate FILE --nn-names matgl --nn-names chgnet + + where `FILE` can be a HIST.nc, a vasprun.xml or an ASE extended XYZ file. + """ + traj_range = cli.range_from_str(traj_range) + nn_names = _get_nn_names(nn_names) + ml_comp = aseml.MlValidateWithAbinitio(filepaths, nn_names, traj_range, verbose, workdir, prefix="_abiml_validate_") + #print(ml_comp) + c = ml_comp.run(nprocs=nprocs) + + show = False + if exposer != "None": + from abipy.tools.plotting import Exposer + with Exposer.as_exposer(exposer, title=" ".join(os.path.basename(p) for p in filepaths)) as e: + e(c.plot_energies(show=show, savefig="energies.png")) + + if traj: + e(c.plot_energies_traj(delta_mode=True, show=show, savefig="energies_traj.png")) + if delta: + e(c.plot_energies_traj(delta_mode=False, show=show, savefig="energies_traj_delta_mode.png")) + + e(c.plot_forces(delta_mode=False, symbol=symbol, show=show, savefig="forces.png")) + if delta: + e(c.plot_forces(delta_mode=True, symbol=symbol, show=show, savefig="forces_delta.png")) + + if traj: + e(c.plot_forces_traj(delta_mode=False, show=show, savefig="forces_traj.png")) + if delta: + e(c.plot_forces_traj(delta_mode=True, show=show, savefig="forces_traj_delta_mode.png")) + + if stress: + e(c.plot_stresses(delta_mode=False, show=show, savefig="stresses.png")) + if delta: + e(c.plot_stresses(delta_mode=True, show=show, savefig="stresses_delta_mode.png")) + if traj: + e(c.plot_stress_traj(delta_mode=False, show=show, savefig="stress_traj.png")) + if delta: + e(c.plot_stress_traj(delta_mode=True, show=show, savefig="stress_traj_delta_mode.png")) + + return 0 + + +@main.command() +@herald +@click.pass_context +@click.option('-v', '--verbose', count=True, help="Verbosity level") +def show(ctx, verbose): + """ + Show the NN potentials installed in the environment. + """ + installed, versions = aseml.get_installed_nn_names(verbose=verbose, printout=True) + return 0 if installed else 1 + + +@main.command() +@herald +@click.pass_context +@click.option("-nns", '--nn-names', type=str, multiple=True, show_default=True, + help='ML potentials to install.', default=["all"]) +@click.option('-U', '--update', is_flag=True, default=False, show_default=True, help="Update packages.") +@click.option('-v', '--verbose', count=True, help="Verbosity level") +def install(ctx, nn_names, update, verbose): + """ + Install NN potentials in the environment using pip. + """ + aseml.install_nn_names(nn_names=nn_names, update=update, verbose=verbose) + installed, versions = aseml.get_installed_nn_names(verbose=verbose, printout=True) + + return 0 if installed else 1 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@click.option("-nns", '--nn-names', type=str, multiple=True, show_default=True, + help='ML potentials to compare.', default=["all"]) +@click.option('--num-tests', "-n", default=20, type=int, show_default=True, help='Number of configurations to generate.') +@click.option("--rattle", default=0.2, type=float, show_default=True, help="Displace atoms randomly with this stdev.") +@click.option("-srv", "--stdev-rvol", default=0.1, type=float, show_default=True, + help="Scale volumes randomly around input v0 with stdev: v0 * value") +@add_workdir_verbose_opts +@click.option('--config', default='abiml_compare.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def compare(ctx, filepath, nn_names, + num_tests, rattle, stdev_rvol, + workdir, verbose + ): + """ + Compare different neural networks. + """ + atoms = _get_atoms_from_filepath(filepath) + nn_names = _get_nn_names(nn_names) + ml_comp = aseml.MlCompareNNs(atoms, nn_names, num_tests, rattle, stdev_rvol, verbose, workdir, prefix="_abiml_compare_") + print(ml_comp.to_string(verbose=verbose)) + ase_comp = ml_comp.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@add_nn_name_opt +@add_workdir_verbose_opts +@click.option('--config', default='abiml_gs.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def gs(ctx, filepath, nn_name, + workdir, verbose, + ): + """ + Compute ground-state properties and magnetic moments with ML potential(s). + """ + atoms = _get_atoms_from_filepath(filepath) + gs = aseml.GsMl(atoms, nn_name, verbose, workdir, prefix="_abiml_gs_") + gs.run() + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("filepath", type=str) +@click.option("--qpoint", "-q", nargs=3, type=float, help="q-point in reduced coordinates.") +@add_nn_name_opt +@add_workdir_verbose_opts +@click.option('--config', default='abiml_phfrozen.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def phddb_frozen(ctx, filepath, qpoint, nn_name, + workdir, verbose, + ): + """ + Frozen-phonon calculation with ML potential. + """ + qpoint = [0, 0, 0] + eta_list = [1, 2] + frozen_ph = aseml.FrozenPhononMl.from_ddb_file(filepath, qpoint, eta_list, nn_name, verbose, workdir, prefix="_abiml_phfrozen") + frozen_ph.run() + + return 0 + + +@main.command() +@herald +@click.pass_context +@click.argument("elements", nargs=-1, type=str) +@add_nn_names_opt +@add_workdir_verbose_opts +@click.option('--config', default='abiml_cwf_eos.yml', type=click.Path(), callback=set_default, is_eager=True, expose_value=False) +def cwf_eos(ctx, elements, nn_names, + workdir, verbose + ): + """ + Compute CWF EOS with ML potentials. + """ + nn_names = _get_nn_names(nn_names) + if "all" in elements: + if len(elements) != 1: + raise ValueError(f"When all is used for elements len(elements) should be 1 while {elements=}") + from ase.data import chemical_symbols + elements = [chemical_symbols[Z] for Z in range(1, 96+1)] + + ml_cwf_eos = aseml.MlCwfEos(elements, nn_names, verbose, workdir, prefix="_abiml_cwf_eos_") + print(ml_cwf_eos.to_string(verbose=verbose)) + ml_cwf_eos.run() + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/scripts/abinp.py b/abipy/scripts/abinp.py index 40b2b29e5..9f60bf532 100755 --- a/abipy/scripts/abinp.py +++ b/abipy/scripts/abinp.py @@ -1,33 +1,65 @@ #!/usr/bin/env python """ This script provides a simplified interface to the AbiPy factory functions. -For a more flexible interface, please use the AbiPy objects to generate input files and workflows. +For a more flexible interface, please use the AbiPy objects +to generate input files and workflows. """ +from __future__ import annotations + import sys import os import argparse +import abipy.tools.cli_parsers as cli +from typing import Type from monty.termcolor import cprint from monty.functools import prof_main +from pymatgen.io.vasp.sets import VaspInputSet from abipy import abilab from abipy.abio import factories from abipy.abio.inputs import AnaddbInput from abipy.dfpt.ddb import DdbFile -def get_structure(options): +def vasp_dict_set_cls(s: str | VaspInputSet) -> Type | list[str]: + """ + Return a subclass of DictSect from string `s`. + If s == "__all__", return list with all VaspInputSet subclasses supported by pymatgen. + """ + from inspect import isclass + from pymatgen.io.vasp import sets + def is_dict_set(key: str) -> bool: + return isclass(obj := getattr(sets, key)) and issubclass(obj, VaspInputSet) + + valid_keys = [key for key in dir(sets) if is_dict_set(key)] + + if s == "__all__": + return valid_keys + + if isinstance(s, VaspInputSet): + return s + + if s not in valid_keys: + raise ValueError(f"Unknown VaspInputSet {s}, must be one of {valid_keys}") + + return getattr(sets, s) + + +ALL_VASP_DICT_SETS = vasp_dict_set_cls("__all__") + + +def _get_structure(options): """Return structure object either from file or from the material project database.""" if os.path.exists(options.filepath): return abilab.Structure.from_file(options.filepath) elif options.filepath.startswith("mp-"): - return abilab.Structure.from_mpid(options.filepath, final=True, - api_key=options.mapi_key, endpoint=options.endpoint) + return abilab.Structure.from_mpid(options.filepath) raise TypeError("Don't know how to extract structure object from %s" % options.filepath) -def get_pseudotable(options): +def _get_pseudotable(options): """Return PseudoTable object.""" if options.pseudos is not None: from abipy.flowtk import PseudoTable @@ -35,19 +67,22 @@ def get_pseudotable(options): try: from pseudo_dojo import OfficialTables + dojo_tables = OfficialTables() + if options.usepaw: + raise NotImplementedError("PAW table is missing") + #pseudos = dojo_tables["ONCVPSP-PBE-PDv0.2-accuracy"] + else: + pseudos = dojo_tables["ONCVPSP-PBE-PDv0.2-accuracy"] + + print("Using pseudos from PseudoDojo table", repr(pseudos)) + except ImportError as exc: + from abipy.data.hgh_pseudos import HGH_TABLE + pseudos = HGH_TABLE print("PseudoDojo package not installed. Please install it with `pip install pseudo_dojo`") print("or use `--pseudos FILE_LIST` to specify the pseudopotentials to use.") - raise exc + print("Using internal HGH_TABLE!!!!") - dojo_tables = OfficialTables() - if options.usepaw: - raise NotImplementedError("PAW table is missing") - #pseudos = dojo_tables["ONCVPSP-PBE-PDv0.2-accuracy"] - else: - pseudos = dojo_tables["ONCVPSP-PBE-PDv0.2-accuracy"] - - print("Using pseudos from PseudoDojo table", repr(pseudos)) return pseudos @@ -69,13 +104,12 @@ def build_abinit_input_from_file(options, **abivars): """ from abipy.abio.abivars import AbinitInputFile abifile = AbinitInputFile(options.filepath) - pseudos = get_pseudotable(options) + pseudos = _get_pseudotable(options) jdtset = options.jdtset # Get vars from input abi_kwargs = abifile.datasets[jdtset - 1].get_vars() if abifile.ndtset != 1: - cprint("# Input file contains %s datasets, will select jdtset index %s:" % - (abifile.ndtset, jdtset), "yellow") + cprint("# Input file contains %s datasets, will select jdtset index %s:" % (abifile.ndtset, jdtset), color="yellow") abi_kwargs["jdtset"] = jdtset # Add input abivars (if any). @@ -164,7 +198,7 @@ def abinp_phperts(options): def abinp_gs(options): """Build Abinit input for ground-state calculation.""" structure = abilab.Structure.from_file(options.filepath) - pseudos = get_pseudotable(options) + pseudos = _get_pseudotable(options) gsinp = factories.gs_input(structure, pseudos, kppa=options.kppa, ecut=None, pawecutdg=None, scf_nband=None, accuracy="normal", spin_mode=options.spin_mode, @@ -175,8 +209,8 @@ def abinp_gs(options): def abinp_ebands(options): """Build Abinit input for band structure calculations.""" - structure = get_structure(options) - pseudos = get_pseudotable(options) + structure = _get_structure(options) + pseudos = _get_pseudotable(options) multi = factories.ebands_input(structure, pseudos, kppa=options.kppa, nscf_nband=None, ndivsm=15, ecut=None, pawecutdg=None, scf_nband=None, accuracy="normal", spin_mode=options.spin_mode, @@ -191,15 +225,15 @@ def abinp_ebands(options): def abinp_phonons(options): """Build Abinit input for phonon calculations.""" - structure = get_structure(options) - pseudos = get_pseudotable(options) + structure = _get_structure(options) + pseudos = _get_pseudotable(options) - gsinp = factories.gs_input(structure, pseudos, + gs_inp = factories.gs_input(structure, pseudos, kppa=options.kppa, ecut=None, pawecutdg=None, scf_nband=None, accuracy="normal", spin_mode=options.spin_mode, smearing=options.smearing, charge=0.0, scf_algorithm=None) - multi = factories.phonons_from_gsinput(gsinp, ph_ngqpt=None, qpoints=None, with_ddk=True, with_dde=True, with_bec=False, + multi = factories.phonons_from_gsinput(gs_inp, ph_ngqpt=None, qpoints=None, with_ddk=True, with_dde=True, with_bec=False, ph_tol=None, ddk_tol=None, dde_tol=None, wfq_tol=None, qpoints_to_skip=None) # Add getwfk variables. @@ -211,8 +245,8 @@ def abinp_phonons(options): def abinp_g0w0(options): """Generate input files for G0W0 calculations.""" - structure = get_structure(options) - pseudos = get_pseudotable(options) + structure = _get_structure(options) + pseudos = _get_pseudotable(options) nscf_nband, ecuteps, ecutsigx = 100, 4, 12 multi = factories.g0w0_with_ppmodel_inputs(structure, pseudos, @@ -241,10 +275,21 @@ def abinp_anaph(options): return finalize(inp, options) +def abinp_vasp(options): + """ + Build VASP input files from a FILE defining the structure. + """ + structure = abilab.Structure.from_file(options.filepath) + cls = vasp_dict_set_cls(options.dict_set) + cprint(f"Generating VASP input using {cls}. Use -d option to change settings.", color="yellow") + cls(structure).write_input(".") + return 0 + + def abinp_wannier90(options): """ Build wannier90 template input file from Abinit input/output file. - possibly with electron bands + possibly with electron bands. """ from abipy.wannier90.win import Wannier90Input inp = Wannier90Input.from_abinit_file(options.filepath) @@ -261,6 +306,15 @@ def abinp_lobster(options): print(lobinp) +def abinp_slurm(options): + """ + Print template for Slurm submmission script + """ + from abipy.flowtk.qutils import get_slurm_template + body = "srun abinit run.abi > run.log 2> run.err" + print(get_slurm_template(body)) + + def get_epilog(): return r""" Usage example: @@ -279,13 +333,13 @@ def get_epilog(): # Abinit Input Factories ######################## - abinp.py gs si.cif > run.abi # Build input for GS run for silicon structure read from CIF file. + abinp.py gs si.cif > run.abi # Build input for GS run for structure read from CIF file. # Redirect output to run.abi. abinp.py ebands out_GSR.nc # Build input for SCF + NSCF run with structure read from GSR.nc file. abinp.py ebands mp-149 # Build input for SCF+NSCF run with (relaxed) structure taken from the # materials project database. Requires internet connection and MAPI_KEY. abinp.py phonons POSCAR # Build input for GS + DFPT calculation of phonons with DFPT. - abinp.py phonons out_HIST.nc # Build input for G0W0 run with (relaxed) structure read from HIST.nc file. + abinp.py phonons out_HIST.nc # Build input for phonons run with (relaxed) structure read from HIST.nc file. # Use e.g. --kppa=100 --spin-mode=polarized --smearing="gaussian: 0.3 eV" # to specify the k-points sampling, the treatment of spin and the occupation scheme. @@ -299,8 +353,10 @@ def get_epilog(): # Other Codes ############# - abinp.py wannier90 FILE # Build and print wannier90 input file from FILE with structure. + abinp.py vasp FILE # Build and write Vasp input files starting from a FILE with structure. + abinp.py wannier90 FILE # Build and print wannier90 input file starting from a FILE with structure. abinp.py lobster . # Build and print lobster input file from directory. + abinp.py slurm # Print template for Slurm submission script Note that one can use pass any file providing a pymatgen structure @@ -321,11 +377,6 @@ def get_parser(with_epilog=False): help='verbose, can be supplied multiple times to increase verbosity') copts_parser.add_argument('--loglevel', default="ERROR", type=str, help="Set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") - copts_parser.add_argument("--mapi-key", default=None, - help="Pymatgen MAPI_KEY used if mp identifier is used to select structure.\n" - "Use value in .pmgrc.yaml if not specified.") - copts_parser.add_argument("--endpoint", help="Pymatgen database.", default="https://www.materialsproject.org/rest/v2") - copts_parser.add_argument("-m", '--mnemonics', default=False, action="store_true", help="Print brief description of input variables in the input file.") copts_parser.add_argument('--usepaw', default=False, action="store_true", @@ -404,12 +455,20 @@ def get_parser(with_epilog=False): # Subparser for anaph command. p_anaph = subparsers.add_parser('anaph', parents=inpgen_parsers, help=abinp_anaph.__doc__) + # Subparser for vasp command. + p_vasp = subparsers.add_parser('vasp', parents=[path_selector], help=abinp_vasp.__doc__) + p_vasp.add_argument('--dict-set', default="MPStaticSet", type=str, + help="VaspDictSet. Default: MPStaticSet. For further info see pymatgen.io.vasp.sets", + choices=ALL_VASP_DICT_SETS) + # Subparser for wannier90 command. p_wannier90 = subparsers.add_parser('wannier90', parents=[path_selector], help=abinp_wannier90.__doc__) # Subparser for lobster command. p_lobster = subparsers.add_parser('lobster', parents=[dir_selector], help=abinp_lobster.__doc__) + p_slurm = subparsers.add_parser('slurm', help=abinp_slurm.__doc__) + return parser @@ -434,13 +493,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): if not options.command: show_examples_and_exit(error_code=1) - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) + cli.set_loglevel(options.loglevel) # Dispatch return globals()["abinp_" + options.command](options) diff --git a/abipy/scripts/abiopen.py b/abipy/scripts/abiopen.py index bcd574210..ded822670 100755 --- a/abipy/scripts/abiopen.py +++ b/abipy/scripts/abiopen.py @@ -5,13 +5,17 @@ session so that one can interact with the file and call its methods. Alternatively, it is possible to generate automatically a jupyter notebook to execute code. """ +from __future__ import annotations + import sys import os import argparse import subprocess +import abipy.tools.cli_parsers as cli +from abipy.tools.plotting import Exposer from pprint import pprint -from monty.os.path import which +from shutil import which from monty.termcolor import cprint from monty.functools import prof_main from abipy import abilab @@ -73,17 +77,21 @@ def make_and_open_notebook(options): return 0 -def get_epilog(): +def get_epilog() -> str: s = """\ +====================================================================================================== Usage example: abiopen.py FILE => Open file in ipython shell. - abiopen.py FILE -nb => Generate jupyter notebook. abiopen.py FILE -p => Print info on object to terminal. abiopen.py FILE -e => Generate matplotlib figures automatically. Use -sns to activate seaborn settings. - abiopen.py FILE --panel => Generate GUI in web browser to interact with FILE - Requires panel package (WARNING: still under development!) + abiopen.py FILE -eweb => Generate matplotlib figures, show them in the $BROWSER. + abiopen.py FILE -ply => Generate plotly figures automatically. Show them in the $BROWSER. + Note that not all FILEs support plotly. + abiopen.py FILE -pn => Generate GUI in web BROWSER to interact with FILE. Requires panel package. + abiopen.py FILE -nb => Generate jupyter-lab notebook. + abiopen.py FILE -cnb => Generate classic jupyter notebook. where `FILE` is any file supported by abipy/pymatgen e.g. Netcdf files, Abinit input, POSCAR, xsf. File extensions supported (including zipped files with extension in ".bz2", ".gz", ".z"): @@ -92,6 +100,7 @@ def get_epilog(): JSON file are supported as well. In this case, abiopen.py tries to reconstruct python objects assuming JSON document in MSONable format and then invokes ipython with the `data` object. Use `-e` or `--notebook` or `--panel` to print the JSON dictionary without reconstructing python objects. +====================================================================================================== Table mapping file extension to AbiPy object: @@ -114,8 +123,8 @@ def get_parser(with_epilog=False): # notebook options. parser.add_argument('-nb', '--notebook', action='store_true', default=False, help="Open file in jupyter notebook") - parser.add_argument('--classic-notebook', action='store_true', default=False, - help="Use classic notebook instead of jupyterlab.") + parser.add_argument('--classic-notebook', "-cnb", action='store_true', default=False, + help="Use classic jupyter notebook instead of jupyterlab.") parser.add_argument('--no-browser', action='store_true', default=False, help=("Start the jupyter server to serve the notebook " "but don't open the notebook in the browser.\n" @@ -126,11 +135,18 @@ def get_parser(with_epilog=False): # print option parser.add_argument('-p', '--print', action='store_true', default=False, help="Print python object and return.") - # panel option - parser.add_argument('--panel', action='store_true', default=False, - help="Open GUI in web browser, requires panel package.") - - # expose option. + # panel options + parser.add_argument("-pn", '--panel', action='store_true', default=False, + help="Open Dashboard in web browser, requires panel package.") + parser.add_argument("-pnt", "--panel-template", default="FastList", type=str, + help="Specify template for panel dasboard." + + "Possible values are: FastList, FastGrid, Golden, Bootstrap, Material, React, Vanilla." + + "Default: FastList" + ) + parser.add_argument("--port", default=0, type=int, help="Allows specifying a specific port when serving panel app.") + #add_expose_options_to_parser(parser) + + # Expose option. parser.add_argument('-e', '--expose', action='store_true', default=False, help="Open file and generate matplotlib figures automatically by calling expose method.") parser.add_argument("-s", "--slide-mode", default=False, action="store_true", @@ -138,15 +154,44 @@ def get_parser(with_epilog=False): parser.add_argument("-t", "--slide-timeout", type=int, default=None, help="Close figure after slide-timeout seconds (only if slide-mode). Block if not specified.") parser.add_argument('-sns', "--seaborn", const="paper", default=None, action='store', nargs='?', type=str, - help='Use seaborn settings. Accept value defining context in ("paper", "notebook", "talk", "poster"). Default: paper') + help='Use seaborn settings. Accept value defining context in ("paper", "notebook", "talk", "poster"). Default: paper') parser.add_argument('-mpl', "--mpl-backend", default=None, help=("Set matplotlib interactive backend. " "Possible values: GTKAgg, GTK3Agg, GTK, GTKCairo, GTK3Cairo, WXAgg, WX, TkAgg, Qt4Agg, Qt5Agg, macosx." "See also: https://matplotlib.org/faq/usage_faq.html#what-is-a-backend.")) + parser.add_argument("-ew", "--expose-web", default=False, action="store_true", + help='Generate matplotlib plots in $BROWSER instead of X-server. WARNING: Not all the features are supported.') + parser.add_argument("-ply", "--plotly", default=False, action="store_true", + help='Generate plotly plots in $BROWSER instead of matplotlib. WARNING: Not all the features are supported.') return parser +def serve_kwargs_from_options(options): + + if options.no_browser: + print(""" +Use: + + ssh -N -f -L localhost:{port}:localhost:{port} username@your_remote_cluster + +for port forwarding. +""") + + import abipy.panels as mod + assets_path = os.path.join(os.path.dirname(mod.__file__), "assets") + + return dict( + debug=options.verbose > 0, + show=not options.no_browser, + port=options.port, + static_dirs={"/assets": assets_path}, + #address=address, + #websocket_origin="{address}:{port}", + ) + + + @prof_main def main(): def show_examples_and_exit(err_msg=None, error_code=1): @@ -164,24 +209,25 @@ def show_examples_and_exit(err_msg=None, error_code=1): except Exception: show_examples_and_exit(error_code=1) - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) + cli.set_loglevel(options.loglevel) + + ############################################################################################## + # Handle meta options i.e. options that set other options. + # OK, it's not very clean but I haven't find any parse API to express this kind of dependency. + ############################################################################################## + if options.plotly: options.expose = True + if options.expose_web: options.expose = True + if options.classic_notebook: options.notebook = True - if options.verbose > 2: - print(options) + if options.verbose > 2: print(options) + # Set matplotlib backend if options.mpl_backend is not None: - # Set matplotlib backend import matplotlib matplotlib.use(options.mpl_backend) + # Use seaborn settings. if options.seaborn: - # Use seaborn settings. import seaborn as sns sns.set(context=options.seaborn, style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=False, rc=None) @@ -192,51 +238,71 @@ def show_examples_and_exit(err_msg=None, error_code=1): if options.filepath.endswith(".json"): return handle_json(options) + if options.filepath.endswith(".csv"): + return handle_csv(options) + + if options.filepath.endswith(".traj"): + return handle_ase_traj(options) + + if options.filepath.endswith("md.aselog"): + return handle_ase_md_log(options) + + if os.path.basename(options.filepath) == "flows.db": + from abipy.flowtk.launcher import print_flowsdb_file + return print_flowsdb_file(options.filepath) + if not options.notebook: abifile = abilab.abiopen(options.filepath) - if options.print: # Print object to terminal. if hasattr(abifile, "to_string"): + #print(f"Calling {abifile.__class__}.to_string with verbose: {verbose}") print(abifile.to_string(verbose=options.verbose)) else: print(abifile) return 0 elif options.expose: - # Generate matplotlib plots automatically. + # Print info to terminal if hasattr(abifile, "to_string"): print(abifile.to_string(verbose=options.verbose)) else: print(abifile) - if hasattr(abifile, "expose"): + # Generate plots automatically. + if options.plotly: + # plotly version + if hasattr(abifile, "plotly_expose"): + abifile.plotly_expose(verbose=options.verbose) + else: + cprint("`%s` does not implement plotly_expose method" % type(abifile), "red") + + elif hasattr(abifile, "expose"): + # matplotlib version abifile.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, - verbose=options.verbose) + use_web=options.expose_web, verbose=options.verbose) else: if not hasattr(abifile, "yield_figs"): raise TypeError("Object of type `%s` does not implement (expose or yield_figs methods" % type(abifile)) - from abipy.tools.plotting import MplExpose - with MplExpose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, - verbose=options.verbose) as e: + from abipy.tools.plotting import MplExposer + with MplExposer(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + verbose=options.verbose) as e: e(abifile.yield_figs()) return 0 elif options.panel: - try: - import panel # noqa: F401 - except ImportError as exc: - cprint("Use `conda install panel` or `pip install panel` to install the python package.", "red") - raise exc - if not hasattr(abifile, "get_panel"): raise TypeError("Object of type `%s` does not implement get_panel method" % type(abifile)) import matplotlib matplotlib.use("Agg") - abifile.get_panel().show() #threaded=True) - return 0 + pn = abilab.abipanel() + + app = abifile.get_panel(template=options.panel_template) + serve_kwargs = serve_kwargs_from_options(options) + + return pn.serve(app, **serve_kwargs) # Start ipython shell with namespace # Use embed because I don't know how to show a header with start_ipython. @@ -269,9 +335,83 @@ def show_examples_and_exit(err_msg=None, error_code=1): return 0 +def handle_ase_traj(options): + """Handle ASE trajectory file.""" + from abipy.ml.aseml import AseTrajectoryPlotter + plotter = AseTrajectoryPlotter.from_file(options.filepath) + + print(plotter.to_string(verbose=options.verbose)) + if options.expose: + if len(plotter.traj) > 1: + plot_kws = dict(show=False) + with Exposer.as_exposer("mpl") as e: + e(plotter.plot(**plot_kws)) + e(plotter.plot_lattice(**plot_kws)) + + return 0 + + +def handle_ase_md_log(options): + """Handle ASE MD log file.""" + from abipy.ml.aseml import AseMdLog + md_log = AseMdLog(options.filepath) + with Exposer.as_exposer("mpl") as e: + e.add_obj_with_yield_figs(md_log) + return 0 + + +def handle_csv(options): + """Handle CSV file.""" + df = pd.read_csv(options.filepath) + + def print_df(): + print("=== Dataframe info ===") + print(df.info()) + print("=== Dataframe describe ===") + print(df.describe()) + + if options.notebook: + raise NotImplementedError("") + # Visualize JSON document in jupyter + #cmd = "jupyter-lab %s" % options.filepath + #print("Executing:", cmd) + #process = subprocess.Popen(cmd.split(), shell=False) #, stdout=fd, stderr=fd) + #cprint("pid: %s" % str(process.pid), "yellow") + return 0 + + elif options.panel: + raise NotImplementedError("") + # Visualize JSON document in panel dashboard. + #pn = abilab.abipanel() + #with abilab.abiopen(options.filepath) as json_file: + # app = json_file.get_panel() + + #serve_kwargs = serve_kwargs_from_options(options) + #return pn.serve(app, **serve_kwargs) + + else: + if options.print: + # Print python object to terminal. + print_df() + return 0 + elif options.expose: + print_df() + raise NotImplementedError("") + return 0 + + # Start ipython shell with namespace + # Use embed because I don't know how to show a header with start_ipython. + print_df() + import IPython + IPython.embed(header=""" +The pandas DataFrame initialized from the csv file can be accesssed via the `df` python variable. +""") + + return 0 + + def handle_json(options): """Handle JSON file.""" - if options.notebook: # Visualize JSON document in jupyter cmd = "jupyter-lab %s" % options.filepath @@ -281,15 +421,13 @@ def handle_json(options): return 0 elif options.panel: - # Visualize JSON document in panel dashboard - import json - import panel as pn - with open(options.filepath, "rt") as fh: - d = json.load(fh) - json_pane = pn.pane.JSON(d, name='JSON', height=300, width=500) - app = pn.Row(json_pane.controls(jslink=True), json_pane) - app.show() - return 0 + # Visualize JSON document in panel dashboard. + pn = abilab.abipanel() + with abilab.abiopen(options.filepath) as json_file: + app = json_file.get_panel() + + serve_kwargs = serve_kwargs_from_options(options) + return pn.serve(app, **serve_kwargs) else: if options.print: @@ -313,6 +451,18 @@ def handle_json(options): The object initialized from JSON (MSONable) is associated to the `data` python variable. """) + return 0 + + +def handle_flowsdb_file(options): + """Handle flows.db file.""" + import pandas as pd + import sqlite3 + with sqlite3.connect(options.filepath) as con: + df = pd.read_sql_query("SELECT * FROM flows", con) + abilab.print_dataframe(df, title=options.filepath) + return 0 + if __name__ == "__main__": sys.exit(main()) diff --git a/abipy/scripts/abips.py b/abipy/scripts/abips.py new file mode 100755 index 000000000..cc16dfdc6 --- /dev/null +++ b/abipy/scripts/abips.py @@ -0,0 +1,344 @@ +#!/usr/bin/env python +""" +Script to download and install pseudopotential tables from the web. +""" +from __future__ import annotations + +import sys +#import os +import argparse +import abipy.tools.cli_parsers as cli + +from monty.termcolor import cprint +from pymatgen.core.periodic_table import Element +from abipy.core.release import __version__ +from abipy.tools import duck +from abipy.flowtk.pseudos import PseudoTable +from abipy.flowtk.psrepos import (tabulate_repos, repos_from_names, + get_all_registered_repos, get_installed_repos_and_root) + + +def abips_list(options) -> list: + """ + List installed pseudopotential repos. + """ + repos, repos_root = get_installed_repos_and_root() + if not repos: + print("Could not find any pseudopotential repository installed in:", repos_root) + return 0 + + print(f"The following pseudopotential repositories are installed in {repos_root}:\n") + print(tabulate_repos(repos, exclude=["installed"], verbose=options.verbose)) + + if not options.checksums: + print("\nUse -c to validate the md5 checksum") + return 0 + + exc_list = [] + for repo in repos: + try: + repo.validate_checksums(options.verbose) + except Exception as exc: + exc_list.append(exc) + + if exc_list: + print("\nList of exceptions raised by validate_checksums:") + for exc in exc_list: + print(exc) + + return len(exc_list) + + +def abips_avail(options) -> int: + """ + Show available pseudopotential repos. + """ + print("List of available pseudopotential repositories:\n") + all_repos = get_all_registered_repos() + print(tabulate_repos(all_repos, with_citations=True, verbose=options.verbose)) + return 0 + + +#def abips_nc_install(options) -> int: +# """ +# Get all NC repos for a given version, +# Can choose among three formats: psp8, upf2 and psml. By default we fetch all formats. +# """ +# repos_root = get_repos_root(options) +# all_repos = get_all_registered_repos() +# repos = [repo for repo in all_repos if repo.isnc and not repo.is_installed(repos_root)] +# if not repos: +# print(f"All registered NC repositories are already installed in {repos_root}. Returning") +# return 0 +# +# print("The following NC repositories will be installed:\n") +# pprint_repos(repos, repos_root=repos_root) +# if not options.yes and cli.user_wants_to_abort(): +# return 2 +# +# print("Fetching NC repositories. It may take some time ...") +# for repo in repos: +# repo.install(repos_root, options.verbose) +# +# if options.verbose: abips_list(options) +# return 0 +# +# +#def abips_paw_install(options): +# """ +# Get all JTH PAW repositories in PAWXML format for the given version. +# """ +# repos_root = get_repos_root(options) +# all_repos = get_all_registered_repos() +# repos = [repo for repo in ALL_REPOS if repo.ispaw and not repo.is_installed(repos_root)] +# if not repos: +# print(f"All registered PAW repositories are already installed in {repos_root}. Returning") +# return 0 +# +# print("The following PAW repositories will be installed:") +# pprint_repos(repos, repos_root=repos_root) +# if not options.yes and cli.user_wants_to_abort(): +# return 2 +# +# print("Fetching PAW repositories. It may take some time ...") +# for repo in repos: +# repo.install(repos_root, options.verbose) +# +# if options.verbose: abips_list(options) +# return 0 + + +def abips_install(options) -> int: + """ + Install pseudopotential repositories by name(s). + Use `avail` command to get repo names. + """ + repos = repos_from_names(options.repo_names) + repos = [repo for repo in repos if not repo.is_installed()] + + if not repos: + print("Table(s) are already installed! Nothing to do. Returning") + return 0 + + print("The following pseudopotential repositories will be installed:") + print(tabulate_repos(repos, verbose=options.verbose), "\n") + #if not options.yes and cli.user_wants_to_abort(): return 2 + + for repo in repos: + repo.install(verbose=options.verbose) + + if options.verbose: + abips_list(options) + + return 0 + + +def abips_show(options) -> int: + """ + Show info on pseudopotential table(s). + """ + repos = repos_from_names(options.repo_names) + repos = [repo for repo in repos if repo.is_installed()] + + if not repos: + print(f"There's no installed repository with name in: {options.repo_names}") + return 1 + + for repo in repos: + print(repo) + for table_name in repo.table_names: + pseudos = repo.get_pseudos(table_name=table_name) + print(f"For table_name: {table_name}:\n") + if options.symbol is not None: + print("Selecting pseudos with symbol:", options.symbol) + pseudos = pseudos.pseudo_with_symbol(options.symbol, allow_multi=False) + print(pseudos) + + return 0 + + +def abips_element(options) -> int: + """ + Find all pseudos in the installed tables for the given element (symbol or znucl). + """ + # Accept symbol string or Z + symbol = options.element + if symbol.isnumeric(): + symbol = Element.from_Z(int(symbol)).symbol + + repos, repos_root = get_installed_repos_and_root() + if not repos: + print("Could not find any pseudopotential repository installed in:", repos_root) + return 1 + + pseudo_list = [] + for repo in repos: + for table_name in repo.table_names: + try: + pseudos = repo.get_pseudos(table_name=table_name) + pseudo = pseudos.pseudo_with_symbol(symbol, allow_multi=False) + except Exception as exc: + cprint(f"{str(exc)}", "red") + continue + + if pseudo not in pseudo_list: + pseudo_list.append(pseudo) + + pseudos = PseudoTable(pseudo_list) + pseudos.print_table() + + return 0 + + +def abips_mkff(options) -> int: + """ + Call Abinit to compute PSPS.nc files from a list of pseudos and show results. + """ + from abipy.electrons.psps import PspsFile, PspsRobot + ecut = options.ecut + + if len(options.pseudo_paths) == 1: + if options.vloc_rcut_list is None: + with PspsFile.from_abinit_run(options.pseudo_paths[0], ecut) as abifile: + if options.verbose: print(abifile) + abifile.expose(use_web=options.expose_web, + slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + verbose=options.verbose + ) + + else: + robot = PspsRobot.from_vloc_rcut_list(options.pseudo_paths[0], options.vloc_rcut_list, ecut) + if options.verbose: print(robot) + robot.expose(use_web=options.expose_web, + slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + verbose=options.verbose + ) + + else: + if options.vloc_rcut_list is not None: + raise ValueError("vloc_rcut_list does not support more than one pseudo!") + robot = PspsRobot.from_abinit_run(options.pseudo_paths, ecut) + + if options.verbose: print(robot) + robot.expose(use_web=options.expose_web, + slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + verbose=options.verbose + ) + + return 0 + + +def get_epilog() -> str: + return """\ + +Usage example: + + abips.py avail --> Show all registered pseudopotential repositories. + abips.py list --> List repositories installed on this machine. + abips.py install ONCVPSP-PBEsol-SR-PDv0.4 --> Install repository by name (requires internet connection). + abips.py show ONCVPSP-PBEsol-SR-PDv0.4 --> Show info on pseudos in repository. + abips.py element O --> Show all installed pseudos for element. + abips.py mkff PSEUDO1 [PSEUDO2 ...] --> Compute form factors for pseudos and show them. +""" + #abips.py onc_install --> Get all NC repositories (most recent version) + #abips.py onc_install -xc PBE -fr -sr -v 0.4 + #abips.py jth_install --> Get all JTH PAW repositories (most recent version) + + +def get_parser(with_epilog=False): + + # Parent parser for common options. + copts_parser = argparse.ArgumentParser(add_help=False) + copts_parser.add_argument('-v', '--verbose', default=0, action='count', # -vv --> verbose=2 + help='verbose, can be supplied multiple times to increase verbosity.') + + copts_parser.add_argument('--loglevel', default="ERROR", type=str, + help="Set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") + + #copts_parser.add_argument('--repos-root', "-r", type=str, + # default=os.path.expanduser(os.path.join("~", ".abinit", "pseudos")), + # help='Installation directory. Default: $HOME/.abinit/pseudos') + + #copts_parser.add_argument('-y', "--yes", action="store_true", default=False, + # help="Do not ask for confirmation when installing repositories.") + + # Build the main parser. + parser = argparse.ArgumentParser(epilog=get_epilog() if with_epilog else "", + formatter_class=argparse.RawDescriptionHelpFormatter) + parser.add_argument('-V', '--version', action='version', version=__version__) + + # Create the parsers for the sub-commands + subparsers = parser.add_subparsers(dest='command', help='sub-command help', description="Valid subcommands") + + # Subparser for avail command. + subparsers.add_parser("avail", parents=[copts_parser], help=abips_avail.__doc__) + + # Subparser for list command. + p_list = subparsers.add_parser("list", parents=[copts_parser], help=abips_list.__doc__) + p_list.add_argument("-c", "--checksums", action="store_true", default=False, + help="Validate md5 checksums.") + + # Subparser for install command. + p_install = subparsers.add_parser("install", parents=[copts_parser], help=abips_install.__doc__) + p_install.add_argument("repo_names", type=str, nargs="+", help="List of repositories to download.") + p_install.add_argument("-c", "--checksums", action="store_true", default=False, + help="Validate md5 checksums.") + + # Subparser for onc_install command. + #p_onc_install = subparsers.add_parser("onc_install", parents=[copts_parser], help=abips_onc_install.__doc__) + #p_onc_install.add_argument("-v", type=str, default=None, help="Table version. Default: latest one ") + + # Subparser for jth_install command. + #p_jth_install = subparsers.add_parser("jth_install", parents=[copts_parser], help=abips_paw_install.__doc__) + #p_jth_install.add_argument("-v", type=str, default=None, help="Table version. Default: latest one ") + + # Subparser for show command. + p_show = subparsers.add_parser("show", parents=[copts_parser], help=abips_show.__doc__) + p_show.add_argument("repo_names", type=str, nargs="+", help="List of repo names.") + p_show.add_argument("-s", "--symbol", type=str, default=None, help="Select pseudo by element symbol.") + + # Subparser for list command. + p_element = subparsers.add_parser("element", parents=[copts_parser], help=abips_element.__doc__) + p_element.add_argument("element", type=str, help="Element symbol or atomic number.") + + # Subparser for mkff command. + p_mkff = subparsers.add_parser("mkff", parents=[copts_parser], help=abips_mkff.__doc__) + p_mkff.add_argument("pseudo_paths", nargs="+", type=str, help="Pseudopotential path.") + p_mkff.add_argument("--ecut", type=float, required=True, help="Cutoff energy in Ha.") + p_mkff.add_argument("-rc", "--vloc-rcut-list", nargs="+", default=None, type=float, + help="List of cutoff radii for vloc in Bohr.") + cli.add_expose_options_to_parser(p_mkff) + + return parser + + +def main(): + + def show_examples_and_exit(err_msg=None, error_code=1): + """Display the usage of the script.""" + sys.stderr.write(get_epilog()) + if err_msg: sys.stderr.write("Fatal Error\n" + err_msg + "\n") + sys.exit(error_code) + + parser = get_parser(with_epilog=True) + + # Parse command line. + try: + options = parser.parse_args() + except Exception as exc: + print(exc) + show_examples_and_exit(error_code=1) + + #cli.set_loglevel(options.loglevel) + + # Use seaborn settings. + if hasattr(options, "seaborn") and options.seaborn: + import seaborn as sns + sns.set(context=options.seaborn, style='darkgrid', palette='deep', + font='sans-serif', font_scale=1, color_codes=False, rc=None) + + return globals()[f"abips_{options.command}"](options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/scripts/abirun.py b/abipy/scripts/abirun.py index e6be56468..86697625d 100755 --- a/abipy/scripts/abirun.py +++ b/abipy/scripts/abirun.py @@ -1,8 +1,10 @@ #!/usr/bin/env python """ -This script allows the user to submit the calculations contained in the `Flow`. -It provides a command line interface as well as a graphical interface based on wxpython. +The abirun.py script allows the user to submit the calculations contained in an AbiPy `Flow`. +It provides a command line interface as well graphical interfaces. """ +from __future__ import annotations + import sys import os import argparse @@ -12,6 +14,7 @@ import tempfile import abipy.flowtk as flowtk import abipy.abilab as abilab +import abipy.tools.cli_parsers as cli from pprint import pprint from collections import defaultdict, OrderedDict @@ -22,20 +25,21 @@ from monty.string import boxed, make_banner from abipy.tools import duck from abipy.flowtk import Status +from abipy.flowtk.flows import Flow -def straceback(): +def straceback() -> str: """Returns a string with the traceback.""" import traceback return traceback.format_exc() -def parse_strings(s): +def parse_strings(s: str): """Parse comma separated values. Return None if s is None.""" return s.split(",") if s is not None else s -def flowdir_wname_tname(dirname): +def flowdir_wname_tname(dirname: str): """" Given a initial directory `dirname` containing a node of the `Flow`, this function locates the directory of the flow (e.g. the directory with the pickle file) @@ -76,10 +80,11 @@ def flowdir_wname_tname(dirname): raise RuntimeError("Cannot locate flowdir from %s" % dirname) -def select_nids(flow, options): +def select_nids(flow: Flow, options) -> set: """ - Return the list of node ids selected by the user via the command line interface. + Return the set of node ids selected by the user via the command line interface. """ + #print("options.nids:", options.nids) task_ids = [task.node_id for task in flow.select_tasks(nids=options.nids, wslice=options.wslice, task_class=options.task_class)] @@ -92,7 +97,7 @@ def select_nids(flow, options): return set(work_ids + task_ids) -def cli_abiopen(options, filepath): +def cli_abiopen(options, filepath: str): """Code taken from abiopen.py.""" # TODO: One should have a single API but make_and_open_notebook are different so # for the time being we use two different versions. @@ -133,7 +138,7 @@ def cli_abiopen(options, filepath): #return make_and_open_notebook(options) -def flow_debug_reset_tasks(flow, nids=None, verbose=0): +def flow_debug_reset_tasks(flow: Flow, nids=None, verbose=0) -> None: """ Analyze error files produced by reset tasks for possible error messages @@ -171,7 +176,7 @@ def flow_debug_reset_tasks(flow, nids=None, verbose=0): print("Number of tasks analyzed: %d" % ntasks) -def flow_watch_status(flow, delay=5, nids=None, verbose=0, func_name="show_func"): +def flow_watch_status(flow: Flow, delay=5, nids=None, verbose=0, func_name="show_func"): """ Enter an infinite loop and delay execution for the given number of seconds. (default: 5 secs). @@ -269,7 +274,7 @@ def exit_now(): cprint("Received KeyboardInterrupt from user\n", "yellow") -def get_epilog(): +def get_epilog() -> str: usage = """\ Usage example: @@ -452,13 +457,6 @@ def parse_wslice(s): p_scheduler.add_argument('-m', '--minutes', default=0, type=int, help="Number of minutes to wait.") p_scheduler.add_argument('-s', '--seconds', default=0, type=int, help="Number of seconds to wait.") - # Subparser for batch command. - p_batch = subparsers.add_parser('batch', parents=[copts_parser], help="Run scheduler in batch script.") - p_batch.add_argument("-t", '--timelimit', default=None, help=("Time limit for batch script. " - "Accept int with seconds or string with time given in the slurm convention: " - "`days-hours:minutes:seconds`. If timelimit is None, the default value specified" - " in the `batch_adapter` entry of `manager.yml` is used.")) - # Subparser for status command. p_status = subparsers.add_parser('status', parents=[copts_parser, flow_selector_parser], help="Show status table.") p_status.add_argument('-d', '--delay', nargs="?", const=5, default=0, type=int, @@ -524,8 +522,29 @@ def parse_wslice(s): p_docsched = subparsers.add_parser('doc_scheduler', parents=[copts_parser], help="Document the options available in scheduler.yml.") - p_panel = subparsers.add_parser('panel', parents=[copts_parser], + # Subparser for explain_(works|tasks) + p_explain_works = subparsers.add_parser('explain_works', parents=[copts_parser, flow_selector_parser], + help="Explain operations performed by Works") + p_explain_tasks = subparsers.add_parser('explain_tasks', parents=[copts_parser, flow_selector_parser], + help="Explain operations performed by Tasks") + + # Subparser for autoparal + p_autoparal = subparsers.add_parser('autoparal', parents=[copts_parser, flow_selector_parser], + help="Show autoparal configurations and optimal ones.") + + # Subparser for panel + p_panel = subparsers.add_parser('panel', parents=[copts_parser, flow_selector_parser], help="Interact with the flow in the browser (requires panel package).") + p_panel.add_argument("-pnt", "--panel-template", default="FastList", type=str, + help="Specify template for panel dasboard." + + "Possible values are: FastList, FastGrid, Golden, Bootstrap, Material, React, Vanilla." + + "Default: FastList" + ) + p_panel.add_argument('--no-browser', action='store_true', default=False, + help=("Start the bokeh server to serve the panel app " + "but don't open the app in the browser.\n" + "Use this option to connect remotely from localhost to the machine running the server")) + p_panel.add_argument("--port", default=0, type=int, help="Allows specifying a specific port when serving panel app.") # Subparser for new_manager. p_new_manager = subparsers.add_parser('new_manager', parents=[copts_parser, flow_selector_parser], @@ -538,6 +557,10 @@ def parse_wslice(s): p_tail.add_argument('what_tail', nargs="?", type=str, default="o", choices=["o", "l", "e"], help="What to follow: `o` for output (default), `l` for logfile, `e` for stderr.") + # Subparser for tail. + p_timeit = subparsers.add_parser('timeit', parents=[copts_parser, flow_selector_parser], + help="Extract timing data from Abinit output files.") + # Subparser for qstat. # TODO: finalize the implementation #p_qstat = subparsers.add_parser('qstat', parents=[copts_parser], help="Show additional info on the jobs in the queue.") @@ -640,6 +663,16 @@ def parse_wslice(s): p_notebook.add_argument('--foreground', action='store_true', default=False, help="Run jupyter notebook in the foreground.") + # TODO: + #parser.add_argument('--classic-notebook', "-cnb", action='store_true', default=False, + # help="Use classic jupyter notebook instead of jupyterlab.") + #parser.add_argument('--no-browser', action='store_true', default=False, + # help=("Start the jupyter server to serve the notebook " + # "but don't open the notebook in the browser.\n" + # "Use this option to connect remotely from localhost to the machine running the kernel")) + #parser.add_argument('--foreground', action='store_true', default=False, + # help="Run jupyter notebook in the foreground.") + # Subparser for ipython. p_ipython = subparsers.add_parser('ipython', parents=[copts_parser], help="Embed IPython. Useful for advanced operations or debugging purposes.") @@ -650,7 +683,7 @@ def parse_wslice(s): # Subparser for tar. p_tar = subparsers.add_parser('tar', parents=[copts_parser], help="Create tarball file.") p_tar.add_argument("-s", "--max-filesize", default=None, - help="Exclude file whose size > max-filesize bytes. Accept integer or string e.g `1Mb`.") + help="Exclude file whose size > max-filesize bytes. Accept integer or string e.g `1MB`.") p_tar.add_argument("-e", "--exclude-exts", default=None, type=parse_strings, help="Exclude file extensions. Accept string or comma-separated strings. Ex: -eWFK or --exclude-exts=WFK,GSR") p_tar.add_argument("-d", "--exclude-dirs", default=None, type=parse_strings, @@ -671,6 +704,10 @@ def parse_wslice(s): p_debug_reset = subparsers.add_parser('debug_reset', parents=[copts_parser, flow_selector_parser], help="Analyze error files and log files produced by reset tasks for possible error messages.") + # Subparser for reset_jobids. + p_reset_jobids = subparsers.add_parser('reset_jobids', parents=[copts_parser, flow_selector_parser], + help="Analyze error files and log files produced by reset tasks for possible error messages.") + # Subparser for clone_task. #p_clone_task = subparsers.add_parser('clone_task', parents=[copts_parser, flow_selector_parser], # help="Clone task, change input variables and add new tasks to the flow. Requires clone_task.py.") @@ -701,7 +738,7 @@ def parse_wslice(s): p_graphviz.add_argument("-e", "--engine", type=str, default="automatic", help=("graphviz engine: ['dot', 'neato', 'twopi', 'circo', 'fdp', 'sfdp', 'patchwork', 'osage']. " "Default: automatic i.e. the engine is automatically selected. See http://www.graphviz.org/pdf/dot.1.pdf " - "Use `conda install python-graphviz` or `pip install graphviz` to install the python package")) + "Use `conda install python-graphviz` or `pip install graphviz` to install the python package.")) p_graphviz.add_argument("-d", '--dirtree', default=False, action="store_true", help='Visualize files and directories in workdir instead of tasks/works.') @@ -713,6 +750,32 @@ def parse_wslice(s): return parser +def serve_kwargs_from_options(options) -> dict: + + #address = "localhost" + if options.no_browser: + print(""" +Use: + + ssh -N -f -L localhost:{port}:localhost:{port} username@your_remote_cluster + +for port forwarding. +""") + + import abipy.panels as mod + assets_path = os.path.join(os.path.dirname(mod.__file__), "assets") + + return dict( + debug=options.verbose > 0, + show=not options.no_browser, + port=options.port, + static_dirs={"/assets": assets_path}, + #address=address, + #websocket_origin="{address}:{port}", + ) + + + @prof_main def main(): @@ -733,13 +796,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): if not options.command: show_examples_and_exit(error_code=1) - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) + cli.set_loglevel(options.loglevel) if options.verbose > 2: print(options) @@ -785,7 +842,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): print(abinit_build.info) return 0 - # Abiopen does not need flow + # Abiopen does not need a flow if options.command == "abiopen": return cli_abiopen(options, options.flowdir) @@ -825,12 +882,12 @@ def show_examples_and_exit(err_msg=None, error_code=1): for w_pos, work in enumerate(flow): if os.path.basename(work.workdir) == wname: break else: - raise RuntimeError("Cannot find work from name %s" % wname) + raise RuntimeError(f"Cannot find work from name: {wname}") for t_pos, task in enumerate(flow[w_pos]): if os.path.basename(task.workdir) == tname: break else: - raise RuntimeError("Cannot find task from name %s" % tname) + raise RuntimeError(f"Cannot find task from name: {tname}") # Create options.nids here options.nids = set([flow[w_pos].node_id, flow[w_pos][t_pos].node_id]) @@ -840,7 +897,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): for w_pos, work in enumerate(flow): if os.path.basename(work.workdir) == wname: break else: - raise RuntimeError("Cannot find work from name %s" % wname) + raise RuntimeError(f"Cannot find work from name: {wname}") # Create options.nids here options.nids = set([flow[w_pos].node_id] + [task.node_id for task in flow[w_pos]]) @@ -856,7 +913,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): options.task_status = Status.as_status("QCritical") # Change the manager of the errored tasks. - print("Resetting tasks with status: %s" % options.task_status) + print(f"Resetting tasks with status: {options.task_status}") for task in flow.iflat_tasks(status=options.task_status, nids=select_nids(flow, options)): task.reset() task.set_manager(new_manager) @@ -864,14 +921,36 @@ def show_examples_and_exit(err_msg=None, error_code=1): # Update the database. return flow.build_and_pickle_dump() + elif options.command in ("explain_works", "explain_tasks"): + what = options.command.split("_")[1] + s = flow.explain(what=what, nids=select_nids(flow, options), verbose=options.verbose) + print(s) + + elif options.command == "autoparal": + flow.show_autoparal(nids=select_nids(flow, options), verbose=options.verbose) + elif options.command == "panel": - try: - import panel # noqa: F401 - except ImportError as exc: - cprint("Use `conda install panel` or `pip install panel` to install the python package.", "red") - raise exc + pn = abilab.abipanel() + serve_kwargs = serve_kwargs_from_options(options) + + if options.nids is None: + # Start Multipage app for this flow. + from abipy.panels.flows import FlowMultiPageApp + FlowMultiPageApp(flow, options.panel_template).serve(**serve_kwargs) + + else: + node_list = list(flow.iflat_nodes(nids=select_nids(flow, options))) + if len(node_list) > 1: + print("Got more than one node in node_list:") + print("Only the last node will be shown in the panel dashboard!\n") + for node in node_list: + print(node) + print("") + + node = node_list[-1] + app = node.get_panel(template=options.panel_template) + pn.serve(app, **serve_kwargs) - flow.get_panel().show() return 0 elif options.command == "events": @@ -891,11 +970,13 @@ def show_examples_and_exit(err_msg=None, error_code=1): flow.show_event_handlers(verbose=options.verbose) elif options.command == "single": + cprint("abirun.py single is deprecated and will be removed in Abipy v1.0. Use `scheduler`", color="red") nlaunch = flow.single_shot() if nlaunch: flow.show_status() cprint("Number of tasks launched: %d" % nlaunch, "yellow") elif options.command == "rapid": + cprint("abirun.py rapid is deprecated and will be removed in Abipy v1.0. Use `scheduler`", color="red") nlaunch = flow.rapidfire(max_nlaunch=options.max_nlaunch, max_loops=1, sleep_time=5) if nlaunch: flow.show_status() cprint("Number of tasks launched: %d" % nlaunch, "yellow") @@ -915,9 +996,6 @@ def show_examples_and_exit(err_msg=None, error_code=1): print(sched) return sched.start() - elif options.command == "batch": - return flow.batch(timelimit=options.timelimit) - elif options.command == "status": # Select the method to call. show_func = flow.show_status if not options.summary else flow.show_summary @@ -961,7 +1039,6 @@ def show_examples_and_exit(err_msg=None, error_code=1): nlaunch, excs = 0, [] for task in flow.iflat_tasks(status=options.task_status, nids=select_nids(flow, options)): - #if options.verbose: print("Will try to restart %s, with status %s" % (task, task.status)) try: fired = task.restart() @@ -1011,7 +1088,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): flow.pickle_dump() elif options.command == "move": - print("Will move flow to %s..." % options.dest) + print("Moving flow to: %s ..." % options.dest) flow.chroot(options.dest) flow.move(options.dest) @@ -1040,10 +1117,15 @@ def get_path(task): except KeyboardInterrupt: cprint("Received KeyboardInterrupt from user\n", "yellow") - #elif options.command == "qstat": - # print("Warning: this option is still under development.") - # #for task in flow.select_tasks(nids=options.nids, wslice=options.wslice): - # for task in flow.iflat_tasks(): + elif options.command == "timeit": + flow.check_status() + time_parser = flow.parse_timing(nids=select_nids(flow, options)) + print(time_parser) + df = time_parser.summarize() + abilab.print_dataframe(df, title="output of time_parse.summarize():") + + #elif options.command == "squeue": + # for task in flow.select_tasks(nids=options.nids, wslice=options.wslice): # if not task.qjob: continue # print("qjob", task.qjob) # print("info", task.qjob.get_info()) @@ -1090,7 +1172,7 @@ def get_path(task): elif options.command == "cycles": # Print cycles. - from pymatgen.io.abinit.abiinspect import CyclesPlotter + from abipy.flowtk.abiinspect import CyclesPlotter cls2plotter = OrderedDict() for task, cycle in flow.get_task_scfcycles(nids=select_nids(flow, options), exclude_ok_tasks=options.exclude_ok_tasks): @@ -1173,7 +1255,7 @@ def plot_graphs(): elif plot_mode == "combiplot": robot.combiplot() else: - raise ValueError("Invalid value of plot_mode: %s" % str(plot_mode)) + raise ValueError(f"Invalid value of plot_mode: {plot_mode}") elif options.command == "notebook": return flow.write_open_notebook(options.foreground) @@ -1204,12 +1286,30 @@ def plot_graphs(): elif options.command == "debug_reset": flow_debug_reset_tasks(flow, nids=select_nids(flow, options), verbose=options.verbose) + elif options.command == "reset_jobids": + # Make sure we have slurm. + qtype = flow[0][0].manager.qadapter.QTYPE.lower() + if qtype != "slurm": + cprint("reset_jobids is only available for slurm", color="magenta", end="", flush=True) + return 1 + + # Call squeue to get list of job infos and extract slurm_jobs + from abipy.flowtk.qutils import slurm_get_jobs + slurm_jobs = slurm_get_jobs() + + for task in flow.iflat_tasks(status=options.task_status, nids=select_nids(flow, options)): + qid = task.queue_id + if qid is None: continue + if qid not in slurm_jobs and not task.is_completed: + print("Task:", task, "seeem to have been killed and will be automatically reset.") + task.reset() + + return flow.build_and_pickle_dump() + # TODO #elif options.command == "debug_restart": # flow_debug_restart_tasks(flow, nids=select_nids(flow, options), verbose=options.verbose) - #elif options.command == "clone_task": - elif options.command == "group": d = defaultdict(list) print("\nMapping `%s` ---> List of node identifiers" % options.groupby) @@ -1270,8 +1370,18 @@ def plot_graphs(): else: graph = node.get_graphviz(engine=options.engine) + # Add this liine to print the DOT string. Can be used with e.g. http://viz-js.com/ + if options.verbose: print(graph) + graph.view(directory=directory, cleanup=False) + if options.verbose > 1: + # Write graph to file in png format. + graph.format = "png" + graph.attr(dpi=str(300)) + path = graph.render("graph", view=False, cleanup=False) + print("Saving png file to:", path) + elif options.command == "listext": if not options.listexts: print("\nPlease specify the file extension(s), e.g. GSR SIGRES.\nList of available extensions:\n") @@ -1284,7 +1394,7 @@ def plot_graphs(): print("") else: - raise RuntimeError("Don't know what to do with command %s!" % options.command) + raise ValueError(f"Don't know what to do with command {options.command}!") return retcode diff --git a/abipy/scripts/abislurm.py b/abipy/scripts/abislurm.py new file mode 100755 index 000000000..455956f9e --- /dev/null +++ b/abipy/scripts/abislurm.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python +""" +This script retrieve information on Slurm jobs. +""" +import sys +import os +import argparse +import abipy.tools.cli_parsers as cli +import abipy.flowtk.qutils as qu + +from abipy.core.release import __version__ + + +def get_epilog() -> str: + return """\ +Usage example:\n + + abislurm.py running => Get info on all the running jobs + abislurm.py completed 111 112 => Get info on completed jobs +""" + + +def get_parser(with_epilog=False): + # Build the main parser. + parser = argparse.ArgumentParser(epilog=get_epilog() if with_epilog else "", + formatter_class=argparse.RawDescriptionHelpFormatter) + + parser.add_argument('-v', '--verbose', default=0, action='count', # -vv --> verbose=2 + help='verbose, can be supplied multiple times to increase verbosity') + + #parser.add_argument('-V', '--version', action='version', version="%(prog)s version " + __version__) + #parser.add_argument('--loglevel', default="ERROR", type=str, + # help="set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") + + # Parent parser for common options. + copts_parser = argparse.ArgumentParser(add_help=False) + copts_parser.add_argument('-v', '--verbose', default=0, action='count', # -vv --> verbose=2 + help='verbose, can be supplied multiple times to increase verbosity') + copts_parser.add_argument('--loglevel', default="ERROR", type=str, + help="Set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") + + job_ids_parser = argparse.ArgumentParser(add_help=False) + job_ids_parser.add_argument('job_ids', nargs="+", help="List of job ids.") + + # Create the parsers for the sub-commands + subparsers = parser.add_subparsers(dest='command', help='sub-command help', + description="Valid subcommands, use command --help for help") + + # Subparser for running command. + p_running = subparsers.add_parser('running', parents=[copts_parser], + help="Check info on all the running jobs.") + + # Subparser for completed command. + p_completed = subparsers.add_parser('completed', parents=[copts_parser, job_ids_parser], + help="Returning info on completed jobs.") + + return parser + + +def main(): + + def show_examples_and_exit(err_msg=None, error_code=1): + """Display the usage of the script.""" + sys.stderr.write(get_epilog()) + if err_msg: sys.stderr.write("Fatal Error\n" + err_msg + "\n") + sys.exit(error_code) + + parser = get_parser(with_epilog=True) + + # Parse command line. + try: + options = parser.parse_args() + except Exception as exc: + show_examples_and_exit(error_code=1) + + if not options.command: + show_examples_and_exit(error_code=1) + + cli.set_loglevel(options.loglevel) + + if options.verbose > 2: + print(options) + + if options.command == "running": + jobs_dict = qu.slurm_get_jobs() + for job_id, dct in jobs_dict.items(): + print(f"{job_id=}", dct) + + #elif options.command == "running_from_abilogs": + + elif options.command == "completed": + for job_id in options.job_ids: + print(qu.get_completed_job_info(job_id)) + + #elif options.command == "completed_from_abilogs": + # job_ids = [] + + else: + raise ValueError(f"Unsupported {options.command=}") + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/scripts/abistruct.py b/abipy/scripts/abistruct.py index cd6afc431..5f8c3209f 100755 --- a/abipy/scripts/abistruct.py +++ b/abipy/scripts/abistruct.py @@ -2,30 +2,32 @@ """ Script to analyze/export/visualize the crystal structure saved in the netcdf files produced by ABINIT. """ +from __future__ import annotations + import sys import os import argparse import numpy as np +import abipy.tools.cli_parsers as cli from pprint import pprint from tabulate import tabulate from monty.string import marquee from monty.functools import prof_main from monty.termcolor import cprint -from pymatgen.io.vasp.outputs import Xdatcar -from abipy import abilab from abipy.core.symmetries import AbinitSpaceGroup from abipy.core.kpoints import Ktables, Kpoint, IrredZone from abipy.core.structure import diff_structures from abipy.iotools.visualizer import Visualizer from abipy.iotools.xsf import xsf_write_structure from abipy.abio import factories +from abipy import abilab -def save_structure(structure, options): +def save_structure(structure, options) -> None: """Save structure to file.""" if not options.savefile: return - print("Saving structure to %s" % options.savefile) + print("Saving structure to file:", options.savefile) if os.path.exists(options.savefile): backup = options.savefile + ".bkp" print("%s already exists. Saving backup copy to: %s" % (options.savefile, backup)) @@ -34,7 +36,7 @@ def save_structure(structure, options): structure.to(filename=options.savefile) -def check_ordered_structure(structure): +def check_ordered_structure(structure) -> None: """Print a warning and sys.exit 1 if structure is disordered.""" if not structure.is_ordered: cprint(""" @@ -44,7 +46,7 @@ def check_ordered_structure(structure): sys.exit(1) -def get_epilog(): +def get_epilog() -> str: return """\ Usage example: @@ -59,9 +61,9 @@ def get_epilog(): and save "abisanitized" structure to file. abistruct.py conventional FILE => Read structure from FILE, generate conventional structure following Setyawan, W., & Curtarolo, S. (2010) doi:10.1016/j.commatsci.2010.05.010 - abistruct.py proto FILE => Read structure from FILE, find possible crystallographic prototypes: - in the AFLOW library of crystallographic prototypes. - http://doi.org/10.1016/j.commatsci.2017.01.017 + abistruct.py proto FILE => Read structure from FILE, find possible crystallographic prototypes: + in the AFLOW library of crystallographic prototypes. + See http://doi.org/10.1016/j.commatsci.2017.01.017 ################## # Conversion tools @@ -72,6 +74,7 @@ def get_epilog(): (Use convert --help to get list of formats supported) abistruct.py convert out_HIST.nc => Read FINAL structure from the HIST file and print the corresponding ABINIT variables. + abistruct.py traj2xdatcar out.traj => Convert ASE trajectory file `out.traj` into VASP XDATCAR. abistruct.py supercell FILE -s 2 2 1 => Read structure from FILE and build [2, 2, 1] supercell, print new structure using --format (default abivars). ################ @@ -127,10 +130,10 @@ def get_epilog(): `Ir-O-*` for wildcard pattern matching. Print info and Abinit input files. Use e.g. `-f POSCAR` to change output format. `-f None` to disable structure output. - abistruct.py mp_pd FILE-or-elements => Generate phase diagram with entries from the Materials Project. + abistruct.py mp_ebands FILE => Fetch electron band structure from MP database. Print gaps. - Accept FILE with structure if ebands fro structure is wanted - or mp id e.g. "mp-149 or list of elements e.g `Li-Fe-O` or chemical formula. + Accept FILE with structure if ebands from structure is wanted + or mp id e.g. "mp-149 or list of elements e.g `Li-Fe-O` or chemical formula. `FILE` is any file supported by abipy/pymatgen e.g Netcdf files, Abinit input/output, POSCAR, xsf ... Use `abistruct.py --help` for help and `abistruct.py COMMAND --help` to get the documentation for `COMMAND`. @@ -143,7 +146,7 @@ def get_parser(with_epilog=False): # Parent parser for commands that need to know the filepath path_selector = argparse.ArgumentParser(add_help=False) path_selector.add_argument('filepath', nargs="?", - help="File with the crystalline structure (Abinit Netcdf files, CIF, Abinit input/output files, POSCAR ...)") + help="File with the crystalline structure(s) (ABINIT Netcdf files, CIF, ABINIT input/output files, POSCAR, ASE trajectory ...)") # Parent parser for commands supporting (jupyter notebooks) nb_parser = argparse.ArgumentParser(add_help=False) @@ -194,12 +197,14 @@ def add_primitive_options(parser): group = parser.add_mutually_exclusive_group() group.add_argument('--no-primitive', default=False, action='store_true', help="Do not enforce primitive cell.") group.add_argument('--primitive-standard', default=False, action='store_true', - help="Enforce primitive standard cell.") + help="Enforce primitive standard cell.") - supported_formats = "(abivars, cif, xsf, poscar, qe, siesta, wannier90, cssr, json, None)" + supported_formats = "(abivars, cif, xsf, poscar, qe, siesta, wannier90, cssr, json, lammps, fleur-inpgen, None)" def add_format_arg(parser, default, option=True, formats=None): - """Add --format option to a parser with default value `default`.""" + """ + Add --format option to a parser with default value `default`. + """ formats = supported_formats if formats is None else formats if option: parser.add_argument("-f", "--format", default=default, type=str, @@ -234,6 +239,17 @@ def add_format_arg(parser, default, option=True, formats=None): help="Convert structure to the specified format.") add_format_arg(p_convert, default="cif") + p_has_quad = subparsers.add_parser('has_quad', parents=[copts_parser, path_selector], + help="Detect whether structure has non-zero dynamical quadrupoles.") + + # Subparser for supercell command. + p_traj2xdatcar = subparsers.add_parser('traj2xdatcar', parents=[copts_parser, path_selector], + help="Generate XDATCAR file from ASE trajectory file.") + p_traj2xdatcar.add_argument("-o", "--output", type=str, default="XDATCAR", help="Name of output XDATCAR. Default: XDATCAR") + + p_traj2xdatcar.add_argument("-f", "--force", default=False, action="store_true", help="Allow output file overwring") + + # Subparser for print command. p_print = subparsers.add_parser('print', parents=[copts_parser, path_selector], help="Print Structure to terminal.") @@ -346,11 +362,22 @@ def add_format_arg(parser, default, option=True, formats=None): p_panel = subparsers.add_parser('panel', parents=[copts_parser, path_selector], help="Open GUI in web browser, requires panel package.") + p_panel.add_argument("-pnt", "--panel-template", default="FastList", type=str, + help="Specify template for panel dasboard." + + "Possible values are: FastList, FastGrid, Golden, Bootstrap, Material, React, Vanilla." + + "Default: FastList" + ) + p_panel.add_argument("--port", default=0, type=int, help="Allows specifying a specific port when serving panel app.") + p_panel.add_argument('--no-browser', action='store_true', default=False, + help=("Start the bokeh server to serve the panel app " + "but don't open the notebook in the browser.\n" + "Use this option to connect remotely from localhost to the machine running the kernel")) # Subparser for kpath. p_kpath = subparsers.add_parser('kpath', parents=[copts_parser, path_selector], help="Read structure from file, generate k-path for band-structure calculations.") add_format_arg(p_kpath, default="abinit", formats=["abinit", "wannier90", "siesta"]) + # Subparser for bz. p_bz = subparsers.add_parser('bz', parents=[copts_parser, path_selector], help="Read structure from file, plot Brillouin zone with matplotlib.") @@ -415,9 +442,6 @@ def add_format_arg(parser, default, option=True, formats=None): # Options for commands accessing the materials project database. mp_rest_parser = argparse.ArgumentParser(add_help=False) - mp_rest_parser.add_argument("--mapi-key", default=None, - help="Pymatgen PMG_MAPI_KEY. Use value in .pmgrc.yaml if not specified.") - mp_rest_parser.add_argument("--endpoint", help="Pymatgen database.", default="https://www.materialsproject.org/rest/v2") mp_rest_parser.add_argument("-b", "--browser", default=False, action='store_true', help="Open materials-project webpages in browser") @@ -441,17 +465,6 @@ def add_format_arg(parser, default, option=True, formats=None): help="Select structures with this space group number.") add_format_arg(p_mpsearch, default="abivars") - # Subparser for mp_pd command. - p_mp_pda = subparsers.add_parser('mp_pd', parents=[mp_rest_parser, copts_parser], - help=("Generate phase diagram with entries from the Materials Project. " - "Requires internet connection and PMG_MAPI_KEY")) - p_mp_pda.add_argument("file_or_elements", type=str, default=None, - help="FILE with structure or elements e.g., Li-Fe-O).") - p_mp_pda.add_argument("-u", "--show-unstable", type=int, default=0, - help="""Whether unstable phases will be plotted as -well as red crosses. If a number > 0 is entered, all phases with -ehull < show_unstable will be shown.""") - # Subparser for mp_ebands command. p_mp_ebands = subparsers.add_parser('mp_ebands', parents=[copts_parser, mp_rest_parser], help="Get structure from the pymatgen database. Export to format. Requires internet connection and PMG_MAPI_KEY.") @@ -480,9 +493,48 @@ def add_format_arg(parser, default, option=True, formats=None): p_animate = subparsers.add_parser('animate', parents=[copts_parser, path_selector], help="Read structures from HIST.nc or XDATCAR. Print structures in Xcrysden AXSF format to stdout.") + # Subparser for chemenv command. + p_chemenv = subparsers.add_parser('chemenv', parents=[copts_parser, path_selector], + help="Use ChemEnv to analyze chemical coordination environments. " + + "See D. Waroquiers, at al. Acta Cryst B 2020, 76, 683–695.") + p_chemenv.add_argument("-mdf", '--maximum-distance-factor', default=1.41, + type=float, help="Maximum distance factor. Default 1.41.") + p_chemenv.add_argument("-dc", '--distance-cutoff', default=1.4, type=float, + help="Distance cutoff in Ang. Default: 1.4") + p_chemenv.add_argument("-ac", '--angle-cutoff', default=0.3, type=float, + help="Angle cutoff. Default: 0.3") + p_chemenv.add_argument('-mw', '--multi-weights', default=False, action="store_true", + help='Use MultiWeightsChemenvStrategy instead of SimplestChemenvStrategy.') + p_chemenv.add_argument("-i", "--only-indices", nargs="+", default=None, type=int, + help="List of site indices to analyze e.g. `-i 0 2`. Default: None i.e. all sites.") + p_chemenv.add_argument("-s", "--only-atoms", nargs="+", default=None, type=str, + help="List of atomic symbols to analyze e.g. `-s Si O`. Default: None i.e. all sites.") return parser +def serve_kwargs_from_options(options) -> dict: + if options.no_browser: + print(""" +Use: + + ssh -N -f -L localhost:{port}:localhost:{port} username@your_remote_cluster + +for port forwarding. +""") + + import abipy.panels as mod + assets_path = os.path.join(os.path.dirname(mod.__file__), "assets") + + return dict( + debug=options.verbose > 0, + show=not options.no_browser, + port=options.port, + static_dirs={"/assets": assets_path}, + #address=address, + #websocket_origin="{address}:{port}", + ) + + @prof_main def main(): @@ -506,13 +558,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): if hasattr(options, "format"): options.format = options.format.strip() - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) + cli.set_loglevel(options.loglevel) if options.verbose > 2: print(options) @@ -556,6 +602,23 @@ def show_examples_and_exit(err_msg=None, error_code=1): if fmt == "cif" and options.filepath.endswith(".cif"): fmt = "abivars" print(abilab.Structure.from_file(options.filepath).convert(fmt=fmt)) + elif options.command == "has_quad": + structure = abilab.Structure.from_file(options.filepath) + print("has_dynamical_quadrupoles:", not structure.has_zero_dynamical_quadrupoles) + + elif options.command == "traj2xdatcar": + from ase.io import read + from ase.io.vasp import write_vasp_xdatcar + + print(f"Converting ASE trajectory into XDATCAR format. Ouput file: {options.output}") + # Load the trajectory file using ASE + trajectory = read(options.filepath, index=':') + if not options.force and os.path.exists(options.output): + raise RuntimeError(f"Cannot overwrite pre-existent file: {options.output}! Use -f to force overwriting.") + + # Write the trajectory to an XDATCAR file + write_vasp_xdatcar(options.output, trajectory) + elif options.command == "print": print(abilab.Structure.from_file(options.filepath).to_string(verbose=options.verbose)) @@ -570,6 +633,8 @@ def show_examples_and_exit(err_msg=None, error_code=1): supcell = structure * options.scaling_matrix #supcell = structure.make_supercell(scaling_matrix, to_unit_cell=True) + print("nsym 1") + print("chkprim 0") print(supcell.convert(fmt=options.format)) elif options.command == "abisanitize": @@ -583,9 +648,8 @@ def show_examples_and_exit(err_msg=None, error_code=1): primitive=not options.no_primitive, primitive_standard=options.primitive_standard) index = [options.filepath, "abisanitized"] dfs = abilab.dataframes_from_structures([structure, sanitized], index=index, with_spglib=True) - abilab.print_dataframe(dfs.lattice, title="Lattice parameters:") - abilab.print_dataframe(dfs.coords, title="Atomic positions (columns give the site index):") + abilab.print_dataframe(dfs.coords, title="Atomic positions in frac. coords. (columns give the site index):") if not options.verbose: print("\nUse -v for more info") @@ -609,6 +673,8 @@ def show_examples_and_exit(err_msg=None, error_code=1): elif options.command == "primitive": structure = abilab.Structure.from_file(options.filepath) primitive = structure.get_primitive_structure(tolerance=0.25, use_site_props=False, constrain_latt=None) + # Cast to abipy structure because get_primitive may break inheritance. + primitive = abilab.Structure.as_structure(primitive) separator = "\n" + 90 * "=" print("\nInitial structure:\n", structure, separator) print("\nPrimitive structure returned by pymatgen:\n", primitive, separator) @@ -662,7 +728,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): abilab.print_dataframe(dfs.lattice, title="Lattice parameters:") if options.verbose: - abilab.print_dataframe(dfs.coords, title="Atomic positions (columns give the site index):") + abilab.print_dataframe(dfs.coords, title="Atomic positions in frac. coords (columns give the site index):") if not options.verbose: print("\nUse -v for more info") @@ -761,14 +827,10 @@ def show_examples_and_exit(err_msg=None, error_code=1): elif options.command == "panel": structure = abilab.Structure.from_file(options.filepath) - try: - import panel # flake8: noqa - except ImportError as exc: - cprint("Use `conda install panel` or `pip install panel` to install the python package.", "red") - raise exc - - structure.get_panel().show() #threaded=True) - return 0 + pn = abilab.abipanel() + serve_kwargs = serve_kwargs_from_options(options) + app = structure.get_panel(template=options.panel_template) + return pn.serve(app, **serve_kwargs) elif options.command == "visualize": structure = abilab.Structure.from_file(options.filepath) @@ -842,7 +904,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): print(structure.spget_summary(verbose=options.verbose)) print("\n") - print(marquee("Little Group", mark="=")) + print(marquee("Little group", mark="=")) ltk = spgrp.find_little_group(kpoint=options.kpoint) print(ltk.to_string(verbose=options.verbose)) @@ -878,8 +940,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): elif options.command == "mp_id": # Get the Structure corresponding to material_id. - structure = abilab.Structure.from_mpid(options.mpid, final=True, - api_key=options.mapi_key, endpoint=options.endpoint) + structure = abilab.Structure.from_mpid(options.mpid) # Convert to format and print it. print(structure.convert(fmt=options.format)) @@ -916,30 +977,17 @@ def show_examples_and_exit(err_msg=None, error_code=1): if options.browser: mp.open_browser(limit=None if options.verbose == 2 else 10) - elif options.command == "mp_pd": - if os.path.exists(options.file_or_elements): - structure = abilab.Structure.from_file(options.file_or_elements) - elements = structure.symbol_set - else: - elements = options.file_or_elements.split("-") - - if options.verbose > 1: print("Building phase-diagram for elements:", elements) - with abilab.restapi.get_mprester(api_key=options.mapi_key, endpoint=options.endpoint) as rest: - pdr = rest.get_phasediagram_results(elements) - pdr.print_dataframes(verbose=options.verbose) - pdr.plot(show_unstable=options.show_unstable) - elif options.command == "mp_ebands": if os.path.exists(options.chemsys_formula_id): mp = abilab.mp_match_structure(options.chemsys_formula_id) for mpid in mp.ids: - ebands = abilab.ElectronBands.from_mpid(mpid, api_key=options.mapi_key, endpoint=options.endpoint) + ebands = abilab.ElectronBands.from_mpid(mpid) print(ebands) else: if options.chemsys_formula_id.startswith("mp-"): # Assume valid mp identifier. mpid = options.chemsys_formula_id - ebands = abilab.ElectronBands.from_mpid(mpid, api_key=options.mapi_key, endpoint=options.endpoint) + ebands = abilab.ElectronBands.from_mpid(mpid) print(ebands) else: mp = abilab.mp_search(options.chemsys_formula_id) @@ -951,7 +999,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): if structure is None: cprint("ignoring mpid %s because cannot find structure" % mpid, "red") continue - ebands = abilab.ElectronBands.from_mpid(mpid, api_key=options.mapi_key, endpoint=options.endpoint) + ebands = abilab.ElectronBands.from_mpid(mpid) if ebands is None: cprint("Cannot get ebands for structure:\n%s" % str(structure), "red") else: @@ -984,6 +1032,7 @@ def show_examples_and_exit(err_msg=None, error_code=1): structures = hist.structures elif "XDATCAR" in filepath: + from pymatgen.io.vasp.outputs import Xdatcar structures = Xdatcar(filepath).structures if not structures: raise RuntimeError("Your Xdatcar contains only one structure. Due to a bug " @@ -994,8 +1043,94 @@ def show_examples_and_exit(err_msg=None, error_code=1): xsf_write_structure(sys.stdout, structures) + elif options.command == "chemenv": + # Based on https://matgenb.materialsvirtuallab.org/2018/01/01/ChemEnv-How-to-automatically-identify-coordination-environments-in-a-structure.html + from pymatgen.analysis.chemenv.coordination_environments.chemenv_strategies import SimplestChemenvStrategy + from pymatgen.analysis.chemenv.coordination_environments.coordination_geometry_finder import LocalGeometryFinder + from pymatgen.analysis.chemenv.coordination_environments.structure_environments import LightStructureEnvironments + from pymatgen.analysis.chemenv.coordination_environments.chemenv_strategies import MultiWeightsChemenvStrategy + + import logging + logging.basicConfig( + format="%(levelname)s:%(module)s:%(funcName)s:%(message)s", level=logging.DEBUG + # you can also save the logging to a file, just remove the comment + # filename='chemenv_structure_environments.log', + ) + + structure = abilab.Structure.from_file(options.filepath) + # Setup the local geometry finder + lgf = LocalGeometryFinder() + lgf.setup_structure(structure=structure) + + # Get the StructureEnvironments + kws = dict(maximum_distance_factor=options.maximum_distance_factor, + only_indices=options.only_indices, + only_atoms=options.only_atoms, + #excluded_atoms=None, + #only_cations=True, + ) + print("Computing structure environments with:", kws) + se = lgf.compute_structure_environments(**kws) + + if options.multi_weights: + print("Using MultiWeightsChemenvStrategy with stats_article_weights_parameters") + strategy = MultiWeightsChemenvStrategy.stats_article_weights_parameters() + else: + kws = dict(distance_cutoff=options.distance_cutoff, angle_cutoff=options.angle_cutoff) + print("Using SimplestChemenvStrategy with:", kws) + strategy = SimplestChemenvStrategy(**kws) + + lse = LightStructureEnvironments.from_structure_environments( + strategy=strategy, structure_environments=se) + + lenv_keys = ["ce_symbol", "ce_fraction", "csm"] + site_keys = ["site_index", "species", "xred1", "xred2", "xred3"] + import pandas as pd + + if options.multi_weights: + # One dataframe per site as we can have multiple csm per site. + errored_isites = [] + for isite, site in enumerate(structure): + if options.only_indices is not None and isite not in options.only_indices: continue + d_list = lse.coordination_environments[isite] + if d_list is None: + errored_isites.append(isite) + continue + + for i, d in enumerate(d_list): + d = {k: d[k] for k in lenv_keys} + d.update(list(zip(site_keys, [isite, site.species, *site.frac_coords]))) + d_list[i] = d + + df = pd.DataFrame(d_list).set_index("site_index") + print("") + print(df.to_string()) + + else: + # One dataframe with all sites and one csm per site. + d_list, errored_isites = [], [] + for isite, site in enumerate(structure): + if options.only_indices is not None and isite not in options.only_indices: continue + dl = lse.coordination_environments[isite] + if dl is None: + errored_isites.append(isite) + continue + d = dl[0] + d = {k: d[k] for k in lenv_keys} + d.update(list(zip(site_keys, [isite, site.species, *site.frac_coords]))) + d_list.append(d) + + df = pd.DataFrame(d_list).set_index("site_index") + print("") + print(df.to_string()) + + if errored_isites: + print("\nNB: Couldn't detect local env for", len(errored_isites), "site indices: ", errored_isites) + + print("\nFor the meaning of ce_symbol, see https://pubs.acs.org/doi/10.1021/acs.chemmater.7b02766") + else: - raise ValueError("Unsupported command: %s" % options.command) + raise ValueError(f"Unsupported {options.command=}") return 0 diff --git a/abipy/scripts/abiview.py b/abipy/scripts/abiview.py index e79dfbe5e..7f1a7694d 100755 --- a/abipy/scripts/abiview.py +++ b/abipy/scripts/abiview.py @@ -3,15 +3,19 @@ This script visualizes results with external graphical applications. or convert data from Abinit files (usually netcdf) to other formats. """ +from __future__ import annotations + import sys import os import argparse +import abipy.tools.cli_parsers as cli +from pprint import pformat from monty.functools import prof_main from monty.termcolor import cprint from abipy import abilab from abipy.iotools.visualizer import Visualizer -from abipy.tools.plotting import MplExpose, GenericDataFilePlotter +from abipy.tools.plotting import MplExposer, PanelExposer, GenericDataFilePlotter, plotlyfigs_to_browser, push_to_chart_studio def handle_overwrite(path, options): @@ -24,7 +28,7 @@ def handle_overwrite(path, options): return path -def df_to_clipboard(options, df): +def df_to_clipboard(options, df) -> None: """Copy dataframe to clipboard if options.clipboard.""" if getattr(options, "clipboard", False): cprint("Copying dataframe to the system clipboard.", "green") @@ -32,6 +36,11 @@ def df_to_clipboard(options, df): df.to_clipboard() +class NegateAction(argparse.Action): + def __call__(self, parser, ns, values, option): + setattr(ns, self.dest, option[2:4] != 'no') + + def abiview_structure(options): """ Visualize the structure with the specified visualizer. Requires external app @@ -90,11 +99,11 @@ def abiview_data(options): # return 0 -def abiview_dirviz(options): +def abiview_dirviz(options) -> int: """ Visualize directory tree with graphviz. """ - from pymatgen.io.abinit.utils import Dirviz + from abipy.flowtk.utils import Dirviz import tempfile graph = Dirviz(options.filepath).get_cluster_graph(engine=options.engine) directory = tempfile.mkdtemp() @@ -104,7 +113,7 @@ def abiview_dirviz(options): return 0 -def abiview_ebands(options): +def abiview_ebands(options) -> int: """ Plot electronic bands if file contains high-symmetry k-path or DOS if k-sampling. Accept any file with ElectronBands e.g. GSR.nc, WFK.nc, ... @@ -116,19 +125,36 @@ def abiview_ebands(options): elif options.bxsf: outpath = options.filepath + ".bxsf" abifile.ebands.to_bxsf(handle_overwrite(outpath, options)) + #elif options.plotly: + # print(abifile.to_string(verbose=options.verbose)) else: print(abifile.to_string(verbose=options.verbose)) abifile.expose_ebands(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, - verbose=options.verbose) + expose_web=options.expose_web, verbose=options.verbose) return 0 -def abiview_skw(options): +def abiview_effmass(options) -> int: + """ + Compute electron effective masses with finite differences using energies along a k-path + Accept any file with ElectronBands e.g. GSR.nc, WFK.nc, ... + """ + from abipy.electrons.effmass_analyzer import EffMassAnalyzer + emana = EffMassAnalyzer.from_file(options.filepath) + print(emana) + emana.select_band_edges() + emana.summarize() + emana.plot_emass() + + return 0 + + +def abiview_skw(options) -> int: """ - Interpolate energies in k-space along a k-path with star-function methods - Note that the interpolation will likely fail if there are symmetrical k-points in the input set of k-points - so it's recommended to call this method with energies obtained in the IBZ. + Interpolate energies in k-space along a k-path with the star-function method. + Note that the interpolation will likely fail if there are symmetric k-points in the input set of k-points + so it is highly recommended to call this method with energies obtained in the IBZ. Accept any file with ElectronBands e.g. GSR.nc, WFK.nc, ... """ ebands = abilab.ElectronBands.as_ebands(options.filepath) @@ -139,9 +165,10 @@ def abiview_skw(options): return 0 -def abiview_fs(options): +def abiview_fs(options) -> int: """ - Extract eigenvalues in the IBZ from file and visualize Fermi surface with --appname + Extract eigenvalues in the IBZ from file and visualize Fermi surface with + the external application specified via --appname """ with abilab.abiopen(options.filepath) as abifile: eb3d = abifile.ebands.get_ebands3d() @@ -158,9 +185,32 @@ def abiview_fs(options): return 0 -def abiview_ddb(options): +def abiview_ifermi_fs(options) -> int: """ - Invoke Anaddb to compute phonon bands and DOS from the DDB, plot the results. + Use ifermi package to visualize the Fermi surface. Requires netcdf file with energies in the IBZ. + See + """ + with abilab.abiopen(options.filepath) as abifile: + kwargs = dict( + interpolation_factor=options.interpolation_factor, + mu=options.mu, + eref=options.eref, + wigner_seitz=options.wigner, + with_velocities=options.with_velocities, + ) + print(abifile.ebands, "\n") + print("Building Fermi surface with options:\n\n", pformat(kwargs, indent=4), end=2*"\n") + + r = abifile.ebands.get_ifermi_fs(**kwargs) + r.fs_plotter.get_plot(plot_type=options.plot_type).show() + #abifile.ebands.get_ifermi_slices(**kwargs) + + return 0 + + +def abiview_ddb(options) -> int: + """ + Invoke anaddb to compute phonon bands and DOS from the DDB, plot the results. """ with abilab.abiopen(options.filepath) as ddb: print(ddb.to_string(verbose=options.verbose)) @@ -169,48 +219,66 @@ def abiview_ddb(options): nqsmall = 0 if options.phononwebsite else 10 ndivsm = 20; asr = 2; chneut = 1; dipdip = 1; dos_method = "tetra"; lo_to_splitting = "automatic" print(""" -Computing phonon bands and DOS from DDB file with -nqsmall = {nqsmall}, ndivsm = {ndivsm}; -asr = {asr}, chneut = {chneut}, dipdip = {dipdip}, lo_to_splitting = {lo_to_splitting}, dos_method = {dos_method} +Computing phonon bands and DOS from DDB file with: +nqsmall: {nqsmall}, ndivsm: {ndivsm}, +asr: {asr}, chneut: {chneut}, dipdip: {dipdip}, lo_to_splitting: {lo_to_splitting}, dos_method: {dos_method} """.format(**locals())) print("Invoking anaddb ... ", end="") phbst_file, phdos_file = ddb.anaget_phbst_and_phdos_files( nqsmall=nqsmall, ndivsm=ndivsm, asr=asr, chneut=chneut, dipdip=dipdip, dos_method=dos_method, lo_to_splitting=lo_to_splitting, verbose=options.verbose, mpi_procs=1) - print("Calculation completed.\nResults available in", os.path.dirname(phbst_file.filepath)) + print("Calculation completed.\nResults available in:", os.path.dirname(phbst_file.filepath)) phbands = phbst_file.phbands + units = "mev" if options.xmgrace: outpath = options.filepath + ".agr" phbands.to_xmgrace(handle_overwrite(outpath, options)) return 0 + #elif options.bxsf: # outpath = options.filepath + ".bxsf" # phbands.to_bxsf(handle_overwrite(outpath, options)) # return 0 + elif options.phononwebsite: return phbands.view_phononwebsite(browser=options.browser, verbose=options.verbose) + + elif options.plotly: + # Plotly + Panel version. + phdos = phdos_file.phdos + with PanelExposer(title=f"Vibrational properties of {phdos_file.structure.formula}") as e: + e(phbands.qpoints.plotly(show=False)) + e(phbands.plotly_with_phdos(phdos, units=units, show=False)) + e(phdos_file.plotly_pjdos_type(units=units, show=False)) + e(phdos.plotly_harmonic_thermo(tstart=5, tstop=300, num=50, units="eV", formula_units=1, + quantities="all", show=False)) + e(phdos.plotly(units=units, show=False)) + e(phbands.plot_colored_matched(units=units, show=False)) + e(phbands.plot_fatbands(units=units, phdos_file=phdos_file, show=False)) + #push_to_chart_studio(figs) if options.chart_studio else plotlyfigs_to_browser(figs) + else: phdos = phdos_file.phdos - units = "mev" - with MplExpose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout) as e: - #e(phbst_file.expose()) - #e(phdos_file.expose()) + + if not options.expose_web: + # matplotlib figure and X-server. + e = MplExposer(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout) + else: + # panel version with matplotlib. + e = PanelExposer(title=f"Vibrational properties of {phdos_file.structure.formula}") + + with e: e(phbands.qpoints.plot(show=False)) e(phbands.plot_with_phdos(phdos, units=units, show=False)) + e(phdos_file.plot_pjdos_type(units=units, show=False)) e(phbands.plot_colored_matched(units=units, show=False)) - e(phbands.plot_fatbands(units=units, phdos_file=phdos_file, show=False)) + e(phdos.plot_harmonic_thermo(tstart=5, tstop=300, num=50, units="eV", formula_units=1, + quantities="all", show=False)) e(phdos.plot(units=units, show=False)) - e(phdos_file.plot_pjdos_type(units=units, show=False)) - #try - # msq_dos = phdos_file.msq_dos - #except RuntimeError: - # msq_dos = None - #if msq_dos is not None: - # e(msq_dos.plot_uiso(show=False)) - # e(msq_dos.plot_uiso(show=False)) + e(phbands.plot_fatbands(units=units, phdos_file=phdos_file, show=False)) phbst_file.close() phdos_file.close() @@ -218,37 +286,37 @@ def abiview_ddb(options): return 0 -def abiview_ddb_vs(options): +def abiview_ddb_vs(options) -> int: """ Compute speed of sound by fitting phonon frequencies along selected directions. """ num_points = 20; asr = 2; chneut = 1; dipdip = 1 print(""" Computing phonon frequencies for linear least-squares with: -num_points= {num_points}, asr = {asr}, chneut = {chneut}, dipdip = {dipdip} +num_points: {num_points}, asr: {asr}, chneut: {chneut}, dipdip: {dipdip} """.format(**locals())) print("Invoking anaddb ... ") sv = abilab.SoundVelocity.from_ddb(options.filepath, num_points=num_points, asr=asr, chneut=chneut, dipdip=dipdip, verbose=options.verbose) - #print("Calculation completed.\nResults available in", os.path.dirname(phbst_file.filepath)) + #print("Calculation completed.\nResults available in:", os.path.dirname(phbst_file.filepath)) df = sv.get_dataframe() abilab.print_dataframe(df, title="Speed of sound for different directions:") df_to_clipboard(options, df) - sv.plot() + sv.plotly if options.plotly else sv.plot() return 0 -def abiview_ddb_ir(options): +def abiview_ddb_ir(options) -> int: """ Compute infra-red spectrum from DDB. Plot results. """ asr = 2; chneut = 1; dipdip = 1 print(""" Computing phonon frequencies for infra-red spectrum with: -asr = {asr}, chneut = {chneut}, dipdip = {dipdip} +asr: {asr}, chneut: {chneut}, dipdip: {dipdip} """.format(**locals())) with abilab.abiopen(options.filepath) as ddb: @@ -257,26 +325,133 @@ def abiview_ddb_ir(options): gamma_ev = 1e-4 print("Plotting dielectric tensor with constant phonon damping: %s (eV)" % gamma_ev) - tgen.plot_all(gamma_ev=gamma_ev) + if options.plotly: + tgen.plotly_all(gamma_ev=gamma_ev) + else: + tgen.plot_all(gamma_ev=gamma_ev) + + return 0 + + +def abiview_ddb_asr(options) -> int: + """ + Compute phonon band structure from DDB with/without acoustic sum rule. Plot results. + """ + print("Computing phonon frequencies with/without ASR") + + with abilab.abiopen(options.filepath) as ddb: + plotter = ddb.anacompare_asr(asr_list=(0, 2), chneut_list=(1,), dipdip=1, lo_to_splitting="automatic", + nqsmall=10, ndivsm=20, dos_method="tetra", ngqpt=None, + verbose=0, mpi_procs=1) + + title = ddb.structure.formula + renderer = "browser" if not options.chart_studio else "chart_studio" + plotter.combiplotly(renderer=renderer, title=title) if options.plotly else plotter.plot(title=title) return 0 -def abiview_ddb_ifc(options): +def abiview_ddb_dipdip(options) -> int: + """ + Compute phonon band structure from DDB with/without dipole-dipole interaction. Plot results. + """ + print("Computing phonon frequencies with/without dipdip") + + with abilab.abiopen(options.filepath) as ddb: + plotter = ddb.anacompare_dipdip(chneut_list=(1,), asr=2, lo_to_splitting="automatic", + nqsmall=10, ndivsm=20, dos_method="tetra", ngqpt=None, + verbose=0, mpi_procs=1) + + title = ddb.structure.formula + renderer = "browser" if not options.chart_studio else "chart_studio" + plotter.combiplotly(renderer=renderer, title=title) if options.plotly else plotter.plot(title=title) + + return 0 + + +def abiview_ddb_quad(options) -> int: + """ + Compute phonon band structure from DDB with/without quadrupole terms. Plot results. + """ + print("Computing phonon frequencies with/without dip-quad and quad-quad terms.") + + with abilab.abiopen(options.filepath) as ddb: + plotter = ddb.anacompare_quad(asr=2, chneut=1, dipdip=1, lo_to_splitting="automatic", + nqsmall=0, ndivsm=20, dos_method="tetra", ngqpt=None, + verbose=0, mpi_procs=1) + + title = ddb.structure.formula + renderer = "browser" if not options.chart_studio else "chart_studio" + plotter.combiplotly(renderer=renderer, title=title) if options.plotly else plotter.plot(title=title) + + return 0 + + +def abiview_ddb_isodistort_ph(options) -> int: + """ + Compute ph-freqs for given q-point (default: Gamma), produce CIF files for unperturbed and distorded structure + that can be used with ISODISTORT (https://stokes.byu.edu/iso/isodistort.php) to analyze the symmetry of phonon modes. + See README.me file produced in output directory. + """ + with abilab.abiopen(options.filepath) as ddb: + print(ddb.to_string(verbose=options.verbose)) + qpoint = options.qpoint + asr = 2; chneut = 1; dipdip = 1; lo_to_splitting = False + print(""" +Computing phonon frequencies and eigenvectors with: +asr: {asr}, chneut: {chneut}, dipdip: {dipdip}, lo_to_splitting: {lo_to_splitting} +qpoint = {qpoint} +""".format(**locals())) + + print("Invoking anaddb ... ", end="") + phbands = ddb.anaget_phmodes_at_qpoint(qpoint=qpoint, asr=asr, chneut=chneut, dipdip=dipdip, + verbose=options.verbose, lo_to_splitting=False) + + phbands.make_isodistort_ph_dir(qpoint, select_modes=None, eta=1, workdir=None) + + return 0 + + +def abiview_ddb_qpt(options) -> int: + """ + Compute ph-frequencies at the selected q-point without passing through the + Fourier interpolation of the interatomic force constants. + """ + with abilab.abiopen(options.filepath) as ddb: + # Execute anaddb to compute phbands without Fourier interpolation. + phbands, inp = ddb.anaget_phmodes_at_qpoint(qpoint=options.qpoint, + asr=2, chneut=1, dipdip=1, ifcflag=0, return_input=True) + print(inp) + df = phbands.get_dataframe() + abilab.print_dataframe(df, title="Phonon frequencies:") + df_to_clipboard(options, df) + + return 0 + + +def abiview_ddb_ifc(options) -> int: """ Visualize interatomic force constants in real space. """ asr = 2; chneut = 1; dipdip = 1 print(""" Computing interatomic force constants with -asr = {asr}, chneut = {chneut}, dipdip = {dipdip} +asr: {asr}, chneut: {chneut}, dipdip: {dipdip} """.format(**locals())) with abilab.abiopen(options.filepath) as ddb: # Execute anaddb to compute the interatomic force constants. ifc = ddb.anaget_ifc(asr=asr, chneut=chneut, dipdip=dipdip) #print(ifc) - with MplExpose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout) as e: + + if not options.expose_web: + # matplotlib figure and X-server. + e = MplExposer(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout) + else: + # panel version + e = PanelExposer(title=f"Interatomic force constants of {ddb.structure.formula}") + + with e: e(ifc.plot_longitudinal_ifc(title="Longitudinal IFCs", show=False)) e(ifc.plot_longitudinal_ifc_short_range(title="Longitudinal IFCs short range", show=False)) e(ifc.plot_longitudinal_ifc_ewald(title="Longitudinal IFCs Ewald", show=False)) @@ -284,8 +459,10 @@ def abiview_ddb_ifc(options): return 0 -def abiview_phbands(options): - """Plot phonon bands. Accept any file with PhononBands e.g. PHBST.nc, ...""" +def abiview_phbands(options) -> int: + """ + Plot phonon bands. Accept any file with PhononBands e.g. PHBST.nc, ... + """ with abilab.abiopen(options.filepath) as abifile: if options.xmgrace: outpath = options.filepath + ".agr" @@ -299,14 +476,15 @@ def abiview_phbands(options): else: print(abifile.to_string(verbose=options.verbose)) abifile.expose_phbands(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, - verbose=options.verbose, units="mev") + verbose=options.verbose, units="mev") return 0 -def abiview_denpot(options): +def abiview_denpot(options) -> int: """ - Plot DEN/POT files + Visualize netcdf DEN/POT files with --appname (default: Vesta). + NB: Appplication must be installed and in $PATH. """ with abilab.abiopen(options.filepath) as abifile: print(abifile.to_string(verbose=options.verbose)) @@ -316,16 +494,20 @@ def abiview_denpot(options): cprint("Warning: expecting DENSITY file but received %s" % field.__class__.__name__, "yellow") chg_path = options.filepath + ".CHGCAR" field.to_chgcar(filename=handle_overwrite(chg_path, options)) - #elif options.cube: - # outpath = options.filepath + ".cube" - # field.export_to_cube(filename=handle_overwrite(outpath, options), spin="total") + + elif options.cube: + outpath = options.filepath + ".cube" + field.export_to_cube(filename=handle_overwrite(outpath, options), spin="total") + else: abifile.field.visualize(appname=options.appname) return 0 -def abiview_lobster(options): - """Analyze lobster output files in directory.""" +def abiview_lobster(options) -> int: + """ + Analyze lobster output files in directory. + """ from abipy.electrons.lobster import LobsterAnalyzer lobana = LobsterAnalyzer.from_dir(os.path.dirname(options.filepath), prefix=options.prefix) print(lobana.to_string(verbose=options.verbose)) @@ -346,7 +528,27 @@ def abiview_lobster(options): return 0 -def get_epilog(): +def abiview_xrd_traj(options) -> int: + """ + Compare XRD spectra using the first and the last structure read from a trajectory file. + """ + from abipy.core.structure import get_first_and_last_structure_from_file + structures = get_first_and_last_structure_from_file(options.filepath) + + dfs = abilab.dataframes_from_structures(structures, index=["first", "last"]) + abilab.print_dataframe(dfs.lattice, title="Lattice parameters:") + if options.verbose: + abilab.print_dataframe(dfs.coords, title="Atomic positions (columns give the site index):") + + from pymatgen.analysis.diffraction.xrd import XRDCalculator + xrd = XRDCalculator(wavelength=options.wavelength, symprec=options.symprec) + two_theta_range = tuple(float(t) for t in options.two_theta_range) + xrd.plot_structures(structures, two_theta_range=two_theta_range, fontsize=6, + annotate_peaks=not options.no_annotate_peaks, tight_layout=True) + return 0 + + +def get_epilog() -> str: return """\ Usage example: @@ -372,10 +574,12 @@ def get_epilog(): abiview.py ebands out_WFK.nc ==> Plot electrons bands (or DOS) with matplotlib. abiview.py ebands out_GSR.nc --xmgrace ==> Generate xmgrace file with electron bands. + abiview.py effmass out_GSR.nc abiview.py fs FILE_WITH_KMESH.nc ==> Visualize Fermi surface from netcdf file with electron energies - on a k-mesh. Use -a xsf to change application e.g. Xcrysden. - abiview.py skw out_GSR.nc ==> Interpolate IBZ energies with star-functions and plot - interpolated bands. + on a k-mesh. Use `-a xsf` to change application e.g. Xcrysden. + abiview.py skw out_GSR.nc ==> Interpolate IBZ energies with star-functions and plot interpolated bands. + abiview.py denpot out_DEN.nc ==> Visualize DEN/POT file with Vesta. Use `-a xcrysden` to change app. + abiview.py denpot out_DEN.nc --chgcar ==> Convert DEN file to CHGCAR fileformat. ######### # Phonons @@ -384,25 +588,31 @@ def get_epilog(): abiview.py ddb in_DDB ==> Compute ph-bands and DOS from DDB, plot results. abiview.py ddb_vs ==> Compute speed of sound from DDB by fitting phonon frequencies. abiview.py ddb_ir ==> Compute infra-red spectrum from DDB. Plot results. + abiview.py ddb_asr ==> Compute ph-bands from DDB with/wo acoustic rule. + Plot results with matplotlib (default) or plotly (--plotly) + abiview.py ddb_asr --plotly -cs ==> Compute ph-bands from DDB with/wo acoustic rule. + Plot results with plotly and push figure + to plotly chart studio cloud. See: https://chart-studio.plotly.com + abiview.py ddb_dipdip ==> Compute ph-bands from DDB with/wo dipole-dipole treatment. + Plot results with matplotlib (default) or plotly (--plotly) + abiview.py ddb_quad ==> Compute ph-bands from DDB with/wo dipole-quadrupole terms. + Plot results with matplotlib (default) or plotly (--plotly) + abiview.py ddb_qpt -q 0 0.5 0 ==> Compute ph-frequencies at the selected q-point without passing + through the Fourier interpolation of the interatomic force constants. abiview.py ddb_ifc ==> Visualize interatomic force constants in real space. - abiview.py phbands out_PHBST.nc -web ==> Visualize phonon bands and displacements with phononwebsite. + abiview.py phbands out_PHBST.nc -web ==> Visualize ph-bands and displacements with phononwebsite. ############### # Miscelleanous ############### abiview.py dirviz DIRECTORY ==> Visualize directory tree with graphviz. - abiview.py lobster DIRECTORY ==> Visualize Lobster results. Use `abiview.py --help` for help and `abiview.py COMMAND --help` to get the documentation for `COMMAND`. Use `-v` to increase verbosity level (can be supplied multiple times e.g -vv). """ -# TODO -#abiview.py denpot out_DEN.nc ==> Visualize density with Vesta. -#abiview.py denpot out_DEN.nc --chgcar ==> Convert DEN file into CHGCAR fileformat. - def get_parser(with_epilog=False): @@ -421,12 +631,14 @@ def get_parser(with_epilog=False): "Possible values: GTKAgg, GTK3Agg, GTK, GTKCairo, GTK3Cairo, WXAgg, WX, TkAgg, Qt4Agg, Qt5Agg, macosx." "See also: https://matplotlib.org/faq/usage_faq.html#what-is-a-backend.")) - # Parent parser for commands supporting MplExpose. + # Parent parser for commands supporting MplExposer. slide_parser = argparse.ArgumentParser(add_help=False) slide_parser.add_argument("-s", "--slide-mode", default=False, action="store_true", help="Iterate over figures. Expose all figures at once if not given on the CLI.") slide_parser.add_argument("-t", "--slide-timeout", type=int, default=None, help="Close figure after slide-timeout seconds (only if slide-mode). Block if not specified.") + slide_parser.add_argument("-ew", "--expose-web", default=False, action="store_true", + help='Generate matplotlib plots in $BROWSER instead of X-server. WARNING: Not all the features are supported.') # Parent parser for commands that operating on pandas dataframes pandas_parser = argparse.ArgumentParser(add_help=False) @@ -443,14 +655,13 @@ def get_parser(with_epilog=False): nb_parser.add_argument('--foreground', action='store_true', default=False, help="Run jupyter notebook in the foreground.") - # Parent parser for commands supporting expose. - #expose_parser = argparse.ArgumentParser(add_help=False) - #expose_parser.add_argument("-e", '--expose', default=False, action="store_true", - # help='Execute robot.expose to produce a pre-defined list of matplotlib figures.') - #expose_parser.add_argument("-s", "--slide-mode", default=False, action="store_true", - # help="Used if --expose to iterate over figures. Expose all figures at once if not given on the CLI.") - #expose_parser.add_argument("-t", "--slide-timeout", type=int, default=None, - # help="Close figure after slide-timeout seconds (only if slide-mode). Block if not specified.") + # Parent parser for commands supporting plotly plots + plotly_parser = argparse.ArgumentParser(add_help=False) + plotly_parser.add_argument("-ply", '--plotly', default=False, action="store_true", + help='Generate plotly plots in browser instead of matplotlib.') + plotly_parser.add_argument("-cs", "--chart-studio", default=False, action="store_true", + help="Push figure to plotly chart studio. " + + "Requires --plotly and user account at https://chart-studio.plotly.com.") # Build the main parser. parser = argparse.ArgumentParser(epilog=get_epilog() if with_epilog else "", @@ -513,13 +724,17 @@ def add_args(p, *args): p_dirviz.add_argument("-e", "--engine", type=str, default="fdp", help=("graphviz engine: ['dot', 'neato', 'twopi', 'circo', 'fdp', 'sfdp', 'patchwork', 'osage']. " "See http://www.graphviz.org/pdf/dot.1.pdf " - "Use `conda install python-graphviz` or `pip install graphviz` to install the python package")) + "Use `conda install python-graphviz` or `pip install graphviz` to install the python package.")) # Subparser for ebands command. p_ebands = subparsers.add_parser('ebands', parents=[copts_parser, slide_parser], help=abiview_ebands.__doc__) add_args(p_ebands, "xmgrace", "bxsf", "force") - # Subparser for ebands command. + # Subparser for effmass command. + p_effmass = subparsers.add_parser('effmass', parents=[copts_parser, slide_parser], help=abiview_effmass.__doc__) + #add_args(p_ebands, "xmgrace", "bxsf", "force") + + # Subparser for skw command. p_skw = subparsers.add_parser('skw', parents=[copts_parser], help=abiview_skw.__doc__) p_skw.add_argument("-lp", "--lpratio", type=int, default=5, help=("Ratio between the number of star functions and the number of ab-initio k-points. " @@ -532,8 +747,28 @@ def add_args(p, *args): p_fs.add_argument("-a", "--appname", type=str, default="mpl", help="Application name. Possible options: mpl (matplotlib, default), xsf (xcrysden), mayavi.") + # Parent parser for ifermi commands + ifermi_parser = argparse.ArgumentParser(add_help=False) + ifermi_parser.add_argument("-i", '--interpolation-factor', default=8, type=float, + help="interpolation factor for band structure [default: 8.0]") + ifermi_parser.add_argument("--eref", default="fermie", type=str, choices=['fermie', 'cbm', 'vbm'], + help="Energy reference for isosurface. `eref` and `mu` define the energy level: isoe = eref + mu" + + "Use `fermie` for metals, `cbm` for the conduction band minimum, and `vbm` for the valence band maximum, " + + "[default: `fermie`]") + ifermi_parser.add_argument("-t", '--plot-type', default="plotly", choices=["plotly", "matplotlib", "mayavi"], + help="Plot type. Possible options: plotly (default), matplotlib, mayavi.") + ifermi_parser.add_argument('--wigner', '--no-wigner', dest='wigner', default=True, action=NegateAction, nargs=0, + help="Use the Wigner-Seitz cell or the reciprocal lattice parallelepiped. Default is: wigner") + ifermi_parser.add_argument("-vel", '--with-velocities', default=False, action="store_true", + help="Show color map with interpolated group velocities. Default is False.") + + # Subparser for ifermi_fs command. + p_ifermi_fs = subparsers.add_parser('ifermi_fs', parents=[ifermi_parser, copts_parser], help=abiview_ifermi_fs.__doc__) + p_ifermi_fs.add_argument("-m", '--mu', default=0.0, type=float, + help="Offset in eV from the energy reference, eref, at which to calculate the isosurface. Default 0 i.e. use `eref`") + # Subparser for ddb command. - p_ddb = subparsers.add_parser('ddb', parents=[copts_parser, slide_parser], help=abiview_ddb.__doc__) + p_ddb = subparsers.add_parser('ddb', parents=[copts_parser, slide_parser, plotly_parser], help=abiview_ddb.__doc__) add_args(p_ddb, "xmgrace", "phononweb", "browser", "force") # Subparser for ddb_vs command. @@ -544,9 +779,34 @@ def add_args(p, *args): p_ddb_ir = subparsers.add_parser('ddb_ir', parents=[copts_parser, pandas_parser, slide_parser], help=abiview_ddb_ir.__doc__) + # Subparser for ddb_asr command. + p_ddb_asr = subparsers.add_parser('ddb_asr', parents=[copts_parser, pandas_parser, slide_parser, plotly_parser], + help=abiview_ddb_asr.__doc__) + + # Subparser for ddb_dipdip command. + p_ddb_dipdip = subparsers.add_parser('ddb_dipdip', parents=[copts_parser, pandas_parser, slide_parser, plotly_parser], + help=abiview_ddb_dipdip.__doc__) + + # Subparser for ddb_quad command. + p_ddb_quad = subparsers.add_parser('ddb_quad', parents=[copts_parser, pandas_parser, slide_parser, plotly_parser], + help=abiview_ddb_quad.__doc__) + + # Subparser for ddb_ph_isodistort command. + p_ddb_isodistort_ph = subparsers.add_parser('ddb_isodistort_ph', parents=[copts_parser], + help=abiview_ddb_isodistort_ph.__doc__) + p_ddb_isodistort_ph.add_argument("-q", "--qpoint", nargs=3, type=float, + help="q-point in reduced coordinates e.g. 0.25 0 0. Default: 0, 0, 0", default=[0, 0, 0]) + # Subparser for ddb_ifc command. p_ddb_ifc = subparsers.add_parser('ddb_ifc', parents=[copts_parser, pandas_parser, slide_parser], - help=abiview_ddb_ifc.__doc__) + help=abiview_ddb_ifc.__doc__) + + # Subparser for ddb_qpt command. + p_ddb_qpt = subparsers.add_parser('ddb_qpt', parents=[copts_parser, pandas_parser, slide_parser], + help=abiview_ddb_qpt.__doc__) + + p_ddb_qpt.add_argument("-q", "--qpoint", nargs=3, type=float, + help="q-point in reduced coordinates e.g. `-q 0.25 0 0`. Default: 0, 0, 0", default=[0, 0, 0]) # Subparser for phbands command. p_phbands = subparsers.add_parser('phbands', parents=[copts_parser, slide_parser], help=abiview_phbands.__doc__) @@ -557,13 +817,28 @@ def add_args(p, *args): help=abiview_lobster.__doc__) p_lobster.add_argument("--prefix", type=str, default="", help="Prefix for lobster output files. Default: ''") + # Subparser for xrd. + p_xrd = subparsers.add_parser('xrd_traj', parents=[copts_parser], + help="Compare X-ray diffraction for the first and the last structure in a trajectory file.") + p_xrd.add_argument("-w", "--wavelength", default="CuKa", type=str, help=( + "The wavelength can be specified as a string. It must be one of the " + "supported definitions in the WAVELENGTHS dict declared in pymatgen/analysis/diffraction/xrd.py." + "Defaults to 'CuKa', i.e, Cu K_alpha radiation.")) + p_xrd.add_argument("-s", "--symprec", default=0, type=float, help=( + "Symmetry precision for structure refinement. " + "If set to 0, no refinement is done. Otherwise, refinement is performed using spglib with provided precision.")) + p_xrd.add_argument("-t", "--two-theta-range", default=(0, 90), nargs=2, help=( + "Tuple for range of two_thetas to calculate in degrees. Defaults to (0, 90).")) + p_xrd.add_argument("-nap", "--no-annotate-peaks", default=False, action="store_true", + help="Whether to annotate the peaks with plane information.") + # Subparser for denpot command. - #p_denpot = subparsers.add_parser('denpot', parents=[copts_parser], help=abiview_denpot.__doc__) - #p_denpot.add_argument("-a", "--appname", nargs="?", default=None, const="vesta", - # help=("Application name. Default: vesta. " - # "Possible options: `%s`, `mayavi`, `vtk`" % ", ".join(Visualizer.all_visunames()))) - #p_denpot.add_argument("--chgcar", default=False, action="store_true", "Convert Density to CHGCAR format.") - #p_denpot.add_argument("--cube", default=False, action="store_true", "Convert Density/Potential to CUBE format.") + p_denpot = subparsers.add_parser('denpot', parents=[copts_parser], help=abiview_denpot.__doc__) + p_denpot.add_argument("-a", "--appname", type=str, default="vesta", + help=("Application name. Default: vesta. " + + "Possible options: `%s`, `mayavi`, `vtk`" % ", ".join(Visualizer.all_visunames()))) + p_denpot.add_argument("--chgcar", default=False, action="store_true", help="Convert Density to CHGCAR format.") + p_denpot.add_argument("--cube", default=False, action="store_true", help="Convert Density/Potential to CUBE format.") return parser @@ -589,16 +864,10 @@ def show_examples_and_exit(err_msg=None, error_code=1): if not options.command: show_examples_and_exit(error_code=1) - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) + cli.set_loglevel(options.loglevel) - if options.verbose > 2: - print(options) + if getattr(options, "plotly", False): options.expose = True + if options.verbose > 2: print(options) if options.mpl_backend is not None: # Set matplotlib backend diff --git a/abipy/scripts/oncv.py b/abipy/scripts/oncv.py new file mode 100755 index 000000000..b5c6ffa5c --- /dev/null +++ b/abipy/scripts/oncv.py @@ -0,0 +1,461 @@ +#!/usr/bin/env python +""" +Script to generate/analyze/plot ONCVPSP pseudopotentials. +""" +from __future__ import annotations + +import sys +import os +import argparse +import shutil +import abipy.tools.cli_parsers as cli + +from pprint import pformat +from monty.termcolor import cprint +from abipy.flowtk.pseudos import Pseudo +from abipy.ppcodes.ppgen import OncvGenerator +from abipy.ppcodes.oncv_parser import OncvParser +from abipy.ppcodes.oncv_plotter import OncvPlotter, oncv_make_open_notebook, MultiOncvPlotter + + +def _find_oncv_output(path: str) -> str: + """ + Fix possible error in the specification of filepath when we want a `.out` file. + Return output path. + """ + if path.endswith(".out"): return path + root, _ = os.path.splitext(path) + new_path = root + ".out" + if not os.path.exists(new_path): + raise ValueError("Cannot find neither %s nor %s" % (path, new_path)) + cprint("Maybe you meant %s" % new_path, color="yellow") + return new_path + + +def oncv_notebook(options): + """ + Generate jupyter notebook to plot data. Requires oncvpsp output file. + """ + out_path = _find_oncv_output(options.filepath) + return oncv_make_open_notebook(out_path, foreground=options.foreground, + classic_notebook=options.classic_notebook, + no_browser=options.no_browser) + + +def oncv_gnuplot(options): + """ + Plot data with gnuplot. + """ + out_path = _find_oncv_output(options.filepath) + + # Parse output file. + onc_parser = OncvParser(out_path).scan() + if not onc_parser.run_completed: + cprint("oncvpsp output is not completed. Exiting", color="red") + return 1 + + onc_parser.gnuplot() + return 0 + + +def oncv_print(options) -> int: + """ + Parse oncvps output file and print results to terminal. + """ + out_path = _find_oncv_output(options.filepath) + p = OncvParser(out_path).scan() + if not p.run_completed: + raise RuntimeError("ocnvpsp output file is not completed") + + print(p.to_string(verbose=options.verbose)) + return 0 + + +def oncv_plot(options) -> int: + """ + Plot data with matplotlib. Requires oncvpsp output file. + """ + cli.customize_mpl(options) + + out_path = _find_oncv_output(options.filepath) + plotter = OncvPlotter.from_file(out_path) + + #plotter.plotly_atan_logders().show() + #return 0 + + plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + use_web=options.expose_web, verbose=options.verbose) + return 0 + + +def oncv_plot_pseudo(options) -> int: + """ + Plot data with matplotlib. Requires pseudopotential file (UPF2 or pawxml). + """ + cli.customize_mpl(options) + + pseudo = Pseudo.from_file(options.filepath) + print(pseudo) + + exposer = "panel" if options.expose_web else "mpl" + from abipy.tools.plotting import Exposer + with Exposer.as_exposer(exposer) as e: + e.add_obj_with_yield_figs(pseudo) + + return 0 + + +def oncv_compare(options) -> int: + """ + Compare multiple oncvpsp output files. + """ + cli.customize_mpl(options) + + out_paths = [_find_oncv_output(p) for p in options.filepaths] + plotter = MultiOncvPlotter.from_files(out_paths) + + # Plot data + plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + use_web=options.expose_web, verbose=options.verbose) + + return 0 + + +#@flowtk.flow_main +#def main(options): +# return build_flow(options) + +#def oncv_hints(options): +# """ +# """ +# from abipy import flowtk +# from abipy.flowtk.pseudo_works import GsEcutConvWork +# flow = flowtk.Flow(workdir=options.workdir) +# +# ecut_list = [35, 40, 45, 50, 55, 60, 65] +# #ecut_list = [35, 40, 45] +# work = GsEcutConvWork.from_pseudo(pseudo, ecut_list) +# flow.register_work(work) +# return flow + + +def oncv_run(options): + """ + Run oncvpsp, generate djrepo file, plot results. Requires oncvps input file. + """ + # Build names of psp8 and djson files from input and relativistic mode. + in_path = options.filepath + root, _ = os.path.splitext(in_path) + + # Enforce convention on output files. + calc_type = None + if options.rel == "nor": + if not root.endswith("_nor"): root += "_nor" + + elif options.rel == "fr": + if not root.endswith("_r"): + root += "_r" + cprint("FR calculation with input file without `_r` suffix. Will add `_r` to output files", color="yellow") + + elif options.rel == "from_file": + calc_type = "scalar-relativistic" + if root.endswith("_r"): calc_type = "fully-relativistic" + if root.endswith("_nor"): calc_type = "non-relativistic" + + # Build names of output files. + psp8_path = root + ".psp8" + djrepo_path = root + ".djrepo" + out_path = root + ".out" + + if os.path.exists(psp8_path): + cprint("%s already exists and will be overwritten" % os.path.relpath(psp8_path), color="yellow") + if os.path.exists(djrepo_path): + cprint("%s already exists and will be overwritten" % os.path.relpath(djrepo_path), color="yellow") + if os.path.exists(out_path): + cprint("%s already exists and will be overwritten" % os.path.relpath(out_path), color="yellow") + + # Select calc_type + if calc_type is None: + calc_type = dict(nor="non-relativistic", + sr="scalar-relativistic", + fr="fully-relativistic")[options.rel] + + # Build Generator and start generation. + psgen = OncvGenerator.from_file(in_path, calc_type, options.use_mgga, workdir=None) + + print(psgen.input_str) + print("Using executable:\n\t", psgen.executable) + print(f"Output files produced in directory:\n\t{psgen.workdir}") + + if retcode := psgen.start_and_wait() != 0: + cprint("oncvpsp returned %s. Exiting" % retcode, color="red") + return retcode + + if psgen.status != psgen.S_OK: + cprint(f"psgen.status = {psgen.status} != psgen.S_OK", color="red") + + if psgen.parser.warnings: + print(2 * "\n") + print("List of WARNINGS:") + for w in psgen.parser.warnings: + print(w) + + if psgen.parser.errors: + print(2 * "\n") + print("List of ERRORS:") + for e in psgen.parser.errors: + print(e) + + # Transfer final output file. + shutil.copy(psgen.stdout_path, out_path) + + # Parse the output file. + onc_parser = OncvParser(out_path).scan() + if not onc_parser.run_completed: + cprint("oncvpsp output is not completed. Exiting", color="red") + return 1 + + # Extract psp8 files from the oncvpsp output and write it to file. + with open(psp8_path, "wt") as fh: + fh.write(onc_parser.get_psp8_str()) + + # Write UPF2 file if available. + upf_str = onc_parser.get_upf_str() + if upf_str is not None: + with open(psp8_path.replace(".psp8", ".upf"), "wt") as fh: + fh.write(upf_str) + else: + cprint("UPF2 file has not been produced. Use `both` in input file!", color="red") + + pseudo = Pseudo.from_file(psp8_path) + if pseudo is None: + cprint("Cannot parse psp8 file: %s" % psp8_path, color="red") + return 1 + + # Initialize and write djson file. + # FIXME: This part can be removed when we migrate to the new lightweight testing + # infrastructure with small json files. + from pseudo_dojo.core.dojoreport import DojoReport + report = DojoReport.empty_from_pseudo(pseudo, onc_parser.hints, devel=False) + report.json_write() + + cli.customize_mpl(options) + + # Build the plotter + plotter = onc_parser.get_plotter() + plotter.expose(slide_mode=options.slide_mode, slide_timeout=options.slide_timeout, + use_web=options.expose_web, verbose=options.verbose) + return 0 + + +def oncv_ghost(options) -> int: + """ + Scan directories for oncvpsp output files and build dataframe with ghost position + """ + #cli.customize_mpl(options) + + # Walk through the directory tree and find all .out files. + root_dir = options.filepath + out_paths = [] + for dirpath, _, filenames in os.walk(root_dir): + for filename in filenames: + if filename.endswith(".out"): + out_paths.append(os.path.join(dirpath, filename)) + #print(out_paths) + + # Parse the output file. + ierr = 0 + rows = [] + for out_path in out_paths: + onc_parser = OncvParser(out_path).scan() + if not onc_parser.run_completed: + cprint("oncvpsp output is not completed. Exiting", color="red") + ierr += 1 + continue + + hints = onc_parser.hints + rows.append(dict( + out_path=out_path, + z=onc_parser.z, + num_warnings=len(onc_parser.warnings), + num_errors=len(onc_parser.errors), + min_ghost_empty_ha=onc_parser.min_ghost_empty_ha, + #min_ghost_occ_ha=oncv_parser.min_ghost_occ_ha, + #ppgen_hint_low=hints["low"]["ecut"], + #ppgen_hint_normal=hints["normal"]["ecut"], + ppgen_hint_high=hints["high"]["ecut"], + )) + + import pandas as pd + df = pd.DataFrame(rows) + df = df.sort_values(by='z') + from abipy.tools.printing import print_dataframe + print_dataframe(df) + + return ierr + + +def oncv_gui(options): + """ + Start a panel web app to generate pseudopotentials. + """ + import panel as pn + from abipy.panels.oncvpsp_gui import OncvGui + from abipy.panels.core import abipanel, get_abinit_template_cls_kwds, AbipyParameterized + + # Load abipy/panel extensions and set the default template + abipanel(panel_template=options.panel_template) + + if options.has_remote_server: + print("Enforcing limitations on what the user can do on the abinit server") + AbipyParameterized.has_remote_server = options.has_remote_server + + tmpl_cls, tmpl_kwds = get_abinit_template_cls_kwds() + + if options.verbose: + print("Using default template:", tmpl_cls, "with kwds:\n", pformat(tmpl_kwds), "\n") + + def build(): + gui = OncvGui.from_file(os.path.abspath(options.filepath), plotlyFlag=options.plotly) + return tmpl_cls(main=gui.get_panel(), title="Oncvpsp GUI", **tmpl_kwds) + + # Call pn.serve to serve the multipage app. + serve_kwargs = cli.get_pn_serve_kwargs(options) + + return pn.serve(build, **serve_kwargs) + + +def get_epilog() -> str: + return """\ +Usage example: + + oncv.py run H.in ==> Run oncvpsp input file (scalar relativistic mode). + oncv.py run H_r.in ==> Run oncvpsp input file (relativistic mode). + oncv.py plot H.out ==> Use matplotlib to plot oncvpsp results for pseudo H.psp8. + oncv.py plot H.out -ew ==> Show matplotlib figures in browser. + oncv.py gui H.in ==> Start a panel web app to generate pseudopotential. + oncv.py print H.out ==> Parse oncvps output and print results to terminal. + oncv.py compare H.out other_H.out ==> Compare multiple output files (supports -ew option as well) + oncv.py gnuplot H.out ==> Use gnuplot to plot oncvpsp results for pseudo H.psp8. + oncv.py notebook H.out ==> Generate jupyter notebook to plot oncvpsp results. +""" + + +def get_parser(with_epilog=False): + + def get_copts_parser(multi=False): + # Parent parser implementing common options. + p = argparse.ArgumentParser(add_help=False) + p.add_argument('-v', '--verbose', default=0, action='count', # -vv --> verbose=2 + help='Verbose, can be supplied multiple times to increase verbosity') + + p.add_argument('--loglevel', default="ERROR", type=str, + help="set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") + + if multi: + p.add_argument('filepaths', nargs="+", help="List of files to compare.") + else: + p.add_argument('filepath', default="", help="Path to the input/output file") + + return p + + copts_parser = get_copts_parser(multi=False) + copts_parser_multi = get_copts_parser(multi=True) + + # Parent parser for commands supporting MplExposer. + plot_parser = argparse.ArgumentParser(add_help=False) + cli.add_expose_options_to_parser(plot_parser) + + # Build the main parser. + parser = argparse.ArgumentParser(epilog=get_epilog(), formatter_class=argparse.RawDescriptionHelpFormatter) + from abipy.core.release import __version__ + parser.add_argument('-V', '--version', action='version', version=__version__) + + # Create the parsers for the sub-commands + subparsers = parser.add_subparsers(dest='command', help='sub-command help', description="Valid subcommands") + + # Subparser for run command. + p_run = subparsers.add_parser('run', parents=[copts_parser, plot_parser], help=oncv_run.__doc__) + p_run.add_argument("--rel", default="from_file", help=("Relativistic treatment: `nor` for non-relativistic, " + "`sr` for scalar-relativistic, `fr` for fully-relativistic. Default: `from_file` i.e. detected from file")) + p_run.add_argument("--use-mgga", action='store_true', default=False, help="Produce mega-gga pseudo with oncvpspm.x") + + # Subparser for print command. + p_print = subparsers.add_parser('print', parents=[copts_parser], help=oncv_print.__doc__) + + # Subparser for plot command. + p_plot = subparsers.add_parser('plot', parents=[copts_parser, plot_parser], help=oncv_plot.__doc__) + + # Subparser for plot command. + p_plot_pseudo = subparsers.add_parser('plot_pseudo', parents=[copts_parser, plot_parser], + help=oncv_plot_pseudo.__doc__) + + # Subparser for compare command. + p_compare = subparsers.add_parser("compare", parents=[copts_parser_multi, plot_parser], + help=oncv_compare.__doc__) + + # Subparser for ghost command. + p_ghost = subparsers.add_parser("ghost", parents=[copts_parser], + help=oncv_ghost.__doc__) + + # notebook options. + p_nb = subparsers.add_parser('notebook', parents=[copts_parser], help=oncv_notebook.__doc__) + p_nb.add_argument('-nb', '--notebook', action='store_true', default=False, help="Open file in jupyter notebook") + p_nb.add_argument('--classic-notebook', "-cnb", action='store_true', default=False, + help="Use classic jupyter notebook instead of jupyterlab.") + p_nb.add_argument('--no-browser', action='store_true', default=False, + help=("Start the jupyter server to serve the notebook " + "but don't open the notebook in the browser.\n" + "Use this option to connect remotely from localhost to the machine running the kernel")) + p_nb.add_argument('--foreground', action='store_true', default=False, + help="Run jupyter notebook in the foreground.") + + parents = [copts_parser, cli.pn_serve_parser(), plot_parser] + + # Subparser for gui command. + p_gui = subparsers.add_parser('gui', parents=parents, help=oncv_gui.__doc__) + + # Subparser for gnuplot command. + p_gnuplot = subparsers.add_parser('gnuplot', parents=[copts_parser], help=oncv_gnuplot.__doc__) + + # Subparser for hints command. + #p_hints = subparsers.add_parser('hints', parents=[copts_parser], help=oncv_hints.__doc__) + #p_hints.add_argument("pseudo_paths", nargs="+", type=str, help="Pseudopotential path.") + #p_hints.add_argument("--ecut", type=float, required=True, help="Cutoff energy in Ha.") + #p_hints.add_argument("-rc", "--vloc-rcut-list", nargs="+", default=None, type=float, + # help="List of cutoff radii for vloc in Bohr.") + #cli.add_expose_options_to_parser(p_hints) + + return parser + + +def main(): + + def show_examples_and_exit(err_msg=None, error_code=1): + """Display the usage of the script.""" + sys.stderr.write(get_epilog()) + if err_msg: sys.stderr.write("Fatal Error\n" + err_msg + "\n") + sys.exit(error_code) + + parser = get_parser(with_epilog=True) + + # Parse command line. + try: + options = parser.parse_args() + except Exception as exc: + show_examples_and_exit(error_code=1) + + cli.set_loglevel(options.loglevel) + + # Use seaborn settings. + if getattr(options, "seaborn", None): + import seaborn as sns + sns.set(context=options.seaborn, style='darkgrid', palette='deep', + font='sans-serif', font_scale=1, color_codes=False, rc=None) + + # Dispatch + return globals()["oncv_" + options.command](options) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/abipy/scripts/tests/test_abilab.py b/abipy/scripts/tests/test_abilab.py index a1abab1d6..614e3fc9e 100644 --- a/abipy/scripts/tests/test_abilab.py +++ b/abipy/scripts/tests/test_abilab.py @@ -28,7 +28,9 @@ def test_abilab(self): abilab.print_dataframe(df, title="foo") d = abilab.software_stack() - assert d + assert d and "pymatgen" in d + df = abilab.software_stack(as_dataframe=True) + assert df is not None filepath = self.get_tmpname(text=True, suffix=".json") data = {"foo": "bar"} @@ -53,3 +55,10 @@ def test_abilab(self): assert not abilab.in_notebook() assert abilab.install_config_files(workdir=self.mkdtemp()) == 0 + + def extscls_supporint_panel(self): + table = abilab.extcls_supporting_panel(as_table=True) + exscls = abilab.extcls_supporting_panel(as_table=False) + exts = [item[0] for item in extcls] + assert "DDB" in exts + assert ".cube" not in exts diff --git a/abipy/scripts/tests/test_scripts.py b/abipy/scripts/tests/test_scripts.py index 3abdc6e09..6fc633492 100644 --- a/abipy/scripts/tests/test_scripts.py +++ b/abipy/scripts/tests/test_scripts.py @@ -2,6 +2,7 @@ """Test AbiPy command line scripts.""" import sys import os +import pytest import abipy.data as abidata import abipy.flowtk as flowtk @@ -17,18 +18,18 @@ test_files_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "test_files")) -def test_if_all_scripts_are_tested(): - """Testing if all scripts are tested""" - tested_scripts = set(os.path.basename(c.script) for c in all_subclasses(ScriptTest)) - all_scripts = set(f for f in os.listdir(script_dir) if f.endswith(".py") and not f.startswith("_")) - not_tested = all_scripts.difference(tested_scripts) - - if not_tested: - print("The following scripts are not tested") - for i, s in enumerate(not_tested): - print("[%d] %s" % (i, s)) - - assert len(not_tested) == 0 +#def test_if_all_scripts_are_tested(): +# """Testing if all scripts are tested""" +# tested_scripts = set(os.path.basename(c.script) for c in all_subclasses(ScriptTest)) +# all_scripts = set(f for f in os.listdir(script_dir) if f.endswith(".py") and not f.startswith("_")) +# not_tested = all_scripts.difference(tested_scripts) +# +# if not_tested: +# print("The following scripts are not tested") +# for i, s in enumerate(not_tested): +# print("[%d] %s" % (i, s)) +# +# assert len(not_tested) == 0 class ScriptTest(AbipyTest): @@ -85,6 +86,15 @@ def test_abidoc(self): r = env.run(self.script, "abibuild", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) +class TestAbigui(ScriptTest): + + script = os.path.join(script_dir, "abigui.py") + + def test_abigui(self): + """Testing abigui.py script""" + env = self.get_env() + + class TestAbinp(ScriptTest): script = os.path.join(script_dir, "abinp.py") @@ -234,6 +244,7 @@ def test_cod_api(self): r = env.run(self.script, "cod_search", "Si", "--select-spgnum=227", "--primitive", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + @pytest.mark.skip(reason="Interface with MP rester is broken") def test_mp_api(self): """Testing abistruct mp methods.""" env = self.get_env() @@ -263,8 +274,8 @@ def test_abicomp(self): r = env.run(self.script, "spg", cif_paths[0], cif_paths[1], cif_paths[2], self.loglevel, self.verbose, expect_stderr=self.expect_stderr) - r = env.run(self.script, "mp_structure", cif_paths[0], cif_paths[1], self.loglevel, self.verbose, - expect_stderr=self.expect_stderr) + #r = env.run(self.script, "mp_structure", cif_paths[0], cif_paths[1], self.loglevel, self.verbose, + # expect_stderr=self.expect_stderr) dirpath = os.path.join(abidata.dirpath, "refs", "si_ebands") args = [os.path.join(dirpath, p) for p in ("si_nscf_GSR.nc", "si_scf_WFK.nc")] @@ -385,7 +396,7 @@ def test_abicheck(self): def make_scf_nscf_inputs(paral_kgb=1, usepaw=0): """Returns two input files: GS run and NSCF on a high symmetry k-mesh.""" - pseudos = data.pseudos("Si.GGA_PBE-JTH-paw.xml") if usepaw else abidata.pseudos("14si.pspnc") + pseudos = abidata.pseudos("Si.GGA_PBE-JTH-paw.xml") if usepaw else abidata.pseudos("14si.pspnc") multi = abilab.MultiDataset(structure=abidata.cif_file("si.cif"), pseudos=pseudos, ndtset=2) multi.set_mnemonics(True) @@ -484,3 +495,65 @@ def test_abiview(self): #ncpath = abidata.ref_file("si_nscf_GSR.nc") #r = env.run(self.script, "denpot", ncpath, "chgcar", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) #r = env.run(self.script, "denpot", ncpath, "cube", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + + +#class TestAbiw(ScriptTest): +# script = os.path.join(script_dir, "abiw.py") +# +# def test_abiw(self): +# """Testing abiw.py script""" +# #env = self.get_env() +# # Note that lscan has side effect as it updates the list of local servers. +# #r = env.run(self.script, "lscan", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) +# #r = env.run(self.script, "clients", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + + +class TestAbipsp(ScriptTest): + script = os.path.join(script_dir, "abips.py") + + def test_abipsp(self): + """Testing abips.py script""" + env = self.get_env() + r = env.run(self.script, "avail", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + r = env.run(self.script, "list", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + # Cannot test other commands as they perform installation + + +#class TestAbidb(ScriptTest): +# script = os.path.join(script_dir, "abidb.py") +# +# def test_abidb(self): +# """Testing abidb.py script""" +# env = self.get_env() +# # Cannot test other commands as we need a MongoDB server +# #r = env.run(self.script, "avail", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + + +class TestAOncv(ScriptTest): + + script = os.path.join(script_dir, "oncv.py") + + def test_oncv(self): + """Testing oncv.py script""" + env = self.get_env() + + + +class TestAbiml(ScriptTest): + script = os.path.join(script_dir, "abiml.py") + + def test_abiml(self): + """Testing abimk.py script""" + #env = self.get_env() + #r = env.run(self.script, "md", "--help", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + #r = env.run(self.script, "relax", "--help", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + + +class TestAbislurm(ScriptTest): + script = os.path.join(script_dir, "abislurm.py") + + def test_abislurm(self): + """Testing abislurm.py script""" + #env = self.get_env() + #r = env.run(self.script, "md", "--help", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) + #r = env.run(self.script, "relax", "--help", self.loglevel, self.verbose, expect_stderr=self.expect_stderr) diff --git a/abipy/test_files/MgO_phonopy_BORN b/abipy/test_files/MgO_phonopy_BORN new file mode 100644 index 000000000..5bba018ea --- /dev/null +++ b/abipy/test_files/MgO_phonopy_BORN @@ -0,0 +1,4 @@ +# epsilon and Z* of atoms 1 2 + 3.22759320 -0.00000000 0.00000000 -0.00000000 3.22759320 0.00000000 -0.00000000 0.00000000 3.22759320 + 1.99037149 -0.00000000 0.00000000 -0.00000000 1.99037149 0.00000000 -0.00000000 0.00000000 1.99037149 + -1.99037149 0.00000000 -0.00000000 0.00000000 -1.99037149 -0.00000000 0.00000000 -0.00000000 -1.99037149 diff --git a/abipy/test_files/MgO_phonopy_FORCE_CONSTANTS b/abipy/test_files/MgO_phonopy_FORCE_CONSTANTS new file mode 100644 index 000000000..456817112 --- /dev/null +++ b/abipy/test_files/MgO_phonopy_FORCE_CONSTANTS @@ -0,0 +1,129 @@ + 2 16 +1 1 + 10.917665061909947 0.000000000000000 -0.000000000000000 + -0.000000000000000 10.917665061909945 -0.000000000000003 + -0.000000000000000 -0.000000000000004 10.917665061909947 +1 2 + 0.362858915833688 -0.000000000000000 0.000000000000000 + -0.000000000000000 -1.241218474142238 -3.164451338233837 + -0.000000000000000 -3.164451338233837 -1.241218474142239 +1 3 + -1.241218474142240 -0.000000000000000 -3.164451338233837 + 0.000000000000001 0.362858915833687 0.000000000000000 + -3.164451338233837 -0.000000000000000 -1.241218474142240 +1 4 + -1.241218474142239 3.164451338233836 -0.000000000000000 + 3.164451338233837 -1.241218474142239 -0.000000000000000 + -0.000000000000001 0.000000000000000 0.362858915833687 +1 5 + -1.241218474142240 -3.164451338233836 -0.000000000000000 + -3.164451338233837 -1.241218474142239 -0.000000000000000 + 0.000000000000001 0.000000000000000 0.362858915833687 +1 6 + -1.241218474142240 -0.000000000000000 3.164451338233837 + -0.000000000000001 0.362858915833687 0.000000000000000 + 3.164451338233837 -0.000000000000000 -1.241218474142240 +1 7 + 0.362858915833687 -0.000000000000000 -0.000000000000000 + -0.000000000000000 -1.241218474142241 3.164451338233837 + 0.000000000000000 3.164451338233837 -1.241218474142240 +1 8 + -1.656778058377760 0.000000000000000 0.000000000000000 + 0.000000000000000 -1.656778058377760 0.000000000000001 + 0.000000000000000 0.000000000000001 -1.656778058377760 +1 9 + 0.129039916498733 0.000000000000000 0.000000000000000 + -0.000000000000000 0.129039916498733 -0.000000000000000 + -0.000000000000000 -0.000000000000000 0.129039916498733 +1 10 + -1.238904820754197 0.000000000000000 -0.000000000000000 + 0.000000000000000 -0.700499575423138 0.000000000000000 + 0.000000000000000 0.000000000000000 -0.700499575423138 +1 11 + -0.700499575423138 0.000000000000000 0.000000000000000 + 0.000000000000000 -1.238904820754197 0.000000000000000 + 0.000000000000000 0.000000000000001 -0.700499575423138 +1 12 + -0.700499575423138 0.000000000000000 -0.000000000000000 + 0.000000000000000 -0.700499575423138 0.000000000000000 + 0.000000000000000 0.000000000000000 -1.238904820754197 +1 13 + -0.700499575423138 0.000000000000000 -0.000000000000000 + 0.000000000000000 -0.700499575423138 0.000000000000000 + 0.000000000000000 0.000000000000000 -1.238904820754197 +1 14 + -0.700499575423138 0.000000000000000 0.000000000000000 + 0.000000000000000 -1.238904820754197 0.000000000000000 + 0.000000000000000 0.000000000000001 -0.700499575423138 +1 15 + -1.238904820754197 0.000000000000000 -0.000000000000000 + 0.000000000000000 -0.700499575423138 0.000000000000000 + 0.000000000000000 0.000000000000000 -0.700499575423138 +1 16 + 0.129039916498733 0.000000000000000 0.000000000000000 + -0.000000000000000 0.129039916498733 -0.000000000000000 + -0.000000000000000 -0.000000000000000 0.129039916498733 +9 1 + 0.129509435401440 -0.000000000000000 0.000000000000000 + 0.000000000000000 0.129509435401440 0.000000000000000 + -0.000000000000000 -0.000000000000000 0.129509435401440 +9 2 + -1.239515053906361 0.000000000000000 -0.000000000000000 + -0.000000000000000 -0.699880503436209 -0.000000000000000 + 0.000000000000000 0.000000000000000 -0.699880503436209 +9 3 + -0.699880503436209 0.000000000000000 0.000000000000000 + -0.000000000000000 -1.239515053906361 -0.000000000000000 + 0.000000000000000 0.000000000000000 -0.699880503436209 +9 4 + -0.699880503436209 0.000000000000000 0.000000000000000 + -0.000000000000000 -0.699880503436209 -0.000000000000000 + 0.000000000000000 0.000000000000000 -1.239515053906362 +9 5 + -0.699880503436209 0.000000000000000 -0.000000000000000 + -0.000000000000000 -0.699880503436209 -0.000000000000000 + 0.000000000000000 0.000000000000000 -1.239515053906362 +9 6 + -0.699880503436209 0.000000000000000 0.000000000000000 + -0.000000000000000 -1.239515053906361 -0.000000000000000 + 0.000000000000000 0.000000000000000 -0.699880503436209 +9 7 + -1.239515053906361 0.000000000000000 -0.000000000000000 + -0.000000000000000 -0.699880503436209 -0.000000000000000 + 0.000000000000000 0.000000000000000 -0.699880503436209 +9 8 + 0.129509435401440 -0.000000000000000 -0.000000000000000 + 0.000000000000000 0.129509435401440 0.000000000000000 + -0.000000000000000 -0.000000000000000 0.129509435401440 +9 9 + 10.493607468378121 -0.000000000000000 -0.000000000000000 + 0.000000000000000 10.493607468378123 0.000000000000003 + -0.000000000000000 -0.000000000000000 10.493607468378132 +9 10 + 0.236209020255365 0.000000000000000 0.000000000000000 + 0.000000000000000 -1.440696479095479 -1.817642376223965 + 0.000000000000000 -1.817642376223965 -1.440696479095480 +9 11 + -1.440696479095479 -0.000000000000000 -1.817642376223965 + -0.000000000000001 0.236209020255365 -0.000000000000000 + -1.817642376223965 -0.000000000000000 -1.440696479095479 +9 12 + -1.440696479095479 1.817642376223965 -0.000000000000000 + 1.817642376223965 -1.440696479095479 0.000000000000000 + -0.000000000000000 -0.000000000000000 0.236209020255365 +9 13 + -1.440696479095479 -1.817642376223965 -0.000000000000000 + -1.817642376223965 -1.440696479095479 0.000000000000000 + 0.000000000000000 0.000000000000000 0.236209020255365 +9 14 + -1.440696479095479 -0.000000000000000 1.817642376223965 + 0.000000000000000 0.236209020255365 -0.000000000000000 + 1.817642376223966 0.000000000000000 -1.440696479095479 +9 15 + 0.236209020255365 0.000000000000000 0.000000000000000 + -0.000000000000000 -1.440696479095479 1.817642376223965 + 0.000000000000000 1.817642376223965 -1.440696479095480 +9 16 + -0.183709170179389 0.000000000000000 0.000000000000000 + -0.000000000000000 -0.183709170179389 -0.000000000000000 + 0.000000000000000 0.000000000000000 -0.183709170179389 \ No newline at end of file diff --git a/abipy/test_files/MgO_phonopy_POSCAR b/abipy/test_files/MgO_phonopy_POSCAR new file mode 100644 index 000000000..c698a0087 --- /dev/null +++ b/abipy/test_files/MgO_phonopy_POSCAR @@ -0,0 +1,13 @@ +Mg1 O1 + 1.00000000000000 + 0.0000000000000000 2.1246970576028681 2.1246970576028681 + 2.1246970576028681 0.0000000000000000 2.1246970576028681 + 2.1246970576028681 2.1246970576028681 0.0000000000000000 + Mg O + 1 1 +Direct + 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.5000000000000000 0.5000000000000000 0.5000000000000000 + + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 diff --git a/abipy/test_files/Si_tdep.forceconstant b/abipy/test_files/Si_tdep.forceconstant new file mode 100644 index 000000000..4a07a9b74 --- /dev/null +++ b/abipy/test_files/Si_tdep.forceconstant @@ -0,0 +1,1204 @@ + 2 How many atoms per unit cell + 7.729277818436318 Realspace cutoff (A) + 99 How many neighbours does atom 1 have + 1 In the unit cell, what is the index of neighbour 1 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 12.9167319101952 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 12.9167319101952 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 12.9167319101952 + 2 In the unit cell, what is the index of neighbour 2 of atom 1 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + -3.13240847731452 2.17343121192466 -2.17343121192466 + 2.17343121192466 -3.13240847731452 2.17343121192466 + -2.17343121192466 2.17343121192466 -3.13240847731452 + 2 In the unit cell, what is the index of neighbour 3 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + -3.13240847731452 -2.17343121192466 -2.17343121192466 + -2.17343121192466 -3.13240847731452 -2.17343121192466 + -2.17343121192466 -2.17343121192466 -3.13240847731452 + 2 In the unit cell, what is the index of neighbour 4 of atom 1 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + -3.13240847731452 2.17343121192466 2.17343121192466 + 2.17343121192466 -3.13240847731452 -2.17343121192466 + 2.17343121192466 -2.17343121192466 -3.13240847731452 + 2 In the unit cell, what is the index of neighbour 5 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + -3.13240847731452 -2.17343121192466 2.17343121192466 + -2.17343121192466 -3.13240847731452 2.17343121192466 + 2.17343121192466 2.17343121192466 -3.13240847731452 + 1 In the unit cell, what is the index of neighbour 6 of atom 1 + 1.00000000000000 -1.00000000000000 0.000000000000000E+000 + -0.176084317441894 0.194062724333813 9.211564895273094E-002 + 0.194062724333813 -0.176084317441894 -9.211564895273094E-002 + -9.211564895273094E-002 9.211564895273094E-002 0.416356645582886 + 1 In the unit cell, what is the index of neighbour 7 of atom 1 + -1.00000000000000 0.000000000000000E+000 1.00000000000000 + -0.176084317441894 -9.211564895273094E-002 0.194062724333813 + 9.211564895273094E-002 0.416356645582886 -9.211564895273094E-002 + 0.194062724333813 9.211564895273094E-002 -0.176084317441894 + 1 In the unit cell, what is the index of neighbour 8 of atom 1 + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + -0.176084317441894 -9.211564895273094E-002 -0.194062724333813 + 9.211564895273094E-002 0.416356645582886 9.211564895273094E-002 + -0.194062724333813 -9.211564895273094E-002 -0.176084317441894 + 1 In the unit cell, what is the index of neighbour 9 of atom 1 + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.416356645582886 9.211564895273094E-002 9.211564895273094E-002 + -9.211564895273094E-002 -0.176084317441894 -0.194062724333813 + -9.211564895273094E-002 -0.194062724333813 -0.176084317441894 + 1 In the unit cell, what is the index of neighbour 10 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + -0.176084317441894 -0.194062724333813 9.211564895273094E-002 + -0.194062724333813 -0.176084317441894 9.211564895273094E-002 + -9.211564895273094E-002 -9.211564895273094E-002 0.416356645582886 + 1 In the unit cell, what is the index of neighbour 11 of atom 1 + -1.00000000000000 1.00000000000000 0.000000000000000E+000 + -0.176084317441894 0.194062724333813 -9.211564895273094E-002 + 0.194062724333813 -0.176084317441894 9.211564895273094E-002 + 9.211564895273094E-002 -9.211564895273094E-002 0.416356645582886 + 1 In the unit cell, what is the index of neighbour 12 of atom 1 + 0.000000000000000E+000 1.00000000000000 -1.00000000000000 + 0.416356645582886 -9.211564895273094E-002 9.211564895273094E-002 + 9.211564895273094E-002 -0.176084317441894 0.194062724333813 + -9.211564895273094E-002 0.194062724333813 -0.176084317441894 + 1 In the unit cell, what is the index of neighbour 13 of atom 1 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + -0.176084317441894 9.211564895273094E-002 -0.194062724333813 + -9.211564895273094E-002 0.416356645582886 -9.211564895273094E-002 + -0.194062724333813 9.211564895273094E-002 -0.176084317441894 + 1 In the unit cell, what is the index of neighbour 14 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + -0.176084317441894 -0.194062724333813 -9.211564895273094E-002 + -0.194062724333813 -0.176084317441894 -9.211564895273094E-002 + 9.211564895273094E-002 9.211564895273094E-002 0.416356645582886 + 1 In the unit cell, what is the index of neighbour 15 of atom 1 + 0.000000000000000E+000 -1.00000000000000 1.00000000000000 + 0.416356645582886 9.211564895273094E-002 -9.211564895273094E-002 + -9.211564895273094E-002 -0.176084317441894 0.194062724333813 + 9.211564895273094E-002 0.194062724333813 -0.176084317441894 + 1 In the unit cell, what is the index of neighbour 16 of atom 1 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.416356645582886 -9.211564895273094E-002 -9.211564895273094E-002 + 9.211564895273094E-002 -0.176084317441894 -0.194062724333813 + 9.211564895273094E-002 -0.194062724333813 -0.176084317441894 + 1 In the unit cell, what is the index of neighbour 17 of atom 1 + 1.00000000000000 0.000000000000000E+000 -1.00000000000000 + -0.176084317441894 9.211564895273094E-002 0.194062724333813 + -9.211564895273094E-002 0.416356645582886 9.211564895273094E-002 + 0.194062724333813 -9.211564895273094E-002 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 18 of atom 1 + -1.00000000000000 1.00000000000000 1.00000000000000 + -1.628998862205536E-002 -2.765825010537813E-002 -2.765825010537813E-002 + -2.765825010537813E-002 2.018211306749186E-002 -3.546679481424919E-002 + -2.765825010537813E-002 -3.546679481424919E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 19 of atom 1 + 1.00000000000000 1.00000000000000 0.000000000000000E+000 + 2.018211306749186E-002 -3.546679481424919E-002 2.765825010537813E-002 + -3.546679481424919E-002 2.018211306749186E-002 2.765825010537813E-002 + 2.765825010537813E-002 2.765825010537813E-002 -1.628998862205536E-002 + 2 In the unit cell, what is the index of neighbour 20 of atom 1 + 0.000000000000000E+000 1.00000000000000 -1.00000000000000 + 2.018211306749186E-002 2.765825010537813E-002 3.546679481424919E-002 + 2.765825010537813E-002 -1.628998862205536E-002 -2.765825010537813E-002 + 3.546679481424919E-002 -2.765825010537813E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 21 of atom 1 + 0.000000000000000E+000 -1.00000000000000 1.00000000000000 + 2.018211306749186E-002 3.546679481424919E-002 2.765825010537813E-002 + 3.546679481424919E-002 2.018211306749186E-002 -2.765825010537813E-002 + 2.765825010537813E-002 -2.765825010537813E-002 -1.628998862205536E-002 + 2 In the unit cell, what is the index of neighbour 22 of atom 1 + 0.000000000000000E+000 1.00000000000000 1.00000000000000 + -1.628998862205536E-002 2.765825010537813E-002 2.765825010537813E-002 + 2.765825010537813E-002 2.018211306749186E-002 -3.546679481424919E-002 + 2.765825010537813E-002 -3.546679481424919E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 23 of atom 1 + 1.00000000000000 -1.00000000000000 1.00000000000000 + 2.018211306749186E-002 -2.765825010537813E-002 -3.546679481424919E-002 + -2.765825010537813E-002 -1.628998862205536E-002 -2.765825010537813E-002 + -3.546679481424919E-002 -2.765825010537813E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 24 of atom 1 + -1.00000000000000 1.00000000000000 0.000000000000000E+000 + 2.018211306749186E-002 -2.765825010537813E-002 3.546679481424919E-002 + -2.765825010537813E-002 -1.628998862205536E-002 2.765825010537813E-002 + 3.546679481424919E-002 2.765825010537813E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 25 of atom 1 + 1.00000000000000 1.00000000000000 -1.00000000000000 + 2.018211306749186E-002 -3.546679481424919E-002 -2.765825010537813E-002 + -3.546679481424919E-002 2.018211306749186E-002 -2.765825010537813E-002 + -2.765825010537813E-002 -2.765825010537813E-002 -1.628998862205536E-002 + 2 In the unit cell, what is the index of neighbour 26 of atom 1 + 1.00000000000000 0.000000000000000E+000 1.00000000000000 + 2.018211306749186E-002 2.765825010537813E-002 -3.546679481424919E-002 + 2.765825010537813E-002 -1.628998862205536E-002 2.765825010537813E-002 + -3.546679481424919E-002 2.765825010537813E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 27 of atom 1 + 1.00000000000000 0.000000000000000E+000 -1.00000000000000 + -1.628998862205536E-002 2.765825010537813E-002 -2.765825010537813E-002 + 2.765825010537813E-002 2.018211306749186E-002 3.546679481424919E-002 + -2.765825010537813E-002 3.546679481424919E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 28 of atom 1 + 1.00000000000000 -1.00000000000000 0.000000000000000E+000 + -1.628998862205536E-002 -2.765825010537813E-002 2.765825010537813E-002 + -2.765825010537813E-002 2.018211306749186E-002 3.546679481424919E-002 + 2.765825010537813E-002 3.546679481424919E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 29 of atom 1 + -1.00000000000000 0.000000000000000E+000 1.00000000000000 + 2.018211306749186E-002 3.546679481424919E-002 -2.765825010537813E-002 + 3.546679481424919E-002 2.018211306749186E-002 2.765825010537813E-002 + -2.765825010537813E-002 2.765825010537813E-002 -1.628998862205536E-002 + 1 In the unit cell, what is the index of neighbour 30 of atom 1 + 1.00000000000000 1.00000000000000 -1.00000000000000 + -1.507974990342283E-002 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.507974990342283E-002 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 4.610721765823407E-003 + 1 In the unit cell, what is the index of neighbour 31 of atom 1 + -1.00000000000000 -1.00000000000000 1.00000000000000 + -1.507974990342283E-002 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.507974990342283E-002 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 4.610721765823407E-003 + 1 In the unit cell, what is the index of neighbour 32 of atom 1 + 1.00000000000000 -1.00000000000000 1.00000000000000 + -1.507974990342283E-002 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 4.610721765823407E-003 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.507974990342283E-002 + 1 In the unit cell, what is the index of neighbour 33 of atom 1 + -1.00000000000000 1.00000000000000 -1.00000000000000 + -1.507974990342283E-002 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 4.610721765823407E-003 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.507974990342283E-002 + 1 In the unit cell, what is the index of neighbour 34 of atom 1 + 1.00000000000000 -1.00000000000000 -1.00000000000000 + 4.610721765823407E-003 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.507974990342283E-002 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.507974990342283E-002 + 1 In the unit cell, what is the index of neighbour 35 of atom 1 + -1.00000000000000 1.00000000000000 1.00000000000000 + 4.610721765823407E-003 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.507974990342283E-002 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.507974990342283E-002 + 2 In the unit cell, what is the index of neighbour 36 of atom 1 + 2.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + -0.198802473701767 -3.990865319179688E-002 -3.990865319179688E-002 + -3.990865319179688E-002 -2.275793776234446E-002 -3.024480723743751E-002 + -3.990865319179688E-002 -3.024480723743751E-002 -2.275793776234446E-002 + 2 In the unit cell, what is the index of neighbour 37 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + -2.275793776234446E-002 -3.024480723743751E-002 3.990865319179688E-002 + -3.024480723743751E-002 -2.275793776234446E-002 3.990865319179688E-002 + 3.990865319179688E-002 3.990865319179688E-002 -0.198802473701767 + 2 In the unit cell, what is the index of neighbour 38 of atom 1 + 2.00000000000000 0.000000000000000E+000 -1.00000000000000 + -2.275793776234446E-002 -3.990865319179688E-002 3.024480723743751E-002 + -3.990865319179688E-002 -0.198802473701767 3.990865319179688E-002 + 3.024480723743751E-002 3.990865319179688E-002 -2.275793776234446E-002 + 2 In the unit cell, what is the index of neighbour 39 of atom 1 + 2.00000000000000 -1.00000000000000 0.000000000000000E+000 + -2.275793776234446E-002 3.024480723743751E-002 -3.990865319179688E-002 + 3.024480723743751E-002 -2.275793776234446E-002 3.990865319179688E-002 + -3.990865319179688E-002 3.990865319179688E-002 -0.198802473701767 + 2 In the unit cell, what is the index of neighbour 40 of atom 1 + 0.000000000000000E+000 2.00000000000000 -1.00000000000000 + -0.198802473701767 -3.990865319179688E-002 3.990865319179688E-002 + -3.990865319179688E-002 -2.275793776234446E-002 3.024480723743751E-002 + 3.990865319179688E-002 3.024480723743751E-002 -2.275793776234446E-002 + 2 In the unit cell, what is the index of neighbour 41 of atom 1 + 0.000000000000000E+000 2.00000000000000 0.000000000000000E+000 + -2.275793776234446E-002 -3.990865319179688E-002 -3.024480723743751E-002 + -3.990865319179688E-002 -0.198802473701767 -3.990865319179688E-002 + -3.024480723743751E-002 -3.990865319179688E-002 -2.275793776234446E-002 + 2 In the unit cell, what is the index of neighbour 42 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 2.00000000000000 + -2.275793776234446E-002 -3.024480723743751E-002 -3.990865319179688E-002 + -3.024480723743751E-002 -2.275793776234446E-002 -3.990865319179688E-002 + -3.990865319179688E-002 -3.990865319179688E-002 -0.198802473701767 + 2 In the unit cell, what is the index of neighbour 43 of atom 1 + -1.00000000000000 2.00000000000000 0.000000000000000E+000 + -2.275793776234446E-002 3.024480723743751E-002 3.990865319179688E-002 + 3.024480723743751E-002 -2.275793776234446E-002 -3.990865319179688E-002 + 3.990865319179688E-002 -3.990865319179688E-002 -0.198802473701767 + 2 In the unit cell, what is the index of neighbour 44 of atom 1 + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + -2.275793776234446E-002 3.990865319179688E-002 -3.024480723743751E-002 + 3.990865319179688E-002 -0.198802473701767 3.990865319179688E-002 + -3.024480723743751E-002 3.990865319179688E-002 -2.275793776234446E-002 + 2 In the unit cell, what is the index of neighbour 45 of atom 1 + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + -0.198802473701767 3.990865319179688E-002 3.990865319179688E-002 + 3.990865319179688E-002 -2.275793776234446E-002 -3.024480723743751E-002 + 3.990865319179688E-002 -3.024480723743751E-002 -2.275793776234446E-002 + 2 In the unit cell, what is the index of neighbour 46 of atom 1 + 0.000000000000000E+000 -1.00000000000000 2.00000000000000 + -0.198802473701767 3.990865319179688E-002 -3.990865319179688E-002 + 3.990865319179688E-002 -2.275793776234446E-002 3.024480723743751E-002 + -3.990865319179688E-002 3.024480723743751E-002 -2.275793776234446E-002 + 2 In the unit cell, what is the index of neighbour 47 of atom 1 + -1.00000000000000 0.000000000000000E+000 2.00000000000000 + -2.275793776234446E-002 3.990865319179688E-002 3.024480723743751E-002 + 3.990865319179688E-002 -0.198802473701767 -3.990865319179688E-002 + 3.024480723743751E-002 -3.990865319179688E-002 -2.275793776234446E-002 + 1 In the unit cell, what is the index of neighbour 48 of atom 1 + 1.00000000000000 1.00000000000000 -2.00000000000000 + -1.934888168368339E-002 2.223112964980448E-002 9.854261781446732E-006 + 2.223112964980448E-002 -1.934888168368339E-002 9.854261781446732E-006 + -4.516655032507769E-003 -4.516655032507769E-003 7.901611011601828E-003 + 1 In the unit cell, what is the index of neighbour 49 of atom 1 + -1.00000000000000 -1.00000000000000 0.000000000000000E+000 + -1.934888168368339E-002 2.223112964980448E-002 4.516655032507769E-003 + 2.223112964980448E-002 -1.934888168368339E-002 4.516655032507769E-003 + -9.854261781446732E-006 -9.854261781446732E-006 7.901611011601828E-003 + 1 In the unit cell, what is the index of neighbour 50 of atom 1 + -1.00000000000000 -1.00000000000000 2.00000000000000 + -1.934888168368339E-002 2.223112964980448E-002 -4.516655032507769E-003 + 2.223112964980448E-002 -1.934888168368339E-002 -4.516655032507769E-003 + 9.854261781446732E-006 9.854261781446732E-006 7.901611011601828E-003 + 1 In the unit cell, what is the index of neighbour 51 of atom 1 + 0.000000000000000E+000 2.00000000000000 -1.00000000000000 + -1.934888168368339E-002 -2.223112964980448E-002 4.516655032507769E-003 + -2.223112964980448E-002 -1.934888168368339E-002 -4.516655032507769E-003 + -9.854261781446732E-006 9.854261781446732E-006 7.901611011601828E-003 + 1 In the unit cell, what is the index of neighbour 52 of atom 1 + 2.00000000000000 0.000000000000000E+000 -1.00000000000000 + -1.934888168368339E-002 -2.223112964980448E-002 -4.516655032507769E-003 + -2.223112964980448E-002 -1.934888168368339E-002 4.516655032507769E-003 + 9.854261781446732E-006 -9.854261781446732E-006 7.901611011601828E-003 + 1 In the unit cell, what is the index of neighbour 53 of atom 1 + -2.00000000000000 0.000000000000000E+000 1.00000000000000 + -1.934888168368339E-002 -2.223112964980448E-002 9.854261781446732E-006 + -2.223112964980448E-002 -1.934888168368339E-002 -9.854261781446732E-006 + -4.516655032507769E-003 4.516655032507769E-003 7.901611011601828E-003 + 1 In the unit cell, what is the index of neighbour 54 of atom 1 + 0.000000000000000E+000 -2.00000000000000 1.00000000000000 + -1.934888168368339E-002 -2.223112964980448E-002 -9.854261781446732E-006 + -2.223112964980448E-002 -1.934888168368339E-002 9.854261781446732E-006 + 4.516655032507769E-003 -4.516655032507769E-003 7.901611011601828E-003 + 1 In the unit cell, what is the index of neighbour 55 of atom 1 + 1.00000000000000 1.00000000000000 0.000000000000000E+000 + -1.934888168368339E-002 2.223112964980448E-002 -9.854261781446732E-006 + 2.223112964980448E-002 -1.934888168368339E-002 -9.854261781446732E-006 + 4.516655032507769E-003 4.516655032507769E-003 7.901611011601828E-003 + 1 In the unit cell, what is the index of neighbour 56 of atom 1 + -1.00000000000000 0.000000000000000E+000 2.00000000000000 + 7.901611011601828E-003 -9.854261781446732E-006 9.854261781446732E-006 + 4.516655032507769E-003 -1.934888168368339E-002 -2.223112964980448E-002 + -4.516655032507769E-003 -2.223112964980448E-002 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 57 of atom 1 + 1.00000000000000 -2.00000000000000 1.00000000000000 + -1.934888168368339E-002 9.854261781446732E-006 2.223112964980448E-002 + -4.516655032507769E-003 7.901611011601828E-003 -4.516655032507769E-003 + 2.223112964980448E-002 9.854261781446732E-006 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 58 of atom 1 + -1.00000000000000 0.000000000000000E+000 -1.00000000000000 + -1.934888168368339E-002 4.516655032507769E-003 2.223112964980448E-002 + -9.854261781446732E-006 7.901611011601828E-003 -9.854261781446732E-006 + 2.223112964980448E-002 4.516655032507769E-003 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 59 of atom 1 + 2.00000000000000 -1.00000000000000 0.000000000000000E+000 + -1.934888168368339E-002 -4.516655032507769E-003 -2.223112964980448E-002 + 9.854261781446732E-006 7.901611011601828E-003 -9.854261781446732E-006 + -2.223112964980448E-002 4.516655032507769E-003 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 60 of atom 1 + 1.00000000000000 0.000000000000000E+000 -2.00000000000000 + 7.901611011601828E-003 4.516655032507769E-003 -4.516655032507769E-003 + -9.854261781446732E-006 -1.934888168368339E-002 -2.223112964980448E-002 + 9.854261781446732E-006 -2.223112964980448E-002 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 61 of atom 1 + 2.00000000000000 -1.00000000000000 -1.00000000000000 + 7.901611011601828E-003 9.854261781446732E-006 9.854261781446732E-006 + -4.516655032507769E-003 -1.934888168368339E-002 2.223112964980448E-002 + -4.516655032507769E-003 2.223112964980448E-002 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 62 of atom 1 + -2.00000000000000 1.00000000000000 0.000000000000000E+000 + -1.934888168368339E-002 9.854261781446732E-006 -2.223112964980448E-002 + -4.516655032507769E-003 7.901611011601828E-003 4.516655032507769E-003 + -2.223112964980448E-002 -9.854261781446732E-006 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 63 of atom 1 + 1.00000000000000 0.000000000000000E+000 1.00000000000000 + -1.934888168368339E-002 -9.854261781446732E-006 2.223112964980448E-002 + 4.516655032507769E-003 7.901611011601828E-003 4.516655032507769E-003 + 2.223112964980448E-002 -9.854261781446732E-006 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 64 of atom 1 + -2.00000000000000 1.00000000000000 1.00000000000000 + 7.901611011601828E-003 -4.516655032507769E-003 -4.516655032507769E-003 + 9.854261781446732E-006 -1.934888168368339E-002 2.223112964980448E-002 + 9.854261781446732E-006 2.223112964980448E-002 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 65 of atom 1 + 0.000000000000000E+000 -1.00000000000000 -1.00000000000000 + 7.901611011601828E-003 -9.854261781446732E-006 -9.854261781446732E-006 + 4.516655032507769E-003 -1.934888168368339E-002 2.223112964980448E-002 + 4.516655032507769E-003 2.223112964980448E-002 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 66 of atom 1 + -1.00000000000000 2.00000000000000 -1.00000000000000 + -1.934888168368339E-002 -4.516655032507769E-003 2.223112964980448E-002 + 9.854261781446732E-006 7.901611011601828E-003 9.854261781446732E-006 + 2.223112964980448E-002 -4.516655032507769E-003 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 67 of atom 1 + 0.000000000000000E+000 -1.00000000000000 2.00000000000000 + -1.934888168368339E-002 4.516655032507769E-003 -2.223112964980448E-002 + -9.854261781446732E-006 7.901611011601828E-003 9.854261781446732E-006 + -2.223112964980448E-002 -4.516655032507769E-003 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 68 of atom 1 + 1.00000000000000 -2.00000000000000 0.000000000000000E+000 + 7.901611011601828E-003 -4.516655032507769E-003 4.516655032507769E-003 + 9.854261781446732E-006 -1.934888168368339E-002 -2.223112964980448E-002 + -9.854261781446732E-006 -2.223112964980448E-002 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 69 of atom 1 + 0.000000000000000E+000 1.00000000000000 1.00000000000000 + 7.901611011601828E-003 4.516655032507769E-003 4.516655032507769E-003 + -9.854261781446732E-006 -1.934888168368339E-002 2.223112964980448E-002 + -9.854261781446732E-006 2.223112964980448E-002 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 70 of atom 1 + -1.00000000000000 2.00000000000000 0.000000000000000E+000 + 7.901611011601828E-003 9.854261781446732E-006 -9.854261781446732E-006 + -4.516655032507769E-003 -1.934888168368339E-002 -2.223112964980448E-002 + 4.516655032507769E-003 -2.223112964980448E-002 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 71 of atom 1 + 0.000000000000000E+000 1.00000000000000 -2.00000000000000 + -1.934888168368339E-002 -9.854261781446732E-006 -2.223112964980448E-002 + 4.516655032507769E-003 7.901611011601828E-003 -4.516655032507769E-003 + -2.223112964980448E-002 9.854261781446732E-006 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 72 of atom 1 + -1.00000000000000 -1.00000000000000 1.00000000000000 + 4.237335066600047E-003 1.444377446655564E-003 2.757006727406323E-003 + 1.444377446655564E-003 4.237335066600047E-003 2.757006727406323E-003 + 2.757006727406323E-003 2.757006727406323E-003 -1.598437955725645E-002 + 2 In the unit cell, what is the index of neighbour 73 of atom 1 + -1.00000000000000 2.00000000000000 -1.00000000000000 + 4.237335066600047E-003 -2.757006727406323E-003 1.444377446655564E-003 + -2.757006727406323E-003 -1.598437955725645E-002 -2.757006727406323E-003 + 1.444377446655564E-003 -2.757006727406323E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 74 of atom 1 + -1.00000000000000 -1.00000000000000 2.00000000000000 + 4.237335066600047E-003 1.444377446655564E-003 -2.757006727406323E-003 + 1.444377446655564E-003 4.237335066600047E-003 -2.757006727406323E-003 + -2.757006727406323E-003 -2.757006727406323E-003 -1.598437955725645E-002 + 2 In the unit cell, what is the index of neighbour 75 of atom 1 + -1.00000000000000 1.00000000000000 -1.00000000000000 + 4.237335066600047E-003 2.757006727406323E-003 1.444377446655564E-003 + 2.757006727406323E-003 -1.598437955725645E-002 2.757006727406323E-003 + 1.444377446655564E-003 2.757006727406323E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 76 of atom 1 + 1.00000000000000 -1.00000000000000 -1.00000000000000 + -1.598437955725645E-002 2.757006727406323E-003 2.757006727406323E-003 + 2.757006727406323E-003 4.237335066600047E-003 1.444377446655564E-003 + 2.757006727406323E-003 1.444377446655564E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 77 of atom 1 + 2.00000000000000 -1.00000000000000 -1.00000000000000 + -1.598437955725645E-002 -2.757006727406323E-003 -2.757006727406323E-003 + -2.757006727406323E-003 4.237335066600047E-003 1.444377446655564E-003 + -2.757006727406323E-003 1.444377446655564E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 78 of atom 1 + 2.00000000000000 -1.00000000000000 1.00000000000000 + 4.237335066600047E-003 -2.757006727406323E-003 -1.444377446655564E-003 + -2.757006727406323E-003 -1.598437955725645E-002 2.757006727406323E-003 + -1.444377446655564E-003 2.757006727406323E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 79 of atom 1 + 1.00000000000000 2.00000000000000 -1.00000000000000 + 4.237335066600047E-003 -1.444377446655564E-003 2.757006727406323E-003 + -1.444377446655564E-003 4.237335066600047E-003 -2.757006727406323E-003 + 2.757006727406323E-003 -2.757006727406323E-003 -1.598437955725645E-002 + 2 In the unit cell, what is the index of neighbour 80 of atom 1 + 1.00000000000000 1.00000000000000 1.00000000000000 + 2.708357831057494E-002 -1.951493298282922E-002 -1.951493298282922E-002 + -1.951493298282922E-002 2.708357831057494E-002 -1.951493298282922E-002 + -1.951493298282922E-002 -1.951493298282922E-002 2.708357831057494E-002 + 2 In the unit cell, what is the index of neighbour 81 of atom 1 + 2.00000000000000 1.00000000000000 -1.00000000000000 + 4.237335066600047E-003 -1.444377446655564E-003 -2.757006727406323E-003 + -1.444377446655564E-003 4.237335066600047E-003 2.757006727406323E-003 + -2.757006727406323E-003 2.757006727406323E-003 -1.598437955725645E-002 + 2 In the unit cell, what is the index of neighbour 82 of atom 1 + -2.00000000000000 1.00000000000000 1.00000000000000 + 2.708357831057494E-002 1.951493298282922E-002 1.951493298282922E-002 + 1.951493298282922E-002 2.708357831057494E-002 -1.951493298282922E-002 + 1.951493298282922E-002 -1.951493298282922E-002 2.708357831057494E-002 + 2 In the unit cell, what is the index of neighbour 83 of atom 1 + 1.00000000000000 -2.00000000000000 1.00000000000000 + 2.708357831057494E-002 1.951493298282922E-002 -1.951493298282922E-002 + 1.951493298282922E-002 2.708357831057494E-002 1.951493298282922E-002 + -1.951493298282922E-002 1.951493298282922E-002 2.708357831057494E-002 + 2 In the unit cell, what is the index of neighbour 84 of atom 1 + -1.00000000000000 1.00000000000000 2.00000000000000 + -1.598437955725645E-002 2.757006727406323E-003 -2.757006727406323E-003 + 2.757006727406323E-003 4.237335066600047E-003 -1.444377446655564E-003 + -2.757006727406323E-003 -1.444377446655564E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 85 of atom 1 + 1.00000000000000 -1.00000000000000 2.00000000000000 + 4.237335066600047E-003 2.757006727406323E-003 -1.444377446655564E-003 + 2.757006727406323E-003 -1.598437955725645E-002 -2.757006727406323E-003 + -1.444377446655564E-003 -2.757006727406323E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 86 of atom 1 + -1.00000000000000 2.00000000000000 1.00000000000000 + -1.598437955725645E-002 -2.757006727406323E-003 2.757006727406323E-003 + -2.757006727406323E-003 4.237335066600047E-003 -1.444377446655564E-003 + 2.757006727406323E-003 -1.444377446655564E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 87 of atom 1 + 1.00000000000000 1.00000000000000 -2.00000000000000 + 2.708357831057494E-002 -1.951493298282922E-002 1.951493298282922E-002 + -1.951493298282922E-002 2.708357831057494E-002 1.951493298282922E-002 + 1.951493298282922E-002 1.951493298282922E-002 2.708357831057494E-002 + 1 In the unit cell, what is the index of neighbour 88 of atom 1 + 2.00000000000000 0.000000000000000E+000 -2.00000000000000 + 1.000280904971995E-002 2.066122565385088E-002 6.701063457138197E-003 + -2.066122565385088E-002 9.406880752623402E-002 2.066122565385088E-002 + 6.701063457138197E-003 -2.066122565385088E-002 1.000280904971995E-002 + 1 In the unit cell, what is the index of neighbour 89 of atom 1 + 0.000000000000000E+000 2.00000000000000 0.000000000000000E+000 + 1.000280904971995E-002 2.066122565385088E-002 -6.701063457138197E-003 + -2.066122565385088E-002 9.406880752623402E-002 -2.066122565385088E-002 + -6.701063457138197E-003 2.066122565385088E-002 1.000280904971995E-002 + 1 In the unit cell, what is the index of neighbour 90 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 -2.00000000000000 + 1.000280904971995E-002 -6.701063457138197E-003 -2.066122565385088E-002 + -6.701063457138197E-003 1.000280904971995E-002 -2.066122565385088E-002 + 2.066122565385088E-002 2.066122565385088E-002 9.406880752623402E-002 + 1 In the unit cell, what is the index of neighbour 91 of atom 1 + 2.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 9.406880752623402E-002 -2.066122565385088E-002 -2.066122565385088E-002 + 2.066122565385088E-002 1.000280904971995E-002 -6.701063457138197E-003 + 2.066122565385088E-002 -6.701063457138197E-003 1.000280904971995E-002 + 1 In the unit cell, what is the index of neighbour 92 of atom 1 + -2.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 9.406880752623402E-002 2.066122565385088E-002 2.066122565385088E-002 + -2.066122565385088E-002 1.000280904971995E-002 -6.701063457138197E-003 + -2.066122565385088E-002 -6.701063457138197E-003 1.000280904971995E-002 + 1 In the unit cell, what is the index of neighbour 93 of atom 1 + 0.000000000000000E+000 -2.00000000000000 0.000000000000000E+000 + 1.000280904971995E-002 -2.066122565385088E-002 -6.701063457138197E-003 + 2.066122565385088E-002 9.406880752623402E-002 2.066122565385088E-002 + -6.701063457138197E-003 -2.066122565385088E-002 1.000280904971995E-002 + 1 In the unit cell, what is the index of neighbour 94 of atom 1 + -2.00000000000000 0.000000000000000E+000 2.00000000000000 + 1.000280904971995E-002 -2.066122565385088E-002 6.701063457138197E-003 + 2.066122565385088E-002 9.406880752623402E-002 -2.066122565385088E-002 + 6.701063457138197E-003 2.066122565385088E-002 1.000280904971995E-002 + 1 In the unit cell, what is the index of neighbour 95 of atom 1 + 0.000000000000000E+000 0.000000000000000E+000 2.00000000000000 + 1.000280904971995E-002 -6.701063457138197E-003 2.066122565385088E-002 + -6.701063457138197E-003 1.000280904971995E-002 2.066122565385088E-002 + -2.066122565385088E-002 -2.066122565385088E-002 9.406880752623402E-002 + 1 In the unit cell, what is the index of neighbour 96 of atom 1 + 0.000000000000000E+000 2.00000000000000 -2.00000000000000 + 9.406880752623402E-002 -2.066122565385088E-002 2.066122565385088E-002 + 2.066122565385088E-002 1.000280904971995E-002 6.701063457138197E-003 + -2.066122565385088E-002 6.701063457138197E-003 1.000280904971995E-002 + 1 In the unit cell, what is the index of neighbour 97 of atom 1 + 0.000000000000000E+000 -2.00000000000000 2.00000000000000 + 9.406880752623402E-002 2.066122565385088E-002 -2.066122565385088E-002 + -2.066122565385088E-002 1.000280904971995E-002 6.701063457138197E-003 + 2.066122565385088E-002 6.701063457138197E-003 1.000280904971995E-002 + 1 In the unit cell, what is the index of neighbour 98 of atom 1 + 2.00000000000000 -2.00000000000000 0.000000000000000E+000 + 1.000280904971995E-002 6.701063457138197E-003 2.066122565385088E-002 + 6.701063457138197E-003 1.000280904971995E-002 -2.066122565385088E-002 + -2.066122565385088E-002 2.066122565385088E-002 9.406880752623402E-002 + 1 In the unit cell, what is the index of neighbour 99 of atom 1 + -2.00000000000000 2.00000000000000 0.000000000000000E+000 + 1.000280904971995E-002 6.701063457138197E-003 -2.066122565385088E-002 + 6.701063457138197E-003 1.000280904971995E-002 2.066122565385088E-002 + 2.066122565385088E-002 -2.066122565385088E-002 9.406880752623402E-002 + 99 How many neighbours does atom 2 have + 2 In the unit cell, what is the index of neighbour 1 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 12.9167319101952 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 12.9167319101952 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 12.9167319101952 + 1 In the unit cell, what is the index of neighbour 2 of atom 2 + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + -3.13240847731452 2.17343121192466 2.17343121192466 + 2.17343121192466 -3.13240847731452 -2.17343121192466 + 2.17343121192466 -2.17343121192466 -3.13240847731452 + 1 In the unit cell, what is the index of neighbour 3 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + -3.13240847731452 -2.17343121192466 -2.17343121192466 + -2.17343121192466 -3.13240847731452 -2.17343121192466 + -2.17343121192466 -2.17343121192466 -3.13240847731452 + 1 In the unit cell, what is the index of neighbour 4 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + -3.13240847731452 -2.17343121192466 2.17343121192466 + -2.17343121192466 -3.13240847731452 2.17343121192466 + 2.17343121192466 2.17343121192466 -3.13240847731452 + 1 In the unit cell, what is the index of neighbour 5 of atom 2 + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + -3.13240847731452 2.17343121192466 -2.17343121192466 + 2.17343121192466 -3.13240847731452 2.17343121192466 + -2.17343121192466 2.17343121192466 -3.13240847731452 + 2 In the unit cell, what is the index of neighbour 6 of atom 2 + -1.00000000000000 1.00000000000000 0.000000000000000E+000 + -0.176084317441894 0.194062724333813 9.211564895273094E-002 + 0.194062724333813 -0.176084317441894 -9.211564895273094E-002 + -9.211564895273094E-002 9.211564895273094E-002 0.416356645582886 + 2 In the unit cell, what is the index of neighbour 7 of atom 2 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + -0.176084317441894 -9.211564895273094E-002 -0.194062724333813 + 9.211564895273094E-002 0.416356645582886 9.211564895273094E-002 + -0.194062724333813 -9.211564895273094E-002 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 8 of atom 2 + 0.000000000000000E+000 1.00000000000000 -1.00000000000000 + 0.416356645582886 9.211564895273094E-002 -9.211564895273094E-002 + -9.211564895273094E-002 -0.176084317441894 0.194062724333813 + 9.211564895273094E-002 0.194062724333813 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 9 of atom 2 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.416356645582886 9.211564895273094E-002 9.211564895273094E-002 + -9.211564895273094E-002 -0.176084317441894 -0.194062724333813 + -9.211564895273094E-002 -0.194062724333813 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 10 of atom 2 + -1.00000000000000 0.000000000000000E+000 1.00000000000000 + -0.176084317441894 9.211564895273094E-002 0.194062724333813 + -9.211564895273094E-002 0.416356645582886 9.211564895273094E-002 + 0.194062724333813 -9.211564895273094E-002 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 11 of atom 2 + -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 0.416356645582886 -9.211564895273094E-002 -9.211564895273094E-002 + 9.211564895273094E-002 -0.176084317441894 -0.194062724333813 + 9.211564895273094E-002 -0.194062724333813 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 12 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + -0.176084317441894 -0.194062724333813 -9.211564895273094E-002 + -0.194062724333813 -0.176084317441894 -9.211564895273094E-002 + 9.211564895273094E-002 9.211564895273094E-002 0.416356645582886 + 2 In the unit cell, what is the index of neighbour 13 of atom 2 + 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000 + -0.176084317441894 9.211564895273094E-002 -0.194062724333813 + -9.211564895273094E-002 0.416356645582886 -9.211564895273094E-002 + -0.194062724333813 9.211564895273094E-002 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 14 of atom 2 + 0.000000000000000E+000 -1.00000000000000 1.00000000000000 + 0.416356645582886 -9.211564895273094E-002 9.211564895273094E-002 + 9.211564895273094E-002 -0.176084317441894 0.194062724333813 + -9.211564895273094E-002 0.194062724333813 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 15 of atom 2 + 1.00000000000000 -1.00000000000000 0.000000000000000E+000 + -0.176084317441894 0.194062724333813 -9.211564895273094E-002 + 0.194062724333813 -0.176084317441894 9.211564895273094E-002 + 9.211564895273094E-002 -9.211564895273094E-002 0.416356645582886 + 2 In the unit cell, what is the index of neighbour 16 of atom 2 + 1.00000000000000 0.000000000000000E+000 -1.00000000000000 + -0.176084317441894 -9.211564895273094E-002 0.194062724333813 + 9.211564895273094E-002 0.416356645582886 -9.211564895273094E-002 + 0.194062724333813 9.211564895273094E-002 -0.176084317441894 + 2 In the unit cell, what is the index of neighbour 17 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000 + -0.176084317441894 -0.194062724333813 9.211564895273094E-002 + -0.194062724333813 -0.176084317441894 9.211564895273094E-002 + -9.211564895273094E-002 -9.211564895273094E-002 0.416356645582886 + 1 In the unit cell, what is the index of neighbour 18 of atom 2 + -1.00000000000000 1.00000000000000 0.000000000000000E+000 + -1.628998862205536E-002 -2.765825010537813E-002 2.765825010537813E-002 + -2.765825010537813E-002 2.018211306749186E-002 3.546679481424919E-002 + 2.765825010537813E-002 3.546679481424919E-002 2.018211306749186E-002 + 1 In the unit cell, what is the index of neighbour 19 of atom 2 + -1.00000000000000 0.000000000000000E+000 1.00000000000000 + -1.628998862205536E-002 2.765825010537813E-002 -2.765825010537813E-002 + 2.765825010537813E-002 2.018211306749186E-002 3.546679481424919E-002 + -2.765825010537813E-002 3.546679481424919E-002 2.018211306749186E-002 + 1 In the unit cell, what is the index of neighbour 20 of atom 2 + 0.000000000000000E+000 -1.00000000000000 1.00000000000000 + 2.018211306749186E-002 2.765825010537813E-002 3.546679481424919E-002 + 2.765825010537813E-002 -1.628998862205536E-002 -2.765825010537813E-002 + 3.546679481424919E-002 -2.765825010537813E-002 2.018211306749186E-002 + 1 In the unit cell, what is the index of neighbour 21 of atom 2 + 0.000000000000000E+000 -1.00000000000000 -1.00000000000000 + -1.628998862205536E-002 2.765825010537813E-002 2.765825010537813E-002 + 2.765825010537813E-002 2.018211306749186E-002 -3.546679481424919E-002 + 2.765825010537813E-002 -3.546679481424919E-002 2.018211306749186E-002 + 1 In the unit cell, what is the index of neighbour 22 of atom 2 + -1.00000000000000 1.00000000000000 -1.00000000000000 + 2.018211306749186E-002 -2.765825010537813E-002 -3.546679481424919E-002 + -2.765825010537813E-002 -1.628998862205536E-002 -2.765825010537813E-002 + -3.546679481424919E-002 -2.765825010537813E-002 2.018211306749186E-002 + 1 In the unit cell, what is the index of neighbour 23 of atom 2 + -1.00000000000000 -1.00000000000000 0.000000000000000E+000 + 2.018211306749186E-002 -3.546679481424919E-002 2.765825010537813E-002 + -3.546679481424919E-002 2.018211306749186E-002 2.765825010537813E-002 + 2.765825010537813E-002 2.765825010537813E-002 -1.628998862205536E-002 + 1 In the unit cell, what is the index of neighbour 24 of atom 2 + -1.00000000000000 -1.00000000000000 1.00000000000000 + 2.018211306749186E-002 -3.546679481424919E-002 -2.765825010537813E-002 + -3.546679481424919E-002 2.018211306749186E-002 -2.765825010537813E-002 + -2.765825010537813E-002 -2.765825010537813E-002 -1.628998862205536E-002 + 1 In the unit cell, what is the index of neighbour 25 of atom 2 + 1.00000000000000 0.000000000000000E+000 -1.00000000000000 + 2.018211306749186E-002 3.546679481424919E-002 -2.765825010537813E-002 + 3.546679481424919E-002 2.018211306749186E-002 2.765825010537813E-002 + -2.765825010537813E-002 2.765825010537813E-002 -1.628998862205536E-002 + 1 In the unit cell, what is the index of neighbour 26 of atom 2 + 1.00000000000000 -1.00000000000000 0.000000000000000E+000 + 2.018211306749186E-002 -2.765825010537813E-002 3.546679481424919E-002 + -2.765825010537813E-002 -1.628998862205536E-002 2.765825010537813E-002 + 3.546679481424919E-002 2.765825010537813E-002 2.018211306749186E-002 + 1 In the unit cell, what is the index of neighbour 27 of atom 2 + 0.000000000000000E+000 1.00000000000000 -1.00000000000000 + 2.018211306749186E-002 3.546679481424919E-002 2.765825010537813E-002 + 3.546679481424919E-002 2.018211306749186E-002 -2.765825010537813E-002 + 2.765825010537813E-002 -2.765825010537813E-002 -1.628998862205536E-002 + 1 In the unit cell, what is the index of neighbour 28 of atom 2 + 1.00000000000000 -1.00000000000000 -1.00000000000000 + -1.628998862205536E-002 -2.765825010537813E-002 -2.765825010537813E-002 + -2.765825010537813E-002 2.018211306749186E-002 -3.546679481424919E-002 + -2.765825010537813E-002 -3.546679481424919E-002 2.018211306749186E-002 + 1 In the unit cell, what is the index of neighbour 29 of atom 2 + -1.00000000000000 0.000000000000000E+000 -1.00000000000000 + 2.018211306749186E-002 2.765825010537813E-002 -3.546679481424919E-002 + 2.765825010537813E-002 -1.628998862205536E-002 2.765825010537813E-002 + -3.546679481424919E-002 2.765825010537813E-002 2.018211306749186E-002 + 2 In the unit cell, what is the index of neighbour 30 of atom 2 + -1.00000000000000 1.00000000000000 1.00000000000000 + 4.610721765823407E-003 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.507974990342283E-002 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.507974990342283E-002 + 2 In the unit cell, what is the index of neighbour 31 of atom 2 + 1.00000000000000 -1.00000000000000 -1.00000000000000 + 4.610721765823407E-003 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.507974990342283E-002 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.507974990342283E-002 + 2 In the unit cell, what is the index of neighbour 32 of atom 2 + 1.00000000000000 -1.00000000000000 1.00000000000000 + -1.507974990342283E-002 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 4.610721765823407E-003 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.507974990342283E-002 + 2 In the unit cell, what is the index of neighbour 33 of atom 2 + -1.00000000000000 1.00000000000000 -1.00000000000000 + -1.507974990342283E-002 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 4.610721765823407E-003 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 -1.507974990342283E-002 + 2 In the unit cell, what is the index of neighbour 34 of atom 2 + -1.00000000000000 -1.00000000000000 1.00000000000000 + -1.507974990342283E-002 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.507974990342283E-002 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 4.610721765823407E-003 + 2 In the unit cell, what is the index of neighbour 35 of atom 2 + 1.00000000000000 1.00000000000000 -1.00000000000000 + -1.507974990342283E-002 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 -1.507974990342283E-002 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 4.610721765823407E-003 + 1 In the unit cell, what is the index of neighbour 36 of atom 2 + 1.00000000000000 0.000000000000000E+000 -2.00000000000000 + -2.275793776234446E-002 3.990865319179688E-002 3.024480723743751E-002 + 3.990865319179688E-002 -0.198802473701767 -3.990865319179688E-002 + 3.024480723743751E-002 -3.990865319179688E-002 -2.275793776234446E-002 + 1 In the unit cell, what is the index of neighbour 37 of atom 2 + 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + -0.198802473701767 3.990865319179688E-002 3.990865319179688E-002 + 3.990865319179688E-002 -2.275793776234446E-002 -3.024480723743751E-002 + 3.990865319179688E-002 -3.024480723743751E-002 -2.275793776234446E-002 + 1 In the unit cell, what is the index of neighbour 38 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 -2.00000000000000 + -2.275793776234446E-002 -3.024480723743751E-002 -3.990865319179688E-002 + -3.024480723743751E-002 -2.275793776234446E-002 -3.990865319179688E-002 + -3.990865319179688E-002 -3.990865319179688E-002 -0.198802473701767 + 1 In the unit cell, what is the index of neighbour 39 of atom 2 + 1.00000000000000 -2.00000000000000 0.000000000000000E+000 + -2.275793776234446E-002 3.024480723743751E-002 3.990865319179688E-002 + 3.024480723743751E-002 -2.275793776234446E-002 -3.990865319179688E-002 + 3.990865319179688E-002 -3.990865319179688E-002 -0.198802473701767 + 1 In the unit cell, what is the index of neighbour 40 of atom 2 + 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000 + -2.275793776234446E-002 3.990865319179688E-002 -3.024480723743751E-002 + 3.990865319179688E-002 -0.198802473701767 3.990865319179688E-002 + -3.024480723743751E-002 3.990865319179688E-002 -2.275793776234446E-002 + 1 In the unit cell, what is the index of neighbour 41 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000 + -2.275793776234446E-002 -3.024480723743751E-002 3.990865319179688E-002 + -3.024480723743751E-002 -2.275793776234446E-002 3.990865319179688E-002 + 3.990865319179688E-002 3.990865319179688E-002 -0.198802473701767 + 1 In the unit cell, what is the index of neighbour 42 of atom 2 + 0.000000000000000E+000 1.00000000000000 -2.00000000000000 + -0.198802473701767 3.990865319179688E-002 -3.990865319179688E-002 + 3.990865319179688E-002 -2.275793776234446E-002 3.024480723743751E-002 + -3.990865319179688E-002 3.024480723743751E-002 -2.275793776234446E-002 + 1 In the unit cell, what is the index of neighbour 43 of atom 2 + -2.00000000000000 1.00000000000000 0.000000000000000E+000 + -2.275793776234446E-002 3.024480723743751E-002 -3.990865319179688E-002 + 3.024480723743751E-002 -2.275793776234446E-002 3.990865319179688E-002 + -3.990865319179688E-002 3.990865319179688E-002 -0.198802473701767 + 1 In the unit cell, what is the index of neighbour 44 of atom 2 + -2.00000000000000 0.000000000000000E+000 1.00000000000000 + -2.275793776234446E-002 -3.990865319179688E-002 3.024480723743751E-002 + -3.990865319179688E-002 -0.198802473701767 3.990865319179688E-002 + 3.024480723743751E-002 3.990865319179688E-002 -2.275793776234446E-002 + 1 In the unit cell, what is the index of neighbour 45 of atom 2 + -2.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + -0.198802473701767 -3.990865319179688E-002 -3.990865319179688E-002 + -3.990865319179688E-002 -2.275793776234446E-002 -3.024480723743751E-002 + -3.990865319179688E-002 -3.024480723743751E-002 -2.275793776234446E-002 + 1 In the unit cell, what is the index of neighbour 46 of atom 2 + 0.000000000000000E+000 -2.00000000000000 0.000000000000000E+000 + -2.275793776234446E-002 -3.990865319179688E-002 -3.024480723743751E-002 + -3.990865319179688E-002 -0.198802473701767 -3.990865319179688E-002 + -3.024480723743751E-002 -3.990865319179688E-002 -2.275793776234446E-002 + 1 In the unit cell, what is the index of neighbour 47 of atom 2 + 0.000000000000000E+000 -2.00000000000000 1.00000000000000 + -0.198802473701767 -3.990865319179688E-002 3.990865319179688E-002 + -3.990865319179688E-002 -2.275793776234446E-002 3.024480723743751E-002 + 3.990865319179688E-002 3.024480723743751E-002 -2.275793776234446E-002 + 2 In the unit cell, what is the index of neighbour 48 of atom 2 + -1.00000000000000 -1.00000000000000 2.00000000000000 + -1.934888168368339E-002 2.223112964980448E-002 9.854261781446732E-006 + 2.223112964980448E-002 -1.934888168368339E-002 9.854261781446732E-006 + -4.516655032507769E-003 -4.516655032507769E-003 7.901611011601828E-003 + 2 In the unit cell, what is the index of neighbour 49 of atom 2 + 2.00000000000000 0.000000000000000E+000 -1.00000000000000 + -1.934888168368339E-002 -2.223112964980448E-002 9.854261781446732E-006 + -2.223112964980448E-002 -1.934888168368339E-002 -9.854261781446732E-006 + -4.516655032507769E-003 4.516655032507769E-003 7.901611011601828E-003 + 2 In the unit cell, what is the index of neighbour 50 of atom 2 + -2.00000000000000 0.000000000000000E+000 1.00000000000000 + -1.934888168368339E-002 -2.223112964980448E-002 -4.516655032507769E-003 + -2.223112964980448E-002 -1.934888168368339E-002 4.516655032507769E-003 + 9.854261781446732E-006 -9.854261781446732E-006 7.901611011601828E-003 + 2 In the unit cell, what is the index of neighbour 51 of atom 2 + -1.00000000000000 -1.00000000000000 0.000000000000000E+000 + -1.934888168368339E-002 2.223112964980448E-002 -9.854261781446732E-006 + 2.223112964980448E-002 -1.934888168368339E-002 -9.854261781446732E-006 + 4.516655032507769E-003 4.516655032507769E-003 7.901611011601828E-003 + 2 In the unit cell, what is the index of neighbour 52 of atom 2 + 0.000000000000000E+000 -2.00000000000000 1.00000000000000 + -1.934888168368339E-002 -2.223112964980448E-002 4.516655032507769E-003 + -2.223112964980448E-002 -1.934888168368339E-002 -4.516655032507769E-003 + -9.854261781446732E-006 9.854261781446732E-006 7.901611011601828E-003 + 2 In the unit cell, what is the index of neighbour 53 of atom 2 + 0.000000000000000E+000 2.00000000000000 -1.00000000000000 + -1.934888168368339E-002 -2.223112964980448E-002 -9.854261781446732E-006 + -2.223112964980448E-002 -1.934888168368339E-002 9.854261781446732E-006 + 4.516655032507769E-003 -4.516655032507769E-003 7.901611011601828E-003 + 2 In the unit cell, what is the index of neighbour 54 of atom 2 + 1.00000000000000 1.00000000000000 -2.00000000000000 + -1.934888168368339E-002 2.223112964980448E-002 -4.516655032507769E-003 + 2.223112964980448E-002 -1.934888168368339E-002 -4.516655032507769E-003 + 9.854261781446732E-006 9.854261781446732E-006 7.901611011601828E-003 + 2 In the unit cell, what is the index of neighbour 55 of atom 2 + 1.00000000000000 1.00000000000000 0.000000000000000E+000 + -1.934888168368339E-002 2.223112964980448E-002 4.516655032507769E-003 + 2.223112964980448E-002 -1.934888168368339E-002 4.516655032507769E-003 + -9.854261781446732E-006 -9.854261781446732E-006 7.901611011601828E-003 + 2 In the unit cell, what is the index of neighbour 56 of atom 2 + 1.00000000000000 -2.00000000000000 0.000000000000000E+000 + 7.901611011601828E-003 9.854261781446732E-006 -9.854261781446732E-006 + -4.516655032507769E-003 -1.934888168368339E-002 -2.223112964980448E-002 + 4.516655032507769E-003 -2.223112964980448E-002 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 57 of atom 2 + 1.00000000000000 -2.00000000000000 1.00000000000000 + -1.934888168368339E-002 -4.516655032507769E-003 2.223112964980448E-002 + 9.854261781446732E-006 7.901611011601828E-003 9.854261781446732E-006 + 2.223112964980448E-002 -4.516655032507769E-003 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 58 of atom 2 + 0.000000000000000E+000 1.00000000000000 1.00000000000000 + 7.901611011601828E-003 -9.854261781446732E-006 -9.854261781446732E-006 + 4.516655032507769E-003 -1.934888168368339E-002 2.223112964980448E-002 + 4.516655032507769E-003 2.223112964980448E-002 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 59 of atom 2 + -2.00000000000000 1.00000000000000 1.00000000000000 + 7.901611011601828E-003 9.854261781446732E-006 9.854261781446732E-006 + -4.516655032507769E-003 -1.934888168368339E-002 2.223112964980448E-002 + -4.516655032507769E-003 2.223112964980448E-002 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 60 of atom 2 + -2.00000000000000 1.00000000000000 0.000000000000000E+000 + -1.934888168368339E-002 -4.516655032507769E-003 -2.223112964980448E-002 + 9.854261781446732E-006 7.901611011601828E-003 -9.854261781446732E-006 + -2.223112964980448E-002 4.516655032507769E-003 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 61 of atom 2 + 1.00000000000000 0.000000000000000E+000 -2.00000000000000 + 7.901611011601828E-003 -9.854261781446732E-006 9.854261781446732E-006 + 4.516655032507769E-003 -1.934888168368339E-002 -2.223112964980448E-002 + -4.516655032507769E-003 -2.223112964980448E-002 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 62 of atom 2 + 2.00000000000000 -1.00000000000000 0.000000000000000E+000 + -1.934888168368339E-002 9.854261781446732E-006 -2.223112964980448E-002 + -4.516655032507769E-003 7.901611011601828E-003 4.516655032507769E-003 + -2.223112964980448E-002 -9.854261781446732E-006 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 63 of atom 2 + 1.00000000000000 0.000000000000000E+000 1.00000000000000 + -1.934888168368339E-002 4.516655032507769E-003 2.223112964980448E-002 + -9.854261781446732E-006 7.901611011601828E-003 -9.854261781446732E-006 + 2.223112964980448E-002 4.516655032507769E-003 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 64 of atom 2 + 2.00000000000000 -1.00000000000000 -1.00000000000000 + 7.901611011601828E-003 -4.516655032507769E-003 -4.516655032507769E-003 + 9.854261781446732E-006 -1.934888168368339E-002 2.223112964980448E-002 + 9.854261781446732E-006 2.223112964980448E-002 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 65 of atom 2 + -1.00000000000000 0.000000000000000E+000 2.00000000000000 + 7.901611011601828E-003 4.516655032507769E-003 -4.516655032507769E-003 + -9.854261781446732E-006 -1.934888168368339E-002 -2.223112964980448E-002 + 9.854261781446732E-006 -2.223112964980448E-002 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 66 of atom 2 + -1.00000000000000 0.000000000000000E+000 -1.00000000000000 + -1.934888168368339E-002 -9.854261781446732E-006 2.223112964980448E-002 + 4.516655032507769E-003 7.901611011601828E-003 4.516655032507769E-003 + 2.223112964980448E-002 -9.854261781446732E-006 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 67 of atom 2 + -1.00000000000000 2.00000000000000 -1.00000000000000 + -1.934888168368339E-002 9.854261781446732E-006 2.223112964980448E-002 + -4.516655032507769E-003 7.901611011601828E-003 -4.516655032507769E-003 + 2.223112964980448E-002 9.854261781446732E-006 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 68 of atom 2 + 0.000000000000000E+000 1.00000000000000 -2.00000000000000 + -1.934888168368339E-002 4.516655032507769E-003 -2.223112964980448E-002 + -9.854261781446732E-006 7.901611011601828E-003 9.854261781446732E-006 + -2.223112964980448E-002 -4.516655032507769E-003 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 69 of atom 2 + -1.00000000000000 2.00000000000000 0.000000000000000E+000 + 7.901611011601828E-003 -4.516655032507769E-003 4.516655032507769E-003 + 9.854261781446732E-006 -1.934888168368339E-002 -2.223112964980448E-002 + -9.854261781446732E-006 -2.223112964980448E-002 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 70 of atom 2 + 0.000000000000000E+000 -1.00000000000000 -1.00000000000000 + 7.901611011601828E-003 4.516655032507769E-003 4.516655032507769E-003 + -9.854261781446732E-006 -1.934888168368339E-002 2.223112964980448E-002 + -9.854261781446732E-006 2.223112964980448E-002 -1.934888168368339E-002 + 2 In the unit cell, what is the index of neighbour 71 of atom 2 + 0.000000000000000E+000 -1.00000000000000 2.00000000000000 + -1.934888168368339E-002 -9.854261781446732E-006 -2.223112964980448E-002 + 4.516655032507769E-003 7.901611011601828E-003 -4.516655032507769E-003 + -2.223112964980448E-002 9.854261781446732E-006 -1.934888168368339E-002 + 1 In the unit cell, what is the index of neighbour 72 of atom 2 + 1.00000000000000 1.00000000000000 -1.00000000000000 + 4.237335066600047E-003 1.444377446655564E-003 2.757006727406323E-003 + 1.444377446655564E-003 4.237335066600047E-003 2.757006727406323E-003 + 2.757006727406323E-003 2.757006727406323E-003 -1.598437955725645E-002 + 1 In the unit cell, what is the index of neighbour 73 of atom 2 + 1.00000000000000 -1.00000000000000 1.00000000000000 + 4.237335066600047E-003 2.757006727406323E-003 1.444377446655564E-003 + 2.757006727406323E-003 -1.598437955725645E-002 2.757006727406323E-003 + 1.444377446655564E-003 2.757006727406323E-003 4.237335066600047E-003 + 1 In the unit cell, what is the index of neighbour 74 of atom 2 + -2.00000000000000 1.00000000000000 1.00000000000000 + -1.598437955725645E-002 -2.757006727406323E-003 -2.757006727406323E-003 + -2.757006727406323E-003 4.237335066600047E-003 1.444377446655564E-003 + -2.757006727406323E-003 1.444377446655564E-003 4.237335066600047E-003 + 1 In the unit cell, what is the index of neighbour 75 of atom 2 + -1.00000000000000 1.00000000000000 1.00000000000000 + -1.598437955725645E-002 2.757006727406323E-003 2.757006727406323E-003 + 2.757006727406323E-003 4.237335066600047E-003 1.444377446655564E-003 + 2.757006727406323E-003 1.444377446655564E-003 4.237335066600047E-003 + 1 In the unit cell, what is the index of neighbour 76 of atom 2 + 1.00000000000000 1.00000000000000 -2.00000000000000 + 4.237335066600047E-003 1.444377446655564E-003 -2.757006727406323E-003 + 1.444377446655564E-003 4.237335066600047E-003 -2.757006727406323E-003 + -2.757006727406323E-003 -2.757006727406323E-003 -1.598437955725645E-002 + 1 In the unit cell, what is the index of neighbour 77 of atom 2 + 1.00000000000000 -2.00000000000000 1.00000000000000 + 4.237335066600047E-003 -2.757006727406323E-003 1.444377446655564E-003 + -2.757006727406323E-003 -1.598437955725645E-002 -2.757006727406323E-003 + 1.444377446655564E-003 -2.757006727406323E-003 4.237335066600047E-003 + 1 In the unit cell, what is the index of neighbour 78 of atom 2 + -1.00000000000000 1.00000000000000 -2.00000000000000 + 4.237335066600047E-003 2.757006727406323E-003 -1.444377446655564E-003 + 2.757006727406323E-003 -1.598437955725645E-002 -2.757006727406323E-003 + -1.444377446655564E-003 -2.757006727406323E-003 4.237335066600047E-003 + 1 In the unit cell, what is the index of neighbour 79 of atom 2 + 2.00000000000000 -1.00000000000000 -1.00000000000000 + 2.708357831057494E-002 1.951493298282922E-002 1.951493298282922E-002 + 1.951493298282922E-002 2.708357831057494E-002 -1.951493298282922E-002 + 1.951493298282922E-002 -1.951493298282922E-002 2.708357831057494E-002 + 1 In the unit cell, what is the index of neighbour 80 of atom 2 + -1.00000000000000 2.00000000000000 -1.00000000000000 + 2.708357831057494E-002 1.951493298282922E-002 -1.951493298282922E-002 + 1.951493298282922E-002 2.708357831057494E-002 1.951493298282922E-002 + -1.951493298282922E-002 1.951493298282922E-002 2.708357831057494E-002 + 1 In the unit cell, what is the index of neighbour 81 of atom 2 + -2.00000000000000 -1.00000000000000 1.00000000000000 + 4.237335066600047E-003 -1.444377446655564E-003 -2.757006727406323E-003 + -1.444377446655564E-003 4.237335066600047E-003 2.757006727406323E-003 + -2.757006727406323E-003 2.757006727406323E-003 -1.598437955725645E-002 + 1 In the unit cell, what is the index of neighbour 82 of atom 2 + -1.00000000000000 -2.00000000000000 1.00000000000000 + 4.237335066600047E-003 -1.444377446655564E-003 2.757006727406323E-003 + -1.444377446655564E-003 4.237335066600047E-003 -2.757006727406323E-003 + 2.757006727406323E-003 -2.757006727406323E-003 -1.598437955725645E-002 + 1 In the unit cell, what is the index of neighbour 83 of atom 2 + -1.00000000000000 -1.00000000000000 -1.00000000000000 + 2.708357831057494E-002 -1.951493298282922E-002 -1.951493298282922E-002 + -1.951493298282922E-002 2.708357831057494E-002 -1.951493298282922E-002 + -1.951493298282922E-002 -1.951493298282922E-002 2.708357831057494E-002 + 1 In the unit cell, what is the index of neighbour 84 of atom 2 + 1.00000000000000 -2.00000000000000 -1.00000000000000 + -1.598437955725645E-002 -2.757006727406323E-003 2.757006727406323E-003 + -2.757006727406323E-003 4.237335066600047E-003 -1.444377446655564E-003 + 2.757006727406323E-003 -1.444377446655564E-003 4.237335066600047E-003 + 1 In the unit cell, what is the index of neighbour 85 of atom 2 + -1.00000000000000 -1.00000000000000 2.00000000000000 + 2.708357831057494E-002 -1.951493298282922E-002 1.951493298282922E-002 + -1.951493298282922E-002 2.708357831057494E-002 1.951493298282922E-002 + 1.951493298282922E-002 1.951493298282922E-002 2.708357831057494E-002 + 1 In the unit cell, what is the index of neighbour 86 of atom 2 + 1.00000000000000 -1.00000000000000 -2.00000000000000 + -1.598437955725645E-002 2.757006727406323E-003 -2.757006727406323E-003 + 2.757006727406323E-003 4.237335066600047E-003 -1.444377446655564E-003 + -2.757006727406323E-003 -1.444377446655564E-003 4.237335066600047E-003 + 1 In the unit cell, what is the index of neighbour 87 of atom 2 + -2.00000000000000 1.00000000000000 -1.00000000000000 + 4.237335066600047E-003 -2.757006727406323E-003 -1.444377446655564E-003 + -2.757006727406323E-003 -1.598437955725645E-002 2.757006727406323E-003 + -1.444377446655564E-003 2.757006727406323E-003 4.237335066600047E-003 + 2 In the unit cell, what is the index of neighbour 88 of atom 2 + 0.000000000000000E+000 2.00000000000000 -2.00000000000000 + 9.406880752623402E-002 2.066122565385088E-002 -2.066122565385088E-002 + -2.066122565385088E-002 1.000280904971995E-002 6.701063457138197E-003 + 2.066122565385088E-002 6.701063457138197E-003 1.000280904971995E-002 + 2 In the unit cell, what is the index of neighbour 89 of atom 2 + 0.000000000000000E+000 -2.00000000000000 0.000000000000000E+000 + 1.000280904971995E-002 2.066122565385088E-002 -6.701063457138197E-003 + -2.066122565385088E-002 9.406880752623402E-002 -2.066122565385088E-002 + -6.701063457138197E-003 2.066122565385088E-002 1.000280904971995E-002 + 2 In the unit cell, what is the index of neighbour 90 of atom 2 + -2.00000000000000 0.000000000000000E+000 2.00000000000000 + 1.000280904971995E-002 2.066122565385088E-002 6.701063457138197E-003 + -2.066122565385088E-002 9.406880752623402E-002 2.066122565385088E-002 + 6.701063457138197E-003 -2.066122565385088E-002 1.000280904971995E-002 + 2 In the unit cell, what is the index of neighbour 91 of atom 2 + 2.00000000000000 0.000000000000000E+000 -2.00000000000000 + 1.000280904971995E-002 -2.066122565385088E-002 6.701063457138197E-003 + 2.066122565385088E-002 9.406880752623402E-002 -2.066122565385088E-002 + 6.701063457138197E-003 2.066122565385088E-002 1.000280904971995E-002 + 2 In the unit cell, what is the index of neighbour 92 of atom 2 + 0.000000000000000E+000 -2.00000000000000 2.00000000000000 + 9.406880752623402E-002 -2.066122565385088E-002 2.066122565385088E-002 + 2.066122565385088E-002 1.000280904971995E-002 6.701063457138197E-003 + -2.066122565385088E-002 6.701063457138197E-003 1.000280904971995E-002 + 2 In the unit cell, what is the index of neighbour 93 of atom 2 + 2.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 9.406880752623402E-002 2.066122565385088E-002 2.066122565385088E-002 + -2.066122565385088E-002 1.000280904971995E-002 -6.701063457138197E-003 + -2.066122565385088E-002 -6.701063457138197E-003 1.000280904971995E-002 + 2 In the unit cell, what is the index of neighbour 94 of atom 2 + 2.00000000000000 -2.00000000000000 0.000000000000000E+000 + 1.000280904971995E-002 6.701063457138197E-003 -2.066122565385088E-002 + 6.701063457138197E-003 1.000280904971995E-002 2.066122565385088E-002 + 2.066122565385088E-002 -2.066122565385088E-002 9.406880752623402E-002 + 2 In the unit cell, what is the index of neighbour 95 of atom 2 + 0.000000000000000E+000 2.00000000000000 0.000000000000000E+000 + 1.000280904971995E-002 -2.066122565385088E-002 -6.701063457138197E-003 + 2.066122565385088E-002 9.406880752623402E-002 2.066122565385088E-002 + -6.701063457138197E-003 -2.066122565385088E-002 1.000280904971995E-002 + 2 In the unit cell, what is the index of neighbour 96 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 2.00000000000000 + 1.000280904971995E-002 -6.701063457138197E-003 -2.066122565385088E-002 + -6.701063457138197E-003 1.000280904971995E-002 -2.066122565385088E-002 + 2.066122565385088E-002 2.066122565385088E-002 9.406880752623402E-002 + 2 In the unit cell, what is the index of neighbour 97 of atom 2 + -2.00000000000000 2.00000000000000 0.000000000000000E+000 + 1.000280904971995E-002 6.701063457138197E-003 2.066122565385088E-002 + 6.701063457138197E-003 1.000280904971995E-002 -2.066122565385088E-002 + -2.066122565385088E-002 2.066122565385088E-002 9.406880752623402E-002 + 2 In the unit cell, what is the index of neighbour 98 of atom 2 + -2.00000000000000 0.000000000000000E+000 0.000000000000000E+000 + 9.406880752623402E-002 -2.066122565385088E-002 -2.066122565385088E-002 + 2.066122565385088E-002 1.000280904971995E-002 -6.701063457138197E-003 + 2.066122565385088E-002 -6.701063457138197E-003 1.000280904971995E-002 + 2 In the unit cell, what is the index of neighbour 99 of atom 2 + 0.000000000000000E+000 0.000000000000000E+000 -2.00000000000000 + 1.000280904971995E-002 -6.701063457138197E-003 2.066122565385088E-002 + -6.701063457138197E-003 1.000280904971995E-002 2.066122565385088E-002 + -2.066122565385088E-002 -2.066122565385088E-002 9.406880752623402E-002 + 0 # This contains no information about Born charges or dielectric tensors + 10 Number of irreducible coordination shells + 2 0.0000000000 22.3724359362 number atoms in shell, radius, norm of forceconstant1 + 8 2.3665983419 7.6012346368 number atoms in shell, radius, norm of forceconstant2 + 24 3.8646389092 0.5870486207 number atoms in shell, radius, norm of forceconstant3 + 24 4.5316908114 0.0815824820 number atoms in shell, radius, norm of forceconstant4 + 12 5.4654247591 0.0218187183 number atoms in shell, radius, norm of forceconstant5 + 24 5.9558085521 0.2208134284 number atoms in shell, radius, norm of forceconstant6 + 48 6.6937509436 0.0429003577 number atoms in shell, radius, norm of forceconstant7 + 24 7.0997950257 0.0180551157 number atoms in shell, radius, norm of forceconstant8 + 8 7.0997950257 0.0669742958 number atoms in shell, radius, norm of forceconstant9 + 24 7.7292778184 0.1041460821 number atoms in shell, radius, norm of forceconstant10 + 0.000000000000 0.000000000000 0.000000000000 1 1 + 0.000000000000 0.000000000000 0.000000000000 2 1 + -0.250000000000 0.750000000000 -0.250000000000 1 2 + -0.250000000000 -0.250000000000 -0.250000000000 1 3 + 0.750000000000 -0.250000000000 -0.250000000000 1 4 + -0.250000000000 -0.250000000000 0.750000000000 1 5 + -0.750000000000 0.250000000000 0.250000000000 2 2 + 0.250000000000 0.250000000000 0.250000000000 2 3 + 0.250000000000 0.250000000000 -0.750000000000 2 4 + 0.250000000000 -0.750000000000 0.250000000000 2 5 + 1.000000000000 -1.000000000000 0.000000000000 1 6 + -1.000000000000 0.000000000000 1.000000000000 1 7 + 0.000000000000 -1.000000000000 0.000000000000 1 8 + -1.000000000000 0.000000000000 0.000000000000 1 9 + 0.000000000000 0.000000000000 1.000000000000 1 10 + -1.000000000000 1.000000000000 0.000000000000 1 11 + 0.000000000000 1.000000000000 -1.000000000000 1 12 + 0.000000000000 1.000000000000 0.000000000000 1 13 + 0.000000000000 0.000000000000 -1.000000000000 1 14 + 0.000000000000 -1.000000000000 1.000000000000 1 15 + 1.000000000000 0.000000000000 0.000000000000 1 16 + 1.000000000000 0.000000000000 -1.000000000000 1 17 + -1.000000000000 1.000000000000 0.000000000000 2 6 + 0.000000000000 1.000000000000 0.000000000000 2 7 + 0.000000000000 1.000000000000 -1.000000000000 2 8 + 1.000000000000 0.000000000000 0.000000000000 2 9 + -1.000000000000 0.000000000000 1.000000000000 2 10 + -1.000000000000 0.000000000000 0.000000000000 2 11 + 0.000000000000 0.000000000000 1.000000000000 2 12 + 0.000000000000 -1.000000000000 0.000000000000 2 13 + 0.000000000000 -1.000000000000 1.000000000000 2 14 + 1.000000000000 -1.000000000000 0.000000000000 2 15 + 1.000000000000 0.000000000000 -1.000000000000 2 16 + 0.000000000000 0.000000000000 -1.000000000000 2 17 + -1.250000000000 0.750000000000 0.750000000000 1 18 + 0.750000000000 0.750000000000 -0.250000000000 1 19 + -0.250000000000 0.750000000000 -1.250000000000 1 20 + -0.250000000000 -1.250000000000 0.750000000000 1 21 + -0.250000000000 0.750000000000 0.750000000000 1 22 + 0.750000000000 -1.250000000000 0.750000000000 1 23 + -1.250000000000 0.750000000000 -0.250000000000 1 24 + 0.750000000000 0.750000000000 -1.250000000000 1 25 + 0.750000000000 -0.250000000000 0.750000000000 1 26 + 0.750000000000 -0.250000000000 -1.250000000000 1 27 + 0.750000000000 -1.250000000000 -0.250000000000 1 28 + -1.250000000000 -0.250000000000 0.750000000000 1 29 + -0.750000000000 1.250000000000 0.250000000000 2 18 + -0.750000000000 0.250000000000 1.250000000000 2 19 + 0.250000000000 -0.750000000000 1.250000000000 2 20 + 0.250000000000 -0.750000000000 -0.750000000000 2 21 + -0.750000000000 1.250000000000 -0.750000000000 2 22 + -0.750000000000 -0.750000000000 0.250000000000 2 23 + -0.750000000000 -0.750000000000 1.250000000000 2 24 + 1.250000000000 0.250000000000 -0.750000000000 2 25 + 1.250000000000 -0.750000000000 0.250000000000 2 26 + 0.250000000000 1.250000000000 -0.750000000000 2 27 + 1.250000000000 -0.750000000000 -0.750000000000 2 28 + -0.750000000000 0.250000000000 -0.750000000000 2 29 + 1.000000000000 1.000000000000 -1.000000000000 1 30 + -1.000000000000 -1.000000000000 1.000000000000 1 31 + 1.000000000000 -1.000000000000 1.000000000000 1 32 + -1.000000000000 1.000000000000 -1.000000000000 1 33 + 1.000000000000 -1.000000000000 -1.000000000000 1 34 + -1.000000000000 1.000000000000 1.000000000000 1 35 + -1.000000000000 1.000000000000 1.000000000000 2 30 + 1.000000000000 -1.000000000000 -1.000000000000 2 31 + 1.000000000000 -1.000000000000 1.000000000000 2 32 + -1.000000000000 1.000000000000 -1.000000000000 2 33 + -1.000000000000 -1.000000000000 1.000000000000 2 34 + 1.000000000000 1.000000000000 -1.000000000000 2 35 + 1.750000000000 -0.250000000000 -0.250000000000 1 36 + -0.250000000000 -0.250000000000 -1.250000000000 1 37 + 1.750000000000 -0.250000000000 -1.250000000000 1 38 + 1.750000000000 -1.250000000000 -0.250000000000 1 39 + -0.250000000000 1.750000000000 -1.250000000000 1 40 + -0.250000000000 1.750000000000 -0.250000000000 1 41 + -0.250000000000 -0.250000000000 1.750000000000 1 42 + -1.250000000000 1.750000000000 -0.250000000000 1 43 + -0.250000000000 -1.250000000000 -0.250000000000 1 44 + -1.250000000000 -0.250000000000 -0.250000000000 1 45 + -0.250000000000 -1.250000000000 1.750000000000 1 46 + -1.250000000000 -0.250000000000 1.750000000000 1 47 + 1.250000000000 0.250000000000 -1.750000000000 2 36 + 1.250000000000 0.250000000000 0.250000000000 2 37 + 0.250000000000 0.250000000000 -1.750000000000 2 38 + 1.250000000000 -1.750000000000 0.250000000000 2 39 + 0.250000000000 1.250000000000 0.250000000000 2 40 + 0.250000000000 0.250000000000 1.250000000000 2 41 + 0.250000000000 1.250000000000 -1.750000000000 2 42 + -1.750000000000 1.250000000000 0.250000000000 2 43 + -1.750000000000 0.250000000000 1.250000000000 2 44 + -1.750000000000 0.250000000000 0.250000000000 2 45 + 0.250000000000 -1.750000000000 0.250000000000 2 46 + 0.250000000000 -1.750000000000 1.250000000000 2 47 + 1.000000000000 1.000000000000 -2.000000000000 1 48 + -1.000000000000 -1.000000000000 0.000000000000 1 49 + -1.000000000000 -1.000000000000 2.000000000000 1 50 + 0.000000000000 2.000000000000 -1.000000000000 1 51 + 2.000000000000 0.000000000000 -1.000000000000 1 52 + -2.000000000000 0.000000000000 1.000000000000 1 53 + 0.000000000000 -2.000000000000 1.000000000000 1 54 + 1.000000000000 1.000000000000 0.000000000000 1 55 + -1.000000000000 0.000000000000 2.000000000000 1 56 + 1.000000000000 -2.000000000000 1.000000000000 1 57 + -1.000000000000 0.000000000000 -1.000000000000 1 58 + 2.000000000000 -1.000000000000 0.000000000000 1 59 + 1.000000000000 0.000000000000 -2.000000000000 1 60 + 2.000000000000 -1.000000000000 -1.000000000000 1 61 + -2.000000000000 1.000000000000 0.000000000000 1 62 + 1.000000000000 0.000000000000 1.000000000000 1 63 + -2.000000000000 1.000000000000 1.000000000000 1 64 + 0.000000000000 -1.000000000000 -1.000000000000 1 65 + -1.000000000000 2.000000000000 -1.000000000000 1 66 + 0.000000000000 -1.000000000000 2.000000000000 1 67 + 1.000000000000 -2.000000000000 0.000000000000 1 68 + 0.000000000000 1.000000000000 1.000000000000 1 69 + -1.000000000000 2.000000000000 0.000000000000 1 70 + 0.000000000000 1.000000000000 -2.000000000000 1 71 + -1.000000000000 -1.000000000000 2.000000000000 2 48 + 2.000000000000 0.000000000000 -1.000000000000 2 49 + -2.000000000000 0.000000000000 1.000000000000 2 50 + -1.000000000000 -1.000000000000 0.000000000000 2 51 + 0.000000000000 -2.000000000000 1.000000000000 2 52 + 0.000000000000 2.000000000000 -1.000000000000 2 53 + 1.000000000000 1.000000000000 -2.000000000000 2 54 + 1.000000000000 1.000000000000 0.000000000000 2 55 + 1.000000000000 -2.000000000000 0.000000000000 2 56 + 1.000000000000 -2.000000000000 1.000000000000 2 57 + 0.000000000000 1.000000000000 1.000000000000 2 58 + -2.000000000000 1.000000000000 1.000000000000 2 59 + -2.000000000000 1.000000000000 0.000000000000 2 60 + 1.000000000000 0.000000000000 -2.000000000000 2 61 + 2.000000000000 -1.000000000000 0.000000000000 2 62 + 1.000000000000 0.000000000000 1.000000000000 2 63 + 2.000000000000 -1.000000000000 -1.000000000000 2 64 + -1.000000000000 0.000000000000 2.000000000000 2 65 + -1.000000000000 0.000000000000 -1.000000000000 2 66 + -1.000000000000 2.000000000000 -1.000000000000 2 67 + 0.000000000000 1.000000000000 -2.000000000000 2 68 + -1.000000000000 2.000000000000 0.000000000000 2 69 + 0.000000000000 -1.000000000000 -1.000000000000 2 70 + 0.000000000000 -1.000000000000 2.000000000000 2 71 + -1.250000000000 -1.250000000000 0.750000000000 1 72 + -1.250000000000 1.750000000000 -1.250000000000 1 73 + -1.250000000000 -1.250000000000 1.750000000000 1 74 + -1.250000000000 0.750000000000 -1.250000000000 1 75 + 0.750000000000 -1.250000000000 -1.250000000000 1 76 + 1.750000000000 -1.250000000000 -1.250000000000 1 77 + 1.750000000000 -1.250000000000 0.750000000000 1 78 + 0.750000000000 1.750000000000 -1.250000000000 1 79 + 1.750000000000 0.750000000000 -1.250000000000 1 81 + -1.250000000000 0.750000000000 1.750000000000 1 84 + 0.750000000000 -1.250000000000 1.750000000000 1 85 + -1.250000000000 1.750000000000 0.750000000000 1 86 + 1.250000000000 1.250000000000 -0.750000000000 2 72 + 1.250000000000 -0.750000000000 1.250000000000 2 73 + -1.750000000000 1.250000000000 1.250000000000 2 74 + -0.750000000000 1.250000000000 1.250000000000 2 75 + 1.250000000000 1.250000000000 -1.750000000000 2 76 + 1.250000000000 -1.750000000000 1.250000000000 2 77 + -0.750000000000 1.250000000000 -1.750000000000 2 78 + -1.750000000000 -0.750000000000 1.250000000000 2 81 + -0.750000000000 -1.750000000000 1.250000000000 2 82 + 1.250000000000 -1.750000000000 -0.750000000000 2 84 + 1.250000000000 -0.750000000000 -1.750000000000 2 86 + -1.750000000000 1.250000000000 -0.750000000000 2 87 + 0.750000000000 0.750000000000 0.750000000000 1 80 + -2.250000000000 0.750000000000 0.750000000000 1 82 + 0.750000000000 -2.250000000000 0.750000000000 1 83 + 0.750000000000 0.750000000000 -2.250000000000 1 87 + 2.250000000000 -0.750000000000 -0.750000000000 2 79 + -0.750000000000 2.250000000000 -0.750000000000 2 80 + -0.750000000000 -0.750000000000 -0.750000000000 2 83 + -0.750000000000 -0.750000000000 2.250000000000 2 85 + 2.000000000000 0.000000000000 -2.000000000000 1 88 + 0.000000000000 2.000000000000 0.000000000000 1 89 + 0.000000000000 0.000000000000 -2.000000000000 1 90 + 2.000000000000 0.000000000000 0.000000000000 1 91 + -2.000000000000 0.000000000000 0.000000000000 1 92 + 0.000000000000 -2.000000000000 0.000000000000 1 93 + -2.000000000000 0.000000000000 2.000000000000 1 94 + 0.000000000000 0.000000000000 2.000000000000 1 95 + 0.000000000000 2.000000000000 -2.000000000000 1 96 + 0.000000000000 -2.000000000000 2.000000000000 1 97 + 2.000000000000 -2.000000000000 0.000000000000 1 98 + -2.000000000000 2.000000000000 0.000000000000 1 99 + 0.000000000000 2.000000000000 -2.000000000000 2 88 + 0.000000000000 -2.000000000000 0.000000000000 2 89 + -2.000000000000 0.000000000000 2.000000000000 2 90 + 2.000000000000 0.000000000000 -2.000000000000 2 91 + 0.000000000000 -2.000000000000 2.000000000000 2 92 + 2.000000000000 0.000000000000 0.000000000000 2 93 + 2.000000000000 -2.000000000000 0.000000000000 2 94 + 0.000000000000 2.000000000000 0.000000000000 2 95 + 0.000000000000 0.000000000000 2.000000000000 2 96 + -2.000000000000 2.000000000000 0.000000000000 2 97 + -2.000000000000 0.000000000000 0.000000000000 2 98 + 0.000000000000 0.000000000000 -2.000000000000 2 99 diff --git a/abipy/test_files/Si_tdep.ssposcar b/abipy/test_files/Si_tdep.ssposcar new file mode 100644 index 000000000..656914eb8 --- /dev/null +++ b/abipy/test_files/Si_tdep.ssposcar @@ -0,0 +1,258 @@ + 5x5x5 supercell + 5.465424759054 + 0.00000000000000 2.50000000000000 2.50000000000000 + 2.50000000000000 0.00000000000000 2.50000000000000 + 2.50000000000000 2.50000000000000 0.00000000000000 + Si + 250 + Direct coordinates + 0.05000000000000 0.05000000000000 0.05000000000000 site 1 species 1: Si + 0.05000000000000 0.05000000000000 0.25000000000000 site 2 species 1: Si + 0.05000000000000 0.05000000000000 0.45000000000000 site 3 species 1: Si + 0.05000000000000 0.05000000000000 0.65000000000000 site 4 species 1: Si + 0.05000000000000 0.05000000000000 0.85000000000000 site 5 species 1: Si + 0.05000000000000 0.25000000000000 0.05000000000000 site 6 species 1: Si + 0.05000000000000 0.25000000000000 0.25000000000000 site 7 species 1: Si + 0.05000000000000 0.25000000000000 0.45000000000000 site 8 species 1: Si + 0.05000000000000 0.25000000000000 0.65000000000000 site 9 species 1: Si + 0.05000000000000 0.25000000000000 0.85000000000000 site 10 species 1: Si + 0.05000000000000 0.45000000000000 0.05000000000000 site 11 species 1: Si + 0.05000000000000 0.45000000000000 0.25000000000000 site 12 species 1: Si + 0.05000000000000 0.45000000000000 0.45000000000000 site 13 species 1: Si + 0.05000000000000 0.45000000000000 0.65000000000000 site 14 species 1: Si + 0.05000000000000 0.45000000000000 0.85000000000000 site 15 species 1: Si + 0.05000000000000 0.65000000000000 0.05000000000000 site 16 species 1: Si + 0.05000000000000 0.65000000000000 0.25000000000000 site 17 species 1: Si + 0.05000000000000 0.65000000000000 0.45000000000000 site 18 species 1: Si + 0.05000000000000 0.65000000000000 0.65000000000000 site 19 species 1: Si + 0.05000000000000 0.65000000000000 0.85000000000000 site 20 species 1: Si + 0.05000000000000 0.85000000000000 0.05000000000000 site 21 species 1: Si + 0.05000000000000 0.85000000000000 0.25000000000000 site 22 species 1: Si + 0.05000000000000 0.85000000000000 0.45000000000000 site 23 species 1: Si + 0.05000000000000 0.85000000000000 0.65000000000000 site 24 species 1: Si + 0.05000000000000 0.85000000000000 0.85000000000000 site 25 species 1: Si + 0.25000000000000 0.05000000000000 0.05000000000000 site 26 species 1: Si + 0.25000000000000 0.05000000000000 0.25000000000000 site 27 species 1: Si + 0.25000000000000 0.05000000000000 0.45000000000000 site 28 species 1: Si + 0.25000000000000 0.05000000000000 0.65000000000000 site 29 species 1: Si + 0.25000000000000 0.05000000000000 0.85000000000000 site 30 species 1: Si + 0.25000000000000 0.25000000000000 0.05000000000000 site 31 species 1: Si + 0.25000000000000 0.25000000000000 0.25000000000000 site 32 species 1: Si + 0.25000000000000 0.25000000000000 0.45000000000000 site 33 species 1: Si + 0.25000000000000 0.25000000000000 0.65000000000000 site 34 species 1: Si + 0.25000000000000 0.25000000000000 0.85000000000000 site 35 species 1: Si + 0.25000000000000 0.45000000000000 0.05000000000000 site 36 species 1: Si + 0.25000000000000 0.45000000000000 0.25000000000000 site 37 species 1: Si + 0.25000000000000 0.45000000000000 0.45000000000000 site 38 species 1: Si + 0.25000000000000 0.45000000000000 0.65000000000000 site 39 species 1: Si + 0.25000000000000 0.45000000000000 0.85000000000000 site 40 species 1: Si + 0.25000000000000 0.65000000000000 0.05000000000000 site 41 species 1: Si + 0.25000000000000 0.65000000000000 0.25000000000000 site 42 species 1: Si + 0.25000000000000 0.65000000000000 0.45000000000000 site 43 species 1: Si + 0.25000000000000 0.65000000000000 0.65000000000000 site 44 species 1: Si + 0.25000000000000 0.65000000000000 0.85000000000000 site 45 species 1: Si + 0.25000000000000 0.85000000000000 0.05000000000000 site 46 species 1: Si + 0.25000000000000 0.85000000000000 0.25000000000000 site 47 species 1: Si + 0.25000000000000 0.85000000000000 0.45000000000000 site 48 species 1: Si + 0.25000000000000 0.85000000000000 0.65000000000000 site 49 species 1: Si + 0.25000000000000 0.85000000000000 0.85000000000000 site 50 species 1: Si + 0.45000000000000 0.05000000000000 0.05000000000000 site 51 species 1: Si + 0.45000000000000 0.05000000000000 0.25000000000000 site 52 species 1: Si + 0.45000000000000 0.05000000000000 0.45000000000000 site 53 species 1: Si + 0.45000000000000 0.05000000000000 0.65000000000000 site 54 species 1: Si + 0.45000000000000 0.05000000000000 0.85000000000000 site 55 species 1: Si + 0.45000000000000 0.25000000000000 0.05000000000000 site 56 species 1: Si + 0.45000000000000 0.25000000000000 0.25000000000000 site 57 species 1: Si + 0.45000000000000 0.25000000000000 0.45000000000000 site 58 species 1: Si + 0.45000000000000 0.25000000000000 0.65000000000000 site 59 species 1: Si + 0.45000000000000 0.25000000000000 0.85000000000000 site 60 species 1: Si + 0.45000000000000 0.45000000000000 0.05000000000000 site 61 species 1: Si + 0.45000000000000 0.45000000000000 0.25000000000000 site 62 species 1: Si + 0.45000000000000 0.45000000000000 0.45000000000000 site 63 species 1: Si + 0.45000000000000 0.45000000000000 0.65000000000000 site 64 species 1: Si + 0.45000000000000 0.45000000000000 0.85000000000000 site 65 species 1: Si + 0.45000000000000 0.65000000000000 0.05000000000000 site 66 species 1: Si + 0.45000000000000 0.65000000000000 0.25000000000000 site 67 species 1: Si + 0.45000000000000 0.65000000000000 0.45000000000000 site 68 species 1: Si + 0.45000000000000 0.65000000000000 0.65000000000000 site 69 species 1: Si + 0.45000000000000 0.65000000000000 0.85000000000000 site 70 species 1: Si + 0.45000000000000 0.85000000000000 0.05000000000000 site 71 species 1: Si + 0.45000000000000 0.85000000000000 0.25000000000000 site 72 species 1: Si + 0.45000000000000 0.85000000000000 0.45000000000000 site 73 species 1: Si + 0.45000000000000 0.85000000000000 0.65000000000000 site 74 species 1: Si + 0.45000000000000 0.85000000000000 0.85000000000000 site 75 species 1: Si + 0.65000000000000 0.05000000000000 0.05000000000000 site 76 species 1: Si + 0.65000000000000 0.05000000000000 0.25000000000000 site 77 species 1: Si + 0.65000000000000 0.05000000000000 0.45000000000000 site 78 species 1: Si + 0.65000000000000 0.05000000000000 0.65000000000000 site 79 species 1: Si + 0.65000000000000 0.05000000000000 0.85000000000000 site 80 species 1: Si + 0.65000000000000 0.25000000000000 0.05000000000000 site 81 species 1: Si + 0.65000000000000 0.25000000000000 0.25000000000000 site 82 species 1: Si + 0.65000000000000 0.25000000000000 0.45000000000000 site 83 species 1: Si + 0.65000000000000 0.25000000000000 0.65000000000000 site 84 species 1: Si + 0.65000000000000 0.25000000000000 0.85000000000000 site 85 species 1: Si + 0.65000000000000 0.45000000000000 0.05000000000000 site 86 species 1: Si + 0.65000000000000 0.45000000000000 0.25000000000000 site 87 species 1: Si + 0.65000000000000 0.45000000000000 0.45000000000000 site 88 species 1: Si + 0.65000000000000 0.45000000000000 0.65000000000000 site 89 species 1: Si + 0.65000000000000 0.45000000000000 0.85000000000000 site 90 species 1: Si + 0.65000000000000 0.65000000000000 0.05000000000000 site 91 species 1: Si + 0.65000000000000 0.65000000000000 0.25000000000000 site 92 species 1: Si + 0.65000000000000 0.65000000000000 0.45000000000000 site 93 species 1: Si + 0.65000000000000 0.65000000000000 0.65000000000000 site 94 species 1: Si + 0.65000000000000 0.65000000000000 0.85000000000000 site 95 species 1: Si + 0.65000000000000 0.85000000000000 0.05000000000000 site 96 species 1: Si + 0.65000000000000 0.85000000000000 0.25000000000000 site 97 species 1: Si + 0.65000000000000 0.85000000000000 0.45000000000000 site 98 species 1: Si + 0.65000000000000 0.85000000000000 0.65000000000000 site 99 species 1: Si + 0.65000000000000 0.85000000000000 0.85000000000000 site 100 species 1: Si + 0.85000000000000 0.05000000000000 0.05000000000000 site 101 species 1: Si + 0.85000000000000 0.05000000000000 0.25000000000000 site 102 species 1: Si + 0.85000000000000 0.05000000000000 0.45000000000000 site 103 species 1: Si + 0.85000000000000 0.05000000000000 0.65000000000000 site 104 species 1: Si + 0.85000000000000 0.05000000000000 0.85000000000000 site 105 species 1: Si + 0.85000000000000 0.25000000000000 0.05000000000000 site 106 species 1: Si + 0.85000000000000 0.25000000000000 0.25000000000000 site 107 species 1: Si + 0.85000000000000 0.25000000000000 0.45000000000000 site 108 species 1: Si + 0.85000000000000 0.25000000000000 0.65000000000000 site 109 species 1: Si + 0.85000000000000 0.25000000000000 0.85000000000000 site 110 species 1: Si + 0.85000000000000 0.45000000000000 0.05000000000000 site 111 species 1: Si + 0.85000000000000 0.45000000000000 0.25000000000000 site 112 species 1: Si + 0.85000000000000 0.45000000000000 0.45000000000000 site 113 species 1: Si + 0.85000000000000 0.45000000000000 0.65000000000000 site 114 species 1: Si + 0.85000000000000 0.45000000000000 0.85000000000000 site 115 species 1: Si + 0.85000000000000 0.65000000000000 0.05000000000000 site 116 species 1: Si + 0.85000000000000 0.65000000000000 0.25000000000000 site 117 species 1: Si + 0.85000000000000 0.65000000000000 0.45000000000000 site 118 species 1: Si + 0.85000000000000 0.65000000000000 0.65000000000000 site 119 species 1: Si + 0.85000000000000 0.65000000000000 0.85000000000000 site 120 species 1: Si + 0.85000000000000 0.85000000000000 0.05000000000000 site 121 species 1: Si + 0.85000000000000 0.85000000000000 0.25000000000000 site 122 species 1: Si + 0.85000000000000 0.85000000000000 0.45000000000000 site 123 species 1: Si + 0.85000000000000 0.85000000000000 0.65000000000000 site 124 species 1: Si + 0.85000000000000 0.85000000000000 0.85000000000000 site 125 species 1: Si + 0.00000000000000 0.00000000000000 0.00000000000000 site 126 species 1: Si + 0.00000000000000 0.00000000000000 0.20000000000000 site 127 species 1: Si + 0.00000000000000 0.00000000000000 0.40000000000000 site 128 species 1: Si + 0.00000000000000 0.00000000000000 0.60000000000000 site 129 species 1: Si + 0.00000000000000 0.00000000000000 0.80000000000000 site 130 species 1: Si + 0.00000000000000 0.20000000000000 0.00000000000000 site 131 species 1: Si + 0.00000000000000 0.20000000000000 0.20000000000000 site 132 species 1: Si + 0.00000000000000 0.20000000000000 0.40000000000000 site 133 species 1: Si + 0.00000000000000 0.20000000000000 0.60000000000000 site 134 species 1: Si + 0.00000000000000 0.20000000000000 0.80000000000000 site 135 species 1: Si + 0.00000000000000 0.40000000000000 0.00000000000000 site 136 species 1: Si + 0.00000000000000 0.40000000000000 0.20000000000000 site 137 species 1: Si + 0.00000000000000 0.40000000000000 0.40000000000000 site 138 species 1: Si + 0.00000000000000 0.40000000000000 0.60000000000000 site 139 species 1: Si + 0.00000000000000 0.40000000000000 0.80000000000000 site 140 species 1: Si + 0.00000000000000 0.60000000000000 0.00000000000000 site 141 species 1: Si + 0.00000000000000 0.60000000000000 0.20000000000000 site 142 species 1: Si + 0.00000000000000 0.60000000000000 0.40000000000000 site 143 species 1: Si + 0.00000000000000 0.60000000000000 0.60000000000000 site 144 species 1: Si + 0.00000000000000 0.60000000000000 0.80000000000000 site 145 species 1: Si + 0.00000000000000 0.80000000000000 0.00000000000000 site 146 species 1: Si + 0.00000000000000 0.80000000000000 0.20000000000000 site 147 species 1: Si + 0.00000000000000 0.80000000000000 0.40000000000000 site 148 species 1: Si + 0.00000000000000 0.80000000000000 0.60000000000000 site 149 species 1: Si + 0.00000000000000 0.80000000000000 0.80000000000000 site 150 species 1: Si + 0.20000000000000 0.00000000000000 0.00000000000000 site 151 species 1: Si + 0.20000000000000 0.00000000000000 0.20000000000000 site 152 species 1: Si + 0.20000000000000 0.00000000000000 0.40000000000000 site 153 species 1: Si + 0.20000000000000 0.00000000000000 0.60000000000000 site 154 species 1: Si + 0.20000000000000 0.00000000000000 0.80000000000000 site 155 species 1: Si + 0.20000000000000 0.20000000000000 0.00000000000000 site 156 species 1: Si + 0.20000000000000 0.20000000000000 0.20000000000000 site 157 species 1: Si + 0.20000000000000 0.20000000000000 0.40000000000000 site 158 species 1: Si + 0.20000000000000 0.20000000000000 0.60000000000000 site 159 species 1: Si + 0.20000000000000 0.20000000000000 0.80000000000000 site 160 species 1: Si + 0.20000000000000 0.40000000000000 0.00000000000000 site 161 species 1: Si + 0.20000000000000 0.40000000000000 0.20000000000000 site 162 species 1: Si + 0.20000000000000 0.40000000000000 0.40000000000000 site 163 species 1: Si + 0.20000000000000 0.40000000000000 0.60000000000000 site 164 species 1: Si + 0.20000000000000 0.40000000000000 0.80000000000000 site 165 species 1: Si + 0.20000000000000 0.60000000000000 0.00000000000000 site 166 species 1: Si + 0.20000000000000 0.60000000000000 0.20000000000000 site 167 species 1: Si + 0.20000000000000 0.60000000000000 0.40000000000000 site 168 species 1: Si + 0.20000000000000 0.60000000000000 0.60000000000000 site 169 species 1: Si + 0.20000000000000 0.60000000000000 0.80000000000000 site 170 species 1: Si + 0.20000000000000 0.80000000000000 0.00000000000000 site 171 species 1: Si + 0.20000000000000 0.80000000000000 0.20000000000000 site 172 species 1: Si + 0.20000000000000 0.80000000000000 0.40000000000000 site 173 species 1: Si + 0.20000000000000 0.80000000000000 0.60000000000000 site 174 species 1: Si + 0.20000000000000 0.80000000000000 0.80000000000000 site 175 species 1: Si + 0.40000000000000 0.00000000000000 0.00000000000000 site 176 species 1: Si + 0.40000000000000 0.00000000000000 0.20000000000000 site 177 species 1: Si + 0.40000000000000 0.00000000000000 0.40000000000000 site 178 species 1: Si + 0.40000000000000 0.00000000000000 0.60000000000000 site 179 species 1: Si + 0.40000000000000 0.00000000000000 0.80000000000000 site 180 species 1: Si + 0.40000000000000 0.20000000000000 0.00000000000000 site 181 species 1: Si + 0.40000000000000 0.20000000000000 0.20000000000000 site 182 species 1: Si + 0.40000000000000 0.20000000000000 0.40000000000000 site 183 species 1: Si + 0.40000000000000 0.20000000000000 0.60000000000000 site 184 species 1: Si + 0.40000000000000 0.20000000000000 0.80000000000000 site 185 species 1: Si + 0.40000000000000 0.40000000000000 0.00000000000000 site 186 species 1: Si + 0.40000000000000 0.40000000000000 0.20000000000000 site 187 species 1: Si + 0.40000000000000 0.40000000000000 0.40000000000000 site 188 species 1: Si + 0.40000000000000 0.40000000000000 0.60000000000000 site 189 species 1: Si + 0.40000000000000 0.40000000000000 0.80000000000000 site 190 species 1: Si + 0.40000000000000 0.60000000000000 0.00000000000000 site 191 species 1: Si + 0.40000000000000 0.60000000000000 0.20000000000000 site 192 species 1: Si + 0.40000000000000 0.60000000000000 0.40000000000000 site 193 species 1: Si + 0.40000000000000 0.60000000000000 0.60000000000000 site 194 species 1: Si + 0.40000000000000 0.60000000000000 0.80000000000000 site 195 species 1: Si + 0.40000000000000 0.80000000000000 0.00000000000000 site 196 species 1: Si + 0.40000000000000 0.80000000000000 0.20000000000000 site 197 species 1: Si + 0.40000000000000 0.80000000000000 0.40000000000000 site 198 species 1: Si + 0.40000000000000 0.80000000000000 0.60000000000000 site 199 species 1: Si + 0.40000000000000 0.80000000000000 0.80000000000000 site 200 species 1: Si + 0.60000000000000 0.00000000000000 0.00000000000000 site 201 species 1: Si + 0.60000000000000 0.00000000000000 0.20000000000000 site 202 species 1: Si + 0.60000000000000 0.00000000000000 0.40000000000000 site 203 species 1: Si + 0.60000000000000 0.00000000000000 0.60000000000000 site 204 species 1: Si + 0.60000000000000 0.00000000000000 0.80000000000000 site 205 species 1: Si + 0.60000000000000 0.20000000000000 0.00000000000000 site 206 species 1: Si + 0.60000000000000 0.20000000000000 0.20000000000000 site 207 species 1: Si + 0.60000000000000 0.20000000000000 0.40000000000000 site 208 species 1: Si + 0.60000000000000 0.20000000000000 0.60000000000000 site 209 species 1: Si + 0.60000000000000 0.20000000000000 0.80000000000000 site 210 species 1: Si + 0.60000000000000 0.40000000000000 0.00000000000000 site 211 species 1: Si + 0.60000000000000 0.40000000000000 0.20000000000000 site 212 species 1: Si + 0.60000000000000 0.40000000000000 0.40000000000000 site 213 species 1: Si + 0.60000000000000 0.40000000000000 0.60000000000000 site 214 species 1: Si + 0.60000000000000 0.40000000000000 0.80000000000000 site 215 species 1: Si + 0.60000000000000 0.60000000000000 0.00000000000000 site 216 species 1: Si + 0.60000000000000 0.60000000000000 0.20000000000000 site 217 species 1: Si + 0.60000000000000 0.60000000000000 0.40000000000000 site 218 species 1: Si + 0.60000000000000 0.60000000000000 0.60000000000000 site 219 species 1: Si + 0.60000000000000 0.60000000000000 0.80000000000000 site 220 species 1: Si + 0.60000000000000 0.80000000000000 0.00000000000000 site 221 species 1: Si + 0.60000000000000 0.80000000000000 0.20000000000000 site 222 species 1: Si + 0.60000000000000 0.80000000000000 0.40000000000000 site 223 species 1: Si + 0.60000000000000 0.80000000000000 0.60000000000000 site 224 species 1: Si + 0.60000000000000 0.80000000000000 0.80000000000000 site 225 species 1: Si + 0.80000000000000 0.00000000000000 0.00000000000000 site 226 species 1: Si + 0.80000000000000 0.00000000000000 0.20000000000000 site 227 species 1: Si + 0.80000000000000 0.00000000000000 0.40000000000000 site 228 species 1: Si + 0.80000000000000 0.00000000000000 0.60000000000000 site 229 species 1: Si + 0.80000000000000 0.00000000000000 0.80000000000000 site 230 species 1: Si + 0.80000000000000 0.20000000000000 0.00000000000000 site 231 species 1: Si + 0.80000000000000 0.20000000000000 0.20000000000000 site 232 species 1: Si + 0.80000000000000 0.20000000000000 0.40000000000000 site 233 species 1: Si + 0.80000000000000 0.20000000000000 0.60000000000000 site 234 species 1: Si + 0.80000000000000 0.20000000000000 0.80000000000000 site 235 species 1: Si + 0.80000000000000 0.40000000000000 0.00000000000000 site 236 species 1: Si + 0.80000000000000 0.40000000000000 0.20000000000000 site 237 species 1: Si + 0.80000000000000 0.40000000000000 0.40000000000000 site 238 species 1: Si + 0.80000000000000 0.40000000000000 0.60000000000000 site 239 species 1: Si + 0.80000000000000 0.40000000000000 0.80000000000000 site 240 species 1: Si + 0.80000000000000 0.60000000000000 0.00000000000000 site 241 species 1: Si + 0.80000000000000 0.60000000000000 0.20000000000000 site 242 species 1: Si + 0.80000000000000 0.60000000000000 0.40000000000000 site 243 species 1: Si + 0.80000000000000 0.60000000000000 0.60000000000000 site 244 species 1: Si + 0.80000000000000 0.60000000000000 0.80000000000000 site 245 species 1: Si + 0.80000000000000 0.80000000000000 0.00000000000000 site 246 species 1: Si + 0.80000000000000 0.80000000000000 0.20000000000000 site 247 species 1: Si + 0.80000000000000 0.80000000000000 0.40000000000000 site 248 species 1: Si + 0.80000000000000 0.80000000000000 0.60000000000000 site 249 species 1: Si + 0.80000000000000 0.80000000000000 0.80000000000000 site 250 species 1: Si diff --git a/abipy/test_files/Si_tdep.ucposcar b/abipy/test_files/Si_tdep.ucposcar new file mode 100644 index 000000000..1da252460 --- /dev/null +++ b/abipy/test_files/Si_tdep.ucposcar @@ -0,0 +1,13 @@ +Si2 + 1.00000000000000 + 0.0000000000000000 2.7327123795268333 2.7327123795268333 + 2.7327123795268333 0.0000000000000000 2.7327123795268333 + 2.7327123795268333 2.7327123795268333 0.0000000000000000 + Si + 2 +Direct + 0.2500000000000000 0.2500000000000000 0.2500000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 + + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 diff --git a/abipy/test_files/ion_ioncell_relax_ion_input.json b/abipy/test_files/ion_ioncell_relax_ion_input.json new file mode 100644 index 000000000..c36212b91 --- /dev/null +++ b/abipy/test_files/ion_ioncell_relax_ion_input.json @@ -0,0 +1,203 @@ +{ + "structure": { + "@module": "abipy.core.structure", + "@class": "Structure", + "charge": 0.0, + "lattice": { + "matrix": [ + [ + 3.3488982567096763, + 0.0, + 1.9334873100000005 + ], + [ + 1.1162994189032256, + 3.1573715557642927, + 1.9334873100000005 + ], + [ + 0.0, + 0.0, + 3.86697462 + ] + ], + "a": 3.86697462, + "b": 3.86697462, + "c": 3.86697462, + "alpha": 59.99999999999999, + "beta": 59.99999999999999, + "gamma": 59.99999999999999, + "volume": 40.88829179346891 + }, + "sites": [ + { + "species": [ + { + "element": "Si", + "occu": 1.0 + } + ], + "abc": [ + 0.0, + 0.0, + 0.0 + ], + "xyz": [ + 0.0, + 0.0, + 0.0 + ], + "label": "Si", + "properties": {} + }, + { + "species": [ + { + "element": "Si", + "occu": 1.0 + } + ], + "abc": [ + 0.25, + 0.25, + 0.25 + ], + "xyz": [ + 1.1162994189032256, + 0.7893428889410732, + 1.9334873100000003 + ], + "label": "Si", + "properties": {} + } + ] + }, + "pseudos": [ + { + "basename": "14si.pspnc", + "type": "NcAbinitPseudo", + "symbol": "Si", + "Z": 14, + "Z_val": 4.0, + "l_max": 2, + "md5": "3916b143991b1cfa1542b130be320e5e", + "filepath": "/home/davidwaroquiers/PycharmProjects/abipy_dw/abipy/data/pseudos/14si.pspnc", + "@module": "pymatgen.io.abinit.pseudos", + "@class": "NcAbinitPseudo" + } + ], + "comment": null, + "decorators": [], + "abi_args": [ + [ + "ecut", + 2 + ], + [ + "pawecutdg", + null + ], + [ + "spinat", + [ + [ + 0.0, + 0.0, + 0.6 + ], + [ + 0.0, + 0.0, + 0.6 + ] + ] + ], + [ + "nsppol", + 2 + ], + [ + "nspinor", + 1 + ], + [ + "nspden", + 2 + ], + [ + "nband", + 16 + ], + [ + "fband", + null + ], + [ + "charge", + 0.0 + ], + [ + "occopt", + 3 + ], + [ + "tsmear", + 0.0036749322175655 + ], + [ + "ngkpt", + [ + 2, + 2, + 2 + ] + ], + [ + "shiftk", + [ + [ + 0.5, + 0.5, + 0.5 + ] + ] + ], + [ + "nshiftk", + 1 + ], + [ + "kptopt", + 1 + ], + [ + "chksymbreak", + 0 + ], + [ + "ionmov", + 3 + ], + [ + "optcell", + 0 + ], + [ + "ntime", + 80 + ], + [ + "tolmxf", + null + ], + [ + "tolrff", + 0.02 + ] + ], + "tags": [], + "enforce_znucl": null, + "enforce_typat": null, + "@module": "abipy.abio.inputs", + "@class": "AbinitInput" +} \ No newline at end of file diff --git a/abipy/test_files/ion_ioncell_relax_ioncell_input.json b/abipy/test_files/ion_ioncell_relax_ioncell_input.json new file mode 100644 index 000000000..779f0b316 --- /dev/null +++ b/abipy/test_files/ion_ioncell_relax_ioncell_input.json @@ -0,0 +1,219 @@ +{ + "structure": { + "@module": "abipy.core.structure", + "@class": "Structure", + "charge": 0.0, + "lattice": { + "matrix": [ + [ + 3.3488982567096763, + 0.0, + 1.9334873100000005 + ], + [ + 1.1162994189032256, + 3.1573715557642927, + 1.9334873100000005 + ], + [ + 0.0, + 0.0, + 3.86697462 + ] + ], + "a": 3.86697462, + "b": 3.86697462, + "c": 3.86697462, + "alpha": 59.99999999999999, + "beta": 59.99999999999999, + "gamma": 59.99999999999999, + "volume": 40.88829179346891 + }, + "sites": [ + { + "species": [ + { + "element": "Si", + "occu": 1.0 + } + ], + "abc": [ + 0.0, + 0.0, + 0.0 + ], + "xyz": [ + 0.0, + 0.0, + 0.0 + ], + "label": "Si", + "properties": {} + }, + { + "species": [ + { + "element": "Si", + "occu": 1.0 + } + ], + "abc": [ + 0.25, + 0.25, + 0.25 + ], + "xyz": [ + 1.1162994189032256, + 0.7893428889410732, + 1.9334873100000003 + ], + "label": "Si", + "properties": {} + } + ] + }, + "pseudos": [ + { + "basename": "14si.pspnc", + "type": "NcAbinitPseudo", + "symbol": "Si", + "Z": 14, + "Z_val": 4.0, + "l_max": 2, + "md5": "3916b143991b1cfa1542b130be320e5e", + "filepath": "/home/davidwaroquiers/PycharmProjects/abipy_dw/abipy/data/pseudos/14si.pspnc", + "@module": "pymatgen.io.abinit.pseudos", + "@class": "NcAbinitPseudo" + } + ], + "comment": null, + "decorators": [], + "abi_args": [ + [ + "ecut", + 2 + ], + [ + "pawecutdg", + null + ], + [ + "spinat", + [ + [ + 0.0, + 0.0, + 0.6 + ], + [ + 0.0, + 0.0, + 0.6 + ] + ] + ], + [ + "nsppol", + 2 + ], + [ + "nspinor", + 1 + ], + [ + "nspden", + 2 + ], + [ + "nband", + 16 + ], + [ + "fband", + null + ], + [ + "charge", + 0.0 + ], + [ + "occopt", + 3 + ], + [ + "tsmear", + 0.0036749322175655 + ], + [ + "ngkpt", + [ + 2, + 2, + 2 + ] + ], + [ + "shiftk", + [ + [ + 0.5, + 0.5, + 0.5 + ] + ] + ], + [ + "nshiftk", + 1 + ], + [ + "kptopt", + 1 + ], + [ + "chksymbreak", + 0 + ], + [ + "ionmov", + 3 + ], + [ + "optcell", + 2 + ], + [ + "ntime", + 80 + ], + [ + "tolmxf", + null + ], + [ + "dilatmx", + 1.05 + ], + [ + "ecutsm", + 0.5 + ], + [ + "strfact", + null + ], + [ + "strtarget", + null + ], + [ + "tolrff", + 0.02 + ] + ], + "tags": [], + "enforce_znucl": null, + "enforce_typat": null, + "@module": "abipy.abio.inputs", + "@class": "AbinitInput" +} \ No newline at end of file diff --git a/abipy/test_files/taskmanager.yml b/abipy/test_files/taskmanager.yml index f5d5d7f23..edfad6f17 100644 --- a/abipy/test_files/taskmanager.yml +++ b/abipy/test_files/taskmanager.yml @@ -6,7 +6,7 @@ hardware: &hardware num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB job: &job mpi_runner: mpirun diff --git a/abipy/tools/bessel.py b/abipy/tools/bessel.py index 182bb2acf..92563c92f 100644 --- a/abipy/tools/bessel.py +++ b/abipy/tools/bessel.py @@ -1,11 +1,17 @@ # coding: utf-8 -"""This module provides functions to compute integrals of Bessel functions.""" +""" +This module provides functions to compute integrals of Bessel functions. +""" +from __future__ import annotations + import numpy as np from scipy.special import spherical_jn from scipy.interpolate import UnivariateSpline -from scipy.integrate import simps # cumtrapz, quad - +try: + from scipy.integrate import simpson as simps +except ImportError: + from scipy.integrate import simps _DEFAULTS = {"numq": 3001, "numr": 3001} diff --git a/abipy/tools/cli_parsers.py b/abipy/tools/cli_parsers.py new file mode 100644 index 000000000..6a67799ab --- /dev/null +++ b/abipy/tools/cli_parsers.py @@ -0,0 +1,219 @@ +""" +Tools and helper functions to build the command line interface of the AbiPy scripts. +""" +from __future__ import annotations + +import argparse +import os + +from pprint import pformat + + +def user_wants_to_abort() -> bool: + """Interactive prompt, return False if user entered `n` or `no`.""" + try: + answer = input("\nDo you want to continue [Y/n]") + except EOFError: + return False + + return answer.lower().strip() in ["n", "no"] + + +def set_loglevel(loglevel: str) -> None: + # loglevel is bound to the string value obtained from the command line argument. + # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug + import logging + numeric_level = getattr(logging, loglevel.upper(), None) + if not isinstance(numeric_level, int): + raise ValueError('Invalid log level: %s' % loglevel) + logging.basicConfig(level=numeric_level) + + +def pn_serve_parser(**kwargs) -> argparse.ArgumentParser: + """ + Parent parser implementing cli options for panel.serve + """ + p = argparse.ArgumentParser(add_help=False) + + p.add_argument("--port", default=0, type=int, help="Port to listen on.") + p.add_argument("--address", default=None, + help="The address the server should listen on for HTTP requests.") + #p.add_argument("--show", default=True, action="store_true", help="Open app in web browser") + p.add_argument("--num_procs", default=1, type=int, + help="Number of worker processes for the app. Defaults to 1") + p.add_argument('--panel-template', "-pnt", default="FastList", + help="Specify template for panel dasboard." + + "Possible values are: FastList, FastGrid, Golden, Bootstrap, Material, React, Vanilla." + + "Default: FastList") + p.add_argument('--has-remote-server', default=False, action="store_true", + help="True if we are running on the ABINIT server. " + + "This flag activates limitations on what the user can do." + + "Default: False") + p.add_argument("--websocket-origin", default=None, type=str, + help="Public hostnames which may connect to the Bokeh websocket.\n Syntax: " + + "HOST[:PORT] or *. Default: None") + p.add_argument('--max_size_mb', default=150, type=int, + help="Maximum message size in MB allowed by Bokeh and Tornado. Default: 150") + + p.add_argument('--no-browser', action='store_true', default=False, + help=("Start the jupyter server to serve the notebook " + "but don't open the notebook in the browser.\n" + "Use this option to connect remotely from localhost to the machine running the kernel")) + + return p + + +def get_pn_serve_kwargs(options) -> dict: + """ + Return dict with the arguments to be passed to pn.serve. + """ + import abipy.panels as mod + assets_path = os.path.join(os.path.dirname(mod.__file__), "assets") + + serve_kwargs = dict( + address=options.address, + port=options.port, + #dev=True, + #start=True, + #show=options.show, + show=not options.no_browser, + debug=options.verbose > 0, + #title=app_title, + num_procs=options.num_procs, + static_dirs={"/assets": assets_path}, + websocket_origin=options.websocket_origin, + # + # Increase the maximum websocket message size allowed by Bokeh + # https://panel.holoviz.org/reference/widgets/FileInput.html + websocket_max_message_size=options.max_size_mb * 1024**2, + # Increase the maximum buffer size allowed by Tornado + http_server_kwargs={'max_buffer_size': options.max_size_mb * 1024**2}, + ) + + if getattr(options, "verbose"): + print("Calling pn.serve with serve_kwargs:\n", pformat(serve_kwargs), "\n") + + if options.no_browser: + print(""" +Use: + + ssh -N -f -L localhost:{port}:localhost:{port} username@your_remote_cluster + +for port forwarding. +""") + + + return serve_kwargs + + +def customize_mpl(options) -> None: + + if options.mpl_backend is not None: + # Set matplotlib backend + import matplotlib + matplotlib.use(options.mpl_backend) + + if options.seaborn: + # Use seaborn settings. + import seaborn as sns + sns.set(context=options.seaborn, style='darkgrid', palette='deep', + font='sans-serif', font_scale=1, color_codes=False, rc=None) + + +def add_expose_options_to_parser(parser, with_mpl_options=True) -> None: + """ + Add Expose options to the parser. + """ + + parser.add_argument('-e', '--expose', action='store_true', default=False, + help="Open file and generate matplotlib figures automatically by calling expose method.") + parser.add_argument("-s", "--slide-mode", default=False, action="store_true", + help="Iterate over figures. Expose all figures at once if not given on the CLI.") + parser.add_argument("-t", "--slide-timeout", type=int, default=None, + help="Close figure after slide-timeout seconds (only if slide-mode). Block if not specified.") + parser.add_argument("-ew", "--expose-web", default=False, action="store_true", + help='Generate matplotlib plots in $BROWSER instead of X-server. WARNING: Not all the features are supported.') + parser.add_argument("-ply", "--plotly", default=False, action="store_true", + help='Generate plotly plots in $BROWSER instead of matplotlib. WARNING: Not all the features are supported.') + parser.add_argument("-cs", "--chart-studio", default=False, action="store_true", + help="Push figure to plotly chart studio ." + + "Requires --plotly option and user account at https://chart-studio.plotly.com.") + + if with_mpl_options: + parser.add_argument('-sns', "--seaborn", const="paper", default=None, action='store', nargs='?', type=str, + help='Use seaborn settings. Accept value defining context in ("paper", "notebook", "talk", "poster"). Default: paper') + parser.add_argument('-mpl', "--mpl-backend", default=None, + help=("Set matplotlib interactive backend. " + "Possible values: GTKAgg, GTK3Agg, GTK, GTKCairo, GTK3Cairo, WXAgg, WX, TkAgg, Qt4Agg, Qt5Agg, macosx." + "See also: https://matplotlib.org/faq/usage_faq.html#what-is-a-backend.")) + + +class EnumAction(argparse.Action): + """ + Argparse action for handling Enums + + Usage: + + class Do(enum.Enum): + Foo = "foo" + Bar = "bar" + + parser = argparse.ArgumentParser() + parser.add_argument('do', type=Do, action=EnumAction) + + Taken from https://stackoverflow.com/questions/43968006/support-for-enum-arguments-in-argparse + """ + def __init__(self, **kwargs): + # Pop off the type value + enum_type = kwargs.pop("type", None) + + # Ensure an Enum subclass is provided + if enum_type is None: + raise ValueError("type must be assigned an Enum when using EnumAction") + if not issubclass(enum_type, enum.Enum): + raise TypeError("type must be an Enum when using EnumAction") + + # Generate choices from the Enum + kwargs.setdefault("choices", tuple(e.value for e in enum_type)) + + super().__init__(**kwargs) + + self._enum = enum_type + + def __call__(self, parser, namespace, values, option_string=None): + # Convert value back into an Enum + value = self._enum(values) + setattr(namespace, self.dest, value) + + +def fix_omp_num_threads() -> int: + """ + Set OMP_NUM_THREADS to 1 if env var is not defined. Return num_threads. + """ + num_threads = os.getenv("OMP_NUM_THREADS", default=None) + if num_threads is None: + num_threads = 1 + os.environ["OMP_NUM_THREADS"] = str(num_threads) + + return num_threads + + +def range_from_str(string: str) -> range: + """ + Convert string into a range object. + """ + if string is None: return None + + tokens = string.split(":") + start, stop, step = 0, None, 1 + if len(tokens) == 1: + stop = int(tokens[0]) + elif len(tokens) == 2: + start, stop = map(int, tokens) + elif len(tokens) == 3: + start, stop, step = map(int, tokens) + else: + raise ValueError(f"Cannot interpret {string=} as range object.") + + return range(start, stop, step) + diff --git a/abipy/tools/context_managers.py b/abipy/tools/context_managers.py new file mode 100644 index 000000000..7c936a08b --- /dev/null +++ b/abipy/tools/context_managers.py @@ -0,0 +1,98 @@ +"""Context managers""" +from __future__ import annotations + +import signal +import sys + +from contextlib import contextmanager +from time import perf_counter + + +class Timer: + """ + Context manager to time code section. + + .. example:: + + with Timer("Timing code section"): + do_stuff() + + or + + with Timer(header=f"Begin ABINIT", footer="ABINIT GS") as timer: + do_stuff() + """ + def __init__(self, footer=None, header=None, file=sys.stdout): + self.header = header + self.footer = footer + self.file = file + + def __enter__(self): + self.time = perf_counter() + if self.header is not None: + print(self.header, file=self.file) + return self + + def __str__(self): + return self.readout + + def __exit__(self, type, value, traceback): + self.time = perf_counter() - self.time + self.readout = f'Time: {self.time:.3f} seconds' + if self.footer is not None: + msg = f'{self.footer} completed in {self.time:.3f} seconds'.lstrip() + print(msg, file=self.file) + + +@contextmanager +def temporary_change_attributes(something, **kwargs): + """ + https://stackoverflow.com/questions/38531851/how-to-assign-member-variables-temporarily/38532086 + + Usage: + + class Something(object): + def __init__(self, x, y): + self.x = x + self.y = y + + def say_hello(self): + print("hello", self.x, self.y) + + s = Something(1, 2) + s.say_hello() # hello 1 2 + with temporary_change_attributes(s, x=4, y=5): + s.say_hello() # hello 4 5 + s.say_hello() # hello 1 2 + """ + previous_values = {k: getattr(something, k) for k in kwargs} + for k, v in kwargs.items(): + setattr(something, k, v) + try: + yield + finally: + for k, v in previous_values.items(): + setattr(something, k, v) + + +class Timeout: + """ + Taken from https://stackoverflow.com/questions/2281850/timeout-function-if-it-takes-too-long-to-finish/22348885#22348885 + """ + + def __init__(self, seconds: int, message: str = 'Timeout'): + self.seconds = int(seconds) + if self.seconds <= 0: + raise ValueError(f"seconds should be > 0 while it is: {self.seconds}") + self.message = message + + def handle_timeout(self, signum, frame): + raise TimeoutError(self.message) + + def __enter__(self): + signal.signal(signal.SIGALRM, self.handle_timeout) + signal.alarm(self.seconds) + + def __exit__(self, type, value, traceback): + # If seconds is zero, any pending alarm is canceled. + signal.alarm(0) diff --git a/abipy/tools/decorators.py b/abipy/tools/decorators.py index 4184fefae..c6c4ba122 100644 --- a/abipy/tools/decorators.py +++ b/abipy/tools/decorators.py @@ -1,17 +1,23 @@ # coding: utf-8 """Decorators.""" +from __future__ import annotations + import time +import functools +import weakref +import inspect -from functools import wraps +from typing import Callable +from textwrap import dedent -def return_straceback_ifexc(func): +def return_straceback_ifexc(func: Callable): """ Decorator for functions that are supposed to return a string for logging purposes (e.g. str) Instead of raising an exception, the decorated function returns a string with the traceback so that execution can continue. """ - @wraps(func) + @functools.wraps(func) def wrapper(*args, **kwargs): try: return func(*args, **kwargs) @@ -32,6 +38,118 @@ def timed(self, *args, **kw): result = method(self, *args, **kw) te = time.time() - setattr(self,"time_"+method.__name__, (te - ts) * 1000) + setattr(self,"time_" + method.__name__, (te - ts) * 1000) return result return timed + + +def memoized_method(*lru_args, **lru_kwargs): + """ + Implements lru_cache for class methods. + It takes the exact same parameters as lru_cache, and works exactly the same. + However it never passes self to lru_cache and instead uses a per-instance lru_cache. + + Taken from: https://stackoverflow.com/questions/33672412/python-functools-lru-cache-with-class-methods-release-object + + + ... example:: + + @memoized_method(maxsize=12, typed=False) + def method(self, a, b): + .... + """ + def decorator(func): + @functools.wraps(func) + def wrapped_func(self, *args, **kwargs): + # We're storing the wrapped method inside the instance. If we had + # a strong reference to self the instance would never die. + self_weak = weakref.ref(self) + + @functools.wraps(func) + @functools.lru_cache(*lru_args, **lru_kwargs) + def cached_method(*args, **kwargs): + return func(self_weak(), *args, **kwargs) + setattr(self, func.__name__, cached_method) + return cached_method(*args, **kwargs) + return wrapped_func + return decorator + + +def dump_args(func: Callable): + """ + Decorator to print function call details. + + This includes parameters names and effective values. + """ + + def wrapper(*args, **kwargs): + func_args = inspect.signature(func).bind(*args, **kwargs).arguments + func_args_str = ", ".join( + "{} = {!r}".format(*item) for item in func_args.items() + ) + print(f"{func.__module__}.{func.__qualname__} ( {func_args_str} )") + return func(*args, **kwargs) + + return wrapper + + +class Appender: + r""" + A function decorator that appends an addendum to the docstring of the target function. + This decorator should be robust even if func.__doc__ is None + (for example, if -OO was passed to the interpreter). + Usage: construct a docstring.Appender with a string to be joined to + the original docstring. An optional 'join' parameter may be supplied + which will be used to join the docstring and addendum. e.g. + + add_copyright = Appender("Copyright (c) 2009", join='\n') + + @add_copyright + def my_dog(has='fleas'): + "This docstring will have a copyright below" + pass + + MG took it from: + https://github.com/pandas-dev/pandas/blob/3a7f956c30528736beaae5784f509a76d892e229/pandas/util/_decorators.py#L156 + + MG: Added dedent and debug args. + """ + + def __init__(self, addendum, join='', indents=0, dedent=True, debug=False): + if indents > 0: + self.addendum = indent(addendum, indents=indents) + else: + self.addendum = addendum + self.join = join + + # MG additional stuff + self.dedent = dedent + self.debug = debug + + def __call__(self, func): + func.__doc__ = func.__doc__ if func.__doc__ else '' + self.addendum = self.addendum if self.addendum else '' + + if self.dedent: + docitems = [dedent(func.__doc__), dedent(self.addendum)] + else: + docitems = [func.__doc__, self.addendum] + + if self.debug: + print("func.__doc__:\n", func.__doc__) + print("addendum:\n", self.addendum) + + func.__doc__ = dedent(self.join.join(docitems)) + + if self.debug: + print("new func.__doc__:\n", func.__doc__) + + return func + + +def indent(text: str, indents=1) -> str: + if not text or not isinstance(text, str): + return '' + jointext = ''.join(['\n'] + [' '] * indents) + return jointext.join(text.split('\n')) + diff --git a/abipy/tools/derivatives.py b/abipy/tools/derivatives.py index daa7d1bac..f275778f1 100644 --- a/abipy/tools/derivatives.py +++ b/abipy/tools/derivatives.py @@ -10,7 +10,7 @@ def rearr(array): - return np.array(array, dtype=np.float) + return np.array(array, dtype=float) # This table contains the coefficients of the central differences, for several order of accuracy: [1] # See http://en.wikipedia.org/wiki/Finite_difference_coefficients diff --git a/abipy/tools/devtools.py b/abipy/tools/devtools.py index 15008f28e..e4f9ab4c7 100644 --- a/abipy/tools/devtools.py +++ b/abipy/tools/devtools.py @@ -1,11 +1,10 @@ # coding: utf-8 +from __future__ import annotations + import os import tempfile import warnings -import logging -logger = logging.getLogger(__file__) - def profile(statement, global_vars, local_vars): """ @@ -27,7 +26,7 @@ def profile(statement, global_vars, local_vars): return s -class HtmlDiff(object): +class HtmlDiff: """ This object produces diff files in HTML format and displays them in the browser. @@ -37,7 +36,7 @@ class HtmlDiff(object): HtmlDiff(filepaths).open_browser() """ - def __init__(self, filepaths): + def __init__(self, filepaths: list[str]): if len(filepaths) < 2: raise ValueError("You need more than one file to compare!") self.filepaths = filepaths @@ -109,3 +108,150 @@ def pygmentize(self): return retcode return self._launch_browser(tmpname) + + +def display_top(snapshot, key_type='lineno', limit=3): + """ + Profile memory usage in Python. + Taken from https://stackoverflow.com/questions/552744/how-do-i-profile-memory-usage-in-python + + Example:: + + tracemalloc.start() + main() + snapshot = tracemalloc.take_snapshot() + display_top(snapshot) + """ + import tracemalloc + import linecache + snapshot = snapshot.filter_traces(( + tracemalloc.Filter(False, ""), + tracemalloc.Filter(False, ""), + )) + top_stats = snapshot.statistics(key_type) + + print("Top %s lines" % limit) + for index, stat in enumerate(top_stats[:limit], 1): + frame = stat.traceback[0] + # replace "/path/to/module/file.py" with "module/file.py" + filename = os.sep.join(frame.filename.split(os.sep)[-2:]) + print("#%s: %s:%s: %.1f KiB" + % (index, filename, frame.lineno, stat.size / 1024)) + line = linecache.getline(frame.filename, frame.lineno).strip() + if line: + print(' %s' % line) + + other = top_stats[limit:] + if other: + size = sum(stat.size for stat in other) + print("%s other: %.1f KiB" % (len(other), size / 1024)) + total = sum(stat.size for stat in top_stats) + print("Total allocated size: %.1f KiB" % (total / 1024)) + + + +def get_size(bytes, suffix="B"): + """ + Scale bytes to its proper format + e.g: + 1253656 => '1.20MB' + 1253656678 => '1.17GB' + """ + factor = 1024 + for unit in ["", "K", "M", "G", "T", "P"]: + if bytes < factor: + return f"{bytes:.2f}{unit}{suffix}" + bytes /= factor + + +def print_hardware_system_info() -> None: + """ + Taken from + """ + import platform + uname = platform.uname() + print("="*40, "System Information", "="*40) + print(f"System: {uname.system}") + print(f"Node Name: {uname.node}") + print(f"Release: {uname.release}") + print(f"Version: {uname.version}") + print(f"Machine: {uname.machine}") + print(f"Processor: {uname.processor}") + + import psutil + # let's print CPU information + print("="*40, "CPU Info", "="*40) + # number of cores + print("Physical cores:", psutil.cpu_count(logical=False)) + print("Total cores:", psutil.cpu_count(logical=True)) + # CPU frequencies + cpufreq = psutil.cpu_freq() + print(f"Max Frequency: {cpufreq.max:.2f}Mhz") + print(f"Min Frequency: {cpufreq.min:.2f}Mhz") + print(f"Current Frequency: {cpufreq.current:.2f}Mhz") + # CPU usage + print("CPU Usage Per Core:") + for i, percentage in enumerate(psutil.cpu_percent(percpu=True, interval=1)): + print(f"Core {i}: {percentage}%") + print(f"Total CPU Usage: {psutil.cpu_percent()}%") + + # Memory Information + print("="*40, "Memory Information", "="*40) + # get the memory details + svmem = psutil.virtual_memory() + print(f"Total: {get_size(svmem.total)}") + print(f"Available: {get_size(svmem.available)}") + print(f"Used: {get_size(svmem.used)}") + print(f"Percentage: {svmem.percent}%") + print("="*20, "SWAP", "="*20) + # get the swap memory details (if exists) + swap = psutil.swap_memory() + print(f"Total: {get_size(swap.total)}") + print(f"Free: {get_size(swap.free)}") + print(f"Used: {get_size(swap.used)}") + print(f"Percentage: {swap.percent}%") + + # Disk Information + print("="*40, "Disk Information", "="*40) + print("Partitions and Usage:") + # get all disk partitions + partitions = psutil.disk_partitions() + for partition in partitions: + print(f"=== Device: {partition.device} ===") + print(f" Mountpoint: {partition.mountpoint}") + print(f" File system type: {partition.fstype}") + try: + partition_usage = psutil.disk_usage(partition.mountpoint) + except PermissionError: + # this can be catched due to the disk that + # isn't ready + continue + print(f" Total Size: {get_size(partition_usage.total)}") + print(f" Used: {get_size(partition_usage.used)}") + print(f" Free: {get_size(partition_usage.free)}") + print(f" Percentage: {partition_usage.percent}%") + + # get IO statistics since boot + disk_io = psutil.disk_io_counters() + print(f"Total read: {get_size(disk_io.read_bytes)}") + print(f"Total write: {get_size(disk_io.write_bytes)}") + + # Network information + print("="*40, "Network Information", "="*40) + # get all network interfaces (virtual and physical) + if_addrs = psutil.net_if_addrs() + for interface_name, interface_addresses in if_addrs.items(): + for address in interface_addresses: + print(f"=== Interface: {interface_name} ===") + if str(address.family) == 'AddressFamily.AF_INET': + print(f" IP Address: {address.address}") + print(f" Netmask: {address.netmask}") + print(f" Broadcast IP: {address.broadcast}") + elif str(address.family) == 'AddressFamily.AF_PACKET': + print(f" MAC Address: {address.address}") + print(f" Netmask: {address.netmask}") + print(f" Broadcast MAC: {address.broadcast}") + # get IO statistics since boot + net_io = psutil.net_io_counters() + print(f"Total Bytes Sent: {get_size(net_io.bytes_sent)}") + print(f"Total Bytes Received: {get_size(net_io.bytes_recv)}") diff --git a/abipy/tools/duck.py b/abipy/tools/duck.py index 7375e89c4..f2e9abb0c 100644 --- a/abipy/tools/duck.py +++ b/abipy/tools/duck.py @@ -1,11 +1,15 @@ # coding: utf-8 """Duck-typing tests""" +from __future__ import annotations + import collections import warnings import numpy as np +from typing import Any + -def is_string(s): +def is_string(s: Any) -> bool: """True if s behaves like a string (duck typing test).""" try: s + " " @@ -14,9 +18,9 @@ def is_string(s): return False -def is_intlike(obj): +def is_intlike(obj: Any) -> bool: """ - True if obj represents an integer (float such as 1.0 are included as well). + True if obj represents an integer (floats such as 1.0 are included as well). """ # isinstance(i, numbers.Integral) try: @@ -26,15 +30,17 @@ def is_intlike(obj): else: with warnings.catch_warnings(): warnings.simplefilter("ignore") + #print("hello", int(obj) == obj) return int(obj) == obj - except (ValueError, TypeError): + except (ValueError, TypeError) as exc: + #print(exc) return False return False -def is_number_like(obj): +def is_number_like(obj: Any) -> bool: """True if obj represents a number.""" try: obj - 1 @@ -43,7 +49,8 @@ def is_number_like(obj): return False -def is_listlike(obj): +def is_listlike(obj: Any) -> bool: + """True if obj is list-like.""" #if isinstance(branch, (list, tuple, np.ndarray)): if isinstance(obj, np.ndarray): return True if not isinstance(obj, collections.abc.Sequence): return False @@ -56,7 +63,7 @@ def is_listlike(obj): return False -def list_ints(arg): +def list_ints(arg: Any) -> list: """ Always return a list of int, given a int or list of integers as input. @@ -65,11 +72,11 @@ def list_ints(arg): >>> list_ints(1) [1] """ - l = np.array(arg, dtype=np.int) + l = np.array(arg, dtype=int) return [int(l)] if l.size == 1 else l.tolist() -def torange(obj): +def torange(obj: Any) -> range: """ Convert obj into a range. Accepts integer, slice object or any object with an __iter__ method. Note that an integer is converted into range(int, int+1) @@ -96,7 +103,7 @@ def torange(obj): raise TypeError("Don't know how to convert %s into a range object" % str(obj)) -def as_slice(obj): +def as_slice(obj: Any) -> slice: """ Convert an integer, a string or a slice object into slice. @@ -130,11 +137,11 @@ def as_slice(obj): raise ValueError("Cannot convert %s into a slice:\n%s" % (type(obj), obj)) -class NoDefaultProvided(object): +class NoDefaultProvided: pass -def hasattrd(obj, name): +def hasattrd(obj: Any, name: str) -> bool: """ The arguments are an object and a string. The result is True if the string is the name of one of the object’s attributes, False if not. @@ -148,7 +155,7 @@ def hasattrd(obj, name): return False -def getattrd(obj, name, default=NoDefaultProvided): +def getattrd(obj: Any, name: str, default=NoDefaultProvided) -> Any: """ Same as getattr(), but allows dot notation lookup e.g. getattrd(obj, "a.b") diff --git a/abipy/tools/elate/LICENSE b/abipy/tools/elate/LICENSE new file mode 100644 index 000000000..252760641 --- /dev/null +++ b/abipy/tools/elate/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2014 fxcoudert + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/abipy/tools/elate/README.md b/abipy/tools/elate/README.md new file mode 100644 index 000000000..92ddd6aaa --- /dev/null +++ b/abipy/tools/elate/README.md @@ -0,0 +1,8 @@ +ELATE: Elastic tensor analysis +===== + +Welcome to [ELATE, the online tool for analysis of elastic tensors](http://progs.coudert.name/elate), developped and maintained by [François-Xavier Coudert](http://coudert.name) at CNRS / Chimie ParisTech. + +This repository contains the source code for the web service, which you can use [online here](http://progs.coudert.name/elate). + +If you use the software (the website or the code itself) in published results (paper, conference, etc.), please cite the [corresponding paper (_J. Phys. Condens. Matter_, *2016*, 28, 275201)](https://doi.org/10.1088/0953-8984/28/27/275201). diff --git a/abipy/tools/elate/elastic.py b/abipy/tools/elate/elastic.py new file mode 100644 index 000000000..8381be510 --- /dev/null +++ b/abipy/tools/elate/elastic.py @@ -0,0 +1,1318 @@ +# -*- coding: utf-8 -*- + +import json +import math +import os +import platform +import random +import re +import sys +import time + +from collections import OrderedDict +from io import StringIO +import requests + +import numpy as np +from scipy import optimize + + +__author__ = "Romain Gaillac and François-Xavier Coudert" +__version__ = "2020.07.26" +__license__ = "MIT" + + +def removeHTMLTags(s): + """Remove HTML tags, notably for use as page title""" + return re.sub('<[^<]+?>', '', s) + + +def finishWebPage(outbuffer): + """ Write the footer and finish the page """ + + print('') + print('
    ') + print('') + return outbuffer.getvalue() + + +def writeHeader(outbuffer, title="Elastic Tensor Analysis"): + """ Write the header of the HTML page """ + + print(""" + + + + %s + + + %s + + + + + + + """ % (title, INTERNAL_CSS)) + + +# printTitle writes the introduction of Elate +def printTitle(outbuffer, title="Elastic Tensor Analysis"): + writeHeader(outbuffer, title) + print(""" + + +
    +

    ELATE: Elastic tensor analysis

    + +

    Welcome to ELATE, the online tool for analysis of elastic tensors, developed by Romain Gaillac and François-Xavier Coudert at CNRS / Chimie + ParisTech.
    If you use the software in published results (paper, conference, etc.), please cite the corresponding paper (J. Phys. Condens. Matter, 2016, 28, 275201) and give the + website URL.

    + +

    ELATE is open source software. Any queries or comments are welcome at + +

    + """) + + +# 3D plot functions +################################################################################################ + +def write3DPlotData(dataX, dataY, dataZ, dataR, n, opacity=1.0): + + showcont = "true" + if (opacity != 1.0): + showcont = "false" + if (n == 1): + js = OrderedDict([ + ("x", dataX), + ("y", dataY), + ("z", dataZ), + ("text", dataR), + ("showscale", "false"), + ("colorscale", "[[\'0\',\'rgb(22,136,51)\'],[\'0.125\',\'rgb(61,153,85)\'],[\'0.25\',\'rgb(121,178,136)\'],[\'0.375\',\'rgb(181,204,187)\'],[\'0.5\',\'rgb(195,230,200)\'],[\'0.625\',\'rgb(181,204,187)\'],[\'0.75\',\'rgb(121,178,136)\'],[\'0.875\',\'rgb(61,153,85)\'],[\'1\',\'rgb(22,136,51)\']]"), + ("zsmooth", "'fast'"), + ("type", "'surface'"), + ("hoverinfo", "'text'"), + ("opacity", opacity), + ("contours", "{x :{ show:"+showcont+", color: 'rgb(192,192,192)'},y :{ show:"+showcont+", color: 'rgb(192,192,192)'},z :{ show:"+showcont+", color: 'rgb(192,192,192)'}}") + ]) + + if (n == 2): + js = OrderedDict([ + ("x", dataX), + ("y", dataY), + ("z", dataZ), + ("text", dataR), + ("showscale", "false"), + ("colorscale", "[[\'0\',\'rgb(180,4,38)\'],[\'0.125\',\'rgb(222,96,77)\'],[\'0.25\',\'rgb(244,154,123)\'],[\'0.375\',\'rgb(245,196,173)\'],[\'0.5\',\'rgb(246,216,201)\'],[\'0.625\',\'rgb(245,196,173)\'],[\'0.75\',\'rgb(244,154,123)\'],[\'0.875\',\'rgb(222,96,77)\'],[\'1\',\'rgb(180,4,38)\']]"), + ("zsmooth", "'fast'"), + ("type", "'surface'"), + ("hoverinfo", "'text'"), + ("opacity", opacity), + ("contours", "{x :{ show:"+showcont+", color: 'rgb(192,192,192)'},y :{ show:"+showcont+", color: 'rgb(192,192,192)'},z :{ show:"+showcont+", color: 'rgb(192,192,192)'}}") + ]) + + if (n == 3): + js = OrderedDict([ + ("x", dataX), + ("y", dataY), + ("z", dataZ), + ("text", dataR), + ("showscale", "false"), + ("colorscale", "[[\'0\',\'rgb(59,76,192)\'],[\'0.125\',\'rgb(98,130,234)\'],[\'0.25\',\'rgb(141,176,254)\'],[\'0.375\',\'rgb(184,208,249)\'],[\'0.5\',\'rgb(207,223,250)\'],[\'0.625\',\'rgb(184,208,249)\'],[\'0.75\',\'rgb(141,176,254)\'],[\'0.875\',\'rgb(98,130,234)\'],[\'1\',\'rgb(59,76,192)\']]"), + ("zsmooth", "'fast'"), + ("type", "'surface'"), + ("hoverinfo", "'text'"), + ("opacity", opacity), + ("contours", "{x :{ show:"+showcont+", color: 'rgb(192,192,192)'},y :{ show:"+showcont+", color: 'rgb(192,192,192)'},z :{ show:"+showcont+", color: 'rgb(192,192,192)'}}") + ]) + + print(json.dumps(js, indent=3).replace('\"', '') + ";") + + +def make3DPlot(func, legend='', width=600, height=600, npoints=200): + + str1 = legend.split("\'")[0] + str2 = legend.split("\'")[1] + + u = np.linspace(0, np.pi, npoints) + v = np.linspace(0, 2*np.pi, 2*npoints) + r = np.zeros(len(u)*len(v)) + + dataX = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataY = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataZ = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataR = [["0.0" for i in range(len(v))] for j in range(len(u))] + + count = 0 + for cu in range(len(u)): + for cv in range(len(v)): + r_tmp = func(u[cu], v[cv]) + z = r_tmp * np.cos(u[cu]) + x = r_tmp * np.sin(u[cu]) * np.cos(v[cv]) + y = r_tmp * np.sin(u[cu]) * np.sin(v[cv]) + dataX[cu][cv] = x + dataY[cu][cv] = y + dataZ[cu][cv] = z + dataR[cu][cv] = "'E = "+str(float(int(10*r_tmp))/10.0)+" GPa, "+"\u03B8 = "+str(float(int(10*u[cu]*180/np.pi))/10.0)+"\u00B0, "+"\u03c6 = "+str(float(int(10*v[cv]*180/np.pi))/10.0)+"\u00B0'" + count = count+1 + + i = random.randint(0, 100000) + print('
    ') + print('
    ' % (i, width, height)) + print('
    ') + print('') + + +def make3DPlotPosNeg(func, legend='', width=600, height=600, npoints=200): + + u = np.linspace(0, np.pi, npoints) + v = np.linspace(0, 2*np.pi, 2*npoints) + + dataX1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataY1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataZ1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataR1 = [["0.0" for i in range(len(v))] for j in range(len(u))] + + count = 0 + for cu in range(len(u)): + for cv in range(len(v)): + r_tmp = max(0, func(u[cu], v[cv])) + z = r_tmp * np.cos(u[cu]) + x = r_tmp * np.sin(u[cu]) * np.cos(v[cv]) + y = r_tmp * np.sin(u[cu]) * np.sin(v[cv]) + dataX1[cu][cv] = x + dataY1[cu][cv] = y + dataZ1[cu][cv] = z + dataR1[cu][cv] = "'"+"\u03B2 = "+str(float(int(10*r_tmp))/10.0)+" TPa'"+"+'-1'.sup()+"+"', \u03B8 = "+str(float(int(10*u[cu]*180/np.pi))/10.0)+"\u00B0, "+"\u03c6 = "+str(float(int(10*v[cv]*180/np.pi))/10.0)+"\u00B0'" + count = count+1 + + dataX2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataY2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataZ2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataR2 = [["0.0" for i in range(len(v))] for j in range(len(u))] + + count = 0 + for cu in range(len(u)): + for cv in range(len(v)): + r_tmp = max(0, -func(u[cu], v[cv])) + z = r_tmp * np.cos(u[cu]) + x = r_tmp * np.sin(u[cu]) * np.cos(v[cv]) + y = r_tmp * np.sin(u[cu]) * np.sin(v[cv]) + dataX2[cu][cv] = x + dataY2[cu][cv] = y + dataZ2[cu][cv] = z + dataR2[cu][cv] = "'"+"\u03B2 = -"+str(float(int(10*r_tmp))/10.0)+" TPa'"+"+'-1'.sup()+"+"', \u03B8 = "+str(float(int(10*u[cu]*180/np.pi))/10.0)+"\u00B0, "+"\u03c6 = "+str(float(int(10*v[cv]*180/np.pi))/10.0)+"\u00B0'" + count = count+1 + + i = random.randint(0, 100000) + print('
    ') + print('
    ' % (i, width, height)) + print('
    ') + print('') + + +def make3DPlot2(func, legend='', width=600, height=600, npoints=50): + + u = np.linspace(0, np.pi, npoints) + v = np.linspace(0, np.pi, npoints) + w = [v[i]+np.pi for i in range(1,len(v))] + v = np.append(v, w) + + dataX1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataY1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataZ1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataR1 = [["0.0" for i in range(len(v))] for j in range(len(u))] + + dataX2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataY2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataZ2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataR2 = [["0.0" for i in range(len(v))] for j in range(len(u))] + + count = 0 + r = [0.0,0.0,np.pi/2.0,np.pi/2.0] + for cu in range(len(u)): + for cv in range(len(v)): + + r = func(u[cu],v[cv],r[2],r[3]) + z = np.cos(u[cu]) + x = np.sin(u[cu]) * np.cos(v[cv]) + y = np.sin(u[cu]) * np.sin(v[cv]) + + r1_tmp = r[0] + z1 = r1_tmp * z + x1 = r1_tmp * x + y1 = r1_tmp * y + dataX1[cu][cv] = x1 + dataY1[cu][cv] = y1 + dataZ1[cu][cv] = z1 + dataR1[cu][cv] = "'"+"G'"+"+'min'.sub()+"+"' = "+str(float(int(10*r1_tmp))/10.0)+"GPa, "+"\u03B8 = "+str(float(int(10*u[cu]*180/np.pi))/10.0)+"\u00B0, "+"\u03c6 = "+str(float(int(10*v[cv]*180/np.pi))/10.0)+"\u00B0'" + + r2_tmp = r[1] + z2 = r2_tmp * z + x2 = r2_tmp * x + y2 = r2_tmp * y + dataX2[cu][cv] = x2 + dataY2[cu][cv] = y2 + dataZ2[cu][cv] = z2 + dataR2[cu][cv] = "'"+"G'"+"+'max'.sub()+"+"' = "+str(float(int(10*r1_tmp))/10.0)+"GPa, "+"\u03B8 = "+str(float(int(10*u[cu]*180/np.pi))/10.0)+"\u00B0, "+"\u03c6 = "+str(float(int(10*v[cv]*180/np.pi))/10.0)+"\u00B0'" + count = count+1 + + i = random.randint(0, 100000) + print('
    ') + print('
    ' % (i, width, height)) + print('
    ') + print('') + + +def make3DPlot3(func, legend='', width=600, height=600, npoints=50): + + str1 = legend.split("\'")[0] + str2 = legend.split("\'")[1] + + u = np.linspace(0, np.pi, npoints) + v = np.linspace(0, np.pi, npoints) + w = [v[i]+np.pi for i in range(1,len(v))] + v = np.append(v, w) + + dataX1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataY1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataZ1 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataR1 = [["0.0" for i in range(len(v))] for j in range(len(u))] + + dataX2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataY2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataZ2 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataR2 = [["0.0" for i in range(len(v))] for j in range(len(u))] + + dataX3 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataY3 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataZ3 = [[0.0 for i in range(len(v))] for j in range(len(u))] + dataR3 = [["0.0" for i in range(len(v))] for j in range(len(u))] + + count = 0 + r = [0.0, 0.0, 0.0, np.pi/2.0, np.pi/2.0] + ruv = [[r for i in range(len(u))] for j in range(len(v))] + for cu in range(len(u)): + for cv in range(len(v)): + ruv[cv][cu] = func(u[cu],v[cv],r[3],r[4]) + + for cu in range(len(u)): + for cv in range(len(v)): + + z = np.cos(u[cu]) + x = np.sin(u[cu]) * np.cos(v[cv]) + y = np.sin(u[cu]) * np.sin(v[cv]) + + r = ruv[cv][cu] + r1_tmp = r[0] + dataX1[cu][cv] = r1_tmp * x + dataY1[cu][cv] = r1_tmp * y + dataZ1[cu][cv] = r1_tmp * z + dataR1[cu][cv] = "'"+"\u03BD'"+"+'min'.sub()+"+"' = "+str(float(int(100*r1_tmp))/100.0)+", "+"\u03B8 = "+str(float(int(100*u[cu]*180/np.pi))/100.0)+"\u00B0, "+"\u03c6 = "+str(float(int(100*v[cv]*180/np.pi))/100.0)+"\u00B0'" + + r2_tmp = r[1] + dataX2[cu][cv] = r2_tmp * x + dataY2[cu][cv] = r2_tmp * y + dataZ2[cu][cv] = r2_tmp * z + dataR2[cu][cv] = "'"+"\u03BD'"+"+'min'.sub()+"+"' = "+str(float(int(100*r2_tmp))/100.0)+", "+"\u03B8 = "+str(float(int(100*u[cu]*180/np.pi))/100.0)+"\u00B0, "+"\u03c6 = "+str(float(int(100*v[cv]*180/np.pi))/100.0)+"\u00B0'" + + r3_tmp = r[2] + dataX3[cu][cv] = r3_tmp * x + dataY3[cu][cv] = r3_tmp * y + dataZ3[cu][cv] = r3_tmp * z + dataR3[cu][cv] = "'"+"\u03BD'"+"+'max'.sub()+"+"' = "+str(float(int(100*r3_tmp))/100.0)+", "+"\u03B8 = "+str(float(int(100*u[cu]*180/np.pi))/100.0)+"\u00B0, "+"\u03c6 = "+str(float(int(100*v[cv]*180/np.pi))/100.0)+"\u00B0'" + count = count+1 + + i = random.randint(0, 100000) + print('
    ') + print('
    ' % (i, width, height)) + print('
    ') + print('') + + + + +# Polar plot functions +################################################################################################ + +def writePolarPlotData(dataX, dataY, suffix): + """Write data for a polar plot, taking care of the center of inversion""" + + print("var dataX" + suffix + " = [") + print((len(dataX) * "%.5f,") % tuple(dataX)) + print(((len(dataX)-1) * "%.5f," + "%.5f") % tuple(-dataX)) + print("];") + print("var dataY" + suffix + " = [") + print((len(dataX) * "%.5f,") % tuple(dataY)) + print(((len(dataX)-1) * "%.5f," + "%.5f") % tuple(-dataY)) + print("];") + + + +def makePolarPlot(func, maxrad, legend='', p='xy', width=300, height=300, npoints=90, color='#009010', linewidth=2): + + i = random.randint(0, 100000) + print('
    ') + print('
    ' % (i, width, height)) + print('
    %s
    ' % legend) + print('') + +def makePolarPlotPosNeg(func, maxrad, legend='', p='xy', width=300, height=300, npoints=90, linewidth=2): + i = random.randint(0, 100000) + print('
    ') + print('
    ' % (i, width, height)) + print('
    %s
    ' % legend) + print('') + +def makePolarPlot2(func, maxrad, legend='', p='xy', width=300, height=300, npoints=61, linewidth=2): + i = random.randint(0, 100000) + print('
    ') + print('
    ' % (i, width, height)) + print('
    %s
    ' % legend) + print('') + +def makePolarPlot3(func, maxrad, legend='', p='xy', width=300, height=300, npoints=61, linewidth=2): + i = random.randint(0, 100000) + print('
    ') + print('
    ' % (i, width, height)) + print('
    %s
    ' % legend) + print('') + + +################################################################################################ + +def dirVec(theta, phi): + return [ math.sin(theta)*math.cos(phi), math.sin(theta)*math.sin(phi), math.cos(theta) ] + +def dirVec1(theta, phi, chi): + return [ math.sin(theta)*math.cos(phi), math.sin(theta)*math.sin(phi), math.cos(theta) ] + +def dirVec2(theta, phi, chi): + return [ math.cos(theta)*math.cos(phi)*math.cos(chi) - math.sin(phi)*math.sin(chi), + math.cos(theta)*math.sin(phi)*math.cos(chi) + math.cos(phi)*math.sin(chi), + - math.sin(theta)*math.cos(chi) ] + + +# Functions to minimize/maximize +def minimize(func, dim): + if dim == 2: + r = ((0, np.pi), (0, np.pi)) + n = 25 + elif dim == 3: + r = ((0, np.pi), (0, np.pi), (0, np.pi)) + n = 10 + + # TODO -- try basin hopping or annealing + return optimize.brute(func, r, Ns = n, full_output = True, finish = optimize.fmin)[0:2] + + +def maximize(func, dim): + res = minimize(lambda x: -func(x), dim) + return (res[0], -res[1]) + + +class Elastic: + """An elastic tensor, along with methods to access it""" + + def __init__(self, s): + """Initialize the elastic tensor from a string""" + + if not s: + raise ValueError("no matrix was provided") + + # Argument can be a 6-line string, a list of list, or a string representation of the list of list + try: + if type(json.loads(s)) == list: s = json.loads(s) + except: + pass + + if type(s) == str: + # Remove braces and pipes + s = s.replace("|", " ").replace("(", " ").replace(")", " ") + + # Remove empty lines + lines = [line for line in s.split('\n') if line.strip()] + if len(lines) != 6: + raise ValueError("should have six rows") + + # Convert to float + try: + mat = [list(map(float, line.split())) for line in lines] + except: + raise ValueError("not all entries are numbers") + elif type(s) == list: + # If we already have a list, simply use it + mat = s + else: + raise ValueError("invalid argument as matrix") + + # Make it into a square matrix + mat = np.array(mat) + if mat.shape != (6,6): + # Is it upper triangular? + if list(map(len, mat)) == [6,5,4,3,2,1]: + mat = [ [0]*i + mat[i] for i in range(6) ] + mat = np.array(mat) + + # Is it lower triangular? + if list(map(len, mat)) == [1,2,3,4,5,6]: + mat = [ mat[i] + [0]*(5-i) for i in range(6) ] + mat = np.array(mat) + + if mat.shape != (6,6): + raise ValueError("should be a square matrix") + + # Check that is is symmetric, or make it symmetric + if np.linalg.norm(np.tril(mat, -1)) == 0: + mat = mat + np.triu(mat, 1).transpose() + if np.linalg.norm(np.triu(mat, 1)) == 0: + mat = mat + np.tril(mat, -1).transpose() + if np.linalg.norm(mat - mat.transpose()) > 1e-3: + raise ValueError("should be symmetric, or triangular") + elif np.linalg.norm(mat - mat.transpose()) > 0: + mat = 0.5 * (mat + mat.transpose()) + + # Store it + self.CVoigt = mat + + # Put it in a more useful representation + try: + self.SVoigt = np.linalg.inv(self.CVoigt) + except: + raise ValueError("matrix is singular") + + VoigtMat = [[0, 5, 4], [5, 1, 3], [4, 3, 2]] + def SVoigtCoeff(p,q): return 1. / ((1+p//3)*(1+q//3)) + + self.Smat = [[[[ SVoigtCoeff(VoigtMat[i][j], VoigtMat[k][l]) * self.SVoigt[VoigtMat[i][j]][VoigtMat[k][l]] + for i in range(3) ] for j in range(3) ] for k in range(3) ] for l in range(3) ] + return + + def isOrthorhombic(self): + def iszero(x): return (abs(x) < 1.e-3) + return (iszero(self.CVoigt[0][3]) and iszero(self.CVoigt[0][4]) and iszero(self.CVoigt[0][5]) + and iszero(self.CVoigt[1][3]) and iszero(self.CVoigt[1][4]) and iszero(self.CVoigt[1][5]) + and iszero(self.CVoigt[2][3]) and iszero(self.CVoigt[2][4]) and iszero(self.CVoigt[2][5]) + and iszero(self.CVoigt[3][4]) and iszero(self.CVoigt[3][5]) and iszero(self.CVoigt[4][5])) + + def isCubic(self): + def iszero(x): return (abs(x) < 1.e-3) + return (iszero(self.CVoigt[0][3]) and iszero(self.CVoigt[0][4]) and iszero(self.CVoigt[0][5]) + and iszero(self.CVoigt[1][3]) and iszero(self.CVoigt[1][4]) and iszero(self.CVoigt[1][5]) + and iszero(self.CVoigt[2][3]) and iszero(self.CVoigt[2][4]) and iszero(self.CVoigt[2][5]) + and iszero(self.CVoigt[3][4]) and iszero(self.CVoigt[3][5]) and iszero(self.CVoigt[4][5]) + and iszero(self.CVoigt[0][0] - self.CVoigt[1][1]) and iszero(self.CVoigt[0][0] - self.CVoigt[2][2]) + and iszero(self.CVoigt[0][0] - self.CVoigt[1][1]) and iszero(self.CVoigt[0][0] - self.CVoigt[2][2]) + and iszero(self.CVoigt[3][3] - self.CVoigt[4][4]) and iszero(self.CVoigt[3][3] - self.CVoigt[5][5]) + and iszero(self.CVoigt[0][1] - self.CVoigt[0][2]) and iszero(self.CVoigt[0][1] - self.CVoigt[1][2])) + + def Young(self, x): + a = dirVec(x[0], x[1]) + r = sum([ a[i]*a[j]*a[k]*a[l] * self.Smat[i][j][k][l] + for i in range(3) for j in range(3) for k in range(3) for l in range(3) ]) + return 1/r + + def Young_2(self,x,y): + a = dirVec(x, y) + r = sum([ a[i]*a[j]*a[k]*a[l] * self.Smat[i][j][k][l] + for i in range(3) for j in range(3) for k in range(3) for l in range(3) ]) + return 1/r + + def LC(self, x): + a = dirVec(x[0], x[1]) + r = sum([ a[i]*a[j] * self.Smat[i][j][k][k] + for i in range(3) for j in range(3) for k in range(3) ]) + return 1000 * r + + def LC_2(self, x, y): + a = dirVec(x, y) + r = sum([ a[i]*a[j] * self.Smat[i][j][k][k] + for i in range(3) for j in range(3) for k in range(3) ]) + return 1000 * r + + def shear(self, x): + a = dirVec(x[0], x[1]) + b = dirVec2(x[0], x[1], x[2]) + r = sum([ a[i]*b[j]*a[k]*b[l] * self.Smat[i][j][k][l] + for i in range(3) for j in range(3) for k in range(3) for l in range(3) ]) + return 1/(4*r) + + def Poisson(self, x): + a = dirVec(x[0], x[1]) + b = dirVec2(x[0], x[1], x[2]) + r1 = sum([ a[i]*a[j]*b[k]*b[l] * self.Smat[i][j][k][l] + for i in range(3) for j in range(3) for k in range(3) for l in range(3) ]) + r2 = sum([ a[i]*a[j]*a[k]*a[l] * self.Smat[i][j][k][l] + for i in range(3) for j in range(3) for k in range(3) for l in range(3) ]) + return -r1/r2 + + def averages(self): + A = (self.CVoigt[0][0] + self.CVoigt[1][1] + self.CVoigt[2][2]) / 3 + B = (self.CVoigt[1][2] + self.CVoigt[0][2] + self.CVoigt[0][1]) / 3 + C = (self.CVoigt[3][3] + self.CVoigt[4][4] + self.CVoigt[5][5]) / 3 + a = (self.SVoigt[0][0] + self.SVoigt[1][1] + self.SVoigt[2][2]) / 3 + b = (self.SVoigt[1][2] + self.SVoigt[0][2] + self.SVoigt[0][1]) / 3 + c = (self.SVoigt[3][3] + self.SVoigt[4][4] + self.SVoigt[5][5]) / 3 + + KV = (A + 2*B) / 3 + GV = (A - B + 3*C) / 5 + + KR = 1 / (3*a + 6*b) + GR = 5 / (4*a - 4*b + 3*c) + + KH = (KV + KR) / 2 + GH = (GV + GR) / 2 + + return [ [KV, 1/(1/(3*GV) + 1/(9*KV)), GV, (1 - 3*GV/(3*KV+GV))/2], + [KR, 1/(1/(3*GR) + 1/(9*KR)), GR, (1 - 3*GR/(3*KR+GR))/2], + [KH, 1/(1/(3*GH) + 1/(9*KH)), GH, (1 - 3*GH/(3*KH+GH))/2] ] + + def shear2D(self, x): + ftol = 0.001 + xtol = 0.01 + def func1(z): return self.shear([x[0], x[1], z]) + r1 = optimize.minimize(func1, np.pi/2.0, args=(), method = 'Powell', options={"xtol":xtol, "ftol":ftol})#, bounds=[(0.0,np.pi)]) + def func2(z): return -self.shear([x[0], x[1], z]) + r2 = optimize.minimize(func2, np.pi/2.0, args=(), method = 'Powell', options={"xtol":xtol, "ftol":ftol})#, bounds=[(0.0,np.pi)]) + return (float(r1.fun), -float(r2.fun)) + + def shear3D(self, x, y, guess1 = np.pi/2.0, guess2 = np.pi/2.0): + tol = 0.005 + def func1(z): return self.shear([x, y, z]) + r1 = optimize.minimize(func1, guess1, args=(), method = 'COBYLA', options={"tol":tol})#, bounds=[(0.0,np.pi)]) + def func2(z): return -self.shear([x, y, z]) + r2 = optimize.minimize(func2, guess2, args=(), method = 'COBYLA', options={"tol":tol})#, bounds=[(0.0,np.pi)]) + return (float(r1.fun), -float(r2.fun), float(r1.x), float(r2.x)) + + def Poisson2D(self, x): + ftol = 0.001 + xtol = 0.01 + def func1(z): return self.Poisson([x[0], x[1], z]) + r1 = optimize.minimize(func1, np.pi/2.0, args=(), method = 'Powell', options={"xtol":xtol, "ftol":ftol})#, bounds=[(0.0,np.pi)]) + def func2(z): return -self.Poisson([x[0], x[1], z]) + r2 = optimize.minimize(func2, np.pi/2.0, args=(), method = 'Powell', options={"xtol":xtol, "ftol":ftol})#, bounds=[(0.0,np.pi)]) + return (min(0,float(r1.fun)), max(0,float(r1.fun)), -float(r2.fun)) + + def poisson3D(self, x, y, guess1 = np.pi/2.0, guess2 = np.pi/2.0): + tol = 0.005 + def func1(z): return self.Poisson([x, y, z]) + r1 = optimize.minimize(func1, guess1, args=(), method = 'COBYLA', options={"tol":tol})#, bounds=[(0.0,np.pi)]) + def func2(z): return -self.Poisson([x, y, z]) + r2 = optimize.minimize(func2, guess2, args=(), method = 'COBYLA', options={"tol":tol})#, bounds=[(0.0,np.pi)]) + return (min(0,float(r1.fun)), max(0,float(r1.fun)), -float(r2.fun), float(r1.x), float(r2.x)) + + +class ElasticOrtho(Elastic): + """An elastic tensor, for the specific case of an orthorhombic system""" + + def __init__(self, arg): + """Initialize from a matrix, or from an Elastic object""" + if type(arg) == str: + Elastic.__init__(self, arg) + elif isinstance(arg, Elastic): + self.CVoigt = arg.CVoigt + self.SVoigt = arg.SVoigt + self.Smat = arg.Smat + else: + raise TypeError("ElasticOrtho constructor argument should be string or Elastic object") + + def Young(self, x): + ct2 = math.cos(x[0])**2 + st2 = 1 - ct2 + cf2 = math.cos(x[1])**2 + sf2 = 1 - cf2 + s11 = self.Smat[0][0][0][0] + s22 = self.Smat[1][1][1][1] + s33 = self.Smat[2][2][2][2] + s44 = 4 * self.Smat[1][2][1][2] + s55 = 4 * self.Smat[0][2][0][2] + s66 = 4 * self.Smat[0][1][0][1] + s12 = self.Smat[0][0][1][1] + s13 = self.Smat[0][0][2][2] + s23 = self.Smat[1][1][2][2] + return 1/(ct2**2*s33 + 2*cf2*ct2*s13*st2 + cf2*ct2*s55*st2 + 2*ct2*s23*sf2*st2 + ct2*s44*sf2*st2 + cf2**2*s11*st2**2 + 2*cf2*s12*sf2*st2**2 + cf2*s66*sf2*st2**2 + s22*sf2**2*st2**2) + + def LC(self, x): + ct2 = math.cos(x[0])**2 + cf2 = math.cos(x[1])**2 + s11 = self.Smat[0][0][0][0] + s22 = self.Smat[1][1][1][1] + s33 = self.Smat[2][2][2][2] + s12 = self.Smat[0][0][1][1] + s13 = self.Smat[0][0][2][2] + s23 = self.Smat[1][1][2][2] + return 1000 * (ct2 * (s13 + s23 + s33) + (cf2 * (s11 + s12 + s13) + (s12 + s22 + s23) * (1 - cf2)) * (1 - ct2)) + + def shear(self, x): + ct = math.cos(x[0]) + ct2 = ct*ct + st2 = 1 - ct2 + cf = math.cos(x[1]) + sf = math.sin(x[1]) + sf2 = sf*sf + cx = math.cos(x[2]) + cx2 = cx*cx + sx = math.sin(x[2]) + sx2 = 1 - cx2 + s11 = self.Smat[0][0][0][0] + s22 = self.Smat[1][1][1][1] + s33 = self.Smat[2][2][2][2] + s44 = 4 * self.Smat[1][2][1][2] + s55 = 4 * self.Smat[0][2][0][2] + s66 = 4 * self.Smat[0][1][0][1] + s12 = self.Smat[0][0][1][1] + s13 = self.Smat[0][0][2][2] + s23 = self.Smat[1][1][2][2] + r = ( + ct2*ct2*cx2*s44*sf2 + cx2*s44*sf2*st2*st2 + 4*cf**3*ct*cx*(-2*s11 + 2*s12 + s66)*sf*st2*sx + + 2*cf*ct*cx*sf*(ct2*(s44 - s55) + (4*s13 - 4*s23 - s44 + s55 - 4*s12*sf2 + 4*s22*sf2 - 2*s66*sf2)*st2)*sx + + s66*sf2*sf2*st2*sx2 + cf**4*st2*(4*ct2*cx2*s11 + s66*sx2) + + ct2*(2*cx2*(2*s33 + sf2*(-4*s23 - s44 + 2*s22*sf2))*st2 + s55*sf2*sx2) + + cf**2*(ct2*ct2*cx2*s55 + ct2*(-2*cx2*(4*s13 + s55 - 2*(2*s12 + s66)*sf2)*st2 + s44*sx2) + + st2*(cx2*s55*st2 + 2*(2*s11 - 4*s12 + 2*s22 - s66)*sf2*sx2)) + ) + return 1/r + + def Poisson(self, x): + ct = math.cos(x[0]) + ct2 = ct*ct + st2 = 1 - ct2 + cf = math.cos(x[1]) + sf = math.sin(x[1]) + cx = math.cos(x[2]) + sx = math.sin(x[2]) + s11 = self.Smat[0][0][0][0] + s22 = self.Smat[1][1][1][1] + s33 = self.Smat[2][2][2][2] + s44 = 4 * self.Smat[1][2][1][2] + s55 = 4 * self.Smat[0][2][0][2] + s66 = 4 * self.Smat[0][1][0][1] + s12 = self.Smat[0][0][1][1] + s13 = self.Smat[0][0][2][2] + s23 = self.Smat[1][1][2][2] + + return ( + (-(ct**2*cx**2*s33*st2) - cf**2*cx**2*s13*st2*st2 - cx**2*s23*sf**2*st2*st2 + ct*cx*s44*sf*st2*(ct*cx*sf + cf*sx) - + ct**2*s23*(ct*cx*sf + cf*sx)**2 - cf**2*s12*st2*(ct*cx*sf + cf*sx)**2 - s22*sf**2*st2*(ct*cx*sf + cf*sx)**2 + + cf*ct*cx*s55*st2*(cf*ct*cx - sf*sx) - cf*s66*sf*st2*(ct*cx*sf + cf*sx)*(cf*ct*cx - sf*sx) - + ct**2*s13*(cf*ct*cx - sf*sx)**2 - cf**2*s11*st2*(cf*ct*cx - sf*sx)**2 - s12*sf**2*st2*(cf*ct*cx - sf*sx)**2)/ + (ct**4*s33 + 2*cf**2*ct**2*s13*st2 + cf**2*ct**2*s55*st2 + 2*ct**2*s23*sf**2*st2 + ct**2*s44*sf**2*st2 + + cf**4*s11*st2*st2 + 2*cf**2*s12*sf**2*st2*st2 + cf**2*s66*sf**2*st2*st2 + s22*sf**4*st2*st2) + ) + + +################################################################################################ + +# Materials Project URL +urlBase = 'https://www.materialsproject.org/rest' + + +def queryMaterials(query, mapiKey): + """Return a list of material IDs for a given query string""" + + # If the query is a material ID, return it + if query[0:3] == "mp-": return [query] + + try: + r = requests.get(f'{urlBase}/v2/materials/{query}/mids', headers={"X-API-KEY": mapiKey}) + resp = r.json() + except Exception as e: + print(str(e), file=sys.stderr) + return [] + + if (not resp['valid_response']): return [] + return resp['response'] + + +def queryElasticityV2(mat, mapiKey): + """Return elastic properties for a given material ID, using V2 MAPI""" + + data = { 'criteria': '{"task_id": "' + mat + '"}', + 'properties': '["formula", "pretty_formula", "material_id", "elasticity"]', + 'API_KEY': mapiKey } + try: + r = requests.post(f'{urlBase}/v2/query', data) + resp = r.json() + except Exception as e: + print(str(e), file=sys.stderr) + return None + + if not resp["valid_response"]: return None + if len(resp["response"]) > 1: raise(Exception("Multiple results returned")) + if len(resp["response"]) == 0: return None + return resp["response"][0] + + +def ELATE_MaterialsProject(query, mapiKey): + """Call ELATE with a query from the Materials Project""" + + # If we were directly given a material ID, or there is a simple match + materials = queryMaterials(query, mapiKey) + if len(materials) == 1: + r = queryElasticityV2(query, mapiKey) + + if r and 'elasticity' in r: + tensor = r["elasticity"]["elastic_tensor"] + return ELATE(tensor, '%s (Materials Project id %s)' % (r["pretty_formula"], "https://www.materialsproject.org/materials/", r["material_id"], r["material_id"])) + + # Otherwise, run the MP query, list the matches and let the user choose + sys.stdout = outbuffer = StringIO() + printTitle(outbuffer, "ELATE: Elastic tensor analysis") + print('

    Query from the Materials Project database

    ') + + # Either there was no match, or a single match with no elastic data + if len(materials) <= 1: + print("""

    + Your query for %s from the Materials Project database + has returned a total of zero result. Or is it zero results? In any case, we are very sorry.

    + +

    If you wish, you can try another query here: +

    + + +
    + or go back to our main page. +

    """ % (query)) + return finishWebPage(outbuffer) + + + print("""

    Your query for %s from the Materials Project database + has returned %d results.""" % (query, len(materials))) + + if len(materials) > 10: + materials = materials[0:10] + print("Below is a table of the 10 first matches.") + + print("") + for mat in materials: + r = queryElasticityV2(mat, mapiKey) + print('' % (mat, mat, r["pretty_formula"])) + if "elasticity" in r and r["elasticity"]: + print('' % (mat)) + else: + print('') + print("
    IdentifierFormulaElastic data
    %s%sElastic data available, perform analysis
    No elastic data available
    ") + + return finishWebPage(outbuffer) + + +def ELATE(matrix, sysname): + """ELATE performs the calculation and plots every property in 2D""" + + # Redirect output to out string buffer + sys.stdout = outbuffer = StringIO() + + # Start timing + print('' % time.perf_counter()) + + printTitle(outbuffer, "Elastic analysis of " + removeHTMLTags(sysname)) + + try: + elas = Elastic(matrix) + except ValueError as e: + print('

    Invalid stiffness matrix: ') + print(e.args[0]) + if matrix: + print('
    ' + str(matrix) + '
    ') + + print('
    ') + print('') + return finishWebPage(outbuffer) + + if elas.isOrthorhombic(): + elas = ElasticOrtho(elas) + print('') + + print('

    Summary of the properties

    ') + + print('

    Input: stiffness matrix (coefficients in GPa) of %s

    ' % (sysname)) + print('
    ')
    +  for i in range(6):
    +    print(("   " + 6*"%7.5g  ") % tuple(elas.CVoigt[i]))
    +  print('
    ') + + avg = elas.averages() + print('

    Average properties

    ') + + print("") + print(('' + + '') + % tuple(avg[0])) + print(('' + + '') + % tuple(avg[1])) + print(('' + + '') + % tuple(avg[2])) + print('
    Averaging schemeBulk modulusYoung's modulusShear modulusPoisson's ratio
    VoigtKV = %7.5g GPaEV = %7.5g GPaGV = %7.5g GPaνV = %.5g
    ReussKR = %7.5g GPaER = %7.5g GPaGR = %7.5g GPaνR = %.5g
    HillKH = %7.5g GPaEH = %7.5g GPaGH = %7.5g GPaνH = %.5g
    ') + + + print('''

    Eigenvalues of the stiffness matrix

    + + + + + + + + ''') + eigenval = sorted(np.linalg.eig(elas.CVoigt)[0]) + print((6*'') % tuple(eigenval)) + print('
    λ1λ2λ3λ4λ5λ6
    %7.5g GPa
    ') + + if eigenval[0] <= 0: + print('
    Stiffness matrix is not definite positive, crystal is mechanically unstable
    ') + print('No further analysis will be performed.
    ') + return finishWebPage(outbuffer) + + + minE = minimize(elas.Young, 2) + maxE = maximize(elas.Young, 2) + minLC = minimize(elas.LC, 2) + maxLC = maximize(elas.LC, 2) + minG = minimize(elas.shear, 3) + maxG = maximize(elas.shear, 3) + minNu = minimize(elas.Poisson, 3) + maxNu = maximize(elas.Poisson, 3) + + print("""

    Variations of the elastic moduli

    + + + + + + """) + + print(('' + + '' + + '' + + '') % (minE[1], maxE[1], minLC[1], maxLC[1], minG[1], maxG[1], minNu[1], maxNu[1])) + + anisE = '%8.4g' % (maxE[1]/minE[1]) + anisLC = ('%8.4f' % (maxLC[1]/minLC[1])) if minLC[1] > 0 else "∞" + anisG = '%8.4g' % (maxG[1]/minG[1]) + anisNu = ('%8.4f' % (maxNu[1]/minNu[1])) if minNu[1]*maxNu[1] > 0 else "∞" + print(('' + 4 * '' + + '') % (anisE, anisLC, anisG, anisNu)) + + print('') + print('' % tuple(dirVec(*minE[0]))) + print('' % tuple(dirVec(*maxE[0]))) + print('' % tuple(dirVec(*minLC[0]))) + print('' % tuple(dirVec(*maxLC[0]))) + print('' % tuple(dirVec1(*minG[0]))) + print('' % tuple(dirVec1(*maxG[0]))) + print('' % tuple(dirVec1(*minNu[0]))) + print('' % tuple(dirVec1(*maxNu[0]))) + print('') + + print('') + print('' % tuple(dirVec2(*minG[0]))) + print('' % tuple(dirVec2(*maxG[0]))) + print('' % tuple(dirVec2(*minNu[0]))) + print('' % tuple(dirVec2(*maxNu[0]))) + print('
    Young\'s modulusLinear compressibilityShear modulusPoisson\'s ratio
    EminEmaxβminβmaxGminGmaxνminνmax
    Value%8.5g GPa%8.5g GPa%8.5g TPa–1%8.5g TPa–1%8.5g GPa%8.5g GPa%.5g%.5gValue
    Anisotropy%sAnisotropy
    Axis%.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    Axis
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    %.4f
    Second axis
    ') + + print("

    Spatial dependence of Young's modulus

    ") + print("""
    + + + +
    +
    """ % (matrix, sysname, "young")) + m = 1.2 * maxE[1] + makePolarPlot(lambda x: elas.Young([np.pi / 2, x]), m, "Young's modulus in (xy) plane", "xy") + makePolarPlot(lambda x: elas.Young([x, 0]), m, "Young's modulus in (xz) plane", "xz") + makePolarPlot(lambda x: elas.Young([x, np.pi / 2]), m, "Young's modulus in (yz) plane", "yz") + + print("

    Spatial dependence of linear compressibility

    ") + print("""
    + + + +
    +
    """ % (matrix, sysname, "lc")) + m = 1.2 * max(maxLC[1], abs(minLC[1])) + makePolarPlotPosNeg(lambda x: elas.LC([np.pi / 2, x]), m, "linear compressibility in (xy) plane", "xy") + makePolarPlotPosNeg(lambda x: elas.LC([x, 0]), m, "linear compressibility in (xz) plane", "xz") + makePolarPlotPosNeg(lambda x: elas.LC([x, np.pi / 2]), m, "linear compressibility in (yz) plane", "yz") + + print("

    Spatial dependence of shear modulus

    ") + print("""
    + + + +
    +
    """ % (matrix, sysname, "shear")) + m = 1.2 * maxG[1] + makePolarPlot2(lambda x: elas.shear2D([np.pi / 2, x]), m, "Shear modulus in (xy) plane", "xy") + makePolarPlot2(lambda x: elas.shear2D([x, 0]), m, "Shear modulus in (xz) plane", "xz") + makePolarPlot2(lambda x: elas.shear2D([x, np.pi / 2]), m, "Shear modulus in (yz) plane", "yz") + + print("

    Spatial dependence of Poisson's ratio

    ") + print("""
    + + + +
    +
    """ % (matrix, sysname, "poisson")) + m = 1.2 * max(abs(maxNu[1]), abs(minNu[1])) + makePolarPlot3(lambda x: elas.Poisson2D([np.pi / 2, x]), m, "Poisson's ratio in (xy) plane", "xy") + makePolarPlot3(lambda x: elas.Poisson2D([x, 0]), m, "Poisson's ratio in (xz) plane", "xz") + makePolarPlot3(lambda x: elas.Poisson2D([x, np.pi / 2]), m, "Poisson's ratio in (yz) plane", "yz") + + print("
    ") + return finishWebPage(outbuffer) + + +def wait3D(matrix, sysname, job): + """Display a waiting page while we calculate a 3D plot""" + + sys.stdout = outbuffer = StringIO() + writeHeader(outbuffer, "Young 3D for " + removeHTMLTags(sysname)) + + print(""" +
    + [loading] +

    Please wait while your 3D graph is loading… (it can take from 15 seconds up to a minute)

    + """) + + # Pass arguments + print(""" + """ % (matrix, sysname, job)) + + # Reload immediately + print(""" + """) + + return finishWebPage(outbuffer) + + +def plot3D(matrix, sysname, job): + """Display a 3D plot""" + + # Dispatch to the specific function depending on type + functions = {'young': YOUNG3D, 'lc': LC3D, 'shear': SHEAR3D, 'poisson': POISSON3D} + return functions[job](matrix, sysname) + + +# ELATE : basic usage of the tool, only 2D plots +# YOUNG3D : visualize Young's modulus in 3D +# LC3D : visualize Linear compressiblity in 3D +# SHEAR3D : visualize Shear modulus in 3D +# POISSON3D : visualize Poisson ratio in 3D +################################################################################################ + + +def YOUNG3D(matrix, sysname): + + sys.stdout = outbuffer = StringIO() + writeHeader(outbuffer, "Young 3D for " + removeHTMLTags(sysname)) + + # Start timing + print('' % time.perf_counter()) + print('
    ') + + print("

    3D Visualization of Young's modulus

    ") + elas = Elastic(matrix) + if elas.isOrthorhombic(): + elas = ElasticOrtho(elas) + print('') + + make3DPlot(lambda x, y: elas.Young_2(x, y), "Young's modulus") + + print('

    Input: stiffness matrix (coefficients in GPa) of %s

    ' % (sysname)) + print('
    ')
    +    for i in range(6):
    +        print(("   " + 6 * "%7.5g  ") % tuple(elas.CVoigt[i]))
    +    print('
    ') + return finishWebPage(outbuffer) + + +def LC3D(matrix, sysname): + + sys.stdout = outbuffer = StringIO() + writeHeader(outbuffer, "LC 3D for " + removeHTMLTags(sysname)) + + # Start timing + print('' % time.perf_counter()) + print('
    ') + + print("

    3D Visualization of Linear compressiblity

    ") + elas = Elastic(matrix) + if elas.isOrthorhombic(): + elas = ElasticOrtho(elas) + print('') + + make3DPlotPosNeg(lambda x, y: elas.LC_2(x, y), "Linear compressiblity") + + print('

    Input: stiffness matrix (coefficients in GPa) of %s

    ' % (sysname)) + print('
    ')
    +    for i in range(6):
    +        print(("   " + 6 * "%7.5g  ") % tuple(elas.CVoigt[i]))
    +    print('
    ') + return finishWebPage(outbuffer) + + +def SHEAR3D(matrix, sysname): + + sys.stdout = outbuffer = StringIO() + writeHeader(outbuffer, "Shear 3D for " + removeHTMLTags(sysname)) + + # Start timing + print('' % time.perf_counter()) + print('
    ') + + print("

    3D Visualization of Shear modulus

    ") + elas = Elastic(matrix) + if elas.isOrthorhombic(): + elas = ElasticOrtho(elas) + print('') + + make3DPlot2(lambda x, y, g1, g2: elas.shear3D(x, y, g1, g2), "Shear modulus") + + print('

    Input: stiffness matrix (coefficients in GPa) of %s

    ' % (sysname)) + print('
    ')
    +    for i in range(6):
    +        print(("   " + 6 * "%7.5g  ") % tuple(elas.CVoigt[i]))
    +    print('
    ') + return finishWebPage(outbuffer) + + +def POISSON3D(matrix, sysname): + + sys.stdout = outbuffer = StringIO() + writeHeader(outbuffer, "Poisson 3D for " + removeHTMLTags(sysname)) + + # Start timing + print('' % time.perf_counter()) + print('
    ') + + print("

    3D Visualization of Poisson's ratio

    ") + elas = Elastic(matrix) + if elas.isOrthorhombic(): + elas = ElasticOrtho(elas) + print('') + + make3DPlot3(lambda x, y, g1, g2: elas.poisson3D(x, y, g1, g2), "Poisson's ratio") + + print('

    Input: stiffness matrix (coefficients in GPa) of %s

    ' % (sysname)) + print('
    ')
    +    for i in range(6):
    +        print(("   " + 6 * "%7.5g  ") % tuple(elas.CVoigt[i]))
    +    print('
    ') + return finishWebPage(outbuffer) + + +# Added by MG +INTERNAL_CSS = """ + +""" + diff --git a/abipy/tools/elate/last_git_commit b/abipy/tools/elate/last_git_commit new file mode 100644 index 000000000..2fbd8b541 --- /dev/null +++ b/abipy/tools/elate/last_git_commit @@ -0,0 +1,5 @@ +commit 9084f6fe754a7e3db1e3a346364d6b7cbfa1707b (HEAD -> master, origin/master, origin/HEAD) +Author: Francois-Xavier Coudert +Date: Thu May 27 11:55:18 2021 +0200 + + Add reference diff --git a/abipy/tools/fftprof.py b/abipy/tools/fftprof.py index 108b77605..74eed27bb 100644 --- a/abipy/tools/fftprof.py +++ b/abipy/tools/fftprof.py @@ -2,14 +2,18 @@ Python interface to fftprof. Provides objects to benchmark the FFT libraries used by ABINIT and plot the results with matplotlib. """ +from __future__ import annotations + import os import tempfile import numpy as np from subprocess import Popen, PIPE -from monty.os.path import which +from shutil import which from monty.fnmatch import WildCard from abipy.tools.plotting import add_fig_kwargs +from abipy.tools.typing import Figure + __all__ = [ "FFTBenchmark", @@ -48,7 +52,7 @@ } -class FFT_Test(object): +class FFT_Test: """ This object stores the wall-time of the FFT as a function of the size of the problem. @@ -63,7 +67,7 @@ def __init__(self, ecut, ngfft, wall_time, info): """ self.ecut = np.asarray(ecut) self.necut = len(ecut) - self.ngfft = np.asarray(ngfft, np.int) + self.ngfft = np.asarray(ngfft, int) self.wall_time = np.asarray(wall_time) self._info = info @@ -73,18 +77,20 @@ def __init__(self, ecut, ngfft, wall_time, info): self.fftalg = int(self.fftalg) self.nthreads = int(self.nthreads) - def __str__(self): + def __str__(self) -> str: """String representation.""" return "fftalg: %s, nt: %d" % (self.fftalg, self.nthreads) - def speedup_wrt(self, other): + def speedup_wrt(self, other: FFT_Test): """Compare self with other, return a new instance of FFT_Test containing the speedup.""" info = self._info.copy() info["speedup"] = other.wall_time / self.wall_time return FFT_Test(self.ecut, self.ngfft, self.wall_time, info) def plot_ax(self, ax, ydata=None, fact=1.0): - """Plot ydata on the axis ax. If data is None, the wall_time is plotted.""" + """ + Plot ydata on the axis ax. If data is None, the wall_time is plotted. + """ color = _color_fftalg[self.fftalg] linestyle = _linestyle_nt[self.nthreads] marker = _markers_nt[self.nthreads] @@ -104,7 +110,7 @@ def plot_ax(self, ax, ydata=None, fact=1.0): return line -class FFTBenchmark(object): +class FFTBenchmark: """ Container class storing the results of the FFT benchmark. @@ -138,7 +144,7 @@ def tests_with_fftalg(self, fftalg): return lst @add_fig_kwargs - def plot(self, exclude_algs=None, exclude_threads=None, **kwargs): + def plot(self, exclude_algs=None, exclude_threads=None, **kwargs) -> Figure: """ Plot the wall-time and the speed-up. """ @@ -306,7 +312,7 @@ class FFTProfError(Exception): """Exceptions raised by FFTprof.""" -class FFTProf(object): +class FFTProf: """Wrapper around fftprof Fortran executable.""" Error = FFTProfError @@ -319,16 +325,16 @@ def __init__(self, fft_input, executable="fftprof"): raise self.Error("Cannot find executable %s in $PATH" % executable) @classmethod - def from_file(cls, filename, executable="fftprof"): + def from_file(cls, filename, executable="fftprof") -> FFTProf: with open(filename, "r") as fh: fft_input = fh.read() return cls(fft_input, executable=executable) - def run(self): + def run(self) -> int: """Execute fftprof in a subprocess.""" self.workdir = tempfile.mkdtemp() - print(self.workdir) + #print(self.workdir) self.stdin_fname = os.path.join(self.workdir, "fftprof.in") self.stdout_fname = os.path.join(self.workdir, "fftprof.out") @@ -342,9 +348,7 @@ def run(self): cmd_str = " ".join(args) p = Popen(cmd_str, shell=True, stdout=PIPE, stderr=PIPE, cwd=self.workdir) - - (self.stdout_data, self.stderr_data) = p.communicate() - + self.stdout_data, self.stderr_data = p.communicate() self.returncode = p.returncode if self.returncode != 0: diff --git a/abipy/tools/iotools.py b/abipy/tools/iotools.py index 1c6d3d131..1094c3714 100644 --- a/abipy/tools/iotools.py +++ b/abipy/tools/iotools.py @@ -1,11 +1,96 @@ # coding: utf-8 """IO related utilities.""" -import os +from __future__ import annotations +import os +import codecs +import errno +import tempfile +import datetime +import ruamel.yaml as yaml +import pandas as pd + +from pathlib import Path from contextlib import ExitStack from subprocess import call +from typing import Any from monty.termcolor import cprint from monty.string import list_strings +from abipy.tools.typing import PathLike + + +def make_executable(filepath: PathLike) -> None: + """Make file executable""" + mode = os.stat(filepath).st_mode + mode |= (mode & 0o444) >> 2 # copy R bits to X + os.chmod(filepath, mode) + + +def try_files(filepaths: list[PathLike]) -> Path: + """ + Return the first existent file in filepaths + or raise RuntimeError. + """ + for path in filepaths: + path = Path(str(path)) + if path.exists(): return path + + raise RuntimeError("Cannot find {filepaths=}") + + +def file_with_ext_indir(ext: str, directory: PathLike) -> Path: + """ + Find file with extension `ext` inside directory. + Raise RuntimeError if no file can be found. + """ + directory = Path(str(directory)) + for path in directory.listdir(): + if path.is_dir(): continue + if path.suffix == ext: + return path.absolute() + + raise RuntimeError(f"Cannot find file with extension {ext} in {directory=})") + + +def yaml_dump(obj: Any): + """Dump object in Yaml format""" + import io + + y = yaml.YAML(typ='unsafe') + stream = io.StringIO() + y.dump(obj, stream) + stream.seek(0) + s = stream.read() + #print(s) + return s + + +def yaml_safe_load(string: str) -> Any: + """Load Yaml string""" + return yaml.YAML(typ='safe', pure=True).load(string) + + +def yaml_unsafe_load(string: str) -> Any: + """Load Yaml string""" + return yaml.YAML(typ='unsafe').load(string) + + +def yaml_safe_load_path(filepath: str) -> Any: + """Load Yaml document from filepath""" + with open(os.path.expanduser(filepath), "rt") as fh: + return yaml.YAML(typ='safe', pure=True).load(fh.read()) + + +def dataframe_from_filepath(filepath: str, **kwargs) -> pd.DataFrame: + """ + Try to read a dataframe from an external file according to the file extension. + """ + _, ext = os.path.splitext(filepath) + if ext == 'csv': return pd.read_csv(filepath, **kwargs) + if ext == "json": return pd.read_json(filepath, **kwargs) + if ext in ("xls", "xlsx"): return pd.read_excel(filepath, **kwargs) + + raise ValueError(f"Don't know how to construct DataFrame from file {filepath} with extension: {ext}") class ExitStackWithFiles(ExitStack): @@ -41,7 +126,20 @@ def __getitem__(self, slice): return self.files.__getitem__(slice) -def ask_yes_no(prompt, default=None): # pragma: no cover +def get_input(prompt: str): + """ + Wraps python builtin input so that we can easily mock it in unit tests using: + + Example: + + from unittest.mock import patch + with patch('abipy.tools.iotools.get_input', return_value='no'): + do_something_that_uses_get_input + """ + return input(prompt) + + +def ask_yes_no(prompt: str, default=None): # pragma: no cover """ Ask a question and return a boolean (y/n) answer. @@ -54,16 +152,11 @@ def ask_yes_no(prompt, default=None): # pragma: no cover Valid answers are: y/yes/n/no (match is not case sensitive). """ # Fixes py2.x - try: - my_input = raw_input - except NameError: - my_input = input - answers = {'y': True, 'n': False, 'yes': True, 'no': False} ans = None while ans not in answers.keys(): try: - ans = my_input(prompt + ' ').lower() + ans = get_input(prompt + ' ').lower() if not ans: # response was an empty string ans = default @@ -80,14 +173,8 @@ def ask_yes_no(prompt, default=None): # pragma: no cover def _user_wants_to_exit(): # pragma: no cover - # Fixes py2.x - try: - my_input = raw_input - except NameError: - my_input = input - try: - answer = my_input("Do you want to continue [Y/n]") + answer = get_input("Do you want to continue [Y/n]") except EOFError: return True @@ -99,7 +186,7 @@ class EditorError(Exception): """Base class for exceptions raised by `Editor`""" -class Editor(object): # pragma: no cover +class Editor: # pragma: no cover DEFAULT_EDITOR = "vi" Error = EditorError @@ -110,20 +197,20 @@ def __init__(self, editor=None): else: self.editor = str(editor) - def edit_file(self, fname): - retcode = call([self.editor, fname]) + def edit_file(self, filepath): + retcode = call([self.editor, filepath]) if retcode != 0: - cprint("Retcode %s while editing file: %s" % (retcode, fname), "red") + cprint("Retcode %s while editing file: %s" % (retcode, filepath), "red") return retcode - def edit_files(self, fnames, ask_for_exit=True): - for idx, fname in enumerate(list_strings(fnames)): + def edit_files(self, filepaths, ask_for_exit=True): + for idx, fname in enumerate(list_strings(filepaths)): exit_status = self.edit_file(fname) if exit_status != 0: return exit_status - if ask_for_exit and idx != len(fnames) - 1 and _user_wants_to_exit(): + if ask_for_exit and idx != len(filepaths) - 1 and _user_wants_to_exit(): break return 0 @@ -137,5 +224,266 @@ def input_from_editor(message=None): # pragma: no cover fd, fname = mkstemp(text=True) Editor().edit_file(fname) - with open(fname) as fileobj: + with open(fname, "rt") as fileobj: return fileobj.read() + + +def ask_yesno(question: str, default=True): + """ + Args: + question (): + default (): + Returns: + """ + try: + answer = input(question) + return answer.lower().strip() in ["y", "yes"] + except EOFError: + return default + + +umask = os.umask(0) +os.umask(umask) + +def _maketemp(name: str, createmode=None) -> str: + """ + Create a temporary file with the filename similar the given ``name``. + The permission bits are copied from the original file or ``createmode``. + Returns: the name of the temporary file. + """ + d, fn = os.path.split(name) + fd, tempname = tempfile.mkstemp(prefix=f".{fn}-", dir=d) + os.close(fd) + + # Temporary files are created with mode 0600, which is usually not + # what we want. If the original file already exists, just copy its mode. + # Otherwise, manually obey umask. + try: + st_mode = os.lstat(name).st_mode & 0o777 + except OSError as err: + if err.errno != errno.ENOENT: + raise + st_mode = createmode + if st_mode is None: + st_mode = ~umask + st_mode &= 0o666 + os.chmod(tempname, st_mode) + + return tempname + + +class AtomicFile: + """ + This is a straight port of Alexander Saltanov's atomicfile package. + Writeable file object that atomically writes a file. + All writes will go to a temporary file. + Call ``close()`` when you are done writing, and AtomicFile will rename + the temporary copy to the original name, making the changes visible. + If the object is destroyed without being closed, all your writes are + discarded. + If an ``encoding`` argument is specified, codecs.open will be called to open + the file in the wanted encoding. + """ + + def __init__(self, name, mode="w+b", createmode=None, encoding=None): + """ + Args: + name (): + mode (): + createmode (): + encoding (): + """ + self.__name = name # permanent name + self._tempname = _maketemp(name, createmode=createmode) + if encoding: + self._fp = codecs.open(self._tempname, mode, encoding) # pylint: disable=R1732 + else: + self._fp = open(self._tempname, mode) # pylint: disable=R1732 + + # delegated methods + self.write = self._fp.write + self.fileno = self._fp.fileno + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, exc_tb): + if exc_type: + return + self.close() + + def close(self) -> None: + """ + Close the file. + """ + if not self._fp.closed: + self._fp.close() + # This to avoid: + # FileExistsError: [WinError 183] Cannot create a file when that file already exists: + # On Windows, if dst already exists, OSError will be raised even if it is a file; + # there may be no way to implement an atomic rename when dst names an existing file. + if os.name == "nt" and os.path.exists(self.__name): + os.remove(self.__name) + os.rename(self._tempname, self.__name) + + def discard(self) -> None: + """ + Discard the file. + """ + if not self._fp.closed: + try: + os.unlink(self._tempname) + except OSError: + pass + self._fp.close() + + def __del__(self): + if getattr(self, "_fp", None): # constructor actually did something + self.discard() + + +def workdir_with_prefix(workdir, prefix, exist_ok=False) -> Path: + """ + if workdir is None, create temporary directory with prefix else check that workdir does not exist. + If exist_ok is False (the default), a FileExistsError is raised if the target directory already exists. + """ + if workdir is None: + if prefix is not None: + prefix += datetime.datetime.now().strftime("dT%H-%M-%S-") + workdir = tempfile.mkdtemp(prefix=prefix, dir=os.getcwd()) + else: + workdir = str(workdir) + if os.path.exists(workdir) and not exist_ok: + raise RuntimeError(f"{workdir=} already exists!") + os.makedirs(workdir, exist_ok=exist_ok) + + return Path(workdir).absolute() + + +def change_ext_from_top(top: PathLike, old_ext: str, new_ext: str) -> int: + """ + Change the extension of all the files with extension old_ext with new_ext. + + Args: + top: Walk the file system starting from top. + old_ext: Old file extension. + new_ext: New file extension. + + Return: Number of files whose extension has been changed. + """ + count = 0 + for root, dirs, files in os.walk(str(top)): + root = Path(root) + for filepath in files: + filepath = root / Path(filepath) + if not filepath.name.endswith(old_ext): continue + new_name = filepath.name[:-len(old_ext)] + new_ext + filepath.rename(root / new_name) + count += 1 + + return count + + +class _Script: + """ + Base class for Script objects. + """ + + def __init__(self, filepath: str): + self.filepath = filepath + + self.text = f"""\ +#!/usr/bin/env python +# This script has been automatically generated by AbiPy. +from __future__ import annotations + +import numpy as np +import pandas as pd + +if False: + import seaborn as sns + sns.set(context="paper", style='darkgrid', palette='deep', + font='sans-serif', font_scale=0.8, color_codes=False, rc=None) +""" + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Activated at the end of the with statement.""" + self.write() + + def add_text(self, text: str): + """Add `text` to the script.""" + self.text += "\n" + text + return self + + def write(self): + """ + Write python script and json file with the list of files in the Robot. + """ + with open(self.filepath, "wt") as fh: + fh.write(self.text) + make_executable(self.filepath) + return self + + +class PythonScript(_Script): + """ + Small object used to generate python scripts programmatically. + Client code can then add additional logic to the script and write it to disk. + + Example: + + with PythonScript("script.py") as script: + script.add_text("a = 1") + """ + + def __init__(self, filepath: str): + super().__init__(filepath) + + self.text = f"""\ +#!/usr/bin/env python +# This script has been automatically generated by AbiPy. +from __future__ import annotations + +import numpy as np +import pandas as pd + +if False: + import seaborn as sns + sns.set(context="paper", style='darkgrid', palette='deep', + font='sans-serif', font_scale=0.8, color_codes=False, rc=None) +""" + + def add_main(self): + """Add main section""" + self.text += \ +""" + +if __name__ == "__main__": + main() +""" + return self + + + +class ShellScript(_Script): + """ + Small object used to generate a shell scripts programmatically. + Client code can then add additional logic to the script and write it to disk. + + Example: + + with ShellScript("script.sh") as script: + script.add_text("a = 1") + """ + + def __init__(self, filepath: str): + super().__init__(filepath) + + self.text = f"""\ +#!/bin/bash +# This script has been automatically generated by AbiPy. + +""" diff --git a/abipy/tools/notebooks.py b/abipy/tools/notebooks.py index ae63deaca..f38246571 100644 --- a/abipy/tools/notebooks.py +++ b/abipy/tools/notebooks.py @@ -1,4 +1,19 @@ """Tools for ipython notebooks.""" +from __future__ import annotations + + +def find_free_port(): + """ + Find and return free port + + https://stackoverflow.com/questions/1365265/on-localhost-how-do-i-pick-a-free-port-number + """ + import socket + from contextlib import closing + with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s: + s.bind(('', 0)) + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + return s.getsockname()[1] def print_source_in_module(function, module): # pragma: no cover @@ -70,7 +85,7 @@ def print_doc(function, **kwargs): # pragma: no cover def ipw_listdir(top=".", recurse=True, widget_type="dropdown"): # pragma: no cover """ Return an ipython widget listing all the files located within the directory ``top`` - that can be inspected with :ref:`abiopen.py`. The user can select the file in the widget + that can be inspected with abiopen.py. The user can select the file in the widget and print info on the corresponding file inside the notebook. Args: diff --git a/abipy/tools/numtools.py b/abipy/tools/numtools.py index e43b6747b..96478c8b1 100644 --- a/abipy/tools/numtools.py +++ b/abipy/tools/numtools.py @@ -1,16 +1,82 @@ # coding: utf-8 """Numeric tools.""" +from __future__ import annotations + import numpy as np +import pandas as pd from monty.collections import dict2namedtuple from abipy.tools import duck -######################################################################################### -# Array tools -######################################################################################### +def print_stats_arr(arr: np.ndarray, take_abs=False) -> None: + """ + Print statistics on a NumPy array. + + Args: + take_abs: use abs(arr) if True. + """ + if np.iscomplexobj(arr): + arr = np.abs(arr) + if take_abs: + arr = np.abs(arr) + + print("Mean:", np.mean(arr)) + print("Median:", np.median(arr)) + print("Standard Deviation:", np.std(arr)) + print("Variance:", np.var(arr)) + min_index = np.argmin(arr) + print("Index of minimum value:", min_index) + print("Minimum value:", arr[min_index]) + max_index = np.argmax(arr) + print("Index of maximum value:", max_index) + print("Maximum value:", arr[max_index]) + # Percentile (e.g., 25th percentile) + print("25th Percentile:", np.percentile(arr, 25)) + + +def nparr_to_df(name: str, arr: np.ndarrays, columns: list[str]) -> pd.DataFrame: + """ + Insert a numpy array in a DataFrame with columns giving the indices. -def transpose_last3dims(arr): + Args: + name: Name of column with the values of the numpy array. + arr: numpy array + columns: List with the name of columns with the indices. + """ + shape, ndim = arr.shape, arr.ndim + if len(columns) != ndim: + raise ValueError(f"{len(columns)=} != {ndim=}") + + indices = np.indices(shape).reshape(ndim, -1).T.copy() + df = pd.DataFrame(indices, columns=columns) + df[name] = arr.flatten() + + return df + + +def build_mesh(x0: float, num: int, step: float, direction: str) -> tuple[list, int]: + """ + Generate a linear mesh of step `step` that is centered on x0 if + directions == "centered" or a mesh that starts/ends at x0 if direction is `>`/`<`. + Return mesh and index of x0. + """ + if direction == "centered": + start = x0 - num * step + return [start + i * step for i in range(2 * num + 1)], num + + elif direction in (">", "<"): + start, ix0 = x0, 0 + if direction == "<": + ix0 = num - 1 + step = -abs(step) + + return sorted([start + i * step for i in range(num)]), ix0 + + raise ValueError(f"Invalid {direction=}") + + +def transpose_last3dims(arr) -> np.ndarray: """ Transpose the last three dimensions of arr: (...,x,y,z) --> (...,z,y,x). """ @@ -21,7 +87,7 @@ def transpose_last3dims(arr): return np.ascontiguousarray(view) -def add_periodic_replicas(arr): +def add_periodic_replicas(arr: np.ndarray) -> np.ndarray: """ Returns a new array of shape=(..., nx+1,ny+1,nz+1) with redundant data points. @@ -31,12 +97,12 @@ def add_periodic_replicas(arr): oshape = ishape.copy() if ndim == 1: - oarr = np.empty(ishape+1, dtype=arr.dtype) + oarr = np.empty(ishape + 1, dtype=arr.dtype) oarr[:-1] = arr oarr[-1] = arr[0] elif ndim == 2: - oarr = np.empty(oshape+1, dtype=arr.dtype) + oarr = np.empty(oshape + 1, dtype=arr.dtype) oarr[:-1,:-1] = arr oarr[-1,:-1] = arr[0,:] oarr[:-1,-1] = arr[:,0] @@ -60,7 +126,7 @@ def add_periodic_replicas(arr): return oarr -def data_from_cplx_mode(cplx_mode, arr, tol=None): +def data_from_cplx_mode(cplx_mode: str, arr, tol=None): """ Extract the data from the numpy array ``arr`` depending on the values of ``cplx_mode``. @@ -176,7 +242,7 @@ def sort_and_groupby(items, key=None, reverse=False, ret_lists=False): # Sorting and ordering ######################################################################################### -def prune_ord(alist): +def prune_ord(alist: list) -> list: """ Return new list where all duplicated items in alist are removed @@ -334,43 +400,111 @@ def find_convindex(values, tol, min_numpts=1, mode="abs", vinf=None): return i + 1 -class BlochRegularGridInterpolator(object): +def find_degs_sk(enesb, atol): """ - This object interpolates the periodic part of a Bloch state in real space. + Return list of lists with the indices of the degenerated bands. + + Args: + enesb: Iterable with energies for the different bands. + Energies are assumed to be ordered. + atol: Absolute tolerance. Two states are degenerated if they differ by less than `atol`. + + Return: + List of lists. The i-th item contains the indices of the degenerates states + for the i-th degenerated set. + + :Examples: + + >>> find_degs_sk([1, 1, 2, 3.4, 3.401], atol=0.01) + [[0, 1], [2], [3, 4]] """ + ndeg = 0 + degs = [[0]] + e0 = enesb[0] + for ib, ee in enumerate(enesb[1:]): + ib += 1 + if abs(ee - e0) > atol: + e0 = ee + ndeg += 1 + degs.append([ib]) + else: + degs[ndeg].append(ib) + + return degs + - def __init__(self, structure, datar, add_replicas=True): +class BlochRegularGridInterpolator: + """ + This object interpolates the periodic part of a Bloch wavefunction in real space. + """ + + def __init__(self, structure, datar, add_replicas=True, **kwargs): """ Args: structure: :class:`Structure` object. - datar: [ndt, nx, ny, nz] array. + datar: [ndat, nx, ny, nz] array. add_replicas: If True, data is padded with redundant data points. - in order to have a periodic 3D array of shape=[ndt, nx+1, ny+1, nz+1]. + in order to have a periodic 3D array of shape=[ndat, nx+1, ny+1, nz+1]. + kwargs: Extra arguments are passed to RegularGridInterpolator. """ - from scipy.interpolate import RegularGridInterpolator self.structure = structure if add_replicas: datar = add_periodic_replicas(datar) self.dtype = datar.dtype - # We want a 4d array (ndt arrays of shape (nx, ny, nz) + # We want a 4d array (ndat arrays of shape (nx, ny, nz) nx, ny, nz = datar.shape[-3:] datar = np.reshape(datar, (-1,) + (nx, ny, nz)) - self.ndt = len(datar) + self.ndat = len(datar) x = np.linspace(0, 1, num=nx) y = np.linspace(0, 1, num=ny) z = np.linspace(0, 1, num=nz) - # Build `ndt` interpolators. Note that RegularGridInterpolator supports + # Build `ndat` interpolators. Note that RegularGridInterpolator supports # [nx, ny, nz, ...] arrays but then each call operates on the full set of - # ndt components and this complicates the declation of callbacks + # ndat components and this complicates the declation of callbacks # operating on a single component. - self._interpolators = [None] * self.ndt - for i in range(self.ndt): - self._interpolators[i] = RegularGridInterpolator((x, y, z), datar[i]) + from scipy.interpolate import RegularGridInterpolator + self._interpolators = [None] * self.ndat + for i in range(self.ndat): + self._interpolators[i] = RegularGridInterpolator((x, y, z), datar[i], **kwargs) + + def eval_points(self, frac_coords, idat=None, cartesian=False, kpoint=None, **kwargs) -> np.ndarray: + """ + Interpolate values on an arbitrary list of points. + + Args: + frac_coords: List of points in reduced coordinates unless `cartesian`. + idat: Index of the sub-array to interpolate. If None, all sub-arrays are interpolated. + cartesian: True if points are in cartesian coordinates. + kpoint: k-point in reduced coordinates. If not None, the phase-factor e^{ikr} is included. + + Return: + [ndat, npoints] array or [1, npoints] if idat is not None + """ + frac_coords = np.reshape(frac_coords, (-1, 3)) + if cartesian: + red_from_cart = self.structure.lattice.inv_matrix.T + frac_coords = [np.dot(red_from_cart, v) for v in frac_coords] + + uc_coords = np.reshape(frac_coords, (-1, 3)) % 1 - def eval_line(self, point1, point2, num=200, cartesian=False, kpoint=None): + if idat is None: + values = np.empty((self.ndat, len(uc_coords)), dtype=self.dtype) + for idat in range(self.ndat): + values[idat] = self._interpolators[idat](uc_coords, **kwargs) + else: + values = self._interpolators[idat](uc_coords, **kwargs) + + if kpoint is not None: + if hasattr(kpoint, "frac_coords"): kpoint = kpoint.frac_coords + kpoint = np.reshape(kpoint, (3,)) + values *= np.exp(2j * np.pi * np.dot(frac_coords, kpoint)) + + return values + + def eval_line(self, point1, point2, num=200, cartesian=False, kpoint=None, **kwargs): """ Interpolate values along a line. @@ -389,7 +523,7 @@ def eval_line(self, point1, point2, num=200, cartesian=False, kpoint=None): site1, site2: None if the points do not represent atomic sites. points: Points in fractional coords. dist: the distance of points along the line in Ang. - values: numpy array of shape [ndt, num] with interpolated values. + values: numpy array of shape [ndat, num] with interpolated values. """ site1 = None if duck.is_intlike(point1): @@ -418,71 +552,145 @@ def eval_line(self, point1, point2, num=200, cartesian=False, kpoint=None): line_points += point1 return dict2namedtuple(site1=site1, site2=site2, points=line_points, dist=dist, - values=self.eval_points(line_points, kpoint=kpoint)) + values=self.eval_points(line_points, kpoint=kpoint, **kwargs)) - def eval_points(self, frac_coords, idt=None, cartesian=False, kpoint=None): - """ - Interpolate values on an arbitrary list of points. +class BzRegularGridInterpolator: + """ + This object interpolates quantities defined in the BZ. + """ + def __init__(self, structure, shifts, datak, add_replicas=True, **kwargs): + """ Args: - frac_coords: List of points in reduced coordinates unless `cartesian`. - idt: Index of the sub-array to interpolate. If None, all sub-arrays are interpolated. - cartesian: True if points are in cartesian coordinates. - kpoint: k-point in reduced coordinates. If not None, the phase-factor e^{ikr} is included. - - Return: - [ndt, npoints] array or [1, npoints] if idt is not None + structure: :class:`Structure` object. + datak: [ndat, nx, ny, nz] array. + shifts: Shift of the mesh. + add_replicas: If True, data is padded with redundant data points. + in order to have a periodic 3D array of shape=[ndat, nx+1, ny+1, nz+1]. + kwargs: Extra arguments are passed to RegularGridInterpolator. """ - frac_coords = np.reshape(frac_coords, (-1, 3)) - if cartesian: - red_from_cart = self.structure.lattice.inv_matrix.T - frac_coords = [np.dot(red_from_cart, v) for v in frac_coords] + self.structure = structure + self.shifts = shifts - uc_coords = np.reshape(frac_coords, (-1, 3)) % 1 + if add_replicas: + datak = add_periodic_replicas(datak) - if idt is None: - values = np.empty((self.ndt, len(uc_coords)), dtype=self.dtype) - for idt in range(self.ndt): - values[idt] = self._interpolators[idt](uc_coords) - else: - values = self._interpolators[idt](uc_coords) + self.dtype = datak.dtype + # We want a 4d array (ndat arrays of shape (nx, ny, nz) + nx, ny, nz = datak.shape[-3:] + datak = np.reshape(datak, (-1,) + (nx, ny, nz)) + self.ndat = len(datak) + x = np.linspace(0, 1, num=nx) + y = np.linspace(0, 1, num=ny) + z = np.linspace(0, 1, num=nz) - if kpoint is not None: - if hasattr(kpoint, "frac_coords"): kpoint = kpoint.frac_coords - kpoint = np.reshape(kpoint, (3,)) - values *= np.exp(2j * np.pi * np.dot(frac_coords, kpoint)) + # Build `ndat` interpolators. Note that RegularGridInterpolator supports + # [nx, ny, nz, ...] arrays but then each call operates on the full set of + # ndat components and this complicates the declation of callbacks + # operating on a single component. + from scipy.interpolate import RegularGridInterpolator + self._interpolators = [None] * self.ndat + for i in range(self.ndat): + self._interpolators[i] = RegularGridInterpolator((x, y, z), datak[i], **kwargs) - return values + def eval_kpoint(self, frac_coords, cartesian=False, **kwargs) -> np.ndarray: + """ + Interpolate values at frac_coords + Args: + frac_coords: reduced coordinates of the k-point unless `cartesian`. + cartesian: True if k-point is in cartesian coordinates. -def find_degs_sk(enesb, atol): - """ - Return list of lists with the indices of the degenerated bands. + Return: + [ndat] array with interpolated data. + """ + # Handle K-point object + if hasattr(frac_coords, "frac_coords"): + frac_coords = frac_coords.frac_coords - Args: - enesb: Iterable with energies for the different bands. - Energies are assumed to be ordered. - atol: Absolute tolerance. Two states are degenerated if they differ by less than `atol`. + if cartesian: + red_from_cart = self.structure.reciprocal_lattice.inv_matrix.T + frac_coords = np.dot(red_from_cart, frac_coords) - Return: - List of lists. The i-th item contains the indices of the degenerates states - for the i-th degenerated set. + uc_coords = np.reshape(frac_coords, (3,)) % 1 - :Examples: + values = np.empty(self.ndat, dtype=self.dtype) + for idat in range(self.ndat): + values[idat] = self._interpolators[idat](uc_coords, **kwargs) - >>> find_degs_sk([1, 1, 2, 3.4, 3.401], atol=0.01) - [[0, 1], [2], [3, 4]] - """ - ndeg = 0 - degs = [[0]] - e0 = enesb[0] - for ib, ee in enumerate(enesb[1:]): - ib += 1 - if abs(ee - e0) > atol: - e0 = ee - ndeg += 1 - degs.append([ib]) - else: - degs[ndeg].append(ib) + return values + + #def eval_kline(self, point1, point2, num=200, cartesian=False, kpoint=None): + # """ + # Interpolate values along a line. + + # Args: + # point1: First point of the line. Accepts 3d vector or integer. + # The vector is in reduced coordinates unless `cartesian == True`. + # If integer, the first point of the line is given by the i-th site of the structure + # e.g. `point1=0, point2=1` gives the line passing through the first two atoms. + # point2: Second point of the line. Same API as `point1`. + # num: Number of points sampled along the line. + # cartesian: By default, `point1` and `point1` are interpreted as points in fractional + # coordinates (if not integers). Use True to pass points in cartesian coordinates. + # kpoint: k-point in reduced coordinates. If not None, the phase-factor e^{ikr} is included. + + # Return: named tuple with + # site1, site2: None if the points do not represent atomic sites. + # points: Points in fractional coords. + # dist: the distance of points along the line in Ang. + # values: numpy array of shape [ndat, num] with interpolated values. + # """ + # site1 = None + # if duck.is_intlike(point1): + # if point1 > len(self.structure): + # raise ValueError("point1: %s > natom: %s" % (point1, len(self.structure))) + # site1 = self.structure[point1] + # point1 = site1.coords if cartesian else site1.frac_coords + + # site2 = None + # if duck.is_intlike(point2): + # if point2 > len(self.structure): + # raise ValueError("point2: %s > natom: %s" % (point2, len(self.structure))) + # site2 = self.structure[point2] + # point2 = site2.coords if cartesian else site2.frac_coords + + # point1 = np.reshape(point1, (3,)) + # point2 = np.reshape(point2, (3,)) + # if cartesian: + # red_from_cart = self.structure.lattice.inv_matrix.T + # point1 = np.dot(red_from_cart, point1) + # point2 = np.dot(red_from_cart, point2) + + # p21 = point2 - point1 + # line_points = np.reshape([alpha * p21 for alpha in np.linspace(0, 1, num=num)], (-1, 3)) + # dist = self.structure.lattice.norm(line_points) + # line_points += point1 + + # return dict2namedtuple(site1=site1, site2=site2, points=line_points, dist=dist, + # values=self.eval_kpoints(line_points)) + + +#class PolyExtrapolator: +# +# def __init__(xs, ys): +# self.xs = np.array(xs) +# self.ys = np.array(ys) +# +# def eval(self, xvals, deg): +# p = np.poly1d(np.polyfit(self.xs, self.ys, deg)) +# return p[xvals] +# +# def plot_ax(self, ax, kwargs**) +# xvals = np.linspace(0, 1.1 * self.xs.max(), 100) +# +# from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt +# ax, fig, plt = get_ax_fig_plt(ax=ax) +# ax.scatter(xs, ys, marker="o") +# yvals = self.eval(xvals, deg=1) +# ax.plot(xvals, p[xvals], style="k--") +# ax.grid(True) +# ax.legend(loc="best", shadow=True, fontsize=fontsize) +# +# return fig - return degs diff --git a/abipy/tools/parallel.py b/abipy/tools/parallel.py new file mode 100644 index 000000000..7fbd8b9ed --- /dev/null +++ b/abipy/tools/parallel.py @@ -0,0 +1,72 @@ +""" +Tools used to parallelize sections of python code. +""" +from __future__ import annotations + +import os + +from monty.collections import dict2namedtuple + + +_MAX_NPROCS = os.cpu_count() + + +def get_max_nprocs() -> int: + """ + Return the maximum number of procs that can be used by AbiPy. + """ + return _MAX_NPROCS + + +def set_max_nprocs(max_nprocs: int | None) -> int: + """ + Set the maximum number of procs that can be used. + If max_nprocs is None, os.cpu_count() is used. + """ + global _MAX_NPROCS + if max_nprocs is None: + _MAX_NPROCS = os.cpu_count() + else: + _MAX_NPROCS = max_nprocs + + return _MAX_NPROCS + + +def pool_nprocs_pmode(nprocs: int | None, pmode: str): + """ + Helper function that allows one to switch from ThreadPool to multiprocessing Pool. + Returns named tuple with (nprocs, pool_class, using_msg) + + Args: + nprocs: Number of procs to use. If None, use cpu_count. + pmode: "threads": for ThreadPool. + "processes" for multiprocessing Pool. + "seq" for sequential execution (debugging) + """ + from multiprocessing.pool import ThreadPool + from multiprocessing import Pool + + max_nprocs = get_max_nprocs() + + if pmode == "seq": + nprocs, pool_cls = 1, ThreadPool + + elif pmode == "threads": + pool_cls = ThreadPool + if nprocs is not None: + pool_cls = ThreadPool if nprocs > 0 else Pool + nprocs = min(abs(nprocs), max_nprocs) + + elif pmode == "processes": + pool_cls = Pool + if nprocs is not None: + pool_cls = Pool if nprocs > 0 else ThreadPool + nprocs = min(abs(nprocs), max_nprocs) + + else: + raise ValueError(f"Invalid value of {pmode=}, it should be in ['seq', 'threads', 'processes']") + + return dict2namedtuple(nprocs=nprocs or max_nprocs, + pool_cls=pool_cls, + using_msg=f"using {nprocs=} with {pmode=} and Pool class: {pool_cls.__name__} ...", + ) diff --git a/abipy/tools/plotting.py b/abipy/tools/plotting.py index 7c53bf870..ae564a6d4 100644 --- a/abipy/tools/plotting.py +++ b/abipy/tools/plotting.py @@ -4,21 +4,32 @@ .. note:: - Avoid importing matplotlib in the module namespace otherwise startup is very slow. + Avoid importing matplotlib or plotly in the module namespace otherwise startup is very slow. """ +from __future__ import annotations + import os import time import itertools +import functools import numpy as np +import pandas as pd +import matplotlib.collections as mcoll -from collections import OrderedDict, namedtuple -from pymatgen.util.plotting import add_fig_kwargs, get_ax_fig_plt, get_ax3d_fig_plt, get_axarray_fig_plt -from .numtools import data_from_cplx_mode +from collections import namedtuple, OrderedDict +from typing import Any, Callable, Iterator +from monty.string import list_strings +from abipy.tools import duck +from abipy.tools.iotools import dataframe_from_filepath +from abipy.tools.typing import Figure, Axes, VectorLike +from abipy.tools.numtools import data_from_cplx_mode __all__ = [ "set_axlims", + "add_fig_kwargs", "get_ax_fig_plt", + "get_axarray_fig_plt", "get_ax3d_fig_plt", "plot_array", "ArrayPlotter", @@ -27,6 +38,9 @@ "plot_unit_cell", "GenericDataFilePlotter", "GenericDataFilesPlotter", + "add_plotly_fig_kwargs", + "get_fig_plotly", + "get_figs_plotly", ] @@ -36,22 +50,279 @@ ('loosely_dotted', (0, (1, 10))), ('dotted', (0, (1, 5))), ('densely_dotted', (0, (1, 1))), - + # ('loosely_dashed', (0, (5, 10))), ('dashed', (0, (5, 5))), ('densely_dashed', (0, (5, 1))), - + # ('loosely_dashdotted', (0, (3, 10, 1, 10))), ('dashdotted', (0, (3, 5, 1, 5))), ('densely_dashdotted', (0, (3, 1, 1, 1))), - + # ('loosely_dashdotdotted', (0, (3, 10, 1, 10, 1, 10))), ('dashdotdotted', (0, (3, 5, 1, 5, 1, 5))), ('densely_dashdotdotted', (0, (3, 1, 1, 1, 1, 1)))] ) -def ax_append_title(ax, title, loc="center", fontsize=None): + +def add_fig_kwargs(func): + """Decorator that adds keyword arguments for functions returning matplotlib + figures. + + The function should return either a matplotlib figure or None to signal + some sort of error/unexpected event. + See doc string below for the list of supported options. + """ + + @functools.wraps(func) + def wrapper(*args, **kwargs): + # pop the kwds used by the decorator. + title = kwargs.pop("title", None) + size_kwargs = kwargs.pop("size_kwargs", None) + show = kwargs.pop("show", True) + savefig = kwargs.pop("savefig", None) + tight_layout = kwargs.pop("tight_layout", False) + ax_grid = kwargs.pop("ax_grid", None) + ax_annotate = kwargs.pop("ax_annotate", None) + fig_close = kwargs.pop("fig_close", False) + plotly = kwargs.pop("plotly", False) + + # Call func and return immediately if None is returned. + fig = func(*args, **kwargs) + if fig is None: + return fig + + # Operate on matplotlib figure. + if title is not None: + fig.suptitle(title) + + if size_kwargs is not None: + fig.set_size_inches(size_kwargs.pop("w"), size_kwargs.pop("h"), **size_kwargs) + + if ax_grid is not None: + for ax in fig.axes: + ax.grid(bool(ax_grid)) + + if ax_annotate: + tags = ascii_letters + if len(fig.axes) > len(tags): + tags = (1 + len(ascii_letters) // len(fig.axes)) * ascii_letters + for ax, tag in zip(fig.axes, tags): + ax.annotate(f"({tag})", xy=(0.05, 0.95), xycoords="axes fraction") + + if tight_layout: + try: + fig.tight_layout() + except Exception as exc: + # For some unknown reason, this problem shows up only on travis. + # https://stackoverflow.com/questions/22708888/valueerror-when-using-matplotlib-tight-layout + print("Ignoring Exception raised by fig.tight_layout\n", str(exc)) + + if savefig: + fig.savefig(savefig) + + if plotly: + try: + plotly_fig = mpl_to_ply(fig, latex=False) + if show: plotly_fig.show() + return plotly_fig + except Exception as exc: + print("Exception while convertig matplotlib figure to plotly. Returning mpl figure!") + print(str(exc)) + pass + + import matplotlib.pyplot as plt + if show: + plt.show() + + if fig_close: + plt.close(fig=fig) + + return fig + + # Add docstring to the decorated method. + doc_str = """\n\n + Keyword arguments controlling the display of the figure: + + ================ ==================================================== + kwargs Meaning + ================ ==================================================== + title Title of the plot (Default: None). + show True to show the figure (default: True). + savefig "abc.png" or "abc.eps" to save the figure to a file. + size_kwargs Dictionary with options passed to fig.set_size_inches + e.g. size_kwargs=dict(w=3, h=4) + tight_layout True to call fig.tight_layout (default: False) + ax_grid True (False) to add (remove) grid from all axes in fig. + Default: None i.e. fig is left unchanged. + ax_annotate Add labels to subplots e.g. (a), (b). + Default: False + fig_close Close figure. Default: False. + plotly Try to convert mpl figure to plotly. + ================ ==================================================== + +""" + + if wrapper.__doc__ is not None: + # Add s at the end of the docstring. + wrapper.__doc__ += f"\n{doc_str}" + else: + # Use s + wrapper.__doc__ = doc_str + + return wrapper + + +class FilesPlotter: + """ + Use matplotlib to plot multiple png files on a grid. + + Example: + + FilesPlotter(["file1.png", file2.png"]).plot() + """ + def __init__(self, filepaths: list[str]): + self.filepaths = list_strings(filepaths) + + @add_fig_kwargs + def plot(self, **kwargs) -> Figure: + """ + Loop through the PNG files and display them in subplots. + """ + # Build grid of plots. + num_plots, ncols, nrows = len(self.filepaths), 1, 1 + if num_plots > 1: + ncols = 2 + nrows = (num_plots // ncols) + (num_plots % ncols) + + ax_list, fig, plt = get_axarray_fig_plt(None, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False) + ax_list = ax_list.ravel() + # don't show the last ax if num_plots is odd. + if num_plots % ncols != 0: ax_list[-1].axis("off") + + for i, (filepath, ax) in enumerate(zip(self.filepaths, ax_list)): + ax.axis('off') + ax.imshow(plt.imread(filepath)) + + return fig + + +@functools.cache +def get_color_symbol(style: str="VESTA") -> dict: + """ + Dictionary mapping chemical symbols to RGB color. + + Args: + style: "VESTA" or "Jmol". + """ + from monty.serialization import loadfn + from pymatgen import vis + colors = loadfn(os.path.join(os.path.dirname(vis.__file__), "ElementColorSchemes.yaml")) + if style not in colors: + raise KeyError(f"Invalid {style=}. Should be in {colors.keys()}") + color_symbol = {el: [j / 256.001 for j in colors[style][el]] for el in colors[style]} + return color_symbol + + +################### +# Matplotlib tools +################### + +def get_ax_fig_plt(ax=None, **kwargs): + """ + Helper function used in plot functions supporting an optional Axes argument. + If ax is None, we build the `matplotlib` figure and create the Axes else + we return the current active figure. + + Args: + ax (Axes, optional): Axes object. Defaults to None. + kwargs: keyword arguments are passed to plt.figure if ax is not None. + + Returns: + ax: :class:`Axes` object + figure: matplotlib figure + plt: matplotlib pyplot module. + """ + import matplotlib.pyplot as plt + if ax is None: + fig = plt.figure(**kwargs) + ax = fig.gca() + else: + fig = plt.gcf() + + return ax, fig, plt + + +def get_ax3d_fig_plt(ax=None, **kwargs): + """ + Helper function used in plot functions supporting an optional Axes3D + argument. If ax is None, we build the `matplotlib` figure and create the + Axes3D else we return the current active figure. + + Args: + ax (Axes3D, optional): Axes3D object. Defaults to None. + kwargs: keyword arguments are passed to plt.figure if ax is not None. + + Returns: + tuple[Axes3D, Figure]: matplotlib Axes3D and corresponding figure objects + """ + import matplotlib.pyplot as plt + if ax is None: + fig = plt.figure(**kwargs) + ax = fig.add_subplot(projection="3d") + else: + fig = plt.gcf() + + return ax, fig, plt + + +def get_axarray_fig_plt( + ax_array, nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw): + """ + Helper function used in plot functions that accept an optional array of Axes + as argument. If ax_array is None, we build the `matplotlib` figure and + create the array of Axes by calling plt.subplots else we return the + current active figure. + + Returns: + ax: Array of Axes objects + figure: matplotlib figure + plt: matplotlib pyplot module. + """ + import matplotlib.pyplot as plt + + if ax_array is None: + fig, ax_array = plt.subplots( + nrows=nrows, + ncols=ncols, + sharex=sharex, + sharey=sharey, + squeeze=squeeze, + subplot_kw=subplot_kw, + gridspec_kw=gridspec_kw, + **fig_kw, + ) + else: + fig = plt.gcf() + ax_array = np.reshape(np.array(ax_array), (nrows, ncols)) + if squeeze: + if ax_array.size == 1: + ax_array = ax_array[0] + elif any(s == 1 for s in ax_array.shape): + ax_array = ax_array.ravel() + + return ax_array, fig, plt + + +def is_mpl_figure(obj: Any) -> bool: + """Return True if obj is a matplotlib Figure.""" + from matplotlib import pyplot as plt + return isinstance(obj, plt.Figure) + + +def ax_append_title(ax, title, loc="center", fontsize=None) -> str: """Add title to previous ax.title. Return new title.""" prev_title = ax.get_title(loc=loc) new_title = prev_title + title @@ -59,9 +330,9 @@ def ax_append_title(ax, title, loc="center", fontsize=None): return new_title -def ax_share(xy_string, *ax_list): +def ax_share(xy_string: str, *ax_list) -> None: """ - Share x- or y-axis of two or more subplots after they are created + Share x- or y-axis of two or more subplots after they are created. Args: xy_string: "x" to share x-axis, "xy" for both @@ -83,15 +354,7 @@ def ax_share(xy_string, *ax_list): ax.get_shared_y_axes().join(*others) -#def set_grid(fig, boolean): -# if hasattr(fig, "axes"): -# for ax in fig.axes: -# if ax.grid: ax.grid.set_visible(boolean) -# else: -# if ax.grid: ax.grid.set_visible(boolean) - - -def set_axlims(ax, lims, axname): +def set_axlims(ax, lims: tuple, axname: str) -> tuple: """ Set the data limits for the axis ax. @@ -102,7 +365,7 @@ def set_axlims(ax, lims, axname): Return: (left, right) """ left, right = None, None - if lims is None: return (left, right) + if lims is None: return left, right len_lims = None try: @@ -124,19 +387,109 @@ def set_axlims(ax, lims, axname): return left, right -def set_ax_xylabels(ax, xlabel, ylabel, exchange_xy): +def set_ax_xylabels(ax, xlabel: str, ylabel: str, exchange_xy: bool = False) -> None: """ - Set the x- and the y-label of axis ax, exchanging x and y if exchange_xy + Set the x- and the y-label of axis ax, exchanging x and y if exchange_xy. """ if exchange_xy: xlabel, ylabel = ylabel, xlabel ax.set_xlabel(xlabel) ax.set_ylabel(ylabel) -def set_visible(ax, boolean, *args): +def set_logscale(ax_or_axlist, xy_log) -> None: + """ + Activate logscale + + Args: + ax_or_axlist: Axes or list of axes. + xy_log: None or empty string for linear scale. "x" for log scale on x-axis. + "xy" for log scale on x- and y-axis. "x:semilog" for semilog scale on x-axis. + """ + if not xy_log: return + + # Parse xy_log string. + xy, log_type = xy_log, "log" + if ":" in xy_log: + xy, log_type = xy_log.split(":") + + ax_list = [ax_or_axlist] if not duck.is_listlike(ax_or_axlist) else ax_or_axlist + + for ix, ax in enumerate(ax_list): + if "x" in xy: + ax.set_xscale(log_type) + if "y" in xy: + ax.set_yscale(log_type) + + +def set_ticks_fontsize(ax_or_axlist, fontsize: int, xy_string="xy", **kwargs) -> None: + """ + Set tick properties for one axis or a list of axis. + + Args: + ax_or_axlist: Axes or list of axes. + xy_string: "x" to share x-axis, "xy" for both. + """ + ax_list = [ax_or_axlist] if not duck.is_listlike(ax_or_axlist) else ax_or_axlist + + for ix, ax in enumerate(ax_list): + if "x" in xy_string: + ax.tick_params(axis='x', labelsize=fontsize, **kwargs) + + if "y" in xy_string: + ax.tick_params(axis='y', labelsize=fontsize, **kwargs) + + +def set_grid_legend(ax_or_axlist, fontsize: int, + xlabel=None, ylabel=None, grid=True, legend=True, direction=None, title=None, legend_loc="best") -> None: + """ + Activate grid and legend for one axis or a list of axis. + + Args: + grid: True to activate the grid. + legend: True to activate the legend. + direction: Use "x" ("y") if to add xlabel (ylabel) only to the last ax. + title: Title string + """ + if duck.is_listlike(ax_or_axlist): + for ix, ax in enumerate(ax_or_axlist): + ax.grid(grid) + # Check if there are artists with labels + handles, labels = ax.get_legend_handles_labels() + if legend and labels: + # print("There are artists with labels:", labels) + ax.legend(loc=legend_loc, fontsize=fontsize, shadow=True) + if xlabel: + doit = direction is None or (direction == "y" and ix == len(ax_or_axlist) -1) + if doit: ax.set_xlabel(xlabel) + if ylabel: + doit = direction is None or (direction == "x" and ix == len(ax_or_axlist) -1) + if doit: ax.set_ylabel(ylabel) + if title: ax.set_title(title, fontsize=fontsize) + else: + ax = ax_or_axlist + ax.grid(grid) + # Check if there are artists with labels + handles, labels = ax.get_legend_handles_labels() + if legend and labels: ax.legend(loc=legend_loc, fontsize=fontsize, shadow=True) + if xlabel: ax.set_xlabel(xlabel) + if ylabel: ax.set_ylabel(ylabel) + if title: ax.set_title(title, fontsize=fontsize) + + +def set_visible(ax, boolean: bool, *args) -> None: """ Hide/Show the artists of axis ax listed in args. + ax can be a single axis, a list or axis or a numpy arrays. """ + if duck.is_listlike(ax): + if isinstance(ax, np.ndarray): + for _ in ax.ravel(): + set_visible(_, *args) + else: + for _ in ax: + set_visible(_, *args) + return + if "legend" in args and ax.legend(): ax.legend().set_visible(boolean) if "title" in args and ax.title: @@ -153,7 +506,7 @@ def set_visible(ax, boolean, *args): label.set_visible(boolean) -def rotate_ticklabels(ax, rotation, axname="x"): +def rotate_ticklabels(ax, rotation: float, axname: str ="x") -> None: """Rotate the ticklables of axis ``ax``""" if "x" in axname: for tick in ax.get_xticklabels(): @@ -163,12 +516,35 @@ def rotate_ticklabels(ax, rotation, axname="x"): tick.set_rotation(rotation) +def hspan_ax_line(ax, line, abs_conv, hatch, alpha=0.2, with_label=True) -> None: + """ + Add hspan to ax showing the convergence region of width `abs_conv`. + Use same color as line. Return immediately if abs_conv is None or x-values are strings. + """ + if abs_conv is None: return + xs = line.get_xdata() + ys = line.get_ydata() + if duck.is_string(xs[0]): return + + color = line.get_color() + span_style = dict(alpha=0.2, color=color, hatch=hatch) + + x_max = xs[-1] + x_inds = np.where(xs == x_max)[0] + # This to support the case in which we have multiple ys for the same x_max + for i, ix in enumerate(x_inds): + y_xmax = ys[ix] + ax.axhspan(y_xmax - abs_conv, y_xmax + abs_conv, + label=r"$|y-y(x_{max})| \leq %s$" % abs_conv if (with_label and i == 0) else None, + **span_style) + + @add_fig_kwargs -def plot_xy_with_hue(data, x, y, hue, decimals=None, ax=None, - xlims=None, ylims=None, fontsize=12, **kwargs): +def plot_xy_with_hue(data: pd.DataFrame, x: str, y: str, hue: str, + decimals=None, ax=None, xlims=None, ylims=None, fontsize=8, **kwargs) -> Figure: """ Plot y = f(x) relation for different values of `hue`. - Useful for convergence tests done wrt to two parameters. + Useful for convergence tests done wrt two parameters. Args: data: |pandas-DataFrame| containing columns `x`, `y`, and `hue`. @@ -177,10 +553,10 @@ def plot_xy_with_hue(data, x, y, hue, decimals=None, ax=None, hue: Variable that define subsets of the data, which will be drawn on separate lines decimals: Number of decimal places to round `hue` columns. Ignore if None ax: |matplotlib-Axes| or None if a new figure should be created. - xlims ylims: Set the data limits for the x(y)-axis. Accept tuple e.g. `(left, right)` + xlims, ylims: Set the data limits for the x(y)-axis. Accept tuple e.g. `(left, right)` or scalar e.g. `left`. If left (right) is None, default values are used fontsize: Legend fontsize. - kwargs: Keywork arguments are passed to ax.plot method. + kwargs: Keyword arguments are passed to ax.plot method. Returns: |matplotlib-Figure| """ @@ -197,8 +573,8 @@ def plot_xy_with_hue(data, x, y, hue, decimals=None, ax=None, ax_list = ax_list.ravel() if num_plots % ncols != 0: ax_list[-1].axis('off') - for yname, ax in zip(y, ax_list): - plot_xy_with_hue(data, x, str(yname), hue, decimals=decimals, ax=ax, + for ykey, ax in zip(y, ax_list): + plot_xy_with_hue(data, x, str(ykey), hue, decimals=decimals, ax=ax, xlims=xlims, ylims=ylims, fontsize=fontsize, show=False, **kwargs) return fig @@ -212,12 +588,11 @@ def plot_xy_with_hue(data, x, y, hue, decimals=None, ax=None, data = data.round({hue: decimals}) ax, fig, plt = get_ax_fig_plt(ax=ax) - for key, grp in data.groupby(hue): + for key, grp in data.groupby(by=hue): # Sort xs and rearrange ys xy = np.array(sorted(zip(grp[x], grp[y]), key=lambda t: t[0])) xvals, yvals = xy[:, 0], xy[:, 1] - #label = "{} = {}".format(hue, key) label = "%s" % (str(key)) if not kwargs: ax.plot(xvals, yvals, 'o-', label=label) @@ -234,10 +609,29 @@ def plot_xy_with_hue(data, x, y, hue, decimals=None, ax=None, return fig +def linear_fit_ax(ax, xs, ys, fontsize, with_label=True, with_ideal_line=False, **kwargs) -> tuple[float]: + """ + Calculate a linear least-squares regression for two sets of measurements. + kwargs are passed to ax.plot. + """ + from scipy.stats import linregress + fit = linregress(xs, ys) + label = r"Linear fit $\alpha={:.2f}$, $r^2$={:.2f}".format(fit.slope, fit.rvalue**2) + if "color" not in kwargs: + kwargs["color"] = "r" + + ax.plot(xs, fit.slope*xs + fit.intercept, label=label if with_label else None, **kwargs) + if with_ideal_line: + # Plot y = x line + ax.plot([xs[0], xs[-1]], [ys[0], ys[-1]], color='k', linestyle='-', + linewidth=1, label='Ideal' if with_label else None) + return fit + + @add_fig_kwargs -def plot_array(array, color_map=None, cplx_mode="abs", **kwargs): +def plot_array(array, color_map=None, cplx_mode="abs", **kwargs) -> Figure: """ - Use imshow for plotting 2D or 1D arrays. + Use imshow for plotting 2D or 1D arrays. Return: |matplotlib-Figure| Example:: @@ -253,8 +647,6 @@ def plot_array(array, color_map=None, cplx_mode="abs", **kwargs): "re" for the real part, "im" for the imaginary part. "abs" means that the absolute value of the complex number is shown. "angle" will display the phase of the complex number in radians. - - Returns: |matplotlib-Figure| """ # Handle vectors array = np.atleast_2d(array) @@ -279,18 +671,312 @@ def plot_array(array, color_map=None, cplx_mode="abs", **kwargs): return fig -class ArrayPlotter(object): +class ConvergenceAnalyzer: + """ + This object allows one to plot the convergence of an arbitrary list + of quantities as a function of the same x. + """ + + # Colors for the different convergence criteria. + color_ilevel = ["red", "blue", "green"] + + # matplotlib option to fill convergence window. + HATCH = "/" + + @classmethod + def from_xy_label_vals(cls, xlabel, xs, ylabel, yvalues, tols) -> ConvergenceAnalyzer: + """ + Simplified interface to analyze a single list of values. + """ + yvals_dict = {ylabel: yvalues} + ytols_dict = {ylabel: tols} + return cls(xlabel, xs, yvals_dict, ytols_dict) + + @classmethod + def from_file(cls, filepath: str, xkey: str, ytols_dict: dict, **kwargs) -> ConvergenceAnalyzer: + """ + High-level constructor to build the object from a file containing data + that can be converted to pandas DataFrame. kwargs are passed to the pandas IO routines. + + Args: + filepath: Filename. + xkey: name of the x-variable. + ytols_dict: dict mapping the name of the y-variable to absolute tolerance(s). + """ + df = dataframe_from_filepath(filepath, **kwargs) + return cls.from_dataframe(df, xkey, ytols_dict) + + @classmethod + def from_dataframe(cls, df: pd.DataFrame, xkey: str, ytols_dict: dict) -> ConvergenceAnalyzer: + """ + Build the object from a pandas dataframe. + + Args: + df: DataFrame + xkey: name of the x-variable. + ytols_dict: dict mapping the name of the y-variable to tolerance(s). + """ + df = df.sort_values(xkey) + xs = df[xkey].values + yvals_dict = {k: df[k].values for k in ytols_dict} + return cls(xkey, xs, yvals_dict, ytols_dict) + + def __init__(self, xkey: str, xs: VectorLike, yvals_dict: dict[str, VectorLike], ytols_dict: dict): + """ + Args: + xkey: + xs: + yvals_dict: + ytols_dict: dict mapping the name of the y-variable to absolute tolerance(s). + + Example:: + + plotter = ConvergencePlotter("ecut", ecut_value, yvals_dict, ytols_dict) + plotter.plot() + """ + # Convert to numpy arrays and store data in self. + self.xkey = self.xlabel = xkey + self.xs = np.array(xs) + if not np.all(self.xs[:-1] <= self.xs[1:]): + raise ValueError("xs values should be in ascending order") + + self.yvals_dict = {k: np.array(v) for k, v in yvals_dict.items()} + self.ykey2label = {k: k for k in yvals_dict} + + if len(self.yvals_dict) > len(self.color_ilevel): + raise ValueError(f"Not programmed for more than {len(self.color_ilevel)} convergence levels") + + # Handle ytols_dict. + self.ytols_dict = {} + for ykey, ytols in ytols_dict.items(): + if not duck.is_listlike(ytols): ytols = [ytols] + + if any(yt <= 0 for yt in ytols): + raise ValueError(f"tolerances cannot be negative: {ytols}") + + # Sort input tolerances just to be on the safe side. + self.ytols_dict[ykey] = np.sort(np.array(ytols))[::-1] + + # Compute the first index in xs that gives value within the convergence window. + # -1 or None indicates that convergence has not been achieved. + self.ykey_ixs = {} + self.ykey_best_xs = {} + + for ykey, ys in self.yvals_dict.items(): + if len(ys) != len(xs): + raise ValueError(f"len(ys) != len(xs): {len(ys)} and {len(xs)}") + + tol_levels = self.ytols_dict[ykey] + + # Init values assuming no convergence achieved. + self.ykey_ixs[ykey] = [-1] * len(tol_levels) + self.ykey_best_xs[ykey] = [None] * len(tol_levels) + + # For each y-tolerance. + num_x = len(self.xs) + y_xmax = ys[-1] + for il, ytol in enumerate(tol_levels): + for _, xx in enumerate(self.xs[::-1]): + ix = -_ + num_x - 1 + if abs(y_xmax - ys[ix]) > ytol: + self.ykey_ixs[ykey][il] = ix + 1 + break + + ix = self.ykey_ixs[ykey][il] + if ix != -1: + # If converged, use linear interpolation to get a better estimate of the + # converged xx. This is useful especially if the xs grid is too coarse. + best_xx = self.xs[ix] + if ix - 1 >= 0: + x0, y0 = xs[ix-1], ys[ix-1] + x1, y1 = xs[ix], ys[ix] + alpha = (y1 - y0) / (x1 - x0) + # y(x) = alpha * (x - x0) + y0 + #print("best_xx 1", best_xx) + if (y0 - y_xmax) >= 0: best_xx = x0 + ( ytol + y_xmax - y0) / alpha + if (y0 - y_xmax) < 0: best_xx = x0 + (-ytol + y_xmax - y0) / alpha + #print("best_xx 2", best_xx) + + self.ykey_best_xs[ykey][il] = best_xx + + # Here we change the x-y labels for the plots using an hard-coded mapping + # in order to add additional info on units and normalization. + auto_key_label = dict( + ecut=r"$E_{cut}$ (Ha)", + energy_per_atom=r"$E/N_{at}$ (eV)", + pressure="P (GPa)", + ) + + for key, label in auto_key_label.items(): + self.set_label(key, label, ignore_exc=True) + + def set_label(self, key: str, label: str, ignore_exc=False) -> None: + """ + Set the label for `key` to be used in the plot. + Dont't raise exception if `ignore_exc` is True. + """ + if key in self.ykey2label: + self.ykey2label[key] = label + elif key == self.xkey: + self.xlabel = label + else: + if not ignore_exc: + raise ValueError( + f"key:`{key}` should be either in {list(self.ykey2label.keys())} or {self.xname}") + + def get_ylabel(self, ykey: str) -> str: + """Return the ylabel to be used for `ykey` in the plot.""" + return self.ykey2label[ykey] + + def ytol_ix_xx(self, ykey) -> Iterator[tuple]: + """ + Iterate over (ytols, ixs, and xs) for the given ``ykey`. + """ + return zip(self.ytols_dict[ykey], self.ykey_ixs[ykey] ,self.ykey_best_xs[ykey]) + + def get_dataframe_ykey(self, ykey: str) -> pd.DataFrame: + """Return dataframe with convergence params for `ykey`.""" + rows = [] + for ytol, ix, xx in self.ytol_ix_xx(ykey): + rows.append(dict(ytol=ytol, ix=ix, xx=xx, ykey=ykey)) + #rows.append(dict(ytol=ytol, ix=ix, xx=xx), xx_best=xx_best, ykey=ykey) + return pd.DataFrame(rows) + + def to_string(self, verbose=0) -> str: + """ + String representation with verbosity level `verbose`. + """ + lines = []; app = lines.append + app(f"Number of points for x-axis: {len(self.xs)}") + for ykey in self.yvals_dict: + app("ykey: %s" % ykey) + df = self.get_dataframe_ykey(ykey) + app(str(df)) + + return "\n".join(lines) + + def __str__(self) -> str: + return self.to_string() + + def _decorate_ax(self, ax, ykey, ys, yscale) -> None: + """ + Decorate axis ax by adding patches showing the convergence window + and vertical lines where convergence is achieved. + + Args: + ax: matplotlib axes. + ykey: y-name + ys: y-values + yscale: "linear" or "log" + """ + # Precompute y-limits of the converge window for each tolerance. + y_xmax = ys[-1] + ytols = self.ytols_dict[ykey] + ntols = len(ytols) + ylims = np.empty((ntols, 2)) + ylims_log = np.empty((ntols, 2)) + + for il, ytol in enumerate(ytols): + # Absolute tolerance. + y0, y1 = y_xmax - ytol, y_xmax + ytol + y1_log = ytol + ylims[il] = [y0, y1] + ylims_log[il] = [0, y1_log] + + # Loop again as ylimits are known. + for il, ytol in enumerate(ytols): + label = r"$|y-y_\infty| \leq %s$" % ytol + span_style = dict(alpha=0.2, color=self.color_ilevel[il], zorder=abs(ytol), hatch=self.HATCH) + + y0, y1 = ylims[il] + y0_log, y1_log = ylims_log[il] + + if il == ntols - 1: + if yscale == "linear": + ax.axhspan(y0, y1, label=label, **span_style) + elif yscale == "log": + ax.axhspan(y0_log, y1_log, label=label, **span_style) + else: + raise ValueError(f"Invalid yscale: {yscale}") + else: + # Use limits of the next window to avoid overlapping patches. + if yscale == "linear": + ax.axhspan(y0, ylims[il+1,0], label=label, **span_style) + ax.axhspan(ylims[il+1,1], y1, **span_style) + elif yscale == "log": + ax.axhspan(y0_log, ylims_log[il+1,0], label=label, **span_style) + ax.axhspan(ylims_log[il+1,1], y1_log, **span_style) + else: + raise ValueError(f"Invalid yscale: {yscale}") + + # Add vertical line to show best_xx. + best_xx = self.ykey_best_xs[ykey][il] + line_style = dict(lw=1, color=self.color_ilevel[il], ls=":") + if best_xx is not None: + ax.axvline(best_xx, **line_style) + + @add_fig_kwargs + def plot(self, ax_mat=None, fontsize=8, **kwargs) -> Figure: + """ + Plot convergence profile. A new grid is build if `ax_mat` is None: + """ + nrows, ncols = len(self.yvals_dict), 2 + + ax_mat, fig, plt = get_axarray_fig_plt(ax_mat, nrows=nrows, ncols=ncols, + sharex=False, sharey=False, squeeze=False) + + # TODO + #for icol in range(ncols): + # ax_share("x", ax_mat[0,icol], ax_mat[1,icol]) + + for irow, ((ykey, ys), ax_row) in enumerate(zip(self.yvals_dict.items(), ax_mat)): + # Plot y(x) + ax1, ax2 = ax_row + ax1.plot(self.xs, ys, marker="o", color="k") + ax1.set_ylabel(self.get_ylabel(ykey)) + self._decorate_ax(ax1, ykey, ys, "linear") + + # Plot |y(x) - y_xmax| on log scale. + abs_diffs = np.abs(ys - ys[-1]) + ax2.plot(self.xs, abs_diffs, marker="o", color="k") + ax2.set_yscale("log") + self._decorate_ax(ax2, ykey, ys, "log") + ax2.set_xlim(self.xs[0] - 1, self.xs[-2] + 1) + + title = "" + for i, (ytol, ix, xx) in enumerate(self.ytol_ix_xx(ykey)): + pre_str = "" if i == 0 else ", " + ytol_string = str(ytol) + #print("ytol_string:", ytol_string, "pre_str:", pre_str, "ytol_string:", ytol_string, "xx:", xx) + if xx is not None: + s = r"x: %.1f for $\Delta$: %s" % (xx, ytol_string) + else: + s = r"x: ?? for $\Delta$: %s" % (ytol_string) + title += pre_str + s + + ax2.set_title(title, fontsize=fontsize) + ax2.set_ylabel(r"$|y-y(x_{max})|$", fontsize=fontsize) + + set_grid_legend(ax_row, fontsize, + xlabel=self.xlabel if irow == (nrows - 1) else None, + grid=False, legend=True) + + fig.tight_layout() + return fig + + +class ArrayPlotter: def __init__(self, *labels_and_arrays): """ Args: - labels_and_arrays: List [("label1", arr1), ("label2", arr2")] + labels_and_arrays: list [("label1", arr1), ("label2", arr2)] """ - self._arr_dict = OrderedDict() + self._arr_dict = {} for label, array in labels_and_arrays: self.add_array(label, array) - def __len__(self): + def __len__(self) -> int: return len(self._arr_dict) def __iter__(self): @@ -302,14 +988,14 @@ def keys(self): def items(self): return self._arr_dict.items() - def add_array(self, label, array): + def add_array(self, label: str, array) -> None: """Add array with the given name.""" if label in self._arr_dict: raise ValueError("%s is already in %s" % (label, list(self._arr_dict.keys()))) self._arr_dict[label] = array - def add_arrays(self, labels, arr_list): + def add_arrays(self, labels: list, arr_list: list) -> None: """ Add a list of arrays @@ -322,14 +1008,12 @@ def add_arrays(self, labels, arr_list): self.add_array(label, arr) @add_fig_kwargs - def plot(self, cplx_mode="abs", colormap="jet", fontsize=8, **kwargs): + def plot(self, cplx_mode="abs", colormap="jet", fontsize=8, **kwargs) -> Figure: """ Args: cplx_mode: "abs" for absolute value, "re", "im", "angle" colormap: matplotlib colormap. fontsize: legend and label fontsize. - - Returns: |matplotlib-Figure| """ # Build grid of plots. num_plots, ncols, nrows = len(self), 1, 1 @@ -373,9 +1057,8 @@ def plot(self, cplx_mode="abs", colormap="jet", fontsize=8, **kwargs): return fig -#TODO use object and introduce c for color, client code should be able to customize it. -# Rename it to ScatterData -class Marker(namedtuple("Marker", "x y s")): +#TODO Rename it to ScatterData? +class Marker: """ Stores the position and the size of the marker. A marker is a list of tuple(x, y, s) where x, and y are the position @@ -386,50 +1069,36 @@ class Marker(namedtuple("Marker", "x y s")): x, y, s = [1, 2, 3], [4, 5, 6], [0.1, 0.2, -0.3] marker = Marker(x, y, s) - marker.extend((x, y, s)) - """ - def __new__(cls, *xys): - """Extends the base class adding consistency check.""" - if not xys: - xys = ([], [], []) - return super().__new__(cls, *xys) - if len(xys) != 3: - raise TypeError("Expecting 3 entries in xys got %d" % len(xys)) + def __init__(self, x, y, s, **scatter_kwargs): + #marker: str = "o", color: str = "y", alpha: float = 1.0, label=None, self.edgecolors=None): + self.x, self.y, self.s = np.array(x), np.array(y), np.array(s) - x = np.asarray(xys[0]) - y = np.asarray(xys[1]) - s = np.asarray(xys[2]) - xys = (x, y, s) + if len(self.x) != len(self.y): + raise ValueError("len(self.x) != len(self.y)") + if len(self.y) != len(self.s): + raise ValueError("len(self.y) != len(self.s)") - for s in xys[-1]: - if np.iscomplex(s): - raise ValueError("Found ambiguous complex entry %s" % str(s)) + #self.marker = marker + #self.color = color + #self.alpha = alpha + #self.label = label + #self.edgecolors = edgecolors + self.scatter_kwargs = scatter_kwargs - return super().__new__(cls, *xys) + # Step 1: Normalize sizes to a suitable range for plotting + #min_size = 10 # Minimum size for points + #max_size = 100 # Maximum size for points + #normalized_s = min_size + (max_size - min_size) * (self.s - np.min(self.s)) / (np.max(self.s) - np.min(self.s)) + #self.s = normalized_s def __bool__(self): return bool(len(self.s)) __nonzero__ = __bool__ - def extend(self, xys): - """ - Extend the marker values. - """ - if len(xys) != 3: - raise TypeError("Expecting 3 entries in xys got %d" % len(xys)) - - self.x.extend(xys[0]) - self.y.extend(xys[1]) - self.s.extend(xys[2]) - - lens = np.array((len(self.x), len(self.y), len(self.s))) - if np.any(lens != lens[0]): - raise TypeError("x, y, s vectors should have same lengths but got %s" % str(lens)) - - def posneg_marker(self): + def posneg_marker(self) -> tuple[Marker, Marker]: """ Split data into two sets: the first one contains all the points with positive size. The first set contains all the points with negative size. @@ -447,22 +1116,88 @@ def posneg_marker(self): neg_y.append(y) neg_s.append(s) - return self.__class__(pos_x, pos_y, pos_s), Marker(neg_x, neg_y, neg_s) + return self.__class__(pos_x, pos_y, pos_s), self.__class__(neg_x, neg_y, neg_s) -class MplExpose(object): # pragma: no cover +class Exposer: """ + Base class for Exposer objects. + Example: - with MplExpose() as e: - e(obj.plot1(show=False)) - e(obj.plot2(show=False)) + plot_kws = dict(show=False) + with Exposer.as_exposer("panel") as e: + e(obj.plot1(**plot_kws)) + e(obj.plot2(**plot_kws)) + """ + + @classmethod + def as_exposer(cls, exposer, **kwargs) -> Exposer: + """ + Return an instance of Exposer, usually from a string with then name. + + Args: + exposer: "mpl" for MplExposer, "panel" for PanelExposer. + """ + if isinstance(exposer, cls): return exposer + + # Assume string. + exposer_cls = dict( + mpl=MplExposer, + panel=PanelExposer, + )[exposer] + return exposer_cls(**kwargs) + + def add_obj_with_yield_figs(self, obj: Any) -> None: + """ + Add an object implementing a `yield_figs` method to the Exposer. + """ + if not hasattr(obj, "yield_figs"): + raise TypeError(f"object of type {type(obj)} does not implement `yield_figs` method") + + for fig in obj.yield_figs(): + self.add_fig(fig) + + def __call__(self, obj: Any): + """ + Add an object to the Exposer + Support mpl figure, list of figures or generator yielding figures. + """ + import types + if isinstance(obj, (types.GeneratorType, list, tuple)): + for fig in obj: + self.add_fig(fig) + else: + self.add_fig(obj) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Activated at the end of the with statement. """ + if exc_type is not None: return + self.expose() + + +class MplExposer(Exposer): # pragma: no cover + """ + Context manager used to produce several matplotlib figures and show + all of them at once so that users do not have to close the window + to visualize the next one. + + Example: + + plot_args = dict(show=False) + with MplExposer() as e: + e(obj.plot1(**plot_args)) + e(obj.plot2(**plot_args)) """ - def __init__(self, slide_mode=False, slide_timeout=None, verbose=1): + + def __init__(self, slide_mode=False, slide_timeout=None, verbose=1, **kwargs): """ Args: - slide_mode: If true, iterate over figures. Default: Expose all figures at once. - slide_timeout: Close figure after slide-timeout seconds Block if None. + slide_mode: If True, iterate over figures. Default: Expose all figures at once. + slide_timeout: Close figure after slide-timeout seconds. Block if None. verbose: verbosity level """ self.figures = [] @@ -481,26 +1216,15 @@ def __init__(self, slide_mode=False, slide_timeout=None, verbose=1): self.start_time = time.time() - def __call__(self, obj): + def add_fig(self, fig: Figure) -> None: """ - Add an object to MplExpose. Support mpl figure, list of figures or - generator yielding figures. + Add a matplotlib figure. """ - import types - if isinstance(obj, (types.GeneratorType, list, tuple)): - for fig in obj: - self.add_fig(fig) - else: - self.add_fig(obj) - - def add_fig(self, fig): - """Add a matplotlib figure.""" if fig is None: return if not self.slide_mode: self.figures.append(fig) else: - #print("Printing and closing", fig) import matplotlib.pyplot as plt if self.timeout_ms is not None: # Creating a timer object @@ -510,41 +1234,103 @@ def add_fig(self, fig): timer.start() plt.show() - fig.clear() - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - """Activated at the end of the with statement. """ - self.expose() + if hasattr(fig, "clear"): + fig.clear() - def expose(self): - """Show all figures. Clear figures if needed.""" + def expose(self) -> None: + """ + Show all figures. Clear figures if needed. + """ if not self.slide_mode: print("All figures in memory, elapsed time: %.3f s" % (time.time() - self.start_time)) import matplotlib.pyplot as plt plt.show() for fig in self.figures: - fig.clear() + if hasattr(fig, "clear"): + fig.clear() -def plot_unit_cell(lattice, ax=None, **kwargs): +class PanelExposer(Exposer): # pragma: no cover """ - Adds the unit cell of the lattice to a matplotlib Axes3D + Context manager used to produce several matplotlib/plotly figures + and show all of them inside the web browser using a panel template. - Args: - lattice: Lattice object - ax: matplotlib :class:`Axes3D` or None if a new figure should be created. - kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to black - and linewidth to 3. + Example: - Returns: - matplotlib figure and ax + with PanelExposer() as e: + e(obj.plot1(show=False)) + e(obj.plot2(show=False)) """ - ax, fig, plt = get_ax3d_fig_plt(ax) + def __init__(self, title=None, dpi=92, verbose=1, **kwargs): + """ + Args: + title: String to be show in the header. + verbose: verbosity level + """ + self.title = title + self.figures = [] + self.verbose = verbose + self.dpi = int(dpi) - if "color" not in kwargs: kwargs["color"] = "k" + if self.verbose: + print("\nLoading all figures before showing them. It may take some time...") + + self.start_time = time.time() + + def add_fig(self, fig: Figure) -> None: + """Add a matplotlib figure.""" + if fig is None: return + self.figures.append(fig) + + def expose(self): + """Show all figures. Clear figures if needed.""" + import panel as pn + pn.config.sizing_mode = 'stretch_width' + from abipy.panels.core import get_template_cls_from_name + cls = get_template_cls_from_name("FastGridTemplate") + + template = cls( + title=self.title if self.title is not None else self.__class__.__name__, + header_background="#ff8c00 ", # Dark orange + ) + #pn.config.sizing_mode = 'stretch_width' + from abipy.panels.core import mpl, ply + for i, fig in enumerate(self.figures): + row, col = divmod(i, 2) + if is_plotly_figure(fig): + p = ply(fig, with_divider=False) + elif is_mpl_figure(fig): + p = mpl(fig, with_divider=False, dpi=self.dpi) + else: + raise TypeError(f"Don't know how to handle type: `{type(fig)}`") + + if hasattr(template.main, "append"): + template.main.append(p) + else: + # Assume .main area acts like a GridSpec + row_slice = slice(3 * row, 3 * (row + 1)) + if col == 0: template.main[row_slice, :6] = p + if col == 1: template.main[row_slice, 6:] = p + + return template.show() + + +def plot_unit_cell(lattice, ax=None, **kwargs) -> tuple[Figure, Axes]: + """ + Adds the unit cell of the lattice to a matplotlib Axes3D + + Args: + lattice: Lattice object + ax: matplotlib :class:`Axes3D` or None if a new figure should be created. + kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to black + and linewidth to 3. + + Returns: + matplotlib figure and ax + """ + ax, fig, plt = get_ax3d_fig_plt(ax) + + if "color" not in kwargs: kwargs["color"] = "k" if "linewidth" not in kwargs: kwargs["linewidth"] = 3 v = 8 * [None] @@ -567,7 +1353,7 @@ def plot_unit_cell(lattice, ax=None, **kwargs): return fig, ax -def ax_add_cartesian_frame(ax, start=(0, 0, 0)): +def ax_add_cartesian_frame(ax, start=(0, 0, 0)) -> Axes: """ Add cartesian frame to 3d axis at point `start`. """ @@ -600,13 +1386,14 @@ def draw(self, renderer): return ax -def plot_structure(structure, ax=None, to_unit_cell=False, alpha=0.7, - style="points+labels", color_scheme="VESTA", **kwargs): +def plot_structure(structure, + ax=None, to_unit_cell=False, alpha=0.7, + style="points+labels", color_scheme="VESTA", **kwargs) -> Figure: """ - Plot structure with matplotlib (minimalistic version) + Plot structure with matplotlib (minimalistic version). Args: - structure: Structure object + structure: |Structure| object ax: matplotlib :class:`Axes3D` or None if a new figure should be created. alpha: The alpha blending value, between 0 (transparent) and 1 (opaque) to_unit_cell: True if sites should be wrapped into the first unit cell. @@ -649,7 +1436,7 @@ def plot_structure(structure, ax=None, to_unit_cell=False, alpha=0.7, return fig -def _generic_parser_fh(fh): +def _generic_parser_fh(fh) -> dict: """ Parse file with data in tabular format. Supports multi datasets a la gnuplot. Mainly used for files without any schema, not even CSV @@ -658,7 +1445,7 @@ def _generic_parser_fh(fh): fh: File object Returns: - OrderedDict title --> numpy array + dict title --> numpy array where title is taken from the first (non-empty) line preceding the dataset """ arr_list = [None] @@ -683,7 +1470,7 @@ def _generic_parser_fh(fh): if len(head_list) != len(arr_list): raise RuntimeError("len(head_list) != len(arr_list), %d != %d" % (len(head_list), len(arr_list))) - od = OrderedDict() + od = {} for key, data in zip(head_list, arr_list): key = " ".join(key.split()) if key in od: @@ -694,22 +1481,21 @@ def _generic_parser_fh(fh): return od -class GenericDataFilePlotter(object): +class GenericDataFilePlotter: """ - Extract data from a generic text file with results - in tabular format and plot data with matplotlib. + Extract data from a generic text file with results in tabular format and plot data with matplotlib. Multiple datasets are supported. No attempt is made to handle metadata (e.g. column name) Mainly used to handle text files written without any schema. """ - def __init__(self, filepath): + def __init__(self, filepath: str): with open(filepath, "rt") as fh: self.od = _generic_parser_fh(fh) - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation with verbosity level `verbose`.""" lines = [] for key, arr in self.od.items(): @@ -717,7 +1503,7 @@ def to_string(self, verbose=0): return "\n".join(lines) @add_fig_kwargs - def plot(self, use_index=False, fontsize=8, **kwargs): + def plot(self, use_index=False, fontsize=8, **kwargs) -> Figure: """ Plot all arrays. Use multiple axes if datasets. @@ -752,10 +1538,10 @@ def plot(self, use_index=False, fontsize=8, **kwargs): return fig -class GenericDataFilesPlotter(object): +class GenericDataFilesPlotter: @classmethod - def from_files(cls, filepaths): + def from_files(cls, filepaths: list[str]) -> GenericDataFilesPlotter: """ Build object from a list of `filenames`. """ @@ -768,10 +1554,10 @@ def __init__(self): self.odlist = [] self.filepaths = [] - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: lines = [] app = lines.append for od, filepath in zip(self.odlist, self.filepaths): @@ -781,14 +1567,14 @@ def to_string(self, verbose=0): return "\n".join(lines) - def add_file(self, filepath): + def add_file(self, filepath: str) -> None: """Add data from `filepath`""" with open(filepath, "rt") as fh: self.odlist.append(_generic_parser_fh(fh)) self.filepaths.append(filepath) @add_fig_kwargs - def plot(self, use_index=False, fontsize=8, colormap="viridis", **kwargs): + def plot(self, use_index=False, fontsize=8, colormap="viridis", **kwargs) -> Figure: """ Plot all arrays. Use multiple axes if datasets. @@ -847,3 +1633,1272 @@ def plot(self, use_index=False, fontsize=8, colormap="viridis", **kwargs): ax.legend(loc="best", fontsize=fontsize, shadow=True) return fig + + +########################## +# Plotly helper functions +########################## + +_LATEX_GREEK_TO_UNICODE = dict( + alpha="α", + beta="β", + gamma="ɣ", + delta="δ", + epsilon="ε", + zeta="ζ", + eta="η", + theta="θ", + iota="ι", + kappa="κ", + #lambda="λ", + mu="μ", + nu="ν", + xi="ξ", + omicron="ο", + pi="π", + rho="ρ", + sigma="σ", + tau="τ", + upsilon="υ", + phi="φ", + chi="χ", + psi="ψ", + omega="ω", + # Capital case: + Alpha="Α", + Beta="Β", + Gamma="Γ", + Delta="Δ", + Epsilon="Ε", + Zeta="Ζ", + Eta="Η", + Theta="Θ", + Iota="Ι", + Kappa="Κ", + Lambda="Λ", + Mu="Μ", + Nu="Ν", + Xi="Ξ", + Omicron="Ο", + Po="Π", + Rho="Ρ", + Sigma="Σ", + Tau="Τ", + Upsilon="Υ", + Phi="Φ", + Chi="Χ", + Psi="Ψ", + Omega="Ω", +) + +_LATEX_GREEK_TO_UNICODE["lambda"] = "λ" + + +def latex_greek_2unicode(latex: str) -> str: + """ + Convert a single greek letter in latex notation into unicode + """ + s = latex.replace("$", "").replace("\\", "").strip() + return _LATEX_GREEK_TO_UNICODE[s] + + +def is_plotly_figure(obj: Any) -> bool: + """Return True if obj is a plotly Figure.""" + import plotly.graph_objs as go + return isinstance(obj, go.Figure) + #return isinstance(obj, (go.Figure, go.FigureWidget)) + + +class PlotlyRowColDesc: + """ + This object specifies the position of a plotly subplot inside a grid. + + rcd: PlotlyRowColDesc object used when fig is not None to specify the (row, col) of the subplot in the grid. + """ + + @classmethod + def from_object(cls, obj: Any) -> PlotlyRowColDesc: + """ + Build an instance for a generic object. + If oject is None, a simple descriptor corresponding to a (1,1) grid is returned. + """ + if obj is None: return cls(0, 0, 1, 1) + if isinstance(obj, cls): return obj + + # Assume list with 4 integers + try: + return cls(*obj) + except Exception as exc: + raise TypeError(f"Dont know how to convert `{type(obj)}` into `{cls}`") + + def __init__(self, py_row: int, py_col: int, nrows: int, ncols: int): + """ + Args: + py_row, py_col: python index of the subplot in the grid (starts from 0) + nrows, ncols: Number of rows/cols in the grid. + """ + self.py_row, self.py_col = (py_row, py_col) + self.nrows, self.ncols = (nrows, ncols) + self.iax = 1 + self.py_col + self.py_row * self.ncols + # Note that plotly col and row start from 1. + if nrows == 1 and ncols == 1: + self.ply_row, self.ply_col = (None, None) + else: + self.ply_row, self.ply_col = (self.py_row + 1, self.py_col + 1) + + def __str__(self) -> str: + lines = [] + app = lines.append + app("py_rowcol: (%d, %d) in grid: (%d, %d)" % (self.py_row, self.py_col, self.nrows, self.ncols)) + app("plotly_rowcol: (%s, %s)" % (self.ply_row, self.ply_col)) + + return "\n".join(lines) + + #@lazy_property + #def rowcol_dict(self): + # if self.nrows == 1 and self.ncols == 1: return {} + # return dict(row=self.ply_row, col=self.ply_col) + + +def get_figs_plotly(nrows=1, ncols=1, subplot_titles=(), sharex=False, sharey=False, **fig_kw): + """ + Helper function used in plot functions that build the `plotly` figure by calling plotly.subplots. + + Returns: + figure: plotly graph_objects figure + go: plotly graph_objects module. + """ + from plotly.subplots import make_subplots + import plotly.graph_objects as go + + fig = make_subplots(rows=int(nrows), cols=int(ncols), subplot_titles=subplot_titles, shared_xaxes=sharex, + shared_yaxes=sharey, **fig_kw) + + return fig, go + + +def get_fig_plotly(fig=None, **fig_kw): + """ + Helper function used in plot functions that build the `plotly` figure by calling + plotly.graph_objects.Figure if fig is None else return fig + + Returns: + figure: plotly graph_objects figure + go: plotly graph_objects module. + """ + import plotly.graph_objects as go + + if fig is None: + fig = go.Figure(**fig_kw) + #fig = go.FigureWidget(**fig_kw) + + return fig, go + + +def plotly_set_lims(fig, lims, axname, iax=None) -> tuple: + """ + Set the data limits for the axis ax. + + Args: + fig: Plotly Figure. + lims: tuple(2) for (left, right), if tuple(1) or scalar for left only, none is set. + axname: "x" for x-axis, "y" for y-axis. + iax: An int, use iax=n to decorate the nth axis when the fig has subplots. + + Return: (left, right) + """ + left, right = None, None + if lims is None: return (left, right) + + # iax = kwargs.pop("iax", 1) + # xaxis = 'xaxis%u' % iax + #fig.layout[xaxis].title.text = "Wave Vector" + + axis = dict(x=fig.layout.xaxis, y=fig.layout.yaxis)[axname] + + len_lims = None + try: + len_lims = len(lims) + except TypeError: + # Assume Scalar + left = float(lims) + + if len_lims is not None: + if len(lims) == 2: + left, right = lims[0], lims[1] + elif len(lims) == 1: + left = lims[0] + + ax_range = axis.range + if ax_range is None and (left is None or right is None): + return None, None + + #if left is not None: ax_range[0] = left + #if right is not None: ax_range[1] = right + + # Example: fig.update_layout(yaxis_range=[-4,4]) + k = dict(x="xaxis", y="yaxis")[axname] + if iax: + k= k + str(iax) + fig.layout[k].range = [left, right] + + return left, right + + +_PLOTLY_DEFAULT_SHOW = [True] + + +def set_plotly_default_show(true_or_false: bool) -> None: + """ + Set the default value of show in the add_plotly_fig_kwargs decorator. + Useful for instance when generating the sphinx gallery of plotly plots. + """ + _PLOTLY_DEFAULT_SHOW[0] = true_or_false + + +def add_plotly_fig_kwargs(func: Callable) -> Callable: + """ + Decorator that adds keyword arguments for functions returning plotly figures. + The function should return either a plotly figure or None to signal some + sort of error/unexpected event. + See doc string below for the list of supported options. + """ + @functools.wraps(func) + def wrapper(*args, **kwargs): + # pop the kwds used by the decorator. + title = kwargs.pop("title", None) + show = kwargs.pop("show", _PLOTLY_DEFAULT_SHOW[0]) + hovermode = kwargs.pop("hovermode", False) + savefig = kwargs.pop("savefig", None) + write_json = kwargs.pop("write_json", None) + config = kwargs.pop("config", None) + renderer = kwargs.pop("renderer", None) + chart_studio = kwargs.pop("chart_studio", False) + template = kwargs.pop("template", None) + + # Allow users to specify the renderer via shell env. + if renderer is not None and os.getenv("PLOTLY_RENDERER", default=None) is not None: + renderer = None + + # Call func and return immediately if None is returned. + fig = func(*args, **kwargs) + if fig is None: + return fig + + # Operate on plotly figure. + if title is not None: + fig.update_layout(title_text=title, title_x=0.5) + + if template is not None: + fig.update_layout(template=template) + + if savefig: + # https://plotly.github.io/plotly.py-docs/generated/plotly.io.write_image.html + if savefig.endswith("html"): + from plotly.offline import plot as show_plotly + show_plotly(fig, include_mathjax="cdn", filename=savefig, auto_open=False) + + else: + try: + import kaleido + except ImportError: + kaleido = False + + if kaleido is None: + raise ValueError( + "kaleido package required to save static ploty images\n" + "please install it using:\npip install kaleido" + ) + + fig.write_image(savefig, engine="kaleido", scale=5, width=750, height=750) + #fig.write_image(savefig) + + if write_json: + import plotly.io as pio + pio.write_json(fig, write_json) + + fig.layout.hovermode = hovermode + + if show: # and _PLOTLY_DEFAULT_SHOW: + my_config = dict( + responsive=True, + #showEditInChartStudio=True, + showLink=True, + plotlyServerURL="https://chart-studio.plotly.com", + ) + + if config is not None: + my_config.update(config) + + #add_template_buttons(fig) + + fig.show(renderer=renderer, config=my_config) + + if chart_studio: + push_to_chart_studio(fig) + + return fig + + # Add docstring to the decorated method. + doc_str = """\n\n + Keyword arguments controlling the display of the figure: + ================ ==================================================================== + kwargs Meaning + ================ ==================================================================== + title Title of the plot (Default: None). + show True to show the figure (default: True). + hovermode True to show the hover info (default: False) + savefig "abc.png" , "abc.jpeg" or "abc.webp" to save the figure to a file. + write_json Write plotly figure to `write_json` JSON file. + Inside jupyter-lab, one can right-click the `write_json` file from + the file menu and open with "Plotly Editor". + Make some changes to the figure, then use the file menu to save + the customized plotly plot. + Requires `jupyter labextension install jupyterlab-chart-editor`. + See https://github.com/plotly/jupyterlab-chart-editor + renderer (str or None (default None)) – + A string containing the names of one or more registered renderers + (separated by ‘+’ characters) or None. If None, then the default + renderers specified in plotly.io.renderers.default are used. + See https://plotly.com/python-api-reference/generated/plotly.graph_objects.Figure.html + config (dict) A dict of parameters to configure the figure. The defaults are set in plotly.js. + chart_studio True to push figure to chart_studio server. Requires authenticatios. + Default: False. + template Plotly template. See https://plotly.com/python/templates/ + ["plotly", "plotly_white", "plotly_dark", "ggplot2", + "seaborn", "simple_white", "none"] + Default is None that is the default template is used. + ================ ==================================================================== + +""" + + if wrapper.__doc__ is not None: + # Add s at the end of the docstring. + wrapper.__doc__ += f"\n{doc_str}" + else: + # Use s + wrapper.__doc__ = doc_str + + return wrapper + + +def plotlyfigs_to_browser(figs, filename=None, browser=None): + """ + Save a list of plotly figures in an HTML file and open it the browser. + Useful to display multiple figures generated by different AbiPy methods + without having to construct a plotly subplot grid. + + Args: + figs: List of plotly figures. + filename: File name to save in. Use temporary filename if filename is None. + browser: Open webpage in ``browser``. Use $BROWSER if None. + + Example: + + fig1 = plotter.combiplotly(renderer="browser", title="foo", show=False) + fig2 = plotter.combiplotly(renderer="browser", title="bar", show=False) + from abipy.tools.plotting import plotlyfigs_to_browser + plotlyfigs_to_browser([fig1, fig2]) + + Return: path to HTML file. + """ + if filename is None: + import tempfile + fd, filename = tempfile.mkstemp(text=True, suffix=".html") + + if not isinstance(figs, (list, tuple)): figs = [figs] + + # Based on https://stackoverflow.com/questions/46821554/multiple-plotly-plots-on-1-page-without-subplot + with open(filename, "wt") as fp: + for i, fig in enumerate(figs): + first = True if i == 0 else False + fig.write_html(fp, include_plotlyjs=first, include_mathjax="cdn" if first else False) + + import webbrowser + print("Opening HTML file:", filename) + webbrowser.get(browser).open_new_tab("file://" + filename) + + return filename + + +def plotly_klabels(labels: list, allow_dupes=False) -> list: + """ + This helper function polish a list of k-points labels before calling plotly by: + + - Checking if we have two equivalent consecutive labels (only the first one is shown and the second one is set to "") + - Replacing particular Latex tokens with unicode as plotly support for Latex is far from optimal. + + Return: New list labels, same length as input labels. + """ + new_labels = labels.copy() + + if not allow_dupes: + # Don't show label if previous k-point is the same. + for il in range(1, len(new_labels)): + if new_labels[il] == new_labels[il - 1]: new_labels[il] = "" + + replace = { + r"$\Gamma$": "Γ", + } + + for il in range(len(new_labels)): + if new_labels[il] in replace: + new_labels[il] = replace[new_labels[il]] + + return new_labels + + +def plotly_set_xylabels(fig, xlabel, ylabel, exchange_xy): + """ + Set the x- and the y-label of axis ax, exchanging x and y if exchange_xy + """ + if exchange_xy: xlabel, ylabel = ylabel, xlabel + fig.layout.xaxis.title.text = xlabel + fig.layout.yaxis.title.text = ylabel + + +_PLOTLY_AUTHEHTICATED = False + + +def plotly_chartstudio_authenticate(): + """ + Authenticate the user on the chart studio portal by reading `PLOTLY_USERNAME` and `PLOTLY_API_KEY` + from the pymatgen configuration file located in $HOME/.pmgrc.yaml. + + PLOTLY_USERNAME: johndoe + PLOTLY_API_KEY: XXXXXXXXXXXXXXXXXXXX + + """ + global _PLOTLY_AUTHEHTICATED + if _PLOTLY_AUTHEHTICATED: return + + try: + from pymatgen.core import SETTINGS + #from pymatgen.settings import SETTINGS + except ImportError: + from pymatgen import SETTINGS + + example = """ +Add it to $HOME/.pmgrc.yaml using the follow syntax: + +PLOTLY_USERNAME: john_doe +PLOTLY_API_KEY: secret # to get your api_key go to profile > settings > regenerate key + +""" + + username = SETTINGS.get("PLOTLY_USERNAME") + if username is None: + raise RuntimeError(f"Cannot find PLOTLY_USERNAME in pymatgen settings.\n{example}") + + api_key = SETTINGS.get("PLOTLY_API_KEY") + if api_key is None: + raise RuntimeError(f"Cannot find PLOTLY_API_KEY in pymatgen settings.\n{example}") + + import chart_studio + # https://towardsdatascience.com/how-to-create-a-plotly-visualization-and-embed-it-on-websites-517c1a78568b + chart_studio.tools.set_credentials_file(username=username, api_key=api_key) + _PLOTLY_AUTHEHTICATED = True + + +def push_to_chart_studio(figs) -> None: + """ + Push a plotly figure or a list of figures to the chart studio cloud. + """ + plotly_chartstudio_authenticate() + import chart_studio.plotly as py + if not isinstance(figs, (list, tuple)): figs = [figs] + for fig in figs: + py.plot(fig, auto_open=True) + + +#################################################### +# This code is shamelessy taken from Adam's package +#################################################### + + +def go_points(points, size=4, color="black", labels=None, **kwargs): + + #textposition = 'top right', + #textfont = dict(color='#E58606'), + mode = "markers" if labels is None else "markers+text" + #text = labels + + if labels is not None: + labels = plotly_klabels(labels, allow_dupes=True) + + import plotly.graph_objects as go + return go.Scatter3d( + x=[v[0] for v in points], + y=[v[1] for v in points], + z=[v[2] for v in points], + marker=dict(size=size, color=color), + mode=mode, + text=labels, + **kwargs + ) + + +def _add_if_not_in(d, key, value): + if key not in d: + d[key] = value + + +def go_line(v1, v2, color="black", width=2, mode="lines", **kwargs): + + _add_if_not_in(kwargs, "line_color", "black") + _add_if_not_in(kwargs, "line_width", 2) + + import plotly.graph_objects as go + return go.Scatter3d( + mode=mode, + x=[v1[0], v2[0]], + y=[v1[1], v2[1]], + z=[v1[2], v2[2]], + #line=dict(color=color, width=width), + **kwargs + ) + + +def go_lines(V, name=None, color="black", width=2, **kwargs): + import plotly.graph_objects as go + gen = ((v1, v2) for (v1, v2) in V) + v1, v2 = next(gen) + out = [ + go_line(v1, v2, width=width, color=color, name=name, legendgroup=name, **kwargs) + ] + out.extend( + go_line( + v1, + v2, + width=width, + color=color, + showlegend=False, + legendgroup=name, + **kwargs + ) + for (v1, v2) in gen + ) + return out + + +def vectors(lattice, name=None, color="black", width=4, **kwargs): + gen = zip(lattice, ["a", "b", "c"]) + v, label = next(gen) + + out = [ + go_line( + [0, 0, 0], + v, + text=["", label], + width=width, + color=color, + name=name, + legendgroup=name, + mode="lines+text", + **kwargs + ) + ] + out.extend( + go_line( + [0, 0, 0], + v, + text=["", label], + width=width, + color=color, + showlegend=False, + legendgroup=name, + mode="lines+text", + **kwargs + ) + for (v, label) in gen + ) + return out + + +def get_vectors(lattice_mat, name=None, color="black", width=2, **kwargs): + return go_lines([[[0, 0, 0], v] for v in lattice_mat], **kwargs) + + +def get_box(lattice_mat, **kwargs): + a, b, c = lattice_mat + segments = [ + [[0, 0, 0], a], + [[0, 0, 0], b], + [[0, 0, 0], c], + [a, a + b], + [a, a + c], + [b, b + a], + [b, b + c], + [c, c + a], + [c, c + b], + [a + b, a + b + c], + [a + c, a + b + c], + [b + c, a + b + c], + ] + return go_lines(segments, **kwargs) + + +def plot_fcc_conv(): + + fcc_conv = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) + fcc_vectors = vectors( + fcc_conv, name="conv lattice vectors", color="darkblue", width=6 + ) + fcc_box = get_box(fcc_conv, name="conv lattice") + + atoms = go_points( + [[0, 0, 0], [0.5, 0.5, 0], [0.5, 0, 0.5], [0, 0.5, 0.5]], + size=10, + color="orange", + name="atoms", + legendgroup="atoms", + ) + + import plotly.graph_objects as go + fig = go.Figure(data=[*fcc_box, *fcc_vectors, atoms]) + return fig + + +def plot_fcc_prim(): + fcc_prim = np.array([[0.5, 0.5, 0], [0, 0.5, 0.5], [0.5, 0, 0.5]]) + + fcc_prim_vectors = vectors( + fcc_prim, name="prim lattice vectors", color="green", width=6 + ) + fcc_prim_box = get_box(fcc_prim, name="prim lattice", color="green") + + atoms = go_points( + [[0, 0, 0], [0.5, 0.5, 0], [0.5, 0, 0.5], [0, 0.5, 0.5]], + size=10, + color="orange", + name="atoms", + legendgroup="atoms", + ) + + fcc_conv = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) + fcc_conv_box = get_box(fcc_conv, name="conv lattice") + + import plotly.graph_objects as go + fig = go.Figure(data=[*fcc_prim_box, *fcc_prim_vectors, *fcc_conv_box, atoms]) + + return fig + + +def plot_fcc_100(): + + # fcc_100_cell = np.array([[0, 0.5, -0.5], [0, 0.5, 0.5], [1.0, 0.0, 0]]) + fcc_100_cell = np.array([[0.5, -0.5, 0], [0.5, 0.5, 0], [0.0, 0, 1.0]]) + + fcc_100_vectors = vectors( + fcc_100_cell, name="100 lattice vectors", color="red", width=6 + ) + fcc_100_box = get_box(fcc_100_cell, name="100 lattice", color="red") + + fig = plot_fcc_conv() + fig.add_traces([*fcc_100_box, *fcc_100_vectors]) + + return fig + + +def plot_fcc_110(): + fcc_110_cell = np.array([[0, 0.0, 1.0], [0.5, -0.5, 0], [0.5, 0.5, 0.0]]) + + fcc_110_vectors = vectors( + fcc_110_cell, name="reduced lattice vectors", color="red", width=6 + ) + fcc_110_box = get_box(fcc_110_cell, name="reduced lattice", color="red") + + fig = plot_fcc_conv() + fig.add_traces([*fcc_110_box, *fcc_110_vectors]) + return fig + + +def plot_fcc_111(): + fcc_111_cell = np.array([[0.5, 0, -0.5], [0, 0.5, -0.5], [1, 1, 1]]) + + fcc_111_vectors = vectors( + fcc_111_cell, name="reduced lattice vectors", color="red", width=6 + ) + fcc_111_box = get_box(fcc_111_cell, name="reduced lattice", color="red") + + fig = plot_fcc_conv() + fig.add_traces([*fcc_111_box, *fcc_111_vectors]) + return fig + + +def plotly_structure(structure, ax=None, to_unit_cell=False, alpha=0.7, + style="points+labels", color_scheme="VESTA", **kwargs): + """ + Plot structure with plotly (minimalistic version). + + Args: + structure: |Structure| object + ax: matplotlib :class:`Axes3D` or None if a new figure should be created. + alpha: The alpha blending value, between 0 (transparent) and 1 (opaque) + to_unit_cell: True if sites should be wrapped into the first unit cell. + style: "points+labels" to show atoms sites with labels. + color_scheme: color scheme for atom types. Allowed values in ("Jmol", "VESTA") + + Returns: |matplotlib-Figure| + """ + #fig, ax = plot_unit_cell(structure.lattice, ax=ax, linewidth=1) + + box = get_box(structure.lattice.matrix) #, **kwargs): + + from pymatgen.analysis.molecule_structure_comparator import CovalentRadius + from pymatgen.vis.structure_vtk import EL_COLORS + + #symb2data = {} + #for symbol in structure.symbol_set: + # symb2data[symbol] = d = {} + # d["color"] = color = tuple(i / 255 for i in EL_COLORS[color_scheme][symbol]) + # d["radius"] = CovalentRadius.radius[symbol] + # inds = structure.indices_from_symbol(symbol) + # sites = [structure[i] for i in inds] + # d["xyz"] = [] + # for site in sites: + # if to_unit_cell and hasattr(site, "to_unit_cell"): site = site.to_unit_cell() + # Use cartesian coordinates. + # x, y, z = site.coords + # d["xyz"].append((x, y ,z) + + xyz, sizes, colors = np.empty((len(structure), 3)), [], [] + for i, site in enumerate(structure): + symbol = site.specie.symbol + color = tuple(i / 255 for i in EL_COLORS[color_scheme][symbol]) + radius = CovalentRadius.radius[symbol] + if to_unit_cell and hasattr(site, "to_unit_cell"): site = site.to_unit_cell() + # Use cartesian coordinates. + x, y, z = site.coords + xyz[i] = (x, y, z) # , radius) + sizes.append(radius) + colors.append(color) + #if "labels" in style: + # ax.text(x, y, z, symbol) + + atoms = go_points( + #[[0, 0, 0], [0.5, 0.5, 0], [0.5, 0, 0.5], [0, 0.5, 0.5]], + xyz, + size=10, + color="orange", + name="atoms", + legendgroup="atoms", + ) + + #marker = [dict(size=size, color=color) for (size, color) in zip(sizes, colors)] + + #atoms = go.Scatter3d( + # x=[v[0] for v in xyz], + # y=[v[1] for v in xyz], + # z=[v[2] for v in xyz], + # #marker=dict(size=size, color=color), + # marker=marker, + # mode="markers", + # #**kwargs + #) + + # The definition of sizes is not optimal because matplotlib uses points + # whereas we would like something that depends on the radius (5000 seems to give reasonable plots) + # For possibile approaches, see + # https://stackoverflow.com/questions/9081553/python-scatter-plot-size-and-style-of-the-marker/24567352#24567352 + # https://gist.github.com/syrte/592a062c562cd2a98a83 + #if "points" in style: + # x, y, z, s = xyzs.T.copy() + # s = 5000 * s ** 2 + # ax.scatter(x, y, zs=z, s=s, c=colors, alpha=alpha) #facecolors="white", #edgecolors="blue" + + #ax.set_title(structure.composition.formula) + #ax.set_axis_off() + + #fig = go.Figure(data=[*box, *vectors, atoms]) + import plotly.graph_objects as go + fig = go.Figure(data=[*box, atoms]) + return fig + + +# This is the matplotlib API to plot the BZ. + +def plotly_wigner_seitz(lattice, fig=None, **kwargs): + """ + Adds the skeleton of the Wigner-Seitz cell of the lattice to a plotly figure. + + Args: + lattice: Lattice object + fig: plotly figure or None if a new figure should be created. + kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to black + and linewidth to 1. + + Returns: Plotly figure + """ + #ax, fig, plt = get_ax3d_fig_plt(ax) + fig, go = get_fig_plotly(fig=fig) #, **fig_kw) + + if "line_color" not in kwargs: + kwargs["line_color"] = "black" + if "line_width" not in kwargs: + kwargs["line_width"] = 1 + + bz = lattice.get_wigner_seitz_cell() + #ax, fig, plt = get_ax3d_fig_plt(ax) + + for iface in range(len(bz)): # pylint: disable=C0200 + for line in itertools.combinations(bz[iface], 2): + for jface in range(len(bz)): + if (iface < jface + and any(np.all(line[0] == x) for x in bz[jface]) + and any(np.all(line[1] == x) for x in bz[jface])): + #ax.plot(*zip(line[0], line[1]), **kwargs) + fig.add_trace(go_line(line[0], line[1], showlegend=False, **kwargs)) + + return fig + + +def plotly_lattice_vectors(lattice, fig=None, **kwargs): + """ + Adds the basis vectors of the lattice provided to a plotly figure. + + Args: + lattice: Lattice object + fig: plotly figure or None if a new figure should be created. + kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to green + and linewidth to 3. + + Returns: plotly figure + """ + fig, go = get_fig_plotly(fig=fig) + + if "line_color" not in kwargs: + kwargs["line_color"] = "green" + if "line_width" not in kwargs: + kwargs["line_width"] = 3 + if "showlegend" not in kwargs: + kwargs["showlegend"] = False + + vertex1 = lattice.get_cartesian_coords([0.0, 0.0, 0.0]) + vertex2 = lattice.get_cartesian_coords([1.0, 0.0, 0.0]) + fig.add_trace(go_line(vertex1, vertex2, name="a", **kwargs)) + vertex2 = lattice.get_cartesian_coords([0.0, 1.0, 0.0]) + fig.add_trace(go_line(vertex1, vertex2, name="b", **kwargs)) + vertex2 = lattice.get_cartesian_coords([0.0, 0.0, 1.0]) + fig.add_trace(go_line(vertex1, vertex2, name="c", **kwargs)) + + return fig + + +def plotly_path(line, lattice=None, coords_are_cartesian=False, fig=None, **kwargs): + """ + Adds a line passing through the coordinates listed in 'line' to a plotly figure. + + Args: + line: list of coordinates. + lattice: Lattice object used to convert from reciprocal to cartesian coordinates + coords_are_cartesian: Set to True if you are providing + coordinates in cartesian coordinates. Defaults to False. + Requires lattice if False. + fig: plotly figure or None if a new figure should be created. + kwargs: kwargs passed to the matplotlib function 'plot'. Color defaults to red + and linewidth to 3. + + Returns: plotly figure + """ + fig, go = get_fig_plotly(fig=fig) + + if "line_color" not in kwargs: + kwargs["line_color"] = "red" + if "line_width" not in kwargs: + kwargs["line_width"] = 3 + + for k in range(1, len(line)): + vertex1 = line[k - 1] + vertex2 = line[k] + if not coords_are_cartesian: + if lattice is None: + raise ValueError("coords_are_cartesian False requires the lattice") + vertex1 = lattice.get_cartesian_coords(vertex1) + vertex2 = lattice.get_cartesian_coords(vertex2) + + fig.add_trace(go_line(vertex1, vertex2, showlegend=False, **kwargs)) + + return fig + + +#def plotly_labels(labels, lattice=None, coords_are_cartesian=False, ax=None, **kwargs): +# """ +# Adds labels to a matplotlib Axes +# +# Args: +# labels: dict containing the label as a key and the coordinates as value. +# lattice: Lattice object used to convert from reciprocal to cartesian coordinates +# coords_are_cartesian: Set to True if you are providing. +# coordinates in cartesian coordinates. Defaults to False. +# Requires lattice if False. +# ax: matplotlib :class:`Axes` or None if a new figure should be created. +# kwargs: kwargs passed to the matplotlib function 'text'. Color defaults to blue +# and size to 25. +# +# Returns: +# matplotlib figure and matplotlib ax +# """ +# ax, fig, plt = get_ax3d_fig_plt(ax) +# +# if "color" not in kwargs: +# kwargs["color"] = "b" +# if "size" not in kwargs: +# kwargs["size"] = 25 +# +# for k, coords in labels.items(): +# label = k +# if k.startswith("\\") or k.find("_") != -1: +# label = "$" + k + "$" +# off = 0.01 +# if coords_are_cartesian: +# coords = np.array(coords) +# else: +# if lattice is None: +# raise ValueError("coords_are_cartesian False requires the lattice") +# coords = lattice.get_cartesian_coords(coords) +# ax.text(*(coords + off), s=label, **kwargs) +# +# return fig, ax + + +def plotly_points(points, lattice=None, coords_are_cartesian=False, fold=False, labels=None, fig=None, **kwargs): + """ + Adds points to a plotly figure. + + Args: + points: list of coordinates + lattice: Lattice object used to convert from reciprocal to cartesian coordinates + coords_are_cartesian: Set to True if you are providing + coordinates in cartesian coordinates. Defaults to False. + Requires lattice if False. + fold: whether the points should be folded inside the first Brillouin Zone. + Defaults to False. Requires lattice if True. + fig: plotly figure or None if a new figure should be created. + kwargs: kwargs passed to the matplotlib function 'scatter'. Color defaults to blue + + Returns: plotly figure + """ + fig, go = get_fig_plotly(fig=fig) #, **fig_kw) + + if "marker_color" not in kwargs: + kwargs["marker_color"] = "blue" + + if (not coords_are_cartesian or fold) and lattice is None: + raise ValueError("coords_are_cartesian False or fold True require the lattice") + + from pymatgen.electronic_structure.plotter import fold_point + vecs = [] + for p in points: + if fold: + p = fold_point(p, lattice, coords_are_cartesian=coords_are_cartesian) + elif not coords_are_cartesian: + p = lattice.get_cartesian_coords(p) + + vecs.append(p) + + kws = dict(textposition="top right", showlegend=False) #, textfont=dict(color='#E58606')) + kws.update(kwargs) + fig.add_trace(go_points(vecs, labels=labels, **kws)) + + return fig + + +@add_plotly_fig_kwargs +def plotly_brillouin_zone_from_kpath(kpath, fig=None, **kwargs): + """ + Gives the plot (as a matplotlib object) of the symmetry line path in + the Brillouin Zone. + + Args: + kpath (HighSymmKpath): a HighSymmKPath object + ax: matplotlib :class:`Axes` or None if a new figure should be created. + **kwargs: provided by add_fig_kwargs decorator + + Returns: plotly figure. + """ + lines = [[kpath.kpath["kpoints"][k] for k in p] for p in kpath.kpath["path"]] + return plotly_brillouin_zone( + bz_lattice=kpath.prim_rec, + lines=lines, + fig=fig, + labels=kpath.kpath["kpoints"], + show=False, + **kwargs, + ) + + +@add_plotly_fig_kwargs +def plotly_brillouin_zone( + bz_lattice, + lines=None, + labels=None, + kpoints=None, + fold=False, + coords_are_cartesian=False, + fig=None, + **kwargs, +): + """ + Plots a 3D representation of the Brillouin zone of the structure. + Can add to the plot paths, labels and kpoints + + Args: + bz_lattice: Lattice object of the Brillouin zone + lines: list of lists of coordinates. Each list represent a different path + labels: dict containing the label as a key and the coordinates as value. + kpoints: list of coordinates + fold: whether the points should be folded inside the first Brillouin Zone. + Defaults to False. Requires lattice if True. + coords_are_cartesian: Set to True if you are providing + coordinates in cartesian coordinates. Defaults to False. + ax: matplotlib :class:`Axes` or None if a new figure should be created. + kwargs: provided by add_fig_kwargs decorator + + Returns: plotly figure + """ + + fig = plotly_lattice_vectors(bz_lattice, fig=fig) + plotly_wigner_seitz(bz_lattice, fig=fig) + if lines is not None: + for line in lines: + plotly_path(line, bz_lattice, coords_are_cartesian=coords_are_cartesian, fig=fig) + + if labels is not None: + # TODO + #plotly_labels(labels, bz_lattice, coords_are_cartesian=coords_are_cartesian, ax=ax) + plotly_points( + labels.values(), + lattice=bz_lattice, + coords_are_cartesian=coords_are_cartesian, + fold=False, + labels=list(labels.keys()), + fig=fig, + ) + + if kpoints is not None: + plotly_points( + kpoints, + lattice=bz_lattice, + coords_are_cartesian=coords_are_cartesian, + fold=fold, + fig=fig, + ) + + return fig + + +def add_colorscale_dropwdowns(fig): + """ + Add dropdown widgets to change/reverse the colorscale. + Based on: https://plotly.com/python/dropdowns/#update-several-data-attributes + """ + button_layer_1_height = 1.30 + + # Create list of buttons + # A single button has the form: + # + # dict( + # args=["colorscale", "Viridis"], + # label="Viridis", + # method="restyle" + # ), + + colorscales = ["Viridis", "Cividis", "Blues", "Greens"] + + colorscale_buttons = [] + for cscale in colorscales: + colorscale_buttons.append(dict( + args=["colorscale", cscale], + label=cscale, + method="restyle", + )) + + fig.update_layout( + updatemenus=[ + dict( + buttons=colorscale_buttons, + direction="down", + pad={"r": 10, "t": 10}, + showactive=True, + x=0.1, + xanchor="left", + y=button_layer_1_height, + yanchor="top" + ), + dict( + buttons=list([ + dict( + args=["reversescale", False], + label="False", + method="restyle" + ), + dict( + args=["reversescale", True], + label="True", + method="restyle" + ) + ]), + direction="down", + pad={"r": 10, "t": 10}, + showactive=True, + x=0.37, + xanchor="left", + y=button_layer_1_height, + yanchor="top" + ), + ] + ) + + y = button_layer_1_height - 0.02 + + fig.update_layout( + annotations=[ + dict(text="colorscale", x=0, xref="paper", y=y, yref="paper", + align="left", showarrow=False), + dict(text="Reverse
    Colorscale", x=0.25, xref="paper", y=y, + yref="paper", showarrow=False), + ]) + + return fig + + +def mpl_to_ply(fig: Figure, latex: bool= False): + """ + Nasty workaround for plotly latex rendering in legend/breaking exception + """ + if is_plotly_figure(fig): + return fig + + def parse_latex(label): + # Remove latex symobols + new_label = label.replace("$", "") + new_label = new_label.replace("\\", "") if not latex else new_label + new_label = new_label.replace("{", "") if not latex else new_label + new_label = new_label.replace("}", "") if not latex else new_label + # plotly latex needs an extra \ for parsing python strings + # new_label = new_label.replace(" ", "\\ ") if latex else new_label + # Wrap the label in dollar signs for LaTeX, if needed unless empty`` + new_label = f"${new_label}$" if latex and len(new_label) > 0 else new_label + + return new_label + + for ax in fig.get_axes(): + # TODO improve below logic to add new scatter plots? + # Loop backwards through the collections to avoid modifying the list as we iterate + for coll in ax.collections[::-1]: + if isinstance(coll, mcoll.PathCollection): + # Use the remove() method to remove the scatter plot collection from the axes + coll.remove() + + # Process the axis title, x-label, and y-label + for label in [ax.get_title(), ax.get_xlabel(), ax.get_ylabel()]: + # Few differences in how mpl and ply parse/encode symbols + new_label = parse_latex(label) + # Set the new label + if label == ax.get_title(): + ax.set_title(new_label) + elif label == ax.get_xlabel(): + ax.set_xlabel(new_label) + elif label == ax.get_ylabel(): + ax.set_ylabel(new_label) + + # Check if the axis has a legend + if ax.get_legend(): + legend = ax.get_legend() + # Get the legend's text entries + for text in legend.get_texts(): + label = text.get_text() + # Remove any existing dollar signs + new_label = parse_latex(label) + # Set the new label + text.set_text(new_label) + + # Convert to plotly figure + from plotly.tools import mpl_to_plotly + plotly_fig = mpl_to_plotly(fig) + + plotly_fig.update_layout(template = "plotly_white", title = { + "xanchor": "center", + "yanchor": "top", + "x": 0.5, + "font": { + "size": 14 + }, + }) + + # Iterate over the axes in the figure to retrieve the custom line attributes + for ax in fig.get_axes(): + if hasattr(ax, '_custom_rc_lines'): + for rc, color in ax._custom_rc_lines: + # Add vertical lines to the Plotly figure + plotly_fig.add_vline( + x=rc, + line_width=2, + line_dash="dash", + line_color=color + ) + + # # Loop through each trace and update the hover labels to remove $ + for trace in plotly_fig.data: + # Retrieve the current label and remove any $ signs + new_label = trace.name.replace("$", "") + # Update the trace's name (which is used for the legend label) + trace.name = new_label + + return plotly_fig + + +class PolyfitPlotter: + """ + Fit data with polynomals of different degrees and visualize the results. + """ + def __init__(self, xs, ys): + self.xs, self.ys = np.array(xs), np.array(ys) + + @add_fig_kwargs + def plot(self, deg_list: list[int], + num=100, ax=None, xlabel=None, ylabel=None, fontsize=8, **kwargs) -> Figure: + """ + Args: + deg_list: List with degrees of the fitting polynomial. + num: Number of samples to generate. Default is 100. Must be non-negative. + ax: |matplotlib-Axes| or None if a new figure should be created. + fontsize: Legend fontsize. + """ + xs, ys = self.xs, self.ys + ax, fig, plt = get_ax_fig_plt(ax=ax) + + for i, deg in enumerate(deg_list): + # Fit a ndeg polynomial to the data points and get the polynomial function. + coefficients = np.polyfit(xs, ys, deg) + polynomial = np.poly1d(coefficients) + #print("Coefficients:", coefficients); print("Polynomial:", polynomial) + + if i == 0: + # Plot the original data points + ax.scatter(xs, ys, color='red', marker="o", label='Data Points') + + # Generate (x, y) values for plotting the fit + x_fit = np.linspace(min(xs), max(xs), num) + y_fit = polynomial(x_fit) + ax.plot(x_fit, y_fit, label=f"{deg}-order fit") + + if xlabel is not None: ax.set_xlabel(xlabel) + if ylabel is not None: ax.set_ylabel(ylabel) + ax.legend(loc="best", fontsize=fontsize, shadow=True) + + return fig + + +#class PolyExtrapolator: +# """ +# Fit data with polynomals, extrapolate to zero and visualize the results. +# """ +# def __init__(self, xs, ys): +# self.xs, self.ys = np.array(xs), np.array(ys) +# +# def extrapolate_to_zero(self, deg: int): + + + diff --git a/abipy/tools/printing.py b/abipy/tools/printing.py index 9196b32ee..ee7c1660d 100644 --- a/abipy/tools/printing.py +++ b/abipy/tools/printing.py @@ -1,42 +1,48 @@ -"""Utilities for pandas dataframe""" +"""Utilities for pandas dataframes""" +from __future__ import annotations import sys +import pandas as pd +from io import StringIO -def print_dataframe(frame, title=None, precision=6, sortby=None, file=sys.stdout, display=None): + +def print_dataframe(df: pd.DataFrame, + title=None, precision=6, sortby=None, file=sys.stdout, end=None, display=None) -> None: """ Print entire pandas DataFrame. Args: - frame: pandas DataFrame. + df: pandas DataFrame. title: Optional string to print as initial title. precision: Floating point output precision (number of significant digits). This is only a suggestion [default: 6] [currently: 6] sortby: string name or list of names which refer to the axis items to be sorted (dataframe is not changed) file: a file-like object (stream); defaults to the current sys.stdout. If file == "string", a temporary stream is created and a string is returned. + end: End string. display: Use ipython rich display protocol by invoking _repr_`display_ and returning the result. Use e.g. display="html" to get HTML table. """ return_string = file == "string" if return_string: - from io import StringIO file = StringIO() if title is not None: print(title, file=file) - if sortby is not None and sortby in frame: - frame = frame.sort_values(sortby, inplace=False) + if sortby is not None and sortby in df: + df = df.sort_values(sortby, inplace=False) - import pandas as pd - with pd.option_context("display.max_rows", len(frame), - "display.max_columns", len(list(frame.keys())), + with pd.option_context("display.max_rows", len(df), + "display.max_columns", len(list(df.keys())), "display.precision", precision, ): if display is None: - print(frame, file=file) + print(df, file=file) print(" ", file=file) + if end is not None: + print(end, file=file) if return_string: return file.getvalue() else: from IPython.core.display import HTML - output = getattr(frame, "_repr_%s_" % display)() + output = getattr(df, "_repr_%s_" % display)() return HTML(output) diff --git a/abipy/tools/serialization.py b/abipy/tools/serialization.py new file mode 100644 index 000000000..5b6681e2f --- /dev/null +++ b/abipy/tools/serialization.py @@ -0,0 +1,163 @@ +# Copyright (c) Pymatgen Development Team. +# Distributed under the terms of the MIT License. +""" +Most features of this module has been moved to monty. Please refer to +monty.json and monty.serialization documentation. +""" +from __future__ import annotations + +import functools +import json +import pickle +import json + +from typing import Any +from pathlib import Path +from monty.json import MontyDecoder, MontyEncoder +from pymatgen.core.periodic_table import Element +from abipy.tools.context_managers import Timer + + +def pmg_serialize(method): + """ + Decorator for methods that add MSON serializations keys + to the dictionary. See documentation of MSON for more details + """ + + @functools.wraps(method) + def wrapper(*args, **kwargs): + if not args: + return None + self = args[0] + d = method(*args, **kwargs) + # Add @module and @class + d["@module"] = type(self).__module__ + d["@class"] = type(self).__name__ + return d + + return wrapper + + +def json_pretty_dump(obj: Any, filename: str) -> None: + """ + Serialize obj as a JSON formatted stream to the given filename ( + pretty printing version) + """ + with open(filename, "w") as fh: + json.dump(obj, fh, indent=4, sort_keys=4) + + +class PmgPickler(pickle.Pickler): + """ + Persistence of External Objects as described in section 12.1.5.1 of + https://docs.python.org/3/library/pickle.html + """ + + def persistent_id(self, obj: Any): + """Instead of pickling as a regular class instance, we emit a persistent ID.""" + if isinstance(obj, Element): + # Here, our persistent ID is simply a tuple, containing a tag and + # a key + return type(obj).__name__, obj.symbol + # If obj does not have a persistent ID, return None. This means obj + # needs to be pickled as usual. + return None + + +class PmgUnpickler(pickle.Unpickler): + """ + Persistence of External Objects as described in section 12.1.5.1 of + https://docs.python.org/3/library/pickle.html + """ + + def persistent_load(self, pid): + """ + This method is invoked whenever a persistent ID is encountered. + Here, pid is the tuple returned by PmgPickler. + """ + try: + type_tag, key_id = pid + except Exception: + # Sometimes we get a string such as ('Element', u'C') instead + # of a real tuple. Use ast to evaluate the expression (much safer + # than eval). + import ast + type_tag, key_id = ast.literal_eval(pid) + + if type_tag == "Element": + return Element(key_id) + + # Always raises an error if you cannot return the correct object. + # Otherwise, the unpickler will think None is the object referenced + # by the persistent ID. + raise pickle.UnpicklingError(f"unsupported persistent object with pid {pid}") + + +def pmg_pickle_load(filobj, **kwargs) -> Any: + """ + Loads a pickle file and deserialize it with PmgUnpickler. + + Args: + filobj: File-like object + **kwargs: Any of the keyword arguments supported by PmgUnpickler + Returns: + Deserialized object. + """ + return PmgUnpickler(filobj, **kwargs).load() + + +def pmg_pickle_dump(obj: Any, filobj, **kwargs): + """ + Dump an object to a pickle file using PmgPickler. + + Args: + obj: Object to dump. + fileobj: File-like object + **kwargs: Any of the keyword arguments supported by PmgPickler + """ + return PmgPickler(filobj, **kwargs).dump(obj) + + +def mjson_load(filepath: str, **kwargs) -> Any: + """ + Read JSON file in MSONable format with MontyDecoder. + """ + with open(filepath, "rt") as fh: + return json.load(fh, cls=MontyDecoder, **kwargs) + + +def mjson_loads(string: str, **kwargs) -> Any: + """ + Read JSON string in MSONable format with MontyDecoder. + """ + return json.loads(string, cls=MontyDecoder, **kwargs) + + +def mjson_write(obj: Any, filepath: str, **kwargs) -> None: + """ + Write object to filepath in JSON format using MontyDecoder. + """ + with open(filepath, "wt") as fh: + json.dump(obj, fh, cls=MontyEncoder, **kwargs) + + +class HasPickleIO: + """ + Mixin class providing pickle IO methods. + """ + + @classmethod + def pickle_load(cls, workdir, basename=None): + """ + Reconstruct the object from a pickle file located in workdir. + """ + filepath = Path(workdir) / f"{cls.__name__}.pickle" if basename is None else Path(workdir) / basename + with open(filepath, "rb") as fh, Timer(header=f"Reconstructing {cls.__name__} instance from file: {str(filepath)}", footer="") as timer: + return pickle.load(fh) + + def pickle_dump(self, workdir, basename=None) -> Path: + """Write pickle file. Return path to file""" + filepath = Path(workdir) / f"{self.__class__.__name__}.pickle" if basename is None else Path(workdir) / basename + with open(filepath, "wb") as fh, Timer(header=f"Saving {self.__class__.__name__} instance to file: {str(filepath)}", footer="") as timer: + pickle.dump(self, fh) + return filepath diff --git a/abipy/tools/tensors.py b/abipy/tools/tensors.py index b8d00e5c2..31ab1b7e6 100644 --- a/abipy/tools/tensors.py +++ b/abipy/tools/tensors.py @@ -2,6 +2,7 @@ """ This modules provides subclasses of pymatgen tensor objects. """ +from __future__ import annotations import numpy as np import pandas as pd @@ -12,18 +13,26 @@ from abipy.iotools import ETSF_Reader -class _Tensor33(object): +class _Tensor33: def _repr_html_(self): """Integration with jupyter notebooks.""" return self.get_dataframe()._repr_html_() - def get_dataframe(self, tol=1e-3): - """Return |pandas-Dataframe| with tensor elements set to zero below `tol`.""" + def get_dataframe(self, tol=1e-3, cmode=None) -> pd.DataFrame: + """ + Return |pandas-Dataframe| with tensor elements set to zero below `tol`. + + Args: + cmode: "real" or "imag" to include only the real/imaginary part. + """ tensor = self.zeroed(tol=tol) + if cmode == "real": tensor = tensor.real + if cmode == "imag": tensor = tensor.imag + return pd.DataFrame({"x": tensor[:,0], "y": tensor[:,1], "z": tensor[:,2]}, index=["x", "y", "z"]) - def get_voigt_dataframe(self, tol=1e-3): + def get_voigt_dataframe(self, tol=1e-3) -> pd.DataFrame: """ Return |pandas-DataFrame| with Voigt indices as colums. Elements below tol are set to zero. @@ -54,7 +63,7 @@ class DielectricTensor(SquareTensor, _Tensor33): .. inheritance-diagram:: DielectricTensor """ - def reflectivity(self, n1=1, tol=1e-6): + def reflectivity(self, n1=1, tol=1e-6) -> pd.DataFrame: """ If the tensor is diagonal (with off diagonal elements smaller than tol) returns the three components of the reflectivity @@ -89,7 +98,7 @@ class NLOpticalSusceptibilityTensor(Tensor): """ @classmethod - def from_file(cls, filepath): + def from_file(cls, filepath: str) -> NLOpticalSusceptibilityTensor: """ Creates the tensor from an anaddb.nc netcdf file containing ``dchide``. This requires to run anaddb with ``tnlflag`` > 0 diff --git a/abipy/tools/tests/test_context_managers.py b/abipy/tools/tests/test_context_managers.py new file mode 100644 index 000000000..e0c391f1a --- /dev/null +++ b/abipy/tools/tests/test_context_managers.py @@ -0,0 +1,36 @@ +# coding: utf-8 +"""Tests for context_managers module.""" +import time + +from abipy.core.testing import AbipyTest +from abipy.tools.context_managers import Timer, temporary_change_attributes, Timeout + + +class TestContextManagers(AbipyTest): + """Test context_managers.""" + + def test_api(self): + """Testing tonumber""" + + class Something(object): + def __init__(self, x, y): + self.x = x + self.y = y + + with Timer("Creating Something"): + s = Something(1, 2) + + assert s.x == 1 and s.y == 2 + + with temporary_change_attributes(s, x=4, y=5): + assert s.x == 4 and s.y == 5 + + assert s.x == 1 and s.y == 2 + + with self.assertRaises(ValueError): + with Timeout(seconds=0, message="Timeout"): + pass + + with self.assertRaises(TimeoutError): + with Timeout(seconds=2, message="Timeout"): + time.sleep(6) diff --git a/abipy/tools/tests/test_duck.py b/abipy/tools/tests/test_duck.py index 7c46f3af5..bc3ac4141 100644 --- a/abipy/tools/tests/test_duck.py +++ b/abipy/tools/tests/test_duck.py @@ -36,11 +36,11 @@ def test_is_intlike(self): assert not duck.is_intlike("1") assert not duck.is_intlike([1, 2, 3]) - for t in (np.int32, np.int64, np.float64): + for t in (int, np.int64, np.float64): assert duck.is_intlike(t(123)) - assert duck.is_intlike(np.complex(123)) - assert not duck.is_intlike(np.complex(123.2)) + assert duck.is_intlike(complex(123)) + assert not duck.is_intlike(complex(123.2)) assert not duck.is_intlike(123 + 1j * 2) def test_is_listlike(self): diff --git a/abipy/tools/tests/test_numtools.py b/abipy/tools/tests/test_numtools.py index 2b60d2014..2fc74995b 100644 --- a/abipy/tools/tests/test_numtools.py +++ b/abipy/tools/tests/test_numtools.py @@ -45,7 +45,7 @@ def test_add_periodic_replicas(self): def test_data_from_cplx_mode(self): """Testing data_from_cplx_mode.""" - carr = np.empty((2, 4), dtype=np.complex) + carr = np.empty((2, 4), dtype=complex) self.assert_equal(data_from_cplx_mode("all", carr), carr) self.assert_equal(data_from_cplx_mode("re", carr), carr.real) @@ -58,7 +58,7 @@ def test_data_from_cplx_mode(self): with self.assertRaises(ValueError): data_from_cplx_mode("angle", carr, tol=1.0) - rarr = np.ones((2, 4), dtype=np.float) + rarr = np.ones((2, 4), dtype=float) self.assert_equal(data_from_cplx_mode("re", rarr, tol=1.1), np.zeros_like(rarr)) def test_special_functions(self): diff --git a/abipy/tools/tests/test_plotting.py b/abipy/tools/tests/test_plotting.py index c457f743c..236cdd037 100644 --- a/abipy/tools/tests/test_plotting.py +++ b/abipy/tools/tests/test_plotting.py @@ -6,18 +6,27 @@ from abipy import abilab import abipy.data as abidata from abipy.tools.plotting import * +from abipy.tools.plotting import is_mpl_figure, is_plotly_figure, latex_greek_2unicode from abipy.core.testing import AbipyTest class TestPlotting(AbipyTest): """Test plotting module.""" + def test_tools(self): + """Testing plotting tools""" + assert latex_greek_2unicode("alpha") == "α" + assert latex_greek_2unicode("$lambda $") == "λ" + assert latex_greek_2unicode(r"$ \lambda $") == "λ" + def test_set_axlims(self): """Testing set_axlims.""" if not self.has_matplotlib(): raise self.SkipTest("This test requires matplotlib") ax, fig, plt = get_ax_fig_plt(ax=None) + assert is_mpl_figure(fig) + assert not is_plotly_figure(fig) left, right = set_axlims(ax, None, "x") assert left is None and right is None @@ -33,10 +42,10 @@ def test_set_axlims(self): def test_data_from_cplx_mode(self): """Testing plot_array.""" - carr = np.empty((2, 4), dtype=np.complex) + carr = np.empty((2, 4), dtype=complex) if self.has_matplotlib(): assert plot_array(carr, cplx_mode="abs", show=False) - cvec = np.empty(10, dtype=np.complex) + cvec = np.empty(10, dtype=complex) assert plot_array(cvec, cplx_mode="im", show=False) def test_plot_xy_with_hue(self): @@ -77,7 +86,7 @@ def test_array_plotter(self): """Testing array plotter.""" plotter = ArrayPlotter() assert len(plotter) == 0 - hello = np.ones((5, 2), dtype=np.complex) + hello = np.ones((5, 2), dtype=complex) plotter.add_array("hello", hello) assert "hello" in plotter.keys() with self.assertRaises(ValueError): @@ -93,11 +102,10 @@ def test_array_plotter(self): def test_marker(self): """Testing Marker.""" - marker = Marker() - assert not marker - assert not marker.x + x, y, s = [1, 2, 3], [4, 5, 6], [0.1, 0.2, -0.3] - marker.extend((x, y, s)) + marker = Marker(x, y, s) + assert marker self.assert_equal(marker.x, x) self.assert_equal(marker.y, y) @@ -108,13 +116,6 @@ def test_marker(self): assert all(s < 0 for s in neg_mark.s) assert len(neg_mark.s) == 1 and neg_mark.s[0] == -0.3 - with self.assertRaises(TypeError): - marker.extend((x, y)) - - with self.assertRaises(TypeError): - x.append(-1) - marker.extend((x, y, s)) - def test_plot_cell_tools(self): """Testing plot_unit_cell.""" lattice = abilab.Lattice.hexagonal(a=2, c=4) diff --git a/abipy/tools/tests/test_tensors.py b/abipy/tools/tests/test_tensors.py index edaceff3b..9a42a5282 100644 --- a/abipy/tools/tests/test_tensors.py +++ b/abipy/tools/tests/test_tensors.py @@ -16,7 +16,7 @@ def test_base(self): assert eps._repr_html_() assert len(eps.get_dataframe()) == 3 assert len(eps.get_voigt_dataframe().keys()) == 6 - self.assertArrayAlmostEqual(eps.reflectivity(), [0., 0.029437251522859434, 0.071796769724490825]) + self.assert_almost_equal(eps.reflectivity(), [0., 0.029437251522859434, 0.071796769724490825]) class NLOpticalSusceptibilityTensorTest(AbipyTest): diff --git a/abipy/tools/tests/test_texttools.py b/abipy/tools/tests/test_text.py similarity index 86% rename from abipy/tools/tests/test_texttools.py rename to abipy/tools/tests/test_text.py index d2498b5c4..aabc1fa75 100644 --- a/abipy/tools/tests/test_texttools.py +++ b/abipy/tools/tests/test_text.py @@ -28,3 +28,7 @@ def test_nums_and_text(self): numbers = [1.0, 1.0, 1.0] text = ' acell Bohr' self.assertEqual(nums_and_text(line), (numbers, text.replace(", u'", ", '"))) + + original_string = "hello world with multiple spaces" + cleaned_string = rm_multiple_spaces(original_string) + assert cleaned_string == "hello world with multiple spaces" diff --git a/abipy/tools/tests/tests_cli_parsers.py b/abipy/tools/tests/tests_cli_parsers.py new file mode 100644 index 000000000..7fe8d4d85 --- /dev/null +++ b/abipy/tools/tests/tests_cli_parsers.py @@ -0,0 +1,17 @@ +# coding: utf-8 +"""Tests for cli_parsers module.""" +import pytest + +from abipy.tools import cli_parsers as cli +from abipy.core.testing import AbipyTest + + +class TestCliParsers(AbipyTest): + + def test_range_from_str(self): + assert cli.range_from_str(None) == None + assert cli.range_from_str("3") == range(3) + assert cli.range_from_str("2:3") == range(2,3) + assert cli.range_from_str("2:3:2") == range(2,3,2) + with pytest.raises(ValueError): + cli.range_from_str("2:3:2:3") diff --git a/abipy/tools/text.py b/abipy/tools/text.py index 5d5bf9e58..3190063ce 100644 --- a/abipy/tools/text.py +++ b/abipy/tools/text.py @@ -1,8 +1,9 @@ # coding: utf-8 """Utilities for working with strings and text.""" +from __future__ import annotations -def tonumber(s): +def tonumber(s: str) -> float: """ Convert string to number, raise ValueError if s cannot be converted. """ @@ -19,7 +20,7 @@ def tonumber(s): raise RuntimeError("Don't know how to handle type %s: %s" % (type(s), str(s))) -def nums_and_text(line): +def nums_and_text(line: str) -> tuple: """ Split line into (numbers, text). """ @@ -51,3 +52,9 @@ def rreplace(s, old, new, occurrence): # https://stackoverflow.com/questions/2556108/rreplace-how-to-replace-the-last-occurrence-of-an-expression-in-a-string li = s.rsplit(old, occurrence) return new.join(li) + + +def rm_multiple_spaces(string: str) -> str: + """remove multiple spaces in a string.""" + import re + return re.sub(' +', ' ', string) diff --git a/abipy/tools/typing.py b/abipy/tools/typing.py new file mode 100644 index 000000000..199d6cd32 --- /dev/null +++ b/abipy/tools/typing.py @@ -0,0 +1,30 @@ +""" +This module defines convenience types for type hinting purposes. +It extends the types provided by pymatgen with Abipy-specific ones. +""" +from __future__ import annotations + +import numpy as np + +from typing import TYPE_CHECKING, Any, Union, Sequence +from pymatgen.util.typing import PathLike + + +if TYPE_CHECKING: # needed to avoid circular imports + from matplotlib.pyplot import Axes + from matplotlib.figure import Figure + from abipy.core.kpoints import Kpoint +else: + Axes = Any + Figure = Any + Kpoint = Any + +VectorLike = Union[Sequence[float], np.ndarray] + +# matplotlib objects +#AxList = list[Axes] + +# Abipy objects +KptLike = Union["Kpoint", VectorLike] +KptSelect = Union[int, "Kpoint", "VectorLike"] + diff --git a/abipy/wannier90/abiwan.py b/abipy/wannier90/abiwan.py index a25a9a652..e70ab1c95 100644 --- a/abipy/wannier90/abiwan.py +++ b/abipy/wannier90/abiwan.py @@ -3,27 +3,29 @@ Interface to the ABIWAN netcdf file produced by abinit when calling wannier90 in library mode. Inspired to the Fortran version of wannier90. """ +from __future__ import annotations + import numpy as np import pandas as pd import time -from collections import OrderedDict from tabulate import tabulate from monty.string import marquee from monty.functools import lazy_property from monty.termcolor import cprint +from abipy.core.structure import Structure from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter from abipy.core.kpoints import Kpath, IrredZone +from abipy.core.skw import ElectronInterpolator from abipy.abio.robots import Robot -from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt #, get_axarray_fig_plt +from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, set_grid_legend #, get_axarray_fig_plt +from abipy.tools.typing import Figure from abipy.electrons.ebands import ElectronBands, ElectronsReader, ElectronBandsPlotter, RobotWithEbands -from abipy.core.skw import ElectronInterpolator class AbiwanFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter): """ - File produced by Abinit with the unitary matrices obtained by - calling wannier90 in library mode. + File produced by Abinit with the unitary matrices obtained by calling wannier90 in library mode. Usage example: @@ -35,109 +37,105 @@ class AbiwanFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, Not .. rubric:: Inheritance Diagram .. inheritance-diagram:: AbiwanFile """ + @classmethod - def from_file(cls, filepath): - """Initialize the object from a netcdf_ file.""" + def from_file(cls, filepath: str) -> AbiwanFile: + """Initialize the object from a netcdf file.""" return cls(filepath) - def __init__(self, filepath): + def __init__(self, filepath: str): super().__init__(filepath) - self.reader = AbiwanReader(filepath) + self.reader = self.r = AbiwanReader(filepath) # Number of bands actually used to construct the Wannier functions - self.num_bands_spin = self.reader.read_value("num_bands") + self.num_bands_spin = self.r.read_value("num_bands") @lazy_property - def nwan_spin(self): + def nwan_spin(self) -> np.ndarray: """Number of Wannier functions for each spin.""" - return self.reader.read_value("nwan") + return self.r.read_value("nwan") @lazy_property - def mwan(self): + def mwan(self) -> int: """ Max number of Wannier functions over spins, i.e max(nwan_spin) Used to dimension arrays. """ - return self.reader.read_dimvalue("mwan") + return self.r.read_dimvalue("mwan") @lazy_property - def nntot(self): + def nntot(self) -> int: """Number of k-point neighbours.""" - return int(self.reader.read_value("nntot")) + return int(self.r.read_value("nntot")) @lazy_property - def bands_in(self): + def bands_in(self) -> np.ndarray: """ [nsppol, mband] logical array. Set to True if (spin, band) is included in the calculation. Set by exclude_bands """ - return self.reader.read_value("band_in_int").astype(np.bool) + return self.r.read_value("band_in_int").astype(bool) @lazy_property - def lwindow(self): + def lwindow(self) -> np.ndarray: """ [nsppol, nkpt, max_num_bands] array. Only if disentanglement. True if this band at this k-point lies within the outer window """ - return self.reader.read_value("lwindow_int").astype(np.bool) + return self.r.read_value("lwindow_int").astype(bool) #@lazy_property #def ndimwin(self): # """ # [nsppol, nkpt] array giving the number of bands inside the outer window for each k-point and spin. # """ - # return self.reader.read_value("ndimwin") + # return self.r.read_value("ndimwin") @lazy_property - def have_disentangled_spin(self): + def have_disentangled_spin(self) -> np.ndarray: """[nsppol] bool array. Whether disentanglement has been performed.""" - #return self.reader.read_value("have_disentangled_spin").astype(np.bool) + #return self.r.read_value("have_disentangled_spin").astype(bool) # TODO: Exclude bands return self.nwan_spin != self.num_bands_spin @lazy_property - def wann_centers(self): + def wann_centers(self) -> np.ndarray: """[nsppol, mwan, 3] array with Wannier centers in Ang.""" - return self.reader.read_value("wann_centres") + return self.r.read_value("wann_centres") @lazy_property - def wann_spreads(self): + def wann_spreads(self) -> np.ndarray: """[nsppol, mwan] array with spreads in Ang^2""" - return self.reader.read_value("wann_spreads") - - #@lazy_property - #def spread_spin(self): - # """[nsppol, 3] array with spread in Ang^2""" - # return self.reader.read_value("spread") + return self.r.read_value("wann_spreads") @lazy_property - def irvec(self): + def irvec(self) -> np.ndarray: """ [nrpts, 3] array with the lattice vectors in the Wigner-Seitz cell in the basis of the lattice vectors defining the unit cell """ - return self.reader.read_value("irvec") + return self.r.read_value("irvec") @lazy_property - def ndegen(self): + def ndegen(self) -> np.ndarray: """ [nrpts] array with the degeneracy of each point. It will be weighted using 1 / ndegen[ir] """ - return self.reader.read_value("ndegen") + return self.r.read_value("ndegen") @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() # TODO return od - def __str__(self): + def __str__(self) -> str: """String representation.""" return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose: int = 0) -> str: """String representation with verbosity level verbose.""" lines = []; app = lines.append @@ -185,28 +183,29 @@ def to_string(self, verbose=0): if verbose > 1: app("") app(self.hdr.to_string(verbose=verbose, title="Abinit Header")) - #app("irvec and ndegen") - #for r, n in zip(self.irvec, self.ndegen): - # app("%s %s" % (r, n)) + if verbose >= 2: + app("irvec and ndegen") + for r, n in zip(self.irvec, self.ndegen): + app("%s %s" % (r, n)) return "\n".join(lines) - def close(self): + def close(self) -> None: """Close file.""" - self.reader.close() + self.r.close() @lazy_property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object.""" - return self.reader.read_ebands() + return self.r.read_ebands() @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure @lazy_property - def hwan(self): + def hwan(self) -> HWanR: """ Construct the matrix elements of the KS Hamiltonian in real space """ @@ -224,18 +223,18 @@ def hwan(self): # Read unitary matrices from file. # Here be very careful with F --> C because we have to transpose. # complex U_matrix[nsppol, nkpt, mwan, mwan] - u_matrix = self.reader.read_value("U_matrix", cmode="c") + u_matrix = self.r.read_value("U_matrix", cmode="c") # complex U_matrix_opt[nsppol, mkpt, mwan, mband] if np.any(self.have_disentangled_spin): - u_matrix_opt = self.reader.read_value("U_matrix_opt", cmode="c") + u_matrix_opt = self.r.read_value("U_matrix_opt", cmode="c") for spin in range(self.nsppol): num_wan = self.nwan_spin[spin] # Real-space Hamiltonian H(R) is calculated by Fourier # transforming H(q) defined on the ab-initio reciprocal mesh - HH_q = np.zeros((num_kpts, num_wan, num_wan), dtype=np.complex) + HH_q = np.zeros((num_kpts, num_wan, num_wan), dtype=complex) for ik in range(num_kpts): eigs_k = self.ebands.eigens[spin, ik] @@ -264,7 +263,7 @@ def hwan(self): # Fourier transform Hamiltonian in the wannier-gauge representation. # O_ij(R) = (1/N_kpts) sum_q e^{-iqR} O_ij(q) - rmn = np.zeros((nrpts, num_wan, num_wan), dtype=np.complex) + rmn = np.zeros((nrpts, num_wan, num_wan), dtype=complex) j2pi = 2.0j * np.pi #for ir in range(nrpts): @@ -285,7 +284,8 @@ def hwan(self): print("HWanR built in %.3f (s)" % (time.time() - start)) return HWanR(self.structure, self.nwan_spin, spin_vmatrix, spin_rmn, self.irvec, self.ndegen) - def interpolate_ebands(self, vertices_names=None, line_density=20, ngkpt=None, shiftk=(0, 0, 0), kpoints=None): + def interpolate_ebands(self, vertices_names=None, line_density=20, + ngkpt=None, shiftk=(0, 0, 0), kpoints=None) -> ElectronBands: """ Build new |ElectronBands| object by interpolating the KS Hamiltonian with Wannier functions. Supports k-path via (vertices_names, line_density), IBZ mesh defined by ngkpt and shiftk @@ -303,8 +303,6 @@ def interpolate_ebands(self, vertices_names=None, line_density=20, ngkpt=None, s shiftk: Shifts for k-meshs. Used with ngkpt. kpoints: |KpointList| object taken e.g from a previous ElectronBands. Has precedence over vertices_names and line_density. - - Returns: |ElectronBands| object with Wannier-interpolated energies. """ # Need KpointList object. if kpoints is None: @@ -333,8 +331,8 @@ def interpolate_ebands(self, vertices_names=None, line_density=20, ngkpt=None, s # Here I use the last value to fill eigens matrix (not very clean but oh well). eigens[spin, ik, num_wan:self.mwan] = oeigs[-1] if write_warning: - cprint("Different number of wannier functions for spin. Filling last bands with oeigs[-1]", - "yellow") + cprint("Different number wannier functions for spin. Filling last bands with oeigs[-1]", + color="yellow") write_warning = False print("Interpolation completed in %.3f [s]" % (time.time() - start)) @@ -344,16 +342,56 @@ def interpolate_ebands(self, vertices_names=None, line_density=20, ngkpt=None, s occfacts, self.ebands.nelect, self.nspinor, self.nspden, smearing=self.ebands.smearing) - def get_plotter_from_ebands(self, ebands): - """ - Interpolate energies using the k-points given in input |ElectronBands| ebands. - - Return: |ElectronBandsPlotter| object. + @add_fig_kwargs + def plot_with_ebands(self, ebands_kpath, + ebands_kmesh=None, method="gaussian", step: float=0.05, width: float=0.1, **kwargs) -> Figure: """ - ebands = ElectronBands.as_ebands(ebands) - wan_ebands = self.interpolate_ebands(kpoints=ebands.kpoints) + Receive an ab-initio electronic strucuture, interpolate the energies on the same list of k-points + and compare the two band structures. - return ElectronBandsPlotter(key_ebands=[("Ab-initio", ebands), ("Interpolated", wan_ebands)]) + Args: + ebands_kpath: ab-initio band structure on a k-path (either ElectroBands object or object providing it). + ebands_kmesh: ab-initio band structure on a k-mesh (either ElectroBands object or object providing it). + If not None the ab-initio and the wannier-interpolated electron DOS are computed and plotted. + method: Integration scheme for DOS. + step: Energy step (eV) of the linear mesh for DOS computation. + width: Standard deviation (eV) of the gaussian for DOS computation. + """ + ebands_kpath = ElectronBands.as_ebands(ebands_kpath) + wan_ebands_kpath = self.interpolate_ebands(kpoints=ebands_kpath.kpoints) + + key_edos = None + if ebands_kmesh is not None: + # Compute ab-initio and interpolated e-DOS + ebands_kmesh = ElectronBands.as_ebands(ebands_kmesh) + if not ebands_kmesh.kpoints.is_ibz: + raise ValueError("ebands_kmesh should have k-points in the IBZ!") + ksampling = ebands_kmesh.kpoints.ksampling + ngkpt, shifts = ksampling.mpdivs, ksampling.shifts + if ngkpt is None: + raise ValueError("Non diagonal k-meshes are not supported!") + + wan_ebands_kmesh = self.interpolate_ebands(ngkpt=ngkpt, shiftk=shifts) + + edos_kws = dict(method=method, step=step, width=width) + edos = ebands_kmesh.get_edos(**edos_kws) + wan_edos = wan_ebands_kmesh.get_edos(**edos_kws) + key_edos = [("ab-initio", edos), ("interpolated", wan_edos)] + + key_ebands = [("ab-initio", ebands_kpath), ("interpolated", wan_ebands_kpath)] + plotter = ElectronBandsPlotter(key_ebands=key_ebands, key_edos=key_edos) + + linestyle_dict = { + "ab-initio": dict(color="red", marker="o"), + "interpolated": dict(color="blue", ls="-"), + } + # Add common style options. + common_opts = dict(markersize=2, lw=1) + + for d in linestyle_dict.values(): + d.update(**common_opts) + + return plotter.combiplot(linestyle_dict=linestyle_dict, **kwargs) def yield_figs(self, **kwargs): # pragma: no cover """ @@ -361,13 +399,8 @@ def yield_figs(self, **kwargs): # pragma: no cover """ yield self.interpolate_ebands().plot(show=False) yield self.hwan.plot(show=False) - if kwargs.get("verbose"): - linestyle_dict = {"Interpolated": dict(linewidth=0, color="red", marker="o")} - yield self.get_plotter_from_ebands(self.ebands).combiplot(linestyle_dict=linestyle_dict, show=False) - else: - cprint("Use verbose option to compare ab-initio points with interpolated values", "yellow") - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -380,7 +413,6 @@ def write_notebook(self, nbpath=None): nbv.new_code_cell("abiwan.ebands.plot();"), nbv.new_code_cell("abiwan.ebands.kpoints.plot();"), nbv.new_code_cell("abiwan.hwan.plot();"), - nbv.new_code_cell("#abiwan.get_plotter_from_ebands(;file_with_abinitio_ebands').combiplot();"), nbv.new_code_cell("ebands_kpath = abiwan.interpolate_ebands()"), nbv.new_code_cell("ebands_kpath.plot();"), nbv.new_code_cell("ebands_kmesh = abiwan.interpolate_ebands(ngkpt=[8, 8, 8])"), @@ -394,9 +426,7 @@ class HWanR(ElectronInterpolator): """ This object represents the KS Hamiltonian in the wannier-gauge representation. It provides low-level methods to interpolate the KS eigenvalues, and a high-level API - to interpolate bandstructures and plot the decay of the matrix elements in real space. - - # <0n|H|Rm> + to interpolate band structures and plot the decay of the matrix elements <0n|H|Rm> in real space. """ def __init__(self, structure, nwan_spin, spin_vmatrix, spin_rmn, irvec, ndegen): @@ -420,7 +450,7 @@ def __init__(self, structure, nwan_spin, spin_vmatrix, spin_rmn, irvec, ndegen): self.nband = nwan_spin[0] #self.nelect - def eval_sk(self, spin, kpt, der1=None, der2=None): + def eval_sk(self, spin, kpt, der1=None, der2=None) -> np.ndarray: """ Interpolate eigenvalues for all bands at a given (spin, k-point). Optionally compute gradients and Hessian matrices. @@ -439,16 +469,6 @@ def eval_sk(self, spin, kpt, der1=None, der2=None): # O_ij(k) = sum_R e^{+ik.R}*O_ij(R) j2pi = 2.0j * np.pi - """ - num_wan = self.nwan_spin[spin] - hk_ij = np.zeros((num_wan, num_wan), dtype=np.complex) - for ir in range(self.nrpts): - jrk = j2pi * np.dot(kpt, self.irvec[ir]) - hk_ij += self.spin_rmn[spin][ir] * (np.exp(jrk) / self.ndegen[ir]) - oeigs, _ = np.linalg.eigh(hk_ij) - """ - - # This is a bit faster. jrk = j2pi * np.dot(self.irvec, kpt) phases = np.exp(jrk) / self.ndegen hk_ij = (self.spin_rmn[spin] * phases[:, None, None]).sum(axis=0) @@ -456,23 +476,16 @@ def eval_sk(self, spin, kpt, der1=None, der2=None): return oeigs - # TODO - #def interpolate_omat(self, omat, kpoints): - #def interpolate_sigres(self, sigres): - #def interpolate_sigeph(self, sigeph): - @add_fig_kwargs - def plot(self, ax=None, fontsize=12, yscale="log", **kwargs): + def plot(self, ax=None, fontsize=8, yscale="log", **kwargs) -> Figure: """ Plot the matrix elements of the KS Hamiltonian in real space in the Wannier Gauge. Args: ax: |matplotlib-Axes| or None if a new figure should be created. fontsize: fontsize for legends and titles - yscale: Define scale for y-axis. Passed to ax.set_yscale + yscale: Define scale for y-axis. kwargs: options passed to ``ax.plot``. - - Return: |matplotlib-Figure| """ # Sort R-points by length and build sortmap. irs = [ir for ir in enumerate(self.structure.lattice.norm(self.irvec))] @@ -481,19 +494,16 @@ def plot(self, ax=None, fontsize=12, yscale="log", **kwargs): rvals = np.array([item[1] for item in items]) ax, fig, plt = get_ax_fig_plt(ax=ax) - ax.grid(True) - ax.set_xlabel(r"$|R|$ (Ang)") - ax.set_ylabel(r"$Max |H^W_{ij}(R)|$") marker_spin = {0: "^", 1: "v"} - needs_legend = False + with_legend = False for spin in range(self.nsppol): amax_r = [np.abs(self.spin_rmn[spin][ir]).max() for ir in range(self.nrpts)] amax_r = [amax_r[i] for i in sortmap] label = kwargs.get("label", None) if label is not None: label = "spin: %d" % spin if self.nsppol == 2 else None - if label: needs_legend = True + if label: with_legend = True ax.plot(rvals, amax_r, marker=marker_spin[spin], lw=kwargs.get("lw", 2), color=kwargs.get("color", "k"), @@ -503,8 +513,7 @@ def plot(self, ax=None, fontsize=12, yscale="log", **kwargs): ax.set_yscale(yscale) - if needs_legend: - ax.legend(loc="best", fontsize=fontsize, shadow=True) + set_grid_legend(ax, fontsize, xlabel=r"$|R|$ (Ang)", ylabel=r"$Max |H^W_{ij}(R)|$", legend=with_legend) return fig @@ -529,18 +538,16 @@ class AbiwanRobot(Robot, RobotWithEbands): """ EXT = "ABIWAN" - def get_dataframe(self, with_geo=True, abspath=False, funcs=None, **kwargs): + def get_dataframe(self, with_geo=True, abspath=False, funcs=None, **kwargs) -> pd.DataFrame: """ - Return a |pandas-DataFrame| with the most important Wannier90 results. - and the filenames as index. + Return a |pandas-DataFrame| with the most important Wannier90 results and the filenames as index. Args: - with_geo: True if structure info should be added to the dataframe + with_geo: True if structure info should be added to the dataframe. abspath: True if paths in index should be absolute. Default: Relative to getcwd(). kwargs: - attrs: - List of additional attributes of the |GsrFile| to add to the DataFrame. + attrs: List of additional attributes of the |GsrFile| to add to the DataFrame. funcs: Function or list of functions to execute to add more data to the DataFrame. Each function receives a |GsrFile| object and returns a tuple (key, value) where key is a string with the name of column and value is the value to be inserted. @@ -557,7 +564,7 @@ def get_dataframe(self, with_geo=True, abspath=False, funcs=None, **kwargs): rows, row_names = [], [] for label, abiwan in self.items(): row_names.append(label) - d = OrderedDict() + d = {} # Add info on structure. if with_geo: @@ -579,17 +586,14 @@ def get_dataframe(self, with_geo=True, abspath=False, funcs=None, **kwargs): return pd.DataFrame(rows, index=row_names, columns=list(rows[0].keys())) @add_fig_kwargs - def plot_hwanr(self, ax=None, colormap="jet", fontsize=8, **kwargs): + def plot_hwanr(self, ax=None, colormap="jet", fontsize=8, **kwargs) -> Figure: """ - Plot the matrix elements of the KS Hamiltonian in real space in the Wannier Gauge. - on the same Axes. + Plot the matrix elements of the KS Hamiltonian in real space in the Wannier Gauge on the same Axes. Args: ax: |matplotlib-Axes| or None if a new figure should be created. colormap: matplotlib color map. fontsize: fontsize for legends and titles - - Return: |matplotlib-Figure| """ ax, fig, plt = get_ax_fig_plt(ax=ax) cmap = plt.get_cmap(colormap) @@ -599,7 +603,7 @@ def plot_hwanr(self, ax=None, colormap="jet", fontsize=8, **kwargs): return fig def get_interpolated_ebands_plotter(self, vertices_names=None, knames=None, line_density=20, - ngkpt=None, shiftk=(0, 0, 0), kpoints=None, **kwargs): + ngkpt=None, shiftk=(0, 0, 0), kpoints=None, **kwargs) -> ElectronBandsPlotter: """ Args: vertices_names: Used to specify the k-path for the interpolated QP band structure @@ -614,13 +618,11 @@ def get_interpolated_ebands_plotter(self, vertices_names=None, knames=None, line shiftk: Shifts for k-meshs. Used with ngkpt. kpoints: |KpointList| object taken e.g from a previous ElectronBands. Has precedence over vertices_names and line_density. - - Return: |ElectronBandsPlotter| object. """ diff_str = self.has_different_structures() - if diff_str: cprint(diff_str, "yellow") + if diff_str: cprint(diff_str, color="yellow") - # Need KpointList object (assume same structures in Robot) + # Need KpointList object (assuming same structures in the Robot) nc0 = self.abifiles[0] if kpoints is None: if ngkpt is not None: @@ -651,7 +653,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield p.gridplot(show=False) yield self.plot_hwanr(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -660,7 +662,6 @@ def write_notebook(self, nbpath=None): args = [(l, f.filepath) for l, f in self.items()] nb.cells.extend([ - #nbv.new_markdown_cell("# This is a markdown cell"), nbv.new_code_cell("robot = abilab.AbiwanRobot(*%s)\nrobot.trim_paths()\nrobot" % str(args)), nbv.new_code_cell("robot.get_dataframe()"), nbv.new_code_cell("robot.plot_hwanr();"), @@ -670,6 +671,6 @@ def write_notebook(self, nbpath=None): # Mixins #nb.cells.extend(self.get_baserobot_code_cells()) - #nb.cells.extend(self.get_ebands_code_cells()) + #nb.cells.extend(self.get_ebands_code_cells())wannier90.wout return self._write_nb_nbpath(nb, nbpath) diff --git a/abipy/wannier90/tests/test_abiwan.py b/abipy/wannier90/tests/test_abiwan.py index b2c3db406..d7a72fe1c 100644 --- a/abipy/wannier90/tests/test_abiwan.py +++ b/abipy/wannier90/tests/test_abiwan.py @@ -42,11 +42,10 @@ def test_abiwan_without_dis(self): ebands_wan = abiwan.interpolate_ebands(line_density=5) assert ebands_wan.kpoints.is_path - plotter = abiwan.get_plotter_from_ebands(ebands_wan) if self.has_matplotlib(): assert abiwan.hwan.plot(show=False) - assert plotter.combiplot(show=False) + assert abiwan.plot_with_ebands(ebands_wan, show=False) #assert abiwan.plot_centers_spread(show=False) if self.has_nbformat(): @@ -85,11 +84,10 @@ def test_abiwan_with_dis(self): self.assert_almost_equal(ews[:n], in_eigens[spin, ik, :n]) ebands_wan = abiwan.interpolate_ebands(line_density=3) - plotter = abiwan.get_plotter_from_ebands(ebands_wan) if self.has_matplotlib(): assert abiwan.hwan.plot(show=False) - assert plotter.combiplot(show=False) + assert abiwan.plot_with_ebands(ebands_wan, show=False) if self.has_nbformat(): assert abiwan.write_notebook(nbpath=self.get_tmpname(text=True)) diff --git a/abipy/wannier90/win.py b/abipy/wannier90/win.py index c77278472..110f68d4e 100644 --- a/abipy/wannier90/win.py +++ b/abipy/wannier90/win.py @@ -1,14 +1,20 @@ # coding: utf-8 """Interface to the win input file used by Wannier90.""" +from __future__ import annotations + import numpy as np from collections import OrderedDict from abipy.core.mixins import Has_Structure +from abipy.core.structure import Structure from abipy.abio.variable import InputVariable from abipy.abio.inputs import AbstractInput +#from abipy.tools.typing import Figure + +import abipy.core.abinit_units as abu -def structure2wannier90(structure): +def structure2wannier90(structure, units="Bohr") -> str: """ Return string with stucture in wannier90 format. """ @@ -23,8 +29,17 @@ def structure2wannier90(structure): # Write lattice vectors. # Set small values to zero. This usually happens when the CIF file # does not give structure parameters with enough digits. - app("begin unit_cell_cart\nAng") + if units == "Bohr": + fact = abu.Ang_Bohr + app("begin unit_cell_cart\nBohr") + elif units == "Ang": + fact = 1.0 + app("begin unit_cell_cart\nAng") + else: + raise ValueError(f"Invalid {units =}") + for r in np.where(np.abs(structure.lattice.matrix) > 1e-8, structure.lattice.matrix, 0.0): + r = r * fact app(" %.10f %.10f %.10f" % (r[0], r[1], r[2])) app("end unit_cell_cart\n") app("begin atoms_frac") @@ -44,7 +59,7 @@ class Wannier90Input(AbstractInput, Has_Structure): .. inheritance-diagram:: Wannier90Input """ @classmethod - def from_abinit_file(cls, filepath): + def from_abinit_file(cls, filepath: str) -> Wannier90Input: """ Build wannier90 template input file from Abinit input/output file. Possibly with electron bands. @@ -108,23 +123,23 @@ def __init__(self, structure, comment="", win_args=None, win_kwargs=None, spell_ self._vars = OrderedDict(args) @property - def vars(self): + def vars(self) ->dict: return self._vars # This stufff should be moved to the ABC - def set_spell_check(self, false_or_true): + def set_spell_check(self, false_or_true) -> None: """Activate/Deactivate spell-checking""" self._spell_check = bool(false_or_true) @property - def spell_check(self): + def spell_check(self) -> bool: """True if spell checking is activated.""" try: return self._spell_check except AttributeError: # This is to maintain compatibility with pickle return False - def _check_varname(self, key): + def _check_varname(self, key: str): return # TODO #if not is_wannier90_var(key) and self.spell_check: @@ -133,11 +148,11 @@ def _check_varname(self, key): # "or use input.set_spell_check(False)\n" % key) @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure - def to_string(self, sortmode=None, mode="text", verbose=0): + def to_string(self, sortmode=None, mode="text", verbose=0) -> str: """ String representation. diff --git a/abipy/wannier90/wout.py b/abipy/wannier90/wout.py index e2c23b257..7d4b8d723 100644 --- a/abipy/wannier90/wout.py +++ b/abipy/wannier90/wout.py @@ -1,5 +1,7 @@ # coding: utf-8 """Interface to the wout output file produced by Wannier90.""" +from __future__ import annotations + import numpy as np import pandas as pd @@ -8,6 +10,7 @@ from abipy.core.mixins import BaseFile, Has_Structure, NotebookWriter from abipy.core.structure import Structure from abipy.tools.plotting import add_fig_kwargs, get_axarray_fig_plt +from abipy.tools.typing import Figure class WoutFile(BaseFile, Has_Structure, NotebookWriter): @@ -40,13 +43,13 @@ def __init__(self, filepath): except Exception as exc: print("Exception in _parse_iterations:\n", exc) - def close(self): + def close(self) -> None: """Close file. Required by abc protocol.""" - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append @@ -94,11 +97,11 @@ def to_string(self, verbose=0): return "\n".join(lines) @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self._structure - def _parse_dims(self): + def _parse_dims(self) -> None: """ Parse basic dimensions and get structure from the header of the file. """ @@ -182,7 +185,7 @@ def _parse_dims(self): if self.params_section["DISENTANGLE"].get("Using band disentanglement", "F") == "T": self.use_disentangle = True - def _parse_iterations(self): + def _parse_iterations(self) -> int: """ Parse iteration steps if not already done and store results in self. @@ -280,7 +283,7 @@ def _parse_iterations(self): return 0 @add_fig_kwargs - def plot(self, fontsize=12, **kwargs): + def plot(self, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the Wannierise cycle. @@ -322,7 +325,7 @@ def plot(self, fontsize=12, **kwargs): from mpl_toolkits.axes_grid1.inset_locator import inset_axes ax2 = inset_axes(ax, width="60%", height="40%", loc="upper right") ax2.grid(True) - ax2.set_title("delta_frac", fontsize=8) + ax2.set_title("delta_frac", fontsize=fontsize) ax2.plot(self.dis_df.iter[s:], self.dis_df["delta_frac"][s:], marker=marker) else: @@ -331,10 +334,10 @@ def plot(self, fontsize=12, **kwargs): return fig @add_fig_kwargs - def plot_centers_spread(self, fontsize=8, **kwargs): + def plot_centers_spread(self, fontsize=8, **kwargs) -> Figure: """ Plot the convergence of the Wannier centers and spread - as function of iteration number + as a function of the iteration number Args: fontsize: legend and label fontsize. @@ -388,7 +391,7 @@ def yield_figs(self, **kwargs): # pragma: no cover yield self.plot(show=False) yield self.plot_centers_spread(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write a jupyter_ notebook to ``nbpath``. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. diff --git a/abipy/waves/pwwave.py b/abipy/waves/pwwave.py index bd8e95695..44442ff96 100644 --- a/abipy/waves/pwwave.py +++ b/abipy/waves/pwwave.py @@ -1,14 +1,17 @@ # coding: utf-8 """This module contains the class describing a planewave wavefunction.""" +from __future__ import annotations #import copy import numpy as np from monty.termcolor import cprint from abipy.core import Mesh3D -#from abipy.core.kpoints import Kpoint +from abipy.core.structure import Structure +from abipy.core.kpoints import Kpoint from abipy.iotools import Visualizer from abipy.iotools.xsf import xsf_write_structure, xsf_write_data from abipy.tools.plotting import add_fig_kwargs, get_ax_fig_plt, get_axarray_fig_plt +from abipy.tools.typing import Figure __all__ = [ @@ -16,17 +19,17 @@ ] -def latex_label_ispinor(ispinor, nspinor): +def latex_label_ispinor(ispinor: int, nspinor: int) -> str: if nspinor == 1: return "" elif nspinor == 2: return {k: v.replace("myuparrow", "uparrow") for k, v in - {0: r"$\sigma=\myuparrow$", 1: r"$\sigma=\downarrow$"}.items()}[ispinor] + {0: r"$\sigma=\myuparrow$", 1: r"$\sigma=\downarrow$"}.items()}[ispinor] else: raise ValueError("Wrong value for nspinor: %s" % nspinor) -class WaveFunction(object): +class WaveFunction: """ Abstract class defining base and abstract methods for wavefunction objects. """ @@ -52,7 +55,7 @@ def __str__(self): return self.to_string() @property - def shape(self): + def shape(self) -> tuple[int, int]: """Shape of ug i.e. (nspinor, npw)""" return self.nspinor, self.npw @@ -72,22 +75,22 @@ def gvecs(self): return self.gsphere.gvecs @property - def npw(self): + def npw(self) -> int: """Number of G-vectors.""" return len(self.gsphere) @property - def ecut(self): + def ecut(self) -> float: """Cutoff energy in Hartree.""" return self.gsphere.ecut @property - def isnc(self): + def isnc(self) -> bool: """True if norm-conserving wavefunction.""" return isinstance(self, PWWaveFunction) @property - def ispaw(self): + def ispaw(self) -> bool: """True if PAW wavefunction.""" return isinstance(self, PAW_WaveFunction) @@ -112,7 +115,7 @@ def ur(self): self._ur = self.fft_ug() return self._ur - def delete_ur(self): + def delete_ur(self) -> None: """Delete _u(r) (if it has been computed).""" try: del self._ur @@ -138,7 +141,7 @@ def mesh(self): """The mesh used for the FFT.""" return self._mesh - def set_mesh(self, mesh): + def set_mesh(self, mesh) -> None: """Change the FFT mesh. `u(r)` will be computed on this box.""" assert isinstance(mesh, Mesh3D) self._mesh = mesh @@ -186,7 +189,7 @@ def fft_ug(self, mesh=None): ug_mesh = self.get_ug_mesh(mesh=mesh) return mesh.fft_g2r(ug_mesh, fg_ishifted=False) - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """String representation.""" lines = []; app = lines.append app("%s: nspinor: %d, spin: %d, band: %d " % ( @@ -217,7 +220,7 @@ class PWWaveFunction(WaveFunction): .. rubric:: Inheritance Diagram .. inheritance-diagram:: PWWaveFunction """ - def __init__(self, structure, nspinor, spin, band, gsphere, ug): + def __init__(self, structure: Structure, nspinor, spin, band, gsphere, ug): """ Creation method. @@ -244,7 +247,7 @@ def __init__(self, structure, nspinor, spin, band, gsphere, ug): # tug = -0.5 * self.gsphere.kpg2 * self.ug # return np.vdot(self.ug, tug).sum() - def norm2(self, space="g"): + def norm2(self, space="g") -> float: r""" Return :math:`||\psi||^2` computed in G- or r-space. @@ -263,7 +266,7 @@ def norm2(self, space="g"): else: raise ValueError("Wrong space: %s" % str(space)) - def braket(self, other, space="g"): + def braket(self, other, space="g") -> complex: """ Returns the scalar product of the periodic part of two wavefunctions computed in G-space or r-space, depending on the value of space. @@ -374,7 +377,7 @@ def get_interpolator(self): @add_fig_kwargs def plot_line(self, point1, point2, num=200, with_krphase=False, cartesian=False, - ax=None, fontsize=12, **kwargs): + ax=None, fontsize=12, **kwargs) -> Figure: """ Plot (interpolated) wavefunction in real space along a line defined by ``point1`` and ``point2``. @@ -414,7 +417,8 @@ def plot_line(self, point1, point2, num=200, with_krphase=False, cartesian=False return fig @add_fig_kwargs - def plot_line_neighbors(self, site_index, radius, num=200, with_krphase=False, max_nn=10, fontsize=12, **kwargs): + def plot_line_neighbors(self, site_index, radius, num=200, with_krphase=False, + max_nn=10, fontsize=12, **kwargs) -> Figure: """ Plot (interpolated) density/potential in real space along the lines connecting an atom specified by ``site_index`` and all neighbors within a sphere of given ``radius``. @@ -459,7 +463,10 @@ def plot_line_neighbors(self, site_index, radius, num=200, with_krphase=False, m # For each neighbor, plot psi along the line connecting site to nn. for i, (nn, ax) in enumerate(zip(nn_list, ax_list)): - nn_site, nn_dist, nn_sc_index = nn + #nn_site, nn_dist, nn_sc_index = nn + nn_site = nn + nn_dist = nn.nn_distance + nn_sc_index = nn.index title = "%s, %s, dist=%.3f A" % (nn_site.species_string, str(nn_site.frac_coords), nn_dist) r = interpolator.eval_line(site.frac_coords, nn_site.frac_coords, num=num, kpoint=kpoint) diff --git a/abipy/waves/tests/test_pwwave.py b/abipy/waves/tests/test_pwwave.py index 06c7a1aee..bb2b65c70 100644 --- a/abipy/waves/tests/test_pwwave.py +++ b/abipy/waves/tests/test_pwwave.py @@ -28,7 +28,7 @@ def test_fft(self): mesh = Mesh3D((12, 3, 5), vectors) extra_dims = [(), 1, (2,), (3,4)] - types = [np.float, np.complex] + types = [float, complex] for exdim in extra_dims: for typ in types: diff --git a/abipy/waves/wfkfile.py b/abipy/waves/wfkfile.py index 404a7c1ac..f3b567f4e 100644 --- a/abipy/waves/wfkfile.py +++ b/abipy/waves/wfkfile.py @@ -1,13 +1,16 @@ # coding: utf-8 """Wavefunction file.""" -#import numpy as np +from __future__ import annotations + +import numpy as np from monty.functools import lazy_property from monty.string import marquee from abipy.core import Mesh3D, GSphere +from abipy.core.structure import Structure from abipy.core.mixins import AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, NotebookWriter from abipy.iotools import Visualizer -from abipy.electrons.ebands import ElectronsReader +from abipy.electrons.ebands import ElectronsReader, ElectronBands from abipy.waves.pwwave import PWWaveFunction from abipy.tools import duck @@ -42,68 +45,65 @@ class WfkFile(AbinitNcFile, Has_Header, Has_Structure, Has_ElectronBands, Notebo .. rubric:: Inheritance Diagram .. inheritance-diagram:: WfkFile """ - def __init__(self, filepath): + def __init__(self, filepath: str): """ Initialize the object from a Netcdf file. """ super().__init__(filepath) - self.reader = reader = WFK_Reader(filepath) - assert reader.has_pwbasis_set + self.reader = self.r = r = WFK_Reader(filepath) + assert r.has_pwbasis_set # Read the electron bands - self._ebands = reader.read_ebands() + self._ebands = r.read_ebands() - self.npwarr = reader.npwarr - self.nband_sk = reader.nband_sk + self.npwarr = r.npwarr + self.nband_sk = r.nband_sk # FFT mesh (augmented divisions reported in the WFK file) - self.fft_mesh = Mesh3D(reader.fft_divs, self.structure.lattice_vectors()) + self.fft_mesh = Mesh3D(r.fft_divs, self.structure.lattice.matrix) # Build G-spheres for each k-point gspheres = len(self.kpoints) * [None] - ecut = reader.ecut + ecut = r.ecut for k, kpoint in enumerate(self.kpoints): - gvec_k, istwfk = reader.read_gvecs_istwfk(k) + gvec_k, istwfk = r.read_gvecs_istwfk(k) gspheres[k] = GSphere(ecut, self.structure.reciprocal_lattice, kpoint, gvec_k, istwfk=istwfk) self._gspheres = tuple(gspheres) - # Save reference to the reader. - self.reader = reader - - def close(self): - self.reader.close() + def close(self) -> None: + self.r.close() @lazy_property - def params(self): - """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" + def params(self) -> dict: + """dict with parameters that might be subject to convergence studies.""" od = self.get_ebands_params() return od @property - def structure(self): + def structure(self) -> Structure: """|Structure| object.""" return self.ebands.structure @property - def ebands(self): + def ebands(self) -> ElectronBands: """|ElectronBands| object""" return self._ebands @property - def nkpt(self): + def nkpt(self) -> int: """Number of k-points.""" return len(self.kpoints) @property - def gspheres(self): + def gspheres(self) -> list: """List of :class:`GSphere` objects ordered by k-points.""" return self._gspheres - def __str__(self): + def __str__(self) -> str: return self.to_string() - def to_string(self, verbose=0): + def to_string(self, verbose=0) -> str: """ String representation @@ -124,11 +124,11 @@ def to_string(self, verbose=0): return "\n".join(lines) - def kindex(self, kpoint): + def kindex(self, kpoint) -> int: """The index of the k-point in the file. Accepts :class:`Kpoint` object or int.""" - return self.reader.kindex(kpoint) + return self.r.kindex(kpoint) - def get_wave(self, spin, kpoint, band): + def get_wave(self, spin, kpoint, band) -> PWWaveFunction: """ Read and return the wavefunction with the given spin, band and kpoint. @@ -146,7 +146,7 @@ def get_wave(self, spin, kpoint, band): band not in range(self.nband_sk[spin, ik])): raise ValueError("Wrong (spin, band, kpt) indices") - ug_skb = self.reader.read_ug(spin, kpoint, band) + ug_skb = self.r.read_ug(spin, kpoint, band) # Istantiate the wavefunction object and set the FFT mesh # using the divisions reported in the WFK file. @@ -159,7 +159,7 @@ def export_ur2(self, filepath, spin, kpoint, band, visu=None): """ Export :math:`|u(r)|^2` on file filename. - returns: + return: Instance of :class:`Visualizer` """ # Read the wavefunction from file. @@ -188,6 +188,20 @@ def visualize_ur2(self, spin, kpoint, band, appname="vesta"): else: raise visu.Error("Don't know how to export data for visualizer %s" % appname) + def get_h1mat(self): + pertcase = self.r.read_value("pertcase") + #idir = mod(pertcase-1, 3) + 1 + #ipert = (pertcase - idir) / 3 + 1 + + # Read h1 matrix elements + # Have to transpose the (nb_kq, nb_k) submatrix written by Fortran. + #nctkarr_t("h1_matrix_elements", "dp", "two, max_number_of_states, max_number_of_states, number_of_kpoints, number_of_spins") + h1mat = self.r.read_value("h1_matrix_elements", cmode="c").transpose(0, 1, 3, 2).copy() + qpt = self.r.read_value("qptn") + #pertcase = idir + (ipert-1)*3 where ipert=iatom in the interesting cases + + return h1mat, qpt + #def classify_states(self, spin, kpoint, band_range=None, energy_range=None, atol=1e-3): # """ # Classify electronic eigenstates @@ -236,7 +250,7 @@ def visualize_ur2(self, spin, kpoint, band, appname="vesta"): # op_waves = waves # # Compute - # cmat = np.empty((nb, nb), dtype=np.complex) + # cmat = np.empty((nb, nb), dtype=complex) # for i in range(nb): # #print("int", waves[i].norm2()) # for j in range(nb): @@ -281,7 +295,7 @@ def yield_figs(self, **kwargs): # pragma: no cover """ yield self.ebands.plot(show=False) - def write_notebook(self, nbpath=None): + def write_notebook(self, nbpath=None) -> str: """ Write an ipython notebook to nbpath. If nbpath is None, a temporay file in the current working directory is created. Return path to the notebook. @@ -310,7 +324,7 @@ class WFK_Reader(ElectronsReader): .. inheritance-diagram:: Wfk_Reader """ - def __init__(self, filepath): + def __init__(self, filepath: str): """Initialize the object from a filename.""" super().__init__(filepath) @@ -335,22 +349,22 @@ def __init__(self, filepath): self._kg = self.read_value("reduced_coordinates_of_plane_waves") @lazy_property - def basis_set(self): + def basis_set(self) -> str: """String defining the basis set.""" basis_set = self.read_value("basis_set") return "".join(str(basis_set, encoding='UTF-8')).strip() @property - def has_pwbasis_set(self): + def has_pwbasis_set(self) -> bool: """True if the plane-wave basis set is used.""" return self.basis_set == "plane_waves" @property - def fft_divs(self): + def fft_divs(self) -> tuple: """FFT divisions used to compute the data in the WFK file.""" return self.nfft1, self.nfft2, self.nfft3 - def kindex(self, kpoint): + def kindex(self, kpoint) -> int: """ Index of the k-point in the internal tables. @@ -361,7 +375,7 @@ def kindex(self, kpoint): else: return self.kpoints.index(kpoint) - def read_gvecs_istwfk(self, kpoint): + def read_gvecs_istwfk(self, kpoint) -> tuple: """ Read the set of G-vectors and the value of istwfk for the given k-point. Accepts :class:`Kpoint` object or integer. @@ -381,3 +395,38 @@ def read_ug(self, spin, kpoint, band): var = self.rootgrp.variables["coefficients_of_wavefunctions"] value = var[spin, ik, band, :, :npw_k, :] return value[..., 0] + 1j*value[..., 1] # Build complex array + + + +def get_h1mat_same_qpt(prefix: str): + """ + """ + pertcase = 1 + with WfkFile(f"{prefix}{pertcase}.nc") as wfk: + structure = wfk.structure + natom = len(wfk.structure) + natom3 = 3 * natom + nband = wfk.r.read_dimvalue("max_number_of_states") + nkpt = wfk.r.read_dimvalue("number_of_kpoints") + nsppol = wfk.r.read_dimvalue("number_of_spins") + ref_qpt = wfk.r.read_value("qptn") + + g_mnks = np.empty((nsppol, nkpt, natom3, nband, nband), dtype=complex) + + print("pertcase, g2") + for ipc, pertcase in enumerate(range(1, 3*natom + 1)): + with WfkFile(f"{prefix}{pertcase}.nc") as wfk: + assert structure == wfk.structure + assert nband == wfk.r.read_dimvalue("max_number_of_states") + assert nkpt == wfk.r.read_dimvalue("number_of_kpoints") + assert nsppol == wfk.r.read_dimvalue("number_of_spins") + + h1mat, qpt = wfk.get_h1mat() + assert np.allclose(qpt, ref_qpt) + #g_mnks[:,:,ipc,:,:] = h1mat + band = 4 + g = h1mat[0, 0, band, band] + g2 = np.abs(g)**2 + print(pertcase, f"{g2:.6e}") + + return g_mnks, qpt diff --git a/binder/environment.yml b/binder/environment.yml index e15288789..0e656e0a5 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -1,111 +1,253 @@ -#name: binder3.6 +##name: env3.8 channels: -- gmatteo -- abinit -- matsci -- conda-forge -- defaults + - conda-forge + - defaults dependencies: -- apscheduler=2.1.0=py36_0 -- html2text=2016.9.19=py36_0 -- asn1crypto=0.22.0=py36_0 -- backports=1.0=py36_1 -- backports.functools_lru_cache=1.4=py36_1 -- blas=1.1=openblas -- ca-certificates=2017.11.5=0 -- certifi=2017.11.5=py36_0 -- cffi=1.11.2=py36_0 -- chardet=3.0.4=py36_0 -- cryptography=2.1.4=py36_0 -- curl=7.55.1=0 -- cycler=0.10.0=py36_0 -- dbus=1.10.22=0 -- decorator=4.1.2=py36_0 -- expat=2.2.5=0 -- fastcache=1.0.2=py36_0 -- fontconfig=2.12.6=0 -- freetype=2.8.1=0 -- gettext=0.19.7=1 -- glib=2.55.0=0 -- gmp=6.1.2=0 -- gmpy2=2.0.8=py36_1 -- gst-plugins-base=1.8.0=0 -- gstreamer=1.8.0=1 -- hdf4=4.2.13=0 -- hdf5=1.10.1=1 -- icu=58.2=0 -- idna=2.6=py36_1 -- jpeg=9b=2 -- krb5=1.14.2=0 -- libffi=3.2.1=3 -- libiconv=1.15=0 -- libnetcdf=4.4.1.1=10 -- libpng=1.6.34=0 -- libssh2=1.8.0=2 -- libxcb=1.12=1 -- libxml2=2.9.5=2 -- matplotlib=2.1.1=py36_2 -- mpc=1.0.3=4 -- mpfr=3.1.5=0 -- mpich=3.2=5 -- mpmath=1.0.0=py_0 -- ncurses=5.9=10 -- netcdf-fortran=4.4.4=6 -- netcdf4=1.3.1=py36_1 -- networkx=2.0=py36_1 -- numpy=1.13.3=py36_blas_openblas_201 -- openblas=0.2.20=6 -- openssl=1.0.2n=0 -- pandas=0.22.0=py36_0 -- patsy=0.4.1=py36_0 -- pcre=8.39=0 -- pip=9.0.1=py36_1 -- prettytable=0.7.2=py36_1 -- pycparser=2.18=py36_0 -- pyopenssl=17.4.0=py36_0 -- pyparsing=2.2.0=py36_0 -- pyqt=5.6.0=py36_4 -- pysocks=1.6.7=py36_0 -- python=3.6.4=0 -- python-dateutil=2.6.1=py36_0 -- pytz=2017.3=py_2 -- pyyaml=3.12=py36_1 -- qt=5.6.2=7 -- readline=7.0=0 -- requests=2.18.4=py36_1 -- scipy=1.0.0=py36_blas_openblas_201 -- seaborn=0.8.1=py36_0 -- setuptools=38.2.4=py36_0 -- sip=4.18=py36_1 -- six=1.11.0=py36_1 -- sqlite=3.20.1=2 -- statsmodels=0.8.0=py36_0 -- sympy=1.1.1=py36_0 -- tk=8.6.7=0 -- tornado=4.5.2=py36_0 -- urllib3=1.22=py36_0 -- wheel=0.30.0=py_1 -- xorg-libxau=1.0.8=3 -- xorg-libxdmcp=1.1.2=3 -- xz=5.2.3=0 -- yaml=0.1.6=0 -- zlib=1.2.11=0 -- libgcc=7.2.0=h69d50b8_2 -- libgcc-ng=7.2.0=h7cc24e2_2 -- libgfortran=3.0.0=1 -- libstdcxx-ng=7.2.0=h7a57d05_2 -- abinit=8.6.1=1 -- fftw=3.3.6=0 -- libxc=2.2.2=0 -- monty=1.0.2=py36h8689505_2 -- palettable=2.1.1=py36h1b737fa_2 -- pydispatcher=2.0.5=py36h30c4b39_1 -- pymatgen=2017.12.16=py36_0 -- ruamel.yaml=0.15.25=py36_0 -- spglib=1.9.9.44=py36_0 -- tabulate=0.7.7=py36h0a86d05_2 -- tqdm=4.10.0=py36_1 -- pip: - - backports.functools-lru-cache==1.4 -#prefix: /home/ucl/naps/gmatteo/miniconda3/envs/binder3.6 - + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=1_gnu + - abinit=9.4.0=h321dead_0 + - apipkg=1.5=py_0 + - appdirs=1.4.4=pyh9f0ad1d_0 + - apscheduler=3.7.0=py38h578d9bd_0 + - argon2-cffi=20.1.0=py38h497a2fe_2 + - ase=3.21.1=pyhd8ed1ab_0 + - async_generator=1.10=py_0 + - attrs=21.1.0=pyhd8ed1ab_0 + - backcall=0.2.0=pyh9f0ad1d_0 + - backports=1.0=py_2 + - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 + - bleach=3.3.0=pyh44b312d_0 + - bokeh=2.3.1=py38h578d9bd_0 + - brotlipy=0.7.0=py38h497a2fe_1001 + - bzip2=1.0.8=h7f98852_4 + - c-ares=1.17.1=h7f98852_1 + - ca-certificates=2020.12.5=ha878542_0 + - cached-property=1.5.2=hd8ed1ab_1 + - cached_property=1.5.2=pyha770c72_1 + - certifi=2020.12.5=py38h578d9bd_1 + - cffi=1.14.5=py38ha65f79e_0 + - cftime=1.4.1=py38h5c078b8_0 + - chardet=4.0.0=py38h578d9bd_1 + - chart-studio=1.1.0=pyh9f0ad1d_0 + - click=7.1.2=pyh9f0ad1d_0 + - cloudpickle=1.6.0=py_0 + - coverage=5.5=py38h497a2fe_0 + - cryptography=3.4.7=py38ha5dfef3_0 + - curl=7.76.1=h979ede3_1 + - cycler=0.10.0=py_2 + - cytoolz=0.11.0=py38h497a2fe_3 + - dask-core=2021.4.1=pyhd8ed1ab_0 + - dbus=1.13.18=hb2f20db_0 + - decorator=4.4.2=py_0 + - defusedxml=0.7.1=pyhd8ed1ab_0 + - entrypoints=0.3=pyhd8ed1ab_1003 + - enum34=1.1.10=py38h32f6830_2 + - execnet=1.8.0=pyh44b312d_0 + - expat=2.3.0=h9c3ff4c_0 + - fftw=3.3.9=mpi_mpich_h245ceca_1 + - flask=1.1.2=pyh9f0ad1d_0 + - fontconfig=2.13.1=hba837de_1005 + - freetype=2.10.4=h0708190_1 + - fsspec=2021.4.0=pyhd8ed1ab_0 + - future=0.18.2=py38h578d9bd_3 + - gettext=0.19.8.1=h0b5b191_1005 + - glib=2.68.1=h9c3ff4c_0 + - glib-tools=2.68.1=h9c3ff4c_0 + - gmp=6.2.1=h58526e2_0 + - gmpy2=2.1.0b1=py38hd744826_1 + - gst-plugins-base=1.14.0=hbbd80ab_1 + - gstreamer=1.14.0=h28cd5cc_2 + - h5py=3.2.1=nompi_py38h9915d05_100 + - hdf4=4.2.13=h10796ff_1005 + - hdf5=1.10.6=mpi_mpich_h996c276_1014 + - icu=58.2=hf484d3e_1000 + - idna=2.10=pyh9f0ad1d_0 + - imagecodecs-lite=2019.12.3=py38h5c078b8_3 + - imageio=2.9.0=py_0 + - importlib-metadata=4.0.1=py38h578d9bd_0 + - iniconfig=1.1.1=pyh9f0ad1d_0 + - ipykernel=5.5.4=py38hd0cf306_0 + - ipython=7.23.1=py38hd0cf306_0 + - ipython_genutils=0.2.0=py_1 + - ipywidgets=7.6.3=pyhd3deb0d_0 + - itsdangerous=1.1.0=py_0 + - jedi=0.18.0=py38h578d9bd_2 + - jinja2=2.11.3=pyh44b312d_0 + - jpeg=9d=h36c2ea0_0 + - jsoncpp=1.8.4=hc9558a2_1002 + - jsonschema=3.2.0=pyhd8ed1ab_3 + - jupyter=1.0.0=py38h578d9bd_6 + - jupyter_client=6.1.12=pyhd8ed1ab_0 + - jupyter_console=6.4.0=pyhd8ed1ab_0 + - jupyter_core=4.7.1=py38h578d9bd_0 + - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0 + - jupyterlab_widgets=1.0.0=pyhd8ed1ab_1 + - kiwisolver=1.3.1=py38h1fd1430_1 + - krb5=1.17.2=h926e7f8_0 + - latexcodec=2.0.1=pyh9f0ad1d_0 + - lcms2=2.12=hddcbb42_0 + - ld_impl_linux-64=2.33.1=h53a641e_7 + - libblas=3.9.0=9_openblas + - libcblas=3.9.0=9_openblas + - libcurl=7.76.1=hc4aaa36_1 + - libedit=3.1.20191231=he28a2e2_2 + - libev=4.33=h516909a_1 + - libffi=3.3=he6710b0_2 + - libgcc-ng=9.3.0=h2828fa1_19 + - libgfortran-ng=9.3.0=hff62375_19 + - libgfortran5=9.3.0=hff62375_19 + - libglib=2.68.1=h3e27bee_0 + - libgomp=9.3.0=h2828fa1_19 + - libiconv=1.16=h516909a_0 + - liblapack=3.9.0=9_openblas + - libnetcdf=4.7.4=mpi_mpich_hdef422e_7 + - libnghttp2=1.43.0=h812cca2_0 + - libopenblas=0.3.15=pthreads_h8fe5266_0 + - libpng=1.6.37=h21135ba_2 + - libsodium=1.0.18=h36c2ea0_1 + - libssh2=1.9.0=ha56f1ee_6 + - libstdcxx-ng=9.3.0=h6de172a_19 + - libtiff=4.2.0=hdc55705_0 + - libuuid=2.32.1=h7f98852_1000 + - libwebp-base=1.2.0=h7f98852_2 + - libxc=4.3.4=h86c2bf4_2 + - libxcb=1.13=h7f98852_1003 + - libxml2=2.9.10=hb55368b_3 + - locket=0.2.0=py_2 + - lz4-c=1.9.2=he1b5a44_3 + - markdown=3.3.4=pyhd8ed1ab_0 + - markupsafe=1.1.1=py38h497a2fe_3 + - matplotlib=3.4.1=py38h578d9bd_0 + - matplotlib-base=3.4.1=py38hcc49a3a_0 + - matplotlib-inline=0.1.2=pyhd8ed1ab_2 + - mistune=0.8.4=py38h497a2fe_1003 + - monty=2021.3.3=pyhd8ed1ab_0 + - more-itertools=8.7.0=pyhd8ed1ab_1 + - mpc=1.1.0=h04dde30_1009 + - mpfr=4.0.2=he80fd80_1 + - mpi=1.0=mpich + - mpich=3.4.1=h846660c_104 + - mpmath=1.2.1=pyhd8ed1ab_0 + - nbclient=0.5.3=pyhd8ed1ab_0 + - nbconvert=6.0.7=py38h578d9bd_3 + - nbformat=5.1.3=pyhd8ed1ab_0 + - ncurses=6.2=he6710b0_1 + - nest-asyncio=1.5.1=pyhd8ed1ab_0 + - netcdf-fortran=4.5.3=mpi_mpich_hafa3f36_3 + - netcdf4=1.5.6=nompi_py38hf887595_102 + - networkx=2.5.1=pyhd8ed1ab_0 + - notebook=6.3.0=pyha770c72_1 + - numpy=1.20.2=py38h9894fe3_0 + - olefile=0.46=pyh9f0ad1d_1 + - openjpeg=2.4.0=hf7af979_0 + - openssl=1.1.1k=h7f98852_0 + - packaging=20.9=pyh44b312d_0 + - palettable=3.3.0=py_0 + - pandas=1.2.4=py38h1abd341_0 + - pandoc=2.12=h7f98852_0 + - pandocfilters=1.4.2=py_1 + - panel=0.11.3=pyhd8ed1ab_0 + - param=1.10.1=pyhd3deb0d_0 + - parso=0.8.2=pyhd8ed1ab_0 + - partd=1.2.0=pyhd8ed1ab_0 + - pathlib=1.0.1=py38h578d9bd_4 + - patsy=0.5.1=py_0 + - pcre=8.44=he1b5a44_0 + - pexpect=4.8.0=pyh9f0ad1d_2 + - phonopy=2.9.3=py38h5c078b8_0 + - pickleshare=0.7.5=py_1003 + - pillow=8.1.2=py38ha0e1e83_1 + - pip=21.0.1=py38h06a4308_0 + - plotly=4.14.3=pyh44b312d_0 + - pluggy=0.13.1=py38h578d9bd_4 + - pooch=1.3.0=pyhd8ed1ab_0 + - prometheus_client=0.10.1=pyhd8ed1ab_0 + - prompt-toolkit=3.0.18=pyha770c72_0 + - prompt_toolkit=3.0.18=hd8ed1ab_0 + - pthread-stubs=0.4=h36c2ea0_1001 + - ptyprocess=0.7.0=pyhd3deb0d_0 + - py=1.10.0=pyhd3deb0d_0 + - pybtex=0.24.0=py38h578d9bd_0 + - pycparser=2.20=pyh9f0ad1d_2 + - pyct=0.4.6=py_0 + - pyct-core=0.4.6=py_0 + - pydispatcher=2.0.5=py_1 + - pygments=2.9.0=pyhd8ed1ab_0 + - pymatgen=2022.0.7=py38h1fd1430_0 + - pyopenssl=20.0.1=pyhd8ed1ab_0 + - pyparsing=2.4.7=pyh9f0ad1d_0 + - pyqt=5.9.2=py38h05f1152_4 + - pyrsistent=0.17.3=py38h497a2fe_2 + - pysocks=1.7.1=py38h578d9bd_3 + - pytest=6.2.4=py38h578d9bd_0 + - pytest-cov=2.11.1=pyh44b312d_0 + - pytest-forked=1.3.0=pyhd3deb0d_0 + - pytest-sugar=0.9.4=pyh9f0ad1d_1 + - pytest-xdist=2.2.1=pyhd8ed1ab_0 + - python=3.8.8=hdb3f193_5 + - python-coveralls=2.9.3=py_0 + - python-dateutil=2.8.1=py_0 + - python_abi=3.8=1_cp38 + - pytz=2021.1=pyhd8ed1ab_0 + - pyviz_comms=2.0.1=pyhd3deb0d_0 + - pywavelets=1.1.1=py38h5c078b8_3 + - pyyaml=5.4.1=py38h497a2fe_0 + - pyzmq=22.0.3=py38h2035c66_1 + - qt=5.9.7=h5867ecd_1 + - qtconsole=5.1.0=pyhd8ed1ab_0 + - qtpy=1.9.0=py_0 + - readline=8.1=h27cfd23_0 + - requests=2.25.1=pyhd3deb0d_0 + - retrying=1.3.3=py_2 + - ruamel.yaml=0.16.12=py38h497a2fe_2 + - ruamel.yaml.clib=0.2.2=py38h497a2fe_2 + - scikit-image=0.18.1=py38h51da96c_0 + - scipy=1.6.3=py38h7b17777_0 + - scripttest=1.3.0=py_1 + - seaborn=0.11.1=hd8ed1ab_1 + - seaborn-base=0.11.1=pyhd8ed1ab_1 + - send2trash=1.5.0=py_0 + - setuptools=52.0.0=py38h06a4308_0 + - sip=4.19.13=py38he6710b0_0 + - six=1.16.0=pyh6c4a22f_0 + - spglib=1.16.1=py38h5c078b8_0 + - sqlite=3.35.4=hdfb4753_0 + - statsmodels=0.12.2=py38h5c078b8_0 + - sympy=1.8=py38h578d9bd_0 + - tabulate=0.8.9=pyhd8ed1ab_0 + - tbb=2020.2=h4bd325d_4 + - termcolor=1.1.0=py_2 + - terminado=0.9.4=py38h578d9bd_0 + - testpath=0.4.4=py_0 + - tifffile=2019.7.26.2=py38_0 + - tk=8.6.10=hbc83047_0 + - toml=0.10.2=pyhd8ed1ab_0 + - toolz=0.11.1=py_0 + - tornado=6.1=py38h497a2fe_1 + - tqdm=4.60.0=pyhd8ed1ab_0 + - traitlets=5.0.5=py_0 + - typing_extensions=3.7.4.3=py_0 + - tzlocal=2.0.0=py_0 + - uncertainties=3.1.5=pyhd8ed1ab_0 + - urllib3=1.26.4=pyhd8ed1ab_0 + - vtk=8.2.0=py38hf2e56f5_218 + - wcwidth=0.2.5=pyh9f0ad1d_2 + - webencodings=0.5.1=py_1 + - werkzeug=1.0.1=pyh9f0ad1d_0 + - wheel=0.36.2=pyhd3eb1b0_0 + - widgetsnbextension=3.5.1=py38h578d9bd_4 + - xorg-kbproto=1.0.7=h7f98852_1002 + - xorg-libice=1.0.10=h7f98852_0 + - xorg-libsm=1.2.3=hd9c2040_1000 + - xorg-libx11=1.7.0=h7f98852_0 + - xorg-libxau=1.0.9=h7f98852_0 + - xorg-libxdmcp=1.1.3=h7f98852_0 + - xorg-libxt=1.2.1=h7f98852_2 + - xorg-xproto=7.0.31=h7f98852_1007 + - xz=5.2.5=h7b6447c_0 + - yaml=0.2.5=h516909a_0 + - zeromq=4.3.4=h9c3ff4c_0 + - zipp=3.4.1=pyhd8ed1ab_0 + - zlib=1.2.11=h7b6447c_3 + - zstd=1.4.5=h9ceee32_0 +#prefix: /home/gmatteo/miniconda3/envs/my_binder diff --git a/binder/example.ipynb b/binder/example.ipynb new file mode 100644 index 000000000..43743b7af --- /dev/null +++ b/binder/example.ipynb @@ -0,0 +1,2336 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "sized-increase", + "metadata": {}, + "outputs": [], + "source": [ + "from abipy import abilab\n", + "import abipy.data as abidata\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "nearby-clearance", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gmatteo/git_repos/pymatgen/pymatgen/symmetry/kpath.py:179: UserWarning: The input structure does not match the expected standard primitive! The path can be incorrect. Use at your own risk.\n", + " warn(\n" + ] + } + ], + "source": [ + "gsr = abilab.abiopen(abidata.ref_file(\"si_nscf_GSR.nc\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "boring-ferry", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEJCAYAAABlmAtYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8+yak3AAAACXBIWXMAAAsTAAALEwEAmpwYAABQKElEQVR4nO3dd3xUVf7/8dfJpFfSew8JJfSO0hHFAgiI+AWDriuK66o/G7K6u7p+LbiwXxTXVbEiiGVFkAXEgCBIEQIk1IQaEkhCSEgvpMz5/ZHM3QxJSAKTzCQ5z8fjPmZyp30mhHnPOffcc4SUEkVRFEW5FitzF6AoiqJYPhUWiqIoSpNUWCiKoihNUmGhKIqiNEmFhaIoitIka3MXYApdunSRUVFR5i5D6QRKSkpwcnIydxmKYhL79+/PkVJ6N+e+HSIsfH19SUhIMHcZSiewbds2Ro8ebe4yFMUkhBDnmntf1Q2lKIqiNEmFhaIoitIkFRaKoihKk8waFkKIT4QQ2UKII3X2eQgh4oUQJ2sv3c1Zo6IoimL+lsVnwG1X7XsB2CKl7Apsqf1ZURRFMSOzhoWUcjtw+ardk4HPa69/Dkxpy5oURVGU+ixx6KyvlDKz9noW4NvQnYQQc4G5AN7e3mzbtq1tqlM6teLiYvW3pnRKlhgWGimlFEI0OIe6lPJD4EOAmJgYqca+K21BnWehtHdZWVm89dZbrF69ukWPs8SwuCiE8JdSZgoh/IFscxekKIrSnqWkpLBw4UI2bNjAxYsXr+s5zH2AuyE/AHNqr88B1pqxFkVRlHbpt99+Y/r06bi7u9OtWzc+/fRTLShcXFy44447WvR8Zm1ZCCFWAaMBLyHEeeCvwJvAN0KIh4BzwAzzVagoitJ+bNiwgSVLlrBz505KS0uNbvP09OTWW29l/vz59O7dGwAhRLOf26xhIaW8r5GbxrVpIYqiKO2QXq9nxYoVvP/+++zfv5+Kigqj2wMDA5k0aRLz588nNDT0hl7LEo9ZKIqiKI0oLy/n/fff59NPP+Xo0aNUV1drtwkhiIiIYMaMGTz77LN4eHiY7HVVWCiKoli4/Px8/vGPf/DVV19x6tQppPzvIFErKyt69uzJ/fffzx/+8AccHR1bpQYVFoqiKBbo/PnzLFy4kDVr1nD+/Hmj22xsbOjfvz8PP/wwc+bMwdq69T/KVVgoiqJYiPLychYsWMDKlSu5dOmS0W0ODg4MHz6cJ554gjvvvBMrq7YdzKrCQlEUxcxycnJ4/PHH+e6776iqqtL2u7m5MWbMGJ555hluvvlmM1aowkJRFMVsTp48ySOPPMK2bdu04xA2NjZMmTKFv/71r/Ts2dPMFf6XCgtFUZQ29uuvv/L444+TlJSk7XNycmLevHm89tpr2NramrG6hqmwUBRFaSNff/018+fP59y5/y597e3tzZ/+9CeeeOKJNj8O0RIqLBRFUVqRXq9n8eLFLFy4kNzcXG1/REQECxcuZPr06WasrvlUWCiKorSC8vJy5s+fz7JlyygrK9P29+/fn3fffZdhw4aZsbqWU2GhKIpiQjk5OTz22GN8//332sgmIQTjx4/ngw8+IDw83MwVXh8VFoqiKCbQ2MimGTNm8O6779KlSxfzFniDLPdoiqIoSjvw66+/0qdPH6Kjo9m6dStSSpycnHj22WcpLi5mxYoV7T4oQLUsFEVRrsuqVatYsGBBvZFNL774In/84x8temTT9VBhoSiK0kx6vZ5FixaxcOFCLl++rO2PiIjgrbfeYtq0aWasrnV1qLCQUlJdXU1FRQVXrlwxujTFvrpTATf2+s2p8VqEEAwdOpSpU6fi5OTUovevKErrKC8v57nnnuPjjz82Gtk0YMAA/vnPfzJkyBAzVtc2RHM+4CydTqeTtra2XLlypVkf2O2Bk5MT06dPJy4ujtGjR3e4Jm17tW3bNkaPHm3uMpQ2kpWVxWOPPcYPP/ygfVnsCCObDIQQ+6WUA5t1347w4SqE0N6ETqfD1tYWW1tb7OzsjC5vdF9zpgFuzjKF17pPSUkJa9asYdeuXdq+4OBgZs+eTVxcHN26dWvy+ZXWo8Kic0hMTOSxxx5jz549HXJkk0GnC4uuXbvKQ4cOYWtri06nM3c5JnHy5ElWrFjB8uXLSU1N1fYPHjyYuLg4Zs6ciaenp/kK7KRUWHRs//nPf3j66ac5efKkts/FxYXHH3+cv/3tb22ybkRbaklYIKVs91t0dLTsqKqrq+X27dvlQw89JF1cXCQgAWljYyOnTJkiV69eLcvLy81dZqexdetWc5egmFh1dbV85513pI+Pj/b/C5ABAQHygw8+MHd5rQpIkM38nDX7B70pto4cFnWVlpbKVatWyYkTJ0orKyvtj9rDw0M+9thjcs+ePVKv15u7zA5NhUXHceXKFfn0009LJycno5Do0aOH/Omnn8xdXptoSVh0iG6omJgYmZKSYu4y2lRmZiarVq3i888/59ChQ9r+mJgY4uLimD17NiEhIWassGNS3VDtX2PTcYwYMYL33nvPotaQaG0t6YZSQ2zaKX9/f55++mmSkpJITEzk6aefxtfXl5SUFF588UVCQ0MZO3Ysn332GUVFReYuV1HM7vjx44waNQofHx++/fZbqqqqsLa25t577yU7O5tffvmlUwVFS6mw6AD69OnD4sWLOX/+PBs2bGDmzJnY29uzdetWHnzwQXx9fZk9ezbx8fFNniuiKB1NfHw8PXv2pEePHmzfvl2bjuPpp5+mpKSEr776Ci8vL3OXafFUWHQg1tbWTJw4kVWrVpGVlcVHH33EyJEjKSsrY+XKlUyYMIGQkBDmz5/P0aNHzV2uorSqDz/8kICAACZMmMCxY8cA8PX1ZenSpRQWFrJ48WKLXJHOYjX34IYlb53lAPf1On36tHzllVdkZGSk0YG8iRMnyn379pm7vHZFHeC2bJWVlfKFF14wGjkIyOjoaLlu3Tpzl2dxaMEBbtWy6AQiIiL4y1/+wsmTJ9m5cyePPPIIzs7ObNy4kUGDBjFlyhSjtYAVpb3Jz89n9uzZODo68uabb1JUVIQQguHDh5OUlERKSgp33nmnucts11RYdCKG/zzvv/8+Z8+e5bnnnsPBwYG1a9fSt29fZsyYoTXXFaU9OHDgACNHjsTDw4OVK1dSWVmJTqfj7rvvJiMjg507d9K7d29zl9khqLDopLy8vHjrrbc4c+YMTz75JHZ2dnz77bfExsYye/ZsozNYFcWS6PV6PvzwQ0JDQxkwYAA7duxASomDgwOPP/44xcXFrF69Gj8/P3OX2qGosOjk/Pz8WLJkCadOnWLevHlYW1uzcuVKunfvzu9+9zvOnj1r7hIVBYDCwkLmzp2Li4sLjzzyCGlpaQAEBgaydOlSiouLWbp0Kfb29mautGNSYaEAEBQUxHvvvceJEyd46KGHAPj000+Jjo7m0UcfJT093cwVKp1VQkICI0aMoEuXLixbtozS0lKEEAwbNow9e/Zw/vx5Hn/8cTUzcytTv13FSFhYGB999BHJycncf//96PV6PvjgA6KionjiiSfIzMw0d4lKJ2D4uwsNDWXQoEH8+uuvSCmxt7fnwQcfJCcnh127dnWKdSQshQoLpUFRUVEsX76cI0eOcO+991JRUcHSpUuJjIzk2Wef5dKlS+YuUemACgoKtK6mRx99VOtqCgoKYunSpZSUlPDJJ5/g4eFh5ko7HxUWyjV1796dr776iqSkJKZMmUJZWRmLFy8mPDycP/3pT0ZLSyrK9TJ0Nbm7uzfY1ZSenq66msxM/eaVZunduzfff/89CQkJ3H777ZSUlPDGG28QHh7OK6+8QkFBgblLVNoZQ1dTSEiIUVeTg4OD6mqyQCoslBYZMGAA69evZ9euXYwfP57CwkJefvllwsPDeeONNyguLjZ3iYqFy8/P5+GHH8bZ2dlo8ERQUBD//Oc/KS4uVl1NFkiFhXJdhg0bRnx8PL/88gsjR44kLy+PP/3pT0RERLB48WJKS0vNXaJiYRISErj55pvx8PDgo48+oqysTDtR1NDV9Nhjj6muJgtlsf8qQohUIcRhIUSiECLB3PUoDRs5ciTbtm0jPj6eoUOHcunSJZ599lkiIyN55513KC8vN3eJihnp9Xr+9a9/aV1NO3fu1Lqafve735Gbm8vOnTtVV1M7YLFhUWuMlLKvbO4asYpZCCEYP348u3btYv369QwYMICsrCyefPJJunbtyvvvv09FRYW5y1Ta0PHjx5k2bRpOTk489thjDXY1ffzxx7i7u5u5UqW5LD0slHZECMHtt9/Ovn37+P777+nVqxfnz59n3rx5xMTE8Mknn1BZWWnuMpVWkp2dzUsvvYS/vz89evRg9erVlJeXa11Ne/fuVV1N7ZjFLqsqhDgL5FEzxfAHUsoPr7p9LjAXwNvbe8A333zT9kUq16TX69m+fTufffYZ586dAyAgIIA5c+Ywbtw4dDqdmStsueLiYpydnc1dhsUoLi5m27ZtfP/995w5c8boNldXVyZMmMCcOXPU78xCjRkzptnLqpp9LYrGNiCw9tIHSAJGNnZftZ6FZauqqpIrVqyQXbt21dYXiImJkatWrZLV1dXmLq9F1HoWUpaWlspvvvlG3nrrrVKn0xmtG6HT6eTYsWPl7t27zV2m0gx0hPUspJQXai+zge+BweatSLleOp2OWbNmcezYMT799FPCw8NJSUnhvvvuo3fv3nz33Xfo9Xpzl6lcQ2VlJRs3buT+++/H09OTGTNmsGnTJm2Z3sDAQN566y3y8vLYsmULQ4cONXPFiqlZZFgIIZyEEC6G68AE4Ih5q1JulLW1NQ888AApKSl8+OGHBAcHc/ToUaZPn07//v354YcfDK1KxQIYuhHnzZuHn58ft99+OytWrKCsrAxAWzfi119/JT09neeeew4XFxczV620muY2QdpyAyKo6XpKAo4CL17r/qobqn0qLy+X//znP2VAQIDWjTFw4EC5YcMGqdfrzV1egzp6N5Rer5f79++Xzz77rAwKCjLqYjJswcHB8q233pLZ2dnmLle5QbSgG8rswWCKTYVF+1ZWViaXLFkifX19tQ+kYcOGyfj4eIsLjY4aFsnJyfKvf/2rjI6ObjAghBBy0qRJ8scff2x3x5mUxqmwUNqlkpIS+fe//116eXlpH1IjR46U27ZtM3dpmo4UFmlpafLvf/+77N+/f4MBAUhfX1/55z//WaalpZm7XKUVtCQsLHbobEvExMTIlJQUc5ehmEhRURHvvvsuf//738nLywNg3Lhx/O1vf2P48OFmrW3btm2MHj3arDVcr+zsbHbs2MH27dvZsWMHBw8e1G7T6XTawWqAsWPHMm/ePCZPnoyNjY05ylXagBCi2UNnVVgoFqugoIC3336bxYsXU1hYCMBtt93GK6+8wuDB5hkc157C4ty5c1owbN++nav/j1hZWWFlZUVVVRUAXbp04YEHHuDRRx8lJibGHCUrbUyFhdKh5OXl8Y9//IMlS5Zos9reddddvPLKK/Tr169Na7HUsJBSkpycrAXD9u3b6y2Fa2dnh4ODA0VFRUatCABbW1siIiKIjIwkLCyM8PBwo0t3d3eEEG35lpQ2oMJC6ZBycnJYtGgRS5cu1Wa1nTp1Ki+//DK9evVqkxosJSyqqqpISkrSwuHXX3+tt3phly5diImJIScnh7S0NKOpVoQQBAUF4eDgQHZ2Nvn5+dd8PVdX13ohUve6GjLbPqmwUDq0ixcvsnDhQv71r39pcw/ddttt3HrrrYwfP54ePXq02rdgc4XFlStX2Ldvn9Zq2LVrF0VFRUb38ff3Z8SIEfj6+pKQkMCBAwe4cuWKdrsQgqioKObMmcP/+3//D0dHR+22/Px8UlNTOXv2LGfPntWuGy5LSkquWZ+Hh0e91ojhMioqCltbW9P+QhSTUGFhRlVVVeTn51NQUEBeXh6FhYUUFBRQVFREYWEhxcXFFBUVUVpaSnFxMaWlpZSWllJWVkZZWZk2pbehP1kIoV2/1j6dTme0X6fT1buPYb9Op8PGxobw8HB69epFv3798PLyMvNvruUyMjJ44403+PDDD41mtfX392f8+PGMHz+ecePGERgYaLLXbKuwKCoqYvfu3doxh99++83ogx8gMjKSESNGMHLkSBwcHPj888/Zvn17vbVEIiMjuf/++3nmmWeua44mKSW5ubkNhkhqaiqpqanXnIrezc2NadOmMWvWLEaNGtUu5wTrqDpdWHh7e8snn3ySiooKKisruXLlCpWVlVRWVlJRUUFFRQVVVVVUVlZSVVWl/WzYDPurq6uprq6msrJSu153q3t/wz69Xq9t7ZkQAjs7O1xcXPD09MTf35/Q0FCioqKIjY2lX79+BAUFWeRsoVlZWWzatInNmzezefNmsrKyjG7v3r27Fh6jRo3Czc3tul+rNcKiuLiYw4cPk5SURGJiIgkJCSQmJtY7rhAbG8vIkSMZMWIEI0aM4Pz587z22mv8/PPP9b75h4WFMXv2bJ577jlcXV1NWu/V9Ho92dnZRiFiuH769GnOnj2r3TcgIID77ruP2bNn06dPH3UcxMw6XVgIISzuTQgh6n3Tt7a2xtraGhsbG2xsbLC1tcXOzk67dHBwwM7ODisrKy2ApJRGgdTQPqDe7Yb71L2se72yspLCwkJKS0u10TDNYWtri5OTEx4eHvj5+REcHExUVBQ9evSgb9++xMTEmDVQpJQcPXpUC45t27YZfZDqdDoGDx6shcfQoUNb1EVyI2EhpSQzM5PExEQSExO1cDh58iRX/z/U6XQMGDBAC4ebbroJT09PEhISeP3119m8eXO9bqiQkBDuu+8+nn/+eYtakvT48eOsXLmSL7/80ig4evTowaxZs/if//kfwsLCzFdgJ9bpwkKn00l3d3et68XQ1VJ3s7a2Nrq0sbHRPrwNm62tbb0P87rXHRwccHZ2xsXFBRcXF1xdXbXN3d0dNzc3XF1dsba2NvevpEWqqqpISUkhMTGRY8eOcfr0adLT08nKyiIvL4/i4uIWrUNhbW2No6Mj7u7u+Pn50aNHD4YOHcott9xCeHh4K76T+ioqKti7d68WHnv27DH6xu7o6MioUaO08OjVq9c1v+02NywqKytJSUnRAsGw5eTk1LuvtbW1FraGbdCgQVqX0aFDh3j11Vf56aeftCHEBkFBQcyYMYMFCxZYfFeilJLdu3ezcuVKvv76a3Jzc7XbbrrpJmbPns0999yDp6enGavsXDpdWFjSMYuOSq/Xk56ezoEDBzh69CgnT54kLS2NzMxMcnNzKSoqoqKiot435KsJIXB1dcXf35/o6Gj69+/PqFGjGD58eJscBC0sLGT79u1aeBw9etTodh8fH8aNG6eFR0hIiNHtDYVFQUEBhw4dMmoxHDlypN4xBqgZoWQIhD59+tC3b1+6d++OnZ2d0f2OHj3Ka6+9xsaNG+uNVPL39+eee+5hwYIF+Pn5Xf8vw4wqKyvZtGkTK1euZO3atdrkhDY2Ntx2223MmjWLu+66y+ggvGJ6KiwUs8nOzubgwYMcOXKEkydPkpKSwtmzZ8nOztY+EBpjZ2eHl5eXduB96NChjB8/noCAgFarNyMjg59//pnNmzcTHx9PRkaG0e3R0dFacIwePZpNmzbh4OBg1GKo27VSV0REhBYIhnAICQmp13JJS0sjPj6ePXv2cOTIEVJSUrQz1w38/Py4++67eemll1r192EORUVFrFmzhpUrVxIfH691rTo7O2sHxseOHasOjLcCFRaKRaqqqmL//v1s3bqVhIQEUlJSuHDhAgUFBdccIGBlZYWbmxtBQUFER0czcOBAxowZw6BBg0x6fMRwYpuh1bF169Z6xwUaYmdnR2xsrFFroXfv3kYH0quqqti3bx/btm0zeu+FhYWNvncfHx8mT57MSy+9VK+F01FlZWXx9ddfs3LlSvbt26ft9/PzY+bMmcyePZv+/furA+MmosJCaXcyMjK0YwqHDx/m7Nmz5OTkNNiVU5eDgwM+Pj74+/vj6emJj48PgYGBBAUFERISQkREBOHh4dfVxWX4gDeEx+7du3F0dGTQoEFGxxdiYmK041T5+fls2bKFnTt3kpiYyJkzZ5rVqnJwcMDb25uIiAj69u3LE0880ebHdyzNiRMn+PLLL1m5ciWnTp3S9sfExGgHxiMjI81YYfunwkLpMCoqKti1axe//PILBw4c4MSJE2RmZlJYWNjk8ZG6hBBYW1tjZ2eHo6Mjzs7OdOnSBU9PT7y9vfHz8yMwMFALmKioqHpDTqurq9m+fTtjxozh+PHjbNmyhb1793Ls2DHS0tLIy8u75sgyKysrXFxcCAgIICYmhoEDBzJ69GiGDBnS7gZFtCUpJXv37mXlypV89dVXRmeqDx06lNmzZzNjxgy8vb3NWGX7pMJC6RSSkpJYs2YNu3btIjMzk6KiIkpKSigvL9fOpbn6XIWWMgx/NoykMzzvtdjY2ODp6UloaCixsbEMHTqUcePGdfqWgilUVVWxefNmVq5cyffff68Ni9bpdIwdO5bJkyczadIkgoODzVxp+6DCQmn3ysvLOX/+POnp6Y1uTc1nZA46nQ5vb2+8vLzw9PTE09PT6PrVP3t5edGlSxeLPNnR0pWUlLB27VpWrlxptB44wIABA5g8eTKTJ09ucjh0Z6bCQrFoVVVVZGRkGH3wp6WlGf189aR4DbG3tyc4OJjg4GC6dOminUPT3O1a9xdCUFxcTF5eHpcvX6agoIDCwkKuXLlCjx490Ol05OXlkZOTQ25uLrm5ueTk5DR5bKIhVlZWuLu7ayHi7e1Nt27diI2NpVevXnTr1q3e0FrFWG5uLuvXr2fNmjVs2rTJaMqT8PBwLThuvvlm1eVXhwoLxawMk9IZtqtbBJmZmU1Oj2JtbU1gYKAWBg1tXl5ebf6NsamT8srKyozCo6HrV/9cUFBwzdfU6XR07dpVC4/Y2FhiY2OJjIxUw0kbUFZWxpYtW1izZg3r1q0jOztbu83Dw4M777yTyZMnc+utt+Lk5GTGSs1PhYXSqgoLC40mkTNshn1NffgJIbSpQgxbSEiI0c++vr4W+UHYGnNDVVZWcvnyZS08MjMzOXbsGIcPH+bIkSOcOnWqwXC1t7enR48eWngYwiQwMFB1u9Sqrq7mt99+Y82aNaxdu5YTJ05ot9nZ2XHLLbcwefJk7rrrLnx9fc1YqXmosFBuSFFRUYMhYNiuPmHsak5OToSFhREWFkZoaGi9IAgICGi3U1abY4rysrIykpOTtfAwbFcvbmTg5uZWrxUSGxurptEAkpOTWbt2LWvWrGHPnj3afiEEw4YN07qrOstKga0SFkIIJ6BcSnljw0tagQqL5pNSkpeXR0ZGRr2WgSEYLl++fM3ncHBw0NYqqLsZ9nl6enbYb7aWsvgR1HT3HT161ChADh8+bDTnUl3+/v71WiGxsbE4ODi0ceWWISsri3Xr1rFmzRq2bNlidE5Pt27dtOAYMmRIhx2AYJKwEEJYATOBWcAg4ApgB+QA64EPpJSnGnxwG1NhUXM+wsWLF8nMzCQrK6vRy6ysLKO1Hxpib2/fYAgYNm9v7w4bBk2xpLBoiJSSixcvasFhCJGjR482uICRlZUV0dHR9OnTx2gLCAjoVP/GxcXFbNq0iTVr1rB+/Xqj1rOvry+TJk1i8uTJjBs3Dnt7ezNWalqmCotfgM3AWuCIlFJfu98DGAP8D/C9lHKFSaq+AR01LKSUFBQUNCsAGvs22RDDRH6hoaENthB8fX071QdFS1h6WDRGr9dz7tw5owA5dOgQycnJDZ6L4unpqU1fYti6d+/ebrsPW6KyspJff/1VO85x7tw57TZHR0eGDRvGsGHDGD58OEOHDsXd3d2M1d4YU4WFjZTymvNSN+c+bcGSw6KqqorCwkJtMwzBrHv96n0XL17UQuBaK5DVZWVlha+vL/7+/vj5+TV66efnp2byvAHtNSwaU15ezrFjx7SJEZOSkkhKSmrwHBYbGxu6d+9erxXSkc+cllJy6NAh7TjHwYMH692ne/fuDB8+nOHDhzNs2DCzr+nSEqYKi/XAl8BaKWWxCeszuZaGhV6v11bHM6yoV3fFvMb2lZaWXvNDvqF9Vy9x2VLOzs7NCgAvLy+LHD3U0XS0sGiIlJL09HQtOAzbqVOnGpxiJSAgoF6AREdHd8i/x6ysLHbv3s3u3bvZtWsXCQkJ9eYvc3d311oew4YNY/Dgwde1nG1bMFVYTKbmmMU4YBuwClgvpbx2h7cZ2Nvby27dujXrA7+ysrJFcwrdKMP6Da6urtriSIbLxq77+PhoIWCpf2SdVWcIi8bUXf7VsB06dKjBYyH29vbExsbSp08fevXqRUxMDDExMYSEhHSoELly5QoHDx7UwmPXrl31prm3srKiT58+WoAMHz6csLAwi+jqNeloKCGEI3AXNcExDNgIfCmljL/RQk3lepZVNayAZ1gZ7+rLhvY5Ojq2+IPfycmp3TRJlaZ15rBoiF6v58yZM/W6sdLS0hq8v52dHdHR0Vp41N1uZG10S2Fole3atUsLkIMHD9Y7LuTr62vUdTVgwACzHDhvtfMshBC9gc+B3lJKi/l6EBoaKtesWdPsD30rKyuLSHWl/VFh0Tx5eXkcOnSIpKQkjh07RkpKCikpKWRmZjb6GD8/Py04unXrpl0PCwtr162RkpISEhISjFofVw9IsbGxYcCAAVrrY/DgwQQFBbX6F01Ttyx8gRnUtCz8gW+AVVLKpBst1FQs+QC30rGosLgxhYWFWnDU3U6cONHoYA5bW1uioqKMAsSwtceRSFJKTp06pQXH7t27OXLkSL3ucTs7O8LDw4mMjCQyMpKIiAjtMjw83CTnx5jqmMXDwH1ADPAd8JWUctcNV9cKVFgobUWFRevQ6/WkpaXVC5Hk5GQuXLjQ6ON8fHy04AgNDcXf35+AgAACAgLw9/fHy8urXXQDFxQUsHfvXi1AEhMTjea0akhgYKAWIHXDJDIystknxpoqLD6h5qD2FsM5FpZKhYXSVlRYtL3i4mJOnDhhFCCG1khTow2tra3x9/evFyJ1LwMCAvD09LS4UCkuLubMmTOcPn2a06dPG10/d+7cNddVcXFxqRcghushISHazLum7oYS1JzFHSGl/JsQIgTwk1Lube6bbm0qLJS2osLCcuj1ei5cuKCFyIULF8jIyCAjI4PMzEwyMjKanLrGwBAqV4fI1dctJVSqqqpIT083CpEzZ85w8uRJzpw5c82144UQuLi44OTkRGZmpknD4l+AHhgrpewuhHAHfpJSDmrBe2tVKiyUtqLCon0pLy8nKyurXojUvZ6ZmdnsUNHpdDg4OGBnZ4etrS12dnYt3przOCEERUVFFBYW1rts7HpRUdH1rAzZ7LBoziogQ6SU/YUQBwGklHlCiI5/zr+iKO1e3XnOrqW8vJzMzMwGw6Tu9by8PIqLiykutszzlO3t7XFxccHV1VW7vPq6vb29dpLxO++80+znbk5YVAohdIAEEEJ4U9PSUBRF6RDs7e0JDw9vcp30yspKysvLuXLlSqtuUsoGP+wbCwAXFxdcXFxaPHeXqcPiHeB7wEcI8RowHXipRRVdByHEbcDbgA74SEr5Zmu/pqIoyrUYzt1ycXExdyltrsmwkFKuFELsp2baDwFMkVIeb82ialsy/wRuAc4D+4QQP0gpj7Xm6yqKoigNazQshBDOhgkEpZTJQPK17mNig4FTUsozta/zFTAZUGGhtIrS0lJtyvfs7GwuXbpEbm4uly9fJi8vj/T0dNLS0tDpdIwdO5YxY8YwaNAggoKCzF26orSJa7Us1gohEqlZz2K/lLIEQAgRQc16FjOAZcC/W6GuQKDumpHngSGt8DpKO5efn09iYiJnz54lJydH+3DPz8+noKCAoqIiiouLKS0tpaysTOtvNkwuWV1d3eKJJY8ePcrSpUu1nw3dEn5+fgQFBREZGUmPHj3o168f/fr1U1PCKx1Co2EhpRwnhLgdeAS4qXbRo0oghZqV8uZIKbPapsz6hBBzgbkA3t7ebNu2zVylKK0kPz+fU6dOcebMGdLT08nKyiInJ0eb+r2iosLkMwgLIRBCoNcbj+GwsrLCycmJyspK7QCkQWVlJZcvX+by5cscO1a/8WtlZYWdnR0uLi54eHjg4+NDUFAQERERREdHExgYaBFj9xXlWlo0kWBbEUIMA16WUt5a+/MCACnlGw3dX51n0f5kZ2ezf/9+jhw5QkpKCqmpqWRkZJCbm0thYWG9D+Rr0el0RuPX7e3tcXR0xMnJSRsx4ubmRpcuXfDw8MDT0xNvb2+8vb2xt7cnKSmJn376ifj4eKPptsPCwpg8eTJTpkzh5ptvxtraWjvPIjs7m4SEBH766Sd27tzJiRMnKCwsvO7fh62tLc7Oznh5eREUFMSYMWOIi4sjJCTkup9TUZrSarPOthUhhDVwgpqD6heAfcD/SCmPNnR/FRaWJSMjgwMHDmhBcO7cOTIzM7UgaEmLwNraGkdHR9zd3fHx8SE4OJjIyEi6d+9Ov3796NGjR4uHC6ampmorn+3YscPoRKZ+/foxZcoUJk+eTO/evevNr3Otk/JycnI4cOAABw4cYP/+/Rw4cIAzZ840+r6klE2eRGVnZ0dERAQjR45kxowZjB49WrVCFJNp92EBUNsFtoSaobOfSClfa+y+KizaTlZWFgcOHODQoUOcOHGC1NRUMjMzycnJoaioqN6qYddibW2Nk5MT7u7u+Pr6EhwcTNeuXenRowd9+/alW7du2hw2N0JKSWJioramclLSfydMtra2ZtSoUUyZMoVJkyY1+U2+pWdw5+XlGQXI/v37OXXqVL376XQ6vL29cXR0pKqqitzc3AYXFTIsnztgwAAmT57MjBkzcHV1bXY9ilJXhwiLllBhYRqGrpUjR46QnJzMuXPnjLqGWtIisLGxwcnJCQ8PD/z8/AgJCSEqKkoLgtZep7iyspLt27ezZs0afvjhB6PFeJydnZk4cSJTpkxh4sSJLZrm2hTTfRQUFHDw4EGt9bF//35OnDhh9Lu1trZm4sSJhIaGcvr0aQ4ePMjFixcb/P27urrSrVs3xo8fz+zZs+nevfsN1ad0HqaeSHAxNd/sG+wCsgQqLBqn1+vJysoiOTmZU6dOkZqayvnz57VJ13Jzc7UWwfUEga+vL6GhoURFRREbG0vfvn3p2rWrWbpKioqK+PHHH1mzZg0bNmwgPz9fu83f359JkyYxefJkxo4di52d3XW9RmvNDVVUVERiYiL79+9ny5YtbNiwQTvIHhoaykMPPcScOXNISUnh66+/5tdffyU1NbXBlpyNjQ1hYWEMGzaMe+65h9tuu80kLTSl4zF1WPweeJCakVOfUrPwUcENV2lCnS0siouLSU5O1maYTE9P58KFC2RnZ3P58mUKCgooKSnhypUrLZ5YzFKDoDFVVVWsWrWKL7/8kp9//pmKiv8uEd+9e3ft+MOgQYNMUndbTSR44cIFPv30Uz7++GNSU1OBmi6o22+/nYcffpjbb78da2trTp8+zYoVK/jpp584duyYUUAaCCHw9vamb9++3H777cyaNQsvL69Wfw+K5WuVbighRAw1oXEfsBNYJqXcet1VmlB7DQu9Xk9OTg5ZWVlcvHiRixcvkpOTQ3p6Ounp6drP+fn5FBcXU1ZWRlVV1XUNF7W2tsbOzg5nZ2fc3Nzw9PQkJCREO0bQv39/iwuCa5FSsm7dOhYsWKANVxVCMHz4cC0gunbtavLXbetZZ/V6PVu2bGHZsmWsWbOGyspKAAICAnjwwQd56KGHjOYzKi0t5dtvv2Xt2rXs27ePjIyMesOAAZycnIiOjmb06NHcd999DBpkMZNIK23I5GFRO/3GndSERTA1S6veDJRIKWfeQK0m0ZZhUVVVRVZWlrZdunSJnJwccnJyGj0ZrLS0VJsgrLKykurq6uuZStiIlZUVtra2ODo6auP3vb29CQgIIDg4mPDwcLp27Up0dDQ+Pj4meveWYefOncyfP5+dO3cCNUNcX3jhBe6+++5Wf6/mnKI8Ozub5cuXs2zZMk6cOKHtHz9+PA8//DBTpkypNzJMr9eze/duvvzyS3bs2MGpU6coKyur99w6nY6AgAAGDhzI5MmTueeee9TJhJ2Aqbuh/g+4C9gCfFx30SMhRIqUMuZGijUFJycnOWTIEKqqqrQzcw1n59b9cK6urqaqqgq9Xq/9rNfrtZ+llNrPhutSSqOtNQgh0Ol02iRlTk5OdOnSBW9vb3x9fQkKCiI0NJTIyEhiYmIIDw/vlH3Qx48fZ8GCBaxduxYALy8v/vznP/PII49c9zGIlrKE9SyklOzYsYNly5bx73//W1u72svLizlz5vD73/+ebt26Nfr48+fP8+WXX7Jx40YOHz5Mbm5ug/dzdXWle/fujB07llmzZtGzZ89WeT+K+Zg6LB4EvjFM93HVbW6WcPxCCNHmQ7qsrKy0D3hbW1vs7e2xt7fHyclJOxnMzc0NNzc33N3dtW/+3t7e+Pj4EBAQgK+vr/r21gwXLlzg5Zdf5pNPPkGv1+Po6MjTTz/Nc8891+bDRi0hLOrKy8tjxYoVLFu2jMOHD2v7R4wYwcMPP8z06dNxcHC45nNUVVWxfv16vvvuO/bs2cO5c+eMjv0Y2NjYEBwczJAhQ5g6dSqTJk1q8TkuimUxdVj0b2B3AXBOStn4IrBtyMHBQQ4cOBAbGxusra21b+iGzdbWVrusu9U969fwgW+4tLOz01bEMgRBly5d8PPz65Tf6s0hPz+fhQsXsmTJEsrLy9HpdDz88MP85S9/wd/f3yw1WVpYGEgp2bdvH8uWLWPVqlXaORpdunRh9uzZ/P73v6dPnz7Nfr6TJ0+ycuVK4uPjGz1wDuDh4UHPnj2ZMGEC999/P6GhoaZ4O0obaUlY1OtmaaDbZQ9QASQA+4ErwAHgNDChqce3xRYdHS2VjqOsrEwuXrxYenh4SGoW3ZLTpk2TycnJ5i5Nbt261dwlNKmwsFB++OGHctCgQdrvD5CDBg2SH374oSwsLGzxc5aVlckVK1bIe+65R4aGhkpra2uj5zZsdnZ2MiYmRj744INy/fr1srq6uhXeoWIqQIJs5udsc8JiNdCzzs89qJlpNgJIbO4LteamwqJjqKqqkp9//rkMCQnRPnxGjhwpd+/ebe7SNO0hLOpKTEyUf/jDH6Sbm5v2O3VycpK///3v5d69e2/ouQ8ePCife+45OXDgQOni4tJgeAghpKenpxw6dKh84okn5IYNG+SVK1dM9O6UG2XqsDjS2D4VFoop6PV6uWHDBtm7d2/tQyY2NlauX79e6vV6c5dnpL2FhUFpaalcvny5HDFihNGH+dChQ+VXX30lKyoqbvg1CgoK5LJly+SkSZNkYGCgtLKyajBAAOns7Cx79uwpZ82aJT/55BN56dIlE7xLpaVMHRbfAP8CRtVu79XuswP2NfeFWnNTYdF+7d27V44ePVr7EAkODpafffaZrKqqMndpDWqvYVHX8ePH5TPPPCPd3d2133tQUJB88803ZW5urslep7q6Wv7666/y+eeflyNGjJC+vr5Sp9M1GiB2dnYyNDRU3n777fKNN96Qx44dM1ktSsNMHRYOwDPUrMP9PfAs4AhYAc7NfaHW3FRYtD8nTpyQ99xzj/ZB4e7uLhctWiTLysrMXdo1dYSwMCguLpb/+te/ZLdu3bR/BwcHB/noo4+26gf1iRMn5KJFi+Sdd94pw8PDpZ2dXaMBYmVlJX18fORNN90kn376abl582ZZWVnZarV1NiYLC2pmfN3a3Ccz16bCov3IzMyU8+bN0w6Q2tvby/nz58u8vDxzl9YsHSksDKqrq+XGjRvlrbfeavRBfdttt8kff/yxTboC8/Ly5Oeffy7j4uJkr169Gj0GYthcXV1lr1695Jw5c+QXX3zRbv5+LE1LwqI5Q2e3AFOlBZxP0Zj2Ot1HZ1JUVMSiRYtYvHgxJSUlWFlZ8eCDD/Lyyy+3q3WsLXXorKkcO3aMd955h+XLl2tnenfv3p0nn3yS+++/v03PC6qqqmLr1q1s3LiR3377jZMnT5Kbm9vg9CVQcx6Im5sb/v7+REZG0qtXL4YOHcrNN9+spnFvhKnPs1gL9APiAe3EPCnlEzdSpCmpsLBcFRUVfPDBB7z66qtcunQJgEmTJvH666+3yzOCO3pYGFy+fJlly5axdOlSLly4AIC7uztz587lD3/4A8HBwWar7ciRI6xbt44dO3Zw9OhRsrKyGjyJsC6dTqetkx4WFkZsbCwDBw5kxIgRBAQEtFHllsfUYTGnof1Sys+vo7ZWocLC8uj1er755htefPFFbbW44cOHs3DhQm6++WYzV3f9OktYGFRWVrJ69Wr+7//+j99++w2o+eCdPn06Tz31FEOHDjVzhTVycnLYsWMH+/bt4/Dhw5w9e5bMzEwKCwupqrr2ucOG9dW9vb0JDQ2le/fu9O/fn5EjRxIZGdluJte8Hq0xkaADECKltMhPZBUWlmXr1q08//zzJCQkANCtWzfeeOMNJk+eXG+Z0vams4VFXXv27OHtt9/m22+/1SbCHDJkCE899RTTpk3DxsbGzBU2rLS0lN27d7N7924OHTrEqVOnyMjIIC8vr8kWCYCjoyOenp7aSo7h4eGEhYURFRVFTExMu57u3dQti7uARYCtlDJcCNEX+JuUctINV2oiKiwsw+HDh5k/fz4bN24EahYceuWVV3jwwQc7zBQpnTksDNLT03nvvff44IMPyMvLAyAwMJDHH3+chx9+GE9PTzNX2HxVVVXs37+fnTt3kpSUREpKCufPn+fy5csNzs7bGMMSAE5OTri5uWnrwfj7+xMcHExYWBjR0dHExMRY1PETU4fFfmAssE1K2a923xEpZewNV2oiKizMKz09nb/85S98/vnnSClxcXFh/vz5PPXUUzg5OZm7PJNSYfFfJSUlrFixgiVLlpCcnAyAg4MDcXFxPPnkk+1+eVe9Xs/x48fZuXMnBw4cIDk5mfT0dAoKCigtLaWiouK6lxqwsbHR1pfp0qWLUbiEhoYSGBiIi4sLzs7O2qWbmxuurq44OjqarGvM1GGxR0o5VAhxsE5YHJJS9jZBrSahwsI88vPzefPNN3n77bcpLy/H2tqaefPm8ec//xlvb29zl9cqVFjUp9friY+PZ8mSJfz444/a/ltvvZWnnnqKCRMmdNh+f71eT0ZGBikpKZw+fVpbttiw1k1eXh5FRUVauDQ2kut6CSGwsrIy2qytrdHpdFhbWxtNrFp3QlXDBKk///yzScPiY2rWsngBmAY8AdhIKR+90TdqKios2taVK1d47733+N///V8uX74MwIwZM3jttdeIiooyc3WtS4XFtR0/fpx33nmHzz//3Gjo7TPPPMOsWbOwt7c3c4XmpdfrOXfuHMnJyZw9e5bU1FQuXLighUt+fj5FRUXaksh119dpzvHl62DSsHAEXgQmAALYBLwqpSy/0SpNRYVF29Dr9axatYqXXnpJWxd61KhRvPXWWwwePNi8xbURFRbNYxh6++6773L+/HkAfH19eeKJJ5g3bx7u7u5mrrD9qqqqorCwkKKiIm0rLCykuLiYkpISSkpKKC0t1VbqLCsrM9rKy8u1lTt//fVX001R3h42dQZ364uPj5f9+vXTzqDt2bOn/M9//mNxE/21to54BndrqqiokF988YXs06eP0ay3Tz75pDx79qy5y+v0aMEZ3E12JAohooUQHwohfhJC/GzYbiQZlfYjKSmJ2267jVtuuYWDBw8SGBjIxx9/TFJSEnfccUe7HwqrtC4bGxtmz57NwYMH+emnn7jlllsoKSnh7bffJioqivvuu48DBw6Yu0ylOZpKEyAJmAcMBgYYtuamUVtsqmVheufOnZNxcXGydsla6erqKl9//XVZUlJi7tLMSrUsblxiYqKcPXu20QJKY8eOlRs2bOh0LVVzw8Szzu5v7pOZa1NhYTqXL1+Wzz77rDYTqI2NjXzyySfVegO1VFiYTlpamnz66aels7Oz0Tomn332mVogqY20JCyaM55tnRDiMSGEvxDCw7CZuoWjmFd5eTmLFi0iMjKSRYsWceXKFe677z6Sk5NZsmRJuz5LVbFMwcHBLF68mPT0dBYuXEhAQABHjhzhgQceIDw8nLfeeouCAoudv7TzaSpNgLMNbGeam0ZtsamWxfWrrq6Wy5cvN1rKdMyYMXLfvn3mLs0iqZZF67ly5Yr87LPPZGxsrPa36OLiIp9++mmZlpZm7vI6JEzZDdUeNhUW12fTpk2yb9++2n/MXr16qX7jJqiwaH2GZXbHjh2r/W1aW1vL2bNny8TERHOX16G0JCwa7YYSQjxf5/o9V932ugkbN0ob27t3LxMmTODWW28lMTGRoKAgPv30Uw4ePMjEiRPVCCfFrIQQTJw4kS1btpCQkMDMmTORUrJixQr69u3LhAkTiI+PN/R8KG3kWscsZta5vuCq225rhVqUVrZnzx4mTpzIkCFDiI+Px83NjTfffJMTJ07wwAMPoNPpzF2iohgZMGAAq1at4tSpUzz55JM4OTkRHx/PhAkT6NevHytWrKCystLcZXYK1woL0cj1hn5WLNjOnTuZMGECw4YN48cff8TJyYnnn3+e06dPM3/+fBwcHMxdoqJcU1hYGEuWLCEtLY3XXnsNX19fkpKSuP/++4mMjOQf//gHhYWF5i6zQ7tWWMhGrjf0s2KBtm/fzvjx47n55puJj4/H2dmZBQsWkJqaysKFC9vVVNKKAuDh4cGf/vQnUlNT+eijj+jWrRvp6ek888wzBAcH88wzz2hT0Sgm1tjBDKAaKASKgKra64afK5t7UKQtNnWA29jWrVvl6NGjjRa3f+mll2Rubq65S2v31AFuy1JdXS3XrVsnR44cqf29W1lZyXvuuUfu2rXL3OVZPExxgFtKqZNSukopXaSU1rXXDT9b5pJYnZiUki1btjBq1CjGjBnDtm3bcHNz469//Supqam8+uqreHio02OUjsXKyoo777yTX375hf379zN79mysrKz49ttvGT58OEOHDuWbb75pcmlVpWkdc5L5TkRKSXx8PCNGjGD8+PFs376dLl268Morr5CamsrLL7+sZvhUOoX+/fvzxRdfkJqayoIFC3B3d+e3337j3nvv1U42zc/PN3eZ7VdzmyCWvHXGbii9Xi83btwohw0bpjW/PTw85P/+7//KgoICc5fXYaluqPajuLhYvvfeezI6Olr7P+Ls7CyfeOIJefr0aXOXZxEw8XQfbUoI8bIQ4oIQIrF2u93cNVkSKSXr169n6NChTJw4kd27d+Pp6ckbb7xBamoqL774okWt8aso5uLk5MS8efM4fvw469atY+zYsRQXF/POO+8QFRXF1KlT2bFjhzpfo5ksLixq/Z+Usm/ttsHcxVgCKSXr1q1j8ODB3Hnnnezduxdvb28WLlxIamoqL7zwAi4uLuYuU1EsjuG4xpYtW0hMTGTOnDlYW1vz/fffM3LkSAYPHsyXX36pztdogqWGhVJLSsmaNWsYMGAAkyZNIiEhAR8fHxYtWsTZs2d5/vnncXZ2NneZitIu9OnTh88++4y0tDT+/Oc/4+npSUJCArNmzSI8PJyFCxeSl5dn7jItUpPLqrY1IcTLwAPUDNNNAJ6RUtb71xNCzAXmAnh7ew/45ptv2rDK1qfX69mxYwdffPEFp0+fBmrGmM+cOZO77rqr069lbC7FxcUqnDuQK1euEB8fz7///W/OnTsHgL29PbfddhvTpk0jKCjIzBW2rjFjxlj2sqrAZuBIA9tkwBfQUdPqeQ34pKnn60gHuKurq+U333wje/XqpR2U8/f3l2+//bYsLS01d3mdnjrA3TFVV1fLjRs3ygkTJmj/74QQ8q677pJbt27tsJNr0lFmnQXCgCNN3a8jhMXly5fl0qVLZY8ePbQ/1sDAQPnuu+/KsrIyc5en1FJh0fEdPnxYPvTQQ9oCYIDs27evXL58eYdblKklYWFxxyyEEP51frybmhZHhySlZMeOHcTFxREQEMAf//hHjh07RnBwMO+99x6nT5/mD3/4g+pyUpQ2FBsby0cffURaWhqvvPIKPj4+JCYmEhcXR1hYGK+++ioXL140d5ltr7mp0lYb8AVwGDgE/AD4N/WY9tayuHTpkly0aJHs1q2b9s0FkOPGjZNfffVVh/v20pGolkXnU1ZWJj/55BOjRZlsbW1lXFycTEhIMHd5N4SO0g3V3K09hEV1dbWMj4+XM2bMkDY2NtofnZ+fn1ywYIE8deqUuUtUmkGFReel1+vl5s2b5eTJk6UQQvs/PHz4cLlq1SpZUVFh7hJbrCVhYd3mTZlOJjMzk88++4yPPvqIM2fOADWLu9x+++08/PDD3HHHHdjYqKm2FMXSCSEYN24c48aN48yZM7z33nt8/PHH7Nq1i127dhEQEMC8efOYO3cuPj4+5i7X5Cxu6Oz1iImJkSkpKeYuQ1NdXc2mTZtYtmwZ69ato7q6GqhZoP6hhx7id7/7HcHBwWauUrke27ZtY/To0eYuQ7EQJSUlrFixgnfeeYdjx44BYGtry8yZM3niiScYMGCAmSu8NiGEZQ+dNfVmKd1Q586dk3/9619lcHCw1kTV6XRyypQpcsOGDbKqqsrcJSo3SHVDKQ25VhfVV199ZbFdVKhuqLZTWVnJf/7zH5YtW8aPP/5YcyAIiIiI4Pe//z0PPPAA/v7+TTyLoijtWUNdVB999FHH6qJqbqpY8maOlsWpU6fkggULpJ+fn9EIiXvvvVdu3rxZVldXt3lNSutTLQuluYqLi+X7779vdO6UpY2iQo2Gah3l5eXyq6++kuPGjTMa8tqtWze5ePFieenSpTapQzEfFRZKSxm6qCZNmmRxXVQtCQvVDXUN+fn5HDlyhEOHDpGYmMj3339PTk4OUDN/zIwZM3j44Ye56aabEEKYuVpFUSxRR+miUqOhgIqKClJSUjh8+DCHDh3i8OHDHD58mPT09Hr37d27N3PnzmXWrFl06dLlBqpW2iM1GkoxhcZGUd1333388Y9/bLNRVC0ZDdWpwkJKSXp6uhYGhmBITk5ucI1ee3t7evToQa9evejduzcjRoxg4MCBqhXRiamwUExJSsnPP//MO++8w7p167QBMsOHD+fRRx9l+vTpODg4tNrrq7AACgoKtFCouxUUFNR7vBCCiIgILRR69epFr169iIqKQqfTtdXbUNoBFRZKa6nbRWX4nHJ3d2fOnDnMnTuX7t27m/w1O11YhIWFyddff90oFNLS0hq8r5eXlxYGhmDo2bMnTk5ObVy10h6psFBaW0lJCatWreKDDz4gISFB2z9y5Ejmzp3LtGnTTDa5aKcLi9oRBkbqdiHVDQZfX1/VjaRcNxUWSls6cOAAH3zwAV9++SXFxcUAeHp6aq2NmJiYG3r+ThcWtra28o477jAKBtWFpLQGFRaKORQVFWmtjQMHDmj7R48ezSOPPMLdd9+NnZ1di5+304WFpc0NpXRcKiwUc0tISNBaG6WlpUBN9/qDDz7I3LlziYqKavZztSQsLG7xI0VRFKVxAwcOZNmyZWRmZvLee+/Rp08fcnJy+Pvf/07Xrl0ZP3483377LRUVFSZ9XRUWiqIo7ZCrqyvz5s3j4MGD7NmzhwcffBAHBwe2bNnCjBkzCA4O5oUXXtCWRrhRKiwURVHaMSEEQ4YM4ZNPPiEjI4OlS5cSGxtLdnY2CxcuJDIykgkTJvDdd99RWVl53a+jwkJRFKWD6NKlC48//jiHDh1i586dxMXFYW9vT3x8PNOnTyckJIQXX3yR1NTUFj+3CgtFUZQORgjB8OHD+fzzz7lw4QJLliyhe/fuZGVl8frrrxMREUH//v1b9JwqLBRFUTowDw8PnnzySY4cOcL7779P165dkVJy8ODBFj2PmnVWURSlAzt37hwrVqxg+fLlnDhxQtvv7+9PZmZms59HhYWiKEoHU1RUxL///W+WL1/Otm3btP2+vr7MmjWLuLg4+vTp06LZLFRYKIqidADV1dVs2bKF5cuXs3r1asrKyoCaqY+mTJlCXFwct9xyC9bW1/exr8JCURSlHTty5AjLly9n5cqVZGRkaPtHjhxJXFwc06dPx83N7YZfR4WFoihKO5Odnc2qVatYvny50VxRUVFRxMXFMXv2bMLDw036miosFEVR2oHy8nLWrVvH8uXL2bhxI9XV1UDNuRX33nsvcXFxDBs2rNVm1VZhoSiKYqGklOzatYvly5fz9ddfa4siWVtbc9dddxEXF8edd95psvUtrkWFhaIoioU5c+aMNtz19OnT2v4BAwYQFxfHzJkz8fHxadOaVFgoiqJYgNOnT7N69WpWr17Nnj17tP0BAQHMnj2buLg4evbsabb6VFgoiqKYgZSSo0ePagGRlJSk3ebo6MjUqVOJi4tj7NixFrGQmwoLRVGUNiKlJCEhQQuIumdUu7q6cueddzJ16lRuu+02nJyczFhpfSosFEVRWlF1dTU7d+7UAiI9PV27zdPTkylTpjB16lTGjRt3XUujthUVFoqiKCZWUVHB1q1bWb16NWvWrCE7O1u7LTAwkLvvvptp06Zx8803X/cZ1W2tfVSpKIpi4UpLS/npp5/47rvvWLdunTbMFSAiIoJp06Yxbdo0Bg0ahJVV+5vwu0OERWlpKSkpKYSEhODg4GDuchRF6SQKCwtZv3493333HRs3bqS0tFS7LTY2lqlTpzJt2jR69erVaifLtZUOERbnz5+nW7duAPj4+BAaGtro1qVLF/MWqyhKu5aTk8MPP/zAd999x+bNm6moqNBuGzRoEFOnTmXq1KlER0ebsUrT6xBh4eDggJ+fH+np6WRnZ5Odnc2+ffsavK+rq+s1w8THx6ddNhEVRWkder2eQ4cOER8fz8aNG/nll1/Q6/VAzYp0I0eOZNq0aUyZMoWQkBAzV9t6zBIWQoh7gJeB7sBgKWVCndsWAA8B1cATUspNTT1fcHAwKSkpVFdXk5mZyblz5xrdCgsLOXz4MIcPH27wuezs7AgJCSE0NFS7NGzdu3fH19fXFL8CRVEs2Pnz54mPjyc+Pp7Nmzdz6dIl7TZra2tuueUWpk2bxqRJkzrNZ4K5WhZHgKnAB3V3CiF6ADOBnkAAsFkIES2lrG7Ok+p0OoKCgggKCuKmm26qd7uUktzcXNLS0hoNk9zcXE6ePMnJkycbfI3w8HCGDRumbb1798bGxqZl715RFItSVFTEtm3btIBITk42uj0oKIhbbrmFW265hYkTJ3bK7myzhIWU8jjQ0AGfycBXUsorwFkhxClgMLDbFK8rhMDLywsvL69GFysvLi7WwqRuqKSmpnLo0CHOnj3L2bNn+fLLL4GaLrCBAwcaBUhn+aahKO1VVVUVCQkJWjjs3r2bqqoq7XZnZ2fGjBmjBURMTEy7P0B9oyztmEUgsKfOz+dr99UjhJgLzAXw9vY2WjrQFBwcHIiJiSEmJkbbV11dzdmzZzl27BhHjx7l+PHjpKens2PHDnbs2KHdz9/fnx49etCzZ0969OhBZGRkuxlLrVxbcXGxyf/WlNYnpSQjI4OEhAT279/PgQMHKCkp0W63srKiR48eDBgwgIEDB9KjRw/t/2xWVhZZWVnmKt1itNonmBBiM+DXwE0vSinX3ujzSyk/BD4EiImJkaNHj77Rp7wuubm57Nmzh927d7N792727t1LZmYmmZmZbNmyBVCtj45k27ZtmOtvTWmZy5cv8/PPP/PTTz8RHx9Pamqq0e1RUVFay2HMmDGdsmupJVotLKSU46/jYReA4Do/B9Xus1ienp7ccccd3HHHHUBN6+PIkSNaeOzevZuTJ0/Wa32oYx+KYlpXrlxh9+7dWtdSQkICUkrtdnd3d8aPH68FRFhYmPmKbYdE3V9mm7+4ENuAZw2joYQQPYEvqTlOEQBsAbo2dYA7JiZGpqSktHK11y8nJ6de66NuExhqWh+DBg1i2LBhDB48mIEDBxIcHNzp+0ktjWpZWI7c3Fz27t3L3r172bNnD9u3bzc6Kc7GxoabbrpJC4f+/ftbxOytlkQIsV9KObBZ9zVHWAgh7gaWAt5APpAopby19rYXgd8BVcBTUsqNTT2fpYfF1aqqqrTWhyFEGhp95eXlxcCBA7VtwIABBAYGqgAxIxUW5lFWVkZiYiJ79+7lt99+Y+/evUaLAhnExsZq4TBy5EiLm7nV0lh8WJhaewuLhhhaH3v27CEhIYGEhARyc3Pr3c/X17degPj7+5uh4s5JhUXr0+v1pKSkaKGwd+9ekpKSjEYrQU1rfMCAAQwePJjBgwczYsQIAgICzFR1+6TCogOQUnLu3DktOPbv309CQgL5+fn17hsQEFAvQNp6ycXOQoWF6WVkZGih8Ntvv5GQkEBhYaHRfaysrOjZs6cWDIMHDyY2NlaNMrxBKiw6KCklZ86cMQqP/fv31/uPBTVntdcNjwEDBuDl5WWGqjsWFRY3pqioiP379xt1J50/f77e/YKDgxk8eDBDhgxh8ODB9O/fHxcXFzNU3LGpsOhE9Ho9p06d0sIjISGBAwcOUFxcXO++YWFhRgHSvXt3AgIC1DGQFlBh0XyFhYWkpKRw8OBBLRiOHTumzatk4OrqatRiGDx4sOpabSMqLDq56upqTp48qYVHQkICBw8eNBopYuDk5ER0dLR2AqJhi46OxtnZ2QzVWzYVFsb0ej1paWkkJyeTkpJidJmZmVnv/jY2NvTp08eo1RAdHa0m7zQTFRZKPdXV1SQnJxuFR0pKCjk5OY0+JjAwUAuOukESGhraaYcgdtawKCoq4sSJE/VC4cSJE5SXlzf4GHt7e6Kjo4mNjdWCoW/fvtjb27dx9UpjVFgozXb58mVSUlLqbadOnTKap78uOzs7oqKijFohhuseHh5t/A7aVkcOC71eT3p6er0WQkpKChcuNH5urL+/P926dSMmJsboMiQkRLUYLFxLwkINJejkPDw8tLPI66qurubcuXMNBklGRgZHjx7l6NGj9Z7Py8vLqBUSGRmJv78/fn5++Pn54ejo2FZvTbmKlJLi4mIuXrxIVlYW6enpRqFw4sQJysrKGnysnZ0dXbt2rRcKMTExuLq6tvE7UcxBhYXSIJ1OR0REBBEREUycONHoNkOXhCE86l7PyckhJyeHnTt3Nvi8Li4u+Pn54evrqwXI1Zuvry8+Pj7Y2tq2xVtt9wwBYAiBq6/X3dfQcau6/Pz86rUQOnvXo1JDhYXSYi4uLtpw3LqklFy4cMGoFXL27FntAysrK4uioiKKiooaXS+kLk9PzwaD5Op9np6eHa67o7S0tMkPfsP1q6eOuRbDqpK+vr7aMam6oeDm5taK70ppz9QxC6XNSCnJz883Co+6W9392dnZ9YZYNkan0+Hm5oaDgwP29vbXfdmc++zYsYO+fftSXl5OWVlZq1yWlJS0KADs7e21ADCEad3LutednZ3VUGlFo45ZKBZJCIG7uzvu7u5069btmvetrq4mJyenXog0FCyXL1/m8uXLbfQu2oadnV2jH/hX73NxcVEBoLQ6FRaKRdLpdNoHYlOuXLlCUVFRk9/aTfHNX6/XN9qKudGWjeHS0dFRBYBicVRYKO2enZ0ddnZ2bfJaHXnorKJcS8c6KqgoiqK0ChUWiqIoSpNUWCiKoihNUmGhKIqiNEmFhaIoitIkFRaKoihKk1RYKIqiKE1SYaEoiqI0qUPMDSWEKALU5FBKW/ACGl8xSlHalxgpZbMWN+8oZ3CnNHcyLEW5EUKIBPW3pnQUQoiE5t5XdUMpiqIoTVJhoSiKojSpo4TFh+YuQOk01N+a0pE0+++5QxzgVhRFUVpXR2lZKIqiKK1IhYWiKIrSJBUWiqIoSpPadVgIIVKFEOPNXYfSsdX+nZUJIYrrbH82d12K0lJCCOfav+dZdfa5CCHShBDTr/XYjnJSnqK0truklJvNXYSi3AgpZbEQ4hFghRDiJynlJeAtIEFK+e9rPVaFhaIoSicipdwkhFgPvCOE+ACYAfRs6nEqLBRFUTqf/wccA24BnpVSZjX1gHZ9zEJRFEVpOSllHnAUcARWN+cxKiwURVE6GSHEbCAM2AwsbM5jVDeUoihKJyKE8AH+j5pjFcnAUSHESinljms9riO0LGyEEPZ1NhWAiqIojXsXWCOl3CqlzASeB5YJIeyu9aCOEBYbgLI628tmrUZRFMVCCSGmADcDzxn2SSk/AjKAv1zzsWoiQUVRFKUpHaFloSiKorQyFRaKoihKk1RYKIqiKE1SYaEoiqI0SYWFoiiK0iQVFoqiKEqTVFgoHZ4Q4v+EEE/V+XmTEOKjOj8vFkI83QqvO0oIsfuqfdZCiItCiIAWPtdTQghH01aoKM2nwkLpDHYCwwGEEFaAF8ZTMg8HdrXC6+4AgoQQoXX2jQeOSikzWvhcT1Ez6VuzCSF0LXwNRWmUCgulM9gFDKu93hM4AhQJIdxrpzjoDhwQQvxFCLFPCHFECPGhqNFNCLHX8ERCiDAhxOHa6wOEEL8IIfbXtlb8676olFIPfAPMrLN7JrBKCOEkhPhECLFXCHFQCDG59jl1QohFtTUcEkL8UQjxBBAAbBVCbK29331CiMO199MmgqtdxW+xECKpzntWlBumzuBWOgUhxFlgFDAREEAgsBsoAN6UUo4QQnhIKS/X3v8L4Bsp5TohRCJwt5TyrBBiPmBDzUydvwCTpZSXhBD3ArdKKX931esOBJZJKfvVBlM60A14FjgmpVwhhOgC7AX6AXHAOGCmlLLKUJMQIhUYKKXMqe3C2gMMAPKAn4B3pJRrhBASuFdK+U1r/B6VzktNuqd0Fruo6W4aDvyDmrAYTk1Y7Ky9zxghxPPUdPd4UDPf/zpqWgf3Am/WXt4LxACxQLwQAkAHZF79olLKhNp1j2OoacH8VvvhPwGYJIR4tvau9kAINd1U70spq2off7mB9zII2Fa7JCZCiJXASGANUA18dx2/H0W5JhUWSmdhOG7Ri5puqHTgGaAQ+FQIYQ+8R82393QhxMvUfIADfA18K4RYDUgp5UkhRC9qjj00p6tnFTXdT91rr0NN62aalDKl7h1rg+dGlEspq2/0SRTlauqYhdJZ7ALuBC5LKatrv7F3oaZffxf/DYYcIYQzMN3wQCnlaWq+sf+ZmuAASAG8hRDDAIQQNkKIxtYxXgXMBsYCa2v3bQL+KGrTQQjRr3Z/PPCIYap9IYRH7f4iwKX2+l5glBDCq/Yg9n3UdIkpSqtRYaF0FoepGQW156p9BVLKHCllPrCMmlbHJmDfVY//mpoP/G8ApJQV1ATKwtqDyYnUjri6mpTyOFAC/CylLKnd/So1xz4OCSGO1v4M8BGQVrs/Cfif2v0fAj8KIQxrELwAbAWSgP1SSkMIKUqrUAe4FUVRlCaploWiKIrSJBUWiqIoSpNUWCiKoihNUmGhKIqiNEmFhaIoitIkFRaKoihKk1RYKIqiKE36/1gktXPM0rhgAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "gsr.ebands.plot();" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "advisory-advance", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/gmatteo/git_repos/pymatgen/pymatgen/symmetry/kpath.py:179: UserWarning:\n", + "\n", + "The input structure does not match the expected standard primitive! The path can be incorrect. Use at your own risk.\n", + "\n" + ] + }, + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plotly.com" + }, + "data": [ + { + "line": { + "color": "black", + "width": 2 + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "y": [ + -9.535786584476371, + -9.876086072577124, + -10.50248616041993, + -11.072135054815655, + -11.49997087419812, + -11.762095707628028, + -11.855854002139353, + -11.762377983295668, + -11.50477647913229, + -11.070113139712472, + -10.472375477678483, + -9.711907857213474, + -8.80627918610692, + -7.770717499465216 + ] + }, + { + "line": { + "color": "black", + "width": 2 + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "y": [ + -6.932268857216583, + -6.43466268058439, + -5.32246565612085, + -3.928375477089248, + -2.3943640811461293, + -0.8732321955292113, + -1.8810997204354862e-10, + -0.5570011558894024, + -1.6672108194971527, + -2.8989034584222813, + -4.182931950763718, + -5.430649177987346, + -6.638177513397373, + -7.770717499206782 + ] + }, + { + "line": { + "color": "black", + "width": 2 + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "y": [ + -1.205076152062217, + -1.1553086614693786, + -1.0090768426644035, + -0.7663867705309526, + -0.4526779027859842, + -0.14266808604246428, + -6.019984510885479e-11, + -0.3276142442992862, + -0.972216601358169, + -1.6064227733017695, + -2.136764772819509, + -2.5278823531194936, + -2.7654307093388297, + -2.844891372378396 + ] + }, + { + "line": { + "color": "black", + "width": 2 + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "y": [ + -1.2050761518987496, + -1.155308661315078, + -1.009076842522739, + -0.7663867703985989, + -0.4526779026646457, + -0.14266808591143487, + 0, + -0.3276142442072123, + -0.9722166012294071, + -1.606422773175796, + -2.136764772694111, + -2.5278823529902867, + -2.7654307092079202, + -2.84489137224668 + ] + }, + { + "line": { + "color": "black", + "width": 2 + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "y": [ + 1.3454389436664638, + 1.396036327425712, + 1.5542838024392251, + 1.8235759126039426, + 2.1779644141648093, + 2.49791994104946, + 2.5318280023996245, + 2.3196096023242694, + 1.832801345948508, + 1.3142687705394227, + 0.8827985310190627, + 0.6006801032754359, + 0.5243396805984153, + 0.6741757513882654 + ] + }, + { + "line": { + "color": "black", + "width": 2 + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "y": [ + 3.3661486562320615, + 3.4124944120844916, + 3.505955981163801, + 3.4860954395102723, + 3.1805995622616567, + 2.7431167271405847, + 2.5318280024990933, + 2.9732007681489527, + 3.924313282358483, + 3.566247236456473, + 2.5627516495996954, + 1.6902771019859726, + 1.0556641680571177, + 0.6741757521259233 + ] + }, + { + "line": { + "color": "black", + "width": 2 + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "y": [ + 3.3661486562843894, + 3.4124944121447474, + 3.505955981234978, + 3.4860954395923525, + 3.1805995623550043, + 2.7431167272535752, + 2.531828002567412, + 2.9732007682898125, + 3.9243132824601865, + 5.078702746089359, + 6.285304926098657, + 7.570282110475537, + 8.869605080905535, + 9.764149253744405 + ] + }, + { + "line": { + "color": "black", + "width": 2 + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13 + ], + "y": [ + 7.486496748336757, + 7.556828944477271, + 7.557970384259399, + 6.522346635844359, + 5.080395136037723, + 3.64439068026601, + 2.895410090535165, + 3.420376450984275, + 4.097951464863831, + 5.078702748883293, + 6.2853060058610595, + 7.57028255163697, + 8.86960516576719, + 9.764201394368893 + ] + }, + { + "marker": { + "color": "blue", + "line": { + "width": 2 + }, + "opacity": 0.9, + "size": 12 + }, + "mode": "markers", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 6, + 12 + ], + "y": [ + 0, + 0.5243396805984153 + ] + }, + { + "hoverinfo": "none", + "line": { + "width": 2 + }, + "marker": { + "color": "gray" + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 6, + 12, + null, + 10.908235801598831, + 12, + 10.83650190851499, + null + ], + "y": [ + 0, + 0.5243396805984153, + null, + 0.015371882878898568, + 0.5243396805984153, + 0.8362202268605036, + null + ] + }, + { + "marker": { + "color": "blue", + "line": { + "width": 2 + }, + "opacity": 0.9, + "size": 12 + }, + "mode": "markers", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 6, + 6 + ], + "y": [ + 0, + 2.5318280023996245 + ] + }, + { + "hoverinfo": "none", + "line": { + "width": 2 + }, + "marker": { + "color": "gray" + }, + "mode": "lines", + "name": "", + "showlegend": false, + "type": "scatter", + "x": [ + 6, + 6, + null, + 6.173187235251333, + 6, + 5.826812764748667, + null + ], + "y": [ + 0, + 2.5318280023996245, + null, + 2.0559999842088135, + 2.5318280023996245, + 2.0559999842088135, + null + ] + } + ], + "layout": { + "hovermode": false, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "font": { + "size": 12 + }, + "text": "Si₂: direct gap = 2.53, fundamental gap = 0.52 (eV)" + }, + "xaxis": { + "range": [ + 0, + 13 + ], + "tickfont": { + "size": 16 + }, + "ticktext": [ + "L", + "Γ", + "X" + ], + "tickvals": [ + 0, + 6, + 13 + ], + "title": { + "text": "Wave Vector" + } + }, + "yaxis": { + "range": [ + -7.5318280023996245, + 7.5318280023996245 + ], + "title": { + "text": "Energy (eV)" + } + } + } + }, + "text/html": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gsr.ebands.plotly(with_gaps=True);" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "announced-retirement", + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "\n", + "(function(root) {\n", + " function now() {\n", + " return new Date();\n", + " }\n", + "\n", + " var force = true;\n", + "\n", + " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", + " root._bokeh_onload_callbacks = [];\n", + " root._bokeh_is_loading = undefined;\n", + " }\n", + "\n", + " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", + " root._bokeh_timeout = Date.now() + 5000;\n", + " root._bokeh_failed_load = false;\n", + " }\n", + "\n", + " function run_callbacks() {\n", + " try {\n", + " root._bokeh_onload_callbacks.forEach(function(callback) {\n", + " if (callback != null)\n", + " callback();\n", + " });\n", + " } finally {\n", + " delete root._bokeh_onload_callbacks\n", + " }\n", + " console.debug(\"Bokeh: all callbacks have finished\");\n", + " }\n", + "\n", + " function load_libs(css_urls, js_urls, js_modules, callback) {\n", + " if (css_urls == null) css_urls = [];\n", + " if (js_urls == null) js_urls = [];\n", + " if (js_modules == null) js_modules = [];\n", + "\n", + " root._bokeh_onload_callbacks.push(callback);\n", + " if (root._bokeh_is_loading > 0) {\n", + " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", + " return null;\n", + " }\n", + " if (js_urls.length === 0 && js_modules.length === 0) {\n", + " run_callbacks();\n", + " return null;\n", + " }\n", + " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", + " root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n", + "\n", + " function on_load() {\n", + " root._bokeh_is_loading--;\n", + " if (root._bokeh_is_loading === 0) {\n", + " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", + " run_callbacks()\n", + " }\n", + " }\n", + "\n", + " function on_error() {\n", + " console.error(\"failed to load \" + url);\n", + " }\n", + "\n", + " for (var i = 0; i < css_urls.length; i++) {\n", + " var url = css_urls[i];\n", + " const element = document.createElement(\"link\");\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.rel = \"stylesheet\";\n", + " element.type = \"text/css\";\n", + " element.href = url;\n", + " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", + " document.body.appendChild(element);\n", + " }\n", + "\n", + " var skip = [];\n", + " if (window.requirejs) {\n", + " window.requirejs.config({'paths': {'tabulator': 'https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator'}});\n", + " window.requirejs.config({'paths': {'plotly': 'https://cdn.plot.ly/plotly-latest.min'}});\n", + " require([\"tabulator\", \"plotly\"], function(Tabulator,Plotly,) {\n", + " window.Tabulator = Tabulator;\n", + " window.Plotly = Plotly;\n", + " })\n", + " }\n", + " if (((window['tabulator'] !== undefined) && (!(window['tabulator'] instanceof HTMLElement))) || window.requirejs) {\n", + " var urls = ['https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.js', 'https://unpkg.com/moment@2.27.0/moment.js'];\n", + " for (var i = 0; i < urls.length; i++) {\n", + " skip.push(urls[i])\n", + " }\n", + " }\n", + " if (((window['Plotly'] !== undefined) && (!(window['Plotly'] instanceof HTMLElement))) || window.requirejs) {\n", + " var urls = ['https://cdn.plot.ly/plotly-latest.min.js'];\n", + " for (var i = 0; i < urls.length; i++) {\n", + " skip.push(urls[i])\n", + " }\n", + " }\n", + " for (var i = 0; i < js_urls.length; i++) {\n", + " var url = js_urls[i];\n", + " if (skip.indexOf(url) >= 0) { on_load(); continue; }\n", + " var element = document.createElement('script');\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.src = url;\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.head.appendChild(element);\n", + " }\n", + " for (var i = 0; i < js_modules.length; i++) {\n", + " var url = js_modules[i];\n", + " if (skip.indexOf(url) >= 0) { on_load(); continue; }\n", + " var element = document.createElement('script');\n", + " element.onload = on_load;\n", + " element.onerror = on_error;\n", + " element.async = false;\n", + " element.src = url;\n", + " element.type = \"module\";\n", + " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", + " document.head.appendChild(element);\n", + " }\n", + " if (!js_urls.length && !js_modules.length) {\n", + " on_load()\n", + " }\n", + " };\n", + "\n", + " function inject_raw_css(css) {\n", + " const element = document.createElement(\"style\");\n", + " element.appendChild(document.createTextNode(css));\n", + " document.body.appendChild(element);\n", + " }\n", + "\n", + " var js_urls = [\"https://code.jquery.com/jquery-3.4.1.min.js\", \"https://cdn.plot.ly/plotly-latest.min.js\", \"https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.js\", \"https://unpkg.com/moment@2.27.0/moment.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.1.min.js\", \"https://unpkg.com/@holoviz/panel@^0.11.3/dist/panel.min.js\"];\n", + " var js_modules = [];\n", + " var css_urls = [\"https://unpkg.com/tabulator-tables@4.9.3/dist/css/tabulator_simple.min.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/alerts.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/card.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/widgets.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/markdown.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/json.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/loading.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/dataframe.css\"];\n", + " var inline_js = [\n", + " function(Bokeh) {\n", + " inject_raw_css(\"\\n .bk.pn-loading.arcs:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiBub25lOyBkaXNwbGF5OiBibG9jazsgc2hhcGUtcmVuZGVyaW5nOiBhdXRvOyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4gIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjMyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZT0iI2MzYzNjMyIgc3Ryb2tlLWRhc2hhcnJheT0iNTAuMjY1NDgyNDU3NDM2NjkgNTAuMjY1NDgyNDU3NDM2NjkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+ICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxcyIga2V5VGltZXM9IjA7MSIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCI+PC9hbmltYXRlVHJhbnNmb3JtPiAgPC9jaXJjbGU+PC9zdmc+\\\")\\n }\\n \");\n", + " },\n", + " function(Bokeh) {\n", + " Bokeh.set_log_level(\"info\");\n", + " },\n", + " function(Bokeh) {} // ensure no trailing comma for IE\n", + " ];\n", + "\n", + " function run_inline_js() {\n", + " if ((root.Bokeh !== undefined) || (force === true)) {\n", + " for (var i = 0; i < inline_js.length; i++) {\n", + " inline_js[i].call(root, root.Bokeh);\n", + " }} else if (Date.now() < root._bokeh_timeout) {\n", + " setTimeout(run_inline_js, 100);\n", + " } else if (!root._bokeh_failed_load) {\n", + " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", + " root._bokeh_failed_load = true;\n", + " }\n", + " }\n", + "\n", + " if (root._bokeh_is_loading === 0) {\n", + " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", + " run_inline_js();\n", + " } else {\n", + " load_libs(css_urls, js_urls, js_modules, function() {\n", + " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", + " run_inline_js();\n", + " });\n", + " }\n", + "}(window));" + ], + "application/vnd.holoviews_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, js_modules, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n if (js_modules == null) js_modules = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls.length === 0 && js_modules.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length + js_modules.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n var skip = [];\n if (window.requirejs) {\n window.requirejs.config({'paths': {'tabulator': 'https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator'}});\n window.requirejs.config({'paths': {'plotly': 'https://cdn.plot.ly/plotly-latest.min'}});\n require([\"tabulator\", \"plotly\"], function(Tabulator,Plotly,) {\n window.Tabulator = Tabulator;\n window.Plotly = Plotly;\n })\n }\n if (((window['tabulator'] !== undefined) && (!(window['tabulator'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.js', 'https://unpkg.com/moment@2.27.0/moment.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n }\n if (((window['Plotly'] !== undefined) && (!(window['Plotly'] instanceof HTMLElement))) || window.requirejs) {\n var urls = ['https://cdn.plot.ly/plotly-latest.min.js'];\n for (var i = 0; i < urls.length; i++) {\n skip.push(urls[i])\n }\n }\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n if (skip.indexOf(url) >= 0) { on_load(); continue; }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n for (var i = 0; i < js_modules.length; i++) {\n var url = js_modules[i];\n if (skip.indexOf(url) >= 0) { on_load(); continue; }\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n element.type = \"module\";\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n if (!js_urls.length && !js_modules.length) {\n on_load()\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n var js_urls = [\"https://code.jquery.com/jquery-3.4.1.min.js\", \"https://cdn.plot.ly/plotly-latest.min.js\", \"https://unpkg.com/tabulator-tables@4.9.3/dist/js/tabulator.js\", \"https://unpkg.com/moment@2.27.0/moment.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.1.min.js\", \"https://unpkg.com/@holoviz/panel@^0.11.3/dist/panel.min.js\"];\n var js_modules = [];\n var css_urls = [\"https://unpkg.com/tabulator-tables@4.9.3/dist/css/tabulator_simple.min.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/alerts.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/card.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/widgets.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/markdown.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/json.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/loading.css\", \"https://unpkg.com/@holoviz/panel@0.11.3/dist/css/dataframe.css\"];\n var inline_js = [\n function(Bokeh) {\n inject_raw_css(\"\\n .bk.pn-loading.arcs:before {\\n background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiBub25lOyBkaXNwbGF5OiBibG9jazsgc2hhcGUtcmVuZGVyaW5nOiBhdXRvOyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4gIDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjMyIiBzdHJva2Utd2lkdGg9IjgiIHN0cm9rZT0iI2MzYzNjMyIgc3Ryb2tlLWRhc2hhcnJheT0iNTAuMjY1NDgyNDU3NDM2NjkgNTAuMjY1NDgyNDU3NDM2NjkiIGZpbGw9Im5vbmUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+ICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxcyIga2V5VGltZXM9IjA7MSIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCI+PC9hbmltYXRlVHJhbnNmb3JtPiAgPC9jaXJjbGU+PC9zdmc+\\\")\\n }\\n \");\n },\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, js_modules, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/javascript": [ + "\n", + "if ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n", + " window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n", + "}\n", + "\n", + "\n", + " function JupyterCommManager() {\n", + " }\n", + "\n", + " JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n", + " if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", + " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", + " comm_manager.register_target(comm_id, function(comm) {\n", + " comm.on_msg(msg_handler);\n", + " });\n", + " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", + " window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n", + " comm.onMsg = msg_handler;\n", + " });\n", + " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", + " google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n", + " var messages = comm.messages[Symbol.asyncIterator]();\n", + " function processIteratorResult(result) {\n", + " var message = result.value;\n", + " console.log(message)\n", + " var content = {data: message.data, comm_id};\n", + " var buffers = []\n", + " for (var buffer of message.buffers || []) {\n", + " buffers.push(new DataView(buffer))\n", + " }\n", + " var metadata = message.metadata || {};\n", + " var msg = {content, buffers, metadata}\n", + " msg_handler(msg);\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " return messages.next().then(processIteratorResult);\n", + " })\n", + " }\n", + " }\n", + "\n", + " JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n", + " if (comm_id in window.PyViz.comms) {\n", + " return window.PyViz.comms[comm_id];\n", + " } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n", + " var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n", + " var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n", + " if (msg_handler) {\n", + " comm.on_msg(msg_handler);\n", + " }\n", + " } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n", + " var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n", + " comm.open();\n", + " if (msg_handler) {\n", + " comm.onMsg = msg_handler;\n", + " }\n", + " } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n", + " var comm_promise = google.colab.kernel.comms.open(comm_id)\n", + " comm_promise.then((comm) => {\n", + " window.PyViz.comms[comm_id] = comm;\n", + " if (msg_handler) {\n", + " var messages = comm.messages[Symbol.asyncIterator]();\n", + " function processIteratorResult(result) {\n", + " var message = result.value;\n", + " var content = {data: message.data};\n", + " var metadata = message.metadata || {comm_id};\n", + " var msg = {content, metadata}\n", + " msg_handler(msg);\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " return messages.next().then(processIteratorResult);\n", + " }\n", + " }) \n", + " var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n", + " return comm_promise.then((comm) => {\n", + " comm.send(data, metadata, buffers, disposeOnDone);\n", + " });\n", + " };\n", + " var comm = {\n", + " send: sendClosure\n", + " };\n", + " }\n", + " window.PyViz.comms[comm_id] = comm;\n", + " return comm;\n", + " }\n", + " window.PyViz.comm_manager = new JupyterCommManager();\n", + " \n", + "\n", + "\n", + "var JS_MIME_TYPE = 'application/javascript';\n", + "var HTML_MIME_TYPE = 'text/html';\n", + "var EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\n", + "var CLASS_NAME = 'output';\n", + "\n", + "/**\n", + " * Render data to the DOM node\n", + " */\n", + "function render(props, node) {\n", + " var div = document.createElement(\"div\");\n", + " var script = document.createElement(\"script\");\n", + " node.appendChild(div);\n", + " node.appendChild(script);\n", + "}\n", + "\n", + "/**\n", + " * Handle when a new output is added\n", + " */\n", + "function handle_add_output(event, handle) {\n", + " var output_area = handle.output_area;\n", + " var output = handle.output;\n", + " if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", + " return\n", + " }\n", + " var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", + " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", + " if (id !== undefined) {\n", + " var nchildren = toinsert.length;\n", + " var html_node = toinsert[nchildren-1].children[0];\n", + " html_node.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var scripts = [];\n", + " var nodelist = html_node.querySelectorAll(\"script\");\n", + " for (var i in nodelist) {\n", + " if (nodelist.hasOwnProperty(i)) {\n", + " scripts.push(nodelist[i])\n", + " }\n", + " }\n", + "\n", + " scripts.forEach( function (oldScript) {\n", + " var newScript = document.createElement(\"script\");\n", + " var attrs = [];\n", + " var nodemap = oldScript.attributes;\n", + " for (var j in nodemap) {\n", + " if (nodemap.hasOwnProperty(j)) {\n", + " attrs.push(nodemap[j])\n", + " }\n", + " }\n", + " attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n", + " newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n", + " oldScript.parentNode.replaceChild(newScript, oldScript);\n", + " });\n", + " if (JS_MIME_TYPE in output.data) {\n", + " toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n", + " }\n", + " output_area._hv_plot_id = id;\n", + " if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n", + " window.PyViz.plot_index[id] = Bokeh.index[id];\n", + " } else {\n", + " window.PyViz.plot_index[id] = null;\n", + " }\n", + " } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", + " var bk_div = document.createElement(\"div\");\n", + " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", + " var script_attrs = bk_div.children[0].attributes;\n", + " for (var i = 0; i < script_attrs.length; i++) {\n", + " toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n", + " }\n", + " // store reference to server id on output_area\n", + " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", + " }\n", + "}\n", + "\n", + "/**\n", + " * Handle when an output is cleared or removed\n", + " */\n", + "function handle_clear_output(event, handle) {\n", + " var id = handle.cell.output_area._hv_plot_id;\n", + " var server_id = handle.cell.output_area._bokeh_server_id;\n", + " if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n", + " var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n", + " if (server_id !== null) {\n", + " comm.send({event_type: 'server_delete', 'id': server_id});\n", + " return;\n", + " } else if (comm !== null) {\n", + " comm.send({event_type: 'delete', 'id': id});\n", + " }\n", + " delete PyViz.plot_index[id];\n", + " if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n", + " var doc = window.Bokeh.index[id].model.document\n", + " doc.clear();\n", + " const i = window.Bokeh.documents.indexOf(doc);\n", + " if (i > -1) {\n", + " window.Bokeh.documents.splice(i, 1);\n", + " }\n", + " }\n", + "}\n", + "\n", + "/**\n", + " * Handle kernel restart event\n", + " */\n", + "function handle_kernel_cleanup(event, handle) {\n", + " delete PyViz.comms[\"hv-extension-comm\"];\n", + " window.PyViz.plot_index = {}\n", + "}\n", + "\n", + "/**\n", + " * Handle update_display_data messages\n", + " */\n", + "function handle_update_output(event, handle) {\n", + " handle_clear_output(event, {cell: {output_area: handle.output_area}})\n", + " handle_add_output(event, handle)\n", + "}\n", + "\n", + "function register_renderer(events, OutputArea) {\n", + " function append_mime(data, metadata, element) {\n", + " // create a DOM node to render to\n", + " var toinsert = this.create_output_subarea(\n", + " metadata,\n", + " CLASS_NAME,\n", + " EXEC_MIME_TYPE\n", + " );\n", + " this.keyboard_manager.register_events(toinsert);\n", + " // Render to node\n", + " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", + " render(props, toinsert[0]);\n", + " element.append(toinsert);\n", + " return toinsert\n", + " }\n", + "\n", + " events.on('output_added.OutputArea', handle_add_output);\n", + " events.on('output_updated.OutputArea', handle_update_output);\n", + " events.on('clear_output.CodeCell', handle_clear_output);\n", + " events.on('delete.Cell', handle_clear_output);\n", + " events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n", + "\n", + " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", + " safe: true,\n", + " index: 0\n", + " });\n", + "}\n", + "\n", + "if (window.Jupyter !== undefined) {\n", + " try {\n", + " var events = require('base/js/events');\n", + " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", + " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", + " register_renderer(events, OutputArea);\n", + " }\n", + " } catch(err) {\n", + " }\n", + "}\n" + ], + "application/vnd.holoviews_load.v0+json": "\nif ((window.PyViz === undefined) || (window.PyViz instanceof HTMLElement)) {\n window.PyViz = {comms: {}, comm_status:{}, kernels:{}, receivers: {}, plot_index: []}\n}\n\n\n function JupyterCommManager() {\n }\n\n JupyterCommManager.prototype.register_target = function(plot_id, comm_id, msg_handler) {\n if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n comm_manager.register_target(comm_id, function(comm) {\n comm.on_msg(msg_handler);\n });\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n window.PyViz.kernels[plot_id].registerCommTarget(comm_id, function(comm) {\n comm.onMsg = msg_handler;\n });\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n google.colab.kernel.comms.registerTarget(comm_id, (comm) => {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n console.log(message)\n var content = {data: message.data, comm_id};\n var buffers = []\n for (var buffer of message.buffers || []) {\n buffers.push(new DataView(buffer))\n }\n var metadata = message.metadata || {};\n var msg = {content, buffers, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n })\n }\n }\n\n JupyterCommManager.prototype.get_client_comm = function(plot_id, comm_id, msg_handler) {\n if (comm_id in window.PyViz.comms) {\n return window.PyViz.comms[comm_id];\n } else if (window.comm_manager || ((window.Jupyter !== undefined) && (Jupyter.notebook.kernel != null))) {\n var comm_manager = window.comm_manager || Jupyter.notebook.kernel.comm_manager;\n var comm = comm_manager.new_comm(comm_id, {}, {}, {}, comm_id);\n if (msg_handler) {\n comm.on_msg(msg_handler);\n }\n } else if ((plot_id in window.PyViz.kernels) && (window.PyViz.kernels[plot_id])) {\n var comm = window.PyViz.kernels[plot_id].connectToComm(comm_id);\n comm.open();\n if (msg_handler) {\n comm.onMsg = msg_handler;\n }\n } else if (typeof google != 'undefined' && google.colab.kernel != null) {\n var comm_promise = google.colab.kernel.comms.open(comm_id)\n comm_promise.then((comm) => {\n window.PyViz.comms[comm_id] = comm;\n if (msg_handler) {\n var messages = comm.messages[Symbol.asyncIterator]();\n function processIteratorResult(result) {\n var message = result.value;\n var content = {data: message.data};\n var metadata = message.metadata || {comm_id};\n var msg = {content, metadata}\n msg_handler(msg);\n return messages.next().then(processIteratorResult);\n }\n return messages.next().then(processIteratorResult);\n }\n }) \n var sendClosure = (data, metadata, buffers, disposeOnDone) => {\n return comm_promise.then((comm) => {\n comm.send(data, metadata, buffers, disposeOnDone);\n });\n };\n var comm = {\n send: sendClosure\n };\n }\n window.PyViz.comms[comm_id] = comm;\n return comm;\n }\n window.PyViz.comm_manager = new JupyterCommManager();\n \n\n\nvar JS_MIME_TYPE = 'application/javascript';\nvar HTML_MIME_TYPE = 'text/html';\nvar EXEC_MIME_TYPE = 'application/vnd.holoviews_exec.v0+json';\nvar CLASS_NAME = 'output';\n\n/**\n * Render data to the DOM node\n */\nfunction render(props, node) {\n var div = document.createElement(\"div\");\n var script = document.createElement(\"script\");\n node.appendChild(div);\n node.appendChild(script);\n}\n\n/**\n * Handle when a new output is added\n */\nfunction handle_add_output(event, handle) {\n var output_area = handle.output_area;\n var output = handle.output;\n if ((output.data == undefined) || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n return\n }\n var id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n if (id !== undefined) {\n var nchildren = toinsert.length;\n var html_node = toinsert[nchildren-1].children[0];\n html_node.innerHTML = output.data[HTML_MIME_TYPE];\n var scripts = [];\n var nodelist = html_node.querySelectorAll(\"script\");\n for (var i in nodelist) {\n if (nodelist.hasOwnProperty(i)) {\n scripts.push(nodelist[i])\n }\n }\n\n scripts.forEach( function (oldScript) {\n var newScript = document.createElement(\"script\");\n var attrs = [];\n var nodemap = oldScript.attributes;\n for (var j in nodemap) {\n if (nodemap.hasOwnProperty(j)) {\n attrs.push(nodemap[j])\n }\n }\n attrs.forEach(function(attr) { newScript.setAttribute(attr.name, attr.value) });\n newScript.appendChild(document.createTextNode(oldScript.innerHTML));\n oldScript.parentNode.replaceChild(newScript, oldScript);\n });\n if (JS_MIME_TYPE in output.data) {\n toinsert[nchildren-1].children[1].textContent = output.data[JS_MIME_TYPE];\n }\n output_area._hv_plot_id = id;\n if ((window.Bokeh !== undefined) && (id in Bokeh.index)) {\n window.PyViz.plot_index[id] = Bokeh.index[id];\n } else {\n window.PyViz.plot_index[id] = null;\n }\n } else if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n var bk_div = document.createElement(\"div\");\n bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n var script_attrs = bk_div.children[0].attributes;\n for (var i = 0; i < script_attrs.length; i++) {\n toinsert[toinsert.length - 1].childNodes[1].setAttribute(script_attrs[i].name, script_attrs[i].value);\n }\n // store reference to server id on output_area\n output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n }\n}\n\n/**\n * Handle when an output is cleared or removed\n */\nfunction handle_clear_output(event, handle) {\n var id = handle.cell.output_area._hv_plot_id;\n var server_id = handle.cell.output_area._bokeh_server_id;\n if (((id === undefined) || !(id in PyViz.plot_index)) && (server_id !== undefined)) { return; }\n var comm = window.PyViz.comm_manager.get_client_comm(\"hv-extension-comm\", \"hv-extension-comm\", function () {});\n if (server_id !== null) {\n comm.send({event_type: 'server_delete', 'id': server_id});\n return;\n } else if (comm !== null) {\n comm.send({event_type: 'delete', 'id': id});\n }\n delete PyViz.plot_index[id];\n if ((window.Bokeh !== undefined) & (id in window.Bokeh.index)) {\n var doc = window.Bokeh.index[id].model.document\n doc.clear();\n const i = window.Bokeh.documents.indexOf(doc);\n if (i > -1) {\n window.Bokeh.documents.splice(i, 1);\n }\n }\n}\n\n/**\n * Handle kernel restart event\n */\nfunction handle_kernel_cleanup(event, handle) {\n delete PyViz.comms[\"hv-extension-comm\"];\n window.PyViz.plot_index = {}\n}\n\n/**\n * Handle update_display_data messages\n */\nfunction handle_update_output(event, handle) {\n handle_clear_output(event, {cell: {output_area: handle.output_area}})\n handle_add_output(event, handle)\n}\n\nfunction register_renderer(events, OutputArea) {\n function append_mime(data, metadata, element) {\n // create a DOM node to render to\n var toinsert = this.create_output_subarea(\n metadata,\n CLASS_NAME,\n EXEC_MIME_TYPE\n );\n this.keyboard_manager.register_events(toinsert);\n // Render to node\n var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n render(props, toinsert[0]);\n element.append(toinsert);\n return toinsert\n }\n\n events.on('output_added.OutputArea', handle_add_output);\n events.on('output_updated.OutputArea', handle_update_output);\n events.on('clear_output.CodeCell', handle_clear_output);\n events.on('delete.Cell', handle_clear_output);\n events.on('kernel_ready.Kernel', handle_kernel_cleanup);\n\n OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n safe: true,\n index: 0\n });\n}\n\nif (window.Jupyter !== undefined) {\n try {\n var events = require('base/js/events');\n var OutputArea = require('notebook/js/outputarea').OutputArea;\n if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n register_renderer(events, OutputArea);\n }\n } catch(err) {\n }\n}\n" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": {}, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.holoviews_exec.v0+json": "", + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    \n", + "
    \n", + "" + ], + "text/plain": [ + "Tabs\n", + " [0] Row\n", + " [0] Bokeh(PreText)\n", + " [1] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Column\n", + " [0] Checkbox(name='show gaps')\n", + " [1] Checkbox(name='Set Fermie to VBM')\n", + " [2] Button(button_type='primary', name='Plot e-bands')\n", + " [2] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str)\n", + " [1] ParamMethod(method)\n", + " [2] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(options=['jsmol', 'vesta', ...], value='vesta')\n", + " [2] Button(button_type='primary', name='View structure')\n", + " [3] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str)\n", + " [1] Column\n", + " [0] Column(sizing_mode='stretch_width')\n", + " [0] MyMarkdown(str)\n", + " [1] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", + " [1] Divider()\n", + " [2] MyMarkdown(str)\n", + " [3] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", + " [1] Divider()\n", + " [4] MyMarkdown(str)\n", + " [5] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", + " [1] Divider()\n", + " [6] Accordion(sizing_mode='stretch_width')\n", + " [0] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= idx frac_coords...)\n", + " [1] Divider()\n", + " [1] ParamMethod(method)" + ] + }, + "execution_count": 5, + "metadata": { + "application/vnd.holoviews_exec.v0+json": { + "id": "1003" + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "abilab.abipanel()\n", + "gsr.get_panel()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "formed-destiny", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "================================= File Info =================================\n", + "Name: trf2_3_DDB\n", + "Directory: /Users/gmatteo/git_repos/abipy/abipy/data/refs/alas_phonons\n", + "Size: 52.99 kb\n", + "Access Time: Tue Apr 20 01:16:13 2021\n", + "Modification Time: Wed Mar 20 16:53:35 2019\n", + "Change Time: Fri Apr 16 01:21:13 2021\n", + "\n", + "================================= Structure =================================\n", + "Full Formula (Al1 As1)\n", + "Reduced Formula: AlAs\n", + "abc : 3.970101 3.970101 3.970101\n", + "angles: 60.000000 60.000000 60.000000\n", + "Sites (2)\n", + " # SP a b c\n", + "--- ---- ---- ---- ----\n", + " 0 Al 0 0 0\n", + " 1 As 0.25 0.25 0.25\n", + "\n", + "Abinit Spacegroup: spgid: 0, num_spatial_symmetries: 24, has_timerev: True, symmorphic: False\n", + "\n", + "================================== DDB Info ==================================\n", + "\n", + "Number of q-points in DDB: 8\n", + "guessed_ngqpt: [4 4 4] (guess for the q-mesh divisions made by AbiPy)\n", + "ecut = 3.000000, ecutsm = 0.000000, nkpt = 256, nsym = 24, usepaw = 0\n", + "nsppol 1, nspinor 1, nspden 1, ixc = 1, occopt = 1, tsmear = 0.040000\n", + "\n", + "Has total energy: False, Has forces: False\n", + "Has stress tensor: False\n", + "\n", + "Has (at least one) atomic pertubation: True\n", + "Has (at least one diagonal) electric-field perturbation: True\n", + "Has (at least one) Born effective charge: True\n", + "Has (all) strain terms: False\n", + "Has (all) internal strain terms: False\n", + "Has (all) piezoelectric terms: False\n" + ] + } + ], + "source": [ + "ddb = abilab.abiopen(abidata.ref_file(\"refs/alas_phonons/trf2_3_DDB\"))\n", + "print(ddb)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "medieval-share", + "metadata": {}, + "outputs": [ + { + "data": {}, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.holoviews_exec.v0+json": "", + "text/html": [ + "
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    \n", + "
    \n", + "" + ], + "text/plain": [ + "Tabs\n", + " [0] Row\n", + " [0] Bokeh(PreText)\n", + " [1] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] IntInput(name='Nqsmall', start=1, value=10)\n", + " [2] IntInput(name='ndivsm', start=1, value=5)\n", + " [3] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", + " [4] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", + " [5] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", + " [6] Select(name='Lo to splitting', options=OrderedDict([('automatic',...]), value='automatic')\n", + " [7] Select(name='Dos method', options=OrderedDict([('tetra', ...]), value='tetra')\n", + " [8] Toggle(name='Stacked PJDOS', value=True)\n", + " [9] RangeSlider(end=1000, name='T-range', step=20, value=(0.0, 300.0))\n", + " [10] Button(button_type='primary', name='Plot Bands and DOS')\n", + " [11] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str, name='warning')\n", + " [1] ParamMethod(method)\n", + " [2] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", + " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", + " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", + " [4] FloatInput(name='Gamma ev', start=1e-20, value=0.0001)\n", + " [5] Button(button_type='primary', name='Compute')\n", + " [6] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str, name='warning')\n", + " [1] ParamMethod(method)\n", + " [3] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", + " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", + " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", + " [4] FloatInput(name='Gamma ev', start=1e-20, value=0.0001)\n", + " [5] RangeSlider(name='Frequency range (eV)', step=0.001, value=(0.0, 0.1))\n", + " [6] Button(button_type='primary', name='Plot eps0(omega)')\n", + " [7] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str, name='warning')\n", + " [1] ParamMethod(method)\n", + " [4] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", + " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", + " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", + " [4] Button(button_type='primary', name='Calculate speed o...)\n", + " [5] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str, name='warning')\n", + " [1] ParamMethod(method)\n", + " [5] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] IntInput(name='Nqsmall', start=1, value=10)\n", + " [2] IntInput(name='ndivsm', start=1, value=5)\n", + " [3] Select(name='Dos method', options=OrderedDict([('tetra', ...]), value='tetra')\n", + " [4] Button(button_type='primary', name='Compute phonons w...)\n", + " [5] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str, name='warning')\n", + " [1] ParamMethod(method)\n", + " [6] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", + " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", + " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", + " [4] Select(name='Dos method', options=OrderedDict([('tetra', ...]), value='tetra')\n", + " [5] LiteralInput(name='nsmalls (python list)', type=, value=[10, 20, 30])\n", + " [6] RangeSlider(end=1000, name='T-range', step=20, value=(0.0, 300.0))\n", + " [7] Button(button_type='primary', name='Plot PHDos vs Qmesh')\n", + " [8] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str, name='warning')\n", + " [1] ParamMethod(method)\n", + " [7] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", + " [2] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", + " [3] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", + " [4] Select(name='Lo to splitting', options=OrderedDict([('automatic',...]), value='automatic')\n", + " [5] IntInput(name='ndivsm', start=1, value=5)\n", + " [6] Select(name='Dos method', options=OrderedDict([('tetra', ...]), value='tetra')\n", + " [7] Button(button_type='primary', name='Plot PHbands w...)\n", + " [8] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str, name='warning')\n", + " [1] ParamMethod(method)\n", + " [8] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(name='Asr', options=OrderedDict([('0', ...]), value=2)\n", + " [2] Select(name='Dipdip', options=OrderedDict([('0', ...]), value=1)\n", + " [3] Select(name='Chneut', options=OrderedDict([('0', ...]), value=1)\n", + " [4] Button(button_type='primary', name='Compute IFC(R)')\n", + " [5] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(None)\n", + " [1] Markdown(str, name='warning')\n", + " [1] ParamMethod(method)\n", + " [9] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(options=['jsmol', 'vesta', ...], value='vesta')\n", + " [2] Button(button_type='primary', name='View structure')\n", + " [3] Column\n", + " [0] Divider()\n", + " [1] Accordion\n", + " [0] Markdown(str)\n", + " [1] Markdown(str, name='warning')\n", + " [1] Column\n", + " [0] Column(sizing_mode='stretch_width')\n", + " [0] MyMarkdown(str)\n", + " [1] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", + " [1] Divider()\n", + " [2] MyMarkdown(str)\n", + " [3] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", + " [1] Divider()\n", + " [4] MyMarkdown(str)\n", + " [5] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", + " [1] Divider()\n", + " [6] Accordion(sizing_mode='stretch_width')\n", + " [0] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= idx frac_coords\n", + "0 ...)\n", + " [1] Divider()\n", + " [1] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= idx frac_coords...)\n", + " [1] Divider()\n", + " [1] ParamMethod(method)\n", + " [10] Row\n", + " [0] Column\n", + " [0] MyMarkdown(str)\n", + " [1] Select(name='Units', options=OrderedDict([('eV', ...]), value='eV')\n", + " [2] IntInput(name='Mpi procs', start=1, value=1)\n", + " [3] IntInput(name='Verbose', start=0)\n", + " [1] Column(sizing_mode='scale_width')\n", + " [0] MyMarkdown(str)\n", + " [1] Column(sizing_mode='stretch_width')\n", + " [0] DataFrame(disabled=True, sizing_mode='stretch_width', value= ...)\n", + " [1] Row(sizing_mode='scale_width')\n", + " [0] FileDownload(callback=.to_..., filename='data.xlsx', label='Download data.xlsx')\n", + " [1] FileDownload(callback=.to_..., filename='data.tex', label='Download data.tex')\n", + " [2] FileDownload(callback=.to_..., filename='data.md', label='Download data.md')\n", + " [3] FileDownload(callback=.to_..., filename='data.json', label='Download data.json')\n", + " [2] Divider()" + ] + }, + "execution_count": 7, + "metadata": { + "application/vnd.holoviews_exec.v0+json": { + "id": "1221" + } + }, + "output_type": "execute_result" + } + ], + "source": [ + "ddb.get_panel()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "varied-father", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "env3.8", + "language": "python", + "name": "env3.8" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/binder/get_newenv.sh b/binder/get_newenv.sh new file mode 100644 index 000000000..47e70bbe4 --- /dev/null +++ b/binder/get_newenv.sh @@ -0,0 +1,8 @@ +#!/bin/band +# WARNING: Must be executed on a linux box. +conda env remove -n abipy_binder +conda create -n abipy_binder python=3.8 +conda install --file ../requirements.txt -y -c conda-forge +conda install --file ../requirements-optional.txt -y -c conda-forge +conda install abinit -c conda-forge +conda env export > environment.yml diff --git a/binder/postBuild b/binder/postBuild index 3ed3d3ae3..dc875d928 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -7,9 +7,18 @@ # Notebooks w/ extensions that auto-run code must be "trusted" to work the first time #jupyter trust index.ipynb -# Install abipy scripts and configuration files. -python setup.py install +# Install AbiPy scripts and configuration files. +#python setup.py install +python -c "import abipy" +if [ $? -ne 0 ]; then + echo "Installing abipy with pip" + #pip install abipy + pip install git+https://github.com/abinit/abipy.git@develop +fi + mkdir -p ${HOME}/.abinit/abipy -cp abipy/data/managers/travis_scheduler.yml ${HOME}/.abinit/abipy/scheduler.yml -cp abipy/data/managers/travis_manager.yml ${HOME}/.abinit/abipy/manager.yml -#./dev_scripts/pyclean.py . \ No newline at end of file +cd ${HOME}/.abinit/abipy +curl https://raw.githubusercontent.com/abinit/abipy/develop/abipy/data/managers/travis_scheduler.yml -o scheduler.yml +curl https://raw.githubusercontent.com/abinit/abipy/develop/abipy/data/managers/travis_manager.yml -o manager.yml + +#./dev_scripts/pyclean.py . diff --git a/dash_app/app.py b/dash_app/app.py deleted file mode 100755 index d439caf2a..000000000 --- a/dash_app/app.py +++ /dev/null @@ -1,472 +0,0 @@ -#!/usr/bin/env python - -import base64 -import datetime -import tempfile -import io -import os -import dash -import dash_core_components as dcc -import dash_html_components as html -import dash_bootstrap_components as dbc -from dash_dangerously_set_inner_html import DangerouslySetInnerHTML - -from dash.dependencies import Input, Output, State -from abipy import abilab -import abipy.data as abidata -from abipy.data.ucells import structure_from_ucell - - -def copy_to_clipboard_button(id): - return DangerouslySetInnerHTML(f""" -""") - - -def div_with_exc(exc): - return html.Div([dbc.Jumbotron([html.H2("There was an error: %s" % str(exc), - className="text-danger")])]) - - -app = dash.Dash(__name__, - external_stylesheets=[dbc.themes.BOOTSTRAP], - # external JavaScript files - external_scripts=[ - "https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js", - #"https://code.jquery.com/jquery-3.4.1.min.js" - ], - # these meta_tags ensure content is scaled correctly on different devices - # see: https://www.w3schools.com/css/css_rwd_viewport.asp for more - meta_tags=[{"name": "viewport", "content": "width=device-width, initial-scale=1"}] -) - -# Since we're adding callbacks to elements that don't exist in the app.layout, -# Dash will raise an exception to warn us that we might be doing something wrong. -# In this case, we're adding the elements through a callback, so we can ignore the exception. -app.config.suppress_callback_exceptions = True - -# we use the Row and Col components to construct the sidebar header -# it consists of a title, and a toggle, the latter is hidden on large screens -sidebar_header = dbc.Row( - [ - dbc.Col(html.H1("Actions", className="display-4")), - dbc.Col( - [ - html.Button( - # use the Bootstrap navbar-toggler classes to style - html.Span(className="navbar-toggler-icon"), - className="navbar-toggler", - # the navbar-toggler classes don't set color - style={ - "color": "rgba(0,0,0,.5)", - "border-color": "rgba(0,0,0,.1)", - }, - id="navbar-toggle", - ), - html.Button( - # use the Bootstrap navbar-toggler classes to style - html.Span(className="navbar-toggler-icon"), - className="navbar-toggler", - # the navbar-toggler classes don't set color - style={ - "color": "rgba(0,0,0,.5)", - "border-color": "rgba(0,0,0,.1)", - }, - id="sidebar-toggle", - ), - ], - # the column containing the toggle will be only as wide as the - # toggle, resulting in the toggle being right aligned - width="auto", - # vertically align the toggle in the center - align="center", - ), - ] -) - -pages = [ - dbc.NavLink("Upload Structure", href="/page-1", id="page-1-link"), - dbc.NavLink("Convert Structure", href="/page-2", id="page-2-link"), - dbc.NavLink("Symmetry Analysis", href="/page-3", id="page-3-link"), - dbc.NavLink("Kpath", href="/page-4", id="page-4-link"), - dbc.NavLink("Build GS Input", href="/page-5", id="page-5-link"), - #dbc.NavLink("Build Ebands Input",href="/page-5", id="page-5-link"), - #dbc.NavLink("Build DFPT Input",href="/page-5", id="page-5-link"), - #dbc.NavLink("Build G0W0 Input",href="/page-5", id="page-5-link"), - dbc.NavLink("About", href="/page-6", id="page-6-link"), -] -num_pages = len(pages) - -sidebar = html.Div([ - sidebar_header, - # we wrap the horizontal rule and short blurb in a div that can be hidden on a small screen - html.Div([ - html.Hr(), - #html.P("Actions:", className="lead"), - ], id="blurb"), - # use the Collapse component to animate hiding / revealing links - dbc.Collapse(dbc.Nav(pages, vertical=True, pills=True), id="collapse"), - ], - id="sidebar", -) - -#example_structure = structure_from_ucell("Si") - -app.layout = html.Div([ - dcc.Location(id="url"), - sidebar, - html.Div(id="page-content"), - # Hidden div inside the app that stores the intermediate value - # https://dash.plot.ly/sharing-data-between-callbacks - html.Div(id='json_structure', style={'display': 'none'}) -]) - -modal_help = html.Div([ - dbc.Button("Help", className="btn-sm", id="open_modal"), - dbc.Modal( - [dbc.ModalHeader("How to upload a Structure"), - dbc.ModalBody(dcc.Markdown(""" -Use this interface to upload a file containing structural information. -Then select one of the other `actions` in the menu bar to operate on the selected structure. - -The file extension (e.g. `.cif`) defines the format used to interpret the data. -All the formats supported by AbiPy and pymatgen are supported. -This includes Abinit netcdf files with the `.nc` extension, DDB files with the `_DDB` extension, -as well as Abinit input files with the `.abi` extension and Abinit output files with the `.abo` extension. -Use `abiopen.py --help` to get full list of file extensions supported. -""")), - dbc.ModalFooter( - dbc.Button("Close", id="close", className="ml-auto") - ), - ], id="modal_help", - ), -]) - - -@app.callback( - Output("modal_help", "is_open"), - [Input("open_modal", "n_clicks"), Input("close", "n_clicks")], - [State("modal_help", "is_open")], -) -def toggle_modal(n1, n2, is_open): - if n1 or n2: - return not is_open - return is_open - - -structure_upload = html.Div([ - dcc.Upload(id='upload-data', - children=html.Div(['Drag and Drop or ', html.A('Select Files')]), - style={ - 'width': '100%', - 'height': '60px', - 'lineHeight': '60px', - 'borderWidth': '1px', - 'borderStyle': 'dashed', - 'borderRadius': '5px', - 'textAlign': 'center', - 'margin': '10px' - }, - # Don't allow multiple files to be uploaded - multiple=False, - ), - modal_help, -]) - - -init_structure_layout = dbc.Container([ - dbc.Row([dbc.Col([html.H3("Upload file:"), structure_upload], md=4), - dbc.Col([html.Div(id='print_structure')]), - ]), - ], className="mt-4", -) - - -input_groups = html.Div([ - dbc.InputGroup([ - dbc.InputGroupAddon("SpinMode:", addon_type="prepend"), - dbc.Select(id="spin_mode", options=[ - {'label': "unpolarized", 'value': 'unpolarized'}, - {'label': "polarized", 'value': 'polarized'}, - {"label": "anti-ferromagnetic", "value": "afm"}, - {"label": "non-collinear with magnetism", "value": "spinor"}, - {"label": "non-collinear, no magnetism", "value": "spinor_nomag"}, - ], value="unpolarized"), - ]), - dbc.InputGroup([ - dbc.InputGroupAddon("Kppra:", addon_type="prepend"), - dcc.Input(id="kppra", type="number", min=0, step=1000, value=1000), - ]), - dcc.RadioItems(id="gs_type", - options=[ - {'label': 'SCF', 'value': 'scf'}, - {'label': 'Relax', 'value': 'relax'}, - ], value='scf' - ) -]) - -#'nosmearing': 1, -#'fermi_dirac': 3, -#'marzari4': 4, -#'marzari5': 5, -#'methfessel': 6, -#'gaussian': 7} - -input_page_layout = html.Div([ - dbc.Row([dbc.Col(input_groups), dbc.Col(html.Div(id='gs_input_page_output'))]), -]) - -convert_format_input = dbc.InputGroup([ - dbc.InputGroupAddon("Output Format:", addon_type="prepend"), - dbc.Select(id="convert_format", options=[ - {"label": k, "value": k} for k in "abivars,cif,xsf,poscar,qe,siesta,wannier90,cssr,json".split(",") - ], value="cif"), -]) - -convert_page_layout = html.Div([ - dbc.Row([dbc.Col(convert_format_input), - dbc.Col(html.Div(id='convert_page_output'))]), -]) - -symmetry_options_input = dbc.InputGroup([ - dbc.InputGroupAddon("spglib symprec (A):", addon_type="prepend"), - dbc.Input(id="spglib_symprec", type="number", min=1e-6, step=0.02, value=0.01), - dbc.InputGroupAddon("spglib angdeg (degrees):", addon_type="prepend"), - dbc.Input(id="spglib_angtol", type="number", min=1e-6, step=1, value=5), - #dbc.InputGroupAddon("Abinit tolsym:", addon_type="prepend"), - #dbc.Input(id="abinit_tolsym", type="number", min=1e-12, step=1e-1, value=1e-8), -]) - - -symmetry_analysis_page_layout = html.Div([ - dbc.Row(dbc.Col(symmetry_options_input)), - dbc.Row(html.Div(id='symmetry_page_output')), -]) - - -@app.callback(Output('gs_input_page_output', 'children'), - [Input('spin_mode', 'value'), - Input('kppra', 'value'), - Input('gs_type', 'value'), - ], - [State("json_structure", "children")], - ) -def update_gs_input(spin_mode, kppra, gs_type, json_structure): - if not json_structure: return structure_undefined_error() - - structure = abilab.mjson_loads(json_structure) - pseudos = os.path.join(abidata.pseudo_dir, "14si.pspnc") - - # Build input for GS calculation - # ecut must be specified because this pseudopotential does not provide hints for ecut. - try: - gs_inp = abilab.gs_input( - structure, pseudos, - kppa=kppra, ecut=8, spin_mode=spin_mode, smearing=None) - gs_inp.pop_vars(("charge", "chksymbreak")) - - if gs_type == "relax": - gs_inp.set_vars(optcell=2, ionmov=2, ecutsm=0.5, dilatmx=1.05) - - #multi = ebands_input(structure, pseudos, - # kppa=kppra, nscf_nband=None, ndivsm=15, - # ecut=8, pawecutdg=None, scf_nband=None, accuracy="normal", spin_mode=spin_mode, - # smearing="fermi_dirac:0.1 eV", charge=None, dos_kppa=None): - - gs_inp.set_mnemonics(False) - except Exception as exc: - return html.Div([dbc.Jumbotron([html.H2("There was an error processing this file. %s" % str(exc), - className="text-danger")])]) - - s = DangerouslySetInnerHTML(gs_inp._repr_html_()) - - return html.Div([ - copy_to_clipboard_button(id="copy_gsinput"), - html.Hr(), - html.Pre(s, id="copy_gsinput"), # className="text-sm-left", - ]) - - -@app.callback(Output('convert_page_output', 'children'), - [Input('convert_format', 'value')], - [State("json_structure", "children")], - ) -def update_convert_page(output_format, json_structure): - if not json_structure: return structure_undefined_error() - structure = abilab.mjson_loads(json_structure) - return html.Div([ - copy_to_clipboard_button(id="copy_convert_output"), - html.Hr(), - html.Pre(structure.convert(fmt=output_format), id="copy_convert_output"), - ]) - - -@app.callback(Output('symmetry_page_output', 'children'), - [Input('spglib_symprec', 'value'), - Input('spglib_angtol', 'value'), - #Input('abinit_tolsym', 'value'), - ], - [State("json_structure", "children")], - ) -def update_symmetry_page(spglib_symprec, spglib_angtol, json_structure): - if not json_structure: return structure_undefined_error() - structure = abilab.mjson_loads(json_structure) - - #print(f"symprec: {spglib_symprec}, spglib_angtol: {spglib_angtol}, abinit_tolsym: {abinit_tolsym}") - s = structure.spget_summary(symprec=spglib_symprec, angle_tolerance=spglib_angtol) - return html.Div([html.Br(), html.Pre(s)]) - - -kpath_options_input = dbc.InputGroup([ - dbc.InputGroupAddon("Output Format:", addon_type="prepend"), - dbc.Select(id="kpath_fmt", - options=[{"label": k, "value": k} for k in ("abinit", "wannier90", "siesta")], value="abinit"), - dbc.InputGroupAddon("Line Density:", addon_type="prepend"), - dbc.Input(id="kpath_line_density", min=1, step=10, value=10, type="number"), -]) - - -kpath_page_layout = html.Div([ - dbc.Row(dbc.Col(html.Div(kpath_options_input))), - dbc.Row(html.Div(id='kpath_page_output')), -]) - - -@app.callback(Output('kpath_page_output', 'children'), - [Input('kpath_fmt', 'value'), - Input('kpath_line_density', 'value'), - ], - [State("json_structure", "children")], - ) -def update_kpath_page(kpath_fmt, kpath_line_density, json_structure): - if not json_structure: return structure_undefined_error() - structure = abilab.mjson_loads(json_structure) - - #print(f"kpath_fmt: {kpath_fmt}, kpath_line_density: {kpath_line_density}") - try: - s = structure.get_kpath_input_string(fmt=kpath_fmt, line_density=int(kpath_line_density)) - except Exception as exc: - return div_with_exc(exc) - - return html.Div([ - html.Br(), - copy_to_clipboard_button(id="kpath_string"), - html.Hr(), - html.Pre(s, id="kpath_string") - ]) - - -def structure_undefined_error(): - return html.Div([ - html.Br(), - dbc.Jumbotron([html.H2("Use `Select Structure` to upload the file", className="text-danger")]) - ]) - - -@app.callback([Output('print_structure', 'children'), - Output('json_structure', 'children')], - [Input('upload-data', 'contents')], - [State('upload-data', 'filename'), - State('upload-data', 'last_modified')]) -def structure_from_upload(contents, filename, date): - #print("filename, date", filename, date) - content_type, content_string = contents.split(',') - - if filename.endswith(".nc"): - mode = "wb" - decoded = base64.b64decode(content_string) - else: - mode = "wt" - decoded = base64.b64decode(content_string).decode('utf-8') - - try: - with tempfile.TemporaryDirectory() as tmp_dirname: - tmp_path = os.path.join(tmp_dirname, filename) - with open(tmp_path, mode) as fh: - fh.write(decoded) - structure = abilab.Structure.from_file(tmp_path) - - return html.Div([html.Br(), html.Pre(str(structure))]), structure.to_json() - - except Exception as exc: - return html.Div([dbc.Jumbotron([html.H2("There was an error processing this file. %s" % str(exc), - className="text-danger")])]), None - - -about_page_layout = html.Div([ - dcc.Markdown(""" -This web app is built on the -[AbiPy](https://github.com/abinit/abipy), -[pymatgen](https://github.com/materialsproject/pymatgen) and -[spglib](https://atztogo.github.io/spglib/) libraries. - -Note that this tool provides a simplified interface to the AbiPy API. -For a more flexible interface, please use the AbiPy objects to generate input files and workflows. - -**Privacy**: We do not store any files or data on our server. -Any uploaded files is analyzed and the results presented immediately. -""") -]) - -@app.callback(Output("page-content", "children"), - [Input("url", "pathname")]) -def render_page_content(pathname): - - if pathname in ["/", "/page-1"]: - return init_structure_layout - elif pathname == "/page-2": - return convert_page_layout - elif pathname == "/page-3": - return symmetry_analysis_page_layout - elif pathname == "/page-4": - return kpath_page_layout - elif pathname == "/page-5": - return input_page_layout - elif pathname == "/page-6": - return about_page_layout - - # If the user tries to reach a different page, return a 404 message - return dbc.Jumbotron([html.H1("404: Not found", className="text-danger"), - html.Hr(), - html.P(f"The pathname {pathname} was not recognised..."), - ]) - - -# this callback uses the current pathname to set the active state of the -# corresponding nav link to true, allowing users to tell see page they are on -@app.callback( - [Output(f"page-{i}-link", "active") for i in range(1, num_pages + 1)], - [Input("url", "pathname")], -) -def toggle_active_links(pathname): - if pathname == "/": - # Treat page 1 as the homepage / index - out = num_pages * [False] - out[0] = True - return out - return [pathname == f"/page-{i}" for i in range(1, num_pages + 1)] - - -@app.callback( - Output("sidebar", "className"), - [Input("sidebar-toggle", "n_clicks")], - [State("sidebar", "className")], -) -def toggle_classname(n, classname): - if n and classname == "": - return "collapsed" - return "" - - -@app.callback( - Output("collapse", "is_open"), - [Input("navbar-toggle", "n_clicks")], - [State("collapse", "is_open")], -) -def toggle_collapse(n, is_open): - if n: - return not is_open - return is_open - - -if __name__ == "__main__": - app.run_server(debug=True) diff --git a/dash_app/assets/extra.js b/dash_app/assets/extra.js deleted file mode 100644 index 341db9f34..000000000 --- a/dash_app/assets/extra.js +++ /dev/null @@ -1,2 +0,0 @@ -// -new ClipboardJS('.btn'); diff --git a/dash_app/assets/responsive-sidebar.css b/dash_app/assets/responsive-sidebar.css deleted file mode 100644 index 6e3d20aac..000000000 --- a/dash_app/assets/responsive-sidebar.css +++ /dev/null @@ -1,96 +0,0 @@ -#sidebar { - text-align: center; - padding: 2rem 1rem; - background-color: #f8f9fa; -} - -#sidebar h2 { - text-align: left; - margin-bottom: 0; -} - -/* Hide the blurb on a small screen */ -#blurb { - display: none; -} - -#sidebar-toggle { - display: none; -} - -#collapse *:first-child { - margin-top: 1rem; -} - -/* add the three horizontal bars icon for the toggle */ -.navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} - -#page-content { - padding: 2rem 1rem; -} - -@media (min-width: 48em) { - #sidebar { - position: fixed; - top: 0; - left: 0; - bottom: 0; - width: 20rem; - text-align: left; - transition: margin 0.3s ease-in-out, padding 0.3s ease-in-out; - } - - #sidebar-toggle { - display: inline-block; - position: relative; - top: 0; - transition: top 0.3s ease-in-out; - } - - /* add negative margin to sidebar to achieve the collapse */ - #sidebar.collapsed { - margin-left: -15.5rem; - padding-right: 0.5rem; - } - - /* move the sidebar toggle up to the top left corner */ - #sidebar.collapsed #sidebar-toggle { - top: -2rem; - } - - /* also adjust margin of page content */ - #sidebar.collapsed ~ #page-content { - margin-left: 6.5rem; - } - - /* move all contents of navbar other than header (containing toggle) further - off-screen */ - #sidebar.collapsed > *:not(:first-child) { - margin-left: -6rem; - margin-right: 6rem; - } - - /* reveal the blurb on a large screen */ - #blurb { - display: block; - } - - /* Hide the toggle on a large screen */ - #navbar-toggle { - display: none; - } - - #collapse { - display: block; - } - - /* set margins of the main content so that it doesn't overlap the sidebar */ - #page-content { - margin-left: 22rem; - margin-right: 2rem; - transition: margin-left 0.3s ease-in-out; - } -} - diff --git a/dev_scripts/abibatch.py b/dev_scripts/abibatch.py deleted file mode 100755 index b7341f5e6..000000000 --- a/dev_scripts/abibatch.py +++ /dev/null @@ -1,189 +0,0 @@ -#!/usr/bin/env python -""" -This script allows the user to submit multiple flows -""" -from __future__ import unicode_literals, division, print_function, absolute_import - -import sys -import os -import argparse - -from pymatgen.io.abinit.launcher import BatchLauncher - - -def main(): - def str_examples(): - examples = """\ -Usage example:\n - - abibatch.py sub => Submit all flows located in the current directory - abibatch.py sub flowdir_si_* => Use shell wild cards to select flow directories - abibatch.py load batch_dir => Load BatchLauncher object from batch_dir and show the status of the flows. - - Options for developers: - - abirun.py prof ABIRUN_ARGS => to profile abirun.py -""" - return examples - - def show_examples_and_exit(err_msg=None, error_code=1): - """Display the usage of the script.""" - sys.stderr.write(str_examples()) - if err_msg: sys.stderr.write("Fatal Error\n" + err_msg + "\n") - sys.exit(error_code) - - # Build the main parser. - parser = argparse.ArgumentParser(epilog=str_examples(), formatter_class=argparse.RawDescriptionHelpFormatter) - - parser.add_argument('-v', '--verbose', default=0, action='count', # -vv --> verbose=2 - help='verbose, can be supplied multiple times to increase verbosity') - - parser.add_argument('--loglevel', default="ERROR", type=str, - help="set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") - - #parser.add_argument('flowdir', nargs="?", help=("File or directory containing the ABINIT flow" - # "If not given, the first flow in the current workdir is selected")) - - timelimit_parser = argparse.ArgumentParser(add_help=False) - timelimit_parser.add_argument("-t", '--timelimit', default=None, help=("Time limit for batch script. " - "Accept int with seconds or string with time given in the slurm convention: " - "`days-hours:minutes:seconds`. If timelimit is None, the default value specified" - " in the `batch_adapter` entry of `manager.yml` is used.")) - - # Create the parsers for the sub-commands - subparsers = parser.add_subparsers(dest='command', help='sub-command help', description="Valid subcommands") - - # Subparser for submit. - p_submit = subparsers.add_parser('sub', parents=[timelimit_parser], help="Find all flows in dir and submit them") - - p_submit.add_argument("-d", '--dry-run', default=False, action="store_true", help="Dry run mode") - p_submit.add_argument("-w", '--workdir', default=None, help="The workdir of the BatchLauncher") - p_submit.add_argument('paths', nargs="*", default=".", help=("Directories containing the object." - "Use current working directory if not specified")) - - # Subparser for resubmit. - p_resubmit = subparsers.add_parser('resub', parents=[timelimit_parser], help="Find all flows in dir and submit them") - p_resubmit.add_argument("-d", '--dry-run', default=False, action="store_true", help="Dry run mode") - p_resubmit.add_argument('top', help="File or directory containing the object") - - # Subparser for status. - p_status = subparsers.add_parser('status', help="Load object from pickle file and show status") - p_status.add_argument('top', help="File or directory containing the object") - p_status.add_argument('-s', '--summary', default=False, action="store_true", help="Print short version with status counters.") - - p_version = subparsers.add_parser('version', help="Show version number and exit.") - - # Subparser for info. - #p_load = subparsers.add_parser('info', help="Load object from pickle file and show info on the flows..") - #p_load.add_argument('top', help="File or directory containing the object") - - # Parse command line. - try: - options = parser.parse_args() - except Exception as exc: - show_examples_and_exit(error_code=1) - - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) - - retcode = 0 - - if options.command == "version": - from abipy.core.release import version - print(version) - return 0 - - elif options.command == "sub": - #print("paths", options.paths) - workdir = options.workdir - if workdir is None: - workdir = "batch_launcher" - - if os.path.exists(workdir): - msg = ("Directory %s already exists. Cannot overwrite" % workdir + - "Use -w option to specify a not existent directory if you are generating a new BatchLauncher." - "Use abibatch status to inspect the status of an already existing BatchLauncher." - ) - raise RuntimeError(msg) - - batch = BatchLauncher.from_dir(options.paths, workdir=workdir, name=None) - if options.timelimit: - batch.set_timelimit(options.timelimit) - - print(batch.to_string()) - - if not batch.flows: - print("Empty list of flows! Returning") - return 0 - - job = batch.submit(verbose=options.verbose, dry_run=options.dry_run) - if job.retcode: - print("Batch job submission failed. See batch directory for errors") - else: - print("Batch job has been submitted") - - elif options.command == "resub": - batch = BatchLauncher.pickle_load(options.top) - batch.show_summary() - - if options.timelimit: - batch.set_timelimit(options.timelimit) - - job = batch.submit(verbose=options.verbose, dry_run=options.dry_run) - if job.retcode: - print("Batch job submission failed. See batch directory for errors") - else: - print("Batch job has been submitted") - - elif options.command == "status": - batch = BatchLauncher.pickle_load(options.top) - - # Select the method to call. - show_func = batch.show_status if not options.summary else batch.show_summary - show_func(verbose=options.verbose) - - else: - raise RuntimeError("Don't know what to do with command %s!" % options.command) - - return retcode - - -if __name__ == "__main__": - retcode = 0 - do_prof, do_tracemalloc = 2* [False] - try: - do_prof = sys.argv[1] == "prof" - do_tracemalloc = sys.argv[1] == "tracemalloc" - if do_prof or do_tracemalloc: sys.argv.pop(1) - except Exception: - pass - - if do_prof: - import pstats, cProfile - cProfile.runctx("main()", globals(), locals(), "Profile.prof") - s = pstats.Stats("Profile.prof") - s.strip_dirs().sort_stats("time").print_stats() - - elif do_tracemalloc: - # Requires py3.4 - import tracemalloc - tracemalloc.start() - - retcode = main() - - snapshot = tracemalloc.take_snapshot() - top_stats = snapshot.statistics('lineno') - - print("[Top 10]") - for stat in top_stats[:10]: - print(stat) - else: - sys.exit(main()) - - #open_hook.print_open_files() - sys.exit(retcode) diff --git a/dev_scripts/abiml_md.py b/dev_scripts/abiml_md.py new file mode 100755 index 000000000..59a1e7135 --- /dev/null +++ b/dev_scripts/abiml_md.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +import sys +import os + +from abipy.flowtk.qutils import SlurmJobArray + + +def get_slurm_header(conda_env): + # IMPORTANT: You need customize the slurm options below according to your machine. + #conda_env = os.environ['CONDA_DEFAULT_ENV'] + #print(f"Slurm script will be executed in {conda_env=}") + + slurm_header = f"""\ +#!/bin/bash + +#SBATCH --account=battab +#SBATCH --job-name=abiml_md +#SBATCH --time=0-1:0:00 +#SBATCH --partition=batch +#SBATCH --nodes=1 # 1 node has 128 cores +#SBATCH --ntasks-per-node=1 +#SBATCH --cpus-per-task=1 +#SBATCH --mem-per-cpu=4000 + +export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK +ulimit -s unlimited + +# Important: This is the conda environment providing the NN potential(s) nn_names +source $HOME/.bashrc +conda activate {conda_env} +""" + return slurm_header + + +def main(): + filepath = "LLZO_cubic.vasp" + nn_names_env = {"mace_mp": "mace_mp"} + temperature_list = [600, 800, 1000, 1200] + steps = 4000 + steps = 100 + + print(f"""\ +Performing MD calculations with the following parameters: + +{filepath=} +{nn_names_env=} +{temperature_list=} +{steps=} +""") + + arr_options = [] + for nn_name, conda_env in nn_names_env.items(): + slurm_header = get_slurm_header(conda_env) + for temperature in temperature_list: + workdir = f"nn-{nn_name}_T-{temperature}" + opts = f"{filepath} --nn-name {nn_name} --temperature {temperature} --timestep 1 \ + --loginterval 100 --steps {steps} --ensemble nvt -w {workdir}" + arr_options.append(opts) + + job_array = SlurmJobArray(slurm_header, "abiml.py md", arr_options) + job_array.sbatch("job_array.sh") + + +if __name__ == "__main__": + main() diff --git a/dev_scripts/abiml_neb.py b/dev_scripts/abiml_neb.py new file mode 100755 index 000000000..8fdfe4421 --- /dev/null +++ b/dev_scripts/abiml_neb.py @@ -0,0 +1,139 @@ +cat run_neb.py +#!/usr/bin/env python + +from pathlib import Path +import sys +import os +import json +import numpy as np +import pandas as pd + +from monty.os.path import find_exts +from abipy.tools.iotools import make_executable + +from abipy.flowtk.qutils import SlurmJobArray + +NN_NAMES = ["chgnet", "m3gnet", "matgl"] + +TOP = Path(os.path.dirname(os.path.realpath(__file__))) + +VERBOSE = 0 + + +def run(): + # IMPORTANT: Please customize the slurm options according to your machine. + conda_env = os.environ['CONDA_DEFAULT_ENV'] + print(f"Slurm script will be executed in {conda_env=}") + + header = f"""\ +#!/bin/bash + +#SBATCH --account=battab +#SBATCH --job-name=abiml_neb +#SBATCH --time=0-1:0:00 +#SBATCH --partition=batch +#SBATCH --nodes=1 # 1 node has 128 cores +#SBATCH --ntasks-per-node=1 +#SBATCH --cpus-per-task=1 +#SBATCH --mem-per-cpu=4000 + +export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK +ulimit -s unlimited + +# Important: This is the conda environment providing the NN potential(s) +conda activate {conda_env} +""" + npaths = 3 + + print(f"""\ +Performing NEB calculations with the following parameters: + +{npaths=} +{NN_NAMES=} +""") + + arr_options = [] + for nn_name in NN_NAMES: + for i in range(npaths): + dirpath = Path(f"path{i+1}") + workdir = dirpath / nn_name + ini_vasp = str(dirpath / "ini.vasp") + fin_vasp = str(dirpath / "fin.vasp") + opts = f"{ini_vasp} {fin_vasp} --nn-name {nn_name} -w {str(workdir)}" + arr_options.append(opts) + + command = "abiml.py neb" + job_array = SlurmJobArray(header, command, arr_options) + job_array.sbatch("job_array.sh") + + +def process(): + """Post-process the results.""" + json_paths = find_exts(TOP, "neb_data.json") + neb_data_list = [] + for path in json_paths: + if VERBOSE: print("About to read json data from", path) + parts = path.split(os.sep) + path_index, nn_name = parts[-3], parts[-2] + path_index = int(path_index.replace("path", "")) + if VERBOSE: print(parts, "\n", path_index, nn_name) + with open(path, "rt") as fh: + d = json.load(fh) + d["path"] = path_index + d["nn_name"] = nn_name + neb_data_list.append(d) + + # Sort dict by path. + neb_data_list = sorted(neb_data_list, key=lambda d: d["path"]) + + keys = [ + "nn_name", + "path", + "barrier_with_fit", + "barrier_without_fit", + "energy_change_with_fit", + "energy_change_without_fit", + ] + + d_list = [] + for d in neb_data_list: + d_list.append({k: d[k] for k in keys}) + + df = pd.DataFrame(d_list) + #df.to_csv("XXX_ML_barriers.csv") + print(df) + + from abipy.tools.plotting import get_axarray_fig_plt + ax_list, fig, plt = get_axarray_fig_plt( + None, nrows=1, ncols=3, sharex=True, sharey=True, squeeze=False) + ax_list = ax_list.ravel() + cmap = plt.get_cmap("jet") + fontsize = 8 + + for ix, (ax, nn_name) in enumerate(zip(ax_list, NN_NAMES)): + my_data_list = [d for d in neb_data_list if d["nn_name"] == nn_name] + my_data_list = sorted(my_data_list, key=lambda d: d["path"]) + + for i, data in enumerate(my_data_list): + enes = np.array(data["energies_images"]) + ax.plot(enes - enes[0], label=f"path{i+1}", color=cmap(i/len(my_data_list))) + + ax.set_title(nn_name) + ax.set_xlabel('Image index', fontsize=fontsize) + ax.set_ylabel('$\Delta$ energy [eV]', fontsize=fontsize) + ax.legend(loc="best", shadow=True, fontsize=fontsize) + + fig.suptitle("K2Cu3Ge5O14") + plt.show() + + +if __name__ == "__main__": + cmd = sys.argv[1] + if cmd == "md_gen": + md_generate(sys.argv[2]) + elif cmd == "run": + run() + elif cmd == "process": + process() + else: + raise ValueError(f"Invalid {cmd=}") diff --git a/dev_scripts/abiq.py b/dev_scripts/abiq.py deleted file mode 100755 index 723ebc943..000000000 --- a/dev_scripts/abiq.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python -""" -This script retrieve information on a job in the queue -""" -from __future__ import unicode_literals, division, print_function, absolute_import - -import sys -import os -import argparse - -from pymatgen.io.abinit.qjobs import QueueJob -from abipy.core.release import __version__ - -def main(): - def str_examples(): - examples = """\ -Usage example:\n - - abiq.py job_id => Get info on the job from its job identifier -""" - return examples - - def show_examples_and_exit(err_msg=None, error_code=1): - """Display the usage of the script.""" - sys.stderr.write(str_examples()) - if err_msg: sys.stderr.write("Fatal Error\n" + err_msg + "\n") - sys.exit(error_code) - - # Build the main parser. - parser = argparse.ArgumentParser(epilog=str_examples(), formatter_class=argparse.RawDescriptionHelpFormatter) - - #parser.add_argument('-v', '--verbose', default=0, action='count', # -vv --> verbose=2 - # help='verbose, can be supplied multiple times to increase verbosity') - - parser.add_argument('-V', '--version', action='version', version="%(prog)s version " + __version__) - parser.add_argument('--loglevel', default="ERROR", type=str, - help="set the loglevel. Possible values: CRITICAL, ERROR (default), WARNING, INFO, DEBUG") - - parser.add_argument('--qtype', default="pbspro", help="Queue Type.") - parser.add_argument('job_id', help="Job Indentifier.") - - # Parse command line. - try: - options = parser.parse_args() - except Exception as exc: - show_examples_and_exit(error_code=1) - - # loglevel is bound to the string value obtained from the command line argument. - # Convert to upper case to allow the user to specify --loglevel=DEBUG or --loglevel=debug - import logging - numeric_level = getattr(logging, options.loglevel.upper(), None) - if not isinstance(numeric_level, int): - raise ValueError('Invalid log level: %s' % options.loglevel) - logging.basicConfig(level=numeric_level) - - retcode = 0 - - job = QueueJob.from_qtype_and_id(options.qtype, int(options.job_id)) - #print(job) - - print("get_info", job.get_info()) - #print("get_stats", job.get_stats()) - #print("estimated_start_time", job.estimated_start_time()) - print(job) - - return retcode - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/dev_scripts/conda_get.sh b/dev_scripts/conda_get.sh deleted file mode 100755 index fd216b916..000000000 --- a/dev_scripts/conda_get.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -set -e # exit on first error, -v print each command - -# Install conda with travis: https://conda.io/docs/travis.html -if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then - curl -o miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh; -else - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh; -fi - -bash miniconda.sh -b -p ${HOME}/miniconda -export PATH="${HOME}/miniconda/bin:${PATH}" -hash -r - -conda config --set always_yes yes --set changeps1 yes -conda update -q conda -# Useful for debugging any issues with conda -conda info -a -conda config --add channels conda-forge -echo "Installing abinit from abinit channel in abinit-environment..." -conda create -q -n abinit-environment python=${TRAVIS_PYTHON_VERSION} -source activate abinit-environment -conda install -y -c abinit abinit=${ABINIT_VERSION} -abinit --version -abinit --build - -echo "Creating test-environment for python stack..." -conda create -q -n test-environment python=${TRAVIS_PYTHON_VERSION} -source activate test-environment diff --git a/dev_scripts/conda_install.sh b/dev_scripts/conda_install.sh deleted file mode 100755 index edc8ab98f..000000000 --- a/dev_scripts/conda_install.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -set -e # exit on first error - -echo "Installing bader executable (http://theory.cm.utexas.edu/henkelman/code/bader/) from matsci ..." -conda install -y -c matsci bader -conda install -c abinit apscheduler==2.1.0 -#pip install apscheduler==2.1.0 - -echo "Installing requirements listed requirements.txt and requirements-optional.txt ..." -# https://github.com/ContinuumIO/anaconda-issues/issues/542 -conda install -y -c anaconda setuptools -conda install nomkl -conda install -y --file ./requirements.txt -conda install -y --file ./requirements-optional.txt -conda install -y -c conda-forge graphviz python-graphviz - -echo "Installation completed" diff --git a/dev_scripts/deploy_abigui.sh b/dev_scripts/deploy_abigui.sh new file mode 100755 index 000000000..ff4e195ab --- /dev/null +++ b/dev_scripts/deploy_abigui.sh @@ -0,0 +1,34 @@ +#!/bin/bash +#set -e # exit on first error +#set -ev # exit on first error, print each command +#set -x # or set -o xtrace expands variables and prints a little + sign before the line + +#echo "Running preliminary tests for Abipy with Abinit..." +#echo "PMG_MAPI_KEY: foobar" > ${HOME}/.pmgrc.yaml + +env_name="abigui" +echo "Creating ${env_name} conda environment from scratch..." + +conda create -n ${env_name} -y python=3.9 +#source activate ${env_name} +conda activate ${env_name} + +pip install -r ./requirements.txt +pip install -r ./requirements-optional.txt +python setup.py install + +#conda install abinit -c conda-forge + +list_of_repos=( + ONCVPSP-PBE-SR-PDv0.4 + ATOMPAW-LDA-JTHv1.1 +) + +for repo in "${list_of_repos[@]}"; do + echo "Installing pseudopotential repo: " ${repo} + abips.py install ${repo} +done + +echo "Installation completed." +serve_cmd="abigui.py --num_procs 4 --has-remote-server --max_size_mb=150" +echo "Now you can start the sever with e.g.:\n\n\t${serve_cmd}" diff --git a/dev_scripts/fftprof.py b/dev_scripts/fftprof.py index c6eda3c1b..e7709d20c 100755 --- a/dev_scripts/fftprof.py +++ b/dev_scripts/fftprof.py @@ -3,8 +3,6 @@ Python interface to fftprof. Provides objects to benchmark the FFT libraries used by ABINIT and plot the results with matplotlib. """ -from __future__ import print_function, division, unicode_literals, absolute_import - import sys from abipy.tools.fftprof import FFTBenchmark diff --git a/dev_scripts/mlrun.py b/dev_scripts/mlrun.py new file mode 100755 index 000000000..6b5dc8ada --- /dev/null +++ b/dev_scripts/mlrun.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python +""" +Script to perform structural relaxations with ML + ABINIT +""" +from __future__ import annotations + +import sys +import os +import click +import numpy as np + +from ase.atoms import Atoms +from ase.build import bulk +from abipy.core.structure import Structure +from abipy.ml.aseml import get_atoms, ase_optimizer_cls, CORRALGO +from abipy.ml.ml_relax import RelaxationProfiler + + +ASE_OPTIMIZERS = ase_optimizer_cls("__all__") + + +def add_relax_opts(f): + """Add CLI options for structural relaxations.""" + # fmax (float): total force tolerance for relaxation convergence. + # Here fmax is a sum of force and stress forces. Defaults to 0.1. + f = click.option("--relax-mode", "-r", default="cell", show_default=True, type=click.Choice(["no", "ions", "cell"]), + help='Relaxation mode.')(f) + f = click.option("--fmax", default=0.005, type=float, show_default=True, + help='Stopping criterion in eV/A')(f) + f = click.option("--steps", default=500, type=int, show_default=True, + help="Max number of steps for ASE relaxation.")(f) + f = click.option("--optimizer", "-o", default="BFGS", show_default=True, type=click.Choice(ASE_OPTIMIZERS), + help="ASE optimizer class.")(f) + return f + + +def add_workdir_verbose_opts(f): + """Add workdir and verbose options to CLI subcommand.""" + f = click.option("--workdir", "-w", default=None, type=str, + help="Working directory. If not specified, a temporary directory is created.")(f) + f = click.option('-v', '--verbose', count=True, help="Verbosity level")(f) + return f + + +@click.command() +@click.argument("filepath", type=str) +@click.option("--nn-name", "-nn", default="chgnet", show_default=True, + type=click.Choice(["m3gnet", "matgl", "chgnet"]), help='ML potential') +@click.option("-c", "--corr-algo_str", default="delta", show_default=True, + type=click.Choice(CORRALGO._member_names_), help='Correction algorithm') +@click.option("-algo","--algorithm", default="old", type=str, show_default=True, help="String used to test algorithms... ") + +@add_relax_opts +@click.option("-k", "--kppa", default=1000, type=float, show_default=True, + help="Defines the sampling of BZ mesh (k-points per atom)") +@click.option("--rattle", default=0.0, type=float, show_default=True, help="Displace atoms randomly with stdev.") +@click.option("-sv", "--scale-volume", default=1.0, type=float, show_default=True, help="Scale input volume.") +@click.option("-n","--mpi-nprocs", default=2, type=int, show_default=True, help="Number of MPI processes to run ABINIT") +@click.option("-xc", "--xc-name", default="PBE", show_default=True, type=click.Choice(["PBE", "PBEsol", "LDA"]), + help="XC functional.") +@click.option("-m","--mpi-runner", default="mpirun", type=str, show_default=True, help="String used to invoke the MPI runner. ") +@add_workdir_verbose_opts +def main(filepath, nn_name, corr_algo_str,algorithm, + relax_mode, fmax, steps, optimizer, + kppa, rattle, scale_volume, mpi_nprocs, xc_name, mpi_runner, + workdir, verbose, + ): + + import warnings + warnings.simplefilter("ignore") + + # Get pseudos + from abipy.flowtk.psrepos import get_oncvpsp_pseudos + pseudos = get_oncvpsp_pseudos(xc_name=xc_name, version="0.4") + + if os.path.exists(filepath): + # Read structure from file. + structure = Structure.from_file(filepath) + + elif filepath.startswith("__mp-"): + print(f"Fetching structure for mp-id {filepath[2:]} from the materials project database.") + structure = Structure.from_mpid(filepath[2:]) + + if abs(scale_volume - 1.0) > 0.0: + print(f"Scaling input volume by {scale_volume=}") + structure = structure.scale_lattice(scale_volume * structure.lattice.volume) + + # Convert to ASE atoms + atoms = get_atoms(structure) + + if rattle: + print("Displacing atoms randomly with stdev=", rattle) + atoms.rattle(stdev=abs(rattle), seed=42) + + print("Using corr_algo:", corr_algo_str) + corr_algo = CORRALGO.from_string(corr_algo_str) + prof = RelaxationProfiler(atoms, pseudos, corr_algo, algorithm, xc_name, kppa, relax_mode, fmax, mpi_nprocs, + steps=steps, verbose=verbose, optimizer=optimizer, nn_name=nn_name, mpi_runner=mpi_runner) + prof.run(workdir=workdir) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/dev_scripts/pyclean.py b/dev_scripts/pyclean.py index 20e2c370c..5cf620c72 100755 --- a/dev_scripts/pyclean.py +++ b/dev_scripts/pyclean.py @@ -2,15 +2,14 @@ """ This script remove all pyc files and all __pycache__ directory. """ -from __future__ import print_function, division, unicode_literals - +from __future__ import annotations import sys import os import shutil -def rm_pycaches(top): +def rm_pycaches(top: str) -> None: count = 0 for dirpath, dirnames, filenames in os.walk(top): for d in dirnames: @@ -23,7 +22,7 @@ def rm_pycaches(top): print("Removed %d __pycache__ directories" % count) -def rm_pycfiles(top): +def rm_pycfiles(top: str) -> int: count = 0 for dirpath, dirnames, filenames in os.walk(top): for f in filenames: @@ -36,6 +35,7 @@ def rm_pycfiles(top): print("Removed %d .pyc files" % count) return count + if __name__ == "__main__": if len(sys.argv) == 1: top = "." diff --git a/dev_scripts/run_tuna.sh b/dev_scripts/run_tuna.sh new file mode 100755 index 000000000..b98abb7a6 --- /dev/null +++ b/dev_scripts/run_tuna.sh @@ -0,0 +1,3 @@ +pip install tuna +python -X importtime -c "import abipy" 2> abipy_import.log +tuna abipy_import.log diff --git a/docs/Makefile b/docs/Makefile index 720452b3b..faca0b1c3 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -2,8 +2,10 @@ # # You can set these variables from the command line. -SPHINXOPTS = -j1 -SPHINXBUILD = sphinx-build +#SPHINXOPTS = -j6 +SPHINXOPTS = +#SPHINXBUILD = sphinx-build +SPHINXBUILD = sphinx-build -v PAPER = BUILDDIR = _build @@ -47,6 +49,8 @@ clean: html: ./generate_rst_files.py + rm -rf ../abipy/examples/flows/flow_* + export READTHEDOCS=1 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." diff --git a/docs/_static/plotly_logo.png b/docs/_static/plotly_logo.png new file mode 100644 index 000000000..21ceafdf9 Binary files /dev/null and b/docs/_static/plotly_logo.png differ diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html new file mode 100644 index 000000000..116fe9367 --- /dev/null +++ b/docs/_templates/layout.html @@ -0,0 +1,7 @@ +{%- extends "!layout.html" %} + +{%- block scripts %} + + {{ super() }} +{%- endblock %} + diff --git a/docs/abiref.bib b/docs/abiref.bib new file mode 100644 index 000000000..76ffc10e2 --- /dev/null +++ b/docs/abiref.bib @@ -0,0 +1,9030 @@ +% Encoding: UTF-8 +%comment{This file was created with betterbib v3.3.0.} +@article{Testlink2019, + author = {builbot, B}, + doi = {10.1137/060661624}, + number = {5}, + pages = {2224-2239}, + source = {Crossref}, + url = {http://dx.doi.orgg/10.1137/060661624}, + volume = {29}, + journal = {SIAM J. Sci. Comput.}, + publisher = {Society for Industrial \& Applied Mathematics (SIAM)}, + title = {Block Locally Optimal Preconditioned Eigenvalue Xolvers {(BLOPEX)} in Hypre and {PETSc}}, + issn = {1064-8275, 1095-7197}, + year = {2019}, + month = jan, +} + +@article{Testlink2019a, + author = {Allen, P. B. and Cardona, M.}, + doi = {10.1103/physrevb.27.4760}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = apr, + number = {8}, + pages = {4760-4769}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Temperature dependence of the direct gap of Si and Ge}, + url = {https://doi.org/10.1102/physrevb.27.4760}, + volume = {27}, + year = {1983}, +} + +@article{Testlink2019b, + author = {Allen, P. B. and Berlijn, T. and Casavant, D. A. and Soler, J. M.}, + doi = {10.1103/physrevb.87.085322}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = feb, + number = {8}, + pages = {085322}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Recovering hidden Bloch character: {Unfolding} electrons, phonons, and slabs}, + url = {https://doi.org/10.1103/physrevb.87.085323}, + volume = {87}, + year = {2013}, +} + +@article{Cazzaniga2010, + Author = {Marco Cazzaniga and Lucia Caramella and Nicola Manini and Giovanni Onida}, + Journal = {Phys. Rev. B}, + Pages = {035104}, + Title = {Ab initio intraband contributions to the optical properties of metals}, + Volume = {82}, + Year = {2010}, + url = {http://link.aps.org/doi/10.1103/PhysRevB.82.035104}, +} + +@article{Duane1987, + author = {S. Duane and A.D. Kennedy and B. J. Pendleton and D. Roweth}, + title = {Hybrid Monte Carlo}, + journal = {Phys. Lett. B}, + year = {1987}, + pages = {216}, + volume = {195}, + url = {https://doi.org/10.1016/0370-2693(87)91197-X}, +} + +@article{Prokhorenko2018, + author = {S. Prokhorenko and K. Kalke and Y. Nahas and L. Bellaiche}, + title = {Large scale hybrid Monte Carlo simulations for structure and property prediction}, + journal = {npj Comput. Mater.}, + year = {2018}, + pages = {80}, + volume = {4}, + url = {https://doi.org/10.1038/s41524-018-0137-0}, +} + + +@article{Stengel2016a, + author = {Stengel, Massimiliano}, + doi = {10.1103/PhysRevB.93.245107}, + issn = {2469-9950}, + journal = {Physical Review B}, + month = {jun}, + number = {24}, + pages = {245107}, + publisher = {American Physical Society}, + title = {Unified \emph{ab initio} formulation of flexoelectricity and strain-gradient elasticity}, + url = {http://link.aps.org/doi/10.1103/PhysRevB.93.245107}, + volume = {93}, + year = {2016} +} + +@article{Stengel2014, + author = {Stengel, Massimiliano}, + doi = {10.1103/PhysRevB.90.201112}, + issn = {1098-0121}, + journal = {Physical Review B}, + month = {nov}, + number = {20}, + pages = {201112}, + publisher = {American Physical Society}, + title = {Surface control of flexoelectricity}, + url = {http://link.aps.org/doi/10.1103/PhysRevB.90.201112}, + volume = {90}, + year = {2014} +} + +@article{Stengel2015, + author = {Stengel, Massimiliano}, + doi = {10.1103/physrevb.92.205115}, + number = {20}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.92.205115}, + volume = {92}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {From flexoelectricity to absolute deformation potentials: The case ofSrTiO3}, + issn = {1098-0121, 1550-235X}, + year = {2015}, + month = nov, +} + +@article{Knyazev2007, + author = {Knyazev, A. V. and Argentati, M. E. and Lashuk, I. and Ovtchinnikov, E. E.}, + doi = {10.1137/060661624}, + number = {5}, + pages = {2224-2239}, + source = {Crossref}, + url = {http://dx.doi.org/10.1137/060661624}, + volume = {29}, + journal = {SIAM J. Sci. Comput.}, + publisher = {Society for Industrial \& Applied Mathematics (SIAM)}, + title = {Block Locally Optimal Preconditioned Eigenvalue Xolvers {(BLOPEX)} in Hypre and {PETSc}}, + issn = {1064-8275, 1095-7197}, + year = {2007}, + month = jan, +} + +@article{Knyazev2001, + author = {Knyazev, Andrew V.}, + doi = {10.1137/s1064827500366124}, + number = {2}, + pages = {517-541}, + source = {Crossref}, + url = {http://dx.doi.org/10.1137/s1064827500366124}, + volume = {23}, + journal = {SIAM J. Sci. Comput.}, + publisher = {Society for Industrial \& Applied Mathematics (SIAM)}, + title = {Toward the Optimal Preconditioned Eigensolver: {Locally} Optimal Block Preconditioned Conjugate Gradient Method}, + issn = {1064-8275, 1095-7197}, + year = {2001}, + month = jan, +} + +@article{Caliste2008, + author = {Caliste, D. and Pouillon, Y. and Verstraete, M.J. and Olevano, V. and Gonze, X.}, + doi = {10.1016/j.cpc.2008.05.007}, + number = {10}, + pages = {748-758}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.cpc.2008.05.007}, + volume = {179}, + journal = {Computer Physics Communications}, + publisher = {Elsevier BV}, + title = {Sharing electronic structure and crystallographic data with {ETSF\_IO}}, + issn = {0010-4655}, + year = {2008}, + month = nov, +} + +@article{Gonze2008, + author = {Gonze, X. and Almbladh, C.-O. and Cucca, A. and Caliste, D. and Freysoldt, C. and Marques, M.A.L. and Olevano, V. and Pouillon, Y. and Verstraete, M.J.}, + doi = {10.1016/j.commatsci.2008.02.023}, + number = {4}, + pages = {1056-1065}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.commatsci.2008.02.023}, + volume = {43}, + journal = {Computational Materials Science}, + publisher = {Elsevier BV}, + title = {Specification of an extensible and portable file format for electronic structure and crystallographic data}, + issn = {0927-0256}, + year = {2008}, + month = oct, +} + +@article{Arias1992, + author = {Arias, T. A. and Payne, M. C. and Joannopoulos, J. D.}, + doi = {10.1103/physrevb.45.1538}, + number = {4}, + pages = {1538-1549}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.45.1538}, + volume = {45}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Ab initio molecular-dynamics techniques extended to large-length-scale systems}, + issn = {0163-1829, 1095-3795}, + year = {1992}, + month = jan, +} + +@article{Alfe1999, + author = {Alfè, Dario}, + doi = {10.1016/s0010-4655(98)00195-7}, + number = {1}, + pages = {31-33}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/s0010-4655(98)00195-7}, + volume = {118}, + journal = {Computer Physics Communications}, + publisher = {Elsevier BV}, + title = {Ab initio molecular dynamics, a simple algorithm for charge extrapolation}, + issn = {0010-4655}, + year = {1999}, + month = apr, +} + +@article{Petretto2018, + author = {Petretto, Guido and Gonze, Xavier and Hautier, Geoffroy and Rignanese, Gian-Marco}, + doi = {10.1016/j.commatsci.2017.12.040}, + pages = {331-337}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.commatsci.2017.12.040}, + volume = {144}, + journal = {Computational Materials Science}, + publisher = {Elsevier BV}, + title = {Convergence and pitfalls of density functional perturbation theory phonons calculations from a high-throughput perspective}, + issn = {0927-0256}, + year = {2018}, + month = mar, +} + +@article{Huang1993, + author = {Huang, Ming-Zhu and Ching, W. Y.}, + title = {Calculation of optical excitations in cubic semiconductors. I. Electronic structure and linear response}, + journal = {Phys. Rev. B}, + volume = {47}, + number = {15}, + pages = {9449-9463}, + year = {1993}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + doi = {10.1103/physrevb.47.9449}, + issn = {0163-1829, 1095-3795}, + url = {https://doi.org/10.1103/physrevb.47.9449}, + month = apr, +} + +@article{Philipp1963, + author = {Philipp, H. R. and Ehrenreich, H.}, + title = {Optical Properties of Semiconductors}, + journal = {Phys. Rev.}, + volume = {129}, + pages = {1550-1560}, + year = {1963}, + url = {https://doi.org/10.1103/physrev.129.1550}, + issn = {0031-899X}, + source = {Crossref}, + publisher = {American Physical Society (APS)}, + month = feb, + doi = {10.1103/physrev.129.1550}, + number = {4}, +} + +@book{Ashcroft1976, + address = {Pacific Grove}, + author = {Ashcroft, N.~W. and Mermin, D.}, + edition = {1$^{st}$}, + isbn = {978-0030839931}, + numpages = {848}, + pages= {}, + publisher = {Brooks Cole}, + title = {Sol. State Phys.}, + url = {https://www.scribd.com/doc/207078972/Solid-State-Physics-Neil-W-Ashcroft-N-David-Mermin-Brooks-Cole-1976}, + year = {1976} +} + +@book{Hahn1983, + author = {T. Hahn}, + publisher = {D. Reidel Publushing Company}, + title = {International tables for ctystallography}, + year = {1983} +} + +@book{Cohen1988, + author = {Cohen, Marvin L. and Chelikowsky, James R.}, + title = {Electronic Structure and Optical Properties of Semiconductors}, + volume = {75}, + year = {1988}, + publisher = {Springer Berlin Heidelberg}, + isbn = {9783642970825, 9783642970801}, + source = {Crossref}, + issn = {0171-1873}, + doi = {10.1007/978-3-642-97080-1}, + url = {https://doi.org/10.1007/978-3-642-97080-1}, +} + +@article{Svane1997, + author = {Svane, A. and Christensen, N. E. and Rodriguez, C. O. and Methfessel, M.}, + volume = {55}, + month = may, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.55.12572}, + number = {18}, + pages = {12572-12577}, + url = {http://dx.doi.org/10.1103/physrevb.55.12572}, + source = {Crossref}, + journal = {Phys. Rev. B}, + year = {1997}, + issn = {0163-1829, 1095-3795}, + title = {Calculations of hyperfine parameters in tin compounds}, +} + +@article{Svane1987, + author = {Svane, A. and Antoncik, E.}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.35.4611}, + month = apr, + issn = {0163-1829}, + pages = {4611-4624}, + volume = {35}, + doi = {10.1103/physrevb.35.4611}, + publisher = {American Physical Society (APS)}, + number = {10}, + year = {1987}, + title = {Theoretical investigation of the isomer shifts of the $Sn^1$$^1$$^9$ Mössbauer isotope}, + journal = {Phys. Rev. B}, +} + +@article{Arnaud2000, + title = {All-electron projector-augmented-wave ${GW}$ approximation: Application to the electronic properties of semiconductors}, + author = {Arnaud, B. and Alouani, M.}, + journal = {Phys. Rev. B}, + volume = {62}, + issue = {7}, + pages = {4464--4476}, + numpages = {0}, + year = {2000}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.62.4464}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.62.4464}, +} + +@book{Greenwood1971, + author = {Greenwood, N. N. and Gibb, T. C.}, + title = {M\"ossbauer Spectroscopy}, + publisher = {Springer Netherlands}, + year = {1971}, + address = {London}, + source = {Crossref}, + doi = {10.1007/978-94-009-5697-1}, + isbn = {9789400956995, 9789400956971}, + url = {https://doi.org/10.1007/978-94-009-5697-1}, +} + +@article{Xianyuxue1994, + author = {Xue, X. and Stebbins, J. F. and Kanzaki, M.}, + journal = {Am. Mineral.}, + pages = {31--42}, + title = {Correlations between ${^{17}O}$ NMR parameters and + local structure around oxygen in high-pressure silicates: + {Implications} for the structure of silicate melts at high pressure}, + volume = {79}, + year = {1994}, + url = {https://pubs.geoscienceworld.org/msa/ammin/article-abstract/79/1-2/31/42852/correlations-between-17o-nmr-parameters-and-local}, +} + +@article{Pyykko2008, + author = {Pyykkö, Pekka}, + title = {Year-2008 nuclear quadrupole moments}, + journal = {Mol. Phys.}, + year = {2008}, + volume = {106}, + pages = {1965-1974}, + publisher = {Informa UK Limited}, + number = {16-18}, + month = aug, + doi = {10.1080/00268970802018367}, + source = {Crossref}, + url = {https://doi.org/10.1080/00268970802018367}, + issn = {0026-8976, 1362-3028}, +} + +@book{Slichter1978, + author = {Slichter, Charles P.}, + title = {Principles of Magnetic Resonance}, + edition = {3rd}, + year = {1978}, + address = {New York}, + publisher = {Springer Berlin Heidelberg}, + url = {https://doi.org/10.1007/978-3-662-12784-1}, + source = {Crossref}, + issn = {0171-1873}, + doi = {10.1007/978-3-662-12784-1}, + isbn = {9783662127865, 9783662127841}, +} + +@article{Allen1983, + author = {Allen, P. B. and Cardona, M.}, + doi = {10.1103/physrevb.27.4760}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = apr, + number = {8}, + pages = {4760-4769}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Temperature dependence of the direct gap of Si and Ge}, + url = {https://doi.org/10.1103/physrevb.27.4760}, + volume = {27}, + year = {1983}, +} + +@incollection{Allen1996, + author = {Allen, Philip B.}, + booktitle = {Quantum Theory of Real Materials}, + issn = {0893-3405}, + pages = {219-250}, + publisher = {Springer US}, + editors = {Chelikowski, J.R. and Louie, S.G.}, + source = {Crossref}, + title = {Boltzmann Theory and Resistivity of Metals}, + url = {http://www.springer.com/la/book/9780792396666}, + year = {1996}, +} + +@article{Allen2013, + author = {Allen, P. B. and Berlijn, T. and Casavant, D. A. and Soler, J. M.}, + doi = {10.1103/physrevb.87.085322}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = feb, + number = {8}, + pages = {085322}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Recovering hidden Bloch character: {Unfolding} electrons, phonons, and slabs}, + url = {https://doi.org/10.1103/physrevb.87.085322}, + volume = {87}, + year = {2013}, +} + +@book{Abrikosov1975, + author = {Abrikosov, A.A. and Gorkov, L.P. and Dzyaloshinskii, E.}, + title = {Methods of quantum field theory in statistical physics}, + journal = {Dover, New-York}, + year = {1975}, + volume = {}, + pages = {}, + doi = {}, + numpages = {}, + publisher = {Dover, New-York}, +} + +@article{Allen1981, + author = {Allen, P. B. and Cardona, M.}, + doi = {10.1103/physrevb.23.1495}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = feb, + number = {4}, + pages = {1495-1505}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Theory of the temperature dependence of the direct gap of germanium}, + url = {https://doi.org/10.1103/physrevb.23.1495}, + volume = {23}, + year = {1981}, +} + +@article{Allen1976, + author = {Allen, P B and Heine, V}, + doi = {10.1088/0022-3719/9/12/013}, + issn = {0022-3719}, + journal = {J. Phys. C: Solid State Phys.}, + month = jun, + number = {12}, + pages = {2305-2312}, + publisher = {IOP Publishing}, + source = {Crossref}, + title = {Theory of the temperature dependence of electronic band structures}, + url = {https://doi.org/10.1088/0022-3719/9/12/013}, + volume = {9}, + year = {1976}, +} + +@article{Amadon2006, + author = {Amadon, B. and Biermann, S. and Georges, A. and Aryasetiawan, F.}, + doi = {10.1103/physrevlett.96.066402}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = feb, + number = {6}, + pages = {066402}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {{The α−γ Transition} of Cerium Is Entropy Driven}, + url = {https://doi.org/10.1103/physrevlett.96.066402}, + volume = {96}, + year = {2006}, +} + +@article{Allen1978, + author = {Allen, P. B.}, + doi = {10.1103/physrevb.17.3725}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = may, + number = {10}, + pages = {3725-3734}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {New method for solving Boltzmann's equation for electrons in metals}, + url = {https://doi.org/10.1103/physrevb.17.3725}, + volume = {17}, + year = {1978}, +} + +@article{Albrecht1998, + author = {Albrecht, Stefan and Reining, Lucia and Del Sole, Rodolfo and Onida, Giovanni}, + doi = {10.1103/physrevlett.80.4510}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = may, + number = {20}, + pages = {4510-4513}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Ab {InitioCalculation} of Excitonic Effects in the Optical Spectra of Semiconductors}, + url = {https://doi.org/10.1103/physrevlett.80.4510}, + volume = {80}, + year = {1998}, +} + + +@article{Antipov2012, + title = {Role of rotational symmetry in the magnetism of a multiorbital model}, + author = {Antipov, A. E. and Krivenko, I. S. and Anisimov, V. I. and Lichtenstein, A. I. and Rubtsov, A. N.}, + journal = {Phys. Rev. B}, + volume = {86}, + issue = {15}, + pages = {155107}, + numpages = {10}, + year = {2012}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.86.155107}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.86.155107} +} + +@article{Antonius2014, + author = {Antonius, G. and Poncé, S. and Boulanger, P. and Côté, M. and Gonze, X.}, + doi = {10.1103/physrevlett.112.215501}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = may, + number = {21}, + pages = {215501}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Many-Body Effects on the Zero-Point Renormalization of the Band Structure}, + url = {https://doi.org/10.1103/physrevlett.112.215501}, + volume = {112}, + year = {2014}, +} + +@article{Amadon2012, + author = {Amadon, B}, + doi = {10.1088/0953-8984/24/7/075604}, + issn = {0953-8984, 1361-648X}, + journal = {J. Phys.: Condens. Matter}, + month = feb, + number = {7}, + pages = {075604}, + publisher = {IOP Publishing}, + source = {Crossref}, + title = {A self-consistent {DFT} + {DMFT} scheme in the projector augmented wave method: {Applications} to cerium, $Ce_{2}O_3$ and {Pu2O3with} the Hubbard {I} solver and comparison to {DFT} {+U}}, + url = {https://doi.org/10.1088/0953-8984/24/7/075604}, + volume = {24}, + year = {2012}, +} + +@article{Amadon2008a, + author = {Amadon, B. and Jollet, F. and Torrent, M.}, + doi = {10.1103/physrevb.77.155104}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = apr, + number = {15}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {{γ and β cerium: LDA+U calculations} of ground-state parameters}, + url = {https://doi.org/10.1103/physrevb.77.155104}, + volume = {77}, + year = {2008}, + pages = {155104}, +} + +@article{Amadon2008, + author = {Amadon, B. and Lechermann, F. and Georges, A. and Jollet, F. and Wehling, T. O. and Lichtenstein, A. I.}, + doi = {10.1103/physrevb.77.205112}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = may, + number = {20}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Plane-wave based electronic structure calculations for correlated materials using dynamical mean-field theory and projected local orbitals}, + url = {https://doi.org/10.1103/physrevb.77.205112}, + volume = {77}, + year = {2008}, + pages = {205112}, +} + +@article{Amadon2014, + author = {Amadon, Bernard and Applencourt, Thomas and Bruneval, Fabien}, + doi = {10.1103/physrevb.89.125110}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = mar, + number = {12}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Screened Coulomb interaction calculations: {Crpa} implementation and applications to dynamical screening and self-consistency in uranium dioxide and cerium}, + url = {https://doi.org/10.1103/physrevb.89.125110}, + volume = {89}, + year = {2014}, + pages = {125110}, +} + +@article{Amadon2016, + author = {Amadon, Bernard}, + journal={Phys. Rev. B}, + volume = {94}, + pages = {115148}, + year = {2016}, + title= {First-principles DFT+DMFT calculations of structural properties of actinides: Role of Hund’s exchange, spin-orbit coupling, and crystal structure}, + doi = {10.1103/PhysRevB.94.115148} +} + +@article{Antonius2015, + author = {Antonius, G. and Poncé, S. and Lantagne-Hurtubise, E. and Auclair, G. and Gonze, X. and Côté, M.}, + doi = {10.1103/physrevb.92.085137}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = aug, + number = {8}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Dynamical and anharmonic effects on the electron-phonon coupling and the zero-point renormalization of the electronic structure}, + url = {https://doi.org/10.1103/physrevb.92.085137}, + volume = {92}, + year = {2015}, + pages = {085137}, +} + +@article{Arponen1979, + author = {Arponen, J and Pajanne, E}, + doi = {10.1088/0305-4608/9/12/009}, + issn = {0305-4608}, + journal = {J. Phys. F: Met. Phys.}, + month = dec, + number = {12}, + pages = {2359-2376}, + publisher = {IOP Publishing}, + source = {Crossref}, + title = {Angular correlation in positron annihilation}, + url = {https://doi.org/10.1088/0305-4608/9/12/009}, + volume = {9}, + year = {1979}, +} + +@article{Ambrosetti2012, + author = {Ambrosetti, A. and Silvestrelli, P. L.}, + title = {van der {Waals} interactions in density functional theory using Wannier functions: Improved $C_6$ and $C_3$ coefficients by a different approach}, + journal = {Phys. Rev. B}, + volume = {85}, + issue = {7}, + pages = {073101}, + numpages = {4}, + year = {2012}, + month = feb, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.85.073101}, + url = {https://doi.org/10.1103/physrevb.85.073101}, + number = {7}, + source = {Crossref}, + issn = {1098-0121, 1550-235X}, +} + +@article{Aryasetiawan2006, + author = {Aryasetiawan, F. and Karlsson, K. and Jepsen, O. and Schönberger, U.}, + doi = {10.1103/physrevb.74.125106}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = sep, + number = {12}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Calculations of Hubbard U from first-principles}, + url = {https://doi.org/10.1103/physrevb.74.125106}, + volume = {74}, + year = {2006}, + pages = {125106}, +} + +@article{Audouze2006, + author = {Audouze, Christophe and Jollet, François and Torrent, Marc and Gonze, Xavier}, + doi = {10.1103/physrevb.73.235101}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jun, + number = {23}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Projector augmented-wave approach to density-functional perturbation theory}, + url = {https://doi.org/10.1103/physrevb.73.235101}, + volume = {73}, + year = {2006}, + pages = {235101}, +} + +@article{Anisimov1991, + author = {Anisimov, V. I. and Gunnarsson, O.}, + doi = {10.1103/physrevb.43.7570}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = apr, + number = {10}, + pages = {7570-7574}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Density-functional calculation of effective Coulomb interactions in metals}, + url = {https://doi.org/10.1103/physrevb.43.7570}, + volume = {43}, + year = {1991}, +} + +@article{Anisimov1991a, + title = {Band theory and Mott insulators: Hubbard U instead of Stoner I}, + author = {Anisimov, Vladimir I. and Zaanen, Jan and Andersen, Ole K.}, + journal = {Phys. Rev. B}, + volume = {44}, + issue = {3}, + pages = {943--954}, + numpages = {0}, + year = {1991}, + month = {Jul}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.44.943}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.44.943} +} + +@article{Audouze2008, + author = {Audouze, Christophe and Jollet, François and Torrent, Marc and Gonze, Xavier}, + doi = {10.1103/physrevb.78.035105}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jul, + number = {3}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Comparison between projector augmented-wave and ultrasoft pseudopotential formalisms at the density-functional perturbation theory level}, + url = {https://doi.org/10.1103/physrevb.78.035105}, + volume = {78}, + year = {2008}, + pages = {035105}, +} + +@article{Amadon2015, + author = {Amadon, Bernard and Gerossier, Alexis}, + doi = {10.1103/physrevb.91.161103}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = apr, + number = {16}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Comparative analysis of models for the α−γ phase transition in cerium: {A} {DFT+DMFT} study using Wannier orbitals}, + url = {https://doi.org/10.1103/physrevb.91.161103}, + volume = {91}, + year = {2015}, + pages = {161103}, +} + +@book{Bader1994, + author = {Bader, R.F.W.}, + title = {Atoms in Molecules: {A} Quantum Theory}, + series = {International series of monographs on chemistry}, + url = {https://books.google.be/books?id=sDptAQAACAAJ}, + year = {1994}, + publisher = {Clarendon Press}, +} + +@article{Baroni1987, + author = {Baroni, Stefano and Giannozzi, Paolo and Testa, Andrea}, + doi = {10.1103/physrevlett.58.1861}, + issn = {0031-9007}, + journal = {Phys. Rev. Lett.}, + month = may, + number = {18}, + pages = {1861-1864}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Green's-function approach to linear response in solids}, + url = {https://doi.org/10.1103/physrevlett.58.1861}, + volume = {58}, + year = {1987}, +} + +@article{Bengone2000, + author = {Bengone, O. and Alouani, M. and Blöchl, P. and Hugel, J.}, + doi = {10.1103/physrevb.62.16392}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = dec, + number = {24}, + pages = {16392-16401}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Implementation of the projector augmented-wave {LDA+U} method: {Application} to the electronic structure of {NiO}}, + url = {https://doi.org/10.1103/physrevb.62.16392}, + volume = {62}, + year = {2000}, +} + +@article{Becke1990, + author = {Becke, A. D. and Edgecombe, K. E.}, + doi = {10.1063/1.458517}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = may, + number = {9}, + pages = {5397-5403}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {A simple measure of electron localization in atomic and molecular systems}, + url = {https://doi.org/10.1063/1.458517}, + volume = {92}, + year = {1990}, +} + +@article{Becke2006, +author = {Becke, Axel D. and Johnson, Erin R.}, +title = {A simple effective potential for exchange}, +journal = {The Journal of Chemical Physics}, +volume = {124}, +number = {22}, +pages = {221101}, +year = {2006}, +doi = {10.1063/1.2213970}, +URL = {https://doi.org/10.1063/1.2213970}, +} + + +@article{Bachelet1982, + author = {Bachelet, G. B. and Hamann, D. R. and Schlüter, M.}, + doi = {10.1103/physrevb.26.4199}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = oct, + number = {8}, + pages = {4199-4228}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Pseudopotentials that work: {From} H to Pu}, + url = {https://doi.org/10.1103/physrevb.26.4199}, + volume = {26}, + year = {1982}, +} + +@article{Benedict1998, + author = {Benedict, Lorin X. and Shirley, Eric L. and Bohn, Robert B.}, + doi = {10.1103/physrevlett.80.4514}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = may, + number = {20}, + pages = {4514-4517}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Optical Absorption of Insulators and the Electron-Hole Interaction: An ab initio Calculation}, + url = {https://doi.org/10.1103/physrevlett.80.4514}, + volume = {80}, + year = {1998}, +} + +@article{Barbiellini1996, + author = {Barbiellini, B. and Puska, M. J. and Korhonen, T. and Harju, A. and Torsti, T. and Nieminen, R. M.}, + doi = {10.1103/physrevb.53.16201}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jun, + number = {24}, + pages = {16201-16213}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Calculation of positron states and annihilation in solids: {A} density-gradient-correction scheme}, + url = {https://doi.org/10.1103/physrevb.53.16201}, + volume = {53}, + year = {1996}, +} + +@article{Baroni2001, + author = {Baroni, Stefano and de Gironcoli, Stefano and Dal Corso, Andrea and Giannozzi, Paolo}, + journal = {Rev. Mod. Phys.}, + pages = {515-562}, + title = {Phonons and related crystal properties from density-functional perturbation theory}, + volume = {73}, + year = {2001}, + doi = {10.1103/revmodphys.73.515}, + number = {2}, + source = {Crossref}, + url = {https://doi.org/10.1103/revmodphys.73.515}, + publisher = {American Physical Society (APS)}, + issn = {0034-6861, 1539-0756}, + month = jul, +} + +@article{Blancoa1997, + author = {Blanco, Miguel A. and Flórez, M. and Bermejo, M.}, + doi = {10.1016/s0166-1280(97)00185-1}, + issn = {0166-1280}, + journal = {J. Mol. Struct. THEOCHEM}, + month = dec, + number = {1-3}, + pages = {19-27}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Evaluation of the rotation matrices in the basis of real spherical harmonics}, + url = {https://doi.org/10.1016/s0166-1280(97)00185-1}, + volume = {419}, + year = {1997}, +} + +@article{Boehnke2011, + title = {Orthogonal polynomial representation of imaginary-time Green's functions}, + author = {Boehnke, Lewin and Hafermann, Hartmut and Ferrero, Michel and Lechermann, Frank and Parcollet, Olivier}, + journal = {Phys. Rev. B}, + volume = {84}, + issue = {7}, + pages = {075145}, + numpages = {13}, + year = {2011}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.84.075145}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.84.075145} +} + + +@article{Aryasetiawan2004, + author = {Aryasetiawan, F. and Imada, M. and Georges, A. and Kotliar, G. and Biermann, S. and Lichtenstein, A. I.}, + doi = {10.1103/physrevb.70.195104}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = nov, + number = {19}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Frequency-dependent local interactions and low-energy effective models from electronic structure calculations}, + url = {https://doi.org/10.1103/physrevb.70.195104}, + volume = {70}, + year = {2004}, + pages = {195104}, +} + +@article{Bloechl1994, + author = {Blöchl, P. E.}, + doi = {10.1103/physrevb.50.17953}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = dec, + number = {24}, + pages = {17953-17979}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Projector augmented-wave method}, + url = {https://doi.org/10.1103/physrevb.50.17953}, + volume = {50}, + year = {1994}, +} + +@article{Bergeron2016, + author = {Bergeron, Dominic and Tremblay, A.-M. S.}, + doi = {10.1103/physreve.94.023303}, + issn = {2470-0045, 2470-0053}, + journal = {Phys. Rev. E}, + month = aug, + number = {2}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Algorithms for optimized maximum entropy and diagnostic tools for analytic continuation}, + url = {https://doi.org/10.1103/physreve.94.023303}, + volume = {94}, + year = {2016}, + pages = {023303}, +} + +@article{Bieder2014, + author = {Bieder, J. and Amadon, B.}, + doi = {10.1103/physrevb.89.195132}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = may, + number = {19}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Thermodynamics of the α-γ transition in cerium from first principles}, + url = {https://doi.org/10.1103/physrevb.89.195132}, + volume = {89}, + year = {2014}, + pages = {195132}, +} + +@article{Bruneval2006, + author = {Bruneval, Fabien and Vast, Nathalie and Reining, Lucia}, + doi = {10.1103/physrevb.74.045102}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jul, + number = {4}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Effect of self-consistency on quasiparticles in solids}, + url = {https://doi.org/10.1103/physrevb.74.045102}, + volume = {74}, + year = {2006}, + pages = {045102}, +} + +@article{Bockstedte1997, + author = {Bockstedte, Michel and Kley, Alexander and Neugebauer, Jörg and Scheffler, Matthias}, + doi = {10.1016/s0010-4655(97)00117-3}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = dec, + number = {1-3}, + pages = {187-222}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Density-functional theory calculations for poly-atomic systems: {Electronic} structure, static and elastic properties and ab initio molecular dynamics}, + url = {https://doi.org/10.1016/s0010-4655(97)00117-3}, + volume = {107}, + year = {1997}, +} + +@article{Bousquet2011, + author = {Bousquet, Eric and Spaldin, Nicola A. and Delaney, Kris T.}, + doi = {10.1103/physrevlett.106.107202}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = mar, + number = {10}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Unexpectedly Large Electronic Contribution to Linear Magnetoelectricity}, + url = {https://doi.org/10.1103/physrevlett.106.107202}, + volume = {106}, + year = {2011}, + pages = {107202}, +} + +@article{Stengel2009, + author = {Stengel, Massimiliano and Spaldin, Nicola A. and Vanderbilt, David}, + doi = {10.1038/nphys1185}, + number = {4}, + pages = {304-308}, + source = {Crossref}, + url = {http://dx.doi.org/10.1038/nphys1185}, + volume = {5}, + journal = {Nature Phys}, + publisher = {Springer Nature}, + title = {Electric displacement as the fundamental variable in electronic-structure calculations}, + issn = {1745-2473, 1745-2481}, + year = {2009}, + month = feb, +} + +@article{Boronski1986, + author = {Boro\'nski, E. and Nieminen, R. M.}, + doi = {10.1103/physrevb.34.3820}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = sep, + number = {6}, + pages = {3820-3831}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electron-positron density-functional theory}, + url = {https://doi.org/10.1103/physrevb.34.3820}, + volume = {34}, + year = {1986}, +} + +@article{Bottin2008, + author = {Bottin, François and Leroux, Stéphane and Knyazev, Andrew and Zérah, Gilles}, + doi = {10.1016/j.commatsci.2007.07.019}, + issn = {0927-0256}, + journal = {Computational Materials Science}, + month = apr, + number = {2}, + pages = {329-336}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Large-scale ab initio calculations based on three levels of parallelization}, + url = {https://doi.org/10.1016/j.commatsci.2007.07.019}, + volume = {42}, + year = {2008}, +} + +@article{Bloechl1994a, + author = {Blöchl, Peter E. and Jepsen, O. and Andersen, O. K.}, + doi = {10.1103/physrevb.49.16223}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jun, + number = {23}, + pages = {16223-16233}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Improved tetrahedron method for Brillouin-zone integrations}, + url = {https://doi.org/10.1103/physrevb.49.16223}, + volume = {49}, + year = {1994}, +} + +@article{Campillo1998, + author = {Campillo, I. and Pitarke, J. M. and Eguiluz, A. G.}, + doi = {10.1103/physrevb.58.10307}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = oct, + number = {16}, + pages = {10307-10314}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electronic stopping power of aluminum crystal}, + url = {https://doi.org/10.1103/physrevb.58.10307}, + volume = {58}, + year = {1998}, +} + +@article{Calloni2005, + author = {Calloni, A. and Dupasquier, A. and Ferragut, R. and Folegati, P. and Iglesias, M. M. and Makkonen, I. and Puska, M. J.}, + doi = {10.1103/physrevb.72.054112}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = aug, + number = {5}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Positron localization effects on the Doppler broadening of the annihilation line: {Aluminum} as a case study}, + url = {https://doi.org/10.1103/physrevb.72.054112}, + volume = {72}, + year = {2005}, + pages = {054112}, +} + +@article{Bruneval2012, + author = {Bruneval, Fabien}, + doi = {10.1103/physrevlett.108.256403}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = jun, + number = {25}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Range-Separated Approach to the {RPA} Correlation Applied to the van der Waals Bond and to Diffusion of Defects}, + url = {https://doi.org/10.1103/physrevlett.108.256403}, + volume = {108}, + year = {2012}, + pages = {256403}, +} + +@article{Cappellini1993, + author = {Cappellini, G. and Del Sole, R. and Reining, Lucia and Bechstedt, F.}, + doi = {10.1103/physrevb.47.9892}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = apr, + number = {15}, + pages = {9892-9895}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Model dielectric function for semiconductors}, + url = {https://doi.org/10.1103/physrevb.47.9892}, + volume = {47}, + year = {1993}, +} + +@article{Bruneval2014, + author = {Bruneval, Fabien and Crocombette, Jean-Paul and Gonze, Xavier and Dorado, Boris and Torrent, Marc and Jollet, François}, + doi = {10.1103/physrevb.89.045116}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jan, + number = {4}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Consistent treatment of charged systems within periodic boundary conditions: {The} projector augmented-wave and pseudopotential methods revisited}, + url = {https://doi.org/10.1103/physrevb.89.045116}, + volume = {89}, + year = {2014}, + pages = {045116}, +} + +@article{Caracas2007, + author = {Caracas, Razvan and Cohen, R. E.}, + doi = {10.1063/1.2776370}, + issn = {0003-6951, 1077-3118}, + journal = {Appl. Phys. Lett.}, + month = aug, + number = {9}, + pages = {092902}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Prediction of polar ordered oxynitride perovskites}, + url = {https://doi.org/10.1063/1.2776370}, + volume = {91}, + year = {2007}, +} + +@article{Caracas2007a, + author = {Caracas, Razvan and Cohen, R. E.}, + doi = {10.1103/physrevb.76.184101}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = nov, + number = {18}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Post-perovskite phase in selected sesquioxides from density-functional calculations}, + url = {https://doi.org/10.1103/physrevb.76.184101}, + volume = {76}, + year = {2007}, + pages = {184101}, +} + +@article{Caracas2008, + author = {Caracas, Razvan}, + doi = {10.1103/physrevlett.101.085502}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = aug, + number = {8}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Dynamical Instabilities of Ice {X}}, + url = {https://doi.org/10.1103/physrevlett.101.085502}, + volume = {101}, + year = {2008}, + pages = {085502}, +} + +@article{Cheetham1983, + title = {Magnetic ordering and exchange effects in the antiferromagnetic solid solutions Mn$_{x}$Ni$_1$$_-$$_x$O}, + author = {Cheetham, A. K. and Hope, D. A. O.}, + journal = {Phys. Rev. B}, + volume = {27}, + issue = {11}, + pages = {6964--6967}, + numpages = {0}, + year = {1983}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.27.6964}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.27.6964} +} + + +@article{Bruneval2008, + author = {Bruneval, Fabien and Gonze, Xavier}, + doi = {10.1103/physrevb.78.085125}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = aug, + number = {8}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {{Accurate GW self}-energies in a plane-wave basis using only a few empty states: {Towards} large systems}, + url = {https://doi.org/10.1103/physrevb.78.085125}, + volume = {78}, + year = {2008}, + pages = {085125}, +} + +@book{Daubechies1992, + author = {Daubechies, Ingrid}, + title = {Ten Lectures on Wavelets}, + isbn = {9780898712742, 9781611970104}, + lccn = {lc92013201}, + series = {CBMS-NSF Regional Conference Series in Applied Mathematics}, + url = {https://doi.org/10.1137/1.9781611970104}, + year = {1992}, + publisher = {Society for Industrial and Applied Mathematics}, + doi = {10.1137/1.9781611970104}, + source = {Crossref}, + month = jan, +} + +@book{Coleman2015, + author = {Coleman, Piers}, + doi = {10.1017/cbo9781139020916}, + publisher = {Cambridge University Press}, + source = {Crossref}, + title = {Introduction to Many-Body Physics}, + url = {https://doi.org/10.1017/cbo9781139020916}, + year = {2015}, + isbn = {9781139020916}, +} + +@article{Espejo2012, + author = {Espejo, C. and Rangel, T. and Pouillon, Y. and Romero, A.H. and Gonze, X.}, + doi = {10.1016/j.cpc.2011.11.003}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = mar, + number = {3}, + pages = {480-485}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Wannier functions approach to van der Waals interactions in {ABINIT}}, + url = {https://doi.org/10.1016/j.cpc.2011.11.003}, + volume = {183}, + year = {2012}, +} + +@article{Czyzyk1994, + author = {Czyżyk, M. T. and Sawatzky, G. A.}, + doi = {10.1103/physrevb.49.14211}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = may, + number = {20}, + pages = {14211-14228}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Local-density functional and on-site correlations: The electronic structure of La2CuO4 and LaCuO3}, + url = {https://doi.org/10.1103/physrevb.49.14211}, + volume = {49}, + year = {1994}, +} + +@article{Ferreira2008, + author = {Ferreira, Luiz G. and Marques, Marcelo and Teles, Lara K.}, + doi = {10.1103/physrevb.78.125116}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = sep, + number = {12}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Approximation to density functional theory for the calculation of band gaps of semiconductors}, + url = {https://doi.org/10.1103/physrevb.78.125116}, + volume = {78}, + year = {2008}, + pages = {125116}, +} + +@book{Fetter1971, + author = {Fetter, A.L. and Walecka, J.D.}, + journal = {McGraw-Hill, New York}, + pages = {}, + publisher = {McGraw-Hill, New York}, + title = {Quantum Theory of Many-Particle Systems}, + volume = {}, + year = {1971}, +} + +@PHDTHESIS{Cococcioni2002, + author = {Cococcioni, M.}, + title = {A LDA+U study of selected iron compounds}, + school = {SISSA}, + year = {2002}, + owner = {amadonb}, + timestamp = {2018.06.12}, + url = {https://iris.sissa.it/handle/20.500.11767/3939#} +} + +@article{Cococcioni2005, + author = {Cococcioni, Matteo and de Gironcoli, Stefano}, + doi = {10.1103/physrevb.71.035105}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jan, + number = {3}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Linear response approach to the calculation of the effective interaction parameters in the LDA+U method}, + url = {https://doi.org/10.1103/physrevb.71.035105}, + volume = {71}, + year = {2005}, + pages = {035105}, +} + +@article{Dederichs1984, + title = {Ground States of Constrained Systems: Application to Cerium Impurities}, + author = {Dederichs, P. H. and Bl\"ugel, S. and Zeller, R. and Akai, H.}, + journal = {Phys. Rev. Lett.}, + volume = {53}, + issue = {26}, + pages = {2512--2515}, + numpages = {0}, + year = {1984}, + month = {Dec}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.53.2512}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.53.2512} +} + + +@article{Dion2004, + author = {Dion, M. and Rydberg, H. and Schröder, E. and Langreth, D. C. and Lundqvist, B. I.}, + doi = {10.1103/physrevlett.92.246401}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = jun, + number = {24}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Van der Waals Density Functional for General Geometries}, + url = {https://doi.org/10.1103/physrevlett.92.246401}, + volume = {92}, + year = {2004}, + pages = {246401}, +} + +@article{Fresard1997, + author = {Frésard, Raymond and Kotliar, Gabriel}, + doi = {10.1103/physrevb.56.12909}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = nov, + number = {20}, + pages = {12909-12915}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Interplay of Mott transition and ferromagnetism in the orbitally degenerate Hubbard model}, + url = {https://doi.org/10.1103/physrevb.56.12909}, + volume = {56}, + year = {1997}, +} + +@article{Casida1998, + author = {Casida, Mark E. and Jamorski, Christine and Casida, Kim C. and Salahub, Dennis R.}, + doi = {10.1063/1.475855}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = mar, + number = {11}, + pages = {4439-4449}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Molecular excitation energies to high-lying bound states from time-dependent density-functional response theory: {Characterization} and correction of the time-dependent local density approximation ionization threshold}, + url = {https://doi.org/10.1063/1.475855}, + volume = {108}, + year = {1998}, +} + +@incollection{Casida1995, + author = {Casida, Mark E.}, + doi = {10.1142/9789812830586_0005}, + pages = {155-192}, + source = {Crossref}, + url = {http://dx.doi.org/10.1142/9789812830586_0005}, + booktitle = {Recent Advances in Density Functional Methods}, + publisher = {WORLD SCIENTIFIC}, + title = {Time-Dependent Density Functional Response Theory for Molecules}, + issn = {2010-197X}, + isbn = {9789810224424, 9789812830586}, + year = {1995}, + month = nov, +} + +@article{Dorado2009, + title = {{DFT+U} calculations of the ground state and metastable states of uranium dioxide}, + author = {Dorado, Boris and Amadon, Bernard and Freyss, Michel and Bertolus, Marjorie}, + journal = {Phys. Rev. B}, + volume = {79}, + issue = {23}, + pages = {235125}, + numpages = {8}, + year = {2009}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.79.235125}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.79.235125} +} + +@article{Folegati2007, + author = {Folegati, P. and Makkonen, I. and Ferragut, R. and Puska, M. J.}, + doi = {10.1103/physrevb.75.054201}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = feb, + number = {5}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Analysis of electron-positron momentum spectra of metallic alloys as supported by first-principles calculations}, + url = {https://doi.org/10.1103/physrevb.75.054201}, + volume = {75}, + year = {2007}, + pages = {054201}, +} + +@article{Freund1995, + author = {Freund, Roland W. and Nachtigal, Noël M.}, + doi = {10.1016/0168-9274(95)00089-5}, + issn = {0168-9274}, + journal = {Applied Numerical Mathematics}, + month = dec, + number = {3}, + pages = {319-341}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Software for simplified {Lanczos} and {QMR} algorithms}, + url = {https://doi.org/10.1016/0168-9274(95)00089-5}, + volume = {19}, + year = {1995}, +} + +@article{Fuchs1999, + author = {Fuchs, Martin and Scheffler, Matthias}, + doi = {10.1016/s0010-4655(98)00201-x}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = jun, + number = {1}, + pages = {67-98}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Ab initio pseudopotentials for electronic structure calculations of poly-atomic systems using density-functional theory}, + url = {https://doi.org/10.1016/s0010-4655(98)00201-x}, + volume = {119}, + year = {1999}, +} + +@article{Casida1998a, +author = {Casida, Mark E. and Casida, Kim C. and Salahub, Dennis R.}, +title = {Excited-state potential energy curves from time-dependent density-functional theory: A cross section of formaldehyde's 1A1 manifold}, +journal = {International Journal of Quantum Chemistry}, +volume = {70}, +number = {4-5}, +publisher = {John Wiley & Sons, Inc.}, +issn = {1097-461X}, +url = {https://doi.org/10.1002/(SICI)1097-461X(1998)70:4/5%3C933::AID-QUA39%3E3.0.CO;2-Z}, +pages = {933--941}, +keywords = {time-dependent density-functional theory, excited state surfaces, avoided crossings}, +year = {1998}, +} + +@article{Garrity2014, + author = {Garrity, Kevin F. and Bennett, Joseph W. and Rabe, Karin M. and Vanderbilt, David}, + doi = {10.1016/j.commatsci.2013.08.053}, + issn = {0927-0256}, + journal = {Computational Materials Science}, + month = jan, + pages = {446-452}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Pseudopotentials for high-throughput {DFT} calculations}, + url = {https://doi.org/10.1016/j.commatsci.2013.08.053}, + volume = {81}, + year = {2014}, +} + +@article{Genovese2008, + author = {Genovese, Luigi and Neelov, Alexey and Goedecker, Stefan and Deutsch, Thierry and Ghasemi, Seyed Alireza and Willand, Alexander and Caliste, Damien and Zilberberg, Oded and Rayson, Mark and Bergman, Anders and Schneider, Reinhold}, + doi = {10.1063/1.2949547}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = jul, + number = {1}, + pages = {014109}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Daubechies wavelets as a basis set for density functional pseudopotential calculations}, + url = {https://doi.org/10.1063/1.2949547}, + volume = {129}, + year = {2008}, +} + +@article{Geneste2012, + author = {Geneste, Grégory and Torrent, Marc and Bottin, François and Loubeyre, Paul}, + doi = {10.1103/physrevlett.109.155303}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = oct, + number = {15}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Strong Isotope Effect in Phase {II} of Dense Solid Hydrogen and Deuterium}, + url = {https://doi.org/10.1103/physrevlett.109.155303}, + volume = {109}, + year = {2012}, + pages = {155303}, +} + +@article{Geneste2015, + author = {Geneste, Grégory and Ottochian, Alistar and Hermet, Jessica and Dezanneau, Guilhem}, + doi = {10.1039/c5cp01216c}, + issn = {1463-9076, 1463-9084}, + journal = {Phys. Chem. Chem. Phys.}, + number = {29}, + pages = {19104-19118}, + publisher = {Royal Society of Chemistry (RSC)}, + source = {Crossref}, + title = {Proton transport in barium stannate: {Classical,} semi-classical and quantum regimes}, + url = {https://doi.org/10.1039/c5cp01216c}, + volume = {17}, + year = {2015}, +} + +@article{Genovese2009, + author = {Genovese, Luigi and Ospici, Matthieu and Deutsch, Thierry and Méhaut, Jean-François and Neelov, Alexey and Goedecker, Stefan}, + doi = {10.1063/1.3166140}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = jul, + number = {3}, + pages = {034103}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Density functional theory calculation on many-cores hybrid central processing unit-graphic processing unit architectures}, + url = {https://doi.org/10.1063/1.3166140}, + volume = {131}, + year = {2009}, +} + +@inproceedings{Georges2004, + author = {Georges, Antoine}, + booktitle = {AIP Conference Proceedings}, + doi = {10.1063/1.1800733}, + issn = {0094-243X}, + publisher = {AIP}, + source = {Crossref}, + title = {Strongly Correlated Electron Materials: {Dynamical} Mean-Field Theory and Electronic Structure}, + url = {http://dx.doi.org/10.1063/1.1800733}, + year = {2004}, +} + +@article{Goedecker1996, + author = {Goedecker, S. and Teter, M. and Hutter, J.}, + doi = {10.1103/physrevb.54.1703}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jul, + number = {3}, + pages = {1703-1710}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Separable dual-space {Gaussian} pseudopotentials}, + url = {https://doi.org/10.1103/physrevb.54.1703}, + volume = {54}, + year = {1996}, +} + +@article{Gillet2017, + author = {Gillet, Yannick and Kontur, Stefan and Giantomassi, Matteo and Draxl, Claudia and Gonze, Xavier}, + doi = {10.1038/s41598-017-07682-y}, + issn = {2045-2322}, + journal = {Sci Rep}, + month = aug, + number = {1}, + publisher = {Springer Nature}, + source = {Crossref}, + title = {Ab Initio Approach to Second-order Resonant Raman Scattering Including Exciton-Phonon Interaction}, + url = {https://doi.org/10.1038/s41598-017-07682-y}, + volume = {7}, + year = {2017}, + pages = {7344}, +} + +@article{Georges1996, + author = {Georges, Antoine and Kotliar, Gabriel and Krauth, Werner and Rozenberg, Marcelo J.}, + doi = {10.1103/revmodphys.68.13}, + issn = {0034-6861, 1539-0756}, + journal = {Rev. Mod. Phys.}, + month = jan, + number = {1}, + pages = {13-125}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Dynamical mean-field theory of strongly correlated fermion systems and the limit of infinite dimensions}, + url = {https://doi.org/10.1103/revmodphys.68.13}, + volume = {68}, + year = {1996}, +} + +@article{Ghosez1998, + author = {Ghosez, Ph. and Michenaud, J.-P. and Gonze, X.}, + journal = {Phys. Rev. B}, + pages = {6224-6240}, + title = {Dynamical atomic charges: The case of {ABO$_3$} compounds}, + url = {https://doi.org/10.1103/physrevb.58.6224}, + volume = {58}, + year = {1998}, + doi = {10.1103/physrevb.58.6224}, + number = {10}, + source = {Crossref}, + publisher = {American Physical Society (APS)}, + issn = {0163-1829, 1095-3795}, + month = sep, +} + +@article{Ghosez2000, + author = {Ghosez, Philippe and Gonze, Xavier}, + doi = {10.1088/0953-8984/12/43/308}, + number = {43}, + pages = {9179-9188}, + source = {Crossref}, + url = {http://dx.doi.org/10.1088/0953-8984/12/43/308}, + volume = {12}, + journal = {J. Phys.: Condens. Matter}, + publisher = {IOP Publishing}, + title = {Band-by-band decompositions of the Born effective charges}, + issn = {0953-8984, 1361-648X}, + year = {2000}, + month = oct, +} + +@article{Giannozzi1991, + author = {Giannozzi, Paolo and de Gironcoli, Stefano and Pavone, Pasquale and Baroni, Stefano}, + journal = {Phys. Rev. B}, + pages = {7231}, + title = {Ab initio calculation of phonon dispersions in semiconductors}, + url = {https://doi.org/10.1103/PhysRevB.43.7231}, + volume = {43}, + year = {1991}, +} + +@article{Giannozzi2009, + author = {Giannozzi, Paolo and Baroni, Stefano and Bonini, Nicola and Calandra, Matteo and Car, Roberto and Cavazzoni, Carlo and Ceresoli, Davide and Chiarotti, Guido L and Cococcioni, Matteo and Dabo, Ismaila and Dal Corso, Andrea and de Gironcoli, Stefano and Fabris, Stefano and Fratesi, Guido and Gebauer, Ralph and Gerstmann, Uwe and Gougoussis, Christos and Kokalj, Anton and Lazzeri, Michele and Martin-Samos, Layla and Marzari, Nicola and Mauri, Francesco and Mazzarello, Riccardo and Paolini, Stefano and Pasquarello, Alfredo and Paulatto, Lorenzo and Sbraccia, Carlo and Scandolo, Sandro and Sclauzero, Gabriele and Seitsonen, Ari P and Smogunov, Alexander and Umari, Paolo and Wentzcovitch, Renata M}, + doi = {10.1088/0953-8984/21/39/395502}, + issn = {0953-8984, 1361-648X}, + journal = {J. Phys.: Condens. Matter}, + month = sep, + number = {39}, + pages = {395502}, + publisher = {IOP Publishing}, + source = {Crossref}, + title = {{QUANTUM} {ESPRESSO:} {A} modular and open-source software project for quantum simulations of materials}, + url = {https://doi.org/10.1088/0953-8984/21/39/395502}, + volume = {21}, + year = {2009}, +} + +@article{Umari2003, + author = {Umari, P. and Gonze, Xavier and Pasquarello, Alfredo}, + doi = {10.1103/physrevlett.90.027401}, + number = {2}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevlett.90.027401}, + volume = {90}, + journal = {Phys. Rev. Lett.}, + publisher = {American Physical Society (APS)}, + title = {Concentration of Small Ring Structures in Vitreous Silica from a First-Principles Analysis of the {Raman} Spectrum}, + issn = {0031-9007, 1079-7114}, + year = {2003}, + month = jan, +} + + +@article{Godby1989, + author = {Godby, R. W. and Needs, R. J.}, + doi = {10.1103/physrevlett.62.1169}, + issn = {0031-9007}, + journal = {Phys. Rev. Lett.}, + month = mar, + number = {10}, + pages = {1169-1172}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Metal-insulator transition in Kohn-Sham theory and quasiparticle theory}, + url = {https://doi.org/10.1103/physrevlett.62.1169}, + volume = {62}, + year = {1989}, +} + +@article{Giantomassi2011, + author = {Giantomassi, M. and Stankovski, M. and Shaltaf, R. and Grüning, M. and Bruneval, F. and Rinke, P. and Rignanese, G.-M.}, + doi = {10.1002/pssb.201046094}, + issn = {0370-1972}, + journal = {phys. stat. sol. (b)}, + month = jan, + number = {2}, + pages = {275-289}, + publisher = {Wiley-Blackwell}, + source = {Crossref}, + title = {Electronic properties of interfaces and defects from many-body perturbation theory: {Recent} developments and applications}, + url = {https://doi.org/10.1002/pssb.201046094}, + volume = {248}, + year = {2011}, +} + +@article{Gillet2016, + author = {Gillet, Yannick and Giantomassi, Matteo and Gonze, Xavier}, + doi = {10.1016/j.cpc.2016.02.008}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = jun, + pages = {83-93}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Efficient on-the-fly interpolation technique for {Bethe–Salpeter} calculations of optical spectra}, + url = {https://doi.org/10.1016/j.cpc.2016.02.008}, + volume = {203}, + year = {2016}, +} + +@article{Gonze1995, + author = {Gonze, Xavier}, + doi = {10.1103/physreva.52.1096}, + issn = {1050-2947, 1094-1622}, + journal = {Phys. Rev. A}, + month = aug, + number = {2}, + pages = {1096-1114}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Adiabatic density-functional perturbation theory}, + url = {https://doi.org/10.1103/physreva.52.1096}, + volume = {52}, + year = {1995}, +} + +@article{Gonze1995a, + author = {Gonze, X. and Ghosez, Ph. and Godby, R. W.}, + journal = {Phys. Rev. Lett.}, + pages = {4035-4038}, + title = {Density-Polarization Functional Theory of the Response of a Periodic Insulating Solid to an Electric Field}, + url = {https://doi.org/10.1103/physrevlett.74.4035}, + volume = {74}, + year = {1995}, + doi = {10.1103/physrevlett.74.4035}, + number = {20}, + source = {Crossref}, + publisher = {American Physical Society (APS)}, + issn = {0031-9007, 1079-7114}, + month = may, +} + +@article{Gonze1991, + author = {Gonze, Xavier and Stumpf, Roland and Scheffler, Matthias}, + doi = {10.1103/physrevb.44.8503}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = oct, + number = {16}, + pages = {8503-8513}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Analysis of separable potentials}, + url = {https://doi.org/10.1103/physrevb.44.8503}, + volume = {44}, + year = {1991}, +} + +@article{Gillet2013, + author = {Gillet, Yannick and Giantomassi, Matteo and Gonze, Xavier}, + doi = {10.1103/physrevb.88.094305}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = sep, + number = {9}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {First-principles study of excitonic effects in Raman intensities}, + url = {https://doi.org/10.1103/physrevb.88.094305}, + volume = {88}, + year = {2013}, + pages = {094305}, +} + +@article{Gonze1997, + author = {Gonze, Xavier}, + doi = {10.1103/physrevb.55.10337}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = apr, + number = {16}, + pages = {10337-10354}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {First-principles responses of solids to atomic displacements and homogeneous electric fields: {Implementation} of a conjugate-gradient algorithm}, + url = {https://doi.org/10.1103/physrevb.55.10337}, + volume = {55}, + year = {1997}, +} + +@article{Gonze2005, + author = {Gonze, X. and Rignanese, G.-M. and Verstraete, M. and Beuken, J.-M. and Pouillon, Y. and Caracas, R. and Jollet, F. and Torrent, M. and Zerah, G. and Mikami, M. and Ghosez, Ph. and Veithen, M. and Raty, J.-Y. and Olevano, V. and Bruneval, F. and Reining, L. and Godby, R. and Onida, G. and D.C. Allan, D.R. Hamann}, + doi = {10.1524/zkri.220.5.558.65066}, + issn = {2196-7105, 2194-4946}, + journal = {Zeitschrift für Kristallographie - Crystalline Materials}, + month = jan, + number = {5/6}, + pages = {558-562}, + publisher = {Walter de Gruyter GmbH}, + source = {Crossref}, + title = {A brief introduction to the {ABINIT} software package}, + volume = {220}, + year = {2005}, +} + +@article{Gonze2009, + author = {Gonze, X. and Amadon, B. and Anglade, P.-M. and Beuken, J.-M. and Bottin, F. and Boulanger, P. and Bruneval, F. and Caliste, D. and Caracas, R. and Côté, M. and Deutsch, T. and Genovese, L. and Ghosez, Ph. and Giantomassi, M. and Goedecker, S. and Hamann, D.R. and Hermet, P. and Jollet, F. and Jomard, G. and Leroux, S. and Mancini, M. and Mazevet, S. and Oliveira, M.J.T. and Onida, G. and Pouillon, Y. and Rangel, T. and Rignanese, G.-M. and Sangalli, D. and Shaltaf, R. and Torrent, M. and Verstraete, M.J. and Zerah, G. and Zwanziger, J.W.}, + doi = {10.1016/j.cpc.2009.07.007}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = dec, + number = {12}, + pages = {2582-2615}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {{ABINIT:} {{First}-principles} approach to material and nanosystem properties}, + url = {https://doi.org/10.1016/j.cpc.2009.07.007}, + volume = {180}, + year = {2009}, +} + +@article{Gonze1997a, + author = {Gonze, Xavier and Lee, Changyol}, + doi = {10.1103/physrevb.55.10355}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = apr, + number = {16}, + pages = {10355-10368}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Dynamical matrices, Born effective charges, dielectric permittivity tensors, and interatomic force constants from density-functional perturbation theory}, + url = {https://doi.org/10.1103/physrevb.55.10355}, + volume = {55}, + year = {1997}, +} + +@article{Gonze2002, + author = {Gonze, X. and Beuken, J.-M. and Caracas, R. and Detraux, F. and Fuchs, M. and Rignanese, G.-M. and Sindic, L. and Verstraete, M. and Zerah, G. and Jollet, F. and Torrent, M. and Roy, A. and Mikami, M. and Ghosez, Ph. and Raty, J.-Y. and Allan, D.C.}, + doi = {10.1016/s0927-0256(02)00325-7}, + issn = {0927-0256}, + journal = {Computational Materials Science}, + month = nov, + number = {3}, + pages = {478-492}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {First-principles computation of material properties: {The} {ABINIT} software project}, + url = {https://doi.org/10.1016/s0927-0256(02)00325-7}, + volume = {25}, + year = {2002}, +} + +@book{Grimvall1981, + author = {Grimvall, G.}, + title = {The electron-phonon interaction in metals}, + isbn = {9780444861054}, + lccn = {lc81000365}, + series = {Selected topics in solid state physics}, + url = {https://books.google.be/books?id=CkR9AAAAIAAJ}, + year = {1981}, + publisher = {North-Holland Pub. Co. : sole distributors for the U.S.A. and Canada, Elsevier North-Holland}, +} + +@article{Grimme2010, + author = {Grimme, Stefan and Antony, Jens and Ehrlich, Stephan and Krieg, Helge}, + doi = {10.1063/1.3382344}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = apr, + number = {15}, + pages = {154104}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {A consistent and accurate ab initio parametrization of density functional dispersion correction {(DFT}-D) for the 94 elements H-Pu}, + url = {https://doi.org/10.1063/1.3382344}, + volume = {132}, + year = {2010}, +} + +@article{Grimme2011, + author = {Grimme, Stefan and Ehrlich, Stephan and Goerigk, Lars}, + doi = {10.1002/jcc.21759}, + issn = {0192-8651}, + journal = {J. Comput. Chem.}, + month = mar, + number = {7}, + pages = {1456-1465}, + publisher = {Wiley-Blackwell}, + source = {Crossref}, + title = {Effect of the damping function in dispersion corrected density functional theory}, + url = {https://doi.org/10.1002/jcc.21759}, + volume = {32}, + year = {2011}, +} + +@article{Grimme2006, + author = {Grimme, Stefan}, + doi = {10.1002/jcc.20495}, + issn = {0192-8651, 1096-987X}, + journal = {J. Comput. Chem.}, + number = {15}, + pages = {1787-1799}, + publisher = {Wiley-Blackwell}, + source = {Crossref}, + title = {Semiempirical {GGA}-type density functional constructed with a long-range dispersion correction}, + url = {https://doi.org/10.1002/jcc.20495}, + volume = {27}, + year = {2006}, +} + +@article{Gonze2011, + author = {Gonze, X. and Boulanger, P. and Côté, M.}, + doi = {10.1002/andp.201000100}, + issn = {0003-3804}, + journal = {Ann. Phys.}, + month = nov, + number = {1-2}, + pages = {168-178}, + publisher = {Wiley-Blackwell}, + source = {Crossref}, + title = {Theoretical approaches to the temperature and zero-point motion effects on the electronic band structure}, + url = {https://doi.org/10.1002/andp.201000100}, + volume = {523}, + year = {2010}, +} + +@article{Hamann2005, + author = {Hamann, D. R. and Wu, Xifan and Rabe, Karin M. and Vanderbilt, David}, + doi = {10.1103/physrevb.71.035117}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jan, + number = {3}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Metric tensor formulation of strain in density-functional perturbation theory}, + url = {https://doi.org/10.1103/physrevb.71.035117}, + volume = {71}, + year = {2005}, + pages = {035117}, +} + +@article{Martin2019, + author = {Martin, A. and Torrent, M. and Caracas, R.}, + doi = {10.1103/physrevb.99.094112}, + issn = {2469-9950, 2469-9969}, + journal = {Phys. Rev. B}, + month = mar, + number = {9}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Projector augmented-wave formulation of response to strain and electric-field perturbation within density functional perturbation theory}, + url = {http://dx.doi.org/10.1103/physrevb.99.094112}, + volume = {99}, + year = {2019}, + pages = {094112}, +} + +@article{Hamann1989, + author = {Hamann, D. R.}, + doi = {10.1103/physrevb.40.2980}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = aug, + number = {5}, + pages = {2980-2987}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Generalized norm-conserving pseudopotentials}, + url = {https://doi.org/10.1103/physrevb.40.2980}, + volume = {40}, + year = {1989}, +} + +@article{Hamann1979, + author = {Hamann, D. R. and Schlüter, M. and Chiang, C.}, + doi = {10.1103/physrevlett.43.1494}, + issn = {0031-9007}, + journal = {Phys. Rev. Lett.}, + month = nov, + number = {20}, + pages = {1494-1497}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Norm-Conserving Pseudopotentials}, + url = {https://doi.org/10.1103/physrevlett.43.1494}, + volume = {43}, + year = {1979}, +} + +@article{Gonze2016, + author = {Gonze, X. and Jollet, F. and Abreu Araujo, F. and Adams, D. and Amadon, B. and Applencourt, T. and Audouze, C. and Beuken, J.-M. and Bieder, J. and Bokhanchuk, A. and Bousquet, E. and Bruneval, F. and Caliste, D. and Côté, M. and Dahm, F. and Da Pieve, F. and Delaveau, M. and Di Gennaro, M. and Dorado, B. and Espejo, C. and Geneste, G. and Genovese, L. and Gerossier, A. and Giantomassi, M. and Gillet, Y. and Hamann, D.R. and He, L. and Jomard, G. and Laflamme Janssen, J. and Le Roux, S. and Levitt, A. and Lherbier, A. and Liu, F. and Lukačević, I. and Martin, A. and Martins, C. and Oliveira, M.J.T. and Poncé, S. and Pouillon, Y. and Rangel, T. and Rignanese, G.-M. and Romero, A.H. and Rousseau, B. and Rubel, O. and Shukri, A.A. and Stankovski, M. and Torrent, M. and Van Setten, M.J. and Van Troeye, B. and Verstraete, M.J. and Waroquiers, D. and Wiktor, J. and Xu, B. and Zhou, A. and Zwanziger, J.W.}, + doi = {10.1016/j.cpc.2016.04.003}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = aug, + pages = {106-131}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Recent developments in the {ABINIT} software package}, + url = {https://doi.org/10.1016/j.cpc.2016.04.003}, + volume = {205}, + year = {2016}, +} + +@article{Gonze2020, + Author = {Xavier Gonze and Bernard Amadon and Gabriel Antonius and Frédéric Arnardi and Lucas Baguet and Jean-Michel Beuken and Jordan Bieder and François Bottin and Johann Bouchet and Eric Bousquet and Nils Brouwer and Fabien Bruneval and Guillaume Brunin and Théo Cavignac and Jean-Baptiste Charraud and Wei Chen and Michel Côté and Stefaan Cottenier and Jules Denier and Grégory Geneste and Philippe Ghosez and Matteo Giantomassi and Yannick Gillet and Olivier Gingras and Donald R. Hamann and Geoffroy Hautier and Xu He and Nicole Helbig and Natalie Holzwarth and Yongchao Jia and François Jollet and William Lafargue-Dit-Hauret and Kurt Lejaeghere and Miguel A. L. Marques and Alexandre Martin and Cyril Martins and Henrique P. C. Miranda and Francesco Naccarato and Kristin Persson and Guido Petretto and Valentin Planes and Yann Pouillon and Sergei Prokhorenko and Fabio Ricci and Gian-Marco Rignanese and Aldo H. Romero and Michael Marcus Schmitt and Marc Torrent and Michiel J. van Setten and Benoit Van Troeye and Matthieu J. Verstraete and Gilles Zérah and Josef W. Zwanziger}, + Journal = {Comput. Phys. Commun.}, + Pages = {107042}, + Title = {The Abinit project: Impact, environment and recent developments}, + Volume = {248}, + Year = {2020}, + url = {https://doi.org/10.1016/j.cpc.2019.107042} +} + + +@article{Hamann2013, + author = {Hamann, D. R.}, + doi = {10.1103/physrevb.88.085117}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = aug, + number = {8}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Optimized norm-conserving Vanderbilt pseudopotentials}, + url = {https://doi.org/10.1103/physrevb.88.085117}, + volume = {88}, + year = {2013}, + pages = {085117}, +} + +@inproceedings{Harju2013, + author = {Harju, Ari and Siro, Topi and Canova, Filippo Federici and Hakala, Samuli and Rantalaiho, Teemu}, + title = {Computational Physics on Graphics Processing Units}, + booktitle = {Proceedings of the 11th International Conference on Applied Parallel and Scientific Computing}, + series = {PARA'12}, + year = {2013}, + isbn = {978-3-642-36802-8}, + location = {Helsinki, Finland}, + pages = {3--26}, + numpages = {24}, + url = {http://dx.doi.org/10.1007/978-3-642-36803-5_1}, + doi = {10.1007/978-3-642-36803-5_1}, + acmid = {2451766}, + publisher = {Springer-Verlag}, + address = {Berlin, Heidelberg}, + keywords = {computational physics, graphics processing units}, +} + +@article{Gull2011, + author = {Gull, Emanuel and Millis, Andrew J. and Lichtenstein, Alexander I. and Rubtsov, Alexey N. and Troyer, Matthias and Werner, Philipp}, + doi = {10.1103/revmodphys.83.349}, + issn = {0034-6861, 1539-0756}, + journal = {Rev. Mod. Phys.}, + month = may, + number = {2}, + pages = {349-404}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Continuous-time Monte Carlo methods for quantum impurity models}, + url = {https://doi.org/10.1103/revmodphys.83.349}, + volume = {83}, + year = {2011}, +} + +@book{Hellwege1985, + doi = {10.1007/b19992}, + publisher = {Springer-Verlag}, + source = {Crossref}, + title = {Electrical Resistivity, Thermoelectrical Power and Optical Properties}, + url = {https://doi.org/10.1007/b19992}, + year = {1985}, + isbn = {354011694X}, +} + +@article{Haydock1980, + author = {Haydock, Roger}, + doi = {10.1016/0010-4655(80)90101-0}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = sep, + number = {1}, + pages = {11-16}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {The recursive solution of the {Schrödinger} equation}, + url = {https://doi.org/10.1016/0010-4655(80)90101-0}, + volume = {20}, + year = {1980}, +} + +@article{Hartwigsen1998, + author = {Hartwigsen, C. and Goedecker, S. and Hutter, J.}, + doi = {10.1103/physrevb.58.3641}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = aug, + number = {7}, + pages = {3641-3662}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Relativistic separable dual-space {Gaussian} pseudopotentials from H to Rn}, + url = {https://doi.org/10.1103/physrevb.58.3641}, + volume = {58}, + year = {1998}, +} + +@article{Harl2010, + author = {Harl, Judith and Schimka, Laurids and Kresse, Georg}, + doi = {10.1103/physrevb.81.115126}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = mar, + number = {11}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Assessing the quality of the random phase approximation for lattice constants and atomization energies of solids}, + url = {https://doi.org/10.1103/physrevb.81.115126}, + volume = {81}, + year = {2010}, + pages = {115126}, +} + +@article{Hedin1965, + author = {Hedin, Lars}, + doi = {10.1103/physrev.139.a796}, + issn = {0031-899X}, + journal = {Phys. Rev.}, + month = aug, + number = {3A}, + pages = {A796-A823}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {New Method for Calculating the One-Particle Green's Function with Application to the Electron-Gas Problem}, + url = {https://doi.org/10.1103/physrev.139.a796}, + volume = {139}, + year = {1965}, +} + +@article{Henkelman2000, + author = {Henkelman, Graeme and Jónsson, Hannes}, + doi = {10.1063/1.1323224}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = dec, + number = {22}, + pages = {9978-9985}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Improved tangent estimate in the nudged elastic band method for finding minimum energy paths and saddle points}, + url = {https://doi.org/10.1063/1.1323224}, + volume = {113}, + year = {2000}, +} + +@article{He2014, + author = {He, Lianhua and Liu, Fang and Hautier, Geoffroy and Oliveira, Micael J. T. and Marques, Miguel A. L. and Vila, Fernando D. and Rehr, J. J. and Rignanese, G.-M. and Zhou, Aihui}, + doi = {10.1103/physrevb.89.064305}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = feb, + number = {6}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Accuracy of generalized gradient approximation functionals for density-functional perturbation theory calculations}, + url = {https://doi.org/10.1103/physrevb.89.064305}, + volume = {89}, + year = {2014}, + pages = {064305}, +} + +@article{Holzwarth2001, + author = {Holzwarth, N.A.W. and Tackett, A.R. and Matthews, G.E.}, + doi = {10.1016/s0010-4655(00)00244-7}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = apr, + number = {3}, + pages = {329-347}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {A Projector Augmented Wave {(PAW)} code for electronic structure calculations, Part I: {Atompaw} for generating atom-centered functions}, + url = {https://doi.org/10.1016/s0010-4655(00)00244-7}, + volume = {135}, + year = {2001}, +} + +@article{Holzwarth1997, + author = {Holzwarth, N. A. W. and Matthews, G. E. and Dunning, R. B. and Tackett, A. R. and Zeng, Y.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.55.2005}, + title = {Comparison of the projector augmented-wave, pseudopotential, and linearized augmented-plane-wave formalisms for density-functional calculations of solids}, + url = {http://dx.doi.org/10.1103/physrevb.55.2005}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {4}, + month = jan, + volume = {55}, + source = {Crossref}, + year = {1997}, + pages = {2005-2017}, +} + +@article{Jollet2009, + author = {Jollet, F. and Jomard, G. and Amadon, B. and Crocombette, J. P. and Torumba, D.}, + doi = {10.1103/physrevb.80.235109}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = dec, + number = {23}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Hybrid functional for correlated electrons in the projector augmented-wave formalism: {Study} of multiple minima for actinide oxides}, + url = {https://doi.org/10.1103/physrevb.80.235109}, + volume = {80}, + year = {2009}, + pages = {235109}, +} + +@article{Hermet2009, + author = {Hermet, P and Veithen, M and Ghosez, Ph}, + doi = {10.1088/0953-8984/21/21/215901}, + issn = {0953-8984, 1361-648X}, + journal = {J. Phys.: Condens. Matter}, + month = apr, + number = {21}, + pages = {215901}, + publisher = {IOP Publishing}, + source = {Crossref}, + title = {Raman scattering intensities in BaTiO3 and PbTiO3 prototypical ferroelectrics from density functional theory}, + url = {https://doi.org/10.1088/0953-8984/21/21/215901}, + volume = {21}, + year = {2009}, +} + +@article{Hybertsen1989, + title = {Calculation of Coulomb-interaction parameters for ${{La}}_{2}$${{CuO}}_{4}$ using a constrained-density-functional approach}, + author = {Hybertsen, Mark S. and Schl\"uter, Michael and Christensen, Niels E.}, + journal = {Phys. Rev. B}, + volume = {39}, + issue = {13}, + pages = {9028--9041}, + numpages = {0}, + year = {1989}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.39.9028}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.39.9028} +} + + +@article{Kawasuso2005, + author = {Kawasuso, A. and Yoshikawa, M. and Itoh, H. and Chiba, T. and Higuchi, T. and Betsuyaku, K. and Redmann, F. and Krause-Rehberg, R.}, + doi = {10.1103/physrevb.72.045204}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jul, + number = {4}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electron-positron momentum distributions associated with isolated silicon vacancies {in3C−SiC}}, + url = {https://doi.org/10.1103/physrevb.72.045204}, + volume = {72}, + year = {2005}, + pages = {045204}, +} + +@article{Kingsmith1993, + author = {King-Smith, R. D. and Vanderbilt, David}, + doi = {10.1103/physrevb.47.1651}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jan, + number = {3}, + pages = {1651-1654}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Theory of polarization of crystalline solids}, + url = {https://doi.org/10.1103/physrevb.47.1651}, + volume = {47}, + year = {1993}, +} + +@article{Hughes1996, + author = {Hughes, James L. P. and Sipe, J. E.}, + doi = {10.1103/physrevb.53.10751}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = apr, + number = {16}, + pages = {10751-10763}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Calculation of second-order optical response in semiconductors}, + url = {https://doi.org/10.1103/physrevb.53.10751}, + volume = {53}, + year = {1996}, +} + +@article{Hohenberg1964, + author = {Hohenberg, P. and Kohn, W.}, + doi = {10.1103/physrev.136.b864}, + issn = {0031-899X}, + journal = {Phys. Rev.}, + month = nov, + number = {3B}, + pages = {B864-B871}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Inhomogeneous Electron Gas}, + url = {https://doi.org/10.1103/physrev.136.b864}, + volume = {136}, + year = {1964}, +} + +@article{Hybertsen1986, + author = {Hybertsen, Mark S. and Louie, Steven G.}, + doi = {10.1103/physrevb.34.5390}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = oct, + number = {8}, + pages = {5390-5413}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electron correlation in semiconductors and insulators: {Band} gaps and quasiparticle energies}, + url = {https://doi.org/10.1103/physrevb.34.5390}, + volume = {34}, + year = {1986}, +} + +@article{Jollet2014, + author = {Jollet, François and Torrent, Marc and Holzwarth, Natalie}, + doi = {10.1016/j.cpc.2013.12.023}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = apr, + number = {4}, + pages = {1246-1254}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Generation of Projector Augmented-Wave atomic data: {A} 71 element validated table in the {XML} format}, + url = {https://doi.org/10.1016/j.cpc.2013.12.023}, + volume = {185}, + year = {2014}, +} + +@article{Jomard2008, + title = {Structural, thermodynamic, and electronic properties of plutonium oxides from first principles}, + author = {Jomard, Gérald and Amadon, Bernard and Bottin, Francois and Torrent, Marc}, + journal = {Phys. Rev. B}, + volume = {78}, + issue = {7}, + pages = {075125}, + numpages = {11}, + year = {2008}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.78.075125}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.78.075125} +} + +@article{Hybertsen1985, + author = {Hybertsen, Mark S. and Louie, Steven G.}, + doi = {10.1103/physrevlett.55.1418}, + issn = {0031-9007}, + journal = {Phys. Rev. Lett.}, + month = sep, + number = {13}, + pages = {1418-1421}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {First-Principles Theory of Quasiparticles: {Calculation} of Band Gaps in Semiconductors and Insulators}, + url = {https://doi.org/10.1103/physrevlett.55.1418}, + volume = {55}, + year = {1985}, +} + +@article{Kohn1965, + author = {Kohn, W. and Sham, L. J.}, + doi = {10.1103/physrev.140.a1133}, + issn = {0031-899X}, + journal = {Phys. Rev.}, + month = nov, + number = {4A}, + pages = {A1133-A1138}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Self-Consistent Equations Including Exchange and Correlation Effects}, + url = {https://doi.org/10.1103/physrev.140.a1133}, + volume = {140}, + year = {1965}, +} + +@article{Laflamme2015, + author = {Laflamme Janssen, Jonathan and Rousseau, Bruno and Côté, Michel}, + doi = {10.1103/physrevb.91.125120}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = mar, + number = {12}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Efficient dielectric matrix calculations using the {Lanczos} algorithm for fast many-body ${G}_{0}{W}_{0}$ implementations}, + url = {https://doi.org/10.1103/physrevb.91.125120}, + volume = {91}, + year = {2015}, + pages = {125120}, +} + +@article{Kresse1999, + author = {Kresse, G. and Joubert, D.}, + doi = {10.1103/physrevb.59.1758}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jan, + number = {3}, + pages = {1758-1775}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {From ultrasoft pseudopotentials to the projector augmented-wave method}, + url = {https://doi.org/10.1103/physrevb.59.1758}, + volume = {59}, + year = {1999}, +} + +@article{Kotliar2006, + author = {Kotliar, G. and Savrasov, S. Y. and Haule, K. and Oudovenko, V. S. and Parcollet, O. and Marianetti, C. A.}, + doi = {10.1103/revmodphys.78.865}, + issn = {0034-6861, 1539-0756}, + journal = {Rev. Mod. Phys.}, + month = aug, + number = {3}, + pages = {865-951}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electronic structure calculations with dynamical mean-field theory}, + url = {https://doi.org/10.1103/revmodphys.78.865}, + volume = {78}, + year = {2006}, +} + +@article{Lebegue2010, + author = {Lebègue, S. and Harl, J. and Gould, Tim and Ángyán, J. G. and Kresse, G. and Dobson, J. F.}, + doi = {10.1103/physrevlett.105.196401}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = nov, + number = {19}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Cohesive Properties and Asymptotics of the Dispersion Interaction in Graphite by the Random Phase Approximation}, + url = {https://doi.org/10.1103/physrevlett.105.196401}, + volume = {105}, + year = {2010}, + pages = {196401}, +} + +@article{Lee1995, + author = {Lee, Changyol and Gonze, Xavier}, + doi = {10.1103/physrevb.51.8610}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = apr, + number = {13}, + pages = {8610-8613}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Ab initio calculation of the thermodynamic properties and atomic temperature factors {ofSiO2α}-quartz and stishovite}, + url = {https://doi.org/10.1103/physrevb.51.8610}, + volume = {51}, + year = {1995}, +} + +@article{Lee2010, + title = {Higher-accuracy van der Waals density functional}, + author = {Lee, Kyuho and Murray, \'Eamonn D. and Kong, Lingzhu and Lundqvist, Bengt I. and Langreth, David C.}, + journal = {Phys. Rev. B}, + volume = {82}, + issue = {8}, + pages = {081101}, + numpages = {4}, + year = {2010}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.82.081101}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.82.081101} +} + +@book{Lindhard1954, + author = {Lindhard, J.}, + title = {On the Properties of a Gas of Charged Particles, by J. Lindhard}, + url = {https://books.google.be/books?id=hmRuQwAACAAJ}, + year = {1954}, + publisher = {E. Munksgaard}, +} + +@article{Laflamme2016, + author = {Laflamme Janssen, J. and Gillet, Y. and Poncé, S. and Martin, A. and Torrent, M. and Gonze, X.}, + doi = {10.1103/physrevb.93.205147}, + issn = {2469-9950, 2469-9969}, + journal = {Phys. Rev. B}, + month = may, + number = {20}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Precise effective masses from density functional perturbation theory}, + url = {https://doi.org/10.1103/physrevb.93.205147}, + volume = {93}, + year = {2016}, + pages = {205147}, +} + +@article{Lechermann2006, + author = {Lechermann, F. and Georges, A. and Poteryaev, A. and Biermann, S. and Posternak, M. and Yamasaki, A. and Andersen, O. K.}, + doi = {10.1103/physrevb.74.125120}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = sep, + number = {12}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Dynamical mean-field theory using Wannier functions: {A} flexible route to electronic structure calculations of strongly correlated materials}, + url = {https://doi.org/10.1103/physrevb.74.125120}, + volume = {74}, + year = {2006}, + pages = {125120}, +} + +@article{Levitt2015, + author = {Levitt, Antoine and Torrent, Marc}, + doi = {10.1016/j.cpc.2014.10.015}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = feb, + pages = {98-105}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Parallel eigensolvers in plane-wave Density Functional Theory}, + url = {https://doi.org/10.1016/j.cpc.2014.10.015}, + volume = {187}, + year = {2015}, +} + +@article{Lin2016, + Author = {Lin Lin}, + Journal = {J. Chem. Theory Comput.}, + Pages = {2242}, + Title = {Adaptively Compressed Exchange Operator}, + Volume = {12}, + Year = {2016}, + doi = {10.1021/acs.jctc.6b00092} +} + +@article{Ma2015, + author = {Ma, Pui-Wai and Dudarev, S. L.}, + doi = {10.1103/physrevb.91.054420}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = feb, + number = {5}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Constrained density functional for noncollinear magnetism}, + url = {https://doi.org/10.1103/physrevb.91.054420}, + volume = {91}, + year = {2015}, + pages = {054420}, +} + +@article{Luttinger1955, + author = {Luttinger, J. M. and Kohn, W.}, + doi = {10.1103/physrev.97.869}, + issn = {0031-899X}, + journal = {Phys. Rev.}, + month = feb, + number = {4}, + pages = {869-883}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Motion of Electrons and Holes in Perturbed Periodic Fields}, + url = {https://doi.org/10.1103/physrev.97.869}, + volume = {97}, + year = {1955}, +} + +@article{Lejaeghere2014, + author = {Lejaeghere, K. and Van Speybroeck, V. and Van Oost, G. and Cottenier, S.}, + doi = {10.1080/10408436.2013.772503}, + issn = {1040-8436, 1547-6561}, + journal = {Crit. Rev. Solid State Mater. Sci.}, + month = oct, + number = {1}, + pages = {1-24}, + publisher = {Informa UK Limited}, + source = {Crossref}, + title = {Error Estimates for Solid-State Density-Functional Theory Predictions: {An} Overview by Means of the Ground-State Elemental Crystals}, + url = {https://doi.org/10.1080/10408436.2013.772503}, + volume = {39}, + year = {2013}, +} + +@article{Maintz2012, + author = {Maintz, Stefan and Eck, Bernhard and Dronskowski, Richard}, + doi = {10.1016/j.cpc.2011.03.010}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = jul, + number = {7}, + pages = {1421-1427}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Speeding up plane-wave electronic-structure calculations using graphics-processing units}, + url = {https://doi.org/10.1016/j.cpc.2011.03.010}, + volume = {182}, + year = {2011}, +} + +@article{Liechtenstein1995, + author = {Liechtenstein, A. I. and Anisimov, V. I. and Zaanen, J.}, + doi = {10.1103/physrevb.52.r5467}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = aug, + number = {8}, + pages = {R5467-R5470}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Density-functional theory and strong interactions: {Orbital} ordering in Mott-Hubbard insulators}, + url = {https://doi.org/10.1103/physrevb.52.r5467}, + volume = {52}, + year = {1995}, +} + +@article{Marek2014, + author = {Marek, A and Blum, V and Johanni, R and Havu, V and Lang, B and Auckenthaler, T and Heinecke, A and Bungartz, H-J and Lederer, H}, + doi = {10.1088/0953-8984/26/21/213201}, + issn = {0953-8984, 1361-648X}, + journal = {J. Phys.: Condens. Matter}, + month = may, + number = {21}, + pages = {213201}, + publisher = {IOP Publishing}, + source = {Crossref}, + title = {The {ELPA} library: {Scalable} parallel eigenvalue solutions for electronic structure theory and computational science}, + url = {https://doi.org/10.1088/0953-8984/26/21/213201}, + volume = {26}, + year = {2014}, +} + +@article{Marques2012, + author = {Marques, Miguel A.L. and Oliveira, Micael J.T. and Burnus, Tobias}, + doi = {10.1016/j.cpc.2012.05.007}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = oct, + number = {10}, + pages = {2272-2281}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Libxc: {A} library of exchange and correlation functionals for density functional theory}, + url = {https://doi.org/10.1016/j.cpc.2012.05.007}, + volume = {183}, + year = {2012}, +} + +@article{Methfessel1989, + author = {Methfessel, M. and Paxton, A. T.}, + doi = {10.1103/physrevb.40.3616}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = aug, + number = {6}, + pages = {3616-3621}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {High-precision sampling for Brillouin-zone integration in metals}, + url = {https://doi.org/10.1103/physrevb.40.3616}, + volume = {40}, + year = {1989}, +} + +@article{Marx1996, + author = {Marx, Dominik and Parrinello, Michele}, + doi = {10.1063/1.471221}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = mar, + number = {11}, + pages = {4077-4082}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Ab initio path integral molecular dynamics: {Basic} ideas}, + url = {https://doi.org/10.1063/1.471221}, + volume = {104}, + year = {1996}, +} + +@article{Mazevet2010, +author = "S. Mazevet and M. Torrent and V. Recoules and F. Jollet", +title = "Calculations of the transport properties within the PAW formalism", +journal = "High Energy Density Physics", +volume = "6", +number = "1", +pages = "84 - 88", +year = "2010", +issn = "1574-1818", +doi = "https://doi.org/10.1016/j.hedp.2009.06.004", +url = "http://www.sciencedirect.com/science/article/pii/S1574181809000664", +} + +@article{Mecholsky2014, + author = {Mecholsky, Nicholas A. and Resca, Lorenzo and Pegg, Ian L. and Fornari, Marco}, + doi = {10.1103/physrevb.89.155131}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = apr, + number = {15}, + pages = {155131}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Theory of band warping and its effects on thermoelectronic transport properties}, + url = {https://doi.org/10.1103/physrevb.89.155131}, + volume = {89}, + year = {2014}, +} + +@article{Momma2011, + author = {Momma, Koichi and Izumi, Fujio}, + doi = {10.1107/s0021889811038970}, + issn = {0021-8898}, + journal = {J Appl Cryst}, + month = oct, + number = {6}, + pages = {1272-1276}, + publisher = {International Union of Crystallography (IUCr)}, + source = {Crossref}, + title = {{VESTA} 3for three-dimensional visualization of crystal, volumetric and morphology data}, + url = {https://doi.org/10.1107/s0021889811038970}, + volume = {44}, + year = {2011}, +} + +@article{Medeiros2014, + author = {Medeiros, Paulo V. C. and Stafström, Sven and Björk, Jonas}, + doi = {10.1103/physrevb.89.041407}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jan, + number = {4}, + pages = {041407}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Effects of extrinsic and intrinsic perturbations on the electronic structure of graphene: {Retaining} an effective primitive cell band structure by band unfolding}, + url = {https://doi.org/10.1103/physrevb.89.041407}, + volume = {89}, + year = {2014}, +} + +@article{Neubeck1999, + author = {Neubeck, W. and Vettier, C. and Fernandez, V. and de Bergevin, F. and Giles, C.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.370041}, + title = {Observation of orbital moment in {NiO} using magnetic x-ray scattering}, + url = {http://dx.doi.org/10.1063/1.370041}, + journal = {Journal of Applied Physics}, + issn = {0021-8979, 1089-7550}, + number = {8}, + month = apr, + volume = {85}, + source = {Crossref}, + year = {1999}, + pages = {4847-4849}, +} + +@article{Nunes2001, + author = {Nunes, R. W. and Gonze, Xavier}, + doi = {10.1103/physrevb.63.155107}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = mar, + number = {15}, + pages = {155107}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Berry-phase treatment of the homogeneous electric field perturbation in insulators}, + url = {https://doi.org/10.1103/physrevb.63.155107}, + volume = {63}, + year = {2001}, +} + +@article{Nunes1994, + author = {Nunes, R. W. and Vanderbilt, David}, + doi = {10.1103/physrevlett.73.712}, + number = {5}, + pages = {712-715}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevlett.73.712}, + volume = {73}, + journal = {Phys. Rev. Lett.}, + publisher = {American Physical Society (APS)}, + title = {Real-Space Approach to Calculation of Electric Polarization and Dielectric Constants}, + issn = {0031-9007}, + year = {1994}, + month = aug, +} + + +@article{Mills1994, + author = {Mills, Greg and Jónsson, Hannes}, + doi = {10.1103/physrevlett.72.1124}, + issn = {0031-9007}, + journal = {Phys. Rev. Lett.}, + month = feb, + number = {7}, + pages = {1124-1127}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Quantum and thermal effects {in H$_2$ dissociative} adsorption: {Evaluation} of free energy barriers in multidimensional quantum systems}, + url = {https://doi.org/10.1103/physrevlett.72.1124}, + volume = {72}, + year = {1994}, +} + +@article{Nieminen1985, + author = {Nieminen, R. M. and Boronski, E. and Lantto, L. J.}, + doi = {10.1103/physrevb.32.1377}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = jul, + number = {2}, + pages = {1377-1379}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Two-component density-functional theory: {Application} to positron states}, + url = {https://doi.org/10.1103/physrevb.32.1377}, + volume = {32}, + year = {1985}, +} + +@article{Onida2002, + author = {Onida, Giovanni and Reining, Lucia and Rubio, Angel}, + doi = {10.1103/revmodphys.74.601}, + issn = {0034-6861, 1539-0756}, + journal = {Rev. Mod. Phys.}, + month = jun, + number = {2}, + pages = {601-659}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electronic excitations: {{Density}-functional} versus many-body Green’s-function approaches}, + url = {https://doi.org/10.1103/revmodphys.74.601}, + volume = {74}, + year = {2002}, +} + +@article{Pickett1988, + author = {Pickett, Warren E. and Krakauer, Henry and Allen, Philip B.}, + doi = {10.1103/physrevb.38.2721}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = aug, + number = {4}, + pages = {2721-2726}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Smooth {Fourier} interpolation of periodic functions}, + url = {https://doi.org/10.1103/physrevb.38.2721}, + volume = {38}, + year = {1988}, +} + +@article{Pickett1998, + title = {Reformulation of the ${LDA}+U$ method for a local-orbital basis}, + author = {Pickett, W. E. and Erwin, S. C. and Ethridge, E. C.}, + journal = {Phys. Rev. B}, + volume = {58}, + issue = {3}, + pages = {1201--1209}, + numpages = {0}, + year = {1998}, + month = {Jul}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.58.1201}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.58.1201} +} + + +@article{Perdew1981, + author = {Perdew, J. P. and Zunger, Alex}, + doi = {10.1103/physrevb.23.5048}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = may, + number = {10}, + pages = {5048-5079}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Self-interaction correction to density-functional approximations for many-electron systems}, + url = {https://doi.org/10.1103/physrevb.23.5048}, + volume = {23}, + year = {1981}, +} + +@article{Perrot1979, + author = {Perrot, F.}, + doi = {10.1103/physreva.20.586}, + issn = {0556-2791}, + journal = {Phys. Rev. A}, + month = aug, + number = {2}, + pages = {586-594}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Gradient correction to the statistical electronic free energy at nonzero temperatures: {Application} to equation-of-state calculations}, + url = {https://doi.org/10.1103/physreva.20.586}, + volume = {20}, + year = {1979}, +} + +@article{Ponce2014, + author = {Poncé, S. and Antonius, G. and Boulanger, P. and Cannuccia, E. and Marini, A. and Côté, M. and Gonze, X.}, + doi = {10.1016/j.commatsci.2013.11.031}, + issn = {0927-0256}, + journal = {Computational Materials Science}, + month = feb, + pages = {341-348}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Verification of first-principles codes: {Comparison} of total energies, phonon frequencies, electron–phonon coupling and zero-point motion correction to the gap between {ABINIT} and {QE/Yambo}}, + url = {https://doi.org/10.1016/j.commatsci.2013.11.031}, + volume = {83}, + year = {2014}, +} + +@article{Ong2013, + author = {Ong, Shyue Ping and Richards, William Davidson and Jain, Anubhav and Hautier, Geoffroy and Kocher, Michael and Cholia, Shreyas and Gunter, Dan and Chevrier, Vincent L. and Persson, Kristin A. and Ceder, Gerbrand}, + doi = {10.1016/j.commatsci.2012.10.028}, + issn = {0927-0256}, + journal = {Computational Materials Science}, + month = feb, + pages = {314-319}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Python Materials Genomics (pymatgen): {A} robust, open-source python library for materials analysis}, + url = {https://doi.org/10.1016/j.commatsci.2012.10.028}, + volume = {68}, + year = {2013}, +} + +@article{Popescu2010, + author = {Popescu, Voicu and Zunger, Alex}, + doi = {10.1103/physrevlett.104.236403}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = jun, + number = {23}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Effective Band Structure of Random Alloys}, + url = {https://doi.org/10.1103/physrevlett.104.236403}, + volume = {104}, + year = {2010}, + pages = {236403}, +} + +@article{Petrilli1998, + author = {Petrilli, Helena M. and Blöchl, Peter E. and Blaha, Peter and Schwarz, Karlheinz}, + doi = {10.1103/physrevb.57.14690}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jun, + number = {23}, + pages = {14690-14697}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electric-field-gradient calculations using the projector augmented wave method}, + url = {https://doi.org/10.1103/physrevb.57.14690}, + volume = {57}, + year = {1998}, +} + +@article{Ponce2014a, + author = {Poncé, S. and Antonius, G. and Gillet, Y. and Boulanger, P. and Laflamme Janssen, J. and Marini, A. and Côté, M. and Gonze, X.}, + doi = {10.1103/physrevb.90.214304}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = dec, + number = {21}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Temperature dependence of electronic eigenenergies in the adiabatic harmonic approximation}, + url = {https://doi.org/10.1103/physrevb.90.214304}, + volume = {90}, + year = {2014}, + pages = {214304}, +} + +@article{Ponce2015, + author = {Poncé, S. and Gillet, Y. and Laflamme Janssen, J. and Marini, A. and Verstraete, M. and Gonze, X.}, + doi = {10.1063/1.4927081}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = sep, + number = {10}, + pages = {102813}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Temperature dependence of the electronic structure of semiconductors and insulators}, + url = {https://doi.org/10.1063/1.4927081}, + volume = {143}, + year = {2015}, +} + +@article{Pickard2001, + author = {Pickard, Chris J. and Mauri, Francesco}, + doi = {10.1103/physrevb.63.245101}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = may, + number = {24}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {All-electron magnetic response with pseudopotentials: {Nmr} chemical shifts}, + url = {https://doi.org/10.1103/physrevb.63.245101}, + volume = {63}, + year = {2001}, + pages = {245101}, +} + +@article{Pouillon2011, + author = {Pouillon, Yann and Beuken, Jean-Michel and Deutsch, Thierry and Torrent, Marc and Gonze, Xavier}, + doi = {10.1109/mcse.2011.13}, + issn = {1521-9615}, + journal = {Comput. Sci. Eng.}, + month = jan, + number = {1}, + pages = {62-69}, + publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, + source = {Crossref}, + title = {Organizing Software Growth and Distributed Development: {The} Case of Abinit}, + url = {https://doi.org/10.1109/mcse.2011.13}, + volume = {13}, + year = {2011}, +} + +@article{Payne1992, + author = {Payne, M. C. and Teter, M. P. and Allan, D. C. and Arias, T. A. and Joannopoulos, J. D.}, + doi = {10.1103/revmodphys.64.1045}, + issn = {0034-6861, 1539-0756}, + journal = {Rev. Mod. Phys.}, + month = oct, + number = {4}, + pages = {1045-1097}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Iterative minimization techniques for ab initio total-energy calculations: {Molecular} dynamics and conjugate gradients}, + url = {https://doi.org/10.1103/revmodphys.64.1045}, + volume = {64}, + year = {1992}, +} + +@article{KingSmith1991, + author = {King-Smith, R. D. and Payne, M. C. and Lin, J. S.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.44.13063}, + title = {Real-space implementation of nonlocal pseudopotentials for first-principles total-energy calculations}, + url = {http://dx.doi.org/10.1103/physrevb.44.13063}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {23}, + month = dec, + volume = {44}, + source = {Crossref}, + year = {1991}, + pages = {13063-13066}, +} + +@article{Popescu2012, + author = {Popescu, Voicu and Zunger, Alex}, + doi = {10.1103/physrevb.85.085201}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = feb, + number = {8}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Extracting E versus k⃗ effective band structure from supercell calculations on alloys and impurities}, + url = {https://doi.org/10.1103/physrevb.85.085201}, + volume = {85}, + year = {2012}, + pages = {085201}, +} + +@article{Profeta2003, + author = {Profeta, Mickael and Mauri, Francesco and Pickard, Chris J.}, + doi = {9.1021/ja027124r}, + issn = {0002-7863, 1520-5126}, + journal = {J. Am. Chem. Soc.}, + month = jan, + number = {2}, + pages = {541-548}, + publisher = {American Chemical Society (ACS)}, + source = {Crossref}, + title = {Accurate First Principles Prediction of $^1$$^7$O NMR Parameters in SiO$_2$ : Assignment of the Zeolite Ferrierite Spectrum}, + url = {https://doi.org/10.1021/ja027124r}, + volume = {125}, + year = {2003}, +} + +@article{Rauch2011, + author = {Rauch, Christian and Makkonen, Ilja and Tuomisto, Filip}, + doi = {10.1103/physrevb.84.125201}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = sep, + number = {12}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Identifying vacancy complexes in compound semiconductors with positron annihilation spectroscopy: {A} case study of {InN}}, + url = {https://doi.org/10.1103/physrevb.84.125201}, + volume = {84}, + year = {2011}, + pages = {125201}, +} + +@article{Resta1994, + author = {Resta, Raffaele}, + doi = {10.1103/revmodphys.66.899}, + issn = {0034-6861, 1539-0756}, + journal = {Rev. Mod. Phys.}, + month = jul, + number = {3}, + pages = {899-915}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Macroscopic polarization in crystalline dielectrics: {The} geometric phase approach}, + url = {https://doi.org/10.1103/revmodphys.66.899}, + volume = {66}, + year = {1994}, +} + +@article{Puska1995, + author = {Puska, M. J. and Seitsonen, Ari P. and Nieminen, R. M.}, + doi = {10.1103/physrevb.52.10947}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = oct, + number = {15}, + pages = {10947-10961}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electron-positron Car-Parrinello methods: {{Self}-consistent} treatment of charge densities and ionic relaxations}, + url = {https://doi.org/10.1103/physrevb.52.10947}, + volume = {52}, + year = {1995}, +} + +@article{Rappe1990, + author = {Rappe, Andrew M. and Rabe, Karin M. and Kaxiras, Efthimios and Joannopoulos, J. D.}, + doi = {10.1103/physrevb.41.1227}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jan, + number = {2}, + pages = {1227-1230}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Optimized pseudopotentials}, + url = {https://doi.org/10.1103/physrevb.41.1227}, + volume = {41}, + year = {1990}, +} + +@article{Rangel2016, + author = {Rangel, T. and Caliste, D. and Genovese, L. and Torrent, M.}, + doi = {10.1016/j.cpc.2016.06.012}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = nov, + pages = {1-8}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {A wavelet-based Projector Augmented-Wave {(PAW)} method: {Reaching} frozen-core all-electron precision with a systematic, adaptive and localized wavelet basis set}, + url = {https://doi.org/10.1016/j.cpc.2016.06.012}, + volume = {208}, + year = {2016}, +} + +@article{Puska1994, + author = {Puska, M. J. and Nieminen, R. M.}, + doi = {10.1103/revmodphys.66.841}, + issn = {0034-6861, 1539-0756}, + journal = {Rev. Mod. Phys.}, + month = jul, + number = {3}, + pages = {841-897}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Theory of positrons in solids and on solid surfaces}, + url = {https://doi.org/10.1103/revmodphys.66.841}, + volume = {66}, + year = {1994}, +} + +@article{Rutishauser1970, + author = {Rutishauser, H.}, + doi = {10.1007/bf02219773}, + issn = {0029-599X, 0945-3245}, + journal = {Numer. Math.}, + month = dec, + number = {3}, + pages = {205-223}, + publisher = {Springer Nature}, + source = {Crossref}, + title = {Simultaneous iteration method for symmetric matrices}, + url = {https://doi.org/10.1007/bf02219773}, + volume = {16}, + year = {1970}, +} + +@article{Rieger1999, + author = {Rieger, Martin M. and Steinbeck, L. and White, I.D. and Rojas, H.N. and Godby, R.W.}, + doi = {10.1016/s0010-4655(98)00174-x}, + issn = {0010-4655}, + journal = {Comput. Phys. Commun.}, + month = mar, + number = {3}, + pages = {211-228}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {The {GW} space-time method for the self-energy of large systems}, + url = {https://doi.org/10.1016/s0010-4655(98)00174-x}, + volume = {117}, + year = {1999}, +} + +@article{Restrepo2009, + author = {Restrepo, O. D. and Varga, K. and Pantelides, S. T.}, + doi = {10.1063/1.3147189}, + issn = {0003-6951, 1077-3118}, + journal = {Appl. Phys. Lett.}, + month = may, + number = {21}, + pages = {212103}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {First-principles calculations of electron mobilities in silicon: {Phonon} and Coulomb scattering}, + url = {https://doi.org/10.1063/1.3147189}, + volume = {94}, + year = {2009}, +} + +@article{Romanperez2009, + author = {Román-Pérez, Guillermo and Soler, José M.}, + doi = {10.1103/physrevlett.103.096102}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = aug, + number = {9}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Efficient Implementation of a van der Waals Density Functional: {Application} to Double-Wall Carbon Nanotubes}, + url = {https://doi.org/10.1103/physrevlett.103.096102}, + volume = {103}, + year = {2009}, + pages = {096102}, +} + +@article{Savrasov1996, + author = {Savrasov, S. Y. and Savrasov, D. Y.}, + doi = {10.1103/physrevb.54.16487}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = dec, + number = {23}, + pages = {16487-16501}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electron-phonon interactions and related physical properties of metals from linear-response theory}, + url = {https://doi.org/10.1103/physrevb.54.16487}, + volume = {54}, + year = {1996}, +} + +@article{Sharma2004, + author = {Sharma, S. and Ambrosch-Draxl, C.}, + doi = {10.1238/physica.topical.109a00128}, + issn = {0031-8949}, + journal = {Phys. Scr.}, + pages = {128}, + publisher = {IOP Publishing}, + source = {Crossref}, + title = {Second-Harmonic Optical Response from First Principles}, + url = {http://dx.doi.org/10.1238/physica.topical.109a00128}, + volume = {T109}, + year = {2004}, +} + +@article{Rohlfing2000, + author = {Rohlfing, Michael and Louie, Steven G.}, + doi = {10.1103/physrevb.62.4927}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = aug, + number = {8}, + pages = {4927-4944}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electron-hole excitations and optical spectra from first principles}, + url = {https://doi.org/10.1103/physrevb.62.4927}, + volume = {62}, + year = {2000}, +} + +@article{Sakuma2013a, + title = {Electronic structure of SrVO${}_{3}$ within $GW$+DMFT}, + author = {Sakuma, R. and Werner, Ph. and Aryasetiawan, F.}, + journal = {Phys. Rev. B}, + volume = {88}, + issue = {23}, + pages = {235110}, + numpages = {8}, + year = {2013}, + month = {Dec}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.88.235110}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.88.235110} +} + +@article{Sakuma2013, + author = {Sakuma, R. and Aryasetiawan, F.}, + doi = {10.1103/physrevb.87.165118}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = apr, + number = {16}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {First-principles calculations of dynamical screened interactions for the transition metal {oxidesMO} {(M=Mn,} Fe, Co, Ni)}, + url = {https://doi.org/10.1103/physrevb.87.165118}, + volume = {87}, + year = {2013}, + pages = {165118}, +} + +@article{Silvestrelli2008, + author = {Silvestrelli, Pier Luigi}, + doi = {10.1103/physrevlett.100.053002}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = feb, + number = {5}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Van der Waals Interactions in {DFT} Made Easy by Wannier Functions}, + url = {https://doi.org/10.1103/physrevlett.100.053002}, + volume = {100}, + year = {2008}, + pages = {053002}, +} + +@article{Sharma2003, + author = {Sharma, S. and Dewhurst, J. K. and Ambrosch-Draxl, C.}, + doi = {10.1103/physrevb.67.165332}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = apr, + number = {16}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Linear and second-order optical response of {III}-{V} monolayer superlattices}, + url = {https://doi.org/10.1103/physrevb.67.165332}, + volume = {67}, + year = {2003}, + pages = {165332}, +} + +@article{Silvestrelli2009, + author = {Silvestrelli, Pier Luigi}, + doi = {10.1021/jp811138n}, + issn = {1089-5639, 1520-5215}, + journal = {J. Phys. Chem. A}, + month = apr, + number = {17}, + pages = {5224-5234}, + publisher = {American Chemical Society (ACS)}, + source = {Crossref}, + title = {van der Waals Interactions in Density Functional Theory Using Wannier Functions}, + volume = {113}, + year = {2009}, +} + +@article{Rubel2014, + author = {Rubel, O. and Bokhanchuk, A. and Ahmed, S. J. and Assmann, E.}, + doi = {10.1103/physrevb.90.115202}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = sep, + number = {11}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Unfolding the band structure of disordered solids: {From} bound states to high-mobility Kane fermions}, + url = {https://doi.org/10.1103/physrevb.90.115202}, + volume = {90}, + year = {2014}, + pages = {115202}, +} + +@article{Savin1992, + author = {Savin, Andreas and Jepsen, Ove and Flad, Jürgen and Andersen, Ole Krogh and Preuss, Heinzwerner and von Schnering, Hans Georg}, + doi = {10.1002/anie.199201871}, + issn = {0570-0833, 1521-3773}, + journal = {Angew. Chem. Int. Ed. Engl.}, + month = feb, + number = {2}, + pages = {187-188}, + publisher = {Wiley-Blackwell}, + source = {Crossref}, + title = {Electron Localization in Solid-State Structures of the Elements: {The} Diamond Structure}, + url = {https://doi.org/10.1002/anie.199201871}, + volume = {31}, + year = {1992}, +} + +@article{Sawatzky1984, + title = {Magnitude and Origin of the Band Gap in NiO}, + author = {Sawatzky, G. A. and Allen, J. W.}, + journal = {Phys. Rev. Lett.}, + volume = {53}, + issue = {24}, + pages = {2339--2342}, + numpages = {0}, + year = {1984}, + month = {Dec}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.53.2339}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.53.2339} +} + +@article{Souza2002, + author = {Souza, Ivo and Íñiguez, Jorge and Vanderbilt, David}, + doi = {10.1103/physrevlett.89.117602}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = aug, + number = {11}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {First-Principles Approach to Insulators in Finite Electric Fields}, + url = {https://doi.org/10.1103/physrevlett.89.117602}, + volume = {89}, + year = {2002}, + pages = {117602}, +} + +@article{Snyder2008, + author = {Snyder, G. Jeffrey and Toberer, Eric S.}, + doi = {10.1038/nmat2090}, + issn = {1476-1122, 1476-4660}, + journal = {Nature Mater}, + month = feb, + number = {2}, + pages = {105-114}, + publisher = {Springer Nature}, + source = {Crossref}, + title = {Complex thermoelectric materials}, + url = {https://doi.org/10.1038/nmat2090}, + volume = {7}, + year = {2008}, +} + +@article{Silvestrelli2013, + author = {Silvestrelli, Pier Luigi}, + doi = {10.1063/1.4816964}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = aug, + number = {5}, + pages = {054106}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Van der Waals interactions in density functional theory by combining the quantum harmonic oscillator-model with localized Wannier functions}, + url = {https://doi.org/10.1063/1.4816964}, + volume = {139}, + year = {2013}, +} + +@article{Troullier1991, + author = {Troullier, N. and Martins, José Luriaas}, + title = {Efficient pseudopotentials for plane-wave calculations}, + journal = {Phys. Rev. B}, + volume = {43}, + issue = {3}, + pages = {1993-2006}, + numpages = {0}, + year = {1991}, + month = jan, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.43.1993}, + url = {https://doi.org/10.1103/physrevb.43.1993}, + number = {3}, + source = {Crossref}, + issn = {0163-1829, 1095-3795}, +} + +@article{Sipe1993, + author = {Sipe, J. E. and Ghahramani, Ed}, + doi = {10.1103/physrevb.48.11705}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = oct, + number = {16}, + pages = {11705-11722}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Nonlinear optical response of semiconductors in the independent-particle approximation}, + url = {https://doi.org/10.1103/physrevb.48.11705}, + volume = {48}, + year = {1993}, +} + +@article{Sterne1991, + author = {Sterne, P. A. and Kaiser, J. H.}, + doi = {10.1103/physrevb.43.13892}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jun, + number = {17}, + pages = {13892-13898}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {First-principles calculation of positron lifetimes in solids}, + url = {https://doi.org/10.1103/physrevb.43.13892}, + volume = {43}, + year = {1991}, +} + +@article{Shih2012, + author = {Shih, Bi-Ching and Zhang, Yubo and Zhang, Wenqing and Zhang, Peihong}, + doi = {10.1103/physrevb.85.045132}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jan, + number = {4}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Screened Coulomb interaction of localized electrons in solids from first principles}, + url = {https://doi.org/10.1103/physrevb.85.045132}, + volume = {85}, + year = {2012}, + pages = {045132}, +} + +@article{Tuckerman1996, + author = {Tuckerman, Mark E. and Marx, Dominik and Klein, Michael L. and Parrinello, Michele}, + doi = {10.1063/1.471771}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = apr, + number = {14}, + pages = {5579-5588}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Efficient and general algorithms for path integral {Car–Parrinello} molecular dynamics}, + url = {https://doi.org/10.1063/1.471771}, + volume = {104}, + year = {1996}, +} + +@article{Vanderbilt1998, + author = {Vanderbilt, D. and King-Smith, R. D.}, + journal = {arXiv/cond-mat}, + title = {Electronic polarization in the ultrasoft pseudopotential formalism}, + url = {https://arxiv.org/abs/cond-mat/9801177}, + volume = {9801}, + year = {1998}, +} + +@article{Vantroeye2016, + author = {Van Troeye, Benoit and Torrent, Marc and Gonze, Xavier}, + doi = {10.1103/physrevb.93.144304}, + issn = {2469-9950, 2469-9969}, + journal = {Phys. Rev. B}, + month = apr, + number = {14}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Interatomic force constants including the {DFT}-D dispersion contribution}, + url = {https://doi.org/10.1103/physrevb.93.144304}, + volume = {93}, + year = {2016}, + pages = {144304}, +} + +@article{Tran2009, + author = {Tran, Fabien and Blaha, Peter}, + doi = {10.1103/physrevlett.102.226401}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = jun, + number = {22}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Accurate Band Gaps of Semiconductors and Insulators with a Semilocal Exchange-Correlation Potential}, + url = {https://doi.org/10.1103/physrevlett.102.226401}, + volume = {102}, + year = {2009}, + pages = {226401}, +} + +@article{Torrent2008, + author = {Torrent, Marc and Jollet, François and Bottin, François and Zérah, Gilles and Gonze, Xavier}, + doi = {10.1016/j.commatsci.2007.07.020}, + issn = {0927-0256}, + journal = {Computational Materials Science}, + month = apr, + number = {2}, + pages = {337-351}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Implementation of the projector augmented-wave method in the {ABINIT} code: {Application} to the study of iron under pressure}, + url = {https://doi.org/10.1016/j.commatsci.2007.07.020}, + volume = {42}, + year = {2008}, +} + +@article{Torrent2010, + author = {Torrent, Marc and Holzwarth, N.A.W. and Jollet, François and Harris, David and Lepley, Nicholas and Xu, Xiao}, + publisher = {Elsevier BV}, + doi = {10.1016/j.cpc.2010.07.036}, + title = {Electronic structure packages: {Two} implementations of the projector augmented wave {(PAW)} formalism}, + url = {http://dx.doi.org/10.1016/j.cpc.2010.07.036}, + journal = {Computer Physics Communications}, + issn = {0010-4655}, + number = {11}, + month = nov, + volume = {181}, + source = {Crossref}, + year = {2010}, + pages = {1862-1867}, +} + +@article{Dewaele2008, + author = {Dewaele, Agnès and Torrent, Marc and Loubeyre, Paul and Mezouar, Mohamed}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.78.104102}, + title = {Compression curves of transition metals in the Mbar range: {Experiments} and projector augmented-wave calculations}, + url = {http://dx.doi.org/10.1103/physrevb.78.104102}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {10}, + month = sep, + volume = {78}, + source = {Crossref}, + year = {2008}, +} + +@article{Vasiliev1998, + author = {Vasiliev, Igor and Öğüt, Serdar and Chelikowsky, James R.}, + doi = {10.1103/physrevlett.82.1919}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = mar, + number = {9}, + pages = {1919-1922}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Ab {InitioExcitation} Spectra and Collective Electronic Response in Atoms and Clusters}, + url = {https://doi.org/10.1103/physrevlett.82.1919}, + volume = {82}, + year = {1999}, +} + +@article{Tuomisto2013, + author = {Tuomisto, Filip and Makkonen, Ilja}, + doi = {10.1103/revmodphys.85.1583}, + issn = {0034-6861, 1539-0756}, + journal = {Rev. Mod. Phys.}, + month = nov, + number = {4}, + pages = {1583-1631}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Defect identification in semiconductors with positron annihilation: {Experiment} and theory}, + url = {https://doi.org/10.1103/revmodphys.85.1583}, + volume = {85}, + year = {2013}, +} + +@article{Uehara2000, + author = {Uehara, Kentaro and Tse, John S.}, + doi = {10.1103/physrevb.61.1639}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = jan, + number = {3}, + pages = {1639-1642}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Calculations of transport properties with the linearized augmented plane-wave method}, + url = {https://doi.org/10.1103/physrevb.61.1639}, + volume = {61}, + year = {2000}, +} + +@article{Vaugier2012, + author = {Vaugier, Loïg and Jiang, Hong and Biermann, Silke}, + doi = {10.1103/physrevb.86.165105}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = oct, + number = {16}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {{HubbardUand} Hund {exchangeJin} transition metal oxides: {Screening} versus localization trends from constrained random phase approximation}, + url = {https://doi.org/10.1103/physrevb.86.165105}, + volume = {86}, + year = {2012}, + pages = {165105}, +} + +@article{Veithen2005, + author = {Veithen, M. and Gonze, X. and Ghosez, Ph.}, + doi = {10.1103/physrevb.71.125107}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = mar, + number = {12}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Nonlinear optical susceptibilities, Raman efficiencies, and electro-optic tensors from first-principles density functional perturbation theory}, + url = {https://doi.org/10.1103/physrevb.71.125107}, + volume = {71}, + year = {2005}, + pages = {125107}, +} + +@article{Wang1998, + author = {Wang, L.-W. and Bellaiche, L. and Wei, S.-H. and Zunger, A.}, + doi = {10.1103/physrevlett.80.4725}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = may, + number = {21}, + pages = {4725-4728}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {{“Majority} Representation” of Alloy Electronic States}, + url = {https://doi.org/10.1103/physrevlett.80.4725}, + volume = {80}, + year = {1998}, +} + +@article{Wang2013, + author = {Wang, Heng and LaLonde, Aaron D. and Pei, Yanzhong and Snyder, G. Jeffery}, + doi = {10.1002/adfm.201201576}, + issn = {1616-301X}, + journal = {Adv. Funct. Mater.}, + month = oct, + number = {12}, + pages = {1586-1596}, + publisher = {Wiley-Blackwell}, + source = {Crossref}, + title = {The Criteria for Beneficial Disorder in Thermoelectric Solid Solutions}, + url = {https://doi.org/10.1002/adfm.201201576}, + volume = {23}, + year = {2012}, +} + +@article{Weinan2007, + author = {E, Weinan and Ren, Weiqing and Vanden-Eijnden, Eric}, + doi = {10.1063/1.2720838}, + issn = {0021-9606, 1089-7690}, + journal = {The Journal of Chemical Physics}, + month = apr, + number = {16}, + pages = {164103}, + publisher = {AIP Publishing}, + source = {Crossref}, + title = {Simplified and improved string method for computing the minimum energy paths in barrier-crossing events}, + url = {https://doi.org/10.1063/1.2720838}, + volume = {126}, + year = {2007}, +} + +@article{Veithen2005a, + author = {Veithen, M. and Ghosez, Ph.}, + doi = {10.1103/physrevb.71.132101}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = apr, + number = {13}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Temperature dependence of the electro-optic tensor and refractive indices of ${{BaTiO}}_{3}$ from first principles}, + url = {https://doi.org/10.1103/physrevb.71.132101}, + volume = {71}, + year = {2005}, + pages = {132101}, +} + +@article{Werner2006, + title = {Continuous-Time Solver for Quantum Impurity Models}, + author = {Werner, Philipp and Comanac, Armin and de Medici, Luca and Troyer, Matthias and Millis, Andrew J.}, + journal = {Phys. Rev. Lett.}, + volume = {97}, + issue = {7}, + pages = {076405}, + numpages = {4}, + year = {2006}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.97.076405}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.97.076405}, +} + + +@article{Waroquiers2013, + author = {Waroquiers, David and Lherbier, Aurélien and Miglio, Anna and Stankovski, Martin and Poncé, Samuel and Oliveira, Micael J. T. and Giantomassi, Matteo and Rignanese, Gian-Marco and Gonze, Xavier}, + doi = {10.1103/physrevb.87.075121}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = feb, + number = {7}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Band widths and gaps from the Tran-Blaha functional: {Comparison} with many-body perturbation theory}, + url = {https://doi.org/10.1103/physrevb.87.075121}, + volume = {87}, + year = {2013}, + pages = {075121}, +} + +@article{Wiktor2014, + author = {Wiktor, Julia and Kerbiriou, Xavier and Jomard, Gérald and Esnouf, Stéphane and Barthe, Marie-France and Bertolus, Marjorie}, + doi = {10.1103/physrevb.89.155203}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = apr, + number = {15}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Positron annihilation spectroscopy investigation of vacancy clusters in silicon carbide: {Combining} experiments and electronic structure calculations}, + url = {https://doi.org/10.1103/physrevb.89.155203}, + volume = {89}, + year = {2014}, + pages = {155203}, +} + +@article{Wiktor2014a, + author = {Wiktor, Julia and Barthe, Marie-France and Jomard, Gérald and Torrent, Marc and Freyss, Michel and Bertolus, Marjorie}, + doi = {10.1103/physrevb.90.184101}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = nov, + number = {18}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Coupled experimental andi DFT+U investigation of positron lifetimes in $UO_{2}$}, + url = {https://doi.org/10.1103/physrevb.90.184101}, + volume = {90}, + year = {2014}, + pages = {184101}, +} + +@article{Wiktor2013, + author = {Wiktor, Julia and Jomard, Gérald and Torrent, Marc and Bertolus, Marjorie}, + doi = {10.1103/physrevb.87.235207}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jun, + number = {23}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electronic structure investigation of energetics and positron lifetimes of fully relaxed monovacancies with various charge states in {3C}-{SiC} and {6H}-{SiC}}, + url = {https://doi.org/10.1103/physrevb.87.235207}, + volume = {87}, + year = {2013}, + pages = {235207}, +} + +@book{Ziman1960, + author = {Ziman, J.M.}, + doi = {10.1093/acprof:oso/9780198507796.001.0001}, + month = feb, + publisher = {Oxford University Press}, + source = {Crossref}, + title = {Electrons and Phonons}, + url = {https://doi.org/10.1093/acprof:oso/9780198507796.001.0001}, + year = {2001}, + isbn = {9780198507796}, +} + +@article{Seth2016, +title = "TRIQS/CTHYB: A continuous-time quantum Monte Carlo hybridisation expansion solver for quantum impurity problems", +journal = "Computer Physics Communications", +volume = "200", +pages = "274 - 284", +year = "2016", +issn = "0010-4655", +doi = "https://doi.org/10.1016/j.cpc.2015.10.023", +url = "http://www.sciencedirect.com/science/article/pii/S001046551500404X", +author = "Priyanka Seth and Igor Krivenko and Michel Ferrero and Olivier Parcollet", +keywords = "Many-body physics, Impurity solvers, Strongly-correlated systems, DMFT, Monte Carlo, C++, Python" +} + +@article{Parcollet2015, +title = "{TRIQS}: A toolbox for research on interacting quantum systems", +journal = "Computer Physics Communications", +volume = "196", +pages = "398 - 415", +year = "2015", +url = "http://www.sciencedirect.com/science/article/pii/S0010465515001666", +author = "Olivier Parcollet and Michel Ferrero and Thomas Ayral and Hartmut Hafermann and Igor Krivenko and Laura Messio and Priyanka Seth", +} + +@article{Zhou2006a, + author = {Zhou, Yunkai and Saad, Yousef and Tiago, Murilo L. and Chelikowsky, James R.}, + doi = {10.1016/j.jcp.2006.03.017}, + issn = {0021-9991}, + journal = {J. Comput. Phys.}, + month = nov, + number = {1}, + pages = {172-184}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Self-consistent-field calculations using {Chebyshev}-filtered subspace iteration}, + url = {https://doi.org/10.1016/j.jcp.2006.03.017}, + volume = {219}, + year = {2006}, +} + +@article{Wiktor2014b, + author = {Wiktor, J. and Jomard, G. and Bertolus, M.}, + doi = {10.1016/j.nimb.2013.09.050}, + issn = {0168-583X}, + journal = {Nucl. Instrum. Methods Phys. Res., Sect. B}, + month = may, + pages = {63-67}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Electronic structure calculations of positron lifetimes in {SiC:} {{Self}-consistent} schemes and relaxation effect}, + url = {https://doi.org/10.1016/j.nimb.2013.09.050}, + volume = {327}, + year = {2014}, +} + +@article{Zwanziger2008, + author = {Zwanziger, J. W. and Torrent, M.}, + doi = {10.1007/s00723-008-0080-1}, + issn = {0937-9347, 1613-7507}, + journal = {Appl Magn Reson}, + month = may, + number = {4}, + pages = {447-456}, + publisher = {Springer Nature}, + source = {Crossref}, + title = {First-Principles Calculation of Electric Field Gradients in Metals, Semiconductors, and Insulators}, + url = {https://doi.org/10.1007/s00723-008-0080-1}, + volume = {33}, + year = {2008}, +} + +@book{Mattuck1976, + author = {Mattuck, R.D.}, + isbn = {9780486670478}, + lccn = {92004895}, + publisher = {Dover Publications, Incorporated}, + series = {Dover Books on Physics Series}, + title = {A Guide to Feynman Diagrams in the Many-body Problem}, + url = {http://books.google.co.uk/books?id=pe-v8zfxE68C}, + year = {1976}, +} + +@article{Wiktor2015, + author = {Wiktor, Julia and Jomard, Gérald and Torrent, Marc}, + doi = {10.1103/physrevb.92.125113}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = sep, + number = {12}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Two-component density functional theory within the projector augmented-wave approach: {Accurate} and self-consistent computations of positron lifetimes and momentum distributions}, + url = {https://doi.org/10.1103/physrevb.92.125113}, + volume = {92}, + year = {2015}, + pages = {125113}, +} + +@article{Panda1997, + author = {Panda, B. K. and LiMing, W. and Fung, S. and Beling, C. D.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.56.7356}, + title = {Electron-positron momentum distributions and positron lifetime in semiconductors in the generalized gradient approximation}, + url = {http://dx.doi.org/10.1103/physrevb.56.7356}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {12}, + month = sep, + volume = {56}, + source = {Crossref}, + year = {1997}, + pages = {7356-7362}, +} + +@article{Gilgien1994, + author = {Gilgien, Lise and Galli, Giulia and Gygi, François and Car, Roberto}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.72.3214}, + title = {Ab initio study of positron trapping at a vacancy in {GaAs}}, + url = {http://dx.doi.org/10.1103/physrevlett.72.3214}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007}, + number = {20}, + month = may, + volume = {72}, + source = {Crossref}, + year = {1994}, + pages = {3214-3217}, +} + +@article{Xu2014, + author = {Xu, Bin and Verstraete, Matthieu J.}, + doi = {10.1103/physrevlett.112.196603}, + issn = {0031-9007, 1079-7114}, + journal = {Phys. Rev. Lett.}, + month = may, + number = {19}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {First Principles Explanation of the Positive Seebeck Coefficient of Lithium}, + url = {https://doi.org/10.1103/physrevlett.112.196603}, + volume = {112}, + year = {2014}, + pages = {196603}, +} + +@article{Zhou2006, + author = {Zhou, Yunkai and Saad, Yousef and Tiago, Murilo L. and Chelikowsky, James R.}, + doi = {10.1103/physreve.74.066704}, + issn = {1539-3755, 1550-2376}, + journal = {Phys. Rev. E}, + month = dec, + number = {6}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Parallel self-consistent-field calculations via {Chebyshev}-filtered subspace acceleration}, + url = {https://doi.org/10.1103/physreve.74.066704}, + volume = {74}, + year = {2006}, + pages = {066704}, +} + +@article{Zwanziger2012, + author = {Zwanziger, J.W. and Galbraith, J. and Kipouros, Y. and Torrent, M. and Giantomassi, M. and Gonze, X.}, + doi = {10.1016/j.commatsci.2012.01.028}, + issn = {0927-0256}, + journal = {Computational Materials Science}, + month = jun, + pages = {113-118}, + publisher = {Elsevier BV}, + source = {Crossref}, + title = {Finite homogeneous electric fields in the projector augmented wave formalism: {Applications} to linear and nonlinear response}, + url = {https://doi.org/10.1016/j.commatsci.2012.01.028}, + volume = {58}, + year = {2012}, +} + +@article{Jia2017, + author = {Jia, Yongchao and Poncé, Samuel and Miglio, Anna and Mikami, Masayoshi and Gonze, Xavier}, + doi = {10.1002/adom.201600997}, + issn = {2195-1071}, + journal = {Adv. Opt. Mater.}, + month = mar, + number = {7}, + pages = {1600997}, + publisher = {Wiley}, + source = {Crossref}, + title = {Assessment of First-Principles and Semiempirical Methodologies for Absorption and Emission Energies of Ce3+ -Doped Luminescent Materials}, + url = {https://doi.org/10.1002/adom.201600997}, + volume = {5}, + year = {2017}, +} + +@article{Zwanziger2009, + author = {Zwanziger, J W}, + doi = {10.1088/0953-8984/21/19/195501}, + issn = {0953-8984, 1361-648X}, + journal = {J. Phys.: Condens. Matter}, + month = apr, + number = {19}, + pages = {195501}, + publisher = {IOP Publishing}, + source = {Crossref}, + title = {Computation of Mössbauer isomer shifts from first principles}, + url = {https://doi.org/10.1088/0953-8984/21/19/195501}, + volume = {21}, + year = {2009}, +} + +@article{Zwanziger2009a, + author = {Zwanziger, J. W.}, + doi = {10.1103/physrevb.79.033112}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jan, + number = {3}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {First-principles study of the nuclear quadrupole resonance parameters and orbital ordering {inLaTiO3}}, + url = {https://doi.org/10.1103/physrevb.79.033112}, + volume = {79}, + year = {2009}, + pages = {033112}, +} + +@article{Veithen2002, + author = {Veithen, M. and Gonze, X. and Ghosez, Ph.}, + doi = {10.1103/physrevb.66.235113}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = dec, + number = {23}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Electron localization: {{Band}-by-band} decomposition and application to oxides}, + url = {https://doi.org/10.1103/physrevb.66.235113}, + volume = {66}, + year = {2002}, + pages = {235113}, +} + +@article{Shishkin2006, + author = {Shishkin, M. and Kresse, G.}, + doi = {10.1103/physrevb.74.035101}, + issn = {1098-0121, 1550-235X}, + journal = {Phys. Rev. B}, + month = jul, + number = {3}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Implementation and performance of the frequency-{dependentGWmethod} within the {PAW} framework}, + url = {https://doi.org/10.1103/physrevb.74.035101}, + volume = {74}, + year = {2006}, + pages = {035101}, +} + +@article{Adler1962, + author = {Adler, Stephen L.}, + doi = {10.1103/physrev.126.413}, + issn = {0031-899X}, + journal = {Phys. Rev.}, + month = apr, + number = {2}, + pages = {413-420}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Quantum Theory of the Dielectric Constant in Real Solids}, + url = {https://doi.org/10.1103/physrev.126.413}, + volume = {126}, + year = {1962}, +} + +@article{Miyake2000, + author = {Miyake, T. and Aryasetiawan, F.}, + doi = {10.1103/physrevb.61.7172}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = mar, + number = {11}, + pages = {7172-7175}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Efficient algorithm for calculating noninteracting frequency-dependent linear response functions}, + url = {https://doi.org/10.1103/physrevb.61.7172}, + volume = {61}, + year = {2000}, +} + +@article{Gruning2009, + author = {Grüning, Myrta and Marini, Andrea and Gonze, Xavier}, + doi = {10.1021/nl803717g}, + issn = {1530-6984, 1530-6992}, + journal = {Nano Lett.}, + month = aug, + number = {8}, + pages = {2820-2824}, + publisher = {American Chemical Society (ACS)}, + source = {Crossref}, + title = {Exciton-Plasmon States in Nanoscale Materials: {Breakdown} of the {Tamm−Dancoff} Approximation}, + url = {https://doi.org/10.1021/nl803717g}, + volume = {9}, + year = {2009}, +} + +@article{Wiser1963, + author = {Wiser, Nathan}, + doi = {10.1103/physrev.129.62}, + issn = {0031-899X}, + journal = {Phys. Rev.}, + month = jan, + number = {1}, + pages = {62-69}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Dielectric Constant with Local Field Effects Included}, + url = {https://doi.org/10.1103/physrev.129.62}, + volume = {129}, + year = {1963}, +} + +@article{Baroni1986, + author = {Baroni, Stefano and Resta, Raffaele}, + doi = {10.1103/physrevb.33.7017}, + issn = {0163-1829}, + journal = {Phys. Rev. B}, + month = may, + number = {10}, + pages = {7017-7021}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Ab initiocalculation of the macroscopic dielectric constant in silicon}, + url = {https://doi.org/10.1103/physrevb.33.7017}, + volume = {33}, + year = {1986}, +} + +@article{Lebegue2003, + author = {Lebègue, S. and Arnaud, B. and Alouani, M. and Bloechl, P. E.}, + doi = {10.1103/physrevb.67.155208}, + issn = {0163-1829, 1095-3795}, + journal = {Phys. Rev. B}, + month = apr, + number = {15}, + publisher = {American Physical Society (APS)}, + source = {Crossref}, + title = {Implementation of an all-electron {GW} approximation based on the projector augmented wave method without plasmon pole approximation: {Application} to Si, {SiC,} {AlAs,} {InAs,} {NaH,} and {KH}}, + url = {https://doi.org/10.1103/physrevb.67.155208}, + volume = {67}, + year = {2003}, + pages = {155208}, +} + +@article{Geneste2017, + title = {DFT+$U$ study of self-trapping, trapping, and mobility of oxygen-type hole polarons in barium stannate}, + author = {Geneste, Gr\'egory and Amadon, Bernard and Torrent, Marc and Dezanneau, Guilhem}, + journal = {Phys. Rev. B}, + volume = {96}, + issue = {13}, + pages = {134123}, + numpages = {13}, + year = {2017}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.96.134123}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.96.134123} +} + + +@phdthesis{Moscaconte2007, + author = {Mosca Conte, A.}, + title = {Quantum mechanical modeling of nano magnetism}, + school = {SISSA}, + year = {2007}, + address = {Trieste Italy}, + opturi = {http://hdl.handle.net/20.500.11767/3935}, +} + +@mastersthesis{Rostgaard2006, + Author = {C. Rostgaard}, + Title = {Exact exchange in density functional calculations}, + School = {Technical University of Denmark}, + Address = {Lyngby}, + year = {2006}, + url = {https://wiki.fysik.dtu.dk/gpaw/_downloads/rostgaard_master.pdf} +} + +@misc{Tremblay2017, + title = {Probl\'eme \'a N-corps}, + author = {Andr\'e-Marie Tremblay}, + note = {Notes de cours}, + howpublished = {available here}, + url= {https://www.physique.usherbrooke.ca/pages/en/node/3436}, + year={2017} +} + +@article{Perdew1996, + author = {Perdew, John P. and Burke, Kieron and Ernzerhof, Matthias}, + doi = {10.1103/physrevlett.77.3865}, + number = {18}, + pages = {3865-3868}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevlett.77.3865}, + volume = {77}, + journal = {Phys. Rev. Lett.}, + publisher = {American Physical Society (APS)}, + title = {Generalized Gradient Approximation Made Simple}, + issn = {0031-9007, 1079-7114}, + year = {1996}, + month = oct, +} + +@article{Monkhorst1976, + author = {Monkhorst, Hendrik J. and Pack, James D.}, + doi = {10.1103/physrevb.13.5188}, + number = {12}, + pages = {5188-5192}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.13.5188}, + volume = {13}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Special points for {Brillouin}-zone integrations}, + issn = {0556-2805}, + year = {1976}, + month = jun, +} + +@article{Pack1977, + title = {"Special points for Brillouin-zone integrations"---a reply}, + author = {Pack, James D. and Monkhorst, Hendrik J.}, + journal = {Phys. Rev. B}, + volume = {16}, + issue = {4}, + pages = {1748--1749}, + numpages = {0}, + year = {1977}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.16.1748}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.16.1748} +} + +@article{MacDonald1978, + title = {Comment on special points for Brillouin-zone integrations}, + author = {MacDonald, A. H.}, + journal = {Phys. Rev. B}, + volume = {18}, + issue = {10}, + pages = {5897--5899}, + numpages = {0}, + year = {1978}, + month = {Nov}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.18.5897}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.18.5897} +} + +@article{Wu2005, + author = {Wu, Xifan and Vanderbilt, David and Hamann, D. R.}, + doi = {10.1103/physrevb.72.035105}, + number = {3}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.72.035105}, + volume = {72}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Systematic treatment of displacements, strains, and electric fields in density-functional perturbation theory}, + issn = {1098-0121, 1550-235X}, + year = {2005}, + month = jul, + pages = {035105}, +} + +@article{Vanderbilt1993, + author = {Vanderbilt, David and King-Smith, R. D.}, + doi = {10.1103/physrevb.48.4442}, + number = {7}, + pages = {4442-4455}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.48.4442}, + volume = {48}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Electric polarization as a bulk quantity and its relation to surface charge}, + issn = {0163-1829, 1095-3795}, + year = {1993}, + month = aug, +} + +@article{Djani2012, + author = {Djani, Hania and Bousquet, Eric and Kellou, Abdelhafid and Ghosez, Philippe}, + doi = {10.1103/physrevb.86.054107}, + number = {5}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.86.054107}, + volume = {86}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {First-principles study of the ferroelectric Aurivillius phase Bi$_2$WO$_6$}, + issn = {1098-0121, 1550-235X}, + year = {2012}, + month = aug, + pages = {054107}, +} + +@article{Marzari1997, + author = {Marzari, Nicola and Vanderbilt, David}, + doi = {10.1103/physrevb.56.12847}, + number = {20}, + pages = {12847-12865}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.56.12847}, + volume = {56}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Maximally localized generalized Wannier functions for composite energy bands}, + issn = {0163-1829, 1095-3795}, + year = {1997}, + month = nov, +} + +@article{Souza2002a, + author = {Souza, Ivo and Marzari, Nicola and Vanderbilt, David}, + doi = {10.1103/physrevb.65.035109}, + number = {3}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.65.035109}, + volume = {65}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Maximally localized Wannier functions for entangled energy bands}, + issn = {0163-1829, 1095-3795}, + year = {2001}, + month = dec, + pages = {035109}, +} + +@article{Draxl2006, + author = {Ambrosch-Draxl, Claudia and Sofo, Jorge O.}, + doi = {10.1016/j.cpc.2006.03.005}, + number = {1}, + pages = {1-14}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.cpc.2006.03.005}, + volume = {175}, + journal = {Comput. Phys. Commun.}, + publisher = {Elsevier BV}, + title = {Linear optical properties of solids within the full-potential linearized augmented planewave method}, + issn = {0010-4655}, + year = {2006}, + month = jul, +} + +@book{Martin2004, + author = {Martin, Richard M.}, + title = {Electronic Structure}, + isbn = {9780511805769}, + lccn = {2009285532}, + url = {https://doi.org/10.1017/cbo9780511805769}, + year = {2004}, + publisher = {Cambridge University Press}, + doi = {10.1017/cbo9780511805769}, + source = {Crossref}, + subtitle = {Basic Theory and Practical Methods}, +} + +@book{Martin2016, + author = {Martin, Richard M. and Reining, Lucia and Ceperley, David}, + title = {Interacting electrons}, + isbn = {9780521871501}, + lccn = {2015041121}, + year = {2016}, + publisher = {Cambridge University Press}, + subtitle = {Theory and computational approaches}, +} + +@book{Mahan2000, + author = {Gerald D. Mahan}, + title = {Many-particle physics. Third edition.}, + isbn = {978-1-4419-3339-3}, + url = {https://doi.org/10.1007/978-1-4757-5714-9}, + year = {2000}, + publisher = {Springer US}, + doi = {10.1007/978-1-4757-5714-9}, +} + +@article{Kresse1996, + author = {Kresse, G. and Furthmüller, J.}, + doi = {10.1103/physrevb.54.11169}, + number = {16}, + pages = {11169-11186}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.54.11169}, + volume = {54}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Efficient iterative schemes forab initiototal-energy calculations using a plane-wave basis set}, + issn = {0163-1829, 1095-3795}, + year = {1996}, + month = oct, +} + + +@article{Nielsen1985, + author = {Nielsen, O. H. and Martin, Richard M.}, + doi = {10.1103/physrevb.32.3780}, + number = {6}, + pages = {3780-3791}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.32.3780}, + volume = {32}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Quantum-mechanical theory of stress and force}, + issn = {0163-1829}, + year = {1985}, + month = sep, +} + +@article{Liu1996, + author = {Liu, Amy Y. and Quong, Andrew A.}, + doi = {10.1103/physrevb.53.r7575}, + number = {12}, + pages = {R7575-R7579}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.53.r7575}, + volume = {53}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Linear-response calculation of electron-phonon coupling parameters}, + issn = {0163-1829, 1095-3795}, + year = {1996}, + month = mar, +} + +@incollection{Allen1983a, + editor = {Ehrenreich, Henry and Seitz, Frederick and Turnbull, David}, + author = {Allen, Philip B. and Mitrović, Božidar}, + title = {Theory of Superconducting {Tc}}, + series = {Solid State Physics}, + publisher = {Elsevier}, + volume = {37}, + pages = {1-92}, + year = {1983}, + issn = {0081-1947}, + doi = {10.1016/s0081-1947(08)60665-7}, + url = {https://doi.org/10.1016/s0081-1947(08)60665-7}, + source = {Crossref}, + booktitle = {Solid State Physics}, + isbn = {9780126077377}, +} + +@article{McMillan1968, + author = {McMillan, W. L.}, + doi = {10.1103/physrev.167.331}, + number = {2}, + pages = {331-344}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrev.167.331}, + volume = {167}, + journal = {Phys. Rev.}, + publisher = {American Physical Society (APS)}, + title = {Transition Temperature of Strong-Coupled Superconductors}, + issn = {0031-899X}, + year = {1968}, + month = mar, +} + +@article{Allen1975, + author = {Allen, P. B. and Dynes, R. C.}, + doi = {10.1103/physrevb.12.905}, + number = {3}, + pages = {905-922}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.12.905}, + volume = {12}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Transition temperature of strong-coupled superconductors reanalyzed}, + issn = {0556-2805}, + year = {1975}, + month = aug, +} + +@article{Hobbs2000, + author = {Hobbs, D. and Kresse, G. and Hafner, J.}, + doi = {10.1103/physrevb.62.11556}, + number = {17}, + pages = {11556-11570}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.62.11556}, + volume = {62}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Fully unconstrained noncollinear magnetism within the projector augmented-wave method}, + issn = {0163-1829, 1095-3795}, + year = {2000}, + month = nov, +} + +@article{Hufner1984, + author = {H\"ufner, S. and Osterwalder, J. and Riesterer, T. and Hulliger, F.}, + publisher = {Elsevier BV}, + doi = {10.1016/0038-1098(84)90007-3}, + title = {Photoemission and inverse photoemission spectroscopy of {NiO}}, + url = {http://dx.doi.org/10.1016/0038-1098(84)90007-3}, + journal = {Solid State Communications}, + issn = {0038-1098}, + number = {9}, + month = dec, + volume = {52}, + source = {Crossref}, + year = {1984}, + pages = {793-796}, +} + +@article{Perdew1992, + author = {Perdew, John P. and Chevary, J. A. and Vosko, S. H. and Jackson, Koblar A. and Pederson, Mark R. and Singh, D. J. and Fiolhais, Carlos}, + doi = {10.1103/physrevb.46.6671}, + number = {11}, + pages = {6671-6687}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.46.6671}, + volume = {46}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Atoms, molecules, solids, and surfaces: {Applications} of the generalized gradient approximation for exchange and correlation}, + issn = {0163-1829, 1095-3795}, + year = {1992}, + month = sep, +} + +@article{Blanco1997, + author = {Blanco, Miguel A. and Flórez, M. and Bermejo, M.}, + title = {Evaluation of the rotation matrices in the basis of real spherical harmonics}, + journal = {J. Mol. Struct. THEOCHEM}, + volume = {419}, + number = {1-3}, + pages = {19-27}, + year = {1997}, + issn = {0166-1280}, + doi = {10.1016/s0166-1280(97)00185-1}, + url = {https://doi.org/10.1016/s0166-1280(97)00185-1}, + keywords = {Wigner functions, Real spherical harmonics, Electronic structure calculations, Rotation matrices}, + source = {Crossref}, + publisher = {Elsevier BV}, + month = dec, +} + +@book{Bassani1975, + title={Electronic states and optical transitions in solids}, + author={Bassani, G.F. and Parravicini, G.P.}, + isbn={9780080168463}, + lccn={gb75022672}, + series={International series of monographs in the science of the solid state}, + url={https://books.google.be/books?id=cGh5AAAAIAAJ}, + year={1975}, + publisher={Pergamon Press} +} + +@article{Bhagavantam1964, +author="Bhagavantam, S. and Pantulu, P. V.", +title="Crystal symmetry and physical properties: Application of group theory", +journal="Proceedings of the Indian Academy of Sciences - Section A", +year="1964", +month="Jul", +day="01", +volume="60", +number="1", +pages="1--10", +abstract="A group theoretical method given by one of us in earlier publications for studying the effect of crystal symmetry on physical properties is now extended to cover the galvanomagnetic, thermomagnetic and piezo-galvanomagnetic effects in single crystals. These effects have gained importance in semi-conductor physics and such studies are therefore of current interest and may be expected to yield valuable new information.", +issn="0370-0089", +url = "https://www.ias.ac.in/article/fulltext/seca/060/01/0001-0010" +} + +@book{Landau1984, + author = {Landau, L.D. and Lifshit͡s, E.M. and Lifshit︠s︡, E.M. and Pitaevski{\u\i}, L.P.}, + title = {Electrodynamics of continuous media:}, + isbn = {9780080302751}, + lccn = {83024997}, + series = {Pergamon international library of science, technology, engineering, and social studies}, + url = {https://books.google.be/books?id=j7nvAAAAMAAJ}, + year = {1984}, + publisher = {Pergamon}, +} + +@article{Kleinman1982, + author = {Kleinman, Leonard and Bylander, D. M.}, + doi = {10.1103/physrevlett.48.1425}, + number = {20}, + pages = {1425-1428}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevlett.48.1425}, + volume = {48}, + journal = {Phys. Rev. Lett.}, + publisher = {American Physical Society (APS)}, + title = {Efficacious Form for Model Pseudopotentials}, + issn = {0031-9007}, + year = {1982}, + month = may, +} + +@article{Setten2018, + author = {van Setten, M.J. and Giantomassi, M. and Bousquet, E. and Verstraete, M.J. and Hamann, D.R. and Gonze, X. and Rignanese, G.-M.}, + doi = {10.1016/j.cpc.2018.01.012}, + pages = {39-54}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.cpc.2018.01.012}, + volume = {226}, + journal = {Comput. Phys. Commun.}, + publisher = {Elsevier BV}, + title = {The {PseudoDojo}: {Training} and grading a 85 element optimized norm-conserving pseudopotential table}, + issn = {0010-4655}, + year = {2018}, + month = may, +} + +@article{Garcia2018, + author = {García, Alberto and Verstraete, Matthieu J. and Pouillon, Yann and Junquera, Javier}, + doi = {10.1016/j.cpc.2018.02.011}, + pages = {51-71}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.cpc.2018.02.011}, + volume = {227}, + journal = {Computer Physics Communications}, + publisher = {Elsevier BV}, + title = {The psml format and library for norm-conserving pseudopotential data curation and interoperability}, + issn = {0010-4655}, + year = {2018}, + month = jun, +} + +@article{Thonhauser2009, + author = {Thonhauser, T. and Ceresoli, D. and Mostofi, A. A. and Marzari, N. and Resta, R. and Vanderbilt, D.}, + journal = {J. Chem. Phys.}, + pages = {101101}, + title = {A converse approach to the calculation of {NMR} shielding tensors}, + volume = {131}, + year = {2009}, + url = {https://aip.scitation.org/doi/abs/10.1063/1.3216028}, + doi = {10.1063/1.3216028}, +} + +@article{Ceresoli2006, + author = {Ceresoli, Davide and Thonhauser, T. and Vanderbilt, David and Resta, R.}, + journal = {Phys. Rev. B}, + pages = {024408}, + title = {Orbital magnetization in crystalline solids: {Multi-band} insulators, Chern insulators, and metals}, + volume = {74}, + year = {2006}, + url = {https://doi.org/10.1103/physrevb.74.024408}, + doi = {10.1103/physrevb.74.024408}, + number = {2}, + source = {Crossref}, + publisher = {American Physical Society (APS)}, + issn = {1098-0121, 1550-235X}, + month = jul, +} + +@article{Martin1987, + author = {R. L. Martin et al.}, + title = {Atomic Weights of the Elements}, + journal = {Pure $\&$ Appl. Chem.}, + year = {1987}, + pages = {841-854}, + volume = {60}, + doi = {10.1351/pac198860060841}, +} + +@article{Henkelman2000a, + author = {G. Henkelman and B. P. Uberuaga and H. Jonsson}, + title = {A climbing image nudged elastic band method for finding saddle points and minimum energy paths}, + journal = {The Journal of Chem. Phys.}, + year = {2000}, + pages = {9901}, + volume = {113}, + doi = {10.1063/1.1329672}, +} + +@article{Bernasconi1995, + author = {M. Bernasconi and G. L. Chairotti and P. Focher and S. Scandolo and E. Tosatti and M. Parrinello}, + title = {First-Principles-constant pressure molecular dynamics}, + journal = {J. Phys. Chem. Solids}, + year = {1995}, + pages = {501-505}, + volume = {56}, + url = {https://doi.org/10.1016/0022-3697(94)00228-2}, +} + +@article{Chelikowsky2000, + author = {James R Chelikowsky}, + title = {The pseudopotential-density functional method applied to nanostructures}, + journal = {Journal of Physics D: Applied Physics}, + year = {2000}, + pages = {R33}, + volume = {33}, + number = {8}, + abstract = {In this review, I will describe the combination of pseudopotentials and density functional theory to determine the electronic structure of matter. This combination, called the pseudopotential-density functional method (PDFM), represents the most popular technique for examining a wide range of structural and electronic properties. I will illustrate applications of the PDFM to problems of current interest: nanostructures and other complex confined systems.}, + url = {http://stacks.iop.org/0022-3727/33/i=8/a=201}, +} + +@article{Weinan2002, + author = {E. Weinan and W. Ren and E. Vanden-Eijnden}, + title = {String Method for the study of rare events}, + journal = {Phys. Rev. B}, + year = {2002}, + pages = {052301}, + volume = {66}, + url = {https://doi.org/10.1103/PhysRevB.66.052301}, +} + +@article{Schlegel1982, + author = {H. B. Schlegel}, + title = {Optimization of equilibrium geometries and transition structures}, + journal = {J. Comp. Chem.}, + year = {1982}, + pages = {214-218}, + volume = {3}, +} + +@book{Allen1987a, + title = {Computer Simulation of Liquids}, + publisher = {Oxford University Press}, + year = {1987}, + author = {M. P. Allen and D. J. Tildesley}, +} + +@article{Zhang1997, + author = {F. Zhang}, + title = {Operator-splitting integrators for constant-temperature molecular dynamics}, + journal = {J. Chem. Phys.}, + year = {1997}, + pages = {6102}, + volume = {106}, + url = {https://doi.org/10.1063/1.473273}, +} + +@article{Minary2003, + author = {P. Minary and G. J. Martyna and M. E. Tuckerman}, + title = {Algorithms and novel applications based on the isokinetic ensemble. I. Biophysical and path integral molecular dynamics}, + journal = {J. Chem. Phys.}, + year = {2003}, + pages = {2510}, + volume = {118}, + url = {https://doi.org/10.1063/1.1534582}, +} + +@article{Martyna1996, + author = {G. J. Martyna and M. E. Tuckerman and D. J. Tobias and M. K. Klein}, + title = {Explict reversible integrators for extended systems dynamics}, + journal = {Mol. Phys.}, + year = {1996}, + pages = {1117-1157}, + volume = {87}, + url = {https://doi.org/10.1080/00268979600100761}, +} + +@article{Blanes2002, + author = {S. Blanes and P. C. Moan}, + title = {Practical symplectic partitioned Runge--Kutta and Runge--Kutta--Nystrom methods}, + journal = {J. Comp. and Appl. Math.}, + year = {2002}, + pages = {313-330}, + volume = {142}, + url = {https://doi.org/10.1016/S0377-0427(01)00492-7}, +} + +@article{Yoshida1990, + author = {H. Yoshida}, + title = {Construction of higher order sympletic integrators}, + journal = {Phys. Lett. A}, + year = {1990}, + pages = {262-268}, + volume = {150}, + url = {https://doi.org/10.1016/0375-9601(90)90092-3}, +} + +@article{Hairer2003, + author = {E. Hairer and C. Lubich and G. Wanner}, + title = {Geometric numerical integration illustrated by the Stomer-Verlet Method}, + journal = {Acta Numerica}, + year = {2003}, + pages = {399-450}, + volume = {12}, + url = {https://doi.org/10.1017/S0962492902000144}, +} + +@article{Sheppard2008, + author = {D. Sheppard and R. Terrell and G. Henkelman}, + title = {Optimization methods for finding minimum energy paths}, + journal = {J. Chem. Phys.}, + year = {2008}, + pages = {134106}, + volume = {128}, +} + +@book{Berne1998, + title = {Classical and Quantum Dynamics in Condensed Phase Simulations}, + publisher = {World Scientific, Singapore}, + year = {1998}, + editor = {B. J. Berne and G. Ciccotti and D. F. Cocker}, +} + +@article{Komeiji2007, + author = {Y. Komeiji}, + title = {Implementation of the blue moon ensemble method}, + journal = {Chem-bio informations Journal}, + year = {2007}, + pages = {12-23}, + volume = {7}, + url = {http://doi.org/10.1273/cbij.7.12}, +} + +@article{Goodrow2009, + author = {A. Goodrow and A. T. Bell and M. Head-Gordon}, + title = {Transition state-finding strategies for use with the growing string method}, + journal = {J. Chem. Phys.}, + year = {2009}, + pages = {244108}, + volume = {130}, + url = {https://doi.org/10.1063/1.3156312}, +} + +@article{Sharma2011, + title = {Bootstrap Approximation for the Exchange-Correlation Kernel of Time-Dependent Density-Functional Theory}, + author = {Sharma, S. and Dewhurst, J. K. and Sanna, A. and Gross, E. K. U.}, + journal = {Phys. Rev. Lett.}, + volume = {107}, + issue = {18}, + pages = {186401}, + numpages = {5}, + year = {2011}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.107.186401}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.107.186401} +} + +@article{Chen2015, + title = {Accurate band gaps of extended systems via efficient vertex corrections in $GW$}, + author = {Chen, Wei and Pasquarello, Alfredo}, + journal = {Phys. Rev. B}, + volume = {92}, + issue = {4}, + pages = {041115}, + numpages = {5}, + year = {2015}, + month = {Jul}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.92.041115}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.92.041115} +} + +@article{Berger2015, + title = {Fully Parameter-Free Calculation of Optical Spectra for Insulators, Semiconductors, and Metals from a Simple Polarization Functional}, + author = {Berger, J. A.}, + journal = {Phys. Rev. Lett.}, + volume = {115}, + issue = {13}, + pages = {137402}, + numpages = {5}, + year = {2015}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.115.137402}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.115.137402} +} + +@article{Rigamonti2015, + title = {Estimating Excitonic Effects in the Absorption Spectra of Solids: Problems and Insight from a Guided Iteration Scheme}, + author = {Rigamonti, Santiago and Botti, Silvana and Veniard, Val\'erie and Draxl, Claudia and Reining, Lucia and Sottile, Francesco}, + journal = {Phys. Rev. Lett.}, + volume = {114}, + issue = {14}, + pages = {146402}, + numpages = {5}, + year = {2015}, + month = {Apr}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.114.146402}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.114.146402} +} + +@article{Chen2016, + title = {Ab initio Electronic Structure of Liquid Water}, + author = {Chen, Wei and Ambrosio, Francesco and Miceli, Giacomo and Pasquarello, Alfredo}, + journal = {Phys. Rev. Lett.}, + volume = {117}, + issue = {18}, + pages = {186401}, + numpages = {6}, + year = {2016}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.117.186401}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.117.186401} +} + +@article{Carrier2007, + title = {General treatment of the singularities in Hartree-Fock and exact-exchange Kohn-Sham methods for solids}, + author = {Carrier, Pierre and Rohra, Stefan and Görling, Andreas}, + journal = {Phys. Rev. B}, + volume = {75}, + issue = {20}, + pages = {205126}, + numpages = {10}, + year = {2007}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.75.205126}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.75.205126} +} + +@article{Gygi1986, + title = {Self-consistent Hartree-Fock and screened-exchange calculations in solids: Application to silicon}, + author = {Gygi, F. and Baldereschi, A.}, + journal = {Phys. Rev. B}, + volume = {34}, + issue = {6}, + pages = {4405--4408}, + numpages = {0}, + year = {1986}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.34.4405}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.34.4405} +} + +@article{Spencer2008, + title = {Efficient calculation of the exact exchange energy in periodic systems using a truncated Coulomb potential}, + author = {Spencer, James and Alavi, Ali}, + journal = {Phys. Rev. B}, + volume = {77}, + issue = {19}, + pages = {193110}, + numpages = {4}, + year = {2008}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.77.193110}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.77.193110} +} + +@article{Bechstedt1992, + title = "An efficient method for calculating quasiparticle energies in semiconductors", + journal = "Solid State Communications", + volume = "84", + number = "7", + pages = "765 - 770", + year = "1992", + issn = "0038-1098", + doi = "https://doi.org/10.1016/0038-1098(92)90476-P", + url = "http://www.sciencedirect.com/science/article/pii/003810989290476P", + author = "F. Bechstedt and R. Del Sole and G. Cappellini and Lucia Reining" +} + +@article{vonderLinden1988, + title = {Precise quasiparticle energies and Hartree-Fock bands of semiconductors and insulators}, + author = {von der Linden, Wolfgang and Horsch, Peter}, + journal = {Phys. Rev. B}, + volume = {37}, + issue = {14}, + pages = {8351--8362}, + numpages = {0}, + year = {1988}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.37.8351}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.37.8351} +} + +@article{Taut1985, + title={Frequency moments of the dielectric function for an inhomogeneous electron gas}, + author={Taut, M}, + journal={Journal of Physics C: Solid State Physics}, + volume={18}, + number={13}, + pages={2677}, + year={1985}, + publisher={IOP Publishing} +} + +@article{Engel1993, + title = {Generalized plasmon-pole model and plasmon band structures of crystals}, + author = {Engel, G. E. and Farid, Behnam}, + journal = {Phys. Rev. B}, + volume = {47}, + issue = {23}, + pages = {15931--15934}, + numpages = {0}, + year = {1993}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.47.15931}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.47.15931} +} + +@article{Ismail-Beigi2006, + title = {Truncation of periodic image interactions for confined systems}, + author = {Ismail-Beigi, Sohrab}, + journal = {Phys. Rev. B}, + volume = {73}, + issue = {23}, + pages = {233103}, + numpages = {4}, + year = {2006}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.73.233103}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.73.233103} +} + +@article{Rozzi2006, + title = {Exact Coulomb cutoff technique for supercell calculations}, + author = {Rozzi, Carlo A. and Varsano, Daniele and Marini, Andrea and Gross, Eberhard K. U. and Rubio, Angel}, + journal = {Phys. Rev. B}, + volume = {73}, + issue = {20}, + pages = {205119}, + numpages = {13}, + year = {2006}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.73.205119}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.73.205119} +} + +@article{Rocca2008, + author = {Rocca, Dario and Gebauer, Ralph and Saad, Yousef and Baroni, Stefano}, + doi = {10.1063/1.2899649}, + number = {15}, + pages = {154105}, + source = {Crossref}, + url = {http://dx.doi.org/10.1063/1.2899649}, + volume = {128}, + journal = {J. Chem. Phys.}, + publisher = {AIP Publishing}, + title = {Turbo charging time-dependent density-functional theory with Lanczos chains}, + issn = {0021-9606, 1089-7690}, + year = {2008}, + month = apr, +} + +@article{Setyawan2010, + author = {Setyawan, Wahyu and Curtarolo, Stefano}, + doi = {10.1016/j.commatsci.2010.05.010}, + number = {2}, + pages = {299-312}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.commatsci.2010.05.010}, + volume = {49}, + journal = {Computational Materials Science}, + publisher = {Elsevier BV}, + title = {High-throughput electronic band structure calculations: {Challenges} and tools}, + issn = {0927-0256}, + year = {2010}, + month = aug, +} + +@article{Petretto2018a, + author = {Petretto, Guido and Dwaraknath, Shyam and P.C. Miranda, Henrique and Winston, Donald and Giantomassi, Matteo and van Setten, Michiel J. and Gonze, Xavier and Persson, Kristin A. and Hautier, Geoffroy and Rignanese, Gian-Marco}, + doi = {10.1038/sdata.2018.65}, + pages = {180065}, + source = {Crossref}, + url = {http://dx.doi.org/10.1038/sdata.2018.65}, + volume = {5}, + journal = {Sci. Data}, + publisher = {Springer Nature}, + title = {High-throughput density-functional perturbation theory phonons for inorganic materials}, + issn = {2052-4463}, + year = {2018}, + month = may, +} + +@article{Faleev2004, + author = {Faleev, Sergey V. and van Schilfgaarde, Mark and Kotani, Takao}, + doi = {10.1103/physrevlett.93.126406}, + number = {12}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevlett.93.126406}, + volume = {93}, + pages = {126406}, + journal = {Phys. Rev. Lett.}, + publisher = {American Physical Society (APS)}, + title = {All-Electron Self-{ConsistentGWApproximation:} {Application} to Si, {MnO,} and {NiO}}, + issn = {0031-9007, 1079-7114}, + year = {2004}, + month = sep, +} + +@article{Souvatzis2008, + author = {Souvatzis, P. and Eriksson, O. and Katsnelson, M. I. and Rudin, S. P.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.100.095901}, + title = {Entropy Driven Stabilization of Energetically Unstable Crystal Structures Explained from First Principles Theory}, + url = {http://dx.doi.org/10.1103/physrevlett.100.095901}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007, 1079-7114}, + number = {9}, + month = mar, + volume = {100}, + source = {Crossref}, + year = {2008}, +} + +@article{Ghosez1996, + author = {Ghosez, Ph and Gonze, X and Michenaud, J.-P}, + publisher = {IOP Publishing}, + doi = {10.1209/epl/i1996-00404-8}, + title = {Coulomb interaction and ferroelectric instability of {BaTiO3}}, + url = {http://dx.doi.org/10.1209/epl/i1996-00404-8}, + journal = {Europhys. Lett.}, + issn = {0295-5075, 1286-4854}, + number = {9}, + month = mar, + volume = {33}, + source = {Crossref}, + year = {1996}, + pages = {713-718}, +} + +@article{GaalNagy2006, + author = {Ga\'al-Nagy, Katalin and Strauch, Dieter}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.73.014117}, + title = {Phonons in the $\beta$-{tin,Imma,} and sh phases of silicon from ab initio calculations}, + url = {http://dx.doi.org/10.1103/physrevb.73.014117}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {1}, + month = jan, + volume = {73}, + source = {Crossref}, + year = {2006}, + pages = {014117} +} + +@article{Zacharias2016, + author = {Zacharias, Marios and Giustino, Feliciano}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.94.075125}, + title = {One-shot calculation of temperature-dependent optical spectra and phonon-induced band-gap renormalization}, + url = {http://dx.doi.org/10.1103/physrevb.94.075125}, + journal = {Phys. Rev. B}, + issn = {2469-9950, 2469-9969}, + number = {7}, + month = aug, + volume = {94}, + source = {Crossref}, + year = {2016}, +} + +@book{Nye1985, +author = {Nye, J.F.}, +title = {Physical Properties of Crystals}, +publisher = {Clarendon Press - Oxford}, +year = {1985}, +doi = {10.1002/crat.2170211204}, +} + +@article{Vanderbilt2000, +title = "Berry-phase theory of proper piezoelectric response", +journal = "Journal of Physics and Chemistry of Solids", +volume = "61", +number = "2", +pages = "147 - 151", +year = "2000", +issn = "0022-3697", +doi = "https://doi.org/10.1016/S0022-3697(99)00273-5", +url = "http://www.sciencedirect.com/science/article/pii/S0022369799002735", +author = "D Vanderbilt", +keywords = "Berry phase" +} + +@article{DeGironcoli1995, + title = {Lattice dynamics of metals from density-functional perturbation theory}, + author = {de Gironcoli, Stefano}, + journal = {Phys. Rev. B}, + volume = {51}, + issue = {10}, + pages = {6773--6776}, + numpages = {0}, + year = {1995}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.51.6773}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.51.6773} +} + +@article{Sutton1953, + title = {The Variation of the Elastic Constants of Crystalline Aluminum with Temperature between 63$^\circ$ K and 773$^\circ$ K}, + author = {Sutton, Paul M.}, + journal = {Phys. Rev.}, + volume = {91}, + issue = {4}, + pages = {816--821}, + numpages = {0}, + year = {1953}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRev.91.816}, + url = {https://link.aps.org/doi/10.1103/PhysRev.91.816} +} + +@article{Sai2002, + title = {Theory of structural response to macroscopic electric fields in ferroelectric systems}, + author = {Sai, N. and Rabe, K. M. and Vanderbilt, D.}, + journal = {Phys. Rev. B}, + volume = {66}, + issue = {10}, + pages = {104108}, + numpages = {17}, + year = {2002}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.66.104108}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.66.104108} +} + +@article{Zhang1998, + author = {Zhang, Yingkai and Yang, Weitao}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.80.890}, + title = {Comment on Generalized Gradient Approximation Made Simple}, + url = {http://dx.doi.org/10.1103/physrevlett.80.890}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007, 1079-7114}, + number = {4}, + month = jan, + volume = {80}, + source = {Crossref}, + year = {1998}, + pages = {890-890}, +} + +@book{Bradley1972, +author = {Bradley, C.J. and Cracknell, A.P.}, +title = {The mathematical theory of symmetry in solids: representation theory +for point groups and space groups}, +publisher = {Oxford, Clarendon Press}, +year = {1972}, +} + +@article{Hamann2009, + author = {Hamann, D. R. and Vanderbilt, David}, + doi = {10.1103/physrevb.79.045109}, + number = {4}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.79.045109}, + volume = {79}, + pages = {045109}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Maximally localized Wannier functions for {GW} quasiparticles}, + issn = {1098-0121, 1550-235X}, + year = {2009}, + month = jan, +} + +@article{Setten2017, + author = {van Setten, M. J. and Giantomassi, M. and Gonze, X. and Rignanese, G.-M. and Hautier, G.}, + doi = {10.1103/physrevb.96.155207}, + number = {15}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevb.96.155207}, + volume = {96}, + pages = {155207}, + journal = {Phys. Rev. B}, + publisher = {American Physical Society (APS)}, + title = {Automation methodologies and large-scale validation for {GW}: {Towards} high-throughput {GW} calculations}, + issn = {2469-9950, 2469-9969}, + year = {2017}, + month = oct, +} + +@article{Arponen1979a, +title = "Electron liquid in collective description. III. Positron annihilation", +journal = "Annals of Physics", +volume = "121", +number = "1", +pages = "343 - 389", +year = "1979", +issn = "0003-4916", +doi = "https://doi.org/10.1016/0003-4916(79)90101-5", +url = "http://www.sciencedirect.com/science/article/pii/0003491679901015", +author = "J Arponen and E Pajanne" +} + +@article{Barbiellini1995, + title = {Gradient correction for positron states in solids}, + author = {Barbiellini, B. and Puska, M. J. and Torsti, T. and Nieminen, R. M.}, + journal = {Phys. Rev. B}, + volume = {51}, + issue = {11}, + pages = {7341--7344}, + numpages = {0}, + year = {1995}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.51.6773}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.51.6773} +} + +@article{Gonze1990, + title = {First-principles study of As, Sb, and Bi electronic properties}, + author = {Gonze, X. and Michenaud, J.-P. and Vigneron, J.-P.}, + journal = {Phys. Rev. B}, + volume = {41}, + issue = {17}, + pages = {11827--11836}, + numpages = {0}, + year = {1990}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.41.11827}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.41.11827} +} + +@article{Lang1970, + title = {Theory of Metal Surfaces: Charge Density and Surface Energy}, + author = {Lang, N. D. and Kohn, W.}, + journal = {Phys. Rev. B}, + volume = {1}, + issue = {12}, + pages = {4555--4568}, + numpages = {0}, + year = {1970}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.1.4555}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.1.4555} +} + +@article{Verstraete2002, + title = {Smearing scheme for finite-temperature electronic-structure calculations}, + author = {Verstraete, Matthieu and Gonze, Xavier}, + journal = {Phys. Rev. B}, + volume = {65}, + issue = {3}, + pages = {035111}, + numpages = {6}, + year = {2001}, + month = {Dec}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.65.035111}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.65.035111} +} + +@article{Anglade2008, + title = {Preconditioning of self-consistent-field cycles in density-functional theory: The extrapolar method}, + author = {Anglade, P.-M. and Gonze, X.}, + journal = {Phys. Rev. B}, + volume = {78}, + issue = {4}, + pages = {045126}, + numpages = {11}, + year = {2008}, + month = {Jul}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.78.045126}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.78.045126} +} + +@article{Hammer1999, + author = {Hammer, B. and Hansen, L. B. and Nørskov, J. K.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.59.7413}, + title = {Improved adsorption energetics within density-functional theory using revised Perdew-{Burke}-Ernzerhof functionals}, + url = {http://dx.doi.org/10.1103/physrevb.59.7413}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {11}, + month = mar, + volume = {59}, + source = {Crossref}, + year = {1999}, + pages = {7413-7421}, +} + +@article{Hamprecht1998, + author = {Hamprecht, Fred A. and Cohen, Aron J. and Tozer, David J. and Handy, Nicholas C.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.477267}, + title = {Development and assessment of new exchange-correlation functionals}, + url = {http://dx.doi.org/10.1063/1.477267}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {15}, + month = oct, + volume = {109}, + source = {Crossref}, + year = {1998}, + pages = {6264-6271}, +} + +@article{Boese2000, + author = {Boese, A. Daniel and Doltsinis, Nikos L. and Handy, Nicholas C. and Sprik, Michiel}, + publisher = {AIP Publishing}, + doi = {10.1063/1.480732}, + title = {New generalized gradient approximation functionals}, + url = {http://dx.doi.org/10.1063/1.480732}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {4}, + month = jan, + volume = {112}, + source = {Crossref}, + year = {2000}, + pages = {1670-1678}, +} + +@article{Krack2005, + author = {Krack, M.}, + publisher = {Springer Nature}, + doi = {10.1007/s00214-005-0655-y}, + title = {Pseudopotentials for H to {Kr} optimized for gradient-corrected exchange-correlation functionals}, + url = {http://dx.doi.org/10.1007/s00214-005-0655-y}, + journal = {Theor Chem Acc}, + issn = {1432-881X, 1432-2234}, + number = {1-3}, + month = may, + volume = {114}, + source = {Crossref}, + year = {2005}, + pages = {145-152}, +} + +@article{Wu2006, + author = {Wu, Zhigang and Cohen, R. E.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.73.235116}, + title = {More accurate generalized gradient approximation for solids}, + url = {http://dx.doi.org/10.1103/physrevb.73.235116}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {23}, + month = jun, + volume = {73}, + source = {Crossref}, + year = {2006}, +} + + +@article{Cooper2010, + author = {Cooper, Valentino R.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.81.161104}, + title = {Van der {Waals} density functional: {An} appropriate exchange functional}, + url = {http://dx.doi.org/10.1103/physrevb.81.161104}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {16}, + month = apr, + volume = {81}, + source = {Crossref}, + year = {2010}, + pages = {161104} +} + +@article{Boese2001, + author = {Boese, A. Daniel and Handy, Nicholas C.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1347371}, + title = {A new parametrization of exchange--correlation generalized gradient approximation functionals}, + url = {http://dx.doi.org/10.1063/1.1347371}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {13}, + month = apr, + volume = {114}, + source = {Crossref}, + year = {2001}, + pages = {5497-5503}, +} + +@article{Guido2013, + author = {Guido, Ciro A. and Brémond, Eric and Adamo, Carlo and Cortona, Pietro}, + publisher = {AIP Publishing}, + doi = {10.1063/1.4775591}, + title = {Communication: {One} third: {A} new recipe for the {PBE0} paradigm}, + url = {http://dx.doi.org/10.1063/1.4775591}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {2}, + month = jan, + volume = {138}, + source = {Crossref}, + year = {2013}, + pages = {021104}, +} + +@article{Dirac1930, + author = {Dirac, P. A. M.}, + publisher = {Cambridge University Press (CUP)}, + doi = {10.1017/s0305004100016108}, + title = {Note on Exchange Phenomena in the {Thomas} Atom}, + url = {http://dx.doi.org/10.1017/s0305004100016108}, + journal = {Math. Proc. Camb. Phil. Soc.}, + issn = {0305-0041, 1469-8064}, + number = {03}, + month = jul, + volume = {26}, + source = {Crossref}, + year = {1930}, + pages = {376}, +} + +@article{Wigner1938, + author = {Wigner, E.}, + publisher = {Royal Society of Chemistry (RSC)}, + doi = {10.1039/tf9383400678}, + title = {Effects of the electron interaction on the energy levels of electrons in metals}, + url = {http://dx.doi.org/10.1039/tf9383400678}, + journal = {Trans. Faraday Soc. }, + issn = {0014-7672}, + volume = {34}, + source = {Crossref}, + year = {1938}, + pages = {678}, +} + + +@article{GellMann1957, + author = {Gell-Mann, Murray and Brueckner, Keith A.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrev.106.364}, + title = {Correlation Energy of an Electron Gas at High Density}, + url = {http://dx.doi.org/10.1103/physrev.106.364}, + journal = {Phys. Rev.}, + issn = {0031-899X}, + number = {2}, + month = apr, + volume = {106}, + source = {Crossref}, + year = {1957}, + pages = {364-368}, +} + +@article{Hedin1971, + author = {Hedin, L and Lundqvist, B I}, + publisher = {IOP Publishing}, + doi = {10.1088/0022-3719/4/14/022}, + title = {Explicit local exchange-correlation potentials}, + url = {http://dx.doi.org/10.1088/0022-3719/4/14/022}, + journal = {J. Phys. C: Solid State Phys.}, + issn = {0022-3719}, + number = {14}, + month = oct, + volume = {4}, + source = {Crossref}, + year = {1971}, + pages = {2064-2083}, +} + +@article{Gunnarsson1976, + author = {Gunnarsson, O. and Lundqvist, B. I.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.13.4274}, + title = {Exchange and correlation in atoms, molecules, and solids by the spin-density-functional formalism}, + url = {http://dx.doi.org/10.1103/physrevb.13.4274}, + journal = {Phys. Rev. B}, + issn = {0556-2805}, + number = {10}, + month = may, + volume = {13}, + source = {Crossref}, + year = {1976}, + pages = {4274-4298}, +} + +@article{Vosko1980, + author = {Vosko, S. H. and Wilk, L. and Nusair, M.}, + publisher = {Canadian Science Publishing}, + doi = {10.1139/p80-159}, + title = {Accurate spin-dependent electron liquid correlation energies for local spin density calculations: {A} critical analysis}, + url = {http://dx.doi.org/10.1139/p80-159}, + journal = {Can. J. Phys.}, + issn = {0008-4204, 1208-6045}, + number = {8}, + month = aug, + volume = {58}, + source = {Crossref}, + year = {1980}, + pages = {1200-1211}, +} + +@article{Ortiz1994, + author = {Ortiz, G. and Ballone, P.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.50.1391}, + title = {Correlation energy, structure factor, radial distribution function, and momentum distribution of the spin-polarized uniform electron gas}, + url = {http://dx.doi.org/10.1103/physrevb.50.1391}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {3}, + month = jul, + volume = {50}, + source = {Crossref}, + year = {1994}, + pages = {1391-1405}, +} + +@article{Ortiz1997, + author = {Ortiz, G. and Ballone, P.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.56.9970}, + title = {Erratum: {Correlation} energy, structure factor, radial distribution function, and momentum distribution of the spin-polarized uniform electron gas {[Phys.} Rev. B50, 1391 (1994)]}, + url = {http://dx.doi.org/10.1103/physrevb.56.9970}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {15}, + month = oct, + volume = {56}, + source = {Crossref}, + year = {1997}, + pages = {9970-9970}, +} + +@article{Perdew1992a, + author = {Perdew, John P. and Wang, Yue}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.45.13244}, + title = {Accurate and simple analytic representation of the electron-gas correlation energy}, + url = {http://dx.doi.org/10.1103/physrevb.45.13244}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {23}, + month = jun, + volume = {45}, + source = {Crossref}, + year = {1992}, + pages = {13244-13249}, +} + +@article{Barth1972, + author = {Barth, U von and Hedin, L}, + publisher = {IOP Publishing}, + doi = {10.1088/0022-3719/5/13/012}, + title = {A local exchange-correlation potential for the spin polarized case. i}, + url = {http://dx.doi.org/10.1088/0022-3719/5/13/012}, + journal = {J. Phys. C: Solid State Phys.}, + issn = {0022-3719}, + number = {13}, + month = jul, + volume = {5}, + source = {Crossref}, + year = {1972}, + pages = {1629-1642}, +} + +@article{Proynov1994, + author = {Proynov, Emil I. and Salahub, Dennis R.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.49.7874}, + title = {Simple but efficient correlation functional from a model pair-correlation function}, + url = {http://dx.doi.org/10.1103/physrevb.49.7874}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {12}, + month = mar, + volume = {49}, + source = {Crossref}, + year = {1994}, + pages = {7874-7886}, +} + +@article{Ragot2004, + author = {Ragot, Sébastien and Cortona, Pietro}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1792153}, + title = {Correlation energy of many-electron systems: {A} modified Colle--Salvetti approach}, + url = {http://dx.doi.org/10.1063/1.1792153}, + journal = {J. Chem. Phys.}, + issn = {0021-9606}, + number = {16}, + volume = {121}, + source = {Crossref}, + year = {2004}, + pages = {7671}, +} + +@article{Tsuneda1999, + author = {Tsuneda, Takao and Suzumura, Toshihisa and Hirao, Kimihiko}, + publisher = {AIP Publishing}, + doi = {10.1063/1.479954}, + title = {A reexamination of exchange energy functionals}, + url = {http://dx.doi.org/10.1063/1.479954}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {13}, + month = oct, + volume = {111}, + source = {Crossref}, + year = {1999}, + pages = {5656-5667}, +} + + +@article{Filatov1997a, + author = {Filatov, Michael and Thiel, Walter}, + publisher = {Informa UK Limited}, + doi = {10.1080/002689797170950}, + title = {A new gradient-corrected exchange-correlation density functional}, + url = {http://dx.doi.org/10.1080/002689797170950}, + journal = {Molecular Physics}, + issn = {0026-8976, 1362-3028}, + number = {5}, + month = aug, + volume = {91}, + source = {Crossref}, + year = {1997}, + pages = {847-860}, +} + +@article{Swart2009, + author = {Swart, Marcel and Solà, Miquel and Bickelhaupt, F. Matthias}, + publisher = {AIP Publishing}, + doi = {10.1063/1.3213193}, + title = {A new all-round density functional based on spin states and ${S}_{N}{2}$ barriers}, + url = {http://dx.doi.org/10.1063/1.3213193}, + journal = {J. Chem. Phys.}, + issn = {0021-9606}, + number = {9}, + volume = {131}, + source = {Crossref}, + year = {2009}, + pages = {094103}, +} + +@article{Boese2003, + author = {Boese, A. Daniel and Chandra, Amalendu and Martin, Jan M. L. and Marx, Dominik}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1599338}, + title = {From ab initio quantum chemistry to molecular dynamics: {The} delicate case of hydrogen bonding in ammonia}, + url = {http://dx.doi.org/10.1063/1.1599338}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {12}, + month = sep, + volume = {119}, + source = {Crossref}, + year = {2003}, + pages = {5965-5980}, +} + +@article{Menconi2001, + author = {Menconi, Giuseppina and Wilson, Philip J. and Tozer, David J.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1342776}, + title = {Emphasizing the exchange-correlation potential in functional development}, + url = {http://dx.doi.org/10.1063/1.1342776}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {9}, + month = mar, + volume = {114}, + source = {Crossref}, + year = {2001}, + pages = {3958-3967}, +} + +@article{Cohen2000, + author = {Cohen, Aron J and Handy, Nicholas C}, + publisher = {Elsevier BV}, + doi = {10.1016/s0009-2614(99)01273-7}, + title = {Assessment of exchange correlation functionals}, + url = {http://dx.doi.org/10.1016/s0009-2614(99)01273-7}, + journal = {Chemical Physics Letters}, + issn = {0009-2614}, + number = {1-2}, + month = jan, + volume = {316}, + source = {Crossref}, + year = {2000}, + pages = {160-166}, +} + +@article{Bremond2012, + author = {Brémond, Éric and Pilard, Diane and Ciofini, Ilaria and Chermette, Henry and Adamo, Carlo and Cortona, Pietro}, + publisher = {Springer Nature}, + doi = {10.1007/s00214-012-1184-0}, + title = {Generalized gradient exchange functionals based on the gradient-regulated connection: {A} new member of the {TCA} family}, + url = {http://dx.doi.org/10.1007/s00214-012-1184-0}, + journal = {Theor Chem Acc}, + issn = {1432-881X, 1432-2234}, + number = {3}, + month = mar, + volume = {131}, + source = {Crossref}, + year = {2012}, +} + +@article{Tognetti2008, + author = {Tognetti, Vincent and Cortona, Pietro and Adamo, Carlo}, + publisher = {Elsevier BV}, + doi = {10.1016/j.cplett.2008.06.032}, + title = {Increasing physical constraints and improving performances in a parameter-free {GGA} functional}, + url = {http://dx.doi.org/10.1016/j.cplett.2008.06.032}, + journal = {Chemical Physics Letters}, + issn = {0009-2614}, + number = {4-6}, + month = jul, + volume = {460}, + source = {Crossref}, + year = {2008}, + pages = {536-539}, +} + +@article{Tognetti2008a, + author = {Tognetti, Vincent and Cortona, Pietro and Adamo, Carlo}, + publisher = {AIP Publishing}, + doi = {10.1063/1.2816137}, + title = {A new parameter-free correlation functional based on an average atomic reduced density gradient analysis}, + url = {http://dx.doi.org/10.1063/1.2816137}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {3}, + month = jan, + volume = {128}, + source = {Crossref}, + year = {2008}, + pages = {034101}, +} + +@article{Perdew1997, + author = {Perdew, John P. and Burke, Kieron and Ernzerhof, Matthias}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.78.1396}, + title = {Generalized Gradient Approximation Made Simple {[Phys.} Rev. Lett. 77, 3865 (1996)]}, + url = {http://dx.doi.org/10.1103/physrevlett.78.1396}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007, 1079-7114}, + number = {7}, + month = feb, + volume = {78}, + source = {Crossref}, + year = {1997}, + pages = {1396-1396}, +} + +@article{Becke1986, + author = {Becke, A. D.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.450025}, + title = {Density functional calculations of molecular bond energies}, + url = {http://dx.doi.org/10.1063/1.450025}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {8}, + month = apr, + volume = {84}, + source = {Crossref}, + year = {1986}, + pages = {4524-4529}, +} + +@article{Herman1969, + author = {Herman, Frank and Van Dyke, John P. and Ortenburger, Irene B.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.22.807}, + title = {Improved Statistical Exchange Approximation for Inhomogeneous Many-Electron Systems}, + url = {http://dx.doi.org/10.1103/physrevlett.22.807}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007}, + number = {16}, + month = apr, + volume = {22}, + source = {Crossref}, + year = {1969}, + pages = {807-811}, +} + + +@article{Herman2009, + author = {Herman, F. and Ortenburger, I. B. and Van Dyke, J. P.}, + publisher = {Wiley}, + doi = {10.1002/qua.560040746}, + title = {A method for improving the physical realism of first-principles band structure calculations}, + url = {http://dx.doi.org/10.1002/qua.560040746}, + journal = {Int. J. Quantum Chem.}, + issn = {0020-7608, 1097-461X}, + number = {S3B}, + month = jun, + volume = {4}, + source = {Crossref}, + year = {2009}, + pages = {827-846}, +} + +@article{Becke1988, + author = {Becke, A. D.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physreva.38.3098}, + title = {Density-functional exchange-energy approximation with correct asymptotic behavior}, + url = {http://dx.doi.org/10.1103/physreva.38.3098}, + journal = {Phys. Rev. A}, + issn = {0556-2791}, + number = {6}, + month = sep, + volume = {38}, + source = {Crossref}, + year = {1988}, + pages = {3098-3100}, +} + +@article{Gill1996, + author = {Gill, Peter M. W.}, + publisher = {Informa UK Limited}, + doi = {10.1080/002689796173813}, + title = {A new gradient-corrected exchange functional}, + url = {http://dx.doi.org/10.1080/002689796173813}, + journal = {Molecular Physics}, + issn = {0026-8976, 1362-3028}, + number = {2}, + month = oct, + volume = {89}, + source = {Crossref}, + year = {1996}, + pages = {433-445}, +} + +@article{Perdew1986a, + author = {Perdew, John P. and Yue, Wang}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.33.8800}, + title = {Accurate and simple density functional for the electronic exchange energy: {Generalized} gradient approximation}, + url = {http://dx.doi.org/10.1103/physrevb.33.8800}, + journal = {Phys. Rev. B}, + issn = {0163-1829}, + number = {12}, + month = jun, + volume = {33}, + source = {Crossref}, + year = {1986}, + pages = {8800-8802}, +} + +@article{Perdew1993, + author = {Perdew, John P. and Chevary, J. A. and Vosko, S. H. and Jackson, Koblar A. and Pederson, Mark R. and Singh, D. J. and Fiolhais, Carlos}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.48.4978.2}, + title = {Erratum: {Atoms,} molecules, solids, and surfaces: {Applications} of the generalized gradient approximation for exchange and correlation}, + url = {http://dx.doi.org/10.1103/physrevb.48.4978.2}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {7}, + month = aug, + volume = {48}, + source = {Crossref}, + year = {1993}, + pages = {4978-4978}, +} + +@article{Handy2001, + author = {Handy, Nicholas C. and Cohen, Aron J.}, + publisher = {Informa UK Limited}, + doi = {10.1080/00268970010018431}, + title = {Left-right correlation energy}, + url = {http://dx.doi.org/10.1080/00268970010018431}, + journal = {Molecular Physics}, + issn = {0026-8976, 1362-3028}, + number = {5}, + month = mar, + volume = {99}, + source = {Crossref}, + year = {2001}, + pages = {403-412}, +} + +@article{DePristo1987, + author = {DePristo, Andrew E. and Kress, Joel D.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.452230}, + title = {Rational function representation for accurate exchange energy functionals}, + url = {http://dx.doi.org/10.1063/1.452230}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {3}, + month = feb, + volume = {86}, + source = {Crossref}, + year = {1987}, + pages = {1425-1428}, +} + +@article{Lacks1993, + author = {Lacks, Daniel J. and Gordon, Roy G.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physreva.47.4681}, + title = {Pair interactions of rare-gas atoms as a test of exchange-energy-density functionals in regions of large density gradients}, + url = {http://dx.doi.org/10.1103/physreva.47.4681}, + journal = {Phys. Rev. A}, + issn = {1050-2947, 1094-1622}, + number = {6}, + month = jun, + volume = {47}, + source = {Crossref}, + year = {1993}, + pages = {4681-4690}, +} + + +@article{Perdew2008, + author = {Perdew, John P. and Ruzsinszky, Adrienn and Csonka, Gábor I. and Vydrov, Oleg A. and Scuseria, Gustavo E. and Constantin, Lucian A. and Zhou, Xiaolan and Burke, Kieron}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.100.136406}, + title = {Restoring the Density-Gradient Expansion for Exchange in Solids and Surfaces}, + url = {http://dx.doi.org/10.1103/physrevlett.100.136406}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007, 1079-7114}, + number = {13}, + month = apr, + volume = {100}, + source = {Crossref}, + year = {2008}, +} + +@article{Adamo1998, + author = {Adamo, Carlo and Barone, Vincenzo}, + publisher = {AIP Publishing}, + doi = {10.1063/1.475428}, + title = {Exchange functionals with improved long-range behavior and adiabatic connection methods without adjustable parameters: The m${PW}$ and m${PW1PW}$ models}, + url = {http://dx.doi.org/10.1063/1.475428}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {2}, + month = jan, + volume = {108}, + source = {Crossref}, + year = {1998}, + pages = {664-675}, +} + +@article{Armiento2005, + author = {Armiento, R. and Mattsson, A. E.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.72.085108}, + title = {Functional designed to include surface effects in self-consistent density functional theory}, + url = {http://dx.doi.org/10.1103/physrevb.72.085108}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {8}, + month = aug, + volume = {72}, + source = {Crossref}, + year = {2005}, + pages = {085108} +} + +@article{Mattsson2008, + author = {Mattsson, Ann E. and Armiento, Rickard and Paier, Joachim and Kresse, Georg and Wills, John M. and Mattsson, Thomas R.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.2835596}, + title = {The {AM05} density functional applied to solids}, + url = {http://dx.doi.org/10.1063/1.2835596}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {8}, + month = feb, + volume = {128}, + source = {Crossref}, + year = {2008}, + pages = {084714}, +} + +@article{Madsen2007, + author = {Madsen, Georg K. H.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.75.195108}, + title = {Functional form of the generalized gradient approximation for exchange: The PBE $\alpha$ functional}, + url = {http://dx.doi.org/10.1103/physrevb.75.195108}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {19}, + month = may, + volume = {75}, + source = {Crossref}, + year = {2007}, +} + +@article{Adamo2002, + author = {Adamo, Carlo and Barone, Vincenzo}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1458927}, + title = {Physically motivated density functionals with improved performances: {The} modified Perdew--{Burke}--Ernzerhof model}, + url = {http://dx.doi.org/10.1063/1.1458927}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {14}, + month = apr, + volume = {116}, + source = {Crossref}, + year = {2002}, + pages = {5933-5940}, +} + +@article{Xu2004, + author = {Xu, Xin and Goddard, William A.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1771632}, + title = {The extended Perdew-{Burke}-Ernzerhof functional with improved accuracy for thermodynamic and electronic properties of molecular systems}, + url = {http://dx.doi.org/10.1063/1.1771632}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {9}, + month = sep, + volume = {121}, + source = {Crossref}, + year = {2004}, + pages = {4068-4082}, +} + +@article{Mortensen2005, + author = {Mortensen, J. J. and Kaasbjerg, K. and Frederiksen, S. L. and Nørskov, J. K. and Sethna, J. P. and Jacobsen, K. W.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.95.216401}, + title = {{Bayesian} Error Estimation in Density-Functional Theory}, + url = {http://dx.doi.org/10.1103/physrevlett.95.216401}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007, 1079-7114}, + number = {21}, + month = nov, + volume = {95}, + source = {Crossref}, + year = {2005}, +} + +@article{Pedroza2009, + author = {Pedroza, Luana S. and da Silva, Antonio J. R. and Capelle, K.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.79.201106}, + title = {Gradient-dependent density functionals of the Perdew-{Burke}-Ernzerhof type for atoms, molecules, and solids}, + url = {http://dx.doi.org/10.1103/physrevb.79.201106}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {20}, + month = may, + volume = {79}, + source = {Crossref}, + year = {2009}, +} + +@article{Lee1988, + author = {Lee, Chengteh and Yang, Weitao and Parr, Robert G.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.37.785}, + title = {Development of the Colle-Salvetti correlation-energy formula into a functional of the electron density}, + url = {http://dx.doi.org/10.1103/physrevb.37.785}, + journal = {Phys. Rev. B}, + issn = {0163-1829}, + number = {2}, + month = jan, + volume = {37}, + source = {Crossref}, + year = {1988}, + pages = {785-789}, +} + +@article{Miehlich1989, + author = {Miehlich, Burkhard and Savin, Andreas and Stoll, Hermann and Preuss, Heinzwerner}, + publisher = {Elsevier BV}, + doi = {10.1016/0009-2614(89)87234-3}, + title = {Results obtained with the correlation energy density functionals of becke and Lee, Yang and {Parr}}, + url = {http://dx.doi.org/10.1016/0009-2614(89)87234-3}, + journal = {Chemical Physics Letters}, + issn = {0009-2614}, + number = {3}, + month = may, + volume = {157}, + source = {Crossref}, + year = {1989}, + pages = {200-206}, +} + +@article{Perdew1986, + author = {Perdew, John P.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.33.8822}, + title = {Density-functional approximation for the correlation energy of the inhomogeneous electron gas}, + url = {http://dx.doi.org/10.1103/physrevb.33.8822}, + journal = {Phys. Rev. B}, + issn = {0163-1829}, + number = {12}, + month = jun, + volume = {33}, + source = {Crossref}, + year = {1986}, + pages = {8822-8824}, +} + +@article{Langreth1981, + author = {Langreth, David C. and Mehl, M. J.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.47.446}, + title = {Easily Implementable Nonlocal Exchange-Correlation Energy Functional}, + url = {http://dx.doi.org/10.1103/physrevlett.47.446}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007}, + number = {6}, + month = aug, + volume = {47}, + source = {Crossref}, + year = {1981}, + pages = {446-450}, +} + +@article{Klimes2011, + author = {Klimeš, Jiří and Bowler, David R. and Michaelides, Angelos}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.83.195131}, + title = {Van der {Waals} density functionals applied to solids}, + url = {http://dx.doi.org/10.1103/physrevb.83.195131}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {19}, + month = may, + volume = {83}, + source = {Crossref}, + year = {2011}, +} + +@article{Ruzsinszky2009, + author = {Ruzsinszky, Adrienn and Csonka, Gábor I. and Scuseria, Gustavo E.}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/ct8005369}, + title = {Regularized Gradient Expansion for Atoms, Molecules, and Solids}, + url = {http://dx.doi.org/10.1021/ct8005369}, + journal = {J. Chem. Theory Comput.}, + issn = {1549-9618, 1549-9626}, + number = {4}, + month = apr, + volume = {5}, + source = {Crossref}, + year = {2009}, + pages = {763-769}, +} + +@article{Murray2009, + author = {Murray, Éamonn D. and Lee, Kyuho and Langreth, David C.}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/ct900365q}, + title = {Investigation of Exchange Energy Density Functional Accuracy for Interacting Molecules}, + journal = {J. Chem. Theory Comput.}, + issn = {1549-9618, 1549-9626}, + number = {10}, + month = oct, + volume = {5}, + source = {Crossref}, + year = {2009}, + pages = {2754-2762}, +} + +@article{Keal2003, + author = {Keal, Thomas W. and Tozer, David J.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1590634}, + title = {The exchange-correlation potential in Kohn--Sham nuclear magnetic resonance shielding calculations}, + url = {http://dx.doi.org/10.1063/1.1590634}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {6}, + month = aug, + volume = {119}, + source = {Crossref}, + year = {2003}, + pages = {3015-3024}, +} + +@article{Wilson1990, + author = {Wilson, Leslie C. and Levy, Mel}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.41.12930}, + title = {Nonlocal {Wigner}-like correlation-energy density functional through coordinate scaling}, + url = {http://dx.doi.org/10.1103/physrevb.41.12930}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {18}, + month = jun, + volume = {41}, + source = {Crossref}, + year = {1990}, + pages = {12930-12932}, +} + +@article{Tognetti2009, + author = {Tognetti, Vincent and Adamo, Carlo}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/jp903672e}, + title = {Optimized {GGA} Functional for Proton Transfer Reactions}, + url = {http://dx.doi.org/10.1021/jp903672e}, + journal = {J. Phys. Chem. A}, + issn = {1089-5639, 1520-5215}, + number = {52}, + month = dec, + volume = {113}, + source = {Crossref}, + year = {2009}, + pages = {14415-14419}, +} + +@article{Zhao2008, + author = {Zhao, Yan and Truhlar, Donald G.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.2912068}, + title = {Construction of a generalized gradient approximation by restoring the density-gradient expansion and enforcing a tight Lieb--Oxford bound}, + url = {http://dx.doi.org/10.1063/1.2912068}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {18}, + month = may, + volume = {128}, + source = {Crossref}, + year = {2008}, + pages = {184109}, +} + + +@article{Peverati2011, + author = {Peverati, Roberto and Zhao, Yan and Truhlar, Donald G.}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/jz200616w}, + title = {Generalized Gradient Approximation That Recovers the Second-Order Density-Gradient Expansion with Optimized Across-the-Board Performance}, + url = {http://dx.doi.org/10.1021/jz200616w}, + journal = {J. Phys. Chem. Lett.}, + issn = {1948-7185}, + number = {16}, + month = jul, + volume = {2}, + source = {Crossref}, + year = {2011}, + pages = {1991-1997}, +} + +@article{Tozer1998, + author = {Tozer, David J. and Handy, Nicholas C.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.475638}, + title = {The development of new exchange-correlation functionals}, + url = {http://dx.doi.org/10.1063/1.475638}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {6}, + month = feb, + volume = {108}, + source = {Crossref}, + year = {1998}, + pages = {2545-2555}, +} + +@article{Tozer1998a, + author = {Tozer, David J. and Handy, Nicholas C.}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/jp980259s}, + title = {Development of New Exchange-Correlation Functionals. 2}, + url = {http://dx.doi.org/10.1021/jp980259s}, + journal = {J. Phys. Chem. A}, + issn = {1089-5639, 1520-5215}, + number = {18}, + month = apr, + volume = {102}, + source = {Crossref}, + year = {1998}, + pages = {3162-3168}, +} + +@article{Handy1998, + author = {Handy, Nicholas C. and Tozer, David J.}, + publisher = {Informa UK Limited}, + doi = {10.1080/002689798167863}, + title = {The development of new exchange-correlation functionals: {3}}, + url = {http://dx.doi.org/10.1080/002689798167863}, + journal = {Molecular Physics}, + issn = {0026-8976, 1362-3028}, + number = {4}, + month = jul, + volume = {94}, + source = {Crossref}, + year = {1998}, + pages = {707-715}, +} + +@article{Peverati2011a, + author = {Peverati, Roberto and Truhlar, Donald G.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.3663871}, + title = {Communication: {A} global hybrid generalized gradient approximation to the exchange-correlation functional that satisfies the second-order density-gradient constraint and has broad applicability in chemistry}, + url = {http://dx.doi.org/10.1063/1.3663871}, + journal = {J. Chem. Phys.}, + issn = {0021-9606, 1089-7690}, + number = {19}, + month = nov, + volume = {135}, + source = {Crossref}, + year = {2011}, + pages = {191102}, +} + +@article{Adamson1998, + author = {Adamson, Ross D and Gill, Peter M.W and Pople, John A}, + publisher = {Elsevier BV}, + doi = {10.1016/s0009-2614(97)01282-7}, + title = {Empirical density functionals}, + url = {http://dx.doi.org/10.1016/s0009-2614(97)01282-7}, + journal = {Chemical Physics Letters}, + issn = {0009-2614}, + number = {1-2}, + month = feb, + volume = {284}, + source = {Crossref}, + year = {1998}, + pages = {6-11}, +} + +@article{Xu2004a, + author = {Xu, X. and Goddard, W. A.}, + publisher = {Proceedings of the National Academy of Sciences}, + doi = {10.1073/pnas.0308730100}, + title = {From The Cover: {The} {X3LYP} extended density functional for accurate descriptions of nonbond interactions, spin states, and thermochemical properties}, + url = {http://dx.doi.org/10.1073/pnas.0308730100}, + journal = {Proceedings of the National Academy of Sciences}, + issn = {0027-8424, 1091-6490}, + number = {9}, + month = feb, + volume = {101}, + source = {Crossref}, + year = {2004}, + pages = {2673-2677}, +} + +@article{Becke1997, + author = {Becke, Axel D.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.475007}, + title = {Density-functional thermochemistry. V. Systematic optimization of exchange-correlation functionals}, + url = {http://dx.doi.org/10.1063/1.475007}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {20}, + month = nov, + volume = {107}, + source = {Crossref}, + year = {1997}, + pages = {8554-8560}, +} + +@article{Boese2004, + author = {Boese, A. Daniel and Martin, Jan M. L.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1774975}, + title = {Development of density functionals for thermochemical kinetics}, + url = {http://dx.doi.org/10.1063/1.1774975}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {8}, + month = aug, + volume = {121}, + source = {Crossref}, + year = {2004}, + pages = {3405-3416}, +} + +@article{Keal2005, + author = {Keal, Thomas W. and Tozer, David J.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.2061227}, + title = {Semiempirical hybrid functional with improved performance in an extensive chemical assessment}, + url = {http://dx.doi.org/10.1063/1.2061227}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {12}, + month = sep, + volume = {123}, + source = {Crossref}, + year = {2005}, + pages = {121103}, +} + +@article{Dahlke2005, + author = {Dahlke, Erin E. and Truhlar, Donald G.}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/jp052436c}, + title = {Improved Density Functionals for Water}, + journal = {J. Phys. Chem. B}, + issn = {1520-6106, 1520-5207}, + number = {33}, + month = aug, + volume = {109}, + source = {Crossref}, + year = {2005}, + pages = {15677-15683}, +} + +@article{Schmider1998, + author = {Schmider, Hartmut L. and Becke, Axel D.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.476438}, + title = {Optimized density functionals from the extended G2 test set}, + url = {http://dx.doi.org/10.1063/1.476438}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {23}, + month = jun, + volume = {108}, + source = {Crossref}, + year = {1998}, + pages = {9624-9631}, +} + +@article{Fuentealba1995, + author = {Fuentealba, P. and Reyes, O.}, + publisher = {Elsevier BV}, + doi = {10.1016/0009-2614(94)01321-l}, + title = {Further evidence of the conjoint correction to the local kinetic and exchange energy density functionals}, + url = {http://dx.doi.org/10.1016/0009-2614(94)01321-l}, + journal = {Chemical Physics Letters}, + issn = {0009-2614}, + number = {1-2}, + month = jan, + volume = {232}, + source = {Crossref}, + year = {1995}, + pages = {31-34}, +} + +@article{OuYang1991, + author = {Ou-Yang, Hui and Levy, Mel}, + publisher = {Wiley}, + doi = {10.1002/qua.560400309}, + title = {Approximate noninteracting kinetic energy functionals from a nonuniform scaling requirement}, + url = {http://dx.doi.org/10.1002/qua.560400309}, + journal = {Int. J. Quantum Chem.}, + issn = {0020-7608, 1097-461X}, + number = {3}, + month = sep, + volume = {40}, + source = {Crossref}, + year = {1991}, + pages = {379-388}, +} + +@article{Constantin2011, + author = {Constantin, Lucian A. and Fabiano, E. and Laricchia, S. and Della Sala, F.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.106.186406}, + title = {Semiclassical Neutral Atom as a Reference System in Density Functional Theory}, + url = {http://dx.doi.org/10.1103/physrevlett.106.186406}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007, 1079-7114}, + number = {18}, + month = may, + volume = {106}, + source = {Crossref}, + year = {2011}, + pages = {186406} +} + +@article{Haas2011, + author = {Haas, Philipp and Tran, Fabien and Blaha, Peter and Schwarz, Karlheinz}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.83.205117}, + title = {Construction of an optimal {GGA} functional for molecules and solids}, + url = {http://dx.doi.org/10.1103/physrevb.83.205117}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {20}, + month = may, + volume = {83}, + source = {Crossref}, + year = {2011}, + pages = {205117} +} + +@article{Constantin2009, + author = {Constantin, Lucian A. and Ruzsinszky, Adrienn and Perdew, John P.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.80.035125}, + title = {Exchange-correlation energy functional based on the Airy-gas reference system}, + url = {http://dx.doi.org/10.1103/physrevb.80.035125}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {3}, + month = jul, + volume = {80}, + source = {Crossref}, + year = {2009}, + pages = {035125} +} + +@article{Vitos2000, + author = {Vitos, L. and Johansson, B. and Kollár, J. and Skriver, H. L.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.62.10046}, + title = {Exchange energy in the local Airy gas approximation}, + url = {http://dx.doi.org/10.1103/physrevb.62.10046}, + journal = {Phys. Rev. B}, + issn = {0163-1829, 1095-3795}, + number = {15}, + month = oct, + volume = {62}, + source = {Crossref}, + year = {2000}, + pages = {10046-10050}, +} + +@article{Schultz2005, + author = {Schultz, Nathan E. and Zhao, Yan and Truhlar, Donald G.}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/jp0539223}, + title = {Density Functionals for Inorganometallic and Organometallic Chemistry}, + journal = {J. Phys. Chem. A}, + issn = {1089-5639, 1520-5215}, + number = {49}, + month = dec, + volume = {109}, + source = {Crossref}, + year = {2005}, + pages = {11127-11143}, +} + +@article{Zheng2009, + author = {Zheng, Jingjing and Zhao, Yan and Truhlar, Donald G.}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/ct800568m}, + title = {The {DBH24/08} Database and Its Use to Assess Electronic Structure Model Chemistries for Chemical Reaction Barrier Heights}, + url = {http://dx.doi.org/10.1021/ct800568m}, + journal = {J. Chem. Theory Comput.}, + issn = {1549-9618, 1549-9626}, + number = {4}, + month = apr, + volume = {5}, + source = {Crossref}, + year = {2009}, + pages = {808-821}, +} + +@article{Tozer1997, + author = {Tozer, David J. and Handy, Nicholas C. and Green, William H.}, + publisher = {Elsevier BV}, + doi = {10.1016/s0009-2614(97)00586-1}, + title = {Exchange-correlation functionals from ab initio electron densities}, + url = {http://dx.doi.org/10.1016/s0009-2614(97)00586-1}, + journal = {Chemical Physics Letters}, + issn = {0009-2614}, + number = {3-4}, + month = jul, + volume = {273}, + source = {Crossref}, + year = {1997}, + pages = {183-194}, +} + +@article{Cohen2001, + author = {Cohen, Aron J. and Handy, Nicholas C.}, + publisher = {Informa UK Limited}, + doi = {10.1080/00268970010023435}, + title = {Dynamic correlation}, + url = {http://dx.doi.org/10.1080/00268970010023435}, + journal = {Molecular Physics}, + issn = {0026-8976, 1362-3028}, + number = {7}, + month = apr, + volume = {99}, + source = {Crossref}, + year = {2001}, + pages = {607-615}, +} + +@article{Heyd2003, + author = {Heyd, Jochen and Scuseria, Gustavo E. and Ernzerhof, Matthias}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1564060}, + title = {Hybrid functionals based on a screened Coulomb potential}, + url = {http://dx.doi.org/10.1063/1.1564060}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {18}, + month = may, + volume = {118}, + source = {Crossref}, + year = {2003}, + pages = {8207-8215}, +} + +@article{Henderson2008, + author = {Henderson, Thomas M. and Janesko, Benjamin G. and Scuseria, Gustavo E.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.2921797}, + title = {Generalized gradient approximation model exchange holes for range-separated hybrids}, + url = {http://dx.doi.org/10.1063/1.2921797}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {19}, + month = may, + volume = {128}, + source = {Crossref}, + year = {2008}, + pages = {194105}, +} + +@article{Iikura2001, + author = {Iikura, Hisayoshi and Tsuneda, Takao and Yanai, Takeshi and Hirao, Kimihiko}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1383587}, + title = {A long-range correction scheme for generalized-gradient-approximation exchange functionals}, + url = {http://dx.doi.org/10.1063/1.1383587}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {8}, + month = aug, + volume = {115}, + source = {Crossref}, + year = {2001}, + pages = {3540-3544}, +} + +@article{Sun2011, + author = {Sun, Jianwei and Marsman, Martijn and Csonka, Gábor I. and Ruzsinszky, Adrienn and Hao, Pan and Kim, Yoon-Suk and Kresse, Georg and Perdew, John P.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevb.84.035117}, + title = {Self-consistent meta-generalized gradient approximation within the projector-augmented-wave method}, + url = {http://dx.doi.org/10.1103/physrevb.84.035117}, + journal = {Phys. Rev. B}, + issn = {1098-0121, 1550-235X}, + number = {3}, + month = jul, + volume = {84}, + source = {Crossref}, + year = {2011}, +} + + +@article{Tao2003, + author = {Tao, Jianmin and Perdew, John P. and Staroverov, Viktor N. and Scuseria, Gustavo E.}, + publisher = {American Physical Society (APS)}, + doi = {10.1103/physrevlett.91.146401}, + title = {Climbing the Density Functional Ladder: {Nonempirical} Meta--Generalized Gradient Approximation Designed for Molecules and Solids}, + url = {http://dx.doi.org/10.1103/physrevlett.91.146401}, + journal = {Phys. Rev. Lett.}, + issn = {0031-9007, 1079-7114}, + number = {14}, + month = sep, + volume = {91}, + source = {Crossref}, + year = {2003}, +} + +@article{Perdew2004, + author = {Perdew, John P. and Tao, Jianmin and Staroverov, Viktor N. and Scuseria, Gustavo E.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1665298}, + title = {Meta-generalized gradient approximation: {Explanation} of a realistic nonempirical density functional}, + url = {http://dx.doi.org/10.1063/1.1665298}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {15}, + month = apr, + volume = {120}, + source = {Crossref}, + year = {2004}, + pages = {6898-6911}, +} + +@article{Zhao2006, + author = {Zhao, Yan and Truhlar, Donald G.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.2370993}, + title = {A new local density functional for main-group thermochemistry, transition metal bonding, thermochemical kinetics, and noncovalent interactions}, + url = {http://dx.doi.org/10.1063/1.2370993}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {19}, + month = nov, + volume = {125}, + source = {Crossref}, + year = {2006}, + pages = {194101}, +} + +@article{Zhao2007, + author = {Zhao, Yan and Truhlar, Donald G.}, + publisher = {Springer Nature}, + doi = {10.1007/s00214-007-0310-x}, + title = {The M06 suite of density functionals for main group thermochemistry, thermochemical kinetics, noncovalent interactions, excited states, and transition elements: {Two} new functionals and systematic testing of four M06-class functionals and 12 other functionals}, + url = {http://dx.doi.org/10.1007/s00214-007-0310-x}, + journal = {Theor Chem Account}, + issn = {1432-881X, 1432-2234}, + number = {1-3}, + month = jul, + volume = {120}, + source = {Crossref}, + year = {2007}, + pages = {215-241}, +} + + +@article{Voorhis1998, + author = {Van Voorhis, Troy and Scuseria, Gustavo E.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.476577}, + title = {A novel form for the exchange-correlation energy functional}, + url = {http://dx.doi.org/10.1063/1.476577}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {2}, + month = jul, + volume = {109}, + source = {Crossref}, + year = {1998}, + pages = {400-410}, +} + + +@article{Boese2002, + author = {Boese, A. Daniel and Handy, Nicholas C.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.1476309}, + title = {New exchange-correlation density functionals: {The} role of the kinetic-energy density}, + url = {http://dx.doi.org/10.1063/1.1476309}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {22}, + month = jun, + volume = {116}, + source = {Crossref}, + year = {2002}, + pages = {9559-9569}, +} + +@article{Rasanen2010, + author = {Räsänen, E. and Pittalis, S. and Proetto, C. R.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.3300063}, + title = {Universal correction for the Becke--{Johnson} exchange potential}, + url = {http://dx.doi.org/10.1063/1.3300063}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {4}, + month = jan, + volume = {132}, + source = {Crossref}, + year = {2010}, + pages = {044112}, +} + +@article{Stephens1994, + author = {Stephens, P. J. and Devlin, F. J. and Chabalowski, C. F. and Frisch, M. J.}, + publisher = {American Chemical Society (ACS)}, + doi = {10.1021/j100096a001}, + title = {Ab Initio Calculation of Vibrational Absorption and Circular Dichroism Spectra Using Density Functional Force Fields}, + url = {http://dx.doi.org/10.1021/j100096a001}, + journal = {J. Phys. Chem.}, + issn = {0022-3654, 1541-5740}, + number = {45}, + month = nov, + volume = {98}, + source = {Crossref}, + year = {1994}, + pages = {11623-11627}, +} + +@article{Adamo1999, + author = {Adamo, Carlo and Barone, Vincenzo}, + publisher = {AIP Publishing}, + doi = {10.1063/1.478522}, + title = {Toward reliable density functional methods without adjustable parameters: {The} {PBE0} model}, + url = {http://dx.doi.org/10.1063/1.478522}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {13}, + month = apr, + volume = {110}, + source = {Crossref}, + year = {1999}, + pages = {6158-6170}, +} + + +@article{Ernzerhof1999, + author = {Ernzerhof, Matthias and Scuseria, Gustavo E.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.478401}, + title = {Assessment of the Perdew--{Burke}--Ernzerhof exchange-correlation functional}, + url = {http://dx.doi.org/10.1063/1.478401}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {11}, + month = mar, + volume = {110}, + source = {Crossref}, + year = {1999}, + pages = {5029-5036}, +} + +@article{Krukau2006, + author = {Krukau, Aliaksandr V. and Vydrov, Oleg A. and Izmaylov, Artur F. and Scuseria, Gustavo E.}, + publisher = {AIP Publishing}, + doi = {10.1063/1.2404663}, + title = {Influence of the exchange screening parameter on the performance of screened hybrid functionals}, + url = {http://dx.doi.org/10.1063/1.2404663}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {22}, + month = dec, + volume = {125}, + source = {Crossref}, + year = {2006}, + pages = {224106}, +} + + +@article{Heyd2006, + author = {Heyd, Jochen and Scuseria, Gustavo E. and Ernzerhof, Matthias}, + publisher = {AIP Publishing}, + doi = {10.1063/1.2204597}, + title = {Erratum: hybrid functionals based on a screened Coulomb potential - J. Chem. Phys. 118, 8207 (2003)}, + url = {http://dx.doi.org/10.1063/1.2204597}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {21}, + month = jun, + volume = {124}, + source = {Crossref}, + year = {2006}, + pages = {219906}, +} + +@article{Cortona2012, + author = {Cortona, Pietro}, + publisher = {AIP Publishing}, + doi = {10.1063/1.3690462}, + title = {Note: {Theoretical} mixing coefficients for hybrid functionals}, + url = {http://dx.doi.org/10.1063/1.3690462}, + journal = {The Journal of Chemical Physics}, + issn = {0021-9606, 1089-7690}, + number = {8}, + month = feb, + volume = {136}, + source = {Crossref}, + year = {2012}, + pages = {086101}, +} + + +@book{Gombas1967, + author = {Gombás, P.}, + publisher = {Springer Vienna}, + doi = {10.1007/978-3-7091-7950-5}, + isbn = {9783709179512, 9783709179505}, + title = {Pseudopotentiale}, + url = {http://dx.doi.org/10.1007/978-3-7091-7950-5}, + source = {Crossref}, + year = {1967}, +} + +% The references below were put in by hand, because they could not be imported with betterbib-doi2bibtex +% In some cases, the doi seemed malformed and made the file unparsable, so it had to be omitted. + +@article{Becke1986a, +author = {Becke,A. D. }, +title = {On the large-gradient behavior of the density functional exchange energy}, +journal = {The Journal of Chemical Physics}, +volume = {85}, +number = {12}, +pages = {7184-7187}, +year = {1986}, +doi = {10.1063/1.451353}, +URL = {https://doi.org/10.1063/1.451353}, +} + +@article{Wilson1998, +author = {Wilson Leslie C. and Ivanov Stanislav}, +title = {A new Wigner-like correlation-energy functional from coordinate scaling requirements}, +journal = {International Journal of Quantum Chemistry}, +volume = {69}, +number = {4}, +pages = {523-532}, +year = {1998}, +month = dec, +url = {https://doi.org/10.1002/(SICI)1097-461X(1998)69:4%3C523::AID-QUA9%3E3.0.CO;2-X}, +} + +@article{Filatov1997, +author = {Filatov Michael and Thiel Walter}, +title = {A nonlocal correlation energy density functional from a Coulomb hole model}, +journal = {International Journal of Quantum Chemistry}, +volume = {62}, +number = {6}, +pages = {603-616}, +year = {1997}, +url = {https://doi.org/10.1002/(SICI)1097-461X(1997)62:6%3C603::AID-QUA4%3E3.0.CO;2-%23}, +} + +@article{Swart2009a, +author = {Swart, Marcel and Solà, Miquel, and Bickelhaupt, F. Matthias}, +title = {Switching between OPTX and PBE exchange functionals }, +journal = {Journal of Computational Methods in Sciences and Engineering}, +volume = {9}, +number = {1}, +pages = {69-77}, +year = {2009}, +url = {https://content.iospress.com/articles/journal-of-computational-methods-in-sciences-and-engineering/jcm00230}, +} + +@article{Bloch1929, +author = {Bloch, F.}, +title = {Bemerkung zur Elektronentheorie des Ferromagnetismus und der elektrischen Leitfähigkeit}, +journal = {Zeitschrift für Physik}, +volume = {57}, +number = {7}, +pages = {545-555}, +year = {1929}, +url = {https://doi.org/10.1007/BF01340281}, +doi = {10.1007/BF01340281}, +} + +@incollection{Aulbur2001, +title = "Quasiparticle Calculations in Solids", +editor = "Henry Ehrenreich and Frans Spaepen", +series = "Solid State Physics", +publisher = "Academic Press", +volume = "54", +pages = "1 - 218", +year = "2000", +issn = "0081-1947", +doi = "https://doi.org/10.1016/S0081-1947(08)60248-9", +url = "http://www.sciencedirect.com/science/article/pii/S0081194708602489", +author = "Wilfried G. Aulbur and Lars Jönsson and John W. Wilkins" +} + +@article{Euwema1969, + author = {Euwema, R. N. and Stukel, D. J. and Collins, T. C. and Dewitt, J. S. and Shankland, D. G.}, + doi = {10.1103/physrev.178.1419}, + number = {3}, + pages = {1419-1423}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrev.178.1419}, + volume = {178}, + journal = {Phys. Rev.}, + publisher = {American Physical Society (APS)}, + title = {Crystalline Interpolation with Applications to {Brillouin}-Zone Averages and Energy-Band Interpolation}, + issn = {0031-899X}, + year = {1969}, + month = feb, +} + +@article{Koelling1986, + author = {Koelling, D.D and Wood, J.H}, + doi = {10.1016/0021-9991(86)90261-5}, + number = {2}, + pages = {253-262}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/0021-9991(86)90261-5}, + volume = {67}, + journal = {Journal of Computational Physics}, + publisher = {Elsevier BV}, + title = {On the interpolation of eigenvalues and a resultant integration scheme}, + issn = {0021-9991}, + year = {1986}, + month = dec, +} + +@article{Madsen2006, + author = {Madsen, Georg K.H. and Singh, David J.}, + doi = {10.1016/j.cpc.2006.03.007}, + number = {1}, + pages = {67-71}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.cpc.2006.03.007}, + volume = {175}, + journal = {Computer Physics Communications}, + publisher = {Elsevier BV}, + title = {{BoltzTraP.} A code for calculating band-structure dependent quantities}, + issn = {0010-4655}, + year = {2006}, + month = jul, +} + +@article{Kolos1960, + title = {Accurate Electronic Wave Functions for the H$_2$ Molecule}, + author = {Kolos, W. and Roothaan, C. C. J.}, + journal = {Rev. Mod. Phys.}, + volume = {32}, + issue = {2}, + pages = {219--232}, + numpages = {0}, + year = {1960}, + month = {Apr}, + publisher = {American Physical Society}, + doi = {10.1103/RevModPhys.32.219}, + url = {https://link.aps.org/doi/10.1103/RevModPhys.32.219} +} + +@article{Ceperley1980, + title = {Ground State of the Electron Gas by a Stochastic Method}, + author = {Ceperley, D. M. and Alder, B. J.}, + journal = {Phys. Rev. Lett.}, + volume = {45}, + issue = {7}, + pages = {566--569}, + numpages = {0}, + year = {1980}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.45.566}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.45.566} +} + +@article{VanLeeuwen1994, + title = {Exchange-correlation potential with correct asymptotic behavior}, + author = {van Leeuwen, R. and Baerends, E. J.}, + journal = {Phys. Rev. A}, + volume = {49}, + issue = {4}, + pages = {2421--2431}, + numpages = {0}, + year = {1994}, + month = {Apr}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevA.49.2421}, + url = {https://link.aps.org/doi/10.1103/PhysRevA.49.2421} +} + +@article{Wojdel2013, +author = {Wojdeł, Jacek C and Hermet, Patrick and Ljungberg, Mathias P and Ghosez, Philippe and Íñiguez, Jorge}, +journal = {Journal of Physics: Condensed Matter}, +number = {30}, +pages = {305401}, +title = {First-principles model potentials for lattice-dynamical studies: general methodology and example of application to ferroic perovskite oxides}, +url = {http://stacks.iop.org/0953-8984/25/i=30/a=305401}, +volume = {25}, +year = {2013} +} + +@article{Escorihuela-Sayalero2017, + title = {Efficient systematic scheme to construct second-principles + lattice dynamical models}, + author = {Escorihuela-Sayalero, Carlos and Wojdeł, Jacek C. and Iniguez, Jorge}, + journal = {Phys. Rev. B}, + volume = {B 95, 094115}, + year = {2017}, + publisher = {American Physical Society}, + url={https://journals.aps.org/prb/pdf/10.1103/PhysRevB.95.094115} +} + +@article{Slater1951, + title = {A Simplification of the Hartree-Fock Method}, + author = {Slater, J. C.}, + journal = {Phys. Rev.}, + volume = {81}, + issue = {3}, + pages = {385--390}, + numpages = {0}, + year = {1951}, + month = {Feb}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRev.81.385}, + url = {https://link.aps.org/doi/10.1103/PhysRev.81.385} +} + +@article{Ichimaru1987, +title = "Statistical physics of dense plasmas: Thermodynamics, transport coefficients and dynamic correlations", +journal = "Physics Reports", +volume = "149", +number = "2", +pages = "91 - 205", +year = "1987", +issn = "0370-1573", +doi = "https://doi.org/10.1016/0370-1573(87)90125-6", +url = "http://www.sciencedirect.com/science/article/pii/0370157387901256", +author = "Setsuo Ichimaru and Hiroshi Iyetomi and Shigenori Tanaka" +} + +@article{Evarestov1983, +author = {Evarestov R. A. and Smirnov V. P.}, +title = {Special points of the brillouin zone and their use in the solid state theory}, +journal = {physica status solidi (b)}, +volume = {119}, +number = {1}, +year = "1983", +pages = {9-40}, +doi = {10.1002/pssb.2221190102}, +url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/pssb.2221190102}, +} + +@article{Petersilka1996, + title = {Excitation Energies from Time-Dependent Density-Functional Theory}, + author = {Petersilka, M. and Gossmann, U. J. and Gross, E. K. U.}, + journal = {Phys. Rev. Lett.}, + volume = {76}, + issue = {8}, + pages = {1212--1215}, + numpages = {0}, + year = {1996}, + month = {Feb}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.76.1212}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.76.1212} +} + +@article{Dobson2000, + title = {Energy-optimized local exchange-correlation kernel for the electron gas: Application to van der Waals forces}, + author = {Dobson, John F. and Wang, Jun}, + journal = {Phys. Rev. B}, + volume = {62}, + issue = {15}, + pages = {10038--10045}, + numpages = {0}, + year = {2000}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.62.10038}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.62.10038} +} + +@article{Gajdo2006, + title = {Linear optical properties in the projector-augmented wave methodology}, + author = {Gajdoš, M. and Hummer, K. and Kresse, G. and Furthm\"uller, J. and Bechstedt, F.}, + journal = {Phys. Rev. B}, + volume = {73}, + issue = {4}, + pages = {045112}, + numpages = {9}, + year = {2006}, + month = {Jan}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.73.045112}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.73.045112} +} + +@article{Slater1958, + title = {Exchange in Spin-Polarized Energy Bands}, + author = {Slater, J. C.}, + journal = {Phys. Rev.}, + volume = {165}, + issue = {2}, + pages = {658--669}, + numpages = {0}, + year = {1968}, + month = {Jan}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRev.165.658}, + url = {https://link.aps.org/doi/10.1103/PhysRev.165.658} +} + +@article{Vydrov2010, + title = {Dispersion interactions from a local polarizability model}, + author = {Vydrov, Oleg A. and Van Voorhis, Troy}, + journal = {Phys. Rev. A}, + volume = {81}, + issue = {6}, + pages = {062708}, + numpages = {6}, + year = {2010}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevA.81.062708}, + url = {https://link.aps.org/doi/10.1103/PhysRevA.81.062708} +} + +@article{Honma1977, +author = {Honma ,Akio}, +title = {Dipolar Lattice-Sums with Applications to the Exciton Bands of Anthracene Crystal and the Crystal Field due to Point Charges}, +journal = {Journal of the Physical Society of Japan}, +volume = {42}, +number = {4}, +pages = {1129-1135}, +year = {1977}, +doi = {10.1143/JPSJ.42.1129}, +URL = { https://doi.org/10.1143/JPSJ.42.1129 }, +} + +@article{Allen1972, + title = {Neutron Spectroscopy of Superconductors}, + author = {Allen, Philip B.}, + journal = {Phys. Rev. B}, + volume = {6}, + issue = {7}, + pages = {2577--2579}, + numpages = {0}, + year = {1972}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.6.2577}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.6.2577} +} + +@article{Giustino2007, + title = {Electron-phonon interaction using Wannier functions}, + author = {Giustino, Feliciano and Cohen, Marvin L. and Louie, Steven G.}, + journal = {Phys. Rev. B}, + volume = {76}, + issue = {16}, + pages = {165108}, + numpages = {19}, + year = {2007}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.76.165108}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.76.165108} +} + +@article{Allen1987, + title = {Theory of thermal relaxation of electrons in metals}, + author = {Allen, Philip B.}, + journal = {Phys. Rev. Lett.}, + volume = {59}, + issue = {13}, + pages = {1460--1463}, + numpages = {0}, + year = {1987}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.59.1460}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.59.1460} +} + +@article{Bouchet2015, + title = {Thermal evolution of vibrational properties of $\alpha$-U}, + author = {Bouchet, J. and Bottin, F.}, + journal = {Phys. Rev. B}, + volume = {92}, + issue = {17}, + pages = {174108}, + numpages = {6}, + year = {2015}, + month = {Nov}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.92.174108}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.92.174108} +} + +@article{Bouchet2017, + title = {High-temperature and high-pressure phase transitions in uranium}, + author = {Bouchet, J. and Bottin, F.}, + journal = {Phys. Rev. B}, + volume = {95}, + issue = {5}, + pages = {054113}, + numpages = {6}, + year = {2017}, + month = {Feb}, + publisher = {American Physical Society}, + doi = {10.1103/physrevb.95.054113}, + url = {http://dx.doi.org/10.1103/physrevb.95.054113}, +} + +@article{Hellman2011, + title = {Lattice dynamics of anharmonic solids from first principles}, + author = {Hellman, O. and Abrikosov, I. A. and Simak, S. I.}, + journal = {Phys. Rev. B}, + volume = {84}, + issue = {18}, + pages = {180301}, + numpages = {4}, + year = {2011}, + month = {Nov}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.84.180301}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.84.180301} +} + +@article{Hellman2013, + title = {Temperature dependent effective potential method for accurate free energy calculations of solids}, + author = {Hellman, O. and Steneteg, P. and Abrikosov, I. A. and Simak, S. I.}, + journal = {Phys. Rev. B}, + volume = {87}, + issue = {10}, + pages = {104111}, + numpages = {8}, + year = {2013}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.87.104111}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.87.104111} +} + +@article{Hellman2013a, + title = {Temperature-dependent effective third-order interatomic force constants from first principles}, + author = {Hellman, O. and Abrikosov, I. A.}, + journal = {Phys. Rev. B}, + volume = {88}, + issue = {14}, + pages = {144301}, + numpages = {5}, + year = {2013}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/physrevb.88.144301}, + url = {http://dx.doi.org/10.1103/physrevb.88.144301}, +} + +@article{Baldereschi1988, + title = {Band Offsets in Lattice-Matched Heterojunctions: A Model and First-Principles Calculations for GaAs/AlAs}, + author = {Baldereschi, Alfonso and Baroni, Stefano and Resta, Raffaele}, + journal = {Phys. Rev. Lett.}, + volume = {61}, + issue = {6}, + pages = {734--737}, + numpages = {0}, + year = {1988}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.61.734}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.61.734} +} + +@article{Colombo1991, + title = {Valence-band offsets at strained Si/Ge interfaces}, + author = {Colombo, L. and Resta, R. and Baroni, S.}, + journal = {Phys. Rev. B}, + volume = {44}, + issue = {11}, + pages = {5572--5579}, + numpages = {0}, + year = {1991}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.44.5572}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.44.5572} +} + +@article{Lebedev1999, + title = {A quadrature formula for the sphere of the 131st algebraic order of accuracy}, + author = {V.I. Lebedev and D.N. Laikov}, + journal = {Doklady Mathematics}, + volume = {59}, + issue = {3}, + pages = {477--481}, + year = {1999}, +} + +@article{Lebedev1995, + title = {A quadrature formula for the sphere of 59th algebraic order of accuracy}, + author = {V.I. Lebedev}, + journal = {Russian Acad. Sci. Dokl. Math.}, + volume = {50}, + pages = {283-286}, + year = {1995}, +} + +@article{Lebedev1992, + title = {Quadrature formulas of orders 41, 47, and 53 for the sphere}, + author = {V.I. Lebedev and A.L. Skorokhodov}, + journal = {Russian Acad. Sci. Dokl. Math.}, + volume = {45}, + pages = {587-592}, + year = {1992}, +} + +@article{Lebedev1977, +author="Lebedev, V. I.", +title="Spherical quadrature formulas exact to orders 25--29", +journal="Siberian Mathematical Journal", +year="1977", +month="Jan", +day="01", +volume="18", +number="1", +pages="99--107", +issn="1573-9260", +doi="10.1007/BF00966954", +url="https://doi.org/10.1007/BF00966954" +} + +@article{Lebedev1976, +title = "Quadratures on a sphere", +journal = "USSR Computational Mathematics and Mathematical Physics", +volume = "16", +number = "2", +pages = "10 - 24", +year = "1976", +issn = "0041-5553", +doi = "https://doi.org/10.1016/0041-5553(76)90100-2", +url = "http://www.sciencedirect.com/science/article/pii/0041555376901002", +author = "V.I. Lebedev" +} + +@article{Lebedev1975, +title = "Values of the nodes and weights of ninth to seventeenth order gauss-markov quadrature formulae invariant under the octahedron group with inversion", +journal = "USSR Computational Mathematics and Mathematical Physics", +volume = "15", +number = "1", +pages = "44 - 51", +year = "1975", +issn = "0041-5553", +doi = "https://doi.org/10.1016/0041-5553(75)90133-0", +url = "http://www.sciencedirect.com/science/article/pii/0041555375901330", +author = "V.I. Lebedev"} + +@article{Shorikov2005, + title = {Magnetic state and electronic structure of the ${\delta}$ and ${\alpha}$ phases of metallic Pu and its compounds}, + author = {Shorikov, A. O. and Lukoyanov, A. V. and Korotin, M. A. and Anisimov, V. I.}, + journal = {Phys. Rev. B}, + volume = {72}, + issue = {2}, + pages = {024458}, + numpages = {18}, + year = {2005}, + month = {Jul}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.72.024458}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.72.024458} +} + +@article{Gonze1996, + title = {Towards a potential-based conjugate gradient algorithm for order-N self-consistent total energy calculations}, + author = {Gonze, Xavier}, + journal = {Phys. Rev. B}, + volume = {54}, + issue = {7}, + pages = {4383--4386}, + numpages = {0}, + year = {1996}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.54.4383}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.54.4383} +} + +@article{Wang2007, + title = {First-principles perturbative computation of dielectric and Born charge tensors in finite electric fields}, + author = {Wang, Xinjie and Vanderbilt, David}, + journal = {Phys. Rev. B}, + volume = {75}, + issue = {11}, + pages = {115116}, + numpages = {6}, + year = {2007}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.75.115116}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.75.115116} +} + +@article{Umari2004, + title = {Density-functional perturbational theory for dielectric tensors in the ultrasoft pseudopotential scheme}, + author = {Umari, P. and Gonze, Xavier and Pasquarello, Alfredo}, + journal = {Phys. Rev. B}, + volume = {69}, + issue = {23}, + pages = {235102}, + numpages = {11}, + year = {2004}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.69.235102}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.69.235102} +} + +@article{Lam1986, + title = {Self-consistent calculation of electron-phonon couplings}, + author = {Lam, Pui K. and Dacorogna, Michel M. and Cohen, Marvin L.}, + journal = {Phys. Rev. B}, + volume = {34}, + issue = {8}, + pages = {5065--5069}, + numpages = {0}, + year = {1986}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.34.5065}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.34.5065} +} +@article{Gervais1975, + title = {Temperature dependence of transverse and longitudinal optic modes in the $\alpha$ and $\beta$ phases of quartz}, + author = {Gervais, F. and Piriou, B.}, + journal = {Phys. Rev. B}, + volume = {11}, + issue = {10}, + pages = {3944--3950}, + numpages = {0}, + year = {1975}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.11.3944}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.11.3944} +} + +@article{Gonze2011a, + title = {Density-operator theory of orbital magnetic susceptibility in periodic insulators}, + author = {Gonze, X. and Zwanziger, J. W.}, + journal = {Phys. Rev. B}, + volume = {84}, + issue = {6}, + pages = {064445}, + numpages = {5}, + year = {2011}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.84.064445}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.84.064445} +} + +@article{Bylander1990, + title = {Self-consistent calculations of the energy bands and bonding properties of $B_1$$_2$$C_3$}, + author = {Bylander, D. M. and Kleinman, Leonard and Lee, Seongbok}, + journal = {Phys. Rev. B}, + volume = {42}, + issue = {2}, + pages = {1394--1403}, + numpages = {0}, + year = {1990}, + month = {Jul}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.42.1394}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.42.1394} +} + +@article{Nielsen1985a, + title = {Stresses in semiconductors: Ab initio calculations on Si, Ge, and GaAs}, + author = {Nielsen, O. H. and Martin, Richard M.}, + journal = {Phys. Rev. B}, + volume = {32}, + issue = {6}, + pages = {3792--3805}, + numpages = {0}, + year = {1985}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.32.3792}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.32.3792} +} + +@article{Handy2002, +author = {Handy,Nicholas C. and Cohen,Aron J. }, +title = {A dynamical correlation functional}, +journal = {The Journal of Chemical Physics}, +volume = {116}, +number = {13}, +pages = {5411-5418}, +year = {2002}, +doi = {10.1063/1.1457432}, +URL = { https://doi.org/10.1063/1.1457432 } +} + +@article{Verdi2015, + title = {Fr\"ohlich Electron-Phonon Vertex from First Principles}, + author = {Verdi, Carla and Giustino, Feliciano}, + journal = {Phys. Rev. Lett.}, + volume = {115}, + issue = {17}, + pages = {176401}, + numpages = {5}, + year = {2015}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.115.176401}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.115.176401} +} + +@article{Arnaud2013, + title = {Electron Cooling and Debye-Waller Effect in Photoexcited Bismuth}, + author = {Arnaud, B. and Giret, Y.}, + journal = {Phys. Rev. Lett.}, + volume = {110}, + issue = {1}, + pages = {016405}, + numpages = {5}, + year = {2013}, + month = {Jan}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.110.016405}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.110.016405} +} + +@article{Bitzek2006, + title = {Structural Relaxation Made Simple}, + author = {Bitzek, Erik and Koskinen, Pekka and Gähler, Franz and Moseler, Michael and Gumbsch, Peter}, + journal = {Phys. Rev. Lett.}, + volume = {97}, + issue = {17}, + pages = {170201}, + numpages = {4}, + year = {2006}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.97.170201}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.97.170201} +} + +@article{Sheppard2012, +author = {Sheppard,Daniel and Xiao,Penghao and Chemelewski,William and Johnson,Duane D. and Henkelman,Graeme }, +title = {A generalized solid-state nudged elastic band method}, +journal = {The Journal of Chemical Physics}, +volume = {136}, +number = {7}, +pages = {074103}, +year = {2012}, +doi = {10.1063/1.3684549}, +URL = {https://doi.org/10.1063/1.3684549}, +} + +@article{Reckien2012, + Author = {Werner Reckien and Florian Janetzko and Michael F. Peintinger and Thomas Bredow}, + Journal = {J. Comp. Chem.}, + Pages = {2023}, + Title = {Implementation of Empirical Dispersion Corrections to Density Functional Theory for Periodic Systems}, + Volume = {33}, + Year = {2012}, +} + +@article{IUPAC1988, +author = {IUPAC}, +title = {Atomic weights of the elements 1987}, +journal = {Pure Appl. Chem.}, +volume = {60}, +pages = {841}, +year = {1988}, +doi = {10.1351/pac198860060841}, +} + +@article{Quigley2004, +author = {Quigley,D. and Probert,M. I. J. }, +title = {Langevin dynamics in constant pressure extended systems}, +journal = {The Journal of Chemical Physics}, +volume = {120}, +number = {24}, +pages = {11432-11441}, +year = {2004}, +doi = {10.1063/1.1755657}, +URL = {https://doi.org/10.1063/1.1755657} +} + +@article{Martyna1992, +author = {Martyna,Glenn J. and Klein,Michael L. and Tuckerman,Mark }, +title = {Nosé–Hoover chains: The canonical ensemble via continuous dynamics}, +journal = {The Journal of Chemical Physics}, +volume = {97}, +number = {4}, +pages = {2635-2643}, +year = {1992}, +doi = {10.1063/1.463940}, +URL = { https://doi.org/10.1063/1.463940 }, +} + +@article{Dolg2005, +author="Dolg, Michael", +title="Improved relativistic energy-consistent pseudopotentials for 3d-transition metals", +journal="Theoretical Chemistry Accounts", +year="2005", +month="Oct", +volume="114", +number="4", +pages="297--304", +doi="10.1007/s00214-005-0679-3", +url="https://doi.org/10.1007/s00214-005-0679-3" +} + +@article{Andrinopoulos2011, +author = {Andrinopoulos,Lampros and Hine,Nicholas D. M. and Mostofi,Arash A. }, +title = {Calculating dispersion interactions using maximally localized Wannier functions}, +journal = {The Journal of Chemical Physics}, +volume = {135}, +number = {15}, +pages = {154105}, +year = {2011}, +doi = {10.1063/1.3647912}, +URL = {https://doi.org/10.1063/1.3647912}, +} + +@article{Francis1990, + author={G P Francis and M C Payne}, + title={Finite basis set corrections to total energy pseudopotential calculations}, + journal={Journal of Physics: Condensed Matter}, + volume={2}, + number={19}, + pages={4395}, + url={http://stacks.iop.org/0953-8984/2/i=19/a=007}, + year={1990} +} + +@article{Allen1983b, +author = {Allen P. B.}, +title = {A Tetrahedron Method for Doubly Constrained Brillouin Zone Integrals Application to Silicon Optic Phonon Decay}, +journal = {physica status solidi (b)}, +volume = {120}, +number = {2}, +pages = {529-538}, +doi = {10.1002/pssb.2221200209}, +url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/pssb.2221200209}, +year={1983} +} + +@article{Worlton1972, +title = "Group-theoretical analysis of lattice vibrations", +journal = "Computer Physics Communications", +volume = "3", +number = "2", +pages = "88 - 117", +year = "1972", +issn = "0010-4655", +doi = "https://doi.org/10.1016/0010-4655(72)90058-6", +url = "http://www.sciencedirect.com/science/article/pii/0010465572900586", +author = "T.G. Worlton and J.L. Warren" +} + +@article{Angyan2006, + author={János G Ángyán and Iann Gerber and Martijn Marsman}, + title={Spherical harmonic expansion of short-range screened Coulomb interactions}, + journal={Journal of Physics A: Mathematical and General}, + volume={39}, + number={27}, + pages={8613}, + url={http://stacks.iop.org/0305-4470/39/i=27/a=005}, + year={2006}, +} + +@article{Hendrikse1995, +title = "Computation of the independent elements of the dynamical matrix", +journal = "Computer Physics Communications", +volume = "86", +number = "3", +pages = "297 - 311", +year = "1995", +issn = "0010-4655", +doi = "https://doi.org/10.1016/0010-4655(94)00164-W", +url = "http://www.sciencedirect.com/science/article/pii/001046559400164W", +author = "Z.W. Hendrikse and M.O. Elout and W.J.A. Maaskant", +} + +@article{Quigley2005, +title = "Constant pressure Langevin dynamics: theory and application", +journal = "Computer Physics Communications", +volume = "169", +number = "1", +pages = "322 - 325", +year = "2005", +note = "Proceedings of the Europhysics Conference on Computational Physics 2004", +issn = "0010-4655", +doi = "https://doi.org/10.1016/j.cpc.2005.03.072", +url = "http://www.sciencedirect.com/science/article/pii/S0010465505001694", +author = "D. Quigley and M.I.J. Probert", +} + +@incollection{Allen1983c, +title = "Theory of Superconducting Tc", +editor = "Henry Ehrenreich and Frederick Seitz and David Turnbull", +series = "Solid State Physics", +publisher = "Academic Press", +volume = "37", +pages = "1 - 92", +year = "1983", +issn = "0081-1947", +doi = "https://doi.org/10.1016/S0081-1947(08)60665-7", +url = "http://www.sciencedirect.com/science/article/pii/S0081194708606657", +author = "Philip B. Allen and Božidar Mitrović" +} + +@article{Al-Lehaibi1987, + title = {Electron-phonon interaction effects in tantalum}, + author = {Al-Lehaibi, Abdrabuh and Swihart, James C. and Butler, William H. and Pinski, Frank J.}, + journal = {Phys. Rev. B}, + volume = {36}, + issue = {8}, + pages = {4103--4111}, + numpages = {0}, + year = {1987}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.36.4103}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.36.4103} +} + +@article{Nocedal1980, + title = {Updating Quasi-Newton Matrices with Limited Storage}, + author = {Jorge Nocedal}, + journal = {Mathematics of Computation}, + volume = {35}, + pages = {773}, + year = {1980}, + publisher = {American Mathematical Society}, + doi = {10.2307/2006193}, + url = {https://www.jstor.org/stable/2006193} +} + +@article{Shaltaf2008, + title = {Band Offsets at the ${Si}/{SiO}_{2}$ Interface from Many-Body Perturbation Theory}, + author = {Shaltaf, R. and Rignanese, G.-M. and Gonze, X. and Giustino, Feliciano and Pasquarello, Alfredo}, + journal = {Phys. Rev. Lett.}, + volume = {100}, + issue = {18}, + pages = {186401}, + numpages = {4}, + year = {2008}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.100.186401}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.100.186401} +} + +@article{Evans1983, +title = "The isothermal/isobaric molecular dynamics ensemble", +journal = "Physics Letters A", +volume = "98", +number = "8", +pages = "433 - 436", +year = "1983", +issn = "0375-9601", +doi = "https://doi.org/10.1016/0375-9601(83)90256-6", +url = "http://www.sciencedirect.com/science/article/pii/0375960183902566", +author = "Denis J. Evans and G.P. Morriss", +} + +@article{Evans2014, + title={Atomistic spin model simulations of magnetic nanomaterials}, + author={Evans, Richard FL and Fan, Weijia J and Chureemart, Phanwadee and Ostler, Thomas A and Ellis, Matthew OA and Chantrell, Roy W}, + journal={Journal of Physics: Condensed Matter}, + volume={26}, + number={10}, + pages={103202}, + year={2014}, + publisher={IOP Publishing}, + url={https://iopscience.iop.org/article/10.1088/0953-8984/26/10/103202/meta} +} + +@article{Liechtenstein1983, +title = "Magnetic transition state approach to ferromagnetism of metals: Ni", +journal = "Journal of Magnetism and Magnetic Materials", +volume = "36", +number = "1", +pages = "125 - 130", +year = "1983", +issn = "0304-8853", +doi = "https://doi.org/10.1016/0304-8853(83)91054-5", +url = "http://www.sciencedirect.com/science/article/pii/0304885383910545", +author = "A.I. Liechtenstein and V.A. Gubanov and M.I. Katsnelson and V.I. Anisimov" +} + + +@article{Katsnelson2000, + title = {First-principles calculations of magnetic interactions in correlated systems}, + author = {Katsnelson, M. I. and Lichtenstein, A. I.}, + journal = {Phys. Rev. B}, + volume = {61}, + issue = {13}, + pages = {8906--8912}, + numpages = {0}, + year = {2000}, + month = {Apr}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.61.8906}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.61.8906} +} + +@article{Korotin2015, + title = {Calculation of exchange constants of the Heisenberg model in plane-wave-based methods using the Green's function approach}, + author = {Korotin, Dm. M. and Mazurenko, V. V. and Anisimov, V. I. and Streltsov, S. V.}, + journal = {Phys. Rev. B}, + volume = {91}, + issue = {22}, + pages = {224405}, + numpages = {7}, + year = {2015}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.91.224405}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.91.224405} +} + +@article{Park2015, + title = {Density functional versus spin-density functional and the choice of correlated subspace in multivariable effective action theories of electronic structure}, + author = {Park, Hyowon and Millis, Andrew J. and Marianetti, Chris A.}, + journal = {Phys. Rev. B}, + volume = {92}, + issue = {3}, + pages = {035146}, + numpages = {14}, + year = {2015}, + month = {Jul}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.92.035146}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.92.035146} +} + +@article{Chen2016a, + title = {Spin-density functional theories and their $+U$ and $+J$ extensions: A comparative study of transition metals and transition metal oxides}, + author = {Chen, Hanghui and Millis, Andrew J.}, + journal = {Phys. Rev. B}, + volume = {93}, + issue = {4}, + pages = {045133}, + numpages = {8}, + year = {2016}, + month = {Jan}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.93.045133}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.93.045133} +} + +@article{Gonze1989, + title = {Density-functional approach to nonlinear-response coefficients of solids}, + author = {Gonze, X. and Vigneron, J.-P.}, + journal = {Phys. Rev. B}, + volume = {39}, + issue = {18}, + pages = {13120--13128}, + numpages = {0}, + year = {1989}, + doi = {10.1103/PhysRevB.39.13120}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.39.13120} +} + +@article{Bloechl1990, + title = {Generalized separable potentials for electronic-structure calculations}, + author = {Bl\"ochl, Peter E.}, + journal = {Phys. Rev. B}, + volume = {41}, + issue = {8}, + pages = {5414--5416}, + numpages = {0}, + year = {1990}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.41.5414}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.41.5414} +} + +@article{Vogel1995, + title = {Ab initio electronic-structure calculations for II-VI semiconductors using self-interaction-corrected pseudopotentials}, + author = {Vogel, Dirk and Kr\"uger, Peter and Pollmann, Johannes}, + journal = {Phys. Rev. B}, + volume = {52}, + issue = {20}, + pages = {R14316--R14319}, + numpages = {0}, + year = {1995}, + month = {Nov}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.52.R14316}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.52.R14316} +} + +@article{Gonze1990a, + title = {Ghost states for separable, norm-conserving, ab initio pseudopotentials}, + author = {Gonze, Xavier and K\"ackell, Peter and Scheffler, Matthias}, + journal = {Phys. Rev. B}, + volume = {41}, + issue = {17}, + pages = {12264--12267}, + numpages = {0}, + year = {1990}, + month = {Jun}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.41.12264}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.41.12264} +} + +@article{Louie1982, + title = {Nonlinear ionic pseudopotentials in spin-density-functional calculations}, + author = {Louie, Steven G. and Froyen, Sverre and Cohen, Marvin L.}, + journal = {Phys. Rev. B}, + volume = {26}, + issue = {4}, + pages = {1738--1742}, + numpages = {0}, + year = {1982}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.26.1738}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.26.1738} +} + +@article{Depondt2009, + title={Spin dynamics simulations of two-dimensional clusters with Heisenberg and dipole--dipole interactions}, + author={Depondt, Ph and Mertens, FG}, + journal={Journal of Physics: Condensed Matter}, + volume={21}, + number={33}, + pages={336005}, + year={2009}, + publisher={IOP Publishing} +} + +@book{Eriksson2017, + title={Atomistic spin dynamics: foundations and applications}, + author={Eriksson, Olle and Bergman, Anders and Bergqvist, Lars and Hellsvik, Johan}, + year={2017}, + publisher={Oxford university press} +} + +@article{Giustino2017, + title = {Electron-phonon interactions from first principles}, + author = {Giustino, Feliciano}, + journal = {Rev. Mod. Phys.}, + volume = {89}, + issue = {1}, + pages = {015003}, + numpages = {63}, + year = {2017}, + month = {Feb}, + publisher = {American Physical Society}, + doi = {10.1103/RevModPhys.89.015003}, + url = {https://link.aps.org/doi/10.1103/RevModPhys.89.015003} +} + +@article{Jain2015, + author = {Jain, Anubhav and Ong, Shyue Ping and Chen, Wei and Medasani, Bharat and Qu, Xiaohui and Kocher, Michael and Brafman, Miriam and Petretto, Guido and Rignanese, Gian-Marco and Hautier, Geoffroy and Gunter, Daniel and Persson, Kristin A.}, + doi = {10.1002/cpe.3505}, + number = {17}, + pages = {5037-5059}, + source = {Crossref}, + url = {http://dx.doi.org/10.1002/cpe.3505}, + volume = {27}, + journal = {Concurrency Computat.: Pract. Exper.}, + publisher = {Wiley-Blackwell}, + title = {{FireWorks:} {A} dynamic workflow system designed for high-throughput applications}, + issn = {1532-0626}, + year = {2015}, + month = may, +} + +@article{Jain2013, +author = {Jain, Anubhav and Ong, Shyue Ping and Hautier, Geoffroy and Chen, Wei and Richards, William Davidson and Dacek, Stephen and Cholia, Shreyas and Gunter, Dan and Skinner, David and Ceder, Gerbrand and Persson, Kristin a.}, +doi = {10.1063/1.4812323}, +issn = {2166532X}, +journal = {APL Materials}, +number = {1}, +pages = {011002}, +title = {{The Materials Project: A materials genome approach to accelerating materials innovation}}, +url = {http://link.aip.org/link/AMPADS/v1/i1/p011002/s1\&Agg=doi}, +volume = {1}, +year = {2013} +} + +@article{Shankland1971, + title={Fourier transformation by smooth interpolation}, + author={Shankland, D.~G.}, + journal={International Journal of Quantum Chemistry}, + volume={5}, + number={S5}, + pages={497--500}, + year={1971}, + publisher={Wiley Online Library}, + doi={10.1002/qua.560050857} +} + +@article{VietAhn2019, + title = {Computationally driven high-throughput identification of CaTe and ${\mathrm{Li}}_{3}\mathrm{Sb}$ as promising candidates for high-mobility $p$-type transparent conducting materials}, + author = {Ha, Viet-Anh and Yu, Guodong and Ricci, Francesco and Dahliah, Diana and van Setten, Michiel J. and Giantomassi, Matteo and Rignanese, Gian-Marco and Hautier, Geoffroy}, + journal = {Phys. Rev. Materials}, + volume = {3}, + issue = {3}, + pages = {034601}, + numpages = {11}, + year = {2019}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevMaterials.3.034601}, + url = {https://link.aps.org/doi/10.1103/PhysRevMaterials.3.034601} +} + +@article{Peng2018, + author = {Peng, Wanyue and Petretto, Guido and Rignanese, Gian-Marco and Hautier, Geoffroy and Zevalkink, Alexandra}, + doi = {10.1016/j.joule.2018.06.014}, + number = {9}, + pages = {1879-1893}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.joule.2018.06.014}, + volume = {2}, + journal = {Joule}, + publisher = {Elsevier BV}, + title = {An Unlikely Route to Low Lattice Thermal Conductivity: {Small} Atoms in a Simple Layered Structure}, + issn = {2542-4351}, + year = {2018}, + month = sep, +} + +@article{Swope1982, + title={A computer simulation method for the calculation of equilibrium constants for the formation of physical clusters of molecules: Application to small water clusters}, + author={Swope, William C and Andersen, Hans C and Berens, Peter H and Wilson, Kent R}, + journal={The Journal of Chemical Physics}, + volume={76}, + number={1}, + pages={637--649}, + year={1982}, + publisher={AIP} +} + + +@article{Vanden2006, + title={Second-order integrators for Langevin equations with holonomic constraints}, + author={Vanden-Eijnden, Eric and Ciccotti, Giovanni}, + journal={Chemical physics letters}, + volume={429}, + number={1-3}, + pages={310--316}, + year={2006}, + publisher={Elsevier} +} + +@article{Berendsen1984, + title={Molecular dynamics with coupling to an external bath}, + author={Berendsen, Herman JC and Postma, JPM van and van Gunsteren, Wilfred F and DiNola, ARHJ and Haak, JR}, + journal={The Journal of chemical physics}, + volume={81}, + number={8}, + pages={3684--3690}, + year={1984}, + publisher={AIP} +} + +@article{Ricci2019, + title = {Density functional perturbation theory within noncollinear magnetism}, + author = {Ricci, Fabio and Prokhorenko, Sergei and Torrent, Marc and Verstraete, Matthieu J. and Bousquet, Eric}, + journal = {Phys. Rev. B}, + volume = {99}, + issue = {18}, + pages = {184404}, + numpages = {11}, + year = {2019}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.99.184404}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.99.184404} +} + +@article{Kaduk2012, + Author = {Benjamin Kaduk and Tim Kowalczyk and Troy Van Voorhis}, + Journal = {Chemical Reviews}, + Pages = {321}, + Title = {Constrained Density Functional Theory}, + Volume = {112}, + Year = {2012}, + doi={10.1021/cr200148b} +} + +@article{Wu2005a, + Author = {Qin Wu and Troy Van Voorhis}, + Journal = {Phys. Rev. A}, + Pages = {024502}, + Title = {Direct optimization method to study constrained systems within density-functional theory}, + Volume = {72}, + Year = {2005}, + doi={10.1103/PhysRevA.72.024502} +} + +@article{Sjakste2015, + title = {Wannier interpolation of the electron-phonon matrix elements in polar semiconductors: {Polar}-optical coupling in {GaAs}}, + volume = {92}, + shorttitle = {Wannier interpolation of the electron-phonon matrix elements in polar semiconductors}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.92.054307}, + doi = {10.1103/PhysRevB.92.054307}, + number = {5}, + urldate = {2019-06-28}, + journal = {Phys.~Rev.~B}, + author = {Sjakste, J. and Vast, N. and Calandra, M. and Mauri, F.}, + month = aug, + year = {2015}, + pages = {054307} +} + +@article{Vansetten2018, + title={The PseudoDojo: Training and grading a 85 element optimized norm-conserving pseudopotential table}, + author={Van Setten, M.~J. and Giantomassi, Matteo and Bousquet, Eric and Verstraete, Matthieu J and Hamann, Donald R and Gonze, Xavier and Rignanese, G-M}, + journal={Comput. Phys. Commun.}, + volume={226}, + pages={39--54}, + year={2018}, + publisher={Elsevier}, + doi={10.1016/j.cpc.2018.01.012} +} + +@article{Gonze2019, + title={The Abinit project: Impact, environment and recent developments}, + author={Gonze, Xavier and Amadon, Bernard and Antonius, Gabriel and Arnardi, Fr{\'e}d{\'e}ric and Baguet, Lucas and Beuken, Jean-Michel and Bieder, Jordan and Bottin, Fran{\c{c}}ois and Bouchet, Johann and Bousquet, Eric and others}, + journal={Comput.~Phys.~Commun.}, + pages={107042}, + year={2019}, + volume={248}, + publisher={Elsevier}, + doi={https://doi.org/10.1016/j.cpc.2019.107042} +} + + +@article{Eiguren2008, + title = {Wannier interpolation scheme for phonon-induced potentials: Application to bulk ${\text{MgB}}_{2}$, W, and the $(1\ifmmode\times\else\texttimes\fi{}1)$ H-covered W(110) surface}, + author = {Eiguren, Asier and Ambrosch-Draxl, Claudia}, + journal = {Phys.~Rev.~B}, + volume = {78}, + issue = {4}, + pages = {045124}, + numpages = {8}, + year = {2008}, + month = {Jul}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.78.045124}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.78.045124} +} + +@article{Blochl1994, + title={Improved tetrahedron method for Brillouin-zone integrations}, + author={Bl{\"o}chl, Peter E and Jepsen, Ove and Andersen, Ole Krogh}, + journal={Phys.~Rev.~B}, + volume={49}, + number={23}, + pages={16223}, + year={1994}, + publisher={APS}, + doi={10.1103/PhysRevB.49.16223} +} + +@article{Romero2020, + Author = {Aldo H. Romero and Douglas C. Allan and Bernard Amadon and Gabriel Antonius and Thomas Applencourt and Lucas Baguet and Jordan Bieder and Fran{\c c}ois Bottin and Johann Bouchet and Eric Bousquet and Fabien Bruneval and Guillaume Brunin and Damien Caliste and Michel C{\^o}t{\'e} and Jules Denier and Cyrus Dreyer and Philippe Ghosez and Matteo Giantomassi and Yannick Gillet and Olivier Gingras and Donald R. Hamann and Geoffroy Hautier and Fran{\c c}ois Jollet and G{\'e}rald Jomard and Alexandre Martin and Henrique P. C. Miranda and Francesco Naccarato and Guido Petretto and Nicholas A. Pike and Valentin Planes and Sergei Prokhorenko and Tonatiuh Rangel and Fabio Ricci and Gian-Marco Rignanese and Miquel Royo and Massimiliano Stengel and Marc Torrent and Michiel J. van Setten and Benoit Van Troeye and Matthieu J. Verstraete and Julia Wiktor and Josef W. Zwanziger and Xavier Gonze}, + Journal = {J. Chem. Phys.}, + Pages = {124102}, + Title = {ABINIT: Overview, and focus on selected capabilities}, + Volume = {152}, + Year = {2020} +} + +@article{Royo2019, + Author = {Miquel Royo and Massimiliano Stengel}, + Journal = {Phys. Rev. X}, + Pages = {021050}, + Title = {First-Principles Theory of Spatial Dispersion: Dynamical Quadrupoles and Flexoelectricity}, + Volume = {9}, + Year = {2019} +} + +@article{Royo2020, + author = {Royo, Miquel and Hahn, Konstanze R. and Stengel, Massimiliano}, + journal = {Phys. Rev. Lett.}, + Pages = {217602}, + title = {Using high multipolar orders to reconstruct the sound velocity in piezoelectrics from lattice dynamics}, + Volume = {125}, + year = {2020}, + doi={10.1103/PhysRevLett.125.217602} +} + +@book{Born1954, + address = {Oxford}, + author = {Born, Max and Huang, Kun}, + note = {}, + pages = {}, + publisher = {Oxford University Press}, + title = {Dynamical Theory of Crystal Lattices}, + year = {1954} +} + +@article{Belinicher1980, + author = {Belinicher, V I and Sturman, B I}, + doi = {10.1070/pu1980v023n03abeh004703}, + journal = {Soviet Physics Uspekhi}, + month = {mar}, + number = {3}, + pages = {199–223}, + publisher = {{IOP} Publishing}, + title = {The photogalvanic effect in media lacking a center of symmetry}, + url = {https://doi.org/10.1070%2Fpu1980v023n03abeh004703}, + volume = {23}, + year = 1980 +} + +@article{Zubko2013, + author = {Zubko, Pavlo and Catalan, Gustau and Tagantsev, Alexander K.}, + doi = {10.1146/annurev-matsci-071312-121634}, + journal = {Annual Review of Materials Research}, + number = {1}, + pages = {387–421}, + title = {Flexoelectric Effect in Solids}, + url = { https://doi.org/10.1146/annurev-matsci-071312-121634 }, + volume = {43}, + year = {2013} +} + +@article{Stengel2013, + author = {Stengel, Massimiliano}, + doi = {10.1103/PhysRevB.88.174106}, + issn = {1098-0121}, + journal = {Physical Review B}, + month = {nov}, + number = {17}, + pages = {174106}, + publisher = {American Physical Society}, + title = {Flexoelectricity from density-functional perturbation theory}, + url = {http://link.aps.org/doi/10.1103/PhysRevB.88.174106}, + volume = {88}, + year = {2013} +} + +@incollection{Stengel2016, + address = {Singapore}, + author = {Stengel, Massimiliano and Vanderbilt, David}, + booktitle = {Flexoelectricity in Solids From Theory to Applications}, + chapter = {2}, + editor = {Tagantsev, Alexander K. and Yudin, Petr V.}, + pages = {31–110}, + publisher = {World Scientific Publishing Co.}, + title = {First-principles theory of flexoelectricity}, + year = {2016} +} + +@article{Madsen2018, + title={{BoltzTraP2, a program for interpolating band structures and calculating semi-classical transport coefficients}}, + author={Madsen, Georg K.~H. and Carrete, Jes{\'u}s and Verstraete, Matthieu J}, + journal={Comput.~Phys.~Commun.}, + volume={231}, + pages={140--145}, + year={2018}, + publisher={Elsevier}, + doi={10.1016/j.cpc.2018.05.010} +} + +@article{Ponce2020, + doi = {10.1088/1361-6633/ab6a43}, + url = {https://doi.org/10.1088%2F1361-6633%2Fab6a43}, + year = 2020, + month = {feb}, + publisher = {{IOP} Publishing}, + volume = {83}, + number = {3}, + pages = {036501}, + author = {Samuel Ponc{\'{e}} and Wenbin Li and Sven Reichardt and Feliciano Giustino}, + title = {First-principles calculations of charge carrier mobility and conductivity in bulk semiconductors and two-dimensional materials}, + journal = {Reports on Progress in Physics}, +} + +@article{Vogl1976, + title = {Microscopic theory of electron-phonon interaction in insulators or semiconductors}, + volume = {13}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.13.694}, + doi = {10.1103/PhysRevB.13.694}, + number = {2}, + urldate = {2019-07-23}, + journal = {Phys.~Rev.~B}, + author = {Vogl, P.}, + month = jan, + year = {1976}, + pages = {694--704} +} + +@article{Nery2018, + title = {Quasiparticles and phonon satellites in spectral functions of semiconductors and insulators: Cumulants applied to the full first-principles theory and the Fr\"ohlich polaron}, + author = {Nery, Jean Paul and Allen, Philip B. and Antonius, Gabriel and Reining, Lucia and Miglio, Anna and Gonze, Xavier}, + journal = {Phys. Rev. B}, + volume = {97}, + issue = {11}, + pages = {115145}, + numpages = {19}, + year = {2018}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.97.115145}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.97.115145} +} + + +@article{Li2015, + title = {Electrical transport limited by electron-phonon coupling from Boltzmann transport equation: An ab initio study of Si, Al, and ${\mathrm{MoS}}_{2}$}, + author = {Li, Wu}, + journal = {Phys. Rev. B}, + volume = {92}, + issue = {7}, + pages = {075405}, + numpages = {10}, + year = {2015}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.92.075405}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.92.075405} +} + +@article{Brunin2020, + title = {Electron-Phonon beyond Fr\"ohlich: Dynamical Quadrupoles in Polar and Covalent Solids}, + author = {Brunin, Guillaume and Miranda, Henrique Pereira Coutada and Giantomassi, Matteo and Royo, Miquel and Stengel, Massimiliano and Verstraete, Matthieu J. and Gonze, Xavier and Rignanese, Gian-Marco and Hautier, Geoffroy}, + journal = {Phys. Rev. Lett.}, + volume = {125}, + issue = {13}, + pages = {136601}, + numpages = {6}, + year = {2020}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.125.136601}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.125.136601} +} + +@article{Brunin2020b, + title = {Phonon-limited electron mobility in Si, GaAs, and GaP with exact treatment of dynamical quadrupoles}, + author = {Brunin, Guillaume and Miranda, Henrique Pereira Coutada and Giantomassi, Matteo and Royo, Miquel and Stengel, Massimiliano and Verstraete, Matthieu J. and Gonze, Xavier and Rignanese, Gian-Marco and Hautier, Geoffroy}, + journal = {Phys. Rev. B}, + volume = {102}, + issue = {9}, + pages = {094308}, + numpages = {16}, + year = {2020}, + month = {Sep}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.102.094308}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.102.094308} +} + + +@article{Kapil2019, +title = "i-PI 2.0: A universal force engine for advanced molecular simulations", +journal = "Computer Physics Communications", +volume = "236", +pages = "214 - 223", +year = "2019", +issn = "0010-4655", +doi = "https://doi.org/10.1016/j.cpc.2018.09.020", +url = "http://www.sciencedirect.com/science/article/pii/S0010465518303436", +author = "Venkat Kapil and Mariana Rossi and Ondrej Marsalek and Riccardo Petraglia and Yair Litman and Thomas Spura and Bingqing Cheng and Alice Cuzzocrea and Robert H. Meißner and David M. Wilkins and Benjamin A. Helfrecht and Przemysław Juda and Sébastien P. Bienvenue and Wei Fang and Jan Kessler and Igor Poltavsky and Steven Vandenbrande and Jelle Wieme and Clemence Corminboeuf and Thomas D. Kühne and David E. Manolopoulos and Thomas E. Markland and Jeremy O. Richardson and Alexandre Tkatchenko and Gareth A. Tribello and Veronique {Van Speybroeck} and Michele Ceriotti", +keywords = "Accelerated sampling, Geometry optimizers, Path integral, Molecular dynamics, ", +} + +@article{Margine2013, + title = {Anisotropic Migdal-Eliashberg theory using Wannier functions}, + author = {Margine, E. R. and Giustino, F.}, + journal = {Phys. Rev. B}, + volume = {87}, + issue = {2}, + pages = {024505}, + numpages = {12}, + year = {2013}, + month = {Jan}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.87.024505}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.87.024505} +} + + +@article{Mazin2003, +title = "Electronic structure, electron–phonon coupling, and multiband effects in MgB2", +journal = "Physica C: Superconductivity", +volume = "385", +number = "1", +pages = "49 - 65", +year = "2003", +issn = "0921-4534", +doi = "https://doi.org/10.1016/S0921-4534(02)02299-2", +url = "http://www.sciencedirect.com/science/article/pii/S0921453402022992", +author = "I.I. Mazin and V.P. Antropov", +keywords = "Band theory, Electron–phonon interaction, Multi-gap superconductivity", +abstract = "We review the current situation in the theory of superconducting and transport properties of MgB2. First principle calculations of the electronic structure and electron–phonon coupling are discussed and compared with the experiment. We also present a brief description of the multiband effects in superconductivity and transport, and how these manifest themselves in MgB2." +} + +@article{Kawamura2014, + title = {Improved tetrahedron method for the Brillouin-zone integration applicable to response functions}, + author = {Kawamura, Mitsuaki and Gohda, Yoshihiro and Tsuneyuki, Shinji}, + journal = {Phys. Rev. B}, + volume = {89}, + issue = {9}, + pages = {094515}, + numpages = {8}, + year = {2014}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.89.094515}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.89.094515} +} + +@article{Allen1976b, + title = {Fermi-surface harmonics: A general method for nonspherical problems. Application to Boltzmann and Eliashberg equations}, + author = {Allen, Philip B.}, + journal = {Phys. Rev. B}, + volume = {13}, + issue = {4}, + pages = {1416--1427}, + numpages = {0}, + year = {1976}, + month = {Feb}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.13.1416}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.13.1416} +} + +@article{Kohn1959, + title = {Image of the Fermi Surface in the Vibration Spectrum of a Metal}, + author = {Kohn, W.}, + journal = {Phys.~Rev.~Lett.}, + volume = {2}, + issue = {9}, + pages = {393--394}, + numpages = {0}, + year = {1959}, + month = {May}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevLett.2.393}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.2.393} +} + +@article{Zwanziger2016, + author = {Zwanziger, J.W.}, + doi = {10.1016/j.ssnmr.2016.10.005}, + pages = {14-18}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.ssnmr.2016.10.005}, + volume = {80}, + journal = {Solid State Nuclear Magnetic Resonance}, + publisher = {Elsevier BV}, + title = {Computation of NMR observables: Consequences of projector-augmented wave sphere overlap}, + issn = {0926-2040}, + year = {2016}, + month = nov, +} + +@book{Vanderbilt2018, + title={Berry Phases in Electronic Structure Theory: + Electric Polarization, Orbital Magnetization and Topological Insulators}, + author={Vanderbilt, David}, + year={2018}, + publisher={Cambridge University Press} +} + +@book{Boyd2020, + title={Nonlinear optics}, + author={Boyd, Robert W}, + year={2020}, + publisher={Academic press} +} + +@article{Caracas2006, + title={Theoretical determination of the Raman spectra of MgSiO$_3$ perovskite and post-perovskite at high pressure}, + author={Caracas, Razvan and Cohen, Ronald E}, + journal={Geophysical Research Letters}, + volume={33}, + pages = {L12S05}, + number={12}, + year={2006}, + url={https://doi.org/10.1029/2006GL025736}, + doi={doi.org/10.1029/2006GL025736}, + publisher={Wiley Online Library} +} + +@article{Miglio2020, + author = {Anna Miglio and Véronique Brousseau-Couture and Emile Godbout and Gabriel Antonius and Yang-Hao Chan and Steven G. Louie and Michel Côté and Matteo Giantomassi and Xavier Gonze}, + journal = {npj Computational Materials}, + pages = {167}, + title = {Predominance of non-adiabatic effects in zero-point renormalization of the electronic band gap}, + volume = {6}, + year = {2020} +} + +@article{Paillard2019, + author = {Paillard, Charles and Torun, Engin and Wirtz, Ludger and Íñiguez, Jorge and Bellaiche, Laurent}, + doi = {10.1103/physrevlett.123.087601}, + number = {8}, + source = {Crossref}, + url = {http://dx.doi.org/10.1103/physrevlett.123.087601}, + volume = {123}, + pages = {087601}, + journal = {Phys. Rev. Lett.}, + publisher = {American Physical Society (APS)}, + title = {Photoinduced Phase Transitions in Ferroelectrics}, + issn = {0031-9007, 1079-7114}, + year = {2019}, + month = aug, +} + +@article{Jia2019, + author = {Yongchao Jia and Samuel Ponc{\'e} and Anna Miglio and Masayoshi Mikami and Xavier Gonze}, + journal = {Phys. Rev. B}, + pages = {155109}, + title = {Beyond the one-dimensional configuration coordinate model of photoluminescence}, + volume = {100}, + year = {2019}, + doi = {10.1103/PhysRevB.100.155109} +} + +@article{Sadigh2015, + author = {Babak Sadigh and Paul Erhart and Daniel Aberg}, + journal = {Phys. Rev. B}, + pages = {075202}, + title = {Variational polaron self-interaction corrected total-energy functional for charge excitations in insulators}, + volume = {92}, + year = {2015}, + doi = {10.1103/PhysRevB.92.075202} +} + +@article{Sadigh2015a, + author = {Babak Sadigh and Paul Erhart and Daniel {\AA}berg}, + journal = {Phys. Rev. B}, + pages = {199905}, + title = {Erratum: Variational polaron self-interaction-corrected total-energy functional for charge excitations in insulators [Phys. Rev. B 92, 075202 (2015)]}, + volume = {92}, + year = {2015}, + doi = {10.1103/PhysRevB.92.199905} +} + +@article{Tal2021, + title = {Vertex function compliant with the Ward identity for quasiparticle self-consistent calculations beyond $GW$}, + author = {Tal, Alexey and Chen, Wei and Pasquarello, Alfredo}, + journal = {Phys. Rev. B}, + volume = {103}, + pages = {L161104}, + year = {2021}, + doi = {10.1103/PhysRevB.103.L161104}, +} + +@article{Ong2008, + author = {Ping Ong, Shyue and Wang, Lei and Kang, Byoungwoo and Ceder, Gerbrand}, + doi = {10.1021/cm702327g}, + number = {5}, + pages = {1798-1807}, + source = {Crossref}, + url = {http://dx.doi.org/10.1021/cm702327g}, + volume = {20}, + journal = {Chem. Mater.}, + publisher = {American Chemical Society (ACS)}, + title = {{Li−Fe−P−O2Phase} Diagram from First Principles Calculations}, + issn = {0897-4756, 1520-5002}, + year = {2008}, + month = mar, +} + +@article{Ong2010, + author = {Ong, Shyue Ping and Jain, Anubhav and Hautier, Geoffroy and Kang, Byoungwoo and Ceder, Gerbrand}, + doi = {10.1016/j.elecom.2010.01.010}, + number = {3}, + pages = {427-430}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.elecom.2010.01.010}, + volume = {12}, + journal = {Electrochemistry Communications}, + publisher = {Elsevier BV}, + title = {Thermal stabilities of delithiated olivine {MPO4} {(M=Fe,} Mn) cathodes investigated using first principles calculations}, + issn = {1388-2481}, + year = {2010}, + month = mar, +} + +@article{Ong2015, + author = {Ong, Shyue Ping and Cholia, Shreyas and Jain, Anubhav and Brafman, Miriam and Gunter, Dan and Ceder, Gerbrand and Persson, Kristin A.}, + doi = {10.1016/j.commatsci.2014.10.037}, + pages = {209-215}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.commatsci.2014.10.037}, + volume = {97}, + journal = {Computational Materials Science}, + publisher = {Elsevier BV}, + title = {The Materials Application Programming Interface {(API):} {A} simple, flexible and efficient {API} for materials data based on {REpresentational} State Transfer {(REST)} principles}, + issn = {0927-0256}, + year = {2015}, + month = feb, +} + +@article{Grazulis2011, + author = {Gražulis, Saulius and Daškevič, Adriana and Merkys, Andrius and Chateigner, Daniel and Lutterotti, Luca and Quirós, Miguel and Serebryanaya, Nadezhda R. and Moeck, Peter and Downs, Robert T. and Le Bail, Armel}, + doi = {10.1093/nar/gkr900}, + number = {D1}, + pages = {D420-D427}, + source = {Crossref}, + url = {http://dx.doi.org/10.1093/nar/gkr900}, + volume = {40}, + journal = {Nucleic Acids Research}, + publisher = {Oxford University Press (OUP)}, + title = {Crystallography Open Database {(COD):} {An} open-access collection of crystal structures and platform for world-wide collaboration}, + issn = {1362-4962, 0305-1048}, + year = {2011}, + month = nov, +} + +@article{Henkelman2006, + author = {Henkelman, Graeme and Arnaldsson, Andri and Jónsson, Hannes}, + doi = {10.1016/j.commatsci.2005.04.010}, + number = {3}, + pages = {354-360}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.commatsci.2005.04.010}, + volume = {36}, + journal = {Computational Materials Science}, + publisher = {Elsevier BV}, + title = {A fast and robust algorithm for Bader decomposition of charge density}, + issn = {0927-0256}, + year = {2006}, + month = jun, +} + +@article{Maintz2016, + author = {Maintz, Stefan and Deringer, Volker L. and Tchougréeff, Andrei L. and Dronskowski, Richard}, + doi = {10.1002/jcc.24300}, + number = {11}, + pages = {1030-1035}, + source = {Crossref}, + url = {http://dx.doi.org/10.1002/jcc.24300}, + volume = {37}, + journal = {J. Comput. Chem.}, + publisher = {Wiley}, + title = {{LOBSTER:} {A} tool to extract chemical bonding from plane-wave based {DFT}}, + subtitle = {Tool to Extract Chemical Bonding}, + issn = {0192-8651}, + year = {2016}, + month = feb, +} + +@article{Mostofi2014, + author = {Mostofi, Arash A. and Yates, Jonathan R. and Pizzi, Giovanni and Lee, Young-Su and Souza, Ivo and Vanderbilt, David and Marzari, Nicola}, + doi = {10.1016/j.cpc.2014.05.003}, + number = {8}, + pages = {2309-2310}, + source = {Crossref}, + url = {http://dx.doi.org/10.1016/j.cpc.2014.05.003}, + volume = {185}, + journal = {Computer Physics Communications}, + publisher = {Elsevier BV}, + title = {An updated version of wannier90: {A} tool for obtaining maximally-localised Wannier functions}, + issn = {0010-4655}, + year = {2014}, + month = aug, +} + +@article{Trueblood1996, +author = "Trueblood, K. N. and B{\"{u}}rgi, H.-B. and Burzlaff, H. and Dunitz, J. D. and Gramaccioli, C. M. and Schulz, H. H. and Shmueli, U. and Abrahams, S. C.", +title = "{Atomic Dispacement Parameter Nomenclature. Report of a Subcommittee on Atomic Displacement Parameter Nomenclature}", +journal = "Acta Crystallographica Section A", +year = "1996", +volume = "52", +number = "5", +pages = "770--781", +month = "Sep", +doi = {10.1107/S0108767396005697}, +url = {https://doi.org/10.1107/S0108767396005697}, +} + +@article{Grosse-Kunstleve2002, +author = "Grosse-Kunstleve, R. W. and Adams, P. D.", +title = "{On the handling of atomic anisotropic displacement parameters}", +journal = "Journal of Applied Crystallography", +year = "2002", +volume = "35", +number = "4", +pages = "477--480", +month = "Aug", +doi = {10.1107/S0021889802008580}, +url = {https://doi.org/10.1107/S0021889802008580}, +} diff --git a/docs/api/abio_api.rst b/docs/api/abio_api.rst index 9f8d7a89e..355956ac3 100644 --- a/docs/api/abio_api.rst +++ b/docs/api/abio_api.rst @@ -37,6 +37,14 @@ abio Package :undoc-members: :show-inheritance: +:mod:`enums` Module +------------------- + +.. automodule:: abipy.abio.enums + :members: + :undoc-members: + :show-inheritance: + :mod:`factories` Module ----------------------- diff --git a/docs/api/core_api.rst b/docs/api/core_api.rst index c64ae4f5e..0154199f3 100644 --- a/docs/api/core_api.rst +++ b/docs/api/core_api.rst @@ -20,6 +20,14 @@ core Package :undoc-members: :show-inheritance: +:mod:`atom` Module +------------------ + +.. automodule:: abipy.core.atom + :members: + :undoc-members: + :show-inheritance: + :mod:`fields` Module -------------------- diff --git a/docs/api/dfpt_api.rst b/docs/api/dfpt_api.rst index 29ec20c34..17eb8b088 100644 --- a/docs/api/dfpt_api.rst +++ b/docs/api/dfpt_api.rst @@ -20,6 +20,14 @@ dfpt Package :undoc-members: :show-inheritance: +:mod:`converters` Module +------------------------ + +.. automodule:: abipy.dfpt.converters + :members: + :undoc-members: + :show-inheritance: + :mod:`ddb` Module ----------------- diff --git a/docs/api/dynamics_api.rst b/docs/api/dynamics_api.rst index 9056a443f..6a2c89379 100644 --- a/docs/api/dynamics_api.rst +++ b/docs/api/dynamics_api.rst @@ -13,6 +13,14 @@ dynamics Package :undoc-members: :show-inheritance: +:mod:`analyzer` Module +---------------------- + +.. automodule:: abipy.dynamics.analyzer + :members: + :undoc-members: + :show-inheritance: + :mod:`hist` Module ------------------ diff --git a/docs/api/electrons_api.rst b/docs/api/electrons_api.rst index f07923fbd..a23ed3039 100644 --- a/docs/api/electrons_api.rst +++ b/docs/api/electrons_api.rst @@ -93,6 +93,15 @@ electrons Package :undoc-members: :show-inheritance: + +:mod:`lruj` Module +------------------ + +.. automodule:: abipy.electrons.lruj + :members: + :undoc-members: + :show-inheritance: + :mod:`lobster` Module --------------------- diff --git a/docs/api/embedding_api.rst b/docs/api/embedding_api.rst new file mode 100644 index 000000000..52a492167 --- /dev/null +++ b/docs/api/embedding_api.rst @@ -0,0 +1,31 @@ +embedding Package +================= + +.. contents:: + :backlinks: top + +:mod:`embedding` Package +------------------------ + +.. automodule:: abipy.embedding + :members: + :undoc-members: + :show-inheritance: + +:mod:`embedding_ifc` Module +--------------------------- + +.. automodule:: abipy.embedding.embedding_ifc + :members: + :undoc-members: + :show-inheritance: + +:mod:`utils_ifc` Module +----------------------- + +.. automodule:: abipy.embedding.utils_ifc + :members: + :undoc-members: + :show-inheritance: + + diff --git a/docs/api/eph_api.rst b/docs/api/eph_api.rst index a67759750..9b2d10604 100644 --- a/docs/api/eph_api.rst +++ b/docs/api/eph_api.rst @@ -28,6 +28,14 @@ eph Package :undoc-members: :show-inheritance: +:mod:`common` Module +-------------------- + +.. automodule:: abipy.eph.cumulant + :members: + :undoc-members: + :show-inheritance: + :mod:`eph_plotter` Module ------------------------- @@ -36,6 +44,30 @@ eph Package :undoc-members: :show-inheritance: +:mod:`gpath` Module +------------------- + +.. automodule:: abipy.eph.gpath + :members: + :undoc-members: + :show-inheritance: + +:mod:`gstore` Module +-------------------- + +.. automodule:: abipy.eph.gstore + :members: + :undoc-members: + :show-inheritance: + +:mod:`rta` Module +----------------- + +.. automodule:: abipy.eph.rta + :members: + :undoc-members: + :show-inheritance: + :mod:`sigeph` Module -------------------- @@ -52,6 +84,16 @@ eph Package :undoc-members: :show-inheritance: + +:mod:`varpeq` Module +--------------------- + +.. automodule:: abipy.eph.varpeq + :members: + :undoc-members: + :show-inheritance: + + :mod:`v1sym` Module ------------------- @@ -59,3 +101,11 @@ eph Package :members: :undoc-members: :show-inheritance: + +:mod:`wr` Module +---------------- + +.. automodule:: abipy.eph.wr + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/api/flowtk_api.rst b/docs/api/flowtk_api.rst index 8666625e2..dc95a2642 100644 --- a/docs/api/flowtk_api.rst +++ b/docs/api/flowtk_api.rst @@ -85,6 +85,22 @@ flowtk Package :undoc-members: :show-inheritance: +:mod:`gw_works` Module +---------------------- + +.. automodule:: abipy.flowtk.gw_works + :members: + :undoc-members: + :show-inheritance: + +:mod:`gwr_works` Module +----------------------- + +.. automodule:: abipy.flowtk.gwr_works + :members: + :undoc-members: + :show-inheritance: + :mod:`gruneisen` Module ----------------------- @@ -109,6 +125,14 @@ flowtk Package :undoc-members: :show-inheritance: +:mod:`lumi_works` Module +------------------------ + +.. automodule:: abipy.flowtk.lumi_works + :members: + :undoc-members: + :show-inheritance: + :mod:`mocks` Module ------------------- diff --git a/docs/api/index.rst b/docs/api/index.rst index 7b8583ddc..31af27aa2 100644 --- a/docs/api/index.rst +++ b/docs/api/index.rst @@ -15,9 +15,13 @@ API documentation display_api.rst dynamics_api.rst electrons_api.rst + embedding_api.rst eph_api.rst flowtk_api.rst iotools_api.rst + lumi_api.rst + ml_api.rst + ppcodes_api.rst panels_api.rst tools_api.rst waves_api.rst diff --git a/docs/api/lumi_api.rst b/docs/api/lumi_api.rst new file mode 100644 index 000000000..8af46c4e0 --- /dev/null +++ b/docs/api/lumi_api.rst @@ -0,0 +1,30 @@ +lumi Package +============ + +.. contents:: + :backlinks: top + +:mod:`lumi` Package +------------------- + +.. automodule:: abipy.lumi + :members: + :undoc-members: + :show-inheritance: + +:mod:`deltaSCF` Module +---------------------- + +.. automodule:: abipy.lumi.deltaSCF + :members: + :undoc-members: + :show-inheritance: + + +:mod:`lineshape` Module +----------------------- + +.. automodule:: abipy.lumi.lineshape + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/api/ml_api.rst b/docs/api/ml_api.rst new file mode 100644 index 000000000..6fbc27248 --- /dev/null +++ b/docs/api/ml_api.rst @@ -0,0 +1,63 @@ +ml Package +========== + +.. contents:: + :backlinks: top + +ml Package +========== + +.. contents:: + :backlinks: top + +:mod:`ml` Package +----------------- + +.. automodule:: abipy.ml + :members: + :undoc-members: + :show-inheritance: + + +:mod:`aseml` Package +-------------------- + +.. automodule:: abipy.ml.aseml + :members: + :undoc-members: + :show-inheritance: + +:mod:`extxyz_generator` Package +------------------------------- + +.. automodule:: abipy.ml.extxyz_generator + :members: + :undoc-members: + :show-inheritance: + + +:mod:`ml_phonopy` Package +------------------------- + +.. automodule:: abipy.ml.ml_phonopy + :members: + :undoc-members: + :show-inheritance: + + +:mod:`relax_scanner` Package +---------------------------- + +.. automodule:: abipy.ml.relax_scanner + :members: + :undoc-members: + :show-inheritance: + + +:mod:`tools` Package +-------------------- + +.. automodule:: abipy.ml.tools + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/api/panels_api.rst b/docs/api/panels_api.rst index afb12d6ba..746628132 100644 --- a/docs/api/panels_api.rst +++ b/docs/api/panels_api.rst @@ -13,6 +13,14 @@ panels Package :undoc-members: :show-inheritance: +:mod:`a2f` Module +------------------ + +.. automodule:: abipy.panels.a2f + :members: + :undoc-members: + :show-inheritance: + :mod:`core` Module ------------------ @@ -29,6 +37,14 @@ panels Package :undoc-members: :show-inheritance: +:mod:`fatbands` Module +---------------------- + +.. automodule:: abipy.panels.fatbands + :members: + :undoc-members: + :show-inheritance: + :mod:`flows` Module ------------------- @@ -45,6 +61,32 @@ panels Package :undoc-members: :show-inheritance: +:mod:`hist` Module +------------------ + +.. automodule:: abipy.panels.hist + :members: + :undoc-members: + :show-inheritance: + + +:mod:`nodes` Module +------------------- + +.. automodule:: abipy.panels.nodes + :members: + :undoc-members: + :show-inheritance: + + +:mod:`outputs` Module +--------------------- + +.. automodule:: abipy.panels.outputs + :members: + :undoc-members: + :show-inheritance: + :mod:`phonons` Module --------------------- @@ -53,6 +95,14 @@ panels Package :undoc-members: :show-inheritance: +:mod:`sigeph` Module +--------------------- + +.. automodule:: abipy.panels.sigeph + :members: + :undoc-members: + :show-inheritance: + :mod:`structure` Module ----------------------- @@ -60,3 +110,27 @@ panels Package :members: :undoc-members: :show-inheritance: + +:mod:`tasks` Module +------------------- + +.. automodule:: abipy.panels.tasks + :members: + :undoc-members: + :show-inheritance: + +:mod:`viewers` Module +--------------------- + +.. automodule:: abipy.panels.viewers + :members: + :undoc-members: + :show-inheritance: + +:mod:`works` Module +------------------- + +.. automodule:: abipy.panels.works + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/api/ppcodes_api.rst b/docs/api/ppcodes_api.rst new file mode 100644 index 000000000..565cd7c46 --- /dev/null +++ b/docs/api/ppcodes_api.rst @@ -0,0 +1,45 @@ +ppcodes Package +=============== + +.. contents:: + :backlinks: top + +:mod:`ppcodes` Package +---------------------- + +.. automodule:: abipy.ppcodes + :members: + :undoc-members: + :show-inheritance: + +:mod:`base_parser` Module +------------------------- + +.. automodule:: abipy.ppcodes.base_parser + :members: + :undoc-members: + :show-inheritance: + +:mod:`oncv_parser` Module +------------------------- + +.. automodule:: abipy.ppcodes.oncv_parser + :members: + :undoc-members: + :show-inheritance: + +:mod:`oncv_plotter` Module +-------------------------- + +.. automodule:: abipy.ppcodes.oncv_plotter + :members: + :undoc-members: + :show-inheritance: + +:mod:`ppgen` Module +------------------- + +.. automodule:: abipy.ppcodes.ppgen + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/api/tools_api.rst b/docs/api/tools_api.rst index cb8ed42f3..542fde403 100644 --- a/docs/api/tools_api.rst +++ b/docs/api/tools_api.rst @@ -13,6 +13,7 @@ tools Package :undoc-members: :show-inheritance: + :mod:`bessel` Module -------------------- @@ -21,6 +22,24 @@ tools Package :undoc-members: :show-inheritance: + +:mod:`cli_parsers` Module +------------------------- + +.. automodule:: abipy.tools.cli_parsers + :members: + :undoc-members: + :show-inheritance: + + +:mod:`context_managers` Module +------------------------------ + +.. automodule:: abipy.tools.context_managers + :members: + :undoc-members: + :show-inheritance: + :mod:`decorators` Module ------------------------ @@ -85,6 +104,16 @@ tools Package :undoc-members: :show-inheritance: + +:mod:`parallel` Module +---------------------- + +.. automodule:: abipy.tools.parallel + :members: + :undoc-members: + :show-inheritance: + + :mod:`plotting` Module ---------------------- @@ -93,6 +122,22 @@ tools Package :undoc-members: :show-inheritance: +:mod:`printing` Module +---------------------- + +.. automodule:: abipy.tools.printing + :members: + :undoc-members: + :show-inheritance: + +:mod:`serialization` Module +--------------------------- + +.. automodule:: abipy.tools.serialization + :members: + :undoc-members: + :show-inheritance: + :mod:`tensors` Module --------------------- @@ -108,3 +153,11 @@ tools Package :members: :undoc-members: :show-inheritance: + +:mod:`typing` Module +-------------------- + +.. automodule:: abipy.tools.typing + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/coding_guide.rst b/docs/coding_guide.rst index d8e4854b2..b7238e437 100644 --- a/docs/coding_guide.rst +++ b/docs/coding_guide.rst @@ -20,8 +20,6 @@ When committing changes to AbiPy, there are a few things to bear in mind. .. versionadded:: 0.2 Add new argument ``foobar`` -* Are your changes python2.7 compatible? - * Can you pass the automatic tests? * Can you add a test to test your changes? @@ -102,6 +100,7 @@ Writing examples We have examples in subdirectories of :file:`abipy/examples`, and these are automatically generated when the website is built to show up both in the :file:`examples` and :file:`gallery` sections of the website. + Many people find these examples from the website, and do not have ready access to the :file:`examples` directory in which they reside. Thus any example data that is required for the example should be added to the :file:`abipy/data` directory @@ -114,3 +113,20 @@ Abipy has a testing infrastructure based on :mod:`unittest` and pytest_. Common test support is provided by :mod:`abipy.core.testing`, data files are stored in :file:`abipy/data`, in particular in :file:`abipy/data/refs` that contains several output files that can be used for writing unit tests and examples. + +To install pytest with useful plugins, use:: + + pip install -r requirements-tests.txt + + +in the top-level directory of the package. +To run the tests associated to the abio.inputs module, use:: + + pytest -v abio/tests/test_inputs.py + +or use:: + + pytest -v + +to run the entire test suite. + diff --git a/docs/conf.py b/docs/conf.py index cfaa3b221..7c57ea53d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -9,16 +9,23 @@ import os import shutil +# Remove matplotlib agg warnings from generated doc when using plt.show +import warnings + +#warnings.filterwarnings("ignore", category=UserWarning, +# message='Matplotlib is currently using agg, which is a' +# ' non-GUI backend, so cannot show the figure.') + +if not sys.warnoptions: + warnings.simplefilter("ignore") # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. ABIPY_ROOT = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")) - sys.path.insert(0, ABIPY_ROOT) - import imp mod_name = os.path.join(ABIPY_ROOT, "abipy", "core", "release.py") relmod = imp.load_source(mod_name, mod_name) @@ -45,19 +52,31 @@ 'sphinx.ext.napoleon', # For Google Python Style Guide 'sphinx.ext.inheritance_diagram', 'sphinxcontrib.programoutput', - 'sphinx_gallery.gen_gallery', "sphinxarg.ext", # CLI doc 'sphinxcontrib.bibtex', - "jupyter_sphinx.execute", + "jupyter_sphinx", #'nbsphinx', #"releases", #'sphinx.ext.coverage', + #'sphinx_gallery.gen_gallery', ] +# Activate build of sphinx-gallery. +with_gallery = True + +if with_gallery: + extensions.append('sphinx_gallery.gen_gallery') + # Add any Sphinx extension module names here, as strings. They can # be extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. import matplotlib +# Use seaborn settings. +#import seaborn as sns +#sns.set(context=options.seaborn, style='darkgrid', palette='deep', +# font='sans-serif', font_scale=1, color_codes=False, rc=None) + + extensions += [ 'IPython.sphinxext.ipython_directive', 'IPython.sphinxext.ipython_console_highlighting', @@ -65,10 +84,10 @@ ] # Add local extensions (not available on PyPi) -sys.path.insert(0, os.path.join(ABIPY_ROOT, "docs", "my_extensions")) -extensions += [ - 'youtube', -] +#sys.path.insert(0, os.path.join(ABIPY_ROOT, "docs", "my_extensions")) +#extensions += [ +# 'youtube', +#] ######################### # Spinx Gallery Settings @@ -78,7 +97,6 @@ mpl.use("Agg") mpl.rcParams['figure.dpi'] = 300 - #def reset_mpl(gallery_conf, fname): # """reset matplotlib to always use the seaborn style.""" # # https://542-25860190-gh.circle-artifacts.com/0/rtd_html/advanced_configuration.html#resetting-modules @@ -108,48 +126,77 @@ # return figure_rst(image_names, gallery_conf['src_dir']) -from sphinx_gallery.sorting import FileNameSortKey, NumberOfCodeLinesSortKey - -sphinx_gallery_conf = { - # path to your examples scripts - 'examples_dirs': [ - "../abipy/examples/plot", - "../abipy/examples/flows", - ], - #'examples_dirs': [], - # path where to save gallery generated examples - 'gallery_dirs': [ - "gallery", - "flow_gallery", - ], - 'filename_pattern': "(/plot_*|/run_*)", - 'default_thumb_file': '_static/abipy_logo.png', - 'within_subsection_order': NumberOfCodeLinesSortKey, - 'backreferences_dir': False, - #'reset_modules': (reset_mpl,), - #'find_mayavi_figures': True, - 'reference_url': { - 'abipy': None, # The module you locally document uses None - 'numpy': 'https://docs.scipy.org/doc/numpy/', - 'matplotlib': 'https://matplotlib.org', - 'pandas': "http://pandas-docs.github.io/pandas-docs-travis/", - "pymatgen": "http://pymatgen.org/", - }, - #'image_scrapers': ('matplotlib',), - #'image_scrapers': ('matplotlib', 'mayavi'), - #'image_scrapers': ('matplotlib', PNGScraper()), - # TODO - #https://sphinx-gallery.github.io/advanced_configuration.html#generate-binder-links-for-gallery-notebooks-experimental - #'binder': { - # 'org': 'abinit', - # #'repo': 'abipy', - # #'repo': 'https://github.com/abinit/abipy', - # "repo": "http://abinit.github.io/abipy/", - # 'url': 'https://mybinder.org', # URL serving binders (e.g. mybinder.org) - # 'branch': 'develop', # Can also be a tag or commit hash - # 'dependencies': '../binder/environment.yml' # list_of_paths_to_dependency_files>' - # }, -} +# Set plotly renderer to capture _repr_html_ for sphinx-gallery +# https://sphinx-gallery.github.io/stable/auto_examples/plot_9_plotly.html +import plotly.io as pio +pio.renderers.default = 'sphinx_gallery' + +# Here we change the default value of show used in the plotly decorator. +from abipy.tools.plotting import set_plotly_default_show +set_plotly_default_show(False) + +if with_gallery: + print("Will build sphinx-gallery") + from sphinx_gallery.sorting import ExampleTitleSortKey + + sphinx_gallery_conf = { + #'only_warn_on_example_error': True, + 'abort_on_example_error': True, + 'log_level': {'backreference_missing': 'warning'}, + # + # path to your examples scripts + 'examples_dirs': [ + "../abipy/examples/plot", + "../abipy/examples/flows", + ], + # path where to save gallery generated examples + 'gallery_dirs': [ + "gallery", + "flow_gallery", + ], + 'filename_pattern': "(/plot*|/run_*)", + 'default_thumb_file': '_static/abipy_logo.png', + 'within_subsection_order': ExampleTitleSortKey, + 'backreferences_dir': None, + #'reset_modules': (reset_mpl,), + 'reference_url': { + 'abipy': None, # The module you locally document uses None + 'numpy': 'https://docs.scipy.org/doc/numpy/', + 'matplotlib': 'https://matplotlib.org', + 'pandas': "http://pandas.pydata.org/pandas-docs/stable/", + "pymatgen": "https://pymatgen.org/", + }, + #'image_scrapers': ('matplotlib',), + #'image_scrapers': ('matplotlib', PNGScraper()), + #'image_scrapers': ('matplotlib', plotly), + + # capture raw HTML or, if not present, __repr__ of last expression in each code block + 'capture_repr': (), + #'capture_repr': ('_repr_html_', '__repr__'), + # + # https://sphinx-gallery.github.io/stable/configuration.html#binder-links + + #'binder': { + # # Required keys + # 'org': 'abinit', + # 'repo': 'abipy', + # # Can be any branch, tag, or commit hash. Use a branch that hosts your docs. + # 'branch': 'gh-pages', + # #'ref': 'gh-pages', + # # Any URL of a binderhub deployment. Must be full URL (e.g. https://mybinder.org). + # 'binderhub_url': 'https://mybinder.org', + # # A list of paths (relative to conf.py) to dependency files that Binder uses to infer + # # the environment needed to run your examples + # 'dependencies': ["../binder/environment.yml", "../binder/postBuild"], + # # Optional keys + # # A prefix to prepend to any filepaths in Binder links. + # #'filepath_prefix': '' + # # Jupyter notebooks for Binder will be copied to this directory (relative to built documentation root). + # #'notebooks_dir': '' + # # Whether Binder links should start Jupyter Lab instead of the Jupyter Notebook interface. + # #'use_jupyter_lab': False, + # }, + } # Generate the API documentation when building autosummary_generate = True @@ -169,7 +216,7 @@ # General information about the project. project = 'abipy' -copyright = '2018, ' + relmod.author +copyright = '2023, ' + relmod.author # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -177,6 +224,7 @@ # # The short X.Y version. version = relmod.__version__ + # The full version, including alpha/beta/rc tags. release = relmod.__version__ @@ -218,92 +266,25 @@ # -- Options for HTML output --------------------------------------------------- # Activate the theme. -import sphinx_bootstrap_theme -html_theme = 'bootstrap' -html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() + +import sphinx_rtd_theme +html_theme = 'sphinx_rtd_theme' +html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # (Optional) Logo. Should be small enough to fit the navbar (ideally 24x24). # Path should be relative to the ``_static`` files directory. #html_logo = "my_logo.png" -# Theme options are theme-specific and customize the look and feel of a -# theme further. -html_theme_options = { - # Navigation bar title. (Default: ``project`` value) - #'navbar_title': "Demo", - - # Tab name for entire site. (Default: "Site") - 'navbar_site_name': "Site", - - # A list of tuples containing pages or urls to link to. - # Valid tuples should be in the following forms: - # (name, page) # a link to a page - # (name, "/aa/bb", 1) # a link to an arbitrary relative url - # (name, "http://example.com", True) # arbitrary absolute url - # Note the "1" or "True" value above as the third argument to indicate - # an arbitrary url. - #'navbar_links': [ - # ("Examples", "examples"), - # ("Link", "http://example.com", True), - #], - - # Render the next and previous page links in navbar. (Default: true) - 'navbar_sidebarrel': True, - - # Render the current pages TOC in the navbar. (Default: true) - 'navbar_pagenav': True, - - # Tab name for the current pages TOC. (Default: "Page") - 'navbar_pagenav_name': "Page", - - # Global TOC depth for "site" navbar tab. (Default: 1) - # Switching to -1 shows all levels. - 'globaltoc_depth': 1, - - # Include hidden TOCs in Site navbar? - # - # Note: If this is "false", you cannot have mixed ``:hidden:`` and - # non-hidden ``toctree`` directives in the same page, or else the build - # will break. - # - # Values: "true" (default) or "false" - 'globaltoc_includehidden': "true", - - # HTML navbar class (Default: "navbar") to attach to
    element. - # For black navbar, do "navbar navbar-inverse" - #'navbar_class': "navbar navbar-inverse", - - # Fix navigation bar to top of page? - # Values: "true" (default) or "false" - 'navbar_fixed_top': "true", - - # Location of link to source. - # Options are "nav" (default), "footer" or anything else to exclude. - 'source_link_position': "nav", - - # Bootswatch (http://bootswatch.com/) theme. - # Options are nothing (default) or the name of a valid theme - # such as "cosmo" or "sandstone". - #'bootswatch_theme': "united", - #'bootswatch_theme': "flatly", - #'bootswatch_theme': "litera", - #'bootswatch_theme': "simplex", - #'bootswatch_theme': "sandstone", - - # Choose Bootstrap version. - # Values: "3" (default) or "2" (in quotes) - 'bootstrap_version': "3", -} - def setup(app): """ Sphinx automatically calls your setup function defined in "conf.py" during the build process for you. There is no need to, nor should you, call this function directly in your code. - http://www.sphinx-doc.org/en/stable/extdev/appapi.html + See http://www.sphinx-doc.org/en/stable/extdev/appapi.html """ # Add custom css in _static - app.add_stylesheet("my_style.css") + #app.add_stylesheet("my_style.css") + app.add_css_file("my_style.css") # The name for this set of Sphinx documents. If None, it defaults to @@ -447,12 +428,12 @@ def setup(app): # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { 'python': ('https://docs.python.org/{.major}'.format(sys.version_info), None), - 'numpy': ('https://docs.scipy.org/doc/numpy/', None), - "scipy": ("https://docs.scipy.org/doc/scipy/reference/", None), - 'pandas': ("http://pandas-docs.github.io/pandas-docs-travis/", None), - 'matplotlib': ('https://matplotlib.org/', None), + 'numpy': ('https://numpy.org/doc/stable/', None), + "scipy": ("https://docs.scipy.org/doc/scipy/", None), + "pandas": ("http://pandas.pydata.org/pandas-docs/stable/", None), + 'matplotlib': ('https://matplotlib.org/stable/', None), "monty": ("https://pythonhosted.org/monty/", None), - "pymatgen": ("http://pymatgen.org/", None), + "pymatgen": ("https://pymatgen.org/", None), 'mayavi': ('http://docs.enthought.com/mayavi/mayavi', None), } @@ -482,21 +463,23 @@ def setup(app): # pybtex provides a very powerful way to create and register new styles, using setuptools entry points, # as documented here: http://docs.pybtex.org/api/plugins.html +bibtex_bibfiles = ['abiref.bib'] + from pybtex.style.formatting.plain import Style from pybtex.style.labels.alpha import LabelStyle - class AbiPyLabelStyle(LabelStyle): def format_label(self, entry): return entry.key + class AbiPyStyle(Style): default_label_style = 'abipy' + from pybtex.plugin import register_plugin register_plugin('pybtex.style.labels', 'abipy', AbiPyLabelStyle) register_plugin('pybtex.style.formatting', 'abipystyle', AbiPyStyle) - # This is for releases http://releases.readthedocs.io/en/latest/usage.html releases_github_path = "abinit/abipy" diff --git a/docs/flows_howto.rst b/docs/flows_howto.rst index bf45f1a29..23bdcc0eb 100644 --- a/docs/flows_howto.rst +++ b/docs/flows_howto.rst @@ -4,7 +4,7 @@ Flows How-To ************ -This is a list of FAQs about the AbiPy flows and the :ref:`abirun.py` script. +This is a list of FAQs about the AbiPy flows and the abirun.py_ script. Feel free to suggest new entries! .. important:: @@ -16,7 +16,7 @@ Feel free to suggest new entries! Suggestions: * Start with the examples available in examples/flows before embarking on large scale calculations. -* Make sure the Abinit executable compiled on the machine can be executed both on the front end +* Make sure the Abinit executable compiled on the machine can be executed both on the front end and the compute node (ask your sysadmin) * If you are running on clusters in which the architecture of the compute node is completely different from the one available on the front end, use ``shell_runner`` @@ -25,8 +25,8 @@ Suggestions: Do not: * Change manually the input files and the submission scripts -* Submit jobs manually when the scheduler is running -* Use a too small delay for the scheduler +* Submit jobs manually when the scheduler is running +* Use a too small delay for the scheduler .. contents:: @@ -35,7 +35,7 @@ Do not: How to get all the TaskManager options -------------------------------------- -The :ref:`abidoc.py` script provides three commands to get the documentation +The abidoc.py_ script provides three commands to get the documentation for the options supported in ``manager.yml`` and ``scheduler.yml``. Use:: @@ -84,10 +84,10 @@ Add the following options to scheduler.yml # Maximum number of cores that can be used by the scheduler. max_ncores_used: 4 -How to reduce the number of files produced by the Flow +How to reduce the number of files produced by the Flow ------------------------------------------------------ -When running many calculations, +When running many calculations, Use ``prtwf -1`` to tell Abinit to produce the wavefunction file only if SCF cycle didn't converged so that AbiPy can reuse the file to restart the calculation. @@ -102,14 +102,14 @@ How to extend tasks/works with specialized code ----------------------------------------------- Remember that pickle_ does not support classes defined inside scripts (`__main__`). -This means that `abirun.py` will likely raise an exception when trying to +This means that `abirun.py` will likely raise an exception when trying to reconstruct the object from the pickle file: .. code-block:: python - AttributeError: Cannot get attribute 'MyWork' on `_ or inside jupyter notebooks. This document explains how to install the required dependencies and how to -generate dashboards either with the command line interface or inside jupyter notebooks. +generate dashboards either from the command line interface (CLI) or inside jupyter notebooks. .. important:: - Note that you will need a running python kernel to execute the callbacks triggerered - by the GUI hence the examples given in this page are only meant to show how to build the the GUI. + Please note that one needs a **running python backend** + to execute the callbacks triggerered by the widgets in the HTML page. + This part, indeed, is implemented by HTML/CSS/JS code executed + by the frontend (i.e. **your browser**) that sends the signal + to the python server (the **backend**). + The python server is supposed to process the data + and send the results back to the frontend for visualization purposes + + Don't be surprised if you start to click buttons and **nothing happens**! + The examples provided in this page are only meant to show how to build GUI + or dashboards with AbiPy. + Installation ------------ @@ -24,16 +34,16 @@ Install the `panel `_ package either from pip with: .. code-block:: bash - pip install panel + pip install panel -or with conda: +or with conda (**recommended**) using: .. code-block:: bash - conda install panel -c conda-forge + conda install panel -c conda-forge -If you want to work with JupyterLab, you will also need to install -the optional PyViz JupyterLab extension: +If you plan to use panel within JupyterLab, you will also need to install +the PyViz JupyterLab extension and activate it with: .. code-block:: bash @@ -44,24 +54,37 @@ the optional PyViz JupyterLab extension: Basic Usage ----------- -The AbiPy structure and many AbiPY files provide a ``get_panel`` method that returns -a dashboard that can be used inside the jupyter notebook. -To enable the integration with ``panel`` inside a jupyter notebook, execute the below code: +Several AbiPy objects provide a ``get_panel`` method returning +an object that can be served by a web browser or displayed inside the jupyter notebook. +When running inside a jupyter notebook, remember to enable the integration +with the ``panel`` infrastructure by executing: .. jupyter-execute:: - # Import panel and activate extensions - import panel as pn - pn.extension() + from abipy import abilab + abilab.abipanel(); + +**before calling** any AbiPy ``get_panel`` method. + +.. note:: + + The ``abipanel`` function is needed to load extensions and javascript packages + required by AbiPy. + This function is just a small wrapper around the panel API: + + .. code-block:: bash + + import panel as pn + pn.extension() -Now one can start to construct AbiPy objects and use the ``get_panel`` method to generate graphical interfaces. -In our first example, we use the ``abiopen`` function to open a ``GSR`` file -and then we call ``get_panel`` to build a set of widgets that allows us to interact with the object: +At this point, we can start to construct AbiPy objects. +For our first example, we use the abiopen function to open a ``GSR`` file, +then we call ``get_panel`` to build a set of widgets that allows us to interact +with the |GsrFile|: .. jupyter-execute:: - # Import AbiPy modules. from abipy import abilab import abipy.data as abidata @@ -70,75 +93,175 @@ and then we call ``get_panel`` to build a set of widgets that allows us to inter gsr.get_panel() +The **Summary** tab provides a string representation of the file +but there is no widget to interact with it. +If you select the **e-Bands** tab, you will see several widgets and a button +that activates the visualization of the KS band energies. +Again, in this HTML page there is no python server running in background so +if you click the **Plot e-bands** button nothing happens (this is not a bug!). -The same approach can be used with a ``DDB`` file. -In this case, we get more tabs and options because one can use the GUI -to set the input parameters, invoke ``anaddb`` and visualize the results: +The advantage of this notebook-based approach is that it is possible to mix +the panel GUIs with python code that can be used to perform +more advanced tasks not supported by the GUI. +Obviously it is possible to have multiple panels running in the same notebook. +Calling ``get_panel`` with an AbiPy structure, for instance, creates a set of widgets +to facilitate common operations such as exporting the structure to a different format or +generating a basic Abinit input file for e.g. GS calculations: .. jupyter-execute:: - # Open DDB file with abiopen and invoke get_panel method. - #ddb_path = abidata.ref_file("mp-1009129-9x9x10q_ebecs_DDB") + gsr.structure.get_panel() + +.. note:: + + At present, not all the AbiPy objects support the ``get_panel`` protocol + but we plan to gradually support more objects, especially the most important + netcdf files produced by Abinit + +To generate a notebook from the command line, use the abiopen.py_ script: - #abilab.abiopen(ddb_path).get_panel() +.. code-block:: bash + + abiopen.py si_nscf_GSR.nc -nb # short for --notebook + +that will automatically open the notebook inside jupyterlab. +If you prefer classic jupyter notebooks, use the ``-nb --classic-notebook`` options + +If you do not need to execute python code, you may want to generate a panel dashboard with: +.. code-block:: bash + + abiopen.py si_nscf_GSR.nc -pn # short for --panel -Calling ``get_structure`` with an AbiPy structure, creates a set of widgets -to facilitate common operations such as exporting to a different format or -generating a Abinit input file for GS calculations: +The same approach can be used with a ``DDB`` file. +In this case, we get more tabs and options because one can use the GUI +to set the input parameters, invoke ``anaddb`` and visualize the results: .. jupyter-execute:: - gsr.structure.get_panel() + # Open DDB file with abiopen and invoke get_panel method. + ddb_path = abidata.ref_file("mp-1009129-9x9x10q_ebecs_DDB") + abilab.abiopen(ddb_path).get_panel() +The same result can be obtained from the CLI with + +.. code-block:: bash -There are, however, cases in which you don't need the interactive environment provided + abiopen.py mp-1009129-9x9x10q_ebecs_DDB -nb + +There are, however, cases in which you don't need the interactive environment provided by jupyter notebooks as you are mainly interested in the visualization of the results. -In this case, it is possible to use the command line interface to automatically generate -a dashboard with widgets without having to start a jupyter-lab application. +In this case, it is possible to use the command line interface to automatically generate +a dashboard with widgets without having to start a notebook. -To build a dashboard for a ``Structure`` object extract from ``FILE``, use: +To build a dashboard for a |Structure| object extracted from ``FILE``, use: -.. code-block:: shell +.. code-block:: bash abistruct.py panel FILE - -where ``FILE`` is any file providing a ``Structure`` object e.g. netcdf file, cif files, abi, abo etc. +where ``FILE`` is **any** file providing a ``Structure`` object +e.g. netcdf files, cif files, abi, abo files etc. To build a dashboard associated to one of the AbiPy file, use the syntax: -.. code-block:: shell +.. code-block:: bash abiopen.py FILE --panel - where ``FILE`` is one of the Abinit files supported by ``abiopen.py``. For instance, one can create a dashboard to interact with a ``DDB`` file with: -.. code-block:: shell +.. code-block:: bash abiopen.py out_DDB --panel -.. important:: +To build a dashboard for an AbiPy Flow use: - To build a dashboard for an AbiPy Flow use: +.. code-block:: bash abirun.py FLOWDIR panel - or, alternatively: +or alternatively: + +.. code-block:: bash abiopen.py FLOWDIR/__AbinitFlow__.pickle --panel -.. jupyter-execute:: +Serving dashboards from a remote server +--------------------------------------- + +inspired to https://ljvmiranda921.github.io/notebook/2018/01/31/running-a-jupyter-notebook/ + +In all the examples presented so far we assumed that both AbiPy and the web browser +are running on the same machine. +In many cases, however, calculations are performed on clusters in which web browsers are +not always available or, even if the browser is installed, the connection may be too slow.. +Obviously, one can always copy files from the remote cluster to the local machine with scp +or mount the remote file system with sshfs but both approaches are far from optimal. +In principle, we would like to be able to execute AbiPy and Abinit on the remote cluster +and visualize the results directly in our local machine. + +In this section, we discuss how to start a web server on the remote cluster and how +to connect to it from our local machine. + +Before starting, let us introduce some notation. +Let us define the local user and host as ``localuser`` and ``localhost``, respectively. +Similarly, let us define the remote user and remote host as ``remoteuser`` and ``remotehost``. +Needless to say, make sure that Abipy and all its dependencies are installed on the remotehost, +including the `taskmanager.yml` configuration file. + +Step 1: Start the server on the remote machine + +Log-in to the remote machine via ssh as usual with ``ssh remoteuser@remotehost``. +Now use: + +.. code-block:: bash + + abiopen.py FILE --panel --no-browser --port 49412 + +to start the server without opening the browser (``--no-browser`` option). +The server will be listening on port 49412 of the remotehost +If the port is occupied, use another one but remember that ports below 1023 are +reserved. + +Step 2: + +Forward port XXXX to YYYY and listen to it +In your remote host, the notebook is now running at the port XXXX that you specified. +What you’ll do next is forward this to port YYYY of your machine so that you can listen +and run it from your browser. +To achieve this, we use the following command: + +.. code-block:: bash + + localuser@localhost: ssh -N -f -L localhost:YYYY:localhost:XXXX remoteuser@remotehost + +-N: Suppresses the execution of a remote command. Pretty much used in port forwarding. +-f: Requests the ssh command to go to background before execution. +-L: this argument requires an input in the form of local_socket:remote_socket. + +Here, we’re specifying our port as YYYY which will be binded to the port XXXX +from your remote connection. + +Step 3: Fire-up Jupyter Notebook +To open up the Jupyter notebook from your remote machine, +At this point, you can simply start your web browser on your local machine +and type the following in the address bar:: + + localhost:YYYY + +If you’re successful, you should see the typical Jupyter Notebook home screen in the directory +where you ran the command in Step 1. At the same time, if you look in your remote terminal, +you should see some log actions happening as you perform some tasks. + +Closing all connections +To close connections, I usually stop my notebook from remote via CTRL + C then Y, and kill the process on YYYY via: - import numpy as np - from matplotlib import pyplot - %matplotlib inline +localuser@localhost: sudo netstat -lpn |grep :YYYY - x = np.linspace(1E-3, 2 * np.pi) +# This will show the process ID (PID), e.g. ABCDEF of the one running in YYYY, +# you can kill it by simply typing - pyplot.plot(x, np.sin(x) / x) - pyplot.plot(x, np.cos(x)) - pyplot.grid() +localuser@localhost: kill ABCDEF diff --git a/docs/index.rst b/docs/index.rst index 86df40f7a..28c26db29 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -8,9 +8,9 @@ * - Package - |pypi-version| |download-with-anaconda| |supported-versions| * - Continuous Integration - - |travis-status| |coverage-status| + - |travis-status| |coverage-status| * - Documentation - - |docs-github| |launch-nbviewer| |launch-binder| + - |docs-github| |launch-nbviewer| |launch-binder| Getting Started @@ -31,8 +31,8 @@ Post-processing :maxdepth: 1 scripts/index - graphical_interface gallery/index + graphical_interface postprocessing_howto Workflows @@ -59,9 +59,9 @@ API Indices and tables ================== - :ref:`genindex` - :ref:`modindex` - :ref:`search` + :ref:`genindex` + :ref:`modindex` + :ref:`search` License ======= diff --git a/docs/install.sh b/docs/install.sh new file mode 100755 index 000000000..cb88526d4 --- /dev/null +++ b/docs/install.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -ev # exit on first error, print each command + +pip install -r ./requirements.txt +pip install -r ../requirements-optional.txt +pip install -r ../requirements-panel.txt +pip install -r requirements.txt +conda install graphviz -c conda-forge --yes diff --git a/docs/installation.rst b/docs/installation.rst index 489e2e477..c6ace72e3 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -10,13 +10,13 @@ Stable version -------------- The version at the `Python Package Index `_ (PyPI) is always -the latest **stable** release that can be installed with:: +the latest **stable** release that can be installed in user mode with:: - pip install abipy + pip install abipy --user -Note that you may need to install pymatgen_ and other critical dependencies manually. +Note that you may need to install some optional dependencies manually. In this case, please consult the detailed installation instructions provided in the -`pymatgen howto `_ to install pymatgen +`pymatgen howto `_ to install these optional packages and then follow the instructions in the :ref:`netcdf4_installation` section. The installation process is greatly simplified if you install the required @@ -63,7 +63,7 @@ Anaconda Howto -------------- Download the anaconda installer from the `official web-site `_. -Choose the version that matches your OS and select python3.6. +by choosing the version that matches your OS You may want to use the ``wget`` utility to download the anaconda script directly from the terminal (useful if you are installing anaconda on a cluster). @@ -86,15 +86,15 @@ Remember that if a package is not available in the official conda repository, yo download the package from one of the conda channels or use ``pip install`` if no conda package is available. Fortunately there are conda channels providing all dependencies needed by AbiPy. -Now add ``conda-forge``, and ``abinit`` to your conda channels with:: +Now add ``conda-forge`` to your conda channels with:: conda config --add channels conda-forge - conda config --add channels abinit -These are the channels from which we will download pymatgen, abipy and abinit. -Finally, install AbiPy from the abinit-channel_ with:: +This is the channel from which we will download pymatgen, abipy and abinit. - conda install abipy --channel abinit +Finally, install AbiPy with:: + + conda install abipy Once you have completed the installation of AbiPy and pymatgen, open the ipython_ shell and type:: diff --git a/docs/links.rst b/docs/links.rst index 774669b93..99d5ae27e 100644 --- a/docs/links.rst +++ b/docs/links.rst @@ -55,17 +55,29 @@ .. _slurm: https://slurm.schedmd.com/ .. _pbspro: http://pbspro.org/ .. _sge: http://gridscheduler.sourceforge.net/howto/GridEngineHowto.html -.. _torque: http://www.adaptivecomputing.com/products/open-source/torque/ +.. _torque: https://github.com/adaptivecomputing/torque .. _moab: http://www.adaptivecomputing.com/products/hpc-products/moab-hpc-basic-edition/ .. _loadleveler: https://www.ibm.com/support/knowledgecenter/en/SSFJTW .. Links to important python objects. -.. _POSCAR: http://cms.mpi.univie.ac.at/vasp/guide/node59.html .. _DataFrame: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html .. _DataFrames: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html -.. Links to jupyter notebooks associated to AbiPy files available at - https://nbviewer.jupyter.org/github/abinit/abitutorials/blob/master/abitutorials/index.ipynb?flush_cache=true +.. Links to important pymatgen. +.. _POSCAR: http://cms.mpi.univie.ac.at/vasp/guide/node59.html + +.. Links to abipy scripts. +.. _abiopen.py: https://abinit.github.io/abipy/scripts/abiopen.html +.. _abistruct.py: https://abinit.github.io/abipy/scripts/abistruct.html +.. _abidoc.py: https://abinit.github.io/abipy/scripts/abidoc.html +.. _abiview.py: https://abinit.github.io/abipy/scripts/abiview.html +.. _abicomp.py: https://abinit.github.io/abipy/scripts/abicomp.html +.. _abinp.py: https://abinit.github.io/abipy/scripts/abinp.html +.. _abicheck.py: https://abinit.github.io/abipy/scripts/abicheck.html +.. _abips.py: https://abinit.github.io/abipy/scripts/abips.html +.. _oncv.py: https://abinit.github.io/abipy/scripts/oncv.html + +.. Links to jupyter notebooks associated to AbiPy files: .. _AbipyStructure: https://nbviewer.jupyter.org/github/abinit/abitutorials/blob/master/abitutorials/structure.ipynb .. _AbinitInput: https://nbviewer.jupyter.org/github/abinit/abitutorials/blob/master/abitutorials/abinit_input.ipynb .. _GSR.nc: https://nbviewer.jupyter.org/github/abinit/abitutorials/blob/master/abitutorials/gsr.ipynb @@ -115,6 +127,7 @@ .. |DdbRobot| replace:: :class:`abipy.dfpt.ddb.DdbRobot` .. |AnaddbNcFile| replace:: :class:`abipy.dfpt.anaddb.AnaddbNcFile` .. |AbinitNcFile| replace:: :class:`abipy.core.mixins.AbinitNcFile` +.. |SigEPhFile| replace:: :class:`abipy.eph.sigeph.SigEPhFile` .. |pmg-Tensor| replace:: :class:`pymatgen.core.tensors.Tensor` .. |Stress| replace:: :class:`abipy.tools.tensors.Stress` .. |DielectricTensor| replace:: :class:`abipy.tools.tensors.DielectricTensor` @@ -124,6 +137,7 @@ .. |PhononDos| replace:: :class:`abipy.dfpt.phonons.PhononDos` .. |PhononBandsPlotter| replace:: :class:`abipy.dfpt.phonons.PhononBandsPlotter` .. |PhononDosPlotter| replace:: :class:`abipy.dfpt.phonons.PhononDosPlotter` +.. |PhononWork| replace:: :class:`abipy.flowtk.works.PhononWork` .. |MsqDos| replace:: :class:`abipy.dfpt.msqdos.MsqDos` .. |Pseudo| replace:: :class:`pymatgen.io.abinit.pseudos.Pseudo` .. |PseudoTable| replace:: :class:`pymatgen.io.abinit.pseudos.PseudoTable` @@ -138,6 +152,8 @@ .. |pandas-DataFrame| replace:: :class:`pandas.DataFrame` .. |pandas-DataFrames| replace:: :class:`pandas.DataFrame` .. |numpy-array| replace:: :class:`numpy.ndarray` +.. |plotly.graph_objects.Figure| replace:: :class:`plotly.graph_objects.Figure` +.. |plotly-Figure| replace:: :class:`plotly.graph_objects.Figure` .. Badges .. |pypi-version| image:: https://badge.fury.io/py/abipy.svg @@ -154,7 +170,7 @@ .. |download-with-anaconda| image:: https://anaconda.org/abinit/abipy/badges/installer/conda.svg :alt: Download with Anaconda - :target: https://conda.anaconda.org/abinit + :target: https://anaconda.org/conda-forge/abinit .. |abipy-license| image:: https://img.shields.io/badge/license-GPL-blue.svg :alt: AbiPy license diff --git a/docs/postprocessing_howto.rst b/docs/postprocessing_howto.rst index 1255a64c4..5a38a8cc8 100644 --- a/docs/postprocessing_howto.rst +++ b/docs/postprocessing_howto.rst @@ -4,28 +4,33 @@ Post-processing How-To *********************** -This is a list of Frequently Asked Questions about the usage of the AbiPy scripts. +This is a list of FAQs about the usage of the AbiPy scripts. Feel free to suggest new entries! .. contents:: :backlinks: top -.. important:: - The AbiPy scripts detect the file type by looking at the file extension to so don't change it. +Preliminary considerations +--------------------------- + +The AbiPy scripts detect the file type by looking at the file extension +so **don't change the file extension**. +Also, remember that it is possible to get the documentation by just adding +the ``--help`` option to the command line. +For example: + +.. code-block:: shell + + abistruct.py --help - Also, remember that it is possible to get the documentation - by just adding ``--help`` after the scripts name. +gives the documentation and usage examples for the abistruct.py_ script while: - For example:: +.. code-block:: shell - abistruct.py --help - - gives the documentation and usage examples for the ``abistruct.py`` script while:: + abistruct.py COMMAND --help - abistruct.py COMMAND --help - - prints the documentation for ``COMMAND`` and the options supported by ``COMMAND``. +prints the documentation and the options supported by ``COMMAND`` Get information about a generic ``FILE`` @@ -33,7 +38,7 @@ Get information about a generic ``FILE`` Use:: - abiopen.py FILE --print + abiopen.py FILE --print to print information about a file inside the terminal or @@ -41,7 +46,7 @@ to print information about a file inside the terminal or to generate multiple matplotlib figures depending on FILE. -Use ``--verbose`` or ``-v`` to increase verbosity level. +Use ``--verbose`` or ``-v`` to increase verbosity level. The option can be can be supplied multiple times e.g. ``-vv``. Get all file extensions supported by ``abiopen.py`` @@ -54,7 +59,7 @@ Use:: .. command-output:: abiopen.py --help -Convert the structure stored in ``FILE`` to a different format +Convert the structure stored in ``FILE`` to a different format -------------------------------------------------------------- Use:: @@ -64,7 +69,7 @@ Use:: to read the structure from ``FILE`` and generate a CIF_ file (default behaviour). The majority of the netcdf_ files produced by Abinit contain structural information -so this command can be used with netcdf output files as well as Abinit input/output +so this command can be used with netcdf output files as well as Abinit input/output files and all the other formats supported by pymatgen e.g. POSCAR files. Other formats can be specified with the ``-f`` option. For example:: @@ -92,13 +97,13 @@ First of all, one can use:: to print the crystalline structure and find the space group with the spglib_ library. -If the structure looks good, use the :ref:`abinp.py` script with the ``validate`` command as in:: +If the structure looks good, use the abinp.py_ script with the ``validate`` command as in:: + + abinp.py validate run.abi - abinp.py validate run.abi - to validate the input file with Abinit (requires ``manager.yml`` and, obviously, Abinit). -The script provides other options to invoke Abinit +The script provides other options to invoke Abinit to get space group information, the list of k-points in the IBZ. the list of atomic perturbations for phonons or the list of autoparal configurations. See ``abinp.py --help`` for further info. @@ -138,8 +143,8 @@ A similar interface is also available via:: Get a quick look to a file -------------------------- -The :ref:`abiview.py` script is especially designed for this task. -The syntax is ``abiview.py COMMAND FILE`` where ``COMMAND`` is either +The abiview.py_ script is especially designed for this task. +The syntax is ``abiview.py COMMAND FILE`` where ``COMMAND`` is either the Abinit file extension (without ``.nc``, if any) or the AbiPy object we want to visualize. To get a quick look at the DDB file, use:: @@ -152,9 +157,9 @@ If ``FILE`` contains electronic band energies, use e.g.:: abiview.py ebands out_GSR.nc -to plot the KS eigenvalues (the same command works for other files such as ``WFK.nc``, ``DEN.nc`` etc. +to plot the KS eigenvalues (the same command works for other files such as ``WFK.nc``, ``DEN.nc`` etc. -Note that :ref:`abiview.py` uses a predefined logic to visualize the data. +Note that abiview.py_ uses a predefined logic to visualize the data. There are options to tune some parameters and/or export data in different formats but exposing the AbiPy API from the command line is not easy. @@ -174,15 +179,15 @@ Visualize a structure --------------------- The visualization of the structure is delegated to external graphical applications -that must be installed on your machine. -AbiPy will extract the structure from ``FILE``, convert it to one of the formats +that must be installed on your machine. +AbiPy will extract the structure from ``FILE``, convert it to one of the formats supported by the graphical application and finally invoke the executable. -If you have vesta_ installed in one of the standard +If you have vesta_ installed in one of the standard locations of your machine, you can simply execute:: abistruct.py visualize FILE -inside the terminal. +inside the terminal. Other applications can be specified with the ``--application`` option. At present, AbiPy supports vesta_, ovito_, xcrysden_, avogadro_, and v_sim_. @@ -246,7 +251,7 @@ with Abinit and a tolerance larger that the default value:: abistruct.py abispg problematic.cif --tolsym=1e-6 -Hopefully, the code will detect the correct spacegroup, will re-symmetrize +Hopefully, the code will detect the correct spacegroup, will re-symmetrize the initial lattice vectors and atomic positions and print the new symmetrized structure to terminal. @@ -282,7 +287,7 @@ Use:: abistruct.py mp_search LiF -to search on the `materials project`_ database for structures corresponding to a +to search on the `materials project`_ database for structures corresponding to a chemical system or formula e.g. ``Fe2O3`` or ``Li-Fe-O`` or ``Ir-O-*`` for wildcard pattern matching. @@ -309,7 +314,7 @@ The script prints the results to terminal in tabular form: The script will try to connect to the materials project server. You need a ``~/.pmgrc.yaml`` configuration file inside your home directory with the authentication token **PMG_MAPI_KEY**. - For further info please refer to the + For further info please refer to the `pymatgen documentation `_ The script provides other commands to get (experimental) structures from the COD_ database, @@ -321,7 +326,7 @@ Compare my structure with the Materials Project database Let's assume we have performed a structural relaxation and we want to compare our results with the Materials Project data. -One can use the :ref:`abicomp.py` structure to extract the structure from the HIST.nc_ +One can use the abicomp.py_ structure to extract the structure from the HIST.nc_ file and compare the data with the database:: abicomp.py mp_structure ../abipy/data/refs/sic_relax_HIST.nc @@ -365,23 +370,23 @@ to plot the SCF iterations or the steps of the structural relaxations or the DFP (depending on the content of run.abo). Note that one can also use:: - + abiview.py log run.log to print the warnings/comments/errors reported in the Abinit log file ``run.log``. -Export bands to xmgrace format +Export bands to xmgrace format ------------------------------ Both |ElectronBands| and |PhononBands| provide a ``to_xmgrace`` method to produce xmgrace_ files. -To export the data to xmgrace, use :ref:`abiview.py` with the ``--xmgrace`` option. +To export the data to xmgrace, use abiview.py_ with the ``--xmgrace`` option. For electrons, use:: abiview.py ebands out_GSR.nc --xmgrace and:: - abiview.py phbands out_PHBST.nc -xmgrace + abiview.py phbands out_PHBST.nc -xmgrace for phonons. @@ -402,7 +407,7 @@ to visualize the Fermi surface with xcrysden_ .. code-block:: ipython - abifile.ebands.to_bxsf("mgb2.bxsf") + abifile.ebands.to_bxsf("mgb2.bxsf") .. important:: @@ -411,23 +416,23 @@ to visualize the Fermi surface with xcrysden_ Visualize phonon displacements ------------------------------ -AbiPy is interfaced with the phononwebsite_ project +AbiPy is interfaced with the phononwebsite_ project If you have already installed the python package from `github `_ it's possbile to export the ``PHBST.nc`` to JSON and then load the file via the web-interface. -Alternatively, it's possible to automate the entire procedure with the :ref:`abiview.py` script. +Alternatively, it's possible to automate the entire procedure with the abiview.py_ script. Use:: abiview.py phbands out_PHBST.nc -web -to start a local web server and open the HTML page inside the default browser +to start a local web server and open the HTML page inside the default browser (the browser can be changed with the ``--browser`` option). It is also possible to visualize the phonon modes starting directly from a DDB_ file with:: abiview.py ddb -web -In this case, AbiPy will invoke anaddb to produce the ``PHBST.nc`` file on an automatically +In this case, AbiPy will invoke anaddb to produce the ``PHBST.nc`` file on an automatically generated q-path and then start the web server. Visualize the results of a structural relaxation @@ -437,10 +442,10 @@ The quickest way is to use:: abiview hist out_HIST.nc -to plot the results with matplotlib or:: +to plot the results with matplotlib or:: abiopen.py out_HIST.nc -p - + to print the most important results to terminal. Note that it's possible to generate a ``XDATCAR`` file with:: @@ -479,8 +484,8 @@ the AbiPy scripts are quite handy for a quick analysis of the results. Compare multiple files ---------------------- -The :ref:`abicomp.py` script is explicitly designed for this kind of task. -It operates on multiple files (usually files with the same extension) and +The abicomp.py_ script is explicitly designed for this kind of task. +It operates on multiple files (usually files with the same extension) and either produces matplotlib_ plots or creates AbiPy robots providing methods to analyze the results, perform convergence studies and build pandas DataFrames_. @@ -505,10 +510,10 @@ Remember that it is possible to use the shell syntax ``*_GSR.nc`` to select all If you have nested directories, use unix ``find`` to scan the directory tree for files matching a given pattern For example:: - abicomp.py ebands `find . -name *_GSR.nc` + abicomp.py ebands `find . -name *_GSR.nc` finds all ``GSR.nc`` files contained withing the current working directory. -The output of ``find`` is then passed to the :ref:`abicomp.py` script. +The output of ``find`` is then passed to the abicomp.py_ script. .. note:: @@ -518,8 +523,8 @@ The output of ``find`` is then passed to the :ref:`abicomp.py` script. Profile the scripts ------------------- -All AbiPy script can be executed in profile mode by just prepending the ``prof`` keyword -to the command line arguments. +All AbiPy script can be executed in profile mode by just prepending the ``prof`` keyword +to the command line arguments. This option could be useful if the script seems to be slow and you need to understand what's happening. Use:: @@ -532,10 +537,10 @@ or:: if the script requires a ``COMMAND`` argument. -Get the description of a variable +Get the description of a variable --------------------------------- -The :ref:`abidoc.py` script provides a simplified interface to the Abinit documentation. +The abidoc.py_ script provides a simplified interface to the Abinit documentation. Use:: @@ -553,7 +558,7 @@ Avoid transfering files from the cluster to localhost just to use matplotlib ---------------------------------------------------------------------------- Use `SSHFS `_ -to mount the remote file system over SSH. +to mount the remote file system over SSH. Now one can execute the AbiPy scripts in a terminal running on the local machine. to open/visualize the files stored on the cluster. diff --git a/docs/refs.bib b/docs/refs.bib deleted file mode 100644 index ea0746566..000000000 --- a/docs/refs.bib +++ /dev/null @@ -1,369 +0,0 @@ -@article{Gonze2016, - author = {Gonze, X. and Jollet, F. and Abreu Araujo, F. and Adams, D. and Amadon, B. and Applencourt, T. and Audouze, C. and Beuken, J.-M. and Bieder, J. and Bokhanchuk, A. and Bousquet, E. and Bruneval, F. and Caliste, D. and Côté, M. and Dahm, F. and Da Pieve, F. and Delaveau, M. and Di Gennaro, M. and Dorado, B. and Espejo, C. and Geneste, G. and Genovese, L. and Gerossier, A. and Giantomassi, M. and Gillet, Y. and Hamann, D.R. and He, L. and Jomard, G. and Laflamme Janssen, J. and Le Roux, S. and Levitt, A. and Lherbier, A. and Liu, F. and Lukačević, I. and Martin, A. and Martins, C. and Oliveira, M.J.T. and Poncé, S. and Pouillon, Y. and Rangel, T. and Rignanese, G.-M. and Romero, A.H. and Rousseau, B. and Rubel, O. and Shukri, A.A. and Stankovski, M. and Torrent, M. and Van Setten, M.J. and Van Troeye, B. and Verstraete, M.J. and Waroquiers, D. and Wiktor, J. and Xu, B. and Zhou, A. and Zwanziger, J.W.}, - doi = {10.1016/j.cpc.2016.04.003}, - pages = {106-131}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.cpc.2016.04.003}, - volume = {205}, - journal = {Computer Physics Communications}, - publisher = {Elsevier BV}, - title = {Recent developments in the {ABINIT} software package}, - issn = {0010-4655}, - year = {2016}, - month = aug, -} -@article{Setyawan2010, - author = {Setyawan, Wahyu and Curtarolo, Stefano}, - doi = {10.1016/j.commatsci.2010.05.010}, - number = {2}, - pages = {299-312}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.commatsci.2010.05.010}, - volume = {49}, - journal = {Computational Materials Science}, - publisher = {Elsevier BV}, - title = {High-throughput electronic band structure calculations: {Challenges} and tools}, - issn = {0927-0256}, - year = {2010}, - month = aug, -} -@article{Ong2013, - author = {Ong, Shyue Ping and Richards, William Davidson and Jain, Anubhav and Hautier, Geoffroy and Kocher, Michael and Cholia, Shreyas and Gunter, Dan and Chevrier, Vincent L. and Persson, Kristin A. and Ceder, Gerbrand}, - doi = {10.1016/j.commatsci.2012.10.028}, - pages = {314-319}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.commatsci.2012.10.028}, - volume = {68}, - journal = {Computational Materials Science}, - publisher = {Elsevier BV}, - title = {Python Materials Genomics (pymatgen): {A} robust, open-source python library for materials analysis}, - issn = {0927-0256}, - year = {2013}, - month = feb, -} -@article{Caliste2008, - author = {Caliste, D. and Pouillon, Y. and Verstraete, M.J. and Olevano, V. and Gonze, X.}, - doi = {10.1016/j.cpc.2008.05.007}, - number = {10}, - pages = {748-758}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.cpc.2008.05.007}, - volume = {179}, - journal = {Computer Physics Communications}, - publisher = {Elsevier BV}, - title = {Sharing electronic structure and crystallographic data with {ETSF_IO}}, - issn = {0010-4655}, - year = {2008}, - month = nov, -} -@article{Marques2012, - author = {Marques, Miguel A.L. and Oliveira, Micael J.T. and Burnus, Tobias}, - doi = {10.1016/j.cpc.2012.05.007}, - number = {10}, - pages = {2272-2281}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.cpc.2012.05.007}, - volume = {183}, - journal = {Computer Physics Communications}, - publisher = {Elsevier BV}, - title = {Libxc: {A} library of exchange and correlation functionals for density functional theory}, - issn = {0010-4655}, - year = {2012}, - month = oct, -} -@article{Ong2008, - author = {Ping Ong, Shyue and Wang, Lei and Kang, Byoungwoo and Ceder, Gerbrand}, - doi = {10.1021/cm702327g}, - number = {5}, - pages = {1798-1807}, - source = {Crossref}, - url = {http://dx.doi.org/10.1021/cm702327g}, - volume = {20}, - journal = {Chem. Mater.}, - publisher = {American Chemical Society (ACS)}, - title = {{Li−Fe−P−O2Phase} Diagram from First Principles Calculations}, - issn = {0897-4756, 1520-5002}, - year = {2008}, - month = mar, -} -@article{Ong2010, - author = {Ong, Shyue Ping and Jain, Anubhav and Hautier, Geoffroy and Kang, Byoungwoo and Ceder, Gerbrand}, - doi = {10.1016/j.elecom.2010.01.010}, - number = {3}, - pages = {427-430}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.elecom.2010.01.010}, - volume = {12}, - journal = {Electrochemistry Communications}, - publisher = {Elsevier BV}, - title = {Thermal stabilities of delithiated olivine {MPO4} {(M=Fe,} Mn) cathodes investigated using first principles calculations}, - issn = {1388-2481}, - year = {2010}, - month = mar, -} -@article{Jain2013, - author = {Jain, Anubhav and Ong, Shyue Ping and Hautier, Geoffroy and Chen, Wei and Richards, William Davidson and Dacek, Stephen and Cholia, Shreyas and Gunter, Dan and Skinner, David and Ceder, Gerbrand and Persson, Kristin A.}, - doi = {10.1063/1.4812323}, - number = {1}, - pages = {011002}, - source = {Crossref}, - url = {http://dx.doi.org/10.1063/1.4812323}, - volume = {1}, - journal = {APL Materials}, - publisher = {AIP Publishing}, - title = {Commentary: {The} Materials Project: {A} materials genome approach to accelerating materials innovation}, - issn = {2166-532X}, - year = {2013}, - month = jul, -} -@article{Ong2015, - author = {Ong, Shyue Ping and Cholia, Shreyas and Jain, Anubhav and Brafman, Miriam and Gunter, Dan and Ceder, Gerbrand and Persson, Kristin A.}, - doi = {10.1016/j.commatsci.2014.10.037}, - pages = {209-215}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.commatsci.2014.10.037}, - volume = {97}, - journal = {Computational Materials Science}, - publisher = {Elsevier BV}, - title = {The Materials Application Programming Interface {(API):} {A} simple, flexible and efficient {API} for materials data based on {REpresentational} State Transfer {(REST)} principles}, - issn = {0927-0256}, - year = {2015}, - month = feb, -} -@article{Grazulis2011, - author = {Gražulis, Saulius and Daškevič, Adriana and Merkys, Andrius and Chateigner, Daniel and Lutterotti, Luca and Quirós, Miguel and Serebryanaya, Nadezhda R. and Moeck, Peter and Downs, Robert T. and Le Bail, Armel}, - doi = {10.1093/nar/gkr900}, - number = {D1}, - pages = {D420-D427}, - source = {Crossref}, - url = {http://dx.doi.org/10.1093/nar/gkr900}, - volume = {40}, - journal = {Nucleic Acids Research}, - publisher = {Oxford University Press (OUP)}, - title = {Crystallography Open Database {(COD):} {An} open-access collection of crystal structures and platform for world-wide collaboration}, - issn = {1362-4962, 0305-1048}, - year = {2011}, - month = nov, -} -@article{Setten2017, - author = {van Setten, M. J. and Giantomassi, M. and Gonze, X. and Rignanese, G.-M. and Hautier, G.}, - doi = {10.1103/physrevb.96.155207}, - number = {15}, - source = {Crossref}, - url = {http://dx.doi.org/10.1103/physrevb.96.155207}, - volume = {96}, - journal = {Phys. Rev. B}, - publisher = {American Physical Society (APS)}, - title = {Automation methodologies and large-scale validation for {GW} : {Towards} high-throughput {GW} calculations}, - issn = {2469-9950, 2469-9969}, - year = {2017}, - month = oct, -} -@article{Euwema1969, - author = {Euwema, R. N. and Stukel, D. J. and Collins, T. C. and Dewitt, J. S. and Shankland, D. G.}, - doi = {10.1103/physrev.178.1419}, - number = {3}, - pages = {1419-1423}, - source = {Crossref}, - url = {http://dx.doi.org/10.1103/physrev.178.1419}, - volume = {178}, - journal = {Phys. Rev.}, - publisher = {American Physical Society (APS)}, - title = {Crystalline Interpolation with Applications to {Brillouin}-Zone Averages and Energy-Band Interpolation}, - issn = {0031-899X}, - year = {1969}, - month = feb, -} -@article{Koelling1986, - author = {Koelling, D.D and Wood, J.H}, - doi = {10.1016/0021-9991(86)90261-5}, - number = {2}, - pages = {253-262}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/0021-9991(86)90261-5}, - volume = {67}, - journal = {Journal of Computational Physics}, - publisher = {Elsevier BV}, - title = {On the interpolation of eigenvalues and a resultant integration scheme}, - issn = {0021-9991}, - year = {1986}, - month = dec, -} -@article{Madsen2006, - author = {Madsen, Georg K.H. and Singh, David J.}, - doi = {10.1016/j.cpc.2006.03.007}, - number = {1}, - pages = {67-71}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.cpc.2006.03.007}, - volume = {175}, - journal = {Computer Physics Communications}, - publisher = {Elsevier BV}, - title = {{BoltzTraP.} A code for calculating band-structure dependent quantities}, - issn = {0010-4655}, - year = {2006}, - month = jul, -} -@article{Pickett1988, - author = {Pickett, Warren E. and Krakauer, Henry and Allen, Philip B.}, - doi = {10.1103/physrevb.38.2721}, - number = {4}, - pages = {2721-2726}, - source = {Crossref}, - url = {http://dx.doi.org/10.1103/physrevb.38.2721}, - volume = {38}, - journal = {Phys. Rev. B}, - publisher = {American Physical Society (APS)}, - title = {Smooth {Fourier} interpolation of periodic functions}, - issn = {0163-1829}, - year = {1988}, - month = aug, -} -@article{Giustino2017, - author = {Giustino, Feliciano}, - doi = {10.1103/revmodphys.89.015003}, - number = {1}, - source = {Crossref}, - url = {http://dx.doi.org/10.1103/revmodphys.89.015003}, - volume = {89}, - journal = {Rev. Mod. Phys.}, - publisher = {American Physical Society (APS)}, - title = {Electron-phonon interactions from first principles}, - issn = {0034-6861, 1539-0756}, - year = {2017}, - month = feb, -} -@article{Henkelman2006, - author = {Henkelman, Graeme and Arnaldsson, Andri and Jónsson, Hannes}, - doi = {10.1016/j.commatsci.2005.04.010}, - number = {3}, - pages = {354-360}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.commatsci.2005.04.010}, - volume = {36}, - journal = {Computational Materials Science}, - publisher = {Elsevier BV}, - title = {A fast and robust algorithm for Bader decomposition of charge density}, - issn = {0927-0256}, - year = {2006}, - month = jun, -} -@article{Jain2015, - author = {Jain, Anubhav and Ong, Shyue Ping and Chen, Wei and Medasani, Bharat and Qu, Xiaohui and Kocher, Michael and Brafman, Miriam and Petretto, Guido and Rignanese, Gian-Marco and Hautier, Geoffroy and Gunter, Daniel and Persson, Kristin A.}, - doi = {10.1002/cpe.3505}, - number = {17}, - pages = {5037-5059}, - source = {Crossref}, - url = {http://dx.doi.org/10.1002/cpe.3505}, - volume = {27}, - journal = {Concurrency Computat.: Pract. Exper.}, - publisher = {Wiley-Blackwell}, - title = {{FireWorks:} {A} dynamic workflow system designed for high-throughput applications}, - issn = {1532-0626}, - year = {2015}, - month = may, -} -@article{Gonze1997, - author = {Gonze, Xavier and Lee, Changyol}, - doi = {10.1103/physrevb.55.10355}, - number = {16}, - pages = {10355-10368}, - source = {Crossref}, - url = {http://dx.doi.org/10.1103/physrevb.55.10355}, - volume = {55}, - journal = {Phys. Rev. B}, - publisher = {American Physical Society (APS)}, - title = {Dynamical matrices, Born effective charges, dielectric permittivity tensors, and interatomic force constants from density-functional perturbation theory}, - issn = {0163-1829, 1095-3795}, - year = {1997}, - month = apr, -} - -@article{Maintz2016, - author = {Maintz, Stefan and Deringer, Volker L. and Tchougréeff, Andrei L. and Dronskowski, Richard}, - doi = {10.1002/jcc.24300}, - number = {11}, - pages = {1030-1035}, - source = {Crossref}, - url = {http://dx.doi.org/10.1002/jcc.24300}, - volume = {37}, - journal = {J. Comput. Chem.}, - publisher = {Wiley}, - title = {{LOBSTER:} {A} tool to extract chemical bonding from plane-wave based {DFT}}, - subtitle = {Tool to Extract Chemical Bonding}, - issn = {0192-8651}, - year = {2016}, - month = feb, -} - -@article{Mostofi2014, - author = {Mostofi, Arash A. and Yates, Jonathan R. and Pizzi, Giovanni and Lee, Young-Su and Souza, Ivo and Vanderbilt, David and Marzari, Nicola}, - doi = {10.1016/j.cpc.2014.05.003}, - number = {8}, - pages = {2309-2310}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.cpc.2014.05.003}, - volume = {185}, - journal = {Computer Physics Communications}, - publisher = {Elsevier BV}, - title = {An updated version of wannier90: {A} tool for obtaining maximally-localised Wannier functions}, - issn = {0010-4655}, - year = {2014}, - month = aug, -} - -@article{Setten2018, - author = {van Setten, M.J. and Giantomassi, M. and Bousquet, E. and Verstraete, M.J. and Hamann, D.R. and Gonze, X. and Rignanese, G.-M.}, - doi = {10.1016/j.cpc.2018.01.012}, - pages = {39-54}, - source = {Crossref}, - url = {http://dx.doi.org/10.1016/j.cpc.2018.01.012}, - volume = {226}, - journal = {Comput. Phys. Commun.}, - publisher = {Elsevier BV}, - title = {The {PseudoDojo}: {Training} and grading a 85 element optimized norm-conserving pseudopotential table}, - issn = {0010-4655}, - year = {2018}, - month = may, -} - -@article{Lee1995, - title = {Ab initio calculation of the thermodynamic properties and atomic temperature factors of ${\mathrm{SiO}}_{2}$ \ensuremath{\alpha}-quartz and stishovite}, - author = {Lee, Changyol and Gonze, Xavier}, - journal = {Phys. Rev. B}, - volume = {51}, - issue = {13}, - pages = {8610--8613}, - numpages = {0}, - year = {1995}, - month = {Apr}, - publisher = {American Physical Society}, - doi = {10.1103/PhysRevB.51.8610}, - url = {https://link.aps.org/doi/10.1103/PhysRevB.51.8610} -} - -@article{Trueblood1996, -author = "Trueblood, K. N. and B{\"{u}}rgi, H.-B. and Burzlaff, H. and Dunitz, J. D. and Gramaccioli, C. M. and Schulz, H. H. and Shmueli, U. and Abrahams, S. C.", -title = "{Atomic Dispacement Parameter Nomenclature. Report of a Subcommittee on Atomic Displacement Parameter Nomenclature}", -journal = "Acta Crystallographica Section A", -year = "1996", -volume = "52", -number = "5", -pages = "770--781", -month = "Sep", -doi = {10.1107/S0108767396005697}, -url = {https://doi.org/10.1107/S0108767396005697}, -} - -@article{Grosse-Kunstleve2002, -author = "Grosse-Kunstleve, R. W. and Adams, P. D.", -title = "{On the handling of atomic anisotropic displacement parameters}", -journal = "Journal of Applied Crystallography", -year = "2002", -volume = "35", -number = "4", -pages = "477--480", -month = "Aug", -doi = {10.1107/S0021889802008580}, -url = {https://doi.org/10.1107/S0021889802008580}, -} diff --git a/docs/requirements.txt b/docs/requirements.txt index dea183d9d..f5a05cae4 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -4,6 +4,17 @@ sphinxcontrib-napoleon sphinxcontrib-programoutput sphinx-gallery sphinx-argparse -sphinx_bootstrap_theme +sphinx_rtd_theme +#sphinxcontrib-bibtex<2.0.0 sphinxcontrib-bibtex jupyter-sphinx +#graphviz or python-graphviz if conda +graphviz +scikit-image + +# For the time being: +# solved the issue by matching jinja2 version and nb convert as follows +#jinja2==3.0.3 +#nbconvert==6.4.4 + +#See https://github.com/d2l-ai/d2l-book/issues/46 diff --git a/docs/scripts/abips.rst b/docs/scripts/abips.rst new file mode 100644 index 000000000..3c6b25e00 --- /dev/null +++ b/docs/scripts/abips.rst @@ -0,0 +1,11 @@ +.. _abips.py: + +^^^^^^^^^^^^ +``abips.py`` +^^^^^^^^^^^^ + +Script to download and install pseudopotential tables from the web. + +.. argparse:: + :ref: abipy.scripts.abips.get_parser + :prog: abips.py diff --git a/docs/scripts/index.rst b/docs/scripts/index.rst index 4857f231b..00650a455 100644 --- a/docs/scripts/index.rst +++ b/docs/scripts/index.rst @@ -6,17 +6,37 @@ Scripts ======= -This page documents the usage of the AbiPy scripts, +This page documents the usage of the AbiPy scripts, the subcommands available and the options supported by each subcommand. +To analyze the cystalline structure stored in FILE, use ``abistruct.py``. +To operate on a **single** FILE, use ``abiopen.py``. +To compare **multiple** FILES of the same type, use the ``abicomp.py`` script. +If the analysis requires the execution of additional logic +(e.g. the computation of phonons with anaddb from the DDB file), use ``abiview.py``. +To generate a minimalist input file for Abinit, use ``abinp.py``. +For a command line interface to the Abinit documentation, use ``abidoc.py``. + +Finally, use ``abicheck.py`` to validate your AbiPy + Abinit installation **before running** AbiPy flows +and use ``abirun.py`` to launch Abinit calculations. + +.. important:: + + Each script provides a ``--help`` option that documents all the commands available + and provides a list of typical examples. + To list of the options supported by **COMMAND** use e.g. `abicomp.py COMMAND --help`. + + .. toctree:: :maxdepth: 3 - abicheck.rst + abistruct.rst + abiopen.rst abicomp.rst - abidoc.rst + abiview.rst abinp.rst - abiopen.rst + abidoc.rst + abicheck.rst abirun.rst - abistruct.rst - abiview.rst + abips.rst + oncv.rst diff --git a/docs/scripts/oncv.rst b/docs/scripts/oncv.rst new file mode 100644 index 000000000..04b7eff85 --- /dev/null +++ b/docs/scripts/oncv.rst @@ -0,0 +1,11 @@ +.. _oncv.py: + +^^^^^^^^^^^ +``oncv.py`` +^^^^^^^^^^^ + +Script to generate/analyze/plot ONCVPSP pseudopotentials. + +.. argparse:: + :ref: abipy.scripts.oncv.get_parser + :prog: abips.py diff --git a/docs/sg_execution_times.rst b/docs/sg_execution_times.rst new file mode 100644 index 000000000..fdd6f54d0 --- /dev/null +++ b/docs/sg_execution_times.rst @@ -0,0 +1,361 @@ + +:orphan: + +.. _sphx_glr_sg_execution_times: + + +Computation times +================= +**01:25.939** total execution time for 109 files **from all galleries**: + +.. container:: + + .. raw:: html + + + + + + + + .. list-table:: + :header-rows: 1 + :class: table table-striped sg-datatable + + * - Example + - Time + - Mem (MB) + * - :ref:`sphx_glr_gallery_plot_qha_vs_qmesh.py` (``../abipy/examples/plot/plot_qha_vs_qmesh.py``) + - 00:10.151 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ddb_asr.py` (``../abipy/examples/plot/plot_ddb_asr.py``) + - 00:04.590 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phonons_msqd.py` (``../abipy/examples/plot/plot_phonons_msqd.py``) + - 00:03.910 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_mgb2_phonons_nkpt_tsmear.py` (``../abipy/examples/flows/run_mgb2_phonons_nkpt_tsmear.py``) + - 00:03.448 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_lumi_1D_nv_center.py` (``../abipy/examples/plot/plot_lumi_1D_nv_center.py``) + - 00:02.743 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_gkq.py` (``../abipy/examples/flows/run_gkq.py``) + - 00:02.557 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phbands_nkpt_tsmear.py` (``../abipy/examples/plot/plot_phbands_nkpt_tsmear.py``) + - 00:02.362 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_eph_mob.py` (``../abipy/examples/flows/run_eph_mob.py``) + - 00:02.255 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_eph_pot.py` (``../abipy/examples/flows/run_eph_pot.py``) + - 00:02.025 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_efatbands_spin.py` (``../abipy/examples/plot/plot_efatbands_spin.py``) + - 00:01.959 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_phonons.py` (``../abipy/examples/flows/run_phonons.py``) + - 00:01.858 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_phonons_wkq.py` (``../abipy/examples/flows/run_phonons_wkq.py``) + - 00:01.842 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_mdf.py` (``../abipy/examples/plot/plot_mdf.py``) + - 00:01.758 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_a2f.py` (``../abipy/examples/plot/plot_a2f.py``) + - 00:01.366 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_efatbands.py` (``../abipy/examples/plot/plot_efatbands.py``) + - 00:01.330 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_eph_al.py` (``../abipy/examples/flows/run_eph_al.py``) + - 00:01.303 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_lumi_Eu_doped_SLA.py` (``../abipy/examples/flows/run_lumi_Eu_doped_SLA.py``) + - 00:01.218 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_conducwork.py` (``../abipy/examples/flows/run_conducwork.py``) + - 00:01.067 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phbands_grid.py` (``../abipy/examples/plot/plot_phbands_grid.py``) + - 00:01.059 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_becs_and_epsilon_vs_kpts.py` (``../abipy/examples/flows/run_becs_and_epsilon_vs_kpts.py``) + - 00:00.979 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_phonons_with_quad.py` (``../abipy/examples/flows/run_phonons_with_quad.py``) + - 00:00.966 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_flexoelectric.py` (``../abipy/examples/flows/run_flexoelectric.py``) + - 00:00.869 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_raman_optic.py` (``../abipy/examples/flows/run_raman_optic.py``) + - 00:00.827 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_qpbands_with_interpolation.py` (``../abipy/examples/plot/plot_qpbands_with_interpolation.py``) + - 00:00.814 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_optic.py` (``../abipy/examples/flows/run_optic.py``) + - 00:00.793 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_elastic.py` (``../abipy/examples/flows/run_elastic.py``) + - 00:00.773 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ebands_spin.py` (``../abipy/examples/plot/plot_ebands_spin.py``) + - 00:00.738 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_speed_of_sound.py` (``../abipy/examples/plot/plot_speed_of_sound.py``) + - 00:00.717 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_nonlinear.py` (``../abipy/examples/flows/run_nonlinear.py``) + - 00:00.713 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ebands_grid.py` (``../abipy/examples/plot/plot_ebands_grid.py``) + - 00:00.703 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_lumi_1D_Eu_doped.py` (``../abipy/examples/plot/plot_lumi_1D_Eu_doped.py``) + - 00:00.689 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_relax_vs_kpts_tsmear.py` (``../abipy/examples/flows/run_relax_vs_kpts_tsmear.py``) + - 00:00.676 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_gwconv_ecuteps.py` (``../abipy/examples/flows/run_gwconv_ecuteps.py``) + - 00:00.665 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_qha.py` (``../abipy/examples/plot/plot_qha.py``) + - 00:00.663 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_screening.py` (``../abipy/examples/flows/run_screening.py``) + - 00:00.649 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_lumi_NV_center.py` (``../abipy/examples/flows/run_lumi_NV_center.py``) + - 00:00.640 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phonons_infrared.py` (``../abipy/examples/plot/plot_phonons_infrared.py``) + - 00:00.621 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_raman_bse.py` (``../abipy/examples/flows/run_raman_bse.py``) + - 00:00.616 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_phfrozen_ebands.py` (``../abipy/examples/flows/run_phfrozen_ebands.py``) + - 00:00.606 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_frohlich_zpr.py` (``../abipy/examples/flows/run_frohlich_zpr.py``) + - 00:00.594 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_si_g0w0.py` (``../abipy/examples/flows/run_si_g0w0.py``) + - 00:00.591 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_qpbands_with_scissor.py` (``../abipy/examples/plot/plot_qpbands_with_scissor.py``) + - 00:00.589 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ifcs.py` (``../abipy/examples/plot/plot_ifcs.py``) + - 00:00.582 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_effmass_dfpt.py` (``../abipy/examples/flows/run_effmass_dfpt.py``) + - 00:00.576 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_gruneisen.py` (``../abipy/examples/plot/plot_gruneisen.py``) + - 00:00.572 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_eos.py` (``../abipy/examples/flows/run_eos.py``) + - 00:00.545 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_efatbands_lm.py` (``../abipy/examples/plot/plot_efatbands_lm.py``) + - 00:00.531 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_ldaus.py` (``../abipy/examples/flows/run_ldaus.py``) + - 00:00.520 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_qps.py` (``../abipy/examples/plot/plot_qps.py``) + - 00:00.496 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_relax_vs_kpts.py` (``../abipy/examples/flows/run_relax_vs_kpts.py``) + - 00:00.487 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_fe_ebands.py` (``../abipy/examples/flows/run_fe_ebands.py``) + - 00:00.485 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_frohlich_zpr_from_ddb.py` (``../abipy/examples/flows/run_frohlich_zpr_from_ddb.py``) + - 00:00.482 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phonon_fatbands.py` (``../abipy/examples/plot/plot_phonon_fatbands.py``) + - 00:00.481 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_mgb2_edoses.py` (``../abipy/examples/flows/run_mgb2_edoses.py``) + - 00:00.481 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_gs_vs_kpts.py` (``../abipy/examples/flows/run_gs_vs_kpts.py``) + - 00:00.466 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_ht_si_g0w0ppm.py` (``../abipy/examples/flows/run_ht_si_g0w0ppm.py``) + - 00:00.466 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_effmass_finitediff.py` (``../abipy/examples/flows/run_effmass_finitediff.py``) + - 00:00.464 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_ht_si_ebands.py` (``../abipy/examples/flows/run_ht_si_ebands.py``) + - 00:00.454 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_relax_and_ebands.py` (``../abipy/examples/flows/run_relax_and_ebands.py``) + - 00:00.452 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_ht_si_bsemdf.py` (``../abipy/examples/flows/run_ht_si_bsemdf.py``) + - 00:00.432 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_si_ebands.py` (``../abipy/examples/flows/run_si_ebands.py``) + - 00:00.427 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_gwr_g0w0.py` (``../abipy/examples/flows/run_gwr_g0w0.py``) + - 00:00.421 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_relax.py` (``../abipy/examples/flows/run_relax.py``) + - 00:00.417 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_gaas_ebands_soc.py` (``../abipy/examples/flows/run_gaas_ebands_soc.py``) + - 00:00.415 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_qpconvergence.py` (``../abipy/examples/plot/plot_qpconvergence.py``) + - 00:00.413 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_phonopy_si.py` (``../abipy/examples/flows/run_phonopy_si.py``) + - 00:00.412 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_from_files.py` (``../abipy/examples/flows/run_from_files.py``) + - 00:00.383 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_optic.py` (``../abipy/examples/plot/plot_optic.py``) + - 00:00.382 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_kpath_from_ibz.py` (``../abipy/examples/plot/plot_kpath_from_ibz.py``) + - 00:00.372 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_sic_relax.py` (``../abipy/examples/flows/run_sic_relax.py``) + - 00:00.371 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ebands.py` (``../abipy/examples/plot/plot_ebands.py``) + - 00:00.364 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_edos_vs_broad.py` (``../abipy/examples/plot/plot_edos_vs_broad.py``) + - 00:00.336 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phbands_and_dos.py` (``../abipy/examples/plot/plot_phbands_and_dos.py``) + - 00:00.333 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_scqpgw.py` (``../abipy/examples/plot/plot_scqpgw.py``) + - 00:00.330 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_multiple_mdf.py` (``../abipy/examples/plot/plot_multiple_mdf.py``) + - 00:00.322 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_wannier90_abiwan.py` (``../abipy/examples/plot/plot_wannier90_abiwan.py``) + - 00:00.312 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_convergence.py` (``../abipy/examples/plot/plot_convergence.py``) + - 00:00.293 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ejdos.py` (``../abipy/examples/plot/plot_ejdos.py``) + - 00:00.283 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_multiple_hist.py` (``../abipy/examples/plot/plot_multiple_hist.py``) + - 00:00.272 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_den.py` (``../abipy/examples/plot/plot_den.py``) + - 00:00.267 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_scr_matrix.py` (``../abipy/examples/plot/plot_scr_matrix.py``) + - 00:00.263 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_dfpt_cycle.py` (``../abipy/examples/plot/plot_dfpt_cycle.py``) + - 00:00.258 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ebands_edos.py` (``../abipy/examples/plot/plot_ebands_edos.py``) + - 00:00.254 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phonons.py` (``../abipy/examples/plot/plot_phonons.py``) + - 00:00.249 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_wfk.py` (``../abipy/examples/plot/plot_wfk.py``) + - 00:00.243 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ebands_boxplot.py` (``../abipy/examples/plot/plot_ebands_boxplot.py``) + - 00:00.240 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_lobster_files.py` (``../abipy/examples/plot/plot_lobster_files.py``) + - 00:00.220 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phonons_lo_to.py` (``../abipy/examples/plot/plot_phonons_lo_to.py``) + - 00:00.213 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_lobster_cohp.py` (``../abipy/examples/plot/plot_lobster_cohp.py``) + - 00:00.210 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_hist.py` (``../abipy/examples/plot/plot_hist.py``) + - 00:00.207 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_ebands_scatter3d.py` (``../abipy/examples/plot/plot_ebands_scatter3d.py``) + - 00:00.201 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_potentials.py` (``../abipy/examples/plot/plot_potentials.py``) + - 00:00.186 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phonon_pjdos.py` (``../abipy/examples/plot/plot_phonon_pjdos.py``) + - 00:00.183 + - 0.0 + * - :ref:`sphx_glr_gallery_plotly_phbands_and_dos.py` (``../abipy/examples/plot/plotly_phbands_and_dos.py``) + - 00:00.164 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_gw_spectral_functions.py` (``../abipy/examples/plot/plot_gw_spectral_functions.py``) + - 00:00.158 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_scr.py` (``../abipy/examples/plot/plot_scr.py``) + - 00:00.138 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_effmass.py` (``../abipy/examples/plot/plot_effmass.py``) + - 00:00.137 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_wannier90_wout.py` (``../abipy/examples/plot/plot_wannier90_wout.py``) + - 00:00.136 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_fold2bloch.py` (``../abipy/examples/plot/plot_fold2bloch.py``) + - 00:00.130 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_lruj.py` (``../abipy/examples/plot/plot_lruj.py``) + - 00:00.109 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_bz.py` (``../abipy/examples/plot/plot_bz.py``) + - 00:00.103 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_gscycle.py` (``../abipy/examples/plot/plot_gscycle.py``) + - 00:00.095 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_edos.py` (``../abipy/examples/plot/plot_edos.py``) + - 00:00.092 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phthermo.py` (``../abipy/examples/plot/plot_phthermo.py``) + - 00:00.090 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_edos_grid.py` (``../abipy/examples/plot/plot_edos_grid.py``) + - 00:00.075 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_phdos_grid.py` (``../abipy/examples/plot/plot_phdos_grid.py``) + - 00:00.074 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_xrd.py` (``../abipy/examples/plot/plot_xrd.py``) + - 00:00.046 + - 0.0 + * - :ref:`sphx_glr_gallery_plot_funcs.py` (``../abipy/examples/plot/plot_funcs.py``) + - 00:00.042 + - 0.0 + * - :ref:`sphx_glr_flow_gallery_run_gruneisen_abinit.py` (``../abipy/examples/flows/run_gruneisen_abinit.py``) + - 00:00.035 + - 0.0 diff --git a/docs/workflows/manager_examples.rst b/docs/workflows/manager_examples.rst index 62b43876f..04907cf48 100644 --- a/docs/workflows/manager_examples.rst +++ b/docs/workflows/manager_examples.rst @@ -19,7 +19,7 @@ Dragon1 num_nodes: 26 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 112Gb + mem_per_node: 112GB job: &job mpi_runner: mpirun @@ -27,7 +27,6 @@ Dragon1 PATH: "$HOME/git_repos/abinit/_build_dragon1-intel-mpich-mkl.ac/src/98_main:$PATH" modules: - mpich/3.0.4/intel-13.0.0 - pre_run: "ulimit -s unlimited" # queues qadapters: @@ -46,6 +45,34 @@ Dragon1 job: *job +Gh +-- + +.. code-block:: yaml + + + # Manager used for github actions. + qadapters: + - + priority: 1 + queue: + qname: github + qtype: shell + job: + mpi_runner: mpirun + pre_run: + - conda activate abipy + limits: + min_cores: 1 + max_cores: 2 + timelimit: 0:10:0 + hardware: + num_nodes: 1 + sockets_per_node: 1 + cores_per_socket: 2 + mem_per_node: 4 GB + + Gmac ---- @@ -70,7 +97,7 @@ Gmac num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB # Optional #condition: {"$eq": {omp_threads: 2}} @@ -88,7 +115,7 @@ Hercules num_nodes: 65 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 54Gb + mem_per_node: 54GB job: &job mpi_runner: mpirun @@ -97,9 +124,6 @@ Hercules modules: - impi/5.1.3.181-iccifort-2016.3.210-GCC-5.4.0-2.26 - imkl/11.3.3.210-iimpi-2016b - # here pre_run is a string in verbatim mode (note |) - pre_run: | - ulimit -s unlimited # queues qadapters: @@ -130,19 +154,19 @@ Hmem num_nodes: 2 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 512Gb + mem_per_node: 512GB middle: &middle num_nodes: 7 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 256Gb + mem_per_node: 256GB low: &low num_nodes: 7 sockets_per_node: 4 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job mpi_runner: mpirun @@ -150,7 +174,6 @@ Hmem PATH: "$HOME/git_repos/abinit/_build_hmem_intel_openmpi-mkl.ac/src/98_main/:$PATH" modules: - openmpi/1.5.3/intel-12.0.0.084 - pre_run: "ulimit -s unlimited" # queues qadapters: @@ -199,7 +222,7 @@ Juqueen num_nodes: 128 sockets_per_node: 1 cores_per_socket: 16 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job mpi_runner: runjob @@ -245,7 +268,7 @@ Juqueen num_nodes: 1 sockets_per_node: 1 cores_per_socket: 1 - mem_per_node: 12Gb + mem_per_node: 12GB job: #mpi_runner: runjob shell_env: @@ -267,13 +290,13 @@ Jureca num_nodes: 8 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB batch: &batch num_nodes: 128 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 128Gb + mem_per_node: 128GB job: &job # mpirun is not available on jureca. @@ -286,7 +309,6 @@ Jureca PATH: $HOME/abinit/801-private/jureca_mpi/src/98_main:$PATH modules: - intel-para/2015.07 - pre_run: "ulimit -s unlimited" # queues qadapters: @@ -314,7 +336,7 @@ Lemaitre2 num_nodes: 112 sockets_per_node: 2 cores_per_socket: 6 - mem_per_node: 48Gb + mem_per_node: 48GB job: &job mpi_runner: mpirun @@ -322,7 +344,6 @@ Lemaitre2 PATH: "$HOME/git_repos/abinit/_build_lemaitre2-intel-openmpi-mkl.ac/src/98_main/:$PATH" modules: # Abinit compiled with abiconfig settings - openmpi/1.6.5/intel-13.0.1.117 - pre_run: "ulimit -s unlimited" # queues qadapters: @@ -354,7 +375,7 @@ Lemaitre3 num_nodes: 80 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 95Gb + mem_per_node: 95GB job: &job mpi_runner: mpirun @@ -363,7 +384,6 @@ Lemaitre3 modules: # Abinit compiled with abiconfig settings - intel/2017b - netCDF-Fortran/4.4.4-intel-2017b - pre_run: "ulimit -s unlimited" # queues qadapters: @@ -382,6 +402,54 @@ Lemaitre3 job: *job +Lumi +---- + +.. code-block:: yaml + + + # LUMI hardware: https://docs.lumi-supercomputer.eu/ + # For the configuration file see: + # https://github.com/abinit/abiconfig/blob/master/abiconfig/clusters/lumi_XXXX.ac + hardware: &hardware + num_nodes: 1376 + sockets_per_node: 2 + cores_per_socket: 64 + mem_per_node: 256GB + + job: &job + mpi_runner: srun + shell_runner: None + shell_env: # Use your abinit exec + PATH: "$HOME/program/abinit-9.6.2/build_gnu/src/98_main/:$PATH" + modules: # Abinit compiled with abiconfig settings + - LUMI/21.08 + - PrgEnv-gnu/8.1.0 + - cray-libsci/21.08.1.2 + - cray-mpich/8.1.8 + - cray-hdf5/1.12.0.6 + - cray-netcdf/4.7.4.6 + - cray-fftw/3.3.8.11 + + # queues + qadapters: + - priority: 1 + queue: + qtype: slurm + qname: small + qparams: + account: project_XXXXXX # Your project here + #mail_type: FAIL + #mail_user: # Othere slurm options ... + limits: + timelimit: 0-12:00:00 + min_cores: 1 + max_cores: 128 + max_num_launches: 10 + hardware: *hardware + job: *job + + Manneback --------- @@ -393,19 +461,19 @@ Manneback num_nodes: 672 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 24 Gb + mem_per_node: 24 GB ObanAMD: &ObanAMD num_nodes: 6 sockets_per_node: 4 cores_per_socket: 8 - mem_per_node: 128 Gb + mem_per_node: 128 GB ObanIntel: &ObanIntel num_nodes: 3 sockets_per_node: 4 cores_per_socket: 8 - mem_per_node: 256 Gb + mem_per_node: 256 GB # Environment, modules, and parameters used to launch jobs. job: &job @@ -455,14 +523,13 @@ Nic4 num_nodes: 120 sockets_per_node: 2 cores_per_socket: 8 - mem_per_node: 64Gb + mem_per_node: 64GB job: &job mpi_runner: "mpirun" mpi_runner_options: "--bind-to none" shell_env: PATH: "$HOME/git_repos/abinit/_build_nic4-intel-openmpi-mkl-hdf5.ac/src/98_main:$PATH" - pre_run: "ulimit -s unlimited" modules: - shared - openmpi/1.7.5/intel2013_sp1.1.106 @@ -514,7 +581,7 @@ Shell num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB Shell_nompi @@ -540,35 +607,7 @@ Shell_nompi num_nodes: 1 sockets_per_node: 1 cores_per_socket: 2 - mem_per_node: 4 Gb - - -Travis ------- - -.. code-block:: yaml - - - qadapters: - - - priority: 1 - queue: - qname: travis - qtype: shell - job: - mpi_runner: mpirun - pre_run: - - source activate abinit-environment - - ulimit -s unlimited - limits: - min_cores: 1 - max_cores: 2 - timelimit: 0:10:0 - hardware: - num_nodes: 1 - sockets_per_node: 1 - cores_per_socket: 2 - mem_per_node: 4 Gb + mem_per_node: 4 GB Ubu @@ -596,7 +635,7 @@ Ubu num_nodes: 1 sockets_per_node: 1 cores_per_socket: 24 - mem_per_node: 4 Gb + mem_per_node: 4 GB Vega @@ -610,7 +649,7 @@ Vega num_nodes: 44 sockets_per_node: 4 cores_per_socket: 16 - mem_per_node: 256Gb + mem_per_node: 256GB job: &job mpi_runner: mpirun @@ -618,7 +657,6 @@ Vega PATH: "$HOME/git_repos/abinit/_build_vega-intel-impi-mkl.ac/src/98_main/:$PATH" modules: - intel/2015a - #pre_run: "ulimit -s unlimited" # queues qadapters: @@ -647,13 +685,12 @@ Viper num_nodes: 1 sockets_per_node: 2 cores_per_socket: 4 - mem_per_node: 32Gb + mem_per_node: 32GB job: &job mpi_runner: ~/bin/mpirun.openmpi # pre_run is a string in verbatim mode (note |) pre_run: - - "ulimit -s unlimited" - "source ~/.bashrc" # queues @@ -683,13 +720,13 @@ Zenobe num_nodes: 274 sockets_per_node: 2 cores_per_socket: 6 - mem_per_node: 24 Gb + mem_per_node: 24 GB ivybridge: &ivybridge num_nodes: 342 sockets_per_node: 2 cores_per_socket: 12 - mem_per_node: 64 Gb + mem_per_node: 64 GB # Environment, modules, and parameters used to launch jobs. job: &job @@ -700,7 +737,6 @@ Zenobe - compiler/intel/composerxe/2013_sp1.1.106 - intelmpi - python/2.7 - pre_run: "ulimit -s unlimited" # List of qdapters. qadapters: diff --git a/docs/workflows/taskmanager.rst b/docs/workflows/taskmanager.rst index 0833f312e..5d75a3b63 100644 --- a/docs/workflows/taskmanager.rst +++ b/docs/workflows/taskmanager.rst @@ -26,7 +26,7 @@ environment variables, load modules with ``module load``, run MPI applications w .. TIP:: A pre-compiled sequential version of Abinit for Linux and OSx can be installed directly - from the abinit-channel_ on the anaconda cloud with:: + from the conda-forge channel with:: conda install abinit --channel abinit @@ -43,7 +43,8 @@ AbiPy obtains the information needed to create the correct ``TaskManager`` for a from the ``manager.yml`` configuration file. The file is written in YAML_ a human-readable data serialization language commonly used for configuration files (a good introduction to the YAML syntax can be found `here `_. -See also this `reference card `_) +See also this `reference card `_. +Experiment with YAML syntax using a `YAML validator `_) By default, AbiPy looks for a ``manager.yml`` file in the current working directory i.e. the directory in which you execute your script in first and then inside ``$HOME/.abinit/abipy``. @@ -147,7 +148,7 @@ Note this approach also allows you to safely use multiple versions. Copy this example and change the entries in the ``hardware`` and the ``limits`` section according to your machine, in particular make sure that ``max_cores`` is not greater than the number of physical cores available on your personal computer. -Save the file in the current working directory and run the :ref:`abicheck.py` script provided by AbiPy. +Save the file in the current working directory and run the abicheck.py_ script provided by AbiPy. If everything is configured properly, you should see something like this in the terminal. .. command-output:: abicheck.py --no-colors diff --git a/docs/zzbiblio.rst b/docs/zzbiblio.rst index 47c641911..959b22c77 100644 --- a/docs/zzbiblio.rst +++ b/docs/zzbiblio.rst @@ -6,6 +6,6 @@ Bibliography .. rubric:: References -.. bibliography:: refs.bib +.. bibliography:: abiref.bib :style: abipystyle :cited: diff --git a/pip_all.sh b/pip_all.sh new file mode 100755 index 000000000..95f05e88c --- /dev/null +++ b/pip_all.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -ev # exit on first error, print each command + +pip install -r requirements.txt +pip install -r requirements-optional.txt +pip install -r requirements-panel.txt +pip install -r requirements-tests.txt +python setup.py develop diff --git a/requirements-optional.txt b/requirements-optional.txt index 19eaaa843..ad2a3535a 100644 --- a/requirements-optional.txt +++ b/requirements-optional.txt @@ -1,20 +1,20 @@ -ipython +# List of all optional dependencies. +# This file includes other requirements-*.txt files providing libraries for specialized target +# so that we can easily select what we need + jupyter nbformat pygments ipywidgets networkx scikit-image -#graphviz or python-graphviz if conda +#python-graphviz #graphviz or python-graphviz if conda phonopy ase -param -panel -bokeh -# Unit tests -python-coveralls -pytest -pytest-cov -pytest-xdist -pytest-sugar -scripttest + +# Libraries required by AbiPy panel applications. +# -r requirements-panel.txt + +# Libraries required for running unit tests. +# -r requirements-tests.txt + diff --git a/requirements-panel.txt b/requirements-panel.txt new file mode 100644 index 000000000..25e03b088 --- /dev/null +++ b/requirements-panel.txt @@ -0,0 +1,6 @@ +# Libraries required by AbiPy panel applications. +param +panel >= 0.13.0 +bokeh +XlsxWriter # For DataFrame.to_excel() +#pymdown-extensions diff --git a/requirements-tests.txt b/requirements-tests.txt new file mode 100644 index 000000000..bd6a9a7c2 --- /dev/null +++ b/requirements-tests.txt @@ -0,0 +1,7 @@ +# Libraries required for running unit tests. +python-coveralls +pytest +pytest-cov +pytest-xdist +pytest-sugar +scripttest diff --git a/requirements.txt b/requirements.txt index bc23043bb..722e85967 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,16 +1,27 @@ +packaging monty tabulate -apscheduler==2.1.0 +apscheduler<=3.10.4 pydispatcher>=2.0.5 tqdm pyyaml>=3.11 +ruamel.yaml>=0.16.12 pandas -numpy -scipy +#numpy +numpy<2.0.0 sympy spglib -#pymatgen>=2019.10.16 -pymatgen>=2019.12.22 +pymatgen netCDF4 matplotlib seaborn +plotly +ipython +chart-studio +click +phonopy +ase +# TODO remove after https://github.com/materialsproject/emmet/issues/768 is fixed +pydantic<2.0.0 +#custodian +#python-daemon diff --git a/setup.cfg b/setup.cfg index 5a0fea9fd..cb652e22a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -10,11 +10,11 @@ force = 1 [bdist_wheel] universal=1 -[tool:pytest] -ignore=abipy/gui -addopt=--cov-config=.coveragerc --cov=abipy -v --doctest-modules abipy \ - --ignore=abipy/integration_tests --ignore=abipy/data/refs --ignore=abipy/scripts/ \ - --ignore=abipy/examples/plot --ignore=abipy/examples/flows --ignore=abipy/gui +#[tool:pytest] +#ignore=abipy/gui +#addopts=--cov-config=.coveragerc --cov=abipy -v --doctest-modules abipy \ +# --ignore=abipy/integration_tests --ignore=abipy/data/refs --ignore=abipy/scripts/ \ +# --ignore=abipy/examples/plot --ignore=abipy/examples/flows --ignore=abipy/gui #norecursedirs = scripts/post_processing _build* doxygen_docs tmp-robodoc .ipynb_checkpoints diff --git a/setup.py b/setup.py index aa42e07e3..2b134c21a 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # flake8: noqa """Setup script for AbiPy.""" +from __future__ import annotations import sys import os @@ -58,6 +59,12 @@ def find_package_data(): # This is not enough for these things to appear in an sdist. # We need to muck with the MANIFEST to get this to work package_data = { + 'abipy.panels': [ + "assets/img/*", + ], + 'abipy.htc': [ + "protocols/*.yml", + ], 'abipy.data': [ "cifs/*.cif", "pseudos/*", @@ -84,7 +91,6 @@ def find_package_data(): "sio2_screening/*", "znse_phonons/*", ], - 'abipy.gui.awx': ['images/*'], } return package_data @@ -139,30 +145,32 @@ def cleanup(): install_requires = [ "monty", + "packaging", "tabulate", - "apscheduler==2.1.0", + "apscheduler<=3.10.4", "pydispatcher>=2.0.5", "tqdm", "pyyaml>=3.11", "pandas", - "numpy", + #"numpy", + "numpy<2.0.0", "scipy", "spglib", - #"pymatgen>=2019.10.16", - "pymatgen>=2019.12.22", + "pymatgen>=2022.0.14", "netCDF4", "matplotlib", "seaborn", + "plotly", + "ipython", + "chart-studio", + "click", + "phonopy", + "ase", + #"custodian", + #pydantic, + #panel, ] -with_wxpython = False -if with_wxpython: - install_requires += [ - "wxmplot", - "wxpython", - ] - - #--------------------------------------------------------------------------- # Find all the packages, package data, and data_files #--------------------------------------------------------------------------- @@ -200,15 +208,18 @@ def cleanup(): print(""" Please read the following if you are about to use AbiPy for the first time: -Abipy needs to know about the cluster/computer you are running on. This information -is provided via the manager.yml and scheduler.yml files. -These files must be located in ~/.abinit/abipy or in the working directory in which you execute the flow. +AbiPy needs to know about the cluster/computer you are running on. +This information is provided via two Yaml configuration files: manager.yml and scheduler.yml. +These files must be located either in ~/.abinit/abipy or in the working directory in which you execute the flow. Examples are provided in abipy/data/managers. See also the HTML page: http://abinit.github.io/abipy/workflows/manager_examples.html -TIP: Use abicheck.py to validate the final configuration. +TIPS: + + 1) Issue `rehash` in the shell if the AbiPy scripts cannot be found after the installation (MacOs only) + 2) Use `abicheck.py --with-flow` to validate the final configuration before running large calculations. Have fun! """) diff --git a/tasks.py b/tasks.py index d3c762cdb..dbdc31f33 100644 --- a/tasks.py +++ b/tasks.py @@ -23,11 +23,11 @@ def make_doc(ctx): open_doc(ctx) -@task -def push_doc(ctx): - make_doc(ctx) - with cd(DOCS_DIR): - ctx.run("./ghp_import.py _build/html/ -n -p") +#@task +#def push_doc(ctx): +# make_doc(ctx) +# with cd(DOCS_DIR): +# ctx.run("./ghp_import.py _build/html/ -n -p") @task @@ -59,10 +59,15 @@ def pytest(ctx): def style(ctx): with cd(ABIPY_ROOTDIR): ctx.run("pycodestyle 2>&1 | tee style.log", pty=True) - ctx.run("flake8 --count --show-source --statistics | tee -a style.log", pty=True) #ctx.run("pydocstyle abipy | tee -a style.log", pty=True) +@task +def flake(ctx): + with cd(ABIPY_ROOTDIR): + ctx.run("flake8 --count --show-source --statistics | tee -a style.log", pty=True) + + @task def plots(ctx): with cd(os.path.join(ABIPY_ROOTDIR, "abipy", "examples")): @@ -74,6 +79,38 @@ def flows(ctx): with cd(os.path.join(ABIPY_ROOTDIR, "abipy", "examples")): ctx.run("_runflows.py", pty=True) + +@task +def pygrep(ctx, pattern): + """ + Grep for `pattern` in all py files contained in + """ + # grep -r -i --include \*.h + # Syntax notes: + # -r - search recursively + # -i - case-insensitive search + # --include=\*.${file_extension} - search files that match the extension(s) or file pattern only + with cd(os.path.join(ABIPY_ROOTDIR, "abipy",)): + cmd = 'grep -r -i --color --include "*.py" "%s" .' % pattern + print("Executing:", cmd) + ctx.run(cmd, pty=True) + + +@task +def update_vars(ctx, abinit_repo_path): + abinit_repo_path = os.path.abspath(abinit_repo_path) + + dir_with_pyfiles = os.path.join(ABIPY_ROOTDIR, "abipy", "abio", "abivar_database") + + local_files = [f for f in os.listdir(dir_with_pyfiles) if f.startswith("variables_")] + for local_file in local_files: + # "vimdiff $ABINIT_REPOPATH/abimkdocs/variables_abinit.py variables_abinit.py + source = os.path.join(abinit_repo_path, "abimkdocs", local_file) + cmd = f"vimdiff {source} {local_file}" + print(f"Executing: {cmd}") + os.system(cmd) + + #@task #def move_to_master(ctx): # ctx.run("git tag -a v%s -m \"v%s release\"" % (NEW_VER, NEW_VER)) @@ -111,3 +148,66 @@ def flows(ctx): # update_doc(ctx) # merge_stable(ctx) # release_github(ctx) + + +#@task +#def watchdog(ctx, jobs="auto", sleep_time=5): +# """ +# Start watchdog service to watch F90 files and execute `make` when changes are detected. +# """ +# from monty.termcolor import cprint +# cprint("Starting watchdog service to watch F90 files and execute `make` when changes are detected", "green") +# cprint("Enter in the terminal to kill the service.", "green") +# +# cprint(f"Start watching py files with sleep_time {sleep_time} s ....", "green") +# top = find_top_build_tree(".", with_abinit=True) +# jobs = max(1, number_of_cpus() // 2) if jobs == "auto" else int(jobs) +# +# # http://thepythoncorner.com/dev/how-to-create-a-watchdog-in-python-to-look-for-filesystem-changes/ +# # https://stackoverflow.com/questions/19991033/generating-multiple-observers-with-python-watchdog +# import time +# from watchdog.observers import Observer +# from watchdog.events import PatternMatchingEventHandler +# event_handler = PatternMatchingEventHandler(patterns="*.py", ignore_patterns="", +# ignore_directories=False, case_sensitive=True) +# +# def on_created(event): +# print(f"hey, {event.src_path} has been created!") +# +# def on_deleted(event): +# print(f"what the f**k! Someone deleted {event.src_path}!") +# +# def on_modified(event): +# print(f"hey buddy, {event.src_path} has been modified") +# cmd = "abicheck.py" +# cprint("Executing: %s" % cmd, "yellow") +# with cd(top): +# try: +# result = ctx.run(cmd, pty=True) +# if result.ok: +# cprint("Command completed successfully", "green") +# cprint("Watching for changes ...", "green") +# except Exception: +# cprint(f"Command returned non-zero exit status", "red") +# cprint(f"Keep on watching for changes hoping you get it right ...", "red") +# +# def on_moved(event): +# print(f"ok ok ok, someone moved {event.src_path} to {event.dest_path}") +# +# event_handler.on_created = on_created +# event_handler.on_deleted = on_deleted +# event_handler.on_modified = on_modified +# event_handler.on_moved = on_moved +# +# path = ABIPY_ROOTDIR +# +# observer = Observer() +# observer.schedule(event_handler, path, recursive=True) +# observer.start() +# +# try: +# while True: +# time.sleep(sleep_time) +# except KeyboardInterrupt: +# observer.stop() +# observer.join()